// AUTO-GENERATED FILE - DO NOT EDIT // Generated by scripts/bundle-ui.ts // Total files: 3 // Total size: 15.88 MB // Generated at: 2026-01-04T22:33:07.947Z interface IEmbeddedFile { base64: string; contentType: string; } const EMBEDDED_FILES: Map = new Map([ ['/bundle.js', { base64: 'dmFyICROZT1PYmplY3QuY3JlYXRlLExOZT1PYmplY3QuZnJlZXplLG1zPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgRE5lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIExCdD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgVEJ0PU9iamVjdC5nZXRQcm90b3R5cGVPZixfQnQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgRU5lPSh0LGUpPT4oZT1TeW1ib2xbdF0pP2U6U3ltYm9sLmZvcigiU3ltYm9sLiIrdCkscGM9dD0+e3Rocm93IFR5cGVFcnJvcih0KX07dmFyIE5OZT0odCxlLGEpPT5lIGluIHQ/bXModCxlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSk6dFtlXT1hO3ZhciBUTmU9KHQsZSk9Pm1zKHQsIm5hbWUiLHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMH0pLFpJPSh0PT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eSh0LHtnZXQ6KGUsYSk9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTplKVthXX0pOnQpKGZ1bmN0aW9uKHQpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJyt0KyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciBuPSh0LGUpPT4oKT0+KHQmJihlPXQodD0wKSksZSk7dmFyIGN0PSh0LGUpPT4oKT0+KGV8fHQoKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0cyksZXQ9KHQsZSk9Pntmb3IodmFyIGEgaW4gZSltcyh0LGEse2dldDplW2FdLGVudW1lcmFibGU6ITB9KX0sQUJ0PSh0LGUsYSxyKT0+e2lmKGUmJnR5cGVvZiBlPT0ib2JqZWN0Inx8dHlwZW9mIGU9PSJmdW5jdGlvbiIpZm9yKGxldCBpIG9mIExCdChlKSkhX0J0LmNhbGwodCxpKSYmaSE9PWEmJm1zKHQsaSx7Z2V0OigpPT5lW2ldLGVudW1lcmFibGU6IShyPUROZShlLGkpKXx8ci5lbnVtZXJhYmxlfSk7cmV0dXJuIHR9O3ZhciBOMj0odCxlLGEpPT4oYT10IT1udWxsPyROZShUQnQodCkpOnt9LEFCdChlfHwhdHx8IXQuX19lc01vZHVsZT9tcyhhLCJkZWZhdWx0Iix7dmFsdWU6dCxlbnVtZXJhYmxlOiEwfSk6YSx0KSk7dmFyIFhJPXQ9PlssLCwkTmUodD8uW0VOZSgibWV0YWRhdGEiKV0/P251bGwpXSxQTmU9WyJjbGFzcyIsIm1ldGhvZCIsImdldHRlciIsInNldHRlciIsImFjY2Vzc29yIiwiZmllbGQiLCJ2YWx1ZSIsImdldCIsInNldCJdLEM1PXQ9PnQhPT12b2lkIDAmJnR5cGVvZiB0IT0iZnVuY3Rpb24iP3BjKCJGdW5jdGlvbiBleHBlY3RlZCIpOnQsJEJ0PSh0LGUsYSxyLGkpPT4oe2tpbmQ6UE5lW3RdLG5hbWU6ZSxtZXRhZGF0YTpyLGFkZEluaXRpYWxpemVyOm89PmEuXz9wYygiQWxyZWFkeSBpbml0aWFsaXplZCIpOmkucHVzaChDNShvfHxudWxsKSl9KSxEQnQ9KHQsZSk9Pk5OZShlLEVOZSgibWV0YWRhdGEiKSx0WzNdKSxEdD0odCxlLGEscik9Pntmb3IodmFyIGk9MCxvPXRbZT4+MV0scz1vJiZvLmxlbmd0aDtpPHM7aSsrKWUmMT9vW2ldLmNhbGwoYSk6cj1vW2ldLmNhbGwoYSxyKTtyZXR1cm4gcn0sSTE9KHQsZSxhLHIsaSxvKT0+e3ZhciBzLGwsZixjLHUsZD1lJjcsaD0hIShlJjgpLGc9ISEoZSYxNiksYj1kPjM/dC5sZW5ndGgrMTpkP2g/MToyOjAseD1QTmVbZCs1XSxtPWQ+MyYmKHRbYi0xXT1bXSksdj10W2JdfHwodFtiXT1bXSkseT1kJiYoIWcmJiFoJiYoaT1pLnByb3RvdHlwZSksZDw1JiYoZD4zfHwhZykmJkROZShkPDQ/aTp7Z2V0W2FdKCl7cmV0dXJuIF9OZSh0aGlzLG8pfSxzZXRbYV0oRSl7cmV0dXJuIEFOZSh0aGlzLG8sRSl9fSxhKSk7ZD9nJiZkPDQmJlROZShvLChkPjI/InNldCAiOmQ+MT8iZ2V0ICI6IiIpK2EpOlROZShpLGEpO2Zvcih2YXIgdz1yLmxlbmd0aC0xO3c+PTA7dy0tKWM9JEJ0KGQsYSxmPXt9LHRbM10sdiksZCYmKGMuc3RhdGljPWgsYy5wcml2YXRlPWcsdT1jLmFjY2Vzcz17aGFzOmc/RT0+RUJ0KGksRSk6RT0+YSBpbiBFfSxkXjMmJih1LmdldD1nP0U9PihkXjE/X05lOk5CdCkoRSxpLGReND9vOnkuZ2V0KTpFPT5FW2FdKSxkPjImJih1LnNldD1nPyhFLEMpPT5BTmUoRSxpLEMsZF40P286eS5zZXQpOihFLEMpPT5FW2FdPUMpKSxsPSgwLHJbd10pKGQ/ZDw0P2c/bzp5W3hdOmQ+ND92b2lkIDA6e2dldDp5LmdldCxzZXQ6eS5zZXR9OmksYyksZi5fPTEsZF40fHxsPT09dm9pZCAwP0M1KGwpJiYoZD40P20udW5zaGlmdChsKTpkP2c/bz1sOnlbeF09bDppPWwpOnR5cGVvZiBsIT0ib2JqZWN0Inx8bD09PW51bGw/cGMoIk9iamVjdCBleHBlY3RlZCIpOihDNShzPWwuZ2V0KSYmKHkuZ2V0PXMpLEM1KHM9bC5zZXQpJiYoeS5zZXQ9cyksQzUocz1sLmluaXQpJiZtLnVuc2hpZnQocykpO3JldHVybiBkfHxEQnQodCxpKSx5JiZtcyhpLGEseSksZz9kXjQ/bzp5Oml9LFFJPSh0LGUsYSk9Pk5OZSh0LHR5cGVvZiBlIT0ic3ltYm9sIj9lKyIiOmUsYSksJGo9KHQsZSxhKT0+ZS5oYXModCl8fHBjKCJDYW5ub3QgIithKSxFQnQ9KHQsZSk9Pk9iamVjdChlKSE9PWU/cGMoJ0Nhbm5vdCB1c2UgdGhlICJpbiIgb3BlcmF0b3Igb24gdGhpcyB2YWx1ZScpOnQuaGFzKGUpLF9OZT0odCxlLGEpPT4oJGoodCxlLCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZCIpLGE/YS5jYWxsKHQpOmUuZ2V0KHQpKSxKMT0odCxlLGEpPT5lLmhhcyh0KT9wYygiQ2Fubm90IGFkZCB0aGUgc2FtZSBwcml2YXRlIG1lbWJlciBtb3JlIHRoYW4gb25jZSIpOmUgaW5zdGFuY2VvZiBXZWFrU2V0P2UuYWRkKHQpOmUuc2V0KHQsYSksQU5lPSh0LGUsYSxyKT0+KCRqKHQsZSwid3JpdGUgdG8gcHJpdmF0ZSBmaWVsZCIpLHI/ci5jYWxsKHQsYSk6ZS5zZXQodCxhKSxhKSxOQnQ9KHQsZSxhKT0+KCRqKHQsZSwiYWNjZXNzIHByaXZhdGUgbWV0aG9kIiksYSk7dmFyIGhjPSh0LGUpPT5MTmUobXModCwicmF3Iix7dmFsdWU6TE5lKGV8fHQuc2xpY2UoKSl9KSk7dmFyIEtJLEw1LERqLElOZSxtYyxCdCx0ZSxKSSxUNSxFaj1uKCgpPT57S0k9Z2xvYmFsVGhpcyxMNT1LSS5TaGFkb3dSb290JiYoS0kuU2hhZHlDU1M9PT12b2lkIDB8fEtJLlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNoZWV0LnByb3RvdHlwZSxEaj1TeW1ib2woKSxJTmU9bmV3IFdlYWtNYXAsbWM9Y2xhc3N7Y29uc3RydWN0b3IoZSxhLHIpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLHIhPT1Eail0aHJvdyBFcnJvcigiQ1NTUmVzdWx0IGlzIG5vdCBjb25zdHJ1Y3RhYmxlLiBVc2UgYHVuc2FmZUNTU2Agb3IgYGNzc2AgaW5zdGVhZC4iKTt0aGlzLmNzc1RleHQ9ZSx0aGlzLnQ9YX1nZXQgc3R5bGVTaGVldCgpe2xldCBlPXRoaXMubyxhPXRoaXMudDtpZihMNSYmZT09PXZvaWQgMCl7bGV0IHI9YSE9PXZvaWQgMCYmYS5sZW5ndGg9PT0xO3ImJihlPUlOZS5nZXQoYSkpLGU9PT12b2lkIDAmJigodGhpcy5vPWU9bmV3IENTU1N0eWxlU2hlZXQpLnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCksciYmSU5lLnNldChhLGUpKX1yZXR1cm4gZX10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc1RleHR9fSxCdD10PT5uZXcgbWModHlwZW9mIHQ9PSJzdHJpbmciP3Q6dCsiIix2b2lkIDAsRGopLHRlPSh0LC4uLmUpPT57bGV0IGE9dC5sZW5ndGg9PT0xP3RbMF06ZS5yZWR1Y2UoKHIsaSxvKT0+cisocz0+e2lmKHMuXyRjc3NSZXN1bHQkPT09ITApcmV0dXJuIHMuY3NzVGV4dDtpZih0eXBlb2Ygcz09Im51bWJlciIpcmV0dXJuIHM7dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK3MrIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkoaSkrdFtvKzFdLHRbMF0pO3JldHVybiBuZXcgbWMoYSx0LERqKX0sSkk9KHQsZSk9PntpZihMNSl0LmFkb3B0ZWRTdHlsZVNoZWV0cz1lLm1hcChhPT5hIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD9hOmEuc3R5bGVTaGVldCk7ZWxzZSBmb3IobGV0IGEgb2YgZSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxpPUtJLmxpdE5vbmNlO2khPT12b2lkIDAmJnIuc2V0QXR0cmlidXRlKCJub25jZSIsaSksci50ZXh0Q29udGVudD1hLmNzc1RleHQsdC5hcHBlbmRDaGlsZChyKX19LFQ1PUw1P3Q9PnQ6dD0+dCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGU9PntsZXQgYT0iIjtmb3IobGV0IHIgb2YgZS5jc3NSdWxlcylhKz1yLmNzc1RleHQ7cmV0dXJuIEJ0KGEpfSkodCk6dH0pO3ZhciBQQnQsSUJ0LEZCdCxPQnQsQkJ0LFJCdCxlRixGTmUsSEJ0LHFCdCxfNSxnYyxBNSxPTmUsbXIsJDU9bigoKT0+e0VqKCk7RWooKTsoe2lzOlBCdCxkZWZpbmVQcm9wZXJ0eTpJQnQsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOkZCdCxnZXRPd25Qcm9wZXJ0eU5hbWVzOk9CdCxnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6QkJ0LGdldFByb3RvdHlwZU9mOlJCdH09T2JqZWN0KSxlRj1nbG9iYWxUaGlzLEZOZT1lRi50cnVzdGVkVHlwZXMsSEJ0PUZOZT9GTmUuZW1wdHlTY3JpcHQ6IiIscUJ0PWVGLnJlYWN0aXZlRWxlbWVudFBvbHlmaWxsU3VwcG9ydCxfNT0odCxlKT0+dCxnYz17dG9BdHRyaWJ1dGUodCxlKXtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOnQ9dD9IQnQ6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnQ9dD09bnVsbD90OkpTT04uc3RyaW5naWZ5KHQpfXJldHVybiB0fSxmcm9tQXR0cmlidXRlKHQsZSl7bGV0IGE9dDtzd2l0Y2goZSl7Y2FzZSBCb29sZWFuOmE9dCE9PW51bGw7YnJlYWs7Y2FzZSBOdW1iZXI6YT10PT09bnVsbD9udWxsOk51bWJlcih0KTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXthPUpTT04ucGFyc2UodCl9Y2F0Y2h7YT1udWxsfX1yZXR1cm4gYX19LEE1PSh0LGUpPT4hUEJ0KHQsZSksT05lPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOmdjLHJlZmxlY3Q6ITEsdXNlRGVmYXVsdDohMSxoYXNDaGFuZ2VkOkE1fTtTeW1ib2wubWV0YWRhdGE/Pz1TeW1ib2woIm1ldGFkYXRhIiksZUYubGl0UHJvcGVydHlNZXRhZGF0YT8/PW5ldyBXZWFrTWFwO21yPWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7c3RhdGljIGFkZEluaXRpYWxpemVyKGUpe3RoaXMuXyRFaSgpLCh0aGlzLmw/Pz1bXSkucHVzaChlKX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVybiB0aGlzLmZpbmFsaXplKCksdGhpcy5fJEVoJiZbLi4udGhpcy5fJEVoLmtleXMoKV19c3RhdGljIGNyZWF0ZVByb3BlcnR5KGUsYT1PTmUpe2lmKGEuc3RhdGUmJihhLmF0dHJpYnV0ZT0hMSksdGhpcy5fJEVpKCksdGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoZSkmJigoYT1PYmplY3QuY3JlYXRlKGEpKS53cmFwcGVkPSEwKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChlLGEpLCFhLm5vQWNjZXNzb3Ipe2xldCByPVN5bWJvbCgpLGk9dGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IoZSxyLGEpO2khPT12b2lkIDAmJklCdCh0aGlzLnByb3RvdHlwZSxlLGkpfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKGUsYSxyKXtsZXR7Z2V0Omksc2V0Om99PUZCdCh0aGlzLnByb3RvdHlwZSxlKT8/e2dldCgpe3JldHVybiB0aGlzW2FdfSxzZXQocyl7dGhpc1thXT1zfX07cmV0dXJue2dldDppLHNldChzKXtsZXQgbD1pPy5jYWxsKHRoaXMpO28/LmNhbGwodGhpcyxzKSx0aGlzLnJlcXVlc3RVcGRhdGUoZSxsLHIpfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH19c3RhdGljIGdldFByb3BlcnR5T3B0aW9ucyhlKXtyZXR1cm4gdGhpcy5lbGVtZW50UHJvcGVydGllcy5nZXQoZSk/P09OZX1zdGF0aWMgXyRFaSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoXzUoImVsZW1lbnRQcm9wZXJ0aWVzIikpKXJldHVybjtsZXQgZT1SQnQodGhpcyk7ZS5maW5hbGl6ZSgpLGUubCE9PXZvaWQgMCYmKHRoaXMubD1bLi4uZS5sXSksdGhpcy5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwKGUuZWxlbWVudFByb3BlcnRpZXMpfXN0YXRpYyBmaW5hbGl6ZSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoXzUoImZpbmFsaXplZCIpKSlyZXR1cm47aWYodGhpcy5maW5hbGl6ZWQ9ITAsdGhpcy5fJEVpKCksdGhpcy5oYXNPd25Qcm9wZXJ0eShfNSgicHJvcGVydGllcyIpKSl7bGV0IGE9dGhpcy5wcm9wZXJ0aWVzLHI9Wy4uLk9CdChhKSwuLi5CQnQoYSldO2ZvcihsZXQgaSBvZiByKXRoaXMuY3JlYXRlUHJvcGVydHkoaSxhW2ldKX1sZXQgZT10aGlzW1N5bWJvbC5tZXRhZGF0YV07aWYoZSE9PW51bGwpe2xldCBhPWxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KGUpO2lmKGEhPT12b2lkIDApZm9yKGxldFtyLGldb2YgYSl0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChyLGkpfXRoaXMuXyRFaD1uZXcgTWFwO2ZvcihsZXRbYSxyXW9mIHRoaXMuZWxlbWVudFByb3BlcnRpZXMpe2xldCBpPXRoaXMuXyRFdShhLHIpO2khPT12b2lkIDAmJnRoaXMuXyRFaC5zZXQoaSxhKX10aGlzLmVsZW1lbnRTdHlsZXM9dGhpcy5maW5hbGl6ZVN0eWxlcyh0aGlzLnN0eWxlcyl9c3RhdGljIGZpbmFsaXplU3R5bGVzKGUpe2xldCBhPVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2xldCByPW5ldyBTZXQoZS5mbGF0KDEvMCkucmV2ZXJzZSgpKTtmb3IobGV0IGkgb2YgcilhLnVuc2hpZnQoVDUoaSkpfWVsc2UgZSE9PXZvaWQgMCYmYS5wdXNoKFQ1KGUpKTtyZXR1cm4gYX1zdGF0aWMgXyRFdShlLGEpe2xldCByPWEuYXR0cmlidXRlO3JldHVybiByPT09ITE/dm9pZCAwOnR5cGVvZiByPT0ic3RyaW5nIj9yOnR5cGVvZiBlPT0ic3RyaW5nIj9lLnRvTG93ZXJDYXNlKCk6dm9pZCAwfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl8kRXA9dm9pZCAwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExLHRoaXMuaGFzVXBkYXRlZD0hMSx0aGlzLl8kRW09bnVsbCx0aGlzLl8kRXYoKX1fJEV2KCl7dGhpcy5fJEVTPW5ldyBQcm9taXNlKGU9PnRoaXMuZW5hYmxlVXBkYXRpbmc9ZSksdGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5fJEVfKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5jb25zdHJ1Y3Rvci5sPy5mb3JFYWNoKGU9PmUodGhpcykpfWFkZENvbnRyb2xsZXIoZSl7KHRoaXMuXyRFTz8/PW5ldyBTZXQpLmFkZChlKSx0aGlzLnJlbmRlclJvb3QhPT12b2lkIDAmJnRoaXMuaXNDb25uZWN0ZWQmJmUuaG9zdENvbm5lY3RlZD8uKCl9cmVtb3ZlQ29udHJvbGxlcihlKXt0aGlzLl8kRU8/LmRlbGV0ZShlKX1fJEVfKCl7bGV0IGU9bmV3IE1hcCxhPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7Zm9yKGxldCByIG9mIGEua2V5cygpKXRoaXMuaGFzT3duUHJvcGVydHkocikmJihlLnNldChyLHRoaXNbcl0pLGRlbGV0ZSB0aGlzW3JdKTtlLnNpemU+MCYmKHRoaXMuXyRFcD1lKX1jcmVhdGVSZW5kZXJSb290KCl7bGV0IGU9dGhpcy5zaGFkb3dSb290Pz90aGlzLmF0dGFjaFNoYWRvdyh0aGlzLmNvbnN0cnVjdG9yLnNoYWRvd1Jvb3RPcHRpb25zKTtyZXR1cm4gSkkoZSx0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRTdHlsZXMpLGV9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLmVuYWJsZVVwZGF0aW5nKCEwKSx0aGlzLl8kRU8/LmZvckVhY2goZT0+ZS5ob3N0Q29ubmVjdGVkPy4oKSl9ZW5hYmxlVXBkYXRpbmcoZSl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fJEVPPy5mb3JFYWNoKGU9PmUuaG9zdERpc2Nvbm5lY3RlZD8uKCkpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhlLGEscil7dGhpcy5fJEFLKGUscil9XyRFVChlLGEpe2xldCByPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXMuZ2V0KGUpLGk9dGhpcy5jb25zdHJ1Y3Rvci5fJEV1KGUscik7aWYoaSE9PXZvaWQgMCYmci5yZWZsZWN0PT09ITApe2xldCBvPShyLmNvbnZlcnRlcj8udG9BdHRyaWJ1dGUhPT12b2lkIDA/ci5jb252ZXJ0ZXI6Z2MpLnRvQXR0cmlidXRlKGEsci50eXBlKTt0aGlzLl8kRW09ZSxvPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlKGkpOnRoaXMuc2V0QXR0cmlidXRlKGksbyksdGhpcy5fJEVtPW51bGx9fV8kQUsoZSxhKXtsZXQgcj10aGlzLmNvbnN0cnVjdG9yLGk9ci5fJEVoLmdldChlKTtpZihpIT09dm9pZCAwJiZ0aGlzLl8kRW0hPT1pKXtsZXQgbz1yLmdldFByb3BlcnR5T3B0aW9ucyhpKSxzPXR5cGVvZiBvLmNvbnZlcnRlcj09ImZ1bmN0aW9uIj97ZnJvbUF0dHJpYnV0ZTpvLmNvbnZlcnRlcn06by5jb252ZXJ0ZXI/LmZyb21BdHRyaWJ1dGUhPT12b2lkIDA/by5jb252ZXJ0ZXI6Z2M7dGhpcy5fJEVtPWk7bGV0IGw9cy5mcm9tQXR0cmlidXRlKGEsby50eXBlKTt0aGlzW2ldPWw/P3RoaXMuXyRFaj8uZ2V0KGkpPz9sLHRoaXMuXyRFbT1udWxsfX1yZXF1ZXN0VXBkYXRlKGUsYSxyLGk9ITEsbyl7aWYoZSE9PXZvaWQgMCl7bGV0IHM9dGhpcy5jb25zdHJ1Y3RvcjtpZihpPT09ITEmJihvPXRoaXNbZV0pLHI/Pz1zLmdldFByb3BlcnR5T3B0aW9ucyhlKSwhKChyLmhhc0NoYW5nZWQ/P0E1KShvLGEpfHxyLnVzZURlZmF1bHQmJnIucmVmbGVjdCYmbz09PXRoaXMuXyRFaj8uZ2V0KGUpJiYhdGhpcy5oYXNBdHRyaWJ1dGUocy5fJEV1KGUscikpKSlyZXR1cm47dGhpcy5DKGUsYSxyKX10aGlzLmlzVXBkYXRlUGVuZGluZz09PSExJiYodGhpcy5fJEVTPXRoaXMuXyRFUCgpKX1DKGUsYSx7dXNlRGVmYXVsdDpyLHJlZmxlY3Q6aSx3cmFwcGVkOm99LHMpe3ImJiEodGhpcy5fJEVqPz89bmV3IE1hcCkuaGFzKGUpJiYodGhpcy5fJEVqLnNldChlLHM/P2E/P3RoaXNbZV0pLG8hPT0hMHx8cyE9PXZvaWQgMCl8fCh0aGlzLl8kQUwuaGFzKGUpfHwodGhpcy5oYXNVcGRhdGVkfHxyfHwoYT12b2lkIDApLHRoaXMuXyRBTC5zZXQoZSxhKSksaT09PSEwJiZ0aGlzLl8kRW0hPT1lJiYodGhpcy5fJEVxPz89bmV3IFNldCkuYWRkKGUpKX1hc3luYyBfJEVQKCl7dGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITA7dHJ5e2F3YWl0IHRoaXMuXyRFU31jYXRjaChhKXtQcm9taXNlLnJlamVjdChhKX1sZXQgZT10aGlzLnNjaGVkdWxlVXBkYXRlKCk7cmV0dXJuIGUhPW51bGwmJmF3YWl0IGUsIXRoaXMuaXNVcGRhdGVQZW5kaW5nfXNjaGVkdWxlVXBkYXRlKCl7cmV0dXJuIHRoaXMucGVyZm9ybVVwZGF0ZSgpfXBlcmZvcm1VcGRhdGUoKXtpZighdGhpcy5pc1VwZGF0ZVBlbmRpbmcpcmV0dXJuO2lmKCF0aGlzLmhhc1VwZGF0ZWQpe2lmKHRoaXMucmVuZGVyUm9vdD8/PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpLHRoaXMuXyRFcCl7Zm9yKGxldFtpLG9db2YgdGhpcy5fJEVwKXRoaXNbaV09bzt0aGlzLl8kRXA9dm9pZCAwfWxldCByPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7aWYoci5zaXplPjApZm9yKGxldFtpLG9db2Ygcil7bGV0e3dyYXBwZWQ6c309byxsPXRoaXNbaV07cyE9PSEwfHx0aGlzLl8kQUwuaGFzKGkpfHxsPT09dm9pZCAwfHx0aGlzLkMoaSx2b2lkIDAsbyxsKX19bGV0IGU9ITEsYT10aGlzLl8kQUw7dHJ5e2U9dGhpcy5zaG91bGRVcGRhdGUoYSksZT8odGhpcy53aWxsVXBkYXRlKGEpLHRoaXMuXyRFTz8uZm9yRWFjaChyPT5yLmhvc3RVcGRhdGU/LigpKSx0aGlzLnVwZGF0ZShhKSk6dGhpcy5fJEVNKCl9Y2F0Y2gocil7dGhyb3cgZT0hMSx0aGlzLl8kRU0oKSxyfWUmJnRoaXMuXyRBRShhKX13aWxsVXBkYXRlKGUpe31fJEFFKGUpe3RoaXMuXyRFTz8uZm9yRWFjaChhPT5hLmhvc3RVcGRhdGVkPy4oKSksdGhpcy5oYXNVcGRhdGVkfHwodGhpcy5oYXNVcGRhdGVkPSEwLHRoaXMuZmlyc3RVcGRhdGVkKGUpKSx0aGlzLnVwZGF0ZWQoZSl9XyRFTSgpe3RoaXMuXyRBTD1uZXcgTWFwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExfWdldCB1cGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLmdldFVwZGF0ZUNvbXBsZXRlKCl9Z2V0VXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5fJEVTfXNob3VsZFVwZGF0ZShlKXtyZXR1cm4hMH11cGRhdGUoZSl7dGhpcy5fJEVxJiY9dGhpcy5fJEVxLmZvckVhY2goYT0+dGhpcy5fJEVUKGEsdGhpc1thXSkpLHRoaXMuXyRFTSgpfXVwZGF0ZWQoZSl7fWZpcnN0VXBkYXRlZChlKXt9fTttci5lbGVtZW50U3R5bGVzPVtdLG1yLnNoYWRvd1Jvb3RPcHRpb25zPXttb2RlOiJvcGVuIn0sbXJbXzUoImVsZW1lbnRQcm9wZXJ0aWVzIildPW5ldyBNYXAsbXJbXzUoImZpbmFsaXplZCIpXT1uZXcgTWFwLHFCdD8uKHtSZWFjdGl2ZUVsZW1lbnQ6bXJ9KSwoZUYucmVhY3RpdmVFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiMi4xLjIiKX0pO2Z1bmN0aW9uIFlOZSh0LGUpe2lmKCFGaih0KXx8IXQuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gUk5lIT09dm9pZCAwP1JOZS5jcmVhdGVIVE1MKGUpOmV9ZnVuY3Rpb24gdnModCxlLGE9dCxyKXtpZihlPT09bDEpcmV0dXJuIGU7bGV0IGk9ciE9PXZvaWQgMD9hLl8kQ28/LltyXTphLl8kQ2wsbz1FNShlKT92b2lkIDA6ZS5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIGk/LmNvbnN0cnVjdG9yIT09byYmKGk/Ll8kQU8/LighMSksbz09PXZvaWQgMD9pPXZvaWQgMDooaT1uZXcgbyh0KSxpLl8kQVQodCxhLHIpKSxyIT09dm9pZCAwPyhhLl8kQ28/Pz1bXSlbcl09aTphLl8kQ2w9aSksaSE9PXZvaWQgMCYmKGU9dnModCxpLl8kQVModCxlLnZhbHVlcyksaSxyKSksZX12YXIgTmosQk5lLHRGLFJOZSxQaixlaSxJaixWQnQsZ3MsRDUsRTUsRmosSE5lLE9qLE41LHFOZSxWTmUseHMsVU5lLGpOZSxXTmUsQmosTSxSaixIaixsMSxoMSxHTmUsYnMsWk5lLFA1LGFGLHhjLHlzLHJGLGlGLG9GLHNGLHFqLFVCdCx3cyxCYT1uKCgpPT57Tmo9Z2xvYmFsVGhpcyxCTmU9dD0+dCx0Rj1Oai50cnVzdGVkVHlwZXMsUk5lPXRGP3RGLmNyZWF0ZVBvbGljeSgibGl0LWh0bWwiLHtjcmVhdGVIVE1MOnQ9PnR9KTp2b2lkIDAsUGo9IiRsaXQkIixlaT1gbGl0JCR7TWF0aC5yYW5kb20oKS50b0ZpeGVkKDkpLnNsaWNlKDIpfSRgLElqPSI/IitlaSxWQnQ9YDwke0lqfT5gLGdzPWRvY3VtZW50LEQ1PSgpPT5ncy5jcmVhdGVDb21tZW50KCIiKSxFNT10PT50PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIixGaj1BcnJheS5pc0FycmF5LEhOZT10PT5Gaih0KXx8dHlwZW9mIHQ/LltTeW1ib2wuaXRlcmF0b3JdPT0iZnVuY3Rpb24iLE9qPWBbIAkKXGZccl1gLE41PS88KD86KCEtLXxcL1teYS16QS1aXSl8KFwvP1thLXpBLVpdW14+XHNdKil8KFwvPyQpKS9nLHFOZT0vLS0+L2csVk5lPS8+L2cseHM9UmVnRXhwKGA+fCR7T2p9KD86KFteXFxzIic+PS9dKykoJHtPan0qPSR7T2p9Kig/OlteIAkKXGZcciInXGA8Pj1dfCgifCcpfCkpfCQpYCwiZyIpLFVOZT0vJy9nLGpOZT0vIi9nLFdOZT0vXig/OnNjcmlwdHxzdHlsZXx0ZXh0YXJlYXx0aXRsZSkkL2ksQmo9dD0+KGUsLi4uYSk9Pih7XyRsaXRUeXBlJDp0LHN0cmluZ3M6ZSx2YWx1ZXM6YX0pLE09QmooMSksUmo9QmooMiksSGo9QmooMyksbDE9U3ltYm9sLmZvcigibGl0LW5vQ2hhbmdlIiksaDE9U3ltYm9sLmZvcigibGl0LW5vdGhpbmciKSxHTmU9bmV3IFdlYWtNYXAsYnM9Z3MuY3JlYXRlVHJlZVdhbGtlcihncywxMjkpO1pOZT0odCxlKT0+e2xldCBhPXQubGVuZ3RoLTEscj1bXSxpLG89ZT09PTI/Ijxzdmc+IjplPT09Mz8iPG1hdGg+IjoiIixzPU41O2ZvcihsZXQgbD0wO2w8YTtsKyspe2xldCBmPXRbbF0sYyx1LGQ9LTEsaD0wO2Zvcig7aDxmLmxlbmd0aCYmKHMubGFzdEluZGV4PWgsdT1zLmV4ZWMoZiksdSE9PW51bGwpOyloPXMubGFzdEluZGV4LHM9PT1ONT91WzFdPT09IiEtLSI/cz1xTmU6dVsxXSE9PXZvaWQgMD9zPVZOZTp1WzJdIT09dm9pZCAwPyhXTmUudGVzdCh1WzJdKSYmKGk9UmVnRXhwKCI8LyIrdVsyXSwiZyIpKSxzPXhzKTp1WzNdIT09dm9pZCAwJiYocz14cyk6cz09PXhzP3VbMF09PT0iPiI/KHM9aT8/TjUsZD0tMSk6dVsxXT09PXZvaWQgMD9kPS0yOihkPXMubGFzdEluZGV4LXVbMl0ubGVuZ3RoLGM9dVsxXSxzPXVbM109PT12b2lkIDA/eHM6dVszXT09PSciJz9qTmU6VU5lKTpzPT09ak5lfHxzPT09VU5lP3M9eHM6cz09PXFOZXx8cz09PVZOZT9zPU41OihzPXhzLGk9dm9pZCAwKTtsZXQgZz1zPT09eHMmJnRbbCsxXS5zdGFydHNXaXRoKCIvPiIpPyIgIjoiIjtvKz1zPT09TjU/ZitWQnQ6ZD49MD8oci5wdXNoKGMpLGYuc2xpY2UoMCxkKStQaitmLnNsaWNlKGQpK2VpK2cpOmYrZWkrKGQ9PT0tMj9sOmcpfXJldHVybltZTmUodCxvKyh0W2FdfHwiPD8+IikrKGU9PT0yPyI8L3N2Zz4iOmU9PT0zPyI8L21hdGg+IjoiIikpLHJdfSxQNT1jbGFzcyB0e2NvbnN0cnVjdG9yKHtzdHJpbmdzOmUsXyRsaXRUeXBlJDphfSxyKXtsZXQgaTt0aGlzLnBhcnRzPVtdO2xldCBvPTAscz0wLGw9ZS5sZW5ndGgtMSxmPXRoaXMucGFydHMsW2MsdV09Wk5lKGUsYSk7aWYodGhpcy5lbD10LmNyZWF0ZUVsZW1lbnQoYyxyKSxicy5jdXJyZW50Tm9kZT10aGlzLmVsLmNvbnRlbnQsYT09PTJ8fGE9PT0zKXtsZXQgZD10aGlzLmVsLmNvbnRlbnQuZmlyc3RDaGlsZDtkLnJlcGxhY2VXaXRoKC4uLmQuY2hpbGROb2Rlcyl9Zm9yKDsoaT1icy5uZXh0Tm9kZSgpKSE9PW51bGwmJmYubGVuZ3RoPGw7KXtpZihpLm5vZGVUeXBlPT09MSl7aWYoaS5oYXNBdHRyaWJ1dGVzKCkpZm9yKGxldCBkIG9mIGkuZ2V0QXR0cmlidXRlTmFtZXMoKSlpZihkLmVuZHNXaXRoKFBqKSl7bGV0IGg9dVtzKytdLGc9aS5nZXRBdHRyaWJ1dGUoZCkuc3BsaXQoZWkpLGI9LyhbLj9AXSk/KC4qKS8uZXhlYyhoKTtmLnB1c2goe3R5cGU6MSxpbmRleDpvLG5hbWU6YlsyXSxzdHJpbmdzOmcsY3RvcjpiWzFdPT09Ii4iP3JGOmJbMV09PT0iPyI/aUY6YlsxXT09PSJAIj9vRjp5c30pLGkucmVtb3ZlQXR0cmlidXRlKGQpfWVsc2UgZC5zdGFydHNXaXRoKGVpKSYmKGYucHVzaCh7dHlwZTo2LGluZGV4Om99KSxpLnJlbW92ZUF0dHJpYnV0ZShkKSk7aWYoV05lLnRlc3QoaS50YWdOYW1lKSl7bGV0IGQ9aS50ZXh0Q29udGVudC5zcGxpdChlaSksaD1kLmxlbmd0aC0xO2lmKGg+MCl7aS50ZXh0Q29udGVudD10Rj90Ri5lbXB0eVNjcmlwdDoiIjtmb3IobGV0IGc9MDtnPGg7ZysrKWkuYXBwZW5kKGRbZ10sRDUoKSksYnMubmV4dE5vZGUoKSxmLnB1c2goe3R5cGU6MixpbmRleDorK299KTtpLmFwcGVuZChkW2hdLEQ1KCkpfX19ZWxzZSBpZihpLm5vZGVUeXBlPT09OClpZihpLmRhdGE9PT1JailmLnB1c2goe3R5cGU6MixpbmRleDpvfSk7ZWxzZXtsZXQgZD0tMTtmb3IoOyhkPWkuZGF0YS5pbmRleE9mKGVpLGQrMSkpIT09LTE7KWYucHVzaCh7dHlwZTo3LGluZGV4Om99KSxkKz1laS5sZW5ndGgtMX1vKyt9fXN0YXRpYyBjcmVhdGVFbGVtZW50KGUsYSl7bGV0IHI9Z3MuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gci5pbm5lckhUTUw9ZSxyfX07YUY9Y2xhc3N7Y29uc3RydWN0b3IoZSxhKXt0aGlzLl8kQVY9W10sdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUQ9ZSx0aGlzLl8kQU09YX1nZXQgcGFyZW50Tm9kZSgpe3JldHVybiB0aGlzLl8kQU0ucGFyZW50Tm9kZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX11KGUpe2xldHtlbDp7Y29udGVudDphfSxwYXJ0czpyfT10aGlzLl8kQUQsaT0oZT8uY3JlYXRpb25TY29wZT8/Z3MpLmltcG9ydE5vZGUoYSwhMCk7YnMuY3VycmVudE5vZGU9aTtsZXQgbz1icy5uZXh0Tm9kZSgpLHM9MCxsPTAsZj1yWzBdO2Zvcig7ZiE9PXZvaWQgMDspe2lmKHM9PT1mLmluZGV4KXtsZXQgYztmLnR5cGU9PT0yP2M9bmV3IHhjKG8sby5uZXh0U2libGluZyx0aGlzLGUpOmYudHlwZT09PTE/Yz1uZXcgZi5jdG9yKG8sZi5uYW1lLGYuc3RyaW5ncyx0aGlzLGUpOmYudHlwZT09PTYmJihjPW5ldyBzRihvLHRoaXMsZSkpLHRoaXMuXyRBVi5wdXNoKGMpLGY9clsrK2xdfXMhPT1mPy5pbmRleCYmKG89YnMubmV4dE5vZGUoKSxzKyspfXJldHVybiBicy5jdXJyZW50Tm9kZT1ncyxpfXAoZSl7bGV0IGE9MDtmb3IobGV0IHIgb2YgdGhpcy5fJEFWKXIhPT12b2lkIDAmJihyLnN0cmluZ3MhPT12b2lkIDA/KHIuXyRBSShlLHIsYSksYSs9ci5zdHJpbmdzLmxlbmd0aC0yKTpyLl8kQUkoZVthXSkpLGErK319LHhjPWNsYXNzIHR7Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNPy5fJEFVPz90aGlzLl8kQ3Z9Y29uc3RydWN0b3IoZSxhLHIsaSl7dGhpcy50eXBlPTIsdGhpcy5fJEFIPWgxLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPWUsdGhpcy5fJEFCPWEsdGhpcy5fJEFNPXIsdGhpcy5vcHRpb25zPWksdGhpcy5fJEN2PWk/LmlzQ29ubmVjdGVkPz8hMH1nZXQgcGFyZW50Tm9kZSgpe2xldCBlPXRoaXMuXyRBQS5wYXJlbnROb2RlLGE9dGhpcy5fJEFNO3JldHVybiBhIT09dm9pZCAwJiZlPy5ub2RlVHlwZT09PTExJiYoZT1hLnBhcmVudE5vZGUpLGV9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFCfV8kQUkoZSxhPXRoaXMpe2U9dnModGhpcyxlLGEpLEU1KGUpP2U9PT1oMXx8ZT09bnVsbHx8ZT09PSIiPyh0aGlzLl8kQUghPT1oMSYmdGhpcy5fJEFSKCksdGhpcy5fJEFIPWgxKTplIT09dGhpcy5fJEFIJiZlIT09bDEmJnRoaXMuXyhlKTplLl8kbGl0VHlwZSQhPT12b2lkIDA/dGhpcy4kKGUpOmUubm9kZVR5cGUhPT12b2lkIDA/dGhpcy5UKGUpOkhOZShlKT90aGlzLmsoZSk6dGhpcy5fKGUpfU8oZSl7cmV0dXJuIHRoaXMuXyRBQS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLHRoaXMuXyRBQil9VChlKXt0aGlzLl8kQUghPT1lJiYodGhpcy5fJEFSKCksdGhpcy5fJEFIPXRoaXMuTyhlKSl9XyhlKXt0aGlzLl8kQUghPT1oMSYmRTUodGhpcy5fJEFIKT90aGlzLl8kQUEubmV4dFNpYmxpbmcuZGF0YT1lOnRoaXMuVChncy5jcmVhdGVUZXh0Tm9kZShlKSksdGhpcy5fJEFIPWV9JChlKXtsZXR7dmFsdWVzOmEsXyRsaXRUeXBlJDpyfT1lLGk9dHlwZW9mIHI9PSJudW1iZXIiP3RoaXMuXyRBQyhlKTooci5lbD09PXZvaWQgMCYmKHIuZWw9UDUuY3JlYXRlRWxlbWVudChZTmUoci5oLHIuaFswXSksdGhpcy5vcHRpb25zKSkscik7aWYodGhpcy5fJEFIPy5fJEFEPT09aSl0aGlzLl8kQUgucChhKTtlbHNle2xldCBvPW5ldyBhRihpLHRoaXMpLHM9by51KHRoaXMub3B0aW9ucyk7by5wKGEpLHRoaXMuVChzKSx0aGlzLl8kQUg9b319XyRBQyhlKXtsZXQgYT1HTmUuZ2V0KGUuc3RyaW5ncyk7cmV0dXJuIGE9PT12b2lkIDAmJkdOZS5zZXQoZS5zdHJpbmdzLGE9bmV3IFA1KGUpKSxhfWsoZSl7RmoodGhpcy5fJEFIKXx8KHRoaXMuXyRBSD1bXSx0aGlzLl8kQVIoKSk7bGV0IGE9dGhpcy5fJEFILHIsaT0wO2ZvcihsZXQgbyBvZiBlKWk9PT1hLmxlbmd0aD9hLnB1c2gocj1uZXcgdCh0aGlzLk8oRDUoKSksdGhpcy5PKEQ1KCkpLHRoaXMsdGhpcy5vcHRpb25zKSk6cj1hW2ldLHIuXyRBSShvKSxpKys7aTxhLmxlbmd0aCYmKHRoaXMuXyRBUihyJiZyLl8kQUIubmV4dFNpYmxpbmcsaSksYS5sZW5ndGg9aSl9XyRBUihlPXRoaXMuXyRBQS5uZXh0U2libGluZyxhKXtmb3IodGhpcy5fJEFQPy4oITEsITAsYSk7ZSE9PXRoaXMuXyRBQjspe2xldCByPUJOZShlKS5uZXh0U2libGluZztCTmUoZSkucmVtb3ZlKCksZT1yfX1zZXRDb25uZWN0ZWQoZSl7dGhpcy5fJEFNPT09dm9pZCAwJiYodGhpcy5fJEN2PWUsdGhpcy5fJEFQPy4oZSkpfX0seXM9Y2xhc3N7Z2V0IHRhZ05hbWUoKXtyZXR1cm4gdGhpcy5lbGVtZW50LnRhZ05hbWV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9Y29uc3RydWN0b3IoZSxhLHIsaSxvKXt0aGlzLnR5cGU9MSx0aGlzLl8kQUg9aDEsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLmVsZW1lbnQ9ZSx0aGlzLm5hbWU9YSx0aGlzLl8kQU09aSx0aGlzLm9wdGlvbnM9byxyLmxlbmd0aD4yfHxyWzBdIT09IiJ8fHJbMV0hPT0iIj8odGhpcy5fJEFIPUFycmF5KHIubGVuZ3RoLTEpLmZpbGwobmV3IFN0cmluZyksdGhpcy5zdHJpbmdzPXIpOnRoaXMuXyRBSD1oMX1fJEFJKGUsYT10aGlzLHIsaSl7bGV0IG89dGhpcy5zdHJpbmdzLHM9ITE7aWYobz09PXZvaWQgMCllPXZzKHRoaXMsZSxhLDApLHM9IUU1KGUpfHxlIT09dGhpcy5fJEFIJiZlIT09bDEscyYmKHRoaXMuXyRBSD1lKTtlbHNle2xldCBsPWUsZixjO2ZvcihlPW9bMF0sZj0wO2Y8by5sZW5ndGgtMTtmKyspYz12cyh0aGlzLGxbcitmXSxhLGYpLGM9PT1sMSYmKGM9dGhpcy5fJEFIW2ZdKSxzfHw9IUU1KGMpfHxjIT09dGhpcy5fJEFIW2ZdLGM9PT1oMT9lPWgxOmUhPT1oMSYmKGUrPShjPz8iIikrb1tmKzFdKSx0aGlzLl8kQUhbZl09Y31zJiYhaSYmdGhpcy5qKGUpfWooZSl7ZT09PWgxP3RoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5uYW1lKTp0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMubmFtZSxlPz8iIil9fSxyRj1jbGFzcyBleHRlbmRzIHlze2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9M31qKGUpe3RoaXMuZWxlbWVudFt0aGlzLm5hbWVdPWU9PT1oMT92b2lkIDA6ZX19LGlGPWNsYXNzIGV4dGVuZHMgeXN7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT00fWooZSl7dGhpcy5lbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSh0aGlzLm5hbWUsISFlJiZlIT09aDEpfX0sb0Y9Y2xhc3MgZXh0ZW5kcyB5c3tjb25zdHJ1Y3RvcihlLGEscixpLG8pe3N1cGVyKGUsYSxyLGksbyksdGhpcy50eXBlPTV9XyRBSShlLGE9dGhpcyl7aWYoKGU9dnModGhpcyxlLGEsMCk/P2gxKT09PWwxKXJldHVybjtsZXQgcj10aGlzLl8kQUgsaT1lPT09aDEmJnIhPT1oMXx8ZS5jYXB0dXJlIT09ci5jYXB0dXJlfHxlLm9uY2UhPT1yLm9uY2V8fGUucGFzc2l2ZSE9PXIucGFzc2l2ZSxvPWUhPT1oMSYmKHI9PT1oMXx8aSk7aSYmdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsciksbyYmdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsZSksdGhpcy5fJEFIPWV9aGFuZGxlRXZlbnQoZSl7dHlwZW9mIHRoaXMuXyRBSD09ImZ1bmN0aW9uIj90aGlzLl8kQUguY2FsbCh0aGlzLm9wdGlvbnM/Lmhvc3Q/P3RoaXMuZWxlbWVudCxlKTp0aGlzLl8kQUguaGFuZGxlRXZlbnQoZSl9fSxzRj1jbGFzc3tjb25zdHJ1Y3RvcihlLGEscil7dGhpcy5lbGVtZW50PWUsdGhpcy50eXBlPTYsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQU09YSx0aGlzLm9wdGlvbnM9cn1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFJKGUpe3ZzKHRoaXMsZSl9fSxxaj17TTpQaixQOmVpLEE6SWosQzoxLEw6Wk5lLFI6YUYsRDpITmUsVjp2cyxJOnhjLEg6eXMsTjppRixVOm9GLEI6ckYsRjpzRn0sVUJ0PU5qLmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQ7VUJ0Py4oUDUseGMpLChOai5saXRIdG1sVmVyc2lvbnM/Pz1bXSkucHVzaCgiMy4zLjIiKTt3cz0odCxlLGEpPT57bGV0IHI9YT8ucmVuZGVyQmVmb3JlPz9lLGk9ci5fJGxpdFBhcnQkO2lmKGk9PT12b2lkIDApe2xldCBvPWE/LnJlbmRlckJlZm9yZT8/bnVsbDtyLl8kbGl0UGFydCQ9aT1uZXcgeGMoZS5pbnNlcnRCZWZvcmUoRDUoKSxvKSxvLHZvaWQgMCxhPz97fSl9cmV0dXJuIGkuXyRBSSh0KSxpfX0pO3ZhciBWaix0aSxqQnQsV0J0LFhOZT1uKCgpPT57JDUoKTskNSgpO0JhKCk7QmEoKTtWaj1nbG9iYWxUaGlzLHRpPWNsYXNzIGV4dGVuZHMgbXJ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVuZGVyT3B0aW9ucz17aG9zdDp0aGlzfSx0aGlzLl8kRG89dm9pZCAwfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgZT1zdXBlci5jcmVhdGVSZW5kZXJSb290KCk7cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucy5yZW5kZXJCZWZvcmU/Pz1lLmZpcnN0Q2hpbGQsZX11cGRhdGUoZSl7bGV0IGE9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKGUpLHRoaXMuXyREbz13cyhhLHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4gbDF9fTt0aS5fJGxpdEVsZW1lbnQkPSEwLHRpLmZpbmFsaXplZD0hMCxWai5saXRFbGVtZW50SHlkcmF0ZVN1cHBvcnQ/Lih7TGl0RWxlbWVudDp0aX0pO2pCdD1Wai5saXRFbGVtZW50UG9seWZpbGxTdXBwb3J0O2pCdD8uKHtMaXRFbGVtZW50OnRpfSk7V0J0PXtfJEFLOih0LGUsYSk9Pnt0Ll8kQUsoZSxhKX0sXyRBTDp0PT50Ll8kQUx9OyhWai5saXRFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiNC4yLjIiKX0pO3ZhciBHQnQsUU5lPW4oKCk9PntHQnQ9ITF9KTt2YXIgZ3I9bigoKT0+eyQ1KCk7QmEoKTtYTmUoKTtRTmUoKX0pO3ZhciBsRj1jdChuRj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobkYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG5GLnVuaT12b2lkIDA7dmFyIFlCdD0odD0idW5pIik9PmAke3R9XyR7Inh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eCIucmVwbGFjZSgvW3h5XS9nLGU9PntsZXQgYT1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKGU9PT0ieCI/YTphJjN8OCkudG9TdHJpbmcoMTYpfSl9YDtuRi51bmk9WUJ0fSk7dmFyIGNGLG5vLGRGPW4oKCk9PntjRj1jbGFzc3tjbGFpbSgpe2lmKHRoaXMuY2xhaW1lZCl0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGFscmVhZHkgY2xhaW1lZCIpO3RoaXMuY2xhaW1lZD0hMH1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkQXQ/dGhpcy5zdG9wcGVkQXQtdGhpcy5zdGFydGVkQXQ6RGF0ZS5ub3coKS10aGlzLnN0YXJ0ZWRBdH1jb25zdHJ1Y3Rvcigpe3RoaXMuY2xhaW1lZD0hMSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKGUsYSk9Pnt0aGlzLnJlc29sdmU9cj0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksZShyKX0sdGhpcy5yZWplY3Q9cj0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxhKHIpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfX0sbm89KCk9Pm5ldyBjRn0pO3ZhciBmRixaQnQsS05lPW4oKCk9PntkRigpO2ZGPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9bm8oKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9c3ViRGVmZXIoKXtsZXQgZT1ubygpO3JldHVybiB0aGlzLmFkZFByb21pc2UoZS5wcm9taXNlKSxlfWFkZFByb21pc2UoZSl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnB1c2goZSl9fSxaQnQ9KCk9Pm5ldyBmRn0pO3ZhciBWZT17fTtldChWZSx7Q3VtdWxhdGl2ZURlZmVycmVkOigpPT5mRixEZWZlcnJlZDooKT0+Y0YsY3VtdWxhdGl2ZURlZmVyOigpPT5aQnQsZGVmZXI6KCk9Pm5vLGZyb21DYWxsYmFjazooKT0+dFJ0LGdldEZpcnN0VHJ1ZU9yRmFsc2U6KCk9PmVSdCxtYXA6KCk9PktCdCxyZWplY3RlZFByb21pc2U6KCk9PlFCdCxyZXNvbHZlZFByb21pc2U6KCk9PlhCdCx0aW1lb3V0QW5kQ29udGludWU6KCk9PkpCdCx0aW1lb3V0V3JhcDooKT0+Sk5lfSk7dmFyIFhCdCxRQnQsS0J0LEpOZSxKQnQsZVJ0LHRSdCxwMj1uKCgpPT57ZEYoKTtLTmUoKTtkRigpO1hCdD10PT5Qcm9taXNlLnJlc29sdmUodCksUUJ0PXQ9PlByb21pc2UucmVqZWN0KHQpLEtCdD1hc3luYyh0LGUpPT57bGV0IGE9W10scj1bXTtmb3IobGV0IGkgb2YgdCl7bGV0IG89ZShpKTthLnB1c2gobyksby50aGVuKHM9PntyLnB1c2gocyl9KX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoYSkscn0sSk5lPWFzeW5jKHQsZSxhPSEwKT0+bmV3IFByb21pc2UoKHIsaSk9PntzZXRUaW1lb3V0KCgpPT57YT9pKG5ldyBFcnJvcigidGltZW91dCIpKTpyKG51bGwpfSxlKSx0LnRoZW4ocixpKX0pLEpCdD1hc3luYyh0LGU9NmU0KT0+Sk5lKHQsZSwhMSksZVJ0PWFzeW5jIHQ9PntsZXQgZT1ubygpO2ZvcihsZXQgYSBvZiB0KWEudGhlbihyPT57cj09PSEwJiZlLnJlc29sdmUoITApfSk7cmV0dXJuIFByb21pc2UuYWxsKHQpLnRoZW4oKCk9PntlLnJlc29sdmUoITEpfSksZS5wcm9taXNlfSx0UnQ9dD0+bmV3IFByb21pc2UoKGUsYSk9Pnt0KChyLGkpPT57cj9hKHIpOmUoaSl9KX0pfSk7dmFyIHVGPW4oKCk9PntwMigpfSk7ZnVuY3Rpb24gdnQodCxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIiYmZSE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtVaih0LGUpO2Z1bmN0aW9uIGEoKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9ZT09PW51bGw/T2JqZWN0LmNyZWF0ZShlKTooYS5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbmV3IGEpfWZ1bmN0aW9uIHJSdCh0LGUpe3ZhciBhPXt9O2Zvcih2YXIgciBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZlLmluZGV4T2Yocik8MCYmKGFbcl09dFtyXSk7aWYodCE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBpPTAscj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2k8ci5sZW5ndGg7aSsrKWUuaW5kZXhPZihyW2ldKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxyW2ldKSYmKGFbcltpXV09dFtyW2ldXSk7cmV0dXJuIGF9ZnVuY3Rpb24gaVJ0KHQsZSxhLHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGgsbz1pPDM/ZTpyPT09bnVsbD9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxhKTpyLHM7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIilvPVJlZmxlY3QuZGVjb3JhdGUodCxlLGEscik7ZWxzZSBmb3IodmFyIGw9dC5sZW5ndGgtMTtsPj0wO2wtLSkocz10W2xdKSYmKG89KGk8Mz9zKG8pOmk+Mz9zKGUsYSxvKTpzKGUsYSkpfHxvKTtyZXR1cm4gaT4zJiZvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxhLG8pLG99ZnVuY3Rpb24gb1J0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGEscil7ZShhLHIsdCl9fWZ1bmN0aW9uIHNSdCh0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9ZnVuY3Rpb24gblJ0KHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfWZ1bmN0aW9uIGxSdCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJzeW1ib2wiP3Q6IiIuY29uY2F0KHQpfWZ1bmN0aW9uIGNSdCh0LGUsYSl7cmV0dXJuIHR5cGVvZiBlPT0ic3ltYm9sIiYmKGU9ZS5kZXNjcmlwdGlvbj8iWyIuY29uY2F0KGUuZGVzY3JpcHRpb24sIl0iKToiIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIm5hbWUiLHtjb25maWd1cmFibGU6ITAsdmFsdWU6YT8iIi5jb25jYXQoYSwiICIsZSk6ZX0pfWZ1bmN0aW9uIGRSdCh0LGUpe2lmKHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmdHlwZW9mIFJlZmxlY3QubWV0YWRhdGE9PSJmdW5jdGlvbiIpcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEodCxlKX1mdW5jdGlvbiBZaih0LGUsYSxyKXtmdW5jdGlvbiBpKG8pe3JldHVybiBvIGluc3RhbmNlb2YgYT9vOm5ldyBhKGZ1bmN0aW9uKHMpe3Mobyl9KX1yZXR1cm4gbmV3KGF8fChhPVByb21pc2UpKShmdW5jdGlvbihvLHMpe2Z1bmN0aW9uIGwodSl7dHJ5e2Moci5uZXh0KHUpKX1jYXRjaChkKXtzKGQpfX1mdW5jdGlvbiBmKHUpe3RyeXtjKHIudGhyb3codSkpfWNhdGNoKGQpe3MoZCl9fWZ1bmN0aW9uIGModSl7dS5kb25lP28odS52YWx1ZSk6aSh1LnZhbHVlKS50aGVuKGwsZil9Yygocj1yLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSl9ZnVuY3Rpb24gSTUodCxlKXt2YXIgYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYob1swXSYxKXRocm93IG9bMV07cmV0dXJuIG9bMV19LHRyeXM6W10sb3BzOltdfSxyLGksbyxzPU9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvcj09ImZ1bmN0aW9uIj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIHMubmV4dD1sKDApLHMudGhyb3c9bCgxKSxzLnJldHVybj1sKDIpLHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJihzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHM7ZnVuY3Rpb24gbChjKXtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGYoW2MsdV0pfX1mdW5jdGlvbiBmKGMpe2lmKHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7cyYmKHM9MCxjWzBdJiYoYT0wKSksYTspdHJ5e2lmKHI9MSxpJiYobz1jWzBdJjI/aS5yZXR1cm46Y1swXT9pLnRocm93fHwoKG89aS5yZXR1cm4pJiZvLmNhbGwoaSksMCk6aS5uZXh0KSYmIShvPW8uY2FsbChpLGNbMV0pKS5kb25lKXJldHVybiBvO3N3aXRjaChpPTAsbyYmKGM9W2NbMF0mMixvLnZhbHVlXSksY1swXSl7Y2FzZSAwOmNhc2UgMTpvPWM7YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOmNbMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxpPWNbMV0sYz1bMF07Y29udGludWU7Y2FzZSA3OmM9YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYobz1hLnRyeXMsIShvPW8ubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pJiYoY1swXT09PTZ8fGNbMF09PT0yKSl7YT0wO2NvbnRpbnVlfWlmKGNbMF09PT0zJiYoIW98fGNbMV0+b1swXSYmY1sxXTxvWzNdKSl7YS5sYWJlbD1jWzFdO2JyZWFrfWlmKGNbMF09PT02JiZhLmxhYmVsPG9bMV0pe2EubGFiZWw9b1sxXSxvPWM7YnJlYWt9aWYobyYmYS5sYWJlbDxvWzJdKXthLmxhYmVsPW9bMl0sYS5vcHMucHVzaChjKTticmVha31vWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9Yz1lLmNhbGwodCxhKX1jYXRjaCh1KXtjPVs2LHVdLGk9MH1maW5hbGx5e3I9bz0wfWlmKGNbMF0mNSl0aHJvdyBjWzFdO3JldHVybnt2YWx1ZTpjWzBdP2NbMV06dm9pZCAwLGRvbmU6ITB9fX1mdW5jdGlvbiBmUnQodCxlKXtmb3IodmFyIGEgaW4gdClhIT09ImRlZmF1bHQiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsYSkmJldqKGUsdCxhKX1mdW5jdGlvbiBoMih0KXt2YXIgZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wuaXRlcmF0b3IsYT1lJiZ0W2VdLHI9MDtpZihhKXJldHVybiBhLmNhbGwodCk7aWYodCYmdHlwZW9mIHQubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiB0JiZyPj10Lmxlbmd0aCYmKHQ9dm9pZCAwKSx7dmFsdWU6dCYmdFtyKytdLGRvbmU6IXR9fX07dGhyb3cgbmV3IFR5cGVFcnJvcihlPyJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiI6IlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKX1mdW5jdGlvbiBfMSh0LGUpe3ZhciBhPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnRbU3ltYm9sLml0ZXJhdG9yXTtpZighYSlyZXR1cm4gdDt2YXIgcj1hLmNhbGwodCksaSxvPVtdLHM7dHJ5e2Zvcig7KGU9PT12b2lkIDB8fGUtLSA+MCkmJiEoaT1yLm5leHQoKSkuZG9uZTspby5wdXNoKGkudmFsdWUpfWNhdGNoKGwpe3M9e2Vycm9yOmx9fWZpbmFsbHl7dHJ5e2kmJiFpLmRvbmUmJihhPXIucmV0dXJuKSYmYS5jYWxsKHIpfWZpbmFsbHl7aWYocyl0aHJvdyBzLmVycm9yfX1yZXR1cm4gb31mdW5jdGlvbiB1UnQoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdD10LmNvbmNhdChfMShhcmd1bWVudHNbZV0pKTtyZXR1cm4gdH1mdW5jdGlvbiBwUnQoKXtmb3IodmFyIHQ9MCxlPTAsYT1hcmd1bWVudHMubGVuZ3RoO2U8YTtlKyspdCs9YXJndW1lbnRzW2VdLmxlbmd0aDtmb3IodmFyIHI9QXJyYXkodCksaT0wLGU9MDtlPGE7ZSsrKWZvcih2YXIgbz1hcmd1bWVudHNbZV0scz0wLGw9by5sZW5ndGg7czxsO3MrKyxpKyspcltpXT1vW3NdO3JldHVybiByfWZ1bmN0aW9uIGUyKHQsZSxhKXtpZihhfHxhcmd1bWVudHMubGVuZ3RoPT09Milmb3IodmFyIHI9MCxpPWUubGVuZ3RoLG87cjxpO3IrKykob3x8IShyIGluIGUpKSYmKG98fChvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMCxyKSksb1tyXT1lW3JdKTtyZXR1cm4gdC5jb25jYXQob3x8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpfWZ1bmN0aW9uIGFpKHQpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgYWk/KHRoaXMudj10LHRoaXMpOm5ldyBhaSh0KX1mdW5jdGlvbiBaaih0LGUsYSl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciByPWEuYXBwbHkodCxlfHxbXSksaSxvPVtdO3JldHVybiBpPU9iamVjdC5jcmVhdGUoKHR5cGVvZiBBc3luY0l0ZXJhdG9yPT0iZnVuY3Rpb24iP0FzeW5jSXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpLGwoIm5leHQiKSxsKCJ0aHJvdyIpLGwoInJldHVybiIscyksaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30saTtmdW5jdGlvbiBzKGcpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGIpLnRoZW4oZyxkKX19ZnVuY3Rpb24gbChnLGIpe3JbZ10mJihpW2ddPWZ1bmN0aW9uKHgpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihtLHYpe28ucHVzaChbZyx4LG0sdl0pPjF8fGYoZyx4KX0pfSxiJiYoaVtnXT1iKGlbZ10pKSl9ZnVuY3Rpb24gZihnLGIpe3RyeXtjKHJbZ10oYikpfWNhdGNoKHgpe2gob1swXVszXSx4KX19ZnVuY3Rpb24gYyhnKXtnLnZhbHVlIGluc3RhbmNlb2YgYWk/UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUudikudGhlbih1LGQpOmgob1swXVsyXSxnKX1mdW5jdGlvbiB1KGcpe2YoIm5leHQiLGcpfWZ1bmN0aW9uIGQoZyl7ZigidGhyb3ciLGcpfWZ1bmN0aW9uIGgoZyxiKXtnKGIpLG8uc2hpZnQoKSxvLmxlbmd0aCYmZihvWzBdWzBdLG9bMF1bMV0pfX1mdW5jdGlvbiBoUnQodCl7dmFyIGUsYTtyZXR1cm4gZT17fSxyKCJuZXh0IikscigidGhyb3ciLGZ1bmN0aW9uKGkpe3Rocm93IGl9KSxyKCJyZXR1cm4iKSxlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZTtmdW5jdGlvbiByKGksbyl7ZVtpXT10W2ldP2Z1bmN0aW9uKHMpe3JldHVybihhPSFhKT97dmFsdWU6YWkodFtpXShzKSksZG9uZTohMX06bz9vKHMpOnN9Om99fWZ1bmN0aW9uIFhqKHQpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgZT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSxhO3JldHVybiBlP2UuY2FsbCh0KToodD10eXBlb2YgaDI9PSJmdW5jdGlvbiI/aDIodCk6dFtTeW1ib2wuaXRlcmF0b3JdKCksYT17fSxyKCJuZXh0IikscigidGhyb3ciKSxyKCJyZXR1cm4iKSxhW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxhKTtmdW5jdGlvbiByKG8pe2Fbb109dFtvXSYmZnVuY3Rpb24ocyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsZil7cz10W29dKHMpLGkobCxmLHMuZG9uZSxzLnZhbHVlKX0pfX1mdW5jdGlvbiBpKG8scyxsLGYpe1Byb21pc2UucmVzb2x2ZShmKS50aGVuKGZ1bmN0aW9uKGMpe28oe3ZhbHVlOmMsZG9uZTpsfSl9LHMpfX1mdW5jdGlvbiBtUnQodCxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJyYXciLHt2YWx1ZTplfSk6dC5yYXc9ZSx0fWZ1bmN0aW9uIHhSdCh0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIGE9R2oodCkscj0wO3I8YS5sZW5ndGg7cisrKWFbcl0hPT0iZGVmYXVsdCImJldqKGUsdCxhW3JdKTtyZXR1cm4gZ1J0KGUsdCksZX1mdW5jdGlvbiBiUnQodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fWZ1bmN0aW9uIHZSdCh0LGUsYSxyKXtpZihhPT09ImEiJiYhcil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj90IT09ZXx8IXI6IWUuaGFzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpO3JldHVybiBhPT09Im0iP3I6YT09PSJhIj9yLmNhbGwodCk6cj9yLnZhbHVlOmUuZ2V0KHQpfWZ1bmN0aW9uIHlSdCh0LGUsYSxyLGkpe2lmKHI9PT0ibSIpdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlIik7aWYocj09PSJhIiYmIWkpdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgc2V0dGVyIik7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiI/dCE9PWV8fCFpOiFlLmhhcyh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpO3JldHVybiByPT09ImEiP2kuY2FsbCh0LGEpOmk/aS52YWx1ZT1hOmUuc2V0KHQsYSksYX1mdW5jdGlvbiB3UnQodCxlKXtpZihlPT09bnVsbHx8dHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgdXNlICdpbicgb3BlcmF0b3Igb24gbm9uLW9iamVjdCIpO3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj9lPT09dDp0LmhhcyhlKX1mdW5jdGlvbiBNUnQodCxlLGEpe2lmKGUhPW51bGwpe2lmKHR5cGVvZiBlIT0ib2JqZWN0IiYmdHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkLiIpO3ZhciByLGk7aWYoYSl7aWYoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC4iKTtyPWVbU3ltYm9sLmFzeW5jRGlzcG9zZV19aWYocj09PXZvaWQgMCl7aWYoIVN5bWJvbC5kaXNwb3NlKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5kaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO3I9ZVtTeW1ib2wuZGlzcG9zZV0sYSYmKGk9cil9aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IG5vdCBkaXNwb3NhYmxlLiIpO2kmJihyPWZ1bmN0aW9uKCl7dHJ5e2kuY2FsbCh0aGlzKX1jYXRjaChvKXtyZXR1cm4gUHJvbWlzZS5yZWplY3Qobyl9fSksdC5zdGFjay5wdXNoKHt2YWx1ZTplLGRpc3Bvc2U6cixhc3luYzphfSl9ZWxzZSBhJiZ0LnN0YWNrLnB1c2goe2FzeW5jOiEwfSk7cmV0dXJuIGV9ZnVuY3Rpb24ga1J0KHQpe2Z1bmN0aW9uIGUobyl7dC5lcnJvcj10Lmhhc0Vycm9yP25ldyB6UnQobyx0LmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6byx0Lmhhc0Vycm9yPSEwfXZhciBhLHI9MDtmdW5jdGlvbiBpKCl7Zm9yKDthPXQuc3RhY2sucG9wKCk7KXRyeXtpZighYS5hc3luYyYmcj09PTEpcmV0dXJuIHI9MCx0LnN0YWNrLnB1c2goYSksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihpKTtpZihhLmRpc3Bvc2Upe3ZhciBvPWEuZGlzcG9zZS5jYWxsKGEudmFsdWUpO2lmKGEuYXN5bmMpcmV0dXJuIHJ8PTIsUHJvbWlzZS5yZXNvbHZlKG8pLnRoZW4oaSxmdW5jdGlvbihzKXtyZXR1cm4gZShzKSxpKCl9KX1lbHNlIHJ8PTF9Y2F0Y2gocyl7ZShzKX1pZihyPT09MSlyZXR1cm4gdC5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdCh0LmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTtpZih0Lmhhc0Vycm9yKXRocm93IHQuZXJyb3J9cmV0dXJuIGkoKX1mdW5jdGlvbiBTUnQodCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciJiYvXlwuXC4/XC8vLnRlc3QodCk/dC5yZXBsYWNlKC9cLih0c3gpJHwoKD86XC5kKT8pKCg/OlwuW14uL10rPyk/KVwuKFtjbV0/KXRzJC9pLGZ1bmN0aW9uKGEscixpLG8scyl7cmV0dXJuIHI/ZT8iLmpzeCI6Ii5qcyI6aSYmKCFvfHwhcyk/YTppK28rIi4iK3MudG9Mb3dlckNhc2UoKSsianMifSk6dH12YXIgVWosamosV2osZ1J0LEdqLHpSdCxhMDEsWnQ9bigoKT0+e1VqPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVqPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihhLHIpe2EuX19wcm90b19fPXJ9fHxmdW5jdGlvbihhLHIpe2Zvcih2YXIgaSBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGkpJiYoYVtpXT1yW2ldKX0sVWoodCxlKX07amo9ZnVuY3Rpb24oKXtyZXR1cm4gamo9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciBhLHI9MSxpPWFyZ3VtZW50cy5sZW5ndGg7cjxpO3IrKyl7YT1hcmd1bWVudHNbcl07Zm9yKHZhciBvIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsbykmJihlW29dPWFbb10pfXJldHVybiBlfSxqai5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O1dqPU9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKHQsZSxhLHIpe3I9PT12b2lkIDAmJihyPWEpO3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxhKTsoIWl8fCgiZ2V0ImluIGk/IWUuX19lc01vZHVsZTppLndyaXRhYmxlfHxpLmNvbmZpZ3VyYWJsZSkpJiYoaT17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZVthXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLGkpfSk6KGZ1bmN0aW9uKHQsZSxhLHIpe3I9PT12b2lkIDAmJihyPWEpLHRbcl09ZVthXX0pO2dSdD1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbih0LGUpe3QuZGVmYXVsdD1lfSxHaj1mdW5jdGlvbih0KXtyZXR1cm4gR2o9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKGUpe3ZhciBhPVtdO2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYoYVthLmxlbmd0aF09cik7cmV0dXJuIGF9LEdqKHQpfTt6UnQ9dHlwZW9mIFN1cHByZXNzZWRFcnJvcj09ImZ1bmN0aW9uIj9TdXBwcmVzc2VkRXJyb3I6ZnVuY3Rpb24odCxlLGEpe3ZhciByPW5ldyBFcnJvcihhKTtyZXR1cm4gci5uYW1lPSJTdXBwcmVzc2VkRXJyb3IiLHIuZXJyb3I9dCxyLnN1cHByZXNzZWQ9ZSxyfTthMDE9e19fZXh0ZW5kczp2dCxfX2Fzc2lnbjpqaixfX3Jlc3Q6clJ0LF9fZGVjb3JhdGU6aVJ0LF9fcGFyYW06b1J0LF9fZXNEZWNvcmF0ZTpzUnQsX19ydW5Jbml0aWFsaXplcnM6blJ0LF9fcHJvcEtleTpsUnQsX19zZXRGdW5jdGlvbk5hbWU6Y1J0LF9fbWV0YWRhdGE6ZFJ0LF9fYXdhaXRlcjpZaixfX2dlbmVyYXRvcjpJNSxfX2NyZWF0ZUJpbmRpbmc6V2osX19leHBvcnRTdGFyOmZSdCxfX3ZhbHVlczpoMixfX3JlYWQ6XzEsX19zcHJlYWQ6dVJ0LF9fc3ByZWFkQXJyYXlzOnBSdCxfX3NwcmVhZEFycmF5OmUyLF9fYXdhaXQ6YWksX19hc3luY0dlbmVyYXRvcjpaaixfX2FzeW5jRGVsZWdhdG9yOmhSdCxfX2FzeW5jVmFsdWVzOlhqLF9fbWFrZVRlbXBsYXRlT2JqZWN0Om1SdCxfX2ltcG9ydFN0YXI6eFJ0LF9faW1wb3J0RGVmYXVsdDpiUnQsX19jbGFzc1ByaXZhdGVGaWVsZEdldDp2UnQsX19jbGFzc1ByaXZhdGVGaWVsZFNldDp5UnQsX19jbGFzc1ByaXZhdGVGaWVsZEluOndSdCxfX2FkZERpc3Bvc2FibGVSZXNvdXJjZTpNUnQsX19kaXNwb3NlUmVzb3VyY2VzOmtSdCxfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbjpTUnR9fSk7ZnVuY3Rpb24gbHQodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24ifXZhciBqMT1uKCgpPT57fSk7ZnVuY3Rpb24gWTIodCl7dmFyIGU9ZnVuY3Rpb24ocil7RXJyb3IuY2FsbChyKSxyLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrfSxhPXQoZSk7cmV0dXJuIGEucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxhLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hLGF9dmFyIGxvPW4oKCk9Pnt9KTt2YXIgRjUsUWo9bigoKT0+e2xvKCk7RjU9WTIoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGEpe3QodGhpcyksdGhpcy5tZXNzYWdlPWE/YS5sZW5ndGgrYCBlcnJvcnMgb2NjdXJyZWQgZHVyaW5nIHVuc3Vic2NyaXB0aW9uOgpgK2EubWFwKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIGkrMSsiKSAiK3IudG9TdHJpbmcoKX0pLmpvaW4oYAogIGApOiIiLHRoaXMubmFtZT0iVW5zdWJzY3JpcHRpb25FcnJvciIsdGhpcy5lcnJvcnM9YX19KX0pO2Z1bmN0aW9uIFJhKHQsZSl7aWYodCl7dmFyIGE9dC5pbmRleE9mKGUpOzA8PWEmJnQuc3BsaWNlKGEsMSl9fXZhciBiYz1uKCgpPT57fSk7ZnVuY3Rpb24gcEYodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBrMXx8dCYmImNsb3NlZCJpbiB0JiZsdCh0LnJlbW92ZSkmJmx0KHQuYWRkKSYmbHQodC51bnN1YnNjcmliZSl9ZnVuY3Rpb24gZVBlKHQpe2x0KHQpP3QoKTp0LnVuc3Vic2NyaWJlKCl9dmFyIGsxLEtqLHhyPW4oKCk9PntadCgpO2oxKCk7UWooKTtiYygpO2sxPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dGhpcy5pbml0aWFsVGVhcmRvd249ZSx0aGlzLmNsb3NlZD0hMSx0aGlzLl9wYXJlbnRhZ2U9bnVsbCx0aGlzLl9maW5hbGl6ZXJzPW51bGx9cmV0dXJuIHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dmFyIGUsYSxyLGksbztpZighdGhpcy5jbG9zZWQpe3RoaXMuY2xvc2VkPSEwO3ZhciBzPXRoaXMuX3BhcmVudGFnZTtpZihzKWlmKHRoaXMuX3BhcmVudGFnZT1udWxsLEFycmF5LmlzQXJyYXkocykpdHJ5e2Zvcih2YXIgbD1oMihzKSxmPWwubmV4dCgpOyFmLmRvbmU7Zj1sLm5leHQoKSl7dmFyIGM9Zi52YWx1ZTtjLnJlbW92ZSh0aGlzKX19Y2F0Y2goeCl7ZT17ZXJyb3I6eH19ZmluYWxseXt0cnl7ZiYmIWYuZG9uZSYmKGE9bC5yZXR1cm4pJiZhLmNhbGwobCl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fWVsc2Ugcy5yZW1vdmUodGhpcyk7dmFyIHU9dGhpcy5pbml0aWFsVGVhcmRvd247aWYobHQodSkpdHJ5e3UoKX1jYXRjaCh4KXtvPXggaW5zdGFuY2VvZiBGNT94LmVycm9yczpbeF19dmFyIGQ9dGhpcy5fZmluYWxpemVycztpZihkKXt0aGlzLl9maW5hbGl6ZXJzPW51bGw7dHJ5e2Zvcih2YXIgaD1oMihkKSxnPWgubmV4dCgpOyFnLmRvbmU7Zz1oLm5leHQoKSl7dmFyIGI9Zy52YWx1ZTt0cnl7ZVBlKGIpfWNhdGNoKHgpe289bz8/W10seCBpbnN0YW5jZW9mIEY1P289ZTIoZTIoW10sXzEobykpLF8xKHguZXJyb3JzKSk6by5wdXNoKHgpfX19Y2F0Y2goeCl7cj17ZXJyb3I6eH19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKGk9aC5yZXR1cm4pJiZpLmNhbGwoaCl9ZmluYWxseXtpZihyKXRocm93IHIuZXJyb3J9fX1pZihvKXRocm93IG5ldyBGNShvKX19LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt2YXIgYTtpZihlJiZlIT09dGhpcylpZih0aGlzLmNsb3NlZCllUGUoZSk7ZWxzZXtpZihlIGluc3RhbmNlb2YgdCl7aWYoZS5jbG9zZWR8fGUuX2hhc1BhcmVudCh0aGlzKSlyZXR1cm47ZS5fYWRkUGFyZW50KHRoaXMpfSh0aGlzLl9maW5hbGl6ZXJzPShhPXRoaXMuX2ZpbmFsaXplcnMpIT09bnVsbCYmYSE9PXZvaWQgMD9hOltdKS5wdXNoKGUpfX0sdC5wcm90b3R5cGUuX2hhc1BhcmVudD1mdW5jdGlvbihlKXt2YXIgYT10aGlzLl9wYXJlbnRhZ2U7cmV0dXJuIGE9PT1lfHxBcnJheS5pc0FycmF5KGEpJiZhLmluY2x1ZGVzKGUpfSx0LnByb3RvdHlwZS5fYWRkUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciBhPXRoaXMuX3BhcmVudGFnZTt0aGlzLl9wYXJlbnRhZ2U9QXJyYXkuaXNBcnJheShhKT8oYS5wdXNoKGUpLGEpOmE/W2EsZV06ZX0sdC5wcm90b3R5cGUuX3JlbW92ZVBhcmVudD1mdW5jdGlvbihlKXt2YXIgYT10aGlzLl9wYXJlbnRhZ2U7YT09PWU/dGhpcy5fcGFyZW50YWdlPW51bGw6QXJyYXkuaXNBcnJheShhKSYmUmEoYSxlKX0sdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGUpe3ZhciBhPXRoaXMuX2ZpbmFsaXplcnM7YSYmUmEoYSxlKSxlIGluc3RhbmNlb2YgdCYmZS5fcmVtb3ZlUGFyZW50KHRoaXMpfSx0LkVNUFRZPShmdW5jdGlvbigpe3ZhciBlPW5ldyB0O3JldHVybiBlLmNsb3NlZD0hMCxlfSkoKSx0fSkoKSxLaj1rMS5FTVBUWX0pO3ZhciB5YSx2Yz1uKCgpPT57eWE9e29uVW5oYW5kbGVkRXJyb3I6bnVsbCxvblN0b3BwZWROb3RpZmljYXRpb246bnVsbCxQcm9taXNlOnZvaWQgMCx1c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nOiExLHVzZURlcHJlY2F0ZWROZXh0Q29udGV4dDohMX19KTt2YXIgeWMsSmo9bigoKT0+e1p0KCk7eWM9e3NldFRpbWVvdXQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIGE9W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspYVtyLTJdPWFyZ3VtZW50c1tyXTt2YXIgaT15Yy5kZWxlZ2F0ZTtyZXR1cm4gaT8uc2V0VGltZW91dD9pLnNldFRpbWVvdXQuYXBwbHkoaSxlMihbdCxlXSxfMShhKSkpOnNldFRpbWVvdXQuYXBwbHkodm9pZCAwLGUyKFt0LGVdLF8xKGEpKSl9LGNsZWFyVGltZW91dDpmdW5jdGlvbih0KXt2YXIgZT15Yy5kZWxlZ2F0ZTtyZXR1cm4oZT8uY2xlYXJUaW1lb3V0fHxjbGVhclRpbWVvdXQpKHQpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7ZnVuY3Rpb24gaEYodCl7eWMuc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPXlhLm9uVW5oYW5kbGVkRXJyb3I7aWYoZSllKHQpO2Vsc2UgdGhyb3cgdH0pfXZhciBlVz1uKCgpPT57dmMoKTtKaigpfSk7ZnVuY3Rpb24gd2EoKXt9dmFyIE1zPW4oKCk9Pnt9KTtmdW5jdGlvbiBhUGUodCl7cmV0dXJuIHRXKCJFIix2b2lkIDAsdCl9ZnVuY3Rpb24gclBlKHQpe3JldHVybiB0VygiTiIsdCx2b2lkIDApfWZ1bmN0aW9uIHRXKHQsZSxhKXtyZXR1cm57a2luZDp0LHZhbHVlOmUsZXJyb3I6YX19dmFyIHRQZSxpUGU9bigoKT0+e3RQZT0oZnVuY3Rpb24oKXtyZXR1cm4gdFcoIkMiLHZvaWQgMCx2b2lkIDApfSkoKX0pO2Z1bmN0aW9uIHdjKHQpe2lmKHlhLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpe3ZhciBlPSF6cztpZihlJiYoenM9e2Vycm9yVGhyb3duOiExLGVycm9yOm51bGx9KSx0KCksZSl7dmFyIGE9enMscj1hLmVycm9yVGhyb3duLGk9YS5lcnJvcjtpZih6cz1udWxsLHIpdGhyb3cgaX19ZWxzZSB0KCl9ZnVuY3Rpb24gb1BlKHQpe3lhLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJnpzJiYoenMuZXJyb3JUaHJvd249ITAsenMuZXJyb3I9dCl9dmFyIHpzLG1GPW4oKCk9Pnt2YygpO3pzPW51bGx9KTtmdW5jdGlvbiBhVyh0LGUpe3JldHVybiBDUnQuY2FsbCh0LGUpfWZ1bmN0aW9uIGdGKHQpe3lhLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc/b1BlKHQpOmhGKHQpfWZ1bmN0aW9uIFRSdCh0KXt0aHJvdyB0fWZ1bmN0aW9uIHJXKHQsZSl7dmFyIGE9eWEub25TdG9wcGVkTm90aWZpY2F0aW9uO2EmJnljLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gYSh0LGUpfSl9dmFyIGtzLENSdCxMUnQsTzUsX1J0LHhGPW4oKCk9PntadCgpO2oxKCk7eHIoKTt2YygpO2VXKCk7TXMoKTtpUGUoKTtKaigpO21GKCk7a3M9KGZ1bmN0aW9uKHQpe3Z0KGUsdCk7ZnVuY3Rpb24gZShhKXt2YXIgcj10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuaXNTdG9wcGVkPSExLGE/KHIuZGVzdGluYXRpb249YSxwRihhKSYmYS5hZGQocikpOnIuZGVzdGluYXRpb249X1J0LHJ9cmV0dXJuIGUuY3JlYXRlPWZ1bmN0aW9uKGEscixpKXtyZXR1cm4gbmV3IE81KGEscixpKX0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihhKXt0aGlzLmlzU3RvcHBlZD9yVyhyUGUoYSksdGhpcyk6dGhpcy5fbmV4dChhKX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24oYSl7dGhpcy5pc1N0b3BwZWQ/clcoYVBlKGEpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcihhKSl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ/clcodFBlLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9jb21wbGV0ZSgpKX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmNsb3NlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLHQucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksdGhpcy5kZXN0aW5hdGlvbj1udWxsKX0sZS5wcm90b3R5cGUuX25leHQ9ZnVuY3Rpb24oYSl7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KGEpfSxlLnByb3RvdHlwZS5fZXJyb3I9ZnVuY3Rpb24oYSl7dHJ5e3RoaXMuZGVzdGluYXRpb24uZXJyb3IoYSl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fSxlLnByb3RvdHlwZS5fY29tcGxldGU9ZnVuY3Rpb24oKXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sZX0pKGsxKSxDUnQ9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQ7TFJ0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9ZX1yZXR1cm4gdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgYT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihhLm5leHQpdHJ5e2EubmV4dChlKX1jYXRjaChyKXtnRihyKX19LHQucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGUpe3ZhciBhPXRoaXMucGFydGlhbE9ic2VydmVyO2lmKGEuZXJyb3IpdHJ5e2EuZXJyb3IoZSl9Y2F0Y2gocil7Z0Yocil9ZWxzZSBnRihlKX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihlLmNvbXBsZXRlKXRyeXtlLmNvbXBsZXRlKCl9Y2F0Y2goYSl7Z0YoYSl9fSx0fSkoKSxPNT0oZnVuY3Rpb24odCl7dnQoZSx0KTtmdW5jdGlvbiBlKGEscixpKXt2YXIgbz10LmNhbGwodGhpcyl8fHRoaXMscztpZihsdChhKXx8IWEpcz17bmV4dDphPz92b2lkIDAsZXJyb3I6cj8/dm9pZCAwLGNvbXBsZXRlOmk/P3ZvaWQgMH07ZWxzZXt2YXIgbDtvJiZ5YS51c2VEZXByZWNhdGVkTmV4dENvbnRleHQ/KGw9T2JqZWN0LmNyZWF0ZShhKSxsLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7cmV0dXJuIG8udW5zdWJzY3JpYmUoKX0scz17bmV4dDphLm5leHQmJmFXKGEubmV4dCxsKSxlcnJvcjphLmVycm9yJiZhVyhhLmVycm9yLGwpLGNvbXBsZXRlOmEuY29tcGxldGUmJmFXKGEuY29tcGxldGUsbCl9KTpzPWF9cmV0dXJuIG8uZGVzdGluYXRpb249bmV3IExSdChzKSxvfXJldHVybiBlfSkoa3MpO19SdD17Y2xvc2VkOiEwLG5leHQ6d2EsZXJyb3I6VFJ0LGNvbXBsZXRlOndhfX0pO3ZhciBTcyxCNT1uKCgpPT57U3M9KGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIn0pKCl9KTtmdW5jdGlvbiBSNSh0KXtyZXR1cm4gdH12YXIgYkY9bigoKT0+e30pO2Z1bmN0aW9uIEFSdCgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gaVcodCl9ZnVuY3Rpb24gaVcodCl7cmV0dXJuIHQubGVuZ3RoPT09MD9SNTp0Lmxlbmd0aD09PTE/dFswXTpmdW5jdGlvbihhKXtyZXR1cm4gdC5yZWR1Y2UoZnVuY3Rpb24ocixpKXtyZXR1cm4gaShyKX0sYSl9fXZhciBvVz1uKCgpPT57YkYoKX0pO2Z1bmN0aW9uIHNQZSh0KXt2YXIgZTtyZXR1cm4oZT10Pz95YS5Qcm9taXNlKSE9PW51bGwmJmUhPT12b2lkIDA/ZTpQcm9taXNlfWZ1bmN0aW9uICRSdCh0KXtyZXR1cm4gdCYmbHQodC5uZXh0KSYmbHQodC5lcnJvcikmJmx0KHQuY29tcGxldGUpfWZ1bmN0aW9uIERSdCh0KXtyZXR1cm4gdCYmdCBpbnN0YW5jZW9mIGtzfHwkUnQodCkmJnBGKHQpfXZhciB4dCxaMj1uKCgpPT57eEYoKTt4cigpO0I1KCk7b1coKTt2YygpO2oxKCk7bUYoKTt4dD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe2UmJih0aGlzLl9zdWJzY3JpYmU9ZSl9cmV0dXJuIHQucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24oZSl7dmFyIGE9bmV3IHQ7cmV0dXJuIGEuc291cmNlPXRoaXMsYS5vcGVyYXRvcj1lLGF9LHQucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihlLGEscil7dmFyIGk9dGhpcyxvPURSdChlKT9lOm5ldyBPNShlLGEscik7cmV0dXJuIHdjKGZ1bmN0aW9uKCl7dmFyIHM9aSxsPXMub3BlcmF0b3IsZj1zLnNvdXJjZTtvLmFkZChsP2wuY2FsbChvLGYpOmY/aS5fc3Vic2NyaWJlKG8pOmkuX3RyeVN1YnNjcmliZShvKSl9KSxvfSx0LnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gdGhpcy5fc3Vic2NyaWJlKGUpfWNhdGNoKGEpe2UuZXJyb3IoYSl9fSx0LnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUsYSl7dmFyIHI9dGhpcztyZXR1cm4gYT1zUGUoYSksbmV3IGEoZnVuY3Rpb24oaSxvKXt2YXIgcz1uZXcgTzUoe25leHQ6ZnVuY3Rpb24obCl7dHJ5e2UobCl9Y2F0Y2goZil7byhmKSxzLnVuc3Vic2NyaWJlKCl9fSxlcnJvcjpvLGNvbXBsZXRlOml9KTtyLnN1YnNjcmliZShzKX0pfSx0LnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3ZhciBhO3JldHVybihhPXRoaXMuc291cmNlKT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEuc3Vic2NyaWJlKGUpfSx0LnByb3RvdHlwZVtTc109ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxhPTA7YTxhcmd1bWVudHMubGVuZ3RoO2ErKyllW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gaVcoZSkodGhpcyl9LHQucHJvdG90eXBlLnRvUHJvbWlzZT1mdW5jdGlvbihlKXt2YXIgYT10aGlzO3JldHVybiBlPXNQZShlKSxuZXcgZShmdW5jdGlvbihyLGkpe3ZhciBvO2Euc3Vic2NyaWJlKGZ1bmN0aW9uKHMpe3JldHVybiBvPXN9LGZ1bmN0aW9uKHMpe3JldHVybiBpKHMpfSxmdW5jdGlvbigpe3JldHVybiByKG8pfSl9KX0sdC5jcmVhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KGUpfSx0fSkoKX0pO2Z1bmN0aW9uIHNXKHQpe3JldHVybiBsdCh0Py5saWZ0KX1mdW5jdGlvbiBWdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoc1coZSkpcmV0dXJuIGUubGlmdChmdW5jdGlvbihhKXt0cnl7cmV0dXJuIHQoYSx0aGlzKX1jYXRjaChyKXt0aGlzLmVycm9yKHIpfX0pO3Rocm93IG5ldyBUeXBlRXJyb3IoIlVuYWJsZSB0byBsaWZ0IHVua25vd24gT2JzZXJ2YWJsZSB0eXBlIil9fXZhciB0Mj1uKCgpPT57ajEoKX0pO2Z1bmN0aW9uIFB0KHQsZSxhLHIsaSl7cmV0dXJuIG5ldyBuUGUodCxlLGEscixpKX12YXIgblBlLFAyPW4oKCk9PntadCgpO3hGKCk7blBlPShmdW5jdGlvbih0KXt2dChlLHQpO2Z1bmN0aW9uIGUoYSxyLGksbyxzLGwpe3ZhciBmPXQuY2FsbCh0aGlzLGEpfHx0aGlzO3JldHVybiBmLm9uRmluYWxpemU9cyxmLnNob3VsZFVuc3Vic2NyaWJlPWwsZi5fbmV4dD1yP2Z1bmN0aW9uKGMpe3RyeXtyKGMpfWNhdGNoKHUpe2EuZXJyb3IodSl9fTp0LnByb3RvdHlwZS5fbmV4dCxmLl9lcnJvcj1vP2Z1bmN0aW9uKGMpe3RyeXtvKGMpfWNhdGNoKHUpe2EuZXJyb3IodSl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fTp0LnByb3RvdHlwZS5fZXJyb3IsZi5fY29tcGxldGU9aT9mdW5jdGlvbigpe3RyeXtpKCl9Y2F0Y2goYyl7YS5lcnJvcihjKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OnQucHJvdG90eXBlLl9jb21wbGV0ZSxmfXJldHVybiBlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciBhO2lmKCF0aGlzLnNob3VsZFVuc3Vic2NyaWJlfHx0aGlzLnNob3VsZFVuc3Vic2NyaWJlKCkpe3ZhciByPXRoaXMuY2xvc2VkO3QucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksIXImJigoYT10aGlzLm9uRmluYWxpemUpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKHRoaXMpKX19LGV9KShrcyl9KTtmdW5jdGlvbiB2Rigpe3JldHVybiBWdChmdW5jdGlvbih0LGUpe3ZhciBhPW51bGw7dC5fcmVmQ291bnQrKzt2YXIgcj1QdChlLHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7aWYoIXR8fHQuX3JlZkNvdW50PD0wfHwwPC0tdC5fcmVmQ291bnQpe2E9bnVsbDtyZXR1cm59dmFyIGk9dC5fY29ubmVjdGlvbixvPWE7YT1udWxsLGkmJighb3x8aT09PW8pJiZpLnVuc3Vic2NyaWJlKCksZS51bnN1YnNjcmliZSgpfSk7dC5zdWJzY3JpYmUociksci5jbG9zZWR8fChhPXQuY29ubmVjdCgpKX0pfXZhciB5Rj1uKCgpPT57dDIoKTtQMigpfSk7dmFyIGxQZSxjUGU9bigoKT0+e1p0KCk7WjIoKTt4cigpO3lGKCk7UDIoKTt0MigpO2xQZT0oZnVuY3Rpb24odCl7dnQoZSx0KTtmdW5jdGlvbiBlKGEscil7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLnNvdXJjZT1hLGkuc3ViamVjdEZhY3Rvcnk9cixpLl9zdWJqZWN0PW51bGwsaS5fcmVmQ291bnQ9MCxpLl9jb25uZWN0aW9uPW51bGwsc1coYSkmJihpLmxpZnQ9YS5saWZ0KSxpfXJldHVybiBlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmdldFN1YmplY3QoKS5zdWJzY3JpYmUoYSl9LGUucHJvdG90eXBlLmdldFN1YmplY3Q9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9zdWJqZWN0O3JldHVybighYXx8YS5pc1N0b3BwZWQpJiYodGhpcy5fc3ViamVjdD10aGlzLnN1YmplY3RGYWN0b3J5KCkpLHRoaXMuX3N1YmplY3R9LGUucHJvdG90eXBlLl90ZWFyZG93bj1mdW5jdGlvbigpe3RoaXMuX3JlZkNvdW50PTA7dmFyIGE9dGhpcy5fY29ubmVjdGlvbjt0aGlzLl9zdWJqZWN0PXRoaXMuX2Nvbm5lY3Rpb249bnVsbCxhPy51bnN1YnNjcmliZSgpfSxlLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxyPXRoaXMuX2Nvbm5lY3Rpb247aWYoIXIpe3I9dGhpcy5fY29ubmVjdGlvbj1uZXcgazE7dmFyIGk9dGhpcy5nZXRTdWJqZWN0KCk7ci5hZGQodGhpcy5zb3VyY2Uuc3Vic2NyaWJlKFB0KGksdm9pZCAwLGZ1bmN0aW9uKCl7YS5fdGVhcmRvd24oKSxpLmNvbXBsZXRlKCl9LGZ1bmN0aW9uKG8pe2EuX3RlYXJkb3duKCksaS5lcnJvcihvKX0sZnVuY3Rpb24oKXtyZXR1cm4gYS5fdGVhcmRvd24oKX0pKSksci5jbG9zZWQmJih0aGlzLl9jb25uZWN0aW9uPW51bGwscj1rMS5FTVBUWSl9cmV0dXJuIHJ9LGUucHJvdG90eXBlLnJlZkNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIHZGKCkodGhpcyl9LGV9KSh4dCl9KTt2YXIgblcsZFBlPW4oKCk9PntuVz17bm93OmZ1bmN0aW9uKCl7cmV0dXJuKG5XLmRlbGVnYXRlfHxwZXJmb3JtYW5jZSkubm93KCl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgcmksbFc9bigoKT0+e1p0KCk7eHIoKTtyaT17c2NoZWR1bGU6ZnVuY3Rpb24odCl7dmFyIGU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lLGE9Y2FuY2VsQW5pbWF0aW9uRnJhbWUscj1yaS5kZWxlZ2F0ZTtyJiYoZT1yLnJlcXVlc3RBbmltYXRpb25GcmFtZSxhPXIuY2FuY2VsQW5pbWF0aW9uRnJhbWUpO3ZhciBpPWUoZnVuY3Rpb24obyl7YT12b2lkIDAsdChvKX0pO3JldHVybiBuZXcgazEoZnVuY3Rpb24oKXtyZXR1cm4gYT8uKGkpfSl9LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgYT1yaS5kZWxlZ2F0ZTtyZXR1cm4oYT8ucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCxlMihbXSxfMSh0KSkpfSxjYW5jZWxBbmltYXRpb25GcmFtZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgYT1yaS5kZWxlZ2F0ZTtyZXR1cm4oYT8uY2FuY2VsQW5pbWF0aW9uRnJhbWV8fGNhbmNlbEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsZTIoW10sXzEodCkpKX0sZGVsZWdhdGU6dm9pZCAwfX0pO2Z1bmN0aW9uIEVSdCh0KXtyZXR1cm4gdD9mUGUodCk6TlJ0fWZ1bmN0aW9uIGZQZSh0KXtyZXR1cm4gbmV3IHh0KGZ1bmN0aW9uKGUpe3ZhciBhPXR8fG5XLHI9YS5ub3coKSxpPTAsbz1mdW5jdGlvbigpe2UuY2xvc2VkfHwoaT1yaS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24ocyl7aT0wO3ZhciBsPWEubm93KCk7ZS5uZXh0KHt0aW1lc3RhbXA6dD9sOnMsZWxhcHNlZDpsLXJ9KSxvKCl9KSl9O3JldHVybiBvKCksZnVuY3Rpb24oKXtpJiZyaS5jYW5jZWxBbmltYXRpb25GcmFtZShpKX19KX12YXIgTlJ0LHVQZT1uKCgpPT57WjIoKTtkUGUoKTtsVygpO05SdD1mUGUoKX0pO3ZhciBjVyxkVz1uKCgpPT57bG8oKTtjVz1ZMihmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0KHRoaXMpLHRoaXMubmFtZT0iT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IiLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCJ9fSl9KTt2YXIgWDIsZlcsSDU9bigoKT0+e1p0KCk7WjIoKTt4cigpO2RXKCk7YmMoKTttRigpO1gyPShmdW5jdGlvbih0KXt2dChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgYT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGEuY2xvc2VkPSExLGEuY3VycmVudE9ic2VydmVycz1udWxsLGEub2JzZXJ2ZXJzPVtdLGEuaXNTdG9wcGVkPSExLGEuaGFzRXJyb3I9ITEsYS50aHJvd25FcnJvcj1udWxsLGF9cmV0dXJuIGUucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24oYSl7dmFyIHI9bmV3IGZXKHRoaXMsdGhpcyk7cmV0dXJuIHIub3BlcmF0b3I9YSxyfSxlLnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZD1mdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyBjV30sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihhKXt2YXIgcj10aGlzO3djKGZ1bmN0aW9uKCl7dmFyIGksbztpZihyLl90aHJvd0lmQ2xvc2VkKCksIXIuaXNTdG9wcGVkKXtyLmN1cnJlbnRPYnNlcnZlcnN8fChyLmN1cnJlbnRPYnNlcnZlcnM9QXJyYXkuZnJvbShyLm9ic2VydmVycykpO3RyeXtmb3IodmFyIHM9aDIoci5jdXJyZW50T2JzZXJ2ZXJzKSxsPXMubmV4dCgpOyFsLmRvbmU7bD1zLm5leHQoKSl7dmFyIGY9bC52YWx1ZTtmLm5leHQoYSl9fWNhdGNoKGMpe2k9e2Vycm9yOmN9fWZpbmFsbHl7dHJ5e2wmJiFsLmRvbmUmJihvPXMucmV0dXJuKSYmby5jYWxsKHMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX19fSl9LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGEpe3ZhciByPXRoaXM7d2MoZnVuY3Rpb24oKXtpZihyLl90aHJvd0lmQ2xvc2VkKCksIXIuaXNTdG9wcGVkKXtyLmhhc0Vycm9yPXIuaXNTdG9wcGVkPSEwLHIudGhyb3duRXJyb3I9YTtmb3IodmFyIGk9ci5vYnNlcnZlcnM7aS5sZW5ndGg7KWkuc2hpZnQoKS5lcnJvcihhKX19KX0sZS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3djKGZ1bmN0aW9uKCl7aWYoYS5fdGhyb3dJZkNsb3NlZCgpLCFhLmlzU3RvcHBlZCl7YS5pc1N0b3BwZWQ9ITA7Zm9yKHZhciByPWEub2JzZXJ2ZXJzO3IubGVuZ3RoOylyLnNoaWZ0KCkuY29tcGxldGUoKX19KX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmlzU3RvcHBlZD10aGlzLmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz10aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJvYnNlcnZlZCIse2dldDpmdW5jdGlvbigpe3ZhciBhO3JldHVybigoYT10aGlzLm9ic2VydmVycyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmxlbmd0aCk+MH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksdC5wcm90b3R5cGUuX3RyeVN1YnNjcmliZS5jYWxsKHRoaXMsYSl9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKGEpLHRoaXMuX2lubmVyU3Vic2NyaWJlKGEpfSxlLnByb3RvdHlwZS5faW5uZXJTdWJzY3JpYmU9ZnVuY3Rpb24oYSl7dmFyIHI9dGhpcyxpPXRoaXMsbz1pLmhhc0Vycm9yLHM9aS5pc1N0b3BwZWQsbD1pLm9ic2VydmVycztyZXR1cm4gb3x8cz9LajoodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsbC5wdXNoKGEpLG5ldyBrMShmdW5jdGlvbigpe3IuY3VycmVudE9ic2VydmVycz1udWxsLFJhKGwsYSl9KSl9LGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKGEpe3ZhciByPXRoaXMsaT1yLmhhc0Vycm9yLG89ci50aHJvd25FcnJvcixzPXIuaXNTdG9wcGVkO2k/YS5lcnJvcihvKTpzJiZhLmNvbXBsZXRlKCl9LGUucHJvdG90eXBlLmFzT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciBhPW5ldyB4dDtyZXR1cm4gYS5zb3VyY2U9dGhpcyxhfSxlLmNyZWF0ZT1mdW5jdGlvbihhLHIpe3JldHVybiBuZXcgZlcoYSxyKX0sZX0pKHh0KSxmVz0oZnVuY3Rpb24odCl7dnQoZSx0KTtmdW5jdGlvbiBlKGEscil7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLmRlc3RpbmF0aW9uPWEsaS5zb3VyY2U9cixpfXJldHVybiBlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKGEpe3ZhciByLGk7KGk9KHI9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLm5leHQpPT09bnVsbHx8aT09PXZvaWQgMHx8aS5jYWxsKHIsYSl9LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGEpe3ZhciByLGk7KGk9KHI9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmVycm9yKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbChyLGEpfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBhLHI7KHI9KGE9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmNvbXBsZXRlKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbChhKX0sZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihhKXt2YXIgcixpO3JldHVybihpPShyPXRoaXMuc291cmNlKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuc3Vic2NyaWJlKGEpKSE9PW51bGwmJmkhPT12b2lkIDA/aTpLan0sZX0pKFgyKX0pO3ZhciBwUGUsaFBlPW4oKCk9PntadCgpO0g1KCk7cFBlPShmdW5jdGlvbih0KXt2dChlLHQpO2Z1bmN0aW9uIGUoYSl7dmFyIHI9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLl92YWx1ZT1hLHJ9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oYSl7dmFyIHI9dC5wcm90b3R5cGUuX3N1YnNjcmliZS5jYWxsKHRoaXMsYSk7cmV0dXJuIXIuY2xvc2VkJiZhLm5leHQodGhpcy5fdmFsdWUpLHJ9LGUucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxyPWEuaGFzRXJyb3IsaT1hLnRocm93bkVycm9yLG89YS5fdmFsdWU7aWYocil0aHJvdyBpO3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksb30sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihhKXt0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0aGlzLl92YWx1ZT1hKX0sZX0pKFgyKX0pO3ZhciBxNSx1Vz1uKCgpPT57cTU9e25vdzpmdW5jdGlvbigpe3JldHVybihxNS5kZWxlZ2F0ZXx8RGF0ZSkubm93KCl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgd0YsbVBlPW4oKCk9PntadCgpO0g1KCk7dVcoKTt3Rj0oZnVuY3Rpb24odCl7dnQoZSx0KTtmdW5jdGlvbiBlKGEscixpKXthPT09dm9pZCAwJiYoYT0xLzApLHI9PT12b2lkIDAmJihyPTEvMCksaT09PXZvaWQgMCYmKGk9cTUpO3ZhciBvPXQuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gby5fYnVmZmVyU2l6ZT1hLG8uX3dpbmRvd1RpbWU9cixvLl90aW1lc3RhbXBQcm92aWRlcj1pLG8uX2J1ZmZlcj1bXSxvLl9pbmZpbml0ZVRpbWVXaW5kb3c9ITAsby5faW5maW5pdGVUaW1lV2luZG93PXI9PT0xLzAsby5fYnVmZmVyU2l6ZT1NYXRoLm1heCgxLGEpLG8uX3dpbmRvd1RpbWU9TWF0aC5tYXgoMSxyKSxvfXJldHVybiBlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKGEpe3ZhciByPXRoaXMsaT1yLmlzU3RvcHBlZCxvPXIuX2J1ZmZlcixzPXIuX2luZmluaXRlVGltZVdpbmRvdyxsPXIuX3RpbWVzdGFtcFByb3ZpZGVyLGY9ci5fd2luZG93VGltZTtpfHwoby5wdXNoKGEpLCFzJiZvLnB1c2gobC5ub3coKStmKSksdGhpcy5fdHJpbUJ1ZmZlcigpLHQucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLGEpfSxlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKGEpe3RoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl90cmltQnVmZmVyKCk7Zm9yKHZhciByPXRoaXMuX2lubmVyU3Vic2NyaWJlKGEpLGk9dGhpcyxvPWkuX2luZmluaXRlVGltZVdpbmRvdyxzPWkuX2J1ZmZlcixsPXMuc2xpY2UoKSxmPTA7ZjxsLmxlbmd0aCYmIWEuY2xvc2VkO2YrPW8/MToyKWEubmV4dChsW2ZdKTtyZXR1cm4gdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyhhKSxyfSxlLnByb3RvdHlwZS5fdHJpbUJ1ZmZlcj1mdW5jdGlvbigpe3ZhciBhPXRoaXMscj1hLl9idWZmZXJTaXplLGk9YS5fdGltZXN0YW1wUHJvdmlkZXIsbz1hLl9idWZmZXIscz1hLl9pbmZpbml0ZVRpbWVXaW5kb3csbD0ocz8xOjIpKnI7aWYocjwxLzAmJmw8by5sZW5ndGgmJm8uc3BsaWNlKDAsby5sZW5ndGgtbCksIXMpe2Zvcih2YXIgZj1pLm5vdygpLGM9MCx1PTE7dTxvLmxlbmd0aCYmb1t1XTw9Zjt1Kz0yKWM9dTtjJiZvLnNwbGljZSgwLGMrMSl9fSxlfSkoWDIpfSk7dmFyIGdQZSx4UGU9bigoKT0+e1p0KCk7SDUoKTtnUGU9KGZ1bmN0aW9uKHQpe3Z0KGUsdCk7ZnVuY3Rpb24gZSgpe3ZhciBhPXQhPT1udWxsJiZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gYS5fdmFsdWU9bnVsbCxhLl9oYXNWYWx1ZT0hMSxhLl9pc0NvbXBsZXRlPSExLGF9cmV0dXJuIGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKGEpe3ZhciByPXRoaXMsaT1yLmhhc0Vycm9yLG89ci5faGFzVmFsdWUscz1yLl92YWx1ZSxsPXIudGhyb3duRXJyb3IsZj1yLmlzU3RvcHBlZCxjPXIuX2lzQ29tcGxldGU7aT9hLmVycm9yKGwpOihmfHxjKSYmKG8mJmEubmV4dChzKSxhLmNvbXBsZXRlKCkpfSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKGEpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5fdmFsdWU9YSx0aGlzLl9oYXNWYWx1ZT0hMCl9LGUucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxyPWEuX2hhc1ZhbHVlLGk9YS5fdmFsdWUsbz1hLl9pc0NvbXBsZXRlO298fCh0aGlzLl9pc0NvbXBsZXRlPSEwLHImJnQucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLGkpLHQucHJvdG90eXBlLmNvbXBsZXRlLmNhbGwodGhpcykpfSxlfSkoWDIpfSk7dmFyIHBXLGJQZT1uKCgpPT57WnQoKTt4cigpO3BXPShmdW5jdGlvbih0KXt2dChlLHQpO2Z1bmN0aW9uIGUoYSxyKXtyZXR1cm4gdC5jYWxsKHRoaXMpfHx0aGlzfXJldHVybiBlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihhLHIpe3JldHVybiByPT09dm9pZCAwJiYocj0wKSx0aGlzfSxlfSkoazEpfSk7dmFyIFY1LHZQZT1uKCgpPT57WnQoKTtWNT17c2V0SW50ZXJ2YWw6ZnVuY3Rpb24odCxlKXtmb3IodmFyIGE9W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspYVtyLTJdPWFyZ3VtZW50c1tyXTt2YXIgaT1WNS5kZWxlZ2F0ZTtyZXR1cm4gaT8uc2V0SW50ZXJ2YWw/aS5zZXRJbnRlcnZhbC5hcHBseShpLGUyKFt0LGVdLF8xKGEpKSk6c2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLGUyKFt0LGVdLF8xKGEpKSl9LGNsZWFySW50ZXJ2YWw6ZnVuY3Rpb24odCl7dmFyIGU9VjUuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW50ZXJ2YWx8fGNsZWFySW50ZXJ2YWwpKHQpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIEhhLE1jPW4oKCk9PntadCgpO2JQZSgpO3ZQZSgpO2JjKCk7SGE9KGZ1bmN0aW9uKHQpe3Z0KGUsdCk7ZnVuY3Rpb24gZShhLHIpe3ZhciBpPXQuY2FsbCh0aGlzLGEscil8fHRoaXM7cmV0dXJuIGkuc2NoZWR1bGVyPWEsaS53b3JrPXIsaS5wZW5kaW5nPSExLGl9cmV0dXJuIGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKGEscil7dmFyIGk7aWYocj09PXZvaWQgMCYmKHI9MCksdGhpcy5jbG9zZWQpcmV0dXJuIHRoaXM7dGhpcy5zdGF0ZT1hO3ZhciBvPXRoaXMuaWQscz10aGlzLnNjaGVkdWxlcjtyZXR1cm4gbyE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChzLG8scikpLHRoaXMucGVuZGluZz0hMCx0aGlzLmRlbGF5PXIsdGhpcy5pZD0oaT10aGlzLmlkKSE9PW51bGwmJmkhPT12b2lkIDA/aTp0aGlzLnJlcXVlc3RBc3luY0lkKHMsdGhpcy5pZCxyKSx0aGlzfSxlLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihhLHIsaSl7cmV0dXJuIGk9PT12b2lkIDAmJihpPTApLFY1LnNldEludGVydmFsKGEuZmx1c2guYmluZChhLHRoaXMpLGkpfSxlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihhLHIsaSl7aWYoaT09PXZvaWQgMCYmKGk9MCksaSE9bnVsbCYmdGhpcy5kZWxheT09PWkmJnRoaXMucGVuZGluZz09PSExKXJldHVybiByO3IhPW51bGwmJlY1LmNsZWFySW50ZXJ2YWwocil9LGUucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSxyKXtpZih0aGlzLmNsb3NlZClyZXR1cm4gbmV3IEVycm9yKCJleGVjdXRpbmcgYSBjYW5jZWxsZWQgYWN0aW9uIik7dGhpcy5wZW5kaW5nPSExO3ZhciBpPXRoaXMuX2V4ZWN1dGUoYSxyKTtpZihpKXJldHVybiBpO3RoaXMucGVuZGluZz09PSExJiZ0aGlzLmlkIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLHRoaXMuaWQsbnVsbCkpfSxlLnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihhLHIpe3ZhciBpPSExLG87dHJ5e3RoaXMud29yayhhKX1jYXRjaChzKXtpPSEwLG89c3x8bmV3IEVycm9yKCJTY2hlZHVsZWQgYWN0aW9uIHRocmV3IGZhbHN5IGVycm9yIil9aWYoaSlyZXR1cm4gdGhpcy51bnN1YnNjcmliZSgpLG99LGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY2xvc2VkKXt2YXIgYT10aGlzLHI9YS5pZCxpPWEuc2NoZWR1bGVyLG89aS5hY3Rpb25zO3RoaXMud29yaz10aGlzLnN0YXRlPXRoaXMuc2NoZWR1bGVyPW51bGwsdGhpcy5wZW5kaW5nPSExLFJhKG8sdGhpcyksciE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChpLHIsbnVsbCkpLHRoaXMuZGVsYXk9bnVsbCx0LnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfX0sZX0pKHBXKX0pO2Z1bmN0aW9uIHlQZSh0KXtyZXR1cm4gdCBpbiBNRj8oZGVsZXRlIE1GW3RdLCEwKTohMX12YXIgUFJ0LGhXLE1GLG1XLGo0MSx3UGU9bigoKT0+e1BSdD0xLE1GPXt9O21XPXtzZXRJbW1lZGlhdGU6ZnVuY3Rpb24odCl7dmFyIGU9UFJ0Kys7cmV0dXJuIE1GW2VdPSEwLGhXfHwoaFc9UHJvbWlzZS5yZXNvbHZlKCkpLGhXLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4geVBlKGUpJiZ0KCl9KSxlfSxjbGVhckltbWVkaWF0ZTpmdW5jdGlvbih0KXt5UGUodCl9fSxqNDE9e3BlbmRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMoTUYpLmxlbmd0aH19fSk7dmFyIElSdCxGUnQsVTUsTVBlPW4oKCk9PntadCgpO3dQZSgpO0lSdD1tVy5zZXRJbW1lZGlhdGUsRlJ0PW1XLmNsZWFySW1tZWRpYXRlLFU1PXtzZXRJbW1lZGlhdGU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIGE9VTUuZGVsZWdhdGU7cmV0dXJuKGE/LnNldEltbWVkaWF0ZXx8SVJ0KS5hcHBseSh2b2lkIDAsZTIoW10sXzEodCkpKX0sY2xlYXJJbW1lZGlhdGU6ZnVuY3Rpb24odCl7dmFyIGU9VTUuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW1tZWRpYXRlfHxGUnQpKHQpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIGdXLHpQZT1uKCgpPT57WnQoKTtNYygpO01QZSgpO2dXPShmdW5jdGlvbih0KXt2dChlLHQpO2Z1bmN0aW9uIGUoYSxyKXt2YXIgaT10LmNhbGwodGhpcyxhLHIpfHx0aGlzO3JldHVybiBpLnNjaGVkdWxlcj1hLGkud29yaz1yLGl9cmV0dXJuIGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKGEscixpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9MCksaSE9PW51bGwmJmk+MD90LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsYSxyLGkpOihhLmFjdGlvbnMucHVzaCh0aGlzKSxhLl9zY2hlZHVsZWR8fChhLl9zY2hlZHVsZWQ9VTUuc2V0SW1tZWRpYXRlKGEuZmx1c2guYmluZChhLHZvaWQgMCkpKSl9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKGEscixpKXt2YXIgbztpZihpPT09dm9pZCAwJiYoaT0wKSxpIT1udWxsP2k+MDp0aGlzLmRlbGF5PjApcmV0dXJuIHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyxhLHIsaSk7dmFyIHM9YS5hY3Rpb25zO3IhPW51bGwmJigobz1zW3MubGVuZ3RoLTFdKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm8uaWQpIT09ciYmKFU1LmNsZWFySW1tZWRpYXRlKHIpLGEuX3NjaGVkdWxlZD09PXImJihhLl9zY2hlZHVsZWQ9dm9pZCAwKSl9LGV9KShIYSl9KTt2YXIgajUseFc9bigoKT0+e3VXKCk7ajU9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLGEpe2E9PT12b2lkIDAmJihhPXQubm93KSx0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3I9ZSx0aGlzLm5vdz1hfXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihlLGEscil7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLG5ldyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IodGhpcyxlKS5zY2hlZHVsZShyLGEpfSx0Lm5vdz1xNS5ub3csdH0pKCl9KTt2YXIgcWEsemM9bigoKT0+e1p0KCk7eFcoKTtxYT0oZnVuY3Rpb24odCl7dnQoZSx0KTtmdW5jdGlvbiBlKGEscil7cj09PXZvaWQgMCYmKHI9ajUubm93KTt2YXIgaT10LmNhbGwodGhpcyxhLHIpfHx0aGlzO3JldHVybiBpLmFjdGlvbnM9W10saS5fYWN0aXZlPSExLGl9cmV0dXJuIGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKGEpe3ZhciByPXRoaXMuYWN0aW9ucztpZih0aGlzLl9hY3RpdmUpe3IucHVzaChhKTtyZXR1cm59dmFyIGk7dGhpcy5fYWN0aXZlPSEwO2RvIGlmKGk9YS5leGVjdXRlKGEuc3RhdGUsYS5kZWxheSkpYnJlYWs7d2hpbGUoYT1yLnNoaWZ0KCkpO2lmKHRoaXMuX2FjdGl2ZT0hMSxpKXtmb3IoO2E9ci5zaGlmdCgpOylhLnVuc3Vic2NyaWJlKCk7dGhyb3cgaX19LGV9KShqNSl9KTt2YXIgYlcsa1BlPW4oKCk9PntadCgpO3pjKCk7Ylc9KGZ1bmN0aW9uKHQpe3Z0KGUsdCk7ZnVuY3Rpb24gZSgpe3JldHVybiB0IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKGEpe3RoaXMuX2FjdGl2ZT0hMDt2YXIgcj10aGlzLl9zY2hlZHVsZWQ7dGhpcy5fc2NoZWR1bGVkPXZvaWQgMDt2YXIgaT10aGlzLmFjdGlvbnMsbzthPWF8fGkuc2hpZnQoKTtkbyBpZihvPWEuZXhlY3V0ZShhLnN0YXRlLGEuZGVsYXkpKWJyZWFrO3doaWxlKChhPWlbMF0pJiZhLmlkPT09ciYmaS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbyl7Zm9yKDsoYT1pWzBdKSYmYS5pZD09PXImJmkuc2hpZnQoKTspYS51bnN1YnNjcmliZSgpO3Rocm93IG99fSxlfSkocWEpfSk7dmFyIFNQZSxPUnQsQ1BlPW4oKCk9Pnt6UGUoKTtrUGUoKTtTUGU9bmV3IGJXKGdXKSxPUnQ9U1BlfSk7dmFyIGJyLHZXLENzPW4oKCk9PntNYygpO3pjKCk7YnI9bmV3IHFhKEhhKSx2Vz1icn0pO3ZhciB5VyxMUGU9bigoKT0+e1p0KCk7TWMoKTt5Vz0oZnVuY3Rpb24odCl7dnQoZSx0KTtmdW5jdGlvbiBlKGEscil7dmFyIGk9dC5jYWxsKHRoaXMsYSxyKXx8dGhpcztyZXR1cm4gaS5zY2hlZHVsZXI9YSxpLndvcms9cixpfXJldHVybiBlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihhLHIpe3JldHVybiByPT09dm9pZCAwJiYocj0wKSxyPjA/dC5wcm90b3R5cGUuc2NoZWR1bGUuY2FsbCh0aGlzLGEscik6KHRoaXMuZGVsYXk9cix0aGlzLnN0YXRlPWEsdGhpcy5zY2hlZHVsZXIuZmx1c2godGhpcyksdGhpcyl9LGUucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSxyKXtyZXR1cm4gcj4wfHx0aGlzLmNsb3NlZD90LnByb3RvdHlwZS5leGVjdXRlLmNhbGwodGhpcyxhLHIpOnRoaXMuX2V4ZWN1dGUoYSxyKX0sZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24oYSxyLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSxpIT1udWxsJiZpPjB8fGk9PW51bGwmJnRoaXMuZGVsYXk+MD90LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsYSxyLGkpOihhLmZsdXNoKHRoaXMpLDApfSxlfSkoSGEpfSk7dmFyIHdXLFRQZT1uKCgpPT57WnQoKTt6YygpO3dXPShmdW5jdGlvbih0KXt2dChlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBlfSkocWEpfSk7dmFyIF9QZSxCUnQsQVBlPW4oKCk9PntMUGUoKTtUUGUoKTtfUGU9bmV3IHdXKHlXKSxCUnQ9X1BlfSk7dmFyIE1XLCRQZT1uKCgpPT57WnQoKTtNYygpO2xXKCk7TVc9KGZ1bmN0aW9uKHQpe3Z0KGUsdCk7ZnVuY3Rpb24gZShhLHIpe3ZhciBpPXQuY2FsbCh0aGlzLGEscil8fHRoaXM7cmV0dXJuIGkuc2NoZWR1bGVyPWEsaS53b3JrPXIsaX1yZXR1cm4gZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24oYSxyLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSxpIT09bnVsbCYmaT4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxhLHIsaSk6KGEuYWN0aW9ucy5wdXNoKHRoaXMpLGEuX3NjaGVkdWxlZHx8KGEuX3NjaGVkdWxlZD1yaS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXR1cm4gYS5mbHVzaCh2b2lkIDApfSkpKX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24oYSxyLGkpe3ZhciBvO2lmKGk9PT12b2lkIDAmJihpPTApLGkhPW51bGw/aT4wOnRoaXMuZGVsYXk+MClyZXR1cm4gdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQuY2FsbCh0aGlzLGEscixpKTt2YXIgcz1hLmFjdGlvbnM7ciE9bnVsbCYmcj09PWEuX3NjaGVkdWxlZCYmKChvPXNbcy5sZW5ndGgtMV0pPT09bnVsbHx8bz09PXZvaWQgMD92b2lkIDA6by5pZCkhPT1yJiYocmkuY2FuY2VsQW5pbWF0aW9uRnJhbWUociksYS5fc2NoZWR1bGVkPXZvaWQgMCl9LGV9KShIYSl9KTt2YXIgelcsRFBlPW4oKCk9PntadCgpO3pjKCk7elc9KGZ1bmN0aW9uKHQpe3Z0KGUsdCk7ZnVuY3Rpb24gZSgpe3JldHVybiB0IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKGEpe3RoaXMuX2FjdGl2ZT0hMDt2YXIgcjthP3I9YS5pZDoocj10aGlzLl9zY2hlZHVsZWQsdGhpcy5fc2NoZWR1bGVkPXZvaWQgMCk7dmFyIGk9dGhpcy5hY3Rpb25zLG87YT1hfHxpLnNoaWZ0KCk7ZG8gaWYobz1hLmV4ZWN1dGUoYS5zdGF0ZSxhLmRlbGF5KSlicmVhazt3aGlsZSgoYT1pWzBdKSYmYS5pZD09PXImJmkuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLG8pe2Zvcig7KGE9aVswXSkmJmEuaWQ9PT1yJiZpLnNoaWZ0KCk7KWEudW5zdWJzY3JpYmUoKTt0aHJvdyBvfX0sZX0pKHFhKX0pO3ZhciBFUGUsUlJ0LE5QZT1uKCgpPT57JFBlKCk7RFBlKCk7RVBlPW5ldyB6VyhNVyksUlJ0PUVQZX0pO3ZhciBQUGUsa1csSVBlPW4oKCk9PntadCgpO01jKCk7eHIoKTt6YygpO1BQZT0oZnVuY3Rpb24odCl7dnQoZSx0KTtmdW5jdGlvbiBlKGEscil7YT09PXZvaWQgMCYmKGE9a1cpLHI9PT12b2lkIDAmJihyPTEvMCk7dmFyIGk9dC5jYWxsKHRoaXMsYSxmdW5jdGlvbigpe3JldHVybiBpLmZyYW1lfSl8fHRoaXM7cmV0dXJuIGkubWF4RnJhbWVzPXIsaS5mcmFtZT0wLGkuaW5kZXg9LTEsaX1yZXR1cm4gZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcyxyPWEuYWN0aW9ucyxpPWEubWF4RnJhbWVzLG8sczsocz1yWzBdKSYmcy5kZWxheTw9aSYmKHIuc2hpZnQoKSx0aGlzLmZyYW1lPXMuZGVsYXksIShvPXMuZXhlY3V0ZShzLnN0YXRlLHMuZGVsYXkpKSk7KTtpZihvKXtmb3IoO3M9ci5zaGlmdCgpOylzLnVuc3Vic2NyaWJlKCk7dGhyb3cgb319LGUuZnJhbWVUaW1lRmFjdG9yPTEwLGV9KShxYSksa1c9KGZ1bmN0aW9uKHQpe3Z0KGUsdCk7ZnVuY3Rpb24gZShhLHIsaSl7aT09PXZvaWQgMCYmKGk9YS5pbmRleCs9MSk7dmFyIG89dC5jYWxsKHRoaXMsYSxyKXx8dGhpcztyZXR1cm4gby5zY2hlZHVsZXI9YSxvLndvcms9cixvLmluZGV4PWksby5hY3RpdmU9ITAsby5pbmRleD1hLmluZGV4PWksb31yZXR1cm4gZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24oYSxyKXtpZihyPT09dm9pZCAwJiYocj0wKSxOdW1iZXIuaXNGaW5pdGUocikpe2lmKCF0aGlzLmlkKXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsYSxyKTt0aGlzLmFjdGl2ZT0hMTt2YXIgaT1uZXcgZSh0aGlzLnNjaGVkdWxlcix0aGlzLndvcmspO3JldHVybiB0aGlzLmFkZChpKSxpLnNjaGVkdWxlKGEscil9ZWxzZSByZXR1cm4gazEuRU1QVFl9LGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKGEscixpKXtpPT09dm9pZCAwJiYoaT0wKSx0aGlzLmRlbGF5PWEuZnJhbWUraTt2YXIgbz1hLmFjdGlvbnM7cmV0dXJuIG8ucHVzaCh0aGlzKSxvLnNvcnQoZS5zb3J0QWN0aW9ucyksMX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24oYSxyLGkpe2k9PT12b2lkIDAmJihpPTApfSxlLnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihhLHIpe2lmKHRoaXMuYWN0aXZlPT09ITApcmV0dXJuIHQucHJvdG90eXBlLl9leGVjdXRlLmNhbGwodGhpcyxhLHIpfSxlLnNvcnRBY3Rpb25zPWZ1bmN0aW9uKGEscil7cmV0dXJuIGEuZGVsYXk9PT1yLmRlbGF5P2EuaW5kZXg9PT1yLmluZGV4PzA6YS5pbmRleD5yLmluZGV4PzE6LTE6YS5kZWxheT5yLmRlbGF5PzE6LTF9LGV9KShIYSl9KTtmdW5jdGlvbiBIUnQodCl7cmV0dXJuIHQ/cVJ0KHQpOnpGfWZ1bmN0aW9uIHFSdCh0KXtyZXR1cm4gbmV3IHh0KGZ1bmN0aW9uKGUpe3JldHVybiB0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIGUuY29tcGxldGUoKX0pfSl9dmFyIHpGLGtGPW4oKCk9PntaMigpO3pGPW5ldyB4dChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wbGV0ZSgpfSl9KTtmdW5jdGlvbiBTRih0KXtyZXR1cm4gdCYmbHQodC5zY2hlZHVsZSl9dmFyIFNXPW4oKCk9PntqMSgpfSk7ZnVuY3Rpb24gQ1codCl7cmV0dXJuIHRbdC5sZW5ndGgtMV19ZnVuY3Rpb24gVTMxKHQpe3JldHVybiBsdChDVyh0KSk/dC5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gY28odCl7cmV0dXJuIFNGKENXKHQpKT90LnBvcCgpOnZvaWQgMH1mdW5jdGlvbiBqMzEodCxlKXtyZXR1cm4gdHlwZW9mIENXKHQpPT0ibnVtYmVyIj90LnBvcCgpOmV9dmFyIFc1PW4oKCk9PntqMSgpO1NXKCl9KTt2YXIga2MsQ0Y9bigoKT0+e2tjPShmdW5jdGlvbih0KXtyZXR1cm4gdCYmdHlwZW9mIHQubGVuZ3RoPT0ibnVtYmVyIiYmdHlwZW9mIHQhPSJmdW5jdGlvbiJ9KX0pO2Z1bmN0aW9uIExGKHQpe3JldHVybiBsdCh0Py50aGVuKX12YXIgTFc9bigoKT0+e2oxKCl9KTtmdW5jdGlvbiBURih0KXtyZXR1cm4gbHQodFtTc10pfXZhciBUVz1uKCgpPT57QjUoKTtqMSgpfSk7ZnVuY3Rpb24gX0YodCl7cmV0dXJuIFN5bWJvbC5hc3luY0l0ZXJhdG9yJiZsdCh0Py5bU3ltYm9sLmFzeW5jSXRlcmF0b3JdKX12YXIgX1c9bigoKT0+e2oxKCl9KTtmdW5jdGlvbiBBRih0KXtyZXR1cm4gbmV3IFR5cGVFcnJvcigiWW91IHByb3ZpZGVkICIrKHQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCI/ImFuIGludmFsaWQgb2JqZWN0IjoiJyIrdCsiJyIpKyIgd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgUmVhZGFibGVTdHJlYW0sIEFycmF5LCBBc3luY0l0ZXJhYmxlLCBvciBJdGVyYWJsZS4iKX12YXIgQVc9bigoKT0+e30pO2Z1bmN0aW9uIFZSdCgpe3JldHVybiB0eXBlb2YgU3ltYm9sIT0iZnVuY3Rpb24ifHwhU3ltYm9sLml0ZXJhdG9yPyJAQGl0ZXJhdG9yIjpTeW1ib2wuaXRlcmF0b3J9dmFyICRGLCRXPW4oKCk9PnskRj1WUnQoKX0pO2Z1bmN0aW9uIERGKHQpe3JldHVybiBsdCh0Py5bJEZdKX12YXIgRFc9bigoKT0+eyRXKCk7ajEoKX0pO2Z1bmN0aW9uIEVGKHQpe3JldHVybiBaaih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciBhLHIsaSxvO3JldHVybiBJNSh0aGlzLGZ1bmN0aW9uKHMpe3N3aXRjaChzLmxhYmVsKXtjYXNlIDA6YT10LmdldFJlYWRlcigpLHMubGFiZWw9MTtjYXNlIDE6cy50cnlzLnB1c2goWzEsLDksMTBdKSxzLmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LGFpKGEucmVhZCgpKV07Y2FzZSAzOnJldHVybiByPXMuc2VudCgpLGk9ci52YWx1ZSxvPXIuZG9uZSxvP1s0LGFpKHZvaWQgMCldOlszLDVdO2Nhc2UgNDpyZXR1cm5bMixzLnNlbnQoKV07Y2FzZSA1OnJldHVybls0LGFpKGkpXTtjYXNlIDY6cmV0dXJuWzQscy5zZW50KCldO2Nhc2UgNzpyZXR1cm4gcy5zZW50KCksWzMsMl07Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6cmV0dXJuIGEucmVsZWFzZUxvY2soKSxbN107Y2FzZSAxMDpyZXR1cm5bMl19fSl9KX1mdW5jdGlvbiBORih0KXtyZXR1cm4gbHQodD8uZ2V0UmVhZGVyKX12YXIgUEY9bigoKT0+e1p0KCk7ajEoKX0pO2Z1bmN0aW9uIHgxKHQpe2lmKHQgaW5zdGFuY2VvZiB4dClyZXR1cm4gdDtpZih0IT1udWxsKXtpZihURih0KSlyZXR1cm4gVVJ0KHQpO2lmKGtjKHQpKXJldHVybiBqUnQodCk7aWYoTEYodCkpcmV0dXJuIFdSdCh0KTtpZihfRih0KSlyZXR1cm4gRlBlKHQpO2lmKERGKHQpKXJldHVybiBHUnQodCk7aWYoTkYodCkpcmV0dXJuIFlSdCh0KX10aHJvdyBBRih0KX1mdW5jdGlvbiBVUnQodCl7cmV0dXJuIG5ldyB4dChmdW5jdGlvbihlKXt2YXIgYT10W1NzXSgpO2lmKGx0KGEuc3Vic2NyaWJlKSlyZXR1cm4gYS5zdWJzY3JpYmUoZSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJvdmlkZWQgb2JqZWN0IGRvZXMgbm90IGNvcnJlY3RseSBpbXBsZW1lbnQgU3ltYm9sLm9ic2VydmFibGUiKX0pfWZ1bmN0aW9uIGpSdCh0KXtyZXR1cm4gbmV3IHh0KGZ1bmN0aW9uKGUpe2Zvcih2YXIgYT0wO2E8dC5sZW5ndGgmJiFlLmNsb3NlZDthKyspZS5uZXh0KHRbYV0pO2UuY29tcGxldGUoKX0pfWZ1bmN0aW9uIFdSdCh0KXtyZXR1cm4gbmV3IHh0KGZ1bmN0aW9uKGUpe3QudGhlbihmdW5jdGlvbihhKXtlLmNsb3NlZHx8KGUubmV4dChhKSxlLmNvbXBsZXRlKCkpfSxmdW5jdGlvbihhKXtyZXR1cm4gZS5lcnJvcihhKX0pLnRoZW4obnVsbCxoRil9KX1mdW5jdGlvbiBHUnQodCl7cmV0dXJuIG5ldyB4dChmdW5jdGlvbihlKXt2YXIgYSxyO3RyeXtmb3IodmFyIGk9aDIodCksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpe3ZhciBzPW8udmFsdWU7aWYoZS5uZXh0KHMpLGUuY2xvc2VkKXJldHVybn19Y2F0Y2gobCl7YT17ZXJyb3I6bH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKHI9aS5yZXR1cm4pJiZyLmNhbGwoaSl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fWUuY29tcGxldGUoKX0pfWZ1bmN0aW9uIEZQZSh0KXtyZXR1cm4gbmV3IHh0KGZ1bmN0aW9uKGUpe1pSdCh0LGUpLmNhdGNoKGZ1bmN0aW9uKGEpe3JldHVybiBlLmVycm9yKGEpfSl9KX1mdW5jdGlvbiBZUnQodCl7cmV0dXJuIEZQZShFRih0KSl9ZnVuY3Rpb24gWlJ0KHQsZSl7dmFyIGEscixpLG87cmV0dXJuIFlqKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBzLGw7cmV0dXJuIEk1KHRoaXMsZnVuY3Rpb24oZil7c3dpdGNoKGYubGFiZWwpe2Nhc2UgMDpmLnRyeXMucHVzaChbMCw1LDYsMTFdKSxhPVhqKHQpLGYubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsYS5uZXh0KCldO2Nhc2UgMjppZihyPWYuc2VudCgpLCEhci5kb25lKXJldHVyblszLDRdO2lmKHM9ci52YWx1ZSxlLm5leHQocyksZS5jbG9zZWQpcmV0dXJuWzJdO2YubGFiZWw9MztjYXNlIDM6cmV0dXJuWzMsMV07Y2FzZSA0OnJldHVyblszLDExXTtjYXNlIDU6cmV0dXJuIGw9Zi5zZW50KCksaT17ZXJyb3I6bH0sWzMsMTFdO2Nhc2UgNjpyZXR1cm4gZi50cnlzLnB1c2goWzYsLDksMTBdKSxyJiYhci5kb25lJiYobz1hLnJldHVybik/WzQsby5jYWxsKGEpXTpbMyw4XTtjYXNlIDc6Zi5zZW50KCksZi5sYWJlbD04O2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OmlmKGkpdGhyb3cgaS5lcnJvcjtyZXR1cm5bN107Y2FzZSAxMDpyZXR1cm5bN107Y2FzZSAxMTpyZXR1cm4gZS5jb21wbGV0ZSgpLFsyXX19KX0pfXZhciBNYT1uKCgpPT57WnQoKTtDRigpO0xXKCk7WjIoKTtUVygpO19XKCk7QVcoKTtEVygpO1BGKCk7ajEoKTtlVygpO0I1KCl9KTtmdW5jdGlvbiBhMih0LGUsYSxyLGkpe3I9PT12b2lkIDAmJihyPTApLGk9PT12b2lkIDAmJihpPSExKTt2YXIgbz1lLnNjaGVkdWxlKGZ1bmN0aW9uKCl7YSgpLGk/dC5hZGQodGhpcy5zY2hlZHVsZShudWxsLHIpKTp0aGlzLnVuc3Vic2NyaWJlKCl9LHIpO2lmKHQuYWRkKG8pLCFpKXJldHVybiBvfXZhciBMcz1uKCgpPT57fSk7ZnVuY3Rpb24gU2ModCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksVnQoZnVuY3Rpb24oYSxyKXthLnN1YnNjcmliZShQdChyLGZ1bmN0aW9uKGkpe3JldHVybiBhMihyLHQsZnVuY3Rpb24oKXtyZXR1cm4gci5uZXh0KGkpfSxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gYTIocix0LGZ1bmN0aW9uKCl7cmV0dXJuIHIuY29tcGxldGUoKX0sZSl9LGZ1bmN0aW9uKGkpe3JldHVybiBhMihyLHQsZnVuY3Rpb24oKXtyZXR1cm4gci5lcnJvcihpKX0sZSl9KSl9KX12YXIgRzU9bigoKT0+e0xzKCk7dDIoKTtQMigpfSk7ZnVuY3Rpb24gQ2ModCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksVnQoZnVuY3Rpb24oYSxyKXtyLmFkZCh0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIGEuc3Vic2NyaWJlKHIpfSxlKSl9KX12YXIgWTU9bigoKT0+e3QyKCl9KTtmdW5jdGlvbiBPUGUodCxlKXtyZXR1cm4geDEodCkucGlwZShDYyhlKSxTYyhlKSl9dmFyIEJQZT1uKCgpPT57TWEoKTtHNSgpO1k1KCl9KTtmdW5jdGlvbiBSUGUodCxlKXtyZXR1cm4geDEodCkucGlwZShDYyhlKSxTYyhlKSl9dmFyIEhQZT1uKCgpPT57TWEoKTtHNSgpO1k1KCl9KTtmdW5jdGlvbiBxUGUodCxlKXtyZXR1cm4gbmV3IHh0KGZ1bmN0aW9uKGEpe3ZhciByPTA7cmV0dXJuIGUuc2NoZWR1bGUoZnVuY3Rpb24oKXtyPT09dC5sZW5ndGg/YS5jb21wbGV0ZSgpOihhLm5leHQodFtyKytdKSxhLmNsb3NlZHx8dGhpcy5zY2hlZHVsZSgpKX0pfSl9dmFyIFZQZT1uKCgpPT57WjIoKX0pO2Z1bmN0aW9uIFVQZSh0LGUpe3JldHVybiBuZXcgeHQoZnVuY3Rpb24oYSl7dmFyIHI7cmV0dXJuIGEyKGEsZSxmdW5jdGlvbigpe3I9dFskRl0oKSxhMihhLGUsZnVuY3Rpb24oKXt2YXIgaSxvLHM7dHJ5e2k9ci5uZXh0KCksbz1pLnZhbHVlLHM9aS5kb25lfWNhdGNoKGwpe2EuZXJyb3IobCk7cmV0dXJufXM/YS5jb21wbGV0ZSgpOmEubmV4dChvKX0sMCwhMCl9KSxmdW5jdGlvbigpe3JldHVybiBsdChyPy5yZXR1cm4pJiZyLnJldHVybigpfX0pfXZhciBqUGU9bigoKT0+e1oyKCk7JFcoKTtqMSgpO0xzKCl9KTtmdW5jdGlvbiBJRih0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTtyZXR1cm4gbmV3IHh0KGZ1bmN0aW9uKGEpe2EyKGEsZSxmdW5jdGlvbigpe3ZhciByPXRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7YTIoYSxlLGZ1bmN0aW9uKCl7ci5uZXh0KCkudGhlbihmdW5jdGlvbihpKXtpLmRvbmU/YS5jb21wbGV0ZSgpOmEubmV4dChpLnZhbHVlKX0pfSwwLCEwKX0pfSl9dmFyIEVXPW4oKCk9PntaMigpO0xzKCl9KTtmdW5jdGlvbiBXUGUodCxlKXtyZXR1cm4gSUYoRUYodCksZSl9dmFyIEdQZT1uKCgpPT57RVcoKTtQRigpfSk7ZnVuY3Rpb24gTlcodCxlKXtpZih0IT1udWxsKXtpZihURih0KSlyZXR1cm4gT1BlKHQsZSk7aWYoa2ModCkpcmV0dXJuIHFQZSh0LGUpO2lmKExGKHQpKXJldHVybiBSUGUodCxlKTtpZihfRih0KSlyZXR1cm4gSUYodCxlKTtpZihERih0KSlyZXR1cm4gVVBlKHQsZSk7aWYoTkYodCkpcmV0dXJuIFdQZSh0LGUpfXRocm93IEFGKHQpfXZhciBQVz1uKCgpPT57QlBlKCk7SFBlKCk7VlBlKCk7alBlKCk7RVcoKTtUVygpO0xXKCk7Q0YoKTtEVygpO19XKCk7QVcoKTtQRigpO0dQZSgpfSk7ZnVuY3Rpb24gVHModCxlKXtyZXR1cm4gZT9OVyh0LGUpOngxKHQpfXZhciBGRj1uKCgpPT57UFcoKTtNYSgpfSk7ZnVuY3Rpb24gWjUoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIGE9Y28odCk7cmV0dXJuIFRzKHQsYSl9dmFyIElXPW4oKCk9PntXNSgpO0ZGKCl9KTtmdW5jdGlvbiBGVyh0LGUpe3ZhciBhPWx0KHQpP3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH0scj1mdW5jdGlvbihpKXtyZXR1cm4gaS5lcnJvcihhKCkpfTtyZXR1cm4gbmV3IHh0KGU/ZnVuY3Rpb24oaSl7cmV0dXJuIGUuc2NoZWR1bGUociwwLGkpfTpyKX12YXIgT1c9bigoKT0+e1oyKCk7ajEoKX0pO2Z1bmN0aW9uIFhSdCh0LGUpe3ZhciBhLHIsaSxvPXQscz1vLmtpbmQsbD1vLnZhbHVlLGY9by5lcnJvcjtpZih0eXBlb2YgcyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBub3RpZmljYXRpb24sIG1pc3NpbmcgImtpbmQiJyk7cz09PSJOIj8oYT1lLm5leHQpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKGUsbCk6cz09PSJFIj8ocj1lLmVycm9yKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbChlLGYpOihpPWUuY29tcGxldGUpPT09bnVsbHx8aT09PXZvaWQgMHx8aS5jYWxsKGUpfXZhciBCVyxZUGUsWlBlPW4oKCk9PntrRigpO0lXKCk7T1coKTtqMSgpOyhmdW5jdGlvbih0KXt0Lk5FWFQ9Ik4iLHQuRVJST1I9IkUiLHQuQ09NUExFVEU9IkMifSkoQld8fChCVz17fSkpO1lQZT0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsYSxyKXt0aGlzLmtpbmQ9ZSx0aGlzLnZhbHVlPWEsdGhpcy5lcnJvcj1yLHRoaXMuaGFzVmFsdWU9ZT09PSJOIn1yZXR1cm4gdC5wcm90b3R5cGUub2JzZXJ2ZT1mdW5jdGlvbihlKXtyZXR1cm4gWFJ0KHRoaXMsZSl9LHQucHJvdG90eXBlLmRvPWZ1bmN0aW9uKGUsYSxyKXt2YXIgaT10aGlzLG89aS5raW5kLHM9aS52YWx1ZSxsPWkuZXJyb3I7cmV0dXJuIG89PT0iTiI/ZT8uKHMpOm89PT0iRSI/YT8uKGwpOnI/LigpfSx0LnByb3RvdHlwZS5hY2NlcHQ9ZnVuY3Rpb24oZSxhLHIpe3ZhciBpO3JldHVybiBsdCgoaT1lKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkubmV4dCk/dGhpcy5vYnNlcnZlKGUpOnRoaXMuZG8oZSxhLHIpfSx0LnByb3RvdHlwZS50b09ic2VydmFibGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLGE9ZS5raW5kLHI9ZS52YWx1ZSxpPWUuZXJyb3Isbz1hPT09Ik4iP1o1KHIpOmE9PT0iRSI/RlcoZnVuY3Rpb24oKXtyZXR1cm4gaX0pOmE9PT0iQyI/ekY6MDtpZighbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmV4cGVjdGVkIG5vdGlmaWNhdGlvbiBraW5kICIrYSk7cmV0dXJuIG99LHQuY3JlYXRlTmV4dD1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHQoIk4iLGUpfSx0LmNyZWF0ZUVycm9yPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdCgiRSIsdm9pZCAwLGUpfSx0LmNyZWF0ZUNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHQuY29tcGxldGVOb3RpZmljYXRpb259LHQuY29tcGxldGVOb3RpZmljYXRpb249bmV3IHQoIkMiKSx0fSkoKX0pO3ZhciBYUGU9bigoKT0+e30pO3ZhciBRUnQsUVBlPW4oKCk9PntsbygpO1FSdD1ZMihmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0KHRoaXMpLHRoaXMubmFtZT0iRW1wdHlFcnJvciIsdGhpcy5tZXNzYWdlPSJubyBlbGVtZW50cyBpbiBzZXF1ZW5jZSJ9fSl9KTt2YXIgS1BlPW4oKCk9Pnt9KTt2YXIgSlBlPW4oKCk9Pnt9KTt2YXIgS1J0LGVJZT1uKCgpPT57bG8oKTtLUnQ9WTIoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dCh0aGlzKSx0aGlzLm5hbWU9IkFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yIix0aGlzLm1lc3NhZ2U9ImFyZ3VtZW50IG91dCBvZiByYW5nZSJ9fSl9KTt2YXIgSlJ0LHRJZT1uKCgpPT57bG8oKTtKUnQ9WTIoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGEpe3QodGhpcyksdGhpcy5uYW1lPSJOb3RGb3VuZEVycm9yIix0aGlzLm1lc3NhZ2U9YX19KX0pO3ZhciBlSHQsYUllPW4oKCk9PntsbygpO2VIdD1ZMihmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oYSl7dCh0aGlzKSx0aGlzLm5hbWU9IlNlcXVlbmNlRXJyb3IiLHRoaXMubWVzc2FnZT1hfX0pfSk7ZnVuY3Rpb24gT0YodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlJiYhaXNOYU4odCl9dmFyIFJXPW4oKCk9Pnt9KTtmdW5jdGlvbiBpSWUodCxlKXt2YXIgYT1PRih0KT97Zmlyc3Q6dH06dHlwZW9mIHQ9PSJudW1iZXIiP3tlYWNoOnR9OnQscj1hLmZpcnN0LGk9YS5lYWNoLG89YS53aXRoLHM9bz09PXZvaWQgMD90SHQ6byxsPWEuc2NoZWR1bGVyLGY9bD09PXZvaWQgMD9lPz9icjpsLGM9YS5tZXRhLHU9Yz09PXZvaWQgMD9udWxsOmM7aWYocj09bnVsbCYmaT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJObyB0aW1lb3V0IHByb3ZpZGVkLiIpO3JldHVybiBWdChmdW5jdGlvbihkLGgpe3ZhciBnLGIseD1udWxsLG09MCx2PWZ1bmN0aW9uKHkpe2I9YTIoaCxmLGZ1bmN0aW9uKCl7dHJ5e2cudW5zdWJzY3JpYmUoKSx4MShzKHttZXRhOnUsbGFzdFZhbHVlOngsc2VlbjptfSkpLnN1YnNjcmliZShoKX1jYXRjaCh3KXtoLmVycm9yKHcpfX0seSl9O2c9ZC5zdWJzY3JpYmUoUHQoaCxmdW5jdGlvbih5KXtiPy51bnN1YnNjcmliZSgpLG0rKyxoLm5leHQoeD15KSxpPjAmJnYoaSl9LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtiPy5jbG9zZWR8fGI/LnVuc3Vic2NyaWJlKCkseD1udWxsfSkpLCFtJiZ2KHIhPW51bGw/dHlwZW9mIHI9PSJudW1iZXIiP3I6K3ItZi5ub3coKTppKX0pfWZ1bmN0aW9uIHRIdCh0KXt0aHJvdyBuZXcgckllKHQpfXZhciBySWUsQkY9bigoKT0+e0NzKCk7UlcoKTt0MigpO01hKCk7bG8oKTtQMigpO0xzKCk7ckllPVkyKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihhKXthPT09dm9pZCAwJiYoYT1udWxsKSx0KHRoaXMpLHRoaXMubWVzc2FnZT0iVGltZW91dCBoYXMgb2NjdXJyZWQiLHRoaXMubmFtZT0iVGltZW91dEVycm9yIix0aGlzLmluZm89YX19KX0pO2Z1bmN0aW9uIGZvKHQsZSl7cmV0dXJuIFZ0KGZ1bmN0aW9uKGEscil7dmFyIGk9MDthLnN1YnNjcmliZShQdChyLGZ1bmN0aW9uKG8pe3IubmV4dCh0LmNhbGwoZSxvLGkrKykpfSkpfSl9dmFyIFg1PW4oKCk9Pnt0MigpO1AyKCl9KTtmdW5jdGlvbiBySHQodCxlKXtyZXR1cm4gYUh0KGUpP3QuYXBwbHkodm9pZCAwLGUyKFtdLF8xKGUpKSk6dChlKX1mdW5jdGlvbiBvSWUodCl7cmV0dXJuIGZvKGZ1bmN0aW9uKGUpe3JldHVybiBySHQodCxlKX0pfXZhciBhSHQsc0llPW4oKCk9PntadCgpO1g1KCk7YUh0PUFycmF5LmlzQXJyYXl9KTt2YXIgbkllPW4oKCk9Pnt9KTt2YXIgbEllPW4oKCk9Pnt9KTt2YXIgY0llPW4oKCk9Pnt9KTtmdW5jdGlvbiBkSWUodCxlLGEscixpLG8scyxsKXt2YXIgZj1bXSxjPTAsdT0wLGQ9ITEsaD1mdW5jdGlvbigpe2QmJiFmLmxlbmd0aCYmIWMmJmUuY29tcGxldGUoKX0sZz1mdW5jdGlvbih4KXtyZXR1cm4gYzxyP2IoeCk6Zi5wdXNoKHgpfSxiPWZ1bmN0aW9uKHgpe28mJmUubmV4dCh4KSxjKys7dmFyIG09ITE7eDEoYSh4LHUrKykpLnN1YnNjcmliZShQdChlLGZ1bmN0aW9uKHYpe2k/Lih2KSxvP2codik6ZS5uZXh0KHYpfSxmdW5jdGlvbigpe209ITB9LHZvaWQgMCxmdW5jdGlvbigpe2lmKG0pdHJ5e2MtLTtmb3IodmFyIHY9ZnVuY3Rpb24oKXt2YXIgeT1mLnNoaWZ0KCk7cz9hMihlLHMsZnVuY3Rpb24oKXtyZXR1cm4gYih5KX0pOmIoeSl9O2YubGVuZ3RoJiZjPHI7KXYoKTtoKCl9Y2F0Y2goeSl7ZS5lcnJvcih5KX19KSl9O3JldHVybiB0LnN1YnNjcmliZShQdChlLGcsZnVuY3Rpb24oKXtkPSEwLGgoKX0pKSxmdW5jdGlvbigpe2w/LigpfX12YXIgZkllPW4oKCk9PntNYSgpO0xzKCk7UDIoKX0pO2Z1bmN0aW9uIF9zKHQsZSxhKXtyZXR1cm4gYT09PXZvaWQgMCYmKGE9MS8wKSxsdChlKT9fcyhmdW5jdGlvbihyLGkpe3JldHVybiBmbyhmdW5jdGlvbihvLHMpe3JldHVybiBlKHIsbyxpLHMpfSkoeDEodChyLGkpKSl9LGEpOih0eXBlb2YgZT09Im51bWJlciImJihhPWUpLFZ0KGZ1bmN0aW9uKHIsaSl7cmV0dXJuIGRJZShyLGksdCxhKX0pKX12YXIgUTU9bigoKT0+e1g1KCk7TWEoKTt0MigpO2ZJZSgpO2oxKCl9KTtmdW5jdGlvbiBSRih0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9MS8wKSxfcyhSNSx0KX12YXIgSEY9bigoKT0+e1E1KCk7YkYoKX0pO2Z1bmN0aW9uIHFGKCl7cmV0dXJuIFJGKDEpfXZhciBWRj1uKCgpPT57SEYoKX0pO2Z1bmN0aW9uIFVGKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBxRigpKFRzKHQsY28odCkpKX12YXIgSFc9bigoKT0+e1ZGKCk7VzUoKTtGRigpfSk7dmFyIHVJZT1uKCgpPT57fSk7dmFyIHBJZT1uKCgpPT57fSk7dmFyIGhJZT1uKCgpPT57fSk7ZnVuY3Rpb24gQXModCxlLGEscil7aWYobHQoYSkmJihyPWEsYT12b2lkIDApLHIpcmV0dXJuIEFzKHQsZSxhKS5waXBlKG9JZShyKSk7dmFyIGk9XzEoY0h0KHQpP29IdC5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKGYpe3JldHVybiB0W2xdKGUsZixhKX19KTpuSHQodCk/aUh0Lm1hcChtSWUodCxlKSk6bEh0KHQpP3NIdC5tYXAobUllKHQsZSkpOltdLDIpLG89aVswXSxzPWlbMV07aWYoIW8mJmtjKHQpKXJldHVybiBfcyhmdW5jdGlvbihsKXtyZXR1cm4gQXMobCxlLGEpfSkoeDEodCkpO2lmKCFvKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyB4dChmdW5jdGlvbihsKXt2YXIgZj1mdW5jdGlvbigpe2Zvcih2YXIgYz1bXSx1PTA7dTxhcmd1bWVudHMubGVuZ3RoO3UrKyljW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gbC5uZXh0KDE8Yy5sZW5ndGg/YzpjWzBdKX07cmV0dXJuIG8oZiksZnVuY3Rpb24oKXtyZXR1cm4gcyhmKX19KX1mdW5jdGlvbiBtSWUodCxlKXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0W2FdKGUscil9fX1mdW5jdGlvbiBuSHQodCl7cmV0dXJuIGx0KHQuYWRkTGlzdGVuZXIpJiZsdCh0LnJlbW92ZUxpc3RlbmVyKX1mdW5jdGlvbiBsSHQodCl7cmV0dXJuIGx0KHQub24pJiZsdCh0Lm9mZil9ZnVuY3Rpb24gY0h0KHQpe3JldHVybiBsdCh0LmFkZEV2ZW50TGlzdGVuZXIpJiZsdCh0LnJlbW92ZUV2ZW50TGlzdGVuZXIpfXZhciBpSHQsb0h0LHNIdCxnSWU9bigoKT0+e1p0KCk7TWEoKTtaMigpO1E1KCk7Q0YoKTtqMSgpO3NJZSgpO2lIdD1bImFkZExpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiXSxvSHQ9WyJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLHNIdD1bIm9uIiwib2ZmIl19KTt2YXIgeEllPW4oKCk9Pnt9KTt2YXIgYkllPW4oKCk9Pnt9KTt2YXIgdkllPW4oKCk9Pnt9KTtmdW5jdGlvbiBxVyh0LGUsYSl7dD09PXZvaWQgMCYmKHQ9MCksYT09PXZvaWQgMCYmKGE9dlcpO3ZhciByPS0xO3JldHVybiBlIT1udWxsJiYoU0YoZSk/YT1lOnI9ZSksbmV3IHh0KGZ1bmN0aW9uKGkpe3ZhciBvPU9GKHQpPyt0LWEubm93KCk6dDtvPDAmJihvPTApO3ZhciBzPTA7cmV0dXJuIGEuc2NoZWR1bGUoZnVuY3Rpb24oKXtpLmNsb3NlZHx8KGkubmV4dChzKyspLDA8PXI/dGhpcy5zY2hlZHVsZSh2b2lkIDAscik6aS5jb21wbGV0ZSgpKX0sbyl9KX12YXIgVlc9bigoKT0+e1oyKCk7Q3MoKTtTVygpO1JXKCl9KTt2YXIgeUllPW4oKCk9Pnt9KTt2YXIgd0llPW4oKCk9Pnt9KTtmdW5jdGlvbiBkSHQoKXtyZXR1cm4gTUllfXZhciBNSWUsVVc9bigoKT0+e1oyKCk7TXMoKTtNSWU9bmV3IHh0KHdhKX0pO3ZhciB6SWU9bigoKT0+e30pO3ZhciBrSWU9bigoKT0+e30pO2Z1bmN0aW9uIGpGKHQsZSl7cmV0dXJuIFZ0KGZ1bmN0aW9uKGEscil7dmFyIGk9MDthLnN1YnNjcmliZShQdChyLGZ1bmN0aW9uKG8pe3JldHVybiB0LmNhbGwoZSxvLGkrKykmJnIubmV4dChvKX0pKX0pfXZhciBqVz1uKCgpPT57dDIoKTtQMigpfSk7dmFyIFNJZT1uKCgpPT57fSk7dmFyIENJZT1uKCgpPT57fSk7dmFyIExJZT1uKCgpPT57fSk7dmFyIFRJZT1uKCgpPT57fSk7dmFyIF9JZT1uKCgpPT57fSk7dmFyIEFJZT1uKCgpPT57fSk7dmFyIFdXPW4oKCk9Pnt9KTt2YXIgR1c9bigoKT0+e30pO2Z1bmN0aW9uIFdGKHQpe3JldHVybiBWdChmdW5jdGlvbihlLGEpe3ZhciByPVtdO3JldHVybiBlLnN1YnNjcmliZShQdChhLGZ1bmN0aW9uKGkpe3JldHVybiByLnB1c2goaSl9LGZ1bmN0aW9uKCl7YS5uZXh0KHIpLGEuY29tcGxldGUoKX0pKSx4MSh0KS5zdWJzY3JpYmUoUHQoYSxmdW5jdGlvbigpe3ZhciBpPXI7cj1bXSxhLm5leHQoaSl9LHdhKSksZnVuY3Rpb24oKXtyPW51bGx9fSl9dmFyIFlXPW4oKCk9Pnt0MigpO01zKCk7UDIoKTtNYSgpfSk7ZnVuY3Rpb24gR0YodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9bnVsbCksZT1lPz90LFZ0KGZ1bmN0aW9uKGEscil7dmFyIGk9W10sbz0wO2Euc3Vic2NyaWJlKFB0KHIsZnVuY3Rpb24ocyl7dmFyIGwsZixjLHUsZD1udWxsO28rKyVlPT09MCYmaS5wdXNoKFtdKTt0cnl7Zm9yKHZhciBoPWgyKGkpLGc9aC5uZXh0KCk7IWcuZG9uZTtnPWgubmV4dCgpKXt2YXIgYj1nLnZhbHVlO2IucHVzaChzKSx0PD1iLmxlbmd0aCYmKGQ9ZD8/W10sZC5wdXNoKGIpKX19Y2F0Y2godil7bD17ZXJyb3I6dn19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKGY9aC5yZXR1cm4pJiZmLmNhbGwoaCl9ZmluYWxseXtpZihsKXRocm93IGwuZXJyb3J9fWlmKGQpdHJ5e2Zvcih2YXIgeD1oMihkKSxtPXgubmV4dCgpOyFtLmRvbmU7bT14Lm5leHQoKSl7dmFyIGI9bS52YWx1ZTtSYShpLGIpLHIubmV4dChiKX19Y2F0Y2godil7Yz17ZXJyb3I6dn19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKHU9eC5yZXR1cm4pJiZ1LmNhbGwoeCl9ZmluYWxseXtpZihjKXRocm93IGMuZXJyb3J9fX0sZnVuY3Rpb24oKXt2YXIgcyxsO3RyeXtmb3IodmFyIGY9aDIoaSksYz1mLm5leHQoKTshYy5kb25lO2M9Zi5uZXh0KCkpe3ZhciB1PWMudmFsdWU7ci5uZXh0KHUpfX1jYXRjaChkKXtzPXtlcnJvcjpkfX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobD1mLnJldHVybikmJmwuY2FsbChmKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19ci5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtpPW51bGx9KSl9KX12YXIgWlc9bigoKT0+e1p0KCk7dDIoKTtQMigpO2JjKCl9KTtmdW5jdGlvbiBZRih0KXtmb3IodmFyIGUsYSxyPVtdLGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXJbaS0xXT1hcmd1bWVudHNbaV07dmFyIG89KGU9Y28ocikpIT09bnVsbCYmZSE9PXZvaWQgMD9lOmJyLHM9KGE9clswXSkhPT1udWxsJiZhIT09dm9pZCAwP2E6bnVsbCxsPXJbMV18fDEvMDtyZXR1cm4gVnQoZnVuY3Rpb24oZixjKXt2YXIgdT1bXSxkPSExLGg9ZnVuY3Rpb24oeCl7dmFyIG09eC5idWZmZXIsdj14LnN1YnM7di51bnN1YnNjcmliZSgpLFJhKHUseCksYy5uZXh0KG0pLGQmJmcoKX0sZz1mdW5jdGlvbigpe2lmKHUpe3ZhciB4PW5ldyBrMTtjLmFkZCh4KTt2YXIgbT1bXSx2PXtidWZmZXI6bSxzdWJzOnh9O3UucHVzaCh2KSxhMih4LG8sZnVuY3Rpb24oKXtyZXR1cm4gaCh2KX0sdCl9fTtzIT09bnVsbCYmcz49MD9hMihjLG8sZyxzLCEwKTpkPSEwLGcoKTt2YXIgYj1QdChjLGZ1bmN0aW9uKHgpe3ZhciBtLHYseT11LnNsaWNlKCk7dHJ5e2Zvcih2YXIgdz1oMih5KSxFPXcubmV4dCgpOyFFLmRvbmU7RT13Lm5leHQoKSl7dmFyIEM9RS52YWx1ZSx6PUMuYnVmZmVyO3oucHVzaCh4KSxsPD16Lmxlbmd0aCYmaChDKX19Y2F0Y2goUCl7bT17ZXJyb3I6UH19ZmluYWxseXt0cnl7RSYmIUUuZG9uZSYmKHY9dy5yZXR1cm4pJiZ2LmNhbGwodyl9ZmluYWxseXtpZihtKXRocm93IG0uZXJyb3J9fX0sZnVuY3Rpb24oKXtmb3IoO3U/Lmxlbmd0aDspYy5uZXh0KHUuc2hpZnQoKS5idWZmZXIpO2I/LnVuc3Vic2NyaWJlKCksYy5jb21wbGV0ZSgpLGMudW5zdWJzY3JpYmUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIHU9bnVsbH0pO2Yuc3Vic2NyaWJlKGIpfSl9dmFyIFhXPW4oKCk9PntadCgpO3hyKCk7dDIoKTtQMigpO2JjKCk7Q3MoKTtXNSgpO0xzKCl9KTt2YXIgUVc9bigoKT0+e30pO3ZhciBLVz1uKCgpPT57fSk7dmFyIEpXPW4oKCk9Pnt9KTt2YXIgZUc9bigoKT0+e30pO3ZhciB0Rz1uKCgpPT57fSk7dmFyIGFHPW4oKCk9Pnt9KTt2YXIgckc9bigoKT0+e30pO3ZhciAkSWU9bigoKT0+e30pO3ZhciBpRz1uKCgpPT57fSk7dmFyIG9HPW4oKCk9Pnt9KTt2YXIgc0c9bigoKT0+e30pO3ZhciBESWU9bigoKT0+e30pO3ZhciBuRz1uKCgpPT57fSk7dmFyIGxHPW4oKCk9Pnt9KTt2YXIgY0c9bigoKT0+e30pO2Z1bmN0aW9uIFpGKHQpe3JldHVybiBWdChmdW5jdGlvbihlLGEpe3ZhciByPSExLGk9bnVsbCxvPW51bGwscz1mdW5jdGlvbigpe2lmKG8/LnVuc3Vic2NyaWJlKCksbz1udWxsLHIpe3I9ITE7dmFyIGw9aTtpPW51bGwsYS5uZXh0KGwpfX07ZS5zdWJzY3JpYmUoUHQoYSxmdW5jdGlvbihsKXtvPy51bnN1YnNjcmliZSgpLHI9ITAsaT1sLG89UHQoYSxzLHdhKSx4MSh0KGwpKS5zdWJzY3JpYmUobyl9LGZ1bmN0aW9uKCl7cygpLGEuY29tcGxldGUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7aT1vPW51bGx9KSl9KX12YXIgZEc9bigoKT0+e3QyKCk7TXMoKTtQMigpO01hKCl9KTtmdW5jdGlvbiBYRih0LGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT1iciksVnQoZnVuY3Rpb24oYSxyKXt2YXIgaT1udWxsLG89bnVsbCxzPW51bGwsbD1mdW5jdGlvbigpe2lmKGkpe2kudW5zdWJzY3JpYmUoKSxpPW51bGw7dmFyIGM9bztvPW51bGwsci5uZXh0KGMpfX07ZnVuY3Rpb24gZigpe3ZhciBjPXMrdCx1PWUubm93KCk7aWYodTxjKXtpPXRoaXMuc2NoZWR1bGUodm9pZCAwLGMtdSksci5hZGQoaSk7cmV0dXJufWwoKX1hLnN1YnNjcmliZShQdChyLGZ1bmN0aW9uKGMpe289YyxzPWUubm93KCksaXx8KGk9ZS5zY2hlZHVsZShmLHQpLHIuYWRkKGkpKX0sZnVuY3Rpb24oKXtsKCksci5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtvPWk9bnVsbH0pKX0pfXZhciBmRz1uKCgpPT57Q3MoKTt0MigpO1AyKCl9KTt2YXIgdUc9bigoKT0+e30pO3ZhciBwRz1uKCgpPT57fSk7dmFyIGhHPW4oKCk9Pnt9KTt2YXIgbUc9bigoKT0+e30pO3ZhciBnRz1uKCgpPT57fSk7dmFyIHhHPW4oKCk9Pnt9KTt2YXIgYkc9bigoKT0+e30pO3ZhciB2Rz1uKCgpPT57fSk7dmFyIHlHPW4oKCk9Pnt9KTt2YXIgd0c9bigoKT0+e30pO3ZhciBNRz1uKCgpPT57fSk7dmFyIHpHPW4oKCk9Pnt9KTt2YXIga0c9bigoKT0+e30pO3ZhciBTRz1uKCgpPT57fSk7dmFyIENHPW4oKCk9Pnt9KTt2YXIgTEc9bigoKT0+e30pO3ZhciBURz1uKCgpPT57fSk7dmFyIF9HPW4oKCk9Pnt9KTt2YXIgQUc9bigoKT0+e30pO3ZhciAkRz1uKCgpPT57fSk7dmFyIERHPW4oKCk9Pnt9KTt2YXIgRUc9bigoKT0+e30pO3ZhciBORz1uKCgpPT57fSk7dmFyIFBHPW4oKCk9Pnt9KTt2YXIgSUc9bigoKT0+e30pO3ZhciBGRz1uKCgpPT57fSk7dmFyIE9HPW4oKCk9Pnt9KTt2YXIgQkc9bigoKT0+e30pO3ZhciBSRz1uKCgpPT57fSk7dmFyIEhHPW4oKCk9Pnt9KTt2YXIgcUc9bigoKT0+e30pO3ZhciBFSWU9bigoKT0+e30pO3ZhciBWRz1uKCgpPT57fSk7dmFyIFVHPW4oKCk9Pnt9KTt2YXIgakc9bigoKT0+e30pO3ZhciBXRz1uKCgpPT57fSk7dmFyIEdHPW4oKCk9Pnt9KTt2YXIgWUc9bigoKT0+e30pO3ZhciBaRz1uKCgpPT57fSk7dmFyIFhHPW4oKCk9Pnt9KTt2YXIgUUc9bigoKT0+e30pO3ZhciBLRz1uKCgpPT57fSk7dmFyIEpHPW4oKCk9Pnt9KTt2YXIgZVk9bigoKT0+e30pO3ZhciB0WT1uKCgpPT57fSk7dmFyIGFZPW4oKCk9Pnt9KTt2YXIgclk9bigoKT0+e30pO3ZhciBpWT1uKCgpPT57fSk7dmFyIG9ZPW4oKCk9Pnt9KTt2YXIgc1k9bigoKT0+e30pO3ZhciBuWT1uKCgpPT57fSk7dmFyIGxZPW4oKCk9Pnt9KTt2YXIgY1k9bigoKT0+e30pO3ZhciBkWT1uKCgpPT57fSk7dmFyIGZZPW4oKCk9Pnt9KTt2YXIgdVk9bigoKT0+e30pO3ZhciBwWT1uKCgpPT57fSk7dmFyIGhZPW4oKCk9Pnt9KTtmdW5jdGlvbiBRRigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgYT1jbyh0KTtyZXR1cm4gVnQoZnVuY3Rpb24ocixpKXsoYT9VRih0LHIsYSk6VUYodCxyKSkuc3Vic2NyaWJlKGkpfSl9dmFyIG1ZPW4oKCk9PntIVygpO1c1KCk7dDIoKX0pO3ZhciBnWT1uKCgpPT57fSk7dmFyIHhZPW4oKCk9Pnt9KTt2YXIgYlk9bigoKT0+e30pO3ZhciB2WT1uKCgpPT57fSk7ZnVuY3Rpb24gS0YodCl7cmV0dXJuIFZ0KGZ1bmN0aW9uKGUsYSl7eDEodCkuc3Vic2NyaWJlKFB0KGEsZnVuY3Rpb24oKXtyZXR1cm4gYS5jb21wbGV0ZSgpfSx3YSkpLCFhLmNsb3NlZCYmZS5zdWJzY3JpYmUoYSl9KX12YXIgeVk9bigoKT0+e3QyKCk7UDIoKTtNYSgpO01zKCl9KTt2YXIgd1k9bigoKT0+e30pO3ZhciBNWT1uKCgpPT57fSk7ZnVuY3Rpb24gSkYodCxlKXtyZXR1cm4gVnQoZnVuY3Rpb24oYSxyKXt2YXIgaT1lPz97fSxvPWkubGVhZGluZyxzPW89PT12b2lkIDA/ITA6byxsPWkudHJhaWxpbmcsZj1sPT09dm9pZCAwPyExOmwsYz0hMSx1PW51bGwsZD1udWxsLGg9ITEsZz1mdW5jdGlvbigpe2Q/LnVuc3Vic2NyaWJlKCksZD1udWxsLGYmJihtKCksaCYmci5jb21wbGV0ZSgpKX0sYj1mdW5jdGlvbigpe2Q9bnVsbCxoJiZyLmNvbXBsZXRlKCl9LHg9ZnVuY3Rpb24odil7cmV0dXJuIGQ9eDEodCh2KSkuc3Vic2NyaWJlKFB0KHIsZyxiKSl9LG09ZnVuY3Rpb24oKXtpZihjKXtjPSExO3ZhciB2PXU7dT1udWxsLHIubmV4dCh2KSwhaCYmeCh2KX19O2Euc3Vic2NyaWJlKFB0KHIsZnVuY3Rpb24odil7Yz0hMCx1PXYsIShkJiYhZC5jbG9zZWQpJiYocz9tKCk6eCh2KSl9LGZ1bmN0aW9uKCl7aD0hMCwhKGYmJmMmJmQmJiFkLmNsb3NlZCkmJnIuY29tcGxldGUoKX0pKX0pfXZhciBlTz1uKCgpPT57dDIoKTtQMigpO01hKCl9KTtmdW5jdGlvbiB0Tyh0LGUsYSl7ZT09PXZvaWQgMCYmKGU9YnIpO3ZhciByPXFXKHQsZSk7cmV0dXJuIEpGKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9LGEpfXZhciB6WT1uKCgpPT57Q3MoKTtlTygpO1ZXKCl9KTt2YXIga1k9bigoKT0+e30pO3ZhciBTWT1uKCgpPT57fSk7dmFyIENZPW4oKCk9Pnt9KTt2YXIgTFk9bigoKT0+e30pO3ZhciBUWT1uKCgpPT57fSk7dmFyIF9ZPW4oKCk9Pnt9KTt2YXIgQVk9bigoKT0+e30pO3ZhciAkWT1uKCgpPT57fSk7dmFyIERZPW4oKCk9Pnt9KTt2YXIgRVk9bigoKT0+e30pO3ZhciBOSWU9bigoKT0+e30pO3ZhciBOWT1uKCgpPT57fSk7dmFyIFBZPW4oKCk9PntaMigpO2NQZSgpO0I1KCk7dVBlKCk7SDUoKTtoUGUoKTttUGUoKTt4UGUoKTtDUGUoKTtDcygpO0FQZSgpO05QZSgpO0lQZSgpO3hXKCk7eHIoKTt4RigpO1pQZSgpO29XKCk7TXMoKTtiRigpO1hQZSgpO0tQZSgpO0pQZSgpO2VJZSgpO1FQZSgpO3RJZSgpO2RXKCk7YUllKCk7QkYoKTtRaigpO25JZSgpO2xJZSgpO2NJZSgpO0hXKCk7cEllKCk7dUllKCk7a0YoKTtoSWUoKTtGRigpO2dJZSgpO3hJZSgpO2JJZSgpO3ZJZSgpO3lJZSgpO3dJZSgpO1VXKCk7SVcoKTt6SWUoKTtrSWUoKTtTSWUoKTtDSWUoKTtMSWUoKTtPVygpO1ZXKCk7VEllKCk7X0llKCk7UFcoKTtrRigpO1VXKCk7QUllKCk7dmMoKTtXVygpO0dXKCk7WVcoKTtaVygpO1hXKCk7UVcoKTtLVygpO0pXKCk7ckcoKTthRygpO2lHKCk7VkYoKTtvRygpO3NHKCk7bkcoKTtsRygpO2NHKCk7ZEcoKTtmRygpO3VHKCk7eEcoKTtnRygpO2JHKCk7dkcoKTt5RygpO3dHKCk7ekcoKTtrRygpO1NHKCk7VEcoKTtMRygpO0NHKCk7X0coKTtqVygpO0FHKCk7JEcoKTtERygpO0VHKCk7TkcoKTtoRygpO1BHKCk7RkcoKTtYNSgpO21HKCk7T0coKTtCRygpO0hGKCk7UkcoKTtRNSgpO0hHKCk7cUcoKTtWRygpO1VHKCk7akcoKTtHNSgpO1dHKCk7R0coKTtZRygpO1pHKCk7WEcoKTtRRygpO0tHKCk7SkcoKTtlRygpO2VZKCk7dFkoKTthWSgpO3JZKCk7eUYoKTtpWSgpO29ZKCk7c1koKTtuWSgpO2xZKCk7Y1koKTtkWSgpO2ZZKCk7dVkoKTtwWSgpO2hZKCk7bVkoKTtZNSgpO3hZKCk7Z1koKTtiWSgpO3ZZKCk7cEcoKTtJRygpO3lZKCk7d1koKTtNWSgpO2VPKCk7elkoKTtNRygpO2tZKCk7QkYoKTtTWSgpO0NZKCk7dEcoKTtMWSgpO1RZKCk7X1koKTtBWSgpOyRZKCk7RFkoKTtFWSgpO05ZKCl9KTt2YXIgUEllPW4oKCk9Pnt9KTt2YXIgSUllPW4oKCk9Pnt9KTt2YXIgRkllPW4oKCk9PntXVygpO0dXKCk7WVcoKTtaVygpO1hXKCk7UVcoKTtLVygpO0pXKCk7ckcoKTthRygpOyRJZSgpO2lHKCk7REllKCk7VkYoKTtvRygpO3NHKCk7bkcoKTtsRygpO2NHKCk7ZEcoKTtmRygpO3VHKCk7eEcoKTtnRygpO2JHKCk7dkcoKTt5RygpO3dHKCk7ekcoKTtrRygpO1NHKCk7VEcoKTtMRygpO0NHKCk7X0coKTtqVygpO0FHKCk7JEcoKTtERygpO0VHKCk7TkcoKTtoRygpO1BHKCk7RkcoKTtYNSgpO21HKCk7T0coKTtCRygpO0VJZSgpO0hGKCk7UkcoKTtRNSgpO0hHKCk7cUcoKTtWRygpO1VHKCk7akcoKTtHNSgpO1dHKCk7R0coKTtQSWUoKTtZRygpO1pHKCk7WEcoKTtRRygpO0tHKCk7SUllKCk7SkcoKTtlRygpO2VZKCk7dFkoKTthWSgpO3JZKCk7eUYoKTtpWSgpO29ZKCk7c1koKTtuWSgpO2xZKCk7Y1koKTtkWSgpO2ZZKCk7dVkoKTtwWSgpO2hZKCk7bVkoKTtZNSgpO3hZKCk7Z1koKTtiWSgpO3ZZKCk7cEcoKTtJRygpO3lZKCk7d1koKTtNWSgpO2VPKCk7elkoKTtNRygpO2tZKCk7QkYoKTtTWSgpO0NZKCk7dEcoKTtMWSgpO1RZKCk7X1koKTtBWSgpOyRZKCk7RFkoKTtOSWUoKTtFWSgpO05ZKCl9KTt2YXIgTGM9e307ZXQoTGMse09ic2VydmFibGU6KCk9Pnh0LFJlcGxheVN1YmplY3Q6KCk9PndGLFN1YmplY3Q6KCk9PlgyLFN1YnNjcmlwdGlvbjooKT0+azEsZnJvbTooKT0+VHMsZnJvbUV2ZW50OigpPT5BcyxvZjooKT0+WjUsb3BzOigpPT5qcXR9KTt2YXIganF0LGFPPW4oKCk9PntQWSgpO0ZJZSgpO2pxdD17YnVmZmVyOldGLGJ1ZmZlckNvdW50OkdGLGJ1ZmZlclRpbWU6WUYsZGVib3VuY2U6WkYsZGVib3VuY2VUaW1lOlhGLGZpbHRlcjpqRixtYXA6Zm8sc3RhcnRXaXRoOlFGLHRha2VVbnRpbDpLRix0aHJvdHRsZVRpbWU6dE99fSk7dmFyIElZLE9JZT1uKCgpPT57dUYoKTthTygpO0lZPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXk9bmV3IEFycmF5LHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXk9bmV3IEFycmF5fWdldFN1YmplY3RGb3JFbWl0dGVyRXZlbnQoZSxhKXtsZXQgcj10aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5maW5kKGk9PmkuZXZlbnRSZWY9PT1lJiZpLmV2ZW50PT09YSk7aWYocilyZXR1cm4gci5zdWJqZWN0O3tsZXQgaT1BcyhlLGEpLG89bmV3IFgyO2kuc3Vic2NyaWJlKG8pO2xldCBzPXtzdWJqZWN0Om8sZXZlbnRSZWY6ZSxldmVudDphfTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXkucHVzaChzKSxzLnN1YmplY3R9fWdldFN1YmplY3RGb3JFdmVudFRhcmdldChlLGEpe2xldCByPXRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkuZmluZChpPT5pLmV2ZW50UmVmPT09ZSYmaS5ldmVudD09PWEpO2lmKHIpcmV0dXJuIHIuc3ViamVjdDt7bGV0IG89e3N1YmplY3Q6bmV3IFgyLGV2ZW50UmVmOmUsZXZlbnQ6YX07cmV0dXJuIHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkucHVzaChvKSxvLnN1YmplY3R9fX19KTt2YXIgRlksQkllPW4oKCk9Pnt1RigpO2FPKCk7Rlk9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnM9e25leHQ6ZT0+e30sY29tcGxldGU6ZT0+e319LHRoaXMuZ2VuZXJhdG9yPW51bGwsdGhpcy5idWZmZXJlZD0hMSx0aGlzLnBheWxvYWRCdWZmZXI9W10sdGhpcy5vYnNlcnZhYmxlPW5ldyB4dChlPT57dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLm5leHQ9KC4uLmEpPT5lLm5leHQoYSksdGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlPSgpPT4odGhpcy5jb21wbGV0ZWREZWZmZXJlZC5yZXNvbHZlKCksZS5jb21wbGV0ZSgpKX0pLHRoaXMuY29tcGxldGVkRGVmZmVyZWQ9VmUuZGVmZXIoKSx0aGlzLmNvbXBsZXRlZD10aGlzLmNvbXBsZXRlZERlZmZlcmVkLnByb21pc2V9c2V0T2JzZXJ2YWJsZShlKXt0aGlzLm9ic2VydmFibGU9ZX1wdXNoKGUpe3RoaXMuYnVmZmVyZWQ/dGhpcy5wYXlsb2FkQnVmZmVyLnB1c2goZSk6dGhpcy5pbnRlcm5hbFB1c2goZSl9cHVzaE1hbnkoZSl7Zm9yKGxldCBhIG9mIGUpdGhpcy5wdXNoKGEpfXNldEdlbmVyYXRvcihlKXt0aGlzLmdlbmVyYXRvcj1lfW1ha2VCdWZmZXJlZCgpe3RoaXMuYnVmZmVyZWQ9ITB9c3Vic2NyaWJlKC4uLmUpe3JldHVybiB0aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKC4uLmUpfXJlcXVlc3QoZSl7aWYoZSE9PTApZm9yKGxldCBhPTA7YSE9PWU7YSsrKWlmKHRoaXMucGF5bG9hZEJ1ZmZlci5sZW5ndGg+MCl0aGlzLmludGVybmFsUHVzaCh0aGlzLnBheWxvYWRCdWZmZXIuc2hpZnQoKSk7ZWxzZXtsZXQgcj10aGlzLmdlbmVyYXRvci5uZXh0KCk7dGhpcy5pbnRlcm5hbFB1c2goci52YWx1ZSl9fXNpZ25hbENvbXBsZXRlKCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlKCl9aW50ZXJuYWxQdXNoKGUpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5uZXh0KGUpfX19KTtmdW5jdGlvbiBXcXQodCl7cmV0dXJuIG5ldyB4dChlPT57bGV0IGE9KCk9PnQucGF1c2UoKSxyPSgpPT5wcm9jZXNzLm5leHRUaWNrKCgpPT50LnJlc3VtZSgpKSxpPW89PnthKCksZS5uZXh0KG8pLHIoKX07cmV0dXJuIHQub24oImRhdGEiLGkpLHQub24oImVycm9yIixvPT5lLmVycm9yKG8pKSx0Lm9uKCJlbmQiLCgpPT5lLmNvbXBsZXRlKCkpLHQub24oImNsb3NlIiwoKT0+ZS5jb21wbGV0ZSgpKSwoKT0+e3QucmVtb3ZlTGlzdGVuZXIoImRhdGEiLGkpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixlLmVycm9yKSx0LnJlbW92ZUxpc3RlbmVyKCJlbmQiLGUuY29tcGxldGUpLHQucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixlLmNvbXBsZXRlKX19KX12YXIgUkllPW4oKCk9PntQWSgpfSk7dmFyIEN0PXt9O2V0KEN0LHtPYnNlcnZhYmxlSW50YWtlOigpPT5GWSxPYnNlcnZhYmxlbWFwOigpPT5JWSxmcm9tU3RyZWFtV2l0aEJhY2twcmVzc3VyZTooKT0+V3F0LHJ4anM6KCk9PkxjfSk7dmFyIFZhPW4oKCk9Pnt1RigpO09JZSgpO0JJZSgpO1JJZSgpO2FPKCl9KTtmdW5jdGlvbiBEKHQpe3JldHVybihlLGEpPT50eXBlb2YgYT09Im9iamVjdCI/SEllKHQsZSxhKTooKHIsaSxvKT0+e2xldCBzPWkuaGFzT3duUHJvcGVydHkobyk7cmV0dXJuIGkuY29uc3RydWN0b3IuY3JlYXRlUHJvcGVydHkobyxyKSxzP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxvKTp2b2lkIDB9KSh0LGUsYSl9dmFyIEdxdCxISWUsck89bigoKT0+eyQ1KCk7R3F0PXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOmdjLHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpBNX0sSEllPSh0PUdxdCxlLGEpPT57bGV0e2tpbmQ6cixtZXRhZGF0YTppfT1hLG89Z2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChpKTtpZihvPT09dm9pZCAwJiZnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuc2V0KGksbz1uZXcgTWFwKSxyPT09InNldHRlciImJigodD1PYmplY3QuY3JlYXRlKHQpKS53cmFwcGVkPSEwKSxvLnNldChhLm5hbWUsdCkscj09PSJhY2Nlc3NvciIpe2xldHtuYW1lOnN9PWE7cmV0dXJue3NldChsKXtsZXQgZj1lLmdldC5jYWxsKHRoaXMpO2Uuc2V0LmNhbGwodGhpcyxsKSx0aGlzLnJlcXVlc3RVcGRhdGUocyxmLHQsITAsbCl9LGluaXQobCl7cmV0dXJuIGwhPT12b2lkIDAmJnRoaXMuQyhzLHZvaWQgMCx0LGwpLGx9fX1pZihyPT09InNldHRlciIpe2xldHtuYW1lOnN9PWE7cmV0dXJuIGZ1bmN0aW9uKGwpe2xldCBmPXRoaXNbc107ZS5jYWxsKHRoaXMsbCksdGhpcy5yZXF1ZXN0VXBkYXRlKHMsZix0LCEwLGwpfX10aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgZGVjb3JhdG9yIGxvY2F0aW9uOiAiK3IpfX0pO3ZhciBxSWU9bigoKT0+e3JPKCl9KTt2YXIgVkllPW4oKCk9Pnt9KTt2YXIgZnQ9e307ZXQoZnQse1RpbWVvdXQ6KCk9PmlPLGRlbGF5Rm9yOigpPT5VSWUsZGVsYXlGb3JSYW5kb206KCk9PllxdH0pO3ZhciBVSWUsWXF0LGlPLGlpPW4oKCk9PntwMigpO1VJZT1hc3luYyh0LGUsYT0hMSk9Pihhd2FpdCBuZXcgaU8odCxudWxsLGEpLnByb21pc2UsZSksWXF0PWFzeW5jKHQsZSxhLHI9ITEpPT4oYXdhaXQgVUllKE1hdGgucmFuZG9tKCkqKGUtdCkrdCxudWxsLHIpLGEpLGlPPWNsYXNze2NvbnN0cnVjdG9yKGUsYSxyPSExKXt0aGlzLl9jYW5jZWxsZWQ9ITEsdGhpcy50aW1lb3V0SW5NaWxsaXM9ZSx0aGlzLl9kZWZlcnJlZD1ubygpLHRoaXMucHJvbWlzZT10aGlzLl9kZWZlcnJlZC5wcm9taXNlLHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbmNlbGxlZHx8dGhpcy5fZGVmZXJyZWQucmVzb2x2ZShhKX0sZSksdGhpcy5zdGFydGVkPURhdGUubm93KCksciYmdGhpcy5tYWtlVW5yZWZlZCgpfW1ha2VVbnJlZmVkKCl7dGhpcy5fdGltZW91dC51bnJlZigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgZT10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gZT4wP2U6MH19fSk7dmFyIFRjPXt9O3ZhciBvTz1uKCgpPT57fSk7ZnVuY3Rpb24gJHModCl7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIHQucmVwbGFjZSgvW3xcXHt9KClbXF1eJCsqPy5dL2csIlxcJCYiKS5yZXBsYWNlKC8tL2csIlxceDJkIil9dmFyIHNPPW4oKCk9Pnt9KTt2YXIgSzU9e307ZXQoSzUse2lzTWF0Y2g6KCk9PlFxdCxtYXRjaGVyOigpPT5YcXR9KTtmdW5jdGlvbiBYcXQodCxlLGEpe3JldHVybiBXSWUodCxlLGEsITEpfWZ1bmN0aW9uIFFxdCh0LGUsYSl7cmV0dXJuIFdJZSh0LGUsYSwhMCkubGVuZ3RoPjB9dmFyIE9ZLGpJZSxacXQsV0llLEdJZT1uKCgpPT57c08oKTtPWT1uZXcgTWFwLGpJZT0odCxlKT0+e2lmKCFBcnJheS5pc0FycmF5KHQpKXN3aXRjaCh0eXBlb2YgdCl7Y2FzZSJzdHJpbmciOnQ9W3RdO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjp0PVtdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5LCBidXQgZ290IGEgdHlwZSBvZiAnJHt0eXBlb2YgdH0nYCl9cmV0dXJuIHQuZmlsdGVyKGE9PntpZih0eXBlb2YgYSE9InN0cmluZyIpe2lmKHR5cGVvZiBhPiJ1IilyZXR1cm4hMTt0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAnJHtlfScgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncywgYnV0IGZvdW5kIGEgdHlwZSBvZiAnJHt0eXBlb2YgYX0nIGluIHRoZSBhcnJheWApfXJldHVybiEwfSl9LFpxdD0odCxlKT0+e2U9e2Nhc2VTZW5zaXRpdmU6ITEsLi4uZX07bGV0IGE9dCtKU09OLnN0cmluZ2lmeShlKTtpZihPWS5oYXMoYSkpcmV0dXJuIE9ZLmdldChhKTtsZXQgcj10WzBdPT09IiEiO3ImJih0PXQuc2xpY2UoMSkpLHQ9JHModCkucmVwbGFjZSgvXFxcKi9nLCJbXFxzXFxTXSoiKTtsZXQgaT1uZXcgUmVnRXhwKGBeJHt0fSRgLGUuY2FzZVNlbnNpdGl2ZT8iIjoiaSIpO3JldHVybiBpLm5lZ2F0ZWQ9cixPWS5zZXQoYSxpKSxpfSxXSWU9KHQsZSxhLHIpPT57aWYodD1qSWUodCwiaW5wdXRzIiksZT1qSWUoZSwicGF0dGVybnMiKSxlLmxlbmd0aD09PTApcmV0dXJuW107ZT1lLm1hcChzPT5acXQocyxhKSk7bGV0e2FsbFBhdHRlcm5zOml9PWF8fHt9LG89W107Zm9yKGxldCBzIG9mIHQpe2xldCBsLGY9Wy4uLmVdLmZpbGwoITEpO2ZvcihsZXRbYyx1XW9mIGUuZW50cmllcygpKWlmKHUudGVzdChzKSYmKGZbY109ITAsbD0hdS5uZWdhdGVkLCFsKSlicmVhaztpZighKGw9PT0hMXx8bD09PXZvaWQgMCYmZS5zb21lKGM9PiFjLm5lZ2F0ZWQpfHxpJiZmLnNvbWUoKGMsdSk9PiFjJiYhZVt1XS5uZWdhdGVkKSkmJihvLnB1c2gocykscikpYnJlYWt9cmV0dXJuIG99fSk7dmFyIFlJZT1uKCgpPT57R0llKCl9KTt2YXIgb2k9e307ZXQob2kse1NtYXJ0TWF0Y2g6KCk9PkJZfSk7dmFyIEJZLFJZPW4oKCk9PntZSWUoKTtCWT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLndpbGRjYXJkPWV9bWF0Y2goZSl7cmV0dXJuIEs1LmlzTWF0Y2goZSx0aGlzLndpbGRjYXJkKX19fSk7dmFyIHQ4PXt9O2V0KHQ4LHtDcm9uOigpPT5KSWUsQ3JvbkRhdGU6KCk9PlEyLENyb25QYXR0ZXJuOigpPT5uTyxzY2hlZHVsZWRKb2JzOigpPT5fY30pO2Z1bmN0aW9uIG0yKHQsZSxhLHIsaSxvLHMsbCl7cmV0dXJuIG0yLmZyb21UWihtMi50cCh0LGUsYSxyLGksbyxzKSxsKX1mdW5jdGlvbiBIWSh0LGU9bmV3IERhdGUpe2xldCBhPWUudG9Mb2NhbGVTdHJpbmcoImVuLVVTIix7dGltZVpvbmU6dCx0aW1lWm9uZU5hbWU6InNob3J0T2Zmc2V0In0pLnNwbGl0KCIgIikuc2xpY2UoLTEpWzBdLHI9ZS50b0xvY2FsZVN0cmluZygiZW4tVVMiKS5yZXBsYWNlKC9bXHUyMDJmXS8sIiAiKTtyZXR1cm4gRGF0ZS5wYXJzZShgJHtyfSBHTVRgKS1EYXRlLnBhcnNlKGAke3J9ICR7YX1gKX1mdW5jdGlvbiBKcXQodCxlKXtsZXQgYT1uZXcgRGF0ZShEYXRlLnBhcnNlKHQpKTtpZihpc05hTihhKSl0aHJvdyBuZXcgRXJyb3IoIm1pbml0ejogSW52YWxpZCBJU084NjAxIHBhc3NlZCB0byBwYXJzZXIuIik7bGV0IHI9dC5zdWJzdHJpbmcoOSk7cmV0dXJuIHQuaW5jbHVkZXMoIloiKXx8ci5pbmNsdWRlcygiLSIpfHxyLmluY2x1ZGVzKCIrIik/bTIudHAoYS5nZXRVVENGdWxsWWVhcigpLGEuZ2V0VVRDTW9udGgoKSsxLGEuZ2V0VVRDRGF0ZSgpLGEuZ2V0VVRDSG91cnMoKSxhLmdldFVUQ01pbnV0ZXMoKSxhLmdldFVUQ1NlY29uZHMoKSwiRXRjL1VUQyIpOm0yLnRwKGEuZ2V0RnVsbFllYXIoKSxhLmdldE1vbnRoKCkrMSxhLmdldERhdGUoKSxhLmdldEhvdXJzKCksYS5nZXRNaW51dGVzKCksYS5nZXRTZWNvbmRzKCksZSl9ZnVuY3Rpb24gZVZ0KHQpe2lmKHQ9PT12b2lkIDAmJih0PXt9KSxkZWxldGUgdC5uYW1lLHQubGVnYWN5TW9kZT10LmxlZ2FjeU1vZGU9PT12b2lkIDA/ITA6dC5sZWdhY3lNb2RlLHQucGF1c2VkPXQucGF1c2VkPT09dm9pZCAwPyExOnQucGF1c2VkLHQubWF4UnVucz10Lm1heFJ1bnM9PT12b2lkIDA/MS8wOnQubWF4UnVucyx0LmNhdGNoPXQuY2F0Y2g9PT12b2lkIDA/ITE6dC5jYXRjaCx0LmludGVydmFsPXQuaW50ZXJ2YWw9PT12b2lkIDA/MDpwYXJzZUludCh0LmludGVydmFsLnRvU3RyaW5nKCksMTApLHQudXRjT2Zmc2V0PXQudXRjT2Zmc2V0PT09dm9pZCAwP3ZvaWQgMDpwYXJzZUludCh0LnV0Y09mZnNldC50b1N0cmluZygpLDEwKSx0LnVucmVmPXQudW5yZWY9PT12b2lkIDA/ITE6dC51bnJlZix0LnN0YXJ0QXQmJih0LnN0YXJ0QXQ9bmV3IFEyKHQuc3RhcnRBdCx0LnRpbWV6b25lKSksdC5zdG9wQXQmJih0LnN0b3BBdD1uZXcgUTIodC5zdG9wQXQsdC50aW1lem9uZSkpLHQuaW50ZXJ2YWwhPT1udWxsKXtpZihpc05hTih0LmludGVydmFsKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBTdXBwbGllZCB2YWx1ZSBmb3IgaW50ZXJ2YWwgaXMgbm90IGEgbnVtYmVyIik7aWYodC5pbnRlcnZhbDwwKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBjYW4gbm90IGJlIG5lZ2F0aXZlIil9aWYodC51dGNPZmZzZXQhPT12b2lkIDApe2lmKGlzTmFOKHQudXRjT2Zmc2V0KSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCBmb3IgdXRjT2Zmc2V0LCBzaG91bGQgYmUgbnVtYmVyIHJlcHJlc2VudGluZyBtaW51dGVzIG9mZnNldCBmcm9tIFVUQy4iKTtpZih0LnV0Y09mZnNldDwtODcwfHx0LnV0Y09mZnNldD44NzApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogdXRjT2Zmc2V0IG91dCBvZiBib3VuZHMuIik7aWYodC51dGNPZmZzZXQhPT12b2lkIDAmJnQudGltZXpvbmUpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogQ29tYmluaW5nICd1dGNPZmZzZXQnIHdpdGggJ3RpbWV6b25lJyBpcyBub3QgYWxsb3dlZC4iKX1pZih0LnVucmVmIT09ITAmJnQudW5yZWYhPT0hMSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBVbnJlZiBzaG91bGQgYmUgZWl0aGVyIHRydWUsIGZhbHNlIG9yIHVuZGVmaW5lZChmYWxzZSkuIik7cmV0dXJuIHR9ZnVuY3Rpb24gZTgodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiB0PT0iZnVuY3Rpb24ifHx0IGluc3RhbmNlb2YgRnVuY3Rpb259ZnVuY3Rpb24gdFZ0KHQpe3JldHVybiBlOCh0KX1mdW5jdGlvbiBhVnQodCl7dHlwZW9mIERlbm88InUiJiZ0eXBlb2YgRGVuby51bnJlZlRpbWVyPCJ1Ij9EZW5vLnVucmVmVGltZXIodCk6dCYmdHlwZW9mIHQudW5yZWY8InUiJiZ0LnVucmVmKCl9dmFyIHFZLEo1LFpJZSxuTyxYSWUsc2ksUTIsUUllLF9jLEpJZSxlRmU9bigoKT0+e20yLmZyb21UWklTTz0odCxlLGEpPT5tMi5mcm9tVFooSnF0KHQsZSksYSksbTIuZnJvbVRaPWZ1bmN0aW9uKHQsZSl7bGV0IGE9bmV3IERhdGUoRGF0ZS5VVEModC55LHQubS0xLHQuZCx0LmgsdC5pLHQucykpLHI9SFkodC50eixhKSxpPW5ldyBEYXRlKGEuZ2V0VGltZSgpLXIpLG89SFkodC50eixpKTtpZihvLXI9PT0wKXJldHVybiBpO3tsZXQgcz1uZXcgRGF0ZShhLmdldFRpbWUoKS1vKSxsPUhZKHQudHoscyk7aWYobC1vPT09MHx8IWUmJmwtbz4wKXJldHVybiBzO2lmKGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpIik7cmV0dXJuIGl9fSxtMi50b1RaPWZ1bmN0aW9uKHQsZSl7bGV0IGE9dC50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZTplfSkucmVwbGFjZSgvW1x1MjAyZl0vLCIgIikscj1uZXcgRGF0ZShhKTtyZXR1cm57eTpyLmdldEZ1bGxZZWFyKCksbTpyLmdldE1vbnRoKCkrMSxkOnIuZ2V0RGF0ZSgpLGg6ci5nZXRIb3VycygpLGk6ci5nZXRNaW51dGVzKCksczpyLmdldFNlY29uZHMoKSx0ejplfX0sbTIudHA9KHQsZSxhLHIsaSxvLHMpPT4oe3k6dCxtOmUsZDphLGg6cixpLHM6byx0ejpzfSk7bTIubWluaXR6PW0yO3FZPTMyLEo1PTMxfHFZLFpJZT1bMSwyLDQsOCwxNl0sbk89Y2xhc3N7cGF0dGVybjt0aW1lem9uZTtzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO2RheU9mV2VlaztsYXN0RGF5T2ZNb250aDtzdGFyRE9NO3N0YXJET1c7Y29uc3RydWN0b3IodCxlKXt0aGlzLnBhdHRlcm49dCx0aGlzLnRpbWV6b25lPWUsdGhpcy5zZWNvbmQ9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5taW51dGU9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5ob3VyPUFycmF5KDI0KS5maWxsKDApLHRoaXMuZGF5PUFycmF5KDMxKS5maWxsKDApLHRoaXMubW9udGg9QXJyYXkoMTIpLmZpbGwoMCksdGhpcy5kYXlPZldlZWs9QXJyYXkoNykuZmlsbCgwKSx0aGlzLmxhc3REYXlPZk1vbnRoPSExLHRoaXMuc3RhckRPTT0hMSx0aGlzLnN0YXJET1c9ITEsdGhpcy5wYXJzZSgpfXBhcnNlKCl7aWYoISh0eXBlb2YgdGhpcy5wYXR0ZXJuPT0ic3RyaW5nInx8dGhpcy5wYXR0ZXJuIGluc3RhbmNlb2YgU3RyaW5nKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogUGF0dGVybiBoYXMgdG8gYmUgb2YgdHlwZSBzdHJpbmcuIik7dGhpcy5wYXR0ZXJuLmluZGV4T2YoIkAiKT49MCYmKHRoaXMucGF0dGVybj10aGlzLmhhbmRsZU5pY2tuYW1lcyh0aGlzLnBhdHRlcm4pLnRyaW0oKSk7bGV0IHQ9dGhpcy5wYXR0ZXJuLnJlcGxhY2UoL1xzKy9nLCIgIikuc3BsaXQoIiAiKTtpZih0Lmxlbmd0aDw1fHx0Lmxlbmd0aD42KXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBpbnZhbGlkIGNvbmZpZ3VyYXRpb24gZm9ybWF0ICgnIit0aGlzLnBhdHRlcm4rIicpLCBleGFjdGx5IGZpdmUgb3Igc2l4IHNwYWNlIHNlcGFyYXRlZCBwYXJ0cyBhcmUgcmVxdWlyZWQuIik7aWYodC5sZW5ndGg9PT01JiZ0LnVuc2hpZnQoIjAiKSx0WzNdLmluZGV4T2YoIkwiKT49MCYmKHRbM109dFszXS5yZXBsYWNlKCJMIiwiIiksdGhpcy5sYXN0RGF5T2ZNb250aD0hMCksdFszXT09IioiJiYodGhpcy5zdGFyRE9NPSEwKSx0WzRdLmxlbmd0aD49MyYmKHRbNF09dGhpcy5yZXBsYWNlQWxwaGFNb250aHModFs0XSkpLHRbNV0ubGVuZ3RoPj0zJiYodFs1XT10aGlzLnJlcGxhY2VBbHBoYURheXModFs1XSkpLHRbNV09PSIqIiYmKHRoaXMuc3RhckRPVz0hMCksdGhpcy5wYXR0ZXJuLmluZGV4T2YoIj8iKT49MCl7bGV0IGU9bmV3IFEyKG5ldyBEYXRlLHRoaXMudGltZXpvbmUpLmdldERhdGUoITApO3RbMF09dFswXS5yZXBsYWNlKCI/IixlLmdldFNlY29uZHMoKS50b1N0cmluZygpKSx0WzFdPXRbMV0ucmVwbGFjZSgiPyIsZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKSksdFsyXT10WzJdLnJlcGxhY2UoIj8iLGUuZ2V0SG91cnMoKS50b1N0cmluZygpKSx0aGlzLnN0YXJET018fCh0WzNdPXRbM10ucmVwbGFjZSgiPyIsZS5nZXREYXRlKCkudG9TdHJpbmcoKSkpLHRbNF09dFs0XS5yZXBsYWNlKCI/IiwoZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkpLHRoaXMuc3RhckRPV3x8KHRbNV09dFs1XS5yZXBsYWNlKCI/IixlLmdldERheSgpLnRvU3RyaW5nKCkpKX10aGlzLnRocm93QXRJbGxlZ2FsQ2hhcmFjdGVycyh0KSx0aGlzLnBhcnRUb0FycmF5KCJzZWNvbmQiLHRbMF0sMCwxKSx0aGlzLnBhcnRUb0FycmF5KCJtaW51dGUiLHRbMV0sMCwxKSx0aGlzLnBhcnRUb0FycmF5KCJob3VyIix0WzJdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgiZGF5Iix0WzNdLC0xLDEpLHRoaXMucGFydFRvQXJyYXkoIm1vbnRoIix0WzRdLC0xLDEpLHRoaXMucGFydFRvQXJyYXkoImRheU9mV2VlayIsdFs1XSwwLEo1KSx0aGlzLmRheU9mV2Vla1s3XSYmKHRoaXMuZGF5T2ZXZWVrWzBdPXRoaXMuZGF5T2ZXZWVrWzddKX1wYXJ0VG9BcnJheSh0LGUsYSxyKXtsZXQgaT10aGlzW3RdLG89dD09PSJkYXkiJiZ0aGlzLmxhc3REYXlPZk1vbnRoO2lmKGU9PT0iIiYmIW8pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIit0KyIgKCIrZSsiKSBpcyBlbXB0eSwgY2hlY2sgZm9yIHRyYWlsaW5nIHNwYWNlcy4iKTtpZihlPT09IioiKXJldHVybiBpLmZpbGwocik7bGV0IHM9ZS5zcGxpdCgiLCIpO2lmKHMubGVuZ3RoPjEpZm9yKGxldCBsPTA7bDxzLmxlbmd0aDtsKyspdGhpcy5wYXJ0VG9BcnJheSh0LHNbbF0sYSxyKTtlbHNlIGUuaW5kZXhPZigiLSIpIT09LTEmJmUuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVSYW5nZVdpdGhTdGVwcGluZyhlLHQsYSxyKTplLmluZGV4T2YoIi0iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2UoZSx0LGEscik6ZS5pbmRleE9mKCIvIikhPT0tMT90aGlzLmhhbmRsZVN0ZXBwaW5nKGUsdCxhLHIpOmUhPT0iIiYmdGhpcy5oYW5kbGVOdW1iZXIoZSx0LGEscil9dGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKChlPT09NT8vW14vKjAtOSxcLSNMXSsvOi9bXi8qMC05LC1dKy8pLnRlc3QodFtlXSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIitlKyIgKCIrdFtlXSsiKSBjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlcnMuIil9aGFuZGxlTnVtYmVyKHQsZSxhLHIpe2xldCBpPXRoaXMuZXh0cmFjdE50aCh0LGUpLG89cGFyc2VJbnQoaVswXSwxMCkrYTtpZihpc05hTihvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogIitlKyIgaXMgbm90IGEgbnVtYmVyOiAnIit0KyInIik7dGhpcy5zZXRQYXJ0KGUsbyxpWzFdfHxyKX1zZXRQYXJ0KHQsZSxhKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMsdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgcGFydCBzcGVjaWZpZWQ6ICIrdCk7aWYodD09PSJkYXlPZldlZWsiKXtpZihlPT09NyYmKGU9MCksZTwwfHxlPjYpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciBkYXlPZldlZWs6ICIrZSk7dGhpcy5zZXROdGhXZWVrZGF5T2ZNb250aChlLGEpO3JldHVybn1pZih0PT09InNlY29uZCJ8fHQ9PT0ibWludXRlIil7aWYoZTwwfHxlPj02MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UpfWVsc2UgaWYodD09PSJob3VyIil7aWYoZTwwfHxlPj0yNCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UpfWVsc2UgaWYodD09PSJkYXkiKXtpZihlPDB8fGU+PTMxKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIit0KyI6ICIrZSl9ZWxzZSBpZih0PT09Im1vbnRoIiYmKGU8MHx8ZT49MTIpKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIit0KyI6ICIrZSk7dGhpc1t0XVtlXT1hfWhhbmRsZVJhbmdlV2l0aFN0ZXBwaW5nKHQsZSxhLHIpe2xldCBpPXRoaXMuZXh0cmFjdE50aCh0LGUpLG89aVswXS5tYXRjaCgvXihcZCspLShcZCspXC8oXGQrKSQvKTtpZihvPT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHJhbmdlIHdpdGggc3RlcHBpbmc6ICciK3QrIiciKTtsZXRbLHMsbCxmXT1vLGM9cGFyc2VJbnQocywxMCkrYSx1PXBhcnNlSW50KGwsMTApK2EsZD1wYXJzZUludChmLDEwKTtpZihpc05hTihjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIGxvd2VyIHJhbmdlIChOYU4pIik7aWYoaXNOYU4odSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpO2lmKGlzTmFOKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6IChOYU4pIik7aWYoZD09PTApdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogMCIpO2lmKGQ+dGhpc1tlXS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHMgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHZhbHVlIG9mIHBhcnQgKCIrdGhpc1tlXS5sZW5ndGgrIikiKTtpZihjPnUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IEZyb20gdmFsdWUgaXMgbGFyZ2VyIHRoYW4gdG8gdmFsdWU6ICciK3QrIiciKTtmb3IobGV0IGg9YztoPD11O2grPWQpdGhpcy5zZXRQYXJ0KGUsaCxpWzFdfHxyKX1leHRyYWN0TnRoKHQsZSl7bGV0IGE9dCxyO2lmKGEuaW5jbHVkZXMoIiMiKSl7aWYoZSE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IG50aCAoIykgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkIik7cj1hLnNwbGl0KCIjIilbMV0sYT1hLnNwbGl0KCIjIilbMF19cmV0dXJuW2Escl19aGFuZGxlUmFuZ2UodCxlLGEscil7bGV0IGk9dGhpcy5leHRyYWN0TnRoKHQsZSksbz1pWzBdLnNwbGl0KCItIik7aWYoby5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2U6ICciK3QrIiciKTtsZXQgcz1wYXJzZUludChvWzBdLDEwKSthLGw9cGFyc2VJbnQob1sxXSwxMCkrYTtpZihpc05hTihzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIGxvd2VyIHJhbmdlIChOYU4pIik7aWYoaXNOYU4obCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpO2lmKHM+bCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogRnJvbSB2YWx1ZSBpcyBsYXJnZXIgdGhhbiB0byB2YWx1ZTogJyIrdCsiJyIpO2ZvcihsZXQgZj1zO2Y8PWw7ZisrKXRoaXMuc2V0UGFydChlLGYsaVsxXXx8cil9aGFuZGxlU3RlcHBpbmcodCxlLGEscil7bGV0IGk9dGhpcy5leHRyYWN0TnRoKHQsZSksbz1pWzBdLnNwbGl0KCIvIik7aWYoby5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6ICciK3QrIiciKTtvWzBdPT09IiImJihvWzBdPSIqIik7bGV0IHM9MDtvWzBdIT09IioiJiYocz1wYXJzZUludChvWzBdLDEwKSthKTtsZXQgbD1wYXJzZUludChvWzFdLDEwKTtpZihpc05hTihsKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpO2lmKGw9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6IDAiKTtpZihsPnRoaXNbZV0ubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIG1heCBzdGVwcyBmb3IgcGFydCBpcyAoIit0aGlzW2VdLmxlbmd0aCsiKSIpO2ZvcihsZXQgZj1zO2Y8dGhpc1tlXS5sZW5ndGg7Zis9bCl0aGlzLnNldFBhcnQoZSxmLGlbMV18fHIpfXJlcGxhY2VBbHBoYURheXModCl7cmV0dXJuIHQucmVwbGFjZSgvLXN1bi9naSwiLTciKS5yZXBsYWNlKC9zdW4vZ2ksIjAiKS5yZXBsYWNlKC9tb24vZ2ksIjEiKS5yZXBsYWNlKC90dWUvZ2ksIjIiKS5yZXBsYWNlKC93ZWQvZ2ksIjMiKS5yZXBsYWNlKC90aHUvZ2ksIjQiKS5yZXBsYWNlKC9mcmkvZ2ksIjUiKS5yZXBsYWNlKC9zYXQvZ2ksIjYiKX1yZXBsYWNlQWxwaGFNb250aHModCl7cmV0dXJuIHQucmVwbGFjZSgvamFuL2dpLCIxIikucmVwbGFjZSgvZmViL2dpLCIyIikucmVwbGFjZSgvbWFyL2dpLCIzIikucmVwbGFjZSgvYXByL2dpLCI0IikucmVwbGFjZSgvbWF5L2dpLCI1IikucmVwbGFjZSgvanVuL2dpLCI2IikucmVwbGFjZSgvanVsL2dpLCI3IikucmVwbGFjZSgvYXVnL2dpLCI4IikucmVwbGFjZSgvc2VwL2dpLCI5IikucmVwbGFjZSgvb2N0L2dpLCIxMCIpLnJlcGxhY2UoL25vdi9naSwiMTEiKS5yZXBsYWNlKC9kZWMvZ2ksIjEyIil9aGFuZGxlTmlja25hbWVzKHQpe2xldCBlPXQudHJpbSgpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGU9PT0iQHllYXJseSJ8fGU9PT0iQGFubnVhbGx5Ij8iMCAwIDEgMSAqIjplPT09IkBtb250aGx5Ij8iMCAwIDEgKiAqIjplPT09IkB3ZWVrbHkiPyIwIDAgKiAqIDAiOmU9PT0iQGRhaWx5Ij8iMCAwICogKiAqIjplPT09IkBob3VybHkiPyIwICogKiAqICoiOnR9c2V0TnRoV2Vla2RheU9mTW9udGgodCxlKXtpZih0eXBlb2YgZSE9Im51bWJlciImJmU9PT0iTCIpdGhpcy5kYXlPZldlZWtbdF09dGhpcy5kYXlPZldlZWtbdF18cVk7ZWxzZSBpZihlPT09SjUpdGhpcy5kYXlPZldlZWtbdF09SjU7ZWxzZSBpZihlPDYmJmU+MCl0aGlzLmRheU9mV2Vla1t0XT10aGlzLmRheU9mV2Vla1t0XXxaSWVbZS0xXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYENyb25QYXR0ZXJuOiBudGggd2Vla2RheSBvdXQgb2YgcmFuZ2UsIHNob3VsZCBiZSAxLTUgb3IgTC4gVmFsdWU6ICR7ZX0sIFR5cGU6ICR7dHlwZW9mIGV9YCl9fSxYSWU9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxzaT1bWyJtb250aCIsInllYXIiLDBdLFsiZGF5IiwibW9udGgiLC0xXSxbImhvdXIiLCJkYXkiLDBdLFsibWludXRlIiwiaG91ciIsMF0sWyJzZWNvbmQiLCJtaW51dGUiLDBdXSxRMj1jbGFzcyBLSWV7dHo7bXM7c2Vjb25kO21pbnV0ZTtob3VyO2RheTttb250aDt5ZWFyO2NvbnN0cnVjdG9yKGUsYSl7aWYodGhpcy50ej1hLGUmJmUgaW5zdGFuY2VvZiBEYXRlKWlmKCFpc05hTihlKSl0aGlzLmZyb21EYXRlKGUpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvbkRhdGU6IEludmFsaWQgZGF0ZSBwYXNzZWQgdG8gQ3JvbkRhdGUgY29uc3RydWN0b3IiKTtlbHNlIGlmKGU9PT12b2lkIDApdGhpcy5mcm9tRGF0ZShuZXcgRGF0ZSk7ZWxzZSBpZihlJiZ0eXBlb2YgZT09InN0cmluZyIpdGhpcy5mcm9tU3RyaW5nKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEtJZSl0aGlzLmZyb21Dcm9uRGF0ZShlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25EYXRlOiBJbnZhbGlkIHR5cGUgKCIrdHlwZW9mIGUrIikgcGFzc2VkIHRvIENyb25EYXRlIGNvbnN0cnVjdG9yIil9aXNOdGhXZWVrZGF5T2ZNb250aChlLGEscixpKXtsZXQgbz1uZXcgRGF0ZShEYXRlLlVUQyhlLGEscikpLmdldFVUQ0RheSgpLHM9MDtmb3IobGV0IGw9MTtsPD1yO2wrKyluZXcgRGF0ZShEYXRlLlVUQyhlLGEsbCkpLmdldFVUQ0RheSgpPT09byYmcysrO2lmKGkmSjUmJlpJZVtzLTFdJmkpcmV0dXJuITA7aWYoaSZxWSl7bGV0IGw9bmV3IERhdGUoRGF0ZS5VVEMoZSxhKzEsMCkpLmdldFVUQ0RhdGUoKTtmb3IobGV0IGY9cisxO2Y8PWw7ZisrKWlmKG5ldyBEYXRlKERhdGUuVVRDKGUsYSxmKSkuZ2V0VVRDRGF5KCk9PT1vKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZyb21EYXRlKGUpe2lmKHRoaXMudHohPT12b2lkIDApaWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXRoaXMubXM9ZS5nZXRVVENNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1lLmdldFVUQ1NlY29uZHMoKSx0aGlzLm1pbnV0ZT1lLmdldFVUQ01pbnV0ZXMoKSt0aGlzLnR6LHRoaXMuaG91cj1lLmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9ZS5nZXRVVENEYXRlKCksdGhpcy5tb250aD1lLmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPWUuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLmFwcGx5KCk7ZWxzZXtsZXQgYT1tMi50b1RaKGUsdGhpcy50eik7dGhpcy5tcz1lLmdldE1pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWEucyx0aGlzLm1pbnV0ZT1hLmksdGhpcy5ob3VyPWEuaCx0aGlzLmRheT1hLmQsdGhpcy5tb250aD1hLm0tMSx0aGlzLnllYXI9YS55fWVsc2UgdGhpcy5tcz1lLmdldE1pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0U2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0TWludXRlcygpLHRoaXMuaG91cj1lLmdldEhvdXJzKCksdGhpcy5kYXk9ZS5nZXREYXRlKCksdGhpcy5tb250aD1lLmdldE1vbnRoKCksdGhpcy55ZWFyPWUuZ2V0RnVsbFllYXIoKX1mcm9tQ3JvbkRhdGUoZSl7dGhpcy50ej1lLnR6LHRoaXMueWVhcj1lLnllYXIsdGhpcy5tb250aD1lLm1vbnRoLHRoaXMuZGF5PWUuZGF5LHRoaXMuaG91cj1lLmhvdXIsdGhpcy5taW51dGU9ZS5taW51dGUsdGhpcy5zZWNvbmQ9ZS5zZWNvbmQsdGhpcy5tcz1lLm1zfWFwcGx5KCl7aWYodGhpcy5tb250aD4xMXx8dGhpcy5kYXk+WEllW3RoaXMubW9udGhdfHx0aGlzLmhvdXI+NTl8fHRoaXMubWludXRlPjU5fHx0aGlzLnNlY29uZD41OXx8dGhpcy5ob3VyPDB8fHRoaXMubWludXRlPDB8fHRoaXMuc2Vjb25kPDApe2xldCBlPW5ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLm1zKSk7cmV0dXJuIHRoaXMubXM9ZS5nZXRVVENNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1lLmdldFVUQ1NlY29uZHMoKSx0aGlzLm1pbnV0ZT1lLmdldFVUQ01pbnV0ZXMoKSx0aGlzLmhvdXI9ZS5nZXRVVENIb3VycygpLHRoaXMuZGF5PWUuZ2V0VVRDRGF0ZSgpLHRoaXMubW9udGg9ZS5nZXRVVENNb250aCgpLHRoaXMueWVhcj1lLmdldFVUQ0Z1bGxZZWFyKCksITB9ZWxzZSByZXR1cm4hMX1mcm9tU3RyaW5nKGUpe2lmKHR5cGVvZiB0aGlzLnR6PT0ibnVtYmVyIil7bGV0IGE9bTIuZnJvbVRaSVNPKGUpO3RoaXMubXM9YS5nZXRVVENNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1hLmdldFVUQ1NlY29uZHMoKSx0aGlzLm1pbnV0ZT1hLmdldFVUQ01pbnV0ZXMoKSx0aGlzLmhvdXI9YS5nZXRVVENIb3VycygpLHRoaXMuZGF5PWEuZ2V0VVRDRGF0ZSgpLHRoaXMubW9udGg9YS5nZXRVVENNb250aCgpLHRoaXMueWVhcj1hLmdldFVUQ0Z1bGxZZWFyKCksdGhpcy5hcHBseSgpfWVsc2UgcmV0dXJuIHRoaXMuZnJvbURhdGUobTIuZnJvbVRaSVNPKGUsdGhpcy50eikpfWZpbmROZXh0KGUsYSxyLGkpe2xldCBvPXRoaXNbYV0scztyLmxhc3REYXlPZk1vbnRoJiYodGhpcy5tb250aCE9PTE/cz1YSWVbdGhpcy5tb250aF06cz1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCsxLDAsMCwwLDAsMCkpLmdldFVUQ0RhdGUoKSk7bGV0IGw9IXIuc3RhckRPVyYmYT09ImRheSI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCk6dm9pZCAwO2ZvcihsZXQgZj10aGlzW2FdK2k7ZjxyW2FdLmxlbmd0aDtmKyspe2xldCBjPXJbYV1bZl07aWYoYT09PSJkYXkiJiZyLmxhc3REYXlPZk1vbnRoJiZmLWk9PXMmJihjPTEpLGE9PT0iZGF5IiYmIXIuc3RhckRPVyl7bGV0IHU9ci5kYXlPZldlZWtbKGwrKGYtaS0xKSklN107aWYodSYmdSZKNSl1PXRoaXMuaXNOdGhXZWVrZGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCxmLWksdSk/MTowO2Vsc2UgaWYodSl0aHJvdyBuZXcgRXJyb3IoYENyb25EYXRlOiBJbnZhbGlkIHZhbHVlIGZvciBkYXlPZldlZWsgZW5jb3VudGVyZWQuICR7dX1gKTtlLmxlZ2FjeU1vZGUmJiFyLnN0YXJET00/Yz1jfHx1OmM9YyYmdX1pZihjKXJldHVybiB0aGlzW2FdPWYtaSxvIT09dGhpc1thXT8yOjF9cmV0dXJuIDN9cmVjdXJzZShlLGEscil7bGV0IGk9dGhpcy5maW5kTmV4dChhLHNpW3JdWzBdLGUsc2lbcl1bMl0pO2lmKGk+MSl7bGV0IG89cisxO2Zvcig7bzxzaS5sZW5ndGg7KXRoaXNbc2lbb11bMF1dPS1zaVtvXVsyXSxvKys7aWYoaT09PTMpcmV0dXJuIHRoaXNbc2lbcl1bMV1dKyssdGhpc1tzaVtyXVswXV09LXNpW3JdWzJdLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2UoZSxhLDApO2lmKHRoaXMuYXBwbHkoKSlyZXR1cm4gdGhpcy5yZWN1cnNlKGUsYSxyLTEpfXJldHVybiByKz0xLHI+PXNpLmxlbmd0aD90aGlzOnRoaXMueWVhcj49M2UzP251bGw6dGhpcy5yZWN1cnNlKGUsYSxyKX1pbmNyZW1lbnQoZSxhLHIpe3JldHVybiB0aGlzLnNlY29uZCs9YS5pbnRlcnZhbCE9PXZvaWQgMCYmYS5pbnRlcnZhbD4xJiZyP2EuaW50ZXJ2YWw6MSx0aGlzLm1zPTAsdGhpcy5hcHBseSgpLHRoaXMucmVjdXJzZShlLGEsMCl9Z2V0RGF0ZShlKXtyZXR1cm4gZXx8dGhpcy50ej09PXZvaWQgMD9uZXcgRGF0ZSh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcyk6dHlwZW9mIHRoaXMudHo9PSJudW1iZXIiP25ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZS10aGlzLnR6LHRoaXMuc2Vjb25kLHRoaXMubXMpKTptMi5mcm9tVFoobTIudHAodGhpcy55ZWFyLHRoaXMubW9udGgrMSx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy50eiksITEpfWdldFRpbWUoKXtyZXR1cm4gdGhpcy5nZXREYXRlKCExKS5nZXRUaW1lKCl9fTtRSWU9MzAqMWUzLF9jPVtdLEpJZT1jbGFzc3tuYW1lO29wdGlvbnM7X3N0YXRlcztmbjtjb25zdHJ1Y3Rvcih0LGUsYSl7bGV0IHIsaTtpZihlOChlKSlpPWU7ZWxzZSBpZih0eXBlb2YgZT09Im9iamVjdCIpcj1lO2Vsc2UgaWYoZSE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIkNyb246IEludmFsaWQgYXJndW1lbnQgcGFzc2VkIGZvciBvcHRpb25zSW4uIFNob3VsZCBiZSBvbmUgb2YgZnVuY3Rpb24sIG9yIG9iamVjdCAob3B0aW9ucykuIik7aWYoZTgoYSkpaT1hO2Vsc2UgaWYodHlwZW9mIGE9PSJvYmplY3QiKXI9YTtlbHNlIGlmKGEhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBmb3IgZnVuY0luLiBTaG91bGQgYmUgb25lIG9mIGZ1bmN0aW9uLCBvciBvYmplY3QgKG9wdGlvbnMpLiIpO2lmKHRoaXMubmFtZT1yPy5uYW1lLHRoaXMub3B0aW9ucz1lVnQociksdGhpcy5fc3RhdGVzPXtraWxsOiExLGJsb2NraW5nOiExLHByZXZpb3VzUnVuOnZvaWQgMCxjdXJyZW50UnVuOnZvaWQgMCxvbmNlOnZvaWQgMCxjdXJyZW50VGltZW91dDp2b2lkIDAsbWF4UnVuczpyP3IubWF4UnVuczp2b2lkIDAscGF1c2VkOnI/ci5wYXVzZWQ6ITEscGF0dGVybjpuZXcgbk8oIiogKiAqICogKiIpfSx0JiYodCBpbnN0YW5jZW9mIERhdGV8fHR5cGVvZiB0PT0ic3RyaW5nIiYmdC5pbmRleE9mKCI6Iik+MCk/dGhpcy5fc3RhdGVzLm9uY2U9bmV3IFEyKHQsdGhpcy5vcHRpb25zLnRpbWV6b25lfHx0aGlzLm9wdGlvbnMudXRjT2Zmc2V0KTp0aGlzLl9zdGF0ZXMucGF0dGVybj1uZXcgbk8odCx0aGlzLm9wdGlvbnMudGltZXpvbmUpLHRoaXMubmFtZSl7aWYoX2MuZmluZChvPT5vLm5hbWU9PT10aGlzLm5hbWUpKXRocm93IG5ldyBFcnJvcigiQ3JvbjogVHJpZWQgdG8gaW5pdGlhbGl6ZSBuZXcgbmFtZWQgam9iICciK3RoaXMubmFtZSsiJywgYnV0IG5hbWUgYWxyZWFkeSB0YWtlbi4iKTtfYy5wdXNoKHRoaXMpfXJldHVybiBpIT09dm9pZCAwJiZ0VnQoaSkmJih0aGlzLmZuPWksdGhpcy5zY2hlZHVsZSgpKSx0aGlzfW5leHRSdW4odCl7bGV0IGU9dGhpcy5fbmV4dCh0KTtyZXR1cm4gZT9lLmdldERhdGUoITEpOm51bGx9bmV4dFJ1bnModCxlKXt0aGlzLl9zdGF0ZXMubWF4UnVucyE9PXZvaWQgMCYmdD50aGlzLl9zdGF0ZXMubWF4UnVucyYmKHQ9dGhpcy5fc3RhdGVzLm1heFJ1bnMpO2xldCBhPVtdLHI9ZXx8dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW58fHZvaWQgMDtmb3IoO3QtLSYmKHI9dGhpcy5uZXh0UnVuKHIpKTspYS5wdXNoKHIpO3JldHVybiBhfWdldFBhdHRlcm4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdHRlcm4/dGhpcy5fc3RhdGVzLnBhdHRlcm4ucGF0dGVybjp2b2lkIDB9aXNSdW5uaW5nKCl7bGV0IHQ9dGhpcy5uZXh0UnVuKHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuKSxlPSF0aGlzLl9zdGF0ZXMucGF1c2VkLGE9dGhpcy5mbiE9PXZvaWQgMCxyPSF0aGlzLl9zdGF0ZXMua2lsbDtyZXR1cm4gZSYmYSYmciYmdCE9PW51bGx9aXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5raWxsfWlzQnVzeSgpe3JldHVybiB0aGlzLl9zdGF0ZXMuYmxvY2tpbmd9Y3VycmVudFJ1bigpe3JldHVybiB0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bj90aGlzLl9zdGF0ZXMuY3VycmVudFJ1bi5nZXREYXRlKCk6bnVsbH1wcmV2aW91c1J1bigpe3JldHVybiB0aGlzLl9zdGF0ZXMucHJldmlvdXNSdW4/dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuLmdldERhdGUoKTpudWxsfW1zVG9OZXh0KHQpe2xldCBlPXRoaXMuX25leHQodCk7cmV0dXJuIGU/dCBpbnN0YW5jZW9mIFEyfHx0IGluc3RhbmNlb2YgRGF0ZT9lLmdldFRpbWUoKS10LmdldFRpbWUoKTplLmdldFRpbWUoKS1uZXcgUTIodCkuZ2V0VGltZSgpOm51bGx9c3RvcCgpe3RoaXMuX3N0YXRlcy5raWxsPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCk7bGV0IHQ9X2MuaW5kZXhPZih0aGlzKTt0Pj0wJiZfYy5zcGxpY2UodCwxKX1wYXVzZSgpe3JldHVybiB0aGlzLl9zdGF0ZXMucGF1c2VkPSEwLCF0aGlzLl9zdGF0ZXMua2lsbH1yZXN1bWUoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMSwhdGhpcy5fc3RhdGVzLmtpbGx9c2NoZWR1bGUodCl7aWYodCYmdGhpcy5mbil0aHJvdyBuZXcgRXJyb3IoIkNyb246IEl0IGlzIG5vdCBhbGxvd2VkIHRvIHNjaGVkdWxlIHR3byBmdW5jdGlvbnMgdXNpbmcgdGhlIHNhbWUgQ3JvbmVyIGluc3RhbmNlLiIpO3QmJih0aGlzLmZuPXQpO2xldCBlPXRoaXMubXNUb05leHQoKSxhPXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bik7cmV0dXJuIGU9PW51bGx8fGlzTmFOKGUpfHxhPT09bnVsbD90aGlzOihlPlFJZSYmKGU9UUllKSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQ9c2V0VGltZW91dCgoKT0+dGhpcy5fY2hlY2tUcmlnZ2VyKGEpLGUpLHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCYmdGhpcy5vcHRpb25zLnVucmVmJiZhVnQodGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0KSx0aGlzKX1hc3luYyBfdHJpZ2dlcih0KXtpZih0aGlzLl9zdGF0ZXMuYmxvY2tpbmc9ITAsdGhpcy5fc3RhdGVzLmN1cnJlbnRSdW49bmV3IFEyKHZvaWQgMCx0aGlzLm9wdGlvbnMudGltZXpvbmV8fHRoaXMub3B0aW9ucy51dGNPZmZzZXQpLHRoaXMub3B0aW9ucy5jYXRjaCl0cnl7dGhpcy5mbiE9PXZvaWQgMCYmYXdhaXQgdGhpcy5mbih0aGlzLHRoaXMub3B0aW9ucy5jb250ZXh0KX1jYXRjaChlKXtlOCh0aGlzLm9wdGlvbnMuY2F0Y2gpJiZ0aGlzLm9wdGlvbnMuY2F0Y2goZSx0aGlzKX1lbHNlIHRoaXMuZm4hPT12b2lkIDAmJmF3YWl0IHRoaXMuZm4odGhpcyx0aGlzLm9wdGlvbnMuY29udGV4dCk7dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuPW5ldyBRMih0LHRoaXMub3B0aW9ucy50aW1lem9uZXx8dGhpcy5vcHRpb25zLnV0Y09mZnNldCksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfWFzeW5jIHRyaWdnZXIoKXthd2FpdCB0aGlzLl90cmlnZ2VyKCl9cnVuc0xlZnQoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLm1heFJ1bnN9X2NoZWNrVHJpZ2dlcih0KXtsZXQgZT1uZXcgRGF0ZSxhPSF0aGlzLl9zdGF0ZXMucGF1c2VkJiZlLmdldFRpbWUoKT49dC5nZXRUaW1lKCkscj10aGlzLl9zdGF0ZXMuYmxvY2tpbmcmJnRoaXMub3B0aW9ucy5wcm90ZWN0O2EmJiFyPyh0aGlzLl9zdGF0ZXMubWF4UnVucyE9PXZvaWQgMCYmdGhpcy5fc3RhdGVzLm1heFJ1bnMtLSx0aGlzLl90cmlnZ2VyKCkpOmEmJnImJmU4KHRoaXMub3B0aW9ucy5wcm90ZWN0KSYmc2V0VGltZW91dCgoKT0+dGhpcy5vcHRpb25zLnByb3RlY3QodGhpcyksMCksdGhpcy5zY2hlZHVsZSgpfV9uZXh0KHQpe2xldCBlPSEhKHR8fHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuKSxhPSExOyF0JiZ0aGlzLm9wdGlvbnMuc3RhcnRBdCYmdGhpcy5vcHRpb25zLmludGVydmFsJiYoW3QsZV09dGhpcy5fY2FsY3VsYXRlUHJldmlvdXNSdW4odCxlKSxhPSF0KSx0PW5ldyBRMih0LHRoaXMub3B0aW9ucy50aW1lem9uZXx8dGhpcy5vcHRpb25zLnV0Y09mZnNldCksdGhpcy5vcHRpb25zLnN0YXJ0QXQmJnQmJnQuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKSYmKHQ9dGhpcy5vcHRpb25zLnN0YXJ0QXQpO2xldCByPXRoaXMuX3N0YXRlcy5vbmNlfHxuZXcgUTIodCx0aGlzLm9wdGlvbnMudGltZXpvbmV8fHRoaXMub3B0aW9ucy51dGNPZmZzZXQpO3JldHVybiFhJiZyIT09dGhpcy5fc3RhdGVzLm9uY2UmJihyPXIuaW5jcmVtZW50KHRoaXMuX3N0YXRlcy5wYXR0ZXJuLHRoaXMub3B0aW9ucyxlKSksdGhpcy5fc3RhdGVzLm9uY2UmJnRoaXMuX3N0YXRlcy5vbmNlLmdldFRpbWUoKTw9dC5nZXRUaW1lKCl8fHI9PT1udWxsfHx0aGlzLl9zdGF0ZXMubWF4UnVucyE9PXZvaWQgMCYmdGhpcy5fc3RhdGVzLm1heFJ1bnM8PTB8fHRoaXMuX3N0YXRlcy5raWxsfHx0aGlzLm9wdGlvbnMuc3RvcEF0JiZyLmdldFRpbWUoKT49dGhpcy5vcHRpb25zLnN0b3BBdC5nZXRUaW1lKCk/bnVsbDpyfV9jYWxjdWxhdGVQcmV2aW91c1J1bih0LGUpe2xldCBhPW5ldyBRMih2b2lkIDAsdGhpcy5vcHRpb25zLnRpbWV6b25lfHx0aGlzLm9wdGlvbnMudXRjT2Zmc2V0KSxyPXQ7aWYodGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpPD1hLmdldFRpbWUoKSl7cj10aGlzLm9wdGlvbnMuc3RhcnRBdDtsZXQgaT1yLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2Zvcig7aTw9YS5nZXRUaW1lKCk7KXI9bmV3IFEyKHIsdGhpcy5vcHRpb25zLnRpbWV6b25lfHx0aGlzLm9wdGlvbnMudXRjT2Zmc2V0KS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLCEwKSxpPXIuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7ZT0hMH1yZXR1cm4gcj09PW51bGwmJihyPXZvaWQgMCksW3IsZV19fX0pO3ZhciBjTyxhOCxyVnQsRmgxLHZyLGRPLGcyLGlhLEFjLFZZLHVvLCRjLGZPLHVPLHBPLGhPLERzLERjLGxPLHRGZSxVWSxqWSxhRmUsV1ksZ3Q9bigoKT0+e2NPPTcsYTg9MzY1LjI0MjUsclZ0PU1hdGgucG93KDEwLDgpKjI0KjYwKjYwKjFlMyxGaDE9LXJWdCx2cj02MDQ4ZTUsZE89ODY0ZTUsZzI9NmU0LGlhPTM2ZTUsQWM9MWUzLFZZPTUyNTYwMCx1bz00MzIwMCwkYz0xNDQwLGZPPTYwLHVPPTMscE89MTIsaE89NCxEcz0zNjAwLERjPTYwLGxPPURzKjI0LHRGZT1sTyo3LFVZPWxPKjM2NS4yNDI1LGpZPVVZLzEyLGFGZT1qWSozLFdZPVN5bWJvbC5mb3IoImNvbnN0cnVjdERhdGVGcm9tIil9KTtmdW5jdGlvbiB3ZSh0LGUpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90KGUpOnQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmV1kgaW4gdD90W1dZXShlKTp0IGluc3RhbmNlb2YgRGF0ZT9uZXcgdC5jb25zdHJ1Y3RvcihlKTpuZXcgRGF0ZShlKX12YXIgUmgxLEtlPW4oKCk9PntndCgpO1JoMT13ZX0pO2Z1bmN0aW9uIGVlKHQsZSl7cmV0dXJuIHdlKGV8fHQsdCl9dmFyIFZoMSxNZT1uKCgpPT57S2UoKTtWaDE9ZWV9KTtmdW5jdGlvbiBGMSh0LGUsYSl7bGV0IHI9ZWUodCxhPy5pbik7cmV0dXJuIGlzTmFOKGUpP3dlKGE/LmlufHx0LE5hTik6KGUmJnIuc2V0RGF0ZShyLmdldERhdGUoKStlKSxyKX12YXIgR2gxLHlyPW4oKCk9PntLZSgpO01lKCk7R2gxPUYxfSk7ZnVuY3Rpb24gd3IodCxlLGEpe2xldCByPWVlKHQsYT8uaW4pO2lmKGlzTmFOKGUpKXJldHVybiB3ZShhPy5pbnx8dCxOYU4pO2lmKCFlKXJldHVybiByO2xldCBpPXIuZ2V0RGF0ZSgpLG89d2UoYT8uaW58fHQsci5nZXRUaW1lKCkpO28uc2V0TW9udGgoci5nZXRNb250aCgpK2UrMSwwKTtsZXQgcz1vLmdldERhdGUoKTtyZXR1cm4gaT49cz9vOihyLnNldEZ1bGxZZWFyKG8uZ2V0RnVsbFllYXIoKSxvLmdldE1vbnRoKCksaSkscil9dmFyIFFoMSxFYz1uKCgpPT57S2UoKTtNZSgpO1FoMT13cn0pO2Z1bmN0aW9uIHBvKHQsZSxhKXtsZXR7eWVhcnM6cj0wLG1vbnRoczppPTAsd2Vla3M6bz0wLGRheXM6cz0wLGhvdXJzOmw9MCxtaW51dGVzOmY9MCxzZWNvbmRzOmM9MH09ZSx1PWVlKHQsYT8uaW4pLGQ9aXx8cj93cih1LGkrcioxMik6dSxoPXN8fG8/RjEoZCxzK28qNyk6ZCxnPWYrbCo2MCx4PShjK2cqNjApKjFlMztyZXR1cm4gd2UoYT8uaW58fHQsK2greCl9dmFyIHJtMSxHWT1uKCgpPT57eXIoKTtFYygpO0tlKCk7TWUoKTtybTE9cG99KTtmdW5jdGlvbiBtTyh0LGUpe3JldHVybiBlZSh0LGU/LmluKS5nZXREYXkoKT09PTZ9dmFyIHNtMSxZWT1uKCgpPT57TWUoKTtzbTE9bU99KTtmdW5jdGlvbiBnTyh0LGUpe3JldHVybiBlZSh0LGU/LmluKS5nZXREYXkoKT09PTB9dmFyIGNtMSxaWT1uKCgpPT57TWUoKTtjbTE9Z099KTtmdW5jdGlvbiBNcih0LGUpe2xldCBhPWVlKHQsZT8uaW4pLmdldERheSgpO3JldHVybiBhPT09MHx8YT09PTZ9dmFyIHVtMSxyOD1uKCgpPT57TWUoKTt1bTE9TXJ9KTtmdW5jdGlvbiB4Tyh0LGUsYSl7bGV0IHI9ZWUodCxhPy5pbiksaT1NcihyLGEpO2lmKGlzTmFOKGUpKXJldHVybiB3ZShhPy5pbixOYU4pO2xldCBvPXIuZ2V0SG91cnMoKSxzPWU8MD8tMToxLGw9TWF0aC50cnVuYyhlLzUpO3Iuc2V0RGF0ZShyLmdldERhdGUoKStsKjcpO2xldCBmPU1hdGguYWJzKGUlNSk7Zm9yKDtmPjA7KXIuc2V0RGF0ZShyLmdldERhdGUoKStzKSxNcihyLGEpfHwoZi09MSk7cmV0dXJuIGkmJk1yKHIsYSkmJmUhPT0wJiYobU8ocixhKSYmci5zZXREYXRlKHIuZ2V0RGF0ZSgpKyhzPDA/MjotMSkpLGdPKHIsYSkmJnIuc2V0RGF0ZShyLmdldERhdGUoKSsoczwwPzE6LTIpKSksci5zZXRIb3VycyhvKSxyfXZhciB2bTEsWFk9bigoKT0+e0tlKCk7WVkoKTtaWSgpO3I4KCk7TWUoKTt2bTE9eE99KTtmdW5jdGlvbiBobyh0LGUsYSl7cmV0dXJuIHdlKGE/LmlufHx0LCtlZSh0KStlKX12YXIgem0xLGk4PW4oKCk9PntLZSgpO01lKCk7em0xPWhvfSk7ZnVuY3Rpb24gYk8odCxlLGEpe3JldHVybiBobyh0LGUqaWEsYSl9dmFyIExtMSxRWT1uKCgpPT57aTgoKTtndCgpO0xtMT1iT30pO2Z1bmN0aW9uIFV0KCl7cmV0dXJuIHJGZX1mdW5jdGlvbiBpRmUodCl7ckZlPXR9dmFyIHJGZSx4Mj1uKCgpPT57ckZlPXt9fSk7ZnVuY3Rpb24gYTEodCxlKXtsZXQgYT1VdCgpLHI9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/YS53ZWVrU3RhcnRzT24/P2EubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsaT1lZSh0LGU/LmluKSxvPWkuZ2V0RGF5KCkscz0obzxyPzc6MCkrby1yO3JldHVybiBpLnNldERhdGUoaS5nZXREYXRlKCktcyksaS5zZXRIb3VycygwLDAsMCwwKSxpfXZhciBEbTEsVWE9bigoKT0+e3gyKCk7TWUoKTtEbTE9YTF9KTtmdW5jdGlvbiBBMSh0LGUpe3JldHVybiBhMSh0LHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIFBtMSx6cj1uKCgpPT57VWEoKTtQbTE9QTF9KTtmdW5jdGlvbiBJMih0LGUpe2xldCBhPWVlKHQsZT8uaW4pLHI9YS5nZXRGdWxsWWVhcigpLGk9d2UoYSwwKTtpLnNldEZ1bGxZZWFyKHIrMSwwLDQpLGkuc2V0SG91cnMoMCwwLDAsMCk7bGV0IG89QTEoaSkscz13ZShhLDApO3Muc2V0RnVsbFllYXIociwwLDQpLHMuc2V0SG91cnMoMCwwLDAsMCk7bGV0IGw9QTEocyk7cmV0dXJuIGEuZ2V0VGltZSgpPj1vLmdldFRpbWUoKT9yKzE6YS5nZXRUaW1lKCk+PWwuZ2V0VGltZSgpP3I6ci0xfXZhciBSbTEsbW89bigoKT0+e0tlKCk7enIoKTtNZSgpO1JtMT1JMn0pO2Z1bmN0aW9uIGIxKHQpe2xldCBlPWVlKHQpLGE9bmV3IERhdGUoRGF0ZS5VVEMoZS5nZXRGdWxsWWVhcigpLGUuZ2V0TW9udGgoKSxlLmdldERhdGUoKSxlLmdldEhvdXJzKCksZS5nZXRNaW51dGVzKCksZS5nZXRTZWNvbmRzKCksZS5nZXRNaWxsaXNlY29uZHMoKSkpO3JldHVybiBhLnNldFVUQ0Z1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSksK3QtK2F9dmFyIG5pPW4oKCk9PntNZSgpfSk7ZnVuY3Rpb24gWWUodCwuLi5lKXtsZXQgYT13ZS5iaW5kKG51bGwsdHx8ZS5maW5kKHI9PnR5cGVvZiByPT0ib2JqZWN0IikpO3JldHVybiBlLm1hcChhKX12YXIgWHQ9bigoKT0+e0tlKCl9KTtmdW5jdGlvbiBrcih0LGUpe2xldCBhPWVlKHQsZT8uaW4pO3JldHVybiBhLnNldEhvdXJzKDAsMCwwLDApLGF9dmFyIEdtMSxvOD1uKCgpPT57TWUoKTtHbTE9a3J9KTtmdW5jdGlvbiBXMSh0LGUsYSl7bGV0W3IsaV09WWUoYT8uaW4sdCxlKSxvPWtyKHIpLHM9a3IoaSksbD0rby1iMShvKSxmPStzLWIxKHMpO3JldHVybiBNYXRoLnJvdW5kKChsLWYpL2RPKX12YXIgSm0xLGxpPW4oKCk9PntuaSgpO1h0KCk7Z3QoKTtvOCgpO0ptMT1XMX0pO2Z1bmN0aW9uIG9hKHQsZSl7bGV0IGE9STIodCxlKSxyPXdlKGU/LmlufHx0LDApO3JldHVybiByLnNldEZ1bGxZZWFyKGEsMCw0KSxyLnNldEhvdXJzKDAsMCwwLDApLEExKHIpfXZhciBpZzEsTmM9bigoKT0+e0tlKCk7bW8oKTt6cigpO2lnMT1vYX0pO2Z1bmN0aW9uIHZPKHQsZSxhKXtsZXQgcj1lZSh0LGE/LmluKSxpPVcxKHIsb2EocixhKSksbz13ZShhPy5pbnx8dCwwKTtyZXR1cm4gby5zZXRGdWxsWWVhcihlLDAsNCksby5zZXRIb3VycygwLDAsMCwwKSxyPW9hKG8pLHIuc2V0RGF0ZShyLmdldERhdGUoKStpKSxyfXZhciBkZzEsS1k9bigoKT0+e0tlKCk7bGkoKTtOYygpO01lKCk7ZGcxPXZPfSk7ZnVuY3Rpb24geU8odCxlLGEpe3JldHVybiB2Tyh0LEkyKHQsYSkrZSxhKX12YXIgaGcxLEpZPW4oKCk9PnttbygpO0tZKCk7aGcxPXlPfSk7ZnVuY3Rpb24gUGModCxlLGEpe2xldCByPWVlKHQsYT8uaW4pO3JldHVybiByLnNldFRpbWUoci5nZXRUaW1lKCkrZSpnMikscn12YXIgYmcxLHdPPW4oKCk9PntndCgpO01lKCk7YmcxPVBjfSk7ZnVuY3Rpb24gSWModCxlLGEpe3JldHVybiB3cih0LGUqMyxhKX12YXIgd2cxLE1PPW4oKCk9PntFYygpO3dnMT1JY30pO2Z1bmN0aW9uIHpPKHQsZSxhKXtyZXR1cm4gaG8odCxlKjFlMyxhKX12YXIga2cxLGVaPW4oKCk9PntpOCgpO2tnMT16T30pO2Z1bmN0aW9uIGdvKHQsZSxhKXtyZXR1cm4gRjEodCxlKjcsYSl9dmFyIExnMSxzOD1uKCgpPT57eXIoKTtMZzE9Z299KTtmdW5jdGlvbiBrTyh0LGUsYSl7cmV0dXJuIHdyKHQsZSoxMixhKX12YXIgQWcxLHRaPW4oKCk9PntFYygpO0FnMT1rT30pO2Z1bmN0aW9uIG9GZSh0LGUsYSl7bGV0W3IsaV09WytlZSh0LnN0YXJ0LGE/LmluKSwrZWUodC5lbmQsYT8uaW4pXS5zb3J0KChsLGYpPT5sLWYpLFtvLHNdPVsrZWUoZS5zdGFydCxhPy5pbiksK2VlKGUuZW5kLGE/LmluKV0uc29ydCgobCxmKT0+bC1mKTtyZXR1cm4gYT8uaW5jbHVzaXZlP3I8PXMmJm88PWk6cjxzJiZvPGl9dmFyIEVnMSxzRmU9bigoKT0+e01lKCk7RWcxPW9GZX0pO2Z1bmN0aW9uIFNPKHQsZSl7bGV0IGEscj1lPy5pbjtyZXR1cm4gdC5mb3JFYWNoKGk9PnshciYmdHlwZW9mIGk9PSJvYmplY3QiJiYocj13ZS5iaW5kKG51bGwsaSkpO2xldCBvPWVlKGkscik7KCFhfHxhPG98fGlzTmFOKCtvKSkmJihhPW8pfSksd2UocixhfHxOYU4pfXZhciBGZzEsYVo9bigoKT0+e0tlKCk7TWUoKTtGZzE9U099KTtmdW5jdGlvbiBDTyh0LGUpe2xldCBhLHI9ZT8uaW47cmV0dXJuIHQuZm9yRWFjaChpPT57IXImJnR5cGVvZiBpPT0ib2JqZWN0IiYmKHI9d2UuYmluZChudWxsLGkpKTtsZXQgbz1lZShpLHIpOyghYXx8YT5vfHxpc05hTigrbykpJiYoYT1vKX0pLHdlKHIsYXx8TmFOKX12YXIgSGcxLHJaPW4oKCk9PntLZSgpO01lKCk7SGcxPUNPfSk7ZnVuY3Rpb24gbkZlKHQsZSxhKXtsZXRbcixpLG9dPVllKGE/LmluLHQsZS5zdGFydCxlLmVuZCk7cmV0dXJuIENPKFtTTyhbcixpXSxhKSxvXSxhKX12YXIgV2cxLGxGZT1uKCgpPT57WHQoKTthWigpO3JaKCk7V2cxPW5GZX0pO2Z1bmN0aW9uIExPKHQsZSl7bGV0IGE9K2VlKHQpO2lmKGlzTmFOKGEpKXJldHVybiBOYU47bGV0IHIsaTtyZXR1cm4gZS5mb3JFYWNoKChvLHMpPT57bGV0IGw9ZWUobyk7aWYoaXNOYU4oK2wpKXtyPU5hTixpPU5hTjtyZXR1cm59bGV0IGY9TWF0aC5hYnMoYS0rbCk7KHI9PW51bGx8fGY8aSkmJihyPXMsaT1mKX0pLHJ9dmFyIFpnMSxpWj1uKCgpPT57TWUoKTtaZzE9TE99KTtmdW5jdGlvbiBjRmUodCxlLGEpe2xldFtyLC4uLmldPVllKGE/LmluLHQsLi4uZSksbz1MTyhyLGkpO2lmKHR5cGVvZiBvPT0ibnVtYmVyIiYmaXNOYU4obykpcmV0dXJuIHdlKHIsTmFOKTtpZihvIT09dm9pZCAwKXJldHVybiBpW29dfXZhciBleDEsZEZlPW4oKCk9PntYdCgpO2laKCk7S2UoKTtleDE9Y0ZlfSk7ZnVuY3Rpb24gYjIodCxlKXtsZXQgYT0rZWUodCktK2VlKGUpO3JldHVybiBhPDA/LTE6YT4wPzE6YX12YXIgcngxLEVzPW4oKCk9PntNZSgpO3J4MT1iMn0pO2Z1bmN0aW9uIGZGZSh0LGUpe2xldCBhPStlZSh0KS0rZWUoZSk7cmV0dXJuIGE+MD8tMTphPDA/MTphfXZhciBzeDEsdUZlPW4oKCk9PntNZSgpO3N4MT1mRmV9KTtmdW5jdGlvbiB5dCh0KXtyZXR1cm4gd2UodCxEYXRlLm5vdygpKX12YXIgY3gxLE8xPW4oKCk9PntLZSgpO2N4MT15dH0pO2Z1bmN0aW9uIHBGZSh0KXtsZXQgZT1NYXRoLnRydW5jKHQvNyk7cmV0dXJuIGU9PT0wPzA6ZX12YXIgdXgxLGhGZT1uKCgpPT57Z3QoKTt1eDE9cEZlfSk7ZnVuY3Rpb24gU3IodCxlLGEpe2xldFtyLGldPVllKGE/LmluLHQsZSk7cmV0dXJuK2tyKHIpPT0ra3IoaSl9dmFyIGd4MSxGYz1uKCgpPT57WHQoKTtvOCgpO2d4MT1Tcn0pO2Z1bmN0aW9uIFRPKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZXx8dHlwZW9mIHQ9PSJvYmplY3QiJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk9PT0iW29iamVjdCBEYXRlXSJ9dmFyIGJ4MSxvWj1uKCgpPT57YngxPVRPfSk7ZnVuY3Rpb24gcjIodCl7cmV0dXJuISghVE8odCkmJnR5cGVvZiB0IT0ibnVtYmVyInx8aXNOYU4oK2VlKHQpKSl9dmFyIE14MSxjaT1uKCgpPT57b1ooKTtNZSgpO014MT1yMn0pO2Z1bmN0aW9uIG1GZSh0LGUsYSl7bGV0W3IsaV09WWUoYT8uaW4sdCxlKTtpZighcjIocil8fCFyMihpKSlyZXR1cm4gTmFOO2xldCBvPVcxKHIsaSkscz1vPDA/LTE6MSxsPU1hdGgudHJ1bmMoby83KSxmPWwqNSxjPUYxKGksbCo3KTtmb3IoOyFTcihyLGMpOylmKz1NcihjLGEpPzA6cyxjPUYxKGMscyk7cmV0dXJuIGY9PT0wPzA6Zn12YXIgQXgxLGdGZT1uKCgpPT57WHQoKTt5cigpO2xpKCk7RmMoKTtjaSgpO3I4KCk7QXgxPW1GZX0pO2Z1bmN0aW9uIF9PKHQsZSxhKXtsZXRbcixpXT1ZZShhPy5pbix0LGUpO3JldHVybiBJMihyLGEpLUkyKGksYSl9dmFyIE54MSxzWj1uKCgpPT57WHQoKTttbygpO054MT1fT30pO2Z1bmN0aW9uIHhGZSh0LGUsYSl7bGV0W3IsaV09WWUoYT8uaW4sdCxlKSxvPUExKHIpLHM9QTEoaSksbD0rby1iMShvKSxmPStzLWIxKHMpO3JldHVybiBNYXRoLnJvdW5kKChsLWYpL3ZyKX12YXIgUngxLGJGZT1uKCgpPT57bmkoKTtYdCgpO2d0KCk7enIoKTtSeDE9eEZlfSk7ZnVuY3Rpb24gTnModCxlLGEpe2xldFtyLGldPVllKGE/LmluLHQsZSksbz1yLmdldEZ1bGxZZWFyKCktaS5nZXRGdWxsWWVhcigpLHM9ci5nZXRNb250aCgpLWkuZ2V0TW9udGgoKTtyZXR1cm4gbyoxMitzfXZhciBWeDEsQU89bigoKT0+e1h0KCk7VngxPU5zfSk7ZnVuY3Rpb24gbjgodCxlKXtsZXQgYT1lZSh0LGU/LmluKTtyZXR1cm4gTWF0aC50cnVuYyhhLmdldE1vbnRoKCkvMykrMX12YXIgV3gxLG5aPW4oKCk9PntNZSgpO1d4MT1uOH0pO2Z1bmN0aW9uIE9jKHQsZSxhKXtsZXRbcixpXT1ZZShhPy5pbix0LGUpLG89ci5nZXRGdWxsWWVhcigpLWkuZ2V0RnVsbFllYXIoKSxzPW44KHIpLW44KGkpO3JldHVybiBvKjQrc312YXIgWHgxLGxaPW4oKCk9PntYdCgpO25aKCk7WHgxPU9jfSk7ZnVuY3Rpb24gUHModCxlLGEpe2xldFtyLGldPVllKGE/LmluLHQsZSksbz1hMShyLGEpLHM9YTEoaSxhKSxsPStvLWIxKG8pLGY9K3MtYjEocyk7cmV0dXJuIE1hdGgucm91bmQoKGwtZikvdnIpfXZhciBhYjEsJE89bigoKT0+e25pKCk7WHQoKTtndCgpO1VhKCk7YWIxPVBzfSk7ZnVuY3Rpb24geG8odCxlLGEpe2xldFtyLGldPVllKGE/LmluLHQsZSk7cmV0dXJuIHIuZ2V0RnVsbFllYXIoKS1pLmdldEZ1bGxZZWFyKCl9dmFyIG9iMSxETz1uKCgpPT57WHQoKTtvYjE9eG99KTtmdW5jdGlvbiBCYyh0LGUsYSl7bGV0W3IsaV09WWUoYT8uaW4sdCxlKSxvPXZGZShyLGkpLHM9TWF0aC5hYnMoVzEocixpKSk7ci5zZXREYXRlKHIuZ2V0RGF0ZSgpLW8qcyk7bGV0IGw9Kyh2RmUocixpKT09PS1vKSxmPW8qKHMtbCk7cmV0dXJuIGY9PT0wPzA6Zn1mdW5jdGlvbiB2RmUodCxlKXtsZXQgYT10LmdldEZ1bGxZZWFyKCktZS5nZXRGdWxsWWVhcigpfHx0LmdldE1vbnRoKCktZS5nZXRNb250aCgpfHx0LmdldERhdGUoKS1lLmdldERhdGUoKXx8dC5nZXRIb3VycygpLWUuZ2V0SG91cnMoKXx8dC5nZXRNaW51dGVzKCktZS5nZXRNaW51dGVzKCl8fHQuZ2V0U2Vjb25kcygpLWUuZ2V0U2Vjb25kcygpfHx0LmdldE1pbGxpc2Vjb25kcygpLWUuZ2V0TWlsbGlzZWNvbmRzKCk7cmV0dXJuIGE8MD8tMTphPjA/MTphfXZhciBjYjEsRU89bigoKT0+e1h0KCk7bGkoKTtjYjE9QmN9KTtmdW5jdGlvbiB2Mih0KXtyZXR1cm4gZT0+e2xldCByPSh0P01hdGhbdF06TWF0aC50cnVuYykoZSk7cmV0dXJuIHI9PT0wPzA6cn19dmFyIGRpPW4oKCk9Pnt9KTtmdW5jdGlvbiBJcyh0LGUsYSl7bGV0W3IsaV09WWUoYT8uaW4sdCxlKSxvPSgrci0raSkvaWE7cmV0dXJuIHYyKGE/LnJvdW5kaW5nTWV0aG9kKShvKX12YXIgbWIxLE5PPW4oKCk9PntkaSgpO1h0KCk7Z3QoKTttYjE9SXN9KTtmdW5jdGlvbiBQTyh0LGUsYSl7cmV0dXJuIHlPKHQsLWUsYSl9dmFyIGJiMSxjWj1uKCgpPT57SlkoKTtiYjE9UE99KTtmdW5jdGlvbiB5RmUodCxlLGEpe2xldFtyLGldPVllKGE/LmluLHQsZSksbz1iMihyLGkpLHM9TWF0aC5hYnMoX08ocixpLGEpKSxsPVBPKHIsbypzLGEpLGY9KyhiMihsLGkpPT09LW8pLGM9byoocy1mKTtyZXR1cm4gYz09PTA/MDpjfXZhciBrYjEsd0ZlPW4oKCk9PntYdCgpO0VzKCk7c1ooKTtjWigpO2tiMT15RmV9KTtmdW5jdGlvbiBSYyh0LGUpe3JldHVybitlZSh0KS0rZWUoZSl9dmFyIExiMSxJTz1uKCgpPT57TWUoKTtMYjE9UmN9KTtmdW5jdGlvbiBGcyh0LGUsYSl7bGV0IHI9UmModCxlKS9nMjtyZXR1cm4gdjIoYT8ucm91bmRpbmdNZXRob2QpKHIpfXZhciBEYjEsRk89bigoKT0+e2RpKCk7Z3QoKTtJTygpO0RiMT1Gc30pO2Z1bmN0aW9uIEhjKHQsZSl7bGV0IGE9ZWUodCxlPy5pbik7cmV0dXJuIGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciBQYjEsT089bigoKT0+e01lKCk7UGIxPUhjfSk7ZnVuY3Rpb24gcWModCxlKXtsZXQgYT1lZSh0LGU/LmluKSxyPWEuZ2V0TW9udGgoKTtyZXR1cm4gYS5zZXRGdWxsWWVhcihhLmdldEZ1bGxZZWFyKCkscisxLDApLGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciBPYjEsQk89bigoKT0+e01lKCk7T2IxPXFjfSk7ZnVuY3Rpb24gUk8odCxlKXtsZXQgYT1lZSh0LGU/LmluKTtyZXR1cm4rSGMoYSxlKT09K3FjKGEsZSl9dmFyIFZiMSxkWj1uKCgpPT57T08oKTtCTygpO01lKCk7VmIxPVJPfSk7ZnVuY3Rpb24gYm8odCxlLGEpe2xldFtyLGksb109WWUoYT8uaW4sdCx0LGUpLHM9YjIoaSxvKSxsPU1hdGguYWJzKE5zKGksbykpO2lmKGw8MSlyZXR1cm4gMDtpLmdldE1vbnRoKCk9PT0xJiZpLmdldERhdGUoKT4yNyYmaS5zZXREYXRlKDMwKSxpLnNldE1vbnRoKGkuZ2V0TW9udGgoKS1zKmwpO2xldCBmPWIyKGksbyk9PT0tcztSTyhyKSYmbD09PTEmJmIyKHIsbyk9PT0xJiYoZj0hMSk7bGV0IGM9cyoobC0rZik7cmV0dXJuIGM9PT0wPzA6Y312YXIgWmIxLGw4PW4oKCk9PntYdCgpO0VzKCk7QU8oKTtkWigpO1piMT1ib30pO2Z1bmN0aW9uIE1GZSh0LGUsYSl7bGV0IHI9Ym8odCxlLGEpLzM7cmV0dXJuIHYyKGE/LnJvdW5kaW5nTWV0aG9kKShyKX12YXIgSmIxLHpGZT1uKCgpPT57ZGkoKTtsOCgpO0piMT1NRmV9KTtmdW5jdGlvbiBDcih0LGUsYSl7bGV0IHI9UmModCxlKS8xZTM7cmV0dXJuIHYyKGE/LnJvdW5kaW5nTWV0aG9kKShyKX12YXIgcnYxLGM4PW4oKCk9PntkaSgpO0lPKCk7cnYxPUNyfSk7ZnVuY3Rpb24ga0ZlKHQsZSxhKXtsZXQgcj1CYyh0LGUsYSkvNztyZXR1cm4gdjIoYT8ucm91bmRpbmdNZXRob2QpKHIpfXZhciBudjEsU0ZlPW4oKCk9PntkaSgpO0VPKCk7bnYxPWtGZX0pO2Z1bmN0aW9uIEhPKHQsZSxhKXtsZXRbcixpXT1ZZShhPy5pbix0LGUpLG89YjIocixpKSxzPU1hdGguYWJzKHhvKHIsaSkpO3Iuc2V0RnVsbFllYXIoMTU4NCksaS5zZXRGdWxsWWVhcigxNTg0KTtsZXQgbD1iMihyLGkpPT09LW8sZj1vKihzLStsKTtyZXR1cm4gZj09PTA/MDpmfXZhciB1djEsZlo9bigoKT0+e1h0KCk7RXMoKTtETygpO3V2MT1IT30pO2Z1bmN0aW9uIEcxKHQsZSl7bGV0W2Escl09WWUodCxlLnN0YXJ0LGUuZW5kKTtyZXR1cm57c3RhcnQ6YSxlbmQ6cn19dmFyIExyPW4oKCk9PntYdCgpfSk7ZnVuY3Rpb24gcU8odCxlKXtsZXR7c3RhcnQ6YSxlbmQ6cn09RzEoZT8uaW4sdCksaT0rYT4rcixvPWk/K2E6K3Iscz1pP3I6YTtzLnNldEhvdXJzKDAsMCwwLDApO2xldCBsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxpPSFpKTtsZXQgZj1bXTtmb3IoOytzPD1vOylmLnB1c2god2UoYSxzKSkscy5zZXREYXRlKHMuZ2V0RGF0ZSgpK2wpLHMuc2V0SG91cnMoMCwwLDAsMCk7cmV0dXJuIGk/Zi5yZXZlcnNlKCk6Zn12YXIgYnYxLHVaPW4oKCk9PntMcigpO0tlKCk7YnYxPXFPfSk7ZnVuY3Rpb24gQ0ZlKHQsZSl7bGV0e3N0YXJ0OmEsZW5kOnJ9PUcxKGU/LmluLHQpLGk9K2E+K3Isbz1pPythOityLHM9aT9yOmE7cy5zZXRNaW51dGVzKDAsMCwwKTtsZXQgbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwsaT0haSk7bGV0IGY9W107Zm9yKDsrczw9bzspZi5wdXNoKHdlKGEscykpLHMuc2V0SG91cnMocy5nZXRIb3VycygpK2wpO3JldHVybiBpP2YucmV2ZXJzZSgpOmZ9dmFyIE12MSxMRmU9bigoKT0+e0xyKCk7S2UoKTtNdjE9Q0ZlfSk7ZnVuY3Rpb24gVEZlKHQsZSl7bGV0e3N0YXJ0OmEsZW5kOnJ9PUcxKGU/LmluLHQpO2Euc2V0U2Vjb25kcygwLDApO2xldCBpPSthPityLG89aT8rYTorcixzPWk/cjphLGw9ZT8uc3RlcD8/MTtpZighbClyZXR1cm5bXTtsPDAmJihsPS1sLGk9IWkpO2xldCBmPVtdO2Zvcig7K3M8PW87KWYucHVzaCh3ZShhLHMpKSxzPVBjKHMsbCk7cmV0dXJuIGk/Zi5yZXZlcnNlKCk6Zn12YXIgTHYxLF9GZT1uKCgpPT57THIoKTt3TygpO0tlKCk7THYxPVRGZX0pO2Z1bmN0aW9uIEFGZSh0LGUpe2xldHtzdGFydDphLGVuZDpyfT1HMShlPy5pbix0KSxpPSthPityLG89aT8rYTorcixzPWk/cjphO3Muc2V0SG91cnMoMCwwLDAsMCkscy5zZXREYXRlKDEpO2xldCBsPWU/LnN0ZXA/PzE7aWYoIWwpcmV0dXJuW107bDwwJiYobD0tbCxpPSFpKTtsZXQgZj1bXTtmb3IoOytzPD1vOylmLnB1c2god2UoYSxzKSkscy5zZXRNb250aChzLmdldE1vbnRoKCkrbCk7cmV0dXJuIGk/Zi5yZXZlcnNlKCk6Zn12YXIgJHYxLCRGZT1uKCgpPT57THIoKTtLZSgpOyR2MT1BRmV9KTtmdW5jdGlvbiBUcih0LGUpe2xldCBhPWVlKHQsZT8uaW4pLHI9YS5nZXRNb250aCgpLGk9ci1yJTM7cmV0dXJuIGEuc2V0TW9udGgoaSwxKSxhLnNldEhvdXJzKDAsMCwwLDApLGF9dmFyIE52MSxWTz1uKCgpPT57TWUoKTtOdjE9VHJ9KTtmdW5jdGlvbiBERmUodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6cn09RzEoZT8uaW4sdCksaT0rYT4rcixvPWk/K1RyKGEpOitUcihyKSxzPWk/VHIocik6VHIoYSksbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwsaT0haSk7bGV0IGY9W107Zm9yKDsrczw9bzspZi5wdXNoKHdlKGEscykpLHM9SWMocyxsKTtyZXR1cm4gaT9mLnJldmVyc2UoKTpmfXZhciBSdjEsRUZlPW4oKCk9PntMcigpO01PKCk7S2UoKTtWTygpO1J2MT1ERmV9KTtmdW5jdGlvbiBORmUodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6cn09RzEoZT8uaW4sdCksaT0rYT4rcixvPWk/YTEocixlKTphMShhLGUpLHM9aT9hMShhLGUpOmExKHIsZSk7by5zZXRIb3VycygxNSkscy5zZXRIb3VycygxNSk7bGV0IGw9K3MuZ2V0VGltZSgpLGY9byxjPWU/LnN0ZXA/PzE7aWYoIWMpcmV0dXJuW107YzwwJiYoYz0tYyxpPSFpKTtsZXQgdT1bXTtmb3IoOytmPD1sOylmLnNldEhvdXJzKDApLHUucHVzaCh3ZShhLGYpKSxmPWdvKGYsYyksZi5zZXRIb3VycygxNSk7cmV0dXJuIGk/dS5yZXZlcnNlKCk6dX12YXIgV3YxLFBGZT1uKCgpPT57THIoKTtzOCgpO0tlKCk7VWEoKTtXdjE9TkZlfSk7ZnVuY3Rpb24gVmModCxlKXtsZXR7c3RhcnQ6YSxlbmQ6cn09RzEoZT8uaW4sdCksaT1xTyh7c3RhcnQ6YSxlbmQ6cn0sZSksbz1bXSxzPTA7Zm9yKDtzPGkubGVuZ3RoOyl7bGV0IGw9aVtzKytdO01yKGwpJiZvLnB1c2god2UoYSxsKSl9cmV0dXJuIG99dmFyIEt2MSxVTz1uKCgpPT57THIoKTtLZSgpO3VaKCk7cjgoKTtLdjE9VmN9KTtmdW5jdGlvbiB2byh0LGUpe2xldCBhPWVlKHQsZT8uaW4pO3JldHVybiBhLnNldERhdGUoMSksYS5zZXRIb3VycygwLDAsMCwwKSxhfXZhciB0eTEsZDg9bigoKT0+e01lKCk7dHkxPXZvfSk7ZnVuY3Rpb24gSUZlKHQsZSl7bGV0IGE9dm8odCxlKSxyPXFjKHQsZSk7cmV0dXJuIFZjKHtzdGFydDphLGVuZDpyfSxlKX12YXIgc3kxLEZGZT1uKCgpPT57VU8oKTtCTygpO2Q4KCk7c3kxPUlGZX0pO2Z1bmN0aW9uIGpPKHQsZSl7bGV0IGE9ZWUodCxlPy5pbikscj1hLmdldEZ1bGxZZWFyKCk7cmV0dXJuIGEuc2V0RnVsbFllYXIocisxLDAsMCksYS5zZXRIb3VycygyMyw1OSw1OSw5OTkpLGF9dmFyIGN5MSxwWj1uKCgpPT57TWUoKTtjeTE9ak99KTtmdW5jdGlvbiBVYyh0LGUpe2xldCBhPWVlKHQsZT8uaW4pO3JldHVybiBhLnNldEZ1bGxZZWFyKGEuZ2V0RnVsbFllYXIoKSwwLDEpLGEuc2V0SG91cnMoMCwwLDAsMCksYX12YXIgdXkxLFdPPW4oKCk9PntNZSgpO3V5MT1VY30pO2Z1bmN0aW9uIE9GZSh0LGUpe2xldCBhPVVjKHQsZSkscj1qTyh0LGUpO3JldHVybiBWYyh7c3RhcnQ6YSxlbmQ6cn0sZSl9dmFyIHh5MSxCRmU9bigoKT0+e1VPKCk7cFooKTtXTygpO3h5MT1PRmV9KTtmdW5jdGlvbiBSRmUodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6cn09RzEoZT8uaW4sdCksaT0rYT4rcixvPWk/K2E6K3Iscz1pP3I6YTtzLnNldEhvdXJzKDAsMCwwLDApLHMuc2V0TW9udGgoMCwxKTtsZXQgbD1lPy5zdGVwPz8xO2lmKCFsKXJldHVybltdO2w8MCYmKGw9LWwsaT0haSk7bGV0IGY9W107Zm9yKDsrczw9bzspZi5wdXNoKHdlKGEscykpLHMuc2V0RnVsbFllYXIocy5nZXRGdWxsWWVhcigpK2wpO3JldHVybiBpP2YucmV2ZXJzZSgpOmZ9dmFyIHd5MSxIRmU9bigoKT0+e0xyKCk7S2UoKTt3eTE9UkZlfSk7ZnVuY3Rpb24gcUZlKHQsZSl7bGV0IGE9ZWUodCxlPy5pbikscj1hLmdldEZ1bGxZZWFyKCksaT05K01hdGguZmxvb3Ioci8xMCkqMTA7cmV0dXJuIGEuc2V0RnVsbFllYXIoaSwxMSwzMSksYS5zZXRIb3VycygyMyw1OSw1OSw5OTkpLGF9dmFyIGt5MSxWRmU9bigoKT0+e01lKCk7a3kxPXFGZX0pO2Z1bmN0aW9uIFVGZSh0LGUpe2xldCBhPWVlKHQsZT8uaW4pO3JldHVybiBhLnNldE1pbnV0ZXMoNTksNTksOTk5KSxhfXZhciBMeTEsakZlPW4oKCk9PntNZSgpO0x5MT1VRmV9KTtmdW5jdGlvbiBHTyh0LGUpe2xldCBhPVV0KCkscj1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9hLndlZWtTdGFydHNPbj8/YS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxpPWVlKHQsZT8uaW4pLG89aS5nZXREYXkoKSxzPShvPHI/LTc6MCkrNi0oby1yKTtyZXR1cm4gaS5zZXREYXRlKGkuZ2V0RGF0ZSgpK3MpLGkuc2V0SG91cnMoMjMsNTksNTksOTk5KSxpfXZhciAkeTEsaFo9bigoKT0+e3gyKCk7TWUoKTskeTE9R099KTtmdW5jdGlvbiBXRmUodCxlKXtyZXR1cm4gR08odCx7Li4uZSx3ZWVrU3RhcnRzT246MX0pfXZhciBOeTEsR0ZlPW4oKCk9PntoWigpO055MT1XRmV9KTtmdW5jdGlvbiBZRmUodCxlKXtsZXQgYT1JMih0LGUpLHI9d2UoZT8uaW58fHQsMCk7ci5zZXRGdWxsWWVhcihhKzEsMCw0KSxyLnNldEhvdXJzKDAsMCwwLDApO2xldCBpPUExKHIsZSk7cmV0dXJuIGkuc2V0TWlsbGlzZWNvbmRzKGkuZ2V0TWlsbGlzZWNvbmRzKCktMSksaX12YXIgQnkxLFpGZT1uKCgpPT57S2UoKTttbygpO3pyKCk7QnkxPVlGZX0pO2Z1bmN0aW9uIFhGZSh0LGUpe2xldCBhPWVlKHQsZT8uaW4pO3JldHVybiBhLnNldFNlY29uZHMoNTksOTk5KSxhfXZhciBxeTEsUUZlPW4oKCk9PntNZSgpO3F5MT1YRmV9KTtmdW5jdGlvbiBLRmUodCxlKXtsZXQgYT1lZSh0LGU/LmluKSxyPWEuZ2V0TW9udGgoKSxpPXItciUzKzM7cmV0dXJuIGEuc2V0TW9udGgoaSwwKSxhLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksYX12YXIgankxLEpGZT1uKCgpPT57TWUoKTtqeTE9S0ZlfSk7ZnVuY3Rpb24gZU9lKHQsZSl7bGV0IGE9ZWUodCxlPy5pbik7cmV0dXJuIGEuc2V0TWlsbGlzZWNvbmRzKDk5OSksYX12YXIgWXkxLHRPZT1uKCgpPT57TWUoKTtZeTE9ZU9lfSk7ZnVuY3Rpb24gYU9lKHQpe3JldHVybiBIYyhEYXRlLm5vdygpLHQpfXZhciBReTEsck9lPW4oKCk9PntPTygpO1F5MT1hT2V9KTtmdW5jdGlvbiBpT2UodCl7bGV0IGU9eXQodD8uaW4pLGE9ZS5nZXRGdWxsWWVhcigpLHI9ZS5nZXRNb250aCgpLGk9ZS5nZXREYXRlKCksbz15dCh0Py5pbik7cmV0dXJuIG8uc2V0RnVsbFllYXIoYSxyLGkrMSksby5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHQ/LmluP3QuaW4obyk6b312YXIgZXcxLG9PZT1uKCgpPT57TzEoKTtldzE9aU9lfSk7ZnVuY3Rpb24gc09lKHQpe2xldCBlPXl0KHQ/LmluKSxhPXdlKHQ/LmluLDApO3JldHVybiBhLnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSxlLmdldE1vbnRoKCksZS5nZXREYXRlKCktMSksYS5zZXRIb3VycygyMyw1OSw1OSw5OTkpLGF9dmFyIGl3MSxuT2U9bigoKT0+e0tlKCk7TzEoKTtpdzE9c09lfSk7dmFyIGlWdCxsT2UsY09lPW4oKCk9PntpVnQ9e2xlc3NUaGFuWFNlY29uZHM6e29uZToibGVzcyB0aGFuIGEgc2Vjb25kIixvdGhlcjoibGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzIn0seFNlY29uZHM6e29uZToiMSBzZWNvbmQiLG90aGVyOiJ7e2NvdW50fX0gc2Vjb25kcyJ9LGhhbGZBTWludXRlOiJoYWxmIGEgbWludXRlIixsZXNzVGhhblhNaW51dGVzOntvbmU6Imxlc3MgdGhhbiBhIG1pbnV0ZSIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlcyJ9LHhNaW51dGVzOntvbmU6IjEgbWludXRlIixvdGhlcjoie3tjb3VudH19IG1pbnV0ZXMifSxhYm91dFhIb3Vyczp7b25lOiJhYm91dCAxIGhvdXIiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gaG91cnMifSx4SG91cnM6e29uZToiMSBob3VyIixvdGhlcjoie3tjb3VudH19IGhvdXJzIn0seERheXM6e29uZToiMSBkYXkiLG90aGVyOiJ7e2NvdW50fX0gZGF5cyJ9LGFib3V0WFdlZWtzOntvbmU6ImFib3V0IDEgd2VlayIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB3ZWVrcyJ9LHhXZWVrczp7b25lOiIxIHdlZWsiLG90aGVyOiJ7e2NvdW50fX0gd2Vla3MifSxhYm91dFhNb250aHM6e29uZToiYWJvdXQgMSBtb250aCIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSBtb250aHMifSx4TW9udGhzOntvbmU6IjEgbW9udGgiLG90aGVyOiJ7e2NvdW50fX0gbW9udGhzIn0sYWJvdXRYWWVhcnM6e29uZToiYWJvdXQgMSB5ZWFyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IHllYXJzIn0seFllYXJzOntvbmU6IjEgeWVhciIsb3RoZXI6Int7Y291bnR9fSB5ZWFycyJ9LG92ZXJYWWVhcnM6e29uZToib3ZlciAxIHllYXIiLG90aGVyOiJvdmVyIHt7Y291bnR9fSB5ZWFycyJ9LGFsbW9zdFhZZWFyczp7b25lOiJhbG1vc3QgMSB5ZWFyIixvdGhlcjoiYWxtb3N0IHt7Y291bnR9fSB5ZWFycyJ9fSxsT2U9KHQsZSxhKT0+e2xldCByLGk9aVZ0W3RdO3JldHVybiB0eXBlb2YgaT09InN0cmluZyI/cj1pOmU9PT0xP3I9aS5vbmU6cj1pLm90aGVyLnJlcGxhY2UoInt7Y291bnR9fSIsZS50b1N0cmluZygpKSxhPy5hZGRTdWZmaXg/YS5jb21wYXJpc29uJiZhLmNvbXBhcmlzb24+MD8iaW4gIityOnIrIiBhZ28iOnJ9fSk7ZnVuY3Rpb24gWU8odCl7cmV0dXJuKGU9e30pPT57bGV0IGE9ZS53aWR0aD9TdHJpbmcoZS53aWR0aCk6dC5kZWZhdWx0V2lkdGg7cmV0dXJuIHQuZm9ybWF0c1thXXx8dC5mb3JtYXRzW3QuZGVmYXVsdFdpZHRoXX19dmFyIGRPZT1uKCgpPT57fSk7dmFyIG9WdCxzVnQsblZ0LGZPZSx1T2U9bigoKT0+e2RPZSgpO29WdD17ZnVsbDoiRUVFRSwgTU1NTSBkbywgeSIsbG9uZzoiTU1NTSBkbywgeSIsbWVkaXVtOiJNTU0gZCwgeSIsc2hvcnQ6Ik1NL2RkL3l5eXkifSxzVnQ9e2Z1bGw6Img6bW06c3MgYSB6enp6Iixsb25nOiJoOm1tOnNzIGEgeiIsbWVkaXVtOiJoOm1tOnNzIGEiLHNob3J0OiJoOm1tIGEifSxuVnQ9e2Z1bGw6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLGxvbmc6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLG1lZGl1bToie3tkYXRlfX0sIHt7dGltZX19IixzaG9ydDoie3tkYXRlfX0sIHt7dGltZX19In0sZk9lPXtkYXRlOllPKHtmb3JtYXRzOm9WdCxkZWZhdWx0V2lkdGg6ImZ1bGwifSksdGltZTpZTyh7Zm9ybWF0czpzVnQsZGVmYXVsdFdpZHRoOiJmdWxsIn0pLGRhdGVUaW1lOllPKHtmb3JtYXRzOm5WdCxkZWZhdWx0V2lkdGg6ImZ1bGwifSl9fSk7dmFyIGxWdCxwT2UsaE9lPW4oKCk9PntsVnQ9e2xhc3RXZWVrOiInbGFzdCcgZWVlZSAnYXQnIHAiLHllc3RlcmRheToiJ3llc3RlcmRheSBhdCcgcCIsdG9kYXk6Iid0b2RheSBhdCcgcCIsdG9tb3Jyb3c6Iid0b21vcnJvdyBhdCcgcCIsbmV4dFdlZWs6ImVlZWUgJ2F0JyBwIixvdGhlcjoiUCJ9LHBPZT0odCxlLGEscik9PmxWdFt0XX0pO2Z1bmN0aW9uIGpjKHQpe3JldHVybihlLGEpPT57bGV0IHI9YT8uY29udGV4dD9TdHJpbmcoYS5jb250ZXh0KToic3RhbmRhbG9uZSIsaTtpZihyPT09ImZvcm1hdHRpbmciJiZ0LmZvcm1hdHRpbmdWYWx1ZXMpe2xldCBzPXQuZGVmYXVsdEZvcm1hdHRpbmdXaWR0aHx8dC5kZWZhdWx0V2lkdGgsbD1hPy53aWR0aD9TdHJpbmcoYS53aWR0aCk6cztpPXQuZm9ybWF0dGluZ1ZhbHVlc1tsXXx8dC5mb3JtYXR0aW5nVmFsdWVzW3NdfWVsc2V7bGV0IHM9dC5kZWZhdWx0V2lkdGgsbD1hPy53aWR0aD9TdHJpbmcoYS53aWR0aCk6dC5kZWZhdWx0V2lkdGg7aT10LnZhbHVlc1tsXXx8dC52YWx1ZXNbc119bGV0IG89dC5hcmd1bWVudENhbGxiYWNrP3QuYXJndW1lbnRDYWxsYmFjayhlKTplO3JldHVybiBpW29dfX12YXIgbU9lPW4oKCk9Pnt9KTt2YXIgY1Z0LGRWdCxmVnQsdVZ0LHBWdCxoVnQsbVZ0LGdPZSx4T2U9bigoKT0+e21PZSgpO2NWdD17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LGRWdD17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0sZlZ0PXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSx1VnQ9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0scFZ0PXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSxoVnQ9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LG1WdD0odCxlKT0+e2xldCBhPU51bWJlcih0KSxyPWElMTAwO2lmKHI+MjB8fHI8MTApc3dpdGNoKHIlMTApe2Nhc2UgMTpyZXR1cm4gYSsic3QiO2Nhc2UgMjpyZXR1cm4gYSsibmQiO2Nhc2UgMzpyZXR1cm4gYSsicmQifXJldHVybiBhKyJ0aCJ9LGdPZT17b3JkaW5hbE51bWJlcjptVnQsZXJhOmpjKHt2YWx1ZXM6Y1Z0LGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxxdWFydGVyOmpjKHt2YWx1ZXM6ZFZ0LGRlZmF1bHRXaWR0aDoid2lkZSIsYXJndW1lbnRDYWxsYmFjazp0PT50LTF9KSxtb250aDpqYyh7dmFsdWVzOmZWdCxkZWZhdWx0V2lkdGg6IndpZGUifSksZGF5OmpjKHt2YWx1ZXM6dVZ0LGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXlQZXJpb2Q6amMoe3ZhbHVlczpwVnQsZGVmYXVsdFdpZHRoOiJ3aWRlIixmb3JtYXR0aW5nVmFsdWVzOmhWdCxkZWZhdWx0Rm9ybWF0dGluZ1dpZHRoOiJ3aWRlIn0pfX0pO2Z1bmN0aW9uIFdjKHQpe3JldHVybihlLGE9e30pPT57bGV0IHI9YS53aWR0aCxpPXImJnQubWF0Y2hQYXR0ZXJuc1tyXXx8dC5tYXRjaFBhdHRlcm5zW3QuZGVmYXVsdE1hdGNoV2lkdGhdLG89ZS5tYXRjaChpKTtpZighbylyZXR1cm4gbnVsbDtsZXQgcz1vWzBdLGw9ciYmdC5wYXJzZVBhdHRlcm5zW3JdfHx0LnBhcnNlUGF0dGVybnNbdC5kZWZhdWx0UGFyc2VXaWR0aF0sZj1BcnJheS5pc0FycmF5KGwpP3hWdChsLGQ9PmQudGVzdChzKSk6Z1Z0KGwsZD0+ZC50ZXN0KHMpKSxjO2M9dC52YWx1ZUNhbGxiYWNrP3QudmFsdWVDYWxsYmFjayhmKTpmLGM9YS52YWx1ZUNhbGxiYWNrP2EudmFsdWVDYWxsYmFjayhjKTpjO2xldCB1PWUuc2xpY2Uocy5sZW5ndGgpO3JldHVybnt2YWx1ZTpjLHJlc3Q6dX19fWZ1bmN0aW9uIGdWdCh0LGUpe2ZvcihsZXQgYSBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGEpJiZlKHRbYV0pKXJldHVybiBhfWZ1bmN0aW9uIHhWdCh0LGUpe2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSsrKWlmKGUodFthXSkpcmV0dXJuIGF9dmFyIGJPZT1uKCgpPT57fSk7ZnVuY3Rpb24gdk9lKHQpe3JldHVybihlLGE9e30pPT57bGV0IHI9ZS5tYXRjaCh0Lm1hdGNoUGF0dGVybik7aWYoIXIpcmV0dXJuIG51bGw7bGV0IGk9clswXSxvPWUubWF0Y2godC5wYXJzZVBhdHRlcm4pO2lmKCFvKXJldHVybiBudWxsO2xldCBzPXQudmFsdWVDYWxsYmFjaz90LnZhbHVlQ2FsbGJhY2sob1swXSk6b1swXTtzPWEudmFsdWVDYWxsYmFjaz9hLnZhbHVlQ2FsbGJhY2socyk6cztsZXQgbD1lLnNsaWNlKGkubGVuZ3RoKTtyZXR1cm57dmFsdWU6cyxyZXN0Omx9fX12YXIgeU9lPW4oKCk9Pnt9KTt2YXIgYlZ0LHZWdCx5VnQsd1Z0LE1WdCx6VnQsa1Z0LFNWdCxDVnQsTFZ0LFRWdCxfVnQsd09lLE1PZT1uKCgpPT57Yk9lKCk7eU9lKCk7YlZ0PS9eKFxkKykodGh8c3R8bmR8cmQpPy9pLHZWdD0vXGQrL2kseVZ0PXtuYXJyb3c6L14oYnxhKS9pLGFiYnJldmlhdGVkOi9eKGJcLj9ccz9jXC4/fGJcLj9ccz9jXC4/XHM/ZVwuP3xhXC4/XHM/ZFwuP3xjXC4/XHM/ZVwuPykvaSx3aWRlOi9eKGJlZm9yZSBjaHJpc3R8YmVmb3JlIGNvbW1vbiBlcmF8YW5ubyBkb21pbml8Y29tbW9uIGVyYSkvaX0sd1Z0PXthbnk6Wy9eYi9pLC9eKGF8YykvaV19LE1WdD17bmFycm93Oi9eWzEyMzRdL2ksYWJicmV2aWF0ZWQ6L15xWzEyMzRdL2ksd2lkZTovXlsxMjM0XSh0aHxzdHxuZHxyZCk/IHF1YXJ0ZXIvaX0selZ0PXthbnk6Wy8xL2ksLzIvaSwvMy9pLC80L2ldfSxrVnQ9e25hcnJvdzovXltqZm1hc29uZF0vaSxhYmJyZXZpYXRlZDovXihqYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYykvaSx3aWRlOi9eKGphbnVhcnl8ZmVicnVhcnl8bWFyY2h8YXByaWx8bWF5fGp1bmV8anVseXxhdWd1c3R8c2VwdGVtYmVyfG9jdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2l9LFNWdD17bmFycm93OlsvXmovaSwvXmYvaSwvXm0vaSwvXmEvaSwvXm0vaSwvXmovaSwvXmovaSwvXmEvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV0sYW55OlsvXmphL2ksL15mL2ksL15tYXIvaSwvXmFwL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hdS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXX0sQ1Z0PXtuYXJyb3c6L15bc210d2ZdL2ksc2hvcnQ6L14oc3V8bW98dHV8d2V8dGh8ZnJ8c2EpL2ksYWJicmV2aWF0ZWQ6L14oc3VufG1vbnx0dWV8d2VkfHRodXxmcml8c2F0KS9pLHdpZGU6L14oc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpL2l9LExWdD17bmFycm93OlsvXnMvaSwvXm0vaSwvXnQvaSwvXncvaSwvXnQvaSwvXmYvaSwvXnMvaV0sYW55OlsvXnN1L2ksL15tL2ksL150dS9pLC9edy9pLC9edGgvaSwvXmYvaSwvXnNhL2ldfSxUVnQ9e25hcnJvdzovXihhfHB8bWl8bnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2ksYW55Oi9eKFthcF1cLj9ccz9tXC4/fG1pZG5pZ2h0fG5vb258KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pfSxfVnQ9e2FueTp7YW06L15hL2kscG06L15wL2ksbWlkbmlnaHQ6L15taS9pLG5vb246L15uby9pLG1vcm5pbmc6L21vcm5pbmcvaSxhZnRlcm5vb246L2FmdGVybm9vbi9pLGV2ZW5pbmc6L2V2ZW5pbmcvaSxuaWdodDovbmlnaHQvaX19LHdPZT17b3JkaW5hbE51bWJlcjp2T2Uoe21hdGNoUGF0dGVybjpiVnQscGFyc2VQYXR0ZXJuOnZWdCx2YWx1ZUNhbGxiYWNrOnQ9PnBhcnNlSW50KHQsMTApfSksZXJhOldjKHttYXRjaFBhdHRlcm5zOnlWdCxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczp3VnQsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxxdWFydGVyOldjKHttYXRjaFBhdHRlcm5zOk1WdCxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczp6VnQsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSIsdmFsdWVDYWxsYmFjazp0PT50KzF9KSxtb250aDpXYyh7bWF0Y2hQYXR0ZXJuczprVnQsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6U1Z0LGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSksZGF5OldjKHttYXRjaFBhdHRlcm5zOkNWdCxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpMVnQsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXlQZXJpb2Q6V2Moe21hdGNoUGF0dGVybnM6VFZ0LGRlZmF1bHRNYXRjaFdpZHRoOiJhbnkiLHBhcnNlUGF0dGVybnM6X1Z0LGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSl9fSk7dmFyIEsyLGt3MSx6T2U9bigoKT0+e2NPZSgpO3VPZSgpO2hPZSgpO3hPZSgpO01PZSgpO0syPXtjb2RlOiJlbi1VUyIsZm9ybWF0RGlzdGFuY2U6bE9lLGZvcm1hdExvbmc6Zk9lLGZvcm1hdFJlbGF0aXZlOnBPZSxsb2NhbGl6ZTpnT2UsbWF0Y2g6d09lLG9wdGlvbnM6e3dlZWtTdGFydHNPbjowLGZpcnN0V2Vla0NvbnRhaW5zRGF0ZToxfX0sa3cxPUsyfSk7dmFyIE9zPW4oKCk9Pnt6T2UoKX0pO2Z1bmN0aW9uIFpPKHQsZSl7bGV0IGE9ZWUodCxlPy5pbik7cmV0dXJuIFcxKGEsVWMoYSkpKzF9dmFyICR3MSxtWj1uKCgpPT57bGkoKTtXTygpO01lKCk7JHcxPVpPfSk7ZnVuY3Rpb24gR2ModCxlKXtsZXQgYT1lZSh0LGU/LmluKSxyPStBMShhKS0rb2EoYSk7cmV0dXJuIE1hdGgucm91bmQoci92cikrMX12YXIgRncxLFhPPW4oKCk9PntndCgpO3pyKCk7TmMoKTtNZSgpO0Z3MT1HY30pO2Z1bmN0aW9uIHlvKHQsZSl7bGV0IGE9ZWUodCxlPy5pbikscj1hLmdldEZ1bGxZZWFyKCksaT1VdCgpLG89ZT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5maXJzdFdlZWtDb250YWluc0RhdGU/P2kubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEscz13ZShlPy5pbnx8dCwwKTtzLnNldEZ1bGxZZWFyKHIrMSwwLG8pLHMuc2V0SG91cnMoMCwwLDAsMCk7bGV0IGw9YTEocyxlKSxmPXdlKGU/LmlufHx0LDApO2Yuc2V0RnVsbFllYXIociwwLG8pLGYuc2V0SG91cnMoMCwwLDAsMCk7bGV0IGM9YTEoZixlKTtyZXR1cm4rYT49K2w/cisxOithPj0rYz9yOnItMX12YXIgVncxLGY4PW4oKCk9Pnt4MigpO0tlKCk7VWEoKTtNZSgpO1Z3MT15b30pO2Z1bmN0aW9uIEJzKHQsZSl7bGV0IGE9VXQoKSxyPWU/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ZT8ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2EuZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hLmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz8xLGk9eW8odCxlKSxvPXdlKGU/LmlufHx0LDApO3JldHVybiBvLnNldEZ1bGxZZWFyKGksMCxyKSxvLnNldEhvdXJzKDAsMCwwLDApLGExKG8sZSl9dmFyIFp3MSxRTz1uKCgpPT57eDIoKTtLZSgpO2Y4KCk7VWEoKTtadzE9QnN9KTtmdW5jdGlvbiBZYyh0LGUpe2xldCBhPWVlKHQsZT8uaW4pLHI9K2ExKGEsZSktK0JzKGEsZSk7cmV0dXJuIE1hdGgucm91bmQoci92cikrMX12YXIgdE0xLEtPPW4oKCk9PntndCgpO1VhKCk7UU8oKTtNZSgpO3RNMT1ZY30pO2Z1bmN0aW9uIFVlKHQsZSl7bGV0IGE9dDwwPyItIjoiIixyPU1hdGguYWJzKHQpLnRvU3RyaW5nKCkucGFkU3RhcnQoZSwiMCIpO3JldHVybiBhK3J9dmFyIFJzPW4oKCk9Pnt9KTt2YXIgc2EsZ1o9bigoKT0+e1JzKCk7c2E9e3kodCxlKXtsZXQgYT10LmdldEZ1bGxZZWFyKCkscj1hPjA/YToxLWE7cmV0dXJuIFVlKGU9PT0ieXkiP3IlMTAwOnIsZS5sZW5ndGgpfSxNKHQsZSl7bGV0IGE9dC5nZXRNb250aCgpO3JldHVybiBlPT09Ik0iP1N0cmluZyhhKzEpOlVlKGErMSwyKX0sZCh0LGUpe3JldHVybiBVZSh0LmdldERhdGUoKSxlLmxlbmd0aCl9LGEodCxlKXtsZXQgYT10LmdldEhvdXJzKCkvMTI+PTE/InBtIjoiYW0iO3N3aXRjaChlKXtjYXNlImEiOmNhc2UiYWEiOnJldHVybiBhLnRvVXBwZXJDYXNlKCk7Y2FzZSJhYWEiOnJldHVybiBhO2Nhc2UiYWFhYWEiOnJldHVybiBhWzBdO2RlZmF1bHQ6cmV0dXJuIGE9PT0iYW0iPyJhLm0uIjoicC5tLiJ9fSxoKHQsZSl7cmV0dXJuIFVlKHQuZ2V0SG91cnMoKSUxMnx8MTIsZS5sZW5ndGgpfSxIKHQsZSl7cmV0dXJuIFVlKHQuZ2V0SG91cnMoKSxlLmxlbmd0aCl9LG0odCxlKXtyZXR1cm4gVWUodC5nZXRNaW51dGVzKCksZS5sZW5ndGgpfSxzKHQsZSl7cmV0dXJuIFVlKHQuZ2V0U2Vjb25kcygpLGUubGVuZ3RoKX0sUyh0LGUpe2xldCBhPWUubGVuZ3RoLHI9dC5nZXRNaWxsaXNlY29uZHMoKSxpPU1hdGgudHJ1bmMocipNYXRoLnBvdygxMCxhLTMpKTtyZXR1cm4gVWUoaSxlLmxlbmd0aCl9fX0pO2Z1bmN0aW9uIGtPZSh0LGU9IiIpe2xldCBhPXQ+MD8iLSI6IisiLHI9TWF0aC5hYnModCksaT1NYXRoLnRydW5jKHIvNjApLG89ciU2MDtyZXR1cm4gbz09PTA/YStTdHJpbmcoaSk6YStTdHJpbmcoaSkrZStVZShvLDIpfWZ1bmN0aW9uIFNPZSh0LGUpe3JldHVybiB0JTYwPT09MD8odD4wPyItIjoiKyIpK1VlKE1hdGguYWJzKHQpLzYwLDIpOkhzKHQsZSl9ZnVuY3Rpb24gSHModCxlPSIiKXtsZXQgYT10PjA/Ii0iOiIrIixyPU1hdGguYWJzKHQpLGk9VWUoTWF0aC50cnVuYyhyLzYwKSwyKSxvPVVlKHIlNjAsMik7cmV0dXJuIGEraStlK299dmFyIFpjLHU4LENPZT1uKCgpPT57bVooKTtYTygpO21vKCk7S08oKTtmOCgpO1JzKCk7Z1ooKTtaYz17YW06ImFtIixwbToicG0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LHU4PXtHOmZ1bmN0aW9uKHQsZSxhKXtsZXQgcj10LmdldEZ1bGxZZWFyKCk+MD8xOjA7c3dpdGNoKGUpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiBhLmVyYShyLHt3aWR0aDoiYWJicmV2aWF0ZWQifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIGEuZXJhKHIse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gYS5lcmEocix7d2lkdGg6IndpZGUifSl9fSx5OmZ1bmN0aW9uKHQsZSxhKXtpZihlPT09InlvIil7bGV0IHI9dC5nZXRGdWxsWWVhcigpLGk9cj4wP3I6MS1yO3JldHVybiBhLm9yZGluYWxOdW1iZXIoaSx7dW5pdDoieWVhciJ9KX1yZXR1cm4gc2EueSh0LGUpfSxZOmZ1bmN0aW9uKHQsZSxhLHIpe2xldCBpPXlvKHQsciksbz1pPjA/aToxLWk7aWYoZT09PSJZWSIpe2xldCBzPW8lMTAwO3JldHVybiBVZShzLDIpfXJldHVybiBlPT09IllvIj9hLm9yZGluYWxOdW1iZXIobyx7dW5pdDoieWVhciJ9KTpVZShvLGUubGVuZ3RoKX0sUjpmdW5jdGlvbih0LGUpe2xldCBhPUkyKHQpO3JldHVybiBVZShhLGUubGVuZ3RoKX0sdTpmdW5jdGlvbih0LGUpe2xldCBhPXQuZ2V0RnVsbFllYXIoKTtyZXR1cm4gVWUoYSxlLmxlbmd0aCl9LFE6ZnVuY3Rpb24odCxlLGEpe2xldCByPU1hdGguY2VpbCgodC5nZXRNb250aCgpKzEpLzMpO3N3aXRjaChlKXtjYXNlIlEiOnJldHVybiBTdHJpbmcocik7Y2FzZSJRUSI6cmV0dXJuIFVlKHIsMik7Y2FzZSJRbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihyLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gYS5xdWFydGVyKHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIlFRUVFRIjpyZXR1cm4gYS5xdWFydGVyKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5xdWFydGVyKHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0scTpmdW5jdGlvbih0LGUsYSl7bGV0IHI9TWF0aC5jZWlsKCh0LmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKGUpe2Nhc2UicSI6cmV0dXJuIFN0cmluZyhyKTtjYXNlInFxIjpyZXR1cm4gVWUociwyKTtjYXNlInFvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKHIse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiBhLnF1YXJ0ZXIocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UicXFxcXEiOnJldHVybiBhLnF1YXJ0ZXIocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiBhLnF1YXJ0ZXIocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSxNOmZ1bmN0aW9uKHQsZSxhKXtsZXQgcj10LmdldE1vbnRoKCk7c3dpdGNoKGUpe2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIHNhLk0odCxlKTtjYXNlIk1vIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKHIrMSx7dW5pdDoibW9udGgifSk7Y2FzZSJNTU0iOnJldHVybiBhLm1vbnRoKHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIk1NTU1NIjpyZXR1cm4gYS5tb250aChyLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEubW9udGgocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxMOmZ1bmN0aW9uKHQsZSxhKXtsZXQgcj10LmdldE1vbnRoKCk7c3dpdGNoKGUpe2Nhc2UiTCI6cmV0dXJuIFN0cmluZyhyKzEpO2Nhc2UiTEwiOnJldHVybiBVZShyKzEsMik7Y2FzZSJMbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihyKzEse3VuaXQ6Im1vbnRoIn0pO2Nhc2UiTExMIjpyZXR1cm4gYS5tb250aChyLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIGEubW9udGgocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiBhLm1vbnRoKHIse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sdzpmdW5jdGlvbih0LGUsYSxyKXtsZXQgaT1ZYyh0LHIpO3JldHVybiBlPT09IndvIj9hLm9yZGluYWxOdW1iZXIoaSx7dW5pdDoid2VlayJ9KTpVZShpLGUubGVuZ3RoKX0sSTpmdW5jdGlvbih0LGUsYSl7bGV0IHI9R2ModCk7cmV0dXJuIGU9PT0iSW8iP2Eub3JkaW5hbE51bWJlcihyLHt1bml0OiJ3ZWVrIn0pOlVlKHIsZS5sZW5ndGgpfSxkOmZ1bmN0aW9uKHQsZSxhKXtyZXR1cm4gZT09PSJkbyI/YS5vcmRpbmFsTnVtYmVyKHQuZ2V0RGF0ZSgpLHt1bml0OiJkYXRlIn0pOnNhLmQodCxlKX0sRDpmdW5jdGlvbih0LGUsYSl7bGV0IHI9Wk8odCk7cmV0dXJuIGU9PT0iRG8iP2Eub3JkaW5hbE51bWJlcihyLHt1bml0OiJkYXlPZlllYXIifSk6VWUocixlLmxlbmd0aCl9LEU6ZnVuY3Rpb24odCxlLGEpe2xldCByPXQuZ2V0RGF5KCk7c3dpdGNoKGUpe2Nhc2UiRSI6Y2FzZSJFRSI6Y2FzZSJFRUUiOnJldHVybiBhLmRheShyLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRSI6cmV0dXJuIGEuZGF5KHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRUUiOnJldHVybiBhLmRheShyLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxlOmZ1bmN0aW9uKHQsZSxhLHIpe2xldCBpPXQuZ2V0RGF5KCksbz0oaS1yLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaChlKXtjYXNlImUiOnJldHVybiBTdHJpbmcobyk7Y2FzZSJlZSI6cmV0dXJuIFVlKG8sMik7Y2FzZSJlbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihvLHt1bml0OiJkYXkifSk7Y2FzZSJlZWUiOnJldHVybiBhLmRheShpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIGEuZGF5KGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiBhLmRheShpLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxjOmZ1bmN0aW9uKHQsZSxhLHIpe2xldCBpPXQuZ2V0RGF5KCksbz0oaS1yLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaChlKXtjYXNlImMiOnJldHVybiBTdHJpbmcobyk7Y2FzZSJjYyI6cmV0dXJuIFVlKG8sZS5sZW5ndGgpO2Nhc2UiY28iOnJldHVybiBhLm9yZGluYWxOdW1iZXIobyx7dW5pdDoiZGF5In0pO2Nhc2UiY2NjIjpyZXR1cm4gYS5kYXkoaSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiBhLmRheShpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gYS5kYXkoaSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5KGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0saTpmdW5jdGlvbih0LGUsYSl7bGV0IHI9dC5nZXREYXkoKSxpPXI9PT0wPzc6cjtzd2l0Y2goZSl7Y2FzZSJpIjpyZXR1cm4gU3RyaW5nKGkpO2Nhc2UiaWkiOnJldHVybiBVZShpLGUubGVuZ3RoKTtjYXNlImlvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6ImRheSJ9KTtjYXNlImlpaSI6cmV0dXJuIGEuZGF5KHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpIjpyZXR1cm4gYS5kYXkocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpaSI6cmV0dXJuIGEuZGF5KHIse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheShyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGE6ZnVuY3Rpb24odCxlLGEpe2xldCBpPXQuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKGUpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIGEuZGF5UGVyaW9kKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImFhYSI6cmV0dXJuIGEuZGF5UGVyaW9kKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYWFhYWEiOnJldHVybiBhLmRheVBlcmlvZChpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5UGVyaW9kKGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sYjpmdW5jdGlvbih0LGUsYSl7bGV0IHI9dC5nZXRIb3VycygpLGk7c3dpdGNoKHI9PT0xMj9pPVpjLm5vb246cj09PTA/aT1aYy5taWRuaWdodDppPXIvMTI+PTE/InBtIjoiYW0iLGUpe2Nhc2UiYiI6Y2FzZSJiYiI6cmV0dXJuIGEuZGF5UGVyaW9kKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImJiYiI6cmV0dXJuIGEuZGF5UGVyaW9kKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYmJiYmIiOnJldHVybiBhLmRheVBlcmlvZChpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5UGVyaW9kKGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sQjpmdW5jdGlvbih0LGUsYSl7bGV0IHI9dC5nZXRIb3VycygpLGk7c3dpdGNoKHI+PTE3P2k9WmMuZXZlbmluZzpyPj0xMj9pPVpjLmFmdGVybm9vbjpyPj00P2k9WmMubW9ybmluZzppPVpjLm5pZ2h0LGUpe2Nhc2UiQiI6Y2FzZSJCQiI6Y2FzZSJCQkIiOnJldHVybiBhLmRheVBlcmlvZChpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJCQkJCQiI6cmV0dXJuIGEuZGF5UGVyaW9kKGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXlQZXJpb2QoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxoOmZ1bmN0aW9uKHQsZSxhKXtpZihlPT09ImhvIil7bGV0IHI9dC5nZXRIb3VycygpJTEyO3JldHVybiByPT09MCYmKHI9MTIpLGEub3JkaW5hbE51bWJlcihyLHt1bml0OiJob3VyIn0pfXJldHVybiBzYS5oKHQsZSl9LEg6ZnVuY3Rpb24odCxlLGEpe3JldHVybiBlPT09IkhvIj9hLm9yZGluYWxOdW1iZXIodC5nZXRIb3VycygpLHt1bml0OiJob3VyIn0pOnNhLkgodCxlKX0sSzpmdW5jdGlvbih0LGUsYSl7bGV0IHI9dC5nZXRIb3VycygpJTEyO3JldHVybiBlPT09IktvIj9hLm9yZGluYWxOdW1iZXIocix7dW5pdDoiaG91ciJ9KTpVZShyLGUubGVuZ3RoKX0sazpmdW5jdGlvbih0LGUsYSl7bGV0IHI9dC5nZXRIb3VycygpO3JldHVybiByPT09MCYmKHI9MjQpLGU9PT0ia28iP2Eub3JkaW5hbE51bWJlcihyLHt1bml0OiJob3VyIn0pOlVlKHIsZS5sZW5ndGgpfSxtOmZ1bmN0aW9uKHQsZSxhKXtyZXR1cm4gZT09PSJtbyI/YS5vcmRpbmFsTnVtYmVyKHQuZ2V0TWludXRlcygpLHt1bml0OiJtaW51dGUifSk6c2EubSh0LGUpfSxzOmZ1bmN0aW9uKHQsZSxhKXtyZXR1cm4gZT09PSJzbyI/YS5vcmRpbmFsTnVtYmVyKHQuZ2V0U2Vjb25kcygpLHt1bml0OiJzZWNvbmQifSk6c2Eucyh0LGUpfSxTOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHNhLlModCxlKX0sWDpmdW5jdGlvbih0LGUsYSl7bGV0IHI9dC5nZXRUaW1lem9uZU9mZnNldCgpO2lmKHI9PT0wKXJldHVybiJaIjtzd2l0Y2goZSl7Y2FzZSJYIjpyZXR1cm4gU09lKHIpO2Nhc2UiWFhYWCI6Y2FzZSJYWCI6cmV0dXJuIEhzKHIpO2RlZmF1bHQ6cmV0dXJuIEhzKHIsIjoiKX19LHg6ZnVuY3Rpb24odCxlLGEpe2xldCByPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJ4IjpyZXR1cm4gU09lKHIpO2Nhc2UieHh4eCI6Y2FzZSJ4eCI6cmV0dXJuIEhzKHIpO2RlZmF1bHQ6cmV0dXJuIEhzKHIsIjoiKX19LE86ZnVuY3Rpb24odCxlLGEpe2xldCByPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6cmV0dXJuIkdNVCIra09lKHIsIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK0hzKHIsIjoiKX19LHo6ZnVuY3Rpb24odCxlLGEpe2xldCByPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6cmV0dXJuIkdNVCIra09lKHIsIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK0hzKHIsIjoiKX19LHQ6ZnVuY3Rpb24odCxlLGEpe2xldCByPU1hdGgudHJ1bmMoK3QvMWUzKTtyZXR1cm4gVWUocixlLmxlbmd0aCl9LFQ6ZnVuY3Rpb24odCxlLGEpe3JldHVybiBVZSgrdCxlLmxlbmd0aCl9fX0pO3ZhciBMT2UsVE9lLEFWdCx3byx4Wj1uKCgpPT57TE9lPSh0LGUpPT57c3dpdGNoKHQpe2Nhc2UiUCI6cmV0dXJuIGUuZGF0ZSh7d2lkdGg6InNob3J0In0pO2Nhc2UiUFAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJtZWRpdW0ifSk7Y2FzZSJQUFAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJsb25nIn0pO2RlZmF1bHQ6cmV0dXJuIGUuZGF0ZSh7d2lkdGg6ImZ1bGwifSl9fSxUT2U9KHQsZSk9Pntzd2l0Y2godCl7Y2FzZSJwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoic2hvcnQifSk7Y2FzZSJwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6Im1lZGl1bSJ9KTtjYXNlInBwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6ImxvbmcifSk7ZGVmYXVsdDpyZXR1cm4gZS50aW1lKHt3aWR0aDoiZnVsbCJ9KX19LEFWdD0odCxlKT0+e2xldCBhPXQubWF0Y2goLyhQKykocCspPy8pfHxbXSxyPWFbMV0saT1hWzJdO2lmKCFpKXJldHVybiBMT2UodCxlKTtsZXQgbztzd2l0Y2gocil7Y2FzZSJQIjpvPWUuZGF0ZVRpbWUoe3dpZHRoOiJzaG9ydCJ9KTticmVhaztjYXNlIlBQIjpvPWUuZGF0ZVRpbWUoe3dpZHRoOiJtZWRpdW0ifSk7YnJlYWs7Y2FzZSJQUFAiOm89ZS5kYXRlVGltZSh7d2lkdGg6ImxvbmcifSk7YnJlYWs7ZGVmYXVsdDpvPWUuZGF0ZVRpbWUoe3dpZHRoOiJmdWxsIn0pO2JyZWFrfXJldHVybiBvLnJlcGxhY2UoInt7ZGF0ZX19IixMT2UocixlKSkucmVwbGFjZSgie3t0aW1lfX0iLFRPZShpLGUpKX0sd289e3A6VE9lLFA6QVZ0fX0pO2Z1bmN0aW9uIEpPKHQpe3JldHVybiAkVnQudGVzdCh0KX1mdW5jdGlvbiBlQih0KXtyZXR1cm4gRFZ0LnRlc3QodCl9ZnVuY3Rpb24gcDgodCxlLGEpe2xldCByPU5WdCh0LGUsYSk7aWYoY29uc29sZS53YXJuKHIpLEVWdC5pbmNsdWRlcyh0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihyKX1mdW5jdGlvbiBOVnQodCxlLGEpe2xldCByPXRbMF09PT0iWSI/InllYXJzIjoiZGF5cyBvZiB0aGUgbW9udGgiO3JldHVybmBVc2UgXGAke3QudG9Mb3dlckNhc2UoKX1cYCBpbnN0ZWFkIG9mIFxgJHt0fVxgIChpbiBcYCR7ZX1cYCkgZm9yIGZvcm1hdHRpbmcgJHtyfSB0byB0aGUgaW5wdXQgXGAke2F9XGA7IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZGB9dmFyICRWdCxEVnQsRVZ0LGJaPW4oKCk9PnskVnQ9L15EKyQvLERWdD0vXlkrJC8sRVZ0PVsiRCIsIkREIiwiWVkiLCJZWVlZIl19KTtmdW5jdGlvbiBoOCh0LGUsYSl7bGV0IHI9VXQoKSxpPWE/LmxvY2FsZT8/ci5sb2NhbGU/P0syLG89YT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9hPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5maXJzdFdlZWtDb250YWluc0RhdGU/P3IubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEscz1hPy53ZWVrU3RhcnRzT24/P2E/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxsPWVlKHQsYT8uaW4pO2lmKCFyMihsKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGY9ZS5tYXRjaChJVnQpLm1hcCh1PT57bGV0IGQ9dVswXTtpZihkPT09InAifHxkPT09IlAiKXtsZXQgaD13b1tkXTtyZXR1cm4gaCh1LGkuZm9ybWF0TG9uZyl9cmV0dXJuIHV9KS5qb2luKCIiKS5tYXRjaChQVnQpLm1hcCh1PT57aWYodT09PSInJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6IicifTtsZXQgZD11WzBdO2lmKGQ9PT0iJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6UlZ0KHUpfTtpZih1OFtkXSlyZXR1cm57aXNUb2tlbjohMCx2YWx1ZTp1fTtpZihkLm1hdGNoKEJWdCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitkKyJgIik7cmV0dXJue2lzVG9rZW46ITEsdmFsdWU6dX19KTtpLmxvY2FsaXplLnByZXByb2Nlc3NvciYmKGY9aS5sb2NhbGl6ZS5wcmVwcm9jZXNzb3IobCxmKSk7bGV0IGM9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpvLHdlZWtTdGFydHNPbjpzLGxvY2FsZTppfTtyZXR1cm4gZi5tYXAodT0+e2lmKCF1LmlzVG9rZW4pcmV0dXJuIHUudmFsdWU7bGV0IGQ9dS52YWx1ZTsoIWE/LnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2VucyYmZUIoZCl8fCFhPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZKTyhkKSkmJnA4KGQsZSxTdHJpbmcodCkpO2xldCBoPXU4W2RbMF1dO3JldHVybiBoKGwsZCxpLmxvY2FsaXplLGMpfSkuam9pbigiIil9ZnVuY3Rpb24gUlZ0KHQpe2xldCBlPXQubWF0Y2goRlZ0KTtyZXR1cm4gZT9lWzFdLnJlcGxhY2UoT1Z0LCInIik6dH12YXIgUFZ0LElWdCxGVnQsT1Z0LEJWdCx6TTEsdlo9bigoKT0+e09zKCk7eDIoKTtDT2UoKTt4WigpO2JaKCk7Y2koKTtNZSgpO1BWdD0vW3lZUXFNTHdJZERlY2loSEtrbXNdb3woXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLElWdD0vUCtwK3xQK3xwK3wnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxGVnQ9L14nKFteXSo/KSc/JC8sT1Z0PS8nJy9nLEJWdD0vW2EtekEtWl0vO3pNMT1oOH0pO2Z1bmN0aW9uIHRCKHQsZSxhKXtsZXQgcj1VdCgpLGk9YT8ubG9jYWxlPz9yLmxvY2FsZT8/SzIsbz0yNTIwLHM9YjIodCxlKTtpZihpc05hTihzKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGw9T2JqZWN0LmFzc2lnbih7fSxhLHthZGRTdWZmaXg6YT8uYWRkU3VmZml4LGNvbXBhcmlzb246c30pLFtmLGNdPVllKGE/LmluLC4uLnM+MD9bZSx0XTpbdCxlXSksdT1DcihjLGYpLGQ9KGIxKGMpLWIxKGYpKS8xZTMsaD1NYXRoLnJvdW5kKCh1LWQpLzYwKSxnO2lmKGg8MilyZXR1cm4gYT8uaW5jbHVkZVNlY29uZHM/dTw1P2kuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDUsbCk6dTwxMD9pLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwxMCxsKTp1PDIwP2kuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDIwLGwpOnU8NDA/aS5mb3JtYXREaXN0YW5jZSgiaGFsZkFNaW51dGUiLDAsbCk6dTw2MD9pLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLGwpOmkuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIiwxLGwpOmg9PT0wP2kuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWE1pbnV0ZXMiLDEsbCk6aS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgsbCk7aWYoaDw0NSlyZXR1cm4gaS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgsbCk7aWYoaDw5MClyZXR1cm4gaS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLDEsbCk7aWYoaDwkYyl7bGV0IGI9TWF0aC5yb3VuZChoLzYwKTtyZXR1cm4gaS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLGIsbCl9ZWxzZXtpZihoPG8pcmV0dXJuIGkuZm9ybWF0RGlzdGFuY2UoInhEYXlzIiwxLGwpO2lmKGg8dW8pe2xldCBiPU1hdGgucm91bmQoaC8kYyk7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2UoInhEYXlzIixiLGwpfWVsc2UgaWYoaDx1byoyKXJldHVybiBnPU1hdGgucm91bmQoaC91byksaS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYTW9udGhzIixnLGwpfWlmKGc9Ym8oYyxmKSxnPDEyKXtsZXQgYj1NYXRoLnJvdW5kKGgvdW8pO3JldHVybiBpLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIixiLGwpfWVsc2V7bGV0IGI9ZyUxMix4PU1hdGgudHJ1bmMoZy8xMik7cmV0dXJuIGI8Mz9pLmZvcm1hdERpc3RhbmNlKCJhYm91dFhZZWFycyIseCxsKTpiPDk/aS5mb3JtYXREaXN0YW5jZSgib3ZlclhZZWFycyIseCxsKTppLmZvcm1hdERpc3RhbmNlKCJhbG1vc3RYWWVhcnMiLHgrMSxsKX19dmFyIEVNMSx5Wj1uKCgpPT57T3MoKTt4MigpO25pKCk7WHQoKTtFcygpO2d0KCk7bDgoKTtjOCgpO0VNMT10Qn0pO2Z1bmN0aW9uIGFCKHQsZSxhKXtsZXQgcj1VdCgpLGk9YT8ubG9jYWxlPz9yLmxvY2FsZT8/SzIsbz1iMih0LGUpO2lmKGlzTmFOKG8pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcz1PYmplY3QuYXNzaWduKHt9LGEse2FkZFN1ZmZpeDphPy5hZGRTdWZmaXgsY29tcGFyaXNvbjpvfSksW2wsZl09WWUoYT8uaW4sLi4ubz4wP1tlLHRdOlt0LGVdKSxjPXYyKGE/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiKSx1PWYuZ2V0VGltZSgpLWwuZ2V0VGltZSgpLGQ9dS9nMixoPWIxKGYpLWIxKGwpLGc9KHUtaCkvZzIsYj1hPy51bml0LHg7aWYoYj94PWI6ZDwxP3g9InNlY29uZCI6ZDw2MD94PSJtaW51dGUiOmQ8JGM/eD0iaG91ciI6Zzx1bz94PSJkYXkiOmc8Vlk/eD0ibW9udGgiOng9InllYXIiLHg9PT0ic2Vjb25kIil7bGV0IG09Yyh1LzFlMyk7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2UoInhTZWNvbmRzIixtLHMpfWVsc2UgaWYoeD09PSJtaW51dGUiKXtsZXQgbT1jKGQpO3JldHVybiBpLmZvcm1hdERpc3RhbmNlKCJ4TWludXRlcyIsbSxzKX1lbHNlIGlmKHg9PT0iaG91ciIpe2xldCBtPWMoZC82MCk7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2UoInhIb3VycyIsbSxzKX1lbHNlIGlmKHg9PT0iZGF5Iil7bGV0IG09YyhnLyRjKTtyZXR1cm4gaS5mb3JtYXREaXN0YW5jZSgieERheXMiLG0scyl9ZWxzZSBpZih4PT09Im1vbnRoIil7bGV0IG09YyhnL3VvKTtyZXR1cm4gbT09PTEyJiZiIT09Im1vbnRoIj9pLmZvcm1hdERpc3RhbmNlKCJ4WWVhcnMiLDEscyk6aS5mb3JtYXREaXN0YW5jZSgieE1vbnRocyIsbSxzKX1lbHNle2xldCBtPWMoZy9WWSk7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2UoInhZZWFycyIsbSxzKX19dmFyIHFNMSx3Wj1uKCgpPT57T3MoKTt4MigpO2RpKCk7bmkoKTtYdCgpO0VzKCk7Z3QoKTtxTTE9YUJ9KTtmdW5jdGlvbiBfT2UodCxlKXtyZXR1cm4gdEIodCx5dCh0KSxlKX12YXIgV00xLEFPZT1uKCgpPT57TzEoKTt5WigpO1dNMT1fT2V9KTtmdW5jdGlvbiAkT2UodCxlKXtyZXR1cm4gYUIodCx5dCh0KSxlKX12YXIgWE0xLERPZT1uKCgpPT57TzEoKTt3WigpO1hNMT0kT2V9KTtmdW5jdGlvbiBFT2UodCxlKXtsZXQgYT1VdCgpLHI9ZT8ubG9jYWxlPz9hLmxvY2FsZT8/SzIsaT1lPy5mb3JtYXQ/P0hWdCxvPWU/Lnplcm8/PyExLHM9ZT8uZGVsaW1pdGVyPz8iICI7cmV0dXJuIHIuZm9ybWF0RGlzdGFuY2U/aS5yZWR1Y2UoKGYsYyk9PntsZXQgdT1geCR7Yy5yZXBsYWNlKC8oXi4pLyxoPT5oLnRvVXBwZXJDYXNlKCkpfWAsZD10W2NdO3JldHVybiBkIT09dm9pZCAwJiYob3x8dFtjXSk/Zi5jb25jYXQoci5mb3JtYXREaXN0YW5jZSh1LGQpKTpmfSxbXSkuam9pbihzKToiIn12YXIgSFZ0LGV6MSxOT2U9bigoKT0+e09zKCk7eDIoKTtIVnQ9WyJ5ZWFycyIsIm1vbnRocyIsIndlZWtzIiwiZGF5cyIsImhvdXJzIiwibWludXRlcyIsInNlY29uZHMiXTtlejE9RU9lfSk7ZnVuY3Rpb24gUE9lKHQsZSl7bGV0IGE9ZWUodCxlPy5pbik7aWYoaXNOYU4oK2EpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcj1lPy5mb3JtYXQ/PyJleHRlbmRlZCIsaT1lPy5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixvPSIiLHM9IiIsbD1yPT09ImV4dGVuZGVkIj8iLSI6IiIsZj1yPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYoaSE9PSJ0aW1lIil7bGV0IGM9VWUoYS5nZXREYXRlKCksMiksdT1VZShhLmdldE1vbnRoKCkrMSwyKTtvPWAke1VlKGEuZ2V0RnVsbFllYXIoKSw0KX0ke2x9JHt1fSR7bH0ke2N9YH1pZihpIT09ImRhdGUiKXtsZXQgYz1hLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoYyE9PTApe2xldCB4PU1hdGguYWJzKGMpLG09VWUoTWF0aC50cnVuYyh4LzYwKSwyKSx2PVVlKHglNjAsMik7cz1gJHtjPDA/IisiOiItIn0ke219OiR7dn1gfWVsc2Ugcz0iWiI7bGV0IHU9VWUoYS5nZXRIb3VycygpLDIpLGQ9VWUoYS5nZXRNaW51dGVzKCksMiksaD1VZShhLmdldFNlY29uZHMoKSwyKSxnPW89PT0iIj8iIjoiVCIsYj1bdSxkLGhdLmpvaW4oZik7bz1gJHtvfSR7Z30ke2J9JHtzfWB9cmV0dXJuIG99dmFyIGl6MSxJT2U9bigoKT0+e1JzKCk7TWUoKTtpejE9UE9lfSk7ZnVuY3Rpb24gRk9lKHQsZSl7bGV0IGE9ZWUodCxlPy5pbik7aWYoIXIyKGEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcj1lPy5mb3JtYXQ/PyJleHRlbmRlZCIsaT1lPy5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixvPSIiLHM9cj09PSJleHRlbmRlZCI/Ii0iOiIiLGw9cj09PSJleHRlbmRlZCI/IjoiOiIiO2lmKGkhPT0idGltZSIpe2xldCBmPVVlKGEuZ2V0RGF0ZSgpLDIpLGM9VWUoYS5nZXRNb250aCgpKzEsMik7bz1gJHtVZShhLmdldEZ1bGxZZWFyKCksNCl9JHtzfSR7Y30ke3N9JHtmfWB9aWYoaSE9PSJkYXRlIil7bGV0IGY9VWUoYS5nZXRIb3VycygpLDIpLGM9VWUoYS5nZXRNaW51dGVzKCksMiksdT1VZShhLmdldFNlY29uZHMoKSwyKTtvPWAke299JHtvPT09IiI/IiI6IiAifSR7Zn0ke2x9JHtjfSR7bH0ke3V9YH1yZXR1cm4gb312YXIgY3oxLE9PZT1uKCgpPT57UnMoKTtjaSgpO01lKCk7Y3oxPUZPZX0pO2Z1bmN0aW9uIEJPZSh0KXtsZXR7eWVhcnM6ZT0wLG1vbnRoczphPTAsZGF5czpyPTAsaG91cnM6aT0wLG1pbnV0ZXM6bz0wLHNlY29uZHM6cz0wfT10O3JldHVybmBQJHtlfVkke2F9TSR7cn1EVCR7aX1IJHtvfU0ke3N9U2B9dmFyIGZ6MSxST2U9bigoKT0+e2Z6MT1CT2V9KTtmdW5jdGlvbiBIT2UodCxlKXtsZXQgYT1lZSh0LGU/LmluKTtpZighcjIoYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCByPWU/LmZyYWN0aW9uRGlnaXRzPz8wLGk9VWUoYS5nZXREYXRlKCksMiksbz1VZShhLmdldE1vbnRoKCkrMSwyKSxzPWEuZ2V0RnVsbFllYXIoKSxsPVVlKGEuZ2V0SG91cnMoKSwyKSxmPVVlKGEuZ2V0TWludXRlcygpLDIpLGM9VWUoYS5nZXRTZWNvbmRzKCksMiksdT0iIjtpZihyPjApe2xldCBnPWEuZ2V0TWlsbGlzZWNvbmRzKCksYj1NYXRoLnRydW5jKGcqTWF0aC5wb3coMTAsci0zKSk7dT0iLiIrVWUoYixyKX1sZXQgZD0iIixoPWEuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihoIT09MCl7bGV0IGc9TWF0aC5hYnMoaCksYj1VZShNYXRoLnRydW5jKGcvNjApLDIpLHg9VWUoZyU2MCwyKTtkPWAke2g8MD8iKyI6Ii0ifSR7Yn06JHt4fWB9ZWxzZSBkPSJaIjtyZXR1cm5gJHtzfS0ke299LSR7aX1UJHtsfToke2Z9OiR7Y30ke3V9JHtkfWB9dmFyIGd6MSxxT2U9bigoKT0+e1JzKCk7Y2koKTtNZSgpO2d6MT1IT2V9KTtmdW5jdGlvbiBWT2UodCl7bGV0IGU9ZWUodCk7aWYoIXIyKGUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYT1xVnRbZS5nZXRVVENEYXkoKV0scj1VZShlLmdldFVUQ0RhdGUoKSwyKSxpPVZWdFtlLmdldFVUQ01vbnRoKCldLG89ZS5nZXRVVENGdWxsWWVhcigpLHM9VWUoZS5nZXRVVENIb3VycygpLDIpLGw9VWUoZS5nZXRVVENNaW51dGVzKCksMiksZj1VZShlLmdldFVUQ1NlY29uZHMoKSwyKTtyZXR1cm5gJHthfSwgJHtyfSAke2l9ICR7b30gJHtzfToke2x9OiR7Zn0gR01UYH12YXIgcVZ0LFZWdCx3ejEsVU9lPW4oKCk9PntScygpO2NpKCk7TWUoKTtxVnQ9WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxWVnQ9WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXTt3ejE9Vk9lfSk7ZnVuY3Rpb24gak9lKHQsZSxhKXtsZXRbcixpXT1ZZShhPy5pbix0LGUpLG89VXQoKSxzPWE/LmxvY2FsZT8/by5sb2NhbGU/P0syLGw9YT8ud2Vla1N0YXJ0c09uPz9hPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/by53ZWVrU3RhcnRzT24/P28ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsZj1XMShyLGkpO2lmKGlzTmFOKGYpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYztmPC02P2M9Im90aGVyIjpmPC0xP2M9Imxhc3RXZWVrIjpmPDA/Yz0ieWVzdGVyZGF5IjpmPDE/Yz0idG9kYXkiOmY8Mj9jPSJ0b21vcnJvdyI6Zjw3P2M9Im5leHRXZWVrIjpjPSJvdGhlciI7bGV0IHU9cy5mb3JtYXRSZWxhdGl2ZShjLHIsaSx7bG9jYWxlOnMsd2Vla1N0YXJ0c09uOmx9KTtyZXR1cm4gaDgocix1LHtsb2NhbGU6cyx3ZWVrU3RhcnRzT246bH0pfXZhciBUejEsV09lPW4oKCk9PntPcygpO3gyKCk7WHQoKTtsaSgpO3ZaKCk7VHoxPWpPZX0pO2Z1bmN0aW9uIEdPZSh0LGUpe3JldHVybiBlZSh0KjFlMyxlPy5pbil9dmFyICR6MSxZT2U9bigoKT0+e01lKCk7JHoxPUdPZX0pO2Z1bmN0aW9uIHJCKHQsZSl7cmV0dXJuIGVlKHQsZT8uaW4pLmdldERhdGUoKX12YXIgTnoxLE1aPW4oKCk9PntNZSgpO056MT1yQn0pO2Z1bmN0aW9uIE1vKHQsZSl7cmV0dXJuIGVlKHQsZT8uaW4pLmdldERheSgpfXZhciBGejEsbTg9bigoKT0+e01lKCk7RnoxPU1vfSk7ZnVuY3Rpb24gaUIodCxlKXtsZXQgYT1lZSh0LGU/LmluKSxyPWEuZ2V0RnVsbFllYXIoKSxpPWEuZ2V0TW9udGgoKSxvPXdlKGEsMCk7cmV0dXJuIG8uc2V0RnVsbFllYXIocixpKzEsMCksby5zZXRIb3VycygwLDAsMCwwKSxvLmdldERhdGUoKX12YXIgSHoxLHpaPW4oKCk9PntLZSgpO01lKCk7SHoxPWlCfSk7ZnVuY3Rpb24gb0IodCxlKXtsZXQgcj1lZSh0LGU/LmluKS5nZXRGdWxsWWVhcigpO3JldHVybiByJTQwMD09PTB8fHIlND09PTAmJnIlMTAwIT09MH12YXIgVXoxLGtaPW4oKCk9PntNZSgpO1V6MT1vQn0pO2Z1bmN0aW9uIFpPZSh0LGUpe2xldCBhPWVlKHQsZT8uaW4pO3JldHVybiBOdW1iZXIuaXNOYU4oK2EpP05hTjpvQihhKT8zNjY6MzY1fXZhciBZejEsWE9lPW4oKCk9PntrWigpO01lKCk7WXoxPVpPZX0pO2Z1bmN0aW9uIFFPZSh0LGUpe2xldCByPWVlKHQsZT8uaW4pLmdldEZ1bGxZZWFyKCk7cmV0dXJuIE1hdGguZmxvb3Ioci8xMCkqMTB9dmFyIFF6MSxLT2U9bigoKT0+e01lKCk7UXoxPVFPZX0pO2Z1bmN0aW9uIHNCKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sVXQoKSl9dmFyIGVrMSxTWj1uKCgpPT57eDIoKTtlazE9c0J9KTtmdW5jdGlvbiBKT2UodCxlKXtyZXR1cm4gZWUodCxlPy5pbikuZ2V0SG91cnMoKX12YXIgcmsxLGVCZT1uKCgpPT57TWUoKTtyazE9Sk9lfSk7ZnVuY3Rpb24gbkIodCxlKXtsZXQgYT1lZSh0LGU/LmluKS5nZXREYXkoKTtyZXR1cm4gYT09PTA/NzphfXZhciBzazEsQ1o9bigoKT0+e01lKCk7c2sxPW5CfSk7ZnVuY3Rpb24gdEJlKHQsZSl7bGV0IGE9b2EodCxlKSxpPStvYShnbyhhLDYwKSktK2E7cmV0dXJuIE1hdGgucm91bmQoaS92cil9dmFyIGZrMSxhQmU9bigoKT0+e3M4KCk7Z3QoKTtOYygpO2ZrMT10QmV9KTtmdW5jdGlvbiByQmUodCl7cmV0dXJuIGVlKHQpLmdldE1pbGxpc2Vjb25kcygpfXZhciBoazEsaUJlPW4oKCk9PntNZSgpO2hrMT1yQmV9KTtmdW5jdGlvbiBvQmUodCxlKXtyZXR1cm4gZWUodCxlPy5pbikuZ2V0TWludXRlcygpfXZhciB4azEsc0JlPW4oKCk9PntNZSgpO3hrMT1vQmV9KTtmdW5jdGlvbiBuQmUodCxlKXtyZXR1cm4gZWUodCxlPy5pbikuZ2V0TW9udGgoKX12YXIgeWsxLGxCZT1uKCgpPT57TWUoKTt5azE9bkJlfSk7ZnVuY3Rpb24gY0JlKHQsZSl7bGV0W2Escl09WytlZSh0LnN0YXJ0KSwrZWUodC5lbmQpXS5zb3J0KChkLGgpPT5kLWgpLFtpLG9dPVsrZWUoZS5zdGFydCksK2VlKGUuZW5kKV0uc29ydCgoZCxoKT0+ZC1oKTtpZighKGE8byYmaTxyKSlyZXR1cm4gMDtsZXQgbD1pPGE/YTppLGY9bC1iMShsKSxjPW8+cj9yOm8sdT1jLWIxKGMpO3JldHVybiBNYXRoLmNlaWwoKHUtZikvZE8pfXZhciBTazEsZEJlPW4oKCk9PntuaSgpO2d0KCk7TWUoKTtTazE9Y0JlfSk7ZnVuY3Rpb24gZkJlKHQpe3JldHVybiBlZSh0KS5nZXRTZWNvbmRzKCl9dmFyIFRrMSx1QmU9bigoKT0+e01lKCk7VGsxPWZCZX0pO2Z1bmN0aW9uIHBCZSh0KXtyZXR1cm4rZWUodCl9dmFyICRrMSxoQmU9bigoKT0+e01lKCk7JGsxPXBCZX0pO2Z1bmN0aW9uIG1CZSh0KXtyZXR1cm4gTWF0aC50cnVuYygrZWUodCkvMWUzKX12YXIgTmsxLGdCZT1uKCgpPT57TWUoKTtOazE9bUJlfSk7ZnVuY3Rpb24geEJlKHQsZSl7bGV0IGE9VXQoKSxyPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2Eud2Vla1N0YXJ0c09uPz9hLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGk9ckIoZWUodCxlPy5pbikpO2lmKGlzTmFOKGkpKXJldHVybiBOYU47bGV0IG89TW8odm8odCxlKSkscz1yLW87czw9MCYmKHMrPTcpO2xldCBsPWktcztyZXR1cm4gTWF0aC5jZWlsKGwvNykrMX12YXIgSGsxLGJCZT1uKCgpPT57eDIoKTtNWigpO204KCk7ZDgoKTtNZSgpO0hrMT14QmV9KTtmdW5jdGlvbiBsQih0LGUpe2xldCBhPWVlKHQsZT8uaW4pLHI9YS5nZXRNb250aCgpO3JldHVybiBhLnNldEZ1bGxZZWFyKGEuZ2V0RnVsbFllYXIoKSxyKzEsMCksYS5zZXRIb3VycygwLDAsMCwwKSxlZShhLGU/LmluKX12YXIgVWsxLExaPW4oKCk9PntNZSgpO1VrMT1sQn0pO2Z1bmN0aW9uIHZCZSh0LGUpe2xldCBhPWVlKHQsZT8uaW4pO3JldHVybiBQcyhsQihhLGUpLHZvKGEsZSksZSkrMX12YXIgWGsxLHlCZT1uKCgpPT57JE8oKTtMWigpO2Q4KCk7TWUoKTtYazE9dkJlfSk7ZnVuY3Rpb24gd0JlKHQsZSl7cmV0dXJuIGVlKHQsZT8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIEprMSxNQmU9bigoKT0+e01lKCk7SmsxPXdCZX0pO2Z1bmN0aW9uIHpCZSh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KmlhKX12YXIgYVMxLGtCZT1uKCgpPT57Z3QoKTthUzE9ekJlfSk7ZnVuY3Rpb24gU0JlKHQpe3JldHVybiBNYXRoLnRydW5jKHQqZk8pfXZhciBvUzEsQ0JlPW4oKCk9PntndCgpO29TMT1TQmV9KTtmdW5jdGlvbiBMQmUodCl7cmV0dXJuIE1hdGgudHJ1bmModCpEcyl9dmFyIGxTMSxUQmU9bigoKT0+e2d0KCk7bFMxPUxCZX0pO2Z1bmN0aW9uIF9CZSh0LGUsYSl7bGV0W3IsaV09WWUoYT8uaW4sdCxlKTtpZihpc05hTigrcikpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3RhcnQgZGF0ZSBpcyBpbnZhbGlkIik7aWYoaXNOYU4oK2kpKXRocm93IG5ldyBUeXBlRXJyb3IoIkVuZCBkYXRlIGlzIGludmFsaWQiKTtpZihhPy5hc3NlcnRQb3NpdGl2ZSYmK3I+K2kpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgbXVzdCBiZSBhZnRlciBzdGFydCBkYXRlIik7cmV0dXJue3N0YXJ0OnIsZW5kOml9fXZhciBmUzEsQUJlPW4oKCk9PntYdCgpO2ZTMT1fQmV9KTtmdW5jdGlvbiAkQmUodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6cn09RzEoZT8uaW4sdCksaT17fSxvPUhPKHIsYSk7byYmKGkueWVhcnM9byk7bGV0IHM9cG8oYSx7eWVhcnM6aS55ZWFyc30pLGw9Ym8ocixzKTtsJiYoaS5tb250aHM9bCk7bGV0IGY9cG8ocyx7bW9udGhzOmkubW9udGhzfSksYz1CYyhyLGYpO2MmJihpLmRheXM9Yyk7bGV0IHU9cG8oZix7ZGF5czppLmRheXN9KSxkPUlzKHIsdSk7ZCYmKGkuaG91cnM9ZCk7bGV0IGg9cG8odSx7aG91cnM6aS5ob3Vyc30pLGc9RnMocixoKTtnJiYoaS5taW51dGVzPWcpO2xldCBiPXBvKGgse21pbnV0ZXM6aS5taW51dGVzfSkseD1DcihyLGIpO3JldHVybiB4JiYoaS5zZWNvbmRzPXgpLGl9dmFyIHdTMSxEQmU9bigoKT0+e0xyKCk7R1koKTtFTygpO05PKCk7Rk8oKTtsOCgpO2M4KCk7ZlooKTt3UzE9JEJlfSk7ZnVuY3Rpb24gRUJlKHQsZSxhKXtsZXQgcjtyZXR1cm4gVVZ0KGUpP3I9ZTphPWUsbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoYT8ubG9jYWxlLHIpLmZvcm1hdChlZSh0KSl9ZnVuY3Rpb24gVVZ0KHQpe3JldHVybiB0IT09dm9pZCAwJiYhKCJsb2NhbGUiaW4gdCl9dmFyIGtTMSxOQmU9bigoKT0+e01lKCk7a1MxPUVCZX0pO2Z1bmN0aW9uIFBCZSh0LGUsYSl7bGV0IHI9MCxpLFtvLHNdPVllKGE/LmluLHQsZSk7aWYoYT8udW5pdClpPWE/LnVuaXQsaT09PSJzZWNvbmQiP3I9Q3IobyxzKTppPT09Im1pbnV0ZSI/cj1GcyhvLHMpOmk9PT0iaG91ciI/cj1JcyhvLHMpOmk9PT0iZGF5Ij9yPVcxKG8scyk6aT09PSJ3ZWVrIj9yPVBzKG8scyk6aT09PSJtb250aCI/cj1OcyhvLHMpOmk9PT0icXVhcnRlciI/cj1PYyhvLHMpOmk9PT0ieWVhciImJihyPXhvKG8scykpO2Vsc2V7bGV0IGY9Q3IobyxzKTtNYXRoLmFicyhmKTxEYz8ocj1DcihvLHMpLGk9InNlY29uZCIpOk1hdGguYWJzKGYpPERzPyhyPUZzKG8scyksaT0ibWludXRlIik6TWF0aC5hYnMoZik8bE8mJk1hdGguYWJzKFcxKG8scykpPDE/KHI9SXMobyxzKSxpPSJob3VyIik6TWF0aC5hYnMoZik8dEZlJiYocj1XMShvLHMpKSYmTWF0aC5hYnMocik8Nz9pPSJkYXkiOk1hdGguYWJzKGYpPGpZPyhyPVBzKG8scyksaT0id2VlayIpOk1hdGguYWJzKGYpPGFGZT8ocj1OcyhvLHMpLGk9Im1vbnRoIik6TWF0aC5hYnMoZik8VVk/T2MobyxzKTw0PyhyPU9jKG8scyksaT0icXVhcnRlciIpOihyPXhvKG8scyksaT0ieWVhciIpOihyPXhvKG8scyksaT0ieWVhciIpfXJldHVybiBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQoYT8ubG9jYWxlLHtudW1lcmljOiJhdXRvIiwuLi5hfSkuZm9ybWF0KHIsaSl9dmFyIElTMSxJQmU9bigoKT0+e1h0KCk7Z3QoKTtsaSgpO0FPKCk7bFooKTskTygpO0RPKCk7Tk8oKTtGTygpO2M4KCk7SVMxPVBCZX0pO2Z1bmN0aW9uIEZCZSh0LGUpe3JldHVybitlZSh0KT4rZWUoZSl9dmFyIEJTMSxPQmU9bigoKT0+e01lKCk7QlMxPUZCZX0pO2Z1bmN0aW9uIEJCZSh0LGUpe3JldHVybitlZSh0KTwrZWUoZSl9dmFyIHFTMSxSQmU9bigoKT0+e01lKCk7cVMxPUJCZX0pO2Z1bmN0aW9uIEhCZSh0LGUpe3JldHVybitlZSh0KT09K2VlKGUpfXZhciBqUzEscUJlPW4oKCk9PntNZSgpO2pTMT1IQmV9KTtmdW5jdGlvbiBWQmUodCxlLGEpe2xldCByPW5ldyBEYXRlKHQsZSxhKTtyZXR1cm4gci5nZXRGdWxsWWVhcigpPT09dCYmci5nZXRNb250aCgpPT09ZSYmci5nZXREYXRlKCk9PT1hfXZhciBHUzEsVUJlPW4oKCk9PntHUzE9VkJlfSk7ZnVuY3Rpb24gakJlKHQsZSl7cmV0dXJuIGVlKHQsZT8uaW4pLmdldERhdGUoKT09PTF9dmFyIFhTMSxXQmU9bigoKT0+e01lKCk7WFMxPWpCZX0pO2Z1bmN0aW9uIEdCZSh0LGUpe3JldHVybiBlZSh0LGU/LmluKS5nZXREYXkoKT09PTV9dmFyIEpTMSxZQmU9bigoKT0+e01lKCk7SlMxPUdCZX0pO2Z1bmN0aW9uIFpCZSh0KXtyZXR1cm4rZWUodCk+RGF0ZS5ub3coKX12YXIgYUMxLFhCZT1uKCgpPT57TWUoKTthQzE9WkJlfSk7ZnVuY3Rpb24gY0IodCxlKXtsZXQgYT1qVnQoZSk/bmV3IGUoMCk6d2UoZSwwKTtyZXR1cm4gYS5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpLHQuZ2V0RGF0ZSgpKSxhLnNldEhvdXJzKHQuZ2V0SG91cnMoKSx0LmdldE1pbnV0ZXMoKSx0LmdldFNlY29uZHMoKSx0LmdldE1pbGxpc2Vjb25kcygpKSxhfWZ1bmN0aW9uIGpWdCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiImJnQucHJvdG90eXBlPy5jb25zdHJ1Y3Rvcj09PXR9dmFyIG9DMSxUWj1uKCgpPT57S2UoKTtvQzE9Y0J9KTt2YXIgV1Z0LGRCLGZCLHVCLF9aPW4oKCk9PntLZSgpO1RaKCk7V1Z0PTEwLGRCPWNsYXNze3N1YlByaW9yaXR5PTA7dmFsaWRhdGUoZSxhKXtyZXR1cm4hMH19LGZCPWNsYXNzIGV4dGVuZHMgZEJ7Y29uc3RydWN0b3IoZSxhLHIsaSxvKXtzdXBlcigpLHRoaXMudmFsdWU9ZSx0aGlzLnZhbGlkYXRlVmFsdWU9YSx0aGlzLnNldFZhbHVlPXIsdGhpcy5wcmlvcml0eT1pLG8mJih0aGlzLnN1YlByaW9yaXR5PW8pfXZhbGlkYXRlKGUsYSl7cmV0dXJuIHRoaXMudmFsaWRhdGVWYWx1ZShlLHRoaXMudmFsdWUsYSl9c2V0KGUsYSxyKXtyZXR1cm4gdGhpcy5zZXRWYWx1ZShlLGEsdGhpcy52YWx1ZSxyKX19LHVCPWNsYXNzIGV4dGVuZHMgZEJ7cHJpb3JpdHk9V1Z0O3N1YlByaW9yaXR5PS0xO2NvbnN0cnVjdG9yKGUsYSl7c3VwZXIoKSx0aGlzLmNvbnRleHQ9ZXx8KHI9PndlKGEscikpfXNldChlLGEpe3JldHVybiBhLnRpbWVzdGFtcElzU2V0P2U6d2UoZSxjQihlLHRoaXMuY29udGV4dCkpfX19KTt2YXIgcWUsSXQ9bigoKT0+e19aKCk7cWU9Y2xhc3N7cnVuKGUsYSxyLGkpe2xldCBvPXRoaXMucGFyc2UoZSxhLHIsaSk7cmV0dXJuIG8/e3NldHRlcjpuZXcgZkIoby52YWx1ZSx0aGlzLnZhbGlkYXRlLHRoaXMuc2V0LHRoaXMucHJpb3JpdHksdGhpcy5zdWJQcmlvcml0eSkscmVzdDpvLnJlc3R9Om51bGx9dmFsaWRhdGUoZSxhLHIpe3JldHVybiEwfX19KTt2YXIgcEIsUUJlPW4oKCk9PntJdCgpO3BCPWNsYXNzIGV4dGVuZHMgcWV7cHJpb3JpdHk9MTQwO3BhcnNlKGUsYSxyKXtzd2l0Y2goYSl7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6cmV0dXJuIHIuZXJhKGUse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KXx8ci5lcmEoZSx7d2lkdGg6Im5hcnJvdyJ9KTtjYXNlIkdHR0dHIjpyZXR1cm4gci5lcmEoZSx7d2lkdGg6Im5hcnJvdyJ9KTtkZWZhdWx0OnJldHVybiByLmVyYShlLHt3aWR0aDoid2lkZSJ9KXx8ci5lcmEoZSx7d2lkdGg6ImFiYnJldmlhdGVkIn0pfHxyLmVyYShlLHt3aWR0aDoibmFycm93In0pfX1zZXQoZSxhLHIpe3JldHVybiBhLmVyYT1yLGUuc2V0RnVsbFllYXIociwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJSIiwidSIsInQiLCJUIl19fSk7dmFyIEV0LHphLHkyPW4oKCk9PntFdD17bW9udGg6L14oMVswLTJdfDA/XGQpLyxkYXRlOi9eKDNbMC0xXXxbMC0yXT9cZCkvLGRheU9mWWVhcjovXigzNlswLTZdfDNbMC01XVxkfFswLTJdP1xkP1xkKS8sd2VlazovXig1WzAtM118WzAtNF0/XGQpLyxob3VyMjNoOi9eKDJbMC0zXXxbMC0xXT9cZCkvLGhvdXIyNGg6L14oMlswLTRdfFswLTFdP1xkKS8saG91cjExaDovXigxWzAtMV18MD9cZCkvLGhvdXIxMmg6L14oMVswLTJdfDA/XGQpLyxtaW51dGU6L15bMC01XT9cZC8sc2Vjb25kOi9eWzAtNV0/XGQvLHNpbmdsZURpZ2l0Oi9eXGQvLHR3b0RpZ2l0czovXlxkezEsMn0vLHRocmVlRGlnaXRzOi9eXGR7MSwzfS8sZm91ckRpZ2l0czovXlxkezEsNH0vLGFueURpZ2l0c1NpZ25lZDovXi0/XGQrLyxzaW5nbGVEaWdpdFNpZ25lZDovXi0/XGQvLHR3b0RpZ2l0c1NpZ25lZDovXi0/XGR7MSwyfS8sdGhyZWVEaWdpdHNTaWduZWQ6L14tP1xkezEsM30vLGZvdXJEaWdpdHNTaWduZWQ6L14tP1xkezEsNH0vfSx6YT17YmFzaWNPcHRpb25hbE1pbnV0ZXM6L14oWystXSkoXGR7Mn0pKFxkezJ9KT98Wi8sYmFzaWM6L14oWystXSkoXGR7Mn0pKFxkezJ9KXxaLyxiYXNpY09wdGlvbmFsU2Vjb25kczovXihbKy1dKShcZHsyfSkoXGR7Mn0pKChcZHsyfSkpP3xaLyxleHRlbmRlZDovXihbKy1dKShcZHsyfSk6KFxkezJ9KXxaLyxleHRlbmRlZE9wdGlvbmFsU2Vjb25kczovXihbKy1dKShcZHsyfSk6KFxkezJ9KSg6KFxkezJ9KSk/fFovfX0pO2Z1bmN0aW9uIFF0KHQsZSl7cmV0dXJuIHQmJnt2YWx1ZTplKHQudmFsdWUpLHJlc3Q6dC5yZXN0fX1mdW5jdGlvbiBfdCh0LGUpe2xldCBhPWUubWF0Y2godCk7cmV0dXJuIGE/e3ZhbHVlOnBhcnNlSW50KGFbMF0sMTApLHJlc3Q6ZS5zbGljZShhWzBdLmxlbmd0aCl9Om51bGx9ZnVuY3Rpb24ga2EodCxlKXtsZXQgYT1lLm1hdGNoKHQpO2lmKCFhKXJldHVybiBudWxsO2lmKGFbMF09PT0iWiIpcmV0dXJue3ZhbHVlOjAscmVzdDplLnNsaWNlKDEpfTtsZXQgcj1hWzFdPT09IisiPzE6LTEsaT1hWzJdP3BhcnNlSW50KGFbMl0sMTApOjAsbz1hWzNdP3BhcnNlSW50KGFbM10sMTApOjAscz1hWzVdP3BhcnNlSW50KGFbNV0sMTApOjA7cmV0dXJue3ZhbHVlOnIqKGkqaWErbypnMitzKkFjKSxyZXN0OmUuc2xpY2UoYVswXS5sZW5ndGgpfX1mdW5jdGlvbiBoQih0KXtyZXR1cm4gX3QoRXQuYW55RGlnaXRzU2lnbmVkLHQpfWZ1bmN0aW9uIHB0KHQsZSl7c3dpdGNoKHQpe2Nhc2UgMTpyZXR1cm4gX3QoRXQuc2luZ2xlRGlnaXQsZSk7Y2FzZSAyOnJldHVybiBfdChFdC50d29EaWdpdHMsZSk7Y2FzZSAzOnJldHVybiBfdChFdC50aHJlZURpZ2l0cyxlKTtjYXNlIDQ6cmV0dXJuIF90KEV0LmZvdXJEaWdpdHMsZSk7ZGVmYXVsdDpyZXR1cm4gX3QobmV3IFJlZ0V4cCgiXlxcZHsxLCIrdCsifSIpLGUpfX1mdW5jdGlvbiBYYyh0LGUpe3N3aXRjaCh0KXtjYXNlIDE6cmV0dXJuIF90KEV0LnNpbmdsZURpZ2l0U2lnbmVkLGUpO2Nhc2UgMjpyZXR1cm4gX3QoRXQudHdvRGlnaXRzU2lnbmVkLGUpO2Nhc2UgMzpyZXR1cm4gX3QoRXQudGhyZWVEaWdpdHNTaWduZWQsZSk7Y2FzZSA0OnJldHVybiBfdChFdC5mb3VyRGlnaXRzU2lnbmVkLGUpO2RlZmF1bHQ6cmV0dXJuIF90KG5ldyBSZWdFeHAoIl4tP1xcZHsxLCIrdCsifSIpLGUpfX1mdW5jdGlvbiBRYyh0KXtzd2l0Y2godCl7Y2FzZSJtb3JuaW5nIjpyZXR1cm4gNDtjYXNlImV2ZW5pbmciOnJldHVybiAxNztjYXNlInBtIjpjYXNlIm5vb24iOmNhc2UiYWZ0ZXJub29uIjpyZXR1cm4gMTI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gbUIodCxlKXtsZXQgYT1lPjAscj1hP2U6MS1lLGk7aWYocjw9NTApaT10fHwxMDA7ZWxzZXtsZXQgbz1yKzUwLHM9TWF0aC50cnVuYyhvLzEwMCkqMTAwLGw9dD49byUxMDA7aT10K3MtKGw/MTAwOjApfXJldHVybiBhP2k6MS1pfWZ1bmN0aW9uIGdCKHQpe3JldHVybiB0JTQwMD09PTB8fHQlND09PTAmJnQlMTAwIT09MH12YXIganQ9bigoKT0+e2d0KCk7eTIoKX0pO3ZhciB4QixLQmU9bigoKT0+e0l0KCk7anQoKTt4Qj1jbGFzcyBleHRlbmRzIHFle3ByaW9yaXR5PTEzMDtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInUiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl07cGFyc2UoZSxhLHIpe2xldCBpPW89Pih7eWVhcjpvLGlzVHdvRGlnaXRZZWFyOmE9PT0ieXkifSk7c3dpdGNoKGEpe2Nhc2UieSI6cmV0dXJuIFF0KHB0KDQsZSksaSk7Y2FzZSJ5byI6cmV0dXJuIFF0KHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJ5ZWFyIn0pLGkpO2RlZmF1bHQ6cmV0dXJuIFF0KHB0KGEubGVuZ3RoLGUpLGkpfX12YWxpZGF0ZShlLGEpe3JldHVybiBhLmlzVHdvRGlnaXRZZWFyfHxhLnllYXI+MH1zZXQoZSxhLHIpe2xldCBpPWUuZ2V0RnVsbFllYXIoKTtpZihyLmlzVHdvRGlnaXRZZWFyKXtsZXQgcz1tQihyLnllYXIsaSk7cmV0dXJuIGUuc2V0RnVsbFllYXIocywwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1sZXQgbz0hKCJlcmEiaW4gYSl8fGEuZXJhPT09MT9yLnllYXI6MS1yLnllYXI7cmV0dXJuIGUuc2V0RnVsbFllYXIobywwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyIGJCLEpCZT1uKCgpPT57ZjgoKTtVYSgpO0l0KCk7anQoKTtiQj1jbGFzcyBleHRlbmRzIHFle3ByaW9yaXR5PTEzMDtwYXJzZShlLGEscil7bGV0IGk9bz0+KHt5ZWFyOm8saXNUd29EaWdpdFllYXI6YT09PSJZWSJ9KTtzd2l0Y2goYSl7Y2FzZSJZIjpyZXR1cm4gUXQocHQoNCxlKSxpKTtjYXNlIllvIjpyZXR1cm4gUXQoci5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InllYXIifSksaSk7ZGVmYXVsdDpyZXR1cm4gUXQocHQoYS5sZW5ndGgsZSksaSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGEuaXNUd29EaWdpdFllYXJ8fGEueWVhcj4wfXNldChlLGEscixpKXtsZXQgbz15byhlLGkpO2lmKHIuaXNUd29EaWdpdFllYXIpe2xldCBsPW1CKHIueWVhcixvKTtyZXR1cm4gZS5zZXRGdWxsWWVhcihsLDAsaS5maXJzdFdlZWtDb250YWluc0RhdGUpLGUuc2V0SG91cnMoMCwwLDAsMCksYTEoZSxpKX1sZXQgcz0hKCJlcmEiaW4gYSl8fGEuZXJhPT09MT9yLnllYXI6MS1yLnllYXI7cmV0dXJuIGUuc2V0RnVsbFllYXIocywwLGkuZmlyc3RXZWVrQ29udGFpbnNEYXRlKSxlLnNldEhvdXJzKDAsMCwwLDApLGExKGUsaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwiUSIsInEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO3ZhciB2QixlUmU9bigoKT0+e3pyKCk7S2UoKTtJdCgpO2p0KCk7dkI9Y2xhc3MgZXh0ZW5kcyBxZXtwcmlvcml0eT0xMzA7cGFyc2UoZSxhKXtyZXR1cm4gYT09PSJSIj9YYyg0LGUpOlhjKGEubGVuZ3RoLGUpfXNldChlLGEscil7bGV0IGk9d2UoZSwwKTtyZXR1cm4gaS5zZXRGdWxsWWVhcihyLDAsNCksaS5zZXRIb3VycygwLDAsMCwwKSxBMShpKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJ1IiwiUSIsInEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgeUIsdFJlPW4oKCk9PntJdCgpO2p0KCk7eUI9Y2xhc3MgZXh0ZW5kcyBxZXtwcmlvcml0eT0xMzA7cGFyc2UoZSxhKXtyZXR1cm4gYT09PSJ1Ij9YYyg0LGUpOlhjKGEubGVuZ3RoLGUpfXNldChlLGEscil7cmV0dXJuIGUuc2V0RnVsbFllYXIociwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJSIiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciB3QixhUmU9bigoKT0+e0l0KCk7anQoKTt3Qj1jbGFzcyBleHRlbmRzIHFle3ByaW9yaXR5PTEyMDtwYXJzZShlLGEscil7c3dpdGNoKGEpe2Nhc2UiUSI6Y2FzZSJRUSI6cmV0dXJuIHB0KGEubGVuZ3RoLGUpO2Nhc2UiUW8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIHIucXVhcnRlcihlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiByLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLnF1YXJ0ZXIoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIucXVhcnRlcihlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZShlLGEpe3JldHVybiBhPj0xJiZhPD00fXNldChlLGEscil7cmV0dXJuIGUuc2V0TW9udGgoKHItMSkqMywxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgTUIsclJlPW4oKCk9PntJdCgpO2p0KCk7TUI9Y2xhc3MgZXh0ZW5kcyBxZXtwcmlvcml0eT0xMjA7cGFyc2UoZSxhLHIpe3N3aXRjaChhKXtjYXNlInEiOmNhc2UicXEiOnJldHVybiBwdChhLmxlbmd0aCxlKTtjYXNlInFvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiByLnF1YXJ0ZXIoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxyLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlInFxcXFxIjpyZXR1cm4gci5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gci5xdWFydGVyKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxyLnF1YXJ0ZXIoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxyLnF1YXJ0ZXIoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MSYmYTw9NH1zZXQoZSxhLHIpe3JldHVybiBlLnNldE1vbnRoKChyLTEpKjMsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIHpCLGlSZT1uKCgpPT57eTIoKTtJdCgpO2p0KCk7ekI9Y2xhc3MgZXh0ZW5kcyBxZXtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTCIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl07cHJpb3JpdHk9MTEwO3BhcnNlKGUsYSxyKXtsZXQgaT1vPT5vLTE7c3dpdGNoKGEpe2Nhc2UiTSI6cmV0dXJuIFF0KF90KEV0Lm1vbnRoLGUpLGkpO2Nhc2UiTU0iOnJldHVybiBRdChwdCgyLGUpLGkpO2Nhc2UiTW8iOnJldHVybiBRdChyLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoibW9udGgifSksaSk7Y2FzZSJNTU0iOnJldHVybiByLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiByLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5tb250aChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5tb250aChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MCYmYTw9MTF9c2V0KGUsYSxyKXtyZXR1cm4gZS5zZXRNb250aChyLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyIGtCLG9SZT1uKCgpPT57eTIoKTtJdCgpO2p0KCk7a0I9Y2xhc3MgZXh0ZW5kcyBxZXtwcmlvcml0eT0xMTA7cGFyc2UoZSxhLHIpe2xldCBpPW89Pm8tMTtzd2l0Y2goYSl7Y2FzZSJMIjpyZXR1cm4gUXQoX3QoRXQubW9udGgsZSksaSk7Y2FzZSJMTCI6cmV0dXJuIFF0KHB0KDIsZSksaSk7Y2FzZSJMbyI6cmV0dXJuIFF0KHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJtb250aCJ9KSxpKTtjYXNlIkxMTCI6cmV0dXJuIHIubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxyLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIHIubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLm1vbnRoKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxyLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8ci5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZShlLGEpe3JldHVybiBhPj0wJiZhPD0xMX1zZXQoZSxhLHIpe3JldHVybiBlLnNldE1vbnRoKHIsMSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJNIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiBTQih0LGUsYSl7bGV0IHI9ZWUodCxhPy5pbiksaT1ZYyhyLGEpLWU7cmV0dXJuIHIuc2V0RGF0ZShyLmdldERhdGUoKS1pKjcpLGVlKHIsYT8uaW4pfXZhciBYQzEsQVo9bigoKT0+e0tPKCk7TWUoKTtYQzE9U0J9KTt2YXIgQ0Isc1JlPW4oKCk9PntBWigpO1VhKCk7eTIoKTtJdCgpO2p0KCk7Q0I9Y2xhc3MgZXh0ZW5kcyBxZXtwcmlvcml0eT0xMDA7cGFyc2UoZSxhLHIpe3N3aXRjaChhKXtjYXNlInciOnJldHVybiBfdChFdC53ZWVrLGUpO2Nhc2Uid28iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoid2VlayJ9KTtkZWZhdWx0OnJldHVybiBwdChhLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MSYmYTw9NTN9c2V0KGUsYSxyLGkpe3JldHVybiBhMShTQihlLHIsaSksaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIExCKHQsZSxhKXtsZXQgcj1lZSh0LGE/LmluKSxpPUdjKHIsYSktZTtyZXR1cm4gci5zZXREYXRlKHIuZ2V0RGF0ZSgpLWkqNykscn12YXIgc0wxLCRaPW4oKCk9PntYTygpO01lKCk7c0wxPUxCfSk7dmFyIFRCLG5SZT1uKCgpPT57JFooKTt6cigpO3kyKCk7SXQoKTtqdCgpO1RCPWNsYXNzIGV4dGVuZHMgcWV7cHJpb3JpdHk9MTAwO3BhcnNlKGUsYSxyKXtzd2l0Y2goYSl7Y2FzZSJJIjpyZXR1cm4gX3QoRXQud2VlayxlKTtjYXNlIklvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6IndlZWsifSk7ZGVmYXVsdDpyZXR1cm4gcHQoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTEmJmE8PTUzfXNldChlLGEscil7cmV0dXJuIEExKExCKGUscikpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIEdWdCxZVnQsX0IsbFJlPW4oKCk9Pnt5MigpO0l0KCk7anQoKTtHVnQ9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxZVnQ9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxfQj1jbGFzcyBleHRlbmRzIHFle3ByaW9yaXR5PTkwO3N1YlByaW9yaXR5PTE7cGFyc2UoZSxhLHIpe3N3aXRjaChhKXtjYXNlImQiOnJldHVybiBfdChFdC5kYXRlLGUpO2Nhc2UiZG8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBwdChhLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxhKXtsZXQgcj1lLmdldEZ1bGxZZWFyKCksaT1nQihyKSxvPWUuZ2V0TW9udGgoKTtyZXR1cm4gaT9hPj0xJiZhPD1ZVnRbb106YT49MSYmYTw9R1Z0W29dfXNldChlLGEscil7cmV0dXJuIGUuc2V0RGF0ZShyKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIEFCLGNSZT1uKCgpPT57eTIoKTtJdCgpO2p0KCk7QUI9Y2xhc3MgZXh0ZW5kcyBxZXtwcmlvcml0eT05MDtzdWJwcmlvcml0eT0xO3BhcnNlKGUsYSxyKXtzd2l0Y2goYSl7Y2FzZSJEIjpjYXNlIkREIjpyZXR1cm4gX3QoRXQuZGF5T2ZZZWFyLGUpO2Nhc2UiRG8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBwdChhLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxhKXtsZXQgcj1lLmdldEZ1bGxZZWFyKCk7cmV0dXJuIGdCKHIpP2E+PTEmJmE8PTM2NjphPj0xJiZhPD0zNjV9c2V0KGUsYSxyKXtyZXR1cm4gZS5zZXRNb250aCgwLHIpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJFIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiB6byh0LGUsYSl7bGV0IHI9VXQoKSxpPWE/LndlZWtTdGFydHNPbj8/YT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG89ZWUodCxhPy5pbikscz1vLmdldERheSgpLGY9KGUlNys3KSU3LGM9Ny1pLHU9ZTwwfHxlPjY/ZS0ocytjKSU3OihmK2MpJTctKHMrYyklNztyZXR1cm4gRjEobyx1LGEpfXZhciBTTDEsZzg9bigoKT0+e3gyKCk7eXIoKTtNZSgpO1NMMT16b30pO3ZhciAkQixkUmU9bigoKT0+e2c4KCk7SXQoKTskQj1jbGFzcyBleHRlbmRzIHFle3ByaW9yaXR5PTkwO3BhcnNlKGUsYSxyKXtzd2l0Y2goYSl7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIHIuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiByLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gci5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MCYmYTw9Nn1zZXQoZSxhLHIsaSl7cmV0dXJuIGU9em8oZSxyLGkpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgREIsZlJlPW4oKCk9PntnOCgpO0l0KCk7anQoKTtEQj1jbGFzcyBleHRlbmRzIHFle3ByaW9yaXR5PTkwO3BhcnNlKGUsYSxyLGkpe2xldCBvPXM9PntsZXQgbD1NYXRoLmZsb29yKChzLTEpLzcpKjc7cmV0dXJuKHMraS53ZWVrU3RhcnRzT24rNiklNytsfTtzd2l0Y2goYSl7Y2FzZSJlIjpjYXNlImVlIjpyZXR1cm4gUXQocHQoYS5sZW5ndGgsZSksbyk7Y2FzZSJlbyI6cmV0dXJuIFF0KHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXkifSksbyk7Y2FzZSJlZWUiOnJldHVybiByLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlIjpyZXR1cm4gci5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlZSI6cmV0dXJuIHIuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheShlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTZ9c2V0KGUsYSxyLGkpe3JldHVybiBlPXpvKGUscixpKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsIkUiLCJpIiwiYyIsInQiLCJUIl19fSk7dmFyIEVCLHVSZT1uKCgpPT57ZzgoKTtJdCgpO2p0KCk7RUI9Y2xhc3MgZXh0ZW5kcyBxZXtwcmlvcml0eT05MDtwYXJzZShlLGEscixpKXtsZXQgbz1zPT57bGV0IGw9TWF0aC5mbG9vcigocy0xKS83KSo3O3JldHVybihzK2kud2Vla1N0YXJ0c09uKzYpJTcrbH07c3dpdGNoKGEpe2Nhc2UiYyI6Y2FzZSJjYyI6cmV0dXJuIFF0KHB0KGEubGVuZ3RoLGUpLG8pO2Nhc2UiY28iOnJldHVybiBRdChyLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF5In0pLG8pO2Nhc2UiY2NjIjpyZXR1cm4gci5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxyLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjYyI6cmV0dXJuIHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjY2MiOnJldHVybiByLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fHIuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8ci5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxyLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZShlLGEpe3JldHVybiBhPj0wJiZhPD02fXNldChlLGEscixpKXtyZXR1cm4gZT16byhlLHIsaSksZS5zZXRIb3VycygwLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJFIiwiaSIsImUiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIE5CKHQsZSxhKXtsZXQgcj1lZSh0LGE/LmluKSxpPW5CKHIsYSksbz1lLWk7cmV0dXJuIEYxKHIsbyxhKX12YXIgSEwxLERaPW4oKCk9Pnt5cigpO0NaKCk7TWUoKTtITDE9TkJ9KTt2YXIgUEIscFJlPW4oKCk9PntEWigpO0l0KCk7anQoKTtQQj1jbGFzcyBleHRlbmRzIHFle3ByaW9yaXR5PTkwO3BhcnNlKGUsYSxyKXtsZXQgaT1vPT5vPT09MD83Om87c3dpdGNoKGEpe2Nhc2UiaSI6Y2FzZSJpaSI6cmV0dXJuIHB0KGEubGVuZ3RoLGUpO2Nhc2UiaW8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gUXQoci5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksaSk7Y2FzZSJpaWlpaSI6cmV0dXJuIFF0KHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksaSk7Y2FzZSJpaWlpaWkiOnJldHVybiBRdChyLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksaSk7ZGVmYXVsdDpyZXR1cm4gUXQoci5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8ci5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLGkpfX12YWxpZGF0ZShlLGEpe3JldHVybiBhPj0xJiZhPD03fXNldChlLGEscil7cmV0dXJuIGU9TkIoZSxyKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsIkUiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIElCLGhSZT1uKCgpPT57SXQoKTtqdCgpO0lCPWNsYXNzIGV4dGVuZHMgcWV7cHJpb3JpdHk9ODA7cGFyc2UoZSxhLHIpe3N3aXRjaChhKXtjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjpyZXR1cm4gci5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhYWEiOnJldHVybiByLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldChlLGEscil7cmV0dXJuIGUuc2V0SG91cnMoUWMociksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYiIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIEZCLG1SZT1uKCgpPT57SXQoKTtqdCgpO0ZCPWNsYXNzIGV4dGVuZHMgcWV7cHJpb3JpdHk9ODA7cGFyc2UoZSxhLHIpe3N3aXRjaChhKXtjYXNlImIiOmNhc2UiYmIiOmNhc2UiYmJiIjpyZXR1cm4gci5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYmJiYmIiOnJldHVybiByLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldChlLGEscil7cmV0dXJuIGUuc2V0SG91cnMoUWMociksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIE9CLGdSZT1uKCgpPT57SXQoKTtqdCgpO09CPWNsYXNzIGV4dGVuZHMgcWV7cHJpb3JpdHk9ODA7cGFyc2UoZSxhLHIpe3N3aXRjaChhKXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gci5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiByLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxyLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fHIuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldChlLGEscil7cmV0dXJuIGUuc2V0SG91cnMoUWMociksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJ0IiwiVCJdfX0pO3ZhciBCQix4UmU9bigoKT0+e3kyKCk7SXQoKTtqdCgpO0JCPWNsYXNzIGV4dGVuZHMgcWV7cHJpb3JpdHk9NzA7cGFyc2UoZSxhLHIpe3N3aXRjaChhKXtjYXNlImgiOnJldHVybiBfdChFdC5ob3VyMTJoLGUpO2Nhc2UiaG8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBwdChhLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MSYmYTw9MTJ9c2V0KGUsYSxyKXtsZXQgaT1lLmdldEhvdXJzKCk+PTEyO3JldHVybiBpJiZyPDEyP2Uuc2V0SG91cnMocisxMiwwLDAsMCk6IWkmJnI9PT0xMj9lLnNldEhvdXJzKDAsMCwwLDApOmUuc2V0SG91cnMociwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJIIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBSQixiUmU9bigoKT0+e3kyKCk7SXQoKTtqdCgpO1JCPWNsYXNzIGV4dGVuZHMgcWV7cHJpb3JpdHk9NzA7cGFyc2UoZSxhLHIpe3N3aXRjaChhKXtjYXNlIkgiOnJldHVybiBfdChFdC5ob3VyMjNoLGUpO2Nhc2UiSG8iOnJldHVybiByLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBwdChhLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MCYmYTw9MjN9c2V0KGUsYSxyKXtyZXR1cm4gZS5zZXRIb3VycyhyLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwiaCIsIksiLCJrIiwidCIsIlQiXX19KTt2YXIgSEIsdlJlPW4oKCk9Pnt5MigpO0l0KCk7anQoKTtIQj1jbGFzcyBleHRlbmRzIHFle3ByaW9yaXR5PTcwO3BhcnNlKGUsYSxyKXtzd2l0Y2goYSl7Y2FzZSJLIjpyZXR1cm4gX3QoRXQuaG91cjExaCxlKTtjYXNlIktvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gcHQoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTExfXNldChlLGEscil7cmV0dXJuIGUuZ2V0SG91cnMoKT49MTImJnI8MTI/ZS5zZXRIb3VycyhyKzEyLDAsMCwwKTplLnNldEhvdXJzKHIsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiaCIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgcUIseVJlPW4oKCk9Pnt5MigpO0l0KCk7anQoKTtxQj1jbGFzcyBleHRlbmRzIHFle3ByaW9yaXR5PTcwO3BhcnNlKGUsYSxyKXtzd2l0Y2goYSl7Y2FzZSJrIjpyZXR1cm4gX3QoRXQuaG91cjI0aCxlKTtjYXNlImtvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gcHQoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTEmJmE8PTI0fXNldChlLGEscil7bGV0IGk9cjw9MjQ/ciUyNDpyO3JldHVybiBlLnNldEhvdXJzKGksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSCIsIksiLCJ0IiwiVCJdfX0pO3ZhciBWQix3UmU9bigoKT0+e3kyKCk7SXQoKTtqdCgpO1ZCPWNsYXNzIGV4dGVuZHMgcWV7cHJpb3JpdHk9NjA7cGFyc2UoZSxhLHIpe3N3aXRjaChhKXtjYXNlIm0iOnJldHVybiBfdChFdC5taW51dGUsZSk7Y2FzZSJtbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJtaW51dGUifSk7ZGVmYXVsdDpyZXR1cm4gcHQoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTU5fXNldChlLGEscil7cmV0dXJuIGUuc2V0TWludXRlcyhyLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCJdfX0pO3ZhciBVQixNUmU9bigoKT0+e3kyKCk7SXQoKTtqdCgpO1VCPWNsYXNzIGV4dGVuZHMgcWV7cHJpb3JpdHk9NTA7cGFyc2UoZSxhLHIpe3N3aXRjaChhKXtjYXNlInMiOnJldHVybiBfdChFdC5zZWNvbmQsZSk7Y2FzZSJzbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihlLHt1bml0OiJzZWNvbmQifSk7ZGVmYXVsdDpyZXR1cm4gcHQoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTU5fXNldChlLGEscil7cmV0dXJuIGUuc2V0U2Vjb25kcyhyLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgakIselJlPW4oKCk9PntJdCgpO2p0KCk7akI9Y2xhc3MgZXh0ZW5kcyBxZXtwcmlvcml0eT0zMDtwYXJzZShlLGEpe2xldCByPWk9Pk1hdGgudHJ1bmMoaSpNYXRoLnBvdygxMCwtYS5sZW5ndGgrMykpO3JldHVybiBRdChwdChhLmxlbmd0aCxlKSxyKX1zZXQoZSxhLHIpe3JldHVybiBlLnNldE1pbGxpc2Vjb25kcyhyKSxlfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIFdCLGtSZT1uKCgpPT57S2UoKTtuaSgpO3kyKCk7SXQoKTtqdCgpO1dCPWNsYXNzIGV4dGVuZHMgcWV7cHJpb3JpdHk9MTA7cGFyc2UoZSxhKXtzd2l0Y2goYSl7Y2FzZSJYIjpyZXR1cm4ga2EoemEuYmFzaWNPcHRpb25hbE1pbnV0ZXMsZSk7Y2FzZSJYWCI6cmV0dXJuIGthKHphLmJhc2ljLGUpO2Nhc2UiWFhYWCI6cmV0dXJuIGthKHphLmJhc2ljT3B0aW9uYWxTZWNvbmRzLGUpO2Nhc2UiWFhYWFgiOnJldHVybiBrYSh6YS5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyxlKTtkZWZhdWx0OnJldHVybiBrYSh6YS5leHRlbmRlZCxlKX19c2V0KGUsYSxyKXtyZXR1cm4gYS50aW1lc3RhbXBJc1NldD9lOndlKGUsZS5nZXRUaW1lKCktYjEoZSktcil9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJ4Il19fSk7dmFyIEdCLFNSZT1uKCgpPT57S2UoKTtuaSgpO3kyKCk7SXQoKTtqdCgpO0dCPWNsYXNzIGV4dGVuZHMgcWV7cHJpb3JpdHk9MTA7cGFyc2UoZSxhKXtzd2l0Y2goYSl7Y2FzZSJ4IjpyZXR1cm4ga2EoemEuYmFzaWNPcHRpb25hbE1pbnV0ZXMsZSk7Y2FzZSJ4eCI6cmV0dXJuIGthKHphLmJhc2ljLGUpO2Nhc2UieHh4eCI6cmV0dXJuIGthKHphLmJhc2ljT3B0aW9uYWxTZWNvbmRzLGUpO2Nhc2UieHh4eHgiOnJldHVybiBrYSh6YS5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyxlKTtkZWZhdWx0OnJldHVybiBrYSh6YS5leHRlbmRlZCxlKX19c2V0KGUsYSxyKXtyZXR1cm4gYS50aW1lc3RhbXBJc1NldD9lOndlKGUsZS5nZXRUaW1lKCktYjEoZSktcil9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJYIl19fSk7dmFyIFlCLENSZT1uKCgpPT57S2UoKTtJdCgpO2p0KCk7WUI9Y2xhc3MgZXh0ZW5kcyBxZXtwcmlvcml0eT00MDtwYXJzZShlKXtyZXR1cm4gaEIoZSl9c2V0KGUsYSxyKXtyZXR1cm5bd2UoZSxyKjFlMykse3RpbWVzdGFtcElzU2V0OiEwfV19aW5jb21wYXRpYmxlVG9rZW5zPSIqIn19KTt2YXIgWkIsTFJlPW4oKCk9PntLZSgpO0l0KCk7anQoKTtaQj1jbGFzcyBleHRlbmRzIHFle3ByaW9yaXR5PTIwO3BhcnNlKGUpe3JldHVybiBoQihlKX1zZXQoZSxhLHIpe3JldHVyblt3ZShlLHIpLHt0aW1lc3RhbXBJc1NldDohMH1dfWluY29tcGF0aWJsZVRva2Vucz0iKiJ9fSk7dmFyIFhCLFRSZT1uKCgpPT57UUJlKCk7S0JlKCk7SkJlKCk7ZVJlKCk7dFJlKCk7YVJlKCk7clJlKCk7aVJlKCk7b1JlKCk7c1JlKCk7blJlKCk7bFJlKCk7Y1JlKCk7ZFJlKCk7ZlJlKCk7dVJlKCk7cFJlKCk7aFJlKCk7bVJlKCk7Z1JlKCk7eFJlKCk7YlJlKCk7dlJlKCk7eVJlKCk7d1JlKCk7TVJlKCk7elJlKCk7a1JlKCk7U1JlKCk7Q1JlKCk7TFJlKCk7WEI9e0c6bmV3IHBCLHk6bmV3IHhCLFk6bmV3IGJCLFI6bmV3IHZCLHU6bmV3IHlCLFE6bmV3IHdCLHE6bmV3IE1CLE06bmV3IHpCLEw6bmV3IGtCLHc6bmV3IENCLEk6bmV3IFRCLGQ6bmV3IF9CLEQ6bmV3IEFCLEU6bmV3ICRCLGU6bmV3IERCLGM6bmV3IEVCLGk6bmV3IFBCLGE6bmV3IElCLGI6bmV3IEZCLEI6bmV3IE9CLGg6bmV3IEJCLEg6bmV3IFJCLEs6bmV3IEhCLGs6bmV3IHFCLG06bmV3IFZCLHM6bmV3IFVCLFM6bmV3IGpCLFg6bmV3IFdCLHg6bmV3IEdCLHQ6bmV3IFlCLFQ6bmV3IFpCfX0pO2Z1bmN0aW9uIFFCKHQsZSxhLHIpe2xldCBpPSgpPT53ZShyPy5pbnx8YSxOYU4pLG89c0IoKSxzPXI/LmxvY2FsZT8/by5sb2NhbGU/P0syLGw9cj8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/by5maXJzdFdlZWtDb250YWluc0RhdGU/P28ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsZj1yPy53ZWVrU3RhcnRzT24/P3I/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9vLndlZWtTdGFydHNPbj8/by5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MDtpZighZSlyZXR1cm4gdD9pKCk6ZWUoYSxyPy5pbik7bGV0IGM9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpsLHdlZWtTdGFydHNPbjpmLGxvY2FsZTpzfSx1PVtuZXcgdUIocj8uaW4sYSldLGQ9ZS5tYXRjaChYVnQpLm1hcChtPT57bGV0IHY9bVswXTtpZih2IGluIHdvKXtsZXQgeT13b1t2XTtyZXR1cm4geShtLHMuZm9ybWF0TG9uZyl9cmV0dXJuIG19KS5qb2luKCIiKS5tYXRjaChaVnQpLGg9W107Zm9yKGxldCBtIG9mIGQpeyFyPy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnMmJmVCKG0pJiZwOChtLGUsdCksIXI/LnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnMmJkpPKG0pJiZwOChtLGUsdCk7bGV0IHY9bVswXSx5PVhCW3ZdO2lmKHkpe2xldHtpbmNvbXBhdGlibGVUb2tlbnM6d309eTtpZihBcnJheS5pc0FycmF5KHcpKXtsZXQgQz1oLmZpbmQoej0+dy5pbmNsdWRlcyh6LnRva2VuKXx8ei50b2tlbj09PXYpO2lmKEMpdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcYCR7Qy5mdWxsVG9rZW59XGAgYW5kIFxgJHttfVxgIGF0IHRoZSBzYW1lIHRpbWVgKX1lbHNlIGlmKHkuaW5jb21wYXRpYmxlVG9rZW5zPT09IioiJiZoLmxlbmd0aD4wKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke219XGAgYW5kIGFueSBvdGhlciB0b2tlbiBhdCB0aGUgc2FtZSB0aW1lYCk7aC5wdXNoKHt0b2tlbjp2LGZ1bGxUb2tlbjptfSk7bGV0IEU9eS5ydW4odCxtLHMubWF0Y2gsYyk7aWYoIUUpcmV0dXJuIGkoKTt1LnB1c2goRS5zZXR0ZXIpLHQ9RS5yZXN0fWVsc2V7aWYodi5tYXRjaChlVXQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIrdisiYCIpO2lmKG09PT0iJyciP209IiciOnY9PT0iJyImJihtPXRVdChtKSksdC5pbmRleE9mKG0pPT09MCl0PXQuc2xpY2UobS5sZW5ndGgpO2Vsc2UgcmV0dXJuIGkoKX19aWYodC5sZW5ndGg+MCYmSlZ0LnRlc3QodCkpcmV0dXJuIGkoKTtsZXQgZz11Lm1hcChtPT5tLnByaW9yaXR5KS5zb3J0KChtLHYpPT52LW0pLmZpbHRlcigobSx2LHkpPT55LmluZGV4T2YobSk9PT12KS5tYXAobT0+dS5maWx0ZXIodj0+di5wcmlvcml0eT09PW0pLnNvcnQoKHYseSk9Pnkuc3ViUHJpb3JpdHktdi5zdWJQcmlvcml0eSkpLm1hcChtPT5tWzBdKSxiPWVlKGEscj8uaW4pO2lmKGlzTmFOKCtiKSlyZXR1cm4gaSgpO2xldCB4PXt9O2ZvcihsZXQgbSBvZiBnKXtpZighbS52YWxpZGF0ZShiLGMpKXJldHVybiBpKCk7bGV0IHY9bS5zZXQoYix4LGMpO0FycmF5LmlzQXJyYXkodik/KGI9dlswXSxPYmplY3QuYXNzaWduKHgsdlsxXSkpOmI9dn1yZXR1cm4gYn1mdW5jdGlvbiB0VXQodCl7cmV0dXJuIHQubWF0Y2goUVZ0KVsxXS5yZXBsYWNlKEtWdCwiJyIpfXZhciBaVnQsWFZ0LFFWdCxLVnQsSlZ0LGVVdCxQXzEsRVo9bigoKT0+e09zKCk7eFooKTtiWigpO0tlKCk7U1ooKTtNZSgpO19aKCk7VFJlKCk7WlZ0PS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csWFZ0PS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLFFWdD0vXicoW15dKj8pJz8kLyxLVnQ9LycnL2csSlZ0PS9cUy8sZVV0PS9bYS16QS1aXS87UF8xPVFCfSk7ZnVuY3Rpb24gX1JlKHQsZSxhKXtyZXR1cm4gcjIoUUIodCxlLG5ldyBEYXRlLGEpKX12YXIgQl8xLEFSZT1uKCgpPT57Y2koKTtFWigpO0JfMT1fUmV9KTtmdW5jdGlvbiAkUmUodCxlKXtyZXR1cm4gZWUodCxlPy5pbikuZ2V0RGF5KCk9PT0xfXZhciBxXzEsRFJlPW4oKCk9PntNZSgpO3FfMT0kUmV9KTtmdW5jdGlvbiBFUmUodCl7cmV0dXJuK2VlKHQpPERhdGUubm93KCl9dmFyIGpfMSxOUmU9bigoKT0+e01lKCk7al8xPUVSZX0pO2Z1bmN0aW9uIHg4KHQsZSl7bGV0IGE9ZWUodCxlPy5pbik7cmV0dXJuIGEuc2V0TWludXRlcygwLDAsMCksYX12YXIgWV8xLE5aPW4oKCk9PntNZSgpO1lfMT14OH0pO2Z1bmN0aW9uIEtCKHQsZSxhKXtsZXRbcixpXT1ZZShhPy5pbix0LGUpO3JldHVybit4OChyKT09K3g4KGkpfXZhciBLXzEsUFo9bigoKT0+e1h0KCk7TlooKTtLXzE9S0J9KTtmdW5jdGlvbiBLYyh0LGUsYSl7bGV0W3IsaV09WWUoYT8uaW4sdCxlKTtyZXR1cm4rYTEocixhKT09K2ExKGksYSl9dmFyIGFBMSxKQj1uKCgpPT57WHQoKTtVYSgpO2FBMT1LY30pO2Z1bmN0aW9uIGVSKHQsZSxhKXtyZXR1cm4gS2ModCxlLHsuLi5hLHdlZWtTdGFydHNPbjoxfSl9dmFyIG9BMSxJWj1uKCgpPT57SkIoKTtvQTE9ZVJ9KTtmdW5jdGlvbiBQUmUodCxlLGEpe2xldFtyLGldPVllKGE/LmluLHQsZSk7cmV0dXJuK29hKHIpPT0rb2EoaSl9dmFyIGNBMSxJUmU9bigoKT0+e05jKCk7WHQoKTtjQTE9UFJlfSk7ZnVuY3Rpb24gYjgodCxlKXtsZXQgYT1lZSh0LGU/LmluKTtyZXR1cm4gYS5zZXRTZWNvbmRzKDAsMCksYX12YXIgdUExLEZaPW4oKCk9PntNZSgpO3VBMT1iOH0pO2Z1bmN0aW9uIHRSKHQsZSl7cmV0dXJuK2I4KHQpPT0rYjgoZSl9dmFyIG1BMSxPWj1uKCgpPT57RlooKTttQTE9dFJ9KTtmdW5jdGlvbiBhUih0LGUsYSl7bGV0W3IsaV09WWUoYT8uaW4sdCxlKTtyZXR1cm4gci5nZXRGdWxsWWVhcigpPT09aS5nZXRGdWxsWWVhcigpJiZyLmdldE1vbnRoKCk9PT1pLmdldE1vbnRoKCl9dmFyIGJBMSxCWj1uKCgpPT57WHQoKTtiQTE9YVJ9KTtmdW5jdGlvbiByUih0LGUsYSl7bGV0W3IsaV09WWUoYT8uaW4sdCxlKTtyZXR1cm4rVHIocik9PStUcihpKX12YXIgTUExLFJaPW4oKCk9PntYdCgpO1ZPKCk7TUExPXJSfSk7ZnVuY3Rpb24gdjgodCxlKXtsZXQgYT1lZSh0LGU/LmluKTtyZXR1cm4gYS5zZXRNaWxsaXNlY29uZHMoMCksYX12YXIgU0ExLEhaPW4oKCk9PntNZSgpO1NBMT12OH0pO2Z1bmN0aW9uIGlSKHQsZSl7cmV0dXJuK3Y4KHQpPT0rdjgoZSl9dmFyIFRBMSxxWj1uKCgpPT57SFooKTtUQTE9aVJ9KTtmdW5jdGlvbiBvUih0LGUsYSl7bGV0W3IsaV09WWUoYT8uaW4sdCxlKTtyZXR1cm4gci5nZXRGdWxsWWVhcigpPT09aS5nZXRGdWxsWWVhcigpfXZhciAkQTEsVlo9bigoKT0+e1h0KCk7JEExPW9SfSk7ZnVuY3Rpb24gRlJlKHQsZSl7cmV0dXJuIEtCKGVlKHQsZT8uaW4pLHl0KGU/LmlufHx0KSl9dmFyIElBMSxPUmU9bigoKT0+e08xKCk7UFooKTtNZSgpO0lBMT1GUmV9KTtmdW5jdGlvbiBCUmUodCxlKXtyZXR1cm4gZVIod2UoZT8uaW58fHQsdCkseXQoZT8uaW58fHQpKX12YXIgSEExLFJSZT1uKCgpPT57S2UoKTtPMSgpO0laKCk7SEExPUJSZX0pO2Z1bmN0aW9uIEhSZSh0KXtyZXR1cm4gdFIodCx5dCh0KSl9dmFyIGpBMSxxUmU9bigoKT0+e08xKCk7T1ooKTtqQTE9SFJlfSk7ZnVuY3Rpb24gVlJlKHQsZSl7cmV0dXJuIGFSKHdlKGU/LmlufHx0LHQpLHl0KGU/LmlufHx0KSl9dmFyIFhBMSxVUmU9bigoKT0+e0tlKCk7TzEoKTtCWigpO1hBMT1WUmV9KTtmdW5jdGlvbiBqUmUodCxlKXtyZXR1cm4gclIod2UoZT8uaW58fHQsdCkseXQoZT8uaW58fHQpKX12YXIgdCQxLFdSZT1uKCgpPT57S2UoKTtPMSgpO1JaKCk7dCQxPWpSZX0pO2Z1bmN0aW9uIEdSZSh0KXtyZXR1cm4gaVIodCx5dCh0KSl9dmFyIG8kMSxZUmU9bigoKT0+e08xKCk7cVooKTtvJDE9R1JlfSk7ZnVuY3Rpb24gWlJlKHQsZSl7cmV0dXJuIEtjKHdlKGU/LmlufHx0LHQpLHl0KGU/LmlufHx0KSxlKX12YXIgZCQxLFhSZT1uKCgpPT57S2UoKTtPMSgpO0pCKCk7ZCQxPVpSZX0pO2Z1bmN0aW9uIFFSZSh0LGUpe3JldHVybiBvUih3ZShlPy5pbnx8dCx0KSx5dChlPy5pbnx8dCkpfXZhciBtJDEsS1JlPW4oKCk9PntLZSgpO08xKCk7VlooKTttJDE9UVJlfSk7ZnVuY3Rpb24gSlJlKHQsZSl7cmV0dXJuIGVlKHQsZT8uaW4pLmdldERheSgpPT09NH12YXIgYiQxLGVIZT1uKCgpPT57TWUoKTtiJDE9SlJlfSk7ZnVuY3Rpb24gdEhlKHQsZSl7cmV0dXJuIFNyKHdlKGU/LmlufHx0LHQpLHl0KGU/LmlufHx0KSl9dmFyIHokMSxhSGU9bigoKT0+e0tlKCk7TzEoKTtGYygpO3okMT10SGV9KTtmdW5jdGlvbiBySGUodCxlKXtyZXR1cm4gU3IodCxGMSh5dChlPy5pbnx8dCksMSksZSl9dmFyIFQkMSxpSGU9bigoKT0+e3lyKCk7TzEoKTtGYygpO1QkMT1ySGV9KTtmdW5jdGlvbiBvSGUodCxlKXtyZXR1cm4gZWUodCxlPy5pbikuZ2V0RGF5KCk9PT0yfXZhciAkJDEsc0hlPW4oKCk9PntNZSgpOyQkMT1vSGV9KTtmdW5jdGlvbiBuSGUodCxlKXtyZXR1cm4gZWUodCxlPy5pbikuZ2V0RGF5KCk9PT0zfXZhciBOJDEsbEhlPW4oKCk9PntNZSgpO04kMT1uSGV9KTtmdW5jdGlvbiBjSGUodCxlLGEpe2xldCByPStlZSh0LGE/LmluKSxbaSxvXT1bK2VlKGUuc3RhcnQsYT8uaW4pLCtlZShlLmVuZCxhPy5pbildLnNvcnQoKHMsbCk9PnMtbCk7cmV0dXJuIHI+PWkmJnI8PW99dmFyIEYkMSxkSGU9bigoKT0+e01lKCk7RiQxPWNIZX0pO2Z1bmN0aW9uIGtvKHQsZSxhKXtyZXR1cm4gRjEodCwtZSxhKX12YXIgUiQxLHk4PW4oKCk9Pnt5cigpO1IkMT1rb30pO2Z1bmN0aW9uIGZIZSh0LGUpe3JldHVybiBTcih3ZShlPy5pbnx8dCx0KSxrbyh5dChlPy5pbnx8dCksMSkpfXZhciBXJDEsdUhlPW4oKCk9PntLZSgpO08xKCk7RmMoKTt5OCgpO1ckMT1mSGV9KTtmdW5jdGlvbiBwSGUodCxlKXtsZXQgYT1lZSh0LGU/LmluKSxyPWEuZ2V0RnVsbFllYXIoKSxpPTkrTWF0aC5mbG9vcihyLzEwKSoxMDtyZXR1cm4gYS5zZXRGdWxsWWVhcihpKzEsMCwwKSxhLnNldEhvdXJzKDAsMCwwLDApLGVlKGEsZT8uaW4pfXZhciBaJDEsaEhlPW4oKCk9PntNZSgpO1okMT1wSGV9KTtmdW5jdGlvbiBzUih0LGUpe2xldCBhPVV0KCkscj1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9hLndlZWtTdGFydHNPbj8/YS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxpPWVlKHQsZT8uaW4pLG89aS5nZXREYXkoKSxzPShvPHI/LTc6MCkrNi0oby1yKTtyZXR1cm4gaS5zZXRIb3VycygwLDAsMCwwKSxpLnNldERhdGUoaS5nZXREYXRlKCkrcyksaX12YXIgSiQxLFVaPW4oKCk9Pnt4MigpO01lKCk7SiQxPXNSfSk7ZnVuY3Rpb24gbUhlKHQsZSl7cmV0dXJuIHNSKHQsey4uLmUsd2Vla1N0YXJ0c09uOjF9KX12YXIgYUQxLGdIZT1uKCgpPT57VVooKTthRDE9bUhlfSk7ZnVuY3Rpb24geEhlKHQsZSl7bGV0IGE9STIodCxlKSxyPXdlKGU/LmlufHx0LDApO3Iuc2V0RnVsbFllYXIoYSsxLDAsNCksci5zZXRIb3VycygwLDAsMCwwKTtsZXQgaT1BMShyLGUpO3JldHVybiBpLnNldERhdGUoaS5nZXREYXRlKCktMSksaX12YXIgbkQxLGJIZT1uKCgpPT57S2UoKTttbygpO3pyKCk7bkQxPXhIZX0pO2Z1bmN0aW9uIHZIZSh0LGUpe2xldCBhPWVlKHQsZT8uaW4pLHI9YS5nZXRNb250aCgpLGk9ci1yJTMrMztyZXR1cm4gYS5zZXRNb250aChpLDApLGEuc2V0SG91cnMoMCwwLDAsMCksYX12YXIgZEQxLHlIZT1uKCgpPT57TWUoKTtkRDE9dkhlfSk7ZnVuY3Rpb24gd0hlKHQsZSl7bGV0IGE9ZWUodCxlPy5pbikscj1hLmdldEZ1bGxZZWFyKCk7cmV0dXJuIGEuc2V0RnVsbFllYXIocisxLDAsMCksYS5zZXRIb3VycygwLDAsMCwwKSxhfXZhciBwRDEsTUhlPW4oKCk9PntNZSgpO3BEMT13SGV9KTtmdW5jdGlvbiB6SGUodCxlKXtsZXQgYT1lZSh0KTtpZighcjIoYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCByPWUubWF0Y2goYVV0KTtyZXR1cm4gcj9yLm1hcChvPT57aWYobz09PSInJyIpcmV0dXJuIiciO2xldCBzPW9bMF07aWYocz09PSInIilyZXR1cm4gc1V0KG8pO2xldCBsPXNhW3NdO2lmKGwpcmV0dXJuIGwoYSxvKTtpZihzLm1hdGNoKG9VdCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitzKyJgIik7cmV0dXJuIG99KS5qb2luKCIiKToiIn1mdW5jdGlvbiBzVXQodCl7bGV0IGU9dC5tYXRjaChyVXQpO3JldHVybiBlP2VbMV0ucmVwbGFjZShpVXQsIiciKTp0fXZhciBhVXQsclV0LGlVdCxvVXQsYkQxLGtIZT1uKCgpPT57Z1ooKTtjaSgpO01lKCk7YVV0PS8oXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLHJVdD0vXicoW15dKj8pJz8kLyxpVXQ9LycnL2csb1V0PS9bYS16QS1aXS87YkQxPXpIZX0pO2Z1bmN0aW9uIFNIZSh7eWVhcnM6dCxtb250aHM6ZSx3ZWVrczphLGRheXM6cixob3VyczppLG1pbnV0ZXM6byxzZWNvbmRzOnN9KXtsZXQgbD0wO3QmJihsKz10KjM2NS4yNDI1KSxlJiYobCs9ZSooMzY1LjI0MjUvMTIpKSxhJiYobCs9YSo3KSxyJiYobCs9cik7bGV0IGY9bCoyNCo2MCo2MDtyZXR1cm4gaSYmKGYrPWkqNjAqNjApLG8mJihmKz1vKjYwKSxzJiYoZis9cyksTWF0aC50cnVuYyhmKjFlMyl9dmFyIHdEMSxDSGU9bigoKT0+e2d0KCk7d0QxPVNIZX0pO2Z1bmN0aW9uIExIZSh0KXtsZXQgZT10L2lhO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBrRDEsVEhlPW4oKCk9PntndCgpO2tEMT1MSGV9KTtmdW5jdGlvbiBfSGUodCl7bGV0IGU9dC9nMjtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgTEQxLEFIZT1uKCgpPT57Z3QoKTtMRDE9X0hlfSk7ZnVuY3Rpb24gJEhlKHQpe2xldCBlPXQvQWM7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIEFEMSxESGU9bigoKT0+e2d0KCk7QUQxPSRIZX0pO2Z1bmN0aW9uIEVIZSh0KXtsZXQgZT10L2ZPO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBFRDEsTkhlPW4oKCk9PntndCgpO0VEMT1FSGV9KTtmdW5jdGlvbiBQSGUodCl7cmV0dXJuIE1hdGgudHJ1bmModCpnMil9dmFyIElEMSxJSGU9bigoKT0+e2d0KCk7SUQxPVBIZX0pO2Z1bmN0aW9uIEZIZSh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KkRjKX12YXIgQkQxLE9IZT1uKCgpPT57Z3QoKTtCRDE9RkhlfSk7ZnVuY3Rpb24gQkhlKHQpe2xldCBlPXQvdU87cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIHFEMSxSSGU9bigoKT0+e2d0KCk7cUQxPUJIZX0pO2Z1bmN0aW9uIEhIZSh0KXtsZXQgZT10L3BPO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBqRDEscUhlPW4oKCk9PntndCgpO2pEMT1ISGV9KTtmdW5jdGlvbiB3Mih0LGUsYSl7bGV0IHI9ZS1Nbyh0LGEpO3JldHVybiByPD0wJiYocis9NyksRjEodCxyLGEpfXZhciBaRDEsZmk9bigoKT0+e3lyKCk7bTgoKTtaRDE9dzJ9KTtmdW5jdGlvbiBWSGUodCxlKXtyZXR1cm4gdzIodCw1LGUpfXZhciBLRDEsVUhlPW4oKCk9PntmaSgpO0tEMT1WSGV9KTtmdW5jdGlvbiBqSGUodCxlKXtyZXR1cm4gdzIodCwxLGUpfXZhciB0RTEsV0hlPW4oKCk9PntmaSgpO3RFMT1qSGV9KTtmdW5jdGlvbiBHSGUodCxlKXtyZXR1cm4gdzIodCw2LGUpfXZhciBpRTEsWUhlPW4oKCk9PntmaSgpO2lFMT1HSGV9KTtmdW5jdGlvbiBaSGUodCxlKXtyZXR1cm4gdzIodCwwLGUpfXZhciBuRTEsWEhlPW4oKCk9PntmaSgpO25FMT1aSGV9KTtmdW5jdGlvbiBRSGUodCxlKXtyZXR1cm4gdzIodCw0LGUpfXZhciBkRTEsS0hlPW4oKCk9PntmaSgpO2RFMT1RSGV9KTtmdW5jdGlvbiBKSGUodCxlKXtyZXR1cm4gdzIodCwyLGUpfXZhciBwRTEsZXFlPW4oKCk9PntmaSgpO3BFMT1KSGV9KTtmdW5jdGlvbiB0cWUodCxlKXtyZXR1cm4gdzIodCwzLGUpfXZhciBnRTEsYXFlPW4oKCk9PntmaSgpO2dFMT10cWV9KTtmdW5jdGlvbiBpcWUodCxlKXtsZXQgYT0oKT0+d2UoZT8uaW4sTmFOKSxyPWU/LmFkZGl0aW9uYWxEaWdpdHM/PzIsaT1kVXQodCksbztpZihpLmRhdGUpe2xldCBjPWZVdChpLmRhdGUscik7bz11VXQoYy5yZXN0RGF0ZVN0cmluZyxjLnllYXIpfWlmKCFvfHxpc05hTigrbykpcmV0dXJuIGEoKTtsZXQgcz0rbyxsPTAsZjtpZihpLnRpbWUmJihsPXBVdChpLnRpbWUpLGlzTmFOKGwpKSlyZXR1cm4gYSgpO2lmKGkudGltZXpvbmUpe2lmKGY9aFV0KGkudGltZXpvbmUpLGlzTmFOKGYpKXJldHVybiBhKCl9ZWxzZXtsZXQgYz1uZXcgRGF0ZShzK2wpLHU9ZWUoMCxlPy5pbik7cmV0dXJuIHUuc2V0RnVsbFllYXIoYy5nZXRVVENGdWxsWWVhcigpLGMuZ2V0VVRDTW9udGgoKSxjLmdldFVUQ0RhdGUoKSksdS5zZXRIb3VycyhjLmdldFVUQ0hvdXJzKCksYy5nZXRVVENNaW51dGVzKCksYy5nZXRVVENTZWNvbmRzKCksYy5nZXRVVENNaWxsaXNlY29uZHMoKSksdX1yZXR1cm4gZWUocytsK2YsZT8uaW4pfWZ1bmN0aW9uIGRVdCh0KXtsZXQgZT17fSxhPXQuc3BsaXQoblIuZGF0ZVRpbWVEZWxpbWl0ZXIpLHI7aWYoYS5sZW5ndGg+MilyZXR1cm4gZTtpZigvOi8udGVzdChhWzBdKT9yPWFbMF06KGUuZGF0ZT1hWzBdLHI9YVsxXSxuUi50aW1lWm9uZURlbGltaXRlci50ZXN0KGUuZGF0ZSkmJihlLmRhdGU9dC5zcGxpdChuUi50aW1lWm9uZURlbGltaXRlcilbMF0scj10LnN1YnN0cihlLmRhdGUubGVuZ3RoLHQubGVuZ3RoKSkpLHIpe2xldCBpPW5SLnRpbWV6b25lLmV4ZWMocik7aT8oZS50aW1lPXIucmVwbGFjZShpWzFdLCIiKSxlLnRpbWV6b25lPWlbMV0pOmUudGltZT1yfXJldHVybiBlfWZ1bmN0aW9uIGZVdCh0LGUpe2xldCBhPW5ldyBSZWdFeHAoIl4oPzooXFxkezR9fFsrLV1cXGR7IisoNCtlKSsifSl8KFxcZHsyfXxbKy1dXFxkeyIrKDIrZSkrIn0pJCkiKSxyPXQubWF0Y2goYSk7aWYoIXIpcmV0dXJue3llYXI6TmFOLHJlc3REYXRlU3RyaW5nOiIifTtsZXQgaT1yWzFdP3BhcnNlSW50KHJbMV0pOm51bGwsbz1yWzJdP3BhcnNlSW50KHJbMl0pOm51bGw7cmV0dXJue3llYXI6bz09PW51bGw/aTpvKjEwMCxyZXN0RGF0ZVN0cmluZzp0LnNsaWNlKChyWzFdfHxyWzJdKS5sZW5ndGgpfX1mdW5jdGlvbiB1VXQodCxlKXtpZihlPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtsZXQgYT10Lm1hdGNoKG5VdCk7aWYoIWEpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IHI9ISFhWzRdLGk9dzgoYVsxXSksbz13OChhWzJdKS0xLHM9dzgoYVszXSksbD13OChhWzRdKSxmPXc4KGFbNV0pLTE7aWYocilyZXR1cm4gdlV0KGUsbCxmKT9tVXQoZSxsLGYpOm5ldyBEYXRlKE5hTik7e2xldCBjPW5ldyBEYXRlKDApO3JldHVybiF4VXQoZSxvLHMpfHwhYlV0KGUsaSk/bmV3IERhdGUoTmFOKTooYy5zZXRVVENGdWxsWWVhcihlLG8sTWF0aC5tYXgoaSxzKSksYyl9fWZ1bmN0aW9uIHc4KHQpe3JldHVybiB0P3BhcnNlSW50KHQpOjF9ZnVuY3Rpb24gcFV0KHQpe2xldCBlPXQubWF0Y2gobFV0KTtpZighZSlyZXR1cm4gTmFOO2xldCBhPWpaKGVbMV0pLHI9alooZVsyXSksaT1qWihlWzNdKTtyZXR1cm4geVV0KGEscixpKT9hKmlhK3IqZzIraSoxZTM6TmFOfWZ1bmN0aW9uIGpaKHQpe3JldHVybiB0JiZwYXJzZUZsb2F0KHQucmVwbGFjZSgiLCIsIi4iKSl8fDB9ZnVuY3Rpb24gaFV0KHQpe2lmKHQ9PT0iWiIpcmV0dXJuIDA7bGV0IGU9dC5tYXRjaChjVXQpO2lmKCFlKXJldHVybiAwO2xldCBhPWVbMV09PT0iKyI/LTE6MSxyPXBhcnNlSW50KGVbMl0pLGk9ZVszXSYmcGFyc2VJbnQoZVszXSl8fDA7cmV0dXJuIHdVdChyLGkpP2EqKHIqaWEraSpnMik6TmFOfWZ1bmN0aW9uIG1VdCh0LGUsYSl7bGV0IHI9bmV3IERhdGUoMCk7ci5zZXRVVENGdWxsWWVhcih0LDAsNCk7bGV0IGk9ci5nZXRVVENEYXkoKXx8NyxvPShlLTEpKjcrYSsxLWk7cmV0dXJuIHIuc2V0VVRDRGF0ZShyLmdldFVUQ0RhdGUoKStvKSxyfWZ1bmN0aW9uIHJxZSh0KXtyZXR1cm4gdCU0MDA9PT0wfHx0JTQ9PT0wJiZ0JTEwMCE9PTB9ZnVuY3Rpb24geFV0KHQsZSxhKXtyZXR1cm4gZT49MCYmZTw9MTEmJmE+PTEmJmE8PShnVXRbZV18fChycWUodCk/Mjk6MjgpKX1mdW5jdGlvbiBiVXQodCxlKXtyZXR1cm4gZT49MSYmZTw9KHJxZSh0KT8zNjY6MzY1KX1mdW5jdGlvbiB2VXQodCxlLGEpe3JldHVybiBlPj0xJiZlPD01MyYmYT49MCYmYTw9Nn1mdW5jdGlvbiB5VXQodCxlLGEpe3JldHVybiB0PT09MjQ/ZT09PTAmJmE9PT0wOmE+PTAmJmE8NjAmJmU+PTAmJmU8NjAmJnQ+PTAmJnQ8MjV9ZnVuY3Rpb24gd1V0KHQsZSl7cmV0dXJuIGU+PTAmJmU8PTU5fXZhciBuUixuVXQsbFV0LGNVdCxnVXQsd0UxLG9xZT1uKCgpPT57Z3QoKTtLZSgpO01lKCk7blI9e2RhdGVUaW1lRGVsaW1pdGVyOi9bVCBdLyx0aW1lWm9uZURlbGltaXRlcjovW1ogXS9pLHRpbWV6b25lOi8oW1orLV0uKikkL30sblV0PS9eLT8oPzooXGR7M30pfChcZHsyfSkoPzotPyhcZHsyfSkpP3xXKFxkezJ9KSg/Oi0/KFxkezF9KSk/fCkkLyxsVXQ9L14oXGR7Mn0oPzpbLixdXGQqKT8pKD86Oj8oXGR7Mn0oPzpbLixdXGQqKT8pKT8oPzo6PyhcZHsyfSg/OlsuLF1cZCopPykpPyQvLGNVdD0vXihbKy1dKShcZHsyfSkoPzo6PyhcZHsyfSkpPyQvO2dVdD1bMzEsbnVsbCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07d0UxPWlxZX0pO2Z1bmN0aW9uIHNxZSh0LGUpe2xldCBhPXQubWF0Y2goLyhcZHs0fSktKFxkezJ9KS0oXGR7Mn0pW1QgXShcZHsyfSk6KFxkezJ9KTooXGR7Mn0pKD86XC4oXGR7MCw3fSkpPyg/Olp8KC4pKFxkezJ9KTo/KFxkezJ9KT8pPy8pO3JldHVybiBhP2VlKERhdGUuVVRDKCthWzFdLCthWzJdLTEsK2FbM10sK2FbNF0tKCthWzldfHwwKSooYVs4XT09Ii0iPy0xOjEpLCthWzVdLSgrYVsxMF18fDApKihhWzhdPT0iLSI/LTE6MSksK2FbNl0sKygoYVs3XXx8IjAiKSsiMDAiKS5zdWJzdHJpbmcoMCwzKSksZT8uaW4pOmVlKE5hTixlPy5pbil9dmFyIGtFMSxucWU9bigoKT0+e01lKCk7a0UxPXNxZX0pO2Z1bmN0aW9uIE0yKHQsZSxhKXtsZXQgcj1Nbyh0LGEpLWU7cmV0dXJuIHI8PTAmJihyKz03KSxrbyh0LHIsYSl9dmFyIFRFMSx1aT1uKCgpPT57bTgoKTt5OCgpO1RFMT1NMn0pO2Z1bmN0aW9uIGxxZSh0LGUpe3JldHVybiBNMih0LDUsZSl9dmFyICRFMSxjcWU9bigoKT0+e3VpKCk7JEUxPWxxZX0pO2Z1bmN0aW9uIGRxZSh0LGUpe3JldHVybiBNMih0LDEsZSl9dmFyIE5FMSxmcWU9bigoKT0+e3VpKCk7TkUxPWRxZX0pO2Z1bmN0aW9uIHVxZSh0LGUpe3JldHVybiBNMih0LDYsZSl9dmFyIEZFMSxwcWU9bigoKT0+e3VpKCk7RkUxPXVxZX0pO2Z1bmN0aW9uIGhxZSh0LGUpe3JldHVybiBNMih0LDAsZSl9dmFyIFJFMSxtcWU9bigoKT0+e3VpKCk7UkUxPWhxZX0pO2Z1bmN0aW9uIGdxZSh0LGUpe3JldHVybiBNMih0LDQsZSl9dmFyIFZFMSx4cWU9bigoKT0+e3VpKCk7VkUxPWdxZX0pO2Z1bmN0aW9uIGJxZSh0LGUpe3JldHVybiBNMih0LDIsZSl9dmFyIFdFMSx2cWU9bigoKT0+e3VpKCk7V0UxPWJxZX0pO2Z1bmN0aW9uIHlxZSh0LGUpe3JldHVybiBNMih0LDMsZSl9dmFyIFpFMSx3cWU9bigoKT0+e3VpKCk7WkUxPXlxZX0pO2Z1bmN0aW9uIE1xZSh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KnVPKX12YXIgS0UxLHpxZT1uKCgpPT57Z3QoKTtLRTE9TXFlfSk7ZnVuY3Rpb24ga3FlKHQpe2xldCBlPXQvaE87cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIHROMSxTcWU9bigoKT0+e2d0KCk7dE4xPWtxZX0pO2Z1bmN0aW9uIENxZSh0LGUpe2xldCBhPWU/Lm5lYXJlc3RUbz8/MTtpZihhPDF8fGE+MTIpcmV0dXJuIHdlKGU/LmlufHx0LE5hTik7bGV0IHI9ZWUodCxlPy5pbiksaT1yLmdldE1pbnV0ZXMoKS82MCxvPXIuZ2V0U2Vjb25kcygpLzYwLzYwLHM9ci5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAvNjAsbD1yLmdldEhvdXJzKCkraStvK3MsZj1lPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIix1PXYyKGYpKGwvYSkqYTtyZXR1cm4gci5zZXRIb3Vycyh1LDAsMCwwKSxyfXZhciBzTjEsTHFlPW4oKCk9PntkaSgpO0tlKCk7TWUoKTtzTjE9Q3FlfSk7ZnVuY3Rpb24gVHFlKHQsZSl7bGV0IGE9ZT8ubmVhcmVzdFRvPz8xO2lmKGE8MXx8YT4zMClyZXR1cm4gd2UodCxOYU4pO2xldCByPWVlKHQsZT8uaW4pLGk9ci5nZXRTZWNvbmRzKCkvNjAsbz1yLmdldE1pbGxpc2Vjb25kcygpLzFlMy82MCxzPXIuZ2V0TWludXRlcygpK2krbyxsPWU/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiLGM9djIobCkocy9hKSphO3JldHVybiByLnNldE1pbnV0ZXMoYywwLDApLHJ9dmFyIGZOMSxfcWU9bigoKT0+e2RpKCk7S2UoKTtNZSgpO2ZOMT1UcWV9KTtmdW5jdGlvbiBBcWUodCl7bGV0IGU9dC9EcztyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgaE4xLCRxZT1uKCgpPT57Z3QoKTtoTjE9QXFlfSk7ZnVuY3Rpb24gRHFlKHQpe3JldHVybiB0KkFjfXZhciB4TjEsRXFlPW4oKCk9PntndCgpO3hOMT1EcWV9KTtmdW5jdGlvbiBOcWUodCl7bGV0IGU9dC9EYztyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgeU4xLFBxZT1uKCgpPT57Z3QoKTt5TjE9TnFlfSk7ZnVuY3Rpb24gSmModCxlLGEpe2xldCByPWVlKHQsYT8uaW4pLGk9ci5nZXRGdWxsWWVhcigpLG89ci5nZXREYXRlKCkscz13ZShhPy5pbnx8dCwwKTtzLnNldEZ1bGxZZWFyKGksZSwxNSkscy5zZXRIb3VycygwLDAsMCwwKTtsZXQgbD1pQihzKTtyZXR1cm4gci5zZXRNb250aChlLE1hdGgubWluKG8sbCkpLHJ9dmFyIFNOMSxsUj1uKCgpPT57S2UoKTt6WigpO01lKCk7U04xPUpjfSk7ZnVuY3Rpb24gSXFlKHQsZSxhKXtsZXQgcj1lZSh0LGE/LmluKTtyZXR1cm4gaXNOYU4oK3IpP3dlKGE/LmlufHx0LE5hTik6KGUueWVhciE9bnVsbCYmci5zZXRGdWxsWWVhcihlLnllYXIpLGUubW9udGghPW51bGwmJihyPUpjKHIsZS5tb250aCkpLGUuZGF0ZSE9bnVsbCYmci5zZXREYXRlKGUuZGF0ZSksZS5ob3VycyE9bnVsbCYmci5zZXRIb3VycyhlLmhvdXJzKSxlLm1pbnV0ZXMhPW51bGwmJnIuc2V0TWludXRlcyhlLm1pbnV0ZXMpLGUuc2Vjb25kcyE9bnVsbCYmci5zZXRTZWNvbmRzKGUuc2Vjb25kcyksZS5taWxsaXNlY29uZHMhPW51bGwmJnIuc2V0TWlsbGlzZWNvbmRzKGUubWlsbGlzZWNvbmRzKSxyKX12YXIgQU4xLEZxZT1uKCgpPT57S2UoKTtsUigpO01lKCk7QU4xPUlxZX0pO2Z1bmN0aW9uIE9xZSh0LGUsYSl7bGV0IHI9ZWUodCxhPy5pbik7cmV0dXJuIHIuc2V0RGF0ZShlKSxyfXZhciBFTjEsQnFlPW4oKCk9PntNZSgpO0VOMT1PcWV9KTtmdW5jdGlvbiBScWUodCxlLGEpe2xldCByPWVlKHQsYT8uaW4pO3JldHVybiByLnNldE1vbnRoKDApLHIuc2V0RGF0ZShlKSxyfXZhciBJTjEsSHFlPW4oKCk9PntNZSgpO0lOMT1ScWV9KTtmdW5jdGlvbiBxcWUodCl7bGV0IGU9e30sYT1VdCgpO2ZvcihsZXQgciBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLHIpJiYoZVtyXT1hW3JdKTtmb3IobGV0IHIgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmKHRbcl09PT12b2lkIDA/ZGVsZXRlIGVbcl06ZVtyXT10W3JdKTtpRmUoZSl9dmFyIEJOMSxWcWU9bigoKT0+e3gyKCk7Qk4xPXFxZX0pO2Z1bmN0aW9uIFVxZSh0LGUsYSl7bGV0IHI9ZWUodCxhPy5pbik7cmV0dXJuIHIuc2V0SG91cnMoZSkscn12YXIgcU4xLGpxZT1uKCgpPT57TWUoKTtxTjE9VXFlfSk7ZnVuY3Rpb24gV3FlKHQsZSxhKXtsZXQgcj1lZSh0LGE/LmluKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoZSkscn12YXIgak4xLEdxZT1uKCgpPT57TWUoKTtqTjE9V3FlfSk7ZnVuY3Rpb24gWXFlKHQsZSxhKXtsZXQgcj1lZSh0LGE/LmluKTtyZXR1cm4gci5zZXRNaW51dGVzKGUpLHJ9dmFyIFlOMSxacWU9bigoKT0+e01lKCk7WU4xPVlxZX0pO2Z1bmN0aW9uIFhxZSh0LGUsYSl7bGV0IHI9ZWUodCxhPy5pbiksaT1NYXRoLnRydW5jKHIuZ2V0TW9udGgoKS8zKSsxLG89ZS1pO3JldHVybiBKYyhyLHIuZ2V0TW9udGgoKStvKjMpfXZhciBLTjEsUXFlPW4oKCk9PntsUigpO01lKCk7S04xPVhxZX0pO2Z1bmN0aW9uIEtxZSh0LGUsYSl7bGV0IHI9ZWUodCxhPy5pbik7cmV0dXJuIHIuc2V0U2Vjb25kcyhlKSxyfXZhciB0UDEsSnFlPW4oKCk9PntNZSgpO3RQMT1LcWV9KTtmdW5jdGlvbiBlVmUodCxlLGEpe2xldCByPVV0KCksaT1hPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2E/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxvPVcxKGVlKHQsYT8uaW4pLEJzKHQsYSksYSkscz13ZShhPy5pbnx8dCwwKTtzLnNldEZ1bGxZZWFyKGUsMCxpKSxzLnNldEhvdXJzKDAsMCwwLDApO2xldCBsPUJzKHMsYSk7cmV0dXJuIGwuc2V0RGF0ZShsLmdldERhdGUoKStvKSxsfXZhciBsUDEsdFZlPW4oKCk9Pnt4MigpO0tlKCk7bGkoKTtRTygpO01lKCk7bFAxPWVWZX0pO2Z1bmN0aW9uIGFWZSh0LGUsYSl7bGV0IHI9ZWUodCxhPy5pbik7cmV0dXJuIGlzTmFOKCtyKT93ZShhPy5pbnx8dCxOYU4pOihyLnNldEZ1bGxZZWFyKGUpLHIpfXZhciB1UDEsclZlPW4oKCk9PntLZSgpO01lKCk7dVAxPWFWZX0pO2Z1bmN0aW9uIGlWZSh0LGUpe2xldCBhPWVlKHQsZT8uaW4pLHI9YS5nZXRGdWxsWWVhcigpLGk9TWF0aC5mbG9vcihyLzEwKSoxMDtyZXR1cm4gYS5zZXRGdWxsWWVhcihpLDAsMSksYS5zZXRIb3VycygwLDAsMCwwKSxhfXZhciBtUDEsb1ZlPW4oKCk9PntNZSgpO21QMT1pVmV9KTtmdW5jdGlvbiBzVmUodCl7cmV0dXJuIGtyKERhdGUubm93KCksdCl9dmFyIGJQMSxuVmU9bigoKT0+e284KCk7YlAxPXNWZX0pO2Z1bmN0aW9uIGxWZSh0KXtsZXQgZT15dCh0Py5pbiksYT1lLmdldEZ1bGxZZWFyKCkscj1lLmdldE1vbnRoKCksaT1lLmdldERhdGUoKSxvPXdlKHQ/LmluLDApO3JldHVybiBvLnNldEZ1bGxZZWFyKGEscixpKzEpLG8uc2V0SG91cnMoMCwwLDAsMCksb312YXIgTVAxLGNWZT1uKCgpPT57S2UoKTtPMSgpO01QMT1sVmV9KTtmdW5jdGlvbiBkVmUodCl7bGV0IGU9eXQodD8uaW4pLGE9ZS5nZXRGdWxsWWVhcigpLHI9ZS5nZXRNb250aCgpLGk9ZS5nZXREYXRlKCksbz15dCh0Py5pbik7cmV0dXJuIG8uc2V0RnVsbFllYXIoYSxyLGktMSksby5zZXRIb3VycygwLDAsMCwwKSxvfXZhciBTUDEsZlZlPW4oKCk9PntPMSgpO1NQMT1kVmV9KTtmdW5jdGlvbiBjUih0LGUsYSl7cmV0dXJuIHdyKHQsLWUsYSl9dmFyIFRQMSxXWj1uKCgpPT57RWMoKTtUUDE9Y1J9KTtmdW5jdGlvbiB1VmUodCxlLGEpe2xldHt5ZWFyczpyPTAsbW9udGhzOmk9MCx3ZWVrczpvPTAsZGF5czpzPTAsaG91cnM6bD0wLG1pbnV0ZXM6Zj0wLHNlY29uZHM6Yz0wfT1lLHU9Y1IodCxpK3IqMTIsYSksZD1rbyh1LHMrbyo3LGEpLGg9ZitsKjYwLGI9KGMraCo2MCkqMWUzO3JldHVybiB3ZShhPy5pbnx8dCwrZC1iKX12YXIgRVAxLHBWZT1uKCgpPT57S2UoKTt5OCgpO1daKCk7RVAxPXVWZX0pO2Z1bmN0aW9uIGhWZSh0LGUsYSl7cmV0dXJuIHhPKHQsLWUsYSl9dmFyIElQMSxtVmU9bigoKT0+e1hZKCk7SVAxPWhWZX0pO2Z1bmN0aW9uIGdWZSh0LGUsYSl7cmV0dXJuIGJPKHQsLWUsYSl9dmFyIEJQMSx4VmU9bigoKT0+e1FZKCk7QlAxPWdWZX0pO2Z1bmN0aW9uIGJWZSh0LGUsYSl7cmV0dXJuIGhvKHQsLWUsYSl9dmFyIHFQMSx2VmU9bigoKT0+e2k4KCk7cVAxPWJWZX0pO2Z1bmN0aW9uIHlWZSh0LGUsYSl7cmV0dXJuIFBjKHQsLWUsYSl9dmFyIGpQMSx3VmU9bigoKT0+e3dPKCk7alAxPXlWZX0pO2Z1bmN0aW9uIE1WZSh0LGUsYSl7cmV0dXJuIEljKHQsLWUsYSl9dmFyIFlQMSx6VmU9bigoKT0+e01PKCk7WVAxPU1WZX0pO2Z1bmN0aW9uIGtWZSh0LGUsYSl7cmV0dXJuIHpPKHQsLWUsYSl9dmFyIFFQMSxTVmU9bigoKT0+e2VaKCk7UVAxPWtWZX0pO2Z1bmN0aW9uIENWZSh0LGUsYSl7cmV0dXJuIGdvKHQsLWUsYSl9dmFyIGVJMSxMVmU9bigoKT0+e3M4KCk7ZUkxPUNWZX0pO2Z1bmN0aW9uIFRWZSh0LGUsYSl7cmV0dXJuIGtPKHQsLWUsYSl9dmFyIHJJMSxfVmU9bigoKT0+e3RaKCk7ckkxPVRWZX0pO2Z1bmN0aW9uIEFWZSh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KjcpfXZhciBzSTEsJFZlPW4oKCk9PntndCgpO3NJMT1BVmV9KTtmdW5jdGlvbiBEVmUodCl7cmV0dXJuIE1hdGgudHJ1bmModCozNjUuMjQyNSl9dmFyIGNJMSxFVmU9bigoKT0+e2d0KCk7Y0kxPURWZX0pO2Z1bmN0aW9uIE5WZSh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KnBPKX12YXIgdUkxLFBWZT1uKCgpPT57Z3QoKTt1STE9TlZlfSk7ZnVuY3Rpb24gSVZlKHQpe3JldHVybiBNYXRoLnRydW5jKHQqaE8pfXZhciBtSTEsRlZlPW4oKCk9PntndCgpO21JMT1JVmV9KTt2YXIgTTg9e307ZXQoTTgse2FkZDooKT0+cG8sYWRkQnVzaW5lc3NEYXlzOigpPT54TyxhZGREYXlzOigpPT5GMSxhZGRIb3VyczooKT0+Yk8sYWRkSVNPV2Vla1llYXJzOigpPT55TyxhZGRNaWxsaXNlY29uZHM6KCk9PmhvLGFkZE1pbnV0ZXM6KCk9PlBjLGFkZE1vbnRoczooKT0+d3IsYWRkUXVhcnRlcnM6KCk9PkljLGFkZFNlY29uZHM6KCk9PnpPLGFkZFdlZWtzOigpPT5nbyxhZGRZZWFyczooKT0+a08sYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmc6KCk9Pm9GZSxjbGFtcDooKT0+bkZlLGNsb3Nlc3RJbmRleFRvOigpPT5MTyxjbG9zZXN0VG86KCk9PmNGZSxjb21wYXJlQXNjOigpPT5iMixjb21wYXJlRGVzYzooKT0+ZkZlLGNvbnN0cnVjdEZyb206KCk9PndlLGNvbnN0cnVjdE5vdzooKT0+eXQsZGF5c1RvV2Vla3M6KCk9PnBGZSxkaWZmZXJlbmNlSW5CdXNpbmVzc0RheXM6KCk9Pm1GZSxkaWZmZXJlbmNlSW5DYWxlbmRhckRheXM6KCk9PlcxLGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzOigpPT5fTyxkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtzOigpPT54RmUsZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM6KCk9Pk5zLGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnM6KCk9Pk9jLGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3M6KCk9PlBzLGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnM6KCk9PnhvLGRpZmZlcmVuY2VJbkRheXM6KCk9PkJjLGRpZmZlcmVuY2VJbkhvdXJzOigpPT5JcyxkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnM6KCk9PnlGZSxkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHM6KCk9PlJjLGRpZmZlcmVuY2VJbk1pbnV0ZXM6KCk9PkZzLGRpZmZlcmVuY2VJbk1vbnRoczooKT0+Ym8sZGlmZmVyZW5jZUluUXVhcnRlcnM6KCk9Pk1GZSxkaWZmZXJlbmNlSW5TZWNvbmRzOigpPT5DcixkaWZmZXJlbmNlSW5XZWVrczooKT0+a0ZlLGRpZmZlcmVuY2VJblllYXJzOigpPT5ITyxlYWNoRGF5T2ZJbnRlcnZhbDooKT0+cU8sZWFjaEhvdXJPZkludGVydmFsOigpPT5DRmUsZWFjaE1pbnV0ZU9mSW50ZXJ2YWw6KCk9PlRGZSxlYWNoTW9udGhPZkludGVydmFsOigpPT5BRmUsZWFjaFF1YXJ0ZXJPZkludGVydmFsOigpPT5ERmUsZWFjaFdlZWtPZkludGVydmFsOigpPT5ORmUsZWFjaFdlZWtlbmRPZkludGVydmFsOigpPT5WYyxlYWNoV2Vla2VuZE9mTW9udGg6KCk9PklGZSxlYWNoV2Vla2VuZE9mWWVhcjooKT0+T0ZlLGVhY2hZZWFyT2ZJbnRlcnZhbDooKT0+UkZlLGVuZE9mRGF5OigpPT5IYyxlbmRPZkRlY2FkZTooKT0+cUZlLGVuZE9mSG91cjooKT0+VUZlLGVuZE9mSVNPV2VlazooKT0+V0ZlLGVuZE9mSVNPV2Vla1llYXI6KCk9PllGZSxlbmRPZk1pbnV0ZTooKT0+WEZlLGVuZE9mTW9udGg6KCk9PnFjLGVuZE9mUXVhcnRlcjooKT0+S0ZlLGVuZE9mU2Vjb25kOigpPT5lT2UsZW5kT2ZUb2RheTooKT0+YU9lLGVuZE9mVG9tb3Jyb3c6KCk9PmlPZSxlbmRPZldlZWs6KCk9PkdPLGVuZE9mWWVhcjooKT0+ak8sZW5kT2ZZZXN0ZXJkYXk6KCk9PnNPZSxmb3JtYXQ6KCk9Pmg4LGZvcm1hdERhdGU6KCk9Pmg4LGZvcm1hdERpc3RhbmNlOigpPT50Qixmb3JtYXREaXN0YW5jZVN0cmljdDooKT0+YUIsZm9ybWF0RGlzdGFuY2VUb05vdzooKT0+X09lLGZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3Q6KCk9PiRPZSxmb3JtYXREdXJhdGlvbjooKT0+RU9lLGZvcm1hdElTTzooKT0+UE9lLGZvcm1hdElTTzkwNzU6KCk9PkZPZSxmb3JtYXRJU09EdXJhdGlvbjooKT0+Qk9lLGZvcm1hdFJGQzMzMzk6KCk9PkhPZSxmb3JtYXRSRkM3MjMxOigpPT5WT2UsZm9ybWF0UmVsYXRpdmU6KCk9PmpPZSxmb3JtYXR0ZXJzOigpPT51OCxmcm9tVW5peFRpbWU6KCk9PkdPZSxnZXREYXRlOigpPT5yQixnZXREYXk6KCk9Pk1vLGdldERheU9mWWVhcjooKT0+Wk8sZ2V0RGF5c0luTW9udGg6KCk9PmlCLGdldERheXNJblllYXI6KCk9PlpPZSxnZXREZWNhZGU6KCk9PlFPZSxnZXREZWZhdWx0T3B0aW9uczooKT0+c0IsZ2V0SG91cnM6KCk9PkpPZSxnZXRJU09EYXk6KCk9Pm5CLGdldElTT1dlZWs6KCk9PkdjLGdldElTT1dlZWtZZWFyOigpPT5JMixnZXRJU09XZWVrc0luWWVhcjooKT0+dEJlLGdldE1pbGxpc2Vjb25kczooKT0+ckJlLGdldE1pbnV0ZXM6KCk9Pm9CZSxnZXRNb250aDooKT0+bkJlLGdldE92ZXJsYXBwaW5nRGF5c0luSW50ZXJ2YWxzOigpPT5jQmUsZ2V0UXVhcnRlcjooKT0+bjgsZ2V0U2Vjb25kczooKT0+ZkJlLGdldFRpbWU6KCk9PnBCZSxnZXRVbml4VGltZTooKT0+bUJlLGdldFdlZWs6KCk9PlljLGdldFdlZWtPZk1vbnRoOigpPT54QmUsZ2V0V2Vla1llYXI6KCk9PnlvLGdldFdlZWtzSW5Nb250aDooKT0+dkJlLGdldFllYXI6KCk9PndCZSxob3Vyc1RvTWlsbGlzZWNvbmRzOigpPT56QmUsaG91cnNUb01pbnV0ZXM6KCk9PlNCZSxob3Vyc1RvU2Vjb25kczooKT0+TEJlLGludGVydmFsOigpPT5fQmUsaW50ZXJ2YWxUb0R1cmF0aW9uOigpPT4kQmUsaW50bEZvcm1hdDooKT0+RUJlLGludGxGb3JtYXREaXN0YW5jZTooKT0+UEJlLGlzQWZ0ZXI6KCk9PkZCZSxpc0JlZm9yZTooKT0+QkJlLGlzRGF0ZTooKT0+VE8saXNFcXVhbDooKT0+SEJlLGlzRXhpc3RzOigpPT5WQmUsaXNGaXJzdERheU9mTW9udGg6KCk9PmpCZSxpc0ZyaWRheTooKT0+R0JlLGlzRnV0dXJlOigpPT5aQmUsaXNMYXN0RGF5T2ZNb250aDooKT0+Uk8saXNMZWFwWWVhcjooKT0+b0IsaXNNYXRjaDooKT0+X1JlLGlzTW9uZGF5OigpPT4kUmUsaXNQYXN0OigpPT5FUmUsaXNTYW1lRGF5OigpPT5Tcixpc1NhbWVIb3VyOigpPT5LQixpc1NhbWVJU09XZWVrOigpPT5lUixpc1NhbWVJU09XZWVrWWVhcjooKT0+UFJlLGlzU2FtZU1pbnV0ZTooKT0+dFIsaXNTYW1lTW9udGg6KCk9PmFSLGlzU2FtZVF1YXJ0ZXI6KCk9PnJSLGlzU2FtZVNlY29uZDooKT0+aVIsaXNTYW1lV2VlazooKT0+S2MsaXNTYW1lWWVhcjooKT0+b1IsaXNTYXR1cmRheTooKT0+bU8saXNTdW5kYXk6KCk9PmdPLGlzVGhpc0hvdXI6KCk9PkZSZSxpc1RoaXNJU09XZWVrOigpPT5CUmUsaXNUaGlzTWludXRlOigpPT5IUmUsaXNUaGlzTW9udGg6KCk9PlZSZSxpc1RoaXNRdWFydGVyOigpPT5qUmUsaXNUaGlzU2Vjb25kOigpPT5HUmUsaXNUaGlzV2VlazooKT0+WlJlLGlzVGhpc1llYXI6KCk9PlFSZSxpc1RodXJzZGF5OigpPT5KUmUsaXNUb2RheTooKT0+dEhlLGlzVG9tb3Jyb3c6KCk9PnJIZSxpc1R1ZXNkYXk6KCk9Pm9IZSxpc1ZhbGlkOigpPT5yMixpc1dlZG5lc2RheTooKT0+bkhlLGlzV2Vla2VuZDooKT0+TXIsaXNXaXRoaW5JbnRlcnZhbDooKT0+Y0hlLGlzWWVzdGVyZGF5OigpPT5mSGUsbGFzdERheU9mRGVjYWRlOigpPT5wSGUsbGFzdERheU9mSVNPV2VlazooKT0+bUhlLGxhc3REYXlPZklTT1dlZWtZZWFyOigpPT54SGUsbGFzdERheU9mTW9udGg6KCk9PmxCLGxhc3REYXlPZlF1YXJ0ZXI6KCk9PnZIZSxsYXN0RGF5T2ZXZWVrOigpPT5zUixsYXN0RGF5T2ZZZWFyOigpPT53SGUsbGlnaHRGb3JtYXQ6KCk9PnpIZSxsaWdodEZvcm1hdHRlcnM6KCk9PnNhLGxvbmdGb3JtYXR0ZXJzOigpPT53byxtYXg6KCk9PlNPLG1pbGxpc2Vjb25kczooKT0+U0hlLG1pbGxpc2Vjb25kc1RvSG91cnM6KCk9PkxIZSxtaWxsaXNlY29uZHNUb01pbnV0ZXM6KCk9Pl9IZSxtaWxsaXNlY29uZHNUb1NlY29uZHM6KCk9PiRIZSxtaW46KCk9PkNPLG1pbnV0ZXNUb0hvdXJzOigpPT5FSGUsbWludXRlc1RvTWlsbGlzZWNvbmRzOigpPT5QSGUsbWludXRlc1RvU2Vjb25kczooKT0+RkhlLG1vbnRoc1RvUXVhcnRlcnM6KCk9PkJIZSxtb250aHNUb1llYXJzOigpPT5ISGUsbmV4dERheTooKT0+dzIsbmV4dEZyaWRheTooKT0+VkhlLG5leHRNb25kYXk6KCk9PmpIZSxuZXh0U2F0dXJkYXk6KCk9PkdIZSxuZXh0U3VuZGF5OigpPT5aSGUsbmV4dFRodXJzZGF5OigpPT5RSGUsbmV4dFR1ZXNkYXk6KCk9PkpIZSxuZXh0V2VkbmVzZGF5OigpPT50cWUscGFyc2U6KCk9PlFCLHBhcnNlSVNPOigpPT5pcWUscGFyc2VKU09OOigpPT5zcWUscGFyc2VyczooKT0+WEIscHJldmlvdXNEYXk6KCk9Pk0yLHByZXZpb3VzRnJpZGF5OigpPT5scWUscHJldmlvdXNNb25kYXk6KCk9PmRxZSxwcmV2aW91c1NhdHVyZGF5OigpPT51cWUscHJldmlvdXNTdW5kYXk6KCk9PmhxZSxwcmV2aW91c1RodXJzZGF5OigpPT5ncWUscHJldmlvdXNUdWVzZGF5OigpPT5icWUscHJldmlvdXNXZWRuZXNkYXk6KCk9PnlxZSxxdWFydGVyc1RvTW9udGhzOigpPT5NcWUscXVhcnRlcnNUb1llYXJzOigpPT5rcWUscm91bmRUb05lYXJlc3RIb3VyczooKT0+Q3FlLHJvdW5kVG9OZWFyZXN0TWludXRlczooKT0+VHFlLHNlY29uZHNUb0hvdXJzOigpPT5BcWUsc2Vjb25kc1RvTWlsbGlzZWNvbmRzOigpPT5EcWUsc2Vjb25kc1RvTWludXRlczooKT0+TnFlLHNldDooKT0+SXFlLHNldERhdGU6KCk9Pk9xZSxzZXREYXk6KCk9PnpvLHNldERheU9mWWVhcjooKT0+UnFlLHNldERlZmF1bHRPcHRpb25zOigpPT5xcWUsc2V0SG91cnM6KCk9PlVxZSxzZXRJU09EYXk6KCk9Pk5CLHNldElTT1dlZWs6KCk9PkxCLHNldElTT1dlZWtZZWFyOigpPT52TyxzZXRNaWxsaXNlY29uZHM6KCk9PldxZSxzZXRNaW51dGVzOigpPT5ZcWUsc2V0TW9udGg6KCk9PkpjLHNldFF1YXJ0ZXI6KCk9PlhxZSxzZXRTZWNvbmRzOigpPT5LcWUsc2V0V2VlazooKT0+U0Isc2V0V2Vla1llYXI6KCk9PmVWZSxzZXRZZWFyOigpPT5hVmUsc3RhcnRPZkRheTooKT0+a3Isc3RhcnRPZkRlY2FkZTooKT0+aVZlLHN0YXJ0T2ZIb3VyOigpPT54OCxzdGFydE9mSVNPV2VlazooKT0+QTEsc3RhcnRPZklTT1dlZWtZZWFyOigpPT5vYSxzdGFydE9mTWludXRlOigpPT5iOCxzdGFydE9mTW9udGg6KCk9PnZvLHN0YXJ0T2ZRdWFydGVyOigpPT5UcixzdGFydE9mU2Vjb25kOigpPT52OCxzdGFydE9mVG9kYXk6KCk9PnNWZSxzdGFydE9mVG9tb3Jyb3c6KCk9PmxWZSxzdGFydE9mV2VlazooKT0+YTEsc3RhcnRPZldlZWtZZWFyOigpPT5CcyxzdGFydE9mWWVhcjooKT0+VWMsc3RhcnRPZlllc3RlcmRheTooKT0+ZFZlLHN1YjooKT0+dVZlLHN1YkJ1c2luZXNzRGF5czooKT0+aFZlLHN1YkRheXM6KCk9PmtvLHN1YkhvdXJzOigpPT5nVmUsc3ViSVNPV2Vla1llYXJzOigpPT5QTyxzdWJNaWxsaXNlY29uZHM6KCk9PmJWZSxzdWJNaW51dGVzOigpPT55VmUsc3ViTW9udGhzOigpPT5jUixzdWJRdWFydGVyczooKT0+TVZlLHN1YlNlY29uZHM6KCk9PmtWZSxzdWJXZWVrczooKT0+Q1ZlLHN1YlllYXJzOigpPT5UVmUsdG9EYXRlOigpPT5lZSx0cmFuc3Bvc2U6KCk9PmNCLHdlZWtzVG9EYXlzOigpPT5BVmUseWVhcnNUb0RheXM6KCk9PkRWZSx5ZWFyc1RvTW9udGhzOigpPT5OVmUseWVhcnNUb1F1YXJ0ZXJzOigpPT5JVmV9KTt2YXIgT1ZlPW4oKCk9PntHWSgpO1hZKCk7eXIoKTtRWSgpO0pZKCk7aTgoKTt3TygpO0VjKCk7TU8oKTtlWigpO3M4KCk7dFooKTtzRmUoKTtsRmUoKTtpWigpO2RGZSgpO0VzKCk7dUZlKCk7S2UoKTtPMSgpO2hGZSgpO2dGZSgpO2xpKCk7c1ooKTtiRmUoKTtBTygpO2xaKCk7JE8oKTtETygpO0VPKCk7Tk8oKTt3RmUoKTtJTygpO0ZPKCk7bDgoKTt6RmUoKTtjOCgpO1NGZSgpO2ZaKCk7dVooKTtMRmUoKTtfRmUoKTskRmUoKTtFRmUoKTtQRmUoKTtVTygpO0ZGZSgpO0JGZSgpO0hGZSgpO09PKCk7VkZlKCk7akZlKCk7R0ZlKCk7WkZlKCk7UUZlKCk7Qk8oKTtKRmUoKTt0T2UoKTtyT2UoKTtvT2UoKTtoWigpO3BaKCk7bk9lKCk7dlooKTt5WigpO3daKCk7QU9lKCk7RE9lKCk7Tk9lKCk7SU9lKCk7T09lKCk7Uk9lKCk7cU9lKCk7VU9lKCk7V09lKCk7WU9lKCk7TVooKTttOCgpO21aKCk7elooKTtYT2UoKTtLT2UoKTtTWigpO2VCZSgpO0NaKCk7WE8oKTttbygpO2FCZSgpO2lCZSgpO3NCZSgpO2xCZSgpO2RCZSgpO25aKCk7dUJlKCk7aEJlKCk7Z0JlKCk7S08oKTtiQmUoKTtmOCgpO3lCZSgpO01CZSgpO2tCZSgpO0NCZSgpO1RCZSgpO0FCZSgpO0RCZSgpO05CZSgpO0lCZSgpO09CZSgpO1JCZSgpO29aKCk7cUJlKCk7VUJlKCk7V0JlKCk7WUJlKCk7WEJlKCk7ZFooKTtrWigpO0FSZSgpO0RSZSgpO05SZSgpO0ZjKCk7UFooKTtJWigpO0lSZSgpO09aKCk7QlooKTtSWigpO3FaKCk7SkIoKTtWWigpO1lZKCk7WlkoKTtPUmUoKTtSUmUoKTtxUmUoKTtVUmUoKTtXUmUoKTtZUmUoKTtYUmUoKTtLUmUoKTtlSGUoKTthSGUoKTtpSGUoKTtzSGUoKTtjaSgpO2xIZSgpO3I4KCk7ZEhlKCk7dUhlKCk7aEhlKCk7Z0hlKCk7YkhlKCk7TFooKTt5SGUoKTtVWigpO01IZSgpO2tIZSgpO2FaKCk7Q0hlKCk7VEhlKCk7QUhlKCk7REhlKCk7clooKTtOSGUoKTtJSGUoKTtPSGUoKTtSSGUoKTtxSGUoKTtmaSgpO1VIZSgpO1dIZSgpO1lIZSgpO1hIZSgpO0tIZSgpO2VxZSgpO2FxZSgpO0VaKCk7b3FlKCk7bnFlKCk7dWkoKTtjcWUoKTtmcWUoKTtwcWUoKTttcWUoKTt4cWUoKTt2cWUoKTt3cWUoKTt6cWUoKTtTcWUoKTtMcWUoKTtfcWUoKTskcWUoKTtFcWUoKTtQcWUoKTtGcWUoKTtCcWUoKTtnOCgpO0hxZSgpO1ZxZSgpO2pxZSgpO0RaKCk7JFooKTtLWSgpO0dxZSgpO1pxZSgpO2xSKCk7UXFlKCk7SnFlKCk7QVooKTt0VmUoKTtyVmUoKTtvOCgpO29WZSgpO05aKCk7enIoKTtOYygpO0ZaKCk7ZDgoKTtWTygpO0haKCk7blZlKCk7Y1ZlKCk7VWEoKTtRTygpO1dPKCk7ZlZlKCk7cFZlKCk7bVZlKCk7eTgoKTt4VmUoKTtjWigpO3ZWZSgpO3dWZSgpO1daKCk7elZlKCk7U1ZlKCk7TFZlKCk7X1ZlKCk7TWUoKTtUWigpOyRWZSgpO0VWZSgpO1BWZSgpO0ZWZSgpfSk7dmFyIEJWZT1jdCgoR1osWVopPT57KGZ1bmN0aW9uKHQsZSl7dHlwZW9mIEdaPT0ib2JqZWN0IiYmdHlwZW9mIFlaPCJ1Ij9ZWi5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShlKToodD10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0fHxzZWxmKS5kYXlqcz1lKCl9KShHWiwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9MWUzLGU9NmU0LGE9MzZlNSxyPSJtaWxsaXNlY29uZCIsaT0ic2Vjb25kIixvPSJtaW51dGUiLHM9ImhvdXIiLGw9ImRheSIsZj0id2VlayIsYz0ibW9udGgiLHU9InF1YXJ0ZXIiLGQ9InllYXIiLGg9ImRhdGUiLGc9IkludmFsaWQgRGF0ZSIsYj0vXihcZHs0fSlbLS9dPyhcZHsxLDJ9KT9bLS9dPyhcZHswLDJ9KVtUdFxzXSooXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Wy46XT8oXGQrKT8kLyx4PS9cWyhbXlxdXSspXXxZezEsNH18TXsxLDR9fER7MSwyfXxkezEsNH18SHsxLDJ9fGh7MSwyfXxhfEF8bXsxLDJ9fHN7MSwyfXxaezEsMn18U1NTL2csbT17bmFtZToiZW4iLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxtb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksb3JkaW5hbDpmdW5jdGlvbihrKXt2YXIgTj1bInRoIiwic3QiLCJuZCIsInJkIl0sUz1rJTEwMDtyZXR1cm4iWyIraysoTlsoUy0yMCklMTBdfHxOW1NdfHxOWzBdKSsiXSJ9fSx2PWZ1bmN0aW9uKGssTixTKXt2YXIgVD1TdHJpbmcoayk7cmV0dXJuIVR8fFQubGVuZ3RoPj1OP2s6IiIrQXJyYXkoTisxLVQubGVuZ3RoKS5qb2luKFMpK2t9LHk9e3M6dix6OmZ1bmN0aW9uKGspe3ZhciBOPS1rLnV0Y09mZnNldCgpLFM9TWF0aC5hYnMoTiksVD1NYXRoLmZsb29yKFMvNjApLFI9UyU2MDtyZXR1cm4oTjw9MD8iKyI6Ii0iKSt2KFQsMiwiMCIpKyI6Iit2KFIsMiwiMCIpfSxtOmZ1bmN0aW9uIGsoTixTKXtpZihOLmRhdGUoKTxTLmRhdGUoKSlyZXR1cm4tayhTLE4pO3ZhciBUPTEyKihTLnllYXIoKS1OLnllYXIoKSkrKFMubW9udGgoKS1OLm1vbnRoKCkpLFI9Ti5jbG9uZSgpLmFkZChULGMpLEE9Uy1SPDAsRj1OLmNsb25lKCkuYWRkKFQrKEE/LTE6MSksYyk7cmV0dXJuKygtKFQrKFMtUikvKEE/Ui1GOkYtUikpfHwwKX0sYTpmdW5jdGlvbihrKXtyZXR1cm4gazwwP01hdGguY2VpbChrKXx8MDpNYXRoLmZsb29yKGspfSxwOmZ1bmN0aW9uKGspe3JldHVybntNOmMseTpkLHc6ZixkOmwsRDpoLGg6cyxtOm8sczppLG1zOnIsUTp1fVtrXXx8U3RyaW5nKGt8fCIiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLywiIil9LHU6ZnVuY3Rpb24oayl7cmV0dXJuIGs9PT12b2lkIDB9fSx3PSJlbiIsRT17fTtFW3ddPW07dmFyIEM9IiRpc0RheWpzT2JqZWN0Iix6PWZ1bmN0aW9uKGspe3JldHVybiBrIGluc3RhbmNlb2YgSHx8ISgha3x8IWtbQ10pfSxQPWZ1bmN0aW9uIGsoTixTLFQpe3ZhciBSO2lmKCFOKXJldHVybiB3O2lmKHR5cGVvZiBOPT0ic3RyaW5nIil7dmFyIEE9Ti50b0xvd2VyQ2FzZSgpO0VbQV0mJihSPUEpLFMmJihFW0FdPVMsUj1BKTt2YXIgRj1OLnNwbGl0KCItIik7aWYoIVImJkYubGVuZ3RoPjEpcmV0dXJuIGsoRlswXSl9ZWxzZXt2YXIgYWU9Ti5uYW1lO0VbYWVdPU4sUj1hZX1yZXR1cm4hVCYmUiYmKHc9UiksUnx8IVQmJnd9LF89ZnVuY3Rpb24oayxOKXtpZih6KGspKXJldHVybiBrLmNsb25lKCk7dmFyIFM9dHlwZW9mIE49PSJvYmplY3QiP046e307cmV0dXJuIFMuZGF0ZT1rLFMuYXJncz1hcmd1bWVudHMsbmV3IEgoUyl9LCQ9eTskLmw9UCwkLmk9eiwkLnc9ZnVuY3Rpb24oayxOKXtyZXR1cm4gXyhrLHtsb2NhbGU6Ti4kTCx1dGM6Ti4kdSx4Ok4uJHgsJG9mZnNldDpOLiRvZmZzZXR9KX07dmFyIEg9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gayhTKXt0aGlzLiRMPVAoUy5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZShTKSx0aGlzLiR4PXRoaXMuJHh8fFMueHx8e30sdGhpc1tDXT0hMH12YXIgTj1rLnByb3RvdHlwZTtyZXR1cm4gTi5wYXJzZT1mdW5jdGlvbihTKXt0aGlzLiRkPShmdW5jdGlvbihUKXt2YXIgUj1ULmRhdGUsQT1ULnV0YztpZihSPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtpZigkLnUoUikpcmV0dXJuIG5ldyBEYXRlO2lmKFIgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShSKTtpZih0eXBlb2YgUj09InN0cmluZyImJiEvWiQvaS50ZXN0KFIpKXt2YXIgRj1SLm1hdGNoKGIpO2lmKEYpe3ZhciBhZT1GWzJdLTF8fDAsVj0oRls3XXx8IjAiKS5zdWJzdHJpbmcoMCwzKTtyZXR1cm4gQT9uZXcgRGF0ZShEYXRlLlVUQyhGWzFdLGFlLEZbM118fDEsRls0XXx8MCxGWzVdfHwwLEZbNl18fDAsVikpOm5ldyBEYXRlKEZbMV0sYWUsRlszXXx8MSxGWzRdfHwwLEZbNV18fDAsRls2XXx8MCxWKX19cmV0dXJuIG5ldyBEYXRlKFIpfSkoUyksdGhpcy5pbml0KCl9LE4uaW5pdD1mdW5jdGlvbigpe3ZhciBTPXRoaXMuJGQ7dGhpcy4keT1TLmdldEZ1bGxZZWFyKCksdGhpcy4kTT1TLmdldE1vbnRoKCksdGhpcy4kRD1TLmdldERhdGUoKSx0aGlzLiRXPVMuZ2V0RGF5KCksdGhpcy4kSD1TLmdldEhvdXJzKCksdGhpcy4kbT1TLmdldE1pbnV0ZXMoKSx0aGlzLiRzPVMuZ2V0U2Vjb25kcygpLHRoaXMuJG1zPVMuZ2V0TWlsbGlzZWNvbmRzKCl9LE4uJHV0aWxzPWZ1bmN0aW9uKCl7cmV0dXJuICR9LE4uaXNWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvU3RyaW5nKCkhPT1nfSxOLmlzU2FtZT1mdW5jdGlvbihTLFQpe3ZhciBSPV8oUyk7cmV0dXJuIHRoaXMuc3RhcnRPZihUKTw9UiYmUjw9dGhpcy5lbmRPZihUKX0sTi5pc0FmdGVyPWZ1bmN0aW9uKFMsVCl7cmV0dXJuIF8oUyk8dGhpcy5zdGFydE9mKFQpfSxOLmlzQmVmb3JlPWZ1bmN0aW9uKFMsVCl7cmV0dXJuIHRoaXMuZW5kT2YoVCk8XyhTKX0sTi4kZz1mdW5jdGlvbihTLFQsUil7cmV0dXJuICQudShTKT90aGlzW1RdOnRoaXMuc2V0KFIsUyl9LE4udW5peD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LE4udmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLmdldFRpbWUoKX0sTi5zdGFydE9mPWZ1bmN0aW9uKFMsVCl7dmFyIFI9dGhpcyxBPSEhJC51KFQpfHxULEY9JC5wKFMpLGFlPWZ1bmN0aW9uKEksTyl7dmFyIEc9JC53KFIuJHU/RGF0ZS5VVEMoUi4keSxPLEkpOm5ldyBEYXRlKFIuJHksTyxJKSxSKTtyZXR1cm4gQT9HOkcuZW5kT2YobCl9LFY9ZnVuY3Rpb24oSSxPKXtyZXR1cm4gJC53KFIudG9EYXRlKClbSV0uYXBwbHkoUi50b0RhdGUoInMiKSwoQT9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKE8pKSxSKX0sU2U9dGhpcy4kVyx6ZT10aGlzLiRNLFc9dGhpcy4kRCxOZT0ic2V0IisodGhpcy4kdT8iVVRDIjoiIik7c3dpdGNoKEYpe2Nhc2UgZDpyZXR1cm4gQT9hZSgxLDApOmFlKDMxLDExKTtjYXNlIGM6cmV0dXJuIEE/YWUoMSx6ZSk6YWUoMCx6ZSsxKTtjYXNlIGY6dmFyIFJlPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCxYPShTZTxSZT9TZSs3OlNlKS1SZTtyZXR1cm4gYWUoQT9XLVg6VysoNi1YKSx6ZSk7Y2FzZSBsOmNhc2UgaDpyZXR1cm4gVihOZSsiSG91cnMiLDApO2Nhc2UgczpyZXR1cm4gVihOZSsiTWludXRlcyIsMSk7Y2FzZSBvOnJldHVybiBWKE5lKyJTZWNvbmRzIiwyKTtjYXNlIGk6cmV0dXJuIFYoTmUrIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sTi5lbmRPZj1mdW5jdGlvbihTKXtyZXR1cm4gdGhpcy5zdGFydE9mKFMsITEpfSxOLiRzZXQ9ZnVuY3Rpb24oUyxUKXt2YXIgUixBPSQucChTKSxGPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKSxhZT0oUj17fSxSW2xdPUYrIkRhdGUiLFJbaF09RisiRGF0ZSIsUltjXT1GKyJNb250aCIsUltkXT1GKyJGdWxsWWVhciIsUltzXT1GKyJIb3VycyIsUltvXT1GKyJNaW51dGVzIixSW2ldPUYrIlNlY29uZHMiLFJbcl09RisiTWlsbGlzZWNvbmRzIixSKVtBXSxWPUE9PT1sP3RoaXMuJEQrKFQtdGhpcy4kVyk6VDtpZihBPT09Y3x8QT09PWQpe3ZhciBTZT10aGlzLmNsb25lKCkuc2V0KGgsMSk7U2UuJGRbYWVdKFYpLFNlLmluaXQoKSx0aGlzLiRkPVNlLnNldChoLE1hdGgubWluKHRoaXMuJEQsU2UuZGF5c0luTW9udGgoKSkpLiRkfWVsc2UgYWUmJnRoaXMuJGRbYWVdKFYpO3JldHVybiB0aGlzLmluaXQoKSx0aGlzfSxOLnNldD1mdW5jdGlvbihTLFQpe3JldHVybiB0aGlzLmNsb25lKCkuJHNldChTLFQpfSxOLmdldD1mdW5jdGlvbihTKXtyZXR1cm4gdGhpc1skLnAoUyldKCl9LE4uYWRkPWZ1bmN0aW9uKFMsVCl7dmFyIFIsQT10aGlzO1M9TnVtYmVyKFMpO3ZhciBGPSQucChUKSxhZT1mdW5jdGlvbih6ZSl7dmFyIFc9XyhBKTtyZXR1cm4gJC53KFcuZGF0ZShXLmRhdGUoKStNYXRoLnJvdW5kKHplKlMpKSxBKX07aWYoRj09PWMpcmV0dXJuIHRoaXMuc2V0KGMsdGhpcy4kTStTKTtpZihGPT09ZClyZXR1cm4gdGhpcy5zZXQoZCx0aGlzLiR5K1MpO2lmKEY9PT1sKXJldHVybiBhZSgxKTtpZihGPT09ZilyZXR1cm4gYWUoNyk7dmFyIFY9KFI9e30sUltvXT1lLFJbc109YSxSW2ldPXQsUilbRl18fDEsU2U9dGhpcy4kZC5nZXRUaW1lKCkrUypWO3JldHVybiAkLncoU2UsdGhpcyl9LE4uc3VidHJhY3Q9ZnVuY3Rpb24oUyxUKXtyZXR1cm4gdGhpcy5hZGQoLTEqUyxUKX0sTi5mb3JtYXQ9ZnVuY3Rpb24oUyl7dmFyIFQ9dGhpcyxSPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gUi5pbnZhbGlkRGF0ZXx8Zzt2YXIgQT1TfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLEY9JC56KHRoaXMpLGFlPXRoaXMuJEgsVj10aGlzLiRtLFNlPXRoaXMuJE0semU9Ui53ZWVrZGF5cyxXPVIubW9udGhzLE5lPVIubWVyaWRpZW0sUmU9ZnVuY3Rpb24oTyxHLGosc2Upe3JldHVybiBPJiYoT1tHXXx8TyhULEEpKXx8altHXS5zbGljZSgwLHNlKX0sWD1mdW5jdGlvbihPKXtyZXR1cm4gJC5zKGFlJTEyfHwxMixPLCIwIil9LEk9TmV8fGZ1bmN0aW9uKE8sRyxqKXt2YXIgc2U9TzwxMj8iQU0iOiJQTSI7cmV0dXJuIGo/c2UudG9Mb3dlckNhc2UoKTpzZX07cmV0dXJuIEEucmVwbGFjZSh4LChmdW5jdGlvbihPLEcpe3JldHVybiBHfHwoZnVuY3Rpb24oail7c3dpdGNoKGope2Nhc2UiWVkiOnJldHVybiBTdHJpbmcoVC4keSkuc2xpY2UoLTIpO2Nhc2UiWVlZWSI6cmV0dXJuICQucyhULiR5LDQsIjAiKTtjYXNlIk0iOnJldHVybiBTZSsxO2Nhc2UiTU0iOnJldHVybiAkLnMoU2UrMSwyLCIwIik7Y2FzZSJNTU0iOnJldHVybiBSZShSLm1vbnRoc1Nob3J0LFNlLFcsMyk7Y2FzZSJNTU1NIjpyZXR1cm4gUmUoVyxTZSk7Y2FzZSJEIjpyZXR1cm4gVC4kRDtjYXNlIkREIjpyZXR1cm4gJC5zKFQuJEQsMiwiMCIpO2Nhc2UiZCI6cmV0dXJuIFN0cmluZyhULiRXKTtjYXNlImRkIjpyZXR1cm4gUmUoUi53ZWVrZGF5c01pbixULiRXLHplLDIpO2Nhc2UiZGRkIjpyZXR1cm4gUmUoUi53ZWVrZGF5c1Nob3J0LFQuJFcsemUsMyk7Y2FzZSJkZGRkIjpyZXR1cm4gemVbVC4kV107Y2FzZSJIIjpyZXR1cm4gU3RyaW5nKGFlKTtjYXNlIkhIIjpyZXR1cm4gJC5zKGFlLDIsIjAiKTtjYXNlImgiOnJldHVybiBYKDEpO2Nhc2UiaGgiOnJldHVybiBYKDIpO2Nhc2UiYSI6cmV0dXJuIEkoYWUsViwhMCk7Y2FzZSJBIjpyZXR1cm4gSShhZSxWLCExKTtjYXNlIm0iOnJldHVybiBTdHJpbmcoVik7Y2FzZSJtbSI6cmV0dXJuICQucyhWLDIsIjAiKTtjYXNlInMiOnJldHVybiBTdHJpbmcoVC4kcyk7Y2FzZSJzcyI6cmV0dXJuICQucyhULiRzLDIsIjAiKTtjYXNlIlNTUyI6cmV0dXJuICQucyhULiRtcywzLCIwIik7Y2FzZSJaIjpyZXR1cm4gRn1yZXR1cm4gbnVsbH0pKE8pfHxGLnJlcGxhY2UoIjoiLCIiKX0pKX0sTi51dGNPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gMTUqLU1hdGgucm91bmQodGhpcy4kZC5nZXRUaW1lem9uZU9mZnNldCgpLzE1KX0sTi5kaWZmPWZ1bmN0aW9uKFMsVCxSKXt2YXIgQSxGPXRoaXMsYWU9JC5wKFQpLFY9XyhTKSxTZT0oVi51dGNPZmZzZXQoKS10aGlzLnV0Y09mZnNldCgpKSplLHplPXRoaXMtVixXPWZ1bmN0aW9uKCl7cmV0dXJuICQubShGLFYpfTtzd2l0Y2goYWUpe2Nhc2UgZDpBPVcoKS8xMjticmVhaztjYXNlIGM6QT1XKCk7YnJlYWs7Y2FzZSB1OkE9VygpLzM7YnJlYWs7Y2FzZSBmOkE9KHplLVNlKS82MDQ4ZTU7YnJlYWs7Y2FzZSBsOkE9KHplLVNlKS84NjRlNTticmVhaztjYXNlIHM6QT16ZS9hO2JyZWFrO2Nhc2UgbzpBPXplL2U7YnJlYWs7Y2FzZSBpOkE9emUvdDticmVhaztkZWZhdWx0OkE9emV9cmV0dXJuIFI/QTokLmEoQSl9LE4uZGF5c0luTW9udGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRPZihjKS4kRH0sTi4kbG9jYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIEVbdGhpcy4kTF19LE4ubG9jYWxlPWZ1bmN0aW9uKFMsVCl7aWYoIVMpcmV0dXJuIHRoaXMuJEw7dmFyIFI9dGhpcy5jbG9uZSgpLEE9UChTLFQsITApO3JldHVybiBBJiYoUi4kTD1BKSxSfSxOLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuICQudyh0aGlzLiRkLHRoaXMpfSxOLnRvRGF0ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSl9LE4udG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWYWxpZCgpP3RoaXMudG9JU09TdHJpbmcoKTpudWxsfSxOLnRvSVNPU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQudG9JU09TdHJpbmcoKX0sTi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvVVRDU3RyaW5nKCl9LGt9KSgpLEw9SC5wcm90b3R5cGU7cmV0dXJuIF8ucHJvdG90eXBlPUwsW1siJG1zIixyXSxbIiRzIixpXSxbIiRtIixvXSxbIiRIIixzXSxbIiRXIixsXSxbIiRNIixjXSxbIiR5IixkXSxbIiREIixoXV0uZm9yRWFjaCgoZnVuY3Rpb24oayl7TFtrWzFdXT1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy4kZyhOLGtbMF0sa1sxXSl9fSkpLF8uZXh0ZW5kPWZ1bmN0aW9uKGssTil7cmV0dXJuIGsuJGl8fChrKE4sSCxfKSxrLiRpPSEwKSxffSxfLmxvY2FsZT1QLF8uaXNEYXlqcz16LF8udW5peD1mdW5jdGlvbihrKXtyZXR1cm4gXygxZTMqayl9LF8uZW49RVt3XSxfLkxzPUUsXy5wPXt9LF99KSl9KTt2YXIgUlZlPWN0KChaWixYWik9PnsoZnVuY3Rpb24odCxlKXt0eXBlb2YgWlo9PSJvYmplY3QiJiZ0eXBlb2YgWFo8InUiP1haLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOih0PXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR8fHNlbGYpLmRheWpzX3BsdWdpbl9pc1RvZGF5PWUoKX0pKFpaLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZnVuY3Rpb24odCxlLGEpe2UucHJvdG90eXBlLmlzVG9kYXk9ZnVuY3Rpb24oKXt2YXIgcj0iWVlZWS1NTS1ERCIsaT1hKCk7cmV0dXJuIHRoaXMuZm9ybWF0KHIpPT09aS5mb3JtYXQocil9fX0pKX0pO2Z1bmN0aW9uIE1VdCh0KXtyZXR1cm57ZGF5czpNYXRoLnRydW5jKHQvODY0ZTUpLGhvdXJzOk1hdGgudHJ1bmModC8zNmU1JTI0KSxtaW51dGVzOk1hdGgudHJ1bmModC82ZTQlNjApLHNlY29uZHM6TWF0aC50cnVuYyh0LzFlMyU2MCksbWlsbGlzZWNvbmRzOk1hdGgudHJ1bmModCUxZTMpLG1pY3Jvc2Vjb25kczpNYXRoLnRydW5jKEhWZSh0KjFlMyklMWUzKSxuYW5vc2Vjb25kczpNYXRoLnRydW5jKEhWZSh0KjFlNiklMWUzKX19ZnVuY3Rpb24gelV0KHQpe3JldHVybntkYXlzOnQvODY0MDAwMDBuLGhvdXJzOnQvMzYwMDAwMG4lMjRuLG1pbnV0ZXM6dC82MDAwMG4lNjBuLHNlY29uZHM6dC8xMDAwbiU2MG4sbWlsbGlzZWNvbmRzOnQlMTAwMG4sbWljcm9zZWNvbmRzOjBuLG5hbm9zZWNvbmRzOjBufX1mdW5jdGlvbiBRWih0KXtzd2l0Y2godHlwZW9mIHQpe2Nhc2UibnVtYmVyIjp7aWYoTnVtYmVyLmlzRmluaXRlKHQpKXJldHVybiBNVXQodCk7YnJlYWt9Y2FzZSJiaWdpbnQiOnJldHVybiB6VXQodCl9dGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmaW5pdGUgbnVtYmVyIG9yIGJpZ2ludCIpfXZhciBIVmUscVZlPW4oKCk9PntIVmU9dD0+TnVtYmVyLmlzRmluaXRlKHQpP3Q6MH0pO2Z1bmN0aW9uIHo4KHQsZSl7bGV0IGE9dHlwZW9mIHQ9PSJiaWdpbnQiO2lmKCFhJiYhTnVtYmVyLmlzRmluaXRlKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKTtlPXsuLi5lfTtsZXQgcj10PDA/Ii0iOiIiO3Q9dDwwPy10OnQsZS5jb2xvbk5vdGF0aW9uJiYoZS5jb21wYWN0PSExLGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzPSExLGUuc2VwYXJhdGVNaWxsaXNlY29uZHM9ITEsZS52ZXJib3NlPSExKSxlLmNvbXBhY3QmJihlLnVuaXRDb3VudD0xLGUuc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCxlLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCk7bGV0IGk9W10sbz0odSxkKT0+e2xldCBoPU1hdGguZmxvb3IodSoxMCoqZCtDVXQpO3JldHVybihNYXRoLnJvdW5kKGgpLzEwKipkKS50b0ZpeGVkKGQpfSxzPSh1LGQsaCxnKT0+e2lmKCEoKGkubGVuZ3RoPT09MHx8IWUuY29sb25Ob3RhdGlvbikmJmtVdCh1KSYmIShlLmNvbG9uTm90YXRpb24mJmg9PT0ibSIpKSl7aWYoZz8/PVN0cmluZyh1KSxlLmNvbG9uTm90YXRpb24pe2xldCBiPWcuaW5jbHVkZXMoIi4iKT9nLnNwbGl0KCIuIilbMF0ubGVuZ3RoOmcubGVuZ3RoLHg9aS5sZW5ndGg+MD8yOjE7Zz0iMCIucmVwZWF0KE1hdGgubWF4KDAseC1iKSkrZ31lbHNlIGcrPWUudmVyYm9zZT8iICIrU1V0KGQsdSk6aDtpLnB1c2goZyl9fSxsPVFaKHQpLGY9QmlnSW50KGwuZGF5cyk7aWYoZS5oaWRlWWVhckFuZERheXM/cyhCaWdJbnQoZikqMjRuK0JpZ0ludChsLmhvdXJzKSwiaG91ciIsImgiKTooZS5oaWRlWWVhcj9zKGYsImRheSIsImQiKToocyhmLzM2NW4sInllYXIiLCJ5IikscyhmJTM2NW4sImRheSIsImQiKSkscyhOdW1iZXIobC5ob3VycyksImhvdXIiLCJoIikpLHMoTnVtYmVyKGwubWludXRlcyksIm1pbnV0ZSIsIm0iKSwhZS5oaWRlU2Vjb25kcylpZihlLnNlcGFyYXRlTWlsbGlzZWNvbmRzfHxlLmZvcm1hdFN1Yk1pbGxpc2Vjb25kc3x8IWUuY29sb25Ob3RhdGlvbiYmdDwxZTMmJiFlLnN1YlNlY29uZHNBc0RlY2ltYWxzKXtsZXQgdT1OdW1iZXIobC5zZWNvbmRzKSxkPU51bWJlcihsLm1pbGxpc2Vjb25kcyksaD1OdW1iZXIobC5taWNyb3NlY29uZHMpLGc9TnVtYmVyKGwubmFub3NlY29uZHMpO2lmKHModSwic2Vjb25kIiwicyIpLGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzKXMoZCwibWlsbGlzZWNvbmQiLCJtcyIpLHMoaCwibWljcm9zZWNvbmQiLCJceEI1cyIpLHMoZywibmFub3NlY29uZCIsIm5zIik7ZWxzZXtsZXQgYj1kK2gvMWUzK2cvMWU2LHg9dHlwZW9mIGUubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0cz09Im51bWJlciI/ZS5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzOjAsbT1iPj0xP01hdGgucm91bmQoYik6TWF0aC5jZWlsKGIpLHY9eD9iLnRvRml4ZWQoeCk6bTtzKE51bWJlci5wYXJzZUZsb2F0KHYpLCJtaWxsaXNlY29uZCIsIm1zIix2KX19ZWxzZXtsZXQgdT0oYT9OdW1iZXIodCVMVXQpOnQpLzFlMyU2MCxkPXR5cGVvZiBlLnNlY29uZHNEZWNpbWFsRGlnaXRzPT0ibnVtYmVyIj9lLnNlY29uZHNEZWNpbWFsRGlnaXRzOjEsaD1vKHUsZCksZz1lLmtlZXBEZWNpbWFsc09uV2hvbGVTZWNvbmRzP2g6aC5yZXBsYWNlKC9cLjArJC8sIiIpO3MoTnVtYmVyLnBhcnNlRmxvYXQoZyksInNlY29uZCIsInMiLGcpfWlmKGkubGVuZ3RoPT09MClyZXR1cm4gcisiMCIrKGUudmVyYm9zZT8iIG1pbGxpc2Vjb25kcyI6Im1zIik7bGV0IGM9ZS5jb2xvbk5vdGF0aW9uPyI6IjoiICI7cmV0dXJuIHR5cGVvZiBlLnVuaXRDb3VudD09Im51bWJlciImJihpPWkuc2xpY2UoMCxNYXRoLm1heChlLnVuaXRDb3VudCwxKSkpLHIraS5qb2luKGMpfXZhciBrVXQsU1V0LENVdCxMVXQsVlZlPW4oKCk9PntxVmUoKTtrVXQ9dD0+dD09PTB8fHQ9PT0wbixTVXQ9KHQsZSk9PmU9PT0xfHxlPT09MW4/dDpgJHt0fXNgLENVdD0xZS03LExVdD0yNG4qNjBuKjYwbioxMDAwbn0pO3ZhciBxcyxVVmUscGk9bigoKT0+e2s4KCk7aWkoKTtwMigpO2VGZSgpO09WZSgpO3FzPU4yKEJWZSgpLDEpLFVWZT1OMihSVmUoKSwxKTtWVmUoKTtxcy5kZWZhdWx0LmV4dGVuZChVVmUuZGVmYXVsdCl9KTt2YXIgalZlLFdWZT1uKCgpPT57cGkoKTtqVmU9Y2xhc3N7Z2V0IGNyb25BcnJheSgpe3JldHVybiB0aGlzLmNyb25FeHByZXNzaW9uLnNwbGl0KCIgIil9Y29uc3RydWN0b3IoZSl7aWYodGhpcy5jcm9uRXhwcmVzc2lvbj1lLHRoaXMuY3JvbkFycmF5Lmxlbmd0aDw2KXRocm93IG5ldyBFcnJvcigiQ3JvblBhcnNlciBuZWVkcyBzZWNvbmQgbGV2ZWwgYWNjdXJhY3kiKX1nZXROZXh0UGFydE1hdGNoKGUsYSxyKXtpZihlPT09IioiKXJldHVybiBhO2lmKGUuaW5jbHVkZXMoIi8iKSl7bGV0IGk9cGFyc2VJbnQoZS5zcGxpdCgiLyIpWzFdLDEwKSxvPXM9PnMlaT09PTA/czpvKHMrMSk7cmV0dXJuIG8oYSl9aWYocGFyc2VJbnQoZSwxMCl8fGU9PT0iMCIpcmV0dXJuIHBhcnNlSW50KGUsMTApfW1zVG9OZXh0KCl7bGV0IGU9dGhpcy5jcm9uQXJyYXksYT1lWzBdLHI9ZVsxXSxpPWVbMl0sbz1lWzNdLHM9ZVs0XSxsPWVbNV0sZj1uZXcgRGF0ZSxjPWYuZ2V0U2Vjb25kcygpKzEsdT1mLmdldE1pbnV0ZXMoKSxkPWYuZ2V0SG91cnMoKSxoPWYuZ2V0RGF0ZSgpLGc9Zi5nZXRNb250aCgpLGI9Zi5nZXRGdWxsWWVhcigpLHg9dGhpcy5nZXROZXh0UGFydE1hdGNoKGEsYyw1OSk7eDxjJiYodT0odSsxKSU1OSk7bGV0IG09dGhpcy5nZXROZXh0UGFydE1hdGNoKHIsdSw1OSk7bTx1JiYoZD0oZCsxKSUyMyk7bGV0IHY9dGhpcy5nZXROZXh0UGFydE1hdGNoKGksZCwyMyk7djxkJiYoaD0oaCsxKSUzMCk7bGV0IHk9aDt5PGgmJihnPShnKzEpJTExKTtsZXQgdz1nO3c8ZyYmKGI9YisxKTtsZXQgRT1iO3JldHVybiBuZXcgRGF0ZShFLHcseSx2LG0seCkuZ2V0VGltZSgpLURhdGUubm93KCl9fX0pO3ZhciBTOCxLWj1uKCgpPT57cGkoKTtKWigpO1dWZSgpO1M4PWNsYXNze2NvbnN0cnVjdG9yKGUsYSxyKXt0aGlzLnN0YXR1cz0iaW5pdGlhbCIsdGhpcy5uZXh0RXhlY3V0aW9uVW5peD0wLHRoaXMuY3JvbkV4cHJlc3Npb249YSx0aGlzLmpvYkZ1bmN0aW9uPXIsdGhpcy5jcm9uUGFyc2VyPW5ldyB0OC5Dcm9uKGEpfWNoZWNrRXhlY3V0aW9uKCl7aWYodGhpcy5uZXh0RXhlY3V0aW9uVW5peD09PTAmJnRoaXMuZ2V0TmV4dEV4ZWN1dGlvblRpbWUoKSxEYXRlLm5vdygpPnRoaXMubmV4dEV4ZWN1dGlvblVuaXgpe2xldCBlPXRoaXMuam9iRnVuY3Rpb24odGhpcy5uZXh0RXhlY3V0aW9uVW5peCk7ZSBpbnN0YW5jZW9mIFByb21pc2UmJmUuY2F0Y2goYT0+Y29uc29sZS5sb2coYSkpLHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9dGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpfXJldHVybiB0aGlzLm5leHRFeGVjdXRpb25Vbml4fWdldE5leHRFeGVjdXRpb25UaW1lKCl7cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9RGF0ZS5ub3coKSt0aGlzLmdldFRpbWVUb05leHRFeGVjdXRpb24oKX1nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCl7cmV0dXJuIHRoaXMuY3JvblBhcnNlci5tc1RvTmV4dCgpfXN0YXJ0KCl7dGhpcy5zdGF0dXM9InN0YXJ0ZWQifXN0b3AoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCJ9fX0pO3ZhciBTbyxlWCx0WCxUVXQsZFI9bigoKT0+e3BpKCk7U289e3llYXJzOih0PTEpPT50KjMxNTRlNyxtb250aHM6KHQ9MSk9PnQqMjYyOGU2LHdlZWtzOih0PTEpPT50KjYwNDhlNSxkYXlzOih0PTEpPT50Kjg2NGU1LGhvdXJzOih0PTEpPT50KjM2ZTUsbWludXRlczoodD0xKT0+dCo2ZTQsc2Vjb25kczoodD0xKT0+dCoxZTN9LGVYPXQ9PntsZXQgZT0wLGE9cj0+e2U9ZStyfTtyZXR1cm4gdC55ZWFycyYmYShTby55ZWFycyh0LnllYXJzKSksdC5tb250aHMmJmEoU28ubW9udGhzKHQubW9udGhzKSksdC53ZWVrcyYmYShTby53ZWVrcyh0LndlZWtzKSksdC5kYXlzJiZhKFNvLmRheXModC5kYXlzKSksdC5ob3VycyYmYShTby5ob3Vycyh0LmhvdXJzKSksdC5taW51dGVzJiZhKFNvLm1pbnV0ZXModC5taW51dGVzKSksdC5zZWNvbmRzJiZhKFNvLnNlY29uZHModC5zZWNvbmRzKSksZX0sdFg9dD0+ejgodCksVFV0PXQ9Pk04LmZvcm1hdERpc3RhbmNlVG9Ob3cobmV3IERhdGUodCkpfSk7dmFyIGFYLEpaPW4oKCk9PntwaSgpO0taKCk7ZFIoKTthWD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLmNyb25qb2JzPW5ldyBCMS5PYmplY3RNYXB9YWRkQ3JvbmpvYihlLGEpe2xldCByPW5ldyBTOCh0aGlzLGUsYSk7cmV0dXJuIHRoaXMuY3JvbmpvYnMuYWRkKHIpLHRoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiZyLnN0YXJ0KCkscn1yZW1vdmVDcm9uam9iKGUpe2Uuc3RvcCgpLHRoaXMuY3JvbmpvYnMucmVtb3ZlKGUpfXN0YXJ0KCl7aWYodGhpcy5zdGF0dXMhPT0ic3RhcnRlZCIpe3RoaXMuc3RhdHVzPSJzdGFydGVkIjtmb3IobGV0IGUgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKWUuc3RhcnQoKTt0aGlzLnJ1bkNyb25DeWNsZSgpfX1hc3luYyBydW5Dcm9uQ3ljbGUoKXt0aGlzLmV4ZWN1dGlvblRpbWVvdXQ9bmV3IGZ0LlRpbWVvdXQoMCk7ZG97bGV0IGU7Zm9yKGxldCBhIG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSlhLmNoZWNrRXhlY3V0aW9uKCksKCFlfHxhLmdldFRpbWVUb05leHRFeGVjdXRpb24oKTxlLmdldFRpbWVUb05leHRFeGVjdXRpb24oKSkmJihlPWEpO2U/KHRoaXMuZXhlY3V0aW9uVGltZW91dD1uZXcgZnQuVGltZW91dChlLmdldFRpbWVUb05leHRFeGVjdXRpb24oKSksY29uc29sZS5sb2coYE5leHQgQ3JvbkpvYiBzY2hlZHVsZWQgaW4gJHt0WCh0aGlzLmV4ZWN1dGlvblRpbWVvdXQuZ2V0VGltZUxlZnQoKSl9YCkpOih0aGlzLmV4ZWN1dGlvblRpbWVvdXQ9bmV3IGZ0LlRpbWVvdXQoMWUzKSxjb25zb2xlLmxvZygibm8gY3JvbmpvYnMgc3BlY2lmaWVkISBDaGVja2luZyBhZ2FpbiBpbiAxIHNlY29uZCIpKSxhd2FpdCB0aGlzLmV4ZWN1dGlvblRpbWVvdXQucHJvbWlzZX13aGlsZSh0aGlzLnN0YXR1cz09PSJzdGFydGVkIil9c3RvcCgpe3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiPyh0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5leGVjdXRpb25UaW1lb3V0LmNhbmNlbCgpKTpjb25zb2xlLmxvZygiWW91IHRyaWVkIHRvIHN0b3AgYSBDcm9uTWFuYWdlciB0aGF0IHdhcyBub3QgYWN0dWFsbHkgc3RhcnRlZC4iKTtmb3IobGV0IGUgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKWUuc3RvcCgpfX19KTt2YXIgclgsR1ZlPW4oKCk9PntwaSgpO2RSKCk7clg9Y2xhc3MgdCBleHRlbmRzIERhdGV7c3RhdGljIGZyb21NaWxsaXMoZSl7cmV0dXJuIG5ldyB0KGUpfXN0YXRpYyBmcm9tRGF0ZShlKXtyZXR1cm4gbmV3IHQoZS5nZXRUaW1lKCkpfXN0YXRpYyBmcm9tRXVyb3BlYW5EYXRlKGUpe2xldCBhPS8oLiopXC4oLiopXC4oLiopLy5leGVjKGUpLGk9bmV3IERhdGUocGFyc2VGbG9hdChhWzNdKSxwYXJzZUZsb2F0KGFbMl0pLTEscGFyc2VGbG9hdChhWzFdKSkuZ2V0VGltZSgpO3JldHVybiBuZXcgdChpKX1zdGF0aWMgZnJvbUh5cGhlZERhdGUoZSl7bGV0IGE9bmV3IERhdGUoZSkuZ2V0VGltZSgpO3JldHVybiBuZXcgdChhKX1zdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZUFuZFRpbWUoZSxhPSIxMjowMDowMCIscj0iRXVyb3BlL0JlcmxpbiIpe2xldCBpPS8oLiopXC4oLiopXC4oLiopLy5leGVjKGUpLG89Yz0+YDAke2N9YC5zbGljZSgtMikscz1gJHtpWzNdfS0ke28oaVsyXSl9LSR7byhpWzFdKX1UJHthfWAsZj1xcy5kZWZhdWx0KHMpLnRvRGF0ZSgpLmdldFRpbWUoKTtyZXR1cm4gbmV3IHQoZil9Y29uc3RydWN0b3IoZT1EYXRlLm5vdygpKXtzdXBlcihlKX1leHBvcnRUb0V1cm9wZWFuRGF0ZSgpe2xldCBlPXRoaXMuZXhwb3J0VG9Vbml0cygpO3JldHVybmAke2UuZGF5U3RyaW5nfS4ke2UubW9udGhTdHJpbmd9LiR7ZS55ZWFyU3RyaW5nfWB9ZXhwb3J0VG9IeXBoZWRTb3J0YWJsZURhdGUoKXtsZXQgZT10aGlzLmV4cG9ydFRvVW5pdHMoKTtyZXR1cm5gJHtlLnllYXJTdHJpbmd9LSR7ZS5tb250aFN0cmluZ30tJHtlLmRheVN0cmluZ31gfWV4cG9ydFRvVW5pdHMoKXtsZXQgZT1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sYT1bIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5IiwiU3VuZGF5Il07cmV0dXJue3llYXI6dGhpcy5nZXRGdWxsWWVhcigpLHllYXJTdHJpbmc6YCR7dGhpcy5nZXRGdWxsWWVhcigpfWAsbW9udGg6dGhpcy5nZXRNb250aCgpKzEsbW9udGhTdHJpbmc6KCIwIisodGhpcy5nZXRNb250aCgpKzEpKS5zbGljZSgtMiksbW9udGhOYW1lOmVbdGhpcy5nZXRNb250aCgpXSxkYXk6dGhpcy5nZXREYXRlKCksZGF5U3RyaW5nOigiMCIrdGhpcy5nZXREYXRlKCkpLnNsaWNlKC0yKSxkYXlPZlRoZVdlZWs6dGhpcy5nZXREYXkoKSxkYXlPZlRoZVdlZWtOYW1lOmFbdGhpcy5nZXREYXkoKV19fWZvcm1hdChlKXtyZXR1cm4gcXMuZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuZm9ybWF0KGUpfWlzVG9kYXkoKXtyZXR1cm4gcXMuZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuaXNUb2RheSgpfWxlc3NUaW1lUGFzc2VkVG9Ob3coZSl7bGV0IGE9ZVgoZSk7cmV0dXJuIERhdGUubm93KCktdGhpcy5nZXRUaW1lKCk8YX1tb3JlVGltZVBhc3NlZFRvTm93KGUpe3JldHVybiF0aGlzLmxlc3NUaW1lUGFzc2VkVG9Ob3coZSl9fX0pO3ZhciBpWCxZVmU9bigoKT0+e2lYPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5uYW5vU2Vjb25kcz1udWxsLHRoaXMubWlsbGlTZWNvbmRzPW51bGwsdGhpcy5fbWlsbGlTdGFydD1udWxsLHRoaXMuX21pbGxpRGlmZj1udWxsLHRoaXMuX3N0YXJ0ZWQ9ITF9c3RhcnQoKXt0aGlzLl9zdGFydGVkPSEwLHRoaXMuX21pbGxpU3RhcnQ9RGF0ZS5ub3coKX1zdG9wKCl7aWYodGhpcy5fc3RhcnRlZD09PSExKXtjb25zb2xlLmxvZygiSGFzbid0IHN0YXJ0ZWQgeWV0Iik7cmV0dXJufXJldHVybiB0aGlzLl9taWxsaURpZmY9RGF0ZS5ub3coKS10aGlzLl9taWxsaVN0YXJ0LHRoaXMubmFub1NlY29uZHM9dGhpcy5fbWlsbGlEaWZmKjFlMyx0aGlzLm1pbGxpU2Vjb25kcz10aGlzLl9taWxsaURpZmYsdGhpc31yZXNldCgpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfX19KTt2YXIgb1gsWlZlPW4oKCk9PntwaSgpO29YPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbCx0aGlzLmludGVydmFsSm9icz1bXSx0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzPWV9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7bGV0IGU9bmV3IERhdGU7dGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPWUsKGFzeW5jKCk9Pntmb3IoO3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiZ0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249PT1lOylhd2FpdCBmdC5kZWxheUZvcih0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzKSx0aGlzLmV4ZWN1dGVJbnRlcnZhbEpvYnMoKX0pKCl9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbH1hZGRJbnRlcnZhbEpvYihlKXt0aGlzLmludGVydmFsSm9icy5wdXNoKGUpfWV4ZWN1dGVJbnRlcnZhbEpvYnMoKXtmb3IobGV0IGUgb2YgdGhpcy5pbnRlcnZhbEpvYnMpZSgpfX19KTt2YXIgdDYsc1g9bigoKT0+e3BpKCk7dDY9Y2xhc3MgdHtzdGF0aWMgZnJvbU1pbGxpU2Vjb25kcyhlKXtyZXR1cm4gbmV3IHQoZSl9c3RhdGljIGZyb21UaW1lU3RhbXAoZSl7bGV0IGE9bmV3IHQ7cmV0dXJuIGEuY2hhbmdlPWEubWlsbGlTZWNvbmRzLWUubWlsbGlTZWNvbmRzLGF9Y29uc3RydWN0b3IoZSl7dGhpcy5jaGFuZ2U9bnVsbCxlP3R5cGVvZiBlPT0ibnVtYmVyIiYmKHRoaXMuZGF0ZT1uZXcgRGF0ZShlKSk6dGhpcy5kYXRlPW5ldyBEYXRlLHRoaXMubWlsbGlTZWNvbmRzPXRoaXMuZGF0ZS5nZXRUaW1lKCksdGhpcy5lcG9jaHRpbWU9TWF0aC5mbG9vcih0aGlzLm1pbGxpU2Vjb25kcy8xZTMpfWlzT2xkZXJUaGFuT3RoZXJUaW1lU3RhbXAoZSxhPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kczxlLm1pbGxpU2Vjb25kcy1hfWlzT2xkZXJUaGFuKGUsYT0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHMrYTxlLm1pbGxpU2Vjb25kc31pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAoZSxhPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kcz5lLm1pbGxpU2Vjb25kcythfWlzWW91bmdlclRoYW5NaWxsaVNlY29uZHMoZSl7bGV0IHI9bmV3IHQoKS5lcG9jaHRpbWUtZSxpPW5ldyB0KHIpO3JldHVybiB0aGlzLmlzWW91bmdlclRoYW5PdGhlclRpbWVTdGFtcChpKX19fSk7dmFyIG5YLFhWZT1uKCgpPT57cGkoKTtzWCgpO25YPWNsYXNze2dldCB0aW1lTGVmdCgpe3JldHVybiB0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcy10aGlzLnBhdXNlZEF0LmNoYW5nZX1jb25zdHJ1Y3RvcihlKXt0aGlzLnN0YXRlPSJpbml0aWF0ZWQiLHRoaXMuY29tcGxldGVkRGVmZXJyZWQ9VmUuZGVmZXIoKSx0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcz1lLHRoaXMuY29tcGxldGVkPXRoaXMuY29tcGxldGVkRGVmZXJyZWQucHJvbWlzZX1zdGFydCgpe2lmKCF0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lSW5NaWxsaXNlY29uZHMpLHRoaXMuc3RhcnRlZEF0PW5ldyB0NjtlbHNlIHRocm93IG5ldyBFcnJvcigidGltZXIgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUuIFBsZWFzZSB1c2UgcmVzdW1lIGluc3RlYWQiKX1wYXVzZSgpe3RoaXMuc3RhcnRlZEF0JiYoY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudFRpbWVvdXQpLHRoaXMuY3VycmVudFRpbWVvdXQ9bnVsbCx0aGlzLnBhdXNlZEF0PXQ2LmZyb21UaW1lU3RhbXAodGhpcy5zdGFydGVkQXQpKX1yZXN1bWUoKXtpZih0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lTGVmdCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRpbWVyIGhhcyBOT1QgYmVlbiBzdGFydGVkIGJlZm9yZS4gUGxlYXNlIHVzZSAuc3RhcnQoKSBpbnN0ZWFkIil9cmVzZXQoKXt0aGlzLnBhdXNlKCksdGhpcy5zdGFydGVkQXQ9bnVsbCx0aGlzLnBhdXNlZEF0PW51bGx9fX0pO3ZhciBoaT17fTtldChoaSx7Q3JvbkpvYjooKT0+UzgsQ3Jvbk1hbmFnZXI6KCk9PmFYLEV4dGVuZGVkRGF0ZTooKT0+clgsSHJ0TWVhc3VyZW1lbnQ6KCk9PmlYLEludGVydmFsOigpPT5vWCxUaW1lU3RhbXA6KCk9PnQ2LFRpbWVyOigpPT5uWCxnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVBZ29UaW1lOigpPT5UVXQsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nOigpPT50WCxnZXRNaWxsaVNlY29uZHNGcm9tVW5pdHM6KCk9PmVYLHVuaXRzOigpPT5Tb30pO3ZhciBsWD1uKCgpPT57SlooKTtLWigpO0dWZSgpO1lWZSgpO1pWZSgpO1hWZSgpO3NYKCk7ZFIoKX0pO3ZhciBLVmU9Y3QoKE1IMSxRVmUpPT57InVzZSBzdHJpY3QiO1FWZS5leHBvcnRzPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5wYXJlbnQ9bnVsbCx0aGlzLnByZXZpb3VzU2libGluZz1udWxsLHRoaXMubmV4dFNpYmxpbmc9bnVsbCx0aGlzLmZpcnN0Q2hpbGQ9bnVsbCx0aGlzLmxhc3RDaGlsZD1udWxsLHRoaXMuY2hpbGRyZW5WZXJzaW9uPTAsdGhpcy5jaGlsZEluZGV4Q2FjaGVkVXBUbz1udWxsLHRoaXMuY2FjaGVkSW5kZXg9LTEsdGhpcy5jYWNoZWRJbmRleFZlcnNpb249TmFOfWdldCBpc0F0dGFjaGVkKCl7cmV0dXJuISEodGhpcy5wYXJlbnR8fHRoaXMucHJldmlvdXNTaWJsaW5nfHx0aGlzLm5leHRTaWJsaW5nKX1nZXQgaGFzQ2hpbGRyZW4oKXtyZXR1cm4hIXRoaXMuZmlyc3RDaGlsZH1jaGlsZHJlbkNoYW5nZWQoKXt0aGlzLmNoaWxkcmVuVmVyc2lvbj10aGlzLmNoaWxkcmVuVmVyc2lvbisxJjQyOTQ5NjcyOTUsdGhpcy5jaGlsZEluZGV4Q2FjaGVkVXBUbz1udWxsfWdldENhY2hlZEluZGV4KGUpe3JldHVybiB0aGlzLmNhY2hlZEluZGV4VmVyc2lvbiE9PWUuY2hpbGRyZW5WZXJzaW9uPyh0aGlzLmNhY2hlZEluZGV4VmVyc2lvbj1OYU4sLTEpOnRoaXMuY2FjaGVkSW5kZXh9c2V0Q2FjaGVkSW5kZXgoZSxhKXt0aGlzLmNhY2hlZEluZGV4VmVyc2lvbj1lLmNoaWxkcmVuVmVyc2lvbix0aGlzLmNhY2hlZEluZGV4PWF9fX0pO3ZhciBlVWU9Y3QoKHpIMSxKVmUpPT57InVzZSBzdHJpY3QiO0pWZS5leHBvcnRzPU9iamVjdC5mcmVlemUoe0RJU0NPTk5FQ1RFRDoxLFBSRUNFRElORzoyLEZPTExPV0lORzo0LENPTlRBSU5TOjgsQ09OVEFJTkVEX0JZOjE2fSl9KTt2YXIgb1VlPWN0KChrSDEsaVVlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdFVlPVN5bWJvbCgpLGFVZT1TeW1ib2woKSxDbz1TeW1ib2woKSxyVWU9U3ltYm9sKCksamE9Y2xhc3N7Y29uc3RydWN0b3IoZSxhLHIsaSl7dGhpc1t0VWVdPWUsdGhpc1thVWVdPWEsdGhpc1tDb109cix0aGlzW3JVZV09aX1uZXh0KCl7bGV0IGU9dGhpc1t0VWVdLGE9dGhpc1tyVWVdLHI9dGhpc1thVWVdO2lmKCF0aGlzW0NvXSlyZXR1cm57ZG9uZTohMCx2YWx1ZTpyfTtsZXQgaT10aGlzW0NvXTtyZXR1cm4gYT09PTE/dGhpc1tDb109ZS5fbm9kZShpKS5wcmV2aW91c1NpYmxpbmc6YT09PTI/dGhpc1tDb109ZS5fbm9kZShpKS5uZXh0U2libGluZzphPT09Mz90aGlzW0NvXT1lLl9ub2RlKGkpLnBhcmVudDphPT09ND90aGlzW0NvXT1lLnByZWNlZGluZyhpLHtyb290OnJ9KTp0aGlzW0NvXT1lLmZvbGxvd2luZyhpLHtyb290OnJ9KSx7ZG9uZTohMSx2YWx1ZTppfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShqYS5wcm90b3R5cGUsU3ltYm9sLml0ZXJhdG9yLHt2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzfSx3cml0YWJsZTohMX0pLGphLlBSRVY9MSxqYS5ORVhUPTIsamEuUEFSRU5UPTMsamEuUFJFQ0VESU5HPTQsamEuRk9MTE9XSU5HPTUsT2JqZWN0LmZyZWV6ZShqYSksT2JqZWN0LmZyZWV6ZShqYS5wcm90b3R5cGUpLGlVZS5leHBvcnRzPWphfSk7dmFyIGRYPWN0KChTSDEsc1VlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgQVV0PUtWZSgpLExvPWVVZSgpLFNhPW9VZSgpO2Z1bmN0aW9uIGNYKCl7cmV0dXJuITB9ZnVuY3Rpb24gYTYodCxlKXtyZXR1cm4gdFt0Lmxlbmd0aC0xLWVdfXZhciBmUj1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLnN5bWJvbD1TeW1ib2woZXx8IlN5bWJvbFRyZWUgZGF0YSIpfWluaXRpYWxpemUoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSksZX1fbm9kZShlKXtpZighZSlyZXR1cm4gbnVsbDtsZXQgYT1lW3RoaXMuc3ltYm9sXTtyZXR1cm4gYXx8KGVbdGhpcy5zeW1ib2xdPW5ldyBBVXQpfWhhc0NoaWxkcmVuKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLmhhc0NoaWxkcmVufWZpcnN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkuZmlyc3RDaGlsZH1sYXN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkubGFzdENoaWxkfXByZXZpb3VzU2libGluZyhlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5wcmV2aW91c1NpYmxpbmd9bmV4dFNpYmxpbmcoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkubmV4dFNpYmxpbmd9cGFyZW50KGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLnBhcmVudH1sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKXtsZXQgYSxyPWU7Zm9yKDthPXRoaXMuX25vZGUocikubGFzdENoaWxkOylyPWE7cmV0dXJuIHJ9cHJlY2VkaW5nKGUsYSl7bGV0IHI9YSYmYS5yb290O2lmKGU9PT1yKXJldHVybiBudWxsO2xldCBpPXRoaXMuX25vZGUoZSkucHJldmlvdXNTaWJsaW5nO3JldHVybiBpP3RoaXMubGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoaSk6dGhpcy5fbm9kZShlKS5wYXJlbnR9Zm9sbG93aW5nKGUsYSl7bGV0IHI9YSYmYS5yb290LG89IShhJiZhLnNraXBDaGlsZHJlbikmJnRoaXMuX25vZGUoZSkuZmlyc3RDaGlsZDtpZihvKXJldHVybiBvO2xldCBzPWU7ZG97aWYocz09PXIpcmV0dXJuIG51bGw7bGV0IGw9dGhpcy5fbm9kZShzKS5uZXh0U2libGluZztpZihsKXJldHVybiBsO3M9dGhpcy5fbm9kZShzKS5wYXJlbnR9d2hpbGUocyk7cmV0dXJuIG51bGx9Y2hpbGRyZW5Ub0FycmF5KGUsYSl7bGV0IHI9YSYmYS5hcnJheXx8W10saT1hJiZhLmZpbHRlcnx8Y1gsbz1hJiZhLnRoaXNBcmd8fHZvaWQgMCxzPXRoaXMuX25vZGUoZSksbD1zLmZpcnN0Q2hpbGQsZj0wO2Zvcig7bDspe2xldCBjPXRoaXMuX25vZGUobCk7Yy5zZXRDYWNoZWRJbmRleChzLGYpLGkuY2FsbChvLGwpJiZyLnB1c2gobCksbD1jLm5leHRTaWJsaW5nLCsrZn1yZXR1cm4gcn1hbmNlc3RvcnNUb0FycmF5KGUsYSl7bGV0IHI9YSYmYS5hcnJheXx8W10saT1hJiZhLmZpbHRlcnx8Y1gsbz1hJiZhLnRoaXNBcmd8fHZvaWQgMCxzPWU7Zm9yKDtzOylpLmNhbGwobyxzKSYmci5wdXNoKHMpLHM9dGhpcy5fbm9kZShzKS5wYXJlbnQ7cmV0dXJuIHJ9dHJlZVRvQXJyYXkoZSxhKXtsZXQgcj1hJiZhLmFycmF5fHxbXSxpPWEmJmEuZmlsdGVyfHxjWCxvPWEmJmEudGhpc0FyZ3x8dm9pZCAwLHM9ZTtmb3IoO3M7KWkuY2FsbChvLHMpJiZyLnB1c2gocykscz10aGlzLmZvbGxvd2luZyhzLHtyb290OmV9KTtyZXR1cm4gcn1jaGlsZHJlbkl0ZXJhdG9yKGUsYSl7bGV0IHI9YSYmYS5yZXZlcnNlLGk9dGhpcy5fbm9kZShlKTtyZXR1cm4gbmV3IFNhKHRoaXMsZSxyP2kubGFzdENoaWxkOmkuZmlyc3RDaGlsZCxyP1NhLlBSRVY6U2EuTkVYVCl9cHJldmlvdXNTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiBuZXcgU2EodGhpcyxlLHRoaXMuX25vZGUoZSkucHJldmlvdXNTaWJsaW5nLFNhLlBSRVYpfW5leHRTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiBuZXcgU2EodGhpcyxlLHRoaXMuX25vZGUoZSkubmV4dFNpYmxpbmcsU2EuTkVYVCl9YW5jZXN0b3JzSXRlcmF0b3IoZSl7cmV0dXJuIG5ldyBTYSh0aGlzLGUsZSxTYS5QQVJFTlQpfXRyZWVJdGVyYXRvcihlLGEpe2xldCByPWEmJmEucmV2ZXJzZTtyZXR1cm4gbmV3IFNhKHRoaXMsZSxyP3RoaXMubGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSk6ZSxyP1NhLlBSRUNFRElORzpTYS5GT0xMT1dJTkcpfWluZGV4KGUpe2xldCBhPXRoaXMuX25vZGUoZSkscj10aGlzLl9ub2RlKGEucGFyZW50KTtpZighcilyZXR1cm4tMTtsZXQgaT1hLmdldENhY2hlZEluZGV4KHIpO2lmKGk+PTApcmV0dXJuIGk7aT0wO2xldCBvPXIuZmlyc3RDaGlsZDtpZihyLmNoaWxkSW5kZXhDYWNoZWRVcFRvKXtsZXQgcz10aGlzLl9ub2RlKHIuY2hpbGRJbmRleENhY2hlZFVwVG8pO289cy5uZXh0U2libGluZyxpPXMuZ2V0Q2FjaGVkSW5kZXgocikrMX1mb3IoO287KXtsZXQgcz10aGlzLl9ub2RlKG8pO2lmKHMuc2V0Q2FjaGVkSW5kZXgocixpKSxvPT09ZSlicmVhazsrK2ksbz1zLm5leHRTaWJsaW5nfXJldHVybiByLmNoaWxkSW5kZXhDYWNoZWRVcFRvPWUsaX1jaGlsZHJlbkNvdW50KGUpe2xldCBhPXRoaXMuX25vZGUoZSk7cmV0dXJuIGEubGFzdENoaWxkP3RoaXMuaW5kZXgoYS5sYXN0Q2hpbGQpKzE6MH1jb21wYXJlVHJlZVBvc2l0aW9uKGUsYSl7aWYoZT09PWEpcmV0dXJuIDA7bGV0IHI9W107e2xldCB1PWU7Zm9yKDt1Oyl7aWYodT09PWEpcmV0dXJuIExvLkNPTlRBSU5TfExvLlBSRUNFRElORztyLnB1c2godSksdT10aGlzLnBhcmVudCh1KX19bGV0IGk9W107e2xldCB1PWE7Zm9yKDt1Oyl7aWYodT09PWUpcmV0dXJuIExvLkNPTlRBSU5FRF9CWXxMby5GT0xMT1dJTkc7aS5wdXNoKHUpLHU9dGhpcy5wYXJlbnQodSl9fWxldCBvPWE2KHIsMCk7aWYoIW98fG8hPT1hNihpLDApKXJldHVybiBMby5ESVNDT05ORUNURUQ7bGV0IHM9MCxsPU1hdGgubWluKHIubGVuZ3RoLGkubGVuZ3RoKTtmb3IobGV0IHU9MDt1PGw7Kyt1KXtsZXQgZD1hNihyLHUpLGg9YTYoaSx1KTtpZihkIT09aClicmVhaztzPXV9bGV0IGY9dGhpcy5pbmRleChhNihyLHMrMSkpO3JldHVybiB0aGlzLmluZGV4KGE2KGkscysxKSk8Zj9Mby5QUkVDRURJTkc6TG8uRk9MTE9XSU5HfXJlbW92ZShlKXtsZXQgYT10aGlzLl9ub2RlKGUpLHI9dGhpcy5fbm9kZShhLnBhcmVudCksaT10aGlzLl9ub2RlKGEucHJldmlvdXNTaWJsaW5nKSxvPXRoaXMuX25vZGUoYS5uZXh0U2libGluZyk7cmV0dXJuIHImJihyLmZpcnN0Q2hpbGQ9PT1lJiYoci5maXJzdENoaWxkPWEubmV4dFNpYmxpbmcpLHIubGFzdENoaWxkPT09ZSYmKHIubGFzdENoaWxkPWEucHJldmlvdXNTaWJsaW5nKSksaSYmKGkubmV4dFNpYmxpbmc9YS5uZXh0U2libGluZyksbyYmKG8ucHJldmlvdXNTaWJsaW5nPWEucHJldmlvdXNTaWJsaW5nKSxhLnBhcmVudD1udWxsLGEucHJldmlvdXNTaWJsaW5nPW51bGwsYS5uZXh0U2libGluZz1udWxsLGEuY2FjaGVkSW5kZXg9LTEsYS5jYWNoZWRJbmRleFZlcnNpb249TmFOLHImJnIuY2hpbGRyZW5DaGFuZ2VkKCksZX1pbnNlcnRCZWZvcmUoZSxhKXtsZXQgcj10aGlzLl9ub2RlKGUpLGk9dGhpcy5fbm9kZShyLnByZXZpb3VzU2libGluZyksbz10aGlzLl9ub2RlKGEpLHM9dGhpcy5fbm9kZShyLnBhcmVudCk7aWYoby5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIG8ucGFyZW50PXIucGFyZW50LG8ucHJldmlvdXNTaWJsaW5nPXIucHJldmlvdXNTaWJsaW5nLG8ubmV4dFNpYmxpbmc9ZSxyLnByZXZpb3VzU2libGluZz1hLGkmJihpLm5leHRTaWJsaW5nPWEpLHMmJnMuZmlyc3RDaGlsZD09PWUmJihzLmZpcnN0Q2hpbGQ9YSkscyYmcy5jaGlsZHJlbkNoYW5nZWQoKSxhfWluc2VydEFmdGVyKGUsYSl7bGV0IHI9dGhpcy5fbm9kZShlKSxpPXRoaXMuX25vZGUoci5uZXh0U2libGluZyksbz10aGlzLl9ub2RlKGEpLHM9dGhpcy5fbm9kZShyLnBhcmVudCk7aWYoby5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIG8ucGFyZW50PXIucGFyZW50LG8ucHJldmlvdXNTaWJsaW5nPWUsby5uZXh0U2libGluZz1yLm5leHRTaWJsaW5nLHIubmV4dFNpYmxpbmc9YSxpJiYoaS5wcmV2aW91c1NpYmxpbmc9YSkscyYmcy5sYXN0Q2hpbGQ9PT1lJiYocy5sYXN0Q2hpbGQ9YSkscyYmcy5jaGlsZHJlbkNoYW5nZWQoKSxhfXByZXBlbmRDaGlsZChlLGEpe2xldCByPXRoaXMuX25vZGUoZSksaT10aGlzLl9ub2RlKGEpO2lmKGkuaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiByLmhhc0NoaWxkcmVuP3RoaXMuaW5zZXJ0QmVmb3JlKHIuZmlyc3RDaGlsZCxhKTooaS5wYXJlbnQ9ZSxyLmZpcnN0Q2hpbGQ9YSxyLmxhc3RDaGlsZD1hLHIuY2hpbGRyZW5DaGFuZ2VkKCkpLGF9YXBwZW5kQ2hpbGQoZSxhKXtsZXQgcj10aGlzLl9ub2RlKGUpLGk9dGhpcy5fbm9kZShhKTtpZihpLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gci5oYXNDaGlsZHJlbj90aGlzLmluc2VydEFmdGVyKHIubGFzdENoaWxkLGEpOihpLnBhcmVudD1lLHIuZmlyc3RDaGlsZD1hLHIubGFzdENoaWxkPWEsci5jaGlsZHJlbkNoYW5nZWQoKSksYX19O3NVZS5leHBvcnRzPWZSLGZSLlRyZWVQb3NpdGlvbj1Mb30pO3ZhciB1UixDYT1uKCgpPT57aWkoKTtSWSgpO3AyKCk7VmEoKTtsWCgpO3VSPU4yKGRYKCksMSl9KTt2YXIgZlgsblVlPW4oKCk9PntDYSgpO2ZYPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5leGVjdXRpb25TbG90cz1bXSx0aGlzLmlzUHJvY2Vzc2luZz0hMSx0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5PTEvMCx0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudD0wLHRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlPVtdfWFzeW5jIGdldEV4Y2x1c2l2ZUV4ZWN1dGlvblNsb3QoZSxhKXtsZXQgcj1WZS5kZWZlcigpLGk9e2Z1bmNUb0V4ZWN1dGU6ZSxleGVjdXRpb25EZWZlcnJlZDpyLHRpbWVvdXQ6YSxtb2RlOiJleGNsdXNpdmUifTtyZXR1cm4gdGhpcy5leGVjdXRpb25TbG90cy5wdXNoKGkpLHRoaXMucHJvY2Vzc0V4ZWN1dGlvblNsb3RzKCksci5wcm9taXNlfWFzeW5jIGdldE5vbkV4Y2x1c2l2ZUV4ZWN1dGlvblNsb3QoZSxhKXtsZXQgcj1WZS5kZWZlcigpLGk9e2Z1bmNUb0V4ZWN1dGU6ZSxleGVjdXRpb25EZWZlcnJlZDpyLHRpbWVvdXQ6YSxtb2RlOiJub25leGNsdXNpdmUifTtyZXR1cm4gdGhpcy5leGVjdXRpb25TbG90cy5wdXNoKGkpLHRoaXMucHJvY2Vzc0V4ZWN1dGlvblNsb3RzKCksci5wcm9taXNlfXNldE5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KGUpe2lmKCFOdW1iZXIuaXNGaW5pdGUoZSl8fGU8MSl0aHJvdyBuZXcgRXJyb3IoIm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5IG11c3QgYmUgYSBmaW5pdGUgbnVtYmVyID49IDEiKTt0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5PWV9Z2V0Tm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3koKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeX1nZXRBY3RpdmVOb25FeGNsdXNpdmVDb3VudCgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudH1nZXRQZW5kaW5nTm9uRXhjbHVzaXZlQ291bnQoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWUubGVuZ3RofWFzeW5jIHByb2Nlc3NFeGVjdXRpb25TbG90cygpe2lmKCF0aGlzLmlzUHJvY2Vzc2luZyl7Zm9yKHRoaXMuaXNQcm9jZXNzaW5nPSEwO3RoaXMuZXhlY3V0aW9uU2xvdHMubGVuZ3RoPjA7KXtsZXQgZT10aGlzLmV4ZWN1dGlvblNsb3RzWzBdO2lmKGUubW9kZT09PSJleGNsdXNpdmUiKWF3YWl0IHRoaXMuZXhlY3V0ZUV4Y2x1c2l2ZVNsb3QoZSksdGhpcy5leGVjdXRpb25TbG90cy5zaGlmdCgpO2Vsc2V7bGV0IGE9W107Zm9yKDt0aGlzLmV4ZWN1dGlvblNsb3RzLmxlbmd0aD4wJiZ0aGlzLmV4ZWN1dGlvblNsb3RzWzBdLm1vZGU9PT0ibm9uZXhjbHVzaXZlIjspYS5wdXNoKHRoaXMuZXhlY3V0aW9uU2xvdHMuc2hpZnQoKSk7YXdhaXQgdGhpcy5leGVjdXRlTm9uRXhjbHVzaXZlU2xvdHMoYSl9fXRoaXMuaXNQcm9jZXNzaW5nPSExfX1hc3luYyBleGVjdXRlRXhjbHVzaXZlU2xvdChlKXt0cnl7aWYoZS50aW1lb3V0KXtsZXQgYT1hd2FpdCBQcm9taXNlLnJhY2UoW2UuZnVuY1RvRXhlY3V0ZSgpLGZ0LmRlbGF5Rm9yKGUudGltZW91dCkudGhlbigoKT0+e3Rocm93IG5ldyBFcnJvcigiVGltZW91dCByZWFjaGVkIil9KV0pO2UuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX1lbHNle2xldCBhPWF3YWl0IGUuZnVuY1RvRXhlY3V0ZSgpO2UuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX19Y2F0Y2goYSl7ZS5leGVjdXRpb25EZWZlcnJlZC5yZWplY3QoYSl9fWFzeW5jIGV4ZWN1dGVOb25FeGNsdXNpdmVTbG90cyhlKXtsZXQgYT1lLm1hcChhc3luYyByPT57YXdhaXQgdGhpcy53YWl0Rm9yTm9uRXhjbHVzaXZlU2xvdCgpO3RyeXtpZihyLnRpbWVvdXQpe2xldCBpPWF3YWl0IFByb21pc2UucmFjZShbci5mdW5jVG9FeGVjdXRlKCksZnQuZGVsYXlGb3Ioci50aW1lb3V0KS50aGVuKCgpPT57dGhyb3cgbmV3IEVycm9yKCJUaW1lb3V0IHJlYWNoZWQiKX0pXSk7ci5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKGkpfWVsc2V7bGV0IGk9YXdhaXQgci5mdW5jVG9FeGVjdXRlKCk7ci5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKGkpfX1jYXRjaChpKXtyLmV4ZWN1dGlvbkRlZmVycmVkLnJlamVjdChpKX1maW5hbGx5e3RoaXMucmVsZWFzZU5vbkV4Y2x1c2l2ZVNsb3QoKX19KTthd2FpdCBQcm9taXNlLmFsbChhKX13YWl0Rm9yTm9uRXhjbHVzaXZlU2xvdCgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudDx0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5Pyh0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrLFByb21pc2UucmVzb2x2ZSgpKTpuZXcgUHJvbWlzZShlPT57dGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWUucHVzaCgoKT0+e3RoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50KyssZSgpfSl9KX1yZWxlYXNlTm9uRXhjbHVzaXZlU2xvdCgpe3RoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50LS07bGV0IGU9dGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWUuc2hpZnQoKTtlJiZlKCl9fX0pO3ZhciB1WCxsVWU9bigoKT0+e0NhKCk7dVg9Y2xhc3N7Y29uc3RydWN0b3IoZT0xNil7dGhpcy5oYXNTcGFjZT1uZXcgQ3Qucnhqcy5TdWJqZWN0LHRoaXMuaXRlbXNBdmFpbGFibGU9bmV3IEN0LnJ4anMuU3ViamVjdCx0aGlzLmRhdGE9W10sdGhpcy5oaWdoV2F0ZXJNYXJrPWV9cHVzaChlKXt0aGlzLmRhdGEucHVzaChlKSx0aGlzLml0ZW1zQXZhaWxhYmxlLm5leHQoIml0ZW1zQXZhaWxhYmxlIik7bGV0IGE9dGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCk7cmV0dXJuIGEmJnRoaXMuaGFzU3BhY2UubmV4dCgiaGFzU3BhY2UiKSxhfXNoaWZ0KCl7bGV0IGU9dGhpcy5kYXRhLnNoaWZ0KCk7cmV0dXJuIHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpJiZ0aGlzLmhhc1NwYWNlLm5leHQoImhhc1NwYWNlIiksZX1jaGVja1NwYWNlQXZhaWxhYmxlKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg8dGhpcy5oaWdoV2F0ZXJNYXJrfWNoZWNrSGFzSXRlbXMoKXtyZXR1cm4gdGhpcy5kYXRhLmxlbmd0aD4wfXdhaXRGb3JTcGFjZSgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57aWYodGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCkpZSgpO2Vsc2V7bGV0IGE9dGhpcy5oYXNTcGFjZS5zdWJzY3JpYmUoKCk9PnthLnVuc3Vic2NyaWJlKCksZSgpfSl9fSl9d2FpdEZvckl0ZW1zKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntpZih0aGlzLmRhdGEubGVuZ3RoPjApZSgpO2Vsc2V7bGV0IGE9dGhpcy5pdGVtc0F2YWlsYWJsZS5zdWJzY3JpYmUoKCk9PnthLnVuc3Vic2NyaWJlKCksZSgpfSl9fSl9fX0pO3ZhciBDOCxwWD1uKCgpPT57Q2EoKTtDOD1jbGFzcyB0e2NvbnN0cnVjdG9yKCl7dGhpcy5tYXBPYmplY3Q9e319aXNVbmlxdWVLZXkoZSl7cmV0dXJuIXRoaXMubWFwT2JqZWN0W2VdfWFkZFRvTWFwKGUsYSxyKXtyZXR1cm4gdGhpcy5pc1VuaXF1ZUtleShlKXx8ciYmci5mb3JjZT8odGhpcy5tYXBPYmplY3RbZV09YSwhMCk6ITF9Z2V0QnlLZXkoZSl7cmV0dXJuIHRoaXMubWFwT2JqZWN0W2VdfXJlbW92ZUZyb21NYXAoZSl7bGV0IGE9dGhpcy5nZXRCeUtleShlKTtyZXR1cm4gZGVsZXRlIHRoaXMubWFwT2JqZWN0W2VdLGF9Z2V0S2V5cygpe2xldCBlPVtdO2ZvcihsZXQgYSBpbiB0aGlzLm1hcE9iamVjdCl0aGlzLm1hcE9iamVjdFthXSYmZS5wdXNoKGEpO3JldHVybiBlfWNsZWFuKCl7dGhpcy5tYXBPYmplY3Q9e319Y29uY2F0KGUpe2xldCBhPW5ldyB0O2ZvcihsZXQgciBvZiB0aGlzLmdldEtleXMoKSlhLmFkZFRvTWFwKHIsdGhpcy5nZXRCeUtleShyKSk7Zm9yKGxldCByIG9mIGUuZ2V0S2V5cygpKWEuYWRkVG9NYXAocixlLmdldEJ5S2V5KHIpLHtmb3JjZTohMH0pO3JldHVybiBhfWFkZEFsbEZyb21PdGhlcihlKXtmb3IobGV0IGEgb2YgZS5nZXRLZXlzKCkpdGhpcy5hZGRUb01hcChhLGUuZ2V0QnlLZXkoYSkse2ZvcmNlOiEwfSl9YXN5bmMgZmluZChlKXtmb3IobGV0IGEgb2YgdGhpcy5nZXRLZXlzKCkpe2xldCByPXRoaXMuZ2V0QnlLZXkoYSk7aWYoYXdhaXQgZShyKSlyZXR1cm4gcn19fX0pO3ZhciBjVWUsVnMscFI9bigoKT0+e0NhKCk7cFgoKTtjVWU9KHQ9InVuaSIpPT5gJHt0fXh4eHh4eHh4eHh4YC5yZXBsYWNlKC9beHldL2csZT0+e2xldCBhPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4oZT09PSJ4Ij9hOmEmM3w4KS50b1N0cmluZygxNil9KSxWcz1jbGFzcyB0e2NvbnN0cnVjdG9yKCl7dGhpcy5mYXN0TWFwPW5ldyBDOCx0aGlzLmV2ZW50U3ViamVjdD1uZXcgQ3Qucnhqcy5TdWJqZWN0fWFkZE1hcHBlZFVuaXF1ZShlLGEpe3RoaXMuZmFzdE1hcC5hZGRUb01hcChlLGEpfWdldE1hcHBlZFVuaXF1ZShlKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmdldEJ5S2V5KGUpfXJlbW92ZU1hcHBlZFVuaXF1ZShlKXtsZXQgYT10aGlzLmdldE1hcHBlZFVuaXF1ZShlKX1hZGQoZSl7Zm9yKGxldCByIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpaWYodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpPT09ZSlyZXR1cm4gcjtsZXQgYT1jVWUoImtleSIpO3JldHVybiB0aGlzLmFkZE1hcHBlZFVuaXF1ZShhLGUpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoiYWRkIixwYXlsb2FkOmV9KSxhfWFkZEFycmF5KGUpe2ZvcihsZXQgYSBvZiBlKXRoaXMuYWRkKGEpfWNoZWNrRm9yT2JqZWN0KGUpe3JldHVybiEhdGhpcy5nZXRLZXlGb3JPYmplY3QoZSl9Z2V0S2V5Rm9yT2JqZWN0KGUpe2xldCBhPW51bGw7Zm9yKGxldCByIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpaWYoIWEmJnRoaXMuZmFzdE1hcC5nZXRCeUtleShyKT09PWUpYT1yO2Vsc2UgY29udGludWU7cmV0dXJuIGF9YXN5bmMgZmluZChlKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmZpbmQoZSl9ZmluZFN5bmMoZSl7Zm9yKGxldCBhIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpaWYoZSh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoYSkpKXJldHVybiB0aGlzLmdldE1hcHBlZFVuaXF1ZShhKX1hc3luYyBmaW5kT25lQW5kUmVtb3ZlKGUpe2xldCBhPWF3YWl0IHRoaXMuZmluZChlKTtyZXR1cm4gYSYmdGhpcy5yZW1vdmUoYSksYX1maW5kT25lQW5kUmVtb3ZlU3luYyhlKXtsZXQgYT10aGlzLmZpbmRTeW5jKGUpO3JldHVybiBhJiZ0aGlzLnJlbW92ZShhKSxhfWFzeW5jIGZvckVhY2goZSl7Zm9yKGxldCBhIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpYXdhaXQgZSh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoYSkpfWdldE9uZUFuZFJlbW92ZSgpe2xldCBlPXRoaXMuZmFzdE1hcC5nZXRLZXlzKCk7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBudWxsO3tsZXQgYT1lWzBdLHI9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAoYSk7cmV0dXJuIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOnJ9KSxyfX1nZXRBcnJheSgpe2xldCBlPVtdO2ZvcihsZXQgYSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWUucHVzaCh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoYSkpO3JldHVybiBlfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmdldEtleXMoKS5sZW5ndGg9PT0wfXJlbW92ZShlKXtpZih0aGlzLmNoZWNrRm9yT2JqZWN0KGUpKXtsZXQgYT10aGlzLmdldEtleUZvck9iamVjdChlKSxyPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKGEpO3JldHVybiB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDpyfSkscn1yZXR1cm4gbnVsbH13aXBlKCl7Zm9yKGxldCBlIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpdGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAoZSl9Y29uY2F0KGUpe2xldCBhPW5ldyB0O3JldHVybiBhLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHRoaXMuZmFzdE1hcCksYS5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcihlLmZhc3RNYXApLGF9YWRkQWxsRnJvbU90aGVyKGUpe3RoaXMuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIoZS5mYXN0TWFwKX19fSk7dmFyIEw4LGhYPW4oKCk9PntDYSgpO21YKCk7TDg9Y2xhc3N7Z2V0IGNvbXBhcmlzb25TdHJpbmcoKXtyZXR1cm4gdGhpcy5jb21wYXJpc29uRnVuYyh0aGlzLm9yaWdpbmFsSW50ZXJlc3QpfWZ1bGxmaWxsSW50ZXJlc3QoZSl7dGhpcy5pc0Z1bGxmaWxsZWQ9ITAsdGhpcy5mdWxsZmlsbG1lbnRTdG9yZT1bXSx0aGlzLmludGVyZXN0RGVmZXJyZWQucmVzb2x2ZShlKX1jb25zdHJ1Y3RvcihlLGEscixpKXt0aGlzLmRlc3RydWN0aW9uVGltZXI9bmV3IGhpLlRpbWVyKDFlNCksdGhpcy5pc0Z1bGxmaWxsZWQ9ITEsdGhpcy5mdWxsZmlsbG1lbnRTdG9yZT1bXSx0aGlzLmludGVyZXN0RGVmZXJyZWQ9bmV3IFZlLkRlZmVycmVkLHRoaXMuaW50ZXJlc3RGdWxsZmlsbGVkPXRoaXMuaW50ZXJlc3REZWZlcnJlZC5wcm9taXNlLHRoaXMuaW50ZXJlc3RNYXBSZWY9ZSx0aGlzLm9yaWdpbmFsSW50ZXJlc3Q9YSx0aGlzLmNvbXBhcmlzb25GdW5jPXIsdGhpcy5vcHRpb25zPWksdGhpcy5kZXN0cnVjdGlvblRpbWVyLmNvbXBsZXRlZC50aGVuKCgpPT57dGhpcy5kZXN0cm95KCl9KSx0aGlzLm9wdGlvbnM/Lm1hcmtMb3N0QWZ0ZXJEZWZhdWx0JiZmdC5kZWxheUZvcih0aGlzLm9wdGlvbnMubWFya0xvc3RBZnRlckRlZmF1bHQpLnRoZW4odGhpcy5tYXJrTG9zdCl9ZGVzdHJveSgpe3RoaXMuaW50ZXJlc3RNYXBSZWYucmVtb3ZlSW50ZXJlc3QodGhpcyksIXRoaXMuaXNGdWxsZmlsbGVkJiZ0aGlzLm9wdGlvbnMuZGVmYXVsdEZ1bGxmaWxsbWVudCYmdGhpcy5mdWxsZmlsbEludGVyZXN0KHRoaXMub3B0aW9ucy5kZWZhdWx0RnVsbGZpbGxtZW50KX1tYXJrTG9zdCgpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lci5zdGFydCgpfXJlbmV3KCl7dGhpcy5kZXN0cnVjdGlvblRpbWVyLnJlc2V0KCl9fX0pO3ZhciBnWCxtWD1uKCgpPT57Q2EoKTtwUigpO2hYKCk7Z1g9Y2xhc3N7Y29uc3RydWN0b3IoZSxhPXt9KXt0aGlzLmludGVyZXN0T2JqZWN0TWFwPW5ldyBWcyx0aGlzLmludGVyZXN0T2JzZXJ2YWJsZT1uZXcgQ3QuT2JzZXJ2YWJsZUludGFrZSx0aGlzLmNvbXBhcmlzb25GdW5jPWUsdGhpcy5vcHRpb25zPWF9YXN5bmMgYWRkSW50ZXJlc3QoZSxhKXtsZXQgcj10aGlzLmNvbXBhcmlzb25GdW5jKGUpLGksbz1uZXcgTDgodGhpcyxlLHRoaXMuY29tcGFyaXNvbkZ1bmMse21hcmtMb3N0QWZ0ZXJEZWZhdWx0OnRoaXMub3B0aW9ucy5tYXJrTG9zdEFmdGVyRGVmYXVsdCxkZWZhdWx0RnVsbGZpbGxtZW50OmF9KSxzPSExO3JldHVybiBhd2FpdCB0aGlzLmludGVyZXN0T2JqZWN0TWFwLmZvckVhY2gobD0+eyFzJiZsLmNvbXBhcmlzb25TdHJpbmc9PT1vLmNvbXBhcmlzb25TdHJpbmcmJihjb25zb2xlLmxvZygiaW5mbyIsYGludGVyZXN0IGFscmVhZHkgZXhpc3RzIGZvciAke28uY29tcGFyaXNvblN0cmluZ31gKSxzPSEwLGk9bCxpLnJlbmV3KCkpfSksaXx8KGk9byx0aGlzLmludGVyZXN0T2JqZWN0TWFwLmFkZChpKSksdGhpcy5pbnRlcmVzdE9ic2VydmFibGUucHVzaChpKSxpfXJlbW92ZUludGVyZXN0KGUpe2xldCBhPXRoaXMuaW50ZXJlc3RPYmplY3RNYXAuZmluZE9uZUFuZFJlbW92ZVN5bmMocj0+ZS5jb21wYXJpc29uU3RyaW5nPT09ci5jb21wYXJpc29uU3RyaW5nKX1jaGVja0ludGVyZXN0KGUpe2xldCBhPXRoaXMuY29tcGFyaXNvbkZ1bmMoZSk7cmV0dXJuIHRoaXMuY2hlY2tJbnRlcmVzdEJ5U3RyaW5nKGEpfWNoZWNrSW50ZXJlc3RCeVN0cmluZyhlKXtyZXR1cm4hIXRoaXMuaW50ZXJlc3RPYmplY3RNYXAuZmluZFN5bmMocj0+ci5jb21wYXJpc29uU3RyaW5nPT09ZSl9aW5mb3JtTG9zdEludGVyZXN0KGUpe2xldCBhPXRoaXMuZmluZEludGVyZXN0KGUpO2EmJmEubWFya0xvc3QoKX1maW5kSW50ZXJlc3QoZSl7bGV0IGE9dGhpcy5jb21wYXJpc29uRnVuYyhlKTtyZXR1cm4gdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5maW5kU3luYyhpPT5pLmNvbXBhcmlzb25TdHJpbmc9PT1hKX19fSk7dmFyIHhYLGRVZT1uKCgpPT57Q2EoKTt4WD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmFycmF5PVtdLHRoaXMuYXJyYXlMaW1pdD1lfWFkZE9uZShlKXt0aGlzLmFycmF5LnVuc2hpZnQoZSksdGhpcy5hcnJheS5sZW5ndGg+dGhpcy5hcnJheUxpbWl0JiYodGhpcy5hcnJheS5sZW5ndGg9dGhpcy5hcnJheUxpbWl0KX1hZGRNYW55KGUpe2ZvcihsZXQgYSBvZiBlKXRoaXMuYWRkT25lKGEpfXNldExpbWl0KGUpe3RoaXMuYXJyYXlMaW1pdD1lLHRoaXMuYXJyYXkubGVuZ3RoPnRoaXMuYXJyYXlMaW1pdCYmKHRoaXMuYXJyYXkubGVuZ3RoPXRoaXMuYXJyYXlMaW1pdCl9Z2V0QXZlcmFnZSgpe2lmKHR5cGVvZiB0aGlzLmFycmF5WzBdPT0ibnVtYmVyIil7bGV0IGU9MDtmb3IobGV0IGEgb2YgdGhpcy5hcnJheSllPWUrYTtyZXR1cm4gZS90aGlzLmFycmF5Lmxlbmd0aH1lbHNlIHJldHVybiBudWxsfX19KTt2YXIgYlgsZlVlPW4oKCk9PntDYSgpO3BSKCk7Ylg9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnJlZmVyZW5jZU9iamVjdE1hcD1uZXcgVnN9Y2hlY2tBbmRUcmFjayhlKXtyZXR1cm4gdGhpcy5yZWZlcmVuY2VPYmplY3RNYXAuY2hlY2tGb3JPYmplY3QoZSk/ITE6KHRoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmFkZChlKSwhMCl9fX0pO3ZhciB2WCx1VWU9bigoKT0+e0NhKCk7dlg9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1bXX1hZGRTdHJpbmcoZSl7dGhpcy5fc3RyaW5nQXJyYXkucHVzaChlKSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1hZGRTdHJpbmdBcnJheShlKXtmb3IobGV0IGEgb2YgZSl0aGlzLmFkZFN0cmluZyhhKX1yZW1vdmVTdHJpbmcoZSl7Zm9yKGxldCBhIGluIHRoaXMuX3N0cmluZ0FycmF5KXRoaXMuX3N0cmluZ0FycmF5W2FdPT09ZSYmdGhpcy5fc3RyaW5nQXJyYXkuc3BsaWNlKHBhcnNlSW50KGEpLDEpO3RoaXMubm90aWZ5VHJpZ2dlcigpfXdpcGUoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1jaGVja1N0cmluZyhlKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkuaW5kZXhPZihlKSE9PS0xfWNoZWNrTWluaW1hdGNoKGUpe2xldCBhPW5ldyBvaS5TbWFydE1hdGNoKGUpLHI9ITE7Zm9yKGxldCBpIG9mIHRoaXMuX3N0cmluZ0FycmF5KWEubWF0Y2goaSkmJihyPSEwKTtyZXR1cm4gcn1jaGVja0lzRW1wdHkoKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkubGVuZ3RoPT09MH1nZXRTdHJpbmdBcnJheSgpe2xldCBlPVtdO2ZvcihsZXQgYSBvZiB0aGlzLl9zdHJpbmdBcnJheSllLnB1c2goYSk7cmV0dXJuIGV9cmVnaXN0ZXJVbnRpbFRydWUoZSxhKXtsZXQgcj1WZS5kZWZlcigpO3JldHVybiB0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5wdXNoKCgpPT57bGV0IGk9ZSh0aGlzLmdldFN0cmluZ0FycmF5KCkpO3JldHVybiBpPT09ITAmJihhJiZhKCksci5yZXNvbHZlKCkpLGl9KSx0aGlzLm5vdGlmeVRyaWdnZXIoKSxyLnByb21pc2V9bm90aWZ5VHJpZ2dlcigpe2xldCBlPXRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LmZpbHRlcihhPT4hYSgpKTt0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1lfX19KTt2YXIgeVgscFVlPW4oKCk9PntDYSgpO3lYPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcmFnZUFycmF5PVtdLHRoaXMub3B0aW9ucz1lfWNoZWNrQWdncmVnYXRpb25TdGF0dXMoKXtsZXQgZT0oKT0+e3RoaXMuYWdncmVnYXRpb25UaW1lcj1uZXcgaGkuVGltZXIodGhpcy5vcHRpb25zLmFnZ3JlZ2F0aW9uSW50ZXJ2YWxJbk1pbGxpcyksdGhpcy5hZ2dyZWdhdGlvblRpbWVyLmNvbXBsZXRlZC50aGVuKCgpPT57bGV0IGE9dGhpcy5zdG9yYWdlQXJyYXk7aWYoYS5sZW5ndGg9PT0wKXt0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bnVsbDtyZXR1cm59dGhpcy5zdG9yYWdlQXJyYXk9W10sZSgpLHRoaXMub3B0aW9ucy5mdW5jdGlvbkZvckFnZ3JlZ2F0aW9uKGEpfSksdGhpcy5hZ2dyZWdhdGlvblRpbWVyLnN0YXJ0KCl9O3RoaXMuYWdncmVnYXRpb25UaW1lcnx8ZSgpfWFkZChlKXt0aGlzLnN0b3JhZ2VBcnJheS5wdXNoKGUpLHRoaXMuY2hlY2tBZ2dyZWdhdGlvblN0YXR1cygpfX19KTt2YXIgd1gsaFVlPW4oKCk9PntDYSgpO3dYPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zeW1ib2xUcmVlPW5ldyB1Ui5kZWZhdWx0fWluaXRpYWxpemUoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbml0aWFsaXplKGUpfWhhc0NoaWxkcmVuKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaGFzQ2hpbGRyZW4oZSl9Zmlyc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmZpcnN0Q2hpbGQoZSl9bGFzdENoaWxkKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubGFzdENoaWxkKGUpfXByZXZpb3VzU2libGluZyhlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXZpb3VzU2libGluZyhlKX1uZXh0U2libGluZyhlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLm5leHRTaWJsaW5nKGUpfXBhcmVudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnBhcmVudChlKX1sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpfXByZWNlZGluZyhlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlY2VkaW5nKGUsYSl9Zm9sbG93aW5nKGUsYSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5mb2xsb3dpbmcoZSxhKX1jaGlsZHJlblRvQXJyYXkoZSxhKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuVG9BcnJheShlLGEpfWFuY2VzdG9yc1RvQXJyYXkoZSxhKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFuY2VzdG9yc1RvQXJyYXkoZSxhKX10cmVlVG9BcnJheShlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUudHJlZVRvQXJyYXkoZSxhKX1jaGlsZHJlbkl0ZXJhdG9yKGUsYSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlbkl0ZXJhdG9yKGUsYSl9cHJldmlvdXNTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJldmlvdXNTaWJsaW5nc0l0ZXJhdG9yKGUpfW5leHRTaWJsaW5nc0l0ZXJhdG9yKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubmV4dFNpYmxpbmdzSXRlcmF0b3IoKX1hbmNlc3RvcnNJdGVyYXRvcihlKXt0aGlzLnN5bWJvbFRyZWUuYW5jZXN0b3JzSXRlcmF0b3IoKX10cmVlSXRlcmF0b3IoZSxhKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnRyZWVJdGVyYXRvcihlKX1pbmRleChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluZGV4KGUpfWNoaWxkcmVuQ291bnQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlbkNvdW50KGUpfWNvbXBhcmVUcmVlUG9zaXRpb24oZSxhKXtyZXR1cm4gdGhpcy5jb21wYXJlVHJlZVBvc2l0aW9uKGUsYSl9cmVtb3ZlKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucmVtb3ZlKGUpfWluc2VydEJlZm9yZShlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5zZXJ0QmVmb3JlKGUsYSl9aW5zZXJ0QWZ0ZXIoZSxhKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluc2VydEFmdGVyKGUsYSl9cHJlcGVuZENoaWxkKGUsYSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmVwZW5kQ2hpbGQoZSxhKX1hcHBlbmRDaGlsZChlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuYXBwZW5kQ2hpbGQoZSxhKX10b0pzb25XaXRoSGllcmFjaHkoZSl7bGV0IGE9dGhpcy50cmVlSXRlcmF0b3IoZSx7fSk7Zm9yKGxldCByIG9mIGEpY29uc29sZS5sb2cocil9ZnJvbUpzb25XaXRoSGllcmFjaHkoZSl7fX19KTt2YXIgQjE9e307ZXQoQjEse0FzeW5jRXhlY3V0aW9uU3RhY2s6KCk9PmZYLEJhY2twcmVzc3VyZWRBcnJheTooKT0+dVgsRmFzdE1hcDooKT0+QzgsSW50ZXJlc3Q6KCk9Pkw4LEludGVyZXN0TWFwOigpPT5nWCxMaW1pdGVkQXJyYXk6KCk9PnhYLExvb3BUcmFja2VyOigpPT5iWCxPYmplY3RNYXA6KCk9PlZzLFN0cmluZ21hcDooKT0+dlgsVGltZWRBZ2dyZWd0b3I6KCk9PnlYLFRyZWU6KCk9PndYLHVuaTooKT0+Y1VlfSk7dmFyIGs4PW4oKCk9PntuVWUoKTtsVWUoKTtwWCgpO21YKCk7aFgoKTtkVWUoKTtmVWUoKTtwUigpO3VVZSgpO3BVZSgpO2hVZSgpfSk7dmFyIEFvPXt9O2V0KEFvLHthcmVVaW50OEFycmF5c0VxdWFsOigpPT5PVXQsYXNzZXJ0VWludDhBcnJheTooKT0+X28sYXNzZXJ0VWludDhBcnJheU9yQXJyYXlCdWZmZXI6KCk9PnZVZSxiYXNlNjRUb1N0cmluZzooKT0+VVV0LGJhc2U2NFRvVWludDhBcnJheTooKT0+elVlLGNvbXBhcmVVaW50OEFycmF5czooKT0+QlV0LGNvbmNhdFVpbnQ4QXJyYXlzOigpPT5GVXQsZ2V0VWludEJFOigpPT5ZVXQsaGV4VG9VaW50OEFycmF5OigpPT5HVXQsaW5jbHVkZXM6KCk9PlpVdCxpbmRleE9mOigpPT5rVWUsaXNVaW50OEFycmF5OigpPT5NWCxzdHJpbmdUb0Jhc2U2NDooKT0+VlV0LHN0cmluZ1RvVWludDhBcnJheTooKT0+d1VlLHRvVWludDhBcnJheTooKT0+SVV0LHVpbnQ4QXJyYXlUb0Jhc2U2NDooKT0+TVVlLHVpbnQ4QXJyYXlUb0hleDooKT0+V1V0LHVpbnQ4QXJyYXlUb1N0cmluZzooKT0+eVVlfSk7ZnVuY3Rpb24gbVVlKHQsZSxhKXtyZXR1cm4gdD90LmNvbnN0cnVjdG9yPT09ZT8hMDokVXQuY2FsbCh0KT09PWE6ITF9ZnVuY3Rpb24gTVgodCl7cmV0dXJuIG1VZSh0LFVpbnQ4QXJyYXksRFV0KX1mdW5jdGlvbiBOVXQodCl7cmV0dXJuIG1VZSh0LEFycmF5QnVmZmVyLEVVdCl9ZnVuY3Rpb24gUFV0KHQpe3JldHVybiBNWCh0KXx8TlV0KHQpfWZ1bmN0aW9uIF9vKHQpe2lmKCFNWCh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYFVpbnQ4QXJyYXlcYCwgZ290IFxgJHt0eXBlb2YgdH1cYGApfWZ1bmN0aW9uIHZVZSh0KXtpZighUFV0KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgVWludDhBcnJheVxgIG9yIFxgQXJyYXlCdWZmZXJcYCwgZ290IFxgJHt0eXBlb2YgdH1cYGApfWZ1bmN0aW9uIElVdCh0KXtpZih0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIG5ldyBVaW50OEFycmF5KHQpO2lmKEFycmF5QnVmZmVyLmlzVmlldyh0KSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCk7dGhyb3cgbmV3IFR5cGVFcnJvcihgVW5zdXBwb3J0ZWQgdmFsdWUsIGdvdCBcYCR7dHlwZW9mIHR9XGAuYCl9ZnVuY3Rpb24gRlV0KHQsZSl7aWYodC5sZW5ndGg9PT0wKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtlPz89dC5yZWR1Y2UoKGksbyk9Pmkrby5sZW5ndGgsMCk7bGV0IGE9bmV3IFVpbnQ4QXJyYXkoZSkscj0wO2ZvcihsZXQgaSBvZiB0KV9vKGkpLGEuc2V0KGkscikscis9aS5sZW5ndGg7cmV0dXJuIGF9ZnVuY3Rpb24gT1V0KHQsZSl7aWYoX28odCksX28oZSksdD09PWUpcmV0dXJuITA7aWYodC5sZW5ndGghPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErKylpZih0W2FdIT09ZVthXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCVXQodCxlKXtfbyh0KSxfbyhlKTtsZXQgYT1NYXRoLm1pbih0Lmxlbmd0aCxlLmxlbmd0aCk7Zm9yKGxldCByPTA7cjxhO3IrKyl7bGV0IGk9dFtyXS1lW3JdO2lmKGkhPT0wKXJldHVybiBNYXRoLnNpZ24oaSl9cmV0dXJuIE1hdGguc2lnbih0Lmxlbmd0aC1lLmxlbmd0aCl9ZnVuY3Rpb24geVVlKHQsZT0idXRmOCIpe3JldHVybiB2VWUodCksZ1VlW2VdPz89bmV3IGdsb2JhbFRoaXMuVGV4dERlY29kZXIoZSksZ1VlW2VdLmRlY29kZSh0KX1mdW5jdGlvbiBUOCh0KXtpZih0eXBlb2YgdCE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBzdHJpbmdcYCwgZ290IFxgJHt0eXBlb2YgdH1cYGApfWZ1bmN0aW9uIHdVZSh0KXtyZXR1cm4gVDgodCksUlV0LmVuY29kZSh0KX1mdW5jdGlvbiBIVXQodCl7cmV0dXJuIHQucmVwbGFjZUFsbCgiKyIsIi0iKS5yZXBsYWNlQWxsKCIvIiwiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfWZ1bmN0aW9uIHFVdCh0KXtsZXQgZT10LnJlcGxhY2VBbGwoIi0iLCIrIikucmVwbGFjZUFsbCgiXyIsIi8iKSxhPSg0LWUubGVuZ3RoJTQpJTQ7cmV0dXJuIGUrIj0iLnJlcGVhdChhKX1mdW5jdGlvbiBNVWUodCx7dXJsU2FmZTplPSExfT17fSl7X28odCk7bGV0IGE9IiI7Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKz14VWUpe2xldCBpPXQuc3ViYXJyYXkocixyK3hVZSk7YSs9Z2xvYmFsVGhpcy5idG9hKFN0cmluZy5mcm9tQ29kZVBvaW50LmFwcGx5KHZvaWQgMCxpKSl9cmV0dXJuIGU/SFV0KGEpOmF9ZnVuY3Rpb24gelVlKHQpe3JldHVybiBUOCh0KSxVaW50OEFycmF5LmZyb20oZ2xvYmFsVGhpcy5hdG9iKHFVdCh0KSksZT0+ZS5jb2RlUG9pbnRBdCgwKSl9ZnVuY3Rpb24gVlV0KHQse3VybFNhZmU6ZT0hMX09e30pe3JldHVybiBUOCh0KSxNVWUod1VlKHQpLHt1cmxTYWZlOmV9KX1mdW5jdGlvbiBVVXQodCl7cmV0dXJuIFQ4KHQpLHlVZSh6VWUodCkpfWZ1bmN0aW9uIFdVdCh0KXtfbyh0KTtsZXQgZT0iIjtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErKyllKz1qVXRbdFthXV07cmV0dXJuIGV9ZnVuY3Rpb24gR1V0KHQpe2lmKFQ4KHQpLHQubGVuZ3RoJTIhPT0wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBIZXggc3RyaW5nIGxlbmd0aC4iKTtsZXQgZT10Lmxlbmd0aC8yLGE9bmV3IFVpbnQ4QXJyYXkoZSk7Zm9yKGxldCByPTA7cjxlO3IrKyl7bGV0IGk9YlVlW3RbcioyXV0sbz1iVWVbdFtyKjIrMV1dO2lmKGk9PT12b2lkIDB8fG89PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEhleCBjaGFyYWN0ZXIgZW5jb3VudGVyZWQgYXQgcG9zaXRpb24gJHtyKjJ9YCk7YVtyXT1pPDw0fG99cmV0dXJuIGF9ZnVuY3Rpb24gWVV0KHQpe2xldHtieXRlTGVuZ3RoOmV9PXQ7aWYoZT09PTYpcmV0dXJuIHQuZ2V0VWludDE2KDApKjIqKjMyK3QuZ2V0VWludDMyKDIpO2lmKGU9PT01KXJldHVybiB0LmdldFVpbnQ4KDApKjIqKjMyK3QuZ2V0VWludDMyKDEpO2lmKGU9PT00KXJldHVybiB0LmdldFVpbnQzMigwKTtpZihlPT09MylyZXR1cm4gdC5nZXRVaW50OCgwKSoyKioxNit0LmdldFVpbnQxNigxKTtpZihlPT09MilyZXR1cm4gdC5nZXRVaW50MTYoMCk7aWYoZT09PTEpcmV0dXJuIHQuZ2V0VWludDgoMCl9ZnVuY3Rpb24ga1VlKHQsZSl7bGV0IGE9dC5sZW5ndGgscj1lLmxlbmd0aDtpZihyPT09MHx8cj5hKXJldHVybi0xO2xldCBpPWEtcjtmb3IobGV0IG89MDtvPD1pO28rKyl7bGV0IHM9ITA7Zm9yKGxldCBsPTA7bDxyO2wrKylpZih0W28rbF0hPT1lW2xdKXtzPSExO2JyZWFrfWlmKHMpcmV0dXJuIG99cmV0dXJuLTF9ZnVuY3Rpb24gWlV0KHQsZSl7cmV0dXJuIGtVZSh0LGUpIT09LTF9dmFyICRVdCxEVXQsRVV0LGdVZSxSVXQseFVlLGpVdCxiVWUsU1VlPW4oKCk9PnskVXQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxEVXQ9IltvYmplY3QgVWludDhBcnJheV0iLEVVdD0iW29iamVjdCBBcnJheUJ1ZmZlcl0iO2dVZT17dXRmODpuZXcgZ2xvYmFsVGhpcy5UZXh0RGVjb2RlcigidXRmOCIpfTtSVXQ9bmV3IGdsb2JhbFRoaXMuVGV4dEVuY29kZXI7eFVlPTY1NTM1O2pVdD1BcnJheS5mcm9tKHtsZW5ndGg6MjU2fSwodCxlKT0+ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKTtiVWU9ezA6MCwxOjEsMjoyLDM6Myw0OjQsNTo1LDY6Niw3OjcsODo4LDk6OSxhOjEwLGI6MTEsYzoxMixkOjEzLGU6MTQsZjoxNSxBOjEwLEI6MTEsQzoxMixEOjEzLEU6MTQsRjoxNX19KTt2YXIgQ1VlPW4oKCk9PntTVWUoKX0pO3ZhciByNj17fTtldChyNix7YmFzZTY0VG9VaW50OEFycmF5OigpPT5KVXQsZW5zdXJlUHVyZVVpbnQ4QXJyYXk6KCk9PmFqdCxpc0J1ZmZlckxpa2U6KCk9PnRqdCxpc1VpbnQ4QXJyYXk6KCk9PmVqdCx1SW50OEFycmF5RXh0cmFzOigpPT5RVXQsdUludDhBcnJheVRvQmFzZTY0OigpPT5LVXR9KTtmdW5jdGlvbiBLVXQodCl7cmV0dXJuIEFvLnVpbnQ4QXJyYXlUb0Jhc2U2NCh0KX1mdW5jdGlvbiBKVXQodCl7cmV0dXJuIEFvLmJhc2U2NFRvVWludDhBcnJheSh0KX1mdW5jdGlvbiB0anQodCl7cmV0dXJuIHQmJnR5cGVvZiB0LmJ5dGVMZW5ndGg9PSJudW1iZXIiPyEwOnR5cGVvZiBCdWZmZXI8InUiJiZCdWZmZXIuaXNCdWZmZXI/QnVmZmVyLmlzQnVmZmVyKHQpOiExfWZ1bmN0aW9uIGFqdCh0KXtsZXQgZT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aCk7cmV0dXJuIGUuc2V0KHQpLGV9dmFyIFFVdCxlanQsTFVlPW4oKCk9PntDVWUoKTtRVXQ9QW87ZWp0PXQ9PkFvLmlzVWludDhBcnJheSh0KX0pO3ZhciBfOD1uKCgpPT57cDIoKX0pO3ZhciBBOCxoUj1uKCgpPT57XzgoKTtBOD1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuZ3VhcmRGdW5jdGlvbj1lLHRoaXMub3B0aW9ucz1hfWFzeW5jIGV4ZWMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuZ3VhcmRGdW5jdGlvbihlKX1hc3luYyBnZXRGYWlsZWRIaW50KGUpe3JldHVybiBhd2FpdCB0aGlzLmV4ZWMoZSk/bnVsbDp0aGlzLm9wdGlvbnMuZmFpbGVkSGludH19fSk7dmFyICQ4LHpYPW4oKCk9PntfOCgpOyQ4PWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5uYW1lPSJHdWFyZEVycm9yIn19fSk7dmFyIEQ4LGtYPW4oKCk9PntfOCgpO2hSKCk7RDg9Y2xhc3MgZXh0ZW5kcyBBOHtjb25zdHJ1Y3RvcihlPVtdKXtzdXBlcihhc3luYyBhPT50aGlzLmFsbEd1YXJkc1Bhc3MoYSkpLHRoaXMuZ3VhcmRzPWV9YXN5bmMgZXhlY0FsbFdpdGhEYXRhKGUsYT17bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KXtsZXQgcj1bXTtmb3IobGV0IG8gb2YgdGhpcy5ndWFyZHMpe2xldCBzPW8uZXhlYyhlKTtpZihhLm1vZGU9PT0ic2VyaWFsIiYmYXdhaXQgcyxyLnB1c2gocyksYS5zdG9wT25GYWlsJiYhYXdhaXQgcylyZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwocil9cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHIpfWFzeW5jIGFsbEd1YXJkc1Bhc3MoZSxhPXttb2RlOiJwYXJhbGxlbCIsc3RvcE9uRmFpbDohMX0pe3JldHVybihhd2FpdCB0aGlzLmV4ZWNBbGxXaXRoRGF0YShlLGEpKS5ldmVyeShpPT5pKX1hc3luYyBhbnlHdWFyZHNQYXNzKGUpe3JldHVybihhd2FpdCB0aGlzLmV4ZWNBbGxXaXRoRGF0YShlLHttb2RlOiJwYXJhbGxlbCIsc3RvcE9uRmFpbDohMX0pKS5zb21lKHI9PnIpfWdldEZhaWxlZEhpbnQoZSl7Zm9yKGxldCBhIG9mIHRoaXMuZ3VhcmRzKXtsZXQgcj1hLmdldEZhaWxlZEhpbnQoZSk7aWYocilyZXR1cm4gcn19fX0pO3ZhciBFOD17fTtldChFOCx7R3VhcmQ6KCk9PkE4LEd1YXJkRXJyb3I6KCk9PiQ4LEd1YXJkU2V0OigpPT5EOCxwYXNzR3VhcmRzT3JSZWplY3Q6KCk9PnJqdH0pO3ZhciByanQsVFVlPW4oKCk9PntfOCgpO2hSKCk7elgoKTtoUigpO2tYKCk7a1goKTt6WCgpO3JqdD1hc3luYyh0LGUpPT57bGV0IGE9bmV3IEQ4KGUpO2lmKCFhd2FpdCBhLmFsbEd1YXJkc1Bhc3ModCkpe2xldCBpPWF3YWl0IGEuZ2V0RmFpbGVkSGludCh0KTt0aHJvdyBuZXcgJDgoYEd1YXJkcyBmYWlsZWQ6CiR7aX0KICAgIGApfX19KTt2YXIgX1VlPW4oKCk9PntwMigpfSk7dmFyIEFVZT1uKCgpPT57fSk7dmFyIFNYLCRVZT1uKCgpPT57X1VlKCk7QVVlKCk7U1g9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmxvYWRlZFNjcmlwdHM9W119YXN5bmMgZ2V0RW52QXdhcmVNb2R1bGUoZSl7aWYodGhpcy5pc05vZGUpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoZS5ub2RlTW9kdWxlTmFtZSk7aWYodGhpcy5pc0Jyb3dzZXIpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZShlLndlYlVybEFyZyxlLmdldEZ1bmN0aW9uKTtjb25zb2xlLmVycm9yKCJwbGF0Zm9ybSBmb3IgbG9hZGluZyBub3Qgc3VwcG9ydGVkIGJ5IHNtYXJ0ZW52Iil9YXN5bmMgZ2V0U2FmZU5vZGVNb2R1bGUoZSxhKXtpZighdGhpcy5pc05vZGUpe2NvbnNvbGUuZXJyb3IoYFlvdSB0cmllZCB0byBsb2FkIGEgbm9kZSBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0OiAke2V9LiBUaGlzIGRvZXMgbm90IHRocm93LmApO3JldHVybn1sZXQgcj1hd2FpdCBuZXcgRnVuY3Rpb24oYHJldHVybiBpbXBvcnQoJyR7ZX0nKWApKCk7cmV0dXJuIGEmJmF3YWl0IGEocikscn1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKGUsYSl7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyhlKSlyZXR1cm4gYSgpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKGUpO2xldCByPVZlLmRlZmVyKCk7aWYoZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKWdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cyhlKSxyLnJlc29sdmUoKTtlbHNle2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2kub25sb2FkPSgpPT57ci5yZXNvbHZlKCl9LGkuc3JjPWUsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpKX1yZXR1cm4gYXdhaXQgci5wcm9taXNlLGEoKX1nZXQgcnVudGltZUVudigpe3JldHVybiB0eXBlb2YgcHJvY2VzczwidSI/Im5vZGUiOiJicm93c2VyIn1nZXQgaXNCcm93c2VyKCl7cmV0dXJuIXRoaXMuaXNOb2RlfWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgaXNOb2RlKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJub2RlIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gcHJvY2Vzcy52ZXJzaW9ufWdldCBpc0NJKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyEhcHJvY2Vzcy5lbnYuQ0k6ITF9YXN5bmMgaXNNYWNBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJkYXJ3aW4iOiExfWFzeW5jIGlzV2luZG93c0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09IndpbjMyIjohMX1hc3luYyBpc0xpbnV4QXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0ibGludXgiOiExfWFzeW5jIHByaW50RW52KCl7dGhpcy5pc05vZGU/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIE5PREUiKSxjb25zb2xlLmxvZygibm9kZSB2ZXJzaW9uIGlzICIrdGhpcy5ub2RlVmVyc2lvbikpOihjb25zb2xlLmxvZygicnVubmluZyBvbiBCUk9XU0VSIiksY29uc29sZS5sb2coImJyb3dzZXIgaXMgIit0aGlzLnVzZXJBZ2VudCkpfX19KTt2YXIgV2E9e307ZXQoV2Ese1NtYXJ0ZW52OigpPT5TWH0pO3ZhciBOOD1uKCgpPT57JFVlKCl9KTt2YXIgQ1gsaTY9bigoKT0+e0NYPU4yKGxGKCksMSl9KTt2YXIgbVI9e307ZXQobVIse2NyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZzooKT0+Y2p0LGNyZWF0ZVJhbmRvbVN0cmluZzooKT0+bGp0fSk7dmFyIHNqdCxuanQsbGp0LGNqdCxEVWU9bigoKT0+e2k2KCk7c2p0PSh0LGUpPT57aWYodHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzLmNyeXB0byYmZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXtsZXQgYT1lLXQscj1uZXcgVWludDMyQXJyYXkoMSk7cmV0dXJuIGdsb2JhbFRoaXMuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhyKSx0K3JbMF0lYX1lbHNlIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtdCkpK3R9LG5qdD0odCxlLGEpPT57bGV0IHI9e0E6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIixhOiJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsMDoiMDEyMzQ1Njc4OSIsIiEiOiIhQCMkJV4mKigpXystPVtde318OzosLjw+PyIsIioiOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/In0saT10O2UmJmU+dC5sZW5ndGg/aT10LnJlcGVhdChNYXRoLmNlaWwoZS90Lmxlbmd0aCkpLnNsaWNlKDAsZSk6ZSYmKGk9dC5zbGljZSgwLGUpKTtsZXQgbz0iIjtmb3IobGV0IHMgb2YgaSlpZihyW3NdKXtsZXQgbD1yW3NdLGY9c2p0KDAsbC5sZW5ndGgpO28rPWxbZl19ZWxzZSBvKz1zO3JldHVybiBvfSxsanQ9KHQsZSxhKT0+bmp0KHQsZSxhKSxjanQ9KCk9PkNYLnVuaSgpfSk7dmFyIGdSPXt9O2V0KGdSLHttYWtlRW52T2JqZWN0OigpPT5kanR9KTt2YXIgZGp0LEVVZT1uKCgpPT57aTYoKTtkanQ9ZnVuY3Rpb24odCl7bGV0IGU9e30sYT0vKC4qKT0oLiopLztpZih0eXBlb2YgdDwidSIpZm9yKGxldCByIGluIHQpe2xldCBpPWEuZXhlYyh0W3JdKTtlW2lbMV1dPWlbMl19cmV0dXJuIGV9fSk7dmFyIFVzPXt9O2V0KFVzLHtpbmRlbnQ6KCk9PnVqdCxpbmRlbnRXaXRoUHJlZml4OigpPT5wanQsbm9ybWFsaXplOigpPT5oanR9KTt2YXIgTFgsVFgsZmp0LHVqdCxwanQsaGp0LE5VZT1uKCgpPT57aTYoKTtMWD10PT57bGV0IGU9dC5zcGxpdChgCmApO3JldHVybiBmanQoZSl9LFRYPXQ9PntsZXQgZT0iIjtmb3IobGV0IGEgb2YgdCllPWUrYStgCmA7cmV0dXJuIGV9LGZqdD10PT57bGV0IGU9L15bXHNdKiQvO3JldHVybiBlLnRlc3QodFswXSkmJnQuc2hpZnQoKSxlLnRlc3QodFt0Lmxlbmd0aC0xXSkmJnQucG9wKCksdH0sdWp0PSh0LGUpPT57bGV0IGE9TFgodCk7Zm9yKGxldCBpIG9mIGEpaT0iICIucmVwZWF0KGUpK2k7cmV0dXJuIFRYKGEpfSxwanQ9KHQsZSk9PntsZXQgYSxyPUxYKHQpLGk9W107Zm9yKGxldCBvIG9mIHIpaS5wdXNoKGUrbyk7cmV0dXJuIGE9VFgoaSksYX0saGp0PXQ9PntsZXQgZSxhPUxYKHQpLHIsaT0vXihccyopLyxvPS9eKFxzKikkLztmb3IobGV0IGwgb2YgYSl7bGV0IGY9aS5leGVjKGwpWzFdOyh0eXBlb2Ygcj4idSJ8fGYubGVuZ3RoPHIpJiYhby50ZXN0KGwpJiYocj1mLmxlbmd0aCl9bGV0IHM9W107Zm9yKGxldCBsIG9mIGEpcy5wdXNoKGwuc3Vic3RyKHIpKTtyZXR1cm4gZT1UWChzKSxlfX0pO3ZhciB4Uj17fTtldCh4Uix7cmVwbGFjZUFsbDooKT0+UFVlLHN0YW5kYXJkOigpPT5nanR9KTt2YXIgUFVlLG1qdCxnanQsSVVlPW4oKCk9PntQVWU9KHQsZSxhKT0+dC5yZXBsYWNlKG5ldyBSZWdFeHAoZSwiZyIpLGEpLG1qdD10PT57bGV0IGU9dC5zcGxpdChgCmApLGE9MS8wO2ZvcihsZXQgciBvZiBlKWlmKHIudHJpbSgpLmxlbmd0aD4wKXtsZXQgaT1yLm1hdGNoKC9eKFxzKikvKTtpJiYoYT1NYXRoLm1pbihhLGlbMV0ubGVuZ3RoKSl9cmV0dXJuIGE9PT0xLzB8fGE9PT0wP3Q6ZS5tYXAocj0+ci5sZW5ndGg+PWE/ci5zbGljZShhKTpyKS5qb2luKGAKYCl9LGdqdD0odCxlKT0+e2xldCBhPXQ7cmV0dXJuKCFlfHxlLnN0cmlwSW5kZW50KSYmKGE9bWp0KGEpKSwoIWV8fGUubm9ybWFsaXplTmV3bGluZSkmJihhPWEucmVwbGFjZSgvXHJcbi9nLGAKYCkpLCghZXx8ZS5yZXBsYWNlVGFicykmJihhPVBVZShhLCIJLyIsIiAiKSksKCFlfHxlLnN0cmlwTGVhZGluZ1RyYWlsaW5nRW1wdHlMaW5lcykmJihhPWEucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikucmVwbGFjZSgvXHMqW1xyXG5dJC9nbSwiIikpLCghZXx8ZS5zdHJpcEFsbEVtcHR5TGluZXMpJiYoYT1hLnJlcGxhY2UoL15ccypbXHJcbl0vZ20sIiIpKSxhfX0pO3ZhciBfWCxiUixvNixBWD1uKCgpPT57X1g9e2VuY29kZTp0PT57aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKHQsInV0ZjgiKS50b1N0cmluZygiYmFzZTY0Iik7aWYodHlwZW9mIGJ0b2E8InUiKXtsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCksYT1BcnJheS5mcm9tKGUscj0+U3RyaW5nLmZyb21DaGFyQ29kZShyKSkuam9pbigiIik7cmV0dXJuIGJ0b2EoYSl9ZWxzZXtsZXQgZT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsYT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCkscj0iIixpPTA7Zm9yKDtpPGEubGVuZ3RoOyl7bGV0IG89YVtpKytdLHM9aTxhLmxlbmd0aD9hW2krK106MCxsPWk8YS5sZW5ndGg/YVtpKytdOjAsZj1vPDwxNnxzPDw4fGw7cis9ZS5jaGFyQXQoZj4+MTgmNjMpLHIrPWUuY2hhckF0KGY+PjEyJjYzKSxyKz1pLTI8YS5sZW5ndGg/ZS5jaGFyQXQoZj4+NiY2Myk6Ij0iLHIrPWktMTxhLmxlbmd0aD9lLmNoYXJBdChmJjYzKToiPSJ9cmV0dXJuIHJ9fSxkZWNvZGU6dD0+e2xldCBlPXQucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikucGFkRW5kKHQubGVuZ3RoKyg0LXQubGVuZ3RoJTQpJTQsIj0iKTtpZih0eXBlb2YgQnVmZmVyPCJ1IilyZXR1cm4gQnVmZmVyLmZyb20oZSwiYmFzZTY0IikudG9TdHJpbmcoInV0ZjgiKTtpZih0eXBlb2YgYXRvYjwidSIpe2xldCBhPWF0b2IoZSkscj1uZXcgVWludDhBcnJheShhLmxlbmd0aCk7Zm9yKGxldCBpPTA7aTxhLmxlbmd0aDtpKyspcltpXT1hLmNoYXJDb2RlQXQoaSk7cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShyKX1lbHNle2xldCBhPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixyPVtdLGk9MDtmb3IoO2k8ZS5sZW5ndGg7KXtsZXQgbz1hLmluZGV4T2YoZS5jaGFyQXQoaSsrKSkscz1hLmluZGV4T2YoZS5jaGFyQXQoaSsrKSksbD1hLmluZGV4T2YoZS5jaGFyQXQoaSsrKSksZj1hLmluZGV4T2YoZS5jaGFyQXQoaSsrKSksYz1vPDwxOHxzPDwxMnxsPDw2fGY7ci5wdXNoKGM+PjE2JjI1NSksbCE9PTY0JiZyLnB1c2goYz4+OCYyNTUpLGYhPT02NCYmci5wdXNoKGMmMjU1KX1yZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBVaW50OEFycmF5KHIpKX19fSxiUj1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3N3aXRjaChhKXtjYXNlInN0cmluZyI6dGhpcy5yZWZTdHJpbmc9ZTticmVhaztjYXNlImJhc2U2NCI6dGhpcy5yZWZTdHJpbmc9bzYuZGVjb2RlKGUpO2JyZWFrO2Nhc2UiYmFzZTY0dXJpIjp0aGlzLnJlZlN0cmluZz1vNi5kZWNvZGUoZSl9fWdldCBzaW1wbGVTdHJpbmcoKXtyZXR1cm4gdGhpcy5yZWZTdHJpbmd9Z2V0IGJhc2U2NFN0cmluZygpe3JldHVybiBvNi5lbmNvZGUodGhpcy5yZWZTdHJpbmcpfWdldCBiYXNlNjRVcmlTdHJpbmcoKXtyZXR1cm4gbzYuZW5jb2RlVXJpKHRoaXMucmVmU3RyaW5nKX19LG82PXtlbmNvZGU6dD0+X1guZW5jb2RlKHQpLGVuY29kZVVyaTp0PT5fWC5lbmNvZGUodCkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89L2csIiIpLGRlY29kZTp0PT5fWC5kZWNvZGUodCksaXNCYXNlNjQ6dD0+L14oW0EtWmEtejAtOSsvXXs0fSkqKFtBLVphLXowLTkrL117M309fFtBLVphLXowLTkrL117Mn09PSk/JC8udGVzdCh0KX19KTt2YXIgdlI9e307ZXQodlIse2lzQmFzZTY0OigpPT5ianQsaXNVdGY4OigpPT54anR9KTt2YXIgeGp0LGJqdCxGVWU9bigoKT0+e2k2KCk7QVgoKTt4anQ9dD0+e2xldCBhPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0KSxyPTA7Zm9yKDtyPGEubGVuZ3RoOyl7aWYoYVtyXT09PTl8fGFbcl09PT0xMHx8YVtyXT09PTEzfHwzMjw9YVtyXSYmYVtyXTw9MTI2KXtyKz0xO2NvbnRpbnVlfWlmKDE5NDw9YVtyXSYmYVtyXTw9MjIzJiYxMjg8PWFbcisxXSYmYVtyKzFdPD0xOTEpe3IrPTI7Y29udGludWV9aWYoYVtyXT09PTIyNCYmMTYwPD1hW3IrMV0mJmFbcisxXTw9MTkxJiYxMjg8PWFbcisyXSYmYVtyKzJdPD0xOTF8fCgyMjU8PWFbcl0mJmFbcl08PTIzNnx8YVtyXT09PTIzOHx8YVtyXT09PTIzOSkmJjEyODw9YVtyKzFdJiZhW3IrMV08PTE5MSYmMTI4PD1hW3IrMl0mJmFbcisyXTw9MTkxfHxhW3JdPT09MjM3JiYxMjg8PWFbcisxXSYmYVtyKzFdPD0xNTkmJjEyODw9YVtyKzJdJiZhW3IrMl08PTE5MSl7cis9Mztjb250aW51ZX1pZihhW3JdPT09MjQwJiYxNDQ8PWFbcisxXSYmYVtyKzFdPD0xOTEmJjEyODw9YVtyKzJdJiZhW3IrMl08PTE5MSYmMTI4PD1hW3IrM10mJmFbciszXTw9MTkxfHwyNDE8PWFbcl0mJmFbcl08PTI0MyYmMTI4PD1hW3IrMV0mJmFbcisxXTw9MTkxJiYxMjg8PWFbcisyXSYmYVtyKzJdPD0xOTEmJjEyODw9YVtyKzNdJiZhW3IrM108PTE5MXx8YVtyXT09PTI0NCYmMTI4PD1hW3IrMV0mJmFbcisxXTw9MTQzJiYxMjg8PWFbcisyXSYmYVtyKzJdPD0xOTEmJjEyODw9YVtyKzNdJiZhW3IrM108PTE5MSl7cis9NDtjb250aW51ZX1yZXR1cm4hMX1yZXR1cm4hMH0sYmp0PXQ9PntsZXQgZT0vW15BLVowLTkrXC89XS9pLGE9dC5sZW5ndGg7aWYoIWF8fGElNCE9PTB8fGUudGVzdCh0KSlyZXR1cm4hMTtsZXQgcj10LmluZGV4T2YoIj0iKTtyZXR1cm4gcj09PS0xfHxyPT09YS0xfHxyPT09YS0yJiZ0W2EtMV09PT0iPSJ9fSk7dmFyIHlSLE9VZT1uKCgpPT57eVI9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5wcm90b2NvbD10aGlzLl9wcm90b2NvbFJlZ2V4KGUpLHRoaXMucHJvdG9jb2x8fChlPWBodHRwczovLyR7ZX1gKSx0aGlzLm5vZGVQYXJzZWRVcmw9bmV3IFVSTChlKSx0aGlzLnBvcnQ9dGhpcy5ub2RlUGFyc2VkVXJsLnBvcnQ7bGV0IGE9dGhpcy5fZG9tYWluUmVnZXgoZS5yZXBsYWNlKHRoaXMubm9kZVBhcnNlZFVybC5wYXRobmFtZSwiIikpO3RoaXMuZnVsbE5hbWU9IiI7Zm9yKGxldCByPTE7cjw9NTtyKyspaWYoYVtyLTFdKXtsZXQgaT1hW3ItMV07dGhpc1sibGV2ZWwiK3IudG9TdHJpbmcoKV09aSx0aGlzLmZ1bGxOYW1lPT09IiI/dGhpcy5mdWxsTmFtZT1pOnRoaXMuZnVsbE5hbWU9aSsiLiIrdGhpcy5mdWxsTmFtZX1lbHNlIHRoaXNbImxldmVsIityLnRvU3RyaW5nKCldPXZvaWQgMDt0aGlzLnpvbmVOYW1lPXRoaXMubGV2ZWwyKyIuIit0aGlzLmxldmVsMSx0aGlzLnRvcExldmVsPXRoaXMubGV2ZWwxLHRoaXMuZG9tYWluTmFtZT10aGlzLmxldmVsMix0aGlzLnN1YkRvbWFpbj10aGlzLmxldmVsM31fZG9tYWluUmVnZXgoZSl7bGV0IHI9LyhbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9JC8uZXhlYyhlKTtyZXR1cm4gci5yZXZlcnNlKCksci5wb3AoKSxyLmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4gbyE9PSIifSl9X3Byb3RvY29sUmVnZXgoZSl7bGV0IHI9L14oW2EtekEtWjAtOV0qKTpcL1wvLy5leGVjKGUpO2lmKHIpcmV0dXJuIHJbMV19X3BvcnRSZWdleChlKXtsZXQgcj0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWMoZSk7aWYocilyZXR1cm4gclsxXX19fSk7dmFyIHdSLHZqdCxCVWUsUlVlPW4oKCk9PntpNigpO3dSPWNsYXNze2NvbnN0cnVjdG9yKGUsYSl7bGV0IHI9dmp0KGUpO3RoaXMuaG9zdD1yWzFdLHRoaXMudXNlcj1yWzJdLHRoaXMucmVwbz1yWzNdLHRoaXMuYWNjZXNzVG9rZW49YSx0aGlzLnNzaFVybD1CVWUodGhpcy5ob3N0LHRoaXMudXNlcix0aGlzLnJlcG8sdGhpcy5hY2Nlc3NUb2tlbiwic3NoIiksdGhpcy5odHRwc1VybD1CVWUodGhpcy5ob3N0LHRoaXMudXNlcix0aGlzLnJlcG8sdGhpcy5hY2Nlc3NUb2tlbiwiaHR0cHMiKX19LHZqdD1mdW5jdGlvbih0KXtyZXR1cm4vKFthLXpBLVowLTlcLV9cLl0qKSg/OlwvfFw6KShbYS16QS1aMC05XC1fXC5dKikoPzpcLykoW2EtekEtWjAtOVwtX1wuXSopKD86XC5naXQpLy5leGVjKHQpfSxCVWU9ZnVuY3Rpb24odCxlLGEscj0iIixpKXtsZXQgbztzd2l0Y2gociE9PSIiJiYocj1yKyJAIiksaSl7Y2FzZSJodHRwcyI6bz0iaHR0cHM6Ly8iK3IrdCsiLyIrZSsiLyIrYSsiLmdpdCI7YnJlYWs7Y2FzZSJzc2giOm89ImdpdEAiK3QrIjoiK2UrIi8iK2ErIi5naXQiO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiTGluayBUeXBlICIraSsiIG5vdCBrbm93biIpO2JyZWFrfXJldHVybiBvfX0pO3ZhciBMYT17fTtldChMYSx7QmFzZTY0OigpPT5iUixEb21haW46KCk9PnlSLEdpdFJlcG86KCk9PndSLGJhc2U2NDooKT0+bzYsY3JlYXRlOigpPT5tUixkb2NrZXI6KCk9PmdSLGluZGVudDooKT0+VXMsbm9ybWFsaXplOigpPT54Uix0eXBlOigpPT52Un0pO3ZhciBQOD1uKCgpPT57RFVlKCk7RVVlKCk7TlVlKCk7SVVlKCk7RlVlKCk7QVgoKTtPVWUoKTtSVWUoKX0pO3ZhciBUamU9Y3QoKE84LGM2KT0+e3ZhciB5anQ9MjAwLEhVZT0iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyIscVVlPTkwMDcxOTkyNTQ3NDA5OTEsJFg9IltvYmplY3QgQXJndW1lbnRzXSIsd2p0PSJbb2JqZWN0IEFycmF5XSIsVlVlPSJbb2JqZWN0IEJvb2xlYW5dIixVVWU9IltvYmplY3QgRGF0ZV0iLE1qdD0iW29iamVjdCBFcnJvcl0iLERYPSJbb2JqZWN0IEZ1bmN0aW9uXSIsalVlPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsTVI9IltvYmplY3QgTWFwXSIsV1VlPSJbb2JqZWN0IE51bWJlcl0iLEVYPSJbb2JqZWN0IE9iamVjdF0iLEdVZT0iW29iamVjdCBQcm9taXNlXSIsWVVlPSJbb2JqZWN0IFJlZ0V4cF0iLHpSPSJbb2JqZWN0IFNldF0iLFpVZT0iW29iamVjdCBTdHJpbmddIixYVWU9IltvYmplY3QgU3ltYm9sXSIsTlg9IltvYmplY3QgV2Vha01hcF0iLFFVZT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iLGtSPSJbb2JqZWN0IERhdGFWaWV3XSIsS1VlPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLEpVZT0iW29iamVjdCBGbG9hdDY0QXJyYXldIixlamU9IltvYmplY3QgSW50OEFycmF5XSIsdGplPSJbb2JqZWN0IEludDE2QXJyYXldIixhamU9IltvYmplY3QgSW50MzJBcnJheV0iLHJqZT0iW29iamVjdCBVaW50OEFycmF5XSIsaWplPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsb2plPSJbb2JqZWN0IFVpbnQxNkFycmF5XSIsc2plPSJbb2JqZWN0IFVpbnQzMkFycmF5XSIsemp0PS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxranQ9L1x3KiQvLFNqdD0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxDanQ9L14oPzowfFsxLTldXGQqKSQvLGkxPXt9O2kxWyRYXT1pMVt3anRdPWkxW1FVZV09aTFba1JdPWkxW1ZVZV09aTFbVVVlXT1pMVtLVWVdPWkxW0pVZV09aTFbZWplXT1pMVt0amVdPWkxW2FqZV09aTFbTVJdPWkxW1dVZV09aTFbRVhdPWkxW1lVZV09aTFbelJdPWkxW1pVZV09aTFbWFVlXT1pMVtyamVdPWkxW2lqZV09aTFbb2plXT1pMVtzamVdPSEwLGkxW01qdF09aTFbRFhdPWkxW05YXT0hMTt2YXIgTGp0PXR5cGVvZiBnbG9iYWw9PSJvYmplY3QiJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxUanQ9dHlwZW9mIHNlbGY9PSJvYmplY3QiJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixtaT1ManR8fFRqdHx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxuamU9dHlwZW9mIE84PT0ib2JqZWN0IiYmTzgmJiFPOC5ub2RlVHlwZSYmTzgsbGplPW5qZSYmdHlwZW9mIGM2PT0ib2JqZWN0IiYmYzYmJiFjNi5ub2RlVHlwZSYmYzYsX2p0PWxqZSYmbGplLmV4cG9ydHM9PT1uamU7ZnVuY3Rpb24gQWp0KHQsZSl7cmV0dXJuIHQuc2V0KGVbMF0sZVsxXSksdH1mdW5jdGlvbiAkanQodCxlKXtyZXR1cm4gdC5hZGQoZSksdH1mdW5jdGlvbiBEanQodCxlKXtmb3IodmFyIGE9LTEscj10P3QubGVuZ3RoOjA7KythPHImJmUodFthXSxhLHQpIT09ITE7KTtyZXR1cm4gdH1mdW5jdGlvbiBFanQodCxlKXtmb3IodmFyIGE9LTEscj1lLmxlbmd0aCxpPXQubGVuZ3RoOysrYTxyOyl0W2krYV09ZVthXTtyZXR1cm4gdH1mdW5jdGlvbiBjamUodCxlLGEscil7dmFyIGk9LTEsbz10P3QubGVuZ3RoOjA7Zm9yKHImJm8mJihhPXRbKytpXSk7KytpPG87KWE9ZShhLHRbaV0saSx0KTtyZXR1cm4gYX1mdW5jdGlvbiBOanQodCxlKXtmb3IodmFyIGE9LTEscj1BcnJheSh0KTsrK2E8dDspclthXT1lKGEpO3JldHVybiByfWZ1bmN0aW9uIFBqdCh0LGUpe3JldHVybiB0Py5bZV19ZnVuY3Rpb24gZGplKHQpe3ZhciBlPSExO2lmKHQhPW51bGwmJnR5cGVvZiB0LnRvU3RyaW5nIT0iZnVuY3Rpb24iKXRyeXtlPSEhKHQrIiIpfWNhdGNoe31yZXR1cm4gZX1mdW5jdGlvbiBmamUodCl7dmFyIGU9LTEsYT1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24ocixpKXthWysrZV09W2kscl19KSxhfWZ1bmN0aW9uIFBYKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiB0KGUoYSkpfX1mdW5jdGlvbiB1amUodCl7dmFyIGU9LTEsYT1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24ocil7YVsrK2VdPXJ9KSxhfXZhciBJanQ9QXJyYXkucHJvdG90eXBlLEZqdD1GdW5jdGlvbi5wcm90b3R5cGUsU1I9T2JqZWN0LnByb3RvdHlwZSxJWD1taVsiX19jb3JlLWpzX3NoYXJlZF9fIl0scGplPShmdW5jdGlvbigpe3ZhciB0PS9bXi5dKyQvLmV4ZWMoSVgmJklYLmtleXMmJklYLmtleXMuSUVfUFJPVE98fCIiKTtyZXR1cm4gdD8iU3ltYm9sKHNyYylfMS4iK3Q6IiJ9KSgpLGhqZT1GanQudG9TdHJpbmcsJG89U1IuaGFzT3duUHJvcGVydHksQ1I9U1IudG9TdHJpbmcsT2p0PVJlZ0V4cCgiXiIraGplLmNhbGwoJG8pLnJlcGxhY2Uoemp0LCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpLG1qZT1fanQ/bWkuQnVmZmVyOnZvaWQgMCxnamU9bWkuU3ltYm9sLHhqZT1taS5VaW50OEFycmF5LEJqdD1QWChPYmplY3QuZ2V0UHJvdG90eXBlT2YsT2JqZWN0KSxSanQ9T2JqZWN0LmNyZWF0ZSxIanQ9U1IucHJvcGVydHlJc0VudW1lcmFibGUscWp0PUlqdC5zcGxpY2UsYmplPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsVmp0PW1qZT9tamUuaXNCdWZmZXI6dm9pZCAwLFVqdD1QWChPYmplY3Qua2V5cyxPYmplY3QpLEZYPWw2KG1pLCJEYXRhVmlldyIpLEk4PWw2KG1pLCJNYXAiKSxPWD1sNihtaSwiUHJvbWlzZSIpLEJYPWw2KG1pLCJTZXQiKSxSWD1sNihtaSwiV2Vha01hcCIpLEY4PWw2KE9iamVjdCwiY3JlYXRlIiksamp0PUdzKEZYKSxXanQ9R3MoSTgpLEdqdD1HcyhPWCksWWp0PUdzKEJYKSxaanQ9R3MoUlgpLHZqZT1namU/Z2plLnByb3RvdHlwZTp2b2lkIDAseWplPXZqZT92amUudmFsdWVPZjp2b2lkIDA7ZnVuY3Rpb24ganModCl7dmFyIGU9LTEsYT10P3QubGVuZ3RoOjA7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8YTspe3ZhciByPXRbZV07dGhpcy5zZXQoclswXSxyWzFdKX19ZnVuY3Rpb24gWGp0KCl7dGhpcy5fX2RhdGFfXz1GOD9GOChudWxsKTp7fX1mdW5jdGlvbiBRanQodCl7cmV0dXJuIHRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XX1mdW5jdGlvbiBLanQodCl7dmFyIGU9dGhpcy5fX2RhdGFfXztpZihGOCl7dmFyIGE9ZVt0XTtyZXR1cm4gYT09PUhVZT92b2lkIDA6YX1yZXR1cm4gJG8uY2FsbChlLHQpP2VbdF06dm9pZCAwfWZ1bmN0aW9uIEpqdCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiBGOD9lW3RdIT09dm9pZCAwOiRvLmNhbGwoZSx0KX1mdW5jdGlvbiBlV3QodCxlKXt2YXIgYT10aGlzLl9fZGF0YV9fO3JldHVybiBhW3RdPUY4JiZlPT09dm9pZCAwP0hVZTplLHRoaXN9anMucHJvdG90eXBlLmNsZWFyPVhqdCxqcy5wcm90b3R5cGUuZGVsZXRlPVFqdCxqcy5wcm90b3R5cGUuZ2V0PUtqdCxqcy5wcm90b3R5cGUuaGFzPUpqdCxqcy5wcm90b3R5cGUuc2V0PWVXdDtmdW5jdGlvbiBnaSh0KXt2YXIgZT0tMSxhPXQ/dC5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrZTxhOyl7dmFyIHI9dFtlXTt0aGlzLnNldChyWzBdLHJbMV0pfX1mdW5jdGlvbiB0V3QoKXt0aGlzLl9fZGF0YV9fPVtdfWZ1bmN0aW9uIGFXdCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fLGE9TFIoZSx0KTtpZihhPDApcmV0dXJuITE7dmFyIHI9ZS5sZW5ndGgtMTtyZXR1cm4gYT09cj9lLnBvcCgpOnFqdC5jYWxsKGUsYSwxKSwhMH1mdW5jdGlvbiByV3QodCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxhPUxSKGUsdCk7cmV0dXJuIGE8MD92b2lkIDA6ZVthXVsxXX1mdW5jdGlvbiBpV3QodCl7cmV0dXJuIExSKHRoaXMuX19kYXRhX18sdCk+LTF9ZnVuY3Rpb24gb1d0KHQsZSl7dmFyIGE9dGhpcy5fX2RhdGFfXyxyPUxSKGEsdCk7cmV0dXJuIHI8MD9hLnB1c2goW3QsZV0pOmFbcl1bMV09ZSx0aGlzfWdpLnByb3RvdHlwZS5jbGVhcj10V3QsZ2kucHJvdG90eXBlLmRlbGV0ZT1hV3QsZ2kucHJvdG90eXBlLmdldD1yV3QsZ2kucHJvdG90eXBlLmhhcz1pV3QsZ2kucHJvdG90eXBlLnNldD1vV3Q7ZnVuY3Rpb24gczYodCl7dmFyIGU9LTEsYT10P3QubGVuZ3RoOjA7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8YTspe3ZhciByPXRbZV07dGhpcy5zZXQoclswXSxyWzFdKX19ZnVuY3Rpb24gc1d0KCl7dGhpcy5fX2RhdGFfXz17aGFzaDpuZXcganMsbWFwOm5ldyhJOHx8Z2kpLHN0cmluZzpuZXcganN9fWZ1bmN0aW9uIG5XdCh0KXtyZXR1cm4gVFIodGhpcyx0KS5kZWxldGUodCl9ZnVuY3Rpb24gbFd0KHQpe3JldHVybiBUUih0aGlzLHQpLmdldCh0KX1mdW5jdGlvbiBjV3QodCl7cmV0dXJuIFRSKHRoaXMsdCkuaGFzKHQpfWZ1bmN0aW9uIGRXdCh0LGUpe3JldHVybiBUUih0aGlzLHQpLnNldCh0LGUpLHRoaXN9czYucHJvdG90eXBlLmNsZWFyPXNXdCxzNi5wcm90b3R5cGUuZGVsZXRlPW5XdCxzNi5wcm90b3R5cGUuZ2V0PWxXdCxzNi5wcm90b3R5cGUuaGFzPWNXdCxzNi5wcm90b3R5cGUuc2V0PWRXdDtmdW5jdGlvbiBuNih0KXt0aGlzLl9fZGF0YV9fPW5ldyBnaSh0KX1mdW5jdGlvbiBmV3QoKXt0aGlzLl9fZGF0YV9fPW5ldyBnaX1mdW5jdGlvbiB1V3QodCl7cmV0dXJuIHRoaXMuX19kYXRhX18uZGVsZXRlKHQpfWZ1bmN0aW9uIHBXdCh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQodCl9ZnVuY3Rpb24gaFd0KHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX1mdW5jdGlvbiBtV3QodCxlKXt2YXIgYT10aGlzLl9fZGF0YV9fO2lmKGEgaW5zdGFuY2VvZiBnaSl7dmFyIHI9YS5fX2RhdGFfXztpZighSTh8fHIubGVuZ3RoPHlqdC0xKXJldHVybiByLnB1c2goW3QsZV0pLHRoaXM7YT10aGlzLl9fZGF0YV9fPW5ldyBzNihyKX1yZXR1cm4gYS5zZXQodCxlKSx0aGlzfW42LnByb3RvdHlwZS5jbGVhcj1mV3QsbjYucHJvdG90eXBlLmRlbGV0ZT11V3QsbjYucHJvdG90eXBlLmdldD1wV3QsbjYucHJvdG90eXBlLmhhcz1oV3QsbjYucHJvdG90eXBlLnNldD1tV3Q7ZnVuY3Rpb24gZ1d0KHQsZSl7dmFyIGE9VlgodCl8fFJXdCh0KT9OanQodC5sZW5ndGgsU3RyaW5nKTpbXSxyPWEubGVuZ3RoLGk9ISFyO2Zvcih2YXIgbyBpbiB0KShlfHwkby5jYWxsKHQsbykpJiYhKGkmJihvPT0ibGVuZ3RoInx8SVd0KG8scikpKSYmYS5wdXNoKG8pO3JldHVybiBhfWZ1bmN0aW9uIHdqZSh0LGUsYSl7dmFyIHI9dFtlXTsoISgkby5jYWxsKHQsZSkmJlNqZShyLGEpKXx8YT09PXZvaWQgMCYmIShlIGluIHQpKSYmKHRbZV09YSl9ZnVuY3Rpb24gTFIodCxlKXtmb3IodmFyIGE9dC5sZW5ndGg7YS0tOylpZihTamUodFthXVswXSxlKSlyZXR1cm4gYTtyZXR1cm4tMX1mdW5jdGlvbiB4V3QodCxlKXtyZXR1cm4gdCYmTWplKGUsVVgoZSksdCl9ZnVuY3Rpb24gSFgodCxlLGEscixpLG8scyl7dmFyIGw7aWYociYmKGw9bz9yKHQsaSxvLHMpOnIodCkpLGwhPT12b2lkIDApcmV0dXJuIGw7aWYoIV9SKHQpKXJldHVybiB0O3ZhciBmPVZYKHQpO2lmKGYpe2lmKGw9RVd0KHQpLCFlKXJldHVybiBBV3QodCxsKX1lbHNle3ZhciBjPVdzKHQpLHU9Yz09RFh8fGM9PWpVZTtpZihxV3QodCkpcmV0dXJuIHpXdCh0LGUpO2lmKGM9PUVYfHxjPT0kWHx8dSYmIW8pe2lmKGRqZSh0KSlyZXR1cm4gbz90Ont9O2lmKGw9Tld0KHU/e306dCksIWUpcmV0dXJuICRXdCh0LHhXdChsLHQpKX1lbHNle2lmKCFpMVtjXSlyZXR1cm4gbz90Ont9O2w9UFd0KHQsYyxIWCxlKX19c3x8KHM9bmV3IG42KTt2YXIgZD1zLmdldCh0KTtpZihkKXJldHVybiBkO2lmKHMuc2V0KHQsbCksIWYpdmFyIGg9YT9EV3QodCk6VVgodCk7cmV0dXJuIERqdChofHx0LGZ1bmN0aW9uKGcsYil7aCYmKGI9ZyxnPXRbYl0pLHdqZShsLGIsSFgoZyxlLGEscixiLHQscykpfSksbH1mdW5jdGlvbiBiV3QodCl7cmV0dXJuIF9SKHQpP1JqdCh0KTp7fX1mdW5jdGlvbiB2V3QodCxlLGEpe3ZhciByPWUodCk7cmV0dXJuIFZYKHQpP3I6RWp0KHIsYSh0KSl9ZnVuY3Rpb24geVd0KHQpe3JldHVybiBDUi5jYWxsKHQpfWZ1bmN0aW9uIHdXdCh0KXtpZighX1IodCl8fE9XdCh0KSlyZXR1cm4hMTt2YXIgZT1MamUodCl8fGRqZSh0KT9PanQ6U2p0O3JldHVybiBlLnRlc3QoR3ModCkpfWZ1bmN0aW9uIE1XdCh0KXtpZigha2plKHQpKXJldHVybiBVanQodCk7dmFyIGU9W107Zm9yKHZhciBhIGluIE9iamVjdCh0KSkkby5jYWxsKHQsYSkmJmEhPSJjb25zdHJ1Y3RvciImJmUucHVzaChhKTtyZXR1cm4gZX1mdW5jdGlvbiB6V3QodCxlKXtpZihlKXJldHVybiB0LnNsaWNlKCk7dmFyIGE9bmV3IHQuY29uc3RydWN0b3IodC5sZW5ndGgpO3JldHVybiB0LmNvcHkoYSksYX1mdW5jdGlvbiBxWCh0KXt2YXIgZT1uZXcgdC5jb25zdHJ1Y3Rvcih0LmJ5dGVMZW5ndGgpO3JldHVybiBuZXcgeGplKGUpLnNldChuZXcgeGplKHQpKSxlfWZ1bmN0aW9uIGtXdCh0LGUpe3ZhciBhPWU/cVgodC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihhLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpfWZ1bmN0aW9uIFNXdCh0LGUsYSl7dmFyIHI9ZT9hKGZqZSh0KSwhMCk6ZmplKHQpO3JldHVybiBjamUocixBanQsbmV3IHQuY29uc3RydWN0b3IpfWZ1bmN0aW9uIENXdCh0KXt2YXIgZT1uZXcgdC5jb25zdHJ1Y3Rvcih0LnNvdXJjZSxranQuZXhlYyh0KSk7cmV0dXJuIGUubGFzdEluZGV4PXQubGFzdEluZGV4LGV9ZnVuY3Rpb24gTFd0KHQsZSxhKXt2YXIgcj1lP2EodWplKHQpLCEwKTp1amUodCk7cmV0dXJuIGNqZShyLCRqdCxuZXcgdC5jb25zdHJ1Y3Rvcil9ZnVuY3Rpb24gVFd0KHQpe3JldHVybiB5amU/T2JqZWN0KHlqZS5jYWxsKHQpKTp7fX1mdW5jdGlvbiBfV3QodCxlKXt2YXIgYT1lP3FYKHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3IoYSx0LmJ5dGVPZmZzZXQsdC5sZW5ndGgpfWZ1bmN0aW9uIEFXdCh0LGUpe3ZhciBhPS0xLHI9dC5sZW5ndGg7Zm9yKGV8fChlPUFycmF5KHIpKTsrK2E8cjspZVthXT10W2FdO3JldHVybiBlfWZ1bmN0aW9uIE1qZSh0LGUsYSxyKXthfHwoYT17fSk7Zm9yKHZhciBpPS0xLG89ZS5sZW5ndGg7KytpPG87KXt2YXIgcz1lW2ldLGw9cj9yKGFbc10sdFtzXSxzLGEsdCk6dm9pZCAwO3dqZShhLHMsbD09PXZvaWQgMD90W3NdOmwpfXJldHVybiBhfWZ1bmN0aW9uICRXdCh0LGUpe3JldHVybiBNamUodCx6amUodCksZSl9ZnVuY3Rpb24gRFd0KHQpe3JldHVybiB2V3QodCxVWCx6amUpfWZ1bmN0aW9uIFRSKHQsZSl7dmFyIGE9dC5fX2RhdGFfXztyZXR1cm4gRld0KGUpP2FbdHlwZW9mIGU9PSJzdHJpbmciPyJzdHJpbmciOiJoYXNoIl06YS5tYXB9ZnVuY3Rpb24gbDYodCxlKXt2YXIgYT1QanQodCxlKTtyZXR1cm4gd1d0KGEpP2E6dm9pZCAwfXZhciB6amU9YmplP1BYKGJqZSxPYmplY3QpOmpXdCxXcz15V3Q7KEZYJiZXcyhuZXcgRlgobmV3IEFycmF5QnVmZmVyKDEpKSkhPWtSfHxJOCYmV3MobmV3IEk4KSE9TVJ8fE9YJiZXcyhPWC5yZXNvbHZlKCkpIT1HVWV8fEJYJiZXcyhuZXcgQlgpIT16Unx8UlgmJldzKG5ldyBSWCkhPU5YKSYmKFdzPWZ1bmN0aW9uKHQpe3ZhciBlPUNSLmNhbGwodCksYT1lPT1FWD90LmNvbnN0cnVjdG9yOnZvaWQgMCxyPWE/R3MoYSk6dm9pZCAwO2lmKHIpc3dpdGNoKHIpe2Nhc2Ugamp0OnJldHVybiBrUjtjYXNlIFdqdDpyZXR1cm4gTVI7Y2FzZSBHanQ6cmV0dXJuIEdVZTtjYXNlIFlqdDpyZXR1cm4gelI7Y2FzZSBaanQ6cmV0dXJuIE5YfXJldHVybiBlfSk7ZnVuY3Rpb24gRVd0KHQpe3ZhciBlPXQubGVuZ3RoLGE9dC5jb25zdHJ1Y3RvcihlKTtyZXR1cm4gZSYmdHlwZW9mIHRbMF09PSJzdHJpbmciJiYkby5jYWxsKHQsImluZGV4IikmJihhLmluZGV4PXQuaW5kZXgsYS5pbnB1dD10LmlucHV0KSxhfWZ1bmN0aW9uIE5XdCh0KXtyZXR1cm4gdHlwZW9mIHQuY29uc3RydWN0b3I9PSJmdW5jdGlvbiImJiFramUodCk/Yld0KEJqdCh0KSk6e319ZnVuY3Rpb24gUFd0KHQsZSxhLHIpe3ZhciBpPXQuY29uc3RydWN0b3I7c3dpdGNoKGUpe2Nhc2UgUVVlOnJldHVybiBxWCh0KTtjYXNlIFZVZTpjYXNlIFVVZTpyZXR1cm4gbmV3IGkoK3QpO2Nhc2Uga1I6cmV0dXJuIGtXdCh0LHIpO2Nhc2UgS1VlOmNhc2UgSlVlOmNhc2UgZWplOmNhc2UgdGplOmNhc2UgYWplOmNhc2UgcmplOmNhc2UgaWplOmNhc2Ugb2plOmNhc2Ugc2plOnJldHVybiBfV3QodCxyKTtjYXNlIE1SOnJldHVybiBTV3QodCxyLGEpO2Nhc2UgV1VlOmNhc2UgWlVlOnJldHVybiBuZXcgaSh0KTtjYXNlIFlVZTpyZXR1cm4gQ1d0KHQpO2Nhc2UgelI6cmV0dXJuIExXdCh0LHIsYSk7Y2FzZSBYVWU6cmV0dXJuIFRXdCh0KX19ZnVuY3Rpb24gSVd0KHQsZSl7cmV0dXJuIGU9ZT8/cVVlLCEhZSYmKHR5cGVvZiB0PT0ibnVtYmVyInx8Q2p0LnRlc3QodCkpJiZ0Pi0xJiZ0JTE9PTAmJnQ8ZX1mdW5jdGlvbiBGV3QodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIGU9PSJzdHJpbmcifHxlPT0ibnVtYmVyInx8ZT09InN5bWJvbCJ8fGU9PSJib29sZWFuIj90IT09Il9fcHJvdG9fXyI6dD09PW51bGx9ZnVuY3Rpb24gT1d0KHQpe3JldHVybiEhcGplJiZwamUgaW4gdH1mdW5jdGlvbiBramUodCl7dmFyIGU9dCYmdC5jb25zdHJ1Y3RvcixhPXR5cGVvZiBlPT0iZnVuY3Rpb24iJiZlLnByb3RvdHlwZXx8U1I7cmV0dXJuIHQ9PT1hfWZ1bmN0aW9uIEdzKHQpe2lmKHQhPW51bGwpe3RyeXtyZXR1cm4gaGplLmNhbGwodCl9Y2F0Y2h7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaHt9fXJldHVybiIifWZ1bmN0aW9uIEJXdCh0KXtyZXR1cm4gSFgodCwhMCwhMCl9ZnVuY3Rpb24gU2plKHQsZSl7cmV0dXJuIHQ9PT1lfHx0IT09dCYmZSE9PWV9ZnVuY3Rpb24gUld0KHQpe3JldHVybiBIV3QodCkmJiRvLmNhbGwodCwiY2FsbGVlIikmJighSGp0LmNhbGwodCwiY2FsbGVlIil8fENSLmNhbGwodCk9PSRYKX12YXIgVlg9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBDamUodCl7cmV0dXJuIHQhPW51bGwmJlZXdCh0Lmxlbmd0aCkmJiFMamUodCl9ZnVuY3Rpb24gSFd0KHQpe3JldHVybiBVV3QodCkmJkNqZSh0KX12YXIgcVd0PVZqdHx8V1d0O2Z1bmN0aW9uIExqZSh0KXt2YXIgZT1fUih0KT9DUi5jYWxsKHQpOiIiO3JldHVybiBlPT1EWHx8ZT09alVlfWZ1bmN0aW9uIFZXdCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJudW1iZXIiJiZ0Pi0xJiZ0JTE9PTAmJnQ8PXFVZX1mdW5jdGlvbiBfUih0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4hIXQmJihlPT0ib2JqZWN0Inx8ZT09ImZ1bmN0aW9uIil9ZnVuY3Rpb24gVVd0KHQpe3JldHVybiEhdCYmdHlwZW9mIHQ9PSJvYmplY3QifWZ1bmN0aW9uIFVYKHQpe3JldHVybiBDamUodCk/Z1d0KHQpOk1XdCh0KX1mdW5jdGlvbiBqV3QoKXtyZXR1cm5bXX1mdW5jdGlvbiBXV3QoKXtyZXR1cm4hMX1jNi5leHBvcnRzPUJXdH0pO3ZhciBBamU9Y3QoKE5xMSxfamUpPT57InVzZSBzdHJpY3QiO19qZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZXx8KGU9e30pLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT17Y21wOmV9KTt2YXIgYT10eXBlb2YgZS5jeWNsZXM9PSJib29sZWFuIj9lLmN5Y2xlczohMSxyPWUuY21wJiYoZnVuY3Rpb24obyl7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbihsLGYpe3ZhciBjPXtrZXk6bCx2YWx1ZTpzW2xdfSx1PXtrZXk6Zix2YWx1ZTpzW2ZdfTtyZXR1cm4gbyhjLHUpfX19KShlLmNtcCksaT1bXTtyZXR1cm4oZnVuY3Rpb24gbyhzKXtpZihzJiZzLnRvSlNPTiYmdHlwZW9mIHMudG9KU09OPT0iZnVuY3Rpb24iJiYocz1zLnRvSlNPTigpKSxzIT09dm9pZCAwKXtpZih0eXBlb2Ygcz09Im51bWJlciIpcmV0dXJuIGlzRmluaXRlKHMpPyIiK3M6Im51bGwiO2lmKHR5cGVvZiBzIT0ib2JqZWN0IilyZXR1cm4gSlNPTi5zdHJpbmdpZnkocyk7dmFyIGwsZjtpZihBcnJheS5pc0FycmF5KHMpKXtmb3IoZj0iWyIsbD0wO2w8cy5sZW5ndGg7bCsrKWwmJihmKz0iLCIpLGYrPW8oc1tsXSl8fCJudWxsIjtyZXR1cm4gZisiXSJ9aWYocz09PW51bGwpcmV0dXJuIm51bGwiO2lmKGkuaW5kZXhPZihzKSE9PS0xKXtpZihhKXJldHVybiBKU09OLnN0cmluZ2lmeSgiX19jeWNsZV9fIik7dGhyb3cgbmV3IFR5cGVFcnJvcigiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTiIpfXZhciBjPWkucHVzaChzKS0xLHU9T2JqZWN0LmtleXMocykuc29ydChyJiZyKHMpKTtmb3IoZj0iIixsPTA7bDx1Lmxlbmd0aDtsKyspe3ZhciBkPXVbbF0saD1vKHNbZF0pO2gmJihmJiYoZis9IiwiKSxmKz1KU09OLnN0cmluZ2lmeShkKSsiOiIraCl9cmV0dXJuIGkuc3BsaWNlKGMsMSksInsiK2YrIn0ifX0pKHQpfX0pO3ZhciBBUiwkamUsJFIsalg9bigoKT0+e044KCk7UDgoKTtBUj1OMihUamUoKSwxKSwkamU9TjIoQWplKCksMSksJFI9JGplLmRlZmF1bHR9KTtmdW5jdGlvbiBZV3QodCl7cmV0dXJuIHR5cGVvZiBCdWZmZXI8InUiP0J1ZmZlci5mcm9tKHQpLnRvU3RyaW5nKCJiYXNlNjQiKTpidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4udCkpfWZ1bmN0aW9uIFpXdCh0KXtpZih0eXBlb2YgQnVmZmVyPCJ1Iil7bGV0IGU9QnVmZmVyLmZyb20odCwiYmFzZTY0Iik7cmV0dXJuIG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpfXJldHVybiBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGF0b2IodCkpLm1hcChlPT5lLmNoYXJDb2RlQXQoMCkpKX1mdW5jdGlvbiBHWCh0LGUpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0LERSLGUpfWZ1bmN0aW9uIFlYKHQpe3JldHVybiBKU09OLnBhcnNlKHQsRGplKX1mdW5jdGlvbiBYV3QodCl7cmV0dXJuIE5qZSh0KSYmdC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZXWCh0LmRhdGEpfWZ1bmN0aW9uIFFXdCh0KXtyZXR1cm4gTmplKHQpJiZ0LnR5cGU9PT0iQnVmZmVyIiYmKEVqZSh0LmRhdGEpfHxXWCh0LmRhdGEpKXx8dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl9ZnVuY3Rpb24gRWplKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfWZ1bmN0aW9uIFdYKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ9ZnVuY3Rpb24gTmplKHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsfXZhciBEUixEamUsUGplPW4oKCk9PntqWCgpO0RSPSh0LGUpPT57aWYoUVd0KGUpKXtsZXQgYTtpZigiZGF0YSJpbiBlJiZFamUoZS5kYXRhKSlhPW5ldyBVaW50OEFycmF5KGUuZGF0YSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgVWludDhBcnJheSlhPWU7ZWxzZSByZXR1cm4gZTtyZXR1cm57dHlwZToiRW5jb2RlZEJ1ZmZlciIsZGF0YToiYmFzZTY0OiIrWVd0KGEpfX1yZXR1cm4gZX0sRGplPSh0LGUpPT57aWYoWFd0KGUpJiZXWChlLmRhdGEpJiZlLmRhdGEuc3RhcnRzV2l0aCgiYmFzZTY0OiIpKXtsZXQgYT1lLmRhdGEuc2xpY2UoNyk7cmV0dXJuIFpXdChhKX1yZXR1cm4gZX19KTt2YXIgbzE9e307ZXQobzEse1NtYXJ0anNvbjooKT0+WFgsZGVlcEVxdWFsSnNvbkxTdHJpbmdzOigpPT5vR3QsZGVlcEVxdWFsT2JqZWN0czooKT0+SWplLGZvbGREZWM6KCk9PmlHdCxwYXJzZTooKT0+RVIscGFyc2VCYXNlNjQ6KCk9PnJHdCxwYXJzZUpzb25MOigpPT5aWCxzdGFibGVPbmVXYXlTdHJpbmdpZnk6KCk9PmVHdCxzdHJpbmdpZnk6KCk9PllzLHN0cmluZ2lmeUJhc2U2NDooKT0+YUd0LHN0cmluZ2lmeUpzb25MOigpPT5KV3Qsc3RyaW5naWZ5UHJldHR5OigpPT50R3R9KTt2YXIgRVIsWlgsSld0LGVHdCxZcyx0R3QsYUd0LHJHdCxYWCxpR3QsSWplLG9HdCxkNj1uKCgpPT57algoKTtQamUoKTtFUj1ZWCxaWD10PT50LnNwbGl0KGAKYCkucmVkdWNlKChyLGkpPT57bGV0IG89aS50cmltKCk7cmV0dXJuIG8ubGVuZ3RoPjAmJnIucHVzaChFUihvKSkscn0sW10pLEpXdD10PT50Lm1hcChlPT5ZcyhlKSkuam9pbihgCmApLGVHdD0odCxlLGE9e30pPT57bGV0IHI9bmV3IFdlYWtTZXQsaT1sPT57aWYobD09PW51bGx8fHR5cGVvZiBsIT0ib2JqZWN0IilyZXR1cm4gbDtsZXQgZj1EUigiIixsKTtpZihmJiZmLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJnR5cGVvZiBmLmRhdGE9PSJzdHJpbmciKXJldHVybiBmO2lmKHIuaGFzKGwpKXJldHVybiJfX2N5Y2xlX18iO2lmKHIuYWRkKGwpLEFycmF5LmlzQXJyYXkobCkpcmV0dXJuIGwubWFwKHU9PmkodSkpO2xldCBjPXt9O2ZvcihsZXQgdSBvZiBPYmplY3Qua2V5cyhsKSl0cnl7Y1t1XT1pKGxbdV0pfWNhdGNoe2NbdV09Il9fdW5zZXJpYWxpemFibGVfXyJ9cmV0dXJuIGN9LG89aSh0KSxzPXsuLi5hLGN5Y2xlczohMH07aWYoZSYmIXMuY21wKXtsZXQgbD1uZXcgTWFwO2UuZm9yRWFjaCgoZixjKT0+bC5zZXQoZixjKSkscy5jbXA9KGYsYyk9PntsZXQgdT1sLmhhcyhmLmtleSk/bC5nZXQoZi5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxkPWwuaGFzKGMua2V5KT9sLmdldChjLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiB1IT09ZD91LWQ6Zi5rZXk8Yy5rZXk/LTE6Zi5rZXk+Yy5rZXk/MTowfX1yZXR1cm4gJFIobyxzKX0sWXM9KHQsZSxhPXt9KT0+e2xldCByPUdYKHQpO3Q9SlNPTi5wYXJzZShyKTtsZXQgaT17Li4uYX07aWYoZSYmIWkuY21wKXtsZXQgcz1uZXcgTWFwO2UuZm9yRWFjaCgobCxmKT0+cy5zZXQobCxmKSksaS5jbXA9KGwsZik9PntsZXQgYz1zLmhhcyhsLmtleSk/cy5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1PXMuaGFzKGYua2V5KT9zLmdldChmLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiBjIT09dT9jLXU6bC5rZXk8Zi5rZXk/LTE6bC5rZXk+Zi5rZXk/MTowfX1yZXR1cm4gJFIodCxpKX0sdEd0PXQ9PntsZXQgZT1Zcyh0KSxhPUpTT04ucGFyc2UoZSk7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGEsbnVsbCwyKX0sYUd0PSguLi50KT0+e2xldCBlPVlzKC4uLnQpO3JldHVybiBMYS5iYXNlNjQuZW5jb2RlVXJpKGUpfSxyR3Q9dD0+e2xldCBlPUxhLmJhc2U2NCxyPShlLmRlY29kZVVyaXx8ZS5kZWNvZGUpKHQpO3JldHVybiBFUihyKX0sWFg9Y2xhc3MgdHtzdGF0aWMgZW5mb2xkRnJvbU9iamVjdChlKXtsZXQgYT1uZXcgdGhpcyxyPWEuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IGkgaW4gZSlyLmluZGV4T2YoaSkhPT0tMSYmKGFbaV09ZVtpXSk7cmV0dXJuIGF9c3RhdGljIGVuZm9sZEZyb21Kc29uKGUpe2xldCBhPUVSKGUpO3JldHVybiB0aGlzLmVuZm9sZEZyb21PYmplY3QoYSl9Zm9sZFRvT2JqZWN0KCl7bGV0IGU9bmV3IFNldDtyZXR1cm4gZS5hZGQodGhpcyksdGhpcy5mb2xkVG9PYmplY3RJbnRlcm5hbChlKX1mb2xkVG9PYmplY3RJbnRlcm5hbChlKXtsZXQgYT17fSxyPW89PntpZihvIGluc3RhbmNlb2YgdCl7aWYoZS5oYXMobykpdGhyb3cgbmV3IEVycm9yKCJjeWNsZSBkZXRlY3RlZCIpO3JldHVybiBlLmFkZChvKSxvLmZvbGRUb09iamVjdEludGVybmFsKGUpfXJldHVybiBBcnJheS5pc0FycmF5KG8pP28ubWFwKHM9PnIocykpOkFSLmRlZmF1bHQobyl9LGk9dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgbyBvZiBpKXtsZXQgcz10aGlzW29dO2Fbb109cihzKX1yZXR1cm4gYX1mb2xkVG9Kc29uKCl7bGV0IGU9dGhpcy5mb2xkVG9PYmplY3QoKTtyZXR1cm4gWXMoZSl9fSxpR3Q9KCk9Pih0LGUpPT57dC5zYXZlYWJsZVByb3BlcnRpZXN8fCh0LnNhdmVhYmxlUHJvcGVydGllcz1bXSksdC5zYXZlYWJsZVByb3BlcnRpZXMucHVzaChlKX0sSWplPSh0LGUpPT57bGV0IGE9WXModCkscj1ZcyhlKTtyZXR1cm4gYT09PXJ9LG9HdD0odCxlKT0+e2xldCBhPVpYKHQpLHI9WlgoZSk7cmV0dXJuIElqZShhLHIpfX0pO3ZhciBSOD17fTtldChSOCx7ZGVsZXRlREI6KCk9PmpqZSxvcGVuREI6KCk9PlVqZSx1bndyYXA6KCk9PkI4LHdyYXA6KCk9Pl9yfSk7ZnVuY3Rpb24gc0d0KCl7cmV0dXJuIEZqZXx8KEZqZT1bSURCRGF0YWJhc2UsSURCT2JqZWN0U3RvcmUsSURCSW5kZXgsSURCQ3Vyc29yLElEQlRyYW5zYWN0aW9uXSl9ZnVuY3Rpb24gbkd0KCl7cmV0dXJuIE9qZXx8KE9qZT1bSURCQ3Vyc29yLnByb3RvdHlwZS5hZHZhbmNlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWUsSURCQ3Vyc29yLnByb3RvdHlwZS5jb250aW51ZVByaW1hcnlLZXldKX1mdW5jdGlvbiBsR3QodCl7bGV0IGU9bmV3IFByb21pc2UoKGEscik9PntsZXQgaT0oKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsbyksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIscyl9LG89KCk9PnthKF9yKHQucmVzdWx0KSksaSgpfSxzPSgpPT57cih0LmVycm9yKSxpKCl9O3QuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsbyksdC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIscyl9KTtyZXR1cm4gTlIuc2V0KGUsdCksZX1mdW5jdGlvbiBjR3QodCl7aWYoS1guaGFzKHQpKXJldHVybjtsZXQgZT1uZXcgUHJvbWlzZSgoYSxyKT0+e2xldCBpPSgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsbyksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIscyksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyl9LG89KCk9PnthKCksaSgpfSxzPSgpPT57cih0LmVycm9yfHxuZXcgRE9NRXhjZXB0aW9uKCJBYm9ydEVycm9yIiwiQWJvcnRFcnJvciIpKSxpKCl9O3QuYWRkRXZlbnRMaXN0ZW5lcigiY29tcGxldGUiLG8pLHQuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLHMpLHQuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpfSk7S1guc2V0KHQsZSl9ZnVuY3Rpb24gQmplKHQpe2VRPXQoZVEpfWZ1bmN0aW9uIGRHdCh0KXtyZXR1cm4gbkd0KCkuaW5jbHVkZXModCk/ZnVuY3Rpb24oLi4uZSl7cmV0dXJuIHQuYXBwbHkoQjgodGhpcyksZSksX3IodGhpcy5yZXF1ZXN0KX06ZnVuY3Rpb24oLi4uZSl7cmV0dXJuIF9yKHQuYXBwbHkoQjgodGhpcyksZSkpfX1mdW5jdGlvbiBmR3QodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP2RHdCh0KToodCBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiZjR3QodCksUVgodCxzR3QoKSk/bmV3IFByb3h5KHQsZVEpOnQpfWZ1bmN0aW9uIF9yKHQpe2lmKHQgaW5zdGFuY2VvZiBJREJSZXF1ZXN0KXJldHVybiBsR3QodCk7aWYoSlguaGFzKHQpKXJldHVybiBKWC5nZXQodCk7bGV0IGU9Zkd0KHQpO3JldHVybiBlIT09dCYmKEpYLnNldCh0LGUpLE5SLnNldChlLHQpKSxlfWZ1bmN0aW9uIFVqZSh0LGUse2Jsb2NrZWQ6YSx1cGdyYWRlOnIsYmxvY2tpbmc6aSx0ZXJtaW5hdGVkOm99PXt9KXtsZXQgcz1pbmRleGVkREIub3Blbih0LGUpLGw9X3Iocyk7cmV0dXJuIHImJnMuYWRkRXZlbnRMaXN0ZW5lcigidXBncmFkZW5lZWRlZCIsZj0+e3IoX3Iocy5yZXN1bHQpLGYub2xkVmVyc2lvbixmLm5ld1ZlcnNpb24sX3Iocy50cmFuc2FjdGlvbiksZil9KSxhJiZzLmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrZWQiLGY9PmEoZi5vbGRWZXJzaW9uLGYubmV3VmVyc2lvbixmKSksbC50aGVuKGY9PntvJiZmLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwoKT0+bygpKSxpJiZmLmFkZEV2ZW50TGlzdGVuZXIoInZlcnNpb25jaGFuZ2UiLGM9PmkoYy5vbGRWZXJzaW9uLGMubmV3VmVyc2lvbixjKSl9KS5jYXRjaCgoKT0+e30pLGx9ZnVuY3Rpb24gamplKHQse2Jsb2NrZWQ6ZX09e30pe2xldCBhPWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSh0KTtyZXR1cm4gZSYmYS5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIixyPT5lKHIub2xkVmVyc2lvbixyKSksX3IoYSkudGhlbigoKT0+e30pfWZ1bmN0aW9uIFJqZSh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIElEQkRhdGFiYXNlJiYhKGUgaW4gdCkmJnR5cGVvZiBlPT0ic3RyaW5nIikpcmV0dXJuO2lmKHRRLmdldChlKSlyZXR1cm4gdFEuZ2V0KGUpO2xldCBhPWUucmVwbGFjZSgvRnJvbUluZGV4JC8sIiIpLHI9ZSE9PWEsaT1wR3QuaW5jbHVkZXMoYSk7aWYoIShhIGluKHI/SURCSW5kZXg6SURCT2JqZWN0U3RvcmUpLnByb3RvdHlwZSl8fCEoaXx8dUd0LmluY2x1ZGVzKGEpKSlyZXR1cm47bGV0IG89YXN5bmMgZnVuY3Rpb24ocywuLi5sKXtsZXQgZj10aGlzLnRyYW5zYWN0aW9uKHMsaT8icmVhZHdyaXRlIjoicmVhZG9ubHkiKSxjPWYuc3RvcmU7cmV0dXJuIHImJihjPWMuaW5kZXgobC5zaGlmdCgpKSksKGF3YWl0IFByb21pc2UuYWxsKFtjW2FdKC4uLmwpLGkmJmYuZG9uZV0pKVswXX07cmV0dXJuIHRRLnNldChlLG8pLG99YXN5bmMgZnVuY3Rpb24qZ0d0KC4uLnQpe2xldCBlPXRoaXM7aWYoZSBpbnN0YW5jZW9mIElEQkN1cnNvcnx8KGU9YXdhaXQgZS5vcGVuQ3Vyc29yKC4uLnQpKSwhZSlyZXR1cm47ZT1lO2xldCBhPW5ldyBQcm94eShlLG1HdCk7Zm9yKHFqZS5zZXQoYSxlKSxOUi5zZXQoYSxCOChlKSk7ZTspeWllbGQgYSxlPWF3YWl0KGFRLmdldChhKXx8ZS5jb250aW51ZSgpKSxhUS5kZWxldGUoYSl9ZnVuY3Rpb24gVmplKHQsZSl7cmV0dXJuIGU9PT1TeW1ib2wuYXN5bmNJdGVyYXRvciYmUVgodCxbSURCSW5kZXgsSURCT2JqZWN0U3RvcmUsSURCQ3Vyc29yXSl8fGU9PT0iaXRlcmF0ZSImJlFYKHQsW0lEQkluZGV4LElEQk9iamVjdFN0b3JlXSl9dmFyIFFYLEZqZSxPamUsS1gsSlgsTlIsZVEsQjgsdUd0LHBHdCx0USxoR3QsSGplLGFRLHFqZSxtR3QsV2plPW4oKCk9PntRWD0odCxlKT0+ZS5zb21lKGE9PnQgaW5zdGFuY2VvZiBhKTtLWD1uZXcgV2Vha01hcCxKWD1uZXcgV2Vha01hcCxOUj1uZXcgV2Vha01hcDtlUT17Z2V0KHQsZSxhKXtpZih0IGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24pe2lmKGU9PT0iZG9uZSIpcmV0dXJuIEtYLmdldCh0KTtpZihlPT09InN0b3JlIilyZXR1cm4gYS5vYmplY3RTdG9yZU5hbWVzWzFdP3ZvaWQgMDphLm9iamVjdFN0b3JlKGEub2JqZWN0U3RvcmVOYW1lc1swXSl9cmV0dXJuIF9yKHRbZV0pfSxzZXQodCxlLGEpe3JldHVybiB0W2VdPWEsITB9LGhhcyh0LGUpe3JldHVybiB0IGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24mJihlPT09ImRvbmUifHxlPT09InN0b3JlIik/ITA6ZSBpbiB0fX07Qjg9dD0+TlIuZ2V0KHQpO3VHdD1bImdldCIsImdldEtleSIsImdldEFsbCIsImdldEFsbEtleXMiLCJjb3VudCJdLHBHdD1bInB1dCIsImFkZCIsImRlbGV0ZSIsImNsZWFyIl0sdFE9bmV3IE1hcDtCamUodD0+KHsuLi50LGdldDooZSxhLHIpPT5SamUoZSxhKXx8dC5nZXQoZSxhLHIpLGhhczooZSxhKT0+ISFSamUoZSxhKXx8dC5oYXMoZSxhKX0pKTtoR3Q9WyJjb250aW51ZSIsImNvbnRpbnVlUHJpbWFyeUtleSIsImFkdmFuY2UiXSxIamU9e30sYVE9bmV3IFdlYWtNYXAscWplPW5ldyBXZWFrTWFwLG1HdD17Z2V0KHQsZSl7aWYoIWhHdC5pbmNsdWRlcyhlKSlyZXR1cm4gdFtlXTtsZXQgYT1IamVbZV07cmV0dXJuIGF8fChhPUhqZVtlXT1mdW5jdGlvbiguLi5yKXthUS5zZXQodGhpcyxxamUuZ2V0KHRoaXMpW2VdKC4uLnIpKX0pLGF9fTtCamUodD0+KHsuLi50LGdldChlLGEscil7cmV0dXJuIFZqZShlLGEpP2dHdDp0LmdldChlLGEscil9LGhhcyhlLGEpe3JldHVybiBWamUoZSxhKXx8dC5oYXMoZSxhKX19KSl9KTt2YXIgclE9bigoKT0+e2s4KCk7TjgoKTtkNigpO3AyKCk7VmEoKTtvTygpO1dqZSgpfSk7dmFyIEg4LGlRPW4oKCk9PntyUSgpO0g4PWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuaW5pdENhbGxlZD0hMSx0aGlzLnJlYWR5RGVmZXJyZWQ9VmUuZGVmZXIoKSx0aGlzLm9wdGlvbnM9ZX1hc3luYyBpbml0KCl7aWYodGhpcy5pbml0Q2FsbGVkKXthd2FpdCB0aGlzLnJlYWR5RGVmZXJyZWQucHJvbWlzZTtyZXR1cm59dGhpcy5pbml0Q2FsbGVkPSEwO2xldCBlPW5ldyBXYS5TbWFydGVudjtpZighZS5pc0Jyb3dzZXImJiFnbG9iYWxUaGlzLmluZGV4ZWREQiYmKGNvbnNvbGUubG9nKCJoZXkiKSxjb25zb2xlLmxvZyhnbG9iYWxUaGlzLmluZGV4ZWREQiksYXdhaXQgZS5nZXRTYWZlTm9kZU1vZHVsZSgiZmFrZS1pbmRleGVkZGIvYXV0byIpLCFnbG9iYWxUaGlzLmluZGV4ZWREQikpe2xldCBhPWF3YWl0IGUuZ2V0U2FmZU5vZGVNb2R1bGUoImZha2UtaW5kZXhlZGRiIik7Z2xvYmFsVGhpcy5pbmRleGVkREI9bmV3IGEuSURCRmFjdG9yeX10aGlzLmRiPWF3YWl0IFI4Lm9wZW5EQih0aGlzLm9wdGlvbnMuZGJOYW1lLDEse3VwZ3JhZGU6YT0+e2EuY3JlYXRlT2JqZWN0U3RvcmUodGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9fSksdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1hc3luYyBnZXQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZ2V0KHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsZSl9YXN5bmMgY2hlY2soZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLCEhYXdhaXQgdGhpcy5nZXQoZSl9YXN5bmMgc2V0KGUsYSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIucHV0KHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsYSxlKX1hc3luYyBkZWxldGUoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZGVsZXRlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsZSl9YXN5bmMgY2xlYXIoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5jbGVhcih0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX1hc3luYyBrZXlzKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuZ2V0QWxsS2V5cyh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX19fSk7dmFyIG9RLFlqZT1uKCgpPT57aVEoKTtyUSgpO29RPWNsYXNze2NvbnN0cnVjdG9yKGU9ImRlZmF1bHQiKXt0aGlzLndlYnN0b3JlPW5ldyBIOCh7ZGJOYW1lOiJ0clN0b3JlIixzdG9yZU5hbWU6YHRyU3RvcmUtJHtlfWB9KX1idWlsZEtleShlKXtyZXR1cm4gbzEuc3RyaW5naWZ5KHttZXRob2Q6ZS5tZXRob2QscmVxdWVzdDplLnJlcXVlc3R9KX1hc3luYyBzZXRCeVJlcXVlc3QoZSl7aWYoIWUucmVzcG9uc2UpdGhyb3cgbmV3IEVycm9yKCJZb3UgY2Fubm90IHN0b3JlIHJlcXVlc3RzIHdpdGhvdXQgYSByZXNwb25zZSBwcmVzZW50Iik7YXdhaXQgdGhpcy53ZWJzdG9yZS5zZXQodGhpcy5idWlsZEtleShlKSxlKX1hc3luYyBnZXRCeVJlcXVlc3QoZSl7cmV0dXJuIGF3YWl0IHRoaXMud2Vic3RvcmUuZ2V0KHRoaXMuYnVpbGRLZXkoZSkpfX19KTt2YXIgR2E9e307ZXQoR2Ese1R5cGVkcmVxdWVzdENhY2hlOigpPT5vUSxXZWJTdG9yZTooKT0+SDh9KTt2YXIgUFI9bigoKT0+e1lqZSgpO2lRKCl9KTt2YXIgWmplPW4oKCk9PntpaSgpO044KCk7ZDYoKTtwMigpO1BSKCl9KTt2YXIgWnM9e307ZXQoWnMse1dlYlJlcXVlc3Q6KCk9PnNRfSk7dmFyIHNRLG5RPW4oKCk9PntaamUoKTtzUT1jbGFzc3tjb25zdHJ1Y3RvcihlPXt9KXt0aGlzLm9wdGlvbnNBcmc9ZSx0aGlzLmNhY2hlU3RvcmU9bmV3IEdhLldlYlN0b3JlKHtkYk5hbWU6IndlYnJlcXVlc3QiLHN0b3JlTmFtZToid2VicmVxdWVzdCJ9KSx0aGlzLm9wdGlvbnM9e2xvZ2dpbmc6ITAsLi4uZX19YXN5bmMgZ2V0SnNvbihlLGE9ITEpe2xldCBpPWF3YWl0KGF3YWl0IHRoaXMucmVxdWVzdChlLHttZXRob2Q6IkdFVCIsdXNlQ2FjaGU6YX0pKS50ZXh0KCk7cmV0dXJuIG8xLnBhcnNlKGkpfWFzeW5jIHBvc3RKc29uKGUsYSxyPSExKXtsZXQgbz1hd2FpdChhd2FpdCB0aGlzLnJlcXVlc3QoZSx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6bzEuc3RyaW5naWZ5KGEpLHVzZUNhY2hlOnJ9KSkudGV4dCgpO3JldHVybiBvMS5wYXJzZShvKX1hc3luYyBwdXRKc29uKGUsYSxyPSExKXtsZXQgbz1hd2FpdChhd2FpdCB0aGlzLnJlcXVlc3QoZSx7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpvMS5zdHJpbmdpZnkoYSl9KSkudGV4dCgpO3JldHVybiBvMS5wYXJzZShvKX1hc3luYyBkZWxldGVKc29uKGUsYT0hMSl7bGV0IGk9YXdhaXQoYXdhaXQgdGhpcy5yZXF1ZXN0KGUse2hlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sbWV0aG9kOiJHRVQifSkpLnRleHQoKTtyZXR1cm4gbzEucGFyc2UoaSl9YXN5bmMgcmVxdWVzdChlLGEpe2E9e3RpbWVvdXRNczo2ZTQsdXNlQ2FjaGU6ITEsLi4uYX07bGV0IHI9bmV3IEFib3J0Q29udHJvbGxlcjtmdC5kZWxheUZvcihhLnRpbWVvdXRNcykudGhlbigoKT0+e3IuYWJvcnQoKX0pO2xldCBpPVZlLmRlZmVyKCksbz0hMTtpZihhLnVzZUNhY2hlJiZhd2FpdCB0aGlzLmNhY2hlU3RvcmUuY2hlY2soZSkpe2xldCBsPWF3YWl0IHRoaXMuY2FjaGVTdG9yZS5nZXQoZSk7aS5yZXNvbHZlKG5ldyBSZXNwb25zZShsLHt9KSl9ZWxzZSBpLnJlc29sdmUobnVsbCk7bGV0IHM9YXdhaXQgZmV0Y2goZSx7c2lnbmFsOnIuc2lnbmFsLG1ldGhvZDphLm1ldGhvZCxoZWFkZXJzOnsuLi5hLmhlYWRlcnN8fHt9fSxib2R5OmEuYm9keX0pLmNhdGNoKGFzeW5jIGw9PmEudXNlQ2FjaGUmJmF3YWl0IGkucHJvbWlzZT8obz0hMCxpLnByb21pc2UpOmwpO2lmKGEudXNlQ2FjaGUmJmF3YWl0IGkucHJvbWlzZSYmcy5zdGF0dXM9PT01MDAmJihvPSEwLHM9YXdhaXQgaS5wcm9taXNlKSwhbyYmYS51c2VDYWNoZSYmcy5zdGF0dXM8MzAwKXtsZXQgbD1hd2FpdCBzLmNsb25lKCkuYXJyYXlCdWZmZXIoKTthd2FpdCB0aGlzLmNhY2hlU3RvcmUuc2V0KGUsbCl9cmV0dXJuIHRoaXMubG9nKGAke2V9IGFuc3dlcnMgd2l0aCBzdGF0dXM6ICR7cy5zdGF0dXN9YCksc31hc3luYyByZXF1ZXN0TXVsdGlFbmRwb2ludChlLGEpe2xldCByLGk9MDtBcnJheS5pc0FycmF5KGUpP3I9ZTpyPVtlXTtsZXQgbz1bXSxzPWFzeW5jIGM9PntvLnB1c2goYyksYz09PSI0MjkiJiYoY29uc29sZS5sb2coImdvdCA0MjksIHNvIHdhaXRpbmcgYSBsaXR0bGUgYml0LiIpLGF3YWl0IGZ0LmRlbGF5Rm9yKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxMDAxKSsxZTMpKTtsZXQgdT0wO2ZvcihsZXQgZCBvZiBvKWQ9PT1jJiZ1Kys7dT4yKnIubGVuZ3RoKmkmJmkrK30sbD1hc3luYyBjPT57aWYoIWMpdGhyb3cgbmV3IEVycm9yKCJyZXF1ZXN0IGZhaWxlZCBwZXJtYW5lbnRseSIpO3RoaXMubG9nKGBHZXR0aW5nICR7Y30gd2l0aCBtZXRob2QgJHthLm1ldGhvZH1gKTtsZXQgdT1hd2FpdCBmZXRjaChjLHttZXRob2Q6YS5tZXRob2QsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLC4uLmEuaGVhZGVyc3x8e319LGJvZHk6YS5ib2R5fSk7cmV0dXJuIHRoaXMubG9nKGAke2N9IGFuc3dlcnMgd2l0aCBzdGF0dXM6ICR7dS5zdGF0dXN9YCksdS5zdGF0dXM+PTIwMCYmdS5zdGF0dXM8MzAwP3U6KGF3YWl0IHModS5zdGF0dXMudG9TdHJpbmcoKSksYXdhaXQgbChyW2ldKSl9O3JldHVybiBhd2FpdCBsKHJbaV0pfWxvZyhlKXt0aGlzLm9wdGlvbnMubG9nZ2luZyYmY29uc29sZS5sb2coZSl9fX0pO3ZhciBEbyxFbz1uKCgpPT57b08oKTtEbz1OMihsRigpLDEpO2s4KCk7TFVlKCk7aWkoKTtUVWUoKTtwMigpO25RKCl9KTt2YXIgeGkscTg9bigoKT0+e0VvKCk7eGk9Y2xhc3N7Y29uc3RydWN0b3IoZSxhKXt0aGlzLmVycm9yVGV4dD1lLHRoaXMuZXJyb3JEYXRhPWF9fX0pO3ZhciBGUixYamU9bigoKT0+e3E4KCk7RW8oKTtGUj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubG9jYWxEYXRhPXt9fWFzeW5jIHBhc3NHdWFyZHMoZSxhKXtsZXQgcj1uZXcgRTguR3VhcmRTZXQoZSk7aWYoIWF3YWl0IHIuYWxsR3VhcmRzUGFzcyhhKSl7bGV0IG89YXdhaXQgci5nZXRGYWlsZWRIaW50KGEpO3Rocm93IG5ldyB4aShgZ3VhcmQgZmFpbGVkOiAke299YCx7ZmFpbGVkSGludDpvfSl9fX19KTt2YXIgbFEsY1E9bigoKT0+e0VvKCk7cTgoKTtYamUoKTtsUT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMubWV0aG9kPWUsdGhpcy5oYW5kbGVyRnVuY3Rpb249YX1hc3luYyBhZGRSZXNwb25zZShlKXtpZihlLm1ldGhvZCE9PXRoaXMubWV0aG9kKXRocm93IG5ldyBFcnJvcigidGhpcyBoYW5kbGVyIGhhcyBiZWVuIGdpdmVuIGEgd3JvbmcgbWV0aG9kIHRvIGFuc3dlciB0by4gUGxlYXNlIHVzZSBhIFR5cGVkUm91dGVyIHRvIGZpbHRlciByZXF1ZXN0cyIpO2xldCBhLHI9bmV3IEZSO2UubG9jYWxEYXRhJiYoci5sb2NhbERhdGE9ZS5sb2NhbERhdGEpO2xldCBpPWF3YWl0IHRoaXMuaGFuZGxlckZ1bmN0aW9uKGUucmVxdWVzdCxyKS5jYXRjaChvPT57byBpbnN0YW5jZW9mIHhpP2E9bzpjb25zb2xlLmxvZyhvKX0pO3JldHVybiBhJiYoZS5lcnJvcj17dGV4dDphLmVycm9yVGV4dCxkYXRhOmEuZXJyb3JEYXRhfSksaSYmKGUucmVzcG9uc2U9aSksZT8uY29ycmVsYXRpb24/LnBoYXNlJiYoZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiKSxlfX19KTt2YXIgWHMsVjg9bigoKT0+e0VvKCk7T1IoKTtjUSgpO2RRKCk7WHM9Y2xhc3MgdHtjb25zdHJ1Y3Rvcigpe3RoaXMuaG9va3M9e30sdGhpcy5yb3V0ZXJNYXA9bmV3IEIxLk9iamVjdE1hcCx0aGlzLmhhbmRsZXJNYXA9bmV3IEIxLk9iamVjdE1hcCx0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcz1uZXcgQjEuT2JqZWN0TWFwLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXA9bmV3IEIxLkludGVyZXN0TWFwKGU9PmUpfXN0YXRpYyBnZXQgZ2xvYmFsSG9va3MoKXtyZXR1cm4gZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N8fChnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fSksZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N9c3RhdGljIHNldCBnbG9iYWxIb29rcyhlKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz1lfXN0YXRpYyBzZXRHbG9iYWxIb29rcyhlKXtsZXQgYT10Lmdsb2JhbEhvb2tzO3QuZ2xvYmFsSG9va3M9ey4uLmEsLi4uZX19c3RhdGljIGNsZWFyR2xvYmFsSG9va3MoKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fX1zZXRIb29rcyhlKXt0aGlzLmhvb2tzPXsuLi50aGlzLmhvb2tzLC4uLmV9fWNhbGxIb29rKGUsYSl7dHJ5e3QuZ2xvYmFsSG9va3NbZV0/LihhKSx0aGlzLmhvb2tzW2VdPy4oYSl9Y2F0Y2gocil7Y29uc29sZS5lcnJvcihgVHlwZWRSb3V0ZXIgaG9vayBlcnJvciAoJHtlfSk6YCxyKX19YWRkVHlwZWRIYW5kbGVyKGUpe2lmKHRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUubWV0aG9kKSl0aHJvdyBuZXcgRXJyb3IoYGEgVHlwZWRIYW5kbGVyIGZvciAke2UubWV0aG9kfSBhbHJlZHkgZXhpc3RzISBDYW4ndCBhZGQgYW5vdGhlciBvbmUuYCk7dGhpcy5oYW5kbGVyTWFwLmFkZChlKX1hZGRUeXBlZFJvdXRlcihlKXt0aGlzLnJvdXRlck1hcC5maW5kU3luYyhyPT5yPT09ZSl8fCh0aGlzLnJvdXRlck1hcC5hZGQoZSksZS5hZGRUeXBlZFJvdXRlcih0aGlzKSl9Y2hlY2tGb3JUeXBlZEhhbmRsZXIoZSl7cmV0dXJuISF0aGlzLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlKX1nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSxhPVtdKXthLnB1c2godGhpcyk7bGV0IHI7cmV0dXJuIHI9dGhpcy5oYW5kbGVyTWFwLmZpbmRTeW5jKGk9PmkubWV0aG9kPT09ZSkscnx8dGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKS5mb3JFYWNoKGk9PnshciYmIWEuaW5jbHVkZXMoaSkmJihyPWkuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUsYSkpfSkscn1zdGF0aWN7dGhpcy5kZWZhdWx0Um91dGVPcHRpb25zPXtsb2NhbFJlcXVlc3Q6ITEsc2tpcEhvb2tzOiExfX1hc3luYyByb3V0ZUFuZEFkZFJlc3BvbnNlKGUsYT17fSl7bGV0IHI9ey4uLnQuZGVmYXVsdFJvdXRlT3B0aW9ucywuLi5hfTtpZihlPUFyLmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksZS5sb2NhbERhdGE9ZS5sb2NhbERhdGF8fHt9LGUubG9jYWxEYXRhLmZpcnN0VHlwZWRyb3V0ZXI9dGhpcyxlLm1ldGhvZD09PSIjI1ZpcnR1YWxTdHJlYW0jIyIpe2xldCBpPWF3YWl0IHRoaXMuaGFuZGxlU3RyZWFtVHlwZWRSZXF1ZXN0KGUpO3JldHVybiBpLmxvY2FsRGF0YT1udWxsLGl9aWYoZT8uY29ycmVsYXRpb24/LnBoYXNlPT09InJlcXVlc3QifHxyLmxvY2FsUmVxdWVzdCl7bGV0IGk9RGF0ZS5ub3coKTtyLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25JbmNvbWluZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6aSxwYXlsb2FkOmUucmVxdWVzdH0pO2xldCBvPXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUubWV0aG9kKTtyZXR1cm4gbz8oZT1hd2FpdCBvLmFkZFJlc3BvbnNlKGUpLGUubG9jYWxEYXRhPW51bGwsZT1Bci5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksci5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktaSxwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGUpOihjb25zb2xlLmxvZyhgQ2Fubm90IGZpbmQgaGFuZGxlciBmb3IgbWV0aG9kbmFtZSAke2UubWV0aG9kfWApLGUuZXJyb3I9e3RleHQ6IlRoZXJlIGlzIG5vIGF2YWlsYWJsZSBtZXRob2QgZm9yIHRoaXMgY2FsbCBvbiB0aGUgc2VydmVyIHNpZGUiLGRhdGE6e319LGUuY29ycmVsYXRpb24ucGhhc2U9InJlc3BvbnNlIixlLmxvY2FsRGF0YT1udWxsLGU9QXIuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLHIuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLWkscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlKX1lbHNlIHJldHVybiBlPy5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVzcG9uc2UiPyhyLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25JbmNvbWluZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcC5maW5kSW50ZXJlc3QoZS5jb3JyZWxhdGlvbi5pZCk/LmZ1bGxmaWxsSW50ZXJlc3QoZSksbnVsbCk6KGNvbnNvbGUubG9nKCJyZWNlaXZlZCB3ZWlyZGx5IHNoYXBlZCByZXF1ZXN0IiksY29uc29sZS5sb2coZSksbnVsbCl9YXN5bmMgaGFuZGxlU3RyZWFtVHlwZWRSZXF1ZXN0KGUpe2xldCBhPWF3YWl0IHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmZpbmQoYXN5bmMgaT0+aS5zdHJlYW1JZD09PWUucmVxdWVzdC5zdHJlYW1JZCk7aWYoYSljb25zb2xlLmxvZyhgc3VjY2VzczogZm91bmQgcmVsZXZhbnQgdmlydHVhbCBzdHJlYW0gd2l0aCBpZCAke2UucmVxdWVzdC5zdHJlYW1JZH1gKTtlbHNlIHJldHVybiBjb25zb2xlLmxvZyhgbm8gcmVsZXZhbnQgdmlydHVhbCBzdHJlYW0gZm91bmQgZm9yIHN0cmVhbSB3aXRoIGlkICR7ZS5yZXF1ZXN0LnN0cmVhbUlkfWApLGNvbnNvbGUubG9nKHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmdldEFycmF5KCkpLGU7cmV0dXJuIGF3YWl0IGEuaGFuZGxlU3RyZWFtVHIoZSl9fX0pO3ZhciBRamUsQXIsT1I9bigoKT0+e0VvKCk7VjgoKTtRamU9IiMjIyMjIyMjIyMjIyNDTE9TSU5HIEJJVCMjIyMjIyMjIyMjIyMiLEFyPWNsYXNzIHR7c3RhdGljIGVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUsYSxyLGk9W10pe3JldHVybiFlfHxyNi5pc0J1ZmZlckxpa2UoZSk/ZTplIGluc3RhbmNlb2YgdD8oIWUuc2lkZSYmYS5zZW5kTWV0aG9kJiYoZS5zaWRlPSJyZXF1ZXN0aW5nIixlLnNlbmRNZXRob2Q9YS5zZW5kTWV0aG9kKSwhZS5zaWRlJiZhLnR5cGVkcm91dGVyJiYoZS5zaWRlPSJyZXNwb25kaW5nIixlLnR5cGVkcm91dGVyPWEudHlwZWRyb3V0ZXIsYS50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuYWRkKGUpKSwhci5yZXNwb25zZXx8aS5pbmNsdWRlcygicmVzcG9uc2UiKT8oZS5zdGFydEtlZXBBbGl2ZUxvb3AoKSx7X2lzVmlydHVhbFN0cmVhbTohMCxzdHJlYW1JZDplLnN0cmVhbUlkfSk6e19PQk1JVFRFRF9WSVJUVUFMX1NUUkVBTTohMCxyZWFzb246InBhdGggaXMgdW5kZXIgLnJlcXVlc3Q6IG9ibWl0dGVkIGZvciBkZWR1cGxpY2F0aW9uIHJlYXNvbnMgaW4gcmVzcG9uc2UgY3ljbGUuIn0pOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoKG8scyk9PnQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobyxhLHJ8fGUsaS5jb25jYXQoU3RyaW5nKHMpKSkpOmUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCI/T2JqZWN0LmVudHJpZXMoZSkucmVkdWNlKChvLFtzLGxdKT0+e2xldCBmPWkuY29uY2F0KHMpO3JldHVybiBvW3NdPXQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobCxhLHJ8fGUsZiksb30se30pOmV9c3RhdGljIGRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLGEpe2lmKHI2LmlzQnVmZmVyTGlrZShlKXx8ZSBpbnN0YW5jZW9mIFhzKXJldHVybiBlO2lmKGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCIpe2lmKGUgaW5zdGFuY2VvZiBTZXR8fGUgaW5zdGFuY2VvZiBNYXB8fGUgaW5zdGFuY2VvZiBEYXRlfHxlIGluc3RhbmNlb2YgUmVnRXhwfHxlIGluc3RhbmNlb2YgRXJyb3J8fGUgaW5zdGFuY2VvZiBQcm9taXNlfHx0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBlO2lmKGUuX2lzVmlydHVhbFN0cmVhbSl7bGV0IHI9bmV3IHQ7cmV0dXJuIHIuc3RyZWFtSWQ9ZS5zdHJlYW1JZCwhci5zaWRlJiZhLnNlbmRNZXRob2QmJihyLnNpZGU9InJlcXVlc3RpbmciLHIuc2VuZE1ldGhvZD1hLnNlbmRNZXRob2QpLCFyLnNpZGUmJmEudHlwZWRyb3V0ZXImJihyLnNpZGU9InJlc3BvbmRpbmciLHIudHlwZWRyb3V0ZXI9YS50eXBlZHJvdXRlcixhLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQocikpLHIuc3RhcnRLZWVwQWxpdmVMb29wKCkscn1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2xldCByPVtdO2ZvcihsZXQgaSBvZiBlKXIucHVzaCh0LmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhpLGEpKTtyZXR1cm4gcn1lbHNlIHJldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKHIsaSk9PihyW2ldPXQuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGVbaV0sYSkscikse30pfWVsc2UgcmV0dXJuIGV9Y29uc3RydWN0b3IoKXt0aGlzLnN0cmVhbUlkPURvLnVuaSgpLHRoaXMua2VlcEFsaXZlPSEwLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheT1uZXcgQjEuQmFja3ByZXNzdXJlZEFycmF5KDE2KSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXk9bmV3IEIxLkJhY2twcmVzc3VyZWRBcnJheSgxNil9YXN5bmMgd29ya09uUXVldWUoKXtpZih0aGlzLndvcmtpbmdEZWZlcnJlZClyZXR1cm4gdGhpcy53b3JraW5nRGVmZXJyZWQucHJvbWlzZTtpZih0aGlzLndvcmtpbmdEZWZlcnJlZD1WZS5kZWZlcigpLHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7bGV0IGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksYT0hMSxyPSExLGk9YXN5bmMoKT0+e2xldCBvPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOkRvLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pntjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMX0pO28mJm8ucmVzcG9uc2UmJihyPW8ucmVzcG9uc2UuYmFja3ByZXNzdXJlLGE9by5yZXNwb25zZS5uZXh0KX07Zm9yKGF3YWl0IGkoKTt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MHx8YTspe2lmKHIpZm9yKDtyOyljb25zb2xlLmxvZygid2FpdGluZyBmb3IgZmVlZGJhY2sgYmVjYXVzZSBvZiBiYWNrcHJlc3N1cmUuLi4iKSxhd2FpdCBmdC5kZWxheUZvcig1MCksYXdhaXQgaSgpO2xldCBvO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiYobz10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKSk7bGV0IHM7cz1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDpEby51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6bz8iY2h1bmsiOiJyZWFkIixiYWNrcHJlc3N1cmU6ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLC4uLm8/e2NodW5rRGF0YTpvfTp7fX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT4oY29uc29sZS5sb2coInN0cmVhbSBlbmRlZCBpbW1hdHVyZWx5IiksdGhpcy5rZWVwQWxpdmU9ITEsbnVsbCkpLHMmJnMucmVzcG9uc2UmJnMucmVzcG9uc2UuY2h1bmtEYXRhJiZ0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChzLnJlc3BvbnNlLmNodW5rRGF0YSkscj1zJiZzLnJlc3BvbnNlJiZzLnJlc3BvbnNlLmJhY2twcmVzc3VyZSxlPSF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGE9cyYmcy5yZXNwb25zZSYmcy5yZXNwb25zZS5uZXh0fX10aGlzLndvcmtpbmdEZWZlcnJlZC5yZXNvbHZlKCksdGhpcy53b3JraW5nRGVmZXJyZWQ9bnVsbH1hc3luYyBoYW5kbGVTdHJlYW1UcihlKXtpZihlLnJlcXVlc3Qua2VlcEFsaXZlPT09ITAmJnRoaXMua2VlcEFsaXZlPT09ITA/dGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ9RGF0ZS5ub3coKTplLnJlcXVlc3Qua2VlcEFsaXZlPT09ITEmJih0aGlzLmtlZXBBbGl2ZT0hMSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImtlZXBBbGl2ZSImJihlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmUsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9KSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0iZmVlZGJhY2siJiYoZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImZlZWRiYWNrIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJjaHVuayIpe2lmKHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUucmVxdWVzdC5jaHVua0RhdGEpLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiZlLnJlc3BvbnNlLmJhY2twcmVzc3VyZT09PSExKXtsZXQgYT10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKTtlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiY2h1bmsiLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjEsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGNodW5rRGF0YTp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX19ZWxzZSBlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfTtlLnJlcXVlc3Q9bnVsbH1yZXR1cm4gZX1hc3luYyBjbGVhbnVwKCl7dGhpcy50eXBlZHJvdXRlciYmdGhpcy50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMucmVtb3ZlKHRoaXMpfWFzeW5jIHN0YXJ0S2VlcEFsaXZlTG9vcCgpe2lmKHRoaXMuc2lkZT09PSJyZXNwb25kaW5nIilyZXR1cm47YXdhaXQgZnQuZGVsYXlGb3IoMCksY29uc29sZS5sb2coYHN0YXJ0aW5nIGtlZXBhbGl2ZSBsb29wIG9uIHNpZGUgJHt0aGlzLnNpZGV9YCk7bGV0IGU9MDtmb3IoO3RoaXMua2VlcEFsaXZlOylhd2FpdCB0aGlzLnRyaWdnZXJLZWVwQWxpdmUoKSxhd2FpdCBmdC5kZWxheUZvcigxZTMpO2F3YWl0IGZ0LmRlbGF5Rm9yKDFlMyksYXdhaXQgdGhpcy5jbGVhbnVwKCksY29uc29sZS5sb2coYGNsZWFuZWQgdXAgZm9yIHN0cmVhbSAke3RoaXMuc3RyZWFtSWR9YCl9YXN5bmMgdHJpZ2dlcktlZXBBbGl2ZSgpe2lmKHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7Y29uc29sZS5sb2coImtlZXBhbGl2ZSBzZW50LiIpO2xldCBlPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOkRvLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmV9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e3RoaXMua2VlcEFsaXZlPSExfSk7ZSYmZS5yZXNwb25zZSYmZS5yZXNwb25zZS5rZWVwQWxpdmU9PT0hMT90aGlzLmtlZXBBbGl2ZT0hMTp0aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpLGUmJmUucmVzcG9uc2UmJmUucmVzcG9uc2UubmV4dCYmdGhpcy53b3JrT25RdWV1ZSgpfURhdGUubm93KCktdGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ+MWU0JiYoY29uc29sZS5sb2coYGNsb3Npbmcgc3RyZWFtIGZvciAke3RoaXMuc3RyZWFtSWR9YCksdGhpcy5rZWVwQWxpdmU9ITEpfWFzeW5jIHNlbmREYXRhKGUpe3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUpLHRoaXMud29ya09uUXVldWUoKSxhd2FpdCB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvclNwYWNlKCl9YXN5bmMgZmV0Y2hEYXRhKCl7cmV0dXJuIHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5oYXNTcGFjZSxhd2FpdCB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvckl0ZW1zKCksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9YXN5bmMgcmVhZEZyb21XZWJzdHJlYW0oZSxhPSEwKXtsZXQgcj1lLmdldFJlYWRlcigpLGk9ITE7Zm9yKDshaTspe2xldHt2YWx1ZTpvLGRvbmU6c309YXdhaXQgci5yZWFkKCk7byYmYXdhaXQgdGhpcy5zZW5kRGF0YShvKSxpPXN9YSYmYXdhaXQgdGhpcy5jbG9zZSghMCl9YXN5bmMgd3JpdGVUb1dlYnN0cmVhbShlKXtsZXQgYT1lLmdldFdyaXRlcigpO2Zvcig7dGhpcy5rZWVwQWxpdmV8fHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja0hhc0l0ZW1zKCk7KXtsZXQgcj1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO2lmKHI9PT1RamUpe2EucmVsZWFzZUxvY2soKSxhd2FpdCBlLmNsb3NlKCk7YnJlYWt9YXdhaXQgYS53cml0ZShyKX19YXN5bmMgY2xvc2UoZT0hMSl7ZSYmdGhpcy5zZW5kRGF0YShRamUpLHRoaXMua2VlcEFsaXZlPSExfX19KTt2YXIgZlEsdVE9bigoKT0+e1Y4KCk7RW8oKTtmUT1jbGFzc3tjb25zdHJ1Y3RvcihlKXtpZihlLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXImJiFlLnR5cGVkUm91dGVyUmVmKXRocm93IG5ldyBFcnJvcigieW91IGhhdmUgdG8gc3BlY2lmeSBhIHR5cGVkcm91dGVyIHdoZW4gdXNpbmcgcG9zdG1ldGhvZCB3aXRoIHR5cGVkcm91dGVyIik7dGhpcy5vcHRpb25zPWV9YXN5bmMgcG9zdChlKXtsZXQgYTt0aGlzLm9wdGlvbnMudHlwZWRSb3V0ZXJSZWYmJihhPWF3YWl0IHRoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZi5maXJlRXZlbnRJbnRlcmVzdE1hcC5hZGRJbnRlcmVzdChlLmNvcnJlbGF0aW9uLmlkLGUpKTtsZXQgaT1hd2FpdCh0aGlzLm9wdGlvbnMucG9zdE1ldGhvZHx8dGhpcy5vcHRpb25zLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXIpKGUpLG87cmV0dXJuIGE/bz1hd2FpdCBhLmludGVyZXN0RnVsbGZpbGxlZDppP289aTpvPWUsb319fSk7ZnVuY3Rpb24gS2plKHQsZSl7dHJ5e1hzLmdsb2JhbEhvb2tzW3RdPy4oZSl9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihgVHlwZWRSZXF1ZXN0IGhvb2sgZXJyb3IgKCR7dH0pOmAsYSl9fXZhciBiR3QsVTgsZFE9bigoKT0+e0VvKCk7T1IoKTtxOCgpO1Y4KCk7dVEoKTtiR3Q9bmV3IFpzLldlYlJlcXVlc3Q7VTg9Y2xhc3N7Y29uc3RydWN0b3IoZSxhKXt0aGlzLnNraXBIb29rcz0hMSx0eXBlb2YgZT09InN0cmluZyI/dGhpcy51cmxFbmRQb2ludD1lOnRoaXMudHlwZWRUYXJnZXQ9ZSx0aGlzLm1ldGhvZD1hfWFzeW5jIGZpcmUoZSxhPSExKXtsZXQgcj1EYXRlLm5vdygpLGk9e21ldGhvZDp0aGlzLm1ldGhvZCxyZXF1ZXN0OmUscmVzcG9uc2U6bnVsbCxjb3JyZWxhdGlvbjp7aWQ6RG8udW5pKCkscGhhc2U6InJlcXVlc3QifX07aT1Bci5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhpLHtzZW5kTWV0aG9kOnM9PnRoaXMucG9zdFRyT2JqZWN0KHMpfSksdGhpcy5za2lwSG9va3N8fEtqZSgib25PdXRnb2luZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOmkuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6cixwYXlsb2FkOmV9KTtsZXQgbztyZXR1cm4gbz1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChpLGEpLG89QXIuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKG8se3NlbmRNZXRob2Q6cz0+dGhpcy5wb3N0VHJPYmplY3Qocyl9KSx0aGlzLnNraXBIb29rc3x8S2plKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmkuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXIscGF5bG9hZDpvPy5yZXNwb25zZSxlcnJvcjpvPy5lcnJvcj8udGV4dH0pLG8ucmVzcG9uc2V9YXN5bmMgcG9zdFRyT2JqZWN0KGUsYT0hMSl7bGV0IHI7aWYodGhpcy51cmxFbmRQb2ludD9yPWF3YWl0IGJHdC5wb3N0SnNvbih0aGlzLnVybEVuZFBvaW50LGUsYSk6cj1hd2FpdCB0aGlzLnR5cGVkVGFyZ2V0LnBvc3QoZSksci5lcnJvcil7aWYoY29uc29sZS5lcnJvcihgbWV0aG9kOiA+PiR7dGhpcy5tZXRob2R9PDwgZ290IGFuIEVSUk9SOiAiJHtyLmVycm9yLnRleHR9IiB3aXRoIGRhdGEgJHtKU09OLnN0cmluZ2lmeShyLmVycm9yLmRhdGEsbnVsbCwyKX1gKSwhci5yZXRyeSl0aHJvdyBuZXcgeGkoci5lcnJvci50ZXh0LHIuZXJyb3IuZGF0YSk7cmV0dXJuIG51bGx9cmV0dXJuIHIucmV0cnkmJihjb25zb2xlLmxvZyhgc2VydmVyIHJlcXVlc3RlZCByZXRyeSBmb3IgdGhlIGZvbGxvd2luZyByZWFzb246ICR7ci5yZXRyeS5yZWFzb259YCksYXdhaXQgZnQuZGVsYXlGb3Ioci5yZXRyeS53YWl0Rm9yTXMpLHI9YXdhaXQgdGhpcy5wb3N0VHJPYmplY3QoZSxhKSkscn19fSk7dmFyIEYyPXt9O2V0KEYyLHtUeXBlZEhhbmRsZXI6KCk9PmxRLFR5cGVkUmVxdWVzdDooKT0+VTgsVHlwZWRSZXNwb25zZUVycm9yOigpPT54aSxUeXBlZFJvdXRlcjooKT0+WHMsVHlwZWRUYXJnZXQ6KCk9PmZRLFZpcnR1YWxTdHJlYW06KCk9PkFyfSk7dmFyIGo4PW4oKCk9PntkUSgpO2NRKCk7VjgoKTtxOCgpO3VRKCk7T1IoKX0pO2Z1bmN0aW9uIEpqZSh0KXtyZXR1cm4gdCYmdHlwZW9mIHQudGhlbj09ImZ1bmN0aW9uIn1mdW5jdGlvbiAkcih0LGUpe3JldHVybiB0fHwodD0wKSxuZXcgUHJvbWlzZShmdW5jdGlvbihhKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBhKGUpfSx0KX0pfWZ1bmN0aW9uIGFXZSh0LGUpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtdCsxKSt0KX1mdW5jdGlvbiBiaSgpe3JldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMil9ZnVuY3Rpb24gdmkoKXt2YXIgdD1EYXRlLm5vdygpKjFlMztyZXR1cm4gdDw9cFEmJih0PXBRKzEpLHBRPXQsdH1mdW5jdGlvbiByV2UoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3M8InUiJiZ0eXBlb2YgbmF2aWdhdG9yLmxvY2tzLnJlcXVlc3Q9PSJmdW5jdGlvbiJ9dmFyIGVXZSx0V2UsbmEscFEsTm89bigoKT0+e2VXZT1Qcm9taXNlLnJlc29sdmUoITEpLHRXZT1Qcm9taXNlLnJlc29sdmUoITApLG5hPVByb21pc2UucmVzb2x2ZSgpO3BRPTB9KTtmdW5jdGlvbiB3R3QodCl7dmFyIGU9e3RpbWU6dmkoKSxtZXNzYWdlc0NhbGxiYWNrOm51bGwsYmM6bmV3IEJyb2FkY2FzdENoYW5uZWwodCksc3ViRm5zOltdfTtyZXR1cm4gZS5iYy5vbm1lc3NhZ2U9ZnVuY3Rpb24oYSl7ZS5tZXNzYWdlc0NhbGxiYWNrJiZlLm1lc3NhZ2VzQ2FsbGJhY2soYS5kYXRhKX0sZX1mdW5jdGlvbiBNR3QodCl7dC5iYy5jbG9zZSgpLHQuc3ViRm5zPVtdfWZ1bmN0aW9uIHpHdCh0LGUpe3RyeXtyZXR1cm4gdC5iYy5wb3N0TWVzc2FnZShlLCExKSxuYX1jYXRjaChhKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoYSl9fWZ1bmN0aW9uIGtHdCh0LGUpe3QubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIFNHdCgpe2lmKHR5cGVvZiBnbG9iYWxUaGlzPCJ1IiYmZ2xvYmFsVGhpcy5EZW5vJiZnbG9iYWxUaGlzLkRlbm8uYXJncylyZXR1cm4hMDtpZigodHlwZW9mIHdpbmRvdzwidSJ8fHR5cGVvZiBzZWxmPCJ1IikmJnR5cGVvZiBCcm9hZGNhc3RDaGFubmVsPT0iZnVuY3Rpb24iKXtpZihCcm9hZGNhc3RDaGFubmVsLl9wdWJrZXkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBEbyBub3Qgb3ZlcndyaXRlIHdpbmRvdy5Ccm9hZGNhc3RDaGFubmVsIHdpdGggdGhpcyBtb2R1bGUsIHRoaXMgaXMgbm90IGEgcG9seWZpbGwiKTtyZXR1cm4hMH1lbHNlIHJldHVybiExfWZ1bmN0aW9uIENHdCgpe3JldHVybiAxNTB9dmFyIHZHdCx5R3QsaVdlLG9XZT1uKCgpPT57Tm8oKTt2R3Q9dmkseUd0PSJuYXRpdmUiO2lXZT17Y3JlYXRlOndHdCxjbG9zZTpNR3Qsb25NZXNzYWdlOmtHdCxwb3N0TWVzc2FnZTp6R3QsY2FuQmVVc2VkOlNHdCx0eXBlOnlHdCxhdmVyYWdlUmVzcG9uc2VUaW1lOkNHdCxtaWNyb1NlY29uZHM6dkd0fX0pO2Z1bmN0aW9uIExHdCh0KXtsZXQgZT1oUSgpLXQudHRsLGE9dC5tYXBbU3ltYm9sLml0ZXJhdG9yXSgpO2Zvcig7Oyl7bGV0IHI9YS5uZXh0KCkudmFsdWU7aWYoIXIpYnJlYWs7bGV0IGk9clswXTtpZihyWzFdPGUpdC5tYXAuZGVsZXRlKGkpO2Vsc2UgYnJlYWt9fWZ1bmN0aW9uIGhRKCl7cmV0dXJuIERhdGUubm93KCl9dmFyIGY2LG1RPW4oKCk9PntmNj1jbGFzc3t0dGw7bWFwPW5ldyBNYXA7X3RvPSExO2NvbnN0cnVjdG9yKGUpe3RoaXMudHRsPWV9aGFzKGUpe2xldCBhPXRoaXMubWFwLmdldChlKTtyZXR1cm4gdHlwZW9mIGE+InUiPyExOmE8aFEoKS10aGlzLnR0bD8odGhpcy5tYXAuZGVsZXRlKGUpLCExKTohMH1hZGQoZSl7dGhpcy5tYXAuZGVsZXRlKGUpLHRoaXMubWFwLnNldChlLGhRKCkpLHRoaXMuX3RvfHwodGhpcy5fdG89ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuX3RvPSExLExHdCh0aGlzKX0sMCkpfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19fSk7ZnVuY3Rpb24gUXMoKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sZT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKTtyZXR1cm4gdHlwZW9mIGUud2ViV29ya2VyU3VwcG9ydD4idSImJihlLndlYldvcmtlclN1cHBvcnQ9ITApLGUuaWRifHwoZS5pZGI9e30pLGUuaWRiLnR0bHx8KGUuaWRiLnR0bD0xZTMqNDUpLGUuaWRiLmZhbGxiYWNrSW50ZXJ2YWx8fChlLmlkYi5mYWxsYmFja0ludGVydmFsPTE1MCksdC5pZGImJnR5cGVvZiB0LmlkYi5vbmNsb3NlPT0iZnVuY3Rpb24iJiYoZS5pZGIub25jbG9zZT10LmlkYi5vbmNsb3NlKSxlLmxvY2Fsc3RvcmFnZXx8KGUubG9jYWxzdG9yYWdlPXt9KSxlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0fHwoZS5sb2NhbHN0b3JhZ2UucmVtb3ZlVGltZW91dD0xZTMqNjApLHQubWV0aG9kcyYmKGUubWV0aG9kcz10Lm1ldGhvZHMpLGUubm9kZXx8KGUubm9kZT17fSksZS5ub2RlLnR0bHx8KGUubm9kZS50dGw9MWUzKjYwKjIpLGUubm9kZS5tYXhQYXJhbGxlbFdyaXRlc3x8KGUubm9kZS5tYXhQYXJhbGxlbFdyaXRlcz0yMDQ4KSx0eXBlb2YgZS5ub2RlLnVzZUZhc3RQYXRoPiJ1IiYmKGUubm9kZS51c2VGYXN0UGF0aD0hMCksZX12YXIgQlI9bigoKT0+e30pO2Z1bmN0aW9uIHNXZSgpe2lmKHR5cGVvZiBpbmRleGVkREI8InUiKXJldHVybiBpbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdzwidSIpe2lmKHR5cGVvZiB3aW5kb3cubW96SW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93Lm1vekluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93LndlYmtpdEluZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy53ZWJraXRJbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdy5tc0luZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy5tc0luZGV4ZWREQn1yZXR1cm4hMX1mdW5jdGlvbiBSUih0KXt0LmNvbW1pdCYmdC5jb21taXQoKX1mdW5jdGlvbiAkR3QodCl7dmFyIGU9c1dlKCksYT1fR3QrdCxyPWUub3BlbihhKTtyZXR1cm4gci5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24oaSl7dmFyIG89aS50YXJnZXQucmVzdWx0O28uY3JlYXRlT2JqZWN0U3RvcmUoWWEse2tleVBhdGg6ImlkIixhdXRvSW5jcmVtZW50OiEwfSl9LG5ldyBQcm9taXNlKGZ1bmN0aW9uKGksbyl7ci5vbmVycm9yPWZ1bmN0aW9uKHMpe3JldHVybiBvKHMpfSxyLm9uc3VjY2Vzcz1mdW5jdGlvbigpe2koci5yZXN1bHQpfX0pfWZ1bmN0aW9uIERHdCh0LGUsYSl7dmFyIHI9RGF0ZS5ub3coKSxpPXt1dWlkOmUsdGltZTpyLGRhdGE6YX0sbz10LnRyYW5zYWN0aW9uKFtZYV0sInJlYWR3cml0ZSIsVzgpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzLGwpe28ub25jb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiBzKCl9LG8ub25lcnJvcj1mdW5jdGlvbihjKXtyZXR1cm4gbChjKX07dmFyIGY9by5vYmplY3RTdG9yZShZYSk7Zi5hZGQoaSksUlIobyl9KX1mdW5jdGlvbiBMVjEodCl7dmFyIGU9dC50cmFuc2FjdGlvbihZYSwicmVhZG9ubHkiLFc4KSxhPWUub2JqZWN0U3RvcmUoWWEpLHI9W107cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe2Eub3BlbkN1cnNvcigpLm9uc3VjY2Vzcz1mdW5jdGlvbihvKXt2YXIgcz1vLnRhcmdldC5yZXN1bHQ7cz8oci5wdXNoKHMudmFsdWUpLHMuY29udGludWUoKSk6KFJSKGUpLGkocikpfX0pfWZ1bmN0aW9uIEVHdCh0LGUpe3ZhciBhPXQudHJhbnNhY3Rpb24oWWEsInJlYWRvbmx5IixXOCkscj1hLm9iamVjdFN0b3JlKFlhKSxpPVtdLG89SURCS2V5UmFuZ2UuYm91bmQoZSsxLDEvMCk7aWYoci5nZXRBbGwpe3ZhciBzPXIuZ2V0QWxsKG8pO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihmLGMpe3Mub25lcnJvcj1mdW5jdGlvbih1KXtyZXR1cm4gYyh1KX0scy5vbnN1Y2Nlc3M9ZnVuY3Rpb24odSl7Zih1LnRhcmdldC5yZXN1bHQpfX0pfWZ1bmN0aW9uIGwoKXt0cnl7cmV0dXJuIG89SURCS2V5UmFuZ2UuYm91bmQoZSsxLDEvMCksci5vcGVuQ3Vyc29yKG8pfWNhdGNoe3JldHVybiByLm9wZW5DdXJzb3IoKX19cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGYsYyl7dmFyIHU9bCgpO3Uub25lcnJvcj1mdW5jdGlvbihkKXtyZXR1cm4gYyhkKX0sdS5vbnN1Y2Nlc3M9ZnVuY3Rpb24oZCl7dmFyIGg9ZC50YXJnZXQucmVzdWx0O2g/aC52YWx1ZS5pZDxlKzE/aC5jb250aW51ZShlKzEpOihpLnB1c2goaC52YWx1ZSksaC5jb250aW51ZSgpKTooUlIoYSksZihpKSl9fSl9ZnVuY3Rpb24gTkd0KHQsZSl7aWYodC5jbG9zZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7dmFyIGE9dC5kYi50cmFuc2FjdGlvbihZYSwicmVhZHdyaXRlIixXOCkscj1hLm9iamVjdFN0b3JlKFlhKTtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoZnVuY3Rpb24oaSl7dmFyIG89ci5kZWxldGUoaSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMpe28ub25zdWNjZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIHMoKX19KX0pKX1mdW5jdGlvbiBQR3QodCxlKXt2YXIgYT1EYXRlLm5vdygpLWUscj10LnRyYW5zYWN0aW9uKFlhLCJyZWFkb25seSIsVzgpLGk9ci5vYmplY3RTdG9yZShZYSksbz1bXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocyl7aS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKGwpe3ZhciBmPWwudGFyZ2V0LnJlc3VsdDtpZihmKXt2YXIgYz1mLnZhbHVlO2MudGltZTxhPyhvLnB1c2goYyksZi5jb250aW51ZSgpKTooUlIocikscyhvKSl9ZWxzZSBzKG8pfX0pfWZ1bmN0aW9uIElHdCh0KXtyZXR1cm4gUEd0KHQuZGIsdC5vcHRpb25zLmlkYi50dGwpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIE5HdCh0LGUubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkfSkpfSl9ZnVuY3Rpb24gRkd0KHQsZSl7cmV0dXJuIGU9UXMoZSksJEd0KHQpLnRoZW4oZnVuY3Rpb24oYSl7dmFyIHI9e2Nsb3NlZDohMSxsYXN0Q3Vyc29ySWQ6MCxjaGFubmVsTmFtZTp0LG9wdGlvbnM6ZSx1dWlkOmJpKCksZU1JczpuZXcgZjYoZS5pZGIudHRsKjIpLHdyaXRlQmxvY2tQcm9taXNlOm5hLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxyZWFkUXVldWVQcm9taXNlczpbXSxkYjphfTtyZXR1cm4gYS5vbmNsb3NlPWZ1bmN0aW9uKCl7ci5jbG9zZWQ9ITAsZS5pZGIub25jbG9zZSYmZS5pZGIub25jbG9zZSgpfSxuV2Uocikscn0pfWZ1bmN0aW9uIG5XZSh0KXt0LmNsb3NlZHx8bFdlKHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gJHIodC5vcHRpb25zLmlkYi5mYWxsYmFja0ludGVydmFsKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbldlKHQpfSl9ZnVuY3Rpb24gT0d0KHQsZSl7cmV0dXJuISh0LnV1aWQ9PT1lLnV1aWR8fGUuZU1Jcy5oYXModC5pZCl8fHQuZGF0YS50aW1lPGUubWVzc2FnZXNDYWxsYmFja1RpbWUpfWZ1bmN0aW9uIGxXZSh0KXtyZXR1cm4gdC5jbG9zZWQ/bmE6dC5tZXNzYWdlc0NhbGxiYWNrP0VHdCh0LmRiLHQubGFzdEN1cnNvcklkKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciBhPWUuZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiEhcn0pLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gci5pZD50Lmxhc3RDdXJzb3JJZCYmKHQubGFzdEN1cnNvcklkPXIuaWQpLHJ9KS5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIE9HdChyLHQpfSkuc29ydChmdW5jdGlvbihyLGkpe3JldHVybiByLnRpbWUtaS50aW1lfSk7cmV0dXJuIGEuZm9yRWFjaChmdW5jdGlvbihyKXt0Lm1lc3NhZ2VzQ2FsbGJhY2smJih0LmVNSXMuYWRkKHIuaWQpLHQubWVzc2FnZXNDYWxsYmFjayhyLmRhdGEpKX0pLG5hfSk6bmF9ZnVuY3Rpb24gQkd0KHQpe3QuY2xvc2VkPSEwLHQuZGIuY2xvc2UoKX1mdW5jdGlvbiBSR3QodCxlKXtyZXR1cm4gdC53cml0ZUJsb2NrUHJvbWlzZT10LndyaXRlQmxvY2tQcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gREd0KHQuZGIsdC51dWlkLGUpfSkudGhlbihmdW5jdGlvbigpe2FXZSgwLDEwKT09PTAmJklHdCh0KX0pLHQud3JpdGVCbG9ja1Byb21pc2V9ZnVuY3Rpb24gSEd0KHQsZSxhKXt0Lm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPWEsdC5tZXNzYWdlc0NhbGxiYWNrPWUsbFdlKHQpfWZ1bmN0aW9uIHFHdCgpe3JldHVybiEhc1dlKCl9ZnVuY3Rpb24gVkd0KHQpe3JldHVybiB0LmlkYi5mYWxsYmFja0ludGVydmFsKjJ9dmFyIFRHdCxfR3QsWWEsVzgsQUd0LGNXZSxkV2U9bigoKT0+e05vKCk7bVEoKTtCUigpO1RHdD12aSxfR3Q9InB1YmtleS5icm9hZGNhc3QtY2hhbm5lbC0wLSIsWWE9Im1lc3NhZ2VzIixXOD17ZHVyYWJpbGl0eToicmVsYXhlZCJ9LEFHdD0iaWRiIjtjV2U9e2NyZWF0ZTpGR3QsY2xvc2U6Qkd0LG9uTWVzc2FnZTpIR3QscG9zdE1lc3NhZ2U6Ukd0LGNhbkJlVXNlZDpxR3QsdHlwZTpBR3QsYXZlcmFnZVJlc3BvbnNlVGltZTpWR3QsbWljcm9TZWNvbmRzOlRHdH19KTtmdW5jdGlvbiBmV2UoKXt2YXIgdDtpZih0eXBlb2Ygd2luZG93PiJ1IilyZXR1cm4gbnVsbDt0cnl7dD13aW5kb3cubG9jYWxTdG9yYWdlLHQ9d2luZG93WyJpZTgtZXZlbnRsaXN0ZW5lci9zdG9yYWdlIl18fHdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2h7fXJldHVybiB0fWZ1bmN0aW9uIHVXZSh0KXtyZXR1cm4gakd0K3R9ZnVuY3Rpb24gR0d0KHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEpeyRyKCkudGhlbihmdW5jdGlvbigpe3ZhciByPXVXZSh0LmNoYW5uZWxOYW1lKSxpPXt0b2tlbjpiaSgpLHRpbWU6RGF0ZS5ub3coKSxkYXRhOmUsdXVpZDp0LnV1aWR9LG89SlNPTi5zdHJpbmdpZnkoaSk7ZldlKCkuc2V0SXRlbShyLG8pO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO3MuaW5pdEV2ZW50KCJzdG9yYWdlIiwhMCwhMCkscy5rZXk9cixzLm5ld1ZhbHVlPW8sd2luZG93LmRpc3BhdGNoRXZlbnQocyksYSgpfSl9KX1mdW5jdGlvbiBZR3QodCxlKXt2YXIgYT11V2UodCkscj1mdW5jdGlvbihvKXtvLmtleT09PWEmJmUoSlNPTi5wYXJzZShvLm5ld1ZhbHVlKSl9O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIscikscn1mdW5jdGlvbiBaR3QodCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLHQpfWZ1bmN0aW9uIFhHdCh0LGUpe2lmKGU9UXMoZSksIXBXZSgpKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbDogbG9jYWxzdG9yYWdlIGNhbm5vdCBiZSB1c2VkIik7dmFyIGE9YmkoKSxyPW5ldyBmNihlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0KSxpPXtjaGFubmVsTmFtZTp0LHV1aWQ6YSxlTUlzOnJ9O3JldHVybiBpLmxpc3RlbmVyPVlHdCh0LGZ1bmN0aW9uKG8pe2kubWVzc2FnZXNDYWxsYmFjayYmby51dWlkIT09YSYmKCFvLnRva2VufHxyLmhhcyhvLnRva2VuKXx8by5kYXRhLnRpbWUmJm8uZGF0YS50aW1lPGkubWVzc2FnZXNDYWxsYmFja1RpbWV8fChyLmFkZChvLnRva2VuKSxpLm1lc3NhZ2VzQ2FsbGJhY2soby5kYXRhKSkpfSksaX1mdW5jdGlvbiBRR3QodCl7Wkd0KHQubGlzdGVuZXIpfWZ1bmN0aW9uIEtHdCh0LGUsYSl7dC5tZXNzYWdlc0NhbGxiYWNrVGltZT1hLHQubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIHBXZSgpe3ZhciB0PWZXZSgpO2lmKCF0KXJldHVybiExO3RyeXt2YXIgZT0iX19icm9hZGNhc3RjaGFubmVsX2NoZWNrIjt0LnNldEl0ZW0oZSwid29ya3MiKSx0LnJlbW92ZUl0ZW0oZSl9Y2F0Y2h7cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gSkd0KCl7dmFyIHQ9MTIwLGU9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO3JldHVybiBlLmluY2x1ZGVzKCJzYWZhcmkiKSYmIWUuaW5jbHVkZXMoImNocm9tZSIpP3QqMjp0fXZhciBVR3Qsakd0LFdHdCxoV2UsbVdlPW4oKCk9PnttUSgpO0JSKCk7Tm8oKTtVR3Q9dmksakd0PSJwdWJrZXkuYnJvYWRjYXN0Q2hhbm5lbC0iLFdHdD0ibG9jYWxzdG9yYWdlIjtoV2U9e2NyZWF0ZTpYR3QsY2xvc2U6UUd0LG9uTWVzc2FnZTpLR3QscG9zdE1lc3NhZ2U6R0d0LGNhbkJlVXNlZDpwV2UsdHlwZTpXR3QsYXZlcmFnZVJlc3BvbnNlVGltZTpKR3QsbWljcm9TZWNvbmRzOlVHdH19KTtmdW5jdGlvbiB0WXQodCl7dmFyIGU9e3RpbWU6Z1dlKCksbmFtZTp0LG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbH07cmV0dXJuIGdRLmFkZChlKSxlfWZ1bmN0aW9uIGFZdCh0KXtnUS5kZWxldGUodCl9ZnVuY3Rpb24gcll0KHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHI9QXJyYXkuZnJvbShnUSk7ci5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kubmFtZT09PXQubmFtZSYmaSE9PXQmJmkubWVzc2FnZXNDYWxsYmFjayYmaS50aW1lPGUudGltZSYmaS5tZXNzYWdlc0NhbGxiYWNrKGUpfSksYSgpfSx4V2UpfSl9ZnVuY3Rpb24gaVl0KHQsZSl7dC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gb1l0KCl7cmV0dXJuITB9ZnVuY3Rpb24gc1l0KCl7cmV0dXJuIHhXZX12YXIgZ1dlLGVZdCxnUSx4V2UsYldlLHZXZT1uKCgpPT57Tm8oKTtnV2U9dmksZVl0PSJzaW11bGF0ZSIsZ1E9bmV3IFNldDt4V2U9NTtiV2U9e2NyZWF0ZTp0WXQsY2xvc2U6YVl0LG9uTWVzc2FnZTppWXQscG9zdE1lc3NhZ2U6cll0LGNhbkJlVXNlZDpvWXQsdHlwZTplWXQsYXZlcmFnZVJlc3BvbnNlVGltZTpzWXQsbWljcm9TZWNvbmRzOmdXZX19KTtmdW5jdGlvbiB4USh0KXt2YXIgZT1bXS5jb25jYXQodC5tZXRob2RzLHlXZSkuZmlsdGVyKEJvb2xlYW4pO2lmKHQudHlwZSl7aWYodC50eXBlPT09InNpbXVsYXRlIilyZXR1cm4gYldlO3ZhciBhPWUuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS50eXBlPT09dC50eXBlfSk7aWYoYSlyZXR1cm4gYTt0aHJvdyBuZXcgRXJyb3IoIm1ldGhvZC10eXBlICIrdC50eXBlKyIgbm90IGZvdW5kIil9dC53ZWJXb3JrZXJTdXBwb3J0fHwoZT1lLmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaS50eXBlIT09ImlkYiJ9KSk7dmFyIHI9ZS5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmNhbkJlVXNlZCgpfSk7aWYocilyZXR1cm4gcjt0aHJvdyBuZXcgRXJyb3IoIk5vIHVzYWJsZSBtZXRob2QgZm91bmQgaW4gIitKU09OLnN0cmluZ2lmeSh5V2UubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpLnR5cGV9KSkpfXZhciB5V2Usd1dlPW4oKCk9PntvV2UoKTtkV2UoKTttV2UoKTt2V2UoKTt5V2U9W2lXZSxjV2UsaFdlXX0pO2Z1bmN0aW9uIGxZdCh0KXt0PVFzKHQpO3ZhciBlPXhRKHQpO3JldHVybiBlLnR5cGU9PT0ibm9kZSI/ZS5jbGVhck5vZGVGb2xkZXIoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KTplV2V9ZnVuY3Rpb24gY1l0KHQpe2JRPXR9ZnVuY3Rpb24gTVdlKHQsZSxhKXt2YXIgcj10Lm1ldGhvZC5taWNyb1NlY29uZHMoKSxpPXt0aW1lOnIsdHlwZTplLGRhdGE6YX0sbz10Ll9wcmVwUD90Ll9wcmVwUDpuYTtyZXR1cm4gby50aGVuKGZ1bmN0aW9uKCl7dmFyIHM9dC5tZXRob2QucG9zdE1lc3NhZ2UodC5fc3RhdGUsaSk7cmV0dXJuIHQuX3VNUC5hZGQocykscy5jYXRjaCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5fdU1QLmRlbGV0ZShzKX0pLHN9KX1mdW5jdGlvbiBkWXQodCl7dmFyIGU9dC5tZXRob2QuY3JlYXRlKHQubmFtZSx0Lm9wdGlvbnMpO0pqZShlKT8odC5fcHJlcFA9ZSxlLnRoZW4oZnVuY3Rpb24oYSl7dC5fc3RhdGU9YX0pKTp0Ll9zdGF0ZT1lfWZ1bmN0aW9uIHpXZSh0KXtyZXR1cm4gdC5fYWRkRUwubWVzc2FnZS5sZW5ndGg+MHx8dC5fYWRkRUwuaW50ZXJuYWwubGVuZ3RoPjB9ZnVuY3Rpb24ga1dlKHQsZSxhKXt0Ll9hZGRFTFtlXS5wdXNoKGEpLGZZdCh0KX1mdW5jdGlvbiBTV2UodCxlLGEpe3QuX2FkZEVMW2VdPXQuX2FkZEVMW2VdLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gciE9PWF9KSx1WXQodCl9ZnVuY3Rpb24gZll0KHQpe2lmKCF0Ll9pTCYmeldlKHQpKXt2YXIgZT1mdW5jdGlvbihpKXt0Ll9hZGRFTFtpLnR5cGVdLmZvckVhY2goZnVuY3Rpb24obyl7aS50aW1lPj1vLnRpbWUmJm8uZm4oaS5kYXRhKX0pfSxhPXQubWV0aG9kLm1pY3JvU2Vjb25kcygpO3QuX3ByZXBQP3QuX3ByZXBQLnRoZW4oZnVuY3Rpb24oKXt0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxhKX0pOih0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxhKSl9fWZ1bmN0aW9uIHVZdCh0KXtpZih0Ll9pTCYmIXpXZSh0KSl7dC5faUw9ITE7dmFyIGU9dC5tZXRob2QubWljcm9TZWNvbmRzKCk7dC5tZXRob2Qub25NZXNzYWdlKHQuX3N0YXRlLG51bGwsZSl9fXZhciB2USxuWXQsS3MsYlEsQ1dlPW4oKCk9PntObygpO3dXZSgpO0JSKCk7dlE9bmV3IFNldCxuWXQ9MCxLcz1mdW5jdGlvbihlLGEpe3RoaXMuaWQ9bll0KyssdlEuYWRkKHRoaXMpLHRoaXMubmFtZT1lLGJRJiYoYT1iUSksdGhpcy5vcHRpb25zPVFzKGEpLHRoaXMubWV0aG9kPXhRKHRoaXMub3B0aW9ucyksdGhpcy5faUw9ITEsdGhpcy5fb25NTD1udWxsLHRoaXMuX2FkZEVMPXttZXNzYWdlOltdLGludGVybmFsOltdfSx0aGlzLl91TVA9bmV3IFNldCx0aGlzLl9iZWZDPVtdLHRoaXMuX3ByZXBQPW51bGwsZFl0KHRoaXMpfTtLcy5fcHVia2V5PSEwO0tzLnByb3RvdHlwZT17cG9zdE1lc3NhZ2U6ZnVuY3Rpb24oZSl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKCk6IENhbm5vdCBwb3N0IG1lc3NhZ2UgYWZ0ZXIgY2hhbm5lbCBoYXMgY2xvc2VkICIrSlNPTi5zdHJpbmdpZnkoZSkpO3JldHVybiBNV2UodGhpcywibWVzc2FnZSIsZSl9LHBvc3RJbnRlcm5hbDpmdW5jdGlvbihlKXtyZXR1cm4gTVdlKHRoaXMsImludGVybmFsIixlKX0sc2V0IG9ubWVzc2FnZSh0KXt2YXIgZT10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxhPXt0aW1lOmUsZm46dH07U1dlKHRoaXMsIm1lc3NhZ2UiLHRoaXMuX29uTUwpLHQmJnR5cGVvZiB0PT0iZnVuY3Rpb24iPyh0aGlzLl9vbk1MPWEsa1dlKHRoaXMsIm1lc3NhZ2UiLGEpKTp0aGlzLl9vbk1MPW51bGx9LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oZSxhKXt2YXIgcj10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxpPXt0aW1lOnIsZm46YX07a1dlKHRoaXMsZSxpKX0scmVtb3ZlRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihlLGEpe3ZhciByPXRoaXMuX2FkZEVMW2VdLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuZm49PT1hfSk7U1dlKHRoaXMsZSxyKX0sY2xvc2U6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCF0aGlzLmNsb3NlZCl7dlEuZGVsZXRlKHRoaXMpLHRoaXMuY2xvc2VkPSEwO3ZhciBhPXRoaXMuX3ByZXBQP3RoaXMuX3ByZXBQOm5hO3JldHVybiB0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUwubWVzc2FnZT1bXSxhLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbShlLl91TVApKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5fYmVmQy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHIoKX0pKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tZXRob2QuY2xvc2UoZS5fc3RhdGUpfSl9fSxnZXQgdHlwZSgpe3JldHVybiB0aGlzLm1ldGhvZC50eXBlfSxnZXQgaXNDbG9zZWQoKXtyZXR1cm4gdGhpcy5jbG9zZWR9fX0pO2Z1bmN0aW9uIExXZSh0KXtpZih0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU9PSJmdW5jdGlvbiImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSl7dmFyIGU9c2VsZi5jbG9zZS5iaW5kKHNlbGYpO3NlbGYuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLGUoKX19ZWxzZXtpZih0eXBlb2Ygd2luZG93LmFkZEV2ZW50TGlzdGVuZXIhPSJmdW5jdGlvbiIpcmV0dXJuO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLGZ1bmN0aW9uKCl7dCgpfSwhMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZnVuY3Rpb24oKXt0KCl9LCEwKX19dmFyIFRXZT1uKCgpPT57fSk7ZnVuY3Rpb24gX1dlKHQpe3Byb2Nlc3Mub24oImV4aXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHQoKX0pLHByb2Nlc3Mub24oImJlZm9yZUV4aXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHByb2Nlc3MuZXhpdCgpfSl9KSxwcm9jZXNzLm9uKCJTSUdJTlQiLGZ1bmN0aW9uKCl7cmV0dXJuIHQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHByb2Nlc3MuZXhpdCgpfSl9KSxwcm9jZXNzLm9uKCJ1bmNhdWdodEV4Y2VwdGlvbiIsZnVuY3Rpb24oZSl7cmV0dXJuIHQoKS50aGVuKGZ1bmN0aW9uKCl7Y29uc29sZS50cmFjZShlKSxwcm9jZXNzLmV4aXQoMTAxKX0pfSl9dmFyIEFXZT1uKCgpPT57fSk7ZnVuY3Rpb24gbVl0KCl7JFdlfHwoJFdlPSEwLGhZdChnWXQpKX1mdW5jdGlvbiBEV2UodCl7aWYobVl0KCksdHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJMaXN0ZW5lciBpcyBubyBmdW5jdGlvbiIpO0pzLmFkZCh0KTt2YXIgZT17cmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIEpzLmRlbGV0ZSh0KX0scnVuOmZ1bmN0aW9uKCl7cmV0dXJuIEpzLmRlbGV0ZSh0KSx0KCl9fTtyZXR1cm4gZX1mdW5jdGlvbiBnWXQoKXt2YXIgdD1bXTtyZXR1cm4gSnMuZm9yRWFjaChmdW5jdGlvbihlKXt0LnB1c2goZSgpKSxKcy5kZWxldGUoZSl9KSxQcm9taXNlLmFsbCh0KX1mdW5jdGlvbiBZVjEoKXtKcy5jbGVhcigpfWZ1bmN0aW9uIFpWMSgpe3JldHVybiBKcy5zaXplfXZhciBwWXQsaFl0LEpzLCRXZSxFV2U9bigoKT0+e1RXZSgpO0FXZSgpO3BZdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodHlwZW9mIHByb2Nlc3M8InUiP3Byb2Nlc3M6MCk9PT0iW29iamVjdCBwcm9jZXNzXSIsaFl0PXBZdD9fV2U6TFdlLEpzPW5ldyBTZXQsJFdlPSExfSk7ZnVuY3Rpb24geWkodCxlKXt2YXIgYT17Y29udGV4dDoibGVhZGVyIixhY3Rpb246ZSx0b2tlbjp0LnRva2VufTtyZXR1cm4gdC5icm9hZGNhc3RDaGFubmVsLnBvc3RJbnRlcm5hbChhKX1mdW5jdGlvbiBHOCh0KXt0LmlzTGVhZGVyPSEwLHQuX2hhc0xlYWRlcj0hMDt2YXIgZT1EV2UoZnVuY3Rpb24oKXtyZXR1cm4gdC5kaWUoKX0pO3QuX3VubC5wdXNoKGUpO3ZhciBhPWZ1bmN0aW9uKGkpe2kuY29udGV4dD09PSJsZWFkZXIiJiZpLmFjdGlvbj09PSJhcHBseSImJnlpKHQsInRlbGwiKSxpLmNvbnRleHQ9PT0ibGVhZGVyIiYmaS5hY3Rpb249PT0idGVsbCImJiF0Ll9kcExDJiYodC5fZHBMQz0hMCx0Ll9kcEwoKSx5aSh0LCJ0ZWxsIikpfTtyZXR1cm4gdC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixhKSx0Ll9sc3Rucy5wdXNoKGEpLHlpKHQsInRlbGwiKX12YXIgSFI9bigoKT0+e0VXZSgpfSk7dmFyIHlRLE5XZT1uKCgpPT57Tm8oKTtIUigpO3lRPWZ1bmN0aW9uKGUsYSl7dmFyIHI9dGhpczt0aGlzLmJyb2FkY2FzdENoYW5uZWw9ZSxlLl9iZWZDLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gci5kaWUoKX0pLHRoaXMuX29wdGlvbnM9YSx0aGlzLmlzTGVhZGVyPSExLHRoaXMuaXNEZWFkPSExLHRoaXMudG9rZW49YmkoKSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmw9W10sdGhpcy5fZHBMPWZ1bmN0aW9uKCl7fSx0aGlzLl9kcExDPSExLHRoaXMuX3dLTUM9e30sdGhpcy5sTj0icHVia2V5LWJjfHwiK2UubWV0aG9kLnR5cGUrInx8IitlLm5hbWV9O3lRLnByb3RvdHlwZT17aGFzTGVhZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gbmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihmdW5jdGlvbihhKXt2YXIgcj1hLmhlbGQ/YS5oZWxkLmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaS5uYW1lPT09ZS5sTn0pOltdO3JldHVybiEhKHImJnIubGVuZ3RoPjApfSl9LGF3YWl0TGVhZGVyc2hpcDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMuX3dMTVApe3RoaXMuX3dLTUMuYz1uZXcgQWJvcnRDb250cm9sbGVyO3ZhciBhPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsaSl7ZS5fd0tNQy5yZXM9cixlLl93S01DLnJlaj1pfSk7dGhpcy5fd0xNUD1uZXcgUHJvbWlzZShmdW5jdGlvbihyLGkpe25hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KGUubE4se3NpZ25hbDplLl93S01DLmMuc2lnbmFsfSxmdW5jdGlvbigpe3JldHVybiBlLl93S01DLmM9dm9pZCAwLEc4KGUpLHIoKSxhfSkuY2F0Y2goZnVuY3Rpb24obyl7ZS5fd0tNQy5yZWomJmUuX3dLTUMucmVqKG8pLGkobyl9KX0pfXJldHVybiB0aGlzLl93TE1QfSxzZXQgb25kdXBsaWNhdGUodCl7fSxkaWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGEpfSksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVtb3ZlKCl9KSx0aGlzLl91bmw9W10sdGhpcy5pc0xlYWRlciYmKHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLHRoaXMuX3dLTUMucmVzJiZ0aGlzLl93S01DLnJlcygpLHRoaXMuX3dLTUMuYyYmdGhpcy5fd0tNQy5jLmFib3J0KCJMZWFkZXJFbGVjdGlvbldlYkxvY2suZGllKCkgY2FsbGVkIikseWkodGhpcywiZGVhdGgiKX19fSk7ZnVuY3Rpb24geFl0KHQpe3JldHVybiB0LmlzTGVhZGVyP25hOm5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3ZhciBhPSExO2Z1bmN0aW9uIHIoKXthfHwoYT0hMCx0LmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLG8pLGUoITApKX10LmFwcGx5T25jZSgpLnRoZW4oZnVuY3Rpb24oKXt0LmlzTGVhZGVyJiZyKCl9KTt2YXIgaT1mdW5jdGlvbigpe3JldHVybiAkcih0Ll9vcHRpb25zLmZhbGxiYWNrSW50ZXJ2YWwpLnRoZW4oZnVuY3Rpb24oKXtpZighKHQuaXNEZWFkfHxhKSlpZih0LmlzTGVhZGVyKXIoKTtlbHNlIHJldHVybiB0LmFwcGx5T25jZSghMCkudGhlbihmdW5jdGlvbigpe3QuaXNMZWFkZXI/cigpOmkoKX0pfSl9O2koKTt2YXIgbz1mdW5jdGlvbihsKXtsLmNvbnRleHQ9PT0ibGVhZGVyIiYmbC5hY3Rpb249PT0iZGVhdGgiJiYodC5faGFzTGVhZGVyPSExLHQuYXBwbHlPbmNlKCkudGhlbihmdW5jdGlvbigpe3QuaXNMZWFkZXImJnIoKX0pKX07dC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixvKSx0Ll9sc3Rucy5wdXNoKG8pfSl9ZnVuY3Rpb24gYll0KHQsZSl7cmV0dXJuIHR8fCh0PXt9KSx0PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLHQuZmFsbGJhY2tJbnRlcnZhbHx8KHQuZmFsbGJhY2tJbnRlcnZhbD0zZTMpLHQucmVzcG9uc2VUaW1lfHwodC5yZXNwb25zZVRpbWU9ZS5tZXRob2QuYXZlcmFnZVJlc3BvbnNlVGltZShlLm9wdGlvbnMpKSx0fWZ1bmN0aW9uIHZZdCh0LGUpe2lmKHQuX2xlYWRlckVsZWN0b3IpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsIGFscmVhZHkgaGFzIGEgbGVhZGVyLWVsZWN0b3IiKTtlPWJZdChlLHQpO3ZhciBhPXJXZSgpP25ldyB5USh0LGUpOm5ldyBQV2UodCxlKTtyZXR1cm4gdC5fYmVmQy5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGEuZGllKCl9KSx0Ll9sZWFkZXJFbGVjdG9yPWEsYX12YXIgUFdlLElXZT1uKCgpPT57Tm8oKTtIUigpO05XZSgpO1BXZT1mdW5jdGlvbihlLGEpe3ZhciByPXRoaXM7dGhpcy5icm9hZGNhc3RDaGFubmVsPWUsdGhpcy5fb3B0aW9ucz1hLHRoaXMuaXNMZWFkZXI9ITEsdGhpcy5faGFzTGVhZGVyPSExLHRoaXMuaXNEZWFkPSExLHRoaXMudG9rZW49YmkoKSx0aGlzLl9hcGxRPW5hLHRoaXMuX2FwbFFDPTAsdGhpcy5fdW5sPVtdLHRoaXMuX2xzdG5zPVtdLHRoaXMuX2RwTD1mdW5jdGlvbigpe30sdGhpcy5fZHBMQz0hMTt2YXIgaT1mdW5jdGlvbihzKXtzLmNvbnRleHQ9PT0ibGVhZGVyIiYmKHMuYWN0aW9uPT09ImRlYXRoIiYmKHIuX2hhc0xlYWRlcj0hMSkscy5hY3Rpb249PT0idGVsbCImJihyLl9oYXNMZWFkZXI9ITApKX07dGhpcy5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixpKSx0aGlzLl9sc3Rucy5wdXNoKGkpfTtQV2UucHJvdG90eXBlPXtoYXNMZWFkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2hhc0xlYWRlcil9LGFwcGx5T25jZTpmdW5jdGlvbihlKXt2YXIgYT10aGlzO2lmKHRoaXMuaXNMZWFkZXIpcmV0dXJuICRyKDAsITApO2lmKHRoaXMuaXNEZWFkKXJldHVybiAkcigwLCExKTtpZih0aGlzLl9hcGxRQz4xKXJldHVybiB0aGlzLl9hcGxRO3ZhciByPWZ1bmN0aW9uKCl7aWYoYS5pc0xlYWRlcilyZXR1cm4gdFdlO3ZhciBvPSExLHMsbD1uZXcgUHJvbWlzZShmdW5jdGlvbih1KXtzPWZ1bmN0aW9uKCl7bz0hMCx1KCl9fSksZj1mdW5jdGlvbihkKXtkLmNvbnRleHQ9PT0ibGVhZGVyIiYmZC50b2tlbiE9YS50b2tlbiYmKGQuYWN0aW9uPT09ImFwcGx5IiYmZC50b2tlbj5hLnRva2VuJiZzKCksZC5hY3Rpb249PT0idGVsbCImJihzKCksYS5faGFzTGVhZGVyPSEwKSl9O2EuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsZik7dmFyIGM9ZT9hLl9vcHRpb25zLnJlc3BvbnNlVGltZSo0OmEuX29wdGlvbnMucmVzcG9uc2VUaW1lO3JldHVybiB5aShhLCJhcHBseSIpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yYWNlKFskcihjKSxsLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKX0pXSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHlpKGEsImFwcGx5Iil9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmFjZShbJHIoYyksbC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcil9KV0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsZiksbz8hMTpHOChhKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KX0pfTtyZXR1cm4gdGhpcy5fYXBsUUM9dGhpcy5fYXBsUUMrMSx0aGlzLl9hcGxRPXRoaXMuX2FwbFEudGhlbihmdW5jdGlvbigpe3JldHVybiByKCl9KS50aGVuKGZ1bmN0aW9uKCl7YS5fYXBsUUM9YS5fYXBsUUMtMX0pLHRoaXMuX2FwbFEudGhlbihmdW5jdGlvbigpe3JldHVybiBhLmlzTGVhZGVyfSl9LGF3YWl0TGVhZGVyc2hpcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hTFB8fCh0aGlzLl9hTFA9eFl0KHRoaXMpKSx0aGlzLl9hTFB9LHNldCBvbmR1cGxpY2F0ZSh0KXt0aGlzLl9kcEw9dH0sZGllOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5fbHN0bnMuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gZS5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixhKX0pLHRoaXMuX2xzdG5zPVtdLHRoaXMuX3VubC5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBhLnJlbW92ZSgpfSksdGhpcy5fdW5sPVtdLHRoaXMuaXNMZWFkZXImJih0aGlzLl9oYXNMZWFkZXI9ITEsdGhpcy5pc0xlYWRlcj0hMSksdGhpcy5pc0RlYWQ9ITAseWkodGhpcywiZGVhdGgiKX19fSk7dmFyIEZXZT1uKCgpPT57Q1dlKCk7SVdlKCk7SFIoKX0pO3ZhciBPV2U9bigoKT0+e2lpKCk7b08oKTtqOCgpO0ZXZSgpfSk7dmFyIHdRLE1RLEJXZT1uKCgpPT57T1dlKCk7d1E9Z2xvYmFsVGhpcy5Ccm9hZGNhc3RDaGFubmVsO3dRfHwod1E9S3MpO01RPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5icm9hZGNhc3RDaGFubmVsPW5ldyB3USgiZGVlcy1jb21tcyIpLHRoaXMudHlwZWRyb3V0ZXI9bmV3IEYyLlR5cGVkUm91dGVyLHRoaXMudHlwZWR0YXJnZXQ9bmV3IEYyLlR5cGVkVGFyZ2V0KHtwb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyOmFzeW5jIGU9Pnt0aGlzLnBvc3RNZXNzYWdlKGUpfSx0eXBlZFJvdXRlclJlZjp0aGlzLnR5cGVkcm91dGVyfSksdGhpcy5icm9hZGNhc3RDaGFubmVsLm9ubWVzc2FnZT1hc3luYyBlPT57bGV0IGE9ZS5tZXRob2Q/ZTplLmRhdGE7Y29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoYSkpO2xldCByPWF3YWl0IHRoaXMudHlwZWRyb3V0ZXIucm91dGVBbmRBZGRSZXNwb25zZShhLHtza2lwSG9va3M6ITB9KTtyJiYhci5lcnJvciYmdGhpcy5wb3N0TWVzc2FnZShyKX19Y3JlYXRlVHlwZWRSZXF1ZXN0KGUpe3JldHVybiBuZXcgRjIuVHlwZWRSZXF1ZXN0KHRoaXMudHlwZWR0YXJnZXQsZSl9YXN5bmMgcG9zdE1lc3NhZ2UoZSl7dGhpcy5icm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKGUpfWFzeW5jIGNyZWF0ZVR5cGVkSGFuZGxlcihlLGEpe3RoaXMudHlwZWRyb3V0ZXIuYWRkVHlwZWRIYW5kbGVyKG5ldyBGMi5UeXBlZEhhbmRsZXIoZSxhKSl9fX0pO3ZhciBZOD17fTtldChZOCx7RGVlc0NvbW1zOigpPT5NUX0pO3ZhciBSV2U9bigoKT0+e0JXZSgpfSk7dmFyIHRuPWN0KChwVTEsZW4pPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEhXZSh0KXtyZXR1cm4gdHlwZW9mIHQ+InUifHx0PT09bnVsbH1mdW5jdGlvbiB3WXQodCl7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGx9ZnVuY3Rpb24gTVl0KHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Q6SFdlKHQpP1tdOlt0XX1mdW5jdGlvbiB6WXQodCxlKXt2YXIgYSxyLGksbztpZihlKWZvcihvPU9iamVjdC5rZXlzKGUpLGE9MCxyPW8ubGVuZ3RoO2E8cjthKz0xKWk9b1thXSx0W2ldPWVbaV07cmV0dXJuIHR9ZnVuY3Rpb24ga1l0KHQsZSl7dmFyIGE9IiIscjtmb3Iocj0wO3I8ZTtyKz0xKWErPXQ7cmV0dXJuIGF9ZnVuY3Rpb24gU1l0KHQpe3JldHVybiB0PT09MCYmTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZPT09MS90fWVuLmV4cG9ydHMuaXNOb3RoaW5nPUhXZSxlbi5leHBvcnRzLmlzT2JqZWN0PXdZdCxlbi5leHBvcnRzLnRvQXJyYXk9TVl0LGVuLmV4cG9ydHMucmVwZWF0PWtZdCxlbi5leHBvcnRzLmlzTmVnYXRpdmVaZXJvPVNZdCxlbi5leHBvcnRzLmV4dGVuZD16WXR9KTt2YXIgdTY9Y3QoKGhVMSxxV2UpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFo4KHQsZSl7RXJyb3IuY2FsbCh0aGlzKSx0aGlzLm5hbWU9IllBTUxFeGNlcHRpb24iLHRoaXMucmVhc29uPXQsdGhpcy5tYXJrPWUsdGhpcy5tZXNzYWdlPSh0aGlzLnJlYXNvbnx8Iih1bmtub3duIHJlYXNvbikiKSsodGhpcy5tYXJrPyIgIit0aGlzLm1hcmsudG9TdHJpbmcoKToiIiksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrfHwiIn1aOC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLFo4LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1aOCxaOC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIGE9dGhpcy5uYW1lKyI6ICI7cmV0dXJuIGErPXRoaXMucmVhc29ufHwiKHVua25vd24gcmVhc29uKSIsIWUmJnRoaXMubWFyayYmKGErPSIgIit0aGlzLm1hcmsudG9TdHJpbmcoKSksYX0scVdlLmV4cG9ydHM9Wjh9KTt2YXIgaldlPWN0KChtVTEsVVdlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgVldlPXRuKCk7ZnVuY3Rpb24gelEodCxlLGEscixpKXt0aGlzLm5hbWU9dCx0aGlzLmJ1ZmZlcj1lLHRoaXMucG9zaXRpb249YSx0aGlzLmxpbmU9cix0aGlzLmNvbHVtbj1pfXpRLnByb3RvdHlwZS5nZXRTbmlwcGV0PWZ1bmN0aW9uKGUsYSl7dmFyIHIsaSxvLHMsbDtpZighdGhpcy5idWZmZXIpcmV0dXJuIG51bGw7Zm9yKGU9ZXx8NCxhPWF8fDc1LHI9IiIsaT10aGlzLnBvc2l0aW9uO2k+MCYmYFwwXHIKXHg4NVx1MjAyOFx1MjAyOWAuaW5kZXhPZih0aGlzLmJ1ZmZlci5jaGFyQXQoaS0xKSk9PT0tMTspaWYoaS09MSx0aGlzLnBvc2l0aW9uLWk+YS8yLTEpe3I9IiAuLi4gIixpKz01O2JyZWFrfWZvcihvPSIiLHM9dGhpcy5wb3NpdGlvbjtzPHRoaXMuYnVmZmVyLmxlbmd0aCYmYFwwXHIKXHg4NVx1MjAyOFx1MjAyOWAuaW5kZXhPZih0aGlzLmJ1ZmZlci5jaGFyQXQocykpPT09LTE7KWlmKHMrPTEscy10aGlzLnBvc2l0aW9uPmEvMi0xKXtvPSIgLi4uICIscy09NTticmVha31yZXR1cm4gbD10aGlzLmJ1ZmZlci5zbGljZShpLHMpLFZXZS5yZXBlYXQoIiAiLGUpK3IrbCtvK2AKYCtWV2UucmVwZWF0KCIgIixlK3RoaXMucG9zaXRpb24taStyLmxlbmd0aCkrIl4ifSx6US5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIGEscj0iIjtyZXR1cm4gdGhpcy5uYW1lJiYocis9J2luICInK3RoaXMubmFtZSsnIiAnKSxyKz0iYXQgbGluZSAiKyh0aGlzLmxpbmUrMSkrIiwgY29sdW1uICIrKHRoaXMuY29sdW1uKzEpLGV8fChhPXRoaXMuZ2V0U25pcHBldCgpLGEmJihyKz1gOgpgK2EpKSxyfSxVV2UuZXhwb3J0cz16UX0pO3ZhciBSMT1jdCgoZ1UxLEdXZSk9PnsidXNlIHN0cmljdCI7dmFyIFdXZT11NigpLENZdD1bImtpbmQiLCJyZXNvbHZlIiwiY29uc3RydWN0IiwiaW5zdGFuY2VPZiIsInByZWRpY2F0ZSIsInJlcHJlc2VudCIsImRlZmF1bHRTdHlsZSIsInN0eWxlQWxpYXNlcyJdLExZdD1bInNjYWxhciIsInNlcXVlbmNlIiwibWFwcGluZyJdO2Z1bmN0aW9uIFRZdCh0KXt2YXIgZT17fTtyZXR1cm4gdCE9PW51bGwmJk9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oYSl7dFthXS5mb3JFYWNoKGZ1bmN0aW9uKHIpe2VbU3RyaW5nKHIpXT1hfSl9KSxlfWZ1bmN0aW9uIF9ZdCh0LGUpe2lmKGU9ZXx8e30sT2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbihhKXtpZihDWXQuaW5kZXhPZihhKT09PS0xKXRocm93IG5ldyBXV2UoJ1Vua25vd24gb3B0aW9uICInK2ErJyIgaXMgbWV0IGluIGRlZmluaXRpb24gb2YgIicrdCsnIiBZQU1MIHR5cGUuJyl9KSx0aGlzLnRhZz10LHRoaXMua2luZD1lLmtpbmR8fG51bGwsdGhpcy5yZXNvbHZlPWUucmVzb2x2ZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdGhpcy5jb25zdHJ1Y3Q9ZS5jb25zdHJ1Y3R8fGZ1bmN0aW9uKGEpe3JldHVybiBhfSx0aGlzLmluc3RhbmNlT2Y9ZS5pbnN0YW5jZU9mfHxudWxsLHRoaXMucHJlZGljYXRlPWUucHJlZGljYXRlfHxudWxsLHRoaXMucmVwcmVzZW50PWUucmVwcmVzZW50fHxudWxsLHRoaXMuZGVmYXVsdFN0eWxlPWUuZGVmYXVsdFN0eWxlfHxudWxsLHRoaXMuc3R5bGVBbGlhc2VzPVRZdChlLnN0eWxlQWxpYXNlc3x8bnVsbCksTFl0LmluZGV4T2YodGhpcy5raW5kKT09PS0xKXRocm93IG5ldyBXV2UoJ1Vua25vd24ga2luZCAiJyt0aGlzLmtpbmQrJyIgaXMgc3BlY2lmaWVkIGZvciAiJyt0KyciIFlBTUwgdHlwZS4nKX1HV2UuZXhwb3J0cz1fWXR9KTt2YXIgYW49Y3QoKHhVMSxaV2UpPT57InVzZSBzdHJpY3QiO3ZhciBZV2U9dG4oKSxxUj11NigpLEFZdD1SMSgpO2Z1bmN0aW9uIGtRKHQsZSxhKXt2YXIgcj1bXTtyZXR1cm4gdC5pbmNsdWRlLmZvckVhY2goZnVuY3Rpb24oaSl7YT1rUShpLGUsYSl9KSx0W2VdLmZvckVhY2goZnVuY3Rpb24oaSl7YS5mb3JFYWNoKGZ1bmN0aW9uKG8scyl7by50YWc9PT1pLnRhZyYmby5raW5kPT09aS5raW5kJiZyLnB1c2gocyl9KSxhLnB1c2goaSl9KSxhLmZpbHRlcihmdW5jdGlvbihpLG8pe3JldHVybiByLmluZGV4T2Yobyk9PT0tMX0pfWZ1bmN0aW9uICRZdCgpe3ZhciB0PXtzY2FsYXI6e30sc2VxdWVuY2U6e30sbWFwcGluZzp7fSxmYWxsYmFjazp7fX0sZSxhO2Z1bmN0aW9uIHIoaSl7dFtpLmtpbmRdW2kudGFnXT10LmZhbGxiYWNrW2kudGFnXT1pfWZvcihlPTAsYT1hcmd1bWVudHMubGVuZ3RoO2U8YTtlKz0xKWFyZ3VtZW50c1tlXS5mb3JFYWNoKHIpO3JldHVybiB0fWZ1bmN0aW9uIHA2KHQpe3RoaXMuaW5jbHVkZT10LmluY2x1ZGV8fFtdLHRoaXMuaW1wbGljaXQ9dC5pbXBsaWNpdHx8W10sdGhpcy5leHBsaWNpdD10LmV4cGxpY2l0fHxbXSx0aGlzLmltcGxpY2l0LmZvckVhY2goZnVuY3Rpb24oZSl7aWYoZS5sb2FkS2luZCYmZS5sb2FkS2luZCE9PSJzY2FsYXIiKXRocm93IG5ldyBxUigiVGhlcmUgaXMgYSBub24tc2NhbGFyIHR5cGUgaW4gdGhlIGltcGxpY2l0IGxpc3Qgb2YgYSBzY2hlbWEuIEltcGxpY2l0IHJlc29sdmluZyBvZiBzdWNoIHR5cGVzIGlzIG5vdCBzdXBwb3J0ZWQuIil9KSx0aGlzLmNvbXBpbGVkSW1wbGljaXQ9a1EodGhpcywiaW1wbGljaXQiLFtdKSx0aGlzLmNvbXBpbGVkRXhwbGljaXQ9a1EodGhpcywiZXhwbGljaXQiLFtdKSx0aGlzLmNvbXBpbGVkVHlwZU1hcD0kWXQodGhpcy5jb21waWxlZEltcGxpY2l0LHRoaXMuY29tcGlsZWRFeHBsaWNpdCl9cDYuREVGQVVMVD1udWxsLHA2LmNyZWF0ZT1mdW5jdGlvbigpe3ZhciBlLGE7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMTplPXA2LkRFRkFVTFQsYT1hcmd1bWVudHNbMF07YnJlYWs7Y2FzZSAyOmU9YXJndW1lbnRzWzBdLGE9YXJndW1lbnRzWzFdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IHFSKCJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBTY2hlbWEuY3JlYXRlIGZ1bmN0aW9uIil9aWYoZT1ZV2UudG9BcnJheShlKSxhPVlXZS50b0FycmF5KGEpLCFlLmV2ZXJ5KGZ1bmN0aW9uKHIpe3JldHVybiByIGluc3RhbmNlb2YgcDZ9KSl0aHJvdyBuZXcgcVIoIlNwZWNpZmllZCBsaXN0IG9mIHN1cGVyIHNjaGVtYXMgKG9yIGEgc2luZ2xlIFNjaGVtYSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVNjaGVtYSBvYmplY3QuIik7aWYoIWEuZXZlcnkoZnVuY3Rpb24ocil7cmV0dXJuIHIgaW5zdGFuY2VvZiBBWXR9KSl0aHJvdyBuZXcgcVIoIlNwZWNpZmllZCBsaXN0IG9mIFlBTUwgdHlwZXMgKG9yIGEgc2luZ2xlIFR5cGUgb2JqZWN0KSBjb250YWlucyBhIG5vbi1UeXBlIG9iamVjdC4iKTtyZXR1cm4gbmV3IHA2KHtpbmNsdWRlOmUsZXhwbGljaXQ6YX0pfSxaV2UuZXhwb3J0cz1wNn0pO3ZhciBRV2U9Y3QoKGJVMSxYV2UpPT57InVzZSBzdHJpY3QiO3ZhciBEWXQ9UjEoKTtYV2UuZXhwb3J0cz1uZXcgRFl0KCJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiLHtraW5kOiJzY2FsYXIiLGNvbnN0cnVjdDpmdW5jdGlvbih0KXtyZXR1cm4gdCE9PW51bGw/dDoiIn19KX0pO3ZhciBKV2U9Y3QoKHZVMSxLV2UpPT57InVzZSBzdHJpY3QiO3ZhciBFWXQ9UjEoKTtLV2UuZXhwb3J0cz1uZXcgRVl0KCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXEiLHtraW5kOiJzZXF1ZW5jZSIsY29uc3RydWN0OmZ1bmN0aW9uKHQpe3JldHVybiB0IT09bnVsbD90OltdfX0pfSk7dmFyIHRHZT1jdCgoeVUxLGVHZSk9PnsidXNlIHN0cmljdCI7dmFyIE5ZdD1SMSgpO2VHZS5leHBvcnRzPW5ldyBOWXQoInRhZzp5YW1sLm9yZywyMDAyOm1hcCIse2tpbmQ6Im1hcHBpbmciLGNvbnN0cnVjdDpmdW5jdGlvbih0KXtyZXR1cm4gdCE9PW51bGw/dDp7fX19KX0pO3ZhciBWUj1jdCgod1UxLGFHZSk9PnsidXNlIHN0cmljdCI7dmFyIFBZdD1hbigpO2FHZS5leHBvcnRzPW5ldyBQWXQoe2V4cGxpY2l0OltRV2UoKSxKV2UoKSx0R2UoKV19KX0pO3ZhciBpR2U9Y3QoKE1VMSxyR2UpPT57InVzZSBzdHJpY3QiO3ZhciBJWXQ9UjEoKTtmdW5jdGlvbiBGWXQodCl7aWYodD09PW51bGwpcmV0dXJuITA7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGU9PT0xJiZ0PT09In4ifHxlPT09NCYmKHQ9PT0ibnVsbCJ8fHQ9PT0iTnVsbCJ8fHQ9PT0iTlVMTCIpfWZ1bmN0aW9uIE9ZdCgpe3JldHVybiBudWxsfWZ1bmN0aW9uIEJZdCh0KXtyZXR1cm4gdD09PW51bGx9ckdlLmV4cG9ydHM9bmV3IElZdCgidGFnOnlhbWwub3JnLDIwMDI6bnVsbCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpGWXQsY29uc3RydWN0Ok9ZdCxwcmVkaWNhdGU6Qll0LHJlcHJlc2VudDp7Y2Fub25pY2FsOmZ1bmN0aW9uKCl7cmV0dXJuIn4ifSxsb3dlcmNhc2U6ZnVuY3Rpb24oKXtyZXR1cm4ibnVsbCJ9LHVwcGVyY2FzZTpmdW5jdGlvbigpe3JldHVybiJOVUxMIn0sY2FtZWxjYXNlOmZ1bmN0aW9uKCl7cmV0dXJuIk51bGwifX0sZGVmYXVsdFN0eWxlOiJsb3dlcmNhc2UifSl9KTt2YXIgc0dlPWN0KCh6VTEsb0dlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgUll0PVIxKCk7ZnVuY3Rpb24gSFl0KHQpe2lmKHQ9PT1udWxsKXJldHVybiExO3ZhciBlPXQubGVuZ3RoO3JldHVybiBlPT09NCYmKHQ9PT0idHJ1ZSJ8fHQ9PT0iVHJ1ZSJ8fHQ9PT0iVFJVRSIpfHxlPT09NSYmKHQ9PT0iZmFsc2UifHx0PT09IkZhbHNlInx8dD09PSJGQUxTRSIpfWZ1bmN0aW9uIHFZdCh0KXtyZXR1cm4gdD09PSJ0cnVlInx8dD09PSJUcnVlInx8dD09PSJUUlVFIn1mdW5jdGlvbiBWWXQodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IEJvb2xlYW5dIn1vR2UuZXhwb3J0cz1uZXcgUll0KCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIix7a2luZDoic2NhbGFyIixyZXNvbHZlOkhZdCxjb25zdHJ1Y3Q6cVl0LHByZWRpY2F0ZTpWWXQscmVwcmVzZW50Ontsb3dlcmNhc2U6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/InRydWUiOiJmYWxzZSJ9LHVwcGVyY2FzZTpmdW5jdGlvbih0KXtyZXR1cm4gdD8iVFJVRSI6IkZBTFNFIn0sY2FtZWxjYXNlOmZ1bmN0aW9uKHQpe3JldHVybiB0PyJUcnVlIjoiRmFsc2UifX0sZGVmYXVsdFN0eWxlOiJsb3dlcmNhc2UifSl9KTt2YXIgbEdlPWN0KChrVTEsbkdlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgVVl0PXRuKCksall0PVIxKCk7ZnVuY3Rpb24gV1l0KHQpe3JldHVybiA0ODw9dCYmdDw9NTd8fDY1PD10JiZ0PD03MHx8OTc8PXQmJnQ8PTEwMn1mdW5jdGlvbiBHWXQodCl7cmV0dXJuIDQ4PD10JiZ0PD01NX1mdW5jdGlvbiBZWXQodCl7cmV0dXJuIDQ4PD10JiZ0PD01N31mdW5jdGlvbiBaWXQodCl7aWYodD09PW51bGwpcmV0dXJuITE7dmFyIGU9dC5sZW5ndGgsYT0wLHI9ITEsaTtpZighZSlyZXR1cm4hMTtpZihpPXRbYV0sKGk9PT0iLSJ8fGk9PT0iKyIpJiYoaT10WysrYV0pLGk9PT0iMCIpe2lmKGErMT09PWUpcmV0dXJuITA7aWYoaT10WysrYV0saT09PSJiIil7Zm9yKGErKzthPGU7YSsrKWlmKGk9dFthXSxpIT09Il8iKXtpZihpIT09IjAiJiZpIT09IjEiKXJldHVybiExO3I9ITB9cmV0dXJuIHImJmkhPT0iXyJ9aWYoaT09PSJ4Iil7Zm9yKGErKzthPGU7YSsrKWlmKGk9dFthXSxpIT09Il8iKXtpZighV1l0KHQuY2hhckNvZGVBdChhKSkpcmV0dXJuITE7cj0hMH1yZXR1cm4gciYmaSE9PSJfIn1mb3IoO2E8ZTthKyspaWYoaT10W2FdLGkhPT0iXyIpe2lmKCFHWXQodC5jaGFyQ29kZUF0KGEpKSlyZXR1cm4hMTtyPSEwfXJldHVybiByJiZpIT09Il8ifWlmKGk9PT0iXyIpcmV0dXJuITE7Zm9yKDthPGU7YSsrKWlmKGk9dFthXSxpIT09Il8iKXtpZihpPT09IjoiKWJyZWFrO2lmKCFZWXQodC5jaGFyQ29kZUF0KGEpKSlyZXR1cm4hMTtyPSEwfXJldHVybiFyfHxpPT09Il8iPyExOmkhPT0iOiI/ITA6L14oOlswLTVdP1swLTldKSskLy50ZXN0KHQuc2xpY2UoYSkpfWZ1bmN0aW9uIFhZdCh0KXt2YXIgZT10LGE9MSxyLGksbz1bXTtyZXR1cm4gZS5pbmRleE9mKCJfIikhPT0tMSYmKGU9ZS5yZXBsYWNlKC9fL2csIiIpKSxyPWVbMF0sKHI9PT0iLSJ8fHI9PT0iKyIpJiYocj09PSItIiYmKGE9LTEpLGU9ZS5zbGljZSgxKSxyPWVbMF0pLGU9PT0iMCI/MDpyPT09IjAiP2VbMV09PT0iYiI/YSpwYXJzZUludChlLnNsaWNlKDIpLDIpOmVbMV09PT0ieCI/YSpwYXJzZUludChlLDE2KTphKnBhcnNlSW50KGUsOCk6ZS5pbmRleE9mKCI6IikhPT0tMT8oZS5zcGxpdCgiOiIpLmZvckVhY2goZnVuY3Rpb24ocyl7by51bnNoaWZ0KHBhcnNlSW50KHMsMTApKX0pLGU9MCxpPTEsby5mb3JFYWNoKGZ1bmN0aW9uKHMpe2UrPXMqaSxpKj02MH0pLGEqZSk6YSpwYXJzZUludChlLDEwKX1mdW5jdGlvbiBRWXQodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IE51bWJlcl0iJiZ0JTE9PT0wJiYhVVl0LmlzTmVnYXRpdmVaZXJvKHQpfW5HZS5leHBvcnRzPW5ldyBqWXQoInRhZzp5YW1sLm9yZywyMDAyOmludCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpaWXQsY29uc3RydWN0OlhZdCxwcmVkaWNhdGU6UVl0LHJlcHJlc2VudDp7YmluYXJ5OmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wPyIwYiIrdC50b1N0cmluZygyKToiLTBiIit0LnRvU3RyaW5nKDIpLnNsaWNlKDEpfSxvY3RhbDpmdW5jdGlvbih0KXtyZXR1cm4gdD49MD8iMCIrdC50b1N0cmluZyg4KToiLTAiK3QudG9TdHJpbmcoOCkuc2xpY2UoMSl9LGRlY2ltYWw6ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9TdHJpbmcoMTApfSxoZXhhZGVjaW1hbDpmdW5jdGlvbih0KXtyZXR1cm4gdD49MD8iMHgiK3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk6Ii0weCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKS5zbGljZSgxKX19LGRlZmF1bHRTdHlsZToiZGVjaW1hbCIsc3R5bGVBbGlhc2VzOntiaW5hcnk6WzIsImJpbiJdLG9jdGFsOls4LCJvY3QiXSxkZWNpbWFsOlsxMCwiZGVjIl0saGV4YWRlY2ltYWw6WzE2LCJoZXgiXX19KX0pO3ZhciBmR2U9Y3QoKFNVMSxkR2UpPT57InVzZSBzdHJpY3QiO3ZhciBjR2U9dG4oKSxLWXQ9UjEoKSxKWXQ9bmV3IFJlZ0V4cCgiXig/OlstK10/KD86MHxbMS05XVswLTlfXSopKD86XFwuWzAtOV9dKik/KD86W2VFXVstK10/WzAtOV0rKT98XFwuWzAtOV9dKyg/OltlRV1bLStdP1swLTldKyk/fFstK10/WzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKStcXC5bMC05X10qfFstK10/XFwuKD86aW5mfEluZnxJTkYpfFxcLig/Om5hbnxOYU58TkFOKSkkIik7ZnVuY3Rpb24gZVp0KHQpe3JldHVybiEodD09PW51bGx8fCFKWXQudGVzdCh0KXx8dFt0Lmxlbmd0aC0xXT09PSJfIil9ZnVuY3Rpb24gdFp0KHQpe3ZhciBlLGEscixpO3JldHVybiBlPXQucmVwbGFjZSgvXy9nLCIiKS50b0xvd2VyQ2FzZSgpLGE9ZVswXT09PSItIj8tMToxLGk9W10sIistIi5pbmRleE9mKGVbMF0pPj0wJiYoZT1lLnNsaWNlKDEpKSxlPT09Ii5pbmYiP2E9PT0xP051bWJlci5QT1NJVElWRV9JTkZJTklUWTpOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk6ZT09PSIubmFuIj9OYU46ZS5pbmRleE9mKCI6Iik+PTA/KGUuc3BsaXQoIjoiKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe2kudW5zaGlmdChwYXJzZUZsb2F0KG8sMTApKX0pLGU9MCxyPTEsaS5mb3JFYWNoKGZ1bmN0aW9uKG8pe2UrPW8qcixyKj02MH0pLGEqZSk6YSpwYXJzZUZsb2F0KGUsMTApfXZhciBhWnQ9L15bLStdP1swLTldK2UvO2Z1bmN0aW9uIHJadCh0LGUpe3ZhciBhO2lmKGlzTmFOKHQpKXN3aXRjaChlKXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi5uYW4iO2Nhc2UidXBwZXJjYXNlIjpyZXR1cm4iLk5BTiI7Y2FzZSJjYW1lbGNhc2UiOnJldHVybiIuTmFOIn1lbHNlIGlmKE51bWJlci5QT1NJVElWRV9JTkZJTklUWT09PXQpc3dpdGNoKGUpe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLmluZiI7Y2FzZSJ1cHBlcmNhc2UiOnJldHVybiIuSU5GIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi5JbmYifWVsc2UgaWYoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZPT09dClzd2l0Y2goZSl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiItLmluZiI7Y2FzZSJ1cHBlcmNhc2UiOnJldHVybiItLklORiI7Y2FzZSJjYW1lbGNhc2UiOnJldHVybiItLkluZiJ9ZWxzZSBpZihjR2UuaXNOZWdhdGl2ZVplcm8odCkpcmV0dXJuIi0wLjAiO3JldHVybiBhPXQudG9TdHJpbmcoMTApLGFadC50ZXN0KGEpP2EucmVwbGFjZSgiZSIsIi5lIik6YX1mdW5jdGlvbiBpWnQodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IE51bWJlcl0iJiYodCUxIT09MHx8Y0dlLmlzTmVnYXRpdmVaZXJvKHQpKX1kR2UuZXhwb3J0cz1uZXcgS1l0KCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTplWnQsY29uc3RydWN0OnRadCxwcmVkaWNhdGU6aVp0LHJlcHJlc2VudDpyWnQsZGVmYXVsdFN0eWxlOiJsb3dlcmNhc2UifSl9KTt2YXIgU1E9Y3QoKENVMSx1R2UpPT57InVzZSBzdHJpY3QiO3ZhciBvWnQ9YW4oKTt1R2UuZXhwb3J0cz1uZXcgb1p0KHtpbmNsdWRlOltWUigpXSxpbXBsaWNpdDpbaUdlKCksc0dlKCksbEdlKCksZkdlKCldfSl9KTt2YXIgQ1E9Y3QoKExVMSxwR2UpPT57InVzZSBzdHJpY3QiO3ZhciBzWnQ9YW4oKTtwR2UuZXhwb3J0cz1uZXcgc1p0KHtpbmNsdWRlOltTUSgpXX0pfSk7dmFyIHhHZT1jdCgoVFUxLGdHZSk9PnsidXNlIHN0cmljdCI7dmFyIG5adD1SMSgpLGhHZT1uZXcgUmVnRXhwKCJeKFswLTldWzAtOV1bMC05XVswLTldKS0oWzAtOV1bMC05XSktKFswLTldWzAtOV0pJCIpLG1HZT1uZXcgUmVnRXhwKCJeKFswLTldWzAtOV1bMC05XVswLTldKS0oWzAtOV1bMC05XT8pLShbMC05XVswLTldPykoPzpbVHRdfFsgXFx0XSspKFswLTldWzAtOV0/KTooWzAtOV1bMC05XSk6KFswLTldWzAtOV0pKD86XFwuKFswLTldKikpPyg/OlsgXFx0XSooWnwoWy0rXSkoWzAtOV1bMC05XT8pKD86OihbMC05XVswLTldKSk/KSk/JCIpO2Z1bmN0aW9uIGxadCh0KXtyZXR1cm4gdD09PW51bGw/ITE6aEdlLmV4ZWModCkhPT1udWxsfHxtR2UuZXhlYyh0KSE9PW51bGx9ZnVuY3Rpb24gY1p0KHQpe3ZhciBlLGEscixpLG8scyxsLGY9MCxjPW51bGwsdSxkLGg7aWYoZT1oR2UuZXhlYyh0KSxlPT09bnVsbCYmKGU9bUdlLmV4ZWModCkpLGU9PT1udWxsKXRocm93IG5ldyBFcnJvcigiRGF0ZSByZXNvbHZlIGVycm9yIik7aWYoYT0rZVsxXSxyPStlWzJdLTEsaT0rZVszXSwhZVs0XSlyZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoYSxyLGkpKTtpZihvPStlWzRdLHM9K2VbNV0sbD0rZVs2XSxlWzddKXtmb3IoZj1lWzddLnNsaWNlKDAsMyk7Zi5sZW5ndGg8MzspZis9IjAiO2Y9K2Z9cmV0dXJuIGVbOV0mJih1PStlWzEwXSxkPSsoZVsxMV18fDApLGM9KHUqNjArZCkqNmU0LGVbOV09PT0iLSImJihjPS1jKSksaD1uZXcgRGF0ZShEYXRlLlVUQyhhLHIsaSxvLHMsbCxmKSksYyYmaC5zZXRUaW1lKGguZ2V0VGltZSgpLWMpLGh9ZnVuY3Rpb24gZFp0KHQpe3JldHVybiB0LnRvSVNPU3RyaW5nKCl9Z0dlLmV4cG9ydHM9bmV3IG5adCgidGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wIix7a2luZDoic2NhbGFyIixyZXNvbHZlOmxadCxjb25zdHJ1Y3Q6Y1p0LGluc3RhbmNlT2Y6RGF0ZSxyZXByZXNlbnQ6ZFp0fSl9KTt2YXIgdkdlPWN0KChfVTEsYkdlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZlp0PVIxKCk7ZnVuY3Rpb24gdVp0KHQpe3JldHVybiB0PT09Ijw8Inx8dD09PW51bGx9YkdlLmV4cG9ydHM9bmV3IGZadCgidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6dVp0fSl9KTt2YXIgTUdlPWN0KChBVTEsd0dlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcm47dHJ5e3lHZT1aSSxybj15R2UoImJ1ZmZlciIpLkJ1ZmZlcn1jYXRjaHt9dmFyIHBadD1SMSgpLExRPWBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPQpccmA7ZnVuY3Rpb24gaFp0KHQpe2lmKHQ9PT1udWxsKXJldHVybiExO3ZhciBlLGEscj0wLGk9dC5sZW5ndGgsbz1MUTtmb3IoYT0wO2E8aTthKyspaWYoZT1vLmluZGV4T2YodC5jaGFyQXQoYSkpLCEoZT42NCkpe2lmKGU8MClyZXR1cm4hMTtyKz02fXJldHVybiByJTg9PT0wfWZ1bmN0aW9uIG1adCh0KXt2YXIgZSxhLHI9dC5yZXBsYWNlKC9bXHJcbj1dL2csIiIpLGk9ci5sZW5ndGgsbz1MUSxzPTAsbD1bXTtmb3IoZT0wO2U8aTtlKyspZSU0PT09MCYmZSYmKGwucHVzaChzPj4xNiYyNTUpLGwucHVzaChzPj44JjI1NSksbC5wdXNoKHMmMjU1KSkscz1zPDw2fG8uaW5kZXhPZihyLmNoYXJBdChlKSk7cmV0dXJuIGE9aSU0KjYsYT09PTA/KGwucHVzaChzPj4xNiYyNTUpLGwucHVzaChzPj44JjI1NSksbC5wdXNoKHMmMjU1KSk6YT09PTE4PyhsLnB1c2gocz4+MTAmMjU1KSxsLnB1c2gocz4+MiYyNTUpKTphPT09MTImJmwucHVzaChzPj40JjI1NSkscm4/cm4uZnJvbT9ybi5mcm9tKGwpOm5ldyBybihsKTpsfWZ1bmN0aW9uIGdadCh0KXt2YXIgZT0iIixhPTAscixpLG89dC5sZW5ndGgscz1MUTtmb3Iocj0wO3I8bztyKyspciUzPT09MCYmciYmKGUrPXNbYT4+MTgmNjNdLGUrPXNbYT4+MTImNjNdLGUrPXNbYT4+NiY2M10sZSs9c1thJjYzXSksYT0oYTw8OCkrdFtyXTtyZXR1cm4gaT1vJTMsaT09PTA/KGUrPXNbYT4+MTgmNjNdLGUrPXNbYT4+MTImNjNdLGUrPXNbYT4+NiY2M10sZSs9c1thJjYzXSk6aT09PTI/KGUrPXNbYT4+MTAmNjNdLGUrPXNbYT4+NCY2M10sZSs9c1thPDwyJjYzXSxlKz1zWzY0XSk6aT09PTEmJihlKz1zW2E+PjImNjNdLGUrPXNbYTw8NCY2M10sZSs9c1s2NF0sZSs9c1s2NF0pLGV9ZnVuY3Rpb24geFp0KHQpe3JldHVybiBybiYmcm4uaXNCdWZmZXIodCl9d0dlLmV4cG9ydHM9bmV3IHBadCgidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOmhadCxjb25zdHJ1Y3Q6bVp0LHByZWRpY2F0ZTp4WnQscmVwcmVzZW50OmdadH0pO3ZhciB5R2V9KTt2YXIga0dlPWN0KChEVTEsekdlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYlp0PVIxKCksdlp0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkseVp0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gd1p0KHQpe2lmKHQ9PT1udWxsKXJldHVybiEwO3ZhciBlPVtdLGEscixpLG8scyxsPXQ7Zm9yKGE9MCxyPWwubGVuZ3RoO2E8cjthKz0xKXtpZihpPWxbYV0scz0hMSx5WnQuY2FsbChpKSE9PSJbb2JqZWN0IE9iamVjdF0iKXJldHVybiExO2ZvcihvIGluIGkpaWYodlp0LmNhbGwoaSxvKSlpZighcylzPSEwO2Vsc2UgcmV0dXJuITE7aWYoIXMpcmV0dXJuITE7aWYoZS5pbmRleE9mKG8pPT09LTEpZS5wdXNoKG8pO2Vsc2UgcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gTVp0KHQpe3JldHVybiB0IT09bnVsbD90OltdfXpHZS5leHBvcnRzPW5ldyBiWnQoInRhZzp5YW1sLm9yZywyMDAyOm9tYXAiLHtraW5kOiJzZXF1ZW5jZSIscmVzb2x2ZTp3WnQsY29uc3RydWN0Ok1adH0pfSk7dmFyIENHZT1jdCgoRVUxLFNHZSk9PnsidXNlIHN0cmljdCI7dmFyIHpadD1SMSgpLGtadD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIFNadCh0KXtpZih0PT09bnVsbClyZXR1cm4hMDt2YXIgZSxhLHIsaSxvLHM9dDtmb3Iobz1uZXcgQXJyYXkocy5sZW5ndGgpLGU9MCxhPXMubGVuZ3RoO2U8YTtlKz0xKXtpZihyPXNbZV0sa1p0LmNhbGwocikhPT0iW29iamVjdCBPYmplY3RdInx8KGk9T2JqZWN0LmtleXMociksaS5sZW5ndGghPT0xKSlyZXR1cm4hMTtvW2VdPVtpWzBdLHJbaVswXV1dfXJldHVybiEwfWZ1bmN0aW9uIENadCh0KXtpZih0PT09bnVsbClyZXR1cm5bXTt2YXIgZSxhLHIsaSxvLHM9dDtmb3Iobz1uZXcgQXJyYXkocy5sZW5ndGgpLGU9MCxhPXMubGVuZ3RoO2U8YTtlKz0xKXI9c1tlXSxpPU9iamVjdC5rZXlzKHIpLG9bZV09W2lbMF0scltpWzBdXV07cmV0dXJuIG99U0dlLmV4cG9ydHM9bmV3IHpadCgidGFnOnlhbWwub3JnLDIwMDI6cGFpcnMiLHtraW5kOiJzZXF1ZW5jZSIscmVzb2x2ZTpTWnQsY29uc3RydWN0OkNadH0pfSk7dmFyIFRHZT1jdCgoTlUxLExHZSk9PnsidXNlIHN0cmljdCI7dmFyIExadD1SMSgpLFRadD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIF9adCh0KXtpZih0PT09bnVsbClyZXR1cm4hMDt2YXIgZSxhPXQ7Zm9yKGUgaW4gYSlpZihUWnQuY2FsbChhLGUpJiZhW2VdIT09bnVsbClyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBBWnQodCl7cmV0dXJuIHQhPT1udWxsP3Q6e319TEdlLmV4cG9ydHM9bmV3IExadCgidGFnOnlhbWwub3JnLDIwMDI6c2V0Iix7a2luZDoibWFwcGluZyIscmVzb2x2ZTpfWnQsY29uc3RydWN0OkFadH0pfSk7dmFyIGg2PWN0KChQVTEsX0dlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgJFp0PWFuKCk7X0dlLmV4cG9ydHM9bmV3ICRadCh7aW5jbHVkZTpbQ1EoKV0saW1wbGljaXQ6W3hHZSgpLHZHZSgpXSxleHBsaWNpdDpbTUdlKCksa0dlKCksQ0dlKCksVEdlKCldfSl9KTt2YXIgJEdlPWN0KChJVTEsQUdlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRFp0PVIxKCk7ZnVuY3Rpb24gRVp0KCl7cmV0dXJuITB9ZnVuY3Rpb24gTlp0KCl7fWZ1bmN0aW9uIFBadCgpe3JldHVybiIifWZ1bmN0aW9uIEladCh0KXtyZXR1cm4gdHlwZW9mIHQ+InUifUFHZS5leHBvcnRzPW5ldyBEWnQoInRhZzp5YW1sLm9yZywyMDAyOmpzL3VuZGVmaW5lZCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpFWnQsY29uc3RydWN0Ok5adCxwcmVkaWNhdGU6SVp0LHJlcHJlc2VudDpQWnR9KX0pO3ZhciBFR2U9Y3QoKEZVMSxER2UpPT57InVzZSBzdHJpY3QiO3ZhciBGWnQ9UjEoKTtmdW5jdGlvbiBPWnQodCl7aWYodD09PW51bGx8fHQubGVuZ3RoPT09MClyZXR1cm4hMTt2YXIgZT10LGE9L1wvKFtnaW1dKikkLy5leGVjKHQpLHI9IiI7cmV0dXJuIShlWzBdPT09Ii8iJiYoYSYmKHI9YVsxXSksci5sZW5ndGg+M3x8ZVtlLmxlbmd0aC1yLmxlbmd0aC0xXSE9PSIvIikpfWZ1bmN0aW9uIEJadCh0KXt2YXIgZT10LGE9L1wvKFtnaW1dKikkLy5leGVjKHQpLHI9IiI7cmV0dXJuIGVbMF09PT0iLyImJihhJiYocj1hWzFdKSxlPWUuc2xpY2UoMSxlLmxlbmd0aC1yLmxlbmd0aC0xKSksbmV3IFJlZ0V4cChlLHIpfWZ1bmN0aW9uIFJadCh0KXt2YXIgZT0iLyIrdC5zb3VyY2UrIi8iO3JldHVybiB0Lmdsb2JhbCYmKGUrPSJnIiksdC5tdWx0aWxpbmUmJihlKz0ibSIpLHQuaWdub3JlQ2FzZSYmKGUrPSJpIiksZX1mdW5jdGlvbiBIWnQodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IFJlZ0V4cF0ifURHZS5leHBvcnRzPW5ldyBGWnQoInRhZzp5YW1sLm9yZywyMDAyOmpzL3JlZ2V4cCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpPWnQsY29uc3RydWN0OkJadCxwcmVkaWNhdGU6SFp0LHJlcHJlc2VudDpSWnR9KX0pO3ZhciBJR2U9Y3QoKE9VMSxQR2UpPT57InVzZSBzdHJpY3QiO3ZhciBVUjt0cnl7TkdlPVpJLFVSPU5HZSgiZXNwcmltYSIpfWNhdGNoe3R5cGVvZiB3aW5kb3c8InUiJiYoVVI9d2luZG93LmVzcHJpbWEpfXZhciBxWnQ9UjEoKTtmdW5jdGlvbiBWWnQodCl7aWYodD09PW51bGwpcmV0dXJuITE7dHJ5e3ZhciBlPSIoIit0KyIpIixhPVVSLnBhcnNlKGUse3JhbmdlOiEwfSk7cmV0dXJuIShhLnR5cGUhPT0iUHJvZ3JhbSJ8fGEuYm9keS5sZW5ndGghPT0xfHxhLmJvZHlbMF0udHlwZSE9PSJFeHByZXNzaW9uU3RhdGVtZW50Inx8YS5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbiImJmEuYm9keVswXS5leHByZXNzaW9uLnR5cGUhPT0iRnVuY3Rpb25FeHByZXNzaW9uIil9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIFVadCh0KXt2YXIgZT0iKCIrdCsiKSIsYT1VUi5wYXJzZShlLHtyYW5nZTohMH0pLHI9W10saTtpZihhLnR5cGUhPT0iUHJvZ3JhbSJ8fGEuYm9keS5sZW5ndGghPT0xfHxhLmJvZHlbMF0udHlwZSE9PSJFeHByZXNzaW9uU3RhdGVtZW50Inx8YS5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbiImJmEuYm9keVswXS5leHByZXNzaW9uLnR5cGUhPT0iRnVuY3Rpb25FeHByZXNzaW9uIil0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byByZXNvbHZlIGZ1bmN0aW9uIik7cmV0dXJuIGEuYm9keVswXS5leHByZXNzaW9uLnBhcmFtcy5mb3JFYWNoKGZ1bmN0aW9uKG8pe3IucHVzaChvLm5hbWUpfSksaT1hLmJvZHlbMF0uZXhwcmVzc2lvbi5ib2R5LnJhbmdlLGEuYm9keVswXS5leHByZXNzaW9uLmJvZHkudHlwZT09PSJCbG9ja1N0YXRlbWVudCI/bmV3IEZ1bmN0aW9uKHIsZS5zbGljZShpWzBdKzEsaVsxXS0xKSk6bmV3IEZ1bmN0aW9uKHIsInJldHVybiAiK2Uuc2xpY2UoaVswXSxpWzFdKSl9ZnVuY3Rpb24galp0KHQpe3JldHVybiB0LnRvU3RyaW5nKCl9ZnVuY3Rpb24gV1p0KHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk9PT0iW29iamVjdCBGdW5jdGlvbl0ifVBHZS5leHBvcnRzPW5ldyBxWnQoInRhZzp5YW1sLm9yZywyMDAyOmpzL2Z1bmN0aW9uIix7a2luZDoic2NhbGFyIixyZXNvbHZlOlZadCxjb25zdHJ1Y3Q6VVp0LHByZWRpY2F0ZTpXWnQscmVwcmVzZW50OmpadH0pO3ZhciBOR2V9KTt2YXIgWDg9Y3QoKFJVMSxPR2UpPT57InVzZSBzdHJpY3QiO3ZhciBGR2U9YW4oKTtPR2UuZXhwb3J0cz1GR2UuREVGQVVMVD1uZXcgRkdlKHtpbmNsdWRlOltoNigpXSxleHBsaWNpdDpbJEdlKCksRUdlKCksSUdlKCldfSl9KTt2YXIgaVllPWN0KChIVTEsUTgpPT57InVzZSBzdHJpY3QiO3ZhciB3aT10bigpLEJHZT11NigpLEdadD1qV2UoKSxSR2U9aDYoKSxZWnQ9WDgoKSxQbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGpSPTEsSEdlPTIscUdlPTMsV1I9NCxUUT0xLFpadD0yLFZHZT0zLFhadD0vW1x4MDAtXHgwOFx4MEJceDBDXHgwRS1ceDFGXHg3Ri1ceDg0XHg4Ni1ceDlGXHVGRkZFXHVGRkZGXXxbXHVEODAwLVx1REJGRl0oPyFbXHVEQzAwLVx1REZGRl0pfCg/OlteXHVEODAwLVx1REJGRl18XilbXHVEQzAwLVx1REZGRl0vLFFadD0vW1x4ODVcdTIwMjhcdTIwMjldLyxLWnQ9L1ssXFtcXVx7XH1dLyxVR2U9L14oPzohfCEhfCFbYS16XC1dKyEpJC9pLGpHZT0vXig/OiF8W14sXFtcXVx7XH1dKSg/OiVbMC05YS1mXXsyfXxbMC05YS16XC0jO1wvXD86QCY9XCtcJCxfXC4hflwqJ1woXClcW1xdXSkqJC9pO2Z1bmN0aW9uIFdHZSh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIERyKHQpe3JldHVybiB0PT09MTB8fHQ9PT0xM31mdW5jdGlvbiBvbih0KXtyZXR1cm4gdD09PTl8fHQ9PT0zMn1mdW5jdGlvbiBKMih0KXtyZXR1cm4gdD09PTl8fHQ9PT0zMnx8dD09PTEwfHx0PT09MTN9ZnVuY3Rpb24gbTYodCl7cmV0dXJuIHQ9PT00NHx8dD09PTkxfHx0PT09OTN8fHQ9PT0xMjN8fHQ9PT0xMjV9ZnVuY3Rpb24gSlp0KHQpe3ZhciBlO3JldHVybiA0ODw9dCYmdDw9NTc/dC00ODooZT10fDMyLDk3PD1lJiZlPD0xMDI/ZS05NysxMDotMSl9ZnVuY3Rpb24gZVh0KHQpe3JldHVybiB0PT09MTIwPzI6dD09PTExNz80OnQ9PT04NT84OjB9ZnVuY3Rpb24gdFh0KHQpe3JldHVybiA0ODw9dCYmdDw9NTc/dC00ODotMX1mdW5jdGlvbiBHR2UodCl7cmV0dXJuIHQ9PT00OD8iXDAiOnQ9PT05Nz8iXHgwNyI6dD09PTk4PyJcYiI6dD09PTExNnx8dD09PTk/IgkiOnQ9PT0xMTA/YApgOnQ9PT0xMTg/Ilx2Ijp0PT09MTAyPyJcZiI6dD09PTExND8iXHIiOnQ9PT0xMDE/Ilx4MUIiOnQ9PT0zMj8iICI6dD09PTM0PyciJzp0PT09NDc/Ii8iOnQ9PT05Mj8iXFwiOnQ9PT03OD8iXHg4NSI6dD09PTk1PyJceEEwIjp0PT09NzY/Ilx1MjAyOCI6dD09PTgwPyJcdTIwMjkiOiIifWZ1bmN0aW9uIGFYdCh0KXtyZXR1cm4gdDw9NjU1MzU/U3RyaW5nLmZyb21DaGFyQ29kZSh0KTpTdHJpbmcuZnJvbUNoYXJDb2RlKCh0LTY1NTM2Pj4xMCkrNTUyOTYsKHQtNjU1MzYmMTAyMykrNTYzMjApfWZ1bmN0aW9uIFlHZSh0LGUsYSl7ZT09PSJfX3Byb3RvX18iP09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KTp0W2VdPWF9dmFyIFpHZT1uZXcgQXJyYXkoMjU2KSxYR2U9bmV3IEFycmF5KDI1Nik7Zm9yKHNuPTA7c248MjU2O3NuKyspWkdlW3NuXT1HR2Uoc24pPzE6MCxYR2Vbc25dPUdHZShzbik7ZnVuY3Rpb24gclh0KHQsZSl7dGhpcy5pbnB1dD10LHRoaXMuZmlsZW5hbWU9ZS5maWxlbmFtZXx8bnVsbCx0aGlzLnNjaGVtYT1lLnNjaGVtYXx8WVp0LHRoaXMub25XYXJuaW5nPWUub25XYXJuaW5nfHxudWxsLHRoaXMubGVnYWN5PWUubGVnYWN5fHwhMSx0aGlzLmpzb249ZS5qc29ufHwhMSx0aGlzLmxpc3RlbmVyPWUubGlzdGVuZXJ8fG51bGwsdGhpcy5pbXBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQsdGhpcy50eXBlTWFwPXRoaXMuc2NoZW1hLmNvbXBpbGVkVHlwZU1hcCx0aGlzLmxlbmd0aD10Lmxlbmd0aCx0aGlzLnBvc2l0aW9uPTAsdGhpcy5saW5lPTAsdGhpcy5saW5lU3RhcnQ9MCx0aGlzLmxpbmVJbmRlbnQ9MCx0aGlzLmRvY3VtZW50cz1bXX1mdW5jdGlvbiBRR2UodCxlKXtyZXR1cm4gbmV3IEJHZShlLG5ldyBHWnQodC5maWxlbmFtZSx0LmlucHV0LHQucG9zaXRpb24sdC5saW5lLHQucG9zaXRpb24tdC5saW5lU3RhcnQpKX1mdW5jdGlvbiBhdCh0LGUpe3Rocm93IFFHZSh0LGUpfWZ1bmN0aW9uIEdSKHQsZSl7dC5vbldhcm5pbmcmJnQub25XYXJuaW5nLmNhbGwobnVsbCxRR2UodCxlKSl9dmFyIEtHZT17WUFNTDpmdW5jdGlvbihlLGEscil7dmFyIGksbyxzO2UudmVyc2lvbiE9PW51bGwmJmF0KGUsImR1cGxpY2F0aW9uIG9mICVZQU1MIGRpcmVjdGl2ZSIpLHIubGVuZ3RoIT09MSYmYXQoZSwiWUFNTCBkaXJlY3RpdmUgYWNjZXB0cyBleGFjdGx5IG9uZSBhcmd1bWVudCIpLGk9L14oWzAtOV0rKVwuKFswLTldKykkLy5leGVjKHJbMF0pLGk9PT1udWxsJiZhdChlLCJpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZSIpLG89cGFyc2VJbnQoaVsxXSwxMCkscz1wYXJzZUludChpWzJdLDEwKSxvIT09MSYmYXQoZSwidW5hY2NlcHRhYmxlIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQiKSxlLnZlcnNpb249clswXSxlLmNoZWNrTGluZUJyZWFrcz1zPDIscyE9PTEmJnMhPT0yJiZHUihlLCJ1bnN1cHBvcnRlZCBZQU1MIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50Iil9LFRBRzpmdW5jdGlvbihlLGEscil7dmFyIGksbztyLmxlbmd0aCE9PTImJmF0KGUsIlRBRyBkaXJlY3RpdmUgYWNjZXB0cyBleGFjdGx5IHR3byBhcmd1bWVudHMiKSxpPXJbMF0sbz1yWzFdLFVHZS50ZXN0KGkpfHxhdChlLCJpbGwtZm9ybWVkIHRhZyBoYW5kbGUgKGZpcnN0IGFyZ3VtZW50KSBvZiB0aGUgVEFHIGRpcmVjdGl2ZSIpLFBvLmNhbGwoZS50YWdNYXAsaSkmJmF0KGUsJ3RoZXJlIGlzIGEgcHJldmlvdXNseSBkZWNsYXJlZCBzdWZmaXggZm9yICInK2krJyIgdGFnIGhhbmRsZScpLGpHZS50ZXN0KG8pfHxhdChlLCJpbGwtZm9ybWVkIHRhZyBwcmVmaXggKHNlY29uZCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUiKSxlLnRhZ01hcFtpXT1vfX07ZnVuY3Rpb24gSW8odCxlLGEscil7dmFyIGksbyxzLGw7aWYoZTxhKXtpZihsPXQuaW5wdXQuc2xpY2UoZSxhKSxyKWZvcihpPTAsbz1sLmxlbmd0aDtpPG87aSs9MSlzPWwuY2hhckNvZGVBdChpKSxzPT09OXx8MzI8PXMmJnM8PTExMTQxMTF8fGF0KHQsImV4cGVjdGVkIHZhbGlkIEpTT04gY2hhcmFjdGVyIik7ZWxzZSBYWnQudGVzdChsKSYmYXQodCwidGhlIHN0cmVhbSBjb250YWlucyBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMiKTt0LnJlc3VsdCs9bH19ZnVuY3Rpb24gSkdlKHQsZSxhLHIpe3ZhciBpLG8scyxsO2Zvcih3aS5pc09iamVjdChhKXx8YXQodCwiY2Fubm90IG1lcmdlIG1hcHBpbmdzOyB0aGUgcHJvdmlkZWQgc291cmNlIG9iamVjdCBpcyB1bmFjY2VwdGFibGUiKSxpPU9iamVjdC5rZXlzKGEpLHM9MCxsPWkubGVuZ3RoO3M8bDtzKz0xKW89aVtzXSxQby5jYWxsKGUsbyl8fChZR2UoZSxvLGFbb10pLHJbb109ITApfWZ1bmN0aW9uIGc2KHQsZSxhLHIsaSxvLHMsbCl7dmFyIGYsYztpZihBcnJheS5pc0FycmF5KGkpKWZvcihpPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGkpLGY9MCxjPWkubGVuZ3RoO2Y8YztmKz0xKUFycmF5LmlzQXJyYXkoaVtmXSkmJmF0KHQsIm5lc3RlZCBhcnJheXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW5zaWRlIGtleXMiKSx0eXBlb2YgaT09Im9iamVjdCImJldHZShpW2ZdKT09PSJbb2JqZWN0IE9iamVjdF0iJiYoaVtmXT0iW29iamVjdCBPYmplY3RdIik7aWYodHlwZW9mIGk9PSJvYmplY3QiJiZXR2UoaSk9PT0iW29iamVjdCBPYmplY3RdIiYmKGk9IltvYmplY3QgT2JqZWN0XSIpLGk9U3RyaW5nKGkpLGU9PT1udWxsJiYoZT17fSkscj09PSJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIpaWYoQXJyYXkuaXNBcnJheShvKSlmb3IoZj0wLGM9by5sZW5ndGg7ZjxjO2YrPTEpSkdlKHQsZSxvW2ZdLGEpO2Vsc2UgSkdlKHQsZSxvLGEpO2Vsc2UhdC5qc29uJiYhUG8uY2FsbChhLGkpJiZQby5jYWxsKGUsaSkmJih0LmxpbmU9c3x8dC5saW5lLHQucG9zaXRpb249bHx8dC5wb3NpdGlvbixhdCh0LCJkdXBsaWNhdGVkIG1hcHBpbmcga2V5IikpLFlHZShlLGksbyksZGVsZXRlIGFbaV07cmV0dXJuIGV9ZnVuY3Rpb24gX1EodCl7dmFyIGU7ZT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksZT09PTEwP3QucG9zaXRpb24rKzplPT09MTM/KHQucG9zaXRpb24rKyx0LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik9PT0xMCYmdC5wb3NpdGlvbisrKTphdCh0LCJhIGxpbmUgYnJlYWsgaXMgZXhwZWN0ZWQiKSx0LmxpbmUrPTEsdC5saW5lU3RhcnQ9dC5wb3NpdGlvbn1mdW5jdGlvbiAkMSh0LGUsYSl7Zm9yKHZhciByPTAsaT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7aSE9PTA7KXtmb3IoO29uKGkpOylpPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2lmKGUmJmk9PT0zNSlkbyBpPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO3doaWxlKGkhPT0xMCYmaSE9PTEzJiZpIT09MCk7aWYoRHIoaSkpZm9yKF9RKHQpLGk9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLHIrKyx0LmxpbmVJbmRlbnQ9MDtpPT09MzI7KXQubGluZUluZGVudCsrLGk9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7ZWxzZSBicmVha31yZXR1cm4gYSE9PS0xJiZyIT09MCYmdC5saW5lSW5kZW50PGEmJkdSKHQsImRlZmljaWVudCBpbmRlbnRhdGlvbiIpLHJ9ZnVuY3Rpb24gWVIodCl7dmFyIGU9dC5wb3NpdGlvbixhO3JldHVybiBhPXQuaW5wdXQuY2hhckNvZGVBdChlKSwhISgoYT09PTQ1fHxhPT09NDYpJiZhPT09dC5pbnB1dC5jaGFyQ29kZUF0KGUrMSkmJmE9PT10LmlucHV0LmNoYXJDb2RlQXQoZSsyKSYmKGUrPTMsYT10LmlucHV0LmNoYXJDb2RlQXQoZSksYT09PTB8fEoyKGEpKSl9ZnVuY3Rpb24gQVEodCxlKXtlPT09MT90LnJlc3VsdCs9IiAiOmU+MSYmKHQucmVzdWx0Kz13aS5yZXBlYXQoYApgLGUtMSkpfWZ1bmN0aW9uIGlYdCh0LGUsYSl7dmFyIHIsaSxvLHMsbCxmLGMsdSxkPXQua2luZCxoPXQucmVzdWx0LGc7aWYoZz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksSjIoZyl8fG02KGcpfHxnPT09MzV8fGc9PT0zOHx8Zz09PTQyfHxnPT09MzN8fGc9PT0xMjR8fGc9PT02Mnx8Zz09PTM5fHxnPT09MzR8fGc9PT0zN3x8Zz09PTY0fHxnPT09OTZ8fChnPT09NjN8fGc9PT00NSkmJihpPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKzEpLEoyKGkpfHxhJiZtNihpKSkpcmV0dXJuITE7Zm9yKHQua2luZD0ic2NhbGFyIix0LnJlc3VsdD0iIixvPXM9dC5wb3NpdGlvbixsPSExO2chPT0wOyl7aWYoZz09PTU4KXtpZihpPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKzEpLEoyKGkpfHxhJiZtNihpKSlicmVha31lbHNlIGlmKGc9PT0zNSl7aWYocj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbi0xKSxKMihyKSlicmVha31lbHNle2lmKHQucG9zaXRpb249PT10LmxpbmVTdGFydCYmWVIodCl8fGEmJm02KGcpKWJyZWFrO2lmKERyKGcpKWlmKGY9dC5saW5lLGM9dC5saW5lU3RhcnQsdT10LmxpbmVJbmRlbnQsJDEodCwhMSwtMSksdC5saW5lSW5kZW50Pj1lKXtsPSEwLGc9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pO2NvbnRpbnVlfWVsc2V7dC5wb3NpdGlvbj1zLHQubGluZT1mLHQubGluZVN0YXJ0PWMsdC5saW5lSW5kZW50PXU7YnJlYWt9fWwmJihJbyh0LG8scywhMSksQVEodCx0LmxpbmUtZiksbz1zPXQucG9zaXRpb24sbD0hMSksb24oZyl8fChzPXQucG9zaXRpb24rMSksZz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKX1yZXR1cm4gSW8odCxvLHMsITEpLHQucmVzdWx0PyEwOih0LmtpbmQ9ZCx0LnJlc3VsdD1oLCExKX1mdW5jdGlvbiBvWHQodCxlKXt2YXIgYSxyLGk7aWYoYT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksYSE9PTM5KXJldHVybiExO2Zvcih0LmtpbmQ9InNjYWxhciIsdC5yZXN1bHQ9IiIsdC5wb3NpdGlvbisrLHI9aT10LnBvc2l0aW9uOyhhPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSkhPT0wOylpZihhPT09MzkpaWYoSW8odCxyLHQucG9zaXRpb24sITApLGE9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksYT09PTM5KXI9dC5wb3NpdGlvbix0LnBvc2l0aW9uKyssaT10LnBvc2l0aW9uO2Vsc2UgcmV0dXJuITA7ZWxzZSBEcihhKT8oSW8odCxyLGksITApLEFRKHQsJDEodCwhMSxlKSkscj1pPXQucG9zaXRpb24pOnQucG9zaXRpb249PT10LmxpbmVTdGFydCYmWVIodCk/YXQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik6KHQucG9zaXRpb24rKyxpPXQucG9zaXRpb24pO2F0KHQsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXIiKX1mdW5jdGlvbiBzWHQodCxlKXt2YXIgYSxyLGksbyxzLGw7aWYobD10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksbCE9PTM0KXJldHVybiExO2Zvcih0LmtpbmQ9InNjYWxhciIsdC5yZXN1bHQ9IiIsdC5wb3NpdGlvbisrLGE9cj10LnBvc2l0aW9uOyhsPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSkhPT0wOyl7aWYobD09PTM0KXJldHVybiBJbyh0LGEsdC5wb3NpdGlvbiwhMCksdC5wb3NpdGlvbisrLCEwO2lmKGw9PT05Mil7aWYoSW8odCxhLHQucG9zaXRpb24sITApLGw9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksRHIobCkpJDEodCwhMSxlKTtlbHNlIGlmKGw8MjU2JiZaR2VbbF0pdC5yZXN1bHQrPVhHZVtsXSx0LnBvc2l0aW9uKys7ZWxzZSBpZigocz1lWHQobCkpPjApe2ZvcihpPXMsbz0wO2k+MDtpLS0pbD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSwocz1KWnQobCkpPj0wP289KG88PDQpK3M6YXQodCwiZXhwZWN0ZWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVyIik7dC5yZXN1bHQrPWFYdChvKSx0LnBvc2l0aW9uKyt9ZWxzZSBhdCh0LCJ1bmtub3duIGVzY2FwZSBzZXF1ZW5jZSIpO2E9cj10LnBvc2l0aW9ufWVsc2UgRHIobCk/KElvKHQsYSxyLCEwKSxBUSh0LCQxKHQsITEsZSkpLGE9cj10LnBvc2l0aW9uKTp0LnBvc2l0aW9uPT09dC5saW5lU3RhcnQmJllSKHQpP2F0KHQsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhciIpOih0LnBvc2l0aW9uKysscj10LnBvc2l0aW9uKX1hdCh0LCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIil9ZnVuY3Rpb24gblh0KHQsZSl7dmFyIGE9ITAscixpPXQudGFnLG8scz10LmFuY2hvcixsLGYsYyx1LGQsaD17fSxnLGIseCxtO2lmKG09dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLG09PT05MSlmPTkzLGQ9ITEsbz1bXTtlbHNlIGlmKG09PT0xMjMpZj0xMjUsZD0hMCxvPXt9O2Vsc2UgcmV0dXJuITE7Zm9yKHQuYW5jaG9yIT09bnVsbCYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT1vKSxtPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO20hPT0wOyl7aWYoJDEodCwhMCxlKSxtPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxtPT09ZilyZXR1cm4gdC5wb3NpdGlvbisrLHQudGFnPWksdC5hbmNob3I9cyx0LmtpbmQ9ZD8ibWFwcGluZyI6InNlcXVlbmNlIix0LnJlc3VsdD1vLCEwO2F8fGF0KHQsIm1pc3NlZCBjb21tYSBiZXR3ZWVuIGZsb3cgY29sbGVjdGlvbiBlbnRyaWVzIiksYj1nPXg9bnVsbCxjPXU9ITEsbT09PTYzJiYobD10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKSxKMihsKSYmKGM9dT0hMCx0LnBvc2l0aW9uKyssJDEodCwhMCxlKSkpLHI9dC5saW5lLHg2KHQsZSxqUiwhMSwhMCksYj10LnRhZyxnPXQucmVzdWx0LCQxKHQsITAsZSksbT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksKHV8fHQubGluZT09PXIpJiZtPT09NTgmJihjPSEwLG09dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksJDEodCwhMCxlKSx4Nih0LGUsalIsITEsITApLHg9dC5yZXN1bHQpLGQ/ZzYodCxvLGgsYixnLHgpOmM/by5wdXNoKGc2KHQsbnVsbCxoLGIsZyx4KSk6by5wdXNoKGcpLCQxKHQsITAsZSksbT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksbT09PTQ0PyhhPSEwLG09dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikpOmE9ITF9YXQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBmbG93IGNvbGxlY3Rpb24iKX1mdW5jdGlvbiBsWHQodCxlKXt2YXIgYSxyLGk9VFEsbz0hMSxzPSExLGw9ZSxmPTAsYz0hMSx1LGQ7aWYoZD10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksZD09PTEyNClyPSExO2Vsc2UgaWYoZD09PTYyKXI9ITA7ZWxzZSByZXR1cm4hMTtmb3IodC5raW5kPSJzY2FsYXIiLHQucmVzdWx0PSIiO2QhPT0wOylpZihkPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLGQ9PT00M3x8ZD09PTQ1KVRRPT09aT9pPWQ9PT00Mz9WR2U6Wlp0OmF0KHQsInJlcGVhdCBvZiBhIGNob21waW5nIG1vZGUgaWRlbnRpZmllciIpO2Vsc2UgaWYoKHU9dFh0KGQpKT49MCl1PT09MD9hdCh0LCJiYWQgZXhwbGljaXQgaW5kZW50YXRpb24gd2lkdGggb2YgYSBibG9jayBzY2FsYXI7IGl0IGNhbm5vdCBiZSBsZXNzIHRoYW4gb25lIik6cz9hdCh0LCJyZXBlYXQgb2YgYW4gaW5kZW50YXRpb24gd2lkdGggaWRlbnRpZmllciIpOihsPWUrdS0xLHM9ITApO2Vsc2UgYnJlYWs7aWYob24oZCkpe2RvIGQ9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUob24oZCkpO2lmKGQ9PT0zNSlkbyBkPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO3doaWxlKCFEcihkKSYmZCE9PTApfWZvcig7ZCE9PTA7KXtmb3IoX1EodCksdC5saW5lSW5kZW50PTAsZD10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7KCFzfHx0LmxpbmVJbmRlbnQ8bCkmJmQ9PT0zMjspdC5saW5lSW5kZW50KyssZD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtpZighcyYmdC5saW5lSW5kZW50PmwmJihsPXQubGluZUluZGVudCksRHIoZCkpe2YrKztjb250aW51ZX1pZih0LmxpbmVJbmRlbnQ8bCl7aT09PVZHZT90LnJlc3VsdCs9d2kucmVwZWF0KGAKYCxvPzErZjpmKTppPT09VFEmJm8mJih0LnJlc3VsdCs9YApgKTticmVha31mb3Iocj9vbihkKT8oYz0hMCx0LnJlc3VsdCs9d2kucmVwZWF0KGAKYCxvPzErZjpmKSk6Yz8oYz0hMSx0LnJlc3VsdCs9d2kucmVwZWF0KGAKYCxmKzEpKTpmPT09MD9vJiYodC5yZXN1bHQrPSIgIik6dC5yZXN1bHQrPXdpLnJlcGVhdChgCmAsZik6dC5yZXN1bHQrPXdpLnJlcGVhdChgCmAsbz8xK2Y6Ziksbz0hMCxzPSEwLGY9MCxhPXQucG9zaXRpb247IURyKGQpJiZkIT09MDspZD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtJbyh0LGEsdC5wb3NpdGlvbiwhMSl9cmV0dXJuITB9ZnVuY3Rpb24gZVllKHQsZSl7dmFyIGEscj10LnRhZyxpPXQuYW5jaG9yLG89W10scyxsPSExLGY7Zm9yKHQuYW5jaG9yIT09bnVsbCYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT1vKSxmPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTtmIT09MCYmIShmIT09NDV8fChzPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKzEpLCFKMihzKSkpOyl7aWYobD0hMCx0LnBvc2l0aW9uKyssJDEodCwhMCwtMSkmJnQubGluZUluZGVudDw9ZSl7by5wdXNoKG51bGwpLGY9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pO2NvbnRpbnVlfWlmKGE9dC5saW5lLHg2KHQsZSxxR2UsITEsITApLG8ucHVzaCh0LnJlc3VsdCksJDEodCwhMCwtMSksZj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksKHQubGluZT09PWF8fHQubGluZUluZGVudD5lKSYmZiE9PTApYXQodCwiYmFkIGluZGVudGF0aW9uIG9mIGEgc2VxdWVuY2UgZW50cnkiKTtlbHNlIGlmKHQubGluZUluZGVudDxlKWJyZWFrfXJldHVybiBsPyh0LnRhZz1yLHQuYW5jaG9yPWksdC5raW5kPSJzZXF1ZW5jZSIsdC5yZXN1bHQ9bywhMCk6ITF9ZnVuY3Rpb24gY1h0KHQsZSxhKXt2YXIgcixpLG8scyxsPXQudGFnLGY9dC5hbmNob3IsYz17fSx1PXt9LGQ9bnVsbCxoPW51bGwsZz1udWxsLGI9ITEseD0hMSxtO2Zvcih0LmFuY2hvciE9PW51bGwmJih0LmFuY2hvck1hcFt0LmFuY2hvcl09YyksbT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7bSE9PTA7KXtpZihyPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKzEpLG89dC5saW5lLHM9dC5wb3NpdGlvbiwobT09PTYzfHxtPT09NTgpJiZKMihyKSltPT09NjM/KGImJihnNih0LGMsdSxkLGgsbnVsbCksZD1oPWc9bnVsbCkseD0hMCxiPSEwLGk9ITApOmI/KGI9ITEsaT0hMCk6YXQodCwiaW5jb21wbGV0ZSBleHBsaWNpdCBtYXBwaW5nIHBhaXI7IGEga2V5IG5vZGUgaXMgbWlzc2VkOyBvciBmb2xsb3dlZCBieSBhIG5vbi10YWJ1bGF0ZWQgZW1wdHkgbGluZSIpLHQucG9zaXRpb24rPTEsbT1yO2Vsc2UgaWYoeDYodCxhLEhHZSwhMSwhMCkpaWYodC5saW5lPT09byl7Zm9yKG09dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pO29uKG0pOyltPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2lmKG09PT01OCltPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLEoyKG0pfHxhdCh0LCJhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIGV4cGVjdGVkIGFmdGVyIHRoZSBrZXktdmFsdWUgc2VwYXJhdG9yIHdpdGhpbiBhIGJsb2NrIG1hcHBpbmciKSxiJiYoZzYodCxjLHUsZCxoLG51bGwpLGQ9aD1nPW51bGwpLHg9ITAsYj0hMSxpPSExLGQ9dC50YWcsaD10LnJlc3VsdDtlbHNlIGlmKHgpYXQodCwiY2FuIG5vdCByZWFkIGFuIGltcGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBjb2xvbiBpcyBtaXNzZWQiKTtlbHNlIHJldHVybiB0LnRhZz1sLHQuYW5jaG9yPWYsITB9ZWxzZSBpZih4KWF0KHQsImNhbiBub3QgcmVhZCBhIGJsb2NrIG1hcHBpbmcgZW50cnk7IGEgbXVsdGlsaW5lIGtleSBtYXkgbm90IGJlIGFuIGltcGxpY2l0IGtleSIpO2Vsc2UgcmV0dXJuIHQudGFnPWwsdC5hbmNob3I9ZiwhMDtlbHNlIGJyZWFrO2lmKCh0LmxpbmU9PT1vfHx0LmxpbmVJbmRlbnQ+ZSkmJih4Nih0LGUsV1IsITAsaSkmJihiP2g9dC5yZXN1bHQ6Zz10LnJlc3VsdCksYnx8KGc2KHQsYyx1LGQsaCxnLG8scyksZD1oPWc9bnVsbCksJDEodCwhMCwtMSksbT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbikpLHQubGluZUluZGVudD5lJiZtIT09MClhdCh0LCJiYWQgaW5kZW50YXRpb24gb2YgYSBtYXBwaW5nIGVudHJ5Iik7ZWxzZSBpZih0LmxpbmVJbmRlbnQ8ZSlicmVha31yZXR1cm4gYiYmZzYodCxjLHUsZCxoLG51bGwpLHgmJih0LnRhZz1sLHQuYW5jaG9yPWYsdC5raW5kPSJtYXBwaW5nIix0LnJlc3VsdD1jKSx4fWZ1bmN0aW9uIGRYdCh0KXt2YXIgZSxhPSExLHI9ITEsaSxvLHM7aWYocz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbikscyE9PTMzKXJldHVybiExO2lmKHQudGFnIT09bnVsbCYmYXQodCwiZHVwbGljYXRpb24gb2YgYSB0YWcgcHJvcGVydHkiKSxzPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLHM9PT02MD8oYT0hMCxzPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pKTpzPT09MzM/KHI9ITAsaT0iISEiLHM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikpOmk9IiEiLGU9dC5wb3NpdGlvbixhKXtkbyBzPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO3doaWxlKHMhPT0wJiZzIT09NjIpO3QucG9zaXRpb248dC5sZW5ndGg/KG89dC5pbnB1dC5zbGljZShlLHQucG9zaXRpb24pLHM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikpOmF0KHQsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgdmVyYmF0aW0gdGFnIil9ZWxzZXtmb3IoO3MhPT0wJiYhSjIocyk7KXM9PT0zMyYmKHI/YXQodCwidGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBleGNsYW1hdGlvbiBtYXJrcyIpOihpPXQuaW5wdXQuc2xpY2UoZS0xLHQucG9zaXRpb24rMSksVUdlLnRlc3QoaSl8fGF0KHQsIm5hbWVkIHRhZyBoYW5kbGUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzIikscj0hMCxlPXQucG9zaXRpb24rMSkpLHM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7bz10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbiksS1p0LnRlc3QobykmJmF0KHQsInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVycyIpfXJldHVybiBvJiYhakdlLnRlc3QobykmJmF0KHQsInRhZyBuYW1lIGNhbm5vdCBjb250YWluIHN1Y2ggY2hhcmFjdGVyczogIitvKSxhP3QudGFnPW86UG8uY2FsbCh0LnRhZ01hcCxpKT90LnRhZz10LnRhZ01hcFtpXStvOmk9PT0iISI/dC50YWc9IiEiK286aT09PSIhISI/dC50YWc9InRhZzp5YW1sLm9yZywyMDAyOiIrbzphdCh0LCd1bmRlY2xhcmVkIHRhZyBoYW5kbGUgIicraSsnIicpLCEwfWZ1bmN0aW9uIGZYdCh0KXt2YXIgZSxhO2lmKGE9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLGEhPT0zOClyZXR1cm4hMTtmb3IodC5hbmNob3IhPT1udWxsJiZhdCh0LCJkdXBsaWNhdGlvbiBvZiBhbiBhbmNob3IgcHJvcGVydHkiKSxhPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLGU9dC5wb3NpdGlvbjthIT09MCYmIUoyKGEpJiYhbTYoYSk7KWE9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7cmV0dXJuIHQucG9zaXRpb249PT1lJiZhdCh0LCJuYW1lIG9mIGFuIGFuY2hvciBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIiksdC5hbmNob3I9dC5pbnB1dC5zbGljZShlLHQucG9zaXRpb24pLCEwfWZ1bmN0aW9uIHVYdCh0KXt2YXIgZSxhLHI7aWYocj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksciE9PTQyKXJldHVybiExO2ZvcihyPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLGU9dC5wb3NpdGlvbjtyIT09MCYmIUoyKHIpJiYhbTYocik7KXI9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7cmV0dXJuIHQucG9zaXRpb249PT1lJiZhdCh0LCJuYW1lIG9mIGFuIGFsaWFzIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIiKSxhPXQuaW5wdXQuc2xpY2UoZSx0LnBvc2l0aW9uKSxQby5jYWxsKHQuYW5jaG9yTWFwLGEpfHxhdCh0LCd1bmlkZW50aWZpZWQgYWxpYXMgIicrYSsnIicpLHQucmVzdWx0PXQuYW5jaG9yTWFwW2FdLCQxKHQsITAsLTEpLCEwfWZ1bmN0aW9uIHg2KHQsZSxhLHIsaSl7dmFyIG8scyxsLGY9MSxjPSExLHU9ITEsZCxoLGcsYix4O2lmKHQubGlzdGVuZXIhPT1udWxsJiZ0Lmxpc3RlbmVyKCJvcGVuIix0KSx0LnRhZz1udWxsLHQuYW5jaG9yPW51bGwsdC5raW5kPW51bGwsdC5yZXN1bHQ9bnVsbCxvPXM9bD1XUj09PWF8fHFHZT09PWEsciYmJDEodCwhMCwtMSkmJihjPSEwLHQubGluZUluZGVudD5lP2Y9MTp0LmxpbmVJbmRlbnQ9PT1lP2Y9MDp0LmxpbmVJbmRlbnQ8ZSYmKGY9LTEpKSxmPT09MSlmb3IoO2RYdCh0KXx8Zlh0KHQpOykkMSh0LCEwLC0xKT8oYz0hMCxsPW8sdC5saW5lSW5kZW50PmU/Zj0xOnQubGluZUluZGVudD09PWU/Zj0wOnQubGluZUluZGVudDxlJiYoZj0tMSkpOmw9ITE7aWYobCYmKGw9Y3x8aSksKGY9PT0xfHxXUj09PWEpJiYoalI9PT1hfHxIR2U9PT1hP2I9ZTpiPWUrMSx4PXQucG9zaXRpb24tdC5saW5lU3RhcnQsZj09PTE/bCYmKGVZZSh0LHgpfHxjWHQodCx4LGIpKXx8blh0KHQsYik/dT0hMDoocyYmbFh0KHQsYil8fG9YdCh0LGIpfHxzWHQodCxiKT91PSEwOnVYdCh0KT8odT0hMCwodC50YWchPT1udWxsfHx0LmFuY2hvciE9PW51bGwpJiZhdCh0LCJhbGlhcyBub2RlIHNob3VsZCBub3QgaGF2ZSBhbnkgcHJvcGVydGllcyIpKTppWHQodCxiLGpSPT09YSkmJih1PSEwLHQudGFnPT09bnVsbCYmKHQudGFnPSI/IikpLHQuYW5jaG9yIT09bnVsbCYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT10LnJlc3VsdCkpOmY9PT0wJiYodT1sJiZlWWUodCx4KSkpLHQudGFnIT09bnVsbCYmdC50YWchPT0iISIpaWYodC50YWc9PT0iPyIpe2Zvcih0LnJlc3VsdCE9PW51bGwmJnQua2luZCE9PSJzY2FsYXIiJiZhdCh0LCd1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPD8+IHRhZzsgaXQgc2hvdWxkIGJlICJzY2FsYXIiLCBub3QgIicrdC5raW5kKyciJyksZD0wLGg9dC5pbXBsaWNpdFR5cGVzLmxlbmd0aDtkPGg7ZCs9MSlpZihnPXQuaW1wbGljaXRUeXBlc1tkXSxnLnJlc29sdmUodC5yZXN1bHQpKXt0LnJlc3VsdD1nLmNvbnN0cnVjdCh0LnJlc3VsdCksdC50YWc9Zy50YWcsdC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXQucmVzdWx0KTticmVha319ZWxzZSBQby5jYWxsKHQudHlwZU1hcFt0LmtpbmR8fCJmYWxsYmFjayJdLHQudGFnKT8oZz10LnR5cGVNYXBbdC5raW5kfHwiZmFsbGJhY2siXVt0LnRhZ10sdC5yZXN1bHQhPT1udWxsJiZnLmtpbmQhPT10LmtpbmQmJmF0KHQsInVuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8Iit0LnRhZysnPiB0YWc7IGl0IHNob3VsZCBiZSAiJytnLmtpbmQrJyIsIG5vdCAiJyt0LmtpbmQrJyInKSxnLnJlc29sdmUodC5yZXN1bHQpPyh0LnJlc3VsdD1nLmNvbnN0cnVjdCh0LnJlc3VsdCksdC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXQucmVzdWx0KSk6YXQodCwiY2Fubm90IHJlc29sdmUgYSBub2RlIHdpdGggITwiK3QudGFnKyI+IGV4cGxpY2l0IHRhZyIpKTphdCh0LCJ1bmtub3duIHRhZyAhPCIrdC50YWcrIj4iKTtyZXR1cm4gdC5saXN0ZW5lciE9PW51bGwmJnQubGlzdGVuZXIoImNsb3NlIix0KSx0LnRhZyE9PW51bGx8fHQuYW5jaG9yIT09bnVsbHx8dX1mdW5jdGlvbiBwWHQodCl7dmFyIGU9dC5wb3NpdGlvbixhLHIsaSxvPSExLHM7Zm9yKHQudmVyc2lvbj1udWxsLHQuY2hlY2tMaW5lQnJlYWtzPXQubGVnYWN5LHQudGFnTWFwPXt9LHQuYW5jaG9yTWFwPXt9OyhzPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSkhPT0wJiYoJDEodCwhMCwtMSkscz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksISh0LmxpbmVJbmRlbnQ+MHx8cyE9PTM3KSk7KXtmb3Iobz0hMCxzPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLGE9dC5wb3NpdGlvbjtzIT09MCYmIUoyKHMpOylzPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2ZvcihyPXQuaW5wdXQuc2xpY2UoYSx0LnBvc2l0aW9uKSxpPVtdLHIubGVuZ3RoPDEmJmF0KHQsImRpcmVjdGl2ZSBuYW1lIG11c3Qgbm90IGJlIGxlc3MgdGhhbiBvbmUgY2hhcmFjdGVyIGluIGxlbmd0aCIpO3MhPT0wOyl7Zm9yKDtvbihzKTspcz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtpZihzPT09MzUpe2RvIHM9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUocyE9PTAmJiFEcihzKSk7YnJlYWt9aWYoRHIocykpYnJlYWs7Zm9yKGE9dC5wb3NpdGlvbjtzIT09MCYmIUoyKHMpOylzPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2kucHVzaCh0LmlucHV0LnNsaWNlKGEsdC5wb3NpdGlvbikpfXMhPT0wJiZfUSh0KSxQby5jYWxsKEtHZSxyKT9LR2Vbcl0odCxyLGkpOkdSKHQsJ3Vua25vd24gZG9jdW1lbnQgZGlyZWN0aXZlICInK3IrJyInKX1pZigkMSh0LCEwLC0xKSx0LmxpbmVJbmRlbnQ9PT0wJiZ0LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik9PT00NSYmdC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSk9PT00NSYmdC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMik9PT00NT8odC5wb3NpdGlvbis9MywkMSh0LCEwLC0xKSk6byYmYXQodCwiZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZCIpLHg2KHQsdC5saW5lSW5kZW50LTEsV1IsITEsITApLCQxKHQsITAsLTEpLHQuY2hlY2tMaW5lQnJlYWtzJiZRWnQudGVzdCh0LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbikpJiZHUih0LCJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQiKSx0LmRvY3VtZW50cy5wdXNoKHQucmVzdWx0KSx0LnBvc2l0aW9uPT09dC5saW5lU3RhcnQmJllSKHQpKXt0LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik9PT00NiYmKHQucG9zaXRpb24rPTMsJDEodCwhMCwtMSkpO3JldHVybn1pZih0LnBvc2l0aW9uPHQubGVuZ3RoLTEpYXQodCwiZW5kIG9mIHRoZSBzdHJlYW0gb3IgYSBkb2N1bWVudCBzZXBhcmF0b3IgaXMgZXhwZWN0ZWQiKTtlbHNlIHJldHVybn1mdW5jdGlvbiB0WWUodCxlKXt0PVN0cmluZyh0KSxlPWV8fHt9LHQubGVuZ3RoIT09MCYmKHQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKSE9PTEwJiZ0LmNoYXJDb2RlQXQodC5sZW5ndGgtMSkhPT0xMyYmKHQrPWAKYCksdC5jaGFyQ29kZUF0KDApPT09NjUyNzkmJih0PXQuc2xpY2UoMSkpKTt2YXIgYT1uZXcgclh0KHQsZSkscj10LmluZGV4T2YoIlwwIik7Zm9yKHIhPT0tMSYmKGEucG9zaXRpb249cixhdChhLCJudWxsIGJ5dGUgaXMgbm90IGFsbG93ZWQgaW4gaW5wdXQiKSksYS5pbnB1dCs9IlwwIjthLmlucHV0LmNoYXJDb2RlQXQoYS5wb3NpdGlvbik9PT0zMjspYS5saW5lSW5kZW50Kz0xLGEucG9zaXRpb24rPTE7Zm9yKDthLnBvc2l0aW9uPGEubGVuZ3RoLTE7KXBYdChhKTtyZXR1cm4gYS5kb2N1bWVudHN9ZnVuY3Rpb24gYVllKHQsZSxhKXtlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiJiZ0eXBlb2YgYT4idSImJihhPWUsZT1udWxsKTt2YXIgcj10WWUodCxhKTtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIilyZXR1cm4gcjtmb3IodmFyIGk9MCxvPXIubGVuZ3RoO2k8bztpKz0xKWUocltpXSl9ZnVuY3Rpb24gclllKHQsZSl7dmFyIGE9dFllKHQsZSk7aWYoYS5sZW5ndGghPT0wKXtpZihhLmxlbmd0aD09PTEpcmV0dXJuIGFbMF07dGhyb3cgbmV3IEJHZSgiZXhwZWN0ZWQgYSBzaW5nbGUgZG9jdW1lbnQgaW4gdGhlIHN0cmVhbSwgYnV0IGZvdW5kIG1vcmUiKX19ZnVuY3Rpb24gaFh0KHQsZSxhKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbCYmdHlwZW9mIGE+InUiJiYoYT1lLGU9bnVsbCksYVllKHQsZSx3aS5leHRlbmQoe3NjaGVtYTpSR2V9LGEpKX1mdW5jdGlvbiBtWHQodCxlKXtyZXR1cm4gclllKHQsd2kuZXh0ZW5kKHtzY2hlbWE6UkdlfSxlKSl9UTguZXhwb3J0cy5sb2FkQWxsPWFZZSxROC5leHBvcnRzLmxvYWQ9clllLFE4LmV4cG9ydHMuc2FmZUxvYWRBbGw9aFh0LFE4LmV4cG9ydHMuc2FmZUxvYWQ9bVh0O3ZhciBzbn0pO3ZhciBMWWU9Y3QoKHFVMSxOUSk9PnsidXNlIHN0cmljdCI7dmFyIEs4PXRuKCksSjg9dTYoKSxnWHQ9WDgoKSx4WHQ9aDYoKSxvWWU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxzWWU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxiWHQ9OSxlZD0xMCx2WHQ9MTMseVh0PTMyLHdYdD0zMyxNWHQ9MzQsblllPTM1LHpYdD0zNyxrWHQ9MzgsU1h0PTM5LENYdD00MixsWWU9NDQsTFh0PTQ1LGNZZT01OCxUWHQ9NjEsX1h0PTYyLEFYdD02MywkWHQ9NjQsZFllPTkxLGZZZT05MyxEWHQ9OTYsdVllPTEyMyxFWHQ9MTI0LHBZZT0xMjUsejI9e307ejJbMF09IlxcMCIsejJbN109IlxcYSIsejJbOF09IlxcYiIsejJbOV09IlxcdCIsejJbMTBdPSJcXG4iLHoyWzExXT0iXFx2Iix6MlsxMl09IlxcZiIsejJbMTNdPSJcXHIiLHoyWzI3XT0iXFxlIix6MlszNF09J1xcIicsejJbOTJdPSJcXFxcIix6MlsxMzNdPSJcXE4iLHoyWzE2MF09IlxcXyIsejJbODIzMl09IlxcTCIsejJbODIzM109IlxcUCI7dmFyIE5YdD1bInkiLCJZIiwieWVzIiwiWWVzIiwiWUVTIiwib24iLCJPbiIsIk9OIiwibiIsIk4iLCJubyIsIk5vIiwiTk8iLCJvZmYiLCJPZmYiLCJPRkYiXTtmdW5jdGlvbiBQWHQodCxlKXt2YXIgYSxyLGksbyxzLGwsZjtpZihlPT09bnVsbClyZXR1cm57fTtmb3IoYT17fSxyPU9iamVjdC5rZXlzKGUpLGk9MCxvPXIubGVuZ3RoO2k8bztpKz0xKXM9cltpXSxsPVN0cmluZyhlW3NdKSxzLnNsaWNlKDAsMik9PT0iISEiJiYocz0idGFnOnlhbWwub3JnLDIwMDI6IitzLnNsaWNlKDIpKSxmPXQuY29tcGlsZWRUeXBlTWFwLmZhbGxiYWNrW3NdLGYmJnNZZS5jYWxsKGYuc3R5bGVBbGlhc2VzLGwpJiYobD1mLnN0eWxlQWxpYXNlc1tsXSksYVtzXT1sO3JldHVybiBhfWZ1bmN0aW9uIGhZZSh0KXt2YXIgZSxhLHI7aWYoZT10LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLHQ8PTI1NSlhPSJ4IixyPTI7ZWxzZSBpZih0PD02NTUzNSlhPSJ1IixyPTQ7ZWxzZSBpZih0PD00Mjk0OTY3Mjk1KWE9IlUiLHI9ODtlbHNlIHRocm93IG5ldyBKOCgiY29kZSBwb2ludCB3aXRoaW4gYSBzdHJpbmcgbWF5IG5vdCBiZSBncmVhdGVyIHRoYW4gMHhGRkZGRkZGRiIpO3JldHVybiJcXCIrYStLOC5yZXBlYXQoIjAiLHItZS5sZW5ndGgpK2V9ZnVuY3Rpb24gSVh0KHQpe3RoaXMuc2NoZW1hPXQuc2NoZW1hfHxnWHQsdGhpcy5pbmRlbnQ9TWF0aC5tYXgoMSx0LmluZGVudHx8MiksdGhpcy5ub0FycmF5SW5kZW50PXQubm9BcnJheUluZGVudHx8ITEsdGhpcy5za2lwSW52YWxpZD10LnNraXBJbnZhbGlkfHwhMSx0aGlzLmZsb3dMZXZlbD1LOC5pc05vdGhpbmcodC5mbG93TGV2ZWwpPy0xOnQuZmxvd0xldmVsLHRoaXMuc3R5bGVNYXA9UFh0KHRoaXMuc2NoZW1hLHQuc3R5bGVzfHxudWxsKSx0aGlzLnNvcnRLZXlzPXQuc29ydEtleXN8fCExLHRoaXMubGluZVdpZHRoPXQubGluZVdpZHRofHw4MCx0aGlzLm5vUmVmcz10Lm5vUmVmc3x8ITEsdGhpcy5ub0NvbXBhdE1vZGU9dC5ub0NvbXBhdE1vZGV8fCExLHRoaXMuY29uZGVuc2VGbG93PXQuY29uZGVuc2VGbG93fHwhMSx0aGlzLmltcGxpY2l0VHlwZXM9dGhpcy5zY2hlbWEuY29tcGlsZWRJbXBsaWNpdCx0aGlzLmV4cGxpY2l0VHlwZXM9dGhpcy5zY2hlbWEuY29tcGlsZWRFeHBsaWNpdCx0aGlzLnRhZz1udWxsLHRoaXMucmVzdWx0PSIiLHRoaXMuZHVwbGljYXRlcz1bXSx0aGlzLnVzZWREdXBsaWNhdGVzPW51bGx9ZnVuY3Rpb24gbVllKHQsZSl7Zm9yKHZhciBhPUs4LnJlcGVhdCgiICIsZSkscj0wLGk9LTEsbz0iIixzLGw9dC5sZW5ndGg7cjxsOylpPXQuaW5kZXhPZihgCmAsciksaT09PS0xPyhzPXQuc2xpY2Uocikscj1sKToocz10LnNsaWNlKHIsaSsxKSxyPWkrMSkscy5sZW5ndGgmJnMhPT1gCmAmJihvKz1hKSxvKz1zO3JldHVybiBvfWZ1bmN0aW9uICRRKHQsZSl7cmV0dXJuYApgK0s4LnJlcGVhdCgiICIsdC5pbmRlbnQqZSl9ZnVuY3Rpb24gRlh0KHQsZSl7dmFyIGEscixpO2ZvcihhPTAscj10LmltcGxpY2l0VHlwZXMubGVuZ3RoO2E8cjthKz0xKWlmKGk9dC5pbXBsaWNpdFR5cGVzW2FdLGkucmVzb2x2ZShlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBEUSh0KXtyZXR1cm4gdD09PXlYdHx8dD09PWJYdH1mdW5jdGlvbiBiNih0KXtyZXR1cm4gMzI8PXQmJnQ8PTEyNnx8MTYxPD10JiZ0PD01NTI5NSYmdCE9PTgyMzImJnQhPT04MjMzfHw1NzM0NDw9dCYmdDw9NjU1MzMmJnQhPT02NTI3OXx8NjU1MzY8PXQmJnQ8PTExMTQxMTF9ZnVuY3Rpb24gT1h0KHQpe3JldHVybiBiNih0KSYmIURRKHQpJiZ0IT09NjUyNzkmJnQhPT12WHQmJnQhPT1lZH1mdW5jdGlvbiBnWWUodCxlKXtyZXR1cm4gYjYodCkmJnQhPT02NTI3OSYmdCE9PWxZZSYmdCE9PWRZZSYmdCE9PWZZZSYmdCE9PXVZZSYmdCE9PXBZZSYmdCE9PWNZZSYmKHQhPT1uWWV8fGUmJk9YdChlKSl9ZnVuY3Rpb24gQlh0KHQpe3JldHVybiBiNih0KSYmdCE9PTY1Mjc5JiYhRFEodCkmJnQhPT1MWHQmJnQhPT1BWHQmJnQhPT1jWWUmJnQhPT1sWWUmJnQhPT1kWWUmJnQhPT1mWWUmJnQhPT11WWUmJnQhPT1wWWUmJnQhPT1uWWUmJnQhPT1rWHQmJnQhPT1DWHQmJnQhPT13WHQmJnQhPT1FWHQmJnQhPT1UWHQmJnQhPT1fWHQmJnQhPT1TWHQmJnQhPT1NWHQmJnQhPT16WHQmJnQhPT0kWHQmJnQhPT1EWHR9ZnVuY3Rpb24geFllKHQpe3ZhciBlPS9eXG4qIC87cmV0dXJuIGUudGVzdCh0KX12YXIgYlllPTEsdlllPTIseVllPTMsd1llPTQsWlI9NTtmdW5jdGlvbiBSWHQodCxlLGEscixpKXt2YXIgbyxzLGwsZj0hMSxjPSExLHU9ciE9PS0xLGQ9LTEsaD1CWHQodC5jaGFyQ29kZUF0KDApKSYmIURRKHQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKSk7aWYoZSlmb3Iobz0wO288dC5sZW5ndGg7bysrKXtpZihzPXQuY2hhckNvZGVBdChvKSwhYjYocykpcmV0dXJuIFpSO2w9bz4wP3QuY2hhckNvZGVBdChvLTEpOm51bGwsaD1oJiZnWWUocyxsKX1lbHNle2ZvcihvPTA7bzx0Lmxlbmd0aDtvKyspe2lmKHM9dC5jaGFyQ29kZUF0KG8pLHM9PT1lZClmPSEwLHUmJihjPWN8fG8tZC0xPnImJnRbZCsxXSE9PSIgIixkPW8pO2Vsc2UgaWYoIWI2KHMpKXJldHVybiBaUjtsPW8+MD90LmNoYXJDb2RlQXQoby0xKTpudWxsLGg9aCYmZ1llKHMsbCl9Yz1jfHx1JiZvLWQtMT5yJiZ0W2QrMV0hPT0iICJ9cmV0dXJuIWYmJiFjP2gmJiFpKHQpP2JZZTp2WWU6YT45JiZ4WWUodCk/WlI6Yz93WWU6eVllfWZ1bmN0aW9uIEhYdCh0LGUsYSxyKXt0LmR1bXA9KGZ1bmN0aW9uKCl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiInJyI7aWYoIXQubm9Db21wYXRNb2RlJiZOWHQuaW5kZXhPZihlKSE9PS0xKXJldHVybiInIitlKyInIjt2YXIgaT10LmluZGVudCpNYXRoLm1heCgxLGEpLG89dC5saW5lV2lkdGg9PT0tMT8tMTpNYXRoLm1heChNYXRoLm1pbih0LmxpbmVXaWR0aCw0MCksdC5saW5lV2lkdGgtaSkscz1yfHx0LmZsb3dMZXZlbD4tMSYmYT49dC5mbG93TGV2ZWw7ZnVuY3Rpb24gbChmKXtyZXR1cm4gRlh0KHQsZil9c3dpdGNoKFJYdChlLHMsdC5pbmRlbnQsbyxsKSl7Y2FzZSBiWWU6cmV0dXJuIGU7Y2FzZSB2WWU6cmV0dXJuIiciK2UucmVwbGFjZSgvJy9nLCInJyIpKyInIjtjYXNlIHlZZTpyZXR1cm4ifCIrTVllKGUsdC5pbmRlbnQpK3pZZShtWWUoZSxpKSk7Y2FzZSB3WWU6cmV0dXJuIj4iK01ZZShlLHQuaW5kZW50KSt6WWUobVllKHFYdChlLG8pLGkpKTtjYXNlIFpSOnJldHVybiciJytWWHQoZSxvKSsnIic7ZGVmYXVsdDp0aHJvdyBuZXcgSjgoImltcG9zc2libGUgZXJyb3I6IGludmFsaWQgc2NhbGFyIHN0eWxlIil9fSkoKX1mdW5jdGlvbiBNWWUodCxlKXt2YXIgYT14WWUodCk/U3RyaW5nKGUpOiIiLHI9dFt0Lmxlbmd0aC0xXT09PWAKYCxpPXImJih0W3QubGVuZ3RoLTJdPT09YApgfHx0PT09YApgKSxvPWk/IisiOnI/IiI6Ii0iO3JldHVybiBhK28rYApgfWZ1bmN0aW9uIHpZZSh0KXtyZXR1cm4gdFt0Lmxlbmd0aC0xXT09PWAKYD90LnNsaWNlKDAsLTEpOnR9ZnVuY3Rpb24gcVh0KHQsZSl7Zm9yKHZhciBhPS8oXG4rKShbXlxuXSopL2cscj0oZnVuY3Rpb24oKXt2YXIgYz10LmluZGV4T2YoYApgKTtyZXR1cm4gYz1jIT09LTE/Yzp0Lmxlbmd0aCxhLmxhc3RJbmRleD1jLGtZZSh0LnNsaWNlKDAsYyksZSl9KSgpLGk9dFswXT09PWAKYHx8dFswXT09PSIgIixvLHM7cz1hLmV4ZWModCk7KXt2YXIgbD1zWzFdLGY9c1syXTtvPWZbMF09PT0iICIscis9bCsoIWkmJiFvJiZmIT09IiI/YApgOiIiKStrWWUoZixlKSxpPW99cmV0dXJuIHJ9ZnVuY3Rpb24ga1llKHQsZSl7aWYodD09PSIifHx0WzBdPT09IiAiKXJldHVybiB0O2Zvcih2YXIgYT0vIFteIF0vZyxyLGk9MCxvLHM9MCxsPTAsZj0iIjtyPWEuZXhlYyh0KTspbD1yLmluZGV4LGwtaT5lJiYobz1zPmk/czpsLGYrPWAKYCt0LnNsaWNlKGksbyksaT1vKzEpLHM9bDtyZXR1cm4gZis9YApgLHQubGVuZ3RoLWk+ZSYmcz5pP2YrPXQuc2xpY2UoaSxzKStgCmArdC5zbGljZShzKzEpOmYrPXQuc2xpY2UoaSksZi5zbGljZSgxKX1mdW5jdGlvbiBWWHQodCl7Zm9yKHZhciBlPSIiLGEscixpLG89MDtvPHQubGVuZ3RoO28rKyl7aWYoYT10LmNoYXJDb2RlQXQobyksYT49NTUyOTYmJmE8PTU2MzE5JiYocj10LmNoYXJDb2RlQXQobysxKSxyPj01NjMyMCYmcjw9NTczNDMpKXtlKz1oWWUoKGEtNTUyOTYpKjEwMjQrci01NjMyMCs2NTUzNiksbysrO2NvbnRpbnVlfWk9ejJbYV0sZSs9IWkmJmI2KGEpP3Rbb106aXx8aFllKGEpfXJldHVybiBlfWZ1bmN0aW9uIFVYdCh0LGUsYSl7dmFyIHI9IiIsaT10LnRhZyxvLHM7Zm9yKG89MCxzPWEubGVuZ3RoO288cztvKz0xKW5uKHQsZSxhW29dLCExLCExKSYmKG8hPT0wJiYocis9IiwiKyh0LmNvbmRlbnNlRmxvdz8iIjoiICIpKSxyKz10LmR1bXApO3QudGFnPWksdC5kdW1wPSJbIityKyJdIn1mdW5jdGlvbiBqWHQodCxlLGEscil7dmFyIGk9IiIsbz10LnRhZyxzLGw7Zm9yKHM9MCxsPWEubGVuZ3RoO3M8bDtzKz0xKW5uKHQsZSsxLGFbc10sITAsITApJiYoKCFyfHxzIT09MCkmJihpKz0kUSh0LGUpKSx0LmR1bXAmJmVkPT09dC5kdW1wLmNoYXJDb2RlQXQoMCk/aSs9Ii0iOmkrPSItICIsaSs9dC5kdW1wKTt0LnRhZz1vLHQuZHVtcD1pfHwiW10ifWZ1bmN0aW9uIFdYdCh0LGUsYSl7dmFyIHI9IiIsaT10LnRhZyxvPU9iamVjdC5rZXlzKGEpLHMsbCxmLGMsdTtmb3Iocz0wLGw9by5sZW5ndGg7czxsO3MrPTEpdT0iIixzIT09MCYmKHUrPSIsICIpLHQuY29uZGVuc2VGbG93JiYodSs9JyInKSxmPW9bc10sYz1hW2ZdLG5uKHQsZSxmLCExLCExKSYmKHQuZHVtcC5sZW5ndGg+MTAyNCYmKHUrPSI/ICIpLHUrPXQuZHVtcCsodC5jb25kZW5zZUZsb3c/JyInOiIiKSsiOiIrKHQuY29uZGVuc2VGbG93PyIiOiIgIiksbm4odCxlLGMsITEsITEpJiYodSs9dC5kdW1wLHIrPXUpKTt0LnRhZz1pLHQuZHVtcD0ieyIrcisifSJ9ZnVuY3Rpb24gR1h0KHQsZSxhLHIpe3ZhciBpPSIiLG89dC50YWcscz1PYmplY3Qua2V5cyhhKSxsLGYsYyx1LGQsaDtpZih0LnNvcnRLZXlzPT09ITApcy5zb3J0KCk7ZWxzZSBpZih0eXBlb2YgdC5zb3J0S2V5cz09ImZ1bmN0aW9uIilzLnNvcnQodC5zb3J0S2V5cyk7ZWxzZSBpZih0LnNvcnRLZXlzKXRocm93IG5ldyBKOCgic29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbiIpO2ZvcihsPTAsZj1zLmxlbmd0aDtsPGY7bCs9MSloPSIiLCghcnx8bCE9PTApJiYoaCs9JFEodCxlKSksYz1zW2xdLHU9YVtjXSxubih0LGUrMSxjLCEwLCEwLCEwKSYmKGQ9dC50YWchPT1udWxsJiZ0LnRhZyE9PSI/Inx8dC5kdW1wJiZ0LmR1bXAubGVuZ3RoPjEwMjQsZCYmKHQuZHVtcCYmZWQ9PT10LmR1bXAuY2hhckNvZGVBdCgwKT9oKz0iPyI6aCs9Ij8gIiksaCs9dC5kdW1wLGQmJihoKz0kUSh0LGUpKSxubih0LGUrMSx1LCEwLGQpJiYodC5kdW1wJiZlZD09PXQuZHVtcC5jaGFyQ29kZUF0KDApP2grPSI6IjpoKz0iOiAiLGgrPXQuZHVtcCxpKz1oKSk7dC50YWc9byx0LmR1bXA9aXx8Int9In1mdW5jdGlvbiBTWWUodCxlLGEpe3ZhciByLGksbyxzLGwsZjtmb3IoaT1hP3QuZXhwbGljaXRUeXBlczp0LmltcGxpY2l0VHlwZXMsbz0wLHM9aS5sZW5ndGg7bzxzO28rPTEpaWYobD1pW29dLChsLmluc3RhbmNlT2Z8fGwucHJlZGljYXRlKSYmKCFsLmluc3RhbmNlT2Z8fHR5cGVvZiBlPT0ib2JqZWN0IiYmZSBpbnN0YW5jZW9mIGwuaW5zdGFuY2VPZikmJighbC5wcmVkaWNhdGV8fGwucHJlZGljYXRlKGUpKSl7aWYodC50YWc9YT9sLnRhZzoiPyIsbC5yZXByZXNlbnQpe2lmKGY9dC5zdHlsZU1hcFtsLnRhZ118fGwuZGVmYXVsdFN0eWxlLG9ZZS5jYWxsKGwucmVwcmVzZW50KT09PSJbb2JqZWN0IEZ1bmN0aW9uXSIpcj1sLnJlcHJlc2VudChlLGYpO2Vsc2UgaWYoc1llLmNhbGwobC5yZXByZXNlbnQsZikpcj1sLnJlcHJlc2VudFtmXShlLGYpO2Vsc2UgdGhyb3cgbmV3IEo4KCIhPCIrbC50YWcrJz4gdGFnIHJlc29sdmVyIGFjY2VwdHMgbm90ICInK2YrJyIgc3R5bGUnKTt0LmR1bXA9cn1yZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBubih0LGUsYSxyLGksbyl7dC50YWc9bnVsbCx0LmR1bXA9YSxTWWUodCxhLCExKXx8U1llKHQsYSwhMCk7dmFyIHM9b1llLmNhbGwodC5kdW1wKTtyJiYocj10LmZsb3dMZXZlbDwwfHx0LmZsb3dMZXZlbD5lKTt2YXIgbD1zPT09IltvYmplY3QgT2JqZWN0XSJ8fHM9PT0iW29iamVjdCBBcnJheV0iLGYsYztpZihsJiYoZj10LmR1cGxpY2F0ZXMuaW5kZXhPZihhKSxjPWYhPT0tMSksKHQudGFnIT09bnVsbCYmdC50YWchPT0iPyJ8fGN8fHQuaW5kZW50IT09MiYmZT4wKSYmKGk9ITEpLGMmJnQudXNlZER1cGxpY2F0ZXNbZl0pdC5kdW1wPSIqcmVmXyIrZjtlbHNle2lmKGwmJmMmJiF0LnVzZWREdXBsaWNhdGVzW2ZdJiYodC51c2VkRHVwbGljYXRlc1tmXT0hMCkscz09PSJbb2JqZWN0IE9iamVjdF0iKXImJk9iamVjdC5rZXlzKHQuZHVtcCkubGVuZ3RoIT09MD8oR1h0KHQsZSx0LmR1bXAsaSksYyYmKHQuZHVtcD0iJnJlZl8iK2YrdC5kdW1wKSk6KFdYdCh0LGUsdC5kdW1wKSxjJiYodC5kdW1wPSImcmVmXyIrZisiICIrdC5kdW1wKSk7ZWxzZSBpZihzPT09IltvYmplY3QgQXJyYXldIil7dmFyIHU9dC5ub0FycmF5SW5kZW50JiZlPjA/ZS0xOmU7ciYmdC5kdW1wLmxlbmd0aCE9PTA/KGpYdCh0LHUsdC5kdW1wLGkpLGMmJih0LmR1bXA9IiZyZWZfIitmK3QuZHVtcCkpOihVWHQodCx1LHQuZHVtcCksYyYmKHQuZHVtcD0iJnJlZl8iK2YrIiAiK3QuZHVtcCkpfWVsc2UgaWYocz09PSJbb2JqZWN0IFN0cmluZ10iKXQudGFnIT09Ij8iJiZIWHQodCx0LmR1bXAsZSxvKTtlbHNle2lmKHQuc2tpcEludmFsaWQpcmV0dXJuITE7dGhyb3cgbmV3IEo4KCJ1bmFjY2VwdGFibGUga2luZCBvZiBhbiBvYmplY3QgdG8gZHVtcCAiK3MpfXQudGFnIT09bnVsbCYmdC50YWchPT0iPyImJih0LmR1bXA9IiE8Iit0LnRhZysiPiAiK3QuZHVtcCl9cmV0dXJuITB9ZnVuY3Rpb24gWVh0KHQsZSl7dmFyIGE9W10scj1bXSxpLG87Zm9yKEVRKHQsYSxyKSxpPTAsbz1yLmxlbmd0aDtpPG87aSs9MSllLmR1cGxpY2F0ZXMucHVzaChhW3JbaV1dKTtlLnVzZWREdXBsaWNhdGVzPW5ldyBBcnJheShvKX1mdW5jdGlvbiBFUSh0LGUsYSl7dmFyIHIsaSxvO2lmKHQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCIpaWYoaT1lLmluZGV4T2YodCksaSE9PS0xKWEuaW5kZXhPZihpKT09PS0xJiZhLnB1c2goaSk7ZWxzZSBpZihlLnB1c2godCksQXJyYXkuaXNBcnJheSh0KSlmb3IoaT0wLG89dC5sZW5ndGg7aTxvO2krPTEpRVEodFtpXSxlLGEpO2Vsc2UgZm9yKHI9T2JqZWN0LmtleXModCksaT0wLG89ci5sZW5ndGg7aTxvO2krPTEpRVEodFtyW2ldXSxlLGEpfWZ1bmN0aW9uIENZZSh0LGUpe2U9ZXx8e307dmFyIGE9bmV3IElYdChlKTtyZXR1cm4gYS5ub1JlZnN8fFlYdCh0LGEpLG5uKGEsMCx0LCEwLCEwKT9hLmR1bXArYApgOiIifWZ1bmN0aW9uIFpYdCh0LGUpe3JldHVybiBDWWUodCxLOC5leHRlbmQoe3NjaGVtYTp4WHR9LGUpKX1OUS5leHBvcnRzLmR1bXA9Q1llLE5RLmV4cG9ydHMuc2FmZUR1bXA9Wlh0fSk7dmFyIF9ZZT1jdCgoVlUxLHYxKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgWFI9aVllKCksVFllPUxZZSgpO2Z1bmN0aW9uIFFSKHQpe3JldHVybiBmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiRnVuY3Rpb24gIit0KyIgaXMgZGVwcmVjYXRlZCBhbmQgY2Fubm90IGJlIHVzZWQuIil9fXYxLmV4cG9ydHMuVHlwZT1SMSgpLHYxLmV4cG9ydHMuU2NoZW1hPWFuKCksdjEuZXhwb3J0cy5GQUlMU0FGRV9TQ0hFTUE9VlIoKSx2MS5leHBvcnRzLkpTT05fU0NIRU1BPVNRKCksdjEuZXhwb3J0cy5DT1JFX1NDSEVNQT1DUSgpLHYxLmV4cG9ydHMuREVGQVVMVF9TQUZFX1NDSEVNQT1oNigpLHYxLmV4cG9ydHMuREVGQVVMVF9GVUxMX1NDSEVNQT1YOCgpLHYxLmV4cG9ydHMubG9hZD1YUi5sb2FkLHYxLmV4cG9ydHMubG9hZEFsbD1YUi5sb2FkQWxsLHYxLmV4cG9ydHMuc2FmZUxvYWQ9WFIuc2FmZUxvYWQsdjEuZXhwb3J0cy5zYWZlTG9hZEFsbD1YUi5zYWZlTG9hZEFsbCx2MS5leHBvcnRzLmR1bXA9VFllLmR1bXAsdjEuZXhwb3J0cy5zYWZlRHVtcD1UWWUuc2FmZUR1bXAsdjEuZXhwb3J0cy5ZQU1MRXhjZXB0aW9uPXU2KCksdjEuZXhwb3J0cy5NSU5JTUFMX1NDSEVNQT1WUigpLHYxLmV4cG9ydHMuU0FGRV9TQ0hFTUE9aDYoKSx2MS5leHBvcnRzLkRFRkFVTFRfU0NIRU1BPVg4KCksdjEuZXhwb3J0cy5zY2FuPVFSKCJzY2FuIiksdjEuZXhwb3J0cy5wYXJzZT1RUigicGFyc2UiKSx2MS5leHBvcnRzLmNvbXBvc2U9UVIoImNvbXBvc2UiKSx2MS5leHBvcnRzLmFkZENvbnN0cnVjdG9yPVFSKCJhZGRDb25zdHJ1Y3RvciIpfSk7dmFyICRZZT1jdCgoVVUxLEFZZSk9PnsidXNlIHN0cmljdCI7dmFyIFhYdD1fWWUoKTtBWWUuZXhwb3J0cz1YWHR9KTt2YXIgRFllPWN0KEVyPT57InVzZSBzdHJpY3QiO3ZhciBRWHQ9RXImJkVyLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKHQsZSxhLHIpe3I9PT12b2lkIDAmJihyPWEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGVbYV19fSl9KTooZnVuY3Rpb24odCxlLGEscil7cj09PXZvaWQgMCYmKHI9YSksdFtyXT1lW2FdfSkpLEtYdD1FciYmRXIuX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6ZX0pfSk6ZnVuY3Rpb24odCxlKXt0LmRlZmF1bHQ9ZX0pLEpYdD1FciYmRXIuX19pbXBvcnRTdGFyfHxmdW5jdGlvbih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIGEgaW4gdClhIT09ImRlZmF1bHQiJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0LGEpJiZRWHQoZSx0LGEpO3JldHVybiBLWHQoZSx0KSxlfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRXIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEVyLmpzWWFtbD12b2lkIDA7dmFyIGVRdD1KWHQoJFllKCkpO0VyLmpzWWFtbD1lUXR9KTt2YXIgTlllPWN0KFRhPT57InVzZSBzdHJpY3QiO3ZhciB0UXQ9VGEmJlRhLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKHQsZSxhLHIpe3I9PT12b2lkIDAmJihyPWEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGVbYV19fSl9KTooZnVuY3Rpb24odCxlLGEscil7cj09PXZvaWQgMCYmKHI9YSksdFtyXT1lW2FdfSkpLGFRdD1UYSYmVGEuX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6ZX0pfSk6ZnVuY3Rpb24odCxlKXt0LmRlZmF1bHQ9ZX0pLHJRdD1UYSYmVGEuX19pbXBvcnRTdGFyfHxmdW5jdGlvbih0KXtpZih0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9e307aWYodCE9bnVsbClmb3IodmFyIGEgaW4gdClhIT09ImRlZmF1bHQiJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh0LGEpJiZ0UXQoZSx0LGEpO3JldHVybiBhUXQoZSx0KSxlfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVGEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFRhLm9iamVjdFRvWWFtbFN0cmluZz1UYS55YW1sU3RyaW5nVG9PYmplY3Q9dm9pZCAwO3ZhciBFWWU9clF0KERZZSgpKTtUYS55YW1sU3RyaW5nVG9PYmplY3Q9YXN5bmModCxlPXt9KT0+RVllLmpzWWFtbC5zYWZlTG9hZCh0KSxUYS5vYmplY3RUb1lhbWxTdHJpbmc9YXN5bmModCxlPXt9KT0+RVllLmpzWWFtbC5zYWZlRHVtcCh0KX0pO2Z1bmN0aW9uIFBRKHQpe2lmKHQpdGhyb3cgdH12YXIgUFllPW4oKCk9Pnt9KTt2YXIgVVllPWN0KChZVTEsVlllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgS1I9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxJWWU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxGWWU9T2JqZWN0LmRlZmluZVByb3BlcnR5LE9ZZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEJZZT1mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIEFycmF5LmlzQXJyYXk9PSJmdW5jdGlvbiI/QXJyYXkuaXNBcnJheShlKTpJWWUuY2FsbChlKT09PSJbb2JqZWN0IEFycmF5XSJ9LFJZZT1mdW5jdGlvbihlKXtpZighZXx8SVllLmNhbGwoZSkhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTt2YXIgYT1LUi5jYWxsKGUsImNvbnN0cnVjdG9yIikscj1lLmNvbnN0cnVjdG9yJiZlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSYmS1IuY2FsbChlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpO2lmKGUuY29uc3RydWN0b3ImJiFhJiYhcilyZXR1cm4hMTt2YXIgaTtmb3IoaSBpbiBlKTtyZXR1cm4gdHlwZW9mIGk+InUifHxLUi5jYWxsKGUsaSl9LEhZZT1mdW5jdGlvbihlLGEpe0ZZZSYmYS5uYW1lPT09Il9fcHJvdG9fXyI/RlllKGUsYS5uYW1lLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTphLm5ld1ZhbHVlLHdyaXRhYmxlOiEwfSk6ZVthLm5hbWVdPWEubmV3VmFsdWV9LHFZZT1mdW5jdGlvbihlLGEpe2lmKGE9PT0iX19wcm90b19fIilpZihLUi5jYWxsKGUsYSkpe2lmKE9ZZSlyZXR1cm4gT1llKGUsYSkudmFsdWV9ZWxzZSByZXR1cm47cmV0dXJuIGVbYV19O1ZZZS5leHBvcnRzPWZ1bmN0aW9uIHQoKXt2YXIgZSxhLHIsaSxvLHMsbD1hcmd1bWVudHNbMF0sZj0xLGM9YXJndW1lbnRzLmxlbmd0aCx1PSExO2Zvcih0eXBlb2YgbD09ImJvb2xlYW4iJiYodT1sLGw9YXJndW1lbnRzWzFdfHx7fSxmPTIpLChsPT1udWxsfHx0eXBlb2YgbCE9Im9iamVjdCImJnR5cGVvZiBsIT0iZnVuY3Rpb24iKSYmKGw9e30pO2Y8YzsrK2YpaWYoZT1hcmd1bWVudHNbZl0sZSE9bnVsbClmb3IoYSBpbiBlKXI9cVllKGwsYSksaT1xWWUoZSxhKSxsIT09aSYmKHUmJmkmJihSWWUoaSl8fChvPUJZZShpKSkpPyhvPyhvPSExLHM9ciYmQlllKHIpP3I6W10pOnM9ciYmUlllKHIpP3I6e30sSFllKGwse25hbWU6YSxuZXdWYWx1ZTp0KHUscyxpKX0pKTp0eXBlb2YgaTwidSImJkhZZShsLHtuYW1lOmEsbmV3VmFsdWU6aX0pKTtyZXR1cm4gbH19KTt2YXIgRm89bigoKT0+e30pO2Z1bmN0aW9uIHRkKHQpe2lmKHR5cGVvZiB0IT0ib2JqZWN0Inx8dD09PW51bGwpcmV0dXJuITE7bGV0IGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO3JldHVybihlPT09bnVsbHx8ZT09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiB0KSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gdCl9dmFyIGpZZT1uKCgpPT57fSk7ZnVuY3Rpb24gSVEoKXtsZXQgdD1bXSxlPXtydW46YSx1c2U6cn07cmV0dXJuIGU7ZnVuY3Rpb24gYSguLi5pKXtsZXQgbz0tMSxzPWkucG9wKCk7aWYodHlwZW9mIHMhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgZnVuY3Rpb24gYXMgbGFzdCBhcmd1bWVudCwgbm90ICIrcyk7bChudWxsLC4uLmkpO2Z1bmN0aW9uIGwoZiwuLi5jKXtsZXQgdT10Wysrb10sZD0tMTtpZihmKXtzKGYpO3JldHVybn1mb3IoOysrZDxpLmxlbmd0aDspKGNbZF09PT1udWxsfHxjW2RdPT09dm9pZCAwKSYmKGNbZF09aVtkXSk7aT1jLHU/V1llKHUsbCkoLi4uYyk6cyhudWxsLC4uLmMpfX1mdW5jdGlvbiByKGkpe2lmKHR5cGVvZiBpIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGBtaWRkZWx3YXJlYCB0byBiZSBhIGZ1bmN0aW9uLCBub3QgIitpKTtyZXR1cm4gdC5wdXNoKGkpLGV9fWZ1bmN0aW9uIFdZZSh0LGUpe2xldCBhO3JldHVybiByO2Z1bmN0aW9uIHIoLi4ucyl7bGV0IGw9dC5sZW5ndGg+cy5sZW5ndGgsZjtsJiZzLnB1c2goaSk7dHJ5e2Y9dC5hcHBseSh0aGlzLHMpfWNhdGNoKGMpe2xldCB1PWM7aWYobCYmYSl0aHJvdyB1O3JldHVybiBpKHUpfWx8fChmJiZmLnRoZW4mJnR5cGVvZiBmLnRoZW49PSJmdW5jdGlvbiI/Zi50aGVuKG8saSk6ZiBpbnN0YW5jZW9mIEVycm9yP2koZik6byhmKSl9ZnVuY3Rpb24gaShzLC4uLmwpe2F8fChhPSEwLGUocywuLi5sKSl9ZnVuY3Rpb24gbyhzKXtpKG51bGwscyl9fXZhciBHWWU9bigoKT0+e30pO3ZhciBZWWU9bigoKT0+e0dZZSgpfSk7ZnVuY3Rpb24gT28odCl7cmV0dXJuIXR8fHR5cGVvZiB0IT0ib2JqZWN0Ij8iIjoicG9zaXRpb24iaW4gdHx8InR5cGUiaW4gdD9aWWUodC5wb3NpdGlvbik6InN0YXJ0ImluIHR8fCJlbmQiaW4gdD9aWWUodCk6ImxpbmUiaW4gdHx8ImNvbHVtbiJpbiB0P0ZRKHQpOiIifWZ1bmN0aW9uIEZRKHQpe3JldHVybiBYWWUodCYmdC5saW5lKSsiOiIrWFllKHQmJnQuY29sdW1uKX1mdW5jdGlvbiBaWWUodCl7cmV0dXJuIEZRKHQmJnQuc3RhcnQpKyItIitGUSh0JiZ0LmVuZCl9ZnVuY3Rpb24gWFllKHQpe3JldHVybiB0JiZ0eXBlb2YgdD09Im51bWJlciI/dDoxfXZhciBRWWU9bigoKT0+e30pO3ZhciBPUT1uKCgpPT57UVllKCl9KTt2YXIgWTEsS1llPW4oKCk9PntPUSgpO1kxPWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSxhLHIpe3N1cGVyKCksdHlwZW9mIGE9PSJzdHJpbmciJiYocj1hLGE9dm9pZCAwKTtsZXQgaT0iIixvPXt9LHM9ITE7aWYoYSYmKCJsaW5lImluIGEmJiJjb2x1bW4iaW4gYT9vPXtwbGFjZTphfToic3RhcnQiaW4gYSYmImVuZCJpbiBhP289e3BsYWNlOmF9OiJ0eXBlImluIGE/bz17YW5jZXN0b3JzOlthXSxwbGFjZTphLnBvc2l0aW9ufTpvPXsuLi5hfSksdHlwZW9mIGU9PSJzdHJpbmciP2k9ZTohby5jYXVzZSYmZSYmKHM9ITAsaT1lLm1lc3NhZ2Usby5jYXVzZT1lKSwhby5ydWxlSWQmJiFvLnNvdXJjZSYmdHlwZW9mIHI9PSJzdHJpbmciKXtsZXQgZj1yLmluZGV4T2YoIjoiKTtmPT09LTE/by5ydWxlSWQ9cjooby5zb3VyY2U9ci5zbGljZSgwLGYpLG8ucnVsZUlkPXIuc2xpY2UoZisxKSl9aWYoIW8ucGxhY2UmJm8uYW5jZXN0b3JzJiZvLmFuY2VzdG9ycyl7bGV0IGY9by5hbmNlc3RvcnNbby5hbmNlc3RvcnMubGVuZ3RoLTFdO2YmJihvLnBsYWNlPWYucG9zaXRpb24pfWxldCBsPW8ucGxhY2UmJiJzdGFydCJpbiBvLnBsYWNlP28ucGxhY2Uuc3RhcnQ6by5wbGFjZTt0aGlzLmFuY2VzdG9ycz1vLmFuY2VzdG9yc3x8dm9pZCAwLHRoaXMuY2F1c2U9by5jYXVzZXx8dm9pZCAwLHRoaXMuY29sdW1uPWw/bC5jb2x1bW46dm9pZCAwLHRoaXMuZmF0YWw9dm9pZCAwLHRoaXMuZmlsZT0iIix0aGlzLm1lc3NhZ2U9aSx0aGlzLmxpbmU9bD9sLmxpbmU6dm9pZCAwLHRoaXMubmFtZT1PbyhvLnBsYWNlKXx8IjE6MSIsdGhpcy5wbGFjZT1vLnBsYWNlfHx2b2lkIDAsdGhpcy5yZWFzb249dGhpcy5tZXNzYWdlLHRoaXMucnVsZUlkPW8ucnVsZUlkfHx2b2lkIDAsdGhpcy5zb3VyY2U9by5zb3VyY2V8fHZvaWQgMCx0aGlzLnN0YWNrPXMmJm8uY2F1c2UmJnR5cGVvZiBvLmNhdXNlLnN0YWNrPT0ic3RyaW5nIj9vLmNhdXNlLnN0YWNrOiIiLHRoaXMuYWN0dWFsPXZvaWQgMCx0aGlzLmV4cGVjdGVkPXZvaWQgMCx0aGlzLm5vdGU9dm9pZCAwLHRoaXMudXJsPXZvaWQgMH19O1kxLnByb3RvdHlwZS5maWxlPSIiLFkxLnByb3RvdHlwZS5uYW1lPSIiLFkxLnByb3RvdHlwZS5yZWFzb249IiIsWTEucHJvdG90eXBlLm1lc3NhZ2U9IiIsWTEucHJvdG90eXBlLnN0YWNrPSIiLFkxLnByb3RvdHlwZS5jb2x1bW49dm9pZCAwLFkxLnByb3RvdHlwZS5saW5lPXZvaWQgMCxZMS5wcm90b3R5cGUuYW5jZXN0b3JzPXZvaWQgMCxZMS5wcm90b3R5cGUuY2F1c2U9dm9pZCAwLFkxLnByb3RvdHlwZS5mYXRhbD12b2lkIDAsWTEucHJvdG90eXBlLnBsYWNlPXZvaWQgMCxZMS5wcm90b3R5cGUucnVsZUlkPXZvaWQgMCxZMS5wcm90b3R5cGUuc291cmNlPXZvaWQgMH0pO3ZhciBKWWU9bigoKT0+e0tZZSgpfSk7ZnVuY3Rpb24gaVF0KHQsZSl7aWYoZSE9PXZvaWQgMCYmdHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoJyJleHQiIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKTthZCh0KTtsZXQgYT0wLHI9LTEsaT10Lmxlbmd0aCxvO2lmKGU9PT12b2lkIDB8fGUubGVuZ3RoPT09MHx8ZS5sZW5ndGg+dC5sZW5ndGgpe2Zvcig7aS0tOylpZih0LmNvZGVQb2ludEF0KGkpPT09NDcpe2lmKG8pe2E9aSsxO2JyZWFrfX1lbHNlIHI8MCYmKG89ITAscj1pKzEpO3JldHVybiByPDA/IiI6dC5zbGljZShhLHIpfWlmKGU9PT10KXJldHVybiIiO2xldCBzPS0xLGw9ZS5sZW5ndGgtMTtmb3IoO2ktLTspaWYodC5jb2RlUG9pbnRBdChpKT09PTQ3KXtpZihvKXthPWkrMTticmVha319ZWxzZSBzPDAmJihvPSEwLHM9aSsxKSxsPi0xJiYodC5jb2RlUG9pbnRBdChpKT09PWUuY29kZVBvaW50QXQobC0tKT9sPDAmJihyPWkpOihsPS0xLHI9cykpO3JldHVybiBhPT09cj9yPXM6cjwwJiYocj10Lmxlbmd0aCksdC5zbGljZShhLHIpfWZ1bmN0aW9uIG9RdCh0KXtpZihhZCh0KSx0Lmxlbmd0aD09PTApcmV0dXJuIi4iO2xldCBlPS0xLGE9dC5sZW5ndGgscjtmb3IoOy0tYTspaWYodC5jb2RlUG9pbnRBdChhKT09PTQ3KXtpZihyKXtlPWE7YnJlYWt9fWVsc2Ugcnx8KHI9ITApO3JldHVybiBlPDA/dC5jb2RlUG9pbnRBdCgwKT09PTQ3PyIvIjoiLiI6ZT09PTEmJnQuY29kZVBvaW50QXQoMCk9PT00Nz8iLy8iOnQuc2xpY2UoMCxlKX1mdW5jdGlvbiBzUXQodCl7YWQodCk7bGV0IGU9dC5sZW5ndGgsYT0tMSxyPTAsaT0tMSxvPTAscztmb3IoO2UtLTspe2xldCBsPXQuY29kZVBvaW50QXQoZSk7aWYobD09PTQ3KXtpZihzKXtyPWUrMTticmVha31jb250aW51ZX1hPDAmJihzPSEwLGE9ZSsxKSxsPT09NDY/aTwwP2k9ZTpvIT09MSYmKG89MSk6aT4tMSYmKG89LTEpfXJldHVybiBpPDB8fGE8MHx8bz09PTB8fG89PT0xJiZpPT09YS0xJiZpPT09cisxPyIiOnQuc2xpY2UoaSxhKX1mdW5jdGlvbiBuUXQoLi4udCl7bGV0IGU9LTEsYTtmb3IoOysrZTx0Lmxlbmd0aDspYWQodFtlXSksdFtlXSYmKGE9YT09PXZvaWQgMD90W2VdOmErIi8iK3RbZV0pO3JldHVybiBhPT09dm9pZCAwPyIuIjpsUXQoYSl9ZnVuY3Rpb24gbFF0KHQpe2FkKHQpO2xldCBlPXQuY29kZVBvaW50QXQoMCk9PT00NyxhPWNRdCh0LCFlKTtyZXR1cm4gYS5sZW5ndGg9PT0wJiYhZSYmKGE9Ii4iKSxhLmxlbmd0aD4wJiZ0LmNvZGVQb2ludEF0KHQubGVuZ3RoLTEpPT09NDcmJihhKz0iLyIpLGU/Ii8iK2E6YX1mdW5jdGlvbiBjUXQodCxlKXtsZXQgYT0iIixyPTAsaT0tMSxvPTAscz0tMSxsLGY7Zm9yKDsrK3M8PXQubGVuZ3RoOyl7aWYoczx0Lmxlbmd0aClsPXQuY29kZVBvaW50QXQocyk7ZWxzZXtpZihsPT09NDcpYnJlYWs7bD00N31pZihsPT09NDcpe2lmKCEoaT09PXMtMXx8bz09PTEpKWlmKGkhPT1zLTEmJm89PT0yKXtpZihhLmxlbmd0aDwyfHxyIT09Mnx8YS5jb2RlUG9pbnRBdChhLmxlbmd0aC0xKSE9PTQ2fHxhLmNvZGVQb2ludEF0KGEubGVuZ3RoLTIpIT09NDYpe2lmKGEubGVuZ3RoPjIpe2lmKGY9YS5sYXN0SW5kZXhPZigiLyIpLGYhPT1hLmxlbmd0aC0xKXtmPDA/KGE9IiIscj0wKTooYT1hLnNsaWNlKDAsZikscj1hLmxlbmd0aC0xLWEubGFzdEluZGV4T2YoIi8iKSksaT1zLG89MDtjb250aW51ZX19ZWxzZSBpZihhLmxlbmd0aD4wKXthPSIiLHI9MCxpPXMsbz0wO2NvbnRpbnVlfX1lJiYoYT1hLmxlbmd0aD4wP2ErIi8uLiI6Ii4uIixyPTIpfWVsc2UgYS5sZW5ndGg+MD9hKz0iLyIrdC5zbGljZShpKzEscyk6YT10LnNsaWNlKGkrMSxzKSxyPXMtaS0xO2k9cyxvPTB9ZWxzZSBsPT09NDYmJm8+LTE/bysrOm89LTF9cmV0dXJuIGF9ZnVuY3Rpb24gYWQodCl7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhdGggbXVzdCBiZSBhIHN0cmluZy4gUmVjZWl2ZWQgIitKU09OLnN0cmluZ2lmeSh0KSl9dmFyIFphLGVaZT1uKCgpPT57WmE9e2Jhc2VuYW1lOmlRdCxkaXJuYW1lOm9RdCxleHRuYW1lOnNRdCxqb2luOm5RdCxzZXA6Ii8ifX0pO2Z1bmN0aW9uIGRRdCgpe3JldHVybiIvIn12YXIgdFplLGFaZT1uKCgpPT57dFplPXtjd2Q6ZFF0fX0pO2Z1bmN0aW9uIHY2KHQpe3JldHVybiEhKHQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCImJiJocmVmImluIHQmJnQuaHJlZiYmInByb3RvY29sImluIHQmJnQucHJvdG9jb2wmJnQuYXV0aD09PXZvaWQgMCl9dmFyIEJRPW4oKCk9Pnt9KTtmdW5jdGlvbiByWmUodCl7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXQ9bmV3IFVSTCh0KTtlbHNlIGlmKCF2Nih0KSl7bGV0IGU9bmV3IFR5cGVFcnJvcignVGhlICJwYXRoIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIGFuIGluc3RhbmNlIG9mIFVSTC4gUmVjZWl2ZWQgYCcrdCsiYCIpO3Rocm93IGUuY29kZT0iRVJSX0lOVkFMSURfQVJHX1RZUEUiLGV9aWYodC5wcm90b2NvbCE9PSJmaWxlOiIpe2xldCBlPW5ldyBUeXBlRXJyb3IoIlRoZSBVUkwgbXVzdCBiZSBvZiBzY2hlbWUgZmlsZSIpO3Rocm93IGUuY29kZT0iRVJSX0lOVkFMSURfVVJMX1NDSEVNRSIsZX1yZXR1cm4gZlF0KHQpfWZ1bmN0aW9uIGZRdCh0KXtpZih0Lmhvc3RuYW1lIT09IiIpe2xldCByPW5ldyBUeXBlRXJyb3IoJ0ZpbGUgVVJMIGhvc3QgbXVzdCBiZSAibG9jYWxob3N0IiBvciBlbXB0eSBvbiBkYXJ3aW4nKTt0aHJvdyByLmNvZGU9IkVSUl9JTlZBTElEX0ZJTEVfVVJMX0hPU1QiLHJ9bGV0IGU9dC5wYXRobmFtZSxhPS0xO2Zvcig7KythPGUubGVuZ3RoOylpZihlLmNvZGVQb2ludEF0KGEpPT09MzcmJmUuY29kZVBvaW50QXQoYSsxKT09PTUwKXtsZXQgcj1lLmNvZGVQb2ludEF0KGErMik7aWYocj09PTcwfHxyPT09MTAyKXtsZXQgaT1uZXcgVHlwZUVycm9yKCJGaWxlIFVSTCBwYXRoIG11c3Qgbm90IGluY2x1ZGUgZW5jb2RlZCAvIGNoYXJhY3RlcnMiKTt0aHJvdyBpLmNvZGU9IkVSUl9JTlZBTElEX0ZJTEVfVVJMX1BBVEgiLGl9fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoZSl9dmFyIGlaZT1uKCgpPT57QlEoKTtCUSgpfSk7ZnVuY3Rpb24gSFEodCxlKXtpZih0JiZ0LmluY2x1ZGVzKFphLnNlcCkpdGhyb3cgbmV3IEVycm9yKCJgIitlKyJgIGNhbm5vdCBiZSBhIHBhdGg6IGRpZCBub3QgZXhwZWN0IGAiK1phLnNlcCsiYCIpfWZ1bmN0aW9uIHFRKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJgIitlKyJgIGNhbm5vdCBiZSBlbXB0eSIpfWZ1bmN0aW9uIG9aZSh0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiU2V0dGluZyBgIitlKyJgIHJlcXVpcmVzIGBwYXRoYCB0byBiZSBzZXQgdG9vIil9ZnVuY3Rpb24gdVF0KHQpe3JldHVybiEhKHQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmImJ5dGVMZW5ndGgiaW4gdCYmImJ5dGVPZmZzZXQiaW4gdCl9dmFyIFJRLHJkLHNaZT1uKCgpPT57SlllKCk7ZVplKCk7YVplKCk7aVplKCk7UlE9WyJoaXN0b3J5IiwicGF0aCIsImJhc2VuYW1lIiwic3RlbSIsImV4dG5hbWUiLCJkaXJuYW1lIl0scmQ9Y2xhc3N7Y29uc3RydWN0b3IoZSl7bGV0IGE7ZT92NihlKT9hPXtwYXRoOmV9OnR5cGVvZiBlPT0ic3RyaW5nInx8dVF0KGUpP2E9e3ZhbHVlOmV9OmE9ZTphPXt9LHRoaXMuY3dkPSJjd2QiaW4gYT8iIjp0WmUuY3dkKCksdGhpcy5kYXRhPXt9LHRoaXMuaGlzdG9yeT1bXSx0aGlzLm1lc3NhZ2VzPVtdLHRoaXMudmFsdWUsdGhpcy5tYXAsdGhpcy5yZXN1bHQsdGhpcy5zdG9yZWQ7bGV0IHI9LTE7Zm9yKDsrK3I8UlEubGVuZ3RoOyl7bGV0IG89UlFbcl07byBpbiBhJiZhW29dIT09dm9pZCAwJiZhW29dIT09bnVsbCYmKHRoaXNbb109bz09PSJoaXN0b3J5Ij9bLi4uYVtvXV06YVtvXSl9bGV0IGk7Zm9yKGkgaW4gYSlSUS5pbmNsdWRlcyhpKXx8KHRoaXNbaV09YVtpXSl9Z2V0IGJhc2VuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP1phLmJhc2VuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBiYXNlbmFtZShlKXtxUShlLCJiYXNlbmFtZSIpLEhRKGUsImJhc2VuYW1lIiksdGhpcy5wYXRoPVphLmpvaW4odGhpcy5kaXJuYW1lfHwiIixlKX1nZXQgZGlybmFtZSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9aYS5kaXJuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBkaXJuYW1lKGUpe29aZSh0aGlzLmJhc2VuYW1lLCJkaXJuYW1lIiksdGhpcy5wYXRoPVphLmpvaW4oZXx8IiIsdGhpcy5iYXNlbmFtZSl9Z2V0IGV4dG5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/WmEuZXh0bmFtZSh0aGlzLnBhdGgpOnZvaWQgMH1zZXQgZXh0bmFtZShlKXtpZihIUShlLCJleHRuYW1lIiksb1plKHRoaXMuZGlybmFtZSwiZXh0bmFtZSIpLGUpe2lmKGUuY29kZVBvaW50QXQoMCkhPT00Nil0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gIik7aWYoZS5pbmNsdWRlcygiLiIsMSkpdGhyb3cgbmV3IEVycm9yKCJgZXh0bmFtZWAgY2Fubm90IGNvbnRhaW4gbXVsdGlwbGUgZG90cyIpfXRoaXMucGF0aD1aYS5qb2luKHRoaXMuZGlybmFtZSx0aGlzLnN0ZW0rKGV8fCIiKSl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5oaXN0b3J5W3RoaXMuaGlzdG9yeS5sZW5ndGgtMV19c2V0IHBhdGgoZSl7djYoZSkmJihlPXJaZShlKSkscVEoZSwicGF0aCIpLHRoaXMucGF0aCE9PWUmJnRoaXMuaGlzdG9yeS5wdXNoKGUpfWdldCBzdGVtKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP1phLmJhc2VuYW1lKHRoaXMucGF0aCx0aGlzLmV4dG5hbWUpOnZvaWQgMH1zZXQgc3RlbShlKXtxUShlLCJzdGVtIiksSFEoZSwic3RlbSIpLHRoaXMucGF0aD1aYS5qb2luKHRoaXMuZGlybmFtZXx8IiIsZSsodGhpcy5leHRuYW1lfHwiIikpfWZhaWwoZSxhLHIpe2xldCBpPXRoaXMubWVzc2FnZShlLGEscik7dGhyb3cgaS5mYXRhbD0hMCxpfWluZm8oZSxhLHIpe2xldCBpPXRoaXMubWVzc2FnZShlLGEscik7cmV0dXJuIGkuZmF0YWw9dm9pZCAwLGl9bWVzc2FnZShlLGEscil7bGV0IGk9bmV3IFkxKGUsYSxyKTtyZXR1cm4gdGhpcy5wYXRoJiYoaS5uYW1lPXRoaXMucGF0aCsiOiIraS5uYW1lLGkuZmlsZT10aGlzLnBhdGgpLGkuZmF0YWw9ITEsdGhpcy5tZXNzYWdlcy5wdXNoKGkpLGl9dG9TdHJpbmcoZSl7cmV0dXJuIHRoaXMudmFsdWU9PT12b2lkIDA/IiI6dHlwZW9mIHRoaXMudmFsdWU9PSJzdHJpbmciP3RoaXMudmFsdWU6bmV3IFRleHREZWNvZGVyKGV8fHZvaWQgMCkuZGVjb2RlKHRoaXMudmFsdWUpfX19KTt2YXIgblplPW4oKCk9PntzWmUoKX0pO3ZhciBsWmUsY1plPW4oKCk9PntsWmU9KGZ1bmN0aW9uKHQpe2xldCByPXRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlLGk9clt0XSxvPWZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkobyxhcmd1bWVudHMpfTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKG8sciksb30pfSk7ZnVuY3Rpb24gVVEodCxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrdCsiYCB3aXRob3V0IGBwYXJzZXJgIil9ZnVuY3Rpb24galEodCxlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrdCsiYCB3aXRob3V0IGBjb21waWxlcmAiKX1mdW5jdGlvbiBXUSh0LGUpe2lmKGUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY2FsbCBgIit0KyJgIG9uIGEgZnJvemVuIHByb2Nlc3Nvci5cbkNyZWF0ZSBhIG5ldyBwcm9jZXNzb3IgZmlyc3QsIGJ5IGNhbGxpbmcgaXQ6IHVzZSBgcHJvY2Vzc29yKClgIGluc3RlYWQgb2YgYHByb2Nlc3NvcmAuIil9ZnVuY3Rpb24gZFplKHQpe2lmKCF0ZCh0KXx8dHlwZW9mIHQudHlwZSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgbm9kZSwgZ290IGAiK3QrImAiKX1mdW5jdGlvbiBmWmUodCxlLGEpe2lmKCFhKXRocm93IG5ldyBFcnJvcigiYCIrdCsiYCBmaW5pc2hlZCBhc3luYy4gVXNlIGAiK2UrImAgaW5zdGVhZCIpfWZ1bmN0aW9uIEpSKHQpe3JldHVybiBoUXQodCk/dDpuZXcgcmQodCl9ZnVuY3Rpb24gaFF0KHQpe3JldHVybiEhKHQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmIm1lc3NhZ2UiaW4gdCYmIm1lc3NhZ2VzImluIHQpfWZ1bmN0aW9uIG1RdCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmcifHxnUXQodCl9ZnVuY3Rpb24gZ1F0KHQpe3JldHVybiEhKHQmJnR5cGVvZiB0PT0ib2JqZWN0IiYmImJ5dGVMZW5ndGgiaW4gdCYmImJ5dGVPZmZzZXQiaW4gdCl9dmFyIGVILHBRdCxWUSxpZCx1WmU9bigoKT0+e1BZZSgpO2VIPU4yKFVZZSgpLDEpO0ZvKCk7alllKCk7WVllKCk7blplKCk7Y1plKCk7cFF0PXt9Lmhhc093blByb3BlcnR5LFZRPWNsYXNzIHQgZXh0ZW5kcyBsWmV7Y29uc3RydWN0b3IoKXtzdXBlcigiY29weSIpLHRoaXMuQ29tcGlsZXI9dm9pZCAwLHRoaXMuUGFyc2VyPXZvaWQgMCx0aGlzLmF0dGFjaGVycz1bXSx0aGlzLmNvbXBpbGVyPXZvaWQgMCx0aGlzLmZyZWV6ZUluZGV4PS0xLHRoaXMuZnJvemVuPXZvaWQgMCx0aGlzLm5hbWVzcGFjZT17fSx0aGlzLnBhcnNlcj12b2lkIDAsdGhpcy50cmFuc2Zvcm1lcnM9SVEoKX1jb3B5KCl7bGV0IGU9bmV3IHQsYT0tMTtmb3IoOysrYTx0aGlzLmF0dGFjaGVycy5sZW5ndGg7KXtsZXQgcj10aGlzLmF0dGFjaGVyc1thXTtlLnVzZSguLi5yKX1yZXR1cm4gZS5kYXRhKCgwLGVILmRlZmF1bHQpKCEwLHt9LHRoaXMubmFtZXNwYWNlKSksZX1kYXRhKGUsYSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9hcmd1bWVudHMubGVuZ3RoPT09Mj8oV1EoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZVtlXT1hLHRoaXMpOnBRdC5jYWxsKHRoaXMubmFtZXNwYWNlLGUpJiZ0aGlzLm5hbWVzcGFjZVtlXXx8dm9pZCAwOmU/KFdRKCJkYXRhIix0aGlzLmZyb3plbiksdGhpcy5uYW1lc3BhY2U9ZSx0aGlzKTp0aGlzLm5hbWVzcGFjZX1mcmVlemUoKXtpZih0aGlzLmZyb3plbilyZXR1cm4gdGhpcztsZXQgZT10aGlzO2Zvcig7Kyt0aGlzLmZyZWV6ZUluZGV4PHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2xldFthLC4uLnJdPXRoaXMuYXR0YWNoZXJzW3RoaXMuZnJlZXplSW5kZXhdO2lmKHJbMF09PT0hMSljb250aW51ZTtyWzBdPT09ITAmJihyWzBdPXZvaWQgMCk7bGV0IGk9YS5jYWxsKGUsLi4ucik7dHlwZW9mIGk9PSJmdW5jdGlvbiImJnRoaXMudHJhbnNmb3JtZXJzLnVzZShpKX1yZXR1cm4gdGhpcy5mcm96ZW49ITAsdGhpcy5mcmVlemVJbmRleD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdGhpc31wYXJzZShlKXt0aGlzLmZyZWV6ZSgpO2xldCBhPUpSKGUpLHI9dGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyO3JldHVybiBVUSgicGFyc2UiLHIpLHIoU3RyaW5nKGEpLGEpfXByb2Nlc3MoZSxhKXtsZXQgcj10aGlzO3JldHVybiB0aGlzLmZyZWV6ZSgpLFVRKCJwcm9jZXNzIix0aGlzLnBhcnNlcnx8dGhpcy5QYXJzZXIpLGpRKCJwcm9jZXNzIix0aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyKSxhP2kodm9pZCAwLGEpOm5ldyBQcm9taXNlKGkpO2Z1bmN0aW9uIGkobyxzKXtsZXQgbD1KUihlKSxmPXIucGFyc2UobCk7ci5ydW4oZixsLGZ1bmN0aW9uKHUsZCxoKXtpZih1fHwhZHx8IWgpcmV0dXJuIGModSk7bGV0IGc9ZCxiPXIuc3RyaW5naWZ5KGcsaCk7bVF0KGIpP2gudmFsdWU9YjpoLnJlc3VsdD1iLGModSxoKX0pO2Z1bmN0aW9uIGModSxkKXt1fHwhZD9zKHUpOm8/byhkKTphKHZvaWQgMCxkKX19fXByb2Nlc3NTeW5jKGUpe2xldCBhPSExLHI7cmV0dXJuIHRoaXMuZnJlZXplKCksVVEoInByb2Nlc3NTeW5jIix0aGlzLnBhcnNlcnx8dGhpcy5QYXJzZXIpLGpRKCJwcm9jZXNzU3luYyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlciksdGhpcy5wcm9jZXNzKGUsaSksZlplKCJwcm9jZXNzU3luYyIsInByb2Nlc3MiLGEpLHI7ZnVuY3Rpb24gaShvLHMpe2E9ITAsUFEobykscj1zfX1ydW4oZSxhLHIpe2RaZShlKSx0aGlzLmZyZWV6ZSgpO2xldCBpPXRoaXMudHJhbnNmb3JtZXJzO3JldHVybiFyJiZ0eXBlb2YgYT09ImZ1bmN0aW9uIiYmKHI9YSxhPXZvaWQgMCkscj9vKHZvaWQgMCxyKTpuZXcgUHJvbWlzZShvKTtmdW5jdGlvbiBvKHMsbCl7bGV0IGY9SlIoYSk7aS5ydW4oZSxmLGMpO2Z1bmN0aW9uIGModSxkLGgpe2xldCBnPWR8fGU7dT9sKHUpOnM/cyhnKTpyKHZvaWQgMCxnLGgpfX19cnVuU3luYyhlLGEpe2xldCByPSExLGk7cmV0dXJuIHRoaXMucnVuKGUsYSxvKSxmWmUoInJ1blN5bmMiLCJydW4iLHIpLGk7ZnVuY3Rpb24gbyhzLGwpe1BRKHMpLGk9bCxyPSEwfX1zdHJpbmdpZnkoZSxhKXt0aGlzLmZyZWV6ZSgpO2xldCByPUpSKGEpLGk9dGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlcjtyZXR1cm4galEoInN0cmluZ2lmeSIsaSksZFplKGUpLGkoZSxyKX11c2UoZSwuLi5hKXtsZXQgcj10aGlzLmF0dGFjaGVycyxpPXRoaXMubmFtZXNwYWNlO2lmKFdRKCJ1c2UiLHRoaXMuZnJvemVuKSxlIT1udWxsKWlmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKWYoZSxhKTtlbHNlIGlmKHR5cGVvZiBlPT0ib2JqZWN0IilBcnJheS5pc0FycmF5KGUpP2woZSk6cyhlKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAiK2UrImAiKTtyZXR1cm4gdGhpcztmdW5jdGlvbiBvKGMpe2lmKHR5cGVvZiBjPT0iZnVuY3Rpb24iKWYoYyxbXSk7ZWxzZSBpZih0eXBlb2YgYz09Im9iamVjdCIpaWYoQXJyYXkuaXNBcnJheShjKSl7bGV0W3UsLi4uZF09YztmKHUsZCl9ZWxzZSBzKGMpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCIrYysiYCIpfWZ1bmN0aW9uIHMoYyl7aWYoISgicGx1Z2lucyJpbiBjKSYmISgic2V0dGluZ3MiaW4gYykpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUgYnV0IHJlY2VpdmVkIGFuIGVtcHR5IHByZXNldCwgd2hpY2ggaXMgcHJvYmFibHkgYSBtaXN0YWtlOiBwcmVzZXRzIHR5cGljYWxseSBjb21lIHdpdGggYHBsdWdpbnNgIGFuZCBzb21ldGltZXMgd2l0aCBgc2V0dGluZ3NgLCBidXQgdGhpcyBoYXMgbmVpdGhlciIpO2woYy5wbHVnaW5zKSxjLnNldHRpbmdzJiYoaS5zZXR0aW5ncz0oMCxlSC5kZWZhdWx0KSghMCxpLnNldHRpbmdzLGMuc2V0dGluZ3MpKX1mdW5jdGlvbiBsKGMpe2xldCB1PS0xO2lmKGMhPW51bGwpaWYoQXJyYXkuaXNBcnJheShjKSlmb3IoOysrdTxjLmxlbmd0aDspe2xldCBkPWNbdV07byhkKX1lbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgbGlzdCBvZiBwbHVnaW5zLCBub3QgYCIrYysiYCIpfWZ1bmN0aW9uIGYoYyx1KXtsZXQgZD0tMSxoPS0xO2Zvcig7KytkPHIubGVuZ3RoOylpZihyW2RdWzBdPT09Yyl7aD1kO2JyZWFrfWlmKGg9PT0tMSlyLnB1c2goW2MsLi4udV0pO2Vsc2UgaWYodS5sZW5ndGg+MCl7bGV0W2csLi4uYl09dSx4PXJbaF1bMV07dGQoeCkmJnRkKGcpJiYoZz0oMCxlSC5kZWZhdWx0KSghMCx4LGcpKSxyW2hdPVtjLGcsLi4uYl19fX19LGlkPW5ldyBWUSgpLmZyZWV6ZSgpfSk7dmFyIHBaZT1uKCgpPT57dVplKCl9KTtmdW5jdGlvbiB3Nih0LGUpe2xldCBhPVN0cmluZyh0KTtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgY2hhcmFjdGVyIik7bGV0IHI9MCxpPWEuaW5kZXhPZihlKTtmb3IoO2khPT0tMTspcisrLGk9YS5pbmRleE9mKGUsaStlLmxlbmd0aCk7cmV0dXJuIHJ9dmFyIEdRPW4oKCk9Pnt9KTtmdW5jdGlvbiBsbih0KXtyZXR1cm4gdCE9PW51bGwmJih0PDMyfHx0PT09MTI3KX1mdW5jdGlvbiBQZSh0KXtyZXR1cm4gdCE9PW51bGwmJnQ8LTJ9ZnVuY3Rpb24gd3QodCl7cmV0dXJuIHQhPT1udWxsJiYodDwwfHx0PT09MzIpfWZ1bmN0aW9uIEdlKHQpe3JldHVybiB0PT09LTJ8fHQ9PT0tMXx8dD09PTMyfWZ1bmN0aW9uIEJvKHQpe3JldHVybiBlO2Z1bmN0aW9uIGUoYSl7cmV0dXJuIGEhPT1udWxsJiZhPi0xJiZ0LnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShhKSl9fXZhciBIMSx5MSxoWmUsb2QsbVplLGdaZSxjbixOcixrdD1uKCgpPT57SDE9Qm8oL1tBLVphLXpdLykseTE9Qm8oL1tcZEEtWmEtel0vKSxoWmU9Qm8oL1sjLScqK1wtLTk9P0EtWl4tfl0vKTtvZD1CbygvXGQvKSxtWmU9Qm8oL1tcZEEtRmEtZl0vKSxnWmU9Qm8oL1shLS86LUBbLWB7LX5dLyk7Y249Qm8oL1xwe1B9fFxwe1N9L3UpLE5yPUJvKC9ccy8pfSk7ZnVuY3Rpb24geFF0KHQpe2xldCBlPVtdLGE9LTE7Zm9yKDsrK2E8dC5sZW5ndGg7KWVbYV09TWkodFthXSk7cmV0dXJuIHRIKHIpO2Z1bmN0aW9uIHIoLi4uaSl7bGV0IG89LTE7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKGVbb10uYXBwbHkodGhpcyxpKSlyZXR1cm4hMDtyZXR1cm4hMX19ZnVuY3Rpb24gYlF0KHQpe2xldCBlPXQ7cmV0dXJuIHRIKGEpO2Z1bmN0aW9uIGEocil7bGV0IGk9cixvO2ZvcihvIGluIHQpaWYoaVtvXSE9PWVbb10pcmV0dXJuITE7cmV0dXJuITB9fWZ1bmN0aW9uIHZRdCh0KXtyZXR1cm4gdEgoZSk7ZnVuY3Rpb24gZShhKXtyZXR1cm4gYSYmYS50eXBlPT09dH19ZnVuY3Rpb24gdEgodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShhLHIsaSl7cmV0dXJuISEoeFplKGEpJiZ0LmNhbGwodGhpcyxhLHR5cGVvZiByPT0ibnVtYmVyIj9yOnZvaWQgMCxpfHx2b2lkIDApKX19ZnVuY3Rpb24geVF0KCl7cmV0dXJuITB9ZnVuY3Rpb24geFplKHQpe3JldHVybiB0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYidHlwZSJpbiB0fXZhciBiWmUsTWksdlplPW4oKCk9PntiWmU9KGZ1bmN0aW9uKHQsZSxhLHIsaSl7bGV0IG89TWkoZSk7aWYoYSE9bnVsbCYmKHR5cGVvZiBhIT0ibnVtYmVyInx8YTwwfHxhPT09TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHBvc2l0aXZlIGZpbml0ZSBpbmRleCIpO2lmKHIhPW51bGwmJighYlplKHIpfHwhci5jaGlsZHJlbikpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBwYXJlbnQgbm9kZSIpO2lmKHI9PW51bGwhPShhPT1udWxsKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGJvdGggcGFyZW50IGFuZCBpbmRleCIpO3JldHVybiB4WmUodCk/by5jYWxsKGksdCxhLHIpOiExfSksTWk9KGZ1bmN0aW9uKHQpe2lmKHQ9PW51bGwpcmV0dXJuIHlRdDtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIilyZXR1cm4gdEgodCk7aWYodHlwZW9mIHQ9PSJvYmplY3QiKXJldHVybiBBcnJheS5pc0FycmF5KHQpP3hRdCh0KTpiUXQodCk7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXJldHVybiB2UXQodCk7dGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiwgc3RyaW5nLCBvciBvYmplY3QgYXMgdGVzdCIpfSl9KTt2YXIgYUg9bigoKT0+e3ZaZSgpfSk7dmFyIHlaZT1uKCgpPT57fSk7ZnVuY3Rpb24gc2QodCxlLGEscil7bGV0IGk7dHlwZW9mIGU9PSJmdW5jdGlvbiImJnR5cGVvZiBhIT0iZnVuY3Rpb24iPyhyPWEsYT1lKTppPWU7bGV0IG89TWkoaSkscz1yPy0xOjE7bCh0LHZvaWQgMCxbXSkoKTtmdW5jdGlvbiBsKGYsYyx1KXtsZXQgZD1mJiZ0eXBlb2YgZj09Im9iamVjdCI/Zjp7fTtpZih0eXBlb2YgZC50eXBlPT0ic3RyaW5nIil7bGV0IGc9dHlwZW9mIGQudGFnTmFtZT09InN0cmluZyI/ZC50YWdOYW1lOnR5cGVvZiBkLm5hbWU9PSJzdHJpbmciP2QubmFtZTp2b2lkIDA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGgsIm5hbWUiLHt2YWx1ZToibm9kZSAoIisoZi50eXBlKyhnPyI8IitnKyI+IjoiIikpKyIpIn0pfXJldHVybiBoO2Z1bmN0aW9uIGgoKXtsZXQgZz13WmUsYix4LG07aWYoKCFlfHxvKGYsYyx1W3UubGVuZ3RoLTFdfHx2b2lkIDApKSYmKGc9d1F0KGEoZix1KSksZ1swXT09PWRuKSlyZXR1cm4gZztpZigiY2hpbGRyZW4iaW4gZiYmZi5jaGlsZHJlbil7bGV0IHY9ZjtpZih2LmNoaWxkcmVuJiZnWzBdIT09aUgpZm9yKHg9KHI/di5jaGlsZHJlbi5sZW5ndGg6LTEpK3MsbT11LmNvbmNhdCh2KTt4Pi0xJiZ4PHYuY2hpbGRyZW4ubGVuZ3RoOyl7bGV0IHk9di5jaGlsZHJlblt4XTtpZihiPWwoeSx4LG0pKCksYlswXT09PWRuKXJldHVybiBiO3g9dHlwZW9mIGJbMV09PSJudW1iZXIiP2JbMV06eCtzfX1yZXR1cm4gZ319fWZ1bmN0aW9uIHdRdCh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OnR5cGVvZiB0PT0ibnVtYmVyIj9bckgsdF06dD09bnVsbD93WmU6W3RdfXZhciB3WmUsckgsZG4saUgsTVplPW4oKCk9PnthSCgpO3laZSgpO3daZT1bXSxySD0hMCxkbj0hMSxpSD0ic2tpcCJ9KTt2YXIgb0g9bigoKT0+e01aZSgpfSk7ZnVuY3Rpb24gWVEodCxlLGEpe2xldCBpPU1pKChhfHx7fSkuaWdub3JlfHxbXSksbz1NUXQoZSkscz0tMTtmb3IoOysrczxvLmxlbmd0aDspc2QodCwidGV4dCIsbCk7ZnVuY3Rpb24gbChjLHUpe2xldCBkPS0xLGg7Zm9yKDsrK2Q8dS5sZW5ndGg7KXtsZXQgZz11W2RdLGI9aD9oLmNoaWxkcmVuOnZvaWQgMDtpZihpKGcsYj9iLmluZGV4T2YoZyk6dm9pZCAwLGgpKXJldHVybjtoPWd9aWYoaClyZXR1cm4gZihjLHUpfWZ1bmN0aW9uIGYoYyx1KXtsZXQgZD11W3UubGVuZ3RoLTFdLGg9b1tzXVswXSxnPW9bc11bMV0sYj0wLG09ZC5jaGlsZHJlbi5pbmRleE9mKGMpLHY9ITEseT1bXTtoLmxhc3RJbmRleD0wO2xldCB3PWguZXhlYyhjLnZhbHVlKTtmb3IoO3c7KXtsZXQgRT13LmluZGV4LEM9e2luZGV4OncuaW5kZXgsaW5wdXQ6dy5pbnB1dCxzdGFjazpbLi4udSxjXX0sej1nKC4uLncsQyk7aWYodHlwZW9mIHo9PSJzdHJpbmciJiYoej16Lmxlbmd0aD4wP3t0eXBlOiJ0ZXh0Iix2YWx1ZTp6fTp2b2lkIDApLHo9PT0hMT9oLmxhc3RJbmRleD1FKzE6KGIhPT1FJiZ5LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmMudmFsdWUuc2xpY2UoYixFKX0pLEFycmF5LmlzQXJyYXkoeik/eS5wdXNoKC4uLnopOnomJnkucHVzaCh6KSxiPUUrd1swXS5sZW5ndGgsdj0hMCksIWguZ2xvYmFsKWJyZWFrO3c9aC5leGVjKGMudmFsdWUpfXJldHVybiB2PyhiPGMudmFsdWUubGVuZ3RoJiZ5LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmMudmFsdWUuc2xpY2UoYil9KSxkLmNoaWxkcmVuLnNwbGljZShtLDEsLi4ueSkpOnk9W2NdLG0reS5sZW5ndGh9fWZ1bmN0aW9uIE1RdCh0KXtsZXQgZT1bXTtpZighQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBmaW5kIGFuZCByZXBsYWNlIHR1cGxlIG9yIGxpc3Qgb2YgdHVwbGVzIik7bGV0IGE9IXRbMF18fEFycmF5LmlzQXJyYXkodFswXSk/dDpbdF0scj0tMTtmb3IoOysrcjxhLmxlbmd0aDspe2xldCBpPWFbcl07ZS5wdXNoKFt6UXQoaVswXSksa1F0KGlbMV0pXSl9cmV0dXJuIGV9ZnVuY3Rpb24gelF0KHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/bmV3IFJlZ0V4cCgkcyh0KSwiZyIpOnR9ZnVuY3Rpb24ga1F0KHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj90OmZ1bmN0aW9uKCl7cmV0dXJuIHR9fXZhciB6WmU9bigoKT0+e3NPKCk7b0goKTthSCgpfSk7dmFyIGtaZT1uKCgpPT57elplKCl9KTtmdW5jdGlvbiBLUSgpe3JldHVybnt0cmFuc2Zvcm1zOltBUXRdLGVudGVyOntsaXRlcmFsQXV0b2xpbms6U1F0LGxpdGVyYWxBdXRvbGlua0VtYWlsOlFRLGxpdGVyYWxBdXRvbGlua0h0dHA6UVEsbGl0ZXJhbEF1dG9saW5rV3d3OlFRfSxleGl0OntsaXRlcmFsQXV0b2xpbms6X1F0LGxpdGVyYWxBdXRvbGlua0VtYWlsOlRRdCxsaXRlcmFsQXV0b2xpbmtIdHRwOkNRdCxsaXRlcmFsQXV0b2xpbmtXd3c6TFF0fX19ZnVuY3Rpb24gSlEoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJAIixiZWZvcmU6IlsrXFwtLlxcd10iLGFmdGVyOiJbXFwtLlxcd10iLGluQ29uc3RydWN0OlpRLG5vdEluQ29uc3RydWN0OlhRfSx7Y2hhcmFjdGVyOiIuIixiZWZvcmU6IltXd10iLGFmdGVyOiJbXFwtLlxcd10iLGluQ29uc3RydWN0OlpRLG5vdEluQ29uc3RydWN0OlhRfSx7Y2hhcmFjdGVyOiI6IixiZWZvcmU6Iltwc10iLGFmdGVyOiJcXC8iLGluQ29uc3RydWN0OlpRLG5vdEluQ29uc3RydWN0OlhRfV19fWZ1bmN0aW9uIFNRdCh0KXt0aGlzLmVudGVyKHt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoiIixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gUVEodCl7dGhpcy5jb25maWcuZW50ZXIuYXV0b2xpbmtQcm90b2NvbC5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gQ1F0KHQpe3RoaXMuY29uZmlnLmV4aXQuYXV0b2xpbmtQcm90b2NvbC5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gTFF0KHQpe3RoaXMuY29uZmlnLmV4aXQuZGF0YS5jYWxsKHRoaXMsdCk7bGV0IGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtlLnR5cGUsZS51cmw9Imh0dHA6Ly8iK3RoaXMuc2xpY2VTZXJpYWxpemUodCl9ZnVuY3Rpb24gVFF0KHQpe3RoaXMuY29uZmlnLmV4aXQuYXV0b2xpbmtFbWFpbC5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gX1F0KHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBBUXQodCl7WVEodCxbWy8oaHR0cHM/OlwvXC98d3d3KD89XC4pKShbLS5cd10rKShbXiBcdFxyXG5dKikvZ2ksJFF0XSxbLyg/PD1efFxzfFxwe1B9fFxwe1N9KShbLS5cdytdKylAKFstXHddKyg/OlwuWy1cd10rKSspL2d1LERRdF1dLHtpZ25vcmU6WyJsaW5rIiwibGlua1JlZmVyZW5jZSJdfSl9ZnVuY3Rpb24gJFF0KHQsZSxhLHIsaSl7bGV0IG89IiI7aWYoIVNaZShpKXx8KC9edy9pLnRlc3QoZSkmJihhPWUrYSxlPSIiLG89Imh0dHA6Ly8iKSwhRVF0KGEpKSlyZXR1cm4hMTtsZXQgcz1OUXQoYStyKTtpZighc1swXSlyZXR1cm4hMTtsZXQgbD17dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6bytlK3NbMF0sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTplK3NbMF19XX07cmV0dXJuIHNbMV0/W2wse3R5cGU6InRleHQiLHZhbHVlOnNbMV19XTpsfWZ1bmN0aW9uIERRdCh0LGUsYSxyKXtyZXR1cm4hU1plKHIsITApfHwvWy1cZF9dJC8udGVzdChhKT8hMTp7dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6Im1haWx0bzoiK2UrIkAiK2EsY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTplKyJAIithfV19fWZ1bmN0aW9uIEVRdCh0KXtsZXQgZT10LnNwbGl0KCIuIik7cmV0dXJuIShlLmxlbmd0aDwyfHxlW2UubGVuZ3RoLTFdJiYoL18vLnRlc3QoZVtlLmxlbmd0aC0xXSl8fCEvW2EtekEtWlxkXS8udGVzdChlW2UubGVuZ3RoLTFdKSl8fGVbZS5sZW5ndGgtMl0mJigvXy8udGVzdChlW2UubGVuZ3RoLTJdKXx8IS9bYS16QS1aXGRdLy50ZXN0KGVbZS5sZW5ndGgtMl0pKSl9ZnVuY3Rpb24gTlF0KHQpe2xldCBlPS9bISImJyksLjo7PD4/XF19XSskLy5leGVjKHQpO2lmKCFlKXJldHVyblt0LHZvaWQgMF07dD10LnNsaWNlKDAsZS5pbmRleCk7bGV0IGE9ZVswXSxyPWEuaW5kZXhPZigiKSIpLGk9dzYodCwiKCIpLG89dzYodCwiKSIpO2Zvcig7ciE9PS0xJiZpPm87KXQrPWEuc2xpY2UoMCxyKzEpLGE9YS5zbGljZShyKzEpLHI9YS5pbmRleE9mKCIpIiksbysrO3JldHVyblt0LGFdfWZ1bmN0aW9uIFNaZSh0LGUpe2xldCBhPXQuaW5wdXQuY2hhckNvZGVBdCh0LmluZGV4LTEpO3JldHVybih0LmluZGV4PT09MHx8TnIoYSl8fGNuKGEpKSYmKCFlfHxhIT09NDcpfXZhciBaUSxYUSxDWmU9bigoKT0+e0dRKCk7Rm8oKTtrdCgpO2taZSgpO1pRPSJwaHJhc2luZyIsWFE9WyJhdXRvbGluayIsImxpbmsiLCJpbWFnZSIsImxhYmVsIl19KTt2YXIgTFplPW4oKCk9PntDWmUoKX0pO2Z1bmN0aW9uIHcxKHQpe3JldHVybiB0LnJlcGxhY2UoL1tcdFxuXHIgXSsvZywiICIpLnJlcGxhY2UoL14gfCAkL2csIiIpLnRvTG93ZXJDYXNlKCkudG9VcHBlckNhc2UoKX12YXIgUm89bigoKT0+e30pO2Z1bmN0aW9uIFBRdCgpe3RoaXMuYnVmZmVyKCl9ZnVuY3Rpb24gSVF0KHQpe3RoaXMuZW50ZXIoe3R5cGU6ImZvb3Rub3RlUmVmZXJlbmNlIixpZGVudGlmaWVyOiIiLGxhYmVsOiIifSx0KX1mdW5jdGlvbiBGUXQoKXt0aGlzLmJ1ZmZlcigpfWZ1bmN0aW9uIE9RdCh0KXt0aGlzLmVudGVyKHt0eXBlOiJmb290bm90ZURlZmluaXRpb24iLGlkZW50aWZpZXI6IiIsbGFiZWw6IiIsY2hpbGRyZW46W119LHQpfWZ1bmN0aW9uIEJRdCh0KXtsZXQgZT10aGlzLnJlc3VtZSgpLGE9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTthLnR5cGUsYS5pZGVudGlmaWVyPXcxKHRoaXMuc2xpY2VTZXJpYWxpemUodCkpLnRvTG93ZXJDYXNlKCksYS5sYWJlbD1lfWZ1bmN0aW9uIFJRdCh0KXt0aGlzLmV4aXQodCl9ZnVuY3Rpb24gSFF0KHQpe2xldCBlPXRoaXMucmVzdW1lKCksYT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2EudHlwZSxhLmlkZW50aWZpZXI9dzEodGhpcy5zbGljZVNlcmlhbGl6ZSh0KSkudG9Mb3dlckNhc2UoKSxhLmxhYmVsPWV9ZnVuY3Rpb24gcVF0KHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBWUXQoKXtyZXR1cm4iWyJ9ZnVuY3Rpb24gVFplKHQsZSxhLHIpe2xldCBpPWEuY3JlYXRlVHJhY2tlcihyKSxvPWkubW92ZSgiW14iKSxzPWEuZW50ZXIoImZvb3Rub3RlUmVmZXJlbmNlIiksbD1hLmVudGVyKCJyZWZlcmVuY2UiKTtyZXR1cm4gbys9aS5tb3ZlKGEuc2FmZShhLmFzc29jaWF0aW9uSWQodCkse2FmdGVyOiJdIixiZWZvcmU6b30pKSxsKCkscygpLG8rPWkubW92ZSgiXSIpLG99ZnVuY3Rpb24gZUsoKXtyZXR1cm57ZW50ZXI6e2dmbUZvb3Rub3RlQ2FsbFN0cmluZzpQUXQsZ2ZtRm9vdG5vdGVDYWxsOklRdCxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZzpGUXQsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uOk9RdH0sZXhpdDp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOkJRdCxnZm1Gb290bm90ZUNhbGw6UlF0LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOkhRdCxnZm1Gb290bm90ZURlZmluaXRpb246cVF0fX19ZnVuY3Rpb24gdEsodCl7bGV0IGU9ITE7cmV0dXJuIHQmJnQuZmlyc3RMaW5lQmxhbmsmJihlPSEwKSx7aGFuZGxlcnM6e2Zvb3Rub3RlRGVmaW5pdGlvbjphLGZvb3Rub3RlUmVmZXJlbmNlOlRaZX0sdW5zYWZlOlt7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicGhyYXNpbmciLCJyZWZlcmVuY2UiXX1dfTtmdW5jdGlvbiBhKHIsaSxvLHMpe2xldCBsPW8uY3JlYXRlVHJhY2tlcihzKSxmPWwubW92ZSgiW14iKSxjPW8uZW50ZXIoImZvb3Rub3RlRGVmaW5pdGlvbiIpLHU9by5lbnRlcigibGFiZWwiKTtyZXR1cm4gZis9bC5tb3ZlKG8uc2FmZShvLmFzc29jaWF0aW9uSWQocikse2JlZm9yZTpmLGFmdGVyOiJdIn0pKSx1KCksZis9bC5tb3ZlKCJdOiIpLHIuY2hpbGRyZW4mJnIuY2hpbGRyZW4ubGVuZ3RoPjAmJihsLnNoaWZ0KDQpLGYrPWwubW92ZSgoZT9gCmA6IiAiKStvLmluZGVudExpbmVzKG8uY29udGFpbmVyRmxvdyhyLGwuY3VycmVudCgpKSxlP19aZTpVUXQpKSksYygpLGZ9fWZ1bmN0aW9uIFVRdCh0LGUsYSl7cmV0dXJuIGU9PT0wP3Q6X1plKHQsZSxhKX1mdW5jdGlvbiBfWmUodCxlLGEpe3JldHVybihhPyIiOiIgICAgIikrdH12YXIgQVplPW4oKCk9PntGbygpO1JvKCk7VFplLnBlZWs9VlF0fSk7dmFyICRaZT1uKCgpPT57QVplKCl9KTtmdW5jdGlvbiBhSygpe3JldHVybntjYW5Db250YWluRW9sczpbImRlbGV0ZSJdLGVudGVyOntzdHJpa2V0aHJvdWdoOldRdH0sZXhpdDp7c3RyaWtldGhyb3VnaDpHUXR9fX1mdW5jdGlvbiBySygpe3JldHVybnt1bnNhZmU6W3tjaGFyYWN0ZXI6In4iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6alF0fV0saGFuZGxlcnM6e2RlbGV0ZTpEWmV9fX1mdW5jdGlvbiBXUXQodCl7dGhpcy5lbnRlcih7dHlwZToiZGVsZXRlIixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gR1F0KHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBEWmUodCxlLGEscil7bGV0IGk9YS5jcmVhdGVUcmFja2VyKHIpLG89YS5lbnRlcigic3RyaWtldGhyb3VnaCIpLHM9aS5tb3ZlKCJ+fiIpO3JldHVybiBzKz1hLmNvbnRhaW5lclBocmFzaW5nKHQsey4uLmkuY3VycmVudCgpLGJlZm9yZTpzLGFmdGVyOiJ+In0pLHMrPWkubW92ZSgifn4iKSxvKCksc31mdW5jdGlvbiBZUXQoKXtyZXR1cm4ifiJ9dmFyIGpRdCxFWmU9bigoKT0+e2pRdD1bImF1dG9saW5rIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiZGVzdGluYXRpb25SYXciLCJyZWZlcmVuY2UiLCJ0aXRsZVF1b3RlIiwidGl0bGVBcG9zdHJvcGhlIl07RFplLnBlZWs9WVF0fSk7dmFyIE5aZT1uKCgpPT57RVplKCl9KTtmdW5jdGlvbiBaUXQodCl7cmV0dXJuIHQubGVuZ3RofWZ1bmN0aW9uIElaZSh0LGUpe2xldCBhPWV8fHt9LHI9KGEuYWxpZ258fFtdKS5jb25jYXQoKSxpPWEuc3RyaW5nTGVuZ3RofHxaUXQsbz1bXSxzPVtdLGw9W10sZj1bXSxjPTAsdT0tMTtmb3IoOysrdTx0Lmxlbmd0aDspe2xldCB4PVtdLG09W10sdj0tMTtmb3IodFt1XS5sZW5ndGg+YyYmKGM9dFt1XS5sZW5ndGgpOysrdjx0W3VdLmxlbmd0aDspe2xldCB5PVhRdCh0W3VdW3ZdKTtpZihhLmFsaWduRGVsaW1pdGVycyE9PSExKXtsZXQgdz1pKHkpO21bdl09dywoZlt2XT09PXZvaWQgMHx8dz5mW3ZdKSYmKGZbdl09dyl9eC5wdXNoKHkpfXNbdV09eCxsW3VdPW19bGV0IGQ9LTE7aWYodHlwZW9mIHI9PSJvYmplY3QiJiYibGVuZ3RoImluIHIpZm9yKDsrK2Q8Yzspb1tkXT1QWmUocltkXSk7ZWxzZXtsZXQgeD1QWmUocik7Zm9yKDsrK2Q8Yzspb1tkXT14fWQ9LTE7bGV0IGg9W10sZz1bXTtmb3IoOysrZDxjOyl7bGV0IHg9b1tkXSxtPSIiLHY9IiI7eD09PTk5PyhtPSI6Iix2PSI6Iik6eD09PTEwOD9tPSI6Ijp4PT09MTE0JiYodj0iOiIpO2xldCB5PWEuYWxpZ25EZWxpbWl0ZXJzPT09ITE/MTpNYXRoLm1heCgxLGZbZF0tbS5sZW5ndGgtdi5sZW5ndGgpLHc9bSsiLSIucmVwZWF0KHkpK3Y7YS5hbGlnbkRlbGltaXRlcnMhPT0hMSYmKHk9bS5sZW5ndGgreSt2Lmxlbmd0aCx5PmZbZF0mJihmW2RdPXkpLGdbZF09eSksaFtkXT13fXMuc3BsaWNlKDEsMCxoKSxsLnNwbGljZSgxLDAsZyksdT0tMTtsZXQgYj1bXTtmb3IoOysrdTxzLmxlbmd0aDspe2xldCB4PXNbdV0sbT1sW3VdO2Q9LTE7bGV0IHY9W107Zm9yKDsrK2Q8Yzspe2xldCB5PXhbZF18fCIiLHc9IiIsRT0iIjtpZihhLmFsaWduRGVsaW1pdGVycyE9PSExKXtsZXQgQz1mW2RdLShtW2RdfHwwKSx6PW9bZF07ej09PTExND93PSIgIi5yZXBlYXQoQyk6ej09PTk5P0MlMj8odz0iICIucmVwZWF0KEMvMisuNSksRT0iICIucmVwZWF0KEMvMi0uNSkpOih3PSIgIi5yZXBlYXQoQy8yKSxFPXcpOkU9IiAiLnJlcGVhdChDKX1hLmRlbGltaXRlclN0YXJ0IT09ITEmJiFkJiZ2LnB1c2goInwiKSxhLnBhZGRpbmchPT0hMSYmIShhLmFsaWduRGVsaW1pdGVycz09PSExJiZ5PT09IiIpJiYoYS5kZWxpbWl0ZXJTdGFydCE9PSExfHxkKSYmdi5wdXNoKCIgIiksYS5hbGlnbkRlbGltaXRlcnMhPT0hMSYmdi5wdXNoKHcpLHYucHVzaCh5KSxhLmFsaWduRGVsaW1pdGVycyE9PSExJiZ2LnB1c2goRSksYS5wYWRkaW5nIT09ITEmJnYucHVzaCgiICIpLChhLmRlbGltaXRlckVuZCE9PSExfHxkIT09Yy0xKSYmdi5wdXNoKCJ8Iil9Yi5wdXNoKGEuZGVsaW1pdGVyRW5kPT09ITE/di5qb2luKCIiKS5yZXBsYWNlKC8gKyQvLCIiKTp2LmpvaW4oIiIpKX1yZXR1cm4gYi5qb2luKGAKYCl9ZnVuY3Rpb24gWFF0KHQpe3JldHVybiB0PT1udWxsPyIiOlN0cmluZyh0KX1mdW5jdGlvbiBQWmUodCl7bGV0IGU9dHlwZW9mIHQ9PSJzdHJpbmciP3QuY29kZVBvaW50QXQoMCk6MDtyZXR1cm4gZT09PTY3fHxlPT09OTk/OTk6ZT09PTc2fHxlPT09MTA4PzEwODplPT09ODJ8fGU9PT0xMTQ/MTE0OjB9dmFyIEZaZT1uKCgpPT57fSk7ZnVuY3Rpb24gc0godCxlKXtsZXQgYT1lfHx7fTtmdW5jdGlvbiByKGksLi4ubyl7bGV0IHM9ci5pbnZhbGlkLGw9ci5oYW5kbGVycztpZihpJiZPWmUuY2FsbChpLHQpKXtsZXQgZj1TdHJpbmcoaVt0XSk7cz1PWmUuY2FsbChsLGYpP2xbZl06ci51bmtub3dufWlmKHMpcmV0dXJuIHMuY2FsbCh0aGlzLGksLi4ubyl9cmV0dXJuIHIuaGFuZGxlcnM9YS5oYW5kbGVyc3x8e30sci5pbnZhbGlkPWEuaW52YWxpZCxyLnVua25vd249YS51bmtub3duLHJ9dmFyIE9aZSxpSz1uKCgpPT57T1plPXt9Lmhhc093blByb3BlcnR5fSk7ZnVuY3Rpb24gb0sodCxlKXtsZXQgYT0tMSxyO2lmKGUuZXh0ZW5zaW9ucylmb3IoOysrYTxlLmV4dGVuc2lvbnMubGVuZ3RoOylvSyh0LGUuZXh0ZW5zaW9uc1thXSk7Zm9yKHIgaW4gZSlpZihRUXQuY2FsbChlLHIpKXN3aXRjaChyKXtjYXNlImV4dGVuc2lvbnMiOmJyZWFrO2Nhc2UidW5zYWZlIjp7QlplKHRbcl0sZVtyXSk7YnJlYWt9Y2FzZSJqb2luIjp7QlplKHRbcl0sZVtyXSk7YnJlYWt9Y2FzZSJoYW5kbGVycyI6e0tRdCh0W3JdLGVbcl0pO2JyZWFrfWRlZmF1bHQ6dC5vcHRpb25zW3JdPWVbcl19cmV0dXJuIHR9ZnVuY3Rpb24gQlplKHQsZSl7ZSYmdC5wdXNoKC4uLmUpfWZ1bmN0aW9uIEtRdCh0LGUpe2UmJk9iamVjdC5hc3NpZ24odCxlKX12YXIgUVF0LFJaZT1uKCgpPT57UVF0PXt9Lmhhc093blByb3BlcnR5fSk7ZnVuY3Rpb24gSFplKHQsZSxhLHIpe2xldCBpPWEuZW50ZXIoImJsb2NrcXVvdGUiKSxvPWEuY3JlYXRlVHJhY2tlcihyKTtvLm1vdmUoIj4gIiksby5zaGlmdCgyKTtsZXQgcz1hLmluZGVudExpbmVzKGEuY29udGFpbmVyRmxvdyh0LG8uY3VycmVudCgpKSxKUXQpO3JldHVybiBpKCksc31mdW5jdGlvbiBKUXQodCxlLGEpe3JldHVybiI+IisoYT8iIjoiICIpK3R9dmFyIHFaZT1uKCgpPT57fSk7ZnVuY3Rpb24gbkgodCxlKXtyZXR1cm4gVlplKHQsZS5pbkNvbnN0cnVjdCwhMCkmJiFWWmUodCxlLm5vdEluQ29uc3RydWN0LCExKX1mdW5jdGlvbiBWWmUodCxlLGEpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIiYmKGU9W2VdKSwhZXx8ZS5sZW5ndGg9PT0wKXJldHVybiBhO2xldCByPS0xO2Zvcig7KytyPGUubGVuZ3RoOylpZih0LmluY2x1ZGVzKGVbcl0pKXJldHVybiEwO3JldHVybiExfXZhciBzSz1uKCgpPT57fSk7ZnVuY3Rpb24gbksodCxlLGEscil7bGV0IGk9LTE7Zm9yKDsrK2k8YS51bnNhZmUubGVuZ3RoOylpZihhLnVuc2FmZVtpXS5jaGFyYWN0ZXI9PT1gCmAmJm5IKGEuc3RhY2ssYS51bnNhZmVbaV0pKXJldHVybi9bIFx0XS8udGVzdChyLmJlZm9yZSk/IiI6IiAiO3JldHVybmBcXApgfXZhciBVWmU9bigoKT0+e3NLKCl9KTtmdW5jdGlvbiBqWmUodCxlKXtsZXQgYT1TdHJpbmcodCkscj1hLmluZGV4T2YoZSksaT1yLG89MCxzPTA7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHN1YnN0cmluZyIpO2Zvcig7ciE9PS0xOylyPT09aT8rK28+cyYmKHM9byk6bz0xLGk9citlLmxlbmd0aCxyPWEuaW5kZXhPZihlLGkpO3JldHVybiBzfXZhciBXWmU9bigoKT0+e30pO2Z1bmN0aW9uIG5kKHQsZSl7cmV0dXJuISEoZS5vcHRpb25zLmZlbmNlcz09PSExJiZ0LnZhbHVlJiYhdC5sYW5nJiYvW14gXHJcbl0vLnRlc3QodC52YWx1ZSkmJiEvXltcdCBdKig/OltcclxuXXwkKXwoPzpefFtcclxuXSlbXHQgXSokLy50ZXN0KHQudmFsdWUpKX12YXIgbEs9bigoKT0+e30pO2Z1bmN0aW9uIEdaZSh0KXtsZXQgZT10Lm9wdGlvbnMuZmVuY2V8fCJgIjtpZihlIT09ImAiJiZlIT09In4iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBjb2RlIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuZmVuY2VgLCBleHBlY3RlZCBgYCBgIGBgIG9yIGB+YCIpO3JldHVybiBlfXZhciBZWmU9bigoKT0+e30pO2Z1bmN0aW9uIFpaZSh0LGUsYSxyKXtsZXQgaT1HWmUoYSksbz10LnZhbHVlfHwiIixzPWk9PT0iYCI/IkdyYXZlQWNjZW50IjoiVGlsZGUiO2lmKG5kKHQsYSkpe2xldCBkPWEuZW50ZXIoImNvZGVJbmRlbnRlZCIpLGg9YS5pbmRlbnRMaW5lcyhvLGVLdCk7cmV0dXJuIGQoKSxofWxldCBsPWEuY3JlYXRlVHJhY2tlcihyKSxmPWkucmVwZWF0KE1hdGgubWF4KGpaZShvLGkpKzEsMykpLGM9YS5lbnRlcigiY29kZUZlbmNlZCIpLHU9bC5tb3ZlKGYpO2lmKHQubGFuZyl7bGV0IGQ9YS5lbnRlcihgY29kZUZlbmNlZExhbmcke3N9YCk7dSs9bC5tb3ZlKGEuc2FmZSh0Lmxhbmcse2JlZm9yZTp1LGFmdGVyOiIgIixlbmNvZGU6WyJgIl0sLi4ubC5jdXJyZW50KCl9KSksZCgpfWlmKHQubGFuZyYmdC5tZXRhKXtsZXQgZD1hLmVudGVyKGBjb2RlRmVuY2VkTWV0YSR7c31gKTt1Kz1sLm1vdmUoIiAiKSx1Kz1sLm1vdmUoYS5zYWZlKHQubWV0YSx7YmVmb3JlOnUsYWZ0ZXI6YApgLGVuY29kZTpbImAiXSwuLi5sLmN1cnJlbnQoKX0pKSxkKCl9cmV0dXJuIHUrPWwubW92ZShgCmApLG8mJih1Kz1sLm1vdmUobytgCmApKSx1Kz1sLm1vdmUoZiksYygpLHV9ZnVuY3Rpb24gZUt0KHQsZSxhKXtyZXR1cm4oYT8iIjoiICAgICIpK3R9dmFyIFhaZT1uKCgpPT57V1plKCk7bEsoKTtZWmUoKX0pO2Z1bmN0aW9uIE02KHQpe2xldCBlPXQub3B0aW9ucy5xdW90ZXx8JyInO2lmKGUhPT0nIicmJmUhPT0iJyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHRpdGxlIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMucXVvdGVgLCBleHBlY3RlZCBgXCJgLCBvciBgJ2AiKTtyZXR1cm4gZX12YXIgbEg9bigoKT0+e30pO2Z1bmN0aW9uIFFaZSh0LGUsYSxyKXtsZXQgaT1NNihhKSxvPWk9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIscz1hLmVudGVyKCJkZWZpbml0aW9uIiksbD1hLmVudGVyKCJsYWJlbCIpLGY9YS5jcmVhdGVUcmFja2VyKHIpLGM9Zi5tb3ZlKCJbIik7cmV0dXJuIGMrPWYubW92ZShhLnNhZmUoYS5hc3NvY2lhdGlvbklkKHQpLHtiZWZvcmU6YyxhZnRlcjoiXSIsLi4uZi5jdXJyZW50KCl9KSksYys9Zi5tb3ZlKCJdOiAiKSxsKCksIXQudXJsfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KHQudXJsKT8obD1hLmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxjKz1mLm1vdmUoIjwiKSxjKz1mLm1vdmUoYS5zYWZlKHQudXJsLHtiZWZvcmU6YyxhZnRlcjoiPiIsLi4uZi5jdXJyZW50KCl9KSksYys9Zi5tb3ZlKCI+IikpOihsPWEuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksYys9Zi5tb3ZlKGEuc2FmZSh0LnVybCx7YmVmb3JlOmMsYWZ0ZXI6dC50aXRsZT8iICI6YApgLC4uLmYuY3VycmVudCgpfSkpKSxsKCksdC50aXRsZSYmKGw9YS5lbnRlcihgdGl0bGUke299YCksYys9Zi5tb3ZlKCIgIitpKSxjKz1mLm1vdmUoYS5zYWZlKHQudGl0bGUse2JlZm9yZTpjLGFmdGVyOmksLi4uZi5jdXJyZW50KCl9KSksYys9Zi5tb3ZlKGkpLGwoKSkscygpLGN9dmFyIEtaZT1uKCgpPT57bEgoKX0pO2Z1bmN0aW9uIEpaZSh0KXtsZXQgZT10Lm9wdGlvbnMuZW1waGFzaXN8fCIqIjtpZihlIT09IioiJiZlIT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBlbXBoYXNpcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmVtcGhhc2lzYCwgZXhwZWN0ZWQgYCpgLCBvciBgX2AiKTtyZXR1cm4gZX12YXIgZVhlPW4oKCk9Pnt9KTtmdW5jdGlvbiBsYSh0KXtyZXR1cm4iJiN4Iit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7In12YXIgejY9bigoKT0+e30pO2Z1bmN0aW9uIHppKHQpe2lmKHQ9PT1udWxsfHx3dCh0KXx8TnIodCkpcmV0dXJuIDE7aWYoY24odCkpcmV0dXJuIDJ9dmFyIGNIPW4oKCk9PntrdCgpfSk7ZnVuY3Rpb24gazYodCxlLGEpe2xldCByPXppKHQpLGk9emkoZSk7cmV0dXJuIHI9PT12b2lkIDA/aT09PXZvaWQgMD9hPT09Il8iP3tpbnNpZGU6ITAsb3V0c2lkZTohMH06e2luc2lkZTohMSxvdXRzaWRlOiExfTppPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMH06cj09PTE/aT09PXZvaWQgMD97aW5zaWRlOiExLG91dHNpZGU6ITF9Omk9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMH06e2luc2lkZTohMSxvdXRzaWRlOiExfTppPT09dm9pZCAwP3tpbnNpZGU6ITEsb3V0c2lkZTohMX06aT09PTE/e2luc2lkZTohMCxvdXRzaWRlOiExfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9fXZhciBjSz1uKCgpPT57Y0goKX0pO2Z1bmN0aW9uIGRLKHQsZSxhLHIpe2xldCBpPUpaZShhKSxvPWEuZW50ZXIoImVtcGhhc2lzIikscz1hLmNyZWF0ZVRyYWNrZXIociksbD1zLm1vdmUoaSksZj1zLm1vdmUoYS5jb250YWluZXJQaHJhc2luZyh0LHthZnRlcjppLGJlZm9yZTpsLC4uLnMuY3VycmVudCgpfSkpLGM9Zi5jaGFyQ29kZUF0KDApLHU9azYoci5iZWZvcmUuY2hhckNvZGVBdChyLmJlZm9yZS5sZW5ndGgtMSksYyxpKTt1Lmluc2lkZSYmKGY9bGEoYykrZi5zbGljZSgxKSk7bGV0IGQ9Zi5jaGFyQ29kZUF0KGYubGVuZ3RoLTEpLGg9azYoci5hZnRlci5jaGFyQ29kZUF0KDApLGQsaSk7aC5pbnNpZGUmJihmPWYuc2xpY2UoMCwtMSkrbGEoZCkpO2xldCBnPXMubW92ZShpKTtyZXR1cm4gbygpLGEuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpoLm91dHNpZGUsYmVmb3JlOnUub3V0c2lkZX0sbCtmK2d9ZnVuY3Rpb24gdEt0KHQsZSxhKXtyZXR1cm4gYS5vcHRpb25zLmVtcGhhc2lzfHwiKiJ9dmFyIHRYZT1uKCgpPT57ZVhlKCk7ejYoKTtjSygpO2RLLnBlZWs9dEt0fSk7ZnVuY3Rpb24gbGQodCxlLGEscil7bGV0IGksbyxzO3R5cGVvZiBlPT0iZnVuY3Rpb24iJiZ0eXBlb2YgYSE9ImZ1bmN0aW9uIj8obz12b2lkIDAscz1lLGk9YSk6KG89ZSxzPWEsaT1yKSxzZCh0LG8sbCxpKTtmdW5jdGlvbiBsKGYsYyl7bGV0IHU9Y1tjLmxlbmd0aC0xXSxkPXU/dS5jaGlsZHJlbi5pbmRleE9mKGYpOnZvaWQgMDtyZXR1cm4gcyhmLGQsdSl9fXZhciBhWGU9bigoKT0+e29IKCk7b0goKX0pO3ZhciBmSz1uKCgpPT57YVhlKCl9KTtmdW5jdGlvbiBmbih0LGUpe2xldCBhPWV8fGFLdCxyPXR5cGVvZiBhLmluY2x1ZGVJbWFnZUFsdD09ImJvb2xlYW4iP2EuaW5jbHVkZUltYWdlQWx0OiEwLGk9dHlwZW9mIGEuaW5jbHVkZUh0bWw9PSJib29sZWFuIj9hLmluY2x1ZGVIdG1sOiEwO3JldHVybiByWGUodCxyLGkpfWZ1bmN0aW9uIHJYZSh0LGUsYSl7aWYockt0KHQpKXtpZigidmFsdWUiaW4gdClyZXR1cm4gdC50eXBlPT09Imh0bWwiJiYhYT8iIjp0LnZhbHVlO2lmKGUmJiJhbHQiaW4gdCYmdC5hbHQpcmV0dXJuIHQuYWx0O2lmKCJjaGlsZHJlbiJpbiB0KXJldHVybiBpWGUodC5jaGlsZHJlbixlLGEpfXJldHVybiBBcnJheS5pc0FycmF5KHQpP2lYZSh0LGUsYSk6IiJ9ZnVuY3Rpb24gaVhlKHQsZSxhKXtsZXQgcj1bXSxpPS0xO2Zvcig7KytpPHQubGVuZ3RoOylyW2ldPXJYZSh0W2ldLGUsYSk7cmV0dXJuIHIuam9pbigiIil9ZnVuY3Rpb24gckt0KHQpe3JldHVybiEhKHQmJnR5cGVvZiB0PT0ib2JqZWN0Iil9dmFyIGFLdCxvWGU9bigoKT0+e2FLdD17fX0pO3ZhciBkSD1uKCgpPT57b1hlKCl9KTtmdW5jdGlvbiBmSCh0LGUpe2xldCBhPSExO3JldHVybiBsZCh0LGZ1bmN0aW9uKHIpe2lmKCJ2YWx1ZSJpbiByJiYvXHI/XG58XHIvLnRlc3Qoci52YWx1ZSl8fHIudHlwZT09PSJicmVhayIpcmV0dXJuIGE9ITAsZG59KSwhISgoIXQuZGVwdGh8fHQuZGVwdGg8MykmJmZuKHQpJiYoZS5vcHRpb25zLnNldGV4dHx8YSkpfXZhciB1Sz1uKCgpPT57ZksoKTtkSCgpfSk7ZnVuY3Rpb24gc1hlKHQsZSxhLHIpe2xldCBpPU1hdGgubWF4KE1hdGgubWluKDYsdC5kZXB0aHx8MSksMSksbz1hLmNyZWF0ZVRyYWNrZXIocik7aWYoZkgodCxhKSl7bGV0IHU9YS5lbnRlcigiaGVhZGluZ1NldGV4dCIpLGQ9YS5lbnRlcigicGhyYXNpbmciKSxoPWEuY29udGFpbmVyUGhyYXNpbmcodCx7Li4uby5jdXJyZW50KCksYmVmb3JlOmAKYCxhZnRlcjpgCmB9KTtyZXR1cm4gZCgpLHUoKSxoK2AKYCsoaT09PTE/Ij0iOiItIikucmVwZWF0KGgubGVuZ3RoLShNYXRoLm1heChoLmxhc3RJbmRleE9mKCJcciIpLGgubGFzdEluZGV4T2YoYApgKSkrMSkpfWxldCBzPSIjIi5yZXBlYXQoaSksbD1hLmVudGVyKCJoZWFkaW5nQXR4IiksZj1hLmVudGVyKCJwaHJhc2luZyIpO28ubW92ZShzKyIgIik7bGV0IGM9YS5jb250YWluZXJQaHJhc2luZyh0LHtiZWZvcmU6IiMgIixhZnRlcjpgCmAsLi4uby5jdXJyZW50KCl9KTtyZXR1cm4vXltcdCBdLy50ZXN0KGMpJiYoYz1sYShjLmNoYXJDb2RlQXQoMCkpK2Muc2xpY2UoMSkpLGM9Yz9zKyIgIitjOnMsYS5vcHRpb25zLmNsb3NlQXR4JiYoYys9IiAiK3MpLGYoKSxsKCksY312YXIgblhlPW4oKCk9Pnt6NigpO3VLKCl9KTtmdW5jdGlvbiBwSyh0KXtyZXR1cm4gdC52YWx1ZXx8IiJ9ZnVuY3Rpb24gaUt0KCl7cmV0dXJuIjwifXZhciBsWGU9bigoKT0+e3BLLnBlZWs9aUt0fSk7ZnVuY3Rpb24gaEsodCxlLGEscil7bGV0IGk9TTYoYSksbz1pPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLHM9YS5lbnRlcigiaW1hZ2UiKSxsPWEuZW50ZXIoImxhYmVsIiksZj1hLmNyZWF0ZVRyYWNrZXIociksYz1mLm1vdmUoIiFbIik7cmV0dXJuIGMrPWYubW92ZShhLnNhZmUodC5hbHQse2JlZm9yZTpjLGFmdGVyOiJdIiwuLi5mLmN1cnJlbnQoKX0pKSxjKz1mLm1vdmUoIl0oIiksbCgpLCF0LnVybCYmdC50aXRsZXx8L1tcMC0gXHUwMDdGXS8udGVzdCh0LnVybCk/KGw9YS5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksYys9Zi5tb3ZlKCI8IiksYys9Zi5tb3ZlKGEuc2FmZSh0LnVybCx7YmVmb3JlOmMsYWZ0ZXI6Ij4iLC4uLmYuY3VycmVudCgpfSkpLGMrPWYubW92ZSgiPiIpKToobD1hLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGMrPWYubW92ZShhLnNhZmUodC51cmwse2JlZm9yZTpjLGFmdGVyOnQudGl0bGU/IiAiOiIpIiwuLi5mLmN1cnJlbnQoKX0pKSksbCgpLHQudGl0bGUmJihsPWEuZW50ZXIoYHRpdGxlJHtvfWApLGMrPWYubW92ZSgiICIraSksYys9Zi5tb3ZlKGEuc2FmZSh0LnRpdGxlLHtiZWZvcmU6YyxhZnRlcjppLC4uLmYuY3VycmVudCgpfSkpLGMrPWYubW92ZShpKSxsKCkpLGMrPWYubW92ZSgiKSIpLHMoKSxjfWZ1bmN0aW9uIG9LdCgpe3JldHVybiIhIn12YXIgY1hlPW4oKCk9PntsSCgpO2hLLnBlZWs9b0t0fSk7ZnVuY3Rpb24gbUsodCxlLGEscil7bGV0IGk9dC5yZWZlcmVuY2VUeXBlLG89YS5lbnRlcigiaW1hZ2VSZWZlcmVuY2UiKSxzPWEuZW50ZXIoImxhYmVsIiksbD1hLmNyZWF0ZVRyYWNrZXIociksZj1sLm1vdmUoIiFbIiksYz1hLnNhZmUodC5hbHQse2JlZm9yZTpmLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pO2YrPWwubW92ZShjKyJdWyIpLHMoKTtsZXQgdT1hLnN0YWNrO2Euc3RhY2s9W10scz1hLmVudGVyKCJyZWZlcmVuY2UiKTtsZXQgZD1hLnNhZmUoYS5hc3NvY2lhdGlvbklkKHQpLHtiZWZvcmU6ZixhZnRlcjoiXSIsLi4ubC5jdXJyZW50KCl9KTtyZXR1cm4gcygpLGEuc3RhY2s9dSxvKCksaT09PSJmdWxsInx8IWN8fGMhPT1kP2YrPWwubW92ZShkKyJdIik6aT09PSJzaG9ydGN1dCI/Zj1mLnNsaWNlKDAsLTEpOmYrPWwubW92ZSgiXSIpLGZ9ZnVuY3Rpb24gc0t0KCl7cmV0dXJuIiEifXZhciBkWGU9bigoKT0+e21LLnBlZWs9c0t0fSk7ZnVuY3Rpb24gZ0sodCxlLGEpe2xldCByPXQudmFsdWV8fCIiLGk9ImAiLG89LTE7Zm9yKDtuZXcgUmVnRXhwKCIoXnxbXmBdKSIraSsiKFteYF18JCkiKS50ZXN0KHIpOylpKz0iYCI7Zm9yKC9bXiBcclxuXS8udGVzdChyKSYmKC9eWyBcclxuXS8udGVzdChyKSYmL1sgXHJcbl0kLy50ZXN0KHIpfHwvXmB8YCQvLnRlc3QocikpJiYocj0iICIrcisiICIpOysrbzxhLnVuc2FmZS5sZW5ndGg7KXtsZXQgcz1hLnVuc2FmZVtvXSxsPWEuY29tcGlsZVBhdHRlcm4ocyksZjtpZihzLmF0QnJlYWspZm9yKDtmPWwuZXhlYyhyKTspe2xldCBjPWYuaW5kZXg7ci5jaGFyQ29kZUF0KGMpPT09MTAmJnIuY2hhckNvZGVBdChjLTEpPT09MTMmJmMtLSxyPXIuc2xpY2UoMCxjKSsiICIrci5zbGljZShmLmluZGV4KzEpfX1yZXR1cm4gaStyK2l9ZnVuY3Rpb24gbkt0KCl7cmV0dXJuImAifXZhciBmWGU9bigoKT0+e2dLLnBlZWs9bkt0fSk7ZnVuY3Rpb24geEsodCxlKXtsZXQgYT1mbih0KTtyZXR1cm4hISghZS5vcHRpb25zLnJlc291cmNlTGluayYmdC51cmwmJiF0LnRpdGxlJiZ0LmNoaWxkcmVuJiZ0LmNoaWxkcmVuLmxlbmd0aD09PTEmJnQuY2hpbGRyZW5bMF0udHlwZT09PSJ0ZXh0IiYmKGE9PT10LnVybHx8Im1haWx0bzoiK2E9PT10LnVybCkmJi9eW2Etel1bYS16Ky4tXSs6L2kudGVzdCh0LnVybCkmJiEvW1wwLSA8Plx1MDA3Rl0vLnRlc3QodC51cmwpKX12YXIgdVhlPW4oKCk9PntkSCgpfSk7ZnVuY3Rpb24gYksodCxlLGEscil7bGV0IGk9TTYoYSksbz1pPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLHM9YS5jcmVhdGVUcmFja2VyKHIpLGwsZjtpZih4Syh0LGEpKXtsZXQgdT1hLnN0YWNrO2Euc3RhY2s9W10sbD1hLmVudGVyKCJhdXRvbGluayIpO2xldCBkPXMubW92ZSgiPCIpO3JldHVybiBkKz1zLm1vdmUoYS5jb250YWluZXJQaHJhc2luZyh0LHtiZWZvcmU6ZCxhZnRlcjoiPiIsLi4ucy5jdXJyZW50KCl9KSksZCs9cy5tb3ZlKCI+IiksbCgpLGEuc3RhY2s9dSxkfWw9YS5lbnRlcigibGluayIpLGY9YS5lbnRlcigibGFiZWwiKTtsZXQgYz1zLm1vdmUoIlsiKTtyZXR1cm4gYys9cy5tb3ZlKGEuY29udGFpbmVyUGhyYXNpbmcodCx7YmVmb3JlOmMsYWZ0ZXI6Il0oIiwuLi5zLmN1cnJlbnQoKX0pKSxjKz1zLm1vdmUoIl0oIiksZigpLCF0LnVybCYmdC50aXRsZXx8L1tcMC0gXHUwMDdGXS8udGVzdCh0LnVybCk/KGY9YS5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksYys9cy5tb3ZlKCI8IiksYys9cy5tb3ZlKGEuc2FmZSh0LnVybCx7YmVmb3JlOmMsYWZ0ZXI6Ij4iLC4uLnMuY3VycmVudCgpfSkpLGMrPXMubW92ZSgiPiIpKTooZj1hLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGMrPXMubW92ZShhLnNhZmUodC51cmwse2JlZm9yZTpjLGFmdGVyOnQudGl0bGU/IiAiOiIpIiwuLi5zLmN1cnJlbnQoKX0pKSksZigpLHQudGl0bGUmJihmPWEuZW50ZXIoYHRpdGxlJHtvfWApLGMrPXMubW92ZSgiICIraSksYys9cy5tb3ZlKGEuc2FmZSh0LnRpdGxlLHtiZWZvcmU6YyxhZnRlcjppLC4uLnMuY3VycmVudCgpfSkpLGMrPXMubW92ZShpKSxmKCkpLGMrPXMubW92ZSgiKSIpLGwoKSxjfWZ1bmN0aW9uIGxLdCh0LGUsYSl7cmV0dXJuIHhLKHQsYSk/IjwiOiJbIn12YXIgcFhlPW4oKCk9PntsSCgpO3VYZSgpO2JLLnBlZWs9bEt0fSk7ZnVuY3Rpb24gdksodCxlLGEscil7bGV0IGk9dC5yZWZlcmVuY2VUeXBlLG89YS5lbnRlcigibGlua1JlZmVyZW5jZSIpLHM9YS5lbnRlcigibGFiZWwiKSxsPWEuY3JlYXRlVHJhY2tlcihyKSxmPWwubW92ZSgiWyIpLGM9YS5jb250YWluZXJQaHJhc2luZyh0LHtiZWZvcmU6ZixhZnRlcjoiXSIsLi4ubC5jdXJyZW50KCl9KTtmKz1sLm1vdmUoYysiXVsiKSxzKCk7bGV0IHU9YS5zdGFjazthLnN0YWNrPVtdLHM9YS5lbnRlcigicmVmZXJlbmNlIik7bGV0IGQ9YS5zYWZlKGEuYXNzb2NpYXRpb25JZCh0KSx7YmVmb3JlOmYsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSk7cmV0dXJuIHMoKSxhLnN0YWNrPXUsbygpLGk9PT0iZnVsbCJ8fCFjfHxjIT09ZD9mKz1sLm1vdmUoZCsiXSIpOmk9PT0ic2hvcnRjdXQiP2Y9Zi5zbGljZSgwLC0xKTpmKz1sLm1vdmUoIl0iKSxmfWZ1bmN0aW9uIGNLdCgpe3JldHVybiJbIn12YXIgaFhlPW4oKCk9Pnt2Sy5wZWVrPWNLdH0pO2Z1bmN0aW9uIFM2KHQpe2xldCBlPXQub3B0aW9ucy5idWxsZXR8fCIqIjtpZihlIT09IioiJiZlIT09IisiJiZlIT09Ii0iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmJ1bGxldGAsIGV4cGVjdGVkIGAqYCwgYCtgLCBvciBgLWAiKTtyZXR1cm4gZX12YXIgdUg9bigoKT0+e30pO2Z1bmN0aW9uIG1YZSh0KXtsZXQgZT1TNih0KSxhPXQub3B0aW9ucy5idWxsZXRPdGhlcjtpZighYSlyZXR1cm4gZT09PSIqIj8iLSI6IioiO2lmKGEhPT0iKiImJmEhPT0iKyImJmEhPT0iLSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrYSsiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3RoZXJgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7aWYoYT09PWUpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgYnVsbGV0YCAoYCIrZSsiYCkgYW5kIGBidWxsZXRPdGhlcmAgKGAiK2ErImApIHRvIGJlIGRpZmZlcmVudCIpO3JldHVybiBhfXZhciBnWGU9bigoKT0+e3VIKCl9KTtmdW5jdGlvbiB4WGUodCl7bGV0IGU9dC5vcHRpb25zLmJ1bGxldE9yZGVyZWR8fCIuIjtpZihlIT09Ii4iJiZlIT09IikiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmJ1bGxldE9yZGVyZWRgLCBleHBlY3RlZCBgLmAgb3IgYClgIik7cmV0dXJuIGV9dmFyIGJYZT1uKCgpPT57fSk7ZnVuY3Rpb24gcEgodCl7bGV0IGU9dC5vcHRpb25zLnJ1bGV8fCIqIjtpZihlIT09IioiJiZlIT09Ii0iJiZlIT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLnJ1bGVgLCBleHBlY3RlZCBgKmAsIGAtYCwgb3IgYF9gIik7cmV0dXJuIGV9dmFyIHlLPW4oKCk9Pnt9KTtmdW5jdGlvbiB2WGUodCxlLGEscil7bGV0IGk9YS5lbnRlcigibGlzdCIpLG89YS5idWxsZXRDdXJyZW50LHM9dC5vcmRlcmVkP3hYZShhKTpTNihhKSxsPXQub3JkZXJlZD9zPT09Ii4iPyIpIjoiLiI6bVhlKGEpLGY9ZSYmYS5idWxsZXRMYXN0VXNlZD9zPT09YS5idWxsZXRMYXN0VXNlZDohMTtpZighdC5vcmRlcmVkKXtsZXQgdT10LmNoaWxkcmVuP3QuY2hpbGRyZW5bMF06dm9pZCAwO2lmKChzPT09IioifHxzPT09Ii0iKSYmdSYmKCF1LmNoaWxkcmVufHwhdS5jaGlsZHJlblswXSkmJmEuc3RhY2tbYS5zdGFjay5sZW5ndGgtMV09PT0ibGlzdCImJmEuc3RhY2tbYS5zdGFjay5sZW5ndGgtMl09PT0ibGlzdEl0ZW0iJiZhLnN0YWNrW2Euc3RhY2subGVuZ3RoLTNdPT09Imxpc3QiJiZhLnN0YWNrW2Euc3RhY2subGVuZ3RoLTRdPT09Imxpc3RJdGVtIiYmYS5pbmRleFN0YWNrW2EuaW5kZXhTdGFjay5sZW5ndGgtMV09PT0wJiZhLmluZGV4U3RhY2tbYS5pbmRleFN0YWNrLmxlbmd0aC0yXT09PTAmJmEuaW5kZXhTdGFja1thLmluZGV4U3RhY2subGVuZ3RoLTNdPT09MCYmKGY9ITApLHBIKGEpPT09cyYmdSl7bGV0IGQ9LTE7Zm9yKDsrK2Q8dC5jaGlsZHJlbi5sZW5ndGg7KXtsZXQgaD10LmNoaWxkcmVuW2RdO2lmKGgmJmgudHlwZT09PSJsaXN0SXRlbSImJmguY2hpbGRyZW4mJmguY2hpbGRyZW5bMF0mJmguY2hpbGRyZW5bMF0udHlwZT09PSJ0aGVtYXRpY0JyZWFrIil7Zj0hMDticmVha319fX1mJiYocz1sKSxhLmJ1bGxldEN1cnJlbnQ9cztsZXQgYz1hLmNvbnRhaW5lckZsb3codCxyKTtyZXR1cm4gYS5idWxsZXRMYXN0VXNlZD1zLGEuYnVsbGV0Q3VycmVudD1vLGkoKSxjfXZhciB5WGU9bigoKT0+e3VIKCk7Z1hlKCk7YlhlKCk7eUsoKX0pO2Z1bmN0aW9uIHdYZSh0KXtsZXQgZT10Lm9wdGlvbnMubGlzdEl0ZW1JbmRlbnR8fCJvbmUiO2lmKGUhPT0idGFiIiYmZSE9PSJvbmUiJiZlIT09Im1peGVkIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5saXN0SXRlbUluZGVudGAsIGV4cGVjdGVkIGB0YWJgLCBgb25lYCwgb3IgYG1peGVkYCIpO3JldHVybiBlfXZhciBNWGU9bigoKT0+e30pO2Z1bmN0aW9uIHpYZSh0LGUsYSxyKXtsZXQgaT13WGUoYSksbz1hLmJ1bGxldEN1cnJlbnR8fFM2KGEpO2UmJmUudHlwZT09PSJsaXN0IiYmZS5vcmRlcmVkJiYobz0odHlwZW9mIGUuc3RhcnQ9PSJudW1iZXIiJiZlLnN0YXJ0Pi0xP2Uuc3RhcnQ6MSkrKGEub3B0aW9ucy5pbmNyZW1lbnRMaXN0TWFya2VyPT09ITE/MDplLmNoaWxkcmVuLmluZGV4T2YodCkpK28pO2xldCBzPW8ubGVuZ3RoKzE7KGk9PT0idGFiInx8aT09PSJtaXhlZCImJihlJiZlLnR5cGU9PT0ibGlzdCImJmUuc3ByZWFkfHx0LnNwcmVhZCkpJiYocz1NYXRoLmNlaWwocy80KSo0KTtsZXQgbD1hLmNyZWF0ZVRyYWNrZXIocik7bC5tb3ZlKG8rIiAiLnJlcGVhdChzLW8ubGVuZ3RoKSksbC5zaGlmdChzKTtsZXQgZj1hLmVudGVyKCJsaXN0SXRlbSIpLGM9YS5pbmRlbnRMaW5lcyhhLmNvbnRhaW5lckZsb3codCxsLmN1cnJlbnQoKSksdSk7cmV0dXJuIGYoKSxjO2Z1bmN0aW9uIHUoZCxoLGcpe3JldHVybiBoPyhnPyIiOiIgIi5yZXBlYXQocykpK2Q6KGc/bzpvKyIgIi5yZXBlYXQocy1vLmxlbmd0aCkpK2R9fXZhciBrWGU9bigoKT0+e3VIKCk7TVhlKCl9KTtmdW5jdGlvbiBTWGUodCxlLGEscil7bGV0IGk9YS5lbnRlcigicGFyYWdyYXBoIiksbz1hLmVudGVyKCJwaHJhc2luZyIpLHM9YS5jb250YWluZXJQaHJhc2luZyh0LHIpO3JldHVybiBvKCksaSgpLHN9dmFyIENYZT1uKCgpPT57fSk7dmFyIHdLLExYZT1uKCgpPT57YUgoKTt3Sz1NaShbImJyZWFrIiwiZGVsZXRlIiwiZW1waGFzaXMiLCJmb290bm90ZSIsImZvb3Rub3RlUmVmZXJlbmNlIiwiaW1hZ2UiLCJpbWFnZVJlZmVyZW5jZSIsImlubGluZUNvZGUiLCJpbmxpbmVNYXRoIiwibGluayIsImxpbmtSZWZlcmVuY2UiLCJtZHhKc3hUZXh0RWxlbWVudCIsIm1keFRleHRFeHByZXNzaW9uIiwic3Ryb25nIiwidGV4dCIsInRleHREaXJlY3RpdmUiXSl9KTt2YXIgVFhlPW4oKCk9PntMWGUoKX0pO2Z1bmN0aW9uIF9YZSh0LGUsYSxyKXtyZXR1cm4odC5jaGlsZHJlbi5zb21lKGZ1bmN0aW9uKHMpe3JldHVybiB3SyhzKX0pP2EuY29udGFpbmVyUGhyYXNpbmc6YS5jb250YWluZXJGbG93KS5jYWxsKGEsdCxyKX12YXIgQVhlPW4oKCk9PntUWGUoKX0pO2Z1bmN0aW9uICRYZSh0KXtsZXQgZT10Lm9wdGlvbnMuc3Ryb25nfHwiKiI7aWYoZSE9PSIqIiYmZSE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgc3Ryb25nIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuc3Ryb25nYCwgZXhwZWN0ZWQgYCpgLCBvciBgX2AiKTtyZXR1cm4gZX12YXIgRFhlPW4oKCk9Pnt9KTtmdW5jdGlvbiBNSyh0LGUsYSxyKXtsZXQgaT0kWGUoYSksbz1hLmVudGVyKCJzdHJvbmciKSxzPWEuY3JlYXRlVHJhY2tlcihyKSxsPXMubW92ZShpK2kpLGY9cy5tb3ZlKGEuY29udGFpbmVyUGhyYXNpbmcodCx7YWZ0ZXI6aSxiZWZvcmU6bCwuLi5zLmN1cnJlbnQoKX0pKSxjPWYuY2hhckNvZGVBdCgwKSx1PWs2KHIuYmVmb3JlLmNoYXJDb2RlQXQoci5iZWZvcmUubGVuZ3RoLTEpLGMsaSk7dS5pbnNpZGUmJihmPWxhKGMpK2Yuc2xpY2UoMSkpO2xldCBkPWYuY2hhckNvZGVBdChmLmxlbmd0aC0xKSxoPWs2KHIuYWZ0ZXIuY2hhckNvZGVBdCgwKSxkLGkpO2guaW5zaWRlJiYoZj1mLnNsaWNlKDAsLTEpK2xhKGQpKTtsZXQgZz1zLm1vdmUoaStpKTtyZXR1cm4gbygpLGEuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpoLm91dHNpZGUsYmVmb3JlOnUub3V0c2lkZX0sbCtmK2d9ZnVuY3Rpb24gZEt0KHQsZSxhKXtyZXR1cm4gYS5vcHRpb25zLnN0cm9uZ3x8IioifXZhciBFWGU9bigoKT0+e0RYZSgpO3o2KCk7Y0soKTtNSy5wZWVrPWRLdH0pO2Z1bmN0aW9uIE5YZSh0LGUsYSxyKXtyZXR1cm4gYS5zYWZlKHQudmFsdWUscil9dmFyIFBYZT1uKCgpPT57fSk7ZnVuY3Rpb24gSVhlKHQpe2xldCBlPXQub3B0aW9ucy5ydWxlUmVwZXRpdGlvbnx8MztpZihlPDMpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHJ1bGVzIHdpdGggcmVwZXRpdGlvbiBgIitlKyJgIGZvciBgb3B0aW9ucy5ydWxlUmVwZXRpdGlvbmAsIGV4cGVjdGVkIGAzYCBvciBtb3JlIik7cmV0dXJuIGV9dmFyIEZYZT1uKCgpPT57fSk7ZnVuY3Rpb24gT1hlKHQsZSxhKXtsZXQgcj0ocEgoYSkrKGEub3B0aW9ucy5ydWxlU3BhY2VzPyIgIjoiIikpLnJlcGVhdChJWGUoYSkpO3JldHVybiBhLm9wdGlvbnMucnVsZVNwYWNlcz9yLnNsaWNlKDAsLTEpOnJ9dmFyIEJYZT1uKCgpPT57RlhlKCk7eUsoKX0pO3ZhciB1bix6Sz1uKCgpPT57cVplKCk7VVplKCk7WFplKCk7S1plKCk7dFhlKCk7blhlKCk7bFhlKCk7Y1hlKCk7ZFhlKCk7ZlhlKCk7cFhlKCk7aFhlKCk7eVhlKCk7a1hlKCk7Q1hlKCk7QVhlKCk7RVhlKCk7UFhlKCk7QlhlKCk7dW49e2Jsb2NrcXVvdGU6SFplLGJyZWFrOm5LLGNvZGU6WlplLGRlZmluaXRpb246UVplLGVtcGhhc2lzOmRLLGhhcmRCcmVhazpuSyxoZWFkaW5nOnNYZSxodG1sOnBLLGltYWdlOmhLLGltYWdlUmVmZXJlbmNlOm1LLGlubGluZUNvZGU6Z0ssbGluazpiSyxsaW5rUmVmZXJlbmNlOnZLLGxpc3Q6dlhlLGxpc3RJdGVtOnpYZSxwYXJhZ3JhcGg6U1hlLHJvb3Q6X1hlLHN0cm9uZzpNSyx0ZXh0Ok5YZSx0aGVtYXRpY0JyZWFrOk9YZX19KTtmdW5jdGlvbiBmS3QodCxlLGEscil7aWYoZS50eXBlPT09ImNvZGUiJiZuZChlLHIpJiYodC50eXBlPT09Imxpc3QifHx0LnR5cGU9PT1lLnR5cGUmJm5kKHQscikpKXJldHVybiExO2lmKCJzcHJlYWQiaW4gYSYmdHlwZW9mIGEuc3ByZWFkPT0iYm9vbGVhbiIpcmV0dXJuIHQudHlwZT09PSJwYXJhZ3JhcGgiJiYodC50eXBlPT09ZS50eXBlfHxlLnR5cGU9PT0iZGVmaW5pdGlvbiJ8fGUudHlwZT09PSJoZWFkaW5nIiYmZkgoZSxyKSk/dm9pZCAwOmEuc3ByZWFkPzE6MH12YXIgUlhlLEhYZT1uKCgpPT57bEsoKTt1SygpO1JYZT1bZkt0XX0pO3ZhciBwbixxWGUsVlhlPW4oKCk9Pntwbj1bImF1dG9saW5rIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiZGVzdGluYXRpb25SYXciLCJyZWZlcmVuY2UiLCJ0aXRsZVF1b3RlIiwidGl0bGVBcG9zdHJvcGhlIl0scVhlPVt7Y2hhcmFjdGVyOiIJIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IgkiLGJlZm9yZToiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IgkiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiXX0se2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFUaWxkZSIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImhlYWRpbmdBdHgiXX0se2NoYXJhY3RlcjpgCmAsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YVRpbGRlIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiaGVhZGluZ0F0eCJdfSx7Y2hhcmFjdGVyOiIgIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiAiLGJlZm9yZToiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiAiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiXX0se2NoYXJhY3RlcjoiISIsYWZ0ZXI6IlxcWyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpwbn0se2NoYXJhY3RlcjonIicsaW5Db25zdHJ1Y3Q6InRpdGxlUXVvdGUifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IiMifSx7Y2hhcmFjdGVyOiIjIixpbkNvbnN0cnVjdDoiaGVhZGluZ0F0eCIsYWZ0ZXI6YCg/OltccgpdfCQpYH0se2NoYXJhY3RlcjoiJiIsYWZ0ZXI6IlsjQS1aYS16XSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiJyIsaW5Db25zdHJ1Y3Q6InRpdGxlQXBvc3Ryb3BoZSJ9LHtjaGFyYWN0ZXI6IigiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvblJhdyJ9LHtiZWZvcmU6IlxcXSIsY2hhcmFjdGVyOiIoIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OnBufSx7YXRCcmVhazohMCxiZWZvcmU6IlxcZCsiLGNoYXJhY3RlcjoiKSJ9LHtjaGFyYWN0ZXI6IikiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvblJhdyJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiKiIsYWZ0ZXI6YCg/OlsgCVxyCipdKWB9LHtjaGFyYWN0ZXI6IioiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6cG59LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiKyIsYWZ0ZXI6YCg/OlsgCVxyCl0pYH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjpgKD86WyAJXHIKLV0pYH0se2F0QnJlYWs6ITAsYmVmb3JlOiJcXGQrIixjaGFyYWN0ZXI6Ii4iLGFmdGVyOmAoPzpbIAlccgpdfCQpYH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI8IixhZnRlcjoiWyEvP0EtWmEtel0ifSx7Y2hhcmFjdGVyOiI8IixhZnRlcjoiWyEvP0EtWmEtel0iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6cG59LHtjaGFyYWN0ZXI6IjwiLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvbkxpdGVyYWwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ij0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ij4ifSx7Y2hhcmFjdGVyOiI+IixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25MaXRlcmFsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJbIn0se2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpwbn0se2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInJlZmVyZW5jZSJdfSx7Y2hhcmFjdGVyOiJcXCIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiJdIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicmVmZXJlbmNlIl19LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiXyJ9LHtjaGFyYWN0ZXI6Il8iLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6cG59LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiYCJ9LHtjaGFyYWN0ZXI6ImAiLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiXX0se2NoYXJhY3RlcjoiYCIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpwbn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ+In1dfSk7ZnVuY3Rpb24gSG8odCl7bGV0IGU9IiYiK3QrIjsiO1VYZS5pbm5lckhUTUw9ZTtsZXQgYT1VWGUudGV4dENvbnRlbnQ7cmV0dXJuIGEuY2hhckNvZGVBdChhLmxlbmd0aC0xKT09PTU5JiZ0IT09InNlbWkifHxhPT09ZT8hMTphfXZhciBVWGUsY2Q9bigoKT0+e1VYZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIil9KTtmdW5jdGlvbiBDNih0LGUpe2xldCBhPU51bWJlci5wYXJzZUludCh0LGUpO3JldHVybiBhPDl8fGE9PT0xMXx8YT4xMyYmYTwzMnx8YT4xMjYmJmE8MTYwfHxhPjU1Mjk1JiZhPDU3MzQ0fHxhPjY0OTc1JiZhPDY1MDA4fHwoYSY2NTUzNSk9PT02NTUzNXx8KGEmNjU1MzUpPT09NjU1MzR8fGE+MTExNDExMT8iXHVGRkZEIjpTdHJpbmcuZnJvbUNvZGVQb2ludChhKX12YXIgaEg9bigoKT0+e30pO2Z1bmN0aW9uIG1IKHQpe3JldHVybiB0LnJlcGxhY2UodUt0LHBLdCl9ZnVuY3Rpb24gcEt0KHQsZSxhKXtpZihlKXJldHVybiBlO2lmKGEuY2hhckNvZGVBdCgwKT09PTM1KXtsZXQgaT1hLmNoYXJDb2RlQXQoMSksbz1pPT09MTIwfHxpPT09ODg7cmV0dXJuIEM2KGEuc2xpY2Uobz8yOjEpLG8/MTY6MTApfXJldHVybiBIbyhhKXx8dH12YXIgdUt0LGtLPW4oKCk9PntjZCgpO2hIKCk7dUt0PS9cXChbIS0vOi1AWy1gey1+XSl8JigjKD86XGR7MSw3fXx4W1xkYS1mXXsxLDZ9KXxbXGRhLXpdezEsMzF9KTsvZ2l9KTtmdW5jdGlvbiBqWGUodCl7cmV0dXJuIHQubGFiZWx8fCF0LmlkZW50aWZpZXI/dC5sYWJlbHx8IiI6bUgodC5pZGVudGlmaWVyKX12YXIgV1hlPW4oKCk9PntrSygpfSk7ZnVuY3Rpb24gR1hlKHQpe2lmKCF0Ll9jb21waWxlZCl7bGV0IGU9KHQuYXRCcmVhaz8iW1xcclxcbl1bXFx0IF0qIjoiIikrKHQuYmVmb3JlPyIoPzoiK3QuYmVmb3JlKyIpIjoiIik7dC5fY29tcGlsZWQ9bmV3IFJlZ0V4cCgoZT8iKCIrZSsiKSI6IiIpKygvW3xcXHt9KClbXF1eJCsqPy4tXS8udGVzdCh0LmNoYXJhY3Rlcik/IlxcIjoiIikrdC5jaGFyYWN0ZXIrKHQuYWZ0ZXI/Iig/OiIrdC5hZnRlcisiKSI6IiIpLCJnIil9cmV0dXJuIHQuX2NvbXBpbGVkfXZhciBZWGU9bigoKT0+e30pO2Z1bmN0aW9uIFpYZSh0LGUsYSl7bGV0IHI9ZS5pbmRleFN0YWNrLGk9dC5jaGlsZHJlbnx8W10sbz1bXSxzPS0xLGw9YS5iZWZvcmUsZjtyLnB1c2goLTEpO2xldCBjPWUuY3JlYXRlVHJhY2tlcihhKTtmb3IoOysrczxpLmxlbmd0aDspe2xldCB1PWlbc10sZDtpZihyW3IubGVuZ3RoLTFdPXMscysxPGkubGVuZ3RoKXtsZXQgYj1lLmhhbmRsZS5oYW5kbGVyc1tpW3MrMV0udHlwZV07YiYmYi5wZWVrJiYoYj1iLnBlZWspLGQ9Yj9iKGlbcysxXSx0LGUse2JlZm9yZToiIixhZnRlcjoiIiwuLi5jLmN1cnJlbnQoKX0pLmNoYXJBdCgwKToiIn1lbHNlIGQ9YS5hZnRlcjtvLmxlbmd0aD4wJiYobD09PSJcciJ8fGw9PT1gCmApJiZ1LnR5cGU9PT0iaHRtbCImJihvW28ubGVuZ3RoLTFdPW9bby5sZW5ndGgtMV0ucmVwbGFjZSgvKFxyP1xufFxyKSQvLCIgIiksbD0iICIsYz1lLmNyZWF0ZVRyYWNrZXIoYSksYy5tb3ZlKG8uam9pbigiIikpKTtsZXQgaD1lLmhhbmRsZSh1LHQsZSx7Li4uYy5jdXJyZW50KCksYWZ0ZXI6ZCxiZWZvcmU6bH0pO2YmJmY9PT1oLnNsaWNlKDAsMSkmJihoPWxhKGYuY2hhckNvZGVBdCgwKSkraC5zbGljZSgxKSk7bGV0IGc9ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm87ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89dm9pZCAwLGY9dm9pZCAwLGcmJihvLmxlbmd0aD4wJiZnLmJlZm9yZSYmbD09PW9bby5sZW5ndGgtMV0uc2xpY2UoLTEpJiYob1tvLmxlbmd0aC0xXT1vW28ubGVuZ3RoLTFdLnNsaWNlKDAsLTEpK2xhKGwuY2hhckNvZGVBdCgwKSkpLGcuYWZ0ZXImJihmPWQpKSxjLm1vdmUoaCksby5wdXNoKGgpLGw9aC5zbGljZSgtMSl9cmV0dXJuIHIucG9wKCksby5qb2luKCIiKX12YXIgWFhlPW4oKCk9Pnt6NigpfSk7ZnVuY3Rpb24gUVhlKHQsZSxhKXtsZXQgcj1lLmluZGV4U3RhY2ssaT10LmNoaWxkcmVufHxbXSxvPWUuY3JlYXRlVHJhY2tlcihhKSxzPVtdLGw9LTE7Zm9yKHIucHVzaCgtMSk7KytsPGkubGVuZ3RoOyl7bGV0IGY9aVtsXTtyW3IubGVuZ3RoLTFdPWwscy5wdXNoKG8ubW92ZShlLmhhbmRsZShmLHQsZSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsLi4uby5jdXJyZW50KCl9KSkpLGYudHlwZSE9PSJsaXN0IiYmKGUuYnVsbGV0TGFzdFVzZWQ9dm9pZCAwKSxsPGkubGVuZ3RoLTEmJnMucHVzaChvLm1vdmUoaEt0KGYsaVtsKzFdLHQsZSkpKX1yZXR1cm4gci5wb3AoKSxzLmpvaW4oIiIpfWZ1bmN0aW9uIGhLdCh0LGUsYSxyKXtsZXQgaT1yLmpvaW4ubGVuZ3RoO2Zvcig7aS0tOyl7bGV0IG89ci5qb2luW2ldKHQsZSxhLHIpO2lmKG89PT0hMHx8bz09PTEpYnJlYWs7aWYodHlwZW9mIG89PSJudW1iZXIiKXJldHVybmAKYC5yZXBlYXQoMStvKTtpZihvPT09ITEpcmV0dXJuYAoKPCEtLS0tPgoKYH1yZXR1cm5gCgpgfXZhciBLWGU9bigoKT0+e30pO2Z1bmN0aW9uIEpYZSh0LGUpe2xldCBhPVtdLHI9MCxpPTAsbztmb3IoO289bUt0LmV4ZWModCk7KXModC5zbGljZShyLG8uaW5kZXgpKSxhLnB1c2gob1swXSkscj1vLmluZGV4K29bMF0ubGVuZ3RoLGkrKztyZXR1cm4gcyh0LnNsaWNlKHIpKSxhLmpvaW4oIiIpO2Z1bmN0aW9uIHMobCl7YS5wdXNoKGUobCxpLCFsKSl9fXZhciBtS3QsZVFlPW4oKCk9PnttS3Q9L1xyP1xufFxyL2d9KTtmdW5jdGlvbiBhUWUodCxlLGEpe2xldCByPShhLmJlZm9yZXx8IiIpKyhlfHwiIikrKGEuYWZ0ZXJ8fCIiKSxpPVtdLG89W10scz17fSxsPS0xO2Zvcig7KytsPHQudW5zYWZlLmxlbmd0aDspe2xldCB1PXQudW5zYWZlW2xdO2lmKCFuSCh0LnN0YWNrLHUpKWNvbnRpbnVlO2xldCBkPXQuY29tcGlsZVBhdHRlcm4odSksaDtmb3IoO2g9ZC5leGVjKHIpOyl7bGV0IGc9ImJlZm9yZSJpbiB1fHwhIXUuYXRCcmVhayxiPSJhZnRlciJpbiB1LHg9aC5pbmRleCsoZz9oWzFdLmxlbmd0aDowKTtpLmluY2x1ZGVzKHgpPyhzW3hdLmJlZm9yZSYmIWcmJihzW3hdLmJlZm9yZT0hMSksc1t4XS5hZnRlciYmIWImJihzW3hdLmFmdGVyPSExKSk6KGkucHVzaCh4KSxzW3hdPXtiZWZvcmU6ZyxhZnRlcjpifSl9fWkuc29ydChnS3QpO2xldCBmPWEuYmVmb3JlP2EuYmVmb3JlLmxlbmd0aDowLGM9ci5sZW5ndGgtKGEuYWZ0ZXI/YS5hZnRlci5sZW5ndGg6MCk7Zm9yKGw9LTE7KytsPGkubGVuZ3RoOyl7bGV0IHU9aVtsXTt1PGZ8fHU+PWN8fHUrMTxjJiZpW2wrMV09PT11KzEmJnNbdV0uYWZ0ZXImJiFzW3UrMV0uYmVmb3JlJiYhc1t1KzFdLmFmdGVyfHxpW2wtMV09PT11LTEmJnNbdV0uYmVmb3JlJiYhc1t1LTFdLmJlZm9yZSYmIXNbdS0xXS5hZnRlcnx8KGYhPT11JiZvLnB1c2godFFlKHIuc2xpY2UoZix1KSwiXFwiKSksZj11LC9bIS0vOi1AWy1gey1+XS8udGVzdChyLmNoYXJBdCh1KSkmJighYS5lbmNvZGV8fCFhLmVuY29kZS5pbmNsdWRlcyhyLmNoYXJBdCh1KSkpP28ucHVzaCgiXFwiKTooby5wdXNoKGxhKHIuY2hhckNvZGVBdCh1KSkpLGYrKykpfXJldHVybiBvLnB1c2godFFlKHIuc2xpY2UoZixjKSxhLmFmdGVyKSksby5qb2luKCIiKX1mdW5jdGlvbiBnS3QodCxlKXtyZXR1cm4gdC1lfWZ1bmN0aW9uIHRRZSh0LGUpe2xldCBhPS9cXCg/PVshLS86LUBbLWB7LX5dKS9nLHI9W10saT1bXSxvPXQrZSxzPS0xLGw9MCxmO2Zvcig7Zj1hLmV4ZWMobyk7KXIucHVzaChmLmluZGV4KTtmb3IoOysrczxyLmxlbmd0aDspbCE9PXJbc10mJmkucHVzaCh0LnNsaWNlKGwscltzXSkpLGkucHVzaCgiXFwiKSxsPXJbc107cmV0dXJuIGkucHVzaCh0LnNsaWNlKGwpKSxpLmpvaW4oIiIpfXZhciByUWU9bigoKT0+e3o2KCk7c0soKX0pO2Z1bmN0aW9uIGlRZSh0KXtsZXQgZT10fHx7fSxhPWUubm93fHx7fSxyPWUubGluZVNoaWZ0fHwwLGk9YS5saW5lfHwxLG89YS5jb2x1bW58fDE7cmV0dXJue21vdmU6ZixjdXJyZW50OnMsc2hpZnQ6bH07ZnVuY3Rpb24gcygpe3JldHVybntub3c6e2xpbmU6aSxjb2x1bW46b30sbGluZVNoaWZ0OnJ9fWZ1bmN0aW9uIGwoYyl7cis9Y31mdW5jdGlvbiBmKGMpe2xldCB1PWN8fCIiLGQ9dS5zcGxpdCgvXHI/XG58XHIvZyksaD1kW2QubGVuZ3RoLTFdO3JldHVybiBpKz1kLmxlbmd0aC0xLG89ZC5sZW5ndGg9PT0xP28raC5sZW5ndGg6MStoLmxlbmd0aCtyLHV9fXZhciBvUWU9bigoKT0+e30pO2Z1bmN0aW9uIFNLKHQsZSl7bGV0IGE9ZXx8e30scj17YXNzb2NpYXRpb25JZDpqWGUsY29udGFpbmVyUGhyYXNpbmc6eUt0LGNvbnRhaW5lckZsb3c6d0t0LGNyZWF0ZVRyYWNrZXI6aVFlLGNvbXBpbGVQYXR0ZXJuOkdYZSxlbnRlcjpvLGhhbmRsZXJzOnsuLi51bn0saGFuZGxlOnZvaWQgMCxpbmRlbnRMaW5lczpKWGUsaW5kZXhTdGFjazpbXSxqb2luOlsuLi5SWGVdLG9wdGlvbnM6e30sc2FmZTpNS3Qsc3RhY2s6W10sdW5zYWZlOlsuLi5xWGVdfTtvSyhyLGEpLHIub3B0aW9ucy50aWdodERlZmluaXRpb25zJiZyLmpvaW4ucHVzaCh2S3QpLHIuaGFuZGxlPXNIKCJ0eXBlIix7aW52YWxpZDp4S3QsdW5rbm93bjpiS3QsaGFuZGxlcnM6ci5oYW5kbGVyc30pO2xldCBpPXIuaGFuZGxlKHQsdm9pZCAwLHIse2JlZm9yZTpgCmAsYWZ0ZXI6YApgLG5vdzp7bGluZToxLGNvbHVtbjoxfSxsaW5lU2hpZnQ6MH0pO3JldHVybiBpJiZpLmNoYXJDb2RlQXQoaS5sZW5ndGgtMSkhPT0xMCYmaS5jaGFyQ29kZUF0KGkubGVuZ3RoLTEpIT09MTMmJihpKz1gCmApLGk7ZnVuY3Rpb24gbyhzKXtyZXR1cm4gci5zdGFjay5wdXNoKHMpLGw7ZnVuY3Rpb24gbCgpe3Iuc3RhY2sucG9wKCl9fX1mdW5jdGlvbiB4S3QodCl7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaGFuZGxlIHZhbHVlIGAiK3QrImAsIGV4cGVjdGVkIG5vZGUiKX1mdW5jdGlvbiBiS3QodCl7bGV0IGU9dDt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBoYW5kbGUgdW5rbm93biBub2RlIGAiK2UudHlwZSsiYCIpfWZ1bmN0aW9uIHZLdCh0LGUpe2lmKHQudHlwZT09PSJkZWZpbml0aW9uIiYmdC50eXBlPT09ZS50eXBlKXJldHVybiAwfWZ1bmN0aW9uIHlLdCh0LGUpe3JldHVybiBaWGUodCx0aGlzLGUpfWZ1bmN0aW9uIHdLdCh0LGUpe3JldHVybiBRWGUodCx0aGlzLGUpfWZ1bmN0aW9uIE1LdCh0LGUpe3JldHVybiBhUWUodGhpcyx0LGUpfXZhciBzUWU9bigoKT0+e2lLKCk7UlplKCk7eksoKTtIWGUoKTtWWGUoKTtXWGUoKTtZWGUoKTtYWGUoKTtLWGUoKTtlUWUoKTtyUWUoKTtvUWUoKX0pO3ZhciBnSD1uKCgpPT57c1FlKCk7eksoKX0pO2Z1bmN0aW9uIExLKCl7cmV0dXJue2VudGVyOnt0YWJsZTp6S3QsdGFibGVEYXRhOm5RZSx0YWJsZUhlYWRlcjpuUWUsdGFibGVSb3c6U0t0fSxleGl0Ontjb2RlVGV4dDpDS3QsdGFibGU6a0t0LHRhYmxlRGF0YTpDSyx0YWJsZUhlYWRlcjpDSyx0YWJsZVJvdzpDS319fWZ1bmN0aW9uIHpLdCh0KXtsZXQgZT10Ll9hbGlnbjt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZSIsYWxpZ246ZS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0ibm9uZSI/bnVsbDphfSksY2hpbGRyZW46W119LHQpLHRoaXMuZGF0YS5pblRhYmxlPSEwfWZ1bmN0aW9uIGtLdCh0KXt0aGlzLmV4aXQodCksdGhpcy5kYXRhLmluVGFibGU9dm9pZCAwfWZ1bmN0aW9uIFNLdCh0KXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZVJvdyIsY2hpbGRyZW46W119LHQpfWZ1bmN0aW9uIENLKHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBuUWUodCl7dGhpcy5lbnRlcih7dHlwZToidGFibGVDZWxsIixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gQ0t0KHQpe2xldCBlPXRoaXMucmVzdW1lKCk7dGhpcy5kYXRhLmluVGFibGUmJihlPWUucmVwbGFjZSgvXFwoW1xcfF0pL2csTEt0KSk7bGV0IGE9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTthLnR5cGUsYS52YWx1ZT1lLHRoaXMuZXhpdCh0KX1mdW5jdGlvbiBMS3QodCxlKXtyZXR1cm4gZT09PSJ8Ij9lOnR9ZnVuY3Rpb24gVEsodCl7bGV0IGU9dHx8e30sYT1lLnRhYmxlQ2VsbFBhZGRpbmcscj1lLnRhYmxlUGlwZUFsaWduLGk9ZS5zdHJpbmdMZW5ndGgsbz1hPyIgIjoifCI7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ8IixhZnRlcjoiWwkgOi1dIn0se2NoYXJhY3RlcjoifCIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiOiIsYWZ0ZXI6Ii0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7aW5saW5lQ29kZTpoLHRhYmxlOnMsdGFibGVDZWxsOmYsdGFibGVSb3c6bH19O2Z1bmN0aW9uIHMoZyxiLHgsbSl7cmV0dXJuIGModShnLHgsbSksZy5hbGlnbil9ZnVuY3Rpb24gbChnLGIseCxtKXtsZXQgdj1kKGcseCxtKSx5PWMoW3ZdKTtyZXR1cm4geS5zbGljZSgwLHkuaW5kZXhPZihgCmApKX1mdW5jdGlvbiBmKGcsYix4LG0pe2xldCB2PXguZW50ZXIoInRhYmxlQ2VsbCIpLHk9eC5lbnRlcigicGhyYXNpbmciKSx3PXguY29udGFpbmVyUGhyYXNpbmcoZyx7Li4ubSxiZWZvcmU6byxhZnRlcjpvfSk7cmV0dXJuIHkoKSx2KCksd31mdW5jdGlvbiBjKGcsYil7cmV0dXJuIElaZShnLHthbGlnbjpiLGFsaWduRGVsaW1pdGVyczpyLHBhZGRpbmc6YSxzdHJpbmdMZW5ndGg6aX0pfWZ1bmN0aW9uIHUoZyxiLHgpe2xldCBtPWcuY2hpbGRyZW4sdj0tMSx5PVtdLHc9Yi5lbnRlcigidGFibGUiKTtmb3IoOysrdjxtLmxlbmd0aDspeVt2XT1kKG1bdl0sYix4KTtyZXR1cm4gdygpLHl9ZnVuY3Rpb24gZChnLGIseCl7bGV0IG09Zy5jaGlsZHJlbix2PS0xLHk9W10sdz1iLmVudGVyKCJ0YWJsZVJvdyIpO2Zvcig7Kyt2PG0ubGVuZ3RoOyl5W3ZdPWYobVt2XSxnLGIseCk7cmV0dXJuIHcoKSx5fWZ1bmN0aW9uIGgoZyxiLHgpe2xldCBtPXVuLmlubGluZUNvZGUoZyxiLHgpO3JldHVybiB4LnN0YWNrLmluY2x1ZGVzKCJ0YWJsZUNlbGwiKSYmKG09bS5yZXBsYWNlKC9cfC9nLCJcXCQmIikpLG19fXZhciBsUWU9bigoKT0+e0ZvKCk7RlplKCk7Z0goKX0pO3ZhciBjUWU9bigoKT0+e2xRZSgpfSk7ZnVuY3Rpb24gX0soKXtyZXR1cm57ZXhpdDp7dGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZDpkUWUsdGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkOmRRZSxwYXJhZ3JhcGg6VEt0fX19ZnVuY3Rpb24gQUsoKXtyZXR1cm57dW5zYWZlOlt7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7bGlzdEl0ZW06X0t0fX19ZnVuY3Rpb24gZFFlKHQpe2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07ZS50eXBlLGUuY2hlY2tlZD10LnR5cGU9PT0idGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCJ9ZnVuY3Rpb24gVEt0KHQpe2xldCBlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07aWYoZSYmZS50eXBlPT09Imxpc3RJdGVtIiYmdHlwZW9mIGUuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgYT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2EudHlwZTtsZXQgcj1hLmNoaWxkcmVuWzBdO2lmKHImJnIudHlwZT09PSJ0ZXh0Iil7bGV0IGk9ZS5jaGlsZHJlbixvPS0xLHM7Zm9yKDsrK288aS5sZW5ndGg7KXtsZXQgbD1pW29dO2lmKGwudHlwZT09PSJwYXJhZ3JhcGgiKXtzPWw7YnJlYWt9fXM9PT1hJiYoci52YWx1ZT1yLnZhbHVlLnNsaWNlKDEpLHIudmFsdWUubGVuZ3RoPT09MD9hLmNoaWxkcmVuLnNoaWZ0KCk6YS5wb3NpdGlvbiYmci5wb3NpdGlvbiYmdHlwZW9mIHIucG9zaXRpb24uc3RhcnQub2Zmc2V0PT0ibnVtYmVyIiYmKHIucG9zaXRpb24uc3RhcnQuY29sdW1uKyssci5wb3NpdGlvbi5zdGFydC5vZmZzZXQrKyxhLnBvc2l0aW9uLnN0YXJ0PU9iamVjdC5hc3NpZ24oe30sci5wb3NpdGlvbi5zdGFydCkpKX19dGhpcy5leGl0KHQpfWZ1bmN0aW9uIF9LdCh0LGUsYSxyKXtsZXQgaT10LmNoaWxkcmVuWzBdLG89dHlwZW9mIHQuY2hlY2tlZD09ImJvb2xlYW4iJiZpJiZpLnR5cGU9PT0icGFyYWdyYXBoIixzPSJbIisodC5jaGVja2VkPyJ4IjoiICIpKyJdICIsbD1hLmNyZWF0ZVRyYWNrZXIocik7byYmbC5tb3ZlKHMpO2xldCBmPXVuLmxpc3RJdGVtKHQsZSxhLHsuLi5yLC4uLmwuY3VycmVudCgpfSk7cmV0dXJuIG8mJihmPWYucmVwbGFjZSgvXig/OlsqKy1dfFxkK1wuKShbXHJcbl18IHsxLDN9KS8sYykpLGY7ZnVuY3Rpb24gYyh1KXtyZXR1cm4gdStzfX12YXIgZlFlPW4oKCk9PntGbygpO2dIKCl9KTt2YXIgdVFlPW4oKCk9PntmUWUoKX0pO2Z1bmN0aW9uICRLKCl7cmV0dXJuW0tRKCksZUsoKSxhSygpLExLKCksX0soKV19ZnVuY3Rpb24gREsodCl7cmV0dXJue2V4dGVuc2lvbnM6W0pRKCksdEsodCkscksoKSxUSyh0KSxBSygpXX19dmFyIHBRZT1uKCgpPT57TFplKCk7JFplKCk7TlplKCk7Y1FlKCk7dVFlKCl9KTt2YXIgaFFlPW4oKCk9PntwUWUoKX0pO2Z1bmN0aW9uIFMxKHQsZSxhLHIpe2xldCBpPXQubGVuZ3RoLG89MCxzO2lmKGU8MD9lPS1lPmk/MDppK2U6ZT1lPmk/aTplLGE9YT4wP2E6MCxyLmxlbmd0aDwxZTQpcz1BcnJheS5mcm9tKHIpLHMudW5zaGlmdChlLGEpLHQuc3BsaWNlKC4uLnMpO2Vsc2UgZm9yKGEmJnQuc3BsaWNlKGUsYSk7bzxyLmxlbmd0aDspcz1yLnNsaWNlKG8sbysxZTQpLHMudW5zaGlmdChlLDApLHQuc3BsaWNlKC4uLnMpLG8rPTFlNCxlKz0xZTR9ZnVuY3Rpb24gRDEodCxlKXtyZXR1cm4gdC5sZW5ndGg+MD8oUzEodCx0Lmxlbmd0aCwwLGUpLHQpOmV9dmFyIFByPW4oKCk9Pnt9KTtmdW5jdGlvbiB4SCh0KXtsZXQgZT17fSxhPS0xO2Zvcig7KythPHQubGVuZ3RoOylBS3QoZSx0W2FdKTtyZXR1cm4gZX1mdW5jdGlvbiBBS3QodCxlKXtsZXQgYTtmb3IoYSBpbiBlKXtsZXQgaT0oRUsuY2FsbCh0LGEpP3RbYV06dm9pZCAwKXx8KHRbYV09e30pLG89ZVthXSxzO2lmKG8pZm9yKHMgaW4gbyl7RUsuY2FsbChpLHMpfHwoaVtzXT1bXSk7bGV0IGw9b1tzXTskS3QoaVtzXSxBcnJheS5pc0FycmF5KGwpP2w6bD9bbF06W10pfX19ZnVuY3Rpb24gJEt0KHQsZSl7bGV0IGE9LTEscj1bXTtmb3IoOysrYTxlLmxlbmd0aDspKGVbYV0uYWRkPT09ImFmdGVyIj90OnIpLnB1c2goZVthXSk7UzEodCwwLDAscil9ZnVuY3Rpb24gYkgodCl7bGV0IGU9e30sYT0tMTtmb3IoOysrYTx0Lmxlbmd0aDspREt0KGUsdFthXSk7cmV0dXJuIGV9ZnVuY3Rpb24gREt0KHQsZSl7bGV0IGE7Zm9yKGEgaW4gZSl7bGV0IGk9KEVLLmNhbGwodCxhKT90W2FdOnZvaWQgMCl8fCh0W2FdPXt9KSxvPWVbYV0scztpZihvKWZvcihzIGluIG8paVtzXT1vW3NdfX12YXIgRUssdkg9bigoKT0+e1ByKCk7RUs9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiBJSygpe3JldHVybnt0ZXh0OklyfX1mdW5jdGlvbiBQS3QodCxlLGEpe2xldCByPXRoaXMsaSxvO3JldHVybiBzO2Z1bmN0aW9uIHMoZCl7cmV0dXJuIU5LKGQpfHwhTVFlLmNhbGwocixyLnByZXZpb3VzKXx8UEsoci5ldmVudHMpP2EoZCk6KHQuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLHQuZW50ZXIoImxpdGVyYWxBdXRvbGlua0VtYWlsIiksbChkKSl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gTksoZCk/KHQuY29uc3VtZShkKSxsKTpkPT09NjQ/KHQuY29uc3VtZShkKSxmKTphKGQpfWZ1bmN0aW9uIGYoZCl7cmV0dXJuIGQ9PT00Nj90LmNoZWNrKE5LdCx1LGMpKGQpOmQ9PT00NXx8ZD09PTk1fHx5MShkKT8obz0hMCx0LmNvbnN1bWUoZCksZik6dShkKX1mdW5jdGlvbiBjKGQpe3JldHVybiB0LmNvbnN1bWUoZCksaT0hMCxmfWZ1bmN0aW9uIHUoZCl7cmV0dXJuIG8mJmkmJkgxKHIucHJldmlvdXMpPyh0LmV4aXQoImxpdGVyYWxBdXRvbGlua0VtYWlsIiksdC5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKGQpKTphKGQpfX1mdW5jdGlvbiBJS3QodCxlLGEpe2xldCByPXRoaXM7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gcyE9PTg3JiZzIT09MTE5fHwheVFlLmNhbGwocixyLnByZXZpb3VzKXx8UEsoci5ldmVudHMpP2Eocyk6KHQuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLHQuZW50ZXIoImxpdGVyYWxBdXRvbGlua1d3dyIpLHQuY2hlY2soRUt0LHQuYXR0ZW1wdChtUWUsdC5hdHRlbXB0KGdRZSxvKSxhKSxhKShzKSl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gdC5leGl0KCJsaXRlcmFsQXV0b2xpbmtXd3ciKSx0LmV4aXQoImxpdGVyYWxBdXRvbGluayIpLGUocyl9fWZ1bmN0aW9uIEZLdCh0LGUsYSl7bGV0IHI9dGhpcyxpPSIiLG89ITE7cmV0dXJuIHM7ZnVuY3Rpb24gcyhkKXtyZXR1cm4oZD09PTcyfHxkPT09MTA0KSYmd1FlLmNhbGwocixyLnByZXZpb3VzKSYmIVBLKHIuZXZlbnRzKT8odC5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksdC5lbnRlcigibGl0ZXJhbEF1dG9saW5rSHR0cCIpLGkrPVN0cmluZy5mcm9tQ29kZVBvaW50KGQpLHQuY29uc3VtZShkKSxsKTphKGQpfWZ1bmN0aW9uIGwoZCl7aWYoSDEoZCkmJmkubGVuZ3RoPDUpcmV0dXJuIGkrPVN0cmluZy5mcm9tQ29kZVBvaW50KGQpLHQuY29uc3VtZShkKSxsO2lmKGQ9PT01OCl7bGV0IGg9aS50b0xvd2VyQ2FzZSgpO2lmKGg9PT0iaHR0cCJ8fGg9PT0iaHR0cHMiKXJldHVybiB0LmNvbnN1bWUoZCksZn1yZXR1cm4gYShkKX1mdW5jdGlvbiBmKGQpe3JldHVybiBkPT09NDc/KHQuY29uc3VtZShkKSxvP2M6KG89ITAsZikpOmEoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gZD09PW51bGx8fGxuKGQpfHx3dChkKXx8TnIoZCl8fGNuKGQpP2EoZCk6dC5hdHRlbXB0KG1RZSx0LmF0dGVtcHQoZ1FlLHUpLGEpKGQpfWZ1bmN0aW9uIHUoZCl7cmV0dXJuIHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rSHR0cCIpLHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShkKX19ZnVuY3Rpb24gT0t0KHQsZSxhKXtsZXQgcj0wO3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuKHM9PT04N3x8cz09PTExOSkmJnI8Mz8ocisrLHQuY29uc3VtZShzKSxpKTpzPT09NDYmJnI9PT0zPyh0LmNvbnN1bWUocyksbyk6YShzKX1mdW5jdGlvbiBvKHMpe3JldHVybiBzPT09bnVsbD9hKHMpOmUocyl9fWZ1bmN0aW9uIEJLdCh0LGUsYSl7bGV0IHIsaSxvO3JldHVybiBzO2Z1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT00Nnx8Yz09PTk1P3QuY2hlY2soeFFlLGYsbCkoYyk6Yz09PW51bGx8fHd0KGMpfHxOcihjKXx8YyE9PTQ1JiZjbihjKT9mKGMpOihvPSEwLHQuY29uc3VtZShjKSxzKX1mdW5jdGlvbiBsKGMpe3JldHVybiBjPT09OTU/cj0hMDooaT1yLHI9dm9pZCAwKSx0LmNvbnN1bWUoYyksc31mdW5jdGlvbiBmKGMpe3JldHVybiBpfHxyfHwhbz9hKGMpOmUoYyl9fWZ1bmN0aW9uIFJLdCh0LGUpe2xldCBhPTAscj0wO3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIHM9PT00MD8oYSsrLHQuY29uc3VtZShzKSxpKTpzPT09NDEmJnI8YT9vKHMpOnM9PT0zM3x8cz09PTM0fHxzPT09Mzh8fHM9PT0zOXx8cz09PTQxfHxzPT09NDJ8fHM9PT00NHx8cz09PTQ2fHxzPT09NTh8fHM9PT01OXx8cz09PTYwfHxzPT09NjN8fHM9PT05M3x8cz09PTk1fHxzPT09MTI2P3QuY2hlY2soeFFlLGUsbykocyk6cz09PW51bGx8fHd0KHMpfHxOcihzKT9lKHMpOih0LmNvbnN1bWUocyksaSl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gcz09PTQxJiZyKyssdC5jb25zdW1lKHMpLGl9fWZ1bmN0aW9uIEhLdCh0LGUsYSl7cmV0dXJuIHI7ZnVuY3Rpb24gcihsKXtyZXR1cm4gbD09PTMzfHxsPT09MzR8fGw9PT0zOXx8bD09PTQxfHxsPT09NDJ8fGw9PT00NHx8bD09PTQ2fHxsPT09NTh8fGw9PT01OXx8bD09PTYzfHxsPT09OTV8fGw9PT0xMjY/KHQuY29uc3VtZShsKSxyKTpsPT09Mzg/KHQuY29uc3VtZShsKSxvKTpsPT09OTM/KHQuY29uc3VtZShsKSxpKTpsPT09NjB8fGw9PT1udWxsfHx3dChsKXx8TnIobCk/ZShsKTphKGwpfWZ1bmN0aW9uIGkobCl7cmV0dXJuIGw9PT1udWxsfHxsPT09NDB8fGw9PT05MXx8d3QobCl8fE5yKGwpP2UobCk6cihsKX1mdW5jdGlvbiBvKGwpe3JldHVybiBIMShsKT9zKGwpOmEobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gbD09PTU5Pyh0LmNvbnN1bWUobCkscik6SDEobCk/KHQuY29uc3VtZShsKSxzKTphKGwpfX1mdW5jdGlvbiBxS3QodCxlLGEpe3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIHQuY29uc3VtZShvKSxpfWZ1bmN0aW9uIGkobyl7cmV0dXJuIHkxKG8pP2Eobyk6ZShvKX19ZnVuY3Rpb24geVFlKHQpe3JldHVybiB0PT09bnVsbHx8dD09PTQwfHx0PT09NDJ8fHQ9PT05NXx8dD09PTkxfHx0PT09OTN8fHQ9PT0xMjZ8fHd0KHQpfWZ1bmN0aW9uIHdRZSh0KXtyZXR1cm4hSDEodCl9ZnVuY3Rpb24gTVFlKHQpe3JldHVybiEodD09PTQ3fHxOSyh0KSl9ZnVuY3Rpb24gTksodCl7cmV0dXJuIHQ9PT00M3x8dD09PTQ1fHx0PT09NDZ8fHQ9PT05NXx8eTEodCl9ZnVuY3Rpb24gUEsodCl7bGV0IGU9dC5sZW5ndGgsYT0hMTtmb3IoO2UtLTspe2xldCByPXRbZV1bMV07aWYoKHIudHlwZT09PSJsYWJlbExpbmsifHxyLnR5cGU9PT0ibGFiZWxJbWFnZSIpJiYhci5fYmFsYW5jZWQpe2E9ITA7YnJlYWt9aWYoci5fZ2ZtQXV0b2xpbmtMaXRlcmFsV2Fsa2VkSW50byl7YT0hMTticmVha319cmV0dXJuIHQubGVuZ3RoPjAmJiFhJiYodFt0Lmxlbmd0aC0xXVsxXS5fZ2ZtQXV0b2xpbmtMaXRlcmFsV2Fsa2VkSW50bz0hMCksYX12YXIgRUt0LG1RZSxnUWUseFFlLE5LdCxiUWUsdlFlLGtpLElyLHpRZT1uKCgpPT57a3QoKTtFS3Q9e3Rva2VuaXplOk9LdCxwYXJ0aWFsOiEwfSxtUWU9e3Rva2VuaXplOkJLdCxwYXJ0aWFsOiEwfSxnUWU9e3Rva2VuaXplOlJLdCxwYXJ0aWFsOiEwfSx4UWU9e3Rva2VuaXplOkhLdCxwYXJ0aWFsOiEwfSxOS3Q9e3Rva2VuaXplOnFLdCxwYXJ0aWFsOiEwfSxiUWU9e25hbWU6Ind3d0F1dG9saW5rIix0b2tlbml6ZTpJS3QscHJldmlvdXM6eVFlfSx2UWU9e25hbWU6InByb3RvY29sQXV0b2xpbmsiLHRva2VuaXplOkZLdCxwcmV2aW91czp3UWV9LGtpPXtuYW1lOiJlbWFpbEF1dG9saW5rIix0b2tlbml6ZTpQS3QscHJldmlvdXM6TVFlfSxJcj17fTtmb3IodmFyIGhuPTQ4O2huPDEyMzspSXJbaG5dPWtpLGhuKyssaG49PT01OD9obj02NTpobj09PTkxJiYoaG49OTcpO0lyWzQzXT1raSxJcls0NV09a2ksSXJbNDZdPWtpLElyWzk1XT1raSxJcls3Ml09W2tpLHZRZV0sSXJbMTA0XT1ba2ksdlFlXSxJcls4N109W2tpLGJRZV0sSXJbMTE5XT1ba2ksYlFlXX0pO2Z1bmN0aW9uIHlIKHQpe3JldHVybiB0LnJlcGxhY2UoL1siJjw+XS9nLGUpO2Z1bmN0aW9uIGUoYSl7cmV0dXJuIiYiK1ZLdFthXSsiOyJ9fXZhciBWS3QsRks9bigoKT0+e1ZLdD17JyInOiJxdW90IiwiJiI6ImFtcCIsIjwiOiJsdCIsIj4iOiJndCJ9fSk7ZnVuY3Rpb24gRnIodCxlKXtsZXQgYT15SChjYSh0fHwiIikpO2lmKCFlKXJldHVybiBhO2xldCByPWEuaW5kZXhPZigiOiIpLGk9YS5pbmRleE9mKCI/Iiksbz1hLmluZGV4T2YoIiMiKSxzPWEuaW5kZXhPZigiLyIpO3JldHVybiByPDB8fHM+LTEmJnI+c3x8aT4tMSYmcj5pfHxvPi0xJiZyPm98fGUudGVzdChhLnNsaWNlKDAscikpP2E6IiJ9ZnVuY3Rpb24gY2EodCl7bGV0IGU9W10sYT0tMSxyPTAsaT0wO2Zvcig7KythPHQubGVuZ3RoOyl7bGV0IG89dC5jaGFyQ29kZUF0KGEpLHM9IiI7aWYobz09PTM3JiZ5MSh0LmNoYXJDb2RlQXQoYSsxKSkmJnkxKHQuY2hhckNvZGVBdChhKzIpKSlpPTI7ZWxzZSBpZihvPDEyOCkvWyEjJCYtOz0/LVpfYS16fl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShvKSl8fChzPVN0cmluZy5mcm9tQ2hhckNvZGUobykpO2Vsc2UgaWYobz41NTI5NSYmbzw1NzM0NCl7bGV0IGw9dC5jaGFyQ29kZUF0KGErMSk7bzw1NjMyMCYmbD41NjMxOSYmbDw1NzM0ND8ocz1TdHJpbmcuZnJvbUNoYXJDb2RlKG8sbCksaT0xKTpzPSJcdUZGRkQifWVsc2Ugcz1TdHJpbmcuZnJvbUNoYXJDb2RlKG8pO3MmJihlLnB1c2godC5zbGljZShyLGEpLGVuY29kZVVSSUNvbXBvbmVudChzKSkscj1hK2krMSxzPSIiKSxpJiYoYSs9aSxpPTApfXJldHVybiBlLmpvaW4oIiIpK3Quc2xpY2Uocil9dmFyIE9yPW4oKCk9PntrdCgpO0ZLKCl9KTtmdW5jdGlvbiBCSygpe3JldHVybntleGl0OntsaXRlcmFsQXV0b2xpbmtFbWFpbDpqS3QsbGl0ZXJhbEF1dG9saW5rSHR0cDpXS3QsbGl0ZXJhbEF1dG9saW5rV3d3OlVLdH19fWZ1bmN0aW9uIFVLdCh0KXtPSy5jYWxsKHRoaXMsdCwiaHR0cDovLyIpfWZ1bmN0aW9uIGpLdCh0KXtPSy5jYWxsKHRoaXMsdCwibWFpbHRvOiIpfWZ1bmN0aW9uIFdLdCh0KXtPSy5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gT0sodCxlKXtsZXQgYT10aGlzLnNsaWNlU2VyaWFsaXplKHQpO3RoaXMudGFnKCc8YSBocmVmPSInK0ZyKChlfHwiIikrYSkrJyI+JyksdGhpcy5yYXcodGhpcy5lbmNvZGUoYSkpLHRoaXMudGFnKCI8L2E+Iil9dmFyIGtRZT1uKCgpPT57T3IoKX0pO3ZhciBTUWU9bigoKT0+e3pRZSgpO2tRZSgpfSk7ZnVuY3Rpb24gcW8odCxlLGEpe2xldCByPVtdLGk9LTE7Zm9yKDsrK2k8dC5sZW5ndGg7KXtsZXQgbz10W2ldLnJlc29sdmVBbGw7byYmIXIuaW5jbHVkZXMobykmJihlPW8oZSxhKSxyLnB1c2gobykpfXJldHVybiBlfXZhciBkZD1uKCgpPT57fSk7ZnVuY3Rpb24gR0t0KHQsZSl7bGV0IGE9LTEscixpLG8scyxsLGYsYyx1O2Zvcig7KythPHQubGVuZ3RoOylpZih0W2FdWzBdPT09ImVudGVyIiYmdFthXVsxXS50eXBlPT09ImF0dGVudGlvblNlcXVlbmNlIiYmdFthXVsxXS5fY2xvc2Upe2ZvcihyPWE7ci0tOylpZih0W3JdWzBdPT09ImV4aXQiJiZ0W3JdWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiZ0W3JdWzFdLl9vcGVuJiZlLnNsaWNlU2VyaWFsaXplKHRbcl1bMV0pLmNoYXJDb2RlQXQoMCk9PT1lLnNsaWNlU2VyaWFsaXplKHRbYV1bMV0pLmNoYXJDb2RlQXQoMCkpe2lmKCh0W3JdWzFdLl9jbG9zZXx8dFthXVsxXS5fb3BlbikmJih0W2FdWzFdLmVuZC5vZmZzZXQtdFthXVsxXS5zdGFydC5vZmZzZXQpJTMmJiEoKHRbcl1bMV0uZW5kLm9mZnNldC10W3JdWzFdLnN0YXJ0Lm9mZnNldCt0W2FdWzFdLmVuZC5vZmZzZXQtdFthXVsxXS5zdGFydC5vZmZzZXQpJTMpKWNvbnRpbnVlO2Y9dFtyXVsxXS5lbmQub2Zmc2V0LXRbcl1bMV0uc3RhcnQub2Zmc2V0PjEmJnRbYV1bMV0uZW5kLm9mZnNldC10W2FdWzFdLnN0YXJ0Lm9mZnNldD4xPzI6MTtsZXQgZD17Li4udFtyXVsxXS5lbmR9LGg9ey4uLnRbYV1bMV0uc3RhcnR9O0NRZShkLC1mKSxDUWUoaCxmKSxzPXt0eXBlOmY+MT8ic3Ryb25nU2VxdWVuY2UiOiJlbXBoYXNpc1NlcXVlbmNlIixzdGFydDpkLGVuZDp7Li4udFtyXVsxXS5lbmR9fSxsPXt0eXBlOmY+MT8ic3Ryb25nU2VxdWVuY2UiOiJlbXBoYXNpc1NlcXVlbmNlIixzdGFydDp7Li4udFthXVsxXS5zdGFydH0sZW5kOmh9LG89e3R5cGU6Zj4xPyJzdHJvbmdUZXh0IjoiZW1waGFzaXNUZXh0IixzdGFydDp7Li4udFtyXVsxXS5lbmR9LGVuZDp7Li4udFthXVsxXS5zdGFydH19LGk9e3R5cGU6Zj4xPyJzdHJvbmciOiJlbXBoYXNpcyIsc3RhcnQ6ey4uLnMuc3RhcnR9LGVuZDp7Li4ubC5lbmR9fSx0W3JdWzFdLmVuZD17Li4ucy5zdGFydH0sdFthXVsxXS5zdGFydD17Li4ubC5lbmR9LGM9W10sdFtyXVsxXS5lbmQub2Zmc2V0LXRbcl1bMV0uc3RhcnQub2Zmc2V0JiYoYz1EMShjLFtbImVudGVyIix0W3JdWzFdLGVdLFsiZXhpdCIsdFtyXVsxXSxlXV0pKSxjPUQxKGMsW1siZW50ZXIiLGksZV0sWyJlbnRlciIscyxlXSxbImV4aXQiLHMsZV0sWyJlbnRlciIsbyxlXV0pLGM9RDEoYyxxbyhlLnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCx0LnNsaWNlKHIrMSxhKSxlKSksYz1EMShjLFtbImV4aXQiLG8sZV0sWyJlbnRlciIsbCxlXSxbImV4aXQiLGwsZV0sWyJleGl0IixpLGVdXSksdFthXVsxXS5lbmQub2Zmc2V0LXRbYV1bMV0uc3RhcnQub2Zmc2V0Pyh1PTIsYz1EMShjLFtbImVudGVyIix0W2FdWzFdLGVdLFsiZXhpdCIsdFthXVsxXSxlXV0pKTp1PTAsUzEodCxyLTEsYS1yKzMsYyksYT1yK2MubGVuZ3RoLXUtMjticmVha319Zm9yKGE9LTE7KythPHQubGVuZ3RoOyl0W2FdWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiYodFthXVsxXS50eXBlPSJkYXRhIik7cmV0dXJuIHR9ZnVuY3Rpb24gWUt0KHQsZSl7bGV0IGE9dGhpcy5wYXJzZXIuY29uc3RydWN0cy5hdHRlbnRpb25NYXJrZXJzLm51bGwscj10aGlzLnByZXZpb3VzLGk9emkociksbztyZXR1cm4gcztmdW5jdGlvbiBzKGYpe3JldHVybiBvPWYsdC5lbnRlcigiYXR0ZW50aW9uU2VxdWVuY2UiKSxsKGYpfWZ1bmN0aW9uIGwoZil7aWYoZj09PW8pcmV0dXJuIHQuY29uc3VtZShmKSxsO2xldCBjPXQuZXhpdCgiYXR0ZW50aW9uU2VxdWVuY2UiKSx1PXppKGYpLGQ9IXV8fHU9PT0yJiZpfHxhLmluY2x1ZGVzKGYpLGg9IWl8fGk9PT0yJiZ1fHxhLmluY2x1ZGVzKHIpO3JldHVybiBjLl9vcGVuPSEhKG89PT00Mj9kOmQmJihpfHwhaCkpLGMuX2Nsb3NlPSEhKG89PT00Mj9oOmgmJih1fHwhZCkpLGUoZil9fWZ1bmN0aW9uIENRZSh0LGUpe3QuY29sdW1uKz1lLHQub2Zmc2V0Kz1lLHQuX2J1ZmZlckluZGV4Kz1lfXZhciBmZCxMUWU9bigoKT0+e1ByKCk7Y0goKTtkZCgpO2ZkPXtuYW1lOiJhdHRlbnRpb24iLHJlc29sdmVBbGw6R0t0LHRva2VuaXplOllLdH19KTtmdW5jdGlvbiBaS3QodCxlLGEpe2xldCByPTA7cmV0dXJuIGk7ZnVuY3Rpb24gaShnKXtyZXR1cm4gdC5lbnRlcigiYXV0b2xpbmsiKSx0LmVudGVyKCJhdXRvbGlua01hcmtlciIpLHQuY29uc3VtZShnKSx0LmV4aXQoImF1dG9saW5rTWFya2VyIiksdC5lbnRlcigiYXV0b2xpbmtQcm90b2NvbCIpLG99ZnVuY3Rpb24gbyhnKXtyZXR1cm4gSDEoZyk/KHQuY29uc3VtZShnKSxzKTpnPT09NjQ/YShnKTpjKGcpfWZ1bmN0aW9uIHMoZyl7cmV0dXJuIGc9PT00M3x8Zz09PTQ1fHxnPT09NDZ8fHkxKGcpPyhyPTEsbChnKSk6YyhnKX1mdW5jdGlvbiBsKGcpe3JldHVybiBnPT09NTg/KHQuY29uc3VtZShnKSxyPTAsZik6KGc9PT00M3x8Zz09PTQ1fHxnPT09NDZ8fHkxKGcpKSYmcisrPDMyPyh0LmNvbnN1bWUoZyksbCk6KHI9MCxjKGcpKX1mdW5jdGlvbiBmKGcpe3JldHVybiBnPT09NjI/KHQuZXhpdCgiYXV0b2xpbmtQcm90b2NvbCIpLHQuZW50ZXIoImF1dG9saW5rTWFya2VyIiksdC5jb25zdW1lKGcpLHQuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSx0LmV4aXQoImF1dG9saW5rIiksZSk6Zz09PW51bGx8fGc9PT0zMnx8Zz09PTYwfHxsbihnKT9hKGcpOih0LmNvbnN1bWUoZyksZil9ZnVuY3Rpb24gYyhnKXtyZXR1cm4gZz09PTY0Pyh0LmNvbnN1bWUoZyksdSk6aFplKGcpPyh0LmNvbnN1bWUoZyksYyk6YShnKX1mdW5jdGlvbiB1KGcpe3JldHVybiB5MShnKT9kKGcpOmEoZyl9ZnVuY3Rpb24gZChnKXtyZXR1cm4gZz09PTQ2Pyh0LmNvbnN1bWUoZykscj0wLHUpOmc9PT02Mj8odC5leGl0KCJhdXRvbGlua1Byb3RvY29sIikudHlwZT0iYXV0b2xpbmtFbWFpbCIsdC5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSx0LmNvbnN1bWUoZyksdC5leGl0KCJhdXRvbGlua01hcmtlciIpLHQuZXhpdCgiYXV0b2xpbmsiKSxlKTpoKGcpfWZ1bmN0aW9uIGgoZyl7aWYoKGc9PT00NXx8eTEoZykpJiZyKys8NjMpe2xldCBiPWc9PT00NT9oOmQ7cmV0dXJuIHQuY29uc3VtZShnKSxifXJldHVybiBhKGcpfX12YXIgUkssVFFlPW4oKCk9PntrdCgpO1JLPXtuYW1lOiJhdXRvbGluayIsdG9rZW5pemU6Wkt0fX0pO2Z1bmN0aW9uIEplKHQsZSxhLHIpe2xldCBpPXI/ci0xOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxvPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhmKXtyZXR1cm4gR2UoZik/KHQuZW50ZXIoYSksbChmKSk6ZShmKX1mdW5jdGlvbiBsKGYpe3JldHVybiBHZShmKSYmbysrPGk/KHQuY29uc3VtZShmKSxsKToodC5leGl0KGEpLGUoZikpfX12YXIgQzE9bigoKT0+e2t0KCl9KTtmdW5jdGlvbiBYS3QodCxlLGEpe3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIEdlKG8pP0plKHQsaSwibGluZVByZWZpeCIpKG8pOmkobyl9ZnVuY3Rpb24gaShvKXtyZXR1cm4gbz09PW51bGx8fFBlKG8pP2Uobyk6YShvKX19dmFyIEJyLHdIPW4oKCk9PntDMSgpO2t0KCk7QnI9e3BhcnRpYWw6ITAsdG9rZW5pemU6WEt0fX0pO2Z1bmN0aW9uIFFLdCh0LGUsYSl7bGV0IHI9dGhpcztyZXR1cm4gaTtmdW5jdGlvbiBpKHMpe2lmKHM9PT02Mil7bGV0IGw9ci5jb250YWluZXJTdGF0ZTtyZXR1cm4gbC5vcGVufHwodC5lbnRlcigiYmxvY2tRdW90ZSIse19jb250YWluZXI6ITB9KSxsLm9wZW49ITApLHQuZW50ZXIoImJsb2NrUXVvdGVQcmVmaXgiKSx0LmVudGVyKCJibG9ja1F1b3RlTWFya2VyIiksdC5jb25zdW1lKHMpLHQuZXhpdCgiYmxvY2tRdW90ZU1hcmtlciIpLG99cmV0dXJuIGEocyl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gR2Uocyk/KHQuZW50ZXIoImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiksdC5jb25zdW1lKHMpLHQuZXhpdCgiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UiKSx0LmV4aXQoImJsb2NrUXVvdGVQcmVmaXgiKSxlKToodC5leGl0KCJibG9ja1F1b3RlUHJlZml4IiksZShzKSl9fWZ1bmN0aW9uIEtLdCh0LGUsYSl7bGV0IHI9dGhpcztyZXR1cm4gaTtmdW5jdGlvbiBpKHMpe3JldHVybiBHZShzKT9KZSh0LG8sImxpbmVQcmVmaXgiLHIucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkocyk6byhzKX1mdW5jdGlvbiBvKHMpe3JldHVybiB0LmF0dGVtcHQoTUgsZSxhKShzKX19ZnVuY3Rpb24gSkt0KHQpe3QuZXhpdCgiYmxvY2tRdW90ZSIpfXZhciBNSCxfUWU9bigoKT0+e0MxKCk7a3QoKTtNSD17Y29udGludWF0aW9uOnt0b2tlbml6ZTpLS3R9LGV4aXQ6Skt0LG5hbWU6ImJsb2NrUXVvdGUiLHRva2VuaXplOlFLdH19KTtmdW5jdGlvbiBlSnQodCxlLGEpe3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIHQuZW50ZXIoImNoYXJhY3RlckVzY2FwZSIpLHQuZW50ZXIoImVzY2FwZU1hcmtlciIpLHQuY29uc3VtZShvKSx0LmV4aXQoImVzY2FwZU1hcmtlciIpLGl9ZnVuY3Rpb24gaShvKXtyZXR1cm4gZ1plKG8pPyh0LmVudGVyKCJjaGFyYWN0ZXJFc2NhcGVWYWx1ZSIpLHQuY29uc3VtZShvKSx0LmV4aXQoImNoYXJhY3RlckVzY2FwZVZhbHVlIiksdC5leGl0KCJjaGFyYWN0ZXJFc2NhcGUiKSxlKTphKG8pfX12YXIgekgsQVFlPW4oKCk9PntrdCgpO3pIPXtuYW1lOiJjaGFyYWN0ZXJFc2NhcGUiLHRva2VuaXplOmVKdH19KTtmdW5jdGlvbiB0SnQodCxlLGEpe2xldCByPXRoaXMsaT0wLG8scztyZXR1cm4gbDtmdW5jdGlvbiBsKGQpe3JldHVybiB0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2UiKSx0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSx0LmNvbnN1bWUoZCksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSxmfWZ1bmN0aW9uIGYoZCl7cmV0dXJuIGQ9PT0zNT8odC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyIpLHQuY29uc3VtZShkKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSxjKToodC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKSxvPTMxLHM9eTEsdShkKSl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gZD09PTg4fHxkPT09MTIwPyh0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLHQuY29uc3VtZShkKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsIiksdC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKSxvPTYscz1tWmUsdSk6KHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbz03LHM9b2QsdShkKSl9ZnVuY3Rpb24gdShkKXtpZihkPT09NTkmJmkpe2xldCBoPXQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKTtyZXR1cm4gcz09PXkxJiYhSG8oci5zbGljZVNlcmlhbGl6ZShoKSk/YShkKToodC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksdC5jb25zdW1lKGQpLHQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2UiKSxlKX1yZXR1cm4gcyhkKSYmaSsrPG8/KHQuY29uc3VtZShkKSx1KTphKGQpfX12YXIga0gsJFFlPW4oKCk9PntjZCgpO2t0KCk7a0g9e25hbWU6ImNoYXJhY3RlclJlZmVyZW5jZSIsdG9rZW5pemU6dEp0fX0pO2Z1bmN0aW9uIGFKdCh0LGUsYSl7bGV0IHI9dGhpcyxpPXtwYXJ0aWFsOiEwLHRva2VuaXplOkN9LG89MCxzPTAsbDtyZXR1cm4gZjtmdW5jdGlvbiBmKHope3JldHVybiBjKHopfWZ1bmN0aW9uIGMoeil7bGV0IFA9ci5ldmVudHNbci5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBvPVAmJlBbMV0udHlwZT09PSJsaW5lUHJlZml4Ij9QWzJdLnNsaWNlU2VyaWFsaXplKFBbMV0sITApLmxlbmd0aDowLGw9eix0LmVudGVyKCJjb2RlRmVuY2VkIiksdC5lbnRlcigiY29kZUZlbmNlZEZlbmNlIiksdC5lbnRlcigiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSx1KHopfWZ1bmN0aW9uIHUoeil7cmV0dXJuIHo9PT1sPyhzKyssdC5jb25zdW1lKHopLHUpOnM8Mz9hKHopOih0LmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksR2Uoeik/SmUodCxkLCJ3aGl0ZXNwYWNlIikoeik6ZCh6KSl9ZnVuY3Rpb24gZCh6KXtyZXR1cm4gej09PW51bGx8fFBlKHopPyh0LmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLHIuaW50ZXJydXB0P2Uoeik6dC5jaGVjayhEUWUseCxFKSh6KSk6KHQuZW50ZXIoImNvZGVGZW5jZWRGZW5jZUluZm8iKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksaCh6KSl9ZnVuY3Rpb24gaCh6KXtyZXR1cm4gej09PW51bGx8fFBlKHopPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksZCh6KSk6R2Uoeik/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxKZSh0LGcsIndoaXRlc3BhY2UiKSh6KSk6ej09PTk2JiZ6PT09bD9hKHopOih0LmNvbnN1bWUoeiksaCl9ZnVuY3Rpb24gZyh6KXtyZXR1cm4gej09PW51bGx8fFBlKHopP2Qoeik6KHQuZW50ZXIoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksYih6KSl9ZnVuY3Rpb24gYih6KXtyZXR1cm4gej09PW51bGx8fFBlKHopPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KCJjb2RlRmVuY2VkRmVuY2VNZXRhIiksZCh6KSk6ej09PTk2JiZ6PT09bD9hKHopOih0LmNvbnN1bWUoeiksYil9ZnVuY3Rpb24geCh6KXtyZXR1cm4gdC5hdHRlbXB0KGksRSxtKSh6KX1mdW5jdGlvbiBtKHope3JldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKHopLHQuZXhpdCgibGluZUVuZGluZyIpLHZ9ZnVuY3Rpb24gdih6KXtyZXR1cm4gbz4wJiZHZSh6KT9KZSh0LHksImxpbmVQcmVmaXgiLG8rMSkoeik6eSh6KX1mdW5jdGlvbiB5KHope3JldHVybiB6PT09bnVsbHx8UGUoeik/dC5jaGVjayhEUWUseCxFKSh6KToodC5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLHcoeikpfWZ1bmN0aW9uIHcoeil7cmV0dXJuIHo9PT1udWxsfHxQZSh6KT8odC5leGl0KCJjb2RlRmxvd1ZhbHVlIikseSh6KSk6KHQuY29uc3VtZSh6KSx3KX1mdW5jdGlvbiBFKHope3JldHVybiB0LmV4aXQoImNvZGVGZW5jZWQiKSxlKHopfWZ1bmN0aW9uIEMoeixQLF8pe2xldCAkPTA7cmV0dXJuIEg7ZnVuY3Rpb24gSChUKXtyZXR1cm4gei5lbnRlcigibGluZUVuZGluZyIpLHouY29uc3VtZShUKSx6LmV4aXQoImxpbmVFbmRpbmciKSxMfWZ1bmN0aW9uIEwoVCl7cmV0dXJuIHouZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLEdlKFQpP0plKHosaywibGluZVByZWZpeCIsci5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShUKTprKFQpfWZ1bmN0aW9uIGsoVCl7cmV0dXJuIFQ9PT1sPyh6LmVudGVyKCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLE4oVCkpOl8oVCl9ZnVuY3Rpb24gTihUKXtyZXR1cm4gVD09PWw/KCQrKyx6LmNvbnN1bWUoVCksTik6JD49cz8oei5leGl0KCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLEdlKFQpP0plKHosUywid2hpdGVzcGFjZSIpKFQpOlMoVCkpOl8oVCl9ZnVuY3Rpb24gUyhUKXtyZXR1cm4gVD09PW51bGx8fFBlKFQpPyh6LmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLFAoVCkpOl8oVCl9fX1mdW5jdGlvbiBySnQodCxlLGEpe2xldCByPXRoaXM7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gcz09PW51bGw/YShzKToodC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShzKSx0LmV4aXQoImxpbmVFbmRpbmciKSxvKX1mdW5jdGlvbiBvKHMpe3JldHVybiByLnBhcnNlci5sYXp5W3Iubm93KCkubGluZV0/YShzKTplKHMpfX12YXIgRFFlLFNILEVRZT1uKCgpPT57QzEoKTtrdCgpO0RRZT17cGFydGlhbDohMCx0b2tlbml6ZTpySnR9LFNIPXtjb25jcmV0ZTohMCxuYW1lOiJjb2RlRmVuY2VkIix0b2tlbml6ZTphSnR9fSk7ZnVuY3Rpb24gb0p0KHQsZSxhKXtsZXQgcj10aGlzO3JldHVybiBpO2Z1bmN0aW9uIGkoYyl7cmV0dXJuIHQuZW50ZXIoImNvZGVJbmRlbnRlZCIpLEplKHQsbywibGluZVByZWZpeCIsNSkoYyl9ZnVuY3Rpb24gbyhjKXtsZXQgdT1yLmV2ZW50c1tyLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIHUmJnVbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmdVsyXS5zbGljZVNlcmlhbGl6ZSh1WzFdLCEwKS5sZW5ndGg+PTQ/cyhjKTphKGMpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT1udWxsP2YoYyk6UGUoYyk/dC5hdHRlbXB0KGlKdCxzLGYpKGMpOih0LmVudGVyKCJjb2RlRmxvd1ZhbHVlIiksbChjKSl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gYz09PW51bGx8fFBlKGMpPyh0LmV4aXQoImNvZGVGbG93VmFsdWUiKSxzKGMpKToodC5jb25zdW1lKGMpLGwpfWZ1bmN0aW9uIGYoYyl7cmV0dXJuIHQuZXhpdCgiY29kZUluZGVudGVkIiksZShjKX19ZnVuY3Rpb24gc0p0KHQsZSxhKXtsZXQgcj10aGlzO3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIHIucGFyc2VyLmxhenlbci5ub3coKS5saW5lXT9hKHMpOlBlKHMpPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKHMpLHQuZXhpdCgibGluZUVuZGluZyIpLGkpOkplKHQsbywibGluZVByZWZpeCIsNSkocyl9ZnVuY3Rpb24gbyhzKXtsZXQgbD1yLmV2ZW50c1tyLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIGwmJmxbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmbFsyXS5zbGljZVNlcmlhbGl6ZShsWzFdLCEwKS5sZW5ndGg+PTQ/ZShzKTpQZShzKT9pKHMpOmEocyl9fXZhciB1ZCxpSnQsTlFlPW4oKCk9PntDMSgpO2t0KCk7dWQ9e25hbWU6ImNvZGVJbmRlbnRlZCIsdG9rZW5pemU6b0p0fSxpSnQ9e3BhcnRpYWw6ITAsdG9rZW5pemU6c0p0fX0pO2Z1bmN0aW9uIG5KdCh0KXtsZXQgZT10Lmxlbmd0aC00LGE9MyxyLGk7aWYoKHRbYV1bMV0udHlwZT09PSJsaW5lRW5kaW5nInx8dFthXVsxXS50eXBlPT09InNwYWNlIikmJih0W2VdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fHRbZV1bMV0udHlwZT09PSJzcGFjZSIpKXtmb3Iocj1hOysrcjxlOylpZih0W3JdWzFdLnR5cGU9PT0iY29kZVRleHREYXRhIil7dFthXVsxXS50eXBlPSJjb2RlVGV4dFBhZGRpbmciLHRbZV1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixhKz0yLGUtPTI7YnJlYWt9fWZvcihyPWEtMSxlKys7KytyPD1lOylpPT09dm9pZCAwP3IhPT1lJiZ0W3JdWzFdLnR5cGUhPT0ibGluZUVuZGluZyImJihpPXIpOihyPT09ZXx8dFtyXVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmKHRbaV1bMV0udHlwZT0iY29kZVRleHREYXRhIixyIT09aSsyJiYodFtpXVsxXS5lbmQ9dFtyLTFdWzFdLmVuZCx0LnNwbGljZShpKzIsci1pLTIpLGUtPXItaS0yLHI9aSsyKSxpPXZvaWQgMCk7cmV0dXJuIHR9ZnVuY3Rpb24gbEp0KHQpe3JldHVybiB0IT09OTZ8fHRoaXMuZXZlbnRzW3RoaXMuZXZlbnRzLmxlbmd0aC0xXVsxXS50eXBlPT09ImNoYXJhY3RlckVzY2FwZSJ9ZnVuY3Rpb24gY0p0KHQsZSxhKXtsZXQgcj10aGlzLGk9MCxvLHM7cmV0dXJuIGw7ZnVuY3Rpb24gbChoKXtyZXR1cm4gdC5lbnRlcigiY29kZVRleHQiKSx0LmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksZihoKX1mdW5jdGlvbiBmKGgpe3JldHVybiBoPT09OTY/KHQuY29uc3VtZShoKSxpKyssZik6KHQuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLGMoaCkpfWZ1bmN0aW9uIGMoaCl7cmV0dXJuIGg9PT1udWxsP2EoaCk6aD09PTMyPyh0LmVudGVyKCJzcGFjZSIpLHQuY29uc3VtZShoKSx0LmV4aXQoInNwYWNlIiksYyk6aD09PTk2PyhzPXQuZW50ZXIoImNvZGVUZXh0U2VxdWVuY2UiKSxvPTAsZChoKSk6UGUoaCk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoaCksdC5leGl0KCJsaW5lRW5kaW5nIiksYyk6KHQuZW50ZXIoImNvZGVUZXh0RGF0YSIpLHUoaCkpfWZ1bmN0aW9uIHUoaCl7cmV0dXJuIGg9PT1udWxsfHxoPT09MzJ8fGg9PT05Nnx8UGUoaCk/KHQuZXhpdCgiY29kZVRleHREYXRhIiksYyhoKSk6KHQuY29uc3VtZShoKSx1KX1mdW5jdGlvbiBkKGgpe3JldHVybiBoPT09OTY/KHQuY29uc3VtZShoKSxvKyssZCk6bz09PWk/KHQuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLHQuZXhpdCgiY29kZVRleHQiKSxlKGgpKToocy50eXBlPSJjb2RlVGV4dERhdGEiLHUoaCkpfX12YXIgSEssUFFlPW4oKCk9PntrdCgpO0hLPXtuYW1lOiJjb2RlVGV4dCIscHJldmlvdXM6bEp0LHJlc29sdmU6bkp0LHRva2VuaXplOmNKdH19KTtmdW5jdGlvbiBwZCh0LGUpe2xldCBhPTA7aWYoZS5sZW5ndGg8MWU0KXQucHVzaCguLi5lKTtlbHNlIGZvcig7YTxlLmxlbmd0aDspdC5wdXNoKC4uLmUuc2xpY2UoYSxhKzFlNCkpLGErPTFlNH12YXIgaGQscUs9bigoKT0+e2hkPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMubGVmdD1lP1suLi5lXTpbXSx0aGlzLnJpZ2h0PVtdfWdldChlKXtpZihlPDB8fGU+PXRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNhbm5vdCBhY2Nlc3MgaW5kZXggYCIrZSsiYCBpbiBhIHNwbGljZSBidWZmZXIgb2Ygc2l6ZSBgIisodGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aCkrImAiKTtyZXR1cm4gZTx0aGlzLmxlZnQubGVuZ3RoP3RoaXMubGVmdFtlXTp0aGlzLnJpZ2h0W3RoaXMucmlnaHQubGVuZ3RoLWUrdGhpcy5sZWZ0Lmxlbmd0aC0xXX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGh9c2hpZnQoKXtyZXR1cm4gdGhpcy5zZXRDdXJzb3IoMCksdGhpcy5yaWdodC5wb3AoKX1zbGljZShlLGEpe2xldCByPWE/P051bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gcjx0aGlzLmxlZnQubGVuZ3RoP3RoaXMubGVmdC5zbGljZShlLHIpOmU+dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLXIrdGhpcy5sZWZ0Lmxlbmd0aCx0aGlzLnJpZ2h0Lmxlbmd0aC1lK3RoaXMubGVmdC5sZW5ndGgpLnJldmVyc2UoKTp0aGlzLmxlZnQuc2xpY2UoZSkuY29uY2F0KHRoaXMucmlnaHQuc2xpY2UodGhpcy5yaWdodC5sZW5ndGgtcit0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCkpfXNwbGljZShlLGEscil7bGV0IGk9YXx8MDt0aGlzLnNldEN1cnNvcihNYXRoLnRydW5jKGUpKTtsZXQgbz10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1pLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7cmV0dXJuIHImJnBkKHRoaXMubGVmdCxyKSxvLnJldmVyc2UoKX1wb3AoKXtyZXR1cm4gdGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucG9wKCl9cHVzaChlKXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHRoaXMubGVmdC5wdXNoKGUpfXB1c2hNYW55KGUpe3RoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkscGQodGhpcy5sZWZ0LGUpfXVuc2hpZnQoZSl7dGhpcy5zZXRDdXJzb3IoMCksdGhpcy5yaWdodC5wdXNoKGUpfXVuc2hpZnRNYW55KGUpe3RoaXMuc2V0Q3Vyc29yKDApLHBkKHRoaXMucmlnaHQsZS5yZXZlcnNlKCkpfXNldEN1cnNvcihlKXtpZighKGU9PT10aGlzLmxlZnQubGVuZ3RofHxlPnRoaXMubGVmdC5sZW5ndGgmJnRoaXMucmlnaHQubGVuZ3RoPT09MHx8ZTwwJiZ0aGlzLmxlZnQubGVuZ3RoPT09MCkpaWYoZTx0aGlzLmxlZnQubGVuZ3RoKXtsZXQgYT10aGlzLmxlZnQuc3BsaWNlKGUsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtwZCh0aGlzLnJpZ2h0LGEucmV2ZXJzZSgpKX1lbHNle2xldCBhPXRoaXMucmlnaHQuc3BsaWNlKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgtZSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3BkKHRoaXMubGVmdCxhLnJldmVyc2UoKSl9fX19KTtmdW5jdGlvbiBDSCh0KXtsZXQgZT17fSxhPS0xLHIsaSxvLHMsbCxmLGMsdT1uZXcgaGQodCk7Zm9yKDsrK2E8dS5sZW5ndGg7KXtmb3IoO2EgaW4gZTspYT1lW2FdO2lmKHI9dS5nZXQoYSksYSYmclsxXS50eXBlPT09ImNodW5rRmxvdyImJnUuZ2V0KGEtMSlbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCImJihmPXJbMV0uX3Rva2VuaXplci5ldmVudHMsbz0wLG88Zi5sZW5ndGgmJmZbb11bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiJiYobys9MiksbzxmLmxlbmd0aCYmZltvXVsxXS50eXBlPT09ImNvbnRlbnQiKSlmb3IoOysrbzxmLmxlbmd0aCYmZltvXVsxXS50eXBlIT09ImNvbnRlbnQiOylmW29dWzFdLnR5cGU9PT0iY2h1bmtUZXh0IiYmKGZbb11bMV0uX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtPSEwLG8rKyk7aWYoclswXT09PSJlbnRlciIpclsxXS5jb250ZW50VHlwZSYmKE9iamVjdC5hc3NpZ24oZSxkSnQodSxhKSksYT1lW2FdLGM9ITApO2Vsc2UgaWYoclsxXS5fY29udGFpbmVyKXtmb3Iobz1hLGk9dm9pZCAwO28tLTspaWYocz11LmdldChvKSxzWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fHNbMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKXNbMF09PT0iZW50ZXIiJiYoaSYmKHUuZ2V0KGkpWzFdLnR5cGU9ImxpbmVFbmRpbmdCbGFuayIpLHNbMV0udHlwZT0ibGluZUVuZGluZyIsaT1vKTtlbHNlIGlmKCEoc1sxXS50eXBlPT09ImxpbmVQcmVmaXgifHxzWzFdLnR5cGU9PT0ibGlzdEl0ZW1JbmRlbnQiKSlicmVhaztpJiYoclsxXS5lbmQ9ey4uLnUuZ2V0KGkpWzFdLnN0YXJ0fSxsPXUuc2xpY2UoaSxhKSxsLnVuc2hpZnQociksdS5zcGxpY2UoaSxhLWkrMSxsKSl9fXJldHVybiBTMSh0LDAsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHUuc2xpY2UoMCkpLCFjfWZ1bmN0aW9uIGRKdCh0LGUpe2xldCBhPXQuZ2V0KGUpWzFdLHI9dC5nZXQoZSlbMl0saT1lLTEsbz1bXSxzPWEuX3Rva2VuaXplcjtzfHwocz1yLnBhcnNlclthLmNvbnRlbnRUeXBlXShhLnN0YXJ0KSxhLl9jb250ZW50VHlwZVRleHRUcmFpbGluZyYmKHMuX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nPSEwKSk7bGV0IGw9cy5ldmVudHMsZj1bXSxjPXt9LHUsZCxoPS0xLGc9YSxiPTAseD0wLG09W3hdO2Zvcig7Zzspe2Zvcig7dC5nZXQoKytpKVsxXSE9PWc7KTtvLnB1c2goaSksZy5fdG9rZW5pemVyfHwodT1yLnNsaWNlU3RyZWFtKGcpLGcubmV4dHx8dS5wdXNoKG51bGwpLGQmJnMuZGVmaW5lU2tpcChnLnN0YXJ0KSxnLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSYmKHMuX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCkscy53cml0ZSh1KSxnLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSYmKHMuX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT12b2lkIDApKSxkPWcsZz1nLm5leHR9Zm9yKGc9YTsrK2g8bC5sZW5ndGg7KWxbaF1bMF09PT0iZXhpdCImJmxbaC0xXVswXT09PSJlbnRlciImJmxbaF1bMV0udHlwZT09PWxbaC0xXVsxXS50eXBlJiZsW2hdWzFdLnN0YXJ0LmxpbmUhPT1sW2hdWzFdLmVuZC5saW5lJiYoeD1oKzEsbS5wdXNoKHgpLGcuX3Rva2VuaXplcj12b2lkIDAsZy5wcmV2aW91cz12b2lkIDAsZz1nLm5leHQpO2ZvcihzLmV2ZW50cz1bXSxnPyhnLl90b2tlbml6ZXI9dm9pZCAwLGcucHJldmlvdXM9dm9pZCAwKTptLnBvcCgpLGg9bS5sZW5ndGg7aC0tOyl7bGV0IHY9bC5zbGljZShtW2hdLG1baCsxXSkseT1vLnBvcCgpO2YucHVzaChbeSx5K3YubGVuZ3RoLTFdKSx0LnNwbGljZSh5LDIsdil9Zm9yKGYucmV2ZXJzZSgpLGg9LTE7KytoPGYubGVuZ3RoOyljW2IrZltoXVswXV09YitmW2hdWzFdLGIrPWZbaF1bMV0tZltoXVswXS0xO3JldHVybiBjfXZhciBWSz1uKCgpPT57UHIoKTtxSygpO3FLKCl9KTtmdW5jdGlvbiB1SnQodCl7cmV0dXJuIENIKHQpLHR9ZnVuY3Rpb24gcEp0KHQsZSl7bGV0IGE7cmV0dXJuIHI7ZnVuY3Rpb24gcihsKXtyZXR1cm4gdC5lbnRlcigiY29udGVudCIpLGE9dC5lbnRlcigiY2h1bmtDb250ZW50Iix7Y29udGVudFR5cGU6ImNvbnRlbnQifSksaShsKX1mdW5jdGlvbiBpKGwpe3JldHVybiBsPT09bnVsbD9vKGwpOlBlKGwpP3QuY2hlY2soZkp0LHMsbykobCk6KHQuY29uc3VtZShsKSxpKX1mdW5jdGlvbiBvKGwpe3JldHVybiB0LmV4aXQoImNodW5rQ29udGVudCIpLHQuZXhpdCgiY29udGVudCIpLGUobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gdC5jb25zdW1lKGwpLHQuZXhpdCgiY2h1bmtDb250ZW50IiksYS5uZXh0PXQuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50IixwcmV2aW91czphfSksYT1hLm5leHQsaX19ZnVuY3Rpb24gaEp0KHQsZSxhKXtsZXQgcj10aGlzO3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIHQuZXhpdCgiY2h1bmtDb250ZW50IiksdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShzKSx0LmV4aXQoImxpbmVFbmRpbmciKSxKZSh0LG8sImxpbmVQcmVmaXgiKX1mdW5jdGlvbiBvKHMpe2lmKHM9PT1udWxsfHxQZShzKSlyZXR1cm4gYShzKTtsZXQgbD1yLmV2ZW50c1tyLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIXIucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKSYmbCYmbFsxXS50eXBlPT09ImxpbmVQcmVmaXgiJiZsWzJdLnNsaWNlU2VyaWFsaXplKGxbMV0sITApLmxlbmd0aD49ND9lKHMpOnQuaW50ZXJydXB0KHIucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxhLGUpKHMpfX12YXIgVUssZkp0LElRZT1uKCgpPT57QzEoKTtrdCgpO1ZLKCk7VUs9e3Jlc29sdmU6dUp0LHRva2VuaXplOnBKdH0sZkp0PXtwYXJ0aWFsOiEwLHRva2VuaXplOmhKdH19KTtmdW5jdGlvbiBMSCh0LGUsYSxyLGksbyxzLGwsZil7bGV0IGM9Znx8TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHU9MDtyZXR1cm4gZDtmdW5jdGlvbiBkKHYpe3JldHVybiB2PT09NjA/KHQuZW50ZXIociksdC5lbnRlcihpKSx0LmVudGVyKG8pLHQuY29uc3VtZSh2KSx0LmV4aXQobyksaCk6dj09PW51bGx8fHY9PT0zMnx8dj09PTQxfHxsbih2KT9hKHYpOih0LmVudGVyKHIpLHQuZW50ZXIocyksdC5lbnRlcihsKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSkseCh2KSl9ZnVuY3Rpb24gaCh2KXtyZXR1cm4gdj09PTYyPyh0LmVudGVyKG8pLHQuY29uc3VtZSh2KSx0LmV4aXQobyksdC5leGl0KGkpLHQuZXhpdChyKSxlKToodC5lbnRlcihsKSx0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksZyh2KSl9ZnVuY3Rpb24gZyh2KXtyZXR1cm4gdj09PTYyPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KGwpLGgodikpOnY9PT1udWxsfHx2PT09NjB8fFBlKHYpP2Eodik6KHQuY29uc3VtZSh2KSx2PT09OTI/YjpnKX1mdW5jdGlvbiBiKHYpe3JldHVybiB2PT09NjB8fHY9PT02Mnx8dj09PTkyPyh0LmNvbnN1bWUodiksZyk6Zyh2KX1mdW5jdGlvbiB4KHYpe3JldHVybiF1JiYodj09PW51bGx8fHY9PT00MXx8d3QodikpPyh0LmV4aXQoImNodW5rU3RyaW5nIiksdC5leGl0KGwpLHQuZXhpdChzKSx0LmV4aXQociksZSh2KSk6dTxjJiZ2PT09NDA/KHQuY29uc3VtZSh2KSx1KysseCk6dj09PTQxPyh0LmNvbnN1bWUodiksdS0tLHgpOnY9PT1udWxsfHx2PT09MzJ8fHY9PT00MHx8bG4odik/YSh2KToodC5jb25zdW1lKHYpLHY9PT05Mj9tOngpfWZ1bmN0aW9uIG0odil7cmV0dXJuIHY9PT00MHx8dj09PTQxfHx2PT09OTI/KHQuY29uc3VtZSh2KSx4KTp4KHYpfX12YXIgaks9bigoKT0+e2t0KCl9KTtmdW5jdGlvbiBUSCh0LGUsYSxyLGksbyl7bGV0IHM9dGhpcyxsPTAsZjtyZXR1cm4gYztmdW5jdGlvbiBjKGcpe3JldHVybiB0LmVudGVyKHIpLHQuZW50ZXIoaSksdC5jb25zdW1lKGcpLHQuZXhpdChpKSx0LmVudGVyKG8pLHV9ZnVuY3Rpb24gdShnKXtyZXR1cm4gbD45OTl8fGc9PT1udWxsfHxnPT09OTF8fGc9PT05MyYmIWZ8fGc9PT05NCYmIWwmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIHMucGFyc2VyLmNvbnN0cnVjdHM/YShnKTpnPT09OTM/KHQuZXhpdChvKSx0LmVudGVyKGkpLHQuY29uc3VtZShnKSx0LmV4aXQoaSksdC5leGl0KHIpLGUpOlBlKGcpPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGcpLHQuZXhpdCgibGluZUVuZGluZyIpLHUpOih0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSksZChnKSl9ZnVuY3Rpb24gZChnKXtyZXR1cm4gZz09PW51bGx8fGc9PT05MXx8Zz09PTkzfHxQZShnKXx8bCsrPjk5OT8odC5leGl0KCJjaHVua1N0cmluZyIpLHUoZykpOih0LmNvbnN1bWUoZyksZnx8KGY9IUdlKGcpKSxnPT09OTI/aDpkKX1mdW5jdGlvbiBoKGcpe3JldHVybiBnPT09OTF8fGc9PT05Mnx8Zz09PTkzPyh0LmNvbnN1bWUoZyksbCsrLGQpOmQoZyl9fXZhciBXSz1uKCgpPT57a3QoKX0pO2Z1bmN0aW9uIF9IKHQsZSxhLHIsaSxvKXtsZXQgcztyZXR1cm4gbDtmdW5jdGlvbiBsKGgpe3JldHVybiBoPT09MzR8fGg9PT0zOXx8aD09PTQwPyh0LmVudGVyKHIpLHQuZW50ZXIoaSksdC5jb25zdW1lKGgpLHQuZXhpdChpKSxzPWg9PT00MD80MTpoLGYpOmEoaCl9ZnVuY3Rpb24gZihoKXtyZXR1cm4gaD09PXM/KHQuZW50ZXIoaSksdC5jb25zdW1lKGgpLHQuZXhpdChpKSx0LmV4aXQociksZSk6KHQuZW50ZXIobyksYyhoKSl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gaD09PXM/KHQuZXhpdChvKSxmKHMpKTpoPT09bnVsbD9hKGgpOlBlKGgpPyh0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGgpLHQuZXhpdCgibGluZUVuZGluZyIpLEplKHQsYywibGluZVByZWZpeCIpKToodC5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHUoaCkpfWZ1bmN0aW9uIHUoaCl7cmV0dXJuIGg9PT1zfHxoPT09bnVsbHx8UGUoaCk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSxjKGgpKToodC5jb25zdW1lKGgpLGg9PT05Mj9kOnUpfWZ1bmN0aW9uIGQoaCl7cmV0dXJuIGg9PT1zfHxoPT09OTI/KHQuY29uc3VtZShoKSx1KTp1KGgpfX12YXIgR0s9bigoKT0+e0MxKCk7a3QoKX0pO2Z1bmN0aW9uIG1uKHQsZSl7bGV0IGE7cmV0dXJuIHI7ZnVuY3Rpb24gcihpKXtyZXR1cm4gUGUoaSk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoaSksdC5leGl0KCJsaW5lRW5kaW5nIiksYT0hMCxyKTpHZShpKT9KZSh0LHIsYT8ibGluZVByZWZpeCI6ImxpbmVTdWZmaXgiKShpKTplKGkpfX12YXIgWUs9bigoKT0+e0MxKCk7a3QoKX0pO2Z1bmN0aW9uIGdKdCh0LGUsYSl7bGV0IHI9dGhpcyxpO3JldHVybiBvO2Z1bmN0aW9uIG8oZyl7cmV0dXJuIHQuZW50ZXIoImRlZmluaXRpb24iKSxzKGcpfWZ1bmN0aW9uIHMoZyl7cmV0dXJuIFRILmNhbGwocix0LGwsYSwiZGVmaW5pdGlvbkxhYmVsIiwiZGVmaW5pdGlvbkxhYmVsTWFya2VyIiwiZGVmaW5pdGlvbkxhYmVsU3RyaW5nIikoZyl9ZnVuY3Rpb24gbChnKXtyZXR1cm4gaT13MShyLnNsaWNlU2VyaWFsaXplKHIuZXZlbnRzW3IuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpLGc9PT01OD8odC5lbnRlcigiZGVmaW5pdGlvbk1hcmtlciIpLHQuY29uc3VtZShnKSx0LmV4aXQoImRlZmluaXRpb25NYXJrZXIiKSxmKTphKGcpfWZ1bmN0aW9uIGYoZyl7cmV0dXJuIHd0KGcpP21uKHQsYykoZyk6YyhnKX1mdW5jdGlvbiBjKGcpe3JldHVybiBMSCh0LHUsYSwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXIiLCJkZWZpbml0aW9uRGVzdGluYXRpb25SYXciLCJkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmciKShnKX1mdW5jdGlvbiB1KGcpe3JldHVybiB0LmF0dGVtcHQobUp0LGQsZCkoZyl9ZnVuY3Rpb24gZChnKXtyZXR1cm4gR2UoZyk/SmUodCxoLCJ3aGl0ZXNwYWNlIikoZyk6aChnKX1mdW5jdGlvbiBoKGcpe3JldHVybiBnPT09bnVsbHx8UGUoZyk/KHQuZXhpdCgiZGVmaW5pdGlvbiIpLHIucGFyc2VyLmRlZmluZWQucHVzaChpKSxlKGcpKTphKGcpfX1mdW5jdGlvbiB4SnQodCxlLGEpe3JldHVybiByO2Z1bmN0aW9uIHIobCl7cmV0dXJuIHd0KGwpP21uKHQsaSkobCk6YShsKX1mdW5jdGlvbiBpKGwpe3JldHVybiBfSCh0LG8sYSwiZGVmaW5pdGlvblRpdGxlIiwiZGVmaW5pdGlvblRpdGxlTWFya2VyIiwiZGVmaW5pdGlvblRpdGxlU3RyaW5nIikobCl9ZnVuY3Rpb24gbyhsKXtyZXR1cm4gR2UobCk/SmUodCxzLCJ3aGl0ZXNwYWNlIikobCk6cyhsKX1mdW5jdGlvbiBzKGwpe3JldHVybiBsPT09bnVsbHx8UGUobCk/ZShsKTphKGwpfX12YXIgWkssbUp0LEZRZT1uKCgpPT57aksoKTtXSygpO0MxKCk7R0soKTtZSygpO2t0KCk7Um8oKTtaSz17bmFtZToiZGVmaW5pdGlvbiIsdG9rZW5pemU6Z0p0fSxtSnQ9e3BhcnRpYWw6ITAsdG9rZW5pemU6eEp0fX0pO2Z1bmN0aW9uIGJKdCh0LGUsYSl7cmV0dXJuIHI7ZnVuY3Rpb24gcihvKXtyZXR1cm4gdC5lbnRlcigiaGFyZEJyZWFrRXNjYXBlIiksdC5jb25zdW1lKG8pLGl9ZnVuY3Rpb24gaShvKXtyZXR1cm4gUGUobyk/KHQuZXhpdCgiaGFyZEJyZWFrRXNjYXBlIiksZShvKSk6YShvKX19dmFyIFhLLE9RZT1uKCgpPT57a3QoKTtYSz17bmFtZToiaGFyZEJyZWFrRXNjYXBlIix0b2tlbml6ZTpiSnR9fSk7ZnVuY3Rpb24gdkp0KHQsZSl7bGV0IGE9dC5sZW5ndGgtMixyPTMsaSxvO3JldHVybiB0W3JdWzFdLnR5cGU9PT0id2hpdGVzcGFjZSImJihyKz0yKSxhLTI+ciYmdFthXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoYS09MiksdFthXVsxXS50eXBlPT09ImF0eEhlYWRpbmdTZXF1ZW5jZSImJihyPT09YS0xfHxhLTQ+ciYmdFthLTJdWzFdLnR5cGU9PT0id2hpdGVzcGFjZSIpJiYoYS09cisxPT09YT8yOjQpLGE+ciYmKGk9e3R5cGU6ImF0eEhlYWRpbmdUZXh0IixzdGFydDp0W3JdWzFdLnN0YXJ0LGVuZDp0W2FdWzFdLmVuZH0sbz17dHlwZToiY2h1bmtUZXh0IixzdGFydDp0W3JdWzFdLnN0YXJ0LGVuZDp0W2FdWzFdLmVuZCxjb250ZW50VHlwZToidGV4dCJ9LFMxKHQscixhLXIrMSxbWyJlbnRlciIsaSxlXSxbImVudGVyIixvLGVdLFsiZXhpdCIsbyxlXSxbImV4aXQiLGksZV1dKSksdH1mdW5jdGlvbiB5SnQodCxlLGEpe2xldCByPTA7cmV0dXJuIGk7ZnVuY3Rpb24gaSh1KXtyZXR1cm4gdC5lbnRlcigiYXR4SGVhZGluZyIpLG8odSl9ZnVuY3Rpb24gbyh1KXtyZXR1cm4gdC5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIikscyh1KX1mdW5jdGlvbiBzKHUpe3JldHVybiB1PT09MzUmJnIrKzw2Pyh0LmNvbnN1bWUodSkscyk6dT09PW51bGx8fHd0KHUpPyh0LmV4aXQoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLGwodSkpOmEodSl9ZnVuY3Rpb24gbCh1KXtyZXR1cm4gdT09PTM1Pyh0LmVudGVyKCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxmKHUpKTp1PT09bnVsbHx8UGUodSk/KHQuZXhpdCgiYXR4SGVhZGluZyIpLGUodSkpOkdlKHUpP0plKHQsbCwid2hpdGVzcGFjZSIpKHUpOih0LmVudGVyKCJhdHhIZWFkaW5nVGV4dCIpLGModSkpfWZ1bmN0aW9uIGYodSl7cmV0dXJuIHU9PT0zNT8odC5jb25zdW1lKHUpLGYpOih0LmV4aXQoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLGwodSkpfWZ1bmN0aW9uIGModSl7cmV0dXJuIHU9PT1udWxsfHx1PT09MzV8fHd0KHUpPyh0LmV4aXQoImF0eEhlYWRpbmdUZXh0IiksbCh1KSk6KHQuY29uc3VtZSh1KSxjKX19dmFyIFFLLEJRZT1uKCgpPT57QzEoKTtrdCgpO1ByKCk7UUs9e25hbWU6ImhlYWRpbmdBdHgiLHJlc29sdmU6dkp0LHRva2VuaXplOnlKdH19KTt2YXIgUlFlLEtLLEhRZT1uKCgpPT57UlFlPVsiYWRkcmVzcyIsImFydGljbGUiLCJhc2lkZSIsImJhc2UiLCJiYXNlZm9udCIsImJsb2NrcXVvdGUiLCJib2R5IiwiY2FwdGlvbiIsImNlbnRlciIsImNvbCIsImNvbGdyb3VwIiwiZGQiLCJkZXRhaWxzIiwiZGlhbG9nIiwiZGlyIiwiZGl2IiwiZGwiLCJkdCIsImZpZWxkc2V0IiwiZmlnY2FwdGlvbiIsImZpZ3VyZSIsImZvb3RlciIsImZvcm0iLCJmcmFtZSIsImZyYW1lc2V0IiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZCIsImhlYWRlciIsImhyIiwiaHRtbCIsImlmcmFtZSIsImxlZ2VuZCIsImxpIiwibGluayIsIm1haW4iLCJtZW51IiwibWVudWl0ZW0iLCJuYXYiLCJub2ZyYW1lcyIsIm9sIiwib3B0Z3JvdXAiLCJvcHRpb24iLCJwIiwicGFyYW0iLCJzZWFyY2giLCJzZWN0aW9uIiwic3VtbWFyeSIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRmb290IiwidGgiLCJ0aGVhZCIsInRpdGxlIiwidHIiLCJ0cmFjayIsInVsIl0sS0s9WyJwcmUiLCJzY3JpcHQiLCJzdHlsZSIsInRleHRhcmVhIl19KTtmdW5jdGlvbiB6SnQodCl7bGV0IGU9dC5sZW5ndGg7Zm9yKDtlLS0mJiEodFtlXVswXT09PSJlbnRlciImJnRbZV1bMV0udHlwZT09PSJodG1sRmxvdyIpOyk7cmV0dXJuIGU+MSYmdFtlLTJdWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJih0W2VdWzFdLnN0YXJ0PXRbZS0yXVsxXS5zdGFydCx0W2UrMV1bMV0uc3RhcnQ9dFtlLTJdWzFdLnN0YXJ0LHQuc3BsaWNlKGUtMiwyKSksdH1mdW5jdGlvbiBrSnQodCxlLGEpe2xldCByPXRoaXMsaSxvLHMsbCxmO3JldHVybiBjO2Z1bmN0aW9uIGMoVyl7cmV0dXJuIHUoVyl9ZnVuY3Rpb24gdShXKXtyZXR1cm4gdC5lbnRlcigiaHRtbEZsb3ciKSx0LmVudGVyKCJodG1sRmxvd0RhdGEiKSx0LmNvbnN1bWUoVyksZH1mdW5jdGlvbiBkKFcpe3JldHVybiBXPT09MzM/KHQuY29uc3VtZShXKSxoKTpXPT09NDc/KHQuY29uc3VtZShXKSxvPSEwLHgpOlc9PT02Mz8odC5jb25zdW1lKFcpLGk9MyxyLmludGVycnVwdD9lOlYpOkgxKFcpPyh0LmNvbnN1bWUoVykscz1TdHJpbmcuZnJvbUNoYXJDb2RlKFcpLG0pOmEoVyl9ZnVuY3Rpb24gaChXKXtyZXR1cm4gVz09PTQ1Pyh0LmNvbnN1bWUoVyksaT0yLGcpOlc9PT05MT8odC5jb25zdW1lKFcpLGk9NSxsPTAsYik6SDEoVyk/KHQuY29uc3VtZShXKSxpPTQsci5pbnRlcnJ1cHQ/ZTpWKTphKFcpfWZ1bmN0aW9uIGcoVyl7cmV0dXJuIFc9PT00NT8odC5jb25zdW1lKFcpLHIuaW50ZXJydXB0P2U6Vik6YShXKX1mdW5jdGlvbiBiKFcpe2xldCBOZT0iQ0RBVEFbIjtyZXR1cm4gVz09PU5lLmNoYXJDb2RlQXQobCsrKT8odC5jb25zdW1lKFcpLGw9PT1OZS5sZW5ndGg/ci5pbnRlcnJ1cHQ/ZTprOmIpOmEoVyl9ZnVuY3Rpb24geChXKXtyZXR1cm4gSDEoVyk/KHQuY29uc3VtZShXKSxzPVN0cmluZy5mcm9tQ2hhckNvZGUoVyksbSk6YShXKX1mdW5jdGlvbiBtKFcpe2lmKFc9PT1udWxsfHxXPT09NDd8fFc9PT02Mnx8d3QoVykpe2xldCBOZT1XPT09NDcsUmU9cy50b0xvd2VyQ2FzZSgpO3JldHVybiFOZSYmIW8mJktLLmluY2x1ZGVzKFJlKT8oaT0xLHIuaW50ZXJydXB0P2UoVyk6ayhXKSk6UlFlLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSk/KGk9NixOZT8odC5jb25zdW1lKFcpLHYpOnIuaW50ZXJydXB0P2UoVyk6ayhXKSk6KGk9NyxyLmludGVycnVwdCYmIXIucGFyc2VyLmxhenlbci5ub3coKS5saW5lXT9hKFcpOm8/eShXKTp3KFcpKX1yZXR1cm4gVz09PTQ1fHx5MShXKT8odC5jb25zdW1lKFcpLHMrPVN0cmluZy5mcm9tQ2hhckNvZGUoVyksbSk6YShXKX1mdW5jdGlvbiB2KFcpe3JldHVybiBXPT09NjI/KHQuY29uc3VtZShXKSxyLmludGVycnVwdD9lOmspOmEoVyl9ZnVuY3Rpb24geShXKXtyZXR1cm4gR2UoVyk/KHQuY29uc3VtZShXKSx5KTpIKFcpfWZ1bmN0aW9uIHcoVyl7cmV0dXJuIFc9PT00Nz8odC5jb25zdW1lKFcpLEgpOlc9PT01OHx8Vz09PTk1fHxIMShXKT8odC5jb25zdW1lKFcpLEUpOkdlKFcpPyh0LmNvbnN1bWUoVyksdyk6SChXKX1mdW5jdGlvbiBFKFcpe3JldHVybiBXPT09NDV8fFc9PT00Nnx8Vz09PTU4fHxXPT09OTV8fHkxKFcpPyh0LmNvbnN1bWUoVyksRSk6QyhXKX1mdW5jdGlvbiBDKFcpe3JldHVybiBXPT09NjE/KHQuY29uc3VtZShXKSx6KTpHZShXKT8odC5jb25zdW1lKFcpLEMpOncoVyl9ZnVuY3Rpb24geihXKXtyZXR1cm4gVz09PW51bGx8fFc9PT02MHx8Vz09PTYxfHxXPT09NjJ8fFc9PT05Nj9hKFcpOlc9PT0zNHx8Vz09PTM5Pyh0LmNvbnN1bWUoVyksZj1XLFApOkdlKFcpPyh0LmNvbnN1bWUoVykseik6XyhXKX1mdW5jdGlvbiBQKFcpe3JldHVybiBXPT09Zj8odC5jb25zdW1lKFcpLGY9bnVsbCwkKTpXPT09bnVsbHx8UGUoVyk/YShXKToodC5jb25zdW1lKFcpLFApfWZ1bmN0aW9uIF8oVyl7cmV0dXJuIFc9PT1udWxsfHxXPT09MzR8fFc9PT0zOXx8Vz09PTQ3fHxXPT09NjB8fFc9PT02MXx8Vz09PTYyfHxXPT09OTZ8fHd0KFcpP0MoVyk6KHQuY29uc3VtZShXKSxfKX1mdW5jdGlvbiAkKFcpe3JldHVybiBXPT09NDd8fFc9PT02Mnx8R2UoVyk/dyhXKTphKFcpfWZ1bmN0aW9uIEgoVyl7cmV0dXJuIFc9PT02Mj8odC5jb25zdW1lKFcpLEwpOmEoVyl9ZnVuY3Rpb24gTChXKXtyZXR1cm4gVz09PW51bGx8fFBlKFcpP2soVyk6R2UoVyk/KHQuY29uc3VtZShXKSxMKTphKFcpfWZ1bmN0aW9uIGsoVyl7cmV0dXJuIFc9PT00NSYmaT09PTI/KHQuY29uc3VtZShXKSxSKTpXPT09NjAmJmk9PT0xPyh0LmNvbnN1bWUoVyksQSk6Vz09PTYyJiZpPT09ND8odC5jb25zdW1lKFcpLFNlKTpXPT09NjMmJmk9PT0zPyh0LmNvbnN1bWUoVyksVik6Vz09PTkzJiZpPT09NT8odC5jb25zdW1lKFcpLGFlKTpQZShXKSYmKGk9PT02fHxpPT09Nyk/KHQuZXhpdCgiaHRtbEZsb3dEYXRhIiksdC5jaGVjayh3SnQsemUsTikoVykpOlc9PT1udWxsfHxQZShXKT8odC5leGl0KCJodG1sRmxvd0RhdGEiKSxOKFcpKToodC5jb25zdW1lKFcpLGspfWZ1bmN0aW9uIE4oVyl7cmV0dXJuIHQuY2hlY2soTUp0LFMsemUpKFcpfWZ1bmN0aW9uIFMoVyl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoVyksdC5leGl0KCJsaW5lRW5kaW5nIiksVH1mdW5jdGlvbiBUKFcpe3JldHVybiBXPT09bnVsbHx8UGUoVyk/TihXKToodC5lbnRlcigiaHRtbEZsb3dEYXRhIiksayhXKSl9ZnVuY3Rpb24gUihXKXtyZXR1cm4gVz09PTQ1Pyh0LmNvbnN1bWUoVyksVik6ayhXKX1mdW5jdGlvbiBBKFcpe3JldHVybiBXPT09NDc/KHQuY29uc3VtZShXKSxzPSIiLEYpOmsoVyl9ZnVuY3Rpb24gRihXKXtpZihXPT09NjIpe2xldCBOZT1zLnRvTG93ZXJDYXNlKCk7cmV0dXJuIEtLLmluY2x1ZGVzKE5lKT8odC5jb25zdW1lKFcpLFNlKTprKFcpfXJldHVybiBIMShXKSYmcy5sZW5ndGg8OD8odC5jb25zdW1lKFcpLHMrPVN0cmluZy5mcm9tQ2hhckNvZGUoVyksRik6ayhXKX1mdW5jdGlvbiBhZShXKXtyZXR1cm4gVz09PTkzPyh0LmNvbnN1bWUoVyksVik6ayhXKX1mdW5jdGlvbiBWKFcpe3JldHVybiBXPT09NjI/KHQuY29uc3VtZShXKSxTZSk6Vz09PTQ1JiZpPT09Mj8odC5jb25zdW1lKFcpLFYpOmsoVyl9ZnVuY3Rpb24gU2UoVyl7cmV0dXJuIFc9PT1udWxsfHxQZShXKT8odC5leGl0KCJodG1sRmxvd0RhdGEiKSx6ZShXKSk6KHQuY29uc3VtZShXKSxTZSl9ZnVuY3Rpb24gemUoVyl7cmV0dXJuIHQuZXhpdCgiaHRtbEZsb3ciKSxlKFcpfX1mdW5jdGlvbiBTSnQodCxlLGEpe2xldCByPXRoaXM7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gUGUocyk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUocyksdC5leGl0KCJsaW5lRW5kaW5nIiksbyk6YShzKX1mdW5jdGlvbiBvKHMpe3JldHVybiByLnBhcnNlci5sYXp5W3Iubm93KCkubGluZV0/YShzKTplKHMpfX1mdW5jdGlvbiBDSnQodCxlLGEpe3JldHVybiByO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoaSksdC5leGl0KCJsaW5lRW5kaW5nIiksdC5hdHRlbXB0KEJyLGUsYSl9fXZhciBKSyx3SnQsTUp0LHFRZT1uKCgpPT57a3QoKTtIUWUoKTt3SCgpO0pLPXtjb25jcmV0ZTohMCxuYW1lOiJodG1sRmxvdyIscmVzb2x2ZVRvOnpKdCx0b2tlbml6ZTprSnR9LHdKdD17cGFydGlhbDohMCx0b2tlbml6ZTpDSnR9LE1KdD17cGFydGlhbDohMCx0b2tlbml6ZTpTSnR9fSk7ZnVuY3Rpb24gTEp0KHQsZSxhKXtsZXQgcj10aGlzLGksbyxzO3JldHVybiBsO2Z1bmN0aW9uIGwoVil7cmV0dXJuIHQuZW50ZXIoImh0bWxUZXh0IiksdC5lbnRlcigiaHRtbFRleHREYXRhIiksdC5jb25zdW1lKFYpLGZ9ZnVuY3Rpb24gZihWKXtyZXR1cm4gVj09PTMzPyh0LmNvbnN1bWUoViksYyk6Vj09PTQ3Pyh0LmNvbnN1bWUoViksQyk6Vj09PTYzPyh0LmNvbnN1bWUoViksdyk6SDEoVik/KHQuY29uc3VtZShWKSxfKTphKFYpfWZ1bmN0aW9uIGMoVil7cmV0dXJuIFY9PT00NT8odC5jb25zdW1lKFYpLHUpOlY9PT05MT8odC5jb25zdW1lKFYpLG89MCxiKTpIMShWKT8odC5jb25zdW1lKFYpLHkpOmEoVil9ZnVuY3Rpb24gdShWKXtyZXR1cm4gVj09PTQ1Pyh0LmNvbnN1bWUoViksZyk6YShWKX1mdW5jdGlvbiBkKFYpe3JldHVybiBWPT09bnVsbD9hKFYpOlY9PT00NT8odC5jb25zdW1lKFYpLGgpOlBlKFYpPyhzPWQsQShWKSk6KHQuY29uc3VtZShWKSxkKX1mdW5jdGlvbiBoKFYpe3JldHVybiBWPT09NDU/KHQuY29uc3VtZShWKSxnKTpkKFYpfWZ1bmN0aW9uIGcoVil7cmV0dXJuIFY9PT02Mj9SKFYpOlY9PT00NT9oKFYpOmQoVil9ZnVuY3Rpb24gYihWKXtsZXQgU2U9IkNEQVRBWyI7cmV0dXJuIFY9PT1TZS5jaGFyQ29kZUF0KG8rKyk/KHQuY29uc3VtZShWKSxvPT09U2UubGVuZ3RoP3g6Yik6YShWKX1mdW5jdGlvbiB4KFYpe3JldHVybiBWPT09bnVsbD9hKFYpOlY9PT05Mz8odC5jb25zdW1lKFYpLG0pOlBlKFYpPyhzPXgsQShWKSk6KHQuY29uc3VtZShWKSx4KX1mdW5jdGlvbiBtKFYpe3JldHVybiBWPT09OTM/KHQuY29uc3VtZShWKSx2KTp4KFYpfWZ1bmN0aW9uIHYoVil7cmV0dXJuIFY9PT02Mj9SKFYpOlY9PT05Mz8odC5jb25zdW1lKFYpLHYpOngoVil9ZnVuY3Rpb24geShWKXtyZXR1cm4gVj09PW51bGx8fFY9PT02Mj9SKFYpOlBlKFYpPyhzPXksQShWKSk6KHQuY29uc3VtZShWKSx5KX1mdW5jdGlvbiB3KFYpe3JldHVybiBWPT09bnVsbD9hKFYpOlY9PT02Mz8odC5jb25zdW1lKFYpLEUpOlBlKFYpPyhzPXcsQShWKSk6KHQuY29uc3VtZShWKSx3KX1mdW5jdGlvbiBFKFYpe3JldHVybiBWPT09NjI/UihWKTp3KFYpfWZ1bmN0aW9uIEMoVil7cmV0dXJuIEgxKFYpPyh0LmNvbnN1bWUoVikseik6YShWKX1mdW5jdGlvbiB6KFYpe3JldHVybiBWPT09NDV8fHkxKFYpPyh0LmNvbnN1bWUoVikseik6UChWKX1mdW5jdGlvbiBQKFYpe3JldHVybiBQZShWKT8ocz1QLEEoVikpOkdlKFYpPyh0LmNvbnN1bWUoViksUCk6UihWKX1mdW5jdGlvbiBfKFYpe3JldHVybiBWPT09NDV8fHkxKFYpPyh0LmNvbnN1bWUoViksXyk6Vj09PTQ3fHxWPT09NjJ8fHd0KFYpPyQoVik6YShWKX1mdW5jdGlvbiAkKFYpe3JldHVybiBWPT09NDc/KHQuY29uc3VtZShWKSxSKTpWPT09NTh8fFY9PT05NXx8SDEoVik/KHQuY29uc3VtZShWKSxIKTpQZShWKT8ocz0kLEEoVikpOkdlKFYpPyh0LmNvbnN1bWUoViksJCk6UihWKX1mdW5jdGlvbiBIKFYpe3JldHVybiBWPT09NDV8fFY9PT00Nnx8Vj09PTU4fHxWPT09OTV8fHkxKFYpPyh0LmNvbnN1bWUoViksSCk6TChWKX1mdW5jdGlvbiBMKFYpe3JldHVybiBWPT09NjE/KHQuY29uc3VtZShWKSxrKTpQZShWKT8ocz1MLEEoVikpOkdlKFYpPyh0LmNvbnN1bWUoViksTCk6JChWKX1mdW5jdGlvbiBrKFYpe3JldHVybiBWPT09bnVsbHx8Vj09PTYwfHxWPT09NjF8fFY9PT02Mnx8Vj09PTk2P2EoVik6Vj09PTM0fHxWPT09Mzk/KHQuY29uc3VtZShWKSxpPVYsTik6UGUoVik/KHM9ayxBKFYpKTpHZShWKT8odC5jb25zdW1lKFYpLGspOih0LmNvbnN1bWUoViksUyl9ZnVuY3Rpb24gTihWKXtyZXR1cm4gVj09PWk/KHQuY29uc3VtZShWKSxpPXZvaWQgMCxUKTpWPT09bnVsbD9hKFYpOlBlKFYpPyhzPU4sQShWKSk6KHQuY29uc3VtZShWKSxOKX1mdW5jdGlvbiBTKFYpe3JldHVybiBWPT09bnVsbHx8Vj09PTM0fHxWPT09Mzl8fFY9PT02MHx8Vj09PTYxfHxWPT09OTY/YShWKTpWPT09NDd8fFY9PT02Mnx8d3QoVik/JChWKToodC5jb25zdW1lKFYpLFMpfWZ1bmN0aW9uIFQoVil7cmV0dXJuIFY9PT00N3x8Vj09PTYyfHx3dChWKT8kKFYpOmEoVil9ZnVuY3Rpb24gUihWKXtyZXR1cm4gVj09PTYyPyh0LmNvbnN1bWUoViksdC5leGl0KCJodG1sVGV4dERhdGEiKSx0LmV4aXQoImh0bWxUZXh0IiksZSk6YShWKX1mdW5jdGlvbiBBKFYpe3JldHVybiB0LmV4aXQoImh0bWxUZXh0RGF0YSIpLHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoViksdC5leGl0KCJsaW5lRW5kaW5nIiksRn1mdW5jdGlvbiBGKFYpe3JldHVybiBHZShWKT9KZSh0LGFlLCJsaW5lUHJlZml4IixyLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKFYpOmFlKFYpfWZ1bmN0aW9uIGFlKFYpe3JldHVybiB0LmVudGVyKCJodG1sVGV4dERhdGEiKSxzKFYpfX12YXIgZUosVlFlPW4oKCk9PntDMSgpO2t0KCk7ZUo9e25hbWU6Imh0bWxUZXh0Iix0b2tlbml6ZTpMSnR9fSk7ZnVuY3Rpb24gJEp0KHQpe2xldCBlPS0xLGE9W107Zm9yKDsrK2U8dC5sZW5ndGg7KXtsZXQgcj10W2VdWzFdO2lmKGEucHVzaCh0W2VdKSxyLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fHIudHlwZT09PSJsYWJlbExpbmsifHxyLnR5cGU9PT0ibGFiZWxFbmQiKXtsZXQgaT1yLnR5cGU9PT0ibGFiZWxJbWFnZSI/NDoyO3IudHlwZT0iZGF0YSIsZSs9aX19cmV0dXJuIHQubGVuZ3RoIT09YS5sZW5ndGgmJlMxKHQsMCx0Lmxlbmd0aCxhKSx0fWZ1bmN0aW9uIERKdCh0LGUpe2xldCBhPXQubGVuZ3RoLHI9MCxpLG8scyxsO2Zvcig7YS0tOylpZihpPXRbYV1bMV0sbyl7aWYoaS50eXBlPT09ImxpbmsifHxpLnR5cGU9PT0ibGFiZWxMaW5rIiYmaS5faW5hY3RpdmUpYnJlYWs7dFthXVswXT09PSJlbnRlciImJmkudHlwZT09PSJsYWJlbExpbmsiJiYoaS5faW5hY3RpdmU9ITApfWVsc2UgaWYocyl7aWYodFthXVswXT09PSJlbnRlciImJihpLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fGkudHlwZT09PSJsYWJlbExpbmsiKSYmIWkuX2JhbGFuY2VkJiYobz1hLGkudHlwZSE9PSJsYWJlbExpbmsiKSl7cj0yO2JyZWFrfX1lbHNlIGkudHlwZT09PSJsYWJlbEVuZCImJihzPWEpO2xldCBmPXt0eXBlOnRbb11bMV0udHlwZT09PSJsYWJlbExpbmsiPyJsaW5rIjoiaW1hZ2UiLHN0YXJ0OnsuLi50W29dWzFdLnN0YXJ0fSxlbmQ6ey4uLnRbdC5sZW5ndGgtMV1bMV0uZW5kfX0sYz17dHlwZToibGFiZWwiLHN0YXJ0OnsuLi50W29dWzFdLnN0YXJ0fSxlbmQ6ey4uLnRbc11bMV0uZW5kfX0sdT17dHlwZToibGFiZWxUZXh0IixzdGFydDp7Li4udFtvK3IrMl1bMV0uZW5kfSxlbmQ6ey4uLnRbcy0yXVsxXS5zdGFydH19O3JldHVybiBsPVtbImVudGVyIixmLGVdLFsiZW50ZXIiLGMsZV1dLGw9RDEobCx0LnNsaWNlKG8rMSxvK3IrMykpLGw9RDEobCxbWyJlbnRlciIsdSxlXV0pLGw9RDEobCxxbyhlLnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCx0LnNsaWNlKG8rcis0LHMtMyksZSkpLGw9RDEobCxbWyJleGl0Iix1LGVdLHRbcy0yXSx0W3MtMV0sWyJleGl0IixjLGVdXSksbD1EMShsLHQuc2xpY2UocysxKSksbD1EMShsLFtbImV4aXQiLGYsZV1dKSxTMSh0LG8sdC5sZW5ndGgsbCksdH1mdW5jdGlvbiBFSnQodCxlLGEpe2xldCByPXRoaXMsaT1yLmV2ZW50cy5sZW5ndGgsbyxzO2Zvcig7aS0tOylpZigoci5ldmVudHNbaV1bMV0udHlwZT09PSJsYWJlbEltYWdlInx8ci5ldmVudHNbaV1bMV0udHlwZT09PSJsYWJlbExpbmsiKSYmIXIuZXZlbnRzW2ldWzFdLl9iYWxhbmNlZCl7bz1yLmV2ZW50c1tpXVsxXTticmVha31yZXR1cm4gbDtmdW5jdGlvbiBsKGgpe3JldHVybiBvP28uX2luYWN0aXZlP2QoaCk6KHM9ci5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyh3MShyLnNsaWNlU2VyaWFsaXplKHtzdGFydDpvLmVuZCxlbmQ6ci5ub3coKX0pKSksdC5lbnRlcigibGFiZWxFbmQiKSx0LmVudGVyKCJsYWJlbE1hcmtlciIpLHQuY29uc3VtZShoKSx0LmV4aXQoImxhYmVsTWFya2VyIiksdC5leGl0KCJsYWJlbEVuZCIpLGYpOmEoaCl9ZnVuY3Rpb24gZihoKXtyZXR1cm4gaD09PTQwP3QuYXR0ZW1wdChUSnQsdSxzP3U6ZCkoaCk6aD09PTkxP3QuYXR0ZW1wdChfSnQsdSxzP2M6ZCkoaCk6cz91KGgpOmQoaCl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gdC5hdHRlbXB0KEFKdCx1LGQpKGgpfWZ1bmN0aW9uIHUoaCl7cmV0dXJuIGUoaCl9ZnVuY3Rpb24gZChoKXtyZXR1cm4gby5fYmFsYW5jZWQ9ITAsYShoKX19ZnVuY3Rpb24gTkp0KHQsZSxhKXtyZXR1cm4gcjtmdW5jdGlvbiByKGQpe3JldHVybiB0LmVudGVyKCJyZXNvdXJjZSIpLHQuZW50ZXIoInJlc291cmNlTWFya2VyIiksdC5jb25zdW1lKGQpLHQuZXhpdCgicmVzb3VyY2VNYXJrZXIiKSxpfWZ1bmN0aW9uIGkoZCl7cmV0dXJuIHd0KGQpP21uKHQsbykoZCk6byhkKX1mdW5jdGlvbiBvKGQpe3JldHVybiBkPT09NDE/dShkKTpMSCh0LHMsbCwicmVzb3VyY2VEZXN0aW5hdGlvbiIsInJlc291cmNlRGVzdGluYXRpb25MaXRlcmFsIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXIiLCJyZXNvdXJjZURlc3RpbmF0aW9uUmF3IiwicmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZyIsMzIpKGQpfWZ1bmN0aW9uIHMoZCl7cmV0dXJuIHd0KGQpP21uKHQsZikoZCk6dShkKX1mdW5jdGlvbiBsKGQpe3JldHVybiBhKGQpfWZ1bmN0aW9uIGYoZCl7cmV0dXJuIGQ9PT0zNHx8ZD09PTM5fHxkPT09NDA/X0godCxjLGEsInJlc291cmNlVGl0bGUiLCJyZXNvdXJjZVRpdGxlTWFya2VyIiwicmVzb3VyY2VUaXRsZVN0cmluZyIpKGQpOnUoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gd3QoZCk/bW4odCx1KShkKTp1KGQpfWZ1bmN0aW9uIHUoZCl7cmV0dXJuIGQ9PT00MT8odC5lbnRlcigicmVzb3VyY2VNYXJrZXIiKSx0LmNvbnN1bWUoZCksdC5leGl0KCJyZXNvdXJjZU1hcmtlciIpLHQuZXhpdCgicmVzb3VyY2UiKSxlKTphKGQpfX1mdW5jdGlvbiBQSnQodCxlLGEpe2xldCByPXRoaXM7cmV0dXJuIGk7ZnVuY3Rpb24gaShsKXtyZXR1cm4gVEguY2FsbChyLHQsbyxzLCJyZWZlcmVuY2UiLCJyZWZlcmVuY2VNYXJrZXIiLCJyZWZlcmVuY2VTdHJpbmciKShsKX1mdW5jdGlvbiBvKGwpe3JldHVybiByLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKHcxKHIuc2xpY2VTZXJpYWxpemUoci5ldmVudHNbci5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSkpP2UobCk6YShsKX1mdW5jdGlvbiBzKGwpe3JldHVybiBhKGwpfX1mdW5jdGlvbiBJSnQodCxlLGEpe3JldHVybiByO2Z1bmN0aW9uIHIobyl7cmV0dXJuIHQuZW50ZXIoInJlZmVyZW5jZSIpLHQuZW50ZXIoInJlZmVyZW5jZU1hcmtlciIpLHQuY29uc3VtZShvKSx0LmV4aXQoInJlZmVyZW5jZU1hcmtlciIpLGl9ZnVuY3Rpb24gaShvKXtyZXR1cm4gbz09PTkzPyh0LmVudGVyKCJyZWZlcmVuY2VNYXJrZXIiKSx0LmNvbnN1bWUobyksdC5leGl0KCJyZWZlcmVuY2VNYXJrZXIiKSx0LmV4aXQoInJlZmVyZW5jZSIpLGUpOmEobyl9fXZhciBnbixUSnQsX0p0LEFKdCxBSD1uKCgpPT57aksoKTtXSygpO0dLKCk7WUsoKTtrdCgpO1ByKCk7Um8oKTtkZCgpO2duPXtuYW1lOiJsYWJlbEVuZCIscmVzb2x2ZUFsbDokSnQscmVzb2x2ZVRvOkRKdCx0b2tlbml6ZTpFSnR9LFRKdD17dG9rZW5pemU6Tkp0fSxfSnQ9e3Rva2VuaXplOlBKdH0sQUp0PXt0b2tlbml6ZTpJSnR9fSk7ZnVuY3Rpb24gRkp0KHQsZSxhKXtsZXQgcj10aGlzO3JldHVybiBpO2Z1bmN0aW9uIGkobCl7cmV0dXJuIHQuZW50ZXIoImxhYmVsSW1hZ2UiKSx0LmVudGVyKCJsYWJlbEltYWdlTWFya2VyIiksdC5jb25zdW1lKGwpLHQuZXhpdCgibGFiZWxJbWFnZU1hcmtlciIpLG99ZnVuY3Rpb24gbyhsKXtyZXR1cm4gbD09PTkxPyh0LmVudGVyKCJsYWJlbE1hcmtlciIpLHQuY29uc3VtZShsKSx0LmV4aXQoImxhYmVsTWFya2VyIiksdC5leGl0KCJsYWJlbEltYWdlIikscyk6YShsKX1mdW5jdGlvbiBzKGwpe3JldHVybiBsPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIHIucGFyc2VyLmNvbnN0cnVjdHM/YShsKTplKGwpfX12YXIgdEosVVFlPW4oKCk9PntBSCgpO3RKPXtuYW1lOiJsYWJlbFN0YXJ0SW1hZ2UiLHJlc29sdmVBbGw6Z24ucmVzb2x2ZUFsbCx0b2tlbml6ZTpGSnR9fSk7ZnVuY3Rpb24gT0p0KHQsZSxhKXtsZXQgcj10aGlzO3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIHQuZW50ZXIoImxhYmVsTGluayIpLHQuZW50ZXIoImxhYmVsTWFya2VyIiksdC5jb25zdW1lKHMpLHQuZXhpdCgibGFiZWxNYXJrZXIiKSx0LmV4aXQoImxhYmVsTGluayIpLG99ZnVuY3Rpb24gbyhzKXtyZXR1cm4gcz09PTk0JiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiByLnBhcnNlci5jb25zdHJ1Y3RzP2Eocyk6ZShzKX19dmFyIGFKLGpRZT1uKCgpPT57QUgoKTthSj17bmFtZToibGFiZWxTdGFydExpbmsiLHJlc29sdmVBbGw6Z24ucmVzb2x2ZUFsbCx0b2tlbml6ZTpPSnR9fSk7ZnVuY3Rpb24gQkp0KHQsZSl7cmV0dXJuIGE7ZnVuY3Rpb24gYShyKXtyZXR1cm4gdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShyKSx0LmV4aXQoImxpbmVFbmRpbmciKSxKZSh0LGUsImxpbmVQcmVmaXgiKX19dmFyIG1kLFdRZT1uKCgpPT57QzEoKTtrdCgpO21kPXtuYW1lOiJsaW5lRW5kaW5nIix0b2tlbml6ZTpCSnR9fSk7ZnVuY3Rpb24gUkp0KHQsZSxhKXtsZXQgcj0wLGk7cmV0dXJuIG87ZnVuY3Rpb24gbyhjKXtyZXR1cm4gdC5lbnRlcigidGhlbWF0aWNCcmVhayIpLHMoYyl9ZnVuY3Rpb24gcyhjKXtyZXR1cm4gaT1jLGwoYyl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gYz09PWk/KHQuZW50ZXIoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLGYoYykpOnI+PTMmJihjPT09bnVsbHx8UGUoYykpPyh0LmV4aXQoInRoZW1hdGljQnJlYWsiKSxlKGMpKTphKGMpfWZ1bmN0aW9uIGYoYyl7cmV0dXJuIGM9PT1pPyh0LmNvbnN1bWUoYykscisrLGYpOih0LmV4aXQoInRoZW1hdGljQnJlYWtTZXF1ZW5jZSIpLEdlKGMpP0plKHQsbCwid2hpdGVzcGFjZSIpKGMpOmwoYykpfX12YXIgeG4scko9bigoKT0+e0MxKCk7a3QoKTt4bj17bmFtZToidGhlbWF0aWNCcmVhayIsdG9rZW5pemU6Ukp0fX0pO2Z1bmN0aW9uIFZKdCh0LGUsYSl7bGV0IHI9dGhpcyxpPXIuZXZlbnRzW3IuZXZlbnRzLmxlbmd0aC0xXSxvPWkmJmlbMV0udHlwZT09PSJsaW5lUHJlZml4Ij9pWzJdLnNsaWNlU2VyaWFsaXplKGlbMV0sITApLmxlbmd0aDowLHM9MDtyZXR1cm4gbDtmdW5jdGlvbiBsKGcpe2xldCBiPXIuY29udGFpbmVyU3RhdGUudHlwZXx8KGc9PT00Mnx8Zz09PTQzfHxnPT09NDU/Imxpc3RVbm9yZGVyZWQiOiJsaXN0T3JkZXJlZCIpO2lmKGI9PT0ibGlzdFVub3JkZXJlZCI/IXIuY29udGFpbmVyU3RhdGUubWFya2VyfHxnPT09ci5jb250YWluZXJTdGF0ZS5tYXJrZXI6b2QoZykpe2lmKHIuY29udGFpbmVyU3RhdGUudHlwZXx8KHIuY29udGFpbmVyU3RhdGUudHlwZT1iLHQuZW50ZXIoYix7X2NvbnRhaW5lcjohMH0pKSxiPT09Imxpc3RVbm9yZGVyZWQiKXJldHVybiB0LmVudGVyKCJsaXN0SXRlbVByZWZpeCIpLGc9PT00Mnx8Zz09PTQ1P3QuY2hlY2soeG4sYSxjKShnKTpjKGcpO2lmKCFyLmludGVycnVwdHx8Zz09PTQ5KXJldHVybiB0LmVudGVyKCJsaXN0SXRlbVByZWZpeCIpLHQuZW50ZXIoImxpc3RJdGVtVmFsdWUiKSxmKGcpfXJldHVybiBhKGcpfWZ1bmN0aW9uIGYoZyl7cmV0dXJuIG9kKGcpJiYrK3M8MTA/KHQuY29uc3VtZShnKSxmKTooIXIuaW50ZXJydXB0fHxzPDIpJiYoci5jb250YWluZXJTdGF0ZS5tYXJrZXI/Zz09PXIuY29udGFpbmVyU3RhdGUubWFya2VyOmc9PT00MXx8Zz09PTQ2KT8odC5leGl0KCJsaXN0SXRlbVZhbHVlIiksYyhnKSk6YShnKX1mdW5jdGlvbiBjKGcpe3JldHVybiB0LmVudGVyKCJsaXN0SXRlbU1hcmtlciIpLHQuY29uc3VtZShnKSx0LmV4aXQoImxpc3RJdGVtTWFya2VyIiksci5jb250YWluZXJTdGF0ZS5tYXJrZXI9ci5jb250YWluZXJTdGF0ZS5tYXJrZXJ8fGcsdC5jaGVjayhCcixyLmludGVycnVwdD9hOnUsdC5hdHRlbXB0KEhKdCxoLGQpKX1mdW5jdGlvbiB1KGcpe3JldHVybiByLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9ITAsbysrLGgoZyl9ZnVuY3Rpb24gZChnKXtyZXR1cm4gR2UoZyk/KHQuZW50ZXIoImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIpLHQuY29uc3VtZShnKSx0LmV4aXQoImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIpLGgpOmEoZyl9ZnVuY3Rpb24gaChnKXtyZXR1cm4gci5jb250YWluZXJTdGF0ZS5zaXplPW8rci5zbGljZVNlcmlhbGl6ZSh0LmV4aXQoImxpc3RJdGVtUHJlZml4IiksITApLmxlbmd0aCxlKGcpfX1mdW5jdGlvbiBVSnQodCxlLGEpe2xldCByPXRoaXM7cmV0dXJuIHIuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDAsdC5jaGVjayhCcixpLG8pO2Z1bmN0aW9uIGkobCl7cmV0dXJuIHIuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXM9ci5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lc3x8ci5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lLEplKHQsZSwibGlzdEl0ZW1JbmRlbnQiLHIuY29udGFpbmVyU3RhdGUuc2l6ZSsxKShsKX1mdW5jdGlvbiBvKGwpe3JldHVybiByLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzfHwhR2UobCk/KHIuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXM9dm9pZCAwLHIuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT12b2lkIDAscyhsKSk6KHIuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXM9dm9pZCAwLHIuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT12b2lkIDAsdC5hdHRlbXB0KHFKdCxlLHMpKGwpKX1mdW5jdGlvbiBzKGwpe3JldHVybiByLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9ITAsci5pbnRlcnJ1cHQ9dm9pZCAwLEplKHQsdC5hdHRlbXB0KGsyLGUsYSksImxpbmVQcmVmaXgiLHIucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkobCl9fWZ1bmN0aW9uIGpKdCh0LGUsYSl7bGV0IHI9dGhpcztyZXR1cm4gSmUodCxpLCJsaXN0SXRlbUluZGVudCIsci5jb250YWluZXJTdGF0ZS5zaXplKzEpO2Z1bmN0aW9uIGkobyl7bGV0IHM9ci5ldmVudHNbci5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBzJiZzWzFdLnR5cGU9PT0ibGlzdEl0ZW1JbmRlbnQiJiZzWzJdLnNsaWNlU2VyaWFsaXplKHNbMV0sITApLmxlbmd0aD09PXIuY29udGFpbmVyU3RhdGUuc2l6ZT9lKG8pOmEobyl9fWZ1bmN0aW9uIFdKdCh0KXt0LmV4aXQodGhpcy5jb250YWluZXJTdGF0ZS50eXBlKX1mdW5jdGlvbiBHSnQodCxlLGEpe2xldCByPXRoaXM7cmV0dXJuIEplKHQsaSwibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIixyLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjUpO2Z1bmN0aW9uIGkobyl7bGV0IHM9ci5ldmVudHNbci5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFHZShvKSYmcyYmc1sxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSI/ZShvKTphKG8pfX12YXIgazIsSEp0LHFKdCxHUWU9bigoKT0+e0MxKCk7a3QoKTt3SCgpO3JKKCk7azI9e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6VUp0fSxleGl0OldKdCxuYW1lOiJsaXN0Iix0b2tlbml6ZTpWSnR9LEhKdD17cGFydGlhbDohMCx0b2tlbml6ZTpHSnR9LHFKdD17cGFydGlhbDohMCx0b2tlbml6ZTpqSnR9fSk7ZnVuY3Rpb24gWUp0KHQsZSl7bGV0IGE9dC5sZW5ndGgscixpLG87Zm9yKDthLS07KWlmKHRbYV1bMF09PT0iZW50ZXIiKXtpZih0W2FdWzFdLnR5cGU9PT0iY29udGVudCIpe3I9YTticmVha310W2FdWzFdLnR5cGU9PT0icGFyYWdyYXBoIiYmKGk9YSl9ZWxzZSB0W2FdWzFdLnR5cGU9PT0iY29udGVudCImJnQuc3BsaWNlKGEsMSksIW8mJnRbYV1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKG89YSk7bGV0IHM9e3R5cGU6InNldGV4dEhlYWRpbmciLHN0YXJ0OnsuLi50W3JdWzFdLnN0YXJ0fSxlbmQ6ey4uLnRbdC5sZW5ndGgtMV1bMV0uZW5kfX07cmV0dXJuIHRbaV1bMV0udHlwZT0ic2V0ZXh0SGVhZGluZ1RleHQiLG8/KHQuc3BsaWNlKGksMCxbImVudGVyIixzLGVdKSx0LnNwbGljZShvKzEsMCxbImV4aXQiLHRbcl1bMV0sZV0pLHRbcl1bMV0uZW5kPXsuLi50W29dWzFdLmVuZH0pOnRbcl1bMV09cyx0LnB1c2goWyJleGl0IixzLGVdKSx0fWZ1bmN0aW9uIFpKdCh0LGUsYSl7bGV0IHI9dGhpcyxpO3JldHVybiBvO2Z1bmN0aW9uIG8oYyl7bGV0IHU9ci5ldmVudHMubGVuZ3RoLGQ7Zm9yKDt1LS07KWlmKHIuZXZlbnRzW3VdWzFdLnR5cGUhPT0ibGluZUVuZGluZyImJnIuZXZlbnRzW3VdWzFdLnR5cGUhPT0ibGluZVByZWZpeCImJnIuZXZlbnRzW3VdWzFdLnR5cGUhPT0iY29udGVudCIpe2Q9ci5ldmVudHNbdV1bMV0udHlwZT09PSJwYXJhZ3JhcGgiO2JyZWFrfXJldHVybiFyLnBhcnNlci5sYXp5W3Iubm93KCkubGluZV0mJihyLmludGVycnVwdHx8ZCk/KHQuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lIiksaT1jLHMoYykpOmEoYyl9ZnVuY3Rpb24gcyhjKXtyZXR1cm4gdC5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIpLGwoYyl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gYz09PWk/KHQuY29uc3VtZShjKSxsKToodC5leGl0KCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksR2UoYyk/SmUodCxmLCJsaW5lU3VmZml4IikoYyk6ZihjKSl9ZnVuY3Rpb24gZihjKXtyZXR1cm4gYz09PW51bGx8fFBlKGMpPyh0LmV4aXQoInNldGV4dEhlYWRpbmdMaW5lIiksZShjKSk6YShjKX19dmFyICRILFlRZT1uKCgpPT57QzEoKTtrdCgpOyRIPXtuYW1lOiJzZXRleHRVbmRlcmxpbmUiLHJlc29sdmVUbzpZSnQsdG9rZW5pemU6Wkp0fX0pO3ZhciBESD1uKCgpPT57TFFlKCk7VFFlKCk7d0goKTtfUWUoKTtBUWUoKTskUWUoKTtFUWUoKTtOUWUoKTtQUWUoKTtJUWUoKTtGUWUoKTtPUWUoKTtCUWUoKTtxUWUoKTtWUWUoKTtBSCgpO1VRZSgpO2pRZSgpO1dRZSgpO0dRZSgpO1lRZSgpO3JKKCl9KTtmdW5jdGlvbiBpSigpe3JldHVybntkb2N1bWVudDp7OTE6e25hbWU6ImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIsdG9rZW5pemU6ZWUxLGNvbnRpbnVhdGlvbjp7dG9rZW5pemU6dGUxfSxleGl0OmFlMX19LHRleHQ6ezkxOntuYW1lOiJnZm1Gb290bm90ZUNhbGwiLHRva2VuaXplOkpKdH0sOTM6e25hbWU6ImdmbVBvdGVudGlhbEZvb3Rub3RlQ2FsbCIsYWRkOiJhZnRlciIsdG9rZW5pemU6UUp0LHJlc29sdmVUbzpLSnR9fX19ZnVuY3Rpb24gUUp0KHQsZSxhKXtsZXQgcj10aGlzLGk9ci5ldmVudHMubGVuZ3RoLG89ci5wYXJzZXIuZ2ZtRm9vdG5vdGVzfHwoci5wYXJzZXIuZ2ZtRm9vdG5vdGVzPVtdKSxzO2Zvcig7aS0tOyl7bGV0IGY9ci5ldmVudHNbaV1bMV07aWYoZi50eXBlPT09ImxhYmVsSW1hZ2UiKXtzPWY7YnJlYWt9aWYoZi50eXBlPT09ImdmbUZvb3Rub3RlQ2FsbCJ8fGYudHlwZT09PSJsYWJlbExpbmsifHxmLnR5cGU9PT0ibGFiZWwifHxmLnR5cGU9PT0iaW1hZ2UifHxmLnR5cGU9PT0ibGluayIpYnJlYWt9cmV0dXJuIGw7ZnVuY3Rpb24gbChmKXtpZighc3x8IXMuX2JhbGFuY2VkKXJldHVybiBhKGYpO2xldCBjPXcxKHIuc2xpY2VTZXJpYWxpemUoe3N0YXJ0OnMuZW5kLGVuZDpyLm5vdygpfSkpO3JldHVybiBjLmNvZGVQb2ludEF0KDApIT09OTR8fCFvLmluY2x1ZGVzKGMuc2xpY2UoMSkpP2EoZik6KHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdC5jb25zdW1lKGYpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxlKGYpKX19ZnVuY3Rpb24gS0p0KHQsZSl7bGV0IGE9dC5sZW5ndGgscjtmb3IoO2EtLTspaWYodFthXVsxXS50eXBlPT09ImxhYmVsSW1hZ2UiJiZ0W2FdWzBdPT09ImVudGVyIil7cj10W2FdWzFdO2JyZWFrfXRbYSsxXVsxXS50eXBlPSJkYXRhIix0W2ErM11bMV0udHlwZT0iZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiO2xldCBpPXt0eXBlOiJnZm1Gb290bm90ZUNhbGwiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sdFthKzNdWzFdLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx0W3QubGVuZ3RoLTFdWzFdLmVuZCl9LG89e3R5cGU6ImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx0W2ErM11bMV0uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx0W2ErM11bMV0uZW5kKX07by5lbmQuY29sdW1uKyssby5lbmQub2Zmc2V0Kyssby5lbmQuX2J1ZmZlckluZGV4Kys7bGV0IHM9e3R5cGU6ImdmbUZvb3Rub3RlQ2FsbFN0cmluZyIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxvLmVuZCksZW5kOk9iamVjdC5hc3NpZ24oe30sdFt0Lmxlbmd0aC0xXVsxXS5zdGFydCl9LGw9e3R5cGU6ImNodW5rU3RyaW5nIixjb250ZW50VHlwZToic3RyaW5nIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHMuc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHMuZW5kKX0sZj1bdFthKzFdLHRbYSsyXSxbImVudGVyIixpLGVdLHRbYSszXSx0W2ErNF0sWyJlbnRlciIsbyxlXSxbImV4aXQiLG8sZV0sWyJlbnRlciIscyxlXSxbImVudGVyIixsLGVdLFsiZXhpdCIsbCxlXSxbImV4aXQiLHMsZV0sdFt0Lmxlbmd0aC0yXSx0W3QubGVuZ3RoLTFdLFsiZXhpdCIsaSxlXV07cmV0dXJuIHQuc3BsaWNlKGEsdC5sZW5ndGgtYSsxLC4uLmYpLHR9ZnVuY3Rpb24gSkp0KHQsZSxhKXtsZXQgcj10aGlzLGk9ci5wYXJzZXIuZ2ZtRm9vdG5vdGVzfHwoci5wYXJzZXIuZ2ZtRm9vdG5vdGVzPVtdKSxvPTAscztyZXR1cm4gbDtmdW5jdGlvbiBsKGQpe3JldHVybiB0LmVudGVyKCJnZm1Gb290bm90ZUNhbGwiKSx0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHQuY29uc3VtZShkKSx0LmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksZn1mdW5jdGlvbiBmKGQpe3JldHVybiBkIT09OTQ/YShkKToodC5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTWFya2VyIiksdC5jb25zdW1lKGQpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTWFya2VyIiksdC5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIiksdC5lbnRlcigiY2h1bmtTdHJpbmciKS5jb250ZW50VHlwZT0ic3RyaW5nIixjKX1mdW5jdGlvbiBjKGQpe2lmKG8+OTk5fHxkPT09OTMmJiFzfHxkPT09bnVsbHx8ZD09PTkxfHx3dChkKSlyZXR1cm4gYShkKTtpZihkPT09OTMpe3QuZXhpdCgiY2h1bmtTdHJpbmciKTtsZXQgaD10LmV4aXQoImdmbUZvb3Rub3RlQ2FsbFN0cmluZyIpO3JldHVybiBpLmluY2x1ZGVzKHcxKHIuc2xpY2VTZXJpYWxpemUoaCkpKT8odC5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUoZCksdC5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsIiksZSk6YShkKX1yZXR1cm4gd3QoZCl8fChzPSEwKSxvKyssdC5jb25zdW1lKGQpLGQ9PT05Mj91OmN9ZnVuY3Rpb24gdShkKXtyZXR1cm4gZD09PTkxfHxkPT09OTJ8fGQ9PT05Mz8odC5jb25zdW1lKGQpLG8rKyxjKTpjKGQpfX1mdW5jdGlvbiBlZTEodCxlLGEpe2xldCByPXRoaXMsaT1yLnBhcnNlci5nZm1Gb290bm90ZXN8fChyLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG8scz0wLGw7cmV0dXJuIGY7ZnVuY3Rpb24gZihiKXtyZXR1cm4gdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIikuX2NvbnRhaW5lcj0hMCx0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbCIpLHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksdC5jb25zdW1lKGIpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSxjfWZ1bmN0aW9uIGMoYil7cmV0dXJuIGI9PT05ND8odC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTWFya2VyIiksdC5jb25zdW1lKGIpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTWFya2VyIiksdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKSx0LmVudGVyKCJjaHVua1N0cmluZyIpLmNvbnRlbnRUeXBlPSJzdHJpbmciLHUpOmEoYil9ZnVuY3Rpb24gdShiKXtpZihzPjk5OXx8Yj09PTkzJiYhbHx8Yj09PW51bGx8fGI9PT05MXx8d3QoYikpcmV0dXJuIGEoYik7aWYoYj09PTkzKXt0LmV4aXQoImNodW5rU3RyaW5nIik7bGV0IHg9dC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpO3JldHVybiBvPXcxKHIuc2xpY2VTZXJpYWxpemUoeCkpLHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksdC5jb25zdW1lKGIpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSx0LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsIiksaH1yZXR1cm4gd3QoYil8fChsPSEwKSxzKyssdC5jb25zdW1lKGIpLGI9PT05Mj9kOnV9ZnVuY3Rpb24gZChiKXtyZXR1cm4gYj09PTkxfHxiPT09OTJ8fGI9PT05Mz8odC5jb25zdW1lKGIpLHMrKyx1KTp1KGIpfWZ1bmN0aW9uIGgoYil7cmV0dXJuIGI9PT01OD8odC5lbnRlcigiZGVmaW5pdGlvbk1hcmtlciIpLHQuY29uc3VtZShiKSx0LmV4aXQoImRlZmluaXRpb25NYXJrZXIiKSxpLmluY2x1ZGVzKG8pfHxpLnB1c2gobyksSmUodCxnLCJnZm1Gb290bm90ZURlZmluaXRpb25XaGl0ZXNwYWNlIikpOmEoYil9ZnVuY3Rpb24gZyhiKXtyZXR1cm4gZShiKX19ZnVuY3Rpb24gdGUxKHQsZSxhKXtyZXR1cm4gdC5jaGVjayhCcixlLHQuYXR0ZW1wdChYSnQsZSxhKSl9ZnVuY3Rpb24gYWUxKHQpe3QuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIil9ZnVuY3Rpb24gcmUxKHQsZSxhKXtsZXQgcj10aGlzO3JldHVybiBKZSh0LGksImdmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCIsNSk7ZnVuY3Rpb24gaShvKXtsZXQgcz1yLmV2ZW50c1tyLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIHMmJnNbMV0udHlwZT09PSJnZm1Gb290bm90ZURlZmluaXRpb25JbmRlbnQiJiZzWzJdLnNsaWNlU2VyaWFsaXplKHNbMV0sITApLmxlbmd0aD09PTQ/ZShvKTphKG8pfX12YXIgWEp0LFpRZT1uKCgpPT57REgoKTtDMSgpO2t0KCk7Um8oKTtYSnQ9e3Rva2VuaXplOnJlMSxwYXJ0aWFsOiEwfX0pO2Z1bmN0aW9uIFhRZSh0LGUpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyh0KzEpKyhlPjE/Ii0iK2U6IiIpfWZ1bmN0aW9uIG9KKHQpe2xldCBlPXR8fG9lMSxhPWUubGFiZWx8fCJGb290bm90ZXMiLHI9ZS5sYWJlbFRhZ05hbWV8fCJoMiIsaT1lLmxhYmVsQXR0cmlidXRlcz09PW51bGx8fGUubGFiZWxBdHRyaWJ1dGVzPT09dm9pZCAwPydjbGFzcz0ic3Itb25seSInOmUubGFiZWxBdHRyaWJ1dGVzLG89ZS5iYWNrTGFiZWx8fFhRZSxzPWUuY2xvYmJlclByZWZpeD09PW51bGx8fGUuY2xvYmJlclByZWZpeD09PXZvaWQgMD8idXNlci1jb250ZW50LSI6ZS5jbG9iYmVyUHJlZml4O3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVEZWZpbml0aW9uKCl7dGhpcy5nZXREYXRhKCJ0aWdodFN0YWNrIikucHVzaCghMSl9LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKCl7dGhpcy5idWZmZXIoKX0sZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKCl7dGhpcy5idWZmZXIoKX19LGV4aXQ6e2dmbUZvb3Rub3RlRGVmaW5pdGlvbigpe2xldCBsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIpLGY9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIpLGM9dGhpcy5nZXREYXRhKCJ0aWdodFN0YWNrIiksdT1mLnBvcCgpLGQ9dGhpcy5yZXN1bWUoKTtsfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiLGw9e30pLGllMS5jYWxsKGwsdSl8fChsW3VdPWQpLGMucG9wKCksdGhpcy5zZXREYXRhKCJzbHVycE9uZUxpbmVFbmRpbmciLCEwKSx0aGlzLnNldERhdGEoImxhc3RXYXNUYWciKX0sZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcobCl7bGV0IGY9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIpO2Z8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siLGY9W10pLGYucHVzaCh3MSh0aGlzLnNsaWNlU2VyaWFsaXplKGwpKSksdGhpcy5yZXN1bWUoKSx0aGlzLmJ1ZmZlcigpfSxnZm1Gb290bm90ZUNhbGxTdHJpbmcobCl7bGV0IGY9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIpLGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiKSx1PXcxKHRoaXMuc2xpY2VTZXJpYWxpemUobCkpLGQ7dGhpcy5yZXN1bWUoKSxmfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlQ2FsbE9yZGVyIixmPVtdKSxjfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIsYz17fSk7bGV0IGg9Zi5pbmRleE9mKHUpLGc9RnIodS50b0xvd2VyQ2FzZSgpKTtoPT09LTE/KGYucHVzaCh1KSxjW3VdPTEsZD1mLmxlbmd0aCk6KGNbdV0rKyxkPWgrMSk7bGV0IGI9Y1t1XTt0aGlzLnRhZygnPHN1cD48YSBocmVmPSIjJytzKyJmbi0iK2crJyIgaWQ9IicrcysiZm5yZWYtIitnKyhiPjE/Ii0iK2I6IiIpKyciIGRhdGEtZm9vdG5vdGUtcmVmPSIiIGFyaWEtZGVzY3JpYmVkYnk9ImZvb3Rub3RlLWxhYmVsIj4nK1N0cmluZyhkKSsiPC9hPjwvc3VwPiIpfSxudWxsKCl7bGV0IGw9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIpfHxbXSxmPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIil8fHt9LGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIil8fHt9LHU9LTE7Zm9yKGwubGVuZ3RoPjAmJih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCc8c2VjdGlvbiBkYXRhLWZvb3Rub3Rlcz0iIiBjbGFzcz0iZm9vdG5vdGVzIj48JytyKycgaWQ9ImZvb3Rub3RlLWxhYmVsIicrKGk/IiAiK2k6IiIpKyI+IiksdGhpcy5yYXcodGhpcy5lbmNvZGUoYSkpLHRoaXMudGFnKCI8LyIrcisiPiIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjxvbD4iKSk7Kyt1PGwubGVuZ3RoOyl7bGV0IGQ9bFt1XSxoPUZyKGQudG9Mb3dlckNhc2UoKSksZz0wLGI9W107Zm9yKDsrK2c8PWZbZF07KWIucHVzaCgnPGEgaHJlZj0iIycrcysiZm5yZWYtIitoKyhnPjE/Ii0iK2c6IiIpKyciIGRhdGEtZm9vdG5vdGUtYmFja3JlZj0iIiBhcmlhLWxhYmVsPSInK3RoaXMuZW5jb2RlKHR5cGVvZiBvPT0ic3RyaW5nIj9vOm8odSxnKSkrJyIgY2xhc3M9ImRhdGEtZm9vdG5vdGUtYmFja3JlZiI+XHUyMUE5JysoZz4xPyI8c3VwPiIrZysiPC9zdXA+IjoiIikrIjwvYT4iKTtsZXQgeD1iLmpvaW4oIiAiKSxtPSExO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoJzxsaSBpZD0iJytzKyJmbi0iK2grJyI+JyksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZyhjW2RdLnJlcGxhY2UoLzxcL3A+KD86XHI/XG58XHIpPyQvLGZ1bmN0aW9uKHYpe3JldHVybiBtPSEwLCIgIit4K3Z9KSksbXx8KHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoeCkpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvbGk+Iil9bC5sZW5ndGg+MCYmKHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvb2w+IiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC9zZWN0aW9uPiIpKX19fX12YXIgaWUxLG9lMSxRUWU9bigoKT0+e1JvKCk7T3IoKTtpZTE9e30uaGFzT3duUHJvcGVydHksb2UxPXt9fSk7dmFyIEtRZT1uKCgpPT57WlFlKCk7UVFlKCl9KTtmdW5jdGlvbiBzSigpe3JldHVybntlbnRlcjp7c3RyaWtldGhyb3VnaCgpe3RoaXMudGFnKCI8ZGVsPiIpfX0sZXhpdDp7c3RyaWtldGhyb3VnaCgpe3RoaXMudGFnKCI8L2RlbD4iKX19fX12YXIgSlFlPW4oKCk9Pnt9KTtmdW5jdGlvbiBuSih0KXtsZXQgYT0odHx8e30pLnNpbmdsZVRpbGRlLHI9e25hbWU6InN0cmlrZXRocm91Z2giLHRva2VuaXplOm8scmVzb2x2ZUFsbDppfTtyZXR1cm4gYT09bnVsbCYmKGE9ITApLHt0ZXh0OnsxMjY6cn0saW5zaWRlU3Bhbjp7bnVsbDpbcl19LGF0dGVudGlvbk1hcmtlcnM6e251bGw6WzEyNl19fTtmdW5jdGlvbiBpKHMsbCl7bGV0IGY9LTE7Zm9yKDsrK2Y8cy5sZW5ndGg7KWlmKHNbZl1bMF09PT0iZW50ZXIiJiZzW2ZdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmc1tmXVsxXS5fY2xvc2Upe2xldCBjPWY7Zm9yKDtjLS07KWlmKHNbY11bMF09PT0iZXhpdCImJnNbY11bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiZzW2NdWzFdLl9vcGVuJiZzW2ZdWzFdLmVuZC5vZmZzZXQtc1tmXVsxXS5zdGFydC5vZmZzZXQ9PT1zW2NdWzFdLmVuZC5vZmZzZXQtc1tjXVsxXS5zdGFydC5vZmZzZXQpe3NbZl1bMV0udHlwZT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlIixzW2NdWzFdLnR5cGU9InN0cmlrZXRocm91Z2hTZXF1ZW5jZSI7bGV0IHU9e3R5cGU6InN0cmlrZXRocm91Z2giLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sc1tjXVsxXS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sc1tmXVsxXS5lbmQpfSxkPXt0eXBlOiJzdHJpa2V0aHJvdWdoVGV4dCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxzW2NdWzFdLmVuZCksZW5kOk9iamVjdC5hc3NpZ24oe30sc1tmXVsxXS5zdGFydCl9LGg9W1siZW50ZXIiLHUsbF0sWyJlbnRlciIsc1tjXVsxXSxsXSxbImV4aXQiLHNbY11bMV0sbF0sWyJlbnRlciIsZCxsXV0sZz1sLnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbDtnJiZTMShoLGgubGVuZ3RoLDAscW8oZyxzLnNsaWNlKGMrMSxmKSxsKSksUzEoaCxoLmxlbmd0aCwwLFtbImV4aXQiLGQsbF0sWyJlbnRlciIsc1tmXVsxXSxsXSxbImV4aXQiLHNbZl1bMV0sbF0sWyJleGl0Iix1LGxdXSksUzEocyxjLTEsZi1jKzMsaCksZj1jK2gubGVuZ3RoLTI7YnJlYWt9fWZvcihmPS0xOysrZjxzLmxlbmd0aDspc1tmXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJihzW2ZdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gc31mdW5jdGlvbiBvKHMsbCxmKXtsZXQgYz10aGlzLnByZXZpb3VzLHU9dGhpcy5ldmVudHMsZD0wO3JldHVybiBoO2Z1bmN0aW9uIGgoYil7cmV0dXJuIGM9PT0xMjYmJnVbdS5sZW5ndGgtMV1bMV0udHlwZSE9PSJjaGFyYWN0ZXJFc2NhcGUiP2YoYik6KHMuZW50ZXIoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLGcoYikpfWZ1bmN0aW9uIGcoYil7bGV0IHg9emkoYyk7aWYoYj09PTEyNilyZXR1cm4gZD4xP2YoYik6KHMuY29uc3VtZShiKSxkKyssZyk7aWYoZDwyJiYhYSlyZXR1cm4gZihiKTtsZXQgbT1zLmV4aXQoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLHY9emkoYik7cmV0dXJuIG0uX29wZW49IXZ8fHY9PT0yJiYhIXgsbS5fY2xvc2U9IXh8fHg9PT0yJiYhIXYsbChiKX19fXZhciBlS2U9bigoKT0+e1ByKCk7Y0goKTtkZCgpfSk7dmFyIHRLZT1uKCgpPT57SlFlKCk7ZUtlKCl9KTtmdW5jdGlvbiBjSigpe3JldHVybntlbnRlcjp7dGFibGUodCl7bGV0IGU9dC5fYWxpZ247dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRhYmxlPiIpLHRoaXMuc2V0RGF0YSgidGFibGVBbGlnbiIsZSl9LHRhYmxlQm9keSgpe3RoaXMudGFnKCI8dGJvZHk+Iil9LHRhYmxlRGF0YSgpe2xldCB0PXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpLGE9bEpbdFtlXV07YT09PXZvaWQgMD90aGlzLmJ1ZmZlcigpOih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGQiK2ErIj4iKSl9LHRhYmxlSGVhZCgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0aGVhZD4iKX0sdGFibGVIZWFkZXIoKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKSxhPWxKW3RbZV1dO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0aCIrYSsiPiIpfSx0YWJsZVJvdygpe3RoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLDApLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0cj4iKX19LGV4aXQ6e2NvZGVUZXh0RGF0YSh0KXtsZXQgZT10aGlzLnNsaWNlU2VyaWFsaXplKHQpO3RoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpJiYoZT1lLnJlcGxhY2UoL1xcKFtcXHxdKS9nLHNlMSkpLHRoaXMucmF3KHRoaXMuZW5jb2RlKGUpKX0sdGFibGUoKXt0aGlzLnNldERhdGEoInRhYmxlQWxpZ24iKSx0aGlzLnNldERhdGEoInNsdXJwQWxsTGluZUVuZGluZ3MiKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RhYmxlPiIpfSx0YWJsZUJvZHkoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3Rib2R5PiIpfSx0YWJsZURhdGEoKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTtlIGluIHQ/KHRoaXMudGFnKCI8L3RkPiIpLHRoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLGUrMSkpOnRoaXMucmVzdW1lKCl9LHRhYmxlSGVhZCgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdGhlYWQ+Iil9LHRhYmxlSGVhZGVyKCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO3RoaXMudGFnKCI8L3RoPiIpLHRoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLHQrMSl9LHRhYmxlUm93KCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7Zm9yKDtlPHQubGVuZ3RoOyl0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGQiK2xKW3RbZV1dKyI+PC90ZD4iKSxlKys7dGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsZSksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90cj4iKX19fX1mdW5jdGlvbiBzZTEodCxlKXtyZXR1cm4gZT09PSJ8Ij9lOnR9dmFyIGxKLGFLZT1uKCgpPT57bEo9e25vbmU6IiIsbGVmdDonIGFsaWduPSJsZWZ0IicscmlnaHQ6JyBhbGlnbj0icmlnaHQiJyxjZW50ZXI6JyBhbGlnbj0iY2VudGVyIid9fSk7ZnVuY3Rpb24gbmUxKHQsZSxhLHIpe2xldCBpPTA7aWYoIShhPT09MCYmci5sZW5ndGg9PT0wKSl7Zm9yKDtpPHQubWFwLmxlbmd0aDspe2lmKHQubWFwW2ldWzBdPT09ZSl7dC5tYXBbaV1bMV0rPWEsdC5tYXBbaV1bMl0ucHVzaCguLi5yKTtyZXR1cm59aSs9MX10Lm1hcC5wdXNoKFtlLGEscl0pfX12YXIgRUgscktlPW4oKCk9PntFSD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubWFwPVtdfWFkZChlLGEscil7bmUxKHRoaXMsZSxhLHIpfWNvbnN1bWUoZSl7aWYodGhpcy5tYXAuc29ydChmdW5jdGlvbihvLHMpe3JldHVybiBvWzBdLXNbMF19KSx0aGlzLm1hcC5sZW5ndGg9PT0wKXJldHVybjtsZXQgYT10aGlzLm1hcC5sZW5ndGgscj1bXTtmb3IoO2E+MDspYS09MSxyLnB1c2goZS5zbGljZSh0aGlzLm1hcFthXVswXSt0aGlzLm1hcFthXVsxXSksdGhpcy5tYXBbYV1bMl0pLGUubGVuZ3RoPXRoaXMubWFwW2FdWzBdO3IucHVzaChlLnNsaWNlKCkpLGUubGVuZ3RoPTA7bGV0IGk9ci5wb3AoKTtmb3IoO2k7KXtmb3IobGV0IG8gb2YgaSllLnB1c2gobyk7aT1yLnBvcCgpfXRoaXMubWFwLmxlbmd0aD0wfX19KTtmdW5jdGlvbiBpS2UodCxlKXtsZXQgYT0hMSxyPVtdO2Zvcig7ZTx0Lmxlbmd0aDspe2xldCBpPXRbZV07aWYoYSl7aWYoaVswXT09PSJlbnRlciIpaVsxXS50eXBlPT09InRhYmxlQ29udGVudCImJnIucHVzaCh0W2UrMV1bMV0udHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciI/ImxlZnQiOiJub25lIik7ZWxzZSBpZihpWzFdLnR5cGU9PT0idGFibGVDb250ZW50Iil7aWYodFtlLTFdWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIiKXtsZXQgbz1yLmxlbmd0aC0xO3Jbb109cltvXT09PSJsZWZ0Ij8iY2VudGVyIjoicmlnaHQifX1lbHNlIGlmKGlbMV0udHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyIpYnJlYWt9ZWxzZSBpWzBdPT09ImVudGVyIiYmaVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93IiYmKGE9ITApO2UrPTF9cmV0dXJuIHJ9dmFyIG9LZT1uKCgpPT57fSk7ZnVuY3Rpb24gZEooKXtyZXR1cm57Zmxvdzp7bnVsbDp7bmFtZToidGFibGUiLHRva2VuaXplOmxlMSxyZXNvbHZlQWxsOmNlMX19fX1mdW5jdGlvbiBsZTEodCxlLGEpe2xldCByPXRoaXMsaT0wLG89MCxzO3JldHVybiBsO2Z1bmN0aW9uIGwoSCl7bGV0IEw9ci5ldmVudHMubGVuZ3RoLTE7Zm9yKDtMPi0xOyl7bGV0IFM9ci5ldmVudHNbTF1bMV0udHlwZTtpZihTPT09ImxpbmVFbmRpbmcifHxTPT09ImxpbmVQcmVmaXgiKUwtLTtlbHNlIGJyZWFrfWxldCBrPUw+LTE/ci5ldmVudHNbTF1bMV0udHlwZTpudWxsLE49az09PSJ0YWJsZUhlYWQifHxrPT09InRhYmxlUm93Ij96OmY7cmV0dXJuIE49PT16JiZyLnBhcnNlci5sYXp5W3Iubm93KCkubGluZV0/YShIKTpOKEgpfWZ1bmN0aW9uIGYoSCl7cmV0dXJuIHQuZW50ZXIoInRhYmxlSGVhZCIpLHQuZW50ZXIoInRhYmxlUm93IiksYyhIKX1mdW5jdGlvbiBjKEgpe3JldHVybiBIPT09MTI0fHwocz0hMCxvKz0xKSx1KEgpfWZ1bmN0aW9uIHUoSCl7cmV0dXJuIEg9PT1udWxsP2EoSCk6UGUoSCk/bz4xPyhvPTAsci5pbnRlcnJ1cHQ9ITAsdC5leGl0KCJ0YWJsZVJvdyIpLHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoSCksdC5leGl0KCJsaW5lRW5kaW5nIiksZyk6YShIKTpHZShIKT9KZSh0LHUsIndoaXRlc3BhY2UiKShIKToobys9MSxzJiYocz0hMSxpKz0xKSxIPT09MTI0Pyh0LmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksdC5jb25zdW1lKEgpLHQuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLHM9ITAsdSk6KHQuZW50ZXIoImRhdGEiKSxkKEgpKSl9ZnVuY3Rpb24gZChIKXtyZXR1cm4gSD09PW51bGx8fEg9PT0xMjR8fHd0KEgpPyh0LmV4aXQoImRhdGEiKSx1KEgpKToodC5jb25zdW1lKEgpLEg9PT05Mj9oOmQpfWZ1bmN0aW9uIGgoSCl7cmV0dXJuIEg9PT05Mnx8SD09PTEyND8odC5jb25zdW1lKEgpLGQpOmQoSCl9ZnVuY3Rpb24gZyhIKXtyZXR1cm4gci5pbnRlcnJ1cHQ9ITEsci5wYXJzZXIubGF6eVtyLm5vdygpLmxpbmVdP2EoSCk6KHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyUm93Iikscz0hMSxHZShIKT9KZSh0LGIsImxpbmVQcmVmaXgiLHIucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoSCk6YihIKSl9ZnVuY3Rpb24gYihIKXtyZXR1cm4gSD09PTQ1fHxIPT09NTg/bShIKTpIPT09MTI0PyhzPSEwLHQuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSx0LmNvbnN1bWUoSCksdC5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIikseCk6QyhIKX1mdW5jdGlvbiB4KEgpe3JldHVybiBHZShIKT9KZSh0LG0sIndoaXRlc3BhY2UiKShIKTptKEgpfWZ1bmN0aW9uIG0oSCl7cmV0dXJuIEg9PT01OD8obys9MSxzPSEwLHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksdC5jb25zdW1lKEgpLHQuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx2KTpIPT09NDU/KG8rPTEsdihIKSk6SD09PW51bGx8fFBlKEgpP0UoSCk6QyhIKX1mdW5jdGlvbiB2KEgpe3JldHVybiBIPT09NDU/KHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyRmlsbGVyIikseShIKSk6QyhIKX1mdW5jdGlvbiB5KEgpe3JldHVybiBIPT09NDU/KHQuY29uc3VtZShIKSx5KTpIPT09NTg/KHM9ITAsdC5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLHQuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksdC5jb25zdW1lKEgpLHQuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx3KToodC5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLHcoSCkpfWZ1bmN0aW9uIHcoSCl7cmV0dXJuIEdlKEgpP0plKHQsRSwid2hpdGVzcGFjZSIpKEgpOkUoSCl9ZnVuY3Rpb24gRShIKXtyZXR1cm4gSD09PTEyND9iKEgpOkg9PT1udWxsfHxQZShIKT8hc3x8aSE9PW8/QyhIKToodC5leGl0KCJ0YWJsZURlbGltaXRlclJvdyIpLHQuZXhpdCgidGFibGVIZWFkIiksZShIKSk6QyhIKX1mdW5jdGlvbiBDKEgpe3JldHVybiBhKEgpfWZ1bmN0aW9uIHooSCl7cmV0dXJuIHQuZW50ZXIoInRhYmxlUm93IiksUChIKX1mdW5jdGlvbiBQKEgpe3JldHVybiBIPT09MTI0Pyh0LmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksdC5jb25zdW1lKEgpLHQuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLFApOkg9PT1udWxsfHxQZShIKT8odC5leGl0KCJ0YWJsZVJvdyIpLGUoSCkpOkdlKEgpP0plKHQsUCwid2hpdGVzcGFjZSIpKEgpOih0LmVudGVyKCJkYXRhIiksXyhIKSl9ZnVuY3Rpb24gXyhIKXtyZXR1cm4gSD09PW51bGx8fEg9PT0xMjR8fHd0KEgpPyh0LmV4aXQoImRhdGEiKSxQKEgpKToodC5jb25zdW1lKEgpLEg9PT05Mj8kOl8pfWZ1bmN0aW9uICQoSCl7cmV0dXJuIEg9PT05Mnx8SD09PTEyND8odC5jb25zdW1lKEgpLF8pOl8oSCl9fWZ1bmN0aW9uIGNlMSh0LGUpe2xldCBhPS0xLHI9ITAsaT0wLG89WzAsMCwwLDBdLHM9WzAsMCwwLDBdLGw9ITEsZj0wLGMsdSxkLGg9bmV3IEVIO2Zvcig7KythPHQubGVuZ3RoOyl7bGV0IGc9dFthXSxiPWdbMV07Z1swXT09PSJlbnRlciI/Yi50eXBlPT09InRhYmxlSGVhZCI/KGw9ITEsZiE9PTAmJihzS2UoaCxlLGYsYyx1KSx1PXZvaWQgMCxmPTApLGM9e3R5cGU6InRhYmxlIixzdGFydDpPYmplY3QuYXNzaWduKHt9LGIuc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LGIuZW5kKX0saC5hZGQoYSwwLFtbImVudGVyIixjLGVdXSkpOmIudHlwZT09PSJ0YWJsZVJvdyJ8fGIudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KHI9ITAsZD12b2lkIDAsbz1bMCwwLDAsMF0scz1bMCxhKzEsMCwwXSxsJiYobD0hMSx1PXt0eXBlOiJ0YWJsZUJvZHkiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sYi5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sYi5lbmQpfSxoLmFkZChhLDAsW1siZW50ZXIiLHUsZV1dKSksaT1iLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPzI6dT8zOjEpOmkmJihiLnR5cGU9PT0iZGF0YSJ8fGIudHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciJ8fGIudHlwZT09PSJ0YWJsZURlbGltaXRlckZpbGxlciIpPyhyPSExLHNbMl09PT0wJiYob1sxXSE9PTAmJihzWzBdPXNbMV0sZD1OSChoLGUsbyxpLHZvaWQgMCxkKSxvPVswLDAsMCwwXSksc1syXT1hKSk6Yi50eXBlPT09InRhYmxlQ2VsbERpdmlkZXIiJiYocj9yPSExOihvWzFdIT09MCYmKHNbMF09c1sxXSxkPU5IKGgsZSxvLGksdm9pZCAwLGQpKSxvPXMscz1bb1sxXSxhLDAsMF0pKTpiLnR5cGU9PT0idGFibGVIZWFkIj8obD0hMCxmPWEpOmIudHlwZT09PSJ0YWJsZVJvdyJ8fGIudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KGY9YSxvWzFdIT09MD8oc1swXT1zWzFdLGQ9TkgoaCxlLG8saSxhLGQpKTpzWzFdIT09MCYmKGQ9TkgoaCxlLHMsaSxhLGQpKSxpPTApOmkmJihiLnR5cGU9PT0iZGF0YSJ8fGIudHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciJ8fGIudHlwZT09PSJ0YWJsZURlbGltaXRlckZpbGxlciIpJiYoc1szXT1hKX1mb3IoZiE9PTAmJnNLZShoLGUsZixjLHUpLGguY29uc3VtZShlLmV2ZW50cyksYT0tMTsrK2E8ZS5ldmVudHMubGVuZ3RoOyl7bGV0IGc9ZS5ldmVudHNbYV07Z1swXT09PSJlbnRlciImJmdbMV0udHlwZT09PSJ0YWJsZSImJihnWzFdLl9hbGlnbj1pS2UoZS5ldmVudHMsYSkpfXJldHVybiB0fWZ1bmN0aW9uIE5IKHQsZSxhLHIsaSxvKXtsZXQgcz1yPT09MT8idGFibGVIZWFkZXIiOnI9PT0yPyJ0YWJsZURlbGltaXRlciI6InRhYmxlRGF0YSIsbD0idGFibGVDb250ZW50IjthWzBdIT09MCYmKG8uZW5kPU9iamVjdC5hc3NpZ24oe30sTDYoZS5ldmVudHMsYVswXSkpLHQuYWRkKGFbMF0sMCxbWyJleGl0IixvLGVdXSkpO2xldCBmPUw2KGUuZXZlbnRzLGFbMV0pO2lmKG89e3R5cGU6cyxzdGFydDpPYmplY3QuYXNzaWduKHt9LGYpLGVuZDpPYmplY3QuYXNzaWduKHt9LGYpfSx0LmFkZChhWzFdLDAsW1siZW50ZXIiLG8sZV1dKSxhWzJdIT09MCl7bGV0IGM9TDYoZS5ldmVudHMsYVsyXSksdT1MNihlLmV2ZW50cyxhWzNdKSxkPXt0eXBlOmwsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxjKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx1KX07aWYodC5hZGQoYVsyXSwwLFtbImVudGVyIixkLGVdXSksciE9PTIpe2xldCBoPWUuZXZlbnRzW2FbMl1dLGc9ZS5ldmVudHNbYVszXV07aWYoaFsxXS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxnWzFdLmVuZCksaFsxXS50eXBlPSJjaHVua1RleHQiLGhbMV0uY29udGVudFR5cGU9InRleHQiLGFbM10+YVsyXSsxKXtsZXQgYj1hWzJdKzEseD1hWzNdLWFbMl0tMTt0LmFkZChiLHgsW10pfX10LmFkZChhWzNdKzEsMCxbWyJleGl0IixkLGVdXSl9cmV0dXJuIGkhPT12b2lkIDAmJihvLmVuZD1PYmplY3QuYXNzaWduKHt9LEw2KGUuZXZlbnRzLGkpKSx0LmFkZChpLDAsW1siZXhpdCIsbyxlXV0pLG89dm9pZCAwKSxvfWZ1bmN0aW9uIHNLZSh0LGUsYSxyLGkpe2xldCBvPVtdLHM9TDYoZS5ldmVudHMsYSk7aSYmKGkuZW5kPU9iamVjdC5hc3NpZ24oe30scyksby5wdXNoKFsiZXhpdCIsaSxlXSkpLHIuZW5kPU9iamVjdC5hc3NpZ24oe30scyksby5wdXNoKFsiZXhpdCIscixlXSksdC5hZGQoYSsxLDAsbyl9ZnVuY3Rpb24gTDYodCxlKXtsZXQgYT10W2VdLHI9YVswXT09PSJlbnRlciI/InN0YXJ0IjoiZW5kIjtyZXR1cm4gYVsxXVtyXX12YXIgbktlPW4oKCk9PntDMSgpO2t0KCk7cktlKCk7b0tlKCl9KTt2YXIgbEtlPW4oKCk9PnthS2UoKTtuS2UoKX0pO2Z1bmN0aW9uIGZKKCl7cmV0dXJue2V4aXQ6e2h0bWxGbG93RGF0YSh0KXtkS2UuY2FsbCh0aGlzLHQsY0tlKX0saHRtbFRleHREYXRhKHQpe2RLZS5jYWxsKHRoaXMsdCxkZTEpfX19fWZ1bmN0aW9uIGRLZSh0LGUpe2xldCBhPXRoaXMuc2xpY2VTZXJpYWxpemUodCk7dGhpcy5vcHRpb25zLmFsbG93RGFuZ2Vyb3VzSHRtbCYmKGE9YS5yZXBsYWNlKGUsIiZsdDskMSQyIikpLHRoaXMucmF3KHRoaXMuZW5jb2RlKGEpKX12YXIgY0tlLGRlMSxmS2U9bigoKT0+e2NLZT0vPChcLz8pKGlmcmFtZXxub2VtYmVkfG5vZnJhbWVzfHBsYWludGV4dHxzY3JpcHR8c3R5bGV8dGl0bGV8dGV4dGFyZWF8eG1wKSg/PVtcdFxuXGZcciAvPl0pL2dpLGRlMT1uZXcgUmVnRXhwKCJeIitjS2Uuc291cmNlLCJpIil9KTt2YXIgdUtlPW4oKCk9PntmS2UoKX0pO2Z1bmN0aW9uIHVKKCl7cmV0dXJue2VudGVyOnt0YXNrTGlzdENoZWNrKCl7dGhpcy50YWcoJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGlzYWJsZWQ9IiIgJyl9fSxleGl0Ont0YXNrTGlzdENoZWNrKCl7dGhpcy50YWcoIi8+Iil9LHRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQoKXt0aGlzLnRhZygnY2hlY2tlZD0iIiAnKX19fX12YXIgcEtlPW4oKCk9Pnt9KTtmdW5jdGlvbiBwSigpe3JldHVybnt0ZXh0Ons5MTpmZTF9fX1mdW5jdGlvbiB1ZTEodCxlLGEpe2xldCByPXRoaXM7cmV0dXJuIGk7ZnVuY3Rpb24gaShmKXtyZXR1cm4gci5wcmV2aW91cyE9PW51bGx8fCFyLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0/YShmKToodC5lbnRlcigidGFza0xpc3RDaGVjayIpLHQuZW50ZXIoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSx0LmNvbnN1bWUoZiksdC5leGl0KCJ0YXNrTGlzdENoZWNrTWFya2VyIiksbyl9ZnVuY3Rpb24gbyhmKXtyZXR1cm4gd3QoZik/KHQuZW50ZXIoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLHQuY29uc3VtZShmKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLHMpOmY9PT04OHx8Zj09PTEyMD8odC5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLHQuY29uc3VtZShmKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiKSxzKTphKGYpfWZ1bmN0aW9uIHMoZil7cmV0dXJuIGY9PT05Mz8odC5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLHQuY29uc3VtZShmKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2siKSxsKTphKGYpfWZ1bmN0aW9uIGwoZil7cmV0dXJuIFBlKGYpP2UoZik6R2UoZik/dC5jaGVjayh7dG9rZW5pemU6cGUxfSxlLGEpKGYpOmEoZil9fWZ1bmN0aW9uIHBlMSh0LGUsYSl7cmV0dXJuIEplKHQsciwid2hpdGVzcGFjZSIpO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIGk9PT1udWxsP2EoaSk6ZShpKX19dmFyIGZlMSxoS2U9bigoKT0+e0MxKCk7a3QoKTtmZTE9e25hbWU6InRhc2tsaXN0Q2hlY2siLHRva2VuaXplOnVlMX19KTt2YXIgbUtlPW4oKCk9PntwS2UoKTtoS2UoKX0pO2Z1bmN0aW9uIGdLZSh0KXtyZXR1cm4geEgoW0lLKCksaUooKSxuSih0KSxkSigpLHBKKCldKX1mdW5jdGlvbiBDSzEodCl7cmV0dXJuIGJIKFtCSygpLG9KKHQpLHNKKCksY0ooKSxmSigpLHVKKCldKX12YXIgeEtlPW4oKCk9Pnt2SCgpO1NRZSgpO0tRZSgpO3RLZSgpO2xLZSgpO3VLZSgpO21LZSgpfSk7ZnVuY3Rpb24gVDYodCl7bGV0IGU9dGhpcyxhPXR8fGhlMSxyPWUuZGF0YSgpLGk9ci5taWNyb21hcmtFeHRlbnNpb25zfHwoci5taWNyb21hcmtFeHRlbnNpb25zPVtdKSxvPXIuZnJvbU1hcmtkb3duRXh0ZW5zaW9uc3x8KHIuZnJvbU1hcmtkb3duRXh0ZW5zaW9ucz1bXSkscz1yLnRvTWFya2Rvd25FeHRlbnNpb25zfHwoci50b01hcmtkb3duRXh0ZW5zaW9ucz1bXSk7aS5wdXNoKGdLZShhKSksby5wdXNoKCRLKCkpLHMucHVzaChESyhhKSl9dmFyIGhlMSxiS2U9bigoKT0+e2hRZSgpO3hLZSgpO2hlMT17fX0pO3ZhciB2S2U9bigoKT0+e2JLZSgpfSk7ZnVuY3Rpb24gaEoodCl7bGV0IGU9dHx8e30sYT0hMCxyPXt9LGk9W1tdXSxvPVtdLHM9W10sZj1iSChbe2VudGVyOntibG9ja1F1b3RlOlQsY29kZUZlbmNlZDphZSxjb2RlRmVuY2VkRmVuY2VJbmZvOm0sY29kZUZlbmNlZEZlbmNlTWV0YTptLGNvZGVJbmRlbnRlZDp6ZSxjb2RlVGV4dDpRLGNvbnRlbnQ6JGUsZGVmaW5pdGlvbjpPZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6QixkZWZpbml0aW9uTGFiZWxTdHJpbmc6bSxkZWZpbml0aW9uVGl0bGVTdHJpbmc6bSxlbXBoYXNpczp6dCxodG1sRmxvdzpIZSxodG1sVGV4dDppdCxpbWFnZTpOZSxsYWJlbDptLGxpbms6UmUsbGlzdEl0ZW1NYXJrZXI6TCxsaXN0SXRlbVZhbHVlOkgsbGlzdE9yZGVyZWQ6XyxsaXN0VW5vcmRlcmVkOiQscGFyYWdyYXBoOkEscmVmZXJlbmNlOm0scmVzb3VyY2U6RyxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOmoscmVzb3VyY2VUaXRsZVN0cmluZzptLHNldGV4dEhlYWRpbmc6cmUsc3Ryb25nOnF0fSxleGl0OnthdHhIZWFkaW5nOkVlLGF0eEhlYWRpbmdTZXF1ZW5jZTpuZSxhdXRvbGlua0VtYWlsOkpyLGF1dG9saW5rUHJvdG9jb2w6S3IsYmxvY2tRdW90ZTpSLGNoYXJhY3RlckVzY2FwZVZhbHVlOlosY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6bjEsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzpuMSxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTp2YSxjb2RlRmVuY2VkOlcsY29kZUZlbmNlZEZlbmNlOlNlLGNvZGVGZW5jZWRGZW5jZUluZm86Vixjb2RlRmVuY2VkRmVuY2VNZXRhOlAsY29kZUZsb3dWYWx1ZTpkZSxjb2RlSW5kZW50ZWQ6Vyxjb2RlVGV4dDpLLGNvZGVUZXh0RGF0YTpaLGRhdGE6WixkZWZpbml0aW9uOnllLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpvZSxkZWZpbml0aW9uTGFiZWxTdHJpbmc6VSxkZWZpbml0aW9uVGl0bGVTdHJpbmc6dmUsZW1waGFzaXM6YmUsaGFyZEJyZWFrRXNjYXBlOkFlLGhhcmRCcmVha1RyYWlsaW5nOkFlLGh0bWxGbG93Ok10LGh0bWxGbG93RGF0YTpaLGh0bWxUZXh0Ok10LGh0bWxUZXh0RGF0YTpaLGltYWdlOkRlLGxhYmVsOkksbGFiZWxUZXh0OlgsbGluZUVuZGluZzpKLGxpbms6RGUsbGlzdE9yZGVyZWQ6ayxsaXN0VW5vcmRlcmVkOk4scGFyYWdyYXBoOkYscmVmZXJlbmNlOlAscmVmZXJlbmNlU3RyaW5nOk8scmVzb3VyY2U6UCxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOnNlLHJlc291cmNlVGl0bGVTdHJpbmc6a2Usc2V0ZXh0SGVhZGluZzp1ZSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOnJ0LHNldGV4dEhlYWRpbmdUZXh0OmdlLHN0cm9uZzpvdCx0aGVtYXRpY0JyZWFrOm50fX0sLi4uZS5odG1sRXh0ZW5zaW9uc3x8W11dKSxjPXtkZWZpbml0aW9uczpyLHRpZ2h0U3RhY2s6c30sdT17YnVmZmVyOm0sZW5jb2RlOnosZ2V0RGF0YTp4LGxpbmVFbmRpbmdJZk5lZWRlZDpDLG9wdGlvbnM6ZSxyYXc6dyxyZXN1bWU6dixzZXREYXRhOmIsdGFnOnl9LGQ9ZS5kZWZhdWx0TGluZUVuZGluZztyZXR1cm4gaDtmdW5jdGlvbiBoKFRlKXtsZXQgamU9LTEsZzE9MCxLMT1bXSxmMj1bXSwkMj1bXTtmb3IoOysramU8VGUubGVuZ3RoOykhZCYmKFRlW2plXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxUZVtqZV1bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKSYmKGQ9VGVbamVdWzJdLnNsaWNlU2VyaWFsaXplKFRlW2plXVsxXSkpLChUZVtqZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fFRlW2plXVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQiKSYmKFRlW2plXVswXT09PSJlbnRlciI/SzEucHVzaChqZSk6ZyhUZS5zbGljZShLMS5wb3AoKSxqZSkpKSxUZVtqZV1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKFRlW2plXVswXT09PSJlbnRlciI/KCQyPUQxKCQyLFRlLnNsaWNlKGcxLGplKSksZzE9amUpOihmMj1EMShmMixUZS5zbGljZShnMSxqZSsxKSksZzE9amUrMSkpO2YyPUQxKGYyLCQyKSxmMj1EMShmMixUZS5zbGljZShnMSkpLGplPS0xO2xldCB1Mj1mMjtmb3IoZi5lbnRlci5udWxsJiZmLmVudGVyLm51bGwuY2FsbCh1KTsrK2plPFRlLmxlbmd0aDspe2xldCBpbz1mW3UyW2plXVswXV0sb289dTJbamVdWzFdLnR5cGUsc289aW9bb29dO3lLZS5jYWxsKGlvLG9vKSYmc28mJnNvLmNhbGwoe3NsaWNlU2VyaWFsaXplOnUyW2plXVsyXS5zbGljZVNlcmlhbGl6ZSwuLi51fSx1MltqZV1bMV0pfXJldHVybiBmLmV4aXQubnVsbCYmZi5leGl0Lm51bGwuY2FsbCh1KSxpWzBdLmpvaW4oIiIpfWZ1bmN0aW9uIGcoVGUpe2xldCBqZT1UZS5sZW5ndGgsZzE9MCxLMT0wLGYyPSExLCQyO2Zvcig7KytnMTxqZTspe2xldCB1Mj1UZVtnMV07aWYodTJbMV0uX2NvbnRhaW5lcikkMj12b2lkIDAsdTJbMF09PT0iZW50ZXIiP0sxKys6SzEtLTtlbHNlIHN3aXRjaCh1MlsxXS50eXBlKXtjYXNlImxpc3RJdGVtUHJlZml4Ijp7dTJbMF09PT0iZXhpdCImJigkMj0hMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpicmVhaztjYXNlImxpbmVFbmRpbmdCbGFuayI6e3UyWzBdPT09ImVudGVyIiYmIUsxJiYoJDI/JDI9dm9pZCAwOmYyPSEwKTticmVha31kZWZhdWx0OiQyPXZvaWQgMH19VGVbMF1bMV0uX2xvb3NlPWYyfWZ1bmN0aW9uIGIoVGUsamUpe2NbVGVdPWplfWZ1bmN0aW9uIHgoVGUpe3JldHVybiBjW1RlXX1mdW5jdGlvbiBtKCl7aS5wdXNoKFtdKX1mdW5jdGlvbiB2KCl7cmV0dXJuIGkucG9wKCkuam9pbigiIil9ZnVuY3Rpb24geShUZSl7YSYmKGIoImxhc3RXYXNUYWciLCEwKSxpW2kubGVuZ3RoLTFdLnB1c2goVGUpKX1mdW5jdGlvbiB3KFRlKXtiKCJsYXN0V2FzVGFnIiksaVtpLmxlbmd0aC0xXS5wdXNoKFRlKX1mdW5jdGlvbiBFKCl7dyhkfHxgCmApfWZ1bmN0aW9uIEMoKXtsZXQgVGU9aVtpLmxlbmd0aC0xXSxqZT1UZVtUZS5sZW5ndGgtMV0sZzE9amU/amUuY2hhckNvZGVBdChqZS5sZW5ndGgtMSk6bnVsbDtnMT09PTEwfHxnMT09PTEzfHxnMT09PW51bGx8fEUoKX1mdW5jdGlvbiB6KFRlKXtyZXR1cm4geCgiaWdub3JlRW5jb2RlIik/VGU6eUgoVGUpfWZ1bmN0aW9uIFAoKXt2KCl9ZnVuY3Rpb24gXyhUZSl7cy5wdXNoKCFUZS5fbG9vc2UpLEMoKSx5KCI8b2wiKSxiKCJleHBlY3RGaXJzdEl0ZW0iLCEwKX1mdW5jdGlvbiAkKFRlKXtzLnB1c2goIVRlLl9sb29zZSksQygpLHkoIjx1bCIpLGIoImV4cGVjdEZpcnN0SXRlbSIsITApfWZ1bmN0aW9uIEgoVGUpe2lmKHgoImV4cGVjdEZpcnN0SXRlbSIpKXtsZXQgamU9TnVtYmVyLnBhcnNlSW50KHRoaXMuc2xpY2VTZXJpYWxpemUoVGUpLDEwKTtqZSE9PTEmJnkoJyBzdGFydD0iJyt6KFN0cmluZyhqZSkpKyciJyl9fWZ1bmN0aW9uIEwoKXt4KCJleHBlY3RGaXJzdEl0ZW0iKT95KCI+Iik6UygpLEMoKSx5KCI8bGk+IiksYigiZXhwZWN0Rmlyc3RJdGVtIiksYigibGFzdFdhc1RhZyIpfWZ1bmN0aW9uIGsoKXtTKCkscy5wb3AoKSxFKCkseSgiPC9vbD4iKX1mdW5jdGlvbiBOKCl7UygpLHMucG9wKCksRSgpLHkoIjwvdWw+Iil9ZnVuY3Rpb24gUygpe3goImxhc3RXYXNUYWciKSYmIXgoInNsdXJwQWxsTGluZUVuZGluZ3MiKSYmQygpLHkoIjwvbGk+IiksYigic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIFQoKXtzLnB1c2goITEpLEMoKSx5KCI8YmxvY2txdW90ZT4iKX1mdW5jdGlvbiBSKCl7cy5wb3AoKSxDKCkseSgiPC9ibG9ja3F1b3RlPiIpLGIoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBBKCl7c1tzLmxlbmd0aC0xXXx8KEMoKSx5KCI8cD4iKSksYigic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIEYoKXtzW3MubGVuZ3RoLTFdP2IoInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKTp5KCI8L3A+Iil9ZnVuY3Rpb24gYWUoKXtDKCkseSgiPHByZT48Y29kZSIpLGIoImZlbmNlc0NvdW50IiwwKX1mdW5jdGlvbiBWKCl7bGV0IFRlPXYoKTt5KCcgY2xhc3M9Imxhbmd1YWdlLScrVGUrJyInKX1mdW5jdGlvbiBTZSgpe2xldCBUZT14KCJmZW5jZXNDb3VudCIpfHwwO1RlfHwoeSgiPiIpLGIoInNsdXJwT25lTGluZUVuZGluZyIsITApKSxiKCJmZW5jZXNDb3VudCIsVGUrMSl9ZnVuY3Rpb24gemUoKXtDKCkseSgiPHByZT48Y29kZT4iKX1mdW5jdGlvbiBXKCl7bGV0IFRlPXgoImZlbmNlc0NvdW50Iik7VGUhPT12b2lkIDAmJlRlPDImJmMudGlnaHRTdGFjay5sZW5ndGg+MCYmIXgoImxhc3RXYXNUYWciKSYmRSgpLHgoImZsb3dDb2RlU2VlbkRhdGEiKSYmQygpLHkoIjwvY29kZT48L3ByZT4iKSxUZSE9PXZvaWQgMCYmVGU8MiYmQygpLGIoImZsb3dDb2RlU2VlbkRhdGEiKSxiKCJmZW5jZXNDb3VudCIpLGIoInNsdXJwT25lTGluZUVuZGluZyIpfWZ1bmN0aW9uIE5lKCl7by5wdXNoKHtpbWFnZTohMH0pLGE9dm9pZCAwfWZ1bmN0aW9uIFJlKCl7by5wdXNoKHt9KX1mdW5jdGlvbiBYKFRlKXtvW28ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShUZSl9ZnVuY3Rpb24gSSgpe29bby5sZW5ndGgtMV0ubGFiZWw9digpfWZ1bmN0aW9uIE8oVGUpe29bby5sZW5ndGgtMV0ucmVmZXJlbmNlSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShUZSl9ZnVuY3Rpb24gRygpe20oKSxvW28ubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPSIifWZ1bmN0aW9uIGooKXttKCksYigiaWdub3JlRW5jb2RlIiwhMCl9ZnVuY3Rpb24gc2UoKXtvW28ubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPXYoKSxiKCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBrZSgpe29bby5sZW5ndGgtMV0udGl0bGU9digpfWZ1bmN0aW9uIERlKCl7bGV0IFRlPW8ubGVuZ3RoLTEsamU9b1tUZV0sZzE9amUucmVmZXJlbmNlSWR8fGplLmxhYmVsSWQsSzE9amUuZGVzdGluYXRpb249PT12b2lkIDA/clt3MShnMSldOmplO2ZvcihhPSEwO1RlLS07KWlmKG9bVGVdLmltYWdlKXthPXZvaWQgMDticmVha31qZS5pbWFnZT8oeSgnPGltZyBzcmM9IicrRnIoSzEuZGVzdGluYXRpb24sZS5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDptZTEpKyciIGFsdD0iJyksdyhqZS5sYWJlbCkseSgnIicpKTp5KCc8YSBocmVmPSInK0ZyKEsxLmRlc3RpbmF0aW9uLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6d0tlKSsnIicpLHkoSzEudGl0bGU/JyB0aXRsZT0iJytLMS50aXRsZSsnIic6IiIpLGplLmltYWdlP3koIiAvPiIpOih5KCI+IiksdyhqZS5sYWJlbCkseSgiPC9hPiIpKSxvLnBvcCgpfWZ1bmN0aW9uIE9lKCl7bSgpLG8ucHVzaCh7fSl9ZnVuY3Rpb24gVShUZSl7digpLG9bby5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKFRlKX1mdW5jdGlvbiBCKCl7bSgpLGIoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIG9lKCl7b1tvLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj12KCksYigiaWdub3JlRW5jb2RlIil9ZnVuY3Rpb24gdmUoKXtvW28ubGVuZ3RoLTFdLnRpdGxlPXYoKX1mdW5jdGlvbiB5ZSgpe2xldCBUZT1vW28ubGVuZ3RoLTFdLGplPXcxKFRlLmxhYmVsSWQpO3YoKSx5S2UuY2FsbChyLGplKXx8KHJbamVdPW9bby5sZW5ndGgtMV0pLG8ucG9wKCl9ZnVuY3Rpb24gJGUoKXtiKCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCl9ZnVuY3Rpb24gbmUoVGUpe3goImhlYWRpbmdSYW5rIil8fChiKCJoZWFkaW5nUmFuayIsdGhpcy5zbGljZVNlcmlhbGl6ZShUZSkubGVuZ3RoKSxDKCkseSgiPGgiK3goImhlYWRpbmdSYW5rIikrIj4iKSl9ZnVuY3Rpb24gcmUoKXttKCksYigic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIGdlKCl7Yigic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIEVlKCl7eSgiPC9oIit4KCJoZWFkaW5nUmFuayIpKyI+IiksYigiaGVhZGluZ1JhbmsiKX1mdW5jdGlvbiBydChUZSl7YigiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoVGUpLmNoYXJDb2RlQXQoMCk9PT02MT8xOjIpfWZ1bmN0aW9uIHVlKCl7bGV0IFRlPXYoKTtDKCkseSgiPGgiK3goImhlYWRpbmdSYW5rIikrIj4iKSx3KFRlKSx5KCI8L2giK3goImhlYWRpbmdSYW5rIikrIj4iKSxiKCJzbHVycEFsbExpbmVFbmRpbmdzIiksYigiaGVhZGluZ1JhbmsiKX1mdW5jdGlvbiBaKFRlKXt3KHoodGhpcy5zbGljZVNlcmlhbGl6ZShUZSkpKX1mdW5jdGlvbiBKKFRlKXtpZigheCgic2x1cnBBbGxMaW5lRW5kaW5ncyIpKXtpZih4KCJzbHVycE9uZUxpbmVFbmRpbmciKSl7Yigic2x1cnBPbmVMaW5lRW5kaW5nIik7cmV0dXJufWlmKHgoImluQ29kZVRleHQiKSl7dygiICIpO3JldHVybn13KHoodGhpcy5zbGljZVNlcmlhbGl6ZShUZSkpKX19ZnVuY3Rpb24gZGUoVGUpe3coeih0aGlzLnNsaWNlU2VyaWFsaXplKFRlKSkpLGIoImZsb3dDb2RlU2VlbkRhdGEiLCEwKX1mdW5jdGlvbiBBZSgpe3koIjxiciAvPiIpfWZ1bmN0aW9uIEhlKCl7QygpLGl0KCl9ZnVuY3Rpb24gTXQoKXtiKCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBpdCgpe2UuYWxsb3dEYW5nZXJvdXNIdG1sJiZiKCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiB6dCgpe3koIjxlbT4iKX1mdW5jdGlvbiBxdCgpe3koIjxzdHJvbmc+Iil9ZnVuY3Rpb24gUSgpe2IoImluQ29kZVRleHQiLCEwKSx5KCI8Y29kZT4iKX1mdW5jdGlvbiBLKCl7YigiaW5Db2RlVGV4dCIpLHkoIjwvY29kZT4iKX1mdW5jdGlvbiBiZSgpe3koIjwvZW0+Iil9ZnVuY3Rpb24gb3QoKXt5KCI8L3N0cm9uZz4iKX1mdW5jdGlvbiBudCgpe0MoKSx5KCI8aHIgLz4iKX1mdW5jdGlvbiBuMShUZSl7YigiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIsVGUudHlwZSl9ZnVuY3Rpb24gdmEoVGUpe2xldCBqZT10aGlzLnNsaWNlU2VyaWFsaXplKFRlKSxnMT14KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIik/QzYoamUseCgiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KTpIbyhqZSk7dyh6KGcxKSksYigiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpfWZ1bmN0aW9uIEtyKFRlKXtsZXQgamU9dGhpcy5zbGljZVNlcmlhbGl6ZShUZSk7eSgnPGEgaHJlZj0iJytGcihqZSxlLmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOndLZSkrJyI+Jyksdyh6KGplKSkseSgiPC9hPiIpfWZ1bmN0aW9uIEpyKFRlKXtsZXQgamU9dGhpcy5zbGljZVNlcmlhbGl6ZShUZSk7eSgnPGEgaHJlZj0iJytGcigibWFpbHRvOiIramUpKyciPicpLHcoeihqZSkpLHkoIjwvYT4iKX19dmFyIHlLZSx3S2UsbWUxLG1KPW4oKCk9PntjZCgpO1ByKCk7dkgoKTtoSCgpO0ZLKCk7Um8oKTtPcigpO3lLZT17fS5oYXNPd25Qcm9wZXJ0eSx3S2U9L14oaHR0cHM/fGlyY3M/fG1haWx0b3x4bXBwKSQvaSxtZTE9L15odHRwcz8kL2l9KTtmdW5jdGlvbiBnZTEodCl7bGV0IGU9dC5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuY29udGVudEluaXRpYWwscixpKSxhO3JldHVybiBlO2Z1bmN0aW9uIHIobCl7aWYobD09PW51bGwpe3QuY29uc3VtZShsKTtyZXR1cm59cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUobCksdC5leGl0KCJsaW5lRW5kaW5nIiksSmUodCxlLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gaShsKXtyZXR1cm4gdC5lbnRlcigicGFyYWdyYXBoIiksbyhsKX1mdW5jdGlvbiBvKGwpe2xldCBmPXQuZW50ZXIoImNodW5rVGV4dCIse2NvbnRlbnRUeXBlOiJ0ZXh0IixwcmV2aW91czphfSk7cmV0dXJuIGEmJihhLm5leHQ9ZiksYT1mLHMobCl9ZnVuY3Rpb24gcyhsKXtpZihsPT09bnVsbCl7dC5leGl0KCJjaHVua1RleHQiKSx0LmV4aXQoInBhcmFncmFwaCIpLHQuY29uc3VtZShsKTtyZXR1cm59cmV0dXJuIFBlKGwpPyh0LmNvbnN1bWUobCksdC5leGl0KCJjaHVua1RleHQiKSxvKToodC5jb25zdW1lKGwpLHMpfX12YXIgTUtlLHpLZT1uKCgpPT57QzEoKTtrdCgpO01LZT17dG9rZW5pemU6Z2UxfX0pO2Z1bmN0aW9uIHhlMSh0KXtsZXQgZT10aGlzLGE9W10scj0wLGksbyxzO3JldHVybiBsO2Z1bmN0aW9uIGwodyl7aWYocjxhLmxlbmd0aCl7bGV0IEU9YVtyXTtyZXR1cm4gZS5jb250YWluZXJTdGF0ZT1FWzFdLHQuYXR0ZW1wdChFWzBdLmNvbnRpbnVhdGlvbixmLGMpKHcpfXJldHVybiBjKHcpfWZ1bmN0aW9uIGYodyl7aWYocisrLGUuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdyl7ZS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCxpJiZ5KCk7bGV0IEU9ZS5ldmVudHMubGVuZ3RoLEM9RSx6O2Zvcig7Qy0tOylpZihlLmV2ZW50c1tDXVswXT09PSJleGl0IiYmZS5ldmVudHNbQ11bMV0udHlwZT09PSJjaHVua0Zsb3ciKXt6PWUuZXZlbnRzW0NdWzFdLmVuZDticmVha312KHIpO2xldCBQPUU7Zm9yKDtQPGUuZXZlbnRzLmxlbmd0aDspZS5ldmVudHNbUF1bMV0uZW5kPXsuLi56fSxQKys7cmV0dXJuIFMxKGUuZXZlbnRzLEMrMSwwLGUuZXZlbnRzLnNsaWNlKEUpKSxlLmV2ZW50cy5sZW5ndGg9UCxjKHcpfXJldHVybiBsKHcpfWZ1bmN0aW9uIGModyl7aWYocj09PWEubGVuZ3RoKXtpZighaSlyZXR1cm4gaCh3KTtpZihpLmN1cnJlbnRDb25zdHJ1Y3QmJmkuY3VycmVudENvbnN0cnVjdC5jb25jcmV0ZSlyZXR1cm4gYih3KTtlLmludGVycnVwdD0hIShpLmN1cnJlbnRDb25zdHJ1Y3QmJiFpLl9nZm1UYWJsZUR5bmFtaWNJbnRlcnJ1cHRIYWNrKX1yZXR1cm4gZS5jb250YWluZXJTdGF0ZT17fSx0LmNoZWNrKGtLZSx1LGQpKHcpfWZ1bmN0aW9uIHUodyl7cmV0dXJuIGkmJnkoKSx2KHIpLGgodyl9ZnVuY3Rpb24gZCh3KXtyZXR1cm4gZS5wYXJzZXIubGF6eVtlLm5vdygpLmxpbmVdPXIhPT1hLmxlbmd0aCxzPWUubm93KCkub2Zmc2V0LGIodyl9ZnVuY3Rpb24gaCh3KXtyZXR1cm4gZS5jb250YWluZXJTdGF0ZT17fSx0LmF0dGVtcHQoa0tlLGcsYikodyl9ZnVuY3Rpb24gZyh3KXtyZXR1cm4gcisrLGEucHVzaChbZS5jdXJyZW50Q29uc3RydWN0LGUuY29udGFpbmVyU3RhdGVdKSxoKHcpfWZ1bmN0aW9uIGIodyl7aWYodz09PW51bGwpe2kmJnkoKSx2KDApLHQuY29uc3VtZSh3KTtyZXR1cm59cmV0dXJuIGk9aXx8ZS5wYXJzZXIuZmxvdyhlLm5vdygpKSx0LmVudGVyKCJjaHVua0Zsb3ciLHtfdG9rZW5pemVyOmksY29udGVudFR5cGU6ImZsb3ciLHByZXZpb3VzOm99KSx4KHcpfWZ1bmN0aW9uIHgodyl7aWYodz09PW51bGwpe20odC5leGl0KCJjaHVua0Zsb3ciKSwhMCksdigwKSx0LmNvbnN1bWUodyk7cmV0dXJufXJldHVybiBQZSh3KT8odC5jb25zdW1lKHcpLG0odC5leGl0KCJjaHVua0Zsb3ciKSkscj0wLGUuaW50ZXJydXB0PXZvaWQgMCxsKToodC5jb25zdW1lKHcpLHgpfWZ1bmN0aW9uIG0odyxFKXtsZXQgQz1lLnNsaWNlU3RyZWFtKHcpO2lmKEUmJkMucHVzaChudWxsKSx3LnByZXZpb3VzPW8sbyYmKG8ubmV4dD13KSxvPXcsaS5kZWZpbmVTa2lwKHcuc3RhcnQpLGkud3JpdGUoQyksZS5wYXJzZXIubGF6eVt3LnN0YXJ0LmxpbmVdKXtsZXQgej1pLmV2ZW50cy5sZW5ndGg7Zm9yKDt6LS07KWlmKGkuZXZlbnRzW3pdWzFdLnN0YXJ0Lm9mZnNldDxzJiYoIWkuZXZlbnRzW3pdWzFdLmVuZHx8aS5ldmVudHNbel1bMV0uZW5kLm9mZnNldD5zKSlyZXR1cm47bGV0IFA9ZS5ldmVudHMubGVuZ3RoLF89UCwkLEg7Zm9yKDtfLS07KWlmKGUuZXZlbnRzW19dWzBdPT09ImV4aXQiJiZlLmV2ZW50c1tfXVsxXS50eXBlPT09ImNodW5rRmxvdyIpe2lmKCQpe0g9ZS5ldmVudHNbX11bMV0uZW5kO2JyZWFrfSQ9ITB9Zm9yKHYociksej1QO3o8ZS5ldmVudHMubGVuZ3RoOyllLmV2ZW50c1t6XVsxXS5lbmQ9ey4uLkh9LHorKztTMShlLmV2ZW50cyxfKzEsMCxlLmV2ZW50cy5zbGljZShQKSksZS5ldmVudHMubGVuZ3RoPXp9fWZ1bmN0aW9uIHYodyl7bGV0IEU9YS5sZW5ndGg7Zm9yKDtFLS0gPnc7KXtsZXQgQz1hW0VdO2UuY29udGFpbmVyU3RhdGU9Q1sxXSxDWzBdLmV4aXQuY2FsbChlLHQpfWEubGVuZ3RoPXd9ZnVuY3Rpb24geSgpe2kud3JpdGUoW251bGxdKSxvPXZvaWQgMCxpPXZvaWQgMCxlLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwfX1mdW5jdGlvbiBiZTEodCxlLGEpe3JldHVybiBKZSh0LHQuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRvY3VtZW50LGUsYSksImxpbmVQcmVmaXgiLHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCl9dmFyIFNLZSxrS2UsQ0tlPW4oKCk9PntDMSgpO2t0KCk7UHIoKTtTS2U9e3Rva2VuaXplOnhlMX0sa0tlPXt0b2tlbml6ZTpiZTF9fSk7ZnVuY3Rpb24gdmUxKHQpe2xldCBlPXRoaXMsYT10LmF0dGVtcHQoQnIscix0LmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93SW5pdGlhbCxpLEplKHQsdC5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxpLHQuYXR0ZW1wdChVSyxpKSksImxpbmVQcmVmaXgiKSkpO3JldHVybiBhO2Z1bmN0aW9uIHIobyl7aWYobz09PW51bGwpe3QuY29uc3VtZShvKTtyZXR1cm59cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmdCbGFuayIpLHQuY29uc3VtZShvKSx0LmV4aXQoImxpbmVFbmRpbmdCbGFuayIpLGUuY3VycmVudENvbnN0cnVjdD12b2lkIDAsYX1mdW5jdGlvbiBpKG8pe2lmKG89PT1udWxsKXt0LmNvbnN1bWUobyk7cmV0dXJufXJldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG8pLHQuZXhpdCgibGluZUVuZGluZyIpLGUuY3VycmVudENvbnN0cnVjdD12b2lkIDAsYX19dmFyIExLZSxUS2U9bigoKT0+e0RIKCk7QzEoKTtrdCgpO0xLZT17dG9rZW5pemU6dmUxfX0pO2Z1bmN0aW9uIF9LZSh0KXtyZXR1cm57cmVzb2x2ZUFsbDpBS2UodD09PSJ0ZXh0Ij95ZTE6dm9pZCAwKSx0b2tlbml6ZTplfTtmdW5jdGlvbiBlKGEpe2xldCByPXRoaXMsaT10aGlzLnBhcnNlci5jb25zdHJ1Y3RzW3RdLG89YS5hdHRlbXB0KGkscyxsKTtyZXR1cm4gcztmdW5jdGlvbiBzKHUpe3JldHVybiBjKHUpP28odSk6bCh1KX1mdW5jdGlvbiBsKHUpe2lmKHU9PT1udWxsKXthLmNvbnN1bWUodSk7cmV0dXJufXJldHVybiBhLmVudGVyKCJkYXRhIiksYS5jb25zdW1lKHUpLGZ9ZnVuY3Rpb24gZih1KXtyZXR1cm4gYyh1KT8oYS5leGl0KCJkYXRhIiksbyh1KSk6KGEuY29uc3VtZSh1KSxmKX1mdW5jdGlvbiBjKHUpe2lmKHU9PT1udWxsKXJldHVybiEwO2xldCBkPWlbdV0saD0tMTtpZihkKWZvcig7KytoPGQubGVuZ3RoOyl7bGV0IGc9ZFtoXTtpZighZy5wcmV2aW91c3x8Zy5wcmV2aW91cy5jYWxsKHIsci5wcmV2aW91cykpcmV0dXJuITB9cmV0dXJuITF9fX1mdW5jdGlvbiBBS2UodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShhLHIpe2xldCBpPS0xLG87Zm9yKDsrK2k8PWEubGVuZ3RoOylvPT09dm9pZCAwP2FbaV0mJmFbaV1bMV0udHlwZT09PSJkYXRhIiYmKG89aSxpKyspOighYVtpXXx8YVtpXVsxXS50eXBlIT09ImRhdGEiKSYmKGkhPT1vKzImJihhW29dWzFdLmVuZD1hW2ktMV1bMV0uZW5kLGEuc3BsaWNlKG8rMixpLW8tMiksaT1vKzIpLG89dm9pZCAwKTtyZXR1cm4gdD90KGEscik6YX19ZnVuY3Rpb24geWUxKHQsZSl7bGV0IGE9MDtmb3IoOysrYTw9dC5sZW5ndGg7KWlmKChhPT09dC5sZW5ndGh8fHRbYV1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJnRbYS0xXVsxXS50eXBlPT09ImRhdGEiKXtsZXQgcj10W2EtMV1bMV0saT1lLnNsaWNlU3RyZWFtKHIpLG89aS5sZW5ndGgscz0tMSxsPTAsZjtmb3IoO28tLTspe2xldCBjPWlbb107aWYodHlwZW9mIGM9PSJzdHJpbmciKXtmb3Iocz1jLmxlbmd0aDtjLmNoYXJDb2RlQXQocy0xKT09PTMyOylsKysscy0tO2lmKHMpYnJlYWs7cz0tMX1lbHNlIGlmKGM9PT0tMilmPSEwLGwrKztlbHNlIGlmKGMhPT0tMSl7bysrO2JyZWFrfX1pZihlLl9jb250ZW50VHlwZVRleHRUcmFpbGluZyYmYT09PXQubGVuZ3RoJiYobD0wKSxsKXtsZXQgYz17dHlwZTphPT09dC5sZW5ndGh8fGZ8fGw8Mj8ibGluZVN1ZmZpeCI6ImhhcmRCcmVha1RyYWlsaW5nIixzdGFydDp7X2J1ZmZlckluZGV4Om8/czpyLnN0YXJ0Ll9idWZmZXJJbmRleCtzLF9pbmRleDpyLnN0YXJ0Ll9pbmRleCtvLGxpbmU6ci5lbmQubGluZSxjb2x1bW46ci5lbmQuY29sdW1uLWwsb2Zmc2V0OnIuZW5kLm9mZnNldC1sfSxlbmQ6ey4uLnIuZW5kfX07ci5lbmQ9ey4uLmMuc3RhcnR9LHIuc3RhcnQub2Zmc2V0PT09ci5lbmQub2Zmc2V0P09iamVjdC5hc3NpZ24ocixjKToodC5zcGxpY2UoYSwwLFsiZW50ZXIiLGMsZV0sWyJleGl0IixjLGVdKSxhKz0yKX1hKyt9cmV0dXJuIHR9dmFyICRLZSxES2UsRUtlLGdKPW4oKCk9PnskS2U9e3Jlc29sdmVBbGw6QUtlKCl9LERLZT1fS2UoInN0cmluZyIpLEVLZT1fS2UoInRleHQiKX0pO3ZhciB4Sj17fTtldCh4Six7YXR0ZW50aW9uTWFya2VyczooKT0+VGUxLGNvbnRlbnRJbml0aWFsOigpPT5NZTEsZGlzYWJsZTooKT0+X2UxLGRvY3VtZW50OigpPT53ZTEsZmxvdzooKT0+a2UxLGZsb3dJbml0aWFsOigpPT56ZTEsaW5zaWRlU3BhbjooKT0+TGUxLHN0cmluZzooKT0+U2UxLHRleHQ6KCk9PkNlMX0pO3ZhciB3ZTEsTWUxLHplMSxrZTEsU2UxLENlMSxMZTEsVGUxLF9lMSxOS2U9bigoKT0+e0RIKCk7Z0ooKTt3ZTE9ezQyOmsyLDQzOmsyLDQ1OmsyLDQ4OmsyLDQ5OmsyLDUwOmsyLDUxOmsyLDUyOmsyLDUzOmsyLDU0OmsyLDU1OmsyLDU2OmsyLDU3OmsyLDYyOk1IfSxNZTE9ezkxOlpLfSx6ZTE9e1stMl06dWQsWy0xXTp1ZCwzMjp1ZH0sa2UxPXszNTpRSyw0Mjp4biw0NTpbJEgseG5dLDYwOkpLLDYxOiRILDk1OnhuLDk2OlNILDEyNjpTSH0sU2UxPXszODprSCw5Mjp6SH0sQ2UxPXtbLTVdOm1kLFstNF06bWQsWy0zXTptZCwzMzp0SiwzODprSCw0MjpmZCw2MDpbUkssZUpdLDkxOmFKLDkyOltYSyx6SF0sOTM6Z24sOTU6ZmQsOTY6SEt9LExlMT17bnVsbDpbZmQsJEtlXX0sVGUxPXtudWxsOls0Miw5NV19LF9lMT17bnVsbDpbXX19KTtmdW5jdGlvbiBQS2UodCxlLGEpe2xldCByPXtfYnVmZmVySW5kZXg6LTEsX2luZGV4OjAsbGluZTphJiZhLmxpbmV8fDEsY29sdW1uOmEmJmEuY29sdW1ufHwxLG9mZnNldDphJiZhLm9mZnNldHx8MH0saT17fSxvPVtdLHM9W10sbD1bXSxmPSEwLGM9e2F0dGVtcHQ6JChQKSxjaGVjazokKF8pLGNvbnN1bWU6RSxlbnRlcjpDLGV4aXQ6eixpbnRlcnJ1cHQ6JChfLHtpbnRlcnJ1cHQ6ITB9KX0sdT17Y29kZTpudWxsLGNvbnRhaW5lclN0YXRlOnt9LGRlZmluZVNraXA6dixldmVudHM6W10sbm93Om0scGFyc2VyOnQscHJldmlvdXM6bnVsbCxzbGljZVNlcmlhbGl6ZTpiLHNsaWNlU3RyZWFtOngsd3JpdGU6Z30sZD1lLnRva2VuaXplLmNhbGwodSxjKSxoO3JldHVybiBlLnJlc29sdmVBbGwmJm8ucHVzaChlKSx1O2Z1bmN0aW9uIGcoTil7cmV0dXJuIHM9RDEocyxOKSx5KCksc1tzLmxlbmd0aC0xXSE9PW51bGw/W106KEgoZSwwKSx1LmV2ZW50cz1xbyhvLHUuZXZlbnRzLHUpLHUuZXZlbnRzKX1mdW5jdGlvbiBiKE4sUyl7cmV0dXJuICRlMSh4KE4pLFMpfWZ1bmN0aW9uIHgoTil7cmV0dXJuIEFlMShzLE4pfWZ1bmN0aW9uIG0oKXtsZXR7X2J1ZmZlckluZGV4Ok4sX2luZGV4OlMsbGluZTpULGNvbHVtbjpSLG9mZnNldDpBfT1yO3JldHVybntfYnVmZmVySW5kZXg6TixfaW5kZXg6UyxsaW5lOlQsY29sdW1uOlIsb2Zmc2V0OkF9fWZ1bmN0aW9uIHYoTil7aVtOLmxpbmVdPU4uY29sdW1uLGsoKX1mdW5jdGlvbiB5KCl7bGV0IE47Zm9yKDtyLl9pbmRleDxzLmxlbmd0aDspe2xldCBTPXNbci5faW5kZXhdO2lmKHR5cGVvZiBTPT0ic3RyaW5nIilmb3IoTj1yLl9pbmRleCxyLl9idWZmZXJJbmRleDwwJiYoci5fYnVmZmVySW5kZXg9MCk7ci5faW5kZXg9PT1OJiZyLl9idWZmZXJJbmRleDxTLmxlbmd0aDspdyhTLmNoYXJDb2RlQXQoci5fYnVmZmVySW5kZXgpKTtlbHNlIHcoUyl9fWZ1bmN0aW9uIHcoTil7Zj12b2lkIDAsaD1OLGQ9ZChOKX1mdW5jdGlvbiBFKE4pe1BlKE4pPyhyLmxpbmUrKyxyLmNvbHVtbj0xLHIub2Zmc2V0Kz1OPT09LTM/MjoxLGsoKSk6TiE9PS0xJiYoci5jb2x1bW4rKyxyLm9mZnNldCsrKSxyLl9idWZmZXJJbmRleDwwP3IuX2luZGV4Kys6KHIuX2J1ZmZlckluZGV4Kyssci5fYnVmZmVySW5kZXg9PT1zW3IuX2luZGV4XS5sZW5ndGgmJihyLl9idWZmZXJJbmRleD0tMSxyLl9pbmRleCsrKSksdS5wcmV2aW91cz1OLGY9ITB9ZnVuY3Rpb24gQyhOLFMpe2xldCBUPVN8fHt9O3JldHVybiBULnR5cGU9TixULnN0YXJ0PW0oKSx1LmV2ZW50cy5wdXNoKFsiZW50ZXIiLFQsdV0pLGwucHVzaChUKSxUfWZ1bmN0aW9uIHooTil7bGV0IFM9bC5wb3AoKTtyZXR1cm4gUy5lbmQ9bSgpLHUuZXZlbnRzLnB1c2goWyJleGl0IixTLHVdKSxTfWZ1bmN0aW9uIFAoTixTKXtIKE4sUy5mcm9tKX1mdW5jdGlvbiBfKE4sUyl7Uy5yZXN0b3JlKCl9ZnVuY3Rpb24gJChOLFMpe3JldHVybiBUO2Z1bmN0aW9uIFQoUixBLEYpe2xldCBhZSxWLFNlLHplO3JldHVybiBBcnJheS5pc0FycmF5KFIpP05lKFIpOiJ0b2tlbml6ZSJpbiBSP05lKFtSXSk6VyhSKTtmdW5jdGlvbiBXKE8pe3JldHVybiBHO2Z1bmN0aW9uIEcoail7bGV0IHNlPWohPT1udWxsJiZPW2pdLGtlPWohPT1udWxsJiZPLm51bGwsRGU9Wy4uLkFycmF5LmlzQXJyYXkoc2UpP3NlOnNlP1tzZV06W10sLi4uQXJyYXkuaXNBcnJheShrZSk/a2U6a2U/W2tlXTpbXV07cmV0dXJuIE5lKERlKShqKX19ZnVuY3Rpb24gTmUoTyl7cmV0dXJuIGFlPU8sVj0wLE8ubGVuZ3RoPT09MD9GOlJlKE9bVl0pfWZ1bmN0aW9uIFJlKE8pe3JldHVybiBHO2Z1bmN0aW9uIEcoail7cmV0dXJuIHplPUwoKSxTZT1PLE8ucGFydGlhbHx8KHUuY3VycmVudENvbnN0cnVjdD1PKSxPLm5hbWUmJnUucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKE8ubmFtZSk/SShqKTpPLnRva2VuaXplLmNhbGwoUz9PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUodSksUyk6dSxjLFgsSSkoail9fWZ1bmN0aW9uIFgoTyl7cmV0dXJuIGY9ITAsTihTZSx6ZSksQX1mdW5jdGlvbiBJKE8pe3JldHVybiBmPSEwLHplLnJlc3RvcmUoKSwrK1Y8YWUubGVuZ3RoP1JlKGFlW1ZdKTpGfX19ZnVuY3Rpb24gSChOLFMpe04ucmVzb2x2ZUFsbCYmIW8uaW5jbHVkZXMoTikmJm8ucHVzaChOKSxOLnJlc29sdmUmJlMxKHUuZXZlbnRzLFMsdS5ldmVudHMubGVuZ3RoLVMsTi5yZXNvbHZlKHUuZXZlbnRzLnNsaWNlKFMpLHUpKSxOLnJlc29sdmVUbyYmKHUuZXZlbnRzPU4ucmVzb2x2ZVRvKHUuZXZlbnRzLHUpKX1mdW5jdGlvbiBMKCl7bGV0IE49bSgpLFM9dS5wcmV2aW91cyxUPXUuY3VycmVudENvbnN0cnVjdCxSPXUuZXZlbnRzLmxlbmd0aCxBPUFycmF5LmZyb20obCk7cmV0dXJue2Zyb206UixyZXN0b3JlOkZ9O2Z1bmN0aW9uIEYoKXtyPU4sdS5wcmV2aW91cz1TLHUuY3VycmVudENvbnN0cnVjdD1ULHUuZXZlbnRzLmxlbmd0aD1SLGw9QSxrKCl9fWZ1bmN0aW9uIGsoKXtyLmxpbmUgaW4gaSYmci5jb2x1bW48MiYmKHIuY29sdW1uPWlbci5saW5lXSxyLm9mZnNldCs9aVtyLmxpbmVdLTEpfX1mdW5jdGlvbiBBZTEodCxlKXtsZXQgYT1lLnN0YXJ0Ll9pbmRleCxyPWUuc3RhcnQuX2J1ZmZlckluZGV4LGk9ZS5lbmQuX2luZGV4LG89ZS5lbmQuX2J1ZmZlckluZGV4LHM7aWYoYT09PWkpcz1bdFthXS5zbGljZShyLG8pXTtlbHNle2lmKHM9dC5zbGljZShhLGkpLHI+LTEpe2xldCBsPXNbMF07dHlwZW9mIGw9PSJzdHJpbmciP3NbMF09bC5zbGljZShyKTpzLnNoaWZ0KCl9bz4wJiZzLnB1c2godFtpXS5zbGljZSgwLG8pKX1yZXR1cm4gc31mdW5jdGlvbiAkZTEodCxlKXtsZXQgYT0tMSxyPVtdLGk7Zm9yKDsrK2E8dC5sZW5ndGg7KXtsZXQgbz10W2FdLHM7aWYodHlwZW9mIG89PSJzdHJpbmciKXM9bztlbHNlIHN3aXRjaChvKXtjYXNlLTU6e3M9IlxyIjticmVha31jYXNlLTQ6e3M9YApgO2JyZWFrfWNhc2UtMzp7cz1gXHIKYDticmVha31jYXNlLTI6e3M9ZT8iICI6IgkiO2JyZWFrfWNhc2UtMTp7aWYoIWUmJmkpY29udGludWU7cz0iICI7YnJlYWt9ZGVmYXVsdDpzPVN0cmluZy5mcm9tQ2hhckNvZGUobyl9aT1vPT09LTIsci5wdXNoKHMpfXJldHVybiByLmpvaW4oIiIpfXZhciBJS2U9bigoKT0+e2t0KCk7UHIoKTtkZCgpfSk7ZnVuY3Rpb24gZ2QodCl7bGV0IHI9e2NvbnN0cnVjdHM6eEgoW3hKLC4uLih0fHx7fSkuZXh0ZW5zaW9uc3x8W11dKSxjb250ZW50OmkoTUtlKSxkZWZpbmVkOltdLGRvY3VtZW50OmkoU0tlKSxmbG93OmkoTEtlKSxsYXp5Ont9LHN0cmluZzppKERLZSksdGV4dDppKEVLZSl9O3JldHVybiByO2Z1bmN0aW9uIGkobyl7cmV0dXJuIHM7ZnVuY3Rpb24gcyhsKXtyZXR1cm4gUEtlKHIsbyxsKX19fXZhciBiSj1uKCgpPT57dkgoKTt6S2UoKTtDS2UoKTtUS2UoKTtnSigpO05LZSgpO0lLZSgpfSk7ZnVuY3Rpb24geGQodCl7Zm9yKDshQ0godCk7KTtyZXR1cm4gdH12YXIgdko9bigoKT0+e1ZLKCl9KTtmdW5jdGlvbiBiZCgpe2xldCB0PTEsZT0iIixhPSEwLHI7cmV0dXJuIGk7ZnVuY3Rpb24gaShvLHMsbCl7bGV0IGY9W10sYyx1LGQsaCxnO2ZvcihvPWUrKHR5cGVvZiBvPT0ic3RyaW5nIj9vLnRvU3RyaW5nKCk6bmV3IFRleHREZWNvZGVyKHN8fHZvaWQgMCkuZGVjb2RlKG8pKSxkPTAsZT0iIixhJiYoby5jaGFyQ29kZUF0KDApPT09NjUyNzkmJmQrKyxhPXZvaWQgMCk7ZDxvLmxlbmd0aDspe2lmKEZLZS5sYXN0SW5kZXg9ZCxjPUZLZS5leGVjKG8pLGg9YyYmYy5pbmRleCE9PXZvaWQgMD9jLmluZGV4Om8ubGVuZ3RoLGc9by5jaGFyQ29kZUF0KGgpLCFjKXtlPW8uc2xpY2UoZCk7YnJlYWt9aWYoZz09PTEwJiZkPT09aCYmcilmLnB1c2goLTMpLHI9dm9pZCAwO2Vsc2Ugc3dpdGNoKHImJihmLnB1c2goLTUpLHI9dm9pZCAwKSxkPGgmJihmLnB1c2goby5zbGljZShkLGgpKSx0Kz1oLWQpLGcpe2Nhc2UgMDp7Zi5wdXNoKDY1NTMzKSx0Kys7YnJlYWt9Y2FzZSA5Ontmb3IodT1NYXRoLmNlaWwodC80KSo0LGYucHVzaCgtMik7dCsrPHU7KWYucHVzaCgtMSk7YnJlYWt9Y2FzZSAxMDp7Zi5wdXNoKC00KSx0PTE7YnJlYWt9ZGVmYXVsdDpyPSEwLHQ9MX1kPWgrMX1yZXR1cm4gbCYmKHImJmYucHVzaCgtNSksZSYmZi5wdXNoKGUpLGYucHVzaChudWxsKSksZn19dmFyIEZLZSx5Sj1uKCgpPT57RktlPS9bXDBcdFxuXHJdL2d9KTtmdW5jdGlvbiB5SjEodCxlLGEpe3JldHVybiB0eXBlb2YgZSE9InN0cmluZyImJihhPWUsZT12b2lkIDApLGhKKGEpKHhkKGdkKGEpLmRvY3VtZW50KCkud3JpdGUoYmQoKSh0LGUsITApKSkpfXZhciBPS2U9bigoKT0+e21KKCk7YkooKTt2SigpO3lKKCk7bUooKTtiSigpO3ZKKCk7eUooKX0pO2Z1bmN0aW9uIHdKKHQsZSxhKXtyZXR1cm4gdHlwZW9mIGUhPSJzdHJpbmciJiYoYT1lLGU9dm9pZCAwKSxEZTEoYSkoeGQoZ2QoYSkuZG9jdW1lbnQoKS53cml0ZShiZCgpKHQsZSwhMCkpKSl9ZnVuY3Rpb24gRGUxKHQpe2xldCBlPXt0cmFuc2Zvcm1zOltdLGNhbkNvbnRhaW5Fb2xzOlsiZW1waGFzaXMiLCJmcmFnbWVudCIsImhlYWRpbmciLCJwYXJhZ3JhcGgiLCJzdHJvbmciXSxlbnRlcjp7YXV0b2xpbms6byh5ZSksYXV0b2xpbmtQcm90b2NvbDokLGF1dG9saW5rRW1haWw6JCxhdHhIZWFkaW5nOm8oVSksYmxvY2tRdW90ZTpvKGopLGNoYXJhY3RlckVzY2FwZTokLGNoYXJhY3RlclJlZmVyZW5jZTokLGNvZGVGZW5jZWQ6byhzZSksY29kZUZlbmNlZEZlbmNlSW5mbzpzLGNvZGVGZW5jZWRGZW5jZU1ldGE6cyxjb2RlSW5kZW50ZWQ6byhzZSxzKSxjb2RlVGV4dDpvKGtlLHMpLGNvZGVUZXh0RGF0YTokLGRhdGE6JCxjb2RlRmxvd1ZhbHVlOiQsZGVmaW5pdGlvbjpvKERlKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6cyxkZWZpbml0aW9uTGFiZWxTdHJpbmc6cyxkZWZpbml0aW9uVGl0bGVTdHJpbmc6cyxlbXBoYXNpczpvKE9lKSxoYXJkQnJlYWtFc2NhcGU6byhCKSxoYXJkQnJlYWtUcmFpbGluZzpvKEIpLGh0bWxGbG93Om8ob2UscyksaHRtbEZsb3dEYXRhOiQsaHRtbFRleHQ6byhvZSxzKSxodG1sVGV4dERhdGE6JCxpbWFnZTpvKHZlKSxsYWJlbDpzLGxpbms6byh5ZSksbGlzdEl0ZW06byhuZSksbGlzdEl0ZW1WYWx1ZTpoLGxpc3RPcmRlcmVkOm8oJGUsZCksbGlzdFVub3JkZXJlZDpvKCRlKSxwYXJhZ3JhcGg6byhyZSkscmVmZXJlbmNlOlcscmVmZXJlbmNlU3RyaW5nOnMscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpzLHJlc291cmNlVGl0bGVTdHJpbmc6cyxzZXRleHRIZWFkaW5nOm8oVSksc3Ryb25nOm8oZ2UpLHRoZW1hdGljQnJlYWs6byhydCl9LGV4aXQ6e2F0eEhlYWRpbmc6ZigpLGF0eEhlYWRpbmdTZXF1ZW5jZTpDLGF1dG9saW5rOmYoKSxhdXRvbGlua0VtYWlsOkcsYXV0b2xpbmtQcm90b2NvbDpPLGJsb2NrUXVvdGU6ZigpLGNoYXJhY3RlckVzY2FwZVZhbHVlOkgsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6UmUsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzpSZSxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTpYLGNoYXJhY3RlclJlZmVyZW5jZTpJLGNvZGVGZW5jZWQ6ZihtKSxjb2RlRmVuY2VkRmVuY2U6eCxjb2RlRmVuY2VkRmVuY2VJbmZvOmcsY29kZUZlbmNlZEZlbmNlTWV0YTpiLGNvZGVGbG93VmFsdWU6SCxjb2RlSW5kZW50ZWQ6Zih2KSxjb2RlVGV4dDpmKFQpLGNvZGVUZXh0RGF0YTpILGRhdGE6SCxkZWZpbml0aW9uOmYoKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6RSxkZWZpbml0aW9uTGFiZWxTdHJpbmc6eSxkZWZpbml0aW9uVGl0bGVTdHJpbmc6dyxlbXBoYXNpczpmKCksaGFyZEJyZWFrRXNjYXBlOmYoayksaGFyZEJyZWFrVHJhaWxpbmc6ZihrKSxodG1sRmxvdzpmKE4pLGh0bWxGbG93RGF0YTpILGh0bWxUZXh0OmYoUyksaHRtbFRleHREYXRhOkgsaW1hZ2U6ZihBKSxsYWJlbDphZSxsYWJlbFRleHQ6RixsaW5lRW5kaW5nOkwsbGluazpmKFIpLGxpc3RJdGVtOmYoKSxsaXN0T3JkZXJlZDpmKCksbGlzdFVub3JkZXJlZDpmKCkscGFyYWdyYXBoOmYoKSxyZWZlcmVuY2VTdHJpbmc6TmUscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpWLHJlc291cmNlVGl0bGVTdHJpbmc6U2UscmVzb3VyY2U6emUsc2V0ZXh0SGVhZGluZzpmKF8pLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6UCxzZXRleHRIZWFkaW5nVGV4dDp6LHN0cm9uZzpmKCksdGhlbWF0aWNCcmVhazpmKCl9fTtSS2UoZSwodHx8e30pLm1kYXN0RXh0ZW5zaW9uc3x8W10pO2xldCBhPXt9O3JldHVybiByO2Z1bmN0aW9uIHIodWUpe2xldCBaPXt0eXBlOiJyb290IixjaGlsZHJlbjpbXX0sSj17c3RhY2s6W1pdLHRva2VuU3RhY2s6W10sY29uZmlnOmUsZW50ZXI6bCxleGl0OmMsYnVmZmVyOnMscmVzdW1lOnUsZGF0YTphfSxkZT1bXSxBZT0tMTtmb3IoOysrQWU8dWUubGVuZ3RoOylpZih1ZVtBZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fHVlW0FlXVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQiKWlmKHVlW0FlXVswXT09PSJlbnRlciIpZGUucHVzaChBZSk7ZWxzZXtsZXQgSGU9ZGUucG9wKCk7QWU9aSh1ZSxIZSxBZSl9Zm9yKEFlPS0xOysrQWU8dWUubGVuZ3RoOyl7bGV0IEhlPWVbdWVbQWVdWzBdXTtCS2UuY2FsbChIZSx1ZVtBZV1bMV0udHlwZSkmJkhlW3VlW0FlXVsxXS50eXBlXS5jYWxsKE9iamVjdC5hc3NpZ24oe3NsaWNlU2VyaWFsaXplOnVlW0FlXVsyXS5zbGljZVNlcmlhbGl6ZX0sSiksdWVbQWVdWzFdKX1pZihKLnRva2VuU3RhY2subGVuZ3RoPjApe2xldCBIZT1KLnRva2VuU3RhY2tbSi50b2tlblN0YWNrLmxlbmd0aC0xXTsoSGVbMV18fEhLZSkuY2FsbChKLHZvaWQgMCxIZVswXSl9Zm9yKFoucG9zaXRpb249e3N0YXJ0OlZvKHVlLmxlbmd0aD4wP3VlWzBdWzFdLnN0YXJ0OntsaW5lOjEsY29sdW1uOjEsb2Zmc2V0OjB9KSxlbmQ6Vm8odWUubGVuZ3RoPjA/dWVbdWUubGVuZ3RoLTJdWzFdLmVuZDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSl9LEFlPS0xOysrQWU8ZS50cmFuc2Zvcm1zLmxlbmd0aDspWj1lLnRyYW5zZm9ybXNbQWVdKFopfHxaO3JldHVybiBafWZ1bmN0aW9uIGkodWUsWixKKXtsZXQgZGU9Wi0xLEFlPS0xLEhlPSExLE10LGl0LHp0LHF0O2Zvcig7KytkZTw9Sjspe2xldCBRPXVlW2RlXTtzd2l0Y2goUVsxXS50eXBlKXtjYXNlImxpc3RVbm9yZGVyZWQiOmNhc2UibGlzdE9yZGVyZWQiOmNhc2UiYmxvY2tRdW90ZSI6e1FbMF09PT0iZW50ZXIiP0FlKys6QWUtLSxxdD12b2lkIDA7YnJlYWt9Y2FzZSJsaW5lRW5kaW5nQmxhbmsiOntRWzBdPT09ImVudGVyIiYmKE10JiYhcXQmJiFBZSYmIXp0JiYoenQ9ZGUpLHF0PXZvaWQgMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpjYXNlImxpc3RJdGVtVmFsdWUiOmNhc2UibGlzdEl0ZW1NYXJrZXIiOmNhc2UibGlzdEl0ZW1QcmVmaXgiOmNhc2UibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIjpicmVhaztkZWZhdWx0OnF0PXZvaWQgMH1pZighQWUmJlFbMF09PT0iZW50ZXIiJiZRWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgifHxBZT09PS0xJiZRWzBdPT09ImV4aXQiJiYoUVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQifHxRWzFdLnR5cGU9PT0ibGlzdE9yZGVyZWQiKSl7aWYoTXQpe2xldCBLPWRlO2ZvcihpdD12b2lkIDA7Sy0tOyl7bGV0IGJlPXVlW0tdO2lmKGJlWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fGJlWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIil7aWYoYmVbMF09PT0iZXhpdCIpY29udGludWU7aXQmJih1ZVtpdF1bMV0udHlwZT0ibGluZUVuZGluZ0JsYW5rIixIZT0hMCksYmVbMV0udHlwZT0ibGluZUVuZGluZyIsaXQ9S31lbHNlIGlmKCEoYmVbMV0udHlwZT09PSJsaW5lUHJlZml4Inx8YmVbMV0udHlwZT09PSJibG9ja1F1b3RlUHJlZml4Inx8YmVbMV0udHlwZT09PSJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSJ8fGJlWzFdLnR5cGU9PT0iYmxvY2tRdW90ZU1hcmtlciJ8fGJlWzFdLnR5cGU9PT0ibGlzdEl0ZW1JbmRlbnQiKSlicmVha316dCYmKCFpdHx8enQ8aXQpJiYoTXQuX3NwcmVhZD0hMCksTXQuZW5kPU9iamVjdC5hc3NpZ24oe30saXQ/dWVbaXRdWzFdLnN0YXJ0OlFbMV0uZW5kKSx1ZS5zcGxpY2UoaXR8fGRlLDAsWyJleGl0IixNdCxRWzJdXSksZGUrKyxKKyt9aWYoUVsxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4Iil7bGV0IEs9e3R5cGU6Imxpc3RJdGVtIixfc3ByZWFkOiExLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sUVsxXS5zdGFydCksZW5kOnZvaWQgMH07TXQ9Syx1ZS5zcGxpY2UoZGUsMCxbImVudGVyIixLLFFbMl1dKSxkZSsrLEorKyx6dD12b2lkIDAscXQ9ITB9fX1yZXR1cm4gdWVbWl1bMV0uX3NwcmVhZD1IZSxKfWZ1bmN0aW9uIG8odWUsWil7cmV0dXJuIEo7ZnVuY3Rpb24gSihkZSl7bC5jYWxsKHRoaXMsdWUoZGUpLGRlKSxaJiZaLmNhbGwodGhpcyxkZSl9fWZ1bmN0aW9uIHMoKXt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImZyYWdtZW50IixjaGlsZHJlbjpbXX0pfWZ1bmN0aW9uIGwodWUsWixKKXt0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLnB1c2godWUpLHRoaXMuc3RhY2sucHVzaCh1ZSksdGhpcy50b2tlblN0YWNrLnB1c2goW1osSnx8dm9pZCAwXSksdWUucG9zaXRpb249e3N0YXJ0OlZvKFouc3RhcnQpLGVuZDp2b2lkIDB9fWZ1bmN0aW9uIGYodWUpe3JldHVybiBaO2Z1bmN0aW9uIFooSil7dWUmJnVlLmNhbGwodGhpcyxKKSxjLmNhbGwodGhpcyxKKX19ZnVuY3Rpb24gYyh1ZSxaKXtsZXQgSj10aGlzLnN0YWNrLnBvcCgpLGRlPXRoaXMudG9rZW5TdGFjay5wb3AoKTtpZihkZSlkZVswXS50eXBlIT09dWUudHlwZSYmKFo/Wi5jYWxsKHRoaXMsdWUsZGVbMF0pOihkZVsxXXx8SEtlKS5jYWxsKHRoaXMsdWUsZGVbMF0pKTtlbHNlIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGAiK3VlLnR5cGUrImAgKCIrT28oe3N0YXJ0OnVlLnN0YXJ0LGVuZDp1ZS5lbmR9KSsiKTogaXRcdTIwMTlzIG5vdCBvcGVuIik7Si5wb3NpdGlvbi5lbmQ9Vm8odWUuZW5kKX1mdW5jdGlvbiB1KCl7cmV0dXJuIGZuKHRoaXMuc3RhY2sucG9wKCkpfWZ1bmN0aW9uIGQoKXt0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPSEwfWZ1bmN0aW9uIGgodWUpe2lmKHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWUpe2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMl07Wi5zdGFydD1OdW1iZXIucGFyc2VJbnQodGhpcy5zbGljZVNlcmlhbGl6ZSh1ZSksMTApLHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWU9dm9pZCAwfX1mdW5jdGlvbiBnKCl7bGV0IHVlPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oubGFuZz11ZX1mdW5jdGlvbiBiKCl7bGV0IHVlPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oubWV0YT11ZX1mdW5jdGlvbiB4KCl7dGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlfHwodGhpcy5idWZmZXIoKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9ITApfWZ1bmN0aW9uIG0oKXtsZXQgdWU9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi52YWx1ZT11ZS5yZXBsYWNlKC9eKFxyP1xufFxyKXwoXHI/XG58XHIpJC9nLCIiKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9dm9pZCAwfWZ1bmN0aW9uIHYoKXtsZXQgdWU9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi52YWx1ZT11ZS5yZXBsYWNlKC8oXHI/XG58XHIpJC9nLCIiKX1mdW5jdGlvbiB5KHVlKXtsZXQgWj10aGlzLnJlc3VtZSgpLEo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtKLmxhYmVsPVosSi5pZGVudGlmaWVyPXcxKHRoaXMuc2xpY2VTZXJpYWxpemUodWUpKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHcoKXtsZXQgdWU9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi50aXRsZT11ZX1mdW5jdGlvbiBFKCl7bGV0IHVlPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oudXJsPXVlfWZ1bmN0aW9uIEModWUpe2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYoIVouZGVwdGgpe2xldCBKPXRoaXMuc2xpY2VTZXJpYWxpemUodWUpLmxlbmd0aDtaLmRlcHRoPUp9fWZ1bmN0aW9uIHooKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz0hMH1mdW5jdGlvbiBQKHVlKXtsZXQgWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1ouZGVwdGg9dGhpcy5zbGljZVNlcmlhbGl6ZSh1ZSkuY29kZVBvaW50QXQoMCk9PT02MT8xOjJ9ZnVuY3Rpb24gXygpe3RoaXMuZGF0YS5zZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nPXZvaWQgMH1mdW5jdGlvbiAkKHVlKXtsZXQgSj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLGRlPUpbSi5sZW5ndGgtMV07KCFkZXx8ZGUudHlwZSE9PSJ0ZXh0IikmJihkZT1FZSgpLGRlLnBvc2l0aW9uPXtzdGFydDpWbyh1ZS5zdGFydCksZW5kOnZvaWQgMH0sSi5wdXNoKGRlKSksdGhpcy5zdGFjay5wdXNoKGRlKX1mdW5jdGlvbiBIKHVlKXtsZXQgWj10aGlzLnN0YWNrLnBvcCgpO1oudmFsdWUrPXRoaXMuc2xpY2VTZXJpYWxpemUodWUpLFoucG9zaXRpb24uZW5kPVZvKHVlLmVuZCl9ZnVuY3Rpb24gTCh1ZSl7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuYXRIYXJkQnJlYWspe2xldCBKPVouY2hpbGRyZW5bWi5jaGlsZHJlbi5sZW5ndGgtMV07Si5wb3NpdGlvbi5lbmQ9Vm8odWUuZW5kKSx0aGlzLmRhdGEuYXRIYXJkQnJlYWs9dm9pZCAwO3JldHVybn0hdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcmJmUuY2FuQ29udGFpbkVvbHMuaW5jbHVkZXMoWi50eXBlKSYmKCQuY2FsbCh0aGlzLHVlKSxILmNhbGwodGhpcyx1ZSkpfWZ1bmN0aW9uIGsoKXt0aGlzLmRhdGEuYXRIYXJkQnJlYWs9ITB9ZnVuY3Rpb24gTigpe2xldCB1ZT10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnZhbHVlPXVlfWZ1bmN0aW9uIFMoKXtsZXQgdWU9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi52YWx1ZT11ZX1mdW5jdGlvbiBUKCl7bGV0IHVlPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oudmFsdWU9dWV9ZnVuY3Rpb24gUigpe2xldCB1ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IFo9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7dWUudHlwZSs9IlJlZmVyZW5jZSIsdWUucmVmZXJlbmNlVHlwZT1aLGRlbGV0ZSB1ZS51cmwsZGVsZXRlIHVlLnRpdGxlfWVsc2UgZGVsZXRlIHVlLmlkZW50aWZpZXIsZGVsZXRlIHVlLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBBKCl7bGV0IHVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmluUmVmZXJlbmNlKXtsZXQgWj10aGlzLmRhdGEucmVmZXJlbmNlVHlwZXx8InNob3J0Y3V0Ijt1ZS50eXBlKz0iUmVmZXJlbmNlIix1ZS5yZWZlcmVuY2VUeXBlPVosZGVsZXRlIHVlLnVybCxkZWxldGUgdWUudGl0bGV9ZWxzZSBkZWxldGUgdWUuaWRlbnRpZmllcixkZWxldGUgdWUubGFiZWw7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9dm9pZCAwfWZ1bmN0aW9uIEYodWUpe2xldCBaPXRoaXMuc2xpY2VTZXJpYWxpemUodWUpLEo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtKLmxhYmVsPW1IKFopLEouaWRlbnRpZmllcj13MShaKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGFlKCl7bGV0IHVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0sWj10aGlzLnJlc3VtZSgpLEo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2U9ITAsSi50eXBlPT09ImxpbmsiKXtsZXQgZGU9dWUuY2hpbGRyZW47Si5jaGlsZHJlbj1kZX1lbHNlIEouYWx0PVp9ZnVuY3Rpb24gVigpe2xldCB1ZT10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD11ZX1mdW5jdGlvbiBTZSgpe2xldCB1ZT10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnRpdGxlPXVlfWZ1bmN0aW9uIHplKCl7dGhpcy5kYXRhLmluUmVmZXJlbmNlPXZvaWQgMH1mdW5jdGlvbiBXKCl7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImNvbGxhcHNlZCJ9ZnVuY3Rpb24gTmUodWUpe2xldCBaPXRoaXMucmVzdW1lKCksSj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0oubGFiZWw9WixKLmlkZW50aWZpZXI9dzEodGhpcy5zbGljZVNlcmlhbGl6ZSh1ZSkpLnRvTG93ZXJDYXNlKCksdGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImZ1bGwifWZ1bmN0aW9uIFJlKHVlKXt0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT11ZS50eXBlfWZ1bmN0aW9uIFgodWUpe2xldCBaPXRoaXMuc2xpY2VTZXJpYWxpemUodWUpLEo9dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGUsZGU7Sj8oZGU9QzYoWixKPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KSx0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT12b2lkIDApOmRlPUhvKFopO2xldCBBZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0FlLnZhbHVlKz1kZX1mdW5jdGlvbiBJKHVlKXtsZXQgWj10aGlzLnN0YWNrLnBvcCgpO1oucG9zaXRpb24uZW5kPVZvKHVlLmVuZCl9ZnVuY3Rpb24gTyh1ZSl7SC5jYWxsKHRoaXMsdWUpO2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi51cmw9dGhpcy5zbGljZVNlcmlhbGl6ZSh1ZSl9ZnVuY3Rpb24gRyh1ZSl7SC5jYWxsKHRoaXMsdWUpO2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi51cmw9Im1haWx0bzoiK3RoaXMuc2xpY2VTZXJpYWxpemUodWUpfWZ1bmN0aW9uIGooKXtyZXR1cm57dHlwZToiYmxvY2txdW90ZSIsY2hpbGRyZW46W119fWZ1bmN0aW9uIHNlKCl7cmV0dXJue3R5cGU6ImNvZGUiLGxhbmc6bnVsbCxtZXRhOm51bGwsdmFsdWU6IiJ9fWZ1bmN0aW9uIGtlKCl7cmV0dXJue3R5cGU6ImlubGluZUNvZGUiLHZhbHVlOiIifX1mdW5jdGlvbiBEZSgpe3JldHVybnt0eXBlOiJkZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOm51bGwsdGl0bGU6bnVsbCx1cmw6IiJ9fWZ1bmN0aW9uIE9lKCl7cmV0dXJue3R5cGU6ImVtcGhhc2lzIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gVSgpe3JldHVybnt0eXBlOiJoZWFkaW5nIixkZXB0aDowLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBCKCl7cmV0dXJue3R5cGU6ImJyZWFrIn19ZnVuY3Rpb24gb2UoKXtyZXR1cm57dHlwZToiaHRtbCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIHZlKCl7cmV0dXJue3R5cGU6ImltYWdlIix0aXRsZTpudWxsLHVybDoiIixhbHQ6bnVsbH19ZnVuY3Rpb24geWUoKXtyZXR1cm57dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119fWZ1bmN0aW9uICRlKHVlKXtyZXR1cm57dHlwZToibGlzdCIsb3JkZXJlZDp1ZS50eXBlPT09Imxpc3RPcmRlcmVkIixzdGFydDpudWxsLHNwcmVhZDp1ZS5fc3ByZWFkLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBuZSh1ZSl7cmV0dXJue3R5cGU6Imxpc3RJdGVtIixzcHJlYWQ6dWUuX3NwcmVhZCxjaGVja2VkOm51bGwsY2hpbGRyZW46W119fWZ1bmN0aW9uIHJlKCl7cmV0dXJue3R5cGU6InBhcmFncmFwaCIsY2hpbGRyZW46W119fWZ1bmN0aW9uIGdlKCl7cmV0dXJue3R5cGU6InN0cm9uZyIsY2hpbGRyZW46W119fWZ1bmN0aW9uIEVlKCl7cmV0dXJue3R5cGU6InRleHQiLHZhbHVlOiIifX1mdW5jdGlvbiBydCgpe3JldHVybnt0eXBlOiJ0aGVtYXRpY0JyZWFrIn19fWZ1bmN0aW9uIFZvKHQpe3JldHVybntsaW5lOnQubGluZSxjb2x1bW46dC5jb2x1bW4sb2Zmc2V0OnQub2Zmc2V0fX1mdW5jdGlvbiBSS2UodCxlKXtsZXQgYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspe2xldCByPWVbYV07QXJyYXkuaXNBcnJheShyKT9SS2UodCxyKTpFZTEodCxyKX19ZnVuY3Rpb24gRWUxKHQsZSl7bGV0IGE7Zm9yKGEgaW4gZSlpZihCS2UuY2FsbChlLGEpKXN3aXRjaChhKXtjYXNlImNhbkNvbnRhaW5Fb2xzIjp7bGV0IHI9ZVthXTtyJiZ0W2FdLnB1c2goLi4ucik7YnJlYWt9Y2FzZSJ0cmFuc2Zvcm1zIjp7bGV0IHI9ZVthXTtyJiZ0W2FdLnB1c2goLi4ucik7YnJlYWt9Y2FzZSJlbnRlciI6Y2FzZSJleGl0Ijp7bGV0IHI9ZVthXTtyJiZPYmplY3QuYXNzaWduKHRbYV0scik7YnJlYWt9fX1mdW5jdGlvbiBIS2UodCxlKXt0aHJvdyB0P25ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGAiK3QudHlwZSsiYCAoIitPbyh7c3RhcnQ6dC5zdGFydCxlbmQ6dC5lbmR9KSsiKTogYSBkaWZmZXJlbnQgdG9rZW4gKGAiK2UudHlwZSsiYCwgIitPbyh7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKSBpcyBvcGVuIik6bmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgZG9jdW1lbnQsIGEgdG9rZW4gKGAiK2UudHlwZSsiYCwgIitPbyh7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKSBpcyBzdGlsbCBvcGVuIil9dmFyIEJLZSxxS2U9bigoKT0+e2RIKCk7T0tlKCk7aEgoKTtrSygpO1JvKCk7Y2QoKTtPUSgpO0JLZT17fS5oYXNPd25Qcm9wZXJ0eX0pO3ZhciBWS2U9bigoKT0+e3FLZSgpfSk7ZnVuY3Rpb24gXzYodCl7bGV0IGU9dGhpcztlLnBhcnNlcj1hO2Z1bmN0aW9uIGEocil7cmV0dXJuIHdKKHIsey4uLmUuZGF0YSgic2V0dGluZ3MiKSwuLi50LGV4dGVuc2lvbnM6ZS5kYXRhKCJtaWNyb21hcmtFeHRlbnNpb25zIil8fFtdLG1kYXN0RXh0ZW5zaW9uczplLmRhdGEoImZyb21NYXJrZG93bkV4dGVuc2lvbnMiKXx8W119KX19dmFyIFVLZT1uKCgpPT57VktlKCl9KTt2YXIgaktlPW4oKCk9PntVS2UoKX0pO3ZhciBXS2U9Y3QoKFJKMSxNSik9PnsoZnVuY3Rpb24oKXt2YXIgdDt0eXBlb2YgTUo8InUiP3Q9TUouZXhwb3J0cz1yOnQ9KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN8fCgwLGV2YWwpKCJ0aGlzIil9KSgpLHQuZm9ybWF0PXIsdC52c3ByaW50Zj1hLHR5cGVvZiBjb25zb2xlPCJ1IiYmdHlwZW9mIGNvbnNvbGUubG9nPT0iZnVuY3Rpb24iJiYodC5wcmludGY9ZSk7ZnVuY3Rpb24gZSgpe2NvbnNvbGUubG9nKHIuYXBwbHkobnVsbCxhcmd1bWVudHMpKX1mdW5jdGlvbiBhKGksbyl7cmV0dXJuIHIuYXBwbHkobnVsbCxbaV0uY29uY2F0KG8pKX1mdW5jdGlvbiByKGkpe2Zvcih2YXIgbz0xLHM9W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLGw9MCxmPWkubGVuZ3RoLGM9IiIsdSxkPSExLGgsZyxiPSExLHgsbT1mdW5jdGlvbigpe3JldHVybiBzW28rK119LHY9ZnVuY3Rpb24oKXtmb3IodmFyIHk9IiI7L1xkLy50ZXN0KGlbbF0pOyl5Kz1pW2wrK10sdT1pW2xdO3JldHVybiB5Lmxlbmd0aD4wP3BhcnNlSW50KHkpOm51bGx9O2w8ZjsrK2wpaWYodT1pW2xdLGQpc3dpdGNoKGQ9ITEsdT09Ii4iPyhiPSExLHU9aVsrK2xdKTp1PT0iMCImJmlbbCsxXT09Ii4iPyhiPSEwLGwrPTIsdT1pW2xdKTpiPSEwLHg9digpLHUpe2Nhc2UiYiI6Yys9cGFyc2VJbnQobSgpLDEwKS50b1N0cmluZygyKTticmVhaztjYXNlImMiOmg9bSgpLHR5cGVvZiBoPT0ic3RyaW5nInx8aCBpbnN0YW5jZW9mIFN0cmluZz9jKz1oOmMrPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoaCwxMCkpO2JyZWFrO2Nhc2UiZCI6Yys9cGFyc2VJbnQobSgpLDEwKTticmVhaztjYXNlImYiOmc9U3RyaW5nKHBhcnNlRmxvYXQobSgpKS50b0ZpeGVkKHh8fDYpKSxjKz1iP2c6Zy5yZXBsYWNlKC9eMC8sIiIpO2JyZWFrO2Nhc2UiaiI6Yys9SlNPTi5zdHJpbmdpZnkobSgpKTticmVhaztjYXNlIm8iOmMrPSIwIitwYXJzZUludChtKCksMTApLnRvU3RyaW5nKDgpO2JyZWFrO2Nhc2UicyI6Yys9bSgpO2JyZWFrO2Nhc2UieCI6Yys9IjB4IitwYXJzZUludChtKCksMTApLnRvU3RyaW5nKDE2KTticmVhaztjYXNlIlgiOmMrPSIweCIrcGFyc2VJbnQobSgpLDEwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTticmVhaztkZWZhdWx0OmMrPXU7YnJlYWt9ZWxzZSB1PT09IiUiP2Q9ITA6Yys9dTtyZXR1cm4gY319KSgpfSk7ZnVuY3Rpb24gYm4odCl7cmV0dXJuIGUuZGlzcGxheU5hbWU9dC5kaXNwbGF5TmFtZXx8dC5uYW1lLGU7ZnVuY3Rpb24gZShhLC4uLnIpe2xldCBpPWEmJigwLEdLZS5kZWZhdWx0KShhLC4uLnIpO3JldHVybiBuZXcgdChpKX19dmFyIEdLZSx2ZCxZS2U9bigoKT0+e0dLZT1OMihXS2UoKSwxKSx2ZD1PYmplY3QuYXNzaWduKGJuKEVycm9yKSx7ZXZhbDpibihFdmFsRXJyb3IpLHJhbmdlOmJuKFJhbmdlRXJyb3IpLHJlZmVyZW5jZTpibihSZWZlcmVuY2VFcnJvciksc3ludGF4OmJuKFN5bnRheEVycm9yKSx0eXBlOmJuKFR5cGVFcnJvciksdXJpOmJuKFVSSUVycm9yKX0pfSk7ZnVuY3Rpb24gQTYodCl7bGV0IGU9W10sYT0tMSxyPUFycmF5LmlzQXJyYXkodCk/dDp0P1t0XTpbInlhbWwiXTtmb3IoOysrYTxyLmxlbmd0aDspZVthXT1OZTEoclthXSk7cmV0dXJuIGV9ZnVuY3Rpb24gTmUxKHQpe2xldCBlPXQ7aWYodHlwZW9mIGU9PSJzdHJpbmciKXtpZighUEguY2FsbChaS2UsZSkpdGhyb3cgdmQoIk1pc3NpbmcgbWF0dGVyIGRlZmluaXRpb24gZm9yIGAlc2AiLGUpO2U9e3R5cGU6ZSxtYXJrZXI6WktlW2VdfX1lbHNlIGlmKHR5cGVvZiBlIT0ib2JqZWN0Iil0aHJvdyB2ZCgiRXhwZWN0ZWQgbWF0dGVyIHRvIGJlIGFuIG9iamVjdCwgbm90IGAlamAiLGUpO2lmKCFQSC5jYWxsKGUsInR5cGUiKSl0aHJvdyB2ZCgiTWlzc2luZyBgdHlwZWAgaW4gbWF0dGVyIGAlamAiLGUpO2lmKCFQSC5jYWxsKGUsImZlbmNlIikmJiFQSC5jYWxsKGUsIm1hcmtlciIpKXRocm93IHZkKCJNaXNzaW5nIGBtYXJrZXJgIG9yIGBmZW5jZWAgaW4gbWF0dGVyIGAlamAiLGUpO3JldHVybiBlfXZhciBQSCxaS2Useko9bigoKT0+e1lLZSgpO1BIPXt9Lmhhc093blByb3BlcnR5LFpLZT17eWFtbDoiLSIsdG9tbDoiKyJ9fSk7ZnVuY3Rpb24gU0oodCl7bGV0IGU9QTYodCksYT17fSxyPS0xO2Zvcig7KytyPGUubGVuZ3RoOyl7bGV0IGk9ZVtyXSxvPWtKKGksIm9wZW4iKS5jaGFyQ29kZUF0KDApLHM9UGUxKGkpLGw9YVtvXTtBcnJheS5pc0FycmF5KGwpP2wucHVzaChzKTphW29dPVtzXX1yZXR1cm57ZmxvdzphfX1mdW5jdGlvbiBQZTEodCl7bGV0IGU9dC5hbnl3aGVyZSxhPXQudHlwZSxyPWErIkZlbmNlIixpPXIrIlNlcXVlbmNlIixvPWErIlZhbHVlIixzPXt0b2tlbml6ZTp1LHBhcnRpYWw6ITB9LGwsZj0wO3JldHVybnt0b2tlbml6ZTpjLGNvbmNyZXRlOiEwfTtmdW5jdGlvbiBjKGQsaCxnKXtsZXQgYj10aGlzO3JldHVybiB4O2Z1bmN0aW9uIHgoUCl7bGV0IF89Yi5ub3coKTtyZXR1cm4gXy5jb2x1bW49PT0xJiYoXy5saW5lPT09MXx8ZSkmJihsPWtKKHQsIm9wZW4iKSxmPTAsUD09PWwuY2hhckNvZGVBdChmKSk/KGQuZW50ZXIoYSksZC5lbnRlcihyKSxkLmVudGVyKGkpLG0oUCkpOmcoUCl9ZnVuY3Rpb24gbShQKXtyZXR1cm4gZj09PWwubGVuZ3RoPyhkLmV4aXQoaSksR2UoUCk/KGQuZW50ZXIoIndoaXRlc3BhY2UiKSx2KFApKTp5KFApKTpQPT09bC5jaGFyQ29kZUF0KGYrKyk/KGQuY29uc3VtZShQKSxtKTpnKFApfWZ1bmN0aW9uIHYoUCl7cmV0dXJuIEdlKFApPyhkLmNvbnN1bWUoUCksdik6KGQuZXhpdCgid2hpdGVzcGFjZSIpLHkoUCkpfWZ1bmN0aW9uIHkoUCl7cmV0dXJuIFBlKFApPyhkLmV4aXQociksZC5lbnRlcigibGluZUVuZGluZyIpLGQuY29uc3VtZShQKSxkLmV4aXQoImxpbmVFbmRpbmciKSxsPWtKKHQsImNsb3NlIiksZj0wLGQuYXR0ZW1wdChzLHosdykpOmcoUCl9ZnVuY3Rpb24gdyhQKXtyZXR1cm4gUD09PW51bGx8fFBlKFApP0MoUCk6KGQuZW50ZXIobyksRShQKSl9ZnVuY3Rpb24gRShQKXtyZXR1cm4gUD09PW51bGx8fFBlKFApPyhkLmV4aXQobyksQyhQKSk6KGQuY29uc3VtZShQKSxFKX1mdW5jdGlvbiBDKFApe3JldHVybiBQPT09bnVsbD9nKFApOihkLmVudGVyKCJsaW5lRW5kaW5nIiksZC5jb25zdW1lKFApLGQuZXhpdCgibGluZUVuZGluZyIpLGQuYXR0ZW1wdChzLHosdykpfWZ1bmN0aW9uIHooUCl7cmV0dXJuIGQuZXhpdChhKSxoKFApfX1mdW5jdGlvbiB1KGQsaCxnKXtsZXQgYj0wO3JldHVybiB4O2Z1bmN0aW9uIHgodyl7cmV0dXJuIHc9PT1sLmNoYXJDb2RlQXQoYik/KGQuZW50ZXIociksZC5lbnRlcihpKSxtKHcpKTpnKHcpfWZ1bmN0aW9uIG0odyl7cmV0dXJuIGI9PT1sLmxlbmd0aD8oZC5leGl0KGkpLEdlKHcpPyhkLmVudGVyKCJ3aGl0ZXNwYWNlIiksdih3KSk6eSh3KSk6dz09PWwuY2hhckNvZGVBdChiKyspPyhkLmNvbnN1bWUodyksbSk6Zyh3KX1mdW5jdGlvbiB2KHcpe3JldHVybiBHZSh3KT8oZC5jb25zdW1lKHcpLHYpOihkLmV4aXQoIndoaXRlc3BhY2UiKSx5KHcpKX1mdW5jdGlvbiB5KHcpe3JldHVybiB3PT09bnVsbHx8UGUodyk/KGQuZXhpdChyKSxoKHcpKTpnKHcpfX19ZnVuY3Rpb24ga0oodCxlKXtyZXR1cm4gdC5tYXJrZXI/WEtlKHQubWFya2VyLGUpLnJlcGVhdCgzKTpYS2UodC5mZW5jZSxlKX1mdW5jdGlvbiBYS2UodCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP3Q6dFtlXX12YXIgUUtlPW4oKCk9PntrdCgpO3pKKCl9KTt2YXIgS0tlPW4oKCk9Pnt9KTt2YXIgQ0o9bigoKT0+e1FLZSgpO0tLZSgpO3pKKCl9KTtmdW5jdGlvbiBUSih0KXtsZXQgZT1BNih0KSxhPXt9LHI9e30saT0tMTtmb3IoOysraTxlLmxlbmd0aDspe2xldCBvPWVbaV07YVtvLnR5cGVdPUllMShvKSxyW28udHlwZV09RmUxLHJbby50eXBlKyJWYWx1ZSJdPU9lMX1yZXR1cm57ZW50ZXI6YSxleGl0OnJ9fWZ1bmN0aW9uIEllMSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKGEpe3RoaXMuZW50ZXIoe3R5cGU6dC50eXBlLHZhbHVlOiIifSxhKSx0aGlzLmJ1ZmZlcigpfX1mdW5jdGlvbiBGZTEodCl7bGV0IGU9dGhpcy5yZXN1bWUoKSxhPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07InZhbHVlImluIGEsdGhpcy5leGl0KHQpLGEudmFsdWU9ZS5yZXBsYWNlKC9eKFxyP1xufFxyKXwoXHI/XG58XHIpJC9nLCIiKX1mdW5jdGlvbiBPZTEodCl7dGhpcy5jb25maWcuZW50ZXIuZGF0YS5jYWxsKHRoaXMsdCksdGhpcy5jb25maWcuZXhpdC5kYXRhLmNhbGwodGhpcyx0KX1mdW5jdGlvbiBfSih0KXtsZXQgZT1bXSxhPXt9LHI9QTYodCksaT0tMTtmb3IoOysraTxyLmxlbmd0aDspe2xldCBvPXJbaV07YVtvLnR5cGVdPUJlMShvKTtsZXQgcz1MSihvLCJvcGVuIik7ZS5wdXNoKHthdEJyZWFrOiEwLGNoYXJhY3RlcjpzLmNoYXJBdCgwKSxhZnRlcjokcyhzLmNoYXJBdCgxKSl9KX1yZXR1cm57dW5zYWZlOmUsaGFuZGxlcnM6YX19ZnVuY3Rpb24gQmUxKHQpe2xldCBlPUxKKHQsIm9wZW4iKSxhPUxKKHQsImNsb3NlIik7cmV0dXJuIHI7ZnVuY3Rpb24gcihpKXtyZXR1cm4gZSsoaS52YWx1ZT9gCmAraS52YWx1ZToiIikrYApgK2F9fWZ1bmN0aW9uIExKKHQsZSl7cmV0dXJuIHQubWFya2VyP0pLZSh0Lm1hcmtlcixlKS5yZXBlYXQoMyk6SktlKHQuZmVuY2UsZSl9ZnVuY3Rpb24gSktlKHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIj90OnRbZV19dmFyIGVKZT1uKCgpPT57Rm8oKTtDSigpO3NPKCl9KTt2YXIgdEplPW4oKCk9PntlSmUoKX0pO2Z1bmN0aW9uICQ2KHQpe2xldCBlPXRoaXMsYT10fHxSZTEscj1lLmRhdGEoKSxpPXIubWljcm9tYXJrRXh0ZW5zaW9uc3x8KHIubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSksbz1yLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChyLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLHM9ci50b01hcmtkb3duRXh0ZW5zaW9uc3x8KHIudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO2kucHVzaChTSihhKSksby5wdXNoKFRKKGEpKSxzLnB1c2goX0ooYSkpfXZhciBSZTEsYUplPW4oKCk9Pnt0SmUoKTtDSigpO1JlMT0ieWFtbCJ9KTt2YXIgckplPW4oKCk9PnthSmUoKX0pO3ZhciBBSj1uKCgpPT57fSk7dmFyIGlKZSxIZTEsUkgsb0plPW4oKCk9PntBSigpO2lKZT10eXBlb2Ygc2VsZj09Im9iamVjdCI/c2VsZjpnbG9iYWxUaGlzLEhlMT0odCxlKT0+e2xldCBhPShpLG8pPT4odC5zZXQobyxpKSxpKSxyPWk9PntpZih0LmhhcyhpKSlyZXR1cm4gdC5nZXQoaSk7bGV0W28sc109ZVtpXTtzd2l0Y2gobyl7Y2FzZSAwOmNhc2UtMTpyZXR1cm4gYShzLGkpO2Nhc2UgMTp7bGV0IGw9YShbXSxpKTtmb3IobGV0IGYgb2YgcylsLnB1c2gocihmKSk7cmV0dXJuIGx9Y2FzZSAyOntsZXQgbD1hKHt9LGkpO2ZvcihsZXRbZixjXW9mIHMpbFtyKGYpXT1yKGMpO3JldHVybiBsfWNhc2UgMzpyZXR1cm4gYShuZXcgRGF0ZShzKSxpKTtjYXNlIDQ6e2xldHtzb3VyY2U6bCxmbGFnczpmfT1zO3JldHVybiBhKG5ldyBSZWdFeHAobCxmKSxpKX1jYXNlIDU6e2xldCBsPWEobmV3IE1hcCxpKTtmb3IobGV0W2YsY11vZiBzKWwuc2V0KHIoZikscihjKSk7cmV0dXJuIGx9Y2FzZSA2OntsZXQgbD1hKG5ldyBTZXQsaSk7Zm9yKGxldCBmIG9mIHMpbC5hZGQocihmKSk7cmV0dXJuIGx9Y2FzZSA3OntsZXR7bmFtZTpsLG1lc3NhZ2U6Zn09cztyZXR1cm4gYShuZXcgaUplW2xdKGYpLGkpfWNhc2UgODpyZXR1cm4gYShCaWdJbnQocyksaSk7Y2FzZSJCaWdJbnQiOnJldHVybiBhKE9iamVjdChCaWdJbnQocykpLGkpO2Nhc2UiQXJyYXlCdWZmZXIiOnJldHVybiBhKG5ldyBVaW50OEFycmF5KHMpLmJ1ZmZlcixzKTtjYXNlIkRhdGFWaWV3Ijp7bGV0e2J1ZmZlcjpsfT1uZXcgVWludDhBcnJheShzKTtyZXR1cm4gYShuZXcgRGF0YVZpZXcobCkscyl9fXJldHVybiBhKG5ldyBpSmVbb10ocyksaSl9O3JldHVybiByfSxSSD10PT5IZTEobmV3IE1hcCx0KSgwKX0pO3ZhciBFNixxZTEsVmUxLE1kLEhILFVlMSxxSCxzSmU9bigoKT0+e0FKKCk7RTY9IiIse3RvU3RyaW5nOnFlMX09e30se2tleXM6VmUxfT1PYmplY3QsTWQ9dD0+e2xldCBlPXR5cGVvZiB0O2lmKGUhPT0ib2JqZWN0Inx8IXQpcmV0dXJuWzAsZV07bGV0IGE9cWUxLmNhbGwodCkuc2xpY2UoOCwtMSk7c3dpdGNoKGEpe2Nhc2UiQXJyYXkiOnJldHVyblsxLEU2XTtjYXNlIk9iamVjdCI6cmV0dXJuWzIsRTZdO2Nhc2UiRGF0ZSI6cmV0dXJuWzMsRTZdO2Nhc2UiUmVnRXhwIjpyZXR1cm5bNCxFNl07Y2FzZSJNYXAiOnJldHVybls1LEU2XTtjYXNlIlNldCI6cmV0dXJuWzYsRTZdO2Nhc2UiRGF0YVZpZXciOnJldHVyblsxLGFdfXJldHVybiBhLmluY2x1ZGVzKCJBcnJheSIpP1sxLGFdOmEuaW5jbHVkZXMoIkVycm9yIik/WzcsYV06WzIsYV19LEhIPShbdCxlXSk9PnQ9PT0wJiYoZT09PSJmdW5jdGlvbiJ8fGU9PT0ic3ltYm9sIiksVWUxPSh0LGUsYSxyKT0+e2xldCBpPShzLGwpPT57bGV0IGY9ci5wdXNoKHMpLTE7cmV0dXJuIGEuc2V0KGwsZiksZn0sbz1zPT57aWYoYS5oYXMocykpcmV0dXJuIGEuZ2V0KHMpO2xldFtsLGZdPU1kKHMpO3N3aXRjaChsKXtjYXNlIDA6e2xldCB1PXM7c3dpdGNoKGYpe2Nhc2UiYmlnaW50IjpsPTgsdT1zLnRvU3RyaW5nKCk7YnJlYWs7Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmlmKHQpdGhyb3cgbmV3IFR5cGVFcnJvcigidW5hYmxlIHRvIHNlcmlhbGl6ZSAiK2YpO3U9bnVsbDticmVhaztjYXNlInVuZGVmaW5lZCI6cmV0dXJuIGkoWy0xXSxzKX1yZXR1cm4gaShbbCx1XSxzKX1jYXNlIDE6e2lmKGYpe2xldCBoPXM7cmV0dXJuIGY9PT0iRGF0YVZpZXciP2g9bmV3IFVpbnQ4QXJyYXkocy5idWZmZXIpOmY9PT0iQXJyYXlCdWZmZXIiJiYoaD1uZXcgVWludDhBcnJheShzKSksaShbZixbLi4uaF1dLHMpfWxldCB1PVtdLGQ9aShbbCx1XSxzKTtmb3IobGV0IGggb2Ygcyl1LnB1c2gobyhoKSk7cmV0dXJuIGR9Y2FzZSAyOntpZihmKXN3aXRjaChmKXtjYXNlIkJpZ0ludCI6cmV0dXJuIGkoW2Yscy50b1N0cmluZygpXSxzKTtjYXNlIkJvb2xlYW4iOmNhc2UiTnVtYmVyIjpjYXNlIlN0cmluZyI6cmV0dXJuIGkoW2Yscy52YWx1ZU9mKCldLHMpfWlmKGUmJiJ0b0pTT04iaW4gcylyZXR1cm4gbyhzLnRvSlNPTigpKTtsZXQgdT1bXSxkPWkoW2wsdV0scyk7Zm9yKGxldCBoIG9mIFZlMShzKSkodHx8IUhIKE1kKHNbaF0pKSkmJnUucHVzaChbbyhoKSxvKHNbaF0pXSk7cmV0dXJuIGR9Y2FzZSAzOnJldHVybiBpKFtsLHMudG9JU09TdHJpbmcoKV0scyk7Y2FzZSA0OntsZXR7c291cmNlOnUsZmxhZ3M6ZH09cztyZXR1cm4gaShbbCx7c291cmNlOnUsZmxhZ3M6ZH1dLHMpfWNhc2UgNTp7bGV0IHU9W10sZD1pKFtsLHVdLHMpO2ZvcihsZXRbaCxnXW9mIHMpKHR8fCEoSEgoTWQoaCkpfHxISChNZChnKSkpKSYmdS5wdXNoKFtvKGgpLG8oZyldKTtyZXR1cm4gZH1jYXNlIDY6e2xldCB1PVtdLGQ9aShbbCx1XSxzKTtmb3IobGV0IGggb2YgcykodHx8IUhIKE1kKGgpKSkmJnUucHVzaChvKGgpKTtyZXR1cm4gZH19bGV0e21lc3NhZ2U6Y309cztyZXR1cm4gaShbbCx7bmFtZTpmLG1lc3NhZ2U6Y31dLHMpfTtyZXR1cm4gb30scUg9KHQse2pzb246ZSxsb3NzeTphfT17fSk9PntsZXQgcj1bXTtyZXR1cm4gVWUxKCEoZXx8YSksISFlLG5ldyBNYXAscikodCkscn19KTt2YXIgVW8sVkg9bigoKT0+e29KZSgpO3NKZSgpO1VvPXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiI/KHQsZSk9PmUmJigianNvbiJpbiBlfHwibG9zc3kiaW4gZSk/UkgocUgodCxlKSk6c3RydWN0dXJlZENsb25lKHQpOih0LGUpPT5SSChxSCh0LGUpKX0pO2Z1bmN0aW9uIG5KZSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKGEpe2xldCByPWEmJmEucG9zaXRpb24mJmEucG9zaXRpb25bdF18fHt9O2lmKHR5cGVvZiByLmxpbmU9PSJudW1iZXIiJiZyLmxpbmU+MCYmdHlwZW9mIHIuY29sdW1uPT0ibnVtYmVyIiYmci5jb2x1bW4+MClyZXR1cm57bGluZTpyLmxpbmUsY29sdW1uOnIuY29sdW1uLG9mZnNldDp0eXBlb2Ygci5vZmZzZXQ9PSJudW1iZXIiJiZyLm9mZnNldD4tMT9yLm9mZnNldDp2b2lkIDB9fX1mdW5jdGlvbiB6ZCh0KXtsZXQgZT1qSCh0KSxhPVVIKHQpO2lmKGUmJmEpcmV0dXJue3N0YXJ0OmUsZW5kOmF9fXZhciBVSCxqSCxsSmU9bigoKT0+e1VIPW5KZSgiZW5kIiksakg9bkplKCJzdGFydCIpfSk7dmFyIFdIPW4oKCk9PntsSmUoKX0pO3ZhciB2bixHSCxOSj1uKCgpPT57dm49WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSJdLEdIPXthbmNlc3RvcnM6e3Rib2R5OlsidGFibGUiXSx0ZDpbInRhYmxlIl0sdGg6WyJ0YWJsZSJdLHRoZWFkOlsidGFibGUiXSx0Zm9vdDpbInRhYmxlIl0sdHI6WyJ0YWJsZSJdfSxhdHRyaWJ1dGVzOnthOlsuLi52biwiZGF0YUZvb3Rub3RlQmFja3JlZiIsImRhdGFGb290bm90ZVJlZiIsWyJjbGFzc05hbWUiLCJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiXSwiaHJlZiJdLGJsb2NrcXVvdGU6WyJjaXRlIl0sY29kZTpbWyJjbGFzc05hbWUiLC9ebGFuZ3VhZ2UtLi9dXSxkZWw6WyJjaXRlIl0sZGl2OlsiaXRlbVNjb3BlIiwiaXRlbVR5cGUiXSxkbDpbLi4udm5dLGgyOltbImNsYXNzTmFtZSIsInNyLW9ubHkiXV0saW1nOlsuLi52biwibG9uZ0Rlc2MiLCJzcmMiXSxpbnB1dDpbWyJkaXNhYmxlZCIsITBdLFsidHlwZSIsImNoZWNrYm94Il1dLGluczpbImNpdGUiXSxsaTpbWyJjbGFzc05hbWUiLCJ0YXNrLWxpc3QtaXRlbSJdXSxvbDpbLi4udm4sWyJjbGFzc05hbWUiLCJjb250YWlucy10YXNrLWxpc3QiXV0scTpbImNpdGUiXSxzZWN0aW9uOlsiZGF0YUZvb3Rub3RlcyIsWyJjbGFzc05hbWUiLCJmb290bm90ZXMiXV0sc291cmNlOlsic3JjU2V0Il0sc3VtbWFyeTpbLi4udm5dLHRhYmxlOlsuLi52bl0sdWw6Wy4uLnZuLFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLCIqIjpbImFiYnIiLCJhY2NlcHQiLCJhY2NlcHRDaGFyc2V0IiwiYWNjZXNzS2V5IiwiYWN0aW9uIiwiYWxpZ24iLCJhbHQiLCJheGlzIiwiYm9yZGVyIiwiY2VsbFBhZGRpbmciLCJjZWxsU3BhY2luZyIsImNoYXIiLCJjaGFyT2ZmIiwiY2hhclNldCIsImNoZWNrZWQiLCJjbGVhciIsImNvbFNwYW4iLCJjb2xvciIsImNvbHMiLCJjb21wYWN0IiwiY29vcmRzIiwiZGF0ZVRpbWUiLCJkaXIiLCJlbmNUeXBlIiwiZnJhbWUiLCJoU3BhY2UiLCJoZWFkZXJzIiwiaGVpZ2h0IiwiaHJlZkxhbmciLCJodG1sRm9yIiwiaWQiLCJpc01hcCIsIml0ZW1Qcm9wIiwibGFiZWwiLCJsYW5nIiwibWF4TGVuZ3RoIiwibWVkaWEiLCJtZXRob2QiLCJtdWx0aXBsZSIsIm5hbWUiLCJub0hyZWYiLCJub1NoYWRlIiwibm9XcmFwIiwib3BlbiIsInByb21wdCIsInJlYWRPbmx5IiwicmV2Iiwicm93U3BhbiIsInJvd3MiLCJydWxlcyIsInNjb3BlIiwic2VsZWN0ZWQiLCJzaGFwZSIsInNpemUiLCJzcGFuIiwic3RhcnQiLCJzdW1tYXJ5IiwidGFiSW5kZXgiLCJ0aXRsZSIsInVzZU1hcCIsInZBbGlnbiIsInZhbHVlIiwid2lkdGgiXX0sY2xvYmJlcjpbImFyaWFEZXNjcmliZWRCeSIsImFyaWFMYWJlbGxlZEJ5IiwiaWQiLCJuYW1lIl0sY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIscHJvdG9jb2xzOntjaXRlOlsiaHR0cCIsImh0dHBzIl0saHJlZjpbImh0dHAiLCJodHRwcyIsImlyYyIsImlyY3MiLCJtYWlsdG8iLCJ4bXBwIl0sbG9uZ0Rlc2M6WyJodHRwIiwiaHR0cHMiXSxzcmM6WyJodHRwIiwiaHR0cHMiXX0scmVxdWlyZWQ6e2lucHV0OntkaXNhYmxlZDohMCx0eXBlOiJjaGVja2JveCJ9fSxzdHJpcDpbInNjcmlwdCJdLHRhZ05hbWVzOlsiYSIsImIiLCJibG9ja3F1b3RlIiwiYnIiLCJjb2RlIiwiZGQiLCJkZWwiLCJkZXRhaWxzIiwiZGl2IiwiZGwiLCJkdCIsImVtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaHIiLCJpIiwiaW1nIiwiaW5wdXQiLCJpbnMiLCJrYmQiLCJsaSIsIm9sIiwicCIsInBpY3R1cmUiLCJwcmUiLCJxIiwicnAiLCJydCIsInJ1YnkiLCJzIiwic2FtcCIsInNlY3Rpb24iLCJzb3VyY2UiLCJzcGFuIiwic3RyaWtlIiwic3Ryb25nIiwic3ViIiwic3VtbWFyeSIsInN1cCIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRmb290IiwidGgiLCJ0aGVhZCIsInRyIiwidHQiLCJ1bCIsInZhciJdfX0pO2Z1bmN0aW9uIFBKKHQsZSl7bGV0IGE9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxyPXtzY2hlbWE6ZT97Li4uR0gsLi4uZX06R0gsc3RhY2s6W119LGk9Y0plKHIsdCk7cmV0dXJuIGkmJihBcnJheS5pc0FycmF5KGkpP2kubGVuZ3RoPT09MT9hPWlbMF06YS5jaGlsZHJlbj1pOmE9aSksYX1mdW5jdGlvbiBjSmUodCxlKXtpZihlJiZ0eXBlb2YgZT09Im9iamVjdCIpe2xldCBhPWU7c3dpdGNoKHR5cGVvZiBhLnR5cGU9PSJzdHJpbmciP2EudHlwZToiIil7Y2FzZSJjb21tZW50IjpyZXR1cm4gamUxKHQsYSk7Y2FzZSJkb2N0eXBlIjpyZXR1cm4gV2UxKHQsYSk7Y2FzZSJlbGVtZW50IjpyZXR1cm4gR2UxKHQsYSk7Y2FzZSJyb290IjpyZXR1cm4gWWUxKHQsYSk7Y2FzZSJ0ZXh0IjpyZXR1cm4gWmUxKHQsYSk7ZGVmYXVsdDp9fX1mdW5jdGlvbiBqZTEodCxlKXtpZih0LnNjaGVtYS5hbGxvd0NvbW1lbnRzKXtsZXQgYT10eXBlb2YgZS52YWx1ZT09InN0cmluZyI/ZS52YWx1ZToiIixyPWEuaW5kZXhPZigiLS0+Iiksbz17dHlwZToiY29tbWVudCIsdmFsdWU6cjwwP2E6YS5zbGljZSgwLHIpfTtyZXR1cm4ga2QobyxlKSxvfX1mdW5jdGlvbiBXZTEodCxlKXtpZih0LnNjaGVtYS5hbGxvd0RvY3R5cGVzKXtsZXQgYT17dHlwZToiZG9jdHlwZSJ9O3JldHVybiBrZChhLGUpLGF9fWZ1bmN0aW9uIEdlMSh0LGUpe2xldCBhPXR5cGVvZiBlLnRhZ05hbWU9PSJzdHJpbmciP2UudGFnTmFtZToiIjt0LnN0YWNrLnB1c2goYSk7bGV0IHI9ZEplKHQsZS5jaGlsZHJlbiksaT1YZTEodCxlLnByb3BlcnRpZXMpO3Quc3RhY2sucG9wKCk7bGV0IG89ITE7aWYoYSYmYSE9PSIqIiYmKCF0LnNjaGVtYS50YWdOYW1lc3x8dC5zY2hlbWEudGFnTmFtZXMuaW5jbHVkZXMoYSkpJiYobz0hMCx0LnNjaGVtYS5hbmNlc3RvcnMmJmpvLmNhbGwodC5zY2hlbWEuYW5jZXN0b3JzLGEpKSl7bGV0IGw9dC5zY2hlbWEuYW5jZXN0b3JzW2FdLGY9LTE7Zm9yKG89ITE7KytmPGwubGVuZ3RoOyl0LnN0YWNrLmluY2x1ZGVzKGxbZl0pJiYobz0hMCl9aWYoIW8pcmV0dXJuIHQuc2NoZW1hLnN0cmlwJiYhdC5zY2hlbWEuc3RyaXAuaW5jbHVkZXMoYSk/cjp2b2lkIDA7bGV0IHM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6YSxwcm9wZXJ0aWVzOmksY2hpbGRyZW46cn07cmV0dXJuIGtkKHMsZSksc31mdW5jdGlvbiBZZTEodCxlKXtsZXQgcj17dHlwZToicm9vdCIsY2hpbGRyZW46ZEplKHQsZS5jaGlsZHJlbil9O3JldHVybiBrZChyLGUpLHJ9ZnVuY3Rpb24gWmUxKHQsZSl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOnR5cGVvZiBlLnZhbHVlPT0ic3RyaW5nIj9lLnZhbHVlOiIifTtyZXR1cm4ga2QocixlKSxyfWZ1bmN0aW9uIGRKZSh0LGUpe2xldCBhPVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2xldCByPWUsaT0tMTtmb3IoOysraTxyLmxlbmd0aDspe2xldCBvPWNKZSh0LHJbaV0pO28mJihBcnJheS5pc0FycmF5KG8pP2EucHVzaCguLi5vKTphLnB1c2gobykpfX1yZXR1cm4gYX1mdW5jdGlvbiBYZTEodCxlKXtsZXQgYT10LnN0YWNrW3Quc3RhY2subGVuZ3RoLTFdLHI9dC5zY2hlbWEuYXR0cmlidXRlcyxpPXQuc2NoZW1hLnJlcXVpcmVkLG89ciYmam8uY2FsbChyLGEpP3JbYV06dm9pZCAwLHM9ciYmam8uY2FsbChyLCIqIik/clsiKiJdOnZvaWQgMCxsPWUmJnR5cGVvZiBlPT0ib2JqZWN0Ij9lOnt9LGY9e30sYztmb3IoYyBpbiBsKWlmKGpvLmNhbGwobCxjKSl7bGV0IHU9bFtjXSxkPWZKZSh0LHBKZShvLGMpLGMsdSk7ZD09bnVsbCYmKGQ9ZkplKHQscEplKHMsYyksYyx1KSksZCE9bnVsbCYmKGZbY109ZCl9aWYoaSYmam8uY2FsbChpLGEpKXtsZXQgdT1pW2FdO2ZvcihjIGluIHUpam8uY2FsbCh1LGMpJiYham8uY2FsbChmLGMpJiYoZltjXT11W2NdKX1yZXR1cm4gZn1mdW5jdGlvbiBmSmUodCxlLGEscil7cmV0dXJuIGU/QXJyYXkuaXNBcnJheShyKT9RZTEodCxlLGEscik6dUplKHQsZSxhLHIpOnZvaWQgMH1mdW5jdGlvbiBRZTEodCxlLGEscil7bGV0IGk9LTEsbz1bXTtmb3IoOysraTxyLmxlbmd0aDspe2xldCBzPXVKZSh0LGUsYSxyW2ldKTsodHlwZW9mIHM9PSJudW1iZXIifHx0eXBlb2Ygcz09InN0cmluZyIpJiZvLnB1c2gocyl9cmV0dXJuIG99ZnVuY3Rpb24gdUplKHQsZSxhLHIpe2lmKCEodHlwZW9mIHIhPSJib29sZWFuIiYmdHlwZW9mIHIhPSJudW1iZXIiJiZ0eXBlb2YgciE9InN0cmluZyIpJiZLZTEodCxhLHIpKXtpZih0eXBlb2YgZT09Im9iamVjdCImJmUubGVuZ3RoPjEpe2xldCBpPSExLG89MDtmb3IoOysrbzxlLmxlbmd0aDspe2xldCBzPWVbb107aWYocyYmdHlwZW9mIHM9PSJvYmplY3QiJiYiZmxhZ3MiaW4gcyl7aWYocy50ZXN0KFN0cmluZyhyKSkpe2k9ITA7YnJlYWt9fWVsc2UgaWYocz09PXIpe2k9ITA7YnJlYWt9fWlmKCFpKXJldHVybn1yZXR1cm4gdC5zY2hlbWEuY2xvYmJlciYmdC5zY2hlbWEuY2xvYmJlclByZWZpeCYmdC5zY2hlbWEuY2xvYmJlci5pbmNsdWRlcyhhKT90LnNjaGVtYS5jbG9iYmVyUHJlZml4K3I6cn19ZnVuY3Rpb24gS2UxKHQsZSxhKXtsZXQgcj10LnNjaGVtYS5wcm90b2NvbHMmJmpvLmNhbGwodC5zY2hlbWEucHJvdG9jb2xzLGUpP3Quc2NoZW1hLnByb3RvY29sc1tlXTp2b2lkIDA7aWYoIXJ8fHIubGVuZ3RoPT09MClyZXR1cm4hMDtsZXQgaT1TdHJpbmcoYSksbz1pLmluZGV4T2YoIjoiKSxzPWkuaW5kZXhPZigiPyIpLGw9aS5pbmRleE9mKCIjIiksZj1pLmluZGV4T2YoIi8iKTtpZihvPDB8fGY+LTEmJm8+Znx8cz4tMSYmbz5zfHxsPi0xJiZvPmwpcmV0dXJuITA7bGV0IGM9LTE7Zm9yKDsrK2M8ci5sZW5ndGg7KXtsZXQgdT1yW2NdO2lmKG89PT11Lmxlbmd0aCYmaS5zbGljZSgwLHUubGVuZ3RoKT09PXUpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24ga2QodCxlKXtsZXQgYT16ZChlKTtlLmRhdGEmJih0LmRhdGE9VW8oZS5kYXRhKSksYSYmKHQucG9zaXRpb249YSl9ZnVuY3Rpb24gcEplKHQsZSl7bGV0IGEscj0tMTtpZih0KWZvcig7KytyPHQubGVuZ3RoOyl7bGV0IGk9dFtyXSxvPXR5cGVvZiBpPT0ic3RyaW5nIj9pOmlbMF07aWYobz09PWUpcmV0dXJuIGk7bz09PSJkYXRhKiImJihhPWkpfWlmKGUubGVuZ3RoPjQmJmUuc2xpY2UoMCw0KS50b0xvd2VyQ2FzZSgpPT09ImRhdGEiKXJldHVybiBhfXZhciBqbyxoSmU9bigoKT0+e1ZIKCk7V0goKTtOSigpO2pvPXt9Lmhhc093blByb3BlcnR5fSk7dmFyIG1KZT1uKCgpPT57aEplKCk7TkooKX0pO2Z1bmN0aW9uIGdKZSh0LGUpe2xldCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJibG9ja3F1b3RlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQud3JhcCh0LmFsbChlKSwhMCl9O3JldHVybiB0LnBhdGNoKGUsYSksdC5hcHBseURhdGEoZSxhKX12YXIgeEplPW4oKCk9Pnt9KTtmdW5jdGlvbiBiSmUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYnIiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119O3JldHVybiB0LnBhdGNoKGUsYSksW3QuYXBwbHlEYXRhKGUsYSkse3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfXZhciB2SmU9bigoKT0+e30pO2Z1bmN0aW9uIHlKZSh0LGUpe2xldCBhPWUudmFsdWU/ZS52YWx1ZStgCmA6IiIscj17fSxpPWUubGFuZz9lLmxhbmcuc3BsaXQoL1xzKy8pOltdO2kubGVuZ3RoPjAmJihyLmNsYXNzTmFtZT1bImxhbmd1YWdlLSIraVswXV0pO2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJjb2RlIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTphfV19O3JldHVybiBlLm1ldGEmJihvLmRhdGE9e21ldGE6ZS5tZXRhfSksdC5wYXRjaChlLG8pLG89dC5hcHBseURhdGEoZSxvKSxvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwcmUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W29dfSx0LnBhdGNoKGUsbyksb312YXIgd0plPW4oKCk9Pnt9KTtmdW5jdGlvbiBNSmUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGVsIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIHpKZT1uKCgpPT57fSk7ZnVuY3Rpb24ga0plKHQsZSl7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImVtIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIFNKZT1uKCgpPT57fSk7ZnVuY3Rpb24gQ0plKHQsZSl7bGV0IGE9dHlwZW9mIHQub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj90Lm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIscj1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGk9Y2Eoci50b0xvd2VyQ2FzZSgpKSxvPXQuZm9vdG5vdGVPcmRlci5pbmRleE9mKHIpLHMsbD10LmZvb3Rub3RlQ291bnRzLmdldChyKTtsPT09dm9pZCAwPyhsPTAsdC5mb290bm90ZU9yZGVyLnB1c2gocikscz10LmZvb3Rub3RlT3JkZXIubGVuZ3RoKTpzPW8rMSxsKz0xLHQuZm9vdG5vdGVDb3VudHMuc2V0KHIsbCk7bGV0IGY9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK2ErImZuLSIraSxpZDphKyJmbnJlZi0iK2krKGw+MT8iLSIrbDoiIiksZGF0YUZvb3Rub3RlUmVmOiEwLGFyaWFEZXNjcmliZWRCeTpbImZvb3Rub3RlLWxhYmVsIl19LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKHMpfV19O3QucGF0Y2goZSxmKTtsZXQgYz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltmXX07cmV0dXJuIHQucGF0Y2goZSxjKSx0LmFwcGx5RGF0YShlLGMpfXZhciBMSmU9bigoKT0+e09yKCl9KTtmdW5jdGlvbiBUSmUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaCIrZS5kZXB0aCxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIF9KZT1uKCgpPT57fSk7ZnVuY3Rpb24gQUplKHQsZSl7aWYodC5vcHRpb25zLmFsbG93RGFuZ2Vyb3VzSHRtbCl7bGV0IGE9e3R5cGU6InJhdyIsdmFsdWU6ZS52YWx1ZX07cmV0dXJuIHQucGF0Y2goZSxhKSx0LmFwcGx5RGF0YShlLGEpfX12YXIgJEplPW4oKCk9Pnt9KTtmdW5jdGlvbiBZSCh0LGUpe2xldCBhPWUucmVmZXJlbmNlVHlwZSxyPSJdIjtpZihhPT09ImNvbGxhcHNlZCI/cis9IltdIjphPT09ImZ1bGwiJiYocis9IlsiKyhlLmxhYmVsfHxlLmlkZW50aWZpZXIpKyJdIiksZS50eXBlPT09ImltYWdlUmVmZXJlbmNlIilyZXR1cm5be3R5cGU6InRleHQiLHZhbHVlOiIhWyIrZS5hbHQrcn1dO2xldCBpPXQuYWxsKGUpLG89aVswXTtvJiZvLnR5cGU9PT0idGV4dCI/by52YWx1ZT0iWyIrby52YWx1ZTppLnVuc2hpZnQoe3R5cGU6InRleHQiLHZhbHVlOiJbIn0pO2xldCBzPWlbaS5sZW5ndGgtMV07cmV0dXJuIHMmJnMudHlwZT09PSJ0ZXh0Ij9zLnZhbHVlKz1yOmkucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6cn0pLGl9dmFyIElKPW4oKCk9Pnt9KTtmdW5jdGlvbiBESmUodCxlKXtsZXQgYT1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLHI9dC5kZWZpbml0aW9uQnlJZC5nZXQoYSk7aWYoIXIpcmV0dXJuIFlIKHQsZSk7bGV0IGk9e3NyYzpjYShyLnVybHx8IiIpLGFsdDplLmFsdH07ci50aXRsZSE9PW51bGwmJnIudGl0bGUhPT12b2lkIDAmJihpLnRpdGxlPXIudGl0bGUpO2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbWciLHByb3BlcnRpZXM6aSxjaGlsZHJlbjpbXX07cmV0dXJuIHQucGF0Y2goZSxvKSx0LmFwcGx5RGF0YShlLG8pfXZhciBFSmU9bigoKT0+e09yKCk7SUooKX0pO2Z1bmN0aW9uIE5KZSh0LGUpe2xldCBhPXtzcmM6Y2EoZS51cmwpfTtlLmFsdCE9PW51bGwmJmUuYWx0IT09dm9pZCAwJiYoYS5hbHQ9ZS5hbHQpLGUudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYoYS50aXRsZT1lLnRpdGxlKTtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOmEsY2hpbGRyZW46W119O3JldHVybiB0LnBhdGNoKGUsciksdC5hcHBseURhdGEoZSxyKX12YXIgUEplPW4oKCk9PntPcigpfSk7ZnVuY3Rpb24gSUplKHQsZSl7bGV0IGE9e3R5cGU6InRleHQiLHZhbHVlOmUudmFsdWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpfTt0LnBhdGNoKGUsYSk7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W2FdfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9dmFyIEZKZT1uKCgpPT57fSk7ZnVuY3Rpb24gT0plKHQsZSl7bGV0IGE9U3RyaW5nKGUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxyPXQuZGVmaW5pdGlvbkJ5SWQuZ2V0KGEpO2lmKCFyKXJldHVybiBZSCh0LGUpO2xldCBpPXtocmVmOmNhKHIudXJsfHwiIil9O3IudGl0bGUhPT1udWxsJiZyLnRpdGxlIT09dm9pZCAwJiYoaS50aXRsZT1yLnRpdGxlKTtsZXQgbz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczppLGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLG8pLHQuYXBwbHlEYXRhKGUsbyl9dmFyIEJKZT1uKCgpPT57T3IoKTtJSigpfSk7ZnVuY3Rpb24gUkplKHQsZSl7bGV0IGE9e2hyZWY6Y2EoZS51cmwpfTtlLnRpdGxlIT09bnVsbCYmZS50aXRsZSE9PXZvaWQgMCYmKGEudGl0bGU9ZS50aXRsZSk7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6YSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxyKSx0LmFwcGx5RGF0YShlLHIpfXZhciBISmU9bigoKT0+e09yKCl9KTtmdW5jdGlvbiBWSmUodCxlLGEpe2xldCByPXQuYWxsKGUpLGk9YT9KZTEoYSk6cUplKGUpLG89e30scz1bXTtpZih0eXBlb2YgZS5jaGVja2VkPT0iYm9vbGVhbiIpe2xldCB1PXJbMF0sZDt1JiZ1LnR5cGU9PT0iZWxlbWVudCImJnUudGFnTmFtZT09PSJwIj9kPXU6KGQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119LHIudW5zaGlmdChkKSksZC5jaGlsZHJlbi5sZW5ndGg+MCYmZC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KSxkLmNoaWxkcmVuLnVuc2hpZnQoe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImlucHV0Iixwcm9wZXJ0aWVzOnt0eXBlOiJjaGVja2JveCIsY2hlY2tlZDplLmNoZWNrZWQsZGlzYWJsZWQ6ITB9LGNoaWxkcmVuOltdfSksby5jbGFzc05hbWU9WyJ0YXNrLWxpc3QtaXRlbSJdfWxldCBsPS0xO2Zvcig7KytsPHIubGVuZ3RoOyl7bGV0IHU9cltsXTsoaXx8bCE9PTB8fHUudHlwZSE9PSJlbGVtZW50Inx8dS50YWdOYW1lIT09InAiKSYmcy5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSx1LnR5cGU9PT0iZWxlbWVudCImJnUudGFnTmFtZT09PSJwIiYmIWk/cy5wdXNoKC4uLnUuY2hpbGRyZW4pOnMucHVzaCh1KX1sZXQgZj1yW3IubGVuZ3RoLTFdO2YmJihpfHxmLnR5cGUhPT0iZWxlbWVudCJ8fGYudGFnTmFtZSE9PSJwIikmJnMucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImxpIixwcm9wZXJ0aWVzOm8sY2hpbGRyZW46c307cmV0dXJuIHQucGF0Y2goZSxjKSx0LmFwcGx5RGF0YShlLGMpfWZ1bmN0aW9uIEplMSh0KXtsZXQgZT0hMTtpZih0LnR5cGU9PT0ibGlzdCIpe2U9dC5zcHJlYWR8fCExO2xldCBhPXQuY2hpbGRyZW4scj0tMTtmb3IoOyFlJiYrK3I8YS5sZW5ndGg7KWU9cUplKGFbcl0pfXJldHVybiBlfWZ1bmN0aW9uIHFKZSh0KXtsZXQgZT10LnNwcmVhZDtyZXR1cm4gZT8/dC5jaGlsZHJlbi5sZW5ndGg+MX12YXIgVUplPW4oKCk9Pnt9KTtmdW5jdGlvbiBqSmUodCxlKXtsZXQgYT17fSxyPXQuYWxsKGUpLGk9LTE7Zm9yKHR5cGVvZiBlLnN0YXJ0PT0ibnVtYmVyIiYmZS5zdGFydCE9PTEmJihhLnN0YXJ0PWUuc3RhcnQpOysraTxyLmxlbmd0aDspe2xldCBzPXJbaV07aWYocy50eXBlPT09ImVsZW1lbnQiJiZzLnRhZ05hbWU9PT0ibGkiJiZzLnByb3BlcnRpZXMmJkFycmF5LmlzQXJyYXkocy5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkmJnMucHJvcGVydGllcy5jbGFzc05hbWUuaW5jbHVkZXMoInRhc2stbGlzdC1pdGVtIikpe2EuY2xhc3NOYW1lPVsiY29udGFpbnMtdGFzay1saXN0Il07YnJlYWt9fWxldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOmUub3JkZXJlZD8ib2wiOiJ1bCIscHJvcGVydGllczphLGNoaWxkcmVuOnQud3JhcChyLCEwKX07cmV0dXJuIHQucGF0Y2goZSxvKSx0LmFwcGx5RGF0YShlLG8pfXZhciBXSmU9bigoKT0+e30pO2Z1bmN0aW9uIEdKZSh0LGUpe2xldCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIFlKZT1uKCgpPT57fSk7ZnVuY3Rpb24gWkplKHQsZSl7bGV0IGE9e3R5cGU6InJvb3QiLGNoaWxkcmVuOnQud3JhcCh0LmFsbChlKSl9O3JldHVybiB0LnBhdGNoKGUsYSksdC5hcHBseURhdGEoZSxhKX12YXIgWEplPW4oKCk9Pnt9KTtmdW5jdGlvbiBRSmUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3Ryb25nIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIEtKZT1uKCgpPT57fSk7ZnVuY3Rpb24gSkplKHQsZSl7bGV0IGE9dC5hbGwoZSkscj1hLnNoaWZ0KCksaT1bXTtpZihyKXtsZXQgcz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGhlYWQiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKFtyXSwhMCl9O3QucGF0Y2goZS5jaGlsZHJlblswXSxzKSxpLnB1c2gocyl9aWYoYS5sZW5ndGg+MCl7bGV0IHM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRib2R5Iixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQud3JhcChhLCEwKX0sbD1qSChlLmNoaWxkcmVuWzFdKSxmPVVIKGUuY2hpbGRyZW5bZS5jaGlsZHJlbi5sZW5ndGgtMV0pO2wmJmYmJihzLnBvc2l0aW9uPXtzdGFydDpsLGVuZDpmfSksaS5wdXNoKHMpfWxldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0YWJsZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAoaSwhMCl9O3JldHVybiB0LnBhdGNoKGUsbyksdC5hcHBseURhdGEoZSxvKX12YXIgZWV0PW4oKCk9PntXSCgpfSk7ZnVuY3Rpb24gdGV0KHQsZSxhKXtsZXQgcj1hP2EuY2hpbGRyZW46dm9pZCAwLG89KHI/ci5pbmRleE9mKGUpOjEpPT09MD8idGgiOiJ0ZCIscz1hJiZhLnR5cGU9PT0idGFibGUiP2EuYWxpZ246dm9pZCAwLGw9cz9zLmxlbmd0aDplLmNoaWxkcmVuLmxlbmd0aCxmPS0xLGM9W107Zm9yKDsrK2Y8bDspe2xldCBkPWUuY2hpbGRyZW5bZl0saD17fSxnPXM/c1tmXTp2b2lkIDA7ZyYmKGguYWxpZ249Zyk7bGV0IGI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6byxwcm9wZXJ0aWVzOmgsY2hpbGRyZW46W119O2QmJihiLmNoaWxkcmVuPXQuYWxsKGQpLHQucGF0Y2goZCxiKSxiPXQuYXBwbHlEYXRhKGQsYikpLGMucHVzaChiKX1sZXQgdT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidHIiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKGMsITApfTtyZXR1cm4gdC5wYXRjaChlLHUpLHQuYXBwbHlEYXRhKGUsdSl9dmFyIGFldD1uKCgpPT57fSk7ZnVuY3Rpb24gcmV0KHQsZSl7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIGlldD1uKCgpPT57fSk7ZnVuY3Rpb24gc2V0KHQpe2xldCBlPVN0cmluZyh0KSxhPS9ccj9cbnxcci9nLHI9YS5leGVjKGUpLGk9MCxvPVtdO2Zvcig7cjspby5wdXNoKG9ldChlLnNsaWNlKGksci5pbmRleCksaT4wLCEwKSxyWzBdKSxpPXIuaW5kZXgrclswXS5sZW5ndGgscj1hLmV4ZWMoZSk7cmV0dXJuIG8ucHVzaChvZXQoZS5zbGljZShpKSxpPjAsITEpKSxvLmpvaW4oIiIpfWZ1bmN0aW9uIG9ldCh0LGUsYSl7bGV0IHI9MCxpPXQubGVuZ3RoO2lmKGUpe2xldCBvPXQuY29kZVBvaW50QXQocik7Zm9yKDtvPT09OXx8bz09PTMyOylyKyssbz10LmNvZGVQb2ludEF0KHIpfWlmKGEpe2xldCBvPXQuY29kZVBvaW50QXQoaS0xKTtmb3IoO289PT05fHxvPT09MzI7KWktLSxvPXQuY29kZVBvaW50QXQoaS0xKX1yZXR1cm4gaT5yP3Quc2xpY2UocixpKToiIn12YXIgb3QyLHN0MixuZXQ9bigoKT0+e290Mj05LHN0Mj0zMn0pO2Z1bmN0aW9uIGNldCh0LGUpe2xldCBhPXt0eXBlOiJ0ZXh0Iix2YWx1ZTpzZXQoU3RyaW5nKGUudmFsdWUpKX07cmV0dXJuIHQucGF0Y2goZSxhKSx0LmFwcGx5RGF0YShlLGEpfXZhciBkZXQ9bigoKT0+e25ldCgpfSk7ZnVuY3Rpb24gZmV0KHQsZSl7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImhyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIHVldD1uKCgpPT57fSk7ZnVuY3Rpb24gWkgoKXt9dmFyIEZKLE9KPW4oKCk9Pnt4SmUoKTt2SmUoKTt3SmUoKTt6SmUoKTtTSmUoKTtMSmUoKTtfSmUoKTskSmUoKTtFSmUoKTtQSmUoKTtGSmUoKTtCSmUoKTtISmUoKTtVSmUoKTtXSmUoKTtZSmUoKTtYSmUoKTtLSmUoKTtlZXQoKTthZXQoKTtpZXQoKTtkZXQoKTt1ZXQoKTtGSj17YmxvY2txdW90ZTpnSmUsYnJlYWs6YkplLGNvZGU6eUplLGRlbGV0ZTpNSmUsZW1waGFzaXM6a0plLGZvb3Rub3RlUmVmZXJlbmNlOkNKZSxoZWFkaW5nOlRKZSxodG1sOkFKZSxpbWFnZVJlZmVyZW5jZTpESmUsaW1hZ2U6TkplLGlubGluZUNvZGU6SUplLGxpbmtSZWZlcmVuY2U6T0plLGxpbms6UkplLGxpc3RJdGVtOlZKZSxsaXN0OmpKZSxwYXJhZ3JhcGg6R0plLHJvb3Q6WkplLHN0cm9uZzpRSmUsdGFibGU6SkplLHRhYmxlQ2VsbDpyZXQsdGFibGVSb3c6dGV0LHRleHQ6Y2V0LHRoZW1hdGljQnJlYWs6ZmV0LHRvbWw6WkgseWFtbDpaSCxkZWZpbml0aW9uOlpILGZvb3Rub3RlRGVmaW5pdGlvbjpaSH19KTtmdW5jdGlvbiBwZXQodCxlKXtsZXQgYT1be3R5cGU6InRleHQiLHZhbHVlOiJcdTIxQTkifV07cmV0dXJuIGU+MSYmYS5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdXAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpTdHJpbmcoZSl9XX0pLGF9ZnVuY3Rpb24gaGV0KHQsZSl7cmV0dXJuIkJhY2sgdG8gcmVmZXJlbmNlICIrKHQrMSkrKGU+MT8iLSIrZToiIil9ZnVuY3Rpb24gbWV0KHQpe2xldCBlPXR5cGVvZiB0Lm9wdGlvbnMuY2xvYmJlclByZWZpeD09InN0cmluZyI/dC5vcHRpb25zLmNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLGE9dC5vcHRpb25zLmZvb3Rub3RlQmFja0NvbnRlbnR8fHBldCxyPXQub3B0aW9ucy5mb290bm90ZUJhY2tMYWJlbHx8aGV0LGk9dC5vcHRpb25zLmZvb3Rub3RlTGFiZWx8fCJGb290bm90ZXMiLG89dC5vcHRpb25zLmZvb3Rub3RlTGFiZWxUYWdOYW1lfHwiaDIiLHM9dC5vcHRpb25zLmZvb3Rub3RlTGFiZWxQcm9wZXJ0aWVzfHx7Y2xhc3NOYW1lOlsic3Itb25seSJdfSxsPVtdLGY9LTE7Zm9yKDsrK2Y8dC5mb290bm90ZU9yZGVyLmxlbmd0aDspe2xldCBjPXQuZm9vdG5vdGVCeUlkLmdldCh0LmZvb3Rub3RlT3JkZXJbZl0pO2lmKCFjKWNvbnRpbnVlO2xldCB1PXQuYWxsKGMpLGQ9U3RyaW5nKGMuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxoPWNhKGQudG9Mb3dlckNhc2UoKSksZz0wLGI9W10seD10LmZvb3Rub3RlQ291bnRzLmdldChkKTtmb3IoO3ghPT12b2lkIDAmJisrZzw9eDspe2IubGVuZ3RoPjAmJmIucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSk7bGV0IHk9dHlwZW9mIGE9PSJzdHJpbmciP2E6YShmLGcpO3R5cGVvZiB5PT0ic3RyaW5nIiYmKHk9e3R5cGU6InRleHQiLHZhbHVlOnl9KSxiLnB1c2goe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK2UrImZucmVmLSIraCsoZz4xPyItIitnOiIiKSxkYXRhRm9vdG5vdGVCYWNrcmVmOiIiLGFyaWFMYWJlbDp0eXBlb2Ygcj09InN0cmluZyI/cjpyKGYsZyksY2xhc3NOYW1lOlsiZGF0YS1mb290bm90ZS1iYWNrcmVmIl19LGNoaWxkcmVuOkFycmF5LmlzQXJyYXkoeSk/eTpbeV19KX1sZXQgbT11W3UubGVuZ3RoLTFdO2lmKG0mJm0udHlwZT09PSJlbGVtZW50IiYmbS50YWdOYW1lPT09InAiKXtsZXQgeT1tLmNoaWxkcmVuW20uY2hpbGRyZW4ubGVuZ3RoLTFdO3kmJnkudHlwZT09PSJ0ZXh0Ij95LnZhbHVlKz0iICI6bS5jaGlsZHJlbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KSxtLmNoaWxkcmVuLnB1c2goLi4uYil9ZWxzZSB1LnB1c2goLi4uYik7bGV0IHY9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImxpIixwcm9wZXJ0aWVzOntpZDplKyJmbi0iK2h9LGNoaWxkcmVuOnQud3JhcCh1LCEwKX07dC5wYXRjaChjLHYpLGwucHVzaCh2KX1pZihsLmxlbmd0aCE9PTApcmV0dXJue3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InNlY3Rpb24iLHByb3BlcnRpZXM6e2RhdGFGb290bm90ZXM6ITAsY2xhc3NOYW1lOlsiZm9vdG5vdGVzIl19LGNoaWxkcmVuOlt7dHlwZToiZWxlbWVudCIsdGFnTmFtZTpvLHByb3BlcnRpZXM6ey4uLlVvKHMpLGlkOiJmb290bm90ZS1sYWJlbCJ9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6aX1dfSx7dHlwZToidGV4dCIsdmFsdWU6YApgfSx7dHlwZToiZWxlbWVudCIsdGFnTmFtZToib2wiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKGwsITApfSx7dHlwZToidGV4dCIsdmFsdWU6YApgfV19fXZhciBCSj1uKCgpPT57VkgoKTtPcigpfSk7ZnVuY3Rpb24geGV0KHQsZSl7bGV0IGE9ZXx8ZXQxLHI9bmV3IE1hcCxpPW5ldyBNYXAsbz1uZXcgTWFwLHM9ey4uLkZKLC4uLmEuaGFuZGxlcnN9LGw9e2FsbDpjLGFwcGx5RGF0YTphdDEsZGVmaW5pdGlvbkJ5SWQ6cixmb290bm90ZUJ5SWQ6aSxmb290bm90ZUNvdW50czpvLGZvb3Rub3RlT3JkZXI6W10saGFuZGxlcnM6cyxvbmU6ZixvcHRpb25zOmEscGF0Y2g6dHQxLHdyYXA6aXQxfTtyZXR1cm4gbGQodCxmdW5jdGlvbih1KXtpZih1LnR5cGU9PT0iZGVmaW5pdGlvbiJ8fHUudHlwZT09PSJmb290bm90ZURlZmluaXRpb24iKXtsZXQgZD11LnR5cGU9PT0iZGVmaW5pdGlvbiI/cjppLGg9U3RyaW5nKHUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKTtkLmhhcyhoKXx8ZC5zZXQoaCx1KX19KSxsO2Z1bmN0aW9uIGYodSxkKXtsZXQgaD11LnR5cGUsZz1sLmhhbmRsZXJzW2hdO2lmKFJKLmNhbGwobC5oYW5kbGVycyxoKSYmZylyZXR1cm4gZyhsLHUsZCk7aWYobC5vcHRpb25zLnBhc3NUaHJvdWdoJiZsLm9wdGlvbnMucGFzc1Rocm91Z2guaW5jbHVkZXMoaCkpe2lmKCJjaGlsZHJlbiJpbiB1KXtsZXR7Y2hpbGRyZW46eCwuLi5tfT11LHY9VW8obSk7cmV0dXJuIHYuY2hpbGRyZW49bC5hbGwodSksdn1yZXR1cm4gVW8odSl9cmV0dXJuKGwub3B0aW9ucy51bmtub3duSGFuZGxlcnx8cnQxKShsLHUsZCl9ZnVuY3Rpb24gYyh1KXtsZXQgZD1bXTtpZigiY2hpbGRyZW4iaW4gdSl7bGV0IGg9dS5jaGlsZHJlbixnPS0xO2Zvcig7KytnPGgubGVuZ3RoOyl7bGV0IGI9bC5vbmUoaFtnXSx1KTtpZihiKXtpZihnJiZoW2ctMV0udHlwZT09PSJicmVhayImJighQXJyYXkuaXNBcnJheShiKSYmYi50eXBlPT09InRleHQiJiYoYi52YWx1ZT1nZXQoYi52YWx1ZSkpLCFBcnJheS5pc0FycmF5KGIpJiZiLnR5cGU9PT0iZWxlbWVudCIpKXtsZXQgeD1iLmNoaWxkcmVuWzBdO3gmJngudHlwZT09PSJ0ZXh0IiYmKHgudmFsdWU9Z2V0KHgudmFsdWUpKX1BcnJheS5pc0FycmF5KGIpP2QucHVzaCguLi5iKTpkLnB1c2goYil9fX1yZXR1cm4gZH19ZnVuY3Rpb24gdHQxKHQsZSl7dC5wb3NpdGlvbiYmKGUucG9zaXRpb249emQodCkpfWZ1bmN0aW9uIGF0MSh0LGUpe2xldCBhPWU7aWYodCYmdC5kYXRhKXtsZXQgcj10LmRhdGEuaE5hbWUsaT10LmRhdGEuaENoaWxkcmVuLG89dC5kYXRhLmhQcm9wZXJ0aWVzO2lmKHR5cGVvZiByPT0ic3RyaW5nIilpZihhLnR5cGU9PT0iZWxlbWVudCIpYS50YWdOYW1lPXI7ZWxzZXtsZXQgcz0iY2hpbGRyZW4iaW4gYT9hLmNoaWxkcmVuOlthXTthPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOnIscHJvcGVydGllczp7fSxjaGlsZHJlbjpzfX1hLnR5cGU9PT0iZWxlbWVudCImJm8mJk9iamVjdC5hc3NpZ24oYS5wcm9wZXJ0aWVzLFVvKG8pKSwiY2hpbGRyZW4iaW4gYSYmYS5jaGlsZHJlbiYmaSE9PW51bGwmJmkhPT12b2lkIDAmJihhLmNoaWxkcmVuPWkpfXJldHVybiBhfWZ1bmN0aW9uIHJ0MSh0LGUpe2xldCBhPWUuZGF0YXx8e30scj0idmFsdWUiaW4gZSYmIShSSi5jYWxsKGEsImhQcm9wZXJ0aWVzIil8fFJKLmNhbGwoYSwiaENoaWxkcmVuIikpP3t0eXBlOiJ0ZXh0Iix2YWx1ZTplLnZhbHVlfTp7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGl2Iixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLHIpLHQuYXBwbHlEYXRhKGUscil9ZnVuY3Rpb24gaXQxKHQsZSl7bGV0IGE9W10scj0tMTtmb3IoZSYmYS5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KTsrK3I8dC5sZW5ndGg7KXImJmEucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksYS5wdXNoKHRbcl0pO3JldHVybiBlJiZ0Lmxlbmd0aD4wJiZhLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLGF9ZnVuY3Rpb24gZ2V0KHQpe2xldCBlPTAsYT10LmNoYXJDb2RlQXQoZSk7Zm9yKDthPT09OXx8YT09PTMyOyllKyssYT10LmNoYXJDb2RlQXQoZSk7cmV0dXJuIHQuc2xpY2UoZSl9dmFyIFJKLGV0MSxiZXQ9bigoKT0+e1ZIKCk7ZksoKTtXSCgpO09KKCk7Uko9e30uaGFzT3duUHJvcGVydHksZXQxPXt9fSk7ZnVuY3Rpb24gSEoodCxlKXtsZXQgYT14ZXQodCxlKSxyPWEub25lKHQsdm9pZCAwKSxpPW1ldChhKSxvPUFycmF5LmlzQXJyYXkocik/e3R5cGU6InJvb3QiLGNoaWxkcmVuOnJ9OnJ8fHt0eXBlOiJyb290IixjaGlsZHJlbjpbXX07cmV0dXJuIGkmJigiY2hpbGRyZW4iaW4gbyxvLmNoaWxkcmVuLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0saSkpLG99dmFyIHZldD1uKCgpPT57Rm8oKTtCSigpO2JldCgpfSk7dmFyIHlldD1uKCgpPT57T0ooKTt2ZXQoKTtCSigpfSk7dmFyIHdldCxNZXQ9bigoKT0+e3dldD1bImFyZWEiLCJiYXNlIiwiYmFzZWZvbnQiLCJiZ3NvdW5kIiwiYnIiLCJjb2wiLCJjb21tYW5kIiwiZW1iZWQiLCJmcmFtZSIsImhyIiwiaW1hZ2UiLCJpbWciLCJpbnB1dCIsImtleWdlbiIsImxpbmsiLCJtZXRhIiwicGFyYW0iLCJzb3VyY2UiLCJ0cmFjayIsIndiciJdfSk7dmFyIFNpLHFKPW4oKCk9PntTaT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEscil7dGhpcy5ub3JtYWw9YSx0aGlzLnByb3BlcnR5PWUsciYmKHRoaXMuc3BhY2U9cil9fTtTaS5wcm90b3R5cGUubm9ybWFsPXt9LFNpLnByb3RvdHlwZS5wcm9wZXJ0eT17fSxTaS5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7ZnVuY3Rpb24gVkoodCxlKXtsZXQgYT17fSxyPXt9O2ZvcihsZXQgaSBvZiB0KU9iamVjdC5hc3NpZ24oYSxpLnByb3BlcnR5KSxPYmplY3QuYXNzaWduKHIsaS5ub3JtYWwpO3JldHVybiBuZXcgU2koYSxyLGUpfXZhciB6ZXQ9bigoKT0+e3FKKCl9KTtmdW5jdGlvbiBONih0KXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfXZhciBYSD1uKCgpPT57fSk7dmFyIFoxLFVKPW4oKCk9PntaMT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuYXR0cmlidXRlPWEsdGhpcy5wcm9wZXJ0eT1lfX07WjEucHJvdG90eXBlLmF0dHJpYnV0ZT0iIixaMS5wcm90b3R5cGUuYm9vbGVhbmlzaD0hMSxaMS5wcm90b3R5cGUuYm9vbGVhbj0hMSxaMS5wcm90b3R5cGUuY29tbWFPclNwYWNlU2VwYXJhdGVkPSExLFoxLnByb3RvdHlwZS5jb21tYVNlcGFyYXRlZD0hMSxaMS5wcm90b3R5cGUuZGVmaW5lZD0hMSxaMS5wcm90b3R5cGUubXVzdFVzZVByb3BlcnR5PSExLFoxLnByb3RvdHlwZS5udW1iZXI9ITEsWjEucHJvdG90eXBlLm92ZXJsb2FkZWRCb29sZWFuPSExLFoxLnByb3RvdHlwZS5wcm9wZXJ0eT0iIixaMS5wcm90b3R5cGUuc3BhY2VTZXBhcmF0ZWQ9ITEsWjEucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO3ZhciBTZD17fTtldChTZCx7Ym9vbGVhbjooKT0+dXQsYm9vbGVhbmlzaDooKT0+TTEsY29tbWFPclNwYWNlU2VwYXJhdGVkOigpPT5lYSxjb21tYVNlcGFyYXRlZDooKT0+V28sbnVtYmVyOigpPT5MZSxvdmVybG9hZGVkQm9vbGVhbjooKT0+UUgsc3BhY2VTZXBhcmF0ZWQ6KCk9Pkt0fSk7ZnVuY3Rpb24geW4oKXtyZXR1cm4gMioqKytvdDF9dmFyIG90MSx1dCxNMSxRSCxMZSxLdCxXbyxlYSxDZD1uKCgpPT57b3QxPTAsdXQ9eW4oKSxNMT15bigpLFFIPXluKCksTGU9eW4oKSxLdD15bigpLFdvPXluKCksZWE9eW4oKX0pO2Z1bmN0aW9uIGtldCh0LGUsYSl7YSYmKHRbZV09YSl9dmFyIGpKLHduLFdKPW4oKCk9PntVSigpO0NkKCk7ako9T2JqZWN0LmtleXMoU2QpLHduPWNsYXNzIGV4dGVuZHMgWjF7Y29uc3RydWN0b3IoZSxhLHIsaSl7bGV0IG89LTE7aWYoc3VwZXIoZSxhKSxrZXQodGhpcywic3BhY2UiLGkpLHR5cGVvZiByPT0ibnVtYmVyIilmb3IoOysrbzxqSi5sZW5ndGg7KXtsZXQgcz1qSltvXTtrZXQodGhpcyxqSltvXSwociZTZFtzXSk9PT1TZFtzXSl9fX07d24ucHJvdG90eXBlLmRlZmluZWQ9ITB9KTtmdW5jdGlvbiBfYSh0KXtsZXQgZT17fSxhPXt9O2ZvcihsZXRbcixpXW9mIE9iamVjdC5lbnRyaWVzKHQucHJvcGVydGllcykpe2xldCBvPW5ldyB3bihyLHQudHJhbnNmb3JtKHQuYXR0cmlidXRlc3x8e30sciksaSx0LnNwYWNlKTt0Lm11c3RVc2VQcm9wZXJ0eSYmdC5tdXN0VXNlUHJvcGVydHkuaW5jbHVkZXMocikmJihvLm11c3RVc2VQcm9wZXJ0eT0hMCksZVtyXT1vLGFbTjYocildPXIsYVtONihvLmF0dHJpYnV0ZSldPXJ9cmV0dXJuIG5ldyBTaShlLGEsdC5zcGFjZSl9dmFyIE1uPW4oKCk9PntYSCgpO1dKKCk7cUooKX0pO3ZhciBHSixDZXQ9bigoKT0+e01uKCk7Q2QoKTtHSj1fYSh7cHJvcGVydGllczp7YXJpYUFjdGl2ZURlc2NlbmRhbnQ6bnVsbCxhcmlhQXRvbWljOk0xLGFyaWFBdXRvQ29tcGxldGU6bnVsbCxhcmlhQnVzeTpNMSxhcmlhQ2hlY2tlZDpNMSxhcmlhQ29sQ291bnQ6TGUsYXJpYUNvbEluZGV4OkxlLGFyaWFDb2xTcGFuOkxlLGFyaWFDb250cm9sczpLdCxhcmlhQ3VycmVudDpudWxsLGFyaWFEZXNjcmliZWRCeTpLdCxhcmlhRGV0YWlsczpudWxsLGFyaWFEaXNhYmxlZDpNMSxhcmlhRHJvcEVmZmVjdDpLdCxhcmlhRXJyb3JNZXNzYWdlOm51bGwsYXJpYUV4cGFuZGVkOk0xLGFyaWFGbG93VG86S3QsYXJpYUdyYWJiZWQ6TTEsYXJpYUhhc1BvcHVwOm51bGwsYXJpYUhpZGRlbjpNMSxhcmlhSW52YWxpZDpudWxsLGFyaWFLZXlTaG9ydGN1dHM6bnVsbCxhcmlhTGFiZWw6bnVsbCxhcmlhTGFiZWxsZWRCeTpLdCxhcmlhTGV2ZWw6TGUsYXJpYUxpdmU6bnVsbCxhcmlhTW9kYWw6TTEsYXJpYU11bHRpTGluZTpNMSxhcmlhTXVsdGlTZWxlY3RhYmxlOk0xLGFyaWFPcmllbnRhdGlvbjpudWxsLGFyaWFPd25zOkt0LGFyaWFQbGFjZWhvbGRlcjpudWxsLGFyaWFQb3NJblNldDpMZSxhcmlhUHJlc3NlZDpNMSxhcmlhUmVhZE9ubHk6TTEsYXJpYVJlbGV2YW50Om51bGwsYXJpYVJlcXVpcmVkOk0xLGFyaWFSb2xlRGVzY3JpcHRpb246S3QsYXJpYVJvd0NvdW50OkxlLGFyaWFSb3dJbmRleDpMZSxhcmlhUm93U3BhbjpMZSxhcmlhU2VsZWN0ZWQ6TTEsYXJpYVNldFNpemU6TGUsYXJpYVNvcnQ6bnVsbCxhcmlhVmFsdWVNYXg6TGUsYXJpYVZhbHVlTWluOkxlLGFyaWFWYWx1ZU5vdzpMZSxhcmlhVmFsdWVUZXh0Om51bGwscm9sZTpudWxsfSx0cmFuc2Zvcm0odCxlKXtyZXR1cm4gZT09PSJyb2xlIj9lOiJhcmlhLSIrZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpfX0pfSk7ZnVuY3Rpb24gS0godCxlKXtyZXR1cm4gZSBpbiB0P3RbZV06ZX12YXIgWUo9bigoKT0+e30pO2Z1bmN0aW9uIEpIKHQsZSl7cmV0dXJuIEtIKHQsZS50b0xvd2VyQ2FzZSgpKX12YXIgWko9bigoKT0+e1lKKCl9KTt2YXIgTGV0LFRldD1uKCgpPT57WkooKTtNbigpO0NkKCk7TGV0PV9hKHthdHRyaWJ1dGVzOnthY2NlcHRjaGFyc2V0OiJhY2NlcHQtY2hhcnNldCIsY2xhc3NuYW1lOiJjbGFzcyIsaHRtbGZvcjoiZm9yIixodHRwZXF1aXY6Imh0dHAtZXF1aXYifSxtdXN0VXNlUHJvcGVydHk6WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0scHJvcGVydGllczp7YWJicjpudWxsLGFjY2VwdDpXbyxhY2NlcHRDaGFyc2V0Okt0LGFjY2Vzc0tleTpLdCxhY3Rpb246bnVsbCxhbGxvdzpudWxsLGFsbG93RnVsbFNjcmVlbjp1dCxhbGxvd1BheW1lbnRSZXF1ZXN0OnV0LGFsbG93VXNlck1lZGlhOnV0LGFsdDpudWxsLGFzOm51bGwsYXN5bmM6dXQsYXV0b0NhcGl0YWxpemU6bnVsbCxhdXRvQ29tcGxldGU6S3QsYXV0b0ZvY3VzOnV0LGF1dG9QbGF5OnV0LGJsb2NraW5nOkt0LGNhcHR1cmU6bnVsbCxjaGFyU2V0Om51bGwsY2hlY2tlZDp1dCxjaXRlOm51bGwsY2xhc3NOYW1lOkt0LGNvbHM6TGUsY29sU3BhbjpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50RWRpdGFibGU6TTEsY29udHJvbHM6dXQsY29udHJvbHNMaXN0Okt0LGNvb3JkczpMZXxXbyxjcm9zc09yaWdpbjpudWxsLGRhdGE6bnVsbCxkYXRlVGltZTpudWxsLGRlY29kaW5nOm51bGwsZGVmYXVsdDp1dCxkZWZlcjp1dCxkaXI6bnVsbCxkaXJOYW1lOm51bGwsZGlzYWJsZWQ6dXQsZG93bmxvYWQ6UUgsZHJhZ2dhYmxlOk0xLGVuY1R5cGU6bnVsbCxlbnRlcktleUhpbnQ6bnVsbCxmZXRjaFByaW9yaXR5Om51bGwsZm9ybTpudWxsLGZvcm1BY3Rpb246bnVsbCxmb3JtRW5jVHlwZTpudWxsLGZvcm1NZXRob2Q6bnVsbCxmb3JtTm9WYWxpZGF0ZTp1dCxmb3JtVGFyZ2V0Om51bGwsaGVhZGVyczpLdCxoZWlnaHQ6TGUsaGlkZGVuOlFILGhpZ2g6TGUsaHJlZjpudWxsLGhyZWZMYW5nOm51bGwsaHRtbEZvcjpLdCxodHRwRXF1aXY6S3QsaWQ6bnVsbCxpbWFnZVNpemVzOm51bGwsaW1hZ2VTcmNTZXQ6bnVsbCxpbmVydDp1dCxpbnB1dE1vZGU6bnVsbCxpbnRlZ3JpdHk6bnVsbCxpczpudWxsLGlzTWFwOnV0LGl0ZW1JZDpudWxsLGl0ZW1Qcm9wOkt0LGl0ZW1SZWY6S3QsaXRlbVNjb3BlOnV0LGl0ZW1UeXBlOkt0LGtpbmQ6bnVsbCxsYWJlbDpudWxsLGxhbmc6bnVsbCxsYW5ndWFnZTpudWxsLGxpc3Q6bnVsbCxsb2FkaW5nOm51bGwsbG9vcDp1dCxsb3c6TGUsbWFuaWZlc3Q6bnVsbCxtYXg6bnVsbCxtYXhMZW5ndGg6TGUsbWVkaWE6bnVsbCxtZXRob2Q6bnVsbCxtaW46bnVsbCxtaW5MZW5ndGg6TGUsbXVsdGlwbGU6dXQsbXV0ZWQ6dXQsbmFtZTpudWxsLG5vbmNlOm51bGwsbm9Nb2R1bGU6dXQsbm9WYWxpZGF0ZTp1dCxvbkFib3J0Om51bGwsb25BZnRlclByaW50Om51bGwsb25BdXhDbGljazpudWxsLG9uQmVmb3JlTWF0Y2g6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWZvcmVUb2dnbGU6bnVsbCxvbkJlZm9yZVVubG9hZDpudWxsLG9uQmx1cjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvbnRleHRMb3N0Om51bGwsb25Db250ZXh0TWVudTpudWxsLG9uQ29udGV4dFJlc3RvcmVkOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZGVkOm51bGwsb25FcnJvcjpudWxsLG9uRm9jdXM6bnVsbCxvbkZvcm1EYXRhOm51bGwsb25IYXNoQ2hhbmdlOm51bGwsb25JbnB1dDpudWxsLG9uSW52YWxpZDpudWxsLG9uS2V5RG93bjpudWxsLG9uS2V5UHJlc3M6bnVsbCxvbktleVVwOm51bGwsb25MYW5ndWFnZUNoYW5nZTpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRFbmQ6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTWVzc2FnZUVycm9yOm51bGwsb25Nb3VzZURvd246bnVsbCxvbk1vdXNlRW50ZXI6bnVsbCxvbk1vdXNlTGVhdmU6bnVsbCxvbk1vdXNlTW92ZTpudWxsLG9uTW91c2VPdXQ6bnVsbCxvbk1vdXNlT3ZlcjpudWxsLG9uTW91c2VVcDpudWxsLG9uT2ZmbGluZTpudWxsLG9uT25saW5lOm51bGwsb25QYWdlSGlkZTpudWxsLG9uUGFnZVNob3c6bnVsbCxvblBhc3RlOm51bGwsb25QYXVzZTpudWxsLG9uUGxheTpudWxsLG9uUGxheWluZzpudWxsLG9uUG9wU3RhdGU6bnVsbCxvblByb2dyZXNzOm51bGwsb25SYXRlQ2hhbmdlOm51bGwsb25SZWplY3Rpb25IYW5kbGVkOm51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNjcm9sbEVuZDpudWxsLG9uU2VjdXJpdHlQb2xpY3lWaW9sYXRpb246bnVsbCxvblNlZWtlZDpudWxsLG9uU2Vla2luZzpudWxsLG9uU2VsZWN0Om51bGwsb25TbG90Q2hhbmdlOm51bGwsb25TdGFsbGVkOm51bGwsb25TdG9yYWdlOm51bGwsb25TdWJtaXQ6bnVsbCxvblN1c3BlbmQ6bnVsbCxvblRpbWVVcGRhdGU6bnVsbCxvblRvZ2dsZTpudWxsLG9uVW5oYW5kbGVkUmVqZWN0aW9uOm51bGwsb25VbmxvYWQ6bnVsbCxvblZvbHVtZUNoYW5nZTpudWxsLG9uV2FpdGluZzpudWxsLG9uV2hlZWw6bnVsbCxvcGVuOnV0LG9wdGltdW06TGUscGF0dGVybjpudWxsLHBpbmc6S3QscGxhY2Vob2xkZXI6bnVsbCxwbGF5c0lubGluZTp1dCxwb3BvdmVyOm51bGwscG9wb3ZlclRhcmdldDpudWxsLHBvcG92ZXJUYXJnZXRBY3Rpb246bnVsbCxwb3N0ZXI6bnVsbCxwcmVsb2FkOm51bGwscmVhZE9ubHk6dXQscmVmZXJyZXJQb2xpY3k6bnVsbCxyZWw6S3QscmVxdWlyZWQ6dXQscmV2ZXJzZWQ6dXQscm93czpMZSxyb3dTcGFuOkxlLHNhbmRib3g6S3Qsc2NvcGU6bnVsbCxzY29wZWQ6dXQsc2VhbWxlc3M6dXQsc2VsZWN0ZWQ6dXQsc2hhZG93Um9vdENsb25hYmxlOnV0LHNoYWRvd1Jvb3REZWxlZ2F0ZXNGb2N1czp1dCxzaGFkb3dSb290TW9kZTpudWxsLHNoYXBlOm51bGwsc2l6ZTpMZSxzaXplczpudWxsLHNsb3Q6bnVsbCxzcGFuOkxlLHNwZWxsQ2hlY2s6TTEsc3JjOm51bGwsc3JjRG9jOm51bGwsc3JjTGFuZzpudWxsLHNyY1NldDpudWxsLHN0YXJ0OkxlLHN0ZXA6bnVsbCxzdHlsZTpudWxsLHRhYkluZGV4OkxlLHRhcmdldDpudWxsLHRpdGxlOm51bGwsdHJhbnNsYXRlOm51bGwsdHlwZTpudWxsLHR5cGVNdXN0TWF0Y2g6dXQsdXNlTWFwOm51bGwsdmFsdWU6TTEsd2lkdGg6TGUsd3JhcDpudWxsLHdyaXRpbmdTdWdnZXN0aW9uczpudWxsLGFsaWduOm51bGwsYUxpbms6bnVsbCxhcmNoaXZlOkt0LGF4aXM6bnVsbCxiYWNrZ3JvdW5kOm51bGwsYmdDb2xvcjpudWxsLGJvcmRlcjpMZSxib3JkZXJDb2xvcjpudWxsLGJvdHRvbU1hcmdpbjpMZSxjZWxsUGFkZGluZzpudWxsLGNlbGxTcGFjaW5nOm51bGwsY2hhcjpudWxsLGNoYXJPZmY6bnVsbCxjbGFzc0lkOm51bGwsY2xlYXI6bnVsbCxjb2RlOm51bGwsY29kZUJhc2U6bnVsbCxjb2RlVHlwZTpudWxsLGNvbG9yOm51bGwsY29tcGFjdDp1dCxkZWNsYXJlOnV0LGV2ZW50Om51bGwsZmFjZTpudWxsLGZyYW1lOm51bGwsZnJhbWVCb3JkZXI6bnVsbCxoU3BhY2U6TGUsbGVmdE1hcmdpbjpMZSxsaW5rOm51bGwsbG9uZ0Rlc2M6bnVsbCxsb3dTcmM6bnVsbCxtYXJnaW5IZWlnaHQ6TGUsbWFyZ2luV2lkdGg6TGUsbm9SZXNpemU6dXQsbm9IcmVmOnV0LG5vU2hhZGU6dXQsbm9XcmFwOnV0LG9iamVjdDpudWxsLHByb2ZpbGU6bnVsbCxwcm9tcHQ6bnVsbCxyZXY6bnVsbCxyaWdodE1hcmdpbjpMZSxydWxlczpudWxsLHNjaGVtZTpudWxsLHNjcm9sbGluZzpNMSxzdGFuZGJ5Om51bGwsc3VtbWFyeTpudWxsLHRleHQ6bnVsbCx0b3BNYXJnaW46TGUsdmFsdWVUeXBlOm51bGwsdmVyc2lvbjpudWxsLHZBbGlnbjpudWxsLHZMaW5rOm51bGwsdlNwYWNlOkxlLGFsbG93VHJhbnNwYXJlbmN5Om51bGwsYXV0b0NvcnJlY3Q6bnVsbCxhdXRvU2F2ZTpudWxsLGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlOnV0LGRpc2FibGVSZW1vdGVQbGF5YmFjazp1dCxwcmVmaXg6bnVsbCxwcm9wZXJ0eTpudWxsLHJlc3VsdHM6TGUsc2VjdXJpdHk6bnVsbCx1bnNlbGVjdGFibGU6bnVsbH0sc3BhY2U6Imh0bWwiLHRyYW5zZm9ybTpKSH0pfSk7dmFyIF9ldCxBZXQ9bigoKT0+e1lKKCk7TW4oKTtDZCgpO19ldD1fYSh7YXR0cmlidXRlczp7YWNjZW50SGVpZ2h0OiJhY2NlbnQtaGVpZ2h0IixhbGlnbm1lbnRCYXNlbGluZToiYWxpZ25tZW50LWJhc2VsaW5lIixhcmFiaWNGb3JtOiJhcmFiaWMtZm9ybSIsYmFzZWxpbmVTaGlmdDoiYmFzZWxpbmUtc2hpZnQiLGNhcEhlaWdodDoiY2FwLWhlaWdodCIsY2xhc3NOYW1lOiJjbGFzcyIsY2xpcFBhdGg6ImNsaXAtcGF0aCIsY2xpcFJ1bGU6ImNsaXAtcnVsZSIsY29sb3JJbnRlcnBvbGF0aW9uOiJjb2xvci1pbnRlcnBvbGF0aW9uIixjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLGNvbG9yUHJvZmlsZToiY29sb3ItcHJvZmlsZSIsY29sb3JSZW5kZXJpbmc6ImNvbG9yLXJlbmRlcmluZyIsY3Jvc3NPcmlnaW46ImNyb3Nzb3JpZ2luIixkYXRhVHlwZToiZGF0YXR5cGUiLGRvbWluYW50QmFzZWxpbmU6ImRvbWluYW50LWJhc2VsaW5lIixlbmFibGVCYWNrZ3JvdW5kOiJlbmFibGUtYmFja2dyb3VuZCIsZmlsbE9wYWNpdHk6ImZpbGwtb3BhY2l0eSIsZmlsbFJ1bGU6ImZpbGwtcnVsZSIsZmxvb2RDb2xvcjoiZmxvb2QtY29sb3IiLGZsb29kT3BhY2l0eToiZmxvb2Qtb3BhY2l0eSIsZm9udEZhbWlseToiZm9udC1mYW1pbHkiLGZvbnRTaXplOiJmb250LXNpemUiLGZvbnRTaXplQWRqdXN0OiJmb250LXNpemUtYWRqdXN0Iixmb250U3RyZXRjaDoiZm9udC1zdHJldGNoIixmb250U3R5bGU6ImZvbnQtc3R5bGUiLGZvbnRWYXJpYW50OiJmb250LXZhcmlhbnQiLGZvbnRXZWlnaHQ6ImZvbnQtd2VpZ2h0IixnbHlwaE5hbWU6ImdseXBoLW5hbWUiLGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOiJnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIixnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6ImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIixocmVmTGFuZzoiaHJlZmxhbmciLGhvcml6QWR2WDoiaG9yaXotYWR2LXgiLGhvcml6T3JpZ2luWDoiaG9yaXotb3JpZ2luLXgiLGhvcml6T3JpZ2luWToiaG9yaXotb3JpZ2luLXkiLGltYWdlUmVuZGVyaW5nOiJpbWFnZS1yZW5kZXJpbmciLGxldHRlclNwYWNpbmc6ImxldHRlci1zcGFjaW5nIixsaWdodGluZ0NvbG9yOiJsaWdodGluZy1jb2xvciIsbWFya2VyRW5kOiJtYXJrZXItZW5kIixtYXJrZXJNaWQ6Im1hcmtlci1taWQiLG1hcmtlclN0YXJ0OiJtYXJrZXItc3RhcnQiLG5hdkRvd246Im5hdi1kb3duIixuYXZEb3duTGVmdDoibmF2LWRvd24tbGVmdCIsbmF2RG93blJpZ2h0OiJuYXYtZG93bi1yaWdodCIsbmF2TGVmdDoibmF2LWxlZnQiLG5hdk5leHQ6Im5hdi1uZXh0IixuYXZQcmV2OiJuYXYtcHJldiIsbmF2UmlnaHQ6Im5hdi1yaWdodCIsbmF2VXA6Im5hdi11cCIsbmF2VXBMZWZ0OiJuYXYtdXAtbGVmdCIsbmF2VXBSaWdodDoibmF2LXVwLXJpZ2h0IixvbkFib3J0OiJvbmFib3J0IixvbkFjdGl2YXRlOiJvbmFjdGl2YXRlIixvbkFmdGVyUHJpbnQ6Im9uYWZ0ZXJwcmludCIsb25CZWZvcmVQcmludDoib25iZWZvcmVwcmludCIsb25CZWdpbjoib25iZWdpbiIsb25DYW5jZWw6Im9uY2FuY2VsIixvbkNhblBsYXk6Im9uY2FucGxheSIsb25DYW5QbGF5VGhyb3VnaDoib25jYW5wbGF5dGhyb3VnaCIsb25DaGFuZ2U6Im9uY2hhbmdlIixvbkNsaWNrOiJvbmNsaWNrIixvbkNsb3NlOiJvbmNsb3NlIixvbkNvcHk6Im9uY29weSIsb25DdWVDaGFuZ2U6Im9uY3VlY2hhbmdlIixvbkN1dDoib25jdXQiLG9uRGJsQ2xpY2s6Im9uZGJsY2xpY2siLG9uRHJhZzoib25kcmFnIixvbkRyYWdFbmQ6Im9uZHJhZ2VuZCIsb25EcmFnRW50ZXI6Im9uZHJhZ2VudGVyIixvbkRyYWdFeGl0OiJvbmRyYWdleGl0IixvbkRyYWdMZWF2ZToib25kcmFnbGVhdmUiLG9uRHJhZ092ZXI6Im9uZHJhZ292ZXIiLG9uRHJhZ1N0YXJ0OiJvbmRyYWdzdGFydCIsb25Ecm9wOiJvbmRyb3AiLG9uRHVyYXRpb25DaGFuZ2U6Im9uZHVyYXRpb25jaGFuZ2UiLG9uRW1wdGllZDoib25lbXB0aWVkIixvbkVuZDoib25lbmQiLG9uRW5kZWQ6Im9uZW5kZWQiLG9uRXJyb3I6Im9uZXJyb3IiLG9uRm9jdXM6Im9uZm9jdXMiLG9uRm9jdXNJbjoib25mb2N1c2luIixvbkZvY3VzT3V0OiJvbmZvY3Vzb3V0Iixvbkhhc2hDaGFuZ2U6Im9uaGFzaGNoYW5nZSIsb25JbnB1dDoib25pbnB1dCIsb25JbnZhbGlkOiJvbmludmFsaWQiLG9uS2V5RG93bjoib25rZXlkb3duIixvbktleVByZXNzOiJvbmtleXByZXNzIixvbktleVVwOiJvbmtleXVwIixvbkxvYWQ6Im9ubG9hZCIsb25Mb2FkZWREYXRhOiJvbmxvYWRlZGRhdGEiLG9uTG9hZGVkTWV0YWRhdGE6Im9ubG9hZGVkbWV0YWRhdGEiLG9uTG9hZFN0YXJ0OiJvbmxvYWRzdGFydCIsb25NZXNzYWdlOiJvbm1lc3NhZ2UiLG9uTW91c2VEb3duOiJvbm1vdXNlZG93biIsb25Nb3VzZUVudGVyOiJvbm1vdXNlZW50ZXIiLG9uTW91c2VMZWF2ZToib25tb3VzZWxlYXZlIixvbk1vdXNlTW92ZToib25tb3VzZW1vdmUiLG9uTW91c2VPdXQ6Im9ubW91c2VvdXQiLG9uTW91c2VPdmVyOiJvbm1vdXNlb3ZlciIsb25Nb3VzZVVwOiJvbm1vdXNldXAiLG9uTW91c2VXaGVlbDoib25tb3VzZXdoZWVsIixvbk9mZmxpbmU6Im9ub2ZmbGluZSIsb25PbmxpbmU6Im9ub25saW5lIixvblBhZ2VIaWRlOiJvbnBhZ2VoaWRlIixvblBhZ2VTaG93OiJvbnBhZ2VzaG93IixvblBhc3RlOiJvbnBhc3RlIixvblBhdXNlOiJvbnBhdXNlIixvblBsYXk6Im9ucGxheSIsb25QbGF5aW5nOiJvbnBsYXlpbmciLG9uUG9wU3RhdGU6Im9ucG9wc3RhdGUiLG9uUHJvZ3Jlc3M6Im9ucHJvZ3Jlc3MiLG9uUmF0ZUNoYW5nZToib25yYXRlY2hhbmdlIixvblJlcGVhdDoib25yZXBlYXQiLG9uUmVzZXQ6Im9ucmVzZXQiLG9uUmVzaXplOiJvbnJlc2l6ZSIsb25TY3JvbGw6Im9uc2Nyb2xsIixvblNlZWtlZDoib25zZWVrZWQiLG9uU2Vla2luZzoib25zZWVraW5nIixvblNlbGVjdDoib25zZWxlY3QiLG9uU2hvdzoib25zaG93IixvblN0YWxsZWQ6Im9uc3RhbGxlZCIsb25TdG9yYWdlOiJvbnN0b3JhZ2UiLG9uU3VibWl0OiJvbnN1Ym1pdCIsb25TdXNwZW5kOiJvbnN1c3BlbmQiLG9uVGltZVVwZGF0ZToib250aW1ldXBkYXRlIixvblRvZ2dsZToib250b2dnbGUiLG9uVW5sb2FkOiJvbnVubG9hZCIsb25Wb2x1bWVDaGFuZ2U6Im9udm9sdW1lY2hhbmdlIixvbldhaXRpbmc6Im9ud2FpdGluZyIsb25ab29tOiJvbnpvb20iLG92ZXJsaW5lUG9zaXRpb246Im92ZXJsaW5lLXBvc2l0aW9uIixvdmVybGluZVRoaWNrbmVzczoib3ZlcmxpbmUtdGhpY2tuZXNzIixwYWludE9yZGVyOiJwYWludC1vcmRlciIscGFub3NlMToicGFub3NlLTEiLHBvaW50ZXJFdmVudHM6InBvaW50ZXItZXZlbnRzIixyZWZlcnJlclBvbGljeToicmVmZXJyZXJwb2xpY3kiLHJlbmRlcmluZ0ludGVudDoicmVuZGVyaW5nLWludGVudCIsc2hhcGVSZW5kZXJpbmc6InNoYXBlLXJlbmRlcmluZyIsc3RvcENvbG9yOiJzdG9wLWNvbG9yIixzdG9wT3BhY2l0eToic3RvcC1vcGFjaXR5IixzdHJpa2V0aHJvdWdoUG9zaXRpb246InN0cmlrZXRocm91Z2gtcG9zaXRpb24iLHN0cmlrZXRocm91Z2hUaGlja25lc3M6InN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIixzdHJva2VEYXNoQXJyYXk6InN0cm9rZS1kYXNoYXJyYXkiLHN0cm9rZURhc2hPZmZzZXQ6InN0cm9rZS1kYXNob2Zmc2V0IixzdHJva2VMaW5lQ2FwOiJzdHJva2UtbGluZWNhcCIsc3Ryb2tlTGluZUpvaW46InN0cm9rZS1saW5lam9pbiIsc3Ryb2tlTWl0ZXJMaW1pdDoic3Ryb2tlLW1pdGVybGltaXQiLHN0cm9rZU9wYWNpdHk6InN0cm9rZS1vcGFjaXR5IixzdHJva2VXaWR0aDoic3Ryb2tlLXdpZHRoIix0YWJJbmRleDoidGFiaW5kZXgiLHRleHRBbmNob3I6InRleHQtYW5jaG9yIix0ZXh0RGVjb3JhdGlvbjoidGV4dC1kZWNvcmF0aW9uIix0ZXh0UmVuZGVyaW5nOiJ0ZXh0LXJlbmRlcmluZyIsdHJhbnNmb3JtT3JpZ2luOiJ0cmFuc2Zvcm0tb3JpZ2luIix0eXBlT2Y6InR5cGVvZiIsdW5kZXJsaW5lUG9zaXRpb246InVuZGVybGluZS1wb3NpdGlvbiIsdW5kZXJsaW5lVGhpY2tuZXNzOiJ1bmRlcmxpbmUtdGhpY2tuZXNzIix1bmljb2RlQmlkaToidW5pY29kZS1iaWRpIix1bmljb2RlUmFuZ2U6InVuaWNvZGUtcmFuZ2UiLHVuaXRzUGVyRW06InVuaXRzLXBlci1lbSIsdkFscGhhYmV0aWM6InYtYWxwaGFiZXRpYyIsdkhhbmdpbmc6InYtaGFuZ2luZyIsdklkZW9ncmFwaGljOiJ2LWlkZW9ncmFwaGljIix2TWF0aGVtYXRpY2FsOiJ2LW1hdGhlbWF0aWNhbCIsdmVjdG9yRWZmZWN0OiJ2ZWN0b3ItZWZmZWN0Iix2ZXJ0QWR2WToidmVydC1hZHYteSIsdmVydE9yaWdpblg6InZlcnQtb3JpZ2luLXgiLHZlcnRPcmlnaW5ZOiJ2ZXJ0LW9yaWdpbi15Iix3b3JkU3BhY2luZzoid29yZC1zcGFjaW5nIix3cml0aW5nTW9kZToid3JpdGluZy1tb2RlIix4SGVpZ2h0OiJ4LWhlaWdodCIscGxheWJhY2tPcmRlcjoicGxheWJhY2tvcmRlciIsdGltZWxpbmVCZWdpbjoidGltZWxpbmViZWdpbiJ9LHByb3BlcnRpZXM6e2Fib3V0OmVhLGFjY2VudEhlaWdodDpMZSxhY2N1bXVsYXRlOm51bGwsYWRkaXRpdmU6bnVsbCxhbGlnbm1lbnRCYXNlbGluZTpudWxsLGFscGhhYmV0aWM6TGUsYW1wbGl0dWRlOkxlLGFyYWJpY0Zvcm06bnVsbCxhc2NlbnQ6TGUsYXR0cmlidXRlTmFtZTpudWxsLGF0dHJpYnV0ZVR5cGU6bnVsbCxhemltdXRoOkxlLGJhbmR3aWR0aDpudWxsLGJhc2VsaW5lU2hpZnQ6bnVsbCxiYXNlRnJlcXVlbmN5Om51bGwsYmFzZVByb2ZpbGU6bnVsbCxiYm94Om51bGwsYmVnaW46bnVsbCxiaWFzOkxlLGJ5Om51bGwsY2FsY01vZGU6bnVsbCxjYXBIZWlnaHQ6TGUsY2xhc3NOYW1lOkt0LGNsaXA6bnVsbCxjbGlwUGF0aDpudWxsLGNsaXBQYXRoVW5pdHM6bnVsbCxjbGlwUnVsZTpudWxsLGNvbG9yOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczpudWxsLGNvbG9yUHJvZmlsZTpudWxsLGNvbG9yUmVuZGVyaW5nOm51bGwsY29udGVudDpudWxsLGNvbnRlbnRTY3JpcHRUeXBlOm51bGwsY29udGVudFN0eWxlVHlwZTpudWxsLGNyb3NzT3JpZ2luOm51bGwsY3Vyc29yOm51bGwsY3g6bnVsbCxjeTpudWxsLGQ6bnVsbCxkYXRhVHlwZTpudWxsLGRlZmF1bHRBY3Rpb246bnVsbCxkZXNjZW50OkxlLGRpZmZ1c2VDb25zdGFudDpMZSxkaXJlY3Rpb246bnVsbCxkaXNwbGF5Om51bGwsZHVyOm51bGwsZGl2aXNvcjpMZSxkb21pbmFudEJhc2VsaW5lOm51bGwsZG93bmxvYWQ6dXQsZHg6bnVsbCxkeTpudWxsLGVkZ2VNb2RlOm51bGwsZWRpdGFibGU6bnVsbCxlbGV2YXRpb246TGUsZW5hYmxlQmFja2dyb3VuZDpudWxsLGVuZDpudWxsLGV2ZW50Om51bGwsZXhwb25lbnQ6TGUsZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDpudWxsLGZpbGw6bnVsbCxmaWxsT3BhY2l0eTpMZSxmaWxsUnVsZTpudWxsLGZpbHRlcjpudWxsLGZpbHRlclJlczpudWxsLGZpbHRlclVuaXRzOm51bGwsZmxvb2RDb2xvcjpudWxsLGZsb29kT3BhY2l0eTpudWxsLGZvY3VzYWJsZTpudWxsLGZvY3VzSGlnaGxpZ2h0Om51bGwsZm9udEZhbWlseTpudWxsLGZvbnRTaXplOm51bGwsZm9udFNpemVBZGp1c3Q6bnVsbCxmb250U3RyZXRjaDpudWxsLGZvbnRTdHlsZTpudWxsLGZvbnRWYXJpYW50Om51bGwsZm9udFdlaWdodDpudWxsLGZvcm1hdDpudWxsLGZyOm51bGwsZnJvbTpudWxsLGZ4Om51bGwsZnk6bnVsbCxnMTpXbyxnMjpXbyxnbHlwaE5hbWU6V28sZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6bnVsbCxnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6bnVsbCxnbHlwaFJlZjpudWxsLGdyYWRpZW50VHJhbnNmb3JtOm51bGwsZ3JhZGllbnRVbml0czpudWxsLGhhbmRsZXI6bnVsbCxoYW5naW5nOkxlLGhhdGNoQ29udGVudFVuaXRzOm51bGwsaGF0Y2hVbml0czpudWxsLGhlaWdodDpudWxsLGhyZWY6bnVsbCxocmVmTGFuZzpudWxsLGhvcml6QWR2WDpMZSxob3Jpek9yaWdpblg6TGUsaG9yaXpPcmlnaW5ZOkxlLGlkOm51bGwsaWRlb2dyYXBoaWM6TGUsaW1hZ2VSZW5kZXJpbmc6bnVsbCxpbml0aWFsVmlzaWJpbGl0eTpudWxsLGluOm51bGwsaW4yOm51bGwsaW50ZXJjZXB0OkxlLGs6TGUsazE6TGUsazI6TGUsazM6TGUsazQ6TGUsa2VybmVsTWF0cml4OmVhLGtlcm5lbFVuaXRMZW5ndGg6bnVsbCxrZXlQb2ludHM6bnVsbCxrZXlTcGxpbmVzOm51bGwsa2V5VGltZXM6bnVsbCxrZXJuaW5nOm51bGwsbGFuZzpudWxsLGxlbmd0aEFkanVzdDpudWxsLGxldHRlclNwYWNpbmc6bnVsbCxsaWdodGluZ0NvbG9yOm51bGwsbGltaXRpbmdDb25lQW5nbGU6TGUsbG9jYWw6bnVsbCxtYXJrZXJFbmQ6bnVsbCxtYXJrZXJNaWQ6bnVsbCxtYXJrZXJTdGFydDpudWxsLG1hcmtlckhlaWdodDpudWxsLG1hcmtlclVuaXRzOm51bGwsbWFya2VyV2lkdGg6bnVsbCxtYXNrOm51bGwsbWFza0NvbnRlbnRVbml0czpudWxsLG1hc2tVbml0czpudWxsLG1hdGhlbWF0aWNhbDpudWxsLG1heDpudWxsLG1lZGlhOm51bGwsbWVkaWFDaGFyYWN0ZXJFbmNvZGluZzpudWxsLG1lZGlhQ29udGVudEVuY29kaW5nczpudWxsLG1lZGlhU2l6ZTpMZSxtZWRpYVRpbWU6bnVsbCxtZXRob2Q6bnVsbCxtaW46bnVsbCxtb2RlOm51bGwsbmFtZTpudWxsLG5hdkRvd246bnVsbCxuYXZEb3duTGVmdDpudWxsLG5hdkRvd25SaWdodDpudWxsLG5hdkxlZnQ6bnVsbCxuYXZOZXh0Om51bGwsbmF2UHJldjpudWxsLG5hdlJpZ2h0Om51bGwsbmF2VXA6bnVsbCxuYXZVcExlZnQ6bnVsbCxuYXZVcFJpZ2h0Om51bGwsbnVtT2N0YXZlczpudWxsLG9ic2VydmVyOm51bGwsb2Zmc2V0Om51bGwsb25BYm9ydDpudWxsLG9uQWN0aXZhdGU6bnVsbCxvbkFmdGVyUHJpbnQ6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWdpbjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvcHk6bnVsbCxvbkN1ZUNoYW5nZTpudWxsLG9uQ3V0Om51bGwsb25EYmxDbGljazpudWxsLG9uRHJhZzpudWxsLG9uRHJhZ0VuZDpudWxsLG9uRHJhZ0VudGVyOm51bGwsb25EcmFnRXhpdDpudWxsLG9uRHJhZ0xlYXZlOm51bGwsb25EcmFnT3ZlcjpudWxsLG9uRHJhZ1N0YXJ0Om51bGwsb25Ecm9wOm51bGwsb25EdXJhdGlvbkNoYW5nZTpudWxsLG9uRW1wdGllZDpudWxsLG9uRW5kOm51bGwsb25FbmRlZDpudWxsLG9uRXJyb3I6bnVsbCxvbkZvY3VzOm51bGwsb25Gb2N1c0luOm51bGwsb25Gb2N1c091dDpudWxsLG9uSGFzaENoYW5nZTpudWxsLG9uSW5wdXQ6bnVsbCxvbkludmFsaWQ6bnVsbCxvbktleURvd246bnVsbCxvbktleVByZXNzOm51bGwsb25LZXlVcDpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTW91c2VEb3duOm51bGwsb25Nb3VzZUVudGVyOm51bGwsb25Nb3VzZUxlYXZlOm51bGwsb25Nb3VzZU1vdmU6bnVsbCxvbk1vdXNlT3V0Om51bGwsb25Nb3VzZU92ZXI6bnVsbCxvbk1vdXNlVXA6bnVsbCxvbk1vdXNlV2hlZWw6bnVsbCxvbk9mZmxpbmU6bnVsbCxvbk9ubGluZTpudWxsLG9uUGFnZUhpZGU6bnVsbCxvblBhZ2VTaG93Om51bGwsb25QYXN0ZTpudWxsLG9uUGF1c2U6bnVsbCxvblBsYXk6bnVsbCxvblBsYXlpbmc6bnVsbCxvblBvcFN0YXRlOm51bGwsb25Qcm9ncmVzczpudWxsLG9uUmF0ZUNoYW5nZTpudWxsLG9uUmVwZWF0Om51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNlZWtlZDpudWxsLG9uU2Vla2luZzpudWxsLG9uU2VsZWN0Om51bGwsb25TaG93Om51bGwsb25TdGFsbGVkOm51bGwsb25TdG9yYWdlOm51bGwsb25TdWJtaXQ6bnVsbCxvblN1c3BlbmQ6bnVsbCxvblRpbWVVcGRhdGU6bnVsbCxvblRvZ2dsZTpudWxsLG9uVW5sb2FkOm51bGwsb25Wb2x1bWVDaGFuZ2U6bnVsbCxvbldhaXRpbmc6bnVsbCxvblpvb206bnVsbCxvcGFjaXR5Om51bGwsb3BlcmF0b3I6bnVsbCxvcmRlcjpudWxsLG9yaWVudDpudWxsLG9yaWVudGF0aW9uOm51bGwsb3JpZ2luOm51bGwsb3ZlcmZsb3c6bnVsbCxvdmVybGF5Om51bGwsb3ZlcmxpbmVQb3NpdGlvbjpMZSxvdmVybGluZVRoaWNrbmVzczpMZSxwYWludE9yZGVyOm51bGwscGFub3NlMTpudWxsLHBhdGg6bnVsbCxwYXRoTGVuZ3RoOkxlLHBhdHRlcm5Db250ZW50VW5pdHM6bnVsbCxwYXR0ZXJuVHJhbnNmb3JtOm51bGwscGF0dGVyblVuaXRzOm51bGwscGhhc2U6bnVsbCxwaW5nOkt0LHBpdGNoOm51bGwscGxheWJhY2tPcmRlcjpudWxsLHBvaW50ZXJFdmVudHM6bnVsbCxwb2ludHM6bnVsbCxwb2ludHNBdFg6TGUscG9pbnRzQXRZOkxlLHBvaW50c0F0WjpMZSxwcmVzZXJ2ZUFscGhhOm51bGwscHJlc2VydmVBc3BlY3RSYXRpbzpudWxsLHByaW1pdGl2ZVVuaXRzOm51bGwscHJvcGFnYXRlOm51bGwscHJvcGVydHk6ZWEscjpudWxsLHJhZGl1czpudWxsLHJlZmVycmVyUG9saWN5Om51bGwscmVmWDpudWxsLHJlZlk6bnVsbCxyZWw6ZWEscmV2OmVhLHJlbmRlcmluZ0ludGVudDpudWxsLHJlcGVhdENvdW50Om51bGwscmVwZWF0RHVyOm51bGwscmVxdWlyZWRFeHRlbnNpb25zOmVhLHJlcXVpcmVkRmVhdHVyZXM6ZWEscmVxdWlyZWRGb250czplYSxyZXF1aXJlZEZvcm1hdHM6ZWEscmVzb3VyY2U6bnVsbCxyZXN0YXJ0Om51bGwscmVzdWx0Om51bGwscm90YXRlOm51bGwscng6bnVsbCxyeTpudWxsLHNjYWxlOm51bGwsc2VlZDpudWxsLHNoYXBlUmVuZGVyaW5nOm51bGwsc2lkZTpudWxsLHNsb3BlOm51bGwsc25hcHNob3RUaW1lOm51bGwsc3BlY3VsYXJDb25zdGFudDpMZSxzcGVjdWxhckV4cG9uZW50OkxlLHNwcmVhZE1ldGhvZDpudWxsLHNwYWNpbmc6bnVsbCxzdGFydE9mZnNldDpudWxsLHN0ZERldmlhdGlvbjpudWxsLHN0ZW1oOm51bGwsc3RlbXY6bnVsbCxzdGl0Y2hUaWxlczpudWxsLHN0b3BDb2xvcjpudWxsLHN0b3BPcGFjaXR5Om51bGwsc3RyaWtldGhyb3VnaFBvc2l0aW9uOkxlLHN0cmlrZXRocm91Z2hUaGlja25lc3M6TGUsc3RyaW5nOm51bGwsc3Ryb2tlOm51bGwsc3Ryb2tlRGFzaEFycmF5OmVhLHN0cm9rZURhc2hPZmZzZXQ6bnVsbCxzdHJva2VMaW5lQ2FwOm51bGwsc3Ryb2tlTGluZUpvaW46bnVsbCxzdHJva2VNaXRlckxpbWl0OkxlLHN0cm9rZU9wYWNpdHk6TGUsc3Ryb2tlV2lkdGg6bnVsbCxzdHlsZTpudWxsLHN1cmZhY2VTY2FsZTpMZSxzeW5jQmVoYXZpb3I6bnVsbCxzeW5jQmVoYXZpb3JEZWZhdWx0Om51bGwsc3luY01hc3RlcjpudWxsLHN5bmNUb2xlcmFuY2U6bnVsbCxzeW5jVG9sZXJhbmNlRGVmYXVsdDpudWxsLHN5c3RlbUxhbmd1YWdlOmVhLHRhYkluZGV4OkxlLHRhYmxlVmFsdWVzOm51bGwsdGFyZ2V0Om51bGwsdGFyZ2V0WDpMZSx0YXJnZXRZOkxlLHRleHRBbmNob3I6bnVsbCx0ZXh0RGVjb3JhdGlvbjpudWxsLHRleHRSZW5kZXJpbmc6bnVsbCx0ZXh0TGVuZ3RoOm51bGwsdGltZWxpbmVCZWdpbjpudWxsLHRpdGxlOm51bGwsdHJhbnNmb3JtQmVoYXZpb3I6bnVsbCx0eXBlOm51bGwsdHlwZU9mOmVhLHRvOm51bGwsdHJhbnNmb3JtOm51bGwsdHJhbnNmb3JtT3JpZ2luOm51bGwsdTE6bnVsbCx1MjpudWxsLHVuZGVybGluZVBvc2l0aW9uOkxlLHVuZGVybGluZVRoaWNrbmVzczpMZSx1bmljb2RlOm51bGwsdW5pY29kZUJpZGk6bnVsbCx1bmljb2RlUmFuZ2U6bnVsbCx1bml0c1BlckVtOkxlLHZhbHVlczpudWxsLHZBbHBoYWJldGljOkxlLHZNYXRoZW1hdGljYWw6TGUsdmVjdG9yRWZmZWN0Om51bGwsdkhhbmdpbmc6TGUsdklkZW9ncmFwaGljOkxlLHZlcnNpb246bnVsbCx2ZXJ0QWR2WTpMZSx2ZXJ0T3JpZ2luWDpMZSx2ZXJ0T3JpZ2luWTpMZSx2aWV3Qm94Om51bGwsdmlld1RhcmdldDpudWxsLHZpc2liaWxpdHk6bnVsbCx3aWR0aDpudWxsLHdpZHRoczpudWxsLHdvcmRTcGFjaW5nOm51bGwsd3JpdGluZ01vZGU6bnVsbCx4Om51bGwseDE6bnVsbCx4MjpudWxsLHhDaGFubmVsU2VsZWN0b3I6bnVsbCx4SGVpZ2h0OkxlLHk6bnVsbCx5MTpudWxsLHkyOm51bGwseUNoYW5uZWxTZWxlY3RvcjpudWxsLHo6bnVsbCx6b29tQW5kUGFuOm51bGx9LHNwYWNlOiJzdmciLHRyYW5zZm9ybTpLSH0pfSk7dmFyIFhKLCRldD1uKCgpPT57TW4oKTtYSj1fYSh7cHJvcGVydGllczp7eExpbmtBY3R1YXRlOm51bGwseExpbmtBcmNSb2xlOm51bGwseExpbmtIcmVmOm51bGwseExpbmtSb2xlOm51bGwseExpbmtTaG93Om51bGwseExpbmtUaXRsZTpudWxsLHhMaW5rVHlwZTpudWxsfSxzcGFjZToieGxpbmsiLHRyYW5zZm9ybSh0LGUpe3JldHVybiJ4bGluazoiK2Uuc2xpY2UoNSkudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBRSixEZXQ9bigoKT0+e01uKCk7WkooKTtRSj1fYSh7YXR0cmlidXRlczp7eG1sbnN4bGluazoieG1sbnM6eGxpbmsifSxwcm9wZXJ0aWVzOnt4bWxuc1hMaW5rOm51bGwseG1sbnM6bnVsbH0sc3BhY2U6InhtbG5zIix0cmFuc2Zvcm06Skh9KX0pO3ZhciBLSixFZXQ9bigoKT0+e01uKCk7S0o9X2Eoe3Byb3BlcnRpZXM6e3htbEJhc2U6bnVsbCx4bWxMYW5nOm51bGwseG1sU3BhY2U6bnVsbH0sc3BhY2U6InhtbCIsdHJhbnNmb3JtKHQsZSl7cmV0dXJuInhtbDoiK2Uuc2xpY2UoMykudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBOZXQ9bigoKT0+e30pO2Z1bmN0aW9uIEpKKHQsZSl7bGV0IGE9TjYoZSkscj1lLGk9WjE7aWYoYSBpbiB0Lm5vcm1hbClyZXR1cm4gdC5wcm9wZXJ0eVt0Lm5vcm1hbFthXV07aWYoYS5sZW5ndGg+NCYmYS5zbGljZSgwLDQpPT09ImRhdGEiJiZudDEudGVzdChlKSl7aWYoZS5jaGFyQXQoNCk9PT0iLSIpe2xldCBvPWUuc2xpY2UoNSkucmVwbGFjZShQZXQsY3QxKTtyPSJkYXRhIitvLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK28uc2xpY2UoMSl9ZWxzZXtsZXQgbz1lLnNsaWNlKDQpO2lmKCFQZXQudGVzdChvKSl7bGV0IHM9by5yZXBsYWNlKHN0MSxsdDEpO3MuY2hhckF0KDApIT09Ii0iJiYocz0iLSIrcyksZT0iZGF0YSIrc319aT13bn1yZXR1cm4gbmV3IGkocixlKX1mdW5jdGlvbiBsdDEodCl7cmV0dXJuIi0iK3QudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBjdDEodCl7cmV0dXJuIHQuY2hhckF0KDEpLnRvVXBwZXJDYXNlKCl9dmFyIHN0MSxQZXQsbnQxLElldD1uKCgpPT57V0ooKTtVSigpO1hIKCk7c3QxPS9bQS1aXS9nLFBldD0vLVthLXpdL2csbnQxPS9eZGF0YVstXHcuOl0rJC9pfSk7dmFyIEZldCxlcSxlZWU9bigoKT0+e3pldCgpO0NldCgpO1RldCgpO0FldCgpOyRldCgpO0RldCgpO0VldCgpO05ldCgpO0lldCgpO1hIKCk7RmV0PVZKKFtHSixMZXQsWEosUUosS0pdLCJodG1sIiksZXE9VkooW0dKLF9ldCxYSixRSixLSl0sInN2ZyIpfSk7ZnVuY3Rpb24gdGVlKHQsZSl7aWYodD10LnJlcGxhY2UoZS5zdWJzZXQ/aHQxKGUuc3Vic2V0KTpkdDEsciksZS5zdWJzZXR8fGUuZXNjYXBlT25seSlyZXR1cm4gdDtyZXR1cm4gdC5yZXBsYWNlKGZ0MSxhKS5yZXBsYWNlKHV0MSxyKTtmdW5jdGlvbiBhKGksbyxzKXtyZXR1cm4gZS5mb3JtYXQoKGkuY2hhckNvZGVBdCgwKS01NTI5NikqMTAyNCtpLmNoYXJDb2RlQXQoMSktNTYzMjArNjU1MzYscy5jaGFyQ29kZUF0KG8rMiksZSl9ZnVuY3Rpb24gcihpLG8scyl7cmV0dXJuIGUuZm9ybWF0KGkuY2hhckNvZGVBdCgwKSxzLmNoYXJDb2RlQXQobysxKSxlKX19ZnVuY3Rpb24gaHQxKHQpe2xldCBlPU9ldC5nZXQodCk7cmV0dXJuIGV8fChlPW10MSh0KSxPZXQuc2V0KHQsZSkpLGV9ZnVuY3Rpb24gbXQxKHQpe2xldCBlPVtdLGE9LTE7Zm9yKDsrK2E8dC5sZW5ndGg7KWUucHVzaCh0W2FdLnJlcGxhY2UocHQxLCJcXCQmIikpO3JldHVybiBuZXcgUmVnRXhwKCIoPzoiK2Uuam9pbigifCIpKyIpIiwiZyIpfXZhciBkdDEsZnQxLHV0MSxwdDEsT2V0LEJldD1uKCgpPT57ZHQxPS9bIiYnPD5gXS9nLGZ0MT0vW1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csdXQxPS9bXHgwMS1cdFx2XGZceDBFLVx4MUZceDdGXHg4MVx4OERceDhGXHg5MFx4OURceEEwLVx1RkZGRl0vZyxwdDE9L1t8XFx7fSgpW1xdXiQrKj8uXS9nLE9ldD1uZXcgV2Vha01hcH0pO2Z1bmN0aW9uIFJldCh0LGUsYSl7bGV0IHI9IiYjeCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gYSYmZSYmIWd0MS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpP3I6cisiOyJ9dmFyIGd0MSxIZXQ9bigoKT0+e2d0MT0vW1xkQS1GYS1mXS99KTtmdW5jdGlvbiBxZXQodCxlLGEpe2xldCByPSImIyIrU3RyaW5nKHQpO3JldHVybiBhJiZlJiYheHQxLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShlKSk/cjpyKyI7In12YXIgeHQxLFZldD1uKCgpPT57eHQxPS9cZC99KTt2YXIgVWV0LGpldD1uKCgpPT57VWV0PVsiQUVsaWciLCJBTVAiLCJBYWN1dGUiLCJBY2lyYyIsIkFncmF2ZSIsIkFyaW5nIiwiQXRpbGRlIiwiQXVtbCIsIkNPUFkiLCJDY2VkaWwiLCJFVEgiLCJFYWN1dGUiLCJFY2lyYyIsIkVncmF2ZSIsIkV1bWwiLCJHVCIsIklhY3V0ZSIsIkljaXJjIiwiSWdyYXZlIiwiSXVtbCIsIkxUIiwiTnRpbGRlIiwiT2FjdXRlIiwiT2NpcmMiLCJPZ3JhdmUiLCJPc2xhc2giLCJPdGlsZGUiLCJPdW1sIiwiUVVPVCIsIlJFRyIsIlRIT1JOIiwiVWFjdXRlIiwiVWNpcmMiLCJVZ3JhdmUiLCJVdW1sIiwiWWFjdXRlIiwiYWFjdXRlIiwiYWNpcmMiLCJhY3V0ZSIsImFlbGlnIiwiYWdyYXZlIiwiYW1wIiwiYXJpbmciLCJhdGlsZGUiLCJhdW1sIiwiYnJ2YmFyIiwiY2NlZGlsIiwiY2VkaWwiLCJjZW50IiwiY29weSIsImN1cnJlbiIsImRlZyIsImRpdmlkZSIsImVhY3V0ZSIsImVjaXJjIiwiZWdyYXZlIiwiZXRoIiwiZXVtbCIsImZyYWMxMiIsImZyYWMxNCIsImZyYWMzNCIsImd0IiwiaWFjdXRlIiwiaWNpcmMiLCJpZXhjbCIsImlncmF2ZSIsImlxdWVzdCIsIml1bWwiLCJsYXF1byIsImx0IiwibWFjciIsIm1pY3JvIiwibWlkZG90IiwibmJzcCIsIm5vdCIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjIiwib2dyYXZlIiwib3JkZiIsIm9yZG0iLCJvc2xhc2giLCJvdGlsZGUiLCJvdW1sIiwicGFyYSIsInBsdXNtbiIsInBvdW5kIiwicXVvdCIsInJhcXVvIiwicmVnIiwic2VjdCIsInNoeSIsInN1cDEiLCJzdXAyIiwic3VwMyIsInN6bGlnIiwidGhvcm4iLCJ0aW1lcyIsInVhY3V0ZSIsInVjaXJjIiwidWdyYXZlIiwidW1sIiwidXVtbCIsInlhY3V0ZSIsInllbiIsInl1bWwiXX0pO3ZhciB0cSxXZXQ9bigoKT0+e3RxPXtuYnNwOiJceEEwIixpZXhjbDoiXHhBMSIsY2VudDoiXHhBMiIscG91bmQ6Ilx4QTMiLGN1cnJlbjoiXHhBNCIseWVuOiJceEE1IixicnZiYXI6Ilx4QTYiLHNlY3Q6Ilx4QTciLHVtbDoiXHhBOCIsY29weToiXHhBOSIsb3JkZjoiXHhBQSIsbGFxdW86Ilx4QUIiLG5vdDoiXHhBQyIsc2h5OiJceEFEIixyZWc6Ilx4QUUiLG1hY3I6Ilx4QUYiLGRlZzoiXHhCMCIscGx1c21uOiJceEIxIixzdXAyOiJceEIyIixzdXAzOiJceEIzIixhY3V0ZToiXHhCNCIsbWljcm86Ilx4QjUiLHBhcmE6Ilx4QjYiLG1pZGRvdDoiXHhCNyIsY2VkaWw6Ilx4QjgiLHN1cDE6Ilx4QjkiLG9yZG06Ilx4QkEiLHJhcXVvOiJceEJCIixmcmFjMTQ6Ilx4QkMiLGZyYWMxMjoiXHhCRCIsZnJhYzM0OiJceEJFIixpcXVlc3Q6Ilx4QkYiLEFncmF2ZToiXHhDMCIsQWFjdXRlOiJceEMxIixBY2lyYzoiXHhDMiIsQXRpbGRlOiJceEMzIixBdW1sOiJceEM0IixBcmluZzoiXHhDNSIsQUVsaWc6Ilx4QzYiLENjZWRpbDoiXHhDNyIsRWdyYXZlOiJceEM4IixFYWN1dGU6Ilx4QzkiLEVjaXJjOiJceENBIixFdW1sOiJceENCIixJZ3JhdmU6Ilx4Q0MiLElhY3V0ZToiXHhDRCIsSWNpcmM6Ilx4Q0UiLEl1bWw6Ilx4Q0YiLEVUSDoiXHhEMCIsTnRpbGRlOiJceEQxIixPZ3JhdmU6Ilx4RDIiLE9hY3V0ZToiXHhEMyIsT2NpcmM6Ilx4RDQiLE90aWxkZToiXHhENSIsT3VtbDoiXHhENiIsdGltZXM6Ilx4RDciLE9zbGFzaDoiXHhEOCIsVWdyYXZlOiJceEQ5IixVYWN1dGU6Ilx4REEiLFVjaXJjOiJceERCIixVdW1sOiJceERDIixZYWN1dGU6Ilx4REQiLFRIT1JOOiJceERFIixzemxpZzoiXHhERiIsYWdyYXZlOiJceEUwIixhYWN1dGU6Ilx4RTEiLGFjaXJjOiJceEUyIixhdGlsZGU6Ilx4RTMiLGF1bWw6Ilx4RTQiLGFyaW5nOiJceEU1IixhZWxpZzoiXHhFNiIsY2NlZGlsOiJceEU3IixlZ3JhdmU6Ilx4RTgiLGVhY3V0ZToiXHhFOSIsZWNpcmM6Ilx4RUEiLGV1bWw6Ilx4RUIiLGlncmF2ZToiXHhFQyIsaWFjdXRlOiJceEVEIixpY2lyYzoiXHhFRSIsaXVtbDoiXHhFRiIsZXRoOiJceEYwIixudGlsZGU6Ilx4RjEiLG9ncmF2ZToiXHhGMiIsb2FjdXRlOiJceEYzIixvY2lyYzoiXHhGNCIsb3RpbGRlOiJceEY1IixvdW1sOiJceEY2IixkaXZpZGU6Ilx4RjciLG9zbGFzaDoiXHhGOCIsdWdyYXZlOiJceEY5Iix1YWN1dGU6Ilx4RkEiLHVjaXJjOiJceEZCIix1dW1sOiJceEZDIix5YWN1dGU6Ilx4RkQiLHRob3JuOiJceEZFIix5dW1sOiJceEZGIixmbm9mOiJcdTAxOTIiLEFscGhhOiJcdTAzOTEiLEJldGE6Ilx1MDM5MiIsR2FtbWE6Ilx1MDM5MyIsRGVsdGE6Ilx1MDM5NCIsRXBzaWxvbjoiXHUwMzk1IixaZXRhOiJcdTAzOTYiLEV0YToiXHUwMzk3IixUaGV0YToiXHUwMzk4IixJb3RhOiJcdTAzOTkiLEthcHBhOiJcdTAzOUEiLExhbWJkYToiXHUwMzlCIixNdToiXHUwMzlDIixOdToiXHUwMzlEIixYaToiXHUwMzlFIixPbWljcm9uOiJcdTAzOUYiLFBpOiJcdTAzQTAiLFJobzoiXHUwM0ExIixTaWdtYToiXHUwM0EzIixUYXU6Ilx1MDNBNCIsVXBzaWxvbjoiXHUwM0E1IixQaGk6Ilx1MDNBNiIsQ2hpOiJcdTAzQTciLFBzaToiXHUwM0E4IixPbWVnYToiXHUwM0E5IixhbHBoYToiXHUwM0IxIixiZXRhOiJcdTAzQjIiLGdhbW1hOiJcdTAzQjMiLGRlbHRhOiJcdTAzQjQiLGVwc2lsb246Ilx1MDNCNSIsemV0YToiXHUwM0I2IixldGE6Ilx1MDNCNyIsdGhldGE6Ilx1MDNCOCIsaW90YToiXHUwM0I5IixrYXBwYToiXHUwM0JBIixsYW1iZGE6Ilx1MDNCQiIsbXU6Ilx1MDNCQyIsbnU6Ilx1MDNCRCIseGk6Ilx1MDNCRSIsb21pY3JvbjoiXHUwM0JGIixwaToiXHUwM0MwIixyaG86Ilx1MDNDMSIsc2lnbWFmOiJcdTAzQzIiLHNpZ21hOiJcdTAzQzMiLHRhdToiXHUwM0M0Iix1cHNpbG9uOiJcdTAzQzUiLHBoaToiXHUwM0M2IixjaGk6Ilx1MDNDNyIscHNpOiJcdTAzQzgiLG9tZWdhOiJcdTAzQzkiLHRoZXRhc3ltOiJcdTAzRDEiLHVwc2loOiJcdTAzRDIiLHBpdjoiXHUwM0Q2IixidWxsOiJcdTIwMjIiLGhlbGxpcDoiXHUyMDI2IixwcmltZToiXHUyMDMyIixQcmltZToiXHUyMDMzIixvbGluZToiXHUyMDNFIixmcmFzbDoiXHUyMDQ0Iix3ZWllcnA6Ilx1MjExOCIsaW1hZ2U6Ilx1MjExMSIscmVhbDoiXHUyMTFDIix0cmFkZToiXHUyMTIyIixhbGVmc3ltOiJcdTIxMzUiLGxhcnI6Ilx1MjE5MCIsdWFycjoiXHUyMTkxIixyYXJyOiJcdTIxOTIiLGRhcnI6Ilx1MjE5MyIsaGFycjoiXHUyMTk0IixjcmFycjoiXHUyMUI1IixsQXJyOiJcdTIxRDAiLHVBcnI6Ilx1MjFEMSIsckFycjoiXHUyMUQyIixkQXJyOiJcdTIxRDMiLGhBcnI6Ilx1MjFENCIsZm9yYWxsOiJcdTIyMDAiLHBhcnQ6Ilx1MjIwMiIsZXhpc3Q6Ilx1MjIwMyIsZW1wdHk6Ilx1MjIwNSIsbmFibGE6Ilx1MjIwNyIsaXNpbjoiXHUyMjA4Iixub3RpbjoiXHUyMjA5IixuaToiXHUyMjBCIixwcm9kOiJcdTIyMEYiLHN1bToiXHUyMjExIixtaW51czoiXHUyMjEyIixsb3dhc3Q6Ilx1MjIxNyIscmFkaWM6Ilx1MjIxQSIscHJvcDoiXHUyMjFEIixpbmZpbjoiXHUyMjFFIixhbmc6Ilx1MjIyMCIsYW5kOiJcdTIyMjciLG9yOiJcdTIyMjgiLGNhcDoiXHUyMjI5IixjdXA6Ilx1MjIyQSIsaW50OiJcdTIyMkIiLHRoZXJlNDoiXHUyMjM0IixzaW06Ilx1MjIzQyIsY29uZzoiXHUyMjQ1Iixhc3ltcDoiXHUyMjQ4IixuZToiXHUyMjYwIixlcXVpdjoiXHUyMjYxIixsZToiXHUyMjY0IixnZToiXHUyMjY1IixzdWI6Ilx1MjI4MiIsc3VwOiJcdTIyODMiLG5zdWI6Ilx1MjI4NCIsc3ViZToiXHUyMjg2IixzdXBlOiJcdTIyODciLG9wbHVzOiJcdTIyOTUiLG90aW1lczoiXHUyMjk3IixwZXJwOiJcdTIyQTUiLHNkb3Q6Ilx1MjJDNSIsbGNlaWw6Ilx1MjMwOCIscmNlaWw6Ilx1MjMwOSIsbGZsb29yOiJcdTIzMEEiLHJmbG9vcjoiXHUyMzBCIixsYW5nOiJcdTIzMjkiLHJhbmc6Ilx1MjMyQSIsbG96OiJcdTI1Q0EiLHNwYWRlczoiXHUyNjYwIixjbHViczoiXHUyNjYzIixoZWFydHM6Ilx1MjY2NSIsZGlhbXM6Ilx1MjY2NiIscXVvdDonIicsYW1wOiImIixsdDoiPCIsZ3Q6Ij4iLE9FbGlnOiJcdTAxNTIiLG9lbGlnOiJcdTAxNTMiLFNjYXJvbjoiXHUwMTYwIixzY2Fyb246Ilx1MDE2MSIsWXVtbDoiXHUwMTc4IixjaXJjOiJcdTAyQzYiLHRpbGRlOiJcdTAyREMiLGVuc3A6Ilx1MjAwMiIsZW1zcDoiXHUyMDAzIix0aGluc3A6Ilx1MjAwOSIsenduajoiXHUyMDBDIix6d2o6Ilx1MjAwRCIsbHJtOiJcdTIwMEUiLHJsbToiXHUyMDBGIixuZGFzaDoiXHUyMDEzIixtZGFzaDoiXHUyMDE0Iixsc3F1bzoiXHUyMDE4Iixyc3F1bzoiXHUyMDE5IixzYnF1bzoiXHUyMDFBIixsZHF1bzoiXHUyMDFDIixyZHF1bzoiXHUyMDFEIixiZHF1bzoiXHUyMDFFIixkYWdnZXI6Ilx1MjAyMCIsRGFnZ2VyOiJcdTIwMjEiLHBlcm1pbDoiXHUyMDMwIixsc2FxdW86Ilx1MjAzOSIscnNhcXVvOiJcdTIwM0EiLGV1cm86Ilx1MjBBQyJ9fSk7dmFyIEdldCxZZXQ9bigoKT0+e0dldD1bImNlbnQiLCJjb3B5IiwiZGl2aWRlIiwiZ3QiLCJsdCIsIm5vdCIsInBhcmEiLCJ0aW1lcyJdfSk7ZnVuY3Rpb24gWGV0KHQsZSxhLHIpe2xldCBpPVN0cmluZy5mcm9tQ2hhckNvZGUodCk7aWYoWmV0LmNhbGwoYWVlLGkpKXtsZXQgbz1hZWVbaV0scz0iJiIrbztyZXR1cm4gYSYmVWV0LmluY2x1ZGVzKG8pJiYhR2V0LmluY2x1ZGVzKG8pJiYoIXJ8fGUmJmUhPT02MSYmYnQxLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShlKSkpP3M6cysiOyJ9cmV0dXJuIiJ9dmFyIFpldCxhZWUsYXEsYnQxLFFldD1uKCgpPT57amV0KCk7V2V0KCk7WWV0KCk7WmV0PXt9Lmhhc093blByb3BlcnR5LGFlZT17fTtmb3IoYXEgaW4gdHEpWmV0LmNhbGwodHEsYXEpJiYoYWVlW3RxW2FxXV09YXEpO2J0MT0vW15cZEEtWmEtel0vfSk7ZnVuY3Rpb24gS2V0KHQsZSxhKXtsZXQgcj1SZXQodCxlLGEub21pdE9wdGlvbmFsU2VtaWNvbG9ucyksaTtpZigoYS51c2VOYW1lZFJlZmVyZW5jZXN8fGEudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSYmKGk9WGV0KHQsZSxhLm9taXRPcHRpb25hbFNlbWljb2xvbnMsYS5hdHRyaWJ1dGUpKSwoYS51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fCFpKSYmYS51c2VTaG9ydGVzdFJlZmVyZW5jZXMpe2xldCBvPXFldCh0LGUsYS5vbWl0T3B0aW9uYWxTZW1pY29sb25zKTtvLmxlbmd0aDxyLmxlbmd0aCYmKHI9byl9cmV0dXJuIGkmJighYS51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fGkubGVuZ3RoPHIubGVuZ3RoKT9pOnJ9dmFyIEpldD1uKCgpPT57SGV0KCk7VmV0KCk7UWV0KCl9KTtmdW5jdGlvbiBldHQodCl7cmV0dXJuIiYjeCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIHR0dD1uKCgpPT57fSk7ZnVuY3Rpb24gQ2kodCxlKXtyZXR1cm4gdGVlKHQsT2JqZWN0LmFzc2lnbih7Zm9ybWF0OktldH0sZSkpfWZ1bmN0aW9uIGYyMih0LGUpe3JldHVybiB0ZWUodCxPYmplY3QuYXNzaWduKHtmb3JtYXQ6ZXR0fSxlKSl9dmFyIGF0dD1uKCgpPT57QmV0KCk7SmV0KCk7dHR0KCl9KTt2YXIgcnE9bigoKT0+e2F0dCgpfSk7ZnVuY3Rpb24gcnR0KHQsZSxhLHIpe3JldHVybiByLnNldHRpbmdzLmJvZ3VzQ29tbWVudHM/Ijw/IitDaSh0LnZhbHVlLE9iamVjdC5hc3NpZ24oe30sci5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6eXQxfSkpKyI+IjoiPCEtLSIrdC52YWx1ZS5yZXBsYWNlKHZ0MSxpKSsiLS0+IjtmdW5jdGlvbiBpKG8pe3JldHVybiBDaShvLE9iamVjdC5hc3NpZ24oe30sci5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6d3QxfSkpfX12YXIgdnQxLHl0MSx3dDEsaXR0PW4oKCk9PntycSgpO3Z0MT0vXj58Xi0+fDwhLS18LS0+fC0tIT58PCEtJC9nLHl0MT1bIj4iXSx3dDE9WyI8IiwiPiJdfSk7ZnVuY3Rpb24gb3R0KHQsZSxhLHIpe3JldHVybiI8ISIrKHIuc2V0dGluZ3MudXBwZXJEb2N0eXBlPyJET0NUWVBFIjoiZG9jdHlwZSIpKyhyLnNldHRpbmdzLnRpZ2h0RG9jdHlwZT8iIjoiICIpKyJodG1sPiJ9dmFyIHN0dD1uKCgpPT57fSk7ZnVuY3Rpb24gYjIyKHQpe2xldCBlPVtdLGE9U3RyaW5nKHR8fCIiKSxyPWEuaW5kZXhPZigiLCIpLGk9MCxvPSExO2Zvcig7IW87KXtyPT09LTEmJihyPWEubGVuZ3RoLG89ITApO2xldCBzPWEuc2xpY2UoaSxyKS50cmltKCk7KHN8fCFvKSYmZS5wdXNoKHMpLGk9cisxLHI9YS5pbmRleE9mKCIsIixpKX1yZXR1cm4gZX1mdW5jdGlvbiBudHQodCxlKXtsZXQgYT1lfHx7fTtyZXR1cm4odFt0Lmxlbmd0aC0xXT09PSIiP1suLi50LCIiXTp0KS5qb2luKChhLnBhZFJpZ2h0PyIgIjoiIikrIiwiKyhhLnBhZExlZnQ9PT0hMT8iIjoiICIpKS50cmltKCl9dmFyIGx0dD1uKCgpPT57fSk7ZnVuY3Rpb24geTIyKHQpe2xldCBlPVN0cmluZyh0fHwiIikudHJpbSgpO3JldHVybiBlP2Uuc3BsaXQoL1sgXHRcblxyXGZdKy9nKTpbXX1mdW5jdGlvbiBjdHQodCl7cmV0dXJuIHQuam9pbigiICIpLnRyaW0oKX12YXIgZHR0PW4oKCk9Pnt9KTtmdW5jdGlvbiB6bih0KXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiP3QudHlwZT09PSJ0ZXh0Ij9mdHQodC52YWx1ZSk6ITE6ZnR0KHQpfWZ1bmN0aW9uIGZ0dCh0KXtyZXR1cm4gdC5yZXBsYWNlKE10MSwiIik9PT0iIn12YXIgTXQxLHV0dD1uKCgpPT57TXQxPS9bIFx0XG5cZlxyXS9nfSk7dmFyIGlxPW4oKCk9Pnt1dHQoKX0pO2Z1bmN0aW9uIHB0dCh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKGEscixpKXtsZXQgbz1hP2EuY2hpbGRyZW46enQxLHM9KHJ8fDApK3QsbD1vW3NdO2lmKCFpKWZvcig7bCYmem4obCk7KXMrPXQsbD1vW3NdO3JldHVybiBsfX12YXIgTDEscmVlLHp0MSxpZWU9bigoKT0+e2lxKCk7TDE9cHR0KDEpLHJlZT1wdHQoLTEpLHp0MT1bXX0pO2Z1bmN0aW9uIG9xKHQpe3JldHVybiBlO2Z1bmN0aW9uIGUoYSxyLGkpe3JldHVybiBrdDEuY2FsbCh0LGEudGFnTmFtZSkmJnRbYS50YWdOYW1lXShhLHIsaSl9fXZhciBrdDEsb2VlPW4oKCk9PntrdDE9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiBzZWUodCxlLGEpe2xldCByPUwxKGEsZSwhMCk7cmV0dXJuIXJ8fHIudHlwZSE9PSJjb21tZW50IiYmIShyLnR5cGU9PT0idGV4dCImJnpuKHIudmFsdWUuY2hhckF0KDApKSl9ZnVuY3Rpb24gU3QxKHQsZSxhKXtsZXQgcj1MMShhLGUpO3JldHVybiFyfHxyLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gQ3QxKHQsZSxhKXtsZXQgcj1MMShhLGUpO3JldHVybiFyfHxyLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gTHQxKHQsZSxhKXtsZXQgcj1MMShhLGUpO3JldHVybiByP3IudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJhZGRyZXNzInx8ci50YWdOYW1lPT09ImFydGljbGUifHxyLnRhZ05hbWU9PT0iYXNpZGUifHxyLnRhZ05hbWU9PT0iYmxvY2txdW90ZSJ8fHIudGFnTmFtZT09PSJkZXRhaWxzInx8ci50YWdOYW1lPT09ImRpdiJ8fHIudGFnTmFtZT09PSJkbCJ8fHIudGFnTmFtZT09PSJmaWVsZHNldCJ8fHIudGFnTmFtZT09PSJmaWdjYXB0aW9uInx8ci50YWdOYW1lPT09ImZpZ3VyZSJ8fHIudGFnTmFtZT09PSJmb290ZXIifHxyLnRhZ05hbWU9PT0iZm9ybSJ8fHIudGFnTmFtZT09PSJoMSJ8fHIudGFnTmFtZT09PSJoMiJ8fHIudGFnTmFtZT09PSJoMyJ8fHIudGFnTmFtZT09PSJoNCJ8fHIudGFnTmFtZT09PSJoNSJ8fHIudGFnTmFtZT09PSJoNiJ8fHIudGFnTmFtZT09PSJoZWFkZXIifHxyLnRhZ05hbWU9PT0iaGdyb3VwInx8ci50YWdOYW1lPT09ImhyInx8ci50YWdOYW1lPT09Im1haW4ifHxyLnRhZ05hbWU9PT0ibWVudSJ8fHIudGFnTmFtZT09PSJuYXYifHxyLnRhZ05hbWU9PT0ib2wifHxyLnRhZ05hbWU9PT0icCJ8fHIudGFnTmFtZT09PSJwcmUifHxyLnRhZ05hbWU9PT0ic2VjdGlvbiJ8fHIudGFnTmFtZT09PSJ0YWJsZSJ8fHIudGFnTmFtZT09PSJ1bCIpOiFhfHwhKGEudHlwZT09PSJlbGVtZW50IiYmKGEudGFnTmFtZT09PSJhInx8YS50YWdOYW1lPT09ImF1ZGlvInx8YS50YWdOYW1lPT09ImRlbCJ8fGEudGFnTmFtZT09PSJpbnMifHxhLnRhZ05hbWU9PT0ibWFwInx8YS50YWdOYW1lPT09Im5vc2NyaXB0Inx8YS50YWdOYW1lPT09InZpZGVvIikpfWZ1bmN0aW9uIFR0MSh0LGUsYSl7bGV0IHI9TDEoYSxlKTtyZXR1cm4hcnx8ci50eXBlPT09ImVsZW1lbnQiJiZyLnRhZ05hbWU9PT0ibGkifWZ1bmN0aW9uIF90MSh0LGUsYSl7bGV0IHI9TDEoYSxlKTtyZXR1cm4hIShyJiZyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0iZHQifHxyLnRhZ05hbWU9PT0iZGQiKSl9ZnVuY3Rpb24gQXQxKHQsZSxhKXtsZXQgcj1MMShhLGUpO3JldHVybiFyfHxyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0iZHQifHxyLnRhZ05hbWU9PT0iZGQiKX1mdW5jdGlvbiBodHQodCxlLGEpe2xldCByPUwxKGEsZSk7cmV0dXJuIXJ8fHIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJycCJ8fHIudGFnTmFtZT09PSJydCIpfWZ1bmN0aW9uICR0MSh0LGUsYSl7bGV0IHI9TDEoYSxlKTtyZXR1cm4hcnx8ci50eXBlPT09ImVsZW1lbnQiJiZyLnRhZ05hbWU9PT0ib3B0Z3JvdXAifWZ1bmN0aW9uIER0MSh0LGUsYSl7bGV0IHI9TDEoYSxlKTtyZXR1cm4hcnx8ci50eXBlPT09ImVsZW1lbnQiJiYoci50YWdOYW1lPT09Im9wdGlvbiJ8fHIudGFnTmFtZT09PSJvcHRncm91cCIpfWZ1bmN0aW9uIEV0MSh0LGUsYSl7bGV0IHI9TDEoYSxlKTtyZXR1cm4hIShyJiZyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0idGJvZHkifHxyLnRhZ05hbWU9PT0idGZvb3QiKSl9ZnVuY3Rpb24gTnQxKHQsZSxhKXtsZXQgcj1MMShhLGUpO3JldHVybiFyfHxyLnR5cGU9PT0iZWxlbWVudCImJihyLnRhZ05hbWU9PT0idGJvZHkifHxyLnRhZ05hbWU9PT0idGZvb3QiKX1mdW5jdGlvbiBQdDEodCxlLGEpe3JldHVybiFMMShhLGUpfWZ1bmN0aW9uIEl0MSh0LGUsYSl7bGV0IHI9TDEoYSxlKTtyZXR1cm4hcnx8ci50eXBlPT09ImVsZW1lbnQiJiZyLnRhZ05hbWU9PT0idHIifWZ1bmN0aW9uIG10dCh0LGUsYSl7bGV0IHI9TDEoYSxlKTtyZXR1cm4hcnx8ci50eXBlPT09ImVsZW1lbnQiJiYoci50YWdOYW1lPT09InRkInx8ci50YWdOYW1lPT09InRoIil9dmFyIExkLG5lZT1uKCgpPT57aXEoKTtpZWUoKTtvZWUoKTtMZD1vcSh7Ym9keTpDdDEsY2FwdGlvbjpzZWUsY29sZ3JvdXA6c2VlLGRkOkF0MSxkdDpfdDEsaGVhZDpzZWUsaHRtbDpTdDEsbGk6VHQxLG9wdGdyb3VwOiR0MSxvcHRpb246RHQxLHA6THQxLHJwOmh0dCxydDpodHQsdGJvZHk6TnQxLHRkOm10dCx0Zm9vdDpQdDEsdGg6bXR0LHRoZWFkOkV0MSx0cjpJdDF9KX0pO2Z1bmN0aW9uIEZ0MSh0KXtsZXQgZT1MMSh0LC0xKTtyZXR1cm4hZXx8ZS50eXBlIT09ImNvbW1lbnQifWZ1bmN0aW9uIE90MSh0KXtsZXQgZT1uZXcgU2V0O2ZvcihsZXQgciBvZiB0LmNoaWxkcmVuKWlmKHIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJiYXNlInx8ci50YWdOYW1lPT09InRpdGxlIikpe2lmKGUuaGFzKHIudGFnTmFtZSkpcmV0dXJuITE7ZS5hZGQoci50YWdOYW1lKX1sZXQgYT10LmNoaWxkcmVuWzBdO3JldHVybiFhfHxhLnR5cGU9PT0iZWxlbWVudCJ9ZnVuY3Rpb24gQnQxKHQpe2xldCBlPUwxKHQsLTEsITApO3JldHVybiFlfHxlLnR5cGUhPT0iY29tbWVudCImJiEoZS50eXBlPT09InRleHQiJiZ6bihlLnZhbHVlLmNoYXJBdCgwKSkpJiYhKGUudHlwZT09PSJlbGVtZW50IiYmKGUudGFnTmFtZT09PSJtZXRhInx8ZS50YWdOYW1lPT09ImxpbmsifHxlLnRhZ05hbWU9PT0ic2NyaXB0Inx8ZS50YWdOYW1lPT09InN0eWxlInx8ZS50YWdOYW1lPT09InRlbXBsYXRlIikpfWZ1bmN0aW9uIFJ0MSh0LGUsYSl7bGV0IHI9cmVlKGEsZSksaT1MMSh0LC0xLCEwKTtyZXR1cm4gYSYmciYmci50eXBlPT09ImVsZW1lbnQiJiZyLnRhZ05hbWU9PT0iY29sZ3JvdXAiJiZMZChyLGEuY2hpbGRyZW4uaW5kZXhPZihyKSxhKT8hMTohIShpJiZpLnR5cGU9PT0iZWxlbWVudCImJmkudGFnTmFtZT09PSJjb2wiKX1mdW5jdGlvbiBIdDEodCxlLGEpe2xldCByPXJlZShhLGUpLGk9TDEodCwtMSk7cmV0dXJuIGEmJnImJnIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJ0aGVhZCJ8fHIudGFnTmFtZT09PSJ0Ym9keSIpJiZMZChyLGEuY2hpbGRyZW4uaW5kZXhPZihyKSxhKT8hMTohIShpJiZpLnR5cGU9PT0iZWxlbWVudCImJmkudGFnTmFtZT09PSJ0ciIpfXZhciBndHQseHR0PW4oKCk9PntpcSgpO2llZSgpO25lZSgpO29lZSgpO2d0dD1vcSh7Ym9keTpCdDEsY29sZ3JvdXA6UnQxLGhlYWQ6T3QxLGh0bWw6RnQxLHRib2R5Okh0MX0pfSk7ZnVuY3Rpb24gYnR0KHQsZSxhLHIpe2xldCBpPXIuc2NoZW1hLG89aS5zcGFjZT09PSJzdmciPyExOnIuc2V0dGluZ3Mub21pdE9wdGlvbmFsVGFncyxzPWkuc3BhY2U9PT0ic3ZnIj9yLnNldHRpbmdzLmNsb3NlRW1wdHlFbGVtZW50czpyLnNldHRpbmdzLnZvaWRzLmluY2x1ZGVzKHQudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSxsPVtdLGY7aS5zcGFjZT09PSJodG1sIiYmdC50YWdOYW1lPT09InN2ZyImJihyLnNjaGVtYT1lcSk7bGV0IGM9cXQxKHIsdC5wcm9wZXJ0aWVzKSx1PXIuYWxsKGkuc3BhY2U9PT0iaHRtbCImJnQudGFnTmFtZT09PSJ0ZW1wbGF0ZSI/dC5jb250ZW50OnQpO3JldHVybiByLnNjaGVtYT1pLHUmJihzPSExKSwoY3x8IW98fCFndHQodCxlLGEpKSYmKGwucHVzaCgiPCIsdC50YWdOYW1lLGM/IiAiK2M6IiIpLHMmJihpLnNwYWNlPT09InN2ZyJ8fHIuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZykmJihmPWMuY2hhckF0KGMubGVuZ3RoLTEpLCghci5zZXR0aW5ncy50aWdodFNlbGZDbG9zaW5nfHxmPT09Ii8ifHxmJiZmIT09JyInJiZmIT09IiciKSYmbC5wdXNoKCIgIiksbC5wdXNoKCIvIikpLGwucHVzaCgiPiIpKSxsLnB1c2godSksIXMmJighb3x8IUxkKHQsZSxhKSkmJmwucHVzaCgiPC8iK3QudGFnTmFtZSsiPiIpLGwuam9pbigiIil9ZnVuY3Rpb24gcXQxKHQsZSl7bGV0IGE9W10scj0tMSxpO2lmKGUpe2ZvcihpIGluIGUpaWYoZVtpXSE9PW51bGwmJmVbaV0hPT12b2lkIDApe2xldCBvPVZ0MSh0LGksZVtpXSk7byYmYS5wdXNoKG8pfX1mb3IoOysrcjxhLmxlbmd0aDspe2xldCBvPXQuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzP2Fbcl0uY2hhckF0KGFbcl0ubGVuZ3RoLTEpOnZvaWQgMDtyIT09YS5sZW5ndGgtMSYmbyE9PSciJyYmbyE9PSInIiYmKGFbcl0rPSIgIil9cmV0dXJuIGEuam9pbigiIil9ZnVuY3Rpb24gVnQxKHQsZSxhKXtsZXQgcj1KSih0LnNjaGVtYSxlKSxpPXQuc2V0dGluZ3MuYWxsb3dQYXJzZUVycm9ycyYmdC5zY2hlbWEuc3BhY2U9PT0iaHRtbCI/MDoxLG89dC5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM/MDoxLHM9dC5xdW90ZSxsO2lmKHIub3ZlcmxvYWRlZEJvb2xlYW4mJihhPT09ci5hdHRyaWJ1dGV8fGE9PT0iIik/YT0hMDooci5ib29sZWFufHxyLm92ZXJsb2FkZWRCb29sZWFuKSYmKHR5cGVvZiBhIT0ic3RyaW5nInx8YT09PXIuYXR0cmlidXRlfHxhPT09IiIpJiYoYT0hIWEpLGE9PW51bGx8fGE9PT0hMXx8dHlwZW9mIGE9PSJudW1iZXIiJiZOdW1iZXIuaXNOYU4oYSkpcmV0dXJuIiI7bGV0IGY9Q2koci5hdHRyaWJ1dGUsT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDpzcS5uYW1lW2ldW29dfSkpO3JldHVybiBhPT09ITB8fChhPUFycmF5LmlzQXJyYXkoYSk/KHIuY29tbWFTZXBhcmF0ZWQ/bnR0OmN0dCkoYSx7cGFkTGVmdDohdC5zZXR0aW5ncy50aWdodENvbW1hU2VwYXJhdGVkTGlzdHN9KTpTdHJpbmcoYSksdC5zZXR0aW5ncy5jb2xsYXBzZUVtcHR5QXR0cmlidXRlcyYmIWEpP2Y6KHQuc2V0dGluZ3MucHJlZmVyVW5xdW90ZWQmJihsPUNpKGEsT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse2F0dHJpYnV0ZTohMCxzdWJzZXQ6c3EudW5xdW90ZWRbaV1bb119KSkpLGwhPT1hJiYodC5zZXR0aW5ncy5xdW90ZVNtYXJ0JiZ3NihhLHMpPnc2KGEsdC5hbHRlcm5hdGl2ZSkmJihzPXQuYWx0ZXJuYXRpdmUpLGw9cytDaShhLE9iamVjdC5hc3NpZ24oe30sdC5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6KHM9PT0iJyI/c3Euc2luZ2xlOnNxLmRvdWJsZSlbaV1bb10sYXR0cmlidXRlOiEwfSkpK3MpLGYrKGwmJiI9IitsKSl9dmFyIHNxLHZ0dD1uKCgpPT57R1EoKTtsdHQoKTtlZWUoKTtkdHQoKTtycSgpO25lZSgpO3h0dCgpO3NxPXtuYW1lOltbYAkKXGZcciAmLz0+YC5zcGxpdCgiIiksYAkKXGZcciAiJicvPT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJy88PT5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnLzw9PlxgYC5zcGxpdCgiIildXSx1bnF1b3RlZDpbW2AJClxmXHIgJj5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKV0sW2BcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXV0sc2luZ2xlOltbIiYnIi5zcGxpdCgiIiksIlwiJidgIi5zcGxpdCgiIildLFsiXDAmJyIuc3BsaXQoIiIpLCJcMFwiJidgIi5zcGxpdCgiIildXSxkb3VibGU6W1snIiYnLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWydcMCImJy5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dfX0pO2Z1bmN0aW9uIG5xKHQsZSxhLHIpe3JldHVybiBhJiZhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0ic2NyaXB0Inx8YS50YWdOYW1lPT09InN0eWxlIik/dC52YWx1ZTpDaSh0LnZhbHVlLE9iamVjdC5hc3NpZ24oe30sci5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6VXQxfSkpfXZhciBVdDEsbGVlPW4oKCk9PntycSgpO1V0MT1bIjwiLCImIl19KTtmdW5jdGlvbiB5dHQodCxlLGEscil7cmV0dXJuIHIuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNIdG1sP3QudmFsdWU6bnEodCxlLGEscil9dmFyIHd0dD1uKCgpPT57bGVlKCl9KTtmdW5jdGlvbiBNdHQodCxlLGEscil7cmV0dXJuIHIuYWxsKHQpfXZhciB6dHQ9bigoKT0+e30pO2Z1bmN0aW9uIGp0MSh0KXt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIG5vZGUsIG5vdCBgIit0KyJgIil9ZnVuY3Rpb24gV3QxKHQpe2xldCBlPXQ7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY29tcGlsZSB1bmtub3duIG5vZGUgYCIrZS50eXBlKyJgIil9dmFyIGt0dCxTdHQ9bigoKT0+e2lLKCk7aXR0KCk7c3R0KCk7dnR0KCk7d3R0KCk7enR0KCk7bGVlKCk7a3R0PXNIKCJ0eXBlIix7aW52YWxpZDpqdDEsdW5rbm93bjpXdDEsaGFuZGxlcnM6e2NvbW1lbnQ6cnR0LGRvY3R5cGU6b3R0LGVsZW1lbnQ6YnR0LHJhdzp5dHQscm9vdDpNdHQsdGV4dDpucX19KX0pO2Z1bmN0aW9uIGNlZSh0LGUpe2xldCBhPWV8fEd0MSxyPWEucXVvdGV8fCciJyxpPXI9PT0nIic/IiciOiciJztpZihyIT09JyInJiZyIT09IiciKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBxdW90ZSBgIityKyJgLCBleHBlY3RlZCBgJ2Agb3IgYFwiYCIpO3JldHVybntvbmU6WHQxLGFsbDpRdDEsc2V0dGluZ3M6e29taXRPcHRpb25hbFRhZ3M6YS5vbWl0T3B0aW9uYWxUYWdzfHwhMSxhbGxvd1BhcnNlRXJyb3JzOmEuYWxsb3dQYXJzZUVycm9yc3x8ITEsYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzOmEuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzfHwhMSxxdW90ZVNtYXJ0OmEucXVvdGVTbWFydHx8ITEscHJlZmVyVW5xdW90ZWQ6YS5wcmVmZXJVbnF1b3RlZHx8ITEsdGlnaHRBdHRyaWJ1dGVzOmEudGlnaHRBdHRyaWJ1dGVzfHwhMSx1cHBlckRvY3R5cGU6YS51cHBlckRvY3R5cGV8fCExLHRpZ2h0RG9jdHlwZTphLnRpZ2h0RG9jdHlwZXx8ITEsYm9ndXNDb21tZW50czphLmJvZ3VzQ29tbWVudHN8fCExLHRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0czphLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c3x8ITEsdGlnaHRTZWxmQ2xvc2luZzphLnRpZ2h0U2VsZkNsb3Npbmd8fCExLGNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzOmEuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXN8fCExLGFsbG93RGFuZ2Vyb3VzSHRtbDphLmFsbG93RGFuZ2Vyb3VzSHRtbHx8ITEsdm9pZHM6YS52b2lkc3x8d2V0LGNoYXJhY3RlclJlZmVyZW5jZXM6YS5jaGFyYWN0ZXJSZWZlcmVuY2VzfHxZdDEsY2xvc2VTZWxmQ2xvc2luZzphLmNsb3NlU2VsZkNsb3Npbmd8fCExLGNsb3NlRW1wdHlFbGVtZW50czphLmNsb3NlRW1wdHlFbGVtZW50c3x8ITF9LHNjaGVtYTphLnNwYWNlPT09InN2ZyI/ZXE6RmV0LHF1b3RlOnIsYWx0ZXJuYXRpdmU6aX0ub25lKEFycmF5LmlzQXJyYXkodCk/e3R5cGU6InJvb3QiLGNoaWxkcmVuOnR9OnQsdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gWHQxKHQsZSxhKXtyZXR1cm4ga3R0KHQsZSxhLHRoaXMpfWZ1bmN0aW9uIFF0MSh0KXtsZXQgZT1bXSxhPXQmJnQuY2hpbGRyZW58fFp0MSxyPS0xO2Zvcig7KytyPGEubGVuZ3RoOyllW3JdPXRoaXMub25lKGFbcl0scix0KTtyZXR1cm4gZS5qb2luKCIiKX12YXIgR3QxLFl0MSxadDEsQ3R0PW4oKCk9PntNZXQoKTtlZWUoKTtTdHQoKTtHdDE9e30sWXQxPXt9LFp0MT1bXX0pO3ZhciBMdHQ9bigoKT0+e0N0dCgpfSk7ZnVuY3Rpb24gUDYodCl7bGV0IGU9dGhpcyx7aGFuZGxlcnM6YSxzYW5pdGl6ZTpyLC4uLml9PXR8fEt0MSxvPSExLHM7dHlwZW9mIHI9PSJib29sZWFuIj9vPSFyOnImJihzPXIpLGUuY29tcGlsZXI9bDtmdW5jdGlvbiBsKGYsYyl7bGV0IHU9SEooZix7aGFuZGxlcnM6YSxhbGxvd0Rhbmdlcm91c0h0bWw6b30pLGQ9bz91OlBKKHUscyksaD1jZWUoZCx7Li4uaSxhbGxvd0Rhbmdlcm91c0h0bWw6b30pO3JldHVybiBjLmV4dG5hbWUmJihjLmV4dG5hbWU9Ii5odG1sIiksZiYmZi50eXBlPT09InJvb3QiJiZoJiYvW15cclxuXS8udGVzdChoLmNoYXJBdChoLmxlbmd0aC0xKSk/aCtgCmA6aH19dmFyIEt0MSxUdHQ9bigoKT0+e21KZSgpO3lldCgpO0x0dCgpO0t0MT17fX0pO3ZhciBfdHQ9bigoKT0+e1R0dCgpfSk7ZnVuY3Rpb24gSTYodCl7bGV0IGU9dGhpcztlLmNvbXBpbGVyPWE7ZnVuY3Rpb24gYShyKXtyZXR1cm4gU0socix7Li4uZS5kYXRhKCJzZXR0aW5ncyIpLC4uLnQsZXh0ZW5zaW9uczplLmRhdGEoInRvTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9fXZhciBBdHQ9bigoKT0+e2dIKCl9KTt2YXIgJHR0PW4oKCk9PntBdHQoKX0pO2Z1bmN0aW9uIEp0MSh0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgYT1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShyKSYmKHRbcl09YVtyXSl9cmV0dXJuIHR9ZnVuY3Rpb24gZGVlKHQsZSl7cmV0dXJuIEFycmF5KGUrMSkuam9pbih0KX1mdW5jdGlvbiBEdHQodCl7cmV0dXJuIHQucmVwbGFjZSgvXlxuKi8sIiIpfWZ1bmN0aW9uIEV0dCh0KXtmb3IodmFyIGU9dC5sZW5ndGg7ZT4wJiZ0W2UtMV09PT1gCmA7KWUtLTtyZXR1cm4gdC5zdWJzdHJpbmcoMCxlKX1mdW5jdGlvbiBOdHQodCl7cmV0dXJuIEV0dChEdHQodCkpfWZ1bmN0aW9uIGZlZSh0KXtyZXR1cm4gdWVlKHQsZTExKX1mdW5jdGlvbiBJdHQodCl7cmV0dXJuIHVlZSh0LFB0dCl9ZnVuY3Rpb24gdDExKHQpe3JldHVybiBPdHQodCxQdHQpfWZ1bmN0aW9uIGExMSh0KXtyZXR1cm4gdWVlKHQsRnR0KX1mdW5jdGlvbiByMTEodCl7cmV0dXJuIE90dCh0LEZ0dCl9ZnVuY3Rpb24gdWVlKHQsZSl7cmV0dXJuIGUuaW5kZXhPZih0Lm5vZGVOYW1lKT49MH1mdW5jdGlvbiBPdHQodCxlKXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5VGFnTmFtZSYmZS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiB0LmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpLmxlbmd0aH0pfWZ1bmN0aW9uIGxxKHQpe3JldHVybiB0P3QucmVwbGFjZSgvKFxuK1xzKikrL2csYApgKToiIn1mdW5jdGlvbiBCdHQodCl7dGhpcy5vcHRpb25zPXQsdGhpcy5fa2VlcD1bXSx0aGlzLl9yZW1vdmU9W10sdGhpcy5ibGFua1J1bGU9e3JlcGxhY2VtZW50OnQuYmxhbmtSZXBsYWNlbWVudH0sdGhpcy5rZWVwUmVwbGFjZW1lbnQ9dC5rZWVwUmVwbGFjZW1lbnQsdGhpcy5kZWZhdWx0UnVsZT17cmVwbGFjZW1lbnQ6dC5kZWZhdWx0UmVwbGFjZW1lbnR9LHRoaXMuYXJyYXk9W107Zm9yKHZhciBlIGluIHQucnVsZXMpdGhpcy5hcnJheS5wdXNoKHQucnVsZXNbZV0pfWZ1bmN0aW9uIHBlZSh0LGUsYSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpPXRbcl07aWYoaTExKGksZSxhKSlyZXR1cm4gaX19ZnVuY3Rpb24gaTExKHQsZSxhKXt2YXIgcj10LmZpbHRlcjtpZih0eXBlb2Ygcj09InN0cmluZyIpe2lmKHI9PT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuITB9ZWxzZSBpZihBcnJheS5pc0FycmF5KHIpKXtpZihyLmluZGV4T2YoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKT4tMSlyZXR1cm4hMH1lbHNlIGlmKHR5cGVvZiByPT0iZnVuY3Rpb24iKXtpZihyLmNhbGwodCxlLGEpKXJldHVybiEwfWVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiYGZpbHRlcmAgbmVlZHMgdG8gYmUgYSBzdHJpbmcsIGFycmF5LCBvciBmdW5jdGlvbiIpfWZ1bmN0aW9uIG8xMSh0KXt2YXIgZT10LmVsZW1lbnQsYT10LmlzQmxvY2sscj10LmlzVm9pZCxpPXQuaXNQcmV8fGZ1bmN0aW9uKGQpe3JldHVybiBkLm5vZGVOYW1lPT09IlBSRSJ9O2lmKCEoIWUuZmlyc3RDaGlsZHx8aShlKSkpe2Zvcih2YXIgbz1udWxsLHM9ITEsbD1udWxsLGY9UnR0KGwsZSxpKTtmIT09ZTspe2lmKGYubm9kZVR5cGU9PT0zfHxmLm5vZGVUeXBlPT09NCl7dmFyIGM9Zi5kYXRhLnJlcGxhY2UoL1sgXHJcblx0XSsvZywiICIpO2lmKCghb3x8LyAkLy50ZXN0KG8uZGF0YSkpJiYhcyYmY1swXT09PSIgIiYmKGM9Yy5zdWJzdHIoMSkpLCFjKXtmPWhlZShmKTtjb250aW51ZX1mLmRhdGE9YyxvPWZ9ZWxzZSBpZihmLm5vZGVUeXBlPT09MSlhKGYpfHxmLm5vZGVOYW1lPT09IkJSIj8obyYmKG8uZGF0YT1vLmRhdGEucmVwbGFjZSgvICQvLCIiKSksbz1udWxsLHM9ITEpOnIoZil8fGkoZik/KG89bnVsbCxzPSEwKTpvJiYocz0hMSk7ZWxzZXtmPWhlZShmKTtjb250aW51ZX12YXIgdT1SdHQobCxmLGkpO2w9ZixmPXV9byYmKG8uZGF0YT1vLmRhdGEucmVwbGFjZSgvICQvLCIiKSxvLmRhdGF8fGhlZShvKSl9fWZ1bmN0aW9uIGhlZSh0KXt2YXIgZT10Lm5leHRTaWJsaW5nfHx0LnBhcmVudE5vZGU7cmV0dXJuIHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSxlfWZ1bmN0aW9uIFJ0dCh0LGUsYSl7cmV0dXJuIHQmJnQucGFyZW50Tm9kZT09PWV8fGEoZSk/ZS5uZXh0U2libGluZ3x8ZS5wYXJlbnROb2RlOmUuZmlyc3RDaGlsZHx8ZS5uZXh0U2libGluZ3x8ZS5wYXJlbnROb2RlfWZ1bmN0aW9uIHMxMSgpe3ZhciB0PW1lZS5ET01QYXJzZXIsZT0hMTt0cnl7bmV3IHQoKS5wYXJzZUZyb21TdHJpbmcoIiIsInRleHQvaHRtbCIpJiYoZT0hMCl9Y2F0Y2h7fXJldHVybiBlfWZ1bmN0aW9uIG4xMSgpe3ZhciB0PWZ1bmN0aW9uKCl7fTtyZXR1cm4gbDExKCk/dC5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciBhPW5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKTtyZXR1cm4gYS5kZXNpZ25Nb2RlPSJvbiIsYS5vcGVuKCksYS53cml0ZShlKSxhLmNsb3NlKCksYX06dC5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciBhPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7cmV0dXJuIGEub3BlbigpLGEud3JpdGUoZSksYS5jbG9zZSgpLGF9LHR9ZnVuY3Rpb24gbDExKCl7dmFyIHQ9ITE7dHJ5e2RvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikub3BlbigpfWNhdGNoe21lZS5BY3RpdmVYT2JqZWN0JiYodD0hMCl9cmV0dXJuIHR9ZnVuY3Rpb24gZDExKHQsZSl7dmFyIGE7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXt2YXIgcj1mMTEoKS5wYXJzZUZyb21TdHJpbmcoJzx4LXR1cm5kb3duIGlkPSJ0dXJuZG93bi1yb290Ij4nK3QrIjwveC10dXJuZG93bj4iLCJ0ZXh0L2h0bWwiKTthPXIuZ2V0RWxlbWVudEJ5SWQoInR1cm5kb3duLXJvb3QiKX1lbHNlIGE9dC5jbG9uZU5vZGUoITApO3JldHVybiBvMTEoe2VsZW1lbnQ6YSxpc0Jsb2NrOmZlZSxpc1ZvaWQ6SXR0LGlzUHJlOmUucHJlZm9ybWF0dGVkQ29kZT91MTE6bnVsbH0pLGF9ZnVuY3Rpb24gZjExKCl7cmV0dXJuIGdlZT1nZWV8fG5ldyBjMTEsZ2VlfWZ1bmN0aW9uIHUxMSh0KXtyZXR1cm4gdC5ub2RlTmFtZT09PSJQUkUifHx0Lm5vZGVOYW1lPT09IkNPREUifWZ1bmN0aW9uIHAxMSh0LGUpe3JldHVybiB0LmlzQmxvY2s9ZmVlKHQpLHQuaXNDb2RlPXQubm9kZU5hbWU9PT0iQ09ERSJ8fHQucGFyZW50Tm9kZS5pc0NvZGUsdC5pc0JsYW5rPWgxMSh0KSx0LmZsYW5raW5nV2hpdGVzcGFjZT1tMTEodCxlKSx0fWZ1bmN0aW9uIGgxMSh0KXtyZXR1cm4hSXR0KHQpJiYhYTExKHQpJiYvXlxzKiQvaS50ZXN0KHQudGV4dENvbnRlbnQpJiYhdDExKHQpJiYhcjExKHQpfWZ1bmN0aW9uIG0xMSh0LGUpe2lmKHQuaXNCbG9ja3x8ZS5wcmVmb3JtYXR0ZWRDb2RlJiZ0LmlzQ29kZSlyZXR1cm57bGVhZGluZzoiIix0cmFpbGluZzoiIn07dmFyIGE9ZzExKHQudGV4dENvbnRlbnQpO3JldHVybiBhLmxlYWRpbmdBc2NpaSYmSHR0KCJsZWZ0Iix0LGUpJiYoYS5sZWFkaW5nPWEubGVhZGluZ05vbkFzY2lpKSxhLnRyYWlsaW5nQXNjaWkmJkh0dCgicmlnaHQiLHQsZSkmJihhLnRyYWlsaW5nPWEudHJhaWxpbmdOb25Bc2NpaSkse2xlYWRpbmc6YS5sZWFkaW5nLHRyYWlsaW5nOmEudHJhaWxpbmd9fWZ1bmN0aW9uIGcxMSh0KXt2YXIgZT10Lm1hdGNoKC9eKChbIFx0XHJcbl0qKShccyopKSg/Oig/PVxTKVtcc1xTXSpcUyk/KChccyo/KShbIFx0XHJcbl0qKSkkLyk7cmV0dXJue2xlYWRpbmc6ZVsxXSxsZWFkaW5nQXNjaWk6ZVsyXSxsZWFkaW5nTm9uQXNjaWk6ZVszXSx0cmFpbGluZzplWzRdLHRyYWlsaW5nTm9uQXNjaWk6ZVs1XSx0cmFpbGluZ0FzY2lpOmVbNl19fWZ1bmN0aW9uIEh0dCh0LGUsYSl7dmFyIHIsaSxvO3JldHVybiB0PT09ImxlZnQiPyhyPWUucHJldmlvdXNTaWJsaW5nLGk9LyAkLyk6KHI9ZS5uZXh0U2libGluZyxpPS9eIC8pLHImJihyLm5vZGVUeXBlPT09Mz9vPWkudGVzdChyLm5vZGVWYWx1ZSk6YS5wcmVmb3JtYXR0ZWRDb2RlJiZyLm5vZGVOYW1lPT09IkNPREUiP289ITE6ci5ub2RlVHlwZT09PTEmJiFmZWUocikmJihvPWkudGVzdChyLnRleHRDb250ZW50KSkpLG99ZnVuY3Rpb24gY3EodCl7aWYoISh0aGlzIGluc3RhbmNlb2YgY3EpKXJldHVybiBuZXcgY3EodCk7dmFyIGU9e3J1bGVzOlMyLGhlYWRpbmdTdHlsZToic2V0ZXh0IixocjoiKiAqICoiLGJ1bGxldExpc3RNYXJrZXI6IioiLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsZmVuY2U6ImBgYCIsZW1EZWxpbWl0ZXI6Il8iLHN0cm9uZ0RlbGltaXRlcjoiKioiLGxpbmtTdHlsZToiaW5saW5lZCIsbGlua1JlZmVyZW5jZVN0eWxlOiJmdWxsIixicjoiICAiLHByZWZvcm1hdHRlZENvZGU6ITEsYmxhbmtSZXBsYWNlbWVudDpmdW5jdGlvbihhLHIpe3JldHVybiByLmlzQmxvY2s/YAoKYDoiIn0sa2VlcFJlcGxhY2VtZW50OmZ1bmN0aW9uKGEscil7cmV0dXJuIHIuaXNCbG9jaz9gCgpgK3Iub3V0ZXJIVE1MK2AKCmA6ci5vdXRlckhUTUx9LGRlZmF1bHRSZXBsYWNlbWVudDpmdW5jdGlvbihhLHIpe3JldHVybiByLmlzQmxvY2s/YAoKYCthK2AKCmA6YX19O3RoaXMub3B0aW9ucz1KdDEoe30sZSx0KSx0aGlzLnJ1bGVzPW5ldyBCdHQodGhpcy5vcHRpb25zKX1mdW5jdGlvbiBxdHQodCl7dmFyIGU9dGhpcztyZXR1cm4geDExLmNhbGwodC5jaGlsZE5vZGVzLGZ1bmN0aW9uKGEscil7cj1uZXcgcDExKHIsZS5vcHRpb25zKTt2YXIgaT0iIjtyZXR1cm4gci5ub2RlVHlwZT09PTM/aT1yLmlzQ29kZT9yLm5vZGVWYWx1ZTplLmVzY2FwZShyLm5vZGVWYWx1ZSk6ci5ub2RlVHlwZT09PTEmJihpPXkxMS5jYWxsKGUscikpLFZ0dChhLGkpfSwiIil9ZnVuY3Rpb24gdjExKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMucnVsZXMuZm9yRWFjaChmdW5jdGlvbihhKXt0eXBlb2YgYS5hcHBlbmQ9PSJmdW5jdGlvbiImJih0PVZ0dCh0LGEuYXBwZW5kKGUub3B0aW9ucykpKX0pLHQucmVwbGFjZSgvXltcdFxyXG5dKy8sIiIpLnJlcGxhY2UoL1tcdFxyXG5cc10rJC8sIiIpfWZ1bmN0aW9uIHkxMSh0KXt2YXIgZT10aGlzLnJ1bGVzLmZvck5vZGUodCksYT1xdHQuY2FsbCh0aGlzLHQpLHI9dC5mbGFua2luZ1doaXRlc3BhY2U7cmV0dXJuKHIubGVhZGluZ3x8ci50cmFpbGluZykmJihhPWEudHJpbSgpKSxyLmxlYWRpbmcrZS5yZXBsYWNlbWVudChhLHQsdGhpcy5vcHRpb25zKStyLnRyYWlsaW5nfWZ1bmN0aW9uIFZ0dCh0LGUpe3ZhciBhPUV0dCh0KSxyPUR0dChlKSxpPU1hdGgubWF4KHQubGVuZ3RoLWEubGVuZ3RoLGUubGVuZ3RoLXIubGVuZ3RoKSxvPWAKCmAuc3Vic3RyaW5nKDAsaSk7cmV0dXJuIGErbytyfWZ1bmN0aW9uIHcxMSh0KXtyZXR1cm4gdCE9bnVsbCYmKHR5cGVvZiB0PT0ic3RyaW5nInx8dC5ub2RlVHlwZSYmKHQubm9kZVR5cGU9PT0xfHx0Lm5vZGVUeXBlPT09OXx8dC5ub2RlVHlwZT09PTExKSl9dmFyIGUxMSxQdHQsRnR0LFMyLG1lZSxjMTEsZ2VlLHgxMSxiMTEsZHEsVXR0PW4oKCk9PntlMTE9WyJBRERSRVNTIiwiQVJUSUNMRSIsIkFTSURFIiwiQVVESU8iLCJCTE9DS1FVT1RFIiwiQk9EWSIsIkNBTlZBUyIsIkNFTlRFUiIsIkREIiwiRElSIiwiRElWIiwiREwiLCJEVCIsIkZJRUxEU0VUIiwiRklHQ0FQVElPTiIsIkZJR1VSRSIsIkZPT1RFUiIsIkZPUk0iLCJGUkFNRVNFVCIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkhFQURFUiIsIkhHUk9VUCIsIkhSIiwiSFRNTCIsIklTSU5ERVgiLCJMSSIsIk1BSU4iLCJNRU5VIiwiTkFWIiwiTk9GUkFNRVMiLCJOT1NDUklQVCIsIk9MIiwiT1VUUFVUIiwiUCIsIlBSRSIsIlNFQ1RJT04iLCJUQUJMRSIsIlRCT0RZIiwiVEQiLCJURk9PVCIsIlRIIiwiVEhFQUQiLCJUUiIsIlVMIl07UHR0PVsiQVJFQSIsIkJBU0UiLCJCUiIsIkNPTCIsIkNPTU1BTkQiLCJFTUJFRCIsIkhSIiwiSU1HIiwiSU5QVVQiLCJLRVlHRU4iLCJMSU5LIiwiTUVUQSIsIlBBUkFNIiwiU09VUkNFIiwiVFJBQ0siLCJXQlIiXTtGdHQ9WyJBIiwiVEFCTEUiLCJUSEVBRCIsIlRCT0RZIiwiVEZPT1QiLCJUSCIsIlREIiwiSUZSQU1FIiwiU0NSSVBUIiwiQVVESU8iLCJWSURFTyJdO1MyPXt9O1MyLnBhcmFncmFwaD17ZmlsdGVyOiJwIixyZXBsYWNlbWVudDpmdW5jdGlvbih0KXtyZXR1cm5gCgpgK3QrYAoKYH19LFMyLmxpbmVCcmVhaz17ZmlsdGVyOiJiciIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlLGEpe3JldHVybiBhLmJyK2AKYH19LFMyLmhlYWRpbmc9e2ZpbHRlcjpbImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSxhKXt2YXIgcj1OdW1iZXIoZS5ub2RlTmFtZS5jaGFyQXQoMSkpO2lmKGEuaGVhZGluZ1N0eWxlPT09InNldGV4dCImJnI8Myl7dmFyIGk9ZGVlKHI9PT0xPyI9IjoiLSIsdC5sZW5ndGgpO3JldHVybmAKCmArdCtgCmAraStgCgpgfWVsc2UgcmV0dXJuYAoKYCtkZWUoIiMiLHIpKyIgIit0K2AKCmB9fSxTMi5ibG9ja3F1b3RlPXtmaWx0ZXI6ImJsb2NrcXVvdGUiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQpe3JldHVybiB0PU50dCh0KS5yZXBsYWNlKC9eL2dtLCI+ICIpLGAKCmArdCtgCgpgfX0sUzIubGlzdD17ZmlsdGVyOlsidWwiLCJvbCJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSl7dmFyIGE9ZS5wYXJlbnROb2RlO3JldHVybiBhLm5vZGVOYW1lPT09IkxJIiYmYS5sYXN0RWxlbWVudENoaWxkPT09ZT9gCmArdDpgCgpgK3QrYAoKYH19LFMyLmxpc3RJdGVtPXtmaWx0ZXI6ImxpIixyZXBsYWNlbWVudDpmdW5jdGlvbih0LGUsYSl7dmFyIHI9YS5idWxsZXRMaXN0TWFya2VyKyIgICAiLGk9ZS5wYXJlbnROb2RlO2lmKGkubm9kZU5hbWU9PT0iT0wiKXt2YXIgbz1pLmdldEF0dHJpYnV0ZSgic3RhcnQiKSxzPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoaS5jaGlsZHJlbixlKTtyPShvP051bWJlcihvKStzOnMrMSkrIi4gICJ9dmFyIGw9L1xuJC8udGVzdCh0KTtyZXR1cm4gdD1OdHQodCkrKGw/YApgOiIiKSx0PXQucmVwbGFjZSgvXG4vZ20sYApgKyIgIi5yZXBlYXQoci5sZW5ndGgpKSxyK3QrKGUubmV4dFNpYmxpbmc/YApgOiIiKX19LFMyLmluZGVudGVkQ29kZUJsb2NrPXtmaWx0ZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5jb2RlQmxvY2tTdHlsZT09PSJpbmRlbnRlZCImJnQubm9kZU5hbWU9PT0iUFJFIiYmdC5maXJzdENoaWxkJiZ0LmZpcnN0Q2hpbGQubm9kZU5hbWU9PT0iQ09ERSJ9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSxhKXtyZXR1cm5gCgogICAgYCtlLmZpcnN0Q2hpbGQudGV4dENvbnRlbnQucmVwbGFjZSgvXG4vZyxgCiAgICBgKStgCgpgfX0sUzIuZmVuY2VkQ29kZUJsb2NrPXtmaWx0ZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5jb2RlQmxvY2tTdHlsZT09PSJmZW5jZWQiJiZ0Lm5vZGVOYW1lPT09IlBSRSImJnQuZmlyc3RDaGlsZCYmdC5maXJzdENoaWxkLm5vZGVOYW1lPT09IkNPREUifSxyZXBsYWNlbWVudDpmdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWUuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiLGk9KHIubWF0Y2goL2xhbmd1YWdlLShcUyspLyl8fFtudWxsLCIiXSlbMV0sbz1lLmZpcnN0Q2hpbGQudGV4dENvbnRlbnQscz1hLmZlbmNlLmNoYXJBdCgwKSxsPTMsZj1uZXcgUmVnRXhwKCJeIitzKyJ7Myx9IiwiZ20iKSxjO2M9Zi5leGVjKG8pOyljWzBdLmxlbmd0aD49bCYmKGw9Y1swXS5sZW5ndGgrMSk7dmFyIHU9ZGVlKHMsbCk7cmV0dXJuYAoKYCt1K2krYApgK28ucmVwbGFjZSgvXG4kLywiIikrYApgK3UrYAoKYH19LFMyLmhvcml6b250YWxSdWxlPXtmaWx0ZXI6ImhyIixyZXBsYWNlbWVudDpmdW5jdGlvbih0LGUsYSl7cmV0dXJuYAoKYCthLmhyK2AKCmB9fSxTMi5pbmxpbmVMaW5rPXtmaWx0ZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5saW5rU3R5bGU9PT0iaW5saW5lZCImJnQubm9kZU5hbWU9PT0iQSImJnQuZ2V0QXR0cmlidXRlKCJocmVmIil9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSl7dmFyIGE9ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKTthJiYoYT1hLnJlcGxhY2UoLyhbKCldKS9nLCJcXCQxIikpO3ZhciByPWxxKGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKTtyZXR1cm4gciYmKHI9JyAiJytyLnJlcGxhY2UoLyIvZywnXFwiJykrJyInKSwiWyIrdCsiXSgiK2ErcisiKSJ9fSxTMi5yZWZlcmVuY2VMaW5rPXtmaWx0ZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5saW5rU3R5bGU9PT0icmVmZXJlbmNlZCImJnQubm9kZU5hbWU9PT0iQSImJnQuZ2V0QXR0cmlidXRlKCJocmVmIil9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSxhKXt2YXIgcj1lLmdldEF0dHJpYnV0ZSgiaHJlZiIpLGk9bHEoZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpO2kmJihpPScgIicraSsnIicpO3ZhciBvLHM7c3dpdGNoKGEubGlua1JlZmVyZW5jZVN0eWxlKXtjYXNlImNvbGxhcHNlZCI6bz0iWyIrdCsiXVtdIixzPSJbIit0KyJdOiAiK3IraTticmVhaztjYXNlInNob3J0Y3V0IjpvPSJbIit0KyJdIixzPSJbIit0KyJdOiAiK3IraTticmVhaztkZWZhdWx0OnZhciBsPXRoaXMucmVmZXJlbmNlcy5sZW5ndGgrMTtvPSJbIit0KyJdWyIrbCsiXSIscz0iWyIrbCsiXTogIityK2l9cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5wdXNoKHMpLG99LHJlZmVyZW5jZXM6W10sYXBwZW5kOmZ1bmN0aW9uKHQpe3ZhciBlPSIiO3JldHVybiB0aGlzLnJlZmVyZW5jZXMubGVuZ3RoJiYoZT1gCgpgK3RoaXMucmVmZXJlbmNlcy5qb2luKGAKYCkrYAoKYCx0aGlzLnJlZmVyZW5jZXM9W10pLGV9fSxTMi5lbXBoYXNpcz17ZmlsdGVyOlsiZW0iLCJpIl0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlLGEpe3JldHVybiB0LnRyaW0oKT9hLmVtRGVsaW1pdGVyK3QrYS5lbURlbGltaXRlcjoiIn19LFMyLnN0cm9uZz17ZmlsdGVyOlsic3Ryb25nIiwiYiJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSxhKXtyZXR1cm4gdC50cmltKCk/YS5zdHJvbmdEZWxpbWl0ZXIrdCthLnN0cm9uZ0RlbGltaXRlcjoiIn19LFMyLmNvZGU9e2ZpbHRlcjpmdW5jdGlvbih0KXt2YXIgZT10LnByZXZpb3VzU2libGluZ3x8dC5uZXh0U2libGluZyxhPXQucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJQUkUiJiYhZTtyZXR1cm4gdC5ub2RlTmFtZT09PSJDT0RFIiYmIWF9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiIiO3Q9dC5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIik7Zm9yKHZhciBlPS9eYHxeIC4qP1teIF0uKiAkfGAkLy50ZXN0KHQpPyIgIjoiIixhPSJgIixyPXQubWF0Y2goL2ArL2dtKXx8W107ci5pbmRleE9mKGEpIT09LTE7KWE9YSsiYCI7cmV0dXJuIGErZSt0K2UrYX19LFMyLmltYWdlPXtmaWx0ZXI6ImltZyIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlKXt2YXIgYT1scShlLmdldEF0dHJpYnV0ZSgiYWx0IikpLHI9ZS5nZXRBdHRyaWJ1dGUoInNyYyIpfHwiIixpPWxxKGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKSxvPWk/JyAiJytpKyciJzoiIjtyZXR1cm4gcj8iIVsiK2ErIl0oIityK28rIikiOiIifX07QnR0LnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKHQsZSl7dGhpcy5hcnJheS51bnNoaWZ0KGUpfSxrZWVwOmZ1bmN0aW9uKHQpe3RoaXMuX2tlZXAudW5zaGlmdCh7ZmlsdGVyOnQscmVwbGFjZW1lbnQ6dGhpcy5rZWVwUmVwbGFjZW1lbnR9KX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3RoaXMuX3JlbW92ZS51bnNoaWZ0KHtmaWx0ZXI6dCxyZXBsYWNlbWVudDpmdW5jdGlvbigpe3JldHVybiIifX0pfSxmb3JOb2RlOmZ1bmN0aW9uKHQpe2lmKHQuaXNCbGFuaylyZXR1cm4gdGhpcy5ibGFua1J1bGU7dmFyIGU7cmV0dXJuKGU9cGVlKHRoaXMuYXJyYXksdCx0aGlzLm9wdGlvbnMpKXx8KGU9cGVlKHRoaXMuX2tlZXAsdCx0aGlzLm9wdGlvbnMpKXx8KGU9cGVlKHRoaXMuX3JlbW92ZSx0LHRoaXMub3B0aW9ucykpP2U6dGhpcy5kZWZhdWx0UnVsZX0sZm9yRWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHRoaXMuYXJyYXkubGVuZ3RoO2UrKyl0KHRoaXMuYXJyYXlbZV0sZSl9fTttZWU9dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9O2MxMT1zMTEoKT9tZWUuRE9NUGFyc2VyOm4xMSgpO3gxMT1BcnJheS5wcm90b3R5cGUucmVkdWNlLGIxMT1bWy9cXC9nLCJcXFxcIl0sWy9cKi9nLCJcXCoiXSxbL14tL2csIlxcLSJdLFsvXlwrIC9nLCJcXCsgIl0sWy9eKD0rKS9nLCJcXCQxIl0sWy9eKCN7MSw2fSkgL2csIlxcJDEgIl0sWy9gL2csIlxcYCJdLFsvXn5+fi9nLCJcXH5+fiJdLFsvXFsvZywiXFxbIl0sWy9cXS9nLCJcXF0iXSxbL14+L2csIlxcPiJdLFsvXy9nLCJcXF8iXSxbL14oXGQrKVwuIC9nLCIkMVxcLiAiXV07Y3EucHJvdG90eXBlPXt0dXJuZG93bjpmdW5jdGlvbih0KXtpZighdzExKHQpKXRocm93IG5ldyBUeXBlRXJyb3IodCsiIGlzIG5vdCBhIHN0cmluZywgb3IgYW4gZWxlbWVudC9kb2N1bWVudC9mcmFnbWVudCBub2RlLiIpO2lmKHQ9PT0iIilyZXR1cm4iIjt2YXIgZT1xdHQuY2FsbCh0aGlzLG5ldyBkMTEodCx0aGlzLm9wdGlvbnMpKTtyZXR1cm4gdjExLmNhbGwodGhpcyxlKX0sdXNlOmZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy51c2UodFtlXSk7ZWxzZSBpZih0eXBlb2YgdD09ImZ1bmN0aW9uIil0KHRoaXMpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigicGx1Z2luIG11c3QgYmUgYSBGdW5jdGlvbiBvciBhbiBBcnJheSBvZiBGdW5jdGlvbnMiKTtyZXR1cm4gdGhpc30sYWRkUnVsZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnJ1bGVzLmFkZCh0LGUpLHRoaXN9LGtlZXA6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucnVsZXMua2VlcCh0KSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucnVsZXMucmVtb3ZlKHQpLHRoaXN9LGVzY2FwZTpmdW5jdGlvbih0KXtyZXR1cm4gYjExLnJlZHVjZShmdW5jdGlvbihlLGEpe3JldHVybiBlLnJlcGxhY2UoYVswXSxhWzFdKX0sdCl9fTtkcT1jcX0pO3ZhciBUZD17fTtldChUZCx7Z2ZtOigpPT5HdHQsaGlnaGxpZ2h0ZWRDb2RlQmxvY2s6KCk9PmJlZSxzdHJpa2V0aHJvdWdoOigpPT52ZWUsdGFibGVzOigpPT55ZWUsdGFza0xpc3RJdGVtczooKT0+d2VlfSk7ZnVuY3Rpb24gYmVlKHQpe3QuYWRkUnVsZSgiaGlnaGxpZ2h0ZWRDb2RlQmxvY2siLHtmaWx0ZXI6ZnVuY3Rpb24oZSl7dmFyIGE9ZS5maXJzdENoaWxkO3JldHVybiBlLm5vZGVOYW1lPT09IkRJViImJmp0dC50ZXN0KGUuY2xhc3NOYW1lKSYmYSYmYS5ub2RlTmFtZT09PSJQUkUifSxyZXBsYWNlbWVudDpmdW5jdGlvbihlLGEscil7dmFyIGk9YS5jbGFzc05hbWV8fCIiLG89KGkubWF0Y2goanR0KXx8W251bGwsIiJdKVsxXTtyZXR1cm5gCgpgK3IuZmVuY2UrbytgCmArYS5maXJzdENoaWxkLnRleHRDb250ZW50K2AKYCtyLmZlbmNlK2AKCmB9fSl9ZnVuY3Rpb24gdmVlKHQpe3QuYWRkUnVsZSgic3RyaWtldGhyb3VnaCIse2ZpbHRlcjpbImRlbCIsInMiLCJzdHJpa2UiXSxyZXBsYWNlbWVudDpmdW5jdGlvbihlKXtyZXR1cm4ifiIrZSsifiJ9fSl9ZnVuY3Rpb24geGVlKHQpe3ZhciBlPXQucGFyZW50Tm9kZTtyZXR1cm4gZS5ub2RlTmFtZT09PSJUSEVBRCJ8fGUuZmlyc3RDaGlsZD09PXQmJihlLm5vZGVOYW1lPT09IlRBQkxFInx8azExKGUpKSYmejExLmNhbGwodC5jaGlsZE5vZGVzLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lPT09IlRIIn0pfWZ1bmN0aW9uIGsxMSh0KXt2YXIgZT10LnByZXZpb3VzU2libGluZztyZXR1cm4gdC5ub2RlTmFtZT09PSJUQk9EWSImJighZXx8ZS5ub2RlTmFtZT09PSJUSEVBRCImJi9eXHMqJC9pLnRlc3QoZS50ZXh0Q29udGVudCkpfWZ1bmN0aW9uIFd0dCh0LGUpe3ZhciBhPU0xMS5jYWxsKGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLGUpLHI9IiAiO3JldHVybiBhPT09MCYmKHI9InwgIikscit0KyIgfCJ9ZnVuY3Rpb24geWVlKHQpe3Qua2VlcChmdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlTmFtZT09PSJUQUJMRSImJiF4ZWUoYS5yb3dzWzBdKX0pO2Zvcih2YXIgZSBpbiBGNil0LmFkZFJ1bGUoZSxGNltlXSl9ZnVuY3Rpb24gd2VlKHQpe3QuYWRkUnVsZSgidGFza0xpc3RJdGVtcyIse2ZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZS50eXBlPT09ImNoZWNrYm94IiYmZS5wYXJlbnROb2RlLm5vZGVOYW1lPT09IkxJIn0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSxhKXtyZXR1cm4oYS5jaGVja2VkPyJbeF0iOiJbIF0iKSsiICJ9fSl9ZnVuY3Rpb24gR3R0KHQpe3QudXNlKFtiZWUsdmVlLHllZSx3ZWVdKX12YXIganR0LE0xMSx6MTEsRjYsWXR0PW4oKCk9PntqdHQ9L2hpZ2hsaWdodC0oPzp0ZXh0fHNvdXJjZSktKFthLXowLTldKykvO00xMT1BcnJheS5wcm90b3R5cGUuaW5kZXhPZix6MTE9QXJyYXkucHJvdG90eXBlLmV2ZXJ5LEY2PXt9O0Y2LnRhYmxlQ2VsbD17ZmlsdGVyOlsidGgiLCJ0ZCJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFd0dCh0LGUpfX0sRjYudGFibGVSb3c9e2ZpbHRlcjoidHIiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSl7dmFyIGE9IiIscj17bGVmdDoiOi0tIixyaWdodDoiLS06IixjZW50ZXI6IjotOiJ9O2lmKHhlZShlKSlmb3IodmFyIGk9MDtpPGUuY2hpbGROb2Rlcy5sZW5ndGg7aSsrKXt2YXIgbz0iLS0tIixzPShlLmNoaWxkTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJhbGlnbiIpfHwiIikudG9Mb3dlckNhc2UoKTtzJiYobz1yW3NdfHxvKSxhKz1XdHQobyxlLmNoaWxkTm9kZXNbaV0pfXJldHVybmAKYCt0KyhhP2AKYCthOiIiKX19LEY2LnRhYmxlPXtmaWx0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZU5hbWU9PT0iVEFCTEUiJiZ4ZWUodC5yb3dzWzBdKX0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC5yZXBsYWNlKGAKCmAsYApgKSxgCgpgK3QrYAoKYH19LEY2LnRhYmxlU2VjdGlvbj17ZmlsdGVyOlsidGhlYWQiLCJ0Ym9keSIsInRmb290Il0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fX0pO3ZhciBNZWUsemVlPW4oKCk9PntNZWU9TjIoTlllKCksMSk7cFplKCk7dktlKCk7aktlKCk7ckplKCk7X3R0KCk7JHR0KCk7VXR0KCk7WXR0KCl9KTt2YXIgZnEsWHR0PW4oKCk9Pnt6ZWUoKTtmcT1jbGFzcyB0e3N0YXRpYyBhc3luYyBjcmVhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl7bGV0IGE9bmV3IHQ7cmV0dXJuIGF3YWl0IGEudXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKGUpLGF9YXN5bmMgdXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKGUpe2xldCBhLHI9YXdhaXQgaWQoKS51c2UoXzYpLnVzZShUNikudXNlKCQ2LFsieWFtbCIsInRvbWwiXSkudXNlKEk2KS51c2UoUDYpLnVzZSgoKT0+aT0+e2NvbnNvbGUuZGlyKGkpO2xldCBvPWkuY2hpbGRyZW4uZmluZChzPT5zLnR5cGU9PT0ieWFtbCIpO28mJihhPW8udmFsdWUpfSkucHJvY2VzcyhlKTt0aGlzLmh0bWw9ci50b1N0cmluZygpLGE/dGhpcy5mcm9udG1hdHRlckRhdGE9YXdhaXQgTWVlLnlhbWxTdHJpbmdUb09iamVjdChhKTp0aGlzLmZyb250bWF0dGVyRGF0YT17fX19fSk7dmFyIE82PXt9O2V0KE82LHtTbWFydE1hcmtkb3duOigpPT5rZWV9KTt2YXIga2VlLFNlZT1uKCgpPT57emVlKCk7WHR0KCk7a2VlPWNsYXNzIHR7c3RhdGljIGFzeW5jIGVhc3lNYXJrZG93blRvSHRtbChlKXtyZXR1cm4oYXdhaXQgbmV3IHQoKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKSkuaHRtbH1jb25zdHJ1Y3Rvcigpe31hc3luYyBnZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihlKXtyZXR1cm4gYXdhaXQgZnEuY3JlYXRlRnJvbU1hcmtkb3duU3RyaW5nKGUpfWh0bWxUb01hcmtkb3duKGUpe2xldCBhPW5ldyBkcSh7aGVhZGluZ1N0eWxlOiJhdHgiLGNvZGVCbG9ja1N0eWxlOiJmZW5jZWQifSk7cmV0dXJuIGEudXNlKFRkLmdmbSksYS50dXJuZG93bihlKX19fSk7dmFyIGExdD1jdChYYT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoWGEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFhhLlBhdGhFcnJvcj1YYS5Ub2tlbkRhdGE9dm9pZCAwLFhhLnBhcnNlPV9lZSxYYS5jb21waWxlPUwxMSxYYS5tYXRjaD1fMTEsWGEucGF0aFRvUmVnZXhwPUp0dCxYYS5zdHJpbmdpZnk9RDExO3ZhciBDZWU9Ii8iLExlZT10PT50LFF0dD0vXlskX1xwe0lEX1N0YXJ0fV0kL3UsVGVlPS9eWyRcdTIwMGNcdTIwMGRccHtJRF9Db250aW51ZX1dJC91LFMxMT17InsiOiJ7IiwifSI6In0iLCIoIjoiKCIsIikiOiIpIiwiWyI6IlsiLCJdIjoiXSIsIisiOiIrIiwiPyI6Ij8iLCIhIjoiISJ9O2Z1bmN0aW9uIEMxMSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9be30oKVxbXF0rPyE6KlxcXS9nLCJcXCQmIil9ZnVuY3Rpb24gUnIodCl7cmV0dXJuIHQucmVwbGFjZSgvWy4rKj9eJHt9KClbXF18L1xcXS9nLCJcXCQmIil9dmFyIHVxPWNsYXNze2NvbnN0cnVjdG9yKGUsYSl7dGhpcy50b2tlbnM9ZSx0aGlzLm9yaWdpbmFsUGF0aD1hfX07WGEuVG9rZW5EYXRhPXVxO3ZhciBrbj1jbGFzcyBleHRlbmRzIFR5cGVFcnJvcntjb25zdHJ1Y3RvcihlLGEpe2xldCByPWU7YSYmKHIrPWA6ICR7YX1gKSxyKz0iOyB2aXNpdCBodHRwczovL2dpdC5uZXcvcGF0aFRvUmVnZXhwRXJyb3IgZm9yIGluZm8iLHN1cGVyKHIpLHRoaXMub3JpZ2luYWxQYXRoPWF9fTtYYS5QYXRoRXJyb3I9a247ZnVuY3Rpb24gX2VlKHQsZT17fSl7bGV0e2VuY29kZVBhdGg6YT1MZWV9PWUscj1bLi4udF0saT1bXSxvPTAscz0wO2Z1bmN0aW9uIGwoKXtsZXQgYz0iIjtpZihRdHQudGVzdChyW29dKSlkbyBjKz1yW28rK107d2hpbGUoVGVlLnRlc3QocltvXSkpO2Vsc2UgaWYocltvXT09PSciJyl7bGV0IHU9bztmb3IoO28rKzxyLmxlbmd0aDspe2lmKHJbb109PT0nIicpe28rKyx1PTA7YnJlYWt9cltvXT09PSJcXCImJm8rKyxjKz1yW29dfWlmKHUpdGhyb3cgbmV3IGtuKGBVbnRlcm1pbmF0ZWQgcXVvdGUgYXQgaW5kZXggJHt1fWAsdCl9aWYoIWMpdGhyb3cgbmV3IGtuKGBNaXNzaW5nIHBhcmFtZXRlciBuYW1lIGF0IGluZGV4ICR7b31gLHQpO3JldHVybiBjfWZvcig7bzxyLmxlbmd0aDspe2xldCBjPXJbb10sdT1TMTFbY107dT9pLnB1c2goe3R5cGU6dSxpbmRleDpvKyssdmFsdWU6Y30pOmM9PT0iXFwiP2kucHVzaCh7dHlwZToiZXNjYXBlIixpbmRleDpvKyssdmFsdWU6cltvKytdfSk6Yz09PSI6Ij9pLnB1c2goe3R5cGU6InBhcmFtIixpbmRleDpvKyssdmFsdWU6bCgpfSk6Yz09PSIqIj9pLnB1c2goe3R5cGU6IndpbGRjYXJkIixpbmRleDpvKyssdmFsdWU6bCgpfSk6aS5wdXNoKHt0eXBlOiJjaGFyIixpbmRleDpvKyssdmFsdWU6Y30pfWkucHVzaCh7dHlwZToiZW5kIixpbmRleDpvLHZhbHVlOiIifSk7ZnVuY3Rpb24gZihjKXtsZXQgdT1bXTtmb3IoOzspe2xldCBkPWlbcysrXTtpZihkLnR5cGU9PT1jKWJyZWFrO2lmKGQudHlwZT09PSJjaGFyInx8ZC50eXBlPT09ImVzY2FwZSIpe2xldCBoPWQudmFsdWUsZz1pW3NdO2Zvcig7Zy50eXBlPT09ImNoYXIifHxnLnR5cGU9PT0iZXNjYXBlIjspaCs9Zy52YWx1ZSxnPWlbKytzXTt1LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmEoaCl9KTtjb250aW51ZX1pZihkLnR5cGU9PT0icGFyYW0ifHxkLnR5cGU9PT0id2lsZGNhcmQiKXt1LnB1c2goe3R5cGU6ZC50eXBlLG5hbWU6ZC52YWx1ZX0pO2NvbnRpbnVlfWlmKGQudHlwZT09PSJ7Iil7dS5wdXNoKHt0eXBlOiJncm91cCIsdG9rZW5zOmYoIn0iKX0pO2NvbnRpbnVlfXRocm93IG5ldyBrbihgVW5leHBlY3RlZCAke2QudHlwZX0gYXQgaW5kZXggJHtkLmluZGV4fSwgZXhwZWN0ZWQgJHtjfWAsdCl9cmV0dXJuIHV9cmV0dXJuIG5ldyB1cShmKCJlbmQiKSx0KX1mdW5jdGlvbiBMMTEodCxlPXt9KXtsZXR7ZW5jb2RlOmE9ZW5jb2RlVVJJQ29tcG9uZW50LGRlbGltaXRlcjpyPUNlZX09ZSxpPXR5cGVvZiB0PT0ib2JqZWN0Ij90Ol9lZSh0LGUpLG89S3R0KGkudG9rZW5zLHIsYSk7cmV0dXJuIGZ1bmN0aW9uKGw9e30pe2xldFtmLC4uLmNdPW8obCk7aWYoYy5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcihgTWlzc2luZyBwYXJhbWV0ZXJzOiAke2Muam9pbigiLCAiKX1gKTtyZXR1cm4gZn19ZnVuY3Rpb24gS3R0KHQsZSxhKXtsZXQgcj10Lm1hcChpPT5UMTEoaSxlLGEpKTtyZXR1cm4gaT0+e2xldCBvPVsiIl07Zm9yKGxldCBzIG9mIHIpe2xldFtsLC4uLmZdPXMoaSk7b1swXSs9bCxvLnB1c2goLi4uZil9cmV0dXJuIG99fWZ1bmN0aW9uIFQxMSh0LGUsYSl7aWYodC50eXBlPT09InRleHQiKXJldHVybigpPT5bdC52YWx1ZV07aWYodC50eXBlPT09Imdyb3VwIil7bGV0IGk9S3R0KHQudG9rZW5zLGUsYSk7cmV0dXJuIG89PntsZXRbcywuLi5sXT1pKG8pO3JldHVybiBsLmxlbmd0aD9bIiJdOltzXX19bGV0IHI9YXx8TGVlO3JldHVybiB0LnR5cGU9PT0id2lsZGNhcmQiJiZhIT09ITE/aT0+e2xldCBvPWlbdC5uYW1lXTtpZihvPT1udWxsKXJldHVyblsiIix0Lm5hbWVdO2lmKCFBcnJheS5pc0FycmF5KG8pfHxvLmxlbmd0aD09PTApdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7dC5uYW1lfSIgdG8gYmUgYSBub24tZW1wdHkgYXJyYXlgKTtyZXR1cm5bby5tYXAoKHMsbCk9PntpZih0eXBlb2YgcyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7dC5uYW1lfS8ke2x9IiB0byBiZSBhIHN0cmluZ2ApO3JldHVybiByKHMpfSkuam9pbihlKV19Omk9PntsZXQgbz1pW3QubmFtZV07aWYobz09bnVsbClyZXR1cm5bIiIsdC5uYW1lXTtpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7dC5uYW1lfSIgdG8gYmUgYSBzdHJpbmdgKTtyZXR1cm5bcihvKV19fWZ1bmN0aW9uIF8xMSh0LGU9e30pe2xldHtkZWNvZGU6YT1kZWNvZGVVUklDb21wb25lbnQsZGVsaW1pdGVyOnI9Q2VlfT1lLHtyZWdleHA6aSxrZXlzOm99PUp0dCh0LGUpLHM9by5tYXAobD0+YT09PSExP0xlZTpsLnR5cGU9PT0icGFyYW0iP2E6Zj0+Zi5zcGxpdChyKS5tYXAoYSkpO3JldHVybiBmdW5jdGlvbihmKXtsZXQgYz1pLmV4ZWMoZik7aWYoIWMpcmV0dXJuITE7bGV0IHU9Y1swXSxkPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBoPTE7aDxjLmxlbmd0aDtoKyspe2lmKGNbaF09PT12b2lkIDApY29udGludWU7bGV0IGc9b1toLTFdLGI9c1toLTFdO2RbZy5uYW1lXT1iKGNbaF0pfXJldHVybntwYXRoOnUscGFyYW1zOmR9fX1mdW5jdGlvbiBKdHQodCxlPXt9KXtsZXR7ZGVsaW1pdGVyOmE9Q2VlLGVuZDpyPSEwLHNlbnNpdGl2ZTppPSExLHRyYWlsaW5nOm89ITB9PWUscz1bXSxsPWk/IiI6ImkiLGY9W107Zm9yKGxldCBkIG9mIGUxdCh0LFtdKSl7bGV0IGg9dHlwZW9mIGQ9PSJvYmplY3QiP2Q6X2VlKGQsZSk7Zm9yKGxldCBnIG9mIHBxKGgudG9rZW5zLDAsW10pKWYucHVzaChBMTEoZyxhLHMsaC5vcmlnaW5hbFBhdGgpKX1sZXQgYz1gXig/OiR7Zi5qb2luKCJ8Iil9KWA7cmV0dXJuIG8mJihjKz1gKD86JHtScihhKX0kKT9gKSxjKz1yPyIkIjpgKD89JHtScihhKX18JClgLHtyZWdleHA6bmV3IFJlZ0V4cChjLGwpLGtleXM6c319ZnVuY3Rpb24gZTF0KHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IGEgb2YgdCllMXQoYSxlKTtlbHNlIGUucHVzaCh0KTtyZXR1cm4gZX1mdW5jdGlvbipwcSh0LGUsYSl7aWYoZT09PXQubGVuZ3RoKXJldHVybiB5aWVsZCBhO2xldCByPXRbZV07aWYoci50eXBlPT09Imdyb3VwIilmb3IobGV0IGkgb2YgcHEoci50b2tlbnMsMCxhLnNsaWNlKCkpKXlpZWxkKnBxKHQsZSsxLGkpO2Vsc2UgYS5wdXNoKHIpO3lpZWxkKnBxKHQsZSsxLGEpfWZ1bmN0aW9uIEExMSh0LGUsYSxyKXtsZXQgaT0iIixvPSIiLHM9ITA7Zm9yKGxldCBsIG9mIHQpe2lmKGwudHlwZT09PSJ0ZXh0Iil7aSs9UnIobC52YWx1ZSksbys9bC52YWx1ZSxzfHwocz1sLnZhbHVlLmluY2x1ZGVzKGUpKTtjb250aW51ZX1pZihsLnR5cGU9PT0icGFyYW0ifHxsLnR5cGU9PT0id2lsZGNhcmQiKXtpZighcyYmIW8pdGhyb3cgbmV3IGtuKGBNaXNzaW5nIHRleHQgYmVmb3JlICIke2wubmFtZX0iICR7bC50eXBlfWAscik7bC50eXBlPT09InBhcmFtIj9pKz1gKCR7JDExKGUscz8iIjpvKX0rKWA6aSs9IihbXFxzXFxTXSspIixhLnB1c2gobCksbz0iIixzPSExO2NvbnRpbnVlfX1yZXR1cm4gaX1mdW5jdGlvbiAkMTEodCxlKXtyZXR1cm4gZS5sZW5ndGg8Mj90Lmxlbmd0aDwyP2BbXiR7UnIodCtlKX1dYDpgKD86KD8hJHtScih0KX0pW14ke1JyKGUpfV0pYDp0Lmxlbmd0aDwyP2AoPzooPyEke1JyKGUpfSlbXiR7UnIodCl9XSlgOmAoPzooPyEke1JyKGUpfXwke1JyKHQpfSlbXFxzXFxTXSlgfWZ1bmN0aW9uIHQxdCh0KXtsZXQgZT0iIixhPTA7ZnVuY3Rpb24gcihpKXtyZXR1cm4gRTExKGkpJiZOMTEodFthXSk/aTpKU09OLnN0cmluZ2lmeShpKX1mb3IoO2E8dC5sZW5ndGg7KXtsZXQgaT10W2ErK107aWYoaS50eXBlPT09InRleHQiKXtlKz1DMTEoaS52YWx1ZSk7Y29udGludWV9aWYoaS50eXBlPT09Imdyb3VwIil7ZSs9YHske3QxdChpLnRva2Vucyl9fWA7Y29udGludWV9aWYoaS50eXBlPT09InBhcmFtIil7ZSs9YDoke3IoaS5uYW1lKX1gO2NvbnRpbnVlfWlmKGkudHlwZT09PSJ3aWxkY2FyZCIpe2UrPWAqJHtyKGkubmFtZSl9YDtjb250aW51ZX10aHJvdyBuZXcgVHlwZUVycm9yKGBVbmtub3duIHRva2VuIHR5cGU6ICR7aS50eXBlfWApfXJldHVybiBlfWZ1bmN0aW9uIEQxMSh0KXtyZXR1cm4gdDF0KHQudG9rZW5zKX1mdW5jdGlvbiBFMTEodCl7bGV0W2UsLi4uYV09dDtyZXR1cm4gUXR0LnRlc3QoZSkmJmEuZXZlcnkocj0+VGVlLnRlc3QocikpfWZ1bmN0aW9uIE4xMSh0KXtyZXR1cm4gdCYmdC50eXBlPT09InRleHQiPyFUZWUudGVzdCh0LnZhbHVlWzBdKTohMH19KTt2YXIgQWVlLCRlZT1uKCgpPT57azgoKTtWYSgpO0FlZT1OMihhMXQoKSwxKX0pO3ZhciBocSxyMXQ9bigoKT0+eyRlZSgpO2hxPWNsYXNze2NvbnN0cnVjdG9yKCl7fWdldEFsbEFzT2JqZWN0KCl7bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGUuZW50cmllcygpKX1zZXRRdWVyeVBhcmFtKGUsYSxyPSJyZXBsYWNlIil7dmFyIGk9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtpLnNldChlLGEpLHI9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IitpLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIraS50b1N0cmluZygpKX1kZWxldGVRdWVyeVBhcmFtKGUsYT0icmVwbGFjZSIpe3ZhciByPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7ci5kZWxldGUoZSksYT09PSJwdXNoIj9oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsIj8iK3IudG9TdHJpbmcoKSk6aGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxudWxsLCI/IityLnRvU3RyaW5nKCkpfWdldFF1ZXJ5UGFyYW0oZSl7cmV0dXJuIHRoaXMuZ2V0QWxsQXNPYmplY3QoKVtlXX19fSk7dmFyIE5hMixEZWUsaTF0PW4oKCk9PnskZWUoKTtyMXQoKTtOYTI9dD0+e2NvbnNvbGUubG9nKGAlY1tSb3V0ZXJdJWMgJHt0fWAsImNvbG9yOiByZ2IoMjU1LCAxMDUsIDEwMCk7IiwiY29sb3I6IGluaGVyaXQiKX0sRGVlPWNsYXNzIHR7Y29uc3RydWN0b3IoZSxhPSIiKXt0aGlzLm9wdGlvbnM9e2RlYnVnOiExfSx0aGlzLnF1ZXJ5UGFyYW1zPW5ldyBocSx0aGlzLnJvdXRlcz1bXSx0aGlzLm9wdGlvbnM9ey4uLnRoaXMub3B0aW9ucywuLi5lfSx0aGlzLmJhc2VQYXRoPWEsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyPXI9PntyLnByZXZlbnREZWZhdWx0KCksdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMucG9wc3RhdGVMaXN0ZW5lcil9Y3JlYXRlU3ViUm91dGVyKGUsYSl7bGV0IHI9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YDtyZXR1cm4gbmV3IHQoey4uLnRoaXMub3B0aW9ucywuLi5hfSxyKX1hc3luYyBwdXNoVXJsKGU9Ii8iLGE9e30pe2xldCByPWAke3RoaXMuYmFzZVBhdGh9JHtlfWA7ciE9PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZT93aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoYSx3aW5kb3cuZG9jdW1lbnQudGl0bGUscik6d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKGEsd2luZG93LmRvY3VtZW50LnRpdGxlLHIpLGF3YWl0IHRoaXMuX2hhbmRsZVJvdXRlU3RhdGUoKX1vbihlLGEpe2xldCByPWAke3RoaXMuYmFzZVBhdGh9JHtlfWAsaT17bWF0Y2hGdW5jdGlvbjpBZWUubWF0Y2gociksaGFuZGxlcjphfTtyZXR1cm4gdGhpcy5yb3V0ZXMucHVzaChpKSwoKT0+e3RoaXMucm91dGVzLnNwbGljZSh0aGlzLnJvdXRlcy5pbmRleE9mKGkpLDEpfX1hc3luYyBfaGFuZGxlUm91dGVTdGF0ZSgpe2xldCBlPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxhPXRoaXMucm91dGVzLmZpbHRlcihyPT4hIXIubWF0Y2hGdW5jdGlvbihlKSk7Zm9yKGxldCByIG9mIGEpe2xldCBpPXIubWF0Y2hGdW5jdGlvbihlKTtyLmhhbmRsZXIoey4uLmkudmFsdWVPZigpLHF1ZXJ5UGFyYW1zOnRoaXMucXVlcnlQYXJhbXMuZ2V0QWxsQXNPYmplY3QoKX0pfX1kZXN0cm95KCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0aGlzLnBvcHN0YXRlTGlzdGVuZXIpLHRoaXMucm91dGVzPVtdfX19KTt2YXIgR289e307ZXQoR28se1NtYXJ0Um91dGVyOigpPT5EZWV9KTt2YXIgRWVlPW4oKCk9PntpMXQoKX0pO3ZhciBvMXQ9bigoKT0+e044KCk7ZDYoKX0pO2Z1bmN0aW9uIEhyKHQsZSl7cmV0dXJuIHQ+Pj5lfHQ8PDMyLWV9ZnVuY3Rpb24gQjExKHQsZSl7bGV0IGE9ZVswXSxyPWVbMV0saT1lWzJdLG89ZVszXSxzPWVbNF0sbD1lWzVdLGY9ZVs2XSxjPWVbN107Zm9yKGxldCB1PTA7dTw2NDt1Kyspe2lmKHU+PTE2KXtsZXQgdj1Icih0W3UtMTVdLDcpXkhyKHRbdS0xNV0sMTgpXnRbdS0xNV0+Pj4zLHk9SHIodFt1LTJdLDE3KV5Icih0W3UtMl0sMTkpXnRbdS0yXT4+PjEwO3RbdV09dFt1LTE2XSt2K3RbdS03XSt5Pj4+MH1sZXQgZD1IcihzLDYpXkhyKHMsMTEpXkhyKHMsMjUpLGg9cyZsXn5zJmYsZz1jK2QraCtGMTFbdV0rdFt1XT4+PjAsYj1IcihhLDIpXkhyKGEsMTMpXkhyKGEsMjIpLHg9YSZyXmEmaV5yJmksbT1iK3g+Pj4wO2M9ZixmPWwsbD1zLHM9bytnPj4+MCxvPWksaT1yLHI9YSxhPWcrbT4+PjB9ZVswXT1lWzBdK2E+Pj4wLGVbMV09ZVsxXStyPj4+MCxlWzJdPWVbMl0raT4+PjAsZVszXT1lWzNdK28+Pj4wLGVbNF09ZVs0XStzPj4+MCxlWzVdPWVbNV0rbD4+PjAsZVs2XT1lWzZdK2Y+Pj4wLGVbN109ZVs3XStjPj4+MH1mdW5jdGlvbiBOZWUodCl7bGV0IGU9Wy4uLk8xMV0sYT10Lmxlbmd0aCxyPWEqOCxpPWElNjQ8NTY/NTYtYSU2NDoxMjAtYSU2NCxvPW5ldyBVaW50OEFycmF5KGEraSs4KTtvLnNldCh0KSxvW2FdPTEyODtsZXQgcz1uZXcgRGF0YVZpZXcoby5idWZmZXIpO3Muc2V0VWludDMyKG8ubGVuZ3RoLTgsMCwhMSkscy5zZXRVaW50MzIoby5sZW5ndGgtNCxyPj4+MCwhMSk7Zm9yKGxldCBmPTA7ZjxvLmxlbmd0aDtmKz02NCl7bGV0IGM9bmV3IEFycmF5KDY0KTtmb3IobGV0IHU9MDt1PDE2O3UrKyljW3VdPXMuZ2V0VWludDMyKGYrdSo0LCExKTtCMTEoYyxlKX1sZXQgbD0iIjtmb3IobGV0IGY9MDtmPDg7ZisrKWwrPWVbZl0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKTtyZXR1cm4gbH12YXIgRjExLE8xMSxzMXQ9bigoKT0+e0YxMT1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxPMTE9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XX0pO3ZhciBfZD17fTtldChfZCx7bWQ1RnJvbVN0cmluZzooKT0+ajExLHNoYTI1NkZyb21CdWZmZXI6KCk9PkgxMSxzaGEyNTZGcm9tRmlsZTooKT0+VTExLHNoYTI1NkZyb21TdHJlYW06KCk9PlYxMSxzaGEyNTZGcm9tU3RyaW5nOigpPT5jMXQsc2hhMjU2RnJvbVN0cmluZ1N5bmM6KCk9PlIxMSxzaGEyNjVGcm9tT2JqZWN0OigpPT5xMTF9KTt2YXIgbjF0LGwxdCxjMXQsUjExLEgxMSxxMTEsVjExLFUxMSxqMTEsZDF0PW4oKCk9PntvMXQoKTtzMXQoKTtuMXQ9dD0+e2xldCBlPVtdLGE9bmV3IERhdGFWaWV3KHQpO2ZvcihsZXQgcj0wO3I8YS5ieXRlTGVuZ3RoO3IrPTQpe2xldCBvPWEuZ2V0VWludDMyKHIpLnRvU3RyaW5nKDE2KSxzPSIwMDAwMDAwMCIsbD0ocytvKS5zbGljZSgtcy5sZW5ndGgpO2UucHVzaChsKX1yZXR1cm4gZS5qb2luKCIiKX0sbDF0PSgpPT50eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnN1YnRsZSE9PXZvaWQgMCxjMXQ9YXN5bmMgdD0+e2xldCBlPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0KTtpZihsMXQoKSl7bGV0IGE9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGUpO3JldHVybiBuMXQoYSl9ZWxzZSByZXR1cm4gTmVlKGUpfSxSMTE9dD0+e3Rocm93IGNvbnNvbGUud2Fybigic2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHRydWx5IHN5bmNocm9ub3VzIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKSxuZXcgRXJyb3IoInNoYTI1NkZyb21TdHJpbmdTeW5jIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudC4gVXNlIHNoYTI1NkZyb21TdHJpbmcgaW5zdGVhZC4iKX0sSDExPWFzeW5jIHQ9PntpZihsMXQoKSl7bGV0IGU7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2xldCBpPXQ7ZT1pLmJ1ZmZlci5zbGljZShpLmJ5dGVPZmZzZXQsaS5ieXRlT2Zmc2V0K2kuYnl0ZUxlbmd0aCl9ZWxzZSBlPXQ7bGV0IGE9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGUpO3JldHVybiBuMXQoYSl9ZWxzZXtsZXQgZT10IGluc3RhbmNlb2YgVWludDhBcnJheT90Om5ldyBVaW50OEFycmF5KHQpO3JldHVybiBOZWUoZSl9fSxxMTE9YXN5bmMgdD0+e2xldCBlPW8xLnN0cmluZ2lmeSh0KTtyZXR1cm4gYXdhaXQgYzF0KGUpfSxWMTE9dD0+e3Rocm93IG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sVTExPWFzeW5jIHQ9Pnt0aHJvdyBuZXcgRXJyb3IoInNoYTI1NkZyb21GaWxlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpfSxqMTE9YXN5bmMgdD0+e3Rocm93IG5ldyBFcnJvcigibWQ1RnJvbVN0cmluZyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFdlYiBDcnlwdG8gQVBJIGRvZXMgbm90IHN1cHBvcnQgTUQ1LiIpfX0pO3ZhciBtcT1uKCgpPT57ZDF0KCk7ZDYoKTtwMigpO1ZhKCk7UFIoKX0pO3ZhciBBZCxQZWU9bigoKT0+e21xKCk7Z3EoKTtBZD1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuc3RhdGVQYXJ0UmVmPWUsdGhpcy5hY3Rpb25EZWY9YX10cmlnZ2VyKGUpe3JldHVybiB0aGlzLnN0YXRlUGFydFJlZi5kaXNwYXRjaEFjdGlvbih0aGlzLGUpfX19KTt2YXIgJGQsZ3E9bigoKT0+e21xKCk7UGVlKCk7JGQ9Y2xhc3N7Y29uc3RydWN0b3IoZSxhKXt0aGlzLnN0YXRlPW5ldyBDdC5yeGpzLlN1YmplY3QsdGhpcy5jdW11bGF0aXZlRGVmZXJyZWQ9VmUuY3VtdWxhdGl2ZURlZmVyKCksdGhpcy53ZWJTdG9yZT1udWxsLHRoaXMubmFtZT1lLGEmJih0aGlzLndlYlN0b3JlT3B0aW9ucz1hKX1hc3luYyBpbml0KCl7aWYodGhpcy53ZWJTdG9yZU9wdGlvbnMpe3RoaXMud2ViU3RvcmU9bmV3IEdhLldlYlN0b3JlKHRoaXMud2ViU3RvcmVPcHRpb25zKSxhd2FpdCB0aGlzLndlYlN0b3JlLmluaXQoKTtsZXQgZT1hd2FpdCB0aGlzLndlYlN0b3JlLmdldChTdHJpbmcodGhpcy5uYW1lKSk7ZSYmdGhpcy52YWxpZGF0ZVN0YXRlKGUpJiYodGhpcy5zdGF0ZVN0b3JlPWUsYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKSl9fWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuc3RhdGVTdG9yZX1hc3luYyBzZXRTdGF0ZShlKXtpZighdGhpcy52YWxpZGF0ZVN0YXRlKGUpKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdGF0ZSBzdHJ1Y3R1cmUgZm9yIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSdgKTtyZXR1cm4gdGhpcy5zdGF0ZVN0b3JlPWUsYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKSx0aGlzLndlYlN0b3JlJiZhd2FpdCB0aGlzLndlYlN0b3JlLnNldChTdHJpbmcodGhpcy5uYW1lKSxlKSx0aGlzLnN0YXRlU3RvcmV9dmFsaWRhdGVTdGF0ZShlKXtyZXR1cm4gZSE9bnVsbH1hc3luYyBub3RpZnlDaGFuZ2UoKXtpZighdGhpcy5zdGF0ZVN0b3JlKXJldHVybjtsZXQgYT1hd2FpdChhc3luYyByPT5hd2FpdCBfZC5zaGEyNTZGcm9tU3RyaW5nKG8xLnN0YWJsZU9uZVdheVN0cmluZ2lmeShyKSkpKHRoaXMuc3RhdGVTdG9yZSk7dGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaCYmYT09PXRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2h8fCh0aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNoPWEsdGhpcy5zdGF0ZS5uZXh0KHRoaXMuc3RhdGVTdG9yZSkpfW5vdGlmeUNoYW5nZUN1bXVsYXRpdmUoKXtzZXRUaW1lb3V0KGFzeW5jKCk9Pnt0aGlzLnN0YXRlU3RvcmUmJmF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCl9LDApfXNlbGVjdChlKXtyZXR1cm4gZXx8KGU9cj0+ciksdGhpcy5zdGF0ZS5waXBlKEN0LnJ4anMub3BzLnN0YXJ0V2l0aCh0aGlzLmdldFN0YXRlKCkpLEN0LnJ4anMub3BzLmZpbHRlcihyPT5yIT09dm9pZCAwKSxDdC5yeGpzLm9wcy5tYXAocj0+e3RyeXtyZXR1cm4gZShyKX1jYXRjaHt9fSkpfWNyZWF0ZUFjdGlvbihlKXtyZXR1cm4gbmV3IEFkKHRoaXMsZSl9YXN5bmMgZGlzcGF0Y2hBY3Rpb24oZSxhKXthd2FpdCB0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZC5wcm9taXNlO2xldCByPWF3YWl0IGUuYWN0aW9uRGVmKHRoaXMsYSk7cmV0dXJuIGF3YWl0IHRoaXMuc2V0U3RhdGUociksdGhpcy5nZXRTdGF0ZSgpfWFzeW5jIHdhaXRVbnRpbFByZXNlbnQoZSl7bGV0IGE9VmUuZGVmZXIoKSxpPXRoaXMuc2VsZWN0KGUpLnN1YnNjcmliZShhc3luYyBzPT57cyYmYS5yZXNvbHZlKHMpfSksbz1hd2FpdCBhLnByb21pc2U7cmV0dXJuIGkudW5zdWJzY3JpYmUoKSxvfWFzeW5jIHN0YXRlU2V0dXAoZSl7bGV0IGE9ZSh0aGlzKTt0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZC5hZGRQcm9taXNlKGEpLHRoaXMuc2V0U3RhdGUoYXdhaXQgYSl9fX0pO3ZhciBJZWUsZjF0PW4oKCk9PnttcSgpO2dxKCk7SWVlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zdGF0ZVBhcnRNYXA9e319YXN5bmMgZ2V0U3RhdGVQYXJ0KGUsYSxyPSJzb2Z0Iil7bGV0IGk9dGhpcy5zdGF0ZVBhcnRNYXBbZV07aWYoaSlzd2l0Y2gocil7Y2FzZSJtYW5kYXRvcnkiOnRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgYWxyZWFkeSBleGlzdHMsIGJ1dCBpbml0TW9kZSBpcyAnbWFuZGF0b3J5J2ApO2Nhc2UiZm9yY2UiOnJldHVybiB0aGlzLmNyZWF0ZVN0YXRlUGFydChlLGEscik7ZGVmYXVsdDpyZXR1cm4gaX1lbHNle2lmKCFhKXRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgZG9lcyBub3QgZXhpc3QgYW5kIG5vIGluaXRpYWwgc3RhdGUgcHJvdmlkZWRgKTtyZXR1cm4gdGhpcy5jcmVhdGVTdGF0ZVBhcnQoZSxhLHIpfX1hc3luYyBjcmVhdGVTdGF0ZVBhcnQoZSxhLHI9InNvZnQiKXtsZXQgaT1uZXcgJGQoZSxyPT09InBlcnNpc3RlbnQiP3tkYk5hbWU6InNtYXJ0c3RhdGUiLHN0b3JlTmFtZTplfTpudWxsKTthd2FpdCBpLmluaXQoKTtsZXQgbz1pLmdldFN0YXRlKCk7cmV0dXJuIGF3YWl0IGkuc2V0U3RhdGUoey4uLm8sLi4uYX0pLHRoaXMuc3RhdGVQYXJ0TWFwW2VdPWksaX19fSk7dmFyIFlvPXt9O2V0KFlvLHtTbWFydHN0YXRlOigpPT5JZWUsU3RhdGVBY3Rpb246KCk9PkFkLFN0YXRlUGFydDooKT0+JGR9KTt2YXIgRmVlPW4oKCk9PntmMXQoKTtncSgpO1BlZSgpfSk7dmFyIHUxdD1uKCgpPT57fSk7dmFyIE9lZSxwMXQ9bigoKT0+e3UxdCgpO09lZT1jbGFzcyB0e3N0YXRpYyBjcmVhdGVGcm9tVXJsKGUsYSl7bGV0IHI9bmV3IFVSTChlKSxpPXt9LG89W107ci5zZWFyY2gmJnIuc2VhcmNoLnJlcGxhY2UoIj8iLCIiKS5zcGxpdCgiJiIpLm1hcChjPT57by5wdXNoKHtrZXk6Yy5zcGxpdCgiPSIpWzBdLHZhbHVlOmMuc3BsaXQoIj0iKVsxXX0pfSk7Zm9yKGxldCBjIG9mIG8paVtjLmtleV09Yy52YWx1ZTtpZihhPy5zZWFyY2hQYXJhbXMpZm9yKGxldCBjIG9mIE9iamVjdC5rZXlzKGEuc2VhcmNoUGFyYW1zKSlpW2NdPWEuc2VhcmNoUGFyYW1zW2NdO2xldCBzPXIucGF0aG5hbWV8fCIiO2lmKE9iamVjdC5rZXlzKGkpLmxlbmd0aD4wKXtzKz0iPyI7bGV0IGM9ITA7Zm9yKGxldCB1IG9mIE9iamVjdC5rZXlzKGkpKWM/Yz0hMTpzKz0iJiIscys9YCR7dX09JHtpW3VdfWB9bGV0IGw9ey4uLnIsaHJlZjpyLmhyZWYsb3JpZ2luOnIub3JpZ2luLHByb3RvY29sOnIucHJvdG9jb2wsdXNlcm5hbWU6ci51c2VybmFtZSxwYXNzd29yZDpyLnBhc3N3b3JkLGhvc3Q6ci5ob3N0LGhvc3RuYW1lOnIuaG9zdG5hbWUscG9ydDpyLnBvcnQscGF0aDpzLHBhdGhuYW1lOnIucGF0aG5hbWUsc2VhcmNoOnIuc2VhcmNoLHNlYXJjaFBhcmFtczppLGhhc2g6ci5oYXNofTshbC5wb3J0JiZsLnByb3RvY29sPT09Imh0dHBzOiImJihsLnBvcnQ9IjQ0MyIpLCFsLnBvcnQmJmwucHJvdG9jb2w9PT0iaHR0cDoiJiYobC5wb3J0PSI4MCIpO2xldCBmPW5ldyB0O3JldHVybiBPYmplY3QuYXNzaWduKGYsbCksZn1zdGF0aWMgY3JlYXRlRnJvbVBhcnNlZFVybChlKXtsZXQgYT1uZXcgdDtyZXR1cm4gT2JqZWN0LmFzc2lnbihhLGUpLGF9Y29uc3RydWN0b3IoKXt0aGlzLnNlYXJjaFBhcmFtcz17fX1jbG9uZSgpe2xldCBlPW5ldyB0O3JldHVybiBPYmplY3QuYXNzaWduKGUsdGhpcyksZS5zZWFyY2hQYXJhbXM9ey4uLnRoaXMuc2VhcmNoUGFyYW1zfSxlfXNldChlLGEpe3JldHVybiB0aGlzW2VdPWEsdGhpc310b1N0cmluZygpe2xldCBlPSIiO3JldHVybiB0aGlzLnVzZXJuYW1lJiYhdGhpcy5wYXNzd29yZCYmKGU9YCR7dGhpcy51c2VybmFtZX1AYCksdGhpcy51c2VybmFtZSYmdGhpcy5wYXNzd29yZCYmKGU9YCR7dGhpcy51c2VybmFtZX06JHt0aGlzLnBhc3N3b3JkfUBgKSxgJHt0aGlzLnByb3RvY29sfS8vJHtlfSR7dGhpcy5ob3N0bmFtZX06JHt0aGlzLnBvcnR9JHt0aGlzLnBhdGh9YH19fSk7dmFyIFpvPXt9O2V0KFpvLHtTbWFydHVybDooKT0+T2VlfSk7dmFyIEJlZT1uKCgpPT57cDF0KCl9KTt2YXIgeHEsU24sYnE9bigoKT0+e3hxPWNsYXNze2NsYWltKCl7aWYodGhpcy5jbGFpbWVkKXRocm93IG5ldyBFcnJvcigiRGVmZXJyZWQgYWxyZWFkeSBjbGFpbWVkIik7dGhpcy5jbGFpbWVkPSEwfWdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLnN0b3BwZWRBdD90aGlzLnN0b3BwZWRBdC10aGlzLnN0YXJ0ZWRBdDpEYXRlLm5vdygpLXRoaXMuc3RhcnRlZEF0fWNvbnN0cnVjdG9yKCl7dGhpcy5jbGFpbWVkPSExLHRoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZSxhKT0+e3RoaXMucmVzb2x2ZT1yPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxlKHIpfSx0aGlzLnJlamVjdD1yPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLGEocil9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9fSxTbj0oKT0+bmV3IHhxfSk7dmFyIHZxLEcxMSxoMXQ9bigoKT0+e2JxKCk7dnE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXM9W10sdGhpcy5kZWZlcnJlZD1TbigpLHRoaXMucHJvbWlzZT10aGlzLmRlZmVycmVkLnByb21pc2Usc2V0VGltZW91dChhc3luYygpPT57Zm9yKDt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMubGVuZ3RoPjA7KWF3YWl0IHRoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5zaGlmdCgpO3RoaXMuZGVmZXJyZWQucmVzb2x2ZSgpfSwwKX1hZGRQcm9taXNlKGUpe3RoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5wdXNoKGUpfX0sRzExPSgpPT5uZXcgdnF9KTt2YXIgQ249e307ZXQoQ24se0N1bXVsYXRpdmVEZWZlcnJlZDooKT0+dnEsRGVmZXJyZWQ6KCk9PnhxLGN1bXVsYXRpdmVEZWZlcjooKT0+RzExLGRlZmVyOigpPT5TbixnZXRGaXJzdFRydWVPckZhbHNlOigpPT5LMTEsbWFwOigpPT5YMTEscmVqZWN0ZWRQcm9taXNlOigpPT5aMTEscmVzb2x2ZWRQcm9taXNlOigpPT5ZMTEsdGltZW91dEFuZENvbnRpbnVlOigpPT5RMTEsdGltZW91dFdyYXA6KCk9Pm0xdH0pO3ZhciBZMTEsWjExLFgxMSxtMXQsUTExLEsxMSxSZWU9bigoKT0+e2JxKCk7aDF0KCk7YnEoKTtZMTE9dD0+UHJvbWlzZS5yZXNvbHZlKHQpLFoxMT10PT5Qcm9taXNlLnJlamVjdCh0KSxYMTE9YXN5bmModCxlKT0+e2xldCBhPVtdLHI9W107Zm9yKGxldCBpIG9mIHQpe2xldCBvPWUoaSk7YS5wdXNoKG8pLG8udGhlbihzPT57ci5wdXNoKHMpfSl9cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGEpLHJ9LG0xdD1hc3luYyh0LGUsYT0hMCk9Pm5ldyBQcm9taXNlKChyLGkpPT57c2V0VGltZW91dCgoKT0+e2E/aShuZXcgRXJyb3IoInRpbWVvdXQiKSk6cihudWxsKX0sZSksdC50aGVuKHIsaSl9KSxRMTE9YXN5bmModCxlPTZlNCk9Pm0xdCh0LGUsITEpLEsxMT1hc3luYyB0PT57bGV0IGU9U24oKTtmb3IobGV0IGEgb2YgdClhLnRoZW4ocj0+e3I9PT0hMCYmZS5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKCgpPT57ZS5yZXNvbHZlKCExKX0pLGUucHJvbWlzZX19KTt2YXIgSGVlPXt9O2V0KEhlZSx7VGltZW91dDooKT0+eXEsZGVsYXlGb3I6KCk9PmcxdCxkZWxheUZvclJhbmRvbTooKT0+SjExfSk7dmFyIGcxdCxKMTEseXEseDF0PW4oKCk9PntSZWUoKTtnMXQ9YXN5bmModCxlLGE9ITEpPT4oYXdhaXQgbmV3IHlxKHQsbnVsbCxhKS5wcm9taXNlLGUpLEoxMT1hc3luYyh0LGUsYSxyPSExKT0+KGF3YWl0IGcxdChNYXRoLnJhbmRvbSgpKihlLXQpK3QsbnVsbCxyKSxhKSx5cT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEscj0hMSl7dGhpcy5fY2FuY2VsbGVkPSExLHRoaXMudGltZW91dEluTWlsbGlzPWUsdGhpcy5fZGVmZXJyZWQ9U24oKSx0aGlzLnByb21pc2U9dGhpcy5fZGVmZXJyZWQucHJvbWlzZSx0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9jYW5jZWxsZWR8fHRoaXMuX2RlZmVycmVkLnJlc29sdmUoYSl9LGUpLHRoaXMuc3RhcnRlZD1EYXRlLm5vdygpLHImJnRoaXMubWFrZVVucmVmZWQoKX1tYWtlVW5yZWZlZCgpe3RoaXMuX3RpbWVvdXQudW5yZWYoKX1jYW5jZWwoKXt0aGlzLl9jYW5jZWxsZWQ9ITAsY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpfWdldFRpbWVMZWZ0KCl7bGV0IGU9dGhpcy5zdGFydGVkK3RoaXMudGltZW91dEluTWlsbGlzLURhdGUubm93KCk7cmV0dXJuIGU+MD9lOjB9fX0pO3ZhciBiMXQ9bigoKT0+e30pO3ZhciB3cT1uKCgpPT57cXIoKX0pO3ZhciBNcT1uKCgpPT57cXIoKTtxcigpfSk7dmFyIHYxdD1uKCgpPT57cXIoKX0pO3ZhciB5MXQ9bigoKT0+e30pO3ZhciB3MXQ9bigoKT0+e3FyKCl9KTt2YXIgTTF0PW4oKCk9PntxcigpfSk7dmFyIHoxdD1uKCgpPT57fSk7dmFyIGsxdD1uKCgpPT57fSk7dmFyIHFlZT17fTt2YXIgenE9bigoKT0+e3YxdCgpO3kxdCgpO3cxdCgpO00xdCgpO3oxdCgpO2sxdCgpfSk7dmFyIFZlZSxTMXQ9bigoKT0+e3pxKCk7d3EoKTtNcSgpO1ZlZT1jbGFzc3t9fSk7dmFyIEMxdD1uKCgpPT57fSk7dmFyIEwxdD1uKCgpPT57fSk7dmFyIFQxdD1uKCgpPT57fSk7dmFyIF8xdD1uKCgpPT57fSk7dmFyIFVlZT17fTt2YXIgamVlPW4oKCk9PntDMXQoKTtMMXQoKTtUMXQoKTtfMXQoKX0pO3ZhciBBMXQ9bigoKT0+e1dlZSgpO3pxKCk7amVlKCl9KTt2YXIgJDF0PW4oKCk9Pnt9KTt2YXIgRDF0PW4oKCk9PntNcSgpfSk7dmFyIEUxdD1uKCgpPT57fSk7dmFyIGtxPXt9O2V0KGtxLHtJSm9iOigpPT5WZWV9KTt2YXIgV2VlPW4oKCk9PntiMXQoKTt3cSgpO01xKCk7UzF0KCk7QTF0KCk7JDF0KCk7RDF0KCk7RTF0KCl9KTt2YXIgTjF0PW4oKCk9Pnt9KTt2YXIgUDF0PW4oKCk9Pnt9KTt2YXIgR2VlPXt9O3ZhciBJMXQ9bigoKT0+e04xdCgpO1AxdCgpfSk7dmFyIEYxdD1uKCgpPT57fSk7dmFyIE8xdD1uKCgpPT57fSk7dmFyIFllZT17fTt2YXIgQjF0PW4oKCk9PntGMXQoKTtPMXQoKX0pO3ZhciBaZWU9bigoKT0+e3FyKCl9KTt2YXIgUjF0PW4oKCk9PntxcigpfSk7dmFyIEgxdD1uKCgpPT57WmVlKCl9KTt2YXIgWGVlPXt9O3ZhciBxMXQ9bigoKT0+e1plZSgpO1IxdCgpO0gxdCgpfSk7dmFyIFYxdD1uKCgpPT57fSk7dmFyIFUxdD1uKCgpPT57fSk7dmFyIFFlZT17fTt2YXIgajF0PW4oKCk9PntWMXQoKTtVMXQoKX0pO3ZhciBLZWU9bigoKT0+e30pO3ZhciBKZWUsVzF0PW4oKCk9PntLZWUoKTtKZWU9Y2xhc3N7fX0pO3ZhciBHMXQ9bigoKT0+e30pO3ZhciBZMXQ9bigoKT0+e30pO3ZhciBaMXQ9bigoKT0+e30pO3ZhciBYMXQ9bigoKT0+e30pO3ZhciBRMXQ9bigoKT0+e30pO3ZhciBLMXQ9bigoKT0+e30pO3ZhciBKMXQ9bigoKT0+e30pO3ZhciBlMnQ9bigoKT0+e30pO3ZhciB0MnQ9bigoKT0+e30pO3ZhciBTcT17fTtldChTcSx7SUNuYW1lRGVzY3JpcHRvcjooKT0+SmVlfSk7dmFyIGEydD1uKCgpPT57S2VlKCk7VzF0KCk7RzF0KCk7WTF0KCk7WjF0KCk7WDF0KCk7UTF0KCk7SzF0KCk7SjF0KCk7ZTJ0KCk7dDJ0KCl9KTt2YXIgZXRlPW4oKCk9Pnt3cSgpfSk7dmFyIHIydD1uKCgpPT57ZXRlKCl9KTt2YXIgdHRlPXt9O3ZhciBpMnQ9bigoKT0+e3IydCgpO2V0ZSgpfSk7dmFyIGF0ZT17fTt2YXIgbzJ0PW4oKCk9Pnt9KTt2YXIgczJ0PW4oKCk9Pnt9KTt2YXIgbjJ0PW4oKCk9Pnt9KTt2YXIgbDJ0PW4oKCk9Pnt9KTt2YXIgcnRlPXt9O3ZhciBjMnQ9bigoKT0+e3MydCgpO24ydCgpO2wydCgpfSk7dmFyIGQydD1uKCgpPT57fSk7dmFyIGl0ZT17fTtldChpdGUse2J1c2luZXNzOigpPT5rcSxjb2RlOigpPT5HZWUsY29udGFpbmVyOigpPT5ZZWUsY29udGVudDooKT0+WGVlLGRhdGFiYXNlOigpPT5VZWUsZmluYW5jZTooKT0+cWVlLGdlbmVyYWw6KCk9PlFlZSxuZXR3b3JrOigpPT5TcSxzYWFzOigpPT50dGUsc3RvcmFnZTooKT0+YXRlLHdlYnNpdGU6KCk9PnJ0ZX0pO3ZhciBxcj1uKCgpPT57V2VlKCk7STF0KCk7QjF0KCk7amVlKCk7enEoKTtxMXQoKTtqMXQoKTthMnQoKTtpMnQoKTtvMnQoKTtjMnQoKTtkMnQoKX0pO3ZhciBMaT1uKCgpPT57eDF0KCk7UmVlKCk7cXIoKX0pO3ZhciBDcT1uKCgpPT57TGkoKX0pO3ZhciBYbyxEZD1uKCgpPT57TGkoKTtYbz1jbGFzc3thcHBlbmRUb0RvbSgpeyF0aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudCYmIXRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlJiZkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZil9cmVtb3ZlRnJvbURvbSgpe3RoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50P3RoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudFJlZik6dGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUmJnRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudFJlZil9fX0pO3ZhciBMbixMcT1uKCgpPT57TGkoKTtDcSgpO0RkKCk7TG49Y2xhc3MgdCBleHRlbmRzIFhve3N0YXRpYyBjcmVhdGVDb21wYW55SnNvbkxkKGUpe2xldCBhPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IkNvcnBvcmF0aW9uIixuYW1lOmUubmFtZSxhbHRlcm5hdGVOYW1lOmUubmFtZS5yZXBsYWNlKCIgR21iSCIsIiIpLHVybDplLmNvbnRhY3Qud2Vic2l0ZSxsb2dvOmUuY29udGFjdC5sb2dvVXJsLGNvbnRhY3RQb2ludDp7IkB0eXBlIjoiQ29udGFjdFBvaW50Iix0ZWxlcGhvbmU6ZS5jb250YWN0LnBob25lLGNvbnRhY3RUeXBlOiJjdXN0b21lciBzZXJ2aWNlIixhcmVhU2VydmVkOiJERSIsYXZhaWxhYmxlTGFuZ3VhZ2U6WyJlbiIsIkdlcm1hbiJdfSxzYW1lQXM6W119O3JldHVybiBlLmNvbnRhY3QuZmFjZWJvb2tVcmwmJmEuc2FtZUFzLnB1c2goZS5jb250YWN0LmZhY2Vib29rVXJsKSxlLmNvbnRhY3QudHdpdHRlclVybCYmYS5zYW1lQXMucHVzaChlLmNvbnRhY3QudHdpdHRlclVybCksbmV3IHQoYSl9c3RhdGljIGNyZWF0ZU5ld3NBcnRpY2xlSnNvbkxkKGUpe2xldCBhPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6Ik5ld3NBcnRpY2xlIixtYWluRW50aXR5T2ZQYWdlOnsiQHR5cGUiOiJXZWJQYWdlIiwiQGlkIjp3aW5kb3cubG9jYXRpb24uaHJlZn0saGVhZGxpbmU6IkFydGljbGUgaGVhZGxpbmUiLGltYWdlOltlLmZlYXR1cmVkSW1hZ2VVcmxdLGRhdGVQdWJsaXNoZWQ6bmV3IERhdGUoZS50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksZGF0ZU1vZGlmaWVkOm5ldyBEYXRlKGUudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGF1dGhvcjp7IkB0eXBlIjoiUGVyc29uIixuYW1lOmAke2UuYXV0aG9yLmZpcnN0TmFtZX0gJHtlLmF1dGhvci5zdXJOYW1lfWB9LHB1Ymxpc2hlcjp7IkB0eXBlIjoiT3JnYW5pemF0aW9uIixuYW1lOmUuYXV0aG9yLnN1ck5hbWUsbG9nbzp7IkB0eXBlIjoiSW1hZ2VPYmplY3QiLHVybDplLmF1dGhvci5zdXJOYW1lfX0sZGVzY3JpcHRpb246ZS5hdXRob3IuZmlyc3ROYW1lfTtyZXR1cm4gbmV3IHQoYSl9c3RhdGljIGNyZWF0ZVByb2R1Y3RKc29uTGQoZSxhKXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJTb2Z0d2FyZUFwcGxpY2F0aW9uIixuYW1lOmUubmFtZSxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLG9wZXJhdGluZ1N5c3RlbTplLm9zLGFwcGxpY2F0aW9uQ2F0ZWdvcnk6ZS5jYXRlZ29yeSxvZmZlcnM6eyJAdHlwZSI6Ik9mZmVyIixuYW1lOiJVc2VyLWJhc2VkIFBsYW4iLHByaWNlU3BlY2lmaWNhdGlvbjp7IkB0eXBlIjoiUHJvcGVydHlWYWx1ZVNwZWNpZmljYXRpb24iLHZhbHVlTmFtZToiTnVtYmVyIG9mIFVzZXJzIix2YWx1ZVJlcXVpcmVkOiEwLHByaWNlOiI0Ljk5IixwcmljZUN1cnJlbmN5OiJFVVIifX0scHVibGlzaGVyOnRoaXMuY3JlYXRlQ29tcGFueUpzb25MZChhKS5lbGVtZW50UmVmLnRleHRDb250ZW50LHNjcmVlbnNob3Q6Imh0dHBzOi8vd3d3LnNvY2lhbC5pby9zY3JlZW5zaG90LnBuZyIsdXJsOiJodHRwczovL3d3dy5zb2NpYWwuaW8vIn07cmV0dXJuIG5ldyB0KHIpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKCk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS50eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIixhLnRleHQ9SlNPTi5zdHJpbmdpZnkoZSksdGhpcy5lbGVtZW50UmVmPWF9fX0pO3ZhciBPMixUcT1uKCgpPT57TGkoKTtEZCgpO08yPWNsYXNzIHQgZXh0ZW5kcyBYb3tzdGF0aWMgY3JlYXRlTmV3c0FydGljbGVPZ1RhZ3MoZSl7bGV0IGE9W107cmV0dXJuIGEucHVzaChuZXcgdCgib2c6dXJsIixlLnVybCkpLGEucHVzaChuZXcgdCgib2c6dGl0bGUiLGUudGl0bGUpKSxhLnB1c2gobmV3IHQoIm9nOmRlc2NyaXB0aW9uIixlLmNvbnRlbnQpKSxhLnB1c2gobmV3IHQoIm9nOmltYWdlIixlLmZlYXR1cmVkSW1hZ2VVcmwpKSxhfXN0YXRpYyBjcmVhdGVQcm9kdWN0T2dUYWdzKGUpe2xldCBhPVtdO3JldHVybiBhLnB1c2gobmV3IHQoIm9nOnVybCIsZ2xvYmFsVGhpcy5sb2NhdGlvbi5ocmVmKSksYS5wdXNoKG5ldyB0KCJvZzp0aXRsZSIsYCR7ZS5uYW1lfSAtICR7ZS5zbG9nYW59YCkpLGEucHVzaChuZXcgdCgib2c6c2l0ZV9uYW1lIixlLm5hbWUpKSxhLnB1c2gobmV3IHQoIm9nOmRlc2NyaXB0aW9uIixlLmRlc2NyaXB0aW9uKSksYS5wdXNoKG5ldyB0KCJvZzppbWFnZSIsZS5sb2dvTGluaykpLGF9Y29uc3RydWN0b3IoZSxhKXtzdXBlcigpO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKTtyLnNldEF0dHJpYnV0ZSgicHJvcGVydHkiLGUpLHIuY29udGVudD1hLHRoaXMuZWxlbWVudFJlZj1yfX19KTt2YXIgQjYsb3RlPW4oKCk9PntEZCgpO0xxKCk7VHEoKTtzdGUoKTtMaSgpO0I2PWNsYXNze3NldCB0aXRsZShlKXt0aGlzLnRpdGxlU3RvcmU9ZSx0aGlzLnN0YXRlPT09ImVuYWJsZWQiJiYoZG9jdW1lbnQudGl0bGU9dGhpcy50aXRsZVN0b3JlKX1nZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy50aXRsZVN0b3JlfWNvbnN0cnVjdG9yKGUsYSl7dGhpcy50YWdzPVtdLHRoaXMuc3RhdGU9ImRpc2FibGVkIix0aGlzLnRhZ01hbmFnZXJSZWY9ZX1hZGRUYWcoZSl7aWYoZSBpbnN0YW5jZW9mIEFycmF5KWZvcihsZXQgYSBvZiBlKXRoaXMuYWRkVGFnKGEpO2Vsc2UgdGhpcy50YWdzLnB1c2goZSksdGhpcy5zdGF0ZT09PSJlbmFibGVkIiYmZS5hcHBlbmRUb0RvbSgpfWFzeW5jIGFkZENvbXBhbnlJbmZvKGUpe3RoaXMuYWRkVGFnKExuLmNyZWF0ZUNvbXBhbnlKc29uTGQoZSkpLHRoaXMuYWRkVGFnKG5ldyBPMigib2c6dHlwZSIsImJ1c2luZXNzLmJ1c2luZXNzIikpLHRoaXMuYWRkVGFnKG5ldyBPMigib2c6dGl0bGUiLGUubmFtZSkpLHRoaXMuYWRkVGFnKG5ldyBPMigib2c6dXJsIixlLmNvbnRhY3Qud2Vic2l0ZSkpLHRoaXMuYWRkVGFnKG5ldyBPMigib2c6aW1hZ2UiLGUuY29udGFjdC5sb2dvVXJsKSksdGhpcy5hZGRUYWcobmV3IE8yKCJidXNpbmVzczpjb250YWN0X2RhdGE6c3RyZWV0X2FkZHJlc3MiLGAke2UuY29udGFjdC5hZGRyZXNzLnN0cmVldE5hbWV9ICR7ZS5jb250YWN0LmFkZHJlc3MuaG91c2VOdW1iZXJ9YCkpLHRoaXMuYWRkVGFnKG5ldyBPMigiYnVzaW5lc3M6Y29udGFjdF9kYXRhOmxvY2FsaXR5IixlLmNvbnRhY3QuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IE8yKCJidXNpbmVzczpjb250YWN0X2RhdGE6cmVnaW9uIixlLmNvbnRhY3QuYWRkcmVzcy5jaXR5KSksdGhpcy5hZGRUYWcobmV3IE8yKCJidXNpbmVzczpjb250YWN0X2RhdGE6cG9zdGFsX2NvZGUiLGUuY29udGFjdC5hZGRyZXNzLnBvc3RhbENvZGUpKSx0aGlzLmFkZFRhZyhuZXcgTzIoImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpjb3VudHJ5X25hbWUiLGUuY29udGFjdC5hZGRyZXNzLmNvdW50cnkpKX1hZGROZXdzQXJ0aWNsZUluZm8oZSl7dGhpcy5hZGRUYWcoTG4uY3JlYXRlTmV3c0FydGljbGVKc29uTGQoZSkpLHRoaXMuYWRkVGFnKE8yLmNyZWF0ZU5ld3NBcnRpY2xlT2dUYWdzKGUpKX1hZGRQcm9kdWN0SW5mbyhlLGEpe3RoaXMuYWRkVGFnKExuLmNyZWF0ZVByb2R1Y3RKc29uTGQoZSxhKSksdGhpcy5hZGRUYWcoTzIuY3JlYXRlUHJvZHVjdE9nVGFncyhlKSl9YXN5bmMgZW5hYmxlKCl7dGhpcy50aXRsZSYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGUpO2ZvcihsZXQgZSBvZiB0aGlzLnRhZ3MpZS5hcHBlbmRUb0RvbSgpO3RoaXMuc3RhdGU9ImVuYWJsZWQifWFzeW5jIGRpc2FibGUoKXtmb3IobGV0IGUgb2YgdGhpcy50YWdzKWUucmVtb3ZlRnJvbURvbSgpO3RoaXMuc3RhdGU9ImRpc2FibGVkIn19fSk7dmFyIEFhLG50ZT1uKCgpPT57RGQoKTtBYT1jbGFzcyBleHRlbmRzIFhve2NvbnN0cnVjdG9yKGUsYSl7c3VwZXIoKTtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7ci5uYW1lPWUsci5jb250ZW50PWEsdGhpcy5lbGVtZW50UmVmPXJ9fX0pO3ZhciBfcSxzdGU9bigoKT0+e290ZSgpO0xpKCk7Q3EoKTtudGUoKTtMcSgpO1RxKCk7X3E9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmdsb2JhbExldmVsPW5ldyBCNih0aGlzLCJnbG9iYWwiKSx0aGlzLmJhc2VMZXZlbD1uZXcgQjYodGhpcywiYmFzZSIpfWFzeW5jIHNldHVwKGUpe3N3aXRjaCh0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgQWEoImdvb2dsZSIsIm5vdHJhbnNsYXRlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBBYSgicmV2aXNpdC1hZnRlciIsIjEgZGF5cyIpKSxlLnR3aXR0ZXJIYW5kbGUmJih0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgQWEoInR3aXR0ZXI6Y2FyZCIsInN1bW1hcnlfbGFyZ2VfaW1hZ2UiKSksdGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IEFhKCJ0d2l0dGVyOnNpdGUiLGUudHdpdHRlckhhbmRsZSkpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBBYSgidHdpdHRlcjpjcmVhdG9yIixlLnR3aXR0ZXJIYW5kbGUpKSksdGhpcy5iYXNlTGV2ZWwudGl0bGU9ZS50aXRsZSxlLmRlc2NyaXB0aW9uJiZ0aGlzLmJhc2VMZXZlbC5hZGRUYWcobmV3IEFhKCJkZXNjcmlwdGlvbiIsZS5kZXNjcmlwdGlvbikpLGUuY2Fub25pY2FsRG9tYWluJiZ0aGlzLmJhc2VMZXZlbC5hZGRUYWcobmV3IEFhKCJjYW5vbmljYWwiLGUuY2Fub25pY2FsRG9tYWluKSksITApe2Nhc2UoZS5sZENvbXBhbnkmJiFlLmxkUHJvZHVjdCk6dGhpcy5iYXNlTGV2ZWwuYWRkQ29tcGFueUluZm8oZS5sZENvbXBhbnkpO2JyZWFrO2Nhc2UhIWUubGRQcm9kdWN0OnRoaXMuYmFzZUxldmVsLmFkZFByb2R1Y3RJbmZvKGUubGRQcm9kdWN0LGUubGRDb21wYW55KTticmVha31hd2FpdCB0aGlzLmdsb2JhbExldmVsLmVuYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKX1hc3luYyBzZXRTdWJQYWdlTGV2ZWwoZSl7bGV0IGE9bmV3IEI2KHRoaXMsInN1YnBhZ2UiKTtyZXR1cm4gYS50aXRsZT1lLnRpdGxlLGUuZGVzY3JpcHRpb24mJmEuYWRkVGFnKG5ldyBBYSgiZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmRpc2FibGUoKSx0aGlzLmFjdGl2ZUxldmVsPWEsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSxhfWFzeW5jIHJldmVydFRvQmFzZUxldmVsKCl7dGhpcy5hY3RpdmVMZXZlbCE9PXRoaXMuYmFzZUxldmVsJiYoYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD10aGlzLmJhc2VMZXZlbCxhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmVuYWJsZSgpKX19fSk7dmFyIEVkLGYydD1uKCgpPT57TGkoKTtDcSgpO3N0ZSgpO290ZSgpO0VkPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMudGFnTWFuYWdlcj1uZXcgX3EsdGhpcy5yZWFkeURlZmVycmVkPUNuLmRlZmVyKCksdGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQ9Q24uZGVmZXIoKSx0aGlzLnJlYWR5UHJvbWlzZT10aGlzLnJlYWR5RGVmZXJyZWQucHJvbWlzZSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JQcm9taXNlPXRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnByb21pc2UsdGhpcy5vcHRpb25zPWUsdGhpcy5zZXR1cCgpLnRoZW4oKCk9Pnt0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpLHRoaXMub3B0aW9ucy5zbWFydHNzcldhaXRGb3JSZWFkeVNpZ25hbHx8dGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucmVzb2x2ZSgpfSl9YXN5bmMgc2V0dXAoZSl7ZSYmKHRoaXMub3B0aW9ucz1lKSxhd2FpdCB0aGlzLnRhZ01hbmFnZXIuc2V0dXAodGhpcy5vcHRpb25zLm1ldGFPYmplY3QpfXJldmVydFRvQmFzZUxldmVsKCl7dGhpcy50YWdNYW5hZ2VyLnJldmVydFRvQmFzZUxldmVsKCl9YXN5bmMgc2V0U3ViTGV2ZWwoZSl7cmV0dXJuIGF3YWl0IHRoaXMudGFnTWFuYWdlci5zZXRTdWJQYWdlTGV2ZWwoZSl9Zmxhc2hUaXRsZShlKXt9aW5mb3JtUmVhZHlGb3JTbWFydHNzcigpe3RoaXMub3B0aW9ucy5zbWFydHNzcldhaXRGb3JSZWFkeVNpZ25hbHx8Y29uc29sZS5lcnJvcigiWW91IGhhdmUgbm90IGluZGljYXRlZCB0aGF0IHlvdSBpbmZvcm0gc21hcnRzc3IgYnkgYSBkZWRpY2F0ZWQgc2lnbmFsISBQbGVhc2UgY29uc2lkZXIgZG9pbmcgc28hIiksdGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucmVzb2x2ZSgpfX19KTt2YXIgbHRlLHUydD1uKCgpPT57TGkoKTtsdGU9Y2xhc3N7fX0pO3ZhciBjdGU9e307ZXQoY3RlLHtKc29uTGRUYWc6KCk9PkxuLE1ldGFUYWc6KCk9PkFhLE9wZW5ncmFwaFRhZzooKT0+TzIsVGl0bGU6KCk9Pmx0ZSxXZWJTZXR1cDooKT0+RWR9KTt2YXIgQXE9bigoKT0+e2YydCgpO250ZSgpO1RxKCk7THEoKTt1MnQoKX0pO3ZhciBwMnQsJHE9bigoKT0+e2lpKCk7UlkoKTtwMigpO1ZhKCk7bFgoKTtwMnQ9TjIoZFgoKSwxKX0pO3ZhciBSNixkdGU9bigoKT0+eyRxKCk7UjY9Y2xhc3MgdHtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwT2JqZWN0PXt9fWlzVW5pcXVlS2V5KGUpe3JldHVybiF0aGlzLm1hcE9iamVjdFtlXX1hZGRUb01hcChlLGEscil7cmV0dXJuIHRoaXMuaXNVbmlxdWVLZXkoZSl8fHImJnIuZm9yY2U/KHRoaXMubWFwT2JqZWN0W2VdPWEsITApOiExfWdldEJ5S2V5KGUpe3JldHVybiB0aGlzLm1hcE9iamVjdFtlXX1yZW1vdmVGcm9tTWFwKGUpe2xldCBhPXRoaXMuZ2V0QnlLZXkoZSk7cmV0dXJuIGRlbGV0ZSB0aGlzLm1hcE9iamVjdFtlXSxhfWdldEtleXMoKXtsZXQgZT1bXTtmb3IobGV0IGEgaW4gdGhpcy5tYXBPYmplY3QpdGhpcy5tYXBPYmplY3RbYV0mJmUucHVzaChhKTtyZXR1cm4gZX1jbGVhbigpe3RoaXMubWFwT2JqZWN0PXt9fWNvbmNhdChlKXtsZXQgYT1uZXcgdDtmb3IobGV0IHIgb2YgdGhpcy5nZXRLZXlzKCkpYS5hZGRUb01hcChyLHRoaXMuZ2V0QnlLZXkocikpO2ZvcihsZXQgciBvZiBlLmdldEtleXMoKSlhLmFkZFRvTWFwKHIsZS5nZXRCeUtleShyKSx7Zm9yY2U6ITB9KTtyZXR1cm4gYX1hZGRBbGxGcm9tT3RoZXIoZSl7Zm9yKGxldCBhIG9mIGUuZ2V0S2V5cygpKXRoaXMuYWRkVG9NYXAoYSxlLmdldEJ5S2V5KGEpLHtmb3JjZTohMH0pfWFzeW5jIGZpbmQoZSl7Zm9yKGxldCBhIG9mIHRoaXMuZ2V0S2V5cygpKXtsZXQgcj10aGlzLmdldEJ5S2V5KGEpO2lmKGF3YWl0IGUocikpcmV0dXJuIHJ9fX19KTt2YXIgdDIxLERxLG0ydD1uKCgpPT57JHEoKTtkdGUoKTt0MjE9KHQ9InVuaSIpPT5gJHt0fXh4eHh4eHh4eHh4YC5yZXBsYWNlKC9beHldL2csZT0+e2xldCBhPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4oZT09PSJ4Ij9hOmEmM3w4KS50b1N0cmluZygxNil9KSxEcT1jbGFzcyB0e2NvbnN0cnVjdG9yKCl7dGhpcy5mYXN0TWFwPW5ldyBSNix0aGlzLmV2ZW50U3ViamVjdD1uZXcgQ3Qucnhqcy5TdWJqZWN0fWFkZE1hcHBlZFVuaXF1ZShlLGEpe3RoaXMuZmFzdE1hcC5hZGRUb01hcChlLGEpfWdldE1hcHBlZFVuaXF1ZShlKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmdldEJ5S2V5KGUpfXJlbW92ZU1hcHBlZFVuaXF1ZShlKXtsZXQgYT10aGlzLmdldE1hcHBlZFVuaXF1ZShlKX1hZGQoZSl7Zm9yKGxldCByIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpaWYodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpPT09ZSlyZXR1cm4gcjtsZXQgYT10MjEoImtleSIpO3JldHVybiB0aGlzLmFkZE1hcHBlZFVuaXF1ZShhLGUpLHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoiYWRkIixwYXlsb2FkOmV9KSxhfWFkZEFycmF5KGUpe2ZvcihsZXQgYSBvZiBlKXRoaXMuYWRkKGEpfWNoZWNrRm9yT2JqZWN0KGUpe3JldHVybiEhdGhpcy5nZXRLZXlGb3JPYmplY3QoZSl9Z2V0S2V5Rm9yT2JqZWN0KGUpe2xldCBhPW51bGw7Zm9yKGxldCByIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpaWYoIWEmJnRoaXMuZmFzdE1hcC5nZXRCeUtleShyKT09PWUpYT1yO2Vsc2UgY29udGludWU7cmV0dXJuIGF9YXN5bmMgZmluZChlKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmZpbmQoZSl9ZmluZFN5bmMoZSl7Zm9yKGxldCBhIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpaWYoZSh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoYSkpKXJldHVybiB0aGlzLmdldE1hcHBlZFVuaXF1ZShhKX1hc3luYyBmaW5kT25lQW5kUmVtb3ZlKGUpe2xldCBhPWF3YWl0IHRoaXMuZmluZChlKTtyZXR1cm4gYSYmdGhpcy5yZW1vdmUoYSksYX1maW5kT25lQW5kUmVtb3ZlU3luYyhlKXtsZXQgYT10aGlzLmZpbmRTeW5jKGUpO3JldHVybiBhJiZ0aGlzLnJlbW92ZShhKSxhfWFzeW5jIGZvckVhY2goZSl7Zm9yKGxldCBhIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpYXdhaXQgZSh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoYSkpfWdldE9uZUFuZFJlbW92ZSgpe2xldCBlPXRoaXMuZmFzdE1hcC5nZXRLZXlzKCk7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBudWxsO3tsZXQgYT1lWzBdLHI9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAoYSk7cmV0dXJuIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOnJ9KSxyfX1nZXRBcnJheSgpe2xldCBlPVtdO2ZvcihsZXQgYSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWUucHVzaCh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoYSkpO3JldHVybiBlfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5mYXN0TWFwLmdldEtleXMoKS5sZW5ndGg9PT0wfXJlbW92ZShlKXtpZih0aGlzLmNoZWNrRm9yT2JqZWN0KGUpKXtsZXQgYT10aGlzLmdldEtleUZvck9iamVjdChlKSxyPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKGEpO3JldHVybiB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDpyfSkscn1yZXR1cm4gbnVsbH13aXBlKCl7Zm9yKGxldCBlIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpdGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAoZSl9Y29uY2F0KGUpe2xldCBhPW5ldyB0O3JldHVybiBhLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHRoaXMuZmFzdE1hcCksYS5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcihlLmZhc3RNYXApLGF9YWRkQWxsRnJvbU90aGVyKGUpe3RoaXMuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIoZS5mYXN0TWFwKX19fSk7dmFyIEVxLGcydD1uKCgpPT57JHEoKTtFcT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PVtdfWFkZFN0cmluZyhlKXt0aGlzLl9zdHJpbmdBcnJheS5wdXNoKGUpLHRoaXMubm90aWZ5VHJpZ2dlcigpfWFkZFN0cmluZ0FycmF5KGUpe2ZvcihsZXQgYSBvZiBlKXRoaXMuYWRkU3RyaW5nKGEpfXJlbW92ZVN0cmluZyhlKXtmb3IobGV0IGEgaW4gdGhpcy5fc3RyaW5nQXJyYXkpdGhpcy5fc3RyaW5nQXJyYXlbYV09PT1lJiZ0aGlzLl9zdHJpbmdBcnJheS5zcGxpY2UocGFyc2VJbnQoYSksMSk7dGhpcy5ub3RpZnlUcmlnZ2VyKCl9d2lwZSgpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMubm90aWZ5VHJpZ2dlcigpfWNoZWNrU3RyaW5nKGUpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5pbmRleE9mKGUpIT09LTF9Y2hlY2tNaW5pbWF0Y2goZSl7bGV0IGE9bmV3IG9pLlNtYXJ0TWF0Y2goZSkscj0hMTtmb3IobGV0IGkgb2YgdGhpcy5fc3RyaW5nQXJyYXkpYS5tYXRjaChpKSYmKHI9ITApO3JldHVybiByfWNoZWNrSXNFbXB0eSgpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5sZW5ndGg9PT0wfWdldFN0cmluZ0FycmF5KCl7bGV0IGU9W107Zm9yKGxldCBhIG9mIHRoaXMuX3N0cmluZ0FycmF5KWUucHVzaChhKTtyZXR1cm4gZX1yZWdpc3RlclVudGlsVHJ1ZShlLGEpe2xldCByPVZlLmRlZmVyKCk7cmV0dXJuIHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LnB1c2goKCk9PntsZXQgaT1lKHRoaXMuZ2V0U3RyaW5nQXJyYXkoKSk7cmV0dXJuIGk9PT0hMCYmKGEmJmEoKSxyLnJlc29sdmUoKSksaX0pLHRoaXMubm90aWZ5VHJpZ2dlcigpLHIucHJvbWlzZX1ub3RpZnlUcmlnZ2VyKCl7bGV0IGU9dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkuZmlsdGVyKGE9PiFhKCkpO3RoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PWV9fX0pO2Z1bmN0aW9uIHgydCh0LGUsYSl7cmV0dXJuIE1hdGgubWF4KHQsTWF0aC5taW4oZSxhKSl9ZnVuY3Rpb24gcjIxKHQsZSxhKXtyZXR1cm4oMS1hKSp0K2EqZX1mdW5jdGlvbiBpMjEodCxlLGEscil7cmV0dXJuIHIyMSh0LGUsMS1NYXRoLmV4cCgtYSpyKSl9ZnVuY3Rpb24gbzIxKHQsZSl7cmV0dXJuKHQlZStlKSVlfWZ1bmN0aW9uIG4yMSh0LGUpe2xldCBhO3JldHVybiBmdW5jdGlvbiguLi5yKXtsZXQgaT10aGlzO2NsZWFyVGltZW91dChhKSxhPXNldFRpbWVvdXQoKCk9PnthPXZvaWQgMCx0LmFwcGx5KGkscil9LGUpfX12YXIgYTIxLHMyMSxsMjEsYjJ0LHYydCxRbyxjMjEseTJ0LE5kLHcydD1uKCgpPT57YTIxPSIxLjMuMTciO3MyMT1jbGFzc3tpc1J1bm5pbmc9ITE7dmFsdWU9MDtmcm9tPTA7dG89MDtjdXJyZW50VGltZT0wO2xlcnA7ZHVyYXRpb247ZWFzaW5nO29uVXBkYXRlO2FkdmFuY2UodCl7aWYoIXRoaXMuaXNSdW5uaW5nKXJldHVybjtsZXQgZT0hMTtpZih0aGlzLmR1cmF0aW9uJiZ0aGlzLmVhc2luZyl7dGhpcy5jdXJyZW50VGltZSs9dDtsZXQgYT14MnQoMCx0aGlzLmN1cnJlbnRUaW1lL3RoaXMuZHVyYXRpb24sMSk7ZT1hPj0xO2xldCByPWU/MTp0aGlzLmVhc2luZyhhKTt0aGlzLnZhbHVlPXRoaXMuZnJvbSsodGhpcy50by10aGlzLmZyb20pKnJ9ZWxzZSB0aGlzLmxlcnA/KHRoaXMudmFsdWU9aTIxKHRoaXMudmFsdWUsdGhpcy50byx0aGlzLmxlcnAqNjAsdCksTWF0aC5yb3VuZCh0aGlzLnZhbHVlKT09PXRoaXMudG8mJih0aGlzLnZhbHVlPXRoaXMudG8sZT0hMCkpOih0aGlzLnZhbHVlPXRoaXMudG8sZT0hMCk7ZSYmdGhpcy5zdG9wKCksdGhpcy5vblVwZGF0ZT8uKHRoaXMudmFsdWUsZSl9c3RvcCgpe3RoaXMuaXNSdW5uaW5nPSExfWZyb21Ubyh0LGUse2xlcnA6YSxkdXJhdGlvbjpyLGVhc2luZzppLG9uU3RhcnQ6byxvblVwZGF0ZTpzfSl7dGhpcy5mcm9tPXRoaXMudmFsdWU9dCx0aGlzLnRvPWUsdGhpcy5sZXJwPWEsdGhpcy5kdXJhdGlvbj1yLHRoaXMuZWFzaW5nPWksdGhpcy5jdXJyZW50VGltZT0wLHRoaXMuaXNSdW5uaW5nPSEwLG8/LigpLHRoaXMub25VcGRhdGU9c319O2wyMT1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUse2F1dG9SZXNpemU6YT0hMCxkZWJvdW5jZTpyPTI1MH09e30pe3RoaXMud3JhcHBlcj10LHRoaXMuY29udGVudD1lLGEmJih0aGlzLmRlYm91bmNlZFJlc2l6ZT1uMjEodGhpcy5yZXNpemUsciksdGhpcy53cmFwcGVyIGluc3RhbmNlb2YgV2luZG93P3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuZGVib3VuY2VkUmVzaXplLCExKToodGhpcy53cmFwcGVyUmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuZGVib3VuY2VkUmVzaXplKSx0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMud3JhcHBlcikpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcih0aGlzLmRlYm91bmNlZFJlc2l6ZSksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRlbnQpKSx0aGlzLnJlc2l6ZSgpfXdpZHRoPTA7aGVpZ2h0PTA7c2Nyb2xsSGVpZ2h0PTA7c2Nyb2xsV2lkdGg9MDtkZWJvdW5jZWRSZXNpemU7d3JhcHBlclJlc2l6ZU9ic2VydmVyO2NvbnRlbnRSZXNpemVPYnNlcnZlcjtkZXN0cm95KCl7dGhpcy53cmFwcGVyUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMud3JhcHBlcj09PXdpbmRvdyYmdGhpcy5kZWJvdW5jZWRSZXNpemUmJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuZGVib3VuY2VkUmVzaXplLCExKX1yZXNpemU9KCk9Pnt0aGlzLm9uV3JhcHBlclJlc2l6ZSgpLHRoaXMub25Db250ZW50UmVzaXplKCl9O29uV3JhcHBlclJlc2l6ZT0oKT0+e3RoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz8odGhpcy53aWR0aD13aW5kb3cuaW5uZXJXaWR0aCx0aGlzLmhlaWdodD13aW5kb3cuaW5uZXJIZWlnaHQpOih0aGlzLndpZHRoPXRoaXMud3JhcHBlci5jbGllbnRXaWR0aCx0aGlzLmhlaWdodD10aGlzLndyYXBwZXIuY2xpZW50SGVpZ2h0KX07b25Db250ZW50UmVzaXplPSgpPT57dGhpcy53cmFwcGVyIGluc3RhbmNlb2YgV2luZG93Pyh0aGlzLnNjcm9sbEhlaWdodD10aGlzLmNvbnRlbnQuc2Nyb2xsSGVpZ2h0LHRoaXMuc2Nyb2xsV2lkdGg9dGhpcy5jb250ZW50LnNjcm9sbFdpZHRoKToodGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy53cmFwcGVyLnNjcm9sbEhlaWdodCx0aGlzLnNjcm9sbFdpZHRoPXRoaXMud3JhcHBlci5zY3JvbGxXaWR0aCl9O2dldCBsaW1pdCgpe3JldHVybnt4OnRoaXMuc2Nyb2xsV2lkdGgtdGhpcy53aWR0aCx5OnRoaXMuc2Nyb2xsSGVpZ2h0LXRoaXMuaGVpZ2h0fX19LGIydD1jbGFzc3tldmVudHM9e307ZW1pdCh0LC4uLmUpe2xldCBhPXRoaXMuZXZlbnRzW3RdfHxbXTtmb3IobGV0IHI9MCxpPWEubGVuZ3RoO3I8aTtyKyspYVtyXT8uKC4uLmUpfW9uKHQsZSl7cmV0dXJuIHRoaXMuZXZlbnRzW3RdPy5wdXNoKGUpfHwodGhpcy5ldmVudHNbdF09W2VdKSwoKT0+e3RoaXMuZXZlbnRzW3RdPXRoaXMuZXZlbnRzW3RdPy5maWx0ZXIoYT0+ZSE9PWEpfX1vZmYodCxlKXt0aGlzLmV2ZW50c1t0XT10aGlzLmV2ZW50c1t0XT8uZmlsdGVyKGE9PmUhPT1hKX1kZXN0cm95KCl7dGhpcy5ldmVudHM9e319fSx2MnQ9MTAwLzYsUW89e3Bhc3NpdmU6ITF9LGMyMT1jbGFzc3tjb25zdHJ1Y3Rvcih0LGU9e3doZWVsTXVsdGlwbGllcjoxLHRvdWNoTXVsdGlwbGllcjoxfSl7dGhpcy5lbGVtZW50PXQsdGhpcy5vcHRpb25zPWUsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5vbldpbmRvd1Jlc2l6ZSwhMSksdGhpcy5vbldpbmRvd1Jlc2l6ZSgpLHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsdGhpcy5vbldoZWVsLFFvKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5vblRvdWNoU3RhcnQsUW8pLHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMub25Ub3VjaE1vdmUsUW8pLHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5vblRvdWNoRW5kLFFvKX10b3VjaFN0YXJ0PXt4OjAseTowfTtsYXN0RGVsdGE9e3g6MCx5OjB9O3dpbmRvdz17d2lkdGg6MCxoZWlnaHQ6MH07ZW1pdHRlcj1uZXcgYjJ0O29uKHQsZSl7cmV0dXJuIHRoaXMuZW1pdHRlci5vbih0LGUpfWRlc3Ryb3koKXt0aGlzLmVtaXR0ZXIuZGVzdHJveSgpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMub25XaW5kb3dSZXNpemUsITEpLHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsdGhpcy5vbldoZWVsLFFvKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5vblRvdWNoU3RhcnQsUW8pLHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMub25Ub3VjaE1vdmUsUW8pLHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5vblRvdWNoRW5kLFFvKX1vblRvdWNoU3RhcnQ9dD0+e2xldHtjbGllbnRYOmUsY2xpZW50WTphfT10LnRhcmdldFRvdWNoZXM/dC50YXJnZXRUb3VjaGVzWzBdOnQ7dGhpcy50b3VjaFN0YXJ0Lng9ZSx0aGlzLnRvdWNoU3RhcnQueT1hLHRoaXMubGFzdERlbHRhPXt4OjAseTowfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOjAsZGVsdGFZOjAsZXZlbnQ6dH0pfTtvblRvdWNoTW92ZT10PT57bGV0e2NsaWVudFg6ZSxjbGllbnRZOmF9PXQudGFyZ2V0VG91Y2hlcz90LnRhcmdldFRvdWNoZXNbMF06dCxyPS0oZS10aGlzLnRvdWNoU3RhcnQueCkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcixpPS0oYS10aGlzLnRvdWNoU3RhcnQueSkqdGhpcy5vcHRpb25zLnRvdWNoTXVsdGlwbGllcjt0aGlzLnRvdWNoU3RhcnQueD1lLHRoaXMudG91Y2hTdGFydC55PWEsdGhpcy5sYXN0RGVsdGE9e3g6cix5Oml9LHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6cixkZWx0YVk6aSxldmVudDp0fSl9O29uVG91Y2hFbmQ9dD0+e3RoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6dGhpcy5sYXN0RGVsdGEueCxkZWx0YVk6dGhpcy5sYXN0RGVsdGEueSxldmVudDp0fSl9O29uV2hlZWw9dD0+e2xldHtkZWx0YVg6ZSxkZWx0YVk6YSxkZWx0YU1vZGU6cn09dCxpPXI9PT0xP3YydDpyPT09Mj90aGlzLndpbmRvdy53aWR0aDoxLG89cj09PTE/djJ0OnI9PT0yP3RoaXMud2luZG93LmhlaWdodDoxO2UqPWksYSo9byxlKj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLGEqPXRoaXMub3B0aW9ucy53aGVlbE11bHRpcGxpZXIsdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDplLGRlbHRhWTphLGV2ZW50OnR9KX07b25XaW5kb3dSZXNpemU9KCk9Pnt0aGlzLndpbmRvdz17d2lkdGg6d2luZG93LmlubmVyV2lkdGgsaGVpZ2h0OndpbmRvdy5pbm5lckhlaWdodH19fSx5MnQ9dD0+TWF0aC5taW4oMSwxLjAwMS1NYXRoLnBvdygyLC0xMCp0KSksTmQ9Y2xhc3N7X2lzU2Nyb2xsaW5nPSExO19pc1N0b3BwZWQ9ITE7X2lzTG9ja2VkPSExO19wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSExO19yZXNldFZlbG9jaXR5VGltZW91dD1udWxsO19yYWZJZD1udWxsO2lzVG91Y2hpbmc7dGltZT0wO3VzZXJEYXRhPXt9O2xhc3RWZWxvY2l0eT0wO3ZlbG9jaXR5PTA7ZGlyZWN0aW9uPTA7b3B0aW9uczt0YXJnZXRTY3JvbGw7YW5pbWF0ZWRTY3JvbGw7YW5pbWF0ZT1uZXcgczIxO2VtaXR0ZXI9bmV3IGIydDtkaW1lbnNpb25zO3ZpcnR1YWxTY3JvbGw7Y29uc3RydWN0b3Ioe3dyYXBwZXI6dD13aW5kb3csY29udGVudDplPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxldmVudHNUYXJnZXQ6YT10LHNtb290aFdoZWVsOnI9ITAsc3luY1RvdWNoOmk9ITEsc3luY1RvdWNoTGVycDpvPS4wNzUsdG91Y2hJbmVydGlhRXhwb25lbnQ6cz0xLjcsZHVyYXRpb246bCxlYXNpbmc6ZixsZXJwOmM9LjEsaW5maW5pdGU6dT0hMSxvcmllbnRhdGlvbjpkPSJ2ZXJ0aWNhbCIsZ2VzdHVyZU9yaWVudGF0aW9uOmg9ZD09PSJob3Jpem9udGFsIj8iYm90aCI6InZlcnRpY2FsIix0b3VjaE11bHRpcGxpZXI6Zz0xLHdoZWVsTXVsdGlwbGllcjpiPTEsYXV0b1Jlc2l6ZTp4PSEwLHByZXZlbnQ6bSx2aXJ0dWFsU2Nyb2xsOnYsb3ZlcnNjcm9sbDp5PSEwLGF1dG9SYWY6dz0hMSxhbmNob3JzOkU9ITEsYXV0b1RvZ2dsZTpDPSExLGFsbG93TmVzdGVkU2Nyb2xsOno9ITEsX19leHBlcmltZW50YWxfX25haXZlRGltZW5zaW9uczpQPSExLG5haXZlRGltZW5zaW9uczpfPVAsc3RvcEluZXJ0aWFPbk5hdmlnYXRlOiQ9ITF9PXt9KXt3aW5kb3cubGVuaXNWZXJzaW9uPWEyMSwoIXR8fHQ9PT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpJiYodD13aW5kb3cpLHR5cGVvZiBsPT0ibnVtYmVyIiYmdHlwZW9mIGYhPSJmdW5jdGlvbiI/Zj15MnQ6dHlwZW9mIGY9PSJmdW5jdGlvbiImJnR5cGVvZiBsIT0ibnVtYmVyIiYmKGw9MSksdGhpcy5vcHRpb25zPXt3cmFwcGVyOnQsY29udGVudDplLGV2ZW50c1RhcmdldDphLHNtb290aFdoZWVsOnIsc3luY1RvdWNoOmksc3luY1RvdWNoTGVycDpvLHRvdWNoSW5lcnRpYUV4cG9uZW50OnMsZHVyYXRpb246bCxlYXNpbmc6ZixsZXJwOmMsaW5maW5pdGU6dSxnZXN0dXJlT3JpZW50YXRpb246aCxvcmllbnRhdGlvbjpkLHRvdWNoTXVsdGlwbGllcjpnLHdoZWVsTXVsdGlwbGllcjpiLGF1dG9SZXNpemU6eCxwcmV2ZW50Om0sdmlydHVhbFNjcm9sbDp2LG92ZXJzY3JvbGw6eSxhdXRvUmFmOncsYW5jaG9yczpFLGF1dG9Ub2dnbGU6QyxhbGxvd05lc3RlZFNjcm9sbDp6LG5haXZlRGltZW5zaW9uczpfLHN0b3BJbmVydGlhT25OYXZpZ2F0ZTokfSx0aGlzLmRpbWVuc2lvbnM9bmV3IGwyMSh0LGUse2F1dG9SZXNpemU6eH0pLHRoaXMudXBkYXRlQ2xhc3NOYW1lKCksdGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMub25OYXRpdmVTY3JvbGwsITEpLHRoaXMub3B0aW9ucy53cmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsdGhpcy5vblNjcm9sbEVuZCx7Y2FwdHVyZTohMH0pLCh0aGlzLm9wdGlvbnMuYW5jaG9yc3x8dGhpcy5vcHRpb25zLnN0b3BJbmVydGlhT25OYXZpZ2F0ZSkmJnRoaXMub3B0aW9ucy53cmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLm9uQ2xpY2ssITEpLHRoaXMub3B0aW9ucy53cmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLm9uUG9pbnRlckRvd24sITEpLHRoaXMudmlydHVhbFNjcm9sbD1uZXcgYzIxKGEse3RvdWNoTXVsdGlwbGllcjpnLHdoZWVsTXVsdGlwbGllcjpifSksdGhpcy52aXJ0dWFsU2Nyb2xsLm9uKCJzY3JvbGwiLHRoaXMub25WaXJ0dWFsU2Nyb2xsKSx0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSYmKHRoaXMuY2hlY2tPdmVyZmxvdygpLHRoaXMucm9vdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdGhpcy5vblRyYW5zaXRpb25FbmQse3Bhc3NpdmU6ITB9KSksdGhpcy5vcHRpb25zLmF1dG9SYWYmJih0aGlzLl9yYWZJZD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5yYWYpKX1kZXN0cm95KCl7dGhpcy5lbWl0dGVyLmRlc3Ryb3koKSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMub25OYXRpdmVTY3JvbGwsITEpLHRoaXMub3B0aW9ucy53cmFwcGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsdGhpcy5vblNjcm9sbEVuZCx7Y2FwdHVyZTohMH0pLHRoaXMub3B0aW9ucy53cmFwcGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLm9uUG9pbnRlckRvd24sITEpLCh0aGlzLm9wdGlvbnMuYW5jaG9yc3x8dGhpcy5vcHRpb25zLnN0b3BJbmVydGlhT25OYXZpZ2F0ZSkmJnRoaXMub3B0aW9ucy53cmFwcGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLm9uQ2xpY2ssITEpLHRoaXMudmlydHVhbFNjcm9sbC5kZXN0cm95KCksdGhpcy5kaW1lbnNpb25zLmRlc3Ryb3koKSx0aGlzLmNsZWFuVXBDbGFzc05hbWUoKSx0aGlzLl9yYWZJZCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmFmSWQpfW9uKHQsZSl7cmV0dXJuIHRoaXMuZW1pdHRlci5vbih0LGUpfW9mZih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub2ZmKHQsZSl9b25TY3JvbGxFbmQ9dD0+e3QgaW5zdGFuY2VvZiBDdXN0b21FdmVudHx8KHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoInx8dGhpcy5pc1Njcm9sbGluZz09PSExKSYmdC5zdG9wUHJvcGFnYXRpb24oKX07ZGlzcGF0Y2hTY3JvbGxlbmRFdmVudD0oKT0+e3RoaXMub3B0aW9ucy53cmFwcGVyLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzY3JvbGxlbmQiLHtidWJibGVzOnRoaXMub3B0aW9ucy53cmFwcGVyPT09d2luZG93LGRldGFpbDp7bGVuaXNTY3JvbGxFbmQ6ITB9fSkpfTtnZXQgb3ZlcmZsb3coKXtsZXQgdD10aGlzLmlzSG9yaXpvbnRhbD8ib3ZlcmZsb3cteCI6Im92ZXJmbG93LXkiO3JldHVybiBnZXRDb21wdXRlZFN0eWxlKHRoaXMucm9vdEVsZW1lbnQpW3RdfWNoZWNrT3ZlcmZsb3coKXtbImhpZGRlbiIsImNsaXAiXS5pbmNsdWRlcyh0aGlzLm92ZXJmbG93KT90aGlzLmludGVybmFsU3RvcCgpOnRoaXMuaW50ZXJuYWxTdGFydCgpfW9uVHJhbnNpdGlvbkVuZD10PT57dC5wcm9wZXJ0eU5hbWUuaW5jbHVkZXMoIm92ZXJmbG93IikmJnRoaXMuY2hlY2tPdmVyZmxvdygpfTtzZXRTY3JvbGwodCl7dGhpcy5pc0hvcml6b250YWw/dGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oe2xlZnQ6dCxiZWhhdmlvcjoiaW5zdGFudCJ9KTp0aGlzLm9wdGlvbnMud3JhcHBlci5zY3JvbGxUbyh7dG9wOnQsYmVoYXZpb3I6Imluc3RhbnQifSl9b25DbGljaz10PT57bGV0IGE9dC5jb21wb3NlZFBhdGgoKS5maWx0ZXIocj0+ciBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50JiZyLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTtpZih0aGlzLm9wdGlvbnMuYW5jaG9ycyl7bGV0IHI9YS5maW5kKGk9PmkuZ2V0QXR0cmlidXRlKCJocmVmIik/LmluY2x1ZGVzKCIjIikpO2lmKHIpe2xldCBpPXIuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYoaSl7bGV0IG89dHlwZW9mIHRoaXMub3B0aW9ucy5hbmNob3JzPT0ib2JqZWN0IiYmdGhpcy5vcHRpb25zLmFuY2hvcnM/dGhpcy5vcHRpb25zLmFuY2hvcnM6dm9pZCAwLHM9YCMke2kuc3BsaXQoIiMiKVsxXX1gO3RoaXMuc2Nyb2xsVG8ocyxvKX19fXRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUmJmEuZmluZChpPT5pLmhvc3Q9PT13aW5kb3cubG9jYXRpb24uaG9zdCkmJnRoaXMucmVzZXQoKX07b25Qb2ludGVyRG93bj10PT57dC5idXR0b249PT0xJiZ0aGlzLnJlc2V0KCl9O29uVmlydHVhbFNjcm9sbD10PT57aWYodHlwZW9mIHRoaXMub3B0aW9ucy52aXJ0dWFsU2Nyb2xsPT0iZnVuY3Rpb24iJiZ0aGlzLm9wdGlvbnMudmlydHVhbFNjcm9sbCh0KT09PSExKXJldHVybjtsZXR7ZGVsdGFYOmUsZGVsdGFZOmEsZXZlbnQ6cn09dDtpZih0aGlzLmVtaXR0ZXIuZW1pdCgidmlydHVhbC1zY3JvbGwiLHtkZWx0YVg6ZSxkZWx0YVk6YSxldmVudDpyfSksci5jdHJsS2V5fHxyLmxlbmlzU3RvcFByb3BhZ2F0aW9uKXJldHVybjtsZXQgaT1yLnR5cGUuaW5jbHVkZXMoInRvdWNoIiksbz1yLnR5cGUuaW5jbHVkZXMoIndoZWVsIik7dGhpcy5pc1RvdWNoaW5nPXIudHlwZT09PSJ0b3VjaHN0YXJ0Inx8ci50eXBlPT09InRvdWNobW92ZSI7bGV0IHM9ZT09PTAmJmE9PT0wO2lmKHRoaXMub3B0aW9ucy5zeW5jVG91Y2gmJmkmJnIudHlwZT09PSJ0b3VjaHN0YXJ0IiYmcyYmIXRoaXMuaXNTdG9wcGVkJiYhdGhpcy5pc0xvY2tlZCl7dGhpcy5yZXNldCgpO3JldHVybn1sZXQgZj10aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09InZlcnRpY2FsIiYmYT09PTB8fHRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0iaG9yaXpvbnRhbCImJmU9PT0wO2lmKHN8fGYpcmV0dXJuO2xldCBjPXIuY29tcG9zZWRQYXRoKCk7Yz1jLnNsaWNlKDAsYy5pbmRleE9mKHRoaXMucm9vdEVsZW1lbnQpKTtsZXQgdT10aGlzLm9wdGlvbnMucHJldmVudDtpZihjLmZpbmQobT0+bSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYodHlwZW9mIHU9PSJmdW5jdGlvbiImJnU/LihtKXx8bS5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50Iil8fGkmJm0uaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudC10b3VjaCIpfHxvJiZtLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQtd2hlZWwiKXx8dGhpcy5vcHRpb25zLmFsbG93TmVzdGVkU2Nyb2xsJiZ0aGlzLmNoZWNrTmVzdGVkU2Nyb2xsKG0se2RlbHRhWDplLGRlbHRhWTphfSkpKSlyZXR1cm47aWYodGhpcy5pc1N0b3BwZWR8fHRoaXMuaXNMb2NrZWQpe3IuY2FuY2VsYWJsZSYmci5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1pZighKHRoaXMub3B0aW9ucy5zeW5jVG91Y2gmJml8fHRoaXMub3B0aW9ucy5zbW9vdGhXaGVlbCYmbykpe3RoaXMuaXNTY3JvbGxpbmc9Im5hdGl2ZSIsdGhpcy5hbmltYXRlLnN0b3AoKSxyLmxlbmlzU3RvcFByb3BhZ2F0aW9uPSEwO3JldHVybn1sZXQgaD1hO3RoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0iYm90aCI/aD1NYXRoLmFicyhhKT5NYXRoLmFicyhlKT9hOmU6dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJob3Jpem9udGFsIiYmKGg9ZSksKCF0aGlzLm9wdGlvbnMub3ZlcnNjcm9sbHx8dGhpcy5vcHRpb25zLmluZmluaXRlfHx0aGlzLm9wdGlvbnMud3JhcHBlciE9PXdpbmRvdyYmdGhpcy5saW1pdD4wJiYodGhpcy5hbmltYXRlZFNjcm9sbD4wJiZ0aGlzLmFuaW1hdGVkU2Nyb2xsPHRoaXMubGltaXR8fHRoaXMuYW5pbWF0ZWRTY3JvbGw9PT0wJiZhPjB8fHRoaXMuYW5pbWF0ZWRTY3JvbGw9PT10aGlzLmxpbWl0JiZhPDApKSYmKHIubGVuaXNTdG9wUHJvcGFnYXRpb249ITApLHIuY2FuY2VsYWJsZSYmci5wcmV2ZW50RGVmYXVsdCgpO2xldCBnPWkmJnRoaXMub3B0aW9ucy5zeW5jVG91Y2gseD1pJiZyLnR5cGU9PT0idG91Y2hlbmQiO3gmJihoPU1hdGguc2lnbih0aGlzLnZlbG9jaXR5KSpNYXRoLnBvdyhNYXRoLmFicyh0aGlzLnZlbG9jaXR5KSx0aGlzLm9wdGlvbnMudG91Y2hJbmVydGlhRXhwb25lbnQpKSx0aGlzLnNjcm9sbFRvKHRoaXMudGFyZ2V0U2Nyb2xsK2gse3Byb2dyYW1tYXRpYzohMSwuLi5nP3tsZXJwOng/dGhpcy5vcHRpb25zLnN5bmNUb3VjaExlcnA6MX06e2xlcnA6dGhpcy5vcHRpb25zLmxlcnAsZHVyYXRpb246dGhpcy5vcHRpb25zLmR1cmF0aW9uLGVhc2luZzp0aGlzLm9wdGlvbnMuZWFzaW5nfX0pfTtyZXNpemUoKXt0aGlzLmRpbWVuc2lvbnMucmVzaXplKCksdGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmVtaXQoKX1lbWl0KCl7dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIsdGhpcyl9b25OYXRpdmVTY3JvbGw9KCk9PntpZih0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dCE9PW51bGwmJihjbGVhclRpbWVvdXQodGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQpLHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0PW51bGwpLHRoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQpe3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITE7cmV0dXJufWlmKHRoaXMuaXNTY3JvbGxpbmc9PT0hMXx8dGhpcy5pc1Njcm9sbGluZz09PSJuYXRpdmUiKXtsZXQgdD10aGlzLmFuaW1hdGVkU2Nyb2xsO3RoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PXRoaXMuYW5pbWF0ZWRTY3JvbGwtdCx0aGlzLmRpcmVjdGlvbj1NYXRoLnNpZ24odGhpcy5hbmltYXRlZFNjcm9sbC10KSx0aGlzLmlzU3RvcHBlZHx8KHRoaXMuaXNTY3JvbGxpbmc9Im5hdGl2ZSIpLHRoaXMuZW1pdCgpLHRoaXMudmVsb2NpdHkhPT0wJiYodGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHksdGhpcy52ZWxvY2l0eT0wLHRoaXMuaXNTY3JvbGxpbmc9ITEsdGhpcy5lbWl0KCl9LDQwMCkpfX07cmVzZXQoKXt0aGlzLmlzTG9ja2VkPSExLHRoaXMuaXNTY3JvbGxpbmc9ITEsdGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5PTAsdGhpcy5hbmltYXRlLnN0b3AoKX1zdGFydCgpe2lmKHRoaXMuaXNTdG9wcGVkKXtpZih0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSl7dGhpcy5yb290RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgib3ZlcmZsb3ciKTtyZXR1cm59dGhpcy5pbnRlcm5hbFN0YXJ0KCl9fWludGVybmFsU3RhcnQoKXt0aGlzLmlzU3RvcHBlZCYmKHRoaXMucmVzZXQoKSx0aGlzLmlzU3RvcHBlZD0hMSx0aGlzLmVtaXQoKSl9c3RvcCgpe2lmKCF0aGlzLmlzU3RvcHBlZCl7aWYodGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUpe3RoaXMucm9vdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIm92ZXJmbG93IiwiY2xpcCIpO3JldHVybn10aGlzLmludGVybmFsU3RvcCgpfX1pbnRlcm5hbFN0b3AoKXt0aGlzLmlzU3RvcHBlZHx8KHRoaXMucmVzZXQoKSx0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLmVtaXQoKSl9cmFmPXQ9PntsZXQgZT10LSh0aGlzLnRpbWV8fHQpO3RoaXMudGltZT10LHRoaXMuYW5pbWF0ZS5hZHZhbmNlKGUqLjAwMSksdGhpcy5vcHRpb25zLmF1dG9SYWYmJih0aGlzLl9yYWZJZD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5yYWYpKX07c2Nyb2xsVG8odCx7b2Zmc2V0OmU9MCxpbW1lZGlhdGU6YT0hMSxsb2NrOnI9ITEscHJvZ3JhbW1hdGljOmk9ITAsbGVycDpvPWk/dGhpcy5vcHRpb25zLmxlcnA6dm9pZCAwLGR1cmF0aW9uOnM9aT90aGlzLm9wdGlvbnMuZHVyYXRpb246dm9pZCAwLGVhc2luZzpsPWk/dGhpcy5vcHRpb25zLmVhc2luZzp2b2lkIDAsb25TdGFydDpmLG9uQ29tcGxldGU6Yyxmb3JjZTp1PSExLHVzZXJEYXRhOmR9PXt9KXtpZighKCh0aGlzLmlzU3RvcHBlZHx8dGhpcy5pc0xvY2tlZCkmJiF1KSl7aWYodHlwZW9mIHQ9PSJzdHJpbmciJiZbInRvcCIsImxlZnQiLCJzdGFydCIsIiMiXS5pbmNsdWRlcyh0KSl0PTA7ZWxzZSBpZih0eXBlb2YgdD09InN0cmluZyImJlsiYm90dG9tIiwicmlnaHQiLCJlbmQiXS5pbmNsdWRlcyh0KSl0PXRoaXMubGltaXQ7ZWxzZXtsZXQgaDtpZih0eXBlb2YgdD09InN0cmluZyI/KGg9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KSxofHwodD09PSIjdG9wIj90PTA6Y29uc29sZS53YXJuKCJMZW5pczogVGFyZ2V0IG5vdCBmb3VuZCIsdCkpKTp0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJnQ/Lm5vZGVUeXBlJiYoaD10KSxoKXtpZih0aGlzLm9wdGlvbnMud3JhcHBlciE9PXdpbmRvdyl7bGV0IGI9dGhpcy5yb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlLT10aGlzLmlzSG9yaXpvbnRhbD9iLmxlZnQ6Yi50b3B9bGV0IGc9aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0PSh0aGlzLmlzSG9yaXpvbnRhbD9nLmxlZnQ6Zy50b3ApK3RoaXMuYW5pbWF0ZWRTY3JvbGx9fWlmKHR5cGVvZiB0PT0ibnVtYmVyIil7aWYodCs9ZSx0PU1hdGgucm91bmQodCksdGhpcy5vcHRpb25zLmluZmluaXRlKXtpZihpKXt0aGlzLnRhcmdldFNjcm9sbD10aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMuc2Nyb2xsO2xldCBoPXQtdGhpcy5hbmltYXRlZFNjcm9sbDtoPnRoaXMubGltaXQvMj90PXQtdGhpcy5saW1pdDpoPC10aGlzLmxpbWl0LzImJih0PXQrdGhpcy5saW1pdCl9fWVsc2UgdD14MnQoMCx0LHRoaXMubGltaXQpO2lmKHQ9PT10aGlzLnRhcmdldFNjcm9sbCl7Zj8uKHRoaXMpLGM/Lih0aGlzKTtyZXR1cm59aWYodGhpcy51c2VyRGF0YT1kPz97fSxhKXt0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXQsdGhpcy5zZXRTY3JvbGwodGhpcy5zY3JvbGwpLHRoaXMucmVzZXQoKSx0aGlzLnByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKSx0aGlzLmVtaXQoKSxjPy4odGhpcyksdGhpcy51c2VyRGF0YT17fSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKX0pO3JldHVybn1pfHwodGhpcy50YXJnZXRTY3JvbGw9dCksdHlwZW9mIHM9PSJudW1iZXIiJiZ0eXBlb2YgbCE9ImZ1bmN0aW9uIj9sPXkydDp0eXBlb2YgbD09ImZ1bmN0aW9uIiYmdHlwZW9mIHMhPSJudW1iZXIiJiYocz0xKSx0aGlzLmFuaW1hdGUuZnJvbVRvKHRoaXMuYW5pbWF0ZWRTY3JvbGwsdCx7ZHVyYXRpb246cyxlYXNpbmc6bCxsZXJwOm8sb25TdGFydDooKT0+e3ImJih0aGlzLmlzTG9ja2VkPSEwKSx0aGlzLmlzU2Nyb2xsaW5nPSJzbW9vdGgiLGY/Lih0aGlzKX0sb25VcGRhdGU6KGgsZyk9Pnt0aGlzLmlzU2Nyb2xsaW5nPSJzbW9vdGgiLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHksdGhpcy52ZWxvY2l0eT1oLXRoaXMuYW5pbWF0ZWRTY3JvbGwsdGhpcy5kaXJlY3Rpb249TWF0aC5zaWduKHRoaXMudmVsb2NpdHkpLHRoaXMuYW5pbWF0ZWRTY3JvbGw9aCx0aGlzLnNldFNjcm9sbCh0aGlzLnNjcm9sbCksaSYmKHRoaXMudGFyZ2V0U2Nyb2xsPWgpLGd8fHRoaXMuZW1pdCgpLGcmJih0aGlzLnJlc2V0KCksdGhpcy5lbWl0KCksYz8uKHRoaXMpLHRoaXMudXNlckRhdGE9e30scmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5kaXNwYXRjaFNjcm9sbGVuZEV2ZW50KCl9KSx0aGlzLnByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKSl9fSl9fX1wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KCl7dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSExfSl9Y2hlY2tOZXN0ZWRTY3JvbGwodCx7ZGVsdGFYOmUsZGVsdGFZOmF9KXtsZXQgcj1EYXRlLm5vdygpLGk9dC5fbGVuaXM/Pz17fSxvLHMsbCxmLGMsdSxkLGgsZz10aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uO2lmKHItKGkudGltZT8/MCk+MmUzKXtpLnRpbWU9RGF0ZS5ub3coKTtsZXQgQz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTtpLmNvbXB1dGVkU3R5bGU9QztsZXQgej1DLm92ZXJmbG93WCxQPUMub3ZlcmZsb3dZO2lmKG89WyJhdXRvIiwib3ZlcmxheSIsInNjcm9sbCJdLmluY2x1ZGVzKHopLHM9WyJhdXRvIiwib3ZlcmxheSIsInNjcm9sbCJdLmluY2x1ZGVzKFApLGkuaGFzT3ZlcmZsb3dYPW8saS5oYXNPdmVyZmxvd1k9cywhbyYmIXN8fGc9PT0idmVydGljYWwiJiYhc3x8Zz09PSJob3Jpem9udGFsIiYmIW8pcmV0dXJuITE7Yz10LnNjcm9sbFdpZHRoLHU9dC5zY3JvbGxIZWlnaHQsZD10LmNsaWVudFdpZHRoLGg9dC5jbGllbnRIZWlnaHQsbD1jPmQsZj11PmgsaS5pc1Njcm9sbGFibGVYPWwsaS5pc1Njcm9sbGFibGVZPWYsaS5zY3JvbGxXaWR0aD1jLGkuc2Nyb2xsSGVpZ2h0PXUsaS5jbGllbnRXaWR0aD1kLGkuY2xpZW50SGVpZ2h0PWh9ZWxzZSBsPWkuaXNTY3JvbGxhYmxlWCxmPWkuaXNTY3JvbGxhYmxlWSxvPWkuaGFzT3ZlcmZsb3dYLHM9aS5oYXNPdmVyZmxvd1ksYz1pLnNjcm9sbFdpZHRoLHU9aS5zY3JvbGxIZWlnaHQsZD1pLmNsaWVudFdpZHRoLGg9aS5jbGllbnRIZWlnaHQ7aWYoIW8mJiFzfHwhbCYmIWZ8fGc9PT0idmVydGljYWwiJiYoIXN8fCFmKXx8Zz09PSJob3Jpem9udGFsIiYmKCFvfHwhbCkpcmV0dXJuITE7bGV0IGI7aWYoZz09PSJob3Jpem9udGFsIiliPSJ4IjtlbHNlIGlmKGc9PT0idmVydGljYWwiKWI9InkiO2Vsc2V7bGV0IEM9ZSE9PTAsej1hIT09MDtDJiZvJiZsJiYoYj0ieCIpLHomJnMmJmYmJihiPSJ5Iil9aWYoIWIpcmV0dXJuITE7bGV0IHgsbSx2LHksdztpZihiPT09IngiKXg9dC5zY3JvbGxMZWZ0LG09Yy1kLHY9ZSx5PW8sdz1sO2Vsc2UgaWYoYj09PSJ5Iil4PXQuc2Nyb2xsVG9wLG09dS1oLHY9YSx5PXMsdz1mO2Vsc2UgcmV0dXJuITE7cmV0dXJuKHY+MD94PG06eD4wKSYmeSYmd31nZXQgcm9vdEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5vcHRpb25zLndyYXBwZXI9PT13aW5kb3c/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OnRoaXMub3B0aW9ucy53cmFwcGVyfWdldCBsaW1pdCgpe3JldHVybiB0aGlzLm9wdGlvbnMubmFpdmVEaW1lbnNpb25zP3RoaXMuaXNIb3Jpem9udGFsP3RoaXMucm9vdEVsZW1lbnQuc2Nyb2xsV2lkdGgtdGhpcy5yb290RWxlbWVudC5jbGllbnRXaWR0aDp0aGlzLnJvb3RFbGVtZW50LnNjcm9sbEhlaWdodC10aGlzLnJvb3RFbGVtZW50LmNsaWVudEhlaWdodDp0aGlzLmRpbWVuc2lvbnMubGltaXRbdGhpcy5pc0hvcml6b250YWw/IngiOiJ5Il19Z2V0IGlzSG9yaXpvbnRhbCgpe3JldHVybiB0aGlzLm9wdGlvbnMub3JpZW50YXRpb249PT0iaG9yaXpvbnRhbCJ9Z2V0IGFjdHVhbFNjcm9sbCgpe2xldCB0PXRoaXMub3B0aW9ucy53cmFwcGVyO3JldHVybiB0aGlzLmlzSG9yaXpvbnRhbD90LnNjcm9sbFg/P3Quc2Nyb2xsTGVmdDp0LnNjcm9sbFk/P3Quc2Nyb2xsVG9wfWdldCBzY3JvbGwoKXtyZXR1cm4gdGhpcy5vcHRpb25zLmluZmluaXRlP28yMSh0aGlzLmFuaW1hdGVkU2Nyb2xsLHRoaXMubGltaXQpOnRoaXMuYW5pbWF0ZWRTY3JvbGx9Z2V0IHByb2dyZXNzKCl7cmV0dXJuIHRoaXMubGltaXQ9PT0wPzE6dGhpcy5zY3JvbGwvdGhpcy5saW1pdH1nZXQgaXNTY3JvbGxpbmcoKXtyZXR1cm4gdGhpcy5faXNTY3JvbGxpbmd9c2V0IGlzU2Nyb2xsaW5nKHQpe3RoaXMuX2lzU2Nyb2xsaW5nIT09dCYmKHRoaXMuX2lzU2Nyb2xsaW5nPXQsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzU3RvcHBlZCgpe3JldHVybiB0aGlzLl9pc1N0b3BwZWR9c2V0IGlzU3RvcHBlZCh0KXt0aGlzLl9pc1N0b3BwZWQhPT10JiYodGhpcy5faXNTdG9wcGVkPXQsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzTG9ja2VkKCl7cmV0dXJuIHRoaXMuX2lzTG9ja2VkfXNldCBpc0xvY2tlZCh0KXt0aGlzLl9pc0xvY2tlZCE9PXQmJih0aGlzLl9pc0xvY2tlZD10LHRoaXMudXBkYXRlQ2xhc3NOYW1lKCkpfWdldCBpc1Ntb290aCgpe3JldHVybiB0aGlzLmlzU2Nyb2xsaW5nPT09InNtb290aCJ9Z2V0IGNsYXNzTmFtZSgpe2xldCB0PSJsZW5pcyI7cmV0dXJuIHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlJiYodCs9IiBsZW5pcy1hdXRvVG9nZ2xlIiksdGhpcy5pc1N0b3BwZWQmJih0Kz0iIGxlbmlzLXN0b3BwZWQiKSx0aGlzLmlzTG9ja2VkJiYodCs9IiBsZW5pcy1sb2NrZWQiKSx0aGlzLmlzU2Nyb2xsaW5nJiYodCs9IiBsZW5pcy1zY3JvbGxpbmciKSx0aGlzLmlzU2Nyb2xsaW5nPT09InNtb290aCImJih0Kz0iIGxlbmlzLXNtb290aCIpLHR9dXBkYXRlQ2xhc3NOYW1lKCl7dGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5yb290RWxlbWVudC5jbGFzc05hbWU9YCR7dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWV9ICR7dGhpcy5jbGFzc05hbWV9YC50cmltKCl9Y2xlYW5VcENsYXNzTmFtZSgpe3RoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lPXRoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UoL2xlbmlzKC1cdyspPy9nLCIiKS50cmltKCl9fX0pO3ZhciBwdGU9Y3QoKGZ0ZSx1dGUpPT57KGZ1bmN0aW9uKHQsZSl7dHlwZW9mIGZ0ZT09Im9iamVjdCImJnR5cGVvZiB1dGU8InUiP3V0ZS5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShlKToodD10fHxzZWxmLHQuU3dlZXRTY3JvbGw9ZSgpKX0pKGZ0ZSxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1mdW5jdGlvbigpe3JldHVybiB0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKE8pe2Zvcih2YXIgRyxqPTEsc2U9YXJndW1lbnRzLmxlbmd0aDtqPHNlO2orKyl7Rz1hcmd1bWVudHNbal07Zm9yKHZhciBrZSBpbiBHKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChHLGtlKSYmKE9ba2VdPUdba2VdKX1yZXR1cm4gT30sdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGU9ISEodHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5kb2N1bWVudCYmd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpLGE9ZT93aW5kb3cuaGlzdG9yeSYmInB1c2hTdGF0ZSJpbiB3aW5kb3cuaGlzdG9yeSYmd2luZG93LmxvY2F0aW9uLnByb3RvY29sIT09ImZpbGU6IjohMSxyPShmdW5jdGlvbigpe3ZhciBJPSExO2lmKCFlKXJldHVybiBJO3RyeXt2YXIgTz13aW5kb3csRz1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtJPSEwfX0pO08uYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxHKSxPLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsRyl9Y2F0Y2h7fXJldHVybiBJfSkoKSxpPWZ1bmN0aW9uKEkpe3JldHVybiB0eXBlb2YgST09InN0cmluZyJ9LG89ZnVuY3Rpb24oSSl7cmV0dXJuIHR5cGVvZiBJPT0iZnVuY3Rpb24ifSxzPWZ1bmN0aW9uKEkpe3JldHVybiBBcnJheS5pc0FycmF5KEkpfSxsPWZ1bmN0aW9uKEkpe3JldHVybiFzKEkpJiZJLXBhcnNlRmxvYXQoSSkrMT49MH0sZj1mdW5jdGlvbihJLE8pe3JldHVybiBJJiZJLmhhc093blByb3BlcnR5KE8pfSxjPWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6bnVsbCx1PWU/d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpudWxsLGQ9TWF0aC5jb3MsaD1NYXRoLnNpbixnPU1hdGgucG93LGI9TWF0aC5zcXJ0LHg9TWF0aC5QSSxtPXtsaW5lYXI6ZnVuY3Rpb24oSSl7cmV0dXJuIEl9LGVhc2VJblF1YWQ6ZnVuY3Rpb24oSSxPLEcsaixzZSl7cmV0dXJuIGoqKE8vPXNlKSpPK0d9LGVhc2VPdXRRdWFkOmZ1bmN0aW9uKEksTyxHLGosc2Upe3JldHVybi1qKihPLz1zZSkqKE8tMikrR30sZWFzZUluT3V0UXVhZDpmdW5jdGlvbihJLE8sRyxqLHNlKXtyZXR1cm4oTy89c2UvMik8MT9qLzIqTypPK0c6LWovMiooLS1PKihPLTIpLTEpK0d9LGVhc2VJbkN1YmljOmZ1bmN0aW9uKEksTyxHLGosc2Upe3JldHVybiBqKihPLz1zZSkqTypPK0d9LGVhc2VPdXRDdWJpYzpmdW5jdGlvbihJLE8sRyxqLHNlKXtyZXR1cm4gaiooKE89Ty9zZS0xKSpPKk8rMSkrR30sZWFzZUluT3V0Q3ViaWM6ZnVuY3Rpb24oSSxPLEcsaixzZSl7cmV0dXJuKE8vPXNlLzIpPDE/ai8yKk8qTypPK0c6ai8yKigoTy09MikqTypPKzIpK0d9LGVhc2VJblF1YXJ0OmZ1bmN0aW9uKEksTyxHLGosc2Upe3JldHVybiBqKihPLz1zZSkqTypPKk8rR30sZWFzZU91dFF1YXJ0OmZ1bmN0aW9uKEksTyxHLGosc2Upe3JldHVybi1qKigoTz1PL3NlLTEpKk8qTypPLTEpK0d9LGVhc2VJbk91dFF1YXJ0OmZ1bmN0aW9uKEksTyxHLGosc2Upe3JldHVybihPLz1zZS8yKTwxP2ovMipPKk8qTypPK0c6LWovMiooKE8tPTIpKk8qTypPLTIpK0d9LGVhc2VJblF1aW50OmZ1bmN0aW9uKEksTyxHLGosc2Upe3JldHVybiBqKihPLz1zZSkqTypPKk8qTytHfSxlYXNlT3V0UXVpbnQ6ZnVuY3Rpb24oSSxPLEcsaixzZSl7cmV0dXJuIGoqKChPPU8vc2UtMSkqTypPKk8qTysxKStHfSxlYXNlSW5PdXRRdWludDpmdW5jdGlvbihJLE8sRyxqLHNlKXtyZXR1cm4oTy89c2UvMik8MT9qLzIqTypPKk8qTypPK0c6ai8yKigoTy09MikqTypPKk8qTysyKStHfSxlYXNlSW5TaW5lOmZ1bmN0aW9uKEksTyxHLGosc2Upe3JldHVybi1qKmQoTy9zZSooeC8yKSkraitHfSxlYXNlT3V0U2luZTpmdW5jdGlvbihJLE8sRyxqLHNlKXtyZXR1cm4gaipoKE8vc2UqKHgvMikpK0d9LGVhc2VJbk91dFNpbmU6ZnVuY3Rpb24oSSxPLEcsaixzZSl7cmV0dXJuLWovMiooZCh4Kk8vc2UpLTEpK0d9LGVhc2VJbkV4cG86ZnVuY3Rpb24oSSxPLEcsaixzZSl7cmV0dXJuIE89PT0wP0c6aipnKDIsMTAqKE8vc2UtMSkpK0d9LGVhc2VPdXRFeHBvOmZ1bmN0aW9uKEksTyxHLGosc2Upe3JldHVybiBPPT09c2U/RytqOmoqKC1nKDIsLTEwKk8vc2UpKzEpK0d9LGVhc2VJbk91dEV4cG86ZnVuY3Rpb24oSSxPLEcsaixzZSl7cmV0dXJuIE89PT0wP0c6Tz09PXNlP0crajooTy89c2UvMik8MT9qLzIqZygyLDEwKihPLTEpKStHOmovMiooLWcoMiwtMTAqLS1PKSsyKStHfSxlYXNlSW5DaXJjOmZ1bmN0aW9uKEksTyxHLGosc2Upe3JldHVybi1qKihiKDEtKE8vPXNlKSpPKS0xKStHfSxlYXNlT3V0Q2lyYzpmdW5jdGlvbihJLE8sRyxqLHNlKXtyZXR1cm4gaipiKDEtKE89Ty9zZS0xKSpPKStHfSxlYXNlSW5PdXRDaXJjOmZ1bmN0aW9uKEksTyxHLGosc2Upe3JldHVybihPLz1zZS8yKTwxPy1qLzIqKGIoMS1PKk8pLTEpK0c6ai8yKihiKDEtKE8tPTIpKk8pKzEpK0d9fSx2PWZ1bmN0aW9uKEkpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChJP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoSSk6W10pfSx5PWZ1bmN0aW9uKEkpe3JldHVybiB2KEkpLnNoaWZ0KCl8fG51bGx9LHc9ZnVuY3Rpb24oSSl7cmV0dXJuIEkgaW5zdGFuY2VvZiBFbGVtZW50fSxFPWZ1bmN0aW9uKEkpe3JldHVybiBJPT09d2luZG93fSxDPWZ1bmN0aW9uKEkpe3JldHVybiBJPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxJPT09ZG9jdW1lbnQuYm9keX0sej1mdW5jdGlvbihJLE8pe2lmKHcoTykpcmV0dXJuIEk9PT1PO2Zvcih2YXIgRz12KE8pLGo9Ry5sZW5ndGg7LS1qPj0wJiZHW2pdIT09STspO3JldHVybiBqPi0xfSxQPWZ1bmN0aW9uKEkpe3JldHVybiBNYXRoLm1heChJLnNjcm9sbEhlaWdodCxJLmNsaWVudEhlaWdodCxJLm9mZnNldEhlaWdodCl9LF89ZnVuY3Rpb24oSSl7cmV0dXJuIE1hdGgubWF4KEkuc2Nyb2xsV2lkdGgsSS5jbGllbnRXaWR0aCxJLm9mZnNldFdpZHRoKX0sJD1mdW5jdGlvbihJKXtyZXR1cm57d2lkdGg6XyhJKSxoZWlnaHQ6UChJKX19LEg9ZnVuY3Rpb24oSSl7dmFyIE89RShJKXx8QyhJKTtyZXR1cm57dmlld3BvcnQ6e3dpZHRoOk8/TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTpJLmNsaWVudFdpZHRoLGhlaWdodDpPP3dpbmRvdy5pbm5lckhlaWdodDpJLmNsaWVudEhlaWdodH0sc2l6ZTpPP3t3aWR0aDpNYXRoLm1heChfKGRvY3VtZW50LmJvZHkpLF8oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSksaGVpZ2h0Ok1hdGgubWF4KFAoZG9jdW1lbnQuYm9keSksUChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX06JChJKX19LEw9e3k6InNjcm9sbFRvcCIseDoic2Nyb2xsTGVmdCJ9LGs9e3k6InBhZ2VZT2Zmc2V0Iix4OiJwYWdlWE9mZnNldCJ9LE49ZnVuY3Rpb24oSSxPKXtyZXR1cm4gRShJKT9JW2tbT11dOklbTFtPXV19LFM9ZnVuY3Rpb24oSSxPLEcpe2lmKEUoSSkpe3ZhciBqPUc9PT0ieSI7SS5zY3JvbGxUbyhqP0kucGFnZVhPZmZzZXQ6TyxqP086SS5wYWdlWU9mZnNldCl9ZWxzZSBJW0xbR11dPU99LFQ9ZnVuY3Rpb24oSSxPKXt2YXIgRz1JLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKEcud2lkdGh8fEcuaGVpZ2h0KXt2YXIgaj17dG9wOjAsbGVmdDowfSxzZT12b2lkIDA7aWYoRShPKXx8QyhPKSlzZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsai50b3A9d2luZG93W2sueV0sai5sZWZ0PXdpbmRvd1trLnhdO2Vsc2V7c2U9Tzt2YXIga2U9c2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ai50b3A9a2UudG9wKi0xK3NlW0wueV0sai5sZWZ0PWtlLmxlZnQqLTErc2VbTC54XX1yZXR1cm57dG9wOkcudG9wK2oudG9wLXNlLmNsaWVudFRvcCxsZWZ0OkcubGVmdCtqLmxlZnQtc2UuY2xpZW50TGVmdH19cmV0dXJuIEd9LFI9KGZ1bmN0aW9uKCl7cmV0dXJuIGU/Im9ud2hlZWwiaW4gZG9jdW1lbnQ/IndoZWVsIjoibW91c2V3aGVlbCI6IndoZWVsIn0pKCksQT1mdW5jdGlvbihJKXtyZXR1cm4gST09PSJ3aGVlbCI/UjpJfSxGPWZ1bmN0aW9uKEksTyxHLGosc2Upe0cuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGtlKXtJW09dKEEoa2UpLGoscj97cGFzc2l2ZTpzZX06ITEpfSl9LGFlPWZ1bmN0aW9uKEksTyxHLGope3JldHVybiBGKEksImFkZEV2ZW50TGlzdGVuZXIiLE8sRyxqKX0sVj1mdW5jdGlvbihJLE8sRyxqKXtyZXR1cm4gRihJLCJyZW1vdmVFdmVudExpc3RlbmVyIixPLEcsail9LFNlPS9eKFwrfC0pPShcZCsoPzpcLlxkKyk/KSQvLHplPWZ1bmN0aW9uKEksTyl7dmFyIEc9e3RvcDowLGxlZnQ6MCxyZWxhdGl2ZTohMX07aWYoZihJLCJ0b3AiKXx8ZihJLCJsZWZ0IikpRz10KHt9LEcsSSk7ZWxzZSBpZihzKEkpKWlmKEkubGVuZ3RoPjEpRy50b3A9SVswXSxHLmxlZnQ9SVsxXTtlbHNlIGlmKEkubGVuZ3RoPT09MSlHLnRvcD1PP0lbMF06MCxHLmxlZnQ9Tz8wOklbMF07ZWxzZSByZXR1cm4gbnVsbDtlbHNlIGlmKGwoSSkpTz9HLnRvcD1JOkcubGVmdD1JO2Vsc2UgaWYoaShJKSl7dmFyIGo9SS50cmltKCkubWF0Y2goU2UpO2lmKCFqKXJldHVybiBudWxsO3ZhciBzZT1qWzFdLGtlPXBhcnNlSW50KGpbMl0sMTApO3NlPT09IisiPyhHLnRvcD1PP2tlOjAsRy5sZWZ0PU8/MDprZSk6KEcudG9wPU8/LWtlOjAsRy5sZWZ0PU8/MDota2UpLEcucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gR30sVz17dHJpZ2dlcjoiW2RhdGEtc2Nyb2xsXSIsaGVhZGVyOiJbZGF0YS1zY3JvbGwtaGVhZGVyXSIsZHVyYXRpb246MWUzLGVhc2luZzoiZWFzZU91dFF1aW50IixvZmZzZXQ6MCx2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGNhbmNlbGxhYmxlOiEwLHVwZGF0ZVVSTDohMSxwcmV2ZW50RGVmYXVsdDohMCxzdG9wUHJvcGFnYXRpb246ITAsYmVmb3JlOm51bGwsYWZ0ZXI6bnVsbCxjYW5jZWw6bnVsbCxjb21wbGV0ZTpudWxsLHN0ZXA6bnVsbH0sTmU9ImNsaWNrIixSZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLFg9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gSShPLEcpe3ZhciBqPXRoaXM7dGhpcy4kZWw9bnVsbCx0aGlzLmN0eD17JHRyaWdnZXI6bnVsbCxvcHRzOm51bGwscHJvZ3Jlc3M6ITEscG9zOm51bGwsc3RhcnRQb3M6bnVsbCxlYXNpbmc6bnVsbCxzdGFydDowLGlkOjAsY2FuY2VsOiExLGhhc2g6bnVsbH0sdGhpcy5sb29wPWZ1bmN0aW9uKGtlKXt2YXIgRGU9aixPZT1EZS4kZWwsVT1EZS5jdHg7aWYoVS5zdGFydHx8KFUuc3RhcnQ9a2UpLCFVLnByb2dyZXNzfHwhT2Upe2ouc3RvcCgpO3JldHVybn12YXIgQj1VLm9wdHMsb2U9VS5wb3MsdmU9VS5zdGFydCx5ZT1VLnN0YXJ0UG9zLCRlPVUuZWFzaW5nLG5lPUIuZHVyYXRpb24scmU9e3RvcDoieSIsbGVmdDoieCJ9LGdlPWtlLXZlLEVlPU1hdGgubWluKDEsTWF0aC5tYXgoZ2UvbmUsMCkpO09iamVjdC5rZXlzKG9lKS5mb3JFYWNoKGZ1bmN0aW9uKHJ0KXt2YXIgdWU9b2VbcnRdLFo9eWVbcnRdLEo9dWUtWjtpZihKIT09MCl7dmFyIGRlPSRlKEVlLG5lKkVlLDAsMSxuZSk7UyhPZSxNYXRoLnJvdW5kKForSipkZSkscmVbcnRdKX19KSxnZTw9bmU/KGouaG9vayhCLCJzdGVwIixFZSksVS5pZD1JLnJhZihqLmxvb3ApKTpqLnN0b3AoITApfSx0aGlzLmhhbmRsZUNsaWNrPWZ1bmN0aW9uKGtlKXtmb3IodmFyIERlPWoub3B0cyxPZT1rZS50YXJnZXQ7T2UmJk9lIT09ZG9jdW1lbnQ7T2U9T2UucGFyZW50Tm9kZSlpZih6KE9lLERlLnRyaWdnZXIpKXt2YXIgVT1KU09OLnBhcnNlKE9lLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwtb3B0aW9ucyIpfHwie30iKSxCPU9lLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwiKSxvZT1CfHxPZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSx2ZT10KHt9LERlLFUpLHllPXZlLnByZXZlbnREZWZhdWx0LCRlPXZlLnN0b3BQcm9wYWdhdGlvbixuZT12ZS52ZXJ0aWNhbCxyZT12ZS5ob3Jpem9udGFsO3llJiZrZS5wcmV2ZW50RGVmYXVsdCgpLCRlJiZrZS5zdG9wUHJvcGFnYXRpb24oKSxqLmN0eC4kdHJpZ2dlcj1PZSxyZSYmbmU/ai50byhvZSx2ZSk6bmU/ai50b1RvcChvZSx2ZSk6cmUmJmoudG9MZWZ0KG9lLHZlKTticmVha319LHRoaXMuaGFuZGxlU3RvcD1mdW5jdGlvbihrZSl7dmFyIERlPWouY3R4LE9lPURlLm9wdHM7T2UmJk9lLmNhbmNlbGxhYmxlPyhEZS5jYW5jZWw9ITAsai5zdG9wKCkpOmtlLnByZXZlbnREZWZhdWx0KCl9LHRoaXMub3B0cz10KHt9LFcsT3x8e30pO3ZhciBzZT1udWxsO2UmJih0eXBlb2YgRz09InN0cmluZyI/c2U9eShHKTpHIT1udWxsP3NlPUc6c2U9d2luZG93KSx0aGlzLiRlbD1zZSxzZSYmdGhpcy5iaW5kKCEwLCExKX1yZXR1cm4gSS5jcmVhdGU9ZnVuY3Rpb24oTyxHKXtyZXR1cm4gbmV3IEkoTyxHKX0sSS5wcm90b3R5cGUudG89ZnVuY3Rpb24oTyxHKXtpZihlKXt2YXIgaj10aGlzLHNlPWouJGVsLGtlPWouY3R4LERlPWoub3B0cyxPZT1rZS4kdHJpZ2dlcixVPXQoe30sRGUsR3x8e30pLEI9VS5vZmZzZXQsb2U9VS52ZXJ0aWNhbCx2ZT1VLmhvcml6b250YWwseWU9dyhVLmhlYWRlcik/VS5oZWFkZXI6eShVLmhlYWRlciksJGU9L14jLyxuZT1pKE8pJiYkZS50ZXN0KE8pP086bnVsbDtpZihrZS5vcHRzPVUsa2UuY2FuY2VsPSExLGtlLmhhc2g9bmUsdGhpcy5zdG9wKCksISFzZSl7dmFyIHJlPXplKEIsb2UpLGdlPXplKE8sb2UpLEVlPXt0b3A6MCxsZWZ0OjB9O2lmKGdlKWlmKGdlLnJlbGF0aXZlKXt2YXIgcnQ9TihzZSxvZT8ieSI6IngiKTtFZS50b3A9b2U/cnQrZ2UudG9wOmdlLnRvcCxFZS5sZWZ0PW9lP2dlLmxlZnQ6cnQrZ2UubGVmdH1lbHNlIEVlPWdlO2Vsc2UgaWYoaShPKSYmTyE9PSIjIil7dmFyIHVlPXkoTyk7aWYoIXVlKXJldHVybjtFZT1UKHVlLHNlKX1yZSYmKEVlLnRvcCs9cmUudG9wLEVlLmxlZnQrPXJlLmxlZnQpLHllJiYoRWUudG9wPU1hdGgubWF4KDAsRWUudG9wLSQoeWUpLmhlaWdodCkpO3ZhciBaPUgoc2UpLEo9Wi52aWV3cG9ydCxkZT1aLnNpemU7aWYoRWUudG9wPW9lP01hdGgubWF4KDAsTWF0aC5taW4oZGUuaGVpZ2h0LUouaGVpZ2h0LEVlLnRvcCkpOk4oc2UsInkiKSxFZS5sZWZ0PXZlP01hdGgubWF4KDAsTWF0aC5taW4oZGUud2lkdGgtSi53aWR0aCxFZS5sZWZ0KSk6TihzZSwieCIpLHRoaXMuaG9vayhVLCJiZWZvcmUiLEVlLE9lKT09PSExKXtrZS5vcHRzPW51bGw7cmV0dXJufWtlLnBvcz1FZSx0aGlzLnN0YXJ0KFUpLHRoaXMuYmluZCghMSwhMCl9fX0sSS5wcm90b3R5cGUudG9Ub3A9ZnVuY3Rpb24oTyxHKXt0aGlzLnRvKE8sdCh7fSxHfHx7fSx7dmVydGljYWw6ITAsaG9yaXpvbnRhbDohMX0pKX0sSS5wcm90b3R5cGUudG9MZWZ0PWZ1bmN0aW9uKE8sRyl7dGhpcy50byhPLHQoe30sR3x8e30se3ZlcnRpY2FsOiExLGhvcml6b250YWw6ITB9KSl9LEkucHJvdG90eXBlLnRvRWxlbWVudD1mdW5jdGlvbihPLEcpe3ZhciBqPXRoaXMuJGVsOyFlfHwhanx8dGhpcy50byhUKE8saiksR3x8e30pfSxJLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKE8pe089PT12b2lkIDAmJihPPSExKTt2YXIgRz10aGlzLGo9Ry4kZWwsc2U9Ry5jdHgsa2U9c2UucG9zOyFqfHwhc2UucHJvZ3Jlc3N8fChJLmNhZihzZS5pZCksc2UucHJvZ3Jlc3M9ITEsc2Uuc3RhcnQ9MCxzZS5pZD0wLE8mJmtlJiYoUyhqLGtlLmxlZnQsIngiKSxTKGosa2UudG9wLCJ5IikpLHRoaXMuY29tcGxldGUoKSl9LEkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihPKXtpZih0aGlzLiRlbCl7dmFyIEc9dCh7fSx0aGlzLm9wdHMsTyk7dGhpcy5zdG9wKCksdGhpcy51bmJpbmQoITAsITApLHRoaXMub3B0cz1HLHRoaXMuYmluZCghMCwhMSl9fSxJLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy4kZWwmJih0aGlzLnN0b3AoKSx0aGlzLnVuYmluZCghMCwhMCksdGhpcy4kZWw9bnVsbCl9LEkucHJvdG90eXBlLm9uQmVmb3JlPWZ1bmN0aW9uKE8sRyl7cmV0dXJuITB9LEkucHJvdG90eXBlLm9uU3RlcD1mdW5jdGlvbihPKXt9LEkucHJvdG90eXBlLm9uQWZ0ZXI9ZnVuY3Rpb24oTyxHKXt9LEkucHJvdG90eXBlLm9uQ2FuY2VsPWZ1bmN0aW9uKCl7fSxJLnByb3RvdHlwZS5vbkNvbXBsZXRlPWZ1bmN0aW9uKE8pe30sSS5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oTyl7dmFyIEc9dGhpcy5jdHg7Ry5vcHRzPU8sRy5wcm9ncmVzcz0hMCxHLmVhc2luZz1vKE8uZWFzaW5nKT9PLmVhc2luZzptW08uZWFzaW5nXTt2YXIgaj10aGlzLiRlbCxzZT17dG9wOk4oaiwieSIpLGxlZnQ6TihqLCJ4Iil9O0cuc3RhcnRQb3M9c2UsRy5pZD1JLnJhZih0aGlzLmxvb3ApfSxJLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBPPXRoaXMsRz1PLiRlbCxqPU8uY3R4LHNlPWouaGFzaCxrZT1qLmNhbmNlbCxEZT1qLm9wdHMsT2U9ai5wb3MsVT1qLiR0cmlnZ2VyO2lmKCEoIUd8fCFEZSkpe2lmKHNlIT1udWxsJiZzZSE9PXdpbmRvdy5sb2NhdGlvbi5oYXNoKXt2YXIgQj1EZS51cGRhdGVVUkw7ZSYmYSYmQiE9PSExJiZ3aW5kb3cuaGlzdG9yeVtCPT09InJlcGxhY2UiPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXShudWxsLCIiLHNlKX10aGlzLnVuYmluZCghMSwhMCksai5vcHRzPW51bGwsai4kdHJpZ2dlcj1udWxsLGtlP3RoaXMuaG9vayhEZSwiY2FuY2VsIik6dGhpcy5ob29rKERlLCJhZnRlciIsT2UsVSksdGhpcy5ob29rKERlLCJjb21wbGV0ZSIsa2UpfX0sSS5wcm90b3R5cGUuaG9vaz1mdW5jdGlvbihPLEcpe2Zvcih2YXIgaj1bXSxzZT0yO3NlPGFyZ3VtZW50cy5sZW5ndGg7c2UrKylqW3NlLTJdPWFyZ3VtZW50c1tzZV07dmFyIGtlLERlPU9bR10sT2UsVTtyZXR1cm4gbyhEZSkmJihPZT1EZS5hcHBseSh0aGlzLGouY29uY2F0KFt0aGlzXSkpKSxVPShrZT10aGlzKVsib24iKyhHWzBdLnRvVXBwZXJDYXNlKCkrRy5zbGljZSgxKSldLmFwcGx5KGtlLGopLE9lIT09dm9pZCAwP09lOlV9LEkucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oTyxHKXt2YXIgaj10aGlzLHNlPWouJGVsLGtlPWouY3R4Lm9wdHM7c2UmJihPJiZhZShzZSxOZSx0aGlzLmhhbmRsZUNsaWNrLCExKSxHJiZhZShzZSxSZSx0aGlzLmhhbmRsZVN0b3Asa2U/a2UuY2FuY2VsbGFibGU6ITApKX0sSS5wcm90b3R5cGUudW5iaW5kPWZ1bmN0aW9uKE8sRyl7dmFyIGo9dGhpcyxzZT1qLiRlbCxrZT1qLmN0eC5vcHRzO3NlJiYoTyYmVihzZSxOZSx0aGlzLmhhbmRsZUNsaWNrLCExKSxHJiZWKHNlLFJlLHRoaXMuaGFuZGxlU3RvcCxrZT9rZS5jYW5jZWxsYWJsZTohMCkpfSxJLnJhZj1jLEkuY2FmPXUsSX0pKCk7cmV0dXJuIFh9KX0pO3ZhciBOcSxQZCxINj1uKCgpPT57UldlKCk7ajgoKTtpaSgpO2Q2KCk7U2VlKCk7cDIoKTtFZWUoKTtWYSgpO0ZlZSgpO1A4KCk7QmVlKCk7blEoKTtBcSgpO1BSKCk7bTJ0KCk7ZzJ0KCk7ZHRlKCk7dzJ0KCk7TnE9TjIocHRlKCksMSksUGQ9e09iamVjdE1hcDpEcSxTdHJpbmdtYXA6RXEsRmFzdE1hcDpSNn19KTt2YXIgVnI9e307ZXQoVnIse2Nzc0ZvckRlc2t0b3A6KCk9PmQyMSxjc3NGb3JOb3RlYm9vazooKT0+ZjIxLGNzc0ZvclBoYWJsZXQ6KCk9PnAyMSxjc3NGb3JQaG9uZTooKT0+aDIxLGNzc0ZvclRhYmxldDooKT0+dTIxLGRlc2t0b3A6KCk9Pmh0ZSxub3RlYm9vazooKT0+bXRlLHBoYWJsZXQ6KCk9Pnh0ZSxwaG9uZTooKT0+YnRlLHRhYmxldDooKT0+Z3RlfSk7dmFyIGh0ZSxtdGUsZ3RlLHh0ZSxidGUsZDIxLGYyMSx1MjEscDIxLGgyMSx2dGU9bigoKT0+e3E2KCk7Z3IoKTtodGU9MTYwMCxtdGU9MTI0MCxndGU9MTAyNCx4dGU9NjAwLGJ0ZT00MDAsZDIxPXQ9PkJ0KGAKICAgIEBjb250YWluZXIgd2NjVG9vbHNWaWV3cG9ydCAobWluLXdpZHRoOiAke2h0ZX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWluLXdpZHRoOiAke2h0ZX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICBgKSxmMjE9dD0+QnQoYAogICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0IChtYXgtd2lkdGg6ICR7bXRlfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogICAgQG1lZGlhIChtYXgtd2lkdGg6ICR7bXRlfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApLHUyMT10PT5CdChgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtndGV9cHgpIHsKICAgICAgJHt0LmNzc1RleHR9CiAgICB9CiAgICBAbWVkaWEgKG1heC13aWR0aDogJHtndGV9cHgpIHsKICAgICAgJHt0LmNzc1RleHR9CiAgICB9CiAgYCkscDIxPXQ9PkJ0KGAKICAgIEBjb250YWluZXIgd2NjVG9vbHNWaWV3cG9ydCAobWF4LXdpZHRoOiAke3h0ZX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke3h0ZX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICBgKSxoMjE9dD0+QnQoYAogICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0IChtYXgtd2lkdGg6ICR7YnRlfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogICAgQG1lZGlhIChtYXgtd2lkdGg6ICR7YnRlfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApfSk7dmFyIElxLE0ydD1uKCgpPT57SDYoKTtJcT1jbGFzc3tkb210b29sc0luc3RhbmNlO3Njcm9sbENhbGxiYWNrcz1bXTtsZW5pc0luc3RhbmNlPW51bGw7aGFuZGxlTmF0aXZlU2Nyb2xsPWU9Pnt0aGlzLmV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKX07aGFuZGxlTGVuaXNTY3JvbGw9ZT0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfTtjb25zdHJ1Y3RvcihlKXt0aGlzLmRvbXRvb2xzSW5zdGFuY2U9ZSx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl9c3dlZXRTY3JvbGxlcj1uZXcgTnEuZGVmYXVsdCh7fSk7YXN5bmMgdG9FbGVtZW50KGUsYSl7dGhpcy5zd2VldFNjcm9sbGVyLnRvRWxlbWVudChlLGEpLGF3YWl0IGZ0LmRlbGF5Rm9yKGEuZHVyYXRpb24pfWFzeW5jIGRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpe2xldCBlPVZlLmRlZmVyKCksYT0xMDAscj0zLGk9Ljc1LG89W107ZnVuY3Rpb24gcyhmKXtvLnB1c2goZi5kZWx0YVkpLG8ubGVuZ3RoPj1hJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixzKSxsKCkpfWZ1bmN0aW9uIGwoKXtsZXQgZj1vLmxlbmd0aC0xLGM9MDtmb3IobGV0IGQ9MDtkPGY7ZCsrKU1hdGguYWJzKG9bZCsxXS1vW2RdKTw9ciYmYysrO2MvZj49aT8oY29uc29sZS5sb2coIlNtb290aCBzY3JvbGxpbmcgZGV0ZWN0ZWQuIiksZS5yZXNvbHZlKCEwKSk6KGNvbnNvbGUubG9nKCJTbW9vdGggc2Nyb2xsaW5nIE5PVCBkZXRlY3RlZC4iKSxlLnJlc29sdmUoITEpKX1yZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixzKSxlLnByb21pc2V9YXN5bmMgZW5hYmxlTGVuaXNTY3JvbGwoZSl7bGV0IGE9bmV3IE5kKHthdXRvUmFmOiEwfSk7aWYoZT8uZGlzYWJsZU9uTmF0aXZlU21vb3RoU2Nyb2xsJiZhd2FpdCB0aGlzLmRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpKXthLmRlc3Ryb3koKTtyZXR1cm59dGhpcy5sZW5pc0luc3RhbmNlPWEsdGhpcy5kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpLHRoaXMuYXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpO2xldCByPWEuZGVzdHJveS5iaW5kKGEpO2EuZGVzdHJveT0oKT0+e3IoKSx0aGlzLmRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5sZW5pc0luc3RhbmNlPW51bGx9fW9uU2Nyb2xsKGUpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLnB1c2goZSl9ZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLmZvckVhY2goZT0+e3RyeXtlKCl9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcigiRXJyb3IgaW4gc2Nyb2xsIGNhbGxiYWNrOiIsYSl9fSl9YXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCl9ZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCl9YXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNJbnN0YW5jZSYmdGhpcy5sZW5pc0luc3RhbmNlLm9uKCJzY3JvbGwiLHRoaXMuaGFuZGxlTGVuaXNTY3JvbGwpfWRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmxlbmlzSW5zdGFuY2UmJnRoaXMubGVuaXNJbnN0YW5jZS5vZmYoInNjcm9sbCIsdGhpcy5oYW5kbGVMZW5pc1Njcm9sbCl9fX0pO3ZhciBGcSx6MnQ9bigoKT0+e3E2KCk7SDYoKTtGcT1jbGFzc3tkb210b29sc1JlZjtnb0JyaWdodEJvb2xlYW49ITE7cHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIpO3RoZW1lT2JzZXJ2YWJsZT1uZXcgQ3Qucnhqcy5SZXBsYXlTdWJqZWN0KDEpO2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tdG9vbHNSZWY9ZSx0aGlzLmdvQnJpZ2h0Qm9vbGVhbj10aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5tYXRjaGVzLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYT0+e3RoaXMuZ29CcmlnaHRCb29sZWFuPWEubWF0Y2hlcyx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9KSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9YXN5bmMgZW5hYmxlQXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2UoKXtkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LnN0eWxlJiZ0aGlzLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoe25leHQ6ZT0+e2RvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZD1lPyIjZmZmIjoiIzAwMCJ9fSl9YXN5bmMgdXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKXt0aGlzLnRoZW1lT2JzZXJ2YWJsZS5uZXh0KHRoaXMuZ29CcmlnaHRCb29sZWFuKX1nb0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSEwLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1nb0RhcmsoKXt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj0hMSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9dG9nZ2xlRGFya0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSF0aGlzLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9fX0pO3ZhciB5dGUsT3EsazJ0PW4oKCk9PntINigpOyhmdW5jdGlvbih0KXt0W3QuQmFja3NwYWNlPThdPSJCYWNrc3BhY2UiLHRbdC5UYWI9OV09IlRhYiIsdFt0LkVudGVyPTEzXT0iRW50ZXIiLHRbdC5TaGlmdD0xNl09IlNoaWZ0Iix0W3QuQ3RybD0xN109IkN0cmwiLHRbdC5BbHQ9MThdPSJBbHQiLHRbdC5QYXVzZUJyZWFrPTE5XT0iUGF1c2VCcmVhayIsdFt0LkNhcHNMb2NrPTIwXT0iQ2Fwc0xvY2siLHRbdC5Fc2NhcGU9MjddPSJFc2NhcGUiLHRbdC5TcGFjZT0zMl09IlNwYWNlIix0W3QuUGFnZVVwPTMzXT0iUGFnZVVwIix0W3QuUGFnZURvd249MzRdPSJQYWdlRG93biIsdFt0LkVuZD0zNV09IkVuZCIsdFt0LkhvbWU9MzZdPSJIb21lIix0W3QuTGVmdEFycm93PTM3XT0iTGVmdEFycm93Iix0W3QuVXBBcnJvdz0zOF09IlVwQXJyb3ciLHRbdC5SaWdodEFycm93PTM5XT0iUmlnaHRBcnJvdyIsdFt0LkRvd25BcnJvdz00MF09IkRvd25BcnJvdyIsdFt0Lkluc2VydD00NV09Ikluc2VydCIsdFt0LkRlbGV0ZT00Nl09IkRlbGV0ZSIsdFt0Llplcm89NDhdPSJaZXJvIix0W3QuQ2xvc2VkUGFyZW49NDhdPSJDbG9zZWRQYXJlbiIsdFt0Lk9uZT00OV09Ik9uZSIsdFt0LkV4Y2xhbWF0aW9uTWFyaz00OV09IkV4Y2xhbWF0aW9uTWFyayIsdFt0LlR3bz01MF09IlR3byIsdFt0LkF0U2lnbj01MF09IkF0U2lnbiIsdFt0LlRocmVlPTUxXT0iVGhyZWUiLHRbdC5Qb3VuZFNpZ249NTFdPSJQb3VuZFNpZ24iLHRbdC5IYXNoPTUxXT0iSGFzaCIsdFt0LkZvdXI9NTJdPSJGb3VyIix0W3QuRG9sbGFyU2lnbj01Ml09IkRvbGxhclNpZ24iLHRbdC5GaXZlPTUzXT0iRml2ZSIsdFt0LlBlcmNlbnRTaWduPTUzXT0iUGVyY2VudFNpZ24iLHRbdC5TaXg9NTRdPSJTaXgiLHRbdC5DYXJldD01NF09IkNhcmV0Iix0W3QuSGF0PTU0XT0iSGF0Iix0W3QuU2V2ZW49NTVdPSJTZXZlbiIsdFt0LkFtcGVyc2FuZD01NV09IkFtcGVyc2FuZCIsdFt0LkVpZ2h0PTU2XT0iRWlnaHQiLHRbdC5TdGFyPTU2XT0iU3RhciIsdFt0LkFzdGVyaWs9NTZdPSJBc3RlcmlrIix0W3QuTmluZT01N109Ik5pbmUiLHRbdC5PcGVuUGFyZW49NTddPSJPcGVuUGFyZW4iLHRbdC5BPTY1XT0iQSIsdFt0LkI9NjZdPSJCIix0W3QuQz02N109IkMiLHRbdC5EPTY4XT0iRCIsdFt0LkU9NjldPSJFIix0W3QuRj03MF09IkYiLHRbdC5HPTcxXT0iRyIsdFt0Lkg9NzJdPSJIIix0W3QuST03M109IkkiLHRbdC5KPTc0XT0iSiIsdFt0Lks9NzVdPSJLIix0W3QuTD03Nl09IkwiLHRbdC5NPTc3XT0iTSIsdFt0Lk49NzhdPSJOIix0W3QuTz03OV09Ik8iLHRbdC5QPTgwXT0iUCIsdFt0LlE9ODFdPSJRIix0W3QuUj04Ml09IlIiLHRbdC5TPTgzXT0iUyIsdFt0LlQ9ODRdPSJUIix0W3QuVT04NV09IlUiLHRbdC5WPTg2XT0iViIsdFt0Llc9ODddPSJXIix0W3QuWD04OF09IlgiLHRbdC5ZPTg5XT0iWSIsdFt0Llo9OTBdPSJaIix0W3QuTGVmdFdpbmRvd0tleT05MV09IkxlZnRXaW5kb3dLZXkiLHRbdC5SaWdodFdpbmRvd0tleT05Ml09IlJpZ2h0V2luZG93S2V5Iix0W3QuU2VsZWN0S2V5PTkzXT0iU2VsZWN0S2V5Iix0W3QuTnVtcGFkMD05Nl09Ik51bXBhZDAiLHRbdC5OdW1wYWQxPTk3XT0iTnVtcGFkMSIsdFt0Lk51bXBhZDI9OThdPSJOdW1wYWQyIix0W3QuTnVtcGFkMz05OV09Ik51bXBhZDMiLHRbdC5OdW1wYWQ0PTEwMF09Ik51bXBhZDQiLHRbdC5OdW1wYWQ1PTEwMV09Ik51bXBhZDUiLHRbdC5OdW1wYWQ2PTEwMl09Ik51bXBhZDYiLHRbdC5OdW1wYWQ3PTEwM109Ik51bXBhZDciLHRbdC5OdW1wYWQ4PTEwNF09Ik51bXBhZDgiLHRbdC5OdW1wYWQ5PTEwNV09Ik51bXBhZDkiLHRbdC5NdWx0aXBseT0xMDZdPSJNdWx0aXBseSIsdFt0LkFkZD0xMDddPSJBZGQiLHRbdC5TdWJ0cmFjdD0xMDldPSJTdWJ0cmFjdCIsdFt0LkRlY2ltYWxQb2ludD0xMTBdPSJEZWNpbWFsUG9pbnQiLHRbdC5EaXZpZGU9MTExXT0iRGl2aWRlIix0W3QuRjE9MTEyXT0iRjEiLHRbdC5GMj0xMTNdPSJGMiIsdFt0LkYzPTExNF09IkYzIix0W3QuRjQ9MTE1XT0iRjQiLHRbdC5GNT0xMTZdPSJGNSIsdFt0LkY2PTExN109IkY2Iix0W3QuRjc9MTE4XT0iRjciLHRbdC5GOD0xMTldPSJGOCIsdFt0LkY5PTEyMF09IkY5Iix0W3QuRjEwPTEyMV09IkYxMCIsdFt0LkYxMT0xMjJdPSJGMTEiLHRbdC5GMTI9MTIzXT0iRjEyIix0W3QuTnVtTG9jaz0xNDRdPSJOdW1Mb2NrIix0W3QuU2Nyb2xsTG9jaz0xNDVdPSJTY3JvbGxMb2NrIix0W3QuU2VtaUNvbG9uPTE4Nl09IlNlbWlDb2xvbiIsdFt0LkVxdWFscz0xODddPSJFcXVhbHMiLHRbdC5Db21tYT0xODhdPSJDb21tYSIsdFt0LkRhc2g9MTg5XT0iRGFzaCIsdFt0LlBlcmlvZD0xOTBdPSJQZXJpb2QiLHRbdC5VbmRlclNjb3JlPTE4OV09IlVuZGVyU2NvcmUiLHRbdC5QbHVzU2lnbj0xODddPSJQbHVzU2lnbiIsdFt0LkZvcndhcmRTbGFzaD0xOTFdPSJGb3J3YXJkU2xhc2giLHRbdC5UaWxkZT0xOTJdPSJUaWxkZSIsdFt0LkdyYXZlQWNjZW50PTE5Ml09IkdyYXZlQWNjZW50Iix0W3QuT3BlbkJyYWNrZXQ9MjE5XT0iT3BlbkJyYWNrZXQiLHRbdC5DbG9zZWRCcmFja2V0PTIyMV09IkNsb3NlZEJyYWNrZXQiLHRbdC5RdW90ZT0yMjJdPSJRdW90ZSJ9KSh5dGV8fCh5dGU9e30pKTtPcT1jbGFzc3tkb21Ob2RlO21hcENvbWJvc1RvSGFuZGxlcnM9bmV3IE1hcDtwcmVzc2VkS2V5cz1uZXcgU2V0O2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tTm9kZT1lLHRoaXMuc3RhcnRMaXN0ZW5pbmcoKX1rZXlFbnVtPXl0ZTtvbihlKXtsZXQgYT1uZXcgQ3Qucnhqcy5TdWJqZWN0O3JldHVybiB0aGlzLnJlZ2lzdGVyS2V5cyhlLGEpLGF9dHJpZ2dlcktleVByZXNzKGUpe2ZvcihsZXQgYSBvZiBlKXRoaXMucHJlc3NlZEtleXMuYWRkKGEpO3RoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHMoKTtmb3IobGV0IGEgb2YgZSl0aGlzLnByZXNzZWRLZXlzLmRlbGV0ZShhKX1zdGFydExpc3RlbmluZygpe3RoaXMuZG9tTm9kZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleURvd24pLHRoaXMuZG9tTm9kZS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5oYW5kbGVLZXlVcCl9c3RvcExpc3RlbmluZygpe3RoaXMuZG9tTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleURvd24pLHRoaXMuZG9tTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5oYW5kbGVLZXlVcCl9Y2xlYXIoKXt0aGlzLnN0b3BMaXN0ZW5pbmcoKSx0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuY2xlYXIoKSx0aGlzLnByZXNzZWRLZXlzLmNsZWFyKCl9aGFuZGxlS2V5RG93bj1lPT57dGhpcy5wcmVzc2VkS2V5cy5hZGQoZS5rZXlDb2RlKSx0aGlzLmNoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKGUpfTtjaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cyhlKXt0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuZm9yRWFjaCgoYSxyKT0+e3RoaXMuYXJlQWxsS2V5c1ByZXNzZWQocikmJmEubmV4dChlKX0pfWhhbmRsZUtleVVwPWU9Pnt0aGlzLnByZXNzZWRLZXlzLmRlbGV0ZShlLmtleUNvZGUpfTthcmVBbGxLZXlzUHJlc3NlZChlKXtsZXQgYT0hMDtyZXR1cm4gZS5mb3JFYWNoKHI9Pnt0aGlzLnByZXNzZWRLZXlzLmhhcyhyKXx8KGE9ITEpfSksYX1yZWdpc3RlcktleXMoZSxhKXtpZighdGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLmhhcyhlKSl0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuc2V0KGUsYSk7ZWxzZSByZXR1cm4gdGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLmdldChlKX19fSk7dmFyIEMyLHE2PW4oKCk9PntINigpO3Z0ZSgpO00ydCgpO0FxKCk7ejJ0KCk7azJ0KCk7QzI9Y2xhc3MgdHtzdGF0aWMgaW5pdGlhbGl6YXRpb25Qcm9taXNlPW51bGw7c3RhdGljIGFzeW5jIHNldHVwRG9tVG9vbHMoZT17fSl7cmV0dXJuIWUuaWdub3JlR2xvYmFsJiZ0LmluaXRpYWxpemF0aW9uUHJvbWlzZT9hd2FpdCB0LmluaXRpYWxpemF0aW9uUHJvbWlzZTplLmlnbm9yZUdsb2JhbD9uZXcgdChlKToodC5pbml0aWFsaXphdGlvblByb21pc2U9KGFzeW5jKCk9PntsZXQgYTtpZihnbG9iYWxUaGlzLmRlZXNEb21Ub29scylhPWdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO2Vsc2V7Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM9bmV3IHQoZSksYT1nbG9iYWxUaGlzLmRlZXNEb21Ub29scztsZXQgcj0oKT0+eyhkb2N1bWVudC5yZWFkeVN0YXRlPT09ImludGVyYWN0aXZlInx8ZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpJiYoYS5lbGVtZW50cy5oZWFkRWxlbWVudD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJoZWFkIiksYS5lbGVtZW50cy5ib2R5RWxlbWVudD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IiksYS5rZXlib2FyZD1uZXcgT3EoZG9jdW1lbnQuYm9keSksYS5kb21SZWFkeS5yZXNvbHZlKCkpfTtkb2N1bWVudC5yZWFkeVN0YXRlPT09ImludGVyYWN0aXZlInx8ZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSI/cigpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHIpLGEuZG9tVG9vbHNSZWFkeS5yZXNvbHZlKCl9cmV0dXJuIGF3YWl0IGEuZG9tVG9vbHNSZWFkeS5wcm9taXNlLGF9KSgpLGF3YWl0IHQuaW5pdGlhbGl6YXRpb25Qcm9taXNlKX1zdGF0aWMgZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCl7aWYoIWdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzKXRocm93IG5ldyBFcnJvcigiWW91IHRyaWVkIHRvIGFjY2VzcyBkb210b29scyBzeW5jaHJvbm91c2x5IHRvbyBlYXJseSIpO3JldHVybiBnbG9iYWxUaGlzLmRlZXNEb21Ub29sc31lbGVtZW50cz17aGVhZEVsZW1lbnQ6bnVsbCxib2R5RWxlbWVudDpudWxsfTt3ZWJzZXR1cD1uZXcgRWQoe21ldGFPYmplY3Q6e3RpdGxlOiJsb2FkaW5nLi4uIn19KTtzbWFydHN0YXRlPW5ldyBZby5TbWFydHN0YXRlO2RvbVRvb2xzU3RhdGVQYXJ0PXRoaXMuc21hcnRzdGF0ZS5nZXRTdGF0ZVBhcnQoImRvbXRvb2xzIix7dmlydHVhbFZpZXdwb3J0OiJuYXRpdmUiLGp3dDpudWxsfSk7cm91dGVyPW5ldyBHby5TbWFydFJvdXRlcih7ZGVidWc6ITF9KTtjb252ZW5pZW5jZT17dHlwZWRyZXF1ZXN0OkYyLHNtYXJ0ZGVsYXk6ZnQsc21hcnRqc29uOm8xLHNtYXJ0dXJsOlpvfTtkZWVzQ29tbXM9bmV3IFk4LkRlZXNDb21tcztzY3JvbGxlcj1uZXcgSXEodGhpcyk7dGhlbWVNYW5hZ2VyPW5ldyBGcSh0aGlzKTtrZXlib2FyZD1udWxsO2RvbVRvb2xzUmVhZHk9VmUuZGVmZXIoKTtkb21SZWFkeT1WZS5kZWZlcigpO2dsb2JhbFN0eWxlc1JlYWR5PVZlLmRlZmVyKCk7Y29uc3RydWN0b3IoZSl7fXJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwPW5ldyBQZC5TdHJpbmdtYXA7cnVuT25jZVJlc3VsdE1hcD1uZXcgUGQuRmFzdE1hcDtydW5PbmNlRXJyb3JNYXA9bmV3IFBkLkZhc3RNYXA7YXN5bmMgcnVuT25jZShlLGEpe2xldCByPWAke2V9K3J1bm5pbmdDaGVja2A7aWYoIXRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuY2hlY2tTdHJpbmcoZSkpe3RoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuYWRkU3RyaW5nKGUpLHRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuYWRkU3RyaW5nKHIpO3RyeXtsZXQgaT1hd2FpdCBhKCk7dGhpcy5ydW5PbmNlUmVzdWx0TWFwLmFkZFRvTWFwKGUsaSl9Y2F0Y2goaSl7dGhpcy5ydW5PbmNlRXJyb3JNYXAuYWRkVG9NYXAoZSxpKX1maW5hbGx5e3RoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAucmVtb3ZlU3RyaW5nKHIpfX1yZXR1cm4gYXdhaXQgdGhpcy5ydW5PbmNlVHJhY2tlclN0cmluZ01hcC5yZWdpc3RlclVudGlsVHJ1ZShpPT4haS5pbmNsdWRlcyhyKSwoKT0+e2xldCBpPXRoaXMucnVuT25jZUVycm9yTWFwLmdldEJ5S2V5KGUpO2lmKGkpdGhyb3cgaTtyZXR1cm4gdGhpcy5ydW5PbmNlUmVzdWx0TWFwLmdldEJ5S2V5KGUpfSl9YXN5bmMgc2V0R2xvYmFsU3R5bGVzKGUpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2EudHlwZT0idGV4dC9jc3MiLGEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSkpLHRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnQuYXBwZW5kQ2hpbGQoYSl9YXN5bmMgc2V0RXh0ZXJuYWxTY3JpcHQoZSl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCBhPVZlLmRlZmVyKCkscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtyLnNyYz1lLHIuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXthLnJlc29sdmUoKX0pLChkb2N1bWVudC5oZWFkfHxkb2N1bWVudC5ib2R5KS5hcHBlbmQociksYXdhaXQgYS5wcm9taXNlfWFzeW5jIHNldEV4dGVybmFsQ3NzKGUpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTthLnJlbD0ic3R5bGVzaGVldCIsYS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixhLmhyZWY9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZChhKX1hc3luYyBzZXRXZWJzaXRlSW5mbyhlKXthd2FpdCB0aGlzLndlYnNldHVwLnNldHVwKGUpLGF3YWl0IHRoaXMud2Vic2V0dXAucmVhZHlQcm9taXNlfX19KTt2YXIgQnEsUzJ0LEMydD1uKCgpPT57cTYoKTtncigpO0JxPSgoKT0+e2xldCB0PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIE9TIFgiKT09PS0xP3RlYGAuY3NzVGV4dDoiIjtyZXR1cm4gdGVgCiAgICAvKiB3aWR0aCAqLwogICAgOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgIHdpZHRoOiAwcHg7CiAgICB9CiAgICBib2R5IHsKICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOwogICAgfQogIGAuY3NzVGV4dH0pKCksUzJ0PXRlYAogIC8qCiAgQGZvbnQtZmFjZSB7CiAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJzsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbWF0ZXJpYWxpY29ucy92NDIvZmxVaFJxNnR6WmNsUUVKLVZkZy1JdWlhRHNOY0loUTh0US53b2ZmMikKICAgICAgZm9ybWF0KCd3b2ZmMicpOwogIH0gKi8KCiAgLyogZ2xvYmFsIGJvZHkgc3R5bGVzICovCiAgYm9keSB7CiAgICBtYXJnaW46IDBweDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogc2Nyb2xsIGJhciBzdHlsZXMgKi8KICAke0J0KEJxKX0KYC5jc3NUZXh0fSk7dmFyIGMxPXt9O2V0KGMxLHtzZXR1cDooKT0+eDIxLHN0YXRpY1N0eWxlczooKT0+bTIxLHN0eWxlczooKT0+ZzIxfSk7dmFyIG0yMSxnMjEseDIxLEwydD1uKCgpPT57SDYoKTtxNigpO0MydCgpO2dyKCk7bTIxPXRlYAogICogewogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzLCBjb2xvciAwLjFzOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIDpob3N0IHsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogIH0KCiAgJHtCdChCcSl9CmAsZzIxPU1gCiAgPHN0eWxlPgogICAgKiB7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KCiAgICA6aG9zdCB7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICB9CgogICAgJHtCcX0KICA8L3N0eWxlPgpgLHgyMT1hc3luYyh0LGU9e30pPT57bGV0IGE9YXdhaXQgQzIuc2V0dXBEb21Ub29scyhlKTtyZXR1cm4gYS5ydW5PbmNlKCJlbGVtZW50QmFzaWNTZXR1cCIsYXN5bmMoKT0+e2Euc2V0R2xvYmFsU3R5bGVzKFMydCl9KSxhfX0pO3ZhciBScT17fTtldChScSx7Y3NzR3JpZENvbHVtbnM6KCk9PmIyMX0pO3ZhciBiMjEsVDJ0PW4oKCk9PntiMjE9KHQsZSk9PntsZXQgYT0iIjtmb3IobGV0IHI9MDtyPHQ7cisrKWErPWAgY2FsYygoMTAwJS8ke3R9KSAtICgke2UqKHQtMSl9cHgvJHt0fSkpYDtyZXR1cm4gYX19KTt2YXIgQXQ9e307ZXQoQXQse1N3ZWV0U2Nyb2xsOigpPT53dGUuZGVmYXVsdCxzbWFydGRlbGF5OigpPT5mdCxzbWFydG1hcmtkb3duOigpPT5PNixzbWFydHByb21pc2U6KCk9PlZlLHNtYXJ0cm91dGVyOigpPT5HbyxzbWFydHJ4OigpPT5DdCxzbWFydHN0YXRlOigpPT5ZbyxzbWFydHN0cmluZzooKT0+TGEsc21hcnR1cmw6KCk9PlpvLHR5cGVkcmVxdWVzdDooKT0+RjJ9KTt2YXIgd3RlLF8ydD1uKCgpPT57aWkoKTtTZWUoKTtwMigpO3d0ZT1OMihwdGUoKSwxKTtGZWUoKTtFZWUoKTtWYSgpO1A4KCk7QmVlKCk7ajgoKX0pO3ZhciBzdD17fTtldChzdCx7RG9tVG9vbHM6KCk9PkMyLFR5cGVkUmVxdWVzdDooKT0+VTgsYnJlYWtwb2ludHM6KCk9PlZyLGNzczooKT0+UnEsZWxlbWVudEJhc2ljOigpPT5jMSxwbHVnaW5zOigpPT5BdH0pO3ZhciBTdD1uKCgpPT57VkllKCk7TDJ0KCk7dnRlKCk7VDJ0KCk7cTYoKTtqOCgpO0FxKCk7XzJ0KCl9KTt2YXIgTXRlLEtvLHp0ZT1uKCgpPT57TXRlPU4yKGxGKCksMSk7VmEoKTtncigpO3FJZSgpO1N0KCk7S289e2Nzczp0ZSx1bnNhZmVDU1M6QnQsTGl0RWxlbWVudDp0aSxwcm9wZXJ0eTpEfX0pO3ZhciBIcSwkMnQ9bigoKT0+e2dyKCk7enRlKCk7U3QoKTtIcT1jbGFzcyB0e3N0YXRpYyBpbnN0YW5jZT1udWxsO3N0YXRpYyBnZXRTaW5nbGV0b24oKXtyZXR1cm4gdC5pbnN0YW5jZXx8KHQuaW5zdGFuY2U9bmV3IHQpLHQuaW5zdGFuY2V9ZG9tdG9vbHNQcm9taXNlPUMyLnNldHVwRG9tVG9vbHMoKTtnb0JyaWdodD0hMTtiZFZhclRyaXBsZXRTdG9yZT1bXTtjb25zdHJ1Y3Rvcigpe3RoaXMuZG9tdG9vbHNQcm9taXNlLnRoZW4oYXN5bmMgZT0+e2UudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoYXN5bmMgYT0+e3RoaXMuZ29CcmlnaHQ9YSxhd2FpdCBlLmRvbVJlYWR5LnByb21pc2U7Zm9yKGxldCByIG9mIHRoaXMuYmRWYXJUcmlwbGV0U3RvcmUpZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShyLmNzc1Zhck5hbWUsdGhpcy5nb0JyaWdodD9yLmJyaWdodFZhbHVlOnIuZGFya1ZhbHVlKX0pfSl9Z2V0IGRlZmF1bHRTdHlsZXMoKXtyZXR1cm4gYzEuc3RhdGljU3R5bGVzfWNzc0ZvckRlc2t0b3AoZSl7cmV0dXJuIEJ0KFZyLmNzc0ZvckRlc2t0b3AoZSkpfWNzc0Zvck5vdGVib29rKGUpe3JldHVybiBCdChWci5jc3NGb3JOb3RlYm9vayhlKSl9Y3NzRm9yVGFibGV0KGUpe3JldHVybiBCdChWci5jc3NGb3JUYWJsZXQoZSkpfWNzc0ZvclBoYWJsZXQoZSl7cmV0dXJuIEJ0KFZyLmNzc0ZvclBoYWJsZXQoZSkpfWNzc0ZvclBob25lKGUpe3JldHVybiBCdChWci5jc3NGb3JQaG9uZShlKSl9YmRUaGVtZShlLGEpe2xldCByLGk7QzIuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCk/aT1DMi5nZXRHbG9iYWxEb21Ub29sc1N5bmMoKS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuP2U6YTppPWE7bGV0IG89dGhpcy5iZFZhclRyaXBsZXRTdG9yZS5maW5kKHM9PnMuZGFya1ZhbHVlPT09YSYmcy5icmlnaHRWYWx1ZT09PWUpO2lmKG8pcj1vLmNzc1Zhck5hbWU7ZWxzZXtsZXQgcz17Y3NzVmFyTmFtZTpgLS0ke010ZS51bmkoKX1gLGJyaWdodFZhbHVlOmUsZGFya1ZhbHVlOmF9O3RoaXMuYmRWYXJUcmlwbGV0U3RvcmUucHVzaChzKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIGw9Pnthd2FpdCBsLmRvbVJlYWR5LnByb21pc2UsZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShzLmNzc1Zhck5hbWUsaSl9KSxyPXMuY3NzVmFyTmFtZX1yZXR1cm4gS28udW5zYWZlQ1NTKGB2YXIoJHtyfSwgJHtpfSlgKX1jc3NHcmlkQ29sdW1ucz0oZSxhKT0+e2xldCByPSIiO2ZvcihsZXQgaT0wO2k8ZTtpKyspcis9YCBjYWxjKCgxMDAlLyR7ZX0pIC0gKCR7YSooZS0xKX1weC8ke2V9KSlgO3JldHVybiBLby51bnNhZmVDU1Mocil9fX0pO3ZhciBrdGUsdjIxLEUydCx5MjEsRDJ0LHFxLEpvLHcyMSxNMjEsTjJ0PW4oKCk9PntCYSgpO2t0ZT1TeW1ib2wuZm9yKCIiKSx2MjE9dD0+e2lmKHQ/LnI9PT1rdGUpcmV0dXJuIHQ/Ll8kbGl0U3RhdGljJH0sRTJ0PXQ9Pih7XyRsaXRTdGF0aWMkOnQscjprdGV9KSx5MjE9KHQsLi4uZSk9Pih7XyRsaXRTdGF0aWMkOmUucmVkdWNlKChhLHIsaSk9PmErKG89PntpZihvLl8kbGl0U3RhdGljJCE9PXZvaWQgMClyZXR1cm4gby5fJGxpdFN0YXRpYyQ7dGhyb3cgRXJyb3IoYFZhbHVlIHBhc3NlZCB0byAnbGl0ZXJhbCcgZnVuY3Rpb24gbXVzdCBiZSBhICdsaXRlcmFsJyByZXN1bHQ6ICR7b30uIFVzZSAndW5zYWZlU3RhdGljJyB0byBwYXNzIG5vbi1saXRlcmFsIHZhbHVlcywgYnV0CiAgICAgICAgICAgIHRha2UgY2FyZSB0byBlbnN1cmUgcGFnZSBzZWN1cml0eS5gKX0pKHIpK3RbaSsxXSx0WzBdKSxyOmt0ZX0pLEQydD1uZXcgTWFwLHFxPXQ9PihlLC4uLmEpPT57bGV0IHI9YS5sZW5ndGgsaSxvLHM9W10sbD1bXSxmLGM9MCx1PSExO2Zvcig7YzxyOyl7Zm9yKGY9ZVtjXTtjPHImJihvPWFbY10sKGk9djIxKG8pKSE9PXZvaWQgMCk7KWYrPWkrZVsrK2NdLHU9ITA7YyE9PXImJmwucHVzaChvKSxzLnB1c2goZiksYysrfWlmKGM9PT1yJiZzLnB1c2goZVtyXSksdSl7bGV0IGQ9cy5qb2luKCIkJGxpdCQkIik7KGU9RDJ0LmdldChkKSk9PT12b2lkIDAmJihzLnJhdz1zLEQydC5zZXQoZCxlPXMpKSxhPWx9cmV0dXJuIHQoZSwuLi5hKX0sSm89cXEoTSksdzIxPXFxKFJqKSxNMjE9cXEoSGopfSk7dmFyIFAydD1uKCgpPT57TjJ0KCl9KTt2YXIgVXIsRTEsJGEsVGk9bigoKT0+e1VyPXtBVFRSSUJVVEU6MSxDSElMRDoyLFBST1BFUlRZOjMsQk9PTEVBTl9BVFRSSUJVVEU6NCxFVkVOVDo1LEVMRU1FTlQ6Nn0sRTE9dD0+KC4uLmUpPT4oe18kbGl0RGlyZWN0aXZlJDp0LHZhbHVlczplfSksJGE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7fWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQVQoZSxhLHIpe3RoaXMuXyRDdD1lLHRoaXMuXyRBTT1hLHRoaXMuXyRDaT1yfV8kQVMoZSxhKXtyZXR1cm4gdGhpcy51cGRhdGUoZSxhKX11cGRhdGUoZSxhKXtyZXR1cm4gdGhpcy5yZW5kZXIoLi4uYSl9fX0pO3ZhciBWNixWcSxJMnQ9bigoKT0+e0JhKCk7VGkoKTtWNj1jbGFzcyBleHRlbmRzICRhe2NvbnN0cnVjdG9yKGUpe2lmKHN1cGVyKGUpLHRoaXMuaXQ9aDEsZS50eXBlIT09VXIuQ0hJTEQpdGhyb3cgRXJyb3IodGhpcy5jb25zdHJ1Y3Rvci5kaXJlY3RpdmVOYW1lKyIoKSBjYW4gb25seSBiZSB1c2VkIGluIGNoaWxkIGJpbmRpbmdzIil9cmVuZGVyKGUpe2lmKGU9PT1oMXx8ZT09bnVsbClyZXR1cm4gdGhpcy5fdD12b2lkIDAsdGhpcy5pdD1lO2lmKGU9PT1sMSlyZXR1cm4gZTtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgRXJyb3IodGhpcy5jb25zdHJ1Y3Rvci5kaXJlY3RpdmVOYW1lKyIoKSBjYWxsZWQgd2l0aCBhIG5vbi1zdHJpbmcgdmFsdWUiKTtpZihlPT09dGhpcy5pdClyZXR1cm4gdGhpcy5fdDt0aGlzLml0PWU7bGV0IGE9W2VdO3JldHVybiBhLnJhdz1hLHRoaXMuX3Q9e18kbGl0VHlwZSQ6dGhpcy5jb25zdHJ1Y3Rvci5yZXN1bHRUeXBlLHN0cmluZ3M6YSx2YWx1ZXM6W119fX07VjYuZGlyZWN0aXZlTmFtZT0idW5zYWZlSFRNTCIsVjYucmVzdWx0VHlwZT0xO1ZxPUUxKFY2KX0pO3ZhciBGMnQ9bigoKT0+e0kydCgpfSk7dmFyIGNlLFN0ZT1uKCgpPT57Y2U9dD0+KGUsYSk9PnthIT09dm9pZCAwP2EuYWRkSW5pdGlhbGl6ZXIoKCk9PntjdXN0b21FbGVtZW50cy5kZWZpbmUodCxlKX0pOmN1c3RvbUVsZW1lbnRzLmRlZmluZSh0LGUpfX0pO3ZhciBPMnQ9bigoKT0+e1N0ZSgpfSk7ZnVuY3Rpb24gbGUodCl7cmV0dXJuIEQoey4uLnQsc3RhdGU6ITAsYXR0cmlidXRlOiExfSl9dmFyIEIydD1uKCgpPT57ck8oKTt9KTtmdW5jdGlvbiB6MjEodCl7cmV0dXJuKGUsYSk9PntsZXQgcj10eXBlb2YgZT09ImZ1bmN0aW9uIj9lOmVbYV07T2JqZWN0LmFzc2lnbihyLHQpfX12YXIgUjJ0PW4oKCk9Pnt9KTt2YXIgRGEsVTY9bigoKT0+e0RhPSh0LGUsYSk9PihhLmNvbmZpZ3VyYWJsZT0hMCxhLmVudW1lcmFibGU9ITAsUmVmbGVjdC5kZWNvcmF0ZSYmdHlwZW9mIGUhPSJvYmplY3QiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLGEpLGEpfSk7ZnVuY3Rpb24gSDJ0KHQsZSl7cmV0dXJuKGEscixpKT0+e2xldCBvPXM9PnMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3Rvcih0KT8/bnVsbDtpZihlKXtsZXR7Z2V0OnMsc2V0Omx9PXR5cGVvZiByPT0ib2JqZWN0Ij9hOmk/PygoKT0+e2xldCBmPVN5bWJvbCgpO3JldHVybntnZXQoKXtyZXR1cm4gdGhpc1tmXX0sc2V0KGMpe3RoaXNbZl09Y319fSkoKTtyZXR1cm4gRGEoYSxyLHtnZXQoKXtsZXQgZj1zLmNhbGwodGhpcyk7cmV0dXJuIGY9PT12b2lkIDAmJihmPW8odGhpcyksKGYhPT1udWxsfHx0aGlzLmhhc1VwZGF0ZWQpJiZsLmNhbGwodGhpcyxmKSksZn19KX1yZXR1cm4gRGEoYSxyLHtnZXQoKXtyZXR1cm4gbyh0aGlzKX19KX19dmFyIHEydD1uKCgpPT57VTYoKTt9KTtmdW5jdGlvbiBWMnQodCl7cmV0dXJuKGUsYSk9PkRhKGUsYSx7Z2V0KCl7cmV0dXJuKHRoaXMucmVuZGVyUm9vdD8/KGsyMT8/PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkpLnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSl9dmFyIGsyMSxVMnQ9bigoKT0+e1U2KCk7fSk7ZnVuY3Rpb24gajJ0KHQpe3JldHVybihlLGEpPT5EYShlLGEse2FzeW5jIGdldCgpe3JldHVybiBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3Rvcih0KT8/bnVsbH19KX12YXIgVzJ0PW4oKCk9PntVNigpO30pO2Z1bmN0aW9uIFMyMSh0KXtyZXR1cm4oZSxhKT0+e2xldHtzbG90OnIsc2VsZWN0b3I6aX09dD8/e30sbz0ic2xvdCIrKHI/YFtuYW1lPSR7cn1dYDoiOm5vdChbbmFtZV0pIik7cmV0dXJuIERhKGUsYSx7Z2V0KCl7bGV0IHM9dGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKG8pLGw9cz8uYXNzaWduZWRFbGVtZW50cyh0KT8/W107cmV0dXJuIGk9PT12b2lkIDA/bDpsLmZpbHRlcihmPT5mLm1hdGNoZXMoaSkpfX0pfX12YXIgRzJ0PW4oKCk9PntVNigpO30pO2Z1bmN0aW9uIEMyMSh0KXtyZXR1cm4oZSxhKT0+e2xldHtzbG90OnJ9PXQ/P3t9LGk9InNsb3QiKyhyP2BbbmFtZT0ke3J9XWA6Ijpub3QoW25hbWVdKSIpO3JldHVybiBEYShlLGEse2dldCgpe3JldHVybiB0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IoaSk/LmFzc2lnbmVkTm9kZXModCk/P1tdfX0pfX12YXIgWTJ0PW4oKCk9PntVNigpO30pO3ZhciBaMnQ9bigoKT0+e1N0ZSgpO3JPKCk7QjJ0KCk7UjJ0KCk7cTJ0KCk7VTJ0KCk7VzJ0KCk7RzJ0KCk7WTJ0KCl9KTt2YXIgWDJ0LFVxLHBlLFEydD1uKCgpPT57enRlKCk7WDJ0PWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sVXE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LHBlPSgoKT0+e2xldCB0PUtvLkxpdEVsZW1lbnQsZSxhPVtdLHI9W10saSxvPVtdLHM9W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtzdGF0aWN7bGV0IGY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUodFtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZT1bS28ucHJvcGVydHkoe3R5cGU6Qm9vbGVhbn0pXSxpPVtLby5wcm9wZXJ0eSgpXSxYMnQodGhpcyxudWxsLGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJnb0JyaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yz0+ImdvQnJpZ2h0ImluIGMsZ2V0OmM9PmMuZ29CcmlnaHQsc2V0OihjLHUpPT57Yy5nb0JyaWdodD11fX0sbWV0YWRhdGE6Zn0sYSxyKSxYMnQodGhpcyxudWxsLGkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb210b29scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yz0+ImRvbXRvb2xzImluIGMsZ2V0OmM9PmMuZG9tdG9vbHMsc2V0OihjLHUpPT57Yy5kb210b29scz11fX0sbWV0YWRhdGE6Zn0sbyxzKSxmJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX0jZT1VcSh0aGlzLGEsITEpO2dldCBnb0JyaWdodCgpe3JldHVybiB0aGlzLiNlfXNldCBnb0JyaWdodChmKXt0aGlzLiNlPWZ9ZG9tdG9vbHNQcm9taXNlPVVxKHRoaXMscik7I3Q9VXEodGhpcyxvLHZvaWQgMCk7Z2V0IGRvbXRvb2xzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRvbXRvb2xzKGYpe3RoaXMuI3Q9Zn1yeFN1YnNjcmlwdGlvbnM9KFVxKHRoaXMscyksW10pO3RoZW1lU3Vic2NyaXB0aW9uO2VsZW1lbnREb21SZWFkeURlZmVycmVkPXN0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCk7ZWxlbWVudERvbVJlYWR5PXRoaXMuZWxlbWVudERvbVJlYWR5RGVmZXJyZWQucHJvbWlzZTtjb25zdHJ1Y3RvcihmPXt9KXtzdXBlcigpLHRoaXMuZG9tdG9vbHNQcm9taXNlPXN0LmVsZW1lbnRCYXNpYy5zZXR1cCh0aGlzLGYpLHRoaXMuZG9tdG9vbHNQcm9taXNlLnRoZW4oYz0+e3RoaXMuZG9tdG9vbHM9Y30pfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtsZXQgZj1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnRoZW1lU3Vic2NyaXB0aW9uPWYudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoYz0+e3RoaXMuZ29CcmlnaHQ9Yyx0aGlzLnRoZW1lQ2hhbmdlZCYmdGhpcy50aGVtZUNoYW5nZWQoYyl9KSx0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudGhlbWVTdWJzY3JpcHRpb24pO2ZvcihsZXQgYyBvZiB0aGlzLnN0YXJ0dXBGdW5jdGlvbnMpYXdhaXQgYygpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlZXNFbGVtZW50Q29ubmVjdGVkIikpfWZpcnN0VXBkYXRlZChmKXtzdXBlci5maXJzdFVwZGF0ZWQoZiksdGhpcy5lbGVtZW50RG9tUmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9c3RhcnR1cEZ1bmN0aW9ucz1bXTtyZWdpc3RlclN0YXJ0dXBGdW5jdGlvbihmKXt0aGlzLnN0YXJ0dXBGdW5jdGlvbnMucHVzaChmKX1nYXJiYWdlRnVuY3Rpb25zPVtdO3JlZ2lzdGVyR2FyYmFnZUZ1bmN0aW9uKGYpe3RoaXMuZ2FyYmFnZUZ1bmN0aW9ucy5wdXNoKGYpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2Usc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtmb3IobGV0IGYgb2YgdGhpcy5yeFN1YnNjcmlwdGlvbnMpZi51bnN1YnNjcmliZSgpO2ZvcihsZXQgZiBvZiB0aGlzLmdhcmJhZ2VGdW5jdGlvbnMpYXdhaXQgZigpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlZXNFbGVtZW50RGlzY29ubmVjdGVkIikpfX19KSgpfSk7dmFyIEwyMSxLMnQsQ3RlLFQyMSxfMjEsQTIxLCQyMSxEMjEsTHRlLEoydCxfaSxRYSxFMjEsSWQsVHRlLEZkLF90ZSxqNj1uKCgpPT57QmEoKTsoe0k6TDIxfT1xaiksSzJ0PXQ9PnQsQ3RlPXQ9PnQ9PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCImJnR5cGVvZiB0IT0iZnVuY3Rpb24iLFQyMT17SFRNTDoxLFNWRzoyLE1BVEhNTDozfSxfMjE9KHQsZSk9PmU9PT12b2lkIDA/dD8uXyRsaXRUeXBlJCE9PXZvaWQgMDp0Py5fJGxpdFR5cGUkPT09ZSxBMjE9dD0+dD8uXyRsaXRUeXBlJD8uaCE9bnVsbCwkMjE9dD0+dD8uXyRsaXREaXJlY3RpdmUkIT09dm9pZCAwLEQyMT10PT50Py5fJGxpdERpcmVjdGl2ZSQsTHRlPXQ9PnQuc3RyaW5ncz09PXZvaWQgMCxKMnQ9KCk9PmRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIpLF9pPSh0LGUsYSk9PntsZXQgcj10Ll8kQUEucGFyZW50Tm9kZSxpPWU9PT12b2lkIDA/dC5fJEFCOmUuXyRBQTtpZihhPT09dm9pZCAwKXtsZXQgbz1yLmluc2VydEJlZm9yZShKMnQoKSxpKSxzPXIuaW5zZXJ0QmVmb3JlKEoydCgpLGkpO2E9bmV3IEwyMShvLHMsdCx0Lm9wdGlvbnMpfWVsc2V7bGV0IG89YS5fJEFCLm5leHRTaWJsaW5nLHM9YS5fJEFNLGw9cyE9PXQ7aWYobCl7bGV0IGY7YS5fJEFRPy4odCksYS5fJEFNPXQsYS5fJEFQIT09dm9pZCAwJiYoZj10Ll8kQVUpIT09cy5fJEFVJiZhLl8kQVAoZil9aWYobyE9PWl8fGwpe2xldCBmPWEuXyRBQTtmb3IoO2YhPT1vOyl7bGV0IGM9SzJ0KGYpLm5leHRTaWJsaW5nO0sydChyKS5pbnNlcnRCZWZvcmUoZixpKSxmPWN9fX1yZXR1cm4gYX0sUWE9KHQsZSxhPXQpPT4odC5fJEFJKGUsYSksdCksRTIxPXt9LElkPSh0LGU9RTIxKT0+dC5fJEFIPWUsVHRlPXQ9PnQuXyRBSCxGZD10PT57dC5fJEFSKCksdC5fJEFBLnJlbW92ZSgpfSxfdGU9dD0+e3QuXyRBUigpfX0pO2Z1bmN0aW9uIE4yMSh0KXt0aGlzLl8kQU4hPT12b2lkIDA/KGpxKHRoaXMpLHRoaXMuXyRBTT10LGVhdCh0aGlzKSk6dGhpcy5fJEFNPXR9ZnVuY3Rpb24gUDIxKHQsZT0hMSxhPTApe2xldCByPXRoaXMuXyRBSCxpPXRoaXMuXyRBTjtpZihpIT09dm9pZCAwJiZpLnNpemUhPT0wKWlmKGUpaWYoQXJyYXkuaXNBcnJheShyKSlmb3IobGV0IG89YTtvPHIubGVuZ3RoO28rKylPZChyW29dLCExKSxqcShyW29dKTtlbHNlIHIhPW51bGwmJihPZChyLCExKSxqcShyKSk7ZWxzZSBPZCh0aGlzLHQpfXZhciBPZCxqcSxlYXQsSTIxLGRhLFdxPW4oKCk9PntqNigpO1RpKCk7VGkoKTtPZD0odCxlKT0+e2xldCBhPXQuXyRBTjtpZihhPT09dm9pZCAwKXJldHVybiExO2ZvcihsZXQgciBvZiBhKXIuXyRBTz8uKGUsITEpLE9kKHIsZSk7cmV0dXJuITB9LGpxPXQ9PntsZXQgZSxhO2Rve2lmKChlPXQuXyRBTSk9PT12b2lkIDApYnJlYWs7YT1lLl8kQU4sYS5kZWxldGUodCksdD1lfXdoaWxlKGE/LnNpemU9PT0wKX0sZWF0PXQ9Pntmb3IobGV0IGU7ZT10Ll8kQU07dD1lKXtsZXQgYT1lLl8kQU47aWYoYT09PXZvaWQgMCllLl8kQU49YT1uZXcgU2V0O2Vsc2UgaWYoYS5oYXModCkpYnJlYWs7YS5hZGQodCksSTIxKGUpfX07STIxPXQ9Pnt0LnR5cGU9PVVyLkNISUxEJiYodC5fJEFQPz89UDIxLHQuXyRBUT8/PU4yMSl9LGRhPWNsYXNzIGV4dGVuZHMgJGF7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRBTj12b2lkIDB9XyRBVChlLGEscil7c3VwZXIuXyRBVChlLGEsciksZWF0KHRoaXMpLHRoaXMuaXNDb25uZWN0ZWQ9ZS5fJEFVfV8kQU8oZSxhPSEwKXtlIT09dGhpcy5pc0Nvbm5lY3RlZCYmKHRoaXMuaXNDb25uZWN0ZWQ9ZSxlP3RoaXMucmVjb25uZWN0ZWQ/LigpOnRoaXMuZGlzY29ubmVjdGVkPy4oKSksYSYmKE9kKHRoaXMsZSksanEodGhpcykpfXNldFZhbHVlKGUpe2lmKEx0ZSh0aGlzLl8kQ3QpKXRoaXMuXyRDdC5fJEFJKGUsdGhpcyk7ZWxzZXtsZXQgYT1bLi4udGhpcy5fJEN0Ll8kQUhdO2FbdGhpcy5fJENpXT1lLHRoaXMuXyRDdC5fJEFJKGEsdGhpcywwKX19ZGlzY29ubmVjdGVkKCl7fXJlY29ubmVjdGVkKCl7fX19KTt2YXIgR3E9bigoKT0+e1dxKCl9KTt2YXIgQXRlLHRhdCxGMjEsYWF0PW4oKCk9PntncigpO0dxKCk7QXRlPWNsYXNzIGV4dGVuZHMgZGF7cHJvbWlzZTtoYXNQcm9taXNlU2V0dGxlZD0hMTtyZW5kZXIoZSl7cmV0dXJuIHRoaXMucHJvbWlzZSE9PWUmJih0aGlzLnByb21pc2U9ZSx0aGlzLmlzQ29ubmVjdGVkJiZ0aGlzLmhhbmRsZVByb21pc2UoZSkpLGwxfWhhbmRsZVByb21pc2UoZSl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMSxlLnRoZW4oYT0+e3RoaXMucHJvbWlzZT09PWUmJiF0aGlzLmhhc1Byb21pc2VTZXR0bGVkJiYodGhpcy5zZXRWYWx1ZShhKSx0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwKX0pLmNhdGNoKGE9Pnt0aGlzLnByb21pc2U9PT1lJiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUoYSksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLmhhc1Byb21pc2VTZXR0bGVkPSEwfXJlY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZHx8dGhpcy5oYW5kbGVQcm9taXNlKHRoaXMucHJvbWlzZSl9fSx0YXQ9RTEoQXRlKSxGMjE9dD0+dGF0KHQoKSl9KTt2YXIgJHRlLE8yMSxyYXQ9bigoKT0+e2dyKCk7R3EoKTtWYSgpOyR0ZT1jbGFzcyBleHRlbmRzIGRhe29ic2VydmFibGU7c3ViPW51bGw7cmVuZGVyKGUpe3JldHVybiB0aGlzLm9ic2VydmFibGUhPT1lJiYodGhpcy5zdWI/LnVuc3Vic2NyaWJlKCksdGhpcy5vYnNlcnZhYmxlPWUsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5zdWJzY3JpYmUoZSkpLGwxfXN1YnNjcmliZShlKXt0aGlzLnN1Yj1lLnN1YnNjcmliZShhPT57dGhpcy5zZXRWYWx1ZShhKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdWJzY3JpYmUodGhpcy5vYnNlcnZhYmxlKX19LE8yMT1FMSgkdGUpfSk7dmFyIER0ZSxpYXQsb2F0PW4oKCk9PntncigpO0dxKCk7VmEoKTtEdGU9Y2xhc3MgZXh0ZW5kcyBkYXtvYnNlcnZhYmxlO3RlbXBsYXRlRm47c3ViPW51bGw7cmVuZGVyKGUsYSl7cmV0dXJuKHRoaXMub2JzZXJ2YWJsZSE9PWV8fHRoaXMudGVtcGxhdGVGbiE9PWEpJiYodGhpcy5zdWI/LnVuc3Vic2NyaWJlKCksdGhpcy5vYnNlcnZhYmxlPWUsdGhpcy50ZW1wbGF0ZUZuPWEsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5zdGFydFN1YnNjcmlwdGlvbigpKSxsMX1zdGFydFN1YnNjcmlwdGlvbigpe3RoaXMuc3ViPXRoaXMub2JzZXJ2YWJsZS5zdWJzY3JpYmUoZT0+e2xldCBhPXRoaXMudGVtcGxhdGVGbihlKTt0aGlzLnNldFZhbHVlKGEpfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5zdWI/LnVuc3Vic2NyaWJlKCl9cmVjb25uZWN0ZWQoKXt0aGlzLnN0YXJ0U3Vic2NyaXB0aW9uKCl9fSxpYXQ9RTEoRHRlKX0pO3ZhciBFdGUsVG4sX24sTnRlPW4oKCk9PntFdGU9YXN5bmModCxlKT0+e2ZvciBhd2FpdChsZXQgYSBvZiB0KWlmKGF3YWl0IGUoYSk9PT0hMSlyZXR1cm59LFRuPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuRz1lfWRpc2Nvbm5lY3QoKXt0aGlzLkc9dm9pZCAwfXJlY29ubmVjdChlKXt0aGlzLkc9ZX1kZXJlZigpe3JldHVybiB0aGlzLkd9fSxfbj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuWT12b2lkIDAsdGhpcy5aPXZvaWQgMH1nZXQoKXtyZXR1cm4gdGhpcy5ZfXBhdXNlKCl7dGhpcy5ZPz89bmV3IFByb21pc2UoZT0+dGhpcy5aPWUpfXJlc3VtZSgpe3RoaXMuWj8uKCksdGhpcy5ZPXRoaXMuWj12b2lkIDB9fX0pO3ZhciBzYXQsbmF0LFlxLFB0ZSxsYXQ9bigoKT0+e0JhKCk7ajYoKTtXcSgpO050ZSgpO1RpKCk7c2F0PXQ9PiFDdGUodCkmJnR5cGVvZiB0LnRoZW49PSJmdW5jdGlvbiIsbmF0PTEwNzM3NDE4MjMsWXE9Y2xhc3MgZXh0ZW5kcyBkYXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJEN3dD1uYXQsdGhpcy5fJENidD1bXSx0aGlzLl8kQ0s9bmV3IFRuKHRoaXMpLHRoaXMuXyRDWD1uZXcgX259cmVuZGVyKC4uLmUpe3JldHVybiBlLmZpbmQoYT0+IXNhdChhKSk/P2wxfXVwZGF0ZShlLGEpe2xldCByPXRoaXMuXyRDYnQsaT1yLmxlbmd0aDt0aGlzLl8kQ2J0PWE7bGV0IG89dGhpcy5fJENLLHM9dGhpcy5fJENYO3RoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCk7Zm9yKGxldCBsPTA7bDxhLmxlbmd0aCYmIShsPnRoaXMuXyRDd3QpO2wrKyl7bGV0IGY9YVtsXTtpZighc2F0KGYpKXJldHVybiB0aGlzLl8kQ3d0PWwsZjtsPGkmJmY9PT1yW2xdfHwodGhpcy5fJEN3dD1uYXQsaT0wLFByb21pc2UucmVzb2x2ZShmKS50aGVuKGFzeW5jIGM9Pntmb3IoO3MuZ2V0KCk7KWF3YWl0IHMuZ2V0KCk7bGV0IHU9by5kZXJlZigpO2lmKHUhPT12b2lkIDApe2xldCBkPXUuXyRDYnQuaW5kZXhPZihmKTtkPi0xJiZkPHUuXyRDd3QmJih1Ll8kQ3d0PWQsdS5zZXRWYWx1ZShjKSl9fSkpfXJldHVybiBsMX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxQdGU9RTEoWXEpfSk7dmFyIGNhdD1uKCgpPT57bGF0KCl9KTt2YXIgVzYsQjIxLGRhdD1uKCgpPT57QmEoKTtXcSgpO050ZSgpO1RpKCk7VzY9Y2xhc3MgZXh0ZW5kcyBkYXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJENLPW5ldyBUbih0aGlzKSx0aGlzLl8kQ1g9bmV3IF9ufXJlbmRlcihlLGEpe3JldHVybiBsMX11cGRhdGUoZSxbYSxyXSl7aWYodGhpcy5pc0Nvbm5lY3RlZHx8dGhpcy5kaXNjb25uZWN0ZWQoKSxhPT09dGhpcy5fJENKKXJldHVybiBsMTt0aGlzLl8kQ0o9YTtsZXQgaT0wLHtfJENLOm8sXyRDWDpzfT10aGlzO3JldHVybiBFdGUoYSxhc3luYyBsPT57Zm9yKDtzLmdldCgpOylhd2FpdCBzLmdldCgpO2xldCBmPW8uZGVyZWYoKTtpZihmIT09dm9pZCAwKXtpZihmLl8kQ0ohPT1hKXJldHVybiExO3IhPT12b2lkIDAmJihsPXIobCxpKSksZi5jb21taXRWYWx1ZShsLGkpLGkrK31yZXR1cm4hMH0pLGwxfWNvbW1pdFZhbHVlKGUsYSl7dGhpcy5zZXRWYWx1ZShlKX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxCMjE9RTEoVzYpfSk7dmFyIEl0ZSxmYXQ9bigoKT0+e1RpKCk7ZGF0KCk7ajYoKTtJdGU9RTEoY2xhc3MgZXh0ZW5kcyBXNntjb25zdHJ1Y3Rvcih0KXtpZihzdXBlcih0KSx0LnR5cGUhPT1Vci5DSElMRCl0aHJvdyBFcnJvcigiYXN5bmNBcHBlbmQgY2FuIG9ubHkgYmUgdXNlZCBpbiBjaGlsZCBleHByZXNzaW9ucyIpfXVwZGF0ZSh0LGUpe3JldHVybiB0aGlzLl8kQ3R0PXQsc3VwZXIudXBkYXRlKHQsZSl9Y29tbWl0VmFsdWUodCxlKXtlPT09MCYmX3RlKHRoaXMuXyRDdHQpO2xldCBhPV9pKHRoaXMuXyRDdHQpO1FhKGEsdCl9fSl9KTt2YXIgdWF0PW4oKCk9PntmYXQoKX0pO3ZhciBGdGUscGF0PW4oKCk9PntCYSgpO1RpKCk7ajYoKTtGdGU9RTEoY2xhc3MgZXh0ZW5kcyAkYXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5rZXk9aDF9cmVuZGVyKHQsZSl7cmV0dXJuIHRoaXMua2V5PXQsZX11cGRhdGUodCxbZSxhXSl7cmV0dXJuIGUhPT10aGlzLmtleSYmKElkKHQpLHRoaXMua2V5PWUpLGF9fSl9KTt2YXIgaGF0PW4oKCk9PntwYXQoKX0pO3ZhciBtYXQsT3RlLGdhdD1uKCgpPT57QmEoKTtUaSgpO2o2KCk7bWF0PSh0LGUsYSk9PntsZXQgcj1uZXcgTWFwO2ZvcihsZXQgaT1lO2k8PWE7aSsrKXIuc2V0KHRbaV0saSk7cmV0dXJuIHJ9LE90ZT1FMShjbGFzcyBleHRlbmRzICRhe2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKHQpLHQudHlwZSE9PVVyLkNISUxEKXRocm93IEVycm9yKCJyZXBlYXQoKSBjYW4gb25seSBiZSB1c2VkIGluIHRleHQgZXhwcmVzc2lvbnMiKX1kdCh0LGUsYSl7bGV0IHI7YT09PXZvaWQgMD9hPWU6ZSE9PXZvaWQgMCYmKHI9ZSk7bGV0IGk9W10sbz1bXSxzPTA7Zm9yKGxldCBsIG9mIHQpaVtzXT1yP3IobCxzKTpzLG9bc109YShsLHMpLHMrKztyZXR1cm57dmFsdWVzOm8sa2V5czppfX1yZW5kZXIodCxlLGEpe3JldHVybiB0aGlzLmR0KHQsZSxhKS52YWx1ZXN9dXBkYXRlKHQsW2UsYSxyXSl7bGV0IGk9VHRlKHQpLHt2YWx1ZXM6byxrZXlzOnN9PXRoaXMuZHQoZSxhLHIpO2lmKCFBcnJheS5pc0FycmF5KGkpKXJldHVybiB0aGlzLnV0PXMsbztsZXQgbD10aGlzLnV0Pz89W10sZj1bXSxjLHUsZD0wLGg9aS5sZW5ndGgtMSxnPTAsYj1vLmxlbmd0aC0xO2Zvcig7ZDw9aCYmZzw9YjspaWYoaVtkXT09PW51bGwpZCsrO2Vsc2UgaWYoaVtoXT09PW51bGwpaC0tO2Vsc2UgaWYobFtkXT09PXNbZ10pZltnXT1RYShpW2RdLG9bZ10pLGQrKyxnKys7ZWxzZSBpZihsW2hdPT09c1tiXSlmW2JdPVFhKGlbaF0sb1tiXSksaC0tLGItLTtlbHNlIGlmKGxbZF09PT1zW2JdKWZbYl09UWEoaVtkXSxvW2JdKSxfaSh0LGZbYisxXSxpW2RdKSxkKyssYi0tO2Vsc2UgaWYobFtoXT09PXNbZ10pZltnXT1RYShpW2hdLG9bZ10pLF9pKHQsaVtkXSxpW2hdKSxoLS0sZysrO2Vsc2UgaWYoYz09PXZvaWQgMCYmKGM9bWF0KHMsZyxiKSx1PW1hdChsLGQsaCkpLGMuaGFzKGxbZF0pKWlmKGMuaGFzKGxbaF0pKXtsZXQgeD11LmdldChzW2ddKSxtPXghPT12b2lkIDA/aVt4XTpudWxsO2lmKG09PT1udWxsKXtsZXQgdj1faSh0LGlbZF0pO1FhKHYsb1tnXSksZltnXT12fWVsc2UgZltnXT1RYShtLG9bZ10pLF9pKHQsaVtkXSxtKSxpW3hdPW51bGw7ZysrfWVsc2UgRmQoaVtoXSksaC0tO2Vsc2UgRmQoaVtkXSksZCsrO2Zvcig7Zzw9Yjspe2xldCB4PV9pKHQsZltiKzFdKTtRYSh4LG9bZ10pLGZbZysrXT14fWZvcig7ZDw9aDspe2xldCB4PWlbZCsrXTt4IT09bnVsbCYmRmQoeCl9cmV0dXJuIHRoaXMudXQ9cyxJZCh0LGYpLGwxfX0pfSk7dmFyIHhhdD1uKCgpPT57Z2F0KCl9KTt2YXIgRWE9e307ZXQoRWEse2FzeW5jQXBwZW5kOigpPT5JdGUsa2V5ZWQ6KCk9PkZ0ZSxyZXBlYXQ6KCk9Pk90ZSxyZXNvbHZlOigpPT50YXQscmVzb2x2ZUV4ZWM6KCk9PkYyMSxzdWJzY3JpYmU6KCk9Pk8yMSxzdWJzY3JpYmVXaXRoVGVtcGxhdGU6KCk9PmlhdCx1bnRpbDooKT0+UHRlfSk7dmFyIGJhdD1uKCgpPT57YWF0KCk7cmF0KCk7b2F0KCk7Y2F0KCk7dWF0KCk7aGF0KCk7eGF0KCl9KTt2YXIgcCxmZT1uKCgpPT57JDJ0KCk7Z3IoKTtQMnQoKTtGMnQoKTtPMnQoKTtaMnQoKTtTdCgpO1EydCgpO2JhdCgpO3A9SHEuZ2V0U2luZ2xldG9uKCl9KTt2YXIgQW4seGUsQmU9bigoKT0+e2ZlKCk7QW49e2NvbG9yczp7bGlnaHQ6e2JnUHJpbWFyeToiI2ZmZmZmZiIsYmdTZWNvbmRhcnk6IiNmYWZhZmEiLGJnVGVydGlhcnk6IiNmNGY0ZjUiLHRleHRQcmltYXJ5OiIjMDkwOTBiIix0ZXh0U2Vjb25kYXJ5OiIjMzc0MTUxIix0ZXh0TXV0ZWQ6IiM3MTcxN2EiLGJvcmRlckRlZmF1bHQ6IiNlNWU3ZWIiLGJvcmRlclN1YnRsZToiI2Y0ZjRmNSIsYm9yZGVyU3Ryb25nOiIjZDFkNWRiIixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCJ9LGRhcms6e2JnUHJpbWFyeToiIzA5MDkwYiIsYmdTZWNvbmRhcnk6IiMwYTBhMGEiLGJnVGVydGlhcnk6IiMxODE4MWIiLHRleHRQcmltYXJ5OiIjZmFmYWZhIix0ZXh0U2Vjb25kYXJ5OiIjZDRkNGQ4Iix0ZXh0TXV0ZWQ6IiNhMWExYWEiLGJvcmRlckRlZmF1bHQ6IiMyNzI3MmEiLGJvcmRlclN1YnRsZToiIzFhMWExYSIsYm9yZGVyU3Ryb25nOiIjM2YzZjQ2IixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCJ9fSxzcGFjaW5nOnt4czoiNHB4IixzbToiOHB4IixtZDoiMTJweCIsbGc6IjE2cHgiLHhsOiIyNHB4IiwiMnhsIjoiMzJweCIsIjN4bCI6IjQ4cHgifSxyYWRpdXM6e3hzOiIycHgiLHNtOiI0cHgiLG1kOiI2cHgiLGxnOiI4cHgiLHhsOiIxMnB4IixmdWxsOiI5OTlweCJ9LHNoYWRvd3M6e3hzOiIwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KSIsc206IjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSkiLG1kOiIwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsbGc6IjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSJ9LHRyYW5zaXRpb25zOntmYXN0OiIwLjFzIixkZWZhdWx0OiIwLjE1cyIsc2xvdzoiMC4ycyIsc2xvd2VyOiIwLjNzIn0sY29udHJvbEhlaWdodHM6e3NtOiIzMnB4IixtZDoiMzZweCIsbGc6IjQwcHgiLHhsOiI0OHB4In19LHhlPXRlYAogIDpob3N0IHsKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIFNwYWNpbmcgU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1zcGFjaW5nLXhzOiA0cHg7CiAgICAtLWRlZXMtc3BhY2luZy1zbTogOHB4OwogICAgLS1kZWVzLXNwYWNpbmctbWQ6IDEycHg7CiAgICAtLWRlZXMtc3BhY2luZy1sZzogMTZweDsKICAgIC0tZGVlcy1zcGFjaW5nLXhsOiAyNHB4OwogICAgLS1kZWVzLXNwYWNpbmctMnhsOiAzMnB4OwogICAgLS1kZWVzLXNwYWNpbmctM3hsOiA0OHB4OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIEJvcmRlciBSYWRpdXMgU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1yYWRpdXMteHM6IDJweDsKICAgIC0tZGVlcy1yYWRpdXMtc206IDRweDsKICAgIC0tZGVlcy1yYWRpdXMtbWQ6IDZweDsKICAgIC0tZGVlcy1yYWRpdXMtbGc6IDhweDsKICAgIC0tZGVlcy1yYWRpdXMteGw6IDEycHg7CiAgICAtLWRlZXMtcmFkaXVzLWZ1bGw6IDk5OXB4OwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIFNoYWRvdyBFbGV2YXRpb24gU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1zaGFkb3cteHM6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpOwogICAgLS1kZWVzLXNoYWRvdy1zbTogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgIC0tZGVlcy1zaGFkb3ctbWQ6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgLS1kZWVzLXNoYWRvdy1sZzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIFRyYW5zaXRpb24gRHVyYXRpb24gU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy10cmFuc2l0aW9uLWZhc3Q6IDAuMXM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1kZWZhdWx0OiAwLjE1czsKICAgIC0tZGVlcy10cmFuc2l0aW9uLXNsb3c6IDAuMnM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1zbG93ZXI6IDAuM3M7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQ29udHJvbCBIZWlnaHQgU2NhbGUKICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC1zbTogMzJweDsKICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC1tZDogMzZweDsKICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC1sZzogNDBweDsKICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC14bDogNDhweDsKICB9CmB9KTtmdW5jdGlvbiBKdGUodCxlKXsoZT09bnVsbHx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIGE9MCxyPUFycmF5KGUpO2E8ZTthKyspclthXT10W2FdO3JldHVybiByfWZ1bmN0aW9uIEgyMSh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fWZ1bmN0aW9uIHEyMSh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBKdGUodCl9ZnVuY3Rpb24gVjIxKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24geWF0KHQsZSl7Zm9yKHZhciBhPTA7YTxlLmxlbmd0aDthKyspe3ZhciByPWVbYV07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxNYXQoci5rZXkpLHIpfX1mdW5jdGlvbiBVMjEodCxlLGEpe3JldHVybiBlJiZ5YXQodC5wcm90b3R5cGUsZSksYSYmeWF0KHQsYSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksdH1mdW5jdGlvbiBYcSh0LGUpe3ZhciBhPXR5cGVvZiBTeW1ib2w8InUiJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZighYSl7aWYoQXJyYXkuaXNBcnJheSh0KXx8KGE9ZTFlKHQpKXx8ZSYmdCYmdHlwZW9mIHQubGVuZ3RoPT0ibnVtYmVyIil7YSYmKHQ9YSk7dmFyIHI9MCxpPWZ1bmN0aW9uKCl7fTtyZXR1cm57czppLG46ZnVuY3Rpb24oKXtyZXR1cm4gcj49dC5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOnRbcisrXX19LGU6ZnVuY3Rpb24oZil7dGhyb3cgZn0sZjppfX10aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX12YXIgbyxzPSEwLGw9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXthPWEuY2FsbCh0KX0sbjpmdW5jdGlvbigpe3ZhciBmPWEubmV4dCgpO3JldHVybiBzPWYuZG9uZSxmfSxlOmZ1bmN0aW9uKGYpe2w9ITAsbz1mfSxmOmZ1bmN0aW9uKCl7dHJ5e3N8fGEucmV0dXJuPT1udWxsfHxhLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyBvfX19fWZ1bmN0aW9uIG10KHQsZSxhKXtyZXR1cm4oZT1NYXQoZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1hLHR9ZnVuY3Rpb24gajIxKHQsZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJlFxKHQsZSl9ZnVuY3Rpb24gVzIxKHQpe2lmKHR5cGVvZiBTeW1ib2w8InUiJiZ0W1N5bWJvbC5pdGVyYXRvcl0hPW51bGx8fHRbIkBAaXRlcmF0b3IiXSE9bnVsbClyZXR1cm4gQXJyYXkuZnJvbSh0KX1mdW5jdGlvbiBHMjEodCxlKXt2YXIgYT10PT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDwidSImJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKGEhPW51bGwpe3ZhciByLGksbyxzLGw9W10sZj0hMCxjPSExO3RyeXtpZihvPShhPWEuY2FsbCh0KSkubmV4dCxlPT09MCl7aWYoT2JqZWN0KGEpIT09YSlyZXR1cm47Zj0hMX1lbHNlIGZvcig7IShmPShyPW8uY2FsbChhKSkuZG9uZSkmJihsLnB1c2goci52YWx1ZSksbC5sZW5ndGghPT1lKTtmPSEwKTt9Y2F0Y2godSl7Yz0hMCxpPXV9ZmluYWxseXt0cnl7aWYoIWYmJmEucmV0dXJuIT1udWxsJiYocz1hLnJldHVybigpLE9iamVjdChzKSE9PXMpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgaX19cmV0dXJuIGx9fWZ1bmN0aW9uIFkyMSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiBaMjEoKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIHdhdCh0LGUpe3ZhciBhPU9iamVjdC5rZXlzKHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7ZSYmKHI9ci5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxpKS5lbnVtZXJhYmxlfSkpLGEucHVzaC5hcHBseShhLHIpfXJldHVybiBhfWZ1bmN0aW9uIF9lKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBhPWFyZ3VtZW50c1tlXSE9bnVsbD9hcmd1bWVudHNbZV06e307ZSUyP3dhdChPYmplY3QoYSksITApLmZvckVhY2goZnVuY3Rpb24ocil7bXQodCxyLGFbcl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhhKSk6d2F0KE9iamVjdChhKSkuZm9yRWFjaChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxyKSl9KX1yZXR1cm4gdH1mdW5jdGlvbiBRcSh0LGUpe3JldHVybiBRcT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihhLHIpe3JldHVybiBhLl9fcHJvdG9fXz1yLGF9LFFxKHQsZSl9ZnVuY3Rpb24gS3EodCxlKXtyZXR1cm4gSDIxKHQpfHxHMjEodCxlKXx8ZTFlKHQsZSl8fFkyMSgpfWZ1bmN0aW9uIEphKHQpe3JldHVybiBxMjEodCl8fFcyMSh0KXx8ZTFlKHQpfHxaMjEoKX1mdW5jdGlvbiBYMjEodCxlKXtpZih0eXBlb2YgdCE9Im9iamVjdCJ8fCF0KXJldHVybiB0O3ZhciBhPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihhIT09dm9pZCAwKXt2YXIgcj1hLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKHR5cGVvZiByIT0ib2JqZWN0IilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybihlPT09InN0cmluZyI/U3RyaW5nOk51bWJlcikodCl9ZnVuY3Rpb24gTWF0KHQpe3ZhciBlPVgyMSh0LCJzdHJpbmciKTtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiP2U6ZSsiIn1mdW5jdGlvbiBKcSh0KXsiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2YiO3JldHVybiBKcT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT0ic3ltYm9sIj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZ0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0sSnEodCl9ZnVuY3Rpb24gZTFlKHQsZSl7aWYodCl7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXJldHVybiBKdGUodCxlKTt2YXIgYT17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiBhPT09Ik9iamVjdCImJnQuY29uc3RydWN0b3ImJihhPXQuY29uc3RydWN0b3IubmFtZSksYT09PSJNYXAifHxhPT09IlNldCI/QXJyYXkuZnJvbSh0KTphPT09IkFyZ3VtZW50cyJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGEpP0p0ZSh0LGUpOnZvaWQgMH19ZnVuY3Rpb24gTDIoKXtMMj1mdW5jdGlvbihpLG8pe3JldHVybiBuZXcgYShpLHZvaWQgMCxvKX07dmFyIHQ9UmVnRXhwLnByb3RvdHlwZSxlPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGEoaSxvLHMpe3ZhciBsPVJlZ0V4cChpLG8pO3JldHVybiBlLnNldChsLHN8fGUuZ2V0KGkpKSxRcShsLGEucHJvdG90eXBlKX1mdW5jdGlvbiByKGksbyl7dmFyIHM9ZS5nZXQobyk7cmV0dXJuIE9iamVjdC5rZXlzKHMpLnJlZHVjZShmdW5jdGlvbihsLGYpe3ZhciBjPXNbZl07aWYodHlwZW9mIGM9PSJudW1iZXIiKWxbZl09aVtjXTtlbHNle2Zvcih2YXIgdT0wO2lbY1t1XV09PT12b2lkIDAmJnUrMTxjLmxlbmd0aDspdSsrO2xbZl09aVtjW3VdXX1yZXR1cm4gbH0sT2JqZWN0LmNyZWF0ZShudWxsKSl9cmV0dXJuIGoyMShhLFJlZ0V4cCksYS5wcm90b3R5cGUuZXhlYz1mdW5jdGlvbihpKXt2YXIgbz10LmV4ZWMuY2FsbCh0aGlzLGkpO2lmKG8pe28uZ3JvdXBzPXIobyx0aGlzKTt2YXIgcz1vLmluZGljZXM7cyYmKHMuZ3JvdXBzPXIocyx0aGlzKSl9cmV0dXJuIG99LGEucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXT1mdW5jdGlvbihpLG8pe2lmKHR5cGVvZiBvPT0ic3RyaW5nIil7dmFyIHM9ZS5nZXQodGhpcyk7cmV0dXJuIHRbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxpLG8ucmVwbGFjZSgvXCQ8KFtePl0rKSg+fCQpL2csZnVuY3Rpb24oZixjLHUpe2lmKHU9PT0iIilyZXR1cm4gZjt2YXIgZD1zW2NdO3JldHVybiBBcnJheS5pc0FycmF5KGQpPyIkIitkLmpvaW4oIiQiKTp0eXBlb2YgZD09Im51bWJlciI/IiQiK2Q6IiJ9KSl9aWYodHlwZW9mIG89PSJmdW5jdGlvbiIpe3ZhciBsPXRoaXM7cmV0dXJuIHRbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxpLGZ1bmN0aW9uKCl7dmFyIGY9YXJndW1lbnRzO3JldHVybiB0eXBlb2YgZltmLmxlbmd0aC0xXSE9Im9iamVjdCImJihmPVtdLnNsaWNlLmNhbGwoZikpLnB1c2gocihmLGwpKSxvLmFwcGx5KHRoaXMsZil9KX1yZXR1cm4gdFtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLGksbyl9LEwyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBIZCh0KXtyZXR1cm4gbmV3IFByb3h5KHQse2dldDpmdW5jdGlvbihhLHIpe3JldHVybiByIGluIGE/YVtyXTphW2kyXX19KX1mdW5jdGlvbiBQcjEodCl7dmFyIGU9ZDEucXVlcnlTZWxlY3Rvcigic2NyaXB0WyIrdCsiXSIpO2lmKGUpcmV0dXJuIGUuZ2V0QXR0cmlidXRlKHQpfWZ1bmN0aW9uIElyMSh0KXtyZXR1cm4gdD09PSIiPyEwOnQ9PT0iZmFsc2UiPyExOnQ9PT0idHJ1ZSI/ITA6dH1mdW5jdGlvbiBGcjEodCl7cmV0dXJuIFZkLnB1c2godCksZnVuY3Rpb24oKXtWZC5zcGxpY2UoVmQuaW5kZXhPZih0KSwxKX19ZnVuY3Rpb24gT3IxKHQpe2lmKCEoIXR8fCEkaSkpe3ZhciBlPWQxLmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2NzcyIpLGUuaW5uZXJIVE1MPXQ7Zm9yKHZhciBhPWQxLmhlYWQuY2hpbGROb2RlcyxyPW51bGwsaT1hLmxlbmd0aC0xO2k+LTE7aS0tKXt2YXIgbz1hW2ldLHM9KG8udGFnTmFtZXx8IiIpLnRvVXBwZXJDYXNlKCk7WyJTVFlMRSIsIkxJTksiXS5pbmRleE9mKHMpPi0xJiYocj1vKX1yZXR1cm4gZDEuaGVhZC5pbnNlcnRCZWZvcmUoZSxyKSx0fX1mdW5jdGlvbiBmcnQoKXtmb3IodmFyIHQ9MTIsZT0iIjt0LS0gPjA7KWUrPUJyMVtNYXRoLnJhbmRvbSgpKjYyfDBdO3JldHVybiBlfWZ1bmN0aW9uIFk2KHQpe2Zvcih2YXIgZT1bXSxhPSh0fHxbXSkubGVuZ3RoPj4+MDthLS07KWVbYV09dFthXTtyZXR1cm4gZX1mdW5jdGlvbiBoMWUodCl7cmV0dXJuIHQuY2xhc3NMaXN0P1k2KHQuY2xhc3NMaXN0KToodC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKS5zcGxpdCgiICIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pfWZ1bmN0aW9uIHVydCh0KXtyZXR1cm4iIi5jb25jYXQodCkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpfWZ1bmN0aW9uIFJyMSh0KXtyZXR1cm4gT2JqZWN0LmtleXModHx8e30pLnJlZHVjZShmdW5jdGlvbihlLGEpe3JldHVybiBlKyIiLmNvbmNhdChhLCc9IicpLmNvbmNhdCh1cnQodFthXSksJyIgJyl9LCIiKS50cmltKCl9ZnVuY3Rpb24gYVYodCl7cmV0dXJuIE9iamVjdC5rZXlzKHR8fHt9KS5yZWR1Y2UoZnVuY3Rpb24oZSxhKXtyZXR1cm4gZSsiIi5jb25jYXQoYSwiOiAiKS5jb25jYXQodFthXS50cmltKCksIjsiKX0sIiIpfWZ1bmN0aW9uIG0xZSh0KXtyZXR1cm4gdC5zaXplIT09anIuc2l6ZXx8dC54IT09anIueHx8dC55IT09anIueXx8dC5yb3RhdGUhPT1qci5yb3RhdGV8fHQuZmxpcFh8fHQuZmxpcFl9ZnVuY3Rpb24gSHIxKHQpe3ZhciBlPXQudHJhbnNmb3JtLGE9dC5jb250YWluZXJXaWR0aCxyPXQuaWNvbldpZHRoLGk9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KGEvMiwiIDI1NikiKX0sbz0idHJhbnNsYXRlKCIuY29uY2F0KGUueCozMiwiLCAiKS5jb25jYXQoZS55KjMyLCIpICIpLHM9InNjYWxlKCIuY29uY2F0KGUuc2l6ZS8xNiooZS5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQoZS5zaXplLzE2KihlLmZsaXBZPy0xOjEpLCIpICIpLGw9InJvdGF0ZSgiLmNvbmNhdChlLnJvdGF0ZSwiIDAgMCkiKSxmPXt0cmFuc2Zvcm06IiIuY29uY2F0KG8sIiAiKS5jb25jYXQocywiICIpLmNvbmNhdChsKX0sYz17dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoci8yKi0xLCIgLTI1NikiKX07cmV0dXJue291dGVyOmksaW5uZXI6ZixwYXRoOmN9fWZ1bmN0aW9uIHFyMSh0KXt2YXIgZT10LnRyYW5zZm9ybSxhPXQud2lkdGgscj1hPT09dm9pZCAwP28xZTphLGk9dC5oZWlnaHQsbz1pPT09dm9pZCAwP28xZTppLHM9dC5zdGFydENlbnRlcmVkLGw9cz09PXZvaWQgMD8hMTpzLGY9IiI7cmV0dXJuIGwmJkFhdD9mKz0idHJhbnNsYXRlKCIuY29uY2F0KGUueC90cy1yLzIsImVtLCAiKS5jb25jYXQoZS55L3RzLW8vMiwiZW0pICIpOmw/Zis9InRyYW5zbGF0ZShjYWxjKC01MCUgKyAiLmNvbmNhdChlLngvdHMsImVtKSwgY2FsYygtNTAlICsgIikuY29uY2F0KGUueS90cywiZW0pKSAiKTpmKz0idHJhbnNsYXRlKCIuY29uY2F0KGUueC90cywiZW0sICIpLmNvbmNhdChlLnkvdHMsImVtKSAiKSxmKz0ic2NhbGUoIi5jb25jYXQoZS5zaXplL3RzKihlLmZsaXBYPy0xOjEpLCIsICIpLmNvbmNhdChlLnNpemUvdHMqKGUuZmxpcFk/LTE6MSksIikgIiksZis9InJvdGF0ZSgiLmNvbmNhdChlLnJvdGF0ZSwiZGVnKSAiKSxmfWZ1bmN0aW9uIHBydCgpe3ZhciB0PXRydCxlPWFydCxhPVplLmNzc1ByZWZpeCxyPVplLnJlcGxhY2VtZW50Q2xhc3MsaT1WcjE7aWYoYSE9PXR8fHIhPT1lKXt2YXIgbz1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdCh0LCJcXC0iKSwiZyIpLHM9bmV3IFJlZ0V4cCgiXFwtLSIuY29uY2F0KHQsIlxcLSIpLCJnIiksbD1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdChlKSwiZyIpO2k9aS5yZXBsYWNlKG8sIi4iLmNvbmNhdChhLCItIikpLnJlcGxhY2UocywiLS0iLmNvbmNhdChhLCItIikpLnJlcGxhY2UobCwiLiIuY29uY2F0KHIpKX1yZXR1cm4gaX1mdW5jdGlvbiBnMWUoKXtaZS5hdXRvQWRkQ3NzJiYhaHJ0JiYoT3IxKHBydCgpKSxocnQ9ITApfWZ1bmN0aW9uIGpyMSh0KXskaSYmKHJWP3NldFRpbWVvdXQodCwwKTptcnQucHVzaCh0KSl9ZnVuY3Rpb24gVWQodCl7dmFyIGU9dC50YWcsYT10LmF0dHJpYnV0ZXMscj1hPT09dm9pZCAwP3t9OmEsaT10LmNoaWxkcmVuLG89aT09PXZvaWQgMD9bXTppO3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/dXJ0KHQpOiI8Ii5jb25jYXQoZSwiICIpLmNvbmNhdChScjEociksIj4iKS5jb25jYXQoby5tYXAoVWQpLmpvaW4oIiIpLCI8LyIpLmNvbmNhdChlLCI+Iil9ZnVuY3Rpb24geHJ0KHQsZSxhKXtpZih0JiZ0W2VdJiZ0W2VdW2FdKXJldHVybntwcmVmaXg6ZSxpY29uTmFtZTphLGljb246dFtlXVthXX19ZnVuY3Rpb24gYnJ0KHQpe3JldHVybiBKYSh0KS5sZW5ndGghPT0xP251bGw6dC5jb2RlUG9pbnRBdCgwKS50b1N0cmluZygxNil9ZnVuY3Rpb24gdnJ0KHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5yZWR1Y2UoZnVuY3Rpb24oZSxhKXt2YXIgcj10W2FdLGk9ISFyLmljb247cmV0dXJuIGk/ZVtyLmljb25OYW1lXT1yLmljb246ZVthXT1yLGV9LHt9KX1mdW5jdGlvbiBiMWUodCxlKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06e30scj1hLnNraXBIb29rcyxpPXI9PT12b2lkIDA/ITE6cixvPXZydChlKTt0eXBlb2YgZXIuaG9va3MuYWRkUGFjaz09ImZ1bmN0aW9uIiYmIWk/ZXIuaG9va3MuYWRkUGFjayh0LHZydChlKSk6ZXIuc3R5bGVzW3RdPV9lKF9lKHt9LGVyLnN0eWxlc1t0XXx8e30pLG8pLHQ9PT0iZmFzIiYmYjFlKCJmYSIsZSl9ZnVuY3Rpb24gWnIxKHQpe3JldHVybn5OcjEuaW5kZXhPZih0KX1mdW5jdGlvbiBYcjEodCxlKXt2YXIgYT1lLnNwbGl0KCItIikscj1hWzBdLGk9YS5zbGljZSgxKS5qb2luKCItIik7cmV0dXJuIHI9PT10JiZpIT09IiImJiFacjEoaSk/aTpudWxsfWZ1bmN0aW9uIHcxZSh0LGUpe3JldHVybih3cnRbdF18fHt9KVtlXX1mdW5jdGlvbiBRcjEodCxlKXtyZXR1cm4oTXJ0W3RdfHx7fSlbZV19ZnVuY3Rpb24gRG4odCxlKXtyZXR1cm4oU3J0W3RdfHx7fSlbZV19ZnVuY3Rpb24gTHJ0KHQpe3JldHVybiB6cnRbdF18fHtwcmVmaXg6bnVsbCxpY29uTmFtZTpudWxsfX1mdW5jdGlvbiBLcjEodCl7dmFyIGU9a3J0W3RdLGE9dzFlKCJmYXMiLHQpO3JldHVybiBlfHwoYT97cHJlZml4OiJmYXMiLGljb25OYW1lOmF9Om51bGwpfHx7cHJlZml4Om51bGwsaWNvbk5hbWU6bnVsbH19ZnVuY3Rpb24gYXMoKXtyZXR1cm4geTFlfWZ1bmN0aW9uIEpyMSh0KXt2YXIgZT1pMixhPXlydC5yZWR1Y2UoZnVuY3Rpb24ocixpKXtyZXR1cm4gcltpXT0iIi5jb25jYXQoWmUuY3NzUHJlZml4LCItIikuY29uY2F0KGkpLHJ9LHt9KTtyZXR1cm4gWmF0LmZvckVhY2goZnVuY3Rpb24ocil7KHQuaW5jbHVkZXMoYVtyXSl8fHQuc29tZShmdW5jdGlvbihpKXtyZXR1cm4gWXIxW3JdLmluY2x1ZGVzKGkpfSkpJiYoZT1yKX0pLGV9ZnVuY3Rpb24gaVYodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGE9ZS5mYW1pbHkscj1hPT09dm9pZCAwP2kyOmEsaT1fcjFbcl1bdF07aWYocj09PVJkJiYhdClyZXR1cm4iZmFkIjt2YXIgbz1ucnRbcl1bdF18fG5ydFtyXVtpXSxzPXQgaW4gZXIuc3R5bGVzP3Q6bnVsbCxsPW98fHN8fG51bGw7cmV0dXJuIGx9ZnVuY3Rpb24gZWkxKHQpe3ZhciBlPVtdLGE9bnVsbDtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHIpe3ZhciBpPVhyMShaZS5jc3NQcmVmaXgscik7aT9hPWk6ciYmZS5wdXNoKHIpfSkse2ljb25OYW1lOmEscmVzdDplfX1mdW5jdGlvbiBfcnQodCl7cmV0dXJuIHQuc29ydCgpLmZpbHRlcihmdW5jdGlvbihlLGEscil7cmV0dXJuIHIuaW5kZXhPZihlKT09PWF9KX1mdW5jdGlvbiBvVih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sYT1lLnNraXBMb29rdXBzLHI9YT09PXZvaWQgMD8hMTphLGk9bnVsbCxvPV9ydCh0LmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4gQXJ0LmluY2x1ZGVzKGcpfSkpLHM9X3J0KHQuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiFBcnQuaW5jbHVkZXMoZyl9KSksbD1vLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4gaT1nLCFEYXQuaW5jbHVkZXMoZyl9KSxmPUtxKGwsMSksYz1mWzBdLHU9Yz09PXZvaWQgMD9udWxsOmMsZD1KcjEobyksaD1fZShfZSh7fSxlaTEocykpLHt9LHtwcmVmaXg6aVYodSx7ZmFtaWx5OmR9KX0pO3JldHVybiBfZShfZShfZSh7fSxoKSxpaTEoe3ZhbHVlczp0LGZhbWlseTpkLHN0eWxlczpqZCxjb25maWc6WmUsY2Fub25pY2FsOmgsZ2l2ZW5QcmVmaXg6aX0pKSx0aTEocixpLGgpKX1mdW5jdGlvbiB0aTEodCxlLGEpe3ZhciByPWEucHJlZml4LGk9YS5pY29uTmFtZTtpZih0fHwhcnx8IWkpcmV0dXJue3ByZWZpeDpyLGljb25OYW1lOml9O3ZhciBvPWU9PT0iZmEiP0xydChpKTp7fSxzPURuKHIsaSk7cmV0dXJuIGk9by5pY29uTmFtZXx8c3x8aSxyPW8ucHJlZml4fHxyLHI9PT0iZmFyIiYmIWpkLmZhciYmamQuZmFzJiYhWmUuYXV0b0ZldGNoU3ZnJiYocj0iZmFzIikse3ByZWZpeDpyLGljb25OYW1lOml9fWZ1bmN0aW9uIGlpMSh0KXt2YXIgZT10LnZhbHVlcyxhPXQuZmFtaWx5LHI9dC5jYW5vbmljYWwsaT10LmdpdmVuUHJlZml4LG89aT09PXZvaWQgMD8iIjppLHM9dC5zdHlsZXMsbD1zPT09dm9pZCAwP3t9OnMsZj10LmNvbmZpZyxjPWY9PT12b2lkIDA/e306Zix1PWE9PT1SZCxkPWUuaW5jbHVkZXMoImZhLWR1b3RvbmUiKXx8ZS5pbmNsdWRlcygiZmFkIiksaD1jLmZhbWlseURlZmF1bHQ9PT0iZHVvdG9uZSIsZz1yLnByZWZpeD09PSJmYWQifHxyLnByZWZpeD09PSJmYS1kdW90b25lIjtpZighdSYmKGR8fGh8fGcpJiYoci5wcmVmaXg9ImZhZCIpLChlLmluY2x1ZGVzKCJmYS1icmFuZHMiKXx8ZS5pbmNsdWRlcygiZmFiIikpJiYoci5wcmVmaXg9ImZhYiIpLCFyLnByZWZpeCYmYWkxLmluY2x1ZGVzKGEpKXt2YXIgYj1PYmplY3Qua2V5cyhsKS5maW5kKGZ1bmN0aW9uKG0pe3JldHVybiByaTEuaW5jbHVkZXMobSl9KTtpZihifHxjLmF1dG9GZXRjaFN2Zyl7dmFyIHg9d2ExLmdldChhKS5kZWZhdWx0U2hvcnRQcmVmaXhJZDtyLnByZWZpeD14LHIuaWNvbk5hbWU9RG4oci5wcmVmaXgsci5pY29uTmFtZSl8fHIuaWNvbk5hbWV9fXJldHVybihyLnByZWZpeD09PSJmYSJ8fG89PT0iZmEiKSYmKHIucHJlZml4PWFzKCl8fCJmYXMiKSxyfWZ1bmN0aW9uIG5pMSh0LGUpe3ZhciBhPWUubWl4b3V0c1RvO3JldHVybiAkcnQ9dCxaNj17fSxPYmplY3Qua2V5cyhYNikuZm9yRWFjaChmdW5jdGlvbihyKXtzaTEuaW5kZXhPZihyKT09PS0xJiZkZWxldGUgWDZbcl19KSwkcnQuZm9yRWFjaChmdW5jdGlvbihyKXt2YXIgaT1yLm1peG91dD9yLm1peG91dCgpOnt9O2lmKE9iamVjdC5rZXlzKGkpLmZvckVhY2goZnVuY3Rpb24ocyl7dHlwZW9mIGlbc109PSJmdW5jdGlvbiImJihhW3NdPWlbc10pLEpxKGlbc10pPT09Im9iamVjdCImJk9iamVjdC5rZXlzKGlbc10pLmZvckVhY2goZnVuY3Rpb24obCl7YVtzXXx8KGFbc109e30pLGFbc11bbF09aVtzXVtsXX0pfSksci5ob29rcyl7dmFyIG89ci5ob29rcygpO09iamVjdC5rZXlzKG8pLmZvckVhY2goZnVuY3Rpb24ocyl7WjZbc118fChaNltzXT1bXSksWjZbc10ucHVzaChvW3NdKX0pfXIucHJvdmlkZXMmJnIucHJvdmlkZXMoWDYpfSksYX1mdW5jdGlvbiBNMWUodCxlKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShhPjI/YS0yOjApLGk9MjtpPGE7aSsrKXJbaS0yXT1hcmd1bWVudHNbaV07dmFyIG89WjZbdF18fFtdO3JldHVybiBvLmZvckVhY2goZnVuY3Rpb24ocyl7ZT1zLmFwcGx5KG51bGwsW2VdLmNvbmNhdChyKSl9KSxlfWZ1bmN0aW9uIEVuKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGU+MT9lLTE6MCkscj0xO3I8ZTtyKyspYVtyLTFdPWFyZ3VtZW50c1tyXTt2YXIgaT1aNlt0XXx8W107aS5mb3JFYWNoKGZ1bmN0aW9uKG8pe28uYXBwbHkobnVsbCxhKX0pfWZ1bmN0aW9uIHJzKCl7dmFyIHQ9YXJndW1lbnRzWzBdLGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBYNlt0XT9YNlt0XS5hcHBseShudWxsLGUpOnZvaWQgMH1mdW5jdGlvbiB6MWUodCl7dC5wcmVmaXg9PT0iZmEiJiYodC5wcmVmaXg9ImZhcyIpO3ZhciBlPXQuaWNvbk5hbWUsYT10LnByZWZpeHx8YXMoKTtpZihlKXJldHVybiBlPURuKGEsZSl8fGUseHJ0KERydC5kZWZpbml0aW9ucyxhLGUpfHx4cnQoZXIuc3R5bGVzLGEsZSl9ZnVuY3Rpb24gc1YodCxlKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImFic3RyYWN0Iix7Z2V0OmV9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiaHRtbCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0LmFic3RyYWN0Lm1hcChmdW5jdGlvbihyKXtyZXR1cm4gVWQocil9KX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwibm9kZSIse2dldDpmdW5jdGlvbigpe2lmKCRpKXt2YXIgcj1kMS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci5pbm5lckhUTUw9dC5odG1sLHIuY2hpbGRyZW59fX0pLHR9ZnVuY3Rpb24gdWkxKHQpe3ZhciBlPXQuY2hpbGRyZW4sYT10Lm1haW4scj10Lm1hc2ssaT10LmF0dHJpYnV0ZXMsbz10LnN0eWxlcyxzPXQudHJhbnNmb3JtO2lmKG0xZShzKSYmYS5mb3VuZCYmIXIuZm91bmQpe3ZhciBsPWEud2lkdGgsZj1hLmhlaWdodCxjPXt4OmwvZi8yLHk6LjV9O2kuc3R5bGU9YVYoX2UoX2Uoe30sbykse30seyJ0cmFuc2Zvcm0tb3JpZ2luIjoiIi5jb25jYXQoYy54K3MueC8xNiwiZW0gIikuY29uY2F0KGMueStzLnkvMTYsImVtIil9KSl9cmV0dXJuW3t0YWc6InN2ZyIsYXR0cmlidXRlczppLGNoaWxkcmVuOmV9XX1mdW5jdGlvbiBwaTEodCl7dmFyIGU9dC5wcmVmaXgsYT10Lmljb25OYW1lLHI9dC5jaGlsZHJlbixpPXQuYXR0cmlidXRlcyxvPXQuc3ltYm9sLHM9bz09PSEwPyIiLmNvbmNhdChlLCItIikuY29uY2F0KFplLmNzc1ByZWZpeCwiLSIpLmNvbmNhdChhKTpvO3JldHVyblt7dGFnOiJzdmciLGF0dHJpYnV0ZXM6e3N0eWxlOiJkaXNwbGF5OiBub25lOyJ9LGNoaWxkcmVuOlt7dGFnOiJzeW1ib2wiLGF0dHJpYnV0ZXM6X2UoX2Uoe30saSkse30se2lkOnN9KSxjaGlsZHJlbjpyfV19XX1mdW5jdGlvbiBoaTEodCl7dmFyIGU9WyJhcmlhLWxhYmVsIiwiYXJpYS1sYWJlbGxlZGJ5IiwidGl0bGUiLCJyb2xlIl07cmV0dXJuIGUuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gYSBpbiB0fSl9ZnVuY3Rpb24gazFlKHQpe3ZhciBlPXQuaWNvbnMsYT1lLm1haW4scj1lLm1hc2ssaT10LnByZWZpeCxvPXQuaWNvbk5hbWUscz10LnRyYW5zZm9ybSxsPXQuc3ltYm9sLGY9dC5tYXNrSWQsYz10LmV4dHJhLHU9dC53YXRjaGFibGUsZD11PT09dm9pZCAwPyExOnUsaD1yLmZvdW5kP3I6YSxnPWgud2lkdGgsYj1oLmhlaWdodCx4PVtaZS5yZXBsYWNlbWVudENsYXNzLG8/IiIuY29uY2F0KFplLmNzc1ByZWZpeCwiLSIpLmNvbmNhdChvKToiIl0uZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiBjLmNsYXNzZXMuaW5kZXhPZihDKT09PS0xfSkuZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiBDIT09IiJ8fCEhQ30pLmNvbmNhdChjLmNsYXNzZXMpLmpvaW4oIiAiKSxtPXtjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOl9lKF9lKHt9LGMuYXR0cmlidXRlcykse30seyJkYXRhLXByZWZpeCI6aSwiZGF0YS1pY29uIjpvLGNsYXNzOngscm9sZTpjLmF0dHJpYnV0ZXMucm9sZXx8ImltZyIsdmlld0JveDoiMCAwICIuY29uY2F0KGcsIiAiKS5jb25jYXQoYil9KX07IWhpMShjLmF0dHJpYnV0ZXMpJiYhYy5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdJiYobS5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdPSJ0cnVlIiksZCYmKG0uYXR0cmlidXRlc1skbl09IiIpO3ZhciB2PV9lKF9lKHt9LG0pLHt9LHtwcmVmaXg6aSxpY29uTmFtZTpvLG1haW46YSxtYXNrOnIsbWFza0lkOmYsdHJhbnNmb3JtOnMsc3ltYm9sOmwsc3R5bGVzOl9lKHt9LGMuc3R5bGVzKX0pLHk9ci5mb3VuZCYmYS5mb3VuZD9ycygiZ2VuZXJhdGVBYnN0cmFjdE1hc2siLHYpfHx7Y2hpbGRyZW46W10sYXR0cmlidXRlczp7fX06cnMoImdlbmVyYXRlQWJzdHJhY3RJY29uIix2KXx8e2NoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319LHc9eS5jaGlsZHJlbixFPXkuYXR0cmlidXRlcztyZXR1cm4gdi5jaGlsZHJlbj13LHYuYXR0cmlidXRlcz1FLGw/cGkxKHYpOnVpMSh2KX1mdW5jdGlvbiBFcnQodCl7dmFyIGU9dC5jb250ZW50LGE9dC53aWR0aCxyPXQuaGVpZ2h0LGk9dC50cmFuc2Zvcm0sbz10LmV4dHJhLHM9dC53YXRjaGFibGUsbD1zPT09dm9pZCAwPyExOnMsZj1fZShfZSh7fSxvLmF0dHJpYnV0ZXMpLHt9LHtjbGFzczpvLmNsYXNzZXMuam9pbigiICIpfSk7bCYmKGZbJG5dPSIiKTt2YXIgYz1fZSh7fSxvLnN0eWxlcyk7bTFlKGkpJiYoYy50cmFuc2Zvcm09cXIxKHt0cmFuc2Zvcm06aSxzdGFydENlbnRlcmVkOiEwLHdpZHRoOmEsaGVpZ2h0OnJ9KSxjWyItd2Via2l0LXRyYW5zZm9ybSJdPWMudHJhbnNmb3JtKTt2YXIgdT1hVihjKTt1Lmxlbmd0aD4wJiYoZi5zdHlsZT11KTt2YXIgZD1bXTtyZXR1cm4gZC5wdXNoKHt0YWc6InNwYW4iLGF0dHJpYnV0ZXM6ZixjaGlsZHJlbjpbZV19KSxkfWZ1bmN0aW9uIG1pMSh0KXt2YXIgZT10LmNvbnRlbnQsYT10LmV4dHJhLHI9X2UoX2Uoe30sYS5hdHRyaWJ1dGVzKSx7fSx7Y2xhc3M6YS5jbGFzc2VzLmpvaW4oIiAiKX0pLGk9YVYoYS5zdHlsZXMpO2kubGVuZ3RoPjAmJihyLnN0eWxlPWkpO3ZhciBvPVtdO3JldHVybiBvLnB1c2goe3RhZzoic3BhbiIsYXR0cmlidXRlczpyLGNoaWxkcmVuOltlXX0pLG99ZnVuY3Rpb24gQzFlKHQpe3ZhciBlPXRbMF0sYT10WzFdLHI9dC5zbGljZSg0KSxpPUtxKHIsMSksbz1pWzBdLHM9bnVsbDtyZXR1cm4gQXJyYXkuaXNBcnJheShvKT9zPXt0YWc6ImciLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChaZS5jc3NQcmVmaXgsIi0iKS5jb25jYXQocDFlLkdST1VQKX0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChaZS5jc3NQcmVmaXgsIi0iKS5jb25jYXQocDFlLlNFQ09OREFSWSksZmlsbDoiY3VycmVudENvbG9yIixkOm9bMF19fSx7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOntjbGFzczoiIi5jb25jYXQoWmUuY3NzUHJlZml4LCItIikuY29uY2F0KHAxZS5QUklNQVJZKSxmaWxsOiJjdXJyZW50Q29sb3IiLGQ6b1sxXX19XX06cz17dGFnOiJwYXRoIixhdHRyaWJ1dGVzOntmaWxsOiJjdXJyZW50Q29sb3IiLGQ6b319LHtmb3VuZDohMCx3aWR0aDplLGhlaWdodDphLGljb246c319ZnVuY3Rpb24geGkxKHQsZSl7IW9ydCYmIVplLnNob3dNaXNzaW5nSWNvbnMmJnQmJmNvbnNvbGUuZXJyb3IoJ0ljb24gd2l0aCBuYW1lICInLmNvbmNhdCh0LCciIGFuZCBwcmVmaXggIicpLmNvbmNhdChlLCciIGlzIG1pc3NpbmcuJykpfWZ1bmN0aW9uIEwxZSh0LGUpe3ZhciBhPWU7cmV0dXJuIGU9PT0iZmEiJiZaZS5zdHlsZURlZmF1bHQhPT1udWxsJiYoZT1hcygpKSxuZXcgUHJvbWlzZShmdW5jdGlvbihyLGkpe2lmKGE9PT0iZmEiKXt2YXIgbz1McnQodCl8fHt9O3Q9by5pY29uTmFtZXx8dCxlPW8ucHJlZml4fHxlfWlmKHQmJmUmJlMxZVtlXSYmUzFlW2VdW3RdKXt2YXIgcz1TMWVbZV1bdF07cmV0dXJuIHIoQzFlKHMpKX14aTEodCxlKSxyKF9lKF9lKHt9LGdpMSkse30se2ljb246WmUuc2hvd01pc3NpbmdJY29ucyYmdD9ycygibWlzc2luZ0ljb25BYnN0cmFjdCIpfHx7fTp7fX0pKX0pfWZ1bmN0aW9uIElydCh0KXt2YXIgZT10LmdldEF0dHJpYnV0ZT90LmdldEF0dHJpYnV0ZSgkbik6bnVsbDtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmcifWZ1bmN0aW9uIHZpMSh0KXt2YXIgZT10LmdldEF0dHJpYnV0ZT90LmdldEF0dHJpYnV0ZShuMWUpOm51bGwsYT10LmdldEF0dHJpYnV0ZT90LmdldEF0dHJpYnV0ZShsMWUpOm51bGw7cmV0dXJuIGUmJmF9ZnVuY3Rpb24geWkxKHQpe3JldHVybiB0JiZ0LmNsYXNzTGlzdCYmdC5jbGFzc0xpc3QuY29udGFpbnMmJnQuY2xhc3NMaXN0LmNvbnRhaW5zKFplLnJlcGxhY2VtZW50Q2xhc3MpfWZ1bmN0aW9uIHdpMSgpe2lmKFplLmF1dG9SZXBsYWNlU3ZnPT09ITApcmV0dXJuIGxWLnJlcGxhY2U7dmFyIHQ9bFZbWmUuYXV0b1JlcGxhY2VTdmddO3JldHVybiB0fHxsVi5yZXBsYWNlfWZ1bmN0aW9uIE1pMSh0KXtyZXR1cm4gZDEuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdCl9ZnVuY3Rpb24gemkxKHQpe3JldHVybiBkMS5jcmVhdGVFbGVtZW50KHQpfWZ1bmN0aW9uIEZydCh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sYT1lLmNlRm4scj1hPT09dm9pZCAwP3QudGFnPT09InN2ZyI/TWkxOnppMTphO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gZDEuY3JlYXRlVGV4dE5vZGUodCk7dmFyIGk9cih0LnRhZyk7T2JqZWN0LmtleXModC5hdHRyaWJ1dGVzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihzKXtpLnNldEF0dHJpYnV0ZShzLHQuYXR0cmlidXRlc1tzXSl9KTt2YXIgbz10LmNoaWxkcmVufHxbXTtyZXR1cm4gby5mb3JFYWNoKGZ1bmN0aW9uKHMpe2kuYXBwZW5kQ2hpbGQoRnJ0KHMse2NlRm46cn0pKX0pLGl9ZnVuY3Rpb24ga2kxKHQpe3ZhciBlPSIgIi5jb25jYXQodC5vdXRlckhUTUwsIiAiKTtyZXR1cm4gZT0iIi5jb25jYXQoZSwiRm9udCBBd2Vzb21lIGZvbnRhd2Vzb21lLmNvbSAiKSxlfWZ1bmN0aW9uIE9ydCh0KXt0KCl9ZnVuY3Rpb24gQnJ0KHQsZSl7dmFyIGE9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpuVjtpZih0Lmxlbmd0aD09PTApYSgpO2Vsc2V7dmFyIHI9T3J0O1plLm11dGF0ZUFwcHJvYWNoPT09THIxJiYocj1lcy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fE9ydCkscihmdW5jdGlvbigpe3ZhciBpPXdpMSgpLG89XzFlLmJlZ2luKCJtdXRhdGUiKTt0Lm1hcChpKSxvKCksYSgpfSl9fWZ1bmN0aW9uIFJydCgpe0ExZT0hMH1mdW5jdGlvbiAkMWUoKXtBMWU9ITF9ZnVuY3Rpb24gSHJ0KHQpe2lmKF9hdCYmWmUub2JzZXJ2ZU11dGF0aW9ucyl7dmFyIGU9dC50cmVlQ2FsbGJhY2ssYT1lPT09dm9pZCAwP25WOmUscj10Lm5vZGVDYWxsYmFjayxpPXI9PT12b2lkIDA/blY6cixvPXQucHNldWRvRWxlbWVudHNDYWxsYmFjayxzPW89PT12b2lkIDA/blY6byxsPXQub2JzZXJ2ZU11dGF0aW9uc1Jvb3QsZj1sPT09dm9pZCAwP2QxOmw7Y1Y9bmV3IF9hdChmdW5jdGlvbihjKXtpZighQTFlKXt2YXIgdT1hcygpO1k2KGMpLmZvckVhY2goZnVuY3Rpb24oZCl7aWYoZC50eXBlPT09ImNoaWxkTGlzdCImJmQuYWRkZWROb2Rlcy5sZW5ndGg+MCYmIUlydChkLmFkZGVkTm9kZXNbMF0pJiYoWmUuc2VhcmNoUHNldWRvRWxlbWVudHMmJnMoZC50YXJnZXQpLGEoZC50YXJnZXQpKSxkLnR5cGU9PT0iYXR0cmlidXRlcyImJmQudGFyZ2V0LnBhcmVudE5vZGUmJlplLnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZzKFtkLnRhcmdldF0sITApLGQudHlwZT09PSJhdHRyaWJ1dGVzIiYmSXJ0KGQudGFyZ2V0KSYmfkVyMS5pbmRleE9mKGQuYXR0cmlidXRlTmFtZSkpaWYoZC5hdHRyaWJ1dGVOYW1lPT09ImNsYXNzIiYmdmkxKGQudGFyZ2V0KSl7dmFyIGg9b1YoaDFlKGQudGFyZ2V0KSksZz1oLnByZWZpeCxiPWguaWNvbk5hbWU7ZC50YXJnZXQuc2V0QXR0cmlidXRlKG4xZSxnfHx1KSxiJiZkLnRhcmdldC5zZXRBdHRyaWJ1dGUobDFlLGIpfWVsc2UgeWkxKGQudGFyZ2V0KSYmaShkLnRhcmdldCl9KX19KSwkaSYmY1Yub2JzZXJ2ZShmLHtjaGlsZExpc3Q6ITAsYXR0cmlidXRlczohMCxjaGFyYWN0ZXJEYXRhOiEwLHN1YnRyZWU6ITB9KX19ZnVuY3Rpb24gU2kxKCl7Y1YmJmNWLmRpc2Nvbm5lY3QoKX1mdW5jdGlvbiBDaTEodCl7dmFyIGU9dC5nZXRBdHRyaWJ1dGUoInN0eWxlIiksYT1bXTtyZXR1cm4gZSYmKGE9ZS5zcGxpdCgiOyIpLnJlZHVjZShmdW5jdGlvbihyLGkpe3ZhciBvPWkuc3BsaXQoIjoiKSxzPW9bMF0sbD1vLnNsaWNlKDEpO3JldHVybiBzJiZsLmxlbmd0aD4wJiYocltzXT1sLmpvaW4oIjoiKS50cmltKCkpLHJ9LHt9KSksYX1mdW5jdGlvbiBMaTEodCl7dmFyIGU9dC5nZXRBdHRyaWJ1dGUoImRhdGEtcHJlZml4IiksYT10LmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIikscj10LmlubmVyVGV4dCE9PXZvaWQgMD90LmlubmVyVGV4dC50cmltKCk6IiIsaT1vVihoMWUodCkpO3JldHVybiBpLnByZWZpeHx8KGkucHJlZml4PWFzKCkpLGUmJmEmJihpLnByZWZpeD1lLGkuaWNvbk5hbWU9YSksaS5pY29uTmFtZSYmaS5wcmVmaXh8fChpLnByZWZpeCYmci5sZW5ndGg+MCYmKGkuaWNvbk5hbWU9UXIxKGkucHJlZml4LHQuaW5uZXJUZXh0KXx8dzFlKGkucHJlZml4LGJydCh0LmlubmVyVGV4dCkpKSwhaS5pY29uTmFtZSYmWmUuYXV0b0ZldGNoU3ZnJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYoaS5pY29uTmFtZT10LmZpcnN0Q2hpbGQuZGF0YSkpLGl9ZnVuY3Rpb24gVGkxKHQpe3ZhciBlPVk2KHQuYXR0cmlidXRlcykucmVkdWNlKGZ1bmN0aW9uKGEscil7cmV0dXJuIGEubmFtZSE9PSJjbGFzcyImJmEubmFtZSE9PSJzdHlsZSImJihhW3IubmFtZV09ci52YWx1ZSksYX0se30pO3JldHVybiBlfWZ1bmN0aW9uIF9pMSgpe3JldHVybntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHRyYW5zZm9ybTpqcixzeW1ib2w6ITEsbWFzazp7aWNvbk5hbWU6bnVsbCxwcmVmaXg6bnVsbCxyZXN0OltdfSxtYXNrSWQ6bnVsbCxleHRyYTp7Y2xhc3NlczpbXSxzdHlsZXM6e30sYXR0cmlidXRlczp7fX19fWZ1bmN0aW9uIHFydCh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e3N0eWxlUGFyc2VyOiEwfSxhPUxpMSh0KSxyPWEuaWNvbk5hbWUsaT1hLnByZWZpeCxvPWEucmVzdCxzPVRpMSh0KSxsPU0xZSgicGFyc2VOb2RlQXR0cmlidXRlcyIse30sdCksZj1lLnN0eWxlUGFyc2VyP0NpMSh0KTpbXTtyZXR1cm4gX2Uoe2ljb25OYW1lOnIscHJlZml4OmksdHJhbnNmb3JtOmpyLG1hc2s6e2ljb25OYW1lOm51bGwscHJlZml4Om51bGwscmVzdDpbXX0sbWFza0lkOm51bGwsc3ltYm9sOiExLGV4dHJhOntjbGFzc2VzOm8sc3R5bGVzOmYsYXR0cmlidXRlczpzfX0sbCl9ZnVuY3Rpb24gVnJ0KHQpe3ZhciBlPVplLmF1dG9SZXBsYWNlU3ZnPT09Im5lc3QiP3FydCh0LHtzdHlsZVBhcnNlcjohMX0pOnFydCh0KTtyZXR1cm5+ZS5leHRyYS5jbGFzc2VzLmluZGV4T2YobHJ0KT9ycygiZ2VuZXJhdGVMYXllcnNUZXh0Iix0LGUpOnJzKCJnZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb24iLHQsZSl9ZnVuY3Rpb24gJGkxKCl7cmV0dXJuW10uY29uY2F0KEphKFhhdCksSmEoSmF0KSl9ZnVuY3Rpb24gVXJ0KHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpudWxsO2lmKCEkaSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGE9ZDEuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdCxyPWZ1bmN0aW9uKGQpe3JldHVybiBhLmFkZCgiIi5jb25jYXQocnJ0LCItIikuY29uY2F0KGQpKX0saT1mdW5jdGlvbihkKXtyZXR1cm4gYS5yZW1vdmUoIiIuY29uY2F0KHJydCwiLSIpLmNvbmNhdChkKSl9LG89WmUuYXV0b0ZldGNoU3ZnPyRpMSgpOkRhdC5jb25jYXQoT2JqZWN0LmtleXMoQWkxKSk7by5pbmNsdWRlcygiZmEiKXx8by5wdXNoKCJmYSIpO3ZhciBzPVsiLiIuY29uY2F0KGxydCwiOm5vdChbIikuY29uY2F0KCRuLCJdKSIpXS5jb25jYXQoby5tYXAoZnVuY3Rpb24odSl7cmV0dXJuIi4iLmNvbmNhdCh1LCI6bm90KFsiKS5jb25jYXQoJG4sIl0pIil9KSkuam9pbigiLCAiKTtpZihzLmxlbmd0aD09PTApcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBsPVtdO3RyeXtsPVk2KHQucXVlcnlTZWxlY3RvckFsbChzKSl9Y2F0Y2h7fWlmKGwubGVuZ3RoPjApcigicGVuZGluZyIpLGkoImNvbXBsZXRlIik7ZWxzZSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGY9XzFlLmJlZ2luKCJvblRyZWUiKSxjPWwucmVkdWNlKGZ1bmN0aW9uKHUsZCl7dHJ5e3ZhciBoPVZydChkKTtoJiZ1LnB1c2goaCl9Y2F0Y2goZyl7b3J0fHxnLm5hbWU9PT0iTWlzc2luZ0ljb24iJiZjb25zb2xlLmVycm9yKGcpfXJldHVybiB1fSxbXSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHUsZCl7UHJvbWlzZS5hbGwoYykudGhlbihmdW5jdGlvbihoKXtCcnQoaCxmdW5jdGlvbigpe3IoImFjdGl2ZSIpLHIoImNvbXBsZXRlIiksaSgicGVuZGluZyIpLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiZlKCksZigpLHUoKX0pfSkuY2F0Y2goZnVuY3Rpb24oaCl7ZigpLGQoaCl9KX0pfWZ1bmN0aW9uIERpMSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDtWcnQodCkudGhlbihmdW5jdGlvbihhKXthJiZCcnQoW2FdLGUpfSl9ZnVuY3Rpb24gRWkxKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj0oZXx8e30pLmljb24/ZTp6MWUoZXx8e30pLGk9YS5tYXNrO3JldHVybiBpJiYoaT0oaXx8e30pLmljb24/aTp6MWUoaXx8e30pKSx0KHIsX2UoX2Uoe30sYSkse30se21hc2s6aX0pKX19ZnVuY3Rpb24gUmkxKHQpe3ZhciBlPXQucmVwbGFjZShqcnQsIiIpO3JldHVybiBicnQoSmEoZSlbMF18fCIiKX1mdW5jdGlvbiBIaTEodCl7dmFyIGU9dC5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LWZlYXR1cmUtc2V0dGluZ3MiKS5pbmNsdWRlcygic3MwMSIpLGE9dC5nZXRQcm9wZXJ0eVZhbHVlKCJjb250ZW50Iikscj1hLnJlcGxhY2UoanJ0LCIiKSxpPXIuY29kZVBvaW50QXQoMCksbz1pPj1XcnRbMF0mJmk8PVdydFsxXSxzPXIubGVuZ3RoPT09Mj9yWzBdPT09clsxXTohMTtyZXR1cm4gb3x8c3x8ZX1mdW5jdGlvbiBxaTEodCxlKXt2YXIgYT10LnJlcGxhY2UoL15bJyJdfFsnIl0kL2csIiIpLnRvTG93ZXJDYXNlKCkscj1wYXJzZUludChlKSxpPWlzTmFOKHIpPyJub3JtYWwiOnI7cmV0dXJuKEQxZVthXXx8e30pW2ldfHxCaTFbYV19ZnVuY3Rpb24gWXJ0KHQsZSl7dmFyIGE9IiIuY29uY2F0KENyMSkuY29uY2F0KGUucmVwbGFjZSgiOiIsIi0iKSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsaSl7aWYodC5nZXRBdHRyaWJ1dGUoYSkhPT1udWxsKXJldHVybiByKCk7dmFyIG89WTYodC5jaGlsZHJlbikscz1vLmZpbHRlcihmdW5jdGlvbih6KXtyZXR1cm4gei5nZXRBdHRyaWJ1dGUoczFlKT09PWV9KVswXSxsPWVzLmdldENvbXB1dGVkU3R5bGUodCxlKSxmPWwuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1mYW1pbHkiKSxjPWYubWF0Y2goJHIxKSx1PWwuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC13ZWlnaHQiKSxkPWwuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpO2lmKHMmJiFjKXJldHVybiB0LnJlbW92ZUNoaWxkKHMpLHIoKTtpZihjJiZkIT09Im5vbmUiJiZkIT09IiIpe3ZhciBoPWwuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpLGc9cWkxKGYsdSksYj1SaTEoaCkseD1jWzBdLnN0YXJ0c1dpdGgoIkZvbnRBd2Vzb21lIiksbT1IaTEobCksdj13MWUoZyxiKSx5PXY7aWYoeCl7dmFyIHc9S3IxKGIpO3cuaWNvbk5hbWUmJncucHJlZml4JiYodj13Lmljb25OYW1lLGc9dy5wcmVmaXgpfWlmKHYmJiFtJiYoIXN8fHMuZ2V0QXR0cmlidXRlKG4xZSkhPT1nfHxzLmdldEF0dHJpYnV0ZShsMWUpIT09eSkpe3Quc2V0QXR0cmlidXRlKGEseSkscyYmdC5yZW1vdmVDaGlsZChzKTt2YXIgRT1faTEoKSxDPUUuZXh0cmE7Qy5hdHRyaWJ1dGVzW3MxZV09ZSxMMWUodixnKS50aGVuKGZ1bmN0aW9uKHope3ZhciBQPWsxZShfZShfZSh7fSxFKSx7fSx7aWNvbnM6e21haW46eixtYXNrOlRydCgpfSxwcmVmaXg6ZyxpY29uTmFtZTp5LGV4dHJhOkMsd2F0Y2hhYmxlOiEwfSkpLF89ZDEuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO2U9PT0iOjpiZWZvcmUiP3QuaW5zZXJ0QmVmb3JlKF8sdC5maXJzdENoaWxkKTp0LmFwcGVuZENoaWxkKF8pLF8ub3V0ZXJIVE1MPVAubWFwKGZ1bmN0aW9uKCQpe3JldHVybiBVZCgkKX0pLmpvaW4oYApgKSx0LnJlbW92ZUF0dHJpYnV0ZShhKSxyKCl9KS5jYXRjaChpKX1lbHNlIHIoKX1lbHNlIHIoKX0pfWZ1bmN0aW9uIFZpMSh0KXtyZXR1cm4gUHJvbWlzZS5hbGwoW1lydCh0LCI6OmJlZm9yZSIpLFlydCh0LCI6OmFmdGVyIildKX1mdW5jdGlvbiBVaTEodCl7cmV0dXJuIHQucGFyZW50Tm9kZSE9PWRvY3VtZW50LmhlYWQmJiF+VHIxLmluZGV4T2YodC50YWdOYW1lLnRvVXBwZXJDYXNlKCkpJiYhdC5nZXRBdHRyaWJ1dGUoczFlKSYmKCF0LnBhcmVudE5vZGV8fHQucGFyZW50Tm9kZS50YWdOYW1lIT09InN2ZyIpfWZ1bmN0aW9uIFpydCh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITE7aWYoJGkpe3ZhciBhO2lmKGUpYT10O2Vsc2UgaWYoWmUuc2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbilhPXQucXVlcnlTZWxlY3RvckFsbCgiKiIpO2Vsc2V7dmFyIHI9bmV3IFNldCxpPVhxKGRvY3VtZW50LnN0eWxlU2hlZXRzKSxvO3RyeXtmb3IoaS5zKCk7IShvPWkubigpKS5kb25lOyl7dmFyIHM9by52YWx1ZTt0cnl7dmFyIGw9WHEocy5jc3NSdWxlcyksZjt0cnl7Zm9yKGwucygpOyEoZj1sLm4oKSkuZG9uZTspe3ZhciBjPWYudmFsdWUsdT1XaTEoYy5zZWxlY3RvclRleHQpLGQ9WHEodSksaDt0cnl7Zm9yKGQucygpOyEoaD1kLm4oKSkuZG9uZTspe3ZhciBnPWgudmFsdWU7ci5hZGQoZyl9fWNhdGNoKHgpe2QuZSh4KX1maW5hbGx5e2QuZigpfX19Y2F0Y2goeCl7bC5lKHgpfWZpbmFsbHl7bC5mKCl9fWNhdGNoKHgpe1plLnNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MmJmNvbnNvbGUud2FybigiRm9udCBBd2Vzb21lOiBjYW5ub3QgcGFyc2Ugc3R5bGVzaGVldDogIi5jb25jYXQocy5ocmVmLCIgKCIpLmNvbmNhdCh4Lm1lc3NhZ2UsYCkKSWYgaXQgZGVjbGFyZXMgYW55IEZvbnQgQXdlc29tZSBDU1MgcHNldWRvLWVsZW1lbnRzLCB0aGV5IHdpbGwgbm90IGJlIHJlbmRlcmVkIGFzIFNWRyBpY29ucy4gQWRkIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHRvIHRoZSA8bGluaz4sIGVuYWJsZSBzZWFyY2hQc2V1ZG9FbGVtZW50c0Z1bGxTY2FuIGZvciBzbG93ZXIgYnV0IG1vcmUgdGhvcm91Z2ggRE9NIHBhcnNpbmcsIG9yIHN1cHByZXNzIHRoaXMgd2FybmluZyBieSBzZXR0aW5nIHNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MgdG8gZmFsc2UuYCkpfX19Y2F0Y2goeCl7aS5lKHgpfWZpbmFsbHl7aS5mKCl9aWYoIXIuc2l6ZSlyZXR1cm47dmFyIGI9QXJyYXkuZnJvbShyKS5qb2luKCIsICIpO3RyeXthPXQucXVlcnlTZWxlY3RvckFsbChiKX1jYXRjaHt9fXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih4LG0pe3ZhciB2PVk2KGEpLmZpbHRlcihVaTEpLm1hcChWaTEpLHk9XzFlLmJlZ2luKCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO1JydCgpLFByb21pc2UuYWxsKHYpLnRoZW4oZnVuY3Rpb24oKXt5KCksJDFlKCkseCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt5KCksJDFlKCksbSgpfSl9KX19ZnVuY3Rpb24gS3J0KHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMDtyZXR1cm4gdC5hdHRyaWJ1dGVzJiYodC5hdHRyaWJ1dGVzLmZpbGx8fGUpJiYodC5hdHRyaWJ1dGVzLmZpbGw9ImJsYWNrIiksdH1mdW5jdGlvbiBYaTEodCl7cmV0dXJuIHQudGFnPT09ImciP3QuY2hpbGRyZW46W3RdfXZhciB6YXQsdDFlLGthdCxTYXQsQ2F0LFEyMSxMYXQsVGF0LGVzLGQxLF9hdCxlVixPNDIsJGksQWF0LGExZSxLMjEsSjIxLCRhdCxlYTEsRGF0LGkyLFJkLEVhdCxOYXQsUGF0LElhdCxGYXQsT2F0LEJhdCxSYXQsSGF0LHFhdCxWYXQsVWF0LGphdCxXYXQsR2F0LFlhdCx0YTEsYWExLHJhMSxpYTEsb2ExLHNhMSxuYTEsbGExLGNhMSxkYTEsZmExLHVhMSxwYTEsaGExLG1hMSxnYTEseGExLGJhMSxaYXQsQjQyLHZhMSx5YTEsd2ExLE1hMSxYYXQsUWF0LHphMSxrYTEsU2ExLENhMSxMYTEsUjQyLFRhMSxfYTEsQWExLEthdCxyMWUsdFYsJGExLERhMSxFYTEsTmExLFBhMSxJYTEsRmExLE9hMSxCYTEsUmExLEhhMSxxYTEsVmExLFVhMSxqYTEsV2ExLEdhMSxZYTEsWmExLFhhMSxRYTEsS2ExLEphMSxlcjEsdHIxLGFyMSxycjEsaXIxLG9yMSxzcjEsbnIxLGxyMSxjcjEsZHIxLGZyMSx1cjEscHIxLEg0MixocjEsbXIxLGdyMSx4cjEscTQyLGJyMSx2cjEsaTFlLHlyMSxKYXQsd3IxLGVydCxNcjEsenIxLGtyMSxTcjEsRGksbzFlLHRydCxhcnQsJG4sczFlLENyMSxuMWUsbDFlLHJydCxMcjEsVHIxLGlydCxvcnQsc3J0LF9yMSxjMWUsbnJ0LGQxZSxmMWUsdTFlLFY0MixBcjEsbHJ0LCRyMSxEcjEsVTQyLEVyMSxwMWUsTnIxLHFkLGRydCxHNixaZSxWZCx0cyxqcixCcjEsVnIxLGhydCxVcjEsRWksZXIsbXJ0LGdydCxyVixXcjEseDFlLHYxZSx0cixqNDIsVzQyLGpkLEdyMSx5cnQsWXIxLHkxZSx3cnQsTXJ0LHpydCxrcnQsU3J0LENydCxUcnQsQXJ0LGFpMSxyaTEsb2kxLCRydCxaNixYNixzaTEsRHJ0LGxpMSxjaTEsZGkxLHRhLGZpMSxTMWUsZ2kxLE5ydCxUMWUsV2QsYmkxLFBydCxfMWUsblYsbFYsQTFlLGNWLEFpMSxOaTEsUGkxLElpMSxGaTEsT2kxLGpydCxXcnQsR3J0LEQxZSxCaTEsamkxLFdpMSxHaTEsWHJ0LFlpMSxRcnQsWmkxLEUxZSxRaTEsS2kxLEppMSxlbzEsdG8xLGFvMSxybzEsaW8xLG9vMSxzbzEsbm8xLE4xZSxsbzEsY28xLGRvMSxjcnQsSnJ0PW4oKCk9Pnt6YXQ9ZnVuY3Rpb24oKXt9LHQxZT17fSxrYXQ9e30sU2F0PW51bGwsQ2F0PXttYXJrOnphdCxtZWFzdXJlOnphdH07dHJ5e3R5cGVvZiB3aW5kb3c8InUiJiYodDFlPXdpbmRvdyksdHlwZW9mIGRvY3VtZW50PCJ1IiYmKGthdD1kb2N1bWVudCksdHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXI8InUiJiYoU2F0PU11dGF0aW9uT2JzZXJ2ZXIpLHR5cGVvZiBwZXJmb3JtYW5jZTwidSImJihDYXQ9cGVyZm9ybWFuY2UpfWNhdGNoe31RMjE9dDFlLm5hdmlnYXRvcnx8e30sTGF0PVEyMS51c2VyQWdlbnQsVGF0PUxhdD09PXZvaWQgMD8iIjpMYXQsZXM9dDFlLGQxPWthdCxfYXQ9U2F0LGVWPUNhdCxPNDI9ISFlcy5kb2N1bWVudCwkaT0hIWQxLmRvY3VtZW50RWxlbWVudCYmISFkMS5oZWFkJiZ0eXBlb2YgZDEuYWRkRXZlbnRMaXN0ZW5lcj09ImZ1bmN0aW9uIiYmdHlwZW9mIGQxLmNyZWF0ZUVsZW1lbnQ9PSJmdW5jdGlvbiIsQWF0PX5UYXQuaW5kZXhPZigiTVNJRSIpfHx+VGF0LmluZGV4T2YoIlRyaWRlbnQvIiksSzIxPS9mYShrfGtkfHN8cnxsfHR8ZHxkcnxkbHxkdHxifHNscnxzbHByfHdzYnx0bHxuc3xuZHN8ZXN8anJ8amZyfGpkcnx1c2J8dWZzYnx1ZHNifGNyfHNzfHNyfHNsfHN0fHNkc3xzZHJ8c2RsfHNkdCk/W1wtXCBdLyxKMjE9L0ZvbnQgP0F3ZXNvbWUgPyhbNTY3IF0qKShTb2xpZHxSZWd1bGFyfExpZ2h0fFRoaW58RHVvdG9uZXxCcmFuZHN8RnJlZXxQcm98U2hhcnAgRHVvdG9uZXxTaGFycHxLaXR8Tm90ZG9nIER1b3xOb3Rkb2d8Q2hpc2VsfEV0Y2h8VGh1bWJwcmludHxKZWxseSBGaWxsfEplbGx5IER1b3xKZWxseXxVdGlsaXR5fFV0aWxpdHkgRmlsbHxVdGlsaXR5IER1b3xTbGFiIFByZXNzfFNsYWJ8V2hpdGVib2FyZCk/LiovaSwkYXQ9e2NsYXNzaWM6e2ZhOiJzb2xpZCIsZmFzOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLGZhcjoicmVndWxhciIsImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWw6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmF0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4iLGZhYjoiYnJhbmRzIiwiZmEtYnJhbmRzIjoiYnJhbmRzIn0sZHVvdG9uZTp7ZmE6InNvbGlkIixmYWQ6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsImZhLWR1b3RvbmUiOiJzb2xpZCIsZmFkcjoicmVndWxhciIsImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWRsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhZHQ6InRoaW4iLCJmYS10aGluIjoidGhpbiJ9LHNoYXJwOntmYToic29saWQiLGZhc3M6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsZmFzcjoicmVndWxhciIsImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYXNsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhc3Q6InRoaW4iLCJmYS10aGluIjoidGhpbiJ9LCJzaGFycC1kdW90b25lIjp7ZmE6InNvbGlkIixmYXNkczoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIixmYXNkcjoicmVndWxhciIsImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYXNkbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYXNkdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIn0sc2xhYjp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYXNscjoicmVndWxhciJ9LCJzbGFiLXByZXNzIjp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYXNscHI6InJlZ3VsYXIifSx0aHVtYnByaW50OnsiZmEtbGlnaHQiOiJsaWdodCIsZmF0bDoibGlnaHQifSx3aGl0ZWJvYXJkOnsiZmEtc2VtaWJvbGQiOiJzZW1pYm9sZCIsZmF3c2I6InNlbWlib2xkIn0sbm90ZG9nOnsiZmEtc29saWQiOiJzb2xpZCIsZmFuczoic29saWQifSwibm90ZG9nLWR1byI6eyJmYS1zb2xpZCI6InNvbGlkIixmYW5kczoic29saWQifSxldGNoOnsiZmEtc29saWQiOiJzb2xpZCIsZmFlczoic29saWQifSxqZWxseTp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWpyOiJyZWd1bGFyIn0sImplbGx5LWZpbGwiOnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhamZyOiJyZWd1bGFyIn0sImplbGx5LWR1byI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFqZHI6InJlZ3VsYXIifSxjaGlzZWw6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFjcjoicmVndWxhciJ9LHV0aWxpdHk6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVzYjoic2VtaWJvbGQifSwidXRpbGl0eS1kdW8iOnsiZmEtc2VtaWJvbGQiOiJzZW1pYm9sZCIsZmF1ZHNiOiJzZW1pYm9sZCJ9LCJ1dGlsaXR5LWZpbGwiOnsiZmEtc2VtaWJvbGQiOiJzZW1pYm9sZCIsZmF1ZnNiOiJzZW1pYm9sZCJ9fSxlYTE9e0dST1VQOiJkdW90b25lLWdyb3VwIixTV0FQX09QQUNJVFk6InN3YXAtb3BhY2l0eSIsUFJJTUFSWToicHJpbWFyeSIsU0VDT05EQVJZOiJzZWNvbmRhcnkifSxEYXQ9WyJmYS1jbGFzc2ljIiwiZmEtZHVvdG9uZSIsImZhLXNoYXJwIiwiZmEtc2hhcnAtZHVvdG9uZSIsImZhLXRodW1icHJpbnQiLCJmYS13aGl0ZWJvYXJkIiwiZmEtbm90ZG9nIiwiZmEtbm90ZG9nLWR1byIsImZhLWNoaXNlbCIsImZhLWV0Y2giLCJmYS1qZWxseSIsImZhLWplbGx5LWZpbGwiLCJmYS1qZWxseS1kdW8iLCJmYS1zbGFiIiwiZmEtc2xhYi1wcmVzcyIsImZhLXV0aWxpdHkiLCJmYS11dGlsaXR5LWR1byIsImZhLXV0aWxpdHktZmlsbCJdLGkyPSJjbGFzc2ljIixSZD0iZHVvdG9uZSIsRWF0PSJzaGFycCIsTmF0PSJzaGFycC1kdW90b25lIixQYXQ9ImNoaXNlbCIsSWF0PSJldGNoIixGYXQ9ImplbGx5IixPYXQ9ImplbGx5LWR1byIsQmF0PSJqZWxseS1maWxsIixSYXQ9Im5vdGRvZyIsSGF0PSJub3Rkb2ctZHVvIixxYXQ9InNsYWIiLFZhdD0ic2xhYi1wcmVzcyIsVWF0PSJ0aHVtYnByaW50IixqYXQ9InV0aWxpdHkiLFdhdD0idXRpbGl0eS1kdW8iLEdhdD0idXRpbGl0eS1maWxsIixZYXQ9IndoaXRlYm9hcmQiLHRhMT0iQ2xhc3NpYyIsYWExPSJEdW90b25lIixyYTE9IlNoYXJwIixpYTE9IlNoYXJwIER1b3RvbmUiLG9hMT0iQ2hpc2VsIixzYTE9IkV0Y2giLG5hMT0iSmVsbHkiLGxhMT0iSmVsbHkgRHVvIixjYTE9IkplbGx5IEZpbGwiLGRhMT0iTm90ZG9nIixmYTE9Ik5vdGRvZyBEdW8iLHVhMT0iU2xhYiIscGExPSJTbGFiIFByZXNzIixoYTE9IlRodW1icHJpbnQiLG1hMT0iVXRpbGl0eSIsZ2ExPSJVdGlsaXR5IER1byIseGExPSJVdGlsaXR5IEZpbGwiLGJhMT0iV2hpdGVib2FyZCIsWmF0PVtpMixSZCxFYXQsTmF0LFBhdCxJYXQsRmF0LE9hdCxCYXQsUmF0LEhhdCxxYXQsVmF0LFVhdCxqYXQsV2F0LEdhdCxZYXRdLEI0Mj0oYTFlPXt9LG10KG10KG10KG10KG10KG10KG10KG10KG10KG10KGExZSxpMix0YTEpLFJkLGFhMSksRWF0LHJhMSksTmF0LGlhMSksUGF0LG9hMSksSWF0LHNhMSksRmF0LG5hMSksT2F0LGxhMSksQmF0LGNhMSksUmF0LGRhMSksbXQobXQobXQobXQobXQobXQobXQobXQoYTFlLEhhdCxmYTEpLHFhdCx1YTEpLFZhdCxwYTEpLFVhdCxoYTEpLGphdCxtYTEpLFdhdCxnYTEpLEdhdCx4YTEpLFlhdCxiYTEpKSx2YTE9e2NsYXNzaWM6ezkwMDoiZmFzIiw0MDA6ImZhciIsbm9ybWFsOiJmYXIiLDMwMDoiZmFsIiwxMDA6ImZhdCJ9LGR1b3RvbmU6ezkwMDoiZmFkIiw0MDA6ImZhZHIiLDMwMDoiZmFkbCIsMTAwOiJmYWR0In0sc2hhcnA6ezkwMDoiZmFzcyIsNDAwOiJmYXNyIiwzMDA6ImZhc2wiLDEwMDoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7OTAwOiJmYXNkcyIsNDAwOiJmYXNkciIsMzAwOiJmYXNkbCIsMTAwOiJmYXNkdCJ9LHNsYWI6ezQwMDoiZmFzbHIifSwic2xhYi1wcmVzcyI6ezQwMDoiZmFzbHByIn0sd2hpdGVib2FyZDp7NjAwOiJmYXdzYiJ9LHRodW1icHJpbnQ6ezMwMDoiZmF0bCJ9LG5vdGRvZzp7OTAwOiJmYW5zIn0sIm5vdGRvZy1kdW8iOns5MDA6ImZhbmRzIn0sZXRjaDp7OTAwOiJmYWVzIn0sY2hpc2VsOns0MDA6ImZhY3IifSxqZWxseTp7NDAwOiJmYWpyIn0sImplbGx5LWZpbGwiOns0MDA6ImZhamZyIn0sImplbGx5LWR1byI6ezQwMDoiZmFqZHIifSx1dGlsaXR5Ons2MDA6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7NjAwOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7NjAwOiJmYXVmc2IifX0seWExPXsiRm9udCBBd2Vzb21lIDcgRnJlZSI6ezkwMDoiZmFzIiw0MDA6ImZhciJ9LCJGb250IEF3ZXNvbWUgNyBQcm8iOns5MDA6ImZhcyIsNDAwOiJmYXIiLG5vcm1hbDoiZmFyIiwzMDA6ImZhbCIsMTAwOiJmYXQifSwiRm9udCBBd2Vzb21lIDcgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA3IER1b3RvbmUiOns5MDA6ImZhZCIsNDAwOiJmYWRyIixub3JtYWw6ImZhZHIiLDMwMDoiZmFkbCIsMTAwOiJmYWR0In0sIkZvbnQgQXdlc29tZSA3IFNoYXJwIjp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLG5vcm1hbDoiZmFzciIsMzAwOiJmYXNsIiwxMDA6ImZhc3QifSwiRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSI6ezkwMDoiZmFzZHMiLDQwMDoiZmFzZHIiLG5vcm1hbDoiZmFzZHIiLDMwMDoiZmFzZGwiLDEwMDoiZmFzZHQifSwiRm9udCBBd2Vzb21lIDcgSmVsbHkiOns0MDA6ImZhanIiLG5vcm1hbDoiZmFqciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBGaWxsIjp7NDAwOiJmYWpmciIsbm9ybWFsOiJmYWpmciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBEdW8iOns0MDA6ImZhamRyIixub3JtYWw6ImZhamRyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIiOns0MDA6ImZhc2xyIixub3JtYWw6ImZhc2xyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIgUHJlc3MiOns0MDA6ImZhc2xwciIsbm9ybWFsOiJmYXNscHIifSwiRm9udCBBd2Vzb21lIDcgVGh1bWJwcmludCI6ezMwMDoiZmF0bCIsbm9ybWFsOiJmYXRsIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyI6ezkwMDoiZmFucyIsbm9ybWFsOiJmYW5zIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8iOns5MDA6ImZhbmRzIixub3JtYWw6ImZhbmRzIn0sIkZvbnQgQXdlc29tZSA3IEV0Y2giOns5MDA6ImZhZXMiLG5vcm1hbDoiZmFlcyJ9LCJGb250IEF3ZXNvbWUgNyBDaGlzZWwiOns0MDA6ImZhY3IiLG5vcm1hbDoiZmFjciJ9LCJGb250IEF3ZXNvbWUgNyBXaGl0ZWJvYXJkIjp7NjAwOiJmYXdzYiIsbm9ybWFsOiJmYXdzYiJ9LCJGb250IEF3ZXNvbWUgNyBVdGlsaXR5Ijp7NjAwOiJmYXVzYiIsbm9ybWFsOiJmYXVzYiJ9LCJGb250IEF3ZXNvbWUgNyBVdGlsaXR5IER1byI6ezYwMDoiZmF1ZHNiIixub3JtYWw6ImZhdWRzYiJ9LCJGb250IEF3ZXNvbWUgNyBVdGlsaXR5IEZpbGwiOns2MDA6ImZhdWZzYiIsbm9ybWFsOiJmYXVmc2IifX0sd2ExPW5ldyBNYXAoW1siY2xhc3NpYyIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iLCJicmFuZHMiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImR1b3RvbmUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFkIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJzaGFycCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXNzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJzaGFycC1kdW90b25lIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc2RzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJjaGlzZWwiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFjciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiZXRjaCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWVzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImplbGx5Iix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhanIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbImplbGx5LWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWpkciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiamVsbHktZmlsbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWpmciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsibm90ZG9nIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhbnMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsibm90ZG9nLWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYW5kcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJzbGFiIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc2xyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJzbGFiLXByZXNzIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc2xwciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsidGh1bWJwcmludCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXRsIixkZWZhdWx0U3R5bGVJZDoibGlnaHQiLHN0eWxlSWRzOlsibGlnaHQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDozMDB9XSxbInV0aWxpdHkiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmF1c2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsidXRpbGl0eS1kdW8iLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmF1ZHNiIixkZWZhdWx0U3R5bGVJZDoic2VtaWJvbGQiLHN0eWxlSWRzOlsic2VtaWJvbGQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo2MDB9XSxbInV0aWxpdHktZmlsbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVmc2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsid2hpdGVib2FyZCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXdzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV1dKSxNYTE9e2NoaXNlbDp7cmVndWxhcjoiZmFjciJ9LGNsYXNzaWM6e2JyYW5kczoiZmFiIixsaWdodDoiZmFsIixyZWd1bGFyOiJmYXIiLHNvbGlkOiJmYXMiLHRoaW46ImZhdCJ9LGR1b3RvbmU6e2xpZ2h0OiJmYWRsIixyZWd1bGFyOiJmYWRyIixzb2xpZDoiZmFkIix0aGluOiJmYWR0In0sZXRjaDp7c29saWQ6ImZhZXMifSxqZWxseTp7cmVndWxhcjoiZmFqciJ9LCJqZWxseS1kdW8iOntyZWd1bGFyOiJmYWpkciJ9LCJqZWxseS1maWxsIjp7cmVndWxhcjoiZmFqZnIifSxub3Rkb2c6e3NvbGlkOiJmYW5zIn0sIm5vdGRvZy1kdW8iOntzb2xpZDoiZmFuZHMifSxzaGFycDp7bGlnaHQ6ImZhc2wiLHJlZ3VsYXI6ImZhc3IiLHNvbGlkOiJmYXNzIix0aGluOiJmYXN0In0sInNoYXJwLWR1b3RvbmUiOntsaWdodDoiZmFzZGwiLHJlZ3VsYXI6ImZhc2RyIixzb2xpZDoiZmFzZHMiLHRoaW46ImZhc2R0In0sc2xhYjp7cmVndWxhcjoiZmFzbHIifSwic2xhYi1wcmVzcyI6e3JlZ3VsYXI6ImZhc2xwciJ9LHRodW1icHJpbnQ6e2xpZ2h0OiJmYXRsIn0sdXRpbGl0eTp7c2VtaWJvbGQ6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7c2VtaWJvbGQ6ImZhdWRzYiJ9LCJ1dGlsaXR5LWZpbGwiOntzZW1pYm9sZDoiZmF1ZnNiIn0sd2hpdGVib2FyZDp7c2VtaWJvbGQ6ImZhd3NiIn19LFhhdD1bImZhayIsImZhLWtpdCIsImZha2QiLCJmYS1raXQtZHVvdG9uZSJdLFFhdD17a2l0OntmYWs6ImtpdCIsImZhLWtpdCI6ImtpdCJ9LCJraXQtZHVvdG9uZSI6e2Zha2Q6ImtpdC1kdW90b25lIiwiZmEta2l0LWR1b3RvbmUiOiJraXQtZHVvdG9uZSJ9fSx6YTE9WyJraXQiXSxrYTE9ImtpdCIsU2ExPSJraXQtZHVvdG9uZSIsQ2ExPSJLaXQiLExhMT0iS2l0IER1b3RvbmUiLFI0Mj1tdChtdCh7fSxrYTEsQ2ExKSxTYTEsTGExKSxUYTE9e2tpdDp7ImZhLWtpdCI6ImZhayJ9LCJraXQtZHVvdG9uZSI6eyJmYS1raXQtZHVvdG9uZSI6ImZha2QifX0sX2ExPXsiRm9udCBBd2Vzb21lIEtpdCI6ezQwMDoiZmFrIixub3JtYWw6ImZhayJ9LCJGb250IEF3ZXNvbWUgS2l0IER1b3RvbmUiOns0MDA6ImZha2QiLG5vcm1hbDoiZmFrZCJ9fSxBYTE9e2tpdDp7ZmFrOiJmYS1raXQifSwia2l0LWR1b3RvbmUiOntmYWtkOiJmYS1raXQtZHVvdG9uZSJ9fSxLYXQ9e2tpdDp7a2l0OiJmYWsifSwia2l0LWR1b3RvbmUiOnsia2l0LWR1b3RvbmUiOiJmYWtkIn19LHRWPXtHUk9VUDoiZHVvdG9uZS1ncm91cCIsU1dBUF9PUEFDSVRZOiJzd2FwLW9wYWNpdHkiLFBSSU1BUlk6InByaW1hcnkiLFNFQ09OREFSWToic2Vjb25kYXJ5In0sJGExPVsiZmEtY2xhc3NpYyIsImZhLWR1b3RvbmUiLCJmYS1zaGFycCIsImZhLXNoYXJwLWR1b3RvbmUiLCJmYS10aHVtYnByaW50IiwiZmEtd2hpdGVib2FyZCIsImZhLW5vdGRvZyIsImZhLW5vdGRvZy1kdW8iLCJmYS1jaGlzZWwiLCJmYS1ldGNoIiwiZmEtamVsbHkiLCJmYS1qZWxseS1maWxsIiwiZmEtamVsbHktZHVvIiwiZmEtc2xhYiIsImZhLXNsYWItcHJlc3MiLCJmYS11dGlsaXR5IiwiZmEtdXRpbGl0eS1kdW8iLCJmYS11dGlsaXR5LWZpbGwiXSxEYTE9ImNsYXNzaWMiLEVhMT0iZHVvdG9uZSIsTmExPSJzaGFycCIsUGExPSJzaGFycC1kdW90b25lIixJYTE9ImNoaXNlbCIsRmExPSJldGNoIixPYTE9ImplbGx5IixCYTE9ImplbGx5LWR1byIsUmExPSJqZWxseS1maWxsIixIYTE9Im5vdGRvZyIscWExPSJub3Rkb2ctZHVvIixWYTE9InNsYWIiLFVhMT0ic2xhYi1wcmVzcyIsamExPSJ0aHVtYnByaW50IixXYTE9InV0aWxpdHkiLEdhMT0idXRpbGl0eS1kdW8iLFlhMT0idXRpbGl0eS1maWxsIixaYTE9IndoaXRlYm9hcmQiLFhhMT0iQ2xhc3NpYyIsUWExPSJEdW90b25lIixLYTE9IlNoYXJwIixKYTE9IlNoYXJwIER1b3RvbmUiLGVyMT0iQ2hpc2VsIix0cjE9IkV0Y2giLGFyMT0iSmVsbHkiLHJyMT0iSmVsbHkgRHVvIixpcjE9IkplbGx5IEZpbGwiLG9yMT0iTm90ZG9nIixzcjE9Ik5vdGRvZyBEdW8iLG5yMT0iU2xhYiIsbHIxPSJTbGFiIFByZXNzIixjcjE9IlRodW1icHJpbnQiLGRyMT0iVXRpbGl0eSIsZnIxPSJVdGlsaXR5IER1byIsdXIxPSJVdGlsaXR5IEZpbGwiLHByMT0iV2hpdGVib2FyZCIsSDQyPShyMWU9e30sbXQobXQobXQobXQobXQobXQobXQobXQobXQobXQocjFlLERhMSxYYTEpLEVhMSxRYTEpLE5hMSxLYTEpLFBhMSxKYTEpLElhMSxlcjEpLEZhMSx0cjEpLE9hMSxhcjEpLEJhMSxycjEpLFJhMSxpcjEpLEhhMSxvcjEpLG10KG10KG10KG10KG10KG10KG10KG10KHIxZSxxYTEsc3IxKSxWYTEsbnIxKSxVYTEsbHIxKSxqYTEsY3IxKSxXYTEsZHIxKSxHYTEsZnIxKSxZYTEsdXIxKSxaYTEscHIxKSksaHIxPSJraXQiLG1yMT0ia2l0LWR1b3RvbmUiLGdyMT0iS2l0Iix4cjE9IktpdCBEdW90b25lIixxNDI9bXQobXQoe30saHIxLGdyMSksbXIxLHhyMSksYnIxPXtjbGFzc2ljOnsiZmEtYnJhbmRzIjoiZmFiIiwiZmEtZHVvdG9uZSI6ImZhZCIsImZhLWxpZ2h0IjoiZmFsIiwiZmEtcmVndWxhciI6ImZhciIsImZhLXNvbGlkIjoiZmFzIiwiZmEtdGhpbiI6ImZhdCJ9LGR1b3RvbmU6eyJmYS1yZWd1bGFyIjoiZmFkciIsImZhLWxpZ2h0IjoiZmFkbCIsImZhLXRoaW4iOiJmYWR0In0sc2hhcnA6eyJmYS1zb2xpZCI6ImZhc3MiLCJmYS1yZWd1bGFyIjoiZmFzciIsImZhLWxpZ2h0IjoiZmFzbCIsImZhLXRoaW4iOiJmYXN0In0sInNoYXJwLWR1b3RvbmUiOnsiZmEtc29saWQiOiJmYXNkcyIsImZhLXJlZ3VsYXIiOiJmYXNkciIsImZhLWxpZ2h0IjoiZmFzZGwiLCJmYS10aGluIjoiZmFzZHQifSxzbGFiOnsiZmEtcmVndWxhciI6ImZhc2xyIn0sInNsYWItcHJlc3MiOnsiZmEtcmVndWxhciI6ImZhc2xwciJ9LHdoaXRlYm9hcmQ6eyJmYS1zZW1pYm9sZCI6ImZhd3NiIn0sdGh1bWJwcmludDp7ImZhLWxpZ2h0IjoiZmF0bCJ9LG5vdGRvZzp7ImZhLXNvbGlkIjoiZmFucyJ9LCJub3Rkb2ctZHVvIjp7ImZhLXNvbGlkIjoiZmFuZHMifSxldGNoOnsiZmEtc29saWQiOiJmYWVzIn0samVsbHk6eyJmYS1yZWd1bGFyIjoiZmFqciJ9LCJqZWxseS1maWxsIjp7ImZhLXJlZ3VsYXIiOiJmYWpmciJ9LCJqZWxseS1kdW8iOnsiZmEtcmVndWxhciI6ImZhamRyIn0sY2hpc2VsOnsiZmEtcmVndWxhciI6ImZhY3IifSx1dGlsaXR5OnsiZmEtc2VtaWJvbGQiOiJmYXVzYiJ9LCJ1dGlsaXR5LWR1byI6eyJmYS1zZW1pYm9sZCI6ImZhdWRzYiJ9LCJ1dGlsaXR5LWZpbGwiOnsiZmEtc2VtaWJvbGQiOiJmYXVmc2IifX0sdnIxPXtjbGFzc2ljOlsiZmFzIiwiZmFyIiwiZmFsIiwiZmF0IiwiZmFkIl0sZHVvdG9uZTpbImZhZHIiLCJmYWRsIiwiZmFkdCJdLHNoYXJwOlsiZmFzcyIsImZhc3IiLCJmYXNsIiwiZmFzdCJdLCJzaGFycC1kdW90b25lIjpbImZhc2RzIiwiZmFzZHIiLCJmYXNkbCIsImZhc2R0Il0sc2xhYjpbImZhc2xyIl0sInNsYWItcHJlc3MiOlsiZmFzbHByIl0sd2hpdGVib2FyZDpbImZhd3NiIl0sdGh1bWJwcmludDpbImZhdGwiXSxub3Rkb2c6WyJmYW5zIl0sIm5vdGRvZy1kdW8iOlsiZmFuZHMiXSxldGNoOlsiZmFlcyJdLGplbGx5OlsiZmFqciJdLCJqZWxseS1maWxsIjpbImZhamZyIl0sImplbGx5LWR1byI6WyJmYWpkciJdLGNoaXNlbDpbImZhY3IiXSx1dGlsaXR5OlsiZmF1c2IiXSwidXRpbGl0eS1kdW8iOlsiZmF1ZHNiIl0sInV0aWxpdHktZmlsbCI6WyJmYXVmc2IiXX0saTFlPXtjbGFzc2ljOntmYWI6ImZhLWJyYW5kcyIsZmFkOiJmYS1kdW90b25lIixmYWw6ImZhLWxpZ2h0IixmYXI6ImZhLXJlZ3VsYXIiLGZhczoiZmEtc29saWQiLGZhdDoiZmEtdGhpbiJ9LGR1b3RvbmU6e2ZhZHI6ImZhLXJlZ3VsYXIiLGZhZGw6ImZhLWxpZ2h0IixmYWR0OiJmYS10aGluIn0sc2hhcnA6e2Zhc3M6ImZhLXNvbGlkIixmYXNyOiJmYS1yZWd1bGFyIixmYXNsOiJmYS1saWdodCIsZmFzdDoiZmEtdGhpbiJ9LCJzaGFycC1kdW90b25lIjp7ZmFzZHM6ImZhLXNvbGlkIixmYXNkcjoiZmEtcmVndWxhciIsZmFzZGw6ImZhLWxpZ2h0IixmYXNkdDoiZmEtdGhpbiJ9LHNsYWI6e2Zhc2xyOiJmYS1yZWd1bGFyIn0sInNsYWItcHJlc3MiOntmYXNscHI6ImZhLXJlZ3VsYXIifSx3aGl0ZWJvYXJkOntmYXdzYjoiZmEtc2VtaWJvbGQifSx0aHVtYnByaW50OntmYXRsOiJmYS1saWdodCJ9LG5vdGRvZzp7ZmFuczoiZmEtc29saWQifSwibm90ZG9nLWR1byI6e2ZhbmRzOiJmYS1zb2xpZCJ9LGV0Y2g6e2ZhZXM6ImZhLXNvbGlkIn0samVsbHk6e2ZhanI6ImZhLXJlZ3VsYXIifSwiamVsbHktZmlsbCI6e2ZhamZyOiJmYS1yZWd1bGFyIn0sImplbGx5LWR1byI6e2ZhamRyOiJmYS1yZWd1bGFyIn0sY2hpc2VsOntmYWNyOiJmYS1yZWd1bGFyIn0sdXRpbGl0eTp7ZmF1c2I6ImZhLXNlbWlib2xkIn0sInV0aWxpdHktZHVvIjp7ZmF1ZHNiOiJmYS1zZW1pYm9sZCJ9LCJ1dGlsaXR5LWZpbGwiOntmYXVmc2I6ImZhLXNlbWlib2xkIn19LHlyMT1bImZhLXNvbGlkIiwiZmEtcmVndWxhciIsImZhLWxpZ2h0IiwiZmEtdGhpbiIsImZhLWR1b3RvbmUiLCJmYS1icmFuZHMiLCJmYS1zZW1pYm9sZCJdLEphdD1bImZhIiwiZmFzIiwiZmFyIiwiZmFsIiwiZmF0IiwiZmFkIiwiZmFkciIsImZhZGwiLCJmYWR0IiwiZmFiIiwiZmFzcyIsImZhc3IiLCJmYXNsIiwiZmFzdCIsImZhc2RzIiwiZmFzZHIiLCJmYXNkbCIsImZhc2R0IiwiZmFzbHIiLCJmYXNscHIiLCJmYXdzYiIsImZhdGwiLCJmYW5zIiwiZmFuZHMiLCJmYWVzIiwiZmFqciIsImZhamZyIiwiZmFqZHIiLCJmYWNyIiwiZmF1c2IiLCJmYXVkc2IiLCJmYXVmc2IiXS5jb25jYXQoJGExLHlyMSksd3IxPVsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIiwiZHVvdG9uZSIsImJyYW5kcyIsInNlbWlib2xkIl0sZXJ0PVsxLDIsMyw0LDUsNiw3LDgsOSwxMF0sTXIxPWVydC5jb25jYXQoWzExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwXSksenIxPVsiYXciLCJmdyIsInB1bGwtbGVmdCIsInB1bGwtcmlnaHQiXSxrcjE9W10uY29uY2F0KEphKE9iamVjdC5rZXlzKHZyMSkpLHdyMSx6cjEsWyIyeHMiLCJ4cyIsInNtIiwibGciLCJ4bCIsIjJ4bCIsImJlYXQiLCJib3JkZXIiLCJmYWRlIiwiYmVhdC1mYWRlIiwiYm91bmNlIiwiZmxpcC1ib3RoIiwiZmxpcC1ob3Jpem9udGFsIiwiZmxpcC12ZXJ0aWNhbCIsImZsaXAiLCJpbnZlcnNlIiwibGF5ZXJzIiwibGF5ZXJzLWJvdHRvbS1sZWZ0IiwibGF5ZXJzLWJvdHRvbS1yaWdodCIsImxheWVycy1jb3VudGVyIiwibGF5ZXJzLXRleHQiLCJsYXllcnMtdG9wLWxlZnQiLCJsYXllcnMtdG9wLXJpZ2h0IiwibGkiLCJwdWxsLWVuZCIsInB1bGwtc3RhcnQiLCJwdWxzZSIsInJvdGF0ZS0xODAiLCJyb3RhdGUtMjcwIiwicm90YXRlLTkwIiwicm90YXRlLWJ5Iiwic2hha2UiLCJzcGluLXB1bHNlIiwic3Bpbi1yZXZlcnNlIiwic3BpbiIsInN0YWNrLTF4Iiwic3RhY2stMngiLCJzdGFjayIsInVsIiwid2lkdGgtYXV0byIsIndpZHRoLWZpeGVkIix0Vi5HUk9VUCx0Vi5TV0FQX09QQUNJVFksdFYuUFJJTUFSWSx0Vi5TRUNPTkRBUlldKS5jb25jYXQoZXJ0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4iIi5jb25jYXQodCwieCIpfSkpLmNvbmNhdChNcjEubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJ3LSIuY29uY2F0KHQpfSkpLFNyMT17IkZvbnQgQXdlc29tZSA1IEZyZWUiOns5MDA6ImZhcyIsNDAwOiJmYXIifSwiRm9udCBBd2Vzb21lIDUgUHJvIjp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwifSwiRm9udCBBd2Vzb21lIDUgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA1IER1b3RvbmUiOns5MDA6ImZhZCJ9fSxEaT0iX19fRk9OVF9BV0VTT01FX19fIixvMWU9MTYsdHJ0PSJmYSIsYXJ0PSJzdmctaW5saW5lLS1mYSIsJG49ImRhdGEtZmEtaTJzdmciLHMxZT0iZGF0YS1mYS1wc2V1ZG8tZWxlbWVudCIsQ3IxPSJkYXRhLWZhLXBzZXVkby1lbGVtZW50LXBlbmRpbmciLG4xZT0iZGF0YS1wcmVmaXgiLGwxZT0iZGF0YS1pY29uIixycnQ9ImZvbnRhd2Vzb21lLWkyc3ZnIixMcjE9ImFzeW5jIixUcjE9WyJIVE1MIiwiSEVBRCIsIlNUWUxFIiwiU0NSSVBUIl0saXJ0PVsiOjpiZWZvcmUiLCI6OmFmdGVyIiwiOmJlZm9yZSIsIjphZnRlciJdLG9ydD0oZnVuY3Rpb24oKXt0cnl7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fSkoKTtzcnQ9X2Uoe30sJGF0KTtzcnRbaTJdPV9lKF9lKF9lKF9lKHt9LHsiZmEtZHVvdG9uZSI6ImR1b3RvbmUifSksJGF0W2kyXSksUWF0LmtpdCksUWF0WyJraXQtZHVvdG9uZSJdKTtfcjE9SGQoc3J0KSxjMWU9X2Uoe30sTWExKTtjMWVbaTJdPV9lKF9lKF9lKF9lKHt9LHtkdW90b25lOiJmYWQifSksYzFlW2kyXSksS2F0LmtpdCksS2F0WyJraXQtZHVvdG9uZSJdKTtucnQ9SGQoYzFlKSxkMWU9X2Uoe30saTFlKTtkMWVbaTJdPV9lKF9lKHt9LGQxZVtpMl0pLEFhMS5raXQpO2YxZT1IZChkMWUpLHUxZT1fZSh7fSxicjEpO3UxZVtpMl09X2UoX2Uoe30sdTFlW2kyXSksVGExLmtpdCk7VjQyPUhkKHUxZSksQXIxPUsyMSxscnQ9ImZhLWxheWVycy10ZXh0IiwkcjE9SjIxLERyMT1fZSh7fSx2YTEpLFU0Mj1IZChEcjEpLEVyMT1bImNsYXNzIiwiZGF0YS1wcmVmaXgiLCJkYXRhLWljb24iLCJkYXRhLWZhLXRyYW5zZm9ybSIsImRhdGEtZmEtbWFzayJdLHAxZT1lYTEsTnIxPVtdLmNvbmNhdChKYSh6YTEpLEphKGtyMSkpLHFkPWVzLkZvbnRBd2Vzb21lQ29uZmlnfHx7fTtkMSYmdHlwZW9mIGQxLnF1ZXJ5U2VsZWN0b3I9PSJmdW5jdGlvbiImJihjcnQ9W1siZGF0YS1mYW1pbHktcHJlZml4IiwiZmFtaWx5UHJlZml4Il0sWyJkYXRhLWNzcy1wcmVmaXgiLCJjc3NQcmVmaXgiXSxbImRhdGEtZmFtaWx5LWRlZmF1bHQiLCJmYW1pbHlEZWZhdWx0Il0sWyJkYXRhLXN0eWxlLWRlZmF1bHQiLCJzdHlsZURlZmF1bHQiXSxbImRhdGEtcmVwbGFjZW1lbnQtY2xhc3MiLCJyZXBsYWNlbWVudENsYXNzIl0sWyJkYXRhLWF1dG8tcmVwbGFjZS1zdmciLCJhdXRvUmVwbGFjZVN2ZyJdLFsiZGF0YS1hdXRvLWFkZC1jc3MiLCJhdXRvQWRkQ3NzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMiLCJzZWFyY2hQc2V1ZG9FbGVtZW50cyJdLFsiZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzLXdhcm5pbmdzIiwic2VhcmNoUHNldWRvRWxlbWVudHNXYXJuaW5ncyJdLFsiZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzLWZ1bGwtc2NhbiIsInNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW4iXSxbImRhdGEtb2JzZXJ2ZS1tdXRhdGlvbnMiLCJvYnNlcnZlTXV0YXRpb25zIl0sWyJkYXRhLW11dGF0ZS1hcHByb2FjaCIsIm11dGF0ZUFwcHJvYWNoIl0sWyJkYXRhLWtlZXAtb3JpZ2luYWwtc291cmNlIiwia2VlcE9yaWdpbmFsU291cmNlIl0sWyJkYXRhLW1lYXN1cmUtcGVyZm9ybWFuY2UiLCJtZWFzdXJlUGVyZm9ybWFuY2UiXSxbImRhdGEtc2hvdy1taXNzaW5nLWljb25zIiwic2hvd01pc3NpbmdJY29ucyJdXSxjcnQuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1LcSh0LDIpLGE9ZVswXSxyPWVbMV0saT1JcjEoUHIxKGEpKTtpIT1udWxsJiYocWRbcl09aSl9KSk7ZHJ0PXtzdHlsZURlZmF1bHQ6InNvbGlkIixmYW1pbHlEZWZhdWx0OmkyLGNzc1ByZWZpeDp0cnQscmVwbGFjZW1lbnRDbGFzczphcnQsYXV0b1JlcGxhY2VTdmc6ITAsYXV0b0FkZENzczohMCxzZWFyY2hQc2V1ZG9FbGVtZW50czohMSxzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzOiEwLHNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW46ITEsb2JzZXJ2ZU11dGF0aW9uczohMCxtdXRhdGVBcHByb2FjaDoiYXN5bmMiLGtlZXBPcmlnaW5hbFNvdXJjZTohMCxtZWFzdXJlUGVyZm9ybWFuY2U6ITEsc2hvd01pc3NpbmdJY29uczohMH07cWQuZmFtaWx5UHJlZml4JiYocWQuY3NzUHJlZml4PXFkLmZhbWlseVByZWZpeCk7RzY9X2UoX2Uoe30sZHJ0KSxxZCk7RzYuYXV0b1JlcGxhY2VTdmd8fChHNi5vYnNlcnZlTXV0YXRpb25zPSExKTtaZT17fTtPYmplY3Qua2V5cyhkcnQpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFplLHQse2VudW1lcmFibGU6ITAsc2V0OmZ1bmN0aW9uKGEpe0c2W3RdPWEsVmQuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gcihaZSl9KX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEc2W3RdfX0pfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFplLCJmYW1pbHlQcmVmaXgiLHtlbnVtZXJhYmxlOiEwLHNldDpmdW5jdGlvbihlKXtHNi5jc3NQcmVmaXg9ZSxWZC5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBhKFplKX0pfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRzYuY3NzUHJlZml4fX0pLGVzLkZvbnRBd2Vzb21lQ29uZmlnPVplO1ZkPVtdO3RzPW8xZSxqcj17c2l6ZToxNix4OjAseTowLHJvdGF0ZTowLGZsaXBYOiExLGZsaXBZOiExfTtCcjE9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjtWcjE9YDpyb290LCA6aG9zdCB7CiAgLS1mYS1mb250LXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICJGb250IEF3ZXNvbWUgNyBGcmVlIjsKICAtLWZhLWZvbnQtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDcgRnJlZSI7CiAgLS1mYS1mb250LWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICJGb250IEF3ZXNvbWUgNyBQcm8iOwogIC0tZmEtZm9udC10aGluOiBub3JtYWwgMTAwIDFlbS8xICJGb250IEF3ZXNvbWUgNyBQcm8iOwogIC0tZmEtZm9udC1kdW90b25lOiBub3JtYWwgOTAwIDFlbS8xICJGb250IEF3ZXNvbWUgNyBEdW90b25lIjsKICAtLWZhLWZvbnQtZHVvdG9uZS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICJGb250IEF3ZXNvbWUgNyBEdW90b25lIjsKICAtLWZhLWZvbnQtZHVvdG9uZS1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDcgRHVvdG9uZSI7CiAgLS1mYS1mb250LWR1b3RvbmUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDcgRHVvdG9uZSI7CiAgLS1mYS1mb250LWJyYW5kczogbm9ybWFsIDQwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDcgQnJhbmRzIjsKICAtLWZhLWZvbnQtc2hhcnAtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgIkZvbnQgQXdlc29tZSA3IFNoYXJwIjsKICAtLWZhLWZvbnQtc2hhcnAtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDcgU2hhcnAiOwogIC0tZmEtZm9udC1zaGFycC1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDcgU2hhcnAiOwogIC0tZmEtZm9udC1zaGFycC10aGluOiBub3JtYWwgMTAwIDFlbS8xICJGb250IEF3ZXNvbWUgNyBTaGFycCI7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgIkZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUiOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgIkZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUiOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICJGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lIjsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS10aGluOiBub3JtYWwgMTAwIDFlbS8xICJGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lIjsKICAtLWZhLWZvbnQtc2xhYi1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICJGb250IEF3ZXNvbWUgNyBTbGFiIjsKICAtLWZhLWZvbnQtc2xhYi1wcmVzcy1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICJGb250IEF3ZXNvbWUgNyBTbGFiIFByZXNzIjsKICAtLWZhLWZvbnQtd2hpdGVib2FyZC1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDcgV2hpdGVib2FyZCI7CiAgLS1mYS1mb250LXRodW1icHJpbnQtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgIkZvbnQgQXdlc29tZSA3IFRodW1icHJpbnQiOwogIC0tZmEtZm9udC1ub3Rkb2ctc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgIkZvbnQgQXdlc29tZSA3IE5vdGRvZyI7CiAgLS1mYS1mb250LW5vdGRvZy1kdW8tc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgIkZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8iOwogIC0tZmEtZm9udC1ldGNoLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICJGb250IEF3ZXNvbWUgNyBFdGNoIjsKICAtLWZhLWZvbnQtamVsbHktcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDcgSmVsbHkiOwogIC0tZmEtZm9udC1qZWxseS1maWxsLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgIkZvbnQgQXdlc29tZSA3IEplbGx5IEZpbGwiOwogIC0tZmEtZm9udC1qZWxseS1kdW8tcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDcgSmVsbHkgRHVvIjsKICAtLWZhLWZvbnQtY2hpc2VsLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgIkZvbnQgQXdlc29tZSA3IENoaXNlbCI7CiAgLS1mYS1mb250LXV0aWxpdHktc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkiOwogIC0tZmEtZm9udC11dGlsaXR5LWR1by1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDcgVXRpbGl0eSBEdW8iOwogIC0tZmEtZm9udC11dGlsaXR5LWZpbGwtc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRmlsbCI7Cn0KCi5zdmctaW5saW5lLS1mYSB7CiAgYm94LXNpemluZzogY29udGVudC1ib3g7CiAgZGlzcGxheTogdmFyKC0tZmEtZGlzcGxheSwgaW5saW5lLWJsb2NrKTsKICBoZWlnaHQ6IDFlbTsKICBvdmVyZmxvdzogdmlzaWJsZTsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoLCAxLjI1ZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS0yeHMgewogIHZlcnRpY2FsLWFsaWduOiAwLjFlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEteHMgewogIHZlcnRpY2FsLWFsaWduOiAwZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXNtIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMDcxNDI4NTcxNGVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1sZyB7CiAgdmVydGljYWwtYWxpZ246IC0wLjJlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEteGwgewogIHZlcnRpY2FsLWFsaWduOiAtMC4yNWVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS0yeGwgewogIHZlcnRpY2FsLWFsaWduOiAtMC4zMTI1ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXB1bGwtbGVmdCwKLnN2Zy1pbmxpbmUtLWZhIC5mYS1wdWxsLXN0YXJ0IHsKICBmbG9hdDogaW5saW5lLXN0YXJ0OwogIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1wdWxsLXJpZ2h0LAouc3ZnLWlubGluZS0tZmEgLmZhLXB1bGwtZW5kIHsKICBmbG9hdDogaW5saW5lLWVuZDsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1saSB7CiAgd2lkdGg6IHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pOwogIGluc2V0LWlubGluZS1zdGFydDogY2FsYygtMSAqIHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pKTsKICBpbnNldC1ibG9jay1zdGFydDogMC4yNWVtOyAvKiBzeW5jaW5nIHZlcnRpY2FsIGFsaWdubWVudCB3aXRoIFdlYiBGb250IHJlbmRlcmluZyAqLwp9CgouZmEtbGF5ZXJzLWNvdW50ZXIsIC5mYS1sYXllcnMtdGV4dCB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5mYS1sYXllcnMgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBoZWlnaHQ6IDFlbTsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgsIDEuMjVlbSk7Cn0KLmZhLWxheWVycyAuc3ZnLWlubGluZS0tZmEgewogIGluc2V0OiAwOwogIG1hcmdpbjogYXV0bzsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKfQoKLmZhLWxheWVycy10ZXh0IHsKICBsZWZ0OiA1MCU7CiAgdG9wOiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKfQoKLmZhLWxheWVycy1jb3VudGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mYS1jb3VudGVyLWJhY2tncm91bmQtY29sb3IsICNmZjI1M2EpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWZhLWNvdW50ZXItYm9yZGVyLXJhZGl1cywgMWVtKTsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZmEtY291bnRlci1saW5lLWhlaWdodCwgMSk7CiAgbWF4LXdpZHRoOiB2YXIoLS1mYS1jb3VudGVyLW1heC13aWR0aCwgNWVtKTsKICBtaW4td2lkdGg6IHZhcigtLWZhLWNvdW50ZXItbWluLXdpZHRoLCAxLjVlbSk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBwYWRkaW5nOiB2YXIoLS1mYS1jb3VudGVyLXBhZGRpbmcsIDAuMjVlbSAwLjVlbSk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1jb3VudGVyLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLWJvdHRvbS1yaWdodCB7CiAgYm90dG9tOiB2YXIoLS1mYS1ib3R0b20sIDApOwogIHJpZ2h0OiB2YXIoLS1mYS1yaWdodCwgMCk7CiAgdG9wOiBhdXRvOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLWJvdHRvbS1sZWZ0IHsKICBib3R0b206IHZhcigtLWZhLWJvdHRvbSwgMCk7CiAgbGVmdDogdmFyKC0tZmEtbGVmdCwgMCk7CiAgcmlnaHQ6IGF1dG87CiAgdG9wOiBhdXRvOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7Cn0KCi5mYS1sYXllcnMtdG9wLXJpZ2h0IHsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDsKfQoKLmZhLWxheWVycy10b3AtbGVmdCB7CiAgbGVmdDogdmFyKC0tZmEtbGVmdCwgMCk7CiAgcmlnaHQ6IGF1dG87CiAgdG9wOiB2YXIoLS1mYS10b3AsIDApOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7Cn0KCi5mYS0xeCB7CiAgZm9udC1zaXplOiAxZW07Cn0KCi5mYS0yeCB7CiAgZm9udC1zaXplOiAyZW07Cn0KCi5mYS0zeCB7CiAgZm9udC1zaXplOiAzZW07Cn0KCi5mYS00eCB7CiAgZm9udC1zaXplOiA0ZW07Cn0KCi5mYS01eCB7CiAgZm9udC1zaXplOiA1ZW07Cn0KCi5mYS02eCB7CiAgZm9udC1zaXplOiA2ZW07Cn0KCi5mYS03eCB7CiAgZm9udC1zaXplOiA3ZW07Cn0KCi5mYS04eCB7CiAgZm9udC1zaXplOiA4ZW07Cn0KCi5mYS05eCB7CiAgZm9udC1zaXplOiA5ZW07Cn0KCi5mYS0xMHggewogIGZvbnQtc2l6ZTogMTBlbTsKfQoKLmZhLTJ4cyB7CiAgZm9udC1zaXplOiBjYWxjKDEwIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDEwcHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMTAgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDEwIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXhzIHsKICBmb250LXNpemU6IGNhbGMoMTIgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMTJweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAxMiAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMTIgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtc20gewogIGZvbnQtc2l6ZTogY2FsYygxNCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAxNHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDE0ICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAxNCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS1sZyB7CiAgZm9udC1zaXplOiBjYWxjKDIwIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDIwcHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMjAgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDIwIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXhsIHsKICBmb250LXNpemU6IGNhbGMoMjQgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMjRweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAyNCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMjQgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtMnhsIHsKICBmb250LXNpemU6IGNhbGMoMzIgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMzJweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAzMiAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMzIgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtd2lkdGgtYXV0byB7CiAgLS1mYS13aWR0aDogYXV0bzsKfQoKLmZhLWZ3LAouZmEtd2lkdGgtZml4ZWQgewogIC0tZmEtd2lkdGg6IDEuMjVlbTsKfQoKLmZhLXVsIHsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tZmEtbGktbWFyZ2luLCAyLjVlbSk7CiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7Cn0KLmZhLXVsID4gbGkgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLmZhLWxpIHsKICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoLTEgKiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKSk7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICB3aWR0aDogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSk7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7Cn0KCi8qIEhlYWRzIFVwOiBCb3JkZXJlZCBJY29ucyB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgaW4gdGhlIGZ1dHVyZSEKICAtIFRoaXMgZmVhdHVyZSB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZSBvZiBGb250IEF3ZXNvbWUgKHY4KSEKICAtIFlvdSBtYXkgY29udGludWUgdG8gdXNlIGl0IGluIHRoaXMgdmVyc2lvbiAqdjcpLCBidXQgaXQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIEZvbnQgQXdlc29tZSB2OC4KKi8KLyogTm90ZXM6CiogLS1Ae3YuJGNzcy1wcmVmaXh9LWJvcmRlci13aWR0aCA9IDEvMTYgYnkgZGVmYXVsdCAodG8gcmVuZGVyIGFzIH4xcHggYmFzZWQgb24gYSAxNnB4IGRlZmF1bHQgZm9udC1zaXplKQoqIC0tQHt2LiRjc3MtcHJlZml4fS1ib3JkZXItcGFkZGluZyA9CiAgKiogMy8xNiBmb3IgdmVydGljYWwgcGFkZGluZyAodG8gZ2l2ZSB+MnB4IG9mIHZlcnRpY2FsIHdoaXRlc3BhY2UgYXJvdW5kIGFuIGljb24gY29uc2lkZXJpbmcgaXQncyB2ZXJ0aWNhbCBhbGlnbm1lbnQpCiAgKiogNC8xNiBmb3IgaG9yaXpvbnRhbCBwYWRkaW5nICh0byBnaXZlIH40cHggb2YgaG9yaXpvbnRhbCB3aGl0ZXNwYWNlIGFyb3VuZCBhbiBpY29uKQoqLwouZmEtYm9yZGVyIHsKICBib3JkZXItY29sb3I6IHZhcigtLWZhLWJvcmRlci1jb2xvciwgI2VlZSk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmEtYm9yZGVyLXJhZGl1cywgMC4xZW0pOwogIGJvcmRlci1zdHlsZTogdmFyKC0tZmEtYm9yZGVyLXN0eWxlLCBzb2xpZCk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1mYS1ib3JkZXItd2lkdGgsIDAuMDYyNWVtKTsKICBib3gtc2l6aW5nOiB2YXIoLS1mYS1ib3JkZXItYm94LXNpemluZywgY29udGVudC1ib3gpOwogIHBhZGRpbmc6IHZhcigtLWZhLWJvcmRlci1wYWRkaW5nLCAwLjE4NzVlbSAwLjI1ZW0pOwp9CgouZmEtcHVsbC1sZWZ0LAouZmEtcHVsbC1zdGFydCB7CiAgZmxvYXQ6IGlubGluZS1zdGFydDsKICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQoKLmZhLXB1bGwtcmlnaHQsCi5mYS1wdWxsLWVuZCB7CiAgZmxvYXQ6IGlubGluZS1lbmQ7CiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQoKLmZhLWJlYXQgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1iZWF0OwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBlYXNlLWluLW91dCk7Cn0KCi5mYS1ib3VuY2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1ib3VuY2U7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjI4LCAwLjg0LCAwLjQyLCAxKSk7Cn0KCi5mYS1mYWRlIHsKICBhbmltYXRpb24tbmFtZTogZmEtZmFkZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSk7Cn0KCi5mYS1iZWF0LWZhZGUgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1iZWF0LWZhZGU7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSkpOwp9CgouZmEtZmxpcCB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWZsaXA7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGVhc2UtaW4tb3V0KTsKfQoKLmZhLXNoYWtlIHsKICBhbmltYXRpb24tbmFtZTogZmEtc2hha2U7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGxpbmVhcik7Cn0KCi5mYS1zcGluIHsKICBhbmltYXRpb24tbmFtZTogZmEtc3BpbjsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDJzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgbGluZWFyKTsKfQoKLmZhLXNwaW4tcmV2ZXJzZSB7CiAgLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlOwp9CgouZmEtcHVsc2UsCi5mYS1zcGluLXB1bHNlIHsKICBhbmltYXRpb24tbmFtZTogZmEtc3BpbjsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIHN0ZXBzKDgpKTsKfQoKQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsKICAuZmEtYmVhdCwKICAuZmEtYm91bmNlLAogIC5mYS1mYWRlLAogIC5mYS1iZWF0LWZhZGUsCiAgLmZhLWZsaXAsCiAgLmZhLXB1bHNlLAogIC5mYS1zaGFrZSwKICAuZmEtc3BpbiwKICAuZmEtc3Bpbi1wdWxzZSB7CiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICB9Cn0KQGtleWZyYW1lcyBmYS1iZWF0IHsKICAwJSwgOTAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgfQogIDQ1JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJlYXQtc2NhbGUsIDEuMjUpKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1ib3VuY2UgewogIDAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgMTAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXgsIDEuMSksIHZhcigtLWZhLWJvdW5jZS1zdGFydC1zY2FsZS15LCAwLjkpKSB0cmFuc2xhdGVZKDApOwogIH0KICAzMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2UtanVtcC1zY2FsZS14LCAwLjkpLCB2YXIoLS1mYS1ib3VuY2UtanVtcC1zY2FsZS15LCAxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWZhLWJvdW5jZS1oZWlnaHQsIC0wLjVlbSkpOwogIH0KICA1MCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS14LCAxLjA1KSwgdmFyKC0tZmEtYm91bmNlLWxhbmQtc2NhbGUteSwgMC45NSkpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDU3JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkodmFyKC0tZmEtYm91bmNlLXJlYm91bmQsIC0wLjEyNWVtKSk7CiAgfQogIDY0JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDEwMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWZhZGUgewogIDUwJSB7CiAgICBvcGFjaXR5OiB2YXIoLS1mYS1mYWRlLW9wYWNpdHksIDAuNCk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtYmVhdC1mYWRlIHsKICAwJSwgMTAwJSB7CiAgICBvcGFjaXR5OiB2YXIoLS1mYS1iZWF0LWZhZGUtb3BhY2l0eSwgMC40KTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgfQogIDUwJSB7CiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1iZWF0LWZhZGUtc2NhbGUsIDEuMTI1KSk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtZmxpcCB7CiAgNTAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlM2QodmFyKC0tZmEtZmxpcC14LCAwKSwgdmFyKC0tZmEtZmxpcC15LCAxKSwgdmFyKC0tZmEtZmxpcC16LCAwKSwgdmFyKC0tZmEtZmxpcC1hbmdsZSwgLTE4MGRlZykpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLXNoYWtlIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpOwogIH0KICA0JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7CiAgfQogIDglLCAyNCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4ZGVnKTsKICB9CiAgMTIlLCAyOCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMThkZWcpOwogIH0KICAxNiUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTIyZGVnKTsKICB9CiAgMjAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDIyZGVnKTsKICB9CiAgMzIlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMmRlZyk7CiAgfQogIDM2JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMmRlZyk7CiAgfQogIDQwJSwgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1zcGluIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9CiAgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogIH0KfQouZmEtcm90YXRlLTkwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7Cn0KCi5mYS1yb3RhdGUtMTgwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOwp9CgouZmEtcm90YXRlLTI3MCB7CiAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsKfQoKLmZhLWZsaXAtaG9yaXpvbnRhbCB7CiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7Cn0KCi5mYS1mbGlwLXZlcnRpY2FsIHsKICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTsKfQoKLmZhLWZsaXAtYm90aCwKLmZhLWZsaXAtaG9yaXpvbnRhbC5mYS1mbGlwLXZlcnRpY2FsIHsKICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAtMSk7Cn0KCi5mYS1yb3RhdGUtYnkgewogIHRyYW5zZm9ybTogcm90YXRlKHZhcigtLWZhLXJvdGF0ZS1hbmdsZSwgMCkpOwp9Cgouc3ZnLWlubGluZS0tZmEgLmZhLXByaW1hcnkgewogIGZpbGw6IHZhcigtLWZhLXByaW1hcnktY29sb3IsIGN1cnJlbnRDb2xvcik7CiAgb3BhY2l0eTogdmFyKC0tZmEtcHJpbWFyeS1vcGFjaXR5LCAxKTsKfQoKLnN2Zy1pbmxpbmUtLWZhIC5mYS1zZWNvbmRhcnkgewogIGZpbGw6IHZhcigtLWZhLXNlY29uZGFyeS1jb2xvciwgY3VycmVudENvbG9yKTsKICBvcGFjaXR5OiB2YXIoLS1mYS1zZWNvbmRhcnktb3BhY2l0eSwgMC40KTsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLXN3YXAtb3BhY2l0eSAuZmEtcHJpbWFyeSB7CiAgb3BhY2l0eTogdmFyKC0tZmEtc2Vjb25kYXJ5LW9wYWNpdHksIDAuNCk7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1zd2FwLW9wYWNpdHkgLmZhLXNlY29uZGFyeSB7CiAgb3BhY2l0eTogdmFyKC0tZmEtcHJpbWFyeS1vcGFjaXR5LCAxKTsKfQoKLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXByaW1hcnksCi5zdmctaW5saW5lLS1mYSBtYXNrIC5mYS1zZWNvbmRhcnkgewogIGZpbGw6IGJsYWNrOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtaW52ZXJzZSB7CiAgZmlsbDogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7Cn0KCi5mYS1zdGFjayB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGhlaWdodDogMmVtOwogIGxpbmUtaGVpZ2h0OiAyZW07CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgd2lkdGg6IDIuNWVtOwp9CgouZmEtaW52ZXJzZSB7CiAgY29sb3I6IHZhcigtLWZhLWludmVyc2UsICNmZmYpOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtc3RhY2stMXggewogIC0tZmEtd2lkdGg6IDEuMjVlbTsKICBoZWlnaHQ6IDFlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgpOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0yeCB7CiAgLS1mYS13aWR0aDogMi41ZW07CiAgaGVpZ2h0OiAyZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoKTsKfQoKLmZhLXN0YWNrLTF4LAouZmEtc3RhY2stMnggewogIGluc2V0OiAwOwogIG1hcmdpbjogYXV0bzsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgei1pbmRleDogdmFyKC0tZmEtc3RhY2stei1pbmRleCwgYXV0byk7Cn1gO2hydD0hMTtVcjE9e21peG91dDpmdW5jdGlvbigpe3JldHVybntkb206e2NzczpwcnQsaW5zZXJ0Q3NzOmcxZX19fSxob29rczpmdW5jdGlvbigpe3JldHVybntiZWZvcmVET01FbGVtZW50Q3JlYXRpb246ZnVuY3Rpb24oKXtnMWUoKX0sYmVmb3JlSTJzdmc6ZnVuY3Rpb24oKXtnMWUoKX19fX0sRWk9ZXN8fHt9O0VpW0RpXXx8KEVpW0RpXT17fSksRWlbRGldLnN0eWxlc3x8KEVpW0RpXS5zdHlsZXM9e30pLEVpW0RpXS5ob29rc3x8KEVpW0RpXS5ob29rcz17fSksRWlbRGldLnNoaW1zfHwoRWlbRGldLnNoaW1zPVtdKTtlcj1FaVtEaV0sbXJ0PVtdLGdydD1mdW5jdGlvbigpe2QxLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGdydCksclY9MSxtcnQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KX0sclY9ITE7JGkmJihyVj0oZDEuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsPy9ebG9hZGVkfF5jLzovXmxvYWRlZHxeaXxeYy8pLnRlc3QoZDEucmVhZHlTdGF0ZSksclZ8fGQxLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGdydCkpO1dyMT1mdW5jdGlvbihlLGEpe3JldHVybiBmdW5jdGlvbihyLGksbyxzKXtyZXR1cm4gZS5jYWxsKGEscixpLG8scyl9fSx4MWU9ZnVuY3Rpb24oZSxhLHIsaSl7dmFyIG89T2JqZWN0LmtleXMoZSkscz1vLmxlbmd0aCxsPWkhPT12b2lkIDA/V3IxKGEsaSk6YSxmLGMsdTtmb3Iocj09PXZvaWQgMD8oZj0xLHU9ZVtvWzBdXSk6KGY9MCx1PXIpO2Y8cztmKyspYz1vW2ZdLHU9bCh1LGVbY10sYyxlKTtyZXR1cm4gdX07djFlPTEsdHI9MixqNDI9W1t0cixMMigvcGF0aCBvcGFjaXR5PSIoW14iXSopIi4qZD0iKFteIl0qKSIuKnBhdGguKmQ9IihbXiJdKikiLyx7ZDI6MixkMTozfSldLFt0cixMMigvcGF0aCBvcGFjaXR5PSIoW14iXSopIi4qZD0iKFteIl0qKSIvLHtkMjoyfSldLFt2MWUsTDIoL3BhdGggZmlsbD0iY3VycmVudENvbG9yIi4qZD0iKFteIl0rKSIvLHtkMToxfSldXSxXNDI9W1t0cixMMigvcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIuKnBhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIyOjEsZDI6MixhdHRyMTozLGQxOjR9KV0sW3RyLEwyKC9wYXRoIGNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qZD0iKFteIl0rKSIuKnBhdGggY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjE6MSxkMToyLGF0dHIyOjMsZDI6NH0pXSxbdHIsTDIoL3BhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6Mn0pXSxbdHIsTDIoL3BhdGggY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjI6MSxkMjoyfSldLFt0cixMMigvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKnBhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi8se2QyOjEsYXR0cjI6MixkMTozLGF0dHIxOjR9KV0sW3RyLEwyKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKnBhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLyx7ZDE6MSxhdHRyMToyLGQyOjMsYXR0cjI6NH0pXSxbdHIsTDIoL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi8se2QxOjEsYXR0cjE6Mn0pXSxbdHIsTDIoL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLyx7ZDI6MSxhdHRyMjoyfSldLFt0cixMMigvcGF0aCBkPSIoW14iXSspIi4qcGF0aCBkPSIoW14iXSspIi8se2QxOjEsZDI6Mn0pXSxbdjFlLEwyKC9wYXRoIGQ9IihbXiJdKykiLyx7ZDE6MX0pXSxbdjFlLEwyKC9wYXRoIHN0eWxlPSIoW14iXSspIi4qZD0iKFteIl0rKSIvLHthdHRyMToxLGQxOjJ9KV1dLGpkPWVyLnN0eWxlcyxHcjE9ZXIuc2hpbXMseXJ0PU9iamVjdC5rZXlzKGYxZSksWXIxPXlydC5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtlXT1PYmplY3Qua2V5cyhmMWVbZV0pLHR9LHt9KSx5MWU9bnVsbCx3cnQ9e30sTXJ0PXt9LHpydD17fSxrcnQ9e30sU3J0PXt9O0NydD1mdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKG8pe3JldHVybiB4MWUoamQsZnVuY3Rpb24ocyxsLGYpe3JldHVybiBzW2ZdPXgxZShsLG8se30pLHN9LHt9KX07d3J0PWUoZnVuY3Rpb24oaSxvLHMpe2lmKG9bM10mJihpW29bM11dPXMpLG9bMl0pe3ZhciBsPW9bMl0uZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiB0eXBlb2YgZj09Im51bWJlciJ9KTtsLmZvckVhY2goZnVuY3Rpb24oZil7aVtmLnRvU3RyaW5nKDE2KV09c30pfXJldHVybiBpfSksTXJ0PWUoZnVuY3Rpb24oaSxvLHMpe2lmKGlbc109cyxvWzJdKXt2YXIgbD1vWzJdLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gdHlwZW9mIGY9PSJzdHJpbmcifSk7bC5mb3JFYWNoKGZ1bmN0aW9uKGYpe2lbZl09c30pfXJldHVybiBpfSksU3J0PWUoZnVuY3Rpb24oaSxvLHMpe3ZhciBsPW9bMl07cmV0dXJuIGlbc109cyxsLmZvckVhY2goZnVuY3Rpb24oZil7aVtmXT1zfSksaX0pO3ZhciBhPSJmYXIiaW4gamR8fFplLmF1dG9GZXRjaFN2ZyxyPXgxZShHcjEsZnVuY3Rpb24oaSxvKXt2YXIgcz1vWzBdLGw9b1sxXSxmPW9bMl07cmV0dXJuIGw9PT0iZmFyIiYmIWEmJihsPSJmYXMiKSx0eXBlb2Ygcz09InN0cmluZyImJihpLm5hbWVzW3NdPXtwcmVmaXg6bCxpY29uTmFtZTpmfSksdHlwZW9mIHM9PSJudW1iZXIiJiYoaS51bmljb2Rlc1tzLnRvU3RyaW5nKDE2KV09e3ByZWZpeDpsLGljb25OYW1lOmZ9KSxpfSx7bmFtZXM6e30sdW5pY29kZXM6e319KTt6cnQ9ci5uYW1lcyxrcnQ9ci51bmljb2Rlcyx5MWU9aVYoWmUuc3R5bGVEZWZhdWx0LHtmYW1pbHk6WmUuZmFtaWx5RGVmYXVsdH0pfTtGcjEoZnVuY3Rpb24odCl7eTFlPWlWKHQuc3R5bGVEZWZhdWx0LHtmYW1pbHk6WmUuZmFtaWx5RGVmYXVsdH0pfSksQ3J0KCk7VHJ0PWZ1bmN0aW9uKCl7cmV0dXJue3ByZWZpeDpudWxsLGljb25OYW1lOm51bGwscmVzdDpbXX19O0FydD1KYXQuY29uY2F0KFhhdCk7YWkxPVphdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1pMnx8dCE9PVJkfSkscmkxPU9iamVjdC5rZXlzKGkxZSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09aTJ9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKGkxZVt0XSl9KS5mbGF0KCk7b2kxPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXtWMjEodGhpcyx0KSx0aGlzLmRlZmluaXRpb25zPXt9fXJldHVybiBVMjEodCxbe2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLHI9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShyKSxvPTA7bzxyO28rKylpW29dPWFyZ3VtZW50c1tvXTt2YXIgcz1pLnJlZHVjZSh0aGlzLl9wdWxsRGVmaW5pdGlvbnMse30pO09iamVjdC5rZXlzKHMpLmZvckVhY2goZnVuY3Rpb24obCl7YS5kZWZpbml0aW9uc1tsXT1fZShfZSh7fSxhLmRlZmluaXRpb25zW2xdfHx7fSksc1tsXSksYjFlKGwsc1tsXSk7dmFyIGY9ZjFlW2kyXVtsXTtmJiZiMWUoZixzW2xdKSxDcnQoKX0pfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kZWZpbml0aW9ucz17fX19LHtrZXk6Il9wdWxsRGVmaW5pdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGEscil7dmFyIGk9ci5wcmVmaXgmJnIuaWNvbk5hbWUmJnIuaWNvbj97MDpyfTpyO3JldHVybiBPYmplY3Qua2V5cyhpKS5tYXAoZnVuY3Rpb24obyl7dmFyIHM9aVtvXSxsPXMucHJlZml4LGY9cy5pY29uTmFtZSxjPXMuaWNvbix1PWNbMl07YVtsXXx8KGFbbF09e30pLHUubGVuZ3RoPjAmJnUuZm9yRWFjaChmdW5jdGlvbihkKXt0eXBlb2YgZD09InN0cmluZyImJihhW2xdW2RdPWMpfSksYVtsXVtmXT1jfSksYX19XSl9KSgpLCRydD1bXSxaNj17fSxYNj17fSxzaTE9T2JqZWN0LmtleXMoWDYpO0RydD1uZXcgb2kxLGxpMT1mdW5jdGlvbigpe1plLmF1dG9SZXBsYWNlU3ZnPSExLFplLm9ic2VydmVNdXRhdGlvbnM9ITEsRW4oIm5vQXV0byIpfSxjaTE9e2kyc3ZnOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9O3JldHVybiAkaT8oRW4oImJlZm9yZUkyc3ZnIixlKSxycygicHNldWRvRWxlbWVudHMyc3ZnIixlKSxycygiaTJzdmciLGUpKTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIk9wZXJhdGlvbiByZXF1aXJlcyBhIERPTSBvZiBzb21lIGtpbmQuIikpfSx3YXRjaDpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxhPWUuYXV0b1JlcGxhY2VTdmdSb290O1plLmF1dG9SZXBsYWNlU3ZnPT09ITEmJihaZS5hdXRvUmVwbGFjZVN2Zz0hMCksWmUub2JzZXJ2ZU11dGF0aW9ucz0hMCxqcjEoZnVuY3Rpb24oKXtmaTEoe2F1dG9SZXBsYWNlU3ZnUm9vdDphfSksRW4oIndhdGNoIixlKX0pfX0sZGkxPXtpY29uOmZ1bmN0aW9uKGUpe2lmKGU9PT1udWxsKXJldHVybiBudWxsO2lmKEpxKGUpPT09Im9iamVjdCImJmUucHJlZml4JiZlLmljb25OYW1lKXJldHVybntwcmVmaXg6ZS5wcmVmaXgsaWNvbk5hbWU6RG4oZS5wcmVmaXgsZS5pY29uTmFtZSl8fGUuaWNvbk5hbWV9O2lmKEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPT09Mil7dmFyIGE9ZVsxXS5pbmRleE9mKCJmYS0iKT09PTA/ZVsxXS5zbGljZSgzKTplWzFdLHI9aVYoZVswXSk7cmV0dXJue3ByZWZpeDpyLGljb25OYW1lOkRuKHIsYSl8fGF9fWlmKHR5cGVvZiBlPT0ic3RyaW5nIiYmKGUuaW5kZXhPZigiIi5jb25jYXQoWmUuY3NzUHJlZml4LCItIikpPi0xfHxlLm1hdGNoKEFyMSkpKXt2YXIgaT1vVihlLnNwbGl0KCIgIikse3NraXBMb29rdXBzOiEwfSk7cmV0dXJue3ByZWZpeDppLnByZWZpeHx8YXMoKSxpY29uTmFtZTpEbihpLnByZWZpeCxpLmljb25OYW1lKXx8aS5pY29uTmFtZX19aWYodHlwZW9mIGU9PSJzdHJpbmciKXt2YXIgbz1hcygpO3JldHVybntwcmVmaXg6byxpY29uTmFtZTpEbihvLGUpfHxlfX19fSx0YT17bm9BdXRvOmxpMSxjb25maWc6WmUsZG9tOmNpMSxwYXJzZTpkaTEsbGlicmFyeTpEcnQsZmluZEljb25EZWZpbml0aW9uOnoxZSx0b0h0bWw6VWR9LGZpMT1mdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxhPWUuYXV0b1JlcGxhY2VTdmdSb290LHI9YT09PXZvaWQgMD9kMTphOyhPYmplY3Qua2V5cyhlci5zdHlsZXMpLmxlbmd0aD4wfHxaZS5hdXRvRmV0Y2hTdmcpJiYkaSYmWmUuYXV0b1JlcGxhY2VTdmcmJnRhLmRvbS5pMnN2Zyh7bm9kZTpyfSl9O1MxZT1lci5zdHlsZXM7Z2kxPXtmb3VuZDohMSx3aWR0aDo1MTIsaGVpZ2h0OjUxMn07TnJ0PWZ1bmN0aW9uKCl7fSxUMWU9WmUubWVhc3VyZVBlcmZvcm1hbmNlJiZlViYmZVYubWFyayYmZVYubWVhc3VyZT9lVjp7bWFyazpOcnQsbWVhc3VyZTpOcnR9LFdkPSdGQSAiNy4xLjAiJyxiaTE9ZnVuY3Rpb24oZSl7cmV0dXJuIFQxZS5tYXJrKCIiLmNvbmNhdChXZCwiICIpLmNvbmNhdChlLCIgYmVnaW5zIikpLGZ1bmN0aW9uKCl7cmV0dXJuIFBydChlKX19LFBydD1mdW5jdGlvbihlKXtUMWUubWFyaygiIi5jb25jYXQoV2QsIiAiKS5jb25jYXQoZSwiIGVuZHMiKSksVDFlLm1lYXN1cmUoIiIuY29uY2F0KFdkLCIgIikuY29uY2F0KGUpLCIiLmNvbmNhdChXZCwiICIpLmNvbmNhdChlLCIgYmVnaW5zIiksIiIuY29uY2F0KFdkLCIgIikuY29uY2F0KGUsIiBlbmRzIikpfSxfMWU9e2JlZ2luOmJpMSxlbmQ6UHJ0fSxuVj1mdW5jdGlvbigpe307bFY9e3JlcGxhY2U6ZnVuY3Rpb24oZSl7dmFyIGE9ZVswXTtpZihhLnBhcmVudE5vZGUpaWYoZVsxXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoRnJ0KGkpLGEpfSksYS5nZXRBdHRyaWJ1dGUoJG4pPT09bnVsbCYmWmUua2VlcE9yaWdpbmFsU291cmNlKXt2YXIgcj1kMS5jcmVhdGVDb21tZW50KGtpMShhKSk7YS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChyLGEpfWVsc2UgYS5yZW1vdmUoKX0sbmVzdDpmdW5jdGlvbihlKXt2YXIgYT1lWzBdLHI9ZVsxXTtpZih+aDFlKGEpLmluZGV4T2YoWmUucmVwbGFjZW1lbnRDbGFzcykpcmV0dXJuIGxWLnJlcGxhY2UoZSk7dmFyIGk9bmV3IFJlZ0V4cCgiIi5jb25jYXQoWmUuY3NzUHJlZml4LCItLioiKSk7aWYoZGVsZXRlIHJbMF0uYXR0cmlidXRlcy5pZCxyWzBdLmF0dHJpYnV0ZXMuY2xhc3Mpe3ZhciBvPXJbMF0uYXR0cmlidXRlcy5jbGFzcy5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihsLGYpe3JldHVybiBmPT09WmUucmVwbGFjZW1lbnRDbGFzc3x8Zi5tYXRjaChpKT9sLnRvU3ZnLnB1c2goZik6bC50b05vZGUucHVzaChmKSxsfSx7dG9Ob2RlOltdLHRvU3ZnOltdfSk7clswXS5hdHRyaWJ1dGVzLmNsYXNzPW8udG9Tdmcuam9pbigiICIpLG8udG9Ob2RlLmxlbmd0aD09PTA/YS5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik6YS5zZXRBdHRyaWJ1dGUoImNsYXNzIixvLnRvTm9kZS5qb2luKCIgIikpfXZhciBzPXIubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBVZChsKX0pLmpvaW4oYApgKTthLnNldEF0dHJpYnV0ZSgkbiwiIiksYS5pbm5lckhUTUw9c319O0ExZT0hMTtjVj1udWxsO0FpMT1lci5zdHlsZXM7TmkxPWZ1bmN0aW9uKGUpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxyPWEudHJhbnNmb3JtLGk9cj09PXZvaWQgMD9qcjpyLG89YS5zeW1ib2wscz1vPT09dm9pZCAwPyExOm8sbD1hLm1hc2ssZj1sPT09dm9pZCAwP251bGw6bCxjPWEubWFza0lkLHU9Yz09PXZvaWQgMD9udWxsOmMsZD1hLmNsYXNzZXMsaD1kPT09dm9pZCAwP1tdOmQsZz1hLmF0dHJpYnV0ZXMsYj1nPT09dm9pZCAwP3t9OmcseD1hLnN0eWxlcyxtPXg9PT12b2lkIDA/e306eDtpZihlKXt2YXIgdj1lLnByZWZpeCx5PWUuaWNvbk5hbWUsdz1lLmljb247cmV0dXJuIHNWKF9lKHt0eXBlOiJpY29uIn0sZSksZnVuY3Rpb24oKXtyZXR1cm4gRW4oImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2ljb25EZWZpbml0aW9uOmUscGFyYW1zOmF9KSxrMWUoe2ljb25zOnttYWluOkMxZSh3KSxtYXNrOmY/QzFlKGYuaWNvbik6e2ZvdW5kOiExLHdpZHRoOm51bGwsaGVpZ2h0Om51bGwsaWNvbjp7fX19LHByZWZpeDp2LGljb25OYW1lOnksdHJhbnNmb3JtOl9lKF9lKHt9LGpyKSxpKSxzeW1ib2w6cyxtYXNrSWQ6dSxleHRyYTp7YXR0cmlidXRlczpiLHN0eWxlczptLGNsYXNzZXM6aH19KX0pfX0sUGkxPXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57aWNvbjpFaTEoTmkxKX19LGhvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudHJlZUNhbGxiYWNrPVVydCxhLm5vZGVDYWxsYmFjaz1EaTEsYX19fSxwcm92aWRlczpmdW5jdGlvbihlKXtlLmkyc3ZnPWZ1bmN0aW9uKGEpe3ZhciByPWEubm9kZSxpPXI9PT12b2lkIDA/ZDE6cixvPWEuY2FsbGJhY2sscz1vPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTpvO3JldHVybiBVcnQoaSxzKX0sZS5nZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb249ZnVuY3Rpb24oYSxyKXt2YXIgaT1yLmljb25OYW1lLG89ci5wcmVmaXgscz1yLnRyYW5zZm9ybSxsPXIuc3ltYm9sLGY9ci5tYXNrLGM9ci5tYXNrSWQsdT1yLmV4dHJhO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGgpe1Byb21pc2UuYWxsKFtMMWUoaSxvKSxmLmljb25OYW1lP0wxZShmLmljb25OYW1lLGYucHJlZml4KTpQcm9taXNlLnJlc29sdmUoe2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyLGljb246e319KV0pLnRoZW4oZnVuY3Rpb24oZyl7dmFyIGI9S3EoZywyKSx4PWJbMF0sbT1iWzFdO2QoW2EsazFlKHtpY29uczp7bWFpbjp4LG1hc2s6bX0scHJlZml4Om8saWNvbk5hbWU6aSx0cmFuc2Zvcm06cyxzeW1ib2w6bCxtYXNrSWQ6YyxleHRyYTp1LHdhdGNoYWJsZTohMH0pXSl9KS5jYXRjaChoKX0pfSxlLmdlbmVyYXRlQWJzdHJhY3RJY29uPWZ1bmN0aW9uKGEpe3ZhciByPWEuY2hpbGRyZW4saT1hLmF0dHJpYnV0ZXMsbz1hLm1haW4scz1hLnRyYW5zZm9ybSxsPWEuc3R5bGVzLGY9YVYobCk7Zi5sZW5ndGg+MCYmKGkuc3R5bGU9Zik7dmFyIGM7cmV0dXJuIG0xZShzKSYmKGM9cnMoImdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZyIse21haW46byx0cmFuc2Zvcm06cyxjb250YWluZXJXaWR0aDpvLndpZHRoLGljb25XaWR0aDpvLndpZHRofSkpLHIucHVzaChjfHxvLmljb24pLHtjaGlsZHJlbjpyLGF0dHJpYnV0ZXM6aX19fX0sSWkxPXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57bGF5ZXI6ZnVuY3Rpb24oYSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGk9ci5jbGFzc2VzLG89aT09PXZvaWQgMD9bXTppO3JldHVybiBzVih7dHlwZToibGF5ZXIifSxmdW5jdGlvbigpe0VuKCJiZWZvcmVET01FbGVtZW50Q3JlYXRpb24iLHthc3NlbWJsZXI6YSxwYXJhbXM6cn0pO3ZhciBzPVtdO3JldHVybiBhKGZ1bmN0aW9uKGwpe0FycmF5LmlzQXJyYXkobCk/bC5tYXAoZnVuY3Rpb24oZil7cz1zLmNvbmNhdChmLmFic3RyYWN0KX0pOnM9cy5jb25jYXQobC5hYnN0cmFjdCl9KSxbe3RhZzoic3BhbiIsYXR0cmlidXRlczp7Y2xhc3M6WyIiLmNvbmNhdChaZS5jc3NQcmVmaXgsIi1sYXllcnMiKV0uY29uY2F0KEphKG8pKS5qb2luKCIgIil9LGNoaWxkcmVuOnN9XX0pfX19fSxGaTE9e21peG91dDpmdW5jdGlvbigpe3JldHVybntjb3VudGVyOmZ1bmN0aW9uKGEpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxpPXIudGl0bGUsbz1pPT09dm9pZCAwP251bGw6aSxzPXIuY2xhc3NlcyxsPXM9PT12b2lkIDA/W106cyxmPXIuYXR0cmlidXRlcyxjPWY9PT12b2lkIDA/e306Zix1PXIuc3R5bGVzLGQ9dT09PXZvaWQgMD97fTp1O3JldHVybiBzVih7dHlwZToiY291bnRlciIsY29udGVudDphfSxmdW5jdGlvbigpe3JldHVybiBFbigiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDphLHBhcmFtczpyfSksbWkxKHtjb250ZW50OmEudG9TdHJpbmcoKSx0aXRsZTpvLGV4dHJhOnthdHRyaWJ1dGVzOmMsc3R5bGVzOmQsY2xhc3NlczpbIiIuY29uY2F0KFplLmNzc1ByZWZpeCwiLWxheWVycy1jb3VudGVyIildLmNvbmNhdChKYShsKSl9fSl9KX19fX0sT2kxPXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57dGV4dDpmdW5jdGlvbihhKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30saT1yLnRyYW5zZm9ybSxvPWk9PT12b2lkIDA/anI6aSxzPXIuY2xhc3NlcyxsPXM9PT12b2lkIDA/W106cyxmPXIuYXR0cmlidXRlcyxjPWY9PT12b2lkIDA/e306Zix1PXIuc3R5bGVzLGQ9dT09PXZvaWQgMD97fTp1O3JldHVybiBzVih7dHlwZToidGV4dCIsY29udGVudDphfSxmdW5jdGlvbigpe3JldHVybiBFbigiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDphLHBhcmFtczpyfSksRXJ0KHtjb250ZW50OmEsdHJhbnNmb3JtOl9lKF9lKHt9LGpyKSxvKSxleHRyYTp7YXR0cmlidXRlczpjLHN0eWxlczpkLGNsYXNzZXM6WyIiLmNvbmNhdChaZS5jc3NQcmVmaXgsIi1sYXllcnMtdGV4dCIpXS5jb25jYXQoSmEobCkpfX0pfSl9fX0scHJvdmlkZXM6ZnVuY3Rpb24oZSl7ZS5nZW5lcmF0ZUxheWVyc1RleHQ9ZnVuY3Rpb24oYSxyKXt2YXIgaT1yLnRyYW5zZm9ybSxvPXIuZXh0cmEscz1udWxsLGw9bnVsbDtpZihBYXQpe3ZhciBmPXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoYSkuZm9udFNpemUsMTApLGM9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtzPWMud2lkdGgvZixsPWMuaGVpZ2h0L2Z9cmV0dXJuIFByb21pc2UucmVzb2x2ZShbYSxFcnQoe2NvbnRlbnQ6YS5pbm5lckhUTUwsd2lkdGg6cyxoZWlnaHQ6bCx0cmFuc2Zvcm06aSxleHRyYTpvLHdhdGNoYWJsZTohMH0pXSl9fX0sanJ0PW5ldyBSZWdFeHAoJyInLCJ1ZyIpLFdydD1bMTEwNTkyMCwxMTEyMzE5XSxHcnQ9X2UoX2UoX2UoX2Uoe30se0ZvbnRBd2Vzb21lOntub3JtYWw6ImZhcyIsNDAwOiJmYXMifX0pLHlhMSksU3IxKSxfYTEpLEQxZT1PYmplY3Qua2V5cyhHcnQpLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiB0W2UudG9Mb3dlckNhc2UoKV09R3J0W2VdLHR9LHt9KSxCaTE9T2JqZWN0LmtleXMoRDFlKS5yZWR1Y2UoZnVuY3Rpb24odCxlKXt2YXIgYT1EMWVbZV07cmV0dXJuIHRbZV09YVs5MDBdfHxKYShPYmplY3QuZW50cmllcyhhKSlbMF1bMV0sdH0se30pO2ppMT1mdW5jdGlvbihlKXtyZXR1cm4hIWUmJmlydC5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBlLmluY2x1ZGVzKGEpfSl9LFdpMT1mdW5jdGlvbihlKXtpZighZSlyZXR1cm5bXTt2YXIgYT1uZXcgU2V0LHI9ZS5zcGxpdCgvLCg/IVteKCldKlwpKS8pLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gZi50cmltKCl9KTtyPXIuZmxhdE1hcChmdW5jdGlvbihmKXtyZXR1cm4gZi5pbmNsdWRlcygiKCIpP2Y6Zi5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy50cmltKCl9KX0pO3ZhciBpPVhxKHIpLG87dHJ5e2ZvcihpLnMoKTshKG89aS5uKCkpLmRvbmU7KXt2YXIgcz1vLnZhbHVlO2lmKGppMShzKSl7dmFyIGw9aXJ0LnJlZHVjZShmdW5jdGlvbihmLGMpe3JldHVybiBmLnJlcGxhY2UoYywiIil9LHMpO2whPT0iIiYmbCE9PSIqIiYmYS5hZGQobCl9fX1jYXRjaChmKXtpLmUoZil9ZmluYWxseXtpLmYoKX1yZXR1cm4gYX07R2kxPXtob29rczpmdW5jdGlvbigpe3JldHVybnttdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzOmZ1bmN0aW9uKGEpe3JldHVybiBhLnBzZXVkb0VsZW1lbnRzQ2FsbGJhY2s9WnJ0LGF9fX0scHJvdmlkZXM6ZnVuY3Rpb24oZSl7ZS5wc2V1ZG9FbGVtZW50czJzdmc9ZnVuY3Rpb24oYSl7dmFyIHI9YS5ub2RlLGk9cj09PXZvaWQgMD9kMTpyO1plLnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZacnQoaSl9fX0sWHJ0PSExLFlpMT17bWl4b3V0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbTp7dW53YXRjaDpmdW5jdGlvbigpe1JydCgpLFhydD0hMH19fX0saG9va3M6ZnVuY3Rpb24oKXtyZXR1cm57Ym9vdHN0cmFwOmZ1bmN0aW9uKCl7SHJ0KE0xZSgibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIse30pKX0sbm9BdXRvOmZ1bmN0aW9uKCl7U2kxKCl9LHdhdGNoOmZ1bmN0aW9uKGEpe3ZhciByPWEub2JzZXJ2ZU11dGF0aW9uc1Jvb3Q7WHJ0PyQxZSgpOkhydChNMWUoIm11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MiLHtvYnNlcnZlTXV0YXRpb25zUm9vdDpyfSkpfX19fSxRcnQ9ZnVuY3Rpb24oZSl7dmFyIGE9e3NpemU6MTYseDowLHk6MCxmbGlwWDohMSxmbGlwWTohMSxyb3RhdGU6MH07cmV0dXJuIGUudG9Mb3dlckNhc2UoKS5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihyLGkpe3ZhciBvPWkudG9Mb3dlckNhc2UoKS5zcGxpdCgiLSIpLHM9b1swXSxsPW8uc2xpY2UoMSkuam9pbigiLSIpO2lmKHMmJmw9PT0iaCIpcmV0dXJuIHIuZmxpcFg9ITAscjtpZihzJiZsPT09InYiKXJldHVybiByLmZsaXBZPSEwLHI7aWYobD1wYXJzZUZsb2F0KGwpLGlzTmFOKGwpKXJldHVybiByO3N3aXRjaChzKXtjYXNlImdyb3ciOnIuc2l6ZT1yLnNpemUrbDticmVhaztjYXNlInNocmluayI6ci5zaXplPXIuc2l6ZS1sO2JyZWFrO2Nhc2UibGVmdCI6ci54PXIueC1sO2JyZWFrO2Nhc2UicmlnaHQiOnIueD1yLngrbDticmVhaztjYXNlInVwIjpyLnk9ci55LWw7YnJlYWs7Y2FzZSJkb3duIjpyLnk9ci55K2w7YnJlYWs7Y2FzZSJyb3RhdGUiOnIucm90YXRlPXIucm90YXRlK2w7YnJlYWt9cmV0dXJuIHJ9LGEpfSxaaTE9e21peG91dDpmdW5jdGlvbigpe3JldHVybntwYXJzZTp7dHJhbnNmb3JtOmZ1bmN0aW9uKGEpe3JldHVybiBRcnQoYSl9fX19LGhvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6ZnVuY3Rpb24oYSxyKXt2YXIgaT1yLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS10cmFuc2Zvcm0iKTtyZXR1cm4gaSYmKGEudHJhbnNmb3JtPVFydChpKSksYX19fSxwcm92aWRlczpmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZz1mdW5jdGlvbihhKXt2YXIgcj1hLm1haW4saT1hLnRyYW5zZm9ybSxvPWEuY29udGFpbmVyV2lkdGgscz1hLmljb25XaWR0aCxsPXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChvLzIsIiAyNTYpIil9LGY9InRyYW5zbGF0ZSgiLmNvbmNhdChpLngqMzIsIiwgIikuY29uY2F0KGkueSozMiwiKSAiKSxjPSJzY2FsZSgiLmNvbmNhdChpLnNpemUvMTYqKGkuZmxpcFg/LTE6MSksIiwgIikuY29uY2F0KGkuc2l6ZS8xNiooaS5mbGlwWT8tMToxKSwiKSAiKSx1PSJyb3RhdGUoIi5jb25jYXQoaS5yb3RhdGUsIiAwIDApIiksZD17dHJhbnNmb3JtOiIiLmNvbmNhdChmLCIgIikuY29uY2F0KGMsIiAiKS5jb25jYXQodSl9LGg9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KHMvMiotMSwiIC0yNTYpIil9LGc9e291dGVyOmwsaW5uZXI6ZCxwYXRoOmh9O3JldHVybnt0YWc6ImciLGF0dHJpYnV0ZXM6X2Uoe30sZy5vdXRlciksY2hpbGRyZW46W3t0YWc6ImciLGF0dHJpYnV0ZXM6X2Uoe30sZy5pbm5lciksY2hpbGRyZW46W3t0YWc6ci5pY29uLnRhZyxjaGlsZHJlbjpyLmljb24uY2hpbGRyZW4sYXR0cmlidXRlczpfZShfZSh7fSxyLmljb24uYXR0cmlidXRlcyksZy5wYXRoKX1dfV19fX19LEUxZT17eDowLHk6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn07UWkxPXtob29rczpmdW5jdGlvbigpe3JldHVybntwYXJzZU5vZGVBdHRyaWJ1dGVzOmZ1bmN0aW9uKGEscil7dmFyIGk9ci5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtbWFzayIpLG89aT9vVihpLnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBzLnRyaW0oKX0pKTpUcnQoKTtyZXR1cm4gby5wcmVmaXh8fChvLnByZWZpeD1hcygpKSxhLm1hc2s9byxhLm1hc2tJZD1yLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS1tYXNrLWlkIiksYX19fSxwcm92aWRlczpmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RNYXNrPWZ1bmN0aW9uKGEpe3ZhciByPWEuY2hpbGRyZW4saT1hLmF0dHJpYnV0ZXMsbz1hLm1haW4scz1hLm1hc2ssbD1hLm1hc2tJZCxmPWEudHJhbnNmb3JtLGM9by53aWR0aCx1PW8uaWNvbixkPXMud2lkdGgsaD1zLmljb24sZz1IcjEoe3RyYW5zZm9ybTpmLGNvbnRhaW5lcldpZHRoOmQsaWNvbldpZHRoOmN9KSxiPXt0YWc6InJlY3QiLGF0dHJpYnV0ZXM6X2UoX2Uoe30sRTFlKSx7fSx7ZmlsbDoid2hpdGUifSl9LHg9dS5jaGlsZHJlbj97Y2hpbGRyZW46dS5jaGlsZHJlbi5tYXAoS3J0KX06e30sbT17dGFnOiJnIixhdHRyaWJ1dGVzOl9lKHt9LGcuaW5uZXIpLGNoaWxkcmVuOltLcnQoX2Uoe3RhZzp1LnRhZyxhdHRyaWJ1dGVzOl9lKF9lKHt9LHUuYXR0cmlidXRlcyksZy5wYXRoKX0seCkpXX0sdj17dGFnOiJnIixhdHRyaWJ1dGVzOl9lKHt9LGcub3V0ZXIpLGNoaWxkcmVuOlttXX0seT0ibWFzay0iLmNvbmNhdChsfHxmcnQoKSksdz0iY2xpcC0iLmNvbmNhdChsfHxmcnQoKSksRT17dGFnOiJtYXNrIixhdHRyaWJ1dGVzOl9lKF9lKHt9LEUxZSkse30se2lkOnksbWFza1VuaXRzOiJ1c2VyU3BhY2VPblVzZSIsbWFza0NvbnRlbnRVbml0czoidXNlclNwYWNlT25Vc2UifSksY2hpbGRyZW46W2Isdl19LEM9e3RhZzoiZGVmcyIsY2hpbGRyZW46W3t0YWc6ImNsaXBQYXRoIixhdHRyaWJ1dGVzOntpZDp3fSxjaGlsZHJlbjpYaTEoaCl9LEVdfTtyZXR1cm4gci5wdXNoKEMse3RhZzoicmVjdCIsYXR0cmlidXRlczpfZSh7ZmlsbDoiY3VycmVudENvbG9yIiwiY2xpcC1wYXRoIjoidXJsKCMiLmNvbmNhdCh3LCIpIiksbWFzazoidXJsKCMiLmNvbmNhdCh5LCIpIil9LEUxZSl9KSx7Y2hpbGRyZW46cixhdHRyaWJ1dGVzOml9fX19LEtpMT17cHJvdmlkZXM6ZnVuY3Rpb24oZSl7dmFyIGE9ITE7ZXMubWF0Y2hNZWRpYSYmKGE9ZXMubWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzKSxlLm1pc3NpbmdJY29uQWJzdHJhY3Q9ZnVuY3Rpb24oKXt2YXIgcj1bXSxpPXtmaWxsOiJjdXJyZW50Q29sb3IifSxvPXthdHRyaWJ1dGVUeXBlOiJYTUwiLHJlcGVhdENvdW50OiJpbmRlZmluaXRlIixkdXI6IjJzIn07ci5wdXNoKHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6X2UoX2Uoe30saSkse30se2Q6Ik0xNTYuNSw0NDcuN2wtMTIuNiwyOS41Yy0xOC43LTkuNS0zNS45LTIxLjItNTEuNS0zNC45bDIyLjctMjIuN0MxMjcuNiw0MzAuNSwxNDEuNSw0NDAsMTU2LjUsNDQ3Ljd6IE00MC42LDI3Mkg4LjUgYzEuNCwyMS4yLDUuNCw0MS43LDExLjcsNjEuMUw1MCwzMjEuMkM0NS4xLDMwNS41LDQxLjgsMjg5LDQwLjYsMjcyeiBNNDAuNiwyNDBjMS40LTE4LjgsNS4yLTM3LDExLjEtNTQuMWwtMjkuNS0xMi42IEMxNC43LDE5NC4zLDEwLDIxNi43LDguNSwyNDBINDAuNnogTTY0LjMsMTU2LjVjNy44LTE0LjksMTcuMi0yOC44LDI4LjEtNDEuNUw2OS43LDkyLjNjLTEzLjcsMTUuNi0yNS41LDMyLjgtMzQuOSw1MS41IEw2NC4zLDE1Ni41eiBNMzk3LDQxOS42Yy0xMy45LDEyLTI5LjQsMjIuMy00Ni4xLDMwLjRsMTEuOSwyOS44YzIwLjctOS45LDM5LjgtMjIuNiw1Ni45LTM3LjZMMzk3LDQxOS42eiBNMTE1LDkyLjQgYzEzLjktMTIsMjkuNC0yMi4zLDQ2LjEtMzAuNGwtMTEuOS0yOS44Yy0yMC43LDkuOS0zOS44LDIyLjYtNTYuOCwzNy42TDExNSw5Mi40eiBNNDQ3LjcsMzU1LjVjLTcuOCwxNC45LTE3LjIsMjguOC0yOC4xLDQxLjUgbDIyLjcsMjIuN2MxMy43LTE1LjYsMjUuNS0zMi45LDM0LjktNTEuNUw0NDcuNywzNTUuNXogTTQ3MS40LDI3MmMtMS40LDE4LjgtNS4yLDM3LTExLjEsNTQuMWwyOS41LDEyLjYgYzcuNS0yMS4xLDEyLjItNDMuNSwxMy42LTY2LjhINDcxLjR6IE0zMjEuMiw0NjJjLTE1LjcsNS0zMi4yLDguMi00OS4yLDkuNHYzMi4xYzIxLjItMS40LDQxLjctNS40LDYxLjEtMTEuN0wzMjEuMiw0NjJ6IE0yNDAsNDcxLjRjLTE4LjgtMS40LTM3LTUuMi01NC4xLTExLjFsLTEyLjYsMjkuNWMyMS4xLDcuNSw0My41LDEyLjIsNjYuOCwxMy42VjQ3MS40eiBNNDYyLDE5MC44YzUsMTUuNyw4LjIsMzIuMiw5LjQsNDkuMmgzMi4xIGMtMS40LTIxLjItNS40LTQxLjctMTEuNy02MS4xTDQ2MiwxOTAuOHogTTkyLjQsMzk3Yy0xMi0xMy45LTIyLjMtMjkuNC0zMC40LTQ2LjFsLTI5LjgsMTEuOWM5LjksMjAuNywyMi42LDM5LjgsMzcuNiw1Ni45IEw5Mi40LDM5N3ogTTI3Miw0MC42YzE4LjgsMS40LDM2LjksNS4yLDU0LjEsMTEuMWwxMi42LTI5LjVDMzE3LjcsMTQuNywyOTUuMywxMCwyNzIsOC41VjQwLjZ6IE0xOTAuOCw1MCBjMTUuNy01LDMyLjItOC4yLDQ5LjItOS40VjguNWMtMjEuMiwxLjQtNDEuNyw1LjQtNjEuMSwxMS43TDE5MC44LDUweiBNNDQyLjMsOTIuM0w0MTkuNiwxMTVjMTIsMTMuOSwyMi4zLDI5LjQsMzAuNSw0Ni4xIGwyOS44LTExLjlDNDcwLDEyOC41LDQ1Ny4zLDEwOS40LDQ0Mi4zLDkyLjN6IE0zOTcsOTIuNGwyMi43LTIyLjdjLTE1LjYtMTMuNy0zMi44LTI1LjUtNTEuNS0zNC45bC0xMi42LDI5LjUgQzM3MC40LDcyLjEsMzg0LjQsODEuNSwzOTcsOTIuNHoifSl9KTt2YXIgcz1fZShfZSh7fSxvKSx7fSx7YXR0cmlidXRlTmFtZToib3BhY2l0eSJ9KSxsPXt0YWc6ImNpcmNsZSIsYXR0cmlidXRlczpfZShfZSh7fSxpKSx7fSx7Y3g6IjI1NiIsY3k6IjM2NCIscjoiMjgifSksY2hpbGRyZW46W119O3JldHVybiBhfHxsLmNoaWxkcmVuLnB1c2goe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpfZShfZSh7fSxvKSx7fSx7YXR0cmlidXRlTmFtZToiciIsdmFsdWVzOiIyODsxNDsyODsyODsxNDsyODsifSl9LHt0YWc6ImFuaW1hdGUiLGF0dHJpYnV0ZXM6X2UoX2Uoe30scykse30se3ZhbHVlczoiMTswOzE7MTswOzE7In0pfSksci5wdXNoKGwpLHIucHVzaCh7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOl9lKF9lKHt9LGkpLHt9LHtvcGFjaXR5OiIxIixkOiJNMjYzLjcsMzEyaC0xNmMtNi42LDAtMTItNS40LTEyLTEyYzAtNzEsNzcuNC02My45LDc3LjQtMTA3LjhjMC0yMC0xNy44LTQwLjItNTcuNC00MC4yYy0yOS4xLDAtNDQuMyw5LjYtNTkuMiwyOC43IGMtMy45LDUtMTEuMSw2LTE2LjIsMi40bC0xMy4xLTkuMmMtNS42LTMuOS02LjktMTEuOC0yLjYtMTcuMmMyMS4yLTI3LjIsNDYuNC00NC43LDkxLjItNDQuN2M1Mi4zLDAsOTcuNCwyOS44LDk3LjQsODAuMiBjMCw2Ny42LTc3LjQsNjMuNS03Ny40LDEwNy44QzI3NS43LDMwNi42LDI3MC4zLDMxMiwyNjMuNywzMTJ6In0pLGNoaWxkcmVuOmE/W106W3t0YWc6ImFuaW1hdGUiLGF0dHJpYnV0ZXM6X2UoX2Uoe30scykse30se3ZhbHVlczoiMTswOzA7MDswOzE7In0pfV19KSxhfHxyLnB1c2goe3RhZzoicGF0aCIsYXR0cmlidXRlczpfZShfZSh7fSxpKSx7fSx7b3BhY2l0eToiMCIsZDoiTTIzMi41LDEzNC41bDcsMTY4YzAuMyw2LjQsNS42LDExLjUsMTIsMTEuNWg5YzYuNCwwLDExLjctNS4xLDEyLTExLjVsNy0xNjhjMC4zLTYuOC01LjItMTIuNS0xMi0xMi41aC0yMyBDMjM3LjcsMTIyLDIzMi4yLDEyNy43LDIzMi41LDEzNC41eiJ9KSxjaGlsZHJlbjpbe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpfZShfZSh7fSxzKSx7fSx7dmFsdWVzOiIwOzA7MTsxOzA7MDsifSl9XX0pLHt0YWc6ImciLGF0dHJpYnV0ZXM6e2NsYXNzOiJtaXNzaW5nIn0sY2hpbGRyZW46cn19fX0sSmkxPXtob29rczpmdW5jdGlvbigpe3JldHVybntwYXJzZU5vZGVBdHRyaWJ1dGVzOmZ1bmN0aW9uKGEscil7dmFyIGk9ci5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtc3ltYm9sIiksbz1pPT09bnVsbD8hMTppPT09IiI/ITA6aTtyZXR1cm4gYS5zeW1ib2w9byxhfX19fSxlbzE9W1VyMSxQaTEsSWkxLEZpMSxPaTEsR2kxLFlpMSxaaTEsUWkxLEtpMSxKaTFdO25pMShlbzEse21peG91dHNUbzp0YX0pO3RvMT10YS5ub0F1dG8sYW8xPXRhLmNvbmZpZyxybzE9dGEubGlicmFyeSxpbzE9dGEuZG9tLG9vMT10YS5wYXJzZSxzbzE9dGEuZmluZEljb25EZWZpbml0aW9uLG5vMT10YS50b0h0bWwsTjFlPXRhLmljb24sbG8xPXRhLmxheWVyLGNvMT10YS50ZXh0LGRvMT10YS5jb3VudGVyfSk7dmFyIGZvMSxQMWUsZWl0LHRpdCxhaXQscml0LEkxZSxpaXQsb2l0LHNpdCxuaXQsbGl0LGNpdCxkaXQsZml0LHVpdCxwaXQsaGl0LG1pdCxnaXQseGl0LGJpdCx2aXQseWl0LHdpdCxNaXQseml0LGtpdCxTaXQsRjFlLENpdCxMaXQsVGl0LF9pdCxBaXQsJGl0LERpdCxFaXQsTml0LFBpdCxJaXQsRml0LE9pdCxCaXQsUml0LEhpdCxxaXQsVml0LFVpdCxPMWUsaml0LFdpdCxHaXQsWWl0LFppdCxYaXQsUWl0LEtpdCxKaXQsZW90LHRvdCxhb3Qscm90LGlvdCxvb3Qsc290LG5vdCxsb3QsQjFlLGNvdCxkb3QsZm90LHVvdCxwb3QsaG90LG1vdCxnb3QseG90LGJvdCx2b3QseW90LHdvdCxNb3Qsem90LGtvdCxTb3QsQ290LExvdCxUb3QsX290LEFvdCwkb3QsRG90LEVvdCxOb3QsUG90LElvdCxGb3QsT290LEJvdCxSb3QsSG90LHFvdCxWb3QsVW90LGpvdCxXb3QsZlYsR290LFlvdCxSMWUsWm90LFhvdCxRb3QsSDFlLEtvdCxkVixKb3QsZXN0LHExZSx0c3QsYXN0LHJzdCxpc3QsVjFlLG9zdCxzc3QsbnN0LGxzdCxjc3QsZHN0LGZzdCx1c3QscHN0LFUxZSxoc3QsbXN0LGdzdCx4c3QsYnN0LHZzdCx5c3Qsd3N0LGoxZSxNc3QsenN0LGtzdCxTc3QsQ3N0LExzdCxXMWUsVHN0LF9zdCxBc3QsRzFlLCRzdCxEc3QsRXN0LE5zdCxQc3QsSXN0LEZzdCxPc3QsQnN0LFJzdCxIc3QscXN0LFZzdCxVc3QsanN0LFdzdCxHc3QsWXN0LFpzdCxYc3QsUXN0LEtzdCxKc3QsWTFlLGVudCx0bnQsYW50LHJudCxpbnQsb250LHNudCxaMWUsbm50LGxudCxjbnQsZG50LGZudCx1bnQscG50LGhudCxtbnQsZ250LHhudCxibnQsdm50LHludCx3bnQsTW50LHpudCxrbnQsU250LENudCxMbnQsVG50LF9udCxBbnQsJG50LERudCxFbnQsTm50LFBudCxJbnQsRm50LE9udCxCbnQsUm50LEhudCxxbnQsVm50LFVudCxqbnQsV250LEdudCx1VixZbnQsWm50LFhudCxRbnQsWDFlLEtudCxKbnQsZTB0LHBWLHQwdCxhMHQscjB0LGkwdCxvMHQsUTFlLHMwdCxuMHQsbDB0LGMwdCxkMHQsZjB0LHUwdCxwMHQsaDB0LG0wdCxnMHQseDB0LGIwdCx2MHQseTB0LHcwdCxHZCxNMHQsejB0LGswdCxTMHQsQzB0LEwwdCxUMHQsXzB0LEEwdCwkMHQsRDB0LEUwdCxOMHQsUDB0LEkwdCxGMHQsTzB0LEIwdCxSMHQsSDB0LHEwdCxWMHQsVTB0LGowdCxXMHQsRzB0LFkwdCxaMHQsWDB0LFEwdCxLMHQsSjB0LGU0dCx0NHQsYTR0LHI0dCxpNHQsbzR0LEsxZSxzNHQsbjR0LGw0dCxjNHQsZDR0LGY0dCx1NHQscDR0LGg0dCxtNHQsZzR0LHg0dCxiNHQsdjR0LEoxZSx5NHQsdzR0LE00dCx6NHQsazR0LFM0dCxlMmUsQzR0LEw0dCxUNHQsXzR0LEE0dCwkNHQsRDR0LEU0dCxONHQsUDR0LEk0dCxGNHQsTzR0LEI0dCxSNHQsSDR0LHE0dCxWNHQsVTR0LGo0dCxXNHQsRzR0LFk0dCxaNHQsWDR0LHQyZSxoVixRNHQsSzR0LEo0dCxlM3QsdDN0LGEzdCxyM3QsaTN0LG8zdCxzM3QsbjN0LGwzdCxhMmUsYzN0LGQzdCxmM3QsdTN0LHAzdCxoM3QsbTN0LG1WLGczdCx4M3QsYjN0LHYzdCx5M3QsdzN0LE0zdCx6M3QsazN0LFMzdCxDM3QsTDN0LFQzdCxyMmUsXzN0LEEzdCwkM3QsRDN0LEUzdCxOM3QsUDN0LEkzdCxGM3QsTzN0LEIzdCxSM3QsSDN0LHEzdCxWM3QsaTJlLFUzdCxqM3QsVzN0LEczdCxZM3QsWjN0LGdWLFgzdCxvMmUsUTN0LEszdCxKM3QsZWx0LHRsdCxhbHQsczJlLHJsdCxpbHQsb2x0LHNsdCxubHQsbGx0LGNsdCxkbHQsZmx0LHVsdCxwbHQsaGx0LG1sdCxnbHQseGx0LGJsdCx2bHQseWx0LHdsdCxNbHQsemx0LGtsdCxTbHQsQ2x0LExsdCxuMmUsVGx0LF9sdCxBbHQsJGx0LERsdCxFbHQsTmx0LFBsdCxsMmUsSWx0LEZsdCxPbHQsQmx0LFJsdCxIbHQscWx0LFZsdCxVbHQsamx0LFdsdCxHbHQsWWx0LGMyZSxabHQsWGx0LFFsdCxLbHQsSmx0LGVjdCx0Y3QsYWN0LHJjdCxpY3Qsb2N0LHNjdCxkMmUsbmN0LGxjdCxjY3QsZGN0LGZjdCx1Y3QscGN0LGhjdCxtY3QsZ2N0LHhjdCxiY3QsdmN0LHljdCx4Vix3Y3QsTWN0LHpjdCxrY3QsU2N0LENjdCxMY3QsVGN0LF9jdCxBY3QsZjJlLCRjdCxEY3QsRWN0LE5jdCxQY3QsSWN0LEZjdCxPY3QsQmN0LFJjdCxIY3QscWN0LFZjdCxVY3QsamN0LFdjdCxHY3QsWWN0LFpjdCxYY3QsUWN0LEtjdCxKY3QsZTZ0LHQ2dCxhNnQscjZ0LGk2dCxvNnQsczZ0LG42dCxsNnQsYzZ0LGQ2dCxmNnQsdTZ0LHUyZSxwNnQsaDZ0LG02dCxnNnQseDZ0LHAyZSxiNnQsdjZ0LHk2dCx1bzEsdzZ0PW4oKCk9PntmbzE9ImZhYiIsUDFlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1naXRodWIiLGljb246WzQ0OCw1MTIsWyJnaXRodWItc3F1YXJlIl0sImYwOTIiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI2NS44IDQwNy43YzAtMS44IDAtNiAuMS0xMS42IC4xLTExLjQgLjEtMjguOCAuMS00My43IDAtMTUuNi01LjItMjUuNS0xMS4zLTMwLjcgMzctNC4xIDc2LTkuMiA3Ni03My4xIDAtMTguMi02LjUtMjcuMy0xNy4xLTM5IDEuNy00LjMgNy40LTIyLTEuNy00NS0xMy45LTQuMy00NS43IDE3LjktNDUuNyAxNy45LTI2LjYtNy41LTU2LjYtNy41LTgzLjIgMCAwIDAtMzEuOC0yMi4yLTQ1LjctMTcuOS05LjEgMjIuOS0zLjUgNDAuNi0xLjcgNDUtMTAuNiAxMS43LTE1LjYgMjAuOC0xNS42IDM5IDAgNjMuNiAzNy4zIDY5IDc0LjMgNzMuMS00LjggNC4zLTkuMSAxMS43LTEwLjYgMjIuMy05LjUgNC4zLTMzLjggMTEuNy00OC4zLTEzLjktOS4xLTE1LjgtMjUuNS0xNy4xLTI1LjUtMTcuMS0xNi4yLS4yLTEuMSAxMC4yLTEuMSAxMC4yIDEwLjggNSAxOC40IDI0LjIgMTguNCAyNC4yIDkuNyAyOS43IDU2LjEgMTkuNyA1Ni4xIDE5LjcgMCA5IC4xIDIxLjcgLjEgMzAuNiAwIDQuOCAuMSA4LjYgLjEgMTAgMCA0LjMtMyA5LjUtMTEuNSA4LTY2LTIyLjEtMTEyLjItODQuOS0xMTIuMi0xNTguMyAwLTkxLjggNzAuMi0xNjEuNSAxNjItMTYxLjVTMzg4IDE2NS42IDM4OCAyNTcuNGMuMSA3My40LTQ0LjcgMTM2LjMtMTEwLjcgMTU4LjMtOC40IDEuNS0xMS41LTMuNy0xMS41LTh6bS05MC41LTU0LjhjLS4yLTEuNSAxLjEtMi44IDMtMy4yIDEuOS0uMiAzLjcgLjYgMy45IDEuOSAuMyAxLjMtMSAyLjYtMyAzLTEuOSAuNC0zLjctLjQtMy45LTEuN3ptLTkuMSAzLjJjLTIuMiAuMi0zLjctLjktMy43LTIuNCAwLTEuMyAxLjUtMi40IDMuNS0yLjQgMS45LS4yIDMuNyAuOSAzLjcgMi40IDAgMS4zLTEuNSAyLjQtMy41IDIuNHptLTE0LjMtMi4yYy0xLjktLjQtMy4yLTEuOS0yLjgtMy4yczIuNC0xLjkgNC4xLTEuNWMyIC42IDMuMyAyLjEgMi44IDMuNC0uNCAxLjMtMi40IDEuOS00LjEgMS4zem0tMTIuNS03LjNjLTEuNS0xLjMtMS45LTMuMi0uOS00LjEgLjktMS4xIDIuOC0uOSA0LjMgLjYgMS4zIDEuMyAxLjggMy4zIC45IDQuMS0uOSAxLjEtMi44IC45LTQuMy0uNnptLTguNS0xMGMtMS4xLTEuNS0xLjEtMy4yIDAtMy45IDEuMS0uOSAyLjgtLjIgMy43IDEuMyAxLjEgMS41IDEuMSAzLjMgMCA0LjEtLjkgLjYtMi42IDAtMy43LTEuNXptLTYuMy04LjhjLTEuMS0xLjMtMS4zLTIuOC0uNC0zLjUgLjktLjkgMi40LS40IDMuNSAuNiAxLjEgMS4zIDEuMyAyLjggLjQgMy41LS45IC45LTIuNCAuNC0zLjUtLjZ6bS02LTYuNGMtMS4zLS42LTEuOS0xLjctMS41LTIuNiAuNC0uNiAxLjUtLjkgMi44LS40IDEuMyAuNyAxLjkgMS44IDEuNSAyLjYtLjQgLjktMS43IDEuMS0yLjggLjR6Il19LGVpdD1QMWUsdGl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoaW5rLXBlYWtzIixpY29uOls1NzYsNTEyLFtdLCJmNzMxIiwiTTQ2NS40IDQwOS40bDg3LjEtMTUwLjItMzItLjMtNTUuMSA5NS0yMDYuMi0zNTMuOS0yMzYuMiA0MDcuNCAzMiAuMyAyMDQuMi0zNTIuMSAyMDYuMiAzNTMuOHpNMTEwLjEgMzY1LjNsMzIuMSAwIDExNy40LTIwMi41IDIwMy40IDM0OS4xIDMyLjUgLjEtMjM1LjgtNDA0LjYtMTQ5LjYgMjU3Ljl6Il19LGFpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtZHJpdmUiLGljb246WzUxMiw1MTIsW10sImYzYWEiLCJNMzM5IDMxNC45TDE3NS40IDMyIDMzNi42IDMyIDUwMC4yIDMxNC45IDMzOSAzMTQuOXpNMjAxLjUgMzM4LjVsLTgwLjYgMTQxLjUgMzEwLjUgMCA4MC42LTE0MS41LTMxMC41IDB6TTE1NC4xIDY3LjRMMCAzMzguNSA4MC42IDQ4MCAyMzcgMjA4LjggMTU0LjEgNjcuNHoiXX0scml0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF1dG9wcmVmaXhlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQxYyIsIk0zMTguNCAxNmwtMTYxIDQ4MCA3Ny41IDAgMjUuNC04MS40IDExOS41IDAgMjUuMiA4MS40IDc3LjUgMC0xNjQuMS00ODB6TTI3OC4xIDM1Ny45bDQxLjItMTMwLjQgMS41IDAgNDAuOSAxMzAuNC04My42IDB6TTY0MCA0MDVMNjMwIDM3My42IDQ2Mi4xIDM1OCA0ODEuNSA0MTQuNSA2NDAgNDA1ek0xNzcuOSAzNThMMTAgMzczLjcgMCA0MDUgMTU4LjUgNDE0LjQgMTc3LjkgMzU4eiJdfSxJMWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXZpYWRlbyIsaWNvbjpbNDQ4LDUxMixbInZpYWRlby1zcXVhcmUiXSwiZjJhYSIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMTE4LjMgMzgxLjJjLTY4LTczLjYtMTkuOC0xOTYuMSA4MS4yLTE5Ni4xIDEzLjMgMCAyNi42IDIuMSAzOS4xIDYuNy00LjMgOC40LTcuMyAxNy42LTguNCAyNy4xLTkuNy00LjEtMjAuMi02LTMwLjctNi00OC44IDAtODQuNiA0MS43LTg0LjYgODguOSAwIDQzIDI4LjUgNzguNyA2OS41IDg1LjkgNjEuNS0yNCA3Mi45LTExNy42IDcyLjktMTc1IDAtNy4zIDAtMTQuOC0uNi0yMi4xLTExLjItMzIuOS0yNi42LTY0LjYtNDQuMi05NC41IDI3LjEgMTguMyA0MS45IDYyLjUgNDQuMiA5NC4xbDAgLjRjNy43IDIyLjUgMTEuOCA0Ni4yIDExLjggNzAgMCA1NC4xLTIxLjkgOTktNjguMyAxMjguMmwtMi40IC4yYzUwIDEgODYuMi0zOC42IDg2LjItODcuMiAwLTEyLjItMi4xLTI0LjMtNi45LTM1LjcgOS41LTEuOSAxOC41LTUuNiAyNi40LTEwLjUgMTUuMyAzNi42IDEyLjYgODcuMy0yMi44IDEyNS42LTQyLjQgNDYuMi0xMjAgNDYuNi0xNjIuNCAwek0yNzQuNiAyMTcuNmMyMS45LTEyIDQ5LjYtMzAuNyA2Mi4zLTUzIDEuNS0zIDQuMS04LjYgNC41LTEyLTEyLjUgMjcuOS00NC4yIDQ5LjgtNzMuOSA1Ni43LTQuNy03LjMtNy41LTE1LjUtNy41LTI0LjMgMC0xMC4zIDUuMi0yNC4xIDEyLjktMzEuNiA4LjMtNy45IDE4LTEwLjkgMjcuOS0xNC4xIDE2LTUuMSAzMi41LTEwLjMgNDQuNS0zNS45IDMyLjUgNDYuMiAxMy4xIDEzMC4zLTM2LjMgMTMwLjMtMTMuMyAwLTI1LjEtNy4xLTM0LjQtMTYuMXoiXX0saWl0PUkxZSxvaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3BhbmVsIixpY29uOls2NDAsNTEyLFtdLCJmMzg4IiwiTTIxMC4zIDIyMC4yYy01LjYtMjQuOC0yNi45LTQxLjItNTEtNDEuMmwtMzcgMGMtNy4xIDAtMTIuNSA0LjUtMTQuMyAxMC45TDczLjEgMzIwIDk3LjggMzE5LjljNi44IDAgMTIuMy00LjUgMTQuMi0xMC43bDI1LjgtOTUuNyAxOS44IDBjOC40IDAgMTYuMiA1LjYgMTguMyAxNC44IDIuNSAxMC45LTUuOSAyMi42LTE4LjMgMjIuNmwtMTAuMyAwYy03IDAtMTIuNSA0LjYtMTQuMyAxMC44bC02LjQgMjMuOCAzMiAwYzM3LjIgMCA1OC4zLTM2LjIgNTEuNy02NS4zem0tMTU2LjUgMjhsMTguNiAwYzYuOSAwIDEyLjQtNC40IDE0LjMtMTAuOWw2LjItMjMuNi00MCAwQzMwIDIxMy43IDkgMjI3LjggMS43IDI1NC44LTcgMjg4LjYgMTguNSAzMjAgNTIgMzIwbDEyLjQgMCA3LjEtMjYuMWMxLjItNC40LTIuMi04LjMtNi40LTguM2wtMTEuMyAwYy0yNC43IDAtMjQuOS0zNy40IDAtMzcuNHptMjQ3LjUtMzQuOGwtNzcuOSAwLTMuNSAxMy40Yy0yLjQgOS42IDQuNSAxOC41IDE0LjIgMTguNWw1Ny41IDBjNCAwIDIuNCA0LjMgMi4xIDUuM2wtOC42IDMxLjhjLS40IDEuNC0uOSA1LjMtNS41IDUuM2wtMzQuOSAwYy01LjMgMC01LjMtNy45IDAtNy45bDIxLjYgMGM2LjggMCAxMi4zLTQuNiAxNC4yLTEwLjhsMy41LTEzLjItNDguNCAwYy0zOS4yIDAtNDMuNiA2My44LS43IDYzLjhsNTcuNSAuMmMxMS4yIDAgMjAuNi03LjIgMjMuNC0xNy44bDE0LTUxLjhjNC44LTE5LjItOS43LTM2LjgtMjguNS0zNi44ek02MzMuMSAxNzlsLTE4LjkgMGMtNC45IDAtOS4yIDMuMi0xMC40IDcuOUw1NjguMiAzMjBjMjAuNyAwIDM5LjgtMTMuOCA0NC45LTM0LjVsMjYuNS05OC4yYzEuMi00LjMtMi04LjMtNi41LTguM3pNMzk2LjggMjEzLjdsMCAuMS00OC4zIDAtMjYuMiA5OGMtMS4yIDQuNCAyLjIgOC4zIDYuNCA4LjNsMTguOSAwYzQuOCAwIDkuMi0zIDEwLjQtNy44bDE3LjItNjQgMTkuOCAwYzEyLjUgMCAyMS40IDExLjggMTguMSAyMy40bC0xMC42IDQwYy0xLjIgNC4zIDEuOSA4LjMgNi40IDguM2wxOS4xIDBjNC42IDAgOS4xLTIuOSAxMC4zLTcuOGw4LjgtMzMuMWM5LTMzLjEtMTUuOS02NS40LTUwLjMtNjUuNHptOTguMyA3NC42Yy0zLjYgMC02LTMuNC01LjEtNi43bDgtMzBjLjktMy45IDMuNy02IDcuOC02bDMyLjkgMGMyLjYgMCA0LjYgMi40IDMuOSA1LjFsLS43IDIuNmMtLjYgMi0xLjkgMy0zLjkgM2wtMjEuNiAwYy03IDAtMTIuNiA0LjYtMTQuMiAxMC44bC0zLjUgMTMgNTMuNCAwYzEwLjUgMCAyMC4zLTYuNiAyMy4yLTE3LjZsMy4yLTEyYzQuOS0xOS4xLTkuMy0zNi44LTI4LjMtMzYuOGwtNDcuMyAwYy0xNy45IDAtMzMuOCAxMi0zOC42IDI5LjZsLTEwLjggNDBjLTUgMTcuNyA4LjMgMzYuNyAyOC4zIDM2LjdsNjYuNyAwYzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2w1LjctMjEtNzMuMyAweiJdfSxzaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVuZGVsZXkiLGljb246WzY0MCw1MTIsW10sImY3YjMiLCJNNjI0LjYgMzI1LjJjLTEyLjMtMTIuNC0yOS43LTE5LjItNDguNC0xNy4yLTQzLjMtMS00OS43LTM0LjktMzcuNS05OC44IDIyLjgtNTcuNS0xNC45LTEzMS41LTg3LjQtMTMwLjgtNzcuNCAuNy04MS43IDgyLTEzMC45IDgyLTQ4LjEgMC01NC04MS4zLTEzMC45LTgyLTcyLjktLjgtMTEwLjEgNzMuMy04Ny40IDEzMC44IDEyLjIgNjMuOSA1LjggOTcuOC0zNy41IDk4LjgtMjEuMi0yLjMtMzcgNi41LTUzIDIyLjUtMTkuOSAxOS43LTE5LjMgOTQuOCA0Mi42IDEwMi42IDQ3LjEgNS45IDgxLjYtNDIuOSA2MS4yLTg3LjgtNDcuMy0xMDMuNyAxODUuOS0xMDYuMSAxNDYuNS04LjItLjEgLjEtLjIgLjItLjMgLjQtMjYuOCA0Mi44IDYuOCA5Ny40IDU4LjggOTUuMiA1Mi4xIDIuMSA4NS40LTUyLjYgNTguOC05NS4yLS4xLS4yLS4yLS4zLS4zLS40LTM5LjQtOTcuOSAxOTMuOC05NS41IDE0Ni41IDguMi00LjYgMTAtNi43IDIxLjMtNS43IDMzIDQuOSA1My40IDY4LjcgNzQuMSAxMDQuOSAzNS4yIDE3LjgtMTQuOCAyMy4xLTY1LjYgMC04OC4zek0zMjAuNyAzMDYuMWwtLjYgMGMtNDMuNCAwLTYyLjgtMzcuNS02Mi44LTYyLjggMC0zNC43IDI4LjItNjIuOCA2Mi44LTYyLjhsLjYgMGMzNC43IDAgNjIuOCAyOC4xIDYyLjggNjIuOCAwIDI1LTE5LjIgNjIuOC02Mi44IDYyLjh6Il19LG5pdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkcmFmdDJkaWdpdGFsIixpY29uOls1MTIsNTEyLFtdLCJmMzk2IiwiTTQ5NiAzOTguMWwtMTQ0LTgyLjIgMCA2NC43LTkxLjMgMGMzMC44LTM1IDgxLjgtOTUuOSAxMTEuOC0xNDkuMyAzNS4yLTYyLjYgMTYuMS0xMjMuNC0xMi44LTE1My4zLTQuNC00LjYtNjIuMi02Mi45LTE2Ni00MS4yLTU5LjEgMTIuNC04OS40IDQzLjQtMTA0LjMgNjcuMy0xMy4xIDIwLjktMTcgMzkuOC0xOC4yIDQ3LjctNS41IDMzIDE5LjQgNjcuMSA1Ni43IDY3LjEgMzEuNyAwIDU3LjMtMjUuNyA1Ny4zLTU3LjQgMC0yNy4xLTE5LjctNTIuMS00OC01Ni44IDEuOC03LjMgMTcuNy0yMS4xIDI2LjMtMjQuNyA0MS4xLTE3LjMgNzggNS4yIDgzLjMgMzMuNSA4LjMgNDQuMy0zNy4xIDkwLjQtNjkuNyAxMjcuNi03Ni42IDg3LTE0Mi44IDE1NS43LTE2MS4xIDE3NC44bDMzNi0uMSAwIDY0LjIgMTQ0LTgxLjl6TTM4NS45IDM3MWw0Ny4xIDI3LjItNDcuMSAyNy4yIDAtNTQuNHpNMTA1LjQgMTYxLjRhMjIuNCAyMi40IDAgMSAxIDQ0LjggMCAyMi40IDIyLjQgMCAxIDEgLTQ0LjggMHpNOTguNSAzODAuNWMyNS42LTI3LjQgOTcuNy0xMDQuNyAxNTAuOC0xNjkuOSAzNS4xLTQzLjEgNDAuMy04Mi40IDI4LjQtMTEyLjctNy40LTE4LjgtMTcuNS0zMC4yLTI0LjMtMzUuNyA0NS4zIDIuMSA2OCAyMy40IDgyLjIgMzguMyAwIDAgNDIuNCA0OC4yIDUuOCAxMTMuMy0zNyA2NS45LTExMC45IDE0Ny41LTEyOC41IDE2Ni43bC0xMTQuNCAweiJdfSxsaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVwbHlkIixpY29uOls0NDgsNTEyLFtdLCJmM2U2IiwiTTMyMCA0ODBsLTE5MiAwQzU3LjYgNDgwIDAgNDIyLjQgMCAzNTJMMCAxNjBDMCA4OS42IDU3LjYgMzIgMTI4IDMybDE5MiAwYzcwLjQgMCAxMjggNTcuNiAxMjggMTI4bDAgMTkyYzAgNzAuNC01Ny42IDEyOC0xMjggMTI4ek0xOTMuNCAyNzMuMmMtNi4xLTItMTEuNi0zLjEtMTYuNC0zLjEtNy4yIDAtMTMuNSAxLjktMTguOSA1LjZzLTkuNiA5LTEyLjggMTUuOGwtMS4xIDAtNC4yLTE4LjMtMjggMCAwIDEzOC45IDM2LjEgMCAwLTg5LjdjMS41LTUuNCA0LjQtOS44IDguNy0xMy4yczkuOC01LjEgMTYuMi01LjFjNC42IDAgOS44IDEgMTUuNiAzLjFsNC44LTM0ek0zMDguNiAzNzYuNmMtMy4yIDIuNC03LjcgNC44LTEzLjcgNy4xcy0xMi44IDMuNS0yMC40IDMuNWMtMTIuMiAwLTIxLjEtMy0yNi41LTguOS01LjUtNS45LTguNS0xNC43LTktMjYuNGw4My4zIDBjLjktNC44IDEuNi05LjQgMi4xLTEzLjkgLjUtNC40IC43LTguNiAuNy0xMi41IDAtMTAuNy0xLjYtMTkuNy00LjctMjYuOS0zLjItNy4yLTcuMy0xMy0xMi41LTE3LjItNS4yLTQuMy0xMS4xLTcuMy0xNy44LTkuMi02LjctMS44LTEzLjUtMi44LTIwLjYtMi44LTIxLjEgMC0zNy41IDYuMS00OS4yIDE4LjNzLTE3LjUgMzAuNS0xNy41IDU1YzAgMjIuOCA1LjIgNDAuNyAxNS42IDUzLjcgMTAuNCAxMy4xIDI2LjggMTkuNiA0OS4yIDE5LjYgMTAuNyAwIDIwLjktMS41IDMwLjQtNC42czE3LjEtNi44IDIyLjYtMTEuMmwtMTItMjMuNnptLTIxLjgtNzAuM2MzLjggNS40IDUuMyAxMy4xIDQuNiAyMy4xbC01MS43IDBjLjktOS40IDMuNy0xNyA4LjItMjIuNnMxMS41LTguNSAyMS04LjVjOC4yLS4xIDE0LjEgMi42IDE3LjkgOHptNzkuOSAyLjVjNC4xIDMuOSA5LjQgNS44IDE2LjEgNS44IDcgMCAxMi42LTEuOSAxNi43LTUuOHM2LjEtOS4xIDYuMS0xNS42LTItMTEuNi02LjEtMTUuNC05LjYtNS43LTE2LjctNS43Yy02LjcgMC0xMiAxLjktMTYuMSA1LjdzLTYuMSA4LjktNi4xIDE1LjQgMiAxMS43IDYuMSAxNS42em0wIDEwMC41YzQuMSAzLjkgOS40IDUuOCAxNi4xIDUuOCA3IDAgMTIuNi0xLjkgMTYuNy01LjhzNi4xLTkuMSA2LjEtMTUuNi0yLTExLjYtNi4xLTE1LjQtOS42LTUuNy0xNi43LTUuN2MtNi43IDAtMTIgMS45LTE2LjEgNS43cy02LjEgOC45LTYuMSAxNS40YzAgNi42IDIgMTEuNyA2LjEgMTUuNnoiXX0sY2l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVtcGlyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMSIsIk0yOTUuNiA1NC4yYy0xMC44LTIuMi0yMi4xLTMuMy0zMy41LTMuNmwwLTE4LjJjNzguMSAyLjIgMTQ2LjEgNDQgMTg0LjYgMTA2LjZsLTE1LjggOS4xYy02LjEtOS43LTEyLjctMTguOC0yMC4yLTI3LjFsLTE4IDE1LjVjLTI2LTI5LjYtNjEuNC01MC43LTEwMS45LTU4LjRsNC44LTIzLjl6TTYxLjQgMzIyLjRsMjMtNy43Yy02LjQtMTguMy0xMC0zOC4yLTEwLTU4LjdzMy4zLTQwLjQgOS43LTU4LjdsLTIyLjctNy43YzMuNi0xMC44IDguMy0yMS4zIDEzLjYtMzFsLTE1LjgtOS4xQzQyIDE4MSAzMi4xIDIxNy41IDMyLjEgMjU2czEwIDc1IDI3LjEgMTA2LjZMNzUgMzUzLjVjLTUuMy0xMC05LjctMjAuMy0xMy42LTMxLjF6TTIyMS4xIDQzNGMtNDAuNC04LTc1LjgtMjkuMS0xMDEuOS01OC43bC0xOCAxNS44Yy03LjUtOC42LTE0LjQtMTcuNy0yMC4yLTI3LjRsLTE2IDkuNGMzOC41IDYyLjMgMTA2LjggMTA0LjMgMTg0LjkgMTA2LjZsMC0xOC4zYy0xMS4zLS4zLTIyLjctMS43LTMzLjUtMy42bDQuNy0yMy44ek0xMDEuMyAxMjAuOWwxOCAxNS41YzI2LTI5LjYgNjEuNC01MC43IDEwMS45LTU4LjRsLTQuNy0yMy44YzEwLjgtMi4yIDIyLjEtMy4zIDMzLjUtMy42bDAtMTguMkMxNzEuOSAzNC42IDEwMy45IDc2LjQgNjUuNCAxMzlsMTUuOCA5LjFjNi05LjcgMTIuNi0xOC45IDIwLjEtMjcuMnpNNDEwLjcgMzkxLjFsLTE4LTE1LjhjLTI2IDI5LjYtNjEuNCA1MC43LTEwMS45IDU4LjdsNC43IDIzLjhjLTEwLjggMS45LTIyLjEgMy4zLTMzLjUgMy42bDAgMTguM2M3OC4xLTIuMiAxNDYuNC00NC4zIDE4NC45LTEwNi42bC0xNi4xLTkuNGMtNS43IDkuNy0xMi42IDE4LjgtMjAuMSAyNy40ek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00ODMuOCAwYTIzNS44IDIzNS44IDAgMSAwIC00NzEuNiAwIDIzNS44IDIzNS44IDAgMSAwIDQ3MS42IDB6bS0zOS0xMDYuNkw0MzcgMTU4LjVjNS4zIDkuNyAxMCAyMC4yIDEzLjYgMzFsLTIyLjcgNy43YzYuNCAxOC4zIDkuNyAzOC4yIDkuNyA1OC43cy0zLjYgNDAuNC0xMCA1OC43bDIzIDcuN2MtMy45IDEwLjgtOC4zIDIxLTEzLjYgMzFsMTUuOCA5LjFDNDcwIDMzMSA0NzkuOSAyOTQuNSA0NzkuOSAyNTZzLTkuOS03NS0yNy4xLTEwNi42em0tMTgzIDE3Ny43YzE2LjMtMy4zIDMwLjQtMTEuNiA0MC43LTIzLjVsNTEuMiA0NC44YzExLjktMTMuNiAyMS4zLTI5LjMgMjcuMS00Ni44bC02NC4yLTIyLjFjMi41LTcuNSAzLjktMTUuMiAzLjktMjMuNXMtMS40LTE2LjEtMy45LTIzLjVsNjQuNS0yMi4xYy02LjEtMTcuNC0xNS41LTMzLjItMjcuNC00Ni44bC01MS4yIDQ0LjhjLTEwLjItMTEuOS0yNC40LTIwLjUtNDAuNy0yMy44bDEzLjMtNjYuNGMtOC42LTEuOS0xNy43LTIuOC0yNy4xLTIuOHMtMTguNSAuOC0yNy4xIDIuOGwxMy4zIDY2LjRjLTE2LjMgMy4zLTMwLjQgMTEuOS00MC43IDIzLjhsLTUxLjItNDQuOGMtMTEuOSAxMy42LTIxLjMgMjkuMy0yNy40IDQ2LjhsNjQuNSAyMi4xYy0yLjUgNy41LTMuOSAxNS4yLTMuOSAyMy41czEuNCAxNi4xIDMuOSAyMy41bC02NC4yIDIyLjFjNS44IDE3LjQgMTUuMiAzMy4yIDI3LjEgNDYuOGw1MS4yLTQ0LjhjMTAuMiAxMS45IDI0LjQgMjAuMiA0MC43IDIzLjVsLTEzLjMgNjYuN2M4LjYgMS43IDE3LjcgMi44IDI3LjEgMi44czE4LjUtMS4xIDI3LjEtMi44bC0xMy4zLTY2Ljd6Il19LGRpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhY2Nlc3NpYmxlLWljb24iLGljb246WzQ0OCw1MTIsWzYyMTA3XSwiZjM2OCIsIk00MjMuOSAyNTUuOEw0MTEgNDEzLjFjLTMuMyA0MC43LTYzLjkgMzUuMS02MC42LTQuOWwxMC0xMjIuNS00MS4xIDIuM2MxMC4xIDIwLjcgMTUuOCA0My45IDE1LjggNjguNSAwIDQxLjItMTYuMSA3OC43LTQyLjMgMTA2LjVsLTM5LjMtMzkuM2M1Ny45LTYzLjcgMTMuMS0xNjcuMi03NC0xNjcuMi0yNS45IDAtNDkuNSA5LjktNjcuMiAyNkw3MyAyNDMuMmMyMi0yMC43IDUwLjEtMzUuMSA4MS40LTQwLjJsNzUuMy04NS43LTQyLjYtMjQuOC01MS42IDQ2QzEwNS41IDE2NS4zIDY0LjkgMTIwIDk1IDkzLjFsNjgtNjAuN2M5LjgtOC44IDI0LjEtMTAuMiAzNS41LTMuNiAwIDAgMTM5LjMgODAuOSAxMzkuNSA4MS4xIDE2LjIgMTAuMSAyMC43IDM2IDYuMSA1Mi42bC01OC40IDY2LjUgMTA2LjEtNS45YzE4LjUtMS4xIDMzLjYgMTQuNCAzMi4xIDMyLjd6TTM1OSAxMDEuOEE1MC45IDUwLjkgMCAxIDAgMzU5IDAgNTAuOSA1MC45IDAgMSAwIDM1OSAxMDEuOHpNMTc5LjYgNDU2LjVjLTgwLjYgMC0xMjcuNC05MC42LTgyLjctMTU2LjFMNTcuMiAyNjAuN0MzNi40IDI4NyAyNCAzMjAuMyAyNCAzNTYuNCAyNCA0ODcuMSAxNzQuNyA1NTcuOCAyNzUuNCA0NzguOWwtMzkuNy0zOS43Yy0xNiAxMC45LTM1LjMgMTcuMy01Ni4xIDE3LjN6Il19LGZpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJxdW9yYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjJjNCIsIk00NDAuNyAzODYuN2wtMjkuMyAwYy0xLjUgMTMuNS0xMC41IDMwLjgtMzMgMzAuOC0yMC41IDAtMzUuMy0xNC4yLTQ5LjUtMzUuOCA0NC4yLTM0LjIgNzQuNy04Ny41IDc0LjctMTUzIC4xLTExNy41LTk2LjYtMTk2LjctMTk4LjQtMTk2LjctOTkuNyAwLTE5Ny43IDc5LjctMTk3LjcgMTk2LjcgMCAxMzQuMSAxMzEuMyAyMjEuNiAyNDkgMTg5IDE5LjcgMzMuNiA0NS43IDYyLjMgOTUuMiA2Mi4zIDgxLjggMCA5MC44LTc1LjMgODktOTMuM3pNMjk3LjIgMzI5LjJjLTE5LjUtMjkuMi00My43LTUyLjItOTEuNS01Mi4yLTMwLjUgMC01NC4zIDEwLTY5IDIyLjhsMTIuMiAyNC4zYzYuMi0zIDEzLTQgMTkuOC00IDM1LjUgMCA1My43IDMwLjggNjkuMiA2MS4zLTEwIDMtMjAuNyA0LjItMzIuNyA0LjItNzUgMC0xMDcuNS01My0xMDcuNS0xNTYuNyAwLTEwNC40IDMyLjUtMTU3LjkgMTA3LjUtMTU3LjkgNzYuMiAwIDEwOC43IDUzLjUgMTA4LjcgMTU3LjcgLjEgNDEuOC01LjQgNzUuNi0xNi43IDEwMC41eiJdfSx1aXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtamNiIixpY29uOls1NzYsNTEyLFtdLCJmMjRiIiwiTTQzMS41IDI0NC4zbDAtMzIuM2M0MS4yIDAgMzguNSAuMiAzOC41IC4yIDcuMyAxLjMgMTMuMyA3LjMgMTMuMyAxNiAwIDguOC02IDE0LjUtMTMuMyAxNS44LTEuMiAuNC0zLjMgLjMtMzguNSAuM3ptNDIuOCAyMC4yYy0yLjgtLjctMy4zLS41LTQyLjgtLjVsMCAzNWMzOS42IDAgNDAgLjIgNDIuOC0uNSA3LjUtMS41IDEzLjUtOCAxMy41LTE3IDAtOC43LTYtMTUuNS0xMy41LTE3ek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODIgMTkyLjNsLTU3IDBjMCA2Ny4xIDEwLjcgMTA5LjctMzUuOCAxMDkuNy0xOS41IDAtMzguOC01LjctNTcuMi0xNC44bDAgMjhjMzAgOC4zIDY4IDguMyA2OCA4LjMgOTcuOSAwIDgyLTQ3LjcgODItMTMxLjJ6bTE3OC41IDQuNWMtNjMuNC0xNi0xNjUtMTQuOS0xNjUgNTkuMyAwIDc3LjEgMTA4LjIgNzMuNiAxNjUgNTkuMmwwLTI4LjNDMzEyLjkgMzExLjcgMjUzIDMwOSAyNTMgMjU2czU5LjgtNTUuNiAxMDcuNS0zMS4ybDAtMjh6TTU0NCAyODYuNWMwLTE4LjUtMTYuNS0zMC41LTM4LTMybDAtLjhjMTkuNS0yLjcgMzAuMy0xNS41IDMwLjMtMzAuMiAwLTE5LTE1LjctMzAtMzctMzEgMCAwIDYuMy0uMy0xMjAuMy0uM2wwIDEyNy41IDEyMi43IDBjMjQuMyAuMSA0Mi4zLTEyLjkgNDIuMy0zMy4yeiJdfSxwaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmVkb3JhIixpY29uOls0NDgsNTEyLFtdLCJmNzk4IiwiTTAgMjU1LjhDLjEgMTMyLjIgMTAwLjMgMzIgMjI0IDMyUzQ0OCAxMzIuMyA0NDggMjU2IDM0Ny44IDQ3OS45IDIyNC4xIDQ4MEw1MC45IDQ4MEMyMi44IDQ4MCAuMSA0NTcuMyAwIDQyOS4ybDAgMCAwLTE3My40IDAgMHptMzQyLjYtNjMuMWMwLTM5LjctMzUuNi02OC41LTczLjItNjguNS0zNC45IDAtNjUuOCAyNi4zLTcwLjEgNTkuOS0uMiAzLjgtLjQgNS0uNCA4LjUtLjEgMjEuMSAwIDQyLjgtLjggNjQuNCAuOSAyNi4xIDEgNTIuMSAwIDc2LjYgMCAyNy4xLTE5LjQgNDUuNS00NC43IDQ1LjVzLTQ1LjgtMjAuMi00NS44LTQ1LjVjLjUtMjcuNyAyMi42LTQ1LjMgNDguNS00Ni4xbC4yIDAgMjYuMy0uMiAwLTM3LjMtMjYuMyAuMmMtNDcuMS0uNC04NC42IDM2LjUtODUuOSA4My40IDAgNDUuNiAzNy41IDgyLjkgODMgODIuOSA0MyAwIDc4LjctMzMuNiA4Mi42LTc1LjZsLjItNTMuNSAzMi42LS4zYzI1LjMgLjIgMjUtMzcuOC0uMi0zNy4zbC0zMi40IC4zYzAtNi40IC4xLTEyLjggLjEtMTkuMiAuMS0xMi43IC4xLTI1LjQtLjEtMzguMiAuMS0xNi41IDE1LjgtMzEuMiAzMy4yLTMxLjIgMTcuNSAwIDM1LjkgOC43IDM1LjkgMzEuMiAwIDMuMi0uMSA1LjEtLjMgNi4zLTEuOSAxMC41IDUuMiAyMC40IDE1LjcgMjEuOSAxMC42IDEuNSAyMC4yLTYuMSAyMS4yLTE2LjYgLjYtNC4yIC43LTcuOSAuNy0xMS42eiJdfSxoaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHVvbGluZ28iLGljb246WzU3Niw1MTIsW10sImU4MTIiLCJNNTA0LjMgMjMwLjVjMTAuNCA4OC41LTQzLjQgMTcyLjEtMTI4LjIgMTk5cy0xNzYuNi0xMC4zLTIxOC45LTg4LjdjLTcyIDMtMTM3LjQtMzkuOC0xNjMuMi0xMDUuNS0yLjYtNi42LTEuOS0xNCAxLjktMTkuOXMxMC4yLTkuNyAxNy4yLTEwLjFsOTYuMS02LTIzLjgtNzUuOWMtNi4zLTIwLTIuMi00MS45IDExLTU4LjNzMzMuNy0yNSA1NC41LTIzYzUyLjIgNSA4Ni44IDQuOCAxMDQtLjZTMzAwIDE2LjcgMzM5LTE2LjljMTUuOS0xMy43IDM3LjctMTguNSA1Ny44LTEyLjdzMzYuMSAyMS4zIDQyLjQgNDEuNEw0NjIuOCA4NyA1NDMuNiAzNy4zYzYtMy43IDEzLjQtNC4zIDE5LjktMS42czExLjMgOC4zIDEyLjkgMTUuMmMxNi4yIDY4LjItMTIuNCAxNDAuMy03Mi4xIDE3OS41ek0yNTguNSA0NzUuOWwwIDBjMTUuMSA3LjUgMjEuNSAyNS44IDE0LjIgNDFzLTI1LjQgMjEuOS00MC43IDE0LjlsLTQzLjktMjFjLTE1LjEtNy41LTIxLjUtMjUuOC0xNC4yLTQxczI1LjQtMjEuOSA0MC43LTE0LjlsNDMuOCAyMXpNNTY0LjYgMzQ1LjdjMTQuOCA4LjQgMjAgMjcuMyAxMS42IDQyLjJsLTIzLjkgNDIuNGMtOC43IDE0LjMtMjcuMSAxOS4yLTQxLjYgMTAuOXMtMTkuOS0yNi42LTEyLTQxLjRsMjMuOS00Mi40YzQtNy4xIDEwLjctMTIuNCAxOC42LTE0LjZzMTYuMy0xLjIgMjMuNCAyLjl6Il19LG1pdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJzdGRyYWZ0IixpY29uOlszODQsNTEyLFtdLCJmM2ExIiwiTTM4NCAxOTJsLTY0IDAgMCAxMjgtMTI4IDAgMCAxMjgtMTkyIDAgMC0yNS42IDE2Ni40IDAgMC0xMjggMTI4IDAgMC0xMjggODkuNiAwIDAgMjUuNnptLTI1LjYgMzguNGwwIDEyOC0xMjggMCAwIDEyOC0xNjYuNCAwIDAgMjUuNiAxOTIgMCAwLTEyOCAxMjggMCAwLTE1My42LTI1LjYgMHptMjUuNiAxOTJsLTg5LjYgMCAwIDg5LjYgMjUuNiAwIDAtNjQgNjQgMCAwLTI1LjZ6TTAgMGwwIDM4NCAxMjggMCAwLTEyOCAxMjggMCAwLTEyOCAxMjggMCAwLTEyOC0zODQgMHoiXX0sZ2l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZyZWVic2QiLGljb246WzQ0OCw1MTIsW10sImYzYTQiLCJNMzAzLjcgOTYuMmMxMS4xLTExLjEgMTE1LjUtNzcgMTM5LjItNTMuMiAyMy43IDIzLjctNDIuMSAxMjguMS01My4yIDEzOS4ycy0zOS40IC45LTYzLjEtMjIuOWMtMjMuOC0yMy43LTM0LjEtNTItMjIuOS02My4xek0xMDkuOSA2OC4xQzczLjYgNDcuNSAyMiAyNC42IDUuNiA0MS4xLTExIDU3LjcgMTIuNyAxMTAuNSAzMy41IDE0Ni44IDUyIDExNC42IDc4LjMgODcuNSAxMDkuOSA2OC4xek00MDYuNyAxNzRjMy4zIDExLjMgMi43IDIwLjctMi43IDI2LjEtMjAuMyAyMC4zLTg3LjUtMjctMTA5LjMtNzAuMS0xOC0zMi4zLTExLjEtNTMuNCAxNC45LTQ4LjcgNS43LTMuNiAxMi4zLTcuNiAxOS42LTExLjYtMjkuOC0xNS41LTYzLjYtMjQuMy05OS41LTI0LjMtMTE5LjEgMC0yMTUuNiA5Ni41LTIxNS42IDIxNS42IDAgMTE5IDk2LjUgMjE1LjYgMjE1LjYgMjE1LjZTNDQ1LjMgMzgwLjEgNDQ1LjMgMjYxYzAtMzguNC0xMC4xLTc0LjUtMjcuNy0xMDUuOC0zLjkgNy03LjYgMTMuMy0xMC45IDE4Ljh6Il19LHhpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvZHlzZWUiLGljb246WzUxMiw1MTIsW10sImU1YzYiLCJNNDA2LjcgNDYzYy00Mi4zIDMwLjgtOTQuNCA0OS0xNTAuNyA0OS0xMTEuMSAwLTIwNS43LTcwLjgtMjQxLjEtMTY5LjggMi40IDEuNyA1LjkgMy42IDcuOSA0LjQgMTYuMyA3LjQgNDAuMS01LjQgNjIuOS0yOC43IDYuOS02LjkgMTQuNC0xMi40IDIyLjgtMTcuMyAxOC4zLTExLjkgMzcuNi0yMC44IDU4LjQtMjcuMiAwIDAgMjIuMyAzNC4yIDQzLjEgNzQuOHMtMjIuMyA1NC0yNy4yIDU0Yy0uMyAwLS44IDAtMS41LS4xLTExLS41LTcwLTMtNTYgNTEuMSAxNC45IDU3LjQgOTcuNSAzNi42IDEzOS42IDguOXMzMS43LTExOC4zIDMxLjctMTE4LjNjNDEuMS02LjQgNTQgMzcuMSA1Ny45IDU5LjQgLjggNC42IDEuMSA5LjkgMS40IDE1LjUgMS4xIDIxLjIgMi4zIDQ1LjYgMzUuMyA0Ni40IDUuMyAwIDEwLjYtLjggMTUuNS0ybDAtLjF6bS05NS4zLTIzLjdjLTItLjUtMy41LTIuNS0zLTUgMS0yLjUgMy0zLjUgNS0zczMuNSAzIDMgNS0yLjUgMy41LTUgM3ptLTIwNy05NS42YzEuNS0uNSAzLjUgMSA0IDMgMCAyLTEgNC0zIDQtMS41IC41LTMuNS0xLTQtMy0uNS0xLjUgMS0zLjUgMy00ek00NTEuOCA0MjFjMzcuNS00NC42IDYwLjItMTAyLjIgNjAuMi0xNjUgMC02Ny41LTI2LjEtMTI4LjktNjguOC0xNzQuNy0uMSAyMy41LTYuMSA0OC4yLTE2LjggNjkuMi0xMS45IDIwLjMtNDkgNTguOS02OS44IDc4LjctLjcgLjMtMS4xIC45LTEuNSAxLjQtLjIgLjItLjMgLjQtLjUgLjYtNSA2LjktNCAxNi44IDMgMjEuOCAyMS4zIDE1LjggNTYuNCA0NS42IDU5LjQgNzIuOCAzLjUgMzQuOSAyNy45IDc1LjYgMzQuMiA4Ni4yIC44IDEuMyAxLjMgMi4xIDEuNCAyLjQgMCAyLjItLjQgNC4zLS44IDYuNWwwIC4xek0zOTAuNyAyNTFjLS41IDMgMSA1LjkgNCA2LjRzNS45LTEgNi40LTQtMS01LjktNC02LjRjLTMtMS01LjkgMS02LjQgNHptNjEuNC02MC45bC0xMS40IDUuNC0zIDEyLjktNS40LTExLjQtMTIuOS0zIDExLjQtNS40IDMtMTIuOSA1LjQgMTEuNCAxMi45IDN6TTM5NS41IDQxLjNjLTE2LjIgOC4yLTIyLjEgMzIuOC0yOSA2MS40LS4zIDEuNC0uNyAyLjgtMSA0LjItOS41IDM4LjUtMzAuNiAzNy42LTQxLjcgMzcuMi0xLjEgMC0yLS4xLTIuOS0uMS01LjEgMC02LTQtOC45LTE3LjEtMi42LTEyLjEtNi45LTMyLTE3LjktNjMuNi0yMi43LTY1LjgtODIuNy00OS40LTEyOC4yLTIyLjItNTUuMyAzMy4xLTM0LjQgMTAxLjktMTkuOCAxNDkuNCAuNyAyLjIgMS40IDQuNCAyIDYuNi00IDQtMTMuOCA3LjUtMjYgMTEuOS0xMi4xIDQuMy0yNi42IDkuNS00MC4zIDE2LjktMzMuOSAxOC03MC4zIDQ5LTc5LjggNjIuNi0xLjMtMTAuNy0yLTIxLjUtMi0zMi41IDAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTYgNTEuNCAwIDk5LjQgMTUuMiAxMzkuNSA0MS4zek01OC45IDE4OS42Yy0xLjUtMi00LjUtMy02LjQtMS41cy0zIDQuNS0xLjUgNi40IDQuNSAzIDYuNCAxLjVjMi41LTEuNSAzLTQuNSAxLjUtNi40ek0zMjcuMyA2NC45YzItMS41IDUtLjUgNi40IDEuNSAxLjUgMi41IDEgNS40LTEuNSA2LjQtMiAxLjUtNSAuNS02LjQtMS41cy0uNS01IDEuNS02LjR6TTk1LjEgMTA1Yy0uNSAxLjUgLjUgMyAyIDMgMS41IC41IDMtLjUgMy0yIC41LTEuNS0uNS0zLTItM3MtMyAuNS0zIDJ6bTg0LjctLjVjLTMuNS00My4xIDM3LjEtNTQgMzcuMS01NCA0NC4xLTE1LjQgNTYgNS45IDY2LjQgMzcuNnMzIDQyLjYtMzguNiA1OC45LTYxLjktNC41LTY0LjktNDIuNmwwIC4xem04OS42IDE0LjlsMSAwYzIuNSAwIDUtMiA1LTUgMi02LjkgMS0xNC40LTItMjAuOC0xLjUtMi00LTMuNS02LjQtMi41LTMgMS00LjUgNC0zLjUgNi45IDIgNC41IDMgOS45IDEuNSAxNC45LS41IDMgMS41IDUuOSA0LjUgNi40bC0uMSAuMXptLTkuOS00MS42Yy0yIDAtNC0xLTUtM3MtMi0zLjUtMy01Yy0yLTItMi01LjQgMC03LjRzNS40LTIgNy40IDBjMiAyLjUgMy41IDUgNSA3LjRzLjUgNS45LTIuNSA3LjRjLS42IDAtMSAuMi0xLjMgLjMtLjIgLjEtLjQgLjItLjYgLjJsMCAuMXoiXX0sYml0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdnLWNpcmNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI2MSIsIk0yNTcuNSA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMjA4IDM4Mi44bC0xMjUuNy0xMjUuNyAxMjUuNy0xMjUuNyAzNS4yIDM1LjQtMjQuMiAyNC4yLTExLjEtMTEuMS03Ny4yIDc3LjIgNzcuMiA3Ny4yIDI2LjYtMjYuNi01My4xLTUyLjkgMjQuNC0yNC40IDc3LjIgNzcuMi03NSA3NS4yem05OS0yLjJsLTM1LjItMzUuMiAyNC4xLTI0LjQgMTEuMSAxMS4xIDc3LjItNzcuMi03Ny4yLTc3LjItMjYuNSAyNi41IDUzLjEgNTIuOS0yNC40IDI0LjQtNzcuMi03Ny4yIDc1LTc1IDEyNS43IDEyNS43LTEyNS43IDEyNS42eiJdfSx2aXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRmbGFyZSIsaWNvbjpbNjQwLDUxMixbXSwiZTA3ZCIsIk00MDcuOSAzMTkuOUwxNzcuMSAzMTdjLS43IDAtMS40LS4yLTItLjVzLTEuMi0uOC0xLjYtMS40Yy0uNC0uNi0uNy0xLjMtLjctMnMwLTEuNCAuMi0yLjFjLjQtMS4xIDEuMS0yLjEgMi4xLTIuOHMyLjEtMS4yIDMuMy0xLjJsMjMyLjktMi45YzI3LjYtMS4zIDU3LjUtMjMuNiA2OC01MC44bDEzLjMtMzQuNWMuNC0uOSAuNS0xLjkgLjUtMi45IDAtLjUtLjEtMS4xLS4yLTEuNi03LjQtMzIuMi0yNS02MS4xLTUwLjMtODIuM3MtNTYuNy0zMy43LTg5LjctMzUuNS02NS42IDcuMy05MyAyNS43LTQ4IDQ1LjMtNTguOCA3Ni41Yy0xMS4zLTguNS0yNC45LTEzLjMtMzktMTMuN3MtMjggMy41LTM5LjggMTEuNC0yMC44IDE5LjEtMjUuOSAzMi4zLTUuOSAyNy42LTIuNCA0MS4zYy01Mi4zIDEuNS05NC4yIDQ0LjEtOTQuMiA5Ni41IDAgNC43IC4zIDkuMyAxIDE0IC4yIDEuMSAuNyAyLjEgMS41IDIuOHMxLjkgMS4xIDIuOSAxLjFsNDI2LjEgLjFjMCAwIC4xIDAgLjEgMCAxLjIgMCAyLjMtLjQgMy4zLTEuMXMxLjYtMS43IDItMi45bDMuMy0xMS4zYzMuOS0xMy40IDIuNC0yNS44LTQuMS0zNC45LTYtOC40LTE2LjEtMTMuMy0yOC4yLTEzLjl6bTEwNS45LTk4LjhjLTIuMSAwLTQuMyAuMS02LjQgLjItLjggLjEtMS41IC4zLTIuMSAuOHMtMSAxLjEtMS4zIDEuOGwtOS4xIDMxLjJjLTMuOSAxMy40LTIuNCAyNS44IDQuMSAzNC45IDYgOC40IDE2LjEgMTMuMyAyOC4yIDEzLjlsNDkuMiAyLjljLjcgMCAxLjQgLjIgMiAuNXMxLjEgLjggMS41IDEuNGMuNCAuNiAuNyAxLjMgLjggMnMwIDEuNS0uMiAyLjFjLS40IDEuMS0xLjEgMi4xLTIuMSAyLjhzLTIuMSAxLjItMy4zIDEuMmwtNTEuMSAyLjljLTI3LjggMS4zLTU3LjcgMjMuNi02OC4xIDUwLjhsLTMuNyA5LjZjLS4yIC40LS4yIC44LS4yIDEuM3MuMiAuOCAuNCAxLjIgLjYgLjcgLjkgLjkgLjggLjMgMS4yIC4zYzAgMCAuMSAwIC4xIDBsMTc1LjkgMGMxIDAgMi0uMyAyLjgtLjlzMS40LTEuNSAxLjctMi40YzMuMS0xMS4xIDQuNy0yMi41IDQuNy0zNCAwLTY5LjMtNTYuNS0xMjUuNS0xMjYuMS0xMjUuNXoiXX0seWl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhhY2tlcnJhbmsiLGljb246WzUxMiw1MTIsW10sImY1ZjciLCJNNDc3LjkgMTI4QzQ2My40IDEwMyAyODUuNSAwIDI1Ni41IDBzLTIwNi45IDEwMi44LTIyMS4zIDEyOC0xNC41IDIzMC44IDAgMjU2IDE5Mi40IDEyOCAyMjEuMyAxMjggMjA2LjgtMTAyLjkgMjIxLjMtMTI4IDE0LjUtMjMxIDAtMjU2ek0zMTYuNSA0MTQuMmMtNCAwLTQwLjktMzUuOC0zOC0zOC43IC45LS45IDYuMy0xLjUgMTcuNS0xLjggMC0yNi4yIC42LTY4LjYgLjktODYuMyAwLTItLjQtMy40LS40LTUuOGwtNzkuOSAwYzAgNy4xLS41IDM2LjIgMS40IDcyLjkgLjIgNC41LTEuNiA2LTUuNyA1LjktMTAuMSAwLTIwLjMtLjEtMzAuNC0uMS00LjEgMC01LjktMS41LTUuNy02LjEgLjktMzMuNCAzLTg0LS4yLTIxMi43bDAtMy4yYy05LjctLjQtMTYuNC0xLTE3LjMtMS44LTIuOS0yLjkgMzQuNS0zOC43IDM4LjUtMzguN3M0MS4yIDM1LjggMzguMyAzOC43Yy0uOSAuOS03LjkgMS41LTE2LjggMS44bDAgMy4yYy0yLjQgMjUuOC0yIDc5LjYtMi42IDEwNS40bDgwLjMgMGMwLTQuNiAuNC0zNC43LTEuMi04My42LS4xLTMuNCAxLTUuMiA0LjItNS4yIDExLjEtLjEgMjIuMi0uMSAzMy4yLS4xIDMuNSAwIDQuNiAxLjcgNC41IDUuNC0zLjcgMTkxLjMtLjcgMTc3LjktLjcgMjEwLjMgOC45IC40IDE2LjggMSAxNy43IDEuOCAyLjkgMi45LTMzLjYgMzguNy0zNy42IDM4LjdsMCAweiJdfSx3aXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2t5YXRsYXMiLGljb246WzY0MCw1MTIsW10sImYyMTYiLCJNNjQwIDMyOS4zYzAgNjUuOS01Mi41IDExNC40LTExNy41IDExNC40LTE2NS45IDAtMTk2LjYtMjQ5LjctMzU5LjctMjQ5LjctMTQ2LjkgMC0xNDcuMSAyMTIuMiA1LjYgMjEyLjIgNDIuNSAwIDkwLjktMTcuOCAxMjUuMy00Mi41IDUuNi00LjEgMTYuOS0xNi4zIDIyLjgtMTYuM3MxMC45IDUgMTAuOSAxMC45YzAgNy44LTEzLjEgMTkuMS0xOC43IDI0LjEtNDAuOSAzNS42LTEwMC4zIDYxLjItMTU0LjcgNjEuMi04My40IC4xLTE1NC01OS0xNTQtMTQ0LjlTNjcuNSAxNDkuNiAxNTIuOCAxNDkuNmMxODUuMyAwIDIyMi41IDI0NS45IDM2MS45IDI0NS45IDk5LjkgMCA5NC44LTEzOS43IDMuNC0xMzkuNy0xNy41IDAtMzUgMTEuNi00Ni45IDExLjYtOC40IDAtMTUuOS03LjItMTUuOS0xNS42IDAtMTEuNiA1LjMtMjMuNyA1LjMtMzYuMyAwLTY2LjYtNTAuOS0xMTQuNy0xMTYuOS0xMTQuNy01My4xIDAtODAgMzYuOS04OC44IDM2LjktNi4yIDAtMTEuMi01LTExLjItMTEuMiAwLTUuNiA0LjEtMTAuMyA3LjgtMTQuNCAyNS4zLTI4LjggNjQuNy00My43IDEwMi44LTQzLjcgNzkuNCAwIDEzOS4xIDU4LjQgMTM5LjEgMTM3LjggMCA2LjktLjMgMTMuNy0xLjIgMjAuNiAxMS45LTMuMSAyNC4xLTQuNyAzNS45LTQuNyA2MC43IDAgMTExLjkgNDUuMyAxMTEuOSAxMDcuMnoiXX0sTWl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlc2twcm8iLGljb246WzUxMiw1MTIsW10sImYzOGYiLCJNMjIyIDUxMmwzMS4xLTM4LjRjMTIuMy0uMiAyNS42LTEuNCAzNi41LTYuNiAzOC45LTE4LjYgMzguNC02MS45IDM4LjMtNjMuOC0uMS01LS44LTQuNC0yOC45LTM3LjRsNzkuMSAwYy0uMiA1MC4xLTcuMyA2OC41LTEwLjIgNzUuNy05LjQgMjMuNy00My45IDYyLjgtOTUuMiA2OS40LTguNyAxLjEtMzIuOCAxLjItNTAuNyAxLjF6TTQyMi40IDM0NC4zYzM4LjYgMCA1OC41LTEzLjYgNzMuNy0zMC45bC0xNzUuNS0uMy0xNy40IDMxLjMgMTE5LjItLjF6TTM3OC44IDEyMC40bDAgMTY4LjMtNzMuNSAwLTMyLjcgNTUuNS02LjUgMGMtNTIuMyAwLTU4LjEtNTYuNS01OC4zLTU4LjktMS4yLTEzLjItMjEuMy0xMS42LTIwLjEgMS44IDEuNCAxNS44IDguOCA0MCAyNi40IDU3LjFsLTkxIDBjLTI1LjUgMC0xMTAuOC0yNi44LTEwNy0xMTRsMC0yMTMuM2MwLTE2IDkuNy0xNi42IDE1LTE2LjhsODIgMGMuMiAwIC4zIC4xIC41IC4xIDQuMy0uNCA1MC4xLTIuMSA1MC4xIDQzLjcgMCAxMy4zIDIwLjIgMTMuNCAyMC4yIDAgMC0xOC4yLTUuNS0zMi44LTE1LjgtNDMuN2w4NC4yIDBDMzYxLS4yIDM3OC44IDc5LjYgMzc4LjggMTIwLjR6bS0xMzIuNSA1Nmw2NCAyOS4zYzEzLjMtNDUuNS00Mi4yLTcxLjctNjQtMjkuM3oiXX0seml0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlc29sdmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjNlNyIsIk0yODkuMiAyNzguMmM0Ni0xMy4zIDQ5LjYtMjMuNSA0NC00My40TDMyMiAxOTUuNWMtNi4xLTIwLjktMTguNC0yOC4xLTcxLjEtMTIuOGwtMTg4LjIgNTQuMSAyOC42IDk4LjYgMTk3LjktNTcuMnpNMjU2LjUgOEMxMzkuNCA4IDQxLjIgODguNyAxNS4yIDE5Ny41bDIyMS45LTYzLjljMzQuOC0xMC4yIDU0LjItMTEuNyA3OS4zLTguMiAzNi4zIDYuMSA1Mi43IDI1IDYxLjQgNTUuMmwxMC43IDM3LjhjOC4yIDI4LjEgMSA1MC42LTIzLjUgNzMuNi0xOS40IDE3LjQtMzEuMiAyNC41LTYxLjQgMzMuMmwtOTIuNiAyNi42IDIyMC40IDI3LjEgOS43IDM0LjItNDguMSAxMy4zLTI4Ni44LTM3LjMgMjMgODAuMkMxNjYgNDkxLjMgMjA5LjUgNTA0IDI1NS41IDUwNCAzOTIuNSA1MDQgNTA0IDM5Mi42IDUwNCAyNTUuNyA1MDUgMTE5LjQgMzkzLjUgOCAyNTYuNSA4ek00Ni4zIDM4OC42TDggMjU2LjhjMCA0OC41IDE0LjMgOTMuNCAzOC4zIDEzMS44eiJdfSxraXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxhY2tiZXJyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjM3YiIsIk0xNjYgMTE2LjljMCAyMy40LTE2LjQgNDkuMS03Mi41IDQ5LjFsLTcwLjEgMCAyMS04OC44IDY3LjggMGM0Mi4xIDAgNTMuOCAyMy4zIDUzLjggMzkuN3pNMjkyLjIgNzcuMmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTMuOCAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuNC0xMS42LTM5LjctNTMuNy0zOS43ek04OC44IDIwOC4xbC02Ny44IDAtMjEgODguOCA3MC4xIDBjNTYuMSAwIDcyLjUtMjMuNCA3Mi41LTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My44LTM5Ljd6bTE4MC4xIDBsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuNy0zOS43em0xODkuMy01My44bC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMSAuMS0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6bS0yOCAxMzcuOWwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6TTI0MC44IDM0NmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43eiJdfSxTaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyaXBlLXMiLGljb246WzM4NCw1MTIsW10sImY0MmEiLCJNMTU1LjYgMTU0LjZjMC0yMi4zIDE4LjYtMzAuOSA0OC40LTMwLjkgNDMuNCAwIDk4LjUgMTMuMyAxNDEuOSAzNi43bDAtMTM0LjNjLTQ3LjMtMTguOS05NC41LTI2LjEtMTQxLjgtMjYuMS0xMTUuNyAwLTE5Mi44IDYwLjQtMTkyLjggMTYxLjQgMCAxNTcuOSAyMTYuOCAxMzIuMyAyMTYuOCAyMDAuNCAwIDI2LjQtMjIuOSAzNC45LTU0LjcgMzQuOS00Ny4yIDAtMTA4LjItMTkuNS0xNTYuMS00NS41bDAgMTI4LjVjNDkuMyAyMS4zIDEwMi4zIDMyLjMgMTU2IDMyLjQgMTE4LjYgMCAyMDAuMy01MSAyMDAuMy0xNTMuNiAwLTE3MC4yLTIxOC0xMzkuNy0yMTgtMjAzLjl6Il19LEYxZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtYmVoYW5jZSIsaWNvbjpbNDQ4LDUxMixbImJlaGFuY2Utc3F1YXJlIl0sImYxYjUiLCJNMTU1LjMgMzE4LjRjMTcuMiAwIDMxLjItNi4xIDMxLjItMjUuNCAwLTE5LjctMTEuNy0yNy40LTMwLjMtMjcuNWwtNDYgMCAwIDUyLjkgNDUuMSAwem0tNS40LTEyOS42bC0zOS42IDAgMCA0NC44IDQyLjcgMGMxNS4xIDAgMjUuOC02LjYgMjUuOC0yMi45IDAtMTcuNy0xMy43LTIxLjktMjguOS0yMS45em0xMjkuNSA3NC44bDYyLjIgMGMtMS43LTE4LjUtMTEuMy0yOS43LTMwLjUtMjkuNy0xOC4zIDAtMzAuNSAxMS40LTMxLjcgMjkuN3pNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTM0OS41IDE4NWwtNzcuOCAwIDAtMTguOSA3Ny44IDAgMCAxOC45ek0xOTMuNyAyNDMuN2MyMy42IDYuNyAzNSAyNy41IDM1IDUxLjYgMCAzOS0zMi43IDU1LjctNjcuNiA1NS45bC05My4xIDAgMC0xOTIgOTAuNSAwYzMyLjkgMCA2MS40IDkuMyA2MS40IDQ3LjUgMCAxOS4zLTkgMjguOC0yNi4yIDM3em0xMTguNy0zOC42YzQzLjUgMCA2Ny42IDM0LjMgNjcuNiA3NS40IDAgMS42LS4xIDMuMy0uMiA1IDAgLjgtLjEgMS41LS4xIDIuMmwtMTAwLjIgMGMwIDIyLjIgMTEuNyAzNS4zIDM0LjEgMzUuMyAxMS42IDAgMjYuNS02LjIgMzAuMi0xOC4xbDMzLjcgMGMtMTAuNCAzMS45LTMxLjkgNDYuOC02NS4xIDQ2LjgtNDMuOCAwLTcxLjEtMjkuNy03MS4xLTczIDAtNDEuOCAyOC43LTczLjYgNzEuMS03My42eiJdfSxDaXQ9RjFlLExpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZXJ2aWNlc3RhY2siLGljb246WzUxMiw1MTIsW10sImYzZWMiLCJNOTYgMjE2YzgxLjcgMTAuMiAyNzMuNyAxMDIuMyAzMDQgMjMyTDggNDQ4Yzk5LjUtOC4xIDE4NC41LTEzNyA4OC0yMzJ6TTEyOCA2NGMzMi4zIDM1LjYgNDcuNyA4My45IDQ2LjQgMTMzLjYgODIuOSAzMy43IDIwNy4zIDEyMy43IDIzMy42IDI1MC40bDk2IDBDNDYzLjMgMjMxLjkgMjMwLjggNzkuNSAxMjggNjR6Il19LFRpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyb2NrZXRjaGF0IixpY29uOls1NzYsNTEyLFtdLCJmM2U4IiwiTTI4NC41IDIyNC44Yy02LjcgMC0xMy4zIDIuMS0xOC45IDUuOHMtOS45IDkuMS0xMi41IDE1LjQtMy4yIDEzLjEtMS45IDE5LjcgNC42IDEyLjcgOS40IDE3LjQgMTAuOSA4IDE3LjUgOS4zIDEzLjUgLjYgMTkuNy0yIDExLjUtNyAxNS4zLTEyLjYgNS43LTEyLjIgNS43LTE4LjljMC05LjEtMy43LTE3LjgtMTAuMS0yNC4ycy0xNS4xLTEwLTI0LjItOS45em0tMTEwLjQgMGMtNi43IDAtMTMuMyAyLjEtMTguOSA1LjhzLTkuOSA5LjEtMTIuNSAxNS40LTMuMiAxMy4xLTEuOSAxOS43IDQuNiAxMi43IDkuNCAxNy40IDEwLjkgOCAxNy41IDkuMyAxMy41IC42IDE5LjctMiAxMS41LTcgMTUuMy0xMi42IDUuNy0xMi4yIDUuNy0xOC45YzAtOS4xLTMuNy0xNy44LTEwLjEtMjQuMnMtMTUuMS0xMC0yNC4yLTEwbDAgMHptMjIwLjkgMGEzNC4xIDM0LjEgMCAxIDAgLjQgNjguMiAzNC4xIDM0LjEgMCAxIDAgLS40LTY4LjJ6bTE1My44LTU1LjNjLTE1LjUtMjQuMi0zNy4zLTQ1LjYtNjQuNy02My42LTUyLjktMzQuOC0xMjIuNC01NC0xOTUuNy01NC0yNC4yIDAtNDguMyAyLjEtNzIgNi40LTE0LjktMTQuMy0zMS41LTI2LjYtNDkuNS0zNi42LTY2LjgtMzMuMy0xMjUuNi0yMC45LTE1NS4zLTEwLjItMi4zIC44LTQuMyAyLjEtNS45IDMuOXMtMi43IDMuOS0zLjMgNi4yLS41IDQuNyAuMSA3LjEgMS44IDQuNCAzLjUgNi4xQzI3IDU2LjUgNjEuNiA5OS4zIDUzLjEgMTM4LjMgMjAgMTcyLjIgMiAyMTMgMiAyNTUuNiAyIDI5OSAyMCAzMzkuOCA1My4xIDM3My43IDYxLjYgNDEyLjcgMjcgNDU1LjYgNiA0NzcuMiA0LjMgNDc5IDMuMiA0ODEuMSAyLjUgNDgzLjRzLS43IDQuNy0uMSA3IDEuNyA0LjUgMy4zIDYuMiAzLjYgMy4xIDUuOSAzLjljMjkuNyAxMC43IDg4LjUgMjMuMSAxNTUuMy0xMC4yIDE4LTEwIDM0LjctMjIuMyA0OS41LTM2LjYgMjMuOCA0LjMgNDcuOSA2LjQgNzIgNi40IDczLjMgMCAxNDIuOC0xOS4yIDE5NS43LTU0IDI3LjQtMTggNDkuMS0zOS40IDY0LjctNjMuNiAxNy4zLTI2LjkgMjYuMS01NS45IDI2LjEtODYuMSAwLTMxLTguOC02MC0yNi4xLTg2LjlsMCAwek0yODUuNCA0MDkuOWMtMzAuMiAuMS02MC4zLTMuOC04OS40LTExLjVsLTIwLjEgMTkuNGMtMTEuMiAxMC43LTIzLjYgMjAtMzcuMSAyNy42LTE2LjQgOC4yLTM0LjIgMTMuMy01Mi41IDE0LjkgMS0xLjggMS45LTMuNiAyLjgtNS40IDIwLjItMzcuMSAyNS42LTcwLjUgMTYuMy0xMDAuMS0zMy0yNi01Mi44LTU5LjItNTIuOC05NS40IDAtODMuMSAxMDQuMy0xNTAuNSAyMzIuOC0xNTAuNXMyMzIuOSA2Ny40IDIzMi45IDE1MC41YzAgODMuMS0xMDQuMyAxNTAuNS0yMzIuOSAxNTAuNXoiXX0sX2l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlYmVsIixpY29uOls1MTIsNTEyLFtdLCJmMWQwIiwiTTI1Ni45IDUwNGMtMTM5LjMgMC0yNDcuNS0xMTYuMi0yNDMuMy0yNTQuMSAyLjgtNzkuMiA0My4yLTE1Mi4yIDExNi41LTIwMC40IC4zIDAgMS45LS42IDEuMSAuOC01LjggNS41LTExMS4zIDEyOS44LTE0LjEgMjI2LjQgNDkuOCA0OS41IDkwIDIuNSA5MCAyLjUgMzguNS01MC4xLS42LTEyNS45LS42LTEyNS45LTEwLTI0LjktNDUuNy00MC4xLTQ1LjctNDAuMWwyOC44LTMxLjhjMjQuNCAxMC41IDQzLjIgMzguNyA0My4yIDM4LjcgLjgtMjkuNi0yMS45LTYxLjQtMjEuOS02MS40TDI1NS41IDggMjk5LjggNTguMWMtMjAuNSAyOC44LTIxLjkgNjIuNi0yMS45IDYyLjYgMTMuOC0yMyA0My41LTM5LjMgNDMuNS0zOS4zbDI4LjUgMzEuOGMtMjcuNCA4LjktNDUuNCAzOS45LTQ1LjQgMzkuOS0xNS44IDI4LjUtMjcuMSA4OS40IC42IDEyNy4zIDMyLjQgNDQuNiA4Ny43LTIuOCA4Ny43LTIuOCAxMDIuNy05MS45LTEwLjUtMjI1LTEwLjUtMjI1LTYuMS01LjUgLjgtMi44IC44LTIuOCA1MC4xIDM2LjUgMTE0LjYgODQuNCAxMTYuMiAyMDQuOCAyIDE0NS42LTk5LjkgMjQ5LjQtMjQyLjQgMjQ5LjR6Il19LEFpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtd2ViLWF3ZXNvbWUiLGljb246WzQ0OCw1MTIsW10sImU2ODMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjM1IDE3Ny42bDUzIDQ2LjQgNTIuMi0xMC40Yy0yLjYtMy45LTQuMi04LjUtNC4yLTEzLjYgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDEzLTEwLjMgMjMuNi0yMy4yIDI0TDMwNC41IDM0OS4xYy01LjIgMTEuNS0xNi42IDE4LjktMjkuMiAxOC45bC0xMDIuNiAwYy0xMi42IDAtMjQtNy40LTI5LjItMTguOUw4Ny4yIDIyNGMtMTIuOS0uNC0yMy4yLTExLTIzLjItMjQgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDUtMS41IDkuNy00LjIgMTMuNkwxNjAgMjI0IDIxMy4xIDE3Ny42Yy04LjktNC4xLTE1LTEzLjEtMTUtMjMuNiAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2YzAgMTAuNS02LjIgMTkuNS0xNS4xIDIzLjZ6Il19LCRpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rdHJlZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTdkOCIsIk0zMiAxNzMuNGwxMjUuOCAwLTg5LjQtODUuNCA0OS41LTUxIDg1LjIgODcuOCAwLTEyNC44IDczLjkgMCAwIDEyNC44IDg1LjItODcuNiA0OS40IDUwLjgtODkuNCA4NS4yIDEyNS43IDAgMCA3MC41LTEyNi40IDAgOTAgODcuNi00OS4zIDQ5LjgtMTIyLjItMTIzLTEyMi4yIDEyMy00OS41LTQ5LjYgOTAtODcuNi0xMjYuNCAwIDAtNzAuNXpNMjAyLjkgMzQ0LjhsNzMuOSAwIDAgMTY3LjItNzMuOSAwIDAtMTY3LjJ6Il19LERpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaW1wbHlidWlsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjIxNSIsIk00ODEuNiA2NGwtMTA2IDBDMzYxLjEgNjQgMzQ5IDc1LjggMzQ5IDkwLjNsMCAzOS42LTE4NS4zIDAgMC0zOS42YzAtMTQuNS0xMi0yNi4zLTI2LjYtMjYuM2wtMTA2IDBDMTYuNSA2NCA0LjcgNzUuOCA0LjcgOTAuM2wwIDMzMS40YzAgMTQuNSAxMS44IDI2LjMgMjYuNiAyNi4zbDQ1MC40IDBjMTQuOCAwIDI2LjYtMTEuOCAyNi42LTI2LjNsMC0zMzEuNGMtLjItMTQuNS0xMi0yNi4zLTI2LjctMjYuM3pNMTUwLjUgMjIyLjdhNjYuNSA2Ni41IDAgMSAxIC0uMyAxMzMuMSA2Ni41IDY2LjUgMCAxIDEgLjMtMTMzLjF6bTIxMS45IC4xYTY2LjUgNjYuNSAwIDEgMSAuMyAxMzIuOSA2Ni41IDY2LjUgMCAxIDEgLS4zLTEzMi45eiJdfSxFaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3R1YmJlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTVjNyIsIk0xMzYuNSAyOTQuMmw1OC44IDIyLjljOS4xLTM2LjggMjUuNC02MS4xIDU1LTYxLjEgNDkuNCAwIDcxLjQgNjMuNiAxNDIuNCA2My42IDE1LjYgMCAzNS45LTIuOCA1NS4zLTEzLjNsMCA2MS43YzAgNjEuOC01MC40IDExMi0xMTIuMyAxMTJMMCA0ODAgNDEuOCA0MjQgMCAzNjggNDEuNyAzMTIgMCAyNTYuMSA0MS44IDIwMC4xIDAgMTQ0LjEgNDEuOCA4OCAwIDMyIDMzNS43IDMyQzM5Ny42IDMyIDQ0OCA4Mi4zIDQ0OCAxNDQuMWwwIDUxLjNjLTkuMiAzNi4zLTI1LjkgNjAuNi01NSA2MC42LTQ5LjYgMC03MS42LTYzLjUtMTQyLjQtNjMuNS0zNS45IDAtOTUuMiAxNC42LTExNC4xIDEwMS42bDAgLjF6Il19LE5pdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHBlciIsaWNvbjpbNjQwLDUxMixbXSwiZjM3MSIsIk00Mi4xIDIzOS4xYzIyLjIgMCAyOSAyLjggMzMuNSAxNC42bC44IDAgMC0yMi45YzAtMTEuMy00LjgtMTUuNC0xNy45LTE1LjQtMTEuMyAwLTE0LjQgMi41LTE1LjEgMTIuOGwtMzguNiAwYy4zLTEzLjkgMS41LTE5LjEgNS44LTI0LjQgNy4zLTguOCAxOC45LTExLjggNDYuMS0xMS44IDMzIDAgNDcuMSA1IDUzLjkgMTguOSAyIDQuMyA0IDE1LjYgNCAyMy43bDAgNzYuMy0zOC4zIDAgMS4zLTE5LjEtMSAwYy01LjMgMTUuNi0xMy42IDIwLjQtMzUuNSAyMC40LTMwLjMgMC00MS4xLTEwLjEtNDEuMS0zNy4zIDAtMjUuMiAxMi4zLTM1LjggNDIuMS0zNS44em0xNy4xIDQ4LjFjMTMuMSAwIDE2LjktMyAxNi45LTEzLjQgMC05LjEtNC4zLTExLjYtMTkuNi0xMS42LTEzLjEgMC0xNy45IDMtMTcuOSAxMi4xLS4xIDEwLjQgMy43IDEyLjkgMjAuNiAxMi45ek0xMzcgMTkyLjNsMzguMyAwLTEuNSAyMC42IC44IDBjOS4xLTE3LjEgMTUuOS0yMC45IDM3LjUtMjAuOSAxNC40IDAgMjQuNyAzIDMxLjUgOS4xIDkuOCA4LjYgMTIuOCAyMC40IDEyLjggNDguMSAwIDMwLTMgNDMuMS0xMi4xIDUyLjktNi44IDcuMy0xNi40IDEwLjEtMzMuMiAxMC4xLTIwLjQgMC0yOS4yLTUuNS0zMy44LTIxLjJsLS44IDAgMCA3MC4zLTM5LjUgMCAwLTE2OXpNMjE3LjkgMjUzYzAtMjcuNS0zLjMtMzIuNS0yMC43LTMyLjUtMTYuOSAwLTIwLjcgNS0yMC43IDI4LjcgMCAyOCAzLjUgMzMuNSAyMS4yIDMzLjUgMTYuNCAwIDIwLjItNS42IDIwLjItMjkuN3ptNTcuOS02MC43bDM4LjMgMC0xLjUgMjAuNiAuOCAwYzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjMgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4ybC0uOCAwIDAgNzAuMy0zOS41IDAgMC0xNjkgLjEgMHpNMzU2LjcgMjUzYzAtMjcuNS0zLjMtMzIuNS0yMC43LTMyLjUtMTYuOSAwLTIwLjcgNS0yMC43IDI4LjcgMCAyOCAzLjUgMzMuNSAyMS4yIDMzLjUgMTYuNCAwIDIwLjItNS42IDIwLjItMjkuN3ptNTMuOC0zLjhjMC0yNS40IDMuMy0zNy44IDEyLjMtNDUuOCA4LjgtOC4xIDIyLjItMTEuMyA0NS4xLTExLjMgNDIuOCAwIDU1LjcgMTIuOCA1NS43IDU1LjdsMCAxMS4xLTc1LjMgMGMtLjMgMi0uMyA0LS4zIDQuOCAwIDE2LjkgNC41IDIxLjkgMjAuMSAyMS45IDEzLjkgMCAxNy45LTMgMTcuOS0xMy45bDM3LjUgMCAwIDIuM2MwIDkuOC0yLjUgMTguOS02LjggMjQuNy03LjMgOS44LTE5LjYgMTMuNi00NC4zIDEzLjYtMjcuNSAwLTQxLjYtMy4zLTUwLjYtMTIuMy04LjUtOC41LTExLjMtMjEuMy0xMS4zLTUwLjh6bTc2LjQtMTEuNmMtLjMtMS44LS4zLTMuMy0uMy0zLjggMC0xMi4zLTMuMy0xNC42LTE5LjYtMTQuNi0xNC40IDAtMTcuMSAzLTE4LjEgMTUuMWwtLjMgMy4zIDM4LjMgMHptNTUuNi00NS4zbDM4LjMgMC0xLjggMTkuOSAuNyAwYzYuOC0xNC45IDE0LjQtMjAuMiAyOS43LTIwLjIgMTAuOCAwIDE5LjEgMy4zIDIzLjQgOS4zIDUuMyA3LjMgNi44IDE0LjQgNi44IDM0IDAgMS41IDAgNSAuMiA5LjNsLTM1IDBjLjMtMS44IC4zLTMuMyAuMy00IDAtMTUuNC0yLTE5LjQtMTAuMy0xOS40LTYuMyAwLTEwLjggMy4zLTEzLjEgOS4zLTEgMy0xIDQuMy0xIDEyLjNsMCA2OC0zOC4zIDAgMC0xMTguNSAuMSAweiJdfSxQaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXNjaG9sYXIiLGljb246WzUxMiw1MTIsW10sImU2M2IiLCJNMzkwLjkgMjk4LjVzMCAuMSAuMSAuMWM5LjIgMTkuNCAxNC40IDQxLjEgMTQuNCA2NC0uMSA4Mi41LTY2LjkgMTQ5LjQtMTQ5LjQgMTQ5LjRTMTA2LjcgNDQ1LjEgMTA2LjcgMzYyLjdjMC0yMi45IDUuMi00NC42IDE0LjQtNjQgMS43LTMuNiAzLjYtNy4yIDUuNi0xMC43IDQuNC03LjYgOS40LTE0LjcgMTUtMjEuMyAyNy40LTMyLjYgNjguNS01My4zIDExNC40LTUzLjMgMzMuNiAwIDY0LjYgMTEuMSA4OS42IDI5LjkgOS4xIDYuOSAxNy40IDE0LjcgMjQuOCAyMy41IDUuNiA2LjYgMTAuNiAxMy44IDE1IDIxLjMgMiAzLjQgMy44IDcgNS41IDEwLjVsLS4xLS4xem0yNi40LTE4LjhjLTMwLjEtNTguNC05MS05OC40LTE2MS4zLTk4LjRzLTEzMS4yIDQwLTE2MS4zIDk4LjRsLTk0LjctNzcgMjU2LTIwMi43IDI1NiAyMDIuNy05NC43IDc3LjEgMC0uMXoiXX0sSWl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Inlhcm4iLGljb246WzUxMiw1MTIsW10sImY3ZTMiLCJNNDAxLjkgMzQ1LjJjLTM5IDkuMy00OC40IDMyLjEtMTA0IDQ3LjQgMCAwLTIuNyA0LTEwLjQgNS44LTEzLjQgMy4zLTYzLjkgNi02OC41IDYuMS0xMi40IC4xLTE5LjktMy4yLTIyLTguMi02LjQtMTUuMyA5LjItMjIgOS4yLTIyLTguMS01LTktOS45LTkuOC04LjEtMi40IDUuOC0zLjYgMjAuMS0xMC4xIDI2LjUtOC44IDguOS0yNS41IDUuOS0zNS4zIC44LTEwLjgtNS43IC44LTE5LjIgLjgtMTkuMnMtNS44IDMuNC0xMC41LTMuNmMtNi05LjMtMTcuMS0zNy4zIDExLjUtNjItMS4zLTEwLjEtNC42LTUzLjcgNDAuNi04NS42IDAgMC0yMC42LTIyLjgtMTIuOS00My4zIDUtMTMuNCA3LTEzLjMgOC42LTEzLjkgNS43LTIuMiAxMS4zLTQuNiAxNS40LTkuMSAyMC42LTIyLjIgNDYuOC0xOCA0Ni44LTE4czEyLjQtMzcuOCAyMy45LTMwLjRjMy41IDIuMyAxNi4zIDMwLjYgMTYuMyAzMC42czEzLjYtNy45IDE1LjEtNWM4LjIgMTYgOS4yIDQ2LjUgNS42IDY1LjEtNi4xIDMwLjYtMjEuNCA0Ny4xLTI3LjYgNTcuNS0xLjQgMi40IDE2LjUgMTAgMjcuOCA0MS4zIDEwLjQgMjguNiAxLjEgNTIuNyAyLjggNTUuMyAuOCAxLjQgMTMuNyAuOCAzNi40LTEzLjIgMTIuOC03LjkgMjguMS0xNi45IDQ1LjQtMTcgMTYuNy0uNSAxNy42IDE5LjIgNC45IDIyLjJ6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTQxNi43IDc1LjJjLTEuNy0xMy42LTEzLjItMjMtMjgtMjIuOC0yMiAuMy00MC41IDExLjctNTIuOCAxOS4yLTQuOCAzLTguOSA1LjItMTIuNCA2LjggMy4xLTQ0LjUtMjIuNS03My4xLTI4LjctNzkuNCA3LjgtMTEuMyAxOC40LTI3LjggMjMuNC01My4yIDQuMy0yMS43IDMtNTUuNS02LjktNzQuNS0xLjYtMy4xLTcuNC0xMS4yLTIxLTcuNC05LjctMjAtMTMtMjIuMS0xNS42LTIzLjgtMS4xLS43LTIzLjYtMTYuNC00MS40IDI4LTEyLjIgLjktMzEuMyA1LjMtNDcuNSAyMi44LTIgMi4yLTUuOSAzLjgtMTAuMSA1LjRsLjEgMGMtOC40IDMtMTIuMyA5LjktMTYuOSAyMi4zLTYuNSAxNy40IC4yIDM0LjYgNi44IDQ1LjctMTcuOCAxNS45LTM3IDM5LjgtMzUuNyA4Mi41LTM0IDM2LTExLjggNzMtNS42IDc5LjYtMS42IDExLjEgMy43IDE5LjQgMTIgMjMuOCAxMi42IDYuNyAzMC4zIDkuNiA0My45IDIuOCA0LjkgNS4yIDEzLjggMTAuMSAzMCAxMC4xIDYuOCAwIDU4LTIuOSA3Mi42LTYuNSA2LjgtMS42IDExLjUtNC41IDE0LjYtNy4xIDkuOC0zLjEgMzYuOC0xMi4zIDYyLjItMjguNyAxOC0xMS43IDI0LjItMTQuMiAzNy42LTE3LjQgMTIuOS0zLjIgMjEtMTUuMSAxOS40LTI4LjJ6Il19LEZpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFjay1vdmVyZmxvdyIsaWNvbjpbMzg0LDUxMixbXSwiZjE2YyIsIk0yOTEgMzExbC0xOTUuNy00MS4zLTguMiAzOS4zIDE5NS43IDQxIDguMi0zOXptNTEtODdMMTg4LjUgOTUuNyAxNjMgMTI2LjUgMzE2LjUgMjU0LjggMzQyIDIyNHptLTMxLjIgMzkuN0wxMjkuNSAxNzkgMTEyLjggMjE1LjUgMjk0IDMwMCAzMTAuOCAyNjMuN3pNMjYyLjMgMzJsLTMyIDI0IDExOS4zIDE2MC4zIDMyLTI0LTExOS4zLTE2MC4zem0yMC41IDMyOGwtMjAwIDAgMCAzOS43IDIwMCAwIDAtMzkuN3ptMzkuNyA4MGwtMjc5LjUgMCAwLTEyMC00MCAwIDAgMTYwIDM1OS41IDAgMC0xNjAtNDAgMCAwIDEyMHoiXX0sT2l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWV0b290aCIsaWNvbjpbMzg0LDUxMixbXSwiZjI5MyIsIk0yNjAuNiAxNzEuMWwtNDIuOSA0Mi45LS4zLTg2IDQzLjIgNDMuMXpNMjE3LjQgMzkwLjlsNDMuMS00My4xLTQyLjktNDIuOS0uMiA4NnpNMzg0IDI1OS40QzM4NCA0NjUgMzEyLjEgNTEyIDE5OC45IDUxMlMwIDQ2NSAwIDI1OS40IDgzLjQgMCAxOTYuNiAwIDM4NCA1My45IDM4NCAyNTkuNHptLTE1OC41IDBsNzkuNC04OC42LTEyNS4xLTEzNC4zIDAgMTc2LjktNzMuOC03My44LTI3IDI2LjkgOTIuNyA5My05Mi43IDkzIDI2LjkgMjYuOSA3My44LTczLjggMi4zIDE3MCAxMjcuNC0xMjcuNS04My45LTg4Ljd6Il19LEJpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5jLWpwIixpY29uOls1MTIsNTEyLFtdLCJmNGVhIiwiTTI1NS43IDhDMTExLjYgOCA4IDEyNC44IDggMjU2IDggMzkyLjQgMTE5LjggNTA0IDI1NS43IDUwNCAzODUuOSA1MDQgNTA0IDQwMy4yIDUwNCAyNTYgNTA0IDExNy4yIDM5Ni41IDggMjU1LjcgOHptLjYgNDUwLjdjLTExMiAwLTIwMy42LTkyLjUtMjAzLjYtMjAyLjcgMC0yMS4xIDMtNDEuMiA5LTYwLjNsMTI3IDU2LjUtMjcuOSAwIDAgMzguNiA1OC4xIDAgNS43IDExLjggMCAxOC43LTYzLjggMCAwIDM4LjcgNjMuOCAwIDAgNTYgNjEuNyAwIDAtNTYgNjQuMiAwIDAtMzUuNyA4MSAzNi4xYy0xLjUgMi4yLTU3LjEgOTguMy0xNzUuMiA5OC4zem04Ny42LTEzNy4zbC01Ny42IDAgMC0xOC43IDIuOS01LjYgNTQuNyAyNC4zem02LjUtNTEuNGwwLTE3LjgtMzguNiAwIDYzLTExNi02NS44IDAtNDMuNCA5Ni0yMy0xMC4yLTM5LjYtODUuNy02NS44IDAgMjcuMyA1MS04MS45LTM2LjVjMjcuOC00NC4xIDgyLjYtOTguMSAxNzMuNy05OC4xIDExMi44IDAgMjAzIDkwIDIwMyAyMDMuNCAwIDIxLTIuNyA0MC42LTcuOSA1OUwzNTAuNCAyNzB6Il19LFJpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWRkaXQiLGljb246WzUxMiw1MTIsW10sImYxYTEiLCJNMCAyNTZDMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2IDM5Ny40IDUxMiAyNTYgNTEyTDM3LjEgNTEyYy0xMy43IDAtMjAuNS0xNi41LTEwLjktMjYuMkw3NSA0MzdDMjguNyAzOTAuNyAwIDMyNi43IDAgMjU2ek0zNDkuNiAxNTMuNmMyMy42IDAgNDIuNy0xOS4xIDQyLjctNDIuN3MtMTkuMS00Mi43LTQyLjctNDIuN2MtMjAuNiAwLTM3LjggMTQuNi00MS44IDM0LTM0LjUgMy43LTYxLjQgMzMtNjEuNCA2OC40bDAgLjJjLTM3LjUgMS42LTcxLjggMTIuMy05OSAyOS4xLTEwLjEtNy44LTIyLjgtMTIuNS0zNi41LTEyLjUtMzMgMC01OS44IDI2LjgtNTkuOCA1OS44IDAgMjQgMTQuMSA0NC42IDM0LjQgNTQuMSAyIDY5LjQgNzcuNiAxMjUuMiAxNzAuNiAxMjUuMnMxNjguNy01NS45IDE3MC42LTEyNS4zYzIwLjItOS42IDM0LjEtMzAuMiAzNC4xLTU0IDAtMzMtMjYuOC01OS44LTU5LjgtNTkuOC0xMy43IDAtMjYuMyA0LjYtMzYuNCAxMi40LTI3LjQtMTctNjIuMS0yNy43LTEwMC0yOS4xbDAtLjJjMC0yNS40IDE4LjktNDYuNSA0My40LTQ5LjkgNC40IDE4LjggMjEuMyAzMi44IDQxLjUgMzIuOGwuMSAuMnpNMTc3LjEgMjQ2LjljMTYuNyAwIDI5LjUgMTcuNiAyOC41IDM5LjNzLTEzLjUgMjkuNi0zMC4zIDI5LjYtMzEuNC04LjgtMzAuNC0zMC41IDE1LjQtMzguMyAzMi4xLTM4LjNsLjEtLjF6bTE5MC4xIDM4LjNjMSAyMS43LTEzLjcgMzAuNS0zMC40IDMwLjVzLTI5LjMtNy45LTMwLjMtMjkuNiAxMS44LTM5LjMgMjguNS0zOS4zIDMxLjIgMTYuNiAzMi4xIDM4LjNsLjEgLjF6bS00OC4xIDU2LjdjLTEwLjMgMjQuNi0zNC42IDQxLjktNjMgNDEuOXMtNTIuNy0xNy4zLTYzLTQxLjljLTEuMi0yLjkgLjgtNi4yIDMuOS02LjUgMTguNC0xLjkgMzguMy0yLjkgNTkuMS0yLjlzNDAuNyAxIDU5LjEgMi45YzMuMSAuMyA1LjEgMy42IDMuOSA2LjV6Il19LEhpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb25uZWN0ZGV2ZWxvcCIsaWNvbjpbNTc2LDUxMixbXSwiZjIwZSIsIk01NTAuOCAyNDFsLTUwLjEtODYuOGMxLjEtMi4xIDEuOS00LjYgMS45LTcuMiAwLTgtNi43LTE0LjctMTQuNy0xNUw0MzIuNCAzNi4xYy41LTEuNiAxLjEtMy4yIDEuMS00LjggMC04LjYtNy0xNS4zLTE1LjMtMTUuMy00LjggMC04LjggMi4xLTExLjggNS42bC0xMDYuNiAwYy0yLjctMy41LTYuNy01LjYtMTEuNS01LjZzLTguOCAyLjEtMTEuNSA1LjZsLTEwNi4xIDBjLTIuOS0zLjUtNy01LjYtMTEuOC01LjYtOC4zIDAtMTUuMyA2LjctMTUuMyAxNS4zIDAgMS42IC41IDMuNSAxLjEgNC44bC01NiA5Ny4yYy01LjQgMi40LTkuMSA3LjUtOS4xIDEzLjcgMCAuNSAuMyAxLjEgLjMgMS42TDI2LjYgMjQwLjdjLTcuMiAxLjMtMTIuNiA3LjUtMTIuNiAxNSAwIDcuMiA1LjEgMTMuNCAxMi4xIDE1bDU1LjIgOTUuNGMtLjUgMS42LS44IDIuOS0uOCA0LjggMCA3LjIgNS4xIDEzLjQgMTIuMSAxNC43bDUxLjcgODkuN2MtLjUgMS42LTEuMSAzLjUtMS4xIDUuNCAwIDguNiA3IDE1LjMgMTUuMyAxNS4zIDQuOCAwIDguOC0yLjEgMTEuNS01LjRsMTA2LjkgMGMyLjcgMy4yIDcgNS40IDExLjUgNS40czguOC0yLjEgMTEuNS01LjRsMTA3LjEgMGMyLjcgMi45IDYuNyA0LjggMTEgNC44IDguNiAwIDE1LjMtNyAxNS4zLTE1LjMgMC0xLjYtLjMtMi45LS44LTQuM2w1MS43LTkwLjNjNy0xLjMgMTIuMS03LjUgMTIuMS0xNC43IDAtMS42LS4zLTMuMi0uOC00LjhsNTQuOS05NS40YzctMS4zIDEyLjMtNy41IDEyLjMtMTUgMC03LjItNS4xLTEzLjQtMTEuOC0xNC43em0tMzk3IDIwOS43bC00My43LTc1LjggNDMuNyAwIDAgNzUuOHptMC04My44bC00My43IDBjLS4zLTEuMS0uOC0yLjEtMS4zLTMuMmw0NS00Ny40IDAgNTAuNnptMC02Mi40bC01MC40IDUzLjNjLTEuMy0uNS0yLjctMS4zLTQtMS42TDQzLjcgMjU5LjhjLjUtMS4zIC41LTIuNyAuNS00czAtMi40LS4zLTMuNWw1Mi05MGMyLjctLjMgNS40LTEuMSA3LjgtMi43bDUwLjEgNTIgMCA5Mi45em0wLTEwMi4zTDEwOCAxNTQuOGMxLjMtMi4xIDIuMS00LjggMi4xLTcuOCAwLS4zLS4zLS44LS4zLTEuMWw0My45LTE1LjggMCA3Mi4xem0wLTgwLjZsLTQzLjcgMTUuOCA0My43LTc1LjUgMCA1OS43em0zMjYuNSAzOS4xbC44IDEuMy0zNS40IDE2Ny4xLTYzLjgtNjcuMiA5OC0xMDEuNSAuMyAuM3pNMjkyLjEgMzU1LjFsMTEuNSAxMS44LTIyLjggMCAxMS4zLTExLjh6bS0uMy0xMS4zbC04My4zLTg1LjQgNzkuNi04NC40IDgzIDg3LjYtNzkuMyA4Mi4yem01LjQgNS45bDc5LjMtODIuMiA2Ny41IDcxLjMtNS45IDI4LjEtMTI0IDAtMTYuOS0xNy4xek00MTAuNyA0NC40YzEuMSAuNSAyLjEgMS4xIDMuNSAxLjNsNTcuOSAxMDAuNyAwIC41YzAgMi45IC44IDUuNiAyLjEgNy44bC05Ny41IDEwMS4yLTgzLTg3LjYgMTE3LjEtMTI0em0tOS4xLTIuMWwtMTEzLjYgMTIwLjMtNTcuMS02MC4zIDE2Ni4zLTYwIDQuMyAwem0tMTIzLjUgMGMyLjcgMi43IDYuMiA0LjMgMTAuMiA0LjNzNy41LTEuNiAxMC4yLTQuM2w3NSAwLTE0OC40IDUzLjYtNTAuOS01My42IDEwMy45IDB6TTE2MS45IDQ3LjlsMS4xLTIuMWMuOS0uMiAxLjgtLjUgMi43LS44bDUxLjIgNTMuOC01NC45IDE5LjggMC03MC43em0wIDc5LjNsNjAuOC0yMiA1OS43IDYzLjItNzkuNiA4NC4xLTQxLTQyLjEgMC04My4zem0wIDkyLjdsMzYuNCAzNy44LTM2LjQgMzguMyAwLTc2LjF6bTAgODcuOWw0Mi4xLTQ0LjUgODIuOCA4Ni0xNy4xIDE3LjctMTA3LjcgMCAwLTU5LjJ6bTcgMTYyLjFjLTEuNi0xLjYtMy41LTIuNy01LjktMy41bC0xLjEtMS42IDAtODkuNyA5OS45IDAtOTEuNiA5NC44LTEuMyAwem0xMjkuOSAwYy0yLjctMi40LTYuNC00LjMtMTAuNC00LjNzLTcuOCAxLjktMTAuNCA0LjNsLTk2LjQgMCA5MS42LTk0LjggMzguMyAwIDkxLjYgOTQuOC0xMDQuMiAwem0xMjAtMTEuOGwtNC4zIDcuNWMtMS4zIC4zLTIuNCAuOC0zLjUgMS4zbC04OS4yLTkxLjkgMTE0LjQgMC0xNy40IDgzem0xMi45LTIyLjJsMTIuOS02MC44IDIyIDAtMzQuOCA2MC44em0zNC44LTY4LjhsLTIwLjQgMCA0LjYtMjEuMiAxNy4xIDE4LjJjLS41IC44LTEuMSAxLjktMS4zIDIuOXptNjYuMi0xMDcuNGwtNTUuNCA5Ni43Yy0xLjMgLjUtMi43IDEuMS00IDEuOWwtMjAuNi0yMiAzNC42LTE2My45IDQ1LjggNzkuM2MtLjMgMS4zLS44IDIuNy0uOCA0LjMgMCAxLjMgLjMgMi40IC41IDMuN3oiXX0scWl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlc2VhcmNoZ2F0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmOCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0yNjIuMiAzNjYuNGMtNi42IDMtMzMuMiA2LTUwLTE0LjItOS4yLTEwLjYtMjUuMy0zMy4zLTQyLjItNjMuNi04LjkgMC0xNC43IDAtMjEuNC0uNmwwIDQ2LjRjMCAyMy41IDYgMjEuMiAyNS44IDIzLjlsMCA4LjFjLTYuOS0uMy0yMy4xLS44LTM1LjYtLjgtMTMuMSAwLTI2LjEgLjYtMzMuNiAuOGwwLTguMWMxNS41LTIuOSAyMi0xLjMgMjItMjMuOWwwLTEwOS40YzAtMjIuNi02LjQtMjEtMjItMjMuOWwwLTguMWMyNS44IDEgNTMuMS0uNiA3MC45LS42IDMxLjcgMCA1NS45IDE0LjQgNTUuOSA0NS42IDAgMjEuMS0xNi43IDQyLjItMzkuMiA0Ny41IDEzLjYgMjQuMiAzMCA0NS42IDQyLjIgNTguOSA3LjIgNy44IDE3LjIgMTQuNyAyNy4yIDE0LjdsMCA3LjN6bTIyLjktMTM1Yy0yMy4zIDAtMzIuMi0xNS43LTMyLjItMzIuMmwwLTMyLjJjMC0xMi4yIDguOC0zMC40IDM0LTMwLjRzMzAuNCAxNy45IDMwLjQgMTcuOWwtMTAuNyA3LjJzLTUuNS0xMi41LTE5LjctMTIuNWMtNy45IDAtMTkuNyA3LjMtMTkuNyAxOS43bDAgMjYuOGMwIDEzLjQgNi42IDIzLjMgMTcuOSAyMy4zIDE0LjEgMCAyMS41LTEwLjkgMjEuNS0yNi44bC0xNy45IDAgMC0xMC43IDMwLjQgMGMwIDIwLjUgNC43IDQ5LjktMzQgNDkuOXpNMTY4LjYgMjc2LjFjLTkuNCAwLTEzLjYtLjMtMjAtLjhsMC02OS43YzYuNC0uNiAxNS0uNiAyMi41LS42IDIzLjMgMCAzNy4yIDEyLjIgMzcuMiAzNC41IDAgMjEuOS0xNSAzNi42LTM5LjcgMzYuNnoiXX0sVml0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpZ25hbC1tZXNzZW5nZXIiLGljb246WzUxMiw1MTIsW10sImU2NjMiLCJNMjU2IDBjLTEzLjMgMC0yNi4zIDEtMzkuMSAzbDMuNyAyMy43QzIzMi4xIDI0LjkgMjQ0IDI0IDI1NiAyNHMyMy45IC45IDM1LjQgMi43TDI5NS4xIDNDMjgyLjMgMSAyNjkuMyAwIDI1NiAwem02MC44IDcuM2wtNS43IDIzLjNjMjMuNCA1LjcgNDUuNCAxNC45IDY1LjQgMjcuMWwxMi41LTIwLjVjLTIyLjEtMTMuNC00Ni40LTIzLjYtNzIuMi0yOS45em03Ni40IDYxLjZjMTkuMSAxNCAzNiAzMC45IDUwLjEgNTAuMWwxOS40LTE0LjJDNDQ3IDgzLjYgNDI4LjQgNjUgNDA3LjMgNDkuNUwzOTMuMSA2OC44em04MS43IDU0LjJsLTIwLjUgMTIuNWMxMi4yIDIwIDIxLjQgNDIgMjcuMSA2NS40bDIzLjMtNS43Yy02LjMtMjUuOC0xNi41LTUwLjEtMjkuOS03Mi4yem0xMC41IDk3LjVjMS44IDExLjUgMi43IDIzLjQgMi43IDM1LjRzLS45IDIzLjktMi43IDM1LjRsMjMuNyAzLjdjMS45LTEyLjcgMy0yNS44IDMtMzkuMXMtMS0yNi4zLTMtMzkuMWwtMjMuNyAzLjd6bS0zMSAxNTUuOWwyMC41IDEyLjVjMTMuNC0yMi4xIDIzLjYtNDYuNCAyOS45LTcyLjJsLTIzLjMtNS43Yy01LjcgMjMuNC0xNC45IDQ1LjQtMjcuMSA2NS40em04LjIgMzAuOGwtMTkuNC0xNC4yYy0xNCAxOS4xLTMwLjkgMzYtNTAuMSA1MC4xbDE0LjIgMTkuNGMyMS4xLTE1LjUgMzkuOC0zNC4xIDU1LjItNTUuMnptLTg2LjEgNDdjLTIwIDEyLjItNDIgMjEuNC02NS40IDI3LjFsNS43IDIzLjNjMjUuOC02LjMgNTAuMS0xNi41IDcyLjItMjkuOWwtMTIuNS0yMC41ek0yOTUuMSA1MDlsLTMuNy0yMy43QzI3OS45IDQ4Ny4xIDI2OCA0ODggMjU2IDQ4OHMtMjMuOS0uOS0zNS40LTIuN0wyMTYuOSA1MDljMTIuNyAxLjkgMjUuOCAzIDM5LjEgM3MyNi4zLTEgMzkuMS0zem0tOTQuMS0yNy42Yy0xNy42LTQuMy0zNC40LTEwLjYtNTAuMS0xOC42bC03LjgtNC0zMi44IDcuNyA1LjUgMjMuNCAyNC4zLTUuN2MxNy40IDguOSAzNS45IDE1LjggNTUuMyAyMC41bDUuNy0yMy4zek05NS40IDQ5NC42TDkwIDQ3MS4zIDQ4LjMgNDgxYy0xMC40IDIuNC0xOS43LTYuOS0xNy4zLTE3LjNsOS43LTQxLjYtMjMuNC01LjUtOS43IDQxLjZDMS4yIDQ4NiAyNiA1MTAuOCA1My44IDUwNC40bDQxLjYtOS43em0tNTAtOTIuOWw3LjctMzIuOC00LTcuOGMtOC0xNS43LTE0LjMtMzIuNS0xOC42LTUwLjFMNy4zIDMxNi43QzEyIDMzNi4xIDE4LjkgMzU0LjcgMjcuNyAzNzJsLTUuNyAyNC4zIDIzLjQgNS41ek0zIDI5NS4xbDIzLjctMy43QzI0LjkgMjc5LjkgMjQgMjY4IDI0IDI1NnMuOS0yMy45IDIuNy0zNS40TDMgMjE2LjlDMSAyMjkuNyAwIDI0Mi43IDAgMjU2czEgMjYuMyAzIDM5LjF6bTI3LjYtOTQuMWM1LjctMjMuNCAxNC45LTQ1LjQgMjcuMS02NS40TDM3LjIgMTIzLjFjLTEzLjQgMjIuMS0yMy42IDQ2LjQtMjkuOSA3Mi4ybDIzLjMgNS43em0xOC45LTk2LjJsMTkuNCAxNC4yYzE0LTE5LjEgMzAuOS0zNiA1MC4xLTUwLjFMMTA0LjcgNDkuNUM4My42IDY1IDY1IDgzLjYgNDkuNSAxMDQuN3ptODYuMS00N2MyMC0xMi4yIDQyLTIxLjQgNjUuNC0yNy4xTDE5NS4yIDcuM2MtMjUuOCA2LjMtNTAuMSAxNi41LTcyLjIgMjkuOWwxMi41IDIwLjV6TTI1NiA0NjRjMTE0LjkgMCAyMDgtOTMuMSAyMDgtMjA4UzM3MC45IDQ4IDI1NiA0OCA0OCAxNDEuMSA0OCAyNTZjMCAzNi40IDkuNCA3MC43IDI1LjggMTAwLjUgMS42IDIuOSAyLjEgNi4yIDEuNCA5LjRsLTIxLjYgOTIuNSA5Mi41LTIxLjZjMy4yLS43IDYuNS0uMiA5LjQgMS40IDI5LjggMTYuNSA2NCAyNS44IDEwMC41IDI1Ljh6Il19LFVpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4aW5nIixpY29uOlszODQsNTEyLFtdLCJmMTY4IiwiTTE2Mi43IDIxMGMtMS44IDMuMy0yNS4yIDQ0LjQtNzAuMSAxMjMuNS00LjkgOC4zLTEwLjggMTIuNS0xNy43IDEyLjVMOS44IDM0NmMtNy43IDAtMTIuMS03LjUtOC41LTE0LjRsNjktMTIxLjNjLjIgMCAuMi0uMSAwLS4zTDI2LjQgMTM0LjRjLTQuMy03LjggLjMtMTQuMSA4LjUtMTQuMWw2NS4xIDBjNy4zIDAgMTMuMyA0LjEgMTggMTIuMkwxNjIuNyAyMTB6TTM4Mi42IDQ2LjFsLTE0NCAyNTMgMCAuMyA5MS42IDE2Ni42YzMuOSA3LjEgLjIgMTQuMS04LjUgMTQuMWwtNjUuMiAwYy03LjYgMC0xMy42LTQtMTgtMTIuMkwxNDYuMSAyOTkuNGMzLjMtNS44IDUxLjUtOTAuOCAxNDQuOC0yNTUuMiA0LjYtOC4xIDEwLjQtMTIuMiAxNy41LTEyLjJsNjUuNyAwYzggMCAxMi4zIDYuNyA4LjUgMTQuMXoiXX0sTzFlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1qcyIsaWNvbjpbNDQ4LDUxMixbImpzLXNxdWFyZSJdLCJmM2I5IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xODAuOSA0NDQuOWMtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVMMTUyIDM4NS43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjYgMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNWwwLTE0My4xIDQyLjEgMCAwIDE0My43YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41em04NS44LTQzTDMwMSAzODIuMWM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjYtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzeiJdfSxqaXQ9TzFlLFdpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250aWNvbnMiLGljb246WzQ0OCw1MTIsW10sImYyODAiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMTg3IDE3Mi45Yy0xOC40IDAtMTkgOS45LTE5IDI3LjRsMCAyMy4zYzAgMi40LTMuNSA0LjQtLjYgNC40bDY3LjQgMC0xMS4xIDM3LjMtNTUuNyAwIDAgMTEyLjljMCA1LjgtMiA2LjcgMy4yIDcuM2w0My41IDQuMSAwIDI1LjEtMTMwLjcgMCAwLTI1LjcgMjEuMy0yYzUuMi0uNiA2LjctMi4zIDYuNy03LjlsMC0xMTEuNGMwLTIuMy0yLjktMi4zLTUuOC0yLjNsLTIyLjIgMCAwLTM3LjQgMjggMCAwLTIxYzAtNDkuNiAyNi41LTcwIDc3LjMtNzAgMzQuMSAwIDY0LjcgOC4yIDY0LjcgNTIuOGwtNTAuNyA2LjFjLjMtMTguNy00LjQtMjMtMTYuMy0yM3ptNzQuMyAyNDEuOGwwLTI1LjEgMjAuNC0yLjZjNS4yLS42IDcuNi0xLjcgNy42LTcuM2wwLTEwNy45YzAtNC4xLTIuOS02LjctNi43LTcuOWwtMjQuMi02LjQgNi43LTI5LjUgODAuMiAwIDAgMTUxLjdjMCA1LjgtMi42IDYuNCAyLjkgNy4zbDE1LjcgMi42IDAgMjUuMS0xMDIuNiAwem04MC44LTI1NS41bDkgMzMuMi03LjMgNy4zLTMxLjItMTYuNi0zMS4yIDE2LjYtNy4zLTcuMyA5LTMzLjItMjEuOC0yNC4yIDMuNS05LjYgMjcuNyAwIDE1LjUtMjggOS4zIDAgMTUuNSAyOCAyNy43IDAgMy41IDkuNi0yMS45IDI0LjJ6Il19LEdpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1cHMiLGljb246WzM4NCw1MTIsW10sImY3ZTAiLCJNMTAzLjIgMzAzYy01LjIgMy42LTMyLjYgMTMuMS0zMi42LTE5bDAtMTA0LTMyLjcgMCAwIDEwMi42YzAgNzQuOSA4MC4yIDUxLjEgOTcuOSAzOWwwLTE0MS42LTMyLjYgMCAwIDEyM3pNNCA3NC44TDQgMjk1LjdjMCAxMDMuNyA3NC45IDEzNS4yIDE4Ny43IDE4NC4xIDExMi40LTQ4LjkgMTg3LjctODAuMiAxODcuNy0xODQuMWwwLTIyMC45QzI2My4xIDEzLjIgOTcuNiAyNS4yIDQgNzQuOHpNMzYyLjEgMjk1LjdjMCA4Ni42LTUzLjIgMTEzLjYtMTcwLjQgMTY1LjMtMTE3LjUtNTEuOC0xNzAuNS03OC43LTE3MC41LTE2NS4zbDAtMTI2LjRjMTAyLjMtOTMuOCAyMzEuNi0xMDAgMzQwLjktODkuOGwwIDIxNi4yek0xNTIuNSAxODguM2wwIDIxMi44IDMyLjcgMCAwLTY4LjdjMjQuNCA3LjMgNzEuNy0yLjYgNzEuNy03OC41IDAtOTcuNC04MC43LTgwLjktMTA0LjQtNjUuNnptMzIuNyAxMTcuM2wwLTEwMC4zYzguNC00LjIgMzguNC0xMi43IDM4LjQgNDkuMyAwIDY3LjktMzYuNCA1MS44LTM4LjQgNTF6bTc5LjEtODYuNGMuMSA0Ny4zIDUxLjYgNDIuNSA1Mi4yIDcwLjQgLjYgMjMuNS0zMC40IDIzLTUwLjggNC45bDAgMzAuMWMzNi4yIDIxLjUgODEuOSA4LjEgODMuMi0zMy41IDEuNy01MS41LTU0LjEtNDYuNi01My40LTczLjIgLjYtMjAuMyAzMC42LTIwLjUgNDguNS0yLjJsMC0yOC40Yy0yOC41LTIyLTc5LjktOS4yLTc5LjcgMzEuOXoiXX0sWWl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFtYXpvbi1wYXkiLGljb246WzY0MCw1MTIsW10sImY0MmMiLCJNMTQgMzI1LjNjMi4zLTQuMiA1LjItNC45IDkuNy0yLjUgMTAuNCA1LjYgMjAuNiAxMS40IDMxLjIgMTYuNyA0MC42IDIwLjIgODMuMyAzNS44IDEyNy40IDQ2LjMgMjAuOCA1IDQxLjkgOSA2My4yIDExLjggMzEuNSA0LjIgNjMuMiA2IDk1IDUuMiAxNy40LS40IDM0LjgtMS44IDUyLjEtMy44IDU2LjItNi42IDExMS4xLTIxIDE2My4zLTQyLjggMi45LTEuMiA1LjktMiA5LjEtMS4yIDYuNyAxLjggOSA5IDQuMSAxMy45LTMgMi43LTYuMiA1LjItOS42IDcuNC0zMC43IDIxLjEtNjQuMiAzNi40LTk5LjYgNDcuOS0yNC41IDcuOS00OS42IDEzLjgtNzUuMSAxNy42LTE3LjYgMi43LTM1LjQgNC4zLTUzLjIgNC44LS44IDAtMS43IC4yLTIuNSAuM2wtMjEuMSAwYy0uOC0uMS0xLjctLjItMi41LS4zLTMuNi0uMi03LjItLjMtMTAuNy0uNC0xNi45LS44LTMzLjctMi41LTUwLjQtNS4zLTI3LjQtNC41LTU0LjMtMTEuNS04MC40LTIwLjktNTMuNy0xOS40LTEwMy4xLTQ4LjktMTQ1LjYtODctMS44LTEuNi0zLTMuOC00LjQtNS43bDAtMnpNMTcyIDY1LjFsLTQuMyAuNmMtMTMuOCAxLjctMjYuOCA2LjktMzggMTUuMS0yLjQgMS43LTQuNiAzLjUtNy4xIDUuNC0uMi0uNC0uMy0uOS0uNC0xLjQtLjQtMi43LS44LTUuNS0xLjMtOC4yLS43LTQuNi0zLTYuNi03LjYtNi42bC0xMS41IDBjLTYuOSAwLTguMiAxLjMtOC4yIDguMmwwIDIwOS4zYzAgMSAwIDIgLjEgMyAuMiAzIDIgNC45IDQuOSA1IDcgLjEgMTQuMSAuMSAyMS4xIDAgMi45IDAgNC43LTIgNS01IC4xLTEgLjEtMiAuMS0zbDAtNzIuNGMxLjEgLjkgMS43IDEuNCAyLjIgMS45IDE3LjkgMTQuOSAzOC41IDE5LjggNjEgMTUuNCAyMC40LTQgMzQuNi0xNi41IDQzLjgtMzQuOSA3LTEzLjkgOS45LTI4LjcgMTAuMy00NC4xIC41LTE3LjEtMS4yLTMzLjktOC4xLTQ5LjgtOC41LTE5LjYtMjIuNi0zMi41LTQzLjktMzYuOS0zLjItLjctNi41LTEtOS44LTEuNS0yLjgtLjEtNS41LS4xLTguMy0uMXpNMTI0LjYgMTA3Yy0uMS0uNyAuMS0xLjMgLjQtMS45cy44LTEuMSAxLjMtMS40YzEzLjctOS41IDI4LjgtMTQuNSA0NS42LTEzLjIgMTQuOSAxLjEgMjcuMSA4LjQgMzMuNSAyNS45IDMuOSAxMC43IDQuOSAyMS44IDQuOSAzMyAwIDEwLjQtLjggMjAuNi00IDMwLjYtNi44IDIxLjMtMjIuNCAyOS40LTQyLjYgMjguNS0xNC0uNi0yNi4yLTYtMzcuNC0xMy45LS42LS4zLTEtLjgtMS4zLTEuNHMtLjQtMS4yLS40LTEuOWMuMS0xNC4xIDAtMjguMSAwLTQyLjJzLjEtMjggMC00Mi4xek0zMzAuMyA2NS4xYy0xIC4xLTIgLjMtMi45IC40LTkuNyAuNC0xOS40IDEuOC0yOC45IDQuMS02LjEgMS42LTEyIDMuOC0xNy45IDUuOC0zLjYgMS4yLTUuNCAzLjgtNS4zIDcuNyAuMSAzLjMtLjEgNi42IDAgOS45IC4xIDQuOCAyLjEgNi4xIDYuOCA0LjkgNy44LTIgMTUuNi00LjIgMjMuNS01LjcgMTIuMy0yLjMgMjQuNy0zLjMgMzcuMi0xLjQgNi41IDEgMTIuNiAyLjkgMTYuOCA4LjQgMy43IDQuOCA1LjEgMTAuNSA1LjMgMTYuNCAuMyA4LjMgLjIgMTYuNiAuMyAyNC45IDAgLjUtLjEgLjktLjIgMS40LS41LS4xLS45IDAtMS4zLS4xLTEwLjUtMi42LTIxLjItNC4yLTMyLTQuOS0xMS4zLS42LTIyLjUgLjEtMzMuMyAzLjktMTIuOSA0LjUtMjMuMyAxMi4zLTI5LjQgMjQuOS00LjcgOS44LTUuNCAyMC4yLTMuOSAzMC43IDIgMTQgOSAyNC44IDIxLjQgMzEuNyAxMS45IDYuNiAyNC44IDcuNCAzNy45IDUuNCAxNS4xLTIuMyAyOC41LTguNyA0MC4zLTE4LjQgLjUtLjQgMS0uOCAxLjYtMS4xIC42IDMuOCAxLjEgNy40IDEuOCAxMSAuNiAzLjEgMi41IDUuMSA1LjQgNS4yIDUuNCAuMSAxMC45IC4xIDE2LjMgMCAxLjMgMCAyLjUtLjUgMy40LTEuNHMxLjQtMi4xIDEuNS0zLjNjLjEtLjkgLjEtMS45IC4xLTIuOGwwLTEwNmMwLTQuMy0uMy04LjYtLjktMTIuOS0xLjktMTIuOS03LjQtMjMuNS0xOS0zMC40LTYuNy00LTE0LjEtNi0yMS44LTcuMS0zLjYtLjUtNy4yLS44LTEwLjgtMS4zLTMuOSAuMS03LjkgLjEtMTEuOSAuMXptMzUgMTI3LjdjMCAuNi0uMSAxLjItLjMgMS43cy0uNyAxLTEuMiAxLjNjLTExLjIgOC4xLTIzLjUgMTMuNS0zNy40IDE0LjktNS43IC42LTExLjQgLjQtMTYuOC0xLjgtMy0xLjEtNS42LTIuOS03LjgtNS4ycy0zLjctNS4xLTQuNi04LjFjLTItNi4zLTItMTMuMS0uMS0xOS40IDIuNS04LjMgOC40LTEzIDE2LjQtMTUuNiA4LTIuNCAxNi41LTMuMiAyNC44LTIuMiA4LjQgLjcgMTYuNiAyLjMgMjUgMy40IDEuNiAuMiAyLjEgMSAyLjEgMi42LS4xIDQuOCAwIDkuNSAwIDE0LjNzLS4yIDkuNC0uMSAxNC4xek02MjUuMiAzMjIuMmMtMS01LTQuOC02LjktOS4xLTguMy02LjgtMi4xLTEzLjktMy41LTIxLTMuOS0xMy4xLTEuMS0yNi4zLS41LTM5LjIgMS45LTE0LjMgMi43LTI3LjkgNy4zLTQwIDE1LjYtMS40IC45LTIuNyAyLjEtMy43IDMuNS0uNCAuNi0uNiAxLjMtLjcgMS45czAgMS40IC4yIDIuMWMuNCAxLjUgMi4xIDEuOSAzLjYgMS44IC43IDAgMS41IDAgMi4yLS4xIDcuOC0uOCAxNS41LTEuNyAyMy4zLTIuNSAxMS40LTEuMSAyMi45LTEuOCAzNC4zLS45IDQuOSAuNCA5LjcgMS4zIDE0LjQgMi43IDUuMSAxLjQgNy40IDUuMiA3LjYgMTAuNCAuNCA4LTEuNCAxNS43LTMuNSAyMy4zLTQuMSAxNS40LTEwIDMwLjMtMTUuOCA0NS4xLS40IDEtLjggMi0xIDMtLjUgMi45IDEuMiA0LjggNC4xIDQuMSAxLjgtLjQgMy40LTEuMyA0LjgtMi41IDQuNS00LjIgOC44LTguNyAxMi43LTEzLjQgMTIuOC0xNi40IDIwLjMtMzUuMyAyNC43LTU1LjYgLjgtMy42IDEuNC03LjMgMi4xLTEwLjlsMC0xNy4zek00OTMuMSAxOTljLTEyLjktMzUuNy0yNS44LTcxLjQtMzguNy0xMDcuMi0yLTUuNy00LjItMTEuMy02LjMtMTYuOS0xLjEtMi45LTMuMi00LjgtNi40LTQuOC03LjYtLjEtMTUuMi0uMi0yMi45LS4xLTIuNSAwLTMuNyAyLTMuMiA0LjUgLjUgMi4xIDEuMSA0LjEgMS45IDYuMSAxOS42IDQ4LjUgMzkuMyA5NyA1OS4xIDE0NS41IDEuNyA0LjEgMi4xIDcuNiAuMiAxMS44LTMuMyA3LjMtNS45IDE1LTkuMyAyMi4zLTMgNi41LTggMTEuNC0xNS4yIDEzLjMtNSAxLjMtMTAuMiAxLjctMTUuNCAxLjEtMi41LS4yLTUtLjgtNy41LTEtMy40LS4yLTUuMSAxLjMtNS4yIDQuOC0uMSAzLjMtLjEgNi42IDAgOS45IC4xIDUuNSAyIDggNy40IDguOSA1LjYgMS4xIDExLjIgMS44IDE2LjkgMiAxNy4xIC40IDMwLjctNi41IDM5LjUtMjEuNCAzLjUtNS45IDYuNi0xMiA5LjItMTguNCAyMy43LTU5LjggNDcuMi0xMTkuNyA3MC42LTE3OS42IC43LTEuOCAxLjMtMy42IDEuNi01LjUgLjQtMi44LS45LTQuNC0zLjctNC40LTYuNi0uMS0xMy4zIDAtMTkuOSAwLTEuNy0uMS0zLjQgLjMtNC43IDEuM3MtMi40IDIuMy0zIDMuOWMtLjUgMS40LTEuMSAyLjctMS42IDQuMWwtMzQuOCAxMDBjLTIuNSA3LjItNS4xIDE0LjUtNy43IDIyLjItLjQtMS4xLS42LTEuNy0uOS0yLjR6Il19LFppdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYW5kb3JhIixpY29uOlszODQsNTEyLFtdLCJlN2RhIiwiTTIwMS4zIDMyTDAgMzIgMCA0ODAgMTIwLjIgNDgwYzExLjIgMCAyMC4zLTkuMSAyMC4zLTIwLjNsMC04Ni4xIDMwLjEgMGMxNDcuMSAwIDIwNy4zLTgyLjkgMjA3LjMtMTc5LjkgMC0xMTkuNy05MC45LTE2MS44LTE3Ni41LTE2MS44eiJdfSxYaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbmlkIixpY29uOls0NDgsNTEyLFtdLCJmMTliIiwiTTI3MS41IDQzMmwtNjggMzJDODguNSA0NTMuNyAwIDM5Mi41IDAgMzE4LjIgMCAyNDYuNyA4Mi41IDE4Ny4yIDE5MS43IDE3My45bDAgNDNjLTcxLjUgMTIuNS0xMjQgNTMtMTI0IDEwMS4zIDAgNTEgNTguNSA5My4zIDEzNS43IDEwM2wwLTM0MCA2OC0zMy4yIDAgMzg0IC4xIDB6TTQ0OCAyOTFsLTEzMS4zLTI4LjUgMzYuOC0yMC43Yy0xOS41LTExLjUtNDMuNS0yMC03MC0yNC44bDAtNDNjNDYuMiA1LjUgODcuNyAxOS41IDEyMC4zIDM5LjNsMzUtMTkuOCA5LjIgOTcuNXoiXX0sUWl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZzY28iLGljb246WzUxMiw1MTIsW10sImU3ZGQiLCJNMzU3LjYgMjU2YzAtMjcuMS0xMC42LTUyLjUtMjkuNy03MS43cy00NC42LTI5LjctNzEuNy0yOS43bC0uMSAwYy0yNy4xIDAtNTIuNiAxMC42LTcxLjcgMjkuN3MtMjkuNyA0NC42LTI5LjcgNzEuN2MwIDI3LjEgMTAuNiA1Mi41IDI5LjcgNzEuNyAxOS4yIDE5LjIgNDQuNiAyOS43IDcxLjcgMjkuN2wuMSAwYzI3LjEgMCA1Mi42LTEwLjYgNzEuNy0yOS43IDE5LjItMTkuMiAyOS43LTQ0LjYgMjkuNy03MS43ek0xNzYuMyA0ODIuMWMyMyA4LjEgNDcgMTIuNiA3MS42IDEzLjRsMC01OS4xYy0xNy4xLS43LTMzLjUtMy44LTQ5LTguOWwtMjIuNiA1NC42em0xMzctNTQuNmMtMTUuNSA1LjEtMzIgOC4yLTQ5IDguOWwwIDU5LjFjMjQuNi0uOCA0OC42LTUuMyA3MS42LTEzLjRsLTIyLjYtNTQuNnpNOTIuNSA0MzEuMmMyMC4yIDE4LjkgNDMuMyAzNCA2OC43IDQ1bDIyLjUtNTQuNWMtMTguMy03LjktMzUuMS0xOC44LTQ5LjgtMzEuOUw5Mi41IDQzMS4yem0yODUuOS00MS40Yy0xNC42IDEzLjItMzEuNCAyNC00OS44IDMxLjlsMjIuNSA1NC41YzI1LjQtMTEgNDguNC0yNi4xIDY4LjctNDVsLTQxLjQtNDEuNHpNMTQ1LjQgMzc4LjJjMTMuNiAxMi4xIDI5IDIxLjkgNDUuOCAyOSAxOCA3LjYgMzcuMSAxMiA1Ni43IDEyLjlsMC00Ni44Yy0yNi40LTEuOC01MC4zLTEyLjMtNjkuMS0yOC42bC0zMy40IDMzLjR6bTE4OC0zMy40Yy0xOC44IDE2LjMtNDIuNyAyNi44LTY5LjEgMjguNmwwIDQ2LjhjMTkuNi0uOSAzOC43LTUuMyA1Ni43LTEyLjkgMTYuOC03LjEgMzIuMi0xNi45IDQ1LjgtMjlsLTMzLjQtMzMuNHpNMzguNSAzNTYuNmMxMC43IDIzLjIgMjUgNDQuMyA0Mi41IDYzLjFsNDEuMy00MS4zYy0xMi40LTEzLjQtMjIuOS0yOC42LTMwLjktNDUuMkwzOC41IDM1Ni42em0zODIuNC0yMy41Yy04IDE2LjYtMTguNSAzMS45LTMwLjkgNDUuMmw0MS4zIDQxLjNjMTcuNS0xOC43IDMxLjgtMzkuOSA0Mi41LTYzLjFsLTUyLjktMjMuNXptLTMzMS02OWMxLjEgMTguOCA1LjQgMzcuMiAxMi44IDU0LjUgNy41IDE3LjggMTggMzQgMzEuMiA0OC4ybDMzLjUtMzMuNWMtMTYuNC0xOC44LTI2LjktNDIuOC0yOC43LTY5LjJsLTQ4LjggMHptMjgzLjcgMGMtMS44IDI2LjQtMTIuMyA1MC40LTI4LjcgNjkuMmwzMy41IDMzLjVjMTMuMS0xNC4yIDIzLjYtMzAuNCAzMS4yLTQ4LjIgNy4zLTE3LjQgMTEuNi0zNS43IDEyLjctNTQuNWwtNDguNyAwem0tMzU3LjEgMGMuOSAyNi43IDYuMSA1Mi43IDE1LjYgNzcuNUw4NSAzMTguMmMtNi40LTE3LTEwLjMtMzUuMS0xMS4zLTU0bC01Ny4xIDB6bTQyMi4xIDBjLTEgMTguOS01IDM3LjEtMTEuMyA1NGw1Mi44IDIzLjVjOS41LTI0LjggMTQuNy01MC44IDE1LjYtNzcuNWwtNTcuMSAwek0zMi4xIDE3MC40Yy05LjUgMjQuOC0xNC43IDUwLjgtMTUuNiA3Ny41bDU3LjEgMGMxLTE4LjkgNS0zNy4xIDExLjMtNTRMMzIuMSAxNzAuNHptMTAxLjctMjUuMmMtMTMuMSAxNC4yLTIzLjYgMzAuNC0zMS4yIDQ4LjItNy4zIDE3LjQtMTEuNiAzNS43LTEyLjggNTQuNWw0OC44IDBjMS44LTI2LjQgMTIuMy01MC40IDI4LjctNjkuMmwtMzMuNS0zMy41em0yMTEuMSAzMy41YzE2LjQgMTguOCAyNi45IDQyLjggMjguNyA2OS4ybDQ4LjcgMGMtMS4xLTE4LjgtNS40LTM3LjItMTIuNy01NC41LTcuNS0xNy44LTE4LTM0LTMxLjItNDguMmwtMzMuNSAzMy41em04Mi40IDE1LjJjNi40IDE3IDEwLjMgMzUuMSAxMS4zIDU0bDU3LjEgMGMtLjktMjYuNy02LjEtNTIuNy0xNS42LTc3LjVsLTUyLjggMjMuNXpNODEgOTIuM0M2My40IDExMSA0OS4yIDEzMi4yIDM4LjUgMTU1LjRsNTIuOSAyMy41YzgtMTYuNiAxOC41LTMxLjkgMzAuOS00NS4yTDgxIDkyLjN6bTMwOSA0MS4zYzEyLjQgMTMuNCAyMi45IDI4LjYgMzAuOSA0NS4ybDUyLjktMjMuNWMtMTAuNy0yMy4yLTI1LTQ0LjMtNDIuNS02My4xTDM5MCAxMzMuN3pNMjQ4IDkxLjhjLTE5LjYgLjktMzguNyA1LjMtNTYuNyAxMi45LTE2LjggNy4xLTMyLjIgMTYuOS00NS44IDI5bDMzLjQgMzMuNGMxOC44LTE2LjMgNDIuNy0yNi44IDY5LjEtMjguNmwwLTQ2Ljd6bTE2LjMgNDYuN2MyNi40IDEuOCA1MC4zIDEyLjMgNjkuMSAyOC42bDMzLjQtMzMuNGMtMTMuNi0xMi4xLTI5LTIxLjktNDUuOC0yOS0xOC03LjYtMzcuMS0xMi01Ni43LTEyLjlsMCA0Ni43ek0xNjEuMiAzNS44Yy0yNS40IDExLTQ4LjQgMjYuMS02OC43IDQ1bDQxLjQgNDEuNGMxNC43LTEzLjIgMzEuNC0yNCA0OS44LTMxLjlMMTYxLjIgMzUuOHpNMzI4LjYgOTAuM2MxOC4zIDcuOSAzNS4xIDE4LjggNDkuOCAzMS45bDQxLjQtNDEuNGMtMjAuMi0xOC45LTQzLjMtMzQtNjguNy00NUwzMjguNiA5MC4zek0yNDggMTYuNGMtMjQuNiAuOC00OC42IDUuMy03MS42IDEzLjRsMjIuNiA1NC42YzE1LjUtNS4xIDMyLTguMiA0OS04LjlsMC01OS4xem0xNi4zIDU5LjFjMTcuMSAuNyAzMy41IDMuOCA0OSA4LjlsMjIuNi01NC42Yy0yMy04LjEtNDctMTIuNi03MS42LTEzLjRsMCA1OS4xek01MTIuMiAyNjQuMmwtLjIgMEM1MDcuOCAzOTkgMzk5LjIgNTA3LjcgMjY0LjMgNTExLjlsMCAuMS0xNi4zIDAgMC0uMUMxMTMuMSA1MDcuNyA0LjUgMzk5IC4yIDI2NC4xbC0uMiAwIDAtMTYuMyAuMiAwQzQuNSAxMTMgMTEzLjEgNC4zIDI0OCAuMWwwLS4xIDE2LjMgMCAwIC4xQzM5OS4yIDQuMyA1MDcuOCAxMTMgNTEyIDI0Ny45bC4yIDAgMCAxNi4zeiJdfSxLaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWJ1bnR1IixpY29uOls1NzYsNTEyLFtdLCJmN2RmIiwiTTQ2OS4yIDc1YzAtMjAuMS04LTM5LjMtMjIuMi01My41cy0zMy40LTIyLjItNTMuNS0yMi4yLTM5LjMgOC01My41IDIyLjItMjIuMiAzMy40LTIyLjIgNTMuNWMwIDIwLjEgOCAzOS4zIDIyLjEgNTMuNXMzMy40IDIyLjEgNTMuNSAyMi4xIDM5LjMtOCA1My41LTIyLjEgMjIuMS0zMy40IDIyLjEtNTMuNWwuMSAwem0tMzE1IDE2NS43YTc1LjYgNzUuNiAwIDEgMCAtMTUxLjIgMCA3NS42IDc1LjYgMCAxIDAgMTUxLjIgMHpNNTcgMzQ2YzE4LjYgNDYuOSA1MSA4NyA5MyAxMTUuMXM5MS41IDQyLjYgMTQyIDQxLjdjLTE0LjctMTguNi0yMi45LTQxLjUtMjMuMi02NS4yLTYuOC0uOS0xMy4zLTIuMS0xOS41LTMuNC0yNi44LTUuNy01MS45LTE3LjMtNzMuNi0zNHMtMzkuMy0zOC4xLTUxLjctNjIuNWMtMjAuOSA5LjktNDQuNSAxMi44LTY3LjEgOC4ybC4xIC4xem0zOTUuMSA4OS44YTc1LjYgNzUuNiAwIDEgMCAtMTUxLjIgMCA3NS42IDc1LjYgMCAxIDAgMTUxLjIgMHpNNDQ0IDM1MS42YzE4LjUgMTQuOCAzMS42IDM1LjIgMzcuMiA1OC4yIDMzLjMtNDEuMyA1Mi42LTkyLjIgNTQuOC0xNDUuMnMtMTIuNS0xMDUuNC00Mi4yLTE0OS40Yy04LjYgMjEuNS0yNCAzOS42LTQzLjggNTEuNiAxNS40IDI4LjYgMjIuOSA2MC44IDIxLjkgOTMuMnMtMTAuNyA2NC0yOCA5MS42bC4xIDB6TTEwMS4xIDEzNS40YzEyLjQgMi43IDI0LjMgNy41IDM1LjEgMTQuMyAxNi42LTI0LjIgMzguOS00NC4xIDY0LjgtNThTMjU1LjggNzAuNCAyODUuMiA3MGMuMi01LjkgLjktMTEuOSAyLTE3LjcgMy42LTE2LjcgMTEuMS0zMi4zIDIxLjgtNDUuNS00Ny43LTMuOC05NS40IDYtMTM3LjYgMjguNVM5NC4zIDkxLjcgNzAuOCAxMzMuNGMyLjctLjIgNS4zLS4zIDgtLjMgNy41IDAgMTUgLjggMjIuNCAyLjNsLS4xIDB6Il19LEppdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aWFjb2luIixpY29uOlszODQsNTEyLFtdLCJmMjM3IiwiTTM4NCAzMmwtNjQgMC04MC43IDE5Mi05NC41IDAtODAuOC0xOTItNjQgMCA0OCAxMTItNDggMCAwIDQ4IDY4LjUgMCAxMy44IDMyLTgyLjMgMCAwIDQ4IDEwMi44IDAgODkuMiAyMDggODkuMi0yMDggMTAyLjggMCAwLTQ4LTgyLjMgMCAxMy44LTMyIDY4LjUgMCAwLTQ4LTQ4IDAgNDgtMTEyek0xOTIgMzM2bC0yNy02NCA1NCAwLTI3IDY0eiJdfSxlb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiemhpaHUiLGljb246WzY0MCw1MTIsW10sImY2M2YiLCJNMTcwLjUgMTQ4LjFsMCAyMTcuNSAyMy40IDAgNy43IDI2LjQgNDItMjYuNCA0OS41IDAgMC0yMTcuNS0xMjIuNyAwem05Ny44IDE5My45bC0yNy45IDAtMjcuOSAxNy41LTUuMS0xNy41LTExLjkgMCAwLTE3MC4zIDcyLjggMCAwIDE3MC4zek0xNDkuOCAyNDcuN2wtNTIuMyAwYzEuNy0yNy4xIDIuMi01MS42IDIuMi03My41bDUxLjIgMHMyLTIyLjYtOC42LTIyLjNsLTg4LjUgMGMzLjUtMTMuMSA3LjktMjYuNyAxMy4xLTQwLjcgMCAwLTI0LjEgMC0zMi4zIDIxLjYtMy40IDguOS0xMy4yIDQzLjEtMzAuNyA3OC4xIDUuOS0uNiAyNS40LTEuMiAzNi44LTIyLjIgMi4xLTUuOSAyLjUtNi43IDUuMS0xNC41bDI4LjkgMGMwIDEwLjUtMS4yIDY2LjktMS43IDczLjRsLTUyLjMgMGMtMTEuNyAwLTE1LjYgMjMuNi0xNS42IDIzLjZsNjUuNiAwYy00LjQgNDkuOS0yOCA5MS45LTcwLjggMTI1LjEgMjAuNSA1LjkgNDAuOS0uOSA1MS05LjkgMCAwIDIzLTIwLjkgMzUuNi02OS4zbDU0IDY0LjlzNy45LTI2LjktMS4yLTQwYy03LjYtOC45LTI4LjEtMzMuMS0zNi44LTQxLjhMODcuOSAzMTJjNC40LTE0IDctMjcuNiA3LjktNDAuN2w2MS42IDBzLS4xLTIzLjYtNy42LTIzLjZsMCAwem00MTItMS42YzIwLjgtMjUuNiA0NS01OC42IDQ1LTU4LjZzLTE4LjYtMTQuOC0yNy40LTQuMWMtNiA4LjItMzYuOCA0OC4yLTM2LjggNDguMmwxOS4yIDE0LjR6TTQxMS44IDE4N2MtOS04LjItMjUuOSAyLjEtMjUuOSAyLjFzMzkuNSA1NSA0MS4xIDU3LjRsMTkuNS0xMy43cy0yNS43LTM3LjYtMzQuNy00NS45bDAgMCAwIDB6TTY0MCAyNTguNGMtMTkuOCAwLTEzMC45IC45LTEzMS4xIC45bDAtMTAxYzQuOCAwIDEyLjQtLjQgMjIuOC0xLjIgNDAuOS0yLjQgNzAuMS00IDg3LjgtNC44IDAgMCAxMi4yLTI3LjItLjYtMzMuNC0zLjEtMS4yLTIzLjIgNC42LTIzLjIgNC42cy0xNjUuMiAxNi41LTIzMi40IDE4YzEuNiA4LjggNy42IDE3LjEgMTUuOCAxOS42IDEzLjMgMy41IDIyLjcgMS43IDQ5LjIgLjkgMjQuOC0xLjYgNDMuNy0yLjQgNTYuNS0yLjRsMCA5OS44LTEzMy41IDBzMi44IDIyLjMgMjUuNSAyMi45bDEwNy45IDAgMCA3MC45YzAgMTQtMTEuMiAyMi0yNC41IDIxLjEtMTQuMSAuMS0yNi4xLTEuMS00MS43LTEuOCAyIDQgNi4zIDE0LjQgMTkuMyAyMS44IDkuOSA0LjggMTYuMiA2LjYgMjYgNi42IDI5LjYgMCA0NS43LTE3LjMgNDQuOS00NS4zbDAtNzMuMyAxMjIuNCAwYzkuNyAwIDguNy0yMy44IDguNy0yMy44bDAgMHoiXX0sdG90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhbmRleCIsaWNvbjpbMjU2LDUxMixbXSwiZjQxMyIsIk0xNTMuMSAzMTUuOEw2NS43IDUxMiAyIDUxMiA5OCAzMDIuMkM1Mi45IDI3OS4zIDIyLjggMjM3LjggMjIuOCAxNjEuMSAyMi43IDUzLjcgOTAuOCAwIDE3MS43IDBsODIuMyAwIDAgNTEyLTU1LjEgMCAwLTE5Ni4yLTQ1LjggMHpNMTk4LjkgNDYuNWwtMjkuNCAwYy00NC40IDAtODcuNCAyOS40LTg3LjQgMTE0LjYgMCA4Mi4zIDM5LjQgMTA4LjggODcuNCAxMDguOGwyOS40IDAgMC0yMjMuNHoiXX0sYW90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpeGl2IixpY29uOls0NDgsNTEyLFtdLCJlNjQwIiwiTTk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjU2YzAtNTMtNDMtOTYtOTYtOTZMOTYgMzJ6bTc3LjcgMjE3LjNhNjAuMSA2MC4xIDAgMSAwIDEyMC4zIDAgNjAuMSA2MC4xIDAgMSAwIC0xMjAuMyAwek0xMTkuMSAzODcuOGMtLjMtLjgtLjUtMS43LS41LTIuNmwwLTI0NC4zYzAtMS44IC43LTMuNiAyLTQuOXMzLTIgNC45LTJsMTYuOSAwYzEuMiAwIDIuMyAuMyAzLjMgLjhzMS45IDEuMyAyLjUgMi4zbDE0IDIxLjhjMTkuNy0xNS42IDQ0LjUtMjUgNzEuNi0yNSA2My42IDAgMTE1LjIgNTEuNiAxMTUuMiAxMTUuMlMyOTcuNSAzNjQuNSAyMzMuOCAzNjQuNWMtMjIgMC00Mi42LTYuMi02MC4xLTE2LjlsMCAzNy42YzAgLjktLjIgMS44LS41IDIuNnMtLjkgMS42LTEuNSAyLjItMS40IDEuMS0yLjIgMS41LTEuNyAuNS0yLjYgLjVsLTQxLjMgMGMtLjkgMC0xLjgtLjItMi42LS41cy0xLjYtLjktMi4yLTEuNS0xLjEtMS40LTEuNS0yLjJ6Il19LHJvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuYWkiLGljb246WzUxMiw1MTIsW10sImU3Y2YiLCJNMTk2LjQgMTg1LjhsMC00OC42YzAtNC4xIDEuNS03LjIgNS4xLTkuMmw5Ny44LTU2LjNjMTMuMy03LjcgMjkuMi0xMS4zIDQ1LjYtMTEuMyA2MS40IDAgMTAwLjQgNDcuNiAxMDAuNCA5OC4zIDAgMy42IDAgNy43LS41IDExLjhMMzQzLjMgMTExLjFjLTYuMS0zLjYtMTIuMy0zLjYtMTguNCAwTDE5Ni40IDE4NS44ek00MjQuNyAzNzUuMmwwLTExNi4yYzAtNy4yLTMuMS0xMi4zLTkuMi0xNS45TDI4NyAxNjguNCAzMjkgMTQ0LjNjMy42LTIgNi43LTIgMTAuMiAwTDQzNyAyMDAuN2MyOC4yIDE2LjQgNDcuMSA1MS4yIDQ3LjEgODUgMCAzOC45LTIzIDc0LjgtNTkuNCA4OS42bDAgMHpNMTY2LjIgMjcyLjhsLTQyLTI0LjZjLTMuNi0yLTUuMS01LjEtNS4xLTkuMmwwLTExMi42YzAtNTQuOCA0Mi05Ni4zIDk4LjgtOTYuMyAyMS41IDAgNDEuNSA3LjIgNTguNCAyMEwxNzUuNCAxMDguNWMtNi4xIDMuNi05LjIgOC43LTkuMiAxNS45bDAgMTQ4LjUgMCAwem05MC40IDUyLjJsLTYwLjItMzMuOCAwLTcxLjcgNjAuMi0zMy44IDYwLjIgMzMuOCAwIDcxLjctNjAuMiAzMy44em0zOC43IDE1NS43Yy0yMS41IDAtNDEuNS03LjItNTguNC0yMGwxMDAuOS01OC40YzYuMS0zLjYgOS4yLTguNyA5LjItMTUuOWwwLTE0OC41IDQyLjUgMjQuNmMzLjYgMiA1LjEgNS4xIDUuMSA5LjJsMCAxMTIuNmMwIDU0LjgtNDIuNSA5Ni4zLTk5LjMgOTYuM2wwIDB6TTE3My44IDM2Ni41TDc2LjEgMzEwLjJjLTI4LjItMTYuNC00Ny4xLTUxLjItNDcuMS04NSAwLTM5LjQgMjMuNi03NC44IDU5LjktODkuNmwwIDExNi43YzAgNy4yIDMuMSAxMi4zIDkuMiAxNS45bDEyOCA3NC4yLTQyIDI0LjFjLTMuNiAyLTYuNyAyLTEwLjIgMHptLTUuNiA4NGMtNTcuOSAwLTEwMC40LTQzLjUtMTAwLjQtOTcuMyAwLTQuMSAuNS04LjIgMS0xMi4zbDEwMC45IDU4LjRjNi4xIDMuNiAxMi4zIDMuNiAxOC40IDBsMTI4LjUtNzQuMiAwIDQ4LjZjMCA0LjEtMS41IDcuMi01LjEgOS4ybC05Ny44IDU2LjNjLTEzLjMgNy43LTI5LjIgMTEuMy00NS42IDExLjNsMCAwem0xMjcgNjAuOWM2MiAwIDExMy43LTQ0IDEyNS40LTEwMi40IDU3LjMtMTQuOSA5NC4yLTY4LjYgOTQuMi0xMjMuNCAwLTM1LjgtMTUuNC03MC43LTQzLTk1LjcgMi42LTEwLjggNC4xLTIxLjUgNC4xLTMyLjMgMC03My4yLTU5LjQtMTI4LTEyOC0xMjgtMTMuOCAwLTI3LjEgMi00MC40IDYuNy0yMy0yMi41LTU0LjgtMzYuOS04OS42LTM2LjktNjIgMC0xMTMuNyA0NC0xMjUuNCAxMDIuNC01Ny4zIDE0LjgtOTQuMiA2OC42LTk0LjIgMTIzLjQgMCAzNS44IDE1LjQgNzAuNyA0MyA5NS43LTIuNiAxMC44LTQuMSAyMS41LTQuMSAzMi4zIDAgNzMuMiA1OS40IDEyOCAxMjggMTI4IDEzLjggMCAyNy4xLTIgNDAuNC02LjcgMjMgMjIuNSA1NC44IDM2LjkgODkuNiAzNi45eiJdfSxpb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2l0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUxMiIsIk0wIDMybDY5LjcgMTE4LjgtNTguOS0xMS41IDY5LjggOTFjLTMgMTctMyAzNC40IDAgNTEuNGwtNjkuOCA5MSA1OC45LTExLjUtNjkuNyAxMTguOCAxMTguOC02OS43LTExLjUgNTguOSA5MS02OS44YzE3IDMgMzQuNSAzIDUxLjUgMGw5MSA2OS44LTExLjUtNTguOSAxMTguNyA2OS43LTY5LjctMTE4LjggNTguOSAxMS41LTY5LjgtOTFjMy0xNyAzLTM0LjQgMC01MS40bDY5LjgtOTEtNTguOSAxMS41IDY5LjctMTE4LjgtMTE4LjcgNjkuNyAxMS41LTU4LjktOTEuMSA2OS45Yy04LjUtMS41LTE3LjEtMi4zLTI1LjctMi4zcy0xNy4yIC44LTI1LjcgMi4zTDEwNy4yIDQyLjggMTE4LjggMTAxLjcgMCAzMnpNMjI0IDM4MC4yYTEyNC4yIDEyNC4yIDAgMSAxIDAtMjQ4LjQgMTI0LjIgMTI0LjIgMCAxIDEgMCAyNDguNHptMC0yMTEuOGE4Ny42IDg3LjYgMCAxIDAgMCAxNzUuMSA4Ny42IDg3LjYgMCAxIDAgMC0xNzUuMXoiXX0sb290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5mYy1kaXJlY3Rpb25hbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMCIsIk0yMTEuOCA0ODguNmMxLjYgMi41IDIuMSA1LjYgMS40IDguNS0uNiAyLjktMi40IDUuNS00LjkgNy4xLTIuNiAxLjYtNS42IDIuMS04LjYgMS41LTYxLjQtMTMuOS0xMTUuNi00OS45LTE1Mi4yLTEwMS4yUy01LjQgMjkwLjMgMS42IDIyNy43YzctNjIuNyAzNi44LTEyMC41IDgzLjctMTYyLjUgNDYuOS00MiAxMDcuNy02NS4yIDE3MC43LTY1LjIgMS41IDAgMi4xIC4zIDQuMyAuOSAxLjQgLjYgMS44IDEuNCAzLjcgMi41IDEuMSAxLjEgMS45IDIuMyAyLjUgMy43IC41IDEuNCAuOCAyLjggLjggNC4zbDAgMTAxIDI0LjUtMjUuOWMxLTEuMSAyLjItMiAzLjYtMi42IDEuMy0uNiAyLjgtLjkgNC4zLTEgMS41LS4xIDIuOSAuMiA0LjMgLjdzMi43IDEuMyAzLjggMi40YzEgMSAxLjkgMi4yIDIuNSAzLjYgLjYgMS4zIDEgMi44IDEgNC4zcy0uMiAzLS43IDQuM2MtLjYgMS40LTEuNCAyLjYtMi40IDMuN2wtNDQgNDYuNmMtMS4xIDEuMS0yLjMgMi0zLjcgMi42LTEuNSAuNi0zIC45LTUuNCAuOS0uNiAwLTIuMi0uMy0zLjYtLjlzLTIuNy0xLjUtMy43LTIuNmwtNDQuMS00Ni42Yy0yLTIuMi0zLjEtNS4xLTMtOC4xIDAtMyAxLjMtNi43IDMuNS03LjkgMi4yLTIuMSA1LjEtMy4yIDguMS0zLjEgMyAuMSA1LjggMS4zIDcuOSAzLjVsMjQuNSAyNiAwLTg5LjVjLTU2LjQgMi44LTEwOS44IDI1LjgtMTUwLjUgNjUtNDAuNiAzOS4xLTY1LjcgOTEuNy03MC42IDE0Ny45UzM0LjQgMzQ4LjEgNjcuNyAzOTMuN2MzMi40IDQ1LjUgODIgNzcuNSAxMzcgODkuOSAyLjkgLjcgNS41IDIuNSA3LjEgNXpNMTcxLjQgMTI2LjFjLS44IDEuMy0xLjkgMi40LTMuMSAzLjItMjAuNSAxMy45LTM3LjIgMzIuNi00OC44IDU0LjVzLTE3LjcgNDYuMy0xNy43IDcxLjEgNi4xIDQ5LjIgMTcuNyA3MC4yYzExLjYgMjIuOCAyOC4zIDQxLjUgNDguOCA1NS40IDIuNSAxLjcgNC4yIDQuMyA0LjcgNy4zIC42IDIuOS0uOSA2LTEuNyA4LjQtMS43IDIuNS01LjIgNC4yLTcuMyAzLjktMi45IDEuNC02IC44LTguNC0uOS0yMy42LTE2LTQyLjgtMzcuNS01Ni4xLTYyLjctMTMuMy0yNS4xLTIwLjMtNTMuMS0yMC4zLTgxLjYgMC0yOC40IDctNTYuNSAyMC4zLTgxLjYgMTMuMy0yNS4yIDMyLjUtNDYuNyA1Ni4xLTYyLjcgMS4yLS44IDIuNi0xLjQgNC0xLjggMS41LS4zIDMtLjMgNC41IDAgMS40IC4yIDIuOCAuOCA0LjEgMS42czIuMyAxLjkgMy4yIDMuMWMuOCAxLjIgMS40IDIuNiAxLjcgNC4xcy4zIDMgMCA0LjRjLS4zIDEuNS0uOCAyLjktMS43IDQuMXpNMzQwLjkgMzgzLjVjLjgtMS4yIDEuOS0yLjMgMi4yLTMuMWwwLS4xYzIxLjMtMTQgMzgtMzIuNyA0OS42LTU0LjYgMTEuNS0yMS44IDE3LjUtNDYuMiAxNy41LTcwLjlzLTYtNDkuMS0xNy41LTcxYy0xMS42LTIyLjctMjguMy00MC41LTQ5LjYtNTQuNS0uMy0uOC0xLjQtMS45LTIuMi0zLjEtLjgtMS4zLTEuNC0yLjctMS42LTQuMS0xLjItMS41LS4zLTMgMC00LjQgLjMtMS41IC45LTIuOSAxLjctNC4xIC45LTEuMiAxLjEtMi4zIDMuMi0zLjEgMS4yLS44IDIuNi0xLjMgNC4xLTEuNnMyLjktLjMgNC40IDAgMi44IC45IDQuMSAxLjhjMjMuNCAxNiA0Mi43IDM3LjUgNTUuOSA2Mi42IDEzLjMgMjUuMSAxOS40IDUzLjEgMTkuNCA4MS41IDAgMjguNS02LjEgNTYuNS0xOS40IDgxLjYtMTMuMiAyNS4xLTMyLjUgNDYuNi01NS45IDYyLjYtMS4zIC45LTIuNiAxLjUtNC4xIDEuOHMtMi45IC4zLTQuNCAwLTIuOS0xLjctNC4xLTEuNmMtMi4xLS44LTIuMy0xLjktMy4yLTMuMS0uOC0xLjItMS40LTIuNi0xLjctNC4xLS4zLTEuNC0xLjItMi45IDAtNC40IC4yLTEuNCAuOC0yLjggMS42LTQuMXpNMzEyLjMgNi4zYzU2LjIgMTIuNyAxMDYuNCA0NCAxNDIuNyA4OC43IDMwLjQgMzcuNiA0OS42IDgzIDU1LjMgMTMxIDUuNiA0OC0yLjQgOTYuNy0yMy4yIDE0MC4zLTIwLjkgNDMuNi01My42IDgwLjUtOTQuNSAxMDYuMy00MC45IDI1LjctODguMiAzOS40LTEzNi42IDM5LjQtMS41IDAtMi45LS4zLTQuMy0uOS0xLjQtLjUtMi42LTEuNC0zLjctMi40LTEuOS0xLjEtMS45LTIuMy0yLjQtMy43LS42LTEuNC0uOS0yLjgtLjktNC4zbDAtOTkuMi0yNC41IDI2Yy0yLjEgMi4yLTQuOSAyLjYtNy45IDMuNi0zIC4xLTUuOS0xLjEtOC4xLTQtMi4yLTEuMi0zLjUtNC0zLjUtNy0uMS0zIDEtNS45IDMtOC4xbDQ0LjEtNDYuNmMxLjMtMi4yIDUuMS0zLjQgNy4zLTMuNCA0IDAgNi45IDEuMiA5LjEgMy40bDQ0IDQ2LjZjMi4xIDIuMiAzLjIgNS4xIDMuMSA4LjFzLTEuNCA1LjgtMy41IDdjLTIuMiAyLjktNS4xIDQuMS04LjEgNC0zLTEtNS45LTEuNC03LjktMy42bC0yNC41LTI1LjkgMCA4Ny41YzU2LjQtMi44IDEwOS44LTI1LjggMTUwLjUtNjUgNDAuNy00MCA2NS44LTkxLjcgNzAuNy0xNDcuOSA0LjgtNTcuMS0xMC44LTExMi4zLTQ0LjEtMTU3LjktMzMuMy00NS42LTgyLTc3LjUtMTM3LTg5LjktMS41LS4zLTIuOC0uOS00LjEtMS44LTEuMi0uOS0yLjItMS45LTMtMy4yLS44LTEuMi0yLjItMi42LTEuNi00LjEtLjItMS41LS4yLTMgLjEtNC40IC40LTEuNCAxLTIuOCAxLjgtNCAuOS0xLjIgMi0yLjIgMy4yLTMgMS4zLS44IDIuNy0xLjMgNC4xLTEuNiAxLjUtLjMgMy0uMiA0LjQgLjF6bTQwLjggMjQ5LjhjMCAzMS40LTE3LjUgNjEuMS00OS4zIDgzLjUtMi4xIDEuNS00LjggMi4zLTcuNCAyLTIuNy0uMi01LjItMS4zLTctMy4ybC03MC4xLTY5LjhjLTIuMi0yLjEtNC4yLTUtMy40LTggMC0zIDEuMi01LjkgMy4zLTggMi4yLTIuMSA1LTMuMyA4LTMuM3M1LjkgMS4yIDggMy4zbDYzLjEgNjIuOGMyMC44LTE3LjEgMzIuMi0zNy45IDMyLjItNTkuMyAwLTIzLjktMTQuMS00Ny0zOS43LTY1LjEtMi41LTEuNy00LjEtNC4zLTQuNi03LjMtLjUtMi45IC4xLTYgMS45LTguNCAxLjctMi41IDQuMy00LjEgNy4zLTQuNiAyLjktLjUgNiAuMSA4LjQgMS45IDMxLjggMjIuNCA0OS4zIDUyLjEgNDkuMyA4My41ek0yMTYuNyAzNDEuNWMtMyAuNS02LS4yLTguNS0xLjktMzEuNy0yMi40LTUwLjEtNTIuMS01MC4xLTgzLjVzMTguNC02MS4xIDUwLjEtODMuNWMyLjItMS42IDQuOS0yLjMgNy41LTIuMSAyLjcgLjMgNS4xIDEuNCA3IDMuM2w3MC4xIDY5LjhjMi4xIDIuMSAzLjMgNSAzLjMgOHMtMiA1LjgtMy4zIDhjLTIuMSAyLjEtNSAzLjMtNy45IDMuMy0zIDAtNi44LTEuMi04LTMuM2wtNjMuMS02Mi45Yy0yMC45IDE3LjMtMzIuMiAzOC0zMi4yIDU5LjQgMCAyMyAxNC4xIDQ3IDM5LjcgNjUgMi40IDEuOCA0LjEgNC40IDQuNiA3LjQgLjUgMi45LS4yIDUuOS0xLjkgOC40LTEuNyAyLjQtNC40IDQuMS03LjMgNC42eiJdfSxzb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1ieSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlNyIsIk0zMjIuOSAxOTQuNGwwIDEwMS40LTI4LjMgMCAwIDEyMC41LTc3LjEgMCAwLTEyMC40LTI4LjMgMCAwLTEwMS41YzAtNC40IDEuNi04LjIgNC42LTExLjMgMy4xLTMuMSA2LjktNC43IDExLjMtNC43bDEwMS45IDBjNC4xIDAgNy44IDEuNiAxMS4xIDQuNyAzLjEgMy4yIDQuOCA2LjkgNC44IDExLjN6bS0zMi41LTY0LjVhMzQuNSAzNC41IDAgMSAxIC02OSAuOCAzNC41IDM0LjUgMCAxIDEgNjktLjh6TTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3oiXX0sbm90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVtYnJhY28iLGljb246WzUxMiw1MTIsW10sImY4ZTgiLCJNMjU2LjMgOGEyNDggMjQ4IDAgMSAwIC0uNyA0OTYgMjQ4IDI0OCAwIDEgMCAuNy00OTZ6bTE0NSAyNjZjLS44IDI3LjEtNS40IDQ4LjgtMTQgNjVzLTIzLjEgMjcuOS00My41IDM1Yy0yMC40IDcuMS00OC45IDEwLjYtODUuNCAxMC41bC00LjYgMGMtMzYuNSAuMS02NS0zLjMtODUuNC0xMC41cy0zNC45LTE4LjgtNDMuNS0zNWMtOC42LTE2LjItMTMuMi0zNy45LTE0LTY1LS43LTEwLjItLjctMjAuNSAwLTMwLjcgLjQtMTQuNyAxLjYtMjkuMyAzLjYtNDMuOSAxLjktMTMuNCAzLjYtMjIuNiA1LjQtMzIgMS00LjkgMS4zLTYuNCAxLjgtOC40IC4zLTEuMSAuOS0yLjEgMS44LTIuOHMyLTEuMSAzLjEtMS4xbC43IDAgMzIgNWMxLjIgLjIgMi4yIC44IDMgMS43czEuMiAyLjEgMS4yIDMuM2MwIC4zIDAgLjUgMCAuOGwtMS43IDguOGMtMS42IDguOC0zLjIgMjAuMS00LjggMzMuNy0xLjcgMTQtMi41IDI4LjEtMi42IDQyLjItLjIgMjcgMi41IDQ2LjkgOC4xIDU5LjggMi44IDYuNCA3LjIgMTIgMTIuNiAxNi40czExLjkgNy40IDE4LjcgOC44YzE4LjggNCAzOC4xIDUuNyA1Ny4zIDUuMWwxMC4zIDBjMTkuMiAuNiAzOC41LTEuMiA1Ny4zLTUuMiA2LjgtMS40IDEzLjItNC41IDE4LjYtOC44czkuNy0xMCAxMi41LTE2LjRjNS43LTEyLjkgOC40LTMyLjkgOC4xLTU5LjgtLjEtMTQuMS0xLTI4LjItMi42LTQyLjEtMS43LTEzLjYtMy4zLTI0LjgtNC45LTMzLjdsLTEuNy04LjhjMC0uMyAwLS41IDAtLjggMC0xLjIgLjQtMi40IDEuMi0zLjNzMS44LTEuNSAzLTEuN2wzMi01IC44IDBjMS4xIDAgMi4yIC40IDMuMSAxLjFzMS41IDEuNyAxLjggMi44Yy42IDIgLjggMy42IDEuOCA4LjQgMS44IDkuNiAzLjUgMTguOCA1LjQgMzIgMiAxNC42IDMuMiAyOS4yIDMuNiA0My45IC43IDEwLjIgLjcgMjAuNSAwIDMwLjdsMCAweiJdfSxsb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG9vbGkiLGljb246WzY0MCw1MTIsW10sImY0MjciLCJNMTQ0LjUgMzUybDM4LjMgLjhjLTEzLjItNC42LTI2LTEwLjItMzguMy0xNi44bDAgMTZ6bTU3LjctNS4zbDAgNS4zLTE5LjQgLjhjMzYuNSAxMi41IDY5LjkgMTQuMiA5NC43IDcuMi0xOS45IC4yLTQ1LjgtMi42LTc1LjMtMTMuM3pNNjExLjEgMjMxLjVjMTUuOSAwIDI4LjktMTIuOSAyOC45LTI4LjlzLTEyLjktMjQuNS0yOC45LTI0LjVjLTE1LjkgMC0yOC45IDguNi0yOC45IDI0LjVzMTIuOSAyOC45IDI4LjkgMjguOXpNNTgyLjEgMzUybDU3LjkgMCAwLTExMC41LTU3LjkgMCAwIDExMC41em0tNzMuNyAwbDU3LjkgMCAwLTE5NS4zLTU3LjkgMjcuMyAwIDE2OHptLTMxLTExOS40Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMy0xLjEtNTAuNCAxNy4xYy0xOC4yIDE4LjItMTYuOCAzMy45LTE2LjggNTIuNnMtMS40IDM0LjMgMTYuOCA1Mi41IDUwLjQgMTcuMSA1MC40IDE3LjEgMzIuMyAxLjEgNTAuNC0xNy4xYzE4LjItMTguMiAxNi44LTMzLjggMTYuOC01Mi41LS4xLTE4LjggMS4zLTM0LjUtMTYuOC01Mi42em0tMzkuOCA3MS45YzAgMy42LTEuOCAxMi41LTEwLjcgMTIuNXMtMTAuNy04LjktMTAuNy0xMi41bDAtNDAuNGMwLTguNyA3LjMtMTAuOSAxMC43LTEwLjlzMTAuNyAyLjEgMTAuNyAxMC45bDAgNDAuNHpNMzMxLjQgMjMyLjZjLTE4LjItMTguMi01MC40LTE3LjEtNTAuNC0xNy4xcy0zMi4yLTEuMS01MC40IDE3LjFjLTEuOSAxLjktMy43IDMuOS01LjMgNi0zOC4yLTI5LjYtNzIuNS00Ni41LTEwMi4xLTYxLjFsMC0yMC43LTIyLjUgMTAuNmMtNTQuNC0yMi4xLTg5LTE4LjItOTcuMyAuMSAwIDAtMjQuOSAzMi44IDYxLjggMTEwLjhsMCA3My43IDU3LjkgMCAwLTI4LjZjLTYuNS00LjItMTMtOC43LTE5LjQtMTMuNi0xNC44LTExLjItMjcuNC0yMS42LTM4LjQtMzEuNGwwLTMxYzEzLjEgMTQuNyAzMC41IDMxLjQgNTMuNCA1MC4zbDQuNSAzLjYgMC0yOS44YzAtNi45IDEuNy0xOC4yIDEwLjgtMTguMnMxMC42IDYuOSAxMC42IDE1bDAgNDguN2MxOCAxMi4yIDM3LjMgMjIuMSA1Ny43IDI5LjZsMC05My45YzAtMTguNy0xMy40LTM3LjQtNDAuNi0zNy40LTE1LjgtLjEtMzAuNSA4LjItMzguNSAyMS45bDAtNTQuM2M0MS45IDIwLjkgODMuOSA0Ni41IDk5LjkgNTguMy0xMC4yIDE0LjYtOS4zIDI4LjEtOS4zIDQzLjcgMCAxOC43LTEuNCAzNC4zIDE2LjggNTIuNXM1MC40IDE3LjEgNTAuNCAxNy4xIDMyLjMgMS4xIDUwLjQtMTcuMWMxOC4yLTE4LjIgMTYuNy0zMy44IDE2LjctNTIuNSAwLTE4LjUgMS41LTM0LjItMTYuNy01Mi4zek02NS4yIDE4NGwwIDYzLjNjLTQ4LjctNTQuNS0zOC45LTc2LTM1LjItNzkuMSAxMy41LTExLjQgMzcuNS04IDY0LjQgMi4xTDY1LjIgMTg0ek0yOTEuNyAzMDQuNWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNWwwLTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOWwwIDQwLjR6Il19LEIxZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0IixpY29uOls0NDgsNTEyLFsiZ2l0LXNxdWFyZSJdLCJmMWQyIiwiTTEyMC44IDMzNS41Yy01LjktLjQtMTIuNi0uOC0yMC4yLTEuMy0zLjMgNC4xLTYuNiA4LjQtNi42IDEzLjUgMCAxOC41IDY1LjUgMTguNSA2NS41LTEuNSAwLTguMy03LjQtOC43LTM4LjgtMTAuN2wuMSAwem03LjgtMTE3LjljLTMyLjMgMC0zMy43IDQ0LjUtLjcgNDQuNSAzMi41IDAgMzEuNy00NC41IC43LTQ0LjV6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0yNDMuOSAxNzIuMmMtMTQuNSAwLTIyLjktOC40LTIyLjktMjIuOXM4LjQtMjIuMyAyMi45LTIyLjNjMTQuNyAwIDIzLjEgNy44IDIzLjEgMjIuM3MtOC40IDIyLjktMjMuMSAyMi45ek0xNDkuNiAxOTVsNDkuNSAwIDAgMjEuNi0yMy40IDEuOGM0LjYgNS44IDkuNCAxNCA5LjQgMjUuNyAwIDQ4LjctNTcuMiA0Ny4yLTc0LjIgNDIuNGwtOC40IDEzLjRjNSAuMyA5LjggLjYgMTQuMyAuOCA1Ni4zIDMuMiA4MC41IDQuNiA4MC41IDM4LjUgMCAyOS4yLTI1LjcgNDUuNy02OS45IDQ1LjctNDYgMC02My41LTExLjYtNjMuNS0zMS43IDAtMTEuNCA1LjEtMTcuNSAxNC0yNS45LTguNC0zLjUtMTEuMi05LjktMTEuMi0xNi44IDAtOS42IDcuNC0xNi4zIDIzLTMwLjZsLjItLjJjLTEyLjQtNi4xLTIxLjgtMTkuMy0yMS44LTM4LjEgMC01MS42IDU2LjYtNTMuMyA4MS42LTQ2LjhsLS4xIC4yek0yNzAuNSAzMDMuMWwxMyAxLjggMCAyMC4xLTcyLjQgMCAwLTIwLjFjMi43LS40IDUtLjcgNi45LS45IDkuOS0xLjIgMTAuMS0xLjMgMTAuMS02bDAtNzQuN2MwLTQuNC0uOS00LjctMTAuMS03LjgtMS45LS43LTQuMi0xLjQtNi45LTIuNGwyLjgtMjAuNiA1Mi42IDAgMCAxMDUuNWMwIDQuMSAuMiA0LjYgNC4xIDUuMWwtLjEgMHptMTA2LjYtMTAuNEwzODQgMzE1Yy0xMC45IDUuNC0yNi45IDEwLjItNDEuNCAxMC4yLTMwLjIgMC00MS43LTEyLjItNDEuNy00MC45bDAtNjYuNmMwLS44IDAtMS40LS4yLTEuOC0uOC0xLjItNC4yLS43LTE5LjYtLjdsMC0yMi42YzIyLjMtMi41IDMxLjItMTMuNyAzNC00MS40bDI0LjIgMGMwIDMzLjMtLjYgMzggLjcgMzguNiAuMyAuMSAuNyAwIDEuMyAwbDM1LjggMCAwIDI1LjQtMzcuOCAwIDAgNjEuNmMtLjIgNi4zLS45IDMwLjQgMzcuOSAxNS45bC0uMSAweiJdfSxjb3Q9QjFlLGRvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvZG5va2xhc3NuaWtpIixpY29uOlszMjAsNTEyLFtdLCJmMjYzIiwiTTI3NS4xIDMzNGMtMjcuNCAxNy40LTY1LjEgMjQuMy05MCAyNi45bDIwLjkgMjAuNiA3Ni4zIDc2LjNjMjcuOSAyOC42LTE3LjUgNzMuMy00NS43IDQ1LjctMTkuMS0xOS40LTQ3LjEtNDcuNC03Ni4zLTc2LjZMODQgNTAzLjRjLTI4LjIgMjcuNS03My42LTE3LjYtNDUuNC00NS43IDE5LjQtMTkuNCA0Ny4xLTQ3LjQgNzYuMy03Ni4zbDIwLjYtMjAuNmMtMjQuNi0yLjYtNjIuOS05LjEtOTAuNi0yNi45LTMyLjYtMjEtNDYuOS0zMy4zLTM0LjMtNTkgNy40LTE0LjYgMjcuNy0yNi45IDU0LjYtNS43IDAgMCAzNi4zIDI4LjkgOTQuOSAyOC45UzI1NSAyNjkuMiAyNTUgMjY5LjJjMjYuOS0yMS4xIDQ3LjEtOC45IDU0LjYgNS43IDEyLjQgMjUuNy0xLjkgMzgtMzQuNSA1OS4xem0xNC42LTIwNC43YTEyOS43IDEyOS43IDAgMSAxIC0yNTkuNCAuNCAxMjkuNyAxMjkuNyAwIDEgMSAyNTkuNC0uNHptLTE5My40IC40YTYzLjcgNjMuNyAwIDEgMCAxMjcuNC0uNCA2My43IDYzLjcgMCAxIDAgLTEyNy40IC40eiJdfSxmb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJ1cGFsIixpY29uOlszODQsNTEyLFtdLCJmMWE5IiwiTTI3Mi4zIDEwOC4xQzIzNi41IDcyLjUgMjAyLjUgMzguNCAxOTIuNCAwIDE4Mi40IDM4LjQgMTQ4LjEgNzIuNSAxMTIuNCAxMDguMSA1OC44IDE2MS43LTEuOSAyMjIuNC0xLjkgMzEzLjQtNC4zIDQyMC43IDgwLjggNTA5LjYgMTg4LjEgNTEyczE5Ni4yLTgyLjggMTk4LjUtMTkwLjFjLjEtMi44IC4xLTUuNiAwLTguNSAwLTkxLjEtNjAuOC0xNTEuNy0xMTQuMy0yMDUuM3pNOTggMzMxLjFjLTUuOSA3LjUtMTEgMTUuNi0xNS4yIDI0LjItLjMgLjctLjggMS4zLTEuMyAxLjhzLTEuMiAuOC0yIDFsLTEuNyAwYy00LjMgMC05LjItOC41LTkuMi04LjUtMS4zLTItMi41LTQuMi0zLjctNi40bC0uOC0xLjhjLTExLjItMjUuNy0xLjUtNjIuMy0xLjUtNjIuMyA0LjgtMTcuOCAxMi43LTM0LjcgMjMuMi00OS45IDYuNC05LjYgMTMuNS0xOC45IDIxLTI3LjdsOS4yIDkuMiA0My41IDQ0LjRjLjggLjkgMS4zIDIuMSAxLjMgMy4zcy0uNSAyLjQtMS4zIDMuM0wxMTQuMSAzMTIuMyA5OCAzMzEuMXptOTYuNiAxMjcuM2MtMTIuOS0uMS0yNS42LTMuOS0zNi40LTExcy0xOS40LTE3LjEtMjQuNi0yOC45LTctMjQuOS01LTM3LjcgNy42LTI0LjcgMTYuMi0zNC40YzE0LjItMTYuOSAzMS41LTMzLjUgNTAuMy01NS4zIDIyLjMgMjMuOCAzNi45IDQwLjEgNTEuMiA1OCAxLjEgMS40IDIuMSAyLjkgMyA0LjQgNy44IDExLjEgMTIgMjQuNCAxMiAzOCAwIDguOC0xLjcgMTcuNC01IDI1LjVzLTguMiAxNS41LTE0LjQgMjEuNy0xMy41IDExLjEtMjEuNiAxNC41LTE2LjcgNS4xLTI1LjUgNS4xbC0uMiAwek0zMjAuNyAzNTEuNmMtLjQgMS40LTEuMiAyLjYtMi4zIDMuNnMtMi40IDEuNi0zLjggMS44bC0xLjMgMGMtMi42LS45LTQuOS0yLjctNi4zLTUuMS0xMS42LTE3LjUtMjQuOS0zMy45LTM5LjUtNDlsLTE3LjgtMTguNC01OS4xLTYxLjNjLTEyLjQtMTEuNS0yNC4yLTIzLjYtMzUuNC0zNi4zLS4zLS41LS42LS45LS45LTEuNC0yLTIuOC0zLjYtNS45LTQuNy05LjJsMC0xLjhjLS44LTUtLjQtMTAuMSAxLjItMTVzNC40LTkuMiA4LTEyLjdjMTEuNC0xMS40IDIzLTIzIDMzLjgtMzQuOSAxMiAxMy4zIDI0LjggMjYgMzcuNCAzOC42IDI1LjggMjQgNDkuMSA1MC41IDY5LjYgNzkuMSAxNy4zIDI0LjUgMjYuNyA1My44IDI3IDgzLjgtLjEgMTIuOS0yLjIgMjUuOC02IDM4LjJ6Il19LHVvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibG9nZ2VyLWIiLGljb246WzQ0OCw1MTIsW10sImYzN2QiLCJNNDQ2LjYgMjIyLjdjLTEuOC04LTYuOC0xNS40LTEyLjUtMTguNS0xLjgtMS0xMy0yLjItMjUtMi43LTIwLjEtLjktMjIuMy0xLjMtMjguNy01LTEwLjEtNS45LTEyLjgtMTIuMy0xMi45LTI5LjUtLjEtMzMtMTMuOC02My43LTQwLjktOTEuMy0xOS4zLTE5LjctNDAuOS0zMy02NS41LTQwLjUtNS45LTEuOC0xOS4xLTIuNC02My4zLTIuOS02OS40LS44LTg0LjggLjYtMTA4LjQgMTAtNDMuNSAxNy4yLTc0LjcgNTMuOC04Ni4xIDEwMC42LTIuMSA4LjgtMi42IDIyLjktMy4xIDEwMy45LS42IDEwMS41IC4xIDExNi40IDYuNCAxMzYuNSAxNS42IDQ5LjYgNTkuOSA4Ni4zIDEwNC40IDk0LjMgMTQuOCAyLjcgMTk3LjMgMy4zIDIxNiAuOCAzMi41LTQuNCA1OC0xNy41IDgxLjktNDEuOSAxNy4zLTE3LjcgMjguMS0zNi44IDM1LjItNjIuMSA0LjktMTcuNiA0LjUtMTQyLjggMi41LTE1MS43ek0xMjQuNSAxNTkuMWM3LjgtNy45IDEwLTguMiA1OC44LTguMiA0My45IDAgNDUuNCAuMSA1MS44IDMuNCA5LjMgNC43IDEzLjQgMTEuMyAxMy40IDIxLjkgMCA5LjUtMy44IDE2LjItMTIuMyAyMS42LTQuNiAyLjktNy4zIDMuMS01MC4zIDMuMy0yNi41IC4yLTQ3LjctLjQtNTAuOC0xLjItMTYuNi00LjctMjIuOC0yOC41LTEwLjYtNDAuOHpNMzE2LjMgMzU4LjlsLTE0LjkgMi40LTc3LjUgLjljLTY4LjEgLjgtODcuMy0uNC05MC45LTItNy4xLTMuMS0xMy44LTExLjctMTQuOS0xOS40LTEuMS03LjMgMi42LTE3LjMgOC4yLTIyLjQgNy4xLTYuNCAxMC4yLTYuNiA5Ny4zLTYuNyA4OS42LS4xIDg5LjEtLjEgOTcuNiA3LjggMTIuMSAxMS4zIDkuNSAzMS4yLTQuOSAzOS40eiJdfSxwb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW52aXNpb24iLGljb246WzQ0OCw1MTIsW10sImY3YjAiLCJNNDA3LjQgMzJMNDAuNiAzMkMxOC4yIDMyIDAgNTAuMiAwIDcyLjZMMCA0MzkuNEMwIDQ2MS44IDE4LjIgNDgwIDQwLjYgNDgwbDM2Ni44IDBjMjIuNCAwIDQwLjYtMTguMiA0MC42LTQwLjZsMC0zNjYuOEM0NDggNTAuMiA0MjkuOCAzMiA0MDcuNCAzMnpNMTc2LjEgMTQ1LjZjLjQgMjMuNC0yMi40IDI3LjMtMjYuNiAyNy40LTE0LjkgMC0yNy4xLTEyLTI3LjEtMjcgLjEtMzUuMiA1My4xLTM1LjUgNTMuNy0uNHpNMzMyLjggMzc3Yy02NS42IDAtMzQuMS03NC0yNS0xMDYuNiAxNC4xLTQ2LjQtNDUuMi01OS01OS45IC43bC0yNS44IDEwMy4zLTQ1LjEgMCA4LjEtMzIuNWMtMzEuNSA1MS44LTk0LjYgNDQuNC05NC42LTQuMyAuMS0xNC4zIC45LTE0IDIzLTEwNC4xbC0zMS44IDAgOS43LTM1LjYgNzYuNCAwYy0zMy42IDEzMy43LTMyLjYgMTI2LjktMzIuOSAxMzguMiAwIDIwLjkgNDAuOSAxMy41IDU3LjQtMjMuMmwxOS44LTc5LjQtMzIuMyAwIDkuNy0zNS42IDY4LjggMC04LjkgNDAuNWM0MC41LTc1LjUgMTI3LjktNDcuOCAxMDEuOCAzOC0xNC4yIDUxLjEtMTQuNiA1MC43LTE0LjkgNTguOCAwIDE1LjUgMTcuNSAyMi42IDMxLjgtMTYuOUwzODYgMzI1Yy0xMC41IDM2LjctMjkuNCA1Mi01My4yIDUyeiJdfSxob3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmFjZWJvb2stZiIsaWNvbjpbMzIwLDUxMixbXSwiZjM5ZSIsIk04MCAyOTkuM2wwIDIxMi43IDExNiAwIDAtMjEyLjcgODYuNSAwIDE4LTk3LjgtMTA0LjUgMCAwLTM0LjZjMC01MS43IDIwLjMtNzEuNSA3Mi43LTcxLjUgMTYuMyAwIDI5LjQgLjQgMzcgMS4ybDAtODguN0MyOTEuNCA0IDI1Ni40IDAgMjM2LjIgMCAxMjkuMyAwIDgwIDUwLjUgODAgMTU5LjRsMCA0Mi4xLTY2IDAgMCA5Ny44IDY2IDB6Il19LG1vdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjZW50b3MiLGljb246WzQ0OCw1MTIsW10sImY3ODkiLCJNMjg5LjYgOTcuNWwzMS42IDMxLjctNzYuMyA3Ni41IDAtMTA4LjIgNDQuNyAwek0xMjcuMiAxMjkuMmw3Ni4zIDc2LjUgMC0xMDguMi00NC43IDAtMzEuNiAzMS43em00MS41LTQxLjZsNDQuNyAwIDAgMTI3LjkgMTAuOCAxMC44IDEwLjgtMTAuOCAwLTEyNy45IDQ0LjcgMC01NS41LTU1LjYtNTUuNSA1NS42em0yNi4yIDE2OC4xbC0xMC44LTEwLjgtMTI4LjYgMCAwLTQ0LjgtNTUuNSA1NS42IDU1LjUgNTUuNiAwLTQ0LjggMTI4LjYgMCAxMC44LTEwLjh6TTI3NC4yIDIzNWwxMDcuOSAwIDAtNDQuOC0zMS42LTMxLjctNzYuMyA3Ni41em0xNzMuMyAyMC43bC01NS41LTU1LjYgMCA0NC44LTEyNy43IDAtMTAuOCAxMC44IDEwLjggMTAuOCAxMjcuNyAwIDAgNDQuOCA1NS41LTU1LjZ6TTY1LjQgMTc2LjJsMzIuNS0zMS43IDkwLjMgOTAuNSAxNS4zIDAgMC0xNS4zLTkwLjMtOTAuNSAzMS42LTMxLjctNzkuNCAwIDAgNzguN3pNMzgyLjEgOTcuNWwtNzguNSAwIDMxLjYgMzEuNy05MC4zIDkwLjUgMCAxNS4zIDE1LjMgMCA5MC4zLTkwLjUgMzEuNiAzMS43IDAtNzguN3pNMjAzLjUgNDEzLjlsMC0xMDguMS03Ni4zIDc2LjUgMzEuNiAzMS43IDQ0LjcgMCAwLS4xek02NS40IDIzNWwxMDguOCAwLTc2LjMtNzYuNS0zMi41IDMxLjcgMCA0NC44ek0zODIuMSAzMzUuMmwtMzEuNiAzMS43LTkwLjMtOTAuNS0xNS4zIDAgMCAxNS4zIDkwLjMgOTAuNS0zMS42IDMxLjcgNzguNSAwIDAtNzguN3ptMC01OC44bC0xMDcuOSAwIDc2LjMgNzYuNSAzMS42LTMxLjcgMC00NC44ek0zMjEuMiAzODIuMmwtNzYuMy03Ni41IDAgMTA4LjEgNDQuNyAwIDMxLjYtMzEuNnpNOTcuOSAzNTIuOWw3Ni4zLTc2LjUtMTA4LjggMCAwIDQ0LjggMzIuNSAzMS43em0xODEuOCA3MC45bC00NC43IDAgMC0xMjcuOS0xMC44LTEwLjgtMTAuOCAxMC44IDAgMTI3LjktNDQuNyAwIDU1LjUgNTUuNiA1NS41LTU1LjZ6TTExMy4yIDM4Mi4ybDkwLjMtOTAuNSAwLTE1LjMtMTUuMyAwLTkwLjMgOTAuNS0zMi41LTMxLjcgMCA3OC43IDc5LjQgMC0zMS42LTMxLjd6Il19LGdvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hbWF6b24tcGF5IixpY29uOls1NzYsNTEyLFtdLCJmNDJkIiwiTTEyNC43IDIwMS44Yy4xLTExLjggMC0yMy41IDAtMzUuM2wwLTM1LjNjMC0xLjMgLjQtMiAxLjQtMi43IDExLjUtOCAyNC4xLTEyLjEgMzguMi0xMS4xIDEyLjUgLjkgMjIuNyA3IDI4LjEgMjEuNyAzLjMgOC45IDQuMSAxOC4yIDQuMSAyNy43IDAgOC43LS43IDE3LjMtMy40IDI1LjYtNS43IDE3LjgtMTguNyAyNC43LTM1LjcgMjMuOS0xMS43LS41LTIxLjktNS0zMS40LTExLjctLjktLjgtMS40LTEuNi0xLjMtMi44em0xNTQuOSAxNC42YzQuNiAxLjggOS4zIDIgMTQuMSAxLjUgMTEuNi0xLjIgMjEuOS01LjcgMzEuMy0xMi41IC45LS42IDEuMy0xLjMgMS4zLTIuNS0uMS0zLjkgMC03LjkgMC0xMS44IDAtNC0uMS04IDAtMTIgMC0xLjQtLjQtMi0xLjgtMi4yLTctLjktMTMuOS0yLjItMjAuOS0yLjktNy0uNi0xNC0uMy0yMC44IDEuOS02LjcgMi4yLTExLjcgNi4yLTEzLjcgMTMuMS0xLjYgNS40LTEuNiAxMC44IC4xIDE2LjIgMS42IDUuNSA1LjIgOS4yIDEwLjQgMTEuMnpNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzY4LjUgMTAzLjljLjQgMS43IC45IDMuNCAxLjYgNS4xIDE2LjUgNDAuNiAzMi45IDgxLjMgNDkuNSAxMjEuOSAxLjQgMy41IDEuNyA2LjQgLjIgOS45LTIuOCA2LjItNC45IDEyLjYtNy44IDE4LjctMi42IDUuNS02LjcgOS41LTEyLjcgMTEuMi00LjIgMS4xLTguNSAxLjMtMTIuOSAuOS0yLjEtLjItNC4yLS43LTYuMy0uOC0yLjgtLjItNC4yIDEuMS00LjMgNC0uMSAyLjgtLjEgNS42IDAgOC4zIC4xIDQuNiAxLjYgNi43IDYuMiA3LjUgNC43IC44IDkuNCAxLjYgMTQuMiAxLjcgMTQuMyAuMyAyNS43LTUuNCAzMy4xLTE3LjkgMi45LTQuOSA1LjYtMTAuMSA3LjctMTUuNCAxOS44LTUwLjEgMzkuNS0xMDAuMyA1OS4yLTE1MC41IC42LTEuNSAxLjEtMyAxLjMtNC42IC40LTIuNC0uNy0zLjYtMy4xLTMuNy01LjYtLjEtMTEuMSAwLTE2LjcgMC0zLjEgMC01LjMgMS40LTYuNCA0LjMtLjQgMS4xLS45IDIuMy0xLjMgMy40bC0yOS4xIDgzLjdjLTIuMSA2LjEtNC4yIDEyLjEtNi41IDE4LjYtLjQtLjktLjYtMS40LS44LTEuOS0xMC44LTI5LjktMjEuNi01OS45LTMyLjQtODkuOC0xLjctNC43LTMuNS05LjUtNS4zLTE0LjItLjktMi41LTIuNy00LTUuNC00LTYuNC0uMS0xMi44LS4yLTE5LjItLjEtMi4yIDAtMy4zIDEuNi0yLjggMy43ek0yNDIuNCAyMDZjMS43IDExLjcgNy42IDIwLjggMTggMjYuNiA5LjkgNS41IDIwLjcgNi4yIDMxLjcgNC42IDEyLjctMS45IDIzLjktNy4zIDMzLjgtMTUuNSAuNC0uMyAuOC0uNiAxLjQtMSAuNSAzLjIgLjkgNi4yIDEuNSA5LjIgLjUgMi42IDIuMSA0LjMgNC41IDQuNCA0LjYgLjEgOS4xIC4xIDEzLjcgMCAyLjMtLjEgMy44LTEuNiA0LTMuOSAuMS0uOCAuMS0xLjYgLjEtMi4zbDAtODguOGMwLTMuNi0uMi03LjItLjctMTAuOC0xLjYtMTAuOC02LjItMTkuNy0xNS45LTI1LjQtNS42LTMuMy0xMS44LTUtMTguMi01LjktMy0uNC02LS43LTkuMS0xLjFsLTEwIDBjLS44IC4xLTEuNiAuMy0yLjUgLjMtOC4yIC40LTE2LjMgMS40LTI0LjIgMy41LTUuMSAxLjMtMTAgMy4yLTE1IDQuOS0zIDEtNC41IDMuMi00LjQgNi41IC4xIDIuOC0uMSA1LjYgMCA4LjMgLjEgNC4xIDEuOCA1LjIgNS43IDQuMSA2LjUtMS43IDEzLjEtMy41IDE5LjctNC44IDEwLjMtMS45IDIwLjctMi43IDMxLjEtMS4yIDUuNCAuOCAxMC41IDIuNCAxNC4xIDcgMy4xIDQgNC4yIDguOCA0LjQgMTMuNyAuMyA2LjkgLjIgMTMuOSAuMyAyMC44IDAgLjQtLjEgLjctLjIgMS4yLS40IDAtLjggMC0xLjEtLjEtOC44LTIuMS0xNy43LTMuNi0yNi44LTQuMS05LjUtLjUtMTguOSAuMS0yNy45IDMuMi0xMC44IDMuOC0xOS41IDEwLjMtMjQuNiAyMC44LTQuMSA4LjMtNC42IDE3LTMuNCAyNS44ek05OC43IDEwNi45bDAgMTc1LjNjMCAuOCAwIDEuNyAuMSAyLjUgLjIgMi41IDEuNyA0LjEgNC4xIDQuMiA1LjkgLjEgMTEuOCAuMSAxNy43IDAgMi41IDAgNC0xLjcgNC4xLTQuMSAuMS0uOCAuMS0xLjcgLjEtMi41bDAtNjAuN2MuOSAuNyAxLjQgMS4yIDEuOSAxLjYgMTUgMTIuNSAzMi4yIDE2LjYgNTEuMSAxMi45IDE3LjEtMy40IDI4LjktMTMuOSAzNi43LTI5LjIgNS44LTExLjYgOC4zLTI0LjEgOC43LTM3IC41LTE0LjMtMS0yOC40LTYuOC00MS43LTcuMS0xNi40LTE4LjktMjcuMy0zNi43LTMwLjktMi43LS42LTUuNS0uOC04LjItMS4ybC03IDBjLTEuMiAuMi0yLjQgLjMtMy42IC41LTExLjcgMS40LTIyLjMgNS44LTMxLjggMTIuNy0yIDEuNC0zLjkgMy01LjkgNC41LS4xLS41LS4zLS44LS40LTEuMi0uNC0yLjMtLjctNC42LTEuMS02LjktLjYtMy45LTIuNS01LjUtNi40LTUuNmwtOS43IDBjLTUuOS0uMS02LjkgMS02LjkgNi44ek00OTMuNiAzMzljLTIuNy0uNy01LjEgMC03LjYgMS00My45IDE4LjQtODkuNSAzMC4yLTEzNi44IDM1LjgtMTQuNSAxLjctMjkuMSAyLjgtNDMuNyAzLjItMjYuNiAuNy01My4yLS44LTc5LjYtNC4zLTE3LjgtMi40LTM1LjUtNS43LTUzLTkuOS0zNy04LjktNzIuNy0yMS43LTEwNi43LTM4LjgtOC44LTQuNC0xNy40LTkuMy0yNi4xLTE0LTMuOC0yLjEtNi4yLTEuNS04LjIgMi4xbDAgMS43YzEuMiAxLjYgMi4yIDMuNCAzLjcgNC44IDM2IDMyLjIgNzYuNiA1Ni41IDEyMiA3Mi45IDIxLjkgNy45IDQ0LjQgMTMuNyA2Ny4zIDE3LjUgMTQgMi4zIDI4IDMuOCA0Mi4yIDQuNSAzIC4xIDYgLjIgOSAuNCAuNyAwIDEuNCAuMiAyLjEgLjNsMTcuNyAwYy43LS4xIDEuNC0uMyAyLjEtLjMgMTQuOS0uNCAyOS44LTEuOCA0NC42LTQgMjEuNC0zLjIgNDIuNC04LjEgNjIuOS0xNC43IDI5LjYtOS42IDU3LjctMjIuNCA4My40LTQwLjEgMi44LTEuOSA1LjctMy44IDgtNi4yIDQuMy00LjQgMi4zLTEwLjQtMy4zLTExLjl6TTU0NCAzMTEuM2MtLjgtNC4yLTQtNS44LTcuNi03LTUuNy0xLjktMTEuNi0yLjgtMTcuNi0zLjMtMTEtLjktMjItLjQtMzIuOCAxLjYtMTIgMi4yLTIzLjQgNi4xLTMzLjUgMTMuMS0xLjIgLjgtMi40IDEuOC0zLjEgMy0uNiAuOS0uNyAyLjMtLjUgMy40IC4zIDEuMyAxLjcgMS42IDMgMS41IC42IDAgMS4yIDAgMS44LS4xbDE5LjUtMi4xYzkuNi0uOSAxOS4yLTEuNSAyOC44LS44IDQuMSAuMyA4LjEgMS4yIDEyIDIuMiA0LjMgMS4xIDYuMiA0LjQgNi40IDguNyAuMyA2LjctMS4yIDEzLjEtMi45IDE5LjUtMy41IDEyLjktOC4zIDI1LjQtMTMuMyAzNy44LS4zIC44LS43IDEuNy0uOCAyLjUtLjQgMi41IDEgNCAzLjQgMy41IDEuNC0uMyAzLTEuMSA0LTIuMSAzLjctMy42IDcuNS03LjIgMTAuNi0xMS4yIDEwLjctMTMuOCAxNy0yOS42IDIwLjctNDYuNiAuNy0zIDEuMi02LjEgMS43LTkuMSAuMi00LjcgLjItOS42IC4yLTE0LjV6Il19LHhvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlYmF5IixpY29uOls2NDAsNTEyLFtdLCJmNGY0IiwiTTYwNi41IDE4OS41bC01NC44IDEwOS45LTU0LjktMTA5LjktMzcuNSAwIDEwLjkgMjAuNmMtMTEuNS0xOS0zNS45LTI2LTYzLjMtMjYtMzEuOCAwLTY3LjkgOC43LTcxLjUgNDMuMWwzMy43IDBjMS40LTEzLjggMTUuNy0yMS44IDM1LTIxLjggMjYgMCA0MSA5LjYgNDEgMzNsMCAzLjRjLTEyLjcgMC0yOCAuMS00MS43IC40LTQyLjQgLjktNjkuNiAxMC03Ni43IDM0LjQgMS01LjIgMS41LTEwLjYgMS41LTE2LjIgMC01Mi4xLTM5LjctNzYuMi03NS40LTc2LjItMjEuMyAwLTQzIDUuNS01OC43IDI0LjJsMC04MC42LTMyLjEgMCAwIDE2OS41YzAgMTAuMy0uNiAyMi45LTEuMSAzMy4xbDMxLjUgMGMuNy02LjMgMS4xLTEyLjkgMS4xLTE5LjUgMTMuNiAxNi42IDM1LjQgMjQuOSA1OC43IDI0LjkgMzYuOSAwIDY0LjktMjEuOSA3My4zLTU0LjItLjUgMi44LS43IDUuOC0uNyA5IDAgMjQuMSAyMS4xIDQ1IDYwLjYgNDUgMjYuNiAwIDQ1LjgtNS43IDYxLjktMjUuNSAwIDYuNiAuMyAxMy4zIDEuMSAyMC4ybDI5LjggMGMtLjctOC4yLTEtMTcuNS0xLTI2LjhsMC02NS42YzAtOS4zLTEuNy0xNy4yLTQuOC0yMy44bDYxLjUgMTE2LjEtMjguNSA1NC4xIDM1LjkgMCA5OS4yLTE5NC44LTM0IDB6TTI0NC4yIDMxMy44Yy0yOS42IDAtNTAuMi0yMS41LTUwLjItNTMuOCAwLTMyLjQgMjAuNi01My44IDUwLjItNTMuOCAyOS44IDAgNTAuMiAyMS40IDUwLjIgNTMuOCAwIDMyLjMtMjAuNCA1My44LTUwLjIgNTMuOHptMjAwLjktNDcuM2MwIDMwLTE3LjkgNDguNC01MS42IDQ4LjQtMjUuMSAwLTM1LTEzLjQtMzUtMjUuOCAwLTE5LjEgMTguMS0yNC40IDQ3LjItMjUuMyAxMy4xLS41IDI3LjYtLjYgMzkuNC0uNmwwIDMuM3pNMzMuMiAyNjguMWwxMjguOCAwIDAtOC41YzAtNTEuNy0zMy4xLTc1LjQtNzguNC03NS40LTU2LjggMC04MyAzMC44LTgzIDc3LjYgMCA0Mi41IDI1LjMgNzQgODIuNSA3NCAzMS40IDAgNjgtMTEuNyA3NC40LTQ2LjFsLTMzLjEgMGMtMTIgMzUuOC04Ny43IDM2LjctOTEuMi0yMS42em05NS0yMS40bC05NC40IDBjNi45LTU2LjYgOTIuMS01NC43IDk0LjQgMHoiXX0sYm90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvbnRhbyIsaWNvbjpbNTEyLDUxMixbXSwiZjI2ZCIsIk00NS40IDMwNWMxNC40IDY3LjEgMjYuNCAxMjkgNjguMiAxNzVMMzQgNDgwYy0xOC43IDAtMzQtMTUuMi0zNC0zNEwwIDY2QzAgNDcuMyAxNS4yIDMyIDM0IDMybDU3LjcgMGMtMTMuOCAxMi42LTI2LjEgMjcuMi0zNi45IDQzLjYtNDUuNCA3MC0yNyAxNDYuOC05LjQgMjI5LjR6TTQ3OCAzMmwtOTAuMiAwYzIxLjQgMjEuNCAzOS4yIDQ5LjUgNTIuNyA4NC4xTDMwMy40IDE0NS40Yy0xNC45LTI5LTM3LjgtNTMuMy04Mi42LTQzLjktMjQuNiA1LjMtNDEgMTkuMy00OC4zIDM0LjYtOC44IDE4LjctMTMuMiAzOS44IDguMiAxNDAuMyAyMS4xIDEwMC4yIDMzLjcgMTE3LjcgNDkuNSAxMzEuMiAxMi45IDExLjEgMzMuNCAxNyA1OC4zIDExLjcgNDQuNS05LjQgNTUuNy00MC43IDU3LjQtNzMuMmwxMzcuNC0yOS42YzMuMiA3MS41LTE4LjcgMTI1LjItNTcuNCAxNjMuNmw1Mi4xIDBjMTguNyAwIDM0LTE1LjIgMzQtMzRMNTEyIDY2YzAtMTguOC0xNS4yLTM0LTM0LTM0eiJdfSx2b3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWxsbyIsaWNvbjpbNTEyLDUxMixbXSwiZjVmMSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM5OS44IDI5My4yQzM4My4zIDM1OC41IDMyMy44IDQwNC44IDI1NiA0MDQuOFMxMjguNyAzNTguNSAxMTIuMiAyOTMuMmMtMS42LTcuNCAyLjUtMTUuNyA5LjktMTcuNHMxNS43IDIuNSAxNy40IDkuOWMxNCA1Mi45IDYyIDkwLjEgMTE2LjYgOTAuMXMxMDIuNS0zNy4yIDExNi42LTkwLjFjMS43LTcuNCA5LjktMTIuNCAxNy40LTkuOSA3LjQgMS43IDEyLjQgOS45IDkuOSAxNy40eiJdfSx5b3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2lzdHJpeCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlZSIsIk00NDggNDQ5TDMwMS4yIDMwMC4yYzIwLTI3LjkgMzEuOS02Mi4yIDMxLjktOTkuMiAwLTkzLjEtNzQuNy0xNjguOS0xNjYuNS0xNjguOS05MS45LS4xLTE2Ni42IDc1LjctMTY2LjYgMTY4LjhTNzQuNyAzNjkuOCAxNjYuNSAzNjkuOGMzOS44IDAgNzYuMy0xNC4yIDEwNS0zNy45TDQxNy41IDQ4MCA0NDggNDQ5ek0xNjYuNSAzMzAuOGMtNzAuNiAwLTEyOC4xLTU4LjMtMTI4LjEtMTI5LjlTOTUuOSA3MSAxNjYuNSA3MSAyOTQuNiAxMjkuMyAyOTQuNiAyMDAuOSAyMzcuMiAzMzAuOCAxNjYuNSAzMzAuOHoiXX0sd290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBlcmlzY29wZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkYSIsIk0zNzAgNjMuNmMtMzguNi00MS04OS41LTYzLjYtMTQzLjQtNjMuNi0xMTQuNyAwLTIwOC4xIDk2LjItMjA4LjEgMjE0LjQgMCA3NS4xIDU3LjggMTU5LjggODIuNyAxOTIuNyAzNi42IDQ4LjQgOTEuNCAxMDQuOSAxMjUuNCAxMDQuOSA0MS42IDAgMTEyLjktOTQuMiAxMjAuOS0xMDUgMjQuNi0zMy4xIDgyLTExOC4zIDgyLTE5Mi42IDAtNTYuNS0yMS4xLTExMC4xLTU5LjUtMTUwLjh6TTIyNi42IDQ5My45Yy00Mi41IDAtMTkwLTE2Ny4zLTE5MC0yNzkuNCAwLTEwNy40IDgzLjktMTk2LjMgMTkwLTE5Ni4zIDEwMC44IDAgMTg0LjcgODkgMTg0LjcgMTk2LjMgLjEgMTEyLjEtMTQ3LjQgMjc5LjQtMTg0LjcgMjc5LjR6TTMzOCAyMDYuOGMwIDU5LjEtNTEuMSAxMDkuNy0xMTAuOCAxMDkuNy0xMDAuNiAwLTE1MC43LTEwOC4yLTkyLjktMTgxLjhsMCAuNGMwIDI0LjUgMjAuMSA0NC40IDQ0LjggNDQuNHM0NC44LTE5LjkgNDQuOC00NC40YzAtMTguMi0xMS4xLTMzLjgtMjYuOS00MC43IDc2LjYtMTkuMiAxNDEgMzkuMyAxNDEgMTEyLjR6Il19LE1vdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJleHBlZGl0ZWRzc2wiLGljb246WzUxMiw1MTIsW10sImYyM2UiLCJNMjU2IDQzLjRhMjEyLjYgMjEyLjYgMCAxIDAgMCA0MjUuMiAyMTIuNiAyMTIuNiAwIDEgMCAwLTQyNS4yek0xNTguNiAxNzYuM2MwLTUzLjcgNDMuNy05Ny40IDk3LjQtOTcuNHM5Ny40IDQzLjcgOTcuNCA5Ny40bDAgMjYuNmMwIDUtMy45IDguOS04LjkgOC45bC0xNy43IDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi42YzAtODIuMS0xMjQtODIuMS0xMjQgMGwwIDI2LjZjMCA1LTMuOSA4LjktOC45IDguOWwtMTcuNyAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMjYuNiAuMiAwek0zOTcuNyAzODBjMCA5LjctOCAxNy43LTE3LjcgMTcuN2wtMjQ4IDBjLTkuNyAwLTE3LjctOC0xNy43LTE3LjdsMC0xNDEuN2MwLTkuNyA4LTE3LjcgMTcuNy0xNy43bDI0OCAwYzkuNyAwIDE3LjcgOCAxNy43IDE3LjdsMCAxNDEuN3ptLTI0OC0xMzcuM2wwIDEzMi45YzAgMi41LTEuOSA0LjQtNC40IDQuNGwtOC45IDBjLTIuNSAwLTQuNC0xLjktNC40LTQuNGwwLTEzMi45YzAtMi41IDEuOS00LjQgNC40LTQuNGw4LjkgMGMyLjUgMCA0LjQgMS45IDQuNCA0LjR6bTE0MS43IDQ4LjdjMCAxMy03LjIgMjQuNC0xNy43IDMwLjRsMCAzMS42YzAgNS0zLjkgOC45LTguOSA4LjlsLTE3LjcgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTMxLjZjLTEwLjUtNi4xLTE3LjctMTcuNC0xNy43LTMwLjQgMC0xOS43IDE1LjgtMzUuNCAzNS40LTM1LjRzMzUuNSAxNS44IDM1LjUgMzUuNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em0wIDE3LjdhMjMwLjMgMjMwLjMgMCAxIDEgMCA0NjAuNiAyMzAuMyAyMzAuMyAwIDEgMSAwLTQ2MC42eiJdfSx6b3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmFwc3RlciIsaWNvbjpbNTEyLDUxMixbXSwiZjNkMiIsIk0zMDYuMyAzNzMuNmMtMTQuMiAxMy42LTMxLjMgMjQuMS01MC40IDMwLjUtMTktNi40LTM2LjItMTYuOS01MC4zLTMwLjVsMTAwLjcgMHptNDQtMTk5LjZjMjAtMTYuOSA0My42LTI5LjIgNjkuNi0zNi4ybDAgMTYxLjJjMCAyMTkuNC0zMjggMjE3LjYtMzI4IC4zbDAtMTYxLjZjMjUuOSA2LjkgNDkuNiAxOS42IDY5LjUgMzYuNCA1Ni44LTQwIDEzMi41LTM5LjkgMTg4LjktLjF6TTE0MS41IDExNS41YzY0LjQtNjAgMTY0LjMtNjAuMSAyMjguOS0uMi03LjEgMy41LTEzLjkgNy4zLTIwLjYgMTEuNS01OC43LTMwLjUtMTI5LjItMzAuNC0xODcuOSAuMS02LjMtNC0xMy45LTguMi0yMC40LTExLjR6TTUxLjggOTMuMmwwIDY5LjNjLTU4LjQgMzYuNS01OC40IDEyMS4xIC4xIDE1OC4zIDI2LjQgMjQ1LjEgMzgxLjcgMjQwLjMgNDA3LjYgMS41bC4zLTEuN2M1OC43LTM2LjMgNTguOS0xMjEuNyAuMi0xNTguMmwwLTY5LjJjLTE3LjMgLjUtMzQgMy01MC4xIDcuNC04Mi05MS41LTIyNS41LTkxLjUtMzA3LjUgLjEtMTYuMy00LjQtMzMuMS03LTUwLjYtNy41ek0yNjcuMiAzNTJzMzYtLjMgNjEuMy0xLjVjMTAuMi0uNSAyMS4xLTQgMjUuNS02LjUgMjYuMy0xNS4xIDI1LjQtMzkuMiAyNi4yLTQ3LjQtNzkuNS0uNi05OS45LTMuOS0xMTMgNTUuNHpNMTMxLjcgMjk2LjdjLjggOC4yLS4xIDMyLjMgMjYuMiA0Ny40IDQuNCAyLjUgMTUuMiA2IDI1LjUgNi41IDI1LjMgMS4xIDYxLjMgMS41IDYxLjMgMS41LTEzLjItNTkuNC0zMy43LTU2LjEtMTEzLTU1LjR6TTMwMC44IDQyMC4xYy0zLjItNS4zLTYuOS03LjMtNi45LTcuMy0yNC44IDcuMy01Mi4yIDYuOS03NS45IDAgMCAwLTIuOSAxLjUtNi40IDYuNi0yLjggNC4xLTMuNyA5LjYtMy43IDkuNiAyOS4xIDE3LjYgNjcuMSAxNy42IDk2LjIgMC0uMS0uMS0uMy00LTMuMy04Ljl6Il19LGtvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZWxpY2lvdXMiLGljb246WzQ0OCw1MTIsW10sImYxYTUiLCJNNDQ2LjYgNjhjLS40LTEuNS0uOS0zLTEuNC00LjUtLjktMi41LTItNC44LTMuMy03LjEtMS40LTIuNC0zLTQuOC00LjctNi45LTIuMS0yLjUtNC40LTQuOC02LjktNi44LTEuMS0uOS0yLjItMS43LTMuMy0yLjUtMS4zLS45LTIuNi0xLjctNC0yLjQtMS44LTEtMy42LTEuOC01LjUtMi41LTEuNy0uNy0zLjUtMS4zLTUuNC0xLjctMy44LTEtNy45LTEuNS0xMi0xLjVsLTM1MiAwQzIxLjYgMzIgLjEgNTMuNSAuMSA4MGwwIDM1MmMwIDQuMSAuNSA4LjIgMS41IDEyIDIgNy43IDUuOCAxNC42IDExIDIwLjMgMSAxLjEgMi4xIDIuMiAzLjMgMy4zIDUuNyA1LjIgMTIuNiA5IDIwLjMgMTEgMy44IDEgNy45IDEuNSAxMiAxLjVsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTIuMWMtLjEtNC4xLS42LTguMi0xLjYtMTJ6TTQxNi4xIDQzMmMwIDguOC03LjIgMTYtMTYgMTZsLTE3NiAwIDAtMTkyLTE5MiAwIDAtMTc2YzAtOC44IDcuMi0xNiAxNi0xNmwxNzYgMCAwIDE5MiAxOTIgMCAwIDE3NnoiXX0sU290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imd1aWxkZWQiLGljb246WzQ0OCw1MTIsW10sImUwN2UiLCJNNDQzLjkgNjRMNSA2NGMwIDEwMy4zIDIyLjIgMTgwLjEgNDMuNCAyMjIuNCA2NC4xIDEyNy44IDE3NiAxNjEuNiAxNzcuMyAxNjEuNiA1NS43LTIwLjUgMTA0LjUtNTYuMyAxNDAuNi0xMDMuNSAyNS45LTMzLjkgNTMuMS04Ny4yIDY1LjktMTQ1LjhsLTI1OS45IDBjNC4xIDM2LjQgMjIuMiA2Ny45IDQ1LjEgODYuOWw4OC42IDBjLTE3IDI4LjItNDguMiA1NC40LTgwLjUgNjkuNS0zMS4yLTEzLjMtNjkuMS00Ni41LTk2LjUtOTguNC0yNi43LTUzLjgtMjcuMS0xMDUuOS0yNy4xLTEwNS45bDMzNi4xIDBjNC0yOC44IDUuOS01Ny45IDUuOS04Ni45eiJdfSxDb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieGJveCIsaWNvbjpbNTEyLDUxMixbXSwiZjQxMiIsIk0zNjkuOSAzMTguMmM0NC4zIDU0LjMgNjQuNyA5OC44IDU0LjQgMTE4LjctNy45IDE1LjEtNTYuNyA0NC42LTkyLjYgNTUuOS0yOS42IDkuMy02OC40IDEzLjMtMTAwLjQgMTAuMi0zOC4yLTMuNy03Ni45LTE3LjQtMTEwLjEtMzktMjcuOS0xOC4yLTM0LjItMjUuNy0zNC4yLTQwLjYgMC0yOS45IDMyLjktODIuMyA4OS4yLTE0Mi4xIDMyLTMzLjkgNzYuNS03My43IDgxLjQtNzIuNiA5LjQgMi4xIDg0LjMgNzUuMSAxMTIuMyAxMDkuNXpNMTg4LjYgMTQzLjhjLTI5LjctMjYuOS01OC4xLTUzLjktODYuNC02My40LTE1LjItNS4xLTE2LjMtNC44LTI4LjcgOC4xLTI5LjIgMzAuNC01My41IDc5LjctNjAuMyAxMjIuNC01LjQgMzQuMi02LjEgNDMuOC00LjIgNjAuNSA1LjYgNTAuNSAxNy4zIDg1LjQgNDAuNSAxMjAuOSA5LjUgMTQuNiAxMi4xIDE3LjMgOS4zIDkuOS00LjItMTEtLjMtMzcuNSA5LjUtNjQgMTQuMy0zOSA1My45LTExMi45IDEyMC4zLTE5NC40em0zMTEuNiA2My41Yy0xNi45LTgwLTY3LjUtMTMwLjMtNzQuNi0xMzAuMy03LjMgMC0yNC4yIDYuNS0zNiAxMy45LTIzLjMgMTQuNS00MSAzMS40LTY0LjMgNTIuOCA0Mi40IDUzLjMgMTAyLjIgMTM5LjQgMTIyLjkgMjAyLjMgNi44IDIwLjcgOS43IDQxLjEgNy40IDUyLjMtMS43IDguNS0xLjcgOC41IDEuNCA0LjYgNi4xLTcuNyAxOS45LTMxLjMgMjUuNC00My41IDcuNC0xNi4yIDE1LTQwLjIgMTguNi01OC43IDQuMy0yMi41IDMuOS03MC44LS44LTkzLjR6TTE0MS4zIDQzYzQ3LjctMi41IDEwOS43IDM0LjUgMTE0LjMgMzUuNCAuNyAuMSAxMC40LTQuMiAyMS42LTkuNyA2My45LTMxLjEgOTQtMjUuOCAxMDcuNC0yNS4yLTYzLjktMzkuMy0xNTIuNy01MC0yMzMuOS0xMS43LTIzLjQgMTEuMS0yNCAxMS45LTkuNCAxMS4yeiJdfSxMb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW50YXBwZCIsaWNvbjpbNjQwLDUxMixbXSwiZjQwNSIsIk00MDEuNSA0OS45QzMyMS43IDIxMCAzMTYuOSAyMDIuNCAzMTMuNiAyMjMuMWwtNS4yIDMyLjhjLTEuOSAxMi02LjYgMjMuNS0xMy43IDMzLjRMMTQ1LjggNDk3LjFjLTcuNiAxMC42LTIwLjQgMTYuMi0zMy40IDE0LjYtNDAuMy01LTc3LjgtMzIuMi05NS4zLTY4LjUtNS43LTExLjgtNC41LTI1LjggMy4xLTM2LjRMMTY5LjEgMTk4LjljNy4xLTkuOSAxNi40LTE4IDI3LjItMjMuN2wyOS4zLTE1LjVjMTguNS05LjggOS43LTExLjkgMTM1LjYtMTM4LjkgMS00LjggMS03LjMgMy42LTggMy0uNyA2LjYtMSA2LjMtNC42bC0uNC00LjZjLS4yLTEuOSAxLjMtMy42IDMuMi0zLjYgNC41LS4xIDEzLjIgMS4yIDI1LjYgMTAgMTIuMyA4LjkgMTYuNCAxNi44IDE3LjcgMjEuMSAuNiAxLjgtLjYgMy43LTIuNCA0LjJsLTQuNSAxLjFjLTMuNCAuOS0yLjUgNC40LTIuMyA3LjQgLjEgMi44LTIuMyAzLjYtNi41IDYuMXpNMjMwLjMgMzYuNGMzLjQgLjkgMi41IDQuNCAyLjMgNy40LS4yIDIuNyAyLjEgMy41IDYuNCA2IDcuOSAxNS45IDE1LjMgMzAuNSAyMi4yIDQ0IC43IDEuMyAyLjMgMS41IDMuMyAuNSAxMS4yLTEyIDI0LjYtMjYuMiA0MC41LTQyLjYgMS4zLTEuNCAxLjQtMy41IC4xLTQuOS04LTguMi0xNi41LTE2LjktMjUuNi0yNi4xLTEtNC43LTEtNy4zLTMuNi04LTMtLjgtNi42LTEtNi4zLTQuNiAuMy0zLjMgMS40LTguMS0yLjgtOC4yLTQuNS0uMS0xMy4yIDEuMS0yNS42IDEwLTEyLjMgOC45LTE2LjQgMTYuOC0xNy43IDIxLjEtMS40IDQuMiAzLjYgNC42IDYuOCA1LjR6TTYyMC4yIDQwNi43TDQ3MS40IDE5OC44Yy0xMy4yLTE4LjUtMjYuNi0yMy40LTU2LjQtMzkuMS0xMS4yLTUuOS0xNC4yLTEwLjktMzAuNS0yOC45LTEtMS4xLTIuOS0uOS0zLjYgLjUtNDYuMyA4OC44LTQ3LjEgODIuOC00OSA5NC44LTEuNyAxMC43LTEuMyAyMCAuMyAyOS44IDEuOSAxMiA2LjYgMjMuNSAxMy43IDMzLjRMNDk0LjggNDk3LjJjNy42IDEwLjYgMjAuMiAxNi4yIDMzLjEgMTQuNyA0MC4zLTQuOSA3OC0zMiA5NS43LTY4LjYgNS40LTExLjkgNC4zLTI1LjktMy40LTM2LjZ6Il19LFRvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGx1cy1nIixpY29uOls2NDAsNTEyLFtdLCJmMGQ1IiwiTTM4Ni4zIDIyOC41YzEuOCA5LjcgMy4xIDE5LjQgMy4xIDMyIDAgMTA5LjgtNzMuNiAxODcuNS0xODQuNCAxODcuNS0xMDYuMSAwLTE5Mi04NS45LTE5Mi0xOTJTOTguOSA2NCAyMDUgNjRjNTEuOSAwIDk1LjEgMTguOSAxMjguNiA1MC4zbC01Mi4xIDUwYy0xNC4xLTEzLjYtMzktMjkuNi03Ni41LTI5LjYtNjUuNSAwLTExOC45IDU0LjItMTE4LjkgMTIxLjNTMTM5LjUgMzc3LjMgMjA1IDM3Ny4zYzc2IDAgMTA0LjUtNTQuNyAxMDktODIuOGwtMTA5IDAgMC02NiAxODEuMyAwIDAgMHptMTg1LjQgNi40bDAtNTUuNy01NiAwIDAgNTUuNy01NS43IDAgMCA1NiA1NS43IDAgMCA1NS43IDU2IDAgMC01NS43IDU1LjcgMCAwLTU2LTU1LjcgMHoiXX0sX290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGh1Yi1hbHQiLGljb246WzUxMiw1MTIsW10sImYxMTMiLCJNMjAyLjEgMzI4LjdjMCAyMC45LTEwLjkgNTUuMS0zNi43IDU1LjFzLTM2LjctMzQuMi0zNi43LTU1LjEgMTAuOS01NS4xIDM2LjctNTUuMSAzNi43IDM0LjIgMzYuNyA1NS4xek00OTYgMjc4LjJjMCAzMS45LTMuMiA2NS43LTE3LjUgOTUtMzcuOSA3Ni42LTE0Mi4xIDc0LjgtMjE2LjcgNzQuOC03NS44IDAtMTg2LjIgMi43LTIyNS42LTc0LjgtMTQuNi0yOS0yMC4yLTYzLjEtMjAuMi05NSAwLTQxLjkgMTMuOS04MS41IDQxLjUtMTEzLjYtNS4yLTE1LjgtNy43LTMyLjQtNy43LTQ4LjggMC0yMS41IDQuOS0zMi4zIDE0LjYtNTEuOCA0NS4zIDAgNzQuMyA5IDEwOC44IDM2IDI5LTYuOSA1OC44LTEwIDg4LjctMTAgMjcgMCA1NC4yIDIuOSA4MC40IDkuMiAzNC0yNi43IDYzLTM1LjIgMTA3LjgtMzUuMiA5LjggMTkuNSAxNC42IDMwLjMgMTQuNiA1MS44IDAgMTYuNC0yLjYgMzIuNy03LjcgNDguMiAyNy41IDMyLjQgMzkgNzIuMyAzOSAxMTQuMnptLTY0LjMgNTAuNWMwLTQzLjktMjYuNy04Mi42LTczLjUtODIuNi0xOC45IDAtMzcgMy40LTU2IDYtMTQuOSAyLjMtMjkuOCAzLjItNDUuMSAzLjItMTUuMiAwLTMwLjEtLjktNDUuMS0zLjItMTguNy0yLjYtMzctNi01Ni02LTQ2LjggMC03My41IDM4LjctNzMuNSA4Mi42IDAgODcuOCA4MC40IDEwMS4zIDE1MC40IDEwMS4zbDQ4LjIgMGM3MC4zIDAgMTUwLjYtMTMuNCAxNTAuNi0xMDEuM3ptLTgyLjYtNTUuMWMtMjUuOCAwLTM2LjcgMzQuMi0zNi43IDU1LjFzMTAuOSA1NS4xIDM2LjcgNTUuMSAzNi43LTM0LjIgMzYuNy01NS4xLTEwLjktNTUuMS0zNi43LTU1LjF6Il19LEFvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnZXQtcG9ja2V0IixpY29uOls0NDgsNTEyLFtdLCJmMjY1IiwiTTQwNy42IDY0bC0zNjcgMEMxOC41IDY0IDAgODIuNSAwIDEwNC42TDAgMjM5LjhDMCAzNjQuNSA5OS43IDQ2NCAyMjQuMiA0NjQgMzQ4LjIgNDY0IDQ0OCAzNjQuNSA0NDggMjM5LjhsMC0xMzUuMkM0NDggODIuMiA0MzAuMyA2NCA0MDcuNiA2NHptLTE2MiAyNjguNWMtMTIuNCAxMS44LTMxLjQgMTEuMS00Mi40IDAtMTEzLjctMTA4LjktMTE0LjktMTA1LjEtMTE0LjktMTIzLjIgMC0xNi45IDEzLjgtMzAuNyAzMC43LTMwLjcgMTcgMCAxNi4xIDMuOCAxMDUuMiA4OS4zIDkwLjYtODYuOSA4OC42LTg5LjMgMTA1LjUtODkuM3MzMC43IDEzLjggMzAuNyAzMC43YzAgMTcuOC0yLjkgMTUuNy0xMTQuOCAxMjMuMnoiXX0sJG90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdsaWRlIixpY29uOls0NDgsNTEyLFtdLCJmMmE1IiwiTTI1Mi44IDE0OC42YzAgOC44LTEuNiAxNy43LTMuNCAyNi40LTUuOCAyNy44LTExLjYgNTUuOC0xNy4zIDgzLjYtMS40IDYuMy04LjMgNC45LTEzLjcgNC45LTIzLjggMC0zMC41LTI2LTMwLjUtNDUuNSAwLTI5LjMgMTEuMi02OC4xIDM4LjUtODMuMSA0LjMtMi41IDkuMi00LjIgMTQuMS00LjIgMTEuNCAwIDEyLjMgOC4zIDEyLjMgMTcuOXpNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzg0IDI2N2MwLTUuMS0yMC44LTM3LjctMjUuNS0zOS41LTIuMi0uOS03LjItMi4zLTkuNi0yLjMtMjMuMSAwLTM4LjcgMTAuNS01OC4yIDIxLjVsLS41LS41YzQuMy0yOS40IDE0LjYtNTcuMiAxNC42LTg3LjQgMC00NC42LTIzLjgtNjIuNy02Ny41LTYyLjctNzEuNyAwLTEwOCA3MC44LTEwOCAxMjMuNSAwIDU0LjcgMzIgODUgODYuMyA4NSA3LjUgMCA2LjktLjYgNi45IDIuMy0xMC41IDgwLjMtNTYuNSA4Mi45LTU2LjUgNTguOSAwLTI0LjQgMjgtMzYuNSAyOC4zLTM4LS4yLTcuNi0yOS4zLTE3LjItMzYuNy0xNy4yLTIxLjEgMC0zMi43IDMzLTMyLjcgNTAuNiAwIDMyLjMgMjAuNCA1NC43IDUzLjMgNTQuNyA0OC4yIDAgODMuNC00OS43IDk0LjMtOTEuNyA5LjQtMzcuNyA3LTM5LjQgMTIuMy00Mi4xIDIwLTEwLjEgMzUuOC0xNi44IDU4LjQtMTYuOCAxMS4xIDAgMTkgMi4zIDM2LjcgNS4yIDEuOCAuMSA0LjEtMS43IDQuMS0zLjV6Il19LERvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaXR5IixpY29uOls1MTIsNTEyLFtdLCJmMzdhIiwiTTg2LjUgNjcuMmM5NS40LTg5LjIgMjQ2LjEtOTEuMiAzNDMuMSAzLjggMTQuMyAxNC4xLTYuNCAzNy4xLTIyLjQgMjEuNS04NC44LTgyLjQtMjE1LjgtODAuMy0yOTguOS0zLjItMTYuMyAxNS4xLTM2LjUtOC4zLTIxLjgtMjIuMXptOTguOSA0MTguNmMxOS4zIDUuNyAyOS4zLTIzLjYgNy45LTMwLTExMi4yLTMzLjktMTc1LjgtMTQ5LjctMTQ3LjUtMjYxIDUtMTkuNi0yNC45LTI4LjEtMzAuMi03LjEtMzIuMSAxMjcuNCA0MS4xIDI1OS44IDE2OS44IDI5OC4xem0xNDguMS0yYzEyMS45LTQwLjIgMTkyLjktMTY2LjkgMTY0LjQtMjkxLTQuNS0xOS43LTM0LjktMTMuOC0zMCA3LjkgMjQuMiAxMDcuNy0zNy4xIDIxNy45LTE0My4yIDI1My40LTIxLjIgNy0xMC40IDM2IDguOCAyOS43em0tNjIuOS03OWwuMi03MS44YzAtOC4yLTYuNi0xNC44LTE0LjgtMTQuOHMtMTQuOCA2LjctMTQuOCAxNC44bC0uMiA3MS44YzAgOC4yIDYuNiAxNC44IDE0LjggMTQuOHMxNC44LTYuNiAxNC44LTE0Ljh6bTcxLTI2OWMyLjEgOTAuOSA0LjcgMTMxLjktODUuNSAxMzIuNS05Mi41LS43LTg2LjktNDQuMy04NS41LTEzMi41IDAtMjEuOC0zMi41LTE5LjYtMzIuNSAwbDAgNzEuNmMwIDY5LjMgNjAuNyA5MC45IDExOCA5MC4xIDU3LjMgLjggMTE4LTIwLjggMTE4LTkwLjFsMC03MS42YzAtMTkuNi0zMi41LTIxLjgtMzIuNSAweiJdfSxFb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3BleHBsb3JlciIsaWNvbjpbNTEyLDUxMixbXSwiZjJkZSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem00ODAgMGEyMjQgMjI0IDAgMSAwIC00NDggMCAyMjQgMjI0IDAgMSAwIDQ0OCAwek0xNjAuOSAxMjQuNmw4Ni45IDM3LjEtMzcuMSA4Ni45LTg2LjktMzcuMSAzNy4xLTg2Ljl6bTExMCAxNjkuMWw0Ni42IDk0LTE0LjYgMC01MC0xMDAtNDguOSAxMDAtMTQgMCA1MS4xLTEwNi45LTIyLjMtOS40IDYtMTQgNjguNiAyOS4xLTYgMTQuMy0xNi41LTcuMXpNMjU5LjEgMTc3LjRsNjguNiAyOS40LTI5LjQgNjguMy02OC4zLTI5LjEgMjkuMS02OC42em04MC4zIDQyLjlsNTQuNiAyMy4xLTIzLjQgNTQuMy01NC4zLTIzLjEgMjMuMS01NC4zeiJdfSxOb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVnYXBvcnQiLGljb246WzUxMiw1MTIsW10sImY1YTMiLCJNMjIyLjUgMjA5LjZsMCA2Ni4yIDMzLjUgMzMuNSAzMy4zLTMzLjMgMC02Ni40LTMzLjQtMzMuNC0zMy40IDMzLjR6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDAxLjEgNDIyLjRsLTI2LjEgMTkuMi0yNi0xOS4yIDAtNjUuNS0zMy40LTMzLjQtMzMuNCAzMy40IDAgNjUuNS0yNi4yIDE5LjItMjYuMS0xOS4yIDAtNjUuNS0zMy40LTMzLjQtMzMuNSAzMy40IDAgNjUuNS0yNi4xIDE5LjItMjYuMS0xOS4yIDAtODcgNTkuNS01OS41IDAtODcuOSA1OS41LTU5LjUgMC03NS42IDI2LjEtMTkuMiAyNi4xIDE5LjIgMCA3NS42IDU5LjUgNTkuNSAwIDg3LjYgNTkuNyA1OS43IDAgODcuMS0uMSAweiJdfSxQb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWRiIixpY29uOls1NzYsNTEyLFtdLCJmOGNhIiwiTTE3LjQgMTYwLjRsLTEwLjQgMTkxLjYgNDMuOSAwIDUuNi03OS44IDI3LjkgNzkuOCA0NC43IDAgMjUuNS03Ny40IDQuOCA3Ny40IDQ1LjUgMC0xMi44LTE5MS42LTQ1LjUgMC00MC43IDExNy4zLTQyLjMtMTE3LjMtNDYuMyAwem0yODEgMGwtNDcuOSAwIDAgMTkxLjYgNDcuOSAwczk1IC44IDk0LjItOTUuOGMtLjgtOTQuMi05NC4yLTk1LjgtOTQuMi05NS44bDAgMHptLTEuMiAxNDYuNWwwLTEwMi4xczQ2IDQuMyA0Ni44IDUwLjYtNDYuOCA1MS41LTQ2LjggNTEuNWwwIDB6bTIzOC4zLTc0LjJjNy4yLTExLjQgMTAtMjUgOC0zOC4zLTUuMy0zNS44LTU1LjEtMzQuMy01NS4xLTM0LjNsLTUxLjkgMCAwIDE5MS42IDQ1LjUgMHM4NyA0LjggODctNjMuOGMwLTQzLjEtMzMuNS01NS4xLTMzLjUtNTUuMWwwIDB6bS01MS45LTMxLjlzMTMuNi0xLjYgMTYgOS42YzEuNCA2LjctNCAxMi00IDEybC0xMiAwIDAtMjEuNnptLS4xIDEwOS41bC4xLTI0LjkgMC0xOC4yIC4xIDBzNDEuNi00LjcgNDEuMiAyMi40Yy0uMyAyNS43LTQxLjMgMjAuNy00MS4zIDIwLjdsMCAweiJdfSxJb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFnZTQiLGljb246WzUxMiw1MTIsW10sImYzZDciLCJNMjU2IDUwNEMxMTkgNTA0IDggMzkzIDggMjU2UzExOSA4IDI1NiA4YzIwLjkgMCA0MS4zIDIuNiA2MC43IDcuNUw1MC4zIDM5MiAyNTYgMzkyIDI1NiA1MDR6bTAtMTQzLjZsMC0yMTMuNi0xNDkuNCAyMTMuNiAxNDkuNCAwek0zNTIgMzkybDAgOTIuN2M0NS43LTE5LjIgODQuNS01MS43IDExMS40LTkyLjdMMzUyIDM5MnptNTcuNC0xMzguMmwtMjEuMiA4LjQgMjEuMiA4LjMgMC0xNi43em0tMjAuMyA1NC41Yy02LjcgMC04IDYuMy04IDEyLjlsMCA3LjcgMTYuMiAwIDAtMTBjMC01LjktMi4zLTEwLjYtOC4yLTEwLjZ6TTUwNCAyNTZjMCAzNy4zLTguMiA3Mi43LTIzIDEwNC40bC0xMjkgMCAwLTMzMy4xQzQ0MS4zIDY0LjggNTA0IDE1My4xIDUwNCAyNTZ6TTM2OC40IDE0My42bDY4LjIgMCAwLTQ3LjYtMTMuOSAwIDAgMzIuNi0xMy45IDAgMC0yOS42LTEzLjkgMCAwIDI5LjYtMTIuNyAwIDAtMzIuNi0xMy45IDAgMCA0Ny42IC4xIDB6bTY4LjEgMTg1LjNsLTI2LjUgMCAwLTExYzAtMTUuNC01LjYtMjUuMi0yMC45LTI1LjItMTUuNCAwLTIwLjcgMTAuNi0yMC43IDI1LjlsMCAyNS4zIDY4LjIgMCAwLTE1LS4xIDB6bTAtMTAzbC02OC4yIDI5LjcgMCAxMi40IDY4LjIgMjkuNSAwLTE2LjYtMTQuNC01LjcgMC0yNi41IDE0LjQtNS45IDAtMTYuOXptLTQuOC02OC41bC0zNS42IDAgMCAyNi42IDEzLjkgMCAwLTEyLjIgMTEgMGM4LjYgMTUuOCAxLjMgMzUuMy0xOC42IDM1LjMtMjIuNSAwLTI4LjMtMjUuMy0xNS41LTM3LjdsLTExLjYtMTAuNmMtMTYuMiAxNy41LTEyLjIgNjMuOSAyNy4xIDYzLjkgMzQgMCA0NC43LTM1LjkgMjkuMy02NS4zeiJdfSxGb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhlLXJlZC15ZXRpIixpY29uOls1MTIsNTEyLFtdLCJmNjlkIiwiTTQ4OC43IDI0MS43bDIwLjcgNy4xYy05LjYtMjMuOS0yMy45LTM3LTMxLjctNDQuOGw3LjEtMTguMmMuMiAwIDEyLjMtMjcuOC0yLjUtMzAuNy0uNi0xMS4zLTYuNi0yNy0xOC40LTI3LTcuNi0xMC42LTE3LjctMTIuMy0zMC43LTUuOS05LjEgNC40LTE3LjYgMTAtMjUuMyAxNi41LTUuMy02LjQtMyAuNC0zLTI5LjgtMzcuMS0yNC4zLTQ1LjQtMTEuNy03NC44IDNsLjUgLjVjLTIyLTcuNy00NS4xLTEyLjItNjguNC0xMy4zLTUuNS04LjctMTguNi0xOS4xLTI1LjEtMjUuMWwyNC44IDcuMWMtNS41LTUuNS0yNi44LTEyLjktMzQuMi0xNS4yIDE4LjItNC4xIDI5LjgtMjAuOCA0Mi41LTMzLTM0LjktMTAuMS02Ny45LTUuOS05Ny45IDExLjhsMTItNDQuMi0xLjgtLjVjLTMxLjYgMjQuMi0zMyA0MS45LTMzLjcgNDUuNS0uOS0yLjQtNi4zLTE5LjYtMTUuMi0yNy0zLjMgOC4xLTMuNSAxNy4xLS41IDI1LjMgMyA4LjQgNS45IDE0LjggOC40IDE4LjktMTYtMy4zLTI4LjMtNC45LTQ5LjIgMGwtMy43IDAgMzMgMTQuM2MtMjAuMiAxOC45LTM2LjEgNDEuOS00Ni43IDY3LjRsLTEuNyA4LjQgMS43IDEuNyA3LjYtNC43Yy0zLjMgMTEuNi01LjMgMTkuNC02LjYgMjUuOC0xMC45IDEyLjItMjAuMiAyNS44LTI3LjggNDAuMy0xNSAxLTMxLjggMTAuOC00MC4zIDE0LjNsMyAzLjQgMjguOCAxYy0uNSAxLS43IDIuMi0xLjIgMy4yLTcuMyA2LjQtMzkuOCAzNy43LTMzIDgwLjdsMjAuMi0yMi40Yy41IDEuNyAuNyAzLjQgMS4yIDUuMiAwIDI1LjUgLjQgODkuNiA2NC45IDE1MC41IDQzLjYgNDAgOTYgNjAuMiAxNTcuNSA2MC4yIDEyMS43IDAgMjIzLTg3LjMgMjIzLTIxMS41IDYuOC05LjctMS4yIDMgMTYuNy0yNS4xbDEzIDE0LjMgMi41LS41Yy0xLjgtMTEuNy00LjgtMjMuMS04LjktMzQuMi0xLjUtNC44LTMuOC05LjMtNi44LTEzLjNsMCAwek0zOTguNSAxMTEuMmwtLjUgMjEuOWM1LjUgMTguMSAxNi45IDE3LjIgMjIuNCAxNy4ybC0zLjQtNC43IDIyLjQtNS40Yy05IC41LTE4IC41LTI3IDAgMTIuOC0yLjEgMzMuMy0yOSA0My0xMS4zIDMuNCA3LjYgNi40IDE3LjIgOS4zIDI3LjhsMS43LTUuOWMtMS4zLTUtMS44LTEwLjEtMS43LTE1LjIgNS40IC41IDguOCAzLjQgOS4zIDEwLjEgLjUgNi40IDEuNyAxNC44IDMuNCAyNS4zbDQuNy0xMS4zYzQuNiAwIDQuNS0zLjYtMi41IDIwLjctMjAuOS04LjctMzUuMS04LjQtNDYuNS04LjRsMTguMi0xNmMtMjUuMyA4LjItMzMgMTAuOC01NC44IDIwLjktMS4xLTUuNC01LTEzLjUtMTYtMTkuOS0zLjIgMy44LTIuOCAuOS0uNyAxNC44bC0yLjUgMGMtMS4yLTguMi00LjEtMTYtOC40LTIzLjFsNC4yLTMuNGM4LjQtNy4xIDExLjgtMTQuMyAxMC42LTIxLjktLjUtNi40LTUuNC0xMy41LTEzLjUtMjAuNyA1LjYtMy40IDE1LjItLjQgMjguMyA4LjV6bS0zOS42LTEwLjFjMi43IDEuOSAxMS40IDUuNCAxOC45IDE3LjIgNC4yIDguNCA0IDkuOCAzLjQgMTEuMS0uNSAyLjQtLjUgNC4zLTMgNy4xLTEuNyAyLjUtNS40IDQuNy0xMS44IDcuNi03LjYtMTMtMTYuNS0yMy42LTI3LjgtMzEuMmwyMC4zLTExLjh6bS0yNjcuNCA0MmwxLjItMS43YzEuMi0yLjkgNC4yLTcuNiA5LjMtMTUuMmwyLjUtMy40LTEzIDEyLjMgNS40LTQuNy0xMC4xIDkuMy00LjIgMS4yYzEyLjMtMjQuMSAyMy4xLTQxLjMgMzIuNS01MC4yIDkuMy05LjMgMTYtMTYgMjAuMi0xOS40bC02LjQgMS4yYy0xMS4zLTQuMi0xOS40LTcuMS0yNC44LTguNCAyLjUtLjUgMy43LS41IDMuMi0uNSAxMC4zIDAgMTcuNSAuNSAyMC45IDEuMiA1LjIgMS43IDEwLjYgMi41IDE2IDIuNWwuNS0xLjctOC40LTM1LjggMTMuNSAyOWMyLjgtNC40IDQuOC05LjIgNS45LTE0LjMgMS43LTYuNCA1LjQtMTMgMTAuMS0xOS40czcuNi0xMC42IDkuMy0xMS4zYy0yLjYgOC4zLTQuNyAxNi44LTYuNCAyNS4zbC0xLjcgNy4xLS41IDQuNyAyLjUgMi41YzIxLjktMTMuNSA0NS41LTE5LjQgNzEuMy0xOC45bDIxLjEgLjVjLTExLjggMTMuNS0yNy44IDIxLjktNDguNSAyNC44LTcuNyAxLjQtMTUuNiAyLjQtMjMuNCAyLjlsLS4yLS41LTIuNS0xLjJjLTQuOC0xLTkuNy0uMy0xNCAyLTIuNS0uMi00LjktLjUtNy4xLS43bC0yLjUgMS43IC41IDEuMmMyIC4yIDMuOSAuNSA2LjIgLjdsLTIgMy40IDMuNC0uNS0xMC42IDExLjNjLTQuMiAzLTUuNCA2LjQtNC4yIDkuM2w1LjQtMy40IDEuMiAwYzYuMS04LjIgMTUuMi0xMy42IDI1LjMtMTUuMmwwLTNjNi40IC41IDEzIDEgMTkuNCAxLjIgNi40IDAgOC40IC41IDUuNCAxLjIgNy4yIDQgMTQuMSA4LjYgMjAuNyAxMy41IDEzLjUgMTAuMSAyMy42IDIxLjkgMzAgMzUuNCA4LjggMTguMiAxMy41IDM3LjEgMTMuNSA1Ni42IDAgOS41LTEgMTktMyAyOC4zLTMuNSAxNS45LTguOSAzMS4zLTE2IDQ2bDIuNSAuNWMxOC4yLTE5LjcgNDEuOS0xNiA0OS4yLTE2bC02LjQgNS45IDIyLjQgMTcuNy0xLjcgMzAuN2MtNS40LTEyLjMtMTYuNS0yMS4xLTMzLTI3LjggMTYuNSAxNC44IDIzLjYgMjEuMSAyMS45IDIwLjItNC44LTIuOC0zLjUtMS45LTEwLjgtMy43IDQuMSA0LjEgMTcuNSAxOC44IDE4LjIgMjAuN2wuMiAuMi0uMiAuMmMwIDEuOCAxLjYtMS4yLTE0IDIyLjktNzUuMi0xNS4zLTEwNi4zLTQyLjctMTQxLjItNjMuMmwxMS44IDEuMmMtMTEuOC0xOC41LTE1LjYtMTcuNy0zOC40LTI2LjFsMTAuNi04LjRjLTguOC0zLTE4LjItMy0yOC4zIC41bDcuNi0xMC42LTEuMi0xLjdjLTE0LjkgNC4zLTE5LjggOS4yLTIyLjYgMTEuMy0xLjEtNS41LTIuOC0xMi40LTEyLjMtMjguOGwtMS4yIDI3LTEzLjItNWMxLjUtMjUuMiA1LjQtNTAuNSAxMy4yLTc0LjZ6TTM2OCA0NzMuMWMtNDkuOSAyNS01Ni4xIDIyLjQtNTkgMjMuOS0yOS44LTExLjgtNTAuOS0zMS43LTYzLjUtNTguOGwzMCAxNi41Yy05LjgtOS4zLTE4LjMtMTYuNS0zOC40LTQ0LjNsMTEuOCAyMy4xLTE3LjctNy42YzE0LjIgMjEuMSAyMy41IDUxLjcgNjYuNiA3My41LTEyMC44IDI0LjItMTk5LTcyLjEtMjAwLjktNzQuMyAxMS4xIDkuMiAyMi45IDE3LjUgMzUuNCAyNC44IDMuNCAxLjcgNy4xIDIuNSAxMC4xIDEuMmwtMTYtMjAuN2M5LjIgNC4yIDkuNSA0LjUgNjkuMSAyOS00Mi41LTIwLjctNzMuOC00MC44LTkzLjItNjAuMi0uNSA2LjQtMS4yIDEwLjEtMS4yIDEwLjEgOC43IDcuMyAxNS44IDE2LjQgMjAuNyAyNi42LTM5LTE4LjktNTcuNi00Ny42LTcxLjMtODIuNiA0OS45IDU1LjEgMTE4LjkgMzcuNSAxMjAuNSAzNy4xIDM0LjggMTYuNCA2OS45IDIzLjYgMTEzLjkgMTAuNiAzLjMgMCAyMC4zIDE3IDI1LjMgMzkuMWw0LjItMy0yLjUtMjMuNmM5IDkgMjQuOSAyMi42IDM0LjQgMTMtMTUuNi01LjMtMjMuNS05LjUtMjkuNS0zMS43IDQuNiA0LjIgNy42IDkgMjcuOCAxNWwxLjItMS4yLTEwLjUtMTQuMmMxMS43LTQuOC0zLjUgMSAzMi0xMC44IDQuMyAzNC4zIDkgNDkuMiAuNyA4OS41ek00ODMuMyAyNTguN2wtMi41IC41IDMgOS4zYy0zLjUgNS45LTIzLjcgNDQuMy03MS42IDc5LjctMzkuNSAyOS44LTc2LjYgMzkuMS04MC45IDQwLjNsLTcuNi03LjEtMS4yIDMgMTQuMyAxNi03LjEtNC43IDMuNCA0LjItMS4yIDAtMjEuOS0xMy41IDkuMyAyNi42LTE5LTI3LjktMS4yIDIuNSA3LjYgMjljLTYuMS04LjItMjEtMzIuNi01Ni44LTM5LjZsMzIuNSAyMS4yYy0zMS4yIDQuNy02MyAyLjUtOTMuMi02LjQtNC4yLTEuMi04LjktMi41LTEzLjUtNC4ybDEuMi0zLTQ0LjgtMjIuNCAyNi4xIDIyLjRjLTU3LjcgOS4xLTExMy0yNS40LTEyNi40LTgzLjRMMjkuMyAyODQuOCA3IDMwNy4xYzE5LjUtNTcuNSAyNS42LTU3LjkgNTEuNC03MC4xLTkuMS01LjMtMS42LTMuMy0zOC40LTkuMyAxNS44LTUuOCAzMy0xNS40IDczIDUuMiAxLjItLjcgMi40LTEuMyAzLjctMS43IC42LTMuMiAuNC0uOCAxLTExLjggMy45IDEwIDMuNiA4LjcgMyA5LjNsMS43IC41YzEyLjctNi41IDguOS00LjUgMTctOC45bC01LjQgMTMuNSAyMi4zLTUuOC04LjQgOC40IDIuNSAyLjVjNC41LTEuOCAzMC4zIDMuNCA0MC44IDE2bC0yMy42LTIuNWMzOS40IDIzIDUxLjUgNTQgNTUuOCA2OS42bDEuNy0xLjJjLTIuOC0yMi4zLTEyLjQtMzMuOS0xNi00MC4xIDQuMiA1IDM5LjIgMzQuNiAxMTAuNCA0Ni0xMS4zLS41LTIzLjEgNS40LTM0LjkgMTguOWw0Ni43LTIwLjItOS4zIDIxLjljNy42LTEwLjEgMTQuOC0yMy42IDIxLjItMzkuNmwwLS41IDEuMi0zLTEuMiAxNmMxMy41LTQxLjggMjUuMy03OC41IDM1LjQtMTA5LjdsMTMuNS0yNy44IDAtMi01LjQtNC4yIDEwLjEgMCA1LjkgNC4yIDIuNS0xLjItMy40LTE2IDEyLjMgMTguOSA0MS44LTIwLjItMTQuOCAxMyAuNSAyLjkgMTcuNy0uNWMxMS4xIC40IDIyLjEgMS44IDMzIDQuMmwtMjMuNiAyLjUtMS4yIDMgMjYuNiAyMy4xYzkuOSA5LjkgMTguOSAyMC42IDI3IDMyLTExLjItMy4zLTEwLjMtMy40LTIxLjItMy40bDEyLjMgMzIuNS04LjktMTIuOHptLTYuMS03MS4zbC0zLjkgMTMtMTQuMy0xMS44IDE4LjItMS4yem0tMjU0LjggNy4xYzEuNyAxMC42IDQuNyAxNy43IDguOCAyMS45LTkuMyA2LjYtMjcuNSAxMy45LTQ2LjUgMTZsLjUgMS4yYzguMyAxLjMgMTYuOSAuNCAyNC44LTIuNWwtNy4xIDEzYzQuMi0xLjcgMTAuMS03LjEgMTcuNy0xNC44IDExLjktNS41IDEyLjctNS4xIDIwLjItMTYtMTIuNy02LjQtMTUuNy0xMy43LTE4LjQtMTguOHptMy43LTEwMi4zYy02LjQtMy40LTEwLjYgMy0xMi4zIDE4LjlzMi41IDI5LjUgMTEuOCAzOS42IDE4LjIgMTAuNiAyNi4xIDMgMy40LTIzLjYtMTEuMy00Ny43Yy0zLjUtNS43LTguNC0xMC41LTE0LjMtMTMuOGwwIDB6bS00LjcgNDYuM2M1LjQgMi4yIDEwLjUgMS45IDEyLjMtMTAuNmwwLTQuNy0xLjIgLjVjLTQuMy0zLjEtMi41LTQuNS0xLjctNi4ybC41LS41Yy0uOS0xLjItNS04LjEtMTIuNSA0LjctLjUtMTMuNSAuNS0yMS45IDMtMjQuOCAxLjItMi41IDQuNy0xLjIgMTEuMyA0LjIgNi40IDUuNCAxMS4zIDE2IDE1LjIgMzIuNSA2LjUgMjgtMTkuOCAyNi4yLTI2LjkgNC45em0tNDUtNS41YzEuNiAuMyA5LjMtMS4xIDkuMy0xNC44bC0uNSAwYy01LjQtMS4xLTIuMi01LjUtLjctNS45LTEuNy0zLTMuNC00LjItNS40LTQuNy04LjEgMC0xMS42IDEyLjctOC4xIDIxLjIgLjUgMS4xIDEuMyAyIDIuMiAyLjhzMiAxLjIgMy4yIDEuNGwwIDB6bTQwLjEtNTAuMWwtMi41IC41IC41IDNjOS4xLS41IDE4LjEgMS41IDI2LjEgNS45LTIuNS01LjUtMTAtMTQuMy0yOC4zLTE0LjNsLjUgMi41IDMuNyAyLjR6bS03MS44IDQ5LjRjMjEuNyAxNi44IDE2LjUgMjEuNCA0Ni41IDIzLjZsLTIuOS00LjdjOC40LTcuMiAxMy43LTE3LjMgMTQuOC0yOC4zIDEuNy0xNi0xLjItMjkuNS04LjgtNDEuM2wxMy03LjZjMC0uMyAwLS42LS4xLS45cy0uMi0uNi0uNC0uOGMtMi4yLS45LTQuNi0xLjItNy0uOXMtNC42IDEuMi02LjUgMi42Yy0xMi43IDYuNy0yOCAyMC45LTI5IDIyLjQtMS43IDEuNy0zLjQgNS45LTUuNCAxMy41LTEuOSA3LjctMi45IDE1LjYtMi45IDIzLjYtNC43LTgtMTAuNS02LjQtMTkuOS01LjlsNy4xIDcuNmMtMTYuNSAwLTIzLjMgMTUuNC0yMy42IDE2IDYuOCAwIDQuNi03LjYgMzAtMTIuMy00LjMtNi4zLTMuMy01LTQuOS02LjZ6bTE4LjctMTguN2MxLjItNy42IDMuNC0xMyA2LjQtMTcuMiA1LjQtNi40IDEwLjYtMTAuMSAxNi0xMS44IDQuMi0xLjcgNy4xIDEuMiAxMC4xIDkuMyAyLjUgOC4yIDMuNSAxNi44IDMgMjUuMy0uNSA5LjMtMy40IDE3LjItOC40IDIzLjEtMi45IDMuNC01LjQgNS45LTYuNCA3LjYtMy44IC40LTcuNiAuMi0xMS4zLS41bC03LjEtMy40LTUuNC02LjRjLjgtMTAgMS4zLTE4LjggMy4xLTI2em00MiA1Ni4xYy0zNC44IDE0LjQtMzQuNyAxNC0zNi4xIDE0LjMtMjAuOCA0LjctMTktMjQuNC0xOC45LTI0LjhsNS45LTEuMi0uNS0yLjVjLTIwLjItMi42LTMxIDQuMi0zMi41IDQuOSAuNSAuNSAzIDMuNCA1LjkgOS4zIDQuMi02LjQgOC44LTEwLjEgMTUuMi0xMC42LTEuNyAxMS4yLTEuMiAyMi43IDEuNyAzMy43IC4xIC41IDIuNiAxNy40IDI3LjUgMjQuMSAxMS4zIDMgMjcgMS4yIDQ4LjktNS40bC05LjIgLjVjLTQuMi0xNC44LTYuNC0yNC44LTUuOS0yOS41IDExLjMtOC44IDIxLjktMTEuMyAzMC43LTcuNmwyLjUgMC0xMS44LTcuNi03LjEgLjVjLTUuOSAxLjItMTIuMyA0LjItMTkuNCA4LjRsMy4xLTYuNXoiXX0sT290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImppcmEiLGljb246WzUxMiw1MTIsW10sImY3YjEiLCJNNDk4LjUgMjQxLjdjLTcyLjktNzIuNy0xNjkuNC0xNjkuOS0yNDEuNS0yNDEuNy0xNjUuNSAxNjQuOS0yNDIuNSAyNDEuNy0yNDIuNSAyNDEuNy03LjkgNy45LTcuOSAyMC43IDAgMjguNyAxMzIuOCAxMzIuMyA2MS44IDYxLjUgMjQyLjUgMjQxLjYgMzc5LjQtMzc4IDE1LjctMTYuNyAyNDEuNS0yNDEuNyA4LTcuOSA4LTIwLjcgMC0yOC42ek0yNTcgMzMxLjdsLTc2LTc1LjcgNzYtNzUuNyA3NiA3NS43LTc2IDc1Ljd6Il19LEJvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRleCIsaWNvbjpbNjQwLDUxMixbXSwiZjc5NyIsIk01ODYgMjg0LjVsNTMuMy01OS45LTYyLjQgMC0yMS43IDI0LjgtMjIuNS0yNC44LTExOC43IDAgMC0xNiA1Ni4xIDAgMC00OC4xLTE1MS4yIDAgMCA3NS41LS41IDBjLTkuNi0xMS0yMS41LTE0LjgtMzUuNC0xNC44LTI4LjQgMC00OS44IDE5LjQtNTcuMyA0NC45LTE4LTU5LjQtOTcuNC01Ny42LTEyMS45LTE0bDAtMjQuMi01NC44IDAgMC0yNi4yIDYwIDAgMC00MS4xLTEwOSAwIDAgMTg0LjQgNDkgMCAwLTc3LjUgNDguOSAwYy0xLjUgNS43LTIuMyAxMS44LTIuMyAxOC4yIDAgNzMuMSAxMDIuNiA5MS40IDEzMC4yIDIzLjdsLTQyIDBjLTE0LjcgMjAuOS00NS44IDguOS00NS44LTE0LjZsODUuNSAwYzMuNyAzMC41IDI3LjQgNTYuOSA2MC4xIDU2LjkgMTQuMSAwIDI3LTYuOSAzNC45LTE4LjZsLjUgMCAwIDExLjkgMjEyLjIgMCAyMi4xLTI1IDIyLjMgMjUgNjQuNCAwLTU0LTYwLjV6TTEzOS4zIDI2Ny45YzYuMS0yNi4zIDQxLjctMjUuNiA0Ni41IDBsLTQ2LjUgMHptMTUzLjQgNDguOWMtMzQuNiAwLTM0LTYyLjggMC02Mi44IDMyLjYgMCAzNC41IDYyLjggMCA2Mi44em0xNjcuOCAxOS4xbC05NC40IDAgMC0xNjYuNSA5NSAwIDAgMzAuMi01Ni4xIDAgMCAzMy45IDU1LjUgMCAwIDI4LjEtNTYuMSAwIDAgNDQuNyA1Ni4xIDAgMCAyOS42em0tNDUuOS0zOS44bDAtMjQuNCA1Ni4xIDAgMC00NCA1MC43IDU3LTUwLjcgNTcgMC00NS42LTU2LjEgMHptMTM4LjYgMTAuM2wtMjYuMSAyOS41LTM4LjEgMCA0NS42LTUxLjItNDUuNi01MS4yIDM5LjcgMCAyNi42IDI5LjMgMjUuNi0yOS4zIDM4LjUgMC00NS40IDUxIDQ2IDUxLjQtNDAuNSAwLTI2LjMtMjkuNXoiXX0sUm90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV2ZXJub3RlIixpY29uOlszODQsNTEyLFtdLCJmODM5IiwiTTEyMS4xIDEzMi4yYzEuNiAyMi4zLTE3LjYgMjEuNi0yMS42IDIxLjYtNjguOSAwLTczLjYtMS04My42IDMuMy0uNiAuMi0uNyAwLS40LS40TDEyNC4xIDQ2LjRjLjQtLjQgLjYtLjIgLjQgLjQtNC40IDEwLTMuNCAxNS4xLTMuNCA4NS40em03OSAzMDhjLTE0LjctMzcuMSAxMy03Ni45IDUyLjUtNzYuNiAxNy41IDAgMjIuNiAyMy4yIDcuOSAzMS40LTYuMiAzLjMtMjQuOSAxLjctMjUuMSAxOS4yIDAgMTcuMSAxOS43IDI1IDMxLjIgMjQuOSA2IDAgMTEuOS0xLjIgMTcuNS0zLjVzMTAuNi01LjcgMTQuOC05LjkgNy42LTkuMyA5LjktMTQuOCAzLjUtMTEuNSAzLjUtMTcuNWwwLS4xYzAtMTEuNi03LjgtNDcuMi00Ny41LTU1LjMtNy43LTEuNS02NS02LjMtNjguNC01MC41LTMuNyAxNi45LTE3LjQgNjMuNS00My4xIDY5LjEtOC43IDEuOS02OS43IDcuNi0xMTIuOS0zNi44IDAgMC0xOC42LTE1LjItMjguMi01OC0zLjQtMTUuNy05LjMtMzkuNy0xMS4xLTYyIDAtMTggMTEuMS0zMC40IDI1LjEtMzIuMiA4MSAwIDkwIDIuMyAxMDEtNy44IDkuOC05LjIgNy44LTE1LjUgNy44LTEwMi44IDEtOC4zIDcuOC0zMC44IDUzLjQtMjQuMSA2IC45IDMxLjkgNC4yIDM3LjUgMzAuNkwyOTAgNzQuOGMyMC40IDMuNyA3MC45IDcgODAuNiA1Ny45IDIyLjcgMTIxLjEgOC45IDIzOC41IDcuOCAyMzguNS0xNiAxMTQuNC0xMTEuMSAxMDguOS0xMTEuMSAxMDguOS0xOS0uMi01NC4yLTkuNC02Ny4zLTM5LjhsMCAwek0yODEgMjM1LjRjLTEgMS45LTIuMiA2IC45IDcgMTQuMSA0LjkgMzkuOCA2LjggNDUuOSA1LjUgMy4xLS4yIDMuMS00LjQgMi41LTYuNi0zLjUtMjEuOC00MC44LTI2LjUtNDkuMi01LjlsMCAweiJdfSxIb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNiIixpY29uOls2NDAsNTEyLFtdLCJmMjg3IiwiTTYzMy41IDI1NmMwIDMuMS0xLjcgNi4xLTQuNSA3LjVMNTM5LjkgMzE3Yy0xLjQgLjgtMi44IDEuNC00LjUgMS40LTEuNCAwLTMuMS0uMy00LjUtMS4xLTIuOC0xLjctNC41LTQuNS00LjUtNy44bDAtMzUuNi0yMzAuNyAwYzI1LjMgMzkuNiA0MC41IDEwNi45IDY5LjYgMTA2LjlsMjYuNyAwIDAtMjYuOGMwLTUgMy45LTguOSA4LjktOC45bDg5LjEgMGM1IDAgOC45IDMuOSA4LjkgOC45bDAgODkuMWMwIDUtMy45IDguOS04LjkgOC45bC04OS4xIDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi43LTI2LjcgMGMtNzUuNCAwLTgxLjEtMTQyLjUtMTI0LjctMTQyLjVsLTEwMC4zIDBjLTguMSAzMC42LTM1LjkgNTMuNS02OSA1My41LTM5LjMtLjEtNzEuMy0zMi4xLTcxLjMtNzEuNHMzMi03MS4zIDcxLjMtNzEuM2MzMy4xIDAgNjEgMjIuOCA2OSA1My41IDM5LjEgMCA0My45IDkuNSA3NC42LTYwLjQgNDAuMS04OS4xIDU4LjEtODIuMSAxMDguOS04Mi4xIDcuNS0yMC45IDI3LTM1LjYgNTAuNC0zNS42IDI5LjUgMCA1My41IDIzLjkgNTMuNSA1My41cy0yMy45IDUzLjUtNTMuNSA1My41Yy0yMy40IDAtNDIuOS0xNC44LTUwLjQtMzUuNmwtMjkuOCAwYy0yOS4xIDAtNDQuMyA2Ny40LTY5LjYgMTA2LjlsMzAyLjEgMCAwLTM1LjZjMC0zLjMgMS43LTYuMSA0LjUtNy44czYuNC0xLjQgOC45IC4zTDYyOSAyNDguOGMyLjggMS4xIDQuNSA0LjEgNC41IDcuMnoiXX0scW90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ3J5Y3JlYXRpdmUiLGljb246WzY0MCw1MTIsW10sImYzNmUiLCJNNjQwIDIzOC4ybC0zLjIgMjguMi0zNC41IDIuMy0yIDE4LjEgMzQuNS0yLjMtMy4yIDI4LjItMzQuNCAyLjItMi4zIDIwLjEgMzQuNC0yLjItMyAyNi4xLTY0LjcgNC4xIDEyLjctMTEzLjItNDcuMyAxMTUuNC0zMS45IDItMjMuOC0xMTcuOCAzMC4zLTIgMTMuNiA3OS40IDMxLjctODIuNCA5My4xLTYuMnpNNDI2LjggMzcxLjVsMjguMy0xLjggMTIuOS0xMjAuMS0yOC40IDEuOS0xMi44IDEyMHpNMTYyIDM4OC4xbC0xOS40LTM2LTMuNSAzNy40LTI4LjIgMS43IDIuNy0yOS4xYy0xMSAxOC0zMiAzNC4zLTU2LjkgMzUuOC0zMi44IDItNTkuNy0yMC45LTU2LjQtNTguMiAyLjYtMjkuMyAyNi43LTYyLjggNjcuNS02NS40IDM3LjctMi40IDQ3LjYgMjMuMiA1MS4zIDI4LjhsMi44LTMwLjggMzguOS0yLjVjMjAuMS0xLjMgMzguNyAzLjcgNDIuNSAyMy43bDIuNi0yNi42IDY0LjgtNC4yLTIuNyAyNy45LTM2LjQgMi40LTEuNyAxNy45IDM2LjQtMi4zLTIuNyAyNy45LTM2LjQgMi4zLTEuOSAxOS45IDM2LjMtMi4zLTIuMSAyMC44IDU1LTExNy4yIDIzLjgtMS42IDMyLjEgMTEwLjYgOC45LTg1LjYtMjIuMyAxLjQgMi45LTI3LjkgNzUtNC45LTMgMjgtMjQuMyAxLjYtOS43IDkxLjktNTggMy43LTQuMy0xNS42LTM5LjQgMi41LTggMTYuMy0xMjYuMiA3Ljd6bS00NC4zLTcwLjJsLTI2LjQgMS43Yy02LjctMTIuNC0xNC40LTE2LjYtMjYuMy0xNS44LTE5IDEuMi0zMy4zIDE3LjUtMzQuNiAzMy4zLTEuNCAxNiA3LjMgMzIuNSAyOC43IDMxLjIgMTIuOC0uOCAyMS4zLTguNiAyOC45LTE4LjlsMjctMS43IDIuNy0yOS44em01Ni4xLTcuN2MxLjItMTIuOS03LjYtMTMuNi0yNi4xLTEyLjRMMTQ1IDMyNi4zYzE0LjItLjkgMjcuNS0yLjEgMjguOC0xNi4xek0xOTQuOSAzODFsNS44LTYwYy01IDEzLjUtMTQuNyAyMS4xLTI3LjkgMjYuNkwxOTQuOSAzODF6bTEzNS40LTQ1bC03LjktMzcuOC0xNS44IDM5LjMgMjMuNy0xLjV6TTE2MC4yIDI2MS40bC00LjMtMTcuNS0zOS42IDIuNi04LjEgMTguMi0zMS45IDIuMSA1Ny0xMjEuOSAyMy45LTEuNiAzMC43IDEwMiA5LjktMTA0LjcgMjctMS44IDM3LjggNjMuNiA2LjUtNjYuNiAyOC41LTEuOS00IDQxLjJjNy40LTEzLjUgMjIuOS00NC43IDYzLjYtNDcuNSA0MC41LTIuOCA1Mi40IDI5LjMgNTMuNCAzMC4zbDMuMy0zMiAzOS4zLTIuN2MxMi43LS45IDI3LjggLjMgMzYuMyA5LjdsLTQuNC0xMS45IDMyLjItMi4yIDEyLjkgNDMuMiAyMy00NS43IDMxLTIuMi00My42IDc4LjQtNC44IDQ0LjMtMjguNCAxLjkgNC44LTQ0LjMtMTUuOC00M2MxIDIyLjMtOS4yIDQwLjEtMzIgNDkuNmwyNS4yIDM4LjgtMzYuNCAyLjQtMTkuMi0zNi44LTQgMzguMy0yOC40IDEuOSAzLjMtMzEuNWMtNi43IDkuMy0xOS43IDM1LjQtNTkuNiAzOC0yNi4yIDEuNy00NS42LTEwLjMtNTUuNC0zOS4ybC00IDQwLjMtMjUgMS42LTM3LjYtNjMuMy02LjMgNjYuMi01Ni44IDMuN3ptMjc2LjYtODIuMWMxMC4yLS43IDE3LjUtMi4xIDIxLjYtNC4zIDQuNS0yLjQgNy02LjQgNy42LTEyLjEgLjYtNS4zLS42LTguOC0zLjQtMTAuNC0zLjYtMi4xLTEwLjYtMi44LTIyLjktMmwtMi45IDI4Ljh6TTMyNy43IDIxNGM1LjYgNS45IDEyLjcgOC41IDIxLjMgNy45IDQuNy0uMyA5LjEtMS44IDEzLjMtNC4xIDUuNS0zIDEwLjYtOCAxNS4xLTE0LjNsLTM0LjIgMi4zIDIuNC0yMy45IDYzLjEtNC4zIDEuMi0xMi0zMS4yIDIuMWMtNC4xLTMuNy03LjgtNi42LTExLjEtOC4xLTQtMS43LTguMS0yLjgtMTIuMi0yLjUtOCAuNS0xNS4zIDMuNi0yMiA5LjItNy43IDYuNC0xMiAxNC41LTEyLjkgMjQuNC0xLjEgOS42IDEuNCAxNy4zIDcuMiAyMy4zem0tMjAxLjMgOC4ybDIzLjgtMS42LTguMy0zNy42LTE1LjUgMzkuMnoiXX0sVm90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1penVuaSIsaWNvbjpbNTEyLDUxMixbXSwiZjNjYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTE3NiAzNTkuOWMtMzEuNCAxMC42LTU4LjggMjcuMy04MCA0OC4yTDk2IDEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjIzLjl6TTI5NiAzNTBjLTEyLjktMi0yNi4yLTMuMS0zOS44LTMuMS0xMy44IDAtMjcuMiAxLjEtNDAuMiAzLjFsMC0yMTRjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDIxNHptMTIwIDU3LjdjLTIxLjItMjAuOC00OC42LTM3LjQtODAtNDhMMzM2IDEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjcxLjd6Il19LFVvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdGNoLWlvIixpY29uOls1MTIsNTEyLFtdLCJmODNhIiwiTTcxLjkgMzQuOEM1MC4yIDQ3LjcgNy40IDk2LjggNyAxMDkuN2wwIDIxLjNjMCAyNy4xIDI1LjMgNTAuOCA0OC4yIDUwLjggMjcuNiAwIDUwLjUtMjIuOCA1MC41LTUwIDAgMjcuMSAyMi4yIDUwIDQ5LjggNTBzNDktMjIuOCA0OS01MGMwIDI3LjEgMjMuNiA1MCA1MS4yIDUwbC41IDBjMjcuNiAwIDUxLjItMjIuOCA1MS4yLTUwIDAgMjcuMSAyMS41IDUwIDQ5IDUwczQ5LjgtMjIuOCA0OS44LTUwYzAgMjcuMSAyMyA1MCA1MC41IDUwIDIzIDAgNDguMy0yMy44IDQ4LjMtNTAuOGwwLTIxLjNjLS40LTEyLjktNDMuMi02Mi4xLTY0LjktNzUtNjcuNC0yLjMtMTE0LjItMi43LTE4NC0yLjdTOTEuMSAzMy4xIDcxLjkgMzQuOHpNMjA0LjIgMTY5LjJjLTIyIDM4LjQtNzcuOSAzOC43LTk5LjggLjItMTMuMiAyMy4xLTQzLjIgMzIuMS01NiAyNy43LTMuOSA0MC4yLTEzLjcgMjM3LjEgMTcuNyAyNjkuMiA4MCAxOC43IDMwMi4xIDE4LjEgMzc5LjggMCAzMS42LTMyLjMgMjEuMy0yMzIgMTcuNy0yNjkuMi0xMi45IDQuNC00Mi45LTQuNi01Ni0yNy43LTIyIDM4LjUtNzcuOCAzOC4xLTk5LjgtLjItNy4xIDEyLjUtMjMgMjguOS01MS44IDI4LjktMTAuNCAuMy0yMC44LTIuMi0yOS45LTcuM3MtMTYuNy0xMi42LTIxLjktMjEuNmwwIDB6bS00MS42IDUzLjhjMTYuNSAwIDMxLjEgMCA0OS4yIDE5LjggMjkuMy0zIDU4LjktMyA4OC4yIDAgMTguMi0xOS43IDMyLjgtMTkuNyA0OS4yLTE5LjcgNTIuMyAwIDY1LjIgNzcuNSA4My45IDE0NC40IDE3LjMgNjIuMi01LjUgNjMuNy0zNCA2My43LTQyLjEtMS42LTY1LjUtMzIuMi02NS41LTYyLjgtMzkuMyA2LjQtMTAxLjkgOC44LTE1NS42IDAgMCAzMC42LTIzLjMgNjEuMi02NS41IDYyLjgtMjguNC0uMS01MS4yLTEuNi0zMy45LTYzLjcgMTguNy02NyAzMS42LTE0NC40IDgzLjktMTQ0LjRsMC0uMXpNMjU2IDI3MC44cy00NC40IDQwLjgtNTIuNCA1NS4ybDI5LTEuMiAwIDI1LjNjMCAxLjUgMjEuMyAuMiAyMy4zIC4yIDExLjYgLjUgMjMuMyAxIDIzLjMtLjJsMC0yNS4zIDI5IDEuMmMtOC0xNC41LTUyLjQtNTUuMi01Mi40LTU1LjJsLjEgMHoiXX0sam90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpbmRvd3MiLGljb246WzQ0OCw1MTIsW10sImYxN2EiLCJNMCA5My43bDE4My42LTI1LjMgMCAxNzcuNC0xODMuNiAwIDAtMTUyLjF6TTAgNDE4LjNsMTgzLjYgMjUuMyAwLTE3NS4yLTE4My42IDAgMCAxNDkuOXptMjAzLjggMjhsMjQ0LjIgMzMuNyAwLTIxMS42LTI0NC4yIDAgMCAxNzcuOXptMC0zODAuNmwwIDE4MC4xIDI0NC4yIDAgMC0yMTMuOC0yNDQuMiAzMy43eiJdfSxXb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3R1bWJsZXVwb24iLGljb246WzUxMiw1MTIsW10sImYxYTQiLCJNNTAyLjkgMjY2bDAgNjkuN2MwIDYyLjEtNTAuMyAxMTIuNC0xMTIuNCAxMTIuNC02MS44IDAtMTEyLjQtNDkuOC0xMTIuNC0xMTEuM2wwLTcwLjIgMzQuMyAxNiA1MS4xLTE1LjIgMCA3MC42YzAgMTQuNyAxMiAyNi41IDI2LjcgMjYuNVM0MTcgMzUyLjcgNDE3IDMzOGwwLTcyIDg1LjkgMHpNMjc4LjIgMjA3LjhsMzQuMyAxNiA1MS4xLTE1LjIgMC0zNS42YzAtNjAuNS01MS4xLTEwOS0xMTIuMS0xMDktNjAuOCAwLTExMi4xIDQ4LjItMTEyLjEgMTA4LjJsMCAxNjIuNGMwIDE0LjktMTIgMjYuNy0yNi43IDI2LjdTODYgMzQ5LjUgODYgMzM0LjZsMC02OC42LTg2IDAgMCA2OS43YzAgNjIgNTAuMyAxMTIuMyAxMTIuNCAxMTIuMyA2MS42IDAgMTEyLjQtNDkuNSAxMTIuNC0xMTAuOGwwLTE2MC4zYzAtMTQuNyAxMi0yNi43IDI2LjctMjYuN3MyNi43IDEyIDI2LjcgMjYuN2wwIDMwLjl6Il19LGZWPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFhMCIsIk01MDAgMjYxLjhDNTAwIDQwMy4zIDQwMy4xIDUwNCAyNjAgNTA0IDEyMi44IDUwNCAxMiAzOTMuMiAxMiAyNTZTMTIyLjggOCAyNjAgOGM2Ni44IDAgMTIzIDI0LjUgMTY2LjMgNjQuOWwtNjcuNSA2NC45Yy04OC4zLTg1LjItMjUyLjUtMjEuMi0yNTIuNSAxMTguMiAwIDg2LjUgNjkuMSAxNTYuNiAxNTMuNyAxNTYuNiA5OC4yIDAgMTM1LTcwLjQgMTQwLjgtMTA2LjlsLTE0MC44IDAgMC04NS4zIDIzNi4xIDBjMi4zIDEyLjcgMy45IDI0LjkgMy45IDQxLjR6Il19LEdvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaXNjb3JkIixpY29uOls1NzYsNTEyLFtdLCJmMzkyIiwiTTQ5Mi41IDY5LjhjLS4yLS4zLS40LS42LS44LS43LTM4LjEtMTcuNS03OC40LTMwLTExOS43LTM3LjEtLjQtLjEtLjggMC0xLjEgLjFzLS42IC40LS44IC44Yy01LjUgOS45LTEwLjUgMjAuMi0xNC45IDMwLjYtNDQuNi02LjgtODkuOS02LjgtMTM0LjQgMC00LjUtMTAuNS05LjUtMjAuNy0xNS4xLTMwLjYtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4yLTEuMS0uMmMtNDEuMyA3LjEtODEuNiAxOS42LTExOS43IDM3LjEtLjMgLjEtLjYgLjQtLjggLjctNzYuMiAxMTMuOC05Ny4xIDIyNC45LTg2LjkgMzM0LjUgMCAuMyAuMSAuNSAuMiAuOHMuMyAuNCAuNSAuNmM0NC40IDMyLjkgOTQgNTggMTQ2LjggNzQuMiAuNCAuMSAuOCAuMSAxLjEgMHMuNy0uNCAuOS0uN2MxMS4zLTE1LjQgMjEuNC0zMS44IDMwLTQ4LjggLjEtLjIgLjItLjUgLjItLjhzMC0uNS0uMS0uOC0uMi0uNS0uNC0uNi0uNC0uMy0uNy0uNGMtMTUuOC02LjEtMzEuMi0xMy40LTQ1LjktMjEuOS0uMy0uMi0uNS0uNC0uNy0uNnMtLjMtLjYtLjMtLjkgMC0uNiAuMi0uOSAuMy0uNSAuNi0uN2MzLjEtMi4zIDYuMi00LjcgOS4xLTcuMSAuMy0uMiAuNi0uNCAuOS0uNHMuNyAwIDEgLjFjOTYuMiA0My45IDIwMC40IDQzLjkgMjk1LjUgMCAuMy0uMSAuNy0uMiAxLS4ycy43IC4yIC45IC40YzIuOSAyLjQgNiA0LjkgOS4xIDcuMiAuMiAuMiAuNCAuNCAuNiAuN3MuMiAuNiAuMiAuOS0uMSAuNi0uMyAuOS0uNCAuNS0uNiAuNmMtMTQuNyA4LjYtMzAgMTUuOS00NS45IDIxLjgtLjIgLjEtLjUgLjItLjcgLjRzLS4zIC40LS40IC43LS4xIC41LS4xIC44IC4xIC41IC4yIC44YzguOCAxNyAxOC44IDMzLjMgMzAgNDguOCAuMiAuMyAuNiAuNiAuOSAuN3MuOCAuMSAxLjEgMGM1Mi45LTE2LjIgMTAyLjYtNDEuMyAxNDcuMS03NC4yIC4yLS4yIC40LS40IC41LS42cy4yLS41IC4yLS44YzEyLjMtMTI2LjgtMjAuNS0yMzYuOS04Ni45LTMzNC41em0tMzAyIDI2Ny43Yy0yOSAwLTUyLjgtMjYuNi01Mi44LTU5LjJzMjMuNC01OS4yIDUyLjgtNTkuMmMyOS43IDAgNTMuMyAyNi44IDUyLjggNTkuMiAwIDMyLjctMjMuNCA1OS4yLTUyLjggNTkuMnptMTk1LjQgMGMtMjkgMC01Mi44LTI2LjYtNTIuOC01OS4yczIzLjQtNTkuMiA1Mi44LTU5LjJjMjkuNyAwIDUzLjMgMjYuOCA1Mi44IDU5LjIgMCAzMi43LTIzLjIgNTkuMi01Mi44IDU5LjJ6Il19LFlvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoYWNrZXItbmV3cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjFkNCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0yMS4yIDIyOS4ybC0uMiAwYy4xLS4xIC4yLS4zIC4zLS40IDAgLjEgMCAuMy0uMSAuNHptMjE4IDUzLjlsMCAxMDAuOS0zMS40IDAgMC0xMDIuNy03OS44LTE1My4zIDM3LjMgMGM1Mi41IDk4LjMgNDkuMiAxMDEuMiA1OS4zIDEyNS42IDEyLjMtMjcgNS44LTI0LjQgNjAuNi0xMjUuNmwzNC44IDAtODAuOCAxNTUuMXoiXX0sUjFlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVsZXZlbnR5IixpY29uOls2NDAsNTEyLFsiMTF0eSJdLCJlN2Q2IiwiTTYxNS4zIDE2OC41YzIuMyAwIDQuNiAuNyA2LjYgMi4yIDEuOSAxLjQgMy4xIDMuMyAzLjggNSAxLjQgMy4zIDEuOCA3LjMgMS44IDExLjMgMCAyLjItLjMgNC45LS43IDcuNmwwIC40LTUwLjkgMjY0LjkgMCAwYy00IDIyLjEtOC41IDM5LjQtMTMuNiA1MS43LTUgMTIuMS0xMC45IDIxLjYtMTguNiAyN2wwIDBjLTcuNSA1LjMtMTYuOSA3LjctMjcuNiA4bC0zIDBjLTE2IDAtMjkuMy00LjItMzYuOS0xNC44LS4xLS4xLS4xLS4xLS4yLS4yLS4xLS4yLS4zLS40LS41LS42bDAgMGMtMS44LTIuNC0yLjUtNS4yLTIuOS03LjQtLjUtMi44LS43LTYuMS0uNy05LjggMC03LjMgLjYtMTMuNSAyLjEtMTguMiAxLjQtNC40IDQuOC0xMC40IDEyLjItMTAuNGwxLjMgLjFjLjIgMCAuNCAuMSAuNSAuMSAuMyAuMSAuNiAuMSAuOCAuMiAuNiAuMSAxLjMgLjMgMi4yIC42bDcuNiAyLjIgLjEgMCA3LjYgMi4xYy45IC4yIDEuNyAuNCAyLjIgLjUgLjQgLjEgLjYgLjEgLjcgLjEgMCAwIC4xIDAgLjItLjEgLjEtLjEgLjQtLjIgLjgtLjYgLjktLjkgMi4yLTIuNiAzLjYtNS43IDIuNi01LjggNC4yLTE0LjcgNC4yLTI3LjQgMC0uNy0uMy0zLjQtMS4zLTguOS0uOS01LjEtMi4zLTEyLjItNC4yLTIxLjFsLTU2LTIzMi45LS4xLS40IDAtLjNjLS40LTIuNy0uNy01LjMtLjctNy4zIDAtMy43IC40LTcuNSAxLjctMTAuNiAuNy0xLjYgMS44LTMuNCAzLjUtNC45IDEuOS0xLjUgNC4yLTIuMyA2LjUtMi4zbDM0LjYgMGM0LjYgMCA4LjcgMS43IDExLjkgNWwxLjMgMS41YzEuMiAxLjYgMiAzLjQgMi43IDUuMiAuOSAyLjQgMS41IDUuMSAyIDguMWwzMC40IDE2MS4yIDIzLjgtMTYwYy44LTUuOCAyLjItMTEuNCA1LjEtMTUuMSAzLTMuOCA3LjItNS44IDEyLTUuOGwyNCAwek0zNzUuMSAzNC42YzIuNiAwIDUuMSAuNyA3LjQgMi4zIDIuMiAxLjUgMy43IDMuNiA0LjcgNS43IDEuOSA0IDIuNSA5LjEgMi41IDE0LjVsMCAxMTEuMmMwIC4xIDAgLjIgMCAuM2wzMi40IDBjMi41IDAgNSAuNiA3LjIgMi4xIDIuMiAxLjQgMy43IDMuNCA0LjggNS41IDIgMy45IDIuNiA4LjggMi42IDEzLjlsMCAxNS40YzAgNS0uNiA5LjgtMi42IDEzLjctMS4xIDItMi42IDQtNC44IDUuNC0yLjIgMS40LTQuNyAyLTcuMSAybC0zMi41IDAgMCAxNDUuOGMwIDEwLjggLjcgMTkuNSAyIDI2LjIgMS40IDYuOSAzLjEgMTAuOSA0LjcgMTIuOSAxLjIgMS41IDIuMiAyLjUgMy4xIDMuMmwyLjIgMS40IC4xIC4xIDIuOSAuOGMxLjIgLjIgMi42IC4zIDQuMyAuM2wyMC4zIDBjNC41IDAgOC45IDEuNyAxMS44IDUuOCAyLjYgMy42IDMuMyA4LjEgMy4zIDEyLjJsMCAxNy4yYzAgNC41LS44IDkuMy0zLjQgMTMuMS0zIDQuMi03LjUgNi0xMi4zIDZsMCAwLTI5LjEgLjFjLTggMC0xNS0uNi0yMS4yLTEuNy02LjctMS4zLTEzLjQtNC4xLTIwLjEtOC4xLTcuMi00LjQtMTMtMTAuMy0xNy41LTE3LjgtNC41LTcuNS03LjktMTcuNS0xMC41LTI5LjUtMi42LTEyLjItMy45LTI2LjYtMy45LTQzbDAtMTQ0LjktMTMuNCAwYy0yLjQgMC00LjktLjYtNy4xLTItMi4yLTEuNC0zLjctMy40LTQuOC01LjQtMi0zLjktMi42LTguNy0yLjYtMTMuN2wwLTE1LjRjMC01LjEgLjYtMTAgMi42LTEzLjkgMS4xLTIuMSAyLjYtNCA0LjgtNS41IDIuMi0xLjUgNC43LTIuMSA3LjItMi4xbDEzLjQgMCAwLS42IDUuMi0xMTEuMiAwLS4xIC4zLTMuOWMuNS0zLjggMS4zLTcuNCAyLjctMTAuMyAyLjEtNC4yIDYtNy45IDExLjgtNy45bDI4LjYgMHptLTI2OCAxMS43YzEuOCAuMyAzLjYgLjkgNS4zIDIuMSAyLjEgMS41IDMuNSAzLjUgNC40IDUuNCAxLjcgMy43IDIuMyA4LjQgMi4zIDEzLjJsMCAzNzcuOGMwIDYuNy0uNiAxMi42LTIuNCAxNy4xLS45IDIuMy0yLjMgNC43LTQuNCA2LjUtMi4zIDItNS4xIDMtOC4xIDNsLTQzLjcgMGMtMyAwLTUuOC0xLjEtOC4xLTMuMS0yLjEtMS45LTMuNC00LjMtNC4yLTYuNS0xLjctNC41LTIuMy0xMC4zLTIuMy0xN2wwLTMxNS44Yy00LjggMS4yLTguNyAyLjItMTEuNSAyLjktMS45IC41LTMuNCAuOC00LjQgMS4xLS41IC4xLS45IC4yLTEuMiAuMy0uMSAwLS4zIC4xLS41IC4xLS4xIDAtLjIgMC0uMyAuMSAwIDAtLjIgMC0uMyAwIDAgMC0uMiAwLS40IDBsMCAwYy0uMSAwLS4zIDAtLjQgMC0uMSAwLS4yIDAtLjIgMC0yLjIgLjEtNC41LS40LTYuNi0xLjctMi4zLTEuNC0zLjgtMy40LTQuNy01LjMtMS44LTMuNy0yLjMtOC40LTIuMy0xM2wwLTI3LjRjMC00LjQgLjctOC44IDIuNi0xMi40IDIuMS0zLjkgNS41LTYuNiA5LjgtNy42bDc1LjUtMTkuNWMxLjQtLjQgMi45LS41IDQuNC0uNWwxLjggLjF6bTE0My44LS41YzEuOCAuMyAzLjYgLjkgNS4yIDIuMSAyLjEgMS41IDMuNSAzLjUgNC40IDUuNCAxLjcgMy43IDIuMiA4LjQgMi4yIDEzLjJsMCAzNzcuOGMwIDYuNy0uNiAxMi42LTIuNCAxNy4xLS45IDIuMy0yLjMgNC43LTQuNCA2LjUtMi4zIDItNS4xIDMtOC4xIDNsLTQzLjcgMGMtMyAwLTUuOC0xLjEtOC4xLTMuMS0yLjEtMS45LTMuNC00LjMtNC4yLTYuNS0xLjctNC41LTIuMy0xMC4zLTIuMy0xN2wwLTMxNS44Yy00LjggMS4yLTguNyAyLjItMTEuNSAyLjktMS45IC41LTMuNCAuOC00LjQgMS4xLS41IC4xLS45IC4yLTEuMiAuMy0uMSAwLS4zIC4xLS41IC4xLS4xIDAtLjIgMC0uMyAuMS0uMSAwLS4yIDAtLjMgMCAwIDAtLjIgMC0uNCAwbDAgMGMtLjEgMC0uMiAwLS4zIDAtLjEgMC0uMiAwLS4zIDAtMi4yIC4xLTQuNS0uNC02LjYtMS43LTIuMy0xLjQtMy44LTMuNC00LjctNS4zLTEuOC0zLjctMi4zLTguMy0yLjMtMTNsMC0yNy40YzAtNC40IC43LTguNyAyLjYtMTIuNCAyLjEtMy45IDUuNS02LjYgOS44LTcuNmw3NS40LTE5LjRjMS40LS40IDIuOS0uNSA0LjQtLjVsMS44IC4xeiJdfSxab3Q9UjFlLFhvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZWFtc3BlYWsiLGljb246WzU3Niw1MTIsW10sImY0ZjkiLCJNMTUyLjggMzcuMmMtMzIuMiAzOC4xLTU2LjEgODIuNi02OS45IDEzMC41IDAgLjItLjEgLjMtLjEgLjUtMzkuMyAxNi4yLTY2LjggNTQuOC02Ni44IDk5LjggMCA1OS42IDQ4LjQgMTA4IDEwOCAxMDhzMTA4LTQ4LjQgMTA4LTEwOGMwLTUzLjUtMzguOS05Ny45LTkwLTEwNi41IDE1LjctNDEuOCA0MC40LTc5LjYgNzIuMy0xMTAuNyAxLjgtMS42IDQtMi42IDYuMy0zLjEgMzcuMi0xMS41IDc2LjctMTMuMyAxMTQuOC01LjIgMTE5LjMgMjUuMSAxOTguNiAxMzguMiAxODEuNyAyNTguOC04LjQgNjIuNi0zOC42IDExMi43LTg3LjcgMTUxLjQtNTAuMSAzOS43LTEwNy41IDU0LjMtMTcwLjIgNTIuMmwtMjQtMWMxMi40IDIuOCAyNSA0LjkgMzcuNiA2LjMgNDAuNyA0LjIgODEuNCAyLjEgMTIwLjEtMTIuNSA5NC0zNS41IDE0OS4zLTEwMi4zIDE2Mi45LTIwMi41IDQuOC01Mi42LTUuOC0xMDUuNC0zMC44LTE1Mi03MC40LTEzMS45LTIzNC4yLTE4MS42LTM2Ni0xMTEuMi0yLjQgMS40LTQuNSAzLjEtNi4zIDUuMmwuMSAwek0zMDkuNCA0MzMuOWMtMi4xIDExLjUtNC4yIDIxLjktMTQuNiAzMS4zIDUzLjItMSAxMjMuMi0yOS4yIDE2MS44LTk3LjEgMzkuNy02OS45IDM3LjYtMTM5LjktNi4zLTIwNy44LTM2LjUtNTUuMy04OS44LTgyLjQtMTU2LjYtODYuNiAxLjUgMi4zIDMuMiA0LjQgNS4yIDYuM2w1LjIgNi4zYzI1LjEgMzEuMyAzNy42IDY3LjkgNDIuOCAxMDcuNSAyLjEgMTUuNy0xIDMwLjMtMTMuNiA0MS44LTQuMiAzLjEtNS4yIDYuMy00LjIgMTAuNGw3LjMgMTcuNyAyOS4zIDU0LjNjNS4yIDExLjUgNC4yIDE5LjgtNi4zIDI4LjItMy4yIDIuNS02LjcgNC42LTEwLjQgNi4zbC0xOC44IDguNCAzLjEgMTMuNmMzLjEgNi4zIDEgMTIuNS0zLjEgMTcuNy0yLjUgMi40LTMuOCA1LjktMy4xIDkuNCAyLjEgMTEuNS0yLjEgMTkuOC0xMi41IDI1LjEtMi4xIDEtNC4yIDUuMi01LjIgNy4zbDAtLjF6bS0xMzMuNi0zLjFjMTYuNyAxMS41IDM0LjUgMjAuOSA1My4yIDI2LjEgMjQgNS4yIDQxLjgtNi4zIDQ0LjktMzAuMyAxLTguNCA1LjItMTQuNiAxMi41LTE3LjcgNy4zLTQuMiA4LjQtNy4zIDIuMS0xMy42bC05LjQtOC40IDEzLjYtNC4yYzYuMy0yLjEgNy4zLTUuMiA1LjItMTEuNS0xLjQtMy0yLjQtNi4yLTMuMS05LjQtMy4xLTE0LjYtMi4xLTE1LjcgMTEuNS0xOC44IDguNC0zLjEgMTUuNy02LjMgMjEuOS0xMi41IDMuMS0yLjEgMy4xLTQuMiAxLTguNGwtMTYuNy0zMC4zYy0xLTEuOS0yLjEtMy44LTMuMS01LjctNi40LTExLjctMTMtMjMuNi0xNS43LTM3LjEtMi4xLTkuNC0xLTE3LjcgOC40LTI0IDUuMi00LjIgOC40LTkuNCA4LjQtMTYuNy0uNC0xMC4xLTEuNS0yMC4zLTMuMS0zMC4zLTYuMy0zNy42LTIzLTY4LjktNTEuMi05NS01LjItNC4yLTkuNC02LjMtMTYuNy00LjJsLTM1LjYgMTIuNyA2IDMuNmM2LjMgMy43IDEyLjIgNy4zIDE3IDEyLjEgMzAuMyAyNi4xIDQxLjggNjEuNiA0NS45IDEwMC4yIDEgOC40IDAgMTYuNy03LjMgMjEuOS04LjQgNS4yLTEwLjQgMTIuNS03LjMgMjAuOSA0LjkgMTMuMiAxMC40IDI2IDE2LjcgMzguNkwyOTEuNiAzMThjLTYuMyA4LjQtMTMuNiAxMS41LTIxLjkgMTQuNi0xMi41IDMuMS0xNC42IDcuMy0xMC40IDIwLjkgLjYgMS41IDEuNCAyLjggMi4xIDQuMiAyLjEgNS4yIDEgOC40LTQuMiAxMC40bC0xMi41IDMuMSA1LjIgNC4yIDQuMiA0LjJjNC4yIDUuMiA0LjIgOC40LTIuMSAxMC40LTcuMyA0LjItMTEuNSA5LjQtMTEuNSAxNy43IDAgMTIuNS03LjMgMTkuOC0xOC44IDI0LTMuOCAxLTcuNiAxLjUtMTEuNSAxbC0zNC41LTIuMSAuMSAuMnoiXX0sUW90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cHBsZSIsaWNvbjpbNjQwLDUxMixbXSwiZjNmOSIsIk02NDAgMjYyLjVjMCA2NC4xLTEwOSAxMTYuMS0yNDMuNSAxMTYuMS0yNC44IDAtNDguNi0xLjgtNzEuMS01IDcuNyAuNCAxNS41IC42IDIzLjQgLjYgMTM0LjUgMCAyNDMuNS01Ni45IDI0My41LTEyNy4xIDAtMjkuNC0xOS4xLTU2LjQtNTEuMi03OCA2MCAyMS4xIDk4LjkgNTUuMSA5OC45IDkzLjR6TTQ3LjcgMjI3LjljLS4xLTcwLjIgMTA4LjgtMTI3LjMgMjQzLjMtMTI3LjYgNy45IDAgMTUuNiAuMiAyMy4zIC41LTIyLjUtMy4yLTQ2LjMtNC45LTcxLTQuOS0xMzQuNSAuNC0yNDMuNCA1Mi42LTI0My4zIDExNi43IC4xIDM4LjMgMzkuMSA3Mi4zIDk5LjMgOTMuMy0zMi4zLTIxLjUtNTEuNS00OC42LTUxLjYtNzh6bTYwLjIgMzkuOVMxMTguNCAyODEgMTM3LjIgMjgxYzE3LjkgMCAyOC40LTExLjUgMjguNC0yNS4xIDAtMjgtNDAuMi0yNS4xLTQwLjItMzkuNyAwLTUuNCA1LjMtOS4xIDEyLjUtOS4xIDUuNyAwIDExLjMgMi42IDExLjMgNi42bDAgMy45IDE0LjIgMCAwLTcuOWMwLTEyLjEtMTUuNC0xNi44LTI1LjQtMTYuOC0xNi41IDAtMjguNSAxMC4yLTI4LjUgMjQuMSAwIDI2LjYgNDAuMiAyNS40IDQwLjIgMzkuOSAwIDYuNi01LjggMTAuMS0xMi4zIDEwLjEtMTEuOSAwLTIwLjctMTAuMS0yMC43LTEwLjFsLTguOCAxMC45em0xMjAuOC03My42bDAgNTQuNGMwIDExLjMtNy4xIDE3LjgtMTcuOCAxNy44cy0xNy44LTYuNS0xNy44LTE3LjdsMC01NC41LTE1LjggMCAwIDU1YzAgMTguOSAxMy40IDMxLjkgMzMuNyAzMS45IDIwLjEgMCAzMy40LTEzIDMzLjQtMzEuOWwwLTU1LTE1LjcgMHptMzQuNCA4NS40bDE1LjggMCAwLTI5LjUgMTUuNSAwYzE2IDAgMjcuMi0xMS41IDI3LjItMjguMXMtMTEuMi0yNy44LTI3LjItMjcuOGwtMzkuMSAwIDAgMTMuNCA3LjggMCAwIDcyem0xNS44LTQzbDAtMjkuMSAxMi45IDBjOC43IDAgMTMuNyA1LjcgMTMuNyAxNC40IDAgOC45LTUuMSAxNC43LTE0IDE0LjdsLTEyLjYgMHptNTcgNDNsMTUuOCAwIDAtMjkuNSAxNS41IDBjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44bC0zOS4xIDAgMCAxMy40IDcuOCAwIDAgNzJ6bTE1LjctNDNsMC0yOS4xIDEyLjkgMGM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNSAxNC43LTE0IDE0LjdsLTEyLjYgMHptNTcuMSAzNC44YzAgNS44IDIuNCA4LjIgOC4yIDguMmwzNy42IDBjNS44IDAgOC4yLTIuNCA4LjItOC4ybDAtMTMtMTQuMyAwIDAgNS4yYzAgMS43LTEgMi42LTIuNiAyLjZsLTE4LjYgMGMtMS43IDAtMi42LTEtMi42LTIuNmwwLTYxLjJjMC01LjctMi40LTguMi04LjItOC4ybC0xNS40IDAgMCAxMy40IDUuMiAwYzEuNyAwIDIuNiAxIDIuNiAyLjZsMCA2MS4yLS4xIDB6bTYzLjQgMGMwIDUuOCAyLjQgOC4yIDguMiA4LjJsMzguNyAwYzUuNyAwIDguMi0yLjQgOC4yLTguMmwwLTEzLTE0LjMgMCAwIDUuMmMwIDEuNy0xIDIuNi0yLjYgMi42bC0xOS43IDBjLTEuNyAwLTIuNi0xLTIuNi0yLjZsMC0yMC4zIDI3LjcgMCAwLTEzLjQtMjcuNyAwIDAtMjIuNCAxOS4yIDBjMS43IDAgMi42IDEgMi42IDIuNmwwIDUuMiAxNC4yIDAgMC0xM2MwLTUuNy0yLjUtOC4yLTguMi04LjJsLTUxLjYgMCAwIDEzLjQgNy44IDAgMCA2My45IC4xIDB6bTU4LjktNzZsMCA1LjkgMS42IDAgMC01LjkgMi43IDAgMC0xLjItNyAwIDAgMS4yIDIuNyAwem01LjctMS4ybDAgNy4xIDEuNSAwIDAtNS43IDIuMyA1LjcgMS4zIDAgMi4zLTUuNyAwIDUuNyAxLjUgMCAwLTcuMS0yLjMgMC0yLjEgNS4xLTIuMS01LjEtMi40IDB6Il19LEgxZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdHdpdHRlciIsaWNvbjpbNDQ4LDUxMixbInR3aXR0ZXItc3F1YXJlIl0sImYwODEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzUxLjMgMTk5LjNjMCA4Ni43LTY2IDE4Ni42LTE4Ni42IDE4Ni42LTM3LjIgMC03MS43LTEwLjgtMTAwLjctMjkuNCA1LjMgLjYgMTAuNCAuOCAxNS44IC44IDMwLjcgMCA1OC45LTEwLjQgODEuNC0yOC0yOC44LS42LTUzLTE5LjUtNjEuMy00NS41IDEwLjEgMS41IDE5LjIgMS41IDI5LjYtMS4yLTMwLTYuMS01Mi41LTMyLjUtNTIuNS02NC40bDAtLjhjOC43IDQuOSAxOC45IDcuOSAyOS42IDguMy05LTYtMTYuNC0xNC4xLTIxLjUtMjMuNnMtNy44LTIwLjItNy43LTMxYzAtMTIuMiAzLjItMjMuNCA4LjktMzMuMSAzMi4zIDM5LjggODAuOCA2NS44IDEzNS4yIDY4LjYtOS4zLTQ0LjUgMjQtODAuNiA2NC04MC42IDE4LjkgMCAzNS45IDcuOSA0Ny45IDIwLjcgMTQuOC0yLjggMjktOC4zIDQxLjYtMTUuOC00LjkgMTUuMi0xNS4yIDI4LTI4LjggMzYuMSAxMy4yLTEuNCAyNi01LjEgMzcuOC0xMC4yLTguOSAxMy4xLTIwLjEgMjQuNy0zMi45IDM0IC4yIDIuOCAuMiA1LjcgLjIgOC41eiJdfSxLb3Q9SDFlLGRWPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvbnQtYXdlc29tZSIsaWNvbjpbNTEyLDUxMixbNjI1MDEsNjI2OTQsImZvbnQtYXdlc29tZS1mbGFnIiwiZm9udC1hd2Vzb21lLWxvZ28tZnVsbCJdLCJmMmI0IiwiTTkxLjcgOTZDMTA2LjMgODYuOCAxMTYgNzAuNSAxMTYgNTIgMTE2IDIzLjMgOTIuNyAwIDY0IDBTMTIgMjMuMyAxMiA1MmMwIDE2LjcgNy44IDMxLjUgMjAgNDFsMCA0MTkgNjQgMCAwLTY0IDM3My42IDBjMTQuNiAwIDI2LjQtMTEuOCAyNi40LTI2LjQgMC0zLjctLjgtNy4zLTIuMy0xMC43TDQzMiAyNzIgNDkzLjcgMTMzLjFjMS41LTMuNCAyLjMtNyAyLjMtMTAuNyAwLTE0LjYtMTEuOC0yNi40LTI2LjQtMjYuNEw5MS43IDk2eiJdfSxKb3Q9ZFYsZXN0PWRWLHExZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aXJzaW5kaGFuZHdlcmsiLGljb246WzQ0OCw1MTIsWyJ3c2giXSwiZTJkMCIsIk0xOC45IDQ3OS44bDgzLjQgMCAwLTExMi04My40IDQ3IDAgNjV6bTMyOSAwbDgyLjQgMCAwLTY1LTgyLjQtNDcgMCAxMTJ6bTAtNDQ4bDAgMjE5LjgtMTIzLjYtNzIuNC0xMjEuNyA3Mi40IDAtMjE5LjgtODMuNyAwIDAgMzYwLjggMjA1LjQtMTIyLjMgMjA2IDEyMi4zIDAtMzYwLjgtODIuMyAweiJdfSx0c3Q9cTFlLGFzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb25mbHVlbmNlIixpY29uOls1MTIsNTEyLFtdLCJmNzhkIiwiTTIuOCA0MTIuMmMtNC41IDcuNi0yLjEgMTcuNSA1LjUgMjIuMmwxMDUuOSA2NS4yYzcuNyA0LjcgMTcuNyAyLjQgMjIuNC01LjMgMC0uMSAuMS0uMiAuMS0uMiA2Ny4xLTExMi4yIDgwLjUtOTUuOSAyODAuOS0uNyA4LjEgMy45IDE3LjggLjQgMjEuNy03LjcgLjEtLjEgLjEtLjMgLjItLjRsNTAuNC0xMTQuMWMzLjYtOC4xLS4xLTE3LjYtOC4xLTIxLjMtMjIuMi0xMC40LTY2LjItMzEuMi0xMDUuOS01MC4zLTI0Ny45LTEyMC42LTMzMC44IDQ1LjctMzczLjEgMTEyLjZ6TTUxMC4yIDEwMC4xYzQuNS03LjYgMi4xLTE3LjUtNS41LTIyLjJMMzk4LjkgMTIuOGMtNy41LTUtMTcuNi0zLjEtMjIuNiA0LjQtLjIgLjMtLjQgLjYtLjYgMS02Ny4zIDExMi42LTgxLjEgOTUuNi0yODAuNiAuOS04LjEtMy45LTE3LjgtLjQtMjEuNyA3LjctLjEgLjEtLjEgLjMtLjIgLjRMMjIuNyAxNDEuM2MtMy42IDguMSAuMSAxNy42IDguMSAyMS4zIDIyLjIgMTAuNCA2Ni4zIDMxLjIgMTA2IDUwLjQgMjQ4IDEyMCAzMzAuOC00NS40IDM3My40LTExMi45eiJdfSxyc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlnZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFhNiIsIk04MS43IDE3Mi4zbC04MS43IDAgMCAxNzQuNCAxMzIuNyAwIDAtMjUwLjctNTEgMCAwIDc2LjN6bTAgMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3pNMzc4LjkgMTcyLjNsMCAxNzQuNCA4MS44IDAgMCAyOC41LTgxLjggMCAwIDQwLjggMTMzLjEgMCAwLTI0My43LTEzMy4xIDB6bTgxLjggMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3ptLTIzNS42IDQxbDgyLjEgMCAwIDI4LjUtODIuMSAwIDAgNDAuOCAxMzMuMyAwIDAtMjQzLjctMTMzLjMgMCAwIDE3NC40em01MS4yLTEzMy4zbDMwLjggMCAwIDkyLjMtMzAuOCAwIDAtOTIuM3pNMTUzLjMgOTZsNTEuMyAwIDAgNTEtNTEuMyAwIDAtNTF6bTAgNzYuM2w1MS4zIDAgMCAxNzQuNC01MS4zIDAgMC0xNzQuNHoiXX0saXN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRocmVhZHMiLGljb246WzQ0OCw1MTIsW10sImU2MTgiLCJNMzMxLjUgMjM1LjdjMi4yIC45IDQuMiAxLjkgNi4zIDIuOCAyOS4yIDE0LjEgNTAuNiAzNS4yIDYxLjggNjEuNCAxNS43IDM2LjUgMTcuMiA5NS44LTMwLjMgMTQzLjItMzYuMiAzNi4yLTgwLjMgNTIuNS0xNDIuNiA1M2wtLjMgMGMtNzAuMi0uNS0xMjQuMS0yNC4xLTE2MC40LTcwLjItMzIuMy00MS00OC45LTk4LjEtNDkuNS0xNjkuNmwwLS41QzE3IDE4NC4zIDMzLjYgMTI3LjIgNjUuOSA4Ni4yIDEwMi4yIDQwLjEgMTU2LjIgMTYuNSAyMjYuNCAxNmwuMyAwYzcwLjMgLjUgMTI0LjkgMjQgMTYyLjMgNjkuOSAxOC40IDIyLjcgMzIgNTAgNDAuNiA4MS43bC00MC40IDEwLjhjLTcuMS0yNS44LTE3LjgtNDcuOC0zMi4yLTY1LjQtMjkuMi0zNS44LTczLTU0LjItMTMwLjUtNTQuNi01NyAuNS0xMDAuMSAxOC44LTEyOC4yIDU0LjQtMjYuMiAzMy4zLTM5LjggODEuNS00MC4zIDE0My4yIC41IDYxLjcgMTQuMSAxMDkuOSA0MC4zIDE0My4zIDI4IDM1LjYgNzEuMiA1My45IDEyOC4yIDU0LjQgNTEuNC0uNCA4NS40LTEyLjYgMTEzLjctNDAuOSAzMi4zLTMyLjIgMzEuNy03MS44IDIxLjQtOTUuOS02LjEtMTQuMi0xNy4xLTI2LTMxLjktMzQuOS0zLjcgMjYuOS0xMS44IDQ4LjMtMjQuNyA2NC44LTE3LjEgMjEuOC00MS40IDMzLjYtNzIuNyAzNS4zLTIzLjYgMS4zLTQ2LjMtNC40LTYzLjktMTYtMjAuOC0xMy44LTMzLTM0LjgtMzQuMy01OS4zLTIuNS00OC4zIDM1LjctODMgOTUuMi04Ni40IDIxLjEtMS4yIDQwLjktLjMgNTkuMiAyLjgtMi40LTE0LjgtNy4zLTI2LjYtMTQuNi0zNS4yLTEwLTExLjctMjUuNi0xNy43LTQ2LjItMTcuOGwtLjcgMGMtMTYuNiAwLTM5IDQuNi01My4zIDI2LjNsLTM0LjQtMjMuNmMxOS4yLTI5LjEgNTAuMy00NS4xIDg3LjgtNDUuMWwuOCAwYzYyLjYgLjQgOTkuOSAzOS41IDEwMy43IDEwNy43bC0uMiAuMiAuMSAwem0tMTU2IDY4LjhjMS4zIDI1LjEgMjguNCAzNi44IDU0LjYgMzUuMyAyNS42LTEuNCA1NC42LTExLjQgNTkuNS03My4yLTEzLjItMi45LTI3LjgtNC40LTQzLjQtNC40LTQuOCAwLTkuNiAuMS0xNC40IC40LTQyLjkgMi40LTU3LjIgMjMuMi01Ni4yIDQxLjhsLS4xIC4xeiJdfSxWMWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3ByZXNzciIsaWNvbjpbNTEyLDUxMixbInJlbmRhY3QiXSwiZjNlNCIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQyNy4zIDE2Ni42Yy0xNS4yIDM0LjUtMzAuNCA2OS00NS42IDEwMy41LTIuNCA1LjUtNi45IDguMi0xMyA4LjItMjMgMC00NiAuMS02OSAwLTUuMSAwLTguMiAxLjktMTAuMyA2LjctMTAuMiAyMy42LTIwLjYgNDctMzEgNzAuNS0xLjUgMy41LTQuMSA1LjMtNy45IDUuMy00NS45IDAtOTEuOSAwLTEzNy44IDAtMy4xIDAtNS42LTEuMS03LjctMy40LTExLjItMTIuMy0yMi41LTI0LjYtMzMuNy0zNi45LTIuNy0zLTIuOC02LjItMS4yLTkuNyA4LjctMTkuNSAxNy4zLTM5LjEgMjUuOS01OC43IDEyLjktMjkuNCAyNS45LTU4LjcgMzguNy04OC4xIDEuNy0zLjkgNC4zLTUuNyA4LjUtNS43IDE0LjIgLjEgMjguNSAwIDQyLjcgMCA2LjIgMCA5LjIgNC44IDYuNyAxMC42LTEzLjYgMzAuOC0yNy4yIDYxLjYtNDAuNyA5Mi4zLTUuNyAxMy0xMS40IDI2LTE3LjEgMzktMy45IDkgNy4xIDEyIDExIDUuNiAuMi0uNC0xLjQgNC4yIDMwLTY3LjcgMS40LTMuMSAzLjQtNC40IDYuOC00LjQgMTUuMiAuMSAzMC40IDAgNDUuNiAwIDUuNiAwIDcuOSAzLjYgNS43IDguNy04LjMgMTktMTYuNyAzNy45LTI1IDU2LjktNSAxMS40IDguMSAxMi41IDExLjMgNS4zIDAtLjEgMjcuOS02My4zIDMyLjItNzMuMiAyLTQuNiA1LjQtNi41IDEwLjMtNi41IDI2LjQgLjEgNTIuOSAwIDc5LjMgMCAxMi40IDAgMTMuOS0xMy42IDMuOS0xMy42LTI1LjMgMC01MC41IDAtNzUuOCAwLTYuMyAwLTcuOC0yLjUtNS4zLTguMyA1LjgtMTMuMSAxMS42LTI2LjEgMTcuMy0zOS4yIDEuNy00IDQuNS01LjggOC44LTUuOCAyMy4xIC4xIDI2IDAgMTMwLjggMCA2LjEgMCA4IDIuOCA1LjYgOC4zeiJdfSxvc3Q9VjFlLHNzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5b2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJiMSIsIk05MS4zIDc2bDE4NiAwLTcgMTguOS0xNzkgMGMtMzkuNyAwLTcxLjkgMzEuNi03MS45IDcwLjNsMCAyMDUuNGMwIDM1LjQgMjQuOSA3MC4zIDg0IDcwLjNsMCAxOS4xLTEyLjEgMEM0MS4yIDQ2MCAwIDQxOS44IDAgMzcwLjVMMCAxNjUuMkMwIDExNS45IDQwLjcgNzYgOTEuMyA3NnpNMzIwLjQgMjBsNjYuNSAwYy0xNDMuOCAzNzguMS0xNDUuNyAzOTguOS0xODQuNyA0MzkuMy0yMC44IDIxLjYtNDkuMyAzMS43LTc4LjMgMzIuN2wwLTUxLjFjNDkuMi03LjcgNjQuNi00OS45IDY0LjYtNzUuMyAwLTIwLjEgLjYtMTIuNi04Mi4xLTIyMy4ybDYxLjQgMCA1MC40IDE1Ni42IDEwMi4yLTI3OXpNNDQ4IDE2MS41bDAgMjk4LjUtMjE0IDBjNi42LTkuNiAxMC43LTE2LjMgMTIuMS0xOS40bDE4Mi41IDAgMC0yNzkuMWMwLTMyLjUtMTcuMS01MS45LTQ4LjItNjIuOUwzODcuMSA4MWM0MS43IDEzLjYgNjAuOSA0My4xIDYwLjkgODAuNXoiXX0sbnN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5pbWJsciIsaWNvbjpbMzg0LDUxMixbXSwiZjVhOCIsIk0yNDYuNiAzNTMuM2EyNyAyNyAwIDEgMSAwLTU0IDI3IDI3IDAgMSAxIDAgNTR6bS03OS40LTI3YTI3LjEgMjcuMSAwIDEgMSAtNTQuMyAwIDI3LjEgMjcuMSAwIDEgMSA1NC4zIDB6TTE5MS44IDE1OUMxNTcgMTU5IDg5LjQgMTc4LjggNTkuMiAyMjdMMTQgMCAxNCAzMzUuNUMxNCA0MzMuMSA5My42IDUxMiAxOTEuOCA1MTJTMzY5LjUgNDMzIDM2OS41IDMzNS41IDI5MC4xIDE1OSAxOTEuOCAxNTl6bTAgMzA4LjFjLTczLjMgMC0xMzIuNS01OC45LTEzMi41LTEzMS42czU5LjItMTMxLjYgMTMyLjUtMTMxLjYgMTMyLjUgNTguOSAxMzIuNSAxMzEuNS01OS4zIDEzMS42LTEzMi41IDEzMS42bDAgLjF6Il19LGxzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXhlbGZlZCIsaWNvbjpbNTEyLDUxMixbXSwiZTdkYiIsIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6TTIzNS43IDMxMS45bDQ3IDBjNDQuMiAwIDgwLjEtMzQuOSA4MC4xLTc4cy0zNS45LTc4LTgwLjEtNzhsLTY3LjggMGMtMjUuNSAwLTQ2LjIgMjAuMS00Ni4yIDQ1bDAgMTc1LjEgNjctNjQuMXoiXX0sY3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhaG9vIixpY29uOls1MTIsNTEyLFtdLCJmMTllIiwiTTIyMy44IDE0MS4xbC01Ni43IDE0My4yLTU2LTE0My4yLTk2LjEgMCAxMDUuOCAyNDkuMS0zOC42IDg5LjggOTQuMiAwIDE0MC45LTMzOC45LTkzLjYgMHpNMzI5LjIgMjc2LjlhNTguMiA1OC4yIDAgMSAwIDAgMTE2LjQgNTguMiA1OC4yIDAgMSAwIDAtMTE2LjR6TTM5NC43IDMybC05MyAyMjMuNSAxMDQuOCAwIDkyLjYtMjIzLjUtMTA0LjQgMHoiXX0sZHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWVza3kiLGljb246WzU3Niw1MTIsW10sImU2NzEiLCJNNDA3LjggMjk0LjdjLTMuMy0uNC02LjctLjgtMTAtMS4zIDMuNCAuNCA2LjcgLjkgMTAgMS4zek0yODggMjI3LjFDMjYxLjkgMTc2LjQgMTkwLjkgODEuOSAxMjQuOSAzNS4zIDYxLjYtOS40IDM3LjUtMS43IDIxLjYgNS41IDMuMyAxMy44IDAgNDEuOSAwIDU4LjRTOS4xIDE5NCAxNSAyMTMuOWMxOS41IDY1LjcgODkuMSA4Ny45IDE1My4yIDgwLjcgMy4zLS41IDYuNi0uOSAxMC0xLjQtMy4zIC41LTYuNiAxLTEwIDEuNC05My45IDE0LTE3Ny4zIDQ4LjItNjcuOSAxNjkuOSAxMjAuMyAxMjQuNiAxNjQuOC0yNi43IDE4Ny43LTEwMy40IDIyLjkgNzYuNyA0OS4yIDIyMi41IDE4NS42IDEwMy40IDEwMi40LTEwMy40IDI4LjEtMTU2LTY1LjgtMTY5LjktMy4zLS40LTYuNy0uOC0xMC0xLjMgMy40IC40IDYuNyAuOSAxMCAxLjMgNjQuMSA3LjEgMTMzLjYtMTUuMSAxNTMuMi04MC43IDUuOS0xOS45IDE1LTEzOC45IDE1LTE1NS41cy0zLjMtNDQuNy0yMS42LTUyLjljLTE1LjgtNy4xLTQwLTE0LjktMTAzLjIgMjkuOC02Ni4xIDQ2LjYtMTM3LjEgMTQxLjEtMTYzLjIgMTkxLjh6Il19LGZzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY3JpYmQiLGljb246WzM4NCw1MTIsW10sImYyOGEiLCJNNDIuNiAyNTIuN2MtMTYuMS0xOS0yNC43LTQ1LjktMjQuOC03OS45IDAtMTAwLjQgNzUuMi0xNTMuMSAxNjcuMi0xNTMuMSA5OC42LTEuNiAxNTYuOCA0OSAxODQuMyA3MC42bC01MC41IDcyLjEtMzcuMy0yNC42IDI2LjktMzguNmMtMzYuNS0yNC03OS40LTM2LjUtMTIzLTM1LjgtNTAuNy0uOC0xMTEuNyAyNy4yLTExMS43IDc2LjIgMCAxOC43IDExLjIgMjAuNyAyOC42IDE1LjYgMjMuMy01LjMgNDEuOSAuNiA1NS44IDE0IDI2LjQgMjQuMyAyMy4yIDY3LjYtLjcgOTEuOS0yOS4yIDI5LjUtODUuMiAyNy4zLTExNC44LTguNHptMzE3LjcgNS45Yy0xNS41LTE4LjgtMzguOS0yOS40LTYzLjItMjguNi0zOC4xLTItNzEuMSAyOC03MC41IDY3LjItLjcgMTYuOCA2IDMzIDE4LjQgNDQuMyAxNC4xIDEzLjkgMzMgMTkuNyA1Ni4zIDE0LjQgMTcuNC01LjEgMjguNi0zLjEgMjguNiAxNS42IDAgNC4zLS41IDguNS0xLjQgMTIuNy0xNi43IDQwLjktNTkuNSA2NC40LTEyMS40IDY0LjQtNTEuOSAuMi0xMDIuNC0xNi40LTE0NC4xLTQ3LjNsMzMuNy0zOS40LTM1LjYtMjcuNC02MC44IDcxLjggMTUuNCAxMy44YzUyLjUgNDYuOCAxMjAuNCA3Mi41IDE5MC43IDcyLjIgNTEuNCAwIDk0LjQtMTAuNSAxMzMuNi00NC4xIDU3LjEtNTEuNCA1NC4yLTE0OS4yIDIwLjMtMTg5LjZ6Il19LHVzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXBkIixpY29uOls1MTIsNTEyLFtdLCJmNGVjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCA0NDkuNWMtMTM5LjIgMC0yMzUuOC0xMzgtMTkwLjItMjY3LjlsNzguOCAzNS4xYy0yLjEgMTAuNS0zLjMgMjEuNS0zLjMgMzIuOSAwIDk5IDczLjkgMTI2LjkgMTIwLjQgMTI2LjkgMjIuOSAwIDUzLjUtNi43IDc5LjQtMjkuNUwzMDUgMzExLjFjLTUuNSA2LjMtMTcuNiAxNi43LTM2LjMgMTYuNy0zNy44IDAtNTMuNy0zOS45LTUzLjktNzEuOSAyMzAuNCAxMDIuNiAyMTYuNSA5Ni41IDIxNy45IDk2LjgtMzQuMyA2Mi40LTEwMC42IDEwNC44LTE3Ni43IDEwNC44em0xOTQuMi0xNTBsLTIyNC0xMDBjMTguOC0zNCA1NC45LTMwLjcgNzQuNy0xMWw0MC40LTQxLjZjLTI3LjEtMjMuMy01OC0yNy41LTc4LjEtMjcuNS00Ny40IDAtODAuOSAyMC41LTEwMC43IDUxLjZMODcuNiAxNDUuNmMzNi4xLTU0LjkgOTguMS05MS4yIDE2OC41LTkxLjIgMTExLjEgMCAyMDEuNSA5MC40IDIwMS41IDIwMS41IDAgMTgtMi40IDM1LjQtNi44IDUyLS4zLS4xLS40LS4yLS42LS40eiJdfSxwc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWFybHliaXJkcyIsaWNvbjpbNTEyLDUxMixbXSwiZjM5YSIsIk0zMjkuMyA0Ny41YzEuMi0xMyAyMS4zLTE0IDM2LjYtOC43IC45IC4zIDI2LjIgOS43IDE5IDE1LjItMjcuOS03LjQtNTYuNCAxOC4yLTU1LjYtNi41em0tMjAxIDYuOWMzMC43LTguMSA2MiAyMCA2MS4xLTcuMS0xLjMtMTQuMi0yMy40LTE1LjMtNDAuMi05LjYtMSAuMy0yOC43IDEwLjUtMjAuOSAxNi43ek0zMzUuNSAxNjBhMTYgMTYgMCAxIDAgMCAzMiAxNiAxNiAwIDEgMCAwLTMyem0tMTU5LjcgMGExNiAxNiAwIDEgMCAwIDMyIDE2IDE2IDAgMSAwIDAtMzJ6TTQ5NC4zIDMyMy4yYy05LjkgMjQtNDAuNyAxMS02My45LTEuMi0xMy41IDY5LjEtNTguMSAxMTEuNC0xMjYuMyAxMjQuMiAuMyAuOS0yLS4xIDI0IDEgMzMuNiAxLjQgNjMuOC0zLjEgOTcuNC04LTE5LjgtMTMuOC0xMS40LTM3LjEtOS44LTM4LjEgMS40LS45IDE0LjcgMS43IDIxLjYgMTEuNSA4LjYtMTIuNSAyOC40LTE0LjggMzAuMi0xMy42IDEuNiAxLjEgNi42IDIwLjktNi45IDM0LjYgNC43LS45IDguMi0xLjYgOS44LTIuMSAyLjYtLjggMTcuNyAxMS4zIDMuMSAxMy4zLTE0LjMgMi4zLTIyLjYgNS4xLTQ3LjEgMTAuOC00NS45IDEwLjctODUuOSAxMS44LTExNy43IDEyLjhsMSAxMS42YzMuOCAxOC4xLTIzLjQgMjQuMy0yNy42IDYuMiAuOCAxNy45LTI3LjEgMjEuOC0yOC40LTFsLS41IDUuM2MtLjcgMTguNC0yOC40IDE3LjktMjguMy0uNi03LjUgMTMuNS0yOC4xIDYuOC0yNi40LTguNWwxLjItMTIuNGMtMzYuNyAuOS01OS43IDMuMS02MS44IDMuMS0yMC45IDAtMjAuOS0zMS42IDAtMzEuNiAyLjQgMCAyNy43IDEuMyA2My4yIDIuOC02MS4xLTE1LjUtMTAzLjctNTUtMTE0LjktMTE4LjItMjUgMTIuOC01Ny41IDI2LjgtNjguMiAuOC0xMC41LTI1LjQgMjEuNS00Mi42IDY2LjgtNzMuNCAuNy02LjYgMS42LTEzLjMgMi43LTE5LjgtMTQuNC0xOS42LTExLjYtMzYuMy0xNi4xLTYwLjQtMTYuOCAyLjQtMjMuMi05LjEtMjMuNi0yMy4xIC4zLTcuMyAyLjEtMTQuOSAyLjQtMTUuNCAxLjEtMS44IDEwLjEtMiAxMi43LTIuNiA2LTMxLjcgNTAuNi0zMy4yIDkwLjktMzQuNSAxOS43LTIxLjggNDUuMi00MS41IDgwLjktNDguMy0xNS4zLTE5LjQtMy40LTM5LjktMi40LTQwLjQgMS43LS44IDIxLjIgNC4zIDI2LjMgMjMuMiA1LjItOC44IDE4LjMtMTEuNCAxOS42LTEwLjcgMS4xIC42IDYuNCAxNS00LjkgMjUuOSA0MC4zIDMuNSA3Mi4yIDI0LjcgOTYgNTAuNyAzNi4xIDEuNSA3MS44IDUuOSA3Ny4xIDM0IDIuNyAuNiAxMS42IC44IDEyLjcgMi42IC4zIC41IDIuMSA4LjEgMi40IDE1LjQtLjUgMTMuOS02LjggMjUuNC0yMy42IDIzLjEtMy4yIDE3LjMtMi43IDMyLjktOC43IDQ3LjcgMi40IDExLjcgNCAyMy44IDQuOCAzNi40IDM3IDI1LjQgNzAuMyA0Mi41IDYwLjMgNjYuOXpNMjIzLjUgMTU5LjljLjktNDQtMzcuOS00Mi4yLTc4LjYtNDAuMy0yMS43IDEtMzguOSAxLjktNDUuNSAxMy45LTExLjQgMjAuOSA1LjkgOTIuOSAyMy4yIDEwMS4yIDkuOCA0LjcgNzMuNCA3LjkgODYuMy03LjEgOC4yLTkuNCAxNS00OS40IDE0LjYtNjcuN3ptNTIgNTguM2MtNC4zLTEyLjQtNi0zMC4xLTE1LjMtMzIuNy0yLS41LTktLjUtMTEgMC0xMCAyLjgtMTAuOCAyMi4xLTE3IDM3LjIgMTUuNCAwIDE5LjMgOS43IDIzLjcgOS43IDQuMyAwIDYuMy0xMS4zIDE5LjYtMTQuMnptMTM1LjctODQuN2MtNi42LTEyLjEtMjQuOC0xMi45LTQ2LjUtMTMuOS00MC4yLTEuOS03OC4yLTMuOC03Ny4zIDQwLjMtLjUgMTguMyA1IDU4LjMgMTMuMiA2Ny44IDEzIDE0LjkgNzYuNiAxMS44IDg2LjMgNy4xIDE1LjgtNy42IDM2LjUtNzguOSAyNC4zLTEwMS4zeiJdfSxVMWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLW9kbm9rbGFzc25pa2kiLGljb246WzQ0OCw1MTIsWyJvZG5va2xhc3NuaWtpLXNxdWFyZSJdLCJmMjY0IiwiTTIyNCAxMzcuMWMtNS40LS4zLTEwLjggLjYtMTUuOSAyLjRzLTkuNyA0LjgtMTMuNiA4LjUtNyA4LjItOS4yIDEzLjItMy4yIDEwLjMtMy4yIDE1LjcgMS4xIDEwLjggMy4yIDE1LjcgNS4zIDkuNSA5LjIgMTMuMiA4LjYgNi42IDEzLjYgOC41IDEwLjUgMi43IDE1LjkgMi40YzUuNCAuMyAxMC44LS42IDE1LjktMi40czkuNy00LjggMTMuNi04LjUgNy04LjIgOS4yLTEzLjIgMy4yLTEwLjMgMy4yLTE1LjctMS4xLTEwLjgtMy4yLTE1LjctNS4zLTkuNS05LjItMTMuMi04LjYtNi42LTEzLjYtOC41LTEwLjUtMi43LTE1LjktMi40ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMjI0IDI1OGE4MSA4MSAwIDEgMSAwLTE2Mi4xIDgxIDgxIDAgMSAxIDAgMTYyLjF6bTU5LjMgNi4yYzE2LjgtMTMuMiAyOS41LTUuNSAzNC4xIDMuNiA3LjggMTYtMS4xIDIzLjctMjEuNSAzNy0xNy4xIDEwLjktNDAuNyAxNS4yLTU2LjIgMTYuOGwxMyAxMi45IDQ3LjcgNDcuN2MxNy40IDE3LjktMTEgNDUuOC0yOC42IDI4LjYtMTItMTIuMi0yOS41LTI5LjctNDcuNy00Ny45bC00Ny43IDQ3LjljLTE3LjcgMTcuMi00Ni0xMS0yOC40LTI4LjYgMy43LTMuNyA3LjktNy45IDEyLjUtMTIuNSAxMC40LTEwLjQgMjIuNi0yMi43IDM1LjItMzUuMmwxMi45LTEyLjljLTE1LjQtMS42LTM5LjMtNS43LTU2LjYtMTYuOC0yMC4zLTEzLjMtMjkuMy0yMC45LTIxLjQtMzcgNC42LTkuMSAxNy4zLTE2LjggMzQuMS0zLjYgMCAwIDIyLjcgMTggNTkuMyAxOHM1OS4zLTE4IDU5LjMtMTh6Il19LGhzdD1VMWUsbXN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hcmtkb3duIixpY29uOls2NDAsNTEyLFtdLCJmNjBmIiwiTTU5My44IDU5LjFsLTU0Ny42IDBDMjAuNyA1OS4xIDAgNzkuOCAwIDEwNS4yTDAgNDA2LjdjMCAyNS41IDIwLjcgNDYuMiA0Ni4yIDQ2LjJsNTQ3LjcgMGMyNS41IDAgNDYuMi0yMC43IDQ2LjEtNDYuMWwwLTMwMS42YzAtMjUuNC0yMC43LTQ2LjEtNDYuMi00Ni4xek0zMzguNSAzNjAuNmwtNjEuNSAwIDAtMTIwLTYxLjUgNzYuOS02MS41LTc2LjkgMCAxMjAtNjEuNyAwIDAtMjA5LjIgNjEuNSAwIDYxLjUgNzYuOSA2MS41LTc2LjkgNjEuNSAwIDAgMjA5LjIgLjIgMHptMTM1LjMgMy4xbC05Mi4zLTEwNy43IDYxLjUgMCAwLTEwNC42IDYxLjUgMCAwIDEwNC42IDYxLjUgMC05Mi4yIDEwNy43eiJdfSxnc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHlwbzMiLGljb246WzQ0OCw1MTIsW10sImY0MmIiLCJNMTc4LjcgNzguNGMwLTI0LjcgNS40LTMyLjQgMTMuOS0zOS40LTY5LjUgOC41LTE0OS4zIDM0LTE3Ni4zIDY2LjQtNS40IDcuNy05LjMgMjAuOC05LjMgMzcuMSAwIDEwMy41IDEwNi44IDMzNy41IDE4NC4xIDMzNy41IDM2LjMgMCA5Ny4zLTU5LjUgMTQ2LjctMTM5LTcgMi4zLTExLjYgMi4zLTE4LjUgMi4zLTU3LjIgMC0xNDAuNi0xOTguNS0xNDAuNi0yNjQuOXpNMzAxLjUgMzJjLTMwLjEgMC00MS43IDUuNC00MS43IDM2LjMgMCA2Ni40IDUzLjggMTk4LjUgMTAxLjcgMTk4LjUgMjYuMyAwIDc4LjgtOTkuNyA3OC44LTE4Mi4zIDAtNDAuOS02Ny01Mi41LTEzOC44LTUyLjV6Il19LHhzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqb29tbGEiLGljb246WzQ0OCw1MTIsW10sImYxYWEiLCJNLjYgOTIuMWMwLTMzLjMgMjYuOC02MC4xIDU5LjgtNjAuMSAzMCAwIDU0LjUgMjEuOSA1OS4yIDUwLjIgMzIuNi03LjYgNjcuMSAuNiA5Ni41IDMwbC00NC4zIDQ0LjNjLTIwLjUtMjAuNS00Mi42LTE2LjMtNTUuNC0zLjUtMTQuMyAxNC4zLTE0LjMgMzcuOSAwIDUyLjJsOTkuNSA5OS41LTQ0IDQ0LjNjLTg3LjctODcuMi00OS43LTQ5LjctOTkuOC05OS43LTI2LjgtMjYuNS0zNS02NC44LTI0LjgtOTguOS0yNi45LTUuOC00Ni43LTI5LjctNDYuNy01OC4zek0xMzAuMSAyMDguNWw0NC4zIDQ0LjNjMTAtMTAgODkuNy04OS43IDk5LjctOTkuOCAxNC4zLTE0LjMgMzcuNi0xNC4zIDUxLjkgMCAxMi44IDEyLjggMTcgMzUtMy41IDU1LjRsNDQgNDQuM2MzMS4yLTMxLjIgMzguNS02Ny42IDI4LjktMTAxLjIgMjkuMi00LjEgNTEuOS0yOS4yIDUxLjktNTkuNSAwLTMzLjItMjYuOC02MC4xLTU5LjgtNjAuMS0zMC4zIDAtNTUuNCAyMi41LTU5LjUgNTEuNi0zMy44LTkuOS03MS43LTEuNS05OC4zIDI1LjEtMTguMyAxOS4xLTcxLjEgNzEuNS05OS42IDk5Ljl6TTM5Ni40IDM2MC43YzguMi0zMi43LS45LTY4LjUtMjYuMy05My45LTExLjgtMTIuMiA1IDQuNy05OS41LTk5LjdsLTQ0LjMgNDQuMyA5OS43IDk5LjdjMTQuMyAxNC4zIDE0LjMgMzcuNiAwIDUxLjktMTIuOCAxMi44LTM1IDE3LTU1LjQtMy41bC00NCA0NC4zYzI3LjYgMzAuMiA2OCAzOC44IDEwMi43IDI4IDUuNSAyNy40IDI5LjcgNDguMSA1OC45IDQ4LjEgMzMgMCA1OS44LTI2LjggNTkuOC02MC4xIDAtMzAuMi0yMi41LTU1LTUxLjYtNTkuMXptLTg0LjMtNTMuMWwtNDQtNDQuM2MtODcgODYuNC01MC40IDUwLjQtOTkuNyA5OS44LTE0LjMgMTQuMy0zNy42IDE0LjMtNTEuOSAwLTEzLjEtMTMuNC0xNi45LTM1LjMgMy4yLTU1LjRsLTQ0LTQ0LjNjLTMwLjIgMzAuMi0zOCA2NS4yLTI5LjUgOTguMy0yNi43IDYtNDYuMiAyOS45LTQ2LjIgNTguMiAwIDMzLjMgMjYuOCA2MC4xIDU5LjggNjAuMSAyOC42IDAgNTIuNS0xOS44IDU4LjYtNDYuNyAzMi43IDguMiA2OC41LS42IDk0LjItMjYgMzIuMS0zMiAxMi4yLTEyLjQgOTkuNS05OS43eiJdfSxic3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2VpeGluIixpY29uOls1NzYsNTEyLFtdLCJmMWQ3IiwiTTM4NS4yIDE2Ny42YzYuNCAwIDEyLjYgLjMgMTguOCAxLjEtMTYuNi03OC40LTEwMC43LTEzNi43LTE5Ni4zLTEzNi43LTEwNy4yIDAtMTk0LjcgNzIuOC0xOTQuNyAxNjUuNCAwIDUzLjQgMjkuMyA5Ny41IDc3LjkgMTMxLjZsLTE5LjMgNTguNiA2OC0zNC4xYzI0LjQgNC44IDQzLjggOS43IDY4LjIgOS43IDYuMiAwIDEyLjEtLjMgMTguMy0uOC00LTEyLjktNi4yLTI2LjYtNi4yLTQwLjgtLjEtODQuOSA3Mi45LTE1NCAxNjUuMy0xNTR6TTI4MC43IDExNC43YzE0LjUgMCAyNC4yIDkuNyAyNC4yIDI0LjQgMCAxNC41LTkuNyAyNC4yLTI0LjIgMjQuMi0xNC44IDAtMjkuMy05LjctMjkuMy0yNC4yIC4xLTE0LjcgMTQuNi0yNC40IDI5LjMtMjQuNHpNMTQ0LjMgMTYzLjNjLTE0LjUgMC0yOS4zLTkuNy0yOS4zLTI0LjIgMC0xNC44IDE0LjgtMjQuNCAyOS4zLTI0LjQgMTQuOCAwIDI0LjQgOS43IDI0LjQgMjQuNCAwIDE0LjYtOS42IDI0LjItMjQuNCAyNC4yek01NjMgMzE5LjRjMC03Ny45LTc3LjktMTQxLjMtMTY1LjQtMTQxLjMtOTIuNyAwLTE2NS40IDYzLjQtMTY1LjQgMTQxLjNTMzA1IDQ2MC43IDM5Ny42IDQ2MC43YzE5LjMgMCAzOC45LTUuMSA1OC42LTkuOWw1My40IDI5LjMtMTQuOC00OC42QzUzNCA0MDIuMSA1NjMgMzYzLjIgNTYzIDMxOS40ek0zNDMuOSAyOTQuOWMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC44IDAgMjQuNCA5LjcgMjQuNCAxOS4zIDAgMTAtOS43IDE5LjYtMjQuNCAxOS42em0xMDcuMSAwYy05LjcgMC0xOS4zLTkuNy0xOS4zLTE5LjYgMC05LjcgOS43LTE5LjMgMTkuMy0xOS4zIDE0LjUgMCAyNC40IDkuNyAyNC40IDE5LjMgLjEgMTAtOS45IDE5LjYtMjQuNCAxOS42eiJdfSx2c3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3J1bnQiLGljb246WzM4NCw1MTIsW10sImYzYWQiLCJNNjEuNiAxODkuM2MtMS4xIDEwIDUuMiAxOS4xIDUuMiAxOS4xIC43LTcuNSAyLjItMTIuOCA0LTE2LjYgLjQgMTAuMyAzLjIgMjMuNSAxMi44IDM0LjEgNi45IDcuNiAzNS42IDIzLjMgNTQuOSA2LjEgMSAyLjQgMi4xIDUuMyAzIDguNSAyLjkgMTAuMy0yLjcgMjUuMy0yLjcgMjUuM3MxNS4xLTE3LjEgMTMuOS0zMi41YzEwLjgtLjUgMjEuNC04LjQgMjEuMS0xOS41IDAgMC0xOC45IDEwLjQtMzUuNS04LjgtOS43LTExLjItNDAuOS00Mi04My4xLTMxLjggNC4zIDEgOC45IDIuNCAxMy41IDQuMWwtLjEgMGMtNC4yIDItNi41IDcuMS03IDEyem0yOC4zLTEuOGMxOS41IDExIDM3LjQgMjUuNyA0NC45IDM3LTUuNyAzLjMtMjEuNyAxMC40LTM4LTEuNy0xMC4zLTcuNi05LjgtMjYuMi02LjktMzUuM3pNMjMyIDIzMy4zYy0xLjIgMTUuNSAxMy45IDMyLjUgMTMuOSAzMi41cy01LjYtMTUtMi43LTI1LjNjLjktMy4yIDItNiAzLTguNSAxOS4zIDE3LjMgNDggMS41IDU0LjgtNi4xIDkuNi0xMC42IDEyLjMtMjMuOCAxMi44LTM0LjEgMS44IDMuOCAzLjQgOS4xIDQgMTYuNiAwIDAgNi40LTkuMSA1LjItMTkuMS0uNi01LTIuOS0xMC03LTExLjhsLS4xIDBjNC42LTEuOCA5LjItMy4yIDEzLjUtNC4xLTQyLjMtMTAuMi03My40IDIwLjYtODMuMSAzMS44LTE2LjcgMTkuMi0zNS41IDguOC0zNS41IDguOC0uMiAxMC45IDEwLjQgMTguOSAyMS4yIDE5LjN6bTYyLjctNDUuOGMzIDkuMSAzLjQgMjcuNy03IDM1LjQtMTYuMyAxMi4xLTMyLjIgNS0zNy45IDEuNiA3LjUtMTEuNCAyNS40LTI2IDQ0LjktMzd6bS0xMzQuNCAyMzFsLTI5LjQgMGMtNS41IDAtOC4yIDEuNi05LjUgMi45LTEuOSAyLTIuMiA0LjctLjkgOC4xIDMuNSA5LjEgMTEuNCAxNi41IDEzLjcgMTguNiAzLjEgMi43IDcuNSA0LjMgMTEuOCA0LjMgNC40IDAgOC4zLTEuNyAxMS00LjYgNy41LTguMiAxMS45LTE3LjEgMTMtMTkuOCAuNi0xLjUgMS4zLTQuNS0uOS02LjgtMS44LTEuOC00LjctMi43LTguOC0yLjd6TTM0OS41IDMxNy4zYy0yLjQgMTcuOS0xMyAzMy44LTI0LjYgNDMuNy0zLjEtMjIuNy0zLjctNTUuNS0zLjctNjIuNCAwLTE0LjcgOS41LTI0LjUgMTIuMi0yNi4xIDIuNS0xLjUgNS40LTMgOC4zLTQuNiAxOC05LjYgNDAuNC0yMS42IDQwLjQtNDMuNyAwLTE2LjItOS4zLTIzLjItMTUuNC0yNy44LS44LS42LTEuNS0xLjEtMi4yLTEuNy0yLjEtMS43LTMuNy0zLTQuMy00LjQtNC40LTkuOC0zLjYtMzQuMi0xLjctMzcuNiAuNi0uNiAxNi43LTIwLjkgMTEuOC0zOS4yLTItNy40LTYuOS0xMy4zLTE0LjEtMTctNS4zLTIuNy0xMS45LTQuMi0xOS41LTQuNS0uMS0yLS41LTMuOS0uOS01LjktLjYtMi42LTEuMS01LjMtLjktOC4xIC40LTQuNyAuOC05IDIuMi0xMS4zIDguNC0xMy4zIDI4LjgtMTcuNiAyOS0xNy42bDEyLjMtMi40LTguMS05LjVjLS4xLS4yLTE3LjMtMTcuNS00Ni4zLTE3LjUtNy45IDAtMTYgMS4zLTI0LjEgMy45LTI0LjIgNy44LTQyLjkgMzAuNS00OS40IDM5LjMtMy4xLTEtNi4zLTEuOS05LjYtMi43LTQuMi0xNS44IDktMzguNSA5LTM4LjVzLTEzLjYtMy0zMy43IDE1LjJjLTIuNi02LjUtOC4xLTIwLjUtMS44LTM3LjItMjkuNSAxMC40LTM2LjkgMjYuMy0zOS4xIDQwLjctNy42LTUuNC02LjctMjMuMS03LjItMjcuNi03LjUgLjktMjkuMiAyMS45LTI4LjIgNDguMy0yIC41LTMuOSAxLjEtNS45IDEuNy02LjUtOC44LTI1LjEtMzEuNS00OS40LTM5LjMtNy45LTIuMi0xNi0zLjUtMjMuOS0zLjUtMjkgMC00Ni4xIDE3LjMtNDYuMyAxNy41bC04LjEgOS40IDEyLjMgMi40Yy4yIDAgMjAuNiA0LjMgMjkgMTcuNiAxLjQgMi4yIDEuOCA2LjYgMi4yIDExLjMgLjIgMi44LS40IDUuNS0uOSA4LjEtLjQgMS45LS44IDMuOS0uOSA1LjktNy43IC4zLTE0LjIgMS44LTE5LjUgNC41LTcuMiAzLjctMTIuMSA5LjYtMTQuMSAxNy01IDE4LjIgMTEuMiAzOC41IDExLjggMzkuMiAxLjkgMy40IDIuNyAyNy44LTEuNyAzNy42LS42IDEuNC0yLjIgMi43LTQuMyA0LjQtLjcgLjUtMS40IDEuMS0yLjIgMS43LTYuMSA0LjYtMTUuNCAxMS43LTE1LjQgMjcuOCAwIDIyLjEgMjIuNCAzNC4xIDQwLjQgNDMuNyAzIDEuNiA1LjggMy4xIDguMyA0LjYgMi43IDEuNiAxMi4yIDExLjQgMTIuMiAyNi4xIDAgNi45LS42IDM5LjctMy43IDYyLjQtMTEuNi05LjktMjIuMi0yNS45LTI0LjYtNDMuOCAwIDAtMjkuMiAyMi42LTIwLjYgNzAuOCA1LjIgMjkuNSAyMy4yIDQ2LjEgNDcgNTQuNyA4LjggMTkuMSAyOS40IDQ1LjcgNjcuMyA0OS42IDE0LjQgMTEuOCAzNC40IDE5LjUgNjMuNiAxOS41bC4yIDBjMjkuMSAwIDQ5LjEtNy43IDYzLjYtMTkuNSAzNy45LTMuOSA1OC41LTMwLjUgNjcuMy00OS42IDIzLjgtOC43IDQxLjctMjUuMiA0Ny01NC43IDguMi00OC40LTIxLjEtNzAuOS0yMS4xLTcwLjl6TTMwNiAzNy43YzUuNi0xLjggMTEuNi0yLjcgMTcuNy0yLjcgMTEgMCAxOS45IDMgMjQuNyA1LTMuMSAxLjQtNi40IDMuMi05LjcgNS4zLTIuNC0uNC01LjYtLjgtOS4yLS44LTEwLjUgMC0yMC41IDMuMS0yOC43IDguOS0xMi4zIDguNy0xOCAxNi45LTIwLjcgMjIuNC0yLjItMS4zLTQuNS0yLjUtNy4xLTMuNy0xLjYtLjgtMy4xLTEuNS00LjctMi4yIDYuMS05LjEgMTkuOS0yNi41IDM3LjctMzIuMnptMjEgMTguMmMtLjggMS0xLjYgMi4xLTIuMyAzLjItMy4zIDUuMi0zLjkgMTEuNi00LjQgMTcuOC0uNSA2LjQtMS4xIDEyLjUtNC40IDE3LTQuMiAuOC04LjEgMS43LTExLjUgMi43LTIuMy0zLjEtNS42LTctMTAuNS0xMS4yIDEuNC00LjggNS41LTE2LjEgMTMuNS0yMi41IDUuNi00LjMgMTIuMi02LjcgMTkuNi03ek00NS45IDQ1LjNjLTMuMy0yLjItNi42LTQtOS43LTUuMyA0LjgtMiAxMy43LTUgMjQuNy01IDYuMSAwIDEyIC45IDE3LjcgMi43IDE3LjggNS44IDMxLjYgMjMuMiAzNy43IDMyLjEtMS42IC43LTMuMiAxLjQtNC44IDIuMi0yLjUgMS4yLTQuOSAyLjUtNy4xIDMuNy0yLjYtNS40LTguMy0xMy43LTIwLjctMjIuNC04LjMtNS44LTE4LjItOC45LTI4LjgtOC45LTMuNCAuMS02LjYgLjUtOSAuOXpNOTAuNiA4NS40Yy00LjkgNC4yLTguMyA4LTEwLjUgMTEuMi0zLjQtLjktNy4zLTEuOS0xMS41LTIuNy0zLjMtNC40LTMuOC0xMC41LTQuMy0xNi45LS41LTYuMi0xLjEtMTIuNi00LjQtMTcuOC0uNy0xLjEtMS41LTIuMi0yLjMtMy4yIDcuNCAuMyAxNCAyLjYgMTkuNSA3IDggNi4zIDEyLjEgMTcuNiAxMy41IDIyLjR6TTU4LjQgMjU5LjljLTIuNy0xLjYtNS42LTMuMS04LjQtNC42LTE0LjktOC0zMC4yLTE2LjMtMzAuMi0zMC41IDAtMTEuMSA0LjMtMTQuNiA4LjktMTguMmwuNS0uNGMuNy0uNiAxLjQtMS4yIDIuMi0xLjgtLjkgNy4yLTEuOSAxMy4zLTIuNyAxNC45IDAgMCAxMi4xLTE1IDE1LjctNDQuMyAxLjQtMTEuNS0xLjEtMzQuMy01LjEtNDMgLjIgNC45IDAgOS44LS4zIDE0LjQtLjQtLjgtLjgtMS42LTEuMy0yLjItMy4yLTQtMTEuOC0xNy41LTkuNC0yNi42IC45LTMuNSAzLjEtNiA2LjctNy44IDMuOC0xLjkgOC44LTIuOSAxNS4xLTIuOSAxMi4zIDAgMjUuOSAzLjcgMzIuOSA2IDI1LjEgOCA1NS40IDMwLjkgNjQuMSAzNy43IC4yIC4yIC40IC4zIC40IC4zbDUuNiAzLjktMy41LTUuOGMtLjItLjMtMTkuMS0zMS40LTUzLjItNDYuNSAyLTIuOSA3LjQtOC4xIDIxLjYtMTUuMSAyMS40LTEwLjUgNDYuNS0xNS44IDc0LjMtMTUuOCAyNy45IDAgNTIuOSA1LjMgNzQuMyAxNS44IDE0LjIgNi45IDE5LjYgMTIuMiAyMS42IDE1LjEtMzQgMTUuMS01Mi45IDQ2LjItNTMuMSA0Ni41bC0zLjUgNS44IDUuNi0zLjlzLjItLjEgLjQtLjNjOC43LTYuOCAzOS0yOS44IDY0LjEtMzcuNyA3LTIuMiAyMC42LTYgMzIuOS02IDYuMyAwIDExLjMgMSAxNS4xIDIuOSAzLjUgMS44IDUuNyA0LjQgNi43IDcuOCAyLjUgOS4xLTYuMSAyMi42LTkuNCAyNi42LS41IC42LS45IDEuMy0xLjMgMi4yLS4zLTQuNi0uNS05LjUtLjMtMTQuNC00IDguOC02LjUgMzEuNS01LjEgNDMgMy42IDI5LjMgMTUuNyA0NC4zIDE1LjcgNDQuMy0uOC0xLjYtMS44LTcuNy0yLjctMTQuOSAuNyAuNiAxLjUgMS4yIDIuMiAxLjhsLjUgLjRjNC42IDMuNyA4LjkgNy4xIDguOSAxOC4yIDAgMTQuMi0xNS40IDIyLjUtMzAuMiAzMC41LTIuOSAxLjUtNS43IDMuMS04LjQgNC42LTguNyA1LTE4IDE2LjctMTkuMSAzNC4yLS45IDE0LjYgLjkgNDkuOSAzLjQgNzUuOS0xMi40IDQuOC0yNi43IDYuNC0zOS43IDYuOC0yLTQuMS0zLjktOC41LTUuNS0xMy4xLS43LTItMTkuNi01MS4xLTI2LjQtNjIuMiA1LjUgMzkgMTcuNSA3My43IDIzLjUgODkuNi0zLjUtLjUtNy4zLS43LTExLjctLjdsLTExNyAwYy00LjQgMC04LjMgLjMtMTEuNyAuNyA2LTE1LjkgMTguMS01MC42IDIzLjUtODkuNi02LjggMTEuMi0yNS43IDYwLjMtMjYuNCA2Mi4yLTEuNiA0LjYtMy41IDktNS41IDEzLjEtMTMtLjQtMjcuMi0yLTM5LjctNi44IDIuNS0yNiA0LjMtNjEuMiAzLjQtNzUuOS0uOS0xNy40LTEwLjMtMjkuMi0xOS0zNC4yek0zNS4xIDQwNC42Yy0xMi4xLTIwLTguNy01NC4xLTMuNy01OS4xIDEwLjkgMzQuNCA0Ny4yIDQ0LjMgNzQuNCA0NS40LTIuNyA0LjItNS4yIDcuNi03IDEwbC0xLjQgMS40Yy03LjIgNy44LTguNiAxOC41LTQuMSAzMS44LTIyLjctLjEtNDYuMy05LjgtNTguMi0yOS41em00NS43IDQzLjVjNiAxLjEgMTIuMiAxLjkgMTguNiAyLjQgMy41IDggNy40IDE1LjkgMTIuMyAyMy4xLTE0LjQtNS45LTI0LjQtMTYtMzAuOS0yNS41em0xMTEuNSA1MC4xYy02MC42LS4xLTc4LjMtNDUuOC04NC45LTY0LjctMy43LTEwLjUtMy40LTE4LjIgLjktMjMuMSAyLjktMy4zIDkuNS03LjIgMjQuNi03LjJsMTE4LjggMGMxNS4xIDAgMjEuOCAzLjkgMjQuNiA3LjIgNC4yIDQuOCA0LjUgMTIuNiAuOSAyMy4xLTYuNiAxOC44LTI0LjMgNjQuNi04NC45IDY0Ljd6bTgwLjYtMjQuNmM0LjktNy4yIDguOC0xNS4xIDEyLjMtMjMuMSA2LjQtLjUgMTIuNi0xLjMgMTguNi0yLjQtNi41IDkuNS0xNi41IDE5LjYtMzAuOSAyNS41em03Ni42LTY5Yy0xMiAxOS43LTM1LjYgMjkuMy01OC4xIDI5LjcgNC41LTEzLjMgMy4xLTI0LjEtNC4xLTMxLjgtLjQtLjUtLjktMS0xLjQtMS41LTEuOC0yLjQtNC4zLTUuOC03LTEwIDI3LjItMS4yIDYzLjUtMTEgNzQuNC00NS40IDUgNSA4LjQgMzkuMS0zLjggNTl6TTE5Mi4yIDE4Ny43bC4yIDBjMTIuNy0uMSAyNy4yLTE3LjggMjcuMi0xNy44LTkuOSA2LTE4LjggOC4xLTI3LjMgOC4zLTguNS0uMi0xNy40LTIuMy0yNy4zLTguMyAwIDAgMTQuNSAxNy42IDI3LjIgMTcuOHptNjEuNyAyMzAuN2wtMjkuNCAwYy00LjIgMC03LjIgLjktOC45IDIuNy0yLjIgMi4zLTEuNSA1LjItLjkgNi43IDEgMi42IDUuNSAxMS4zIDEzIDE5LjMgMi43IDIuOSA2LjYgNC41IDExIDQuNXM4LjctMS42IDExLjgtNC4yYzIuMy0yIDEwLjItOS4yIDEzLjctMTguMSAxLjMtMy4zIDEtNi0uOS03LjktMS4zLTEuMy00LTIuOS05LjQtM3oiXX0seXN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJvY2tybXMiLGljb246WzUxMiw1MTIsW10sImYzZTkiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MTMuNCA0MjcuNWwtOTAgMC0xMTItMTMxLjNjLTE3LjktMjAuNC0zLjktNTYuMSAyNi42LTU2LjFsNzUuMyAwLTg0LjYtOTkuMy04NC4zIDk4LjktOTAgMCAxNDcuMS0xNzIuNWMxNC40LTE4LjQgNDEuMy0xNy4zIDU0LjUgMEw0MTMuNyAyNTIuM2MxOSAyMi44IDIgNTcuMi0yNy42IDU2LjEtLjYgMC03NC4yIC4yLTc0LjIgLjJMNDEzLjQgNDI3LjV6Il19LHdzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bnNwbGFzaCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3YyIsIk00NDggMjMwLjJsMCAyNDkuOC00NDggMCAwLTI0OS44IDE0MS4xIDAgMCAxMjQuOSAxNjUuNyAwIDAtMTI0LjkgMTQxLjEgMHpNMzA2LjkgMzJsLTE2NS43IDAgMCAxMjQuOSAxNjUuNyAwIDAtMTI0Ljl6Il19LGoxZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtaW5zdGFncmFtIixpY29uOls0NDgsNTEyLFsiaW5zdGFncmFtLXNxdWFyZSJdLCJlMDU1IiwiTTE5NC40IDIxMS43YTUzLjMgNTMuMyAwIDEgMCA1OS4yIDg4LjYgNTMuMyA1My4zIDAgMSAwIC01OS4yLTg4LjZ6bTE0Mi4zLTY4LjRjLTUuMi01LjItMTEuNS05LjMtMTguNC0xMi0xOC4xLTcuMS01Ny42LTYuOC04My4xLTYuNS00LjEgMC03LjkgLjEtMTEuMiAuMXMtNy4yIDAtMTEuNC0uMWMtMjUuNS0uMy02NC44LS43LTgyLjkgNi41LTYuOSAyLjctMTMuMSA2LjgtMTguNCAxMnMtOS4zIDExLjUtMTIgMTguNGMtNy4xIDE4LjEtNi43IDU3LjctNi41IDgzLjIgMCA0LjEgLjEgNy45IC4xIDExLjFzMCA3LS4xIDExLjFjLS4yIDI1LjUtLjYgNjUuMSA2LjUgODMuMiAyLjcgNi45IDYuOCAxMy4xIDEyIDE4LjRzMTEuNSA5LjMgMTguNCAxMmMxOC4xIDcuMSA1Ny42IDYuOCA4My4xIDYuNSA0LjEgMCA3LjktLjEgMTEuMi0uMXM3LjIgMCAxMS40IC4xYzI1LjUgLjMgNjQuOCAuNyA4Mi45LTYuNSA2LjktMi43IDEzLjEtNi44IDE4LjQtMTJzOS4zLTExLjUgMTItMTguNGM3LjItMTggNi44LTU3LjQgNi41LTgzIDAtNC4yLS4xLTguMS0uMS0xMS40czAtNy4xIC4xLTExLjRjLjMtMjUuNSAuNy02NC45LTYuNS04My0yLjctNi45LTYuOC0xMy4xLTEyLTE4LjRsMCAuMnptLTY3LjEgNDQuNWMxOC4xIDEyLjEgMzAuNiAzMC45IDM0LjkgNTIuMnMtLjIgNDMuNS0xMi4zIDYxLjZjLTYgOS0xMy43IDE2LjYtMjIuNiAyMi42cy0xOSAxMC4xLTI5LjYgMTIuMmMtMjEuMyA0LjItNDMuNS0uMi02MS42LTEyLjNzLTMwLjYtMzAuOS0zNC45LTUyLjIgLjItNDMuNSAxMi4yLTYxLjYgMzAuOS0zMC42IDUyLjItMzQuOSA0My41IC4yIDYxLjYgMTIuMmwuMSAwem0yOS4yLTEuM2MtMy4xLTIuMS01LjYtNS4xLTcuMS04LjZzLTEuOC03LjMtMS4xLTExLjEgMi42LTcuMSA1LjItOS44IDYuMS00LjUgOS44LTUuMiA3LjYtLjQgMTEuMSAxLjEgNi41IDMuOSA4LjYgNyAzLjIgNi44IDMuMiAxMC42YzAgMi41LS41IDUtMS40IDcuM3MtMi40IDQuNC00LjEgNi4yLTMuOSAzLjItNi4yIDQuMi00LjggMS41LTcuMyAxLjVjLTMuOCAwLTcuNS0xLjEtMTAuNi0zLjJsLS4xIDB6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zNTcgMzg5Yy0xOC43IDE4LjctNDEuNCAyNC42LTY3IDI1LjktMjYuNCAxLjUtMTA1LjYgMS41LTEzMiAwLTI1LjYtMS4zLTQ4LjMtNy4yLTY3LTI1LjlzLTI0LjYtNDEuNC0yNS44LTY3Yy0xLjUtMjYuNC0xLjUtMTA1LjYgMC0xMzIgMS4zLTI1LjYgNy4xLTQ4LjMgMjUuOC02N3M0MS41LTI0LjYgNjctMjUuOGMyNi40LTEuNSAxMDUuNi0xLjUgMTMyIDAgMjUuNiAxLjMgNDguMyA3LjEgNjcgMjUuOHMyNC42IDQxLjQgMjUuOCA2N2MxLjUgMjYuMyAxLjUgMTA1LjQgMCAxMzEuOS0xLjMgMjUuNi03LjEgNDguMy0yNS44IDY3bDAgLjF6Il19LE1zdD1qMWUsenN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcnN0LW9yZGVyLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjUwYSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgNy44YTI0MC4yIDI0MC4yIDAgMSAxIDAgNDgwLjQgMjQwLjIgMjQwLjIgMCAxIDEgMC00ODAuNHptMCAyMC41YTIxOS43IDIxOS43IDAgMSAwIDAgNDM5LjQgMjE5LjcgMjE5LjcgMCAxIDAgMC00MzkuNHptMCA4LjJhMjExLjUgMjExLjUgMCAxIDEgMCA0MjMgMjExLjUgMjExLjUgMCAxIDEgMC00MjN6bTE4Ni4yIDI2MGMtNC40IDE3LjEtMTEuMiAzMy41LTIwLjEgNDguN2wtNzQuMS0zNS45IDYxLjUgNTQuOGMtMTAuNiAxNC4xLTIzLjIgMjYuNi0zNy4yIDM3LjNsLTU0LjgtNjEuNiAzNS45IDc0LjNjLTE1LjIgOS0zMS42IDE1LjgtNDguNiAyMC4ybC0yNy4zLTc4LjUgNC44IDgyLjljLTguNiAxLjItMTcuNCAxLjgtMjYuMyAxLjhzLTE3LjctLjYtMjYuMy0xLjhsNC44LTgyLjUtMjcuMiA3OGMtMTcuMS00LjUtMzMuNC0xMS4zLTQ4LjctMjAuMmwzNS45LTc0LjMtNTQuOSA2MS42Yy0xNC0xMC43LTI2LjYtMjMuMi0zNy4yLTM3LjNsNjEuNi01NC45LTc0LjMgMzUuOUM4MC43IDMzOCA3NCAzMjEuNyA2OS41IDMwNC42bDc3LjgtMjcuMS04Mi4yIDQuOGMtMS4yLTguNi0xLjgtMTcuMy0xLjgtMjYuMiAwLTkgLjYtMTcuOCAxLjgtMjYuNWw4Mi40IDQuOC03Ny45LTI3LjJjNC41LTE3LjEgMTEuMy0zMy41IDIwLjItNDguN2w3NC4yIDM1LjktNjEuNS01NC45YzEwLjctMTQgMjMuMi0yNi42IDM3LjMtMzcuMmw1NC44IDYxLjUtMzUuOC03NC4yYzE1LjItOC45IDMxLjYtMTUuNyA0OC42LTIwLjFsMjYuOSA3Ny4yLTQuNy04MS42YzguNi0xLjIgMTcuNC0xLjggMjYuMy0xLjhzMTcuNyAuNiAyNi4zIDEuOGwtNC43IDgyLjIgMjctNzcuOGMxNy4zIDQuNSAzMy42IDExLjQgNDguNiAyMC4ybC0zNS44IDc0LjEgNTQuNy02MS41YzE0LjEgMTAuNyAyNi42IDIzLjIgMzcuMiAzNy4ybC02MS40IDU0LjggNzQuMS0zNS45YzguOSAxNS4yIDE1LjcgMzEuNiAyMC4yIDQ4LjZsLTc3LjggMjcuMSA4Mi4yLTQuN2MxLjIgOC43IDEuOCAxNy41IDEuOCAyNi41IDAgOC45LS42IDE3LjYtMS44IDI2LjJsLTgyLjEtNC43IDc3LjcgMjcuMXoiXX0sa3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZ1bGNydW0iLGljb246WzI1Niw1MTIsW10sImY1MGIiLCJNNjMuOCAxNjQuMUwyOC40IDIwNy43LTcgMTY0LjEgMjguNCAxMjAuNiA2My44IDE2NC4xek0xMTIuMiAwbC0yMC41IDE5OC4yLTUxIDU3LjggNTEgNTcuOCAyMC41IDE5OC4yIDAtMjExLjEtNDEuMS00NC45IDQxLjEtNDQuOSAwLTIxMS4xem03OS43IDE2NC4xbDM1LjQgNDMuNiAzNS40LTQzLjYtMzUuNC00My41LTM1LjQgNDMuNXptLTQ4LjUgNDdsNDEuMSA0NC45LTQxLjEgNDQuOSAwIDIxMS4xIDIwLjYtMTk4LjIgNTEtNTcuOC01MS01Ny44LTIwLjYtMTk4LjIgMCAyMTEuMXoiXX0sU3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJyYXZlLXJldmVyc2UiLGljb246WzQ0OCw1MTIsW10sImU2M2QiLCJNMjk4LjUgMGMzIDAgNS44IDEuMyA3LjggMy42bDM4LjEgNDRjLjUtLjEgMS0uMiAxLjUtLjMgOS4yLTEuNiAxOC42LTIuMiAyNy43LTEuMiAxMS42IDEuNCAyMS41IDUuNCAyOC45IDEyLjkgNy43IDcuOCAxNS40IDE1LjggMjIuNiAyMy42IDIuNSAyLjcgNC45IDUuMiA2LjkgNy40IC43IC44IDEuNCAxLjUgMS45IDIgMy40IDMuNyA0LjIgOC4xIDIuNyAxMS45bC05LjggMjQuNiAxMy4xIDM4LjFjLjcgMiAuOCA0LjEgLjIgNi4yLS4xIC40LS4xIC40LS41IDIuMWwtMS41IDUuOGMtMS42IDYuMy0zLjUgMTMuMy01LjQgMjAuOS01LjYgMjEuNi0xMS4yIDQzLjItMTYuNCA2My40LTEyLjkgNDkuOS0yMS40IDgyLjctMjMuNCA5MC45LTExLjEgNDQuNS0xOS45IDYwLTQ4LjMgODAuMy0yNC45IDE3LjgtNzYuOCA1My42LTg2LjggNjAtMSAuNi0yIDEuMy0zLjQgMi4zLS41IC40LTMuMiAyLjItMy45IDIuNy00LjkgMy4zLTguMyA1LjUtMTIuMSA3LjMtNC43IDIuMi05LjMgMy41LTEzLjkgMy41cy05LjEtMS4yLTEzLjktMy41Yy0zLjctMS44LTcuMi0zLjktMTIuMS03LjMtLjgtLjUtMy40LTIuNC0zLjktMi43LTEuNC0xLTIuNS0xLjctMy40LTIuMy0xMC02LjQtNjEuOS00Mi4xLTg2LjgtNjAtMjguNC0yMC40LTM3LjItMzUuOC00OC4zLTgwLjMtMi04LjItMTAuNS00MS0yMy4zLTkwLjUtNS4zLTIwLjYtMTAuOS00Mi4yLTE2LjUtNjMuOC0yLTcuNi0zLjgtMTQuNi01LjQtMjAuOWwtMS41LTUuOC0uNS0yLjFjLS41LTItLjQtNC4yIC4yLTYuMmwxMy4xLTM4LjEtOS45LTI0LjVjLTEuNS0zLjgtLjctOC4yIDItMTEuMiAxLjItMS4zIDEuOC0yIDIuNi0yLjggMi0yLjIgNC40LTQuNyA2LjktNy40IDcuMy03LjcgMTUtMTUuNyAyMi43LTIzLjUgNy40LTcuNSAxNy4zLTExLjYgMjguOS0xMi45IDkuMS0xLjEgMTguNS0uNSAyNy43IDEuMiAuNSAuMSAxIC4yIDEuNSAuM2wzOC4xLTQ0YzItMi40IDQuOC0zLjcgNy44LTMuN2wxNDggMHptLTQuNyAyMS4xbC0xMzguNiAwLTM5LjEgNDUuMWMtMi42IDMtNi43IDQuMy0xMC42IDMuMi0uMi0uMS0uNy0uMi0xLjUtLjQtMS4zLS4zLTIuOS0uNi00LjUtLjktNy40LTEuMy0xNC45LTEuOC0yMS43LTEtNy4zIC45LTEzIDMuMi0xNi42IDYuOS03LjYgNy43LTE1LjIgMTUuNi0yMi4zIDIzLjMtMS43IDEuOC0zLjMgMy41LTQuOCA1LjFsOC44IDIyYzEgMi40IDEgNSAuMiA3LjVMMjkuNyAxNzAuNmMuNCAxLjQgLjUgMS45IDEuMiA0LjggMS42IDYuMyAzLjUgMTMuMyA1LjQgMjAuOSA1LjYgMjEuNiAxMS4yIDQzLjIgMTYuNCA2My40IDEyLjkgNTAgMjEuNCA4Mi44IDIzLjQgOTEgMTAuMSA0MC4xIDE2LjQgNTEuMyA0MC4yIDY4LjMgMjQuNiAxNy42IDc2LjMgNTMuMiA4NS45IDU5LjMgMS4yIC44IDIuNSAxLjYgNCAyLjcgLjYgLjQgMy4yIDIuMiAzLjkgMi43IDQgMi44IDYuNyA0LjQgOS4yIDUuNiAyLjIgMSAzLjkgMS41IDUuMSAxLjVzMi45LS41IDUuMS0xLjVjMi41LTEuMiA1LjItMi44IDkuMi01LjYgLjctLjUgMy4zLTIuMyAzLjktMi43IDEuNi0xLjEgMi44LTEuOSA0LTIuNyA5LjYtNi4xIDYxLjMtNDEuNyA4NS45LTU5LjMgMjMuOC0xNy4xIDMwLjItMjguMiA0MC4xLTY4LjMgMi4xLTguMyAxMC41LTQxLjEgMjMuMy05MC43IDUuMy0yMC42IDEwLjktNDIuMiAxNi41LTYzLjggMi03LjYgMy44LTE0LjYgNS40LTIwLjkgLjctMi45IC45LTMuNCAxLjItNC44bC0xMy4zLTM4LjhjLS44LTIuNC0uOC01LjEgLjItNy41bDguOC0yMmMtMS41LTEuNi0zLjEtMy4zLTQuOC01LjEtNy4yLTcuNi0xNC43LTE1LjUtMjIuMy0yMy4zLTMuNy0zLjctOS4zLTYtMTYuNi02LjktNi44LS44LTE0LjQtLjMtMjEuNyAxLTEuNyAuMy0zLjIgLjYtNC41IC45LS44IC4yLTEuMyAuMy0xLjUgLjQtMy44IDEuMS03LjktLjItMTAuNi0zLjJMMjkzLjggMjEuMXpNMjI0LjUgMzE2YzIuOCAwIDIwLjkgNi41IDM1LjQgMTQuMXMyNSAxMyAyOC4zIDE1LjIgMS4zIDYuMi0xLjcgOC40LTQ0LjEgMzQuNi00OC4xIDM4LjItOS44IDkuNS0xMy44IDkuNS05LjgtNS45LTEzLjgtOS41LTQ1LjEtMzYtNDguMS0zOC4yLTUuMS02LjItMS43LTguNCAxMy45LTcuNSAyOC4zLTE1LjIgMzIuNS0xNC4xIDM1LjQtMTQuMWwtLjIgMHptLjEtMjMwLjdjLjcgMCA4LjggLjIgMjAuNSA0LjIgMTIuMyA0LjIgMjUuNyA5LjQgMzEuOSA5LjRzNTEuOS04LjkgNTEuOS04LjkgNTQuMiA2Ni43IDU0LjIgODEtNi44IDE4LTEzLjcgMjUuNC0zNi44IDM5LjgtNDAuNyA0My45LTExLjkgMTAuNS03LjEgMjEuOCAxMS43IDI1LjggMy45IDQwLjQtMjEgMjQuNC0yOS40IDIyLjgtMjguNC0xMi4yLTM1LjctMTcuMS0zMC41LTI0LjMtMzAuNS0zMS44IDI0LTIwLjggMjguNC0yMy45IDI0LjctMTQuOCAyNS4xLTE5LjQgLjMtNi01LjctMTcuNC0xNi43LTI2LjctMTQuOS0zNi44IDE5LjEtMTUuNCAzMS41LTIwLjIgMzYuMi0xMy43IDM5LjItMTUuMSAyLjItMi43LTYuOC0zLjYtMzQuNi00LjMtNDYuMS0xLjEtMzEuMiA4LjItMzIuOCAxMC45LTMgMi43LTEuNCAxMS44IDEwLjEgNTIuOCAxMC45IDYwLjYgMi40IDEyLjktNS44IDE0LjgtMjIuMSA1LjItMjYuOCA1LjItMTguNi0zLjMtMjYuOC01LjItNi42LTctNS44LTE0LjggOS4zLTUxLjUgMTAuOS02MC42IC4yLTkuMi0xLjQtMTEuOC0yMS4zLTcuNi0zMi44LTEwLjktMzcuMSAuMi00Ni4xIDEuMS05LjggMi4yLTYuOCAzLjYgMjYuOCAxMC40IDM5LjIgMTUuMSAyOS43IDEwIDMxLjUgMjAuMi05IDI1LjQtMTQuOSAzNi44LTYuMSAxMi44LTUuNyAxNy40IDIwLjYgMTYuNCAyNS4xIDE5LjQgMjguNCAxNi40IDI4LjQgMjMuOS0yMy4yIDI3LTMwLjUgMzEuOC0yNy4yIDE1LjQtMzUuNyAxNy4xLTIxLjctOC4yLTI5LjQtMjIuOC0uOC0yOS4xIDMuOS00MC40LTMuMy0xNy43LTcuMS0yMS44LTMzLjgtMzYuNS00MC43LTQzLjktMTMuNy0xMS4yLTEzLjctMjUuNCA1NC4yLTgxIDU0LjItODEgNDUuOCA4LjkgNTEuOSA4LjkgMTkuNS01LjIgMzEuOS05LjQgMjAuNi00LjIgMjAuNi00LjJsLS4zIDB6Il19LENzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdmlhbmV4IixpY29uOls1MTIsNTEyLFtdLCJmMzc0IiwiTTQ1My4yIDMybC0zMTIgMEMxMDIuMyAzMiA2NSA2My4yIDU3LjkgMTAxLjdMMS4zIDQxMC4zQy01LjggNDQ4LjggMjAgNDgwIDU5IDQ4MGwzMTIgMGMzOC45IDAgNzYuMi0zMS4yIDgzLjMtNjkuN0w1MTEgMTAxLjhDNTE4IDYzLjIgNDkyLjIgMzIgNDUzLjIgMzJ6TTM5NSAzNzkuM2wtMzIgMTMuNS0xMTUuNC0xMTBjLTE0LjcgMTAtMjkuMiAxOS41LTQxLjcgMjcuMWwyMi4xIDY0LjItMTcuOSAxMi43LTQwLjYtNjEtNTIuNC00OC4xIDE1LjctMTUuNCA1OCAzMS4xYzkuMy0xMC41IDIwLjgtMjIuNiAzMi44LTM0LjlsLTIwLjUtMjkuNi02OC44LTk5LjggMTguOC0yOC45IDguOS00LjggMTAzLjEgMTEyLjQgNC45IDQuNWMxOS40LTE4LjggMzMuOC0zMi40IDMzLjgtMzIuNCA3LjctNi41IDIxLjUtMi45IDMwLjcgNy45IDkgMTAuNSAxMC42IDI0LjcgMi43IDMxLjMtMS44IDEuMy0xNS41IDExLjQtMzUuMyAyNS42bDQuNSA3LjMgOTQuOSAxMTkuNC02LjMgNy45eiJdfSxMc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnM4IixpY29uOls2NDAsNTEyLFtdLCJmM2Q1IiwiTTEwNC4zIDI2OS4ybDI2LjEgMCAwLTI2LjItMjYuMSAwIDAgMjYuMnpNMTU2LjggMjQzbC0uMS0yNi4yIDAtLjljLS4yLTEwLjQtNC40LTIwLjMtMTEuOS0yNy42cy0xNy41LTExLjMtMjcuOS0xMS4xLTIwLjMgNC40LTI3LjYgMTEuOC0xMS4zIDE3LjUtMTEuMiAyNy45bDAgLjIgMjYuNCAwIDAtLjJjLjEtMy40IDEuNS02LjYgMy45LTlzNS43LTMuNyA5LjEtMy43IDYuNyAxLjMgOS4xIDMuNyAzLjggNS42IDMuOSA5bDAgMjYuMiAyNi4zIDB6bTUyLjQgMjUuOGMwIDEyLTIuNCAyMy44LTYuOSAzNC45cy0xMS4zIDIxLjEtMTkuNyAyOS42LTE4LjUgMTUuMi0yOS42IDE5LjctMjIuOSA2LjktMzQuOSA2LjlsLS42IDBjLTI0LjIgMC00Ny4zLTkuNi02NC40LTI2LjdTMjYuMyAyOTMgMjYuMyAyNjguOGwtMjYuMyAwIDAgLjJjMCAxNS40IDMuMSAzMC43IDkgNDQuOXMxNC42IDI3LjIgMjUuNSAzOC4xIDIzLjkgMTkuNSAzOC4xIDI1LjQgMjkuNSA4LjkgNDQuOSA4LjlsLjggMGMxNS40IDAgMzAuNy0zIDQ0LjktOXMyNy4yLTE0LjYgMzguMS0yNS41IDE5LjUtMjMuOCAyNS40LTM4LjEgOC45LTI5LjUgOC45LTQ0LjlsMC0yNi0yNi4zIDAgMCAyNnptLTE1Ny4yIDBjLjEgMTcuMyA3IDMzLjkgMTkuMiA0Ni4xczI4LjggMTkuMSA0Ni4xIDE5LjEgMzMuOS02LjkgNDYuMS0xOS4xIDE5LjItMjguOCAxOS4yLTQ2LjFsLTI2LjMgMGMtLjIgMTAuMi00LjQgMjAtMTEuNyAyNy4ycy0xNy4xIDExLjItMjcuNCAxMS4yLTIwLjEtNC0yNy40LTExLjItMTEuNS0xNi45LTExLjctMjcuMmwwLTI2LTI2LjMgMCAwLTI2LjZjLjMtMTcuMyA3LjQtMzMuOCAxOS43LTQ1LjhzMjktMTguOCA0Ni4zLTE4LjYgMzMuOCA3LjIgNDUuOSAxOS41IDE4LjkgMjguOSAxOC45IDQ2LjJsMCAyNS4zIDI2LjMgMCAwLTI1LjNjMC0yNC4zLTkuNy00Ny43LTI2LjktNjQuOXMtNDAuNS0yNi45LTY0LjktMjYuOS00Ny43IDkuNy02NC45IDI2LjktMjYuOSA0MC41LTI2LjkgNjQuOWwwIDI1LjQgMjYuMyAwIDAgMjZ6bTQxOC40LTcxLjJjMTMuNyAwIDI0LjYgNi42IDMwLjEgMTguM2wuNyAxLjUgMjMuMi0xMS41LS42LTEuNGMtOC0xOS4zLTI4LjUtMzEuMy01My40LTMxLjMtMjMuMSAwLTQzLjYgMTEuNC01MSAyOC40LS4xIDI2LjktLjIgMjMuOSAwIDI0LjggNC43IDExIDE0LjYgMTkuNCAyOC43IDI0LjIgNi41IDIgMTMuMSAzLjMgMTkuOCA0IDUuNSAuNyAxMC42IDEuNCAxNS44IDMuMSA2LjQgMi4xIDEwLjUgNS4zIDEyLjggOS44bDAgOS45Yy0zLjcgNy41LTEzLjggMTIuMy0yNS44IDEyLjMtMTQuMyAwLTI2LTYuOS0zMS45LTE5bC0uNy0xLjUtMjMgMTEuNSAuNiAxLjRjNy45IDE5LjQgMjkuNiAzMiA1NS4zIDMyIDIzLjYgMCA0NC42LTExLjQgNTIuMy0yOC40bC4yLTI1LjktLjItLjdjLTQuOS0xMS0xNS4yLTE5LjYtMjguOS0yNC4yLTcuNy0yLjctMTQuMy0zLjYtMjAuNy00LjQtNS0uNS0xMC0xLjUtMTQuOC0yLjktNi4zLTEuOS0xMC40LTUuMS0xMi42LTkuNmwwLTguNGMzLjQtNy40IDEyLjktMTIuMSAyNC4yLTEyLjFsMCAwek0yODcuNiAzMTEuM2wyNi4xIDAgMC02OC40LTI2LjEgMCAwIDY4LjR6TTYzOS44IDI1OGMtMi45LTYuMy04LjMtMTItMTUuNC0xNi43IDUuNi0zLjggMTAuMS05LjEgMTMtMTUuM2wuMi0yNS4zLS4yLS43Yy03LjQtMTYtMjYuNy0yNi43LTQ4LjItMjYuN1M1NDguNSAxODQgNTQxLjEgMjAwbC0uMiAyNS4zIC4yIC43YzIuOSA2LjEgNy40IDExLjQgMTMgMTUuMy03LjIgNC43LTEyLjUgMTAuNS0xNS40IDE2LjdsLS4yIDI4LjkgLjIgLjdjNy42IDE2IDI3LjkgMjYuNyA1MC42IDI2LjdzNDMuMS0xMC43IDUwLjYtMjYuN2wuMi0yOC45LS4yLS43em0tNzMuMi01MC44YzMuNi02LjMgMTIuNi0xMC41IDIyLjYtMTAuNXMxOSA0LjIgMjIuNiAxMC41bDAgMTMuN2MtMy41IDYuMi0xMi42IDEwLjMtMjIuNiAxMC4zcy0xOS4xLTQuMi0yMi42LTEwLjNsMC0xMy43em00Ny4zIDcyLjJjLTMuOCA2LjYtMTMuMyAxMC45LTI0LjcgMTAuOS0xMS4xIDAtMjEtNC40LTI0LjctMTAuOWwwLTE2LjJjMy43LTYuMyAxMy41LTEwLjUgMjQuNy0xMC41IDExLjMgMCAyMC45IDQuMSAyNC43IDEwLjVsMCAxNi4yek0zNzYuNCAyNjZsLTU5LjgtODkuNy0yOSAwIDAgNDAuNiAyNi41IDAgMCAuNCA2Mi41IDk0LjEgMjUuNyAwIDAtMTM1LjEtMjUuOSAwIDAgODkuN3oiXX0sVzFlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1waW50ZXJlc3QiLGljb246WzQ0OCw1MTIsWyJwaW50ZXJlc3Qtc3F1YXJlIl0sImYwZDMiLCJNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNzIuNiAwLTIuMi0uOGMtNS40LTQ4LjEtMy4xLTU3LjUgMTUuNy0xMzQuNyAzLjktMTYgOC41LTM1IDEzLjktNTcuOSAwIDAtNy4zLTE0LjgtNy4zLTM2LjUgMC03MC43IDc1LjUtNzggNzUuNS0yNSAwIDEzLjUtNS40IDMxLjEtMTEuMiA0OS44LTMuMyAxMC42LTYuNiAyMS41LTkuMSAzMi01LjcgMjQuNSAxMi4zIDQ0LjQgMzYuNCA0NC40IDQzLjcgMCA3Ny4yLTQ2IDc3LjItMTEyLjQgMC01OC44LTQyLjMtOTkuOS0xMDIuNi05OS45LTY5LjkgMC0xMTAuOSA1Mi40LTExMC45IDEwNi42IDAgMjEuMSA4LjIgNDMuNyAxOC4zIDU2IDIgMi40IDIuMyA0LjUgMS43IDctMS4xIDQuNy0zLjEgMTIuOS00LjcgMTkuMi0xIDQtMS44IDcuMy0yLjEgOC42LTEuMSA0LjUtMy41IDUuNS04LjIgMy4zLTMwLjYtMTQuMy00OS44LTU5LjEtNDkuOC05NS4xIDAtNzcuNSA1Ni4yLTE0OC42IDE2Mi4yLTE0OC42IDg1LjIgMCAxNTEuNCA2MC43IDE1MS40IDE0MS44IDAgODQuNi01My4zIDE1Mi43LTEyNy40IDE1Mi43LTI0LjkgMC00OC4zLTEyLjktNTYuMy0yOC4yIDAgMC0xMi4zIDQ2LjktMTUuMyA1OC40LTUgMTkuMy0xNy42IDQyLjktMjcuNCA1OS4zTDM4NCA0ODBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6Il19LFRzdD1XMWUsX3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsdWV0b290aC1iIixpY29uOlsyNTYsNTEyLFtdLCJmMjk0IiwiTTE2NC45IDI2MEwyNTcuNSAxNTYuNyAxMTEuNiAwIDExMS42IDIwNi4zIDI1LjQgMTIwLjItNiAxNTEuNiAxMDIuMSAyNjAtNiAzNjguNCAyNS40IDM5OS44IDExMS42IDMxMy43IDExNC4zIDUxMiAyNjIuOCAzNjMuNCAxNjQuOSAyNjB6bTQwLjktMTAzbC01MCA1MC0uMy0xMDAuMyA1MC4zIDUwLjN6bS01MCAxNTZsNTAgNTAtNTAuMyA1MC4zIC4zLTEwMC4zeiJdfSxBc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JpcGZpcmUiLGljb246WzMyMCw1MTIsW10sImYzYWMiLCJNODAuNSAzMDEuNGMwLTczLjggMTA1LjEtMTIyLjUgMTA1LjEtMjAzIDAtNDcuMS0zNC04OC0zOS4xLTkwLjQgLjQgMy4zIC42IDYuNyAuNiAxMCAwIDkyLjEtMTQ3LjEgMTUzLjktMTQ3LjEgMjY4LjYgMCA0OS44IDMyLjIgNzkuMiA2Ni41IDEwOC4zIDY1LjEgNDYuNyA3OC4xIDcxLjQgNzguMSA4Ni42IDAgMTAuMS00LjggMTctNC44IDIyLjMgMTMuMS0xNi43IDE3LjQtMzEuOSAxNy41LTQ2LjQgMC0yOS42LTIxLjctNTYuMy00NC4yLTg2LjUtMTYtMjIuMy0zMi42LTQyLjYtMzIuNi02OS41em0yMDUuMy0zOWMtMTIuMS02Ni44LTc4LTEyNC40LTk0LjctMTMwLjlsNCA3LjJjMi40IDUuMSAzLjQgMTAuOSAzLjQgMTcuMSAwIDQ0LjctNTQuMiAxMTEuMi01Ni42IDExNi43LTIuMiA1LjEtMy4yIDEwLjUtMy4yIDE1LjggMCAyMC4xIDE1LjIgNDIuMSAxNy45IDQyLjEgMi40IDAgNTYuNi01NS40IDU4LjEtODcuNyA2LjQgMTEuNyA5LjEgMjIuNiA5LjEgMzMuNCAwIDQxLjItNDEuOCA5Ni45LTQxLjggOTYuOSAwIDExLjYgMzEuOSA1My4yIDM1LjUgNTMuMiAxIDAgMi4yLTEuNCAzLjItMi40IDM3LjktMzkuMyA2Ny4zLTg1IDY3LjMtMTM2LjggMC04LS43LTE2LjItMi4yLTI0LjZ6Il19LEcxZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ29vZ2xlLXBsdXMiLGljb246WzQ0OCw1MTIsWyJnb29nbGUtcGx1cy1zcXVhcmUiXSwiZjBkNCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNNjQgMjU2YzAtNTUuMyA0NC43LTEwMCAxMDAtMTAwIDI3IDAgNDkuNSA5LjggNjcgMjYuMmwtMjcuMSAyNi4xYy03LjQtNy4xLTIwLjMtMTUuNC0zOS44LTE1LjQtMzQuMSAwLTYxLjkgMjguMi02MS45IDYzLjIgMCAzNC45IDI3LjggNjMuMiA2MS45IDYzLjIgMzkuNiAwIDU0LjQtMjguNSA1Ni44LTQzLjFsLTU2LjkgMCAwLTM0LjQgOTQuNCAwYzEgNSAxLjYgMTAuMSAxLjYgMTYuNiAwIDU3LjEtMzguMyA5Ny42LTk2IDk3LjYtNTUuMyAwLTEwMC00NC43LTEwMC0xMDB6bTI5MSAxOC4ybDAgMjktMjkuMiAwIDAtMjktMjkgMCAwLTI5LjIgMjkgMCAwLTI5IDI5LjIgMCAwIDI5IDI5IDAgMCAyOS4yLTI5IDB6Il19LCRzdD1HMWUsRHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcC1zdG9yZSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2ZiIsIk0yNTUuOSAxMjAuOWw5LjEtMTUuN2M1LjYtOS44IDE4LjEtMTMuMSAyNy45LTcuNXMxMy4xIDE4LjEgNy41IDI3LjlsLTg3LjUgMTUxLjUgNjMuMyAwYzIwLjUgMCAzMiAyNC4xIDIzLjEgNDAuOGwtMTg1LjUgMGMtMTEuMyAwLTIwLjQtOS4xLTIwLjQtMjAuNHM5LjEtMjAuNCAyMC40LTIwLjRsNTIgMCA2Ni42LTExNS40LTIwLjgtMzYuMWMtNS42LTkuOC0yLjMtMjIuMiA3LjUtMjcuOSA5LjgtNS42IDIyLjItMi4zIDI3LjkgNy41bDguOSAxNS43em0tNzguNyAyMThsLTE5LjYgMzRjLTUuNiA5LjgtMTguMSAxMy4xLTI3LjkgNy41cy0xMy4xLTE4LjEtNy41LTI3LjlsMTQuNi0yNS4yYzE2LjQtNS4xIDI5LjgtMS4yIDQwLjQgMTEuNnptMTY4LjktNjEuN2w1My4xIDBjMTEuMyAwIDIwLjQgOS4xIDIwLjQgMjAuNFM0MTAuNSAzMTggMzk5LjIgMzE4bC0yOS41IDAgMTkuOSAzNC41YzUuNiA5LjggMi4zIDIyLjItNy41IDI3LjktOS44IDUuNi0yMi4yIDIuMy0yNy45LTcuNS0zMy41LTU4LjEtNTguNy0xMDEuNi03NS40LTEzMC42LTE3LjEtMjkuNS00LjktNTkuMSA3LjItNjkuMSAxMy40IDIzIDMzLjQgNTcuNyA2MC4xIDEwNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MCAyNTZhMjE2IDIxNiAwIDEgMSA0MzIgMCAyMTYgMjE2IDAgMSAxIC00MzIgMHoiXX0sRXN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpeCIsaWNvbjpbNjQwLDUxMixbXSwiZjVjZiIsIk0zOTMuNCAxMzEuN2MwIDEzIDIuMSAzMi43LTI4LjcgNDMuOC05LjUgMy40LTE2IDkuNy0xNiA5LjcgMC0zMSA0LjctNDIuMiAxNy40LTQ4LjkgOS44LTUuMSAyNy4yLTQuNiAyNy4yLTQuNnpNMjc3LjYgMTY3LjJsLTM0LjIgMTMyLjctMjguNS0xMDguNmMtNy43LTMyLTIwLjgtNDguNS00OC40LTQ4LjUtMjcuNCAwLTQwLjcgMTYuMi00OC40IDQ4LjVMODkuNSAyOTkuOSA1NS4zIDE2Ny4yQzQ5LjcgMTQwLjUgMjMuOSAxMjkgMCAxMzJMNjUuNiAzNzkuOXMyMS42IDEuNiAzMi41LTRjMTQuMi03LjIgMjEtMTIuOCAyOS42LTQ2LjYgNy43LTMwLjEgMjkuMS0xMTguNCAzMS4xLTEyNC43IDQuOC0xNC45IDExLjEtMTMuOCAxNS40IDAgMiA2LjMgMjMuNSA5NC42IDMxLjEgMTI0LjcgOC42IDMzLjcgMTUuNCAzOS4zIDI5LjYgNDYuNiAxMC44IDUuNSAzMi41IDQgMzIuNSA0TDMzMi45IDEzMmMtMjQuNC0zLjEtNDkuOCA4LjktNTUuMyAzNS4zem0xMTUuOCA1LjJzLTQuMSA2LjMtMTMuNSAxMS42Yy02IDMuNC0xMS44IDUuNi0xOCA4LjYtMTUuMSA3LjMtMTMuMiAxMy45LTEzLjIgMzUuMmwwIDE1Mi4xczE2LjYgMi4xIDI3LjQtMy40YzEzLjktNy4xIDE3LjEtMTQgMTcuMy00NC44bDAtMTUwLjMgMCAwIDAtOXptMTYzLjQgODQuMUw2NDAgMTMyLjhzLTM1LjEtNi01Mi41IDkuOGMtMTMuMyAxMi4xLTI0LjQgMjkuNi01NC4yIDcyLjUtLjUgLjctNi4zIDEwLjUtMTMuMSAwLTI5LjMtNDIuMi00MC44LTYwLjMtNTQuMi03Mi41LTE3LjQtMTUuOC01Mi41LTkuOC01Mi41LTkuOGw4My4yIDEyMy43LTgzIDEyMy40czM2LjYgNC42IDU0LTExLjJjMTEuNS0xMC41IDE3LjYtMjAuNCA1Mi41LTcwLjcgNi44LTEwLjUgMTIuNi0uOCAxMy4xIDAgMjkuNCA0Mi40IDM5LjIgNTguMSA1My4xIDcwLjcgMTcuNCAxNS44IDUzLjMgMTEuMiA1My4zIDExLjJsLTgzLTEyMy40eiJdfSxOc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW50ZXJjb20iLGljb246WzQ0OCw1MTIsW10sImY3YWYiLCJNMzkyIDMyTDU2IDMyQzI1LjEgMzIgMCA1Ny4xIDAgODhMMCA0MjRjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzM2IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC0zMzZjMC0zMC45LTI1LjEtNTYtNTYtNTZ6TTI4My43IDExNC4xYzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xOTkuNXptLTc0LjYtNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMjE2LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0yMTYuNXptLTc0LjcgNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xOTkuNXpNNTkuNyAxNDRjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxMzQuM2MwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTEzNC4zek0zODMuMSAzNzEuOGMtNzIuOCA2My0yNDEuNyA2NS40LTMxOC4xIDAtMTUtMTIuOCA0LjQtMzUuNSAxOS40LTIyLjcgNjUuOSA1NS4zIDIxNi4xIDUzLjkgMjc5LjMgMCAxNC45LTEyLjkgMzQuMyA5LjggMTkuNCAyMi43em01LjItOTMuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTEzNC4zYzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTM0LjN6Il19LFBzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFjdGV1cm9wZSIsaWNvbjpbNTc2LDUxMixbXSwiZjc1ZCIsIk0yNTAuNyAyMTEuN2w1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMS0yLjMtNi44LTIuMyA2LjgtNy4yIC4xIDUuNyA0LjMtMiA2Ljh6bTYzLjcgMGw1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMi0uMS0yLjMtNi44LTIuMyA2LjgtNy4yIC4xIDUuNyA0LjMtMS45IDYuOHptLTkxLjMgNTAuNWwtMy40IDBjLTQuOCAwLTMuOCA0LTMuOCAxMi4xIDAgNC43LTIuMyA2LjEtNS44IDYuMXMtNS44LTEuNC01LjgtNi4xbDAtMzYuNmMwLTQuNyAyLjMtNi4xIDUuOC02LjFzNS44IDEuNCA1LjggNi4xYzAgNy4yLS43IDEwLjUgMy44IDEwLjVsMy40IDBjNC43LS4xIDMuOC0zLjkgMy44LTEyLjMgMC05LjktNi43LTE0LjEtMTYuOC0xNC4xbC0uMiAwYy0xMC4xIDAtMTYuOCA0LjItMTYuOCAxNC4xbDAgNDAuMWMwIDEwLjQgNi43IDE0LjEgMTYuOCAxNC4xbC4yIDBjMTAuMSAwIDE2LjgtMy44IDE2LjgtMTQuMSAwLTkuOSAxLjEtMTMuOC0zLjgtMTMuOHptLTgwLjcgMTcuNGwtMTQuNyAwIDAtMTkuMyAxMS40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMTEuNCAwIDAtMTguMyAxNC40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMjEuNyAwYy0yLjQtLjEtMy43IDEuMy0zLjcgMy44bDAgNTkuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsMjEuOSAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjh6bS00Mi0xOC41YzQuNi0yIDcuMy02IDcuMy0xMi40bDAtMTEuOWMwLTEwLjEtNi43LTE0LjEtMTYuOC0xNC4xbC0xMy40IDBjLTIuNSAwLTMuOCAxLjMtMy44IDMuOGwwIDU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDMuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIyLjkgNS42IDAgNy40IDIzLjVjLjIgMSAuOCAxLjggMS42IDIuNHMxLjggLjkgMi43IC44bDMuMyAwYzIuOCAwIDQtMS44IDMuMi00LjRsLTguMS0yMy45em0tMy44LTE0YzAgNC44LTIuNSA2LjEtNi4xIDYuMWwtNS44IDAgMC0yMC45IDUuOCAwYzMuNiAwIDYuMSAxLjMgNi4xIDYuMWwwIDguN3pNMTc2LjEgMjI2Yy0uMS0uNS0uMi0xLS40LTEuNHMtLjYtLjgtMS0xLjEtLjgtLjYtMS4zLS43LTEtLjItMS41LS4xbC02LjkgMGMtLjUgMC0xIDAtMS40IC4ycy0uOSAuNC0xLjMgLjctLjcgLjctLjkgMS4xLS40IC45LS40IDEuNGwtMTEgNTkuMmMtLjUgMi43IC45IDQuMSAzLjQgNC4xbDMgMGMuNSAuMSAxIDAgMS41LS4ycy45LS40IDEuMy0uNyAuNy0uNyAuOS0xLjIgLjQtLjkgLjQtMS40bDEuOC0xMS4zIDEyLjIgMCAxLjggMTEuM2MwIC41IC4yIDEgLjQgMS40cy41IC45IC45IDEuMiAuOCAuNiAxLjMgLjcgMSAuMiAxLjUgLjJsMy41IDBjMi42IDAgMy45LTEuNCAzLjQtNC4xTDE3Ni4xIDIyNnptLTEyLjMgMzkuM2w0LjctMjkuNyA0LjcgMjkuNy05LjQgMHptODkuMyAyMC4ybDAtNTMuMiA3LjUgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44bC0yNS44IDBjLTIuNSAwLTMuOCAxLjMtMy44IDMuOGwwIDIuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsNy4zIDAgMCA1My4yYzAgMi41IDEuMyAzLjggMy44IDMuOGwzLjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMCAwem0yNDgtLjhsLTE5LjQgMCAwLTI2LjcgMTYuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTE2LjEgMCAwLTI1LjggMTkuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTIyLjIgMGMtLjMtLjEtLjUtLjEtLjggMHMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMjIuNSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsMCAwek00MDggMjIxLjhsLS44IDBjLTEwLjEgMC0xNS4zIDQuNy0xNS4zIDE0LjFsMCA0MC4xYzAgOS4zIDUuMiAxNC4xIDE1LjMgMTQuMWwuOCAwYzEwLjEgMCAxNS4zLTQuOCAxNS4zLTE0LjFsMC00MC4xYzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMWwwIDB6bTEwLjIgNTIuNGMtLjEgOC0zIDExLjEtMTAuNSAxMS4xcy0xMC41LTMuMS0xMC41LTExLjFsMC0zNi42YzAtNy45IDMtMTEuMSAxMC41LTExLjFzMTAuNSAzLjIgMTAuNSAxMS4xbDAgMzYuNnptLTQ2LjUtMTQuNWM2LjEtMS42IDkuMi02LjEgOS4yLTEzLjNsMC05LjdjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xbC0xMy43IDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMS4yIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC42LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtMjYuOSAxMS42IDAgMTAuNCAyNy4yYy4yIC41IC41IC45IC45IDEuMXMuOSAuNCAxLjQgLjRsMS41IDBjMS40IDAgMi0xIDEuNS0yLjNsLTEwLjYtMjcuM3ptLTYuNC0zLjlsLTEwLjIgMCAwLTI4LjUgMTAuMiAwYzcuNSAwIDEwLjUgMy4xIDEwLjUgMTEuMWwwIDYuNGMwIDcuOC0zIDExLTEwLjUgMTFsMCAwem04NS45LTMzLjFsLTEzLjcgMGMtLjMtLjEtLjUtLjEtLjggMHMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMS4yIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC42LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtMjYuMSAxMC42IDBjMTAuMSAwIDE1LjMtNC44IDE1LjMtMTQuMWwwLTEwLjVjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xem0xMC4yIDIyLjhjMCA3LjktMyAxMS4xLTEwLjUgMTEuMWwtMTAuMiAwIDAtMjkuMiAxMC4yIDBjNy41LS4xIDEwLjUgMy4xIDEwLjUgMTFsMCA3LjF6TTI1OS42IDMwOGwtMi4zLTYuOC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjF6TTQ4Ny4yIDE3MS45Yy0xMS43LTQuNC0yMy41LTguMS0zNS42LTExLjMgMTkuNi03OCAxMS42LTEzNC43LTIyLjMtMTUzLjktMzQuNS0xOS40LTg1LjkgNC4zLTEzOC4yIDU1LjIgMy40IDMuMyA2LjggNi43IDEwLjIgMTAuMiA4Mi41LTgwIDExOS42LTUzLjUgMTIwLjktNTIuOCAyMi40IDEyLjcgMzYgNTUuOCAxNS41IDEzNy44LTI3LjgtNi40LTU2LjEtMTAuNy04NC42LTEzLTcxLjktMTAwLjUtMTQwLjYtMTQyLjEtMTgyLjItMTQyLjEtMzAuOCAwLTQzLjggMjEtNDcuNiAyNy43LTE4LjEgMzItMTMuMyA4NC4yIC4xIDEzMy44LTcwLjUgMjAuMy0xMjAuNyA1NC4xLTEyMC4zIDk1IC41IDU5LjYgMTAzLjIgODcuOCAxMjIuMSA5Mi44LTIwLjUgODEuOS0xMC4xIDEzNS42IDIyLjMgMTUzLjkgMjggMTUuOCA3NS4xIDYgMTM4LjItNTUuMi0zLjQtMy4zLTYuOC02LjctMTAuMi0xMC4yLTgyLjUgODAtMTE5LjcgNTMuNS0xMjAuOSA1Mi44LTIyLjMtMTIuNi0zNi01NS42LTE1LjUtMTM3LjkgMTIuNCAyLjkgNDEuOCA5LjUgODQuNiAxMyA3MS45IDEwMC40IDE0MC42IDE0MiAxODIuMSAxNDIgMzAuOCAwIDQzLjgtMjEgNDcuNi0yNy43IDE4LTMxLjkgMTMuMy04NC4xLS4xLTEzMy44IDE1Mi4zLTQzLjggMTU2LjItMTMwLjIgMzMuOS0xNzYuM2wwIDB6TTEzNiAzNi44YzIuOS01LjEgMTEuOS0yMC4zIDM0LjktMjAuMyAzNi44IDAgOTguOCAzOS42IDE2My4zIDEyNi4yLTMxLjMtMS44LTYyLjctMS41LTkzLjkgLjkgMTMtMTguMyAyNy4xLTM1LjggNDIuMi01Mi40LTMuNC0zLjUtNi44LTYuOS0xMC4yLTEwLjItMTguMyAyMC4yLTM1LjMgNDEuNy01MC43IDY0LjItMjguNSAyLjctNTYuNyA3LjYtODQuNCAxNC42LS4yLTEuNC0yNC4zLTgyLjItMS4yLTEyM2wwIDB6TTQ0MC44IDQ3NS4xYy0yLjkgNS4xLTExLjggMjAuMy0zNC45IDIwLjMtMzYuNyAwLTk4LjctMzkuNC0xNjMuMy0xMjYuMiAzMS4zIDEuOCA2Mi43IDEuNSA5My45LS45LTEzIDE4LjMtMjcuMSAzNS44LTQyLjIgNTIuNCAzLjQgMy41IDYuOCA2LjkgMTAuMiAxMC4yIDE4LjQtMjAuMiAzNS4zLTQxLjcgNTAuNy02NC4yIDQ3LjMtNC43IDgwLjMtMTMuNSA4NC40LTE0LjYgMjIuNyA4NC40IDQuNSAxMTcgMS4yIDEyM3ptOS4xLTEzOC42Yy0zLjYtMTEuOS03LjctMjQuMS0xMi40LTM2LjQtMi4xIDAtNC4yLS41LTYuMS0xLjVzLTMuNS0yLjQtNC42LTQuMmwtLjEgLjFjLTEuNiAxLjUtMy40IDIuNy01LjQgMy42IDUuNyAxNC4zIDEwLjYgMjguNCAxNC43IDQyLjItMjMuNyA2LTQ3LjcgMTAuMy03MiAxMyAzLjUtNS4zIDE3LjItMjYuMiAzMi4yLTU0LjItMi4xLS44LTQuMi0xLjktNi0zLjItMS4xIDEuMi0zLjYgNC4yLTEwLjkgNC4yLTYuMiAxMS4yLTE3LjQgMzAuOS0zMy45IDU1LjItMzcuNCAzLjMtNzUgMy42LTExMi40IDEtNy45LTExLjItMjEuNS0zMS4xLTM2LjgtNTcuOC0xLS40LTItLjktMy0xLjUtMS45IDEuNi0zLjkgMy4yLTEyLjYgMy4yIDYuMyAxMS4yIDE3LjUgMzAuNyAzMy44IDU0LjYtMjQuMy0yLjMtNDguNC02LjItNzIuMi0xMS43IDMuOS0xNCA4LjYtMjguMyAxNC4xLTQyLjktMy4yIDAtNS40IC4yLTguNC0xLTIuMiAuOC00LjYgMS4xLTYuOSAxLTQuOSAxMy40LTkuMSAyNi41LTEyLjcgMzkuNC0xNTkuOS00Mi42LTE0MC4zLTEyMy42LTEuNS0xNjQgMy42IDExLjkgNy43IDI0LjEgMTIuNCAzNi40IDEwLjQgMCAxMi45IDMuNCAxNC40IDUuMyAuNy0uOCAxLjQtMS42IDIuMy0yLjItNS44LTE0LjctMTAuOS0yOS4yLTE1LjItNDMuMyA3LTEuOCAzMi40LTguNCA3Mi0xMy0xNS45IDI0LjMtMjYuNyA0My45LTMyLjggNTUuMyAzLjEgMS44IDUuMyA0LjYgNi40IDggMi41LTMuNyA2LjEtNi42IDEwLjItOC40IDYuNS0xMS43IDE3LjktMzEuOSAzNC44LTU2LjkgMzcuNC0zLjMgNzUtMy42IDExMi40LTEgMzEuNSA0NC42IDI4LjkgNDguMSA0Mi41IDY0LjUgMi42LTMuNSA2LjMtNiAxMC40LTcuNC02LjQtMTEuNC0xNy42LTMxLTM0LjMtNTUuNSA0MC40IDQuMSA2NSAxMCA3Mi4yIDExLjctNCAxNC40LTguOSAyOS4yLTE0LjYgNDQuMiAyLjUgMSA0LjggMi40IDYuOCA0LjNsLjEgLjFjMS0xLjUgMi4zLTIuOCAzLjgtMy44czMuMy0xLjYgNS4xLTEuOGM0LjktMTMuNCA5LjItMjYuNiAxMi44LTM5LjUgMTEuNyAzLjEgMjMuMiA2LjggMzQuNSAxMSAxMDYuMSAzOS45IDc0IDg3LjkgNzIuNiA5MC40LTE5LjggMzUuMS04MC4xIDU1LjItMTA1LjcgNjIuNXptLTExNC40LTExNGwtMS4yIDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjYgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA0OS44YzAgNy45LTIuNiAxMS4xLTEwLjEgMTEuMXMtMTAuMS0zLjEtMTAuMS0xMS4xbDAtNDkuOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0xLjIgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDUxLjVjMCA5LjYgNSAxNC4xIDE1LjEgMTQuMWwuNCAwYzEwLjEgMCAxNS4xLTQuNiAxNS4xLTE0LjFsMC01MS41YzAtLjMtLjEtLjUtLjItLjhzLS4zLS41LS41LS42LS40LS4zLS43LS40LS41LS4xLS44LS4xek0zMjEuOCAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xem0tMzEuMSA3LjRsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xem01LjEtMzAuOGwtMTkuNCAwIDAtMjYuNyAxNi4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMTYuMSAwIDAtMjUuOCAxOS4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMjIuMiAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS43IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDIyLjUgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjYtLjEtLjhzLS4yLS41LS40LS43LS40LS40LS43LS40LS41LS4xLS44LS4xbDAgMHptLTcuNC05OS40bC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjEtMi4zLTYuOHoiXX0sSXN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndhemUiLGljb246WzUxMiw1MTIsW10sImY4M2YiLCJNNTAyLjYgMjAxLjdjMTQuNSA4NS45LTMwLjkgMTY3LjktMTEzLjIgMjA4LjEgMTMgMzQuMS0xMi40IDcwLjItNDguMyA3MC4yLTEzLjIgMC0yNi01LjEtMzUuNi0xNC4ycy0xNS4zLTIxLjYtMTYtMzQuOGMtNi40IC4yLTY0LjIgMC03Ni4zLS42LS4zIDYuOC0xLjkgMTMuNS00LjcgMTkuNnMtNi45IDExLjctMTEuOSAxNi4zLTEwLjggOC4yLTE3LjIgMTAuNS0xMy4yIDMuNC0xOS45IDMuMWMtMzMuOS0xLjQtNTgtMzQuOC00Ny02Ny45LTM3LjItMTMuMS03Mi41LTM0LjktOTkuNi03MC44LTEzLTE3LjMtLjUtNDEuOCAyMC44LTQxLjggNDYuMyAwIDMyLjItNTQuMiA0My4yLTExMC4zIDE4LjQtOTMuOSAxMTYuOC0xNTcuMSAyMTEuNy0xNTcuMSAxMDIuNSAwIDE5Ny4yIDcwLjcgMjE0LjEgMTY5Ljd6TTM3My45IDM4OC4zYzQyLTE5LjIgODEuMy01Ni43IDk2LjMtMTAyLjEgNDAuNS0xMjMuMS02NC4yLTIyOC0xODEuNy0yMjgtODMuNCAwLTE3MC4zIDU1LjQtMTg2LjEgMTM2LTkuNSA0OC45IDUgMTMxLjQtNjguNyAxMzEuNCAyNC45IDMzLjEgNTguMyA1Mi42IDkzLjcgNjQgMjQuNy0yMS44IDYzLjktMTUuNSA3OS44IDE0LjMgMTQuMiAxIDc5LjIgMS4yIDg3LjkgLjggMy41LTYuOSA4LjUtMTIuOSAxNC43LTE3LjVzMTMuMi03LjkgMjAuOC05LjUgMTUuNC0xLjQgMjIuOSAuNCAxNC41IDUuMyAyMC41IDEwLjJ6TTIwNS41IDE4Ny4xYzAtMzQuNyA1MC44LTM0LjcgNTAuOCAwcy01MC44IDM0LjctNTAuOCAwem0xMTYuNiAwYzAtMzQuNyA1MC45LTM0LjcgNTAuOSAwcy01MC45IDM0LjgtNTAuOSAwek0xOTkuNSAyNTcuOGMtMy40LTE2LjkgMjIuMi0yMi4yIDI1LjYtNS4ybC4xIC4zYzQuMSAyMS40IDI5LjggNDQgNjQuMSA0My4xIDM1LjctLjkgNTkuMy0yMi4yIDY0LjEtNDIuOCA0LjUtMTYuMSAyOC42LTEwLjQgMjUuNSA2LTUuMiAyMi4yLTMxLjIgNjItOTEuNSA2Mi45LTQyLjYgMC04MC45LTI3LjgtODcuOS02NC4ybDAgMHoiXX0sRnN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtcmVtaXgiLGljb246WzUxMiw1MTIsW10sImY0ZWUiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zek00MTguMSAyNjAuNGw0LjkgMi4yIDAgNzBjLTcuMiAzLjYtNjMuNCAyNy41LTY3LjMgMjguOC02LjUtMS44LTExMy43LTQ2LjgtMTM3LjMtNTYuMmwtNjQuMiAyNi42LTYzLjMtMjcuNSAwLTYzLjggNTkuMy0yNC44Yy0uNy0uNy0uNCA1LS40LTcwLjRsNjcuMy0yOS43IDE1MS45IDYyLjkgMCA2MS42IDQ5LjEgMjAuM3ptLTcwLjQgODEuNWwwLTQzLjgtLjQgMCAwLTEuOC0xMTMuOC00Ni41IDAgNDUuMiAxMTMuOCA0Ni45IDAtLjQgLjQgLjR6bTcuNS01Ny42bDM5LjktMTYuNC0zNi44LTE1LjUtMzkgMTYuNCAzNS45IDE1LjV6bTUyLjMgMzguMWwwLTQzLTQ0LjMgMTguNiAwIDQzLjQgNDQuMy0xOXoiXX0sT3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJhbmRjYW1wIixpY29uOls1MTIsNTEyLFtdLCJmMmQ1IiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptNDguMiAzMjYuMWwtMTgxIDAgODQuNy0xNTYuMSAxODEgMC04NC43IDE1Ni4xeiJdfSxCc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXdlYi1hd2Vzb21lLXN0cm9rZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTY4NCIsIk02NCA2NEM0Ni4zIDY0IDMyIDc4LjMgMzIgOTZsMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJMNjQgNjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMzUgODEuNmw1MyA0Ni40IDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRjLTEyLjktLjQtMjMuMi0xMS0yMy4yLTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNCAyMTMuMSAxNzcuNmMtOC45LTQuMS0xNS0xMy4xLTE1LTIzLjYgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNmMwIDEwLjUtNi4yIDE5LjUtMTUuMSAyMy42eiJdfSxSc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltZW8tdiIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3ZCIsIk00NDcuOCAxNTMuNmMtMiA0My42LTMyLjQgMTAzLjMtOTEuNCAxNzkuMS02MC45IDc5LjItMTEyLjQgMTE4LjgtMTU0LjYgMTE4LjgtMjYuMSAwLTQ4LjItMjQuMS02Ni4zLTcyLjMtMzUuMi0xMjkuMi01MC4yLTIwNC45LTc5LjMtMjA0LjktMy40IDAtMTUuMSA3LjEtMzUuMiAyMS4xTDAgMTY4LjJjNTEuNi00NS4zIDEwMC45LTk1LjcgMTMxLjgtOTguNSAzNC45LTMuNCA1Ni4zIDIwLjUgNjQuNCA3MS41IDI4LjcgMTgxLjUgNDEuNCAyMDguOSA5My42IDEyNi43IDE4LjctMjkuNiAyOC44LTUyLjEgMzAuMi02Ny42IDQuOC00NS45LTM1LjgtNDIuOC02My4zLTMxIDIyLTcyLjEgNjQuMS0xMDcuMSAxMjYuMi0xMDUuMSA0NS44IDEuMiA2Ny41IDMxLjEgNjQuOSA4OS40eiJdfSxIc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyYXZhIixpY29uOlszODQsNTEyLFtdLCJmNDI4IiwiTTE1OC40IDBMNyAyOTIgOTYuMiAyOTIgMTU4LjQgMTc1LjkgMjIwLjEgMjkyIDMwOC42IDI5MiAxNTguNCAwek0zMDguNiAyOTJsLTQzLjkgODguMi00NC42LTg4LjItNjcuNiAwIDExMi4yIDIyMCAxMTEuNS0yMjAtNjcuNiAweiJdfSxxc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pcmVnaXN0cnkiLGljb246WzM4NCw1MTIsW10sImY0MDQiLCJNMTkyIDQ4MGMzOS41IDAgNzYuMi0xMS44IDEwNi44LTMyLjJsLTIxMy41IDBDMTE1LjggNDY4LjIgMTUyLjUgNDgwIDE5MiA0ODB6TTEwMi45IDI4Ni45bDAtMTIuNC0xMDIuOSAwIDAgMTIuNGMwIDIuNSAwIDUgLjEgNy40bDEwMy4xIDBjLS4yLTIuNC0uMy00LjktLjMtNy40em0yMC41IDU3bC0xMTQuOSAwYzIuNiA4LjUgNS44IDE2LjggOS42IDI0LjhsMTM4LjMgMGMtMTIuOS01LjctMjQuMS0xNC4yLTMzLTI0Ljh6bS0xNy43LTM0LjdsLTEwNC40IDBjLjkgNy42IDIuMiAxNSAzLjkgMjIuM2wxMDkuNyAwYy00LTYuOS03LjItMTQuNC05LjItMjIuM3ptLTIuOC02OS4zbC0xMDIuOSAwIDAgMTcuMyAxMDIuOSAwIDAtMTcuM3ptMC0xNzMuMmwtMTAyLjkgMCAwIDQuOSAxMDIuOSAwIDAtNC45em0wLTM0LjdsLTEwMi45IDAgMCAyLjUgMTAyLjkgMCAwLTIuNXptMCA2OS4zbC0xMDIuOSAwIDAgNy40IDEwMi45IDAgMC03LjR6bTAgMTA0bC0xMDIuOSAwIDAgMTQuOCAxMDIuOSAwIDAtMTQuOHptMC02OS4zbC0xMDIuOSAwIDAgOS45IDEwMi45IDAgMC05Ljl6bTAgMzQuNmwtMTAyLjkgMCAwIDEyLjQgMTAyLjkgMCAwLTEyLjR6TTI2OS4xIDMzMS41bDEwOS43IDBjMS44LTcuMyAzLjEtMTQuNyAzLjktMjIuM2wtMTA0LjQgMGMtMi4xIDcuOS01LjIgMTUuNC05LjIgMjIuM3ptMTItMTg1LjdsMTAyLjkgMCAwLTkuOC0xMDIuOSAwIDAgOS44em0wIDM3LjJsMTAyLjkgMCAwLTEyLjQtMTAyLjkgMCAwIDEyLjR6bTAtNzQuM2wxMDIuOSAwIDAtNy40LTEwMi45IDAgMCA3LjR6bTAtNzYuN2wwIDIuNSAxMDIuOSAwIDAtMi41LTEwMi45IDB6TTc4LjEgNDQyLjlsMjI3LjcgMGMxMS44LTguNyAyMi43LTE4LjYgMzIuMi0yOS43bC0yOTMuMSAwYzkuNiAxMSAyMS40IDIxIDMzLjIgMjkuN3ptMjAzLTM3MS4zbDEwMi45IDAgMC00LjktMTAyLjkgMCAwIDQuOXptMCAxNDguNWwxMDIuOSAwIDAtMTQuOC0xMDIuOSAwIDAgMTQuOHpNMzguOCA0MDUuN2wzMDUuMyAwYzYuNy04LjUgMTIuNi0xNy42IDE3LjgtMjcuMkwyMyAzNzguNWM1LjIgOS42IDkuMiAxOC43IDE1LjggMjcuMnptMTg4LjgtMzcuMWwxMzkuNCAwYzMuNy04IDUuOC0xNi4yIDguNS0yNC44bC0xMTUgMGMtOC44IDEwLjctMjAuMSAxOS4yLTMyLjkgMjQuOHptNTMuNS04MS43YzAgMi41LS4xIDUtLjQgNy40bDEwMy4xIDBjLjEtMi41IC4yLTQuOSAuMi03LjRsMC0xMi40LTEwMi45IDAgMCAxMi40em0wLTI5LjdsMTAyLjkgMCAwLTE3LjMtMTAyLjkgMCAwIDE3LjN6Il19LFZzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1kaW5lcnMtY2x1YiIsaWNvbjpbNTc2LDUxMixbXSwiZjI0YyIsIk0yMzkuNyA3OS45YTE3NS44IDE3NS44IDAgMSAwIDAgMzUxLjYgMTc1LjggMTc1LjggMCAxIDAgMC0zNTEuNnpNMTk5LjggMzU5LjVjLTQxLjctMTUuOS03MS40LTU2LjQtNzEuNC0xMDMuOHMyOS43LTg3LjkgNzEuNC0xMDQuMWwwIDIwNy45em03OS44IC4zbDAtMjA4LjJjNDEuNyAxNi4yIDcxLjQgNTYuNyA3MS40IDEwNC4xcy0yOS43IDg3LjktNzEuNCAxMDQuMXpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTMyOS43IDQ0OGwtOTAuMyAwQzEzMy4yIDQ0OCA0NS42IDM2Mi41IDQ1LjYgMjU3LjggNDUuNiAxNDMuMiAxMzMuMiA2NCAyMzkuNCA2NGw5MC4zIDBjMTA1IDAgMjAwLjcgNzkuMiAyMDAuNyAxOTMuOCAwIDEwNC43LTk1LjcgMTkwLjItMjAwLjcgMTkwLjJ6Il19LFVzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaW50ZXJlc3QiLGljb246WzUxMiw1MTIsW10sImYwZDIiLCJNNTA0IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDgtMjUuNiAwLTUwLjItMy45LTczLjQtMTEuMSAxMC4xLTE2LjUgMjUuMi00My41IDMwLjgtNjUgMy0xMS42IDE1LjQtNTkgMTUuNC01OSA4LjEgMTUuNCAzMS43IDI4LjUgNTYuOCAyOC41IDc0LjggMCAxMjguNy02OC44IDEyOC43LTE1NC4zIDAtODEuOS02Ni45LTE0My4yLTE1Mi45LTE0My4yLTEwNyAwLTE2My45IDcxLjgtMTYzLjkgMTUwLjEgMCAzNi40IDE5LjQgODEuNyA1MC4zIDk2LjEgNC43IDIuMiA3LjIgMS4yIDguMy0zLjMgLjgtMy40IDUtMjAuMyA2LjktMjguMSAuNi0yLjUgLjMtNC43LTEuNy03LjEtMTAuMS0xMi41LTE4LjMtMzUuMy0xOC4zLTU2LjYgMC01NC43IDQxLjQtMTA3LjYgMTEyLTEwNy42IDYwLjkgMCAxMDMuNiA0MS41IDEwMy42IDEwMC45IDAgNjcuMS0zMy45IDExMy42LTc4IDExMy42LTI0LjMgMC00Mi42LTIwLjEtMzYuNy00NC44IDctMjkuNSAyMC41LTYxLjMgMjAuNS04Mi42IDAtMTktMTAuMi0zNC45LTMxLjQtMzQuOS0yNC45IDAtNDQuOSAyNS43LTQ0LjkgNjAuMiAwIDIyIDcuNCAzNi44IDcuNCAzNi44cy0yNC41IDEwMy44LTI5IDEyMy4yQzE2MS41IDQzNy4yIDE2My41IDQ2Ny40IDE2NS42IDQ4NyA3My40IDQ1MC45IDggMzYxLjEgOCAyNTYgOCAxMTkgMTE5IDggMjU2IDhTNTA0IDExOSA1MDQgMjU2eiJdfSxqc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWxnb2xpYSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YyIsIk0yNTYgMGMtMTM5LjkgMC0yNTQgMTEyLjctMjU2IDI1Mi4xLTIgMTQxLjUgMTEyLjkgMjU4LjcgMjU0LjUgMjU5LjUgNDMuNyAuMyA4NS45LTEwLjQgMTIzLjMtMzAuNyAzLjYtMiA0LjItNyAxLjEtOS43bC0yNC0yMS4yYy00LjktNC4zLTExLjgtNS41LTE3LjgtMy0yNi4xIDExLjEtNTQuNSAxNi44LTgzLjcgMTYuNC0xMTQuNC0xLjUtMjA2LjktOTYuNi0yMDUuMS0yMTEgMS44LTExMi45IDk0LjMtMjA0LjIgMjA3LjctMjA0LjJsMjA3LjcgMCAwIDM2OS0xMTcuOC0xMDQuN2MtMy44LTMuNC05LjctMi43LTEyLjcgMS4zLTE4LjkgMjUtNDkuNyA0MC42LTgzLjkgMzguMi00Ny41LTMuMy04NS45LTQxLjUtODkuNS04OC45LTQuMi01Ni42IDQwLjYtMTAzLjkgOTYuMy0xMDMuOSA1MC40IDAgOTEuOSAzOC44IDk2LjIgODggLjQgNC40IDIuNCA4LjUgNS43IDExLjRsMzAuNyAyNy4yYzMuNSAzLjEgOSAxLjIgOS45LTMuNCAyLjItMTEuOCAzLTI0LjIgMi4xLTM2LjgtNC45LTcyLTYzLjMtMTMwLTEzNS40LTEzNC40LTgyLjctNS4xLTE1MS44IDU5LjUtMTU0IDE0MC42LTIuMSA3OC45IDYyLjYgMTQ3IDE0MS42IDE0OC43IDMzIC43IDYzLjYtOS42IDg4LjMtMjcuNkw0OTUgNTA5LjRjNi42IDUuOCAxNyAxLjIgMTctNy43bDAtNDkyYzAtNS40LTQuNC05LjctOS43LTkuN0wyNTYgMHoiXX0sV3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0YWNrcGF0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjg0MiIsIk0yNDQuNiAyMzIuNGMwIDguNS00LjMgMjAuNS0yMS4zIDIwLjVsLTE5LjYgMCAwLTQxLjUgMTkuNiAwYzE3LjEgMCAyMS4zIDEyLjQgMjEuMyAyMXpNNDQ4IDMybDAgNDQ4LTQ0OCAwIDAtNDQ4IDQ0OCAwek0xNTEuMyAyODcuOGMwLTIxLjItMTIuMS0zNC41LTQ2LjctNDQuOC0yMC42LTcuNC0yNi0xMC45LTI2LTE4LjZzNy0xNC42IDIwLjQtMTQuNmMxNC4xIDAgMjAuOCA4LjQgMjAuOCAxOC40bDMwLjcgMCAuMi0uNmMuNS0xOS42LTE1LjEtNDEuNi01MS4xLTQxLjYtMjMuNCAwLTUyLjYgMTAuOC01Mi42IDM4LjMgMCAxOS40IDkuMiAzMS4zIDUwLjcgNDQuNCAxNy4zIDYuMiAyMS45IDEwLjQgMjEuOSAxOS41IDAgMTUuMi0xOS4xIDE0LjItMTkuNSAxNC4yLTIwLjQgMC0yNS43LTkuMS0yNS43LTIxLjlsLTMwLjggMC0uMiAuNmMtLjcgMzEuMyAyOC40IDQ1LjIgNTYuNiA0NS4yIDMwIDAgNTEuMS0xMy42IDUxLjEtMzguM3ptMTI1LjQtNTUuNmMwLTI1LjMtMTguNC00NS41LTUzLjQtNDUuNWwtNTEuOCAwIDAgMTM4LjIgMzIuMiAwIDAtNDcuNCAxOS42IDBjMzAuMyAwIDUzLjQtMTYgNTMuNC00NS40ek0yOTcuOSAzMjVsNDkuMS0xMzguMi0zMS4xIDAtNDcuOSAxMzguMiAyOS45IDB6TTQwNC41IDE4Ni44bC0zMS4xIDAtNDcuOSAxMzguMiAyOS45IDAgNDkuMS0xMzguMnoiXX0sR3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9jdG9wdXMtZGVwbG95IixpY29uOls1MTIsNTEyLFtdLCJlMDgyIiwiTTQ1NS43IDM0OS4yYy00NS45LTM5LjEtMzYuNy03Ny45LTE2LjEtMTI4LjEgMzUuNy04Ny0yMy41LTE4Ni45LTEwOS42LTIxMi44LTkyLjktMjcuOS0xOTUuNyAxNi0yMzAuMyAxMDguOC04LjcgMjMuNS0xMi41IDQ4LjUtMTEgNzMuNSAxLjcgMjkuNSAxNC43IDUzIDI0LjEgODAuMyAxNy4yIDUwLjItMjguMSA5Mi43LTY2LjcgMTE3LjYtNDYuOCAzMC4yLTM2LjMgMzkuOS04LjQgNDEuOSAyMy40IDEuNyA0NC41LTQuNSA2NS4zLTE1IDkuMi00LjYgNDAuNy0xOC45IDQ1LjEtMjguNi0xMi4yIDI2LjYtMzcgNzIuNy0yMS41IDEwMi4xIDE5LjEgMzYuMiA2Ny4xLTMxLjggNzYuNy00NS44IDguNi0xMi42IDQzLTgxLjMgNjMuNi00Ni45IDE4LjkgMzEuNCA4LjYgNzYuNCAzNS43IDEwNC42IDMyLjkgMzQuMiA1MS4yLTE4LjMgNTEuNC00NC4yIC4yLTE2LjQtNi4xLTk1LjkgMjkuOS01OS45IDIxLjQgMjEuNCA1Mi45IDcxLjIgODguNiA2NyAzOC43LTQuNS0yMi4xLTY4LTI4LjMtNzguNyA1LjQgNC4zIDUzLjcgMzQuMSA1My44IDkuNSAuMS0xOC44LTMwLjEtMzQuNy00Mi41LTQ1LjN6Il19LFlzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YW1tZXIiLGljb246WzUxMiw1MTIsW10sImY4NDAiLCJNNTAwLjcgMTU5LjVjLS40LTEuOC0xLjItMy40LTIuMy00LjhzLTIuNS0yLjYtNC4xLTMuNWMtMy4xLTEuNi02LjctMi0xMC4xLTEuMWwtMjYuNCA2LjYgMC0uMi0yMi4zIDUuOC0xLjIgLjMtLjYtMi4yYy0xNS41LTU4LjMtNDUtMTExLjktODYuMS0xNTYuMi0yLjYtMi43LTYuMS00LjItOS44LTQuM3MtNy4zIDEuMy0xMCAzLjhsLTEwMi45IDEwMi43LTE5OS45IDBjLTYuNiAwLTEyLjkgMi42LTE3LjYgNy4zUzAgMTI0LjggMCAxMzEuNGwwIDI0OUMwIDM4NyAyLjYgMzkzLjMgNy4zIDM5OHMxMSA3LjMgMTcuNiA3LjNMMjI1IDQwNS4zIDMyOC4xIDUwOGMyLjYgMi42IDYgNCA5LjcgNHM3LjEtMS40IDkuNy00Yy4xLS4xIC4yLS4zIC40LS40IDI5LjMtMzEuNSA1Mi44LTY3LjggNjkuNi0xMDcuNCA2LjktMTYuNSAxMi43LTMzLjUgMTcuMy01MC44bDAgMCAyMC40IDUuMyAwLS4xIDI4LjMgNy4zYy45IC4yIDEuNyAuNCAyLjYgLjUgMS40IC4yIDIuOCAuMiA0LjEtLjEgMi41LS41IDQuOC0xLjcgNi43LTMuNHMzLjItNCAzLjgtNi41YzE1LjItNjMuNCAxNS4yLTEyOS42IC4xLTE5M2wwIDB6TTMzNy4xIDI0LjdsMCAwIDAgMCAwIDB6TTIyNi45IDE4OS44bC01Mi42IDkxLjNjLTEgMS43LTEuNSAzLjctMS41IDUuN2wwIDQ2LjJjMCA1LjgtMi4zIDExLjQtNi41IDE1LjZzLTkuNyA2LjQtMTUuNiA2LjRsLTMuNCAwYy01LjggMC0xMS40LTIuMy0xNS42LTYuNHMtNi41LTkuNy02LjUtMTUuNmwwLTQ1LjdjMC0xLjktLjUtMy44LTEuNC01LjVMNzIuMyAxODkuNmMtMS45LTMuNC0yLjgtNy4xLTIuOC0xMXMxLjEtNy42IDMtMTAuOSA0LjctNi4xIDguMS04IDcuMS0yLjkgMTEtMi45bDMuMyAwYzQgMCA4IDEuMSAxMS41IDMuMnM2LjMgNS4xIDguMSA4LjdsMzYuNCA3MC4zIDM3LjUtNzAuNWMxLjgtMy41IDQuNi02LjQgNy45LTguNHM3LjItMy4yIDExLjEtMy4yIDcuOCAuOSAxMS4yIDIuOCA2LjMgNC43IDguMiA4LjFjMiAzLjMgMyA3LjEgMyAxMXMtMSA3LjctMyAxMWwwIDB6TTMzNy4xIDI0LjdjMzUuOSA0MC42IDYxLjkgODkgNzUuOCAxNDEuM2wuNiAyLTExNC4xIDI5LjYgMC02Ni4xYzAtNi42LTIuNy0xMi45LTcuMy0xNy42cy0xMS03LjMtMTcuNi03LjNsLTE5LjQgMCA4Mi4xLTgxLjh6TTM5Ny42IDM5MmwwIDAgMCAwYy0xNC43IDM0LjgtMzUuMSA2Ny02MC4yIDk1LjJsLTgyLjItODEuOSAxOS4yIDBjNi42IDAgMTIuOS0yLjYgMTcuNi03LjNzNy4zLTExIDcuMy0xNy42bDAtNjYuMiAxMTQuNiAyOS45Yy00LjQgMTYuMy05LjggMzIuMy0xNi4zIDQ3LjlsMCAwem04NC01Mi40bDAgMC01MC42LTEzLjEtMTMxLjctMzQuMyAwLTcyLjUgMTE5LjctMzEgNC41LTEuMmMyOS45LTcuNyA0OS4yLTEyLjggNTguMS0xNS4xIDEyIDU1LjEgMTIgMTEyLjEgMCAxNjcuMnoiXX0sWnN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1vZHgiLGljb246WzQ0OCw1MTIsW10sImYyODUiLCJNMzU2IDI0MS44bDM2LjcgMjMuNyAwIDIxNC41LTEzMy04My44IDk2LjMtMTU0LjR6TTQ0MCA3NWwtMjEzLjcgMC0yMyAzNy44IDE1My41IDk2LjUgODMuMi0xMzQuM3pNMzUxIDIxNy44bC0yOTUuOC0xODUuOCAwIDIxNC41IDQ2IDI5IDI0OS44LTU3Ljd6TTk3IDI5NC4yTDggNDM3IDIyMS43IDQzNyAzNDYuNyAyMzYuNSA5NyAyOTQuMnoiXX0sWHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS10aHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJlNjE5IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTI5NC4yIDI0NC4zYzE5LjUgOS4zIDMzLjcgMjMuNSA0MS4yIDQwLjkgMTAuNCAyNC4zIDExLjQgNjMuOS0yMC4yIDk1LjQtMjQuMiAyNC4xLTUzLjUgMzUtOTUuMSAzNS4zbC0uMiAwYy00Ni44LS4zLTgyLjgtMTYuMS0xMDYuOS00Ni44LTIxLjUtMjcuMy0zMi42LTY1LjQtMzMtMTEzLjFsMC0uMmMuNC00Ny43IDExLjUtODUuNyAzMy0xMTMuMSAyNC4yLTMwLjcgNjAuMi00Ni41IDEwNi45LTQ2LjhsLjIgMGM0Ni45IC4zIDgzLjMgMTYgMTA4LjIgNDYuNiAxMi4zIDE1LjEgMjEuMyAzMy4zIDI3IDU0LjRsLTI2LjkgNy4yYy00LjctMTcuMi0xMS45LTMxLjktMjEuNC00My42LTE5LjQtMjMuOS00OC43LTM2LjEtODctMzYuNC0zOCAuMy02Ni44IDEyLjUtODUuNSAzNi4yLTE3LjUgMjIuMy0yNi42IDU0LjQtMjYuOSA5NS41IC4zIDQxLjEgOS40IDczLjMgMjYuOSA5NS41IDE4LjcgMjMuOCA0Ny40IDM2IDg1LjUgMzYuMiAzNC4zLS4zIDU2LjktOC40IDc1LjgtMjcuMyAyMS41LTIxLjUgMjEuMS00Ny45IDE0LjItNjQtNC05LjQtMTEuNC0xNy4zLTIxLjMtMjMuMy0yLjQgMTgtNy45IDMyLjItMTYuNSA0My4yLTExLjQgMTQuNS0yNy43IDIyLjQtNDguNCAyMy41LTE1LjcgLjktMzAuOC0yLjktNDIuNi0xMC43LTEzLjktOS4yLTIyLTIzLjItMjIuOS0zOS41LTEuNy0zMi4yIDIzLjgtNTUuMyA2My41LTU3LjYgMTQuMS0uOCAyNy4zLS4yIDM5LjUgMS45LTEuNi05LjktNC45LTE3LjctOS44LTIzLjQtNi43LTcuOC0xNy4xLTExLjgtMzAuOC0xMS45bC0uNCAwYy0xMSAwLTI2IDMuMS0zNS42IDE3LjZsLTIzLTE1LjhjMTIuOC0xOS40IDMzLjYtMzAuMSA1OC41LTMwLjFsLjYgMGM0MS44IC4zIDY2LjYgMjYuMyA2OS4xIDcxLjggMS40IC42IDIuOCAxLjIgNC4yIDEuOWwuMSAuNXptLTcxLjggNjcuNWMxNy0uOSAzNi40LTcuNiAzOS43LTQ4LjgtOC44LTEuOS0xOC42LTIuOS0yOS0yLjktMy4yIDAtNi40IC4xLTkuNiAuMy0yOC42IDEuNi0zOC4xIDE1LjUtMzcuNCAyNy45IC45IDE2LjcgMTkgMjQuNSAzNi40IDIzLjZsLS4xLS4xeiJdfSxRc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2xkLXJlcHVibGljIixpY29uOls1MTIsNTEyLFtdLCJmNTEwIiwiTTI0My44IDEwLjJjNy41LS4zIDE1LS4zIDIyLjUtLjEgMy42IC4xIDcuMiAuNCAxMC44IC43IDQuOSAuMyA5LjggMSAxNC43IDEuNiAyLjkgLjQgNS44IDEgOC43IDEuNSA3LjkgMS4zIDE1LjcgMy4zIDIzLjQgNS40IDEyLjIgMy41IDI0LjIgNy45IDM1LjggMTMuMiAyNi42IDEyLjIgNTAuOSAyOS4yIDcxLjYgNDkuOSAyMCAyMC4xIDM2LjcgNDMuNSA0OC45IDY5LjIgMS4xIDIuNiAyLjQgNS4xIDMuNSA3LjcgMi44IDYuNCA1LjQgMTMgNy42IDE5LjYgNC4xIDEyLjMgNy4zIDI1IDkuNCAzNy44IC42IDMuMSAxIDYuMyAxLjQgOS41IC41IDMuOCAuOSA3LjcgMS4yIDExLjYgLjggOC4zIC44IDE2LjcgLjggMjUuMS0uMSA1LS4zIDkuOS0uNyAxNC45LS4yIDMuNC0uNSA2LjgtMSAxMC4xLS40IDIuNy0uNiA1LjUtMS4xIDguMi0uOSA1LjEtMS43IDEwLjMtMi45IDE1LjQtNC4xIDE4LjUtMTAuMyAzNi42LTE4LjUgNTMuNi0xNS44IDMyLjgtMzguOCA2Mi4yLTY3LjEgODUuMS0xNy4zIDE0LjEtMzYuNCAyNS45LTU2LjkgMzQuOS02LjIgMi43LTEyLjUgNS4zLTE4LjkgNy40LTMuNSAxLjItNyAyLjQtMTAuNiAzLjQtNi42IDEuOS0xMy4zIDMuNi0yMCA1LTQuNyAuOS05LjMgMS43LTE0IDIuNS01LjMgLjctMTAuNSAxLjQtMTUuOCAxLjctNi43IC43LTEzLjQgLjgtMjAuMSAuOC02LjggMC0xMy42LS4xLTIwLjQtLjgtMy4zLS4yLTYuNi0uNS05LjgtMS0yLjctLjQtNS41LS42LTguMi0xLjEtNC4xLS43LTguMi0xLjQtMTIuNC0yLjItNC4yLS45LTguNS0xLjktMTIuNy0zLTguNi0yLjItMTcuMS01LTI1LjQtOC4xLTEwLjUtNC4xLTIwLjgtOC43LTMwLjYtMTQuMi0yLjEtMS4yLTQuMy0yLjMtNi40LTMuNi0xMS4yLTYuNi0yMS45LTE0LjEtMzEuOS0yMi4zLTM0LjctMjguNC02MS40LTY2LjQtNzYuNC0xMDguNy0zLjEtOC43LTUuNy0xNy42LTcuOC0yNi43LTEuNS02LjItMi41LTEyLjQtMy42LTE4LjctLjQtMi4zLS42LTQuNy0xLTcuMS0uNi00LS44LTgtMS4yLTExLjktLjgtOS41LS43LTE5LS41LTI4LjUgLjEtMy41IC4zLTcgLjctMTAuNSAuMy0zLjIgLjUtNi40IC45LTkuNSAuNC0yLjggLjctNS42IDEuMi04LjQgLjctMy45IDEuMy03LjkgMi4xLTExLjggMy40LTE2LjUgOC41LTMyLjcgMTUuMy00OC4yIDEuMi0yLjkgMi42LTUuNyAzLjktOC42IDguMS0xNi43IDE3LjktMzIuNiAyOS41LTQ3LjEgMjAtMjUuNCA0NS4xLTQ2LjcgNzMuMy02Mi41IDcuNS00LjIgMTUuMi04IDIzLjEtMTEuNCAxNS44LTYuOSAzMi40LTEyIDQ5LjMtMTUuNCAzLjUtLjcgNy0xLjIgMTAuNi0xLjggMi42LS41IDUuMy0uNyA3LjktMS4xIDMuNS0uNSA3LjEtLjcgMTAuNi0xIDIuNS0uMiA0LjktLjQgNy40LS41em04LjYgMjQuNGMtOS4yIC4xLTE4LjQgMS0yNy42IDIuMi03LjMgMS4xLTE0LjUgMi42LTIxLjcgNC4zLTEzLjkgMy41LTI3LjUgOC4zLTQwLjUgMTQuNC0xMC41IDUtMjAuNiAxMC43LTMwLjIgMTcuMi00LjIgMi45LTguNCA1LjgtMTIuMyA5LTUuMSA0LTEwIDguMi0xNC43IDEyLjYtMi41IDIuMi00LjggNC43LTcuMiA3LjEtMjguMiAyOC44LTQ4LjQgNjUuNC01Ny41IDEwNC43LTIgOC40LTMuNSAxNy00LjQgMjUuNi0xLjEgOC45LTEuNCAxNy45LTEuNCAyNi44IC4xIDcuMSAuNCAxNC4zIDEuMiAyMS40IC42IDcuMSAxLjkgMTQuMiAzLjIgMjEuMiAxLjEgNC42IDIgOS4zIDMuMyAxMy45IDYuMyAyMy40IDE2LjUgNDUuNyAzMC4xIDY1LjggOC42IDEzIDE4LjggMjQuOSAzMCAzNS44IDE2LjMgMTUuOCAzNSAyOSA1NS4zIDM5LjIgNy4zIDMuNSAxNC43IDYuOSAyMi4zIDkuNiA1IDEuOCAxMC4xIDMuNiAxNS4yIDUgMTEuMyAzLjIgMjIuOCA1LjYgMzQuNCA3LjEgMi45IC4zIDUuOCAuNiA4LjcgLjkgMTMuOCAxLjEgMjcuNyAxIDQxLjUtLjQgNC40LS42IDguOS0xIDEzLjMtMS44IDMuNi0uNyA3LjMtMS4yIDEwLjktMi4xIDQuMS0xIDguMy0xLjkgMTIuNC0zLjEgMjYuNS03LjMgNTEuNi0xOS43IDczLjYtMzYuMiAxNS44LTExLjggMzAtMjUuOCA0Mi4xLTQxLjMgMy4zLTQgNi4yLTguMyA5LjEtMTIuNiAzLjQtNS4xIDYuNi0xMC4yIDkuNi0xNS41IDIuNC00LjQgNC43LTguOSA3LTEzLjQgNS43LTEyLjEgMTAuMy0yNC42IDEzLjgtMzcuNSAyLjYtMTAgNC43LTIwLjIgNS45LTMwLjQgMS44LTEzLjUgMS45LTI3LjEgMS4zLTQwLjctLjMtMy45LS43LTcuOC0xLTExLjctMi4yLTE5LjEtNi44LTM3LjktMTMuOC01NS44LTYtMTUuMS0xMy41LTI5LjYtMjIuNi00My4xLTEyLjctMTguOC0yOC4yLTM1LjctNDYtNDkuOC0yNS0yMC01NC41LTM0LjUtODUuNi00Mi4xLTcuOC0xLjktMTUuNy0zLjMtMjMuNi00LjQtMy45LS42LTcuOC0uOC0xMS44LTEuMi03LjQtLjYtMTQuOC0uNy0yMi4yLS42ek0xNDcuMyA4My41YzEzLjMtOC45IDI4LjEtMTUuNCA0My4zLTIwLjItMy4yIDEuOC02LjQgMy40LTkuNSA1LjMtMTEuMiA2LjctMjEuNSAxNC45LTMwLjQgMjQuNS02LjggNy40LTEyLjggMTUuNy0xNyAyNC45LTMuMyA2LjktNS42IDE0LjItNi45IDIxLjctLjkgNC44LTEuMyA5LjgtMS4yIDE0LjggLjEgMTMuNyA0LjQgMjcuMSAxMS4zIDM4LjggNS45IDEwLjIgMTMuNiAxOS4zIDIyLjQgMjcuMyA0LjkgNC40IDEwLjIgOC4xIDE1IDEyLjYgMi4zIDIuMiA0LjUgNC40IDYuNCA2LjkgMi42IDMuMyA0LjkgNyA2IDExLjEgLjkgMyAuNyA2LjIgLjcgOS4zIDAgNC4xIDAgOC4yIDAgMTIuMyAuMSAzLjUgMCA3LjEgLjEgMTAuNiAuMSAyLjQgMCA0LjggLjEgNy4xIC4yIDUuOCAuMSAxMS41IC4xIDE3LjMgLjEgMi45IDAgNS44IC4xIDguNyAwIDEuNiAuMSAzLjMgMCA0LjktLjkgLjEtMS44IC4yLTIuNyAuMi0xMSAwLTIxLjktMi42LTMyLTYuOS02LTIuNy0xMS44LTUuOS0xNy4xLTkuOC01LjgtNC4yLTExLjEtOS0xNS44LTE0LjMtNi41LTcuMi0xMi0xNS40LTE2LjYtMjMuOS0xLjEtMi0yLjItNC0zLjItNi4xLTEuMi0yLjYtMi42LTUuMS0zLjctNy44LTQtOS43LTYuNi0xOS45LTguMS0zMC4zLS41LTQuNC0xLjEtOC45LTEuMi0xMy4zLS43LTE1LjcgLjgtMzEuNiA0LjctNDYuOCAyLjEtOC4yIDQuOC0xNi4yIDguMy0yMy44IDYuMy0xNC4yIDE1LjMtMjcuMiAyNi4zLTM4LjIgNi4zLTYuMiAxMy4xLTExLjggMjAuNS0xNi43ek0zMjIuNyA2My40YzIuNyAuNyA1LjQgMS43IDguMSAyLjcgNi40IDIuMyAxMi43IDQuOCAxOC43IDggMTMuMSA2LjQgMjUuMyAxNC44IDM1LjggMjUgMTAuMiAxMCAxOC43IDIxLjYgMjUuMSAzNC4zIDEuMyAyLjcgMi42IDUuNSAzLjggOC4zIDYuMyAxNS4xIDEwIDMxLjMgMTEuMiA0Ny42IC40IDQuNSAuNCA5LjEgLjUgMTMuNiAuMSAxMS42LTEuNSAyMy4zLTQuMyAzNC41LTIgNy4zLTQuMyAxNC41LTcuOSAyMS4yLTMuMiA2LjYtNi43IDEzLjItMTAuOCAxOS4yLTYuOSAxMC41LTE1LjYgMTkuOS0yNS44IDI3LjItMTAuNSA3LjYtMjIuNiAxMy0zNS40IDE1LjQtMy41IC43LTcuMSAxLjEtMTAuNyAxLjItMS44IC4xLTMuNyAuMi01LjYtLjEtLjMtMi4xIDAtNC4zIDAtNi41IDAtMy43IC4xLTcuNCAuMS0xMS4yIC4yLTcgMC0xNC4xIC4yLTIxLjEgMC0yLjQgMC00LjggMC03LjEgLjItNS4xIDAtMTAuMSAuMS0xNS4yIC4xLTMtLjItNiAuNS05IC43LTIuNSAxLjgtNC45IDMuMS03LjEgNC41LTcuMyAxMS4xLTEzIDE3LjctMTguMyA1LjQtNC4yIDEwLjUtOC44IDE1LTEzLjggNy43LTguNCAxNC4yLTE3LjkgMTguOC0yOC4zIDIuNS01LjkgNC41LTEyLjEgNS41LTE4LjUgLjktNC40IDEuMS04LjggMS0xMy4zIDAtNy44LTEuNC0xNS42LTMuNi0yMy4yLTEuOC01LjctNC4zLTExLjItNy4xLTE2LjQtMy45LTYuOS04LjYtMTMuMy0xNC0xOS4yLTkuOS0xMC44LTIxLjgtMTkuOS0zNC42LTI3LjEtMS44LTEtMy44LTEuOC01LjYtM3pNMjIxLjkgMTIxLjljMS0xLjIgMi0yLjMgMy4xLTMuNC0uNiAuOS0xLjMgMS44LTIgMi43LTMuMSAzLjktNS41IDguMy03IDEzLjEtLjkgMy4zLTEuNyA2LjYtMS43IDEwLS4xIDIuNS0uMSA1LjEgLjMgNy42IDEuMSA3LjYgNC4zIDE0LjkgOC44IDIxLjEgMiAyLjcgNC4yIDUuMyA2LjkgNy4zIDEuNiAxLjMgMy41IDIuMSA1LjMgMyAzLjEgMS43IDYuMyAzLjIgOS4xIDUuNSAyLjcgMi4xIDQuNiA1LjMgNC40IDguOCAwIDczLjcgMCAxNDcuMyAwIDIyMSAwIDEuNC0uMSAyLjcgMCA0IC4xIDEuNSAuOCAyLjggMS41IDQuMSAuOSAxLjcgMS44IDMuMyAzLjIgNC42IC45IC44IDIgMS40IDMuMiAxLjIgMS41LS4yIDIuNy0xLjQgMy40LTIuNiAxLTEuNSAxLjctMy4yIDIuMy00LjkgLjgtMi4xIC40LTQuNCAuNS02LjYgLjEtNCAwLTguMSAuMS0xMi4xIDAtNS45IDAtMTEuOCAuMS0xNy43IC4xLTMuNiAwLTcuMiAuMS0xMC45IC4yLTQgMC04LjEgLjEtMTIuMSAwLTYgMC0xMiAuMS0xOCAuMS0zLjYgMC03LjIgLjEtMTAuOSAuMS0zLjkgMC03LjkgLjEtMTEuOCAwLTYgMC0xMiAuMS0xOCAuMi0zLjkgMC03LjkgLjItMTEuOCAuMyAxLjQgLjEgMi45IC4yIDQuNCAuMiAzLjYgLjQgNy4yIC44IDEwLjggLjMgMy40IC40IDYuOSAuOSAxMC4zIC40IDMuMSAuNSA2LjIgMSA5LjMgLjYgNC4xIC45IDguMiAxLjUgMTIuMyAxLjUgOSAyLjggMTguMSA1LjEgMjcgMS4xIDQuOCAyLjQgOS42IDQgMTQuMyAyLjUgNy45IDUuNyAxNS43IDEwLjMgMjIuNiAxLjcgMi42IDMuOSA1IDYuMSA3LjIgLjMgLjIgLjYgLjUgLjkgLjcgLjYgLjMgMS4zLS4xIDEuNy0uNiAuNy0uOSAxLjItMS45IDEuNy0yLjkgNC4xLTcuOCA4LjItMTUuNiAxMi4zLTIzLjMgLjctMS4zIDEuNC0yLjYgMi42LTMuNiAxLjgtMS42IDMuOC0yLjcgNi0zLjYgMi45LTEuMiA1LjktMi4yIDktMi40IDYuNi0uNiAxMy4xIC43IDE5LjYgMS44IDMuNyAuNiA3LjQgMS4yIDExLjEgMS40IDMuNyAuMSA3LjUgLjEgMTEuMi0uMyA4LjYtLjkgMTctMyAyNC45LTYuMiA1LjMtMi4yIDEwLjUtNC44IDE1LjMtNy45IDExLjUtNy4yIDIxLjUtMTYuNiAzMC0yNyAxLjItMS40IDIuMi0yLjkgMy41LTQuMy0xLjIgMy4yLTIuNyA2LjQtNC4yIDkuNS0xLjMgMi45LTIuOCA1LjYtNC4zIDguNC01LjIgOS42LTExIDE4LjktMTcuOCAyNy41LTQgNS4yLTguNSAxMC4xLTEzLjMgMTQuNi02LjYgNi4xLTE0LjEgMTEuNC0yMi40IDE0LjgtOC4yIDMuNC0xNy4zIDQuNi0yNi4xIDMuMy0zLjYtLjYtNy0xLjctMTAuNC0yLjktMi44LTEtNS40LTIuNC04LTMuNy0zLjQtMS43LTYuNi0zLjgtOS43LTYuMSAyLjcgMy4xIDUuNyA1LjkgOC43IDguNiA0LjMgMy44IDguNyA3LjMgMTMuNiAxMC4yIDQgMi41IDguMyA0LjQgMTIuOCA1LjUgMS41IC40IDMgLjUgNC41IC42LTEuMyAxLjEtMi42IDItNCAzLTkuNiA2LjUtMjAgMTEuOS0zMC43IDE2LjQtMjAuOSA4LjctNDMuMiAxNC02NS43IDE1LjMtNC43IC4yLTkuMyAuNC0xNCAuNC01LS4xLTEwLS4xLTE0LjktLjctMTEuMi0uOC0yMi4zLTIuNy0zMy4yLTUuNC0xMC40LTIuNy0yMC42LTYuMS0zMC4zLTEwLjYtOC43LTMuOS0xNy4xLTguNC0yNS0xMy44LTEuOC0xLjMtMy43LTIuNS01LjQtNC4xIDYuNi0xLjIgMTMtMy40IDE5LTYuNSA1LjctMi45IDExLTYuNyAxNS42LTExLjEgMi4yLTIuMiA0LjMtNC42IDYuMi03LjEtMy40IDIuMS02LjkgNC4yLTEwLjYgNS44LTQuNCAyLjItOS4xIDMuOC0xMy44IDUtNS43IDEuNS0xMS43IDEuNy0xNy42IDEuMS04LjEtMS0xNS45LTQuMy0yMi41LTktNC4zLTIuOS04LjItNi40LTEyLTEwLjEtOS45LTEwLjItMTguMi0yMS44LTI1LjctMzMuOS0zLjktNi4zLTcuNS0xMi43LTExLjEtMTkuMi0xLTItMi4xLTQuMS0zLjItNi4xIDIuOCAyLjkgNS42IDYgOC40IDguOSAxOS4yIDE5LjIgMzcuNiAzMi4zIDUzLjcgMzUuNSAzLjEgLjcgNi4zIC41IDkuNSAuOCAyLjggLjMgNS42IC4yIDguMyAuMyA1IC4xIDEwLjEgMCAxNS4yLS4yIDMuNi0uMiA3LjMtLjcgMTAuOS0xLjEgMi4xLS4yIDQuMS0uNyA2LjEtMS4yIDMuOS0xIDguMS0xIDExLjggLjYgNC44IDEuOCA4LjQgNS42IDExLjQgOS43IDIuMiAzIDQuMSA2LjIgNS43IDkuNiAxLjIgMi40IDIuNSA0LjggMy42IDcuMyAxIDIuMiAyLjIgNC40IDMuNCA2LjUgLjcgMSAxLjQgMi4yIDIuNiAyLjYgMS4xLS44IDEuNy0xLjkgMi4zLTMgMi4xLTQuMiAzLjQtOC42IDQuOS0xMyAyLTYuNiAzLjgtMTMuMyA1LjItMjAgMi4yLTkuMyAzLjItMTguNyA0LjUtMjguMSAuNi00IC44LTggMS4zLTEyIC45LTEwLjYgMS45LTIxLjMgMi4yLTMxLjkgLjEtMS45IC4yLTMuNyAuMy01LjYgMC00LjMgLjItOC43IC4yLTEzIDAtMi40IDAtNC44IDAtNy4xIDAtNS4xLS4yLTEwLjEtLjItMTUuMi0uMi02LjYtLjctMTMuMi0xLjMtMTkuOC0uNy01LjktMS41LTExLjgtMy4xLTE3LjUtMi03LjctNS42LTE1LTkuOC0yMS44LTMuMi01LjEtNi44LTkuOS0xMS4xLTE0LTMuOS0zLjktOC42LTcuMS0xMy45LTguNC0xLjUtLjQtMy4xLS40LTQuNi0uNiAuMS0zIC43LTUuOSAxLjMtOC44IDEuNi03LjcgMy44LTE1LjMgNi44LTIyLjYgMS41LTQgMy40LTcuOSA1LjQtMTEuNyAzLjQtNi42IDcuNi0xMi44IDEyLjUtMTguNXptMzEuMyAxLjdjLjQtLjEgLjctLjEgMS4xLS4yIC4yIDEuOCAuMSAzLjYgLjEgNS40bDAgMzguMWMwIDEuNyAuMSAzLjUtLjIgNS4yLS40IDAtLjcgMC0xLjEgMC0uOS0zLjgtMS43LTcuNi0yLjYtMTEuMy0uNC0xLjUtLjYtMy4xLTEuMS00LjYtMS43LS4yLTMuNC0uMi01LjItLjItNS4xIDAtMTAuMSAwLTE1LjIgMC0xLjcgMC0zLjMgLjEtNSAwIDAtLjQtLjMtLjkgLjItMS4yIDEuMy0uNyAyLjctLjkgNC4xLTEuNCAzLjQtMS4xIDYuOS0yLjIgMTAuMy0zLjMgMS40LS41IDIuOS0uNyA0LjItMS41IDAtLjYgMC0xLjEgMC0xLjctMS4yLS42LTIuNS0uOS0zLjgtMS4zLTMuMS0xLTYuMy0yLTkuNC0zLTEuOC0uNi0zLjctMS01LjQtMS44IDAtLjQtLjEtLjctLjEtMS4xIDUuMS0uMiAxMC4yIC4xIDE1LjMtLjEgMy40LS4xIDYuNyAuMSAxMC4xLS4xIC4xLS40IC4zLS44IC40LTEuMiAxLjEtNC45IDIuMy05LjggMy40LTE0Ljd6bTYtLjJjLjQgMCAuNyAuMSAxLjEgLjIgMSAzLjggMS43IDcuOCAyLjcgMTEuNiAuNCAxLjQgLjYgMi45IDEgNC4zIDIuNSAuMiA1LjEgMCA3LjYgMCA1LjIgLjEgMTAuMyAuMSAxNS41IC4xIC44IDAgMS41IDAgMi4zIC4xIDAgLjQtLjEgLjctLjEgMS4xLTEuOCAuOC0zLjggMS4yLTUuNyAxLjktMy43IDEuMi03LjUgMi40LTExLjIgMy42LS42IC4yLTEuMSAuNC0xLjcgLjYtLjIgLjYtLjIgMS4xLS4xIDEuNyAuOSAuNSAxLjggLjggMi44IDEuMSA0LjkgMS41IDkuNyAzLjEgMTQuNiA0LjYgLjQgLjEgLjggLjMgMS4xIC41IC40IC4zIC4yIC44IC4yIDEuMi0xLjcgLjEtMy4zIDAtNSAwLTUuMiAwLTEwLjMgMC0xNS41IDAtMS42IDAtMy4yIDAtNC44IC4yLS41IDEuNy0uNyAzLjQtMS4yIDUuMS0uOSAzLjYtMS41IDcuMi0yLjUgMTAuOC0uNCAwLS43IDAtMS4xIC4xLS4zLTEuNy0uMi0zLjUtLjItNS4ybDAtMzguMWMwLTEuOC0uMS0zLjYgLjEtNS40em0tMTg2IDQ1YzEuMS0yLjIgMi4xLTQuNCAzLjQtNi41LTEuOCA3LjYtMi45IDE1LjMtMy42IDIzLS44IDcuNy0uOCAxNS41LS41IDIzLjIgMS4xIDE5LjkgNS41IDM5LjggMTQuMiA1Ny45IDMgNiA2LjQgMTEuOCAxMC41IDE3LjEgNi4xIDcuNSAxMi41IDE0LjggMTkuOCAyMS4xIDQuOCA0LjEgMTAgNy44IDE1LjUgMTAuOCAzLjMgMS43IDYuNSAzLjQgOS45IDQuNyA1IDIgMTAuMiAzLjYgMTUuNCA0LjkgMy44IDEgNy44IDEuNCAxMS41IDIuNyA1IDEuNiA5LjUgNC42IDEzIDguNCA0LjkgNS4yIDguMSAxMS45IDEwLjIgMTguNyAxIDIuOSAxLjYgNS45IDIuMiA4LjkgLjIgLjggLjIgMS41IC4yIDIuMy02LjUgMi44LTEzLjMgNS4xLTIwLjMgNi4yLTQuMSAuOC04LjMgMS0xMi41IDEuMS0xMC4yIC4yLTIwLjUtMS44LTMwLjEtNS4xLTMuNy0xLjQtNy41LTIuOS0xMS00LjctOC4xLTMuOC0xNS42LTguNy0yMi41LTE0LjUtMi45LTIuNi01LjgtNS4xLTguNC04LTkuMi05LjgtMTYuMy0yMS40LTIxLjgtMzMuNy0yLjQtNS41LTQuNi0xMS4yLTYuNC0xNy0xLjItMy45LTIuNC03LjktMy4zLTExLjktLjctMi45LTEuMi01LjktMS45LTguOS0uNS0yLjEtLjctNC4zLTEtNi41LS44LTUuNC0xLjMtMTAuOS0xLjMtMTYuNCAuMS02LjIgLjItMTIuNCAxLjEtMTguNSAuNC0yLjkgLjctNS43IDEuMi04LjYgMS01LjcgMi4xLTExLjQgMy43LTE2LjkgMy4xLTExLjYgNy41LTIzIDEyLjctMzMuOHptMzYzLjctNi40YzEuMSAxLjcgMS45IDMuNSAyLjggNS4zIDIuMSA0LjUgNC4yIDguOSA2IDEzLjUgNy42IDE4LjggMTIuMyAzOC44IDEzIDU5IDAgMS44IC4xIDMuNSAuMSA1LjMgLjEgOS42LTEuMyAxOS4xLTMuMiAyOC41LS43IDMuNi0xLjUgNy4yLTIuNiAxMC43LTQgMTQuNy0xMCAyOS0xOC40IDQxLjgtOC4yIDEyLjYtMTkgMjMuNS0zMS44IDMxLjQtNS43IDMuNi0xMS44IDYuNi0xOCA5LjItNS44IDIuMi0xMS43IDQtMTcuOCA1LjEtNi40IDEtMTIuOSAxLjUtMTkuNCAxLjItNy45LS41LTE1LjgtMi4xLTIzLjItNC44LTEuOS0uOC0zLjktMS41LTUuOC0yLjMtLjItMS41IC4yLTMgLjUtNC41IDEuMi01LjcgMy0xMS40IDUuNy0xNi42IDIuNC00LjUgNS41LTguNyA5LjUtMTEuOSAyLjQtMi4xIDUuMi0zLjYgOC4yLTQuOCAzLjYtMS41IDcuNS0yIDExLjItMi44IDcuMi0xLjcgMTQuNC0zLjkgMjEuMi03IDEwLjMtNC43IDE5LjctMTEuNCAyNy42LTE5LjUgMS42LTEuNiAzLjItMy4yIDQuNy00LjkgMy40LTMuOCA2LjctNy42IDkuOC0xMS41IDcuNS0xMC4xIDEyLjgtMjEuNiAxNi43LTMzLjUgMS42LTUuMyAzLjItMTAuNiA0LjItMTYuMSAuNi0yLjkgMS01LjggMS41LTguNyAuOS02LjEgMS42LTEyLjIgMS43LTE4LjQgLjEtNi42IC4xLTEzLjMtLjUtMTkuOS0uNy04LTEuOS0xNi0zLjctMjMuOHoiXX0sS3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1c2UiLGljb246WzY0MCw1MTIsW10sImY3ZDYiLCJNNjA0LjUgMjEwYTEwLjQgMTAuNCAwIDEgMSAtMTEuNC0xNy40IDEwLjQgMTAuNCAwIDEgMSAxMS40IDE3LjR6TTYyMSAxODcuMmEzOC41IDM4LjUgMCAxIDEgLTc1IDE3LjYgMzguNSAzOC41IDAgMSAxIDc1LTE3LjZ6TTQzMy43IDMzNi43YzMuMiA0LjYgNS44IDkgNy4zIDEzLjQgMSAzLjEgMi40IDcuMyA1LjUgOC45IC4yIC4xIC4zIC4yIC41IC4yIDUuNyAyLjEgMjAuMyAxLjcgMjAuMyAxLjdsMjYuOCAwYzIuMyAwIDIyLjQgMCAyMS45LTIuMy0yLjQtMTAuOC0xNC45LTEyLjctMjQuNC0xOC4zLTguNy01LjItMTctMTEuMS0yMC44LTIxLjMtMi01LjItLjgtMTcuNCAyLjYtMjEuOCAyLjUtMy4yIDYuMS01LjMgMTAtNi4yIDQuMy0uOSA4LjgtLjEgMTMuMSAuMyA1LjMgLjUgMTAuNiAxLjUgMTUuOSAyLjIgMTAuMyAxLjMgMjAuNiAxLjkgMzEgMS42IDE3LjEtLjUgMzQuMi0zLjIgNTAuNC04LjcgMTEuMy0zLjggMjIuNC04LjkgMzItMTYuMSAxMC45LTguMSA4LjEtNy40LTMtNi4yLTEzLjMgMS40LTI2LjYgMS42LTM5LjkgLjgtMTIuNC0uNy0yNC43LTIuMi0zNS45LTcuOS04LjgtNC42LTE2LjQtOS4xLTIzLjQtMTYuMi0xLTEuMS0xLjctNC4yIC4yLTYuMiAxLjktMS45IDUuOC0uOCA3IC4yIDEyLjIgMTAuMiAzMC41IDE4LjYgNDkuMyAxOS41IDEwLjIgLjUgMjAuMSAuNyAzMC40IC4zIDUuMS0uMiAxMi44LS4yIDE3LjktLjMgMi42IDAgOS44IC43IDExLjItMi4xIC40LS44IC40LTEuOCAuMy0yLjctMS41LTQwLjktNC41LTg2LjktNDcuMy0xMDYuNS0zMS45LTE0LjYtNzkuNy0zNy4yLTk5LjktNDYuNi00LjctMi4yLTEwLjIgMS4zLTEwLjIgNi41IDAgMTMuNiAuNyAzMy4zIC43IDUxLjEtOS43LTkuOS0yNi0xNi4xLTM4LjQtMjEuOC0xNC4xLTYuNS0yOC43LTEyLTQzLjUtMTYuNi0yOS44LTkuMi02MC43LTE0LjktOTEuNy0xOC0zNS4yLTMuNS03MS0xLjgtMTA1LjcgNS4zLTU2LjkgMTIuMi0xMTMuMSAzOS43LTE1NS43IDc5LjgtMjYuMSAyNC42LTQ2LjYgNTkuNy00OCA5NS4yLTIgNTAuMyAxMi4xIDc3LjMgMzggMTA1LjIgNDEuMyA0NC40IDEzMC4yIDUwLjYgMTY2LjItMiAxNi4yLTIzLjcgMTkuNy01NS44IDgtODItMTEuOC0yNi4yLTM4LjgtNDUuMS02Ny40LTQ2LTIyLjItLjctNDUuOSAxMC42LTU0LjUgMzEuMS02LjUgMTUuNy0yLjggMzUuMSA5IDQ3LjMgNC42IDQuOCAxMC45IDguNyAxNy43IDcuMSA0LS45IDcuNC0zLjkgOC04IC45LTYtNC40LTkuOS03LjYtMTQuNS01LjgtOC4zLTQuNy0yMC45IDIuNy0yNy45IDYuMi02IDE1LjMtNy44IDIzLjktNy43IDggMCAxNi4yIDEuNCAyMy4xIDUuNSA5LjcgNS43IDE2LjIgMTYuMiAxOC40IDI3LjIgNi43IDMzLTIwLjIgNTkuOS01Ni42IDYyLTE4LjYgMS4xLTM3LjYtMy44LTUyLjEtMTUuNS0zNi45LTI5LjgtNDUuOS05MC4zLTMuOC0xMjIuNyA0MC0zMC43IDkwLjQtMjIuOCAxMjAuMi02LjggMjMuOCAxMi44IDQxLjUgMzMuNiA1NSA1Ni43IDYuNyAxMS42IDEyLjUgMjMuNyAxNy44IDM2LjEgNS4xIDExLjggOS45IDIzLjggMjAuMiAzMi41IDYuOCA1LjggMTUuMiA1LjYgMjQuMSA1LjZsNTAuOCAwYzYuOSAwIDUuMi00LjYgMi4yLTcuNy02LjctNi45LTE2LjQtOC40LTI1LjQtMTAuOS0yMC41LTUuNi0xOC40LTMyLjgtMTIuNy0zMi44IDE4LjMgMCAxOC45IC42IDM0LjkgLjMgMjMuMi0uMyAzMC4yLTEuNyA0OC4zIDUgOS43IDMuNiAxOSAxMy4xIDI1LjEgMjEuN3oiXX0sSnN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcC1zdG9yZS1pb3MiLGljb246WzQ0OCw1MTIsW10sImYzNzAiLCJNNDAwIDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyNyAzODQuNWMtNS41IDkuNi0xNy44IDEyLjgtMjcuMyA3LjMtOS42LTUuNS0xMi44LTE3LjgtNy4zLTI3LjNsMTQuMy0yNC43YzE2LjEtNC45IDI5LjMtMS4xIDM5LjYgMTEuNEwxMjcgMzg0LjV6bTEzOC45LTUzLjlMODQgMzMwLjZjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDUxIDAgNjUuNC0xMTMuMi0yMC41LTM1LjRjLTUuNS05LjYtMi4yLTIxLjggNy4zLTI3LjMgOS42LTUuNSAyMS44LTIuMiAyNy4zIDcuM2w4LjkgMTUuNCA4LjktMTUuNGM1LjUtOS42IDE3LjgtMTIuOCAyNy4zLTcuMyA5LjYgNS41IDEyLjggMTcuOCA3LjMgMjcuM2wtODUuOCAxNDguNiA2Mi4xIDBjMjAuMiAwIDMxLjUgMjMuNyAyMi43IDQwem05OC4xIDBsLTI5IDAgMTkuNiAzMy45YzUuNSA5LjYgMi4yIDIxLjgtNy4zIDI3LjMtOS42IDUuNS0yMS44IDIuMi0yNy4zLTcuMy0zMi45LTU2LjktNTcuNS05OS43LTc0LTEyOC4xLTE2LjctMjktNC44LTU4IDcuMS02Ny44IDEzLjEgMjIuNyAzMi43IDU2LjcgNTguOSAxMDJsNTIgMGMxMSAwIDIwIDkgMjAgMjAgMCAxMS4xLTkgMjAtMjAgMjB6Il19LFkxZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZHJpYmJibGUiLGljb246WzQ0OCw1MTIsWyJkcmliYmJsZS1zcXVhcmUiXSwiZjM5NyIsIk0xNjUuOSAxMzIuNWMtMzguMyAxOC02Ni44IDUzLjMtNzUuNyA5NS43IDYuMSAuMSA2Mi40IC4zIDEyNi40LTE2LjctMjIuNy00MC4yLTQ3LjEtNzQuMS01MC43LTc5em0yNi4xLTkuMWMzLjggNS4xIDI4LjYgMzguOSA1MSA4MCA0OC42LTE4LjMgNjkuMS00NS45IDcxLjYtNDkuNC0zMy42LTI5LjgtNzkuMy00MS4xLTEyMi42LTMwLjZ6TTI3Ny40IDM4MmMtMi0xMi0xMC01My44LTI5LjItMTAzLjYtNTUuMSAxOC44LTkzLjggNTYuNC0xMDguMSA4NS42IDQwLjUgMzEuNiA5My4zIDM2LjcgMTM3LjMgMTh6TTIyNy44IDIzMi42QzE1OS42IDI1MyA5My40IDI1Mi4yIDg3LjQgMjUybDAgNC4yYzAgMzUuMSAxMy4zIDY3LjEgMzUuMSA5MS40IDIyLjItMzcuOSA2Ny4xLTc3LjkgMTE2LjUtOTEuOC0zLjQtNy44LTcuMi0xNS41LTExLjEtMjMuMmwtLjEgMHptNzIuNSAxMzYuOWMzMC43LTIwLjcgNTIuNS01My42IDU4LjYtOTEuNi00LjYtMS41LTQyLjMtMTIuNy04NS4xLTUuOCAxNy45IDQ5LjEgMjUuMSA4OS4xIDI2LjUgOTcuNHptLTM0LjgtMTE5YzQ1LjUtNS43IDkwLjcgMy40IDk1LjIgNC40LS4zLTMyLjMtMTEuOC02MS45LTMwLjktODUuMS0yLjkgMy45LTI1LjggMzMuMi03Ni4zIDUzLjkgNC44IDkuOCA4LjMgMTcuOCAxMiAyNi44ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMjI0IDk2YTE2MCAxNjAgMCAxIDEgMCAzMjAgMTYwIDE2MCAwIDEgMSAwLTMyMHoiXX0sZW50PVkxZSx0bnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWlraXQiLGljb246WzQ0OCw1MTIsW10sImY0MDMiLCJNNDQzLjkgMTI4bDAgMjU2LTIyNS45IDEyOC0yMTgtMTI4IDAtMjE0LjMgODcuNiA0NS4xIDAgMTE3IDEzMy41IDc1LjUgMTM1LjgtNzUuNSAwLTE1MS0xMDEuMS01Ny42IDg3LjYtNTMuMSAxMDAuNSA1Ny45ek0zMDguNiA0OS4xbC04NC44LTQ5LjEtODguNiA1NC44IDg2IDQ3LjMgODcuNC01M3oiXX0sYW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cGVycG93ZXJzIixpY29uOls0NDgsNTEyLFtdLCJmMmRkIiwiTTQ0OCAzMmMtODMuMyAxMS0xNjYuOCAyMi0yNTAgMzMtOTIgMTIuNS0xNjMuMyA4Ni43LTE2OSAxODAtMy4zIDU1LjUgMTggMTA5LjUgNTcuOCAxNDguMkwwIDQ4MGM4My4zLTExIDE2Ni41LTIyIDI0OS44LTMzIDkxLjgtMTIuNSAxNjMuMy04Ni44IDE2OC43LTE3OS44IDMuNS01NS41LTE4LTEwOS41LTU3LjctMTQ4LjJMNDQ4IDMyek0zNjguMyAyNjQuM2MtNC4yIDc5LjUtNzQgMTM5LjItMTUyLjggMTM0LjUtNzkuNS00LjctMTQwLjctNzEtMTM2LjMtMTUxIDQuNS03OS4yIDc0LjMtMTM5LjMgMTUzLTEzNC41IDc5LjMgNC43IDE0MC41IDcxIDEzNi4xIDE1MXoiXX0scm50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlvdXR1YmUiLGljb246WzU3Niw1MTIsWzYxODAyXSwiZjE2NyIsIk01NDkuNyAxMjQuMUM1NDMuNSAxMDAuNCA1MjQuOSA4MS44IDUwMS40IDc1LjUgNDU4LjkgNjQgMjg4LjEgNjQgMjg4LjEgNjRTMTE3LjMgNjQgNzQuNyA3NS41QzUxLjIgODEuOCAzMi43IDEwMC40IDI2LjQgMTI0LjEgMTUgMTY3IDE1IDI1Ni40IDE1IDI1Ni40czAgODkuNCAxMS40IDEzMi4zYzYuMyAyMy42IDI0LjggNDEuNSA0OC4zIDQ3LjggNDIuNiAxMS41IDIxMy40IDExLjUgMjEzLjQgMTEuNXMxNzAuOCAwIDIxMy40LTExLjVjMjMuNS02LjMgNDItMjQuMiA0OC4zLTQ3LjggMTEuNC00Mi45IDExLjQtMTMyLjMgMTEuNC0xMzIuM3MwLTg5LjQtMTEuNC0xMzIuM3pNMjMyLjIgMzM3LjZsMC0xNjIuNCAxNDIuNyA4MS4yLTE0Mi43IDgxLjJ6Il19LGludD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbWJlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMyIsIk02MzkuOSAyNTQuNmMtMS4xLTEwLjctMTAuNy02LjgtMTAuNy02LjhzLTE1LjYgMTIuMS0yOS4zIDEwLjdjLTEzLjctMS4zLTkuNC0zMi05LjQtMzJzMy0yOC4xLTUuMS0zMC40Yy04LjEtMi40LTE4IDcuMy0xOCA3LjNzLTEyLjQgMTMuNy0xOC4zIDMxLjJsLTEuNiAuNXMxLjktMzAuNi0uMy0zNy42Yy0xLjYtMy41LTE2LjQtMy4yLTE4LjggM3MtMTQuMiA0OS4yLTE1IDY3LjJjMCAwLTIzLjEgMTkuNi00My4zIDIyLjhzLTI1LTkuNC0yNS05LjQgNTQuOC0xNS4zIDUyLjktNTkuMS00NC4yLTI3LjYtNDktMjRjLTQuNiAzLjUtMjkuNCAxOC40LTM2LjYgNTkuNy0uMiAxLjQtLjcgNy41LS43IDcuNXMtMjEuMiAxNC4yLTMzIDE4YzAgMCAzMy01NS42LTcuMy04MC45LTExLjQtNi44LTIxLjMtLjUtMjcuMiA1LjMgMTMuNi0xNy4zIDQ2LjQtNjQuMiAzNi45LTEwNS4yLTUuOC0yNC40LTE4LTI3LjEtMjkuMi0yMy4xLTE3IDYuNy0yMy41IDE2LjctMjMuNSAxNi43cy0yMiAzMi0yNy4xIDc5LjUtMTIuNiAxMDUuMS0xMi42IDEwNS4xLTEwLjUgMTAuMi0yMC4yIDEwLjctNS40LTI4LjctNS40LTI4LjcgNy41LTQ0LjYgNy01Mi4xLTEuMS0xMS42LTkuOS0xNC4yYy04LjktMi43LTE4LjUgOC42LTE4LjUgOC42cy0yNS41IDM4LjctMjcuNyA0NC42bC0xLjMgMi40LTEuMy0xLjZzMTgtNTIuNyAuOC01My41LTI4LjUgMTguOC0yOC41IDE4LjgtMTkuNiAzMi44LTIwLjQgMzYuNWwtMS4zLTEuNnM4LjEtMzguMiA2LjQtNDcuNmMtMS42LTkuNC0xMC41LTcuNS0xMC41LTcuNXMtMTEuMy0xLjMtMTQuMiA1LjktMTMuNyA1NS4zLTE1IDcwLjdjMCAwLTI4LjIgMjAuMi00Ni44IDIwLjQtMTguNSAuMy0xNi43LTExLjgtMTYuNy0xMS44czY4LTIzLjMgNDkuNC02OS4yYy04LjMtMTEuOC0xOC0xNS41LTMxLjctMTUuMy0xMy43IC4zLTMwLjMgOC42LTQxLjMgMzMuMy01LjMgMTEuOC02LjggMjMtNy44IDMxLjUgMCAwLTEyLjMgMi40LTE4LjgtMi45cy0xMCAwLTEwIDAtMTEuMiAxNC0uMSAxOC4zIDI4LjEgNi4xIDI4LjEgNi4xYzEuNiA3LjUgNi4yIDE5LjUgMTkuNiAyOS43IDIwLjIgMTUuMyA1OC44LTEuMyA1OC44LTEuM2wxNS45LTguOHMuNSAxNC42IDEyLjEgMTYuNyAxNi40IDEgMzYuNS00Ny45YzExLjgtMjUgMTIuNi0yMy42IDEyLjYtMjMuNmwxLjMtLjNzLTkuMSA0Ni44LTUuNiA1OS43QzE4Ny43IDMxOS40IDIwMyAzMTggMjAzIDMxOHM4LjMgMi40IDE1LTIxLjIgMTkuNi00OS45IDE5LjYtNDkuOWwxLjYgMHMtNS42IDQ4LjEgMyA2My43IDMwLjkgNS4zIDMwLjkgNS4zIDE1LjYtNy44IDE4LTEwLjJjMCAwIDE4LjUgMTUuOCA0NC42IDEyLjkgNTguMy0xMS41IDc5LjEtMjUuOSA3OS4xLTI1LjlzMTAgMjQuNCA0MS4xIDI2LjdjMzUuNSAyLjcgNTQuOC0xOC42IDU0LjgtMTguNnMtLjMgMTMuNSAxMi4xIDE4LjYgMjAuNy0yMi44IDIwLjctMjIuOGwyMC43LTU3LjIgMS45IDBzMS4xIDM3LjMgMjEuNSA0My4yIDQ3LTEzLjcgNDctMTMuNyA2LjQtMy41IDUuMy0xNC4zem0tNTc4IDUuM2MuOC0zMiAyMS44LTQ1LjkgMjktMzkgNy4zIDcgNC42IDIyLTkuMSAzMS40LTEzLjcgOS41LTE5LjkgNy42LTE5LjkgNy42ek0zMzQuNyAxMzYuMXMxOS4xLTQ5LjcgMjMuNi0yNS41LTQwIDk2LjItNDAgOTYuMmMuNS0xNi4yIDE2LjQtNzAuNyAxNi40LTcwLjd6bTIyLjggMTM4LjRjLTEyLjYgMzMtNDMuMyAxOS42LTQzLjMgMTkuNnMtMy41LTExLjggNi40LTQ0LjkgMzMuMy0yMC4yIDMzLjMtMjAuMiAxNi4yIDEyLjQgMy42IDQ1LjV6bTg0LjYtMTQuNnMtMy0xMC41IDguMS0zMC42YzExLTIwLjIgMTkuNi05LjEgMTkuNi05LjFzOS40IDEwLjItMS4zIDI1LjUtMjYuNCAxNC4yLTI2LjQgMTQuMnoiXX0sb250PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvb3RzdHJhcCIsaWNvbjpbNTc2LDUxMixbXSwiZjgzNiIsIk0zMzMuNSAyMDEuNGMwLTIyLjEtMTUuNi0zNC4zLTQzLTM0LjNsLTUwLjQgMCAwIDcxLjIgNDIuNSAwYzMyLjgtLjEgNTAuOS0xMy4zIDUwLjktMzYuOXpNNTE3IDE4OC42Yy05LjUtMzAuOS0xMC45LTY4LjgtOS44LTk4LjEgMS4xLTMwLjUtMjIuNy01OC41LTU0LjctNTguNUwxMjMuNyAzMmMtMzIuMSAwLTU1LjggMjguMS01NC43IDU4LjUgMSAyOS4zLS4zIDY3LjItOS44IDk4LjEtOS42IDMxLTI1LjcgNTAuNi01Mi4yIDUzLjFsMCAyOC41YzI2LjQgMi41IDQyLjYgMjIuMSA1Mi4yIDUzLjEgOS41IDMwLjkgMTAuOSA2OC44IDkuOCA5OC4xLTEuMSAzMC41IDIyLjcgNTguNSA1NC43IDU4LjVsMzI4LjcgMGMzMi4xIDAgNTUuOC0yOC4xIDU0LjctNTguNS0xLTI5LjMgLjMtNjcuMiA5LjgtOTguMSA5LjYtMzEgMjUuNy01MC42IDUyLjEtNTMuMWwwLTI4LjVjLTI2LjMtMi41LTQyLjUtMjIuMS01Mi01My4xek0zMDAuMiAzNzUuMWwtOTcuOSAwIDAtMjM4LjMgOTcuNCAwYzQzLjMgMCA3MS43IDIzLjQgNzEuNyA1OS40IDAgMjUuMy0xOS4xIDQ3LjktNDMuNSA1MS44bDAgMS4zYzMzLjIgMy42IDU1LjUgMjYuNiA1NS41IDU4LjMgMCA0Mi4xLTMxLjMgNjcuNS04My4yIDY3LjV6bS0xMC0xMDguN2wtNTAuMSAwIDAgNzguNCA1Mi4zIDBjMzQuMiAwIDUyLjMtMTMuNyA1Mi4zLTM5LjUgMC0yNS43LTE4LjYtMzguOS01NC41LTM4Ljl6Il19LHNudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMiLGljb246WzQ0OCw1MTIsW10sImYzYjQiLCJNMjIzLjYgODAuM2ExNzEuMyAxNzEuMyAwIDEgMCAuMiAzNDIuNSAxNzEuMyAxNzEuMyAwIDEgMCAtLjItMzQyLjV6bTc5LjQgMjQwYy0zLjIgMTMuNi0xMy41IDIxLjItMjcuMyAyMy44LTEyLjEgMi4yLTIyLjIgMi44LTMxLjktNS0xMS44LTEwLTEyLTI2LjQtMS40LTM2LjggOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyAzLjItMy42IDIuMi0yIDIuMi04MC44IDAtNS42LTIuNy03LjEtOC40LTYuMS00IC43LTkxLjkgMTcuMS05MS45IDE3LjEtNSAxLjEtNi43IDIuNi02LjcgOC4zIDAgMTE2LjEgLjUgMTEwLjgtMS4yIDExOC41LTIuMSA5LTcuNiAxNS44LTE0LjkgMTkuNi04LjMgNC42LTIzLjQgNi42LTMxLjQgNS4yLTIxLjQtNC0yOC45LTI4LjctMTQuNC00Mi45IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgNS01LjcgLjktMTI3IDIuNi0xMzMuNyAuNC0yLjYgMS41LTQuOCAzLjUtNi40IDIuMS0xLjcgNS44LTIuNyA2LjctMi43IDEwMS0xOSAxMTMuMy0yMS40IDExNS4xLTIxLjQgNS43LS40IDkgMyA5IDguNy0uMSAxNzAuNiAuNCAxNjEuNC0xIDE2Ny42ek0zNDUuMiAzMkwxMDIuOCAzMkM0NS45IDMyIDAgNzcuOSAwIDEzNC44TDAgMzc3LjJDMCA0MzQuMSA0NS45IDQ4MCAxMDIuOCA0ODBsMjQyLjQgMGM1NyAwIDEwMi44LTQ1LjkgMTAyLjgtMTAyLjhsMC0yNDIuNEM0NDggNzcuOSA0MDIuMSAzMiAzNDUuMiAzMnpNMjIzLjYgNTlhMTkyLjUgMTkyLjUgMCAxIDEgMCAzODUgMTkyLjUgMTkyLjUgMCAxIDEgMC0zODV6Il19LFoxZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteGluZyIsaWNvbjpbNDQ4LDUxMixbInhpbmctc3F1YXJlIl0sImYxNjkiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTkzLjggMzIwLjJjLTUuNSAwLTguNy01LjMtNi0xMC4zbDQ5LjMtODYuN2MuMSAwIC4xLS4xIDAtLjJsLTMxLjQtNTRjLTMtNS42IC4yLTEwLjEgNi0xMC4xbDQ2LjYgMGM1LjIgMCA5LjUgMi45IDEyLjkgOC43bDMxLjkgNTUuM2MtMS4zIDIuMy0xOCAzMS43LTUwLjEgODguMi0zLjUgNi4yLTcuNyA5LjEtMTIuNiA5LjFsLTQ2LjYgMHptMTYzLjUtMzMuNGwwIC4yIDY1LjUgMTE5YzIuOCA1LjEgLjEgMTAuMS02IDEwLjFsLTQ2LjYgMGMtNS41IDAtOS43LTIuOS0xMi45LTguN2wtNjYtMTIwLjNjMS44LTMuMiAyMi45LTQwLjQgNjMuMy0xMTEuNiAxMS43LTIwLjcgMjUuMS00NC4zIDQwLjEtNzAuOCAzLjMtNS44IDcuNC04LjcgMTIuNS04LjdsNDYuOSAwYzUuNy0uMSA4LjggNC43IDYgMTBMMjU3LjMgMjg2Ljh6Il19LG5udD1aMWUsbG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzczMtYWx0IixpY29uOlszODQsNTEyLFtdLCJmMzhiIiwiTTAgMzJMMzQuOSA0MjcuOCAxOTIgNDgwIDM0OS4xIDQyNy44IDM4NCAzMiAwIDMyem0zMTMuMSA4MGwtNC44IDQ3LjMtMTE1LjMgNDkuMy0uMyAuMSAxMTEuNSAwLTEyLjggMTQ2LjYtOTguMiAyOC43LTk4LjgtMjkuMi02LjQtNzMuOSA0OC45IDAgMy4yIDM4LjMgNTIuNiAxMy4zIDU0LjctMTUuNCAzLjctNjEuNi0xNjYuMy0uNSAwLS4xLS4yIC4xLTMuNi00Ni4zIDExMi4xLTQ2LjcgNi41LTIuNy0xMjIuOSAwLTUuOC00Ny4zIDI0Mi4yIDB6Il19LGNudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmVzcGFjZSIsaWNvbjpbNTEyLDUxMixbXSwiZjViZSIsIk0xODYuMSAzNDMuM2MtOS43IDkuNy05LjcgMjUuMyAwIDM0LjlzMjUuMyA5LjYgMzQuOSAwTDM3OC4zIDIyMS4xYzE5LjMtMTkuMyA1MC42LTE5LjMgNjkuOSAwczE5LjMgNTAuNiAwIDY5LjlMMjk0IDQ0NS4xYzE5LjMgMTkuMyA1MC41IDE5LjMgNjkuOCAwbDAgMCAxMTkuMy0xMTkuMmMzOC42LTM4LjYgMzguNi0xMDEuMSAwLTEzOS43LTM4LjYtMzguNi0xMDEuMi0zOC42LTEzOS43IDBMMTg2LjEgMzQzLjN6TTQzMC43IDIzOC41Yy05LjctOS43LTI1LjMtOS43LTM0LjkgMEwyMzguNSAzOTUuN2MtMTkuMyAxOS4zLTUwLjUgMTkuMy02OS44IDBsMCAwYy05LjYtOS42LTI1LjMtOS43LTM0LjkgMGwwIDBjLTkuNyA5LjYtOS43IDI1LjMgMCAzNC45bDAgMGMzOC42IDM4LjYgMTAxLjEgMzguNiAxMzkuNyAwTDQzMC43IDI3My41YzkuNi05LjcgOS42LTI1LjMgMC0zNC45em0tMjYyIDg3LjNMMzI1LjkgMTY4LjdjOS42LTkuNiA5LjYtMjUuMyAwLTM0LjktOS42LTkuNi0yNS4zLTkuNi0zNC45IDBMMTMzLjcgMjkwLjljLTE5LjMgMTkuMy01MC42IDE5LjMtNjkuOSAwbDAgMGMtMTkuMy0xOS4zLTE5LjMtNTAuNSAwLTY5LjhsMCAwIDE1NC4yLTE1NC4yYy0xOS4zLTE5LjMtNTAuNS0xOS4zLTY5LjggMGwwIDAtMTE5LjIgMTE5LjNjLTM4LjYgMzguNi0zOC42IDEwMS4xIDAgMTM5LjcgMzguNiAzOC42IDEwMS4xIDM4LjYgMTM5LjcgMHpNODEuMyAyNzMuNWM5LjYgOS42IDI1LjMgOS42IDM0LjkgMEwyNzMuNSAxMTYuM2MxOS4zLTE5LjMgNTAuNi0xOS4zIDY5LjggMGwwIDBjOS43IDkuNiAyNS4zIDkuNiAzNC45IDBzOS42LTI1LjMgMC0zNC45Yy0zOC42LTM4LjYtMTAxLjEtMzguNi0xMzkuNyAwTDgxLjMgMjM4LjVjLTkuNiA5LjYtOS42IDI1LjMgMCAzNC45bDAgMHoiXX0sZG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRyZWxsbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4MSIsIk0zOTIuMyAzMkw1Ni4xIDMyYy0zMSAwLTU2LjEgMjUuMS01Ni4xIDU2LS4xIDAgMC00IDAgMzM2IDAgMzAuOSAyNS4xIDU2IDU2IDU2bDMzNi4yIDBjMzAuOC0uMiA1NS43LTI1LjIgNTUuNy01NmwwLTMzNmMuMS0zMC44LTI0LjgtNTUuOC01NS42LTU2ek0xOTcgMzcxLjNjLS4yIDE0LjctMTIuMSAyNi42LTI2LjkgMjYuNmwtODIuNyAwYy0xNC44IC4xLTI2LjktMTEuOC0yNy0yNi42bDAtMjU0LjJjMC0xNC44IDEyLTI2LjkgMjYuOS0yNi45bDgyLjkgMGMxNC44IDAgMjYuOSAxMiAyNi45IDI2LjlsMCAyNTQuMi0uMSAwem0xOTMuMS0xMTJjMCAxNC44LTEyIDI2LjktMjYuOSAyNi45bC04MSAwYy0xNC44IDAtMjYuOS0xMi0yNi45LTI2LjlsMC0xNDIuMWMwLTE0LjggMTItMjYuOSAyNi44LTI2LjlsODEuMSAwYzE0LjggMCAyNi45IDEyIDI2LjkgMjYuOWwwIDE0Mi4xeiJdfSxmbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmlhZGVvIixpY29uOls0NDgsNTEyLFtdLCJmMmE5IiwiTTI3Ni40IDE1MC41bDAgLjdjLTE3LjktNTIuNi00Mi42LTEwMy40LTcwLjgtMTUxLjIgNDMuMyAyOS4yIDY3IDEwMCA3MC44IDE1MC41em0zMi43IDEyMS43YzcuNiAxOC4yIDExIDM3LjUgMTEgNTcgMCA3Ny43LTU3LjggMTQxLTEzNy44IDEzOS40bDMuOC0uM2M3NC4yLTQ2LjcgMTA5LjMtMTE4LjYgMTA5LjMtMjA1LjEgMC0zOC4xLTYuNS03NS45LTE4LjktMTEyIDEgMTEuNyAxIDIzLjcgMSAzNS40IDAgOTEuOC0xOC4xIDI0MS42LTExNi42IDI4MC02NS43LTExLjQtMTExLjMtNjguNi0xMTEuMy0xMzcuNCAwLTc1LjYgNTcuNC0xNDIuMyAxMzUuNC0xNDIuMyAxNi44IDAgMzMuNyAzLjEgNDkuMSA5LjYgMS43LTE1LjEgNi41LTI5LjkgMTMuNC00My4zLTE5LjktNy4yLTQxLjItMTAuNy02Mi41LTEwLjctMTYxLjUgMC0yMzguNyAxOTUuOS0xMjkuOSAzMTMuNyA2Ny45IDc0LjYgMTkyIDczLjkgMjU5LjggMCA1Ni42LTYxLjMgNjAuOS0xNDIuNCAzNi40LTIwMS0xMi43IDgtMjcuMSAxMy45LTQyLjIgMTd6TTQxOC4zIDExLjdjLTMxIDY2LjUtODEuMyA0Ny4yLTExNS44IDgwLjEtMTIuNCAxMi0yMC42IDM0LTIwLjYgNTAuNSAwIDE0LjEgNC41IDI3LjEgMTIgMzguOCA0Ny40LTExIDk4LjMtNDYgMTE4LjItOTAuNy0uNyA1LjUtNC44IDE0LjQtNy4yIDE5LjItMjAuMyAzNS43LTY0LjYgNjUuNi05OS43IDg0LjkgMTQuOCAxNC40IDMzLjcgMjUuOCA1NSAyNS44IDc5IDAgMTEwLjEtMTM0LjYgNTguMS0yMDguNnoiXX0sdW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlYXJjaGVuZ2luIixpY29uOls0NDgsNTEyLFtdLCJmM2ViIiwiTTIxNC42IDEzMC4zbC02Ny4yIDI4LjIgMC0xMTUuMy01NC43IDE5MC4zIDU0LjctMjQuMiAwIDEzMC4zIDY3LjItMjA5LjN6TTEzMS40IDMzLjZsLTEuMyA0LjctMTUuMiA1Mi45Qzc0LjYgMTA2LjcgNDYgMTQ1LjggNDYgMTkxLjUgNDYgMjQzLjggODAuMyAyODcuNCAxMjkuNCAyOTdsMCA1My42QzUxLjUgMzQwLjEtNiAyNzIuNC02IDE5MS42LTYgMTExLjEgNTMuOCA0NC40IDEzMS40IDMzLjZ6TTQ0Mi44IDQ4MC44Yy0xMS4yIDExLjItMjMuMSAxMi4zLTI4LjYgMTAuNS01LjQtMS44LTI3LjEtMTkuOS02MC40LTQ0LjQtMzMuMy0yNC42LTMzLjYtMzUuNy00My01Ni43LTkuNC0yMC45LTMwLjQtNDIuNi01Ny41LTUyLjRsLTkuNy0xNC43Yy0yNC43IDE2LjktNTMgMjYuOS04MS4zIDI4LjdsMi4xLTYuNiAxNS45LTQ5LjVjNDYuNS0xMS45IDgwLjktNTQgODAuOS0xMDQuMiAwLTU0LjUtMzguNC0xMDIuMS05Ni0xMDcuMWwwLTUyLjFjODMuMiA1LjEgMTQ4LjggNzQuNSAxNDguOCAxNTkuMyAwIDMzLjYtMTEuMiA2NC43LTI5IDkwLjRsMTQuNiA5LjZjOS44IDI3LjEgMzEuNSA0OCA1Mi40IDU3LjRzMzIuMiA5LjcgNTYuOCA0M2MyNC42IDMzLjIgNDIuNyA1NC45IDQ0LjUgNjAuM3MuNyAxNy4zLTEwLjUgMjguNXptLTkuOS0xNy45YzAtNC40LTMuNi04LTgtOHMtOCAzLjYtOCA4IDMuNiA4IDggOCA4LTMuNiA4LTh6Il19LHBudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYXlwYWwiLGljb246WzM4NCw1MTIsW10sImYxZWQiLCJNMTExLjkgMjk1LjljLTMuNSAxOS4yLTE3LjQgMTA4LjctMjEuNSAxMzQtLjMgMS44LTEgMi41LTMgMi41bC03NC42IDBjLTcuNiAwLTEzLjEtNi42LTEyLjEtMTMuOUw1OS4zIDQ2LjZjMS41LTkuNiAxMC4xLTE2LjkgMjAtMTYuOSAxNTIuMyAwIDE2NS4xLTMuNyAyMDQgMTEuNCA2MC4xIDIzLjMgNjUuNiA3OS41IDQ0IDE0MC4zLTIxLjUgNjIuNi03Mi41IDg5LjUtMTQwLjEgOTAuMy00My40IC43LTY5LjUtNy03NS4zIDI0LjJ6TTM1Ny42IDE1MmMtMS44LTEuMy0yLjUtMS44LTMgMS4zLTIgMTEuNC01LjEgMjIuNS04LjggMzMuNi0zOS45IDExMy44LTE1MC41IDEwMy45LTIwNC41IDEwMy45LTYuMSAwLTEwLjEgMy4zLTEwLjkgOS40LTIyLjYgMTQwLjQtMjcuMSAxNjkuNy0yNy4xIDE2OS43LTEgNy4xIDMuNSAxMi45IDEwLjYgMTIuOWw2My41IDBjOC42IDAgMTUuNy02LjMgMTcuNC0xNC45IC43LTUuNC0xLjEgNi4xIDE0LjQtOTEuMyA0LjYtMjIgMTQuMy0xOS43IDI5LjMtMTkuNyA3MSAwIDEyNi40LTI4LjggMTQyLjktMTEyLjMgNi41LTM0LjggNC42LTcxLjQtMjMuOC05Mi42eiJdfSxobnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWJsdWVza3kiLGljb246WzQ0OCw1MTIsW10sImU2YTMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDI0Ny40YzE0LjUtMzAgNTQtODUuOCA5MC43LTExMy4zIDI2LjUtMTkuOSA2OS4zLTM1LjIgNjkuMyAxMy43IDAgOS44LTUuNiA4Mi4xLTguOSA5My44LTExLjQgNDAuOC01MyA1MS4yLTkwIDQ0LjkgNjQuNyAxMSA4MS4yIDQ3LjUgNDUuNiA4NC02Ny41IDY5LjMtOTctMTcuNC0xMDQuNi0zOS42bC0uMy0uOWMtLjktMi42LTEuNC00LjEtMS44LTQuMXMtLjkgMS41LTEuOCA0LjFjLS4xIC4zLS4yIC42LS4zIC45LTcuNiAyMi4yLTM3LjEgMTA4LjgtMTA0LjYgMzkuNi0zNS41LTM2LjUtMTkuMS03MyA0NS42LTg0LTM3IDYuMy03OC42LTQuMS05MC00NC45LTMuMy0xMS43LTguOS04NC04LjktOTMuOCAwLTQ4LjkgNDIuOS0zMy41IDY5LjMtMTMuNyAzNi43IDI3LjUgNzYuMiA4My40IDkwLjcgMTEzLjN6Il19LG1udD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkLWFuZC1kLWJleW9uZCIsaWNvbjpbNjQwLDUxMixbXSwiZjZjYSIsIk0zMTMuOCAyNDEuNWMxMy44IDAgMjEtMTAuMSAyNC44LTE3LjktMS0xLjEtNS00LjItNy40LTYuNi0yLjQgNC4zLTguMiAxMC43LTEzLjkgMTAuNy0xMC4yIDAtMTUuNC0xNC43LTMuMi0yNi42LS41LS4yLTQuMy0xLjgtOCAyLjQgMC0zIDEtNS4xIDIuMS02LjYtMy41IDEuMy05LjggNS42LTExLjQgNy45IC4yLTUuOCAxLjYtNy41IC42LTlsLS4yLS4ycy04LjUgNS42LTkuMyAxNC43YzAgMCAxLjEtMS42IDIuMS0xLjkgLjYtLjMgMS4zIDAgLjYgMS45LS4yIC42LTUuOCAxNS43IDUuMSAyNi0uNi0xLjYtMS45LTcuNiAyLjQtMS45LS4zIC4xIDUuOCA3LjEgMTUuNyA3LjF6bTUyLjQtMjEuMWMwLTQtNC45LTQuNC01LjYtNC41IDIgMy45IC45IDcuNSAuMiA5IDIuNS0uNCA1LjQtMS42IDUuNC00LjV6bTEwLjMgNS4yYzAtNi40LTYuMi0xMS40LTEzLjUtMTAuNyA4IDEuMyA1LjYgMTMuOC01IDExLjQgMy43LTIuNiAzLjItOS45LTEuMy0xMi41IDEuNCA0LjItMyA4LjItNy40IDQuNi0yLjQtMS45LTgtNi42LTEwLjYtOC42LTIuNC0yLjEtNS41LTEtNi42LTEuOC0xLjMtMS4xLS41LTMuOC0yLjItNS0xLjYtLjgtMy0uMy00LjgtMS0xLjYtLjYtMi43LTEuOS0yLjYtMy41LTIuNSA0LjQgMy40IDYuMyA0LjUgOC41IDEgMS45LS44IDQuOCA0IDguNSAxNC44IDExLjYgOS4xIDggMTAuNCAxOC4xIC42IDQuMyA0LjIgNi43IDYuNCA3LjQtMi4xLTEuOS0yLjktNi40IDAtOS4zIDAgMTMuOSAxOS4yIDEzLjMgMjMuMSA2LjQtMi40IDEuMS03LS4yLTktMS45IDcuNyAxIDE0LjItNC4xIDE0LjYtMTAuNnptLTM5LjQtMTguNGMyIC44IDEuNiAuNyA2LjQgNC41IDEwLjItMjQuNSAyMS43LTE1LjcgMjItMTUuNSAyLjItMS45IDkuOC0zLjggMTMuOC0yLjctMi40LTIuNy03LjUtNi4yLTEzLjMtNi4yLTQuNyAwLTcuNCAyLjItOCAxLjMtLjgtMS40IDMuMi0zLjQgMy4yLTMuNC01LjQgLjItOS42IDYuNy0xMS4yIDUuOS0xLjEtLjUgMS40LTMuNyAxLjQtMy43LTUuMSAyLjktOS4zIDkuMS0xMC4yIDEzIDQuNi01LjggMTMuOC05LjggMTkuNy05LTEwLjUgLjUtMTkuNSA5LjctMjMuOCAxNS44em0yNDIuNSA1MS45Yy0yMC43IDAtNDAgMS4zLTUwLjMgMi4xbDcuNCA4LjIgMCA3Ny4yLTcuNCA4LjJjMTAuNCAuOCAzMC45IDIuMSA1MS42IDIuMSA0Mi4xIDAgNTkuMS0yMC43IDU5LjEtNDguOSAwLTI5LjMtMjMuMi00OC45LTYwLjQtNDguOXptLTE1LjEgNzUuNmwwLTUzLjNjMzAuMS0zLjMgNDYuOCAzLjggNDYuOCAyNi4zIDAgMjUuNi0yMS40IDMwLjItNDYuOCAyN3pNMzAxLjYgMTgxYy0xLTMuNC0uMi02LjkgMS4xLTkuNCAxIDMgMi42IDYuNCA3LjUgOS0uNS0yLjQtLjItNS42IC41LTgtMS40LTUuNCAyLjEtOS45IDYuNC05LjkgNi45IDAgOC41IDguOCA0LjcgMTQuNCAyLjEgMy4yIDUuNSA1LjYgNy43IDcuOCAzLjItMy43IDUuNS05LjUgNS41LTEzLjggMC04LjItNS41LTE1LjktMTYuNy0xNi41LTIwLS45LTIwLjIgMTYuNi0yMCAxOC45IC41IDUuMiAzLjQgNy44IDMuMyA3LjV6bS0uNCA2Yy0uNSAxLjgtNyAzLjctMTAuMiA2LjkgNC44LTEgNy0uMiA3LjggMS44IC41IDEuNC0uMiAzLjQtLjUgNS42IDEuNi0xLjggNy01LjUgMTEtNi4yLTEtLjMtMy40LS44LTQuMy0uOCAyLjktMy40IDkuMy00LjUgMTIuOC0zLjctMi4yLS4yLTYuNyAxLjEtOC41IDIuNiAxLjYgLjMgMyAuNiA0LjMgMS4xLTIuMSAuOC00LjggMy40LTUuOCA2LjEgNy01IDEzLjEgNS4yIDcgOC4yIC44IC4yIDIuNyAwIDMuNS0uNS0uMyAxLjEtMS45IDMtMyAzLjQgMi45IDAgNy0xLjkgOC4yLTQuNiAwIDAtMS44IC42LTIuNi0uMnMuMy00LjMgLjMtNC4zYy0yLjMgMi45LTMuNC0xLjMtMS4zLTQuMi0xLS4zLTMuNS0uNi00LjYtLjUgMy4yLTEuMSAxMC40LTEuOCAxMS4yLS4zIC42IDEuMS0xIDMuNC0xIDMuNCA0LS41IDguMyAxLjEgNi43IDUuMSAyLjktMS40IDUuNS01LjkgNC44LTEwLjQtLjMgMS0xLjYgMi40LTIuOSAyLjcgLjItMS40LTEtMi4yLTEuOS0yLjYgMS43LTkuNi0xNC42LTE0LjItMTQuMS0yMy45LTEgMS4zLTEuOCA1LS44IDcuMSAyLjcgMy4yIDguNyA2LjcgMTAuMSAxMi4yLTIuNi02LjQtMTUuMS0xMS40LTE0LjYtMjAuMi0xLjYgMS42LTIuNiA3LjgtMS4zIDExIDIuNCAxLjQgNC41IDMuOCA0LjggNi4xLTIuMi01LjEtMTEuNC02LjEtMTMuOS0xMi4yLS42IDIuMi0uMyA1IDEgNi43IDAgMC0yLjItLjgtNy0uNiAxLjcgLjYgNS4xIDMuNSA0LjggNS4yem0yNS45IDcuNGMtMi43IDAtMy41LTIuMS00LjItNC4zIDMuMyAxLjMgNC4yIDQuMyA0LjIgNC4zem0zOC45IDMuN2wtMS0uNmMtMS4xLTEtMi45LTEuNC00LjctMS40LTIuOSAwLTUuOCAxLjMtNy41IDMuNC0uOCAuOC0xLjQgMS44LTIuMSAyLjZsMCAxNS43YzMuNSAyLjYgNy4xLTIuOSAzLTcuMiAxLjUgLjMgNC42IDIuNyA1LjEgMy4yIDAgMCAyLjYtLjUgNS0uNSAyLjEgMCAzLjkgLjMgNS42IDEuMWwwLTE4LjRjLTEuMSAuNS0yLjIgMS0yLjcgMS40bC0uNyAuN3pNNzkuOSAzMDUuOWMxNy4yLTQuNiAxNi4yLTE4IDE2LjItMTkuOSAwLTIwLjYtMjQuMS0yNS0zNy0yNWwtNTYuMSAwIDguMyA4LjYgMCAyOS41LTExLjMgMCAxMS40IDE0LjYgMCAzMi4zLTguNCA4LjZjNjEuNyAwIDczLjggMS41IDg2LjQtNS45IDYuNy00IDkuOS05LjggOS45LTE3LjYgMC01LjEgMi42LTE4LjgtMTkuNC0yNS4yek0zOC42IDI3OC40YzIwIDAgMjkuNi0uOCAyOS42IDkuMWwwIDNjMCAxMi4xLTE5IDguOC0yOS42IDguOGwwLTIwLjl6bTAgNTkuMmwwLTIyLjZjMTIuMiAwIDMyLjctMi4zIDMyLjcgOC44bDAgNC41IC4yIDBjMCAxMS4yLTEyLjUgOS4zLTMyLjkgOS4zem0xMDEuMi0xOS4zbDIzLjEgLjIgMC0uMiAxNC4xLTIxLjItMzcuMiAwIDAtMTQuOSA1Mi40IDAtMTQuMS0yMSAwLS4yLTczLjUgLjIgNy40IDguMiAwIDc3LjEtNy40IDguMiA4MS4yIDAgMTQuMS0yMS4yLTYwLjEgLjIgMC0xNS40em0yMTQuNy02MC4xYy03My45IDAtNzcuNSA5OS4zLS4zIDk5LjMgNzcuOSAwIDc0LjEtOTkuMyAuMy05OS4zem0tLjMgNzcuNWMtMzcuNCAwLTM2LjktNTUuMyAuMi01NS4zIDM2LjggLjEgMzguOCA1NS4zLS4yIDU1LjN6bS05MS4zLTguM2w0NC4xLTY2LjItNDEuNyAwIDYuMSA3LjItMjAuNSAzNy4yLS4zIDAtMjEtMzcuMiA2LjQtNy4yLTQ0LjkgMCA0NC4xIDY1LjggLjIgMTkuNC03LjcgOC4yIDQyLjYgMC03LjItOC4yLS4yLTE5ek0yMzQuNSAxNzYuMWMxLjYgMS4zIDIuOSAyLjQgMi45IDYuNmwwIDM4LjhjMCA0LjItLjggNS4zLTIuNyA2LjQtLjEgLjEtNy41IDQuNS03LjkgNC42bDM1LjEgMGMxMCAwIDE3LjQtMS41IDI2LTguNi0uNi01IC4yLTkuNSAuOC0xMiAwLS4yLTEuOCAxLjQtMi43IDMuNSAwLTUuNyAxLjYtMTUuNCA5LjYtMjAuNS0uMSAwLTMuNy0uOC05IDEuMSAyLTMuMSAxMC03LjkgMTAuNC03LjktOC4yLTI2LTM4LTIyLjktMzIuMi0yMi45LTMwLjkgMC0zMi42IC4zLTM5LjktNCAuMSAuOCAuNSA4LjIgOS42IDE0Ljl6bTIxLjUgNS41YzQuNiAwIDIzLjEtMy4zIDIzLjEgMTcuMyAwIDIwLjctMTguNCAxNy4zLTIzLjEgMTcuM2wwLTM0LjZ6bTIyOC45IDc5LjZsNyA4LjMgMCA0Mi41LS4zIDBjLTUuNC0xNC40LTQyLjMtNDEuNS00NS4yLTUwLjlsLTMxLjYgMCA3LjQgOC41IDAgNzYuOS03LjIgOC4zIDM5IDAtNy40LTguMiAwLTQ3LjQgLjMgMGMzLjcgMTAuNiA0NC41IDQyLjkgNDguNSA1NS42bDIxLjMgMCAwLTg1LjIgNy40LTguMy0zOS4yLS4xek0zNzguMiAxNjUuMWMtMzIuMiAwLTMyLjggLjItMzkuOS00IC4xIC43IC41IDguMyA5LjYgMTQuOSAzLjEgMiAyLjkgNC4zIDIuOSA5LjUgMS44LTEuMSAzLjgtMi4yIDYuMS0zLTEuMSAxLjEtMi43IDIuNy0zLjUgNC41IDEtMS4xIDcuNS01LjEgMTQuNi0zLjUtMS42IC4zLTQgMS4xLTYuMSAyLjkgLjEgMCAyLjEtMS4xIDcuNS0uM2wwLTQuM2M0LjcgMCAyMy4xLTMuNCAyMy4xIDE3LjMgMCAyMC41LTE4LjUgMTcuMy0xOS43IDE3LjMgNS43IDQuNCA1LjggMTIgMi4yIDE2LjNsLjMgMGMzMy40IDAgMzYuNy0yNy4zIDM2LjctMzQgMC0zLjgtMS4xLTMyLTMzLjgtMzMuNnoiXX0sZ250PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pY3Jvc29mdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNjYSIsIk0wIDMybDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6bTIzMy40IDBsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnpNMCAyNjUuNGwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42em0yMzMuNCAwbDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6Il19LHhudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbHkiLGljb246WzMyMCw1MTIsW10sImY0MTciLCJNMTY1LjkgNDI3LjhjMTIuOSAxMS43IDMzLjcgMzMuMyAzMy4yIDUwLjcgMCAuOC0uMSAxLjYtLjEgMi41LTEuOCAxOS44LTE4LjggMzEuMS0zOS4xIDMxLTI1LS4xLTM5LjktMTYuOC0zOC43LTM1LjggMS0xNi4yIDIwLjUtMzYuNyAzMi40LTQ3LjYgMi4zLTIuMSAyLjctMi43IDUuNi0zLjYgMy40IDAgMy45IC4zIDYuNyAyLjh6TTMwMCA2Ny4zYy0xNi4zLTI1LjctMzguNi00MC42LTYzLjMtNTIuMS0yNS41LTEwLjctNTQuNi0xNS40LTc2LjYtMTUuMi00NC4xIDAtNzEuMiAxMy4yLTgxLjEgMTcuMy01My42IDI3LjktODQuNCA2OS45LTgyLjkgMTQxLjMgNy4xIDgyLjIgOTcgMTc2IDE1NS44IDIzMy44IDEuNyAxLjYgNC41IDQuNSA2LjIgNS4xbDMuMyAuMWMyLjEtLjcgMS44LS41IDMuNS0yLjEgNTIuMy00OS4yIDE0MC43LTE0NS44IDE1NS45LTIxNS43IDctMzkuMiAzLjEtNzIuNS0yMC44LTExMi41ek0xNTQuOSAzNTEuOWMtMjgtNTEuMS02NS4yLTEzMC43LTY5LjMtMTg5LTMuNC00Ny41IDExLjQtMTMxLjIgNjkuMy0xMzYuN2wwIDMyNS43ek0yOTYuOCAxODBjLTE2LjQgNTYuOC03Ny4zIDEyOC0xMTguOSAxNzAuMyAyNy44LTUxLjkgNjUuMi0xMzMuMyA2Ny4yLTE5MS45IDEuNi00NS45LTkuOC0xMDUuOC00OC0xMzEuNCA4OC44IDE4LjMgMTE1LjUgOTguMSA5OS43IDE1M3oiXX0sYm50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLXN0cmlwZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFmNSIsIk00OTIuNCAyMjAuOGMtOC45IDAtMTguNyA2LjctMTguNyAyMi43bDM2LjcgMGMwLTE2LTkuMy0yMi43LTE4LTIyLjd6TTM3NSAyMjMuNGMtOC4yIDAtMTMuMyAyLjktMTcgN2wuMiA1Mi44YzMuNSAzLjcgOC41IDYuNyAxNi44IDYuNyAxMy4xIDAgMjEuOS0xNC4zIDIxLjktMzMuNCAwLTE4LjYtOS0zMy4yLTIxLjktMzMuMXpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyMi4yIDI4MS4xYzAgMjUuNi0yMC4zIDQwLjEtNDkuOSA0MC4zLTEyLjIgMC0yNS42LTIuNC0zOC44LTguMWwwLTMzLjljMTIgNi40IDI3LjEgMTEuMyAzOC45IDExLjMgNy45IDAgMTMuNi0yLjEgMTMuNi04LjcgMC0xNy01NC0xMC42LTU0LTQ5LjkgMC0yNS4yIDE5LjItNDAuMiA0OC00MC4yIDExLjggMCAyMy41IDEuOCAzNS4zIDYuNWwwIDMzLjRjLTEwLjgtNS44LTI0LjUtOS4xLTM1LjMtOS4xLTcuNSAwLTEyLjEgMi4yLTEyLjEgNy43IDAgMTYgNTQuMyA4LjQgNTQuMyA1MC43ek0xOTEgMjI0LjVsLTI3IDAgMCA1MC41YzAgMjAuOSAyMi41IDE0LjQgMjcgMTIuNmwwIDI4LjljLTQuNyAyLjYtMTMuMyA0LjctMjQuOSA0LjctMjEuMSAwLTM2LjktMTUuNS0zNi45LTM2LjVsLjItMTEzLjkgMzQuNy03LjQgMCAzMC44IDI2LjkgMCAwIDMwLjN6bTc0IDIuNGMtNC41LTEuNS0xOC43LTMuNi0yNy4xIDcuNGwwIDg0LjQtMzUuNSAwIDAtMTI0LjUgMzAuNyAwIDIuMiAxMC41YzguMy0xNS4zIDI0LjktMTIuMiAyOS42LTEwLjVsLjEgMCAwIDMyLjd6bTQ0LjEgOTEuOGwtMzUuNyAwIDAtMTI0LjUgMzUuNyAwIDAgMTI0LjV6bTAtMTQyLjlsLTM1LjcgNy42IDAtMjguOSAzNS43LTcuNiAwIDI4Ljl6bTc0LjEgMTQ1LjVjLTEyLjQgMC0yMC01LjMtMjUuMS05bC0uMSA0MC4yLTM1LjUgNy41IDAtMTY1LjggMzEuMyAwIDEuOCA4LjhjNC45LTQuNSAxMy45LTExLjEgMjcuOC0xMS4xIDI0LjkgMCA0OC40IDIyLjUgNDguNCA2My44IDAgNDUuMS0yMy4yIDY1LjUtNDguNiA2NS42em0xNjAuNC01MS41bC02OS41IDBjMS42IDE2LjYgMTMuOCAyMS41IDI3LjYgMjEuNSAxNC4xIDAgMjUuMi0zIDM0LjktNy45bDAgMjguNmMtOS43IDUuMy0yMi40IDkuMi0zOS40IDkuMi0zNC42IDAtNTguOC0yMS43LTU4LjgtNjQuNSAwLTM2LjIgMjAuNS02NC45IDU0LjMtNjQuOSAzMy43IDAgNTEuMyAyOC43IDUxLjMgNjUuMSAwIDMuNS0uMyAxMC45LS40IDEyLjl6Il19LHZudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b3JkcHJlc3Mtc2ltcGxlIixpY29uOls1MTIsNTEyLFtdLCJmNDExIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzMgMjU2YzAtMzIuMyA2LjktNjMgMTkuMy05MC43TDE1OC43IDQ1Ni43Qzg0LjMgNDIwLjUgMzMgMzQ0LjIgMzMgMjU2ek0yNTYgNDc5Yy0yMS45IDAtNDMtMy4yLTYzLTkuMWw2Ni45LTE5NC40IDY4LjUgMTg3LjhjLjUgMS4xIDEgMi4xIDEuNiAzLjEtMjMuMSA4LjEtNDggMTIuNi03NCAxMi42em0zMC43LTMyNy41YzEzLjQtLjcgMjUuNS0yLjEgMjUuNS0yLjEgMTItMS40IDEwLjYtMTkuMS0xLjQtMTguNCAwIDAtMzYuMSAyLjgtNTkuNCAyLjgtMjEuOSAwLTU4LjctMi44LTU4LjctMi44LTEyLS43LTEzLjQgMTcuNy0xLjQgMTguNCAwIDAgMTEuNCAxLjQgMjMuNCAyLjFsMzQuNyA5NS4yLTQ4LjggMTQ2LjMtODEuMi0yNDEuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTQuMiAwLTkuMS0uMS0xNC40LS4zIDM5LjktNjAuNSAxMDguNC0xMDAuNSAxODYuMy0xMDAuNSA1OCAwIDExMC45IDIyLjIgMTUwLjYgNTguNS0xLS4xLTEuOS0uMi0yLjktLjItMjEuOSAwLTM3LjQgMTkuMS0zNy40IDM5LjYgMCAxOC40IDEwLjYgMzMuOSAyMS45IDUyLjMgOC41IDE0LjggMTguNCAzMy45IDE4LjQgNjEuNSAwIDE5LjEtNy4zIDQxLjItMTcgNzIuMWwtMjIuMiA3NC4zLTgwLjctMjM5LjZ6bTgxLjQgMjk3LjJsNjguMS0xOTYuOWMxMi43LTMxLjggMTctNTcuMiAxNy03OS45IDAtOC4yLS41LTE1LjgtMS41LTIyLjkgMTcuNCAzMS44IDI3LjMgNjguMiAyNy4zIDEwNyAwIDgyLjMtNDQuNiAxNTQuMS0xMTAuOSAxOTIuN3oiXX0seW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlbGxzeSIsaWNvbjpbNjQwLDUxMixbXSwiZjIxMyIsIk01NDAgMjM3LjNjMy4xLTEyLjMgNC4zLTI0LjggNC4zLTM3LjQgMC05Mi41LTc1LjQtMTY3LjktMTY3LjktMTY3LjktNzcuMiAwLTE0NC42IDUzLTE2MyAxMjcuOC0xNS4zLTEzLjItMzQuOS0yMC41LTU1LjItMjAuNS00Ni4zIDAtODQgMzcuNy04NCA4NCAwIDcuNCAuOSAxNSAzLjEgMjIuNC00Mi45IDIwLjItNzAuOCA2My43LTcwLjggMTExLjIgMCA2OCA1NS41IDEyMy4yIDEyMy4yIDEyMy4ybDM4MS4yIDBjNjcuNyAwIDEyMy4yLTU1LjIgMTIzLjItMTIzLjIgMC01Ni40LTM4LjktMTA2LTk0LjEtMTE5LjV6TTIwMC4yIDQwMS42YzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMwLjkgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTExMC45YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzAuOSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxMTAuOXptODkuNSAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMwLjkgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTEzMS41YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzAuOSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxMzEuNXptODkuNSAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTMxIDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xNjIuN2MwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMxIDBjOC4zIDAgMTUuMyA3IDE1LjMgMTUuM2wwIDE2Mi43em04NyAwYzAgOC4zLTcgMTUuMy0xNS4zIDE1LjNsLTI4LjUgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTIyNC42YzAtOC42IDctMTUuNiAxNS4zLTE1LjZsMjguNSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjZsMCAyMjQuNnoiXX0sd250PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRhc2hjdWJlIixpY29uOls0NDgsNTEyLFtdLCJmMjEwIiwiTTMyNi45IDEwNGwtMjE2LjIgMGMtNTEuMSAwLTkxLjIgNDMuMy05MS4yIDkzLjVsMCAyMjkuNWMwIDUwLjUgNDAuMSA4NSA5MS4yIDg1bDIyNy4yIDBjNTEuMSAwIDkxLjItMzQuNSA5MS4yLTg1bDAtNDI3LTEwMi4yIDEwNHpNMTU0LjIgNDE2LjVjLTE3LjcgMC0zMi40LTE1LjEtMzIuNC0zMi44bDAtMTQyLjljMC0xNy43IDE0LjctMzIuNSAzMi40LTMyLjVsMTQwLjcgMGMxNy43IDAgMzIgMTQuOCAzMiAzMi41bDAgMTIzLjUgNTEuMSA1Mi4zLTIyMy44IDAgMC0uMXoiXX0sTW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdHRlciIsaWNvbjpbMzg0LDUxMixbXSwiZjQyNiIsIk02Ni40IDMyMi41bC01MC40IDAgMC0zMjIuNSA1MC40IDAgMCAzMjIuNXpNMTY2LjkgNzYuMWwtNTAuNCAwIDAgNDM1LjkgNTAuNCAwIDAtNDM1Ljl6bTEwMC42IDBsLTUwLjQgMCAwIDQzNS45IDUwLjQgMCAwLTQzNS45ek0zNjggNzZsLTUwLjQgMCAwIDI0NyA1MC40IDAgMC0yNDd6Il19LHpudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b2xmLXBhY2stYmF0dGFsaW9uIixpY29uOls0NDgsNTEyLFtdLCJmNTE0IiwiTTIzNi4yIDQ3MS41bDEwLjYgMTUuOCA1LjMtMTIuMyA1LjMgNyAwIDI5LjljMjEuMS03LjkgMjEuMS02Ni45IDI1LjUtOTcuMiA0LjYtMzEuOS0uOS05Mi44IDgxLjQtMTQ5LjEtOC45LTIzLjYtMTItNDkuNC0yLjYtODAgMjcuOSAzLjQgNTMuOSAxMC42IDYzLjMgNTQuMWwtMzAuMyA4LjRjMTEuMSAyMyAxNyA0Ni44IDEzLjIgNzIuMWwtMjcuMy03LTYuMiAzMy40LTE4LjUtNy04LjggMzMuNC0xOS40LTcgMjYuNCAyMS4xIDguOC0yOC4yIDI0LjYgNS4yIDctMzUuNiAyNi40IDE0LjVjLjItMjAgNy01OC4xLTguOC04NC41bDI2LjQgNS4zYzQtMjIuMS0yLjQtMzkuMi03LjktNTYuN2wyMi40IDkuN2MtLjQtMjUuMS0yOS45LTU2LjgtNjEuNi01OC41LTIwLjItMS4xLTU2LjctMjUuMi01NC4xLTUxLjkgMi0xOS45IDE3LjQtNDIuNiA0My4xLTQ5LjctNDQgMzYuNS05LjcgNjcuMyA1LjMgNzMuNSA0LjQtMTEuNCAxNy41LTY5LjEgMC0xMzAuMi00MC40IDIyLjktODkuNyA2NS4xLTkzLjIgMTQ3LjhsLTU4IDM4LjctMy41IDkzLjIgMTA3LjMtNTkuOCA3IDctMTcuNiAzLjUtNDQgMzguNy0xNS44LTUuMy0yOC4xIDQ5LjMtMy41IDExOS42IDIxLjEgMTUuOC0zMi41IDE1LjgtMzIuNi0xNS44IDIxLjEtMTUuOC0zLjUtMTE5LjYtMjguMi00OS4zLTE1LjggNS4zLTQ0LTM4LjctMTcuNi0zLjUgNy03IDEwNy4zIDU5LjgtMy41LTkzLjMtNTguMS0zOC43Yy0zLjUtODIuOC01Mi43LTEyNS05My4yLTE0Ny45LTE3LjUgNjEuMS00LjQgMTE4LjggMCAxMzAuMiAxNS02LjIgNDkuMy0zNyA1LjMtNzMuNSAyNS43IDcuMSA0MS4xIDI5LjggNDMuMSA0OS43IDIuNiAyNi43LTMzLjkgNTAuOC01NC4xIDUxLjktMzEuNyAxLjctNjEuMiAzMy40LTYxLjYgNTguNWwyMi40LTkuN0MxMy40IDIyNC43IDcgMjQxLjggMTEgMjYzLjlsMjYuNC01LjNjLTE1LjggMjYuNC05LjEgNjQuNC04LjggODQuNGwyNi40LTE0LjUgNyAzNS42IDI0LjYtNS4zIDguOCAyOC4yIDI2LjQtMjEuMS0xOS40IDctOC44LTMzLjQtMTguNSA3LTYuMi0zMy40LTI3LjMgN0MzOCAyOTQuOCA0My44IDI3MSA1NSAyNDhsLTMwLjMtOC40YzkuNC00My41IDM1LjUtNTAuOCA2My4zLTU0LjEgOS40IDMwLjYgNi4yIDU2LjUtMi42IDgwLjEgODIuMyA1Ni4zIDc2LjggMTE3LjIgODEuNCAxNDkuMSA0LjQgMzAuMyA0LjQgODkuMyAyNS41IDk3LjJsMC0yOS44IDUuMy03IDUuMyAxMi4zIDEwLjYtMTUuOCAxMS40IDIxLjEgMTEuNC0yMS4xIDAgMHptNzkuMi05NUwyOTkuNSAzNjZjNy41LTQuNCAxMy44LTguNCAxOS40LTEyLjMtLjYgNy4yLS4zIDEzLjgtMy41IDIyLjhsMCAwem0yOC4yLTQ5LjNjLS40IDEwLjktLjkgMjEuNy0xLjggMzEuNy03LjgtMS45LTE1LjYtMy44LTIxLjEtNyA4LjItNy45IDE1LjYtMTYuMyAyMi45LTI0LjdsMCAwem0yNC42IDUuM2MwLTEzLjQtMi4xLTI0LjItNS4zLTMzLjQtNS41IDkuNS0xMS43IDE4LjYtMTguNSAyNy4zbDIzLjggNi4yem0zLjUtODAuOWMxOS40IDEyLjggMjcuOCAzMy43IDI5LjkgNTYuMy0xMi4zLTQuNS0yNC42LTkuMy0zNy0xMC42IDUuMS0xMiA2LjYtMjguMSA3LTQ1LjdsMCAwem0tMS44LTQ1LjdjLjggMTQuMyAxLjggMjguOCAxLjggNDIuMiAxOS4yLTguMSAyOS44LTkuNyA0NC0xNC4xLTEwLjYtMTktMjcuMi0yNS41LTQ1LjgtMjguMmwwIDB6TTEzNC4yIDM3Ni41TDE1MCAzNjZjLTcuNS00LjQtMTMuOC04LjQtMTkuNC0xMi4zIC42IDcuMyAuMyAxMy45IDMuNSAyMi45bDAgMHpNMTA2IDMyNy4zYy40IDEwLjkgLjkgMjEuNyAxLjggMzEuNyA3LjgtMS45IDE1LjYtMy44IDIxLjEtNy04LjItNy45LTE1LjYtMTYuMy0yMi45LTI0Ljd6bS0yNC42IDUuM2MwLTEzLjQgMi0yNC4yIDUuMy0zMy40IDUuNSA5LjUgMTEuNyAxOC42IDE4LjUgMjcuM2wtMjMuOCA2LjJ6bS0zLjUtODAuOWMtMTkuNCAxMi44LTI3LjggMzMuNy0yOS45IDU2LjMgMTIuMy00LjUgMjQuNi05LjMgMzctMTAuNi01LTEyLTYuNi0yOC4xLTctNDUuN2wtLjEgMHptMS44LTQ1LjdjLS44IDE0LjMtMS44IDI4LjgtMS44IDQyLjItMTkuMi04LjEtMjkuOC05LjctNDQtMTQuMSAxMC42LTE5IDI3LjItMjUuNSA0NS44LTI4LjF6Il19LGtudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsYXN0Zm0iLGljb246WzUxMiw1MTIsW10sImYyMDIiLCJNMjI1LjggMzY3LjFsLTE4LjgtNTFzLTMwLjUgMzQtNzYuMiAzNGMtNDAuNSAwLTY5LjItMzUuMi02OS4yLTkxLjUgMC03Mi4xIDM2LjQtOTcuOSA3Mi4xLTk3LjkgNjYuNSAwIDc0LjggNTMuMyAxMDAuOSAxMzQuOSAxOC44IDU2LjkgNTQgMTAyLjYgMTU1LjQgMTAyLjYgNzIuNyAwIDEyMi0yMi4zIDEyMi04MC45IDAtNzIuOS02Mi43LTgwLjYtMTE1LTkyLjEtMjUuOC01LjktMzMuNC0xNi40LTMzLjQtMzQgMC0xOS45IDE1LjgtMzEuNyA0MS42LTMxLjcgMjguMiAwIDQzLjQgMTAuNiA0NS43IDM1LjhsNTguNi03Yy00LjctNTIuOC00MS4xLTc0LjUtMTAwLjktNzQuNS01Mi44IDAtMTA0LjQgMTkuOS0xMDQuNCA4My45IDAgMzkuOSAxOS40IDY1LjEgNjggNzYuOCA0NC45IDEwLjYgNzkuOCAxMy44IDc5LjggNDUuNyAwIDIxLjctMjEuMSAzMC41LTYxIDMwLjUtNTkuMiAwLTgzLjktMzEuMS05Ny45LTczLjktMzItOTYuOC00My42LTE2My0xNjEuMy0xNjMtODYuMSAwLTEzMS44IDU0LjUtMTMxLjggMTQ3LjIgMCA4OS4xIDQ1LjcgMTM3LjIgMTI3LjkgMTM3LjIgNjYuMiAwIDk3LjktMzEuMSA5Ny45LTMxLjF6Il19LFNudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9wd2FyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjViNSIsIk00MDMuNSA0NTUuNGMtNDIuNiAzMS43LTk0LjQgNDguNy0xNDcuNSA0OC42LTEzNy4yIDAtMjQ4LTExMS0yNDgtMjQ4IDAtMTM3LjIgMTExLTI0OCAyNDgtMjQ4IDYxLjItLjEgMTIwLjIgMjIuNiAxNjUuNyA2My41IC42IC41IC45IDEuMiAxLjEgMS45cy4xIDEuNS0uMyAyLjItLjggMS4zLTEuNSAxLjYtMS40IC41LTIuMiAuNGMtMTguOC0yLjUtMzcuNy0zLjctNTYuNy0zLjctMTI5LjQgMC0yMjIuNCA1My41LTIyMi40IDE1NS40IDAgMTA5IDkyLjEgMTQ1LjkgMTc2LjggMTc4LjcgMzMuNiAxMyA2NS40IDI1LjQgODcgNDEuNiAuNCAuMyAuOCAuOCAxLjEgMS4zcy40IDEgLjQgMS42LS4xIDEuMS0uNCAxLjYtLjYgLjktMS4xIDEuM2wtLjEgMHpNNTAzIDIzMy4xYy0uMS0uOS0uNS0xLjgtMS4zLTIuNC01MS44LTQzLTkzLjYtNjAuNS0xNDQuNS02MC41LTg0LjEgMC04MC4zIDUyLjItODAuMyA1My42IDAgNDIuNiA1Mi4xIDYyIDExMi4zIDg0LjUgMzEuMSAxMS42IDYzLjIgMjMuNiA5Mi43IDM5LjkgLjQgLjIgLjkgLjQgMS40IC40czEgMCAxLjUtLjIgLjktLjQgMS4zLS44IC42LS44IC44LTEuMmMxNC4xLTM2IDE5LjUtNzQuOCAxNi0xMTMuM3oiXX0sQ250PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsb2dnZXIiLGljb246WzQ0OCw1MTIsW10sImYzN2MiLCJNMTYyLjQgMTk2YzQuOC00LjkgNi4yLTUuMSAzNi40LTUuMSAyNy4yIDAgMjguMSAuMSAzMi4xIDIuMSA1LjggMi45IDguMyA3IDguMyAxMy42IDAgNS45LTIuNCAxMC03LjYgMTMuNC0yLjggMS44LTQuNSAxLjktMzEuMSAyLjEtMTYuNCAuMS0yOS41LS4yLTMxLjUtLjgtMTAuMy0yLjktMTQuMS0xNy43LTYuNi0yNS4zem02MS40IDk0LjVjLTUzLjkgMC01NS44IC4yLTYwLjIgNC4xLTMuNSAzLjEtNS43IDkuNC01LjEgMTMuOSAuNyA0LjcgNC44IDEwLjEgOS4yIDEyIDIuMiAxIDE0LjEgMS43IDU2LjMgMS4ybDQ3LjktLjYgOS4yLTEuNWM5LTUuMSAxMC41LTE3LjQgMy4xLTI0LjQtNS4zLTQuNy01LTQuNy02MC40LTQuN3pNNDQ3LjIgNDIwLjZjLTMuNSAyOC40LTIzIDUwLjQtNTEuMSA1Ny41LTcuMiAxLjgtOS43IDEuOS0xNzIuOSAxLjgtMTU3LjggMC0xNjUuOS0uMS0xNzItMS44LTguNC0yLjItMTUuNi01LjUtMjIuMy0xMC01LjYtMy44LTEzLjktMTEuOC0xNy0xNi40LTMuOC01LjYtOC4yLTE1LjMtMTAtMjJTMCA0MjAuMyAwIDI1Ni4zYzAtMTYzLjEgMC0xNjYuNiAxLjgtMTczLjcgNi4zLTI0LjcgMjUuOS00My42IDUxLjItNDkuMiA3LjMtMS42IDMzMi4xLTEuOSAzNDAtLjMgMjEuMiA0LjMgMzcuOSAxNy4xIDQ3LjYgMzYuNCA3LjcgMTUuMyA3LTEuNSA3LjMgMTgwLjYgLjIgMTE1LjggMCAxNjQuNS0uNyAxNzAuNXpNMzYxLjggMjM1LjRjLTEuMS01LTQuMi05LjYtNy43LTExLjUtMS4xLS42LTgtMS4zLTE1LjUtMS43LTEyLjQtLjYtMTMuOC0uOC0xNy44LTMuMS02LjItMy42LTcuOS03LjYtOC0xOC4zIDAtMjAuNC04LjUtMzkuNC0yNS4zLTU2LjUtMTItMTIuMi0yNS4zLTIwLjUtNDAuNi0yNS4xLTMuNi0xLjEtMTEuOC0xLjUtMzkuMi0xLjgtNDIuOS0uNS01Mi41IC40LTY3LjEgNi4yLTI3IDEwLjctNDYuMyAzMy40LTUzLjQgNjIuNC0xLjMgNS40LTEuNiAxNC4yLTEuOSA2NC4zLS40IDYyLjggMCA3Mi4xIDQgODQuNSA5LjcgMzAuNyAzNy4xIDUzLjQgNjQuNiA1OC40IDkuMiAxLjcgMTIyLjIgMi4xIDEzMy43IC41IDIwLjEtMi43IDM1LjktMTAuOCA1MC43LTI1LjkgMTAuNy0xMC45IDE3LjQtMjIuOCAyMS44LTM4LjUgMy4yLTEwLjkgMi45LTg4LjQgMS43LTkzLjl6Il19LExudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlZGdlIixpY29uOls1MTIsNTEyLFtdLCJmMjgyIiwiTTEyMC4xIDM3LjRjNDEtMjUuMiA4Ny42LTM4LjIgMTM0LjktMzcuNCAxNjggMCAyNTcgMTIzLjggMjU3IDIxOS41LS4xIDMyLjctMTMgNjMuOS0zNS45IDg3LjItMjIuOSAyMy4yLTU0IDM2LjUtODYuNyAzNy03NS4yIDAtOTEuNS0yMy4xLTkxLjUtMzIgMC0zLjggMS4yLTYuMiA0LjgtOS40bDEtMS4yIC40LTEuNmMxMC41LTExLjUgMTUuOS0yNi4yIDE1LjktNDEuNiAwLTc4LjctODIuMi0xNDIuNy0xODQtMTQyLjctMzcuNS0uMy03NC41IDguOS0xMDcuNSAyNi45IDI3LTU3LjUgODIuNy05Ny42IDkxLjMtMTAzLjggLjgtLjYgLjMtLjggLjMtLjh6bTE1LjYgMzE4LjFjLTEuNCAzMCA0LjYgNjAgMTYuNCA4Ny4yIDEzLjYgMjYuNCAzMi43IDUxIDU2LjUgNjkuMy01OS41LTExLjUtMTExLjUtNDMuOS0xNDkuNC04OS4zLTM4LjEtNDYuNC01OS4yLTEwNC4zLTU5LjItMTY0LjggMC01MS4yIDYyLjQtOTQuNCAxMzYtOTQuNCAzNi42LS42IDcyLjQgMTAuOSAxMDEuOCAzMi43bC0zLjYgMS4yYy01MS41IDE3LjYtOTguNSA5MC43LTk4LjUgMTU4LjF6TTQ2OS44IDQwMGwtLjcgLjFjLTExLjggMTguOC0yNS45IDM1LjEtNDIuMiA0OS41LTMwLjggMjgtNjguMSA0NS41LTEwOC44IDQ5LjktMTguNiAuMy0zNi44LTMuMi01My44LTExLjQtMjUuNi0xMC4zLTQ3LjEtMzAtNjEuNi01My0xNC40LTIzLjktMjEuMS01MS43LTE5LTc5LjYtLjYtMjAuMSA1LjQtNDAuMyAxNS01OC4yIDEzLjkgMzMuMSAzNy41IDYxLjMgNjcuNiA4MC44czY1LjUgMjkuNSAxMDEuNCAyOC42YzMxIC4zIDYyLjEtNi43IDkwLjItMjAuNWwxLjktLjljMy45LTIuMyA3LjctMy45IDExLjYgMCA0LjUgNC45IDEuOCA5LjItMS4yIDE0LS4yIC4yLS4zIC41LS40IC43eiJdfSxUbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW94aG9zdCIsaWNvbjpbNjQwLDUxMixbXSwiZjIwOCIsIk02MTYgMTYwbC02Ny4zIDBDNTExLjIgNzAuNyA0MjIuOSA4IDMyMCA4IDE4MyA4IDcyIDExOSA3MiAyNTYgNzIgMjcyLjQgNzMuNiAyODguNSA3Ni43IDMwNEwyNCAzMDRjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0bDY3LjMgMGMzNy41IDg5LjMgMTI1LjggMTUyIDIyOC43IDE1MiAxMzcgMCAyNDgtMTExIDI0OC0yNDggMC0xNi40LTEuNi0zMi41LTQuNy00OGw1Mi43IDBjMTMuMyAwIDI0LTEwLjggMjQtMjQgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS05NiA5NmMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDAtNzUuNyAwLTE0MS42LTQyLTE3NS41LTEwNEw0MjQgMzUyYzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0bC0yOTguMiAwYy0zLjgtMTUuNC01LjgtMzEuNC01LjgtNDggMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwIDc1LjcgMCAxNDEuNiA0MiAxNzUuNSAxMDRMMjE2IDE2MGMtMTMuMyAwLTI0IDEwLjgtMjQgMjQgMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjk4LjIgMGMzLjggMTUuNCA1LjggMzEuNCA1LjggNDh6TTIxNiAyMzJsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAxMy4yLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEzLjIgMTAuNy0yNCAyNC0yNHoiXX0sX250PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjaGxpeCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlYSIsIk0zNTAuNSAxNTcuN2wtNTQuMi00Ni4xIDczLjQtMzkgNzguMyA0NC4yLTk3LjUgNDAuOXpNMTkyIDEyMi4xbDQ1LjctMjguMiAzNC43IDM0LjYtNTUuNCAyOS0yNS0zNS40em0tNjUuMSA2LjZsMzEuOS0yMi4xIDE3LjIgMjguNC0zNi43IDIyLjUtMTIuNC0yOC44em0tMjMuMyA4OC4ybC04LjgtMzQuOCAyOS42LTE4LjMgMTMuMSAzNS4zLTMzLjkgMTcuOHpNODIuNCAxMzMuMmwyMy45LTE4LjEgOC45IDI0LTI2LjcgMTguMy02LjEtMjQuMnpNNTkgMjA2LjVsLTMuNi0yOC40IDIyLjMtMTUuNSA2LjEgMjguNy0yNC44IDE1LjJ6TTI4LjQgMjIzLjFsMjAuOC0xMi44IDMuMyAzMy40LTIyLjkgMTItMS4yLTMyLjZ6TTEuNCAyNjhMMjAuNiAyNTcuOCAyMSAyOTYgMCAzMDQuOCAxLjQgMjY4em01OS4xIDU5LjNsLTI4LjMgOC4zLTEuNi00Ni44IDI1LjEtMTAuNyA0LjggNDkuMnpNOTkgMjYzLjJsLTMxLjEgMTMtNS4yLTQwLjggMjcuNC0xNC40IDguOSA0Mi4yek0xMjMuMiAzNzdsLTQxLjYgNS45LTguMS02My41IDM1LjItMTAuOCAxNC41IDY4LjR6bTI4LjUtMTM5LjlsMjEuMiA1Ny4xLTQ2LjIgMTMuNi0xMy43LTU0LjEgMzguNy0xNi42em04NS43IDIzMC41bC03MC45LTMuMy0yNC4zLTk1LjggNTUuMi04LjYgNDAgMTA3Ljd6TTE1Mi41IDE4Ny45bDQyLjItMjIuNCAyOCA0NS45LTUwLjggMjEuMy0xOS40LTQ0Ljh6bTQxIDk0LjlsNjEuMy0xOC43IDUyLjggODYuNi03OS44IDExLjMtMzQuMy03OS4yem01MS40LTg1LjZsNjcuMy0yOC44IDY1LjUgNjUuNC04OC42IDI2LjItNDQuMi02Mi44eiJdfSxBbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZC1hbmQtZCIsaWNvbjpbNTc2LDUxMixbXSwiZjM4ZCIsIk04Mi45IDk4LjljLS42LTE3LjIgMi0zMy44IDEyLjctNDguMiAuMyA3LjQgMS4yIDE0LjUgNC4yIDIxLjYgNS45LTI3LjUgMTkuNy00OS4zIDQyLjMtNjUuNS0xLjkgNS45LTMuNSAxMS44LTMgMTcuNyA4LjctNy40IDE4LjgtMTcuOCA0NC40LTIyLjcgMTQuNy0yLjggMjkuNy0yIDQyLjEgMSAzOC41IDkuMyA2MSAzNC4zIDY5LjcgNzIuMyA1LjMgMjMuMSAuNyA0NS04LjMgNjYuNC01LjIgMTIuNC0xMiAyNC40LTIwLjcgMzUuMS0yLTEuOS0zLjktMy44LTUuOC01LjYtNDIuOC00MC44LTI2LjgtMjUuMi0zNy40LTM3LjQtMS4xLTEuMi0xLTIuMi0uMS0zLjYgOC4zLTEzLjUgMTEuOC0yOC4yIDEwLTQ0LTEuMS05LjgtNC4zLTE4LjktMTEuMy0yNi4yLTE0LjUtMTUuMy0zOS4yLTE1LTUzLjUgLjYtMTEuNCAxMi41LTE0LjEgMjcuNC0xMC45IDQzLjYgLjIgMS4zIC40IDIuNyAwIDMuOS0zLjQgMTMuNy00LjYgMjcuNi0yLjUgNDEuNiAuMSAuNSAuMSAxLjEgLjEgMS42IDAgLjMtLjEgLjUtLjIgMS4xLTIxLjgtMTEtMzYtMjguMy00My4yLTUyLjItOC4zIDE3LjgtMTEuMSAzNS41LTYuNiA1NC4xLTE1LjYtMTUuMi0yMS4zLTM0LjMtMjItNTUuMnpNNTUyLjUgMjIyLjFjLTExLjYtMTEuNi0yNS0yMC40LTQwLjEtMjYuNi0xMi44LTUuMi0yNi03LjktMzkuOS03LjEtMTAgLjYtMTkuNiAzLjEtMjkgNi40LTIuNSAuOS01LjEgMS42LTcuNyAyLjItNC45IDEuMi03LjMtMy4xLTQuNy02LjggMy4yLTQuNiAzLjQtNC4yIDE1LTEyIC42LS40IDEuMi0uOCAyLjItMS41bC0yLjUgMGMtLjYgMC0xLjIgLjItMS45IC4zLTE5LjMgMy4zLTMwLjcgMTUuNS00OC45IDI5LjYtMTAuNCA4LjEtMTMuOCAzLjgtMTItLjUgMS40LTMuNSAzLjMtNi43IDUuMS0xMCAxLTEuOCAyLjMtMy40IDMuNS01LjEtLjItLjItLjUtLjMtLjctLjUtMjcgMTguMy00Ni43IDQyLjQtNTcuNyA3My4zIC4zIC4zIC43IC42IDEgLjkgLjMtLjYgLjUtMS4yIC45LTEuNyAxMC40LTEyLjEgMjIuOC0yMS44IDM2LjYtMjkuOCAxOC4yLTEwLjYgMzcuNS0xOC4zIDU4LjctMjAuMiA0LjMtLjQgOC43LS4xIDEzLjEtLjEtMS44IC43LTMuNSAuOS01LjMgMS4xLTE4LjUgMi40LTM1LjUgOS01MS41IDE4LjUtMzAuMiAxNy45LTU0LjUgNDIuMi03NS4xIDcwLjQtLjMgLjQtLjQgLjktLjcgMS4zIDE0LjUgNS4zIDI0IDE3LjMgMzYuMSAyNS42IC4yLS4xIC4zLS4yIC40LS40bDEuMi0yLjdjMTIuMi0yNi45IDI3LTUyLjMgNDYuNy03NC41IDE2LjctMTguOCAzOC0yNS4zIDYyLjUtMjAgNS45IDEuMyAxMS40IDQuNCAxNy4yIDYuOCAyLjMtMS40IDUuMS0zLjIgOC00LjcgOC40LTQuMyAxNy40LTcgMjYuNy05IDE0LjctMy4xIDI5LjUtNC45IDQ0LjUtMS4zbDAtLjVjLS41LS40LTEuMi0uOC0xLjctMS40ek0zMTcuMSAzOTcuNmMtMzkuNC0zMy0yMi44LTE5LjUtNDIuNy0zNS42LS44IC45IDAtLjItMS45IDMtMTEuMiAxOS4xLTI1LjUgMzUuMy00NCA0Ny42LTEwLjMgNi44LTIxLjUgMTEuOC0zNC4xIDExLjgtMjEuNiAwLTM4LjItOS41LTQ5LjQtMjcuOC0xMi0xOS41LTEzLjMtNDAuNy04LjItNjIuNiA3LjgtMzMuOCAzMC4xLTU1LjIgMzguNi02NC4zLTE4LjctNi4yLTMzIDEuNy00Ni40IDEzLjkgLjgtMTMuOSA0LjMtMjYuMiAxMS44LTM3LjMtMjQuMyAxMC42LTQ1LjkgMjUtNjQuOCA0My45LS4zLTUuOCA1LjQtNDMuNyA1LjYtNDQuNyAuMy0yLjctLjYtNS4zLTMtNy40LTI0LjIgMjQuNy00NC41IDUxLjgtNTYuMSA4NC42IDcuNC01LjkgMTQuOS0xMS40IDIzLjYtMTYuMi04LjMgMjIuMy0xOS42IDUyLjgtNy44IDEwMS4xIDQuNiAxOSAxMS45IDM2LjggMjQuMSA1Mi4zIDIuOSAzLjcgNi4zIDYuOSA5LjUgMTAuMyAuMi0uMiAuNC0uMyAuNi0uNS0xLjQtNy0yLjItMTQuMS0xLjUtMjEuOSAyLjIgMy4yIDMuOSA2IDUuOSA4LjYgMTIuNiAxNiAyOC43IDI3LjQgNDcuMiAzNS42IDI1IDExLjMgNTEuMSAxMy4zIDc3LjkgOC42IDU0LjktOS43IDkwLjctNDguNiAxMTYtOTguOCAxLTEuOCAuNi0yLjktLjktNC4yem0xNzItNDYuNGMtOS41LTMuMS0yMi4yLTQuMi0yOC43LTIuOSA5LjkgNCAxNC4xIDYuNiAxOC44IDEyIDEyLjYgMTQuNCAxMC40IDM0LjctNS40IDQ1LjYtMTEuNyA4LjEtMjQuOSAxMC41LTM4LjkgOS4xLTEuMi0uMS0yLjMtLjQtMy0uNiAyLjgtMy43IDYtNyA4LjEtMTAuOCA5LjQtMTYuOCA1LjQtNDIuMS04LjctNTYuMS0yLjEtMi4xLTQuNi0zLjktNy01LjktLjMgMS4zLS4xIDIuMSAuMSAyLjggNC4yIDE2LjYtOC4xIDMyLjQtMjQuOCAzMS44LTcuNi0uMy0xMy45LTMuOC0xOS42LTguNS0xOS41LTE2LjEtMzkuMS0zMi4xLTU4LjUtNDguMy01LjktNC45LTEyLjUtOC4xLTIwLjEtOC43LTQuNi0uNC05LjMtLjYtMTMuOS0uOS01LjktLjQtOC44LTIuOC0xMC40LTguNC0uOS0zLjQtMS41LTYuOC0yLjItMTAuMi0xLjUtOC4xLTYuMi0xMy0xNC4zLTE0LjItNC40LS43LTguOS0xLTEzLjMtMS41LTEzLTEuNC0xOS44LTcuNC0yMi42LTIwLjMtNSAxMS0xLjYgMjIuNCA3LjMgMjkuOSA0LjUgMy44IDkuMyA3LjMgMTMuOCAxMS4yIDQuNiAzLjggNy40IDguNyA3LjkgMTQuOCAuNCA0LjcgLjggOS41IDEuOCAxNC4xIDIuMiAxMC42IDguOSAxOC40IDE3IDI1LjEgMTYuNSAxMy43IDMzIDI3LjMgNDkuNSA0MS4xIDE3LjkgMTUgMTMuOSAzMi44IDEzIDU2LS45IDIyLjkgMTIuMiA0Mi45IDMzLjUgNTEuMiAxIC40IDIgLjYgMy42IDEuMS0xNS43LTE4LjItMTAuMS00NC4xIC43LTUyLjMgLjMgMi4yIC40IDQuMyAuOSA2LjQgOS40IDQ0LjEgNDUuNCA2NC4yIDg1IDU2LjkgMTYtMi45IDMwLjYtOC45IDQyLjktMTkuOCAyLTEuOCAzLjctNC4xIDUuOS02LjUtMTkuMyA0LjYtMzUuOCAuMS01MC45LTEwLjYgLjctLjMgMS4zLS4zIDEuOS0uMyAyMS4zIDEuOCA0MC42LTMuNCA1Ny0xNy40IDE5LjUtMTYuNiAyNi42LTQyLjkgMTcuNC02Ni04LjMtMjAuMS0yMy42LTMyLjMtNDMuOC0zOC45ek05OS44IDE3OS4zYy01LjMtOS4yLTEzLjItMTUuNi0yMi4xLTIxLjMgMTMuNy0uNSAyNi42IC4yIDM5LjYgMy43LTctMTIuMi04LjUtMjQuNy01LTM4LjcgNS4zIDExLjkgMTMuNyAyMC4xIDIzLjYgMjYuOCAxOS43IDEzLjIgMzUuNyAxOS42IDQ2LjcgMzAuMiAzLjQgMy4zIDYuMyA3LjEgOS42IDEwLjktLjgtMi4xLTEuNC00LjEtMi4yLTYtNS0xMC42LTEzLTE4LjYtMjIuNi0yNS0xLjgtMS4yLTIuOC0yLjUtMy40LTQuNS0zLjMtMTIuNS0zLTI1LjEtLjctMzcuNiAxLTUuNSAyLjgtMTAuOSA0LjUtMTYuMyAuOC0yLjQgMi4zLTQuNiA0LTYuNiAuNiA2LjkgMCAyNS41IDE5LjYgNDYgMTAuOCAxMS4zIDIyLjQgMjEuOSAzMy45IDMyLjcgOSA4LjUgMTguMyAxNi43IDI1LjUgMjYuOCAxLjEgMS42IDIuMiAzLjMgMy44IDQuNy01LTEzLTE0LjItMjQuMS0yNC4yLTMzLjgtOS42LTkuMy0xOS40LTE4LjQtMjkuMi0yNy40LTMuMy0zLTQuNi02LjctNS4xLTEwLjktMS4yLTEwLjQgMC0yMC42IDQuMy0zMC4yIC41LTEgMS4xLTIgMS45LTMuMyAuNSA0LjIgLjYgNy45IDEuNCAxMS42IDQuOCAyMy4xIDIwLjQgMzYuMyA0OS4zIDYzLjUgMTAgOS40IDE5LjMgMTkuMiAyNS42IDMxLjYgNC44IDkuMyA3LjMgMTkgNS43IDI5LjYtLjEgLjYgLjUgMS43IDEuMSAyIDYuMiAyLjYgMTAgNi45IDkuNyAxNC4zIDcuNy0yLjYgMTIuNS04IDE2LjQtMTQuNSA0LjIgMjAuMi05LjEgNTAuMy0yNy4yIDU4LjcgLjQtNC41IDUtMjMuNC0xNi41LTI3LjctNi44LTEuMy0xMi44LTEuMy0yMi45LTIuMSA0LjctOSAxMC40LTIwLjYgLjUtMjIuNC0yNC45LTQuNi01Mi44IDEuOS01Ny44IDQuNiA4LjIgLjQgMTYuMyAxIDIzLjUgMy4zLTIgNi41LTQgMTIuNy01LjggMTguOS0xLjkgNi41IDIuMSAxNC42IDkuMyA5LjYgMS4yLS45IDIuMy0xLjkgMy4zLTIuNy0zLjEgMTcuOS0yLjkgMTUuOS0yLjggMTguMyAuMyAxMC4yIDkuNSA3LjggMTUuNyA3LjMtMi41IDExLjgtMjkuNSAyNy4zLTQ1LjQgMjUuOCA3LTQuNyAxMi43LTEwLjMgMTUuOS0xNy45LTYuNSAuOC0xMi45IDEuNi0xOS4yIDIuNGwtLjMtLjljNC43LTMuNCA4LTcuOCAxMC4yLTEzLjEgOC43LTIxLjEtMy42LTM4LTI1LTM5LjktOS4xLS44LTE3LjggLjgtMjUuOSA1LjUgNi4yLTE1LjYgMTcuMi0yNi42IDMyLjYtMzQuNS0xNS4yLTQuMy04LjktMi43LTI0LjYtNi4zIDE0LjYtOS4zIDMwLjItMTMuMiA0Ni41LTE0LjYtNS4yLTMuMi00OC4xLTMuNi03MC4yIDIwLjkgNy45IDEuNCAxNS41IDIuOCAyMy4yIDQuMi0yMy44IDctNDQgMTkuNy02Mi40IDM1LjYgMS4xLTQuOCAyLjctOS41IDMuMy0xNC4zIC42LTQuNSAuOC05LjIgLjEtMTMuNi0xLjUtOS40LTguOS0xNS4xLTE5LjctMTYuMy03LjktLjktMTUuNiAuMS0yMy4zIDEuMy0uOSAuMS0xLjcgLjMtMi45IDAgMTUuOC0xNC44IDM2LTIxLjcgNTMuMS0zMy41IDYtNC41IDYuOC04LjIgMy0xNC45em0xMjguNCAyNi44YzMuMyAxNiAxMi42IDI1LjUgMjMuOCAyNC4zLTQuNi0xMS4zLTEyLjEtMTkuNS0yMy44LTI0LjN6Il19LCRudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2dWVqcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQxZiIsIk0zNTYuOSA2NC4zbC03Ni45IDAtNTYgODguNi00OC04OC42LTE3NiAwIDIyNCAzODMuNyAyMjQtMzgzLjctOTEuMSAwek01NS43IDk2LjNsNTMuOCAwIDExNC41IDE5OC4yIDExNC40LTE5OC4yIDUzLjggMC0xNjguMiAyODguMi0xNjguMy0yODguMnoiXX0sRG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1ldGEiLGljb246WzY0MCw1MTIsW10sImU0OWIiLCJNNjQwIDMxNy45YzAgOTEuMy0zOS40IDE0OC41LTExMC4zIDE0OC41LTYyLjYgMC05NS44LTM0LjYtMTU2LjktMTM2LjZsLTMxLjQtNTIuNmMtOC4zLTEyLjUtMTQuNS0yNC4yLTIxLjItMzUtMjAuMSAzMy44LTQ3LjEgODMtNDcuMSA4My02NyAxMTYuNi0xMDQuNiAxNDEuMi0xNTYuOSAxNDEuMi03Mi44IDAtMTE2LjItNTcuMy0xMTYuMi0xNDUuOSAwLTE0MyA3OS44LTI3OC4xIDE4My45LTI3OC4xIDUwLjIgMCA5My44IDI0LjcgMTQ0LjggODkuNSAzNy4xLTUwLjEgNzguMS04OS41IDEzMC42LTg5LjUgOTkuMSAwIDE4MC43IDEyNS43IDE4MC43IDI3NS41ek0yODcuNCAxOTIuMmMtNDIuOS02Mi4xLTcwLjktODAuNS0xMDQuNC04MC41LTYxLjkgMC0xMTMuOCAxMDYuMS0xMTMuOCAyMTAgMCA0OC41IDE4LjUgNzUuNyA0OS42IDc1LjcgMzAuMiAwIDQ5LTE5IDEwMy4yLTEwMy44IDAgMCAyNC43LTM5LjEgNjUuNC0xMDEuNHpNNTMxLjIgMzk3LjRjMzIuMiAwIDQ2LjktMjcuNSA0Ni45LTc0LjkgMC0xMjQuMi01NC4zLTIyNS40LTEyMy4yLTIyNS40LTMzLjIgMC02MS4xIDI1LjktOTQuOSA3OCA5LjQgMTMuOCAxOS4xIDI5IDI5LjMgNDUuNGwzNy41IDYyLjRjNTguNyA5NC4xIDczLjUgMTE0LjUgMTA0LjQgMTE0LjV6Il19LEVudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNoYXJlIixpY29uOls1MTIsNTEyLFtdLCJmNGYyIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMTAxIDEzMi40YzcuOCAwIDEzLjcgNi4xIDEzLjcgMTMuN2wwIDE4Mi41YzAgNy43LTYuMSAxMy43LTEzLjcgMTMuN2wtMTM1LjEgMGMtNy43IDAtMTMuNy02LTEzLjctMTMuN2wwLTU0LTU0IDBjLTcuOCAwLTEzLjctNi0xMy43LTEzLjdsMC0xODIuNWMwLTguMiA2LjYtMTIuNyAxMi40LTEzLjdsMTM2LjQgMGM3LjcgMCAxMy43IDYgMTMuNyAxMy43bDAgNTQgNTQgMHpNMTY3LjkgMzAwLjNsNDAuNyAwIDAtMTAxLjRjMC03LjQgNS44LTEyLjYgMTItMTMuN2w1NS44IDAgMC00MC4zLTEwOC41IDAgMCAxNTUuNHptMTc2LjItODguMWwtMTA4LjUgMCAwIDE1NS40IDEwOC41IDAgMC0xNTUuNHoiXX0sTm50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dWRpb3ZpbmFyaSIsaWNvbjpbNTEyLDUxMixbXSwiZjNmOCIsIk00ODAuNyAxODcuN2w0LjIgMjggMCAyOC0yNS4xIDQ0LjEtMzkuOCA3OC40LTU2LjEgNjcuNS03OS4xIDM3LjgtMTcuNyAyNC41LTcuNyAxMi05LjYgNHMxNy4zLTYzLjYgMTkuNC02My42IDIwLjMgLjcgMjAuMyAuN2w2Ni43LTM4LjYtOTIuNSAyNi4xLTU1LjkgMzYuOC0yMi44IDI4LTYuNiAxLjQgMjAuOC03My42IDYuOS01LjUgMjAuNyAxMi45IDg4LjMtNDUuMiA1Ni44LTUxLjUgMTQuOC02OC40LTEyNS40IDIzLjMgMTUuMi0xOC4yLTE3My40LTUzLjMgODEuOS0xMC41LTE2Ni0xMjIuOSAxMTQuOSAxOC4xLTEwMS4zLTEwOCAyNTIuOSAxMjYuNi0zMS41LTM4IDEyNC40IDc0LjQtMTQzLjMtOTkgMTguNyAzOC40LTQ5LjYtMTguMS00NS41LTg0LjMgMTk0LjYgMTIyLTQyLjktNTUuOCAxMDggOTYuNCAxMi04LjktMjEtMTYuNCA0LjItMzcuOCAzNy44LTEwLjQgMjkuMiAyNC43IDExLjUgNC4yLTcgNi4yIDguNSAxMi0xMy4xIDcuNC0xMC4zIDIwLjIgMTAuNSAyMy45eiJdfSxQbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0YnVja2V0IixpY29uOls1MTIsNTEyLFs2MTgxMF0sImYxNzEiLCJNMjIuMiAzMmMtMi4xIDAtNC4yIC40LTYuMSAxLjFzLTMuNyAxLjktNS4yIDMuNC0yLjcgMy4yLTMuNSA1LjEtMS4zIDQtMS4zIDYuMWMwIC45IC4xIDEuOSAuMiAyLjhMNzQuMSA0NjIuN2MuOCA1LjEgMy40IDkuNyA3LjMgMTNzOC44IDUuMiAxNCA1LjJsMzI1LjcgMGMzLjggLjEgNy41LTEuMyAxMC41LTMuN3M0LjktNS45IDUuNS05LjdMNTA1IDUwLjdjLjctNC4yLS4zLTguNC0yLjgtMTEuOXMtNi4yLTUuNy0xMC40LTYuNGMtLjktLjEtMS45LS4yLTIuOC0uMkwyMi4yIDMyek0zMDguMSAzMjkuOGwtMTA0IDAtMjguMS0xNDcgMTU3LjMgMC0yNS4yIDE0N3oiXX0sSW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZrIixpY29uOls0NDgsNTEyLFtdLCJmMTg5IiwiTTMxLjUgNjMuNUMwIDk1IDAgMTQ1LjcgMCAyNDdMMCAyNjVDMCAzNjYuMyAwIDQxNyAzMS41IDQ0OC41UzExMy43IDQ4MCAyMTUgNDgwbDE3LjkgMGMxMDEuNCAwIDE1Mi4xIDAgMTgzLjUtMzEuNVM0NDggMzY2LjMgNDQ4IDI2NWwwLTE3LjljMC0xMDEuNCAwLTE1Mi4xLTMxLjUtMTgzLjVTMzM0LjMgMzIgMjMzIDMyTDIxNSAzMkMxMTMuNyAzMiA2MyAzMiAzMS41IDYzLjV6TTc1LjYgMTY4LjNsNTEuMSAwYzEuNyA4NS41IDM5LjQgMTIxLjcgNjkuMyAxMjkuMmwwLTEyOS4yIDQ4LjIgMCAwIDczLjdjMjkuNS0zLjIgNjAuNS0zNi44IDcwLjktNzMuN2w0OC4yIDBjLTMuOSAxOS4yLTExLjggMzcuMy0yMy4xIDUzLjNzLTI1LjcgMjkuNS00Mi41IDM5LjZjMTguNyA5LjMgMzUuMiAyMi40IDQ4LjQgMzguNXMyMi45IDM0LjkgMjguMyA1NWwtNTMgMGMtNC45LTE3LjUtMTQuOC0zMy4xLTI4LjYtNDVzLTMwLjctMTkuNC00OC43LTIxLjZsMCA2Ni42LTUuOCAwYy0xMDIuMSAwLTE2MC4zLTcwLTE2Mi44LTE4Ni41eiJdfSxGbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0aHViIixpY29uOls1MTIsNTEyLFtdLCJmMDliIiwiTTE3My45IDM5Ny40YzAgMi0yLjMgMy42LTUuMiAzLjYtMy4zIC4zLTUuNi0xLjMtNS42LTMuNiAwLTIgMi4zLTMuNiA1LjItMy42IDMtLjMgNS42IDEuMyA1LjYgMy42em0tMzEuMS00LjVjLS43IDIgMS4zIDQuMyA0LjMgNC45IDIuNiAxIDUuNiAwIDYuMi0ycy0xLjMtNC4zLTQuMy01LjJjLTIuNi0uNy01LjUgLjMtNi4yIDIuM3ptNDQuMi0xLjdjLTIuOSAuNy00LjkgMi42LTQuNiA0LjkgLjMgMiAyLjkgMy4zIDUuOSAyLjYgMi45LS43IDQuOS0yLjYgNC42LTQuNi0uMy0xLjktMy0zLjItNS45LTIuOXpNMjUyLjggOGMtMTM4LjcgMC0yNDQuOCAxMDUuMy0yNDQuOCAyNDQgMCAxMTAuOSA2OS44IDIwNS44IDE2OS41IDIzOS4yIDEyLjggMi4zIDE3LjMtNS42IDE3LjMtMTIuMSAwLTYuMi0uMy00MC40LS4zLTYxLjQgMCAwLTcwIDE1LTg0LjctMjkuOCAwIDAtMTEuNC0yOS4xLTI3LjgtMzYuNiAwIDAtMjIuOS0xNS43IDEuNi0xNS40IDAgMCAyNC45IDIgMzguNiAyNS44IDIxLjkgMzguNiA1OC42IDI3LjUgNzIuOSAyMC45IDIuMy0xNiA4LjgtMjcuMSAxNi0zMy43LTU1LjktNi4yLTExMi4zLTE0LjMtMTEyLjMtMTEwLjUgMC0yNy41IDcuNi00MS4zIDIzLjYtNTguOS0yLjYtNi41LTExLjEtMzMuMyAyLjYtNjcuOSAyMC45LTYuNSA2OSAyNyA2OSAyNyAyMC01LjYgNDEuNS04LjUgNjIuOC04LjVzNDIuOCAyLjkgNjIuOCA4LjVjMCAwIDQ4LjEtMzMuNiA2OS0yNyAxMy43IDM0LjcgNS4yIDYxLjQgMi42IDY3LjkgMTYgMTcuNyAyNS44IDMxLjUgMjUuOCA1OC45IDAgOTYuNS01OC45IDEwNC4yLTExNC44IDExMC41IDkuMiA3LjkgMTcgMjIuOSAxNyA0Ni40IDAgMzMuNy0uMyA3NS40LS4zIDgzLjYgMCA2LjUgNC42IDE0LjQgMTcuMyAxMi4xIDEwMC0zMy4yIDE2Ny44LTEyOC4xIDE2Ny44LTIzOSAwLTEzOC43LTExMi41LTI0NC0yNTEuMi0yNDR6TTEwNS4yIDM1Mi45Yy0xLjMgMS0xIDMuMyAuNyA1LjIgMS42IDEuNiAzLjkgMi4zIDUuMiAxIDEuMy0xIDEtMy4zLS43LTUuMi0xLjYtMS42LTMuOS0yLjMtNS4yLTF6bS0xMC44LTguMWMtLjcgMS4zIC4zIDIuOSAyLjMgMy45IDEuNiAxIDMuNiAuNyA0LjMtLjcgLjctMS4zLS4zLTIuOS0yLjMtMy45LTItLjYtMy42LS4zLTQuMyAuN3ptMzIuNCAzNS42Yy0xLjYgMS4zLTEgNC4zIDEuMyA2LjIgMi4zIDIuMyA1LjIgMi42IDYuNSAxIDEuMy0xLjMgLjctNC4zLTEuMy02LjItMi4yLTIuMy01LjItMi42LTYuNS0xem0tMTEuNC0xNC43Yy0xLjYgMS0xLjYgMy42IDAgNS45czQuMyAzLjMgNS42IDIuM2MxLjYtMS4zIDEuNi0zLjkgMC02LjItMS40LTIuMy00LTMuMy01LjYtMnoiXX0sT250PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvZGllcGllIixpY29uOls1MTIsNTEyLFtdLCJmMjg0IiwiTTQ0Mi41IDIwMi45YzMwLjcgMCAzMy41IDUzLjEtLjMgNTMuMWwtMTAuOCAwIDAgNDQuMy0yNi42IDAgMC05Ny40IDM3LjcgMHpNNDkyIDM1Mi42QzQ0OS45IDQ0NC41IDM3MC40IDUwNCAyNjggNTA0IDEzMSA1MDQgMjAgMzkzIDIwIDI1NlMxMzEgOCAyNjggOGM5Ny40IDAgMTcyLjggNTMuNyAyMTguMiAxMzguNEwzMDAuMiAyNTUuMiA0OTIgMzUyLjZ6bS0zOC41IDEyLjVsLTYwLjMtMzAuN2MtMjcuMSA0NC4zLTcwLjQgNzEuNC0xMjIuNCA3MS40LTgyLjUgMC0xNDkuMi02Ni43LTE0OS4yLTE0OC45IDAtODIuNSA2Ni43LTE0OS4yIDE0OS4yLTE0OS4yIDQ4LjQgMCA4OC45IDIzLjUgMTE2LjkgNjMuNGw1OS41LTM0LjZDNDA2LjUgNzMuOSAzNDIuNSAzNi41IDI2OCAzNi41IDE0Ni44IDM2LjUgNDguNSAxMzQuOCA0OC41IDI1NlMxNDYuOCA0NzUuNSAyNjggNDc1LjVjNzguNiAwIDE0Ni41LTQyLjEgMTg1LjUtMTEwLjR6Il19LEJudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyIixpY29uOls0NDgsNTEyLFtdLCJmMmFlIiwiTTQ0MC4yIDIzLjJjLTI2LjcgNi44LTY4LjEgMjguNS0xMTQuNiA2Ny41LTMwLjktMTcuNS02NS44LTI2LjctMTAxLjQtMjYuNy0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOCAyMDgtOTMuMSAyMDgtMjA4Yy4xLTU0LjEtMjEtMTA2LjEtNTguNy0xNDQuOC02LjYgOC41LTEyLjMgMTcuNy0xNyAyNy40IDI4LjkgMzIuMyA0NC44IDc0LjEgNDQuOSAxMTcuNCAwIDk3LjctNzkuNCAxNzcuMS0xNzcuMSAxNzcuMS0zMC44IDAtNjEtOC4xLTg3LjYtMjMuNCA4Mi45LTEwNy4zIDE1MC44LTM3LjggMTg0LjMtMjI2LjYgNS44LTMyLjYgMjgtOTQuMyAxMjYuMi0xNjAuMiA4LjEtNS40IDIuNC0xOC4xLTctMTUuN3pNMTA5LjMgNDA2LjRDODkuOCAzODkuOCA3NC4yIDM2OS4yIDYzLjUgMzQ2cy0xNi4zLTQ4LjUtMTYuMy03NGMwLTk3LjcgNzkuNC0xNzcuMSAxNzcuMS0xNzcuMSAyNi42IDAgNTIuOCA2LjEgNzYuNiAxNy44LTY2IDYyLjEtMTI2LjkgMTUyLjktMTkxLjYgMjkzLjh6Il19LFJudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyYXNwYmVycnktcGkiLGljb246WzQ0OCw1MTIsW10sImY3YmIiLCJNMzkyLjUgMjMyLjVsLTMuNy02LjVjLjEtNDYuNC0yMS40LTY1LjMtNDYuNS03OS43IDcuNi0yIDE1LjQtMy42IDE3LjYtMTMuMiAxMy4xLTMuMyAxNS44LTkuNCAxNy4xLTE1LjggMy40LTIuMyAxNC44LTguNyAxMy42LTE5LjcgNi40LTQuNCAxMC0xMC4xIDguMS0xOC4xIDYuOS03LjUgOC43LTEzLjcgNS44LTE5LjQgOC4zLTEwLjMgNC42LTE1LjYgMS4xLTIwLjkgNi4yLTExLjIgLjctMjMuMi0xNi42LTIxLjItNi45LTEwLjEtMjEuOS03LjgtMjQuMi03LjgtMi42LTMuMi02LTYtMTYuNS00LjctNi44LTYuMS0xNC40LTUtMjIuMy0yLjEtOS4zLTcuMy0xNS41LTEuNC0yMi42IC44LTExLjMtMy42LTEzLjkgMS4zLTE5LjQgMy40LTEyLjMtMi42LTE2LjEgMy0yMiA4LjlsLTYuOS0uMWMtMTguNiAxMC44LTI3LjggMzIuOC0zMS4xIDQ0LjEtMy4zLTExLjMtMTIuNS0zMy4zLTMxLjEtNDQuMWwtNi45IC4xYy01LjktNS45LTkuNy0xMS41LTIyLTguOS01LjYtMi04LjEtNy0xOS40LTMuNC00LjYtMS40LTguOS00LjQtMTMuOS00LjMtMi42IC4xLTUuNSAxLTguNyAzLjUtNy45LTMtMTUuNS00LTIyLjMgMi4xLTEwLjUtMS4zLTE0IDEuNC0xNi41IDQuNy0yLjMgMC0xNy4zLTIuMy0yNC4yIDcuOC0xNy4zLTItMjIuNyAxMC0xNi41IDIxLjItMy41IDUuNC03LjIgMTAuNyAxLjEgMjAuOS0yLjkgNS43LTEuMSAxMS45IDUuOCAxOS40LTEuOCA4IDEuOCAxMy43IDguMSAxOC4xLTEuMiAxMSAxMC4yIDE3LjQgMTMuNiAxOS43IDEuMyA2LjQgNCAxMi40IDE3LjEgMTUuOCAyLjIgOS41IDEwIDExLjIgMTcuNiAxMy4yLTI1LjEgMTQuNC00Ni42IDMzLjMtNDYuNSA3OS43bC0zLjcgNi41Yy0yOC44IDE3LjItNTQuNyA3Mi43LTE0LjIgMTE3LjcgMi42IDE0LjEgNy4xIDI0LjIgMTEgMzUuNCA1LjkgNDUuMiA0NC41IDY2LjMgNTQuNiA2OC44IDE0LjkgMTEuMiAzMC44IDIxLjggNTIuMiAyOS4yIDIwLjMgMjAuNiA0Mi4zIDI4LjQgNjQuMyAyOC40bDEgMGMyMi4xIDAgNDQtNy44IDY0LjItMjguNCAyMS41LTcuNCAzNy4zLTE4IDUyLjItMjkuMiAxMC4yLTIuNSA0OC43LTIzLjYgNTQuNi02OC44IDMuOS0xMS4yIDguNC0yMS4zIDExLTM1LjQgNDAuNi00NS4xIDE0LjctMTAwLjUtMTQtMTE3Ljd6bS0yMi4yLThjLTEuNSAxOC43LTk4LjktNjUuMS04Mi4xLTY3LjkgNDUuNy03LjUgODMuNiAxOS4yIDgyLjEgNjcuOXptLTQzIDkzLjFjLTI0LjUgMTUuOC01OS44IDUuNi03OC44LTIyLjhzLTE0LjYtNjQuMiA5LjktODAgNTkuOC01LjYgNzguOCAyMi44IDE0LjYgNjQuMi05LjkgODB6TTI1OS40IDI5LjNjLjggNC4yIDEuOCA2LjggMi45IDcuNiA1LjQtNS44IDkuOC0xMS43IDE2LjgtMTcuMyAwIDMuMy0xLjcgNi44IDIuNSA5LjQgMy43LTUgOC44LTkuNSAxNS41LTEzLjMtMy4yIDUuNi0uNiA3LjMgMS4yIDkuNiA1LjEtNC40IDEwLTguOCAxOS40LTEyLjMtMi42IDMuMS02LjIgNi4yLTIuNCA5LjggNS4zLTMuMyAxMC42LTYuNiAyMy4xLTguOS0yLjggMy4xLTguNyA2LjMtNS4xIDkuNCA2LjYtMi41IDE0LTQuNCAyMi4xLTUuNC0zLjkgMy4yLTcuMSA2LjMtMy45IDguOCA3LjEtMi4yIDE2LjktNS4xIDI2LjQtMi42bC02IDYuMWMtLjcgLjggMTQuMSAuNiAyMy45IC44LTMuNiA1LTcuMiA5LjctOS4zIDE4LjIgMSAxIDUuOCAuNCAxMC40IDAtNC43IDkuOS0xMi44IDEyLjMtMTQuNyAxNi42IDIuOSAyLjIgNi44IDEuNiAxMS4yIC4xLTMuNCA2LjktMTAuNCAxMS43LTE2IDE3LjMgMS40IDEgMy45IDEuNiA5LjcgLjktNS4yIDUuNS0xMS40IDEwLjUtMTguOCAxNSAxLjMgMS41IDUuOCAxLjUgMTAgMS42LTYuNyA2LjUtMTUuMyA5LjktMjMuNCAxNC4yIDQgMi43IDYuOSAyLjEgMTAgMi4xLTUuNyA0LjctMTUuNCA3LjEtMjQuNCAxMCAxLjcgMi43IDMuNCAzLjQgNy4xIDQuMS05LjUgNS4zLTIzLjIgMi45LTI3IDUuNiAuOSAyLjcgMy42IDQuNCA2LjcgNS44LTE1LjQgLjktNTcuMy0uNi02NS40LTMyLjMgMTUuNy0xNy4zIDQ0LjQtMzcuNSA5My43LTYyLjYtMzguNCAxMi44LTczIDMwLTEwMiA1My41LTM0LjMtMTUuOS0xMC44LTU1LjkgNS44LTcxLjh6TTIyNSAxNDMuOWMyNC4yLS4zIDU0LjEgMTcuOCA1NCAzNC43LS4xIDE1LTIxIDI3LjEtNTMuOCAyNi45LTMyLjEtLjQtNTMuNy0xNS4yLTUzLjYtMjkuOCAwLTExLjkgMjYuMi0zMi41IDUzLjQtMzEuOHpNMTAyIDEzMS4xYzMuNy0uNyA1LjQtMS41IDcuMS00LjEtOS0yLjgtMTguNy01LjMtMjQuNC0xMCAzLjEgMCA2IC43IDEwLTIuMS04LjEtNC4zLTE2LjctNy43LTIzLjQtMTQuMiA0LjItLjEgOC43IDAgMTAtMS42LTcuNC00LjUtMTMuNi05LjUtMTguOC0xNSA1LjggLjcgOC4zIC4xIDkuNy0uOS01LjYtNS42LTEyLjctMTAuNC0xNi0xNy4zIDQuMyAxLjUgOC4zIDIgMTEuMi0uMS0xLjktNC4yLTEwLTYuNy0xNC43LTE2LjYgNC42IC40IDkuNCAxIDEwLjQgMC0yLjEtOC41LTUuOC0xMy4zLTkuMy0xOC4yIDkuOC0uMSAyNC42IDAgMjMuOS0uOGwtNi02LjFjOS41LTIuNSAxOS4zIC40IDI2LjQgMi42IDMuMi0yLjUtLjEtNS42LTMuOS04LjggOC4xIDEuMSAxNS40IDIuOSAyMi4xIDUuNCAzLjUtMy4xLTIuMy02LjMtNS4xLTkuNCAxMi41IDIuMyAxNy44IDUuNiAyMy4xIDguOSAzLjgtMy42IC4yLTYuNy0yLjQtOS44IDkuNCAzLjQgMTQuMyA3LjkgMTkuNCAxMi4zIDEuNy0yLjMgNC40LTQgMS4yLTkuNiA2LjcgMy44IDExLjggOC4zIDE1LjUgMTMuMyA0LjEtMi42IDIuNS02LjIgMi41LTkuNCA3IDUuNiAxMS40IDExLjUgMTYuOCAxNy4zIDEuMS0uOCAyLTMuNCAyLjktNy42IDE2LjYgMTUuOSA0MC4xIDU1LjkgNiA3MS44LTI5LTIzLjUtNjMuNi00MC43LTEwMi01My41IDQ5LjMgMjUgNzggNDUuMyA5My43IDYyLjYtOCAzMS44LTUwIDMzLjItNjUuNCAzMi4zIDMuMS0xLjQgNS44LTMuMiA2LjctNS44LTQtMi44LTE3LjYtLjQtMjcuMi01LjZ6bTYwLjEgMjQuMWMxNi44IDIuOC04MC42IDg2LjUtODIuMSA2Ny45LTEuNS00OC43IDM2LjUtNzUuNSA4Mi4xLTY3Ljl6TTU4LjcgMzQyYy0yMy43LTE4LjgtMzEuMy03My43IDEyLjYtOTguMyAyNi41LTcgOSAxMDcuOC0xMi42IDk4LjN6bTkxIDk4LjJjLTEzLjMgNy45LTQ1LjggNC43LTY4LjgtMjcuOS0xNS41LTI3LjQtMTMuNS01NS4yLTIuNi02My40IDE2LjMtOS44IDQxLjUgMy40IDYwLjkgMjUuNiAxNi45IDIwIDI0LjYgNTUuMyAxMC41IDY1Ljd6TTEyMy4zIDMyMC41Yy0yNC41LTE1LjgtMjguOS01MS42LTkuOS04MHM1NC4zLTM4LjYgNzguOC0yMi44IDI4LjkgNTEuNiA5LjkgODBjLTE5LjEgMjguNC01NC40IDM4LjYtNzguOCAyMi44ek0yMjUuNSA0OTZjLTI5LjQgMS4yLTU4LjItMjMuNy01Ny44LTMyLjMtLjQtMTIuNyAzNS44LTIyLjYgNTkuMy0yMiAyMy43LTEgNTUuNiA3LjUgNTUuNyAxOC45IC41IDExLTI4LjggMzUuOS01Ny4yIDM1LjR6bTU4LjktMTI0LjljLjIgMjkuNy0yNi4yIDUzLjgtNTguOCA1NHMtNTkuMi0yMy44LTU5LjQtNTMuNGwwLS42Yy0uMi0yOS43IDI2LjItNTMuOCA1OC44LTU0czU5LjIgMjMuOCA1OS40IDUzLjRsMCAuNnptODIuMiA0Mi43Yy0yNS4zIDM0LjYtNTkuNiAzNS45LTcyLjMgMjYuMy0xMy4zLTEyLjQtMy4yLTUwLjkgMTUuMS03MiAyMC45LTIzLjMgNDMuMy0zOC41IDU4LjktMjYuNiAxMC41IDEwLjMgMTYuNyA0OS4xLTEuNyA3Mi4zem0yMi45LTczLjJjLTIxLjUgOS40LTM5LTEwNS4zLTEyLjYtOTguMyA0My45IDI0LjcgMzYuMyA3OS42IDEyLjYgOTguM3oiXX0sSG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNzczMiLGljb246WzUxMiw1MTIsW10sImYxM2MiLCJNNDgwIDMybC02NCAzNjgtMjIzLjMgODAtMTkyLjctODAgMTkuNi05NC44IDgyIDAtOCA0MC42IDExNi40IDQ0LjQgMTM0LjEtNDQuNCAxOC44LTk3LjEtMzMzLjQgMCAxNi04MiAzMzMuNyAwIDEwLjUtNTIuNy0zMzMuNCAwIDE2LjMtODIgNDA3LjQgMHoiXX0scW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imh1YnNwb3QiLGljb246WzQ0OCw1MTIsW10sImYzYjIiLCJNMjM1LjggMjExLjZjLTI1LjEgMjMuNy00MC44IDU3LjMtNDAuOCA5NC42IDAgMjkuMyA5LjcgNTYuMyAyNiA3OEwxNzEuNSA0MzRjLTQuNC0xLjYtOS4xLTIuNS0xNC0yLjUtMTAuOCAwLTIwLjkgNC4yLTI4LjUgMTEuOHMtMTEuOCAxNy44LTExLjggMjguNiA0LjIgMjAuOSAxMS44IDI4LjUgMTcuOCAxMS42IDI4LjUgMTEuNmMxMC44IDAgMjAuOS0zLjkgMjguNi0xMS42IDcuNi03LjYgMTEuOC0xNy44IDExLjgtMjguNSAwLTQuMi0uNi04LjItMS45LTEyLjFsNTAtNTAuMmMyMiAxNi45IDQ5LjQgMjYuOSA3OS4zIDI2LjkgNzEuOSAwIDEzMC01OC4zIDEzMC0xMzAuMiAwLTY1LjItNDcuNy0xMTkuMi0xMTAuMi0xMjguN2wwLTYxLjZjMTcuNS03LjQgMjguMi0yMy44IDI4LjItNDIuOSAwLTI2LjEtMjAuOS00Ny45LTQ3LTQ3LjlTMjc5LjYgNDcgMjc5LjYgNzMuMWMwIDE5LjEgMTAuNyAzNS41IDI4LjIgNDIuOWwwIDYxLjJjLTE1LjIgMi4xLTI5LjYgNi43LTQyLjcgMTMuNi0yNy42LTIwLjktMTE3LjUtODUuNy0xNjguOS0xMjQuOCAxLjItNC40IDItOSAyLTEzLjggMC0yOC44LTIzLjUtNTIuMi01Mi40LTUyLjItMjguOCAwLTUyLjIgMjMuNC01Mi4yIDUyLjIgMCAyOC45IDIzLjQgNTIuMyA1Mi4yIDUyLjMgOS44IDAgMTguOS0yLjkgMjYuOC03LjZMMjM1LjggMjExLjZ6bTg5LjUgMjUuNmE2OSA2OSAwIDEgMSAwIDEzOCA2OSA2OSAwIDEgMSAwLTEzOHoiXX0sVm50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNtcGxpZCIsaWNvbjpbNjQwLDUxMixbXSwiZTM2MCIsIk0yMjYuMSAzODguMmMwLS43LS4yLTEuNS0uNi0yLjFzLTEtMS4xLTEuNy0xLjRjLS41LS4yLTEuMS0uNC0xLjYtLjRsLTE0OS42IDBjLTMuMSAwLTYuMi0uOC04LjktMi4ycy01LjEtMy41LTYuOS02LjEtMi45LTUuNS0zLjMtOC42IDAtNi4yIDEuMS05LjFMODEuNiAyNTUuN2MyLTcuMiA2LjItMTMuNSAxMi0xOC4yczEyLjktNy40IDIwLjQtNy44bDE0OC42IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuNC0xIC4zLTItLjEtMi45cy0xLjItMS42LTIuMS0yYy0uNC0uMi0uOS0uMy0xLjQtLjMtLjEgMC0uMSAwLS4yIDBsLTE0OC41IDBjLTIyLjIgMS4yLTQzLjQgOS4yLTYwLjggMjNzLTMwIDMyLjctMzYuMiA1NC4xTDMuNSAzNTguOGMtMy4yIDguNy00LjIgMTgtMyAyNy4xczQuNiAxNy45IDkuOSAyNS41IDEyLjMgMTMuOCAyMC41IDE4IDE3LjMgNi41IDI2LjUgNi42YzEgMCAxLjkgMCAyLjktLjFsMTQ4LjYgMGMxLjUtLjEgMi45LS43IDQtMS42czItMi4yIDIuNC0zLjZsMTAuNy00MS4xYy4yLS41IC4zLS45IC4zLTEuNHptODAuNS0zMDdjLjItLjQgLjMtLjkgLjMtMS40IDAtLjUtLjEtMS0uMy0xLjVzLS41LS45LS44LTEuMi0uOC0uNi0xLjItLjgtMS0uMy0xLjUtLjNsLTQxLjIgMGMtMS41IC4xLTIuOSAuNi00IDEuNnMtMiAyLjItMi40IDMuNmwtMjEuMyA4MC45IDUxLjEgMCAyMS40LTgwLjl6bS0xMjYuMyAyODdsNTEuMSAwIDMyLTEyMi42LTUxLjEgMC0zMiAxMjIuNnpNNTExLjkgNzkuN2MwLTEtLjUtMS45LTEuMi0yLjZzLTEuNy0xLjEtMi42LTEuMWMtLjEgMC0uMSAwLS4yIDBsLTQxIDBjLTEuNSAuMS0yLjkgLjYtNC4xIDEuNXMtMiAyLjItMi41IDMuNkwzNjguOSA0MzAuNmMtLjIgLjQtLjMgLjktLjMgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjIgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNTExLjUgODEuMmMuMi0uNSAuMy0xIC4zLTEuNXpNMzI0LjYgMzg0LjVsLTQxIDBjLTEuNSAuMS0yLjkgLjctNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTEwLjcgNDEuMWMtLjIgLjQtLjMgLjktLjMgMS40IDAgLjUgLjEgMSAuMyAxLjVzLjUgLjkgLjggMS4yIC44IC42IDEuMiAuOCAxIC4zIDEuNSAuM2MuMSAwIC4yIDAgLjMgMGw0MC45IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuMi0uNiAuMy0xLjIgLjMtMS44cy0uMy0xLjItLjYtMS43LS44LS45LTEuMy0xLjItMS4yLS40LTEuOC0uNGMtLjEgMC0uMiAwLS4zIDBsMCAwek02MzYgNzYuMWwtNDEgMGMtMS41IC4xLTIuOSAuNi00IDEuNXMtMiAyLjItMi40IDMuNkw0OTcuMSA0MzAuNmMtLjIgLjQtLjIgLjktLjIgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjEgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNjM5LjcgODEuMmMuMi0uNSAuMy0xIC4zLTEuNS0uMS0xLS41LTEuOS0xLjItMi41cy0xLjYtMS0yLjYtMWMtLjEgMC0uMSAwLS4yIDBsMC0uMXpNMzcxLjYgMjI1LjJsMTAuOC00MS4xYy4yLS40IC4yLS45IC4yLTEuNCAwLTEtLjQtMi0xLjEtMi43cy0xLjctMS4xLTIuNy0xLjFsLTQxLjMgMGMtMS41IC4xLTIuOSAuNy00IDEuNnMtMiAyLjItMi40IDMuNmwtMTAuOCA0MS4xYy0uMiAuNS0uMyAxLS4zIDEuNWwwIC4yYy4xIDEgLjUgMS44IDEuMiAyLjVzMS42IDEgMi42IDFjLjEgMCAuMiAwIC4zIDBsNDEuMSAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNnoiXX0sVW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImR5YWxvZyIsaWNvbjpbNDQ4LDUxMixbXSwiZjM5OSIsIk0xNiAzMmwwIDExOS4yIDY0IDAgMC01NS4yIDEwNy4yIDBDMzAwLjYgOTYgMzY4IDE3Ni4yIDM2OCAyNTUuOSAzNjggMzMyIDMwOS40IDQxNiAxODcuMiA0MTZsLTE3MS4yIDAgMCA2NCAxNzEuMiAwQzM0Ny45IDQ4MCA0MzIgMzY3LjMgNDMyIDI1NS45IDQzMiAxOTcuMiA0MDkuOSAxNDIuNSAzNjkuNyAxMDEuNiAzMjQuOSA1NiAyNjEuNyAzMiAxODcuMiAzMkwxNiAzMnoiXX0sam50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVsZW1lbnRvciIsaWNvbjpbNTEyLDUxMixbXSwiZjQzMCIsIk0uNSAyNTZjMCAxNDEgMTEzLjYgMjU1IDI1NC42IDI1NSAxNDIgMCAyNTYtMTE0IDI1Ni0yNTUgMC0xNDAtMTE0LTI1My45LTI1Ni0yNTMuOS0xNDEgMC0yNTQuNiAxMTMuOS0yNTQuNiAyNTMuOXpNMTkyLjEgMTUwbDAgMjEzLTQzIDAgMC0yMTMgNDMgMHptNDIgMGwxMjggMCAwIDQzLTEyOCAwIDAtNDN6bTEyOCA4NWwwIDQzLTEyOCAwIDAtNDMgMTI4IDB6bS0xMjggODVsMTI4IDAgMCA0My0xMjggMCAwLTQzeiJdfSxXbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3Qtb3JkZXIiLGljb246WzQ0OCw1MTIsW10sImYyYjAiLCJNMTMuMyAyMjkuMmMuMS0uMSAuMi0uMyAuMy0uNCAwIC4xIDAgLjMtLjEgLjRsLS4yIDB6TTIyNC40IDk2LjZjLTcuMSAwLTE0LjYgLjYtMjEuNCAxLjdsMy43IDY3LjQtMjItNjRjLTE0LjMgMy43LTI3LjcgOS40LTQwIDE2LjZsMjkuNCA2MS40LTQ1LjEtNTAuOWMtMTEuNCA4LjktMjEuNyAxOS4xLTMwLjYgMzAuOWw1MC42IDQ1LjQtNjEuMS0yOS43Yy03LjEgMTIuMy0xMi45IDI1LjctMTYuNiA0MGw2NC4zIDIyLjYtNjgtNGMtLjkgNy4xLTEuNCAxNC42LTEuNCAyMnMuNiAxNC42IDEuNCAyMS43bDY3LjctNC02NCAyMi42YzMuNyAxNC4zIDkuNCAyNy43IDE2LjYgNDAuM0wxNDkgMzA2LjkgOTguMSAzNTJjOC45IDExLjcgMTkuMSAyMi4zIDMwLjkgMzAuOWw0NC45LTUwLjktMjkuNSA2MS40YzEyLjMgNy40IDI1LjcgMTMuMSA0MCAxNi45bDIyLjMtNjQuNi00IDY4YzcuMSAxLjEgMTQuNiAxLjcgMjEuNyAxLjcgNy40IDAgMTQuNi0uNiAyMS43LTEuN2wtNC02OC42IDIyLjYgNjUuMWMxNC4zLTQgMjcuNy05LjQgNDAtMTYuOWwtMjkuNC02MS4zIDQ0LjkgNTAuOWMxMS43LTguOSAyMi0xOS4xIDMwLjYtMzAuOWwtNTAuNi00NS4xIDYxLjEgMjkuNGM3LjEtMTIuMyAxMi45LTI1LjcgMTYuNi00MC4zbC02NC0yMi4zIDY3LjQgNGMxLjEtNy4xIDEuNC0xNC4zIDEuNC0yMS43cy0uMy0xNC45LTEuNC0yMmwtNjcuNyA0IDY0LTIyLjNjLTMuNy0xNC4zLTkuMS0yOC0xNi42LTQwLjNsLTYwLjkgMjkuNyA1MC42LTQ1LjRjLTguOS0xMS43LTE5LjEtMjItMzAuNi0zMC45bC00NS4xIDUwLjkgMjkuNC02MS4xYy0xMi4zLTcuNC0yNS43LTEzLjEtNDAtMTYuOWwtMjIuMyA2NC4zIDQtNjcuN2MtNy4xLTEuMi0xNC4zLTEuNy0yMS43LTEuN3pNNDQzLjggMTI4TDQ0My44IDM4NCAyMjQuNCA1MTIgNSAzODQgNSAxMjggMjI0LjQgMCA0NDMuOCAxMjh6bS0xNy4xIDEwLjNsLTIwMi4zLTExNy40LTIwMi4zIDExNy40IDAgMjM1LjEgMjAyLjMgMTE3LjcgMjAyLjMtMTE3LjcgMC0yMzUuMXpNMjI0LjQgMzcuMWwxODcuNyAxMDkuNCAwIDIxOC45LTE4Ny43IDEwOS41LTE4Ny43LTEwOS41IDAtMjE4LjggMTg3LjctMTA5LjV6bTAgNTAuOWMtOTIuMyAwLTE2Ni45IDc1LjEtMTY2LjkgMTY4IDAgOTIuNiA3NC42IDE2Ny43IDE2Ni45IDE2Ny43IDkyIDAgMTY2LjktNzUuMSAxNjYuOS0xNjcuNyAwLTkyLjktNzQuOS0xNjgtMTY2LjktMTY4eiJdfSxHbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJpYmJibGUiLGljb246WzUxMiw1MTIsW10sImYxN2QiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MjAgMTIyLjRjMjkuNSAzNiA0Ny40IDgyIDQ3LjggMTMyLTctMS41LTc3LTE1LjctMTQ3LjUtNi44LTUuOC0xNC0xMS4yLTI2LjQtMTguNi00MS42IDc4LjMtMzIgMTEzLjgtNzcuNSAxMTguMy04My41ek0zOTYuNCA5Ny45Yy0zLjggNS40LTM1LjcgNDguMy0xMTEgNzYuNS0zNC43LTYzLjgtNzMuMi0xMTYuMi03OS0xMjQgNjcuMi0xNi4yIDEzOCAxLjMgMTkwLjEgNDcuNXpNMTY1LjkgNjQuNmM1LjYgNy43IDQzLjQgNjAuMSA3OC41IDEyMi41LTk5LjEgMjYuMy0xODYuNCAyNS45LTE5NS44IDI1LjggMTMuNy02NS43IDU4LTEyMC40IDExNy4zLTE0OC4zek00NC4yIDI1Ni4zYzAtMi4yIDAtNC4zIC4xLTYuNSA5LjMgLjIgMTExLjkgMS41IDIxNy43LTMwLjEgNi4xIDExLjkgMTEuOSAyMy45IDE3LjIgMzUuOS03Ni42IDIxLjYtMTQ2LjIgODMuNS0xODAuNSAxNDIuMy0zMy44LTM3LjYtNTQuNS04Ny4yLTU0LjUtMTQxLjZ6TTEyNiA0MjMuNGMyMi4xLTQ1LjIgODIuMi0xMDMuNiAxNjcuNi0xMzIuOCAyOS43IDc3LjMgNDIgMTQyLjEgNDUuMiAxNjAuNi02OC4xIDI5LTE1MCAyMS4xLTIxMi44LTI3Ljl6bTI0OC40IDguNWMtMi4yLTEyLjktMTMuNC03NC45LTQxLjItMTUxIDY2LjQtMTAuNiAxMjQuNyA2LjggMTMxLjkgOS4xLTkuNCA1OC45LTQzLjMgMTA5LjgtOTAuOCAxNDJ6Il19LHVWPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmtlZGluIixpY29uOls0NDgsNTEyLFtdLCJmMDhjIiwiTTQxNiAzMkwzMS45IDMyQzE0LjMgMzIgMCA0Ni41IDAgNjQuM0wwIDQ0Ny43QzAgNDY1LjUgMTQuMyA0ODAgMzEuOSA0ODBMNDE2IDQ4MGMxNy42IDAgMzItMTQuNSAzMi0zMi4zbDAtMzgzLjRDNDQ4IDQ2LjUgNDMzLjYgMzIgNDE2IDMyek0xMzUuNCA0MTZsLTY2LjQgMCAwLTIxMy44IDY2LjUgMCAwIDIxMy44LS4xIDB6TTEwMi4yIDk2YTM4LjUgMzguNSAwIDEgMSAwIDc3IDM4LjUgMzguNSAwIDEgMSAwLTc3ek0zODQuMyA0MTZsLTY2LjQgMCAwLTEwNGMwLTI0LjgtLjUtNTYuNy0zNC41LTU2LjctMzQuNiAwLTM5LjkgMjctMzkuOSA1NC45bDAgMTA1LjgtNjYuNCAwIDAtMjEzLjggNjMuNyAwIDAgMjkuMiAuOSAwYzguOS0xNi44IDMwLjYtMzQuNSA2Mi45LTM0LjUgNjcuMiAwIDc5LjcgNDQuMyA3OS43IDEwMS45bDAgMTE3LjJ6Il19LFludD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1wYXlwYWwiLGljb246WzU3Niw1MTIsW10sImYxZjQiLCJNMTg2LjMgMjU4LjJjMCAxMi4yLTkuNyAyMS41LTIyIDIxLjUtOS4yIDAtMTYtNS4yLTE2LTE1IDAtMTIuMiA5LjUtMjIgMjEuNy0yMiA5LjMgMCAxNi4zIDUuNyAxNi4zIDE1LjV6TTgwLjUgMjA5LjdsLTQuNyAwYy0xLjUgMC0zIDEtMy4yIDIuN2wtNC4zIDI2LjcgOC4yLS4zYzExIDAgMTkuNS0xLjUgMjEuNS0xNC4yIDIuMy0xMy40LTYuMi0xNC45LTE3LjUtMTQuOXptMjg0IDBsLTQuNSAwYy0xLjggMC0zIDEtMy4yIDIuN2wtNC4yIDI2LjcgOC0uM2MxMyAwIDIyLTMgMjItMTgtLjEtMTAuNi05LjYtMTEuMS0xOC4xLTExLjF6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTEyOC4zIDIxNS40YzAtMjEtMTYuMi0yOC0zNC43LTI4bC00MCAwYy0yLjUgMC01IDItNS4yIDQuN0wzMiAyOTQuMmMtLjMgMiAxLjIgNCAzLjIgNGwxOSAwYzIuNyAwIDUuMi0yLjkgNS41LTUuN2w0LjUtMjYuNmMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNiAwIDQ2LjEtMTcgNDYuMS00NS44em04NC4yIDguOGwtMTkgMGMtMy44IDAtNCA1LjUtNC4yIDguMi01LjgtOC41LTE0LjItMTAtMjMuNy0xMC0yNC41IDAtNDMuMiAyMS41LTQzLjIgNDUuMiAwIDE5LjUgMTIuMiAzMi4yIDMxLjcgMzIuMiA5IDAgMjAuMi00LjkgMjYuNS0xMS45LS41IDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRsMTcuMiAwYzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6TTI1MyAzMjIuMWw2My43LTkyLjZjLjUtLjUgLjUtMSAuNS0xLjcgMC0xLjctMS41LTMuNS0zLjItMy41bC0xOS4yIDBjLTEuNyAwLTMuNSAxLTQuNSAyLjVsLTI2LjUgMzktMTEtMzcuNWMtLjgtMi4yLTMtNC01LjUtNGwtMTguNyAwYy0xLjcgMC0zLjIgMS44LTMuMiAzLjUgMCAxLjIgMTkuNSA1Ni44IDIxLjIgNjIuMS0yLjcgMy44LTIwLjUgMjguNi0yMC41IDMxLjYgMCAxLjggMS41IDMuMiAzLjIgMy4ybDE5LjIgMGMxLjgtLjEgMy41LTEuMSA0LjUtMi42ek00MTIuMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGwtMzkuNyAwYy0yLjcgMC01LjIgMi01LjUgNC43bC0xNi4yIDEwMmMtLjIgMiAxLjMgNCAzLjIgNGwyMC41IDBjMiAwIDMuNS0xLjUgNC0zLjJsNC41LTI5YzEtNy4yIDEzLjItNC43IDE4LTQuNyAyOC40IDAgNDUuOS0xNyA0NS45LTQ1Ljh6bTg0LjIgOC44bC0xOSAwYy0zLjggMC00IDUuNS00LjMgOC4yLTUuNS04LjUtMTQtMTAtMjMuNy0xMC0yNC41IDAtNDMuMiAyMS41LTQzLjIgNDUuMiAwIDE5LjUgMTIuMiAzMi4yIDMxLjcgMzIuMiA5LjMgMCAyMC41LTQuOSAyNi41LTExLjktLjMgMS41LTEgNC43LTEgNi4yIDAgMi4zIDEgNCAzLjIgNGwxNy4zIDBjMi43IDAgNS0yLjkgNS41LTUuN2wxMC4yLTY0LjNjLjMtMS45LTEuMi0zLjktMy4yLTMuOXpNNTQ0IDE5MC45YzAtMi0xLjUtMy41LTMuMi0zLjVsLTE4LjUgMGMtMS41IDAtMyAxLjItMy4yIDIuN2wtMTYuMiAxMDQtLjMgLjVjMCAxLjggMS41IDMuNSAzLjUgMy41bDE2LjUgMGMyLjUgMCA1LTIuOSA1LjItNS43bDE2LjItMTAxLjIgMC0uM3ptLTkwIDUxLjhjLTEyLjIgMC0yMS43IDkuNy0yMS43IDIyIDAgOS43IDcgMTUgMTYuMiAxNSAxMiAwIDIxLjctOS4yIDIxLjctMjEuNSAuMS05LjgtNi45LTE1LjUtMTYuMi0xNS41eiJdfSxabnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGhsIixpY29uOls2NDAsNTEyLFtdLCJmNzkwIiwiTTIzOCAzMDEuMmw1OC43IDAgMjIuMy0zMC4yLTU4LjcgMC0yMi4zIDMwLjJ6TTAgMjgyLjlsMCA2LjQgODEuOCAwIDQuNy02LjQtODYuNSAwek0xNzIuOSAyNzFjLTguNyAwLTYtMy42LTQuNi01LjUgMi44LTMuOCA3LjYtMTAuNCAxMC40LTE0LjFzMi44LTUuOS0yLjgtNS45bC01MSAwLTQxLjEgNTUuOCAxMDAuMSAwYzMzLjEgMCA1MS41LTIyLjUgNTcuMi0zMC4zbC02OC4yIDB6bTMxNy41LTYuOWwzOS4zLTUzLjQtNjIuMiAwLTM5LjMgNTMuNCA2Mi4yIDB6TTk1LjMgMjcxbC05NS4zIDAgMCA2LjQgOTAuNiAwIDQuNy02LjR6bTExMS0yNi42Yy0yLjggMy44LTcuNSAxMC40LTEwLjMgMTQuMi0xLjQgMi00LjEgNS41IDQuNiA1LjVsNDUuNiAwczcuMy0xMCAxMy41LTE4LjRjOC40LTExLjQgLjctMzUtMjkuMi0zNWwtMTE3LjkgMC0yMC40IDI3LjggMTExLjQgMGM1LjYgMCA1LjUgMi4yIDIuNyA1Ljl6TTAgMzAxLjJsNzMuMSAwIDQuNy02LjQtNzcuOCAwIDAgNi40em0zMjMgMGw1OC43IDAgMjIuMy0zMC4yLTU4LjcgMGMtLjEgMC0yMi4zIDMwLjItMjIuMyAzMC4yem0yMjIgLjFsOTUgMCAwLTYuNC05MC4zIDAtNC43IDYuNHpNNTY3LjMgMjcxbC00LjcgNi40IDc3LjQgMCAwLTYuNC03Mi43IDB6bS0xMy41IDE4LjNsODYuMiAwIDAtNi40LTgxLjUgMC00LjcgNi40ek0zODkuNiAyMTAuN2wtMjIuNSAzMC42LTI2LjIgMCAyMi41LTMwLjYtNTguNyAwLTM5LjMgNTMuNCAxNDMuNiAwIDM5LjMtNTMuNC01OC43IDB6TTQyMy4xIDI3MXMtNC4zIDUuOS02LjQgOC43Yy03LjQgMTAtLjkgMjEuNiAyMy4yIDIxLjZsOTQuMyAwIDIyLjMtMzAuMy0xMzMuNCAweiJdfSxYbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGV4IixpY29uOls2NDAsNTEyLFtdLCJlN2ZmIiwiTTYyMC44IDk1LjRjLTMwLjggLjQtNDIuMSAxNi42LTQ3LjcgMjQuNWwtLjEgLjEtNTUuNyA4MC41IDgyLjggMTIxLjFjNy41IDEwLjYgMTEuMyAxMi41IDM1LjQgMTIuNWwwIDkuMWMtOS4xLS43LTI4LS43LTM3LjctLjctMTIuNCAwLTMwLjggMC00Mi45IC43bDAtOS4xYzEzLjItLjggMTYuNi03LjMgMTYuNi0xMC4yIDAtMS4xIDAtMi4zLTMtNi40bC02NS41LTk2LjMtNjAuMiA4Ny45Yy0xLjkgMi43LTMuOCA1LjQtMy44IDEwLjIgMCA2LjEgMy40IDEzLjYgMTUgMTQuN2wwIDkuMWMtOS40LS43LTI3LjEtLjctMzcuMi0uN2wtMi44IDAtMTEuNyA4Mi42LTE5NS45IDAgMC05LjFjMjYuNyAwIDMwLjkgMCAzMC45LTE2LjlsMC0yMDMuMmMwLTE2LjktNC4zLTE2LjktMzAuOS0xNi45bDAtMTAuMyAxOS44IDBjLTQuOC02MS4xLTEwLjgtNzEuNy02OC03MS44bC0yMC43IDBjLTYuOCAxLjUtNi44IDYuMS02LjggMTQuNGwwIDIwNWMwIDEzLjYgMS4xIDE3LjggMzIuNCAxNy44bDEwLjUgMCAwIDkuMS0uNCAwYy0xNy45LS4zLTM2LjctLjctNTQuOS0uN3MtMzYuOSAuMy01NC44IC43bC0uNiAwIDAtOS4xIDEwLjcgMGMzMS43IDAgMzIuOC00LjEgMzIuOC0xNy44bDAtMjA1YzAtOC43IDAtMTMuMi03LjItMTQuM2wtMjAuOCAwYy01OC40IDAtNjMuNyAxMC45LTY4LjYgNzMuM2wtNi44IDAgNi4zLTgzLjMgMjE3LjUgMCA2LjEgODEuOCAxNjQuMSAwIDkgODMuMy02LjggMGMtNS4zLTQ5LjgtMTIuMS03My03MC4zLTczbC01MS41IDBjLTE1IDAtMTUuOCAxLjktMTUuOCAxNC42bDAgOTMuMyAzNS41IDBjMzUuNSAwIDM4LjktMTIuOCAzOC45LTQ0bDYgMCAwIDk3LjktNiAwYzAtMzEuOC0zLjQtNDQuOC0zOC45LTQ0LjhsLTM1LjUgMCAwIDEwNS4yYzAgMTMgLjcgMTQuOCAxNS44IDE0LjhsNTIuMiAwYzYxLjEgMCA2OS45LTI1LjggNzcuNC03My42LTcuNyAwLTE2LjMgLjItMjIuMiAuN2wwLTkuMWM3LjIgMCAzMS43LS40IDQ3LjgtMjMuOGw2NS41LTk1LjctNzIuNy0xMDYuN2MtOC4zLTExLjctMTUuMS0xMi41LTM1LjgtMTIuNWwwLTkuMWM5LjEgLjcgMjcuOSAuNyAzNy43IC43IDEyLjQgMCAzMC44IDAgNDIuOS0uN2wwIDkuMWMtMTIuNSAuNC0xNi42IDYuOC0xNi42IDEwLjIgMCAxLjEgLjQgMi4zIDMgNi40bDU1LjcgODEuNiA0OS43LTcyLjFjMi43LTMuNyA0LjUtNi44IDQuNS0xMS4zIDAtNi4xLTMtMTMuNi0xNS0xNC44bDAtOS4xYzkuNCAuNyAyNC44IC43IDM3LjIgLjcgOSAwIDIzLjMgMCAzMi0uN2wwIDkuMXoiXX0sUW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNob3BpZnkiLGljb246WzQ0OCw1MTIsW10sImUwNTciLCJNMzg4LjUgMTA0LjFjLS4yLTEuMS0uNy0yLjEtMS41LTIuOHMtMS44LTEuMi0yLjktMS4yYy0yIDAtMzcuMi0uOC0zNy4yLS44cy0yMS42LTIwLjgtMjkuNi0yOC44bDAgNDMyLjcgMTI1LjctMzEuMnMtNTQtMzY1LjUtNTQuNC0zNjcuOXpNMjg4LjkgNzAuNWMtMS45LTYuMS00LjMtMTEuOS03LjItMTcuNi0xMC40LTIwLTI2LTMwLjktNDQuNC0zMC45LTEuMyAwLTIuNyAuMS00IC40LS40LS44LTEuMi0xLjItMS42LTItOC04LjgtMTguNC0xMi44LTMwLjgtMTIuNC0yNCAuOC00OCAxOC02Ny4yIDQ4LjgtMTMuNiAyMS42LTI0IDQ4LjgtMjYuOCA3MC4xLTI3LjYgOC40LTQ2LjggMTQuNC00Ny4yIDE0LjgtMTQgNC40LTE0LjQgNC44LTE2IDE4LTEuMiAxMC0zOCAyOTEuOC0zOCAyOTEuOGwzMDIuNiA1Mi41IDAtNDM4LjNjLTEuNSAuMS0yLjkgLjItNC40IC40IDAgMC01LjYgMS42LTE0LjggNC40ek0yMzMuNiA4Ny43Yy0xNiA0LjgtMzMuNiAxMC40LTUwLjggMTUuNiA0LjgtMTguOCAxNC40LTM3LjYgMjUuNi01MCA0LjQtNC40IDEwLjQtOS42IDE3LjItMTIuOCA2LjggMTQuNCA4LjQgMzQgOCA0Ny4yek0yMDAuOCAyNC40YzUtLjIgMTAgMS4xIDE0LjQgMy42LTYuNCAzLjItMTIuOCA4LjQtMTguOCAxNC40LTE1LjIgMTYuNC0yNi44IDQyLTMxLjYgNjYuNS0xNC40IDQuNC0yOC44IDguOC00MiAxMi44IDguOC0zOC40IDQxLjItOTYuNCA3OC05Ny4yek0xNTQuNCAyNDQuNmMxLjYgMjUuNiA2OS4yIDMxLjIgNzMuMiA5MS43IDIuOCA0Ny42LTI1LjIgODAuMS02NS42IDgyLjUtNDguOCAzLjItNzUuNi0yNS42LTc1LjYtMjUuNmwxMC40LTQ0czI2LjggMjAuNCA0OC40IDE4LjhjMTQtLjggMTkuMi0xMi40IDE4LjgtMjAuNC0yLTMzLjYtNTcuMi0zMS42LTYwLjgtODYuOS0zLjItNDYuNCAyNy4yLTkzLjMgOTQuNS05Ny43IDI2LTEuNiAzOS4yIDQuOCAzOS4yIDQuOGwtMTUuMiA1Ny42cy0xNy4yLTgtMzcuNi02LjRjLTI5LjYgMi0zMCAyMC44LTI5LjYgMjUuNnpNMjQ5LjYgODIuOWMwLTEyLTEuNi0yOS4yLTcuMi00My42IDE4LjQgMy42IDI3LjIgMjQgMzEuMiAzNi40LTcuMiAyLTE1LjIgNC40LTI0IDcuMnoiXX0sWDFlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1yZWRkaXQiLGljb246WzQ0OCw1MTIsWyJyZWRkaXQtc3F1YXJlIl0sImYxYTIiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyek0zMDUuOSAxNjYuNGMyMC42IDAgMzcuMy0xNi43IDM3LjMtMzcuM3MtMTYuNy0zNy4zLTM3LjMtMzcuM2MtMTggMC0zMy4xIDEyLjgtMzYuNiAyOS44LTMwLjIgMy4yLTUzLjggMjguOC01My44IDU5LjlsMCAuMmMtMzIuOCAxLjQtNjIuOCAxMC43LTg2LjYgMjUuNS04LjgtNi44LTE5LjktMTAuOS0zMi0xMC45LTI4LjkgMC01Mi4zIDIzLjQtNTIuMyA1Mi4zIDAgMjEgMTIuMyAzOSAzMC4xIDQ3LjQgMS43IDYwLjcgNjcuOSAxMDkuNiAxNDkuMyAxMDkuNnMxNDcuNi00OC45IDE0OS4zLTEwOS43YzE3LjctOC40IDI5LjktMjYuNCAyOS45LTQ3LjMgMC0yOC45LTIzLjQtNTIuMy01Mi4zLTUyLjMtMTIgMC0yMyA0LTMxLjkgMTAuOC0yNC0xNC45LTU0LjMtMjQuMi04Ny41LTI1LjRsMC0uMWMwLTIyLjIgMTYuNS00MC43IDM3LjktNDMuNyAzLjkgMTYuNSAxOC43IDI4LjcgMzYuMyAyOC43bC4yLS4yek0xNTUgMjQ4LjFjMTQuNiAwIDI1LjggMTUuNCAyNSAzNC40cy0xMS44IDI1LjktMjYuNSAyNS45LTI3LjUtNy43LTI2LjYtMjYuNyAxMy41LTMzLjUgMjguMS0zMy41bDAtLjF6bTE2Ni40IDMzLjVjLjkgMTktMTIgMjYuNy0yNi42IDI2LjdzLTI1LjYtNi45LTI2LjUtMjUuOSAxMC4zLTM0LjQgMjUtMzQuNCAyNy4zIDE0LjYgMjguMSAzMy41bDAgLjF6bS00Mi4xIDQ5LjZjLTkgMjEuNS0zMC4zIDM2LjctNTUuMSAzNi43cy00Ni4xLTE1LjEtNTUuMS0zNi43Yy0xLjEtMi42IC43LTUuNCAzLjQtNS43IDE2LjEtMS42IDMzLjUtMi41IDUxLjctMi41czM1LjYgLjkgNTEuNyAyLjVjMi43IC4zIDQuNSAzLjEgMy40IDUuN3oiXX0sS250PVgxZSxKbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYyIsaWNvbjpbNTEyLDUxMixbXSwiZjRlOCIsIk0yNTUuNiA4QzM5NS40IDggNTA0IDExNS45IDUwNCAyNTYgNTA0IDQwMy4yIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjEgNTA0IDggMzkzLjIgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6TTYzLjggMTg5LjFjLTcuNCAyMC40LTExLjEgNDIuNy0xMS4xIDY2LjkgMCAxMTAuOSA5Mi4xIDIwMi40IDIwMy43IDIwMi40IDEyMi40IDAgMTc3LjItMTAxLjggMTc4LjUtMTA0LjFsLTkzLjQtNDEuNmMtNy43IDM3LjEtNDEuMiA1My02OC4yIDU1LjRsMCAzOC4xLTI4LjggMCAwLTM4LjJjLTI3LjUtLjMtNTIuNi0xMC4yLTc1LjMtMjkuN2wzNC4xLTM0LjVjMzEuNyAyOS40IDg2LjQgMzEuOCA4Ni40LTIuMiAwLTYuMi0yLjItMTEuMi02LjYtMTUuMS0xNC4yLTYtMS44LS4xLTIxOS4zLTk3LjR6TTI1Ni40IDUyLjNDMjE4IDUyLjMgMTQ0IDYxIDg1LjkgMTQ1LjNsOTQuOCA0Mi41YzEwLTMxLjMgNDAuNC00Mi45IDYzLjgtNDQuM2wwLTM4LjEgMjguOCAwIDAgMzguMWMyMi43IDEuMiA0My40IDguOSA2MiAyM0wzMDMgMTk5LjdjLTQyLjctMjkuOS04My41LTgtNzAgMTEuMSA1My40IDI0LjEgNDMuOCAxOS44IDkzIDQxLjZsMTI3LjEgNTYuN2M0LjEtMTcuNCA2LjItMzUuMSA2LjItNTMuMSAwLTU3LTE5LjgtMTA1LTU5LjMtMTQzLjktMzkuMy0zOS45LTg3LjItNTkuOC0xNDMuNi01OS44eiJdfSxlMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2FsYWN0aWMtcmVwdWJsaWMiLGljb246WzUxMiw1MTIsW10sImY1MGMiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMSAwIDQ5NiAyNDggMjQ4IDAgMSAxIDAtNDk2em0wIDE2LjVhMjMxLjUgMjMxLjUgMCAxIDAgMCA0NjIuOSAyMzEuNSAyMzEuNSAwIDEgMCAwLTQ2Mi45em0yNy42IDIxLjhsMCAyNC42YzMwLjMgNC41IDU5IDE2LjMgODMuNiAzNC41bDE3LjQtMTcuNGMtMjguNy0yMi4xLTYzLjMtMzYuOS0xMDEtNDEuOHptLTU1LjQgLjFjLTM3LjYgNC45LTcyLjIgMTkuOC0xMDAuOSA0MS45bDE3LjMgMTcuNCAuMSAwYzI0LjEtMTcuOCA1Mi42LTMwLjEgODMuNS0zNC43bDAtMjQuNXptMTIuMiA1MC4ybDAgODIuOWMtMTAgMi0xOS40IDUuOS0yNy43IDExLjRsLTU4LjYtNTguNi0yMS45IDIxLjkgNTguNyA1OC43Yy01LjUgOC4yLTkuNCAxNy42LTExLjUgMjcuNmwtODIuOSAwIDAgMzEgODIuOSAwYzIgMTAgNiAxOS4zIDExLjUgMjcuNWwtNTguNyA1OC43IDIxLjkgMjEuOSA1OC42LTU4LjZjOC40IDUuNiAxNy44IDkuNSAyNy43IDExLjVsMCA4Mi45IDMxIDAgMC04Mi45YzEwLTIgMTkuNC02LjEgMjcuNi0xMS41bDU4LjcgNTguNyAyMS45LTIxLjktNTguNy01OC43YzUuNS04LjIgOS41LTE3LjUgMTEuNS0yNy41bDgyLjkgMCAwLTMxLTgyLjkgMGMtMi0xMC02LTE5LjQtMTEuNS0yNy42bDU4LjctNTguNy0yMS45LTIxLjktNTguNyA1OC43Yy04LjItNS41LTE3LjYtOS41LTI3LjYtMTEuNWwwLTgyLjktMzEgMHptMTgzLjIgMzAuN2wtMTcuNCAxNy40YzE4LjMgMjQuNiAzMC4yIDUzLjQgMzQuNyA4My43bDI0LjYgMGMtNS0zNy43LTE5LjgtNzIuMy00MS45LTEwMXptLTMzNS42IC4xYy0yMi4xIDI4LjctMzYuOSA2My4zLTQxLjggMTAwLjlsMjQuNiAwYzQuNi0zMSAxNi44LTU5LjQgMzQuNi04My41TDg4LjIgMTI3LjR6TTQ2LjMgMjgzLjdjNC45IDM3LjYgMTkuNyA3Mi4yIDQxLjggMTAwLjlsMTcuNC0xNy40Qzg3LjcgMzQzLjEgNzUuNiAzMTQuNiA3MSAyODMuN2wtMjQuNiAwIDAgMHptMzk0LjcgMGMtNC42IDMxLTE2LjggNTkuNS0zNC43IDgzLjZsMTcuNCAxNy40YzIyLjEtMjguNyAzNy02My4zIDQxLjktMTAxbC0yNC42IDB6TTE0NC43IDQwNi40bC0xNy40IDE3LjRjMjguNyAyMi4xIDYzLjMgMzcgMTAxIDQxLjlsMC0yNC42Yy0zMS00LjYtNTkuNS0xNi44LTgzLjYtMzQuNnptMjIyLjUgMGMtMjQuMSAxNy44LTUyLjYgMzAuMS04My42IDM0LjdsMCAyNC42YzM3LjctNC45IDcyLjItMTkuOCAxMDEtNDEuOGwtMTcuMy0xNy40LS4xIDB6Il19LHBWPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZhY2Vib29rIixpY29uOls1MTIsNTEyLFs2MmUzXSwiZjA5YSIsIk01MTIgMjU2QzUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwUzAgMTE0LjYgMCAyNTZDMCAzNzYgODIuNyA0NzYuOCAxOTQuMiA1MDQuNWwwLTE3MC4zLTUyLjggMCAwLTc4LjIgNTIuOCAwIDAtMzMuN2MwLTg3LjEgMzkuNC0xMjcuNSAxMjUtMTI3LjUgMTYuMiAwIDQ0LjIgMy4yIDU1LjcgNi40bDAgNzAuOGMtNi0uNi0xNi41LTEtMjkuNi0xLTQyIDAtNTguMiAxNS45LTU4LjIgNTcuMmwwIDI3LjggODMuNiAwLTE0LjQgNzguMi02OS4zIDAgMCAxNzUuOUM0MTMuOCA0OTQuOCA1MTIgMzg2LjkgNTEyIDI1NnoiXX0sdDB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGxhYiIsaWNvbjpbNTEyLDUxMixbXSwiZjI5NiIsIk01MDQgMjA0LjZsLS43LTEuOC02OS43LTE4MS44Yy0xLjQtMy42LTMuOS02LjYtNy4yLTguNi0yLjQtMS42LTUuMS0yLjUtOC0yLjhzLTUuNyAuMS04LjQgMS4xLTUuMSAyLjctNy4xIDQuOGMtMS45IDIuMS0zLjMgNC43LTQuMSA3LjRsLTQ3IDE0NC0xOTAuNSAwLTQ3LjEtMTQ0Yy0uOC0yLjgtMi4yLTUuMy00LjEtNy40LTItMi4xLTQuNC0zLjctNy4xLTQuOC0yLjYtMS01LjUtMS40LTguNC0xLjFzLTUuNiAxLjItOCAyLjhjLTMuMiAyLTUuOCA1LjEtNy4yIDguNkw5LjggMjAyLjggOSAyMDQuNmMtMTAgMjYuMi0xMS4zIDU1LTMuNSA4MiA3LjcgMjYuOSAyNCA1MC43IDQ2LjQgNjcuNmwuMyAuMiAuNiAuNCAxMDYgNzkuNWMzOC41IDI5LjEgNjYuNyA1MC4zIDg0LjYgNjMuOSAzLjcgMS45IDguMyA0LjMgMTMgNC4zczkuMy0yLjQgMTMtNC4zYzE3LjktMTMuNSA0Ni4xLTM0LjkgODQuNi02My45bDEwNi43LTc5LjkgLjMtLjNjMjIuNC0xNi45IDM4LjctNDAuNiA0NS42LTY3LjUgOC42LTI3IDcuNC01NS44LTIuNi04MnoiXX0sYTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InFxIixpY29uOls0NDgsNTEyLFtdLCJmMWQ2IiwiTTQzNC4xIDQyMC40Yy0xMS41IDEuNC00NC45LTUyLjctNDQuOS01Mi43IDAgMzEuMy0xNi4xIDcyLjItNTEgMTAxLjggMTYuOCA1LjIgNTQuOCAxOS4yIDQ1LjggMzQuNC03LjMgMTIuMy0xMjUuNSA3LjktMTU5LjYgNC0zNC4xIDMuOC0xNTIuMyA4LjMtMTU5LjYtNC05LTE1LjIgMjguOS0yOS4yIDQ1LjgtMzQuNC0zNC45LTI5LjUtNTEuMS03MC40LTUxLjEtMTAxLjggMCAwLTMzLjMgNTQuMS00NC45IDUyLjctNS40LS42LTEyLjQtMjkuNiA5LjMtOTkuNyAxMC4zLTMzIDIyLTYwLjUgNDAuMS0xMDUuOC0zLjEtMTE2LjkgNDUuMi0yMTUgMTYwLjMtMjE1IDExMy43IDAgMTYzLjIgOTYuMSAxNjAuMyAyMTUgMTguMSA0NS4yIDI5LjkgNzIuOSA0MC4xIDEwNS44IDIxLjggNzAuMSAxNC43IDk5LjEgOS4zIDk5Ljd6Il19LHIwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHJpcGUiLGljb246WzY0MCw1MTIsW10sImY0MjkiLCJNMTY1IDE0NC43bC00My4zIDkuMi0uMiAxNDIuNGMwIDI2LjMgMTkuOCA0My4zIDQ2LjEgNDMuMyAxNC42IDAgMjUuMy0yLjcgMzEuMi01LjlsMC0zMy44Yy01LjcgMi4zLTMzLjcgMTAuNS0zMy43LTE1LjdsMC02My4yIDMzLjcgMCAwLTM3LjgtMzMuNyAwLS4xLTM4LjV6bTg5LjEgNTEuNmwtMi43LTEzLjEtMzguNCAwIDAgMTUzLjIgNDQuMyAwIDAtMTAzLjFjMTAuNS0xMy44IDI4LjItMTEuMSAzMy45LTkuM2wwLTQwLjhjLTYtMi4xLTI2LjctNi0zNy4xIDEzLjF6TTM0Ni40IDEyNGwtNDQuNiA5LjUgMCAzNi4yIDQ0LjYtOS41IDAtMzYuMnpNNDQuOSAyMjguM2MwLTYuOSA1LjgtOS42IDE1LjEtOS43IDEzLjUgMCAzMC43IDQuMSA0NC4yIDExLjRsMC00MS44Yy0xNC43LTUuOC0yOS40LTguMS00NC4xLTguMS0zNiAwLTYwIDE4LjgtNjAgNTAuMiAwIDQ5LjIgNjcuNSA0MS4yIDY3LjUgNjIuNCAwIDguMi03LjEgMTAuOS0xNyAxMC45LTE0LjcgMC0zMy43LTYuMS00OC42LTE0LjJsMCA0MGMxNi41IDcuMSAzMy4yIDEwLjEgNDguNSAxMC4xIDM2LjkgMCA2Mi4zLTE1LjggNjIuMy00Ny44IDAtNTIuOS02Ny45LTQzLjQtNjcuOS02My40ek02NDAgMjYxLjZjMC00NS41LTIyLTgxLjQtNjQuMi04MS40cy02Ny45IDM1LjktNjcuOSA4MS4xYzAgNTMuNSAzMC4zIDc4LjIgNzMuNSA3OC4yIDIxLjIgMCAzNy4xLTQuOCA0OS4yLTExLjVsMC0zMy40Yy0xMi4xIDYuMS0yNiA5LjgtNDMuNiA5LjgtMTcuMyAwLTMyLjUtNi4xLTM0LjUtMjYuOWw4Ni45IDBjLjItMi4zIC42LTExLjYgLjYtMTUuOXptLTg3LjktMTYuOGMwLTIwIDEyLjMtMjguNCAyMy40LTI4LjQgMTAuOSAwIDIyLjUgOC40IDIyLjUgMjguNGwtNDUuOSAwek00MzkuMiAxODAuMmMtMTcuNCAwLTI4LjYgOC4yLTM0LjggMTMuOWwtMi4zLTExLTM5LjEgMCAwIDIwNC44IDQ0LjQtOS40IC4xLTUwLjJjNi40IDQuNyAxNS45IDExLjIgMzEuNCAxMS4yIDMxLjggMCA2MC44LTIzLjIgNjAuOC03OS42IC4xLTUxLjYtMjkuMy03OS43LTYwLjUtNzkuN3pNNDI4LjYgMzAyLjdjLTEwLjQgMC0xNi42LTMuOC0yMC45LTguNGwtLjMtNjZjNC42LTUuMSAxMS04LjggMjEuMi04LjggMTYuMiAwIDI3LjQgMTguMiAyNy40IDQxLjQgLjEgMjMuOS0xMC45IDQxLjgtMjcuNCA0MS44ek0zMDEuOSAzMzYuNGw0NC42IDAgMC0xNTMuMi00NC42IDAgMCAxNTMuMnoiXX0saTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRhaWx5bW90aW9uIixpY29uOls0NDgsNTEyLFtdLCJlMDUyIiwiTTI5OC45IDI2N2MtNy40LTQuMi0xNS44LTYuMy0yNC40LTYuMi0xMy4yIDAtMjQuNCA0LjQtMzMuNCAxMy4zcy0xMy42IDIwLTEzLjYgMzMuNGMwIDE0LjEgNC40IDI1LjYgMTMuMyAzNC42czIwIDEzLjQgMzMuNCAxMy40YzEzLjcgMCAyNS00LjYgMzQuMS0xMy44UzMyMiAzMjEuMSAzMjIgMzA3LjVjMC04LjItMi4xLTE2LjMtNi4xLTIzLjUtNC03LjEtOS44LTEzLTE3LTE3ek0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0zNzQuNyA0MDUuM2wtNTMuMSAwIDAtMjMuOS0uNyAwYy0xMC41IDE3LjUtMjkuMSAyNi4yLTU1LjggMjYuMi0xOC40IDAtMzQuNy00LjQtNDguOS0xMy4xLTE0LjEtOC42LTI1LjUtMjEtMzIuOS0zNS44LTcuNy0xNS4xLTExLjYtMzIuMS0xMS42LTUwLjkgMC0xOC40IDMuOS0zNS4xIDExLjgtNTAuMiA3LjUtMTQuNyAxOC45LTI3LjEgMzIuOS0zNS44IDE0LjEtOC43IDMwLTEzLjEgNDcuNy0xMy4xIDEwLjItLjEgMjAuMiAxLjYgMjkuNyA1LjIgOC45IDMuNSAxNy4yIDkuMSAyNSAxN2wwLTc3LjkgNTUuOC0xMi4xIDAgMjY0LjR6Il19LG8wdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGVhbSIsaWNvbjpbNTEyLDUxMixbXSwiZjFiNiIsIk01MDQgMjU2YzAgMTM3LTExMS4yIDI0OC0yNDguNCAyNDgtMTEzLjggMC0yMDkuNi03Ni4zLTIzOS0xODAuNGw5NS4yIDM5LjNjNi40IDMyLjEgMzQuOSA1Ni40IDY4LjkgNTYuNCAzOS4yIDAgNzEuOS0zMi40IDcwLjItNzMuNWw4NC41LTYwLjJjNTIuMSAxLjMgOTUuOC00MC45IDk1LjgtOTMuNSAwLTUxLjYtNDItOTMuNS05My43LTkzLjVzLTkzLjcgNDItOTMuNyA5My41bDAgMS4yLTU5LjIgODUuN2MtMTUuNS0uOS0zMC43IDMuNC00My41IDEyLjFMOCAyMzYuMUMxOC4yIDEwOC40IDEyNS4xIDggMjU1LjYgOCAzOTIuOCA4IDUwNCAxMTkgNTA0IDI1NnpNMTYzLjcgMzg0LjNsLTMwLjUtMTIuNmM1LjYgMTEuNiAxNS4zIDIwLjggMjcuMiAyNS44IDI2LjkgMTEuMiA1Ny44LTEuNiA2OS0yOC40IDUuNC0xMyA1LjUtMjcuMyAuMS00MC4zUzIxNCAzMDUuNiAyMDEgMzAwLjJjLTEyLjktNS40LTI2LjctNS4yLTM4LjktLjZsMzEuNSAxM2MxOS44IDguMiAyOS4yIDMwLjkgMjAuOSA1MC43LTguMyAxOS45LTMxIDI5LjItNTAuOCAyMXpNMzM3LjUgMTI5LjhhNjIuMyA2Mi4zIDAgMSAxIDAgMTI0LjYgNjIuMyA2Mi4zIDAgMSAxIDAtMTI0LjZ6bS4xIDEwOWE0Ni44IDQ2LjggMCAxIDAgMC05My42IDQ2LjggNDYuOCAwIDEgMCAwIDkzLjZ6Il19LFExZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzbmFwY2hhdCIsaWNvbjpbNTEyLDUxMixbNjIxMjQsInNuYXBjaGF0LWdob3N0Il0sImYyYWIiLCJNNDk3LjEgMzY2LjZjLTMuNC05LjItOS44LTE0LjEtMTcuMS0xOC4yLTEuNC0uOC0yLjYtMS41LTMuNy0xLjktMi4yLTEuMS00LjQtMi4yLTYuNi0zLjQtMjIuOC0xMi4xLTQwLjYtMjcuMy01My00NS40LTMuNS01LjEtNi42LTEwLjUtOS4xLTE2LjEtMS4xLTMtMS00LjctLjItNi4zIC44LTEuMiAxLjctMi4yIDIuOS0zIDMuOS0yLjYgOC01LjIgMTAuNy03IDQuOS0zLjIgOC44LTUuNyAxMS4yLTcuNCA5LjQtNi41IDE1LjktMTMuNSAyMC0yMS4zIDIuOS01LjQgNC41LTExLjMgNC45LTE3LjRzLS42LTEyLjItMi44LTE3LjhjLTYuMi0xNi4zLTIxLjYtMjYuNC00MC4zLTI2LjQtMy45IDAtNy45IC40LTExLjcgMS4yLTEgLjItMi4xIC41LTMuMSAuNyAuMi0xMS4yLS4xLTIyLjktMS4xLTM0LjUtMy41LTQwLjgtMTcuOC02Mi4xLTMyLjctNzkuMi05LjUtMTAuNy0yMC43LTE5LjctMzMuMi0yNi43LTIyLjYtMTIuOS00OC4yLTE5LjQtNzYuMS0xOS40cy01My40IDYuNS03NiAxOS40Yy0xMi41IDctMjMuNyAxNi4xLTMzLjMgMjYuOC0xNC45IDE3LTI5LjIgMzguNC0zMi43IDc5LjItMSAxMS42LTEuMiAyMy40LTEuMSAzNC41LTEtLjMtMi0uNS0zLjEtLjctMy45LS44LTcuOC0xLjItMTEuNy0xLjItMTguNyAwLTM0LjEgMTAuMS00MC4zIDI2LjQtMi4yIDUuNy0zLjIgMTEuOC0yLjggMTcuOHMyIDEyIDQuOSAxNy40YzQuMSA3LjggMTAuNyAxNC43IDIwIDIxLjMgMi41IDEuNyA2LjQgNC4yIDExLjIgNy40IDIuNiAxLjcgNi41IDQuMiAxMC4zIDYuNyAxLjMgLjkgMi40IDIgMy4zIDMuMyAuOCAxLjYgLjggMy40LS40IDYuNi0yLjUgNS41LTUuNSAxMC44LTguOSAxNS44LTEyLjEgMTcuNy0yOS40IDMyLjYtNTEuNCA0NC42LTExLjcgNi4yLTIzLjkgMTAuMy0yOSAyNC4zLTMuOSAxMC41LTEuMyAyMi41IDguNSAzMi42IDMuNiAzLjggNy44IDYuOSAxMi40IDkuNCA5LjYgNS4zIDE5LjggOS4zIDMwLjMgMTIuMSAyLjIgLjYgNC4zIDEuNSA2LjEgMi43IDMuNiAzLjEgMy4xIDcuOSA3LjggMTQuOCAyLjQgMy42IDUuNCA2LjcgOSA5LjEgMTAgNi45IDIxLjMgNy40IDMzLjIgNy44IDEwLjggLjQgMjMgLjkgMzYuOSA1LjUgNS44IDEuOSAxMS44IDUuNiAxOC43IDkuOSAxNi43IDEwLjMgMzkuNiAyNC4zIDc3LjggMjQuM3M2MS4zLTE0LjEgNzguMS0yNC40YzYuOS00LjIgMTIuOS03LjkgMTguNS05LjggMTMuOS00LjYgMjYuMi01LjEgMzYuOS01LjUgMTEuOS0uNSAyMy4yLS45IDMzLjItNy44IDQuMi0yLjkgNy43LTYuNyAxMC4yLTExLjIgMy40LTUuOCAzLjQtOS45IDYuNi0xMi44IDEuOC0xLjIgMy43LTIuMSA1LjgtMi42IDEwLjctMi44IDIxLTYuOSAzMC44LTEyLjIgNC45LTIuNiA5LjMtNi4xIDEzLTEwLjJsLjEtLjJjOS4yLTkuOSAxMS41LTIxLjUgNy44LTMxLjh6bS0zNCAxOC4zYy0yMC43IDExLjUtMzQuNSAxMC4yLTQ1LjMgMTcuMS05LjEgNS45LTMuNyAxOC41LTEwLjMgMjMuMS04LjEgNS42LTMyLjItLjQtNjMuMiA5LjktMjUuNiA4LjUtNDIgMzIuOC04OCAzMi44cy02Mi0yNC4zLTg4LjEtMzIuOWMtMzEtMTAuMy01NS4xLTQuMi02My4yLTkuOS02LjYtNC42LTEuMi0xNy4yLTEwLjMtMjMuMS0xMC43LTYuOS0yNC41LTUuNy00NS4zLTE3LjEtMTMuMi03LjMtNS43LTExLjgtMS4zLTEzLjkgNzUuMS0zNi40IDg3LjEtOTIuNiA4Ny43LTk2LjcgLjYtNSAxLjQtOS00LjItMTQuMS01LjQtNS0yOS4yLTE5LjctMzUuOC0yNC4zLTEwLjktNy42LTE1LjctMTUuMy0xMi4yLTI0LjYgMi41LTYuNSA4LjUtOC45IDE0LjktOC45IDIgMCA0IC4yIDYgLjcgMTIgMi42IDIzLjcgOC42IDMwLjQgMTAuMiAuOCAuMiAxLjYgLjMgMi41IC4zIDMuNiAwIDQuOS0xLjggNC42LTUuOS0uOC0xMy4xLTIuNi0zOC43LS42LTYyLjYgMi44LTMyLjkgMTMuNC00OS4yIDI2LTYzLjYgNi4xLTYuOSAzNC41LTM3IDg4LjktMzdTMzM5IDc0LjIgMzQ1IDgxLjFjMTIuNiAxNC40IDIzLjIgMzAuNyAyNiA2My42IDIuMSAyMy45IC4zIDQ5LjUtLjYgNjIuNi0uMyA0LjMgMSA1LjkgNC42IDUuOSAuOCAwIDEuNy0uMSAyLjUtLjMgNi43LTEuNiAxOC40LTcuNiAzMC40LTEwLjIgMi0uNCA0LS43IDYtLjcgNi40IDAgMTIuNCAyLjUgMTQuOSA4LjkgMy41IDkuNC0xLjIgMTctMTIuMiAyNC42LTYuNiA0LjYtMzAuNCAxOS4zLTM1LjggMjQuMy01LjYgNS4xLTQuOCA5LjEtNC4yIDE0LjIgLjUgNC4yIDEyLjUgNjAuNCA4Ny43IDk2LjcgNC40IDIuMiAxMS45IDYuNy0xLjMgMTQuMXoiXX0sczB0PVExZSxuMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2FsYWN0aWMtc2VuYXRlIixpY29uOls1MTIsNTEyLFtdLCJmNTBkIiwiTTI0OS45IDMzLjVsMCAyNi4xYy0xMy42IDIwLjYtMjMuOSAxMDguNi0yNC41IDIxNS4zIDExLjctMTUuNiAxOS4xLTMzLjMgMTkuMS00OC4ybDAtMTYuOWMwLTUuMyAuOC0xMC41IDIuMi0xNS42IC42LTIuMSAxLjQtNC4xIDIuNi01LjhzMy40LTMuOCA2LjctMy44IDUuNCAyLjEgNi43IDMuOGMxLjIgMS44IDIgMy43IDIuNiA1LjggMS40IDUuMSAyLjIgMTAuMyAyLjIgMTUuNmwwIDE2LjljMCAxNC45IDcuNCAzMi42IDE5LjEgNDguMi0uNi0xMDYuOC0xMC45LTE5NC43LTI0LjUtMjE1LjNsMC0yNi4xLTEyLjMgMHpNMjIzLjUgMTgxLjNjLTkuNSAyLjEtMTguNyA1LjItMjcuNSA5LjEgOC45IDE2LjEgOS44IDMyLjYgMS43IDM3LjMtOCA0LjYtMjEuOC00LjItMzEuNC0xOS44LTExLjYgOC44LTIxLjkgMTkuMy0zMC42IDMxLjEgMTQuNyA5LjYgMjIuOSAyMi45IDE4LjMgMzAuNy00LjUgNy43LTIwIDcuMS0zNS41LTEtNS44IDEzLjItOS43IDI3LjUtMTEuNiA0Mi40IDkuNyAuMiAxOC43IDIuNCAyNi4yIDYgMTcuOC0uMyAzMi44LTIgNDAuNS00LjIgNS42LTI2LjQgMjMtNDguMiA0Ni4zLTU5LjUgLjctMjUuNiAxLjktNDkuNyAzLjUtNzIuMXptNjUgMGMxLjYgMjIuNCAyLjcgNDYuNSAzLjUgNzIuMSAyMy4zIDExLjMgNDAuOCAzMy4yIDQ2LjMgNTkuNSA3LjcgMi4zIDIyLjcgMy45IDQwLjUgNC4yIDcuNS0zLjcgMTYuNS01LjggMjYuMi02LTEuOS0xNC45LTUuOS0yOS4yLTExLjctNDIuNC0xNS40IDguMS0zMC45IDguNy0zNS41IDEtNC42LTcuNyAzLjYtMjEuMSAxOC4zLTMwLjctOC43LTExLjgtMTktMjIuMy0zMC42LTMxLjEtOS41IDE1LjYtMjMuNCAyNC40LTMxLjQgMTkuOC04LjEtNC42LTcuMi0yMS4yIDEuNy0zNy4zLTguOC0zLjktMTgtNy0yNy40LTkuMXpNMjU2IDE4OS45Yy0zLjIgMC01LjkgOC44LTYuMSAxOS45bDAgMCAwIDE2LjljMCA0MS40LTQ5IDk1LTkzLjUgOTUtNTIgMC0xMjIuOC0xLjQtMTU2LjQgMjkuMmwwIDIuNWM5LjQgMTcuMSAyMC42IDMzLjIgMzMuMiA0OCAxMi41LTIxLjEgNTEuNi00MSAxMDgtNDEuNCA0NS43IDEgNzkgMjAuMyA5MC44IDQwLjkgMCAwIDAgMCAwIC4xIDcuNyAyLjEgMTUuOCAzLjIgMjQgMy4yIDguMiAwIDE2LjQtMS4xIDI0LTMuMiAwIDAgMCAwIDAtLjEgMTEuNy0yMC41IDQ1LjEtMzkuOCA5MC44LTQwLjkgNTYuNCAuNCA5NS41IDIwLjMgMTA4IDQxLjQgMTIuNi0xNC44IDIzLjgtMzAuOSAzMy4yLTQ4bDAtMi41Yy0zMy42LTMwLjYtMTA0LjQtMjkuMi0xNTYuNC0yOS4yLTQ0LjUgMC05My41LTUzLjYtOTMuNS05NWwwLTE2LjktLjEgMGMtLjItMTEuMS0yLjktMTkuOS02LjEtMTkuOXptMCAxNzcuOWE0MC42IDQwLjYgMCAxIDEgMC04MS4zIDQwLjYgNDAuNiAwIDEgMSAwIDgxLjN6bTAtNzMuNmEzMyAzMyAwIDEgMCAwIDY1LjkgMzMgMzMgMCAxIDAgMC02NS45em0wIDU5LjhhMjYuOCAyNi44IDAgMSAxIDAtNTMuNiAyNi44IDI2LjggMCAxIDEgMCA1My42em0tMTE0LjggMTNjLTEwLjIgLjEtMjEuNiAuNC0zMC41IDEuNyAuNCA0LjQgMS41IDE4LjYgNy4xIDI5LjggOS4xLTIuNiAxOC40LTMuOSAyNy42LTMuOSA0MS4zIC45IDcxLjUgMzQuNCA3OC4zIDc0LjVsLjEgNC43YzEwLjQgMS45IDIxLjIgMi45IDMyLjIgMi45IDExIDAgMjEuOC0xIDMyLjItMi45bC4xLTQuN2M2LjgtNDAuMSAzNy03My41IDc4LjMtNzQuNSA5LjMgMCAxOC41IDEuMyAyNy42IDMuOSA1LjYtMTEuMSA2LjctMjUuMyA3LjEtMjkuOC04LjktMS4zLTIwLjMtMS42LTMwLjUtMS43LTE4LjggLjQtMzUuMiA0LjItNDguNiA5LjctMTIuNSAxNi0yOS4yIDMwLTQ5LjYgMzMuMS0uMSAwLS4yIDAtLjMgMCAwIDAtLjEgMC0uMiAuMS01LjIgMS4xLTEwLjYgMS42LTE2LjIgMS42LTUuNSAwLTEwLjktLjUtMTYuMi0xLjYtLjEgMC0uMSAwLS4yLS4xLS4xIDAtLjIgMC0uMyAwLTIwLjQtMy0zNy0xNy00OS42LTMzLjEtMTMuNC01LjUtMjkuOS05LjItNDguNi05Ljd6Il19LGwwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaG9lbml4LWZyYW1ld29yayIsaWNvbjpbNjQwLDUxMixbXSwiZjNkYyIsIk0yMTIuOSAzNDQuM2MzLjgtLjEgMjIuOC0xLjQgMjUuNi0yLjItMi40LTIuNi00My42LTEtNjgtNDkuNi00LjMtOC42LTcuNS0xNy42LTYuNC0yNy42IDIuOS0yNS41IDMyLjktMzAgNTItMTguNSAzNiAyMS42IDYzLjMgOTEuMyAxMTMuNyA5Ny41IDM3IDQuNSA4NC42LTE3IDEwOC4yLTQ1LjQtLjYtLjEtLjgtLjItMS0uMS0uNCAuMS0uOCAuMi0xLjEgLjMtMzMuMyAxMi4xLTk0LjMgOS43LTEzNC43LTE0LjgtMzcuNi0yMi44LTUzLjEtNTguNy01MS44LTc0LjYgMS44LTIxLjMgMjIuOS0yMy4yIDM1LjktMTkuNiAxNC40IDMuOSAyNC40IDE3LjYgMzguOSAyNy40IDE1LjYgMTAuNCAzMi45IDEzLjcgNTEuMyAxMC4zIDE0LjktMi43IDM0LjQtMTIuMyAzNi41LTE0LjUtMS4xLS4xLTEuOC0uMS0yLjUtLjItNi4yLS42LTEyLjQtLjgtMTguNS0xLjctMTExLjItMTYuNS0xMjguOS0xNjMuNi0yNTIuNS0xNzMuMS00NC4zLTMuNC05OS40IDguMS0xMzYuMyAzNS0uOCAuNi0xLjUgMS4yLTIuMiAxLjggLjEgLjIgLjEgLjMgLjIgLjUgLjggMCAxLjYtLjEgMi40LS4yIDYuMy0xIDEyLjUtLjggMTguNyAuMyAyMy44IDQuMyA0Ny43IDIzLjEgNTUuOSA3Ni41IDUuMyAzNC4zLS43IDUwLjggOCA4Ni4xIDE5IDc3LjEgOTEgMTA3LjYgMTI3LjcgMTA2LjR6TTc1LjMgNjQuOWMtLjktMS0uOS0xLjItMS4zLTIgMTIuMS0yLjYgMjQuMi00LjEgMzYuNi00LjgtMS4xIDE0LjctMjIuMiAyMS4zLTM1LjMgNi44ek0yNzIuMiA0MTUuNGMtNDIuOCAxLjItOTItMjYuNy0xMjMuNS02MS40LTQuNi01LTE2LjgtMjAuMi0xOC42LTIzLjRsLjQtLjRjNi42IDQuMSAyNS43IDE4LjYgNTQuOCAyNyAyNC4yIDcgNDguMSA2LjMgNzEuNi0zLjMgMjIuNy05LjMgNDEtLjUgNDMuMSAyLjktMTguNSAzLjgtMjAuMSA0LjQtMjQgNy45LTUuMSA0LjQtNC42IDExLjcgNyAxNy4yIDI2LjIgMTIuNCA2My0yLjggOTcuMiAyNS40IDIuNCAyIDguMSA3LjggMTAuMSAxMC43LS4xIC4yLS4zIC4zLS40IC41LTQuOC0xLjUtMTYuNC03LjUtNDAuMi05LjMtMjQuNy0yLTQ2LjMgNS4zLTc3LjUgNi4yek00NDcgMTYzLjRjMTYuNC01LjIgNDEuMy0xMy40IDY2LjUtMy4zIDE2LjEgNi41IDI2LjIgMTguNyAzMi4xIDM0LjYgMy41IDkuNCA1LjEgMTkuNyA1LjEgMjguNy0uMiAwLS40IDAtLjYgLjEtLjItLjQtLjQtLjktLjUtMS4zLTUtMjItMjkuOS00My44LTY3LjYtMjkuOS01MC4yIDE4LjYtMTMwLjQgOS43LTE3Ni45LTQ4LS43LS45LTIuNC0xLjctMS4zLTMuMiAuMS0uMiAyLjEgLjYgMyAxLjMgMTguMSAxMy40IDM4LjMgMjEuOSA2MC4zIDI2LjIgMzAuNSA2LjEgNTQuNiAyLjkgNzkuOS01LjJ6TTU0OS43IDI4MC45Yy0zMi40IC4yLTMzLjggNTAuMS0xMDMuNiA2NC40LTE4LjIgMy43LTM4LjcgNC42LTQ0LjkgNC4ybDAtLjRjMi44LTEuNSAxNC43LTIuNiAyOS43LTE2LjYgNy45LTcuMyAxNS4zLTE1LjEgMjIuOC0yMi45IDE5LjUtMjAuMiA0MS40LTQyLjIgODEuOS0zOSAyMy4xIDEuOCAyOS4zIDguMiAzNi4xIDEyLjcgLjMgLjIgLjQgLjUgLjcgLjktLjUgMC0uNyAuMS0uOSAwLTctMi43LTE0LjMtMy4zLTIxLjgtMy4zem0tMTIuMy0yNC4xYy0uMSAuMi0uMSAuNC0uMiAuNi0yOC45LTQuNC00OC03LjktNjguNSA0LTE3IDkuOS0zMS40IDIwLjUtNjIgMjQuNC0yNy4xIDMuNC00NS4xIDIuNC02Ni4xLTgtLjMtLjItLjYtLjQtMS0uNiAwLS4yIC4xLS4zIC4xLS41IDI0LjkgMy44IDM2LjQgNS4xIDU1LjUtNS44IDIyLjMtMTIuOSA0MC4xLTI2LjYgNzEuMy0zMSAyOS42LTQuMSA1MS4zIDIuNSA3MC45IDE2Ljl6TTI2OC42IDk3LjNjLS42LS42LTEuMS0xLjItMi4xLTIuMyA3LjYgMCAyOS43LTEuMiA1My40IDguNCAxOS43IDggMzIuMiAyMSA1MC4yIDMyLjkgMTEuMSA3LjMgMjMuNCA5LjMgMzYuNCA4LjEgNC4zLS40IDguNS0xLjIgMTIuOC0xLjcgLjQtLjEgLjkgMCAxLjUgLjMtLjYgLjQtMS4yIC45LTEuOCAxLjItOC4xIDQtMTYuNyA2LjMtMjUuNiA3LjEtMjYuMSAyLjYtNTAuMy0zLjctNzMuNC0xNS40LTE5LjMtOS45LTM2LjQtMjIuOS01MS40LTM4LjZ6TTY0MCAzMzUuN2MtMy41IDMuMS0yMi43IDExLjYtNDIuNyA1LjMtMTIuMy0zLjktMTkuNS0xNC45LTMxLjYtMjQuMS0xMC03LjYtMjAuOS03LjktMjguMS04LjQgLjYtLjggLjktMS4yIDEuMi0xLjQgMTQuOC05LjIgMzAuNS0xMi4yIDQ3LjMtNi41IDEyLjUgNC4yIDE5LjIgMTMuNSAzMC40IDI0LjIgMTAuOCAxMC40IDIxIDkuOSAyMy4xIDEwLjUgLjEtLjEgLjIgMCAuNCAuNHptLTIxMi41IDEzN2MyLjIgMS4yIDEuNiAxLjUgMS41IDItMTguNS0xLjQtMzMuOS03LjYtNDYuOC0yMi4yLTIxLjgtMjQuNy00MS43LTI3LjktNDguNi0yOS43IC41LS4yIC44LS40IDEuMS0uNCAxMy4xIC4xIDI2LjEgLjcgMzguOSAzLjkgMjUuMyA2LjQgMzUgMjUuNCA0MS42IDM1LjMgMy4yIDQuOCA3LjMgOC4zIDEyLjMgMTEuMXoiXX0sYzB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdCIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMyIsIk0yMTYuMyAxNTguNGwtNzkuMyAwYy00MC0xMC41LTEzMC41LTcuOC0xMzAuNSA3NC44IDAgMzAuMSAxNSA1MS4yIDM1IDYxLTI1LjEgMjMtMzcgMzMuOC0zNyA0OS4yIDAgMTEgNC41IDIxLjEgMTcuOSAyNi44LTE0LjMgMTMuNC0yMi40IDIzLjEtMjIuNCA0MS40IDAgMzIuMSAyOCA1MC44IDEwMS42IDUwLjggNzAuOCAwIDExMS44LTI2LjQgMTExLjgtNzMuMiAwLTU4LjctNDUuMi01Ni41LTE1MS42LTYzbDEzLjQtMjEuNmMyNy4zIDcuNiAxMTguNyAxMCAxMTguNy02Ny45IDAtMTguNy03LjctMzEuNy0xNS00MS4xbDM3LjQtMi44IDAtMzQuNXpNMTUyLjkgNDAwLjNjMCAzMi4xLTEwNC45IDMyLjEtMTA0LjkgMi40IDAtOC4xIDUuMy0xNSAxMC42LTIxLjUgNzcuNyA1LjMgOTQuMyAzLjQgOTQuMyAxOS4xek0xMDIuMSAyNjUuN2MtNTIuOCAwLTUwLjUtNzEuMiAxLjItNzEuMiA0OS41IDAgNTAuOCA3MS4yLTEuMiA3MS4yek0yMzUuNCAzNjYuMmwwLTMyLjFjMjYuNy0zLjcgMjcuMi0yIDI3LjItMTFsMC0xMTkuNWMwLTguNS0yLjEtNy40LTI3LjItMTYuM2w0LjUtMzIuOSA4NC4yIDAgMCAxNjguN2MwIDYuNSAuNCA3LjMgNi41IDguMWwyMC43IDIuOCAwIDMyLjEtMTE1LjkgMHptNTIuNS0yNDQuM2MtMjMuMiAwLTM2LjYtMTMuNC0zNi42LTM2LjZzMTMuNC0zNS44IDM2LjYtMzUuOGMyMy42IDAgMzcgMTIuNiAzNyAzNS44cy0xMy40IDM2LjYtMzcgMzYuNnpNNTEyIDM1MC41Yy0xNy41IDguNS00My4xIDE2LjMtNjYuMyAxNi4zLTQ4LjQgMC02Ni43LTE5LjUtNjYuNy02NS41bDAtMTA2LjVjMC01LjQgMS00LjEtMzEuNy00LjFsMC0zNi4yYzM1LjgtNC4xIDUwLTIyIDU0LjUtNjYuM2wzOC42IDBjMCA2NS44LTEuMyA2MS44IDMuMyA2MS44bDU3LjMgMCAwIDQwLjYtNjAuNiAwIDAgOTcuMWMwIDYuOS00LjkgNTEuNCA2MC42IDI2LjhsMTEgMzUuOHoiXX0sZDB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wdGluLW1vbnN0ZXIiLGljb246WzU3Niw1MTIsW10sImYyM2MiLCJNNTcyLjggNDIxLjRjNS42LTkuNSA0LjctMTUuMi01LjQtMTEuNi0zLTQuOS03LTkuNS0xMS4xLTEzLjggMi45LTkuNy0uNy0xNC4yLTEwLjgtOS4yLTQuNi0zLjItMTAuMy02LjUtMTUuOS05LjIgMC0xNS4xLTExLjYtMTEuNi0xNy42LTUuNy0xMC40LTEuNS0xOC43LS4zLTI2LjggNS43IC4zLTYuNSAuMy0xMyAuMy0xOS43IDEyLjYgMCA0MC4yLTExIDQ1LjktMzYuMiAxLjQtNi44IDEuNi0xMy44LS4zLTIxLjktMy0xMy41LTE0LjMtMjEuMy0yNS4xLTI1LjctLjgtNS45LTcuNi0xNC4zLTE0LjktMTUuOXMtMTIuNCA0LjktMTQuMSAxMC4zYy04LjUgMC0xOS4yIDIuOC0yMS4xIDguNC01LjQtLjUtMTEuMS0xLjQtMTYuOC0xLjkgMi43LTEuOSA1LjQtMy41IDguNC00LjYgNS40LTkuMiAxNC42LTExLjQgMjUuNy0xMS42bDAtMi44YzE5LjUtLjUgNDMtNS45IDUzLjgtMTguMSAxMi43LTEzLjggMTQuNi0zNy4zIDEyLjQtNTUuMS0yLjQtMTcuMy05LjctMzcuNi0yNC42LTQ4LjEtOC40LTUuOS0yMS42LS44LTIyLjcgOS41LTIuMiAxOS42IDEuMiAzMC0zOC42IDI1LjEtMTAuMy0yMy44LTI0LjYtNDQuNi00Mi43LTYwLTY5LjYtNTkuNy0xNjcuNy01My44LTI0NC4yLTM3LjYgMTkuNyA0LjYgNDEuMSA4LjYgNTkuNyAxNi41LTI2LjIgMi40LTUyLjcgMTEuMy03Ni4yIDIzLjItMzIuOCAxNy00NCAyOS45LTU2LjcgNDIuNCAxNC45LTIuMiAyOC45LTUuMSA0My44LTMuOC05LjcgNS40LTE4LjQgMTIuMi0yNi41IDIwLTI1LjggLjktMjMuOC01LjMtMjYuMi0yNS45LTEuMS0xMC41LTE0LjMtMTUuNC0yMi43LTkuNy0yOC4xIDE5LjktMzMuNSA3OS45LTEyLjIgMTAzLjUgMTAuOCAxMi4yIDM1LjEgMTcuMyA1NC45IDE3LjgtLjMgMS4xLS4zIDEuOS0uMyAyLjcgMTAuOCAuNSAxOS41IDIuNyAyNC42IDExLjYgMyAxLjEgNS43IDIuNyA4LjEgNC42LTUuNCAuNS0xMS4xIDEuNC0xNi41IDEuOS0zLjMtNi42LTEzLjctOC4xLTIxLjEtOC4xLTEuNi01LjctNi41LTEyLjItMTQuMS0xMC4zLTYuOCAxLjktMTQuMSAxMC0xNC45IDE1LjktMjIuNSA5LjUtMzAuMSAyNi44LTI1LjEgNDcuNiA1LjMgMjQuOCAzMyAzNi4yIDQ1LjkgMzYuMmwwIDE5LjdjLTYuNi01LTE0LjMtNy41LTI2LjgtNS43LTUuNS01LjUtMTcuMy0xMC4xLTE3LjMgNS43LTUuOSAyLjctMTEuNCA1LjktMTUuOSA5LjItOS44LTQuOS0xMy42LTEuNy0xMS4xIDkuMi00LjEgNC4zLTcuOCA4LjYtMTEuMSAxMy44LTEwLjItMy43LTExIDIuMi01LjQgMTEuNi0xLjEgMy41LTEuNiA3LTEuOSAxMC44LS41IDMxLjYgNDQuNiA2NCA3My41IDY1LjEgMTcuMyAuNSAzNC42LTguNCA0My0yMy41IDExMy4yIDQuOSAyMjYuNyA0LjEgMzQwLjIgMCA4LjEgMTUuMSAyNS40IDI0LjMgNDIuNyAyMy41IDI5LjItMS4xIDc0LjMtMzMuNSA3My41LTY1LjEgLjItMy43LS43LTcuMi0xLjctMTAuN3pNNDk5IDE2Ny40YzEuMS0zIDIuNC04LjQgMi40LTE0LjYgMC01LjkgNi44LTguMSAxNC4xLS44IDExLjEgMTEuNiAxNC45IDQwLjUgMTMuOCA1MS4xLTQuMS0xMy42LTEzLTI5LTMwLjMtMzUuN3ptLTQuNiA2LjdjMTkuNSA2LjIgMjguNiAyNy42IDI5LjcgNDguOS0xLjEgMi43LTMgNS40LTQuOSA3LjYtNS43IDUuOS0xNS40IDEwLTI2LjIgMTIuMiA0LjMtMjEuMyAuMy00Ny4zLTEyLjctNjMgNC45LS44IDEwLjktMi40IDE0LjEtNS43em0tMjQuMSA2LjhjMTMuOCAxMS45IDIwIDM5LjIgMTQuMSA2My41LTQuMSAuNS04LjEgLjgtMTEuNiAuOC0xLjktMjEuOS02LjgtNDQtMTQuMy02NC42IDMuNyAuMyA4LjEgLjMgMTEuOCAuM3pNNDcuNyAyMDNjLTEuMS0xMC41IDIuNC0zOS41IDEzLjgtNTEuMSA3LTcuMyAxNC4xLTUuMSAxNC4xIC44IDAgNi4yIDEuNCAxMS42IDIuNCAxNC42LTE3LjMgNi44LTI2LjIgMjIuMi0zMC4zIDM1Ljd6bTkuNyAyNy42Yy0xLjktMi4yLTMuNS00LjktNC45LTcuNiAxLjQtMjEuMyAxMC4zLTQyLjcgMjkuNy00OC45IDMuMiAzLjIgOS4yIDQuOSAxNC4xIDUuNy0xMyAxNS43LTE3IDQxLjYtMTIuNyA2My0xMC44LTIuMi0yMC41LTYtMjYuMi0xMi4yem00Ny45IDE0LjZjLTQuMSAwLTguMS0uMy0xMi43LS44LTQuNi0xOC42LTEuOS0zOC45IDUuNC01M2wwIC4zIDEyLjItNS4xYzQuOS0xLjkgOS43LTMuOCAxNC45LTQuOS0xMC43IDE5LjctMTcuNCA0MS4zLTE5LjggNjMuNXptMTg0LTEwLjVhNzYuMSA3Ni4xIDAgMSAxIDAtMTUyLjIgNzYuMSA3Ni4xIDAgMSAxIDAgMTUyLjJ6bTExNS42IDIyLjFjLS4zIDE3LjgtNyA0OC45LTIzIDU3LTEzLjIgNi42LTYuNS03LjUtMTYuNS01OC4xIDEzLjMgLjMgMjYuNiAuMyAzOS41IDEuMXptLTU0LTEuNmMuOCA0LjkgMy44IDQwLjMtMS42IDQxLjktMTEuNiAzLjUtNDAgNC4zLTUxLjEtMS4xLTQuMS0zLTQuNi0zNS45LTQuMy00MS4xbDAgLjNjMTguOS0uMyAzOC4xLS4zIDU3IDB6TTI3OC41IDMwOWMtMTMgMy41LTQxLjYgNC4xLTU0LjYtMS42LTYuNS0yLjctMy44LTQyLjQtMS45LTUxLjYgMTkuMi0uNSAzOC40LS41IDU3LjgtLjhsMCAuM2MxLjEgOC4zIDMuMyA1MS4yLTEuMyA1My43ek0xNzIgMjU3LjljMTIuMi0uOCAyNC42LTEuNCAzNi44LTEuNi0yLjQgMTUuNC0zIDQzLjUtNC45IDUyLjItMS4xIDYuOC00LjMgNi44LTkuNyA0LjMtMjEuOS05LjgtMjcuNi0zNS4yLTIyLjItNTQuOXptLTM1LjQgMzEuM2M3LjgtMS4xIDE1LjctMS45IDIzLjUtMi43IDEuNiA2LjIgMy44IDExLjkgNyAxNy42IDEwIDE3IDQ0IDM1LjcgNDUuMSA3IDYuMiAxNC45IDQwLjggMTIuMiA1NC45IDEwLjggMTUuNy0xLjQgMjMuOC0xLjQgMjYuOC0xNC4zIDEyLjQgNC4zIDMwLjggNC4xIDQ0IDMgMTEuMy0uOCAyMC44LS41IDI0LjYtOC45IDEuMSA1LjEgMS45IDExLjYgNC42IDE2LjggMTAuOCAyMS4zIDM3LjMgMS40IDQ2LjgtMzEuNiA4LjYgLjggMTcuNiAxLjkgMjYuNSAyLjctLjQgMS4zLTMuOCA3LjMgNy4zIDExLjYtNDcuNiA0Ny05NS43IDg3LjgtMTYzLjIgMTA3LTYzLjItMjAuOC0xMTIuMS01OS41LTE1NS45LTEwNi41IDkuNi0zLjQgMTAuNC04LjggOC0xMi41ek0xMTUgNDYxLjdjLTMuOCAxNy44LTIxLjkgMjkuNy0zOS43IDI4LjktMTkuMi0uOC00Ni41LTE3LTU5LjItMzYuNS0yLjctMzEuMSA0My44LTYxLjMgNjYuMi01NC42IDE0LjkgNC4zIDI3LjggMzAuOCAzMy41IDU0IDAgMy0uMyA1LjctLjggOC4yem0tOC43LTY2Yy0uNS0xMy41LS41LTI3LS4zLTQwLjVsLjMgMGMyLjctMS42IDUuNy0zLjggNy44LTYuNSA2LjUtMS42IDEzLTUuMSAxNS4xLTkuMiAzLjMtNy4xLTctNy41LTUuNC0xMi40IDIuNy0xLjEgNS43LTIuMiA3LjgtMy41IDI5LjIgMjkuMiA1OC42IDU2LjUgOTcuMyA3Ny0zNi44IDExLjMtNzIuNCAyNy42LTEwNS45IDQ3LTEuMi0xOC42LTcuNy0zNS45LTE2LjctNTEuOXptMzM3LjYgNjQuNmMtMTAzIDMuNS0yMDYuMiA0LjEtMzA5LjQgMCAwIC4zIDAgLjMtLjMgLjNsMC0uMyAuMyAwYzM1LjEtMjEuNiA3Mi4yLTM5LjIgMTEyLjQtNTAuOCAxMS42IDUuMSAyMyA5LjUgMzQuOSAxMy4yIDIuMiAuOCAyLjIgLjggNC4zIDAgMTQuMy00LjEgMjguNC05LjIgNDIuMi0xNS40IDQxLjUgMTEuNyA3OC44IDMxLjcgMTE1LjYgNTN6bTEwLjUtMTIuNGMtMzUuOS0xOS41LTczLTM1LjktMTExLjktNDcuNiAzOC4xLTIwIDcxLjktNDcuMyAxMDMuNS03Ni43IDIuMiAxLjQgNC42IDIuNCA3LjYgMy4yIDAgLjggLjMgMS45IC41IDIuNC00LjYgMi43LTcuOCA2LjItNS45IDEwLjMgMi4yIDMuOCA4LjYgNy42IDE1LjEgOC45IDIuNCAyLjcgNS4xIDUuMSA4LjEgNi44IDAgMTMuOC0uMyAyNy42LS44IDQxLjNsLjMtLjNjLTkuMyAxNS45LTE1LjUgMzctMTYuNSA1MS43em0xMDUuOSA2LjJjLTEyLjcgMTkuNS00MCAzNS43LTU5LjIgMzYuNS0xOS4zIC45LTQwLjUtMTMuMi00MC41LTM3IDUuNy0yMy4yIDE4LjktNDkuNyAzMy41LTU0IDIyLjctNi45IDY5LjIgMjMuNCA2Ni4yIDU0LjV6TTM3My4xIDc1LjJjLTMuOC03Mi4xLTEwMC44LTc5LjctMTI2LTIzLjUgNDQuNi0yNC4zIDkwLjMtMTUuNyAxMjYgMjMuNXpNNzUgNDA3LjFjLTE1LjcgMS42LTQ5LjUgMjUuNC00OS41IDQzLjIgMCAxMS42IDE1LjcgMTkuNSAzMi4yIDE0LjkgMTIuMi0zLjIgMzEuMS0xNy42IDM1LjktMjcuMyA2LTExLjYtMy43LTMyLjctMTguNi0zMC44ek0yOTAuOSAyMzAuOWMyOC42IDAgNTEuOS0yMS42IDUxLjktNDguNCAwLTM2LjEtNDAuNS01OC4xLTcyLjItNDQuMyA5LjUgMyAxNi41IDExLjYgMTYuNSAyMS42IDAgMjMuMy0zMy4zIDMyLTQ2LjUgMTEuMy03LjMgMzQuMSAxOS40IDU5LjggNTAuMyA1OS44ek02OC4yIDQ3NC4xYy41IDYuNSAxMi4yIDEyLjcgMjEuNiA5LjUgNi44LTIuNyAxNC42LTEwLjUgMTcuMy0xNi4yIDMtNy0xLjEtMjAtOS43LTE4LjQtOC45IDEuNi0yOS43IDE2LjctMjkuMiAyNS4xem00MzMuMi02N2MtMTQuOS0xLjktMjQuNiAxOS4yLTE4LjkgMzAuOCA0LjkgOS43IDI0LjEgMjQuMSAzNi4yIDI3LjMgMTYuNSA0LjYgMzIuMi0zLjIgMzIuMi0xNC45IDAtMTcuOC0zMy44LTQxLjYtNDkuNS00My4yek00NzkgNDQ5Yy04LjQtMS42LTEyLjQgMTEuMy05LjUgMTguNCAyLjQgNS43IDEwLjMgMTMuNSAxNy4zIDE2LjIgOS4yIDMuMiAyMS4xLTMgMjEuMy05LjUgLjktOC40LTIwLjItMjMuNS0yOS4xLTI1LjF6Il19LGYwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqZW5raW5zIixpY29uOls0NDgsNTEyLFtdLCJmM2I2IiwiTTQ1NS40IDQyNWMtMS40LTExLjItMTktMjMuMS0yOC4yLTMxLjktNS4xLTUtMjktMjMuMS0zMC40LTI5LjktMS40LTYuNiA5LjctMjEuNSAxMy4zLTI4LjkgNS4xLTEwLjcgOC44LTIzLjcgMTEuMy0zMi42IDE4LjgtNjYuMSAyMC43LTE1Ni45LTYuMi0yMTEuMi0xMC4yLTIwLjYtMzguNi00OS01Ni40LTYyLjUtNDItMzEuNy0xMTkuNi0zNS4zLTE3MC4xLTE2LjYtMTQuMSA1LjItMjcuOCA5LjgtNDAuMSAxNy4xLTMzLjEgMTkuNC02OC4zIDMyLjUtNzguMSA3MS42LTI0LjIgMTAuOC0zMS41IDQxLjgtMzAuMyA3Ny44IC4yIDcgNC4xIDE1LjggMi43IDIyLjQtLjcgMy4zLTUuMiA3LjYtNi4xIDkuOC0xMS42IDI3LjctMi4zIDY0IDExLjEgODMuNyA4LjEgMTEuOSAyMS41IDIyLjQgMzkuMiAyNS4yIC43IDEwLjYgMy4zIDE5LjcgOC4yIDMwLjQgMy4xIDYuOCAxNC43IDE5IDEwLjQgMjcuNy0yLjIgNC40LTIxIDEzLjgtMjcuMyAxNy42LTIxLjEgMTIuNS0zNi40IDIwLjMtNTUuOSAzNC4zLTEyLjYgOS0zMi4zIDEwLjItMjkuMiAzMS4xIDIuMSAxNC4xIDEwLjEgMzEuNiAxNC43IDQ1LjggLjcgMiAxLjQgNC4xIDIuMSA2bDQyMiAwYzQuOS0xNS4zIDkuNy0zMC45IDE0LjYtNDcuMiAzLjQtMTEuNCAxMC4yLTI3LjggOC43LTM5Ljd6TTE3NC4yIDMzLjdjMS44LS41IDMuNCAuNyA0LjkgMi40LS4yIDUuMi01LjQgNS4xLTguOSA2LjgtNS40IDYuNy0xMy40IDkuOC0yMCAxNy4yLTYuOCA3LjUtMTQuNCAyNy43LTIzLjQgMzAtNC41IDEuMS05LjctLjgtMTMuNi0uNS0xMC40IC43LTE3LjcgNi0yOC4zIDcuNSAxMy42LTI5LjkgNTYuMS01NCA4OS4zLTYzLjR6TTY5LjQgMTI3LjNjMTMuNS0xNC45IDMyLjEtMjQuMSA1NC44LTI1LjkgMTEuNyAyOS43LTguNCA2NS0uOSA5Ny42IDIuMyA5LjkgMTAuMiAyNS40LTIuNCAyNS43IC4zLTI4LjMtMzQuOC00Ni4zLTYxLjMtMjkuNi0xLjgtMjEuNS00LjktNTEuNyA5LjgtNjcuOHptMzYuNyAyMDAuMmMtMS00LjEtMi43LTEyLjktMi4zLTE1LjEgMS42LTguNyAxNy4xLTEyLjUgMTEtMjQuNy0xMS4zLS4xLTEzLjggMTAuMi0yNC4xIDExLjMtMjYuNyAyLjYtNDUuNi0zNS40LTQ0LjQtNTguNCAxLTE5LjUgMTcuNi0zOC4yIDQwLjEtMzUuOCAxNiAxLjggMjEuNCAxOS4yIDI0LjUgMzQuNyA5LjIgLjUgMjIuNS0uNCAyNi45LTcuNi0uNi0xNy41LTguOC0zMS42LTguMi00Ny43IDEtMzAuMyAxNy41LTU3LjYgNC44LTg3LjQgMTMuNi0zMC45IDUzLjUtNTUuMyA4My4xLTcwIDM2LjYtMTguMyA5NC45LTMuNyAxMjkuMyAxNS44IDE5LjcgMTEuMSAzNC40IDMyLjcgNDguMyA1MC43LTE5LjUtNS44LTM2LjEgNC4yLTMzLjEgMjAuMyAxNi4zLTE0LjkgNDQuMi0uMiA1Mi41IDE2LjQgNy45IDE1LjggNy44IDM5LjMgOSA2Mi44IDIuOSA1Ny0xMC40IDExNS45LTM5LjEgMTU3LjEtNy43IDExLTE0LjEgMjMtMjQuOSAzMC42LTI2IDE4LjItNjUuNCAzNC43LTk5LjIgMjMuNC00NC43LTE1LTY1LTQ0LjgtODkuNS03OC44IC43IDE4LjcgMTMuOCAzNC4xIDI2LjggNDguNCAxMS4zIDEyLjUgMjUgMjYuNiAzOS43IDMyLjQtMTIuMy0yLjktMzEuMS0zLjgtMzYuMiA3LjItMjguNi0xLjktNTUuMS00LjgtNjguNy0yNC4yLTEwLjYtMTUuNC0yMS40LTQxLjQtMjYuMy02MS40em0yMjIgMTI0LjFjNC4xLTMgMTEuMS0yLjkgMTcuNC0zLjYtNS40LTIuNy0xMy0zLjctMTkuMy0yLjItLjEtNC4yLTItNi44LTMuMi0xMC4yIDEwLjYtMy44IDM1LjUtMjguNSA0OS42LTIwLjMgNi43IDMuOSA5LjUgMjYuMiAxMC4xIDM3IC40IDktLjggMTgtNC41IDIyLjgtMTguOC0uNi0zNS44LTIuOC01MC43LTcgLjktNi4xLTEtMTIuMSAuNi0xNi41em0tMTcuMi0yMGMtMTYuOCAuOC0yNi0xLjItMzguMy0xMC44IC4yLS44IDEuNC0uNSAxLjUtMS40IDE4IDggNDAuOC0zLjMgNTktNC45LTcuOSA1LjEtMTQuNiAxMS42LTIyLjIgMTcuMXptLTEyLjEgMzMuMmMtMS42LTkuNC0zLjUtMTItMi44LTIwLjIgMjUtMTYuNiAyOS43IDI4LjYgMi44IDIwLjJ6TTE5NC4zIDQzOC42Yy0xMS42LS43LTQ4LjEtMTQtMzguNS0yMy43IDkuNCA2LjUgMjcuNSA0LjkgNDEuMyA3LjMgLjggNC40LTIuOCAxMC4yLTIuOCAxNi40ek0yNiA0OTcuMWMtNC4zLTEyLjctOS4yLTI1LjEtMTQuOC0zNi45IDMwLjgtMjMuOCA2NS4zLTQ4LjkgMTAyLjItNjMuNSAyLjgtMS4xIDIzLjIgMjUuNCAyNi4yIDI3LjYgMTYuNSAxMS43IDM3IDIxIDU2LjIgMzAuMiAxLjIgOC44IDMuOSAyMC4yIDguNyAzNS41IC43IDIuMyAxLjQgNC43IDIuMiA3LjJsLTE4MC43IDAgMC0uMXptMjQwLjYgNS43bC0uOCAwYy4zLS4yIC41LS40IC44LS41bDAgLjV6bTcuNS01LjdjMi4xLTEuNCA0LjMtMi44IDYuNC00LjMgMS4xIDEuNCAyLjIgMi44IDMuMiA0LjNsLTkuNiAwem0xNS4xLTI0LjdjLTEwLjggNy4zLTIwLjYgMTguMy0zMy4zIDI1LjItNiAzLjMtMjcgMTEuNy0zMy40IDEwLjItMy42LS44LTMuOS01LjMtNS40LTkuNS0zLjEtOS0xMC4xLTIzLjQtMTAuOC0zNy0uOC0xNy4yLTIuNS00NiAxNi00Mi40IDE0LjkgMi45IDMyLjMgOS43IDQzLjkgMTYuMSA3LjEgMy45IDExLjEgOC42IDIxLjkgOS41LS4xIDEuNC0uMSAyLjgtLjIgNC4zLTUuOSAzLjktMTUuMyAzLjgtMjEuOCA3LjEgOS41IC40IDE3IDIuNyAyMy41IDUuOS0uMSAzLjQtLjMgNy0uNCAxMC42em01My40IDI0LjdsLTE0IDBjLS4xLTMuMi0yLjgtNS44LTYuMS01LjhzLTUuOSAyLjYtNi4xIDUuOGwtMTcuNCAwYy0yLjgtNC40LTUuNy04LjYtOC45LTEyLjUgMi4xLTIuMiA0LTQuNyA2LTYuOSA5IDMuNyAxNC44LTQuOSAyMS43LTQuMiA3LjkgLjggMTQuMiAxMS43IDI1LjQgMTFsLS42IDEyLjZ6bTguNyAwYy4yLTQgLjQtNy44IC42LTExLjUgMTUuNi03LjMgMjkgMS4zIDM1LjcgMTEuNWwtMzYuMyAwem04My40LTM3Yy0yLjMgMTEuMi01LjggMjQtOS45IDM3LjEtLjItLjEtLjQtLjEtLjYtLjFsLTI3LjkgMGMuNi0xLjEgMS4yLTIuMiAxLjktMy4zLTIuNi02LjEtOS04LjctMTAuOS0xNS41IDEyLjEtMjIuNyA2LjUtOTMuNC0yNC4yLTc4LjUgNC4zLTYuMyAxNS42LTExLjUgMjAuOC0xOS4zIDEzIDEwLjQgMjAuOCAyMC4zIDMzLjIgMzEuNCA2LjggNiAyMCAxMy4zIDIxLjQgMjMuMSAuOCA1LjUtMi42IDE4LjktMy44IDI1LjF6TTE5MC41IDEzMC41YzUuNC0xNC45IDI3LjItMzQuNyA0NS0zMiA3LjcgMS4yIDE4IDguMiAxMi4yIDE3LjctMzAuMi03LTQ1LjIgMTIuNi01NC40IDMzLjEtOC4xLTItNC45LTEzLjEtMi44LTE4Ljh6bTE4NC4xIDYzLjFjOC4yLTMuNiAyMi40LS43IDI5LjYtNS4zLTQuMi0xMS41LTEwLjMtMjEuNC05LjMtMzcuNyAuNSAwIDEgMCAxLjQgLjEgNi44IDE0LjIgMTIuNyAyOS4yIDIxLjQgNDEuNy01LjcgMTMuNS00My42IDI1LjQtNDMuMSAxLjJ6bS05Ni44IDIuN2MtNi44LTEwLjktMTktMzIuNS0xNC41LTQ1LjMgNi41IDExLjkgOC42IDI0LjQgMTcuOCAzMy4zIDQuMSA0IDEyLjIgOSA4LjIgMjAuMi0uOSAyLjctNy44IDguNi0xMS43IDkuNy0xNC40IDQuMy00Ny45IC45LTM2LjYtMTcuMSAxMS45IC43IDI3LjkgNy44IDM2LjgtLjh6bTI3LjMgNzBjMy44IDYuNiAxLjQgMTguNyAxMi4xIDIwLjYgMjAuMiAzLjQgNDMuNi0xMi4zIDU4LjEtMTcuOCA5LTE1LjItLjgtMjAuNy04LjktMzAuNS0xNi42LTIwLTM4LjgtNDQuOC0zOC03NC43IDYuNy00LjkgNy4zIDcuNCA4LjIgOS43IDguNyAyMC4zIDMwLjQgNDYuMiA0Ni4zIDYzLjUgMy45IDQuMyAxMC4zIDguNCAxMSAxMS4yIDIuMSA4LjItNS40IDE4LTQuNSAyMy41LTIxLjcgMTMuOS00NS44IDI5LjEtODEuNCAyNS42LTcuNC02LjctMTAuMy0yMS40LTIuOS0zMS4xem0tMjAxLjMtOS4yYy02LjgtMy45LTguNC0yMS0xNi40LTIxLjQtMTEuNC0uNy05LjMgMjIuMi05LjMgMzUuNS03LjgtNy4xLTkuMi0yOS4xLTMuNS00MC4zLTYuNi0zLjItOS41IDMuNi0xMy4xIDUuOSA0LjctMzQuMSA0OS44LTE1LjggNDIuMyAyMC4zem0yOTkuNiAyOC44Yy0xMC4xIDE5LjItMjQuNCA0MC40LTU0IDQxLS42LTYuMi0xLjEtMTUuNiAwLTE5LjQgMjIuNy0yLjIgMzYuNi0xMy43IDU0LTIxLjZ6TTI2MS41IDI5OC4zYzE4LjkgOS45IDUzLjYgMTEgNzkuMyAxMC4yIDEuNCA1LjYgMS4zIDEyLjYgMS40IDE5LjQtMzMgMS44LTcyLTYuNC04MC43LTI5LjZ6TTM1My43IDM0NWMtMS43IDQuMy01LjMgOS4zLTkuOCAxMS4xLTEyLjEgNC45LTQ1LjYgOC43LTYyLjQtLjMtMTAuNy01LjctMTcuNS0xOC41LTIzLjQtMjYtMi44LTMuNi0xNi45LTEyLjktLjItMTIuOSAxMy4xIDMyLjcgNTggMjkgOTUuOCAyOC4xeiJdfSx1MHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2xpZGVzaGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFlNyIsIk0xODcuOSAxNTMuN2MtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43czYxLjctMjYgNjEuNy01Ny43YzAtMzItMjcuNy01Ny43LTYxLjctNTcuN3ptMTQzLjQgMGMtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43IDM0LjMgMCA2MS43LTI2IDYxLjctNTcuNyAuMS0zMi0yNy40LTU3LjctNjEuNy01Ny43em0xNTYuNiA5MGwtNiA0LjMgMC0xOTguM2MwLTI3LjQtMjAuNi00OS43LTQ2LTQ5LjdMNzYuOCAwYy0yNS40IDAtNDYgMjIuMy00NiA0OS43bDAgMTk4LjNjLTItMS40LTQuMy0yLjktNi4zLTQuMy0xNS4xLTEwLjYtMjUuMSA0LTE2IDE3LjcgMTguMyAyMi42IDUzLjEgNTAuMyAxMDYuMyA3Mi01Ni4zIDE5MS43IDEzNy40IDIyMi4zIDEzNC4zIDEyNC4xIDAtLjcgLjMtNTYuNiAuMy05Ni42IDUuMSAxLjEgOS40IDIuMyAxMy43IDMuMSAwIDM5LjcgLjMgOTIuOCAuMyA5My41LTMuMSA5OC4zIDE5MC42IDY3LjcgMTM0LjMtMTI0IDUzLjEtMjEuNyA4OC00OS40IDEwNi4zLTcyIDkuMS0xMy44LS45LTI4LjMtMTYuMS0xNy44em0tMzAuNSAxOS4yYy02OC45IDM3LjQtMTI4LjMgMzEuMS0xNjAuNiAyOS43LTIzLjctLjktMzIuNiA5LjEtMzMuNyAyNC45LTEwLjMtNy43LTE4LjYtMTUuNS0yMC4zLTE3LjEtNS4xLTUuNC0xMy43LTgtMjcuMS03LjctMzEuNyAxLjEtODkuNyA3LjQtMTU3LjQtMjhsMC0xOTIuNGMwLTM0LjkgOC45LTQ1LjcgNDAuNi00NS43bDMxNy43IDBjMzAuMyAwIDQwLjkgMTIuOSA0MC45IDQ1LjdsMCAxOTAuNi0uMSAweiJdfSxwMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWJlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwMiIsIk00MTQuMSAzMkwzMy45IDMyQzE1LjIgMzIgMCA0Ny4yIDAgNjUuOUwwIDQ0NmMwIDE4LjggMTUuMiAzNCAzMy45IDM0TDQxNCA0ODBjMTguNyAwIDMzLjktMTUuMiAzMy45LTMzLjlsMC0zODAuMkM0NDggNDcuMiA0MzIuOCAzMiA0MTQuMSAzMnpNMjM3LjYgMzkxLjFDMTYzIDM5OC42IDk2LjQgMzQ0LjIgODguOSAyNjkuNmw5NC40IDAgMCAyMC40YzAgMy43IDMgNi44IDYuOCA2LjhsNjcuOSAwYzMuNyAwIDYuOC0zIDYuOC02LjhsMC02Ny45YzAtMy43LTMtNi44LTYuOC02LjhsLTY3LjkgMGMtMy43IDAtNi44IDMtNi44IDYuOGwwIDIwLjQtOTQuNCAwYzctNjkuNCA2NS40LTEyMi4yIDEzNS4xLTEyMi4yczEyOC4xIDUyLjggMTM1LjEgMTIyLjJjNy41IDc0LjUtNDYuOSAxNDEuMS0xMjEuNSAxNDguNnoiXX0saDB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpZ2l0YWwtb2NlYW4iLGljb246WzUxMiw1MTIsW10sImYzOTEiLCJNODcgNDgxLjhsNzMuNyAwIDAtNzMuNi03My43IDAgMCA3My42ek0yNS40IDM0Ni42bDAgNjEuNiA2MS42IDAgMC02MS42LTYxLjYgMHpNNDkxLjYgMTc2LjlDNDY4LjYgMTAyLjcgNDA5LjIgNDMuNiAzMzUgMjAuMyAxNjQuOS0zMi44IDggOTMuNyA4IDI1NS45bDk1LjggMGMwLTEwMS44IDEwMS0xODAuNSAyMDguMS0xNDEuNyAzOS43IDE0LjMgNzEuNSA0Ni4xIDg1LjggODUuNyAzOS4xIDEwNy0zOS43IDIwNy44LTE0MS40IDIwOGwwIC4zLS4zIDAgMCA5NS44YzE2Mi42IDAgMjg4LjgtMTU2LjggMjM1LjYtMzI3LjF6bS0yMzUuMyAyMzFsMC05NS4zLTk1LjYgMCAwIDk1LjYgOTUuMyAwIDAtLjMgLjMgMHoiXX0sbTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNvdW5kY2xvdWQiLGljb246WzY0MCw1MTIsW10sImYxYmUiLCJNNjQwLjIgMjk4LjZjLTEuMyAyMy4xLTExLjUgNDQuOC0yOC40IDYwLjVzLTM5LjIgMjQuNC02Mi4zIDI0LjFsLTIxOCAwYy00LjggMC05LjQtMi0xMi44LTUuNHMtNS4zLTgtNS4zLTEyLjhsMC0yMzQuOGMtLjItNCAuOS04IDMuMS0xMS40czUuMy02LjEgOS03LjdjMCAwIDIwLjEtMTMuOSA2Mi4zLTEzLjkgMjUuOCAwIDUxLjEgNi45IDczLjMgMjAuMSAxNy4zIDEwLjIgMzIuMyAyMy44IDQ0LjEgNDAuMXMyMCAzNC44IDI0LjIgNTQuNGM3LjUtMi4xIDE1LjMtMy4yIDIzLjEtMy4yIDExLjctLjEgMjMuMyAyLjIgMzQuMiA2LjdzMjAuNSAxMS4zIDI4LjcgMTkuNyAxNC42IDE4LjMgMTguOSAyOS4zIDYuMyAyMi42IDUuOSAzNC4zem0tMzU0LTE1My41Yy4xLTEgMC0yLS4zLTIuOXMtLjgtMS44LTEuNS0yLjYtMS41LTEuMy0yLjQtMS43Yy0xLjgtLjgtNC0uOC01LjggMC0uOSAuNC0xLjcgMS0yLjQgMS43cy0xLjIgMS42LTEuNSAyLjYtLjQgMS45LS4zIDIuOWMtNiA3OC45LTEwLjYgMTUyLjkgMCAyMzEuNiAuMiAxLjcgMSAzLjMgMi4zIDQuNSAyLjYgMi40IDYuOCAyLjQgOS40IDAgMS4zLTEuMiAyLjEtMi44IDIuMy00LjUgMTEuMy03OS40IDYuNi0xNTIgMC0yMzEuNmwuMiAwem0tNDQgMjcuM2MtLjItMS44LTEuMS0zLjUtMi40LTQuN3MtMy4xLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4yIDIuOS0yLjQgNC43Yy03LjkgNjcuOS03LjkgMTM2LjUgMCAyMDQuNCAuMyAxLjggMS4yIDMuNCAyLjUgNC41czMuMSAxLjggNC44IDEuOCAzLjUtLjYgNC44LTEuOCAyLjItMi44IDIuNS00LjVjOC44LTY3LjggOC44LTEzNi41IC4xLTIwNC40bC4xIDB6bS00NC4zLTYuOWMtLjItMS44LTEtMy40LTIuMy00LjZzLTMtMS44LTQuOC0xLjgtMy41IC43LTQuOCAxLjgtMi4xIDIuOC0yLjMgNC42Yy02LjcgNzItMTAuMiAxMzkuMyAwIDIxMS4xIDAgMS45IC43IDMuNyAyLjEgNXMzLjEgMi4xIDUgMi4xIDMuNy0uNyA1LTIuMSAyLjEtMy4xIDIuMS01YzEwLjUtNzIuOCA3LjMtMTM4LjIgLjEtMjExLjFsLS4xIDB6bS00NCAyMC42YzAtMS45LS44LTMuOC0yLjEtNS4ycy0zLjItMi4xLTUuMi0yLjEtMy44IC44LTUuMiAyLjEtMi4xIDMuMi0yLjEgNS4yYy04LjEgNjMuMy04LjEgMTI3LjUgMCAxOTAuOCAuMiAxLjggMSAzLjQgMi40IDQuNnMzLjEgMS45IDQuOCAxLjkgMy41LS43IDQuOC0xLjkgMi4yLTIuOCAyLjQtNC42YzguOC02My4zIDguOS0xMjcuNSAuMy0xOTAuOGwtLjEgMHptLTQ0LjUgNDcuNmMwLTEuOS0uOC0zLjgtMi4xLTUuMXMtMy4yLTIuMS01LjEtMi4xLTMuOCAuOC01LjEgMi4xLTIuMSAzLjItMi4xIDUuMWMtMTAuNSA0OS4yLTUuNSA5My45IC40IDE0My42IC4zIDEuNiAxLjEgMy4xIDIuMyA0LjJzMi44IDEuNyA0LjUgMS43IDMuMi0uNiA0LjUtMS43IDIuMS0yLjUgMi4zLTQuMmM2LjYtNTAuNCAxMS42LTk0LjEgLjQtMTQzLjZ6bS00NC4xLTcuNWMtLjItMS44LTEuMS0zLjUtMi40LTQuOHMtMy4yLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4yIDIuOS0yLjQgNC44Yy05LjMgNTAuMi02LjIgOTQuNCAuMyAxNDQuNSAuNyA3LjYgMTMuNiA3LjUgMTQuNCAwIDcuMi01MC45IDEwLjUtOTMuOCAuMy0xNDQuNWwtLjIgMHpNMjAuNyAyNTAuOGMtLjItMS44LTEuMS0zLjUtMi40LTQuOHMtMy4yLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4zIDIuOS0yLjQgNC44Yy04LjUgMzMuNy01LjkgNjEuNiAuNiA5NS40IC4yIDEuNyAxIDMuMyAyLjMgNC40czIuOSAxLjggNC43IDEuOCAzLjQtLjYgNC43LTEuOCAyLjEtMi43IDIuMy00LjRjNy41LTM0LjUgMTEuMi02MS44IC40LTk1LjRsLS4yIDB6Il19LGcwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZmlnbWEiLGljb246WzQ0OCw1MTIsW10sImU3ZTQiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTczLjcgOTZjLTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOCAwIDIxIDEwLjggMzkuNCAyNy4yIDUwLjEtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjFzMTAuOCAzOS41IDI3LjIgNTAuMWMtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjEgMCAzMy4xIDI3LjEgNTkuOCA2MC4xIDU5LjggMzMuMiAwIDYwLjYtMjYuOSA2MC42LTYwLjNsMC01NS43YzEwLjYgOS44IDI0LjggMTUuOCA0MC40IDE1LjhsMS4xIDBjMzMgMCA1OS44LTI2LjggNTkuOC01OS44IDAtMjEtMTAuOC0zOS41LTI3LjItNTAuMSAxNi40LTEwLjcgMjcuMi0yOS4xIDI3LjItNTAuMSAwLTMzLTI2LjgtNTkuOC01OS44LTU5LjhMMTczLjcgOTZ6bTQxLjYgMjE5LjhsMCAzOS45YzAgMjIuNi0xOC42IDQxLTQxLjMgNDEtMjIuNCAwLTQwLjctMTguMi00MC43LTQwLjUgMC0yMi4zIDE4LjEtNDAuNCA0MC4zLTQwLjRsNDEuNyAwem0wLTEwMC4zbDAgODAuOS00MS43IDBjLTIyLjMtLjEtNDAuMy0xOC4yLTQwLjMtNDAuNSAwLTIyLjMgMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDB6bTYwLjggMGMyMi4zIDAgNDAuNSAxOC4xIDQwLjUgNDAuNXMtMTguMSA0MC41LTQwLjUgNDAuNWwtMS4xIDBjLTIyLjMgMC00MC40LTE4LjEtNDAuNC00MC41czE4LjEtNDAuNSA0MC40LTQwLjVsMS4xIDB6bS02MC44LTE5LjNsLTQxLjYgMGMtMjIuMyAwLTQwLjUtMTguMS00MC41LTQwLjRzMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDAgMCA4MC45em02MC44LTgwLjljMjIuMyAwIDQwLjUgMTguMSA0MC41IDQwLjVzLTE4LjEgNDAuNC00MC41IDQwLjRsLTQxLjUgMCAwLTgwLjkgNDEuNSAweiJdfSx4MHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zYSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlZiIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6TTE0NS43IDIyMWMxMy04My45IDgwLjUtOTUuNyAxMDguOS05NS43IDk5LjggMCAxMjcuNSA4Mi41IDEyNy41IDEzNC4yIDAgNjMuNi00MSAxMzIuOS0xMjguOSAxMzIuOS0zOC45IDAtOTkuMS0yMC0xMDkuNC05N2w2Mi41IDBjMS41IDMwLjEgMTkuNiA0NS4yIDU0LjUgNDUuMiAyMy4zIDAgNTgtMTguMiA1OC04Mi44IDAtODIuNS00OS4xLTgwLjYtNTYuNy04MC42LTMzLjEgMC01MS43IDE0LjYtNTUuOCA0My44bDE4LjIgMC00OS4yIDQ5LjItNDktNDkuMiAxOS40IDB6Il19LGIwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjaHJvbWUiLGljb246WzUxMiw1MTIsW10sImYyNjgiLCJNMCAyNTZjMC00Ni42IDEyLjUtOTAuNCAzNC4zLTEyOC45TDE0NC4xIDMxOC4zYzIxLjkgMzkuMiA2My44IDY1LjcgMTExLjkgNjUuNyAxNC4zIDAgMjcuMS0yLjMgNDAuOC02LjZMMjIwLjUgNTA5LjZDOTUuOSA0OTIuMyAwIDM4NS4zIDAgMjU2em0zNjUuMSA2NS42YzEyLjMtMTkuMiAxOC45LTQyLjUgMTguOS02NS42IDAtMzguMi0xNi44LTcyLjUtNDMuMy05NmwxNTIuNyAwYzEyIDI5LjYgMTguNiA2Mi4xIDE4LjYgOTYgMCAxNDEuNC0xMTQuNiAyNTUuMS0yNTYgMjU2TDM2NS4xIDMyMS42ek00NzcuOCAxMjhMMjU2IDEyOGMtNjIuOSAwLTExMy43IDQ0LjEtMTI1LjUgMTAyLjdMNTQuMiA5OC41QzEwMSAzOC41IDE3NCAwIDI1NiAwIDM1MC44IDAgNDMzLjUgNTEuNSA0NzcuOCAxMjh6TTM0NCAyNTZhODggODggMCAxIDEgLTE3NiAwIDg4IDg4IDAgMSAxIDE3NiAweiJdfSx2MHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHJhZGUtZmVkZXJhdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjUxMyIsIk0yNTYgOC44YTI0Ny4yIDI0Ny4yIDAgMSAwIDAgNDk0LjQgMjQ3LjIgMjQ3LjIgMCAxIDAgMC00OTQuNHptMCAxMS42YTIzNS42IDIzNS42IDAgMSAxIDAgNDcxLjIgMjM1LjYgMjM1LjYgMCAxIDEgMC00NzEuMnpNNDExLjEgMTYzLjFsMC00Ni44LTE5My44IDAgMCA4MS43LTE1NS4xIDAgMzYuNyA0NiAxMTcuNyAwIDAgMTk2LjggNDguOCAwIDAtMTk1LjggODMuMyAwIDAtNDctODMuMyAwIDAtMzQuOCAxNDUuNyAwIDAtLjF6bS03My4zIDQ1LjFsMCAyMy45LTgyLjkgMCAwIDE5Ny40LTI2LjggMCAwLTE5Ny40LTEyMy44IDAtMjAuMS0yMy45IDE0My45IDAgMC04MC42IDE3MS44IDAgMCAyNC40LTE0NSAwIDAgNTYuMiA4Mi45IDB6bS0xNjEuMy02OWwtMTIuNC0yMC43IDIuMSAyMy44LTIzLjUgNS40IDIzLjMgNS40LTIuMSAyNCAxMi4zLTIwLjUgMjIuMiA5LjUtMTUuNy0xOC4xIDE1LjgtMTguMS0yMiA5LjN6bS0yOS42LTE5LjdsOS4zLTExLjUtMTIuNyA1LjktOC0xMi40IDEuNyAxMy45LTE0LjMgMy44IDEzLjcgMi43LS44IDE0LjcgNi44LTEyLjIgMTMuOCA1LjMtOS41LTEwLjJ6TTMxMi4zIDI2NC43bC0xMy4xIDUuNi03LjMtMTIuMiAxLjMgMTQuMi0xMy45IDMuMiAxMy45IDMuMi0xLjIgMTQuMiA3LjMtMTIuMiAxMy4xIDUuNS05LjQtMTAuNyA5LjMtMTAuOHptMTA2LjktNzcuMmwtMjAuOSA5LjEtMTItMTkuNiAyLjIgMjIuNy0yMi4zIDUuNCAyMi4yIDQuOS0xLjggMjIuOSAxMS41LTE5LjYgMjEuMiA4LjgtMTUuMS0xNyAxNS0xNy42ek0yNTYgMjkuOWEyMjYuMSAyMjYuMSAwIDEgMCAwIDQ1Mi4yIDIyNi4xIDIyNi4xIDAgMSAwIDAtNDUyLjJ6TTM1MC42IDE5NmwwIDUxLTgzLjMgMCAwIDE5NS43LTUyLjcgMCAwLTE5Ni44LTExNi43IDAtNDAtNDkuOSAxNTcuNCAwIDAtODEuNiAxOTcuOCAwIDAgNTAuNy0xNDUuNyAwIDAgMzAuOSA4My4yIDB6TTI1NiA0My4yYzYwLjMgMCAxMTQuOCAyNSAxNTMuNiA2NS4ybC0xOTkuMSAwIDAgODEuNi0xNTcuNCAwQzgxLjEgMTA0LjggMTYxLjQgNDMuMiAyNTYgNDMuMnptMCA0MjcuMWMtMTE3LjkgMC0yMTMuNi05NS42LTIxMy42LTIxMy41IDAtMjEuMiAzLjEtNDEuOCA4LjktNjEuMWw0My44IDU2LjMgMTE0LjcgMCAwIDE5Ni44IDY0LjYgMCAwLTE5NS44IDgzLjMgMCAwLTYyLjctODMuMiAwIDAtMTkuMiAxNDUuNiAwIDAtNTAuOGMzMC44IDM3IDQ5LjMgODQuNiA0OS4zIDEzNi41IC4xIDExNy45LTk1LjUgMjEzLjUtMjEzLjQgMjEzLjV6TTE4Ni44IDI3NWwtMTEtMjEuNCAxLjcgMjQuNS0yMy43IDMuOSAyMy44IDUuOS0zLjcgMjMuOCAxMy0yMC45IDIxLjUgMTAuOC0xNS44LTE4LjggMTYuOS0xNy4xLTIyLjcgOS4zeiJdfSx5MHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmFhZGluIixpY29uOls0NDgsNTEyLFtdLCJmNDA4IiwiTTIyNC41IDE0MC43QzIyNiAxMjMuMSAyMjkuNCA4OCAyNzQuMyA4OGw5OC42IDBjMjAuNyAwIDMyLjEtNy44IDMyLjEtMjEuNmwwLTEyLjNjMC0xMi4yIDkuMy0yMi4xIDIxLjUtMjIuMVM0NDggNDEuOSA0NDggNTQuMWwwIDM2LjVjMCA0Mi45LTIxLjUgNjItNjYuOCA2MmwtMTAwLjUgMGMtMzAuMSAwLTMzIDE0LjctMzMgMjcuMSAwIDEuMy0uMSAyLjUtLjIgMy43LS43IDEyLjMtMTAuOSAyMi4yLTIzLjQgMjIuMnMtMjIuNy05LjgtMjMuNC0yMi4yYy0uMS0xLjItLjItMi40LS4yLTMuNyAwLTEyLjMtMy0yNy4xLTMzLTI3LjFsLTEwMC43IDBDMjEuNSAxNTIuNiAwIDEzMy41IDAgOTAuNkwwIDU0LjFDMCA0MS45IDkuNCAzMiAyMS42IDMyczIxLjUgOS45IDIxLjUgMjIuMWwwIDEyLjNDNDMuMSA4MC4yIDU0LjUgODggNzUuMiA4OGw5OC42IDBjNDQuOCAwIDQ4LjMgMzUuMSA0OS44IDUyLjdsLjkgMHpNMjI0IDQ1NmMxMS41IDAgMjEuNC03IDI1LjctMTYuMyAxLjEtMS44IDk3LjEtMTY5LjYgOTguMi0xNzEuNCAxMS45LTE5LjYtMy4yLTQ0LjMtMjcuMi00NC4zLTEzLjkgMC0yMy4zIDYuNC0yOS44IDIwLjNMMjI0IDM2MiAxNTcuMSAyNDQuM2MtNi40LTEzLjktMTUuOS0yMC4zLTI5LjgtMjAuMy0yNCAwLTM5LjEgMjQuNi0yNy4yIDQ0LjMgMS4xIDEuOSA5Ny4xIDE2OS42IDk4LjIgMTcxLjQgNC4zIDkuMyAxNC4yIDE2LjMgMjUuNyAxNi4zeiJdfSx3MHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGV2aWFudGFydCIsaWNvbjpbMzIwLDUxMixbXSwiZjFiZCIsIk0zMjAgOTMuMmwtOTguMiAxNzkuMSA3LjQgOS41IDkwLjggMCAwIDEyNy43LTE2MC45IDAtMTMuNSA5LjItNDMuNyA4NGMtLjMgMC04LjYgOC42LTkuMiA5LjJsLTkyLjcgMCAwLTkzLjIgOTMuMi0xNzkuNC03LjQtOS4yLTg1LjggMCAwLTEyNy42IDE1NiAwIDEzLjUtOS4yIDQzLjctODRjLjMgMCA4LjYtOC42IDkuMi05LjJsOTcuNiAwIDAgOTMuMXoiXX0sR2Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVkaXVtIixpY29uOls0NDgsNTEyLFs2MjQwNywibWVkaXVtLW0iXSwiZjIzYSIsIk0zNjkuNCAzMmM0My40IDAgNzguNiAzNS4yIDc4LjYgNzguNmwwIDgzLjhjLTEuOS0uMS0zLjgtLjItNS43LS4ybC0uNCAwYy0xMCAwLTIyLjMgMi40LTMxLjEgNi44LTEwIDQuNi0xOC43IDExLjUtMjYgMjAuNi0xMS44IDE0LjYtMTguOSAzNC4zLTIwLjYgNTYuNC0uMSAuNy0uMSAxLjMtLjIgMnMtLjEgMS4yLS4xIDEuOWMtLjEgMS4yLS4xIDIuNC0uMSAzLjYgMCAxLjktLjEgMy44IDAgNS44IDEuMiA1MC4xIDI4LjIgOTAuMiA3Ni4zIDkwLjIgMi43IDAgNS4zLS4xIDcuOS0uNGwwIDIwLjRjMCA0My40LTM1LjIgNzguNi03OC42IDc4LjZMNzguNiA0ODBDMzUuMiA0ODAgMCA0NDQuOCAwIDQwMS40TDAgMTEwLjZDMCA2Ny4yIDM1LjIgMzIgNzguNiAzMmwyOTAuOCAwek04Mi4zIDEzOC45bC4zIC4xYzEzLjIgMyAxOS44IDcuNCAxOS44IDIzLjRsMCAxODcuMmMwIDE2LTYuNyAyMC40LTE5LjkgMjMuNGwtLjMgLjEgMCAyLjggNTIuOCAwIDAtMi44LS4zLS4xYy0xMy4yLTMtMTkuOS03LjQtMTkuOS0yMy40bDAtMTc2LjMgODYuMSAyMDIuNSA0LjkgMCA4OC42LTIwOC4yIDAgMTg2LjZjLTEuMSAxMi42LTcuOCAxNi41LTE5LjcgMTkuMmwtLjMgLjEgMCAyLjcgOTEuOSAwIDAtMi43LS4zLS4xYy0xMS45LTIuNy0xOC43LTYuNi0xOS45LTE5LjJsLS4xLTE5MS44IC4xIDBjMC0xNiA2LjctMjAuNCAxOS45LTIzLjRsLjMtLjEgMC0yLjctNzIuMiAwLTY3IDE1Ny40LTY3LTE1Ny40LTc3LjggMCAwIDIuN3pNNDQ4IDM0MC4zYy0yNS4xLTcuNC00My0zNS4xLTQxLjItNjcuOGwwIDAgNDEuMSAwIDAgNjcuOHptLTYuNC0xMzUuNmMyLjMgMCA0LjQgLjMgNi40IC45bDAgNTcuNC00MC4yIDBjMS41LTMzLjYgMTMuNi01Ny45IDMzLjgtNTguM3oiXX0sTTB0PUdkLHowdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuY2FydCIsaWNvbjpbNjQwLDUxMixbXSwiZjIzZCIsIk0zMzEuOCA0NDAuNGE0NS44IDQ1LjggMCAxIDEgOTEuNSAuMyA0NS44IDQ1LjggMCAxIDEgLTkxLjUtLjN6TTE2OS40IDM5NC45YTQ1LjcgNDUuNyAwIDEgMCAuMyA5MS4zIDQ1LjcgNDUuNyAwIDEgMCAtLjMtOTEuM3ptMjkxLjctMjcwYy0zMDIuMiAwLTM3OS4yLTEyLjgtNDYxLjEtOTkuMiAzNC40IDUxLjcgNTMuMyAxNDguOSAzNzMuMSAxNDQuMiAzMzMuMy01IDEzMCA4Ni4xIDcwLjggMTg4LjkgMTg2LjctMTY2LjcgMzE5LjQtMjMzLjkgMTcuMi0yMzMuOXoiXX0sazB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InktY29tYmluYXRvciIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzYiIsIk00NDggMzJsMCA0NDgtNDQ4IDAgMC00NDggNDQ4IDB6TTIzNiAyODcuNWw3Ny41LTE0NS41LTMyLjcgMC00NS44IDkxYy00LjcgOS4zLTkgMTguMy0xMi44IDI2LjhsLTEyLjItMjYuOC00NS4yLTkxLTM1IDAgNzYuNyAxNDMuOCAwIDk0LjUgMjkuNSAwIDAtOTIuOHoiXX0sUzB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmUiLGljb246WzUxMiw1MTIsW10sImYzYzAiLCJNMzExIDE5Ni44bDAgODEuM2MwIDIuMS0xLjYgMy43LTMuNyAzLjdsLTEzIDBjLTEuMyAwLTIuNC0uNy0zLTEuNUwyNTQgMjMwIDI1NCAyNzguMmMwIDIuMS0xLjYgMy43LTMuNyAzLjdsLTEzIDBjLTIuMSAwLTMuNy0xLjYtMy43LTMuN2wwLTgxLjNjMC0yLjEgMS42LTMuNyAzLjctMy43bDEyLjkgMGMxLjEgMCAyLjQgLjYgMyAxLjZsMzcuMyA1MC4zIDAtNDguMmMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMTMgMGMyLjEtLjEgMy44IDEuNiAzLjggMy41bDAgLjF6bS05My43LTMuN2wtMTMgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDIuMSAxLjYgMy43IDMuNyAzLjdsMTMgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC04MS4zYzAtMS45LTEuNi0zLjctMy43LTMuN3ptLTMxLjQgNjguMWwtMzUuNiAwIDAtNjQuNGMwLTIuMS0xLjYtMy43LTMuNy0zLjdsLTEzIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDgxLjNjMCAxIC4zIDEuOCAxIDIuNSAuNyAuNiAxLjUgMSAyLjUgMWw1Mi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTNjMC0xLjktMS42LTMuNy0zLjUtMy43bC4xIDB6bTE5My43LTY4LjFsLTUyLjMgMGMtMS45IDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDEuOSAxLjYgMy43IDMuNyAzLjdsNTIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzLjFjMC0yLjEtMS42LTMuNy0zLjctMy43bC0zNS41IDAgMC0xMy42IDM1LjUgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xMy4xYzAtMi4xLTEuNi0zLjctMy43LTMuN2wtMzUuNSAwIDAtMTMuNyAzNS41IDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTNjLS4xLTEuOS0xLjctMy43LTMuNy0zLjdsLjEgMHpNNTEyIDkzLjRsMCAzMjZjLS4xIDUxLjItNDIuMSA5Mi43LTkzLjQgOTIuNmwtMzI2IDBDNDEuNCA1MTEuOS0uMSA0NjkuOCAwIDQxOC42bDAtMzI2Qy4xIDQxLjQgNDIuMi0uMSA5My40IDBsMzI2IDBjNTEuMiAuMSA5Mi43IDQyLjEgOTIuNiA5My40ek00NDEuNiAyMzMuNWMwLTgzLjQtODMuNy0xNTEuMy0xODYuNC0xNTEuM1M2OC44IDE1MC4xIDY4LjggMjMzLjVjMCA3NC43IDY2LjMgMTM3LjQgMTU1LjkgMTQ5LjMgMjEuOCA0LjcgMTkuMyAxMi43IDE0LjQgNDIuMS0uOCA0LjctMy44IDE4LjQgMTYuMSAxMC4xczEwNy4zLTYzLjIgMTQ2LjUtMTA4LjJjMjctMjkuNyAzOS45LTU5LjggMzkuOS05My4xbDAtLjJ6Il19LEMwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbWlsaWEiLGljb246WzQ0OCw1MTIsW10sImYzNmQiLCJNMjQwLjIgMzJjLTYxLjkgMC0xMzEuNSAxNi45LTE4NC4yIDU1LjQtNS4xIDMuMS05LjEgOS4yLTcuMiAxOS40IDEuMSA1LjEgNS4xIDI3LjQgMTAuMiAzOS42IDQuMSAxMC4yIDE0LjIgMTAuMiAyMC4zIDYuMSAzMi41LTIyLjMgOTYuNS00Ny43IDE1Mi4zLTQ3LjcgNTcuOSAwIDU4LjkgMjguNCA1OC45IDczLjFsMCAzOC41QzIwMy4xIDIyNy43IDc4LjMgMjUxIDQ2LjggMjY0LjIgMTEuMyAyODAuNSAxNi40IDM1Ny43IDE2LjQgMzc2UzMxLjYgNDgwIDE0MS4zIDQ4MGM0Ny44IDAgMTEzLjctMjAuNyAxNTMuMy00Mi4xbDAgMjUuNGMwIDMgMi4xIDguMiA2LjEgOS4xIDMuMSAxIDUwLjcgMiA1OS45IDJzNjIuNSAuMyA2Ni41LS43YzQuMS0xIDUuMS02LjEgNS4xLTkuMWwwLTI5Ni42Yy0uMS04MC4zLTU3LjktMTM2LTE5Mi0xMzZ6bTUwLjIgMzQ4Yy0yMS40IDEzLjItNDguNyAyNC40LTc5LjEgMjQuNC01Mi44IDAtNTguOS0zMy41LTU5LTQ0LjcgMC0xMi4yLTMtNDIuNyAxOC4zLTUyLjkgMjQuMy0xMy4yIDc1LjEtMjkuNCAxMTkuOC0zMy41bDAgMTA2Ljd6Il19LEwwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhc3ltbWV0cmlrIixpY29uOls1NzYsNTEyLFtdLCJmMzcyIiwiTTUxNy41IDMwOS4yYzM4LjgtNDAgNTguMS04MCA1OC41LTExNi4xIC44LTY1LjUtNTkuNC0xMTguMi0xNjkuNC0xMzUtMTI4LjctMTkuNy0yODguNSAxNS41LTQwNi42IDgyLjQgNTItMjYuNSAxMTAuNi00OC4yIDE3MC43LTU4LjIgNzQuNS0yMC41IDE1My0yNS40IDIyMS4zLTE0LjggMTUyLjUgMjMuOCAxOTYuOCAxMjcuNSA5OC44IDIzMS43LTEwLjIgMTAuOC0yMiAyMS4xLTM1IDMwLjZMMzA0LjkgMTAzLjQgMTE0LjcgMzg4LjljLTY1LjYtMjkuNC03Ni41LTkwLjItMTkuMS0xNTEuMiAyMC44LTIyLjIgNDguMy00MS45IDc5LjUtNTguMSAyMC0xMi4yIDM5LjctMjIuNiA2Mi0zMC43LTY1LjEgMjAuMy0xMjIuNyA1Mi45LTE2MS42IDkyLjktMjcuNyAyOC42LTQxLjQgNTcuMS00MS43IDgyLjktLjUgMzUuMSAyMy40IDY1LjEgNjguNCA4M2wtMzQuNSA1MS43IDEwMS42IDAgMjItMzQuNGMyMi4yIDEgNDUuMyAwIDY4LjYtMi43bC0yMi44IDM3LjEgMTM1LjUgMC0zMi42LTUzLjFjMTguNi01LjMgMzYuOS0xMS41IDU0LjUtMTguN2w0NS45IDcxLjggMTAxLjYgMC03My40LTExMC40YzE4LjUtMTIuMSAzNS0yNS41IDQ4LjktMzkuOHpNMzI5LjkgMzg5LjdsLTI1LTQwLjYtMzIuNyA1My4zYy0yMy40IDMuNS00Ni43IDUuMS02OS4yIDQuNGwxMDEuOS0xNTkuMyA3OC43IDEyM2MtMTcuMiA3LjQtMzUuMyAxMy45LTUzLjcgMTkuMnoiXX0sVDB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBoYWJyaWNhdG9yIixpY29uOls1MTIsNTEyLFtdLCJmM2RiIiwiTTMzMS4xIDI2Mi4xbC0uMS0xM3MyMS43LTE5LjggMjEuMS0yMS4ybC05LjUtMjBjLS42LTEuNC0yOS41LS41LTI5LjUtLjVsLTkuNC05LjNzLjItMjguNS0xLjItMjkuMWwtMjAuMS05LjJjLTEuNC0uNi0yMC43IDIxLTIwLjcgMjFsLTEzLjEtLjJzLTIwLjUtMjEuNC0yMS45LTIwLjhsLTIwIDguM2MtMS40IC41IC4yIDI4LjkgLjIgMjguOWwtOS4xIDkuMXMtMjkuMi0uOS0yOS43IC40TDE2MCAyMjYuM2MtLjYgMS40IDIxIDIxIDIxIDIxbC4xIDEyLjlTMTU5LjQgMjgwIDE2MCAyODEuNGw5LjUgMjBjLjYgMS40IDI5LjUgLjUgMjkuNSAuNWw5LjQgOS4zcy0uMiAzMS44IDEuMiAzMi4zbDIwLjEgOC4zYzEuNCAuNiAyMC43LTIzLjUgMjAuNy0yMy41bDEzLjEgLjJzMjAuNSAyMy44IDIxLjggMjMuM2wyMC03LjVjMS40LS42LS4yLTMyLjEtLjItMzIuMWw5LjEtOS4xczI5LjIgLjkgMjkuNy0uNWw4LjEtMTkuOGMuNy0xLjEtMjAuOS0yMC43LTIwLjktMjAuN3ptLTQ0LjktOC43Yy43IDE3LjEtMTIuOCAzMS42LTMwLjEgMzIuNHMtMzIuMS0xMi41LTMyLjgtMjkuNiAxMi44LTMxLjYgMzAuMS0zMi4zYzE3LjMtLjggMzIuMSAxMi41IDMyLjggMjkuNXptMjAxLjItMzcuOWwtOTctOTctLjEgLjFjLTc1LjEtNzMuMy0xOTUuNC03Mi44LTI2OS44IDEuNi01MC45IDUxLTI3LjggMjcuOS05NS43IDk1LjMtMjIuMyAyMi4zLTIyLjMgNTguNyAwIDgxIDY5LjkgNjkuNCA0Ni40IDQ2IDk3LjQgOTdsLjEtLjFjNzUuMSA3My4zIDE5NS40IDcyLjkgMjY5LjgtMS42IDUxLTUwLjkgMjcuOS0yNy45IDk1LjMtOTUuMyAyMi4zLTIyLjMgMjIuMy01OC43IDAtODF6TTM2My41IDE0OC4yYTE1Mi4zIDE1Mi4zIDAgMSAxIC0yMTUgMjE1LjYgMTUyLjMgMTUyLjMgMCAxIDEgMjE1LTIxNS42eiJdfSxfMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYm90cyIsaWNvbjpbNjQwLDUxMixbXSwiZTM0MCIsIk04Ni4zIDE5Ny44Yy04LS4xLTE1LjkgMS43LTIzLjEgNS4xcy0xMy41IDguNi0xOC40IDE0LjlsMC02MS45YzAtMi4yLS45LTQuMy0yLjQtNS44cy0zLjYtMi40LTUuOC0yLjRsLTI4LjQgMGMtMi4yIDAtNC4zIC45LTUuOCAyLjRTMCAxNTMuOCAwIDE1NkwwIDMzMy42YzAgMS4xIC4yIDIuMSAuNiAzLjFzMSAxLjkgMS44IDIuNyAxLjcgMS40IDIuNyAxLjggMi4xIC42IDMuMSAuNmwyOC40IDBjMS4xIDAgMi4xLS4yIDMuMS0uNnMxLjktMSAyLjctMS44IDEuNC0xLjcgMS44LTIuNyAuNi0yLjEgLjYtMy4xbDAtOC4xYzExLjYgMTMuNCAyNS45IDE5LjggNDEuNiAxOS44IDM0LjYgMCA2MS45LTI2LjIgNjEuOS03My44IDAtNDUuOS0yNy03My42LTYxLjktNzMuNnpNNzEuNSAzMDUuN2MtOS42IDAtMjEuMi00LjktMjYuNy0xMi41bDAtNDNjNS41LTcuNiAxNy4yLTEyLjggMjYuNy0xMi44IDE3LjcgMCAzMS4xIDEzLjEgMzEuMSAzNCAwIDIxLjItMTMuNCAzNC4zLTMxLjEgMzQuM3ptMTU2LjQtNTlhMTcuNCAxNy40IDAgMSAwIDAgMzQuOCAxNy40IDE3LjQgMCAxIDAgMC0zNC44em00Ni4xLTkwbDAtNDQuN2MyLjgtMS4yIDUuMi0zLjMgNi42LTZzMS45LTUuOCAxLjMtOC45LTIuMi01LjctNC42LTcuNy01LjQtMy04LjQtMy02LjEgMS4xLTguNCAzLTQgNC43LTQuNiA3LjctLjEgNi4xIDEuMyA4LjkgMy44IDQuOCA2LjYgNmwwIDQ0LjdjLTI4IDEuMy01NC40IDEzLjYtNzMuNiAzNC4xcy0yOS41IDQ3LjctMjguOCA3NS44IDEyLjMgNTQuNyAzMi40IDc0LjMgNDcgMzAuNiA3NS4xIDMwLjYgNTUtMTEgNzUuMS0zMC42IDMxLjctNDYuMyAzMi40LTc0LjMtOS43LTU1LjMtMjguOC03NS44LTQ1LjUtMzIuOC03My42LTM0LjF6bTg2IDEwNy40YzAgMzAuNS00MC44IDU1LjMtOTEuMSA1NS4zcy05MS4xLTI0LjctOTEuMS01NS4zIDQwLjgtNTUuMyA5MS4xLTU1LjMgOTEuMSAyNC43IDkxLjEgNTUuM2wwIDB6bS01MC4yIDE3LjRjMy40IDAgNi44LTEgOS43LTIuOXM1LjEtNC42IDYuNC03LjggMS43LTYuNyAxLTEwLjEtMi4zLTYuNS00LjgtOC45LTUuNS00LjEtOC45LTQuOC02LjktLjMtMTAuMSAxLTUuOSAzLjUtNy44IDYuNC0yLjkgNi4yLTIuOSA5LjdjMCA0LjYgMS44IDkgNS4xIDEyLjNzNy43IDUuMSAxMi4zIDUuMWwwIDB6bTI3MC45LTMxYy0xNC44LTIuNi0yMi40LTMuOC0yMi40LTkuOSAwLTUuNSA3LjMtOS45IDE3LjctOS45IDEyLjIgLjEgMjQuMiAzLjYgMzQuNSAxMC4xIDEuOCAxLjIgNCAxLjYgNi4yIDEuMXM0LTEuNyA1LjEtMy42Yy4xLS4xIC4xLS4yIC4yLS4zbDguNi0xNC45YzEuMS0xLjkgMS40LTQuMSAuOC02LjFzLTEuOS0zLjktMy43LTVjLTE1LjctOS40LTMzLjctMTQuMy01Mi0xNC4xLTM5IDAtNjAuMiAyMS41LTYwLjIgNDYuMiAwIDM2LjMgMzMuNyA0MS45IDU3LjYgNDUuNiAxMy40IDIuMyAyNC4xIDQuNCAyNC4xIDExIDAgNi40LTUuNSAxMC44LTE4LjkgMTAuOC0xMy42IDAtMzEtNi4yLTQyLjYtMTMuNi0uOS0uNi0xLjktMS0zLTEuMnMtMi4xLS4yLTMuMiAuMS0yLjEgLjctMi45IDEuMy0xLjYgMS40LTIuMiAyLjNjMCAuMS0uMSAuMS0uMSAuMmwtMTAuMiAxNi45Yy0xLjEgMS44LTEuNCA0LTEgNnMxLjcgMy45IDMuNSA1YzE1LjIgMTAuMyAzNy43IDE2LjcgNTkuNCAxNi43IDQwLjQgMCA2NC0xOS44IDY0LTQ2LjUgMC0zOC4xLTM1LjUtNDMuOS01OS4zLTQ4LjN6bS05NS45IDYwLjhjLS41LTItMS44LTMuNy0zLjYtNC44cy0zLjktMS41LTUuOS0xLjFjLTEuNCAuMy0yLjggLjQtNC4yIC40LTcuOCAwLTEyLjUtNi4xLTEyLjUtMTQuMmwwLTUxLjIgMjAuMyAwYzIuMiAwIDQuMi0uOSA1LjgtMi40czIuNC0zLjYgMi40LTUuOGwwLTIyLjdjMC0yLjItLjktNC4yLTIuNC01LjhzLTMuNi0yLjQtNS44LTIuNGwtMjAuMyAwIDAtMzAuMmMwLTIuMi0uOS00LjItMi40LTUuOHMtMy42LTIuNC01LjgtMi40bC0yOC4yIDBjLTIuMiAwLTQuMiAuOS01LjggMi40cy0yLjQgMy42LTIuNCA1LjhsMCAzMC4yLTE1LjEgMGMtMS4xIDAtMi4xIC4yLTMuMSAuNnMtMS45IDEtMi42IDEuOC0xLjQgMS43LTEuOCAyLjYtLjYgMi0uNiAzLjFsMCAyMi43YzAgMS4xIC4yIDIuMSAuNiAzLjFzMSAxLjkgMS44IDIuNiAxLjcgMS40IDIuNiAxLjggMiAuNiAzLjEgLjZsMTUuMSAwIDAgNjMuN2MwIDI3IDE1LjQgNDEuMyA0My45IDQxLjMgMTIuMiAwIDIxLjQtMi4yIDI3LjYtNS40IDEuNi0uOCAyLjktMi4yIDMuNy0zLjlzLjktMy42IC41LTUuNGwtNS0xOS4zeiJdfSxBMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmluZSIsaWNvbjpbMzg0LDUxMixbXSwiZjFjYSIsIk0zODQgMjU0LjdsMCA1Mi4xYy0xOC40IDQuMi0zNi45IDYuMS01Mi4xIDYuMS0zNi45IDc3LjQtMTAzIDE0My44LTEyNS4xIDE1Ni4yLTE0IDcuOS0yNy4xIDguNC00Mi43LS44LTI3LjEtMTYuMy0xMjkuOS0xMDAuNi0xNjQuMS0zNjUuNmw3NC41IDBjMTguNyAxNTkuMSA2NC41IDI0MC43IDExNC44IDMwMS44IDI3LjktMjcuOSA1NC44LTY1LjEgNzUuNi0xMDYuOS00OS44LTI1LjMtODAuMS04MC45LTgwLjEtMTQ1LjYgMC02NS42IDM3LjctMTE1LjEgMTAyLjItMTE1LjEgMTE0LjkgMCAxMDYuMiAxMjcuOSA4MS42IDE4MS41IDAgMC00Ni40IDkuMi02My41LTIwLjUgMy40LTExLjMgOC4yLTMwLjggOC4yLTQ4LjUgMC0zMS4zLTExLjMtNDYuNi0yOC40LTQ2LjYtMTguMiAwLTMwLjggMTcuMS0zMC44IDUwIC4xIDc5LjIgNTkuNCAxMTguNyAxMjkuOSAxMDEuOXoiXX0sJDB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZHJ0IixpY29uOls1NzYsNTEyLFtdLCJmM2M4IiwiTTEyOS43IDI1NmMwIDEyMS44IDgzLjkgMjIyLjggMTkzLjUgMjQxLjEtMTguNyA0LjUtMzguMiA2LjktNTguMiA2LjktMTM3LjYgMC0yNDktMTExLTI0OS0yNDhTMTI3LjQgOCAyNjQuOSA4YzIwLjEgMCAzOS42IDIuNCA1OC4yIDYuOS0xMDkuNiAxOC4zLTE5My40IDExOS4zLTE5My40IDI0MS4xek00MjcuMSAzNTYuM2MtNzcuNyA1NS40LTE3OS42IDQ3LjUtMjQwLjQtMTQuNiA1LjUgMTQuMSAxMi43IDI3LjcgMjEuNyA0MC41IDYxLjYgODguMiAxODIuNCAxMDkuMyAyNjkuNyA0N3MxMDguMS0xODQuMyA0Ni41LTI3Mi42Yy05LTEyLjktMTkuMy0yNC4zLTMwLjUtMzQuMiAzNy40IDc4LjggMTAuNyAxNzguNS02NyAyMzMuOXptLTIxOC44LTI0NGMtMS40IDEtMi43IDIuMS00IDMuMSA2NC4zLTE3LjggMTM1LjkgNCAxNzguOSA2MC41IDM1LjcgNDcgNDIuOSAxMDYuNiAyNC40IDE1OCA1Ni43LTU2LjIgNjcuNi0xNDIuMSAyMi4zLTIwMS44LTUwLTY1LjUtMTQ5LjEtNzQuNC0yMjEuNi0xOS44ek0zMTIgMjI0Yy00LjQgMC04LTMuNi04LThsMC00MGMwLTQuNC0zLjYtOC04LThsLTQ4IDBjLTQuNCAwLTggMy42LTggOGwwIDQwYzAgNC40LTMuNiA4LTggOGwtNDAgMGMtNC40IDAtOCAzLjYtOCA4bDAgNDhjMCA0LjQgMy42IDggOCA4bDQwIDBjNC40IDAgOCAzLjYgOCA4bDAgNDBjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC0zLjYgOC04bDAtNDBjMC00LjQgMy42LTggOC04bDQwIDBjNC40IDAgOC0zLjYgOC04bDAtNDhjMC00LjQtMy42LTgtOC04bC00MCAweiJdfSxEMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3NpIixpY29uOls1MTIsNTEyLFtdLCJmNDFhIiwiTTggMjY2LjRjMi4zLTEzNS44IDk3LjQtMjMyLjQgMjEzLjgtMjQ4LjEgMTM4LjgtMTguNiAyNTUuNiA3NS44IDI3OCAyMDEuMSAyMS4zIDExOC44LTQ0IDIzMC0xNTEuNiAyNzQtOS4zIDMuOC0xNC40IDEuNy0xOC03LjctMTcuOC00Ni4zLTM1LjYtOTIuNi01My40LTEzOS0zLjEtOC4xLTEtMTMuMiA3LTE2LjggMjQuMi0xMSAzOS4zLTI5LjQgNDMuMy01NS44IDEuNS05LjcgMS0xOS42LTEuNS0yOS4xcy02LjktMTguNC0xMi45LTI2LjEtMTMuNi0xNC4xLTIyLjItMTguOC0xOC4xLTcuNS0yNy45LTguM2MtMzktMy40LTcxLjggMjMuNy03Ny41IDU5LjctNS4yIDMzIDExLjEgNjMuNyA0MS45IDc3LjcgOS42IDQuNCAxMS41IDguNiA3LjggMTguNC0xNy45IDQ2LjYtMzUuOCA5My4yLTUzLjcgMTM5LjktMi42IDYuOS04LjMgOS4zLTE1LjUgNi41LTUyLjYtMjAuMy0xMDEuNC02MS0xMzAuOC0xMTktMjQuOS00OS4yLTI1LjItODcuNy0yNi44LTEwOC43em0yMC45LTEuOWMuNCA2LjYgLjYgMTQuMyAxLjMgMjIuMSA2LjMgNzEuOSA0OS42IDE0My41IDEzMSAxODMuMSAzLjIgMS41IDQuNCAuOCA1LjYtMi4zIDE0LjktMzkuMSAyOS45LTc4LjIgNDUtMTE3LjMgMS4zLTMuMyAuNi00LjgtMi40LTYuNy0zMS42LTE5LjktNDcuMy00OC41LTQ1LjYtODYgMS0yMS42IDkuMy00MC41IDIzLjgtNTYuMyAzMC0zMi43IDc3LTM5LjggMTE1LjUtMTcuNiAxNS42IDkgMjguMiAyMi4zIDM2LjIgMzguNHMxMS4yIDM0LjIgOSA1MmMtMy42IDMwLjYtMTkuMyA1My45LTQ1LjcgNjkuOC0yLjcgMS42LTMuNSAyLjktMi4zIDYgMTUuMiAzOS4yIDMwLjMgNzguNCA0NS4yIDExNy43IDEuMiAzLjEgMi40IDMuOCA1LjYgMi4zIDM1LjUtMTYuNiA2NS4yLTQwLjMgODguMS03MiAzNC44LTQ4LjIgNDkuMS0xMDEuOSA0Mi4zLTE2MS0xMy43LTExNy41LTExOS40LTIxNC44LTI1NS41LTE5OC0xMDYuMSAxMy0xOTUuMyAxMDIuNS0xOTcuMSAyMjUuOHoiXX0sRTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdnIixpY29uOls1MTIsNTEyLFtdLCJmMjYwIiwiTTE3OS4yIDIzMC40bDEwMi40IDEwMi40LTEwMi40IDEwMi40LTE3OS4yLTE3OS4yIDE3OS4yLTE3OS4yIDQ0LjggNDQuOC0yNS42IDI1LjYtMTkuMi0xOS4yLTEyOCAxMjggMTI4IDEyOCA1MS41LTUxLjUtNzcuMS03Ni41IDI1LjYtMjUuNnpNMzMyLjggNzYuOGwtMTAyLjQgMTAyLjQgMTAyLjQgMTAyLjQgMjUuNi0yNS42LTc3LjEtNzYuNSA1MS41LTUxLjUgMTI4IDEyOC0xMjggMTI4LTE5LjItMTkuMi0yNS42IDI1LjYgNDQuOCA0NC44IDE3OS4yLTE3OS4yLTE3OS4yLTE3OS4yeiJdfSxOMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnV5c2VsbGFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjIwZCIsIk0yMjQgMTUwLjdsNDIuOSAxNjAuNy04NS44IDAgNDIuOS0xNjAuN3pNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzgyLjcgNDA1LjNsLTk0LjUtMjk4LjctMTI4LjQgMC05NC41IDI5OC43IDkwLjcgMCAxMTEuNy05MS42IDI0LjIgOTEuNiA5MC44IDB6Il19LFAwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjJiMyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTE4NS4zIDM4MGMtMzIuOSAwLTY0LjQtMTMuMS04Ny43LTM2LjNzLTM2LjMtNTQuOC0zNi4zLTg3LjcgMTMuMS02NC40IDM2LjMtODcuNyA1NC44LTM2LjMgODcuNy0zNi4zYzMxLjMgMCA2MC4xIDExIDgzIDMyLjNsLTMzLjYgMzIuNmMtMTMuMi0xMi45LTMxLjMtMTkuMS00OS40LTE5LjEtNDIuOSAwLTc3LjIgMzUuNS03Ny4yIDc4LjFTMTQyLjMgMzM0IDE4NS4zIDMzNGMzMi42IDAgNjQuOS0xOS4xIDcwLjEtNTMuM2wtNzAuMSAwIDAtNDIuNiAxMTYuOSAwYzEuMyA2LjggMS45IDEzLjggMS45IDIwLjcgMCA3MC44LTQ3LjUgMTIxLjItMTE4LjggMTIxLjJ6TTQxNS41IDI3My44bDAgMzUuNS0zNS41IDAgMC0zNS41LTM1LjUgMCAwLTM1LjUgMzUuNSAwIDAtMzUuNSAzNS41IDAgMCAzNS41IDM1LjIgMCAwIDM1LjUtMzUuMiAweiJdfSxJMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NyZWVucGFsIixpY29uOls1MTIsNTEyLFtdLCJlNTcwIiwiTTI3OC42IDIyLjVhMjIuNSAyMi41IDAgMSAxIC00NSAwIDIyLjUgMjIuNSAwIDEgMSA0NSAwek0xOTguNyAyNTlhNTcuNCA1Ny40IDAgMSAxIDExNC44IDAgNTcuNCA1Ny40IDAgMSAxIC0xMTQuOCAwem0xMzguNiA5MWMyMi4zLTE5LjkgMzYuNS00Ny4zIDM5LjktNzdsMTE5LjUgMGMtMy41IDYxLjQtMzAuNCAxMTkuMi03NS4yIDE2MS40LTQ0LjcgNDIuMi0xMDMuOSA2NS44LTE2NS40IDY1LjhTMTM1LjQgNDc2LjYgOTAuNyA0MzQuNEM0NS45IDM5Mi4yIDE5LjEgMzM0LjQgMTUuNSAyNzNsMTE5LjcgMGMzLjQgMjkuNyAxNy42IDU3LjEgMzkuOSA3N3M1MS4yIDMwLjkgODEuMSAzMC45YzI5IDAgNTguNy0xMSA4MS4xLTMwLjl6TTI4LjMgMTQxLjdhMjIuNSAyMi41IDAgMSAxIDQ1LTEuNCAyMi41IDIyLjUgMCAxIDEgLTQ1IDEuNHptNDU1LjYtLjdhMjIuNCAyMi40IDAgMSAxIC00NC45IDAgMjIuNCAyMi40IDAgMSAxIDQ0LjkgMHpNMzE4IDk1LjNjLTE3LjMgMTMuOC0zOS4yIDIyLjgtNjEuOSAyMi44cy00NC42LTktNjEuOS0yMi44Yy0xNy4zLTE0LjctMjguOC0zNS4xLTMyLjQtNTcuNSAxNS4xLTYuNCAzMC44LTExLjMgNDYuOS0xNC41IDAgMTIuNiA1IDI0LjYgMTMuOSAzMy41czIwLjkgMTMuOSAzMy41IDEzLjkgMjQuNi01IDMzLjUtMTMuOSAxMy45LTIwLjkgMTMuOS0zMy41YzE2LjEgMy4yIDMxLjggOC4xIDQ2LjkgMTQuNS0zLjYgMjIuNC0xNS4xIDQyLjgtMzIuNCA1Ny41ek04Mi45IDIzMWMtMjEuNCA3LjYtNDQuNyA3LjQtNjUuOS0uNiAyLTE2LjMgNS42LTMyLjMgMTAuOC00Ny45IDUuNCAzLjEgMTEuMyA1LjEgMTcuNSA2IDYuMiAuOCAxMi40IC40IDE4LjUtMS4yIDYtMS43IDExLjYtNC40IDE2LjYtOC4yczkuMS04LjUgMTIuMi0xMy45IDUuMS0xMS40IDYtMTcuNWMuOC02LjIgLjQtMTIuNS0xLjItMTguNXMtNC40LTExLjYtOC4yLTE2LjZjLTMuOC00LjktOC41LTkuMS0xMy45LTEyLjIgMTAuOC0xMi4zIDIyLjktMjMuNSAzNi0zMy4zIDE3LjYgMTQuMyAyOS41IDM0LjUgMzMuNiA1Ni44cy4xIDQ1LjQtMTEuMiA2NWMtMTEuNCAxOS42LTI5LjQgMzQuNS01MC43IDQyLjF6bTM0Ni40IC4xYy0yMS4zLTcuNi0zOS4zLTIyLjYtNTAuNy00Mi4yLTExLjMtMTkuNi0xNS4yLTQyLjctMTEuMS02NSA0LjEtMjIuMiAxNi00Mi40IDMzLjUtNTYuNyAxMy4xIDkuOCAyNS4yIDIxIDM2IDMzLjMtMTAuNyA2LjQtMTguNCAxNi43LTIxLjUgMjguOC0zLjIgMTItMi4zIDI0LjggNC44IDM1LjYgNi4yIDEwLjggMTYuNCAxOC43IDI4LjQgMjJzMjQuOSAxLjcgMzUuNy00LjNjNS4zIDE1LjUgOC45IDMxLjYgMTAuOSA0Ny44LTIyLjEgOC4xLTQ0LjYgOC4zLTY2IC43eiJdfSxGMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0Y29pbiIsaWNvbjpbNTEyLDUxMixbXSwiZjM3OSIsIk04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zNTQuMy0zNS4zYzQuOS0zMy0yMC4yLTUwLjctNTQuNi02Mi42bDExLjEtNDQuNy0yNy4yLTYuOC0xMC45IDQzLjVjLTcuMi0xLjgtMTQuNS0zLjUtMjEuOC01LjFsMTAuOS00My44LTI3LjItNi44LTExLjIgNDQuN2MtNS45LTEuMy0xMS43LTIuNy0xNy40LTQuMWwwLS4xLTM3LjUtOS40LTcuMiAyOS4xczIwLjIgNC42IDE5LjggNC45YzExIDIuOCAxMyAxMCAxMi43IDE1LjhsLTEyLjcgNTAuOWMuOCAuMiAxLjcgLjUgMi44IC45LS45LS4yLTEuOS0uNS0yLjktLjdsLTE3LjggNzEuM2MtMS4zIDMuMy00LjggOC40LTEyLjUgNi41IC4zIC40LTE5LjgtNC45LTE5LjgtNC45bC0xMy41IDMxLjEgMzUuNCA4LjhjNi42IDEuNyAxMyAzLjQgMTkuNCA1bC0xMS4zIDQ1LjIgMjcuMiA2LjggMTEuMi00NC43YzcuMiAyIDE0LjQgMy44IDIxLjcgNS42bC0xMS4xIDQ0LjUgMjcuMiA2LjggMTEuMy00NS4xYzQ2LjQgOC44IDgxLjMgNS4yIDk2LTM2LjcgMTEuOC0zMy44LS42LTUzLjMtMjUtNjYgMTcuOC00LjEgMzEuMi0xNS44IDM0LjctMzkuOXptLTYyLjIgODcuMmMtOC40IDMzLjgtNjUuMyAxNS41LTgzLjggMTAuOWwxNC45LTU5LjljMTguNCA0LjYgNzcuNiAxMy43IDY4LjggNDl6bTguNC04Ny43Yy03LjcgMzAuNy01NSAxNS4xLTcwLjQgMTEuM2wxMy41LTU0LjNjMTUuNCAzLjggNjQuOCAxMSA1Ni44IDQzeiJdfSxPMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3dpZnQiLGljb246WzQ0OCw1MTIsW10sImY4ZTEiLCJNNDQ4IDE1Ni4xYzAtNC41LS4xLTktLjItMTMuNS0uMS05LjktMS0xOS43LTIuNi0yOS40LTEuNy05LjctNC44LTE5LjItOS4yLTI4LTktMTcuNy0yMy40LTMyLjEtNDEuMi00MS4xLTguOC00LjUtMTguMy03LjYtMjgtOS4yLTkuNy0xLjYtMTkuNi0yLjUtMjkuNC0yLjYtNC41LS4xLTktLjItMTMuNS0uMkwxMjQuMSAzMmMtNC41IDAtOSAuMS0xMy41IC4yLTIuNCAuMS00LjkgLjItNy40IC4zLTcuNCAuMy0xNC44IDEuMS0yMi4xIDIuMy03LjMgMS4zLTE0LjQgMy4zLTIxLjIgNi4xLTIuMyAxLTQuNiAyLTYuOCAzLjEtNi42IDMuNC0xMi44IDcuNS0xOC40IDEyLjMtMS45IDEuNi0zLjcgMy4zLTUuNCA1LTcgNy0xMi45IDE1LTE3LjQgMjMuOC00LjQgOC44LTcuNiAxOC4zLTkuMiAyOC0xLjYgOS43LTIuNCAxOS42LTIuNSAyOS40LS4xIDQuNS0uMiA5LS4yIDEzLjVMMCAzNTUuOWMwIDQuNSAuMSA5IC4yIDEzLjUgLjEgOS45IDEgMTkuNyAyLjYgMjkuNCAxLjcgOS43IDQuOCAxOS4yIDkuMiAyOCA5IDE3LjcgMjMuNCAzMi4xIDQxLjEgNDEuMSA4LjggNC40IDE4LjMgNy41IDI4IDkuMiA5LjcgMS42IDE5LjYgMi41IDI5LjQgMi42IDQuNSAuMSA5IC4yIDEzLjUgLjJsMTk5LjggMGM0LjUgMCA5LS4xIDEzLjUtLjIgOS45LS4xIDE5LjctMSAyOS40LTIuNiA5LjctMS43IDE5LjItNC44IDI4LTkuMiAxNy43LTkgMzIuMS0yMy40IDQxLjEtNDEuMiA0LjQtOC44IDcuNi0xOC4zIDkuMi0yOCAxLjYtOS43IDIuNS0xOS42IDIuNi0yOS40IC4xLTQuNSAuMi05IC4yLTEzLjVsMC0xODMuOGMwLTUuNCAwLTEwLjcgMC0xNnptLTY5LjkgMjQxYy0yMC0zOC45LTU3LjItMjkuMy03Ni4zLTE5LjUtMS43IDEtMy41IDItNS4yIDNsLS40IC4yYy0zOS41IDIxLTkyLjUgMjIuNS0xNDUuOC0uNC00My40LTE4LjgtODAuMS01MC4zLTEwNS4zLTkwLjQgMTIuMyA5LjEgMjUuNCAxNi45IDM5LjIgMjMuNCA1Ni40IDI2LjQgMTEzIDI0LjUgMTUzIDAtNTctNDMuOC0xMDQuNi0xMDEtMTQxLjEtMTQ3LjItNy04LjEtMTMuMi0xNi44LTE4LjgtMjUuOSA0My43IDQwIDExMi43IDkwLjIgMTM3LjUgMTA0LjEtNTIuNi01NS41LTk4LjktMTIzLjktOTYuNy0xMjEuNyA4Mi44IDgzLjQgMTU5LjIgMTMwLjYgMTU5LjIgMTMwLjYgMi45IDEuNiA1IDIuOCA2LjcgNCAxLjYtNC4xIDMtOC4yIDQuMi0xMi41IDEzLjItNDguMy0xLjctMTAzLjYtMzUuMy0xNDkuMiA3Ni44IDQ2LjEgMTIyLjIgMTMzLjcgMTAzLjYgMjA3LjgtLjQgMS43LTEgMy40LTEuNCA1LjEgMzguNSA0Ny40IDI4IDk4LjIgMjMuMSA4OC42bDAgMHoiXX0sQjB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpbGVzLXBpbndoZWVsIixpY29uOls1MTIsNTEyLFtdLCJlNjlmIiwiTTI1My41IDI0Ni40TDEzNy4yIDEzMC4yYy0uNi0uNi0xLTEuMy0xLjQtMnMtLjUtMS42LS41LTIuNCAuMi0xLjYgLjUtMi40IC44LTEuNCAxLjQtMkwyNTMuNiA1LjFjLjktLjkgMi0xLjUgMy4yLTEuN3MyLjUtLjEgMy42IC4zIDIuMSAxLjMgMi44IDIuMyAxLjEgMi4yIDEuMSAzLjVsMCAyMzIuNWMwIDEuMy0uMyAyLjUtMSAzLjZzLTEuNyAxLjktMi45IDIuNC0yLjUgLjYtMy43IC4zLTIuNC0uOS0zLjItMS45em00MC4zLTQuNGwwLTEzNC40YzAtLjggLjEtMS42IC41LTIuNHMuOC0xLjUgMS4zLTIuMSAxLjMtMS4xIDItMS40IDEuNi0uNSAyLjQtLjVsMTM0LjQgMGMxLjIgMCAyLjUgLjQgMy41IDEuMXMxLjggMS43IDIuMyAyLjggLjYgMi40IC4zIDMuNi0uOSAyLjMtMS43IDMuMkwzMDQuMyAyNDYuNGMtLjkgLjgtMiAxLjQtMy4yIDEuNnMtMi40IC4xLTMuNS0uNC0yLjEtMS4zLTIuOC0yLjMtMS4xLTIuMi0xLjEtMy40bC4xIC4xem0zMC42IDM1Yy0xLjIgMC0yLjUtLjMtMy41LTFzLTEuOS0xLjYtMi40LTIuOC0uNi0yLjQtLjQtMy42IC44LTIuMyAxLjctMy4yTDQwNCAxODIuMmMuNi0uNiAxLjMtMSAyLTEuNHMxLjYtLjUgMi40LS41IDEuNiAuMiAyLjQgLjUgMS40IC44IDIgMS40bDg0LjQgODQuMmMuOSAuOSAxLjUgMiAxLjcgMy4ycy4xIDIuNS0uMyAzLjYtMS4zIDIuMS0yLjMgMi44LTIuMiAxLjEtMy41IDEuMWwtMTY4LjUgMCAuMS0uMXptOTAuNyAxMzFsLTk1LjMtOTUuMmMtLjktLjktMS41LTItMS43LTMuMnMtLjEtMi41IC40LTMuNyAxLjMtMi4xIDIuNC0yLjggMi4zLTEgMy41LTFsOTUuMiAwYzEuNyAwIDMuMiAuNyA0LjQgMS44czEuOCAyLjggMS44IDQuNGwwIDk1LjNjMCAxLjItLjQgMi41LTEuMSAzLjVzLTEuNyAxLjgtMi44IDIuMy0yLjQgLjYtMy42IC4zLTIuMy0uOS0zLjItMS43ek0xNi44IDMwMi4xbDIxNi45IDBjMS4yIDAgMi41IC40IDMuNSAxLjFzMS44IDEuNyAyLjMgMi44IC42IDIuNCAuMyAzLjYtLjggMi4zLTEuNyAzLjJMMTI5LjcgNDIxLjJjLS42IC42LTEuMyAxLTIgMS40cy0xLjYgLjUtMi40IC41LTEuNi0uMi0yLjQtLjUtMS40LS44LTItMS40TDEyLjMgMzEyLjhjLS45LS45LTEuNS0yLTEuNy0zLjJzLS4xLTIuNSAuNC0zLjYgMS4zLTIuMSAyLjMtMi44IDIuMy0xIDMuNS0xbDAtLjF6TTI2NC4zIDQ2NS4zYzAgLjgtLjIgMS42LS41IDIuNHMtLjggMS41LTEuNCAyLTEuMyAxLTIgMS40LTEuNiAuNS0yLjQgLjVsLTEyOCAwYy0xLjIgMC0yLjUtLjQtMy41LTEuMXMtMS44LTEuNy0yLjMtMi44LS42LTIuNC0uMy0zLjYgLjgtMi4zIDEuNy0zLjJsMTI4LTEyOGMuOS0uOSAyLTEuNSAzLjItMS43czIuNS0uMSAzLjYgLjMgMi4xIDEuMyAyLjggMi4zIDEuMSAyLjIgMS4xIDMuNWwwIDEyOHptNDAtMTMyLjVsODIuOCA4Mi43Yy42IC42IDEgMS4zIDEuNCAycy41IDEuNiAuNSAyLjQtLjIgMS42LS41IDIuNC0uOCAxLjQtMS40IDJMMzA0LjMgNTA3Yy0uOSAuOS0yIDEuNS0zLjIgMS43cy0yLjUgLjEtMy42LS4zLTIuMS0xLjMtMi44LTIuMy0xLjEtMi4yLTEuMS0zLjVsMC0xNjUuNGMwLTEuMiAuNC0yLjUgMS4xLTMuNXMxLjctMS44IDIuOC0yLjMgMi40LS42IDMuNi0uMyAyLjMgLjggMy4yIDEuN3pNNzkgMTIyLjRjMC0xLjIgLjMtMi41IDEtMy41czEuNy0xLjggMi44LTIuMyAyLjQtLjYgMy42LS40IDIuMyAuOCAzLjIgMS43TDIzOC4xIDI2Ni40Yy45IC45IDEuNSAyIDEuNyAzLjJzLjEgMi41LS4zIDMuNi0xLjMgMi4xLTIuMyAyLjgtMi4yIDEuMS0zLjUgMS4xbC0xNDguNCAwYy0xLjcgMC0zLjItLjctNC40LTEuOHMtMS44LTIuOC0xLjgtNC40bDAtMTQ4LjQtLjEtLjF6Il19LFIwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsYXJhdmVsIixpY29uOls1MTIsNTEyLFtdLCJmM2JkIiwiTTUwNC42IDExNS44Yy0uMS0uMi0uMi0uNS0uMy0uNy0uMS0uNC0uMy0uOC0uNS0xLjItLjItLjItLjMtLjUtLjUtLjctLjItLjMtLjUtLjYtLjctLjktLjItLjItLjUtLjQtLjgtLjYtLjMtLjItLjYtLjUtLjktLjdMNDA0LjYgNTUuNWMtMS4yLS43LTIuNi0xLjEtNC0xLjFzLTIuOCAuNC00IDEuMUwzMDAuMyAxMTFjLS4zIC4yLS42IC40LS45IC43LS4zIC4yLS41IC40LS44IC42LS4zIC4zLS41IC42LS43IC45LS4yIC4yLS40IC40LS41IC43LS4yIC40LS40IC44LS41IDEuMi0uMSAuMi0uMiAuNC0uMyAuNy0uMiAuNy0uMyAxLjQtLjMgMi4xbDAgMTA1LjItODAuMiA0Ni4yIDAtMjA1LjljMC0uNy0uMS0xLjQtLjMtMi4xLS4xLS4yLS4yLS40LS4zLS43LS4xLS40LS4zLS44LS41LTEuMi0uMS0uMy0uNC0uNS0uNS0uNy0uMi0uMy0uNS0uNi0uNy0uOS0uMi0uMi0uNS0uNC0uOC0uNi0uMy0uMi0uNi0uNS0uOS0uN0wxMTUuOCAxLjFjLTEuMi0uNy0yLjYtMS4xLTQtMS4xcy0yLjggLjQtNCAxLjFMMTEuNSA1Ni41Yy0uMyAuMi0uNiAuNC0uOSAuNy0uMyAuMi0uNSAuNC0uOCAuNi0uMyAuMy0uNSAuNi0uNyAuOS0uMiAuMy0uNCAuNS0uNiAuNy0uMiAuNC0uNCAuOC0uNSAxLjItLjEgLjItLjIgLjQtLjMgLjctLjIgLjctLjMgMS40LS4zIDIuMWwwIDMyOS43YzAgMS40IC40IDIuOCAxLjEgNHMxLjcgMi4yIDIuOSAyLjlMMjA0IDUxMC45Yy40IC4yIC45IC40IDEuMyAuNSAuMiAuMSAuNCAuMiAuNiAuMyAxLjMgLjQgMi44IC40IDQuMSAwIC4yLS4xIC40LS4yIC42LS4yIC41LS4yIDEtLjMgMS40LS42TDQwNC42IDQwMC4xYzEuMi0uNyAyLjItMS43IDIuOS0yLjlzMS4xLTIuNiAxLjEtNGwwLTEwNS4zIDkyLjItNTMuMWMxLjItLjcgMi4yLTEuNyAyLjktM3MxLjEtMi42IDEuMS00bDAtMTA5LjhjMC0uNy0uMS0xLjQtLjItMi4xek0xMTEuOCAxNy4zbDgwLjIgNDYuMS04MC4yIDQ2LjItODAuMi00Ni4yIDgwLjItNDYuMnptODguMiA2MGwwIDIwMS4zYy0zMy4yIDE5LjEtNTkuOSAzNC41LTgwLjIgNDYuMmwwLTIwMS4zQzE1MyAxMDQuNCAxNzkuNyA4OSAyMDAgNzcuM3ptMCA0MTIuOEwyMy41IDM4OC41IDIzLjUgNzcuM2MyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDIxNS4yYzAgLjMgLjEgLjYgLjEgLjkgMCAuNCAuMSAuOCAuMiAxLjIgLjEgLjMgLjIgLjYgLjQgLjkgLjEgLjMgLjMgLjcgLjQgMSAuMiAuMyAuNCAuNSAuNiAuOCAuMiAuMyAuNCAuNiAuNyAuOCAuMiAuMiAuNSAuNCAuOCAuNiAuMyAuMiAuNiAuNSAuOSAuN2w5Mi4yIDUyLjIgLjEgOTIuNHptOC0xMDYuMkwxMjggMzM4LjZjNTQuNy0zMS41IDExMy41LTY1LjMgMTc2LjMtMTAxLjVsODAuMSA0Ni4xQzM1NSAzMDAgMjk2LjIgMzMzLjUgMjA4IDM4My45em0xODQuNSA0LjZsLTE3Ni41IDEwMS42IDAtOTIuM0MzMTcuNCAzNDAgMzc2LjIgMzA2LjQgMzkyLjUgMjk3bDAgOTEuNHptMC0xMTkuMWMtMjAuMy0xMS42LTQ3LjEtMjctODAuMi00Ni4xbDAtOTEuNGMyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDkxLjN6bTgtMTA1LjNsLTgwLjItNDYuMiA4MC4yLTQ2LjIgODAuMiA0Ni4xLTgwLjIgNDYuMnptOCAxMDUuM2wwLTkxLjNjMzMuMi0xOS4xIDYwLTM0LjUgODAuMy00Ni4ybDAgOTEuNC04MC4zIDQ2LjJ6Il19LEgwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGZvcm1zIixpY29uOls0NDgsNTEyLFtdLCJmMjk4IiwiTTQ0OCA3NS4ybDAgMzYxLjdjMCAyNC4zLTE5IDQzLjItNDMuMiA0My4ybC0zNjEuNiAwQzE5LjMgNDgwIDAgNDYxLjQgMCA0MzYuOEwwIDc1LjJDMCA1MS4xIDE4LjggMzIgNDMuMiAzMmwzNjEuNyAwYzI0IDAgNDMuMSAxOC44IDQzLjEgNDMuMnpNNDEwLjcgNDM2LjhsMC0zNjEuNmMwLTMtMi42LTUuOC01LjgtNS44bC05LjMgMC0xMTAuMyA3NC42LTYxLjMtNDkuOS02MS4yIDQ5LjktMTEwLjMtNzQuNy05LjMgMGMtMy4yIDAtNS44IDIuOC01LjggNS44bDAgMzYxLjdjMCAzIDIuNiA1LjggNS44IDUuOGwzNjEuNyAwYzMuMiAuMSA1LjgtMi43IDUuOC01Ljh6TTE1MC4yIDE4NmwwIDM3LTczLjUgMCAwLTM3IDczLjUgMHptMCA3NC40bDAgMzcuMy03My41IDAgMC0zNy4zIDczLjUgMHptMTEuMS0xNDcuM2w1NC00My43LTExOC41IDAgNjQuNSA0My43em0yMTAgNzIuOWwwIDM3LTE5NiAwIDAtMzcgMTk2IDB6bTAgNzQuNGwwIDM3LjMtMTk2IDAgMC0zNy4zIDE5NiAwek0yODYuNyAxMTMuMWw2NC41LTQzLjctMTE4LjQgMCA1My45IDQzLjd6TTM3MS4zIDMzNWwwIDM3LjMtOTkuNCAwIDAtMzcuMyA5OS40IDB6Il19LHEwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGVha2VyLWRlY2siLGljb246WzUxMiw1MTIsW10sImY4M2MiLCJNMjEzLjkgMjk2TDEwMCAyOTZjLTI2LjUgMC01Mi0xMC41LTcwLjctMjkuM1MwIDIyMi41IDAgMTk2IDEwLjUgMTQ0IDI5LjMgMTI1LjMgNzMuNSA5NiAxMDAgOTZsMTMyLjggMGMxMC42IDAgMjAuOCA0LjIgMjguMyAxMS43czExLjcgMTcuNyAxMS43IDI4LjMtNC4yIDIwLjgtMTEuNyAyOC4zLTE3LjcgMTEuNy0yOC4zIDExLjdMOTggMTc2Yy0yNi41IDAtMjYuNCA0MCAwIDQwbDExMy44IDBjMjYuNSAwIDUyIDEwLjUgNzAuNyAyOS4zczI5LjMgNDQuMiAyOS4zIDcwLjctMTAuNSA1Mi0yOS4zIDcwLjctNDQuMiAyOS4zLTcwLjcgMjkuM0w0MCA0MTZjLTEwLjYgMC0yMC44LTQuMi0yOC4zLTExLjdTMCAzODYuNiAwIDM3NiA0LjIgMzU1LjIgMTEuNyAzNDcuNyAyOS40IDMzNiA0MCAzMzZsMTczLjkgMGMyNi41IDAgMjYuNS00MCAwLTQwek0yOTggNDE2YzEzLjUtOS4yIDI1LTIxIDMzLjgtMzQuN3MxNC43LTI5LjIgMTcuMy00NS4zbDY0LjYgMGMyLjYgMCA1LjItLjYgNy42LTEuNnM0LjYtMi41IDYuNC00LjQgMy4zLTQuMSA0LjItNi41IDEuNS01IDEuNC03LjZsMC0xMjBjMC0yLjYtLjUtNS4yLTEuNC03LjZzLTIuNC00LjYtNC4yLTYuNS00LTMuMy02LjQtNC40LTUtMS42LTcuNi0xLjZsLTExNy4yIDBjOS43LTExLjEgMTUtMjUuMyAxNS00MHMtNS4zLTI4LjktMTUtNDBsMTM2LjkgMGM0My40IDAgNzguNiAzNS44IDc4LjYgODBsMCAxNjBjMCA0NC4yLTM1LjIgODAtNzguNiA4MEwyOTggNDE2eiJdfSxWMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmxpY2tyIixpY29uOls0NDgsNTEyLFtdLCJmMTZlIiwiTTQwMCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNDQuNSAxOTJhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3ptMTU5IDBhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3oiXX0sVTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLXZpc2EiLGljb246WzU3Niw1MTIsW10sImYxZjAiLCJNNDcwLjEgMjMxLjNzNy42IDM3LjIgOS4zIDQ1bC0zMy40IDBjMy4zLTguOSAxNi00My41IDE2LTQzLjUtLjIgLjMgMy4zLTkuMSA1LjMtMTQuOWwyLjggMTMuNHpNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTUyLjUgMzMxLjJsNjMuMi0xNTUuMi00Mi41IDAtMzkuMyAxMDYtNC4zLTIxLjUtMTQtNzEuNGMtMi4zLTkuOS05LjQtMTIuNy0xOC4yLTEzLjFsLTY0LjcgMC0uNyAzLjFjMTUuOCA0IDI5LjkgOS44IDQyLjIgMTcuMWwzNS44IDEzNSA0Mi41IDB6bTk0LjQgLjJsMjUuMi0xNTUuNC00MC4yIDAtMjUuMSAxNTUuNCA0MC4xIDB6bTEzOS45LTUwLjhjLjItMTcuNy0xMC42LTMxLjItMzMuNy00Mi4zLTE0LjEtNy4xLTIyLjctMTEuOS0yMi43LTE5LjIgLjItNi42IDcuMy0xMy40IDIzLjEtMTMuNCAxMy4xLS4zIDIyLjcgMi44IDI5LjkgNS45bDMuNiAxLjcgNS41LTMzLjZjLTcuOS0zLjEtMjAuNS02LjYtMzYtNi42LTM5LjcgMC02Ny42IDIxLjItNjcuOCA1MS40LS4zIDIyLjMgMjAgMzQuNyAzNS4yIDQyLjIgMTUuNSA3LjYgMjAuOCAxMi42IDIwLjggMTkuMy0uMiAxMC40LTEyLjYgMTUuMi0yNC4xIDE1LjItMTYgMC0yNC42LTIuNS0zNy43LTguM2wtNS4zLTIuNS01LjYgMzQuOWM5LjQgNC4zIDI2LjggOC4xIDQ0LjggOC4zIDQyLjIgLjEgNjkuNy0yMC44IDcwLTUzek01MjggMzMxLjRsLTMyLjQtMTU1LjQtMzEuMSAwYy05LjYgMC0xNi45IDIuOC0yMSAxMi45bC01OS43IDE0Mi41IDQyLjIgMHM2LjktMTkuMiA4LjQtMjMuM2w1MS42IDBjMS4yIDUuNSA0LjggMjMuMyA0LjggMjMuM2wzNy4yIDB6Il19LGowdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1cHdvcmsiLGljb246WzY0MCw1MTIsW10sImU2NDEiLCJNNDkzLjkgMjk1LjZjLTUwLjMgMC04My41LTM4LjktOTIuOC01My45IDExLjktOTUuMyA0Ni44LTEyNS40IDkyLjgtMTI1LjQgNDUuNSAwIDgwLjkgMzYuNCA4MC45IDg5LjdzLTM1LjQgODkuNy04MC45IDg5LjdsMC0uMXptMC0yMzcuOGMtODEuOSAwLTEyNy44IDUzLjQtMTQxIDEwOC40LTE0LjktMjgtMjUuOS02NS41LTM0LjUtMTAwLjNsLTExMy4yIDAgMCAxNDFjMCA1MS4xLTIzLjMgODktNjguOCA4OXMtNzEuNi0zNy44LTcxLjYtODlsLjUtMTQxLTY1LjMgMCAwIDE0MWMwIDQxLjEgMTMuMyA3OC40IDM3LjYgMTA1LjEgMjUgMjcuNSA1OS4yIDQxLjggOTguOCA0MS44IDc4LjggMCAxMzMuOC02MC40IDEzMy44LTE0Ni45bDAtOTQuOGM4LjIgMzEuMiAyNy44IDkxLjEgNjUuMyAxNDMuNmwtMzUgMTk5LjQgNjYuNCAwIDIzLjEtMTQxLjNjNy42IDYuMyAxNS43IDEyIDI0LjIgMTcgMjIuMiAxNCA0Ny43IDIxLjkgNzMuOSAyMi44IDAgMCA0IC4yIDYuMSAuMiA4MS4yIDAgMTQ1LjktNjIuOSAxNDUuOS0xNDcuOFM1NzUuMyA1Ny45IDQ5NC4xIDU3LjlsLS4yLS4xeiJdfSxXMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FrYW8tdGFsayIsaWNvbjpbNTc2LDUxMixbXSwiZTdkNyIsIk0yODggMi41YzE1OS4xIDAgMjg4IDEwMS43IDI4OCAyMjcuMSAwIDEyNS40LTEyOC45IDIyNy4xLTI4OCAyMjcuMS0xNy41IDAtMzQuNi0xLjItNTEuMi0zLjYtMTYuNiAxMS43LTExMi42IDc5LjEtMTIxLjcgODAuNCAwIDAtMy43IDEuNC02LjktLjRzLTIuNi02LjctMi42LTYuN0MxMDYuNiA1MTkuOCAxMzAuNiA0MzcuMiAxMzUgNDIxLjkgNTMuOSAzODEuOCAwIDMxMC42IDAgMjI5LjUgMCAxMDQuMSAxMjguOSAyLjUgMjg4IDIuNXpNODYuMiAxNjEuN2MtOSAwLTE2LjMgNy4zLTE2LjMgMTYuM3M3LjMgMTYuMyAxNi4zIDE2LjNsMjUuOSAwIDAgOTguN2MwIDguOCA3LjUgMTUuOSAxNi42IDE1LjlzMTYuNi03LjEgMTYuNi0xNS45bDAtOTguNyAyNS45IDBjOSAwIDE2LjMtNy4zIDE2LjMtMTYuM3MtNy4zLTE2LjMtMTYuMy0xNi4zbC04NS4xIDB6bTE0MC44IDBjLTEwLjggLjItMTkuMyA4LjQtMjIuMSAxNi40TDE2NS4yIDI4Mi43Yy01IDE1LjctLjYgMjEuNSAzLjkgMjMuNiAzLjIgMS41IDYuOSAyLjMgMTAuNiAyLjMgNi45IDAgMTIuMi0yLjggMTMuOC03LjNsOC4yLTIxLjYgNTAuNyAwIDguMiAyMS41YzEuNiA0LjUgNi45IDcuMyAxMy44IDcuMyAzLjcgMCA3LjMtLjggMTAuNi0yLjMgNC42LTIuMSA5LTcuOSAzLjktMjMuNkwyNDkuMiAxNzguMWMtMi44LTgtMTEuMy0xNi4yLTIyLjItMTYuNHptMTgwLjkgMGMtOS4yIDAtMTYuNiA3LjUtMTYuNiAxNi42bDAgMTEzLjdjMCA5LjIgNy41IDE2LjYgMTYuNiAxNi42czE2LjYtNy41IDE2LjYtMTYuNmwwLTM2LjIgNS44LTUuOCAzOC45IDUxLjZjMy4yIDQuMiA4IDYuNiAxMy4zIDYuNiAzLjYgMCA3LjEtMS4xIDEwLTMuMyAzLjUtMi43IDUuOC02LjYgNi40LTExcy0uNS04LjgtMy4yLTEyLjNsLTQwLjktNTQuMiAzNy45LTM3LjhjMi42LTIuNiAzLjktNi4yIDMuNy0xMC4xLS4yLTMuOS0yLTcuNi00LjktMTAuNS0zLjEtMy4xLTcuMy00LjktMTEuNC00LjktMy42IDAtNi44IDEuMy05LjIgMy43bC00Ni4zIDQ2LjQgMC0zNS43YzAtOS4yLTcuNS0xNi42LTE2LjYtMTYuNnptLTkxLjMgMGMtOS4zIDAtMTYuOSA3LjUtMTYuOSAxNi42bDAgMTEyLjhjMCA4LjQgNy4xIDE1LjIgMTUuOSAxNS4zbDUzLjMgMGM4LjggMCAxNS45LTYuOSAxNS45LTE1LjNzLTcuMi0xNS4yLTE1LjktMTUuMmwtMzUuMyAwIDAtOTcuNmMwLTkuMi03LjYtMTYuNi0xNy0xNi42em0tNzMgODguNmwtMzMuMiAwIDE2LjYtNDcuMSAxNi42IDQ3LjF6Il19LEcwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbHV0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjk0IiwiTTQyOS41IDIzNi4zTDI5MS43IDM3NC4xIDQyOS41IDUxMiAyNzIgNTEyYy0zNi4xLTM2LjEtODIuMS04Mi4xLTEzNy45LTEzNy45bDEzNy45LTEzNy44IDE1Ny41IDB6TTI3MiAwTDE2IDI1NiA5NC44IDMzNC44IDQyOS41IDAgMjcyIDB6Il19LFkwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidWZmZXIiLGljb246WzQ0OCw1MTIsW10sImY4MzciLCJNNDI4LjIgMzgwLjdMMjMxLjcgNDc4LjVjLTIuMyAxLTQuOCAxLjUtNy4zIDEuNXMtNS0uNS03LjMtMS41TDIwLjUgMzgwLjdjLTQtMi00LTUuMyAwLTcuM0w2Ny42IDM1MGMyLjMtMSA0LjgtMS41IDcuMy0xLjVzNSAuNSA3LjMgMS41bDEzNC44IDY3YzIuMyAxIDQuOCAxLjUgNy4zIDEuNXM1LS41IDcuMy0xLjVsMTM0LjgtNjdjMi4zLTEgNC44LTEuNSA3LjMtMS41czUgLjUgNy4zIDEuNWw0Ny4xIDIzLjRjNCAyIDQgNS4yIDAgNy4yem0wLTEzNi41bC00Ny4xLTIzLjRjLTIuMy0xLTQuOC0xLjUtNy4zLTEuNXMtNSAuNS03LjMgMS41TDIzMS43IDI4Ny44Yy0yLjMgMS00LjggMS41LTcuMyAxLjVzLTUtLjUtNy4zLTEuNUw4Mi4zIDIyMC43Yy0yLjMtMS00LjgtMS41LTcuMy0xLjVzLTUgLjUtNy4zIDEuNUwyMC41IDI0NC4xYy00IDItNCA1LjMgMCA3LjNsMTk2LjUgOTcuOGMyLjMgMSA0LjggMS41IDcuMyAxLjVzNS0uNSA3LjMtMS41bDE5Ni41LTk3LjhjNC0yIDQtNS4zIDAtNy4zek0yMC41IDEzMC40TDIxNyAyMjAuN2M0LjcgMS45IDEwIDEuOSAxNC43IDBsMTk2LjUtOTAuM2M0LTEuOSA0LTQuOSAwLTYuN0wyMzEuNyAzMy40Yy00LjctMS45LTEwLTEuOS0xNC43IDBMMjAuNSAxMjMuN2MtNCAxLjgtNCA0LjkgMCA2Ljd6Il19LFowdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJncmF0aXBheSIsaWNvbjpbNTEyLDUxMixbXSwiZjE4NCIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTM3NC4zIDIzMy43TDI1Ny43IDM5MS4zIDE0MS4zIDIzMy43Yy05LTEyLjMtMTkuNy01MiAxNC03NC4zIDI5LTE4LjcgNTYuNC00LjMgNzAuNyAxMi4zIDE2LjQgMTguNSA0OC4xIDE3LjQgNjMuNyAwIDE0LjMtMTYuNiA0MS43LTMxIDcwLjMtMTIuMyAzNCAyMi4zIDIzLjMgNjEuOSAxNC4yIDc0LjN6Il19LFgwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGF5IixpY29uOls2NDAsNTEyLFtdLCJlMDc5IiwiTTEwNS43IDIxNWwwIDQxLjIgNTcuMSAwYy0xLjIgNi42LTMuNiAxMi45LTcuMiAxOC41cy04LjQgMTAuNC0xMy45IDE0LjFjLTkuNSA2LjYtMjEuNyAxMC4zLTM2IDEwLjMtMjcuNiAwLTUwLjktMTguOS01OS4zLTQ0LjItNC40LTEzLjMtNC40LTI3LjcgMC00MSA4LjQtMjUuNSAzMS43LTQ0LjQgNTkuMy00NC40IDcuNS0uMSAxNC45IDEuMiAyMS45IDRzMTMuMyA2LjkgMTguNiAxMi4xTDE3Ni41IDE1NWMtMTkuMS0xOC4xLTQ0LjQtMjguMS03MC43LTI3LjgtMTkuNyAuMS0zOC45IDUuNy01NS42IDE2LjFzLTMwLjEgMjUuMy0zOC44IDQzQzMuOSAyMDEuMiAwIDIxNy43IDAgMjM0LjRzMy45IDMzLjIgMTEuMyA0OC4xbDAgLjJjOC43IDE3LjcgMjIuMSAzMi41IDM4LjggNDNzMzUuOSAxNiA1NS42IDE2YzI4LjUgMCA1Mi41LTkuNSA3MC0yNS45IDIwLTE4LjYgMzEuNC00Ni4yIDMxLjQtNzguOSAwLTcuMy0uNi0xNC42LTEuOC0yMS44bC05OS43IDB6bTM4OS40LTRjLTEwLjEtOS40LTIzLjktMTQuMS00MS40LTE0LjEtMjIuNSAwLTM5LjMgOC4zLTUwLjUgMjQuOUw0MjQuMSAyMzVjNy42LTExLjMgMTguMS0xNyAzMS4zLTE3IDguNCAwIDE2LjUgMy4yIDIyLjcgOC44IDMgMi42IDUuNSA1LjkgNy4xIDkuNnMyLjUgNy42IDIuNSAxMS43bDAgNS41Yy05LjEtNS4xLTIwLjYtNy44LTM0LjYtNy44LTE2LjQgMC0yOS42IDMuOS0zOS41IDExLjhzLTE0LjggMTguMy0xNC44IDMxLjZjLS4yIDUuOSAxIDExLjggMy40IDE3LjJzNiAxMC4yIDEwLjUgMTQuMWM5LjIgOC4zIDIxIDEyLjUgMzQuOCAxMi41IDE2LjMgMCAyOS4yLTcuMyAzOS0yMS45bDEgMCAwIDE3LjcgMjIuNiAwIDAtNzguN2MuMS0xNi42LTQuOS0yOS43LTE1LTM5em0tMTkuMiA4OS4zYy0zLjUgMy41LTcuNiA2LjMtMTIuMiA4LjJzLTkuNSAyLjktMTQuNCAyLjljLTYuNyAuMS0xMy4xLTIuMS0xOC4zLTYuMi0yLjQtMS44LTQuNC00LjItNS43LTYuOXMtMi01LjctMi04LjdjMC03IDMuMi0xMi44IDkuNS0xNy40czE0LjUtNyAyNC4xLTdjMTMuMi0uMiAyMy41IDIuOCAzMC44IDguOCAwIDEwLjEtNCAxOC45LTExLjcgMjYuNHptLTkzLjctMTQyYy01LjMtNS4zLTExLjYtOS41LTE4LjYtMTIuM3MtMTQuNC00LjItMjEuOS00bC02Mi43IDAgMCAxODYuNyAyMy42IDAgMC03NS42IDM5IDBjMTYgMCAyOS41LTUuNCA0MC41LTE1LjkgLjktLjkgMS44LTEuOCAyLjYtMi43IDkuNi0xMC41IDE0LjgtMjQuNCAxNC4zLTM4LjZzLTYuNi0yNy43LTE2LjktMzcuNmwwIDB6bS0xNi42IDYyLjJjLTMgMy4yLTYuNiA1LjctMTAuNiA3LjRzLTguNCAyLjUtMTIuNyAyLjNsLTM5LjYgMCAwLTY1LjIgMzkuNiAwYzguNSAwIDE2LjYgMy4zIDIyLjYgOS4yIDYuMSA2LjEgOS42IDE0LjMgOS44IDIzcy0zLjEgMTctOSAyMy4zbDAgMHpNNjE0LjMgMjAxbC0zNi41IDkxLjctLjUgMC0zNy40LTkxLjctMjUuNyAwIDUxLjggMTE5LjYtMjkuNCA2NC4zIDI0LjMgMCA3OS0xODMuOS0yNS43IDB6Il19LFEwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHBsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjE3OSIsIk0zMTkuMSAyNjguN2MtLjItMzYuNyAxNi40LTY0LjQgNTAtODQuOC0xOC44LTI2LjktNDcuMi00MS43LTg0LjctNDQuNi0zNS41LTIuOC03NC4zIDIwLjctODguNSAyMC43LTE1IDAtNDkuNC0xOS43LTc2LjQtMTkuNy01NS44IC45LTExNS4xIDQ0LjUtMTE1LjEgMTMzLjIgMCAyNi4yIDQuOCA1My4zIDE0LjQgODEuMiAxMi44IDM2LjcgNTkgMTI2LjcgMTA3LjIgMTI1LjIgMjUuMi0uNiA0My0xNy45IDc1LjgtMTcuOSAzMS44IDAgNDguMyAxNy45IDc2LjQgMTcuOSA0OC42LS43IDkwLjQtODIuNSAxMDIuNi0xMTkuMy02NS4yLTMwLjctNjEuNy05MC02MS43LTkxLjl6TTI2Mi41IDEwNC41YzI3LjMtMzIuNCAyNC44LTYxLjkgMjQtNzIuNS0yNC4xIDEuNC01MiAxNi40LTY3LjkgMzQuOS0xNy41IDE5LjgtMjcuOCA0NC4zLTI1LjYgNzEuOSAyNi4xIDIgNDkuOS0xMS40IDY5LjUtMzQuM3oiXX0sSzB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR1bWJsciIsaWNvbjpbMzIwLDUxMixbXSwiZjE3MyIsIk0zMDkuOSA0ODAuM2MtMTMuNiAxNC41LTUwIDMxLjctOTcuNCAzMS43LTEyMC44IDAtMTQ3LTg4LjgtMTQ3LTE0MC42bDAtMTQ0LTQ3LjUgMGMtNS41IDAtMTAtNC41LTEwLTEwbDAtNjhjMC03LjIgNC41LTEzLjYgMTEuMy0xNiA2Mi0yMS44IDgxLjUtNzYgODQuMy0xMTcuMSAuOC0xMSA2LjUtMTYuMyAxNi4xLTE2LjNsNzAuOSAwYzUuNSAwIDEwIDQuNSAxMCAxMGwwIDExNS4yIDgzIDBjNS41IDAgMTAgNC40IDEwIDkuOWwwIDgxLjdjMCA1LjUtNC41IDEwLTEwIDEwbC04My40IDAgMCAxMzMuMmMwIDM0LjIgMjMuNyA1My42IDY4IDM1LjggNC44LTEuOSA5LTMuMiAxMi43LTIuMiAzLjUgLjkgNS44IDMuNCA3LjQgNy45bDIyIDY0LjNjMS44IDUgMy4zIDEwLjYtLjQgMTQuNXoiXX0sSjB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBob2VuaXgtc3F1YWRyb24iLGljb246WzUxMiw1MTIsW10sImY1MTEiLCJNOTYgNjMuNGM0Ni41LTM2LjEgMTA1LjYtNTYuMSAxNjQuNS01NC42IDI5LjYtLjQgNTkuMSA1LjQgODYuOSAxNS4zLTI0LjEtNC42LTQ5LTYuMy03My40LTIuNS00Mi45IDUuMy04MyAyNy4yLTExMS44IDU5LjIgNS43LTEgMTAuOC0zLjcgMTYtNS45IDE4LjEtNy45IDM3LjUtMTMuMyA1Ny4yLTE0LjggMTkuNy0yLjEgMzkuNi0uNCA1OS4zIDEuOS0xNC40IDIuOC0yOS4xIDQuNi00MyA5LjYtMzQuNCAxMS4xLTY1LjMgMzMuMi04Ni4zIDYyLjYtMTMuOCAxOS43LTIzLjYgNDIuOS0yNC43IDY3LjEtLjQgMTYuNSA1LjIgMzQuOCAxOS44IDQ0IDExLjIgNi44IDI0LjYgOS4yIDM3LjUgNi43IDE1LjQtMi41IDMwLjEtOC42IDQzLjYtMTYuMyAxMS41LTYuOCAyMi43LTE0LjYgMzItMjQuMyAzLjgtMy4yIDIuNS04LjQgMi42LTEyLjgtMi4xLS4zLTQuNC0xLjEtNi4zIC4zLTExLjQgNi4zLTIzLjQgMTEuNC0zNS44IDE1LjQtMjAgNi4yLTQyLjIgOC41LTYyLjEgLjggMTIuOCAxLjcgMjYuMSAuMyAzNy43LTUuNCAyMC4yLTkuNyAzNi44LTI1LjIgNTQuNC0zOC44IDI3LjctMjEuMyA1Ny41LTM5LjkgODguOS01NS4zIDI1LjctMTIgNTIuOS0yMi44IDgxLjYtMjQuMS0xNS42IDEzLjctMzIuMSAyNi41LTQ2LjggNDEuNC0xNC41IDE0LTI3LjUgMjkuNS00MC4xIDQ1LjItMy41IDQuNi05IDYuOS0xMy42IDEwLjItMjIuNCAxNS00MC4zIDM1LjgtNTEuOSA2MC4xLTkuMyAxOS43LTE0LjUgNDEuOS0xMS44IDYzLjYgMS45IDEzLjcgOC43IDI3LjYgMjAuOSAzNC45IDEyLjkgOCAyOSA4LjEgNDMuNSA1LjEgMzIuOC03LjQgNjEuNC0yOC45IDgxLTU1LjggMjAuNC0yNy41IDMwLjUtNjIuMiAyOS4yLTk2LjMtLjUtNy41LTEuNi0xNS0xLjctMjIuNSA4IDE5LjUgMTQuOCAzOS43IDE2LjYgNjAuOCAyIDE0LjMgLjcgMjguOC0xLjYgNDIuOS0xLjkgMTEtNS43IDIxLjUtNy44IDMyLjQgMjAuNC0yMi45IDM0LTUwLjkgMzkuMy04MS4xIDUuNi0zNS41IC43LTcxLjktMTQuMi0xMDQuNiAyMC44IDMyIDMyLjMgNjkuNiAzNS43IDEwNy41IC41IDEyLjcgLjUgMjUuNSAwIDM4LjItMi44IDM0LjMtMTIuOSA2Ny42LTI5LjYgOTcuOC0yNi4xIDQ3LjMtNjggODUuNi0xMTcuMiAxMDgtNzguMyAzNi4yLTE3NC43IDMxLjMtMjQ4LTE0LjctMzktMjMuOC03MC42LTU4LTkxLjQtOTguNy0xNC43LTI4LjktMjMuMy02MC41LTI1LjQtOTIuOWwwLTMxLjNDMy45IDE3MiA0MC45IDEwNS44IDk2IDYzLjR6bTIyMiA4MC4zYzUuNS0uOSAxMC44LTIuNCAxNi00LjUgNS0xLjggOS4yLTUuOSAxMC4zLTExLjItOSA1LTE4IDkuOS0yNi4zIDE1Ljd6Il19LGU0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjZW50ZXJjb2RlIixpY29uOls1MTIsNTEyLFtdLCJmMzgwIiwiTTIwMS44IDI1NC44YTY0LjEgNjQuMSAwIDEgMSAxMjcuNCAxMy44IDY0LjEgNjQuMSAwIDEgMSAtMTI3LjQtMTMuOHptNDEuNiAyNDguOUM5Ni43IDQ5Ni04LjIgMzY1LjUgMTAuMSAyMjQuMyAyMS4zIDEzNy43IDc1LjkgNjcuNCAxNDkuMiAzMi4zIDMxMC4yLTQ0LjggNDk4LjkgNjkuNyA1MDMuOSAyNDguOSA1MDggMzk1LjkgMzg1LjUgNTExLjEgMjQzLjQgNTAzLjd6bTE3OS45LTE4MGMyNy45LTExOC0xNjAuNS0yMDUuOS0yMzcuMi0yMzQuMi01Ny41IDU2LjMtNjkuMSAxODguNi0zMy44IDM0NC40IDY4LjggMTUuOCAxNjkuMS0yNi40IDI3MS0xMTAuMnoiXX0sdDR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlYmlhbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTYwYiIsIk0zODAuNCAyNDUuNmMzLTcuNiA1LjUtMTQgNS4yLTI0LjRsLTQuMyA5YzQuNC0xMy4yIDQtMjcuMSAzLjYtNDAuNC0uMi02LS4zLTExLjggMC0xNy40bC0xLjgtLjVjLTEuNS00NS4yLTQwLjYtOTMuMS03NS4zLTEwOS40LTMwLTEzLjgtNzYuMS0xNi4yLTk3LjMtNS44IDEuMy0xLjEgNC4yLTIgNi44LTIuN2wuMy0uMWMzLjMtMSA2LTEuNyA0LTIuOS0xOS4yIDEuOS0yNC45IDUuNS0zMS4xIDkuNGwtLjEgMGMtNC42IDIuOS05LjUgNi0yMC4zIDguNy0zLjUgMy40IDEuNyAyIDUuOCAuOXM3LjItMS45LS4xIDIuNGMtMy41IDEtNi42IDEuMy05LjYgMS42bC0uMSAwYy04LjMgLjgtMTUuOCAxLjYtMzAuNyAxNyAuOCAxLjMgMy40LS4yIDUuMy0xLjNsLjEtLjFjMi4zLTEuNCAzLjQtMi0xLjcgNC40LTE5LjEtMi40LTYwLjMgNDMuNy02OS4xIDU5bDQuNiAuOGMtMy4yIDgtNi44IDE0LjgtMTAgMjAuOC00LjMgOC4xLTcuOSAxNC45LTguNyAyMS4zLS4zIDUuMS0xIDExLTEuNyAxNy4zLS4xIDEtLjIgMi0uMyAzbC0uMSAuNmMtMyAyNy4zLTYuNyA2MC44IDMuOSA3M2wtMS4zIDEzYy42IDEuMiAxLjEgMi4zIDEuNiAzLjUgLjIgLjQgLjQgLjggLjUgMS4xIDEgMi4xIDIgNC4yIDMuMyA2LjJsLTMgLjJjNyAyMi4xIDEwLjggMjIuNSAxNS4xIDIyLjkgNC40IC40IDkuMyAuOSAxOC43IDI0LjItMi43LS45LTUuNS0xLjktOS40LTcuMi0uNSA0LjEgNS44IDE2LjMgMTMuMSAyNS44bC0zLjEgMy42YzIuMSAzLjcgNC44IDYuMiA3LjYgOC44IDEgLjkgMi4xIDEuOSAzLjEgMi45LTExLjktNi41IDMuMiAxMy43IDExLjkgMjUuMiAuOCAxLjEgMS41IDIgMi4yIDIuOSAxLjQgMS45IDIuNSAzLjQgMi45IDQuMWwyLjQtNC4yYy0uMyA2LjEgNC4zIDEzLjkgMTMuMSAyNC43bDcuMy0uM2MzIDYgMTQgMTYuNyAyMC43IDE3LjJsLTQuNCA1LjhjOC4xIDIuNiAxMC4zIDQuMyAxMi43IDYuMiAyLjYgMi4xIDUuNCA0LjMgMTYuMSA4LjFsLTQuMi03LjRjMy41IDMgNi4yIDUuOSA4LjggOC43bC4xIC4xYzUuMiA1LjYgOS45IDEwLjYgMTkuNyAxNS4zIDEwLjcgMy43IDE2LjYgNC43IDIyLjcgNS44IC4zIDAgLjYgLjEgLjkgLjEgNS40IC44IDExLjIgMS44IDIwLjggNC41LTEuMS0uMS0yLjItLjEtMy4zLS4xLTIuMy0uMS00LjctLjEtNy0uMS0xNC40LS4yLTI5LjItLjQtNDIuNy01LjItOTYuNi0yNS43LTE4NC45LTEzOS0xNzguNC0yNTUuNi0uNi05LjktLjMtMjAuOSAwLTMwLjcgLjQtMTMuNSAuNy0yNC44LTEuNi0yOC4zbDEtMy4xYzUuMy0xNy40IDExLjctMzguMiAyMy44LTYyLjhsLS4xLS4yIDAtLjFjLjQgLjQgMy40IDMuNCA4LjgtNS44IC44LTEuOCAxLjYtMy43IDIuNC01LjYgLjUtMS4xIC45LTIuMiAxLjQtMy4yIDIuNS02LjEgNS4xLTEyLjMgOC40LTE3LjlsMi42LS42YzEuNy0xMC4xIDE3LTIzLjggMjkuOC0zNS4ybDEuMS0xYzUuNy01LjEgMTAuNy05LjcgMTMuNi0xMy4xbC43IDQuNGMxNy0xNS45IDQ0LjYtMjcuNSA2NS42LTM2LjRsLjUtLjJjNC44LTIgOS4zLTMuOSAxMy4zLTUuNy0zLjQgMy44IDIuMiAyLjcgMTAgMSA0LjgtMSAxMC40LTIuMSAxNS4zLTIuNGwtMy45IDIuMWMtMi43IDEuNC01LjQgMi44LTggNC42IDguMS0yIDExLjctMS40IDE1LjctLjhsLjMgMGMzLjUgLjYgNy4zIDEuMiAxNC42IC4yLTUuNiAuOC0xMi4zIDMtMTEuMiAzLjggNy45IC45IDEyLjgtLjEgMTcuMi0xbC4yIDBjNS41LTEuMSAxMC4zLTIgMTkuMyAuOWwtMS00LjhjNy4zIDIuNiAxMi43IDQuMyAxNy41IDUuOGwuNSAuMWMxMCAzIDE3LjYgNS4zIDM0LjIgMTQuMSAzLjIgLjIgNS4zLS41IDcuNC0xLjJsLjEgMGMzLjYtMS4xIDctMi4xIDE1LjIgMS4yIC4zIC41IC41IDEgLjcgMS40IC4xIC4yIC4yIC41IC4zIC43bDAgLjFjMSAyLjYgMS44IDQuNiAxNC42IDEyLjEgMS43LS43LTIuNy00LjctNi40LTguMmwtLjEtLjFjLS4yLS4xLS4zLS4zLS41LS40IDMyLjIgMTcuMyA2Ny4zIDU0LjEgNzggOTMuNS02LTExLjEtNS4yLTUuNS00LjMgLjUgLjYgNCAxLjIgOC4xLS4yIDcuNSA0LjUgMTIuMSA4LjEgMjQuNSAxMC40IDM3LjRsLS44LTIuOS0uMS0uM2MtMy4zLTExLjktOS42LTM0LjMtMTkuOS00OS4zLS40IDQuMy0yLjggMy45LTUuMiAzLjVsLS4xIDBjLTMuMy0uNi02LjItMS4xLTEuOSAxMi42IDIuNiAzLjggMy4xIDIuNCAzLjUgMS4xIC41LTEuNSAuOS0yLjcgNC43IDUuMiAuMSA0LjEgMSA4LjIgMi4xIDEyLjdsLjEgLjZjLjEgLjMgLjEgLjUgLjIgLjhsLjEgLjZjLjYgMi42IDEuMyA1LjQgMS44IDguNC0xLjEtLjItMi4zLTIuMi0zLjQtNC4yLTEuNC0yLjQtMi44LTQuNy0zLjctMy4yIDIuNCAxMS41IDYuNSAxNy40IDggMTguMy0uMyAuNi0uNiAuNy0xLjEgLjctLjggMC0xLjggLjEtMS45IDUuMyAuNyAxMy43IDMuMyAxMi41IDUuMyAxMS42IC42LS4zIDEuMi0uNiAxLjctLjQtLjYgMi41LTEuNiA1LjEtMi43IDcuOS0yLjggNy4xLTYgMTUuNC0zLjQgMjYuMS0uOC0zLTItNi0zLjEtOC45bC0uMS0uNGMtLjItLjUtLjQtMS0uNi0xLjUtLjMtLjgtLjYtMS42LS45LTIuMy0uNiA0LjQtLjMgNy43LS4xIDEwLjZsMCAuN2MuNCA1LjMgLjcgMTAtMyAxOS45IDQuMy0xNC4yIDMuOC0yNi45LS4yLTIwLjggMSAxMC45LTMuNyAyMC40LTggMjguOWwtLjEgLjJjLTMuNiA3LjEtNi44IDEzLjUtNS45IDE5LjNsLTUuMi03LjFjLTcuNSAxMC45LTcgMTMuMy02LjUgMTUuNWwwIC4xYy41IDEuOSAxIDMuOC0zLjQgMTAuOCAxLjctMi45IDEuMy0zLjYgMS00LjItLjQtLjgtLjctMS41IDEuNy01LjEtMS42IC4xLTUuNSAzLjktMTAuMSA4LjUtMy45IDMuOS04LjUgOC40LTEyLjggMTEuOC0zNy41IDMwLjEtODIuMyAzNC0xMjUuNiAxNy44IC4yLTEtLjItMi4xLTMuMS00LjEtMzYuOC0yOC4yLTU4LjUtNTIuMS01MC45LTEwNy41IDIuMS0xLjYgMy42LTUuOCA1LjMtMTAuOGwuMi0uNCAuMS0uMyAwLS4xYzIuOS04LjQgNi41LTE4LjggMTQuMy0yMy44IDcuOC0xNy4zIDMxLjMtMzMuMyA1Ni40LTMzLjcgMjUuNi0xLjQgNDcuMiAxMy43IDU4LjEgMjcuOS0xOS44LTE4LjQtNTIuMS0yNC03OS43LTEwLjQtMjguMiAxMi43LTQ1IDQzLjgtNDIuNSA3NC43IC4zLS40IC42LS42IC45LS44bC4yLS4yYy42LS41IDEuMS0uOSAxLjQtMy4zLS45IDYwLjIgNjQuOCAxMDQuMyAxMTIuMSA4MmwuNiAxLjNjMTIuNy0zLjUgMTUuOS02LjUgMjAuMy0xMC43bC4xLS4xYzIuMi0yLjEgNC43LTQuNSA4LjktNy4zLS4zIC43LTEuMyAxLjctMi40IDIuNy0yLjIgMi4xLTQuNiA0LjUtMS42IDQuNiA1LTEuMyAxOC41LTEzLjQgMjguNS0yMi4zIC42LS41IDEuMi0xIDEuNy0xLjUgMS41LTEuMyAyLjgtMi41IDQtMy42bC4zLS4zYzEuOS00LjIgMS42LTUuNiAxLjMtN2wwLS4xYy0uNC0xLjYtLjgtMy4zIDIuNC05LjZsNy4zLTMuN2MuOC0yLjEgMS41LTQuMSAyLjItNiAuMi0uNiAuNS0xLjIgLjctMS44bC0uNC0uMi0uMS0uMXpNMjQ4IDMzNC4xYy02LTMtMTMuNy04LjktMTQuOC0xMS40bC0uNCAuM2MtLjMgLjYtLjUgMS4zLS4yIDIuMi0xMi4yLTUuNy0yMy40LTE0LjMtMzIuNi0yNC45IDQuOSA3LjEgMTAuMSAxNC4xIDE3IDE5LjUtNi45LTIuMy0xNS4xLTExLjgtMjEuNi0xOS4zbC0uMS0uMWMtNC4zLTUtNy45LTkuMS05LjctOS41IDE5LjggMzUuNSA4MC41IDYyLjMgMTEyLjMgNDktMTQuNyAuNS0zMy40IC4zLTQ5LjktNS44em03OS4zLTExOS43bC0uMS0uMmMtLjUtMS41LTEuMS0zLjEtMS43LTMuNCAxLjQtNS44IDUuNC0xMC43IDQuNCA0LjYtMSAzLjgtMS44IDEuNS0yLjYtMXptLTQuMiAyMi4yYy0xLjMgNy45LTUgMTUuNS0xMC4xIDIyLjUgLjItMi0xLjItMi40LTIuNi0yLjgtMi45LS44LTUuOS0xLjYgNS42LTE2LjEtLjUgMS45LTIuMSA0LjYtMy43IDcuM2wtLjMgLjRjLTMuNiA1LjktNi43IDExIDQgNC4zbDEtMS44YzIuNi00LjUgNS04LjggNi0xMy44bC4xIDB6bS01NS42IDMzLjljNy4xIC42IDE0LjEgLjYgMjEtMS4xLTIuNSAyLjQtNS4yIDQuOC04LjMgNy4yLTExLjEtMS43LTIxLjItNi0xMi43LTYuMXptLTkyLjYgMTEuNmMzLjYgNy4xIDYuNCAxMS41IDkgMTUuN2wuMSAuMmMyLjMgMy43IDQuNCA3LjEgNi44IDExLjctNS4xLTQuMi04LjctOS41LTEyLjUtMTVsLS4zLS41Yy0xLjQtMi4xLTIuOC00LjItNC40LTYuMmwxLjItNS45IC4xIDB6bTcuNS05LjZjMS42IDMuMyAzLjIgNi40IDUuNyA5LjFsMi42IDcuNy0xLjMtMi4xYy0zLjItNS4zLTYuMy0xMC42LTgtMTYuN2wxIDJ6bTIzOC45LTQxLjZjLTIuMyAxNy40LTcuNyAzNC42LTE2IDUwLjMgNy42LTE0LjkgMTIuNS0zMC45IDE0LjgtNDcuMmwxLjItMy4xek0zNS44IDExMC42Yy40IC44IDEuNCAuNSAyLjMgLjMgMS45LS41IDMuNi0uOS0uMSA3LjYtLjUgLjMtMSAuNy0xLjUgMS0xLjQgLjktMi44IDEuOS0zLjkgMyAxLjktMy44IDMuNS03LjQgMy4yLTExLjl6TTI1LjUgMTUyLjNjLS43IDMuNy0xLjUgNy45LTMuNCAxMy45IC4yLTEuOSAwLTMuNS0uMi00LjlsMC0uMWMtLjQtMy40LS43LTYuMyA0LjMtMTIuOC0uMyAxLjItLjUgMi41LS43IDMuOGwwIC4xeiJdfSxhNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFzdG9kb24iLGljb246WzQ0OCw1MTIsW10sImY0ZjYiLCJNNDMzIDE3OS4xYzAtOTcuMi02My43LTEyNS43LTYzLjctMTI1LjctNjIuNS0yOC43LTIyOC42LTI4LjQtMjkwLjUgMCAwIDAtNjMuNyAyOC41LTYzLjcgMTI1LjcgMCAxMTUuNy02LjYgMjU5LjQgMTA1LjYgMjg5LjEgNDAuNSAxMC43IDc1LjMgMTMgMTAzLjMgMTEuNCA1MC44LTIuOCA3OS4zLTE4LjEgNzkuMy0xOC4xbC0xLjctMzYuOXMtMzYuMyAxMS40LTc3LjEgMTAuMWMtNDAuNC0xLjQtODMtNC40LTg5LjYtNTQtLjYtNC42LS45LTkuMy0uOS0xMy45IDg1LjYgMjAuOSAxNTguNyA5LjEgMTc4LjcgNi43IDU2LjEtNi43IDEwNS00MS4zIDExMS4yLTcyLjkgOS44LTQ5LjggOS0xMjEuNSA5LTEyMS41ek0zNTcuOSAzMDQuM2wtNDYuNiAwIDAtMTE0LjJjMC00OS43LTY0LTUxLjYtNjQgNi45bDAgNjIuNS00Ni4zIDAgMC02Mi41YzAtNTguNS02NC01Ni42LTY0LTYuOWwwIDExNC4yLTQ2LjcgMGMwLTEyMi4xLTUuMi0xNDcuOSAxOC40LTE3NSAyNS45LTI4LjkgNzkuOC0zMC44IDEwMy44IDYuMWwxMS42IDE5LjUgMTEuNi0xOS41YzI0LjEtMzcuMSA3OC4xLTM0LjggMTAzLjgtNi4xIDIzLjcgMjcuMyAxOC40IDUzIDE4LjQgMTc1bDAgMHoiXX0scjR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNrZXRjaCIsaWNvbjpbNTEyLDUxMixbXSwiZjdjNiIsIk0yNy44IDE2Mi4ybC0xOC41IDI0LjkgOTAuNSAwIDYuOS0xMzAuNy03OC45IDEwNS44ek0zOTYuNiA0NS43TDI2OCAzMiA0MDMuNyAxNzkuMiAzOTYuNiA0NS43ek0xMTIuNSAyMTguM2wtMTEuMi0yMi05MS4xIDAgMjI0LjkgMjYxLjctMTIyLjYtMjM5Ljd6bTItMzEuMmwyODQgMEMzNDAuNiAxMjQuMyAyOTMuMyA3Mi45IDI1Ni42IDMzTDExNC41IDE4Ny4xem0yOTcuMyA5LjFsLTEzMy45IDI2MS44IDIyNC44LTI2MS43LTkwLjkgMCAwLS4xek00MTUuNyA2OWwtOS40LTEyLjYgLjkgMTcuMyA2LjEgMTEzLjQgOTAuMyAwLTg3LjktMTE4LjF6TTExMy44IDkzLjVMMTA5LjIgMTc5LjEgMjQ1IDMyIDExNi40IDQ1LjcgMTEzLjggOTMuNXpNNDAxLjUgMTk2LjJsLTI5MCAwYzE4LjIgMzUuNiA2Ni42IDEzMC4yIDE0NS4xIDI4My44TDQwMS41IDE5Ni4yeiJdfSxpNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2ViLWF3ZXNvbWUiLGljb246WzY0MCw1MTIsW10sImU2ODIiLCJNMzcyLjIgNTJjMCAyMC45LTEyLjQgMzktMzAuMiA0Ny4yTDQ0OCAxOTIgNTUyLjQgMTcxLjFjLTUuMy03LjctOC40LTE3LjEtOC40LTI3LjEgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDI2LTIwLjYgNDcuMS00Ni40IDQ4TDQ4MSA0NDIuM2MtMTAuMyAyMy0zMy4yIDM3LjctNTguNCAzNy43bC0yMDUuMiAwYy0yNS4yIDAtNDgtMTQuOC01OC40LTM3LjdMNDYuNCAxOTJDMjAuNiAxOTEuMSAwIDE3MCAwIDE0NCAwIDExNy41IDIxLjUgOTYgNDggOTZzNDggMjEuNSA0OCA0OGMwIDEwLjEtMy4xIDE5LjQtOC40IDI3LjFMMTkyIDE5MiAyOTguMSA5OS4xYy0xNy43LTguMy0zMC0yNi4zLTMwLTQ3LjEgMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwuMSAweiJdfSxvNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FzcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQxZSIsIk0zMDEuOCAzNzguOWwwIDB6bTI0OS4xLTg3Yy0yMC4xIDAtNDAgNC42LTU4IDEzLjUtNS45LTExLjktMTItMjIuMy0xMy0zMC4xLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4zLTYuNy0yNCAyLjUtMjUuMyA1LjljLTIuMyA2LjItNC4xIDEyLjYtNS4zIDE5LjEtMi4zIDExLjctMjUuOCA1My41LTM5LjEgNzUuMy00LjQtOC41LTguMS0xNi04LjktMjItMS4yLTkuMS0yLjUtMTQuNS0xLjEtMjUuM3M3LjctMjYuMSA3LjYtMjcuMi0xLjQtNi42LTE0LjMtNi43LTI0IDIuNS0yNS4zIDUuOS0yLjcgMTEuNC01LjMgMTkuMS0zMy45IDc3LjMtNDIuMSA5NS40Yy00LjIgOS4yLTcuOCAxNi42LTEwLjQgMjEuNi0uNCAuOC0uNyAxLjMtLjkgMS43IC4zLS41IC41LTEgLjUtLjgtMi4yIDQuMy0zLjUgNi43LTMuNSA2LjdsMCAuMWMtMS43IDMuMi0zLjYgNi4xLTQuNSA2LjEtLjYgMC0xLjktOC40IC4zLTE5LjkgNC43LTI0LjIgMTUuOC02MS44IDE1LjctNjMuMS0uMS0uNyAyLjEtNy4yLTcuMy0xMC43LTkuMS0zLjMtMTIuNCAyLjItMTMuMiAyLjJzLTEuNCAyLTEuNCAyIDEwLjEtNDIuNC0xOS40LTQyLjRjLTE4LjQgMC00NCAyMC4yLTU2LjYgMzguNS03LjkgNC4zLTI1IDEzLjYtNDMgMjMuNS02LjkgMy44LTE0IDcuNy0yMC43IDExLjQtLjUtLjUtLjktMS0xLjQtMS41LTM1LjgtMzguMi0xMDEuOS02NS4yLTk5LjEtMTE2LjUgMS0xOC43IDcuNS02Ny44IDEyNy4xLTEyNy40IDk4LTQ4LjggMTc2LjMtMzUuNCAxODkuOC01LjYgMTkuNCA0Mi41LTQxLjkgMTIxLjYtMTQzLjcgMTMzLTM4LjggNC4zLTU5LjItMTAuNy02NC4zLTE2LjMtNS4zLTUuOS02LjEtNi4yLTguMS01LjEtMy4zIDEuOC0xLjIgNyAwIDEwLjEgMyA3LjkgMTUuNSAyMS45IDM2LjggMjguOSAxOC43IDYuMSA2NC4yIDkuNSAxMTkuMi0xMS44IDYxLjgtMjMuOCAxMDkuOS05MC4xIDk1LjgtMTQ1LjYtMTQuNC01Ni40LTEwNy45LTc0LjktMTk2LjMtNDMuNS01Mi43IDE4LjctMTA5LjcgNDguMS0xNTAuNyA4Ni40LTQ4LjcgNDUuNi01Ni41IDg1LjMtNTMuMyAxMDEuOSAxMS40IDU4LjkgOTIuNiA5Ny4zIDEyNS4xIDEyNS43LTEuNiAuOS0zLjEgMS43LTQuNSAyLjUtMTYuMyA4LjEtNzguMiA0MC41LTkzLjcgNzQuNy0xNy41IDM4LjggMi45IDY2LjYgMTYuMyA3MC40IDQxLjggMTEuNiA4NC42LTkuMyAxMDcuNi00My42czIwLjItNzkuMSA5LjYtOTkuNWMtLjEtLjMtLjMtLjUtLjQtLjggNC4yLTIuNSA4LjUtNSAxMi44LTcuNSA4LjMtNC45IDE2LjQtOS40IDIzLjUtMTMuMy00IDEwLjgtNi45IDIzLjgtOC40IDQyLjYtMS44IDIyIDcuMyA1MC41IDE5LjEgNjEuNyA1LjIgNC45IDExLjUgNSAxNS40IDUgMTMuOCAwIDIwLTExLjQgMjYuOS0yNSA4LjUtMTYuNiAxNi0zNS45IDE2LTM1LjlzLTkuNCA1Mi4yIDE2LjMgNTIuMmM5LjQgMCAxOC44LTEyLjEgMjMtMTguM2wwIC4xcy4yLS40IC43LTEuMmMxLTEuNSAxLjUtMi40IDEuNS0yLjRsMC0uM2MzLjgtNi41IDEyLjEtMjEuNCAyNC42LTQ2IDE2LjItMzEuOCAzMS43LTcxLjUgMzEuNy03MS41IDEuNSA4LjcgMy42IDE3LjMgNi4yIDI1LjggMi44IDkuNSA4LjcgMTkuOSAxMy40IDMwLTMuOCA1LjItNi4xIDguMi02LjEgOC4yIDAgLjEgMCAuMSAuMSAuMi0zIDQtNi40IDguMy05LjkgMTIuNS0xMi44IDE1LjItMjggMzIuNi0zMCAzNy42LTIuNCA1LjktMS44IDEwLjMgMi44IDEzLjcgMy40IDIuNiA5LjQgMyAxNS43IDIuNSAxMS41LS44IDE5LjYtMy42IDIzLjUtNS40IDcuMi0yLjYgMTQtNi4xIDIwLjItMTAuNiAxMi41LTkuMiAyMC4xLTIyLjQgMTkuNC0zOS44LS40LTkuNi0zLjUtMTkuMi03LjMtMjguMiAxLjEtMS42IDIuMy0zLjMgMy40LTUgMTkuOC0yOC45IDM1LjEtNjAuNiAzNS4xLTYwLjYgMS41IDguNyAzLjYgMTcuMyA2LjIgMjUuOCAyLjQgOC4xIDcuMSAxNyAxMS40IDI1LjctMTguNiAxNS4xLTMwLjEgMzIuNi0zNC4xIDQ0LjEtNy40IDIxLjMtMS42IDMwLjkgOS4zIDMzLjEgNC45IDEgMTEuOS0xLjMgMTcuMS0zLjUgNy43LTIuNiAxNS02LjMgMjEuNi0xMS4xIDEyLjUtOS4yIDI0LjYtMjIuMSAyMy44LTM5LjYtLjMtNy45LTIuNS0xNS44LTUuNC0yMy40IDE1LjctNi42IDM2LjEtMTAuMiA2Mi4xLTcuMiA1NS43IDYuNSA2Ni42IDQxLjMgNjQuNSA1NS44cy0xMy44IDIyLjYtMTcuNyAyNS01LjEgMy4zLTQuOCA1LjFjLjUgMi42IDIuMyAyLjUgNS42IDEuOSA0LjYtLjggMjkuMi0xMS44IDMwLjMtMzguNyAxLjYtMzQtMzEuMS03MS40LTg5LTcxLjFsMCAwek0xMjEuOCA0MzYuNmMtMTguNCAyMC4xLTQ0LjIgMjcuNy01NS4zIDIxLjMtMTEuOS02LjktNy4yLTM2LjUgMTUuNS01Ny45IDEzLjgtMTMgMzEuNi0yNSA0My40LTMyLjQgMi43LTEuNiA2LjYtNCAxMS40LTYuOSAuOC0uNSAxLjItLjcgMS4yLS43IC45LS42IDEuOS0xLjEgMi45LTEuNyA4LjMgMzAuNCAuMyA1Ny4yLTE5LjEgNzguM2wwIDB6bTEzNC40LTkxLjRjLTYuNCAxNS43LTE5LjkgNTUuNy0yOC4xIDUzLjYtNy0xLjgtMTEuMy0zMi4zLTEuNC02Mi4zIDUtMTUuMSAxNS42LTMzLjEgMjEuOS00MC4xIDEwLjEtMTEuMyAyMS4yLTE0LjkgMjMuOC0xMC40IDMuNSA1LjktMTIuMiA0OS40LTE2LjIgNTkuMnptMTExIDUzYy0yLjcgMS40LTUuMiAyLjMtNi40IDEuNi0uOS0uNSAxLjEtMi40IDEuMS0yLjRzMTMuOS0xNC45IDE5LjQtMjEuN2MzLjItNCA2LjktOC43IDEwLjktMTMuOSAwIC41IC4xIDEgLjEgMS42LS4xIDE3LjktMTcuMyAzMC0yNS4xIDM0LjhsMCAwem04NS42LTE5LjVjLTItMS40LTEuNy02LjEgNS0yMC43IDIuNi01LjcgOC42LTE1LjMgMTktMjQuNSAxLjIgMy41IDEuOCA3LjEgMS45IDEwLjgtLjEgMjIuNS0xNi4yIDMwLjktMjUuOSAzNC40bDAgMHoiXX0sSzFlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS13aGF0c2FwcCIsaWNvbjpbNDQ4LDUxMixbIndoYXRzYXBwLXNxdWFyZSJdLCJmNDBjIiwiTTkyLjEgMjU0LjZjMCAyNC45IDcgNDkuMiAyMC4yIDcwLjFsMy4xIDUtMTMuMyA0OC42IDQ5LjktMTMuMSA0LjggMi45YzIwLjIgMTIgNDMuNCAxOC40IDY3LjEgMTguNGwuMSAwYzcyLjYgMCAxMzMuMy01OS4xIDEzMy4zLTEzMS44IDAtMzUuMi0xNS4yLTY4LjMtNDAuMS05My4yLTI1LTI1LTU4LTM4LjctOTMuMi0zOC43LTcyLjcgMC0xMzEuOCA1OS4xLTEzMS45IDEzMS44ek0yNzQuOCAzMzBjLTEyLjYgMS45LTIyLjQgLjktNDcuNS05LjktMzYuOC0xNS45LTYxLjgtNTEuNS02Ni45LTU4LjctLjQtLjYtLjctLjktLjgtMS4xLTItMi42LTE2LjItMjEuNS0xNi4yLTQxIDAtMTguNCA5LTI3LjkgMTMuMi0zMi4zIC4zLS4zIC41LS41IC43LS44IDMuNi00IDcuOS01IDEwLjYtNSAyLjYgMCA1LjMgMCA3LjYgLjFsLjggMGMyLjMgMCA1LjIgMCA4LjEgNi44IDEuMiAyLjkgMyA3LjMgNC45IDExLjggMy4zIDggNi43IDE2LjMgNy4zIDE3LjYgMSAyIDEuNyA0LjMgLjMgNi45LTMuNCA2LjgtNi45IDEwLjQtOS4zIDEzLTMuMSAzLjItNC41IDQuNy0yLjMgOC42IDE1LjMgMjYuMyAzMC42IDM1LjQgNTMuOSA0Ny4xIDQgMiA2LjMgMS43IDguNi0xIDIuMy0yLjYgOS45LTExLjYgMTIuNS0xNS41IDIuNi00IDUuMy0zLjMgOC45LTJzMjMuMSAxMC45IDI3LjEgMTIuOWMuOCAuNCAxLjUgLjcgMi4xIDEgMi44IDEuNCA0LjcgMi4zIDUuNSAzLjYgLjkgMS45IC45IDkuOS0yLjQgMTkuMS0zLjMgOS4zLTE5LjEgMTcuNy0yNi43IDE4Ljh6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xNDguMSAzOTMuOUw2NCA0MTYgODYuNSAzMzMuOGMtMTMuOS0yNC0yMS4yLTUxLjMtMjEuMi03OS4zIC4xLTg3LjQgNzEuMi0xNTguNSAxNTguNi0xNTguNSA0Mi40IDAgODIuMiAxNi41IDExMi4yIDQ2LjUgMjkuOSAzMCA0Ny45IDY5LjggNDcuOSAxMTIuMiAwIDg3LjQtNzIuNyAxNTguNS0xNjAuMSAxNTguNS0yNi42IDAtNTIuNy02LjctNzUuOC0xOS4zeiJdfSxzNHQ9SzFlLG40dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza3lwZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3ZSIsIk00MjQuNyAyOTkuOGMyLjktMTQgNC43LTI4LjkgNC43LTQzLjggMC0xMTMuNS05MS45LTIwNS4zLTIwNS4zLTIwNS4zLTE0LjkgMC0yOS43IDEuNy00My44IDQuNy0xOS0xNC43LTQyLjYtMjMuNC02OC4zLTIzLjQtNjEuOCAwLTExMiA1MC4yLTExMiAxMTIgMCAyNS43IDguNyA0OS4zIDIzLjMgNjguMi0yLjkgMTQtNC43IDI4LjktNC43IDQzLjggMCAxMTMuNSA5MS45IDIwNS4zIDIwNS4zIDIwNS4zIDE0LjkgMCAyOS43LTEuNyA0My44LTQuNyAxOSAxNC42IDQyLjYgMjMuMyA2OC4yIDIzLjMgNjEuOCAwIDExMi01MC4yIDExMi0xMTIgLjEtMjUuNi04LjYtNDkuMi0yMy4yLTY4LjF6TTIzMC4xIDM5MS4zYy02NS42IDAtMTIwLjUtMjkuMi0xMjAuNS02NSAwLTE2IDktMzAuNiAyOS41LTMwLjYgMzEuMiAwIDM0LjEgNDQuOSA4OC4xIDQ0LjkgMjUuNyAwIDQyLjMtMTEuNCA0Mi4zLTI2LjMgMC0xOC43LTE2LTIxLjYtNDItMjgtNjIuNS0xNS40LTExNy44LTIyLTExNy44LTg3LjIgMC01OS4yIDU4LjYtODEuMSAxMDkuMS04MS4xIDU1LjEgMCAxMTAuOCAyMS45IDExMC44IDU1LjQgMCAxNi45LTExLjQgMzEuOC0zMC4zIDMxLjgtMjguMyAwLTI5LjItMzMuNS03NS0zMy41LTI1LjcgMC00MiA3LTQyIDIyLjUgMCAxOS44IDIwLjggMjEuOCA2OS4xIDMzIDQxLjQgOS4zIDkwLjcgMjYuOCA5MC43IDc3LjYgMCA1OS4xLTU3LjEgODYuNS0xMTIgODYuNXoiXX0sbDR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ3VsYXIiLGljb246WzQ0OCw1MTIsW10sImY0MjAiLCJNMTg1LjcgMjY4LjFsNzYuMiAwLTM4LjEtOTEuNi0zOC4xIDkxLjZ6TTIyMy44IDMyTDE2IDEwNi40IDQ3LjggMzgyLjEgMjIzLjggNDgwIDM5OS44IDM4Mi4xIDQzMS42IDEwNi40IDIyMy44IDMyek0zNTQgMzczLjhsLTQ4LjYgMC0yNi4yLTY1LjQtMTEwLjYgMC0yNi4yIDY1LjQtNDguNyAwIDEzMC4xLTI5Mi4zIDEzMC4yIDI5Mi4zeiJdfSxjNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbnN1c2UiLGljb246WzY0MCw1MTIsW10sImU2MmIiLCJNNDcxLjEgMTAyLjdzLS4zIDE4LjMtLjMgMjAuM2MtOS4xLTMtNzQuNC0yNC4xLTEzNS43LTI2LjMtNTEuOS0xLjgtMTIyLjgtNC4zLTIyMyA1Ny4zLTE5LjQgMTIuNC03My45IDQ2LjEtOTkuNiAxMDkuNy01LjUgMTMuMy0xMi42IDQzLjMtNS41IDcxLjQgMy4zIDEyLjggOC45IDI0LjkgMTYuNSAzNS43IDE3LjQgMjUgNDYuNiA0MS42IDc4LjEgNDQuNCA0NC40IDMuOSA3OC4xLTE2IDkwLTUzLjMgOC4yLTI1LjggMC02My42LTMxLjUtODIuOS0yNS42LTE1LjctNTMuMy0xMi4xLTY5LjItMS42LTEzLjkgOS4yLTIxLjggMjMuNS0yMS42IDM5LjIgLjMgMjcuOCAyNC4zIDQyLjYgNDEuNSA0Mi42IDUuNCAwIDEwLjctLjkgMTUuOC0yLjcgNi41LTEuOCAxMy4zLTYuNSAxMy4zLTE0LjkgMC0xMi4xLTExLjYtMTQuOC0xNi44LTEzLjktMi45IC41LTQuNSAyLTExLjggMi40LTItLjItMTItMy4xLTEyLTE0bDAtLjFjLjItMTIuMyAxMy4yLTE4IDI1LjUtMTYuOSAzMi4zIDIuOCA0Ny43IDQwLjcgMjguNSA2NS43LTE4LjMgMjMuNy03Ni42IDIzLjItOTkuNy0yMC40LTI2LTQ5LjIgMTIuNy0xMTEuMiA4Ny05OC40IDMzLjIgNS43IDgzLjYgMzUuNSAxMDIuNCAxMDQuM2w0NS45IDBjLTUuNy0xNy42LTguOS02OC4zIDQyLjctNjguMyA1Ni43IDAgNjMuOSAzOS45IDc5LjggNjguM2w0OC42IDBjLTEyLjgtMTguMy0yMS43LTM4LjctMTguOS01NS44IDUuNi0zMy44IDM5LjctMTguNCA4Mi40LTE3LjQgNjYuNSAuNCAxMDIuMS0yNyAxMDMuMS0yOCAzLjctMy4xIDYuNS0xNS44IDctMTcuNyAxLjMtNS4xLTMuMi0yLjQtMy4yLTIuNC04LjcgNS4yLTMwLjUgMTUuMi01MC45IDE1LjYtMjUuMyAuNS03Ni4yLTI1LjQtODEuNi0yOC4yLS4zLS40IC4xIDEuMi0xMS0yNS41IDg4LjQgNTguMyAxMTguMyA0MC41IDE0NS4yIDIxLjcgLjgtLjYgNC4zLTIuOSAzLjYtNS43LTEzLjgtNDguMS0yMi40LTYyLjctMzQuNS02OS42LTM3LTIxLjYtMTI1LTM0LjctMTI5LjItMzUuMyAuMS0uMS0uOS0uMy0uOSAuN3ptNjAuNCA3Mi44YTM3LjYgMzcuNiAwIDEgMSA3NS4yIDIuNiAzNy42IDM3LjYgMCAxIDEgLTc1LjItMi42em0zOC42LTI1LjNjLTMuNi0uMy03LjEgLjEtMTAuNSAxLjJzLTYuNSAyLjktOS4yIDUuMy00LjggNS4zLTYuMyA4LjUtMi40IDYuNy0yLjUgMTAuMyAuNSA3LjEgMS44IDEwLjQgMy4zIDYuMyA1LjggOC45IDUuNSA0LjUgOC44IDUuOSA2LjkgMiAxMC40IDEuOWMzLjYgLjMgNy4xLS4xIDEwLjUtMS4yczYuNS0yLjkgOS4yLTUuMyA0LjgtNS4zIDYuMy04LjUgMi40LTYuNyAyLjUtMTAuMy0uNS03LjEtMS44LTEwLjQtMy4zLTYuMy01LjgtOC45LTUuNS00LjUtOC44LTUuOS02LjktMi0xMC40LTEuOXptNC4zIDI4LjhjLTE1LjQgMC0xNS40LTE1LjYgMC0xNS42czE1LjQgMTUuNiAwIDE1LjZ6Il19LGQ0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkcm9wYm94IixpY29uOls1NzYsNTEyLFtdLCJmMTZiIiwiTTI4OC40IDExNi4zbC0xMzIgODQuMyAxMzIgODQuMy0xMzIgODQuMy0xMzIuNC04NS4xIDEzMi4zLTg0LjMtMTMyLjMtODMuNSAxMzIuMy04NC4zIDEzMi4xIDg0LjN6TTE1NS42IDM5NS43bDEzMi04NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi04NC4zek0yODguNCAyODQuMWwxMzItODQuMy0xMzItODMuNiAxMzEuMy04NC4yIDEzMi4zIDg0LjMtMTMyLjMgODQuMyAxMzIuMyA4NC4yLTEzMi4zIDg0LjMtMTMxLjMtODV6Il19LGY0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZWV6ZXIiLGljb246WzUxMiw1MTIsW10sImUwNzciLCJNMTQuOCAxMDEuMUM2LjYgMTAxLjEgMCAxMjcuNiAwIDE2MC4zczYuNiA1OS4yIDE0LjggNTkuMiAxNC44LTI2LjUgMTQuOC01OS4yLTYuNi01OS4yLTE0LjgtNTkuMnpNNDQ4LjcgNDAuOWMtNy43IDAtMTQuNSAxNy4xLTE5LjQgNDQuMS03LjctNDYuNy0yMC4yLTc3LTM0LjItNzctMTYuOCAwLTMxLjEgNDIuOS0zOCAxMDUuNC02LjYtNDUuNC0xNi44LTc0LjItMjguMy03NC4yLTE2LjEgMC0yOS42IDU2LjktMzQuNyAxMzYuMi05LjQtNDAuOC0yMy4yLTY2LjMtMzguMy02Ni4zcy0yOC44IDI1LjUtMzguMyA2Ni4zYy01LjEtNzkuMy0xOC42LTEzNi4yLTM0LjctMTM2LjItMTEuNSAwLTIxLjcgMjguOC0yOC4zIDc0LjItNi42LTYyLjUtMjEuMi0xMDUuNC0zNy44LTEwNS40LTE0IDAtMjYuNSAzMC40LTM0LjIgNzctNC44LTI3LTExLjctNDQuMS0xOS40LTQ0LjEtMTQuMyAwLTI2IDU5LjItMjYgMTMyLjFTNDkgMzA1LjIgNjMuMyAzMDUuMmM1LjkgMCAxMS41LTkuOSAxNS44LTI2LjggNi45IDYxLjcgMjEuMiAxMDQuMSAzOCAxMDQuMSAxMyAwIDI0LjUtMjUuNSAzMi4xLTY1LjYgNS40IDc2LjMgMTguNiAxMzAuNCAzNC4yIDEzMC40IDkuNyAwIDE4LjYtMjEuNCAyNS4zLTU2LjQgNy45IDcyLjIgMjYuMyAxMjIuNyA0Ny43IDEyMi43czM5LjUtNTAuNSA0Ny43LTEyMi43YzYuNiAzNSAxNS42IDU2LjQgMjUuMyA1Ni40IDE1LjYgMCAyOC44LTU0LjEgMzQuMi0xMzAuNCA3LjcgNDAuMSAxOS40IDY1LjYgMzIuMSA2NS42IDE2LjYgMCAzMC45LTQyLjMgMzgtMTA0LjEgNC4zIDE2LjggOS43IDI2LjggMTUuOCAyNi44IDE0LjMgMCAyNi01OS4yIDI2LTEzMi4xUzQ2MyA0MC45IDQ0OC43IDQwLjl6bTQ4LjUgNjAuMmMtOC4yIDAtMTQuOCAyNi41LTE0LjggNTkuMnM2LjYgNTkuMiAxNC44IDU5LjIgMTQuOC0yNi41IDE0LjgtNTkuMi02LjYtNTkuMi0xNC44LTU5LjJ6Il19LHU0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXNhbXBsaW5nIixpY29uOls1MTIsNTEyLFtdLCJmNGYwIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMy42IDUzLjJjMi44LS4zIDExLjUgMSAxMS41IDExLjVsNi42IDEwNy4yIDQuOS01OS4zYzAtNiA0LjctMTAuNiAxMC42LTEwLjZzMTAuNiA0LjcgMTAuNiAxMC42YzAgMi41LS41LTUuNyA1LjcgODEuNWw1LjgtNjQuMmMuMy0yLjkgMi45LTkuMyAxMC4yLTkuMyAzLjggMCA5LjkgMi4zIDEwLjYgOC45bDExLjUgOTYuNSA1LjMtMTIuOGMxLjgtNC40IDUuMi02LjYgMTAuMi02LjZsNTggMCAwIDIxLjMtNTAuOSAwLTE4LjIgNDQuM2MtMy45IDkuOS0xOS41IDkuMS0yMC44LTMuMWwtNC0zMS45LTcuNSA5Mi42Yy0uMyAzLTMgOS4zLTEwLjIgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtMS45IC42IDUuOC02LjItNzcuOWwtNS4zIDcyLjJjLTEuMSA0LjgtNC44IDkuMy0xMC42IDkuMy0yLjkgMC05LjgtMi0xMC42LTkuMyAwLTEuOSAuNSA2LjctNS44LTg3LjdMMjU1IDM4My45YzAgNi4zLTMuNiAxMi40LTEwLjYgMTIuNC01LjIgMC0xMC42LTQuMS0xMC42LTEyTDIyOCAyOTYuNmMtNS44IDkyLjUtNS4zIDg0LTUuMyA4NS45LTEuMSA0LjgtNC44IDkuMy0xMC42IDkuMy0zIDAtOS44LTIuMS0xMC42LTkuMyAwLS43LS40LTEuMS0uNC0yLjZsLTYuMi04OC42LTQuOSA1Ni43Yy0uNyA2LjUtNi43IDkuMy0xMC42IDkuMy01LjggMC05LjYtNC4xLTEwLjYtOC45TDE1Ny43IDI3MmMtMiA0LTMuNSA4LjQtMTEuMSA4LjRsLTUxLjQgMCAwLTIxLjMgNDQuOCAwIDEzLjctMjcuOWM0LjQtOS45IDE4LjItNy4yIDE5LjkgMi43bDMuMSAyMC40IDguNC05Ny45YzAtNiA0LjgtMTAuNiAxMC42LTEwLjYgLjUgMCAxMC42LS4yIDEwLjYgMTIuNGw0LjkgNjkuMSA2LjYtOTIuNmMwLTEwLjEgOS41LTEwLjYgMTAuMi0xMC42IC42IDAgMTAuNiAuNyAxMC42IDEwLjZsNS4zIDgwLjYgNi4yLTk3LjljLjEtMS4xLS42LTEwLjMgOS45LTExLjV6Il19LHA0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqZWRpLW9yZGVyIixpY29uOls0NDgsNTEyLFtdLCJmNTBlIiwiTTM5OC45IDM3My42Yzk1LjktMTIyLjEgMTcuMi0yMzMuMSAxNy4yLTIzMy4xIDQ1LjQgODUuOC00MS40IDE3MC41LTQxLjQgMTcwLjUgMTA1LTE3MS41LTYwLjUtMjcxLjUtNjAuNS0yNzEuNSA5Ni45IDcyLjctMTAuMSAxOTAuNy0xMC4xIDE5MC43IDg1LjggMTU4LjQtNjguNiAyMzAuMS02OC42IDIzMC4xcy0uNC0xNi45LTIuMi04NS43YzQuMyA0LjUgMzQuNSAzNi4yIDM0LjUgMzYuMmwtMjQuMi00Ny40IDYyLjYtOS4xLTYyLjYtOS4xIDIwLjItNTUuNS0zMS40IDQ1LjljLTIuMi04Ny43LTcuOC0zMDUuMS03LjktMzA2LjkgMCAxLTUuNiAyMTktNy45IDMwNi45bC0zMS40LTQ1LjkgMjAuMiA1NS41LTYyLjYgOS4xIDYyLjYgOS4xLTI0LjIgNDcuNCAzNC41LTM2LjJjLTEuOCA2OC44LTIuMiA4NS43LTIuMiA4NS43UzU5LjEgMzg4LjYgMTQ0LjkgMjMwLjJjMCAwLTEwNy0xMTguMS0xMC4xLTE5MC43IDAgMC0xNjUuNSA5OS45LTYwLjUgMjcxLjUgMCAwLTg2LjgtODQuOC00MS40LTE3MC41IDAgMC03OC43IDExMSAxNy4yIDIzMy4xIDAgMC0yNi4yLTE2LjEtNDkuNC03Ny43IDAgMCAxNi45IDE4My4zIDIyMiAxODUuN2w0LjEgMGMyMDUtMi40IDIyMi0xODUuNyAyMjItMTg1LjctMjMuNiA2MS41LTQ5LjkgNzcuNy00OS45IDc3Ljd6Il19LGg0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyLXByb2plY3QiLGljb246WzU3Niw1MTIsW10sImY0ZjciLCJNNTc4LjUgMjI2LjZDNTc4LjUgMTE5LjEgNDQ4LjQgMzIgMjg4IDMyUy0yLjUgMTE5LjEtMi41IDIyNi42YzAgOTUuOCAxMDMuMyAxNzUuNCAyMzkuNCAxOTEuNWwwIDYxLjkgOTkuMSAwIDAtNjEuNWMyNC4zLTIuNyA0Ny42LTcuNCA2OS40LTEzLjlsNDAuMSA3NS40IDExMiAwLTY3LjQtMTEzLjdjNTQuNS0zNS40IDg4LjQtODQuOSA4OC40LTEzOS43ek0xMTEuNyAyNDEuMWMwLTczLjUgOTguOS0xMzMgMjIwLjgtMTMzczIxMS45IDQwLjcgMjExLjkgMTMzYzAgNTAuMS0yNi41IDg1LTcwLjMgMTA2LjQtMi40LTEuNi00LjctMi45LTYuNC0zLjctMTAuMi01LjItMjcuOC0xMC41LTI3LjgtMTAuNXM4Ni42LTYuNCA4Ni42LTkyLjctOTAuNi04Ny45LTkwLjYtODcuOWwtMTk5IDAgMCAyMDguM2MtNzQuMS0yMS41LTEyNS4yLTY3LjEtMTI1LjItMTE5Ljl6bTIyNS4xIDM4LjNsMC01NS42YzU3LjggMCA4Ny44LTYuOCA4Ny44IDI3LjMgMCAzNi41LTM4LjIgMjguMy04Ny44IDI4LjN6bS0uOSA3Mi41bDI2LjYgMGMxMC44IDAgMTguOSAxMS43IDI0IDE5LjItMTYuMSAxLjktMzMgMi44LTUwLjYgMi45bDAtMjIuMXoiXX0sbTR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imluc3RhbG9kIixpY29uOls1MTIsNTEyLFtdLCJlMDgxIiwiTTE1My42IDQ4MGwyMzMuNyAwIDExNS40LTIwNC4yLTI5OC4zIDU3LjQtNTAuOCAxNDYuOHpNNTA1IDI0MC4xTDM4Ny40IDMyIDE1NS45IDMyIDM2MC41IDI2Ny45IDUwNSAyNDAuMXpNMTI0LjYgNDguOEw3LjUgMjU2IDEyMy41IDQ2MS4yIDIyNS45IDE2NS42IDEyNC42IDQ4Ljh6Il19LGc0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYW5hZGlhbi1tYXBsZS1sZWFmIixpY29uOls1MTIsNTEyLFtdLCJmNzg1IiwiTTM4My44IDM1MS43YzIuNS0yLjUgMTA1LjItOTIuNCAxMDUuMi05Mi40bC0xNy41LTcuNWMtMTAtNC45LTcuNC0xMS41LTUtMTcuNCAyLjQtNy42IDIwLjEtNjcuMyAyMC4xLTY3LjNzLTQ3LjcgMTAtNTcuNyAxMi41Yy03LjUgMi40LTEwLTIuNS0xMi41LTcuNXMtMTUtMzIuNC0xNS0zMi40LTUyLjYgNTkuOS01NS4xIDYyLjNjLTEwIDcuNS0yMC4xIDAtMTcuNi0xMCAwLTEwIDI3LjYtMTI5LjYgMjcuNi0xMjkuNnMtMzAuMSAxNy40LTQwLjEgMjIuNGMtNy41IDUtMTIuNiA1LTE3LjYtNS01LjEtNy41LTQyLjctNzkuOC00Mi43LTc5LjhzLTM3LjUgNzIuMy00Mi41IDc5LjhjLTUgMTAtMTAgMTAtMTcuNiA1LTEwLTUtNDAuMS0yMi40LTQwLjEtMjIuNFMxODMuMyAxODIgMTgzLjMgMTkyYzIuNSAxMC03LjUgMTcuNS0xNy42IDEwLTIuNS0yLjUtNTUuMS02Mi4zLTU1LjEtNjIuM3MtMTIuNSAyNy4zLTE1IDMyLjMtNSA5LjktMTIuNSA3LjVDNzMgMTc3IDI1LjQgMTY3IDI1LjQgMTY3UzQzIDIyNi43IDQ1LjUgMjM0LjNjMi40IDYgNSAxMi41LTUgMTcuNEwyMyAyNTkuM3MxMDIuNiA4OS45IDEwNS4yIDkyLjRjNS4xIDUgMTAgNy41IDUuMSAyMi41LTUuMSAxNS0xMC4xIDM1LjEtMTAuMSAzNS4xczk1LjItMjAuMSAxMDUuMy0yMi42YzguNy0uOSAxOC4zIDIuNSAxOC4zIDEyLjVTMjQxIDUxMiAyNDEgNTEybDMwIDBzLTUuOC0xMDIuNy01LjgtMTEyLjggOS41LTEzLjQgMTguNC0xMi41YzEwIDIuNSAxMDUuMiAyMi42IDEwNS4yIDIyLjZzLTUtMjAuMS0xMC0zNS4xIDAtMTcuNSA1LTIyLjV6Il19LHg0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJldGhlcmV1bSIsaWNvbjpbMzIwLDUxMixbXSwiZjQyZSIsIk0zMTEuOSAyNjAuOEwxNjAgMzUzLjYgOCAyNjAuOCAxNjAgMCAzMTEuOSAyNjAuOHpNMTYwIDM4My40TDggMjkwLjYgMTYwIDUxMiAzMTIgMjkwLjYgMTYwIDM4My40eiJdfSxiNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG91enoiLGljb246WzQ0OCw1MTIsW10sImYyN2MiLCJNMjc2IDMzMC43bC0xMDQuNiAwIDAgMTQ5LjMtMTU0LjMgMCAwLTQ0OCAxMDkuNSAwIDAgMTA0LjUgMzA1LjEgODUuNiAwIDI1Ny45LTE1NS43IDAgMC0xNDkuM3oiXX0sdjR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpYmVyIixpY29uOls1MTIsNTEyLFtdLCJmNDA5IiwiTTQ0NC4zIDQ5LjljLTEyLjctMTEuNy02NC4xLTQ5LTE3OC43LTQ5LjUgMCAwLTEzNS4xLTguMS0yMDAuOSA1Mi4zLTM2LjYgMzYuNi00OS41IDkwLjMtNTAuOSAxNTYuOHMtMy4xIDE5MS4xIDExNyAyMjQuOWwuMSAwLS4xIDUxLjZzLS44IDIwLjkgMTMgMjUuMWMxNi42IDUuMiAyNi40LTEwLjcgNDIuMy0yNy44IDguNy05LjQgMjAuNy0yMy4yIDI5LjgtMzMuNyA4Mi4yIDYuOSAxNDUuMy04LjkgMTUyLjUtMTEuMiAxNi42LTUuNCAxMTAuNS0xNy40IDEyNS43LTE0MiAxNS44LTEyOC42LTcuNi0yMDkuOC00OS44LTI0Ni41ek00NTguMiAyODdjLTEyLjkgMTA0LTg5IDExMC42LTEwMyAxMTUuMS02IDEuOS02MS41IDE1LjctMTMxLjIgMTEuMiAwIDAtNTIgNjIuNy02OC4yIDc5LTUuMyA1LjMtMTEuMSA0LjgtMTEtNS43IDAtNi45IC40LTg1LjcgLjQtODUuN2wwIDBDNDMuNCAzNzIuNyA0OS40IDI2Ni42IDUwLjUgMjExLjFzMTEuNi0xMDEgNDIuNi0xMzEuNmM1NS43LTUwLjUgMTcwLjQtNDMgMTcwLjQtNDMgOTYuOSAuNCAxNDMuMyAyOS42IDE1NC4xIDM5LjQgMzUuNyAzMC42IDUzLjkgMTAzLjggNDAuNiAyMTEuMXptLTEzOS04MC44Yy40IDguNi0xMi41IDkuMi0xMi45IC42LTEuMS0yMi0xMS40LTMyLjctMzIuNi0zMy45LTguNi0uNS03LjgtMTMuNCAuNy0xMi45IDI3LjkgMS41IDQzLjQgMTcuNSA0NC44IDQ2LjJ6bTIwLjMgMTEuM2MxLTQyLjQtMjUuNS03NS42LTc1LjgtNzkuMy04LjUtLjYtNy42LTEzLjUgLjktMTIuOSA1OCA0LjIgODguOSA0NC4xIDg3LjggOTIuNS0uMSA4LjYtMTMuMSA4LjItMTIuOS0uM3ptNDcgMTMuNGMuMSA4LjYtMTIuOSA4LjctMTIuOSAuMS0uNi04MS41LTU0LjktMTI1LjktMTIwLjgtMTI2LjQtOC41LS4xLTguNS0xMi45IDAtMTIuOSA3My43IC41IDEzMyA1MS40IDEzMy43IDEzOS4yek0zNzUuMiAzMjlsMCAuMmMtMTAuOCAxOS0zMSA0MC01MS44IDMzLjNsLS4yLS4zYy0yMS4xLTUuOS03MC44LTMxLjUtMTAyLjItNTYuNS0xNi4yLTEyLjgtMzEtMjcuOS00Mi40LTQyLjQtMTAuMy0xMi45LTIwLjctMjguMi0zMC44LTQ2LjYtMjEuMy0zOC41LTI2LTU1LjctMjYtNTUuNy02LjctMjAuOCAxNC4yLTQxIDMzLjMtNTEuOGwuMiAwYzkuMi00LjggMTgtMy4yIDIzLjkgMy45IDAgMCAxMi40IDE0LjggMTcuNyAyMi4xIDUgNi44IDExLjcgMTcuNyAxNS4yIDIzLjggNi4xIDEwLjkgMi4zIDIyLTMuNyAyNi42bC0xMiA5LjZjLTYuMSA0LjktNS4zIDE0LTUuMyAxNHMxNy44IDY3LjMgODQuMyA4NC4zYzAgMCA5LjEgLjggMTQtNS4zbDkuNi0xMmM0LjYtNiAxNS43LTkuOCAyNi42LTMuNyAxNC43IDguMyAzMy40IDIxLjIgNDUuOCAzMi45IDcgNS43IDguNiAxNC40IDMuOCAyMy42eiJdfSxKMWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2lja3N0YXJ0ZXIiLGljb246WzQ0OCw1MTIsWyJzcXVhcmUta2lja3N0YXJ0ZXIiXSwiZjNiYiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjAuOCAyMzNsLTIzLjMgMjMuMSAyMy4zIDIyLjljMjQuMSAyMy45IDI0LjEgNjMgMCA4Ni45cy02My40IDIzLjktODcuNiAwbC04LjUtOC40Yy0xMS4zIDE2LTI5LjcgMjYuNS01MC45IDI2LjUtMzQuMSAwLTYxLjktMjcuNS02MS45LTYxLjRsMC0xMzMuMmMwLTMzLjggMjcuNy02MS40IDYxLjktNjEuNCAyMS4xIDAgMzkuNiAxMC41IDUwLjkgMjYuNWw4LjUtOC40YzI0LjEtMjMuOSA2My40LTIzLjkgODcuNiAwczI0LjEgNjMgMCA4Ni45eiJdfSx5NHQ9SjFlLHc0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcG90aWZ5IixpY29uOls1MTIsNTEyLFtdLCJmMWJjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzU2LjcgMzcyLjljLTQuMiAwLTYuOC0xLjMtMTAuNy0zLjYtNjIuNC0zNy42LTEzNS0zOS4yLTIwNi43LTI0LjUtMy45IDEtOSAyLjYtMTEuOSAyLjYtOS43IDAtMTUuOC03LjctMTUuOC0xNS44IDAtMTAuMyA2LjEtMTUuMiAxMy42LTE2LjggODEuOS0xOC4xIDE2NS42LTE2LjUgMjM3IDI2LjIgNi4xIDMuOSA5LjcgNy40IDkuNyAxNi41cy03LjEgMTUuNC0xNS4yIDE1LjR6bTI2LjktNjUuNmMtNS4yIDAtOC43LTIuMy0xMi4zLTQuMi02Mi41LTM3LTE1NS43LTUxLjktMjM4LjYtMjkuNC00LjggMS4zLTcuNCAyLjYtMTEuOSAyLjYtMTAuNyAwLTE5LjQtOC43LTE5LjQtMTkuNHM1LjItMTcuOCAxNS41LTIwLjdjMjcuOC03LjggNTYuMi0xMy42IDk3LjgtMTMuNiA2NC45IDAgMTI3LjYgMTYuMSAxNzcgNDUuNSA4LjEgNC44IDExLjMgMTEgMTEuMyAxOS43LS4xIDEwLjgtOC41IDE5LjUtMTkuNCAxOS41em0zMS03Ni4yYy01LjIgMC04LjQtMS4zLTEyLjktMy45LTcxLjItNDIuNS0xOTguNS01Mi43LTI4MC45LTI5LjctMy42IDEtOC4xIDIuNi0xMi45IDIuNi0xMy4yIDAtMjMuMy0xMC4zLTIzLjMtMjMuNiAwLTEzLjYgOC40LTIxLjMgMTcuNC0yMy45IDM1LjItMTAuMyA3NC42LTE1LjIgMTE3LjUtMTUuMiA3MyAwIDE0OS41IDE1LjIgMjA1LjQgNDcuOCA3LjggNC41IDEyLjkgMTAuNyAxMi45IDIyLjYgMCAxMy42LTExIDIzLjMtMjMuMiAyMy4zeiJdfSxNNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGVhbnB1YiIsaWNvbjpbNTc2LDUxMixbXSwiZjIxMiIsIk0zODYuNiAxMTEuNWwxNS4xIDI0OS0xMS0uM2MtMzYuMi0uOC03MS42IDguOC0xMDIuNyAyOC0zMS0xOS4yLTY2LjQtMjgtMTAyLjctMjgtNDUuNiAwLTgyLjEgMTAuNy0xMjMuNSAyNy43TDkzLjIgMTI5LjZjMjguNS0xMS44IDYxLjUtMTguMSA5Mi4yLTE4LjEgNDEuMiAwIDczLjggMTMuMiAxMDIuNyA0Mi41IDI3LjctMjguMyA1OS00MS43IDk4LjUtNDIuNXpNNTY5LjIgNDQ4Yy0yNS41IDAtNDcuNS01LjItNzAuNS0xNS42LTM0LjMtMTUuNi03MC0yNS0xMDcuOS0yNS0zOSAwLTc0LjkgMTIuOS0xMDIuNyA0MC42LTI3LjctMjcuNy02My43LTQwLjYtMTAyLjctNDAuNi0zNy45IDAtNzMuNiA5LjMtMTA3LjkgMjUtMjIuMiA5LjktNDQuNyAxNS42LTY5LjIgMTUuNkw3IDQ0OCA0OS42IDk4LjljMzkuMy0yMi4yIDg3LTM0LjkgMTMyLjMtMzQuOSAzNy4xIDAgNzUuMiA3LjcgMTA2LjIgMjkuMSAzMS0yMS40IDY5LjItMjkuMSAxMDYuMi0yOS4xIDQ1LjMgMCA5MyAxMi42IDEzMi4zIDM0LjlMNTY5LjIgNDQ4em0tNDMuNC00NC43TDQ5MS44IDEyM2MtMzAuNy0xNC02Ny4yLTIxLjQtMTAxLTIxLjQtMzguNCAwLTc0LjQgMTIuMS0xMDIuNyAzOC43LTI4LjMtMjYuNi02NC4yLTM4LjctMTAyLjctMzguNy0zMy44IDAtNzAuMyA3LjQtMTAxIDIxLjRsLTM0IDI4MC4yYzQ3LjItMTkuNSA4Mi45LTMzLjUgMTM1LTMzLjUgMzcuNiAwIDcwLjggOS42IDEwMi43IDI5LjYgMzEuOC0yMCA2NS4xLTI5LjYgMTAyLjctMjkuNiA1Mi4yIDAgODcuOCAxNCAxMzUgMzMuNXoiXX0sejR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImphdmEiLGljb246WzM4NCw1MTIsW10sImY0ZTQiLCJNMjc3LjggMzEyLjljOS44LTYuNyAyMy40LTEyLjUgMjMuNC0xMi41cy0zOC43IDctNzcuMiAxMC4yYy00Ny4xIDMuOS05Ny43IDQuNy0xMjMuMSAxLjMtNjAuMS04IDMzLTMwLjEgMzMtMzAuMXMtMzYuMS0yLjQtODAuNiAxOWMtNTIuNSAyNS40IDEzMCAzNyAyMjQuNSAxMi4xem0tODUuNC0zMi4xYy0xOS00Mi43LTgzLjEtODAuMiAwLTE0NS44IDEwMy43LTgxLjggNTAuNS0xMzUgNTAuNS0xMzUgMjEuNSA4NC41LTc1LjYgMTEwLjEtMTEwLjcgMTYyLjYtMjMuOSAzNS45IDExLjcgNzQuNCA2MC4yIDExOC4yek0zMDcgMTA0LjZjLjEgMC0xNzUuMiA0My44LTkxLjUgMTQwLjIgMjQuNyAyOC40LTYuNSA1NC02LjUgNTRzNjIuNy0zMi40IDMzLjktNzIuOUMyMTYgMTg4LjEgMTk1LjQgMTY5LjMgMzA3IDEwNC42em0tNi4xIDI3MC41Yy0uNSAxLTEuMiAxLjgtMiAyLjYgMTI4LjMtMzMuNyA4MS4xLTExOC45IDE5LjgtOTcuMy0zLjMgMS4yLTYuMiAzLjQtOC4yIDYuMyAzLjYtMS4zIDcuMy0yLjMgMTEtMyAzMS02LjUgNzUuNSA0MS41LTIwLjYgOTEuNHpNMzQ4IDQzNy40czE0LjUgMTEuOS0xNS45IDIxLjJjLTU3LjkgMTcuNS0yNDAuOCAyMi44LTI5MS42IC43LTE4LjMtNy45IDE2LTE5IDI2LjgtMjEuMyAxMS4yLTIuNCAxNy43LTIgMTcuNy0yLTIwLjMtMTQuMy0xMzEuMyAyOC4xLTU2LjQgNDAuMiAyMDQuMiAzMy4yIDM3Mi40LTE0LjkgMzE5LjQtMzguOHpNMTI0LjUgMzk2Yy03OC43IDIyIDQ3LjkgNjcuNCAxNDguMSAyNC41LTkuOC0zLjgtMTkuMi04LjQtMjguMi0xMy44LTQ0LjcgOC41LTY1LjQgOS4xLTEwNiA0LjUtMzMuNS0zLjgtMTMuOS0xNS4yLTEzLjktMTUuMnptMTc5LjggOTcuMmMtNzguNyAxNC44LTE3NS44IDEzLjEtMjMzLjMgMy42IDAtLjEgMTEuOCA5LjcgNzIuNCAxMy42IDkyLjIgNS45IDIzMy44LTMuMyAyMzcuMS00Ni45IDAgMC02LjQgMTYuNS03Ni4yIDI5Ljd6TTI2MC43IDM1M2MtNTkuMiAxMS40LTkzLjUgMTEuMS0xMzYuOCA2LjYtMzMuNS0zLjUtMTEuNi0xOS43LTExLjYtMTkuNy04Ni44IDI4LjggNDguMiA2MS40IDE2OS41IDI1LjktNy44LTIuOC0xNS03LjEtMjEuMS0xMi44eiJdfSxrNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmZjLXN5bWJvbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMSIsIk0zNjAuOSAzMi40YzcuNy0xLjMgMTUuNyAuNSAyMS4yIDUgODQuMSA1OC43IDEyOS45IDEzNi4zIDEyOS45IDIxNy43IDAgODMuMS00NS44IDE2MC44LTEyOS45IDIxOS41LTQuOCA0LTExLjcgNS45LTE4LjYgNS4zLTctLjYtMTMuNS0zLjYtMTguNC04LjVMMTYxLjcgMjg4LjdjLTUuNi01LjUtOC43LTEzLTkuNi0yMC45IDAtNy44IDQtMTUuMyA5LjUtMjAuOSA1LjYtNS41IDEzLjEtOC43IDIwLjktOC43IDcuOSAwIDE1LjQgMy4xIDIwLjkgOC42TDM2OC41IDQxMS4yYzU0LjYtNDQuNyA4NC4zLTk5LjIgODQuMy0xNTYuMSAwLTYxLjYtMzYuOS0xMjIuMi0xMDMuOS0xNjkuMy02LjQtNC41LTEwLjgtMTEuNC0xMi4xLTE5LjEtMS40LTcuNyAuNC0xNS43IDUtMjIuMSA0LjUtNi40IDExLjQtMTAuOCAxOS4xLTEyLjF6bS0yMDYgNDQ3LjJjLTcuNyAxLjMtMTUuNi0uNS0yMi4xLTUtODMuMS01OC43LTEyOS0xMzYuNC0xMjktMjE5LjUgMC04MS40IDQ1LjgtMTU5IDEyOS0yMTcuNyA1LjctNCAxMi42LTUuOSAxOS42LTUuMyA2LjkgLjYgMTMuNCAzLjYgMTguMyA4LjVMMzU0LjEgMjIzLjNjNS42IDUuNSA4LjcgMTMgOC43IDIwLjkgLjEgNi45LTMgMTUuMy04LjYgMjAuOS01LjUgNS41LTEzIDguNy0yMC45IDguNy03LjggMC0xNi4yLTMuMS0yMC45LTguNkwxNDcuMyAxMDAuN2MtNTQuNiA0NS4yLTg0LjMgOTkuMi04NC4zIDE1NC40IDAgNjMuNCAzNi45IDEyNCAxMDMuMSAxNzEuMSA3LjMgNC42IDExLjYgMTEuNCAxMyAxOS4yIDEuMyA3LjctLjUgMTUuNy01IDIyLjFzLTExLjQgMTAuNy0xOS4yIDEyLjF6Il19LFM0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b2R1IixpY29uOls2NDAsNTEyLFtdLCJlMDg4IiwiTTE3OC40IDMzOS43bC0zNy4zIDAtMjguOS0xMTYuMi0uNSAwLTI4LjUgMTE2LjItMzggMC00NS4yLTE3MC44IDM3LjUgMCAyNyAxMTYuMiAuNSAwIDI5LjctMTE2LjIgMzUuMiAwIDI5LjIgMTE3LjcgLjUgMCAyOC0xMTcuNyAzNi44IDAtNDUuOSAxNzAuOHptOTMtMTI3YzM5IDAgNjQuMSAyNS44IDY0LjEgNjUuMyAwIDM5LjItMjUuMSA2NS02NC4xIDY1LTM4LjcgMC02My45LTI1LjgtNjMuOS02NSAwLTM5LjUgMjUuMS02NS4zIDYzLjktNjUuM3ptMCAxMDQuOGMyMy4yIDAgMzAuMS0xOS45IDMwLjEtMzkuNSAwLTE5LjktNi45LTM5LjctMzAuMS0zOS43LTI3LjcgMC0yOS45IDE5LjktMjkuOSAzOS43IDAgMTkuNiA2LjkgMzkuNSAyOS45IDM5LjV6bTE2My43IDYuNWwtLjUgMGMtNy45IDEzLjQtMjEuOCAxOS4xLTM3LjUgMTkuMS0zNy4zIDAtNTUuNS0zMi01NS41LTY2LjIgMC0zMy4yIDE4LjQtNjQuMSA1NC44LTY0LjEgMTQuNiAwIDI4LjkgNi4yIDM2LjggMTguNGwuMiAwIDAtNjIuMiAzNCAwIDAgMTcwLjgtMzIuMyAwIDAtMTUuOHptLTI5LjctODUuNmMtMjIuMiAwLTI5LjkgMTkuMS0yOS45IDM5LjUgMCAxOS40IDguOCAzOS43IDI5LjkgMzkuNyAyMi41IDAgMjkuMi0xOS42IDI5LjItMzkuOSAwLTIwLjEtNy4yLTM5LjItMjkuMi0zOS4yek01OTMgMzM5LjdsLTMyLjMgMCAwLTE3LjItLjcgMGMtOC42IDEzLjktMjMuNCAyMC42LTM3LjggMjAuNi0zNi4xIDAtNDUuMi0yMC4zLTQ1LjItNTAuOWwwLTc2LjEgMzQgMCAwIDY5LjhjMCAyMC4zIDYgMzAuNCAyMS44IDMwLjQgMTguNCAwIDI2LjMtMTAuMyAyNi4zLTM1LjRsMC02NC44IDM0IDAgMCAxMjMuNnptOS41LTM2LjhsMzcuNSAwIDAgMzYuOC0zNy41IDAgMC0zNi44eiJdfSxlMmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXN0ZWFtIixpY29uOls0NDgsNTEyLFsic3RlYW0tc3F1YXJlIl0sImYxYjciLCJNMTY1LjYgMzA5LjFjMTguNiA3LjcgMjcuMyAyOC45IDE5LjYgNDcuNHMtMjkgMjcuMi00Ny42IDE5LjRsLTI4LjUtMTEuOGM1IDEwLjYgMTMuOCAxOS40IDI1LjQgMjQuMiAyNS4yIDEwLjUgNTQuMS0xLjQgNjQuNi0yNi41IDUuMS0xMi4xIDUuMS0yNS41IC4xLTM3LjctNS4xLTEyLjEtMTQuNS0yMS42LTI2LjctMjYuNy0xMi4xLTUtMjUtNC44LTM2LjQtLjVsMjkuNSAxMi4yek00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDE0NC43IDExNi42IDQ4LjFjMTItOC4yIDI2LjItMTIuMSA0MC43LTExLjNsNTUuNC04MC4yIDAtMS4xYzAtNDguMiAzOS4zLTg3LjUgODcuNi04Ny41czg3LjYgMzkuMyA4Ny42IDg3LjVjMCA0OS4yLTQwLjkgODguNy04OS42IDg3LjVsLTc5IDU2LjNjMS42IDM4LjUtMjkuMSA2OC44LTY1LjcgNjguOC0zMS44IDAtNTguNS0yMi43LTY0LjUtNTIuN0wwIDMxOS4yIDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNDEuOSAxOTYuMmE1OC40IDU4LjQgMCAxIDAgMTE2LjggMCA1OC40IDU4LjQgMCAxIDAgLTExNi44IDB6bTEwMi40LS4xYTQzLjkgNDMuOSAwIDEgMSAtODcuOCAwIDQzLjkgNDMuOSAwIDEgMSA4Ny44IDB6Il19LEM0dD1lMmUsTDR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmMtZXUiLGljb246WzUxMiw1MTIsW10sImY0ZTkiLCJNMjU1LjcgOEMxMTEuNiA4IDggMTI0LjggOCAyNTYgOCAzOTIuMyAxMTkuNyA1MDQgMjU1LjcgNTA0IDM4NS45IDUwNCA1MDQgNDAzLjEgNTA0IDI1NiA1MDQgMTE3IDM5Ni40IDggMjU1LjcgOHptLjYgNDUwLjdjLTExMiAwLTIwMy42LTkyLjUtMjAzLjYtMjAyLjcgMC0yMy4yIDMuNy00NS4yIDEwLjktNjZsNjUuNyAyOS4xLTQuNyAwIDAgMjkuNSAyMy4zIDBjMCA2LjItLjQgMy4yLS40IDE5LjVsLTIyLjggMCAwIDI5LjUgMjcgMGMxMS40IDY3IDY3LjIgMTAxLjMgMTI0LjYgMTAxLjMgMjYuNiAwIDUwLjYtNy45IDY0LjgtMTUuOGwtMTAtNDYuMWMtOC43IDQuNi0yOC4yIDEwLjgtNDcuMyAxMC44LTI4LjIgMC01OC4xLTEwLjktNjcuMy01MC4ybDkwLjMgMCAxMjguMyA1Ni44Yy0xLjUgMi4xLTU2LjIgMTA0LjMtMTc4LjggMTA0LjN6TTIzOS42IDI2OC4xbC0uNS0uNCAuOSAuNC0uNCAwem03Ny4yLTE5LjVsMy43IDAgMC0yOS41LTcwLjMgMC0yOC42LTEyLjZjMi41LTUuNSA1LjQtMTAuNSA4LjgtMTQuMyAxMi45LTE1LjggMzEuMS0yMi40IDUxLjEtMjIuNCAxOC4zIDAgMzUuMyA1LjQgNDYuMSAxMGwxMS42LTQ3LjNjLTE1LTYuNi0zNy0xMi40LTYyLjMtMTIuNC0zOSAwLTcyLjIgMTUuOC05NS45IDQyLjMtNS4zIDYuMS05LjggMTIuOS0xMy45IDIwLjFMODUuNSAxNDYuNGM2NC42LTk2LjggMTU3LjctOTMuNiAxNzAuNy05My42IDExMyAwIDIwMyA5MC4yIDIwMyAyMDMuNCAwIDE4LjctMi4xIDM2LjMtNi4zIDUyLjlMMzE2LjggMjQ4LjZ6Il19LFQ0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJucG0iLGljb246WzU3Niw1MTIsW10sImYzZDQiLCJNMjg4IDI4OGwtMzIgMCAwLTY0IDMyIDAgMCA2NHpNNTc2IDE2MGwwIDE5Mi0yODggMCAwIDMyLTEyOCAwIDAtMzItMTYwIDAgMC0xOTIgNTc2IDB6TTE2MCAxOTJsLTEyOCAwIDAgMTI4IDY0IDAgMC05NiAzMiAwIDAgOTYgMzIgMCAwLTEyOHptMTYwIDBsLTEyOCAwIDAgMTYwIDY0IDAgMC0zMiA2NCAwIDAtMTI4em0yMjQgMGwtMTkyIDAgMCAxMjggNjQgMCAwLTk2IDMyIDAgMCA5NiAzMiAwIDAtOTYgMzIgMCAwIDk2IDMyIDAgMC0xMjh6Il19LF80dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbG91ZHNjYWxlIixpY29uOls0NDgsNTEyLFtdLCJmMzgzIiwiTTMxOC4xIDE1NGwtOS40IDcuNmMtMjIuNS0xOS4zLTUxLjUtMzMuNi04My4zLTMzLjYtNzEuNiAwLTEyOS40IDYwLjgtMTI5LjQgMTMyLjMgMCA2LjYgLjQgMTMuMSAxLjQgMTkuNC0yLTU2IDQxLjgtOTcuNCA5Mi42LTk3LjQgMjQuMiAwIDQ2LjIgOS40IDYyLjYgMjQuN2wtMjUuMiAyMC40Yy04LjMtLjktMTYuOCAxLjgtMjMuMSA4LjEtMTEuMSAxMS0xMS4xIDI4LjkgMCA0MCAxMS4xIDExIDI4LjkgMTEgNDAgMCA2LjMtNi4zIDktMTQuOSA4LjEtMjMuMWw3NS4yLTg4LjhjNi4zLTYuNS0zLjMtMTUuOS05LjUtOS42ek0yMTMuNyAyNDYuNWExNCAxNCAwIDEgMSAyMC42IDE5IDE0IDE0IDAgMSAxIC0yMC42LTE5ek0yMjQgMzJhMjI0IDIyNCAwIDEgMCAwIDQ0OCAyMjQgMjI0IDAgMSAwIDAtNDQ4em0wIDY0YTE2MCAxNjAgMCAxIDEgMCAzMjAgMTYwIDE2MCAwIDEgMSAwLTMyMHoiXX0sQTR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoZW1lY28iLGljb246WzQ0OCw1MTIsW10sImY1YzYiLCJNMjAyLjkgOC40YzkuOS01LjcgMjYtNS44IDM2LS4yTDQzMCAxMTUuOWMxMCA1LjYgMTggMTkuNCAxOCAzMC45TDQ0OCAzNjRjMCAxMS40LTguMSAyNS4zLTE4IDMxTDIzOC44IDUwMy43Yy05LjkgNS43LTI2IDUuNi0zNS44LS4yTDE3LjkgMzk1LjFDOCAzODkuMyAwIDM3NS40IDAgMzY0TDAgMTQ2LjdjMC0xMS40IDgtMjUuNCAxNy45LTMxLjFMMjAyLjkgOC40ek0xMjUuNSAyMDguM2MtMTUuOSAwLTMxLjkgLjEtNDcuOCAuMWwwIDEwMS40IDE5LjEgMCAwLTI5LjggMjguNyAwYzQ5LjcgMCA0OS42LTcxLjcgMC03MS43ek0yNjUuNiAzMDguNmwtMzAuNy0zNC42YzM3LTcuNSAzNC44LTY1LjItMTAuOS02NS41LTE2LjEgMC0zMi4yLS4xLTQ4LjMtLjFsMCAxMDEuNiAxOS4xIDAgMC0zMy45IDE4LjQgMCAyOS42IDMzLjkgMjIuOCAwIDAtMS4zem0tNDEuNi04Mi4zYzIzLjMgMCAyMy4zIDMyLjUgMCAzMi41bC0yOS4xIDAgMC0zMi41IDI5LjEgMHptLTk1LjYtMS42YzIxLjIgMCAyMS4xIDM4LjkgMCAzOC45bC0zMi4zIDAgMC0zOC44IDMyLjMgMHptMTkyLjYtMTguMmMtNjguNSAwLTcxIDEwNS44IDAgMTA1LjggNjkuNSAwIDY5LjQtMTA1LjggMC0xMDUuOHptMCAxNy40YzQ0LjEgMCA0NC44IDcwLjkgMCA3MC45cy00NC40LTcwLjkgMC03MC45eiJdfSwkNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXBsYXkiLGljb246WzQ0OCw1MTIsW10sImYzYWIiLCJNMjkzLjYgMjM0LjNMNzIuOSAxMyAzNTMuNyAxNzQuMiAyOTMuNiAyMzQuM3pNMTUuMyAwQzIuMyA2LjgtNi40IDE5LjItNi40IDM1LjNsMCA0NDEuM2MwIDE2LjEgOC43IDI4LjUgMjEuNyAzNS4zTDI3MS45IDI1NS45IDE1LjMgMHpNNDQwLjUgMjI1LjZsLTU4LjktMzQuMS02NS43IDY0LjUgNjUuNyA2NC41IDYwLjEtMzQuMWMxOC0xNC4zIDE4LTQ2LjUtMS4yLTYwLjh6TTcyLjkgNDk5TDM1My43IDMzNy44IDI5My42IDI3Ny43IDcyLjkgNDk5eiJdfSxENHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia29ydnVlIixpY29uOls0NDgsNTEyLFtdLCJmNDJmIiwiTTM4Ny42IDM0bC0zMjcgMEMyNy45IDM0IDEuMSA2MC44IDEuMSA5My41bDAgMzI3LjFjMCAzMi42IDI2LjggNTkuNCA1OS41IDU5LjRsMzI3LjEgMGMzMyAwIDU5LjUtMjYuOCA1OS41LTU5LjVsMC0zMjdDNDQ3LjEgNjAuOCA0MjAuMyAzNCAzODcuNiAzNHpNODguMiAxMjAuOGw5NiAwIDAgMTE2IDYxLjgtMTE2IDExMC45IDAtODEuMiAxMzItMTg3LjUgMCAwLTEzMnpNMjUwIDM5Mi45bC02NS43LTExMy42IDAgMTEzLjYtOTYgMCAwLTEzMC44IDE5MS41IDAgODguNiAxMzAuOC0xMTguNCAweiJdfSxFNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidzNjIixpY29uOls2NDAsNTEyLFtdLCJlN2RlIiwiTTEwNS4yIDMwNS4zbDMwLjktMTA0LjdjNy45LTI2LjcgOC42LTQwLjYgLjItNjguOGwtMTAuMS0zMy45IDQ0LjEgMCA2MSAyMDcuNCA0NS43LTE1NS41YzEzLjMtNDUuMyAyMS4xLTUxLjkgNTkuNC01MS45bDEzMi44IDBjLTI0LjIgNDIuOS00OS4zIDg1LjItNzMuOSAxMjcuOSAyLjYgLjggNS4yIDEuOCA3LjcgMi44IDE3LjMgNy4xIDMyLjIgMTkuNCA0MiAzNS41IDExLjIgMTguNSAxNi44IDQwLjIgMTYuOCA2NS4yIDAgMzAuOC04LjIgNTYuOC0yNC42IDc3LjgtMTQuNSAxOC42LTM1IDI5LjUtNTguMiAzMS4yIDAgLjMtNS4yIC40LTUuOCAuNC0zOS43LS4xLTcwLjgtMzIuMS04My4xLTY4LjdsNDIuOSAwYzMuNSA1LjMgNi44IDEwLjcgMTEuMiAxNS41IDguMSA3LjMgMTguNSAxMC45IDI5LjMgMTEuMSAxMy4xIDAgMjMuMy05LjEgMjkuOS0xOS44IDguMS0xMy4yIDEyLjItMjkgMTIuMi00Ny41IDAtMTMuMS0xLjgtMjQuMy01LjMtMzMuNi0uOS0yLjMtMS45LTQuNS0zLTYuNi0xLjQtMi42LTIuOS01LjEtNC43LTcuNC0xMC4xLTEzLjItMjkuMy0xOS43LTQ3LjUtMTkuOGwtMjguMiAwIDcwLjMtMTIyLTM1LjYgMGMtNDMuMSAwLTM1LjktNS40LTUwLjQgNDMuM2wtNzUuNyAyNTUuMy00LjIgMC02My4xLTIxMS4xLTYzLjEgMjExLjEtNC4yIDAtMTAxLTM0MC43IDQ0LjIgMCA2MSAyMDcuNHpNNDY3IDMzNS43Yy4zIC42IDExLjMgMjAuMyAxOC4zIDMwLjMgNy4xIDEwLjEgMTkuOCAyMC45IDI0LjggMjQuNnMxOS4xIDEyLjUgMzQuMyAxMy45YzE1LjIgMS41IDIzLjMgLjIgMzguNy02LjYgMTUuNC02LjggMjcuOS0yMC40IDM0LjktMjguMSA2LjktNy42IDE3LjktMjcuMyAxOC4yLTI3LjdsMy4zIDE2LjhjMS43IDktMSAyMy43LTQuMSAzMC00LjMgOC42LTcuNiAxMy41LTE0IDIwLjMtNi4xIDYuNS0xNi43IDEzLjUtMjEuMyAxNi40LTQuNiAyLjktMjMuMSAxNS4xLTUwLjEgMTAuM3MtNDQuNy0yNS45LTUzLjktMzguMmMtOS44LTEzLjItMTYuNy0yOC4zLTE5LTMzLjItMy44LTguNC05LjktMjguMi0xMC4xLTI4Ljh6bTE2OS43LTIxOGMzLjMgMjAuMy0uMSAyOC43LTkuMSA0NmwtMTIuNyAyNC4yYy0uMy0uNi0xMC0yMC43LTI1LjktMzEuOS0xMy42LTkuNi0yMi41LTExLjctMzYuMy04LjgtMTcuOCAzLjctMzggMjUtNDYuOCA1MS4yLTEwLjUgMzEuNC0xMC43IDQ2LjYtMTEgNjAuNi0uNiAyMi40IDIuOSAzNS42IDIuOSAzNS42cy0xNS40LTI4LjUtMTUuMi03MC4xYy4xLTI5LjcgNC44LTU2LjcgMTguNS04My4zIDEyLjEtMjMuNCAzMC4xLTM3LjQgNDYuMS0zOS4xIDE2LjUtMS43IDI5LjYgNi4zIDM5LjcgMTQuOSAxMC42IDkgMjEuMyAyOC44IDIxLjMgMjguOGwyNC45LTQ5LjggMy42IDIxLjh6Il19LE40dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJncmF2IixpY29uOls1MTIsNTEyLFtdLCJmMmQ2IiwiTTMwMi42IDIxMC42YzQuNSA0LjUgNC41IDEyLjMgMCAxNi44bC0xMCAxMGMtNC41IDQuOS0xMi4zIDQuOS0xNy4xIDBsLTEwLjgtMTAuOGMtNC41LTQuOS00LjUtMTIuMyAwLTE3LjFsMTAtMTBjNC41LTQuNSAxMi4zLTQuNSAxNy4xIDBsMTAuOCAxMS4xem0tMzEuMi0yMC4zYTcuNyA3LjcgMCAxIDAgLTEwLjYtMTEgNy43IDcuNyAwIDEgMCAxMC42IDExem0tMjYuOCA1LjVhNy41IDcuNSAwIDEgMCAxMC43IDEwLjUgNy41IDcuNSAwIDEgMCAtMTAuNy0xMC41ek0zMTkuNCAxODJjLTIwLjUtMTQuOS0zNC45LTQ0LjYtMTIuMy03MC4zIDIyLjMtMjUuNyA0Mi0xNy44IDYxLjcgLjggMTIuMyAxMS43IDMwLjIgMjUuNyAxNy44IDQ5LjgtMTIuOSAyNC4zLTQ2LjYgMzQuMy02Ny4yIDE5Ljd6bTQ5LjItNDUuOWMtOS4yLTEwLjMtMjQuMSA3LjEtMTYgMTYuNiA3LjYgOS4zIDMzLjEgMi41IDE2LTE2LjZ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTQ0My43IDQ0YzIuNi0xNi42LTIwLjktMTcuMS0yNi0yNi41LTE0LTI0LjktMjguNi0zOC01Ni4zLTMxLjQgMTItOC4zIDI0LjMtNi4zIDI0LjMtNi4zIC4zLTYuNiAwLTEzLjQtOS43LTI1LjcgNC0xMi45IC4zLTIzLjEgLjMtMjMuMSAxNi04LjkgMjcuNy0yNS4yIDMwLTQ0LjYgMy43LTMyLTE5LjQtNjEuMS01MS40LTY0LjgtMjIuOC0yLjYtNDUuMSA3LjktNTYuMSAyNi41LTIzLjkgNDEuNCAxLjQgNzMuMiAyMy4xIDg0LTE0LjktMS40LTM1LjQtMTIuMy00MS40LTM1LjQtNi44LTI2LjUgMi45LTUxLjQgOS4yLTYzLjQgMCAwLTQuNS02LTguMy05LjIgMCAwLTE0LjIgMC0yNS40IDUuNSAxMi4zLTE1LjcgMjYtMTQuOSAyNi0xNC45IDAtNi42LS42LTE1LjQtMy43LTIyLjMtNS42LTExLjQtMjQuNi0xMy4zLTMyLjcgMi45IC4xLS4yIC4zLS40IC40LS41LTUuMiAxMi4zLTEuMSA1Ny43IDE3LjQgOTAtMi42IDEuNC05LjQgNi4zLTEzLjQgMTAuMy0yMi4zIDEwLTU4IDYyLjItNTggNjIuMi0yOS4xIDExLjEtNzkuNyA1Mi41LTcyLjkgODIuMyAuMyAzLjEgMS40IDUuNyAzLjEgNy43LTIuOSAyLjMtNS43IDUuMi04LjYgOC42LTEyLjMgMTQuMi01LjUgMzYuMyAxOC4zIDI1LjIgMTYuMy03LjQgMzAuNi0yMC45IDM3LjUtMzEuNCAwIDAtNS43LTUuMi0xNi44LTQuNSAyOC42LTYuOCAzNS40LTkuNyA0Ny43LTkuNCA4LjMgNCA4LjMtMzUuNCA4LjMtMzUuNCAwLTE1LjItMi4zLTMyLTExLjUtNDIuOCAxMi45IDEyLjYgMzAgMzMuOCAyOC45IDYyLjYtLjggMTguOS0xNS43IDIzLjctMTUuNyAyMy43LTkuNCAxNy4xLTQ0LjYgNjgtMzEuNCAxMDkuNCAwIDAtMTAtMTUuNC0xMC41LTIyLjgtMTggMjAtNDggNTQtMjUuNCA2Ni42IDI3LjUgMTUuMiAxMTIuMy05MS41IDEzMC4zLTE0Ni45IDM1LjctMjEuNSA1Ny4yLTQ4LjggNjYtNjcuMSAyMi43IDQ0LjkgOTguNCA5Ny41IDEwNC40IDYwLjl6Il19LFA0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhd3MiLGljb246WzY0MCw1MTIsW10sImYzNzUiLCJNMTgwLjQgMjAzYy0uNyAyMi42IDEwLjYgMzIuNyAxMC45IDM5LS4xIDEuMy0uNiAyLjUtMS4zIDMuNnMtMS43IDItMi44IDIuNmwtMTIuOCA5Yy0xLjcgMS4yLTMuNiAxLjgtNS42IDEuOS0uNCAwLTguMiAxLjgtMjAuNS0yNS42LTcuNSA5LjQtMTcgMTYuOS0yNy45IDIycy0yMi43IDcuNy0zNC43IDcuNWMtMTYuMyAuOS02MC40LTkuMi01OC4xLTU2LjItMS42LTM4LjMgMzQuMS02Mi4xIDcwLjktNjAgNy4xIDAgMjEuNiAuNCA0NyA2LjNsMC0xNS42YzIuNy0yNi41LTE0LjctNDctNDQuOC00My45LTIuNCAwLTE5LjQtLjUtNDUuOCAxMC4xLTcuNCAzLjQtOC4zIDIuOC0xMC44IDIuOC03LjQgMC00LjQtMjEuNS0yLjktMjQuMiA1LjItNi40IDM1LjktMTguNCA2NS45LTE4LjIgMjAuMS0xLjggNDAuMSA0LjQgNTUuNyAxNy4zIDYuMyA3LjEgMTEuMiAxNS40IDE0LjIgMjQuNHM0LjIgMTguNSAzLjUgMjhsMCA2OS4zek05NCAyMzUuNGMzMi40LS41IDQ2LjItMjAgNDkuMy0zMC41IDIuNS0xMC4xIDIuMS0xNi40IDIuMS0yNy40LTkuNy0yLjMtMjMuNi00LjktMzkuNi00LjktMTUuMi0xLjEtNDIuOCA1LjYtNDEuNyAzMi4zLTEuMiAxNi44IDExLjEgMzEuNCAzMCAzMC41em0xNzAuOSAyMy4xYy03LjkgLjctMTEuNS00LjktMTIuNy0xMC40TDIwMi40IDgzLjRjLTEtMi44LTEuNi01LjYtMS45LTguNi0uMi0xLjIgLjEtMi40IC44LTMuNHMxLjgtMS42IDMtMS44Yy4yIDAtMi4xIDAgMjIuMiAwIDguOC0uOSAxMS42IDYgMTIuNiAxMC40TDI3NC45IDIyMC44IDMwOC4xIDgwYy41LTMuMiAyLjktMTEuMSAxMi44LTEwLjJsMTcuMiAwYzIuMi0uMiAxMS4xLS41IDEyLjcgMTAuNEwzODQuMSAyMjIuNyA0MjEgODAuMWMuNS0yLjIgMi43LTExLjQgMTIuNy0xMC40bDE5LjcgMGMuOS0uMSA2LjItLjggNS4zIDguNi0uNCAxLjggMy40LTEwLjctNTIuOCAxNjkuOS0xLjEgNS41LTQuOCAxMS4xLTEyLjcgMTAuNGwtMTguNyAwYy0xMC45IDEuMi0xMi41LTkuNy0xMi43LTEwLjdsLTMzLjItMTM3LjEtMzIuOCAxMzdjLS4yIDEuMS0xLjcgMTEuOS0xMi43IDEwLjdsLTE4LjMgMCAwIDB6bTI3My41IDUuNmMtNS45IDAtMzMuOS0uMy01Ny40LTEyLjMtMi4zLTEtNC4zLTIuNi01LjctNC44cy0yLjEtNC42LTIuMS03LjFsMC0xMC43YzAtOC41IDYuMi02LjkgOC44LTUuOSAxMCA0LjEgMTYuNSA3LjEgMjguOCA5LjYgMzYuNyA3LjUgNTIuOC0yLjMgNTYuNy00LjUgMTMuMi03LjggMTQuMi0yNS43IDUuMy0zNC45LTEwLjUtOC44LTE1LjUtOS4xLTUzLjEtMjEtNC42LTEuMy00My43LTEzLjYtNDMuOC01Mi40LS42LTI4LjIgMjUtNTYuMiA2OS41LTU2IDEyLjcgMCA0Ni40IDQuMSA1NS42IDE1LjYgMS40IDIuMSAyIDQuNiAxLjkgN2wwIDEwLjFjMCA0LjQtMS42IDYuNy00LjkgNi43LTcuNy0uOS0yMS40LTExLjItNDkuMi0xMC44LTYuOS0uNC0zOS45IC45LTM4LjQgMjUtLjQgMTkgMjYuNiAyNi4xIDI5LjcgMjYuOSAzNi41IDExIDQ4LjYgMTIuOCA2My4xIDI5LjYgMTcuMSAyMi4yIDcuOSA0OC4zIDQuMyA1NS40LTE5LjEgMzcuNS02OC40IDM0LjQtNjkuMyAzNC40em00MC4yIDEwNC45Yy03MCA1MS43LTE3MS43IDc5LjItMjU4LjUgNzkuMi0xMTcuMSAuOC0yMzAuMy00Mi4zLTMxNy4zLTEyMC43LTYuNS01LjktLjgtMTQgNy4yLTkuNSA5Ni41IDU1LjIgMjA1LjcgODQuMiAzMTYuOSA4NC4xIDgzLS40IDE2NS4xLTE3LjMgMjQxLjYtNDkuNSAxMS44LTUgMjEuOCA3LjggMTAuMSAxNi40em0yOS4yLTMzLjNjLTktMTEuNS01OS4zLTUuNC04MS44LTIuNy02LjggLjgtNy45LTUuMS0xLjgtOS41IDQwLjEtMjguMiAxMDUuOS0yMC4xIDExMy40LTEwLjYgNy41IDkuNS0yLjEgNzUuNC0zOS42IDEwNi45LTUuOCA0LjktMTEuMyAyLjMtOC43LTQuMSA4LjQtMjEuMyAyNy40LTY4LjUgMTguNC04MHoiXX0sSTR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdsaWRlLWciLGljb246WzQ0OCw1MTIsW10sImYyYTYiLCJNNDA3LjEgMjExLjJjLTMuNS0xLjQtMTEuNi0zLjgtMTUuNC0zLjgtMzcuMSAwLTYyLjIgMTYuOC05My41IDM0LjVsLS45LS45YzctNDcuMyAyMy41LTkxLjkgMjMuNS0xNDAuNCAwLTcxLjUtMzguMi0xMDAuNi0xMDguNC0xMDAuNi0xMTUuMSAwLTE3My40IDExMy43LTE3My40IDE5OC40IDAgODcuOSA1MS4zIDEzNi42IDEzOC42IDEzNi42IDEyIDAgMTEtMSAxMSAzLjgtMTYuOSAxMjguOS05MC44IDEzMy4xLTkwLjggOTQuNiAwLTM5LjIgNDUtNTguNiA0NS41LTYxLS4zLTEyLjItNDctMjcuNi01OC45LTI3LjYtMzMuOSAuMS01Mi40IDUxLjItNTIuNCA3OS4zIDAgNTEuOSAzMi44IDg3LjkgODUuNSA4Ny45IDc3LjQgMCAxMzQtNzcuOCAxNTEuNC0xNDUuNCAxNS4xLTYwLjUgMTEuMi02My4zIDE5LjctNjcuNiAzMi4yLTE2LjIgNTcuNS0yNyA5My44LTI3IDE3LjggMCAzMC41IDMuNyA1OC45IDguNCAyLjkgMCA2LjctMi45IDYuNy01LjggMC04LTMzLjQtNjAuNS00MC45LTYzLjR6TTIzMS44IDEyNi44Yy05LjMgNDQuNy0xOC42IDg5LjYtMjcuOCAxMzQuMy0yLjMgMTAuMi0xMy4zIDcuOC0yMiA3LjgtMzguMyAwLTQ5LTQxLjgtNDktNzMuMSAwLTQ3IDE4LTEwOS4zIDYxLjgtMTMzLjQgNy00LjEgMTQuOC02LjcgMjIuNi02LjcgMTguNiAwIDIwIDEzLjMgMjAgMjguNy0uMSAxNC4zLTIuNyAyOC41LTUuNiA0Mi40eiJdfSxGNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianNmaWRkbGUiLGljb246WzU3Niw1MTIsW10sImYxY2MiLCJNNTExLjEgMjM3LjVjLTQuNy0yLjYtNS43LTUuNy02LjQtMTAuOC0yLjQtMTYuNS0zLjUtMzMuNi05LjEtNDkuMS0zNS45LTEwMC0xNTQtMTQzLjQtMjQ2LjgtOTEuNi0yNy40IDE1LjItNDkgMzYuNC02NS41IDYzLjktMy4yLTEuNS01LjUtMi43LTcuOC0zLjctMzAuMS0xMi40LTU5LTEwLjEtODUuMyA5LjItMjUuNSAxOC43LTM2LjQgNDQuNS0zMi43IDc2LjQgLjQgMy0yIDcuNi00LjUgOS41LTM5LjcgMzAtNTYgNzguMS00MS45IDEyNC42IDEzLjggNDUuNiA1Ny41IDc5LjggMTA1LjYgODEuNCAzMC4zIDEgNjAuNiAuNSA5MSAuNSA4NCAwIDE2OC4xIC41IDI1Mi4xLS41IDUyLjctLjYgOTYuMS0zNi45IDEwOC4yLTg3LjMgMTEuNS00OC4xLTExLjEtOTcuMy01Ni44LTEyMi42em0yMS4xIDE1Ni45Yy0xOC4yIDIyLjQtNDIuMyAzNS4zLTcxLjMgMzUuNy01Ni45IC44LTExMy44IC4yLTE3MC43IC4yIDAgLjctMTYzIC4yLTE2My43IC4yLTQzLjktLjMtNzYuNy0xOS44LTk1LjItNjAtMTguOS00MS4yLTQtOTAuOCAzNC4yLTExNi4xIDkuMi02LjEgMTIuNS0xMS42IDEwLjEtMjMuMS01LjUtMjYuNCA0LjUtNDggMjYuNC02MyAyMy0xNS43IDQ3LjQtMTYuMSA3Mi0zLjEgMTAuMyA1LjQgMTQuNiAxMS42IDIyLjItMi41IDE0LjItMjYuNCAzNC42LTQ2LjcgNjAuNy02MS4zIDk3LjUtNTQuNCAyMjguNCA3LjYgMjMwLjIgMTMyLjcgLjEgOC4yIDIuNCAxMi40IDkuOCAxNS45IDU3LjYgMjYuOCA3NC41IDk2LjEgMzUuMSAxNDQuNXptLTg3LjgtODAuNWMtNS44IDMxLjItMzQuNiA1NS4xLTY2LjcgNTUuMS0xNyAwLTMyLjEtNi41LTQ0LjEtMTcuNy0yNy43LTI1LjctNzEuMS03NS05NS45LTkzLjQtMjAuMS0xNC45LTQyLTEyLjMtNjAuMyAzLjgtNTAgNDQuMSAxNS45IDEyMS44IDY3LjEgNzcuMiA0LjUtNCA3LjgtOS41IDEyLjctMTIuOCA4LjItNS41IDIwLjgtLjkgMTMuMiAxMC42LTE3LjQgMjYuMy00OS4zIDM4LjItNzguOSAyOS4zLTI4LjktOC43LTQ4LjgtMzYtNDguNi03MC4yIDEuMi0yMi41IDEyLjQtNDMuMSAzNS40LTU2IDIyLjYtMTIuNiA0Ni40LTEzLjEgNjcgMi41IDUwLjggMzguNSA3NS42IDgxLjcgMTA3LjMgMTAxLjIgMjQuNiAxNS4xIDU0LjMgNy40IDY4LjgtMTcuNSAyOC44LTQ5LjItMzQuNi0xMDUtNzguOS02My41LTQgMy43LTYuOSA4LjktMTEuNCAxMS43LTExIDYuOC0xNy4zLTQuMS0xMi44LTEwLjQgMjAuNy0yOC42IDUwLjUtNDAuNCA4My4zLTI4LjIgMzEuNCAxMS43IDQ5LjEgNDQuNCA0Mi44IDc4LjJ6Il19LE80dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrZXliYXNlIixpY29uOls0NDgsNTEyLFtdLCJmNGY1IiwiTTI4Ni4yIDQxOWExOCAxOCAwIDEgMCAwIDM2IDE4IDE4IDAgMSAwIDAtMzZ6TTM5OC4xIDI3MS40Yy05LjUtMTQuNi0zOS40LTUyLjQtODcuMy03My43LTYuMS0yLjctMTIuMi01LjEtMTguNC03LjMgNC4xLTkuOSA2LTIwLjYgNS44LTMxLjRzLTIuNy0yMS4zLTcuMi0zMS4xLTEwLjktMTguNS0xOC45LTI1LjctMTcuNC0xMi42LTI3LjYtMTZjLTEyLjQtNC4xLTIzLjMtNi0zMi40LTUuOC0uNi0yLTEuOS0xMSA5LjQtMzVsLTIyLjktMTMuNS01LjUgNy42Yy04LjcgMTIuMS0xNi45IDIzLjYtMjQuMyAzNC45LTIuNy0uNi01LjUtMS4xLTguMy0xLjItNDEuNS0yLjQtMzktMi4zLTQxLjEtMi4zLTUwLjYgMC01MC44IDUyLjEtNTAuOCA0NS45bC0yLjQgMzYuN2MtMS42IDI3IDE5LjggNTAuMiA0Ny42IDUxLjhsOC45IC41QzEwNiAyMTUuNSA5MC40IDIyNy41IDc2LjYgMjQxLjQgMTQgMzA0LjcgMTQgMzc0IDE0IDQyOS44bDAgMzMuNiAyMy4zLTI5LjhjMy4xIDEzLjEgOCAyNS44IDE0LjYgMzcuNiA1LjggMTAuMSAxNC45IDkuNCAxOS42IDcuMyA0LjItMS45IDEwLTYuOSAzLjgtMjAuMS04LTE2LjgtMTMuMy0zNC43LTE1LjgtNTMuMWw0Ni44LTU5LjgtMjQuNyA3NC4xYzU4LjItNDIuNCAxNTcuNC02MS44IDIzNi4yLTM4LjYgMzQuMiAxMC4xIDY3LjQgLjcgODQuNy0yMy44IC43LTEgMS4yLTIuMiAxLjgtMy4yIDEuOCA5LjQgMi43IDE4LjkgMi44IDI4LjQgMCAyMy4zLTMuNyA1Mi45LTE0LjkgODEuNi0yLjUgNi41IDEuOCAxNC41IDguNiAxNS43IDcuNCAxLjYgMTUuMy0zLjEgMTguNC0xMS4xIDkuNi0yNS41IDE0LjYtNTQuNiAxNC42LTg2LjIgMC0zOC42LTEzLTc3LjUtMzUuOS0xMTAuOXpNMTQyLjQgMTI4LjZsLTE1LjctLjktMS40IDIxLjggMTMuMSAuOGMtLjYgNi41LS41IDEzLjEgLjMgMTkuNmwtMjIuNC0xLjNjLTEuNi0uMS0zLjItLjUtNC43LTEuMXMtMi44LTEuNi0zLjktMi44LTEuOS0yLjYtMi41LTQuMS0uOC0zLjEtLjctNC43TDEwNyAxMTljMS0xMi4yIDEzLjktMTEuMyAxMy4zLTExLjNsMjkuMSAxLjdjLTIuOCA2LjItNS4xIDEyLjYtNyAxOS4yek0yOTAuOCAzMDAuOGMtMi4xIDEuNi00LjggMi40LTcuNSAyLjJzLTUuMS0xLjUtNi45LTMuNWwtOS43LTExLjUtMzQuNCAyN2MtMS42IDEuMy0zLjcgMS45LTUuOCAxLjdzLTQtMS4yLTUuMy0yLjhsLTE1LjgtMTguNmMtMS4yLTEuNi0xLjctMy41LTEuNS01LjRzMS4zLTMuNyAyLjgtNC45bDM0LjYtMjcuMi0xNC4xLTE2LjctMTcuMSAxMy41Yy0xLjYgMS4yLTMuNSAxLjgtNS41IDEuNnMtMy44LTEuMS01LjEtMi42YzAgMC0zLjctNC40LTMuOC00LjUtMS4yLTEuNi0xLjctMy41LTEuNS01LjVzMS4zLTMuNyAyLjgtNC45TDIxNCAyMjUuMnMtMTguNS0yMi0xOC42LTIyLjFjLS44LTEtMS4zLTIuMS0xLjctMy4zcy0uNC0yLjUtLjMtMy43IC42LTIuNCAxLjItMy41IDEuNS0yIDIuNS0yLjhjMi4xLTEuNyA0LjgtMi40IDcuNC0yLjJzNS4xIDEuNSA2LjkgMy42bDgxLjEgOTYuM2MuOCAxIDEuMyAyLjEgMS43IDMuM3MuNCAyLjUgLjMgMy43LS42IDIuNS0xLjIgMy41LTEuNSAyLjEtMi41IDIuOHpNMTg3LjQgNDE5YTE4IDE4IDAgMSAwIDAgMzYgMTggMTggMCAxIDAgMC0zNnoiXX0sQjR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imx1bW9uLWRyb3AiLGljb246WzU3Niw1MTIsW10sImU3ZTMiLCJNNDgwIDMyYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCA1My00MyA5Ni05NiA5Nkw5NiA0NDhjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmwzODQgMHpNMzAyLjQgMTE0LjdjLTkuOC0xNi40LTIwLjUtMTYuNC0yOS42IDBsLTY4LjkgMTE0Yy0xMC43IDE1LjYtMTYuNCAzMi44LTE2LjQgNTIuNSAwIDUwLjkgNDQuMyA5NC4zIDEwMC4xIDk0LjMgNTUgMCAxMDAuOS00My41IDEwMC45LTk0LjMgMC0xOS43LTYuNi0zNy44LTE3LjItNTIuNWwtNjguOS0xMTR6Il19LFI0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWVibHkiLGljb246WzUxMiw1MTIsW10sImY1Y2MiLCJNNDI1LjEgNjUuOGMtMzkuOSAwLTczLjMgMjUuNy04My43IDY0LjMtMTguMi01OC4xLTY1LjUtNjQuMy04NS02NC4zLTE5LjggMC02Ni44IDYuMy04NS4zIDY0LjMtMTAuNC0zOC42LTQzLjQtNjQuMy04My43LTY0LjMtNDkgMC04Ny41IDMzLjktODcuNSA3Ny4yIDAgMjkgNC4yIDMzLjMgNzcuMiAyMzMuNSAyMi40IDYwLjYgNjcuOCA2OS40IDkyLjcgNjkuNCAzOS4yIDAgNzAtMTkuNSA4NS45LTU0IDE1LjkgMzQuOCA0Ni43IDU0LjMgODUuOSA1NC4zIDI1IDAgNzAuNC05LjEgOTIuNy02OS43IDc2LjYtMjA4LjYgNzcuNS0yMDUuNiA3Ny41LTIyNy4yIC42LTQ4LjMtMzYtODMuNS04Ni45LTgzLjV6bTI2LjMgMTE0LjhMMzg1LjkgMzU3LjFjLTcuOSAyMS41LTIxLjIgMzcuMi00Ni4yIDM3LjItMjMuNCAwLTM3LjQtMTIuNC00NC0zMy45bC0zOS4zLTExNy40LTEgMC0zOS4zIDExNy40Yy03IDIxLjUtMjAuOSAzMy42LTQ0IDMzLjYtMjUgMC0zOC4zLTE1LjctNDYuMi0zNy4yTDYwLjkgMTgxLjZjLTUuNC0xNC44LTcuOS0yMy45LTcuOS0zNC41IDAtMTYuMyAxNS44LTI5LjQgMzguMy0yOS40IDE4LjcgMCAzMiAxMS44IDM2LjEgMjkuMWw0NCAxMzkuOCAxIDAgNDQuNy0xMzYuOGM2LTE5LjcgMTYuNS0zMi4xIDM5LTMyLjFzMzIuOSAxMi4xIDM5IDMyLjFsNDQuNyAxMzYuOCAxIDAgNDQtMTM5LjhjNC4xLTE3LjIgMTcuNC0yOS4xIDM2LjEtMjkuMSAyMi4yIDAgMzguMyAxMy4zIDM4LjMgMzUuNy0uMyA3LjktNC4xIDE2LTcuNiAyNy4yeiJdfSxINHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZG9ja2VyIixpY29uOls2NDAsNTEyLFtdLCJmMzk1IiwiTTM0OS45IDIzNi4zbC02Ni4xIDAgMC01OS40IDY2LjEgMCAwIDU5LjR6bTAtMjA0LjNsLTY2LjEgMCAwIDYwLjcgNjYuMSAwIDAtNjAuN3ptNzguMiAxNDQuOGwtNjYuMSAwIDAgNTkuNCA2Ni4xIDAgMC01OS40ek0yNzEuOCAxMDQuN2wtNjYuMSAwIDAgNjAuMSA2Ni4xIDAgMC02MC4xem03OC4xIDBsLTY2LjEgMCAwIDYwLjEgNjYuMSAwIDAtNjAuMXptMjc2LjggMTAwYy0xNC40LTkuNy00Ny42LTEzLjItNzMuMS04LjQtMy4zLTI0LTE2LjctNDQuOS00MS4xLTYzLjdsLTE0LTkuMy05LjMgMTRjLTE4LjQgMjcuOC0yMy40IDczLjYtMy43IDEwMy44LTguNyA0LjctMjUuOCAxMS4xLTQ4LjQgMTAuN2wtNDM0LjcgMGMtOC43IDUwLjggNS44IDExNi44IDQ0IDE2Mi4xIDM3LjEgNDMuOSA5Mi43IDY2LjIgMTY1LjQgNjYuMiAxNTcuNCAwIDI3My45LTcyLjUgMzI4LjQtMjA0LjIgMjEuNCAuNCA2Ny42IC4xIDkxLjMtNDUuMiAxLjUtMi41IDYuNi0xMy4yIDguNS0xNy4xbC0xMy4zLTguOXpNMTE1LjYgMTc2LjhsLTY2IDAgMCA1OS40IDY2LjEgMCAwLTU5LjQtLjEgMHptNzguMSAwbC02Ni4xIDAgMCA1OS40IDY2LjEgMCAwLTU5LjR6bTc4LjEgMGwtNjYuMSAwIDAgNTkuNCA2Ni4xIDAgMC01OS40em0tNzguMS03Mi4xbC02Ni4xIDAgMCA2MC4xIDY2LjEgMCAwLTYwLjF6Il19LHE0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYWdlbnRvIixpY29uOls0NDgsNTEyLFtdLCJmM2M0IiwiTTQ0NS45IDEyNy45bDAgMjU2LjEtNjMuNCAzNi41IDAtMjU1LjgtMTU4LjUtOTEuNi0xNTguNiA5MS42IC40IDI1NS45LTYzLjMtMzYuNiAwLTI1NS45IDIyMS45LTEyOC4xIDIyMS41IDEyNy45ek0yNTUuOCA0MjAuNWwtMzEuNiAxOC40LTMxLjgtMTguMiAwLTI1Ni02My4zIDM2LjYgLjEgMjU1LjkgOTQuOSA1NC45IDk1LjEtNTQuOSAwLTI1Ni02My40LTM2LjYgMCAyNTUuOXoiXX0sVjR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdC1hbHQiLGljb246WzQ0OCw1MTIsW10sImY4NDEiLCJNNDM5LjYgMjM2LjFMMjQ0IDQwLjVDMjM4LjYgMzUgMjMxLjIgMzIgMjIzLjYgMzJzLTE1IDMtMjAuNCA4LjRsLTQwLjcgNDAuNiA1MS41IDUxLjVjMjcuMS05LjEgNTIuNyAxNi44IDQzLjQgNDMuN2w0OS43IDQ5LjdjMzQuMi0xMS44IDYxLjIgMzEgMzUuNSA1Ni43LTI2LjUgMjYuNS03MC4yLTIuOS01Ni0zNy4zbC00Ni4zLTQ2LjMgMCAxMjEuOWMyNS4zIDEyLjUgMjIuMyA0MS44IDkuMSA1NS02LjQgNi40LTE1LjIgMTAuMS0yNC4zIDEwLjFzLTE3LjgtMy42LTI0LjMtMTAuMWMtMTcuNi0xNy42LTExLjEtNDYuOSAxMS4yLTU2bDAtMTIzYy0yMC44LTguNS0yNC42LTMwLjctMTguNi00NUwxNDIuNiAxMDEgOC41IDIzNS4xQzMgMjQwLjYgMCAyNDcuOSAwIDI1NS41czMgMTUgOC41IDIwLjRMMjA0LjEgNDcxLjZjNS40IDUuNCAxMi43IDguNCAyMC40IDguNHMxNS0zIDIwLjQtOC40TDQzOS42IDI3Ni45YzUuNC01LjQgOC40LTEyLjggOC40LTIwLjRzLTMtMTUtOC40LTIwLjR6Il19LFU0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJlZm94LWJyb3dzZXIiLGljb246WzUxMiw1MTIsW10sImUwMDciLCJNMTMwLjIgMTI3LjVsMCAwem0zNTEuNCA0NS40Yy0xMC42LTI1LjUtMzIuMS01My00OC45LTYxLjcgMTMuNyAyNi45IDIxLjcgNTMuOSAyNC43IDc0IDAgLjEgMCAuMyAuMSAuNC0yNy42LTY4LjgtNzQuNC05Ni41LTExMi42LTE1Ni44LTE1LTIzLjctMTAuOS0yNS4yLTEzLjEtMjQuN2wtLjEgLjFjLTQ2LjcgMjYtNzUuMyA3OC40LTgyLjYgMTIyLjctMTYuNiAuOS0zMi45IDUtNDcuOSAxMi4xLTEuNCAuNi0yLjUgMS43LTMuMSAzcy0uOSAyLjgtLjYgNC4zYy4yIC44IC42IDEuNiAxLjEgMi4zczEuMiAxLjMgMS45IDEuNyAxLjYgLjcgMi40IC44IDEuNyAwIDIuNS0uM2wuNS0uMmMxNS41LTcuMyAzMi40LTExLjIgNDkuNS0xMS4zIDYyLjgtLjYgOTcuMiA0NCAxMDcuNiA2Mi4zLTEzLTkuMi0zNi40LTE4LjItNTguOC0xNC4zIDg3LjcgNDMuOSA2NC4yIDE5NC41LTU3LjQgMTg5LjItNTkuNS0yLjYtOTcuMS01MS0xMDAuNS05MC44IDAgMCAxMS4yLTQxLjkgODAuNi00MS45IDcuNSAwIDI4LjktMjAuOSAyOS4zLTI3LS4xLTItNDIuNS0xOC45LTU5LjEtMzUuMi04LjgtOC43LTEzLjEtMTIuOS0xNi44LTE2LjEtMi0xLjctNC4xLTMuMy02LjMtNC44LTUuNi0xOS41LTUuOC00MC0uNy01OS42LTI1LjEgMTEuNC00NC42IDI5LjQtNTguNyA0NS40bC0uMSAwYy05LjctMTIuMi05LTUyLjYtOC40LTYxLjEtLjEtLjUtNy4yIDMuNy04LjIgNC4zLTguNiA2LjEtMTYuNSAxMi45LTIzLjggMjAuNC0xNi4zIDE2LjYtNDQuMSA1MC4yLTU1LjUgMTAxLjItNC41IDIwLjQtNi44IDQ0LjQtNi44IDUyLjMgMCAxMzQuNyAxMDkuMiAyNDMuOSAyNDMuOSAyNDMuOSAxMjAuNiAwIDIyMy04Ny4yIDI0MC40LTIwMi42IDExLjYtNzYuNy0xNC43LTEzMS4xLTE0LjctMTMyeiJdfSxqNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRzbWl0aCIsaWNvbjpbNTEyLDUxMixbXSwiZjM4NCIsIk01MTIgMjI3LjZMNTEyIDI4NC41IDI4NC40IDUxMiAyMjcuNiA1MTIgMCAyODQuNCAwIDIyNy42IDIyNy42IDAgMjg0LjUgMCA1MTIgMjI3LjZ6bS0yNTYgMTYyYzE3LjggLjUgMzUuNi0yLjYgNTIuMi05LjFzMzEuOC0xNi4yIDQ0LjYtMjguNyAyMy0yNy4zIDI5LjktNDMuOCAxMC41LTM0LjEgMTAuNS01Mi0zLjYtMzUuNS0xMC41LTUyLTE3LjEtMzEuMy0yOS45LTQzLjgtMjgtMjIuMi00NC42LTI4LjctMzQuNC05LjYtNTIuMi05LjFjLTE3LjgtLjUtMzUuNiAyLjYtNTIuMiA5LjFzLTMxLjggMTYuMy00NC42IDI4LjctMjMgMjcuMy0yOS45IDQzLjgtMTAuNSAzNC4xLTEwLjUgNTIgMy42IDM1LjUgMTAuNSA1MiAxNy4xIDMxLjMgMjkuOSA0My44IDI4IDIyLjIgNDQuNiAyOC43IDM0LjQgOS42IDUyLjIgOS4xeiJdfSxXNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2l6YXJkcy1vZi10aGUtY29hc3QiLGljb246WzY0MCw1MTIsW10sImY3MzAiLCJNMjE5LjIgMzQ1LjdjLTEuOSAxLjQtMTEuMSA4LjQtLjMgMjMuNiA0LjYgNi40IDE0LjEgMTIuOCAyMS43IDYuNiA2LjUtNC45IDcuNC0xMi45IC4zLTIzLTUuNS03LjgtMTQuMy0xMi45LTIxLjctNy4xem0zMzYuOCA3NS45Yy0uMyAxLjctLjYgMS43IC44IDAgMi4xLTQuMiA0LjItMTAuMiA1LTE5LjkgMy4xLTM4LjUtNDAuMy03MS41LTEwMS4zLTc4LTU0LjctNi0xMjQuNCA5LjItMTg4LjggNjAuNWwtLjMgMS42YzIuNiA1IDUgMTAuNyAzLjQgMjEuMmwuOCAuM2M2My45LTU4LjQgMTMxLjItNzcuMiAxODQuNC03My44IDU4LjQgMy43IDEwMCAzNCAxMDAgNjguMSAwIDEwLTIuNiAxNS43LTMuOSAyMC4yek0zOTIuMyAyNDAuNGMuOCA3LjEgNC4yIDEwLjIgOS4yIDEwLjUgNS41IC4zIDkuNC0yLjYgMTAuNS02LjYgLjgtMy40IDIuMS0yOS44IDIuMS0yOS44UzQwMi44IDIyMSAzOTkuMSAyMjVjLTMuNyAzLjctNy4zIDguNC02LjggMTUuNXptLTUwLTE1MS4xYy0yMDQuNSAwLTMyOS4yIDEzNy41LTM0MS41IDE1MS45LTEgLjUtMS4zIC44IC44IDEuMyA2MC41IDE2LjUgMTU1LjggODEuMiAxOTYuMSAyMDIuMmwxIC4zYzU1LjItNjkuOSAxNDAuOS0xMjguMSAyMzctMTI4LjEgODAuOSAwIDEzMC4yIDQyLjIgMTMwLjIgODAuNCAwIDE4LjMtNi42IDMzLjUtMjIuMyA0Ni4zIDAgMS0uMiAuOCAuOCAuOCAxNC43LTEwLjcgMjcuNS0yOC44IDI3LjUtNDguMiAwLTIyLjgtMTIuMS0zOC4yLTEyLjEtMzguMiA3LjEgNy4xIDEwLjcgMTYuMiAxMC43IDE2LjIgNS44LTQwLjkgMjctNjIuMyAyNy02Mi4zLTIuNC05LjctNi44LTE3LjgtNi44LTE3LjggNy42IDguMSAxNC40IDI3LjUgMTQuNCA0MS40IDAgMTAuNS0zLjQgMjIuOC0xMi42IDMxLjlsLjMgLjVjOC4xLTUgMTYuNS0xNi44IDE2LjUtMzggMC0xNS43LTQuNy0yNS45LTQuNy0yNS45IDUuOC01LjIgMTEuMy05LjIgMTYtMTEuOCAuOCAzLjQgMi4xIDkuNyAyLjQgMTQuOSAwIDEgLjggMS44IDEgMCAuOC01LjgtLjMtMTYuMi0uMy0xNi41IDYtMy4xIDkuNy00LjUgOS43LTQuNS0xNS43LTExMC4zLTE0NC0xOTYuOS0yOTEuMi0xOTYuOXpNMjQzIDM3OC45Yy0xMS4xIDktMjQuMiA0LjEtMzAuNi00LjItNy40LTkuNi02LjgtMjQuMSA0LjItMzIuNSAxNC44LTExLjQgMjcuMS0uNSAzMS4yIDUuNSAuMyAuNCAxMi4xIDE2LjYtNC43IDMxLjJ6bTIuMS0xMzYuNGw5LjQtMTcuOCAxMS44IDcxLTEyLjYgNi0yNC42LTI4LjggMTQuMS0yNi43IDMuNyA0LjQtMS44LTguMXptMTguNiAxMTcuNmwtLjMtLjNjMi00LjEtMi41LTYuNi0xNy41LTMxLjctMS4zLTIuNC0zLjEtMi45LTQuNC0yLjZsLS4zLS41YzcuOS01LjggMTUuNC0xMC4yIDI1LjQtMTUuN2wuNSAuM2MxLjMgMS44IDIuMSAyLjkgMy40IDQuN2wtLjMgLjVjLTEtLjMtMi40LS44LTUuMiAuMy0yLjEgLjgtNy45IDMuNy0xMi4zIDcuNmwwIDEuM2MxLjYgMi40IDMuOSA2LjYgNS44IDkuN2wuMyAwYzEwLTYuMyA3LjYtNC41IDExLjUtNy45bC4zIDBjLjUgMS44IC41IDEuOCAxLjggNS41bC0uMyAuM2MtMy4xIC42LTQuNyAuMy0xMS41IDUuNWwwIC4zYzkuNSAxNyAxMSAxNi44IDEyLjYgMTZsLjMgLjNjLTIuMyAxLjYtNi4zIDQuMi05LjcgNi42ek0zMTkgMzI3LjZjLTMuMSAxLjYtNiAyLjktMTAgNWwtLjMtLjNjMS4zLTIuNiAxLjItMi43LTExLjgtMzIuNWwtLjMtLjNjLS4yIDAtOC45IDMuNy0xMCA3LjNsLS41IDAtMS01LjggLjMtLjVjNy4zLTQuNiAyNS41LTExLjYgMjcuOC0xMi42bC41IC4zIDMuMSA1LS4zIC41Yy0zLjUtMS44LTcuNCAuOC0xMi4zIDIuNmwwIC4zYzEyLjMgMzIgMTIuNyAzMC42IDE0LjcgMzAuNmwwIC4yem00NC44LTE2LjVjLTQuMiAxLTUuMiAxLjMtOS43IDIuOWwtLjMtLjMgLjUtNC41Yy0xLTMuNC0zLjEtMTEuNS0zLjctMTMuNmwtLjMtLjNjLTMuNCAuOC04LjkgMi42LTEyLjggMy45bC0uMyAuM2MuOCAyLjYgMy4xIDkuOSA0LjIgMTMuOSAuOCAyLjQgMS44IDIuOSAyLjkgMy4xbDAgLjVjLTMuNyAxLTcuMSAyLjYtMTAuMiAzLjlsLS4zLS4zYzEtMS4zIDEtMi45IC4zLTUtMS0zLjEtOC4xLTIzLjgtOS4yLTI3LjItLjUtMS44LTEuNi0zLjEtMi42LTMuMWwwLS41YzMuMS0xIDYtMi4xIDEwLjctMy40bC4zIC4zLS4zIDQuN2MxLjMgMy45IDIuNCA3LjYgMy4xIDkuN2wuMyAwYzMuOS0xLjMgOS40LTIuOSAxMi44LTMuOWwuMy0uMy0yLjYtOS40Yy0uNS0xLjgtMS0zLjQtMi42LTMuOWwwLS4zYzQuNC0xIDcuMy0xLjggMTAuNy0yLjRsLjMgLjNjLTEgMS4zLTEgMi45LS41IDQuNCAxLjYgNi4zIDQuNyAyMC40IDYuMyAyNi41IC41IDIuNiAxLjggMy40IDIuNiAzLjl6bTMyLjItNi44bC0uMyAuM2MtNC43IC41LTE0LjEgMi40LTIyLjUgNC4ybC0uMy0uMyAuOC00LjJjLTEuNi03LjktMy40LTE4LjYtNS0yNi4yLS4zLTEuOC0uOC0yLjktMi42LTMuN2wuOC0uNWM5LjItMS42IDIwLjItMi40IDI0LjktMi42bC4zIC4zYy41IDIuNCAuOCAzLjEgMS42IDUuNWwtLjMgLjNjLTEuMS0xLjEtMy4zLTMuMi0xNi4yLS44bC0uMyAuM2MuMyAxLjYgMSA2LjYgMS42IDkuOWwuMyAuM2M5LjUtMS43IDQuOC0uMSAxMC43LTIuNGwuMyAwYzAgMS42LS4zIDEuOC0uMyA1LjJsLS4zIDBjLTQuOC0xLTIuMi0uOS0xMC4yIDBsLS4zIC4zYy4zIDIuMSAxLjYgOS40IDIuMSAxMi42bC4zIC4zYzEuMiAuNCAxNC4yLS42IDE2LjItNC43bC4zIDBjLS41IDIuNC0xIDQuMi0xLjYgNnptMTAuNy00NC41Yy00LjUgMi40LTguMSAyLjktMTEgMi45LS4yIDAtMTEuNCAxLjEtMTcuNS0xMC02LjctMTAuOC0xLTI1LjIgNS41LTMxLjcgOC44LTguMSAyMy40LTEwLjEgMjguNS0xNyA4LTEwLjMtMTMtMjIuMy0yOS42LTUuOGwtMi42LTIuOSA1LjItMTYuMmMyNS42LTEuNiA0NS4yLTMgNTAgMTYuMiAuOCAzLjEgMCA5LjQtLjMgMTIuMSAwIDIuNi0xLjggMTguOC0yLjEgMjMtLjUgNC4yLS44IDE4LjMtLjggMjAuNyAuMyAyLjQgLjUgNC4yIDEuNiA1LjUgMS42IDEuOCA1LjggMS44IDUuOCAxLjhsLS44IDQuN2MtMTEuOC0xLjEtMTAuMy0uNi0yMC40LTEtMy4yLTUuMS0yLjItMy4zLTQuMi03LjkgMCAwLTQuMiAzLjktNy4zIDUuNXpNNDQzLjkgMjgxYy02LjQtMTAuNi0xOS44LTcuMi0yMS43IDUuNS0yLjYgMTcuMSAxNC4zIDE5LjggMjAuNyAxMC4ybC4zIC4zYy0uNSAxLjgtMS44IDYtMS44IDYuM2wtLjUgLjVjLTEwLjMgNi45LTI4LjUtMi41LTI1LjctMTguNiAxLjktMTAuOSAxNC40LTE4LjkgMjguOC05LjlsLjMgLjVjMCAxLjEtLjMgMy40LS4zIDUuM3ptNS44LTg3LjdsMC02LjZjLjcgMCAxOS42IDMuMyAyNy44IDcuM2wtMS42IDE3LjVzMTAuMi05LjQgMTUuNC0xMC43YzUuMi0xLjYgMTQuOSA3LjMgMTQuOSA3LjNsLTExLjMgMTEuM2MtMTIuMS02LjQtMTkuNi0uMS0yMC43IC44LTUuMyAzOC43LTguNiA0Mi4yIDQuNCA0Ni4xbC0uNSA0LjdjLTE3LjYtNC4zLTE4LjUtNC41LTM2LjktNy4zbC44LTQuN2M3LjMgMCA3LjUtNS4zIDcuNi02LjggMCAwIDUtNTMuMiA1LTU1LjMgMC0yLjktNS0zLjctNS0zLjd6bTExIDExNC40Yy04LjEtMi4xLTE0LjEtMTEtMTAuNy0yMC43IDMuMS05LjQgMTIuMy0xMi4zIDE4LjktMTAuMiA5LjIgMi42IDEyLjggMTEuOCAxMC43IDE5LjQtMi42IDguOS05LjQgMTMuOS0xOC45IDExLjV6bTQyLjIgOS43Yy0yLjQtLjUtNy4xLTIuNC04LjYtMi45bDAtLjMgMS42LTEuOGMuNi04LjIgLjYtNy4zIC4zLTcuNi00LjgtMS44LTYuNy0yLjQtNy4xLTIuNC0xLjMgMS44LTIuOSA0LjUtMy43IDUuNWwtLjggMy40IDAgLjNjLTEuMy0uMy0zLjktMS4zLTYtMS42bDAtLjMgMi42LTEuOGMzLjQtNC43IDEwLTE0LjEgMTMuOS0yMC4ybDAtMi4xIC41LS4zYzIuMSAuOCA1LjUgMi4xIDcuNiAyLjkgLjUgLjUgLjItMS45LTEgMjUuMS0uMiAxLjggMCAyLjYgLjggMy45em0tNC43LTg5LjhjMTEuMy0xOC4zIDMwLjgtMTYuMiAzNC0zLjRsNy42LTI2LjJjMi4zLTYuMi0yLjgtOS45LTQuNS0xMS4zbDEuOC0zLjdjMTIuMiAxMC40IDE2LjQgMTQgMjIuNSAyMC40LTI1LjkgNzMuMS0zMC44IDgwLjgtMjQuNiA4NC4zbC0xLjggNC40Yy02LjQtMy4zLTguOS00LjQtMTcuOC04LjZsMi4xLTYuOGMtLjMtLjMtMy45IDMuOS05LjcgMy43LTE5LjEtMS4zLTIyLjktMzEuNy05LjctNTIuOXptMjkuMyA3OS4zYzAtNS43LTYuMy03LjktNy45LTUuMi0xLjMgMi4xIDEgNSAyLjkgOC40IDEuNiAyLjYgMi42IDYuMyAxIDkuNC0yLjYgNi4zLTEyLjQgNS4zLTE1LjQtLjggMC0uNy0uMyAuMSAxLjgtNC43bC44LS4zYy0uNiA1LjcgNi4xIDkuNiA4LjQgNSAxLTIuMS0uNS01LjUtMi4xLTguNC0xLjYtMi42LTMuNy02LjMtMS44LTkuNyAyLjctNS4xIDExLjMtNC41IDE0LjcgMi40bDAgLjUtMi40IDMuNHptMjEuMiAxMy40Yy0yLTMuMy0uOS0yLjEtNC41LTQuN2wtLjMgMGMtMi40IDQuMi01LjggMTAuNS04LjYgMTYuMi0xLjMgMi40LTEgMy40LS44IDMuOWwtLjMgLjMtNS44LTQuNCAuMy0uMyAyLjEtMS4zYzMuMS01LjggNi42LTEyLjEgOS4yLTE3bDAtLjNjLTIuNi0yLTEuMi0xLjUtNi0xLjhsMC0uMyAzLjEtMy40IC4zIDBjMy43IDIuNCAxMCA2LjggMTIuMyA4LjlsLjMgLjMtMS4zIDMuOXpNNTc1LjggMjc2bC0yLjktMi45Yy44LTIuNCAxLjgtNSAyLjEtNy42IC43LTkuNy0xMS41LTExLjgtMTEuNS01IDAgNSA3LjkgMTkuNCA3LjkgMjcuOCAwIDEwLjItNS44IDE1LjctMTMuOSAxNi41LTguNCAuOC0yMC4yLTEwLjUtMjAuMi0xMC41bDUtMTQuNCAyLjkgMi4xYy0zIDE3LjggMTcuNyAyMC40IDEzLjMgNS4yLTEuMS00LTE4LjctMzQuMiAyLjEtMzguMiAxMy42LTIuNCAyMyAxNi41IDIzIDE2LjVMNTc1LjggMjc2em0zNS42LTEwLjJjLTExLTMwLjQtNjAuNS0xMjcuNS0xOTItMTI5LjYtNTMuNC0xLTk0LjMgMTUuNC0xMzIuOCAzOGw4NS42LTkuMi05MS40IDIwLjcgMjUuMSAxOS42LTMuOS0xNi41YzcuNS0xLjcgMzkuMS04LjUgNjYuOC04LjlsLTIyLjMgODAuNGMxMy42LS43IDE5LTkgMTkuNi0yMi44bDUtMSAuMyAyNi43Yy0yMi41IDMuMi0zNy4zIDYuNy00OS41IDkuOWwxMy4xLTQzLjItNjEuNS0zNi43IDIuNCA4LjEgMTAuMiA1YzYuMyAxOC42IDE5LjQgNTYuNiAyMC40IDU4LjcgMiA0LjMgMy4yIDUuOCAxMiA0LjVsMS4xIDVjLTE2LjEgNC45LTIzLjcgNy42LTM5IDE0LjRsLTIuNC00LjdjNC40LTIuOSA4LjctMy45IDUuNS0xMi44LTIzLjctNjIuNS0yMS41LTU4LjEtMjIuOC01OS40bDIuNC00LjQgMzMuNSA2Ny4zYy0zLjgtMTEuOSAxLjcgMS43LTMzLTc4LjhsLTQxLjkgODguNSA0LjctMTMuOS0zNS45LTQyLjIgMjcuOCA5My41LTExLjggOC40Yy0xMTEuOS0xMDEuNy0xMDUuOC05OC40LTExMy43LTk4LjctNS41LS4zLTEzLjYgNS41LTEzLjYgNS41bC01LTZjMzAuNi0yMy41IDMxLjYtMjQuMyA1OC40LTQyLjdsNC4yIDcuMXMtNS44IDQuMi03LjkgNy4xYy01LjkgOS4zIDEuNyAxMy4zIDYxLjggNzUuN2wtMTguOC01OC45IDM5LjgtMTAuMiAyNS43IDMwLjYgNC40LTEyLjMtNS0yNC42IDEzLjEtMy40IC41IDMuMSAzLjctMTAuNS05NC4zIDI5LjMgMTEuMy01LTEzLjYtNDIuNCAxNy4zLTkuMiAzMC4xIDM2LjEgMjguNS0xMy4xYy0xLjQtNy41LTIuNS0xNC41LTQuNy0xOS42bDE3LjMgMTMuOSA0LjctMi4xLTU5LjItNDIuNyAyMy4xIDExLjVjMTktNi4xIDI1LjItNy41IDMyLjItOS43bDIuNiAxMWMtMTIuNiAxMi42IDEuNCAxNi44IDYuNSAxOS40bC0xMy42LTYxIDEyIDI4LjNjNC4yLTEuMyA3LjMtMi4xIDcuMy0yLjFsMi42IDguNnMtMy4xIDEtNi4zIDIuMWw4LjkgMjEgMzMuOC02NS43LTIwLjcgNjFjNDIuNC0yNC4xIDgxLjQtMzYuNyAxMzItMzUuOSA2NyAxIDE2Ny4zIDQwLjggMTk5LjggMTM5LjggLjggMi4xIDAgMi42LS44IC4zem0tNDA4LTExMy40czEuOC0uNSA0LjItMS4zbDkuNCA3LjZjLS40IDAtMy40LS4zLTExLjMgMi40bC0yLjQtOC42em0xNDMuOCAzOC41Yy0xLjYtLjYtMjYuNS00LjgtMzMuMyAyMC43bDIxLjcgMTcgMTEuNS0zNy43ek0zMTguNCA2Ny4xYy01OC40IDAtMTA2LjEgMTItMTE1IDE0LjRsMCAuOGM4LjQgMi4xIDE0LjQgNC4yIDIxLjIgMTEuOGwxLjYgLjNjNi42LTEuOCA0OS0xMy45IDExMC4yLTEzLjkgMTgwLjIgMCAzMDEuNyAxMTYuOCAzMDEuNyAyMjMuNGwwIDEwYzAgMS4zIC44IDIuNiAxLjEgLjUgLjUtMi4xIC44LTguNiAuOC0xOS42IC4zLTgzLjgtOTYuNi0yMjcuNi0zMjEuNi0yMjcuNnpNNTI5LjUgMjM2LjhjMS4zLTUuOCAwLTEyLjMtNy4zLTEzLjEtOS42LTEuMS0xNi4xIDIzLjgtMTcgMzMuNS0uOCA1LjUtMS4zIDE0LjkgNiAxNC45IDQuNyAwIDkuNy0uOSAxOC4zLTM1LjR6TTQ2OCAyNzkuN2MtMi42LS44LTkuNC0uOC0xMi42IDEwLjUtMS44IDYuOCAuNSAxMy40IDYgMTQuNyAzLjcgMS4xIDguOSAuNSAxMS44LTEwLjcgMi42LTkuOS0xLjgtMTMuNi01LjItMTQuNHptMjMgMjFjMS44IC41IDMuMSAxIDUuOCAxLjggMC0xLjggLjUtOC40IC44LTEyLjEtMSAxLjMtNS41IDguMS02LjYgMTBsMCAuM3oiXX0sRzR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmQiLGljb246WzUxMiw1MTIsW10sImY0ZWIiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem05NCAxNDQuM2wwIDQyLjUtMTgwLjMgMCAwLTQyLjUgMTgwLjMgMHptMCA3OS44bDAgNDIuNS0xODAuMyAwIDAtNDIuNSAxODAuMyAweiJdfSxZNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNwcyIsaWNvbjpbNTEyLDUxMixbXSwiZjdlMSIsIk00MjguMyAyNDEuN2MyNS44LTQxLjMgMTUuMi00OC44LTExLjctNDguOGwtMjcgMGMtLjEgMC0xLjUtMS40LTEwLjkgOC0xMS4yIDUuNi0zNy45IDYuMy0zNy45IDguNyAwIDQuNSA3MC4zLTMuMSA4OC4xIDAgOS41IDEuNS0xLjUgMjAuNC00LjQgMzItLjUgNC41IDIuNCAyLjMgMy44IC4xek0zMTYuMiAyNjQuM2M2NC0yMS4zIDk3LjMtMjMuOSAxMDItMjYuMiA0LjQtMi45LTQuNC02LjYtMjYuMi01LjgtNTEuNyAyLjItMTM3LjYgMzcuMS0xNzIuNiA1My45bC0zMC43LTkzLjMgMTk2LjYgMGMtMi43LTI4LjItMTUyLjktMjIuNi0zMzcuOS0yMi42TC01IDQxNS44YzE5Ni40LTk3LjMgMjU4LjktMTMwLjMgMzIxLjItMTUxLjV6TTYyLjcgOTZjMjUzLjMgNTMuNyAzMzAgNjUuNyAzMzIuMSA4NS4yIDM2LjQgMCA0NS45IDAgNTIuNCA2LjYgMjEuMSAxOS43LTE0LjYgNjcuNy0xNC42IDY3LjctNC40IDIuOS00MDYuNCAxNjAuMi00MDYuNCAxNjAuMkw0NDkuMyA0MTUuNyA1MTcgOTYgNjIuNyA5NnoiXX0sWjR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1sZXR0ZXJib3hkIixpY29uOls0NDgsNTEyLFtdLCJlNjJlIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTEwNS4xIDE4N0M2Ni40IDE4NyAzNSAyMTguMyAzNSAyNTdzMzEuNCA3MCA3MC4xIDcwYzI0LjggMCA0Ni41LTEyLjggNTktMzIuMmwuNS0uNy0uNC0uNmMtNi41LTEwLjYtMTAuMi0yMy4xLTEwLjItMzYuNSAwLTEzLjYgMy45LTI2LjMgMTAuNi0zNy4xLTEyLjQtMTkuOC0zNC40LTMyLjktNTkuNS0zMi45ek0yMjQgMTg3Yy0yNC44IDAtNDYuNSAxMi44LTU5IDMyLjJsLS41IC43IC40IC42YzYuNSAxMC42IDEwLjIgMjMuMSAxMC4yIDM2LjUgMCAxMy42LTMuOSAyNi4zLTEwLjYgMzcuMSAxMi40IDE5LjcgMzQuNCAzMi45IDU5LjUgMzIuOSAyNC44IDAgNDYuNS0xMi44IDU5LTMyLjJsLjUtLjctLjQtLjZjLTYuNS0xMC42LTEwLjItMjMuMS0xMC4yLTM2LjUgMC0xMy42IDMuOS0yNi4zIDEwLjYtMzcuMS0xMi40LTE5LjctMzQuNC0zMi45LTU5LjUtMzIuOXptMTE4LjkgMGMtMjQuOCAwLTQ2LjUgMTIuOC01OSAzMi4ybC0uNSAuNyAuNCAuNmM2LjUgMTAuNiAxMC4yIDIzLjEgMTAuMiAzNi41IDAgMTMuNi0zLjkgMjYuMy0xMC42IDM3LjEgMTIuNCAxOS44IDM0LjQgMzIuOSA1OS41IDMyLjkgMzguNyAwIDcwLjEtMzEuMyA3MC4xLTcwcy0zMS40LTcwLTcwLjEtNzB6Il19LFg0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYW5kYWxvcmlhbiIsaWNvbjpbMzg0LDUxMixbXSwiZjUwZiIsIk0yMDAuNiA1MTEuOWMtMS0zLjMtMS43LTE1LjgtMS40LTI0LjYgLjYtMTUuOSAxLTI0LjcgMS40LTI4LjggLjYtNi4yIDIuOS0yMC43IDMuMy0yMS40IC42LTEgLjQtMjcuOS0uMi0zMy4xLS4zLTIuNi0uNi0xMS45LS43LTIwLjctLjEtMTYuNS0uNS0yMC4xLTIuNy0yNC44LTEuMS0yLjMtMS4yLTMuOC0xLTExLjQgLjItNC4yIC4xLTguNS0uMy0xMi43LTItMTMtMy41LTI3LjctMy4yLTMzLjlzLjQtNy4xIDIuMS05LjdjMy4xLTQuNyA2LjUtMTQgOC42LTIzLjMgMi4zLTkuOSAzLjktMTcuMiA0LjYtMjAuNyAxLjEtNS4xIDIuNi0xMC4xIDQuNC0xNS4xIDIuMy02LjIgMi41LTE1LjQgLjQtMTUuNC0uMyAwLTEuNCAxLjItMi40IDIuN3MtNC44IDQuOC04LjMgNy40Yy04LjQgNi4xLTExLjcgOS40LTEyLjcgMTIuNnMtMSA3LjItLjIgNy44Yy4zIC4yIDEuMyAyLjQgMi4xIDQuOSAxLjYgNSAxLjkgMTAuMyAuNyAxNS40LS40IDEuOC0xIDUuNS0xLjUgOC4ycy0xIDYuNS0xLjMgOC4yYy0uMiAxLjUtLjcgMy0xLjUgNC4zLTEgMS0xLjEgLjktMi4xLS41LS43LTEuNS0xLjItMy4xLTEuNC00LjctLjItMS43LTEuNi03LjEtMy4xLTExLjktMy4zLTEwLjktMy41LTE2LjItMS0yMSAuOC0xLjQgMS40LTMgMS43LTQuNiAwLTIuNC0yLjItNS4zLTcuNC05LjktNy02LjItOC42LTcuOS0xMC4yLTExLjMtMS43LTMuNi0zLjEtNC4xLTQuNS0xLjUtMS44IDMtMi42IDkuMS0zIDIybC0uMyAxMi4yIDIgMi4yYzMuMiAzLjcgMTIuMSAxNi41IDEzLjggMTkuOCAzLjQgNi43IDQuMyAxMS43IDQuNCAyMy42czEgMjIuOCAyIDI0LjdjLjQgLjcgLjUgMS40IC4zIDEuNXMuNCAyLjEgMS4zIDQuM2MxIDIuOSAxLjcgNS45IDIuMSA5IC40IDMuNSAuOSA3IDEuNyAxMC40IDIuMiA5LjYgMi44IDE0LjEgMi40IDIwLjEtLjIgMy4zLS41IDExLjEtLjcgMTcuMy0xLjMgNDEuOC0xLjggNTgtMiA2MS4yLS4xIDItLjQgMTEuNS0uNiAyMS4xLS40IDE2LjMtMS4zIDI3LjQtMi40IDI4LjYtLjYgLjctOC4xLTQuOS0xMi41LTkuNS0zLjgtMy45LTQtNC44LTIuOC05LjkgLjctMyAyLjMtMTguMyAzLjMtMzIuNiAuNC00LjggLjgtMTAuNSAxLTEyLjcgLjgtOS40IDEuNy0yMC4zIDIuNi0zNC44IC42LTguNSAxLjMtMTYuNCAxLjctMTcuN3MuOS05LjkgMS4xLTE5LjFsLjQtMTYuOC0yLjMtNC4zYy0xLjctMy4zLTQuOS02LjktMTMuMi0xNS4zLTYtNi4xLTExLjgtMTIuMy0xMi45LTEzLjhsLTItMi44IC44LTEwLjljMS4xLTE1LjcgMS4xLTQ4LjYgMC01OS4xbC0uOS04LjctMy4zLTQuNWMtNS45LTguMS01LjgtNy43LTYuMi0zMy4zLS4xLTYuMS0uNC0xMS41LS42LTEyLjEtLjgtMS45LTMtMi43LTguNS0zLTguOS0uNi0xMS0xLjktMjMuOC0xNC42LTYuMi02LTEyLjMtMTItMTMuOC0xMy4yLTIuOC0yLjQtMi44LTItLjYtOS42bDEuNC00LjYtMS43LTNjLS44LTEuNC0xLjYtMi44LTIuNi00LjEtMS4zLTEuNS01LjUtMTAuOS02LTEzLjUtLjItLjctLjItMS40LS4xLTIuMXMuNS0xLjMgLjktMS44YzIuMi0yLjkgMy40LTUuNyA0LjUtMTAuNyAyLjMtMTEuMiA3LjctMjYuMSAxMC42LTI5LjIgMy4yLTMuNSA3LjctMSA5LjQgNSAxLjMgNC44IDEuNCA5LjggLjEgMTguNi0uNSAzLjctLjkgNy40LTEgMTEuMSAwIDQgLjIgNC43IDIuMyA3LjQgMy4zIDQuNCA3LjcgNy40IDE1LjIgMTAuNSAxLjcgLjcgMy4zIDEuNyA0LjcgMi44IDExLjIgMTAuNyAxOC42IDE2LjIgMjIuOSAxNi45IDUuMiAuOCA4IDQuNSAxMCAxMy40IDEuMyA1LjcgNCAxMS4xIDUuNSAxMS4xIDEuMi0uMiAyLjMtLjcgMy4zLTEuNCAyLTEuMiAyLjItMS43IDIuMi00LjItLjMtNi0uOS0xMS45LTItMTcuOC0uNC0xLjctLjgtNC4xLS45LTUuNHMtLjYtMy44LTEtNS43Yy0yLjYtMTEuMi0zLjYtMTUuNS00LjEtMTYtMS42LTItNC4xLTEwLjItNC45LTE1LjktMS42LTExLjEtNC0xNC4yLTEyLjktMTcuNC00LjktMS44LTkuNC00LjUtMTMuMy03LjktMS4yLTEtNC0zLjItNi40LTUuMXMtNC40LTMuNS00LjYtMy44Yy0uOC0uNy0xLjctMS40LTIuNy0yLTYuMi00LjItOC44LTctMTEuMy0xMmwtMi40LTVjLS4xLTguNy0uMy0xNy4zLS40LTI2bDYuOS02LjZjNC0zLjggOC41LTcuNCAxMC42LTguNCAzLjMtMS43IDQuNC0xLjkgMTEuNC0yIDguNS0uMiAxMC4xIDAgMTEuNyAxLjZzMS40IDYuNC0uMyA4LjVjLS42IC43LTEuMSAxLjUtMS4zIDIuMyAwIC42LTIuNiA0LjktNS40IDktMS4xIDIuMi0xLjkgNC41LTIuNCA2LjggMjAuNCAxMy40IDIxLjYgMy44IDE0LjEgMjlsMTEuNCAyLjVjMy4xLTguNyA2LjUtMTcuMyA4LjYtMjYuMiAuMy03LjYtMTItNC4yLTE1LjQtOC43LTIuMy01LjkgMy4xLTE0LjIgNi4xLTE5LjIgMS42LTIuMyA2LjYtNC43IDguOC00LjEgLjkgLjIgNC4yLS40IDcuNC0xLjMgMi41LS44IDUtMS4zIDcuNS0xLjcgMi0uMiA0LjEtLjcgNi0xLjMgMy43LTEuMSA0LjUtMS4yIDYuMy0uNCAxLjkgLjYgMy44IDEuMSA1LjggMS40IDIuMSAuMyA0LjEgLjkgNiAxLjkgMS42IC45IDMuMyAxLjcgNSAyLjIgMi41IC43IDMgLjYgNy0xLjdMMjI2IDUuNCAyMzYuNyA1YzEwLjQtLjQgMTAuOC0uNSAxNS4zLTIuN0wyNTYuNSAwIDI1OSAxLjRjMS44IDEgMy4xIDIuNyA0LjkgNiAyLjQgNC41IDIuNCA0LjYgMS40IDcuNC0uOSAyLjQtLjkgMy4zLS4xIDYuNCAuNSAyIDEuMiA0IDIuMSA1LjkgLjYgMS4zIDEuMSAyLjYgMS4zIDQgLjMgNC4zIDAgNS4zLTIuNCA2LjktMi4yIDEuNS03IDcuOS03IDkuMy0uMiAxLS42IDItMS4xIDMtNSAxMS41LTYuOCAxMy42LTE0LjMgMTctOS4yIDQuMi0xMi4zIDUuMi0xNi4yIDUuMi0zLjEgMC00IC4yLTQuNSAxLjMtMS4yIDEuNC0yLjUgMi43LTQuMSAzLjctMS44IDEuMi0zLjMgMi45LTQuNCA0LjgtLjUgMS4yLTEuNCAyLjItMi41IDIuOS0uOSAuNC0xLjggMS0yLjUgMS43LTIuMiAxLjktNC42IDMuNy03IDUuNC0zLjMgMi4zLTYuOSA1LTcuOSA2LS43IC43LTEuNSAxLjMtMi40IDEuNy0uOCAuNC0xLjYgLjktMi4xIDEuNi0xLjMgMS40LTEuNSAyLjEtMS4xIDQuNiAuMyAyIC44IDQgMS40IDUuOSAxLjMgMy44IDEuMyA3LjkgMCAxMC42cy0uOSA2LjcgMS40IDkuNmMyIDIuNiAyLjIgNC42IC43IDguOC0uOCAyLjktMS4xIDUuOS0xLjEgOC45IDAgNC45IC4yIDYuMyAxLjUgOC40czEuOCAyLjUgMy4yIDIuM2MyLS4yIDIuMy0xLjEgNC43LTEyLjEgMi4yLTEwIDMuNy0xMS45IDEzLjgtMTcuMSAyLjktMS41IDcuNS00IDEwLTUuNHM2LjgtMy43IDkuNC00LjljNS45LTIuNiAxMS4yLTYuNiAxNS4yLTExLjcgNy4xLTguOCAxMC0xNi4yIDEyLjgtMzMuMyAuNC0yLjggMS4zLTUuNCAyLjktNy43IDEuNC0yLjIgMi40LTQuNyAyLjktNy4zIDEtNS4zIDIuOS05LjEgNS42LTExLjUgNC43LTQuMiA2LTEuMSA0LjYgMTAuOS0uNSAzLjktMS4xIDEwLjMtMS40IDE0LjRsLS42IDcuNGMzIDIuNyA1LjkgNS41IDguOSA4LjJsLjEgOC40Yy4xIDQuNiAuNSA5LjUgLjkgMTAuOWwuOCAyLjUtNi40IDYuM2MtOC41IDguMy0xMi45IDEzLjktMTYuOCAyMS42LTEuOCAzLjUtMy43IDcuMS00LjQgOC0yLjIgMy4xLTYuNSAxMy04LjggMjAuM2wtMi4zIDcuMi03IDYuNWMtMy44IDMuNi04IDcuMi05LjIgOC4yLTMgMi4zLTQuMyA1LjEtNC4zIDEwLS4xIDIuNSAuNCA1IDEuNiA3LjMgLjggMS42IDEuNSAzLjIgMi4xIDQuOCAuMyAxIC45IDIgMS42IDIuOSAxLjQgMS42IDEuOSAxNi4xIC44IDIzLjItLjcgNC41LTMuNiAxMi00LjcgMTItMS44IDAtNC4xIDkuMy01LjEgMjAuNy0uMiAyLS42IDUuOS0xIDguN3MtMSAxMC0xLjQgMTZjLS44IDEyLjItLjIgMTguOCAyIDIzLjIgMy40IDYuNyAuNSAxMi43LTExIDIyLjhsLTQgMy41IC4xIDUuMmMuMSAzIC40IDYgMS4xIDguOSA0LjYgMTYgNC43IDE2LjkgNC40IDM3LjEtLjUgMjYuNC0uMyA0MC4zIC42IDQ0LjIgLjUgMi4zIC45IDQuNiAxLjEgNyAuMiAyIC43IDUuMyAxLjEgNy40IC41IDIuMyAuOCAxMSAuOCAyMi43bDAgMTkuMS0xLjggMi42Yy0yLjcgMy45LTE1LjEgMTMuNS0xNS41IDEyLjNsLjEgMHptMjkuNS00NS4xYy0uMi0uMy0uMy02LjktLjMtMTQuNiAwLTE0LjEtLjktMjcuNS0yLjMtMzQuNC0uNC0yLS44LTkuNy0uOS0xNy4xLS4yLTExLjktMS40LTI0LjQtMi42LTI2LjQtLjctMS4xLTMtMTcuNy0zLTIxLjMgMC00LjIgMS02IDUuMy05LjFzNC45LTMuMSA1LjUtLjdjLjMgMS4xIDEuNCA1LjYgMi42IDEwIDMuOSAxNS4xIDQuMSAxNi4zIDQgMjEuNy0uMSA1LjgtLjEgNi4xLTEuNyAxNy43LTEgNy4xLTEuMiAxMi40LTEgMjguNCAuMiAxOS40LS42IDM1LjctMiA0MS4zLS43IDIuOC0yLjggNS41LTMuNCA0LjRsLS4xIDB6bS03MS0zNy42Yy0uOC0zLjYtMS4zLTcuMi0xLjctMTAuOHMtMS03LjItMS43LTEwLjhjLS41LTIuMS0uOS00LjMtMS02LjUtLjMtMy4yLS45LTcuNS0xLjMtOS41LTEtNC44LTMuMy0xOS40LTMuNC0yMS4xIDAtLjctLjMtNC0uNy03LjQtLjctNi4yLS44LTI3LjctLjItMjguMyAxLTEgNi42IDIuOCAxMS4zIDcuNGw1LjMgNS4zLS40IDYuNWMtLjIgMy42LS42IDEwLjItLjggMTQuOC0uNSAxMy4zLS43IDguNy0xLjYgMjguNC0uOCAxNy40LTEuOSAzMS4zLTIuNiAzMi0uMSAuMS0uMiAuMS0uMiAuMnMtLjIgMC0uMyAwLS4yIDAtLjMtLjEtLjEtLjEtLjItLjJsMCAwek03MiAxNjIuNmMyMS4xIDEyLjggMTcuOCAxNC4yIDI4LjUgMTcuNyAxMyA0LjMgMTguOSA3LjEgMjMuMiAxNi45LTQzLjcgMzYuMS02OSA1Ny45LTc2LjcgNzAuOS0zMSA1Mi02IDEwMS42IDYyLjggODcuMi0xNC4yIDI5LjItNzggMjguNi05OC43LTQuOS0yNC43LTQwLTIyLjEtMTE4LjMgNjEtMTg3LjdsMCAwem0yMTAuOCAxNzljNTYuNyA2LjkgODIuMy0zNy43IDQ2LjUtODkuMiAwIDAtMjYuOS0yOS4zLTY0LjMtNjggMy0xNS41IDkuNS0zMi4xIDMwLjYtNTMuOCA4OS4yIDYzLjUgOTIgMTQxLjYgOTIuNSAxNDkuNCA0LjMgNzAuNi03OC43IDkxLjItMTA1LjMgNjEuN2wwIDB6Il19LHQyZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzbGFjayIsaWNvbjpbNDQ4LDUxMixbNjI0NDcsInNsYWNrLWhhc2giXSwiZjE5OCIsIk05NC4xIDMxNS4xYzAgMjUuOS0yMS4yIDQ3LjEtNDcuMSA0Ny4xUzAgMzQxIDAgMzE1LjEgMjEuMiAyNjggNDcuMSAyNjhsNDcuMSAwIDAgNDcuMXptMjMuNyAwYzAtMjUuOSAyMS4yLTQ3LjEgNDcuMS00Ny4xUzIxMiAyODkuMiAyMTIgMzE1LjFsMCAxMTcuOGMwIDI1LjktMjEuMiA0Ny4xLTQ3LjEgNDcuMXMtNDcuMS0yMS4yLTQ3LjEtNDcuMWwwLTExNy44em00Ny4xLTE4OWMtMjUuOSAwLTQ3LjEtMjEuMi00Ny4xLTQ3LjFTMTM5IDMyIDE2NC45IDMyIDIxMiA1My4yIDIxMiA3OS4xbDAgNDcuMS00Ny4xIDB6bTAgMjMuN2MyNS45IDAgNDcuMSAyMS4yIDQ3LjEgNDcuMVMxOTAuOCAyNDQgMTY0LjkgMjQ0TDQ3LjEgMjQ0QzIxLjIgMjQ0IDAgMjIyLjggMCAxOTYuOXMyMS4yLTQ3LjEgNDcuMS00Ny4xbDExNy44IDB6bTE4OSA0Ny4xYzAtMjUuOSAyMS4yLTQ3LjEgNDcuMS00Ny4xUzQ0OCAxNzEgNDQ4IDE5Ni45IDQyNi44IDI0NCA0MDAuOSAyNDRsLTQ3LjEgMCAwLTQ3LjF6bS0yMy43IDBjMCAyNS45LTIxLjIgNDcuMS00Ny4xIDQ3LjFTMjM2IDIyMi44IDIzNiAxOTYuOWwwLTExNy44QzIzNiA1My4yIDI1Ny4yIDMyIDI4My4xIDMyczQ3LjEgMjEuMiA0Ny4xIDQ3LjFsMCAxMTcuOHptLTQ3LjEgMTg5YzI1LjkgMCA0Ny4xIDIxLjIgNDcuMSA0Ny4xUzMwOSA0ODAgMjgzLjEgNDgwIDIzNiA0NTguOCAyMzYgNDMyLjlsMC00Ny4xIDQ3LjEgMHptMC0yMy43Yy0yNS45IDAtNDcuMS0yMS4yLTQ3LjEtNDcuMVMyNTcuMiAyNjggMjgzLjEgMjY4bDExNy44IDBjMjUuOSAwIDQ3LjEgMjEuMiA0Ny4xIDQ3LjFzLTIxLjIgNDcuMS00Ny4xIDQ3LjFsLTExNy44IDB6Il19LGhWPXQyZSxRNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5nZWxsaXN0IixpY29uOlszODQsNTEyLFtdLCJmMjA5IiwiTTMxNS42IDIxNS40YzExLjctMzIuNiA0NS40LTEyNi45IDQ1LjQtMTU3LjEgMC0yNi42LTE1LjctNDguOS00My43LTQ4LjktNDQuNiAwLTg0LjYgMTMxLjctOTcuMSAxNjMuMS05LjctMjguNS01NS4xLTE3Mi41LTk1LjEtMTcyLjUtMzEuMSAwLTQ1LjcgMjIuOS00NS43IDUxLjcgMCAzNS4zIDM0LjIgMTI2LjggNDYuNiAxNjItNi4zLTIuMy0xMy4xLTQuMy0yMC00LjMtMjMuNCAwLTQ4LjMgMjkuMS00OC4zIDUyLjYgMCA4LjkgNC45IDIxLjQgOCAyOS43LTM2LjkgMTAtNTEuMSAzNC42LTUxLjEgNzEuNy0uMSA3Mi4yIDY4LjMgMTQ4LjYgMTY0LjUgMTQ4LjYgMTE4IDAgMTkxLjQtODguNiAxOTEuNC0yMDIuOSAwLTQzLjEtNi45LTgyLTU0LjktOTMuN3pNMjgwLjIgMTA4YzQtMTIuMyAyMS4xLTY0LjMgMzcuMS02NC4zIDguNiAwIDEwLjkgOC45IDEwLjkgMTYgMCAxOS4xLTM4LjYgMTI0LjYtNDcuMSAxNDhsLTM0LTYgMzMuMS05My43ek0xMTAuOCA0OC4zYzAtMTEuOSAxNC41LTQ1LjcgNDYuMyA0Ny4xbDM0LjYgMTAwLjNjLTE1LjYtMS4zLTI3LjctMy0zNS40IDEuNC0xMC45LTI4LjgtNDUuNS0xMTkuNy00NS41LTE0OC44ek0xMDguNSAyNDRjMjkuMyAwIDY3LjEgOTQuNiA2Ny4xIDEwNy40IDAgNS4xLTQuOSAxMS40LTEwLjYgMTEuNC0yMC45IDAtNzYuOS03Ni45LTc2LjktOTcuNyAuMS03LjcgMTIuNy0yMS4xIDIwLjQtMjEuMXpNMjkyLjggNDMwLjNjLTI5LjEgMzItNjYuMyA0OC42LTEwOS43IDQ4LjYtNTkuNCAwLTEwNi4zLTMyLjYtMTI4LjktODguMy0xNy4xLTQzLjQgMy44LTY4LjMgMjAuNi02OC4zIDExLjQgMCA1NC4zIDYwLjMgNTQuMyA3My4xIDAgNC45LTcuNyA4LjMtMTEuNyA4LjMtMTYuMSAwLTIyLjQtMTUuNS01MS4xLTUxLjQtMjkuNyAyOS43IDIwLjUgODYuOSA1OC4zIDg2LjkgMjYuMSAwIDQzLjEtMjQuMiAzOC00MiAzLjcgMCA4LjMgLjMgMTEuNy0uNiAxLjEgMjcuMSA5LjEgNTkuNCA0MS43IDYxLjcgMC0uOSAyLTcuMSAyLTcuNCAwLTE3LjQtMTAuNi0zMi42LTEwLjYtNTAuMyAwLTI4LjMgMjEuNy01NS43IDQzLjctNzEuNyA4LTYgMTcuNy05LjcgMjcuMS0xMy4xIDkuNy0zLjcgMjAtOCAyNy40LTE1LjQtMS4xLTExLjItNS43LTIxLjEtMTYuOS0yMS4xLTI3LjcgMC0xMjAuNiA0LTEyMC42LTM5LjcgMC02LjcgLjEtMTMuMSAxNy40LTEzLjEgMzIuMyAwIDExNC4zIDggMTM4LjMgMjkuMSAxOC4xIDE2LjEgMjQuMyAxMTMuMi0zMSAxNzQuN3ptLTk4LjYtMTI2YzkuNyAzLjEgMTkuNyA0IDI5LjcgNi03LjQgNS40LTE0IDEyLTIwLjMgMTkuMS0yLjgtOC41LTYuMi0xNi44LTkuNC0yNS4xeiJdfSxLNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5kcm9pZCIsaWNvbjpbNTc2LDUxMixbXSwiZjE3YiIsIk00MjAuNSAyNTMuOWEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS0yNjUuMSAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMjczLjctOTYuNWw0Ny45LTgzYy44LTEuMSAxLjMtMi40IDEuNS0zLjhzLjItMi43LS4xLTQuMS0uOS0yLjYtMS43LTMuNy0xLjgtMi0zLTIuNy0yLjUtMS4xLTMuOS0xLjMtMi43IDAtNCAuNC0yLjUgMS4xLTMuNiAxLjktMS45IDItMi41IDMuMmwtNDguNSA4NC4xYy0zOC44LTE3LjQtODAuOC0yNi40LTEyMy4zLTI2LjRzLTg0LjUgOS0xMjMuMyAyNi40TDExNi4yIDY0LjRjLS42LTEuMi0xLjUtMi4zLTIuNS0zLjJzLTIuMy0xLjUtMy42LTEuOS0yLjctLjUtNC0uNC0yLjcgLjYtMy45IDEuMy0yLjIgMS42LTMgMi43LTEuNCAyLjQtMS43IDMuNy0uMyAyLjctLjEgNC4xIC44IDIuNiAxLjUgMy44bDQ3LjkgODNDNjQuNSAyMDIuMiA4LjIgMjg1LjUgMCAzODRsNTc2IDBjLTguMi05OC41LTY0LjUtMTgxLjgtMTQ2LjktMjI2LjZ6Il19LEo0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWV0dXAiLGljb246WzU3Niw1MTIsW10sImYyZTAiLCJNMTMxLjEgNDE0LjNjMS4xIDUuNy0yLjMgMTEuMS04IDEyLjMtNS40IDEuMS0xMC45LTIuMy0xMi04LTEuMS01LjQgMi4zLTExLjEgNy43LTEyLjNzMTEuMSAyLjMgMTIuMyA4em0xNDMuMSA3MS40Yy02LjMgNC42LTggMTMuNC0zLjcgMjAgNC42IDYuNiAxMy40IDguMyAyMCAzLjcgNi4zLTQuNiA4LTEzLjQgMy40LTIwLTQuMi02LjUtMTMuMS04LjMtMTkuNy0zLjd6bS04Ni00NjIuM2ExMS44IDExLjggMCAxIDAgLTQuOS0yMyAxMS44IDExLjggMCAxIDAgNC45IDIzek02Ni41IDIyNi4zYTIyLjIgMjIuMiAwIDEgMCAtMjQuNyAzNi45IDIyLjIgMjIuMiAwIDEgMCAyNC43LTM2Ljl6bTI3Mi0xNzAuOWEyMi4xIDIyLjEgMCAxIDAgLTIyLjQtMzggMjIuMSAyMi4xIDAgMSAwIDIyLjQgMzh6bS0xOTEuMSA1OGExNi45IDE2LjkgMCAxIDAgLTE4LjgtMjggMTYuOSAxNi45IDAgMSAwIDE4LjggMjh6bTM3Mi4zIDE1NmMtNy40IDEuNy0xMi4zIDkuMS0xMC42IDE2LjkgMS40IDcuNCA4LjkgMTIuMyAxNi4zIDEwLjYgNy40LTEuNCAxMi4zLTguOSAxMC42LTE2LjYtMS41LTcuNC04LjktMTIuMy0xNi4zLTEwLjl6bTM5LjctNTYuOGExMC4xIDEwLjEgMCAxIDAgLTE5LjggNC4zIDEwLjEgMTAuMSAwIDEgMCAxOS44LTQuM3ptLTgwLjMtNzMuN2ExOC44IDE4LjggMCAxIDAgMjAuNyAzMS4zIDE4LjggMTguOCAwIDEgMCAtMjAuNy0zMS4zem0tNi4zIDEzOS40YzI2LjMgNDMuMSAxNS4xIDEwMC0yNi4zIDEyOS4xLTE3LjQgMTIuMy0zNy4xIDE3LjctNTYuOSAxNy4xLTEyIDQ3LjEtNjkuNCA2NC42LTEwNS4xIDMyLjYtMS4xIC45LTIuNiAxLjctMy43IDIuOS0zOS4xIDI3LjEtOTIuMyAxNy40LTExOS40LTIyLjMtOS43LTE0LjMtMTQuNi0zMC42LTE1LjEtNDYuOS02NS40LTEwLjktOTAtOTQtNDEuMS0xMzkuNy0yOC4zLTQ2LjkgLjYtMTA3LjQgNTMuNC0xMTQuOSAyNS4xLTY2LjIgMTA3LjYtOTcuNiAxNjMuNi01NC4yIDY3LjQtMjIuMyAxMzYuMyAyOS40IDEzMC45IDEwMS4xIDQxLjEgMTIuNiA1Mi44IDY2LjkgMTkuNyA5NS4yem0tNzAgNzQuM2MtMy4xLTIwLjYtNDAuOS00LjYtNDMuMS0yNy4xLTMuMS0zMiA0My43LTEwMS4xIDQwLTEyOC0zLjQtMjQtMTkuNC0yOS4xLTMzLjQtMjkuNC0xMy40LS4zLTE2LjkgMi0yMS40IDQuNi0yLjkgMS43LTYuNiA0LjktMTEuNy0uMy02LjMtNi0xMS4xLTExLjctMTkuNC0xMi45LTEyLjMtMi0xNy43IDItMjYuNiA5LjctMy40IDIuOS0xMiAxMi45LTIwIDkuMS0zLjQtMS43LTE1LjQtNy43LTI0LTExLjQtMTYuMy03LjEtNDAgNC42LTQ4LjYgMjAtMTIuOSAyMi45LTM4IDExMy4xLTQxLjcgMTI1LjEtOC42IDI2LjYgMTAuOSA0OC42IDM2LjkgNDcuMSAxMS4xLS42IDE4LjMtNC42IDI1LjQtMTcuNCA0LTcuNCA0MS43LTEwNy43IDQ0LjYtMTEyLjYgMi0zLjQgOC45LTggMTQuNi01LjEgNS43IDMuMSA2LjkgOS40IDYgMTUuMS0xLjEgOS43LTI4IDcwLjktMjguOSA3Ny43LTMuNCAyMi45IDI2LjkgMjYuNiAzOC42IDQgMy43LTcuMSA0NS43LTkyLjYgNDkuNC05OC4zIDQuMy02LjMgNy40LTguMyAxMS43LTggMy4xIDAgOC4zIC45IDcuMSAxMC45LTEuNCA5LjQtMzUuMSA3Mi4zLTM4LjkgODcuNy00LjYgMjAuNiA2LjYgNDEuNCAyNC45IDUwLjYgMTEuNCA1LjcgNjIuNSAxNS43IDU4LjUtMTEuMXptNS43IDkyLjNhMjMuMyAyMy4zIDAgMSAwIDI2LjIgMzguNCAyMy4zIDIzLjMgMCAxIDAgLTI2LjItMzguNHoiXX0sZTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvbnRpY29ucy1maSIsaWNvbjpbMzg0LDUxMixbXSwiZjNhMiIsIk0xMTQuNCAyMjRsOTIuNCAwLTE1LjIgNTEuMi03Ni40IDAgMCAxNTcuOGMwIDgtMi44IDkuMiA0LjQgMTBsNTkuNiA1LjYgMCAzNC40LTE3OS4yIDAgMC0zNS4yIDI5LjItMi44YzcuMi0uOCA5LjItMy4yIDkuMi0xMC44bDAtMTU1LjhjMC0zLjItNC0zLjItOC0zLjJsLTMwLjQgMCAwLTUxLjIgMzguNCAwIDAtMjguOGMwLTY4IDM2LjQtOTYgMTA2LTk2IDQ2LjggMCA4OC44IDExLjIgODguOCA3Mi40TDE2My42IDE4MGMuNC0yNS42LTYtMzEuNi0yMi40LTMxLjYtMjUuMiAwLTI2IDEzLjYtMjYgMzcuNmwwIDMyYzAgMy4yLTQuOCA2LS44IDZ6TTM4NCA0ODNsLTE0MC44IDAgMC0zNC40IDI4LTMuNmM3LjItLjggMTAuNC0yLjQgMTAuNC0xMGwwLTE0OGMwLTUuNi00LTkuMi05LjItMTAuOGwtMzMuMi04LjggOS4yLTQwLjQgMTEwIDAgMCAyMDhjMCA4LTMuNiA4LjggNCAxMGwyMS42IDMuNiAwIDM0LjR6TTM1NCAxMzUuOGwxMi40IDQ1LjYtMTAgMTAtNDIuOC0yMi44LTQyLjggMjIuOC0xMC0xMCAxMi40LTQ1LjYtMzAtMzYuNCA0LjgtMTAgMzggMCAyMS4yLTM4LjQgMTIuOCAwIDIxLjIgMzguNCAzOCAwIDQuOCAxMy4yLTMwIDMzLjJ6Il19LHQzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWxmZWQiLGljb246WzU3Niw1MTIsW10sImYzZDgiLCJNMzg0LjkgMTkzLjljMC00Ny40LTU1LjItNDQuMi05NS40LTI5LjgtMS4zIDM5LjQtMi41IDgwLjctMyAxMTkuOCAuNyAyLjggMi42IDYuMiAxNS4xIDYuMiAzNi44IDAgODMuNC00Mi44IDgzLjMtOTYuMnpNMTkwLjQgMjY2LjFjLjIgMCA2LjUtMi43IDExLjItMi43IDI2LjYgMCAyMC43IDQ0LjEtMTQuNCA0NC4xLTIxLjUgMC0zNy4xLTE4LjEtMzcuMS00MyAwLTQyIDQyLjktOTUuNiAxMDAuNy0xMjYuNSAxLTEyLjQgMy0yMiAxMC41LTI4LjIgMTEuMi05IDI2LjYtMy41IDI5LjUgMTEuMSA3Mi4yLTIyLjIgMTM1LjIgMSAxMzUuMiA3MiAwIDc3LjktNzkuMyAxNTIuNi0xNDAuMSAxMzguMi0uMSAzOS40IC45IDc0LjQgMi43IDEwMGwwIC4yYy4yIDMuNCAuNiAxMi41LTUuMyAxOS4xLTkuNiAxMC42LTMzLjQgMTAtMzYuNC0yMi4zLTQuMS00NC40IC4yLTIwNi4xIDEuNC0yNDIuNS0yMS41IDE1LTU4LjUgNTAuMy01OC41IDc1LjkgLjIgMi41IC40IDQgLjYgNC42ek04IDE4MS4xcy0uMSAzNy40IDM4LjQgMzcuNGwzMCAwIDIyLjQgMjE3LjJzMCA0NC4zIDQ0LjcgNDQuM2wyODguOSAwczQ0LjctLjQgNDQuNy00NC4zbDIyLjQtMjE3LjIgMzAgMHMzOC40IDEuMiAzOC40LTM3LjRjMCAwIC4xLTM3LjQtMzguNC0zNy40bC0zMC4xIDBjLTcuMy0yNS42LTMwLjItNzQuMy0xMTkuNC03NC4zbC0yOCAwIDAtMTkuMXMtMi43LTE4LjQtMjEuMS0xOC40bC04NS44IDBTMjI0IDMxLjkgMjI0IDUwLjNsMCAxOS4xLTI4LjEgMHMtMTA1IDQuMi0xMjAuNSA3NC4zbC0yOSAwUzggMTQyLjUgOCAxODEuMXoiXX0sYTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndwYmVnaW5uZXIiLGljb246WzUxMiw1MTIsW10sImYyOTciLCJNNDYzLjIgMzIyLjRjNTYuMiA2NC4zIDQuMiAxNTcuNi05MS45IDE1Ny42LTM5LjYgMC03OC44LTE3LjctMTAwLjEtNTAtNi45IC40LTIyLjcgLjQtMjkuNiAwLTIxLjQgMzIuNC02MC42IDUwLTEwMC4xIDUwLTk1LjUgMC0xNDguMy05My05MS45LTE1Ny42LTc5LjEtMTMxLjkgMzEuMy0yOTAuNCAyMDYuOC0yOTAuNCAxNzUuNiAwIDI4NS45IDE1OC42IDIwNi44IDI5MC40em0tMzM5LjYtODNsNDEuNSAwIDAtNTguMS00MS41IDAgMCA1OC4xem0yMTcuMiA4Ni4xbDAtMjMuOGMtNjAuNSAyMC45LTEzMi40IDkuMi0xODcuNi0zNGwuMiAyNC45YzUxLjEgNDYuNCAxMzEuNyA1Ny45IDE4Ny4zIDMyLjl6TTE5MCAyMzkuNGwxNjYuMSAwIDAtNTguMS0xNjYuMSAwIDAgNTguMXoiXX0scjN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpYXNwb3JhIixpY29uOls0NDgsNTEyLFtdLCJmNzkxIiwiTTIxOS43IDM1NC42Yy0xLjQgMC04OCAxMTkuOS04OC43IDExOS45UzQ0LjQgNDE0IDQ0IDQxMy4zIDEzMC42IDI4Ny41IDEzMC42IDI4NS44YzAtMi4yLTEyOS42LTQ0LTEzNy42LTQ3LjEtMS4zLS41IDMxLjQtMTAxLjggMzEuNy0xMDIuMSAuNi0uNyAxNDQuNCA0NyAxNDUuNSA0NyAuNCAwIC45LS42IDEtMS4zIC40LTIgMS0xNDguNiAxLjctMTQ5LjYgLjgtMS4yIDEwNC41LS43IDEwNS4xLS4zIDEuNSAxIDMuNSAxNTYuMSA2LjEgMTU2LjEgMS40IDAgMTM4LjctNDcgMTM5LjMtNDYuMyAuOCAuOSAzMS45IDEwMi4yIDMxLjUgMTAyLjYtLjkgLjktMTQwLjIgNDcuMS0xNDAuNiA0OC44LS4zIDEuNCA4Mi44IDEyMi4xIDgyLjUgMTIyLjlzLTg1LjUgNjMuNS04Ni4zIDYzLjVjLTEtLjItODktMTI1LjUtOTAuOS0xMjUuNWwwIDB6Il19LGkzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwcm9kdWN0LWh1bnQiLGljb246WzUxMiw1MTIsW10sImYyODgiLCJNMzI2LjMgMjE4LjhjMCAyMC41LTE2LjcgMzcuMi0zNy4yIDM3LjJsLTcwLjMgMCAwLTc0LjQgNzAuMyAwYzIwLjUgMCAzNy4yIDE2LjcgMzcuMiAzNy4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zNjcuOS0zNy4yYzAtNDcuOS0zOC45LTg2LjgtODYuOC04Ni44bC0xMTkuOSAwIDAgMjQ4IDQ5LjYgMCAwLTc0LjQgNzAuMyAwYzQ3LjkgMCA4Ni44LTM4LjkgODYuOC04Ni44eiJdfSxvM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXVwd29yayIsaWNvbjpbNDQ4LDUxMixbXSwiZTY3YyIsIk01NiAzMmwzMzYgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJ6TTI3MC45IDI3NC4yYzYuNi01Mi45IDI1LjktNjkuNSA1MS40LTY5LjUgMjUuMyAwIDQ0LjkgMjAuMiA0NC45IDQ5LjdzLTE5LjcgNDkuNy00NC45IDQ5LjdjLTI3LjkgMC00Ni4zLTIxLjUtNTEuNC0yOS45em0tMjYuNy00MS44Yy04LjItMTUuNS0xNC4zLTM2LjMtMTkuMi01NS42bC02Mi45IDAgMCA3OC4xYzAgMjguNC0xMi45IDQ5LjQtMzguMiA0OS40Uzg0LjEgMjgzLjQgODQuMSAyNTVsLjMtNzguMS0zNi4yIDAgMCA3OC4xYzAgMjIuOCA3LjQgNDMuNSAyMC45IDU4LjIgMTMuOSAxNS4yIDMyLjggMjMuMiA1NC44IDIzLjIgNDMuNyAwIDc0LjItMzMuNSA3NC4yLTgxLjVsMC01Mi41YzQuNiAxNy4zIDE1LjQgNTAuNSAzNi4yIDc5LjdsLTE5LjMgMTEwLjUgMzYuOCAwIDEyLjgtNzguNGM0LjIgMy41IDguNyA2LjYgMTMuNCA5LjQgMTIuMyA3LjggMjYuNCAxMi4yIDQwLjkgMTIuNmwzLjQgMGM0NS4xIDAgODAuOS0zNC45IDgwLjktODEuOXMtMzUuOS04Mi4yLTgwLjktODIuMmMtNDUuNCAwLTcwLjkgMjkuNy03OC4xIDYwLjFsMCAuMnoiXX0sczN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImN1dHRsZWZpc2giLGljb246WzQ0OCw1MTIsW10sImYzOGMiLCJNMzQ4IDMwNS41Yy0xNy41IDMxLjYtNTcuNCA1NC41LTk2IDU0LjUtNTYuNiAwLTEwNC00Ny40LTEwNC0xMDRzNDcuNC0xMDQgMTA0LTEwNGMzOC42IDAgNzguNSAyMi45IDk2IDU0LjUgMTMuNy01MC45IDQxLjctOTMuMyA4Ny0xMTcuOC00NS4zLTQ5LjYtMTEwLjUtODAuNy0xODMtODAuNy0xMzcgMC0yNDggMTExLTI0OCAyNDhTMTE1IDUwNCAyNTIgNTA0YzcyLjUgMCAxMzcuNy0zMS4xIDE4My04MC43LTQ1LjMtMjQuNS03My4zLTY2LjktODctMTE3Ljh6Il19LG4zdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWRhcHBzIixpY29uOlszMjAsNTEyLFtdLCJmM2M2IiwiTTExOC4zIDIzOC40YzMuNS0xMi41IDYuOS0zMy42IDEzLjItMzMuNiA4LjMgMS44IDkuNiAyMy40IDE4LjYgMzYuNiA0LjYtMjMuNSA1LjMtODUuMSAxNC4xLTg2LjcgOS0uNyAxOS43IDY2LjUgMjIgNzcuNSA5LjkgNC4xIDQ4LjkgNi42IDQ4LjkgNi42IDEuOSA3LjMtMjQgNy42LTQwIDcuOC00LjYgMTQuOC01LjQgMjcuNy0xMS40IDI4LTQuNyAuMi04LjItMjguOC0xNy41LTQ5LjZsLTkuNCA2NS41Yy00LjQgMTMtMTUuNS0yMi41LTIxLjktMzkuMy0zLjMtLjEtNjIuNC0xLjYtNDcuNi03LjhsMzEtNXpNMjI4IDQ0OGMyMS4yIDAgMjEuMi0zMiAwLTMyTDkyIDQxNmMtMjEuMiAwLTIxLjIgMzIgMCAzMmwxMzYgMHptLTI0IDY0YzIxLjIgMCAyMS4yLTMyIDAtMzJsLTg4IDBjLTIxLjIgMC0yMS4yIDMyIDAgMzJsODggMHptMzQuMi0xNDEuNWMzLjItMTguOSA1LjItMzYuNCAxMS45LTQ4LjggNy45LTE0LjcgMTYuMS0yOC4xIDI0LTQxIDI0LjYtNDAuNCA0NS45LTc1LjIgNDUuOS0xMjUuNSAwLTg1LjYtNzEuOC0xNTUuMi0xNjAtMTU1LjJTMCA2OS42IDAgMTU1LjJjMCA1MC4yIDIxLjMgODUuMSA0NS45IDEyNS41IDcuOSAxMi45IDE2IDI2LjMgMjQgNDEgNi43IDEyLjUgOC43IDI5LjggMTEuOSA0OC45IDMuNSAyMSAzNi4xIDE1LjcgMzIuNi01LjEtMy42LTIxLjctNS42LTQwLjctMTUuMy01OC42LTMyLjYtNjAuNC02Ni4xLTk1LjYtNjYuMS0xNTEuNyAwLTY3LjkgNTctMTIzLjIgMTI3LTEyMy4yUzI4NyA4Ny4zIDI4NyAxNTUuMmMwIDU2LjEtMzMuNSA5MS4zLTY2LjEgMTUxLjYtOS43IDE4LTExLjcgMzcuNC0xNS4zIDU4LjYtMy40IDIwLjYgMjkgMjYuNCAzMi42IDUuMXoiXX0sbDN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpeCIsaWNvbjpbNTEyLDUxMixbXSwiZTQzYSIsIk0yNDIuNCAyOTIuNWM1LjQtNS40IDE0LjctNS40IDIwLjEgMGw3NyA3N2MxNC4yIDE0LjIgMzMuMSAyMiA1My4xIDIybDE1LjEgMC05Ny4xIDk3LjFjLTMwLjMgMjkuNS03OS41IDI5LjUtMTA5LjggMGwtOTcuNS05Ny40IDkuMyAwYzIwIDAgMzguOS03LjggNTMuMS0yMmw3Ni43LTc2Ljd6bTIwLjEtNzMuNmMtNi40IDUuNS0xNC42IDUuNi0yMC4xIDBsLTc2LjctNzYuN2MtMTQuMi0xNS4xLTMzLjEtMjItNTMuMS0yMmwtOS4zIDAgOTcuNC05Ny40YzMwLjQtMzAuMyA3OS42LTMwLjMgMTA5LjkgMGw5Ny4yIDk3LjEtMTUuMiAwYy0yMCAwLTM4LjkgNy44LTUzLjEgMjJsLTc3IDc3ek0xMTIuNiAxNDIuN2MxMy44IDAgMjYuNSA1LjYgMzcuMSAxNS40bDc2LjcgNzYuN2M3LjIgNi4zIDE2LjYgMTAuOCAyNi4xIDEwLjggOS40IDAgMTguOC00LjUgMjYtMTAuOGw3Ny03N2M5LjgtOS43IDIzLjMtMTUuMyAzNy4xLTE1LjNsMzcuNyAwIDU4LjMgNTguM2MzMC4zIDMwLjMgMzAuMyA3OS41IDAgMTA5LjhsLTU4LjMgNTguMy0zNy43IDBjLTEzLjggMC0yNy4zLTUuNi0zNy4xLTE1LjRsLTc3LTc3Yy0xMy45LTEzLjktMzguMi0xMy45LTUyLjEgLjFsLTc2LjcgNzYuNmMtMTAuNiA5LjgtMjMuMyAxNS40LTM3LjEgMTUuNGwtMzEuOCAwLTU4LTU4Yy0zMC4zLTMwLjMtMzAuMy03OS41IDAtMTA5LjhsNTgtNTguMSAzMS44IDB6Il19LGEyZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdHVtYmxyIixpY29uOls0NDgsNTEyLFsidHVtYmxyLXNxdWFyZSJdLCJmMTc0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYuOCA0MTZjLTc1LjUgMC05MS45LTU1LjUtOTEuOS04Ny45bDAtOTAtMjkuNyAwYy0zLjQgMC02LjItMi44LTYuMi02LjJsMC00Mi41YzAtNC41IDIuOC04LjUgNy4xLTEwIDM4LjgtMTMuNyA1MC45LTQ3LjUgNTIuNy03My4yIC41LTYuOSA0LjEtMTAuMiAxMC0xMC4ybDQ0LjMgMGMzLjQgMCA2LjIgMi44IDYuMiA2LjJsMCA3MiA1MS45IDBjMy40IDAgNi4yIDIuOCA2LjIgNi4ybDAgNTEuMWMwIDMuNC0yLjggNi4yLTYuMiA2LjJsLTUyLjEgMCAwIDgzLjNjMCAyMS40IDE0LjggMzMuNSA0Mi41IDIyLjQgMy0xLjIgNS42LTIgOC0xLjQgMi4yIC41IDMuNiAyLjEgNC42IDQuOUwzMTggMzg3LjFjMSAzLjIgMiA2LjctLjMgOS4xLTguNSA5LjEtMzEuMiAxOS44LTYwLjkgMTkuOHoiXX0sYzN0PWEyZSxkM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVhY3QiLGljb246WzUxMiw1MTIsW10sImY0MWIiLCJNNDE4LjIgMTc3LjJjLTUuNC0xLjgtMTAuOC0zLjUtMTYuMi01LjEgLjktMy43IDEuNy03LjQgMi41LTExLjEgMTIuMy01OS42IDQuMi0xMDcuNS0yMy4xLTEyMy4zLTI2LjMtMTUuMS02OS4yIC42LTExMi42IDM4LjQtNC4zIDMuNy04LjUgNy42LTEyLjUgMTEuNS0yLjctMi42LTUuNS01LjItOC4zLTcuNy00NS41LTQwLjQtOTEuMS01Ny40LTExOC40LTQxLjUtMjYuMiAxNS4yLTM0IDYwLjMtMjMgMTE2LjcgMS4xIDUuNiAyLjMgMTEuMSAzLjcgMTYuNy02LjQgMS44LTEyLjcgMy44LTE4LjYgNS45LTUzLjQgMTguNS05MS43IDQ3LjctOTEuNyA3Ny45IDAgMzEuMiA0MC44IDYyLjUgOTYuMyA4MS41IDQuNSAxLjUgOSAzIDEzLjYgNC4zLTEuNSA2LTIuOCAxMS45LTQgMTgtMTAuNSA1NS41LTIuMyA5OS41IDIzLjkgMTE0LjYgMjcgMTUuNiA3Mi40LS40IDExNi42LTM5LjEgMy41LTMuMSA3LTYuMyAxMC41LTkuNyA0LjQgNC4zIDkgOC40IDEzLjYgMTIuNCA0Mi44IDM2LjggODUuMSA1MS43IDExMS4yIDM2LjYgMjctMTUuNiAzNS44LTYyLjkgMjQuNC0xMjAuNS0uOS00LjQtMS45LTguOS0zLTEzLjUgMy4yLS45IDYuMy0xLjkgOS40LTIuOSA1Ny43LTE5LjEgOTkuNS01MCA5OS41LTgxLjcgMC0zMC4zLTM5LjQtNTkuNy05My44LTc4LjR6TTI4Mi45IDkyLjNjMzcuMi0zMi40IDcxLjktNDUuMSA4Ny43LTM2IDE2LjkgOS43IDIzLjQgNDguOSAxMi44IDEwMC40LS43IDMuNC0xLjQgNi43LTIuMyAxMC0yMi4yLTUtNDQuNy04LjYtNjcuMy0xMC42LTEzLTE4LjYtMjcuMi0zNi40LTQyLjYtNTMuMSAzLjktMy43IDcuNy03LjIgMTEuNy0xMC43ek0xNjcuMiAzMDcuNWM1LjEgOC43IDEwLjMgMTcuNCAxNS44IDI1LjktMTUuNi0xLjctMzEuMS00LjItNDYuNC03LjUgNC40LTE0LjQgOS45LTI5LjMgMTYuMy00NC41IDQuNiA4LjggOS4zIDE3LjUgMTQuMyAyNi4xek0xMzYuOSAxODcuMmMxNC40LTMuMiAyOS43LTUuOCA0NS42LTcuOC01LjMgOC4zLTEwLjUgMTYuOC0xNS40IDI1LjQtNC45IDguNS05LjcgMTcuMi0xNC4yIDI2LTYuMy0xNC45LTExLjYtMjkuNS0xNi00My42em0yNy40IDY4LjljNi42LTEzLjggMTMuOC0yNy4zIDIxLjQtNDAuNnMxNS44LTI2LjIgMjQuNC0zOC45YzE1LTEuMSAzMC4zLTEuNyA0NS45LTEuN3MzMSAuNiA0NS45IDEuN2M4LjUgMTIuNiAxNi42IDI1LjUgMjQuMyAzOC43czE0LjkgMjYuNyAyMS43IDQwLjRjLTYuNyAxMy44LTEzLjkgMjcuNC0yMS42IDQwLjgtNy42IDEzLjMtMTUuNyAyNi4yLTI0LjIgMzktMTQuOSAxLjEtMzAuNCAxLjYtNDYuMSAxLjZzLTMwLjktLjUtNDUuNi0xLjRjLTguNy0xMi43LTE2LjktMjUuNy0yNC42LTM5cy0xNC44LTI2LjgtMjEuNS00MC42em0xODAuNiA1MS4yYzUuMS04LjggOS45LTE3LjcgMTQuNi0yNi43IDYuNCAxNC41IDEyIDI5LjIgMTYuOSA0NC4zLTE1LjUgMy41LTMxLjIgNi4yLTQ3IDggNS40LTguNCAxMC41LTE3IDE1LjUtMjUuNnptMTQuNC03Ni41Yy00LjctOC44LTkuNS0xNy42LTE0LjUtMjYuMi00LjktOC41LTEwLTE2LjktMTUuMy0yNS4yIDE2LjEgMiAzMS41IDQuNyA0NS45IDgtNC42IDE0LjgtMTAgMjkuMi0xNi4xIDQzLjR6TTI1Ni4yIDExOC4zYzEwLjUgMTEuNCAyMC40IDIzLjQgMjkuNiAzNS44LTE5LjgtLjktMzkuNy0uOS01OS41IDAgOS44LTEyLjkgMTkuOS0yNC45IDI5LjktMzUuOHpNMTQwLjIgNTdjMTYuOC05LjggNTQuMSA0LjIgOTMuNCAzOSAyLjUgMi4yIDUgNC42IDcuNiA3LTE1LjUgMTYuNy0yOS44IDM0LjUtNDIuOSA1My4xLTIyLjYgMi00NSA1LjUtNjcuMiAxMC40LTEuMy01LjEtMi40LTEwLjMtMy41LTE1LjUtOS40LTQ4LjQtMy4yLTg0LjkgMTIuNi05NHpNMTE1LjcgMzIwLjZjLTQuMi0xLjItOC4zLTIuNS0xMi40LTMuOS0yMS4zLTYuNy00NS41LTE3LjMtNjMtMzEuMi0xMC4xLTctMTYuOS0xNy44LTE4LjgtMjkuOSAwLTE4LjMgMzEuNi00MS43IDc3LjItNTcuNiA1LjctMiAxMS41LTMuOCAxNy4zLTUuNSA2LjggMjEuNyAxNSA0MyAyNC41IDYzLjYtOS42IDIwLjktMTcuOSA0Mi41LTI0LjggNjQuNXptMTE2LjYgOThjLTE2LjUgMTUuMS0zNS42IDI3LjEtNTYuNCAzNS4zLTExLjEgNS4zLTIzLjkgNS44LTM1LjMgMS4zLTE1LjktOS4yLTIyLjUtNDQuNS0xMy41LTkyIDEuMS01LjYgMi4zLTExLjIgMy43LTE2LjcgMjIuNCA0LjggNDUgOC4xIDY3LjkgOS44IDEzLjIgMTguNyAyNy43IDM2LjYgNDMuMiA1My40LTMuMiAzLjEtNi40IDYuMS05LjYgOC45em0yNC41LTI0LjNjLTEwLjItMTEtMjAuNC0yMy4yLTMwLjMtMzYuMyA5LjYgLjQgMTkuNSAuNiAyOS41IC42IDEwLjMgMCAyMC40LS4yIDMwLjQtLjctOS4yIDEyLjctMTkuMSAyNC44LTI5LjYgMzYuNHptMTMwLjcgMzBjLS45IDEyLjItNi45IDIzLjYtMTYuNSAzMS4zLTE1LjkgOS4yLTQ5LjgtMi44LTg2LjQtMzQuMi00LjItMy42LTguNC03LjUtMTIuNy0xMS41IDE1LjMtMTYuOSAyOS40LTM0LjggNDIuMi01My42IDIyLjktMS45IDQ1LjctNS40IDY4LjItMTAuNSAxIDQuMSAxLjkgOC4yIDIuNyAxMi4yIDQuOSAyMS42IDUuNyA0NC4xIDIuNSA2Ni4zem0xOC4yLTEwNy41Yy0yLjggLjktNS42IDEuOC04LjUgMi42LTctMjEuOC0xNS42LTQzLjEtMjUuNS02My44IDkuNi0yMC40IDE3LjctNDEuNCAyNC41LTYyLjkgNS4yIDEuNSAxMC4yIDMuMSAxNSA0LjcgNDYuNiAxNiA3OS4zIDM5LjggNzkuMyA1OCAwIDE5LjYtMzQuOSA0NC45LTg0LjggNjEuNHpNMjU2IDMwMS44YTQ1LjggNDUuOCAwIDEgMCAwLTkxLjYgNDUuOCA0NS44IDAgMSAwIDAgOTEuNnoiXX0sZjN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imp4bCIsaWNvbjpbNDQ4LDUxMixbXSwiZTY3YiIsIk00MTIuMiAzMkwzNS44IDMyQzE2IDMyIDAgNDggMCA2Ny44TDAgNDQ0LjJDMCA0NjQgMTYgNDgwIDM1LjggNDgwbDM3Ni40IDBjMTkuOCAwIDM1LjgtMTYgMzUuOC0zNS44bDAtMzc2LjRDNDQ4IDQ4IDQzMiAzMiA0MTIuMiAzMnpNMzc4LjYgMzMzLjdjMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhsLTIzNS42IDBjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhsMjM1LjYgMHptMC0xMTMuOWMwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOGwtMjM1LjYgMGMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOGwyMzUuNiAwem0wLTExMy45YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44bC0yMzUuNiAwYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44bDIzNS42IDB6Il19LHUzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtbGlua2VkaW4iLGljb246WzQ0OCw1MTIsW10sImU3ZDAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNSAxNzAuMmw2Ni41IDAgMCAyMTMuOC02Ni41IDAgMC0yMTMuOHptNzEuNy02Ny43YTM4LjUgMzguNSAwIDEgMSAtNzcgMCAzOC41IDM4LjUgMCAxIDEgNzcgMHpNMzE3LjkgNDE2bDAtMTA0YzAtMjQuOC0uNS01Ni43LTM0LjUtNTYuNy0zNC42IDAtMzkuOSAyNy0zOS45IDU0LjlsMCAxMDUuOC02Ni40IDAgMC0yMTMuOCA2My43IDAgMCAyOS4yIC45IDBjOC45LTE2LjggMzAuNi0zNC41IDYyLjktMzQuNSA2Ny4yIDAgNzkuNyA0NC4zIDc5LjcgMTAxLjlsMCAxMTcuMi02Ni40IDB6Il19LHAzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjc3MiLGljb246WzQ0OCw1MTIsW10sImU2YTIiLCJNMzc2LjMgMzJMMCAzMiAwIDQwOC4zYzAgMTkgNy42IDM3LjIgMjEgNTAuN3MzMS43IDIxIDUwLjcgMjFsMzA0LjYgMGMxOSAwIDM3LjItNy42IDUwLjctMjFzMjEtMzEuNyAyMS01MC43bDAtMzA0LjZjMC0xOS03LjYtMzcuMi0yMS01MC43cy0zMS43LTIxLTUwLjctMjF6TTMzMi40IDQzMS40Yy03LjctOC41LTExLjctMjAuNy0xMi0zNi42bDMxLjMgMGMuMiAxNC4xIDUuMSAyMS4xIDE0LjggMjEuMWM0LjkgMCA4LjQtMS42IDEwLjUtNC43YzItMy4xIDMtOCAzLTE0LjhjMC01LjQtMS4zLTkuOS00LTEzLjRjLTMuNS00LjItOC4xLTcuNS0xMy4yLTkuNUwzNTEuMiAzNjhjLTEwLjMtNC45LTE3LjgtMTAuOC0yMi41LTE3LjZjLTQuNS02LjgtNi43LTE2LjMtNi43LTI4LjRjMC0xMy42IDQtMjQuNiAxMS44LTMzLjFjOC4xLTguNSAxOS4xLTEyLjcgMzMuMi0xMi43YzEzLjYgMCAyNC4xIDQuMiAzMS41IDEyLjVjNy41IDguNCAxMS41IDIwLjMgMTEuOCAzNS45bC0zMC4xIDBjLjItNS4xLS45LTEwLjItMy0xNC44Yy0xLjctMy40LTUtNS4xLTEwLTUuMWMtOC44IDAtMTMuMiA1LjItMTMuMiAxNS43YzAgNS4zIDEuMSA5LjQgMy4yIDEyLjZjMy4xIDMuNSA3IDYuMiAxMS40IDcuOGwxMS4xIDQuOWMxMS41IDUuMyAxOS43IDExLjcgMjQuOCAxOS40YzUuMSA3LjcgNy42IDE4IDcuNiAzMWMwIDE1LjUtNCAyNy40LTEyLjMgMzUuN2MtOC4yIDguMy0xOS41IDEyLjUtMzQuMSAxMi41cy0yNS42LTQuMi0zMy40LTEyLjd6bS0xMDEgMGMtNy43LTguNS0xMS43LTIwLjctMTItMzYuNmwzMS4zIDBjLjIgMTQuMSA1LjEgMjEuMSAxNC44IDIxLjFjNC45IDAgOC40LTEuNiAxMC40LTQuN2MyLTMuMSAzLTggMy0xNC44YzAtNS40LTEuMy05LjktMy45LTEzLjRjLTMuNS00LjItOC4xLTcuNS0xMy4yLTkuNUwyNTAuMiAzNjhjLTEwLjMtNC45LTE3LjgtMTAuOC0yMi41LTE3LjZjLTQuNS02LjgtNi43LTE2LjMtNi43LTI4LjRjMC0xMy42IDQtMjQuNiAxMS44LTMzLjFjOC4xLTguNSAxOS4xLTEyLjcgMzMuMi0xMi43YzEzLjYgMCAyNC4xIDQuMiAzMS40IDEyLjVjNy42IDguNCAxMS41IDIwLjMgMTEuOSAzNS45bC0zMC4xIDBjLjItNS4xLS45LTEwLjItMy0xNC44Yy0xLjctMy40LTUtNS4xLTEwLTUuMWMtOC44IDAtMTMuMiA1LjItMTMuMiAxNS43YzAgNS4zIDEuMSA5LjQgMy4yIDEyLjZjMy4xIDMuNSA3IDYuMiAxMS40IDcuOGwxMS4xIDQuOWMxMS41IDUuMyAxOS43IDExLjcgMjQuOCAxOS40YzUuMSA3LjcgNy42IDE4IDcuNiAzMWMwIDE1LjUtNC4xIDI3LjQtMTIuMyAzNS43cy0xOS41IDEyLjUtMzQuMSAxMi41cy0yNS42LTQuMi0zMy40LTEyLjd6bS0xMDUuNiAxLjFjLTguNC03LjctMTIuNS0xOS4yLTEyLjUtMzQuNWwwLTc1LjRjMC0xNS4yIDQuNC0yNi43IDEzLjItMzQuNmM4LjktNy44IDIwLjctMTEuOCAzNS4yLTExLjhjMTQuMSAwIDI1LjIgNCAzMy40IDEyYzguMyA4IDEyLjUgMjAgMTIuNSAzNS45bDAgNi0zMy4xIDAgMC01LjhjMC02LjEtMS4zLTEwLjctNC0xMy42Yy0xLjEtMS41LTIuNi0yLjctNC4zLTMuNXMtMy41LTEuMi01LjQtMS4xYy01LjQgMC05LjIgMS44LTExLjQgNS42Yy0yLjMgNS4yLTMuMyAxMC44LTMgMTYuNGwwIDY1LjVjMCAxMy43IDQuOCAyMC42IDE0LjQgMjAuOGM0LjUgMCA3LjktMS42IDEwLjItNC44YzIuNS00LjEgMy43LTguOCAzLjUtMTMuNmwwLTQuOSAzMy4xIDAgMCA1LjFjMCAxMC42LTIuMSAxOS41LTYuMiAyNi42Yy00IDYuOS05LjkgMTIuNS0xNy4xIDE2Yy03LjcgMy43LTE2LjEgNS41LTI0LjYgNS4zYy0xNC4yIDAtMjUuNS0zLjktMzMuOC0xMS42eiJdfSxoM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGFzaG5vZGUiLGljb246WzUxMiw1MTIsW10sImU0OTkiLCJNMzUuNyAxNzEuMWMtNDYuOSA0Ni00Ni45IDEyMi45IDAgMTY5LjhMMTcxLjYgNDc2LjhjNDYgNDYuOSAxMjIuOSA0Ni45IDE2OS44IDBMNDc3LjMgMzQwLjljNDYuOS00Ni45IDQ2LjktMTIzLjggMC0xNjkuOEwzNDEuNCAzNS4yYy00Ni45LTQ2LjktMTIzLjgtNDYuOS0xNjkuOCAwTDM1LjcgMTcxLjF6TTE5NiAxOTYuNWE4NC41IDg0LjUgMCAxIDEgMTIwIDExOSA4NC41IDg0LjUgMCAxIDEgLTEyMC0xMTl6Il19LG0zdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWRkaXQtYWxpZW4iLGljb246WzUxMiw1MTIsW10sImYyODEiLCJNMzczIDEzOC42Yy0yNS4yIDAtNDYuMy0xNy41LTUxLjktNDEtMzAuNiA0LjMtNTQuMiAzMC43LTU0LjIgNjIuNGwwIC4yYzQ3LjQgMS44IDkwLjYgMTUuMSAxMjQuOSAzNi4zIDEyLjYtOS43IDI4LjQtMTUuNSA0NS41LTE1LjUgNDEuMyAwIDc0LjcgMzMuNCA3NC43IDc0LjcgMCAyOS44LTE3LjQgNTUuNS00Mi43IDY3LjUtMi40IDg2LjgtOTcgMTU2LjYtMjEzLjIgMTU2LjZTNDUuNSA0MTAuMSA0MyAzMjMuNGMtMjUuNC0xMS45LTQzLTM3LjctNDMtNjcuNyAwLTQxLjMgMzMuNC03NC43IDc0LjctNzQuNyAxNy4yIDAgMzMgNS44IDQ1LjcgMTUuNiAzNC0yMS4xIDc2LjgtMzQuNCAxMjMuNy0zNi40bDAtLjNjMC00NC4zIDMzLjctODAuOSA3Ni44LTg1LjUgNC45LTI0LjIgMjYuMy00Mi40IDUyLjEtNDIuNCAyOS40IDAgNTMuMyAyMy45IDUzLjMgNTMuM3MtMjMuOSA1My4zLTUzLjMgNTMuM3pNMTU3LjUgMjU1LjNjLTIwLjkgMC0zOC45IDIwLjgtNDAuMiA0Ny45czE3LjEgMzguMSAzOCAzOC4xIDM2LjYtOS44IDM3LjgtMzYuOS0xNC43LTQ5LjEtMzUuNy00OS4xbC4xIDB6TTM5NSAzMDMuMWMtMS4yLTI3LjEtMTkuMi00Ny45LTQwLjItNDcuOXMtMzYuOSAyMi0zNS43IDQ5LjEgMTYuOSAzNi45IDM3LjggMzYuOSAzOS4zLTExIDM4LTM4LjFsLjEgMHptLTYwLjEgNzAuOGMxLjUtMy42LTEtNy43LTQuOS04LjEtMjMtMi4zLTQ3LjktMy42LTczLjgtMy42cy01MC44IDEuMy03My44IDMuNmMtMy45IC40LTYuNCA0LjUtNC45IDguMSAxMi45IDMwLjggNDMuMyA1Mi40IDc4LjcgNTIuNHM2NS44LTIxLjYgNzguNy01Mi40eiJdfSxtVj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aWt0b2siLGljb246WzQ0OCw1MTIsW10sImUwN2IiLCJNNDQ4LjUgMjA5LjljLTQ0IC4xLTg3LTEzLjYtMTIyLjgtMzkuMmwwIDE3OC43YzAgMzMuMS0xMC4xIDY1LjQtMjkgOTIuNnMtNDUuNiA0OC03Ni42IDU5LjYtNjQuOCAxMy41LTk2LjkgNS4zLTYwLjktMjUuOS04Mi43LTUwLjgtMzUuMy01Ni0zOS04OC45IDIuOS02Ni4xIDE4LjYtOTUuMiA0MC01Mi43IDY5LjYtNjcuNyA2Mi45LTIwLjUgOTUuNy0xNmwwIDg5LjljLTE1LTQuNy0zMS4xLTQuNi00NiAuNHMtMjcuOSAxNC42LTM3IDI3LjMtMTQgMjguMS0xMy45IDQzLjkgNS4yIDMxIDE0LjUgNDMuNyAyMi40IDIyLjEgMzcuNCAyNi45IDMxLjEgNC44IDQ2LS4xIDI4LTE0LjQgMzcuMi0yNy4xIDE0LjItMjguMSAxNC4yLTQzLjhsMC0zNDkuNCA4OCAwYy0uMSA3LjQgLjYgMTQuOSAxLjkgMjIuMiAzLjEgMTYuMyA5LjQgMzEuOSAxOC43IDQ1LjdzMjEuMyAyNS42IDM1LjIgMzQuNmMxOS45IDEzLjEgNDMuMiAyMC4xIDY3IDIwLjFsMCA4Ny40eiJdfSxnM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29yZHByZXNzIixpY29uOls1MTIsNTEyLFtdLCJmMTlhIiwiTTYxLjcgMTY5LjRsMTAxLjUgMjc4Yy03MS0zNC40LTExOS45LTEwNy4yLTExOS45LTE5MS40IDAtMzAuOSA2LjYtNjAuMSAxOC40LTg2LjZ6bTMzNy45IDc1LjljMC0yNi4zLTkuNC00NC41LTE3LjUtNTguNy0xMC44LTE3LjUtMjAuOS0zMi40LTIwLjktNDkuOSAwLTE5LjYgMTQuOC0zNy44IDM1LjctMzcuOCAuOSAwIDEuOCAuMSAyLjggLjItMzcuOS0zNC43LTg4LjMtNTUuOS0xNDMuNy01NS45LTc0LjMgMC0xMzkuNyAzOC4xLTE3Ny44IDk1LjkgNSAuMiA5LjcgLjMgMTMuNyAuMyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ny41IDIzMC40IDQ2LjYtMTM5LjYtMzMuMS05MC44Yy0xMS41LS43LTIyLjMtMi0yMi4zLTItMTEuNS0uNy0xMC4xLTE4LjIgMS4zLTE3LjUgMCAwIDM1LjEgMi43IDU2IDIuNyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ni45IDIyOC43IDIxLjItNzAuOWM5LTI5LjQgMTYtNTAuNSAxNi02OC43ek0yNTkuNyAyNzQuNkwxOTUuOSA0NjAuMWMxOS4xIDUuNiAzOS4yIDguNyA2MC4xIDguNyAyNC44IDAgNDguNS00LjMgNzAuNi0xMi4xLS42LS45LTEuMS0xLjktMS41LTIuOUwyNTkuNyAyNzQuNnptMTgzLTEyMC43Yy45IDYuOCAxLjQgMTQgMS40IDIxLjkgMCAyMS42LTQgNDUuOC0xNi4yIDc2LjJsLTY1IDE4Ny45YzYzLjMtMzYuOSAxMDUuOC0xMDUuNCAxMDUuOC0xODMuOSAwLTM3LTkuNC03MS44LTI2LTEwMi4xek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00ODQuNiAwYTIzNi42IDIzNi42IDAgMSAwIC00NzMuMiAwIDIzNi42IDIzNi42IDAgMSAwIDQ3My4yIDB6Il19LHgzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpZGVhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTAxMyIsIk05My44IDE2NS41YTQ5LjEgNDkuMSAwIDEgMCAwIDk4LjEgNDkuMSA0OS4xIDAgMSAwIDAtOTguMXpNNTQuMyA0MjUuOGw3OC45IDAgMC0xNDAuNS03OC45IDAgMCAxNDAuNXpNMjA1LjggMjE0LjJjMC0yMC0xMC0yMi41LTE4LjctMjIuNWwtMTQgMCAwIDQ1LjggMTQgMGM5LjcgMCAxOC43LTIuOCAxOC43LTIzLjN6bTIwMS43IDQ2bDAtOTEuMyAyMi44IDAgMCA2OC42IDMzLjcgMEM0NTQuNiAxMTMuMSAzNTYuOCA4Ni4yIDI2Ny44IDg2LjJsLTk0LjggMCAwIDgyLjggMTQgMGMyNS42IDAgNDEuNSAxNy40IDQxLjUgNDUuMyAwIDI4LjgtMTUuNSA0Ni00MS41IDQ2bC0xNCAwIDAgMTY1LjYgOTQuOCAwYzE0NC42IDAgMTk0LjktNjcuMiAxOTYuNy0xNjUuNmwtNTcuMSAwem0tMTA5LjggMGwtNTYuMiAwIDAtOTEuMiA1NC40IDAgMCAyMi43LTMxLjcgMCAwIDEwLjYgMzAgMCAwIDIyLjctMzAgMCAwIDEyLjUgMzMuNSAwIDAgMjIuN3ptNzQuNyAwbC01LjItMTcuNy0yOS43IDAtNS4yIDE3LjctMjMuNyAwIDI3LjUtOTEuMyAzMi4zIDAgMjcuNSA5MS4zLTIzLjcgMHpNMjY3LjggMzJMLjEgMzIgLjEgNDgwIDI2Ny44IDQ4MGMxNjEuOCAwIDI1MS03OS43IDI1MS0yMjQuNSAwLTgzLjUtMzIuNi0yMjMuNS0yNTEtMjIzLjV6bTAgNDI2LjlsLTI0Ni42IDAgMC00MDUuOSAyNDYuNiAwYzE0Mi4xIDAgMjI5LjkgNjQuNiAyMjkuOSAyMDIuNCAwIDEzNC4xLTgxIDIwMy40LTIyOS45IDIwMy40em04My45LTI2NC45bC03LjUgMjUuOCAxNi40IDAtNy41LTI1LjgtMS40IDB6Il19LGIzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLXBwIixpY29uOls0NDgsNTEyLFtdLCJmMWE3IiwiTTIwNS4zIDE3NC42YzAgMjEuMS0xNC4yIDM4LjEtMzEuNyAzOC4xLTcuMSAwLTEyLjgtMS4yLTE3LjItMy43bDAtNjhjNC40LTIuNyAxMC4xLTQuMiAxNy4yLTQuMiAxNy41IDAgMzEuNyAxNi45IDMxLjcgMzcuOHptNTIuNiA2N2MtNy4xIDAtMTIuOCAxLjUtMTcuMiA0LjJsMCA2OGM0LjQgMi41IDEwLjEgMy43IDE3LjIgMy43IDE3LjQgMCAzMS43LTE2LjkgMzEuNy0zNy44IDAtMjEuMS0xNC4zLTM4LjEtMzEuNy0zOC4xek00NDggODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODUgMjU1LjFjNDEgMCA3NC4yLTM1LjYgNzQuMi03OS42UzIyNiA5NS45IDE4NSA5NS45Yy0xMiAwLTI0LjEgMy4yLTM0LjYgOC44bC00NS43IDAgMCAyMDYuMyA1MS44LTEwLjEgMC01MC42YzguNiAzLjEgMTguMSA0LjggMjguNSA0Ljh6bTE1OC40IDI1LjNjMC00NC0zMy4yLTc5LjYtNzMuOS03OS42LTMuMiAwLTYuNCAuMi05LjYgLjctMy43IDEyLjUtMTAuMSAyMy44LTE5LjIgMzMuNC0xMy44IDE1LTMyLjIgMjMuOC01MS44IDI0LjhsMCAxNTYuMyA1MS44LTEwLjEgMC01MC42YzguNiAzLjIgMTguMiA0LjcgMjguNyA0LjcgNDAuOCAwIDc0LTM1LjYgNzQtNzkuNnoiXX0sdjN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVzc3VubmFoIixpY29uOls1MTIsNTEyLFtdLCJmNDA3IiwiTTQ5Ni45IDI2OC4xYzAgNjMuOS0yNS40IDEyNS4yLTcwLjYgMTcwLjNTMzE5LjkgNTA5IDI1NiA1MDkgMTMwLjggNDgzLjUgODUuNyA0MzguNCAxNS4xIDMzMS45IDE1LjEgMjY4YzAtNjMuOSAyNS40LTEyNS4yIDcwLjYtMTcwLjRTMTkyLjIgMjcuMSAyNTYuMSAyNy4xIDM4MS4zIDUyLjQgNDI2LjUgOTcuNiA0OTcgMjA0LjEgNDk3IDI2OGwtLjEgLjF6TTM5LjUgMjY4Yy0uNiAyOC44IDQuNSA1Ny41IDE1LjEgODQuM3MyNi40IDUxLjIgNDYuNiA3MS44IDQ0LjIgMzcgNzAuOCA0OC4xIDU1LjEgMTYuOSA4My45IDE2LjkgNTcuNC01LjggODMuOS0xNi45IDUwLjYtMjcuNSA3MC44LTQ4LjEgMzYtNDUgNDYuNi03MS44IDE1LjctNTUuNSAxNS4xLTg0LjNjLjYtMjguOC00LjUtNTcuNS0xNS4xLTg0LjNzLTI2LjQtNTEuMi00Ni42LTcxLjgtNDQuMi0zNy03MC44LTQ4LjEtNTUuMS0xNi45LTgzLjktMTYuOS01Ny40IDUuOC04My45IDE2LjktNTAuNiAyNy41LTcwLjggNDguMS0zNiA0NS00Ni42IDcxLjgtMTUuNyA1NS41LTE1LjEgODQuM3ptMzg1LjkgNjMuM2MtMTIuNyAwLTIxLjYtMS45LTI2LjctNS45LTUuNS00LjMtOC4yLTEyLjMtOC4yLTIzLjhsMC05Ni41YzAtNi41LTUuMi0yMC4yLTE1LjctNDEuMiA3IDAgMTctOS4xIDMwLTI3LjJsMCAxNDcuOGMwIDExIDIuNCAxOS40IDcgMjUuMyAzLjcgNC43IDEwLjEgOC45IDE5IDEyLjYgMS4yIC40IDIuNiAuOSA0LjEgMS40IDIuOSAuOSA2LjMgMi4xIDEwLjMgMy41LTEuOCAyLjctOC4zIDQtMTkuOSA0bC4xIDB6bS0yMTkgMGMtMS4zIDIuNC0zLjYgNS41LTYuOCA5LjRsLTE4LjUgMjIuNWMtMS02LjEtNC0xMy05LjMtMjAuNnMtOS43LTExLjQtMTMuNC0xMS40bC04OS44IDBjMy4zLTUuMyA0LjktOC44IDQuOS0xMC44cy0uOC01LjMtMi40LTkuN2MtMS41LTQuNC0yLjQtOC41LTIuNC0xMi40IDAtNy40IDIuMS0xMy45IDYuMy0xOS4zbDIwLTI1LjYtNy4xLTE3LjcgMTYuMS0xOS44IDYuNyAxNi44IDgtMTAuM2MtMS44IDYuNC0yLjYgMTIuMy0yLjYgMTcuNyAwIDQuMiAyLjggMTMuMyA4LjMgMjcuM2wxNi4yIDQwLjcgMTcuNyAwYzIuOCAuNCA3LjcgNSAxNC42IDEzLjkgMS44IDIuNCA0LjMgNS44IDcuNyAxMC4yIDEuNCAxLjkgMi45IDMuOSA0LjYgNi4xIDEuMy0yLjMgMi00LjYgMi03LjEgMC0yLTEuMy02LjYtNC0xMy40TDE3OCAzMDQuMWMtNC0xMC42LTYuMS0xNy43LTYuMS0yMS4zIDAtNi4zIDEuOS0xMi4zIDUuOC0xNy45IC41LS42IDEtMS4zIDEuNS0xLjkgNC40LTUuNiA4LjgtMTEuMSAxMy4zLTE2LjUtMS4xIDQuNi0xLjcgOC43LTEuNyAxMiAwIDMuNyAxLjcgOS45IDUuMSAxOC44bDcuOSAyMC40YzEuOSA0LjcgMyA4LjIgMy43IDEwLjNsMjUuOSAwLS45LTIuNmMtMS40LTMuOS00LTctNy43LTkuM2wxNS42LTIwLjEgMTIuMyAzMiAxMy40IDAtNi4xLTE1LjhjLTEuNS0zLjktNC03LTcuNy05LjNsMTUuNy0yMC4xIDE3LjMgNDUuMiAxMy40IDAtMTEuNC0yOS40Yy0xLjUtMy45LTQtNy03LjctOS4zbDE1LjYtMjAgMjIuNCA1OC43IDI2LjIgMGMxLjUgMCAzLTEuMSA0LjUtMy4xczIuMi00LjEgMi4yLTYuM2wwLTkzLjVjMC02LjUtNC41LTIwLjMtMTMuNy00MS4yIDUuNCAwIDE0LjEtOS4xIDI2LjItMjcuMmwwIDE2My41YzAgNy4yIC42IDEyIDEuNyAxNC42IDEuNiAzLjQgNS4zIDYuMiAxMS4xIDguMi0zLjkgNS42LTguNyA4LjUtMTQuNSA4LjVsLTE1NC44IDAtLjEtLjJ6bS05OC00NGMtMi43LTYuNy00LTExLjctNC0xNS0uNiAxLjItMi40IDMuNy01LjQgNy42LTEuNCAxLjktMi4yIDMuNy0yLjIgNS4zIDAgMi42IC44IDUuNyAyLjIgOS4zbDUuNiAxMy45YzUgMCA5IDAgMTEuOS0uMWwtOC4yLTIwLjkgLjEtLjF6bTEzLjUtNzIuNGMtMy01LjItNy05LjMtMTEuOS0xMS45LTMuNS0xLjktNS4zLTQuMy01LjMtNy40IDAtMi40IDQuNi04LjYgMTQtMTguMyAuMiAzLjggMS45IDcuNiA0LjkgMTEuMiAzLjEgMy42IDQuNiA3IDQuNiAxMC4xIDAgMi42LTIuMSA4LTYuMiAxNi4zbC0uMSAwem0tMjcuNiAwYy0zLTUuMi03LTkuMy0xMS45LTExLjktMy41LTEuOS01LjMtNC4zLTUuMy03LjQgMC0yLjQgNC42LTguNiAxNC0xOC4zIC4yIDMuOCAxLjkgNy42IDQuOSAxMS4yIDMuMSAzLjYgNC42IDcgNC42IDEwLjEgMCAyLjYtMi4xIDgtNi4yIDE2LjNsLS4xIDB6bTg3IDI3LjVjLTMtNS4yLTctOS4zLTExLjktMTEuOS0zLjUtMS45LTUuMy00LjMtNS4zLTcuNCAwLTIuNCA0LjYtOC42IDE0LTE4LjMgLjIgMy44IDEuOSA3LjYgNC45IDExLjIgMy4xIDMuNiA0LjYgNyA0LjYgMTAuMSAwIDIuNi0yLjEgOC02LjIgMTYuM2wtLjEgMHoiXX0seTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcnQtYXdlc29tZS1hbHQiLGljb246WzUxMiw1MTIsW10sImYzYTMiLCJNMjA4IDIzNy40bC0yMi4yIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43bDIyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC01MS43YzAtMi4xLTEuNi0zLjctMy43LTMuN3ptMTE4LjIgMGwtMjIuMiAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN2wyMi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtNTEuN2MtLjEtMi4xLTEuNy0zLjctMy43LTMuN3ptMTMyLTEyNS4xYy0yLjMtMy4yLTQuNi02LjQtNy4xLTkuNS05LjgtMTIuNS0yMC44LTI0LTMyLjgtMzQuNC00LjUtMy45LTkuMS03LjYtMTMuOS0xMS4yLTEuNi0xLjItMy4yLTIuMy00LjgtMy41LTI3LjYtMTkuNi01OS4zLTMzLjctOTMuNi00MC43LTE2LjItMy4zLTMyLjktNS01MC01cy0zMy45IDEuNy01MCA1Yy0zNC4zIDcuMS02NiAyMS4yLTkzLjMgNDAuOC0xLjYgMS4xLTMuMiAyLjMtNC44IDMuNS00LjggMy42LTkuNCA3LjMtMTMuOSAxMS4yLTMgMi42LTUuOSA1LjMtOC44IDhzLTUuNyA1LjUtOC40IDguNGMtNS41IDUuNy0xMC43IDExLjgtMTUuNiAxOC0yLjQgMy4xLTQuOCA2LjMtNy4xIDkuNS0yOC45IDQwLjYtNDUuOCA5MC4xLTQ1LjggMTQzLjYgMCAyIC4xIDQgLjEgNiAuMSAuNyAuMSAxLjMgLjEgMiAuMSAxLjMgLjEgMi43IC4yIDQgMCAuOCAuMSAxLjUgLjEgMi4zIDAgMS4zIC4xIDIuNSAuMiAzLjcgLjEgLjggLjEgMS42IC4yIDIuNCAuMSAxLjEgLjIgMi4zIC4zIDMuNSAwIC44IC4xIDEuNiAuMiAyLjQgLjEgMS4yIC4zIDIuNCAuNCAzLjYgLjEgLjggLjIgMS41IC4zIDIuMyAuMSAxLjMgLjMgMi42IC41IDMuOSAuMSAuNiAuMiAxLjMgLjMgMS45bC45IDUuN2MuMSAuNiAuMiAxLjEgLjMgMS43IC4zIDEuMyAuNSAyLjcgLjggNCAuMiAuOCAuMyAxLjYgLjUgMi40IC4yIDEgLjUgMi4xIC43IDMuMiAuMiAuOSAuNCAxLjcgLjYgMi42IC4yIDEgLjQgMiAuNyAzIC4yIC45IC41IDEuOCAuNyAyLjcgLjMgMSAuNSAxLjkgLjggMi45IC4zIC45IC41IDEuOCAuOCAyLjcgLjIgLjkgLjUgMS45IC44IDIuOHMuNSAxLjggLjggMi43Yy4zIDEgLjYgMS45IC45IDIuOCAuNiAxLjYgMS4xIDMuMyAxLjcgNC45IC40IDEgLjcgMS45IDEgMi44IC4zIDEgLjcgMiAxLjEgMyAuMyAuOCAuNiAxLjUgLjkgMi4zbDEuMiAzYy4zIC43IC42IDEuNSAuOSAyLjIgLjQgMSAuOSAyIDEuMyAzbC45IDIuMWMuNSAxIC45IDIgMS40IDMgLjMgLjcgLjYgMS4zIC45IDIgLjUgMSAxIDIuMSAxLjUgMy4xIC4yIC42IC41IDEuMSAuOCAxLjcgLjYgMS4xIDEuMSAyLjIgMS43IDMuMyAuMSAuMiAuMiAuMyAuMyAuNSAyLjIgNC4xIDQuNCA4LjIgNi44IDEyLjIgLjIgLjQgLjUgLjggLjcgMS4yIC43IDEuMSAxLjMgMi4yIDIgMy4zIC4zIC41IC42IC45IC45IDEuNCAuNiAxLjEgMS4zIDIuMSAyIDMuMiAuMyAuNSAuNiAuOSAuOSAxLjQgLjcgMS4xIDEuNCAyLjEgMi4xIDMuMiAuMiAuNCAuNSAuOCAuOCAxLjIgLjcgMS4xIDEuNSAyLjIgMi4zIDMuMyAuMiAuMiAuMyAuNSAuNSAuNyAzNy41IDUxLjcgOTQuNCA4OC41IDE2MCA5OS40IC45IC4xIDEuNyAuMyAyLjYgLjQgMSAuMiAyLjEgLjQgMy4xIC41czEuOSAuMyAyLjggLjRjMSAuMiAyIC4zIDMgLjQgLjkgLjEgMS45IC4yIDIuOSAuM3MxLjkgLjIgMi45IC4zIDIuMSAuMiAzLjEgLjNjLjkgLjEgMS44IC4xIDIuNyAuMiAxLjEgLjEgMi4zIC4xIDMuNCAuMiAuOCAwIDEuNyAuMSAyLjUgLjEgMS4zIDAgMi42IC4xIDMuOSAuMSAuNyAuMSAxLjQgLjEgMi4xIC4xIDIgLjEgNCAuMSA2IC4xczQtLjEgNi0uMWMuNyAwIDEuNC0uMSAyLjEtLjEgMS4zIDAgMi42IDAgMy45LS4xIC44IDAgMS43LS4xIDIuNS0uMSAxLjEtLjEgMi4zLS4xIDMuNC0uMiAuOSAwIDEuOC0uMSAyLjctLjIgMS0uMSAyLjEtLjIgMy4xLS4zczEuOS0uMiAyLjktLjNjLjktLjEgMS45LS4yIDIuOS0uM3MyLS4zIDMtLjQgMS45LS4zIDIuOC0uNGMxLS4yIDIuMS0uMyAzLjEtLjUgLjktLjEgMS43LS4zIDIuNi0uNCA2NS42LTExIDEyMi41LTQ3LjcgMTYwLjEtMTAyLjQgLjItLjIgLjMtLjUgLjUtLjcgLjgtMS4xIDEuNS0yLjIgMi4zLTMuMyAuMi0uNCAuNS0uOCAuOC0xLjIgLjctMS4xIDEuNC0yLjEgMi4xLTMuMiAuMy0uNSAuNi0uOSAuOS0xLjQgLjYtMS4xIDEuMy0yLjEgMi0zLjIgLjMtLjUgLjYtLjkgLjktMS40IC43LTEuMSAxLjMtMi4yIDItMy4zIC4yLS40IC41LS44IC43LTEuMiAyLjQtNCA0LjYtOC4xIDYuOC0xMi4yIC4xLS4yIC4yLS4zIC4zLS41IC42LTEuMSAxLjEtMi4yIDEuNy0zLjMgLjItLjYgLjUtMS4xIC44LTEuNyAuNS0xIDEtMi4xIDEuNS0zLjEgLjMtLjcgLjYtMS4zIC45LTIgLjUtMSAxLTIgMS40LTNsLjktMi4xYy41LTEgLjktMiAxLjMtMyAuMy0uNyAuNi0xLjUgLjktMi4ybDEuMi0zYy4zLS44IC42LTEuNSAuOS0yLjMgLjQtMSAuNy0yIDEuMS0zcy43LTEuOSAxLTIuOGMuNi0xLjYgMS4yLTMuMyAxLjctNC45IC4zLTEgLjYtMS45IC45LTIuOHMuNS0xLjggLjgtMi43Yy4yLS45IC41LTEuOSAuOC0yLjhzLjYtMS44IC44LTIuN2MuMy0xIC41LTEuOSAuOC0yLjkgLjItLjkgLjUtMS44IC43LTIuNyAuMi0xIC41LTIgLjctMyAuMi0uOSAuNC0xLjcgLjYtMi42IC4yLTEgLjUtMi4xIC43LTMuMiAuMi0uOCAuMy0xLjYgLjUtMi40IC4zLTEuMyAuNi0yLjcgLjgtNCAuMS0uNiAuMi0xLjEgLjMtMS43bC45LTUuN2MuMS0uNiAuMi0xLjMgLjMtMS45IC4xLTEuMyAuMy0yLjYgLjUtMy45IC4xLS44IC4yLTEuNSAuMy0yLjMgLjEtMS4yIC4zLTIuNCAuNC0zLjYgMC0uOCAuMS0xLjYgLjItMi40IC4xLTEuMSAuMi0yLjMgLjMtMy41IC4xLS44IC4xLTEuNiAuMi0yLjQgLjEgMS43IC4xIC41IC4yLS43IDAtLjggLjEtMS41IC4xLTIuMyAuMS0xLjMgLjItMi43IC4yLTQgLjEtLjcgLjEtMS4zIC4xLTIgLjEtMiAuMS00IC4xLTYgMC01My41LTE2LjktMTAzLTQ1LjgtMTQzLjd6TTQ0OCAzNzEuNWMtOS40IDE1LjUtMjAuNiAyOS45LTMzLjYgNDIuOS0yMC42IDIwLjYtNDQuNSAzNi43LTcxLjIgNDgtMTMuOSA1LjgtMjguMiAxMC4zLTQyLjkgMTMuMmwwLTc1LjhjMC01OC42LTg4LjYtNTguNi04OC42IDBsMCA3NS44Yy0xNC43LTIuOS0yOS03LjMtNDIuOS0xMy4yLTI2LjctMTEuMy01MC42LTI3LjQtNzEuMi00OC0xMy0xMy0yNC4yLTI3LjQtMzMuNi00Mi45bDAtNzEuM2MwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjggMjkuNiAwIDAtMTQ0YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4xIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtNC44IDYuNS0zLjcgOS41LTMuN2wwLTkwLjJjLTQuNC0yLTcuNC02LjctNy40LTExLjUgMC0xNi44IDI1LjQtMTYuOCAyNS40IDAgMCA0LjgtMyA5LjQtNy40IDExLjVsMCAzLjljNi4zLTEuNCAxMi43LTIuMyAxOS4yLTIuMyA5LjQgMCAxOC40IDMuNSAyNi4zIDMuNSA3LjIgMCAxNS4yLTMuNSAxOS40LTMuNSAyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCA0OC40YzAgNS42LTE4LjcgNi41LTIyLjQgNi41LTguNiAwLTE2LjYtMy41LTI1LjQtMy41LTcgMC0xNC4xIDEuMi0yMC44IDIuOGwwIDMwLjdjMyAwIDkuNS0xLjEgOS41IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMiAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDE0NCAyOS41IDAgMC0yNS44YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgNzEuM3oiXX0sdzN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1cm9tb2JlbGV4cGVydGUiLGljb246WzQ0OCw1MTIsW10sImYzN2YiLCJNMCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMTIwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTE2MCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMjgwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTMyMCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNNDQwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTAgMTkybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0xMjAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0yODAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek00NDAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMCAzNTJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTEyMCA0NzJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTI4MCA0NzJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6Il19LE0zdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaWxpYmlsaSIsaWNvbjpbNTEyLDUxMixbXSwiZTNkOSIsIk00ODguNiAxMDQuMWMxNi43IDE4LjEgMjQuNCAzOS43IDIzLjMgNjUuN2wwIDIwMi40Yy0uNCAyNi40LTkuMiA0OC4xLTI2LjUgNjUuMS0xNy4yIDE3LTM5LjEgMjUuOS02NS41IDI2LjdMOTIgNDY0Yy0yNi40LS44LTQ4LjItOS44LTY1LjMtMjcuMi0xNy4xLTE3LjQtMjYtNDAuMy0yNi43LTY4LjZMMCAxNjkuOGMuOC0yNiA5LjctNDcuNiAyNi43LTY1LjcgMTcuMS0xNi4zIDM4LjgtMjUuMyA2NS4zLTI2LjFsMjkuNCAwLTI1LjQtMjUuOGMtNS43LTUuNy04LjYtMTMtOC42LTIxLjhzMi45LTE2LjEgOC42LTIxLjggMTMtOC42IDIxLjktOC42IDE2LjEgMi45IDIxLjkgOC42bDczLjMgNjkuNCA4OCAwIDc0LjUtNjkuNEMzODEuNyAyLjkgMzg5LjIgMCAzOTggMHMxNi4xIDIuOSAyMS45IDguNmM1LjcgNS43IDguNiAxMyA4LjYgMjEuOHMtMi45IDE2LjEtOC42IDIxLjhMMzk0LjYgNzggNDIzLjkgNzhjMjYuNCAuOCA0OCA5LjggNjQuNyAyNi4xem0tMzguOCA2OS43Yy0uNC05LjYtMy43LTE3LjQtMTAuNy0yMy41LTUuMi02LjEtMTQtOS40LTIyLjctOS44bC0zMjAuNCAwYy05LjYgLjQtMTcuNCAzLjctMjMuNiA5LjgtNi4xIDYuMS05LjQgMTMuOS05LjggMjMuNWwwIDE5NC40YzAgOS4yIDMuMyAxNyA5LjggMjMuNXMxNC40IDkuOCAyMy42IDkuOGwzMjAuNCAwYzkuMiAwIDE3LTMuMyAyMy4zLTkuOHM5LjctMTQuMyAxMC4xLTIzLjVsMC0xOTQuNHpNMTg1LjUgMjE2LjVjNi4zIDYuMyA5LjcgMTQuMSAxMC4xIDIzLjJsMCAzMy4zYy0uNCA5LjItMy43IDE2LjktOS44IDIzLjItNi4yIDYuMy0xNCA5LjUtMjMuNiA5LjVzLTE3LjUtMy4yLTIzLjYtOS41LTkuNC0xNC05LjgtMjMuMmwwLTMzLjNjLjQtOS4xIDMuOC0xNi45IDEwLjEtMjMuMnMxMy4yLTkuNiAyMy4zLTEwYzkuMiAuNCAxNyAzLjcgMjMuMyAxMHptMTkxLjUgMGM2LjMgNi4zIDkuNyAxNC4xIDEwLjEgMjMuMmwwIDMzLjNjLS40IDkuMi0zLjcgMTYuOS05LjggMjMuMnMtMTQgOS41LTIzLjYgOS41LTE3LjQtMy4yLTIzLjYtOS41Yy03LTYuMy05LjQtMTQtOS43LTIzLjJsMC0zMy4zYy4zLTkuMSAzLjctMTYuOSAxMC0yMy4yczE0LjEtOS42IDIzLjMtMTBjOS4yIC40IDE3IDMuNyAyMy4zIDEweiJdfSx6M3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmVvcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjYxMiIsIk0zODMuOCA1MTJsLTk1LjEgMC0xMDguMi0xNTQuNSAwIDkxLjEtODYuNCA2My40LTk3LjcgMCAwLTQ4Mi4yIDQwLjUtMjkuOCAxMDggMCAxMjMuNyAxNzYuMSAwLTExMi43IDg2LjQtNjMuNCA5Ny43IDAgMCA0NjEuNS02OC45IDUwLjV6TTcuMiAzNS4zbDAgNDYwLjcgNzItNTIuOSAwLTI0OS4xIDIxNS41IDMwNy42IDg0LjggMCA1Mi40LTM4LjItNzguMyAwLTMxNi4xLTQ1MC41LTMwLjIgMjIuM3pNODkuNyA1MDEuOWw4MC01OC44IDAtMTAxLTc5LjgtMTE0LjQgMCAyMjAuOS03Mi42IDUzLjMgNzIuMyAwIDAgMHpNNDkgMTAuOGwzMTAuNiA0NDIuNiA4Mi40IDAgMC00NDIuNi03OS44IDAgMCAzMTcuNi0yMjIuOS0zMTcuNi05MC4zIDB6TTI3OS40IDE5MS42bDcyIDEwMi44IDAtMjc4LjUtNzIgNTMgMCAxMjIuN3oiXX0sazN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRldiIsaWNvbjpbNDQ4LDUxMixbXSwiZjZjYyIsIk0xMjAuMSAyMDguM2MtMy45LTIuOS03LjgtNC4zLTExLjYtNC4zbC0xNy40IDAgMCAxMDQuNSAxNy40IDBjMy45IDAgNy44LTEuNCAxMS42LTQuM3M1LjgtNy4zIDUuOC0xMy4xbDAtNjkuN2MwLTUuOC0yLTEwLjItNS44LTEzLjF6TTQwNC4xIDMyTDQzLjkgMzJDMTkuNyAzMiAuMSA1MS42IDAgNzUuOEwwIDQzNi4yQy4xIDQ2MC40IDE5LjcgNDgwIDQzLjkgNDgwbDM2MC4yIDBjMjQuMiAwIDQzLjgtMTkuNiA0My45LTQzLjhsMC0zNjAuNEM0NDcuOSA1MS42IDQyOC4zIDMyIDQwNC4xIDMyek0xNTQuMiAyOTEuMmMwIDE4LjgtMTEuNiA0Ny4zLTQ4LjQgNDcuM2wtNDYuNCAwIDAtMTY1LjUgNDcuNCAwYzM1LjQgMCA0Ny40IDI4LjUgNDcuNCA0Ny4zbDAgNzAuOXptMTAwLjctODguN2wtNTMuMyAwIDAgMzguNCAzMi42IDAgMCAyOS42LTMyLjYgMCAwIDM4LjQgNTMuMyAwIDAgMjkuNi02Mi4yIDBjLTExLjIgLjMtMjAuNC04LjUtMjAuNy0xOS43bDAtMTI1LjFjLS4zLTExLjEgOC42LTIwLjQgMTkuNy0yMC43bDYzLjIgMCAwIDI5LjV6TTM1OC41IDMxNy44Yy0xMy4yIDMwLjctMzYuOCAyNC42LTQ3LjQgMGwtMzguNS0xNDQuOCAzMi42IDAgMjkuNyAxMTMuNyAyOS42LTExMy43IDMyLjYgMC0zOC41IDE0NC44eiJdfSxTM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG90amFyIixpY29uOls1MTIsNTEyLFtdLCJmM2IxIiwiTTM2MS44IDBjMCAxMzEuNi04MC43IDE3Ni44LTE0MC4yIDIwOS40LS42IC4zLTEuMSAuNi0xLjYgLjktNTMuOCAzMC4yLTg4LjcgNDkuOC04OS42IDEyMmwtOTguMSAwYzAtMTMxLjUgODAuNy0xNzYuNyAxNDAuMi0yMDkuMyA1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OSAwek0zMDEuMyAzMDIuNmM1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OCAwYzAgMTMxLjYtODAuNyAxNzYuNy0xNDAuMiAyMDkuNC01NC44IDI5LjgtOTAuMyA1MC05MC4zIDEyM2wtOTggMGMwLTEzMS42IDgwLjctMTc2LjggMTQwLjItMjA5LjR6Il19LEMzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkb2NodWIiLGljb246WzQ0OCw1MTIsW10sImYzOTQiLCJNNDEzLjkgMTYwTDI3MiAxNjAgMjcyIDE5LjYgNDEzLjkgMTYwek0zMjAgMTkybDAgMTMwYzAgNjYuOC0zNi41IDEwMC4xLTExMy4zIDEwMC4xbC05NC43IDAgMC0zMzcuMyA5NC43IDBjMTIgMCAyMy4xIC44IDMzLjEgMi41bDAtODRDMjI4LjkgMS4xIDIxNy40IDAgMjA1LjIgMEwxNiAwIDE2IDUxMiAyMDUuMiA1MTJDMzQ1LjcgNTEyIDQxNiA0NDcuNCA0MTYgMzE4LjFsMC0xMjYuMS05NiAweiJdfSxMM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltZW8iLGljb246WzQ0OCw1MTIsW10sImY0MGEiLCJNNDAzLjIgMzJMNDQuOCAzMkMyMC4xIDMyIDAgNTIuMSAwIDc2LjhMMCA0MzUuMkMwIDQ1OS45IDIwLjEgNDgwIDQ0LjggNDgwbDM1OC40IDBjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0LjhsMC0zNTguNEM0NDggNTIuMSA0MjcuOSAzMiA0MDMuMiAzMnpNMzc3IDE4MC44Yy0xLjQgMzEuNS0yMy40IDc0LjctNjYgMTI5LjQtNDQgNTcuMi04MS4zIDg1LjgtMTExLjcgODUuOC0xOC45IDAtMzQuOC0xNy40LTQ3LjktNTIuMy0yNS41LTkzLjMtMzYuNC0xNDgtNTcuNC0xNDgtMi40IDAtMTAuOSA1LjEtMjUuNCAxNS4yTDUzLjQgMTkxLjNjMzcuMy0zMi44IDcyLjktNjkuMiA5NS4yLTcxLjIgMjUuMi0yLjQgNDAuNyAxNC44IDQ2LjUgNTEuNyAyMC43IDEzMS4yIDI5LjkgMTUxIDY3LjYgOTEuNiAxMy41LTIxLjQgMjAuOC0zNy43IDIxLjgtNDguOSAzLjUtMzMuMi0yNS45LTMwLjktNDUuOC0yMi40IDE1LjktNTIuMSA0Ni4zLTc3LjQgOTEuMi03NiAzMy4zIC45IDQ5IDIyLjUgNDcuMSA2NC43eiJdfSxUM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWF4Y2RuIixpY29uOls1MTIsNTEyLFtdLCJmMTM2IiwiTTQ2MS4xIDQ0Mi43bC05Ny40IDAgNTEuOS0yNDIuN2MyLjMtMTAuMiAuOS0xOS41LTQuNC0yNS43LTUtNi4xLTEzLjctOS42LTI0LjItOS42bC00OS4zIDAtNTkuNSAyNzgtOTcuNCAwIDU5LjUtMjc4LTgzLjQgMC01OS41IDI3OC05Ny40IDAgNTkuNS0yNzgtNDQuNi05NS40IDM3Mi4xIDBjMzkuNCAwIDc1LjMgMTYuMyA5OC4zIDQ0LjkgMjMuMyAyOC42IDMxLjggNjcuNCAyMy42IDEwNS45TDQ2MS4xIDQ0Mi43eiJdfSxyMmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZS1zdHJva2UiLGljb246WzQ0OCw1MTIsWyJmb250LWF3ZXNvbWUtYWx0Il0sImYzNWMiLCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTU0IDU4YzAgOS4zLTQuOCAxNy40LTEyLjEgMjJsMTg4LjkgMGM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCAxLjgtLjQgMy43LTEuMSA1LjRMMzEyIDI2NCAzNDIuOSAzMzMuNGMuOCAxLjcgMS4xIDMuNSAxLjEgNS40IDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMmwtMTg2LjggMCAwIDMyLTMyIDAgMC0yMDkuNWMtNi4xLTQuOC0xMC0xMi4yLTEwLTIwLjUgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNnoiXX0sXzN0PXIyZSxBM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BlYWthcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNmMyIsIk02NC40IDM5MS44Qy0xNSAzMDMuNi03LjYgMTY3LjQgODEuMSA4Ny42czIyNC44LTczIDMwNC4yIDE1LjIgNzIgMjI0LjQtMTYuNiAzMDQuMWMtMTguNyAxNi45IDY0IDQzLjEgNDIgNTIuMy04Mi4xIDM0LjItMjUzLjkgMzUtMzQ2LjItNjcuNWwwIDB6TTI3Ny43IDE4MC4ybDM4LjUtNDAuOWMtOS42LTguOS0zMi0yNi44LTc2LjItMjcuNi01Mi4zLS45LTk1LjkgMjguMy05Ni44IDgwLS4yIDExLjMgLjMgMzYuNyAyOS40IDU0LjggMzQuNSAyMS40IDg2LjUgMjEuNSA4NiA1Mi4zLS40IDIxLjMtMjYuNCAyNS44LTM4LjYgMjUuNi0zIDAtMzAuMi0uNS00Ny42LTI0LjZsLTQwIDQyLjZjMjguMiAyNyA1OSAzMi42IDgzLjUgMzMgMTAuMiAuMiA5Ni40IC4zIDk3LjgtODEgLjMtMTUuOC0yLjEtMzkuNy0yOC45LTU2LjYtMzQuNC0yMS42LTg1LTE5LjQtODQuNC00OS43IC40LTIzLjMgMzEtMjUuNCAzNy41LTI1LjMgLjQgMCAyNi42IC4zIDM5LjYgMTcuNGwwIDB6Il19LCQzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYW50YXN5LWZsaWdodC1nYW1lcyIsaWNvbjpbNTEyLDUxMixbXSwiZjZkYyIsIk0yNTYgMzIuOUwzMi45IDI1NiAyNTYgNDc5LjEgNDc5LjEgMjU2IDI1NiAzMi45ek04OC4zIDI1NS44YzItMiAxMS45LTEyLjMgOTYuNS05Ny41IDQxLjQtNDEuOCA4Ni4yLTQzLjggMTE5LjgtMTguNyAyNC42IDE4LjQgNjIuMSA1OC45IDYyLjEgNTkgLjcgLjcgMS4xIDIuOSAuNiAzLjQtMTEuMyAxMS44LTIyLjcgMjMuNS0zMy41IDM0LjctMzQuMi0zMi4zLTQwLjUtMzguMi00OC41LTQ0LTE3LjgtMTIuNy00MS40LTEwLjEtNTcgNS4xLTIuMiAyLjEtMS44IDMuNCAuMSA1LjQgMi45IDIuOSAyOC4xIDI4LjMgMzUuMSAzNS44LTExLjkgMTEuNi0yMy43IDIzLTM1LjcgMzQuNy0xMi0xMi41LTI0LjUtMjUuNS0zNi41LTM4LjEtMjEuNCAyMS4xLTQxLjcgNDEuMS02MS44IDYxTDg4LjMgMjU1Ljh6TTMyMy4yIDM1Ny40Yy0zNS41IDM1LjQtNzguMSAzOC4xLTEwNyAyMC41LTIyLjEtMTMuNS0zOS40LTMyLjEtNzIuOS02Ni44IDEyLTEyLjQgMjMuOC0yNC40IDM1LjQtMzYuMyAzMyAzMS45IDM3LjEgMzYgNDQuNyA0Mi4xIDE4LjUgMTQuNyA0Mi41IDEzLjcgNTkuMy0xLjggMy43LTMuNCAzLjctMy42IC4xLTcuMi0xMC42LTEwLjctMjEuMi0yMS40LTMxLjgtMzIuMi0xLjMtMS4zLTMtMi41LS44LTQuNyAxMC44LTEwLjcgMjEuNS0yMS41IDMyLjItMzIuMyAuMy0uMyAuNi0uNCAxLjktMS4xIDEyLjQgMTIuOSAyNC45IDI1LjkgMzcuMiAzOC44IDIxLTIwLjcgNDEuMi00MC43IDYxLjMtNjAuNCAxMy43IDEzLjQgMjcuMSAyNi42IDQwLjkgNDAtMjAuMiAyMC45LTgxLjcgODIuNy0xMDAuNSAxMDEuNXpNMjU2IDBMMCAyNTYgMjU2IDUxMiA1MTIgMjU2IDI1NiAwek0xNiAyNTZMMjU2IDE2IDQ5NiAyNTYgMjU2IDQ5NiAxNiAyNTZ6Il19LEQzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW51eCIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3YyIsIk0yMjAuOSAxMjMuM2MxIC41IDEuOCAxLjcgMyAxLjcgMS4xIDAgMi44LS40IDIuOS0xLjUgLjItMS40LTEuOS0yLjMtMy4yLTIuOS0xLjctLjctMy45LTEtNS41LS4xLS40IC4yLS44IC43LS42IDEuMSAuMyAxLjMgMi4zIDEuMSAzLjQgMS43ek0xOTkgMTI1YzEuMiAwIDItMS4yIDMtMS43IDEuMS0uNiAzLjEtLjQgMy41LTEuNiAuMi0uNC0uMi0uOS0uNi0xLjEtMS42LS45LTMuOC0uNi01LjUgLjEtMS4zIC42LTMuNCAxLjUtMy4yIDIuOSAuMSAxIDEuOCAxLjUgMi44IDEuNHpNNDIwIDQwMy44Yy0zLjYtNC01LjMtMTEuNi03LjItMTkuNy0xLjgtOC4xLTMuOS0xNi44LTEwLjUtMjIuNC0xLjMtMS4xLTIuNi0yLjEtNC0yLjktMS4zLS44LTIuNy0xLjUtNC4xLTIgOS4yLTI3LjMgNS42LTU0LjUtMy43LTc5LjEtMTEuNC0zMC4xLTMxLjMtNTYuNC00Ni41LTc0LjQtMTcuMS0yMS41LTMzLjctNDEuOS0zMy40LTcyIC41LTQ1LjkgNS4xLTEzMS4yLTc1LjgtMTMxLjMtMTAyLjQtLjItNzYuOCAxMDMuNC03Ny45IDEzNS4yLTEuNyAyMy40LTYuNCA0MS44LTIyLjUgNjQuNy0xOC45IDIyLjUtNDUuNSA1OC44LTU4LjEgOTYuNy02IDE3LjktOC44IDM2LjEtNi4yIDUzLjMtNi41IDUuOC0xMS40IDE0LjctMTYuNiAyMC4yLTQuMiA0LjMtMTAuMyA1LjktMTcgOC4zcy0xNCA2LTE4LjUgMTQuNWMtMi4xIDMuOS0yLjggOC4xLTIuOCAxMi40IDAgMy45IC42IDcuOSAxLjIgMTEuOCAxLjIgOC4xIDIuNSAxNS43IC44IDIwLjgtNS4yIDE0LjQtNS45IDI0LjQtMi4yIDMxLjcgMy44IDcuMyAxMS40IDEwLjUgMjAuMSAxMi4zIDE3LjMgMy42IDQwLjggMi43IDU5LjMgMTIuNSAxOS44IDEwLjQgMzkuOSAxNC4xIDU1LjkgMTAuNCAxMS42LTIuNiAyMS4xLTkuNiAyNS45LTIwLjIgMTIuNS0uMSAyNi4zLTUuNCA0OC4zLTYuNiAxNC45LTEuMiAzMy42IDUuMyA1NS4xIDQuMSAuNiAyLjMgMS40IDQuNiAyLjUgNi43bDAgLjFjOC4zIDE2LjcgMjMuOCAyNC4zIDQwLjMgMjMgMTYuNi0xLjMgMzQuMS0xMSA0OC4zLTI3LjkgMTMuNi0xNi40IDM2LTIzLjIgNTAuOS0zMi4yIDcuNC00LjUgMTMuNC0xMC4xIDEzLjktMTguMyAuNC04LjItNC40LTE3LjMtMTUuNS0yOS43ek0yMjMuOCA4Ny4zYzkuOC0yMi4yIDM0LjItMjEuOCA0NC0uNCA2LjUgMTQuMiAzLjYgMzAuOS00LjMgNDAuNC0xLjYtLjgtNS45LTIuNi0xMi42LTQuOSAxLjEtMS4yIDMuMS0yLjcgMy45LTQuNiA0LjgtMTEuOC0uMi0yNy05LjEtMjcuMy03LjMtLjUtMTMuOSAxMC44LTExLjggMjMtNC4xLTItOS40LTMuNS0xMy00LjQtMS02LjktLjMtMTQuNiAyLjktMjEuOHpNMTgzLjEgNzUuOGMxMC4xIDAgMjAuOCAxNC4yIDE5LjEgMzMuNS0zLjUgMS03LjEgMi41LTEwLjIgNC42IDEuMi04LjktMy4zLTIwLjEtOS42LTE5LjYtOC40IC43LTkuOCAyMS4yLTEuOCAyOC4xIDEgLjggMS45LS4yLTUuOSA1LjUtMTUuNi0xNC42LTEwLjUtNTIuMSA4LjQtNTIuMXptLTEzLjYgNjAuN2M2LjItNC42IDEzLjYtMTAgMTQuMS0xMC41IDQuNy00LjQgMTMuNS0xNC4yIDI3LjktMTQuMiA3LjEgMCAxNS42IDIuMyAyNS45IDguOSA2LjMgNC4xIDExLjMgNC40IDIyLjYgOS4zIDguNCAzLjUgMTMuNyA5LjcgMTAuNSAxOC4yLTIuNiA3LjEtMTEgMTQuNC0yMi43IDE4LjEtMTEuMSAzLjYtMTkuOCAxNi0zOC4yIDE0LjktMy45LS4yLTctMS05LjYtMi4xLTgtMy41LTEyLjItMTAuNC0yMC0xNS04LjYtNC44LTEzLjItMTAuNC0xNC43LTE1LjMtMS40LTQuOSAwLTkgNC4yLTEyLjN6bTMuMyAzMzRjLTIuNyAzNS4xLTQzLjkgMzQuNC03NS4zIDE4LTI5LjktMTUuOC02OC42LTYuNS03Ni41LTIxLjktMi40LTQuNy0yLjQtMTIuNyAyLjYtMjYuNGwwLS4yYzIuNC03LjYgLjYtMTYtLjYtMjMuOS0xLjItNy44LTEuOC0xNSAuOS0yMCAzLjUtNi43IDguNS05LjEgMTQuOC0xMS4zIDEwLjMtMy43IDExLjgtMy40IDE5LjYtOS45IDUuNS01LjcgOS41LTEyLjkgMTQuMy0xOCA1LjEtNS41IDEwLTguMSAxNy43LTYuOSA4LjEgMS4yIDE1LjEgNi44IDIxLjkgMTZsMTkuNiAzNS42YzkuNSAxOS45IDQzLjEgNDguNCA0MSA2OC45em0tMS40LTI1LjljLTQuMS02LjYtOS42LTEzLjYtMTQuNC0xOS42IDcuMSAwIDE0LjItMi4yIDE2LjctOC45IDIuMy02LjIgMC0xNC45LTcuNC0yNC45LTEzLjUtMTguMi0zOC4zLTMyLjUtMzguMy0zMi41LTEzLjUtOC40LTIxLjEtMTguNy0yNC42LTI5LjlzLTMtMjMuMy0uMy0zNS4yYzUuMi0yMi45IDE4LjYtNDUuMiAyNy4yLTU5LjIgMi4zLTEuNyAuOCAzLjItOC43IDIwLjgtOC41IDE2LjEtMjQuNCA1My4zLTIuNiA4Mi40IC42LTIwLjcgNS41LTQxLjggMTMuOC02MS41IDEyLTI3LjQgMzcuMy03NC45IDM5LjMtMTEyLjcgMS4xIC44IDQuNiAzLjIgNi4yIDQuMSA0LjYgMi43IDguMSA2LjcgMTIuNiAxMC4zIDEyLjQgMTAgMjguNSA5LjIgNDIuNCAxLjIgNi4yLTMuNSAxMS4yLTcuNSAxNS45LTkgOS45LTMuMSAxNy44LTguNiAyMi4zLTE1IDcuNyAzMC40IDI1LjcgNzQuMyAzNy4yIDk1LjcgNi4xIDExLjQgMTguMyAzNS41IDIzLjYgNjQuNiAzLjMtLjEgNyAuNCAxMC45IDEuNCAxMy44LTM1LjctMTEuNy03NC4yLTIzLjMtODQuOS00LjctNC42LTQuOS02LjYtMi42LTYuNSAxMi42IDExLjIgMjkuMiAzMy43IDM1LjIgNTkgMi44IDExLjYgMy4zIDIzLjcgLjQgMzUuNyAxNi40IDYuOCAzNS45IDE3LjkgMzAuNyAzNC44LTIuMi0uMS0zLjIgMC00LjIgMCAzLjItMTAuMS0zLjktMTcuNi0yMi44LTI2LjEtMTkuNi04LjYtMzYtOC42LTM4LjMgMTIuNS0xMi4xIDQuMi0xOC4zIDE0LjctMjEuNCAyNy4zLTIuOCAxMS4yLTMuNiAyNC43LTQuNCAzOS45LS41IDcuNy0zLjYgMTgtNi44IDI5LTMyLjEgMjIuOS03Ni43IDMyLjktMTE0LjMgNy4yem0yNTcuNC0xMS41Yy0uOSAxNi44LTQxLjIgMTkuOS02My4yIDQ2LjUtMTMuMiAxNS43LTI5LjQgMjQuNC00My42IDI1LjVzLTI2LjUtNC44LTMzLjctMTkuM2MtNC43LTExLjEtMi40LTIzLjEgMS4xLTM2LjMgMy43LTE0LjIgOS4yLTI4LjggOS45LTQwLjYgLjgtMTUuMiAxLjctMjguNSA0LjItMzguNyAyLjYtMTAuMyA2LjYtMTcuMiAxMy43LTIxLjEgLjMtLjIgLjctLjMgMS0uNSAuOCAxMy4yIDcuMyAyNi42IDE4LjggMjkuNSAxMi42IDMuMyAzMC43LTcuNSAzOC40LTE2LjMgOS0uMyAxNS43LS45IDIyLjYgNS4xIDkuOSA4LjUgNy4xIDMwLjMgMTcuMSA0MS42IDEwLjYgMTEuNiAxNCAxOS41IDEzLjcgMjQuNnpNMTczLjQgMTQ4LjdjMiAxLjkgNC43IDQuNSA4IDcuMSA2LjYgNS4yIDE1LjggMTAuNiAyNy4zIDEwLjYgMTEuNiAwIDIyLjUtNS45IDMxLjgtMTAuOCA0LjktMi42IDEwLjktNyAxNC44LTEwLjRzNS45LTYuMyAzLjEtNi42LTIuNiAyLjYtNiA1LjFjLTQuNCAzLjItOS43IDcuNC0xMy45IDkuOC03LjQgNC4yLTE5LjUgMTAuMi0yOS45IDEwLjJzLTE4LjctNC44LTI0LjktOS43Yy0zLjEtMi41LTUuNy01LTcuNy02LjktMS41LTEuNC0xLjktNC42LTQuMy00LjktMS40LS4xLTEuOCAzLjcgMS43IDYuNXoiXX0sRTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvdHRvbi1idXJlYXUiLGljb246WzUxMiw1MTIsW10sImY4OWUiLCJNNDc0LjMgMzMwLjRDNDUwLjYgNDIyLjMgMzgwLjEgNDc1IDI3Mi40IDQ3OC44bDAtNDkuMmMwLTQ4IDI2LjQtNzQuNCA3NC40LTc0LjQgNjIgMCA5OS4yLTM3LjIgOTkuMi05OS4yIDAtNjEuNC0zNi41LTk4LjMtOTcuNC05OS4xLTMzLTY5LjMtMTQ2LjUtNjQuNy0xNzcuMiAwLTYwLjkgLjgtOTcuNCAzNy43LTk3LjQgOTkuMSAwIDYyLjEgMzcuMyA5OS40IDk5LjQgOTkuNCA0OCAwIDc0LjYgMjYuMiA3NC42IDc0LjRsMCA0OS4yYy0xMzQuNC01LTIxMS4xLTg1LjEtMjExLjEtMjIzIDAtMTQxLjggODEuNC0yMjMuMiAyMjMuMi0yMjMuMiAxMTQuOCAwIDE4OS44IDUzLjIgMjE0LjcgMTQ4LjhsMjUuMyAwQzQ3My45IDcxLjUgMzg4LjIgOCAyNTkuOCA4IDEwNSA4IDEyIDEwMS4yIDEyIDI1NS44IDEyIDQxMS4xIDEwNS4yIDUwNC4zIDI1OS44IDUwNCAzODguMSA1MDQgNDczLjcgNDQwLjIgNDk5LjUgMzMwLjRsLTI1LjIgMHpNMzU3IDE4Mi4zYzQxLjQgMy40IDY0LjIgMjkgNjQuMiA3My43IDAgNDgtMjYuNCA3NC40LTc0LjQgNzQuNC0yOC42IDAtNDkuMy05LjYtNjEuNi0yNy4zIDgzLjEtMTYuNSA3NS42LTk5LjcgNzEuOC0xMjAuN3ptLTgxLjcgOTcuNGMtMi41LTEwLjMtMTYuMy04NyA1Ni4yLTk3IDIuMyAxMC4xIDE2LjUgODcuMS01Ni4zIDk3bDAgMHpNMjYwIDEzMmMyOC42IDAgNDkgOS43IDYxLjQgMjcuNi0yOC40IDUuNS00OS40IDIwLjYtNjEuNiA0My40LTEyLjItMjIuOS0zMy4yLTM4LTYxLjYtNDMuNCAxMi40LTE3LjcgMzMuMy0yNy40IDYxLjYtMjcuNGwuMi0uM3ptLTcxLjUgNTAuN2M3My4yIDEwLjYgNTguOSA4Ni44IDU2LjUgOTctNzIuNC05LjgtNTktODctNTYuMi05N2wtLjIgMHpNMTczLjIgMzMwLjRjLTQ4IDAtNzQuNC0yNi40LTc0LjQtNzQuNCAwLTQ0LjQgMjIuOS03MCA2NC4yLTczLjctNi44IDM3LjItMS40IDEwNi41IDcxLjYgMTIwLjctMTIuMSAxNy42LTMyLjggMjcuMy02MS4xIDI3LjNsLS4zIDB6bTUzLjIgMTIuNGMxNC4zLTcuNiAyNi0xOS4zIDMzLjYtMzMuNSA3LjggMTQuNSAxOS4zIDI1LjUgMzMuOCAzMy41LTE0LjQgNy42LTI2LjEgMTkuNC0zMy42IDMzLjgtOC0xNC41LTE5LjEtMjYuMi0zMy42LTMzLjhsLS4zIDB6Il19LE4zdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtd2FsbGV0IixpY29uOls0NDgsNTEyLFtdLCJmMWVlIiwiTTE1Ni44IDEyNi44YzM3LjYgNjAuNiA2NC4yIDExMy4xIDg0LjMgMTYyLjUtOC4zIDMzLjgtMTguOCA2Ni41LTMxLjMgOTguMy0xMy4yLTUyLjMtMjYuNS0xMDEuMy01Ni0xNDguNSA2LjUtMzYuNCAyLjMtNzMuNiAzLTExMi4zek0xMDkuMyAyMDBsLTkzLjIgMGMtNi41IDAtMTAuNSA3LjUtNi41IDEyLjcgNDIuMiA1NC4zIDcxLjcgMTE3LjggOTEuNyAxODcuM2wxMDMuNSAwYy0xNi4yLTY5LjctMzguNy0xMzMuNy04Mi41LTE5My41LTMtNC04LTYuNS0xMy02LjV6bTQ3LjgtODhjNjguNSAxMDggMTMwIDIzNC41IDEzOC4yIDM2OEw0MDkgNDgwYy0xMi0xMzgtNjguNC0yNjUtMTQzLjItMzY4bC0xMDguNyAwek00MDguOSA0My41Yy0xLjgtNi44LTguMi0xMS41LTE1LjItMTEuNWwtODguMyAwYy01LjMgMC05IDUtNy44IDEwLjMgMTMuMiA0Ni41IDIyLjMgOTUuNSAyNi41IDE0NiA0OC4yIDg2LjIgNzkuNyAxNzguMyA5MC42IDI3MC44IDE1LjgtNjAuNSAyNS4zLTEzMy41IDI1LjMtMjAzIDAtNzMuNi0xMi4xLTE0NS4xLTMxLjEtMjEyLjZ6Il19LFAzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3Vyc3F1YXJlIixpY29uOlszODQsNTEyLFtdLCJmMTgwIiwiTTMzMS4xIDNMNTcuOSAzQzIwLjQgMyA4IDMxLjMgOCA0OS4xTDggNDgyLjljMCAyMC4zIDEyLjEgMjcuNyAxOC4yIDMwLjEgNi4yIDIuNSAyMi44IDQuNiAzMi45LTcuMSAxMjguOS0xNDkuNCAxMzEuMS0xNTEuOSAxMzEuMS0xNTEuOSAzLjEtMy40IDMuNC0zLjEgNi44LTMuMWw4My40IDBjMzUuMSAwIDQwLjYtMjUuMiA0NC4zLTM5LjdsNDguNi0yNDNDMzgxLjggMjUuOCAzNzEuMSAzIDMzMS4xIDN6TTMxNC44IDc2LjhsLTExLjQgNTkuN2MtMS4yIDYuNS05LjUgMTMuMi0xNi45IDEzLjJsLTEwNi40IDBjLTEyIDAtMjAuNiA4LjMtMjAuNiAyMC4zbDAgMTNjMCAxMiA4LjYgMjAuNiAyMC42IDIwLjZsOTAuNCAwYzguMyAwIDE2LjYgOS4yIDE0LjggMTguMi0xLjggOC45LTEwLjUgNTMuOC0xMS40IDU4LjgtLjkgNC45LTYuOCAxMy41LTE2LjkgMTMuNWwtNzMuNSAwYy0xMy41IDAtMTcuMiAxLjgtMjYuNSAxMi42IDAgMC04LjkgMTEuNC04OS41IDEwOC4zLS45IC45LTEuOCAuNi0xLjgtLjNsMC0zMzguOGMwLTcuNyA2LjgtMTYuNiAxNi42LTE2LjZsMjE5IDBjOC4yIDAgMTUuNiA3LjcgMTMuNSAxNy41eiJdfSxJM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2hpcnRzaW5idWxrIixpY29uOls0NDgsNTEyLFtdLCJmMjE0IiwiTTEwMCA0MTAuM2wzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjQtNC40IDkuOXptMzkuNCAxNy41bDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNC00LjQgOS45em0xNzIuMS0xNGw0LjQgOS45IDMwLjYtMTMuNC00LjQtOS45LTMwLjYgMTMuNHpNMTc5LjEgNDQ1bDMwLjMgMTMuNyA0LjQtOS45LTMwLjMtMTMuNC00LjQgOS42ek02MC40IDM5Mi44bDMwLjYgMTMuNCA0LjQtOS42LTMwLjYtMTMuNy00LjQgOS45em0yMTEuNCAzOC41bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy40em0tMzkuMyAxNy41bDQuNCA5LjkgMzAuNi0xMy43LTQuNC05LjYtMzAuNiAxMy40em0xMTguNC01Mi4ybDQuNCA5LjYgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy43ek0xNzAgNDYuNmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em0tNDcuMiAwbC0zMy42IDAgMCAxMC41IDMzLjUgMCAuMS0xMC41em0tNDcuMyAwbC0zMy4yIDAgMCAxMC41IDMzLjMgMC0uMS0xMC41em0xNDEuNSAwbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTk0LjUgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptLTk0LjYgMGwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em0xNDEuNSAwbC0zMy4zIDAgMCAxMC41IDMzLjMgMCAwLTEwLjV6TTUyLjggMzUxLjFsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptNzAtMjE1LjlsLTMzLjYgMCAwIDEwLjUgMzMuNSAwIC4xLTEwLjV6bS03MCAxMC42bDIyLjggMCAwLTEwLjUtMzMuNiAwIDAgMzMuNSAxMC44IDAgMC0yM3pNMjIxLjcgMzc0LjRhOTEuMyA5MS4zIDAgMSAwIDAtMTgyLjYgOTEuMyA5MS4zIDAgMSAwIDAgMTgyLjZ6TTE3My41IDI2My4zYzAtMjUuNCAyOS41LTMxLjggNDkuNi0zMS44IDE2LjkgMCAyOS4yIDUuOCA0NC4zIDEybC04LjggMTYuOS0uOSAwYy02LjQtOS45LTI0LjgtMTMuMS0zNS42LTEzLjEtOSAwLTI5LjggMS44LTI5LjggMTQuOSAwIDIxLjYgNzguNS0xMC4yIDc4LjUgMzcuOSAwIDI1LjQtMzEuNSAzMS4yLTUxIDMxLjItMTguMSAwLTMyLjQtMi45LTQ3LjItMTIuMmw5LTE4LjQgLjkgMGM2LjEgMTIuMiAyMy42IDE0LjkgMzUuOSAxNC45IDguNyAwIDMyLjctMS4yIDMyLjctMTQuMyAwLTI2LjEtNzcuNiA2LjMtNzcuNi0zOHpNNTIuOCAxNzguNGwtMTAuOCAwIDAgMzMuNiAxMC44IDAgMC0zMy42ek0zOTUuMiAzODQuNmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTUyLjggMzA3LjlsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXpNMCAzLjdsMCA0MDYgMjIxLjcgOTguNiAyMjYuMy05OC42IDAtNDA2LTQ0OCAwek00MTguOCAzOTAuOGwtMTk2LjggODUuNy0xOTIuOC04NS43IDAtMjcwLjEgMzg5LjcgMCAwIDI3MC4xLS4xIDB6bTAtMjk5LjNsLTM4OS42IDAgMC01OC42IDM4OS43IDAgMCA1OC42LS4xIDB6TTUyLjggMjIxLjZsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptMCA0My4ybC0xMC44IDAgMCAzMy41IDEwLjggMCAwLTMzLjV6TTE3MCAxMzUuMmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41ek0zOTUuMiAyOTguM2wxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6bTAtNDMuMmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTIxNyAxMzUuMmwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41ek0zOTUuMiAyMTJsMTAuOCAwIDAtMzMuNS0xMC44IDAgMCAzMy41em0wIDEyOS41bDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXptLTEzMS0yMDYuM2wtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptODMuNyAzMy42bDEwLjggMCAwLTMzLjUtMzMuNSAwIDAgMTAuNSAyMi44IDAtLjEgMjN6bS0zNi40LTMzLjZsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXoiXX0sRjN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pbnRiaXQiLGljb246WzUxMiw1MTIsW10sImU2MmYiLCJNNzMuMiA1MTJsMC03My4xIDI5Mi41IDAgMC03My4yIDczLjIgMCAwLTE0Ni4zIDczLjEgMCAwLTIxOS40LTIxOS40IDAgMCA3My4xLTE0Ni4zIDAgMCA3My4yLTczLjEgMCAwIDI5Mi42LTczLjIgMCAwIDczLjEgNzMuMiAwem03My4xLTIxOS40bDczLjIgMCAwIDczLjEtNzMuMiAwIDAtNzMuMXptNzMuMi03My4xbDczLjEgMCAwIDczLjEtNzMuMiAwIDAtNzMuMiAuMSAuMXptNzMuMSAwbDAtNzMuMiA3My4yIDAgMCA3My4xLTczLjIgMCAwIC4xek0zNjUuNyA3My4xbDczLjIgMCAwIDczLjItNzMuMiAwIDAtNzMuMnoiXX0sTzN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0YXlsaW5rZWQiLGljb246WzQ0OCw1MTIsW10sImYzZjUiLCJNMzg2LjcgMjkyLjVsMi43IDIuNy0xNzAtMTY3LjNjLTMuNS0zLjUtOS43LTMuNy0xMy44LS41TDE0OC4zIDE3MWMtNC4yIDMuMi00LjYgOC43LTEuMSAxMi4ybDY4LjEgNjQuM2MzLjYgMy41IDkuOSAzLjcgMTQgLjVsLjEtLjFjNC4xLTMuMiAxMC40LTMgMTQgLjVsODQgODEuM2MzLjYgMy41IDMuMiA5LS45IDEyLjJsLTkzLjIgNzRjLTQuMiAzLjMtMTAuNSAzLjEtMTQuMi0uNEw2Ny4yIDI2OGMtMy41LTMuNS05LjctMy43LTEzLjktLjVMNy41IDMwMi40Yy00LjIgMy4yLTQuNyA4LjctMS4yIDEyLjJMMjE1IDUxMC43czcuNCA2LjggMTcuMy0uOEw0MzAuMyAzNDZjNC0zLjIgNC40LTguNyAuNy0xMi4ybC00NC4zLTQxLjN6bTU0LjUtODMuNEwyMzAuNyAyLjVjLTEuNS0xLjItOC01LjUtMTYuMyAxLjFMNy42IDE2NS43Yy00LjIgMy4yLTQuOCA4LjctMS4yIDEyLjJsNDIuMyA0MS43IDE3MS43IDE2NS4xYzMuNyAzLjUgMTAuMSAzLjcgMTQuMyAuNGw1MC4yLTM4LjgtLjMtLjMgNy43LTZjNC4yLTMuMiA0LjYtOC43IC45LTEyLjJsLTU3LjEtNTQuNGMtMy42LTMuNS0xMC0zLjctMTQuMi0uNWwtLjEgLjFjLTQuMiAzLjItMTAuNSAzLjEtMTQuMi0uNEwxMTMgMTgwLjhjLTMuNi0zLjUtMy4xLTguOSAxLjEtMTIuMmw5Mi4yLTcxLjVjNC4xLTMuMiAxMC4zLTMgMTMuOSAuNWwxNjAuNCAxNTljMy43IDMuNSAxMCAzLjcgMTQuMSAuNWw0NS44LTM1LjhjNC4xLTMuMiA0LjQtOC43IC43LTEyLjJ6Il19LEIzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWJmbG93IixpY29uOls2NDAsNTEyLFtdLCJlNjVjIiwiTTY0MCA2NGwtMjA0LjIgMzk5LjItMTkxLjggMCA4NS41LTE2NS41LTMuOCAwQzI1NS4xIDM4OS4zIDE0OS45IDQ0OS41IDAgNDYzLjJMMCAzMDAuMXM5NS45LTUuNyAxNTIuMy02NC45bC0xNTIuMyAwIDAtMTcxLjIgMTcxLjEgMCAwIDE0MC44IDMuOCAwIDcwLTE0MC44IDEyOS40IDAgMCAxMzkuOSAzLjggMCA3Mi42LTEzOS45IDE4OS4zIDB6Il19LFIzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZW5yZW4iLGljb246WzUxMiw1MTIsW10sImYxOGIiLCJNMjE0IDE2OS4xQzIxNCAyNzkuNSAxNTMgMzc0LjUgNjYuNCA0MTYuNSAzMCAzNzMuMiA4IDMxNy43IDggMjU2LjYgOCAxMzMuOSA5Ny4xIDMyLjIgMjE0IDEyLjVsMCAxNTYuNnpNMjU1IDUwNGMtNDIuOSAwLTgzLjMtMTEtMTE4LjUtMzAuNCA1Ny4yLTM2LjEgMTAzLjQtOTAuNyAxMTguNS0xNTQuNiAxNS41IDYzLjkgNjEuNyAxMTguNSAxMTguOCAxNTQuNy0zNS4xIDE5LjMtNzUuNSAzMC4zLTExOC44IDMwLjN6bTE5MC42LTg3LjVDMzU5IDM3NC41IDI5OCAyNzkuNiAyOTggMTY5LjFsMC0xNTYuNmMxMTYuOSAxOS43IDIwNiAxMjEuNCAyMDYgMjQ0LjEgMCA2MS4xLTIyIDExNi42LTU4LjQgMTU5Ljl6Il19LEgzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXYiLGljb246WzQ0OCw1MTIsW10sImY1YjIiLCJNMTU4LjcgMjc0LjlhNjUuNiA2NS42IDAgMSAxIDEzMS4yIDAgNjUuNiA2NS42IDAgMSAxIC0xMzEuMiAwem0yNzAuNy01LjFsLS4xIDBjLS43LTI5LjMtNy43LTU4LjItMjAuNS04NC42cy0zMS4yLTQ5LjctNTMuOC02OC40TDMwOS42IDE0M2MyMiAxNC4yIDQwLjEgMzMuOCA1Mi43IDU2LjhzMTkuMSA0OC44IDE5LjEgNzUuMWMwIDg2LjYtNzAuNSAxNTcuMS0xNTcuMSAxNTcuMVM2Ny4yIDM2MS41IDY3LjIgMjc0LjljMC04MS45IDYzLTE0OS4zIDE0My0xNTYuNGwwIDM5LjEgMTA4LjgtNjIuOC0xMDguOC02Mi44IDAgMzguM2MtMTA2LjcgNy4yLTE5MSA5Ni0xOTEgMjA0LjYgMCAxMTEuNiA4OS4xIDIwMi4zIDIwMC4xIDIwNWwwIC4xIDIxMC4yIDAgMC0yMTAuMnoiXX0scTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtleWNkbiIsaWNvbjpbNTEyLDUxMixbXSwiZjNiYSIsIk02My44IDQwOS4zbDYwLjUtNTljMzIuMSA0Mi44IDcxLjEgNjYgMTI2LjYgNjcuNCAzMC41IC43IDYwLjMtNyA4Ni40LTIyLjQgNS4xIDUuMyAxOC41IDE5LjUgMjAuOSAyMi0zMi4yIDIwLjctNjkuNiAzMS4xLTEwOC4xIDMwLjItNDMuMy0xLjEtODQuNi0xNi43LTExNy43LTQ0LjQgLjMtLjYtMzguMiAzNy41LTM4LjYgMzcuOSA5LjUgMjkuOC0xMy4xIDYyLjQtNDYuMyA2Mi40LTI2LjgtLjEtNDcuNS0yMS43LTQ3LjUtNDguNSAwLTM0LjMgMzMuMS01Ni42IDYzLjgtNDUuNnpNNDE4LjcgMTU2LjljMTkuMSAzMS4zIDI5LjYgNjcuNCAyOC43IDEwNC0xLjEgNDQuOC0xOSA4Ny41LTQ4LjYgMTIxIC4zIC4zIDIzLjggMjUuMiAyNC4xIDI1LjUgOS42LTEuMyAxOS4yIDIgMjUuOSA5LjEgMTEuMyAxMiAxMC45IDMwLjktMS4xIDQyLjQtMTIgMTEuMy0zMC45IDEwLjktNDIuNC0xLjEtNi43LTctOS40LTE2LjgtNy42LTI2LjMtMjQuOS0yNi42LTQ0LjQtNDcuMi00NC40LTQ3LjIgNDIuNy0zNC4xIDYzLjMtNzkuNiA2NC40LTEyNC4yIC43LTI4LjktNy4yLTU3LjItMjEuMS04Mi4ybDIyLjEtMjF6TTEwNCA1My4xYzYuNyA3IDkuNCAxNi44IDcuNiAyNi4zbDQ1LjkgNDguMWMtNC43IDMuOC0xMy4zIDEwLjQtMjIuOCAyMS4zLTI1LjQgMjguNS0zOS42IDY0LjgtNDAuNyAxMDIuOS0uNyAyOC45IDYuMSA1Ny4yIDIwIDgyLjRMOTIgMzU1LjZjLTE5LjMtMzEuNi0yOC45LTY3LjctMjcuOC0xMDQuNyAxLTQ0LjYgMTguMy04Ny42IDQ3LjUtMTIxLjFMODYuNCAxMDMuNGMtOS42IDEuMy0xOS4yLTItMjUuOS05LjEtMTEuMy0xMi0xMC45LTMwLjkgMS4xLTQyLjQgMTEuOS0xMS4yIDMwLjYtMTAuOSA0Mi40IDEuMnpNNDY0LjkgOGMyNiAwIDQ3LjEgMjIuNCA0Ny4xIDQ4LjNTNDkwLjkgMTA0IDQ2NC45IDEwNGMtNi4zIC4xLTE0LTEuMS0xNS45LTEuOGwtNjIuOSA1OS43Yy0zMi43LTQzLjYtNzYuNy02NS45LTEyNi45LTY3LjItMzAuNS0uNy02MC4zIDYuOC04Ni4yIDIyLjRsLTIxLjEtMjJDMTg0LjEgNzQuMyAyMjEuNSA2NCAyNjAgNjQuOSAzMDMuMyA2NiAzNDQuNiA4MS42IDM3Ny43IDEwOS41bDQxLjEtMzguNmMtMS41LTQuNy0yLjItOS42LTIuMi0xNC41LS4xLTI2LjcgMjIuMy00OC40IDQ4LjMtNDguNHpNMjU2LjcgMTEzLjRjNS41IDAgMTAuOSAuNCAxNi40IDEuMSA3OC4xIDkuOCAxMzMuNCA4MS4xIDEyMy44IDE1OS4xLTkuOCA3OC4xLTgxLjEgMTMzLjQtMTU5LjEgMTIzLjgtNzguMS05LjgtMTMzLjQtODEuMS0xMjMuOC0xNTkuMiA5LjMtNzIuNCA3MC4xLTEyNC42IDE0Mi43LTEyNC44em0tNTkgMTE5LjRjLjYgMjIuNyAxMi4yIDQxLjggMzIuNCA1Mi4ybC0xMSA1MS43IDczLjcgMC0xMS01MS43YzIwLjEtMTAuOSAzMi4xLTI5IDMyLjQtNTIuMi0uNC0zMi44LTI1LjgtNTcuNS01OC4zLTU4LjMtMzIuMSAuOC01Ny4zIDI0LjgtNTguMiA1OC4zeiJdfSxWM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGlyZS1hLWhlbHBlciIsaWNvbjpbNTEyLDUxMixbXSwiZjNiMCIsIk00NDMuMSAwTDcxLjkgMEM2Ny45IDM3LjMgMzcuNCA2Ny44IDAgNzEuN0wwIDQ0My4yYzM3LjQgNC45IDY2IDMyLjQgNzEuOSA2OC44bDM3Mi4yIDBjMy0zNi40IDMyLjUtNjUuOCA2Ny45LTY5LjhsMC0zNzAuNUM0NzUuNiA2NS44IDQ0NyAzNi40IDQ0My4xIDB6bS0zNyA0MDQuOWMtMzYuMyAwLTE4LjgtMi01NS4xLTItMzUuOCAwLTIxIDItNTYuMSAyLTUuOSAwLTQuOS04LjIgMC05LjggMjIuOC03LjYgMjIuOS0xMC4yIDI0LjYtMTIuOCAxMC40LTE1LjYgNS45LTgzIDUuOS0xMTMgMC01LjMtNi40LTEyLjgtMTMuOC0xMi44bC0xMTEuMiAwYy03LjQgMC0xMy44IDcuNS0xMy44IDEyLjggMCAzMC00LjUgOTcuNCA1LjkgMTEzIDEuNyAyLjUgMS44IDUuMiAyNC42IDEyLjggNC45IDEuNiA2IDkuOCAwIDkuOC0zNS4xIDAtMjAuMy0yLTU2LjEtMi0zNi4zIDAtMTguOCAyLTU1LjEgMi03LjkgMC01LjgtMTAuOCAwLTEwLjggMTAuMi0zLjQgMTMuNS0zLjUgMjEuNy0xMy44IDcuNy0xMi45IDcuOS00NC40IDcuOS0xMjcuOGwwLTEwMS4yYzAtMjIuMi0xMi4yLTI4LjMtMjguNi0zMi40LTguOC0yLjItNC0xMS44IDEtMTEuOCAzNi41IDAgMjAuNiAyIDU3LjEgMiAzMi43IDAgMTYuNS0yIDQ5LjItMiAzLjMgMCA4LjUgOC4zIDEgMTAuOC00LjkgMS42LTI3LjYgMy43LTI3LjYgMzkuMyAwIDQ1LjYtLjIgNTUuOCAxIDY4LjggMCAxLjMgMi4zIDEyLjggMTIuOCAxMi44bDEwOS4yIDBjMTAuNSAwIDEyLjgtMTEuNSAxMi44LTEyLjggMS4yLTEzIDEtMjMuMiAxLTY4LjggMC0zNS42LTIyLjctMzcuNy0yNy42LTM5LjMtNy41LTIuNS0yLjMtMTAuOCAxLTEwLjggMzIuNyAwIDE2LjUgMiA0OS4yIDIgMzYuNSAwIDIwLjYtMiA1Ny4xLTIgNC45IDAgOS45IDkuNiAxIDExLjgtMTYuNCA0LjEtMjguNiAxMC4zLTI4LjYgMzIuNGwwIDEwMS4yYzAgODMuNCAuMSAxMTQuOSA3LjkgMTI3LjggOC4yIDEwLjIgMTEuNCAxMC40IDIxLjcgMTMuOCA1LjggMCA3LjggMTAuOCAwIDEwLjh6Il19LGkyZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtaGFja2VyLW5ld3MiLGljb246WzQ0OCw1MTIsWyJoYWNrZXItbmV3cy1zcXVhcmUiXSwiZjNhZiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjEgMjI5LjJzLjEtLjEgLjEtLjIgLjEtLjIgLjItLjJjMCAuMSAwIC4zLS4xIC40bC0uMiAwek0yMzkuMiAzODRsLTMxLjQgMCAwLTEwMi43LTc5LjgtMTUzLjMgMzcuMyAwYzQxLjUgNzcuNyA0OC4xIDk1LjggNTQuMSAxMTIgMS42IDQuMyAzLjEgOC41IDUuMiAxMy42IDMuMi03IDUuMS0xMS45IDcuMS0xNy4zIDUuOS0xNS4zIDEyLjgtMzMuMiA1My41LTEwOC4zbDM0LjggMC04MC44IDE1NS4xIDAgMTAwLjl6Il19LFUzdD1pMmUsajN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtcGQtYWx0IixpY29uOls1MTIsNTEyLFtdLCJmNGVkIiwiTTI1NS42IDhDMTEyLjcgOCA4IDEyMy4xIDggMjU2IDggMzk0LjUgMTIxLjYgNTA0IDI1NS42IDUwNCAzODUuNSA1MDQgNTA0IDQwMy4xIDUwNCAyNTYgNTA0IDExOC4xIDM5Ny40IDggMjU1LjYgOHptLjggNDUwLjhjLTExMi41IDAtMjAzLjctOTMtMjAzLjctMjAyLjggMC0xMDUuNCA4NS41LTIwMy4zIDIwMy43LTIwMy4zIDExMi42IDAgMjAyLjkgODkuNSAyMDIuOCAyMDMuMyAwIDEyMS43LTk5LjYgMjAyLjgtMjAyLjggMjAyLjh6TTMyNC43IDE4NmwtNTMuMiAwIDAgMTM3LjIgNTMuMiAwYzIxLjQgMCA3MC01LjEgNzAtNjguNiAwLTYzLjQtNDguNi02OC42LTcwLTY4LjZ6bS44IDEwOC41bC0xOS45IDAgMC03OS43IDE5LjQtLjFjMy44IDAgMzUtMi4xIDM1IDM5LjkgMCAyNC42LTEwLjUgMzkuOS0zNC41IDM5Ljl6TTIxMS43IDE4NmwtNjguMiAwIDAgMTM3LjMgMzQuNiAwIDAtNDQuMyAyNyAwYzU0LjEgMCA1Ny4xLTM3LjUgNTcuMS00Ni41IDAtMzEtMTYuOC00Ni41LTUwLjUtNDYuNXptLTQuOSA2Ny4zbC0yOS4yIDAgMC00MS42IDI4LjMgMGMzMC45IDAgMjguOCA0MS42IC45IDQxLjZ6Il19LFczdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcmNpZCIsaWNvbjpbNTEyLDUxMixbXSwiZjhkMiIsIk0yOTQuNyAxODguMmwtNDUuOSAwIDAgMTUzLjggNDcuNSAwYzY3LjYgMCA4My4xLTUxLjMgODMuMS03Ni45IDAtNDEuNi0yNi41LTc2LjktODQuNy03Ni45ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTE3NS4yIDM2OC44bC0yOS44IDAgMC0yMDcuNSAyOS44IDAgMCAyMDcuNXpNMTYwLjMgOTguNWExOS42IDE5LjYgMCAxIDEgMCAzOS4yIDE5LjYgMTkuNiAwIDEgMSAwLTM5LjJ6TTMwMCAzNjlsLTgxIDAgMC0yMDcuNyA4MC42IDBjNzYuNyAwIDExMC40IDU0LjggMTEwLjQgMTAzLjkgMCA1My4zLTQxLjcgMTAzLjktMTEwIDEwMy45eiJdfSxHM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmVoYW5jZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFiNCIsIk0yMzIgMjM3LjJjMzEuOC0xNS4yIDQ4LjQtMzguMiA0OC40LTc0IDAtNzAuNi01Mi42LTg3LjgtMTEzLjMtODcuOGwtMTY3LjEgMCAwIDM1NC40IDE3MS44IDBjNjQuNCAwIDEyNC45LTMwLjkgMTI0LjktMTAyLjkgMC00NC41LTIxLjEtNzcuNC02NC43LTg5Ljd6TTc3LjkgMTM1LjlsNzMuMSAwYzI4LjEgMCA1My40IDcuOSA1My40IDQwLjUgMCAzMC4xLTE5LjcgNDIuMi00Ny41IDQyLjJsLTc5IDAgMC04Mi43em04My4zIDIzMy43bC04My4zIDAgMC05Ny42IDg0LjkgMGMzNC4zIDAgNTYgMTQuMyA1NiA1MC42IDAgMzUuOC0yNS45IDQ3LTU3LjYgNDd6TTUxOS43IDEyOC45bC0xNDMuNyAwIDAtMzQuOSAxNDMuNyAwIDAgMzQuOXpNNTc2IDMwNS4yYzAtNzUuOS00NC40LTEzOS4yLTEyNC45LTEzOS4yLTc4LjIgMC0xMzEuMyA1OC44LTEzMS4zIDEzNS44IDAgNzkuOSA1MC4zIDEzNC43IDEzMS4zIDEzNC43IDYxLjMgMCAxMDEtMjcuNiAxMjAuMS04Ni4zbC02Mi4yIDBjLTYuNyAyMS45LTM0LjMgMzMuNS01NS43IDMzLjUtNDEuMyAwLTYzLTI0LjItNjMtNjUuM2wxODUuMSAwYy4zLTQuMiAuNi04LjcgLjYtMTMuMnpNMzkwLjQgMjc0YzIuMy0zMy43IDI0LjctNTQuOCA1OC41LTU0LjggMzUuNCAwIDUzLjIgMjAuOCA1Ni4yIDU0LjhsLTExNC43IDB6Il19LFkzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtb25lcm8iLGljb246WzUxMiw1MTIsW10sImYzZDAiLCJNMzYwIDM4NGwxMDguNCAwQzQyNSA0NTUuOSAzNDYuMSA1MDQgMjU2IDUwNFM4NyA0NTUuOSA0My42IDM4NGwxMDguNCAwIDAtMTI3LjggMTA0IDEwNC44IDEwNC0xMDUgMCAxMjh6TTk2IDMzNmwwLTIwOCAxNTkuNCAxNTkuNCAxNjAuNi0xNTkuNCAwIDIwOCA3NC44IDBjOC41LTI1LjEgMTMuMi01MiAxMy4yLTgwIDAtMTM3LTExMS0yNDgtMjQ4LTI0OFM4IDExOSA4IDI1NmMwIDI4IDQuNiA1NC45IDEzLjIgODBMOTYgMzM2eiJdfSxaM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlnbWEiLGljb246WzM4NCw1MTIsW10sImY3OTkiLCJNMTQgOTUuOEMxNCA0Mi45IDU2LjkgMCAxMDkuOCAwTDI3NC4yIDBjNTIuOSAwIDk1LjggNDIuOSA5NS44IDk1LjggMCAzMy41LTE3LjIgNjMtNDMuMiA4MC4xIDI2IDE3LjEgNDMuMiA0Ni42IDQzLjIgODAuMSAwIDUyLjktNDIuOSA5NS44LTk1LjggOTUuOGwtMi4xIDBjLTI0LjggMC00Ny40LTkuNC02NC40LTI0LjlsMCA4OC4zYzAgNTMuNi00NCA5Ni44LTk3LjQgOTYuOC01Mi44IDAtOTYuMy00Mi44LTk2LjMtOTUuOCAwLTMzLjUgMTcuMi02MyA0My4yLTgwLjEtMjYtMTcuMS00My4yLTQ2LjYtNDMuMi04MC4xczE3LjItNjMgNDMuMi04MC4xQzMxLjIgMTU4LjggMTQgMTI5LjMgMTQgOTUuOHptMTYyLjMgOTUuOGwtNjYuNSAwYy0zNS42IDAtNjQuNCAyOC44LTY0LjQgNjQuNCAwIDM1LjQgMjguNiA2NC4yIDY0IDY0LjRsNjYuOSAwIDAtMTI4Ljh6TTIwNy43IDI1NmMwIDM1LjYgMjguOCA2NC40IDY0LjQgNjQuNGwyLjEgMGMzNS42IDAgNjQuNC0yOC44IDY0LjQtNjQuNHMtMjguOC02NC40LTY0LjQtNjQuNGwtMi4xIDBjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40em0tOTcuOSA5NS44bC0uNCAwYy0zNS40IC4yLTY0IDI5LTY0IDY0LjRzMjkuMiA2NC40IDY0LjkgNjQuNGMzNi4zIDAgNjYtMjkuNCA2Ni02NS41bDAtNjMuNC02Ni41IDB6bTAtMzIwLjRjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40czI4LjggNjQuNCA2NC40IDY0LjRsNjYuNSAwIDAtMTI4LjgtNjYuNSAwem05Ny45IDEyOC44bDY2LjUgMGMzNS42IDAgNjQuNC0yOC44IDY0LjQtNjQuNHMtMjguOC02NC40LTY0LjQtNjQuNGwtNjYuNSAwIDAgMTI4Ljh6Il19LGdWPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE2ZCIsIk0yMjQuMyAxNDFhMTE1IDExNSAwIDEgMCAtLjYgMjMwIDExNSAxMTUgMCAxIDAgLjYtMjMwem0tLjYgNDAuNGE3NC42IDc0LjYgMCAxIDEgLjYgMTQ5LjIgNzQuNiA3NC42IDAgMSAxIC0uNi0xNDkuMnptOTMuNC00NS4xYTI2LjggMjYuOCAwIDEgMSA1My42IDAgMjYuOCAyNi44IDAgMSAxIC01My42IDB6bTEyOS43IDI3LjJjLTEuNy0zNS45LTkuOS02Ny43LTM2LjItOTMuOS0yNi4yLTI2LjItNTgtMzQuNC05My45LTM2LjItMzctMi4xLTE0Ny45LTIuMS0xODQuOSAwLTM1LjggMS43LTY3LjYgOS45LTkzLjkgMzYuMXMtMzQuNCA1OC0zNi4yIDkzLjljLTIuMSAzNy0yLjEgMTQ3LjkgMCAxODQuOSAxLjcgMzUuOSA5LjkgNjcuNyAzNi4yIDkzLjlzNTggMzQuNCA5My45IDM2LjJjMzcgMi4xIDE0Ny45IDIuMSAxODQuOSAwIDM1LjktMS43IDY3LjctOS45IDkzLjktMzYuMiAyNi4yLTI2LjIgMzQuNC01OCAzNi4yLTkzLjkgMi4xLTM3IDIuMS0xNDcuOCAwLTE4NC44ek0zOTkgMzg4Yy03LjggMTkuNi0yMi45IDM0LjctNDIuNiA0Mi42LTI5LjUgMTEuNy05OS41IDktMTMyLjEgOXMtMTAyLjcgMi42LTEzMi4xLTljLTE5LjYtNy44LTM0LjctMjIuOS00Mi42LTQyLjYtMTEuNy0yOS41LTktOTkuNS05LTEzMi4xcy0yLjYtMTAyLjcgOS0xMzIuMWM3LjgtMTkuNiAyMi45LTM0LjcgNDIuNi00Mi42IDI5LjUtMTEuNyA5OS41LTkgMTMyLjEtOXMxMDIuNy0yLjYgMTMyLjEgOWMxOS42IDcuOCAzNC43IDIyLjkgNDIuNiA0Mi42IDExLjcgMjkuNSA5IDk5LjUgOSAxMzIuMXMyLjcgMTAyLjctOSAxMzIuMXoiXX0sWDN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBlcmJ5dGUiLGljb246WzQ0OCw1MTIsW10sImUwODMiLCJNMzA1LjMgMjg0LjZsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41ek0xNDkuNCAxMjguN2wtNTguNyAwIDAgOTguNyA1OC43IDBjMTYuMyAwIDI5LTQuNiAzOC4yLTEzLjhzMTMuOC0yMS4yIDEzLjgtMzYuMWMwLTE0LjYtNC43LTI2LjMtMTQtMzUuM3MtMjItMTMuNS0zNy45LTEzLjV6TTM2Ni42IDMyTDgxLjQgMzJjLTIxLjYgMC00Mi4yIDguNi01Ny41IDIzLjlTMCA5MS44IDAgMTEzLjRMMCAzOTguNmMwIDIxLjYgOC42IDQyLjIgMjMuOSA1Ny41UzU5LjggNDgwIDgxLjQgNDgwbDI4NS4zIDBjMjEuNiAwIDQyLjItOC42IDU3LjUtMjMuOVM0NDggNDIwLjIgNDQ4IDM5OC42bDAtMjg1LjNjMC0yMS42LTguNi00Mi4yLTIzLjktNTcuNVMzODguMiAzMiAzNjYuNiAzMnptNjMuNiAzNjYuNmMwIDE2LjktNi43IDMzLTE4LjcgNDVzLTI4LjEgMTguNi00NSAxOC43bC0yODUuMyAwYy0xNi45IDAtMzMtNi43LTQ1LTE4LjdzLTE4LjYtMjguMS0xOC43LTQ1bDAtMjg1LjNjMC0xNi45IDYuNy0zMyAxOC43LTQ1czI4LjEtMTguNiA0NS0xOC43bDI4NS4zIDBjMTYuOSAwIDMzIDYuNyA0NSAxOC43czE4LjYgMjguMSAxOC43IDQ1bDAgMjg1LjN6bS0xMjUtMjY5LjlsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41eiJdfSxvMmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXZpbWVvIixpY29uOls0NDgsNTEyLFsidmltZW8tc3F1YXJlIl0sImYxOTQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMxOC41IDMwOS41Yy00My41IDU2LjUtODAuMyA4NC44LTExMC40IDg0LjgtMTguNyAwLTM0LjQtMTcuMi00Ny4zLTUxLjYtMy44LTEzLjktNy4zLTI2LjktMTAuNS0zOS0xOC4yLTY4LjMtMjguNi0xMDcuNC00Ni4yLTEwNy40LTIuNCAwLTEwLjggNS0yNS4xIDE1LjFMNjQgMTkyYzctNi4xIDEzLjktMTIuNCAyMC42LTE4LjUgMjkuMS0yNi4zIDU1LjYtNTAuMyA3My41LTUxLjkgMjQuOS0yLjQgNDAuMiAxNC42IDQ2IDUxLjEgMjAuNSAxMjkuNiAyOS42IDE0OS4yIDY2LjggOTAuNSAxMy40LTIxLjIgMjAuNi0zNy4yIDIxLjUtNDguMyAzLjQtMzIuOC0yNS42LTMwLjYtNDUuMi0yMi4yIDE1LjctNTEuNSA0NS44LTc2LjUgOTAuMS03NS4xIDMyLjkgMSA0OC40IDIyLjQgNDYuNSA2NC0xLjQgMzEuMS0yMy4yIDczLjgtNjUuMyAxMjcuOXoiXX0sUTN0PW8yZSxLM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHVzaGVkIixpY29uOls0NDgsNTEyLFtdLCJmM2UxIiwiTTQxNS4xIDExMS45bC05OC41LTkgMTQtMzMuNGMxMC40LTIzLjUtMTAuOC00MC40LTI4LjctMzdMMzAuNiA3Ni45Yy0xNS4xIDIuNy0yNiAxOC4zLTIxLjQgMzYuNkwxMTQuMyA0NjEuOGM2LjUgMjEuMyAzNi43IDI0LjIgNDcuNyA3TDE5Ny4zIDM4OCA0MzIuNSAxNTYuN2MxNi40LTE2LjggNC4zLTQyLjktMTcuNC00NC44ek0zMDUuNyA1My42YzUuMS0uNyA3LjUgMi41IDUuMiA3LjRsLTE2LjggMzkuOS0xNzcuNC0xNi4zIDE4OS0zMXpNMzAuOCAxMDcuOWMtMy4xLTUuMSAxLTEwIDYuMS05LjFsMjQ4LjcgMjIuNy05Ni45IDIzMC43LTE1Ny45LTI0NC4zek0xNDQuMSA0NTYuNGMtMi42IDQtNy45IDMuMS05LjQtMS4yTDUxLjYgMTc5LjcgMTc5LjMgMzc3LjNjLTcgMTUtMzUuMiA3OS4xLTM1LjIgNzkuMXpNNDE2LjkgMTQxLjlsLTE5OC43IDE5NS40IDg5LjctMjEzLjcgMTA2LjQgOS43YzQgMS4xIDUuNyA1LjMgMi42IDguNnoiXX0sSjN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1peGNsb3VkIixpY29uOls2NDAsNTEyLFtdLCJmMjg5IiwiTTIxMyAzNDYuNmwtMzMuMiAwIDAtMTUxLjUgNi4yLTIxLjYtMTAuNyAwLTM4LjEgMTczLjEtNjEgMC0zOC40LTE3My4xLTEwLjUgMCA1LjkgMjEuNiAwIDE1MS41LTMzLjIgMCAwLTE4MS42IDY1LjcgMCAzNi42IDE3My4xIDguNSAwIDM2LjYtMTczLjEgNjUuNyAwIDAgMTgxLjZ6bTMzMS41LTYzbC04NiA2Mi4xIDAtMzguMSA3Mi45LTUxLjgtNzIuOS01MS44IDAtMzguMSA4NiA2Mi4zIDkuMyAwIDg2LjMtNjIuMyAwIDM4LjEtNzMuMSA1MS44IDczLjEgNTEuOCAwIDM4LjEtODYuMy02Mi4xLTkuMyAwek00MzAuMiAyNzIuM2wtMTgyIDAgMC0zMy4xIDE4MiAwIDAgMzMuMXoiXX0sZWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhbmRleC1pbnRlcm5hdGlvbmFsIixpY29uOlszMjAsNTEyLFtdLCJmNDE0IiwiTTEyOS41IDUxMmwwLTE2Ni4xLTExMS0yOTcuOSA1NS44IDAgODEuOCAyMjkuNyA5NC4xLTI3Ny43IDUxLjMgMC0xMjAuNyAzNDcuOCAwIDE2NC4yLTUxLjMgMHoiXX0sdGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhpdmUiLGljb246WzUxMiw1MTIsW10sImUwN2YiLCJNMjYwLjQgMjU0LjlMMTMxLjUgMzMuMWMtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4zLTEuMS0uMy0uOCAuMS0xLjEgLjMtLjYgLjUtLjggLjhMLjMgMjU0LjljLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjFMMTI5LjEgNDc4LjljLjIgLjMgLjUgLjYgLjggLjhzLjcgLjMgMS4xIC4zIC44LS4xIDEuMS0uMyAuNi0uNSAuOC0uOEwyNjAuNCAyNTcuMWMuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMXptMzkuMS0yNS43Yy4yIC4zIC41IC42IC44IC44cy43IC4zIDEuMSAuM2w2Ni41IDBjLjQgMCAuOC0uMSAxLjEtLjNzLjYtLjUgLjgtLjggLjMtLjcgLjMtMS4xLS4xLS44LS4zLTEuMUwyNTkuMSAzMy4xYy0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjMtMS4xLS4zbC02Ni41IDBjLS40IDAtLjggLjEtMS4xIC4zcy0uNiAuNS0uOCAuOC0uMyAuNy0uMyAxLjEgLjEgLjggLjMgMS4xTDI5OS40IDIyOS4yem0yMTIuMyAyNS43TDM4NC45IDMzLjFjLS4yLS4zLS41LS42LS44LS44cy0uNy0uMy0xLjEtLjNsLTY2LjYgMGMtLjQgMC0uOCAuMS0xLjEgLjNzLS42IC41LS44IC44LS4zIC43LS4zIDEuMSAuMSAuOCAuMyAxLjFMNDQwLjcgMjU2IDMxNC41IDQ3Ni43Yy0uMiAuMy0uMyAuNy0uMyAxLjFzLjEgLjggLjMgMS4xIC41IC42IC44IC44IC43IC4zIDEuMSAuM2w2Ni42IDBjLjQgMCAuOC0uMSAxLjEtLjNzLjYtLjUgLjgtLjhMNTExLjcgMjU3LjFjLjItLjMgLjMtLjcgLjMtMS4xcy0uMS0uOC0uMy0xLjF6TTM2NiAyODQuOWwtNjYuNSAwYy0uNCAwLS44IC4xLTEuMSAuM3MtLjYgLjUtLjggLjhMMTg4LjggNDc2LjdjLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjEgLjUgLjYgLjggLjggLjcgLjMgMS4xIC4zbDY2LjUgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOEwzNjcuOSAyODguM2MuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMS0uNS0uNi0uOC0uOC0uNy0uMy0xLjEtLjN6Il19LGFsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXplcm8iLGljb246WzUxMiw1MTIsW10sImY0ZjMiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0tLjQgNjAuNWMtODEuOSAwLTEwMi41IDc3LjMtMTAyLjUgMTQyLjhTMTc0LjEgMzk4LjggMjU2IDM5OC44IDM1OC41IDMyMS41IDM1OC41IDI1NiAzMzcuOSAxMTMuMiAyNTYgMTEzLjJ6bTAgNTMuOWMzLjMgMCA2LjQgLjUgOS4yIDEuMiA1LjkgNS4xIDguOCAxMi4xIDMuMSAyMS45TDIxMy44IDI5MC40Yy0xLjctMTIuNy0xLjktMjUuMS0xLjktMzQuNCAwLTI4LjggMi04OC45IDQ0LjEtODguOXptNDAuOCA0Ni4yYzIuOSAxNS40IDMuMyAzMS40IDMuMyA0Mi43IDAgMjguOS0yIDg4LjktNDQuMSA4OC45LTEzLjUgMC0zMi42LTcuNy0yMC4xLTI2LjRsNjAuOS0xMDUuMnoiXX0sczJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1zbmFwY2hhdCIsaWNvbjpbNDQ4LDUxMixbInNuYXBjaGF0LXNxdWFyZSJdLCJmMmFkIiwiTTM4NCAzMkw2NCAzMmMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdTMCA3OSAwIDk2TDAgNDE2YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zUzQ3IDQ4MCA2NCA0ODBsMzIwIDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdTNDQ4IDQzMyA0NDggNDE2bDAtMzIwYzAtMTctNi43LTMzLjMtMTguNy00NS4zUzQwMSAzMiAzODQgMzJ6bS0zLjkgMzE5LjNsLS4xIC4xYy0yLjUgMi44LTUuNCA1LjEtOC43IDYuOC02LjUgMy42LTEzLjQgNi4zLTIwLjYgOC4yLTEuNCAuNC0yLjcgMS0zLjkgMS44LTIuMiAxLjktMi4xIDQuNi00LjQgOC42LTEuNyAzLTQgNS41LTYuOCA3LjUtNi43IDQuNi0xNC4yIDQuOS0yMi4yIDUuMi03LjIgLjMtMTUuNCAuNi0yNC43IDMuNy0zLjggMS4yLTcuOCAzLjctMTIuNCA2LjUtMTEuMyA2LjktMjYuNyAxNi40LTUyLjMgMTYuNHMtNDAuOS05LjQtNTIuMS0xNi4zYy00LjctMi45LTguNy01LjQtMTIuNS02LjYtOS4zLTMuMS0xNy41LTMuNC0yNC43LTMuNy04LS4zLTE1LjUtLjYtMjIuMi01LjItMi40LTEuNi00LjQtMy43LTYtNi4xLTMuMi00LjYtMi45LTcuOC01LjMtOS45LTEuMy0uOC0yLjYtMS41LTQuMS0xLjgtNy4xLTEuOS0xMy45LTQuNi0yMC4zLTguMS0zLjEtMS42LTUuOS0zLjgtOC4zLTYuMy02LjYtNi44LTguMy0xNC44LTUuNy0yMS44IDMuNC05LjMgMTEuNi0xMi4xIDE5LjQtMTYuMyAxNC44LTggMjYuMy0xOC4xIDM0LjQtMjkuOSAyLjMtMy4zIDQuMy02LjkgNi0xMC42IC44LTIuMiAuOC0zLjMgLjItNC40LS42LS45LTEuMy0xLjYtMi4yLTIuMi0yLjUtMS43LTUuMS0zLjQtNi45LTQuNS0zLjMtMi4xLTUuOS0zLjgtNy41LTUtNi4zLTQuNC0xMC42LTktMTMuNC0xNC4yLTEuOS0zLjYtMy03LjYtMy4zLTExLjZzLjQtOC4xIDEuOS0xMS45YzQuMS0xMC45IDE0LjUtMTcuNyAyNy0xNy43IDIuNiAwIDUuMyAuMyA3LjggLjggLjcgLjIgMS40IC4zIDIgLjUtLjEtNy40IC4xLTE1LjQgLjctMjMuMSAyLjQtMjcuMyAxMS45LTQxLjYgMjEuOS01MyA2LjQtNy4yIDEzLjktMTMuMiAyMi4zLTE3LjkgMTUuMS04LjYgMzIuMi0xMyA1MC45LTEzczM1LjggNC40IDUwLjkgMTNjOC4zIDQuNyAxNS45IDEwLjggMjIuMiAxNy45IDEwIDExLjQgMTkuNSAyNS43IDIxLjkgNTMgLjYgNy43IC45IDE1LjQgLjcgMjMuMSAuNy0uMiAxLjQtLjMgMi4xLS41IDIuNi0uNiA1LjItLjggNy44LS44IDEyLjUgMCAyMi44IDYuOCAyNyAxNy43IDEuNSAzLjggMi4xIDcuOSAxLjkgMTEuOXMtMS40IDgtMy4zIDExLjZjLTIuNyA1LjItNy4xIDkuOS0xMy40IDE0LjItMS43IDEuMi00LjMgMi45LTcuNSA1LTEuOCAxLjItNC41IDIuOS03LjIgNC43LS44IC41LTEuNCAxLjItMS45IDItLjUgMS0uNSAyLjIgLjIgNC4yIDEuNyAzLjggMy43IDcuNCA2LjEgMTAuOCA4LjMgMTIuMSAyMC4yIDIyLjMgMzUuNSAzMC40IDEuNSAuOCAzIDEuNSA0LjQgMi4zIC43IC4zIDEuNiAuOCAyLjUgMS4zIDQuOSAyLjcgOS4yIDYgMTEuNSAxMi4yIDIuNSA2LjkgMSAxNC43LTUuMiAyMS4zem0tMTYuNy0xOC41Yy01MC4zLTI0LjMtNTguMy02MS45LTU4LjctNjQuNy0uNC0zLjQtLjktNiAyLjgtOS41IDMuNi0zLjMgMTkuNS0xMy4yIDI0LTE2LjMgNy4zLTUuMSAxMC41LTEwLjIgOC4yLTE2LjUtMS43LTQuMy01LjctNi0xMC02LTEuMyAwLTIuNyAuMi00IC40LTggMS43LTE1LjggNS44LTIwLjQgNi45LS41IC4xLTEuMSAuMi0xLjcgLjItMi40IDAtMy4zLTEuMS0zLjEtNCAuNi04LjggMS44LTI1LjkgLjQtNDEuOS0xLjktMjItOS0zMi45LTE3LjQtNDIuNi00LjEtNC42LTIzLjEtMjQuNy01OS41LTI0LjdzLTU1LjQgMjAuMS01OS41IDI0LjhjLTguNCA5LjctMTUuNSAyMC42LTE3LjQgNDIuNi0xLjQgMTYtLjEgMzMuMSAuNCA0MS45IC4yIDIuOC0uNyA0LTMuMSA0LS42IDAtMS4xLS4xLTEuNy0uMi00LjUtMS4xLTEyLjMtNS4xLTIwLjMtNi45LTEuMy0uMy0yLjYtLjQtNC0uNC00LjMgMC04LjMgMS42LTEwIDYtMi40IDYuMyAuOCAxMS40IDguMiAxNi41IDQuNCAzLjEgMjAuNCAxMyAyNCAxNi4zIDMuNyAzLjQgMy4yIDYuMSAyLjggOS41LS40IDIuOC04LjQgNDAuNC01OC43IDY0LjctMi45IDEuNC04IDQuNCAuOSA5LjMgMTMuOSA3LjYgMjMuMSA2LjggMzAuMyAxMS40IDYuMSAzLjkgMi41IDEyLjQgNi45IDE1LjQgNS41IDMuOCAyMS42LS4zIDQyLjMgNi42IDE3LjQgNS43IDI4LjEgMjIgNTkgMjJzNDEuOC0xNi4zIDU4LjktMjJjMjAuOC02LjkgMzYuOS0yLjggNDIuMy02LjYgNC40LTMuMSAuOC0xMS41IDYuOS0xNS40IDcuMi00LjYgMTYuNC0zLjggMzAuMy0xMS41IDguOC00LjkgMy44LTcuOSAuOS05LjR6Il19LHJsdD1zMmUsaWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoZW1laXNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjJiMiIsIk0yMDggODguM2MwLTEwIDYuMy0yMS43IDE3LjctMjEuNyAxMS4xIDAgMTcuNyAxMS43IDE3LjcgMjEuNyAwIDEwLjMtNi42IDIxLjctMTcuNyAyMS43LTExLjQgMC0xNy43LTExLjQtMTcuNy0yMS43em0zMDQgMTYwYzAgMzYtMTEuNCAxMDIuMy0zNi4zIDEyOS43LTIyLjkgMjQuOS04Ny40IDYxLjEtMTIwLjkgNzAuNmwtMS4xIC4zIDAgMzIuNmMwIDE2LjMtMTIuNiAzMC42LTI5LjEgMzAuNi0xMCAwLTE5LjQtNS43LTI0LjYtMTQuMy01LjQgOC42LTE0LjkgMTQuMy0yNC45IDE0LjNzLTE5LjQtNS43LTI0LjktMTQuM2MtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTEwLjMgMC0xOS40LTUuNy0yNC45LTE0LjMtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTE4LjkgMC0yOS40LTE1LjctMjkuNC0zMi45LTE2LjMgMTIuMy0zNS43IDE5LjQtNTYuNiAxOS40LTIyIDAtNDMuNC04LjMtNjAuMy0yMi45IDEwLjMtLjMgMjAuNi0yLjMgMzAuMy01LjctMjAuOS01LjctMzkuNC0xOC45LTUyLTM2LjMgMjEuNCA0LjYgNDYuMiAxLjcgNjcuMS0xMS4xLTIyLTIyLTU2LjYtNTguOS02OC42LTg3LjQtNS43LTEzLjQtNi45LTMxLjQtNi45LTQ1LjcgMC00OS43IDIwLjMtMTYwIDg2LjMtMTYwIDEwLjYgMCAxOC45IDQuOSAyMy4xIDE0LjkgMy43LTUuNCA3LjctMTAuNSAxMi0xNS40IDItMi42IDUuNy01LjQgNy4xLTguMyA4LTEyLjYgMTEuNy0yMS4xIDIxLjctMzQgMzIuMy00MS4xIDgxLjctNjkuNCAxMzQuOS02OS40IDYgMCAxMiAuMyAxNy43IDEuMSAxMC45LTExLjcgMjYtMTguMyA0MS43LTE4LjMgMTQuNiAwIDI5LjcgNiA0MCAxNi4zIC45IC45IDEuNCAyLjMgMS40IDMuNCAwIDMuNy0xMC4zIDEzLjQtMTIuOSAxNi4zIDQuMyAxLjQgMTUuNyA2LjkgMTUuNyAxMiAwIDIuOS0yLjkgNS4xLTQuNiA3LjEgMzEuNCAyNy43IDQ5LjQgNjcuMSA1Ni4zIDEwOCA0LjMtNS4xIDEwLjMtOC42IDE3LjEtOC42IDEwLjYgMCAyMC45IDcuMSAyOC42IDE0IDIwLjkgMTguNiAyNS43IDUzLjEgMjUuNyA3OS43ek0xODggODkuNGMwIDE4LjMgMTIuNiAzNy4xIDMyLjMgMzcuMXMzMi4zLTE4LjkgMzIuMy0zNy4xYzAtMTgtMTIuNi0zNi45LTMyLjMtMzYuOVMxODggNzEuNCAxODggODkuNHpNMjM3LjcgMTk0YzAtMTkuNyAzLjctMzkuMSA4LjYtNTguMy01MiA3OS41LTEzLjUgMTg0LjYgNjguOSAxODQuNiAyMS40IDAgNDIuNi03LjcgNjAtMjAgMi03LjQgMy43LTE0LjkgMy43LTIyLjYgMC0xNC4zLTYuMy0yMS40LTIwLjYtMjEuNC00LjYgMC05LjEgLjktMTMuNCAxLjctNjMuMyAxMi43LTEwNy4xIDMuNy0xMDcuMS02NHpNMTk2LjYgNDQ4LjljMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAgOS43LTIwIDIwLjlsMCAzMi42YzAgMTEuMSA4LjYgMjEuMSAyMCAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjEgMGMwLTExLjEtOC42LTIwLjktMjAtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLTEwIDIwLTIxLjFsMC0zMi42em00OS43IDBjMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjcgMGMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAuMy0xMCAyMC4zLTIxLjFsMC0zMi42ek00MjEuNyAyODZjLTMwLjkgNTkuMS05MC4zIDEwMi42LTE1OC42IDEwMi42LTk2LjYgMC0xNjAuNi04NC42LTE2MC42LTE3Ni42IDAtMTYuOSAyLTMzLjQgNi00OS43LTIwIDMzLjctMjkuNyA3Mi42LTI5LjcgMTExLjQgMCA2MC4zIDI0LjkgMTIxLjcgNzEuNCAxNjAuOSA1LjEtOS43IDE0LjktMTYuMyAyNi0xNi4zIDEwIDAgMTkuNCA1LjcgMjQuNiAxNC4zIDUuNC04LjYgMTQuNi0xNC4zIDI0LjktMTQuMyAxMCAwIDE5LjQgNS43IDI0LjYgMTQuMyA1LjQtOC42IDE0LjktMTQuMyAyNC45LTE0LjNzMTkuNCA1LjcgMjQuOSAxNC4zYzUuMS04LjYgMTQuNi0xNC4zIDI0LjYtMTQuMyAxMC45IDAgMjAuOSA2LjYgMjUuNyAxNiA0My40LTM2LjMgNjguNi05MiA3MS40LTE0OC4zem0xMC42LTk5LjdjMC01My43LTM0LjYtMTA1LjctOTIuNi0xMDUuNy0zMC4zIDAtNTguNiAxNS4xLTc4LjkgMzYuOS0yMCA2Ni40LTI3LjQgMTM2LjYgNDEuNCAxMzYuNiAyOC44IDAgOTcuNC0yOC41IDg0LjMgMzYuOSAyOC45LTI2IDQ1LjctNjUuNyA0NS43LTEwNC42eiJdfSxvbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGFydC1sYW5nIixpY29uOls1MTIsNTEyLFtdLCJlNjkzIiwiTTM3OC42IDc4LjljLTIuOC0uMS01LjYtLjItOC41LS4ybC0yNjQuMSAwIDE0My4yLTcyYzcuNC00LjQgMTguOC02LjcgMzAuNC02LjcgMTMuNSAwIDI5LjQgOS4yIDM3IDE2LjhsNjIgNjIgMCAuMXpNMTA3LjMgOTYuNWwyNjIuOCAwYzE2IDAgMjUuNCAxLjQgMzUuNCA5LjNsMTA2LjUgMTA2LjQgMCAyMDguOC03OS4zIC43LTMyNS40LTMyNS4yek05Ni41IDM3M2wwLTI2Mi4yIDMyMy44IDMyMy44IC43IDc3LjQtMjEyLjIgMC05OC4xLTk4LjJDOTkuNCA0MDIuNSA5Ni41IDM5OC41IDk2LjUgMzczek03OC43IDEwNS4zbDAgMjY3LjdjMCAzLjMgLjEgNi4zIC4yIDkuMWwtNjItNjJDNi41IDMwOS4zIDAgMjk0LjMgMCAyNzkuNiAwIDI3Mi44IDMuOSAyNjIuMSA2LjcgMjU2bDcyLTE1MC43eiJdfSxzbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVwbG95ZG9nIixpY29uOls1MTIsNTEyLFtdLCJmMzhlIiwiTTM4Mi4yIDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTMxNy41IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTE4OC41IDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTEyMy44IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTQ0OCA5NmMxNy41IDAgMzIgMTQuNCAzMiAzMmwwIDI1NmMwIDE3LjUtMTQuNCAzMi0zMiAzMkw2NCA0MTZjLTE3LjUgMC0zMi0xNC40LTMyLTMybDAtMjU2YzAtMTcuNSAxNC40LTMyIDMyLTMybDM4NCAwem0wLTMyTDY0IDY0QzI4LjggNjQgMCA5Mi44IDAgMTI4TDAgMzg0YzAgMzUuMiAyOC44IDY0IDY0IDY0bDM4NCAwYzM1LjIgMCA2NC0yOC44IDY0LTY0bDAtMjU2YzAtMzUuMi0yOC44LTY0LTY0LTY0eiJdfSxubHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmxpcGJvYXJkIixpY29uOls0NDgsNTEyLFtdLCJmNDRkIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTM1OC40IDIxMS4ybC04OS42IDAgMCA4OS42LTg5LjYgMCAwIDg5LjYtODkuNiAwIDAtMjY4LjggMjY4LjggMCAwIDg5LjZ6Il19LGxsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidXktbi1sYXJnZSIsaWNvbjpbNTc2LDUxMixbXSwiZjhhNiIsIk0yODguMiAzMkMxMzMuNSAzMiA4IDEzMi4zIDggMjU2UzEzMy41IDQ4MCAyODguMiA0ODAgNTY4LjQgMzc5LjcgNTY4LjQgMjU2IDQ0Mi45IDMyIDI4OC4yIDMyek0yMDIuOCAzODkuMmwtMTM4LjUgMS40IDc3LjItMjkwLjcgMTMzLjQgMGM2My4yIDAgODQuOSAyOC42IDc4IDcyLjgtLjQgMi4zLS45IDQuNi0xLjUgNi45LTUuNi0xLjMtMTEuNC0xLjktMTcuMi0xLjktNDIuMyAwLTc2LjcgMzMuOS03Ni43IDc1LjcgMCAzNy4xIDI3LjEgNjggNjIuOSA3NC41LTE4LjIgMzcuMi01Ni4yIDYwLjktMTE3LjcgNjEuNXpNMzU4LjIgMjA3LjFsMzIgMC0yMi4yIDkwLjMtMzUuNCAwLTExLjItMzUuNi03LjggMzUuNi0zNy44IDAgMjYuNi05MC4zIDMxLjMgMCAxNSAzNi44IDkuNC0zNi44ek01MDQuMSAzODkuMmwtMTk3LjEgMCAxNS44LTYxLjJjMy44IC42IDcuNiAuOCAxMS41IC44IDQyLjMgMCA3Ni43LTMzLjkgNzYuNy03NS42IDAtMzIuNi0yMS02MC41LTUwLjQtNzEuMWwyMS4zLTgyLjQgOTIuNSAwLTUzIDIwNS40IDEwMy45IDAtMjEuMiA4NC4xek0yMTEuOSAyNjkuNGwtMjQuNyAwLTEzLjggNTYuNSAyNC43IDBjMTYuMSAwIDMyLjEtMy4yIDM3LjktMjYuNiA1LjYtMjIuMy04LTI5LjgtMjQuMS0yOS44ek0yMzMuMiAxNzBsLTIxLjMgMC0xMS43IDQ3LjcgMjEuNCAwYzE4IDAgMzUuNC0xNC42IDM5LjItMzAuMSA0LjYtMTguOS05LjUtMTcuNi0yNy42LTE3LjZ6Il19LGNsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3YXRjaG1hbi1tb25pdG9yaW5nIixpY29uOls1MTIsNTEyLFtdLCJlMDg3IiwiTTI1NiAxNmEyNDAgMjQwIDAgMSAwIDAgNDgwIDI0MCAyNDAgMCAxIDAgMC00ODB6TTEyMS43IDQyOS4xYy01MS42LTQwLjItODQuOS0xMDIuOC04NC45LTE3My4xIDAtMjEuNyAzLjItNDMuMyA5LjYtNjQuMWwxMDIuOS0xNy45LS4xIDExLTEzLjkgMnMtLjEgMTIuNS0uMSAxOS41YzAgMiAuNCA0IDEuMiA1LjhzMi4xIDMuNCAzLjcgNC42bDkuNSA3LjQtMjcuNyAyMDQuOXpNMjI3LjQgMTQ1LjlsOC41LTcuNnM2LjktNS40LS4xLTkuM2MtNy4yLTQtMzkuNS0zNC41LTM5LjUtMzQuNS01LjMtNS41LTguMy03LjMtMTUuNSAwIDAgMC0zMi4zIDMwLjUtMzkuNSAzNC41LTcuMSA0LS4xIDkuMy0uMSA5LjNsOC41IDcuNiAwIDQuNC03My41LTE5LjJjMzkuNi01Ni45IDEwNS41LTk0LjMgMTgwLTk0LjMgMzEuMyAwIDYyLjIgNi43IDkwLjYgMTkuNnM1My44IDMxLjggNzQuMyA1NS40bC0xOTMuNSAzNy43IDAtMy42em0zNC4xIDMyOS4zbC0zMy45LTI1MC45IDkuNS03LjRjMS42LTEuMiAyLjgtMi44IDMuNy00LjZzMS4zLTMuOCAxLjItNS44YzAtNy0uMS0xOS41LS4xLTE5LjVsLTEzLjktMi0uMS0xMC41IDI0MS43IDMxLjRjMy45IDE2LjQgNS44IDMzLjMgNS44IDUwLjEgMCAxMTkuMS05NS40IDIxNi4yLTIxMy44IDIxOS4xeiJdfSxkbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGlwcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQ1MiIsIk0yNTEuNiAxNTcuNmMwLTEuOS0uOS0yLjgtMi44LTIuOGwtNDAuOSAwYy0xLjYgMC0yLjcgMS40LTIuNyAyLjhsMCAyMDEuOGMwIDEuNCAxLjEgMi44IDIuNyAyLjhsNDAuOSAwYzEuOSAwIDIuOC0uOSAyLjgtMi44bDAtMjAxLjh6TTE1Ni41IDE2OGMtMTYuMS0xMS44LTM2LjMtMTcuOS02MC4zLTE4LTE4LjEtLjEtMzQuNiAzLjctNDkuOCAxMS40bDAtODEuMmMwLTEuOC0uOS0yLjctMi44LTIuN2wtNDAuOSAwQy45IDc3LjUgMCA3OC40IDAgODAuMkwwIDM1OS40YzAgMS45IC45IDIuOCAyLjcgMi44bDQxIDBjMS45IDAgMi44LS45IDIuOC0yLjhsMC0xMzYuMWMwLS44LTIuOC0yNyA0NS44LTI3IDQ4LjUgMCA0NS44IDI2LjEgNDUuOCAyN2wwIDEyMi42YzAgOSA3LjMgMTYuMyAxNi40IDE2LjNsMjcuMyAwYzEuOCAwIDIuNy0uOSAyLjctMi44bDAtMTM2LjFjMC0yMy40LTkuMy00MS44LTI4LTU1LjN6TTYzNC45IDI3OC4xYy02LjgtMTUuNy0xOC40LTI3LTM0LjktMzQuMWwtNTcuNi0yNS4zYy04LjYtMy42LTkuMi0xMS4yLTIuNi0xNi4xIDcuNC01LjUgNDQuMy0xMy45IDg0IDYuOCAxLjcgMSA0LS4zIDQtMi40bDAtNDQuN2MwLTEuMy0uNi0yLjEtMS45LTIuNi0xNy43LTYuNi0zNi4xLTkuOS01NS4xLTkuOS0yNi41IDAtNDUuMyA1LjgtNTguNSAxNS40LS41IC40LTI4LjQgMjAtMjIuNyA1My43IDMuNCAxOS42IDE1LjggMzQuMiAzNy4yIDQzLjZMNTgwLjQgMjg2YzExLjYgNS4xIDE1LjIgMTMuMyAxMi4yIDIxLjItMy43IDkuMS0xMy4yIDEzLjYtMzYuNSAxMy42LTI0LjMgMC00NC43LTguOS01OC40LTE5LjEtMi4xLTEuNC00LjQgLjItNC40IDIuM2wwIDM0LjRjMCAxMC40IDQuOSAxNy4zIDE0LjYgMjAuNyAxNS42IDUuNSAzMS42IDguMiA0OC4yIDguMiAxMi43IDAgMjUuOC0xLjIgMzYuMy00LjMgLjctLjMgMzYtOC45IDQ1LjYtNDUuOCAzLjUtMTMuNSAyLjQtMjYuNS0zLjEtMzkuMXpNMzc2LjIgMTQ5LjhjLTMxLjcgMC0xMDQuMiAyMC4xLTEwNC4yIDEwMy41bDAgMTgzLjVjMCAuOCAuNiAyLjcgMi43IDIuN2w0MC45IDBjMS45IDAgMi44LS45IDIuOC0yLjdsMC04OC44YzE2LjUgMTIuNyAzNS44IDE5LjEgNTcuNyAxOS4xIDYwLjUgMCAxMDguNy00OC41IDEwOC43LTEwOC43IC4xLTYwLjMtNDguMi0xMDguNi0xMDguNi0xMDguNnptMCA0Ni42YTYyLjIgNjIuMiAwIDEgMSAwIDEyNC4zIDYyLjIgNjIuMiAwIDEgMSAwLTEyNC4zek0yMjguMyA3Mi41Yy0xNS45IDAtMjguOCAxMi45LTI4LjkgMjguOSAwIDE1LjYgMTIuNyAyOC45IDI4LjkgMjguOXMyOC45LTEzLjEgMjguOS0yOC45YzAtMTYuMi0xMy0yOC45LTI4LjktMjguOXoiXX0sZmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3VkdmVyc2lmeSIsaWNvbjpbNjQwLDUxMixbXSwiZjM4NSIsIk0xNjAuNiAzMDRjOC4yIDY4LjUgNjcuNCAxMTUuNSAxNDYgMTExLjMgNTEuMiA0My4zIDEzNi44IDQ1LjggMTg2LjQtNS42IDY5LjIgMS4xIDExOC41LTQ0LjYgMTMxLjUtOTkuNSAxNC44LTYyLjUtMTguMi0xMzIuNS05Mi4xLTE1NS4xLTMzLTg4LjEtMTMxLjQtMTAxLjUtMTg2LjUtODUtNTcuMyAxNy4zLTg0LjMgNTMuMi05OS4zIDEwOS43LTcuOCAyLjctMjYuNSA4LjktNDUgMjQuMSAxMS43IDAgMTUuMiA4LjkgMTUuMiAxOS41bDAgMjAuNGMwIDEwLjctOC43IDE5LjUtMTkuNSAxOS41bC0yMC4yIDBjLTEwLjcgMC0xOS41LTYtMTkuNS0xNi43bDAtNi42LTQ2LjggMGMtMy44IDAtMTAuOCA0LjMtMTAuOCAxMS45bDAgNDAuNGMwIDYuNCA1LjMgMTEuOCAxMS43IDExLjhsNDguOSAwIDAtLjF6TTM4OCAzMTJjLTEwLjcgNDYuMyAyMS43IDcyLjQgNTUuMyA4Ni44LTEwNy4yIDMzLjgtMTcxLjYtNTAuOC0xMzUuMy0xMTAuOC0zMy4yIDIxLjYtMzMuNyA3MS4yLTI5LjIgOTIuOS0xNy45LTEyLjQtNTMuOC0zMi40LTU3LjQtNzkuOC0zLTM5LjkgMjEuNS03NS43IDU3LTkzLjkgMzAuNi0xNS44IDEwMy41LTguNSAxMzMuNiA0MC44LTE0LjEtNDgtNTMuOC03MC4xLTEwMS44LTc0LjggMzAuOS0zMC43IDY0LjQtNTAuMyAxMTQuMi00My43IDY5LjggOS4zIDEzMy4yIDgyLjggNjcuNyAxNTAuNSAzNS0xNi4zIDQ4LjctNTQuNCA0Ny41LTc2LjlsMTAuNSAxOS42YzExLjggMjIgMTUuMiA0Ny42IDkuNCA3Mi05LjIgMzktNDAuNiA2OC44LTc5LjcgNzYuNS0zMi4xIDYuMy04My4xLTUuMS05MS44LTU5LjJ6TTE0MCAyMDhsLTM5LjggMGMtOC45IDAtMTYuMi03LjMtMTYuMi0xNi4ybDAtMzkuNmMwLTguOSA3LjMtMTYuMiAxNi4yLTE2LjJsMzkuOCAwYzguOSAwIDE2LjIgNy4zIDE2LjIgMTYuMmwwIDM5LjZjMCA4LjktNy4zIDE2LjItMTYuMiAxNi4yek0yMi4xIDE2OGMtNS42IDAtMTAuMS00LjUtMTAuMS0xMC4xbDAtMjcuOGMwLTUuNiA0LjUtMTAuMSAxMC4xLTEwLjFsMjcuNyAwYzUuNSAwIDEwLjEgNC41IDEwLjEgMTAuMWwwIDI3LjhjMCA1LjYtNC41IDEwLjEtMTAuMSAxMC4xbC0yNy43IDB6TTE4MCAxNDIuN2wwLTIxLjRjMC01LjEgNC4yLTkuMyA5LjMtOS4zbDIxLjQgMGM1LjEgMCA5LjMgNC4yIDkuMyA5LjNsMCAyMS40YzAgNS4xLTQuMiA5LjMtOS4zIDkuM2wtMjEuNCAwYy01LjEgMC05LjMtNC4yLTkuMy05LjN6TTY4IDIzNS41bDAgMjVjMCA2LjMtNS4xIDExLjUtMTEuNCAxMS41bC0yNS4yIDBjLTYuMyAwLTExLjQtNS4yLTExLjQtMTEuNWwwLTI1YzAtNi4zIDUuMS0xMS41IDExLjQtMTEuNWwyNS4xIDBjNi40IDAgMTEuNSA1LjIgMTEuNSAxMS41eiJdfSx1bHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJmM2E4IiwiTTI5OS45IDE5MS4yYzUuMSAzNy4zLTQuNyA3OS0zNS45IDEwMC43LTIyLjMgMTUuNS01Mi44IDE0LjEtNzAuOCA1LjctMzcuMS0xNy4zLTQ5LjUtNTguNi00Ni44LTk3LjIgNC4zLTYwLjkgNDAuOS04Ny45IDc1LjMtODcuNSA0Ni45LS4yIDcxLjggMzEuOCA3OC4yIDc4LjN6TTQ0OCA4OGwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6TTMzMCAzMTMuMnMtLjEtMzQtLjEtMjE3LjNsLTI5IDAgMCA0MC4zYy0uOCAuMy0xLjItLjUtMS42LTEuMi05LjYtMjAuNy0zNS45LTQ2LjMtNzYtNDYtNTEuOSAuNC04Ny4yIDMxLjItMTAwLjYgNzcuOC00LjMgMTQuOS01LjggMzAuMS01LjUgNDUuNiAxLjcgNzcuOSA0NS4xIDExNy44IDExMi40IDExNS4yIDI4LjktMS4xIDU0LjUtMTcgNjktNDUuMiAuNS0xIDEuMS0xLjkgMS43LTIuOSAuMiAuMSAuNCAuMSAuNiAuMiAuMyAzLjggLjIgMzAuNyAuMSAzNC41LS4yIDE0LjgtMiAyOS41LTcuMiA0My41LTcuOCAyMS0yMi4zIDM0LjctNDQuNSAzOS41LTE3LjggMy45LTM1LjYgMy44LTUzLjItMS4yLTIxLjUtNi4xLTM2LjUtMTktNDEuMS00MS44LS4zLTEuNi0xLjMtMS4zLTIuMy0xLjNsLTI2LjggMGMuOCAxMC42IDMuMiAyMC4zIDguNSAyOS4yIDI0LjIgNDAuNSA4Mi43IDQ4LjUgMTI4LjIgMzcuNCA0OS45LTEyLjMgNjcuMy01NC45IDY3LjQtMTA2LjN6Il19LHBsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aWRhbCIsaWNvbjpbNjQwLDUxMixbXSwiZTdkYyIsIk0xMDcuMiA0OGwtMS4zIDBjLTMyLjMgMzMuMS02NS40IDY1LjUtOTggOTguNS0yLjYgMi44LTYuMSA1LjEtNy45IDguNiAzNS42IDM1LjQgNzEgNzEgMTA2LjYgMTA2LjQgMzUuNC0zNS4zIDcwLjctNzAuOCAxMDYuMS0xMDYuMWwwLTEuMy03My4yLTczLjJDMTI4LjggNjkuOCAxMTcuMyA1OS42IDEwNy4yIDQ4em0yMTMuNSAwbC0xLjMgMGMtMzQuOSAzNi4xLTcxLjUgNzEtMTA2LjMgMTA3LjIgMzUuOSAzNS4xIDcxIDcxIDEwNi43IDEwNi4zIDM0LjMtMzQuMSA2OC40LTY4LjQgMTAyLjYtMTAyLjQgMS41LTEuNSAzLjMtMi44IDQuMS00LjgtMzQuNi0zMy44LTY4LjQtNjguMi0xMDIuNi0xMDIuMS0xLjMtMS4zLTIuMy0yLjYtMy4zLTQuMXptMjEzLjUgMGwtMS4zIDBjLTE3LjIgMTgtMzUuMSAzNS4zLTUyLjYgNTMtMTcuOSAxNy43LTM1LjQgMzUuNy01My41IDUzLjMgLjggMi4zIDMgMy42IDQuNiA1LjVMNTMzLjMgMjYxLjVjMzYuMS0zNC45IDcwLjgtNzEuMiAxMDYuNy0xMDYuMS0uNS0yLjItMi42LTMuNS00LTVMNTU1LjggNzAuMmMtNy4xLTcuNC0xNC45LTE0LjItMjEuNS0yMi4yek0zMTkuNiAyNjEuN2MtMzQuOSAzNS4xLTcwIDcwLTEwNC45IDEwNC45LS4zIC43LS43IDEuNy0xIDIuMyAyNCAyMy43IDQ3LjcgNDcuNSA3MS41IDcxLjMgMTEuOCAxMS4zIDIyLjggMjMuNSAzNC45IDM0LjQgOC40LTcuNCAxNi40LTE2LjQgMjQuNy0yNC4zIDI1LjUtMjUuMyA1MS01MSA3Ni41LTc2LjMgMS44LTIuMiA0LjMtMy42IDUuNS02LjMtMzUuNC0zNC45LTcwLjUtNzAuMi0xMDUuNi0xMDUuNGwtMS41LS43eiJdfSxobHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pdHkiLGljb246WzQ0OCw1MTIsW10sImUwNDkiLCJNMjQzLjYgOTEuNmw4MC4xIDQ2LjhjMi45IDEuNiAzIDYuMiAwIDcuOGwtOTUuMiA1NS42Yy0yLjkgMS43LTYuMyAxLjYtOSAwbC05NS4yLTU1LjZjLTIuOS0xLjYtMy02LjMgMC03LjhsODAuMS00Ni44IDAtOTEuNi0yMDQuNCAxMTkuNCAwIDIzOC44IDc4LjQtNDUuOCAwLTkzLjZjLS4xLTMuMyAzLjgtNS43IDYuNy0zLjlsOTUuMiA1NS42YzIuOSAxLjcgNC41IDQuNyA0LjUgNy44bDAgMTExLjJjLjEgMy4zLTMuOCA1LjctNi43IDMuOUw5OCAzNDYuOCAxOS42IDM5Mi42IDIyNCA1MTIgNDI4LjQgMzkyLjYgMzUwIDM0Ni44IDI2OS45IDM5My42Yy0yLjggMS43LTYuOC0uNS02LjctMy45bDAtMTExLjJjMC0zLjMgMS44LTYuMyA0LjUtNy44TDM2Mi45IDIxNWMyLjgtMS43IDYuOCAuNSA2LjcgMy45bDAgOTMuNiA3OC40IDQ1LjggMC0yMzguOC0yMDQuNC0xMTkuNCAwIDkxLjZ6Il19LG1sdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZW5jZW50LXdlaWJvIixpY29uOlszMjAsNTEyLFtdLCJmMWQ1IiwiTTQwLjUgNDk1LjhjMS40IDE5LjktMjcuNiAyMi4yLTI5LjcgMi45LTExLjYtMTI5LjkgMzEuMS0yMzkuNSAxMDEuNC0zMTMuMi0xNS42LTM0IDkuMi03Ny4xIDUwLjYtNzcuMSAzMC4zIDAgNTUuMSAyNC42IDU1LjEgNTUuMSAwIDQ0LTQ5LjUgNzAuOC04Ni45IDQ1LjEtNjUuNyA3MS4zLTEwMS40IDE2OS44LTkwLjUgMjg3LjJ6TTE2MC4yIC4xYy0xMjUuOSAwLTIwNC4zIDEzNC4yLTE0OC4zIDI0Mi4zIDguNyAxNy40IDM1LjMgNC41IDI2LjMtMTMuNC00Ni4zLTkyLjYgMjEtMTk5LjIgMTIyLTE5OS4yIDc1LjQgMCAxMzYuOSA2MS40IDEzNi45IDEzNi45IDAgOTAuOC04Ni45IDE1My45LTE2Ny43IDEzMy4xLTE5LjEtNC4xLTI1LjYgMjQuNC02LjYgMjkuMSAxMTAuNyAyMy4yIDIwNC02MCAyMDQtMTYyLjMgMC05MS45LTc0LjYtMTY2LjUtMTY2LjYtMTY2LjV6Il19LGdsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmcmVlLWNvZGUtY2FtcCIsaWNvbjpbNTc2LDUxMixbXSwiZjJjNSIsIk05Ny40IDk2LjJjMTAuNC0xMC42IDE2LTE3LjEgMTYtMjEuOSAwLTIuOC0xLjktNS41LTMuOC03LjQtMi40LTEuOC01LjQtMi44LTguNC0yLjgtOC41IDAtMjAuOSA4LjgtMzUuOCAyNS43LTQxLjUgNDcuMy02Mi43IDkzLjEtNjEuOCAxNjAuNlMyMSAzNjcuMyA1Ny42IDQxMi4yYzE4LjggMjMuNiAzMy4yIDM1LjggNDMuNSAzNS44IDMuMi0uMyA2LjEtMS42IDguNC0zLjggMS45LTIuOCAzLjgtNS42IDMuOC04LjQgMC01LjYtMy45LTEyLjItMTMuMi0yMC42LTQ0LjUtNDIuMy02Ny4zLTk3LTY3LjUtMTY1LS4yLTYxLjQgMjEuNi0xMTIuNCA2NC44LTE1NHpNMjM5LjYgNDIwLjFjLjYgLjQgLjkgLjYgLjkgLjZsLS45LS42em05My44IC42bC4yLS4xYy0uMiAuMS0uMyAuMi0uMiAuMXptMy4xLTE1OC4yYy0xNi4yLTQuMiA1MC40LTgyLjktNjguMS0xNzcuMiAwIDAgMTUuNSA0OS40LTYyLjggMTU5LjYtNzQuMyAxMDQuNCAyMy41IDE2OC43IDM0IDE3NS4yLTYuNy00LjMtNDcuNC0zNS43IDkuNi0xMjguNiAxMS0xOC4zIDI1LjUtMzQuOSA0My41LTcyLjIgMCAwIDE1LjkgMjIuNCA3LjYgNzEuMS0xMi41IDczLjYgNTMuOCA1Mi41IDU0LjggNTMuNSAyMi44IDI2LjgtMTcuNyA3My41LTIxLjYgNzYuNiA1LjUtMy43IDExNy43LTc4IDMzLTE4OC4xLTYgNi0xMy44IDM0LjItMzAgMzAuMXpNNTExIDg5LjdjLTE0LjktMTYuOS0yNy40LTI1LjctMzUuOS0yNS43LTMgLjEtNS45IDEuMS04LjQgMi44LTEuOSAxLjktMy44IDQuNy0zLjggNy40IDAgNC44IDUuNiAxMS4zIDE2IDIxLjkgNDMuMiA0MS42IDY1IDkyLjYgNjQuOCAxNTQuMS0uMiA2OC0yMyAxMjIuNi02Ny41IDE2NS05LjMgOC40LTEzLjIgMTQuOS0xMy4yIDIwLjYgMCAyLjcgMS45IDUuNiAzLjggOC40IDIuMyAyLjIgNS4yIDMuNiA4LjQgMy44IDEwLjMgMCAyNC43LTEyLjEgNDMuNS0zNS44IDM2LjYtNDQuOSA1My4xLTk0LjQgNTQuMS0xNjEuOVM1NTIuNSAxMzcgNTExIDg5Ljd6Il19LHhsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4LXR3aXR0ZXIiLGljb246WzQ0OCw1MTIsW10sImU2MWIiLCJNMzU3LjIgNDhMNDI3LjggNDggMjczLjYgMjI0LjIgNDU1IDQ2NCAzMTMgNDY0IDIwMS43IDMxOC42IDc0LjUgNDY0IDMuOCA0NjQgMTY4LjcgMjc1LjUtNS4yIDQ4IDE0MC40IDQ4IDI0MC45IDE4MC45IDM1Ny4yIDQ4ek0zMzIuNCA0MjEuOGwzOS4xIDAtMjUyLjQtMzMzLjgtNDIgMCAyNTUuMyAzMzMuOHoiXX0sYmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0aWNrZXItbXVsZSIsaWNvbjpbNTc2LDUxMixbXSwiZjNmNyIsIk01NjEuNyAxOTkuNmwwIDB6bS02LjItNzcuNGMtNy43LTIyLjMtNS4xLTcuMi0xMy40LTM2LjktMS42LTYuNS0zLjYtMTQuNS02LjItMjAtNC40LTguNy00LjYtNy41LTQuNi05LjUgMC01LjMgMzAuNy00NS4zIDE5LTQ2LjktNS43LS42LTEyLjIgMTEuNi0yMC42IDE3LTguNiA0LjItOCA1LTEwLjMgNS0yLjYgMC01LjctMy02LjItNS0yLTUuNyAxLjktMjUuOS0zLjYtMjUuOS0zLjYgMC0xMi4zIDI0LjgtMTcgMjUuOC01LjIgMS4zLTI3LjktMTEuNC03NS4xIDE4LTI1LjMgMTMuMi04Ni45IDY1LjItODcgNjUuMy02LjcgNC43LTIwIDQuNy0zNS41IDE2LTQ0LjQgMzAuMS0xMDkuNiA5LjQtMTEwLjcgOS0xMTAuNi0yNi44LTEyOC0xNS4yLTE1OSAxMS41LTIwLjggMTcuOS0yMy43IDM2LjUtMjQuMiAzOC45LTQuMiAyMC40IDUuMiA0OC4zIDYuNyA2NC4zIDEuOCAxOS4zLTIuNyAxNy43IDcuNyA5OC4zIC41IDEgNC4xIDAgNS4xIDEuNSAwIDguNC0zLjggMTIuMS00LjEgMTMtMS41IDQuNS0xLjUgMTAuNSAwIDE2IDIuMyA4LjIgOC4yIDM3LjIgOC4yIDQ2LjkgMCA0MS44IC40IDQ0IDIuNiA0OS40IDMuOSAxMCAxMi41IDkuMSAxNyAxMiAzLjEgMy41LS41IDguNSAxIDEyLjUgLjUgMiAzLjYgNCA2LjIgNSA5LjIgMy42IDI3IC4zIDI5LjktMi41IDEuNi0xLjUgLjUtNC41IDMuMS01IDUuMSAwIDEwLjgtLjUgMTQuNC0yLjUgNS4xLTIuNSA0LjEtNiAxLjUtMTAuNS0uNC0uOC03LTEzLjMtOS44LTE2LTIuMS0yLTUuMS0zLTcuMi00LjUtNS44LTQuOS0xMC4zLTE5LjQtMTAuMy0xOS41LTQuNi0xOS40LTEwLjMtNDYuMy00LjEtNjYuOCA0LjYtMTcuMiAzOS41LTg3LjcgMzkuNi04Ny44IDQuMS02LjUgMTctMTEuNSAyNy4zLTcgNiAxLjkgMTkuMyAyMiA2NS40IDMwLjkgNDcuOSA4LjcgOTcuNC0yIDExMi4yLTIgMi44IDItMS45IDEzLS41IDM4LjkgMCAyNi40LS40IDEzLjctNC4xIDI5LjktMi4yIDkuNyAzLjQgMjMuMi0xLjUgNDYuOS0xLjQgOS44LTkuOSAzMi43LTguMiA0My40IC41IDEgMSAyIDEuNSAzLjUgLjUgNC41IDEuNSA4LjUgNC42IDEwIDcuMyAzLjYgMTItMy41IDkuOCAxMS41LS43IDMuMS0yLjYgMTIgMS41IDE1IDQuNCAzLjcgMzAuNiAzLjQgMzYuNSAuNSAyLjYtMS41IDEuNi00LjUgNi40LTcuNCAxLjktLjkgMTEuMy0uNCAxMS4zLTYuNSAuMy0xLjgtOS4yLTE5LjktOS4zLTIwLTIuNi0zLjUtOS4yLTQuNS0xMS4zLTgtNi45LTEwLjEtMS43LTUyLjYgLjUtNTkuNCAzLTExIDUuNi0yMi40IDguNy0zMi40IDExLTQyLjUgMTAuMy01MC42IDE2LjUtNjguMyAuOC0xLjggNi40LTIzLjEgMTAuMy0yOS45IDkuMy0xNyAyMS43LTMyLjQgMzMuNS00Ny40IDE4LTIyLjkgMzQtNDYuOSA1Mi02OS44IDYuMS03IDguMi0xMy43IDE4LTggMTAuOCA1LjcgMjEuNiA3IDMxLjkgMTcgMTQuNiAxMi44IDEwLjIgMTguMiAxMS44IDIyLjkgMS41IDUgNy43IDEwLjUgMTQuOSA5LjUgMTAuNC0yIDEzLTIuNSAxMy40LTIuNSAyLjYtLjUgNS43LTUgNy4yLTggMy4xLTUuNSA3LjItOSA3LjItMTYuNSAwLTcuNy0uNC0yLjgtMjAuNi01Mi45eiJdfSx2bHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHdpdGNoIixpY29uOls0NDgsNTEyLFtdLCJmMWU4IiwiTTM1OS40IDEwMy41bC0zOC42IDAgMCAxMDkuNyAzOC42IDAgMC0xMDkuN3pNMjUzLjIgMTAzbC0zOC42IDAgMCAxMDkuOCAzOC42IDAgMC0xMDkuOHpNODkgMGwtOTYuNSA5MS40IDAgMzI5LjIgMTE1LjggMCAwIDkxLjQgOTYuNS05MS40IDc3LjMgMCAxNzMuOC0xNjQuNiAwLTI1Ni0zNjYuOSAwek00MTcuMyAyMzcuOGwtNzcuMiA3My4xLTc3LjIgMC02Ny42IDY0IDAtNjQtODYuOSAwIDAtMjc0LjMgMzA4LjkgMCAwIDIwMS4yeiJdfSx5bHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2lja3N0YXJ0ZXItayIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiYyIsIk0zNTYuNyAyNTYuMmw0MC44LTQwLjVjNDIuMi00MS45IDQyLjItMTEwLjMgMC0xNTIuMXMtMTExLTQxLjktMTUzLjIgMEwyMjkuMyA3OC40QzIwOS42IDUwLjMgMTc3LjEgMzIgMTQwLjIgMzIgODAuNSAzMiAzMiA4MC4yIDMyIDEzOS41bDAgMjMzYzAgNTkuNCA0OC41IDEwNy41IDEwOC4yIDEwNy41IDM3LjEgMCA2OS4zLTE4LjMgODktNDYuNGwxNC45IDE0LjdjNDIuMiA0MS45IDExMSA0MS45IDE1My4yIDBzNDIuMi0xMTAuMyAwLTE1Mi4xbC00MC44LTQwIC4xIDB6Il19LHdsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcml0aWNhbC1yb2xlIixpY29uOls0NDgsNTEyLFtdLCJmNmM5IiwiTTIyNS44IDBjLjMgLjIgMjE2LjYgMTI0LjUgMjE3LjEgMTI0LjcgMyAxLjIgMy43IDMuNSAzLjcgNi42LS4xIDgzLjQtLjEgMTY2LjkgMCAyNTAuNCAuMSAxLjItLjIgMi40LS44IDMuNHMtMS41IDEuOS0yLjYgMi40Yy0yMS40IDEyLTIwNy45IDExOC4zLTIxOC45IDEyNC42bC0zIDBjLTc5LjMtNDUuNy0yMTguMy0xMjUuNC0yMTguNC0xMjUuNS0uNi0uMy0xLjEtLjctMS40LTEuM3MtLjUtMS4yLS40LTEuOWMwLS45IDAtMjI1LjktLjEtMjUzLjEtLjEtMSAuMi0yIC43LTIuOXMxLjMtMS42IDIuMi0yQzI3LjIgMTEyLjEgMjEzLjIgNiAyMjQuMSAwbDEuOCAwek0yMTUuNCAyMC40bC0uMi0uMmMtNjQuNyAzNi45LTEyOS41IDczLjctMTk0LjIgMTEwLjYgMCAuMSAuMSAuMiAuMSAuNEw1MiAxNDIuOWMtNy43IDYtOC4zIDYtMTAuNiA1LjEtLjEgMC0yNC4yLTkuMy0yNi44LTEwbDAgMjMwLjRjLjktMS40IDY0LjEtMTEwLjkgNjQuMS0xMTEgMS42LTIuOCAzLTEuOSA5LjEtMS41IDEuNCAuMSAxLjUgLjIgLjggMS40LTQxLjIgNzEuMy0zNi40IDYzLTY3LjUgMTE2LjktLjggMS40LS42IDEuMSAxLjIgMS4xbDE4Ni41IDBjMS40IDAgMS43LS4yIDEuNy0xLjZsMC04LjljMC0xLjMgMi40LS44LTE4LjQtMS03LjUtLjEtMTQuMS0zLjItMjEuNC0xMi43LTcuNC05LjctMTQuNi0xOS40LTIxLjgtMjkuMi0yLjMtMy4xLTMuNC0yLjQtMTYuOC0yLjQtMS44IDAtMS44IDAtMS44IDEuOCAuMyAyNi4yIC4yIDI1LjMgMSAzMi43IC41IDQuNCAyLjIgNC4yIDkuNyA0LjggMy4xIC4zIDMuOSA0LjEgLjUgNC45LTEuNiAuNC0zMS42IC41LTMzLjctLjEtLjUtLjEtMS0uNS0xLjMtLjlzLS41LTEtLjQtMS42IC4zLTEuMSAuNi0xLjUgLjktLjcgMS40LS44YzMuMy0uOCA2LjIgLjggNi43LTQuNCAxLjMtMTMuNyAxLjItOSAxLjEtNzkuNCAwLTEwLjgtLjQtMTIuNi01LjQtMTMuNi0xLjItLjItMy41LS4yLTQuNy0uNi0yLjktMS0yLTQuOCAxLjgtNC44IDMzLjcgMCA0Ni4xLTEuMSA1Ni4xIDQuOSA3LjcgNC42IDEyIDExLjUgMTIuNSAyMC40IC45IDE0LjYtNi41IDIyLjMtMTUgMzIuNi0uMiAuMS0uMyAuMy0uNCAuNXMtLjEgLjQtLjEgLjYgMCAuNCAuMSAuNiAuMiAuNCAuNCAuNWMyLjYgMy4yIDUgNi42IDcuNyA5LjggMjcuNiAzMy4yIDI0LjEgMzAuNSA0MS4zIDMzLjEgLjkgLjEgMS0uNCAxLTEuMmwwLTExYzAtMSAuMy0xLjQgMS40LTEuMyA3LjggMS4yIDE1LjggMS4xIDIzLjYtLjMgMS4xLS4xIDEuNSAuMiAxLjUgMS4zIDAgLjEgLjkgMjYuNyAuOSAyNi44IDAgMS41IC43IDEuNiAxLjkgMS42bDE4Ni43IDBjLTI3LjItNDctNTQuMi05NC04MS4yLTE0MC44IDIuMy0uNy0uNCAwIDYuNy0xLjQgMi0uNCAyLjEtLjQgMy4xIDEuNCA3LjMgMTIuNiA3Ny4zIDEzNCA3Ny40IDEzNC4xbDAtMjMwLjRjLTEuNyAuNS0xMDMuMyAzOC43LTEwNS44IDM5LjctMS4xIC40LTEuNSAuMi0xLjktLjktLjYtMS45LTEuMy0zLjgtMi4xLTUuNi0uMy0uOC0uMS0xLjEgLjYtMS40IC4xIDAgOTUuNS0zNS44IDEwMy0zOC44LTY1LjQtMzcuNi0xMzAuNi03NS0xOTYtMTEyLjZsODYuOCAxNTAuNC0uMyAuM2MtOS42LS45LTEwLjUtMS42LTExLjgtMy45LTEtMS43LTczLjUtMTI3LjctODItMTQyLjItOS4xIDE0LjctODMuNiAxNDYuMi04NS40IDE0Ni4zLTIuOSAuMi01LjkgLjEtOS4yIC4xIDI4LjgtNDkuOCA1Ny42LTk5LjUgODYuMi0xNDlsMCAwem01MS45IDEyOS45YzEuOS0uMSAzLjctLjQgNS41LS44IDEuNy0uMyAyLjUgLjIgMi42IDEuOSAwIC4xIC4xIDE5LjEtLjkgMjAuNXMtMS45IDEuMi0yLjYtLjJjLTUtOS43IDYuMi05LjctMzkuMS0xMi0uNyAwLTEgLjItMSAuOSAwIC4xIDMuNyAxMjIgMy43IDEyMi4xIDAgLjkgLjUgMS4yIDEuMiAxLjUgMyAxLjIgNS45IDIuNSA4LjcgNCA3LjMgNC4zIDExLjQgMTAuOCAxMi40IDE5LjMgMS40IDExLjgtMi44IDM1LjgtMzIuMiAzNy4xLTIuOCAuMS0yOC4zIDEuMS0zNC4xLTIzLjMtNC43LTE5LjMgOC4zLTMyLjcgMTkuOS0zNi40IC42LS4xIDEuMi0uNCAxLjUtLjlzLjUtMS4xIC41LTEuN2MuMS01LjYgMy0xMDcuMSAzLjctMTIxLjMgMC0xLjEtLjYtMS4yLTEuNC0xLjEtMzIuMyAuNS0zNi43LS4zLTQwLjIgOC41LTIuNCA2LjItNC4xIDEuMy00IC4yIDEuMS02IDIuMi0xMiAzLjMtMTggLjQtMi4xIDEuNC0yLjYgMy40LTEuOSA1LjYgMi4xIDYuNyAxLjcgMzcuMiAxLjkgMS43IDAgMS44LS4xIDEuOC0xLjggLjctMjcuNSAuNi0yMi42IDEtMjkuNiAuMS0uNi0uMS0xLjItLjMtMS43cy0uNy0uOS0xLjMtMS4xYy01LjYtMi45LTguOC03LjYtOC45LTEzLjktLjQtMTQuOCAxNy43LTIxLjcgMjcuNC0xMS41IDYuOCA3LjIgNS44IDE4LjktMi41IDI0LjItLjggLjQtMS40IDEuMS0xLjggMS44cy0uNiAxLjYtLjQgMi41YzAgLjYtLjEtNC4zIDEgMzAgMCAuOSAuNCAxLjEgMS4yIDEuMSAuMSAwIDIzLS4xIDM0LjUtLjRsMC0uMXpNNjguMyAxNDEuN2MxOS44LTQuNSAzMi43LS42IDUyLjUgMS43IDIuOCAuMyAzLjcgMS4yIDMuNiA0LS4yIDUtMS4yIDIyLjMtMS4yIDIzLjEgMCAuNS0uMiAxLS41IDEuNHMtLjcgLjctMS4yIC45Yy00LjEgMS43LTMuNi00LjQtNC03LjMtMy4xLTIyLjQtNzMuOS0zMi43LTc0LjYgMjUuNC0uMyAyMy45IDE3IDUzLjYgNTQuMSA1MC45IDI3LjItMiAxOS0yMC4yIDI0LjgtMjAuNSAuNC0uMSAuOSAwIDEuMyAuMXMuOCAuNCAxLjEgLjcgLjUgLjcgLjYgMS4yIC4xIC45IDAgMS4zYy0xLjggMTAuOC0zLjQgMTktMy40IDE5LjItMS41IDkuMi04Ni43IDIyLjEtOTMuNC00Mi4xLTIuNy0yNS44IDEwLjQtNTMuNCA0MC4zLTYwLjJ6bTgwIDg3LjdsLTE5LjUgMGMtLjYgMC0xLjItLjEtMS42LS40cy0uOC0uOC0xLTEuNGMyLjQtMy44IDUuOSAuOSA1LjktNi4xLS4xLTI1LjggLjItMzggLjItNDAuMSAwLTMuNC0uNS00LjYtMy4zLTQuOS03LS43LTMuMS0zLjQtMS4xLTMuNCAxMS44LS4xIDIyLjYtLjIgMzAgLjcgOC44IDEuMSAxNi43IDEyLjYgNy45IDIyLjYtMiAyLjItNCA0LjQtNi4xIDYuNyAxIDEuMiA2LjkgOC44IDE3LjMgMTkuNyAyLjcgMi44IDYuMiAzLjUgOS45IDMuMSAuNiAwIDEuMS0uMiAxLjUtLjZzLjctLjkgLjctMS41Yy4zLTMuNCAuMyA0LjcgLjQtNDAuNiAwLTUuNi0uMy02LjYtMy4yLTYuOC00LS40LTQtMi4zLS43LTMuNGwxOS4xLS4xYy4zIDAgNC41IC41IDEgMy40IDAgMC0uMiAwLS4yIDAtMy42IC4zLTMuOSAxLTQgNC42LS4zIDQzLjkgLjEgNDAuMiAuNCA0Mi44IC4xIC44IC4zIDIuMiA1LjEgMi4xIDIuNSAwIDMuOSAzLjQgMCAzLjQtMTAuNCAuMS0yMC43IDAtMzEuMSAuMS0xMC43IDAtMTMuNS02LjItMjQuMi0yMC44LTEuNi0yLjItOC4zLTIuNC04LjItLjQgLjkgMTYuNSAwIDE3LjggNCAxNy43IDQuOC0uMSA0LjcgMy42IC44IDMuNWwuMSAwem0yNzUtMTAuMWMtMS4yIDcuMSAuMiAxMC40LTUuMyAxMC4zLTYxLjUtLjQtNDcuOC0uMi01MC43LS4zLTEuMi0uMS0yLjQtLjQtMy42LS43LTIuNS0uNiAxLjUtMS4yLS40LTUuNi0xLjQtMy40LTIuOC02LjgtNC4xLTEwLjItLjEtLjQtLjQtLjgtLjctMS4xcy0uOC0uNC0xLjMtLjRjLTQuOS0uMi05LjctLjItMTQuNiAuMS0uMyAwLS42IC4yLS45IC4zcy0uNSAuNC0uNyAuN2MtMS42IDMuNi0zLjEgNy4zLTQuNSAxMS0xLjMgMy4yIDcuOSAxLjMgMTIuMiAyLjIgMyAuNiA0LjUgMy43IC43IDMuN2wtMjYuNCAwYy0yLjkgMC0zLjEtMy4yLS43LTMuMiAxLjIgLjEgMi40LS4yIDMuNS0uOXMxLjktMS41IDIuNC0yLjZjMS41LTMgMi44LTYgNC4xLTkuMSAxOC4yLTQyLjEgMTcuMS00MC4yIDE4LjQtNDEuNiAuMi0uMiAuNC0uNCAuNy0uNnMuNi0uMiAuOC0uMiAuNiAuMSAuOCAuMiAuNSAuMyAuNyAuNmMyLjkgMy4zIDE4LjQgNDQuNyAyMy42IDUxLjkgMiAyLjcgNS43IDIgNi40IDIgMy42IC4xIDQtMS4xIDQuMS00LjMgLjEtMS45IC4xIDEuMiAuMS00MS4yIDAtNC41LTIuNC0zLjctNS42LTQuMy0uMyAwLTIuNi0uNi0uMS0zLjEgLjItLjItLjktLjIgMjEuNy0uMiAyLjMgMCA1LjMgMi44LTEuMiAzLjQtLjQgMC0uNyAwLTEuMSAuMnMtLjYgLjMtLjkgLjYtLjQgLjYtLjYgLjktLjIgLjctLjEgMS4xYy0uMSAxLjYtLjIgMzguOSAuMyA0MS4yIC4yIC43IC42IDEuNCAxLjIgMS44czEuMyAuNyAyLjEgLjZjMTMuMyAuNCAxNC45IC40IDE2LTMuNCAxLjctNS44IDQuMS0yLjUgMy43LS4ybDAgLjF6TTMxOC42IDI4My42Yy00LjIgMC00LjQtMy40LS42LTMuNCAzNS45LS4yIDI4LjEgLjQgMzcuMi0uNiAxLjctLjIgMi40IC4yIDIuMyAxLjktLjMgMy40LS42IDYuOC0xIDEwLjItLjIgMi4yLTMuMiAyLjYtMy40LS4yLS40LTUuMy0yLjItNC41LTE1LjYtNS4xLTEuNi0uMS0xLjYgMC0xLjYgMS41bDAgMTYuMWMwIDEuNyAwIDEuNiAxLjYgMS41IDMuMS0uMiAxMC4zIC4zIDE1LjctMS41IC41LS4yIDMuMy0xLjggMy4xIDEuOCAwIC4yLS44IDEwLjQtMS4yIDExLjQtLjUgMS4zLTEuOSAxLjUtMi42IC4zLTEuMi0yIDAtNS4xLTMuNy01LjMtMTUuNC0uOS0xMi45LTIuNS0xMi45IDYgMCAxMi4zLS44IDE2LjEgMy45IDE2LjIgMTYuNiAuNSAxNC40IDAgMTYuNC01LjcgLjgtMi40IDMuNS0xLjggMy4yIC42LS40IDMuMi0uOCA2LjQtMS4yIDkuNiAwIC40LS4yIDIuNC00LjcgMi40LTM3LjItLjEtMzQuNS0uMi0zNS4yLS4zLTIuNy0uNS0yLjItMyAuMi0zLjQgMS4xLS4yIDQgLjUgNC4yLTIuNiAyLjQtNTYuMi0uMS01MS4zLTMuOS01MS4zbDAgMHptLS40LTEwOS41YzIuNSAuNiAzLjEgMS44IDMgNC42LS4zIDUuMy0uMyA5LS42IDkuNy0uNyAyLjItMy4xIDIuMS0zLjMtLjMtLjQtNC44LTMtNy44LTcuNi05LjEtMjYuMy03LjctMzIuOCAxNS41LTI3LjIgMzAuMiA1LjkgMTUuNCAyMiAxNS45IDI4LjkgMTMuOCA1LjktMS45IDUuOS02LjUgNi45LTcuNiAxLjItMS4zIDIuMi0xLjggMy4xIDEuMSAwIC4xIC42IDExLjktNiAxMi43LTEuNiAuMi0xOS40IDMuNy0zMi43LTMuNC0yMS0xMS4yLTE2LjctMzUuNS02LjktNDUuMyAxNC0xNC4xIDM5LjktNy4xIDQyLjMtNi41bDAgMHpNMjg5LjggMjgwLjFjMy4zIDAgMy43IDMgLjIgMy40LTIuNiAuMy01LS40LTUgNS41IDAgMi0uMiAyOSAuNCA0MS40IC4xIDIuMyAxLjIgMy41IDMuNCAzLjcgMjIgMS4yIDE1LTEuNyAxOC44LTYuMyAxLjgtMi4yIDIuOCAuOCAyLjggMS4xIC4zIDEzLjYtNCAxMi40LTUuMiAxMi40bC0zOC4yLS4yYy0xLjktLjItMi4xLTMtLjQtMy40IDItLjUgNC45IC40IDUuMS0yLjggMS0xNS45IC42LTQ0LjYgLjMtNDcuOC0uMy0zLjgtMi44LTMuMy01LjctMy43LTIuNS0uNC0yLTMuMiAuMy0zLjIgMS40IDAgMTggMCAyMy4xIDB6bS0zMS42LTU3LjhjLjEgNC4xIDIuOSAzLjUgNiAzLjYgMi42IC4xIDIuNSAzLjQtLjEgMy40LTYuNSAwLTEzLjcgMC0yMS42LS4xLTMuOCAwLTMuNC0zLjQgMC0zLjQgNC41IDAgMy4yIDEuNiAzLjQtNDUuNSAwLTUuMS0zLjMtMy41LTQuNy00LjItMi42LTEuMi0xLjQtMy4xIC40LTMuMiAxLjMgMCAyMC4yLS40IDIxLjIgLjJzMS45IDEuNi0uNCAyLjljLTEgLjUtMy45LS4zLTQuMiAyLjUgMCAuMi0uOCAxLjYtLjEgNDMuOGwwIDB6TTIyMS4zIDQ5Ni42Yy41IC4zIDEgLjUgMS42IC41czEuMS0uMiAxLjYtLjVjMTctOS44IDE4Mi0xMDMuNiAxOTcuNC0xMTIuNS0uMS0uNCAxMS4zLS4yLTE4MS41LS4zLTEuMiAwLTEuNiAuNC0xLjUgMS42IDAgLjEgMS4zIDQ0LjUgMS4yIDUwLjQtLjEgMi42LS42IDUuMi0xLjQgNy43LS42IDEuOCAuNC0uNS0xMy41IDMyLjItLjcgMS43LTEgMi4yLTItLjEtNC4yLTEwLjMtOC4zLTIwLjctMTIuNi0zMS0xLjUtMy40LTIuMi03LjEtMi0xMC44IC4yLTIuNSAuOC0xNi4xIDEuNS00OCAwLTEuOSAwLTItMi0ybC0xODMgMGMyLjYgMS42IDE3OC4zIDEwMi42IDE5NiAxMTIuOGwuMSAwek0xMzAuNCAzMDcuOWMwIDIuNCAuNCAyLjggMi44IDMgMTEuNSAxLjIgMjEgMy43IDI1LjYtNy4zIDYtMTQuNSAyLjctMzQuNC0xMi41LTM4LjgtMi0uNi0xNi0yLjgtMTUuOSAxLjUgMCA4IDAgMTEuNiAwIDQxLjZ6bTEwNS44LTE1YzAgMi4xIDEuMSAzOC43IDEuMSAzOS4xIC4zIDkuOS0yNS42IDUuOC0yNS4yLTIuNiAuMS0yIDEuNC0zNy40IDEuMS0zOS40LTE0LjEgNy40LTE0LjQgNDAuMiA2LjQgNDguOCA0IDEuNyA4LjQgMS45IDEyLjUgLjZzNy42LTQgOS45LTcuN2M0LjktNy44IDYuOC0yOS41LTUuNC0zOS0uMSAuMS0uMiAuMS0uNCAuMWwwIDB6bS0xMi4zLTE5OGMtOS44IDAtOS43IDE0LjgtLjEgMTQuOXMxMC4xLTE0LjkgLjEtMTQuOWwwIDB6TTE0My43IDE5OC42YzAgMS44IC40IDIuNCAyLjIgMi42IDEzLjYgMS40IDEyLjUtMTEgMTIuMi0xMy40LTEuNy0xMS4yLTE0LjQtMTAuMi0xNC40LTcuOCAwIDQuNSAwIDEzLjcgMCAxOC42ek0zNTYgMjA1bC02LjEtMTUuOGMtMi4yIDUuNS00LjIgMTAuNi02LjIgMTUuOGwxMi4zIDB6Il19LE1sdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGVhbS1zeW1ib2wiLGljb246WzQ0OCw1MTIsW10sImYzZjYiLCJNMjczLjUgMTc3LjVhNjEgNjEgMCAxIDEgMTIyIDAgNjEgNjEgMCAxIDEgLTEyMiAwem0xNzQuNSAuMmMwIDYzLTUxIDExMy44LTExMy43IDExMy44TDIyNSAzNzEuM2MtNCA0My00MC41IDc2LjgtODQuNSA3Ni44LTQwLjUgMC03NC43LTI4LjgtODMtNjdMMCAzNTggMCAyNTAuNyA5Ny4yIDI5MGMxNS4xLTkuMiAzMi4yLTEzLjMgNTItMTEuNWw3MS0xMDEuN0MyMjAuNyAxMTQuNSAyNzEuNyA2NCAzMzQuMiA2NCAzOTcgNjQgNDQ4IDExNSA0NDggMTc3Ljd6TTIwMyAzNjNjMC0zNC43LTI3LjgtNjIuNS02Mi41LTYyLjUtNC41IDAtOSAuNS0xMy41IDEuNWwyNiAxMC41YzI1LjUgMTAuMiAzOCAzOSAyNy43IDY0LjUtMTAuMiAyNS41LTM5LjIgMzgtNjQuNyAyNy41LTEwLjItNC0yMC41LTguMy0zMC43LTEyLjIgMTAuNSAxOS43IDMxLjIgMzMuMiA1NS4yIDMzLjIgMzQuNyAwIDYyLjUtMjcuOCA2Mi41LTYyLjV6TTQxMC41IDE3Ny43YTc2LjQgNzYuNCAwIDEgMCAtMTUyLjggMCA3Ni40IDc2LjQgMCAxIDAgMTUyLjggMHoiXX0semx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1haWxjaGltcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU5ZSIsIk0zMzEgMjQzLjVjMy4xLS40IDYuMi0uNCA5LjMgMCAxLjctMy44IDItMTAuNCAuNS0xNy42LTIuMi0xMC43LTUuMy0xNy4xLTExLjUtMTYuMXMtNi41IDguNy00LjIgMTkuNGMxLjMgNiAzLjUgMTEuMSA2IDE0LjNsMCAwek0yNzcuNCAyNTJjNC41IDIgNy4yIDMuMyA4LjMgMi4xIDEuOS0xLjktMy41LTkuNC0xMi4xLTEzLjEtNS0yLjEtMTAuNC0yLjgtMTUuOC0yLjJzLTEwLjUgMi43LTE0LjggNS44Yy0zIDIuMi01LjggNS4yLTUuNCA3LjEgLjkgMy43IDEwLTIuNyAyMi42LTMuNSA3LS40IDEyLjggMS44IDE3LjMgMy43bDAgMHptLTkgNS4xYy05LjEgMS40LTE1IDYuNS0xMy41IDEwLjEgLjkgLjMgMS4yIC44IDUuMi0uOCA2LTIuMyAxMi40LTIuOSAxOC43LTEuOSAyLjkgLjMgNC4zIC41IDQuOS0uNSAxLjUtMi4yLTUuNy04LTE1LjQtNi45bDAgMHptNTQuMiAxNy4xYzMuNC02LjktMTAuOS0xMy45LTE0LjMtN3MxMC45IDEzLjkgMTQuMyA3bDAgMHptMTUuNy0yMC41Yy03LjctLjEtOCAxNS44LS4zIDE1LjlzOC0xNS44IC4zLTE2bDAgMHpNMTE5LjUgMzMyLjdjLTEuMyAuMy02IDEuNS04LjUtMi4zLTUuMi04IDExLjEtMjAuNCAzLTM1LjgtOS4xLTE3LjUtMjcuOC0xMy41LTM1LTUuNS04LjcgOS42LTguNyAyMy41LTUgMjQuMSA0LjMgLjYgNC4xLTYuNSA3LjQtMTEuNiAuOS0xLjQgMi4xLTIuNiAzLjUtMy42czMtMS42IDQuNi0yIDMuNC0uNCA1IDAgMy4zIDEgNC43IDEuOWMxMS42IDcuNiAxLjQgMTcuOCAyLjMgMjguNiAxLjQgMTYuNyAxOC40IDE2LjQgMjEuNiA5IC4yLS40IC4zLS44IC4zLTEuMnMtLjItLjgtLjUtMS4xYzAgLjkgLjctMS4zLTMuNC0uNGwwIDB6bTI5OS43LTE3LjFjLTMuMy0xMS43LTIuNi05LjItNi44LTIwLjUgMi40LTMuNyAxNS4zLTI0LTMuMS00My4zLTEwLjQtMTAuOS0zMy45LTE2LjUtNDEuMS0xOC41LTEuNS0xMS40IDQuNi01OC43LTIxLjUtODMgMjAuOC0yMS42IDMzLjgtNDUuMyAzMy43LTY1LjctLjEtMzkuMi00OC4yLTUxLTEwNy40LTI2LjVsLTEyLjUgNS4zYy0uMSAwLTIyLjctMjIuMy0yMy4xLTIyLjYtNjcuNS01OC45LTI3OC44IDE3NS45LTIxMS4zIDIzMi45bDE0LjggMTIuNWMtNCAxMC43LTUuNCAyMi4yLTQuMSAzMy41IDMuNCAzMy40IDM2IDYwLjQgNjcuNSA2MC40IDU3LjcgMTMzLjEgMjY3LjkgMTMzLjMgMzIyLjMgMyAxLjctNC41IDkuMS0yNC42IDkuMS00Mi40cy0xMC4xLTI1LjMtMTYuNS0yNS4zbDAgMHptLTMxNiA0OC4yYy0yMi44LS42LTQ3LjUtMjEuMS00OS45LTQ1LjUtNi4yLTYxLjMgNzQuMy03NS4zIDg0LTEyLjMgNC41IDI5LjYtNC43IDU4LjUtMzQuMSA1Ny44bDAgMHpNODQuNyAyNDkuNmMtMTUuMiAzLTI4LjUgMTEuNS0zNi43IDIzLjUtNC45LTQuMS0xNC0xMi0xNS42LTE1LTEzLTI0LjggMTQuMi03MyAzMy4zLTEwMC4yIDQ3LjEtNjcuMiAxMjAuOS0xMTguMSAxNTUtMTA4LjkgNS41IDEuNiAyMy45IDIyLjkgMjMuOSAyMi45cy0zNC4xIDE4LjktNjUuOCA0NS4zQzEzNi4yIDE1MCAxMDQgMTk3LjcgODQuNyAyNDkuNnpNMzIzLjYgMzUwLjdzLTM1LjcgNS4zLTY5LjUtNy4xYzYuMi0yMC4yIDI3IDYuMSA5Ni40LTEzLjggMTUuMy00LjQgMzUuNC0xMyA1MS0yNS40IDMuNCA3LjggNS44IDE1LjkgNy4xIDI0LjMgMy43LS43IDE0LjItLjUgMTEuNCAxOC4xLTMuMyAxOS45LTExLjcgMzYtMjUuOSA1MC44LTguOSA5LjYtMTkuNCAxNy41LTMxLjIgMjMuMy02LjUgMy40LTEzLjMgNi4zLTIwLjMgOC42LTUzLjUgMTcuNS0xMDguMy0xLjctMTI2LTQzLTEuNC0zLjEtMi42LTYuNC0zLjYtOS43LTcuNS0yNy4yLTEuMS01OS44IDE4LjgtODAuNCAxLjItMS4zIDIuNS0yLjkgMi41LTQuOC0uMi0xLjctLjgtMy4zLTEuOS00LjUtNy0xMC4xLTMxLjItMjcuNC0yNi4zLTYwLjggMy41LTI0IDI0LjUtNDAuOSA0NC4xLTM5LjlsNSAuM2M4LjUgLjUgMTUuOSAxLjYgMjIuOSAxLjkgMTEuNyAuNSAyMi4yLTEuMiAzNC42LTExLjYgNC4yLTMuNSA3LjYtNi41IDEzLjMtNy41IDIuMy0uNiA0LjctLjcgNy0uM3M0LjYgMS4yIDYuNiAyLjVjMTAgNi42IDExLjQgMjIuNyAxMS45IDM0LjUgLjMgNi43IDEuMSAyMyAxLjQgMjcuNiAuNiAxMC43IDMuNCAxMi4yIDkuMSAxNCAzLjIgMSA2LjIgMS44IDEwLjUgMy4xIDEzLjIgMy43IDIxIDcuNSAyNiAxMi4zIDIuNSAyLjUgNC4yIDUuOCA0LjcgOS4zIDEuNiAxMS40LTguOCAyNS40LTM2LjMgMzguMi00Ni43IDIxLjctOTMuNyAxNC40LTEwMC41IDEzLjctMjAuMi0yLjctMzEuNiAyMy4zLTE5LjUgNDEuMSAyMi42IDMzLjQgMTIyLjQgMjAgMTUxLjQtMjEuNCAuNy0xIC4xLTEuNi0uNy0xLTQxLjggMjguNi05Ny4xIDM4LjItMTI4LjUgMjYtNC44LTEuOC0xNC43LTYuNC0xNS45LTE2LjcgNDMuNiAxMy41IDcxIC43IDcxIC43czItMi44LS42LTIuNXpNMTcxLjcgMTU3LjVjMTYuNy0xOS40IDM3LjQtMzYuMiA1NS44LTQ1LjYgLjEtLjEgLjMtLjEgLjUtLjFzLjMgLjEgLjQgLjIgLjIgLjMgLjIgLjQgMCAuMy0uMSAuNWMtMS41IDIuNy00LjMgOC4zLTUuMiAxMi43IDAgLjEgMCAuMyAwIC40cy4yIC4zIC4zIC40IC4zIC4xIC40IC4xIC4zIDAgLjQtLjFjMTEuNS03LjggMzEuNS0xNi4yIDQ5LTE3LjMgLjIgMCAuMyAwIC41IC4xcy4yIC4yIC4zIC40IC4xIC4zIDAgLjUtLjEgLjMtLjMgLjRjLTIuOSAyLjItNS41IDQuOC03LjcgNy43LS4xIC4xLS4xIC4yLS4xIC40czAgLjMgLjEgLjQgLjIgLjIgLjMgLjMgLjIgLjEgLjQgLjFjMTIuMyAuMSAyOS43IDQuNCA0MSAxMC43IC44IC40IC4yIDEuOS0uNiAxLjctNjkuNS0xNS45LTEyMy4xIDE4LjUtMTM0LjUgMjYuOC0uMiAuMS0uMyAuMS0uNSAuMXMtLjMtLjEtLjUtLjItLjItLjMtLjItLjUgLjEtLjQgLjItLjVsLS4xIDB6Il19LGtsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsdW1vbiIsaWNvbjpbNjQwLDUxMixbXSwiZTdlMiIsIk00NTIuNSAyMjMuNWM5LjggMCAxNi41IDYuMyAxNi41IDE2LjZsMCAzMS44YzAgMTAuMy02LjYgMTYuNi0xNi42IDE2LjZsLTU2LjIgMGMtOS44IDAtMTYuNS02LjMtMTYuNS0xNi42bDAtMzEuOGMwLTEwLjMgNi43LTE2LjYgMTYuNS0xNi42bDU2LjMgMHptLTI1LjcgMTMuMWMtMS41LTIuNi0zLjItMi42LTQuNiAwbC0xMC43IDE3LjZjLTEuNyAyLjQtMi42IDUuMS0yLjYgOC4yIDAgNy45IDYuOSAxNC42IDE1LjYgMTQuNiA4LjUgMCAxNS42LTYuNyAxNS42LTE0LjYgMC0zLTEtNS44LTIuNy04LjJsLTEwLjctMTcuNnpNODUuOCAyMjMuOGMxIDAgMS41IC42IDEuNSAxLjVsMCA1MC4zIDY0LjYgMGMxIDAgMS42IC42IDEuNiAxLjVsMCA5LjdjMCAuOS0uNiAxLjUtMS42IDEuNWwtNzguNCAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTIuMyAwem04OC4zIDBjMSAwIDEuNSAuNiAxLjUgMS41bDAgNDVjMCA0IDIgNS4yIDUuNyA1LjJsNDYuOSAwYzMuOCAwIDUuNy0xLjMgNS43LTUuMmwwLTQ1YzAtLjkgLjUtMS41IDEuNS0xLjVsMTIuMyAwYzEgMCAxLjYgLjYgMS42IDEuNWwwIDQ2YzAgMTAuNS01LjMgMTYuOC0xNy42IDE2LjhsLTU0IDBjLTEyLjMgMC0xNy42LTYuMy0xNy42LTE2LjhsMC00NmMwLS45IC42LTEuNSAxLjYtMS41bDEyLjMgMHptMTA4LjIgMGMxIDAgMS42IC41IDIuMiAxLjRsMzAuNSA0Ni40IDEuNCAwIDMwLjUtNDYuNGMuNi0uOSAxLjItMS40IDIuMi0xLjRsMTggMGMxIDAgMS41IC42IDEuNSAxLjVsMCA2MS40YzAgLjktLjUgMS41LTEuNSAxLjVsLTEyLjMgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNDMuOC0xLjEgMC0yOC43IDQzLjhjLS42IC45LTEuMyAxLjUtMi40IDEuNWwtMTAuNyAwYy0xIDAtMS43LS42LTIuMy0xLjVsLTI4LjctNDMuOC0xLjEgMCAwIDQzLjhjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTcuOSAwem0yMTQuNCAwYy45IDAgMS4zIC40IDIuMiAxLjFsNTIuNyA0Ni4zIDEuMyAwIDAtNDZjMC0uOSAuNi0xLjUgMS42LTEuNWwxMi4zIDBjMSAwIDEuNiAuNiAxLjYgMS41bDAgNjEuNGMwIC45LS42IDEuNS0xLjYgMS41bC0xNC40IDBjLTEgMC0xLjQtLjQtMi4zLTEuMWwtNTIuNi00Ni4zLTEuNCAwIDAgNDZjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTQuNCAwek0zMjAgMTE0LjFjODcuOSAwIDE2Ny43IDE1LjcgMjI1LjUgNDFsMi43IDEuMkM1ODcuMSAxNzMuOCA2NDAgMjA2LjUgNjQwIDI1NnMtNTIuOSA4Mi4yLTkxLjggOTkuNmwtMi43IDEuMmMtNTcuOCAyNS40LTEzNy42IDQxLTIyNS41IDQxLTc2LjIgMC0xNTUuMS0xMC41LTIyNS41LTQxLTM5LjYtMTcuNC05NC41LTUwLjMtOTQuNS0xMDAuOHM1NC45LTgzLjUgOTQuNS0xMDAuOGM3MC40LTMwLjUgMTQ5LjMtNDEgMjI1LjUtNDF6bS04OC45IDIyOWMyMC4zIDI5IDUyLjggNDkuNiA4OC45IDQ5LjYgMzYuMiAwIDY4LjctMjAuNiA4OS00OS43bC0xNzcuOSAuMXptLTk2LjEgMGM0My4zIDI5LjcgOTYuNyA0My41IDE0OC40IDQ4LTI0LjItOS4xLTQ0LjQtMjYuNy01OC42LTQ4LjFsLTg5LjkgMHptMjgwLjMtLjFjLTE0LjIgMjEuNC0zNC40IDM5LjEtNTguNiA0OC4xIDUxLjgtNC41IDEwNS4zLTE4LjMgMTQ4LjYtNDguMmwtOTAgMHptLTMzNy40IC4xYzQ0LjEgMjMuMSA5My43IDM1LjQgMTQyLjcgNDIuNi0zMy40LTguNi02Ni41LTIxLjktOTQuNC00Mi42bC00OC4zIDB6bTQzNi4yLS4yYy0yNy45IDIwLjgtNjEuMSAzNC4yLTk0LjYgNDIuOCA0Ny4zLTYuOSA4OS42LTE4LjUgMTIzLjktMzMuNmwxLjctLjhjNi4xLTIuNyAxMS45LTUuNSAxNy40LTguNGwtNDguNSAwek01MjAgMTczLjZjMTAuNyA4LjcgMTkuOCAxOC4xIDI3IDI4LjIgLjQgLjYgLjUgMS4zIC4xIDJzLTEgMS0xLjcgMWwtMS42IDBjLS42IDAtMS4yLS4zLTEuNS0uOC03LjktMTAuOS0xOC4yLTIxLjEtMzAuNi0zMC40bC05My41IDBjNS40IDguOCA5LjkgMTguNSAxMy40IDI4LjYgLjIgLjYgLjEgMS4yLS4yIDEuN3MtLjkgLjgtMS42IC44bC0xLjQgMGMtLjggMC0xLjUtLjUtMS44LTEuMy0zLjgtMTAuNy04LjctMjAuOC0xNC41LTI5LjlsLTE4NC4zIC4xYy01LjggOS4xLTEwLjcgMTkuMS0xNC40IDI5LjgtLjMgLjgtMSAxLjMtMS44IDEuM2wtMS40IDBjLS42IDAtMS4yLS4zLTEuNi0uOHMtLjUtMS4xLS4yLTEuN2MzLjUtMTAuMiA4LTE5LjcgMTMuNC0yOC42bC05My42IDBjLTEyLjMgOS4zLTIyLjYgMTkuNC0zMC40IDMwLjMtLjQgLjUtLjkgLjgtMS41IC44bC0xLjYgMGMtLjcgMC0xLjQtLjQtMS43LTFzLS4zLTEuNCAuMS0yYzcuNi0xMC41IDE2LjctMTkuOSAyNi44LTI4bC01MSAwYy0yOC45IDE2LjYtNjIgNDMuMy02My41IDc5LjdsNDQuNyAwYy41IDAgMSAuMiAxLjMgLjZzLjYgLjggLjYgMS4zbDAgMS4zYzAgMS4xLS45IDEuOS0xLjkgMS45bC00NC43IDBDNi44IDI5NSA0MCAzMjEuNyA2OSAzMzguM2w1MC45IDBjLTEwLjMtOC40LTE5LjEtMTcuNC0yNi4xLTI3bC0uOC0xLjFjLS40LS42LS41LTEuMy0uMS0yczEtMSAxLjctMWwxLjYgMCAuMiAwYy41IC4xIDEgLjMgMS4zIC44IDcuOSAxMC45IDE4LjEgMjEgMzAuNSAzMC4zbDkzLjYgMGMtNS4zLTguOC05LjgtMTguNC0xMy40LTI4LjUtLjItLjYtLjEtMS4yIC4yLTEuN3MuOS0uOCAxLjYtLjhsMS40IDAgLjIgMGMuNyAuMSAxLjQgLjYgMS43IDEuMyAzLjggMTAuNyA4LjYgMjAuNyAxNC40IDI5LjhsMTg0LjUtLjFjNS44LTkuMSAxMC42LTE5LjEgMTQuNC0yOS43bC4xLS4xYy4zLS43IDEtMS4xIDEuNy0xLjFsMS40IDBjLjYgMCAxLjIgLjMgMS42IC44cy41IDEuMiAuMiAxLjdjLTMuNSAxMC4xLTggMTkuNy0xMy4zIDI4LjVsOTMuNyAwYzEyLjMtOS4zIDIyLjUtMTkuNCAzMC4zLTMwLjJsLjEtLjJjLjQtLjQgLjktLjYgMS40LS42bDEuNiAwYy43IDAgMS40IC40IDEuNyAxcy4zIDEuNC0uMSAyYy03LjEgMTAtMTYuMSAxOS4zLTI2LjcgMjcuOWw1MS4xIDBjMjguOC0xNi42IDYxLjgtNDMuMyA2My40LTc5LjZsLTQ0LjcgMGMtMSAwLTEuOS0uOS0xLjktMS45bDAtMS4zYzAtMS4xIC45LTEuOSAxLjktMS45bDQ0LjcgMGMtMS42LTM2LjUtMzQuOS02My4zLTYzLjktNzkuOWwtNTAuOSAwek0yMjAuNSAxMjYuMmMtNDkuMSA3LjEtOTguNyAxOS41LTE0MyA0Mi43bDQ4LjQgMGMyNy45LTIwLjggNjEtMzQuMSA5NC41LTQyLjd6bTYyLjgtNS40Yy01MS44IDQuNS0xMDUuMiAxOC4zLTE0OC42IDQ4LjFsOTAgMGMxNC4yLTIxLjQgMzQuNC0zOSA1OC42LTQ4LjF6bTM2LjYtMS42Yy0zNi4yIDAtNjguNyAyMC42LTg5IDQ5LjdsMTc3LjktLjFjLTIwLjMtMjkuMS01Mi43LTQ5LjYtODguOS00OS42em0zNi42IDEuNmMyNC4yIDkuMSA0NC40IDI2LjYgNTguNSA0OGw4OS44IDBjLTQzLjMtMjkuNy05Ni42LTQzLjUtMTQ4LjMtNDh6bTYyLjggNS40YzMzLjQgOC41IDY2LjQgMjEuOSA5NC4zIDQyLjVsNDguMyAwYy00NC4xLTIzLjEtOTMuNi0zNS40LTE0Mi42LTQyLjV6Il19LFNsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJudXRyaXRpb25peCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkNiIsIk0xMTIgOC4xUzI0NS40LS4xIDIzMyAxMTIuNWMwIDAgMTkuMS03NC45IDEwMy00MC42IDAgMC0xNy43IDc0LTg4IDU2IDAgMCAxNC42LTU0LjYgNjYuMS01Ni42IDAgMC0zOS45LTEwLjMtODIuMSA0OC44IDAgMC0xOS44LTk0LjUtOTMuNi05OS43IDAgMCA3NS4yIDE5LjQgNzcuNiAxMDcuNSAwIC4xLTEwNi40IDctMTA0LTExOS44ek00MjQgMzIzLjdjMCA0OC41LTkuNyA5NS4zLTMyIDEzMi4zLTQyLjIgMzAuOS0xMDUgNDgtMTY4IDQ4LTYyLjkgMC0xMjUuOC0xNy4xLTE2OC00OC0yMi4zLTM3LTMyLTgzLjgtMzItMTMyLjMgMC00OC40IDE3LjctOTQuNyA0MC0xMzEuNyA0Mi4yLTMwLjkgOTcuMS00OC42IDE2MC00OC42IDYzIDAgMTE3LjggMTcuNiAxNjAgNDguNiAyMi4zIDM3IDQwIDgzLjMgNDAgMTMxLjd6TTE0NCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0yMTYgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMjg4IDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTM2MCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0zODQgMjU2Yy00LjgtMjIuMy03LjQtMzYuOS0xNi01Ni0zOC44LTE5LjktOTAuNS0zMi0xNDQtMzJTMTE4LjggMTgwLjEgODAgMjAwYy04LjggMTkuNS0xMS4yIDMzLjktMTYgNTYgNDIuMi03LjkgOTguNy0xNC44IDE2MC0xNC44czExNy44IDYuOSAxNjAgMTQuOHoiXX0sQ2x0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmctcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMSIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwNyAyMDUuNmMtNC43IDAtOSAyLjgtMTAuNyA3LjJsLTQgOS41LTExLTkyLjhjLTEuNy0xMy45LTIyLTEzLjQtMjMuMSAuNGwtNC4zIDUxLjQtNS4yLTY4LjhjLTEuMS0xNC4zLTIyLjEtMTQuMi0yMy4yIDBsLTMuNSA0NC45LTUuOS05NC4zYy0uOS0xNC41LTIyLjMtMTQuNC0yMy4yIDBsLTUuMSA4My43LTQuMy02Ni4zYy0uOS0xNC40LTIyLjItMTQuNC0yMy4yIDBsLTUuMyA4MC4yLTQuMS01N2MtMS4xLTE0LjMtMjItMTQuMy0yMy4yLS4ybC03LjcgODkuOC0xLjgtMTIuMmMtMS43LTExLjQtMTcuMS0xMy42LTIyLTMuM2wtMTMuMiAyNy43LTQzLjkgMCAwIDIzLjIgNTEuMyAwYzQuNCAwIDguNC0yLjUgMTAuNC02LjRsMTAuNyA3My4xYzIgMTMuNSAyMS45IDEzIDIzLjEtLjdsMy44LTQzLjYgNS43IDc4LjNjMS4xIDE0LjQgMjIuMyAxNC4yIDIzLjItLjFsNC42LTcwLjQgNC44IDczLjNjLjkgMTQuNCAyMi4zIDE0LjQgMjMuMi0uMWw0LjktODAuNSA0LjUgNzEuOGMuOSAxNC4zIDIyLjEgMTQuNSAyMy4yIC4ybDQuNi01OC42IDQuOSA2NC40YzEuMSAxNC4zIDIyIDE0LjIgMjMuMSAuMWw2LjgtODMgMi43IDIyLjNjMS40IDExLjggMTcuNyAxNC4xIDIyLjMgMy4xbDE4LTQzLjQgNTAuNSAwIDAtMjMuMi01OC40IC4zem0tNzggNS4ybC0yMS45IDAgMCAyMS45YzAgNC4xLTMuMyA3LjUtNy41IDcuNS00LjEgMC03LjUtMy4zLTcuNS03LjVsMC0yMS45LTIxLjkgMGMtNC4xIDAtNy41LTMuMy03LjUtNy41IDAtNC4xIDMuNC03LjUgNy41LTcuNWwyMS45IDAgMC0yMS45YzAtNC4xIDMuNC03LjUgNy41LTcuNXM3LjUgMy4zIDcuNSA3LjVsMCAyMS45IDIxLjkgMGM0LjEgMCA3LjUgMy4zIDcuNSA3LjUgMCA0LjEtMy40IDcuNS03LjUgNy41eiJdfSxMbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkaGF0IixpY29uOls1MTIsNTEyLFtdLCJmN2JjIiwiTTM0MS41IDI4NS42YzMzLjcgMCA4Mi4zLTYuOSA4Mi4zLTQ3IC4yLTYuNyAuOS0xLjgtMjAuOS05Ni4yLTQuNi0xOS4xLTguNy0yNy44LTQyLjMtNDQuNi0yNi4xLTEzLjMtODIuOS0zNS40LTk5LjctMzUuNC0xNS43IDAtMjAuMiAyMC4yLTM4LjkgMjAuMi0xOCAwLTMxLjMtMTUuMS00OC4xLTE1LjEtMTYuMSAwLTI2LjcgMTEtMzQuOCAzMy42LTI3LjUgNzcuNi0yNi4zIDc0LjMtMjYuMSA3OC4zIDAgMjQuOCA5Ny42IDEwNi4xIDIyOC41IDEwNi4xek00MjkgMjU0LjhjNC43IDIyIDQuNyAyNC4zIDQuNyAyNy4yIDAgMzcuNy00Mi4zIDU4LjYtOTggNTguNi0xMjUuNyAuMS0yMzUuOS03My42LTIzNS45LTEyMi4zIDAtNi44IDEuNC0xMy41IDQuMS0xOS43LTQ1LjIgMi4zLTEwMy44IDEwLjMtMTAzLjggNjIgMCA4NC43IDIwMC42IDE4OSAzNTkuNSAxODkgMTIxLjggMCAxNTIuNS01NS4xIDE1Mi41LTk4LjYgMC0zNC4yLTI5LjYtNzMtODIuOS05Ni4yeiJdfSxuMmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXBpZWQtcGlwZXIiLGljb246WzQ0OCw1MTIsWyJwaWVkLXBpcGVyLXNxdWFyZSJdLCJlMDFlIiwiTTMyLjEgNDE5bC0zMiA2MC4yIC44LTMyOEMuOSA4NS4zIDU0LjEgMzIgMTIwLjEgMzJsMzI3LjIgMEMzNTQuMyA2MC45IDI1Ny40IDEyNi4yIDE5My40IDIwMC42IDEyMi44IDI4MiA4Mi43IDMzOCAzMi4xIDQxOXptNDE2LTM4N1MzMDUuMyA5OC44IDI2MS43IDE5OS4xYy0yMy4yIDUzLjYtMjguOSAxMTguMS03MSAxNTguNi0yOC45IDI3LjgtNjkuOCAzOC4yLTEwNS4zIDU2LjMtMjMuMiAxMi02Ni40IDQwLjUtODQuOSA2NmwzMjguNCAwYzY2IDAgMTE5LjMtNTMuMyAxMTkuMy0xMTkuMi0uMSAwLS4xLTMyOC44LS4xLTMyOC44eiJdfSxUbHQ9bjJlLF9sdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aGF0c2FwcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzMiIsIk0zODAuOSA5Ny4xYy00MS45LTQyLTk3LjctNjUuMS0xNTctNjUuMS0xMjIuNCAwLTIyMiA5OS42LTIyMiAyMjIgMCAzOS4xIDEwLjIgNzcuMyAyOS42IDExMUwwIDQ4MCAxMTcuNyA0NDkuMWMzMi40IDE3LjcgNjguOSAyNyAxMDYuMSAyN2wuMSAwYzEyMi4zIDAgMjI0LjEtOTkuNiAyMjQuMS0yMjIgMC01OS4zLTI1LjItMTE1LTY3LjEtMTU3em0tMTU3IDM0MS42Yy0zMy4yIDAtNjUuNy04LjktOTQtMjUuN2wtNi43LTQtNjkuOCAxOC4zIDE4LjYtNjguMS00LjQtN2MtMTguNS0yOS40LTI4LjItNjMuMy0yOC4yLTk4LjIgMC0xMDEuNyA4Mi44LTE4NC41IDE4NC42LTE4NC41IDQ5LjMgMCA5NS42IDE5LjIgMTMwLjQgNTQuMXM1Ni4yIDgxLjIgNTYuMSAxMzAuNWMwIDEwMS44LTg0LjkgMTg0LjYtMTg2LjYgMTg0LjZ6TTMyNS4xIDMwMC41Yy01LjUtMi44LTMyLjgtMTYuMi0zNy45LTE4LTUuMS0xLjktOC44LTIuOC0xMi41IDIuOHMtMTQuMyAxOC0xNy42IDIxLjhjLTMuMiAzLjctNi41IDQuMi0xMiAxLjQtMzIuNi0xNi4zLTU0LTI5LjEtNzUuNS02Ni01LjctOS44IDUuNy05LjEgMTYuMy0zMC4zIDEuOC0zLjcgLjktNi45LS41LTkuN3MtMTIuNS0zMC4xLTE3LjEtNDEuMmMtNC41LTEwLjgtOS4xLTkuMy0xMi41LTkuNS0zLjItLjItNi45LS4yLTEwLjYtLjJzLTkuNyAxLjQtMTQuOCA2LjljLTUuMSA1LjYtMTkuNCAxOS0xOS40IDQ2LjNzMTkuOSA1My43IDIyLjYgNTcuNGMyLjggMy43IDM5LjEgNTkuNyA5NC44IDgzLjggMzUuMiAxNS4yIDQ5IDE2LjUgNjYuNiAxMy45IDEwLjctMS42IDMyLjgtMTMuNCAzNy40LTI2LjRzNC42LTI0LjEgMy4yLTI2LjRjLTEuMy0yLjUtNS0zLjktMTAuNS02LjZ6Il19LEFsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbWRiIixpY29uOls0NDgsNTEyLFtdLCJmMmQ4IiwiTTg5LjUgMzIzLjZsLTM1LjYgMCAwLTEzNy40IDM1LjYgMCAwIDEzNy40em02Ni42LTczLjFsOS4xLTY0LjMgNDYuMyAwIDAgMTM3LjQtMzEgMCAwLTkyLjctMTMuNCA5Mi43LTIxLjMgMC0xMy05MC43LS4xIDkwLjctMzEuMiAwIDAtMTM3LjQgNDYuMSAwYy41IDguMyAyLjggMTguMSA0LjMgMjkuNGw0LjIgMzQuOXptNjcuNiA3My4xbDAtMTM3LjQgMjYuNiAwYzE3IDAgMjcgLjkgMzMgMi40IDYuMSAxLjcgMTAuNyA0LjIgMTMuOSA3LjkgMy4xIDMuMyA1LjEgNi42IDUuOCAxMiAuOSA0LjQgMS40IDEzLjEgMS40IDI2LjJsMCA0OC4yYzAgMTIuMy0uNyAyMC41LTEuOSAyNC43LTEuMSA0LjEtMy4xIDcuNC02IDkuNy0yLjggMi40LTYuNCA0LjEtMTAuNyA1LTQuMiAuOC0xMC42IDEuMy0xOS4xIDEuM2wtNDMgMHptMzUuNS0xMTMuOWwwIDg5LjRjNS4xIDAgOC4zLTEgOS40LTIuMyAxLjEtMiAxLjgtNy42IDEuOC0xNi43bDAtNTMuM2MwLTYuMi0uMS0xMC4yLS43LTEyLS4zLTEuOC0xLjItMy0yLjYtNC43LTEuNCAwLTQuMS0uNC03LjktLjR6bTU3LjMgMTEzLjlsMC0xMzcuNCAzNC4xIDAgMCA0My45YzIuOS0yLjQgNi4xLTQuOSA5LjUtNi42IDMuNi0xLjUgOC44LTIuNCAxMi44LTIuNCA0LjggMCA4LjkgLjggMTIuMyAyLjIgMy40IDEuNSA2IDMuNSA4IDYuMiAxLjcgMi42IDIuNyA1LjMgMy4xIDcuOCAuNCAyLjYtLjIgOC0uMiAxNi4ybDAgMzguNmMwIDguMiAuMiAxNC4zLS44IDE4LjQtMS4xIDQtMy44IDcuNi03LjggOS42LTQuMSAzLjktOC45IDUuMy0xNC42IDUuMy00IDAtOS4yLS45LTEyLjctMi41LTMuNS0xLjgtNi43LTQuNS05LjYtOGwtMi4xIDguNy0zMiAwem00NS4xLTIwLjdjLjctMS44IDEtNiAxLTEyLjVsMC0zNS40YzAtNS42LS4zLTkuNS0xLjEtMTEuMi0uNy0xLjktMy43LTIuNy01LjgtMi43LTIgMC0zLjQgLjgtNC4xIDIuMy0uNiAxLjUtMSA1LjQtMSAxMS42bDAgMzYuNGMwIDYuMSAuNCAxMCAxLjIgMTEuNiAuNiAxLjcgMi4xIDIuNSA0LjEgMi41IDIuMiAwIDQuMi0uOCA1LjctMi42ek00MTguNCAzMmMxNS43IDEuMiAyOC43IDE1LjIgMjguNyAzMS45bDAgMzg0LjJjMCAxNi40LTExLjkgMzAuNC0yOC4yIDMxLS4zIDAtLjUgLjktLjggLjlMMjkuOSA0ODBjLS4zIDAtLjYtLjktLjgtLjEtMTUuNy0xLjQtMjcuOS0xMy44LTI5LTMwLjJMMCA2MS44QzEuMSA0NS45IDEzLjggMzMuMSAzMC4zIDMxLjFsMzg3LjQgMGMuMiAwIC41IC45IC43IC45ek0zMC4zIDQxLjNDMTkgNDIgMTAgNTEgOS4zIDYyLjRsMCAzODcuM2MuNCA1LjQgMi43IDEwLjUgNi40IDE0LjMgMy44IDMuOSA4LjggNi4zIDE0LjIgNi43bDM4OC4yIDBjMTEuNS0xIDIwLjYtMTEuNiAyMC42LTIyLjZsMC0zODQuMmMwLTUuNy0yLjEtMTEuMy02LTE1LjVzLTkuMy02LjgtMTUtNy4ybC0zODcuNCAweiJdfSwkbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHl0aG9uIixpY29uOls0NDgsNTEyLFtdLCJmM2UyIiwiTTQzOS44IDIwMC41Yy03LjctMzAuOS0yMi4zLTU0LjItNTMuNC01NC4ybC00MC4xIDAgMCA0Ny40YzAgMzYuOC0zMS4yIDY3LjgtNjYuOCA2Ny44bC0xMDYuOCAwYy0yOS4yIDAtNTMuNCAyNS01My40IDU0LjNsMCAxMDEuOGMwIDI5IDI1LjIgNDYgNTMuNCA1NC4zIDMzLjggOS45IDY2LjMgMTEuNyAxMDYuOCAwIDI2LjktNy44IDUzLjQtMjMuNSA1My40LTU0LjNsMC00MC43LTEwNi43IDAgMC0xMy42IDE2MC4yIDBjMzEuMSAwIDQyLjYtMjEuNyA1My40LTU0LjIgMTEuMi0zMy41IDEwLjctNjUuNyAwLTEwOC42ek0yODYuMiA0NDQuN2EyMC40IDIwLjQgMCAxIDEgMC00MC43IDIwLjQgMjAuNCAwIDEgMSAwIDQwLjd6TTE2Ny44IDI0OC4xbDEwNi44IDBjMjkuNyAwIDUzLjQtMjQuNSA1My40LTU0LjNsMC0xMDEuOWMwLTI5LTI0LjQtNTAuNy01My40LTU1LjYtMzUuOC01LjktNzQuNy01LjYtMTA2LjggLjEtNDUuMiA4LTUzLjQgMjQuNy01My40IDU1LjZsMCA0MC43IDEwNi45IDAgMCAxMy42LTE0NyAwYy0zMS4xIDAtNTguMyAxOC43LTY2LjggNTQuMi05LjggNDAuNy0xMC4yIDY2LjEgMCAxMDguNiA3LjYgMzEuNiAyNS43IDU0LjIgNTYuOCA1NC4ybDM2LjcgMCAwLTQ4LjhjMC0zNS4zIDMwLjUtNjYuNCA2Ni44LTY2LjR6TTE2MS4yIDY0LjdhMjAuNCAyMC40IDAgMSAxIDAgNDAuOCAyMC40IDIwLjQgMCAxIDEgMC00MC44eiJdfSxEbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2FzaC1hcHAiLGljb246WzQ0OCw1MTIsW10sImU3ZDQiLCJNNDQwLjMgOTYuOWMtOS40LTI2LjUtMzAuMy00Ny40LTU2LjgtNTctMjQuMS03LjktNDYuMy03LjktOTEuNi03LjlMMTU2IDMyYy00NC44IDAtNjcuMiAwLTkxLjMgNy41LTI2LjUgOS42LTQ3LjQgMzAuNS01NyA1Ny03LjcgMjQuMy03LjcgNDYuNy03LjcgOTEuN0wwIDMyMy44YzAgNDUuMiAwIDY3LjQgNy41IDkxLjUgOS42IDI2LjUgMzAuNSA0Ny40IDU3IDU3IDI0LjMgNy43IDQ2LjcgNy43IDkxLjYgNy43bDEzNS43IDBjNDUgMCA2Ny40IDAgOTEuNi03LjcgMjYuNS05LjYgNDcuNC0zMC41IDU3LTU3IDcuNy0yNC4zIDcuNy00Ni43IDcuNy05MS41bDAtMTM1LjVjMC00NSAwLTY3LjQtNy43LTkxLjV6TTMyMy4xIDE4NS40bC0yNS44IDIxLjFjLTIuMyAxLjktNS41IDEuNS03LjMtLjktMTMuMi0xNi4yLTMzLjctMjUuNC01Ni4xLTI1LjQtMjUgMC00MC42IDEwLjktNDAuNiAyNi4yLS40IDEyLjggMTEuNyAxOS42IDQ5LjEgMjcuNyA0Ny4yIDEwIDY4LjcgMjkuNyA2OC43IDYyLjcgMCA0MS40LTMzLjcgNzEuOS04Ni40IDc1LjNsLTUuMSAyNC41Yy0uNCAyLjMtMi42IDQuMS01LjEgNC4xbC00MC42IDBjLTMuNCAwLTUuOC0zLjItNS4xLTYuNGw2LjQtMjcuM2MtMjYtNy41LTQ3LjItMjItNTkuMy0zOS43LTEuNS0yLjMtMS4xLTUuMyAxLjEtN2wyOC4yLTIyYzIuMy0xLjkgNS44LTEuMyA3LjUgMS4xIDE0LjkgMjAuOSAzOCAzMy4zIDY1LjcgMzMuMyAyNSAwIDQzLjgtMTIuMiA0My44LTI5LjcgMC0xMy40LTkuNC0xOS42LTQxLjItMjYuMi01NC4yLTExLjctNzUuOC0zMS44LTc1LjgtNjQuOSAwLTM4LjQgMzIuMi02Ny4yIDgwLjktNzFsNS4zLTI1LjRjLjQtMi4zIDIuNi00LjEgNS4xLTQuMWwzOS45IDBjMy4yIDAgNS44IDMgNS4xIDYuMmwtNi4yIDI4LjRjMjAuOSA2LjQgMzggMTcuOSA0OC43IDMyLjIgMS43IDIuMSAxLjMgNS4zLS45IDd6Il19LEVsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaW50ZXJlc3QtcCIsaWNvbjpbMzg0LDUxMixbXSwiZjIzMSIsIk0yMDQgNi41Yy0xMDIuNiAwLTIwNCA2OC40LTIwNCAxNzkuMSAwIDcwLjQgMzkuNiAxMTAuNCA2My42IDExMC40IDkuOSAwIDE1LjYtMjcuNiAxNS42LTM1LjQgMC05LjMtMjMuNy0yOS4xLTIzLjctNjcuOCAwLTgwLjQgNjEuMi0xMzcuNCAxNDAuNC0xMzcuNCA2OC4xIDAgMTE4LjUgMzguNyAxMTguNSAxMDkuOCAwIDUzLjEtMjEuMyAxNTIuNy05MC4zIDE1Mi43LTI0LjkgMC00Ni4yLTE4LTQ2LjItNDMuOCAwLTM3LjggMjYuNC03NC40IDI2LjQtMTEzLjQgMC02Ni4yLTkzLjktNTQuMi05My45IDI1LjggMCAxNi44IDIuMSAzNS40IDkuNiA1MC43LTEzLjggNTkuNC00MiAxNDcuOS00MiAyMDkuMSAwIDE4LjkgMi43IDM3LjUgNC41IDU2LjQgMy40IDMuOCAxLjcgMy40IDYuOSAxLjUgNTAuNC02OSA0OC42LTgyLjUgNzEuNC0xNzIuOCAxMi4zIDIzLjQgNDQuMSAzNiA2OS4zIDM2IDEwNi4yIDAgMTUzLjktMTAzLjUgMTUzLjktMTk2LjggMC05OS4zLTg1LjgtMTY0LjEtMTgwLTE2NC4xeiJdfSxObHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2htY3MiLGljb246WzQ0OCw1MTIsW10sImY0MGQiLCJNNDQ4IDE2MWwwLTIxLjMtMjguNS04LjgtMi4yLTEwLjQgMjAuMS0yMC43LTEwLjQtMTkuNC0yOSA3LjUtNy4yLTcuNSA3LjUtMjguMi0xOS4xLTExLjYtMjEuMyAyMS0xMC43LTMuMi03LTI2LjQtMjIuNiAwLTYuMiAyNi40LTEyLjEgMy4yLTE5LjctMjEtMTkuNCAxMSA4LjEgMjcuNy04LjEgOC40LTI4LjUtNy41LTExIDE5LjEgMjAuNyAyMS0yLjkgMTAuNC0yOC41IDcuOC0uMyAyMS43IDI4LjggNy41IDIuNCAxMi4xLTIwLjEgMTkuOSAxMC40IDE4LjUgMjkuNi03LjUgNy4yIDguNi04LjEgMjYuOSAxOS45IDExLjYgMTkuNC0yMC40IDExLjYgMi45IDYuNyAyOC41IDIyLjYgLjMgNi43LTI4LjggMTEuNi0zLjUgMjAuNyAyMS42IDIwLjQtMTIuMS04LjgtMjggNy44LTguMSAyOC44IDguOCAxMC4zLTIwLjEtMjAuOS0xOC44IDIuMi0xMi4xIDI5LjEtN3pNMzI4LjggOTIuNmE1Ni44IDU2LjggMCAxIDEgMCAxMTMuNiA1Ni44IDU2LjggMCAxIDEgMC0xMTMuNnptNzIuMyAxMzBsNDYuOSAxNC41IDAgMzkuOS01NS4xIDEzLjQtNC4xIDIyLjcgMzguOSAzNS4zLTE5LjIgMzcuOS01NC0xNi43LTE0LjYgMTUuMiAxNi43IDUyLjUtMzguMyAyMi43LTM4LjktNDAuNS0yMS43IDYuNi0xMi42IDU0LTQyLjQtLjUtMTIuNi01My42LTIxLjctNS42LTM2LjQgMzguNC0zNy40LTIxLjcgMTUuMi01MC41LTEzLjctMTYuMS01NS41IDE0LjEtMTkuNy0zNC44IDM3LjktMzcuNC00LjgtMjIuOC01NC0xNC4xIC41LTQwLjkgNTMuNS0xNC43IDUuNy0xOS43LTM4LjktMzkuNCAyMC43LTM1LjggNTMuNiAxNC4xIDE1LjItMTUuNy0xNS4yLTUyIDM2LjQtMjAuNyAzNi44IDM5LjQgMjIuNy02LjEgMTEuNi01MiA0Mi40IDAgMTEuNiA0NS45LTIyLjYtNS45LTYuMy0xLjctMy4zIDUuNy0xMSAxOS4xLTMuMyA1LjYgNC42IDQuNiAxNy4yIDE3LjQtLjMgMS0yMy44IDYuNS02LjIgMS43YzAgMy4yLS4xIDkuNi0uMyAxOS4zLTQ3LjUgMTAuNC04My4zIDUyLjgtODMuMyAxMDMuNSAwIDU4LjMgNDcuMyAxMDUuNyAxMDUuNyAxMDUuNyA1MC41IDAgOTIuNy0zNS40IDEwMy4yLTgyLjggOS45IC4xIDE2LjYgLjIgMjAuMSAuM2wxLjYtNi43IDUuNi0yNCAxLjktLjYgMTcuMSAxNy44IDQuNyA0LjkgNS44LTMuNCAyMC40LTEyLjEgNS44LTMuNS0yLTYuNS02LjgtMjEuMnoiXX0sUGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImpvZ2V0IixpY29uOls1MTIsNTEyLFtdLCJmM2I3IiwiTTM4Ni4xIDQ1QzM0NS42IDE5LjkgMzAwLjYgOCAyNTYuMiA4IDE3MyA4IDkxLjggNDkuOSA0NC45IDEyNS45LTI3IDI0Mi41IDkuMyAzOTUuMiAxMjUuOSA0NjcuMXMyNjkuMyAzNS42IDM0MS4yLTgwLjlDNTM5IDI2OS42IDUwMi43IDExNi44IDM4Ni4xIDQ1em01MS44IDMyMy4yYy00MC40IDY1LjUtMTEwLjQgMTAxLjUtMTgyIDEwMS41LTYuOCAwLTEzLjYtLjQtMjAuNC0xLTktMTMuNi0xOS45LTMzLjMtMjMuNy00Mi40LTUuNy0xMy43LTI3LjItNDUuNiAzMS4yLTY3LjEgNTEuNy0xOS4xIDE3Ni43LTE2LjUgMjA4LjgtMTcuNi00IDktOC42IDE3LjktMTMuOSAyNi42ek0yMzcuMSAyODEuOWMtNTUuNS0xLjQtODEuNy0yMC44LTU4LjUtNDguMnM1MS4xLTQwLjcgNjguOS01MS4yYzE3LjktMTAuNSAyNy4zLTMzLjctMjMuNi0yOS43LTEyOC42IDguNy0xNjcuMyA5OS4zLTE3OC4zIDE0MC4yLTguOC00OS43LS4xLTEwMi43IDI4LjUtMTQ5LjEgNjEuOS0xMDAuNSAxOTMuNS0xMzEuNyAyOTQtNjkuOCA3NC44IDQ2LjEgMTExLjIgMTMwLjkgOTkuMyAyMTIuNy0yNC45LS41LTE3OS4zLTMuNi0yMzAuMy00Ljl6bTE4My44LTU0LjhjLTIyLjctNi01NyAxMS4zLTg2LjcgMjcuMi0yOS43IDE1LjgtMzEuMSA4LjItMzEuMSA4LjJzNDAuMi0yOC4xIDUwLjctMzQuNSAzMS45LTE0IDEzLjQtMjQuNmMtMy4yLTEuOC02LjctMi43LTEwLjQtMi43LTE3LjggMC00MS41IDE4LjctNjcuNSAzNS42LTMxLjUgMjAuNS02NS4zIDMxLjMtNjUuMyAzMS4zTDM5My41IDI2NiA0NDAgMjQyLjZzMy42LTkuNS0xOS4xLTE1LjV6Il19LGwyZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteW91dHViZSIsaWNvbjpbNDQ4LDUxMixbNjE3OTgsInlvdXR1YmUtc3F1YXJlIl0sImY0MzEiLCJNMjgyIDI1Ni4ybC05NS4yLTU0LjEgMCAxMDguMiA5NS4yLTU0LjF6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0em0xNC40IDEzNi4xYzcuNiAyOC42IDcuNiA4OC4yIDcuNiA4OC4yczAgNTkuNi03LjYgODguMWMtNC4yIDE1LjgtMTYuNSAyNy43LTMyLjIgMzEuOS0yOC4zIDcuNy0xNDIuMiA3LjctMTQyLjIgNy43cy0xMTMuOSAwLTE0Mi4yLTcuNmMtMTUuNy00LjItMjgtMTYuMS0zMi4yLTMxLjktNy42LTI4LjYtNy42LTg4LjItNy42LTg4LjJzMC01OS43IDcuNi04OC4yYzQuMi0xNS44IDE2LjUtMjguMiAzMi4yLTMyLjQgMjguMy03LjcgMTQyLjItNy43IDE0Mi4yLTcuN3MxMTMuOSAwIDE0Mi4yIDcuN2MxNS43IDQuMiAyOCAxNi42IDMyLjIgMzIuNHoiXX0sSWx0PWwyZSxGbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXRsYXNzaWFuIixpY29uOls1MTIsNTEyLFtdLCJmNzdiIiwiTTE1Mi4yIDIzNi40Yy03LjctOC4yLTE5LjctNy43LTI0LjggMi44TDEuNiA0OTAuMmMtNSAxMCAyLjQgMjEuNyAxMy40IDIxLjdsMTc1IDBjNS44IC4xIDExLTMuMiAxMy40LTguNCAzNy45LTc3LjggMTUuMS0xOTYuMy01MS4yLTI2Ny4xek0yNDQuNCA4LjFjLTEyMi4zIDE5My40LTguNSAzNDguNiA2NSA0OTUuNSAyLjUgNS4xIDcuNyA4LjQgMTMuNCA4LjRMNDk3IDUxMmMxMS4yIDAgMTguNC0xMS44IDEzLjQtMjEuNyAwIDAtMjM0LjUtNDcwLjYtMjQwLjQtNDgyLjMtNS4zLTEwLjYtMTguOC0xMC44LTI1LjYgLjF6Il19LE9sdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLWhhdCIsaWNvbjpbNjQwLDUxMixbXSwiZjRlNSIsIk02NDAgMjQuOWMtODAuOCA1My42LTg5LjQgOTIuNS05Ni40IDEwNC40LTYuNyAxMi4yLTExLjcgNjAuMy0yMy4zIDgzLjYtMTEuNyAyMy42LTU0LjIgNDIuMi02Ni4xIDUwLTExLjcgNy44LTI4LjMgMzguMS00MS45IDY0LjItMTA4LjEtNC40LTE2Ny40IDM4LjgtMjU5LjIgOTMuNiAyOS40LTkuNyA0My4zLTE2LjcgNDMuMy0xNi43IDk0LjItMzYgMTM5LjMtNjguMyAyODEuMS00OS4yIDEuMSAwIDEuOSAuNiAyLjggLjggMy45IDIuMiA1LjMgNi45IDMuMSAxMC44bC01My45IDk1LjhjLTIuNSA0LjctNy44IDcuMi0xMy4xIDYuMS0xMjYuOC0yMy44LTIyNi45IDE3LjMtMzE4LjkgMTguNi03My40IDEuMS05Ny41LTMzLjUtOTcuNS0zNS4xIDAtMS4xIC42LTEuNyAxLjctMS43IDAgMCAzOC4zIDAgMTAzLjEtMTUuMyA3My42LTE0MC4zIDEzOS4yLTE4OS40IDIxMC42LTE4OS40IDAgMCA3MS43IDAgOTAuNiA2MS45IDIyLjgtMzkuNyAyOC4zLTQ5LjIgMjguMy00OS4yIDUuMy05LjQgMzUtNzcuMiA4Ni40LTE0MS40IDUxLjUtNjQgOTAuNC03OS45IDExOS4zLTkxLjh6Il19LEJsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnRlcm5ldC1leHBsb3JlciIsaWNvbjpbNTEyLDUxMixbXSwiZjI2YiIsIk00ODMuMSAxNTkuN2MxMC45LTI0LjYgMjEuNC02MC40IDIxLjQtODcuOSAwLTcyLjctNzkuNi05OC40LTIwOS43LTM4LjYtMTA3LjYtNy4yLTIxMS4yIDczLjctMjM3LjEgMTg2LjUgMzAuOS0zNC45IDc4LjMtODIuMyAxMjItMTAxLjItNTQuMyA0OC4zLTEwMC42IDEwOS40LTEzNS43IDE3My4yLTIwLjcgMzcuOS00NCA5OS4yLTQ0IDE0NSAwIDk4LjYgOTIuOSA4Ni41IDE4MC4zIDQyIDMxLjQgMTUuNCA2Ni42IDE1LjYgMTAxLjcgMTUuNiA5Ny4xIDAgMTg0LjItNTQuMyAyMTYuOC0xNDZsLTEyMC44IDBjLTUyLjUgODguNi0xOTYuOCA1My0xOTYuOC00Ny40bDMyOC44IDBjNi40LTQzLjYtMS43LTk1LjctMjYuOS0xNDEuMnpNNjQuNiAzNDYuOUM4Mi4zIDM5OCAxMTguMyA0NDIuNyAxNjQuOCA0NzAuMiA3Ni4xIDUxOS4xLTguNCA0OTkuMyA2NC42IDM0Ni45ek0xODAuNSAyMzhjMi01NS4yIDUwLjMtOTQuOSAxMDQtOTQuOSA1My40IDAgMTAyIDM5LjcgMTA0IDk0LjlsLTIwOCAwek0zNjUuMSA1MC40YzIxLjQtMTAuMyA0OC42LTIyIDcyLjYtMjIgMzEuNCAwIDU0LjMgMjEuNyA1NC4zIDUzLjcgMCAyMC03LjQgNDktMTQuNiA2Ny45LTI2LjMtNDIuMy02Ni04MS42LTExMi4zLTk5LjZ6Il19LFJsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhaXJibmIiLGljb246WzQ0OCw1MTIsW10sImY4MzQiLCJNMjI0LjUgMzczLjFjLTI1LjItMzEuNy00MC4xLTU5LjQtNDUtODMuMi0yMi41LTg4IDExMi42LTg4IDkwLjEgMC01LjQgMjQuMi0yMC4zIDUyLTQ1IDgzLjJsLS4xIDB6bTEzOC4yIDczLjJjLTQyLjEgMTguMy04My43LTEwLjktMTE5LjMtNTAuNSAxMDMuOS0xMzAuMSA0Ni4xLTIwMC0xOC44LTIwMC01NC45IDAtODUuMiA0Ni41LTczLjMgMTAwLjUgNi45IDI5LjIgMjUuMiA2Mi40IDU0LjQgOTkuNS0zMi41IDM2LTYwLjUgNTIuNy04NS4yIDU0LjktNTAgNy40LTg5LjEtNDEuMS03MS4zLTkxLjEgMTUuMS0zOS4yIDExMS43LTIzMS4yIDExNS45LTI0MS42IDE1LjgtMzAuMSAyNS42LTU3LjQgNTkuNC01Ny40IDMyLjMgMCA0My40IDI1LjkgNjAuNCA1OS45IDM2IDcwLjYgODkuNCAxNzcuNSAxMTQuOCAyMzkuMSAxMy4yIDMzLjEtMS40IDcxLjMtMzcgODYuNnptNDctMTM2LjFjLTEyOC45LTI3NC4zLTEzNi0yNzguMi0xODUuMS0yNzguMi00NS41IDAtNjQuOSAzMS43LTg0LjcgNzIuOC0xMDYuMiAyMTIuMy0xMTYuNCAyNDIuNC0xMTcuMyAyNDUtMjUuMiA2OS4zIDI2LjcgMTMwLjIgODkuNiAxMzAuMiAyMS43IDAgNjAuNi02LjEgMTEyLjQtNjIuNCA1OC43IDYzLjggMTAxLjMgNjIuNCAxMTIuNCA2Mi40IDYyLjkgLjEgMTE0LjktNjAuOSA4OS42LTEzMC4yIDAtMy45LTE2LjgtMzguOS0xNi44LTM5LjZsMCAweiJdfSxIbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianMiLGljb246WzQ0OCw1MTIsW10sImYzYjgiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMjQzLjggMzgxLjRjMCA0My42LTI1LjYgNjMuNS02Mi45IDYzLjUtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVMMTUyIDM4NS43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjYgMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNWwwLTE0My4xIDQyLjEgMCAwIDE0My43em05OS42IDYzLjVjLTM5LjEgMC02NC40LTE4LjYtNzYuNy00M0wzMDEgMzgyLjFjOSAxNC43IDIwLjggMjUuNiA0MS41IDI1LjYgMTcuNCAwIDI4LjYtOC43IDI4LjYtMjAuOCAwLTE0LjQtMTEuNC0xOS41LTMwLjctMjhsLTEwLjUtNC41Yy0zMC40LTEyLjktNTAuNS0yOS4yLTUwLjUtNjMuNSAwLTMxLjYgMjQuMS01NS42IDYxLjYtNTUuNiAyNi44IDAgNDYgOS4zIDU5LjggMzMuN0wzNjggMjkwYy03LjItMTIuOS0xNS0xOC0yNy4xLTE4LTEyLjMgMC0yMC4xIDcuOC0yMC4xIDE4IDAgMTIuNiA3LjggMTcuNyAyNS45IDI1LjZsMTAuNSA0LjVjMzUuOCAxNS4zIDU1LjkgMzEgNTUuOSA2Ni4yIDAgMzcuOC0yOS44IDU4LjYtNjkuNyA1OC42eiJdfSxxbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXVpbnNjYXBlIixpY29uOls1MTIsNTEyLFtdLCJmNDU5IiwiTTMxMy43IDQ3NC42bC0xIDBjLTQxLjkgMC04Mi4xLTE2LjctMTExLjgtNDYuM3MtNDYuMy02OS45LTQ2LjMtMTExLjggMTYuNy04Mi4xIDQ2LjMtMTExLjggNjkuOS00Ni4zIDExMS44LTQ2LjNjOTQuOSAwIDE2OC4yIDgzLjEgMTU3IDE3Ni42IDQgNS4xIDguMiA5LjYgMTEuMiAxNS4zIDEzLjQtMzAuMyAyMC4zLTYyLjQgMjAuMy05Ny43IDAtMTM1LjEtMTA5LjUtMjQ0LjYtMjQ0LjYtMjQ0LjZTMTIuMSAxMTcuNSAxMi4xIDI1Mi42IDEyMS42IDQ5Ny4yIDI1Ni42IDQ5Ny4yYzIzLjggLjIgNDcuNi0zLjIgNzAuNC0xMC4xLTUuMi0zLjUtOC45LTguMS0xMy4zLTEyLjV6bTc4LjMtMTY5YTk5LjIgOTkuMiAwIDEgMCAwIDE5OC40IDk5LjIgOTkuMiAwIDEgMCAwLTE5OC40eiJdfSxWbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWR2ZXJzYWwiLGljb246WzUxMiw1MTIsW10sImYzNmEiLCJNNDgyLjEgMzJMMjguNyAzMkM1LjggMzIgMCAzNy45IDAgNjAuOUwwIDQ1MS4xQzAgNDc0LjQgNS44IDQ4MCAyOC43IDQ4MGw0NTMuNCAwYzI0LjQgMCAyOS45LTUuMiAyOS45LTI5LjdsMC0zODguMWMwLTI0LjYtNS40LTMwLjItMjkuOS0zMC4yek0xNzguNCAyMjAuM2MtMjcuNS0yMC4yLTcyLjEtOC43LTg0LjIgMjMuNC00LjMgMTEuMS05LjMgOS41LTE3LjUgOC4zLTkuNy0xLjUtMTcuMi0zLjItMjIuNS01LjUtMjguOC0xMS40IDguNi01NS4zIDI0LjktNjQuMyA0MS4xLTIxLjQgODMuNC0yMi4yIDEyNS4zLTQuOCA0MC45IDE2LjggMzQuNSA1OS4yIDM0LjUgMTI4LjUgMi43IDI1LjgtNC4zIDU4LjMgOS4zIDg4LjggMS45IDQuNCAuNCA3LjktMi43IDEwLjctOC40IDYuNy0zOS4zIDIuMi00Ni42LTcuNC0xLjktMi4yLTEuOC0zLjYtMy45LTYuMi0zLjYtMy45LTcuMy0yLjItMTEuOSAxLTU3LjQgMzYuNC0xNDAuMyAyMS40LTE0Ny00My4zLTMuMS0yOS4zIDEyLjQtNTcuMSAzOS42LTcxIDM4LjItMTkuNSAxMTIuMi0xMS44IDExNC0zMC45IDEuMS0xMC4yLTEuOS0yMC4xLTExLjMtMjcuM3ptMjg2LjcgMjIyYzAgMTUuMS0xMS4xIDkuOS0xNy44IDkuOWwtMzk0LjkgMGMtNy40IDAtMTguMiA0LjgtMTcuOC0xMC43IC40LTEzLjkgMTAuNS05LjEgMTcuMS05LjEgMTMyLjMtLjQgMjY0LjUtLjQgMzk2LjggMCA2LjggMCAxNi42LTQuNCAxNi42IDkuOXptMy44LTM0MC41bDAgMjkxYzAgNS43LS43IDEzLjktOC4xIDEzLjktMTIuNC0uNC0yNy41IDcuMS0zNi4xLTUuNi01LjgtOC43LTcuOC00LTEyLjQtMS4yLTUzLjQgMjkuNy0xMjguMSA3LjEtMTQ0LjQtODUuMi02LjEtMzMuNC0uNy02Ny4xIDE1LjctMTAwIDExLjgtMjMuOSA1Ni45LTc2LjEgMTM2LjEtMzAuNWwwLTcxYzAtMjYuMi0uMS0yNi4yIDI2LTI2LjIgMy4xIDAgNi42IC40IDkuNyAwIDEwLjEtLjggMTMuNiA0LjQgMTMuNiAxNC4zLS4xIC4yLS4xIC4zLS4xIC41ek00MTcuNCAzMzQuMWMtMTkuNSA0Ny42LTcyLjkgNDMuMy05MCA1LjItMTUuMS0zMy4zLTE1LjUtNjguMiAuNC0xMDEuNSAxNi4zLTM0LjEgNTkuNy0zNS43IDgxLjUtNC44IDIwLjYgMjguOCAxNC45IDg0LjYgOC4xIDEwMS4xek0xMjIuNiAzNjkuNGMtNy41LTEuMy0zMy0zLjMtMzMuNy0yNy44LS40LTEzLjkgNy44LTIzIDE5LjgtMjUuOCAyNC40LTUuOSA0OS4zLTkuOSA3My43LTE0LjcgOC45LTIgNy40IDQuNCA3LjggOS41IDEuNCAzMy0yNi4xIDU5LjItNjcuNiA1OC44eiJdfSxVbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucyIsaWNvbjpbNTEyLDUxMixbXSwiZjI1ZSIsIk0yNTMuOCAyMTQuOWwtMzMuMiAxNy4zYy05LjQtMTkuNi0yNS4yLTE5LjktMjcuNS0xOS45LTIyLjEgMC0zMy4yIDE0LjYtMzMuMiA0My44IDAgMjMuNiA5LjIgNDMuOCAzMy4yIDQzLjggMTQuNSAwIDI0LjYtNy4xIDMwLjYtMjEuM2wzMC42IDE1LjVjLTYuMiAxMS41LTI1LjcgMzktNjUuMSAzOS0yMi42IDAtNzQtMTAuMy03NC03NyAwLTU4LjcgNDMtNzcuMSA3Mi42LTc3LjEgMzAuNyAwIDUyLjcgMTEuOSA2NiAzNS45em0xNDMgMGwtMzIuOCAxNy4zYy05LjUtMTkuOC0yNS43LTE5LjktMjcuOS0xOS45LTIyLjEgMC0zMy4yIDE0LjYtMzMuMiA0My44IDAgMjMuNSA5LjIgNDMuOCAzMy4yIDQzLjggMTQuNCAwIDI0LjYtNy4xIDMwLjUtMjEuM2wzMSAxNS41Yy0yLjEgMy44LTIxLjQgMzktNjUuMSAzOS0yMi43IDAtNzQtOS45LTc0LTc3IDAtNTguNyA0My03Ny4xIDcyLjYtNzcuMSAzMC43IDAgNTIuNiAxMS45IDY1LjYgMzUuOXpNMjU1LjYgOEMxMTIuNyA4IDggMTIzLjEgOCAyNTYuMSA4IDM5NC41IDEyMS42IDUwNC4xIDI1NS42IDUwNC4xIDM4NS41IDUwNC4xIDUwNCA0MDMuMiA1MDQgMjU2LjEgNTA0IDExOC4yIDM5Ny40IDggMjU1LjYgOHptLjkgNDUwLjhjLTExMi41IDAtMjAzLjctOTMtMjAzLjctMjAyLjggMC0xMDUuNCA4NS40LTIwMy4zIDIwMy43LTIwMy4zIDExMi41IDAgMjAyLjggODkuNSAyMDIuOCAyMDMuMyAwIDEyMS43LTk5LjcgMjAyLjgtMjAyLjggMjAyLjh6Il19LGpsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJub3Rpb24iLGljb246WzUxMiw1MTIsW10sImU3ZDkiLCJNOTQuOSAxMDAuMmMxNC45IDEyLjEgMjAuNSAxMS4yIDQ4LjYgOS4zTDQwNy44IDkzLjZjNS42IDAgLjktNS42LS45LTYuNUwzNjIuOSA1NS40Yy04LjQtNi41LTE5LjYtMTQtNDEuMS0xMi4xTDY1LjkgNjEuOWMtOS4zIC45LTExLjIgNS42LTcuNSA5LjNsMzYuNCAyOC45em0xNS45IDYxLjZsMCAyNzguMWMwIDE0LjkgNy41IDIwLjUgMjQuMyAxOS42bDI5MC41LTE2LjhjMTYuOC0uOSAxOC43LTExLjIgMTguNy0yMy4zbDAtMjc2LjJjMC0xMi4xLTQuNy0xOC43LTE1LTE3LjdMMTI1LjcgMTQzLjFjLTExLjIgLjktMTQuOSA2LjUtMTQuOSAxOC43em0yODYuNyAxNC45YzEuOSA4LjQgMCAxNi44LTguNCAxNy44bC0xNCAyLjggMCAyMDUuM2MtMTIuMiA2LjUtMjMuNCAxMC4zLTMyLjcgMTAuMy0xNSAwLTE4LjctNC43LTI5LjktMTguN2wtOTEuNS0xNDMuNyAwIDEzOSAyOSA2LjVzMCAxNi44LTIzLjQgMTYuOGwtNjQuNCAzLjdjLTEuOS0zLjcgMC0xMy4xIDYuNS0xNC45bDE2LjgtNC43IDAtMTgzLjgtMjMuMy0xLjljLTEuOS04LjQgMi44LTIwLjUgMTUuOS0yMS41bDY5LjEtNC43IDk1LjMgMTQ1LjYgMC0xMjguOC0yNC4zLTIuOGMtMS45LTEwLjMgNS42LTE3LjcgMTQuOS0xOC43bDY0LjUtMy44ek00NC40IDM2LjdMMzEwLjYgMTcuMWMzMi43LTIuOCA0MS4xLS45IDYxLjYgMTRsODUgNTkuN2MxNCAxMC4zIDE4LjcgMTMuMSAxOC43IDI0LjNsMCAzMjcuNmMwIDIwLjUtNy41IDMyLjctMzMuNiAzNC41TDEzMy4yIDQ5NS44Yy0xOS42IC45LTI5LTEuOS0zOS4yLTE0LjlMMzEuNCAzOTkuN2MtMTEuMi0xNC45LTE1LjktMjYuMS0xNS45LTM5LjJsMC0yOTEuMmMwLTE2LjggNy41LTMwLjggMjguOS0zMi43eiJdfSxXbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2hyb21lY2FzdCIsaWNvbjpbNTEyLDUxMixbXSwiZjgzOCIsIk00NDggNjRMNjQuMiA2NGMtMjMuNiAwLTQyLjcgMTkuMS00Mi43IDQyLjdsMCA2My45IDQyLjcgMCAwLTYzLjkgMzgzLjggMCAwIDI5OC42LTE0OS4yIDAgMCA0Mi43IDE0OS40IDBjMjMuNiAwIDQyLjctMTkuMSA0Mi43LTQyLjdsMC0yOTguNkM0OTAuOSA4My4xIDQ3MS42IDY0IDQ0OCA2NHpNMjEuNSAzODMuNmwwIDYzLjkgNjMuOSAwYzAtMzUuMy0yOC42LTYzLjktNjMuOS02My45em0wLTg1bDAgNDIuNGM1OC45IDAgMTA2LjYgNDguMSAxMDYuNiAxMDdsNDIuNyAwYy4xLTgyLjQtNjYuOS0xNDkuMy0xNDkuMy0xNDkuNHpNMjEzLjYgNDQ4bDQyLjcgMEMyNTUuOCAzMTguNSAxNTEgMjEzLjcgMjEuNSAyMTMuNGwwIDQyLjRjMTA2LS4yIDE5MiA4Ni4yIDE5Mi4xIDE5Mi4yeiJdfSxHbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2lraXBlZGlhLXciLGljb246WzY0MCw1MTIsW10sImYyNjYiLCJNNjQwIDUxLjJsLS4zIDEyLjJjLTI4LjEgLjgtNDUgMTUuOC01NS44IDQwLjMtMjUgNTcuOC0xMDMuMyAyNDAtMTU1LjMgMzU4LjZsLTEzLjYgMC04MS45LTE5My4xYy0zMi41IDYzLjYtNjguMyAxMzAtOTkuMiAxOTMuMS0uMyAuMy0xNSAwLTE1LS4zLTQ2LjktMTA5LjctOTYuMS0yMTguNi0xNDMuMS0zMjguNi0xMS40LTI2LjctNDkuNC03MC03NS42LTY5LjcgMC0zLjEtLjMtMTAtLjMtMTQuMmwxNjEuOSAwIDAgMTMuOWMtMTkuMiAxLjEtNTIuOCAxMy4zLTQzLjMgMzQuMiAyMS45IDQ5LjcgMTAzLjYgMjQwLjMgMTI1LjYgMjg4LjYgMTUtMjkuNyA1Ny44LTEwOS4yIDc1LjMtMTQyLjgtMTMuOS0yOC4zLTU4LjYtMTMzLjktNzIuOC0xNjAtOS43LTE3LjgtMzYuMS0xOS40LTU1LjgtMTkuN2wwLTEzLjkgMTQyLjUgLjMgMCAxMy4xYy0xOS40IC42LTM4LjEgNy44LTI5LjQgMjYuMSAxOC45IDQwIDMwLjYgNjguMSA0OC4xIDEwNC43IDUuNi0xMC44IDM0LjctNjkuNCA0OC4xLTEwMC44IDguOS0yMC42LTMuOS0yOC42LTM4LjYtMjkuNCAuMy0zLjYgMC0xMC4zIC4zLTEzLjYgNDQuNC0uMyAxMTEuMS0uMyAxMjMuMS0uNmwwIDEzLjZDNDYyLjQgNjQgNDM5LjEgNzYgNDI2LjggOTQuOUwzNjcuNiAyMTcuN2M2LjQgMTYuMSA2My4zIDE0Mi44IDY5LjIgMTU2LjdMNTU5LjIgOTEuOGMtOC42LTIzLjEtMzYuNC0yOC4xLTQ3LjItMjguM2wwLTEzLjkgMTI3LjggMS4xIC4yIC41eiJdfSxZbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2l0cm94IixpY29uOls0NDgsNTEyLFtdLCJlNDRhIiwiTTIxMi40IDBsMCAwIDIzNS42IDAgMCAxMjgtMzg0IDBDNjQgNTcuNiAxNDEuOCAuNSAyMTIuNCAwem0yNC44IDE5MmwwIDBjNjkuOSAuNSAxNDYuNyA1Ny42IDE0Ni43IDEyOGwtMTczLjIgMCAwIDBDMTQwLjkgMzE5LjYgNjQgMjYyLjQgNjQgMTkybDE3My4zIDB6bS0xLjcgMzIwYzcwLjctLjUgMTQ4LjQtNTcuNiAxNDguNC0xMjhsLTM4NCAwIDAgMTI4IDIzNS42IDAgMCAweiJdfSxjMmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdpdGxhYiIsaWNvbjpbNDQ4LDUxMixbImdpdGxhYi1zcXVhcmUiXSwiZTVhZSIsIk0wIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZ6bTMzNy41IDEyLjVsNDQuNiAxMTYuNCAuNCAxLjJjNS42IDE2LjggNy4yIDM1LjIgMi4zIDUyLjUtNSAxNy4yLTE1LjQgMzIuNC0yOS44IDQzLjNsLS4yIC4xLTY4LjQgNTEuMi01NC4xIDQwLjljLS41IC4yLTEuMSAuNS0xLjcgLjgtMiAxLTQuNCAyLTYuNyAyLTMgMC02LjgtMS44LTguMy0yLjhsLTU0LjItNDAuOS02Ny45LTUwLjktLjQtLjMtLjItLjFjLTE0LjMtMTAuOC0yNC44LTI2LTI5LjctNDMuM3MtNC4yLTM1LjcgMi4yLTUyLjVsLjUtMS4yIDQ0LjctMTE2LjRjLjktMi4zIDIuNS00LjMgNC41LTUuNiAxLjYtMSAzLjQtMS42IDUuMi0xLjggMS4zLS43IDIuMS0uNCAzLjQgLjEgLjYgLjIgMS4yIC41IDIgLjcgMSAuNCAxLjYgLjkgMi40IDEuNSAuNiAuNCAxLjIgMSAyLjEgMS41IDEuMiAxLjQgMi4yIDMgMi43IDQuOGwyOS4yIDkyLjIgMTIyLjkgMCAzMC4yLTkyLjJjLjUtMS44IDEuNC0zLjQgMi42LTQuOHMyLjgtMi40IDQuNS0zLjFjMS43LS42IDMuNi0uOSA1LjQtLjdzMy42IC44IDUuMiAxLjhjMiAxLjMgMy43IDMuMyA0LjYgNS42eiJdfSxabHQ9YzJlLFhsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9lbGFjZSIsaWNvbjpbNTEyLDUxMixbXSwiZTYwYyIsIk00MDUuMiAzMzFjMi4yLTEuMSA0LjQtMi4zIDYuNS0zLjdsOC4zLTQuOGMxLjUtMS4xIDQuNC0zLjQgOC43LTYuN2wuNS0uNWMzLjQtMy40IDcuMi01IDExLjMtNC45IDEuOCAwIDMuOSAuNSA2LjQgMS41bDMxLTI3LjVjLjktLjcgMS43LTEuMyAyLjYtMS44bC4yIDBjMy4zLTEuOSA2LTEuOCA4LjIgLjQgMy45IDIuMSA0LjIgNS42IC45IDEwLjZMNDU3LjIgMzIyYy4yIC41IC40IDEgLjQgMS41IC41IDIuMiAuMyA0LjQtLjUgNi42LS43IDEuNS0xLjggMi45LTMuMSA0LjItMS40IDEuNC0yLjcgMi44LTQuMiA0LjJMNDMxIDM1Mi4yYy0xLjcgMS4yLTMuNCAyLjMtNS4xIDMuMy0yLjEgMS4zLTQuMyAyLjUtNi42IDMuNi0xIC40LTEuOSAuOS0yLjkgMS4zLTUuOSAyLjUtMTEuOSA0LjItMTguMiA1LTIuOSAyNC41LTExLjMgNDcuMS0yNS4xIDY3LjgtMTcuNSAyNS43LTQxLjQgNDUuNC03MS44IDU4LjgtMzAuMiAxMy41LTYzIDIwLjItOTguMiAyMC4yLTQ4LjYtLjUtODgtMTEuNC0xMTguMi0zMi44LTM1LjEtMjUtNTIuNi01Ny45LTUyLjYtOTkuMWwwLTUuNmMxLjItMjguMSA5LjUtNTQuNiAyNC44LTc5LjggMTUuMS0yNC45IDM3LjEtNDEuNyA2Ni4xLTUwLjUgMTQuOS00LjQgMjkuOS02LjYgNDUtNi42IDE1LjUgMCAzMS42IDIuOSA0OC4xIDguNnMzNS4yIDE1LjUgNTUuOSAyOS41bDU0LjEgMzYuM2MxNS4xIDkuOCAyOC44IDE2LjUgNDEuMiAyMC0yLjYtMjUuMS0xMS43LTQ2LjYtMjcuMy02NC41LTE1LjctMTguMS0zNS42LTMxLjMtNTkuOS0zOS43TDI1NyAyMjBjLTIxLjQtNy41LTM3LjMtMTQuOS00Ny43LTIyLjItMjguMi0xOS4xLTQzLjgtNDUuMi00Ny03OC41bC0uNS05LjhjMC0zMi4xIDEzLTU4LjkgMzktODAuNSAyMy0xOS4zIDUwLjYtMjkgODIuNS0yOSAyNCAwIDQ1LjYgNi45IDY0LjcgMjAuOCAxOS4yIDE0IDMwLjEgMzMuOCAzMi42IDU5LjRsLjUgMTBjMCAxOC42LTQuOCAzNC41LTE0LjQgNDcuNy05LjggMTMuMi0xOC41IDE5LjktMjYgMTkuOS0xLjYtLjEtMy4xLS4zLTQuNS0uNmwtMzQgMzJjLTUuNSAzLTkuMiAyLjUtMTEuMS0xLjYtMS45LTIuMi0xLjgtNC45IC41LTguMmwuMi0uMmMuNS0uNyAxLjItMS41IDItMi40bDMxLjYtMzBjLS40LTEuNS0uNi0zLjEtLjYtNC44IDAtNC4xIDEuNi03LjYgNC45LTEwLjQgMTMuOC0xMi40IDIwLjgtMjYuNyAyMC44LTQyLjggMC0xNi02LjEtMjkuNS0xOC4yLTQwLjRzLTI4LjctMTYuNS00OS43LTE2LjhjLTI2LjIgMC00Ny44IDcuOS02NC43IDIzLjdTMTkyLjYgODkuOSAxOTIuNiAxMTJjMCAxNy44IDYuOSAzMy45IDIwLjYgNDguMyAxMy42IDE0LjIgMzQuNiAyNS40IDYzIDMzLjUgMzkuOCAxMS41IDcwLjIgMzEgOTEuMyA1OC4zIDE4LjcgMjQuMiAyOS4xIDUxLjMgMzEuMyA4MS40IDIuMi0uNyA0LjMtMS41IDYuNS0yLjZsLS4xIC4xek0yOTQuNCAxNzguN2MwIDEuMSAuNiAxLjYgMS44IDEuNiAuMSAwIDkuNy04LjkgMjguOC0yNi42IDAtMi40LTUuMSAuOS0xNS4zIDEwLTEwLjIgOS4yLTE1LjMgMTQuMi0xNS4zIDE0LjlsMCAuMXptOCA2LjRjMC0xLS41LTEuNS0xLjUtMS41LTEuMSAwLTIuMSAuNS0yLjkgMS42LTEuOS0uMS0zLjMgLjEtNC4yIC43LS40IC4yLS41IC41LS41IC43IDAgLjcgLjUgMS4zIDEuNSAxLjZsMy4zIDBjMi45LTEuMSA0LjQtMi4yIDQuNC0zLjNsLS4xIC4yek0zMjUgMTY1LjJjMC0yLjgtMS42LTIuOC00LjkgMC0xLjYgMS41LTMuNiAzLjUtNiA2LjItLjggLjYtMi42IDIuMi01LjMgNC45LTIuOCAyLjktNC4yIDQuNy00LjIgNS4zbC4yIDEuM2MuNyAuMiAxLjIgLjQgMS41IC40IC4xIDAgMy4zLTIuOSA5LjUtOC43czkuMy04LjkgOS4zLTkuM2wtLjEtLjF6bTE1OS43IDEyMGwtMzAuNiAyN2MxLjggMSAzLjIgMi40IDQgNC4ybDMwLjItMjdjLjItMS4yIC4xLTIuMi0uNS0yLjktLjYtLjUtMS42LS45LTMuMS0xLjN6bS0xLjYtLjlsLS43LS43LTI3IDIxLjkgMS42IDIgMjYtMjMuMSAuMS0uMXpNMzY2LjkgMzYzLjljLTgtMi4xLTE1LjQtNC42LTIyLjItNy41LTE1LjMtNi4yLTM0LjMtMTctNTctMzIuNGwtMzcuNC0yNS4zYy0xNS44LTEwLjEtMzAuMi0xNy42LTQzLjItMjIuNi0xMy4xLTQuOS0yNi03LjMtMzguNi03LjNsLTUuNSAwYy0zMi4yIDEuNy01Ny4yIDEzLjgtNzUgMzYuMi0xNi42IDIwLjgtMjUgNDUuMy0yNSA3My42IDAgMzEuOCAxMi44IDU2LjcgMzguMiA3NC43IDI1LjQgMTguMSA2MC4yIDI3LjEgMTA0LjQgMjcuMSAzNC43IDAgNjQtNi4yIDg3LjgtMTguNiAyMy43LTEyLjQgNDIuMS0yOC44IDU1LjItNDkuMiA5LjgtMTUuNSAxNS45LTMxLjggMTguMi00OC44bC4xIC4xeiJdfSxRbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2VsbGNhc3QiLGljb246WzQ0OCw1MTIsW10sImYyZGEiLCJNMzUzLjUgMzJMOTQuOCAzMkM0Mi43IDMyIC4xIDc0LjYgLjEgMTI2LjZsMCAyNTguN0MuMSA0MzcuNCA0Mi43IDQ4MCA5NC44IDQ4MGwyNTguNyAwYzUyLjEgMCA5NC43LTQyLjYgOTQuNy05NC42bDAtMjU4LjhjMC01Mi00Mi42LTk0LjYtOTQuNy05NC42em0tNTAgMzE2LjRjLTI3LjkgNDguMi04OS45IDY0LjktMTM4LjIgMzcuMi0yMi45IDM5LjgtNTQuOSA4LjYtNDIuMy0xMy4ybDE1LjctMjcuMmM1LjktMTAuMyAxOS4yLTEzLjkgMjkuNS03LjkgMTguNiAxMC44LS4xLS4xIDE4LjUgMTAuNyAyNy42IDE1LjkgNjMuNCA2LjMgNzkuNC0yMS4zIDE1LjktMjcuNiA2LjMtNjMuNC0yMS4zLTc5LjQtMTcuOC0xMC4yLS42LS40LTE4LjYtMTAuNi0yNC42LTE0LjItMy40LTUxLjkgMjEuNi0zNy41IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgNDguNCAyOCA2NS4xIDkwLjMgMzcuMiAxMzguNXptMjEuOC0yMDguOGMtMTcgMjkuNS0xNi4zIDI4LjgtMTkgMzEuNS02LjUgNi41LTE2LjMgOC43LTI2LjUgMy42LTE4LjYtMTAuOCAuMSAuMS0xOC41LTEwLjctMjcuNi0xNS45LTYzLjQtNi4zLTc5LjQgMjEuM3MtNi4zIDYzLjQgMjEuMyA3OS40YzAgMCAxOC41IDEwLjYgMTguNiAxMC42IDI0LjYgMTQuMiAzLjQgNTEuOS0yMS42IDM3LjUtMTguNi0xMC44IC4xIC4xLTE4LjUtMTAuNy00OC4yLTI3LjgtNjQuOS05MC4xLTM3LjEtMTM4LjQgMjcuOS00OC4yIDg5LjktNjQuOSAxMzguMi0zNy4ybDQuOC04LjRjMTQuMy0yNC45IDUyLTMuMyAzNy43IDIxLjV6Il19LEtsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaXgiLGljb246WzQ0OCw1MTIsW10sImYzY2IiLCJNMCA2NEwwIDQxMi45YzAgNTYuMiA4OCA1OC4xIDg4IDBsMC0yMzguNmM3LjktNTIuOSA4OC01MC40IDg4IDYuNWwwIDE3NS4zYzAgNTcuOSA5NiA1OCA5NiAwTDI3MiAyNDBjNS4zLTU0LjcgODgtNTIuNSA4OCA0LjNsMCAyMy44YzAgNTkuOSA4OCA1Ni42IDg4IDBMNDQ4IDY0IDAgNjR6Il19LEpsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hcHBsZS1wYXkiLGljb246WzU3Niw1MTIsW10sImY0MTYiLCJNMzAyLjIgMjE4LjRjMCAxNy4yLTEwLjUgMjcuMS0yOSAyNy4xbC0yNC4zIDAgMC01NC4yIDI0LjQgMGMxOC40IDAgMjguOSA5LjggMjguOSAyNy4xek0zNDkuNyAyODFjMCA4LjMgNy4yIDEzLjcgMTguNSAxMy43IDE0LjQgMCAyNS4yLTkuMSAyNS4yLTIxLjlsMC03LjctMjMuNSAxLjVjLTEzLjMgLjktMjAuMiA1LjgtMjAuMiAxNC40ek01NzYgNzlsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDc5Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDc5QzAgNTIuNSAyMS41IDMxIDQ4IDMxbDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjcuOCAxOTcuMmM4LjQgLjcgMTYuOC00LjIgMjIuMS0xMC40IDUuMi02LjQgOC42LTE1IDcuNy0yMy43LTcuNCAuMy0xNi42IDQuOS0yMS45IDExLjMtNC44IDUuNS04LjkgMTQuNC03LjkgMjIuOHptNjAuNiA3NC41Yy0uMi0uMi0xOS42LTcuNi0xOS44LTMwLS4yLTE4LjcgMTUuMy0yNy43IDE2LTI4LjItOC44LTEzLTIyLjQtMTQuNC0yNy4xLTE0LjctMTIuMi0uNy0yMi42IDYuOS0yOC40IDYuOS01LjkgMC0xNC43LTYuNi0yNC4zLTYuNC0xMi41IC4yLTI0LjIgNy4zLTMwLjUgMTguNi0xMy4xIDIyLjYtMy40IDU2IDkuMyA3NC40IDYuMiA5LjEgMTMuNyAxOS4xIDIzLjUgMTguNyA5LjMtLjQgMTMtNiAyNC4yLTYgMTEuMyAwIDE0LjUgNiAyNC4zIDUuOSAxMC4yLS4yIDE2LjUtOS4xIDIyLjgtMTguMiA2LjktMTAuNCA5LjgtMjAuNCAxMC0yMXptMTM1LjQtNTMuNGMwLTI2LjYtMTguNS00NC44LTQ0LjktNDQuOGwtNTEuMiAwIDAgMTM2LjQgMjEuMiAwIDAtNDYuNiAyOS4zIDBjMjYuOCAwIDQ1LjYtMTguNCA0NS42LTQ1em05MCAyMy43YzAtMTkuNy0xNS44LTMyLjQtNDAtMzIuNC0yMi41IDAtMzkuMSAxMi45LTM5LjcgMzAuNWwxOS4xIDBjMS42LTguNCA5LjQtMTMuOSAyMC0xMy45IDEzIDAgMjAuMiA2IDIwLjIgMTcuMmwwIDcuNS0yNi40IDEuNmMtMjQuNiAxLjUtMzcuOSAxMS42LTM3LjkgMjkuMSAwIDE3LjcgMTMuNyAyOS40IDMzLjQgMjkuNCAxMy4zIDAgMjUuNi02LjcgMzEuMi0xNy40bC40IDAgMCAxNi40IDE5LjYgMCAwLTY4IC4xIDB6TTUxNiAyMTAuOWwtMjEuNSAwLTI0LjkgODAuNi0uNCAwLTI0LjktODAuNi0yMi4zIDAgMzUuOSA5OS4zLTEuOSA2Yy0zLjIgMTAuMi04LjUgMTQuMi0xNy45IDE0LjItMS43IDAtNC45LS4yLTYuMi0uM2wwIDE2LjRjMS4yIC40IDYuNSAuNSA4LjEgLjUgMjAuNyAwIDMwLjQtNy45IDM4LjktMzEuOEw1MTYgMjEwLjl6Il19LGVjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJicmF2ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTYzYyIsIk0xNDUuNiAwbDE1NyAwIDQ0LjcgNTAuOHMzOS4zLTEwLjkgNTcuOCA3LjYgMzMuOCAzNC45IDMzLjggMzQuOWwtMTIgMjkuNSAxNS4zIDQzLjdzLTQ0LjkgMTcwLjItNTAuMSAxOTFjLTEwLjQgNDAuOS0xNy40IDU2LjgtNDYuOSA3Ny41cy04Mi45IDU2LjgtOTEuNiA2Mi4yYy0xLjkgMS4yLTMuOSAyLjUtNS45IDMuOS03LjUgNS4xLTE1LjggMTAuOC0yMy41IDEwLjhzLTE2LjEtNS43LTIzLjUtMTAuOGMtMi0xLjQtNC0yLjgtNS45LTMuOS04LjctNS41LTYyLjEtNDEuNS05MS42LTYyLjJzLTM2LjUtMzYuNi00Ni45LTc3LjVjLTUuMy0yMC44LTUwLjEtMTkxLTUwLjEtMTkxTDIxLjUgMTIyLjggOS4zIDkzLjNzMTUuMy0xNi40IDMzLjgtMzQuOSA1Ny44LTcuNiA1Ny44LTcuNkwxNDUuNiAwem03OC41IDQwNy42YzMuNyAwIDguOS00LjcgMTMtOC40IC42LS41IDEuMi0xLjEgMS43LTEuNSA0LjItMy43IDQ3LjgtMzcuNSA1MS0zOS44czUuNC02LjUgMS45LTguN2MtMi44LTEuNy0xMC01LjUtMjAuMy0xMC44LTMtMS42LTYuMy0zLjItOS43LTUtMTUuNC04LTM0LjUtMTQuNy0zNy41LTE0LjdzLTIyLjEgNi44LTM3LjUgMTQuN2MtMy41IDEuOC02LjcgMy41LTkuNyA1LTEwLjMgNS4zLTE3LjYgOS4xLTIwLjMgMTAuOC0zLjYgMi4yLTEuNCA2LjQgMS45IDguN3M0Ni44IDM2LjEgNTEgMzkuOGMuNSAuNSAxLjEgMSAxLjcgMS41IDQuMSAzLjcgOS4zIDguNCAxMyA4LjRsLS4yIDB6bTAtMTY1LjdjNC43IDAgMTcuNi0zIDI2LjQtNWwyLS41YzcuOC0xLjggNy4zLTYuMyA2LjQtMTMtLjEtLjgtLjItMS42LS4zLTIuNC0uNi02LjEtNS44LTMzLjEtOS4xLTUwLjMtMS4xLTUuOC0yLTEwLjUtMi40LTEyLjktMS41LTguMS0uNi05LjQgLjctMTEuMyAuMi0uMyAuNS0uNyAuNy0xLjEgMS40LTIuMyAxNi02LjIgMjcuOS05LjUgMi41LS43IDQuOC0xLjMgNi45LTEuOSAxMC42LTMgMzIuNC0uNiA0NC4yIC42IDEuOCAuMiAzLjQgLjQgNC43IC41IDkuNiAuOSAxMC40IDIuMyA3LjIgMy44LTIuMyAxLjEtMTYuMiA2LjMtMjguNyAxMC45LTQuNyAxLjgtOS4yIDMuNS0xMi44IDQuOC0xLjUgLjUtMyAxLjEtNC41IDEuNy0xMi41IDQuNi0yNy4yIDEwLTI4LjkgMTkuNC0xLjUgOC4zIDUuMiAxOS45IDExLjMgMzAuMyAxLjYgMi44IDMuMiA1LjUgNC42IDguMSA2LjMgMTEuOSA2LjUgMTMuMyA2LjEgMTguMS0uNCAzLjktMTQuNSAxMi43LTIyLjQgMTcuNi0xLjggMS4xLTMuMyAyLjEtNC4yIDIuNy0uOCAuNS0yLjEgMS40LTMuOCAyLjQtOC42IDUuMi0yNi4zIDE2LTI2LjMgMjIuNSAwIDcuOCAyNC42IDI4LjEgMzIuNCAzMy4yczI4LjkgMTYuMSAzNy45IDE3LjggMjMtOC41IDMxLjItMjMuOGM3LjctMTQuNCAxLjctMjguNS0zLjItNDBsLS45LTIuMmMtNC41LTEwLjYgMS45LTE3IDYuMi0yMS4zIC41LS41IDEtMSAxLjQtMS40bDQzLTQ1LjdjMS4zLTEuMyAyLjUtMi42IDMuNy0zLjggNS44LTUuNyAxMC44LTEwLjUgMTAuOC0yMi44IDAtMTQuOS01Ny41LTg0LjUtNTcuNS04NC41cy00OC41IDkuMy01NS4xIDkuM2MtNS4yIDAtMTUuMy0zLjUtMjUuOC03LjEtMi43LS45LTUuNC0xLjktOC0yLjctMTMtNC4zLTIxLjgtNC40LTIxLjgtNC40cy04LjcgMC0yMS44IDQuNGMtMi43IC45LTUuNCAxLjgtOCAyLjctMTAuNSAzLjYtMjAuNiA3LjEtMjUuOCA3LjEtNi41IDAtNTUuMS05LjMtNTUuMS05LjNzLTU3LjUgNjkuNi01Ny41IDg0LjVjMCAxMi4zIDQuOSAxNy4xIDEwLjggMjIuOCAxLjIgMS4yIDIuNSAyLjQgMy43IDMuOGw0My4xIDQ1LjhjLjQgLjUgLjkgLjkgMS40IDEuNCA0LjMgNC4zIDEwLjYgMTAuNyA2LjIgMjEuM2wtLjkgMi4yYy00LjkgMTEuNS0xMSAyNS42LTMuMiA0MCA4LjIgMTUuMyAyMi4yIDI1LjUgMzEuMiAyMy44czMwLjEtMTIuNyAzNy45LTE3LjggMzIuNC0yNS40IDMyLjQtMzMuMmMwLTYuNS0xNy43LTE3LjMtMjYuMy0yMi41LTEuNy0xLTMuMS0xLjktMy44LTIuNC0uOS0uNi0yLjQtMS41LTQuMi0yLjctNy45LTQuOS0yMi0xMy43LTIyLjQtMTcuNi0uNC00LjgtLjMtNi4yIDYuMS0xOC4xIDEuMy0yLjUgMi45LTUuMyA0LjYtOC4xIDYtMTAuNCAxMi44LTIyIDExLjMtMzAuMy0xLjctOS40LTE2LjQtMTQuOC0yOC45LTE5LjQtMS42LS42LTMuMS0xLjEtNC41LTEuNy0zLjYtMS40LTguMS0zLjEtMTIuOC00LjhsLS4xIDBjLTEyLjUtNC43LTI2LjQtOS45LTI4LjctMTAuOS0zLjItMS41LTIuMy0yLjggNy4yLTMuOCAxLjMtLjEgMi45LS4zIDQuNy0uNSAxMS44LTEuMyAzMy42LTMuNiA0NC4yLS42IDIuMSAuNiA0LjQgMS4yIDYuOSAxLjkgMTEuOSAzLjIgMjYuNSA3LjIgMjcuOSA5LjUgLjIgLjQgLjUgLjcgLjcgMS4xIDEuMyAxLjkgMi4yIDMuMiAuNyAxMS4zLS40IDIuNC0xLjMgNy4xLTIuNCAxMi45LTMuMyAxNy4yLTguNSA0NC4yLTkuMSA1MC4zLS4xIC44LS4yIDEuNy0uMyAyLjQtLjggNi43LTEuNCAxMS4yIDYuNCAxM2wyIC41YzguOCAyIDIxLjggNSAyNi40IDVsMC0uMXoiXX0sdGN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV0c3kiLGljb246WzM4NCw1MTIsW10sImYyZDciLCJNMzg0IDM0OGMtMS44IDEwLjctMTMuOCAxMTAtMTUuNSAxMzItMTE3LjktNC4zLTIxOS45LTQuNy0zNjguNSAwbDAtMjUuNWM0NS41LTguOSA2MC42LTggNjEtMzUuMiAxLjgtNzIuMyAzLjUtMjQ0LjEgMC0zMjItMS0yOC41LTEyLjEtMjYuOC02MS0zNkwwIDM1LjhjNzMuOSAyLjQgMjU1LjkgOC42IDM2My0zLjgtMy41IDM4LjItNy44IDEyNi41LTcuOCAxMjYuNWwtMjMuMiAwQzMyMC45IDExNS43IDMxMy4yIDY4IDI3Ny4zIDY4bC0xMzcgMGMtMTAuMiAwLTEwLjcgMy41LTEwLjcgOS44bDAgMTYzLjhjNTggLjUgODguNS0yLjUgODguNS0yLjUgMjkuOC0xIDI3LjYtOC41IDQwLjctNjUuM2wyNS44IDBjLTQuNCAxMDEuNC0zLjkgNjEuOC0xLjggMTYwLjNMMjU3IDMzNGMtOS4yLTQwLjEtOS4xLTYxLTM5LjUtNjEuNSAwIDAtMjEuNS0yLTg4LTJsMCAxMzljMCAyNiAxNC4zIDM4LjMgNDQuMyAzOC4zbDg5LjMgMGM2My42IDAgNjYuNi0yNSA5OC43LTk5LjhsMjIuMiAweiJdfSxhY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnRjIixpY29uOlszODQsNTEyLFtdLCJmMTVhIiwiTTMxMC40IDI0Mi42YzI3LjctMTQuMiA0NS40LTM5LjQgNDEuMy04MS4zLTUuNC01Ny40LTUyLjUtNzYuNi0xMTQuOC04MS45bDAtNzkuNC00OC41IDAgMCA3Ny4yYy0xMi42IDAtMjUuNSAuMy0zOC40IC42bDAtNzcuOC00OC41IDAgMCA3OS40Yy0xNy44IC41LTM4LjYgLjMtOTcuNCAwbDAgNTEuN2MzOC4zLS43IDU4LjQtMy4xIDYzIDIxLjRsMCAyMTcuNGMtMi45IDE5LjUtMTguNSAxNi43LTUzLjMgMTYuMUw0IDQ0My43Yzg4LjUgMCA5Ny40IC4zIDk3LjQgLjNsMCA2OCA0OC41IDAgMC02Ny4xYzEzLjIgLjMgMjYuMiAuMyAzOC40IC4zbDAgNjYuNyA0OC41IDAgMC02OGM4MS4zLTQuNCAxMzUuNi0yNC45IDE0Mi45LTEwMS41IDUuNy02MS40LTIzLjMtODguOS02OS4zLTk5Ljl6TTE1MC44IDEzNC42YzI3LjQgMCAxMTMuMS04LjUgMTEzLjEgNDguNSAwIDU0LjUtODUuNyA0OC4yLTExMy4xIDQ4LjJsMC05Ni43em0wIDI1MS44bDAtMTA2LjVjMzIuOCAwIDEzMy4xLTkuMSAxMzMuMSA1My4zIDAgNjAuMi0xMDAuNCA1My4zLTEzMy4xIDUzLjN6Il19LHJjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZG4iLGljb246WzUxMiw1MTIsW10sImYxNzAiLCJNMjU2IDE2Ny41bDY0LjkgOTguOC0xMjkuOCAwIDY0LjktOTguOHpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzk2LjIgODIuN2wtMTQ4LjItMjIzLjItMTQ4LjIgMjIzLjIgMzAuNCAwIDMzLjYtNTEuNyAxNjguNiAwIDMzLjYgNTEuNyAzMC4yIDB6Il19LGljdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteC10d2l0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjFhIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTI5Ny4xIDg0bC0xMDMuOCAxMTguNiAxMjIuMSAxNjEuNC05NS42IDAtNzQuOC05Ny45LTg1LjcgOTcuOS00Ny41IDAgMTExLTEyNi45LTExNy4xLTE1My4xIDk4IDAgNjcuNyA4OS41IDc4LjItODkuNSA0Ny41IDB6TTMyMy4zIDM2Ny42bC0xNjkuOS0yMjQuNy0yOC4zIDAgMTcxLjggMjI0LjcgMjYuNCAweiJdfSxvY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTVhZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem05MCAxMjJjMCA5LjMtNC44IDE3LjQtMTIuMSAyMmwxODguOSAwYzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDEuOC0uNCAzLjctMS4xIDUuNEwzMTIgMjY0IDM0Mi45IDMzMy40Yy43IDEuNyAxLjEgMy41IDEuMSA1LjQgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ybC0xODYuOCAwIDAgMzItMzIgMCAwLTIwOS41Yy02LjEtNC44LTEwLTEyLjItMTAtMjAuNSAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2eiJdfSxzY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydW1iZWUiLGljb246WzQ0OCw1MTIsW10sImYyMTEiLCJNNS44IDMwOS43QzIgMjkyLjcgMCAyNzUuNSAwIDI1OC4zIDAgMTM1IDk5LjggMzUgMjIzLjEgMzUgMjM5LjcgMzUgMjU2LjQgMzcgMjcyLjQgNDAuNSAxNDkgODcuNSA1MS45IDE4NiA1LjggMzA5Ljd6TTM5OC43IDEyMC41Yy0xMy43LTE3LjUtMjkuNy0zMi43LTQ3LjgtNDUuMy0xNDkuNiA0NC4zLTI2Ni4zIDE2Mi4xLTMwOS43IDMxMiAxMi41IDE4LjEgMjggMzUuNiA0NS4yIDQ5IDQzLjEtMTUxLjMgMTYxLjItMjcxLjcgMzEyLjMtMzE1Ljd6bTE1LjggMjUyLjdjMTUuMi0yNS4xIDI1LjQtNTMuNyAyOS41LTgyLjgtNzkuNCA0Mi45LTE0NSAxMTAuNi0xODcuNiAxOTAuMyAzMC00LjQgNTguOS0xNS4zIDg0LjYtMzEuMyAzNSAxMy4xIDcwLjkgMjQuMyAxMDcgMzMuNi05LjMtMzYuNS0yMC40LTc0LjUtMzMuNS0xMDkuOHptMjkuNy0xNDUuNWMtMi42LTE5LjUtNy45LTM4LjctMTUuOC01Ni44LTEzNy45IDQ1LjgtMjQ2LjQgMTU2LjYtMjkxLjMgMjk1LjEgMTguMSA3LjYgMzcgMTIuNSA1Ni42IDE1LjIgNDYuMy0xMTQuMSAxMzYuOC0yMDYuOCAyNTAuNS0yNTMuNXoiXX0sZDJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IjQyLWdyb3VwIixpY29uOls2NDAsNTEyLFsiaW5ub3NvZnQiXSwiZTA4MCIsIk0zMjAgOTZsMCAzMjBjMjEgMCA0MS44LTQuMSA2MS4yLTEyLjJzMzctMTkuOCA1MS45LTM0LjcgMjYuNi0zMi41IDM0LjctNTEuOSAxMi4yLTQwLjIgMTIuMi02MS4yLTQuMS00MS44LTEyLjItNjEuMi0xOS44LTM3LjEtMzQuNy01MS45LTMyLjUtMjYuNi01MS45LTM0LjctNDAuMi0xMi4yLTYxLjItMTIuMnpNMCAyNTZMMTYwIDQxNiAzMjAgMjU2IDE2MCA5NiAwIDI1NnptNDgwIDBjMCAyMSA0LjEgNDEuOCAxMi4yIDYxLjJzMTkuOCAzNyAzNC43IDUxLjkgMzIuNSAyNi42IDUxLjkgMzQuNyA0MC4yIDEyLjIgNjEuMiAxMi4ybDAtMzIwYy00Mi40IDAtODMuMSAxNi45LTExMy4xIDQ2LjlTNDgwIDIxMy42IDQ4MCAyNTZ6Il19LG5jdD1kMmUsbGN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dW1ibGV1cG9uLWNpcmNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFhMyIsIk0yNjQgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgMTc3LjVjLTkuOCAwLTE3LjggOC0xNy44IDE3LjhsMCAxMDYuOWMwIDQwLjktMzMuOSA3My45LTc0LjkgNzMuOS00MS40IDAtNzQuOS0zMy41LTc0LjktNzQuOWwwLTQ2LjUgNTcuMyAwIDAgNDUuOGMwIDEwIDggMTcuOCAxNy44IDE3LjhzMTcuOC03LjkgMTcuOC0xNy44bDAtMTA4LjRjMC00MCAzNC4yLTcyLjEgNzQuNy03Mi4xIDQwLjcgMCA3NC43IDMyLjMgNzQuNyA3Mi42bDAgMjMuNy0zNC4xIDEwLjEtMjIuOS0xMC43IDAtMjAuNmMuMS05LjYtNy45LTE3LjYtMTcuNy0xNy42ek00MzEuNiAzMDkuMWMwIDQxLjQtMzMuNSA3NC45LTc0LjkgNzQuOS00MS4yIDAtNzQuOS0zMy4yLTc0LjktNzQuMmwwLTQ2LjggMjIuOSAxMC43IDM0LjEtMTAuMSAwIDQ3LjFjMCA5LjggOCAxNy42IDE3LjggMTcuNnMxNy44LTcuOSAxNy44LTE3LjZsMC00OCA1Ny4zIDBjLS4xIDQ1LjktLjEgNDYuNC0uMSA0Ni40eiJdfSxjY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ltZm9ueSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZCIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM4OS43IDE1MS41Yy0xMS41IC40LTE5LjQtNi40LTE5LjgtMTYuOS0uMy05LjIgNi43LTEzLjQgNi41LTE4LjktLjItNi41LTEwLjItNi44LTEyLjktNi43LTM5LjggMS4zLTQ4LjYgNTctNTguOSAxMTMuOCAyMS40IDMuMiAzNi42LS43IDQ1LjEtNi4yIDEyLTcuNy0zLjMtMTUuNy0xLjQtMjQuNiA0LTE4LjIgMzIuNi0xOSAzMiA1LjMtLjQgMTcuOS0yNS45IDQxLjgtNzcuNiAzNS43LTEwLjggNTkuNS0xOC40IDExNS01OC4yIDE2MS43LTI5IDM0LjUtNTguNCAzOS44LTcxLjYgNDAuMy0yNC42IC45LTQxLTEyLjMtNDEuNi0yOS44LS42LTE3IDE0LjQtMjYuMyAyNC4zLTI2LjYgMjEuOS0uOCAzMC4xIDI1LjcgMTQuOSAzNC0xMi4xIDkuNyAuMSAxMi42IDIuMSAxMi42IDEwLjQtLjQgMTcuMy01LjUgMjIuMi05IDI0LTIwIDMzLjItNTQuOSA0NS40LTExOC4zIDguMi00OS43IDE3LTc4IDE4LjItODItMTYuOS0xMi43LTI3LjEtMjguNi00OS44LTM0LjctMTUuNi00LjItMjUuMS0uNi0zMS44IDcuOC03LjkgMTAtNS4zIDIzIDIuNCAzMC43bDEyLjYgMTRjMTUuNSAxNy45IDI0IDMxLjkgMjAuOCA1MC42LTUuMSAyOS45LTQwLjcgNTIuOS04Mi45IDM5LjktMzYtMTEuMS00Mi43LTM2LjYtMzguNC01MC42IDcuNS0yNC4yIDQyLjQtMTEuNyAzNC42IDEzLjYtMi44IDguNi00LjkgOC43LTYuMyAxMy4xLTQuNiAxNC44IDQxLjggMjguNCA1MS0xLjQgNC41LTE0LjUtNS4zLTIxLjctMjIuMi0zOS45LTI4LjUtMzEuNy0xNi02NS41IDIuOS03OS43IDUyLjgtMzkuNCAxMDAuNSAxNy41IDExMC42IDI1LjggMzcuMi0xMDkgMTAwLjUtMTA1LjUgMTAyLjQtMTA1LjUgMjUuMi0uOCA0NC4yIDEwLjYgNDQuOCAyOC42IC4yIDcuNy00LjIgMjIuNi0xOS41IDIzLjF6Il19LGRjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzYWxlc2ZvcmNlIixpY29uOls2NDAsNTEyLFtdLCJmODNiIiwiTTI0OS40IDI0NS42bC0yNi40IDBjLjctNS4yIDMuMy0xNC4xIDEzLjYtMTQuMSA2LjggMCAxMiAzLjggMTIuNyAxNC4xek0zODYgMjMxLjhjLS41IDAtMTQuMS0xLjgtMTQuMSAyMHMxMy42IDIwIDE0LjEgMjBjMTMgMCAxNC4xLTEzLjUgMTQuMS0yMCAwLTIxLjgtMTMuNy0yMC0xNC4xLTIwek0xNDIuOCAyNTUuNWMtMS4xIC45LTIgMi0yLjUgMy4ycy0uOCAyLjctLjcgNGMwIDQuOCAyLjEgNi4xIDMuMyA3IDQuNyAzLjcgMTUuMSAyLjEgMjAuOSAxbDAtMTYuOWMtNS4zLTEuMS0xNi43LTItMjAuOSAxLjZ6TTY0MC41IDIzMmMwIDg3LjYtODAgMTU0LjQtMTY1LjQgMTM2LjQtMTguNCAzMy03MC43IDcwLjgtMTMyLjIgNDEuNi00MS4yIDk2LTE3Ny45IDkyLjItMjEzLjgtNS4yLTExOS43IDIzLjktMTc4LjgtMTM4LjQtNzUuMy0xOTkuMy0zNC44LTc5LjQgMjIuNi0xNzMuNiAxMTQuMy0xNzMuNiAxOS4xIDAgMzcuOSA0LjQgNTUgMTIuOXMzMiAyMC43IDQzLjYgMzUuOGMyMC43LTIxLjQgNDkuNC0zNC44IDgxLjEtMzQuOCA0Mi4zIDAgNzkgMjMuNSA5OC44IDU4LjYgOTIuOC00MC43IDE5My44IDI4LjIgMTkzLjggMTI3LjV6TTEyMC45IDI2My44YzAtMTEuOC0xMS43LTE1LjItMTcuOS0xNy4yLTUuMy0yLjEtMTMuNC0zLjUtMTMuNC04LjkgMC05LjUgMTctNi43IDI1LjItMi4xIDAgMCAxLjIgLjcgMS42LS41IC4yLS43IDIuNC02LjYgMi42LTcuMyAuMS0uMyAuMS0uNi0uMS0uOHMtLjQtLjUtLjYtLjZjLTEyLjMtNy42LTQwLjctOC41LTQwLjcgMTIuNyAwIDEyLjUgMTEuNSAxNS40IDE3LjkgMTcuMiA0LjcgMS42IDEzLjIgMyAxMy4yIDguNyAwIDQtMy41IDcuMS05LjIgNy4xLTYuOSAwLTEzLjUtMi4yLTE5LTYuMy0uNS0uMi0xLjQtLjctMS42IC43bC0yLjQgNy41Yy0uNSAuOSAuMiAxLjIgLjIgMS40IDEuOCAxLjQgMTAuMyA2LjYgMjIuOCA2LjYgMTMuMiAwIDIxLjQtNy4xIDIxLjQtMTguMWwwIDB6bTMyLTQyLjZjLTEwLjEgMC0xOC43IDMuMi0yMS40IDUuMi0uMSAuMS0uMiAuMi0uMyAuM3MtLjEgLjItLjEgLjQgMCAuMyAwIC40IC4xIC4zIC4yIC40bDIuNiA3LjFjLjEgLjIgLjIgLjUgLjUgLjZzLjUgLjIgLjcgLjFjLjYgMCA2LjgtNCAxNi45LTQgNCAwIDcuMSAuNyA5LjIgMi40IDMuNiAyLjggMy4xIDguMyAzLjEgMTAuNi00LjgtLjMtMTkuMS0zLjQtMjkuNCAzLjgtMi4zIDEuNi00LjMgMy44LTUuNSA2LjNzLTEuOSA1LjQtMS44IDguMmMwIDUuOSAxLjUgMTAuNCA2LjYgMTQuNCAxMi4yIDguMiAzNi4zIDIgMzguMSAxLjQgMS42LS4zIDMuNS0uNyAzLjUtMS45bDAtMzMuOWMwLTQuNiAuMy0yMS42LTIyLjgtMjEuNmwwIC4xem00Ni42LTIxYzAtLjIgMC0uMy0uMS0uNXMtLjEtLjMtLjMtLjQtLjItLjItLjQtLjMtLjMtLjEtLjUtLjFsLTkuOCAwYy0uMiAwLS4zIDAtLjUgLjFzLS4zIC4xLS40IC4zLS4yIC4yLS4zIC40LS4xIC4zLS4xIC41bDAgNzljMCAuMiAwIC4zIC4xIC41cy4xIC4zIC4zIC40IC4yIC4yIC40IC4zIC4zIC4xIC41IC4xbDkuOSAwYy4yIDAgLjMgMCAuNS0uMXMuMy0uMSAuNC0uMyAuMi0uMiAuMy0uNCAuMS0uMyAuMS0uNWwtLjEtNzl6bTU1LjcgMjguOWMtMi4xLTIuMy02LjgtNy41LTE3LjYtNy41LTMuNSAwLTE0LjIgLjItMjAuNyA4LjktNi40IDcuNi02LjYgMTguMS02LjYgMjEuNCAwIDMuMSAuMiAxNC4zIDcuMSAyMS4yIDIuNiAyLjkgOS4xIDguMiAyMi44IDguMiAxMC44IDAgMTYuNS0yLjMgMTguNi0zLjggLjUtLjIgLjctLjcgLjItMS45bC0yLjMtNi44Yy0uMS0uMy0uMy0uNS0uNi0uNnMtLjUtLjItLjgtLjFjLTIuNiAuOS02LjMgMi44LTE1LjMgMi44LTE3LjQgMC0xNi44LTE0LjctMTYuOS0xNi43bDM3LjIgMGMuMyAwIC41LS4xIC43LS4zcy40LS40IC40LS43Yy0uMyAwIDIuMS0xNC43LTYuMS0yNC4ybDAgMHptMzYuNyA1Mi43YzEzLjIgMCAyMS40LTcuMSAyMS40LTE4LjEgMC0xMS44LTExLjctMTUuMi0xNy45LTE3LjItNC4xLTEuNy0xMy40LTMuNC0xMy40LTguOSAwLTMuOCAzLjMtNi40IDguNS02LjQgNS44IC4xIDExLjUgMS42IDE2LjcgNC4yIDAgMCAxLjIgLjcgMS42LS41IC4yLS43IDIuNC02LjYgMi42LTcuMyAuMS0uMyAuMS0uNi0uMS0uOHMtLjQtLjUtLjYtLjZjLTcuOS00LjktMTYuNy00LjktMjAuMi00LjktMTIgMC0yMC41IDcuMy0yMC41IDE3LjYgMCAxMi41IDExLjUgMTUuNCAxNy45IDE3LjIgNi4xIDIgMTMuMiAzLjMgMTMuMiA4LjcgMCA0LTMuNSA3LjEtOS4yIDcuMS02LjkgMC0xMy41LTIuMi0xOS02LjQtLjEtLjEtLjMtLjItLjUtLjJzLS40IDAtLjUgLjEtLjMgLjItLjQgLjMtLjIgLjMtLjIgLjVsLTIuMyA3LjVjLS41IC45IC4yIDEuMiAuMiAxLjQgMS43IDEuNCAxMC4zIDYuNiAyMi44IDYuNmwwIDB6TTM1Ny42IDIyNGMwLS43LS4yLTEuMi0xLjItMS4ybC0xMS44IDBjMC0uMSAuOS04LjkgNC41LTEyLjUgNC4yLTQuMiAxMS44LTEuNiAxMi0xLjYgMS4yIC41IDEuNCAwIDEuNi0uNWwyLjgtNy44Yy43LS45IDAtMS4yLS4yLTEuNC01LjEtMi0xNy40LTIuOS0yNC41IDQuMi01LjUgNS41LTcgMTMuOS04IDE5LjVsLTguNSAwYy0uMyAwLS42IC4yLS44IC40cy0uMyAuNS0uNCAuOGwtMS40IDcuOGMwIC43IC4yIDEuMiAxLjIgMS4ybDguMiAwYy04LjUgNDcuOS04LjcgNTAuMi0xMC4zIDU1LjUtMS4xIDMuNi0zLjMgNi45LTUuOSA3LjgtLjEgMC0zLjkgMS43LTkuNi0uMiAwIDAtLjktLjUtMS40IC43LS4yIC43LTIuNiA2LjgtMi44IDcuNXMwIDEuNCAuNSAxLjRjNS4xIDIgMTMgMS44IDE3LjkgMCA2LjMtMi4zIDkuNy03LjkgMTEuNS0xMi45IDIuOC03LjcgMi44LTkuOCAxMS44LTU5LjdsMTIuMiAwYy4zIDAgLjYtLjIgLjgtLjRzLjMtLjUgLjQtLjhsMS40LTcuOHpNNDExIDI0MGMtLjYtMS43LTUuMS0xOC4xLTI1LjItMTguMS0xNS4yIDAtMjMgMTAtMjUuMiAxOC4xLTEgMy0zLjIgMTQgMCAyMy41IC4xIC4zIDQuNCAxOC4xIDI1LjIgMTguMSAxNSAwIDIyLjktOS42IDI1LjItMTguMSAzLjItOS42IDEtMjAuNSAwLTIzLjV6bTQ1LjQtMTYuN2MtNS0xLjctMTYuNi0xLjktMjIuMSA1LjRsMC00LjVjMC0uMiAwLS4zLS4xLS41cy0uMS0uMy0uMy0uNC0uMi0uMi0uNC0uMy0uMy0uMS0uNS0uMWwtOS40IDBjLS4yIDAtLjMgMC0uNSAuMXMtLjMgLjEtLjQgLjMtLjIgLjItLjMgLjQtLjEgLjMtLjEgLjVsMCA1NS4zYzAgLjIgMCAuMyAuMSAuNXMuMSAuMyAuMyAuNCAuMiAuMiAuNCAuMyAuMyAuMSAuNSAuMWw5LjYgMGMuMiAwIC4zIDAgLjUtLjFzLjMtLjEgLjQtLjMgLjItLjIgLjMtLjQgLjEtLjMgLjEtLjVsMC0yNy44YzAtMi45IC4xLTExLjQgNC41LTE1LjEgNC45LTQuOSAxMi0zLjQgMTMuNC0zLjEgLjMgMCAuNi0uMSAuOC0uM3MuNC0uNCAuNi0uN2MxLjItMi42IDIuMi01LjMgMy4xLTggLjEtLjMgLjEtLjUgMC0uOHMtLjMtLjUtLjUtLjZsMCAwem00Ni44IDU0LjFsLTIuMS03LjNjLS41LTEuMi0xLjQtLjctMS40LS43LTQuMiAxLjgtMTAuMSAxLjktMTEuMyAxLjktNC42IDAtMTcuMi0xLjEtMTcuMi0xOS44IDAtNi4yIDEuOC0xOS44IDE2LjUtMTkuOCAzLjktLjEgNy44IC41IDExLjUgMS42IDAgMCAuOSAuNSAxLjItLjcgLjktMi42IDEuNi00LjUgMi42LTcuNSAuMi0uOS0uNS0xLjItLjctMS4yLTExLjYtMy45LTIyLjMtMi41LTI3LjggMC0xLjYgLjctMTYuMiA2LjUtMTYuMiAyNy41IDAgMi45LS42IDMwLjEgMjguOSAzMC4xIDUuMyAwIDEwLjYtMSAxNS41LTIuOCAuMi0uMiAuNC0uNCAuNS0uNnMuMS0uNSAwLS44bDAgMHptNTMuOS0zOS41Yy0uOC0zLTUuNC0xNi4yLTIyLjMtMTYuMi0xNiAwLTIzLjUgMTAuMS0yNS42IDE4LjYtMS4yIDMuOC0xLjcgNy44LTEuNyAxMS44IDAgMjUuOSAxOC44IDI5LjQgMjkuOSAyOS40IDEwLjggMCAxNi41LTIuMyAxOC42LTMuOCAuNS0uMiAuNy0uNyAuMi0xLjlsLTIuNC02LjhjLS4xLS4zLS4zLS41LS42LS42cy0uNi0uMi0uOC0uMWMtMi42IC45LTYuMyAyLjgtMTUuMyAyLjgtMTcuNCAwLTE2LjktMTQuNy0xNi45LTE2LjdsMzcuMiAwYy4zIDAgLjUtLjEgLjctLjNzLjQtLjQgLjQtLjdjLS4yIDAgLjktNy4xLTEuNC0xNS41bDAgMHptLTIzLjMtNi40Yy0xMC4zIDAtMTMgOS0xMy42IDE0LjFsMjYuNCAwYy0uOS0xMS45LTcuNi0xNC4xLTEyLjctMTQuMWwwIDB6Il19LGZjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzb3VyY2V0cmVlIixpY29uOls0NDgsNTEyLFtdLCJmN2QzIiwiTTQyNy40IDIwM2MwLTExMi4xLTkwLjktMjAzLTIwMy0yMDMtMTEyLjEtLjItMjAzIDkwLjYtMjAzLjIgMjAyLjYtLjEgNDMgMTMuNSA4NC44IDM4LjcgMTE5LjZzNjAuOSA2MC42IDEwMS44IDczLjhsMCAxMDEuN2MwIDMuOCAxLjUgNy40IDQuMiAxMC4xczYuMyA0LjIgMTAuMSA0LjJsOTYuNCAwYzMuOCAwIDcuNC0xLjUgMTAuMS00LjJzNC4yLTYuMyA0LjItMTAuMWwwLTEwMS42YzQwLjgtMTMuMiA3Ni41LTM5IDEwMS43LTczLjdzMzguOS03Ni41IDM5LTExOS40em0tMjcxLjYgMGMwLTkwLjggMTM3LjMtOTAuOCAxMzcuMyAwLS4xIDg5LjktMTM3LjMgOTEtMTM3LjMgMHoiXX0sdWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmtlZGluLWluIixpY29uOls0NDgsNTEyLFtdLCJmMGUxIiwiTTEwMC4zIDQ0OGwtOTIuOSAwIDAtMjk5LjEgOTIuOSAwIDAgMjk5LjF6TTUzLjggMTA4LjFDMjQuMSAxMDguMSAwIDgzLjUgMCA1My44IDAgMzkuNSA1LjcgMjUuOSAxNS44IDE1LjhzMjMuOC0xNS44IDM4LTE1LjggMjcuOSA1LjcgMzggMTUuOCAxNS44IDIzLjggMTUuOCAzOGMwIDI5LjctMjQuMSA1NC4zLTUzLjggNTQuM3pNNDQ3LjkgNDQ4bC05Mi43IDAgMC0xNDUuNmMwLTM0LjctLjctNzkuMi00OC4zLTc5LjItNDguMyAwLTU1LjcgMzcuNy01NS43IDc2LjdsMCAxNDguMS05Mi44IDAgMC0yOTkuMSA4OS4xIDAgMCA0MC44IDEuMyAwYzEyLjQtMjMuNSA0Mi43LTQ4LjMgODcuOS00OC4zIDk0IDAgMTExLjMgNjEuOSAxMTEuMyAxNDIuM2wwIDE2NC4zLS4xIDB6Il19LHBjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJodG1sNSIsaWNvbjpbMzg0LDUxMixbXSwiZjEzYiIsIk0wIDMyTDM0LjkgNDI3LjggMTkxLjUgNDgwIDM0OS4xIDQyNy44IDM4NCAzMiAwIDMyek0zMDguMiAxNTkuOWwtMTgzLjggMCA0LjEgNDkuNCAxNzUuNiAwLTEzLjYgMTQ4LjQtOTcuOSAyNyAwIC4zLTEuMSAwLTk4LjctMjcuMy02LTc1LjggNDcuNyAwIDMuNSAzOC4xIDUzLjUgMTQuNSA1My43LTE0LjUgNi02Mi4yLTE2Ni45IDAtMTIuOC0xNDUuNiAyNDEuMSAwLTQuNCA0Ny43eiJdfSxoY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicnVzdCIsaWNvbjpbNTEyLDUxMixbXSwiZTA3YSIsIk01MDguNSAyNDkuOGwtMjEuOC0xMy41Yy0uMi0yLS4zLTMuOS0uNS01LjlsMTguNy0xNy41Yy45LS45IDEuNi0xLjkgMi0zLjFzLjUtMi41IC4yLTMuNy0uOC0yLjQtMS42LTMuMy0xLjgtMS43LTMtMi4xbC0yNC05Yy0uNS0xLjktMS4xLTMuOC0xLjctNS42bDE1LTIwLjhjLjctMSAxLjItMi4yIDEuMy0zLjRzMC0yLjUtLjUtMy43LTEuMi0yLjItMi4yLTIuOS0yLjEtMS4zLTMuNC0xLjVsLTI1LjQtNC4yYy0uOS0xLjctMS44LTMuNC0yLjctNS4ybDEwLjctMjMuNGMuNS0xLjEgLjctMi40IC42LTMuNnMtLjUtMi40LTEuMi0zLjUtMS42LTEuOS0yLjgtMi41LTIuNC0uOC0zLjYtLjhsLTI1LjggLjljLTEuMi0xLjUtMi40LTIuOS0zLjYtNC40TDQzOSA4MS44Yy4zLTEuMiAuMy0yLjUtLjEtMy43cy0xLTIuMy0xLjktMy4yLTItMS41LTMuMi0xLjktMi41LS40LTMuNy0uMUw0MDUgNzguOWMtMS40LTEuMi0yLjktMi40LTQuNC0zLjZsLjktMjUuOGMuMS0xLjMtLjItMi41LS44LTMuNnMtMS40LTIuMS0yLjUtMi44LTIuMi0xLjEtMy41LTEuMi0yLjUgLjEtMy43IC42TDM2Ny43IDUzLjJjLTEuNy0uOS0zLjQtMS44LTUuMS0yLjdsLTQuMi0yNS40Yy0uMi0xLjItLjctMi40LTEuNS0zLjRzLTEuOC0xLjctMi45LTIuMi0yLjQtLjctMy43LS41LTIuNCAuNi0zLjQgMS4zTDMyNiAzNS4zYy0xLjktLjYtMy44LTEuMS01LjYtMS43bC05LTI0Yy0uNC0xLjItMS4yLTIuMi0yLjEtM3MtMi4xLTEuNC0zLjMtMS42LTIuNS0uMi0zLjcgLjItMi4zIDEuMS0zLjEgMkwyODEuNiAyNS45Yy0yLS4yLTMuOS0uNC01LjktLjVMMjYyLjMgMy41Yy0uNy0xLjEtMS42LTEuOS0yLjctMi42cy0yLjMtLjktMy42LS45LTIuNSAuMy0zLjYgLjktMiAxLjUtMi43IDIuNkwyMzYuMiAyNS4zYy0yIC4yLTMuOSAuMy01LjkgLjZMMjEyLjkgNy4xYy0uOS0uOS0xLjktMS42LTMuMS0ycy0yLjUtLjUtMy43LS4yLTIuNCAuOC0zLjMgMS42LTEuNyAxLjgtMi4xIDNsLTkgMjRjLTEuOSAuNi0zLjggMS4xLTUuNyAxLjdsLTIwLjgtMTVjLTEtLjctMi4yLTEuMi0zLjQtMS4zcy0yLjUgMC0zLjcgLjUtMi4yIDEuMi0yLjkgMi4yLTEuMyAyLjEtMS41IDMuNGwtNC4yIDI1LjRjLTEuNyAuOS0zLjQgMS44LTUuMiAyLjdMMTIwLjkgNDIuNmMtMS4xLS41LTIuNC0uNy0zLjctLjZzLTIuNSAuNS0zLjUgMS4yLTEuOSAxLjctMi41IDIuOC0uOCAyLjQtLjggMy42bC45IDI1LjhjLTEuNSAxLjItMyAyLjQtNC40IDMuNkw4MS44IDczYy0xLjItLjMtMi41LS4zLTMuNyAuMXMtMi4zIDEtMy4yIDEuOS0xLjUgMi0xLjkgMy4yLS40IDIuNS0uMSAzLjdMNzguOSAxMDdjLTEuMiAxLjQtMi40IDIuOS0zLjYgNC40bC0yNS44LS45Yy0xLjMgMC0yLjUgLjItMy42IC44cy0yLjEgMS40LTIuOCAyLjQtMS4xIDIuMi0xLjIgMy41IC4xIDIuNSAuNiAzLjZsMTAuNyAyMy40Yy0uOSAxLjctMS44IDMuNC0yLjcgNS4ybC0yNS40IDQuMWMtMS4yIC4yLTIuNCAuNy0zLjQgMS41cy0xLjcgMS44LTIuMiAyLjktLjcgMi40LS41IDMuNyAuNiAyLjQgMS4zIDMuNGwxNSAyMC44Yy0uNiAxLjktMS4xIDMuOC0xLjcgNS43bC0yNCA5Yy0xLjIgLjQtMi4yIDEuMi0zIDIuMXMtMS40IDIuMS0xLjYgMy4zLS4yIDIuNSAuMiAzLjcgMS4xIDIuMyAyIDMuMWwxOC43IDE3LjVjLS4yIDItLjQgMy45LS42IDUuOUwzLjUgMjQ5LjhjLTEuMSAuNy0xLjkgMS42LTIuNiAyLjdzLS45IDIuMy0uOSAzLjYgLjMgMi41IC45IDMuNiAxLjUgMiAyLjYgMi43bDIxLjggMTMuNWMuMiAyIC4zIDMuOSAuNiA1LjlMNy4xIDI5OS4xYy0uOSAuOS0xLjYgMS45LTIgMy4xcy0uNSAyLjUtLjIgMy43IC44IDIuNCAxLjYgMy4zIDEuOCAxLjcgMyAyLjFsMjQgOWMuNiAxLjkgMS4xIDMuOCAxLjcgNS42bC0xNSAyMC44Yy0uNyAxLTEuMiAyLjItMS4zIDMuNHMwIDIuNSAuNSAzLjcgMS4yIDIuMiAyLjIgMi45IDIuMSAxLjMgMy40IDEuNWwyNS40IDQuMmMuOSAxLjcgMS44IDMuNCAyLjcgNS4xTDQyLjYgMzkxLjFjLS41IDEuMS0uNyAyLjQtLjYgMy42cy41IDIuNSAxLjIgMy41Yy43IDEuMSAxLjYgMS45IDIuNyAyLjVzMi40IC44IDMuNiAuOGwyNS44LS45YzEuMiAxLjUgMi40IDIuOSAzLjYgNC40TDczIDQzMC4yYy0uMyAxLjItLjMgMi41IC4xIDMuN3MxIDIuMyAxLjkgMy4yIDIgMS41IDMuMiAxLjkgMi41IC40IDMuNyAuMWwyNS4yLTUuOWMxLjUgMS4yIDIuOSAyLjQgNC40IDMuNmwtLjkgMjUuOGMwIDEuMyAuMiAyLjUgLjggMy42czEuNCAyLjEgMi41IDIuOCAyLjIgMS4xIDMuNSAxLjIgMi41LS4xIDMuNi0uNmwyMy40LTEwLjdjMS43IC45IDMuNCAxLjggNS4xIDIuN2w0LjIgMjUuNGMuMiAxLjIgLjcgMi40IDEuNSAzLjRzMS44IDEuOCAyLjkgMi4yIDIuNCAuNyAzLjcgLjUgMi40LS42IDMuNC0xLjNsMjAuOC0xNWMxLjkgLjYgMy44IDEuMSA1LjYgMS43bDkgMjRjLjQgMS4yIDEuMiAyLjIgMi4xIDNzMi4xIDEuNCAzLjMgMS42IDIuNSAuMiAzLjctLjIgMi4zLTEuMSAzLjEtMmwxNy41LTE4LjdjMiAuMiAzLjkgLjQgNS45IC42bDEzLjUgMjEuOGMuNyAxLjEgMS42IDEuOSAyLjcgMi42czIuMyAuOSAzLjYgLjkgMi41LS4zIDMuNi0uOSAyLTEuNSAyLjctMi42bDEzLjUtMjEuOGMyLS4yIDMuOS0uMyA1LjktLjZsMTcuNSAxOC43Yy45IC45IDEuOSAxLjYgMy4xIDJzMi41IC41IDMuNyAuMiAyLjQtLjggMy4zLTEuNiAxLjctMS44IDIuMS0zbDktMjRjMS45LS42IDMuOC0xLjEgNS42LTEuN2wyMC44IDE1YzEgLjcgMi4yIDEuMiAzLjQgMS4zczIuNSAwIDMuNy0uNSAyLjItMS4yIDIuOS0yLjIgMS4zLTIuMSAxLjUtMy40bDQuMi0yNS40YzEuNy0uOSAzLjQtMS44IDUuMS0yLjdsMjMuNCAxMC43YzEuMSAuNSAyLjQgLjcgMy42IC42czIuNC0uNSAzLjUtMS4yIDEuOS0xLjYgMi41LTIuOCAuOC0yLjQgLjgtMy42bC0uOS0yNS44YzEuNS0xLjIgMi45LTIuNCA0LjQtMy42bDI1LjIgNS45YzEuMiAuMyAyLjUgLjMgMy43LS4xczIuMy0xIDMuMi0xLjkgMS41LTIgMS45LTMuMiAuNC0yLjUgLjEtMy43TDQzMy4xIDQwNWMxLjItMS40IDIuNC0yLjkgMy42LTQuNGwyNS44IC45YzEuMyAuMSAyLjUtLjIgMy42LS44czIuMS0xLjQgMi44LTIuNWMuNy0xIDEuMS0yLjIgMS4yLTMuNXMtLjEtMi41LS42LTMuNmwtMTAuNy0yMy40Yy45LTEuNyAxLjgtMy40IDIuNy01LjFsMjUuNC00LjJjMS4yLS4yIDIuNC0uNyAzLjQtMS41czEuOC0xLjggMi4yLTIuOSAuNy0yLjQgLjUtMy43LS42LTIuNC0xLjMtMy40bC0xNS0yMC44Yy42LTEuOSAxLjEtMy44IDEuNy01LjZsMjQtOWMxLjItLjQgMi4yLTEuMiAzLTIuMXMxLjQtMi4xIDEuNi0zLjMgLjItMi41LS4yLTMuNy0xLjEtMi4zLTItMy4xbC0xOC43LTE3LjVjLjItMS45IC40LTMuOSAuNi01LjlsMjEuOC0xMy41YzEuMS0uNyAxLjktMS42IDIuNi0yLjdzLjktMi4zIC45LTMuNi0uMy0yLjUtLjktMy42LTEuNS0yLTIuNi0yLjdsMCAwem0tMTUxIDEyOS4xYy0zLjYtLjgtNy40LS4xLTEwLjUgMS45cy01LjMgNS4yLTYgOC44bC03LjYgMzUuN2MtMjQuNiAxMS4xLTUxLjMgMTYuOC03OC4zIDE2LjdzLTUzLjYtNi4xLTc4LjEtMTcuNGwtNy42LTM1LjdjLS40LTEuOC0xLjEtMy41LTIuMS01cy0yLjQtMi44LTMuOS0zLjgtMy4yLTEuNy01LTItMy42LS4zLTUuNCAuMWwtMzEuNSA2LjhjLTUuOC02LTExLjMtMTIuNS0xNi4zLTE5LjJsMTUzLjIgMGMxLjcgMCAyLjktLjMgMi45LTEuOWwwLTU0LjJjMC0xLjYtMS4yLTEuOS0yLjktMS45bC00NC44IDAgMC0zNC40IDQ4LjUgMGM0LjQgMCAyMy43IDEuMyAyOS44IDI1LjkgMS45IDcuNSA2LjIgMzIuMSA5LjEgNDAgMi45IDguOCAxNC42IDI2LjUgMjcuMSAyNi41bDc5IDBjLTUuMyA3LjEtMTEuMSAxMy44LTE3LjMgMjAuMWwtMzIuMS02Ljl6bTI1LjggMzQuNWMwIDMtLjkgNi0yLjYgOC41cy00IDQuNS02LjggNS42LTUuOCAxLjUtOC44IC45LTUuNy0yLTcuOC00LjItMy42LTQuOC00LjItNy44LS4zLTYgLjgtOC44IDMuMS01LjIgNS42LTYuOSA1LjQtMi42IDguNS0yLjZsLjQgMGM0IC4xIDcuNyAxLjggMTAuNSA0LjZzNC4zIDYuNyA0LjMgMTAuNmwuMSAwem0tMjI1LjYtLjdjMCAzLS45IDYtMi42IDguNXMtNC4xIDQuNS02LjggNS42LTUuOCAxLjUtOC44IC45LTUuNy0yLTcuOC00LjItMy42LTQuOC00LjItNy44LS4zLTYgLjktOC44IDMuMS01LjIgNS42LTYuOCA1LjQtMi42IDguNS0yLjZsLjUgMGM0IC4xIDcuNyAxLjggMTAuNSA0LjZzNC4zIDYuNyA0LjMgMTAuNmwuMSAwek02OS42IDIzNC4ybDMyLjgtMTQuNmMxLjctLjcgMy4yLTEuOCA0LjQtMy4xczIuMi0yLjkgMi45LTQuNiAxLTMuNSAuOS01LjMtLjUtMy42LTEuMi01LjNsLTYuOC0xNS4yIDI2LjYgMCAwIDExOS43LTUzLjYgMGMtNi42LTIzLjItOC43LTQ3LjYtNi4xLTcxLjZ6TTU4LjMgMTk4LjFjMC0yIC40LTQgMS4yLTUuOHMxLjktMy41IDMuMy00LjkgMy4xLTIuNSA0LjktMy4zIDMuOC0xLjIgNS44LTEuMmwuNSAwYzMgLjEgNS45IDEgOC4zIDIuOHM0LjMgNC4xIDUuNCA2LjkgMS4zIDUuOCAuNyA4LjgtMi4xIDUuNi00LjMgNy43LTQuOSAzLjUtNy44IDQuMS02IC4yLTguNy0uOS01LjEtMy4xLTYuOC01LjYtMi41LTUuNC0yLjUtOC40bDAgMHptMTU1LjIgMjQuNWwwLTM1LjMgNjMuMyAwYzMuMyAwIDIzLjEgMy44IDIzLjEgMTguNiAwIDEyLjMtMTUuMiAxNi43LTI3LjcgMTYuN2wtNTguNyAwek0zOTkgMzA2LjdjLTkuOCAxLjEtMjAuNi00LjEtMjItMTAuMS01LjgtMzIuNS0xNS40LTM5LjQtMzAuNi01MS40IDE4LjktMTIgMzguNS0yOS42IDM4LjUtNTMuMyAwLTI1LjUtMTcuNS00MS42LTI5LjQtNDkuNS0xNi44LTExLTM1LjMtMTMuMi00MC4zLTEzLjJsLTE5OC45IDBjMjcuNS0zMC43IDY0LjQtNTEuNSAxMDQuOS01OS4ybDIzLjUgMjQuNmMxLjMgMS4zIDIuOCAyLjQgNC40IDMuMXMzLjUgMS4xIDUuMyAxLjIgMy42LS4zIDUuMy0uOSAzLjItMS43IDQuNi0yLjlsMjYuMy0yNWMyNi44IDUgNTIuMSAxNS44IDc0LjMgMzEuNnM0MC42IDM2LjIgNTQuMSA1OS45bC0xOCA0MC42Yy0xLjUgMy40LTEuNSA3LjItLjIgMTAuNnMzLjkgNi4yIDcuMyA3LjdsMzQuNiAxNS4zYzEuMSAxMC44IDEuMiAyMS43IC40IDMyLjVsLTE5LjMgMGMtMS45IDAtMi43IDEuMy0yLjcgMy4xbDAgOC44YzAgMjAuOC0xMS43IDI1LjMtMjIgMjYuNXpNMjQwIDYwLjJjMC00IDEuNi03LjkgNC41LTEwLjdzNi43LTQuNSAxMC43LTQuNWwuNCAwYzMgLjEgNS45IDEgOC40IDIuOHM0LjMgNC4xIDUuNCA2LjkgMS4zIDUuOCAuNyA4LjgtMi4xIDUuNi00LjMgNy43LTQuOSAzLjUtNy44IDQtNiAuMi04LjctLjktNS4xLTMuMS02LjgtNS42LTIuNS01LjQtMi41LTguNHpNNDM2LjggMjE0Yy0yIDAtNC0uNC01LjgtMS4ycy0zLjUtMS45LTQuOS0zLjMtMi41LTMuMS0zLjMtNC45LTEuMi0zLjgtMS4yLTUuOCAuNC00IDEuMi01LjggMS45LTMuNSAzLjMtNC45IDMuMS0yLjUgNC45LTMuMyAzLjgtMS4yIDUuOC0xLjJsLjQgMGM0IC4xIDcuOSAxLjcgMTAuNyA0LjZzNC40IDYuOCA0LjMgMTAuOC0xLjcgNy45LTQuNiAxMC43LTYuOCA0LjQtMTAuOCA0LjN6Il19LG1jdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3JuYmlsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjU5MiIsIk03Ni44IDM3MC4zYzEgNy44LS40IDE1LjgtNC4xIDIyLjhzLTkuNiAxMi42LTE2LjcgMTYuMS0xNS4xIDQuNy0yMi45IDMuMy0xNS01LjEtMjAuNi0xMC43LTkuMi0xMi45LTEwLjUtMjAuNyAwLTE1LjggMy42LTIyLjkgOS4zLTEyLjggMTYuMy0xNi41IDE1LTUgMjIuOS0zLjljLTc4LjMtMTExLjMgNTItMTkwLjUgNTItMTkwLjUtNS45IDQzLTguMiA5MS4yLTguMiA5MS4yLTY3LjMgNDEuNSAuOSA2NC4xIDM5LjggNzIuOSA5LjkgMjcgMjcuOCA1MC4yIDUxLjQgNjYuN3M1MS42IDI1LjMgODAuMyAyNS4zYzEuOSAwIDMuOC0uMiA1LjctLjNsLjEgMTguOWMtOTkuMiAxLjQtMTU4LjctMjkuMS0xODguOS01MS42em0xMDgtMzI3LjdjLjktNy4yLS4yLTE0LjYtMy40LTIxLjItMy02LjItNy42LTExLjUtMTMuNC0xNS4zcy0xMi41LTUuOS0xOS40LTYuMi0xMy44IDEuNC0xOS44IDQuNy0xMS4xIDguMy0xNC41IDE0LjMtNS4yIDEyLjgtNSAxOS43IDIuMiAxMy43IDUuOSAxOS41IDguOSAxMC42IDE1LjEgMTMuNiAxMy4xIDQuNCAyMCAzLjljLTIyLjYgMjkuOS01My44IDg5LjYtNTIuNCAxOTBsMjEuOC0uMmMwLS45LS4xLTEuOC0uMS0yLjcgMC0yOCA4LjQtNTUuMyAyNC4xLTc4LjVzMzcuOS00MS4yIDYzLjgtNTEuNmM4LTM3LjcgMzAuNy0xMTQuMyA3My44LTQ0LjMgMCAwIDQ4LjEgMi40IDkxLjIgOC4yIDAgMC03Ny44LTEyOC0xODcuNi01NC4xbDAgMHpNNDg5IDE3Ni44YzYuMy0zIDExLjctNy43IDE1LjUtMTMuNnM1LjktMTIuNyA2LjEtMTkuOC0xLjYtMTQtNS4yLTIwLTguNy0xMS0xNC45LTE0LjMtMTMuMi00LjgtMjAuMi00LjQtMTMuOCAyLjgtMTkuNSA2LjktMTAuMiA5LjYtMTMgMTYuMS0zLjcgMTMuNi0yLjcgMjAuNWMtMzEuNy0yMS45LTg5LjgtNDkuMS0xODMuNC00Ny43bC4xIDIyLjVjMi43LS4yIDUuNC0uNCA4LjEtLjQgMjguMSAwIDU1LjYgOC41IDc4LjkgMjQuM3M0MS4yIDM4LjMgNTEuNiA2NC41YzM5LjEgOSAxMDUuMSAzMS42IDM4LjUgNzIuNSAwIDAtMi4zIDQ4LjEtOC4yIDkxLjIgMCAwIDEzMy40LTgxLjIgNDktMTk0LjYgNi42IC42IDEzLjMtLjYgMTkuMy0zLjVsMCAwek0zNzQuNCA0MzYuMmMyMS40LTMyLjUgNDYuNC04OS43IDQ1LjEtMTc5LjdsLTE5LjUgLjFjLjEgMi4xIC4zIDQuMSAuMyA2LjIgMCAyOC42LTguOCA1Ni41LTI1LjEgODBzLTM5LjUgNDEuNC02Ni4zIDUxLjRjLTguOSAzOS0zMS40IDEwNi43LTcyLjggMzkuNSAwIDAtNDguMS0yLjMtOTEuMi04LjIgMCAwIDc5LjkgMTMxLjMgMTkxLjkgNTEgLjMgNC45IDEuNSA5LjYgMy42IDE0IDIuOSA2LjEgNy41IDExLjQgMTMuMSAxNS4xczEyLjIgNiAxOSA2LjQgMTMuNi0xLjEgMTkuNi00LjIgMTEuMS03LjggMTQuNy0xMy42IDUuNi0xMi40IDUuNy0xOS4yLTEuNS0xMy41LTQuOC0xOS40LTguMi0xMC45LTE0LjEtMTQuMy0xMi42LTUuMi0xOS40LTUuMWwwLS4xeiJdfSxnY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGhwIixpY29uOls2NDAsNTEyLFtdLCJmNDU3IiwiTTMyMCAxMDQuNWMxNzEuNCAwIDMwMy4yIDcyLjIgMzAzLjIgMTUxLjVTNDkxLjMgNDA3LjUgMzIwIDQwNy41QzE0OC42IDQwNy41IDE2LjggMzM1LjMgMTYuOCAyNTZTMTQ4LjcgMTA0LjUgMzIwIDEwNC41em0wLTE2LjhDMTQzLjMgODcuNyAwIDE2MyAwIDI1NlMxNDMuMyA0MjQuMyAzMjAgNDI0LjMgNjQwIDM0OSA2NDAgMjU2IDQ5Ni43IDg3LjcgMzIwIDg3Ljd6TTIxOC4yIDI0Mi41Yy03LjkgNDAuNS0zNS44IDM2LjMtNzAuMSAzNi4zbDEzLjctNzAuNmMzOCAwIDYzLjgtNC4xIDU2LjQgMzQuM3pNOTcuNCAzNTAuM2wzNi43IDAgOC43LTQ0LjhjNDEuMSAwIDY2LjYgMyA5MC4yLTE5LjEgMjYuMS0yNCAzMi45LTY2LjcgMTQuMy04OC4xLTkuNy0xMS4yLTI1LjMtMTYuNy00Ni41LTE2LjdsLTcwLjcgMC0zMi43IDE2OC43ek0yODMuMSAxMzYuN2wzNi41IDAtOC43IDQ0LjhjMzEuNSAwIDYwLjctMi4zIDc0LjggMTAuNyAxNC44IDEzLjYgNy43IDMxLTguMyAxMTMuMWwtMzcgMGMxNS40LTc5LjQgMTguMy04NiAxMi43LTkyLTUuNC01LjgtMTcuNy00LjYtNDcuNC00LjZsLTE4LjggOTYuNi0zNi41IDAgMzIuNy0xNjguNnpNNTA1IDI0Mi41Yy04IDQxLjEtMzYuNyAzNi4zLTcwLjEgMzYuM2wxMy43LTcwLjZjMzguMiAwIDYzLjgtNC4xIDU2LjQgMzQuM3pNMzg0LjIgMzUwLjNsMzYuOCAwIDguNy00NC44YzQzLjIgMCA2Ny4xIDIuNSA5MC4yLTE5LjEgMjYuMS0yNCAzMi45LTY2LjcgMTQuMy04OC4xLTkuNy0xMS4yLTI1LjMtMTYuNy00Ni41LTE2LjdsLTcwLjcgMC0zMi44IDE2OC43eiJdfSx4Y3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlzcXVzIixpY29uOls1NzYsNTEyLFtdLCJlN2Q1IiwiTTI5MC4yIDUxMmMtNjIuNiAwLTExOS45LTIyLjktMTY0LjItNjAuOEwxNyA0NjYuMSA1OS4xIDM2Mi4yYy0xNC43LTMyLjQtMjIuOS02OC4zLTIyLjktMTA2LjIgMC0xNDEuNCAxMTMuNy0yNTYgMjU0LTI1NiAxNDAuMyAwIDI1NCAxMTQuNiAyNTQgMjU2IDAgMTQxLjQtMTEzLjcgMjU2LTI1NCAyNTZ6TTQyOC45IDI1NS4zbDAtLjdDNDI4LjkgMTgwLjcgMzc2LjggMTI4IDI4NyAxMjhsLTk3IDAgMCAyNTYgOTUuNiAwYzkwLjUgMCAxNDMuNC01NC45IDE0My40LTEyOC43ek0yODggMzIxLjFsLTI4LjQgMCAwLTEzMC4yIDI4LjQgMGM0MS43IDAgNjkuMyAyMy44IDY5LjMgNjQuN2wwIC43YzAgNDEuMy0yNy43IDY0LjctNjkuMyA2NC43eiJdfSxiY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiNTAwcHgiLGljb246WzM4NCw1MTIsW10sImYyNmUiLCJNNzEuOCAzNDQuM2MtNi41LTE0LjItNi45LTE4LjMgNy40LTIzLjEgMjUuNi04IDggOS4yIDQzLjIgNDkuMmwuMyAwIDAtOTMuOWMxLjItNTAuMiA0NC05Mi4yIDk3LjctOTIuMiA1My45IDAgOTcuNyA0My41IDk3LjcgOTYuOCAwIDYzLjQtNjAuOCAxMTMuMi0xMjguNSA5My4zLTEwLjUtNC4yLTIuMS0zMS43IDguNS0yOC42IDUzIDAgODkuNC0xMC4xIDg5LjQtNjQuNCAwLTYxLTc3LjEtODkuNi0xMTYuOS00NC42LTIzLjUgMjYuNC0xNy42IDQyLjEtMTcuNiAxNTcuNiA1MC43IDMxIDExOC4zIDIyIDE2MC40LTIwLjEgMjQuOC0yNC44IDM4LjUtNTggMzguNS05MyAwLTM1LjItMTMuOC02OC4yLTM4LjgtOTMuMy0yNC44LTI0LjgtNTcuOC0zOC41LTkzLjMtMzguNVMxNTEgMTYzLjMgMTI2LjMgMTg4Yy0uMyAuMy0xNiAxNi41LTIxLjIgMjMuOWwtLjUgLjZjLTMuMyA0LjctNi4zIDkuMS0yMC4xIDYuMS02LjktMS43LTE0LjMtNS44LTE0LjMtMTEuOEw3MC4yIDIwYzAtNSAzLjktMTAuNSAxMC41LTEwLjVMMzIyIDkuNWM4LjMgMCA4LjMgMTEuNiA4LjMgMTUuMSAwIDMuOSAwIDE1LjEtOC4zIDE1LjFsLTIyMy4yIDAgMCAxMzIuOSAuMyAwYzEwNC4yLTEwOS44IDI4Mi44LTM2IDI4Mi44IDEwOC45IDAgMTc4LjEtMjQ0LjggMjIwLjMtMzEwLjEgNjIuOHpNMTM1LjEgODMuNWMtLjUgNC4yIDQuNiAyNC41IDE0LjYgMjAuNiAxMjQuOC00Ny41IDIwMi44IDQwLjQgMjA5LjQgNDAuNCA0LjggMCAyMi44LTE1LjMgMTQuMy0yMi44LTkzLjItODktMjM0LjUtNTctMjM4LjMtMzguMnpNMzYxLjUgNDE0LjdjLTExMCAxMDkuOS0yOTkgNjAuOC0zMzItMTA0LjIgMC0xMi4yLTMwLjQtNy40LTI4LjkgMy4zIDI0IDE3My40IDI0NiAyNTYuOSAzODEuNiAxMjEuMyA2LjktNy44LTEyLjYtMjguNC0yMC43LTIwLjR6TTE4Mi4xIDMwNi42YzAgNCA0LjMgNy4zIDUuNSA4LjUgMyAzIDYuMSA0LjQgOC41IDQuNCAzLjggMCAyLjYgLjIgMjIuMy0xOS41IDE5LjYgMTkuMyAxOS4xIDE5LjUgMjIuMyAxOS41IDUuNCAwIDE4LjUtMTAuNCAxMC43LTE4LjJsLTE3LjMtMTcuMyAxOC4yLTE4LjJjNi4zLTYuOC0xMC4xLTIxLjgtMTYuMi0xNS43TDIxOC4yIDI2OGMtMTguNi0xOC44LTE4LjQtMTkuNS0yMS41LTE5LjUtNSAwLTE4IDExLjctMTIuNCAxNy4zTDIwMi41IDI4NGMtMTguMSAxNy45LTIwLjQgMTkuMi0yMC40IDIyLjZ6Il19LHZjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZmZpbGlhdGV0aGVtZSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YiIsIk0xNTkuNyAyMzcuNEMxMDguNCAzMDguMyA0My4xIDM0OC4yIDE0IDMyNi42LTE1LjIgMzA0LjkgMi44IDIzMCA1NC4yIDE1OS4xIDEwNS41IDg4LjIgMTcwLjggNDguMyAxOTkuOSA2OS45czExLjEgOTYuNi00MC4yIDE2Ny41em0zNTEuMi01Ny4zYy03My44IDEyMy40LTE5MS45IDE4Ny43LTI2NC41IDE0My42LTI1LTE1LjItNDEuMy00MS4yLTQ5LTczLjgtMzMuNiA2NC44LTkyLjggMTEzLjgtMTY0LjEgMTMzLjIgNDkuOCA1OS4zIDEyNC4xIDk2LjkgMjA3IDk2LjkgMTUwIDAgMjcxLjYtMTIzLjEgMjcxLjYtMjc0LjkgLjEtOC41LS4zLTE2LjgtMS0yNXoiXX0seWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZC1yaXZlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlMyIsIk0zNTMuMiAzMkw5NC44IDMyQzQyLjQgMzIgMCA3NC40IDAgMTI2LjhMMCAzODUuMkMwIDQzNy42IDQyLjQgNDgwIDk0LjggNDgwbDI1OC40IDBjNTIuNCAwIDk0LjgtNDIuNCA5NC44LTk0LjhsMC0yNTguNEM0NDggNzQuNCA0MDUuNiAzMiAzNTMuMiAzMnpNMTQ0LjkgMjAwLjlsMCA1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwwLTE1NC4yYzAtMTMuMiAxMC43LTIzLjkgMjMuOS0yMy45bDE1NC4yIDBjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bC01Ni4zIDBjLTEyLjMtLjYtMjQuNiAxMS42LTI0IDI0em0xNzYuMyA3MmwtNTYuMyAwYy0xMi4zLS42LTI0LjYgMTEuNi0yNCAyNGwwIDU2LjNjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bDAtMTU0LjJjMC0xMy4yIDEwLjctMjMuOSAyMy45LTIzLjlsMTU0LjIgMGMwIDI3LTIxLjkgNDguOS00OC45IDQ4Ljl6Il19LHhWPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR3aXR0ZXIiLGljb246WzUxMiw1MTIsW10sImYwOTkiLCJNNDU5LjQgMTUxLjdjLjMgNC41IC4zIDkuMSAuMyAxMy42IDAgMTM4LjctMTA1LjYgMjk4LjYtMjk4LjYgMjk4LjYtNTkuNSAwLTExNC43LTE3LjItMTYxLjEtNDcuMSA4LjQgMSAxNi42IDEuMyAyNS4zIDEuMyA0OS4xIDAgOTQuMi0xNi42IDEzMC4zLTQ0LjgtNDYuMS0xLTg0LjgtMzEuMi05OC4xLTcyLjggNi41IDEgMTMgMS42IDE5LjggMS42IDkuNCAwIDE4LjgtMS4zIDI3LjYtMy42LTQ4LjEtOS43LTg0LjEtNTItODQuMS0xMDNsMC0xLjNjMTQgNy44IDMwLjIgMTIuNyA0Ny40IDEzLjMtMjguMy0xOC44LTQ2LjgtNTEtNDYuOC04Ny40IDAtMTkuNSA1LjItMzcuNCAxNC4zLTUzIDUxLjcgNjMuNyAxMjkuMyAxMDUuMyAyMTYuNCAxMDkuOC0xLjYtNy44LTIuNi0xNS45LTIuNi0yNCAwLTU3LjggNDYuOC0xMDQuOSAxMDQuOS0xMDQuOSAzMC4yIDAgNTcuNSAxMi43IDc2LjcgMzMuMSAyMy43LTQuNSA0Ni41LTEzLjMgNjYuNi0yNS4zLTcuOCAyNC40LTI0LjQgNDQuOC00Ni4xIDU3LjggMjEuMS0yLjMgNDEuNi04LjEgNjAuNC0xNi4yLTE0LjMgMjAuOC0zMi4yIDM5LjMtNTIuNiA1NC4zeiJdfSx3Y3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFtdLCJmMjg2IiwiTTQ4OS41IDI4Ny45bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi42IDAgMC0xNzguM2MwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi42IDAgMC0zMmMwLTYtOC00LjYtMTEuNy00LjZsMC0zOGM4LjMtMiAxNy4xLTMuNCAyNS43LTMuNCAxMC45IDAgMjAuOSA0LjMgMzEuNCA0LjMgNC42IDAgMjcuNy0xLjEgMjcuNy04bDAtNjBjMC0yLjYtMi00LjYtNC42LTQuNi01LjEgMC0xNS4xIDQuMy0yNCA0LjMtOS43IDAtMjAuOS00LjMtMzIuNi00LjMtOCAwLTE2IDEuMS0yMy43IDIuOWwwLTQuOWM1LjQtMi42IDkuMS04LjMgOS4xLTE0LjMgMC0yMC43LTMxLjQtMjAuOC0zMS40IDAgMCA2IDMuNyAxMS43IDkuMSAxNC4zbDAgMTExLjdjLTMuNyAwLTExLjctMS40LTExLjcgNC42bDAgMzItMzYuNiAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuMyAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMTc4LjMtMzYuNiAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMjE5LjUgMTgyLjkgMCAwLTk2YzAtNzIuNiAxMDkuNy03Mi42IDEwOS43IDBsMCA5NiAxODIuOSAwIDAtMjE5LjVjLjEtMi42LTEuOS00LjYtNC41LTQuNnptLTI4OC4xLTQuNWMwIDIuNi0yIDQuNi00LjYgNC42bC0yNy40IDBjLTIuNiAwLTQuNi0yLTQuNi00LjZsMC02NGMwLTIuNiAyLTQuNiA0LjYtNC42bDI3LjQgMGMyLjYgMCA0LjYgMiA0LjYgNC42bDAgNjR6bTE0Ni40IDBjMCAyLjYtMiA0LjYtNC42IDQuNmwtMjcuNCAwYy0yLjYgMC00LjYtMi00LjYtNC42bDAtNjRjMC0yLjYgMi00LjYgNC42LTQuNmwyNy40IDBjMi42IDAgNC42IDIgNC42IDQuNmwwIDY0eiJdfSxNY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4ZXIiLGljb246WzQ0OCw1MTIsW10sImUwNTYiLCJNODIuNiA3Ni4xYy0zLjgtNS4xLTguNy05LjQtMTQuMi0xMi41cy0xMS43LTUuMS0xOC4xLTUuNy0xMi44IC4xLTE4LjggMi4yLTExLjYgNS4zLTE2LjMgOS42Yy0xNy42IDE2LjItMTkgNDMuNS00LjggNjIuOGw5MS44IDEyMy05Mi4zIDEyNC4xYy0xNC4yIDE5LjMtMTMuMSA0Ni42IDQuNyA2Mi44IDQuNyA0LjMgMTAuMyA3LjYgMTYuMyA5LjZzMTIuNSAyLjggMTguOCAyLjIgMTIuNS0yLjUgMTguMS01LjcgMTAuNC03LjQgMTQuMi0xMi41TDIxMC45IDI2Mi43YzEuNS0yLjEgMi4zLTQuNiAyLjMtNy4xcy0uOC01LTIuMy03LjFMODIuNiA3Ni4xek00MzguMiAzNzkuNmwtOTIuMy0xMjQuMSA5MS44LTEyM2MxNC4yLTE5LjIgMTIuOC00Ni42LTQuNy02Mi44LTQuNy00LjMtMTAuMy03LjYtMTYuMy05LjZzLTEyLjUtMi44LTE4LjgtMi4yLTEyLjUgMi41LTE4LjEgNS43LTEwLjQgNy40LTE0LjIgMTIuNWwtMTI4IDE3Mi4xYy0xLjUgMi4xLTIuMyA0LjYtMi4zIDcuMXMuOCA1IDIuMyA3LjFMMzY2IDQzNS45YzMuOCA1LjEgOC43IDkuNCAxNC4yIDEyLjVzMTEuNyA1LjEgMTguMSA1LjcgMTIuOC0uMSAxOC44LTIuMiAxMS42LTUuMyAxNi4zLTkuNmMxNy44LTE2LjIgMTktNDMuNSA0LjctNjIuOHoiXX0semN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imx5ZnQiLGljb246WzUxMiw1MTIsW10sImYzYzMiLCJNMCA4MS4xbDc3LjggMCAwIDIwOC43YzAgMzMuMSAxNSA1Mi44IDI3LjIgNjEtMTIuNyAxMS4xLTUxLjIgMjAuOS04MC4yLTIuOC0xNy0xNC0yNC44LTM3LjMtMjQuOC01OUwwIDgxLjF6TTQ4NS45IDI1NC42bDAtMjIgMjMuOCAwIDAtNzYuOC0yNi4xIDBjLTEwLjEtNDYuMy01MS4yLTgwLjctMTAwLjMtODAuNy01Ni42IDAtMTAyLjcgNDYtMTAyLjcgMTAyLjdsMCAxNzkuMmMxNiAyLjMgMzUuNC0uMyA1MS43LTE0IDE3LjEtMTQgMjQuOC0zNy4yIDI0LjgtNTlsMC02LjcgMzguOCAwIDAtNzYuOC0zOC44IDAgMC0yMy4zYzAtMzQuNiA1Mi4yLTM0LjYgNTIuMiAwbDAgNzcuMWMwIDU2LjYgNDYgMTAyLjcgMTAyLjcgMTAyLjdsMC03Ni41Yy0xNC41IDAtMjYuMS0xMS43LTI2LjEtMjUuOXptLTI5NC4zLTk5bDAgMTEzYzAgMTUuNC0yMy44IDE1LjQtMjMuOCAwbDAtMTEzLTc2LjggMCAwIDEzMi43YzAgMjMuOCA4IDU0IDQ1IDYzLjkgMzcgOS44IDU4LjItMTAuNiA1OC4yLTEwLjYtMi4xIDEzLjQtMTQuNSAyMy4zLTM0LjkgMjUuMy0xNS41IDEuNi0zNS4yLTMuNi00NS03LjhsMCA3MC4zYzI1LjEgNy41IDUxLjUgOS44IDc3LjYgNC43IDQ3LjEtOS4xIDc2LjgtNDguNCA3Ni44LTEwMC44bDAtMTc4LjItNzcuMSAwIDAgLjV6Il19LGtjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHBsZS1wYXkiLGljb246WzY0MCw1MTIsW10sImY0MTUiLCJNMTE2LjkgMTU4LjVjLTcuNSA4LjktMTkuNSAxNS45LTMxLjUgMTQuOS0xLjUtMTIgNC40LTI0LjggMTEuMy0zMi42IDcuNS05LjEgMjAuNi0xNS42IDMxLjMtMTYuMSAxLjIgMTIuNC0zLjcgMjQuNy0xMS4xIDMzLjh6bTEwLjkgMTcuMmMtMTcuNC0xLTMyLjMgOS45LTQwLjUgOS45LTguNCAwLTIxLTkuNC0zNC44LTkuMS0xNy45IC4zLTM0LjUgMTAuNC00My42IDI2LjUtMTguOCAzMi4zLTQuOSA4MCAxMy4zIDEwNi4zIDguOSAxMyAxOS41IDI3LjMgMzMuNSAyNi44IDEzLjMtLjUgMTguNS04LjYgMzQuNS04LjYgMTYuMSAwIDIwLjggOC42IDM0LjggOC40IDE0LjUtLjMgMjMuNi0xMyAzMi41LTI2IDEwLjEtMTQuOCAxNC4zLTI5LjEgMTQuNS0yOS45LS4zLS4zLTI4LTEwLjktMjguMy00Mi45LS4zLTI2LjggMjEuOS0zOS41IDIyLjktNDAuMy0xMi41LTE4LjYtMzItMjAuNi0zOC44LTIxLjF6bTEwMC40LTM2LjJsMCAxOTQuOSAzMC4zIDAgMC02Ni42IDQxLjkgMGMzOC4zIDAgNjUuMS0yNi4zIDY1LjEtNjQuM3MtMjYuNC02NC02NC4xLTY0bC03My4yIDB6TTI1OC41IDE2NWwzNC45IDBjMjYuMyAwIDQxLjMgMTQgNDEuMyAzOC42cy0xNSAzOC44LTQxLjQgMzguOGwtMzQuOCAwIDAtNzcuNHpNNDIwLjcgMzM1LjljMTkgMCAzNi42LTkuNiA0NC42LTI0LjlsLjYgMCAwIDIzLjQgMjggMCAwLTk3YzAtMjguMS0yMi41LTQ2LjMtNTcuMS00Ni4zLTMyLjEgMC01NS45IDE4LjQtNTYuOCA0My42bDI3LjMgMGMyLjMtMTIgMTMuNC0xOS45IDI4LjYtMTkuOSAxOC41IDAgMjguOSA4LjYgMjguOSAyNC41bDAgMTAuOC0zNy44IDIuM2MtMzUuMSAyLjEtNTQuMSAxNi41LTU0LjEgNDEuNSAuMSAyNS4yIDE5LjcgNDIgNDcuOCA0MnptOC4yLTIzLjFjLTE2LjEgMC0yNi40LTcuOC0yNi40LTE5LjYgMC0xMi4zIDkuOS0xOS40IDI4LjgtMjAuNWwzMy42LTIuMSAwIDExYzAgMTguMi0xNS41IDMxLjItMzYgMzEuMnptMTAyLjUgNzQuNmMyOS41IDAgNDMuNC0xMS4zIDU1LjUtNDUuNGw1My4xLTE0OS0zMC44IDAtMzUuNiAxMTUuMS0uNiAwLTM1LjYtMTE1LjEtMzEuNiAwIDUxLjIgMTQxLjktMi44IDguNmMtNC42IDE0LjYtMTIuMSAyMC4zLTI1LjUgMjAuMy0yLjQgMC03LS4zLTguOS0uNWwwIDIzLjRjMS44IC40IDkuMyAuNyAxMS42IC43eiJdfSxTY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXJ0c3RhdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjc3YSIsIk0yLjEgMzc3LjRsNDMgNzQuM2M0LjMgOC41IDEwLjggMTUuNyAxOC45IDIwLjdzMTcuNCA3LjYgMjcgNy42bDI4NS40IDAtNTkuMi0xMDIuNi0zMTUuMSAwek01MDEuOSAzNTBMMzM1LjcgNTkuM2MtNC40LTguMi0xMC45LTE1LjEtMTguOS0yMFMyOTkuNyAzMiAyOTAuNCAzMmwtODguNCAwIDI1Ny4zIDQ0Ny42IDQwLjctNzAuNWMxLjktMy4yIDIxLTI5LjcgMi01OS4xek0yNzUuMiAzMDQuNWwtMTE1LjUtMjAwLTExNS41IDIwMCAyMzEgMHoiXX0sQ2N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5vZGUtanMiLGljb246WzQ0OCw1MTIsW10sImYzZDMiLCJNMjI0LjUgNTA4Yy02LjcgMC0xMy41LTEuOC0xOS40LTUuMmwtNjEuNy0zNi41Yy05LjItNS4yLTQuNy03LTEuNy04IDEyLjMtNC4zIDE0LjgtNS4yIDI3LjktMTIuNyAxLjQtLjggMy4yLS41IDQuNiAuNGw0Ny40IDI4LjFjMS43IDEgNC4xIDEgNS43IDBMNDEyIDM2Ny41YzEuNy0xIDIuOC0zIDIuOC01bDAtMjEzLjJjMC0yLjEtMS4xLTQtMi45LTUuMUwyMjcuMyAzNy43Yy0xLjctMS00LTEtNS43IDBMMzcuMSAxNDQuM2MtMS44IDEtMi45IDMtMi45IDUuMWwwIDIxMy4xYzAgMiAxLjEgNCAyLjkgNC45bDUwLjYgMjkuMmMyNy41IDEzLjcgNDQuMy0yLjQgNDQuMy0xOC43bDAtMjEwLjRjMC0zIDIuNC01LjMgNS40LTUuM2wyMy40IDBjMi45IDAgNS40IDIuMyA1LjQgNS4zbDAgMjEwLjVjMCAzNi42LTIwIDU3LjYtNTQuNyA1Ny42LTEwLjcgMC0xOS4xIDAtNDIuNS0xMS42TDIwLjYgMzk2LjFjLTEyLTYuOS0xOS40LTE5LjgtMTkuNC0zMy43bDAtMjEzLjFjMC0xMy44IDcuNC0yNi44IDE5LjQtMzMuN0wyMDUuMSA5YzExLjctNi42IDI3LjItNi42IDM4LjggMEw0MjguNiAxMTUuN2MxMiA2LjkgMTkuNCAxOS44IDE5LjQgMzMuN2wwIDIxMy4xYzAgMTMuOC03LjQgMjYuNy0xOS40IDMzLjdMMjQzLjkgNTAyLjhjLTUuOSAzLjQtMTIuNiA1LjItMTkuNCA1LjJ6TTM3My42IDI5Ny45YzAtMzkuOS0yNy01MC41LTgzLjctNTgtNTcuNC03LjYtNjMuMi0xMS41LTYzLjItMjQuOSAwLTExLjEgNC45LTI1LjkgNDcuNC0yNS45IDM3LjkgMCA1MS45IDguMiA1Ny43IDMzLjggLjUgMi40IDIuNyA0LjIgNS4yIDQuMmwyNCAwYzEuNSAwIDIuOS0uNiAzLjktMS43czEuNS0yLjYgMS40LTQuMWMtMy43LTQ0LjEtMzMtNjQuNi05Mi4yLTY0LjYtNTIuNyAwLTg0LjEgMjIuMi04NC4xIDU5LjUgMCA0MC40IDMxLjMgNTEuNiA4MS44IDU2LjYgNjAuNSA1LjkgNjUuMiAxNC44IDY1LjIgMjYuNyAwIDIwLjYtMTYuNiAyOS40LTU1LjUgMjkuNC00OC45IDAtNTkuNi0xMi4zLTYzLjItMzYuNi0uNC0yLjYtMi42LTQuNS01LjMtNC41bC0yMy45IDBjLTMgMC01LjMgMi40LTUuMyA1LjMgMCAzMS4xIDE2LjkgNjguMiA5Ny44IDY4LjIgNTguNC0uMSA5Mi0yMy4yIDkyLTYzLjR6Il19LExjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bmNoYXJ0ZWQiLGljb246WzQ0OCw1MTIsW10sImUwODQiLCJNMTcxLjggMjMyLjhjMS4xIDAgMi4xLS4zIDMtLjlzMS42LTEuNCAyLTIuNGMyLjItOS44IDcuNC0xOC42IDE0LjktMjUuMyAxLjItLjggMS43LTIuNSAxLjctNC4xLS4xLS43LS4zLTEuMy0uNi0xLjlzLS45LTEuMS0xLjQtMS40TDc0LjUgMTI4LjUgMTQ5LjEgODVjMS41LS44IDIuNy0yIDMuNi0zLjVzMS40LTMuMSAxLjQtNC44YzAtMS43LS40LTMuNC0xLjMtNC45cy0yLjItMi43LTMuNy0zLjRMMTI2LjcgNTUuNmMtMS41LS44LTMuMS0xLjItNC44LTEuMnMtMy4zIC40LTQuOCAxLjJMMTcgMTEzLjZjLTEuNSAuOC0yLjcgMi0zLjYgMy41cy0xLjQgMy4xLTEuNCA0LjhMMTIgMjM3YzAgMS43IC40IDMuNCAxLjMgNC45czIuMiAyLjcgMy43IDMuNGwyMi40IDEyLjhjMS41IC45IDMuMiAxLjMgNSAxLjIgMi40IC4xIDQuOC0uOCA2LjYtMi41IDEuOC0xLjkgMi44LTQuNCAyLjktN2wwLTg1LjMgMTE1LjkgNjcuOWMuNiAuMyAxLjQgLjQgMi4xIC40ek0zMjMuNCAzNzcuN2MtMS43IC4xLTMuNCAuNS01IDEuMmwtNzQuNSA0My4xIDAtMTM0LjJjMC0yLjktMi45LTUuOC02LjItNC42LTkuNCAyLjgtMTkuNSAzLTI5IC40LS43LS4yLTEuNS0uMi0yLjItLjFzLTEuNCAuNC0yIC45LTEuMSAxLTEuNCAxLjctLjUgMS40LS41IDIuMWwwIDEzMy4zLTc0LjUtNDMuMWMtMS41LS45LTMuMi0xLjMtNS0xLjItMi41IDAtNC45IDEtNi43IDIuOHMtMi44IDQuMi0yLjggNi43bDAgMjYuMWMwIDEuNyAuNCAzLjQgMS4zIDQuOXMyLjIgMi43IDMuNyAzLjRsMTAwLjIgNTcuNmMxLjUgLjkgMy4yIDEuMyA1IDEuMiAxLjcgMCAzLjQtLjQgNS0xLjJsMTAwLjItNTcuNmMxLjUtLjggMi43LTIgMy42LTMuNXMxLjQtMy4xIDEuNC00LjhsMC0yNi4xYy0uOC00LjYtNS40LTkuMS0xMC40LTkuMXpNMjg2LjEgNzhhMjMgMjMgMCAxIDAgMC00NiAyMyAyMyAwIDEgMCAwIDQ2em02My42LTEwLjFhMjMgMjMgMCAxIDAgMCA0NiAyMyAyMyAwIDEgMCAwLTQ2em02My4yIDgzLjdhMjMgMjMgMCAxIDAgMC00NiAyMyAyMyAwIDEgMCAwIDQ2em0tNjMuMi05LjJhMjMgMjMgMCAxIDAgMCA0NiAyMyAyMyAwIDEgMCAwLTQ2em0tNjMuNiA4My4yYzQuNSAwIDktMS4zIDEyLjgtMy45czYuNy02LjEgOC41LTEwLjMgMi4yLTguOCAxLjMtMTMuMy0zLjEtOC42LTYuMy0xMS44LTcuMy01LjQtMTEuOC02LjMtOS4xLS40LTEzLjMgMS4zLTcuOCA0LjctMTAuMyA4LjUtMy45IDguMi0zLjkgMTIuOGMwIDMgLjYgNiAxLjggOC44czIuOSA1LjMgNSA3LjUgNC43IDMuOCA3LjUgNSA1LjggMS44IDguOCAxLjhsMCAwek0yMjQgMjYyYzQuNSAwIDktMS40IDEyLjgtMy45czYuNy02LjEgOC41LTEwLjMgMi4yLTguOCAxLjMtMTMuMy0zLjEtOC42LTYuMy0xMS44LTcuMy01LjQtMTEuOC02LjMtOS4xLS40LTEzLjMgMS4zLTcuOCA0LjctMTAuMyA4LjUtMy45IDguMi0zLjkgMTIuOGMwIDMgLjYgNiAxLjcgOC44czIuOCA1LjMgNSA3LjUgNC43IDMuOCA3LjUgNSA1LjggMS44IDguOCAxLjhsMCAwem0xODguOS04Mi40Yy00LjYgMC05IDEuMy0xMi44IDMuOXMtNi43IDYuMS04LjUgMTAuMy0yLjIgOC44LTEuMyAxMy4zIDMuMSA4LjYgNi4zIDExLjggNy4zIDUuNCAxMS44IDYuMyA5LjEgLjQgMTMuMy0xLjMgNy44LTQuNyAxMC4zLTguNSAzLjktOC4yIDMuOS0xMi44YzAtNi4xLTIuNC0xMS45LTYuNy0xNi4zcy0xMC4yLTYuNy0xNi4zLTYuN2wwIDB6bTAgNzIuM2MtNC42IDAtOSAxLjMtMTIuOCAzLjlzLTYuNyA2LjEtOC41IDEwLjMtMi4yIDguOC0xLjMgMTMuMyAzLjEgOC42IDYuMyAxMS44IDcuMyA1LjQgMTEuOCA2LjMgOS4xIC40IDEzLjMtMS4zIDcuOC00LjcgMTAuMy04LjUgMy45LTguMiAzLjktMTIuOGMwLTYuMS0yLjQtMTEuOS02LjctMTYuM3MtMTAuMi02LjctMTYuMy02LjdsMCAweiJdfSxUY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGxheXN0YXRpb24iLGljb246WzU3Niw1MTIsW10sImYzZGYiLCJNNTcxIDM3Mi4zYy0xMS4zIDE0LjItMzguOCAyNC4zLTM4LjggMjQuM2wtMjA1LjEgNzMuNiAwLTU0LjMgMTUwLjktNTMuOGMxNy4xLTYuMSAxOS44LTE0LjggNS44LTE5LjQtMTMuOS00LjYtMzkuMS0zLjMtNTYuMiAyLjlsLTEwMC41IDM1LjUgMC01Ni40YzIzLjItNy44IDQ3LjEtMTMuNiA3NS43LTE2LjggNDAuOS00LjUgOTAuOSAuNiAxMzAuMiAxNS41IDQ0LjIgMTQgNDkuMiAzNC43IDM4IDQ4Ljl6TTM0Ni42IDI3OS44bDAtMTM5YzAtMTYuMy0zLTMxLjMtMTguMy0zNS42LTExLjctMy44LTE5IDcuMS0xOSAyMy40bDAgMzQ3LjktOTMuOC0yOS44IDAtNDE0LjdjMzkuOSA3LjQgOTggMjQuOSAxMjkuMiAzNS40IDc5LjUgMjcuMyAxMDYuNCA2MS4zIDEwNi40IDEzNy44IDAgNzQuNS00NiAxMDIuOC0xMDQuNSA3NC42ek00My4zIDQxMC4yYy00NS40LTEyLjgtNTMtMzkuNS0zMi4zLTU0LjggMTkuMS0xNC4yIDUxLjctMjQuOSA1MS43LTI0LjlsMTM0LjUtNDcuOCAwIDU0LjUtOTYuOCAzNC42Yy0xNy4xIDYuMS0xOS43IDE0LjgtNS44IDE5LjRzMzkuMSAzLjMgNTYuMi0yLjlsNDYuNC0xNi45IDAgNDguOGMtNTEuNiA5LjMtMTAxLjQgNy4zLTE1My45LTEweiJdfSxfY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWljcm9ibG9nIixpY29uOls0NDgsNTEyLFtdLCJlMDFhIiwiTTM5OS44IDM2Mi4yYzI5LjUtMzQuNyA0Ny4xLTc4LjMgNDcuMS0xMjUuOCAwLTExMy05OS42LTIwNC40LTIyMi41LTIwNC40UzIgMTIzLjUgMiAyMzYuNCAxMDEuNiA0NDAuOSAyMjQuNSA0NDAuOWMyNyAwIDUzLjktNC41IDc5LjQtMTMuNCAxLjQtLjUgMy0uNSA0LjUtLjFzMi43IDEuNCAzLjYgMi42YzE4LjYgMjUuMSA0Ny42IDQyLjcgNzkuOSA0OS45IDEuMSAuMiAyLjMgMCAzLjMtLjZzMS43LTEuNiAxLjktMi44Yy4xLS42IC4xLTEuMyAwLTEuOXMtLjQtMS4yLS44LTEuN2MtMTIuMy0xNi0xOC43LTM1LjgtMTgtNTZzOC40LTM5LjUgMjEuNy01NC43bC0uMiAuMXpNMzMwIDIxMi40bC01Ny4zIDQzLjUgMjAuOCA2OC45Yy40IDEuMyAuNCAyLjctLjEgNHMtMS4yIDIuNC0yLjMgMy4yLTIuNCAxLjItMy44IDEuMi0yLjctLjQtMy44LTEuMmwtNTkuMS00MS01OS4xIDQxLjFjLTEuMSAuOC0yLjQgMS4yLTMuOCAxLjJzLTIuNy0uNC0zLjgtMS4yLTEuOS0xLjktMi4zLTMuMi0uNS0yLjctLjEtNGwyMC44LTY4LjktNTcuMy00My41Yy0xLjEtLjgtMS45LTEuOS0yLjMtMy4ycy0uNC0yLjcgMC00IDEuMi0yLjQgMi4zLTMuMiAyLjQtMS4zIDMuNy0xLjNsNzEuOS0xLjUgMjMuNy02Ny45Yy40LTEuMyAxLjMtMi40IDIuNC0zLjJzMi40LTEuMiAzLjgtMS4yIDIuNyAuNCAzLjggMS4yIDEuOSAxLjkgMi40IDMuMmwyMy43IDY3LjkgNzEuOSAxLjVjMS40IDAgMi43IC40IDMuOCAxLjJzMS45IDEuOSAyLjMgMy4yIC40IDIuNyAwIDQtMS4yIDIuNC0yLjMgMy4zbDAgMHoiXX0sQWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGtyYWtlbiIsaWNvbjpbNTc2LDUxMixbXSwiZjNhNiIsIk01NTcuNyAxMTguMWMtMi4zLTYuMS05LjMtOS4yLTE1LjMtNi42LTUuNyAyLjQtOC41IDguOS02LjMgMTQuNiAxMC45IDI5IDE2LjkgNjAuNSAxNi45IDkzLjMgMCAxMzQuNi0xMDAuMyAyNDUuNy0yMzAuMiAyNjIuN2wwLTEyMy43YzcuOS0xLjUgMTUuNS0zLjYgMjMtNi4ybDAgMTA0YzEwNi43LTI1LjkgMTg1LjktMTIyLjEgMTg1LjktMjM2LjggMC05MS44LTUwLjgtMTcxLjgtMTI1LjgtMjEzLjMtNS43LTMuMi0xMy0uOS0xNS45IDUtMi43IDUuNS0uNiAxMi4yIDQuNyAxNS4xIDY3LjkgMzcuNiAxMTMuOSAxMTAgMTEzLjkgMTkzLjIgMCA5My4zLTU3LjkgMTczLjEtMTM5LjggMjA1LjRsMC05Mi4yYzE0LjItNC41IDI0LjktMTcuNyAyNC45LTMzLjUgMC0xMy4xLTYuOC0yNC40LTE3LjMtMzAuNSA4LjMtNzkuNSA0NC41LTU4LjYgNDQuNS04My45bDAtMTQuN2MwLTM4LTg3LjktMTYxLjgtMTI5LTE2NC43LTIuNS0uMi01LS4yLTcuNiAwLTQxLjIgMy0xMjkuMSAxMjYuNy0xMjkuMSAxNjQuN2wwIDE0LjhjMCAyNS4zIDM2LjMgNC4zIDQ0LjUgODMuOS0xMC42IDYuMS0xNy4zIDE3LjQtMTcuMyAzMC41IDAgMTUuOCAxMC42IDI5IDI0LjggMzMuNWwwIDkyLjJjLTgxLjktMzIuMi0xMzkuOC0xMTItMTM5LjgtMjA1LjQgMC04My4xIDQ2LTE1NS41IDExMy45LTE5My4yIDUuNC0zIDcuNC05LjYgNC43LTE1LjEtMi45LTUuOS0xMC4xLTguMi0xNS45LTUtNzUgNDEuNS0xMjUuOCAxMjEuNS0xMjUuOCAyMTMuMyAwIDExNC43IDc5LjIgMjEwLjggMTg1LjkgMjM2LjhsMC0xMDRjNy42IDIuNSAxNS4xIDQuNiAyMyA2LjJsMCAxMjMuN2MtMTI5LjgtMTctMjMwLjItMTI4LjEtMjMwLjItMjYyLjcgMC0zMi44IDYtNjQuMyAxNi45LTkzLjMgMi4yLTUuOC0uNi0xMi4yLTYuMy0xNC42LTYtMi42LTEzIC40LTE1LjMgNi42LTExLjggMzEuNS0xOC4zIDY1LjYtMTguMyAxMDEuMyAwIDE1NS4xIDEyMi42IDI4MS42IDI3Ni4zIDI4Ny44bDAtMTQ1LjljNi44IC40IDE1IC41IDIzLjQgMGwwIDE0NS44YzE1My43LTYuMSAyNzYuMy0xMzIuNiAyNzYuMy0yODcuNyAwLTM1LjctNi41LTY5LjgtMTguMy0xMDEuNHpNMzU3LjkgMzIyLjlhMjMuNyAyMy43IDAgMSAxIDAtNDcuNCAyMy43IDIzLjcgMCAxIDEgMCA0Ny40ek0yMTguMSAyNzUuNGEyMy43IDIzLjcgMCAxIDEgMCA0Ny40IDIzLjcgMjMuNyAwIDEgMSAwLTQ3LjR6Il19LGYyZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZWxlZ3JhbSIsaWNvbjpbNTEyLDUxMixbNjI0NjIsInRlbGVncmFtLXBsYW5lIl0sImYyYzYiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zNzEgMTc2LjdjLTMuNyAzOS4yLTE5LjkgMTM0LjQtMjguMSAxNzguMy0zLjUgMTguNi0xMC4zIDI0LjgtMTYuOSAyNS40LTE0LjQgMS4zLTI1LjMtOS41LTM5LjMtMTguNy0yMS44LTE0LjMtMzQuMi0yMy4yLTU1LjMtMzcuMi0yNC41LTE2LjEtOC42LTI1IDUuMy0zOS41IDMuNy0zLjggNjcuMS02MS41IDY4LjMtNjYuNyAuMi0uNyAuMy0zLjEtMS4yLTQuNHMtMy42LS44LTUuMS0uNWMtMi4yIC41LTM3LjEgMjMuNS0xMDQuNiA2OS4xLTkuOSA2LjgtMTguOSAxMC4xLTI2LjkgOS45LTguOS0uMi0yNS45LTUtMzguNi05LjEtMTUuNS01LTI3LjktNy43LTI2LjgtMTYuMyAuNi00LjUgNi43LTkgMTguNC0xMy43IDcyLjMtMzEuNSAxMjAuNS01Mi4zIDE0NC42LTYyLjMgNjguOS0yOC42IDgzLjItMzMuNiA5Mi41LTMzLjggMi4xIDAgNi42IC41IDkuNiAyLjkgMiAxLjcgMy4yIDQuMSAzLjUgNi43IC41IDMuMiAuNiA2LjUgLjQgOS44eiJdfSwkY3Q9ZjJlLERjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMtbm90ZSIsaWNvbjpbMzg0LDUxMixbXSwiZjNiNSIsIk0zODEuOSAzODguMmMtNi40IDI3LjQtMjcuMiA0Mi44LTU1LjEgNDgtMjQuNSA0LjUtNDQuOSA1LjYtNjQuNS0xMC4yLTIzLjktMjAuMS0yNC4yLTUzLjQtMi43LTc0LjQgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDYuNC03LjIgNC40LTQuMSA0LjQtMTYzLjIgMC0xMS4yLTUuNS0xNC4zLTE3LTEyLjMtOC4yIDEuNC0xODUuNyAzNC42LTE4NS43IDM0LjYtMTAuMiAyLjItMTMuNCA1LjItMTMuNCAxNi43IDAgMjM0LjcgMS4xIDIyMy45LTIuNSAyMzkuNS00LjIgMTguMi0xNS40IDMxLjktMzAuMiAzOS41LTE2LjggOS4zLTQ3LjIgMTMuNC02My40IDEwLjQtNDMuMi04LjEtNTguNC01OC0yOS4xLTg2LjYgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDEwLjEtMTEuNSAxLjgtMjU2LjYgNS4yLTI3MC4yIC44LTUuMiAzLTkuNiA3LjEtMTIuOSA0LjItMy41IDExLjgtNS41IDEzLjQtNS41IDIwNC0zOC4yIDIyOC45LTQzLjEgMjMyLjQtNDMuMSAxMS41LS44IDE4LjEgNiAxOC4xIDE3LjYgLjIgMzQ0LjUgMS4xIDMyNi0xLjggMzM4LjV6Il19LEVjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZXNzIixpY29uOls2NDAsNTEyLFtdLCJmNDFkIiwiTTYxMy4yIDIxOWMwLTIwLjUgMy4yLTMyLjYgMy4yLTU0LjYgMC0zNC4yLTEyLjYtNDUuMi00MC41LTQ1LjJsLTIwLjUgMCAwIDI0LjIgNi4zIDBjMTQuMiAwIDE3LjMgNC43IDE3LjMgMjIuMSAwIDE2LjMtMS42IDMyLjYtMS42IDUxLjUgMCAyNC4yIDcuOSAzMy42IDIzLjYgMzcuM2wwIDEuNmMtMTUuOCAzLjctMjMuNiAxMy4xLTIzLjYgMzcuMyAwIDE4LjkgMS42IDM0LjIgMS42IDUxLjUgMCAxNy45LTMuNyAyMi42LTE3LjMgMjIuNmwwIC41LTYuMyAwIDAgMjUuMiAyMC41IDBjMjcuOCAwIDQwLjUtMTEgNDAuNS00NS4yIDAtMjIuNi0zLjItMzQuMi0zLjItNTQuNiAwLTExIDYuOC0yMi42IDI3LjMtMjMuNmwwLTI3LjNjLTIwLjUtLjctMjcuMy0xMi4zLTI3LjMtMjMuM3pNNTA3LjYgMjUxYy0xNS44LTYuMy0zMC41LTEwLTMwLjUtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjZzMjIuMSA0LjcgMzMuNiAxMy4xbDIxLTI3LjhjLTEzLjEtMTAtMzEtMjAuNS01NS4yLTIwLjUtMzUuNyAwLTU5LjkgMjAuNS01OS45IDQ5LjQgMCAyNS43IDIyLjYgMzguOSA0MS41IDQ2LjIgMTYuMyA2LjMgMzIuMSAxMS42IDMyLjEgMjIuMSAwIDcuOS02LjMgMTMuMS0yMC41IDEzLjEtMTMuMSAwLTI2LjMtNS4zLTQwLjUtMTYuM2wtMjEgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxcy0yMi41LTQxLTQzLTQ3Ljh6TTE0OC43IDMxMC40Yy0zLjcgMC04LjQtMy4yLTguNC0xMy4xbDAtMTc4LjItNzQuNiAwYy0yOC40IDAtNDEgMTEtNDEgNDUuMiAwIDIyLjYgMy4yIDM1LjIgMy4yIDU0LjYgMCAxMS02LjggMjIuNi0yNy4zIDIzLjZsMCAyNy4zYzIwLjUgLjUgMjcuMyAxMi4xIDI3LjMgMjMuMSAwIDE5LjQtMy4yIDMxLTMuMiA1My42IDAgMzQuMiAxMi42IDQ1LjIgNDAuNSA0NS4ybDIwLjUgMCAwLTI0LjItNi4zIDBjLTEzLjEgMC0xNy4zLTUuMy0xNy4zLTIyLjZzMS42LTMyLjEgMS42LTUxLjVjMC0yNC4yLTcuOS0zMy42LTIzLjYtMzcuM2wwLTEuNmMxNS44LTMuNyAyMy42LTEzLjEgMjMuNi0zNy4zIDAtMTguOS0xLjYtMzQuMi0xLjYtNTEuNXMzLjctMjIuMSAxNy4zLTIyLjFsMTQuMSAwIDAgMTUwLjhjMCAzMi4xIDExIDUzLjEgNDMuMSA1My4xIDEwIDAgMTcuOS0xLjYgMjMuNi0zLjdsLTUuMy0zNC4yYy0zLjEgLjgtNC42IC44LTYuMiAuOHpNMzgwLjQgMjUxYy0xNi4zLTYuMy0zMS0xMC0zMS0yMC41IDAtNy45IDYuMy0xMi42IDE3LjktMTIuNnMyMi4xIDQuNyAzMy42IDEzLjFsMjEtMjcuOGMtMTMuMS0xMC0zMS0yMC41LTU1LjItMjAuNS0zNS43IDAtNTkuOSAyMC41LTU5LjkgNDkuNCAwIDI1LjcgMjIuNiAzOC45IDQxLjUgNDYuMiAxNi4zIDYuMyAzMi4xIDExLjYgMzIuMSAyMi4xIDAgNy45LTYuMyAxMy4xLTIwLjUgMTMuMS0xMy4xIDAtMjYuMy01LjMtNDAuNS0xNi4zbC0yMC41IDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MSAuMS0yOC45LTIyLjUtNDEtNDMtNDcuOHptLTE1NS02OC44Yy0zOC40IDAtNzUuMSAzMi4xLTc0LjEgODIuNSAwIDUyIDM0LjIgODIuNSA3OS4zIDgyLjUgMTguOSAwIDM5LjktNi44IDU2LjItMTcuOUwyNzEgMzAxLjVjLTExLjYgNi44LTIyLjYgMTAtMzQuMiAxMC0yMSAwLTM3LjMtMTAtNDEuNS0zNC4ybDk1LjIgMGMuNS0zLjcgMS42LTExIDEuNi0xOS40IC42LTQyLjYtMjIuNi03NS43LTY2LjctNzUuN3ptLTMwIDY2LjJjMy4yLTIxIDE1LjgtMzEgMzAuNS0zMSAxOC45IDAgMjYuMyAxMy4xIDI2LjMgMzFsLTU2LjggMHoiXX0sTmN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcmVmb3giLGljb246WzUxMiw1MTIsW10sImYyNjkiLCJNNTAzLjUgMjQxLjVjLS4xLTEuNi0uMi0zLjEtLjItNC43bDAtLjEtLjQtNC43IDAtLjFjLTEuMy0xMy45LTMuNy0yNy43LTcuMy00MS4yIDAtLjEgMC0uMS0uMS0uMmwtMS4xLTRjLS4xLS4yLS4xLS41LS4yLS42LS40LTEuMi0uNy0yLjUtMS4xLTMuNy0uMS0uMi0uMS0uNi0uMi0uOC0uNC0xLjItLjctMi40LTEuMS0zLjUtLjEtLjQtLjItLjYtLjQtMS0uNC0xLjItLjctMi4zLTEuMi0zLjVsLS40LTEuMWMtLjQtMS4xLS44LTIuMy0xLjItMy40LS4xLS4zLS4yLS43LS40LTEtLjUtMS4xLS44LTIuMy0xLjMtMy40LS4xLS4yLS4yLS42LS40LS44LS41LTEuMi0xLTIuMy0xLjQtMy41IDAtLjEtLjEtLjItLjEtLjQtMS42LTMuOC0zLjItNy43LTUtMTEuNGwtLjQtLjdjLS41LTEtLjgtMS44LTEuMy0yLjYtLjItLjUtLjUtMS4xLS43LTEuNi0uNC0uOC0uOC0xLjYtMS4yLTIuNC0uNC0uNi0uNi0xLjItMS0xLjhzLS44LTEuNC0xLjItMi4zYy0uNC0uNi0uNy0xLjMtMS4xLTEuOXMtLjgtMS40LTEuMi0yLjJjLS40LS43LS44LTEuNC0xLjItMi0uNC0uNy0uOC0xLjMtMS4yLTJzLS44LTEuMy0xLjItMi0uOC0xLjMtMS4yLTEuOS0uOC0xLjQtMS4zLTIuMmMtLjQtLjYtLjgtMS4yLTEuMi0xLjhsLTEuNC0yLjFjLS40LS42LS44LTEuMi0xLjItMS44LS41LS43LTEuMS0xLjYtMS42LTIuMy0uNC0uNS0uNy0xLjEtMS4xLTEuNmwtMS44LTIuNWMtLjQtLjUtLjYtLjgtMS0xLjMtMS0xLjMtMS44LTIuNS0yLjgtMy43LTcuMi05LjQtMTUtMTguMy0yMy41LTI2LjYtNS43LTYtMTEuOC0xMS41LTE4LjMtMTYuNy00LTMuNS04LjItNi43LTEyLjUtOS44LTcuNy01LjgtMTYtMTAuOC0yNC42LTE1LjEtMi40LTEuMy00LjgtMi41LTcuMi0zLjctMTcuNy04LjYtMzYuMy0xNS4yLTU1LjQtMTkuNi0xLjktLjQtMy44LS44LTUuNi0xLjJsLS4xIDBjLTEtLjEtMS44LS40LTIuOC0uNS0xMi41LTIuNC0yNS4yLTMuNy0zOC00bC0xMC42IDBjLTE1LjMgLjItMzAuNSAxLjktNDUuNSA1LTMzLjYgNy4xLTYzLjIgMjEuMi04Mi45IDM5LTEuMSAxLTEuOSAxLjctMi40IDIuMmwtLjUgLjUgLjEgMGMwIDAgLjEgMCAuMSAwczAtLjEgMC0uMWwtLjEgLjFjLjEtLjEgLjEtLjEgLjItLjEgMTQuNi04LjggMzQuOS0xNiA0OS40LTE5LjZsNS45LTEuNGMuNC0uMSAuOC0uMSAxLjItLjIgMS43LS40IDMuNC0uNyA1LjItMS4xIC4yIDAgLjYtLjEgLjgtLjEgNjQuMi0xMS43IDEzMi42IDcuNSAxODAuMiA1MyAxMC4zIDkuOCAxOS4zIDIwLjggMjYuOSAzMi44IDMwLjQgNDkuMiAyNy41IDExMS4xIDMuOCAxNDcuNi0zNC40IDUzLTExMS40IDcxLjMtMTU5IDI0LjgtMTYtMTUuNS0yNS4yLTM2LjctMjUuNi01OS0uMi0xMC43IDItMjEuMiA2LjItMzEgMS43LTMuOCAxMy4xLTI1LjcgMTguMi0yNC42LTEzLjEtMi44LTM3LjUgMi42LTU0LjcgMjguMi0xNS40IDIyLjktMTQuNSA1OC4yLTUgODMuMy02LTEyLjQtMTAuMS0yNS42LTEyLjEtMzkuMi0xMi4yLTgyLjYgNDMuMy0xNTMgOTQuMy0xNzAuNS0yNy41LTI0LTk2LjUtMjIuMy0xNDcuNyAxNS40LTI5LjkgMjItNTEuMiA1My4yLTYyLjUgOTAuNCAxLjctMjAuOSA5LjYtNTIuMSAyNS44LTgzLjktMTcuMiA4LjktMzkgMzctNDkuOCA2Mi45LTE1LjYgMzcuNC0yMSA4Mi4yLTE2LjEgMTI0LjggLjQgMy4yIC43IDYuNCAxLjEgOS42IDE5LjkgMTE3LjEgMTIyIDIwNi40IDI0NC44IDIwNi40IDEzNy4xIDAgMjQ4LjMtMTExLjIgMjQ4LjMtMjQ4LjQtLjEtNC41LS4yLTkuMS0uNS0xMy41eiJdfSxQY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FnZ2xlIixpY29uOlszMjAsNTEyLFtdLCJmNWZhIiwiTTMwNC4yIDUwMS41TDE1OC40IDMyMC4zIDI5OC4yIDE4NWMyLjYtMi43IDEuNy0xMC41LTUuMy0xMC41bC02OS4yIDBjLTMuNSAwLTcgMS44LTEwLjUgNS4zbC0xMzIuMyAxMzMuNyAwLTMwNmMwLTUtMi41LTcuNS03LjUtNy41TDIxLjUgMEMxNi41IDAgMTQgMi41IDE0IDcuNWwwIDQ5N2MwIDUgMi41IDcuNSA3LjUgNy41bDUxLjkgMGM1IDAgNy41LTIuNSA3LjUtNy41bDAtMTA5IDMwLjgtMjkuMyAxMTAuNSAxNDAuNmMzIDMuNSA2LjUgNS4zIDEwLjUgNS4zbDY2LjkgMGMzLjUgMCA1LjUtMSA2LTNsLTEuNC03LjZ6Il19LEljdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vay1tZXNzZW5nZXIiLGljb246WzUxMiw1MTIsW10sImYzOWYiLCJNMjU2LjYgOGMtMTQwIDAtMjQ4LjYgMTAyLjMtMjQ4LjYgMjQwLjYgMCA3Mi4zIDI5LjcgMTM0LjggNzguMSAxNzcuOSA4LjMgNy41IDYuNiAxMS45IDggNTguMiAuMSAzLjIgMSA2LjQgMi42IDkuMnMzLjkgNS4yIDYuNyA2LjkgNS45IDIuOCA5LjEgMyA2LjUtLjMgOS41LTEuNkMxNzQuOSA0NzkgMTc1LjYgNDc3LjIgMTg0LjYgNDc5LjYgMzM3LjggNTIxLjggNTA0IDQyMy43IDUwNCAyNDguNiA1MDQgMTEwLjMgMzk2LjYgOCAyNTYuNiA4ek00MDUuOCAxOTMuMWwtNzMgMTE1LjZjLTIuOCA0LjMtNi40IDguMS0xMC42IDExcy05LjEgNC44LTE0LjEgNS44LTEwLjMgLjgtMTUuMy0uNC05LjctMy40LTEzLjgtNi40bC01OC4xLTQzLjVjLTIuNi0xLjktNS44LTMtOS0zcy02LjQgMS4xLTkgM2wtNzguNCA1OS40Yy0xMC41IDcuOS0yNC4yLTQuNi0xNy4xLTE1LjdsNzMtMTE1LjZjMi44LTQuMyA2LjQtOC4xIDEwLjYtMTFzOS4xLTQuOCAxNC4xLTUuOCAxMC4zLS44IDE1LjMgLjQgOS43IDMuNCAxMy45IDYuNGw1OC4xIDQzLjVjMi42IDEuOSA1LjggMyA5IDNzNi40LTEuMSA5LTNsNzguNC01OS40YzEwLjQtOCAyNC4xIDQuNSAxNy4xIDE1LjZ6Il19LEZjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdWRpYmxlIixpY29uOls2NDAsNTEyLFtdLCJmMzczIiwiTTY0MCAxOTkuOWwwIDU0LTMyMCAyMDAtMzIwLTE5OS45IDAtNTQgMzIwIDIwMCAzMjAtMjAwLjF6bS0xOTQuNSA3Mmw0Ny4xLTI5LjRjLTM3LjItNTUuOC0xMDAuNy05Mi42LTE3Mi43LTkyLjZzLTEzNS41IDM2LjctMTcyLjYgOTIuNGwuMyAwYzIuNS0yLjMgNS4xLTQuNSA3LjctNi43IDg5LjctNzQuNCAyMTkuNC01OC4xIDI5MC4yIDM2LjN6TTIyNS40IDI5MC43YzE2LjktMTEuOSAzNi41LTE4LjcgNTcuNC0xOC43IDM0LjQgMCA2NS4yIDE4LjQgODYuNCA0Ny42bDQ1LjQtMjguNGMtMjAuOS0yOS45LTU1LjYtNDkuNS05NC44LTQ5LjUtMzguOSAwLTczLjQgMTkuNC05NC40IDQ5ek0xMDMuNiAxNjEuMUMyMzUuNCA1Ni44IDQyMS44IDg0LjcgNTIxLjEgMjIzLjJsLjcgMSA0OC44LTMwLjRjLTUzLjUtODEuNy0xNDUuOC0xMzUuNy0yNTAuNy0xMzUuNy0xMDMuNSAwLTE5Ni42IDUzLjUtMjUwLjUgMTM1LjYgOS45LTEwLjUgMjIuNy0yMy41IDM0LjItMzIuNnoiXX0sT2N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhdHJlb24iLGljb246WzUxMiw1MTIsW10sImYzZDkiLCJNNDkwIDE1My44Yy0uMS02NS40LTUxLTExOS0xMTAuNy0xMzguMy03NC4yLTI0LTE3Mi0yMC41LTI0Mi45IDEyLjktODUuOCA0MC41LTExMi44IDEyOS4zLTExMy44IDIxNy44LS44IDcyLjggNi40IDI2NC40IDExNC42IDI2NS44IDgwLjMgMSA5Mi4zLTEwMi41IDEyOS41LTE1Mi4zIDI2LjQtMzUuNSA2MC41LTQ1LjUgMTAyLjQtNTUuOSA3Mi0xNy44IDEyMS4xLTc0LjcgMTIxLTE1MGwtLjEgMHoiXX0sQmN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZudiIsaWNvbjpbNjQwLDUxMixbXSwiZjQwYiIsIk0xMDQuOSAzNTJjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDIuNiAyMTAuMVMtNy44IDE5MiAxMyAxOTJsMzIuOCAwYzEwLjQgMCAxMy4yIDguNyAxOC44IDE4LjFsMzYuNyA3NC41czUuMiAxMy4xIDIxLjEgMTMuMSAyMS4xLTEzLjEgMjEuMS0xMy4xbDM2LjctNzQuNWM1LjYtOS41IDguNC0xOC4xIDE4LjgtMTguMWwzMi44IDBjMjAuOCAwIDEwLjQgMTguMSAxMC40IDE4LjFMMTg2LjQgMzIxLjZTMTc0LjIgMzUyIDE0MCAzNTJsLTM1LjEgMHptMzk1IDBjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDM5Ny42IDIxMC4xUzM4Ny4yIDE5MiA0MDggMTkybDMyLjggMGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi44LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFsMzIuOSAwYzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xTDU4MS41IDMyMS42UzU2OS4zIDM1MiA1MzUuMSAzNTJsLTM1LjIgMHpNMzM3LjYgMTkyYzM0LjEgMCA0Ni40IDMwLjQgNDYuNCAzMC40bDU1LjkgMTExLjVTNDUwLjMgMzUyIDQyOS41IDM1MmwtMzIuOCAwYy0xMC40IDAtMTMuMi04LjctMTguOC0xOC4xbC0zNi43LTc0LjVzLTUuMi0xMy4xLTIxLjEtMTMuMS0yMS4xIDEzLjEtMjEuMSAxMy4xbC0zNi43IDc0LjVjLTUuNiA5LjQtOC40IDE4LjEtMTguOCAxOC4xbC0zMi45IDBjLTIwLjggMC0xMC40LTE4LjEtMTAuNC0xOC4xbDU1LjktMTExLjVTMjY4LjMgMTkyIDMwMi41IDE5MmwzNS4xIDB6Il19LFJjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWdlbGluZXMiLGljb246WzM4NCw1MTIsW10sImYxOGMiLCJNMzg0LjEgMzEyLjdjLTU1LjEgMTM2LjctMTg3LjEgNTQtMTg3LjEgNTQtNDAuNSA4MS44LTEwNy40IDEzNC40LTE4NC42IDEzNC43LTE2LjEgMC0xNi42LTI0LjQgMC0yNC40IDY0LjQtLjMgMTIwLjUtNDIuNyAxNTcuMi0xMTAuMS00MS4xIDE1LjktMTE4LjYgMjcuOS0xNjEuNi04Mi4yIDEwOS00NC45IDE1OS4xIDExLjIgMTc4LjMgNDUuNSA5LjktMjQuNCAxNy01MC45IDIxLjYtNzkuNyAwIDAtMTM5LjcgMjEuOS0xNDkuNS05OC4xIDExOS4xLTQ3LjkgMTUyLjYgNzYuNyAxNTIuNiA3Ni43IDEuNi0xNi43IDMuMy01Mi42IDMuMy01My40IDAgMC0xMDYuMy03My43LTM4LjEtMTY1LjIgMTI0LjYgNDMgNjEuNCAxNjIuNCA2MS40IDE2Mi40IC41IDEuNiAuNSAyMy44IDAgMzMuNCAwIDAgNDUuMi04OSAxMzYuNC01Ny41LTQuMiAxMzQtMTQxLjkgMTA2LjQtMTQxLjkgMTA2LjQtNC40IDI3LjQtMTEuMiA1My40LTIwIDc3LjUgMCAwIDgzLTkxLjggMTcyLTIweiJdfSxIY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1hem9uIixpY29uOls0NDgsNTEyLFtdLCJmMjcwIiwiTTI1Ny43IDE2Mi43Yy00OC43IDEuOC0xNjkuNSAxNS41LTE2OS41IDExNy41IDAgMTA5LjUgMTM4LjMgMTE0IDE4My41IDQzLjIgNi41IDEwLjIgMzUuNCAzNy41IDQ1LjMgNDYuOGw1Ni44LTU2cy0zMi4zLTI1LjMtMzIuMy01Mi44bDAtMTQ3LjFDMzQxLjUgODkgMzE3IDMyIDIyOS4yIDMyIDE0MS4yIDMyIDk0LjUgODcgOTQuNSAxMzYuM2w3My41IDYuOGMxNi4zLTQ5LjUgNTQuMi00OS41IDU0LjItNDkuNSA0MC43LS4xIDM1LjUgMjkuOCAzNS41IDY5LjF6bTAgODYuOGMwIDgwLTg0LjIgNjgtODQuMiAxNy4yIDAtNDcuMiA1MC41LTU2LjcgODQuMi01Ny44bDAgNDAuNnpNMzkzLjcgNDEzYy03LjcgMTAtNzAgNjctMTc0LjUgNjdTMzQuNyA0MDguNSAxMC4yIDM3OWMtNi44LTcuNyAxLTExLjMgNS41LTguMyA3My4zIDQ0LjUgMTg3LjggMTE3LjggMzcyLjUgMzAuMyA3LjUtMy43IDEzLjMgMiA1LjUgMTJ6bTM5LjggMi4yYy02LjUgMTUuOC0xNiAyNi44LTIxLjIgMzEtNS41IDQuNS05LjUgMi43LTYuNS0zLjhzMTkuMy00Ni41IDEyLjctNTVjLTYuNS04LjMtMzctNC4zLTQ4LTMuMi0xMC44IDEtMTMgMi0xNC0uMy0yLjMtNS43IDIxLjctMTUuNSAzNy41LTE3LjUgMTUuNy0xLjggNDEtLjggNDYgNS43IDMuNyA1LjEgMCAyNy4xLTYuNSA0My4xeiJdfSxxY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW52aXJhIixpY29uOls0NDgsNTEyLFtdLCJmMjk5IiwiTTAgMzJjNDc3LjYgMCAzNjYuNiAzMTcuMyAzNjcuMSAzNjYuM2w4MC45IDgxLjctMjYgMC03MC40LTcxLjJDMzEyLjYgNDEzIDIyNy4yIDQ0My4zIDEzNy4yIDM3MS44IDQ3IDMwMC4zIDUyIDIxNC43IDAgMzJ6TTc5LjcgNzhjLTQ5LjctMjMuNS01LjIgOS4yLTUuMiA5LjIgNDUuMiAzMS4yIDY2IDczLjcgOTAuMiAxMTkuOSAzMS41IDYwLjIgNzkgMTM5LjcgMTQ0LjIgMTY3LjcgNjUgMjggMzQuMiAxMi41IDYtOC41LTI4LjItMjEuMi02OC4yLTg3LTkxLTEzMC4yLTMxLjctNjAtNjEtMTE4LjYtMTQ0LjItMTU4LjF6Il19LFZjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5vZGUiLGljb246WzQ0OCw1MTIsW10sImYyYjgiLCJNMzY2LjMgMTg2LjlsLTU5LjUgMzYuOS0uOCAzNi45LTI5LjMtMTkuMy0zOS40IDI0LjNjMi4yIDU1LjIgMi41IDU5LjMgMi41IDU5LjVsLTk3LjIgNjUuNC0xNS4xLTEwNC43IDEwOC4xLTYyLTQwLjItMjYtNzUuNCAzOC41LTIxLTE0My4zIDEyOS00OS40LTkxLjMtNDMuNi0xMjUuNyAzOS40IDI3LjcgMTM0LjkgNDEuOSAzMi43LTMxLjggMTUuMSAyMC45IDEwMS40IDI5LjMgMjcuNy0yMC45IDEyLjYgMTYuOCA3OC44IDY2LjIgNjkuNmMtMTAuOC03NC44LTExLjctNzguNi0xMS43LTc4LjhsNzcuOS01NS4zQzI0NCAzNjUuNCAyNDIuMyAzNjcgMjQyLjMgMzY3bC44IDI0LjMgMzMuNSAyOC41LS44LTc3LjEgNDYuOS0zMy41IDI2LjgtMTguNC0yLjUgMzYgMjUuMSAxNy42IDYuNy03NC42IDU4LjctNDMuNi03MS4yLTM5LjR6Il19LFVjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhY2N1c29mdCIsaWNvbjpbNjQwLDUxMixbXSwiZjM2OSIsIk0zMjIuMSAyNTJsMC0xLTUxLjItNjUuOHMtMTIgMS42LTI1IDE1LjFjLTkgOS4zLTI0Mi4xIDIzOS4xLTI0My40IDI0MC45LTcgMTAgMS42IDYuOCAxNS43IDEuNyAuOCAwIDExNC41LTM2LjYgMTE0LjUtMzYuNiAuNS0uNi0uMS0uMSAuNi0uNi0uNC01LjEtLjgtMjYuMi0xLTI3LjctLjYtNS4yIDIuMi02LjkgNy04LjlsOTIuNi0zMy44Yy42LS44IDg4LjUtODEuNyA5MC4yLTgzLjN6TTQ4Mi4yIDM3Mi4xYzEzLjMgMTYuMSAyMC43IDEzLjMgMzAuOCA5LjMgMy4yLTEuMiAxMTUuNC00Ny42IDExNy44LTQ4LjkgOC00LjMtMS43LTE2LjctNy4yLTIzLjQtMi4xLTIuNS0yMDUuMS0yNDUuNi0yMDcuMi0yNDguMy05LjctMTIuMi0xNC4zLTEyLjktMzguNC0xMi44LTEwLjIgMC0xMDYuOCAuNS0xMTYuNSAuNi0xOS4yIC4xLTMyLjktLjMtMTkuMiAxNi45IDcuNyA5LjUgMjM0LjIgMjk5LjcgMjM5LjkgMzA2LjZ6bTE1Mi43IDEuNmMtMi4zLS4zLTI0LjYtNC43LTM4LTcuMiAwIDAtMTE1IDUwLjQtMTE3LjUgNTEuNi0xNiA3LjMtMjYuOS0zLjItMzYuNy0xNC42bC01Ny4xLTc0Yy01LjQtLjktNjAuNC05LjYtNjUuMy05LjMtMy4xIC4yLTkuNiAuOC0xNC40IDIuOS00LjkgMi4xLTE0NS4yIDUyLjgtMTUwLjIgNTQuNy01LjEgMi0xMS40IDMuNi0xMS4xIDcuNiAuMiAyLjUgMiAyLjYgNC42IDMuNSAyLjcgLjggMzAwLjkgNjcuNiAzMDggNjkuMSAxNS42IDMuMyAzOC41IDEwLjUgNTMuNiAxLjcgMi4xLTEuMiAxMjMuOC03Ni40IDEyNS44LTc3LjggNS40LTQgNC4zLTYuOC0xLjctOC4yeiJdfSxqY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXJsYW5nIixpY29uOls2NDAsNTEyLFtdLCJmMzlkIiwiTTg3LjIgNTMuNWwtODcuMiAwIDAgNDA1IDEwMC40IDBjLTQ5LjctNTIuNi03OC44LTEyNS4zLTc4LjctMjEyLjEtLjEtNzYuNyAyNC0xNDIuNyA2NS41LTE5Mi45em0yMzguMiA5LjdjLTQ1LjkgLjEtODUuMSAzMy41LTg5LjIgODMuMmwxNjkuOSAwYy0xLjEtNDkuNy0zNC41LTgzLjEtODAuNy04My4yem0yMzAuNy05LjZsLjMgMC0uMS0uMS0uMiAuMXptLjMgMGMzMS40IDQyLjcgNDguNyA5Ny41IDQ2LjIgMTYyLjcgLjUgNiAuNSAxMS43IDAgMjQuMWwtMzcyLjQgMGMtLjIgMTA5LjcgMzguOSAxOTQuOSAxMzguNiAxOTUuMyA2OC41LS4zIDExOC01MSAxNTEuOS0xMDYuMWw5Ni40IDQ4LjJjLTE3LjQgMzAuOS0zNi41IDU3LjgtNTcuOSA4MC44bDgwLjggMCAwLTQwNS04My42IDB6Il19LFdjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1kaXNjb3ZlciIsaWNvbjpbNTc2LDUxMixbXSwiZjFmMiIsIk01MjAuNCAxOTYuMWMwLTcuOS01LjUtMTIuMS0xNS42LTEyLjFsLTQuOSAwIDAgMjQuOSA0LjcgMGMxMC4zIDAgMTUuOC00LjQgMTUuOC0xMi44ek01MjggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0ODAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNNDgzLjkgMTcwLjljMjIuNiAwIDUyLjktNC4xIDUyLjkgMjQuNCAwIDEyLjYtNi42IDIwLjctMTguNyAyMy4ybDI1LjggMzQuNC0xOS42IDAtMjIuMi0zMi44LTIuMiAwIDAgMzIuOC0xNiAwIDAtODJ6TTQyOCAxNzFsNDUuMyAwIDAgMTQtMjkuMyAwIDAgMTguMiAyOC4zIDAgMCAxMy44LTI4LjMgMCAwIDIyLjIgMjkuMyAwIDAgMTMuOC00NS4zIDAgMC04MnptLTY4LjcgMGwyMS45IDU1LjIgMjIuMi01NS4yIDE3LjUgMC0zNS41IDg0LjItOC42IDAtMzUtODQuMiAxNy41IDB6bS01NS45IDg2LjJhNDQuNiA0NC42IDAgMSAxIDAtODkuMiA0NC42IDQ0LjYgMCAxIDEgMCA4OS4yem0tNDkuMy04My4xbDAgMTljLTIwLjEtMjAuMS00Ni44LTQuNy00Ni44IDE5IDAgMjUgMjcuNSAzOC41IDQ2LjggMTkuMmwwIDE5Yy0yOS43IDE0LjMtNjMuMy01LjctNjMuMy0zOC4yIDAtMzEuMiAzMy4xLTUzIDYzLjMtMzh6bS05Ny4yIDY2LjNjMTEuNCAwIDIyLjQtMTUuMy0zLjMtMjQuNC0xNS01LjUtMjAuMi0xMS40LTIwLjItMjIuNyAwLTIzLjIgMzAuNi0zMS40IDQ5LjctMTQuM2wtOC40IDEwLjhjLTEwLjQtMTEuNi0yNC45LTYuMi0yNC45IDIuNSAwIDQuNCAyLjcgNi45IDEyLjMgMTAuMyAxOC4yIDYuNiAyMy42IDEyLjUgMjMuNiAyNS42IDAgMjkuNS0zOC44IDM3LjQtNTYuNiAxMS4zbDEwLjMtOS45YzMuNyA3LjEgOS45IDEwLjggMTcuNSAxMC44ek01NS40IDI1M2wtMjMuNCAwIDAtODIgMjMuNCAwYzI2LjEgMCA0NC4xIDE3IDQ0LjEgNDEuMSAwIDE4LjUtMTMuMiA0MC45LTQ0LjEgNDAuOXptNjcuNSAwbC0xNiAwIDAtODIgMTYgMCAwIDgyek01NDQgNDMzYzAgOC4yLTYuOCAxNS0xNSAxNWwtNDAxIDBjMTg5LjYtMzUuNiAzODIuNy0xMzkuMiA0MTYtMTYwbDAgMTQ1ek03NC4xIDE5MS42Yy01LjItNC45LTExLjYtNi42LTIxLjktNi42bC00LjIgMCAwIDU0LjIgNC4yIDBjMTAuMyAwIDE3LTIgMjEuOS02LjQgNS43LTUuMiA4LjktMTIuOCA4LjktMjAuN3MtMy4yLTE1LjUtOC45LTIwLjV6Il19LEdjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzYWZhcmkiLGljb246WzUxMiw1MTIsW10sImYyNjciLCJNMjc0LjcgMjc0LjdMMjM3LjMgMjM3LjMgMTY2IDM0NiAyNzQuNyAyNzQuN3pNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MTEuOCAxODIuOGwxNC44LTYuMWMxLS40IDItLjYgMy4xLS42czIuMSAuMiAzLjEgLjYgMS44IDEgMi42IDEuNyAxLjMgMS42IDEuNyAyLjYgLjYgMiAuNiAzLjEtLjIgMi4xLS42IDMuMS0xIDEuOS0xLjcgMi42LTEuNiAxLjMtMi42IDEuN0w0MTggMTk3LjZjLTIgLjgtNC4yIC44LTYuMSAwcy0zLjUtMi40LTQuMy00LjMtLjgtNC4yIDAtNi4xIDIuNC0zLjUgNC4zLTQuM3pNMzE0LjQgOTRsNi4xLTE0LjhjLjgtMiAyLjQtMy41IDQuMy00LjNzNC4yLS44IDYuMSAwIDMuNSAyLjQgNC4zIDQuMyAuOCA0LjIgMCA2LjFsLTYuMSAxNC44Yy0uOCAyLTIuNCAzLjUtNC4zIDQuM3MtNC4yIC44LTYuMSAwYy0xLS40LTEuOS0xLTIuNi0xLjdzLTEuMy0xLjYtMS43LTIuNi0uNi0yLS42LTMuMSAuMi0yLjEgLjYtMy4xek0yNTYgNjBjMi4xIDAgNC4yIC44IDUuNyAyLjNTMjY0IDY1LjkgMjY0IDY4bDAgMTZjMCAyLjEtLjggNC4yLTIuMyA1LjdzLTMuNSAyLjMtNS43IDIuMy00LjItLjgtNS43LTIuMy0yLjMtMy41LTIuMy01LjdsMC0xNmMwLTIuMSAuOC00LjIgMi4zLTUuN1MyNTMuOSA2MCAyNTYgNjB6TTE4MSA3NC45YzEtLjQgMi0uNiAzLjEtLjZzMi4xIC4yIDMuMSAuNiAxLjkgMSAyLjYgMS43IDEuMyAxLjYgMS43IDIuNkwxOTcuNiA5NGMuNCAxIC43IDIgLjcgMy4xcy0uMiAyLjEtLjYgMy4xLTEgMS45LTEuNyAyLjYtMS42IDEuNC0yLjYgMS44LTIgLjYtMy4xIC42LTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuOC0xLjMtMS43LTEuNy0yLjdsLTYuMS0xNC44Yy0uOC0yLS44LTQuMiAwLTYuMXMyLjQtMy41IDQuMy00LjN6bS02My42IDQyLjVjMS41LTEuNSAzLjUtMi4zIDUuNy0yLjNzNC4yIC44IDUuNyAyLjNMMTQwIDEyOC43YzEuNSAxLjUgMi4zIDMuNSAyLjMgNS42cy0uOCA0LjEtMi4zIDUuNmMtMS41IDEuNS0zLjUgMi4zLTUuNyAyLjNzLTQuMi0uOC01LjctMi4zbC0xMS4zLTExLjNjLTEuNS0xLjUtMi4zLTMuNS0yLjMtNS42cy44LTQuMSAyLjMtNS42bDAgMHpNNjAgMjU2YzAtMi4xIC44LTQuMiAyLjMtNS43UzY1LjkgMjQ4IDY4IDI0OGwxNiAwYzIuMSAwIDQuMiAuOCA1LjcgMi4zczIuMyAzLjUgMi4zIDUuNy0uOCA0LjItMi4zIDUuNy0zLjUgMi4zLTUuNyAyLjNsLTE2IDBjLTIuMSAwLTQuMi0uOC01LjctMi4zUzYwIDI1OC4xIDYwIDI1NnptNDAuMiA3My4ybC0xNC44IDYuMWMtMSAuNC0yIC42LTMuMSAuNnMtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS43LTEuMy0xLjYtMS43LTIuNi0uNi0yLS42LTMuMSAuMi0yLjEgLjYtMy4xIDEtMS45IDEuNy0yLjYgMS42LTEuMyAyLjYtMS43TDk0IDMxNC40YzItLjggNC4yLS44IDYuMSAwczMuNSAyLjQgNC4zIDQuMyAuOCA0LjIgMCA2LjEtMi40IDMuNS00LjMgNC4zem00LjMtMTM2Yy0uNCAxLTEgMS45LTEuNyAyLjZzLTEuNiAxLjMtMi42IDEuNy0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42bC0xNC44LTYuMWMtMi0uOC0zLjUtMi40LTQuMy00LjNzLS44LTQuMiAwLTYuMSAyLjQtMy41IDQuMy00LjMgNC4yLS44IDYuMSAwbDE0LjggNi4xYzIgLjggMy41IDIuNCA0LjMgNC4zcy44IDQuMiAwIDYuMWwwIDB6TTE5Ny42IDQxOGwtNi4xIDE0LjhjLS40IDEtMSAxLjktMS43IDIuNnMtMS42IDEuMy0yLjYgMS43LTIgLjYtMy4xIC42LTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuNy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMWw2LjEtMTQuOGMuNC0xIDEtMS45IDEuNy0yLjdzMS42LTEuNCAyLjYtMS44IDItLjYgMy4xLS42IDIuMSAuMiAzLjEgLjYgMS45IDEgMi42IDEuOCAxLjMgMS43IDEuNyAyLjYgLjYgMiAuNiAzLjEtLjIgMi4xLS43IDMuMXpNMjY0IDQ0NGMwIDIuMS0uOCA0LjItMi4zIDUuN3MtMy41IDIuMy01LjcgMi4zLTQuMi0uOC01LjctMi4zLTIuMy0zLjUtMi4zLTUuN2wwLTE2YzAtMi4xIC44LTQuMiAyLjMtNS43czMuNS0yLjMgNS43LTIuMyA0LjIgLjggNS43IDIuMyAyLjMgMy41IDIuMyA1LjdsMCAxNnptNjctNi45Yy0xIC40LTIgLjYtMy4xIC42cy0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjctMS4zLTEuNi0xLjctMi42TDMxNC40IDQxOGMtLjgtMi0uOC00LjIgMC02LjFzMi40LTMuNSA0LjMtNC4zIDQuMi0uOCA2LjEgMCAzLjUgMi40IDQuMyA0LjNsNi4xIDE0LjhjLjggMiAuOCA0LjIgMCA2LjFzLTIuNCAzLjUtNC4zIDQuM3ptNjMuNi00Mi41Yy0xLjUgMS41LTMuNSAyLjMtNS43IDIuM3MtNC4yLS44LTUuNy0yLjNMMzcyIDM4My4zYy0xLjUtMS41LTIuMy0zLjUtMi4zLTUuNnMuOC00LjEgMi4zLTUuNiAzLjUtMi4zIDUuNy0yLjMgNC4yIC44IDUuNyAyLjNsMTEuMyAxMS4zYzEuNSAxLjUgMi4zIDMuNSAyLjMgNS42cy0uOCA0LjEtMi4zIDUuNmwwIDB6TTI4Ni4yIDI4Ni4yTDExMC4zIDQwMS43IDIyNS44IDIyNS44IDQwMS43IDExMC4zIDI4Ni4yIDI4Ni4yek00MzcuMSAzMzFjLS44IDItMi40IDMuNS00LjMgNC4zcy00LjIgLjgtNi4xIDBsLTE0LjgtNi4xYy0yLS44LTMuNS0yLjQtNC4zLTQuM3MtLjgtNC4yIDAtNi4xYy40LTEgMS0xLjkgMS43LTIuNnMxLjYtMS4zIDIuNi0xLjcgMi0uNiAzLjEtLjYgMi4xIC4yIDMuMSAuNmwxNC44IDYuMWMyIC44IDMuNSAyLjQgNC4zIDQuM3MuOCA0LjIgMCA2LjF6bTYuOS02N2wtMTYgMGMtMi4xIDAtNC4yLS44LTUuNy0yLjNzLTIuMy0zLjUtMi4zLTUuNyAuOC00LjIgMi4zLTUuNyAzLjUtMi4zIDUuNy0yLjNsMTYgMGMyLjEgMCA0LjIgLjggNS43IDIuM3MyLjMgMy41IDIuMyA1LjctLjggNC4yLTIuMyA1LjctMy41IDIuMy01LjcgMi4zeiJdfSxZY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BhY2UtYXdlc29tZSIsaWNvbjpbNTEyLDUxMixbXSwiZTVhYyIsIk05NiAyNTZsMzIgMCAwIDI1Ni0xMjggMCAwLTE2MCAzMiAwIDAtMzIgMzIgMCAwLTMyIDMyIDAgMC0zMnptNDE2IDk2bDAgMTYwLTEyOCAwIDAtMjU2IDMyIDAgMCAzMiAzMiAwIDAgMzIgMzIgMCAwIDMyIDMyIDB6TTMyMCA2NGwzMiAwIDAgMzg0LTMyIDAgMC0zMi0xMjggMCAwIDMyLTMyIDAgMC0zODQgMzIgMCAwLTMyIDMyIDAgMC0zMiA2NCAwIDAgMzIgMzIgMCAwIDMyem0tMzIgNjRsLTY0IDAgMCA2NCA2NCAwIDAtNjR6Il19LFpjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJub2RlIixpY29uOls2NDAsNTEyLFtdLCJmNDE5IiwiTTMxNi4zIDQ1MmMtMi4xIDAtNC4yLS42LTYuMS0xLjZMMjkxIDQzOWMtMi45LTEuNi0xLjUtMi4yLS41LTIuNSAzLjgtMS4zIDQuNi0xLjYgOC43LTQgLjQtLjIgMS0uMSAxLjQgLjFsMTQuOCA4LjhjLjUgLjMgMS4zIC4zIDEuOCAwTDM3NSA0MDhjLjUtLjMgLjktLjkgLjktMS42bDAtNjYuN2MwLS43LS4zLTEuMy0uOS0xLjZsLTU3LjgtMzMuM2MtLjUtLjMtMS4yLS4zLTEuOCAwbC01Ny44IDMzLjNjLS42IC4zLS45IDEtLjkgMS42bDAgNjYuN2MwIC42IC40IDEuMiAuOSAxLjVsMTUuOCA5LjFjOC42IDQuMyAxMy45LS44IDEzLjktNS44bDAtNjUuOWMwLS45IC43LTEuNyAxLjctMS43bDcuMyAwYy45IDAgMS43IC43IDEuNyAxLjdsMCA2NS45YzAgMTEuNS02LjIgMTgtMTcuMSAxOC0zLjMgMC02IDAtMTMuMy0zLjZsLTE1LjItOC43Yy0zLjctMi4yLTYuMS02LjItNi4xLTEwLjVsMC02Ni43YzAtNC4zIDIuMy04LjQgNi4xLTEwLjVsNTcuOC0zMy40YzMuNy0yLjEgOC41LTIuMSAxMi4xIDBsNTcuOCAzMy40YzMuNyAyLjIgNi4xIDYuMiA2LjEgMTAuNWwwIDY2LjdjMCA0LjMtMi4zIDguNC02LjEgMTAuNWwtNTcuOCAzMy40Yy0xLjcgMS4xLTMuOCAxLjctNiAxLjd6TTM2MyAzODYuMmMwLTEyLjUtOC40LTE1LjgtMjYuMi0xOC4yLTE4LTIuNC0xOS44LTMuNi0xOS44LTcuOCAwLTMuNSAxLjUtOC4xIDE0LjgtOC4xIDExLjkgMCAxNi4zIDIuNiAxOC4xIDEwLjYgLjIgLjggLjggMS4zIDEuNiAxLjNsNy41IDBjLjUgMCAuOS0uMiAxLjItLjUgLjMtLjQgLjUtLjggLjQtMS4zLTEuMi0xMy44LTEwLjMtMjAuMi0yOC44LTIwLjItMTYuNSAwLTI2LjMgNy0yNi4zIDE4LjYgMCAxMi43IDkuOCAxNi4xIDI1LjYgMTcuNyAxOC45IDEuOSAyMC40IDQuNiAyMC40IDguMyAwIDYuNS01LjIgOS4yLTE3LjQgOS4yLTE1LjMgMC0xOC43LTMuOC0xOS44LTExLjQtLjEtLjgtLjgtMS40LTEuNy0xLjRsLTcuNSAwYy0uOSAwLTEuNyAuNy0xLjcgMS43IDAgOS43IDUuMyAyMS4zIDMwLjYgMjEuMyAxOC41IDAgMjktNy4yIDI5LTE5Ljh6bTU0LjUtNTAuMWMwIDYuMS01IDExLjEtMTEuMSAxMS4xcy0xMS4xLTUtMTEuMS0xMS4xYzAtNi4zIDUuMi0xMS4xIDExLjEtMTEuMSA2LS4xIDExLjEgNC44IDExLjEgMTEuMXptLTEuOCAwYzAtNS4yLTQuMi05LjMtOS40LTkuMy01LjEgMC05LjMgNC4xLTkuMyA5LjNzNC4yIDkuNCA5LjMgOS40YzUuMi0uMSA5LjQtNC4zIDkuNC05LjR6bS00LjUgNi4ybC0yLjYgMGMtLjEtLjYtLjUtMy44LS41LTMuOS0uMi0uNy0uNC0xLjEtMS4zLTEuMWwtMi4yIDAgMCA1LTIuNCAwIDAtMTIuNSA0LjMgMGMxLjUgMCA0LjQgMCA0LjQgMy4zIDAgMi4zLTEuNSAyLjgtMi40IDMuMSAxLjcgLjEgMS44IDEuMiAyLjEgMi44IC4xIDEgLjMgMi43IC42IDMuM3ptLTIuOC04LjhjMC0xLjctMS4yLTEuNy0xLjgtMS43bC0yIDAgMCAzLjUgMS45IDBjMS42IDAgMS45LTEuMSAxLjktMS44ek0xMzcuMyAxOTFjMC0yLjctMS40LTUuMS0zLjctNi40TDcyLjMgMTQ5LjNjLTEtLjYtMi4yLS45LTMuNC0xbC0uNiAwYy0xLjIgMC0yLjMgLjQtMy40IDFMMy43IDE4NC42QzEuNCAxODUuOSAwIDE4OC40IDAgMTkxbC4xIDk1YzAgMS4zIC43IDIuNSAxLjggMy4yczIuNSAuNyAzLjcgMEw0MiAyNjguM2MyLjMtMS40IDMuNy0zLjggMy43LTYuNGwwLTQ0LjRjMC0yLjYgMS40LTUuMSAzLjctNi40bDE1LjUtOC45YzEuMi0uNyAyLjQtMSAzLjctMXMyLjYgLjMgMy43IDFsMTUuNSA4LjljMi4zIDEuMyAzLjcgMy44IDMuNyA2LjRsMCA0NC40YzAgMi42IDEuNCA1LjEgMy43IDYuNGwzNi40IDIwLjljMS4xIC43IDIuNiAuNyAzLjcgMCAxLjEtLjYgMS44LTEuOSAxLjgtMy4ybC4yLTk1ek00NzIuNSA4Ny4zbDAgMTc2LjRjMCAyLjYtMS40IDUuMS0zLjcgNi40bC02MS4zIDM1LjRjLTIuMyAxLjMtNS4xIDEuMy03LjQgMGwtNjEuMy0zNS40Yy0yLjMtMS4zLTMuNy0zLjgtMy43LTYuNGwwLTcwLjhjMC0yLjYgMS40LTUuMSAzLjctNi40bDYxLjMtMzUuNGMyLjMtMS4zIDUuMS0xLjMgNy40IDBsMTUuMyA4LjhjMS43IDEgMy45LS4zIDMuOS0yLjJsMC05NGMwLTIuOCAzLTQuNiA1LjUtMy4ybDM2LjUgMjAuNGMyLjMgMS4yIDMuOCAzLjcgMy44IDYuNHptLTQ2IDEyOC45YzAtLjctLjQtMS4zLS45LTEuNmwtMjEtMTIuMmMtLjYtLjMtMS4zLS4zLTEuOSAwbC0yMSAxMi4yYy0uNiAuMy0uOSAuOS0uOSAxLjZsMCAyNC4zYzAgLjcgLjQgMS4zIC45IDEuNmwyMSAxMi4xYy42IC4zIDEuMyAuMyAxLjggMGwyMS0xMi4xYy42LS4zIC45LS45IC45LTEuNmwwLTI0LjMgLjEgMHptMjA5LjgtLjdjMi4zLTEuMyAzLjctMy44IDMuNy02LjRsMC0xNy4xYzAtMi42LTEuNC01LjEtMy43LTYuNGwtNjAuOS0zNS40Yy0yLjMtMS4zLTUuMS0xLjMtNy40IDBsLTYxLjMgMzUuNGMtMi4zIDEuMy0zLjcgMy44LTMuNyA2LjRsMCA3MC44YzAgMi43IDEuNCA1LjEgMy43IDYuNGw2MC45IDM0LjdjMi4yIDEuMyA1IDEuMyA3LjMgMGwzNi44LTIwLjVjMi41LTEuNCAyLjUtNSAwLTYuNEw1NTAgMjQxLjZjLTEuMi0uNy0xLjktMS45LTEuOS0zLjJsMC0yMi4yYzAtMS4zIC43LTIuNSAxLjktMy4ybDE5LjItMTEuMWMxLjEtLjcgMi42LS43IDMuNyAwTDU5Mi4xIDIxM2MxLjEgLjcgMS45IDEuOSAxLjkgMy4ybDAgMTcuNGMwIDIuOCAzLjEgNC42IDUuNiAzLjJsMzYuNy0yMS4zek01NTkgMjE5Yy0uNCAuMy0uNyAuNy0uNyAxLjJsMCAxMy42YzAgLjUgLjMgMSAuNyAxLjJsMTEuOCA2LjhjLjQgLjMgMSAuMyAxLjQgMEw1ODQgMjM1Yy40LS4zIC43LS43IC43LTEuMmwwLTEzLjZjMC0uNS0uMy0xLS43LTEuMmwtMTEuOC02LjhjLS40LS4zLTEtLjMtMS40IDBMNTU5IDIxOXpNMzA0LjggMjYyLjVsMC03MC40YzAtMi42LTEuNi01LjEtMy45LTYuNGwtNjEuMS0zNS4yYy0yLjEtMS4yLTUtMS40LTcuNCAwbC02MS4xIDM1LjJjLTIuMyAxLjMtMy45IDMuNy0zLjkgNi40bDAgNzAuNGMwIDIuOCAxLjkgNS4yIDQgNi40bDYxLjIgMzUuMmMyLjQgMS40IDUuMiAxLjMgNy40IDBsNjEtMzUuMmMxLjgtMSAzLjEtMi43IDMuNi00LjcgLjEtLjUgLjItMS4xIC4yLTEuN3pNMjMwLjUgMTM3LjZsLS44IC41IDEuMSAwLS4zLS41em03Ni4yIDEzMC4ybC0uNC0uNyAwIC45IC40LS4yeiJdfSxYY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29kZXBlbiIsaWNvbjpbNTEyLDUxMixbXSwiZjFjYiIsIk01MDIuMyAxNTkuN2wtMjM0LTE1NmMtOC00LjktMTYuNS01LTI0LjYgMGwtMjM0IDE1NmMtNiA0LTkuNyAxMS4xLTkuNyAxOC4zTDAgMzM0YzAgNy4xIDMuNyAxNC4zIDkuNyAxOC4zbDIzNCAxNTZjOCA0LjkgMTYuNSA1IDI0LjYgMGwyMzQtMTU2YzYtNCA5LjctMTEuMSA5LjctMTguM2wwLTE1NmMwLTcuMS0zLjctMTQuMy05LjctMTguM3pNMjc4IDYzLjFsMTcyLjMgMTE0LjktNzYuOSA1MS40LTk1LjQtNjMuNyAwLTEwMi42em0tNDQgMEwyMzQgMTY1LjcgMTM4LjYgMjI5LjQgNjEuNyAxNzggMjM0IDYzLjF6TTQ0IDIxOS4xTDk5LjEgMjU2IDQ0IDI5Mi44IDQ0IDIxOS4xek0yMzQgNDQ4LjhMNjEuNyAzMzQgMTM4LjYgMjgyLjYgMjM0IDM0Ni4zIDIzNCA0NDguOHpNMjU2IDMwOGwtNzcuNy01MiA3Ny43LTUyIDc3LjcgNTItNzcuNyA1MnptMjIgMTQwLjlsMC0xMDIuNiA5NS40LTYzLjcgNzYuOSA1MS40LTE3Mi4zIDExNC45em0xOTAtMTU2bC01NS4xLTM2LjkgNTUuMS0zNi45IDAgNzMuN3oiXX0sUWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJhdmVscnkiLGljb246WzUxMiw1MTIsW10sImYyZDkiLCJNNDk4LjYgMjM0LjJjLTEuMi0xMC4zLTEuNy0yMC44LTMuNy0zMS0yLjUtMTIuNC01LjctMjQuNi05LjYtMzYuNi02LjgtMjAuOS0xNy4yLTQwLjMtMzAuOS01Ny41LTUuOS03LjYtMTIuMS0xNC44LTE4LjgtMjEuNy0xNC4xLTE0LTMwLTI2LjEtNDcuMS0zNi4xLTE3LjgtMTAuNi0zNi44LTE4LjktNTYuNy0yNC43LTExLTMuMS0yMi4zLTUuNC0zMy41LTcuNi02LjgtMS4zLTEzLjctMS43LTIwLjYtMi41LS4zIDAtLjYtLjQtLjktLjYtMTAuOCAwLTIxLjUgMC0zMi4zIDAtMi40IC40LTQuOCAuOS03LjIgMS4yLTExLjYgMS4yLTIzLjEgMy42LTM0LjMgNy4xLTEzLjggNC4xLTI3LjEgOS42LTM5LjggMTYuNC0xMy4zIDctMjYuMSAxNS4xLTM4LjEgMjQuMi02LjIgNC42LTEyLjMgOS40LTE4IDE0LjUtMTAuMiA5LjItMjAuNCAxOC40LTI5LjkgMjguMy0xMi44IDEzLjMtMjQuMSAyOC4xLTMzLjYgNDQtOC42IDE0LTE1LjUgMjktMjAuNSA0NC42LTcuMiAyMi43LTEwLjMgNDYuNi05LjIgNzAuMyAuNiAxMy41IDIgMjYuOSA0LjQgNDAuMiAzLjQgMTguNCA5IDM2LjMgMTYuNyA1My4zIDEzLjYgMjkuMiAzMi4xIDUxLjUgNTAuNCA2Ny45IDEyLjggMTEuNiAyNi44IDIxLjkgNDEuOCAzMC42IDE3LjcgMTAuNCAzNi40IDE4LjkgNTUuOSAyNS4zIDEzLjMgNC4zIDI2LjkgNy42IDQwLjYgOS44IDYuMSAxIDEyLjMgMS4zIDE4LjQgMS45IC40IC4xIC44IC4zIDEuMiAuNmwzMi4zIDBjMi41LS40IDUtLjkgNy41LTEuMSAxNi4zLTEuMyAzMi4xLTUuMyA0Ny41LTEwLjcgMTcuMi01LjkgMzMuNy0xMy45IDQ5LTIzLjggOS43LTYuNCAxOS40LTEzLjEgMjguNy0yMC4xIDUuOC00LjMgMTEtOS41IDE2LjMtMTQuNSA0LTMuNyA3LjgtNy42IDExLjUtMTEuNSAxMi0xMi43IDIyLjYtMjYuNiAzMS40LTQxLjYgOS41LTE2IDE3LjQtMzIuOSAyMi4zLTUwLjkgMi45LTEwLjQgNC45LTIxIDctMzEuNyAxLTUuMyAxLjMtMTAuNyAxLjktMTYuMSAwLS4zIC40LS42IC42LS45bDAtMzcuMWMtLjItLjYtLjQtMS4yLS42LTEuOHptLTE2MS4xLTEuMnMtMTYuNi0zLTI4LjUtM2MtMjcuMiAwLTMzLjYgMTQuOS0zMy42IDM3bDAgOTMuNy03My41IDAgMC0xOTAuNyA3My41IDAgMCAzMS45YzguOS0yNi44IDI2LjgtMzYuMiA2Mi0zNi4ybDAgNjcuM3oiXX0sS2N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFsaXBheSIsaWNvbjpbNDQ4LDUxMixbXSwiZjY0MiIsIk0zNzcuNyAzMkw3MC4zIDMyQzMxLjQgMzIgMCA2My40IDAgMTAyLjNMMCA0MDkuN0MwIDQ0OC42IDMxLjQgNDgwIDcwLjMgNDgwbDMwNy41IDBjMzguNSAwIDY5LjgtMzEuMSA3MC4zLTY5LjYtNDYtMjUuNi0xMTAuNi02MC4zLTE3MS42LTg4LjQtMzIuMSA0NC04NC4xIDgxLTE0OC42IDgxLTcwLjYgMC05My43LTQ1LjMtOTctNzYuNC00LTM5IDE0LjktODEuNSA5OS41LTgxLjUgMzUuNCAwIDc5LjQgMTAuMiAxMjcuMSAyNSAxNi41LTMwLjEgMjYuNS02MC4zIDI2LjUtNjAuM2wtMTc4LjIgMCAwLTE2LjcgOTIuMSAwIDAtMzEuMi0xMDkuNCAwIDAtMTkgMTA5LjQgMCAwLTUwLjQgNTAuOSAwIDAgNTAuNCAxMDkuNCAwIDAgMTktMTA5LjQgMCAwIDMxLjIgODguOCAwcy0xNS4yIDQ2LjYtMzguMyA5MC45YzQ4LjkgMTYuNyAxMDAgMzYgMTQ4LjYgNTIuN2wwLTIzNC40Yy4yLTM4LjctMzEuMi03MC4zLTY5LjktNzAuM3pNNDcuMyAzMjNjMSAyMC4yIDEwLjIgNTMuNyA2OS45IDUzLjcgNTIuMSAwIDkyLjYtMzkuNyAxMTcuOS03Mi45LTQ0LjYtMTguNy04NC41LTMxLjQtMTA5LjQtMzEuNC02Ny40IDAtNzkuNCAzMy4xLTc4LjQgNTAuNnoiXX0sSmN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWFtZXgiLGljb246WzU3Niw1MTIsW10sImYxZjMiLCJNMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xLjEtNjEuNyAwLTMxLjktMzUuMS0zMS45IDM1LjEtMjAzLjcgMCAwLTE2My44LTY1LjggMCA4MS43LTE4NC43IDc4LjYgMCAyOC4xIDYzLjIgMC02My4yIDk3LjIgMCAxNi45IDQ3LjYgMTctNDcuNiA3NS41IDAgMC0yLjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMnptNDQwLjQtMjEuN2w0Mi4yLTQ2LjMgNDIgNDYuMyA1MS40IDAtNjgtNzIuMSA2OC03Mi4xLTUwLjYgMC00MiA0Ni43LTQxLjUtNDYuNy01MS40IDAgNjcuNSA3Mi41LTY3LjQgNzEuNiAwLTMzLjEtODMgMCAwLTIyLjIgODAuOSAwIDAtMzIuMy04MC45IDAgMC0yMi40IDgzIDAgMC0zMy4xLTEyMiAwIDAgMTQzLjIgMTcxLjggMHptOTYuMy03MmwzOS4zIDQxLjkgMC04My4zLTM5LjMgNDEuNHptLTM2LjMtOTJsMzYuOS0xMDAuNiAwIDEwMC42IDM4LjcgMCAwLTE0My4zLTYwLjIgMC0zMi4yIDg5LjMtMzEuOS04OS4zLTYxLjIgMCAwIDE0My4xLTYzLjItMTQzLjEtNTEuMiAwLTYyLjQgMTQzLjMgNDMgMCAxMS45LTI4LjcgNjUuOSAwIDEyIDI4LjcgODIuNyAwIDAtMTAwLjMgMzYuOCAxMDAuMyAzNC40IDB6TTI4MiAxODUuNGwxOS41LTQ2LjkgMTkuNCA0Ni45LTM4LjkgMHoiXX0sZTZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpZWQtcGlwZXItYWx0IixpY29uOls1NzYsNTEyLFtdLCJmMWE4IiwiTTI0NCAyNDZjLTMuMi0yLTYuMy0yLjktMTAuMS0yLjktNi42IDAtMTIuNiAzLjItMTkuMyAzLjdsMS43IDQuOSAyNy43LTUuN3pNMzc5LjkgNDQzLjljLTE5IDAtNjQuMSA5LjUtNzkuOSAxOS44bDYuOSA0NS4xYzM1LjcgNi4xIDcwLjEgMy42IDEwNi05LjgtNC44LTEwLTIzLjUtNTUuMS0zMy01NS4xek0zNDAuOCAxNzdjNi42IDIuOCAxMS41IDkuMiAyMi43IDIyLjEgMi0xLjQgNy41LTUuMiA3LjUtOC42IDAtNC45LTExLjgtMTMuMi0xMy4yLTIzIDExLjItNS43IDI1LjItNiAzNy42LTguOSA2OC4xLTE2LjQgMTE2LjMtNTIuOSAxNDYuOC0xMTYuNyA2LjEtMTIuNiAxMS44LTI1LjggMTIuNC0zOS45bC0yIDIuNmMtMjguNCA1MC0zMyA2My4yLTgxLjMgMTAwLTMxLjkgMjQuNC02OS4yIDQwLjItMTA2LjYgNTQuNmwtNi4zLS4zIDAtMjEuOGMtMTkuNiAxLjYtMTkuNy0xNC42LTMxLjYtMjMtMTguNyAyMC42LTMxLjYgNDAuOC01OC45IDUxLjEtMTIuNyA0LjgtMTkuNiAxMC0yNS45IDIxLjggMzQuOS0xNi40IDkxLjItMTMuNSA5OC44LTEwek01NTUuNSAwbC0uNiAxLjEtLjMgLjkgLjYtLjYgLjMtMS40ek00OTYuMyAzODIuMWMtMzMuOS01Ni45LTc1LjMtMTE4LjQtMTUwLTExNS41bC0uMy02Yy0xLjEtMTMuNSAzMi44IDMuMiAzNS4xLTMxbC0xNC40IDcuMmMtMTkuOC00NS43LTguNi01NC4zLTY1LjUtNTQuMy0xNC43IDAtMjYuNyAxLjctNDEuNCA0LjYgMi45IDE4LjYgMi4yIDM2LjctMTAuOSA1MC4zbDE5LjUgNS41Yy0xLjcgMy4yLTIuOSA2LjMtMi45IDkuOCAwIDIxIDQyLjggMi45IDQyLjggMzMuNiAwIDE4LjQtMzYuOCA2MC4xLTU0LjkgNjAuMS04IDAtNTMuNy01MC01My40LTYwLjFsLjMtNC42IDUyLjMtMTEuNWMxMy0yLjYgMTIuMy0yMi43LTIuOS0yMi43LTMuNyAwLTQzLjEgOS4yLTQ5LjQgMTAuNi0yLTUuMi03LjUtMTQuMS0xMy44LTE0LjEtMy4yIDAtNi4zIDMuMi05LjUgNC05LjIgMi42LTMxIDIuOS0yMS41IDIwLjFMMTUuOSAyOTguNWMtNS41IDEuMS04LjkgNi4zLTguOSAxMS44IDAgNiA1LjUgMTAuOSAxMS41IDEwLjkgOCAwIDEzMS4zLTI4LjQgMTQ3LjQtMzIuMiAyLjYgMy4yIDQuNiA2LjMgNy44IDguNiAyMC4xIDE0LjQgNTkuOCA4NS45IDc2LjQgODUuOSAyNC4xIDAgNTgtMjIuNCA3MS4zLTQxLjkgMy4yLTQuMyA2LjktNy41IDEyLjQtNi45IC42IDEzLjgtMzEuNiAzNC4yLTMzIDQzLjctMS40IDEwLjItMSAzNS4yLS4zIDQxLjEgMjYuNyA4LjEgNTItMy42IDc3LjktMi45IDQuMy0yMSAxMC42LTQxLjkgOS44LTYzLjVsLS4zLTkuNWMtMS40LTM0LjItMTAuOS0zOC41LTM0LjgtNTguNi0xLjEtMS4xLTIuNi0yLjYtMy43LTQgMi4yLTEuNCAxLjEtMSA0LjYtMS43IDg4LjUgMCA1Ni4zIDE4My42IDExMS41IDIyOS45IDMzLjEtMTUgNzIuNS0yNy45IDEwMy41LTQ3LjItMjktMjUuNi01Mi42LTQ1LjctNzIuNy03OS45ek0zMDAuMSA0MjguMmwwIDI3LjIgMTEuOC0zLjQtMi45LTIzLjgtOC45IDB6TTIzMS40IDI3Ny44bDI0LjEgNjEuMiAyMS0xMy44LTMxLjMtNTAuOS0xMy44IDMuNXptODQuNCAxNTQuOWwyIDEyLjRjOS0xLjUgNTguNC02LjYgNTguNC0xNC4xIDAtMS40LS42LTMuMi0uOS00LjYtMjYuOCAwLTM2LjkgMy44LTU5LjUgNi4zeiJdfSx0NnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGV0dGVyYm94ZCIsaWNvbjpbNjQwLDUxMixbXSwiZTYyZCIsIk01MjEuMyAxMjhDNTg2LjkgMTI4IDY0MCAxODEuMSA2NDAgMjQ2LjZTNTg2LjkgMzY1LjIgNTIxLjMgMzY1LjJjLTQyLjUgMC03OS43LTIyLjMtMTAwLjctNTUuOCAxMS40LTE4LjIgMTgtMzkuNyAxOC02Mi44cy02LjYtNDQuNi0xOC02Mi44bC44LTEuMmMyMC44LTMyLjMgNTYuOC01My45IDk3LjktNTQuNmwyIDB6TTMyMCAxMjhjNDIuNSAwIDc5LjcgMjIuMyAxMDAuNyA1NS44LTExLjQgMTguMi0xOCAzOS43LTE4IDYyLjhzNi42IDQ0LjYgMTggNjIuOGwtLjggMS4yYy0yMC44IDMyLjMtNTYuOCA1My45LTk3LjkgNTQuNmwtMiAwYy00Mi41IDAtNzkuNy0yMi4zLTEwMC43LTU1LjggMTEuNC0xOC4yIDE4LTM5LjcgMTgtNjIuOHMtNi42LTQ0LjYtMTgtNjIuOGwuOC0xLjJjMjAuOC0zMi4zIDU2LjgtNTMuOSA5Ny45LTU0LjZsMiAwem0tMjAxLjMgMGM0Mi41IDAgNzkuNyAyMi4zIDEwMC43IDU1LjgtMTEuNCAxOC4yLTE4IDM5LjctMTggNjIuOHM2LjYgNDQuNiAxOCA2Mi44bC0uOCAxLjJjLTIwLjggMzIuMy01Ni44IDUzLjktOTcuOSA1NC42bC0yIDBDNTMuMSAzNjUuMSAwIDMxMi4xIDAgMjQ2LjZTNTMuMSAxMjggMTE4LjcgMTI4eiJdfSxhNnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlcmEiLGljb246WzUxMiw1MTIsW10sImYyNmEiLCJNMzIxLjkgMzIuN2MtMTcwLjIgMC0yNTIuNiAyMjMuOC0xNDcuNSAzNTUuMSAzNi41IDQ1LjQgODguNiA3NS42IDE0Ny41IDc1LjYgMzYuMyAwIDcwLjMtMTEuMSA5OS40LTMwLjQtNDMuOCAzOS4yLTEwMS45IDYzLTE2NS4zIDYzLTMuOSAwLTggMC0xMS45LS4zLTEzMS41LTYuMS0yMzYuMS0xMTQuNi0yMzYuMS0yNDcuNyAwLTEzNyAxMTEtMjQ4IDI0OC0yNDhsLjggMGM2My4xIC4zIDEyMC43IDI0LjEgMTY0LjQgNjMuMS0yOS0xOS40LTYzLjEtMzAuNC05OS4zLTMwLjR6TTQyMy43IDQzMC40Yy00MC45IDI0LjctOTAuNyAyMy42LTEzMi01LjggNTYuMi0yMC41IDk3LjctOTEuNiA5Ny43LTE3Ni42IDAtODQuNy00MS4yLTE1NS44LTk3LjQtMTc2LjYgNDEuOC0yOS4yIDkxLjItMzAuMyAxMzIuOS01IDEwNS45IDk4LjcgMTA1LjUgMjY1LjctMS4yIDM2NHoiXX0scjZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlaWJvIixpY29uOls1MTIsNTEyLFtdLCJmMThhIiwiTTQwNyAxNzcuNmM3LjYtMjQtMTMuNC00Ni44LTM3LjQtNDEuNy0yMiA0LjgtMjguOC0yOC4xLTcuMS0zMi44IDUwLjEtMTAuOSA5Mi4zIDM3LjEgNzYuNSA4NC44LTYuOCAyMS4yLTM4LjggMTAuOC0zMi0xMC4zek0yMTQuOCA0NDYuN2MtMTA2LjMgMC0yMTQuOC01MS40LTIxNC44LTEzNi4zIDAtNDQuMyAyOC05NS40IDc2LjMtMTQzLjcgOTkuNy05OS43IDIwMy4yLTEwMC45IDE3My42LTUuNy00IDEzLjEgMTIuMyA1LjcgMTIuMyA2IDc5LjUtMzMuNiAxNDAuNS0xNi44IDExNCA1MS40LTMuNyA5LjQgMS4xIDEwLjkgOC4zIDEzLjEgMTM1LjcgNDIuMyAzNC44IDIxNS4yLTE2OS43IDIxNS4yek0zNTguNSAzMDAuNGMtNS40LTU1LjctNzguNS05NC0xNjMuNC04NS43LTg0LjggOC42LTE0OC44IDYwLjMtMTQzLjQgMTE2czc4LjUgOTQgMTYzLjQgODUuN2M4NC44LTguNiAxNDguOC02MC4zIDE0My40LTExNnpNMzQ3LjkgMzUuMWMtMjUuOSA1LjYtMTYuOCA0My43IDguMyAzOC4zIDcyLjMtMTUuMiAxMzQuOCA1Mi44IDExMS43IDEyNC03LjQgMjQuMiAyOS4xIDM3IDM3LjQgMTIgMzEuOS05OS44LTU1LjEtMTk1LjktMTU3LjQtMTc0LjN6bS03OC41IDMxMWMtMTcuMSAzOC44LTY2LjggNjAtMTA5LjEgNDYuMy00MC44LTEzLjEtNTgtNTMuNC00MC4zLTg5LjcgMTcuNy0zNS40IDYzLjEtNTUuNCAxMDMuNC00NS4xIDQyIDEwLjggNjMuMSA1MC4yIDQ2IDg4LjV6bS04Ni4zLTMwYy0xMi45LTUuNC0zMCAuMy0zOCAxMi45LTguMyAxMi45LTQuMyAyOCA4LjYgMzQgMTMuMSA2IDMwLjggLjMgMzkuMS0xMi45IDgtMTMuMSAzLjctMjguMy05LjctMzR6bTMyLjYtMTMuNGMtNS4xLTEuNy0xMS40IC42LTE0LjMgNS40LTIuOSA1LjEtMS40IDEwLjYgMy43IDEyLjkgNS4xIDIgMTEuNy0uMyAxNC42LTUuNCAyLjgtNS4yIDEuMS0xMC45LTQtMTIuOXoiXX0saTZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlYWRtZSIsaWNvbjpbNTc2LDUxMixbXSwiZjRkNSIsIk01MjguMyA0Ni41bC0xMzkuOCAwYy00OC4xIDAtODkuOSAzMy4zLTEwMC40IDgwLjMtMTAuNi00Ny01Mi4zLTgwLjMtMTAwLjQtODAuM0w0OCA0Ni41QzIxLjUgNDYuNSAwIDY4IDAgOTQuNUwwIDM0MC4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDg5LjcgMGMxMDIuMiAwIDEzMi43IDI0LjQgMTQ3LjMgNzUgLjcgMi44IDUuMiAyLjggNiAwIDE0LjctNTAuNiA0NS4yLTc1IDE0Ny4zLTc1bDg5LjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI0NS43YzAtMjYuNC0yMS4zLTQ3LjktNDcuNy00OC4xek0yNDIgMzExLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwek01MDEuMyAzMTEuOGMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOGMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi44LS4xIDB6Il19LG82dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb2xhbmciLGljb246WzY0MCw1MTIsW10sImU0MGYiLCJNNDAwLjEgMTk0LjhjLTEwLjkgMi44LTE5LjkgNC4zLTI5LjEgNy42LTcuMyAxLjktMTQuNyAzLjktMjMuMiA2LjFsLS42IC4xYy00LjIgMS4yLTQuNiAxLjMtOC41LTMuMi00LjctNS4zLTguMS04LjctMTQuNi0xMS45LTE5LjctOS42LTM4LjctNi44LTU2LjQgNC43LTIxLjIgMTMuNy0zMi4xIDM0LTMxLjggNTkuMiAuMyAyNSAxNy40IDQ1LjUgNDEuMiA0OC45IDIyIDIuOCAzOS44LTQuNiA1My44LTIwLjUgMi4xLTIuNiA0LTUuMyA2LjEtOC4zIC44LTEgMS41LTIuMSAyLjMtMy4zbC02MC4xIDBjLTYuNSAwLTguMS00LTUuOS05LjMgNC05LjcgMTEuNS0yNS45IDE1LjktMzQgLjktMS44IDMuMS01LjggNi45LTUuOGwxMDEuMSAwYzQuNS0xMy40IDExLjgtMjYuOSAyMS42LTM5LjcgMjIuNy0yOS45IDQ5LjMtNDUuNSA4Ny4yLTUyIDMxLjgtNS42IDYxLjctMi41IDg4LjkgMTUuOSAyNC42IDE2LjggMzkuOCAzOS42IDQzLjkgNjkuNSA1LjMgNDIuMS02LjkgNzYuMy0zNi43IDEwNS42LTE5LjcgMjAuOS00NC45IDM0LTczLjkgMzkuOS01LjYgMS0xMS4xIDEuNS0xNi41IDItMi45IC4yLTUuNyAuNS04LjUgLjgtMjguMy0uNi01NC4yLTguNy03Ni0yNy40LTE1LjMtMTMuMy0yNS45LTI5LjYtMzEuMS00OC41LTMuNyA3LjMtOCAxNC40LTE0IDIxLjEtMjEuNiAyOS42LTUwLjkgNDgtODcuOSA1Mi45LTMwLjYgNC4xLTU4LjktMS44LTgzLjktMjAuNS0yMy0xNy41LTM2LjEtNDAuNS0zOS41LTY5LjItNC4xLTM0IDUuOS02NS40IDI2LjQtOTEuMyAyMi4yLTI5IDUxLjUtNDcuNCA4Ny4zLTUzLjkgMjkuMy02LjIgNTcuMy0xLjkgODIuNiAxNS4zIDE2LjUgMTAuOSAyOC4zIDI1LjggMzYuMSA0My45IDEuOSAyLjggLjYgNC40LTMuMSA1LjN6TTQ4LjMgMjAwLjRjLTEuMyAwLTEuNi0uNi0uOS0xLjZsNi42LTguNGMuNi0uOSAyLjItMS41IDMuNC0xLjVsMTExLjMgMGMxLjIgMCAxLjUgLjkgLjkgMS44bC01LjMgOC4xYy0uNiAxLTIuMiAxLjktMy4xIDEuOWwtMTEyLjgtLjN6TTEuMiAyMjkuMWMtMS4yIDAtMS42LS43LS45LTEuNmw2LjUtOC40Yy42LS45IDIuMi0xLjYgMy40LTEuNmwxNDIuMSAwYzEuMiAwIDEuOCAxIDEuNSAxLjlsLTIuNSA3LjVjLS4zIDEuMi0xLjUgMS45LTIuOCAxLjlMMS4yIDIyOS4xem03NC41IDI2LjhjLS42IC45LS4zIDEuOCAuOSAxLjhsNjggLjNjLjkgMCAyLjItLjkgMi4yLTIuMWwuNi03LjVjMC0xLjMtLjYtMi4yLTEuOS0yLjJsLTYyLjMgMGMtMS4yIDAtMi41IC45LTMuMSAxLjlsLTQuNCA3Ljh6bTUwMS41LTE4Yy0uMi0yLjYtLjMtNC44LS43LTctNS42LTMwLjgtMzQtNDguMy02My42LTQxLjQtMjkgNi41LTQ3LjcgMjQuOS01NC41IDU0LjItNS42IDI0LjMgNi4yIDQ4LjkgMjguNiA1OC45IDE3LjIgNy41IDM0LjMgNi42IDUwLjgtMS45IDI0LjYtMTMuNiAzOC0zMi43IDM5LjYtNTkuNS0uMS0xLjItLjEtMi4zLS4yLTMuM3oiXX0sczZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0YWNrLWV4Y2hhbmdlIixpY29uOls0NDgsNTEyLFtdLCJmMThkIiwiTTE4LjEgMzMyLjNsNDEyLjcgMCAwIDIyYzAgMzcuNy0yOS4zIDY4LTY1LjMgNjhsLTE5IDAtODYuOCA4OS43IDAtODkuNy0xNzYuMyAwYy0zNiAwLTY1LjMtMzAuMy02NS4zLTY4bDAtMjJ6bTAtMjMuNmw0MTIuNyAwIDAtODUtNDEyLjcgMCAwIDg1em0wLTEwOS40bDQxMi43IDAgMC04NS00MTIuNyAwIDAgODV6TTM2NS40IDBMODMuNCAwYy0zNiAwLTY1LjMgMzAuMy02NS4zIDY3LjdsMCAyMi4zIDQxMi43IDAgMC0yMi4zQzQzMC43IDMwLjMgNDAxLjQgMCAzNjUuNCAweiJdfSxuNnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3VscCIsaWNvbjpbMjU2LDUxMixbXSwiZjNhZSIsIk0yMTAgMzkxLjFsLTE0LjEgMjQuNi00LjYgODAuMmMwIDguOS0yOC4zIDE2LjEtNjMuMSAxNi4xcy02My4xLTcuMi02My4xLTE2LjFsLTUuOC03OS40LTE0LjktMjUuNGM0MS4yIDE3LjMgMTI2IDE2LjcgMTY1LjYgMHpNMTQgMTM3LjhMMjcuNiAyNjMuM2M1LjktMjAgMjAuOC00NyA0MC01NS4yIDYuMy0yLjcgMTIuNy0yLjcgMTguNyAuOSA1LjIgMyA5LjYgOS4zIDEwLjEgMTEuOCAxLjIgNi41LTIgOS4xLTQuNSA5LjEtMyAwLTUuMy00LjYtNi44LTcuMy00LjEtNy4zLTEwLjMtNy42LTE2LjktMi44LTYuOSA1LTEyLjkgMTMuNC0xNy4xIDIwLjctNS4xIDguOC05LjQgMTguNS0xMiAyOC4yLTEuNSA1LjYtMi45IDE0LjYtLjYgMTkuOSAxIDIuMiAyLjUgMy42IDQuOSAzLjYgNSAwIDEyLjMtNi42IDE1LjgtMTAuMSA0LjUtNC41IDEwLjMtMTEuNSAxMi41LTE2bDUuMi0xNS41YzIuNi02LjggOS45LTUuNiA5LjkgMCAwIDEwLjItMy43IDEzLjYtMTAgMzQuNy01LjggMTkuNS03LjYgMjUuOC03LjYgMjUuOC0uNyAyLjgtMy40IDcuNS02LjMgNy41LTEuMiAwLTIuMS0uNC0yLjYtMS4yLTEtMS40LS45LTUuMy0uOC02LjMgLjItMy4yIDYuMy0yMi4yIDcuMy0yNS4yLTIgMi4yLTQuMSA0LjQtNi40IDYuNi01LjQgNS4xLTE0LjEgMTEuOC0yMS41IDExLjgtMy40IDAtNS42LS45LTcuNy0yLjRsNy42IDc5LjZjMiA1IDM5LjIgMTcuMSA4OC4yIDE3LjEgNDkuMSAwIDg2LjMtMTIuMiA4OC4yLTE3LjFsMTAuOS05NC42Yy01LjcgNS4yLTEyLjMgMTEuNi0xOS42IDE0LjgtNS40IDIuMy0xNy40IDMuOC0xNy40LTUuNyAwLTUuMiA5LjEtMTQuOCAxNC40LTIxLjUgMS40LTEuNyA0LjctNS45IDQuNy04LjEgMC0yLjktNi0yLjItMTEuNyAyLjUtMy4yIDIuNy02LjIgNi4zLTguNyA5LjctNC4zIDYtNi42IDExLjItOC41IDE1LjUtNi4yIDE0LjItNC4xIDguNi05LjEgMjItNSAxMy4zLTQuMiAxMS44LTUuMiAxNC0uOSAxLjktMi4yIDMuNS00IDQuNS0xLjkgMS00LjUgLjktNi4xLS4zLS45LS42LTEuMy0xLjktMS4zLTMuNyAwLS45IC4xLTEuOCAuMy0yLjcgMS41LTYuMSA3LjgtMTguMSAxNS0zNC4zIDEuNi0zLjcgMS0yLjYgLjgtMi4zLTYuMiA2LTEwLjkgOC45LTE0LjQgMTAuNS01LjggMi42LTEzIDIuNi0xNC41LTQuMS0uMS0uNC0uMS0uOC0uMi0xLjItMTEuOCA5LjItMjQuMyAxMS43LTIwLTguMS00LjYgOC4yLTEyLjYgMTQuOS0yMi40IDE0LjktNC4xIDAtNy4xLTEuNC04LjYtNS4xLTIuMy01LjUgMS4zLTE0LjkgNC42LTIzLjggMS43LTQuNSA0LTkuOSA3LjEtMTYuMiAxLjYtMy40IDQuMi01LjQgNy42LTQuNSAuNiAuMiAxLjEgLjQgMS42IC43IDIuNiAxLjggMS42IDQuNSAuMyA3LjItMy44IDcuNS03LjEgMTMtOS4zIDIwLjgtLjkgMy4zLTIgOSAxLjUgOSAyLjQgMCA0LjctLjggNi45LTIuNCA0LjYtMy40IDguMy04LjUgMTEuMS0xMy41IDItMy42IDQuNC04LjMgNS42LTEyLjMgLjUtMS43IDEuMS0zLjMgMS44LTQuOCAxLjEtMi41IDIuNi01LjEgNS4yLTUuMSAxLjMgMCAyLjQgLjUgMy4yIDEuNSAxLjcgMi4yIDEuMyA0LjUgLjQgNi45LTIgNS42LTQuNyAxMC42LTYuOSAxNi43LTEuMyAzLjUtMi43IDgtMi43IDExLjcgMCAzLjQgMy43IDIuNiA2LjggMS4yIDIuNC0xLjEgNC44LTIuOCA2LjgtNC41IDEuMi00LjkgLjktMy44IDI2LjQtNjguMiAxLjMtMy4zIDMuNy00LjcgNi4xLTQuNyAxLjIgMCAyLjIgLjQgMy4yIDEuMSAxLjcgMS4zIDEuNyA0LjEgMSA2LjItLjcgMS45LS42IDEuMy00LjUgMTAuNS01LjIgMTIuMS04LjYgMjAuOC0xMy4yIDMxLjktMS45IDQuNi03LjcgMTguOS04LjcgMjIuMy0uNiAyLjItMS4zIDUuOCAxIDUuOCA1LjQgMCAxOS4zLTEzLjEgMjMuMS0xNyAuMi0uMyAuNS0uNCAuOS0uNiAuNi0xLjkgMS4yLTMuNyAxLjctNS41IDEuNC0zLjggMi43LTguMiA1LjMtMTEuMyAuOC0xIDEuNy0xLjYgMi43LTEuNiAyLjggMCA0LjIgMS4yIDQuMiA0IDAgMS4xLS43IDUuMS0xLjEgNi4yIDEuNC0xLjUgMi45LTMgNC41LTQuNSAxNS0xMy45IDI1LjctNi44IDI1LjcgLjIgMCA3LjQtOC45IDE3LjctMTMuOCAyMy40LTEuNiAxLjktNC45IDUuNC01IDYuNCAwIDEuMyAuOSAxLjggMi4yIDEuOCAyIDAgNi40LTMuNSA4LTQuNyA1LTMuOSAxMS44LTkuOSAxNi42LTE0LjFsMTQuOC0xMzYuOGMtMzAuNSAxNy4xLTE5Ny42IDE3LjItMjI4LjMgLjJ6bTIyOS43LTguNWMwIDIxLTIzMS4yIDIxLTIzMS4yIDAgMC04LjggNTEuOC0xNS45IDExNS42LTE1LjkgOSAwIDE3LjggLjEgMjYuMyAuNEwxNjcgNjUuMSAyMjguMyAuNmMxLjQtMS40IDUuOC0uMiA5LjkgMy41czYuNiA3LjkgNS4zIDkuM2wtLjEgLjEtNTcuMyA2MC41LTEwIDQwLjdjMzkuOSAyLjYgNjcuNiA4LjEgNjcuNiAxNC42em0tNjkuNCA0LjZjMC0uOC0uOS0xLjUtMi41LTIuMWwtLjIgLjhjMCAxLjMtNSAyLjQtMTEuMSAyLjRzLTExLjEtMS4xLTExLjEtMi40YzAtLjEgMC0uMiAuMS0uM2wuMi0uN2MtMS44IC42LTMgMS40LTMgMi4zIDAgMi4xIDYuMiAzLjcgMTMuNyAzLjcgNy43IC4xIDEzLjktMS42IDEzLjktMy43eiJdfSxsNnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWVscCIsaWNvbjpbMzg0LDUxMixbXSwiZjFlOSIsIk00Mi45IDI0MC4zbDk5LjYgNDguNmMxOS4yIDkuNCAxNi4yIDM3LjUtNC41IDQyLjdMMzAuNSAzNTguNWMtMy4yIC44LTYuNCAuOS05LjYgLjNzLTYuMi0xLjgtOC45LTMuNy00LjktNC4zLTYuNi03LjEtMi43LTUuOS0zLjEtOS4yYy0zLjMtMjguOC0uMi01Ny45IDktODUuMyAxLTMuMSAyLjctNS45IDQuOS04LjNzNC45LTQuMiA3LjktNS41IDYuMi0xLjggOS41LTEuOCA2LjQgLjkgOS4zIDIuM3ptNDQgMjM5LjNjMjMuOCAxNi4zIDUwLjkgMjcuMyA3OS40IDMyLjEgMy4yIC42IDYuNSAuNCA5LjYtLjRzNi4xLTIuMyA4LjYtNC40IDQuNi00LjYgNi03LjUgMi4zLTYuMSAyLjQtOS40bDMuOS0xMTAuOGMuNy0yMS4zLTI1LjUtMzEuOS0zOS44LTE2LjFMODIuOCA0NDUuNWMtMi4yIDIuNC0zLjggNS4zLTQuOCA4LjRzLTEuMyA2LjQtLjkgOS42IDEuNSA2LjMgMy4xIDkuMSAzLjkgNS4yIDYuNiA3bDAgMHpNMjMyLjIgMzY5LjdsNTguOCA5NGMxLjcgMi44IDQgNS4xIDYuOCA2LjlzNS44IDMgOSAzLjUgNi41IC4zIDkuNy0uNSA2LjEtMi40IDguNi00LjRjMjIuMy0xOC40IDQwLjMtNDEuNSA1Mi43LTY3LjYgMS40LTIuOSAyLjEtNi4xIDIuMi05LjRzLS42LTYuNS0xLjktOS40LTMuMi01LjctNS42LTcuOC01LjItMy45LTguMy00LjlMMjU4LjcgMzM1LjdjLTIwLjMtNi41LTM3LjggMTUuOC0yNi41IDMzLjl6TTM4MC42IDIzNy40Yy0xMS41LTI2LjUtMjguNy01MC4yLTUwLjQtNjkuMy0yLjQtMi4xLTUuMy0zLjctOC40LTQuN3MtNi40LTEuMi05LjYtLjgtNi4zIDEuNS05LjEgMy4yLTUuMSA0LTYuOSA2LjdsLTYyIDkxLjljLTExLjkgMTcuNyA0LjcgNDAuNiAyNS4yIDM0LjdMMzY2IDI2OC42YzMuMS0uOSA2LTIuNSA4LjUtNC42czQuNS00LjcgNS44LTcuNyAyLjEtNi4yIDIuMi05LjQtLjYtNi41LTEuOS05LjVsMCAwek02Mi4xIDMwLjJjLTIuOCAxLjQtNS40IDMuMy03LjQgNS43cy0zLjYgNS4yLTQuNSA4LjItMS4yIDYuMi0uOSA5LjMgMS4zIDYuMSAyLjkgOC45TDE1Ni4zIDI0Mi42YzExLjcgMjAuMiA0Mi42IDExLjkgNDIuNi0xMS40bDAtMjA4LjNjMC0zLjEtLjYtNi4zLTEuOC05LjJzLTMuMS01LjUtNS40LTcuNi01LTMuOC04LTQuOC02LjEtMS40LTkuMy0xLjJjLTM5IDMuMS03NyAxMy4zLTExMi4zIDMwLjF6Il19LGM2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb2ZvcmUiLGljb246WzQ0OCw1MTIsW10sImYzYTciLCJNMzQ4IDMxOS44bC0xMy4yIDAgMCAzNC43Yy0yNC41IDIzLjEtNTYuMyAzNS44LTg5LjkgMzUuOC03My4yIDAtMTMyLjQtNjAuMi0xMzIuNC0xMzQuNCAwLTc0LjEgNTkuMi0xMzQuNCAxMzIuNC0xMzQuNCAzNS4zIDAgNjguNiAxNCA5My42IDM5LjRsNjIuMy02My4zYy00MS44LTQyLjMtOTcuMS02NS42LTE1Ni4xLTY1LjYtMTIyLjcgMC0yMjAuNyAxMDAuNi0yMjAuNyAyMjQgMCAxMjIuNSA5NyAyMjQgMjIwLjcgMjI0IDYzLjIgMCAxMjQuNS0yNi4yIDE3MS04Mi41LTItMjcuNi0xMy40LTc3LjctNjcuNy03Ny43ek0zMzUuOSAyMDcuM2wtMTA2LjMgMCAwIDg5IDExOC40IDBjMzMuNSAwIDYwLjUgMTUuMSA3NiA0MS44bDAtMzAuNmMwLTY1LjItNDAuNC0xMDAuMi04OC4xLTEwMC4yeiJdfSxkNnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXZpYXRvIixpY29uOls2NDAsNTEyLFtdLCJmNDIxIiwiTTEwNy4yIDI4My41bC0xOS00MS44LTUyLjEgMC0xOSA0MS44LTE3LjEgMCA2Mi4yLTEzMS40IDYyLjIgMTMxLjQtMTcuMiAwem0tNDUtOTguMWwtMTkuNiA0Mi41IDM5LjIgMC0xOS42LTQyLjV6TTE3NC45IDI4Ny44bC02Mi4yLTEzMS40IDE3LjEgMCA0NS4xIDk2IDQ1LjEtOTYgMTcgMC02Mi4xIDEzMS40em04MC42LTQuM2wwLTEyNy4xIDE1LjUgMCAwIDEyNy4xLTE1LjUgMHpNNDY0LjYgMTY3LjlsMCAxMTUuNi0xNy4zIDAgMC0xMTUuNi00MS4yIDAgMC0xMS41IDk5LjYgMCAwIDExLjUtNDEuMSAwek02NDAgMjE4LjhjMCA5LjItMS43IDE3LjgtNS4xIDI1LjhzLTguMiAxNS4xLTE0LjIgMjEuMS0xMy4xIDEwLjgtMjEuMSAxNC4yLTE2LjYgNS4xLTI1LjggNS4xLTE3LjgtMS43LTI1LjgtNS4xLTE1LjEtOC4yLTIxLjEtMTQuMi0xMC44LTEzLTE0LjItMjEuMWMtMy40LTgtNS4xLTE2LjYtNS4xLTI1LjhzMS43LTE3LjggNS4xLTI1LjggOC4yLTE1LjEgMTQuMi0yMS4xIDEzLTguNCAyMS4xLTExLjljOC0zLjQgMTYuNi01LjEgMjUuOC01LjFzMTcuOCAxLjcgMjUuOCA1LjEgMTUuMSA1LjggMjEuMSAxMS45YzYgNiAxMC43IDEzLjEgMTQuMiAyMS4xIDMuNCA4IDUuMSAxNi42IDUuMSAyNS44em0tMTUuNSAwYzAtNy4zLTEuMy0xNC0zLjktMjAuM3MtNi4yLTExLjctMTAuOC0xNi4zLTEwLTguMi0xNi4yLTEwLjktMTIuOC00LTE5LjgtNC0xMy42IDEuMy0xOS44IDQtMTEuNiA2LjMtMTYuMiAxMC45LTguMiAxMC0xMC44IDE2LjMtMy45IDEzLjEtMy45IDIwLjNjMCA3LjMgMS4zIDE0IDMuOSAyMC4zczYuMiAxMS43IDEwLjggMTYuMyAxMCA4LjIgMTYuMiAxMC45IDEyLjggNCAxOS44IDQgMTMuNi0xLjMgMTkuOC00IDExLjYtNi4zIDE2LjItMTAuOSA4LjItMTAgMTAuOC0xNi4zIDMuOS0xMy4xIDMuOS0yMC4zem0tOTQuOCA5Ni43bDAtNi4zIDg4LjktMTAtMjQyLjkgMTMuNGMuNi0yLjIgMS4xLTQuNiAxLjQtNy4yIC4zLTIgLjUtNC4yIC42LTYuNWw2NC44LTguMS02NC45IDEuOWMwLS40LS4xLS43LS4xLTEuMS0yLjgtMTcuMi0yNS41LTIzLjctMjUuNS0yMy43bC0xLjEtMjYuMyAyMy44IDAgMTkgNDEuOCAxNy4xIDAtNjIuMi0xMzEuNC02Mi4yIDEzMS40IDE3LjEgMCAxOS00MS44IDIzLjYgMC0xLjEgMjYuNHMtMjIuNyA2LjUtMjUuNSAyMy43Yy0uMSAuMy0uMSAuNy0uMSAxLjFsLTY0LjktMS45IDY0LjggOC4xYy4xIDIuMyAuMyA0LjQgLjYgNi41IC4zIDIuNiAuOCA1IDEuNCA3LjJsLTI0Mi45LTEzLjUgODguOSAxMCAwIDYuM2MtNS45IC45LTEwLjUgNi0xMC41IDEyLjIgMCA2LjggNS42IDEyLjQgMTIuNCAxMi40czEyLjQtNS42IDEyLjQtMTIuNGMwLTYuMi00LjYtMTEuMy0xMC41LTEyLjJsMC01LjggODAuMyA5IDAgNS40Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yczEyLjQtMy40IDEyLjQtMTAuMmMwLTYtNC4zLTExLTkuOS0xMi4xbDAtNC45IDI4LjQgMy4yIDAgMjMuNy01LjkgMCAwIDEzLjkgNS45IDAgMC02LjYgNSAwIDAgNi42IDUuOSAwIDAtMTMuOC01LjkgMCAwLTIzLjIgMzguMyA0LjNjOC4xIDExLjQgMTkgMTMuNiAxOSAxMy42bC0uMSA2LjctNS4xIC4yLS4xIDEyLjEgNC4xIDAgLjEtNSA1LjIgMCAuMSA1IDQuMSAwLS4xLTEyLjEtNS4xLS4yLS4xLTYuN3MxMC45LTIuMSAxOS0xMy42bDM4LjMtNC4zIDAgMjMuMi01LjkgMCAwIDEzLjggNS45IDAgMC02LjYgNSAwIDAgNi42IDUuOSAwIDAtMTMuOC01LjkgMCAwLTIzLjcgMjguNC0zLjIgMCA0LjljLTUuNyAxLjEtOS45IDYuMi05LjkgMTIuMSAwIDYuOCA1LjYgMTAuMiAxMi40IDEwLjJzMTIuNC0zLjQgMTIuNC0xMC4yYzAtNi00LjMtMTEtOS45LTEyLjFsMC01LjQgODAuMy05IDAgNS44Yy01LjkgLjktMTAuNSA2LTEwLjUgMTIuMiAwIDYuOCA1LjYgMTIuNCAxMi40IDEyLjRzMTIuNC01LjYgMTIuNC0xMi40Yy0uMi02LjMtNC43LTExLjQtMTAuNy0xMi4zek0zMjguOSAyMjcuOWwxOS42LTQyLjUgMTkuNiA0Mi41LTE3LjkgMC0xLjctNDAuMy0xLjcgNDAuMy0xNy45IDB6Il19LGY2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWRsZXQiLGljb246WzY0MCw1MTIsW10sImU0YTAiLCJNMjk3LjkgMGwuMSAwYzcuNiAuMSAxNC40IDQuNyAxNy41IDExLjhsMTMyIDMwOC41IC4zLS4xIC4yIC40LTIuOCAxMC00Mi45IDE1OGMtMy43IDE2LjItMTkuNyAyNi4zLTM1LjggMjIuNmwtNjguNC0xNS42LTY4LjUgMTUuNmMtMTYuMSAzLjctMzIuMS02LjQtMzUuOC0yMi42bC00Mi45LTE1OC0yLjctMTAgLjEtLjQgMTMyLjEtMzA4LjRjMy03IDkuOS0xMS42IDE3LjUtMTEuOHpNMTYwLjEgMzIyLjFsMTMxIDM5LjEgNi45IDEyMi41IDcuOS0xMjEuNSAxMzAuNi0zOS4zIC4yLS4xLTEzMSAyNS4xLTguNi0zMjAuMi01LjIgMzIwLjItMTMxLjgtMjUuOHpNNDI2IDIyMi42bDk0LjQtNDEgNzMuOCAwLTE1NyAyNDcuNiAzMS42LTEwOS00Mi44LTk3LjZ6bTE3MS41LTQxLjJsNDEuNCA3Ni4yYzQgNy41LTMuOSAxNS45LTExLjYgMTIuMmwtNDcuNi0yMi43IDE3LjgtNjUuN3pNMTI3LjMgMzE4LjVMMTU4LjcgNDMwIDEuNiAxNTQuNWMtNS45LTEwLjQgNS41LTIyIDE1LjktMTYuMmwxNTEuOCA4NC4yLTQyLjEgOTZ6Il19LHU2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlZGdlLWxlZ2FjeSIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3OCIsIk0tNiAyMjguMmwuNC0uNWMwIC4yIDAgLjMtLjEgLjVsLS4zIDB6bTQ2MC42IDE1LjVjMC00NC03LjgtODQuNS0yOC44LTEyMi40LTQxLTczLjQtMTEzLjYtMTEzLjMtMTk4LjYtMTEzLjMtMTM5LjktLjMtMjE4LjMgMTA1LjItMjMyLjggMjE5LjcgNDIuNC02MS4zIDExNy4xLTEyMS40IDIyMC40LTEyNSAwIDAgMTA5LjcgMCA5OS40IDEwNWwtMTc1LjggMGM2LjQtMzcuNCAxOC41LTU5IDM0LjMtNzguOS03NSAzNC45LTEyMS44IDk2LjEtMTIwLjggMTg4LjMgLjggNzEuNSA1MC4xIDE0NC44IDEyMC44IDE3MiA4My40IDMxLjggMTkyLjggNy4yIDI0MC4xLTIxLjNsMC0xMDQuNGMtODAuOSA1Ni41LTI3MC45IDYwLjktMjcyLjMtNjcuNmwzMTQuMSAwIDAtNTIuMXoiXX0sdTJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1sYXN0Zm0iLGljb246WzQ0OCw1MTIsWyJsYXN0Zm0tc3F1YXJlIl0sImYyMDMiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTIxMC43IDI4MC44Yy0xLjgtNS41LTMuNC0xMC44LTUtMTUuOS0xMi45LTQxLjktMjEtNjguNC01OC02OC40LTIyLjQgMC00NS4xIDE2LjEtNDUuMSA2MS4yIDAgMzUuMiAxOCA1Ny4yIDQzLjMgNTcuMiAyOC42IDAgNDcuNi0yMS4zIDQ3LjYtMjEuM2wxMS43IDMxLjlzLTE5LjggMTkuNC02MS4yIDE5LjRjLTUxLjMgMC03OS45LTMwLjEtNzkuOS04NS44IDAtNTcuOSAyOC42LTkyIDgyLjUtOTIgNjcuOSAwIDc5LjMgMzUuMyA5Ni40IDg4LjQgMS40IDQuNCAyLjkgOC45IDQuNCAxMy41IDguOCAyNi44IDI0LjIgNDYuMiA2MS4yIDQ2LjIgMjQuOSAwIDM4LjEtNS41IDM4LjEtMTkuMSAwLTE3LjUtMTYuOS0yMS4yLTQwLTI2LjQtMy4yLS43LTYuNS0xLjQtOS45LTIuMi0zMC40LTcuMy00Mi41LTIzLjEtNDIuNS00OCAwLTQwIDMyLjMtNTIuNCA2NS4yLTUyLjQgMzcuNCAwIDYwLjEgMTMuNiA2MyA0Ni42bC0zNi43IDQuNGMtMS41LTE1LjgtMTEtMjIuNC0yOC42LTIyLjQtMTYuMSAwLTI2IDcuMy0yNiAxOS44IDAgMTEgNC44IDE3LjYgMjAuOSAyMS4zIDIuMiAuNSA0LjUgMSA2LjcgMS40IDMxLjEgNi41IDY1LjEgMTMuNyA2NS4xIDU2LjEgLjEgMzYuNy0zMC43IDUwLjYtNzYuMSA1MC42LTYzLjQgMC04NS40LTI4LjYtOTcuMS02NC4xeiJdfSxwNnQ9dTJlLGg2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29kcmVhZHMtZyIsaWNvbjpbMzIwLDUxMixbXSwiZjNhOSIsIk0xMC44IDQwMy4zbDIuOCAwYzEyLjcgMCAyNS41IDAgMzguMiAuMSAxLjYgMCAzLjEtLjQgMy42IDIuMSA3LjEgMzQuOSAzMCA1NC42IDYyLjkgNjMuOSAyNi45IDcuNiA1NC4xIDcuOCA4MS4zIDEuOCAzMy44LTcuNCA1Ni0yOC4zIDY4LTYwLjQgOC0yMS41IDEwLjctNDMuOCAxMS02Ni41IC4xLTUuOCAuMy00Ny0uMi01Mi44bC0uOS0uM2MtLjggMS41LTEuNyAyLjktMi41IDQuNC0yMi4xIDQzLjEtNjEuMyA2Ny40LTEwNS40IDY5LjEtMTAzIDQtMTY5LjQtNTctMTcyLTE3Ni4yLS41LTIzLjcgMS44LTQ2LjkgOC4zLTY5LjcgMjAuNi03MS4xIDc0LjYtMTE4LjIgMTUzLjktMTE4LjggNjEuMy0uNCAxMDEuNSAzOC43IDExNi4yIDcwLjMgLjUgMS4xIDEuMyAyLjMgMi40IDEuOWwwLTYxLjYgNDQuMyAwYzAgMjgwLjMgLjEgMzMyLjIgLjEgMzMyLjItLjEgNzguNS0yNi43IDE0My43LTEwMyAxNjIuMi02OS41IDE2LjktMTU5IDQuOC0xOTYtNTcuMi04LTEzLjUtMTEuOC0yOC4zLTEzLTQ0LjV6TTE1Ny4xIDM2LjVjLTUyLjUtLjUtMTA4LjUgNDAuNy0xMTUgMTMzLjgtNC4xIDU5IDE0LjggMTIyLjIgNzEuNSAxNDguNiAyNy42IDEyLjkgNzQuMyAxNSAxMDguMy04LjcgNDcuNi0zMy4yIDYyLjctOTcgNTQuOC0xNTQtOS43LTcxLjEtNDcuOC0xMjAtMTE5LjYtMTE5Ljd6Il19LG02dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1tYXN0ZXJjYXJkIixpY29uOls1NzYsNTEyLFtdLCJmMWYxIiwiTTQ4Mi45IDQxMC4zYzAgNi44LTQuNiAxMS43LTExLjIgMTEuNy02LjggMC0xMS4yLTUuMi0xMS4yLTExLjdzNC40LTExLjcgMTEuMi0xMS43YzYuNiAwIDExLjIgNS4yIDExLjIgMTEuN3pNMTcyLjEgMzk4LjZjLTcuMSAwLTExLjIgNS4yLTExLjIgMTEuN1MxNjUgNDIyIDE3Mi4xIDQyMmM2LjUgMCAxMC45LTQuOSAxMC45LTExLjctLjEtNi41LTQuNC0xMS43LTEwLjktMTEuN3ptMTE3LjUtLjNjLTUuNCAwLTguNyAzLjUtOS41IDguN2wxOS4xIDBjLS45LTUuNy00LjQtOC43LTkuNi04Ljd6bTEwNy44IC4zYy02LjggMC0xMC45IDUuMi0xMC45IDExLjdzNC4xIDExLjcgMTAuOSAxMS43IDExLjItNC45IDExLjItMTEuN2MwLTYuNS00LjQtMTEuNy0xMS4yLTExLjd6bTEwNS45IDI2LjFjMCAuMyAuMyAuNSAuMyAxLjEgMCAuMy0uMyAuNS0uMyAxLjEtLjMgLjMtLjMgLjUtLjUgLjgtLjMgLjMtLjUgLjUtMS4xIC41LS4zIC4zLS41IC4zLTEuMSAuMy0uMyAwLS41IDAtMS4xLS4zLS4zIDAtLjUtLjMtLjgtLjUtLjMtLjMtLjUtLjUtLjUtLjgtLjMtLjUtLjMtLjgtLjMtMS4xIDAtLjUgMC0uOCAuMy0xLjEgMC0uNSAuMy0uOCAuNS0xLjEgLjMtLjMgLjUtLjMgLjgtLjUgLjUtLjMgLjgtLjMgMS4xLS4zIC41IDAgLjggMCAxLjEgLjMgLjUgLjMgLjggLjMgMS4xIC41cy4yIC42IC41IDEuMXptLTIuMiAxLjRjLjUgMCAuNS0uMyAuOC0uMyAuMy0uMyAuMy0uNSAuMy0uOHMwLS41LS4zLS44Yy0uMyAwLS41LS4zLTEuMS0uM2wtMS42IDAgMCAzLjUgLjggMCAwLTEuNCAuMyAwIDEuMSAxLjQgLjggMC0xLjEtMS4zek01NzYgODFsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgxYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgxQzAgNTQuNSAyMS41IDMzIDQ4IDMzbDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek02NCAyMjAuNmMwIDc2LjUgNjIuMSAxMzguNSAxMzguNSAxMzguNSAyNy4yIDAgNTMuOS04LjIgNzYuNS0yMy4xLTcyLjktNTkuMy03Mi40LTE3MS4yIDAtMjMwLjUtMjIuNi0xNS00OS4zLTIzLjEtNzYuNS0yMy4xLTc2LjQtLjEtMTM4LjUgNjItMTM4LjUgMTM4LjJ6TTI4OCAzMjkuNGM3MC41LTU1IDcwLjItMTYyLjIgMC0yMTcuNS03MC4yIDU1LjMtNzAuNSAxNjIuNiAwIDIxNy41ek0xNDUuNyA0MDUuN2MwLTguNy01LjctMTQuNC0xNC43LTE0LjctNC42IDAtOS41IDEuNC0xMi44IDYuNS0yLjQtNC4xLTYuNS02LjUtMTIuMi02LjUtMy44IDAtNy42IDEuNC0xMC42IDUuNGwwLTQuNC04LjIgMCAwIDM2LjcgOC4yIDBjMC0xOC45LTIuNS0zMC4yIDktMzAuMiAxMC4yIDAgOC4yIDEwLjIgOC4yIDMwLjJsNy45IDBjMC0xOC4zLTIuNS0zMC4yIDktMzAuMiAxMC4yIDAgOC4yIDEwIDguMiAzMC4ybDguMiAwIDAtMjMtLjIgMHpNMTkwLjYgMzkybC03LjkgMCAwIDQuNGMtMi43LTMuMy02LjUtNS40LTExLjctNS40LTEwLjMgMC0xOC4yIDguMi0xOC4yIDE5LjMgMCAxMS4yIDcuOSAxOS4zIDE4LjIgMTkuMyA1LjIgMCA5LTEuOSAxMS43LTUuNGwwIDQuNiA3LjkgMCAwLTM2Ljh6bTQwLjUgMjUuNmMwLTE1LTIyLjktOC4yLTIyLjktMTUuMiAwLTUuNyAxMS45LTQuOCAxOC41LTEuMWwzLjMtNi41Yy05LjQtNi4xLTMwLjItNi0zMC4yIDguMiAwIDE0LjMgMjIuOSA4LjMgMjIuOSAxNSAwIDYuMy0xMy41IDUuOC0yMC43IC44bC0zLjUgNi4zYzExLjIgNy42IDMyLjYgNiAzMi42LTcuNXptMzUuNCA5LjNsLTIuMi02LjhjLTMuOCAyLjEtMTIuMiA0LjQtMTIuMi00LjFsMC0xNi42IDEzLjEgMCAwLTcuNC0xMy4xIDAgMC0xMS4yLTguMiAwIDAgMTEuMi03LjYgMCAwIDcuMyA3LjYgMCAwIDE2LjdjMCAxNy42IDE3LjMgMTQuNCAyMi42IDEwLjl6bTEzLjMtMTMuNGwyNy41IDBjMC0xNi4yLTcuNC0yMi42LTE3LjQtMjIuNi0xMC42IDAtMTguMiA3LjktMTguMiAxOS4zIDAgMjAuNSAyMi42IDIzLjkgMzMuOCAxNC4ybC0zLjgtNmMtNy44IDYuNC0xOS42IDUuOC0yMS45LTQuOXpNMzM4LjkgMzkyYy00LjYtMi0xMS42LTEuOC0xNS4yIDQuNGwwLTQuNC04LjIgMCAwIDM2LjcgOC4yIDAgMC0yMC43YzAtMTEuNiA5LjUtMTAuMSAxMi44LTguNGwyLjQtNy42em0xMC42IDE4LjNjMC0xMS40IDExLjYtMTUuMSAyMC43LTguNGwzLjgtNi41Yy0xMS42LTkuMS0zMi43LTQuMS0zMi43IDE1IDAgMTkuOCAyMi40IDIzLjggMzIuNyAxNWwtMy44LTYuNWMtOS4yIDYuNS0yMC43IDIuNi0yMC43LTguNnpNNDE2LjIgMzkybC04LjIgMCAwIDQuNGMtOC4zLTExLTI5LjktNC44LTI5LjkgMTMuOSAwIDE5LjIgMjIuNCAyNC43IDI5LjkgMTMuOWwwIDQuNiA4LjIgMCAwLTM2Ljh6bTMzLjcgMGMtMi40LTEuMi0xMS0yLjktMTUuMiA0LjRsMC00LjQtNy45IDAgMCAzNi43IDcuOSAwIDAtMjAuN2MwLTExIDktMTAuMyAxMi44LTguNGwyLjQtNy42em00MC4zLTE0LjlsLTcuOSAwIDAgMTkuM2MtOC4yLTEwLjktMjkuOS01LjEtMjkuOSAxMy45IDAgMTkuNCAyMi41IDI0LjYgMjkuOSAxMy45bDAgNC42IDcuOSAwIDAtNTEuN3ptNy42LTc1LjFsMCA0LjYgLjggMCAwLTQuNiAxLjkgMCAwLS44LTQuNiAwIDAgLjggMS45IDB6bTYuNiAxMjMuOGMwLS41IDAtMS4xLS4zLTEuNi0uMy0uMy0uNS0uOC0uOC0xLjFzLS44LS41LTEuMS0uOGMtLjUgMC0xLjEtLjMtMS42LS4zLS4zIDAtLjggLjMtMS40IC4zLS41IC4zLS44IC41LTEuMSAuOC0uNSAuMy0uOCAuOC0uOCAxLjEtLjMgLjUtLjMgMS4xLS4zIDEuNiAwIC4zIDAgLjggLjMgMS40IDAgLjMgLjMgLjggLjggMS4xIC4zIC4zIC41IC41IDEuMSAuOCAuNSAuMyAxLjEgLjMgMS40IC4zIC41IDAgMS4xIDAgMS42LS4zIC4zLS4zIC44LS41IDEuMS0uOHMuNS0uOCAuOC0xLjFjLjMtLjYgLjMtMS4xIC4zLTEuNHptMy4yLTEyNC43bC0xLjQgMC0xLjYgMy41LTEuNi0zLjUtMS40IDAgMCA1LjQgLjggMCAwLTQuMSAxLjYgMy41IDEuMSAwIDEuNC0zLjUgMCA0LjEgMS4xIDAgMC01LjR6bTQuNC04MC41YzAtNzYuMi02Mi4xLTEzOC4zLTEzOC41LTEzOC4zLTI3LjIgMC01My45IDguMi03Ni41IDIzLjEgNzIuMSA1OS4zIDczLjIgMTcxLjUgMCAyMzAuNSAyMi42IDE1IDQ5LjUgMjMuMSA3Ni41IDIzLjEgNzYuNCAuMSAxMzguNS02MS45IDEzOC41LTEzOC40eiJdfSxnNnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlzY291cnNlIixpY29uOls0NDgsNTEyLFtdLCJmMzkzIiwiTTIyNS45IDMyQzEwMy4zIDMyIDAgMTMwLjUgMCAyNTIuMSAwIDI1NiAuMSA0ODAgLjEgNDgwbDIyNS44LS4yQzM0OC42IDQ3OS44IDQ0OCAzNzcuNSA0NDggMjU1LjlTMzQ4LjYgMzIgMjI1LjkgMzJ6TTIyNCAzODRjLTE5LjQgMC0zNy45LTQuMy01NC40LTEyLjFMODguNSAzOTIgMTExLjQgMzE3Yy05LjgtMTguMS0xNS40LTM4LjktMTUuNC02MSAwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4LTU3LjMgMTI4LTEyOCAxMjh6Il19LHg2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibGFjay10aWUiLGljb246WzQ0OCw1MTIsW10sImYyN2UiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMzE2LjUgMzU3LjJsLTkyLjUgODguNy05Mi41LTg4LjcgNjQuNS0xODQtNjQuNS04Ni42IDE4NC45IDAtNjQuNCA4Ni42IDY0LjUgMTg0eiJdfSxwMmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZhY2Vib29rIixpY29uOls0NDgsNTEyLFsiZmFjZWJvb2stc3F1YXJlIl0sImYwODIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw5OC4yIDAgMC0xNDUuOC01Mi44IDAgMC03OC4yIDUyLjggMCAwLTMzLjdjMC04Ny4xIDM5LjQtMTI3LjUgMTI1LTEyNy41IDE2LjIgMCA0NC4yIDMuMiA1NS43IDYuNGwwIDcwLjhjLTYtLjYtMTYuNS0xLTI5LjYtMS00MiAwLTU4LjIgMTUuOS01OC4yIDU3LjJsMCAyNy44IDgzLjYgMC0xNC40IDc4LjItNjkuMyAwIDAgMTQ1LjggMTI5IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6Il19LGI2dD1wMmUsdjZ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJhdHRsZS1uZXQiLGljb246WzUxMiw1MTIsW10sImY4MzUiLCJNNDQ4LjggMjI1LjZjMjYuOSAuMiAzNS42LTcuNCAzOC45LTEyLjQgMTIuNS0xNi4zLTcuMS00Ny42LTUyLjgtNzEuMyAxNy44LTMzLjYgMzAuMS02My43IDM2LjMtODUuMyAzLjQtMTEuOCAxLjEtMTkgLjUtMjAuMy0xLjcgMTAuNS0xNS44IDQ4LjUtNDguMiAxMDAtMjUtMTEuMi01Ni41LTIwLjEtOTMuOC0yMy44LTguOS0xNi45LTM0LjktNjMuOS02MC41LTg4LjktMTYuOC0xNi41LTMwLjMtMjIuNi00MC44LTIzLjVsMCAwYy0xMy44LTEuNi0yMi43IDUuOC0yNy40IDExLTE3LjIgMTguNS0yNC4zIDQ4LjktMjUgODQuMS03LjItMTIuMy0xNy4yLTI0LjYtMjguNS0yNS45bC0uMiAwYy0yMC43LTMuNS0zOC40IDI5LjItMzYgODEuMy0zOC40IDEuNC03MSA1LjgtOTMgMTEuMi05LjkgMi40LTE2LjIgNy4zLTE3LjggOS43IDEtLjQgMjIuNC05LjIgMTExLjYtOS4yIDUuMiA1MyAyOS44IDEwMS44IDI2IDkzLjItOS43IDE1LjQtMzguMiA2Mi40LTQ3LjMgOTcuNy01LjkgMjIuOS00LjQgMzcuNiAuMiA0Ny4xIDUuNiAxMi44IDE2LjQgMTYuNyAyMy4yIDE4LjMgMjUgNS43IDU1LjQtMy42IDg2LjctMjEuMS03LjUgMTIuOC0xMy45IDI4LjUtOS4xIDM5LjMgNy4zIDE5LjYgNDQuNSAxOC43IDg4LjQtOS40IDIwLjIgMzIuMiA0MC4xIDU3LjkgNTUuNyA3NC4xIDIuNiAyLjggNS41IDUuMiA4LjggNy4xIDUuMSAzLjIgOC42IDMuNCA4LjYgMy40LTguMi02LjctMzQtMzgtNjIuNS05MS44IDIyLjItMTYgNDUuNy0zOC45IDY3LjUtNjkuMyAxMjIuOCA0LjYgMTQzLjMtMjQuOCAxNDgtMzEuNiAxNC43LTE5LjkgMy40LTU3LjQtNTcuMy05My43ek0zNzEgMzMxLjhjMjMuOC0zNy43IDMwLjMtNjcuOCAyOS40LTkyLjMgMjcuOSAxNy42IDQ3LjIgMzcuNiA0OS4xIDU4LjggMS4xIDEyLjktOC4xIDI5LjEtNzguNSAzMy41ek0yMTcuMSAzODcuN2M5LjgtNi4yIDE5LjUtMTMuMSAyOS4yLTIwLjUgNi43IDEzLjMgMTMuNiAyNi4xIDIwLjYgMzguMi00MC42IDIxLjktNjguOCAxMi44LTQ5LjgtMTcuN3ptMjE1LTE3MS4zYy0xMC4zLTUuMy0yMS4yLTEwLjMtMzIuNC0xNSA3LjktMTIuMSAxNS41LTI0LjQgMjIuNy0zNi45IDM5LjEgMjQuMSA0NS45IDUzLjIgOS42IDUxLjl6TTI3OS40IDM5OGMtNS41LTExLjQtMTEtMjMuNS0xNi41LTM2LjQgNDMuMiAxLjMgNjIuNC0xOC43IDYzLjMtMjAuNCAwIC4xLTI1IDE1LjYtNjIuNSAxMi4yIDMwLjYtMjUuNiA1OS4xLTUzLjcgODUuMS04NCA4LjctMTAuMiAxNy0yMC42IDI0LjktMzEuMS0uNC0uMy0xLjUtMy0xNi41LTEyLTUxLjcgNjAuMy0xMDIuMyA5OC0xMzIuOCAxMTUuOS0yMC42LTExLjItNDAuOC0zMS44LTU1LjctNjEuNS0yMC0zOS45LTMwLTgyLjQtMzEuNi0xMTYuMSAxMi4zIC45IDI1LjMgMi4yIDM4LjggMy45LTIyLjMgMzYuOC0xNC40IDYzLTEzLjUgNjQuMiAwLS4xLTEtMjkuMiAyMC4xLTU5LjYgOSA1Mi41IDI0IDEwMy44IDQ0LjcgMTUyLjggLjktLjQgMS44IC45IDE4LjctOC4yLTI2LjMtNzQuNS0zMy44LTEzOC4yLTM0LTE3My40IDIwLTEyLjQgNDguMi0xOS44IDgxLjYtMTcuOCA0NC42IDIuNyA4Ni40IDE1LjIgMTE2LjMgMzAuNy03LjEgMTAuNC0xNC45IDIxLjMtMjMuMyAzMi41LTIwLjctMzcuNy00Ny4zLTQzLjktNDguOS00My43IC4xIDAgMjUuOSAxNC4xIDQxLjUgNDcuMi0zNy41LTEzLjgtNzYuMS0yNC40LTExNS4zLTMxLjctMTMuMS0yLjQtMjYuMi00LjQtMzkuNC02LS4xIC40LTEuOCAxLjgtMi4yIDIwLjMgNzcuOSAxNC41IDEzNi42IDM5LjkgMTY3LjIgNTcuMiAuNyAyMy42LTcgNTEuNi0yNS40IDc5LjYtMjQuNiAzNy4zLTU2LjQgNjcuMi04NC44IDg1LjR6bTI3LjQtMjg3Yy00NC42LTEuNy03My42IDcuNC05NC43IDIwLjcgMi01Mi4zIDIxLjMtNzYuNCAzOC4yLTc1LjMgMTYuOS00LjIgNTQuOSA1Mi4yIDU2LjUgNTQuNnptLTEzMC43IDMuMWMuNSAxMi4xIDEuNiAyNC42IDMuMiAzNy4zLTE0LjYtLjktMjguNy0xLjMtNDIuNC0xLjMtLjEgMy4yLS4xLTUxIDI0LjctNDkuNmwuMSAwYzUuOCAxLjEgMTAuNiA2LjkgMTQuNCAxMy42em0tMjguMSAxNjJjMjAuOCAzOS43IDQzLjMgNjAuNiA2NS4zIDcyLjMtNDYuOCAyNC44LTc3LjUgMjAtODQuOSA0LjUtLjItLjItMTEuMS0xNS4zIDE5LjctNzYuOGwwIDB6Il19LHk2dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaW1vYmplY3QiLGljb246WzQ0OCw1MTIsW10sImYzNzgiLCJNNDE2IDMyTDMyIDMyQzE0LjQgMzIgMCA0Ni40IDAgNjRMMCA0NDhjMCAxNy42IDE0LjQgMzIgMzIgMzJsMzg0IDBjMTcuNiAwIDMyLTE0LjQgMzItMzJsMC0zODRjMC0xNy42LTE0LjQtMzItMzItMzJ6TTM1MiAyODkuNGMwIDQ5LjQtMTEuNCA4Mi42LTEwMy44IDgyLjZsLTE2LjkgMGMtNDQuMSAwLTYyLjQtMTQuOS03MC40LTM4LjhsLS45IDAgMCAzNC44LTY0IDAgMC0yMzIgNjQgMCAwIDc0LjcgMS4xIDBjNC42LTMwLjUgMzkuNy0zOC44IDY5LjctMzguOGwxNy4zIDBjOTIuNCAwIDEwMy44IDMzLjEgMTAzLjggODIuNWwwIDM1IC4xIDB6bS02NC0yOC45bDAgMjIuOWMwIDIxLjctMy40IDMzLjgtMzguNCAzMy44bC00NS4zIDBjLTI4LjkgMC00NC4xLTYuNS00NC4xLTM1LjdsMC0xOWMwLTI5LjMgMTUuMi0zNS43IDQ0LjEtMzUuN2w0NS4zIDBjMzUtLjIgMzguNCAxMiAzOC40IDMzLjd6Il19LHVvMT17ZmFTcXVhcmVHaXRodWI6UDFlLGZhR2l0aHViU3F1YXJlOmVpdCxmYVRoaW5rUGVha3M6dGl0LGZhR29vZ2xlRHJpdmU6YWl0LGZhQXV0b3ByZWZpeGVyOnJpdCxmYVNxdWFyZVZpYWRlbzpJMWUsZmFWaWFkZW9TcXVhcmU6aWl0LGZhQ3BhbmVsOm9pdCxmYU1lbmRlbGV5OnNpdCxmYURyYWZ0MmRpZ2l0YWw6bml0LGZhUmVwbHlkOmxpdCxmYUVtcGlyZTpjaXQsZmFBY2Nlc3NpYmxlSWNvbjpkaXQsZmFRdW9yYTpmaXQsZmFDY0pjYjp1aXQsZmFGZWRvcmE6cGl0LGZhRHVvbGluZ286aGl0LGZhRmlyc3RkcmFmdDptaXQsZmFGcmVlYnNkOmdpdCxmYU9keXNlZTp4aXQsZmFHZ0NpcmNsZTpiaXQsZmFDbG91ZGZsYXJlOnZpdCxmYUhhY2tlcnJhbms6eWl0LGZhU2t5YXRsYXM6d2l0LGZhRGVza3BybzpNaXQsZmFSZXNvbHZpbmc6eml0LGZhQmxhY2tiZXJyeTpraXQsZmFTdHJpcGVTOlNpdCxmYVNxdWFyZUJlaGFuY2U6RjFlLGZhQmVoYW5jZVNxdWFyZTpDaXQsZmFTZXJ2aWNlc3RhY2s6TGl0LGZhUm9ja2V0Y2hhdDpUaXQsZmFSZWJlbDpfaXQsZmFTcXVhcmVXZWJBd2Vzb21lOkFpdCxmYUxpbmt0cmVlOiRpdCxmYVNpbXBseWJ1aWx0OkRpdCxmYVN0dWJiZXI6RWl0LGZhQXBwZXI6Tml0LGZhR29vZ2xlU2Nob2xhcjpQaXQsZmFZYXJuOklpdCxmYVN0YWNrT3ZlcmZsb3c6Rml0LGZhQmx1ZXRvb3RoOk9pdCxmYUNyZWF0aXZlQ29tbW9uc05jSnA6Qml0LGZhUmVkZGl0OlJpdCxmYUNvbm5lY3RkZXZlbG9wOkhpdCxmYVJlc2VhcmNoZ2F0ZTpxaXQsZmFTaWduYWxNZXNzZW5nZXI6Vml0LGZhWGluZzpVaXQsZmFTcXVhcmVKczpPMWUsZmFKc1NxdWFyZTpqaXQsZmFGb250aWNvbnM6V2l0LGZhVXBzOkdpdCxmYUFtYXpvblBheTpZaXQsZmFQYW5kb3JhOlppdCxmYU9wZW5pZDpYaXQsZmFWc2NvOlFpdCxmYVVidW50dTpLaXQsZmFWaWFjb2luOkppdCxmYVpoaWh1OmVvdCxmYVlhbmRleDp0b3QsZmFQaXhpdjphb3QsZmFPcGVuYWk6cm90LGZhU2l0aDppb3QsZmFOZmNEaXJlY3Rpb25hbDpvb3QsZmFDcmVhdGl2ZUNvbW1vbnNCeTpzb3QsZmFVbWJyYWNvOm5vdCxmYUhvb2xpOmxvdCxmYVNxdWFyZUdpdDpCMWUsZmFHaXRTcXVhcmU6Y290LGZhT2Rub2tsYXNzbmlraTpkb3QsZmFEcnVwYWw6Zm90LGZhQmxvZ2dlckI6dW90LGZhSW52aXNpb246cG90LGZhRmFjZWJvb2tGOmhvdCxmYUNlbnRvczptb3QsZmFDY0FtYXpvblBheTpnb3QsZmFFYmF5OnhvdCxmYUNvbnRhbzpib3QsZmFFbGxvOnZvdCxmYVNpc3RyaXg6eW90LGZhUGVyaXNjb3BlOndvdCxmYUV4cGVkaXRlZHNzbDpNb3QsZmFOYXBzdGVyOnpvdCxmYURlbGljaW91czprb3QsZmFHdWlsZGVkOlNvdCxmYVhib3g6Q290LGZhVW50YXBwZDpMb3QsZmFHb29nbGVQbHVzRzpUb3QsZmFHaXRodWJBbHQ6X290LGZhR2V0UG9ja2V0OkFvdCxmYUdsaWRlOiRvdCxmYUJpdHk6RG90LGZhV3BleHBsb3JlcjpFb3QsZmFNZWdhcG9ydDpOb3QsZmFNZGI6UG90LGZhUGFnZTQ6SW90LGZhVGhlUmVkWWV0aTpGb3QsZmFKaXJhOk9vdCxmYUZlZGV4OkJvdCxmYUV2ZXJub3RlOlJvdCxmYVVzYjpIb3QsZmFBbmdyeWNyZWF0aXZlOnFvdCxmYU1penVuaTpWb3QsZmFJdGNoSW86VW90LGZhV2luZG93czpqb3QsZmFTdHVtYmxldXBvbjpXb3QsZmFHb29nbGU6ZlYsZmFEaXNjb3JkOkdvdCxmYUhhY2tlck5ld3M6WW90LGZhRWxldmVudHk6UjFlLGZhMTF0eTpab3QsZmFUZWFtc3BlYWs6WG90LGZhU3VwcGxlOlFvdCxmYVNxdWFyZVR3aXR0ZXI6SDFlLGZhVHdpdHRlclNxdWFyZTpLb3QsZmFGb250QXdlc29tZTpkVixmYUZvbnRBd2Vzb21lRmxhZzpKb3QsZmFGb250QXdlc29tZUxvZ29GdWxsOmVzdCxmYVdpcnNpbmRoYW5kd2VyazpxMWUsZmFXc2g6dHN0LGZhQ29uZmx1ZW5jZTphc3QsZmFEaWdnOnJzdCxmYVRocmVhZHM6aXN0LGZhV3ByZXNzcjpWMWUsZmFSZW5kYWN0Om9zdCxmYVlvYXN0OnNzdCxmYU5pbWJscjpuc3QsZmFQaXhlbGZlZDpsc3QsZmFZYWhvbzpjc3QsZmFCbHVlc2t5OmRzdCxmYVNjcmliZDpmc3QsZmFDcmVhdGl2ZUNvbW1vbnNQZDp1c3QsZmFFYXJseWJpcmRzOnBzdCxmYVNxdWFyZU9kbm9rbGFzc25pa2k6VTFlLGZhT2Rub2tsYXNzbmlraVNxdWFyZTpoc3QsZmFNYXJrZG93bjptc3QsZmFUeXBvMzpnc3QsZmFKb29tbGE6eHN0LGZhV2VpeGluOmJzdCxmYUdydW50OnZzdCxmYVJvY2tybXM6eXN0LGZhVW5zcGxhc2g6d3N0LGZhU3F1YXJlSW5zdGFncmFtOmoxZSxmYUluc3RhZ3JhbVNxdWFyZTpNc3QsZmFGaXJzdE9yZGVyQWx0OnpzdCxmYUZ1bGNydW06a3N0LGZhQnJhdmVSZXZlcnNlOlNzdCxmYUF2aWFuZXg6Q3N0LGZhTnM4OkxzdCxmYVNxdWFyZVBpbnRlcmVzdDpXMWUsZmFQaW50ZXJlc3RTcXVhcmU6VHN0LGZhQmx1ZXRvb3RoQjpfc3QsZmFHcmlwZmlyZTpBc3QsZmFTcXVhcmVHb29nbGVQbHVzOkcxZSxmYUdvb2dsZVBsdXNTcXVhcmU6JHN0LGZhQXBwU3RvcmU6RHN0LGZhV2l4OkVzdCxmYUludGVyY29tOk5zdCxmYVJlYWN0ZXVyb3BlOlBzdCxmYVdhemU6SXN0LGZhQ3JlYXRpdmVDb21tb25zUmVtaXg6RnN0LGZhQmFuZGNhbXA6T3N0LGZhU3F1YXJlV2ViQXdlc29tZVN0cm9rZTpCc3QsZmFWaW1lb1Y6UnN0LGZhU3RyYXZhOkhzdCxmYVVuaXJlZ2lzdHJ5OnFzdCxmYUNjRGluZXJzQ2x1YjpWc3QsZmFQaW50ZXJlc3Q6VXN0LGZhQWxnb2xpYTpqc3QsZmFTdGFja3BhdGg6V3N0LGZhT2N0b3B1c0RlcGxveTpHc3QsZmFZYW1tZXI6WXN0LGZhTW9keDpac3QsZmFTcXVhcmVUaHJlYWRzOlhzdCxmYU9sZFJlcHVibGljOlFzdCxmYVN1c2U6S3N0LGZhQXBwU3RvcmVJb3M6SnN0LGZhU3F1YXJlRHJpYmJibGU6WTFlLGZhRHJpYmJibGVTcXVhcmU6ZW50LGZhVWlraXQ6dG50LGZhU3VwZXJwb3dlcnM6YW50LGZhWW91dHViZTpybnQsZmFFbWJlcjppbnQsZmFCb290c3RyYXA6b250LGZhSXR1bmVzOnNudCxmYVNxdWFyZVhpbmc6WjFlLGZhWGluZ1NxdWFyZTpubnQsZmFDc3MzQWx0OmxudCxmYVNxdWFyZXNwYWNlOmNudCxmYVRyZWxsbzpkbnQsZmFWaWFkZW86Zm50LGZhU2VhcmNoZW5naW46dW50LGZhUGF5cGFsOnBudCxmYVNxdWFyZUJsdWVza3k6aG50LGZhREFuZERCZXlvbmQ6bW50LGZhTWljcm9zb2Z0OmdudCxmYUZseTp4bnQsZmFDY1N0cmlwZTpibnQsZmFXb3JkcHJlc3NTaW1wbGU6dm50LGZhU2VsbHN5OnludCxmYURhc2hjdWJlOndudCxmYUdpdHRlcjpNbnQsZmFXb2xmUGFja0JhdHRhbGlvbjp6bnQsZmFMYXN0Zm06a250LGZhU2hvcHdhcmU6U250LGZhQmxvZ2dlcjpDbnQsZmFFZGdlOkxudCxmYUlveGhvc3Q6VG50LGZhU2NobGl4Ol9udCxmYURBbmREOkFudCxmYVZ1ZWpzOiRudCxmYU1ldGE6RG50LGZhQ3JlYXRpdmVDb21tb25zU2hhcmU6RW50LGZhU3R1ZGlvdmluYXJpOk5udCxmYUJpdGJ1Y2tldDpQbnQsZmFWazpJbnQsZmFHaXRodWI6Rm50LGZhQ29kaWVwaWU6T250LGZhUGllZFBpcGVyOkJudCxmYVJhc3BiZXJyeVBpOlJudCxmYUNzczM6SG50LGZhSHVic3BvdDpxbnQsZmFDbXBsaWQ6Vm50LGZhRHlhbG9nOlVudCxmYUVsZW1lbnRvcjpqbnQsZmFGaXJzdE9yZGVyOldudCxmYURyaWJiYmxlOkdudCxmYUxpbmtlZGluOnVWLGZhQ2NQYXlwYWw6WW50LGZhRGhsOlpudCxmYVRleDpYbnQsZmFTaG9waWZ5OlFudCxmYVNxdWFyZVJlZGRpdDpYMWUsZmFSZWRkaXRTcXVhcmU6S250LGZhQ3JlYXRpdmVDb21tb25zTmM6Sm50LGZhR2FsYWN0aWNSZXB1YmxpYzplMHQsZmFGYWNlYm9vazpwVixmYUdpdGxhYjp0MHQsZmFRcTphMHQsZmFTdHJpcGU6cjB0LGZhRGFpbHltb3Rpb246aTB0LGZhU3RlYW06bzB0LGZhU25hcGNoYXQ6UTFlLGZhU25hcGNoYXRHaG9zdDpzMHQsZmFHYWxhY3RpY1NlbmF0ZTpuMHQsZmFQaG9lbml4RnJhbWV3b3JrOmwwdCxmYUdpdDpjMHQsZmFPcHRpbk1vbnN0ZXI6ZDB0LGZhSmVua2luczpmMHQsZmFTbGlkZXNoYXJlOnUwdCxmYVViZXI6cDB0LGZhRGlnaXRhbE9jZWFuOmgwdCxmYVNvdW5kY2xvdWQ6bTB0LGZhU3F1YXJlRmlnbWE6ZzB0LGZhQ3JlYXRpdmVDb21tb25zU2E6eDB0LGZhQ2hyb21lOmIwdCxmYVRyYWRlRmVkZXJhdGlvbjp2MHQsZmFWYWFkaW46eTB0LGZhRGV2aWFudGFydDp3MHQsZmFNZWRpdW06R2QsZmFNZWRpdW1NOk0wdCxmYU9wZW5jYXJ0OnowdCxmYVlDb21iaW5hdG9yOmswdCxmYUxpbmU6UzB0LGZhQW1pbGlhOkMwdCxmYUFzeW1tZXRyaWs6TDB0LGZhUGhhYnJpY2F0b3I6VDB0LGZhQm90czpfMHQsZmFWaW5lOkEwdCxmYU1lZHJ0OiQwdCxmYU9zaTpEMHQsZmFHZzpFMHQsZmFCdXlzZWxsYWRzOk4wdCxmYUdvb2dsZVBsdXM6UDB0LGZhU2NyZWVucGFsOkkwdCxmYUJpdGNvaW46RjB0LGZhU3dpZnQ6TzB0LGZhRmlsZXNQaW53aGVlbDpCMHQsZmFMYXJhdmVsOlIwdCxmYVdwZm9ybXM6SDB0LGZhU3BlYWtlckRlY2s6cTB0LGZhRmxpY2tyOlYwdCxmYUNjVmlzYTpVMHQsZmFVcHdvcms6ajB0LGZhS2FrYW9UYWxrOlcwdCxmYUZsdXR0ZXI6RzB0LGZhQnVmZmVyOlkwdCxmYUdyYXRpcGF5OlowdCxmYUdvb2dsZVBheTpYMHQsZmFBcHBsZTpRMHQsZmFUdW1ibHI6SzB0LGZhUGhvZW5peFNxdWFkcm9uOkowdCxmYUNlbnRlcmNvZGU6ZTR0LGZhRGViaWFuOnQ0dCxmYU1hc3RvZG9uOmE0dCxmYVNrZXRjaDpyNHQsZmFXZWJBd2Vzb21lOmk0dCxmYVNhc3M6bzR0LGZhU3F1YXJlV2hhdHNhcHA6SzFlLGZhV2hhdHNhcHBTcXVhcmU6czR0LGZhU2t5cGU6bjR0LGZhQW5ndWxhcjpsNHQsZmFPcGVuc3VzZTpjNHQsZmFEcm9wYm94OmQ0dCxmYURlZXplcjpmNHQsZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZzp1NHQsZmFKZWRpT3JkZXI6cDR0LGZhUlByb2plY3Q6aDR0LGZhSW5zdGFsb2Q6bTR0LGZhQ2FuYWRpYW5NYXBsZUxlYWY6ZzR0LGZhRXRoZXJldW06eDR0LGZhSG91eno6YjR0LGZhVmliZXI6djR0LGZhS2lja3N0YXJ0ZXI6SjFlLGZhU3F1YXJlS2lja3N0YXJ0ZXI6eTR0LGZhU3BvdGlmeTp3NHQsZmFMZWFucHViOk00dCxmYUphdmE6ejR0LGZhTmZjU3ltYm9sOms0dCxmYVdvZHU6UzR0LGZhU3F1YXJlU3RlYW06ZTJlLGZhU3RlYW1TcXVhcmU6QzR0LGZhQ3JlYXRpdmVDb21tb25zTmNFdTpMNHQsZmFOcG06VDR0LGZhQ2xvdWRzY2FsZTpfNHQsZmFUaGVtZWNvOkE0dCxmYUdvb2dsZVBsYXk6JDR0LGZhS29ydnVlOkQ0dCxmYVczYzpFNHQsZmFHcmF2Ok40dCxmYUF3czpQNHQsZmFHbGlkZUc6STR0LGZhSnNmaWRkbGU6RjR0LGZhS2V5YmFzZTpPNHQsZmFMdW1vbkRyb3A6QjR0LGZhV2VlYmx5OlI0dCxmYURvY2tlcjpINHQsZmFNYWdlbnRvOnE0dCxmYUdpdEFsdDpWNHQsZmFGaXJlZm94QnJvd3NlcjpVNHQsZmFDbG91ZHNtaXRoOmo0dCxmYVdpemFyZHNPZlRoZUNvYXN0Olc0dCxmYUNyZWF0aXZlQ29tbW9uc05kOkc0dCxmYVVzcHM6WTR0LGZhU3F1YXJlTGV0dGVyYm94ZDpaNHQsZmFNYW5kYWxvcmlhbjpYNHQsZmFTbGFjazp0MmUsZmFTbGFja0hhc2g6aFYsZmFBbmdlbGxpc3Q6UTR0LGZhQW5kcm9pZDpLNHQsZmFNZWV0dXA6SjR0LGZhRm9udGljb25zRmk6ZTN0LGZhUGFsZmVkOnQzdCxmYVdwYmVnaW5uZXI6YTN0LGZhRGlhc3BvcmE6cjN0LGZhUHJvZHVjdEh1bnQ6aTN0LGZhU3F1YXJlVXB3b3JrOm8zdCxmYUN1dHRsZWZpc2g6czN0LGZhTWVkYXBwczpuM3QsZmFQaXg6bDN0LGZhU3F1YXJlVHVtYmxyOmEyZSxmYVR1bWJsclNxdWFyZTpjM3QsZmFSZWFjdDpkM3QsZmFKeGw6ZjN0LGZhU3F1YXJlTGlua2VkaW46dTN0LGZhQ3NzOnAzdCxmYUhhc2hub2RlOmgzdCxmYVJlZGRpdEFsaWVuOm0zdCxmYVRpa3RvazptVixmYVdvcmRwcmVzczpnM3QsZmFJZGVhbDp4M3QsZmFQaWVkUGlwZXJQcDpiM3QsZmFVc3N1bm5haDp2M3QsZmFGb3J0QXdlc29tZUFsdDp5M3QsZmFCdXJvbW9iZWxleHBlcnRlOnczdCxmYUJpbGliaWxpOk0zdCxmYU5lb3M6ejN0LGZhRGV2OmszdCxmYUhvdGphcjpTM3QsZmFEb2NodWI6QzN0LGZhVmltZW86TDN0LGZhTWF4Y2RuOlQzdCxmYVNxdWFyZUZvbnRBd2Vzb21lU3Ryb2tlOnIyZSxmYUZvbnRBd2Vzb21lQWx0Ol8zdCxmYVNwZWFrYXA6QTN0LGZhRmFudGFzeUZsaWdodEdhbWVzOiQzdCxmYUxpbnV4OkQzdCxmYUNvdHRvbkJ1cmVhdTpFM3QsZmFHb29nbGVXYWxsZXQ6TjN0LGZhRm91cnNxdWFyZTpQM3QsZmFTaGlydHNpbmJ1bGs6STN0LGZhTWludGJpdDpGM3QsZmFTdGF5bGlua2VkOk8zdCxmYVdlYmZsb3c6QjN0LGZhUmVucmVuOlIzdCxmYVJldjpIM3QsZmFLZXljZG46cTN0LGZhSGlyZUFIZWxwZXI6VjN0LGZhU3F1YXJlSGFja2VyTmV3czppMmUsZmFIYWNrZXJOZXdzU3F1YXJlOlUzdCxmYUNyZWF0aXZlQ29tbW9uc1BkQWx0OmozdCxmYU9yY2lkOlczdCxmYUJlaGFuY2U6RzN0LGZhTW9uZXJvOlkzdCxmYUZpZ21hOlozdCxmYUluc3RhZ3JhbTpnVixmYVBlcmJ5dGU6WDN0LGZhU3F1YXJlVmltZW86bzJlLGZhVmltZW9TcXVhcmU6UTN0LGZhUHVzaGVkOkszdCxmYU1peGNsb3VkOkozdCxmYVlhbmRleEludGVybmF0aW9uYWw6ZWx0LGZhSGl2ZTp0bHQsZmFDcmVhdGl2ZUNvbW1vbnNaZXJvOmFsdCxmYVNxdWFyZVNuYXBjaGF0OnMyZSxmYVNuYXBjaGF0U3F1YXJlOnJsdCxmYVRoZW1laXNsZTppbHQsZmFEYXJ0TGFuZzpvbHQsZmFEZXBsb3lkb2c6c2x0LGZhRmxpcGJvYXJkOm5sdCxmYUJ1eU5MYXJnZTpsbHQsZmFXYXRjaG1hbk1vbml0b3Jpbmc6Y2x0LGZhSGlwczpkbHQsZmFDbG91ZHZlcnNpZnk6Zmx0LGZhR29vZHJlYWRzOnVsdCxmYVRpZGFsOnBsdCxmYVVuaXR5OmhsdCxmYVRlbmNlbnRXZWlibzptbHQsZmFGcmVlQ29kZUNhbXA6Z2x0LGZhWFR3aXR0ZXI6eGx0LGZhU3RpY2tlck11bGU6Ymx0LGZhVHdpdGNoOnZsdCxmYUtpY2tzdGFydGVySzp5bHQsZmFDcml0aWNhbFJvbGU6d2x0LGZhU3RlYW1TeW1ib2w6TWx0LGZhTWFpbGNoaW1wOnpsdCxmYUx1bW9uOmtsdCxmYU51dHJpdGlvbml4OlNsdCxmYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nUGx1czpDbHQsZmFSZWRoYXQ6TGx0LGZhU3F1YXJlUGllZFBpcGVyOm4yZSxmYVBpZWRQaXBlclNxdWFyZTpUbHQsZmFXaGF0c2FwcDpfbHQsZmFJbWRiOkFsdCxmYVB5dGhvbjokbHQsZmFDYXNoQXBwOkRsdCxmYVBpbnRlcmVzdFA6RWx0LGZhV2htY3M6Tmx0LGZhSm9nZXQ6UGx0LGZhU3F1YXJlWW91dHViZTpsMmUsZmFZb3V0dWJlU3F1YXJlOklsdCxmYUF0bGFzc2lhbjpGbHQsZmFQaWVkUGlwZXJIYXQ6T2x0LGZhSW50ZXJuZXRFeHBsb3JlcjpCbHQsZmFBaXJibmI6Umx0LGZhSnM6SGx0LGZhUXVpbnNjYXBlOnFsdCxmYUFkdmVyc2FsOlZsdCxmYUNyZWF0aXZlQ29tbW9uczpVbHQsZmFOb3Rpb246amx0LGZhQ2hyb21lY2FzdDpXbHQsZmFXaWtpcGVkaWFXOkdsdCxmYVNpdHJveDpZbHQsZmFTcXVhcmVHaXRsYWI6YzJlLGZhR2l0bGFiU3F1YXJlOlpsdCxmYVNob2VsYWNlOlhsdCxmYVNlbGxjYXN0OlFsdCxmYU1peDpLbHQsZmFDY0FwcGxlUGF5OkpsdCxmYUJyYXZlOmVjdCxmYUV0c3k6dGN0LGZhQnRjOmFjdCxmYUFkbjpyY3QsZmFTcXVhcmVYVHdpdHRlcjppY3QsZmFTcXVhcmVGb250QXdlc29tZTpvY3QsZmFGb3J1bWJlZTpzY3QsZmE0Mkdyb3VwOmQyZSxmYUlubm9zb2Z0Om5jdCxmYVN0dW1ibGV1cG9uQ2lyY2xlOmxjdCxmYVN5bWZvbnk6Y2N0LGZhU2FsZXNmb3JjZTpkY3QsZmFTb3VyY2V0cmVlOmZjdCxmYUxpbmtlZGluSW46dWN0LGZhSHRtbDU6cGN0LGZhUnVzdDpoY3QsZmFIb3JuYmlsbDptY3QsZmFQaHA6Z2N0LGZhRGlzcXVzOnhjdCxmYTUwMHB4OmJjdCxmYUFmZmlsaWF0ZXRoZW1lOnZjdCxmYVJlZFJpdmVyOnljdCxmYVR3aXR0ZXI6eFYsZmFGb3J0QXdlc29tZTp3Y3QsZmFNaXhlcjpNY3QsZmFMeWZ0OnpjdCxmYUFwcGxlUGF5OmtjdCxmYUFydHN0YXRpb246U2N0LGZhTm9kZUpzOkNjdCxmYVVuY2hhcnRlZDpMY3QsZmFQbGF5c3RhdGlvbjpUY3QsZmFNaWNyb2Jsb2c6X2N0LGZhR2l0a3Jha2VuOkFjdCxmYVRlbGVncmFtOmYyZSxmYVRlbGVncmFtUGxhbmU6JGN0LGZhSXR1bmVzTm90ZTpEY3QsZmFMZXNzOkVjdCxmYUZpcmVmb3g6TmN0LGZhS2FnZ2xlOlBjdCxmYUZhY2Vib29rTWVzc2VuZ2VyOkljdCxmYUF1ZGlibGU6RmN0LGZhUGF0cmVvbjpPY3QsZmFWbnY6QmN0LGZhUGFnZWxpbmVzOlJjdCxmYUFtYXpvbjpIY3QsZmFFbnZpcmE6cWN0LGZhTGlub2RlOlZjdCxmYUFjY3Vzb2Z0OlVjdCxmYUVybGFuZzpqY3QsZmFDY0Rpc2NvdmVyOldjdCxmYVNhZmFyaTpHY3QsZmFTcGFjZUF3ZXNvbWU6WWN0LGZhTm9kZTpaY3QsZmFDb2RlcGVuOlhjdCxmYVJhdmVscnk6UWN0LGZhQWxpcGF5OktjdCxmYUNjQW1leDpKY3QsZmFQaWVkUGlwZXJBbHQ6ZTZ0LGZhTGV0dGVyYm94ZDp0NnQsZmFPcGVyYTphNnQsZmFXZWlibzpyNnQsZmFSZWFkbWU6aTZ0LGZhR29sYW5nOm82dCxmYVN0YWNrRXhjaGFuZ2U6czZ0LGZhR3VscDpuNnQsZmFZZWxwOmw2dCxmYUdvZm9yZTpjNnQsZmFBdmlhdG86ZDZ0LGZhUGFkbGV0OmY2dCxmYUVkZ2VMZWdhY3k6dTZ0LGZhU3F1YXJlTGFzdGZtOnUyZSxmYUxhc3RmbVNxdWFyZTpwNnQsZmFHb29kcmVhZHNHOmg2dCxmYUNjTWFzdGVyY2FyZDptNnQsZmFEaXNjb3Vyc2U6ZzZ0LGZhQmxhY2tUaWU6eDZ0LGZhU3F1YXJlRmFjZWJvb2s6cDJlLGZhRmFjZWJvb2tTcXVhcmU6YjZ0LGZhQmF0dGxlTmV0OnY2dCxmYUJpbW9iamVjdDp5NnR9fSk7dmFyIHBvMSxoMmUsTTZ0LHo2dCxtMmUsazZ0LFhkLFM2dCxDNnQsTDZ0LFQ2dCxnMmUsXzZ0LEE2dCwkNnQsUWQsRDZ0LHgyZSxFNnQsYjJlLE42dCxQNnQsSTZ0LEY2dCx2MmUsTzZ0LHkyZSxCNnQsdzJlLFI2dCxNMmUsSDZ0LHoyZSxxNnQsazJlLFY2dCxTMmUsVTZ0LGo2dCxDMmUsVzZ0LEwyZSxHNnQsVDJlLFk2dCxfMmUsWjZ0LFg2dCxBMmUsUTZ0LCQyZSxLNnQsRDJlLEo2dCxFMmUsZTV0LE4yZSx0NXQsYTV0LHI1dCxiVixpNXQsbzV0LHM1dCxuNXQsbDV0LGM1dCxkNXQsZjV0LHZWLHU1dCxwNXQsUDJlLGg1dCxtNXQsZzV0LHg1dCxiNXQsdjV0LHk1dCx3NXQsSTJlLE01dCx6NXQsazV0LFE2LFM1dCxDNXQsRjJlLEw1dCxUNXQsTzJlLF81dCxDVixBNXQsJDV0LHlWLEQ1dCxFNXQsQjJlLE41dCxQNXQsSTV0LFIyZSxGNXQsSDJlLE81dCx3VixCNXQsUjV0LHEyZSxINXQsVjJlLHE1dCxWNXQsVTV0LFUyZSxqNXQsajJlLFc1dCxXMmUsRzV0LEcyZSxZNXQsWjV0LFg1dCxRNXQsWTJlLEs1dCxKNXQsWjJlLGU4dCx0OHQsWDJlLGE4dCxyOHQsUTJlLGk4dCxvOHQsczh0LFlkLG44dCxsOHQsYzh0LEtkLGQ4dCxmOHQsdTh0LEsyZSxwOHQsaDh0LEoyZSxtOHQsZWFlLGc4dCxaZCx4OHQsYjh0LHY4dCx0YWUseTh0LE1WLHc4dCxNOHQsejh0LGs4dCxhYWUsUzh0LHpWLEM4dCxMOHQscmFlLFQ4dCxpYWUsXzh0LEE4dCxvYWUsJDh0LHNhZSxEOHQsa1YsRTh0LE44dCxQOHQsSmQsSTh0LEY4dCxPOHQsQjh0LG5hZSxSOHQsbGFlLEg4dCxjYWUscTh0LGRhZSxWOHQsZmFlLFU4dCx1YWUsajh0LFNWLFc4dCxHOHQsWTh0LFo4dCxwYWUsWDh0LGhhZSxROHQsbWFlLEs4dCxnYWUsSjh0LGVkdCx0ZHQsYWR0LHJkdCxpZHQsb2R0LHhhZSxzZHQsYmFlLG5kdCxsZHQsdmFlLGNkdCx5YWUsZGR0LHdhZSxmZHQsTFYsdWR0LE1hZSxwZHQsaGR0LHphZSxtZHQsa2FlLGdkdCx4ZHQsYmR0LFNhZSx2ZHQseWR0LENhZSx3ZHQsTWR0LHpkdCxrZHQsTGFlLFNkdCxUYWUsQ2R0LF9hZSxMZHQsVGR0LF9kdCxBYWUsQWR0LCRhZSwkZHQsRGFlLERkdCxFZHQsRWFlLE5kdCxOYWUsUGR0LElkdCxQYWUsRmR0LE9kdCxCZHQsaG8xLFJkdD1uKCgpPT57cG8xPSJmYXIiLGgyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtbWludXMiLGljb246WzQ0OCw1MTIsWzYxNzY3LCJtaW51cy1zcXVhcmUiXSwiZjE0NiIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTM2IDIzMmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LE02dD1oMmUsejZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLWNoZWNrIixpY29uOls0NDgsNTEyLFtdLCJmMjc0IiwiTTMyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyem0yMzAuNyA2NS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuMyAxMC43IDcuOCAxMy4xIDIyLjggNS4zIDMzLjVMMjExLjQgMzc0LjFjLTQuMSA1LjctMTAuNSA5LjMtMTcuNSA5LjgtNyAuNS0xMy45LTItMTguOC02LjlsLTU1LjktNTUuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM2IDM2IDEwNS42LTE0NS4yeiJdfSxtMmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzIixpY29uOls1MTIsNTEyLFsxMjg1MzUsImtpc3MiXSwiZjU5NiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI0MCAwbDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni00OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxrNnQ9bTJlLFhkPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhc3RlIixpY29uOls1MTIsNTEyLFsiZmlsZS1jbGlwYm9hcmQiXSwiZjBlYSIsIk02NCA0OGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTEyIDAgMC00OC0xMTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnptMTc2IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDEwNCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDUuNiAwYzguOC04LjYgMTktMTUuOCAzMC4yLTIxLjEgLjEtLjkgLjItMS45IC4yLTIuOXpNNDQ4IDQ2NGwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsMTAxLjUgMGM0LjIgMCA4LjMgMS43IDExLjMgNC43bDU4LjUgNTguNWMzIDMgNC43IDcuMSA0LjcgMTEuM0w0NjQgNDQ4YzAgOC44LTcuMiAxNi0xNiAxNnpNMjI0IDIyNGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zbC01OC41LTU4LjVjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMMjg4IDE2MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6Il19LFM2dD1YZCxDNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJmMGE1IiwiTTY0IDEyOGwxNzcuNiAwYy0xIDUuMi0xLjYgMTAuNS0xLjYgMTZsMCAxNi0xNzYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMjI0IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA0OGMwIDUyLjUtMzMuNyA5Ny4xLTgwLjcgMTEzLjQgLjUtMy4xIC43LTYuMiAuNy05LjQgMC0yMC05LjItMzcuOS0yMy42LTQ5LjcgNC45LTkgNy42LTE5LjQgNy42LTMwLjMgMC0xNS4xLTUuMy0yOS0xNC00MCA4LjgtMTEgMTQtMjQuOSAxNC00MGwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MHptMzItODBsMCAwYy0xOCAwLTM0LjYgNi00OCAxNkw2NCA4MEMyOC43IDgwIDAgMTA4LjcgMCAxNDRzMjguNyA2NCA2NCA2NGw4MiAwYy0xLjMgNS4xLTIgMTAuNS0yIDE2IDAgMjUuMyAxNC43IDQ3LjIgMzYgNTcuNi0yLjYgNy00IDE0LjUtNCAyMi40IDAgMjAgOS4yIDM3LjkgMjMuNiA0OS43LTQuOSA5LTcuNiAxOS40LTcuNiAzMC4zIDAgMzUuMyAyOC43IDY0IDY0IDY0bDg4IDBjOTIuOCAwIDE2OC03NS4yIDE2OC0xNjhsMC00OGMwLTkyLjgtNzUuMi0xNjgtMTY4LTE2OGwtMjQgMHpNMjU2IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwek0yNDAgMjI0YzAgNS41IC43IDEwLjkgMiAxNmwtMzQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwzMiAwIDAgMTZ6bTI0IDY0bDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjQgMHoiXX0sTDZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtZXhjZWwiLGljb246WzM4NCw1MTIsW10sImYxYzMiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptOTkuMiAyNjUuNmMtOC0xMC42LTIzLTEyLjgtMzMuNi00LjhzLTEyLjggMjMtNC44IDMzLjZMMTYyIDM0NCAxMjQuOCAzOTMuNmMtOCAxMC42LTUuOCAyNS42IDQuOCAzMy42czI1LjYgNS44IDMzLjYtNC44TDE5MiAzODQgMjIwLjggNDIyLjRjOCAxMC42IDIzIDEyLjggMzMuNiA0LjhzMTIuOC0yMyA0LjgtMzMuNkwyMjIgMzQ0IDI1OS4yIDI5NC40YzgtMTAuNiA1LjgtMjUuNi00LjgtMzMuNnMtMjUuNi01LjgtMzMuNiA0LjhMMTkyIDMwNCAxNjMuMiAyNjUuNnoiXX0sVDZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImVudmVsb3BlIixpY29uOls1MTIsNTEyLFsxMjgzODYsOTk5Myw2MTQ0M10sImYwZTAiLCJNNjEuNCA2NEMyNy41IDY0IDAgOTEuNSAwIDEyNS40IDAgMTI2LjMgMCAxMjcuMSAuMSAxMjhMMCAxMjggMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTYtLjEgMGMwLS45IC4xLTEuNyAuMS0yLjYgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjRMNjEuNCA2NHpNNDY0IDE5Mi4zTDQ2NCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTkxLjcgMTU0LjggMTE3LjRjMzEuNCAyMy45IDc0LjkgMjMuOSAxMDYuNCAwTDQ2NCAxOTIuM3pNNDggMTI1LjRDNDggMTE4IDU0IDExMiA2MS40IDExMmwzODkuMiAwYzcuNCAwIDEzLjQgNiAxMy40IDEzLjQgMCA0LjItMiA4LjItNS4zIDEwLjdMMjgwLjIgMjcxLjVjLTE0LjMgMTAuOC0zNC4xIDEwLjgtNDguNCAwTDUzLjMgMTM2LjFjLTMuMy0yLjUtNS4zLTYuNS01LjMtMTAuN3oiXX0sZzJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1kb3duIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWRvd24iXSwiZjE1MCIsIk0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDB6bTY0LTE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMHpNMjI0IDM1MmMtNi43IDAtMTMtMi44LTE3LjYtNy43bC0xMDQtMTEyYy02LjUtNy04LjItMTcuMi00LjQtMjUuOVMxMTAuNSAxOTIgMTIwIDE5MmwyMDggMGM5LjUgMCAxOC4yIDUuNyAyMiAxNC40czIuMSAxOC45LTQuNCAyNS45bC0xMDQgMTEyYy00LjUgNC45LTEwLjkgNy43LTE3LjYgNy43eiJdfSxfNnQ9ZzJlLEE2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMuMyAwYzEwLjQtMzYuOSA0NC40LTY0IDg0LjctNjRzNzQuMiAyNy4xIDg0LjcgNjRsMTAyLjYgMGM0LjktMTcuNCAxNS4xLTMyLjcgMjguNy00My45TDM2OCA5NmMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6bTMuMyAzNjhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTUuNCAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQwLjYgNDAuNmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjR6TTQxNiAyNTZsMTEyIDAgMC0yMy40YzAtNC4yLTEuNy04LjMtNC43LTExLjNsLTQwLjYtNDAuNmMtMy0zLTcuMS00LjctMTEuMy00LjdsLTU1LjQgMCAwIDgwem0wIDQ4bDAgMzIuNGMyLjYtLjIgNS4zLS40IDgtLjQgNDAuMyAwIDc0LjIgMjcuMSA4NC43IDY0bDMuMyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwLTExMiAwek0xNTIgNDY0YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMjcyIDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSwkNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYmVsbCIsaWNvbjpbNDQ4LDUxMixbMTI4Mjc2LDYxNjAyXSwiZjBmMyIsIk0yMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA5LjdDMTE4LjYgNDUuMyA1NiAxMTUuNCA1NiAyMDBsMCAxNC41YzAgMzcuNy0xMCA3NC43LTI5IDEwNy4zTDUuMSAzNTkuMkMxLjggMzY1IDAgMzcxLjUgMCAzNzguMiAwIDM5OS4xIDE2LjkgNDE2IDM3LjggNDE2bDM3Mi40IDBjMjAuOSAwIDM3LjgtMTYuOSAzNy44LTM3LjggMC02LjctMS44LTEzLjMtNS4xLTE5TDQyMSAzMjEuN2MtMTktMzIuNi0yOS02OS42LTI5LTEwNy4zbDAtMTQuNWMwLTg0LjYtNjIuNi0xNTQuNy0xNDQtMTY2LjNsMC05LjdjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTM5Mi40IDM2OGwtMzM2LjkgMCAxMi45LTIyLjFDOTEuNyAzMDYgMTA0IDI2MC42IDEwNCAyMTQuNWwwLTE0LjVjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBzMTIwIDUzLjcgMTIwIDEyMGwwIDE0LjVjMCA0Ni4yIDEyLjMgOTEuNSAzNS41IDEzMS40TDM5Mi40IDM2OHpNMTU2LjEgNDY0YzkuOSAyOCAzNi42IDQ4IDY3LjkgNDhzNTgtMjAgNjcuOS00OGwtMTM1LjggMHoiXX0sUWQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibWVzc2FnZSIsaWNvbjpbNTEyLDUxMixbImNvbW1lbnQtYWx0Il0sImYyN2EiLCJNMjAzLjcgNTEyLjlzMCAwIDAgMGwtMzcuOCAyNi43Yy03LjMgNS4yLTE2LjkgNS44LTI0LjkgMS43UzEyOCA1MjkgMTI4IDUyMGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmwzMjAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZsLTEyMC40IDAtOTEuOSA2NC45em02NC4zLTEwNC4xYzguMS01LjcgMTcuOC04LjggMjcuNy04LjhMNDE2IDQwMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiA4MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyMjRjMCAyNi41IDIxLjUgNDggNDggNDhsNTYgMGMxMC40IDAgMTkuMyA2LjYgMjIuNiAxNS45IC45IDIuNSAxLjQgNS4yIDEuNCA4LjFsMCA0OS43YzMyLjctMjMuMSA2My4zLTQ0LjcgOTEuOS02NC45eiJdfSxENnQ9UWQseDJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZGl6enkiLGljb246WzUxMiw1MTIsWyJkaXp6eSJdLCJmNTY3IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMjg4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxFNnQ9eDJlLGIyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1kYXlzIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItYWx0Il0sImYwNzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0LTg4IDAgMCA4MCA3MiAwem0xNi0xMjhsMC04MC04OCAwIDAgODAgODggMHptLTEzNiAwbDAtODAtODAgMCAwIDgwIDgwIDB6bS0xMjggMGwwLTgwLTg4IDAgMCA4MCA4OCAwek00OCAzNTJsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNzIgMCAwLTgwLTg4IDB6bTEzNiAwbDAgODAgODAgMCAwLTgwLTgwIDB6TTEyMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHoiXX0sTjZ0PWIyZSxQNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC11cCIsaWNvbjpbMzg0LDUxMixbOTc1N10sImYwYTYiLCJNNjQgNjRsMCAxNzcuNmM1LjItMSAxMC41LTEuNiAxNi0xLjZsMTYgMCAwLTE3NmMwLTguOC03LjItMTYtMTYtMTZTNjQgNTUuMiA2NCA2NHpNODAgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgNjYuMyA1My43IDEyMCAxMjAgMTIwbDQ4IDBjNTIuNSAwIDk3LjEtMzMuNyAxMTMuNC04MC43LTMuMSAuNS02LjIgLjctOS40IC43LTIwIDAtMzcuOS05LjItNDkuNy0yMy42LTkgNC45LTE5LjQgNy42LTMwLjMgNy42LTE1LjEgMC0yOS01LjMtNDAtMTQtMTEgOC44LTI0LjkgMTQtNDAgMTRsLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDAgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtODAgMHpNMCAzMjBsMCAwYzAtMTggNi0zNC42IDE2LTQ4TDE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBzNjQgMjguNyA2NCA2NGwwIDgyYzUuMS0xLjMgMTAuNS0yIDE2LTIgMjUuMyAwIDQ3LjIgMTQuNyA1Ny42IDM2IDctMi42IDE0LjUtNCAyMi40LTQgMjAgMCAzNy45IDkuMiA0OS43IDIzLjYgOS00LjkgMTkuNC03LjYgMzAuMy03LjYgMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4OGMwIDkyLjgtNzUuMiAxNjgtMTY4IDE2OGwtNDggMEM3NS4yIDUxMiAwIDQzNi44IDAgMzQ0bDAtMjR6bTMzNi02NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNMTYwIDI0MGM1LjUgMCAxMC45IC43IDE2IDJsMC0zNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDMyIDE2IDB6bTY0IDI0bDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMjR6Il19LEk2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLWxpemFyZCIsaWNvbjpbNTEyLDUxMixbXSwiZjI1OCIsIk03MiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTY4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE1MiAwYzQuNSAwIDguOSAxLjMgMTIuNyAzLjZsNjQgNDBjNyA0LjQgMTEuMyAxMi4xIDExLjMgMjAuNGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTAuNy00Ni45LTI5LjMtMTQ1LjEgMGMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MmwxMDQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkw3MiAyMDhjLTM5LjggMC03Mi0zMi4yLTcyLTcyUzMyLjIgNjQgNzIgNjRsMjA5LjYgMGM0Ni43IDAgOTAuOSAyMS41IDExOS43IDU4LjNsNzguNCAxMDAuMWMyMC45IDI2LjcgMzIuMyA1OS43IDMyLjMgOTMuN0w1MTIgNDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA3LjljMC0yMy4yLTcuOC00NS44LTIyLjEtNjQuMUwzNjMuNSAxNTEuOWMtMTkuNy0yNS4yLTQ5LjktMzkuOS04MS45LTM5LjlMNzIgMTEyeiJdfSxGNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWZ1bGwiLGljb246WzUxMiw1MTIsWzEyODk5NywxMjg5OTgsMTI4OTk5LDEyOWUzLDEyOTAwMSwxMjkwMDIsMTI5MDAzLDExMDM1LDExMDM2XSwiZjQ1YyIsIk00NDggNDhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6Il19LHYyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtcGF1c2UiLGljb246WzUxMiw1MTIsWzYyMDkyLCJwYXVzZS1jaXJjbGUiXSwiZjI4YiIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHptMTEyIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHoiXX0sTzZ0PXYyZSx5MmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFyZC1kcml2ZSIsaWNvbjpbNDQ4LDUxMixbMTI4NDM2LCJoZGQiXSwiZjBhMCIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYyYzUuMS0xLjMgMTAuNS0yIDE2LTJsMzIwIDBjNS41IDAgMTAuOSAuNyAxNiAybDAtMTYyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNNDggMzIwbDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAzMDRjLTguOCAwLTE2IDcuMi0xNiAxNnpNMCAzMjBMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtOTZ6bTIxNiA0OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxCNnQ9eTJlLHcyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXppcHBlciIsaWNvbjpbMzg0LDUxMixbImZpbGUtYXJjaGl2ZSJdLCJmMWM2IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTgwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNjQgNTZsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyeiJdfSxSNnQ9dzJlLE0yZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmbG9wcHktZGlzayIsaWNvbjpbNDQ4LDUxMixbMTI4MTkwLDEyODQyNiwic2F2ZSJdLCJmMGM3IiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0Mi43YzAtNC4yLTEuNy04LjMtNC43LTExLjNMMzIwIDg2LjYgMzIwIDE3NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTYtMzIgMHptODAgMGwwIDgwIDEyOCAwIDAtODAtMTI4IDB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjQyLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjhjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0w0NDggNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTYwIDMyMGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LEg2dD1NMmUsejJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1NDEsImdyaW4tdG9uZ3VlLXNxdWludCJdLCJmNThhIiwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDc1LjkgNDAuNyAxNDIuNCAxMDEuNSAxNzguNy0zLjYtMTAuOS01LjUtMjIuNi01LjUtMzQuN2wwLTM3LjVjLTEwLjItMTIuNi0xOC4zLTI2LjktMjMuOC00Mi40LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNiAxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtNS41IDE1LjYtMTMuNiAyOS45LTIzLjggNDIuNWwwIDM3LjVjMCAxMi4xLTEuOSAyMy44LTUuNSAzNC43IDYwLjgtMzYuMyAxMDEuNS0xMDIuNyAxMDEuNS0xNzguN3pNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTI1LjgtNzUuN2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXMxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjN6bTI2My42LTIxLjFjNC41IDYuOCAzLjEgMTUuOS0zLjEgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41ek0zMjAgNDE2bDAtMzcuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDM3LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0scTZ0PXoyZSxrMmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FtZXJhIixpY29uOls1MTIsNTEyLFs2MjI1OCwiY2FtZXJhLWFsdCJdLCJmMDMwIiwiTTE5My4xIDMyYy0xOC43IDAtMzYuMiA5LjQtNDYuNiAyNC45TDEyMC41IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNTYuNSAwLTI2LTM5LjFDMzU1LjEgNDEuNCAzMzcuNiAzMiAzMTguOSAzMkwxOTMuMSAzMnptLTYuNyA1MS42YzEuNS0yLjIgNC0zLjYgNi43LTMuNmwxMjUuNyAwYzIuNyAwIDUuMiAxLjMgNi43IDMuNmwzMy4yIDQ5LjhjNC41IDYuNyAxMS45IDEwLjcgMjAgMTAuN2w2OS4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsNjkuMyAwYzggMCAxNS41LTQgMjAtMTAuN2wzMy4yLTQ5Ljh6TTI1NiAzODRhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0xOTIgMjcyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sVjZ0PWsyZSxTMmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXN0YXJzIixpY29uOls1MTIsNTEyLFsxMjkzMjEsImdyaW4tc3RhcnMiXSwiZjU4NyIsIk0wIDI1NmMwLTI5LjYgNS01Ny45IDE0LjItODQuNGwxNy4zIDE2LjktNC42IDI3Yy00LjIgMjQuNCA1LjYgNDYuMiAyMiA1OS45IDkuOCAxMDUuOCA5OC44IDE4OC43IDIwNy4xIDE4OC43czE5Ny40LTgyLjggMjA3LjEtMTg4LjZjMTYuNC0xMy43IDI2LjEtMzUuNCAyMi01OS45bC00LjYtMjcgMTcuMy0xNi45YzkuMiAyNi40IDE0LjIgNTQuOCAxNC4yIDg0LjQgMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMwIDM5Ny40IDAgMjU2ek0yNTYgNDhjLTE1LjIgMC0zMCAxLjYtNDQuMyA0LjdMMjAxLjQgMzEuOEMxOTcgMjMgMTkxLjEgMTUuOCAxODQuMiAxMC4yIDIwNyAzLjYgMjMxLjEgMCAyNTYgMHM0OSAzLjYgNzEuOCAxMC4yQzMyMC45IDE1LjggMzE1IDIzIDMxMC42IDMxLjhMMzAwLjMgNTIuN0MyODYgNDkuNiAyNzEuMiA0OCAyNTYgNDh6TTM3Mi4yIDMwMi4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0zNTMuNyA1My4xYzUuOS0xMS45IDIyLjgtMTEuOSAyOC43IDBsMjMuMyA0Ny4yIDUyIDcuNmMxMy4xIDEuOSAxOC40IDE4IDguOSAyNy4zbC0zNy43IDM2LjcgOC45IDUxLjhjMi4yIDEzLjEtMTEuNSAyMy0yMy4yIDE2LjlMMzY4IDIxNiAzMjEuNSAyNDAuNWMtMTEuNyA2LjItMjUuNS0zLjgtMjMuMi0xNi45bDguOS01MS44LTM3LjctMzYuN2MtOS41LTkuMy00LjMtMjUuNCA4LjktMjcuM2w1Mi03LjYgMjMuMy00Ny4yem0tMTk1LjMgMGwyMy4zIDQ3LjIgNTIgNy42YzEzLjEgMS45IDE4LjQgMTggOC45IDI3LjNsLTM3LjcgMzYuNyA4LjkgNTEuOGMyLjIgMTMuMS0xMS41IDIzLTIzLjIgMTYuOUwxNDQgMjE2IDk3LjUgMjQwLjVjLTExLjcgNi4yLTI1LjUtMy44LTIzLjItMTYuOWw4LjktNTEuOC0zNy43LTM2LjdjLTkuNS05LjMtNC4zLTI1LjQgOC45LTI3LjNsNTItNy42IDIzLjMtNDcuMmM1LjktMTEuOSAyMi44LTExLjkgMjguNyAweiJdfSxVNnQ9UzJlLGo2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJleWUiLGljb246WzU3Niw1MTIsWzEyODA2NV0sImYwNmUiLCJNMjg4IDgwQzIyMi44IDgwIDE2OS4yIDEwOS42IDEyOC4xIDE0Ny43IDg5LjYgMTgzLjUgNjMgMjI2IDQ5LjQgMjU2IDYzIDI4NiA4OS42IDMyOC41IDEyOC4xIDM2NC4zIDE2OS4yIDQwMi40IDIyMi44IDQzMiAyODggNDMyczExOC44LTI5LjYgMTU5LjktNjcuN0M0ODYuNCAzMjguNSA1MTMgMjg2IDUyNi42IDI1NiA1MTMgMjI2IDQ4Ni40IDE4My41IDQ0Ny45IDE0Ny43IDQwNi44IDEwOS42IDM1My4yIDgwIDI4OCA4MHpNOTUuNCAxMTIuNkMxNDIuNSA2OC44IDIwNy4yIDMyIDI4OCAzMnMxNDUuNSAzNi44IDE5Mi42IDgwLjZjNDYuOCA0My41IDc4LjEgOTUuNCA5MyAxMzEuMSAzLjMgNy45IDMuMyAxNi43IDAgMjQuNi0xNC45IDM1LjctNDYuMiA4Ny43LTkzIDEzMS4xLTQ3LjEgNDMuNy0xMTEuOCA4MC42LTE5Mi42IDgwLjZTMTQyLjUgNDQzLjIgOTUuNCAzOTkuNGMtNDYuOC00My41LTc4LjEtOTUuNC05My0xMzEuMS0zLjMtNy45LTMuMy0xNi43IDAtMjQuNiAxNC45LTM1LjcgNDYuMi04Ny43IDkzLTEzMS4xek0yODggMzM2YzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMjkuNi0xNi4xLTU1LjUtNDAtNjkuMy0xLjQgNTkuNy00OS42IDEwNy45LTEwOS4zIDEwOS4zIDEzLjggMjMuOSAzOS43IDQwIDY5LjMgNDB6bS03OS42LTg4LjRjMi41IC4zIDUgLjQgNy42IC40IDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMi42LS4yLTUuMS0uNC03LjYtMzcuNCAzLjktNjcuMiAzMy43LTcxLjEgNzEuMXptNDUuNi0xMTVjMTAuOC0zIDIyLjItNC41IDMzLjktNC41IDguOCAwIDE3LjUgLjkgMjUuOCAyLjYgLjMgLjEgLjUgLjEgLjggLjIgNTcuOSAxMi4yIDEwMS40IDYzLjcgMTAxLjQgMTI1LjIgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNjEuNiAwLTExMy00My41LTEyNS4yLTEwMS40LTEuOC04LjYtMi44LTE3LjUtMi44LTI2LjYgMC0xMSAxLjQtMjEuOCA0LTMyIC4yLS43IC4zLTEuMyAuNS0xLjkgMTEuOS00My40IDQ2LjEtNzcuNiA4OS41LTg5LjV6Il19LEMyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNhZC10ZWFyIixpY29uOls1MTIsNTEyLFsxMjg1NDYsInNhZC10ZWFyIl0sImY1YjQiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNDEuOCAxMi4zIDgwLjcgMzMuNiAxMTMuMyA4LjIgNDQuNyA0Ny4zIDc4LjYgOTQuMyA3OC43IDI0LjcgMTAuMyA1MS43IDE2IDgwLjEgMTYgMTE0LjkgMCAyMDgtOTMuMSAyMDgtMjA4ek0yODggMzUyYy01LjUgMC0xMC45IC42LTE2IDEuOCAwLS42IDAtMS4yIDAtMS44IDAtMTYuMi00LTMxLjUtMTEuMS00NC45IDguNy0yIDE3LjgtMy4xIDI3LjEtMy4xIDQwLjIgMCA3NS43IDE5LjggOTcuNSA1MCA3LjcgMTAuOCA1LjMgMjUuOC01LjUgMzMuNXMtMjUuOCA1LjMtMzMuNS01LjVjLTEzLjEtMTguMi0zNC40LTMwLTU4LjUtMzB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODUuNCAyNzYuOGM2LjUgNy44IDEyLjYgMTYuMSAxOC4zIDI0LjYgOSAxMy40IDIwLjMgMzAuMiAyMC4zIDQ3LjQgMCAyOC4zLTIxLjUgNTEuMi00OCA1MS4ycy00OC0yMi45LTQ4LTUxLjJjMC0xNy4yIDExLjItMzQgMjAuMy00Ny40IDUuNy04LjUgMTEuOS0xNi43IDE4LjMtMjQuNiAyLjQtMi45IDUuNy00LjggOS40LTQuOHM3IDEuOSA5LjQgNC44eiJdfSxXNnQ9QzJlLEwyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzaGFyZS1mcm9tLXNxdWFyZSIsaWNvbjpbNTc2LDUxMixbNjE1MDksInNoYXJlLXNxdWFyZSJdLCJmMTRkIiwiTTQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNGwwIDU2LTQ4IDBjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwIDAgNDYuNyAyMC43IDgwLjQgNDMuNiAxMDMuNCA4LjEgOC4yIDE2LjUgMTQuOSAyNC4zIDIwLjQgOS4yIDYuNSAyMS43IDUuNyAzMC4xLTEuOXMxMC4yLTIwIDQuNS0yOS44Yy0zLjYtNi4zLTYuNS0xNC45LTYuNS0yNi43IDAtMzYuMiAyOS4zLTY1LjUgNjUuNS02NS41bDQ2LjUgMCAwIDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDd6bTcgOTdsMC0yMi4xIDc4LjEgNzguMS03OC4xIDc4LjEgMC0yMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0TDMzOCAxOTJjLTUwLjkgMC05My45IDMzLjUtMTA4LjMgNzkuNi0zLjMtOS40LTUuMi0xOS44LTUuMi0zMS42IDAtNjEuOSA1MC4xLTExMiAxMTItMTEybDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjR6bS0zMjAtOGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQgMHoiXX0sRzZ0PUwyZSxUMmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibm90ZS1zdGlja3kiLGljb246WzQ0OCw1MTIsWzYyMDI2LCJzdGlja3ktbm90ZSJdLCJmMjQ5IiwiTTI0MCA0MzJMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDMyMCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE3Ni04OCAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDg4ek0zODAuMSAzMjBMMjg4IDQxMi4xIDI4OCAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNjguMSAwek0wIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQyOS4zIDMzOC43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZ6Il19LFk2dD1UMmUsXzJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtYmFjay1maXN0IixpY29uOlszODQsNTEyLFsiaGFuZC1yb2NrIl0sImYyNTUiLCJNOTYgNDAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgNDAwek03My4yIDM1Mmw2NC42IDAtNzkuNS04OC4zQzUxLjcgMjU2LjMgNDggMjQ2LjggNDggMjM2LjlMNDggMjA0YzAtMTYuMSAxMS45LTI5LjUgMjcuNC0zMS43IDExLjgtMS43IDIwLjYtMTEuOCAyMC42LTIzLjhMOTYgNzJjMC0xMy4zIDEwLjctMjQgMjQtMjQgNy4yIDAgMTMuNiAzLjEgMTggOC4xIDQuNiA1LjIgMTEuMSA4LjEgMTggOC4xczEzLjQtMyAxOC04LjFjNC40LTUgMTAuOC04LjEgMTgtOC4xIDguNSAwIDE1LjkgNC40IDIwLjIgMTEuMSA2LjkgMTAuNyAyMC45IDE0LjIgMzIgOCAzLjUtMS45IDcuNC0zLjEgMTEuOC0zLjEgMTAuNiAwIDE5LjcgNi45IDIyLjggMTYuNiAzLjggMTEuNyAxNS45IDE4LjcgMjggMTYgMS43LS40IDMuNC0uNiA1LjItLjYgMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA5Mi4yYzAgMTQuNC0zLjUgMjguNS0xMC4yIDQxLjJsLTUyLjIgOTguNiA1NC4zIDAgNDAuMy03Ni4yYzEwLjQtMTkuNiAxNS44LTQxLjUgMTUuOC02My42bDAtOTIuMmMwLTM4LjQtMzAuMS02OS44LTY4LjEtNzEuOS0xMi45LTE5LjMtMzQuOS0zMi4xLTU5LjktMzIuMS01LjcgMC0xMS4yIC43LTE2LjUgMS45LTEyLjctMTEuMS0yOS4zLTE3LjktNDcuNS0xNy45LTEzLjEgMC0yNS40IDMuNS0zNiA5LjYtMTAuNi02LjEtMjIuOS05LjYtMzYtOS42LTM5LjggMC03MiAzMi4yLTcyIDcybDAgNTguN0MxOS43IDE0MyAwIDE3MS4yIDAgMjA0bDAgMzIuOWMwIDIxLjcgOCA0Mi43IDIyLjYgNTguOUw3My4yIDM1MnoiXX0sWjZ0PV8yZSxYNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3MtcXVlZW4iLGljb246WzUxMiw1MTIsWzk4MTldLCJmNDQ1IiwiTTMyNS4zIDkwLjhjOS4xLTQuOCAyMC42LTMuMyAyOC4yIDQuM2wzOS44IDM5LjggMy43IDMuM2M5LjEgNy4xIDIwLjkgMTAgMzIuNCA3LjdsNDYuNC05LjMgMy41LS40YzgtLjQgMTUuOCAzLjIgMjAuNiA5LjggNS41IDcuNiA2LjEgMTcuNiAxLjYgMjUuOGwtMTEyLjYgMjAyLjYgNTEuNSA3MC45IDEuOCAyLjdjNCA2LjYgNi4yIDE0LjIgNi4yIDIyIDAgMjMuMy0xOC45IDQyLjEtNDIuMSA0Mi4xbC0yOTkuOCAwYy0yMS44IDAtMzkuOC0xNi42LTQxLjktMzcuOGwtLjItNC4zIC4xLTMuM2MuNi03LjcgMy40LTE1LjEgNy45LTIxLjRsNTEuNS03MC45LTExMi41LTIwMi42Yy00LjUtOC4yLTMuOS0xOC4zIDEuNi0yNS44czE0LjktMTEuMiAyNC4xLTkuNGw0Ni40IDkuM2MxMy4xIDIuNiAyNi43LTEuNSAzNi4xLTEwLjlMMTU5LjUgOTUgMTYzIDkyLjJjOC42LTUuOCAyMC4xLTUuNiAyOC41IDEuMWw0MCAzMiAyLjggMi4xYzE0LjQgOS42IDMzLjUgOC45IDQ3LjItMi4xbDQwLTMyIDMuOC0yLjV6TTE2NC43IDQwMGwtNDYuNiA2NCAyNzYuNyAwLTQ2LjYtNjQtMTgzLjYgMHpNMzExLjUgMTYyLjhjLTMwLjEgMjQuMS03Mi4xIDI1LjYtMTAzLjggNC41bC02LjItNC41LTIzLjMtMTguNi0yNC42IDI0LjZjLTE5LjggMTkuOC00Ny43IDI4LjktNzUuMSAyNC44bDg4LjEgMTU4LjUgMTc5LjggMCA4OC0xNTguNWMtMjUuNyAzLjgtNTEuNy0zLjktNzEuMS0yMWwtNC0zLjctMjQuNi0yNC42LTIzLjIgMTguNnpNMjU2LjUgNzJhNDAgNDAgMCAxIDEgMC04MCA0MCA0MCAwIDEgMSAwIDgweiJdfSxBMmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRlYXJzIixpY29uOls2NDAsNTEyLFsxMjg1MTQsImdyaW4tdGVhcnMiXSwiZjU4OCIsIk01MDQuMSAzNTNDNTEyLjkgMzY3LjIgNTI1LjMgMzc5IDUzOS44IDM4Ny4yIDQ5NS4xIDQ2MiA0MTMuNCA1MTIgMzIwIDUxMlMxNDQuOSA0NjIgMTAwLjIgMzg3LjJjMTQuNi04LjIgMjYuOS0yMCAzNS44LTM0LjMgMzQuOSA2NiAxMDQuMiAxMTEgMTg0LjEgMTExczE0OS4yLTQ1IDE4NC4xLTExMXptMTYuNC0xNTIuNUM0OTYuMiAxMTIuNiA0MTUuNyA0OCAzMjAgNDhTMTQzLjggMTEyLjYgMTE5LjUgMjAwLjVjLTEwLjYtNC44LTIyLjctNi44LTM1LjQtNWwtMTMuNCAxLjlDOTcuMiA4NC4zIDE5OC44IDAgMzIwIDBTNTQyLjggODQuMyA1NjkuMyAxOTcuNGwtMTMuNC0xLjljLTEyLjctMS44LTI0LjggLjItMzUuNCA1ek00NTUuOCAzMjBjLTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44ek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAgMjguNC0yMyA1MS40LTUxLjQgNTEuNC0yNS42IDAtNDcuMy0xOC44LTUwLjktNDQuMUw1MzEgMjYxLjFjLTEuNS0xMC42IDcuNS0xOS42IDE4LjEtMTguMWw0Ni43IDYuN2MyNS4zIDMuNiA0NC4xIDI1LjMgNDQuMSA1MC45em0tNjQwIDBjMC0yNS42IDE4LjgtNDcuMyA0NC4xLTUwLjlMOTAuOSAyNDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDMzMy4yIDc3IDM1MiA1MS40IDM1MiAyMyAzNTIgMCAzMjkgMCAzMDAuNnoiXX0sUTZ0PUEyZSwkMmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicGVuLXRvLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImVkaXQiXSwiZjA0NCIsIk00NDEgNTguOUw0NTMuMSA3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUw0MjQgMTM0LjEgMzc3LjkgODggNDA3IDU4LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDB6TTIwOS44IDI1Ni4yTDM0NCAxMjEuOSAzOTAuMSAxNjggMjU1LjggMzAyLjJjLTIuOSAyLjktNi41IDUtMTAuNCA2LjFsLTU4LjUgMTYuNyAxNi43LTU4LjVjMS4xLTMuOSAzLjItNy41IDYuMS0xMC40ek0zNzMuMSAyNUwxNzUuOCAyMjIuMmMtOC43IDguNy0xNSAxOS40LTE4LjMgMzEuMWwtMjguNiAxMDBjLTIuNCA4LjQtLjEgMTcuNCA2LjEgMjMuNnMxNS4yIDguNSAyMy42IDYuMWwxMDAtMjguNmMxMS44LTMuNCAyMi41LTkuNyAzMS4xLTE4LjNMNDg3IDEzOC45YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOEw0NzQuOSAyNUM0NDYuOC0zLjEgNDAxLjItMy4xIDM3My4xIDI1ek04OCA2NEMzOS40IDY0IDAgMTAzLjQgMCAxNTJMMCA0MjRjMCA0OC42IDM5LjQgODggODggODhsMjcyIDBjNDguNiAwIDg4LTM5LjQgODgtODhsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAyMi4xLTE3LjkgNDAtNDAgNDBMODggNDY0Yy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTI3MmMwLTIyLjEgMTcuOS00MCA0MC00MGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA2NHoiXX0sSzZ0PSQyZSxEMmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0tc3dlYXQiLGljb246WzU3Niw1MTIsWzEyODUxNywiZ3Jpbi1iZWFtLXN3ZWF0Il0sImY1ODMiLCJNNTMwLjIgMTUuOWMtOC44LTEwLjctMTguNS0yMC45LTI5LTMwLTMtMi42LTcuNC0yLjYtMTAuNCAwLTEwLjUgOS4xLTIwLjEgMTkuMy0yOSAzMC0xNC43IDE3LjgtMjkuOCA0MC4xLTI5LjggNjQuMSAwIDM2LjQgMjcuNiA2NCA2NCA2NHM2NC0yNy42IDY0LTY0YzAtMjQtMTUuMi00Ni4zLTI5LjgtNjQuMXptLTEzMiA4LjlDMzY0LjggOC45IDMyNy40IDAgMjg4IDAgMTQ2LjYgMCAzMiAxMTQuNiAzMiAyNTZTMTQ2LjYgNTEyIDI4OCA1MTIgNTQ0IDM5Ny40IDU0NCAyNTZjMC0yNC40LTMuNC00OC05LjgtNzAuNC0xMS45IDQuMi0yNC43IDYuNC0zOC4yIDYuNC0zLjQgMC02LjgtLjEtMTAuMi0uNCA2LjYgMjAuMyAxMC4yIDQxLjkgMTAuMiA2NC40IDAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFM4MCAzNzAuOSA4MCAyNTYgMTczLjEgNDggMjg4IDQ4YzM0LjggMCA2Ny41IDguNSA5Ni4zIDIzLjYgMS40LTE3LjQgNi45LTMzLjEgMTMuOC00Ni44ek00MjMuOCAzMjBjNC4xLTExLjYtNy44LTIxLjQtMTkuNi0xNy44LTM0LjggMTAuNi03NC4zIDE2LjYtMTE2LjMgMTYuNi00MS45IDAtODEuNC02LTExNi4xLTE2LjUtMTEuOC0zLjYtMjMuNyA2LjEtMTkuNiAxNy44IDE5LjggNTUuOSA3My4xIDk1LjkgMTM1LjggOTUuOSA2Mi43IDAgMTE2LTQwLjEgMTM1LjgtOTZ6TTE4MCAyMDhjMC0xNS41IDEyLjUtMjggMjgtMjhzMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTh6bTE4OC0yOGMxNS41IDAgMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0xNS41IDEyLjUtMjggMjgtMjh6Il19LEo2dD1EMmUsRTJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sZTV0PUUyZSxOMmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC13aW5rIixpY29uOls1MTIsNTEyLFsibGF1Z2gtd2luayJdLCJmNTljIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTE4LjMgNTguMmMtNC4yLTEzLjcgNy4xLTI2LjIgMjEuNC0yNi4ybDIzMi42IDBjMTQuMyAwIDI1LjYgMTIuNSAyMS40IDI2LjItMTggNTguOS03Mi45IDEwMS44LTEzNy43IDEwMS44UzEzNi4zIDM3My4xIDExOC4zIDMxNC4yek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LHQ1dD1OMmUsYTV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhcGVyLXBsYW5lIixpY29uOls1NzYsNTEyLFs2MTkxM10sImYxZDgiLCJNMjkwLjUgMjg3LjdMNDkxLjQgODYuOSAzNTkgNDU2LjMgMjkwLjUgMjg3Ljd6TTQ1Ny40IDUzTDI1Ni42IDI1My44IDg4IDE4NS4zIDQ1Ny40IDUzek0zOC4xIDIxNi44bDIwNS44IDgzLjYgODMuNiAyMDUuOGM1LjMgMTMuMSAxOC4xIDIxLjcgMzIuMyAyMS43IDE0LjcgMCAyNy44LTkuMiAzMi44LTIzLjFMNTcwLjYgOGMzLjUtOS44IDEtMjAuNi02LjMtMjhzLTE4LjItOS44LTI4LTYuM0wzOS40IDE1MS43Yy0xMy45IDUtMjMuMSAxOC4xLTIzLjEgMzIuOCAwIDE0LjIgOC42IDI3IDIxLjcgMzIuM3oiXX0scjV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYXJ0IixpY29uOls1MTIsNTEyLFsxMjgxNTMsMTI4MTU0LDEyODE1NSwxMjgxNTYsMTI4NDIwLDEyOTI5MywxMjkyOTQsMTI5NTA1LDk4MjksMTAwODQsNjE1NzhdLCJmMDA0IiwiTTM3OC45IDgwYy0yNy4zIDAtNTMgMTMuMS02OSAzNS4ybC0zNC40IDQ3LjZjLTQuNSA2LjItMTEuNyA5LjktMTkuNCA5LjlzLTE0LjktMy43LTE5LjQtOS45bC0zNC40LTQ3LjZjLTE2LTIyLjEtNDEuNy0zNS4yLTY5LTM1LjItNDcgMC04NS4xIDM4LjEtODUuMSA4NS4xIDAgNDkuOSAzMiA5OC40IDY4LjEgMTQyLjMgNDEuMSA1MCA5MS40IDk0IDEyNS45IDEyMC4zIDMuMiAyLjQgNy45IDQuMiAxNCA0LjJzMTAuOC0xLjggMTQtNC4yYzM0LjUtMjYuMyA4NC44LTcwLjQgMTI1LjktMTIwLjMgMzYuMi00My45IDY4LjEtOTIuNCA2OC4xLTE0Mi4zIDAtNDctMzguMS04NS4xLTg1LjEtODUuMXpNMjcxIDg3LjFjMjUtMzQuNiA2NS4yLTU1LjEgMTA3LjktNTUuMSA3My41IDAgMTMzLjEgNTkuNiAxMzMuMSAxMzMuMSAwIDY4LjYtNDIuOSAxMjguOS03OS4xIDE3Mi44LTQ0LjEgNTMuNi05Ny4zIDEwMC4xLTEzMy44IDEyNy45LTEyLjMgOS40LTI3LjUgMTQuMS00My4xIDE0LjFzLTMwLjgtNC43LTQzLjEtMTQuMUMxNzYuNCA0MzggMTIzLjIgMzkxLjUgNzkuMSAzMzggNDIuOSAyOTQuMSAwIDIzMy43IDAgMTY1LjEgMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43eiJdfSxiVj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDQ4IDAgMC02NCAzODkuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnpNODAgNDAwbDAtMjU2IDM1Ni40IDAtNDguMiAxMDguNWMtNS41IDEyLjQtNS41IDI2LjYgMCAzOUw0MzYuNCA0MDAgODAgNDAweiJdfSxpNXQ9YlYsbzV0PWJWLHM1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDY0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yMjQgMzA0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwem0tNjQtMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0eiJdfSxuNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTk3LjUgNDAwbDUwLTE2MCAzNzkuNCAwLTUwIDE2MC0zNzkuNCAwem0xOTAuNyA0OEw0NzcgNDQ4YzIxIDAgMzkuNi0xMy42IDQ1LjgtMzMuN2w1MC0xNjBjOS43LTMwLjktMTMuNC02Mi4zLTQ1LjgtNjIuM2wtMzc5LjQgMGMtMjEgMC0zOS42IDEzLjYtNDUuOCAzMy43TDgwLjIgMjk0LjQgODAuMiA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjgyLjkgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2bDExNy4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDQ4IDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMzMwLjkgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI3My4zIDQ0LjhDMjYyLjIgMzYuNSAyNDguOCAzMiAyMzQuOSAzMkw5Ni4yIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMHoiXX0sbDV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1taW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDY5XSwiZjJkMSIsIk0wIDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxjNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3Rhci1oYWxmIixpY29uOls1NzYsNTEyLFs2MTczMV0sImYwODkiLCJNMjg1LjctMTUuOGMxMC44IDIuNiAxOC40IDEyLjIgMTguNCAyMy4zbDAgMzg3LjFjMCA5LTUuMSAxNy4zLTEzLjEgMjEuNEwxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM0wxOTMuMSAxMjUuMyAyNTguOC0zLjNjNS05LjkgMTYuMi0xNSAyNy0xMi40ek0yNTYuMSAxMDcuNEwyMzAuMyAxNThjLTMuNSA2LjgtMTAgMTEuNi0xNy42IDEyLjhsLTEyNS41IDIwIDg5LjggODkuOWM1LjQgNS40IDcuOSAxMy4xIDYuNyAyMC43bC0xOS44IDEyNS41IDkyLjItNDYuOSAwLTI3Mi42eiJdfSxkNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWxhcm0tY2xvY2siLGljb246WzUxMiw1MTIsWzkyMDBdLCJmMzRlIiwiTTQwMi42IDUwLjJjLTUuNCAxLjctMTEuMyAxLjgtMTYuMi0uOS01LjgtMy4yLTExLjgtNi4yLTE3LjgtOC45LTEwLjQtNC43LTEzLjctMTguMy00LjEtMjQuNiAxNS05LjkgMzMtMTUuNyA1Mi4zLTE1LjcgNTIuNiAwIDk1LjIgNDIuNiA5NS4yIDk1LjIgMCAxMy4yLTIuNyAyNS44LTcuNiAzNy4zLTQuNSAxMC41LTE4LjQgOS44LTI0LjkgLjQtMy44LTUuNS03LjgtMTAuOC0xMi0xNi0zLjUtNC40LTQuNS0xMC4yLTMuOC0xNS44IC4yLTEuOSAuNC0zLjkgLjQtNS45IDAtMjYuMS0yMS4yLTQ3LjItNDcuMi00Ny4yLTQuOSAwLTkuNyAuOC0xNC4yIDIuMnpNMzIuNSAxMzIuOWMtNi41IDkuNC0yMC41IDEwLjEtMjQuOS0uNC00LjktMTEuNS03LjYtMjQuMS03LjYtMzcuMyAwLTUyLjYgNDIuNi05NS4yIDk1LjItOTUuMiAxOS4zIDAgMzcuMyA1LjggNTIuMyAxNS43IDkuNiA2LjMgNi4zIDE5LjktNC4xIDI0LjYtNi4xIDIuOC0xMiA1LjctMTcuOCA4LjktNC45IDIuNy0xMC45IDIuNi0xNi4yIC45LTQuNS0xLjQtOS4yLTIuMi0xNC4yLTIuMi0yNi4xIDAtNDcuMiAyMS4yLTQ3LjIgNDcuMiAwIDIgLjEgNCAuNCA1LjkgLjcgNS42LS4zIDExLjQtMy44IDE1LjgtNC4yIDUuMi04LjIgMTAuNS0xMiAxNnpNNDMyIDI4OGExNzYgMTc2IDAgMSAwIC0zNTIgMCAxNzYgMTc2IDAgMSAwIDM1MiAwek0zOTYuNSA0NjIuNUMzNTguMSA0OTMuNCAzMDkuMiA1MTIgMjU2IDUxMnMtMTAyLjEtMTguNi0xNDAuNS00OS41TDczIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Mi41LTQyLjVDNTAuNiAzOTAuMSAzMiAzNDEuMiAzMiAyODggMzIgMTY0LjMgMTMyLjMgNjQgMjU2IDY0UzQ4MCAxNjQuMyA0ODAgMjg4YzAgNTMuMi0xOC42IDEwMi4xLTQ5LjUgMTQwLjVMNDczIDQ3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Mi41LTQyLjV6TTI4MCAxODRsMCA5NC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy00LjUtNC41LTctMTAuNi03LTE3bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LGY1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJuZXdzcGFwZXIiLGljb246WzUxMiw1MTIsWzEyODI0MF0sImYxZWEiLCJNMTY4IDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDguNC0xLjQgMTYuNS00LjEgMjRMNDQwIDQzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwxNjggODB6TTcyIDQ4MGMtMzkuOCAwLTcyLTMyLjItNzItNzJMMCAxMTJDMCA5OC43IDEwLjcgODggMjQgODhzMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDI3MiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMzA0YzAgMzkuOC0zMi4yIDcyLTcyIDcyTDcyIDQ4MHpNMTkyIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6bTE1MiAyNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yMTYgMjU2bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA4MGwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHZWPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Imhvc3BpdGFsIixpY29uOls1NzYsNTEyLFsxMjc5NzMsNjI1ODksImhvc3BpdGFsLWFsdCIsImhvc3BpdGFsLXdpZGUiXSwiZjBmOCIsIk0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA0OC00OCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3MmMwLTM1LjMtMjguNy02NC02NC02NGwtNDggMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE3NiAwek0xNjAgNjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjcyYzAgOC44LTcuMiAxNi0xNiAxNmwtMTc2IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA4MC0xNzYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjcyYzAtOC44IDcuMi0xNiAxNi0xNmw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNzJ6TTExMiAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNOTYgMzM2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMyMCAwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2LTExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0yNjQgMTA0bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMiAzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSx1NXQ9dlYscDV0PXZWLFAyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtc3RvcCIsaWNvbjpbNTEyLDUxMixbNjIwOTQsInN0b3AtY2lyY2xlIl0sImYyOGQiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjAgMTkybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTQ4IDExMmwwLTk2IDk2IDAgMCA5Ni05NiAweiJdfSxoNXQ9UDJlLG01dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJvYmplY3QtdW5ncm91cCIsaWNvbjpbNjQwLDUxMixbXSwiZjI0OCIsIk00OC4yIDY2LjhjLS4xLS44LS4yLTEuNy0uMi0yLjVsMC0uMmMwLTguOCA3LjItMTYgMTYtMTYgLjkgMCAxLjkgLjEgMi44IC4yIDcuNSAxLjMgMTMuMiA3LjkgMTMuMiAxNS44IDAgOC44LTcuMiAxNi0xNiAxNi03LjkgMC0xNC41LTUuNy0xNS44LTEzLjJ6TTAgNjRjMCAyNi45IDE2LjUgNDkuOSA0MCA1OS4zbDAgMTA1LjNjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMjAxLjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMTA1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MEwxMjMuMyA0MEMxMTMuOSAxNi41IDkwLjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NHptMzY4IDBhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMzI0LjcgODhjNi41IDE2IDE5LjMgMjguOSAzNS4zIDM1LjNsMCAxMDUuM2MtMTYgNi41LTI4LjkgMTkuMy0zNS4zIDM1LjNsLTIwMS4zIDBjLTYuNS0xNi0xOS4zLTI4LjktMzUuMy0zNS4zbDAtMTA1LjNjMTYtNi41IDI4LjktMTkuMyAzNS4zLTM1LjNsMjAxLjMgMHpNMzg0IDI3MmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6TTgwIDI4OGMwIDcuOS01LjcgMTQuNS0xMy4yIDE1LjgtLjggLjEtMS43IC4yLTIuNSAuMmwtLjIgMGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtLjkgLjEtMS45IC4yLTIuOCAxLjMtNy41IDcuOS0xMy4yIDE1LjgtMTMuMiA4LjggMCAxNiA3LjIgMTYgMTZ6bTQzNi43LTQwYzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMTA1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0yMDEuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTIwLjctNDggMCAwIDIwLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMjAxLjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMTA1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0LTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MGwtNTIuNyAwIDAgOS42YzEwLjcgMTAuOSAxOS4xIDIzLjkgMjQuNiAzOC40bDI4IDB6bTU5LjMtOGExNiAxNiAwIDEgMSAwLTMyIDE2IDE2IDAgMSAxIDAgMzJ6TTI3MS44IDQ1MC43YTE2IDE2IDAgMSAxIC0zMS41LTUuNSAxNiAxNiAwIDEgMSAzMS41IDUuNXptMzAxLjUgMTNjLTcuNS0xLjMtMTMuMi03LjktMTMuMi0xNS44IDAtOC44IDcuMi0xNiAxNi0xNiA3LjkgMCAxNC41IDUuNyAxNS44IDEzLjJsMCAuMWMuMSAuOSAuMiAxLjggLjIgMi43IDAgOC44LTcuMiAxNi0xNiAxNi0uOSAwLTEuOS0uMS0yLjgtLjJ6Il19LGc1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50IixpY29uOls1MTIsNTEyLFsxMjg0ODksNjE2NjldLCJmMDc1IiwiTTUxLjkgMzg0LjlDMTkuMyAzNDQuNiAwIDI5NC40IDAgMjQwIDAgMTA3LjUgMTE0LjYgMCAyNTYgMFM1MTIgMTA3LjUgNTEyIDI0MCAzOTcuNCA0ODAgMjU2IDQ4MGMtMzYuNSAwLTcxLjItNy4yLTEwMi42LTIwTDM3IDUwOS45Yy0zLjcgMS42LTcuNSAyLjEtMTEuNSAyLjEtMTQuMSAwLTI1LjUtMTEuNC0yNS41LTI1LjUgMC00LjMgMS4xLTguNSAzLjEtMTIuMmw0OC44LTg5LjR6bTM3LjMtMzAuMmMxMi4yIDE1LjEgMTQuMSAzNi4xIDQuOCA1My4ybC0xOCAzMy4xIDU4LjUtMjUuMWMxMS44LTUuMSAyNS4yLTUuMiAzNy4xLS4zIDI1LjcgMTAuNSA1NC4yIDE2LjQgODQuMyAxNi40IDExNy44IDAgMjA4LTg4LjggMjA4LTE5MlMzNzMuOCA0OCAyNTYgNDggNDggMTM2LjggNDggMjQwYzAgNDIuOCAxNS4xIDgyLjQgNDEuMiAxMTQuN3oiXX0seDV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXBhd24iLGljb246WzM4NCw1MTIsWzk4MjNdLCJmNDQzIiwiTTE5Mi0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDI3LjYtOS4zIDUyLjktMjQuOSA3My4yIDkuOCAzIDE2LjkgMTIuMSAxNi45IDIyLjggMCAxMy4zLTEwLjcgMjQtMjQgMjRsLS42IDAgMjQuNiAxNjAgNTMuNiA2N2M2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjYgMCAyNi4yLTIxLjIgNDcuNC00Ny40IDQ3LjRMNjMuNCA1MTJjLTI2LjIgMC00Ny40LTIxLjItNDcuNC00Ny40IDAtMTAuOCAzLjctMjEuMiAxMC40LTI5LjZsNTMuNi02NyAyNC42LTE2MC0uNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjggNy4xLTE5LjggMTYuOS0yMi44LTE1LjYtMjAuMy0yNC45LTQ1LjYtMjQuOS03My4yIDAtNjYuMyA1My43LTEyMCAxMjAtMTIwek0xMTUuOSA0MDBsLTUxLjIgNjQgMjU0LjcgMC01MS4yLTY0LTE1Mi4yIDB6bTM2LjItMTg0LjdsLTIxIDEzNi43IDEyMS45IDAtMjEtMTM2LjctMS4xLTcuMy03Ny42IDAtMS4xIDcuM3pNMTkyIDE2YTcyIDcyIDAgMSAwIDAgMTQ0IDcyIDcyIDAgMSAwIDAtMTQ0eiJdfSxiNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItcGx1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MSIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0xMDQgNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0sdjV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsaXBib2FyZCIsaWNvbjpbMzg0LDUxMixbMTI4MjAzXSwiZjMyOCIsIk0yMzIgOTZsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptMCA0OGMzNy4xIDAgNjcuNi0yOCA3MS42LTY0TDMyMCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzNTJjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNi40IDBjNCAzNiAzNC41IDY0IDcxLjYgNjRsODAgMHpNMjkxLjkgMzJDMjc5IDEyLjcgMjU3IDAgMjMyIDBMMTUyIDBjLTI1IDAtNDcgMTIuNy01OS45IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTI4LjEgMHoiXX0seTV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InRodW1icy1kb3duIixpY29uOls1MTIsNTEyLFsxMjgwNzgsNjE1NzZdLCJmMTY1IiwiTTM2MCAzMmw3LjQgLjRjMzUgMy42IDYyLjUgMzIuMiA2NC40IDY3LjcgMTcuOCAxMS44IDMwLjEgMzEuNCAzMiA1My45bC4yIDZjMCA1LjctLjcgMTEuMi0yIDE2LjUgMTAuMiAxMS41IDE2LjggMjYuMyAxNy44IDQyLjdsLjIgNC44YzAgMTMuMi0zLjYgMjUuNC05LjggMzYgNC45IDguNCA4LjIgMTcuOSA5LjMgMjhsLjQgOGMwIDM3LjMtMjguMyA2Ny45LTY0LjYgNzEuNmwtNy40IC40LTEwOS43IDAgMTQuMSAzMCAzLjEgNy42YzEyLjUgMzUuNy0xLjggNzUuNS0zNC4yIDk1bC03LjIgMy45Yy0zNy41IDE3LjYtODEuNyAzLjYtMTAyLjYtMzEuMmwtLjYtLjktMi43LTUtLjYtMS4yLTMwLjEtNjRjLTkuNCAxNy44LTI4IDI5LjktNDkuNSAyOS45bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDE1MmMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEyLjQgMCAyMy45IDQuMSAzMy4yIDExIDEzLjItMjEuNCAzMi0zOS40IDU1LTUxLjZsMTIuMi02LjUgLjctLjMgNi42LTMuMiAuNy0uMyA3LjEtM2MxNi43LTYuNiAzNC41LTkuOSA1Mi42LTkuOUwzNjAgMzJ6TTI1NS45IDgwYy0xMiAwLTIzLjkgMi4zLTM1LjEgNi42bC00LjcgMi01LjMgMi42IDAgMC0xMi4yIDYuNWMtMjkuMiAxNS41LTQ4LjMgNDQuOS01MC43IDc3LjZsLS4yIDggMCAxMTIuOSAuMSA0LjFjLjUgOC4yIDIuNSAxNi4yIDYgMjMuN2w1Ni44IDEyMC45IDIuMSAzLjhjOC40IDEzLjcgMjYgMTkuMSA0MC44IDEyLjJsMi45LTEuNmMxMy03LjggMTguNy0yMy43IDEzLjctMzhsLTEuMi0zLTMwLjItNjQuMmMtMy41LTcuNC0yLjktMTYuMSAxLjUtMjMuMXMxMi0xMS4xIDIwLjItMTEuMWwxNDcuNSAwIDIuNC0uMWMxMS4zLTEuMSAyMC4zLTEwLjEgMjEuNC0yMS40bC4xLTIuNWMwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM0LjQtMy45IDcuNC05LjMgOC0xNS4zbC4yLTIuN2MwLTguNC00LjQtMTUuOS0xMS4yLTIwLjItMTAuNy02LjktMTQuMi0yMC45LTgtMzIgMS41LTIuNiAyLjUtNS42IDIuOS04LjZsLjItMy4yYzAtMTAuNi02LjktMTkuNi0xNi42LTIyLjgtMTEuNy0zLjgtMTguNy0xNS45LTE2LTI4IC4yLS45IC4zLTEuOCAuNC0yLjZsLjItMi42YzAtMTIuNC05LjUtMjIuNi0yMS42LTIzLjhMMzYwIDgwIDI1NS45IDgwek01NiAxNDRjLTQuNCAwLTggMy42LTggOGwwIDIyNGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC0yMjRjMC00LjQtMy42LTgtOC04bC0zMiAweiJdfSx3NXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaWQtYmFkZ2UiLGljb246WzM4NCw1MTIsW10sImYyYzEiLCJNMjU2IDQ4bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTE2MCAzMjBsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMOTYgNDE2Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6Il19LEkyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2hlY2siLGljb246WzQ0OCw1MTIsWzk3NDUsOTk4OSw2MTUxMCwiY2hlY2stc3F1YXJlIl0sImYxNGEiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHptMjMwLjcgODkuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0sTTV0PUkyZSx6NXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3MtYmlzaG9wIixpY29uOlszMjAsNTEyLFs5ODIxXSwiZjQzYSIsIk0yMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCA4MS44IDk4LjFjMjQuNyAyOS42IDM4LjIgNjcgMzguMiAxMDUuNiAwIDQzLjctMTcuNCA4NS43LTQ4LjMgMTE2LjZsLTguNiA4LjYgNDYuNSA1OC4yYzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNiAwIDI2LjItMjEuMiA0Ny40LTQ3LjQgNDcuNEw0Ny40IDUxMkMyMS4yIDUxMiAwIDQ5MC44IDAgNDY0LjYgMCA0NTMuOSAzLjcgNDQzLjQgMTAuNCA0MzVsNDYuNS01OC4yLTguNi04LjZDMTcuNCAzMzcuNCAwIDI5NS40IDAgMjUxLjcgMCAyMTMuMSAxMy41IDE3NS44IDM4LjIgMTQ2LjFMMTIwIDQ4IDEwNCA0OEM5MC43IDQ4IDgwIDM3LjMgODAgMjRTOTAuNyAwIDEwNCAwTDIxNiAwek05NC40IDQwNi44bC00NS43IDU3LjIgMjIyLjcgMC00NS43LTU3LjEtNS41LTYuOS0xMjAuMyAwLTUuNSA2Ljh6TTE1Ni45IDc4LjdMNzUuMSAxNzYuOGMtMTUuMyAxOC40LTI0LjYgNDEtMjYuNyA2NC43TDQ4IDI1MS43YzAgMzEgMTIuMyA2MC43IDM0LjIgODIuN2wxNy43IDE3LjcgMTIwLjIgMGM2LjItNi4yIDEyLjEtMTIuMSAxNy44LTE3LjcgMjEuOS0yMS45IDM0LjItNTEuNiAzNC4yLTgyLjZsLS40LTEwLjJjLTEuNS0xNy02LjctMzMuMy0xNS4yLTQ4TDIwOSAyNDFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTEuOC01MS44LTYzLjctNzYuNS0zLjEtMy44LTMuMSAzLjh6Il19LGs1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJlbnZlbG9wZS1vcGVuIixpY29uOls1MTIsNTEyLFs2MjEzNV0sImYyYjYiLCJNNTEyIDQxNmMwIDM1LjMtMjguNSA2NC02My45IDY0TDY0IDQ4MGMtMzUuNCAwLTY0LTI4LjctNjQtNjRMMCAxNjRjLjEtMTUuNSA3LjgtMzAgMjAuNS0zOC44TDIwNi0yLjdjMzAuMS0yMC43IDY5LjgtMjAuNyA5OS45IDBMNDkxLjUgMTI1LjJjMTIuOCA4LjggMjAuNCAyMy4zIDIwLjUgMzguOGwwIDI1MnpNNjQgNDMybDM4NC4xIDBjOC44IDAgMTUuOS03LjEgMTUuOS0xNmwwLTE5MS43LTE1NC44IDExNy40Yy0zMS40IDIzLjktNzQuOSAyMy45LTEwNi40IDBMNDggMjI0LjMgNDggNDE2YzAgOC45IDcuMiAxNiAxNiAxNnpNNDYzLjYgMTY0LjRMMjc4LjcgMzYuOGMtMTMuNy05LjQtMzEuNy05LjQtNDUuNCAwTDQ4LjQgMTY0LjQgMjMxLjggMzAzLjVjMTQuMyAxMC44IDM0LjEgMTAuOCA0OC40IDBMNDYzLjYgMTY0LjR6Il19LFE2PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS14bWFyayIsaWNvbjpbNTEyLDUxMixbNjE1MzIsInRpbWVzLWNpcmNsZSIsInhtYXJrLWNpcmNsZSJdLCJmMDU3IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY3IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sUzV0PVE2LEM1dD1RNixGMmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXVwIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXVwIl0sImYxNTEiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTIyNCA2NGM2LjcgMCAxMyAyLjggMTcuNiA3LjdsMTA0IDExMmM2LjUgNyA4LjIgMTcuMiA0LjQgMjUuOVMzMzcuNSAzMjAgMzI4IDMyMGwtMjA4IDBjLTkuNSAwLTE4LjItNS43LTIyLTE0LjRzLTIuMS0xOC45IDQuNC0yNS45bDEwNC0xMTJjNC41LTQuOSAxMC45LTcuNyAxNy42LTcuN3oiXX0sTDV0PUYyZSxUNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0xNzYgNDhMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwLTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTMxNi4xIDE2MEwyMjQgNjcuOSAyMjQgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMTk3LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTkuNCA0MzJsLTEzNC44IDBjLTE1LjggMC0yOC42LTEyLjgtMjguNi0yOC42IDAtNi40IDIuMS0xMi41IDYtMTcuNmw2Ny42LTg2LjlDMTc1IDI5MiAxODMuMyAyODggMTkyIDI4OHMxNyA0IDIyLjQgMTAuOUwyODIgMzg1LjljMy45IDUgNiAxMS4yIDYgMTcuNiAwIDE1LjgtMTIuOCAyOC42LTI4LjYgMjguNnpNMTEyIDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LE8yZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtcmlnaHQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtcmlnaHQiXSwiZjE1MiIsIk00MDAgOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMHpNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzIwIDI1NmMwIDYuNy0yLjggMTMtNy43IDE3LjZsLTExMiAxMDRjLTcgNi41LTE3LjIgOC4yLTI1LjkgNC40UzE2MCAzNjkuNSAxNjAgMzYwbDAtMjA4YzAtOS41IDUuNy0xOC4yIDE0LjQtMjJzMTguOS0yLjEgMjUuOSA0LjRsMTEyIDEwNGM0LjkgNC41IDcuNyAxMC45IDcuNyAxNy42eiJdfSxfNXQ9TzJlLENWPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN1biIsaWNvbjpbNTc2LDUxMixbOTcyOF0sImYxODUiLCJNMjAwLjYtNy45Yy02LjctNC40LTE1LjEtNS4yLTIyLjUtMi4yUzE2NS40LS41IDE2My45IDcuM0wxNDMgMTEwLjYgMzkuNyAxMzEuNGMtNy44IDEuNi0xNC40IDctMTcuNCAxNC4zcy0yLjIgMTUuOCAyLjIgMjIuNUw4Mi43IDI1NiAyNC41IDM0My44Yy00LjQgNi43LTUuMiAxNS4xLTIuMiAyMi41czkuNiAxMi44IDE3LjQgMTQuM0wxNDMgNDAxLjQgMTYzLjkgNTA0LjdjMS42IDcuOCA3IDE0LjQgMTQuMyAxNy40czE1LjggMi4yIDIyLjUtMi4ybDg3LjgtNTguMiA4Ny44IDU4LjJjNi43IDQuNCAxNS4xIDUuMiAyMi41IDIuMnMxMi44LTkuNiAxNC4zLTE3LjRsMjAuOS0xMDMuMiAxMDMuMi0yMC45YzcuOC0xLjYgMTQuNC03IDE3LjQtMTQuM3MyLjItMTUuOC0yLjItMjIuNWwtNTguMi04Ny44IDU4LjItODcuOGM0LjQtNi43IDUuMi0xNS4xIDIuMi0yMi41cy05LjYtMTIuOC0xNy40LTE0LjNMNDMzLjggMTEwLjYgNDEzIDcuM0M0MTEuNC0uNSA0MDYtNyAzOTguNi0xMC4xcy0xNS44LTIuMi0yMi41IDIuMkwyODguNCA1MC4zIDIwMC42LTcuOXpNMTg2LjkgMTM1LjdsMTctODMuOSA3MS4zIDQ3LjNjOCA1LjMgMTguNSA1LjMgMjYuNSAwbDcxLjMtNDcuMyAxNyA4My45YzEuOSA5LjUgOS4zIDE2LjggMTguOCAxOC44bDgzLjkgMTctNDcuMyA3MS4zYy01LjMgOC01LjMgMTguNSAwIDI2LjVsNDcuMyA3MS4zLTgzLjkgMTdjLTkuNSAxLjktMTYuOSA5LjMtMTguOCAxOC44bC0xNyA4My45LTcxLjMtNDcuM2MtOC01LjMtMTguNS01LjMtMjYuNSAwbC03MS4zIDQ3LjMtMTctODMuOWMtMS45LTkuNS05LjMtMTYuOS0xOC44LTE4LjhsLTgzLjktMTcgNDcuMy03MS4zYzUuMy04IDUuMy0xOC41IDAtMjYuNWwtNDcuMy03MS4zIDgzLjktMTdjOS41LTEuOSAxNi44LTkuMyAxOC44LTE4Ljh6TTIzOS42IDI1NmE0OC40IDQ4LjQgMCAxIDEgOTYuOCAwIDQ4LjQgNDguNCAwIDEgMSAtOTYuOCAwem0xNDQuOCAwYTk2LjQgOTYuNCAwIDEgMCAtMTkyLjggMCA5Ni40IDk2LjQgMCAxIDAgMTkyLjggMHoiXX0sQTV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImltYWdlIixpY29uOls0NDgsNTEyLFtdLCJmMDNlIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xMjggMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMzYgNzJjOC41IDAgMTYuNCA0LjUgMjAuNyAxMS44bDgwIDEzNmM0LjQgNy40IDQuNCAxNi42IC4xIDI0LjFTMzUyLjYgMzg0IDM0NCAzODRsLTI0MCAwYy04LjkgMC0xNy4yLTUtMjEuMy0xMi45cy0zLjUtMTcuNSAxLjYtMjQuOGw1Ni04MGM0LjUtNi40IDExLjgtMTAuMiAxOS43LTEwLjJzMTUuMiAzLjggMTkuNyAxMC4ybDE3LjIgMjQuNiA0Ni41LTc5YzQuMy03LjMgMTIuMi0xMS44IDIwLjctMTEuOHoiXX0sJDV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxpZ2h0YnVsYiIsaWNvbjpbMzg0LDUxMixbMTI4MTYxXSwiZjBlYiIsIk0yOTYuNSAyOTEuMUMzMjEgMjY1LjIgMzM2IDIzMC40IDMzNiAxOTIgMzM2IDExMi41IDI3MS41IDQ4IDE5MiA0OFM0OCAxMTIuNSA0OCAxOTJjMCAzOC40IDE1IDczLjIgMzkuNSA5OS4xIDIxLjMgMjIuNCA0NC45IDU0IDUzLjMgOTIuOWwxMDIuNCAwYzguNC0zOSAzMi03MC41IDUzLjMtOTIuOXptMzQuOCAzM0MzMDcuNyAzNDkgMjg4IDM3OS40IDI4OCA0MTMuN2wwIDE4LjNjMCA0NC4yLTM1LjggODAtODAgODBsLTMyIDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTguM0M5NiAzNzkuNCA3Ni4zIDM0OSA1Mi43IDMyNC4xIDIwIDI4OS43IDAgMjQzLjIgMCAxOTIgMCA4NiA4NiAwIDE5MiAwUzM4NCA4NiAzODQgMTkyYzAgNTEuMi0yMCA5Ny43LTUyLjcgMTMyLjF6TTE0NCAxODRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42IDM5LjQtODggODgtODggMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjEgMC00MCAxNy45LTQwIDQweiJdfSx5Vj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJhZGRyZXNzLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQwLCJjb250YWN0LWNhcmQiLCJ2Y2FyZCJdLCJmMmJiIiwiTTUxMiA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMjBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmw0NDggMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjA4IDI0OGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptLTMyIDQwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwek0zNzYgMTQ0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHoiXX0sRDV0PXlWLEU1dD15VixCMmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1tZWgiLGljb246WzUxMiw1MTIsWzEyODUyOCwibWVoIl0sImYxMWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE3NiAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTg0IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LE41dD1CMmUsUDV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1hcCIsaWNvbjpbNTEyLDUxMixbMTI4NTA2LDYyMDcyXSwiZjI3OSIsIk01MTIgNDhjMC04LjMtNC4zLTE2LTExLjMtMjAuNHMtMTUuOS00LjgtMjMuMy0xLjFMMzUyLjUgODguMSAxODAgMjkuNGMtMTMuNy00LjctMjguNy0zLjgtNDEuOSAyLjNMMTMuOCA5MC4zQzUuNCA5NC4yIDAgMTAyLjcgMCAxMTJMMCA0NjRjMCA4LjIgNC4yIDE1LjkgMTEuMSAyMC4zczE1LjYgNC45IDIzLjEgMS40bDEyNy4zLTU5LjkgMTcwLjcgNTYuOWMxMy43IDQuNiAyOC41IDMuNyA0MS42LTIuNWwxMjQuNC01OC41YzguNC00IDEzLjgtMTIuNCAxMy44LTIxLjdsMC0zNTJ6TTE0NCA4Mi4xbDAgMjk5LTk2IDQ1LjIgMC0yOTkgOTYtNDUuMnptNDggMzAzLjNsMC0zMDEuMSAxMjggNDMuNSAwIDMwMC4zLTEyOC00Mi43ek0zNjggMTM0bDk2LTQ3LjQgMCAyOTguMi05NiA0NS4yIDAtMjk2eiJdfSxJNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1kb3duIixpY29uOlszODQsNTEyLFtdLCJmMGE3IiwiTTY0IDQ0OGwwLTE3Ny42YzUuMiAxIDEwLjUgMS42IDE2IDEuNmwxNiAwIDAgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2ek04MCAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjRjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBsNDggMGM1Mi41IDAgOTcuMSAzMy43IDExMy40IDgwLjctMy4xLS41LTYuMi0uNy05LjQtLjctMjAgMC0zNy45IDkuMi00OS43IDIzLjYtOS00LjktMTkuNC03LjYtMzAuMy03LjYtMTUuMSAwLTI5IDUuMy00MCAxNC0xMS04LjgtMjQuOS0xNC00MC0xNGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC04MCAwek0wIDE5MmwwIDBjMCAxOCA2IDM0LjYgMTYgNDhsMCAyMDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTgyYzUuMSAxLjMgMTAuNSAyIDE2IDIgMjUuMyAwIDQ3LjItMTQuNyA1Ny42LTM2IDcgMi42IDE0LjUgNCAyMi40IDQgMjAgMCAzNy45LTkuMiA0OS43LTIzLjYgOSA0LjkgMTkuNCA3LjYgMzAuMyA3LjYgMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC04OEMzODQgNzUuMiAzMDguOCAwIDIxNiAwTDE2OCAwQzc1LjIgMCAwIDc1LjIgMCAxNjhsMCAyNHptMzM2IDY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0ek0xNjAgMjcyYzUuNSAwIDEwLjktLjcgMTYtMmwwIDM0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzIgMTYgMHptNjQtMjRsMC00MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yNHoiXX0sUjJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbWVoLWJsYW5rIixpY29uOls1MTIsNTEyLFsxMjg1NjYsIm1laC1ibGFuayJdLCJmNWE0IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6TTUxMiAyNTZhMjU2IDI1NiAwIDEgMSAtNTEyIDAgMjU2IDI1NiAwIDEgMSA1MTIgMHpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxGNXQ9UjJlLEgyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlIixpY29uOls1MTIsNTEyLFsxMjg1MzksImdyaW4tdG9uZ3VlIl0sImY1ODkiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNzQuMSAzOC44IDEzOS4yIDk3LjEgMTc2LS43LTUuMi0xLjEtMTAuNi0xLjEtMTZsMC01My41Yy0xMC4yLTEyLjYtMTguMy0yNi45LTIzLjgtNDIuNC00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTUuNSAxNS42LTEzLjYgMjkuOS0yMy44IDQyLjVsMCA1My41YzAgNS40LS40IDEwLjgtMS4xIDE2IDU4LjQtMzYuOCA5Ny4xLTEwMS45IDk3LjEtMTc2em00OCAwYzAgMTE2LjMtNzcuNiAyMTQuNi0xODMuOSAyNDUuNy0xOS41IDE2LjQtNDQuNiAyNi4zLTcyLjEgMjYuM3MtNTIuNi05LjktNzIuMS0yNi4zQzc3LjYgNDcwLjYgMCAzNzIuMyAwIDI1NiAwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYgMjA4bDAtMzcuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDM3LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sTzV0PUgyZSx3Vj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmdXRib2wiLGljb246WzUxMiw1MTIsWzk5MTcsImZ1dGJvbC1iYWxsIiwic29jY2VyLWJhbGwiXSwiZjFlMyIsIk0zODcgMjI4LjNjLTQuNC0yLjgtNy42LTctOS4yLTExLjlzLTEuNC0xMC4yIC41LTE1TDQxMS42IDExOGMtMTkuOS0yMi40LTQ0LjYtNDAuNS03Mi40LTUyLjdsLTY5LjEgNTcuNmMtNCAzLjMtOSA1LjEtMTQuMSA1LjFzLTEwLjItMS44LTE0LjEtNS4xTDE3Mi44IDY1LjNjLTI3LjggMTIuMi01Mi41IDMwLjMtNzIuNCA1Mi43bDMzLjQgODMuNGMxLjkgNC44IDIuMSAxMC4xIC41IDE1cy00LjkgOS4xLTkuMiAxMS45TDQ5IDI3Ni4yYzMgMzAuOSAxMi43IDU5LjcgMjcuNiA4NS4ybDg5LjctNmM1LjItLjMgMTAuMyAxLjEgMTQuNSA0LjJzNy4yIDcuNCA4LjQgMTIuNWwyMiA4Ny4yYzE0LjQgMy4yIDI5LjQgNC44IDQ0LjggNC44czMwLjMtMS43IDQ0LjgtNC44bDIyLTg3LjJjMS4zLTUgNC4yLTkuNCA4LjQtMTIuNXM5LjMtNC41IDE0LjUtNC4ybDg5LjcgNmMxNS0yNS40IDI0LjctNTQuMyAyNy42LTg1LjFMMzg3IDIyOC4zek0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6bTYyIDIyMWM4LjQgNi4xIDExLjkgMTYuOSA4LjcgMjYuOGwtMTguMyA1Ni4zYy0zLjIgOS45LTEyLjQgMTYuNi0yMi44IDE2LjZsLTU5LjIgMGMtMTAuNCAwLTE5LjYtNi43LTIyLjgtMTYuNmwtMTguMy01Ni4zYy0zLjItOS45IC4zLTIwLjcgOC43LTI2LjhsNDcuOS0zNC44YzguNC02LjEgMTkuOC02LjEgMjguMiAwTDMxOCAyMjF6Il19LEI1dD13VixSNXQ9d1YscTJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc3VycHJpc2UiLGljb246WzUxMiw1MTIsWzEyODU1OCwic3VycHJpc2UiXSwiZjVjMiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tNDggODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LEg1dD1xMmUsVjJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZvbGRlciIsaWNvbjpbNTEyLDUxMixbMTI4MTkzLDEyODQ0Nyw2MTcxNiwiZm9sZGVyLWJsYW5rIl0sImYwN2IiLCJNNjQgNDAwbDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0MGMwLTguOC03LjItMTYtMTYtMTZsLTE0OS4zIDBjLTE3LjMgMC0zNC4yLTUuNi00OC0xNkwyMTIuMyA4My4yYy0yLjgtMi4xLTYuMS0zLjItOS42LTMuMkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNnptMzg0IDQ4TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSxxNXQ9VjJlLFY1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG91ZCIsaWNvbjpbNTc2LDUxMixbOTcyOV0sImYwYzIiLCJNODAgMTkyYzAtODguNCA3MS42LTE2MCAxNjAtMTYwIDQ3LjEgMCA4OS40IDIwLjQgMTE4LjcgNTIuNyAxMC42LTMuMSAyMS44LTQuNyAzMy4zLTQuNyA2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDEzLjItMi4xIDI1LjktNi4xIDM3LjggNDEuNiAyMS4xIDcwLjEgNjQuMyA3MC4xIDExNC4yIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC01Ni44IDMyLjktMTA1LjkgODAuNy0xMjkuNC0uNC00LjgtLjctOS43LS43LTE0LjZ6TTI0MCA4MGMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCA4LjQgLjkgMTYuNiAyLjcgMjQuNSAyLjcgMTIuMS00LjMgMjQuMy0xNi4xIDI4LjEtMzguNyAxMi40LTY2LjYgNDguNy02Ni42IDkxLjQgMCA1MyA0MyA5NiA5NiA5NmwzMDQgMGM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTM3LjQtMjUuNy02OC45LTYwLjUtNzcuNi03LjUtMS45LTEzLjYtNy4yLTE2LjUtMTQuM3MtMi4xLTE1LjIgMi0yMS43YzctMTEuMSAxMS0yNC4yIDExLTM4LjMgMC0zOS44LTMyLjItNzItNzItNzItMTEuMSAwLTIxLjUgMi41LTMwLjggNi45LTEwLjUgNS0yMy4xIDEuNy0yOS44LTcuOC0yMC4zLTI4LjYtNTMuNy00Ny4xLTkxLjMtNDcuMXoiXX0sVTV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZSIsaWNvbjpbNTEyLDUxMixbMTI4MzA4LDEyODMwOSwxMjg5OTIsMTI4OTkzLDEyODk5NCwxMjg5OTUsMTI4OTk2LDk2NzksOTg5OCw5ODk5LDExMDQ0LDYxNzA4LDYxOTE1XSwiZjExMSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LFUyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1MTgsImdyaW4tc3F1aW50Il0sImY1ODUiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42em0tMjQ5LjYtMTQzYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LGo1dD1VMmUsajJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS11c2VyIixpY29uOls1MTIsNTEyLFs2MjE0MiwidXNlci1jaXJjbGUiXSwiZjJiZCIsIk00MDYuNSAzOTkuNkMzODcuNCAzNTIuOSAzNDEuNSAzMjAgMjg4IDMyMGwtNjQgMGMtNTMuNSAwLTk5LjQgMzIuOS0xMTguNSA3OS42LTM1LjYtMzcuMy01Ny41LTg3LjktNTcuNS0xNDMuNiAwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGMwIDU1LjctMjEuOSAxMDYuMi01Ny41IDE0My42em0tNDAuMSAzMi43QzMzNC40IDQ1Mi40IDI5Ni42IDQ2NCAyNTYgNDY0cy03OC40LTExLjYtMTEwLjUtMzEuN2M3LjMtMzYuNyAzOS43LTY0LjMgNzguNS02NC4zbDY0IDBjMzguOCAwIDcxLjIgMjcuNiA3OC41IDY0LjN6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTI3MmE0MCA0MCAwIDEgMSAwLTgwIDQwIDQwIDAgMSAxIDAgODB6bS04OC00MGE4OCA4OCAwIDEgMCAxNzYgMCA4OCA4OCAwIDEgMCAtMTc2IDB6Il19LFc1dD1qMmUsVzJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InJlY3RhbmdsZS1saXN0IixpY29uOls1MTIsNTEyLFsibGlzdC1hbHQiXSwiZjAyMiIsIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTE2MCAzMjBhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTA0LTU2bDE2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNjAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCAxMjhsMTYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxHNXQ9VzJlLEcyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kIixpY29uOls1MTIsNTEyLFsxMjkzMDYsOTk5NSwiaGFuZC1wYXBlciJdLCJmMjU2IiwiTTI1Ni41IDBjLTI1LjMgMC00Ny4yIDE0LjctNTcuNiAzNi03LTIuNi0xNC41LTQtMjIuNC00LTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMTY1LjUtMi43LTIuN2MtMjUtMjUtNjUuNS0yNS05MC41IDBzLTI1IDY1LjUgMCA5MC41TDEwNyA0MzdjNDggNDggMTEzLjEgNzUgMTgxIDc1bDE2LjUgMGMxLjUgMCAzLS4xIDQuNS0uNCA5MS43LTYuMiAxNjUtNzkuNCAxNzEuMS0xNzEuMSAuMy0xLjUgLjQtMyAuNC00LjVsMC0xNzZjMC0zNS4zLTI4LjctNjQtNjQtNjQtNS41IDAtMTAuOSAuNy0xNiAybDAtMmMwLTM1LjMtMjguNy02NC02NC02NC03LjkgMC0xNS40IDEuNC0yMi40IDQtMTAuNC0yMS4zLTMyLjMtMzYtNTcuNi0zNnptLTE2IDk2LjFsMC0uMSAwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTcyLjljLS4xIC42LS4xIDEuMy0uMiAxLjktMy40IDY5LjctNTkuMyAxMjUuNi0xMjkgMTI5LS42IDAtMS4zIC4xLTEuOSAuMkwyODggNDY0QzIzMi45IDQ2NCAxODAgNDQyLjEgMTQxIDQwMy4xTDUzLjIgMzE1LjNjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGw0My43IDQzLjdjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4ybDAtMjIzLjRjMC04LjggNy4yLTE2IDE2LTE2IDguOCAwIDE2IDcuMSAxNiAxNS45bDAgMTM2LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNS45eiJdfSxZNXQ9RzJlLFo1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0aHVtYnMtdXAiLGljb246WzUxMiw1MTIsWzEyODA3Nyw2MTU3NV0sImYxNjQiLCJNMTcxLjUgMzguOEMxOTIuMyA0IDIzNi41LTEwIDI3NCA3LjZsNy4yIDMuOEMzMTYgMzIuMyAzMzAgNzYuNSAzMTIuNCAxMTRsMCAwLTE0LjEgMzAgMTA5LjcgMCA3LjQgLjRjMzYuMyAzLjcgNjQuNiAzNC40IDY0LjYgNzEuNiAwIDEzLjItMy42IDI1LjQtOS44IDM2IDYuMSAxMC42IDkuNyAyMi44IDkuOCAzNiAwIDE4LjMtNi45IDM0LjgtMTggNDcuNSAxLjMgNS4zIDIgMTAuOCAyIDE2LjUgMCAyNS4xLTEyLjkgNDctMzIuMiA1OS45LTEuOSAzNS41LTI5LjQgNjQuMi02NC40IDY3LjdsLTcuNCAuNC0xMDQuMSAwYy0xOCAwLTM1LjktMy40LTUyLjYtOS45bC03LjEtMy0uNy0uMy02LjYtMy4yLS43LS4zLTEyLjItNi41Yy0xMi4zLTYuNS0yMy4zLTE0LjctMzIuOS0yNC4xLTQuMSAyNi45LTI3LjMgNDcuNC01NS4zIDQ3LjRsLTMyIDBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgMjAwYzAtMzAuOSAyNS4xLTU2IDU2LTU2bDMyIDBjMTAuOCAwIDIwLjkgMy4xIDI5LjUgOC41bDUwLjEtMTA2LjUgLjYtMS4yIDIuNy01IC42LS45ek01NiAxOTJjLTQuNCAwLTggMy42LTggOGwwIDIyNGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC0yMjRjMC00LjQtMy42LTgtOC04bC0zMiAwek0yNTMuNiA1MWMtMTQuOC02LjktMzIuMy0xLjYtNDAuNyAxMmwtMi4yIDQtNTYuOCAxMjAuOWMtMy41IDcuNS01LjUgMTUuNS02IDIzLjdsLS4xIDQuMiAwIDExMi45IC4yIDcuOWMyLjQgMzIuNyAyMS40IDYyLjEgNTAuNyA3Ny43bDExLjUgNi4xIDYuMyAzLjFjMTIuNCA1LjYgMjUuOCA4LjUgMzkuNCA4LjVsMTA0LjEgMCAyLjQtLjFjMTIuMS0xLjIgMjEuNi0xMS41IDIxLjYtMjMuOWwtLjItMi42Yy0uMS0uOS0uMi0xLjctLjQtMi42LTIuNy0xMi4xIDQuMy0yNC4yIDE2LTI4IDkuNy0zLjEgMTYuNi0xMi4yIDE2LjYtMjIuOCAwLTQuMy0xLjEtOC4yLTMuMS0xMS44LTYuMy0xMS4xLTIuOC0yNS4yIDgtMzIgNi44LTQuMyAxMS4yLTExLjggMTEuMi0yMC4yIDAtNy4xLTMuMS0xMy41LTguMi0xOC01LjItNC42LTguMi0xMS4xLTguMi0xOHMzLTEzLjQgOC4yLTE4YzUuMS00LjUgOC4yLTEwLjkgOC4yLTE4bC0uMS0yLjRjLTEuMS0xMS4zLTEwLjEtMjAuMy0yMS40LTIxLjRsLTIuNC0uMS0xNDcuNSAwYy04LjIgMC0xNS44LTQuMi0yMC4yLTExLjEtNC40LTYuOS01LTE1LjctMS41LTIzLjFMMjY5IDkzLjZjNy0xNSAxLjQtMzIuNy0xMi41LTQxTDI1My42IDUxeiJdfSxYNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYnVpbGRpbmciLGljb246WzM4NCw1MTIsWzEyNzk3MCw2MTY4N10sImYxYWQiLCJNNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsODAgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MCA4MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTM4NGMwLTguOC03LjItMTYtMTYtMTZMNjQgNDh6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptOTYgNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjQwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTk2IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sUTV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXJvb2siLGljb246WzM4NCw1MTIsWzk4MjBdLCJmNDQ3IiwiTTM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTM4LjdjMCAxMy44LTQuNSAyNy4zLTEyLjggMzguNGwtMzUuMiA0Ni45IDAgMTEyIDQwLjggNjguMWM0LjcgNy44IDcuMiAxNi43IDcuMiAyNS44IDAgMjcuNy0yMi40IDUwLjEtNTAuMSA1MC4xTDUwLjEgNTEyYy0yNy43IDAtNTAuMS0yMi40LTUwLjEtNTAuMSAwLTkuMSAyLjUtMTggNy4yLTI1LjhMNDggMzY4IDQ4IDI1NiAxMi44IDIwOS4xQzQuNSAxOTggMCAxODQuNSAwIDE3MC43TDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwek00OC4zIDQ2MC44bC0uMyAxLjFjMCAxLjIgMSAyLjEgMi4xIDIuMWwyODMuOCAwYzEuMiAwIDIuMS0xIDIuMS0yLjFsLS4zLTEuMS0zNi41LTYwLjgtMjE0LjQgMC0zNi41IDYwLjh6TTQ4IDE3MC43YzAgMi42IC42IDUuMSAxLjggNy40bDEuNCAyLjIgMCAwIDM1LjIgNDYuOSA5LjYgMTIuOCAwIDExMiAxOTIgMCAwLTExMiA5LjYtMTIuOCAzNS4yLTQ2LjkgMCAwIDEuNC0yLjJjMS4yLTIuMyAxLjgtNC44IDEuOC03LjRsMC0xMjIuNy02NCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNC02NCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNC02NCAwIDAgMTIyLjd6Il19LFkyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtcXVlc3Rpb24iLGljb246WzUxMiw1MTIsWzYyMTA4LCJxdWVzdGlvbi1jaXJjbGUiXSwiZjA1OSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni04MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDQ3LjItMzYgNjcuMi01NiA3NC41bDAgMy44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC4xYzAtMjAuNSAxNC44LTM1LjIgMzAuMS00MC4yIDYuNC0yLjEgMTMuMi01LjUgMTguMi0xMC4zIDQuMy00LjIgNy43LTEwIDcuNy0xOS42IDAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMjQgMzY4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LEs1dD1ZMmUsSjV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUiLGljb246WzM4NCw1MTIsWzEyODE5NiwxMjg0NTksNjE0NjJdLCJmMTViIiwiTTE3NiA0OEw2NCA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDAtODggMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC04OHpNMzE2LjEgMTYwTDIyNCA2Ny45IDIyNCAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjguMSAwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwxOTcuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDE0MS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6Il19LFoyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNhZC1jcnkiLGljb246WzUxMiw1MTIsWzEyODU1Nywic2FkLWNyeSJdLCJmNWIzIiwiTTQwMCA0MDYuMUw0MDAgMjg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTUyLjZjLTI4LjcgMTUtNjEuNCAyMy40LTk2IDIzLjRzLTY3LjMtOC41LTk2LTIzLjRMMTYwIDI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDExOC4xQzcyLjYgMzY4LjIgNDggMzE1IDQ4IDI1NiA0OCAxNDEuMSAxNDEuMSA0OCAyNTYgNDhzMjA4IDkzLjEgMjA4IDIwOGMwIDU5LTI0LjYgMTEyLjItNjQgMTUwLjF6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNTIgMTk2bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTcyIDIwYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwek0yMDggMzM2bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4eiJdfSxlOHQ9WjJlLHQ4dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1taW51cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MiIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0zMiAxMzZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxYMmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS10aXJlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTU1LCJ0aXJlZCJdLCJmNWM4IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc2LjUgNjQuM0MxOTYuMSAzMDIuMSAyMjMuOCAyODggMjU2IDI4OHM1OS45IDE0LjEgNzkuNSAzMi4zYzE5IDE3LjggMzIuNSA0MS43IDMyLjUgNjMuNyAwIDUuNC0yLjcgMTAuNC03LjIgMTMuNHMtMTAuMiAzLjQtMTUuMiAxLjNsLTE3LjItNy41Yy0yMi44LTEwLTQ3LjUtMTUuMS03Mi40LTE1LjFzLTQ5LjYgNS4yLTcyLjQgMTUuMWwtMTcuMiA3LjVjLTQuOSAyLjItMTAuNyAxLjctMTUuMi0xLjNzLTcuMi04LTcuMi0xMy40YzAtMjIgMTMuNS00NS45IDMyLjUtNjMuN3pNMTIyLjYgMTU5LjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sYTh0PVgyZSxyOHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludC1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNCIsIk00NDggMTI4bC0xNzcuNiAwYzEgNS4yIDEuNiAxMC41IDEuNiAxNmwwIDE2IDE3NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2ek0yMjQgMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNCAwYy02Ni4zIDAtMTIwIDUzLjctMTIwIDEyMGwwIDQ4YzAgNTIuNSAzMy43IDk3LjEgODAuNyAxMTMuNC0uNS0zLjEtLjctNi4yLS43LTkuNCAwLTIwIDkuMi0zNy45IDIzLjYtNDkuNy00LjktOS03LjYtMTkuNC03LjYtMzAuMyAwLTE1LjEgNS4zLTI5IDE0LTQwLTguOC0xMS0xNC0yNC45LTE0LTQwbDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MHpNMTkyIDY0bDAgMGMxOCAwIDM0LjYgNiA0OCAxNmwyMDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtODIgMGMxLjMgNS4xIDIgMTAuNSAyIDE2IDAgMjUuMy0xNC43IDQ3LjItMzYgNTcuNiAyLjYgNyA0IDE0LjUgNCAyMi40IDAgMjAtOS4yIDM3LjktMjMuNiA0OS43IDQuOSA5IDcuNiAxOS40IDcuNiAzMC4zIDAgMzUuMy0yOC43IDY0LTY0IDY0bC04OCAwQzc1LjIgNDQ4IDAgMzcyLjggMCAyODBsMC00OEMwIDEzOS4yIDc1LjIgNjQgMTY4IDY0bDI0IDB6bTY0IDMzNmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw2NCAwem0xNi0xNzZjMCA1LjUtLjcgMTAuOS0yIDE2bDM0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDAgMCAxNnptLTI0IDY0bC00MCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDY0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTI0IDB6Il19LFEyZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtdXAiLGljb246WzUxMiw1MTIsWzYxNDY3LCJhcnJvdy1hbHQtY2lyY2xlLXVwIl0sImYzNWIiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMTA0IDEwNGMtNC42IDQuNi01LjkgMTEuNS0zLjUgMTcuNHM4LjMgOS45IDE0LjggOS45bDcyIDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTEwNCA3MiAwYzYuNSAwIDEyLjMtMy45IDE0LjgtOS45czEuMS0xMi45LTMuNS0xNy40bC0xMDQtMTA0eiJdfSxpOHQ9UTJlLG84dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXNjaXNzb3JzIixpY29uOls1MTIsNTEyLFtdLCJmMjU3IiwiTS4yIDI3Ni4zYy0xLjItMzUuMyAyNi40LTY1IDYxLjctNjYuMmwzLjMtLjEtOC4yLTEuOEMyMi41IDIwMC41IC43IDE2Ni4zIDguMyAxMzEuOFM1MC4yIDc1LjUgODQuNyA4My4ybDE3MyAzOC4zYzIuMy0yLjkgNC42LTUuNyA3LjEtOC41bDE4LjQtMjAuM0MyOTkuOSA3NC41IDMyMy41IDY0IDM0OC4zIDY0bDEwLjIgMGM1NC4xIDAgMTA0LjEgMjguNyAxMzEuMyA3NS40bDEuNSAyLjZjMTMuNiAyMy4yIDIwLjcgNDkuNyAyMC43IDc2LjZMNTEyIDM0NGMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtMTA0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMi44IC4yLTUuNiAuNS04LjMtMTkuNC0xMS0zMi41LTMxLjgtMzIuNS01NS43IDAtLjggMC0xLjYgMC0yLjRMNjYuNCAzMzhjLTM1LjMgMS4yLTY1LTI2LjQtNjYuMi02MS43em02My40LTE4LjJjLTguOCAuMy0xNS43IDcuNy0xNS40IDE2LjZzNy43IDE1LjcgMTYuNSAxNS40bDE2MS41LTUuNmM5LjgtLjMgMTguNyA1LjMgMjIuNyAxNC4yczIuMiAxOS4zLTQuNSAyNi40Yy0yLjggMi45LTQuNCA2LjctNC40IDExIDAgOC44IDcuMiAxNiAxNiAxNiA5LjEgMCAxNy40IDUuMSAyMS41IDEzLjNzMy4yIDE3LjktMi4zIDI1LjFjLTIgMi43LTMuMiA2LTMuMiA5LjYgMCA4LjggNy4yIDE2IDE2IDE2bDEwNCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtMTI1LjRjMC0xOC40LTQuOS0zNi41LTE0LjItNTIuNGwtMS41LTIuNmMtMTguNi0zMi01Mi44LTUxLjYtODkuOC01MS42bC0xMC4yIDBjLTExLjMgMC0yMiA0LjgtMjkuNiAxMy4xbDAgMC0xOC40IDIwLjNjLS42IC42LTEuMSAxLjMtMS43IDEuOWw1NyAxMy4yYzguNiAyIDE0IDEwLjYgMTIgMTkuMnMtMTAuNiAxNC0xOS4yIDEyTDI2Mi44IDE3MS44IDc0LjMgMTMwYy04LjYtMS45LTE3LjIgMy41LTE5LjEgMTIuMnMzLjUgMTcuMiAxMi4yIDE5LjFsMTg3LjUgNDEuNmMxMC4yIDIuMyAxNy44IDEwLjkgMTguNyAyMS40bC4xIDFjLjYgNi42LTEuNSAxMy4xLTUuOCAxOC4xcy0xMC42IDcuOS0xNy4yIDguMkw2My42IDI1OC4xeiJdfSxzOHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZ2VtIixpY29uOls1MTIsNTEyLFsxMjgxNDJdLCJmM2E1IiwiTTE2OC41IDcybDg3LjUgOTMgODcuNS05My0xNzUgMHpNMzgzLjkgOTkuMWwtNzIuMyA3Ni45IDEyOSAwLTU2LjYtNzYuOXptNTAgMTI0LjlMNzguMSAyMjQgMjU2IDQyMC4zIDQzMy45IDIyNHpNNzEuNSAxNzZsMTI5IDAtNzIuMy03Ni45LTU2LjYgNzYuOXptNDM0LjMgNDAuMWwtMjMyIDI1NmMtNC41IDUtMTEgNy45LTE3LjggNy45cy0xMy4yLTIuOS0xNy44LTcuOWwtMjMyLTI1NmMtNy43LTguNS04LjMtMjEuMi0xLjUtMzAuNGwxMTItMTUyYzQuNS02LjEgMTEuNy05LjggMTkuMy05LjhsMjQwIDBjNy42IDAgMTQuOCAzLjYgMTkuMyA5LjhsMTEyIDE1MmM2LjggOS4yIDYuMSAyMS45LTEuNSAzMC40eiJdfSxZZD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWN0YW5nbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYyMTY0LCJyZWN0YW5nbGUtdGltZXMiLCJ0aW1lcy1yZWN0YW5nbGUiLCJ3aW5kb3ctY2xvc2UiXSwiZjQxMCIsIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTMzNC4xIDQ5LjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ0LjEgNDQuMSA0NC4xIDQ0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDQuMS00NC4xLTQ0LjEgNDQuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0NC4xLTQ0LjEtNDQuMS00NC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDQuMSA0NC4xIDQ0LjEtNDQuMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sbjh0PVlkLGw4dD1ZZCxjOHQ9WWQsS2Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidHJhc2gtY2FuIixpY29uOls0NDgsNTEyLFs2MTQ2MCwidHJhc2gtYWx0Il0sImYyZWQiLCJNMTY2LjItMTZjLTEzLjMgMC0yNS4zIDguMy0zMCAyMC44TDEyMCA0OCAyNCA0OEMxMC43IDQ4IDAgNTguNyAwIDcyUzEwLjcgOTYgMjQgOTZsNDAwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTk2IDAtMTYuMi00My4yQzMwNy4xLTcuNyAyOTUuMi0xNiAyODEuOC0xNkwxNjYuMi0xNnpNMzIgMTQ0bDAgMzA0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzA0LTQ4IDAgMCAzMDRjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzA0LTQ4IDB6bTE2MCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTc2em0xMTIgMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTc2eiJdfSxkOHQ9S2QsZjh0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxpZmUtcmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFjZCIsIk0zODUuMSA0MTkuMUMzNDkuNyA0NDcuMiAzMDQuOCA0NjQgMjU2IDQ2NHMtOTMuNy0xNi44LTEyOS4xLTQ0LjlsODAuNC04MC40YzE0LjMgOC40IDMxIDEzLjMgNDguOCAxMy4zczM0LjUtNC44IDQ4LjgtMTMuM2w4MC40IDgwLjR6bTY4LjEgLjJDNDg5LjkgMzc0LjkgNTEyIDMxOC4xIDUxMiAyNTZTNDg5LjkgMTM3LjEgNDUzLjIgOTIuN0w0NjUgODFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0MTkuMyA1OC44QzM3NC45IDIyLjEgMzE4LjEgMCAyNTYgMFMxMzcuMSAyMi4xIDkyLjcgNTguOEw4MSA0N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMzcuNyA3MS42IDQ3IDgxTDU4LjggOTIuN0MyMi4xIDEzNy4xIDAgMTkzLjkgMCAyNTZTMjIuMSAzNzQuOSA1OC44IDQxOS4zTDQ3IDQzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDExLjgtMTEuOEMxMzcuMSA0ODkuOSAxOTMuOSA1MTIgMjU2IDUxMnMxMTguOS0yMi4xIDE2My4zLTU4LjhMNDMxIDQ2NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTExLjgtMTEuOHptLTM0LjEtMzQuMWwtODAuNC04MC40YzguNC0xNC4zIDEzLjMtMzEgMTMuMy00OC44cy00LjgtMzQuNS0xMy4zLTQ4LjhsODAuNC04MC40QzQ0Ny4yIDE2Mi4zIDQ2NCAyMDcuMiA0NjQgMjU2cy0xNi44IDkzLjctNDQuOSAxMjkuMXpNMzg1LjEgOTIuOWwtODAuNCA4MC40Yy0xNC4zLTguNC0zMS0xMy4zLTQ4LjgtMTMuM3MtMzQuNSA0LjgtNDguOCAxMy4zTDEyNi45IDkyLjlDMTYyLjMgNjQuOCAyMDcuMiA0OCAyNTYgNDhzOTMuNyAxNi44IDEyOS4xIDQ0Ljl6TTE3My4zIDMwNC44TDkyLjkgMzg1LjFDNjQuOCAzNDkuNyA0OCAzMDQuOCA0OCAyNTZzMTYuOC05My43IDQ0LjktMTI5LjFsODAuNCA4MC40Yy04LjQgMTQuMy0xMy4zIDMxLTEzLjMgNDguOHM0LjggMzQuNSAxMy4zIDQ4Ljh6TTIwOCAyNTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sdTh0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvcHlyaWdodCIsaWNvbjpbNTEyLDUxMixbMTY5XSwiZjFmOSIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwNS4xIDMwNi45Yy0yOC4xLTI4LjEtMjguMS03My43IDAtMTAxLjhzNzMuNy0yOC4xIDEwMS44IDBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45Yy00Ni45LTQ2LjktMTIyLjgtNDYuOS0xNjkuNyAwcy00Ni45IDEyMi44IDAgMTY5LjcgMTIyLjggNDYuOSAxNjkuNyAwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTI4LjEgMjguMS03My43IDI4LjEtMTAxLjggMHoiXX0sSzJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1sZWZ0IixpY29uOls1MTIsNTEyLFs2MTg0MCwiYXJyb3ctYWx0LWNpcmNsZS1sZWZ0Il0sImYzNTkiLCJNNDggMjU2YTIwOCAyMDggMCAxIDEgNDE2IDAgMjA4IDIwOCAwIDEgMSAtNDE2IDB6bTQ2NCAwYTI1NiAyNTYgMCAxIDAgLTUxMiAwIDI1NiAyNTYgMCAxIDAgNTEyIDB6TTEyNC43IDI0NC43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwxMDQgMTA0YzQuNiA0LjYgMTEuNSA1LjkgMTcuNCAzLjVzOS45LTguMyA5LjktMTQuOGwwLTcyIDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEwNCAwIDAtNzJjMC02LjUtMy45LTEyLjMtOS45LTE0LjhzLTEyLjktMS4xLTE3LjQgMy41bC0xMDQgMTA0eiJdfSxwOHQ9SzJlLGg4dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDggMzUyIDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwek00OCAyMjRsMCAxOTJjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE5Mi0zNTIgMHoiXX0sSjJlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZnJvd24tb3BlbiIsaWNvbjpbNTEyLDUxMixbMTI4NTUwLCJmcm93bi1vcGVuIl0sImY1N2EiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xODIuNCAzODIuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40IDE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNC0yMi40LTkuNS00Ny40LTE0LjgtNzMuNy0xNC44cy01MS4zIDUuMy03My43IDE0Ljh6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sbTh0PUoyZSxlYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hhcnQtYmFyIixpY29uOls1MTIsNTEyLFsiYmFyLWNoYXJ0Il0sImYwODAiLCJNNDggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCA0Mi43IDAgNTZMMCA0MDBjMCA0NC4yIDM1LjggODAgODAgODBsNDA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODAgNDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMkw0OCA1NnptMTA0IDcybDIwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE1MiA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHptMCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNzIgMHoiXX0sZzh0PWVhZSxaZD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3VzZSIsaWNvbjpbNTEyLDUxMixbMTI3OTY4LDYzNDk4LDYzNTAwLCJob21lIiwiaG9tZS1hbHQiLCJob21lLWxnLWFsdCJdLCJmMDE1IiwiTTI0MCA2LjFjOS4xLTguMiAyMi45LTguMiAzMiAwbDIzMiAyMDhjOS45IDguOCAxMC43IDI0IDEuOCAzMy45cy0yNCAxMC43LTMzLjkgMS44bC04LTcuMiAwIDIwNS4zYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMDUuMy04IDcuMmMtOS45IDguOC0yNSA4LTMzLjktMS44cy04LTI1IDEuOC0zMy45TDI0MCA2LjF6bTE2IDUwLjFMOTYgMTk5LjcgOTYgNDQ4YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAtMTA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDQ4IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAxMDQgNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDguMy0xNjAtMTQzLjR6TTIwOCA0NjRsOTYgMCAwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMDR6Il19LHg4dD1aZCxiOHQ9WmQsdjh0PVpkLHRhZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWZyb3duIixpY29uOls1MTIsNTEyLFs5Nzg1LCJmcm93biJdLCJmMTE5IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMzM0LjcgMzg0LjZDMzE5LjcgMzY5IDI5My42IDM1MiAyNTYgMzUycy02My43IDE3LTc4LjcgMzIuNmMtOS4yIDkuNi0yNC40IDkuOS0zMy45IC43cy05LjktMjQuNC0uNy0zMy45YzIyLjEtMjMgNjAtNDcuNCAxMTMuMy00Ny40czkxLjIgMjQuNCAxMTMuMyA0Ny40YzkuMiA5LjYgOC45IDI0LjgtLjcgMzMuOXMtMjQuOCA4LjktMzMuOS0uN3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSx5OHQ9dGFlLE1WPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InVzZXIiLGljb246WzQ0OCw1MTIsWzEyODEwMCw2MjE0NCw2MjQ3MCwidXNlci1hbHQiLCJ1c2VyLWxhcmdlIl0sImYwMDciLCJNMTQ0IDEyOGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6bTIwOCAwYTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6TTQ4IDQ4MGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOGw5NiAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOGMwLTk3LjItNzguOC0xNzYtMTc2LTE3NmwtOTYgMEM3OC44IDMwNCAwIDM4Mi44IDAgNDgwbDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOHoiXX0sdzh0PU1WLE04dD1NVix6OHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic25vd2ZsYWtlIixpY29uOls1MTIsNTEyLFsxMDA1MiwxMDA1NF0sImYyZGMiLCJNMjgwLjEtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDc4LjEtMjMtMjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTcgNTcgMCA3Ni41LTY2LjItMzguMi0yMC45LTc3LjhjLTMuNC0xMi44LTE2LjYtMjAuNC0yOS40LTE3Uzk1LjIgOTggOTguNyAxMTAuOGw4LjQgMzEuNS02Ny42LTM5QzI4IDk2LjYgMTMuMyAxMDAuNSA2LjcgMTEyUzQgMTM4LjIgMTUuNSAxNDQuOGw2Ny42IDM5LTMxLjUgOC40Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w3Ny44LTIwLjkgNjYuMiAzOC4yLTY2LjIgMzguMi03Ny44LTIwLjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDMxLjUgOC40LTY3LjYgMzlDNCAzNzMuOCAuMSAzODguNSA2LjcgNDAwczIxLjMgMTUuNCAzMi44IDguOGw2Ny42LTM5LTguNCAzMS41Yy0zLjQgMTIuOCA0LjIgMjYgMTcgMjkuNHMyNi00LjIgMjkuNC0xN2wyMC45LTc3LjggNjYuMi0zOC4yIDAgNzYuNS01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDIzLTIzIDAgNzguMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzguMSAyMyAyM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU3LTU3IDAtNzYuNSA2Ni4yIDM4LjIgMjAuOSA3Ny44YzMuNCAxMi44IDE2LjYgMjAuNCAyOS40IDE3czIwLjQtMTYuNiAxNy0yOS40bC04LjQtMzEuNSA2Ny42IDM5YzExLjUgNi42IDI2LjIgMi43IDMyLjgtOC44czIuNy0yNi4yLTguOC0zMi44bC02Ny42LTM5IDMxLjUtOC40YzEyLjgtMy40IDIwLjQtMTYuNiAxNy0yOS40cy0xNi42LTIwLjQtMjkuNC0xN2wtNzcuOCAyMC45LTY2LjItMzguMiA2Ni4yLTM4LjIgNzcuOCAyMC45YzEyLjggMy40IDI2LTQuMiAyOS40LTE3cy00LjItMjYtMTctMjkuNGwtMzEuNS04LjQgNjcuNi0zOWMxMS41LTYuNiAxNS40LTIxLjMgOC44LTMyLjhzLTIxLjMtMTUuNC0zMi44LTguOGwtNjcuNiAzOSA4LjQtMzEuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTIwLjkgNzcuOC02Ni4yIDM4LjIgMC03Ni41IDU3LTU3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzIDAtNzguMXoiXX0sazh0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJvb2ttYXJrIixpY29uOlszODQsNTEyLFsxMjgyNzgsNjE1OTFdLCJmMDJlIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDE3LjFjMCAyNS42LTI4LjUgNDAuOC00OS44IDI2LjZMMTkyIDQxMi44IDQ5LjggNTA3LjdDMjguNSA1MjEuOSAwIDUwNi42IDAgNDgxLjFMMCA2NHpNNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4Ny4yIDExNy40LTc4LjJjMTYuMS0xMC43IDM3LjEtMTAuNyA1My4yIDBMMzM2IDQ1MS4yIDMzNiA2NGMwLTguOC03LjItMTYtMTYtMTZMNjQgNDh6Il19LGFhZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1sZWZ0Il0sImYxOTEiLCJNNDggNDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjB6bTE2IDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MHptNjQtMjI0YzAtNi43IDIuOC0xMyA3LjctMTcuNmwxMTItMTA0YzctNi41IDE3LjItOC4yIDI1LjktNC40UzI4OCAxNDIuNSAyODggMTUybDAgMjA4YzAgOS41LTUuNyAxOC4yLTE0LjQgMjJzLTE4LjkgMi4xLTI1LjktNC40bC0xMTItMTA0Yy00LjktNC41LTcuNy0xMC45LTcuNy0xNy42eiJdfSxTOHQ9YWFlLHpWPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmRzaGFrZSIsaWNvbjpbNjQwLDUxMixbMTI5MzA5LDYyNjYyLCJoYW5kc2hha2UtYWx0IiwiaGFuZHNoYWtlLXNpbXBsZSJdLCJmMmI1IiwiTTU5OC4xIDc1LjRjMTAuNy03LjggMTMuMS0yMi44IDUuMy0zMy41cy0yMi44LTEzLjEtMzMuNS01LjNsLTc0LjUgNTQuMi05LjktNi42QzQ2NS44IDcxIDQ0Mi42IDY0IDQxOC45IDY0bC01OS4yIDAtLjQgMC0xNDMuNiAwYy0yNi43IDAtNTIuNSA4LjktNzMuNCAyNS4xTDcwLjEgMzYuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNzLTUuNCAyNS43IDUuMyAzMy41bDg4IDY0YzkuNiA2LjkgMjIuNyA1LjkgMzEuMS0yLjRsMy45LTMuOWMxMy41LTEzLjUgMzEuOC0yMS4xIDUwLjktMjEuMWw0Ni4zIDAtOTEuNyA5MS43Yy0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNmwuOCAuOEMyMTggMzA4IDI5NCAzMDggMzQwLjkgMjYxLjFsMjcuMS0yNy4xIDk3LjggOTcuOGMxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNmwtOS44IDkuOC0zMS0zMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwyOCAyOGMtMTcuNSAxMC40LTM3LjIgMTYuNy01Ny42IDE4LjVMMzEzIDM5OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNSAxNS0zLjggMGMtMzYuMSAwLTcwLjctMTQuMy05Ni4yLTM5LjhMNjUgMjc5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDE2MC4yIDQ0Mi4xYzM0LjUgMzQuNSA4MS4zIDUzLjkgMTMwLjEgNTMuOWw1MS44IDAgMSAxIDEtMSA1LjcgMGM0OC44IDAgOTUuNi0xOS40IDEzMC4xLTUzLjlsMTkuOS0xOS45YzEuMi0xLjIgMi4zLTIuMyAzLjQtMy41IC43LS41IDEuMy0xLjEgMS45LTEuN0w2MDkgMzEzYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTUzLjggNTMuOGMtNC4yLTEyLjgtMTEuMy0yNC45LTIxLjUtMzUuMUwzODUgMTgzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtNDQuMSA0NC4xYy0yNi41IDI2LjUtNjguNSAyOC05Ni43IDQuNmw5OC43LTk4LjdjMTMuNC0xMy40IDMxLjYtMjEgNTAuNi0yMS4xbDguNSAwIC4yIDAgNTAuOCAwYzE0LjIgMCAyOC4xIDQuMiAzOS45IDEyLjFMNDgyLjcgMTQwYzguNCA1LjYgMTkuMyA1LjMgMjcuNC0uNmw4OC02NHoiXX0sQzh0PXpWLEw4dD16VixyYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1MjEsInNtaWxlLXdpbmsiXSwiZjRkYSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LFQ4dD1yYWUsaWFlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQtdGVhcnMiLGljb246WzUxMiw1MTIsWzEyOTMxNSwiZ3Jpbi1zcXVpbnQtdGVhcnMiXSwiZjU4NiIsIk00MDMuMSA0MDMuMWM2Ny4yLTY3LjIgNzguOC0xNjguOSAzNC45LTI0OGwzNi43LTUuMmM0LjUtLjYgOC44LTEuNiAxMy4xLTIuOCA0NC42IDk0LjkgMjcuNyAyMTEuNS01MC43IDI5MHMtMTk1LjEgOTUuMy0yOTAgNTAuN2MxLjItNC4yIDIuMS04LjYgMi44LTEzLjFsNS4yLTM2LjdjNzkuMSA0My45IDE4MC44IDMyLjMgMjQ4LTM0Ljl6TTc1IDc1Yzc4LjQtNzguNCAxOTUuMS05NS4zIDI5MC01MC43LTEuMiA0LjItMi4xIDguNi0yLjggMTMuMWwtNS4yIDM2LjdjLTc5LjEtNDMuOS0xODAuOC0zMi4zLTI0OCAzNC45cy03OC44IDE2OC45LTM0LjkgMjQ4bC0zNi43IDUuMmMtNC41IC42LTguOCAxLjYtMTMuMSAyLjgtNDQuNi05NC45LTI3LjctMjExLjUgNTAuNy0yOTB6TTM3MC45IDIwNi41YzUuOC0xMC45IDIxLjEtMTIuNCAyNi40LTEuMyAyNS42IDUzLjUgMTYuMiAxMTkuNi0yOC4yIDE2My45LTQ0LjMgNDQuMy0xMTAuMyA1My43LTE2My44IDI4LjItMTEuMS01LjMtOS42LTIwLjYgMS4zLTI2LjQgMzItMTcuMSA2NC4yLTQwLjggOTMuOC03MC40IDI5LjctMjkuNyA1My40LTYxLjkgNzAuNS05NHpNOTMuMyAyODEuOWMtMS43LTggMi45LTE1LjkgMTAuNi0xOC40bDg0LjYtMjhjNS43LTEuOSAxMi4xLS40IDE2LjMgMy45czUuOCAxMC42IDMuOSAxNi4zbC0yOCA4NC42Yy0yLjYgNy43LTEwLjUgMTIuMy0xOC40IDEwLjZzLTEzLjQtOS0xMi43LTE3LjFsMy45LTQzLjEtNDMuMSAzLjljLTguMSAuNy0xNS41LTQuNy0xNy4xLTEyLjd6TTI5NC42IDExMC40bC0zLjkgNDMuMSA0My4xLTMuOWM4LjEtLjcgMTUuNSA0LjcgMTcuMSAxMi43cy0yLjkgMTUuOS0xMC42IDE4LjRsLTg0LjYgMjhjLTUuNyAxLjktMTIuMSAuNC0xNi4zLTMuOXMtNS44LTEwLjYtMy45LTE2LjNsMjgtODQuNmMyLjYtNy43IDEwLjUtMTIuMyAxOC40LTEwLjZzMTMuNCA5IDEyLjcgMTcuMXpNNTEyIDUxLjRjMCAyNS42LTE4LjggNDcuMy00NC4xIDUwLjlMNDIxLjEgMTA5Yy0xMC42IDEuNS0xOS42LTcuNS0xOC4xLTE4LjFsNi43LTQ2LjdDNDEzLjMgMTguOCA0MzUgMCA0NjAuNiAwIDQ4OSAwIDUxMiAyMyA1MTIgNTEuNHpNNDQuMSA0MDkuN0w5MC45IDQwM2MxMC42LTEuNSAxOS42IDcuNSAxOC4xIDE4LjFsLTYuNyA0Ni43Qzk4LjcgNDkzLjIgNzcgNTEyIDUxLjQgNTEyIDIzIDUxMiAwIDQ4OSAwIDQ2MC42IDAgNDM1IDE4LjggNDEzLjMgNDQuMSA0MDkuN3oiXX0sXzh0PWlhZSxBOHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1hdWRpbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek0yMjEuOSAyNjcuNmMtNC43IDEwLS4zIDIxLjkgOS43IDI2LjYgMTkuMiA4LjkgMzIuNCAyOC4zIDMyLjQgNTAuOHMtMTMuMiA0MS45LTMyLjQgNTAuOGMtMTAgNC43LTE0LjQgMTYuNi05LjcgMjYuNnMxNi42IDE0LjQgMjYuNiA5LjdDMjgxLjIgNDE2LjggMzA0IDM4My42IDMwNCAzNDVzLTIyLjgtNzEuOS01NS42LTg3LjFjLTEwLTQuNy0yMS45LS4zLTI2LjYgOS43ek0xMDQgMzA1Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDAgMjcuMiAzNGMzIDMuOCA3LjYgNiAxMi41IDZsLjMgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2bC0uMyAwYy00LjkgMC05LjUgMi4yLTEyLjUgNmwtMjcuMiAzNC0xNiAwek0yMjMuMyAzNzNjOS45LTUuNCAxNi43LTE2IDE2LjctMjguMXMtNi43LTIyLjctMTYuNy0yOC4xYy03LjgtNC4yLTE1LjMgMy4zLTE1LjMgMTIuMWwwIDMyYzAgOC44IDcuNiAxNi4zIDE1LjMgMTIuMXoiXX0sb2FlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLXhtYXJrIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItdGltZXMiXSwiZjI3MyIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0xNzEuOSA5Mi4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDB6Il19LCQ4dD1vYWUsc2FlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1kb3duIixpY29uOls1MTIsNTEyLFs2MTQ2NiwiYXJyb3ctYWx0LWNpcmNsZS1kb3duIl0sImYzNTgiLCJNMjU2IDQ2NGEyMDggMjA4IDAgMSAxIDAtNDE2IDIwOCAyMDggMCAxIDEgMCA0MTZ6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMjQ0LjcgMzg3LjNjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMTA0LTEwNGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzM2Ni41IDI1NiAzNjAgMjU2bC03MiAwIDAtMTA0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEwNC03MiAwYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjRsMTA0IDEwNHoiXX0sRDh0PXNhZSxrVj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLWxpbmVzIixpY29uOlszODQsNTEyLFsxMjg0NDEsMTI4NDYyLDYxNjg2LCJmaWxlLWFsdCIsImZpbGUtdGV4dCJdLCJmMTVjIiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTU2IDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxFOHQ9a1YsTjh0PWtWLFA4dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50cyIsaWNvbjpbNTc2LDUxMixbMTI4NDkwLDYxNjcwXSwiZjA4NiIsIk03Ni4yIDI1OC43YzYuMS0xNS4yIDQtMzIuNi01LjYtNDUuOS0xNC41LTIwLjEtMjIuNi00My43LTIyLjYtNjguOCAwLTY2LjggNjAuNS0xMjggMTQ0LTEyOHMxNDQgNjEuMiAxNDQgMTI4LTYwLjUgMTI4LTE0NCAxMjhjLTE1LjkgMC0zMS4xLTIuMy00NS4zLTYuNS0xMC4zLTMuMS0yMS40LTIuNS0zMS40IDEuNWwtNTAuNCAyMC4yIDExLjQtMjguNXpNMCAxNDRjMCAzNS44IDExLjYgNjkuMSAzMS43IDk2LjhMMS45IDMxNS4yYy0xLjMgMy4yLTEuOSA2LjYtMS45IDEwIDAgMTQuOCAxMiAyNi44IDI2LjggMjYuOCAzLjQgMCA2LjgtLjcgMTAtMS45bDk2LjMtMzguNWMxOC42IDUuNSAzOC40IDguNCA1OC45IDguNCAxMDYgMCAxOTItNzguOCAxOTItMTc2UzI5OC0zMiAxOTItMzIgMCA0Ni44IDAgMTQ0ek0zODQgNTEyYzIwLjYgMCA0MC4zLTMgNTguOS04LjRsOTYuMyAzOC41YzMuMiAxLjMgNi42IDEuOSAxMCAxLjkgMTQuOCAwIDI2LjgtMTIgMjYuOC0yNi44IDAtMy40LS43LTYuOC0xLjktMTBsLTI5LjctNzQuNGMyMC0yNy44IDMxLjctNjEuMSAzMS43LTk2LjggMC04Mi40LTYxLjctMTUxLjUtMTQ1LTE3MC43LTEuNiAxNi4zLTUuMSAzMS45LTEwLjEgNDYuOSA2My45IDE0LjggMTA3LjIgNjcuMyAxMDcuMiAxMjMuOSAwIDI1LjEtOC4xIDQ4LjctMjIuNiA2OC44LTkuNiAxMy4zLTExLjcgMzAuNi01LjYgNDUuOWwxMS40IDI4LjUtNTAuNC0yMC4yYy0xMC00LTIxLjEtNC41LTMxLjQtMS41LTE0LjIgNC4yLTI5LjQgNi41LTQ1LjMgNi41LTcyLjIgMC0xMjcuMS00NS43LTE0MC43LTEwMS4yLTE1LjYgMy4yLTMxLjcgNS00OC4xIDUuMiAxNi40IDgxLjkgOTQuNyAxNDQgMTg4LjggMTQ0eiJdfSxKZD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtY2hlY2siLGljb246WzUxMiw1MTIsWzYxNTMzLCJjaGVjay1jaXJjbGUiXSwiZjA1OCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnptMC00NjRhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2em03MC43IDEyMS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuMyAxMC43IDcuOCAxMy4xIDIyLjggNS4zIDMzLjVMMjQzLjQgMzY2LjFjLTQuMSA1LjctMTAuNSA5LjMtMTcuNSA5LjgtNyAuNS0xMy45LTItMTguOC02LjlsLTU1LjktNTUuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM2IDM2IDEwNS42LTE0NS4yeiJdfSxJOHQ9SmQsRjh0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1vb24iLGljb246WzUxMiw1MTIsWzEyNzc2OSw5MjE0XSwiZjE4NiIsIk0yMzkuMyA0OC43Yy0xMDcuMSA4LjUtMTkxLjMgOTguMS0xOTEuMyAyMDcuMyAwIDExNC45IDkzLjEgMjA4IDIwOCAyMDggMzMuMyAwIDY0LjctNy44IDkyLjYtMjEuNy0xMDMuNC0yMy40LTE4MC42LTExNS44LTE4MC42LTIyNi4zIDAtNjUuOCAyNy40LTEyNS4xIDcxLjMtMTY3LjN6TTAgMjU2YzAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTYgMTkuNCAwIDM4LjQgMi4yIDU2LjcgNi4zIDkuOSAyLjIgMTcuMyAxMC41IDE4LjUgMjAuNXMtNCAxOS44LTEzLjEgMjQuNGMtNjAuNiAzMC4yLTEwMi4xIDkyLjctMTAyLjEgMTY0LjggMCAxMDEuNiA4Mi40IDE4NCAxODQgMTg0IDUgMCA5LjktLjIgMTQuOC0uNiAxMC4xLS44IDE5LjYgNC44IDIzLjggMTQuMXMyIDIwLjEtNS4zIDI3LjFDMzg3LjMgNDg0LjggMzI0LjggNTEyIDI1NiA1MTIgMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZ6Il19LE84dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjIwYSIsIk00NDggMTEyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptODggMTQ0bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTgwYzAtNC40IDMuNi04IDgtOHptMTY4IDhjMC00LjQgMy42LTggOC04bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTgweiJdfSxCOHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaW1hZ2VzIixpY29uOls1NzYsNTEyLFtdLCJmMzAyIiwiTTQ4MCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMHpNMTYwIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMzJ6bTgwIDExMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNDAuNyAzLjhjLTQuMy03LjMtMTIuMi0xMS44LTIwLjctMTEuOHMtMTYuNCA0LjUtMjAuNyAxMS44bC00Ni41IDc5LTE3LjItMjQuNmMtNC41LTYuNC0xMS44LTEwLjItMTkuNy0xMC4ycy0xNS4yIDMuOC0xOS43IDEwLjJsLTU2IDgwYy01LjEgNy4zLTUuOCAxNi45LTEuNiAyNC44UzE5MS4xIDMyMCAyMDAgMzIwbDI0MCAwYzguNiAwIDE2LjYtNC42IDIwLjgtMTIuMXM0LjItMTYuNy0uMS0yNC4xbC04MC0xMzZ6TTQ4IDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEzOC43IDAgMTUyTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM2MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjk2eiJdfSxuYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs2MTgzOCwiYXJyb3ctYWx0LWNpcmNsZS1yaWdodCJdLCJmMzVhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHptMzg3LjMgMTEuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTA0LTEwNGMtNC42LTQuNi0xMS41LTUuOS0xNy40LTMuNVMyNTYgMTQ1LjUgMjU2IDE1MmwwIDcyLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDEwNCAwIDAgNzJjMCA2LjUgMy45IDEyLjMgOS45IDE0LjhzMTIuOSAxLjEgMTcuNC0zLjVsMTA0LTEwNHoiXX0sUjh0PW5hZSxsYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaWQtY2FyZCIsaWNvbjpbNTc2LDUxMixbNjIxNDcsImRyaXZlcnMtbGljZW5zZSJdLCJmMmMyIiwiTTQ4IDQxNmwwLTI1NiA0ODAgMCAwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYzAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDggMzEyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0zNzYgMjA4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHoiXX0sSDh0PWxhZSxjYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXBsYXkiLGljb246WzUxMiw1MTIsWzYxNDY5LCJwbGF5LWNpcmNsZSJdLCJmMTQ0IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjEyLjUgMTQ3LjVjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNVMxNzYgMTU5LjMgMTc2IDE2OGwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OHpNMjk4IDI1NmwtNzQgNDUuMiAwLTkwLjQgNzQgNDUuMnoiXX0scTh0PWNhZSxkYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MTMsImxhdWdoLWJlYW0iXSwiZjU5YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LFY4dD1kYWUsZmFlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImFkZHJlc3MtYm9vayIsaWNvbjpbNTEyLDUxMixbNjIxMzgsImNvbnRhY3QtYm9vayJdLCJmMmI5IiwiTTM4NCA0OGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDgwIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwyODggMHpNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwek0yNDAgMjQ4YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0tMzIgNDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDB6TTUxMiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNNDk2IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0eiJdfSxVOHQ9ZmFlLHVhZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTI0IDBDMTAuNyAwIDAgMTAuNyAwIDI0UzEwLjcgNDggMjQgNDhsOCAwIDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsODEuNSA4MS41LTgxLjUgODEuNUM0OCAzNjYgMzIgNDA0LjcgMzIgNDQ1bDAgMTktOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtODEuNS04MS41IDgxLjUtODEuNUMzMzYgMTQ2IDM1MiAxMDcuMyAzNTIgNjdsMC0xOSA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzczLjMgMCAzNjAgMEwyNCAwek0xOTIgMjg5LjlsODEuNSA4MS41QzI5MyAzOTEgMzA0IDQxNy40IDMwNCA0NDVsMCAxOS0yMjQgMCAwLTE5YzAtMjcuNiAxMS01NCAzMC41LTczLjVMMTkyIDI4OS45em0wLTY3LjlsLTgxLjUtODEuNUM5MSAxMjEgODAgOTQuNiA4MCA2N2wwLTE5IDIyNCAwIDAgMTljMCAyNy42LTExIDU0LTMwLjUgNzMuNUwxOTIgMjIyLjF6Il19LGo4dD11YWUsU1Y9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGVhZHBob25lcyIsaWNvbjpbNDQ4LDUxMixbMTI3OTExLDYyODYzLCJoZWFkcGhvbmVzLWFsdCIsImhlYWRwaG9uZXMtc2ltcGxlIl0sImYwMjUiLCJNNDggMjI0YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2czE3NiA3OC44IDE3NiAxNzZsMCA0NC44Yy0xNC4xLTguMi0zMC41LTEyLjgtNDgtMTIuOGwtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMjhjMCAyNi41IDIxLjUgNDggNDggNDhsMTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTYwQzQ0OCAxMDAuMyAzNDcuNyAwIDIyNCAwUzAgMTAwLjMgMCAyMjRMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTI4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwYy0xNy41IDAtMzMuOSA0LjctNDggMTIuOEw0OCAyMjR6bTAgMTI4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMCAxMjgtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zMnptMzUyIDBsMCAzMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYgMCAwLTEyOCAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4eiJdfSxXOHQ9U1YsRzh0PVNWLFk4dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXBvd2VycG9pbnQiLGljb246WzM4NCw1MTIsW10sImYxYzQiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptODggMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEyOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgMjggMGMzNy42IDAgNjgtMzAuNCA2OC02OHMtMzAuNC02OC02OC02OGwtNTIgMHptNTIgODhsLTI4IDAgMC00MCAyOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMHoiXX0sWjh0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1tYXhpbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDcwXSwiZjJkMCIsIk00OCAyMjRsMCAxNjBjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2MC00MTYgMHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHoiXX0scGFlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbW1lbnQtZG90cyIsaWNvbjpbNTEyLDUxMixbMTI4MTcyLDYyMDc1LCJjb21tZW50aW5nIl0sImY0YWQiLCJNMCAyNDBjMCA1NC40IDE5LjMgMTA0LjYgNTEuOSAxNDQuOUwzLjEgNDc0LjNjLTIgMy43LTMuMSA3LjktMy4xIDEyLjIgMCAxNC4xIDExLjQgMjUuNSAyNS41IDI1LjUgNCAwIDcuOC0uNiAxMS41LTIuMUwxNTMuNCA0NjBjMzEuNCAxMi45IDY2LjEgMjAgMTAyLjYgMjAgMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDB6TTk0IDQwNy45YzkuMy0xNy4xIDcuNC0zOC4xLTQuOC01My4yLTI2LjEtMzIuMy00MS4yLTcxLjktNDEuMi0xMTQuNyAwLTEwMy4yIDkwLjItMTkyIDIwOC0xOTJzMjA4IDg4LjggMjA4IDE5Mi05MC4yIDE5Mi0yMDggMTkyYy0zMC4yIDAtNTguNy01LjktODQuMy0xNi40LTExLjktNC45LTI1LjMtNC44LTM3LjEgLjNMNzYgNDQwLjkgOTQgNDA3Ljl6TTE0NCAyNzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNDQtMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptODAgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxYOHQ9cGFlLGhhZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlLXdpbmsiLGljb246WzUxMiw1MTIsWzEyODU0MCwiZ3Jpbi10b25ndWUtd2luayJdLCJmNThiIiwiTTM2Ni45IDQzMmMuOC01LjIgMS4xLTEwLjYgMS4xLTE2bDAtNTMuNWMxMC4yLTEyLjYgMTguMy0yNi45IDIzLjgtNDIuNSA0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3LjgtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggNS41IDE1LjUgMTMuNiAyOS45IDIzLjggNDIuNGwwIDUzLjVjMCA1LjQgLjQgMTAuOCAxLjEgMTYtNTguNC0zNi44LTk3LjEtMTAxLjktOTcuMS0xNzYgMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4czIwOCA5My4xIDIwOCAyMDhjMCA3NC4xLTM4LjggMTM5LjItOTcuMSAxNzZ6bS0zOC44IDY5LjdDNDM0LjQgNDcwLjYgNTEyIDM3Mi4zIDUxMiAyNTYgNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NkMwIDM3Mi4zIDc3LjYgNDcwLjYgMTgzLjkgNTAxLjcgMjAzLjQgNTE4LjEgMjI4LjUgNTI4IDI1NiA1MjhzNTIuNi05LjkgNzIuMS0yNi4zek0zMjAgMzc4LjZsMCAzNy40YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0bDAtMzcuNGMwLTE0LjcgMTEuOS0yNi42IDI2LjYtMjYuNmwyIDBjMTEuMyAwIDIxLjEgNy45IDIzLjYgMTguOSAyLjggMTIuNiAyMC44IDEyLjYgMjMuNiAwIDIuNS0xMS4xIDEyLjMtMTguOSAyMy42LTE4LjlsMiAwYzE0LjcgMCAyNi42IDExLjkgMjYuNiAyNi42ek0xMzIgMjMyYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwem0yMjguNC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0yODggMjA4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCAwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHoiXX0sUTh0PWhhZSxtYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91cmdsYXNzLWhhbGYiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMiJdLCJmMjUyIiwiTTAgMjRDMCAxMC43IDEwLjcgMCAyNCAwTDM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAxOWMwIDQwLjMtMTYgNzktNDQuNSAxMDcuNWwtODEuNSA4MS41IDgxLjUgODEuNUMzMzYgMzY2IDM1MiA0MDQuNyAzNTIgNDQ1bDAgMTkgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0xOWMwLTQwLjMgMTYtNzkgNDQuNS0xMDcuNWw4MS41LTgxLjUtODEuNS04MS41QzQ4IDE0NiAzMiAxMDcuMyAzMiA2N2wwLTE5LTggMEMxMC43IDQ4IDAgMzcuMyAwIDI0ek0xMTAuNSAzNzEuNWMtMy45IDMuOS03LjUgOC4xLTEwLjcgMTIuNWwxODQuNCAwYy0zLjItNC40LTYuOC04LjYtMTAuNy0xMi41bC04MS41LTgxLjUtODEuNSA4MS41ek04MC44IDQzMmMtLjUgNC4zLS44IDguNi0uOCAxM2wwIDE5IDIyNCAwIDAtMTljMC00LjQtLjMtOC43LS44LTEzTDgwLjggNDMyek0yNTQuMSAxNjBsLTEyNC4xIDAgNjIuMSA2Mi4xIDYyLjEtNjIuMXptMzkuNy00OEMzMDAuNCA5OC4xIDMwNCA4Mi43IDMwNCA2N2wwLTE5LTIyNCAwIDAgMTljMCAxNS43IDMuNiAzMS4xIDEwLjIgNDVsMjAzLjUgMHoiXX0sSzh0PW1hZSxnYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY3JlZGl0LWNhcmQiLGljb246WzUxMiw1MTIsWzEyODE3OSw2MjA4MywiY3JlZGl0LWNhcmQtYWx0Il0sImYwOWQiLCJNNDQ4IDExMmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMi00MTYgMCAwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHptMTYgMTEybDAgMTYwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2MCA0MTYgMHpNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTgwIDM0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMTQ0IDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LEo4dD1nYWUsZWR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtc3BvY2siLGljb246WzUxMiw1MTIsWzEyODQwNl0sImYyNTkiLCJNMTM4LjMgODAuOGMtOS4yLTMzLjggMTAuNS02OC44IDQ0LjMtNzguNCAzNC05LjYgNjkuNCAxMC4yIDc5IDQ0LjJMMjkxLjkgMTUzLjcgMzA1LjEgODRjNi42LTM0LjcgNDAuMS01Ny41IDc0LjgtNTAuOSAzMS40IDYgNTMgMzMuOSA1MiA2NC45IDEwLTIuNiAyMC44LTIuOCAzMS41LS4xIDM0LjMgOC42IDU1LjEgNDMuMyA0Ni42IDc3LjZMNDU0LjcgMzk3LjJDNDM3LjggNDY0LjcgMzc3LjIgNTEyIDMwNy42IDUxMmwtMzMuNyAwYy01Ni45IDAtMTEyLjItMTktMTU3LjItNTMuOWwtOTItNzEuNmMtMjcuOS0yMS43LTMyLjktNjEuOS0xMS4yLTg5LjhzNjEuOS0zMi45IDg5LjgtMTEuMmwxNyAxMy4yLTUxLjgtMTMxLjJjLTEzLTMyLjkgMy4yLTcwLjEgMzYtODMgMTEuMS00LjQgMjIuNy01LjQgMzMuNy0zLjd6bTc3LjEtMjEuMmMtMi40LTguNS0xMS4yLTEzLjQtMTkuNy0xMXMtMTMuNCAxMS4yLTExIDE5LjdsNTQuOCAxODIuNGMzLjUgMTIuMy0zLjMgMjUuMi0xNS40IDI5LjNzLTI1LjMtMi0zMC0xMy45TDE0Mi45IDEzOC4xYy0zLjItOC4yLTEyLjUtMTIuMy0yMC44LTlzLTEyLjMgMTIuNS05IDIwLjhsNzMuMyAxODUuNmMxMiAzMC4zLTIzLjcgNTctNDkuNCAzN0w3My44IDMyMy40Yy03LTUuNC0xNy00LjItMjIuNSAyLjhzLTQuMiAxNyAyLjggMjIuNWw5MiA3MS42YzM2LjUgMjguNCA4MS40IDQzLjggMTI3LjcgNDMuOGwzMy43IDBjNDcuNSAwIDg5LTMyLjQgMTAwLjUtNzguNWw1NS40LTIyMS42YzIuMS04LjYtMy4xLTE3LjMtMTEuNi0xOS40cy0xNy4zIDMuMS0xOS40IDExLjZsLTI2IDEwNGMtMi45IDExLjctMTMuNCAxOS45LTI1LjUgMTkuOS0xNi41IDAtMjguOS0xNS0yNS44LTMxLjJMMzgzLjcgOTljMS43LTguNy00LTE3LjEtMTIuNy0xOC43UzM1NCA4NC4zIDM1Mi4zIDkzTDMyMC41IDI2MGMtMi4yIDExLjYtMTIuNCAyMC0yNC4yIDIwLTExIDAtMjAuNy03LjMtMjMuNy0xNy45TDIxNS40IDU5LjZ6Il19LHRkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJiZWxsLXNsYXNoIixpY29uOls1NzYsNTEyLFsxMjgyNzcsNjE5NDNdLCJmMWY2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg3LjgtODcuOGMxNy41LTMuMyAzMC44LTE4LjcgMzAuOC0zNy4xIDAtNi43LTEuOC0xMy4zLTUuMS0xOUw0ODUgMzIxLjdjLTE5LTMyLjYtMjktNjkuNi0yOS0xMDcuM2wwLTE0LjVjMC04NC42LTYyLjYtMTU0LjctMTQ0LTE2Ni4zbDAtOS43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOS43Yy00Mi4yIDYtNzkuNCAyNy44LTEwNS40IDU5LjFMNDEtMjQuOXpNMTkyLjggMTI2LjlDMjE0LjcgOTguNCAyNDkuMiA4MCAyODggODAgMzU0LjMgODAgNDA4IDEzMy43IDQwOCAyMDBsMCAxNC41YzAgNDYuMiAxMi4zIDkxLjUgMzUuNSAxMzEuNGwxMi45IDIyLjEtMjIuNiAwLTI0MS4xLTI0MS4xek0xMzIuNSAzNDUuOWMxOS41LTMzLjQgMzEuMy03MC43IDM0LjYtMTA5bC00Ni43LTQ2LjdjLS4yIDMuMy0uMyA2LjYtLjMgOS45bDAgMTQuNWMwIDM3LjctMTAgNzQuNy0yOSAxMDcuM0w2OS4xIDM1OS4yYy0zLjQgNS44LTUuMSAxMi4zLTUuMSAxOSAwIDIwLjkgMTYuOSAzNy44IDM3LjggMzcuOGwyNDQuNCAwLTQ4LTQ4LTE3OC42IDAgMTIuOS0yMi4xek0yMjAuMSA0NjRjOS45IDI4IDM2LjYgNDggNjcuOSA0OHM1OC0yMCA2Ny45LTQ4bC0xMzUuOCAweiJdfSxhZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3RhciIsaWNvbjpbNTc2LDUxMixbMTEwODgsNjE0NDZdLCJmMDA1IiwiTTI4OC4xLTMyYzkgMCAxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4ycy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXptMCA3Ni44TDIzMC4zIDE1OGMtMy41IDYuOC0xMCAxMS42LTE3LjYgMTIuOGwtMTI1LjUgMjAgODkuOCA4OS45YzUuNCA1LjQgNy45IDEzLjEgNi43IDIwLjdsLTE5LjggMTI1LjUgMTEzLjMtNTcuNmM2LjgtMy41IDE0LjktMy41IDIxLjggMGwxMTMuMyA1Ny42LTE5LjgtMTI1LjVjLTEuMi03LjYgMS4zLTE1LjMgNi43LTIwLjdsODkuOC04OS45LTEyNS41LTIwYy03LjYtMS4yLTE0LjEtNi0xNy42LTEyLjhMMjg4LjEgNDQuOHoiXX0scmR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZsYWciLGljb246WzQ0OCw1MTIsWzEyNzk4OCw2MTcyNV0sImYwMjQiLCJNNDggMjRDNDggMTAuNyAzNy4zIDAgMjQgMFMwIDEwLjcgMCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAwIDgwLjMtMjAuMWM0MS4xLTEwLjMgODQuNi01LjUgMTIyLjUgMTMuNCA0NC4yIDIyLjEgOTUuNSAyNC44IDE0MS43IDcuNGwzNC43LTEzYzEyLjUtNC43IDIwLjgtMTYuNiAyMC44LTMwbDAtMjc5LjdjMC0yMy0yNC4yLTM4LTQ0LjgtMjcuN2wtOS42IDQuOGMtNDYuMyAyMy4yLTEwMC44IDIzLjItMTQ3LjEgMC0zNS4xLTE3LjYtNzUuNC0yMi0xMTMuNS0xMi41TDQ4IDUyIDQ4IDI0em0wIDc3LjVsOTYuNi0yNC4yYzI3LTYuNyA1NS41LTMuNiA4MC40IDguOCA1NC45IDI3LjQgMTE4LjcgMjkuNyAxNzUgNi44bDAgMjQxLjgtMjQuNCA5LjFjLTMzLjcgMTIuNi03MS4yIDEwLjctMTAzLjQtNS40LTQ4LjItMjQuMS0xMDMuMy0zMC4xLTE1NS42LTE3LjFsLTY4LjYgMTcuMiAwLTIzN3oiXX0saWR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxlbW9uIixpY29uOls0NDgsNTEyLFsxMjc4MTldLCJmMDk0IiwiTTM2OCA4MGMtMy4yIDAtNi4yIC40LTguOSAxLjMtMTkuMSA1LjUtNDYuMSAxMC43LTc0LjMgMy4zLTU3LjQtMTQuOS0xMjQuNiA3LjQtMTc0LjcgNTcuNVMzNy43IDI1OS40IDUyLjYgMzE2LjhjNy4zIDI4LjIgMi4yIDU1LjItMy4zIDc0LjMtLjggMi44LTEuMyA1LjgtMS4zIDguOSAwIDE3LjcgMTQuMyAzMiAzMiAzMiAzLjIgMCA2LjItLjQgOC45LTEuMyAxOS4xLTUuNSA0Ni4xLTEwLjcgNzQuMy0zLjMgNTcuNCAxNC45IDEyNC42LTcuNCAxNzQuNy01Ny41czcyLjQtMTE3LjMgNTcuNS0xNzQuN2MtNy4zLTI4LjItMi4yLTU1LjIgMy4zLTc0LjMgLjgtMi44IDEuMy01LjggMS4zLTguOSAwLTE3LjctMTQuMy0zMi0zMi0zMnptMC00OGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDcuNy0xLjEgMTUuMi0zLjEgMjIuMy00LjYgMTUuOC03LjEgMzIuOS0zIDQ4LjkgMjAuMSA3Ny42LTEwLjkgMTYxLjUtNzAgMjIwLjdzLTE0My4xIDkwLjItMjIwLjcgNzBjLTE2LTQuMS0zMy0xLjYtNDguOSAzLTcuMSAyLTE0LjYgMy4xLTIyLjMgMy4xLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtNy43IDEuMS0xNS4yIDMuMS0yMi4zIDQuNi0xNS44IDcuMS0zMi45IDMtNDguOS0yMC4xLTc3LjYgMTAuOS0xNjEuNSA3MC0yMjAuN1MyMTkuMyAxOCAyOTYuOCAzOC4xYzE2IDQuMSAzMyAxLjYgNDguOS0zIDcuMS0yIDE0LjYtMy4xIDIyLjMtMy4xek0yNDYuNyAxNjdjLTUyIDE1LjItOTYuNSA1OS43LTExMS43IDExMS43LTMuNyAxMi43LTE3LjEgMjAtMjkuOCAxNi4zUzg1LjIgMjc4IDg5IDI2NS4zYzE5LjgtNjcuNyA3Ni42LTEyNC41IDE0NC4zLTE0NC4zIDEyLjctMy43IDI2LjEgMy42IDI5LjggMTYuM3MtMy42IDI2LjEtMTYuMyAyOS44eiJdfSxvZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToid2luZG93LXJlc3RvcmUiLGljb246WzU3Niw1MTIsW10sImYyZDIiLCJNNTEyIDgwTDIyNCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYtNDggMCAwLTE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OCAwIDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xOTJjMC04LjgtNy4yLTE2LTE2LTE2ek0zNjggMjg4bC0zMjAgMCAwIDEyOGMwIDguOCA3LjIgMTYgMTYgMTZsMjg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4ek02NCAxNjBsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0seGFlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1oZWFydHMiLGljb246WzUxMiw1MTIsWzEyODUyNSwiZ3Jpbi1oZWFydHMiXSwiZjU4NCIsIk00NjQgMjU2YzAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFM0OCAzNzAuOSA0OCAyNTZjMC0zLjUgLjEtNy4xIC4zLTEwLjYtMTQtMTMuOS0yOS43LTMzLjEtMzkuMy01Ni43LTUuOCAyMS40LTguOSA0NC04LjkgNjcuMyAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2UzUxMiAzOTcuNCA1MTIgMjU2YzAtMjMuMy0zLjEtNDUuOS04LjktNjcuMy05LjYgMjMuNy0yNS40IDQyLjgtMzkuMyA1Ni43IC4yIDMuNSAuMyA3IC4zIDEwLjZ6TTM2OCA1OC45YzExLjctNiAyNC41LTkuNiAzNy43LTEwLjYtNDIuMS0zMC40LTkzLjgtNDguMy0xNDkuNy00OC4zUzE0OC40IDE3LjkgMTA2LjMgNDguM2MxMy4yIDEgMjYgNC42IDM3LjcgMTAuNiAxMy44LTcuMSAyOS4zLTEwLjkgNDUuMS0xMC45bDIuOSAwYzguOSAwIDE3LjYgMS4yIDI1LjggMy41IDEyLjQtMi4zIDI1LjItMy41IDM4LjItMy41czI1LjggMS4yIDM4LjIgMy41YzguMi0yLjMgMTYuOS0zLjUgMjUuOC0zLjVsMi45IDBjMTUuOCAwIDMxLjMgMy44IDQ1LjEgMTAuOXptNC4yIDI0My40Yy0zNC44IDEwLjYtNzQuMyAxNi42LTExNi4zIDE2LjYtNDEuOSAwLTgxLjQtNi0xMTYuMS0xNi41LTExLjgtMy42LTIzLjcgNi4xLTE5LjYgMTcuOCAxOS44IDU1LjkgNzMuMSA5NS45IDEzNS44IDk1LjkgNjIuNyAwIDExNi00MC4xIDEzNS44LTk2IDQuMS0xMS42LTcuOC0yMS40LTE5LjYtMTcuOHpNMzIyLjkgOTZMMzIwIDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDUzLjQgNjYuOSA5NS43IDg5IDEwOC4yIDQuNCAyLjUgOS42IDIuNSAxNCAwIDIyLjEtMTIuNSA4OS01NC44IDg5LTEwOC4yIDAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yLjkgMGMtMTMuNSAwLTI2LjUgNS40LTM2IDE0LjlsLTkuMSA5LjEtOS4xLTkuMWMtOS41LTkuNS0yMi41LTE0LjktMzYtMTQuOXptLTE4OCAxNC45Yy05LjUtOS41LTIyLjUtMTQuOS0zNi0xNC45TDk2IDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDUzLjQgNjYuOSA5NS43IDg5IDEwOC4yIDQuNCAyLjUgOS42IDIuNSAxNCAwIDIyLjEtMTIuNSA4OS01NC44IDg5LTEwOC4yIDAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yLjkgMGMtMTMuNSAwLTI2LjUgNS40LTM2IDE0LjlsLTkuMSA5LjEtOS4xLTkuMXoiXX0sc2R0PXhhZSxiYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUzNywia2lzcy1iZWFtIl0sImY1OTciLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNDAgMTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTY0LTkyYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sbmR0PWJhZSxsZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1wZGYiLGljb246WzU3Niw1MTIsW10sImYxYzEiLCJNMjA4IDQ4TDk2IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDgwIDAgMCA0OC04MCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDIyOS41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzk3LjMgMTQxLjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM2wwIDE0OS41LTQ4IDAgMC0xMjgtODggMGMtMzkuOCAwLTcyLTMyLjItNzItNzJsMC04OHpNMzQ4LjEgMTYwTDI1NiA2Ny45IDI1NiAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjguMSAwek0yNDAgMzgwbDMyIDBjMzMuMSAwIDYwIDI2LjkgNjAgNjBzLTI2LjkgNjAtNjAgNjBsLTEyIDAgMCAyOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjhjMC0xMSA5LTIwIDIwLTIwem0zMiA4MGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTEyIDAgMCA0MCAxMiAwem05Ni04MGwzMiAwYzI4LjcgMCA1MiAyMy4zIDUyIDUybDAgNjRjMCAyOC43LTIzLjMgNTItNTIgNTJsLTMyIDBjLTExIDAtMjAtOS0yMC0yMGwwLTEyOGMwLTExIDktMjAgMjAtMjB6bTMyIDEyOGM2LjYgMCAxMi01LjQgMTItMTJsMC02NGMwLTYuNi01LjQtMTItMTItMTJsLTEyIDAgMCA4OCAxMiAwem03Ni0xMDhjMC0xMSA5LTIwIDIwLTIwbDQ4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC0yOCAwIDAgMjQgMjggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTI4IDAgMCA0NGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjh6Il19LHZhZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4td2lkZSIsaWNvbjpbNTEyLDUxMixbMTI4NTE1LCJncmluLWFsdCJdLCJmNTgxIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMjI0IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NCAxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjR6bTk2IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHoiXX0sY2R0PXZhZSx5YWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaC1zcXVpbnQiLGljb246WzUxMiw1MTIsWyJsYXVnaC1zcXVpbnQiXSwiZjU5YiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTEyNS4yIDc2LjRjLTYuNS0xNCA1LTI4LjQgMjAuNC0yOC40bDIyMC44IDBjMTUuNCAwIDI2LjggMTQuNCAyMC40IDI4LjQtMjIuOCA0OS40LTcyLjggODMuNi0xMzAuOCA4My42cy0xMDcuOS0zNC4yLTEzMC44LTgzLjZ6bS0yLjYtMTczLjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sZGR0PXlhZSx3YWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLXdpbmstaGVhcnQiLGljb246WzY0MCw1MTIsWzEyODUzNiwia2lzcy13aW5rLWhlYXJ0Il0sImY1OTgiLCJNMzg2IDQzOS41Yy0yOS4yIDE1LjYtNjIuNSAyNC41LTk4IDI0LjUtMTE0LjkgMC0yMDgtOTMuMS0yMDgtMjA4UzE3My4yIDQ4IDI4OCA0OGMxMTMuMiAwIDIwNS4yIDkwLjQgMjA3LjkgMjAyLjkgMTQuMyAxLjUgMjguNiA2IDQxLjkgMTMuNyAyIDEuMiA0IDIuNCA1LjkgMy43IC4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy01LjgtMTIuOS0xMi0yOC41LTE3LjItNDUuMnpNMjU2IDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC0xMi4zLTQuNi0yMy41LTEyLjItMzIgNy42LTguNSAxMi4yLTE5LjcgMTIuMi0zMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0tNDgtNDhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNTItNDRsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwek01NDIuOCAzNTBjLTIuMi0xOC4zLTEyLjktMzQuNi0yOC45LTQzLjgtMjguMS0xNi4yLTYzLjktNi42LTgwLjEgMjEuNWwtMi43IDQuNmMtMjQuNSA0Mi41IDcuOSAxMTcuOSAyNC40IDE1MC44IDUuMSAxMC4xIDE1LjUgMTYuMSAyNi44IDE1LjUgMzYuNy0yLjIgMTE4LjItMTEuNyAxNDIuOC01NC4ybDIuNy00LjZjMTYuMi0yOC4xIDYuNi02My45LTIxLjUtODAuMS0xNi05LjItMzUuNC0xMC40LTUyLjQtMy4xbC05LjggNC4yLTEuMy0xMC42eiJdfSxmZHQ9d2FlLExWPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvcHkiLGljb246WzQ0OCw1MTIsW10sImYwYzUiLCJNMzg0IDMzNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTMzLjUgMGM0LjIgMCA4LjMgMS43IDExLjMgNC43bDU4LjUgNTguNWMzIDMgNC43IDcuMSA0LjcgMTEuM0w0MDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNnpNMTkyIDM4NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDM3MC43IDE4LjdDMzU4LjcgNi43IDM0Mi41IDAgMzI1LjUgMEwxOTIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNi00OCAwIDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwIDAtNDgtMTYgMHoiXX0sdWR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLWtpbmciLGljb246WzQ0OCw1MTIsWzk4MThdLCJmNDNmIiwiTTIyNC0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDAgMCA4MCAxNjEuOCAwYzIxLjEgMCAzOC4yIDE3LjEgMzguMiAzOC4yIDAgNi40LTEuNiAxMi43LTQuNyAxOC4zTDM1Ny4yIDM3NC41IDQwNS42IDQzNWM2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjYgMCAyNi4yLTIxLjIgNDcuNC00Ny40IDQ3LjRMNzkuNCA1MTJjLTI2LjIgMC00Ny40LTIxLjItNDcuNC00Ny40IDAtMTAuOCAzLjctMjEuMiAxMC40LTI5LjZMOTAuOCAzNzQuNSA0LjcgMjE2LjZDMS42IDIxMC45IDAgMjA0LjYgMCAxOTguMiAwIDE3Ny4xIDE3LjEgMTYwIDM4LjIgMTYwbDE2MS44IDAgMC04MC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTMxLjggNDAwbC0zLjYgNC40LTQ3LjYgNTkuNiAyODYuNiAwLTQ3LjYtNTkuNi0zLjYtNC40LTE4NC4zIDB6bTEuMS00OC41bC4zIC41IDE4MS42IDAgLjMtLjUgNzguMy0xNDMuNS0zMzguNyAwIDc4LjMgMTQzLjV6Il19LE1hZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtcGx1cyIsaWNvbjpbNDQ4LDUxMixbNjE4NDYsInBsdXMtc3F1YXJlIl0sImYwZmUiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTIwMCAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSxwZHQ9TWFlLGhkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLWNvZGUiLGljb246WzM4NCw1MTIsW10sImYxYzkiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNMTcwLjIgMjk1LjZjOC42LTEwLjEgNy41LTI1LjItMi42LTMzLjhzLTI1LjItNy41LTMzLjggMi42bC00OCA1NmMtNy43IDktNy43IDIyLjIgMCAzMS4ybDQ4IDU2YzguNiAxMC4xIDIzLjggMTEuMiAzMy44IDIuNnMxMS4yLTIzLjggMi42LTMzLjhsLTM0LjYtNDAuNCAzNC42LTQwLjR6bTgwLTMxLjJjLTguNi0xMC4xLTIzLjgtMTEuMi0zMy44LTIuNnMtMTEuMiAyMy44LTIuNiAzMy44bDM0LjYgNDAuNC0zNC42IDQwLjRjLTguNiAxMC4xLTcuNSAyNS4yIDIuNiAzMy44czI1LjIgNy41IDMzLjgtMi42bDQ4LTU2YzcuNy05IDcuNy0yMi4yIDAtMzEuMmwtNDgtNTZ6Il19LHphZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4td2luayIsaWNvbjpbNTEyLDUxMixbImdyaW4td2luayJdLCJmNThjIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxtZHQ9emFlLGthZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtb25leS1iaWxsLTEiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLWFsdCJdLCJmM2QxIiwiTTExMiAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCAxNjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMjg4IDBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMC0xNjBjLTM1LjMgMC02NC0yOC43LTY0LTY0bC0yODggMHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMjU2IDE2YTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHptLTE2IDQ0Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSxnZHQ9a2FlLHhkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJleWUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImYwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNC05Ni40YzIuNy0yLjQgNS40LTQuOCA4LTcuMiA0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNi01Ni44IDAtMTA1LjYgMTguMi0xNDYgNDQuMkw0MS0yNC45ek0xNzYuOSAxMTEuMWMzMi4xLTE4LjkgNjkuMi0zMS4xIDExMS4xLTMxLjEgNjUuMiAwIDExOC44IDI5LjYgMTU5LjkgNjcuNyAzOC41IDM1LjcgNjUuMSA3OC4zIDc4LjYgMTA4LjMtMTMuNiAzMC00MC4yIDcyLjUtNzguNiAxMDguMy0zLjEgMi44LTYuMiA1LjYtOS40IDguNEwzOTMuOCAzMjhjMTQtMjAuNSAyMi4yLTQ1LjMgMjIuMi03MiAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOC0yNi43IDAtNTEuNSA4LjItNzIgMjIuMmwtMzkuMS0zOS4xem0xODIgMTgybC0xMDgtMTA4YzExLjEtNS44IDIzLjctOS4xIDM3LjEtOS4xIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMTMuNC0zLjMgMjYtOS4xIDM3LjF6TTEwMy40IDE3My4ybC0zNC0zNGMtMzIuNiAzNi44LTU1IDc1LjgtNjYuOSAxMDQuNS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjYgMzcuMyAwIDcxLjItNy45IDEwMS41LTIwLjZMMzUyLjIgNDIyYy0yMCA2LjQtNDEuNCAxMC02NC4yIDEwLTY1LjIgMC0xMTguOC0yOS42LTE1OS45LTY3LjctMzguNS0zNS43LTY1LjEtNzguMy03OC42LTEwOC4zIDEwLjQtMjMuMSAyOC42LTUzLjYgNTQtODIuOHoiXX0sYmR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtd29yZCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMiIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem03MS4zIDI3NC4yYy0zLjItMTIuOS0xNi4yLTIwLjctMjkuMS0xNy41Uzg1LjUgMjczIDg4LjcgMjg1LjhsMzIgMTI4YzIuNSAxMC4yIDExLjQgMTcuNSAyMS45IDE4LjFzMjAuMS01LjcgMjMuOC0xNS41bDI1LjUtNjguMSAyNS41IDY4LjFjMy43IDkuOCAxMy4zIDE2LjEgMjMuOCAxNS41czE5LjQtNy45IDIxLjktMTguMWwzMi0xMjhjMy4yLTEyLjktNC42LTI1LjktMTcuNS0yOS4xcy0yNS45IDQuNi0yOS4xIDE3LjVsLTEzLjMgNTMuMi0yMC45LTU1LjhDMjExIDI2Mi4yIDIwMiAyNTYgMTkyIDI1NnMtMTkgNi4yLTIyLjUgMTUuNmwtMjAuOSA1NS44LTEzLjMtNTMuMnoiXX0sU2FlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtYW5ncnkiLGljb246WzUxMiw1MTIsWzEyODU0NCwiYW5ncnkiXSwiZjU1NiIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMTQ0YzI0LjEgMCA0NS40IDExLjggNTguNSAzMCA3LjcgMTAuOCAyMi43IDEzLjIgMzMuNSA1LjVzMTMuMi0yMi43IDUuNS0zMy41Yy0yMS43LTMwLjItNTcuMy01MC05Ny41LTUwcy03NS43IDE5LjgtOTcuNSA1MGMtNy43IDEwLjgtNS4zIDI1LjggNS41IDMzLjVzMjUuOCA1LjMgMzMuNS01LjVjMTMuMS0xOC4yIDM0LjQtMzAgNTguNS0zMHptLTgwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtLjMgOS43IDMuMmMxMC41IDMuNSAyMS44LTIuMiAyNS4zLTEyLjZzLTIuMi0yMS44LTEyLjYtMjUuM2wtOTYtMzJjLTEwLjUtMy41LTIxLjggMi4yLTI1LjMgMTIuNnMyLjIgMjEuOCAxMi42IDI1LjNsMjguOSA5LjZjLTQuMSA1LjQtNi42IDEyLjEtNi42IDE5LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE5Mi0zMmMwLTcuMy0yLjQtMTQtNi42LTE5LjRsMjguOS05LjZjMTAuNS0zLjUgMTYuMS0xNC44IDEyLjYtMjUuM3MtMTQuOC0xNi4xLTI1LjMtMTIuNmwtOTYgMzJjLTEwLjUgMy41LTE2LjEgMTQuOC0xMi42IDI1LjNzMTQuOCAxNi4xIDI1LjMgMTIuNmw5LjctMy4yIDAgLjNjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnoiXX0sdmR0PVNhZSx5ZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3Mta25pZ2h0IixpY29uOls0NDgsNTEyLFs5ODIyXSwiZjQ0MSIsIk0yMzItMzJjMTEwLjUgMCAyMDAgODkuNSAyMDAgMjAwbDAgMTI3LjdjMCAxOC45LTYuMSAzNy4xLTE3LjIgNTIuMmwtNS4xIDYuMi0zNi4zIDQwLjcgMzIuMSA0MC4yYzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNmwtLjIgNC44Yy0yLjQgMjMuOS0yMi42IDQyLjUtNDcuMSA0Mi41bC0yODkuMiAwLTQuOC0uMmMtMjMuOS0yLjQtNDIuNS0yMi42LTQyLjUtNDcuMSAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42bDM3LjYtNDcgMC0yNC4zYzAtMjQuMyAxMC4xLTQ3LjYgMjcuOC02NC4ybDYzLjUtNTkuNS0xNy40IDAtLjIgLjJjLTIwLjMgMjAuMy00OS42IDI4LjItNzcuMSAyMS4xbC01LjUtMS42Yy0zMC45LTEwLjMtNTIuMy0zOC01NC45LTcwLjFsLS4yLTYuNCAwLTEuNGMwLTE5LjcgNy4xLTM4LjggMTkuOS01My44bDc2LjEtODguOCAwLTQ3LjEgLjEtMi41QzExMy40LTIyLjYgMTIzLjYtMzIgMTM2LTMybDk2IDB6TTgwLjcgNDY0bDI4Ni42IDAtMzguNC00OC0yMDkuOSAwLTM4LjQgNDh6TTE2MCA0OGMwIDUuNy0yLjEgMTEuMy01LjggMTUuNkw3Mi4zIDE1OS4xQzY3IDE2NS40IDY0IDE3My40IDY0IDE4MS43bDAgMS40IC40IDUuMmMxLjkgMTEuOSAxMC4zIDIxLjkgMjEuOSAyNS44bDQuNSAxLjFjMTAuNSAxLjkgMjEuMy0xLjQgMjktOWw3LjItNy4yIDMuNy0zYzMuOS0yLjYgOC41LTQgMTMuMy00bDg4IDBjOS44IDAgMTguNyA2IDIyLjMgMTUuMnMxLjMgMTkuNi01LjkgMjYuM2wtMTA3LjggMTAxYy04LjEgNy42LTEyLjcgMTguMS0xMi43IDI5LjJsMCA0LjMgMjA1LjIgMCA0MC43LTQ1LjggMi4zLTIuOGM1LjEtNi44IDcuOC0xNS4yIDcuOC0yMy43TDM4NCAxNjhjMC04My45LTY4LjEtMTUyLTE1Mi0xNTJsLTcyIDAgMCAzMnptMzIgNzJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4eiJdfSxDYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxNiwiZ3Jpbi1iZWFtIl0sImY1ODIiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sd2R0PUNhZSxNZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wZWFjZSIsaWNvbjpbNDQ4LDUxMixbOTk5Nl0sImYyNWIiLCJNMjE5IDEuNGMtMzUuMi0zLjctNjYuNiAyMS44LTcwLjMgNTdsLTYuNCA2MC42LTE3LjQtNDkuNEMxMTMuMiAzNi4zIDc2LjYgMTguOCA0My4zIDMwLjVTLTcuNiA3OC44IDQuMSAxMTIuMUw1Ni45IDI2Mi4yQzQxLjcgMjc2LjcgMzIuMiAyOTcuMyAzMi4yIDMyMGwwIDI0YzAgOTIuOCA3NS4yIDE2OCAxNjggMTY4bDQ4IDBjOTIuOCAwIDE2OC03NS4yIDE2OC0xNjhsMC0xMjBjMC0zNS4zLTI4LjctNjQtNjQtNjQtNy45IDAtMTUuNCAxLjQtMjIuNCA0LTEwLjQtMjEuMy0zMi4zLTM2LTU3LjYtMzYtLjcgMC0xLjUgMC0yLjIgMGw1LjktNTYuM2MzLjctMzUuMi0yMS44LTY2LjYtNTctNzAuM3ptLS4yIDE1NS40Yy02LjYgMTAuMS0xMC41IDIyLjItMTAuNSAzNS4ybDAgNDhjMCAuNyAwIDEuNCAwIDItNS4xLTEuMy0xMC41LTItMTYtMmwtNy40IDAtNS40LTE1LjMgMTctMTYxLjNjLjktOC44IDguOC0xNS4yIDE3LjYtMTQuMnMxNS4yIDguOCAxNC4yIDE3LjZsLTkuNSA5MC4xek03OS42IDg1LjZsNTQuMyAxNTQuNC0yMS43IDBjLTQgMC04IC4zLTExLjkgLjlMNDkuNCA5Ni4yYy0yLjktOC4zIDEuNS0xNy41IDkuOC0yMC40czE3LjUgMS41IDIwLjQgOS44ek0yNTYuMiAxOTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDh6bTM4LjQgMTA4YzEwLjQgMjEuMyAzMi4zIDM2IDU3LjYgMzYgNS41IDAgMTAuOS0uNyAxNi0ybDAgMTBjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTQ4IDBjLTY2LjMgMC0xMjAtNTMuNy0xMjAtMTIwbDAtMjRjMC0xNy43IDE0LjMtMzIgMzItMzJsODAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0IDAtLjcgMC0xLjQgMC0yIDUuMSAxLjMgMTAuNSAyIDE2IDIgNy45IDAgMTUuNC0xLjQgMjIuNC00em03My42LTI4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4eiJdfSx6ZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29tcGFzcyIsaWNvbjpbNTEyLDUxMixbMTI5NTE3XSwiZjE0ZSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTMwNi43IDY5LjFMMTYyLjQgMzgwLjZjLTE5LjQgNy41LTM4LjUtMTEuNi0zMS0zMWw1NS41LTE0NC4zYzMuMy04LjUgOS45LTE1LjEgMTguNC0xOC40bDE0NC4zLTU1LjVjMTkuNC03LjUgMzguNSAxMS42IDMxIDMxTDMyNS4xIDMwNi43Yy0zLjMgOC41LTkuOSAxNS4xLTE4LjQgMTguNHpNMjg4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxrZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlIixpY29uOls0NDgsNTEyLFs5NjMyLDk3MjMsOTcyNCw2MTU5MF0sImYwYzgiLCJNMzg0IDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyMGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDMyMCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxMYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluIixpY29uOls1MTIsNTEyLFsxMjg1MTIsImdyaW4iXSwiZjU4MCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sU2R0PUxhZSxUYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZSIsaWNvbjpbNTEyLDUxMixbMTI4NTc4LCJzbWlsZSJdLCJmMTE4IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc3LjMgNjMuNEMxOTIuMyAzMzUgMjE4LjQgMzUyIDI1NiAzNTJzNjMuNy0xNyA3OC43LTMyLjZjOS4yLTkuNiAyNC40LTkuOSAzMy45LS43czkuOSAyNC40IC43IDMzLjljLTIyLjEgMjMtNjAgNDcuNC0xMTMuMyA0Ny40cy05MS4yLTI0LjQtMTEzLjMtNDcuNGMtOS4yLTkuNi04LjktMjQuOCAuNy0zMy45czI0LjgtOC45IDMzLjkgLjd6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sQ2R0PVRhZSxfYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZS1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MjIsInNtaWxlLWJlYW0iXSwiZjViOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sTGR0PV9hZSxUZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9sZGVyLWNsb3NlZCIsaWNvbjpbNTEyLDUxMixbXSwiZTE4NSIsIk00NDggNDAwTDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTQ0IDQxNiAwIDAgMTQ0YzAgOC44LTcuMiAxNi0xNiAxNnptMTYtMjA4bC00MTYgMCAwLTk2YzAtOC44IDcuMi0xNiAxNi0xNmwxMzguNyAwYzMuNSAwIDYuOCAxLjEgOS42IDMuMkwyNTAuNyAxMTJjMTMuOCAxMC40IDMwLjcgMTYgNDggMTZMNDQ4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OHpNNjQgNDQ4bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjQwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDI5OC43IDgwYy02LjkgMC0xMy43LTIuMi0xOS4yLTYuNEwyNDEuMSA0NC44QzIzMCAzNi41IDIxNi41IDMyIDIwMi43IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjR6Il19LF9kdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJrZXlib2FyZCIsaWNvbjpbNTc2LDUxMixbOWUzXSwiZjExYyIsIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTE3NiAzMjBsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em0tNzItNzJjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sQWFlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utcm9sbGluZy1leWVzIixpY29uOls1MTIsNTEyLFsxMjg1ODAsIm1laC1yb2xsaW5nLWV5ZXMiXSwiZjVhNSIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAzNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMTYwIDI2NGMtMjIuMSAwLTQwLTE3LjktNDAtNDAgMC05LjUgMy4zLTE4LjEgOC44LTI1IDMuMiAxNC4zIDE2IDI1IDMxLjIgMjVzMjgtMTAuNyAzMS4yLTI1YzUuNSA2LjggOC44IDE1LjUgOC44IDI1IDAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDQwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xOTItNDBjLTIyLjEgMC00MC0xNy45LTQwLTQwIDAtOS41IDMuMy0xOC4xIDguOC0yNSAzLjIgMTQuMyAxNiAyNSAzMS4yIDI1czI4LTEwLjcgMzEuMi0yNWM1LjUgNi44IDguOCAxNS41IDguOCAyNSAwIDIyLjEtMTcuOSA0MC00MCA0MHptMCA0MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sQWR0PUFhZSwkYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmltYWNlIixpY29uOls1MTIsNTEyLFsxMjg1NTYsImdyaW1hY2UiXSwiZjU3ZiIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2ek01MTIgMjU2YTI1NiAyNTYgMCAxIDEgLTUxMiAwIDI1NiAyNTYgMCAxIDEgNTEyIDB6TTE1MiAzNTJjMCAxMS45IDguNiAyMS44IDIwIDIzLjdsMC00Ny4zYy0xMS40IDEuOS0yMCAxMS44LTIwIDIzLjd6bTg0IDI0bDAtNDgtMjQgMCAwIDQ4IDI0IDB6bTY0IDBsMC00OC0yNCAwIDAgNDggMjQgMHptNDAtLjNjMTEuNC0xLjkgMjAtMTEuOCAyMC0yMy43cy04LjYtMjEuOC0yMC0yMy43bDAgNDcuM3pNMTc2IDI4OGwxNjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTYwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjR6bTAtMTEyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LCRkdD0kYWUsRGFlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1kb3QiLGljb246WzUxMiw1MTIsWzEyODI4MCwiZG90LWNpcmNsZSJdLCJmMTkyIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTQ2NGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6bTAgMzA0YTk2IDk2IDAgMSAxIDAtMTkyIDk2IDk2IDAgMSAxIDAgMTkyeiJdfSxEZHQ9RGFlLEVkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJvYmplY3QtZ3JvdXAiLGljb246WzU3Niw1MTIsW10sImYyNDciLCJNNDAgNjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDggNTkuM2MxNi02LjUgMjguOS0xOS4zIDM1LjMtMzUuM2wzMjkuMyAwYzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMjY1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0zMjkuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTI2NS4zek01MTIgMGMtMjYuOSAwLTQ5LjkgMTYuNS01OS4zIDQwTDEyMy4zIDQwQzExMy45IDE2LjUgOTAuOSAwIDY0IDAgMjguNyAwIDAgMjguNyAwIDY0IDAgOTAuOSAxNi41IDExMy45IDQwIDEyMy4zbDAgMjY1LjNjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBsMzI5LjMgMGM5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDAgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjY1LjNjMjMuNS05LjUgNDAtMzIuNSA0MC01OS4zIDAtMzUuMy0yOC43LTY0LTY0LTY0ek00ODggNjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNjQgNDI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDI0IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTE5MiAxNzZsODggMCAwIDU2LTg4IDAgMC01NnptLTgtNDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTA0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTA0IDB6bTcyIDE4NGwwIDI0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTI0IDBjMCAxNC42LTMuOSAyOC4yLTEwLjcgNDBsMjYuNyAwIDAgNTYtODggMCAwLTE2LjRjLTIuNiAuMy01LjMgLjQtOCAuNGwtMzIgMHoiXX0sRWFlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZmx1c2hlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTYzLCJmbHVzaGVkIl0sImY1NzkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE2MCAyNDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yMTYtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTkyIDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDB6TTE2MCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0wIDEyOGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTQ0LTgwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCAwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHoiXX0sTmR0PUVhZSxOYWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3Rhci1oYWxmLXN0cm9rZSIsaWNvbjpbNTc2LDUxMixbInN0YXItaGFsZi1hbHQiXSwiZjVjMCIsIk0zMDkuNS0xOC45Yy00LjEtOC0xMi40LTEzLjEtMjEuNC0xMy4xcy0xNy4zIDUuMS0yMS40IDEzLjFMMTkzLjEgMTI1LjMgMzMuMiAxNTAuN2MtOC45IDEuNC0xNi4zIDcuNy0xOS4xIDE2LjNzLS41IDE4IDUuOCAyNC40bDExNC40IDExNC41LTI1LjIgMTU5LjljLTEuNCA4LjkgMi4zIDE3LjkgOS42IDIzLjJzMTYuOSA2LjEgMjUgMkwyODguMSA0MTcuNiA0MzIuNCA0OTFjOCA0LjEgMTcuNyAzLjMgMjUtMnMxMS0xNC4yIDkuNi0yMy4yTDQ0MS43IDMwNS45IDU1Ni4xIDE5MS40YzYuNC02LjQgOC42LTE1LjggNS44LTI0LjRzLTEwLjEtMTQuOS0xOS4xLTE2LjNMMzgzIDEyNS4zIDMwOS41LTE4Ljl6TTI2NC4xIDkxLjhsMCAyODQuMS0xMDAuMSA1MC45IDE5LjgtMTI1LjVjMS4yLTcuNi0xLjMtMTUuMy02LjctMjAuN2wtODkuOC04OS45IDEyNS41LTIwYzcuNi0xLjIgMTQuMS02IDE3LjYtMTIuOGwzMy44LTY2LjJ6bTQ4IDI4NC4xbDAtMjg0LjEgMzMuOCA2Ni4yYzMuNSA2LjggMTAgMTEuNiAxNy42IDEyLjhsMTI1LjUgMjAtODkuOCA4OS45Yy01LjQgNS40LTcuOSAxMy4xLTYuNyAyMC43bDE5LjggMTI1LjUtMTAwLjEtNTAuOXoiXX0sUGR0PU5hZSxJZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS12aWRlbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjOCIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek04MCAyODhsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjQgMzUgMzVjMy4yIDMuMiA3LjUgNSAxMiA1IDkuNCAwIDE3LTcuNiAxNy0xN2wwLTk0LjFjMC05LjQtNy42LTE3LTE3LTE3LTQuNSAwLTguOCAxLjgtMTIgNWwtMzUgMzUgMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LFBhZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWxhdWdoIixpY29uOls1MTIsNTEyLFsibGF1Z2giXSwiZjU5OSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxGZHQ9UGFlLE9kdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBvaW50ZXIiLGljb246WzQ0OCw1MTIsW10sImYyNWEiLCJNMTYwIDY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxMzZjMCAxMC4zIDYuNiAxOS41IDE2LjQgMjIuOHMyMC42LS4xIDI2LjgtOC4zYzMtMy45IDcuNi02LjQgMTIuOC02LjQgOC44IDAgMTYgNy4yIDE2IDE2IDAgMTAuMyA2LjYgMTkuNSAxNi40IDIyLjhzMjAuNi0uMSAyNi44LTguM2MzLTMuOSA3LjYtNi40IDEyLjgtNi40IDcuOCAwIDE0LjMgNS42IDE1LjcgMTMgMS42IDguMiA3LjMgMTUuMSAxNS4xIDE4czE2LjcgMS42IDIzLjMtMy42YzIuNy0yLjEgNi4xLTMuNCA5LjktMy40IDguOCAwIDE2IDcuMiAxNiAxNmwwIDEyMGMwIDM5LjgtMzIuMiA3Mi03MiA3MmwtMTE2LjYgMGMtMzcuNCAwLTcyLjQtMTguNy05My4yLTQ5LjlMNTAuNyAzMTIuOWMtNC45LTcuNC0yLjktMTcuMyA0LjQtMjIuMnMxNy4zLTIuOSAyMi4yIDQuNEwxMTYgMzUzLjJjNS45IDguOCAxNi44IDEyLjcgMjYuOSA5LjdzMTctMTIuNCAxNy0yM0wxNjAgNjR6TTE3NiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDE5Ny43QzkxLjIgMjM4IDU1LjUgMjMyLjggMjguNSAyNTAuNy0uOSAyNzAuNC04LjkgMzEwLjEgMTAuOCAzMzkuNUw3OC4zIDQ0MC44YzI5LjcgNDQuNSA3OS42IDcxLjIgMTMzLjEgNzEuMkwzMjggNTEyYzY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbDAtMTIwYzAtMzUuMy0yOC43LTY0LTY0LTY0LTQuNSAwLTguOCAuNS0xMyAxLjMtMTEuNy0xNS40LTMwLjItMjUuMy01MS0yNS4zLTYuOSAwLTEzLjUgMS4xLTE5LjcgMy4xLTExLjYtMTYuNC0zMC43LTI3LjEtNTIuMy0yNy4xLTIuNyAwLTUuNCAuMi04IC41TDI0MCA2NGMwLTM1LjMtMjguNy02NC02NC02NHptNDggMzA0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2em00OC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNnptODAgMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6Il19LEJkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWdpc3RlcmVkIixpY29uOls1MTIsNTEyLFsxNzRdLCJmMjVkIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTU2IDM0LjQgMCA0MSA2OC4zYzYuOCAxMS40IDIxLjYgMTUgMzIuOSA4LjJzMTUtMjEuNiA4LjItMzIuOWwtMzAuMi01MC4zYzI0LjYtMTEuNSA0MS42LTM2LjQgNDEuNi02NS4zIDAtMzkuOC0zMi4yLTcyLTcyLTcybC04MCAwem03MiA5NmwtNDggMCAwLTQ4IDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMHoiXX0saG8xPXtmYVNxdWFyZU1pbnVzOmgyZSxmYU1pbnVzU3F1YXJlOk02dCxmYUNhbGVuZGFyQ2hlY2s6ejZ0LGZhRmFjZUtpc3M6bTJlLGZhS2lzczprNnQsZmFQYXN0ZTpYZCxmYUZpbGVDbGlwYm9hcmQ6UzZ0LGZhSGFuZFBvaW50TGVmdDpDNnQsZmFGaWxlRXhjZWw6TDZ0LGZhRW52ZWxvcGU6VDZ0LGZhU3F1YXJlQ2FyZXREb3duOmcyZSxmYUNhcmV0U3F1YXJlRG93bjpfNnQsZmFUcnVjazpBNnQsZmFCZWxsOiQ2dCxmYU1lc3NhZ2U6UWQsZmFDb21tZW50QWx0OkQ2dCxmYUZhY2VEaXp6eTp4MmUsZmFEaXp6eTpFNnQsZmFDYWxlbmRhckRheXM6YjJlLGZhQ2FsZW5kYXJBbHQ6TjZ0LGZhSGFuZFBvaW50VXA6UDZ0LGZhSGFuZExpemFyZDpJNnQsZmFTcXVhcmVGdWxsOkY2dCxmYUNpcmNsZVBhdXNlOnYyZSxmYVBhdXNlQ2lyY2xlOk82dCxmYUhhcmREcml2ZTp5MmUsZmFIZGQ6QjZ0LGZhRmlsZVppcHBlcjp3MmUsZmFGaWxlQXJjaGl2ZTpSNnQsZmFGbG9wcHlEaXNrOk0yZSxmYVNhdmU6SDZ0LGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQ6ejJlLGZhR3JpblRvbmd1ZVNxdWludDpxNnQsZmFDYW1lcmE6azJlLGZhQ2FtZXJhQWx0OlY2dCxmYUZhY2VHcmluU3RhcnM6UzJlLGZhR3JpblN0YXJzOlU2dCxmYUV5ZTpqNnQsZmFGYWNlU2FkVGVhcjpDMmUsZmFTYWRUZWFyOlc2dCxmYVNoYXJlRnJvbVNxdWFyZTpMMmUsZmFTaGFyZVNxdWFyZTpHNnQsZmFOb3RlU3RpY2t5OlQyZSxmYVN0aWNreU5vdGU6WTZ0LGZhSGFuZEJhY2tGaXN0Ol8yZSxmYUhhbmRSb2NrOlo2dCxmYUNoZXNzUXVlZW46WDZ0LGZhRmFjZUdyaW5UZWFyczpBMmUsZmFHcmluVGVhcnM6UTZ0LGZhUGVuVG9TcXVhcmU6JDJlLGZhRWRpdDpLNnQsZmFGYWNlR3JpbkJlYW1Td2VhdDpEMmUsZmFHcmluQmVhbVN3ZWF0Oko2dCxmYUNsb2NrOkUyZSxmYUNsb2NrRm91cjplNXQsZmFGYWNlTGF1Z2hXaW5rOk4yZSxmYUxhdWdoV2luazp0NXQsZmFQYXBlclBsYW5lOmE1dCxmYUhlYXJ0OnI1dCxmYUZvbnRBd2Vzb21lOmJWLGZhRm9udEF3ZXNvbWVGbGFnOmk1dCxmYUZvbnRBd2Vzb21lTG9nb0Z1bGw6bzV0LGZhQ2xvbmU6czV0LGZhRm9sZGVyT3BlbjpuNXQsZmFXaW5kb3dNaW5pbWl6ZTpsNXQsZmFTdGFySGFsZjpjNXQsZmFBbGFybUNsb2NrOmQ1dCxmYU5ld3NwYXBlcjpmNXQsZmFIb3NwaXRhbDp2VixmYUhvc3BpdGFsQWx0OnU1dCxmYUhvc3BpdGFsV2lkZTpwNXQsZmFDaXJjbGVTdG9wOlAyZSxmYVN0b3BDaXJjbGU6aDV0LGZhT2JqZWN0VW5ncm91cDptNXQsZmFDb21tZW50Omc1dCxmYUNoZXNzUGF3bjp4NXQsZmFDYWxlbmRhclBsdXM6YjV0LGZhQ2xpcGJvYXJkOnY1dCxmYVRodW1ic0Rvd246eTV0LGZhSWRCYWRnZTp3NXQsZmFTcXVhcmVDaGVjazpJMmUsZmFDaGVja1NxdWFyZTpNNXQsZmFDaGVzc0Jpc2hvcDp6NXQsZmFFbnZlbG9wZU9wZW46azV0LGZhQ2lyY2xlWG1hcms6UTYsZmFUaW1lc0NpcmNsZTpTNXQsZmFYbWFya0NpcmNsZTpDNXQsZmFTcXVhcmVDYXJldFVwOkYyZSxmYUNhcmV0U3F1YXJlVXA6TDV0LGZhRmlsZUltYWdlOlQ1dCxmYVNxdWFyZUNhcmV0UmlnaHQ6TzJlLGZhQ2FyZXRTcXVhcmVSaWdodDpfNXQsZmFTdW46Q1YsZmFJbWFnZTpBNXQsZmFMaWdodGJ1bGI6JDV0LGZhQWRkcmVzc0NhcmQ6eVYsZmFDb250YWN0Q2FyZDpENXQsZmFWY2FyZDpFNXQsZmFGYWNlTWVoOkIyZSxmYU1laDpONXQsZmFNYXA6UDV0LGZhSGFuZFBvaW50RG93bjpJNXQsZmFGYWNlTWVoQmxhbms6UjJlLGZhTWVoQmxhbms6RjV0LGZhRmFjZUdyaW5Ub25ndWU6SDJlLGZhR3JpblRvbmd1ZTpPNXQsZmFGdXRib2w6d1YsZmFGdXRib2xCYWxsOkI1dCxmYVNvY2NlckJhbGw6UjV0LGZhRmFjZVN1cnByaXNlOnEyZSxmYVN1cnByaXNlOkg1dCxmYUZvbGRlcjpWMmUsZmFGb2xkZXJCbGFuazpxNXQsZmFDbG91ZDpWNXQsZmFDaXJjbGU6VTV0LGZhRmFjZUdyaW5TcXVpbnQ6VTJlLGZhR3JpblNxdWludDpqNXQsZmFDaXJjbGVVc2VyOmoyZSxmYVVzZXJDaXJjbGU6VzV0LGZhUmVjdGFuZ2xlTGlzdDpXMmUsZmFMaXN0QWx0Okc1dCxmYUhhbmQ6RzJlLGZhSGFuZFBhcGVyOlk1dCxmYVRodW1ic1VwOlo1dCxmYUJ1aWxkaW5nOlg1dCxmYUNoZXNzUm9vazpRNXQsZmFDaXJjbGVRdWVzdGlvbjpZMmUsZmFRdWVzdGlvbkNpcmNsZTpLNXQsZmFGaWxlOko1dCxmYUZhY2VTYWRDcnk6WjJlLGZhU2FkQ3J5OmU4dCxmYUNhbGVuZGFyTWludXM6dDh0LGZhRmFjZVRpcmVkOlgyZSxmYVRpcmVkOmE4dCxmYUhhbmRQb2ludFJpZ2h0OnI4dCxmYUNpcmNsZVVwOlEyZSxmYUFycm93QWx0Q2lyY2xlVXA6aTh0LGZhSGFuZFNjaXNzb3JzOm84dCxmYUdlbTpzOHQsZmFSZWN0YW5nbGVYbWFyazpZZCxmYVJlY3RhbmdsZVRpbWVzOm44dCxmYVRpbWVzUmVjdGFuZ2xlOmw4dCxmYVdpbmRvd0Nsb3NlOmM4dCxmYVRyYXNoQ2FuOktkLGZhVHJhc2hBbHQ6ZDh0LGZhTGlmZVJpbmc6Zjh0LGZhQ29weXJpZ2h0OnU4dCxmYUNpcmNsZUxlZnQ6SzJlLGZhQXJyb3dBbHRDaXJjbGVMZWZ0OnA4dCxmYUNhbGVuZGFyOmg4dCxmYUZhY2VGcm93bk9wZW46SjJlLGZhRnJvd25PcGVuOm04dCxmYUNoYXJ0QmFyOmVhZSxmYUJhckNoYXJ0Omc4dCxmYUhvdXNlOlpkLGZhSG9tZTp4OHQsZmFIb21lQWx0OmI4dCxmYUhvbWVMZ0FsdDp2OHQsZmFGYWNlRnJvd246dGFlLGZhRnJvd246eTh0LGZhVXNlcjpNVixmYVVzZXJBbHQ6dzh0LGZhVXNlckxhcmdlOk04dCxmYVNub3dmbGFrZTp6OHQsZmFCb29rbWFyazprOHQsZmFTcXVhcmVDYXJldExlZnQ6YWFlLGZhQ2FyZXRTcXVhcmVMZWZ0OlM4dCxmYUhhbmRzaGFrZTp6VixmYUhhbmRzaGFrZUFsdDpDOHQsZmFIYW5kc2hha2VTaW1wbGU6TDh0LGZhRmFjZVNtaWxlV2luazpyYWUsZmFTbWlsZVdpbms6VDh0LGZhRmFjZUdyaW5TcXVpbnRUZWFyczppYWUsZmFHcmluU3F1aW50VGVhcnM6Xzh0LGZhRmlsZUF1ZGlvOkE4dCxmYUNhbGVuZGFyWG1hcms6b2FlLGZhQ2FsZW5kYXJUaW1lczokOHQsZmFDaXJjbGVEb3duOnNhZSxmYUFycm93QWx0Q2lyY2xlRG93bjpEOHQsZmFGaWxlTGluZXM6a1YsZmFGaWxlQWx0OkU4dCxmYUZpbGVUZXh0Ok44dCxmYUNvbW1lbnRzOlA4dCxmYUNpcmNsZUNoZWNrOkpkLGZhQ2hlY2tDaXJjbGU6STh0LGZhTW9vbjpGOHQsZmFDbG9zZWRDYXB0aW9uaW5nOk84dCxmYUltYWdlczpCOHQsZmFDaXJjbGVSaWdodDpuYWUsZmFBcnJvd0FsdENpcmNsZVJpZ2h0OlI4dCxmYUlkQ2FyZDpsYWUsZmFEcml2ZXJzTGljZW5zZTpIOHQsZmFDaXJjbGVQbGF5OmNhZSxmYVBsYXlDaXJjbGU6cTh0LGZhRmFjZUxhdWdoQmVhbTpkYWUsZmFMYXVnaEJlYW06Vjh0LGZhQWRkcmVzc0Jvb2s6ZmFlLGZhQ29udGFjdEJvb2s6VTh0LGZhSG91cmdsYXNzOnVhZSxmYUhvdXJnbGFzc0VtcHR5Omo4dCxmYUhlYWRwaG9uZXM6U1YsZmFIZWFkcGhvbmVzQWx0Olc4dCxmYUhlYWRwaG9uZXNTaW1wbGU6Rzh0LGZhRmlsZVBvd2VycG9pbnQ6WTh0LGZhV2luZG93TWF4aW1pemU6Wjh0LGZhQ29tbWVudERvdHM6cGFlLGZhQ29tbWVudGluZzpYOHQsZmFGYWNlR3JpblRvbmd1ZVdpbms6aGFlLGZhR3JpblRvbmd1ZVdpbms6UTh0LGZhSG91cmdsYXNzSGFsZjptYWUsZmFIb3VyZ2xhc3MyOks4dCxmYUNyZWRpdENhcmQ6Z2FlLGZhQ3JlZGl0Q2FyZEFsdDpKOHQsZmFIYW5kU3BvY2s6ZWR0LGZhQmVsbFNsYXNoOnRkdCxmYVN0YXI6YWR0LGZhRmxhZzpyZHQsZmFMZW1vbjppZHQsZmFXaW5kb3dSZXN0b3JlOm9kdCxmYUZhY2VHcmluSGVhcnRzOnhhZSxmYUdyaW5IZWFydHM6c2R0LGZhRmFjZUtpc3NCZWFtOmJhZSxmYUtpc3NCZWFtOm5kdCxmYUZpbGVQZGY6bGR0LGZhRmFjZUdyaW5XaWRlOnZhZSxmYUdyaW5BbHQ6Y2R0LGZhRmFjZUxhdWdoU3F1aW50OnlhZSxmYUxhdWdoU3F1aW50OmRkdCxmYUZhY2VLaXNzV2lua0hlYXJ0OndhZSxmYUtpc3NXaW5rSGVhcnQ6ZmR0LGZhQ29weTpMVixmYUNoZXNzS2luZzp1ZHQsZmFTcXVhcmVQbHVzOk1hZSxmYVBsdXNTcXVhcmU6cGR0LGZhRmlsZUNvZGU6aGR0LGZhRmFjZUdyaW5XaW5rOnphZSxmYUdyaW5XaW5rOm1kdCxmYU1vbmV5QmlsbDE6a2FlLGZhTW9uZXlCaWxsQWx0OmdkdCxmYUV5ZVNsYXNoOnhkdCxmYUZpbGVXb3JkOmJkdCxmYUZhY2VBbmdyeTpTYWUsZmFBbmdyeTp2ZHQsZmFDaGVzc0tuaWdodDp5ZHQsZmFGYWNlR3JpbkJlYW06Q2FlLGZhR3JpbkJlYW06d2R0LGZhSGFuZFBlYWNlOk1kdCxmYUNvbXBhc3M6emR0LGZhU3F1YXJlOmtkdCxmYUZhY2VHcmluOkxhZSxmYUdyaW46U2R0LGZhRmFjZVNtaWxlOlRhZSxmYVNtaWxlOkNkdCxmYUZhY2VTbWlsZUJlYW06X2FlLGZhU21pbGVCZWFtOkxkdCxmYUZvbGRlckNsb3NlZDpUZHQsZmFLZXlib2FyZDpfZHQsZmFGYWNlUm9sbGluZ0V5ZXM6QWFlLGZhTWVoUm9sbGluZ0V5ZXM6QWR0LGZhRmFjZUdyaW1hY2U6JGFlLGZhR3JpbWFjZTokZHQsZmFDaXJjbGVEb3Q6RGFlLGZhRG90Q2lyY2xlOkRkdCxmYU9iamVjdEdyb3VwOkVkdCxmYUZhY2VGbHVzaGVkOkVhZSxmYUZsdXNoZWQ6TmR0LGZhU3RhckhhbGZTdHJva2U6TmFlLGZhU3RhckhhbGZBbHQ6UGR0LGZhRmlsZVZpZGVvOklkdCxmYUZhY2VMYXVnaDpQYWUsZmFMYXVnaDpGZHQsZmFIYW5kUG9pbnRlcjpPZHQsZmFSZWdpc3RlcmVkOkJkdH19KTt2YXIgbW8xLEhkdCxxZHQsVmR0LFVkdCxqZHQsV2R0LEdkdCxZZHQsWmR0LFhkdCxUVixRZHQsS2R0LEpkdCxlN3QsSWFlLHQ3dCxGYWUsYTd0LHI3dCxpN3QsT2FlLG83dCxzN3Qsbjd0LGw3dCxnNyxjN3QsZDd0LEJhZSxmN3QsdTd0LHA3dCxoN3QsbTd0LGc3dCx4N3QsYjd0LFJhZSx2N3QseTd0LHc3dCxIYWUsTTd0LHo3dCxrN3QsUzd0LEM3dCx4NyxMN3QscWFlLFQ3dCxfN3QsX1YsQTd0LCQ3dCxWYWUsRDd0LFVhZSxFN3QsTjd0LGphZSxQN3QsV2FlLEk3dCxHYWUsRjd0LE83dCxCN3QsUjd0LEg3dCxxN3QsVjd0LFlhZSxVN3Qsajd0LFc3dCxHN3QsWmFlLFk3dCxaN3QsWDd0LFE3dCxLN3QsSjd0LEFWLGVmdCx0ZnQsYWZ0LCRWLHJmdCxpZnQsb2Z0LFhhZSxzZnQsbmZ0LGxmdCxjZnQsUWFlLGRmdCxTVSxmZnQsQ1UsdWZ0LHBmdCxLYWUsaGZ0LEphZSxtZnQsZ2Z0LERWLHhmdCxiZnQsdmZ0LHlmdCx3ZnQsTWZ0LHpmdCxrZnQsTFUsYjcsU2Z0LENmdCxlcmUsTGZ0LFRmdCxlNyxfZnQsQWZ0LCRmdCx0cmUsRGZ0LEVmdCxOZnQsYXJlLFBmdCxycmUsSWZ0LEZmdCxPZnQsQmZ0LGlyZSxSZnQsSGZ0LHFmdCxvcmUsVmZ0LHNyZSxVZnQsamZ0LFdmdCxHZnQsRVYsWWZ0LFpmdCxYZnQsUWZ0LEtmdCxKZnQsZXV0LG5yZSx0dXQsYXV0LHJ1dCxpdXQsb3V0LGxyZSxzdXQsbnV0LHQ3LGx1dCxjdXQsZHV0LGZ1dCx1dXQscHV0LE5WLGh1dCxtdXQsZ3V0LHh1dCxidXQsY3JlLHZ1dCx5dXQsd3V0LE11dCx6dXQsZHJlLGt1dCxTdXQsQ3V0LEx1dCxmcmUsVHV0LF91dCxBdXQsdXJlLCR1dCxEdXQscHJlLEV1dCxocmUsTnV0LFB1dCxtcmUsSXV0LEZ1dCxncmUsT3V0LHhyZSxCdXQsUnV0LHY3LEh1dCx5NyxxdXQsVnV0LFBWLFV1dCxqdXQsV3V0LGJyZSxHdXQsWXV0LHZyZSxadXQsWHV0LFF1dCxLdXQseXJlLEp1dCxlcHQsdHB0LGFwdCxycHQsd3JlLGlwdCxvcHQsc3B0LG5wdCxNcmUsbHB0LHpyZSxjcHQsZHB0LGZwdCx1cHQscHB0LGtyZSxocHQsbXB0LGdwdCx4cHQsU3JlLGJwdCx2cHQsQ3JlLHlwdCxMcmUsd3B0LE1wdCx6cHQsa3B0LFNwdCxDcHQsVHJlLExwdCxUcHQsX3B0LEFwdCwkcHQsX3JlLERwdCxFcHQsTnB0LFBwdCxBcmUsSXB0LCRyZSxGcHQsVFUsX1UsRHJlLE9wdCxFcmUsQnB0LFJwdCxIcHQsRDcsTnJlLHFwdCxWcHQsVXB0LGpwdCxXcHQsR3B0LFByZSxZcHQsQVUsWnB0LFhwdCxRcHQsS3B0LEpwdCxJcmUsZTl0LEZyZSx0OXQsYTl0LHI5dCxpOXQsT3JlLG85dCxJVixzOXQsbjl0LGw5dCxCcmUsYzl0LGQ5dCxmOXQsdTl0LFJyZSxwOXQsaDl0LG05dCxnOXQsSHJlLHg5dCxiOXQsdjl0LHk5dCx3OXQsTTl0LHo5dCxrOXQsUzl0LEM5dCxMOXQsVDl0LF85dCxxcmUsQTl0LCQ5dCxEOXQsRTl0LE45dCxQOXQsSTl0LFZyZSxGOXQsTzl0LEI5dCxLNixSOXQsSDl0LHE5dCxWOXQsVTl0LFVyZSxqOXQsanJlLFc5dCxXcmUsRzl0LEdyZSxZOXQsWXJlLFo5dCx3NyxYOXQsWnJlLFE5dCxYcmUsSzl0LFFyZSxKOXQsZWh0LHRodCxhaHQsS3JlLHJodCxpaHQsSnJlLG9odCxzaHQsZWllLG5odCxsaHQsY2h0LGRodCx0aWUsZmh0LHVodCxwaHQsYWllLGhodCxtaHQsYTcsZ2h0LHhodCxiaHQsdmh0LHlodCx3aHQscmllLE1odCxpaWUsemh0LGtodCxTaHQsb2llLENodCxMaHQsVGh0LHNpZSxfaHQsbmllLEFodCxGViwkaHQsRGh0LEVodCxOaHQsUGh0LElodCxGaHQsT2h0LEJodCxSaHQsSGh0LHFodCxWaHQsVWh0LHI3LGpodCxXaHQsR2h0LFlodCxaaHQsWGh0LFFodCxLaHQsbGllLEpodCxlbXQsdG10LGFtdCxybXQsaW10LG9tdCxzbXQsbm10LGxtdCxjaWUsY210LGRtdCxmbXQsdW10LHBtdCxobXQsbW10LGRpZSxnbXQsZmllLHhtdCxibXQsdWllLHZtdCx5bXQsd210LHBpZSxNbXQsem10LGttdCxoaWUsU210LG1pZSxDbXQsTG10LGdpZSxUbXQsX210LEFtdCwkbXQseGllLERtdCxFbXQsTm10LCRVLFBtdCxJbXQsRm10LGJpZSxPbXQsQm10LFJtdCxIbXQscW10LHZpZSxWbXQsVW10LGptdCxXbXQsR210LHlpZSxZbXQsWm10LFhtdCx3aWUsUW10LEttdCxPVixKbXQsZWd0LHRndCxhZ3QsTWllLHJndCxpZ3Qsb2d0LHppZSxzZ3Qsa2llLG5ndCxsZ3QsY2d0LGRndCxNNyxmZ3QsU2llLHVndCxwZ3QsaGd0LG1ndCxnZ3QsQ2llLHhndCxMaWUsYmd0LFRpZSx2Z3QseWd0LEJWLHdndCxNZ3QsX2llLHpndCxSVixrZ3QsU2d0LENndCxMZ3QsVGd0LF9ndCxBZ3QsJGd0LEFpZSxEZ3QsRWd0LE5ndCxQZ3QsSWd0LCRpZSxGZ3QsT2d0LEJndCxEaWUsUmd0LEVpZSxIZ3QsTmllLHFndCxWZ3QsVWd0LGpndCxXZ3QsR2d0LFlndCxQaWUsWmd0LFhndCxRZ3QsS2d0LElpZSxKZ3QsZXh0LHR4dCxheHQscnh0LGl4dCxGaWUsb3h0LHN4dCxPaWUsbnh0LGx4dCxCaWUsY3h0LGR4dCxmeHQsdXh0LFJpZSxweHQsaHh0LG14dCxIaWUsZ3h0LHFpZSx4eHQsYnh0LHZ4dCx5eHQsVmllLHd4dCxNeHQsenh0LGt4dCxTeHQsVWllLEN4dCxqaWUsTHh0LFdpZSxUeHQsX3h0LEdpZSxBeHQsWWllLCR4dCxEeHQsRXh0LE54dCxQeHQsSXh0LEZ4dCxPeHQsQnh0LFJ4dCxIeHQsSFYscXh0LFZ4dCxhNSxVeHQsanh0LFd4dCxxVixHeHQsWXh0LFp4dCxYeHQsUXh0LEt4dCxKeHQsWmllLGVidCxYaWUsdGJ0LGFidCxyYnQsUWllLGlidCxLaWUsb2J0LHNidCxWVixuYnQsbGJ0LGNidCxkYnQsSjYsZmJ0LHVidCxwYnQsaGJ0LG1idCxnYnQseGJ0LEppZSxiYnQsdmJ0LHlidCx3YnQsZW9lLE1idCx6YnQsa2J0LFNidCxDYnQsTGJ0LFRidCx0b2UsX2J0LEFidCwkYnQsRGJ0LEVidCxOYnQsYW9lLFBidCxEVSxyb2UsSWJ0LEZidCxPYnQsaW9lLEJidCxvb2UsUmJ0LEhidCxxYnQsc29lLFZidCxVYnQsbm9lLGpidCxXYnQsR2J0LFlidCxsb2UsWmJ0LFhidCxRYnQsS2J0LEpidCxldnQsY29lLHR2dCxhdnQsRVUscnZ0LGl2dCxkb2Usb3Z0LHN2dCxudnQsaTcsbHZ0LGN2dCxkdnQsZnZ0LG83LHV2dCxwdnQsaHZ0LG12dCxndnQseHZ0LGZvZSxidnQsVVYsdnZ0LHl2dCx3dnQsdW9lLE12dCx6dnQsa3Z0LFN2dCxDdnQsTHZ0LFR2dCxwb2UsX3Z0LE5VLEF2dCwkdnQsRHZ0LGhvZSxFdnQsbW9lLE52dCxQdnQsZ29lLEl2dCxzNyxGdnQsT3Z0LEJ2dCxSdnQsSHZ0LHF2dCxWdnQsVXZ0LGp2dCx4b2UsV3Z0LEd2dCxZdnQsWnZ0LGpWLFh2dCxRdnQsYm9lLEt2dCxKdnQsZXl0LHZvZSx0eXQsYXl0LHJ5dCx5b2UsaXl0LG95dCxzeXQsbnl0LGx5dCxjeXQsZHl0LGZ5dCx1eXQsd29lLHB5dCxNb2UsaHl0LG15dCxneXQseHl0LGJ5dCx2eXQsem9lLHl5dCx3eXQsTXl0LGtvZSx6eXQsa3l0LFNvZSxTeXQsQ29lLEN5dCxMb2UsTHl0LFR5dCxfeXQsVG9lLEF5dCxfb2UsJHl0LEFvZSxEeXQsRXl0LCRvZSxOeXQsRG9lLFB5dCxFb2UsSXl0LE5vZSxGeXQsT3l0LEJ5dCxSeXQsSHl0LHF5dCxWeXQsVXl0LGp5dCxQb2UsV3l0LElvZSxHeXQsRm9lLFl5dCxaeXQsUFUsWHl0LE9vZSxReXQsS3l0LEp5dCxCb2UsZXd0LHR3dCxSb2UsYXd0LHo3LHJ3dCxpd3Qsb3d0LEhvZSxzd3QscW9lLG53dCxsd3QsVm9lLGN3dCxVb2UsZHd0LGpvZSxmd3QsdXd0LHB3dCxod3QsbXd0LFdvZSxnd3QsR29lLHh3dCxid3Qsdnd0LHl3dCxZb2Usd3d0LE13dCx6d3QsWm9lLGt3dCxTd3QsQ3d0LFhvZSxMd3QsVHd0LF93dCxBd3QsUW9lLCR3dCxEd3QsS29lLEV3dCxOd3QsUHd0LEpvZSxJd3QsRnd0LE93dCxlc2UsQnd0LHRzZSxSd3QsV1YsSHd0LHF3dCxWd3QsYXNlLFV3dCxqd3QsV3d0LHJzZSxHd3QsWXd0LFp3dCxpc2UsWHd0LFF3dCxLd3QsSnd0LGVNdCx0TXQsYU10LHJNdCxpTXQsb010LHNNdCxuTXQsb3NlLGxNdCxJVSxjTXQsc3NlLGRNdCxmTXQsdU10LHBNdCxuc2UsaE10LG1NdCxnTXQseE10LGJNdCx2TXQseU10LG43LHdNdCxNTXQsek10LGtNdCxrNyxTTXQsbHNlLENNdCxMTXQsVE10LGNzZSxfTXQsQU10LGRzZSwkTXQsRE10LEVNdCxOTXQsUE10LGZzZSxJTXQsdXNlLEZNdCxPTXQsQk10LHBzZSxSTXQsSE10LHFNdCxoc2UsVk10LFVNdCxqTXQsV010LEdNdCxZTXQsWk10LG1zZSxYTXQsRlUsUU10LEtNdCxKTXQsZ3NlLGV6dCx0enQseHNlLGF6dCxic2Uscnp0LGl6dCxvenQsdnNlLHN6dCx5c2Usbnp0LHdzZSxsenQsY3p0LE1zZSxkenQsZnp0LHV6dCxwenQsenNlLGh6dCxsNyxtenQsZ3p0LHh6dCxienQsa3NlLHZ6dCxTc2UseXp0LHd6dCxNenQsenp0LENzZSxrenQsYzcsU3p0LEN6dCxMenQsTHNlLFR6dCxfenQsQXp0LCR6dCxUc2UsRHp0LF9zZSxFenQsTnp0LFB6dCxBc2UsSXp0LCRzZSxGenQsT3p0LERzZSxCenQsRXNlLFJ6dCxOc2UsSHp0LFBzZSxxenQsVnp0LFV6dCxqenQsSXNlLFd6dCxHenQsWXp0LFp6dCxYenQsUXp0LEt6dCxKenQsRnNlLGVrdCxPc2UsdGt0LGFrdCxya3QsaWt0LEJzZSxva3Qsc2t0LEdWLG5rdCxsa3QsY2t0LGRrdCxma3QsdWt0LGQ3LHBrdCxoa3QsbWt0LGdrdCx4a3QsYmt0LHZrdCx5a3Qsd2t0LE1rdCx6a3Qsa2t0LFNrdCxZVixDa3QsTGt0LFRrdCxfa3QsQWt0LCRrdCxSc2UsRGt0LEhzZSxFa3QsTmt0LFBrdCxaVixJa3QsRmt0LE9rdCxxc2UsQmt0LFhWLFJrdCxIa3QscWt0LFZrdCxPVSxRVixVa3Qsamt0LFZzZSxXa3QsR2t0LFlrdCxaa3QsVXNlLFhrdCxRa3QsanNlLEtrdCxKa3QsV3NlLGVTdCx0U3QsYVN0LHJTdCxpU3Qsb1N0LEtWLHNTdCxuU3QsR3NlLGxTdCxjU3QsZFN0LGZTdCx1U3QscFN0LGhTdCxtU3QsWXNlLGdTdCx4U3QsWnNlLGJTdCxYc2UsdlN0LHlTdCxpcyx3U3QsTVN0LHpTdCxrU3QsUXNlLFNTdCxDU3QsTFN0LFRTdCxLc2UsX1N0LEpzZSxBU3QsSlYsJFN0LERTdCxFU3QsZW5lLE5TdCxCVSxQU3QsSVN0LHRuZSxGU3QsZVUsT1N0LEJTdCxSU3QsSFN0LHFTdCxWU3QsUzcsVVN0LGFuZSxqU3QsV1N0LEdTdCxybmUsWVN0LGluZSxaU3QsZjcsWFN0LFFTdCxLU3QsSlN0LGVDdCx0Q3QsYUN0LG9uZSxyQ3QsaUN0LHNuZSxvQ3Qsbm5lLHNDdCxsbmUsbkN0LGxDdCxjQ3QsZEN0LGZDdCx1Q3QsY25lLHBDdCxoQ3QsbUN0LGdDdCx4Q3QsZG5lLGJDdCxmbmUsdkN0LHVuZSx5Q3Qsd0N0LE1DdCx0VSx6Q3Qsa0N0LFNDdCxDQ3QsTEN0LHBuZSxUQ3QsaG5lLF9DdCxBQ3QsJEN0LERDdCxtbmUsRUN0LGduZSxOQ3QsUEN0LGFVLElDdCxGQ3QsT0N0LEJDdCxSQ3QseG5lLEhDdCxxQ3QsYm5lLFZDdCx2bmUsVUN0LGpDdCxXQ3QsR0N0LFlDdCxaQ3QsWEN0LFFDdCxLQ3QsSkN0LHluZSxlTHQsdEx0LGFMdCxyVSxyTHQsaUx0LG9MdCxzTHQsd25lLG5MdCxsTHQsTW5lLGNMdCxkTHQsZkx0LHVMdCx6bmUscEx0LGhMdCxtTHQsQzcsZ0x0LHhMdCxpVSxiTHQsdkx0LGtuZSx5THQsd0x0LE1MdCx6THQsa0x0LFNuZSxTTHQsQ0x0LENuZSxMTHQsTG5lLFRMdCxfTHQsQUx0LCRMdCxETHQsVG5lLEVMdCxfbmUsTkx0LEFuZSxQTHQsSUx0LEZMdCxPTHQsJG5lLEJMdCxSTHQsRG5lLEhMdCxxTHQsVkx0LEVuZSxVTHQsakx0LG9VLFdMdCxHTHQsTm5lLFlMdCxQbmUsWkx0LEluZSxYTHQsUlUsRm5lLFFMdCxPbmUsS0x0LEpMdCxlVHQsdFR0LGFUdCxyVHQsc1UsaVR0LG9UdCxzVHQsQm5lLG5UdCxsVHQsY1R0LG5VLGRUdCxmVHQsdVR0LHBUdCxsVSxoVHQsbVR0LGdUdCx4VHQsUm5lLGJUdCxIbmUsdlR0LHlUdCx3VHQsTVR0LGNVLHpUdCxrVHQsU1R0LENUdCxMVHQsVFR0LGRVLF9UdCxBVHQsJFR0LHFuZSxEVHQsRVR0LE5UdCxQVHQsVm5lLElUdCxGVHQsT1R0LEJUdCxSVHQsSFR0LFVuZSxxVHQsVlR0LFVUdCxqVHQsam5lLFdUdCxHVHQsdTcsWVR0LFpUdCxYVHQsV25lLFFUdCxLVHQsSlR0LGVfdCx0X3QsYV90LHJfdCxpX3Qsb190LEduZSxzX3Qsbl90LFluZSxsX3QsY190LGRfdCxabmUsZl90LHVfdCxwX3QsaF90LFhuZSxtX3QsSFUsUW5lLGdfdCx4X3QsYl90LHZfdCx5X3QsS25lLHdfdCxNX3Qsel90LGtfdCxTX3QsSm5lLENfdCxMX3QsVF90LF9fdCxBX3QsZlUsJF90LERfdCxFX3QsTl90LFBfdCxlMGUsSV90LHQwZSxGX3QsT190LEJfdCx1VSxSX3QsSF90LHFfdCxhMGUsVl90LHIwZSxVX3Qsal90LFdfdCxHX3QsWV90LFpfdCxpMGUsWF90LFFfdCxvMGUsS190LHMwZSxKX3QsbjBlLGVBdCx0QXQsbDBlLGFBdCxjMGUsckF0LGlBdCxvQXQsc0F0LG5BdCxsQXQsY0F0LGRBdCxmQXQsZDBlLHVBdCxwQXQscFUsaEF0LG1BdCxmMGUsZ0F0LHhBdCxiQXQsdTBlLHZBdCx5QXQsd0F0LE1BdCxwMGUsekF0LGtBdCxTQXQsQ0F0LExBdCxoMGUsVEF0LF9BdCxBQXQsaFUsJEF0LERBdCxFQXQsTkF0LFBBdCxJQXQsbVUsRkF0LE9BdCxCQXQsbTBlLFJBdCxnMGUsSEF0LHFBdCxWQXQsVUF0LHgwZSxqQXQsYjBlLFdBdCxHQXQsdjBlLFlBdCxaQXQseTBlLFhBdCxRQXQsS0F0LEpBdCx3MGUsZSR0LHQkdCxhJHQsciR0LEw3LGkkdCxxVSxvJHQscyR0LG4kdCxsJHQsTTBlLGMkdCx6MGUsZCR0LGYkdCx1JHQscCR0LHA3LGgkdCxtJHQsZyR0LGg3LHgkdCxiJHQsdiR0LGswZSx5JHQsdyR0LGdVLE0kdCx6JHQsayR0LFMkdCxTMGUsQyR0LEwkdCxUJHQsQzBlLF8kdCxBJHQsJCR0LEQkdCxFJHQsTDBlLE4kdCx4VSxQJHQsSSR0LEYkdCxPJHQsQiR0LFQwZSxSJHQsXzBlLEgkdCxBMGUscSR0LFYkdCwkMGUsVSR0LFZVLEQwZSxqJHQsVyR0LEckdCxFMGUsWSR0LFokdCxVVSxOMGUsWCR0LFEkdCxLJHQsSiR0LGU1LGVEdCx0RHQsYUR0LHJEdCxQMGUsaUR0LG9EdCxzRHQsSTBlLG5EdCxsRHQsY0R0LGREdCxGMGUsZkR0LHVEdCxwRHQsaER0LG1EdCxiVSxnRHQseER0LFQ3LGJEdCxPMGUsdkR0LEIwZSx5RHQsd0R0LE1EdCx6RHQsa0R0LFNEdCxDRHQsUjBlLExEdCxURHQsX0R0LEgwZSxBRHQsJER0LEREdCxFRHQscTBlLE5EdCxQRHQsSUR0LFYwZSxGRHQsT0R0LEJEdCxfNyxSRHQsSER0LFUwZSxxRHQsajBlLFZEdCxXMGUsVUR0LEcwZSxqRHQsV0R0LFkwZSxHRHQsWUR0LFpEdCxYRHQsUUR0LEtEdCxaMGUsSkR0LGVFdCxYMGUsdEV0LGFFdCxRMGUsckV0LGlFdCxvRXQsSzBlLHNFdCxuRXQsbEV0LGNFdCxkRXQsdDUsZkV0LHVFdCxwRXQsaEV0LG1FdCxnRXQseEV0LGJFdCx2RXQseUV0LHdFdCxNRXQsekV0LGtFdCxTRXQsQ0V0LExFdCxKMGUsVEV0LF9FdCxBRXQsJEV0LGU0ZSxERXQsRUV0LE5FdCxtNyxQRXQsSUV0LEZFdCxPRXQsQkV0LHQ0ZSxSRXQsQTcsSEV0LHFFdCxWRXQsYTRlLFVFdCxqRXQsV0V0LEdFdCxyNGUsWUV0LFpFdCxpNGUsWEV0LFFFdCxLRXQsbzRlLEpFdCxlTnQsczRlLHROdCxuNGUsYU50LHJOdCxpTnQsb050LHNOdCxsNGUsbk50LGxOdCxjTnQsYzRlLGROdCxmTnQsdU50LHBOdCxoTnQsbU50LGdOdCxkNGUseE50LGY0ZSxiTnQsdTRlLHZOdCx2VSx5TnQsd050LHA0ZSxNTnQsaDRlLHpOdCxtNGUsa050LFNOdCxDTnQsTE50LFROdCxfTnQsZzRlLEFOdCx4NGUsJE50LEROdCxFTnQsTk50LFBOdCxiNGUsSU50LHY0ZSxGTnQseTRlLE9OdCx3NGUsQk50LFJOdCxITnQscU50LE00ZSxWTnQsVU50LHlVLGpOdCxXTnQsejRlLEdOdCxZTnQsWk50LGs0ZSxYTnQsUU50LEtOdCxKTnQsUzRlLGVQdCxyNSx0UHQsYVB0LEM0ZSxyUHQsTDRlLGlQdCxvUHQsc1B0LHdVLG5QdCxsUHQsY1B0LFQ0ZSxkUHQsXzRlLGZQdCxBNGUsdVB0LCQ0ZSxwUHQsaFB0LG1QdCxnUHQseFB0LGJQdCxNVSx2UHQseVB0LHdQdCxNUHQselB0LEQ0ZSxrUHQsU1B0LENQdCxMUHQsVFB0LEU0ZSxfUHQsQVB0LE40ZSwkUHQsRFB0LHpVLEVQdCxOUHQsUFB0LCQ3LElQdCxGUHQsT1B0LFA0ZSxCUHQsSTRlLFJQdCxIUHQscVB0LFZQdCxVUHQsRjRlLGpQdCxXUHQsR1B0LFlQdCxaUHQsa1UsWFB0LFFQdCxLUHQsSlB0LGVJdCxPNGUsdEl0LEI0ZSxhSXQsckl0LFI0ZSxpSXQsSDRlLG9JdCxxNGUsc0l0LFY0ZSxuSXQsbEl0LFU0ZSxjSXQsZEl0LGZJdCx1SXQscEl0LGhJdCxnbzEsbUl0PW4oKCk9PnttbzE9ImZhcyIsSGR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjAiLGljb246WzMyMCw1MTIsW10sIjMwIiwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJzMTYwIDcxLjYgMTYwIDE2MGwwIDEyOGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwTDAgMTkyek0xNjAgOTZjLTUzIDAtOTYgNDMtOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2eiJdfSxxZHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMSIsaWNvbjpbMjU2LDUxMixbXSwiMzEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDY0IDAgMCAzMjAtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sVmR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjIiLGljb246WzM4NCw1MTIsW10sIjMyIiwiTTQ4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE3MSAwYzYwLjIgMCAxMDkgNDguOCAxMDkgMTA5IDAgNDMuOC0yNi4yIDgzLjMtNjYuNCAxMDAuNGwtMTM5LjEgNTlDMTE5IDMxNS40IDk2IDM1MC4yIDk2IDM4OC43bDAgMjcuMyAyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuM2MwLTY0LjIgMzguNC0xMjIuMiA5Ny41LTE0Ny4zbDEzOS4xLTU5YzE2LjYtNy4xIDI3LjQtMjMuNCAyNy40LTQxLjQgMC0yNC45LTIwLjItNDUtNDUtNDVMODAgOTZDNjIuMyA5NiA0OCA4MS43IDQ4IDY0eiJdfSxVZHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMyIsaWNvbjpbMzIwLDUxMixbXSwiMzMiLCJNODAgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOCAwIDM4LjItMTYuOCA3Mi41LTQzLjMgOTYgMjYuNiAyMy41IDQzLjMgNTcuOCA0My4zIDk2IDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4TDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NEw4MCAyODh6Il19LGpkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiI0IixpY29uOlszODQsNTEyLFtdLCIzNCIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjI0LTE5MiAwIDAtMjI0eiJdfSxXZHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiNSIsaWNvbjpbMzIwLDUxMixbXSwiMzUiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDAgMCAxMTIgMTIwIDBjNzUuMSAwIDEzNiA2MC45IDEzNiAxMzZTMjU5LjEgNDgwIDE4NCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE1MiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcyTDMyIDI3MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA2NHoiXX0sR2R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjYiLGljb246WzM4NCw1MTIsW10sIjM2IiwiTTI1NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODggMGMtNDguNiAwLTg4IDM5LjQtODggODhsMCAzMi4yYzIyLjktMTUuMyA1MC40LTI0LjIgODAtMjQuMmw0OCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzI4Ny41IDQ4MCAyMDggNDgwbC00OCAwQzgwLjUgNDgwIDE2IDQxNS41IDE2IDMzNmwwLTE1MkMxNiAxMDAuMSA4NC4xIDMyIDE2OCAzMmw4OCAwek04MCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6Il19LFlkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiI3IixpY29uOlszMjAsNTEyLFtdLCIzNyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI1NiAwYzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTIyNCAzODRjLTguOSAxNS4zLTI4LjUgMjAuNC00My44IDExLjVzLTIwLjQtMjguNS0xMS41LTQzLjhMMjMyLjMgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sWmR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjgiLGljb246WzMyMCw1MTIsW10sIjM4IiwiTTMwNCAxNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTMyIDBjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4IDAgMzQuNiAxMy43IDY2IDM2IDg5LTMxLjUgMjMuMy01MiA2MC44LTUyIDEwMyAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw2NCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDIuMi0yMC41LTc5LjctNTItMTAzIDIyLjMtMjMgMzYtNTQuNCAzNi04OXpNMTc2LjEgMjg4bDE1LjkgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OC4xIDB6bTAtNjRMMTQ0IDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDM1LjMtMjguNiA2NC02NCA2NHoiXX0sWGR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjkiLGljb246WzM4NCw1MTIsW10sIjM5IiwiTTIwOCAzMjBjMjkuNiAwIDU3LjEtOC45IDgwLTI0LjJsMCAzMi4yYzAgNDguNi0zOS40IDg4LTg4IDg4TDk2IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMDQgMGM4My45IDAgMTUyLTY4LjEgMTUyLTE1MmwwLTE1Mi4xQzM1MS45IDk2LjQgMjg3LjUgMzIgMjA4IDMybC00OCAwQzgwLjUgMzIgMTYgOTYuNSAxNiAxNzZTODAuNSAzMjAgMTYwIDMyMGw0OCAwem04MC0xNDRjMCA0NC4yLTM1LjggODAtODAgODBsLTQ4IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwczM1LjgtODAgODAtODBsNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MHoiXX0sVFY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9sbGFyLXNpZ24iLGljb246WzMyMCw1MTIsWzEyODE3OCw2MTc4MSwiZG9sbGFyIiwidXNkIl0sIjI0IiwiTTEzNiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTE0LjkgMGMtMjQuOSAwLTQ1LjEgMjAuMi00NS4xIDQ1LjEgMCAyMi41IDE2LjUgNDEuNSAzOC43IDQ0LjdsOTEuNiAxMy4xYzUzLjggNy43IDkzLjcgNTMuNyA5My43IDEwOCAwIDYwLjMtNDguOSAxMDkuMS0xMDkuMSAxMDkuMWwtMTAuOSAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC03MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEzMC45IDBjMjQuOSAwIDQ1LjEtMjAuMiA0NS4xLTQ1LjEgMC0yMi41LTE2LjUtNDEuNS0zOC43LTQ0LjdsLTkxLjYtMTMuMUM1NS45IDI3My41IDE2IDIyNy40IDE2IDE3My4xIDE2IDExMi45IDY0LjkgNjQgMTI1LjEgNjRsMTAuOSAwIDAtNDB6Il19LFFkdD1UVixLZHQ9VFYsSmR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvZyIsaWNvbjpbNTc2LDUxMixbMTI4MDIxXSwiZjZkMyIsIk0zMiAxMTJjMTYuNiAwIDMwLjIgMTIuNiAzMS44IDI4LjdsLjMgNi42QzY1LjggMTYzLjQgNzkuNCAxNzYgOTYgMTc2bDE3OS4xIDAgMTQwLjkgNjAuNCAwIDI0My42YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzMS4zQzI5NiAzNjEgMjY4LjggMzY4IDI0MCAzNjhzLTU2LTctODAtMTkuM0wxNjAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI0NS42Yy0zNy4zLTEzLjItNjQtNDguNi02NC05MC40IDAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTUuOC0zMmM3LjcgMCAxNC45IDMuNiAxOS42IDkuOEwzOTIgMCA0NDQuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFMNDk2IDMyIDU1MiAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgNDQuMi0zNS44IDgwLTgwIDgwbC02NCAwLTcgMjgtMTI0LjctNTMuNCAzMS42LTE0Ny4yQzMzNC4zLTIzLjkgMzQ0LjItMzIgMzU1LjgtMzJ6TTQ0OCA0NGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6Il19LGU3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb3ZpbmciLGljb246WzY0MCw1MTIsW10sImY0ZGYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQyNGMwIDQ4LjYgMzkuNCA4OCA4OCA4OCAyNS4yIDAgNDgtMTAuNiA2NC0yNy42IDE2IDE3IDM4LjggMjcuNiA2NCAyNy42IDQwLjMgMCA3NC4yLTI3LjEgODQuNy02NGwxMzQuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjQgNDMgMCA3OC45LTMwLjkgODYuNS03MS43IDIwLTEwLjggMzMuNS0zMiAzMy41LTU2LjNsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1NzYgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00ODAgMTkybDUwLjcgMCA0NS4zIDQ1LjMgMCA1MC43LTk2IDAgMC05NnpNODggMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMzkyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTIxNiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxJYWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm90YXRlIixpY29uOls1MTIsNTEyLFsxMjgyNjAsInN5bmMtYWx0Il0sImYyZjEiLCJNNDgwLjEgMTkybDcuOSAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTQ0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMlM0NzcuOSAuMiA0NzEgN0w0MTkuMyA1OC44QzM3NSAyMi4xIDMxOCAwIDI1NiAwIDEyNyAwIDIwLjMgOTUuNCAyLjYgMjE5LjUgLjEgMjM3IDEyLjIgMjUzLjIgMjkuNyAyNTUuN3MzMy43LTkuNyAzNi4yLTI3LjFDNzkuMiAxMzUuNSAxNTkuMyA2NCAyNTYgNjQgMzAwLjQgNjQgMzQxLjIgNzkgMzczLjcgMTA0LjNMMzI3IDE1MWMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMzMzQuMyAxOTIgMzQ0IDE5MmwxMzYuMSAwem0yOS40IDEwMC41YzIuNS0xNy41LTkuNy0zMy43LTI3LjEtMzYuMnMtMzMuNyA5LjctMzYuMiAyNy4xYy0xMy4zIDkzLTkzLjQgMTY0LjUtMTkwLjEgMTY0LjUtNDQuNCAwLTg1LjItMTUtMTE3LjctNDAuM0wxODUgMzYxYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTc3LjcgMzIwIDE2OCAzMjBMMjQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ4OGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSA1MTEuOCA0MSA1MDVsNTEuOC01MS44QzEzNyA0ODkuOSAxOTQgNTEyIDI1NiA1MTIgMzg1IDUxMiA0OTEuNyA0MTYuNiA1MDkuNCAyOTIuNXoiXX0sdDd0PUlhZSxGYWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLW1pbnVzIixpY29uOls0NDgsNTEyLFs2MTc2NywibWludXMtc3F1YXJlIl0sImYxNDYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNzIgMjAwbDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sYTd0PUZhZSxyN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tanVzdGlmeSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzOSIsIk00NDggNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem0wIDI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQ0OCA0NDhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyeiJdfSxpN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItY2hlY2siLGljb246WzQ0OCw1MTIsW10sImYyNzQiLCJNMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0yMiAxNjEuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMTg5LjEgMzMxLjIgMTM3IDI3OS4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS45IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzQ3LjMgMTk1LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LE9hZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3MiLGljb246WzUxMiw1MTIsWzEyODUzNSwia2lzcyJdLCJmNTk2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgMjg4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni04MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxvN3Q9T2FlLHM3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXRjaGVuLXNldCIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYSIsIk0yNDAgMTQ0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptNDQuNCAzMkMyNjkuOSAyNDAuMSAyMTIuNSAyODggMTQ0IDI4OCA2NC41IDI4OCAwIDIyMy41IDAgMTQ0UzY0LjUgMCAxNDQgMGM2OC41IDAgMTI1LjkgNDcuOSAxNDAuNCAxMTJsNzEuOCAwYzguOC05LjggMjEuNi0xNiAzNS44LTE2bDEwNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xMDQgMGMtMTQuMiAwLTI3LTYuMi0zNS44LTE2bC03MS44IDB6TTE0NCA4MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDAwIDI0MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOTYgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI4OCA0NjRsMC0xMTIgMjI0IDAgMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHpNNDggMzIwbDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xNiAwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDY0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwIDAgMzIgMTYgMHpNMjQgNDY0bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sbjd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRuYSIsaWNvbjpbMzg0LDUxMixbMTI5NTE2XSwiZjQ3MSIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDU3LjgtMjQuNCAxMDQuOC01Ny40IDE0NC41LTI0LjEgMjguOS01My44IDU1LjEtODMuNiA3OS41IDI5LjggMjQuNSA1OS41IDUwLjYgODMuNiA3OS41IDMzIDM5LjYgNTcuNCA4Ni43IDU3LjQgMTQ0LjUgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBDMCA0MjIuMiAyNC40IDM3NS4yIDU3LjQgMzM1LjUgODEuNSAzMDYuNiAxMTEuMiAyODAuNSAxNDEgMjU2IDExMS4yIDIzMS41IDgxLjUgMjA1LjQgNTcuNCAxNzYuNSAyNC40IDEzNi44IDAgODkuOCAwIDMyIDAgMTQuMyAxNC4zIDAgMzIgMFM2NCAxNC4zIDY0IDMybDI1NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yODMuNSAzODRsLTE4Mi45IDBjLTguMiAxMC41LTE1LjEgMjEuMS0yMC42IDMybDIyNC4yIDBjLTUuNi0xMC45LTEyLjUtMjEuNS0yMC42LTMyek0yMzggMzM2Yy0xNC4zLTEzLTI5LjgtMjUuOC00Ni0zOS0xNi4yIDEzLjEtMzEuNyAyNi00NiAzOWw5MiAwek0xMDAuNSAxMjhsMTgyLjkgMGM4LjItMTAuNSAxNS4xLTIxLjEgMjAuNi0zMkw3OS45IDk2YzUuNiAxMC45IDEyLjUgMjEuNSAyMC42IDMyek0xNDYgMTc2YzE0LjMgMTMgMjkuOCAyNS44IDQ2IDM5IDE2LjItMTMuMSAzMS43LTI2IDQ2LTM5bC05MiAweiJdfSxsN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtcmVhY2hpbmciLGljb246WzM4NCw1MTIsW10sImU1OWQiLCJNMjU2IDY0YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMTUyLjkgMTY5LjNjLTIzLjctOC40LTQ0LjUtMjQuMy01OC44LTQ1LjhMNzQuNiA5NC4yQzY0LjggNzkuNSA0NSA3NS42IDMwLjMgODUuNFMxMS42IDExNSAyMS40IDEyOS44TDQwLjkgMTU5YzE4LjEgMjcuMSA0Mi44IDQ4LjQgNzEuMSA2Mi40TDExMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU4LjRjMjkuMS0xNC4yIDU0LjQtMzYuMiA3Mi43LTY0LjJsMTguMi0yNy45YzkuNi0xNC44IDUuNC0zNC42LTkuNC00NC4zcy0zNC42LTUuNS00NC4zIDkuNEwyOTEgMTIyLjRjLTIxLjggMzMuNC01OC45IDUzLjYtOTguOCA1My42LTEyLjYgMC0yNC45LTItMzYuNi01LjgtLjktLjMtMS44LS43LTIuNy0uOXoiXX0sZzc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzdGUiLGljb246WzUxMiw1MTIsWyJmaWxlLWNsaXBib2FyZCJdLCJmMGVhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDExMiAwIDAtMjI0YzAtNjEuOSA1MC4xLTExMiAxMTItMTEybDY0IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yNDggMTEybC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptNDAgNDhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNsLTU4LjUtNTguNWMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wyODggMTYweiJdfSxjN3Q9ZzcsZDd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1ldGVvciIsaWNvbjpbNTEyLDUxMixbOTczMl0sImY3NTMiLCJNNDkzLjcgLjlsLTE5NC4yIDc0LjcgMi4zLTI5LjNjMS0xMi44LTEyLjgtMjEuNS0yNC0xNS4xTDEwMS4zIDEzMy40QzM4LjYgMTY5LjcgMCAyMzYuNiAwIDMwOSAwIDQyMS4xIDkwLjkgNTEyIDIwMyA1MTIgMjc1LjQgNTEyIDM0Mi4zIDQ3My40IDM3OC42IDQxMC43TDQ4MC44IDIzNC4zYzYuNS0xMS4xLTIuMi0yNS0xNS4xLTI0bC0yOS4zIDIuMyA3NC43LTE5NC4yYy42LTEuNSAuOS0zLjIgLjktNC44IDAtNy41LTYtMTMuNS0xMy41LTEzLjUtMS43IDAtMy4zIC4zLTQuOCAuOXpNMTkyIDE5MmExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6bTAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTYgOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxCYWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VhcnMiLGljb246WzY0MCw1MTIsWyJjb2dzIl0sImYwODUiLCJNNDE1LjkgMjEwLjVjMTIuMi0zLjMgMjUgMi41IDMwLjUgMTMuOEw0NjUgMjYxLjljMTAuMyAxLjQgMjAuNCA0LjIgMjkuOSA4LjFsMzUtMjMuM2MxMC41LTcgMjQuNC01LjYgMzMuMyAzLjNsMTkuMiAxOS4yYzguOSA4LjkgMTAuMyAyMi45IDMuMyAzMy4zbC0yMy4zIDM0LjljMS45IDQuNyAzLjYgOS42IDUgMTQuNyAxLjQgNS4xIDIuMyAxMC4xIDMgMTUuMmwzNy43IDE4LjZjMTEuMyA1LjYgMTcuMSAxOC40IDEzLjggMzAuNWwtNyAyNi4yYy0zLjMgMTIuMS0xNC42IDIwLjMtMjcuMiAxOS41bC00Mi0yLjdjLTYuMyA4LjEtMTMuNiAxNS42LTIxLjkgMjJsMi43IDQxLjljLjggMTIuNi03LjQgMjQtMTkuNSAyNy4ybC0yNi4yIDdjLTEyLjIgMy4zLTI0LjktMi41LTMwLjUtMTMuOGwtMTguNi0zNy42Yy0xMC4zLTEuNC0yMC40LTQuMi0yOS45LTguMWwtMzUgMjMuM2MtMTAuNSA3LTI0LjQgNS42LTMzLjMtMy4zbC0xOS4yLTE5LjJjLTguOS04LjktMTAuMy0yMi44LTMuMy0zMy4zbDIzLjMtMzVjLTEuOS00LjctMy42LTkuNi01LTE0LjdzLTIuMy0xMC4yLTMtMTUuMmwtMzcuNy0xOC42Yy0xMS4zLTUuNi0xNy0xOC40LTEzLjgtMzAuNWw3LTI2LjJjMy4zLTEyLjEgMTQuNi0yMC4zIDI3LjItMTkuNWw0MS45IDIuN2M2LjMtOC4xIDEzLjYtMTUuNiAyMS45LTIybC0yLjctNDEuOGMtLjgtMTIuNiA3LjQtMjQgMTkuNS0yNy4ybDI2LjItN3pNNDQ4LjQgMzQwYTQ0IDQ0IDAgMSAwIC4xIDg4IDQ0IDQ0IDAgMSAwIC0uMS04OHpNMjI0LjktNDUuNWwyNi4yIDdjMTIuMSAzLjMgMjAuMyAxNC43IDE5LjUgMjcuMmwtMi43IDQxLjhjOC4zIDYuNCAxNS42IDEzLjggMjEuOSAyMmw0Mi0yLjdjMTIuNS0uOCAyMy45IDcuNCAyNy4yIDE5LjVsNyAyNi4yYzMuMiAxMi4xLTIuNSAyNC45LTEzLjggMzAuNWwtMzcuNyAxOC42Yy0uNyA1LjEtMS43IDEwLjItMyAxNS4ycy0zLjEgMTAtNSAxNC43bDIzLjMgMzVjNyAxMC41IDUuNiAyNC40LTMuMyAzMy4zTDMwNy4zIDI2MmMtOC45IDguOS0yMi44IDEwLjMtMzMuMyAzLjNMMjM5IDI0MmMtOS41IDMuOS0xOS42IDYuNy0yOS45IDguMWwtMTguNiAzNy42Yy01LjYgMTEuMy0xOC40IDE3LTMwLjUgMTMuOGwtMjYuMi03Yy0xMi4yLTMuMy0yMC4zLTE0LjctMTkuNS0yNy4ybDIuNy00MS45Yy04LjMtNi40LTE1LjYtMTMuOC0yMS45LTIybC00MiAyLjdjLTEyLjUgLjgtMjMuOS03LjQtMjcuMi0xOS41bC03LTI2LjJjLTMuMi0xMi4xIDIuNS0yNC45IDEzLjgtMzAuNWwzNy43LTE4LjZjLjctNS4xIDEuNy0xMC4xIDMtMTUuMiAxLjQtNS4xIDMtMTAgNS0xNC43TDU1LjEgNDYuNWMtNy0xMC41LTUuNi0yNC40IDMuMy0zMy4zTDc3LjYtNmM4LjktOC45IDIyLjgtMTAuMyAzMy4zLTMuM2wzNSAyMy4zYzkuNS0zLjkgMTkuNi02LjcgMjkuOS04LjFsMTguNi0zNy42YzUuNi0xMS4zIDE4LjMtMTcgMzAuNS0xMy44ek0xOTIuNCA4NGE0NCA0NCAwIDEgMCAwIDg4IDQ0IDQ0IDAgMSAwIDAtODh6Il19LGY3dD1CYWUsdTd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXBsdXMiLGljb246WzU3Niw1MTIsWzU4NjA2XSwiZTQ5NCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0xNi0yMDhsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2eiJdfSxwN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNpY2xlcyIsaWNvbjpbNTEyLDUxMixbXSwiZjdhZCIsIk03NS44IDMwNC44TDEgMzUuN0MuMyAzMy4yIDAgMzAuNyAwIDI4LjIgMCAxMi42IDEyLjYgMCAyOC4yIDBMNDgyLjQgMGMxNi4zIDAgMjkuNiAxMy4yIDI5LjYgMjkuNiAwIDEuNi0uMSAzLjMtLjQgNC45TDQzNC42IDQ5Ni4xYy0xLjUgOS4yLTkuNSAxNS45LTE4LjggMTUuOS05LjIgMC0xNy4xLTYuNi0xOC43LTE1LjZMMzM2IDE2MCAzMDcuMiAzMDMuOWMtMS45IDkuMy0xMC4xIDE2LjEtMTkuNiAxNi4xLTkuMiAwLTE3LjItNi4yLTE5LjQtMTUuMUwyNDAgMTkyIDIxMC42IDM2OC4yYy0xLjUgOS4xLTkuNCAxNS44LTE4LjYgMTUuOHMtMTcuMS02LjctMTguNi0xNS44TDE0NCAxOTIgMTE1LjkgMzA0LjNjLTIuMyA5LjItMTAuNiAxNS43LTIwLjEgMTUuNy05LjMgMC0xNy41LTYuMi0yMC0xNS4yeiJdfSxoN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdHJlbmQtdXAiLGljb246WzU3Niw1MTIsW10sImUwOTgiLCJNMzg0IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgyLjctMTY5LjQgMTY5LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDE5MiAyNjkuMyA1NC42IDQwNi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDMyMCAzMDYuNyA0NjYuNyAxNjAgMzg0IDE2MHoiXX0sbTd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24tbm9kZXMtYm9sdCIsaWNvbjpbNTc2LDUxMixbXSwiZTY5YSIsIk0yNDggMTA2LjZjMTguOS05IDMyLTI4LjMgMzItNTAuNmMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NmMwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjdsLTgwLjEtNDUuOGMxLjYtMjAuOC04LjYtNDEuNi0yNy45LTUyLjhDNTcuMiA5NiAyMyAxMDUuMiA3LjUgMTMyUzEuMiAxOTMgMjggMjA4LjVjMS4zIC44IDIuNiAxLjUgNCAyLjFsMCA5MC44Yy0xLjMgLjYtMi43IDEuMy00IDIuMUMxLjIgMzE5LTggMzUzLjIgNy41IDM4MFM1Ny4yIDQxNiA4NCA0MDAuNWMxOS4zLTExLjEgMjkuNC0zMiAyNy44LTUyLjhsNTAuNS0yOC45Yy0xMS41LTExLjItMTkuOS0yNS42LTIzLjgtNDEuN0w4OCAzMDYuMWMtMi42LTEuOC01LjItMy4zLTgtNC43bDAtOTAuOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0uMSAxLjQtLjIgMi44LS4yIDQuM2MwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0xOC45IDktMzIgMjguMy0zMiA1MC42YzAgMzAuOSAyNS4xIDU2IDU2IDU2YzMwLjcgMCA1NS42LTI0LjcgNTYtNTUuMmMtNy41LTEyLjktMTMuNS0yNi44LTE3LjYtNDEuNWMtNC4yLTQtOS4xLTcuMy0xNC40LTkuOWwwLTk4LjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDEwLjUgNmM1LjUtMTUuMyAxMy4xLTI5LjUgMjIuNC00Mi41bC05LjEtNS4yYy4xLTEuNCAuMi0yLjggLjItNC4zYzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4Ljh6TTQ0MC41IDEzMkM0MjUgMTA1LjIgMzkwLjggOTYgMzY0IDExMS41Yy0xOS4zIDExLjEtMjkuNCAzMi0yNy44IDUyLjhsLTUwLjYgMjguOWMxMS41IDExLjIgMTkuOSAyNS42IDIzLjggNDEuN0wzNjAgMjA1LjljLjQgLjMgLjggLjYgMS4zIC45YzIxLjctOS41IDQ1LjYtMTQuOCA3MC44LTE0LjhjMiAwIDQgMCA1LjkgLjFjMTIuMS0xNy4zIDEzLjgtNDAuNiAyLjYtNjAuMXpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTQ3LjktMjI1YzQuMyAzLjcgNS40IDkuOSAyLjYgMTQuOUw0NTIuNCAzNTZsMzUuNiAwYzUuMiAwIDkuOCAzLjMgMTEuNCA4LjJzLS4xIDEwLjMtNC4yIDEzLjRsLTk2IDcyYy00LjUgMy40LTEwLjggMy4yLTE1LjEtLjZzLTUuNC05LjktMi42LTE0LjlMNDExLjYgMzgwIDM3NiAzODBjLTUuMiAwLTkuOC0zLjMtMTEuNC04LjJzLjEtMTAuMyA0LjItMTMuNGw5Ni03MmM0LjUtMy40IDEwLjgtMy4yIDE1LjEgLjZ6Il19LGc3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdWVzdGlvbiIsaWNvbjpbMzIwLDUxMixbMTAwNjcsMTAwNjgsNjE3MzZdLCIzZiIsIk02NCAxNjBjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDQyLjctMjcuOSA3OC45LTY2LjUgOTEuNC0yOC40IDkuMi02MS41IDM1LjMtNjEuNSA3Ni42bDAgMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0YzAtMS43IC42LTQuMSAzLjUtNy4zIDMtMy4zIDcuOS02LjUgMTMuNy04LjQgNjQuMy0yMC43IDExMC44LTgxIDExMC44LTE1Mi4zIDAtODguNC03MS42LTE2MC0xNjAtMTYwUzAgNzEuNiAwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyem05NiAzNTJjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDAtNDAgMTcuOS00MCA0MCAxNy45IDQwIDQwIDQweiJdfSx4N3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYm91bmQiLGljb246WzU3Niw1MTIsW10sImU0ZjkiLCJNNjQgMzJDNjQgMTQuMyA0OS43IDAgMzIgMFMwIDE0LjMgMCAzMkwwIDIxMy45YzAgMTQuMiA1LjEgMjcuOSAxNC4zIDM4LjdMOTkuNiAzNTIgOTYgMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zLjYgMCA4NS4zLTk5LjVjOS4yLTEwLjggMTQuMy0yNC41IDE0LjMtMzguN0w1NzYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTIuOC02OS4zIDkyLjRjLTUuNyA3LjYtMTYuMSA5LjYtMjQuMiA0LjgtOS43LTUuNy0xMi4xLTE4LjctNS4xLTI3LjVMNDQxIDE4MGMxMC44LTEzLjUgOC45LTMzLjMtNC40LTQ0LjVzLTMzLTkuOC00NC41IDMuMmwtNDYuNyA1Mi41QzMyOSAyMDkuNyAzMjAgMjMzLjQgMzIwIDI1OC4xbDAgOTMuOS02NCAwIDAtOTMuOWMwLTI0LjYtOS00OC40LTI1LjQtNjYuOGwtNDYuNy01Mi41Yy0xMS41LTEzLTMxLjMtMTQuNC00NC41LTMuMlMxMjQuMiAxNjYuNCAxMzUgMTgwbDI3LjYgMzQuNWM3IDguOCA0LjcgMjEuOC01LjEgMjcuNS04LjEgNC44LTE4LjYgMi43LTI0LjItNC44TDY0IDE0NC44IDY0IDMyem02NCA0NDhsMCAzMiAxMjggMCAwLTMyIDY0IDAgMCAzMiAxMjggMCAwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMOTYgNDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDB6Il19LGI3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1sdWdnYWdlIixpY29uOls1MTIsNTEyLFtdLCJlNTU0IiwiTTI2NC4zIDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptLTggMTgxLjNsLTIyLjYgMjIuNmMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDEyLjMtNyAyMy0xNy4yIDI4LjQtLjkgNC4yLTIuNCA4LjQtNC4zIDEyLjNsLTY5IDEzOC4xLS44LS40LTI3LjcgNTUuM2MtOS45IDE5LjgtMzMuOSAyNy44LTUzLjcgMTcuOUwxNC42IDUyMWMtMTkuOC05LjktMjcuOC0zMy45LTE3LjktNTMuN0w0Ny4zIDM2Ni4zYzkuOS0xOS44IDMzLjktMjcuOCA1My43LTE3LjlsMzAuNyAxNS4zIDI4LjMtNTYuNmMuMy0uNiAuNC0xLjIgLjQtMS44bDAtMTYuOWMwLS4yIDAtLjMgMC0uNWwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzUuMS0zNS4xYzIyLjgtMjIuOCA1My42LTM1LjYgODUuOC0zNS42IDM2LjkgMCA3MS44IDE2LjggOTQuOCA0NS42TDQyMi4xIDE4MGM2LjEgNy42IDE1LjMgMTIgMjUgMTJsMzMuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMy4yIDBjLTI5LjIgMC01Ni43LTEzLjMtNzUtMzZsLTMuOC00LjcgMCAxMTUuMiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNMNDQ4IDUwNy41YzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4yTDM3MiA0MjguNGMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3ptLjEgMTY1LjhjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNWwtNjguMyA2OC4zYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyMzggNDIxLjFjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDI1Ni40IDM3MXoiXX0sUmFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtYXJyb3ctZG93biIsaWNvbjpbMzg0LDUxMixbImZpbGUtZG93bmxvYWQiXSwiZjU2ZCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTc1IDQ0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2NC02NGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyMyAwLTg2LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4Ni4xLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDY0IDY0eiJdfSx2N3Q9UmFlLHk3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYm9vdGgiLGljb246WzU3Niw1MTIsW10sImY3NTYiLCJNNDAgMjRBNTYgNTYgMCAxIDEgMTUyIDI0IDU2IDU2IDAgMSAxIDQwIDI0em01MS4xIDg4YzIzLjUgMCA0NS41IDExLjMgNTkuMSAzMC40bDQ4LjcgNjguMmM2IDguNCAxNS43IDEzLjQgMjYgMTMuNGwzMS4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMxLjEgMGMtMzEgMC02MC4xLTE1LTc4LjEtNDAuMmwtMi44LTMuOSAwIDgwLjEgNDEuNiAzMS4yQzIwOS44IDM3My4zIDIyNCA0MDEuOCAyMjQgNDMybDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDcwLjQgMzQ4LjhDNDYuMiAzMzAuNyAzMiAzMDIuMiAzMiAyNzJsMC0xMDAuOUMzMiAxMzguNSA1OC41IDExMiA5MS4xIDExMnpNMzIgNTEybDAtMTMyLjdjMy4xIDIuNyA2LjMgNS40IDkuNiA3LjlMOTYgNDI4IDk2IDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnptNTQ0LTg4bDAgOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi0xNjggMGMtNy4xIDAtMTMuOC0zLjEtMTguNC04LjZzLTYuNS0xMi42LTUuMy0xOS42bDMwLjctMTc2LjctNjMuMS0xMzcuNiAwIDcyYy01LjItMS0xMC41LTEuNi0xNi0xLjZsLTMyIDAgMC0xMjBjMC0zMC45IDI1LjEtNTYgNTYtNTZMNTIwIDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAzNjh6TTI4OCAzMzZjNS41IDAgMTAuOC0uNiAxNi0xLjZMMzA0IDUyMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE4NCAzMiAweiJdfSx3N3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jdXN0IixpY29uOls1NzYsNTEyLFtdLCJlNTIwIiwiTTMyOCAzMmMxMzcgMCAyNDggMTExIDI0OCAyNDhsMCA0MC0uNCA4LjJDNTcxLjUgMzY4LjUgNTM3LjQgNDAwIDQ5NiA0MDBsLTEyLjMgMCAyNS4yIDQ0LjFjNi42IDExLjUgMi42IDI2LjItOC45IDMyLjhzLTI2LjIgMi42LTMyLjctOC45bC0zOC44LTY3LjktODAuNCAwLTQ4LjIgNjkuN2MtNy41IDEwLjktMjIuNSAxMy42LTMzLjQgNi4xcy0xMy42LTIyLjUtNi4xLTMzLjRsMjkuMy00Mi4zLTc0LjUgMC01MS43IDcwLjJjLTcuOSAxMC43LTIyLjkgMTIuOS0zMy42IDUuMXMtMTIuOS0yMi45LTUuMS0zMy42bDQwLjUtNTUtNDMtMTYuNC03OS4zIDEwMC41Yy04LjIgMTAuNC0yMy4zIDEyLjItMzMuNyA0cy0xMi4yLTIzLjMtNC0zMy43bDI0MC0zMDQgMi4xLTIuM2M1LjItNS4xIDEyLjUtNy41IDE5LjktNi42IDguNCAxLjEgMTUuNiA2LjUgMTguOSAxNC4zbDIxLjcgNTAuNyA0MC45LTU1LjUgMi4xLTIuNGM1LjEtNS4zIDEyLjUtOCAyMC03LjIgOC41IDEgMTUuOSA2LjUgMTkuMyAxNC40bDQxLjggOTcuNSA2NC4yIDBjMTAuMiAwIDIwIDIgMjkgNS41LTE2LjQtOTQtOTguMy0xNjUuNS0xOTctMTY1LjVsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMHpNNDg4IDI5NmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6TTQzLjUgMzMxLjFDMzYuMiAzMjEuNCAzMiAzMDkuNSAzMiAyOTYuOCAzMiAyNjUuNSA1Ny41IDI0MCA4OC45IDI0MGwyNy42IDAtNzIuOSA5MS4xek0yMjUuMSAyNDBsNDguMiAwIDEuNC0xLjktMTYuOS0zOS41LTMyLjcgNDEuNXptMTA3LjggMGw0Ni43IDAtMTcuMi00MC0yOS41IDQweiJdfSxIYWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctYWx0LXJpZ2h0Il0sImYzMGIiLCJNNTY2LjYgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTEyOCAxMjhjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAzOTYuOSAzODQgMzg0bDAtNjQtMzM2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJjMC0yNi41IDIxLjUtNDggNDgtNDhsMzM2IDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDEyOCAxMjh6Il19LE03dD1IYWUsejd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWRyb3BsZXQiLGljb246WzU3Niw1MTIsW10sImU1OGMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjA4IDMwNGMtMzkuOCAwLTcyLTMyLjItNzItNzIgMC0zMy4yIDM0LjUtNzggNTUuOC0xMDIuNCA4LjctMTAgMjMuOC0xMCAzMi41IDAgMjEuMiAyNC40IDU1LjggNjkuMSA1NS44IDEwMi40IDAgNDgtMzIuMiA3Mi03MiA3MnoiXX0sazd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1tZWRpY2FsIixpY29uOls1NzYsNTEyLFtdLCJlMDVjIiwiTTI0MCAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNTYgNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC01NiAwIDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNTYtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1NiAwIDAtNTZ6TTY2LjcgMzg0bDQyLjUtNDIuNWMyNC0yNCA1Ni42LTM3LjUgOTAuNS0zNy41TDM1MiAzMDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyLjYgMCAxMTkuNy04OC4yYzE3LjgtMTMuMSA0Mi44LTkuMyA1NS45IDguNXM5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM0LjcgMHoiXX0sUzd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNSIsIk0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmwyMDggMCAwLTY0LTIwOCAwek0xOTIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bS02NC02NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOTYgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bTg4LTk2bC0uNiAwYzUuNCA5LjQgOC42IDIwLjMgOC42IDMyIDAgMTMuMi00IDI1LjQtMTAuOCAzNS42IDI0LjkgOC43IDQyLjggMzIuNSA0Mi44IDYwLjQgMCAxMS43LTMuMSAyMi42LTguNiAzMmw4LjYgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTYxLjdjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC0xMS42LTExLjZDNDI5LjUgNzcuNSAzOTYuOSA2NCAzNjMgNjRsLTI3IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTU2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA1NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnoiXX0sQzd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGN1bGF0b3IiLGljb246WzM4NCw1MTIsWzEyODQyNV0sImYxZWMiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNOTYgNjRsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE2IDE2OGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwem04MCAyNGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyOC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek04OCAzNTJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjgtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHptODAgMjRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek02NCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMjMyLTI0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHoiXX0seDc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWludXMiLGljb246WzQ0OCw1MTIsWzgyMTEsODcyMiwxMDEzNCwic3VidHJhY3QiXSwiZjA2OCIsIk0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxMN3Q9eDcscWFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXotYSIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtdXAtYWx0Il0sImY4ODIiLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgwek0yODggNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTAuNyAwLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMzA3LjEgMjI0IDMyMCAyMjRsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMCA3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDYxIDMyIDQ0OCAzMkwzMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek00MTIuNiAyNzMuN0M0MDcuMiAyNjIuOCAzOTYuMSAyNTYgMzg0IDI1NnMtMjMuMiA2LjgtMjguNiAxNy43bC04MCAxNjBjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w3LjItMTQuMyA4OC40IDAgNy4yIDE0LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45bC04MC0xNjB6TTM4NCAzNTkuNmwyMC4yIDQwLjQtNDAuNCAwIDIwLjItNDAuNHoiXX0sVDd0PXFhZSxfN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjEzMSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQyNC43IDM1OC44QzQ1OC45IDMyNC4yIDQ4MCAyNzYuNiA0ODAgMjI0bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDM5LjMtMTUuNyA3NC45LTQxLjMgMTAwLjlMMzU2LjggMjkxQzM3My42IDI3My43IDM4NCAyNTAgMzg0IDIyNGwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMwLjItMTUxLTE1MXptMjk4LjMgNDM0bC00MS40LTQxLjRjLTMuMyAuMi02LjUgLjMtOS44IC4zLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0bDAtMTAuMi00My42LTQzLjZjLTIuOCAzLjktNC40IDguNy00LjQgMTMuOGwwIDQwYzAgOTcuOSA3My4zIDE3OC43IDE2OCAxOTAuNWwwIDQ5LjUtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ5LjVjOS4zLTEuMiAxOC40LTMgMjcuMy01LjR6Il19LF9WPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wZW4iLGljb246WzQ0OCw1MTIsWyJwZW4tc3F1YXJlIiwicGVuY2lsLXNxdWFyZSJdLCJmMTRiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTMyNS44IDEzOS43bDE0LjQgMTQuNGMxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNmwtMjMuOCAyMy44LTcxLTcxIDIzLjgtMjMuOGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMHpNMTE5LjkgMjg5bDkxLjUtOTEuNiA3MSA3MS05MS42IDkxLjVjLTQuMSA0LjEtOS4yIDctMTQuOSA4LjRsLTYwLjEgMTVjLTUuNSAxLjQtMTEuMi0uMi0xNS4yLTQuMnMtNS42LTkuNy00LjItMTUuMmwxNS02MC4xYzEuNC01LjYgNC4zLTEwLjggOC40LTE0Ljl6Il19LEE3dD1fViwkN3Q9X1YsVmFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtZmlzdCIsaWNvbjpbMzg0LDUxMixbOTk5NCwiZmlzdC1yYWlzZWQiXSwiZjZkZSIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMi02NCAwIDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgODAtNjQgMCAwLTgwem0xOTIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NnptOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDUyLjMtMjUuMSA5OC44LTY0IDEyOGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03OC40Yy0xNy4zLTcuOS0zMy4yLTE4LjgtNDYuOS0zMi41TDM3LjUgMzU3LjVDMTMuNSAzMzMuNSAwIDMwMC45IDAgMjY3bDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyeiJdfSxEN3Q9VmFlLFVhZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LXNtcyIsaWNvbjpbNTEyLDUxMixbInNtcyJdLCJmN2NkIiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0xNDAuOCAxNzIuOGwxOS4yIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5LjIgMGMtNS4zIDAtOS42IDQuMy05LjYgOS42czQuMyA5LjYgOS42IDkuNmMyMyAwIDQxLjYgMTguNiA0MS42IDQxLjZzLTE4LjYgNDEuNi00MS42IDQxLjZsLTI1LjYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNS42IDBjNS4zIDAgOS42LTQuMyA5LjYtOS42cy00LjMtOS42LTkuNi05LjZjLTIzIDAtNDEuNi0xOC42LTQxLjYtNDEuNnMxOC42LTQxLjYgNDEuNi00MS42em0xODguOCA0MS42YzAtMjMgMTguNi00MS42IDQxLjYtNDEuNmwxOS4yIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE5LjIgMGMtNS4zIDAtOS42IDQuMy05LjYgOS42czQuMyA5LjYgOS42IDkuNmMyMyAwIDQxLjYgMTguNiA0MS42IDQxLjZzLTE4LjYgNDEuNi00MS42IDQxLjZsLTI1LjYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNS42IDBjNS4zIDAgOS42LTQuMyA5LjYtOS42cy00LjMtOS42LTkuNi05LjZjLTIzIDAtNDEuNi0xOC42LTQxLjYtNDEuNnptLTk4LjMtMzMuOGwyNC43IDQxLjEgMjQuNy00MS4xYzMuNy02LjIgMTEuMS05LjEgMTgtNy4yczExLjcgOC4yIDExLjcgMTUuNGwwIDEwMi40YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDQuNi04LjcgMTQuNWMtMi45IDQuOC04LjEgNy44LTEzLjcgNy44cy0xMC44LTMtMTMuNy03LjhsLTguNy0xNC41IDAgNDQuNmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTEwMi40YzAtNy4yIDQuOC0xMy41IDExLjctMTUuNHMxNC4zIDEgMTggNy4yeiJdfSxFN3Q9VWFlLE43dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW0tY2FyZCIsaWNvbjpbMzg0LDUxMixbXSwiZjdjNCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyNTguNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDgwYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0MCAxMjggMCAwLTcyLTk2IDB6TTY0IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwIDAtNzItODAgMCAwIDQwem0yNTYgMGwwLTQwLTEyOCAwIDAgNzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnptMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTQ4IDAgMCA3MiA4MCAwIDAtNDB6Il19LGphZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS1iYWxhbmNlZCIsaWNvbjpbNjQwLDUxMixbOTg3OCwiYmFsYW5jZS1zY2FsZSJdLCJmMjRlIiwiTTM4NCAzMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzOTguNCA5NmMtNS4yIDI1LjgtMjIuOSA0Ny4xLTQ2LjQgNTcuM2wwIDI5NC43IDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMCAwLTI5NC43Yy0yMy41LTEwLjMtNDEuMi0zMS42LTQ2LjQtNTcuM0wxMjggOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI4IDBjMTQuNi0xOS40IDM3LjgtMzIgNjQtMzJzNDkuNCAxMi42IDY0IDMyem01NS42IDI4OEw1ODQuNCAzMjAgNTEyIDE5NS44IDQzOS42IDMyMHpNNTEyIDQxNmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45LTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjEtMTAuOCA0NC44LTYzLjEgNzguOS0xMjYgNzguOXpNMTI2LjggMTk1LjhMNTQuNCAzMjAgMTk5LjMgMzIwIDEyNi44IDE5NS44ek0uOSAzMzcuMWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45UzExLjcgMzgyIC45IDMzNy4xeiJdfSxQN3Q9amFlLFdhZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXIiLGljb246WzUxMiw1MTIsWzEyODY2NCwiYXV0b21vYmlsZSJdLCJmMWI5IiwiTTEzNS4yIDExNy40bC0yNi4xIDc0LjYgMjkzLjggMC0yNi4xLTc0LjZDMzcyLjMgMTA0LjYgMzYwLjIgOTYgMzQ2LjYgOTZMMTY1LjQgOTZjLTEzLjYgMC0yNS43IDguNi0zMC4yIDIxLjR6TTM5LjYgMTk2LjhMNzQuOCA5Ni4zQzg4LjMgNTcuOCAxMjQuNiAzMiAxNjUuNCAzMmwxODEuMiAwYzQwLjggMCA3Ny4xIDI1LjggOTAuNiA2NC4zbDM1LjIgMTAwLjVjMjMuMiA5LjYgMzkuNiAzMi41IDM5LjYgNTkuMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0zMjAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDI1NmMwLTI2LjcgMTYuNC00OS42IDM5LjYtNTkuMnpNMTI4IDMwNGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yODggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxJN3Q9V2FlLEdhZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9wLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbImNyb3AtYWx0Il0sImY1NjUiLCJNMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMi0zMiAwQzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwOCAwIDAtNjQtMjA4IDAgMC0zNTJ6TTM4NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTIwOCAwIDAgNjQgMjA4IDAgMCAzNTJ6Il19LEY3dD1HYWUsTzd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lZGFsIixpY29uOls0NDgsNTEyLFsxMjc5NDFdLCJmNWEyIiwiTTIyNC4zIDEyOEwxMzkuNy0xMi45Yy02LjUtMTAuOC0yMC4xLTE0LjctMzEuMy05LjFMMjEuOCAyMS4zQzkuOSAyNy4yIDUuMSA0MS42IDExIDUzLjVMODAuNiAxOTIuNmMtMzAuMSAzMy45LTQ4LjMgNzguNS00OC4zIDEyNy40IDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtNDguOS0xOC4zLTkzLjUtNDguMy0xMjcuNEw0MzcuNiA1My41YzUuOS0xMS45IDEuMS0yNi4zLTEwLjctMzIuMkwzNDAuMi0yMi4xYy0xMS4yLTUuNi0yNC45LTEuNi0zMS4zIDkuMUwyMjQuMyAxMjh6bTMwLjggMTQyLjVjMS40IDIuOCA0IDQuNyA3IDUuMWw1MC4xIDcuM2M3LjcgMS4xIDEwLjcgMTAuNSA1LjIgMTZsLTM2LjMgMzUuNGMtMi4yIDIuMi0zLjIgNS4yLTIuNyA4LjNsOC42IDQ5LjljMS4zIDcuNi02LjcgMTMuNS0xMy42IDkuOWwtNDQuOC0yMy42Yy0yLjctMS40LTYtMS40LTguNyAwbC00NC44IDIzLjZjLTYuOSAzLjYtMTQuOS0yLjItMTMuNi05LjlsOC42LTQ5LjljLjUtMy0uNS02LjEtMi43LTguM2wtMzYuMy0zNS40Yy01LjYtNS40LTIuNS0xNC44IDUuMi0xNmw1MC4xLTcuM2MzLS40IDUuNy0yLjQgNy01LjFsMjIuNC00NS40YzMuNC03IDEzLjMtNyAxNi44IDBsMjIuNCA0NS40eiJdfSxCN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsIixpY29uOls1NzYsNTEyLFsxMjgyMjBdLCJmNzBlIiwiTTAgMTEyQzAgNzAuNSAzMS42IDM2LjQgNzIgMzIuNGwwLS40IDI4MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNzYtMTc2IDBjLTM5LjggMC03MiAzMi4yLTcyIDcybDAgNjBjMCAyNC4zLTE5LjcgNDQtNDQgNDRzLTQ0LTE5LjctNDQtNDRsMC0yMjgtNjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00OHpNMjM2LjggNDgwYzcuMS0xMy4xIDExLjItMjguMSAxMS4yLTQ0bDAtNjBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjI3LjIgMHpNODAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxSN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1leGNlbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTY0IDI2Ni43Yy03LjQtMTEtMjIuMy0xNC0zMy4zLTYuN3MtMTQgMjIuMy02LjcgMzMuM0wxNjMuMiAzNTIgMTI0IDQxMC43Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMjgtNDIgMjggNDJjNy40IDExIDIyLjMgMTQgMzMuMyA2LjdzMTQtMjIuMyA2LjctMzMuM0wyMjAuOCAzNTIgMjYwIDI5My4zYzcuNC0xMSA0LjQtMjUuOS02LjctMzMuM3MtMjUuOS00LjQtMzMuMyA2LjdsLTI4IDQyLTI4LTQyeiJdfSxIN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyIixpY29uOls1MTIsNTEyLFtdLCJmMGIwIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzMyMCA0OTIuOSAzMjAgNDgwbDAtMTc4LjcgMTgyLjYtMTgyLjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0eiJdfSxxN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bSIsaWNvbjpbNTEyLDUxMixbMTI5MzQ1XSwiZjU2OSIsIk01MDEuMiA3Ni4xYzExLjEtNy4zIDE0LjItMjIuMSA2LjktMzMuMnMtMjIuMS0xNC4yLTMzLjItNi45TDM3MC4yIDEwNC41QzMzNS44IDk4LjcgMjk3IDk2IDI1NiA5NiAxMTQuNiA5NiAwIDEyOCAwIDIwOEwwIDM2OGMwIDMxLjMgMjcuNCA1OC44IDcyIDc4LjdMNzIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMTkuNGMzMyA4LjkgNzEuMSAxNC41IDExMiAxNi4xTDIzMiAzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMy41YzQwLjktMS42IDc5LTcuMiAxMTItMTYuMUwzOTIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDIuN2M0NC42LTE5LjkgNzItNDcuNCA3Mi03OC43bDAtMTYwYzAtNDEuMS0zMC4yLTY5LjUtNzguOC04Ny40bDY3LjktNDQuNXpNMzA3LjQgMTQ1LjZsLTY0LjYgNDIuM2MtMTEuMSA3LjMtMTQuMiAyMi4xLTYuOSAzMy4yczIyLjEgMTQuMiAzMy4yIDYuOWwxMTEuMS03Mi44YzE0LjcgMy4yIDI3LjkgNyAzOS40IDExLjUgMzguOCAxNS4xIDQ0LjQgMzAuNiA0NC40IDQxLjMgMCAuOC0yLjcgMTcuMi00NiAzNS45LTM4LjkgMTYuOC05NiAyOC4xLTE2MiAyOC4xUzEzMi45IDI2MC43IDk0IDI0My45Yy00My4zLTE4LjctNDYtMzUuMS00Ni0zNS45IDAtMTAuNiA1LjYtMjYuMiA0NC40LTQxLjMgMzguMy0xNC45IDk1LjQtMjIuNyAxNjMuNi0yMi43IDE4IDAgMzUuMSAuNSA1MS40IDEuNnoiXX0sVjd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcC1waW4iLGljb246WzMyMCw1MTIsWzEyODIwNV0sImYyNzYiLCJNMTkyIDI4NC40QzI1Ni4xIDI2OS45IDMwNCAyMTIuNSAzMDQgMTQ0IDMwNCA2NC41IDIzOS41IDAgMTYwIDBTMTYgNjQuNSAxNiAxNDRjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40TDEyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5NS42ek0xNjggOTZjLTMwLjkgMC01NiAyNS4xLTU2IDU2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNCA0Ni42LTEwNCAxMDQtMTA0IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSxZYWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NhbGUtdW5iYWxhbmNlZC1mbGlwIixpY29uOls2NDAsNTEyLFsiYmFsYW5jZS1zY2FsZS1yaWdodCJdLCJmNTE2IiwiTTExOC4yIDYyLjRDMTAxLjUgNTYuOCA5Mi40IDM4LjYgOTggMjEuOVMxMjEuNy0zLjkgMTM4LjUgMS42bDExMyAzNy43YzEzLjktMjMuNSAzOS42LTM5LjMgNjguOS0zOS4zIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMy0uMiA1LjktLjUgOC44bDEyMi42IDQwLjljMTYuOCA1LjYgMjUuOCAyMy43IDIwLjIgNDAuNXMtMjMuNyAyNS44LTQwLjUgMjAuMkwzNjYuNyAxNDUuMmMtNC41IDMuMi05LjMgNS45LTE0LjQgOC4ybDAgMzI2LjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIxLTkuMi0zNy4yLTI3LTQ0LjItNDlsLTEyNS45LTQyek0yMDAuOCAyODhMMTI4LjMgMTYzLjggNTUuOSAyODggMjAwLjggMjg4em0tNzIuNCA5NmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45LTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjEtMTAuOCA0NC44LTYzLjEgNzguOS0xMjYgNzguOXptMzgyLjgtOTIuMmwtNzIuNCAxMjQuMiAxNDQuOSAwLTcyLjQtMTI0LjJ6bTEyNiAxNDEuM0M2MjYuNCA0NzggNTc0LjEgNTEyIDUxMS4yIDUxMnMtMTE1LjItMzQtMTI2LTc4LjljLTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjF6Il19LFU3dD1ZYWUsajd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImU0YmQiLCJNOS40IDkuNEMyMS45LTMuMSA0Mi4xLTMuMSA1NC42IDkuNEwxMjggODIuNyAxMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE4LjcgMC03My40LTczLjRDLTMuMSA0Mi4xLTMuMSAyMS45IDkuNCA5LjR6TTIwMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek01MDIuNiA1NC42TDQyOS4zIDEyOCA0NDggMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxOC43IDczLjQtNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0tNDUuMyA0NDhMMzg0IDQyOS4zIDM4NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC43IDAgNzMuNCA3My40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwek05LjQgNDU3LjRMODIuNyAzODQgNjQgMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjctNzMuNCA3My40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3oiXX0sVzd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlIixpY29uOls1MTIsNTEyLFsxMjgzODYsOTk5Myw2MTQ0M10sImYwZTAiLCJNNDggNjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgMTUuMSA3LjEgMjkuMyAxOS4yIDM4LjRsMjA4IDE1NmMxNy4xIDEyLjggNDAuNSAxMi44IDU3LjYgMGwyMDgtMTU2YzEyLjEtOS4xIDE5LjItMjMuMyAxOS4yLTM4LjQgMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggNjR6TTAgMTk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTg4LTE5OC40IDE0OC44Yy0zNC4xIDI1LjYtODEuMSAyNS42LTExNS4yIDBMMCAxOTZ6Il19LEc3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWJ5IixpY29uOlszODQsNTEyLFtdLCJmNzdjIiwiTTEyMCA4OGE3MiA3MiAwIDEgMSAxNDQgMCA3MiA3MiAwIDEgMSAtMTQ0IDB6TTcuNyAxNDQuNWMxMy0xNy45IDM4LTIxLjggNTUuOS04LjhMOTkuOCAxNjJjMjYuOCAxOS41IDU5LjEgMzAgOTIuMiAzMHM2NS40LTEwLjUgOTIuMi0zMGwzNi4yLTI2LjRjMTcuOS0xMyA0Mi45LTkgNTUuOSA4LjhzOSA0Mi45LTguOCA1NS45bC0zNi4yIDI2LjRjLTEzLjYgOS45LTI4LjEgMTguMi00My4zIDI1bDAgMzYuMy0xOTIgMCAwLTM2LjNjLTE1LjItNi43LTI5LjctMTUuMS00My4zLTI1TDE2LjUgMjAwLjNjLTE3LjktMTMtMjEuOC0zOC04LjgtNTUuOXpNOTcuNSAzMjkuM2w2MC42IDUzLTI2IDM3LjIgMjQuMyAyNC4zYzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42cy00MC45IDE1LjYtNTYuNiAwbC00OC00OEMzOCA0MzguNiAzNi4xIDQxNyA0Ny4yIDQwMS4xbDUwLjItNzEuOHptMTI4LjUgNTNsNjAuNi01MyA1MC4yIDcxLjhjMTEuMSAxNS45IDkuMiAzNy41LTQuNSA1MS4ybC00OCA0OGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZsMjQuMy0yNC4zLTI2LTM3LjJ6Il19LFphZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtZG93biIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1kb3duIl0sImYxNTAiLCJNMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwek0yMjQgMzUyYy02LjcgMC0xMy0yLjgtMTcuNi03LjdsLTEwNC0xMTJjLTYuNS03LTguMi0xNy4yLTQuNC0yNS45UzExMC41IDE5MiAxMjAgMTkybDIwOCAwYzkuNSAwIDE4LjIgNS43IDIyIDE0LjRzMi4xIDE4LjktNC40IDI1LjlsLTEwNCAxMTJjLTQuNSA0LjktMTAuOSA3LjctMTcuNiA3Ljd6Il19LFk3dD1aYWUsWjd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQiLGljb246WzUxMiw1MTIsW10sImU1N2QiLCJNMjYuOSAyMDYuOUwzLjcgNDQ0LjlDMS44IDQ2My43IDE2LjYgNDgwIDM1LjUgNDgwbDE3Mi43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjljMC04LjMgNi43LTE1IDE1LTE1IDUuNSAwIDEwLjYgMyAxMy4yIDcuOWw4Ni4xIDE1OWM4LjQgMTUuNSAyNC42IDI1LjEgNDIuMiAyNS4xbDY0LjEgMGMxOC45IDAgMzMuNy0xNi4zIDMxLjgtMzUuMUw0ODUuNiAyMDcuMWMtMS45LTE5LjYtMTIuOC0zNy4zLTI5LjUtNDcuOEwyODAuOSA0OC4zYy0xNS43LTEwLTM1LjgtOS45LTUxLjUgLjFMNTYuMSAxNTkuMmMtMTYuNSAxMC42LTI3LjMgMjguMi0yOS4yIDQ3Ljd6Il19LFg3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhIixpY29uOlszODQsNTEyLFs5N10sIjQxIiwiTTIyMS41IDUxLjdDMjE2LjYgMzkuOCAyMDQuOSAzMiAxOTIgMzJzLTI0LjYgNy44LTI5LjUgMTkuN2MtOTMuMyAyMjQtMTQ2LjcgMzUyLTE2MCAzODQtNi44IDE2LjMgLjkgMzUgMTcuMiA0MS44czM1LS45IDQxLjgtMTcuMmwzMS44LTc2LjMgMTk3LjMgMCAzMS44IDc2LjNjNi44IDE2LjMgMjUuNSAyNCA0MS44IDE3LjJzMjQtMjUuNSAxNy4yLTQxLjhjLTEzLjMtMzItNjYuNy0xNjAtMTYwLTM4NHpNMjY0IDMyMGwtMTQ0IDAgNzItMTcyLjggNzIgMTcyLjh6Il19LFE3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXJhY2h1dGUtYm94IixpY29uOls1MTIsNTEyLFtdLCJmNGNkIiwiTTEyOCAyMjRDMTI4IDE1Mi4yIDE0NC4zIDg4LjQgMTY5LjUgNDMuNCAxOTUuMS0yLjQgMjI2LjYtMjQgMjU2LTI0czYwLjkgMjEuNiA4Ni41IDY3LjRDMzY3LjcgODguNCAzODQgMTUyLjIgMzg0IDIyNGwtMTA0IDAgMCA5NiA4IDBjOS4zIDAgMTguMSAyIDI2IDUuNWwxMTguNC0xMDEuNS0uNSAwYzAtNzguNC0xNy43LTE1MC42LTQ3LjYtMjA0LTYuMS0xMS0xMi45LTIxLjMtMjAuMy0zMC45IDg2LjUgMzUuOSAxNDcuOCAxMTUuMSAxNDcuOCAyMTguOSAwIDctMy4xIDEzLjctOC40IDE4LjJMMzQ3LjQgMzYwLjFjMyA3LjQgNC42IDE1LjQgNC42IDIzLjlsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTguNCAxLjYtMTYuNSA0LjYtMjMuOUw4LjQgMjI2LjJDMy4xIDIyMS43IDAgMjE1IDAgMjA4IDAgMTA0LjIgNjEuMyAyNC45IDE0Ny44LTEwLjkgMTQwLjUtMS40IDEzMy43IDkgMTI3LjYgMjAgOTcuNyA3My40IDgwIDE0NS42IDgwIDIyNGwtLjUgMCAxMTguNCAxMDEuNWM4LTMuNSAxNi44LTUuNSAyNi01LjVsOCAwIDAtOTYtMTA0IDB6Il19LEs3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWFycm93LWRvd24iLGljb246WzY0MCw1MTIsW10sImYyMTgiLCJNMCA4QzAtNS4zIDEwLjctMTYgMjQtMTZsNDUuMyAwYzI3LjEgMCA1MC4zIDE5LjQgNTUuMSA0NmwuNCAyIDE4Ny4yIDAgMCAxMDIuMS0zMS0zMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xIDE3Ny40IDBjMjAgMCAzNS4xIDE4LjIgMzEuNCAzNy45TDUzNy44IDIzNS44Yy01LjcgMzAuMy0zMi4xIDUyLjItNjIuOSA1Mi4ybC0zMDMuNiAwIDUuMSAyOC4zYzIuMSAxMS40IDEyIDE5LjcgMjMuNiAxOS43TDQ1NiAzMzZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1NS45IDBjLTM0LjggMC02NC42LTI0LjktNzAuOC01OS4xTDc3LjIgMzguNmMtLjctMy44LTQtNi42LTcuOS02LjZMMjQgMzJDMTAuNyAzMiAwIDIxLjMgMCA4ek0xNjAgNDY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTIyNCAwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LEo3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGNhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sQVY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtYXJyb3ctdXAiLGljb246WzU3Niw1MTIsWzYyMzM4LCJjbG91ZC11cGxvYWQiLCJjbG91ZC11cGxvYWQtYWx0Il0sImYwZWUiLCJNMTQ0IDQ4MGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC02My40IDQxLTExNy4yIDk3LjktMTM2LjUtMS4zLTcuNy0xLjktMTUuNS0xLjktMjMuNSAwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NCA1NS40IDAgMTAzLjUgMzEuMyAxMjcuNiA3Ny4xIDE0LjItOC4zIDMwLjgtMTMuMSA0OC40LTEzLjEgNTMgMCA5NiA0MyA5NiA5NiAwIDE1LjctMy44IDMwLjYtMTAuNSA0My43IDQ0IDIwLjMgNzQuNSA2NC43IDc0LjUgMTE2LjMgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTMwNCAwek0zMDUgMTkxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtNzIgNzJjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMS0zMSAwIDEwMi4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDIuMSAzMSAzMWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTcyLTcyeiJdfSxlZnQ9QVYsdGZ0PUFWLGFmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdCIsaWNvbjpbNTEyLDUxMixbNjE5NDZdLCI0MCIsIk0yNTYgNjRDMTUwIDY0IDY0IDE1MCA2NCAyNTZzODYgMTkyIDE5MiAxOTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJDMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMCA1MTIgMTE0LjYgNTEyIDI1NmwwIDMyYzAgNTMtNDMgOTYtOTYgOTYtMjkuMyAwLTU1LjYtMTMuMi03My4yLTMzLjktMjIuOCAyMS01My4zIDMzLjktODYuOCAzMy45LTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4czU3LjMtMTI4IDEyOC0xMjhjMjcuOSAwIDUzLjcgOC45IDc0LjcgMjQuMSA1LjctNSAxMy4xLTguMSAyMS4zLTguMSAxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJjMC0xMDYtODYtMTkyLTE5Mi0xOTJ6bTY0IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6Il19LCRWPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluZGlhbi1ydXBlZS1zaWduIixpY29uOlszMjAsNTEyLFsiaW5kaWFuLXJ1cGVlIiwiaW5yIl0sImUxYmMiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNzYuNyAwYzE3LjcgMTkuOCAzMC4xIDQ0LjYgMzQuNyA3Mmw0MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MiAwYy0xMC40IDYyLjItNjAuOCAxMTAuOS0xMjMuOCAxMTguOUwyNzQuNiA0MjJjMTQuNCAxMC4zIDE3LjcgMzAuMyA3LjQgNDQuNnMtMzAuMyAxNy43LTQ0LjYgNy40TDEzLjQgMzE0QzIuMSAzMDYtMi43IDI5MS41IDEuNSAyNzguMlMxOC4xIDI1NiAzMiAyNTZsODAgMGMzNS44IDAgNjYuMS0yMy41IDc2LjMtNTZMMjQgMjAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2NC4zIDBjLTEwLjItMzIuNS00MC41LTU2LTc2LjMtNTZMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0scmZ0PSRWLGlmdD0kVixvZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2siLGljb246WzU3Niw1MTIsWzEyODY2Niw5OTUxXSwiZjBkMSIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDU1Ny4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek01MTIgMjg4bDAtNTAuNy00NS4zLTQ1LjMtNTAuNyAwIDAgOTYgOTYgMHpNMTkyIDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yMzIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxYYWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhbGtib2FyZC11c2VyIixpY29uOls2NDAsNTEyLFsiY2hhbGtib2FyZC10ZWFjaGVyIl0sImY1MWMiLCJNMTI4IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwLTk2IDAgMC0xNmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNi0xMjkuMSAwYzEwLjktMTguOCAxNy4xLTQwLjcgMTcuMS02NCAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOC01LjQgMC0xMC44IC4zLTE2IDFsMC00OXpNMzMzIDQ0OGMtNS4xLTI0LjItMTYuMy00Ni4xLTMyLjEtNjRMNjA4IDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjExIDB6TTY0IDI3MmE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6TTAgNDgwYzAtNTMgNDMtOTYgOTYtOTZsOTYgMGM1MyAwIDk2IDQzIDk2IDk2IDAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHNmdD1YYWUsbmZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItY2hlY2siLGljb246WzY0MCw1MTIsW10sImY0ZmMiLCJNMjg2IDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3OCA1MTJjLTE2LjQgMC0yOS43LTEzLjMtMjkuNy0yOS43IDAtOTguNSA3OS44LTE3OC4zIDE3OC4zLTE3OC4zbDU5LjQgMHpNNTg1LjcgMTA1LjljNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUw1MjIuMSAyNzQuOWMtNC4yIDUuNy0xMC43IDkuNC0xNy43IDkuOHMtMTQtMi4yLTE4LjktNy4zbC00Ni40LTQ4Yy05LjItOS41LTktMjQuNyAuNi0zMy45IDkuNS05LjIgMjQuNy04LjkgMzMuOSAuNmwyNi41IDI3LjQgODUuNi0xMTcuN3pNMjU2LjMgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHoiXX0sbGZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbmluamEiLGljb246WzQ0OCw1MTIsWzEyOTM5OV0sImY1MDQiLCJNMzUyIDEyOGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOC01Ny4yIDAtMTA1LjYtMzcuNS0xMjItODkuMy0xLjEgMS4zLTIuMiAyLjYtMy41IDMuOC0xNS44IDE1LjgtMzguOCAyMC43LTUzLjYgMjIuMS04LjEgLjgtMTQuNi01LjctMTMuOC0xMy44IDEuNC0xNC43IDYuMy0zNy44IDIyLjEtNTMuNiA1LjgtNS44IDEyLjYtMTAuMSAxOS42LTEzLjQtNy0zLjItMTMuOC03LjYtMTkuNi0xMy40LTE1LjgtMTUuOC0yMC43LTM4LjgtMjIuMS01My42LS44LTguMSA1LjctMTQuNiAxMy44LTEzLjggMTQuNyAxLjQgMzcuOCA2LjMgNTMuNiAyMi4xIDQuOCA0LjggOC43IDEwLjQgMTEuNyAxNi4xIDIxLjMtNDEuMiA2NC4zLTY5LjQgMTEzLjgtNjkuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHpNMTQ0IDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMMTYwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZ6bS0xLjQgMjExbDY3IDUwLjJjOC41IDYuNCAyMC4zIDYuNCAyOC44IDBsNjctNTAuMmM2LjUtNC45IDE1LjItNi4yIDIyLjYtMi44IDYxLjQgMjguMiAxMDQuMSA5MC4yIDEwNC4xIDE2Mi4xIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDQ1LjcgNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTcyIDQyLjctMTM0IDEwNC4xLTE2Mi4xIDcuNC0zLjQgMTYuMS0yLjEgMjIuNiAyLjh6Il19LGNmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFudC13aWx0IixpY29uOls1MTIsNTEyLFtdLCJlNWFhIiwiTTM0NC0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMGwwIDYuMmMyOS4zIDEyLjIgNDggNDEuMyA0OCA3Ni45IDAgMjcuOS0yNS4zIDc0LjgtNjYgMTExLjctMy44IDMuNS04LjggNS4zLTE0IDUuM3MtMTAuMi0xLjgtMTQtNS4zYy00MC43LTM2LjgtNjYtODMuNy02Ni0xMTEuNyAwLTM1LjYgMTguNy02NC43IDQ4LTc2LjlsMC02LjJjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCA0MjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yOTZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCAzOC4yYzI5LjMgMTIuMiA0OCA0MS4zIDQ4IDc2LjkgMCAyNy45LTI1LjMgNzQuOC02NiAxMTEuNy0zLjggMy41LTguOCA1LjMtMTQgNS4zcy0xMC4yLTEuOC0xNC01LjNDMjUuMyA0MDUuOSAwIDM1OSAwIDMzMS4xIDAgMjk1LjQgMTguNyAyNjYuNCA0OCAyNTQuMkw0OCAyMTZjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjAgMjAuMiAwIDM5LjMgNSA1NiAxMy44TDIyNCA4OGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHoiXX0sUWFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlaWdodC1zY2FsZSIsaWNvbjpbNDQ4LDUxMixbIndlaWdodCJdLCJmNDk2IiwiTTExNi42IDE5MmMtMy0xMC4xLTQuNi0yMC45LTQuNi0zMiAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMlMzMzYgOTguMSAzMzYgMTYwYzAgMTEuMS0xLjYgMjEuOS00LjYgMzJsLTcxIDAgMjQuNi00NC4zYzYuNC0xMS42IDIuMy0yNi4yLTkuMy0zMi42cy0yNi4yLTIuMy0zMi42IDkuM2wtMzcuNiA2Ny43LTg4LjggMHpNMTI4IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBDMjkzLjMgMTEuOSAyNjAgMCAyMjQgMHMtNjkuMyAxMS45LTk2IDMyeiJdfSxkZnQ9UWFlLFNVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LXJpZ2h0IixpY29uOlsyNTYsNTEyLFtdLCJmMGRhIiwiTTI0OS4zIDIzNS44YzEwLjIgMTIuNiA5LjUgMzEuMS0yLjIgNDIuOGwtMTI4IDEyOGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTNjQuNSAzOTYuOSA2NC41IDM4NGwwLTI1NmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDEyOCAxMjggMi4yIDIuNHoiXX0sZmZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsb3Jpbi1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTg0IiwiTTMxNC43IDMyYy0zOC44IDAtNzMuNyAyMy4zLTg4LjYgNTkuMUwxNzAuNyAyMjQgNjQgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDgwIDAtNDUuMSAxMDguM2MtNSAxMS45LTE2LjYgMTkuNy0yOS41IDE5LjdMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM3LjMgMGMzOC44IDAgNzMuNy0yMy4zIDg4LjYtNTkuMUwyMTMuMyAyODggMzIwIDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODAgMCA0NS4xLTEwOC4zYzUtMTEuOSAxNi42LTE5LjcgMjkuNS0xOS43TDM1MiA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzcuMyAweiJdfSxDVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWxsIixpY29uOls0NDgsNTEyLFsxMjgyNzYsNjE2MDJdLCJmMGYzIiwiTTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMuMkMxMTkgNTAgNjQgMTE0LjYgNjQgMTkybDAgMjEuN2MwIDQ4LjEtMTYuNCA5NC44LTQ2LjQgMTMyLjRMNy44IDM1OC4zQzIuNyAzNjQuNiAwIDM3Mi40IDAgMzgwLjUgMCA0MDAuMSAxNS45IDQxNiAzNS41IDQxNmwzNzYuOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4ybC05LjgtMTIuMkM0MDAuNCAzMDguNSAzODQgMjYxLjggMzg0IDIxMy43bDAtMjEuN2MwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOGwwLTMuMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTYyIDQ2NGM3LjEgMjcuNiAzMi4yIDQ4IDYyIDQ4czU0LjktMjAuNCA2Mi00OGwtMTI0IDB6Il19LHVmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXJpLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxYzgiLCJNMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MS41YzcuOS0xIDE1LjktMS41IDI0LTEuNXMxNi4xIC41IDI0IDEuNUwyMTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDU0YzU4LjkgMjMuOCAxMDMuMiA3NiAxMTYuMiAxMzkuNyAzLjUgMTcuMy03LjcgMzQuMi0yNSAzNy43cy0zNC4yLTcuNy0zNy43LTI1Yy02LjctMzMuMi0yNi40LTYxLjgtNTMuNC04MC4ybDAgODEuOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwMS44Yy03LjgtMS41LTE1LjgtMi4yLTI0LTIuMnMtMTYuMiAuOC0yNCAyLjJMMTY4IDIzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgxLjhjLTMzLjggMjMtNTYgNjEuOS01NiAxMDUuOCAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYuOSAwQzE4LjUgMzUwIDAgMzA1LjIgMCAyNTYgMCAxNzUuNCA0OS42IDEwNi40IDEyMCA3OGwwLTU0YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxwZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWlsbC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWVkIiwiTTI5Ny0yMi4yYzEyLjMgNSAxOC4yIDE5IDEzLjIgMzEuM2wtMjkgNzEuM0MzMzguOCA4NS4xIDM4NCAxMzMuMyAzODQgMTkybDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4LTYuNCAwLTEyLjUgMS4yLTE4IDMuNWwtMzAgNzMuOCAwIDE3OC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjEuMi01Ny44IDE0Mi4yYy01IDEyLjMtMTkgMTguMi0zMS4zIDEzLjJzLTE4LjItMTktMTMuMi0zMS4zTDE2MCAyNTEuMyAxNjAgMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDE3LjcgMCA0MDBMMCAxMTJjMC0xNy43IDE0LjMtMzIgMzItMzIgMTAuOSAwIDIwLjUgNS40IDI2LjMgMTMuNyAxNi04LjcgMzQuMy0xMy43IDUzLjctMTMuNyAzMS4zIDAgNTkuNyAxMi45IDgwIDMzLjYgOS42LTkuOCAyMC45LTE3LjggMzMuNS0yMy41TDI2NS44LTljNS0xMi4zIDE5LTE4LjIgMzEuMy0xMy4yeiJdfSxLYWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNub3dib2FyZGluZyIsaWNvbjpbNTc2LDUxMixbMTI3OTM4LCJzbm93Ym9hcmRpbmciXSwiZjdjZSIsIk00MjQuNSAxNmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTY2LjQgNDUuNWMxMC4yLTE0LjQgMzAuMi0xNy45IDQ0LjYtNy43bDI3MiAxOTJjMTQuNCAxMC4yIDE3LjkgMzAuMiA3LjcgNDQuNnMtMzAuMiAxNy45LTQ0LjYgNy43bC05Mi4yLTY1LjEtNjIuMiA1My4zIDMyLjEgMjYuN2MxOC4yIDE1LjIgMjguOCAzNy43IDI4LjggNjEuNWwwIDg3LjggNzcuNSAxNS4yYzYuMiAxLjIgMTIuNiAuOSAxOC43LS44bDQxLjItMTEuOGMxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC00MS4yIDExLjhjLTEzLjQgMy44LTI3LjQgNC40LTQxLjEgMS44TDg3LjEgNDQzLjNjLTE3LjItMy40LTMzLTExLjgtNDUuMy0yNC4xTDE1LjUgMzkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjYuMiAyNi4yYzUuNiA1LjYgMTIuOCA5LjQgMjAuNiAxMWw2NC4yIDEyLjYgMC0xMjMuN2MwLTI3LjcgMTItNTQgMzIuOC03Mi4ybDY5LTYwLjQtODguMi02Mi4zQzE1OS42IDgwIDE1Ni4yIDYwIDE2Ni40IDQ1LjV6bTU4LjEgMzc1LjdsNjQgMTIuNSAwLTc1LjNjMC00LjctMi4xLTkuMy01LjgtMTIuM2wtNTguMi00OC41IDAgMTIzLjZ6Il19LGhmdD1LYWUsSmFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR0eSIsaWNvbjpbNTEyLDUxMixbInRlbGV0eXBlIl0sImYxZTQiLCJNNDUwLjIgMjY2LjhjMTUuOCA2LjUgMzQuMSAuMyA0Mi42LTE0LjZsMi40LTQuMmMyNy45LTQ4LjkgMjMuNi0xMTguOC0zMS4zLTE1NC41LTEyNi04Mi0yODkuNi04Mi00MTUuNiAwLTU0LjkgMzUuNy01OS4zIDEwNS43LTMxLjMgMTU0LjVsMi40IDQuMmM4LjUgMTQuOSAyNi43IDIxLjEgNDIuNiAxNC42bDgxLjktMzMuN2MxMy45LTUuNyAyMi40LTE5LjkgMjAuOS0zNC45bC01LjEtNTFjNjIuNS0yMSAxMzAuOC0xOS45IDE5Mi42IDMuM2wtNC44IDQ3LjdjLTEuNSAxNSA3IDI5LjIgMjAuOSAzNC45bDgxLjkgMzMuN3pNMzIgMzUyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTk2IDBhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHpNNjQgNDE2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMzUyIDMyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6TTI1NiAzMjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em02NCAzMmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwem0xMjgtMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek0xMjggNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LG1mdD1KYWUsZ2Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXJlY3RhbmdsZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMjQgNzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTAgMTUyYzUzIDAgOTYgNDMgOTYgOTZsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjRjMC01MyA0My05NiA5Ni05NnptOTYtNjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTY4IDI3Mi4zYy0xNS4yIDIyLjgtMjQgNTAuMi0yNCA3OS43bDAgMjRjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC00Ni44IDBDODkuNiA0MDAgODAgMzkwLjQgODAgMzc4LjdMODAgMzY4YzAtNTAuMyAzOC43LTkxLjYgODgtOTUuN3pNNDI3LjkgNDAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0bDAtMjRjMC0yOS41LTguOC01Ni45LTI0LTc5LjcgNDkuMyA0LjEgODggNDUuMyA4OCA5NS43bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC00Ni44IDB6TTk2IDE5MmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSxEVj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUiLGljb246WzM4NCw1MTIsWzEyODI0MSwibW9iaWxlLWFuZHJvaWQiLCJtb2JpbGUtcGhvbmUiXSwiZjNjZSIsIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6bTcyIDQxNmw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSx4ZnQ9RFYsYmZ0PURWLHZmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdHVybi10by1kb3RzIixpY29uOls0NDgsNTEyLFtdLCJlNGMxIiwiTTI2NS40LTYuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDI4NS4zIDY0IDM1MiA2NGM1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjYuNyAwIDI1LjQgMjUuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDgwLTgwem0tODIuNyAyNzJsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNjIuNyA0MDAgOTYgNDAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDgxLjcgMCA0NjRsMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDY2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDB6TTMyMCAzNjhhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek02NCAxNjBhNjQgNjQgMCAxIDEgMC0xMjggNjQgNjQgMCAxIDEgMCAxMjh6Il19LHlmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleGNsYW1hdGlvbiIsaWNvbjpbMTI4LDUxMixbMTAwNjksMTAwNzEsNjE3MzhdLCIyMSIsIk02NCA0MzJjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MGMwLTIyLjEgMTcuOS00MCA0MC00MHpNNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIC42IDAgMS4xIDAgMS43bC0xNiAzMDRjLS45IDE3LTE1IDMwLjMtMzIgMzAuM1MzMyAzNzAuNyAzMiAzNTMuN0wxNiA0OS43YzAtLjYgMC0xLjEgMC0xLjcgMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LHdmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaHVyY2giLGljb246WzUxMiw1MTIsWzk5NjJdLCJmNTFkIiwiTTI4MC04YzAtMTMuMy0xMC43LTI0LTI0LTI0UzIzMi0yMS4zIDIzMi04bDAgMjQtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgNDgtOTguNiA2NS44QzEyMCAxODYuNyAxMTIgMjAxLjYgMTEyIDIxNy43bDAgMzguMy03OS44IDQ1LjZDMTIuMyAzMTMgMCAzMzQuMiAwIDM1Ny4xTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDc0LjcgMCA4NS40IDAgMzIwIDBsNjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTkwLjljMC0yMy0xMi4zLTQ0LjItMzIuMi01NS42TDQwMCAyNTYgNDAwIDIxNy43YzAtMTYtOC0zMS0yMS40LTM5LjlsLTk4LjYtNjUuOCAwLTQ4IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0yNHpNMjU2IDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDgwLTEyOCAwIDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LE1mdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2dnbGUtb2ZmIixpY29uOls1NzYsNTEyLFtdLCJmMjA0IiwiTTM4NCAxMjhjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNDU0LjcgMzg0IDM4NCAzODRsLTE5MiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHM1Ny4zLTEyOCAxMjgtMTI4bDE5MiAwek01NzYgMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyTDE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OGwxOTIgMGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMTkyIDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0semZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob2UtcHJpbnRzIixpY29uOls1NzYsNTEyLFtdLCJmNTRiIiwiTTI5NiAxOTJjLTIxLjEtMTIuMS00Mi4zLTI0LjItNzItMjkuM2wwLTE0MC4zQzI1Ny43IDEzIDMxMS40IDAgMzUyIDAgNDQ4IDAgNTc2IDQ4IDU3NiAxMjhzLTExOS42IDk2LTE3NiA5NmMtNDggMC03Ni0xNi0xMDQtMzJ6TTEyOCAzMmw0OCAwIDAgMTI4LTQ4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjR6TTIzMiAzMjBjMjgtMTYgNTYtMzIgMTA0LTMyIDU2LjQgMCAxNzYgMTYgMTc2IDk2UzM4NCA1MTIgMjg4IDUxMmMtNDAuNSAwLTk0LjMtMTMtMTI4LTIyLjRsMC0xNDAuM2MyOS43LTUuMiA1MC45LTE3LjMgNzItMjkuNHpNNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0bDQ4IDAgMCAxMjgtNDggMHoiXX0sa2Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGViIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LExVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbGxldCIsaWNvbjpbNTEyLDUxMixbXSwiZjU1NSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDcyIDEyOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNTguNyA4MCA3MiA4MGwzODQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCAzMnpNNDE2IDI1NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGI3PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lc3NhZ2UiLGljb246WzUxMiw1MTIsWyJjb21tZW50LWFsdCJdLCJmMjdhIiwiTTAgMzUyTDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzIwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDUzLTQzIDk2LTk2IDk2bC0xMjAgMGMtNS4yIDAtMTAuMiAxLjctMTQuNCA0LjhMMTY2LjQgNTM5LjJjLTQuMiAzLjEtOS4yIDQuOC0xNC40IDQuOC0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZ6Il19LFNmdD1iNyxDZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvcGh5IixpY29uOls1MTIsNTEyLFsxMjc5NDJdLCJmMDkxIiwiTTE0NC4zIDBsMjI0IDBjMjYuNSAwIDQ4LjEgMjEuOCA0Ny4xIDQ4LjItLjIgNS4zLS40IDEwLjYtLjcgMTUuOGw0OS42IDBjMjYuMSAwIDQ5LjEgMjEuNiA0Ny4xIDQ5LjgtNy41IDEwMy43LTYwLjUgMTYwLjctMTE4IDE5MC41LTE1LjggOC4yLTMxLjkgMTQuMy00Ny4yIDE4LjgtMjAuMiAyOC42LTQxLjIgNDMuNy01Ny45IDUxLjhsMCA3My4xIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC03My4xYy0xNi03LjctMzUuOS0yMi01NS4zLTQ4LjMtMTguNC00LjgtMzguNC0xMi4xLTU3LjktMjMuMS01NC4xLTMwLjMtMTAyLjktODcuNC0xMDkuOS0xODkuOS0xLjktMjguMSAyMS00OS43IDQ3LjEtNDkuN2w0OS42IDBjLS4zLTUuMi0uNS0xMC40LS43LTE1LjgtMS0yNi41IDIwLjYtNDguMiA0Ny4xLTQ4LjJ6TTEwMS41IDExMmwtNTIuNCAwYzYuMiA4NC43IDQ1LjEgMTI3LjEgODUuMiAxNDkuNi0xNC40LTM3LjMtMjYuMy04Ni0zMi44LTE0OS42ek0zODAgMjU2LjhjNDAuNS0yMy44IDc3LjEtNjYuMSA4My4zLTE0NC44TDQxMSAxMTJjLTYuMiA2MC45LTE3LjQgMTA4LjItMzEgMTQ0Ljh6Il19LGVyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWRpenp5IixpY29uOls1MTIsNTEyLFsiZGl6enkiXSwiZjU2NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMzA0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxMZnQ9ZXJlLFRmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWN0ZXJpYSIsaWNvbjpbNjQwLDUxMixbXSwiZTA1OSIsIk0yNTYtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMWM4LjYgMi4yIDE2LjkgNS42IDI0LjggMTAuM0wzMTEgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTYuMyA2LjNjNC42IDcuOCA4IDE2LjIgMTAuMyAyNC44bDExIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExIDBjLTIuMiA4LjYtNS42IDE2LjktMTAuMyAyNC44TDM0NSAxNTFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMS0zMC4xIDMwLjEgNC4xIDQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xYy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMMjE3IDI3OWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02LjMtNi4zYy03LjggNC42LTE2LjIgOC0yNC44IDEwLjNsMCAxMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExYy04LjYtMi4yLTE2LjktNS42LTI0LjgtMTAuM0w3MyAzMTNjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNi4zLTYuM2MtNC42LTcuOC04LTE2LjItMTAuMy0yNC44bC0xMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExIDBjMi4yLTguNiA1LjYtMTYuOSAxMC4zLTI0LjhMMzkgMTY5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMWMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMTAzIDEwNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjEgMzAuMS0zMC4xLTQuMS00LjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45UzE5MS42LTIuMyAyMDEgN2w2LjMgNi4zYzcuOC00LjYgMTYuMi04IDI0LjgtMTAuM2wwLTExYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0xMjggMjU2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjQwIDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yOTYgNDBsMCAxMWM4LjYgMi4yIDE2LjkgNS42IDI0LjggMTAuM0w1NjcgMTk5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNi4zIDYuM2M0LjYgNy44IDggMTYuMiAxMC4zIDI0LjhsMTEgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEgMGMtMi4yIDguNi01LjYgMTYuOS0xMC4zIDI0LjhMNjAxIDM0M2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xLTMwLjEgMzAuMSA0LjEgNC4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjFjLTEwIDEwLTIwIDIwLTMwLjEgMzAuMUw0NzMgNDcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTYuMy02LjNjLTcuOCA0LjYtMTYuMiA4LTI0LjggMTAuM2wwIDExYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTFjLTguNi0yLjItMTYuOS01LjYtMjQuOC0xMC4zTDMyOSA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNi4zLTYuM2MtNC42LTcuOC04LTE2LjItMTAuMy0yNC44bC0xMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExIDBjMi4yLTguNiA1LjYtMTYuOSAxMC4zLTI0LjhMMjk1IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjFjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDM1OSAyOTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xIDMwLjEtMzAuMS00LjEtNC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNi4zIDYuM2M3LjgtNC42IDE2LjItOCAyNC44LTEwLjNsMC0xMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek00NDggMzg0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LGU3PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhci1kZWFmIixpY29uOls1MTIsNTEyLFsiZGVhZiIsImRlYWZuZXNzIiwiaGFyZC1vZi1oZWFyaW5nIl0sImYyYTQiLCJNNTAyLjYgNTQuNmwtNDAgNDBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDQwLTQwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bS0zMjAgMzIwbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxMjgtMTI4YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjUtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM2M5LjctODggODQuMy0xNTYuNSAxNzQuOS0xNTYuNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdsMCA2LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTItMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzggMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45IDAtNjEuOS01MC4xLTExMi0xMTItMTEyem0wIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxfZnQ9ZTcsQWZ0PWU3LCRmdD1lNyx0cmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWFycm93cyIsaWNvbjpbNTEyLDUxMixbInBlb3BsZS1hcnJvd3MtbGVmdC1yaWdodCJdLCJlMDY4IiwiTTMyIDY0QTY0IDY0IDAgMSAxIDE2MCA2NCA2NCA2NCAwIDEgMSAzMiA2NHpNMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzLjIgMCA2LjQgLjIgOS41IC43TDkzLjEgMjA1LjFDNjUgMjMzLjIgNjUgMjc4LjggOTMuMSAzMDYuOWw1NiA1NmMzLjQgMy40IDcgNi40IDEwLjkgOWwwIDkyLjFjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTIwLjZDMTIuOSAzMzIuNCAwIDMxMS43IDAgMjg4bDAtNjR6TTM1MiA2NGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTY2LjkgMTQxLjFsLTQ0LjQtNDQuNGMzLjEtLjUgNi4zLS43IDkuNS0uN2w2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40TDQ4MCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTIuMWMzLjktMi42IDcuNS01LjYgMTAuOS05bDU2LTU2YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOHpNMzAyLjggMTc3LjhjOS0zLjcgMTkuMy0xLjcgMjYuMiA1LjJsNTYgNTZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTU2IDU2Yy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4yUzI4OCAzMjEuNyAyODggMzEybDAtMjQtNjQgMCAwIDI0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTU2LTU2Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw1Ni01NmM2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzIyNCAxOTAuMyAyMjQgMjAwbDAgMjQgNjQgMCAwLTI0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnoiXX0sRGZ0PXRyZSxFZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtY2xhcHBpbmciLGljb246WzUxMiw1MTIsW10sImUxYTgiLCJNMzQ0IDhsMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0UzM0NC01LjMgMzQ0IDh6TTIyMCAxMC43bDMyIDQ4YzcuNCAxMSA0LjQgMjUuOS02LjcgMzMuM3MtMjUuOSA0LjQtMzMuMy02LjdsLTMyLTQ4Yy03LjQtMTEtNC40LTI1LjkgNi43LTMzLjNTMjEyLjYtLjMgMjIwIDEwLjd6TTEzNSAxMTljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjkyLjcgMjQyLjdjMTAuMSAxMC4xIDI3LjMgMi45IDI3LjMtMTEuM2wwLTM5LjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE1My42YzAgNTcuMS0zMCAxMTAtNzguOSAxMzkuNC02NCAzOC40LTE0NS44IDI4LjMtMTk4LjUtMjQuNEw3IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDUzIDUzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDIzIDI2NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDkzIDkzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDU1IDE4NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDExNyAxMTdjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFsLTkzLTkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNNDMzLjEgNDg0LjljLTI0LjIgMTQuNS01MC45IDIyLjEtNzcuNyAyMy4xIDQ4LjEtMzkuNiA3Ni42LTk5IDc2LjYtMTYyLjRsMC05OC4xYzguMi0uMSAxNi02LjQgMTYtMTZsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjR6TTQ1My4zIDRjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNsLTMyIDQ4Yy03LjQgMTEtMjIuMyAxNC0zMy4zIDYuN3MtMTQtMjIuMy02LjctMzMuM2wzMi00OGM3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN3oiXX0sTmZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLWNvdmlkLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlNGE5IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTgzLTgzIDExLjQtMTEuNGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xMS4zIDExLjMtMjMuOC0yMy44YzE3LjktMjMuNSAyOS45LTUxLjcgMzQuMS04Mi4zbDMzLjYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTMzLjYgMGMtNC4yLTMwLjctMTYuMy01OC44LTM0LjEtODIuM2wyMy44LTIzLjggMTEuMyAxMS4zYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NDAuNyA0Ni43Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDExLjMgMTEuMy0yMy44IDIzLjhDMzcwLjggOTcuOSAzNDIuNyA4NS44IDMxMiA4MS42bDAtMzMuNiAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzM0MS4zIDAgMzI4IDBMMjQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjZjLTMwLjcgNC4yLTU4LjggMTYuMy04Mi4zIDM0LjFMMTU3LjkgOTIgMTY5LjIgODAuNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDEyMy45IDU4LjEgNDEtMjQuOXpNMTEzLjYgMjMybC0zMy42IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAzMy42IDBjNC4yIDMwLjcgMTYuMyA1OC44IDM0LjEgODIuM2wtMjMuOCAyMy44LTExLjMtMTEuM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1Ni42IDU2LjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMS4zLTExLjMgMjMuOC0yMy44YzIzLjUgMTcuOSA1MS43IDI5LjkgODIuMyAzNC4xbDAgMzMuNi0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMC0zMy42YzEzLjQtMS44IDI2LjQtNS4yIDM4LjctOS45TDEyMy41IDE5My4zYy00LjcgMTIuMy04IDI1LjItOS45IDM4Ljd6Il19LGFyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1kYXlzIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItYWx0Il0sImYwNzMiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAyNDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTI4IDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTY0IDM2OGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LFBmdD1hcmUscnJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYW1vbmQtdHVybi1yaWdodCIsaWNvbjpbNTEyLDUxMixbImRpcmVjdGlvbnMiXSwiZjVlYiIsIk0yMTUgMTdMMTcgMjE1QzYuMSAyMjUuOSAwIDI0MC42IDAgMjU2czYuMSAzMC4xIDE3IDQxTDIxNSA0OTVjMTAuOSAxMC45IDI1LjYgMTcgNDEgMTdzMzAuMS02LjEgNDEtMTdMNDk1IDI5N2MxMC45LTEwLjkgMTctMjUuNiAxNy00MXMtNi4xLTMwLjEtMTctNDFMMjk3IDE3QzI4Ni4xIDYuMSAyNzEuNCAwIDI1NiAwcy0zMC4xIDYuMS00MSAxN3pNMzg1IDI1N2wtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtNzguMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDBjMC0zOS44IDMyLjItNzIgNzItNzJsNzguMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjl6Il19LElmdD1ycmUsRmZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtdXAiLGljb246WzM4NCw1MTIsWzk3NTddLCJmMGE2IiwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBTOTYgMTQuMyA5NiAzMmwwIDIwOC02NCAwIDAtMjA4ek0yMjQgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tNjQtNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNjAgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjEuNyAwYy00Mi40IDAtODMuMS0xNi45LTExMy4xLTQ2LjlMMzcuNSA0NTMuNUMxMy41IDQyOS41IDAgMzk2LjkgMCAzNjNsMC0yN2MwLTM1LjMgMjguNy02NCA2NC02NGw4OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJ6Il19LE9mdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZXppZXItY3VydmUiLGljb246WzY0MCw1MTIsW10sImY1NWIiLCJNMjk2IDEzNmwwLTQ4IDQ4IDAgMCA0OC00OCAwek0yODggMzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNC0xMTguNCAwQzExMS4yIDYyLjcgODkuMyA0OCA2NCA0OCAyOC43IDQ4IDAgNzYuNyAwIDExMnMyOC43IDY0IDY0IDY0YzI1LjMgMCA0Ny4yLTE0LjcgNTcuNi0zNmw2Ni45IDBjLTU4LjkgMzkuNi05OC45IDEwNS0xMDQgMTgwTDgwIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMuMyAwYzUuOS02NyA0OC41LTEyMy40IDEwNy41LTE0OS4xIDguNiAxMi43IDIzLjIgMjEuMSAzOS44IDIxLjFsNjQgMGMxNi42IDAgMzEuMS04LjQgMzkuOC0yMS4xIDU5IDI1LjcgMTAxLjYgODIuMSAxMDcuNSAxNDkuMWwtMy4zIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00LjUgMGMtNS03NS00NS4xLTE0MC40LTEwNC0xODBsNjYuOSAwYzEwLjQgMjEuMyAzMi4zIDM2IDU3LjYgMzYgMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRjLTI1LjMgMC00Ny4yIDE0LjctNTcuNiAzNmwtMTE4LjQgMCAwLTRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTg4IDM3Nmw0OCAwIDAgNDgtNDggMCAwLTQ4em00MTYgNDhsMC00OCA0OCAwIDAgNDgtNDggMHoiXX0sQmZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oYWxmLWRyZXNzIixpY29uOlszODQsNTEyLFtdLCJlNTQ4IiwiTTE0My40LTMuOWM5LjctMTYuOCAyNy44LTI4LjEgNDguNi0yOC4xIDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMjUuNC0xNi45IDQ2LjgtNDAgNTMuN2wwIDBjLTUuMSAxLjUtMTAuNCAyLjMtMTYgMi4zLTMwLjkgMC01Ni0yNS4xLTU2LTU2bDAgMGMwLTEwLjEgMi43LTE5LjcgNy40LTI3Ljl6TTMxOC4zIDI5OS4xTDI3MiAyMzYuNyAyNzIgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwIDAtLjQgMC0yMzguNmMzNi4yIDQuNCA2OS4yIDIzLjQgOTEuMiA1M2w3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTE3NiAxMTNsMCAzOTljMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMjUuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw0My0xMjktNDguMyA2NS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NWMyMi0yOS42IDU1LjEtNDguNiA5MS4yLTUzeiJdfSxpcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBvbGwtaG9yaXpvbnRhbCIsaWNvbjpbNDQ4LDUxMixbInBvbGwtaCJdLCJmNjgyIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYgMTUyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xMTIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHptNzIgODBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIwOCAwek0xOTIgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6Il19LFJmdD1pcmUsSGZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NmQiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0scWZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtbGl6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmMjU4IiwiTTAgMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0bDIzOC41IDBjMzYuOCAwIDcxLjIgMTggOTIuMSA0OC4ybDExMy41IDE2NGMxMyAxOC43IDE5LjkgNDEgMTkuOSA2My44bDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTMuOC03OC4xLTUwLjItMTYxLjkgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw0OCAxNjBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSxvcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhbGtib2FyZCIsaWNvbjpbNTc2LDUxMixbImJsYWNrYm9hcmQiXSwiZjUxYiIsIk05NiA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgNjR6TTQ4MCAzODRsLTY0IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0xNjAgMCAwLTI1NiAzODQgMCAwIDI1NnoiXX0sVmZ0PW9yZSxzcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtcmlnaHQtZnJvbS1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJleHRlcm5hbC1saW5rLWFsdCJdLCJmMzVkIiwiTTI5MC40IDE5LjhDMjk1LjQgNy44IDMwNy4xIDAgMzIwIDBMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlMNDAwIDE1Ny4zIDI0Ni42IDMxMC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzNTQuNyAxMTIgMjk3LjQgNTQuNmMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0Ljl6TTAgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDgwYzAgNDQuMi0zNS44IDgwLTgwIDgwTDgwIDUxMmMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCAxNzZ6Il19LFVmdD1zcmUsamZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1mdWxsIixpY29uOls1MTIsNTEyLFsxMjg5OTcsMTI4OTk4LDEyODk5OSwxMjllMywxMjkwMDEsMTI5MDAyLDEyOTAwMywxMTAzNSwxMTAzNl0sImY0NWMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0eiJdfSxXZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdmVyIixpY29uOls1MTIsNTEyLFtdLCJlMTM5IiwiTTMxMC40IDE2QzM0Ni42IDE2IDM3NiA0NS40IDM3NiA4MS43bDAgNS4yYzAgMTEuMi0yLjcgMjIuMy03LjggMzIuMmwtMi4zIDQuMi0yMC4xIDMzLjVjLTEuMSAxLjktMS4yIDMuNC0xLjEgNC41IC4yIDEuMyAuOSAyLjcgMi4xIDMuOXMyLjYgMS45IDMuOSAyLjFjMS4xIC4yIDIuNiAuMSA0LjUtMS4xbDMzLjUtMjAuMSA0LjItMi4zYzEwLTUuMSAyMS03LjggMzIuMi03LjhsNS4yIDBjMzYuMiAwIDY1LjYgMjkuNCA2NS42IDY1LjcgMCAxNy40LTYuOSAzNC4xLTE5LjIgNDYuNGwtMS4zIDEuM2MtMy43IDMuNy0zLjcgOS42IDAgMTMuM2wxLjMgMS4zYzEyLjMgMTIuMyAxOS4yIDI5IDE5LjIgNDYuNCAwIDM2LjItMjkuNCA2NS42LTY1LjYgNjUuNmwtNS4yIDBjLTEyLjggMC0yNS41LTMuNS0zNi41LTEwLjFsLTMzLjUtMjAuMWMtMS45LTEuMS0zLjQtMS4yLTQuNS0xLjEtMS4zIC4yLTIuNyAuOS0zLjkgMi4xcy0xLjkgMi42LTIuMSAzLjljLS4yIDEuMS0uMSAyLjYgMS4xIDQuNWwyMC4xIDMzLjVjNi42IDExIDEwLjEgMjMuNiAxMC4xIDM2LjVsMCA1LjJjMCAzNi4yLTI5LjQgNjUuNi02NS42IDY1LjYtMTcuNCAwLTM0LjEtNi45LTQ2LjQtMTkuMmwtMS4zLTEuM2MtMy43LTMuNy05LjYtMy43LTEzLjMgMGwtMS4zIDEuM2MtMTIuMyAxMi4zLTI5IDE5LjItNDYuNCAxOS4yLTM2LjIgMC02NS42LTI5LjQtNjUuNy02NS42bDAtNS4yYzAtMTIuOCAzLjUtMjUuNSAxMC4xLTM2LjVsMjAuMS0zMy41YzEuMS0xLjkgMS4yLTMuNCAxLjEtNC41LS4yLTEuMy0uOS0yLjctMi4xLTMuOXMtMi42LTEuOS0zLjktMi4xYy0uNS0uMS0xLjItLjEtMS45IDBsLTIuNSAxLTMzLjUgMjAuMWMtMTEgNi42LTIzLjYgMTAuMS0zNi41IDEwLjFsLTUuMiAwQzQ1LjQgMzc2IDE2IDM0Ni42IDE2IDMxMC40IDE2IDI5MyAyMi45IDI3Ni4zIDM1LjIgMjY0bDEuMy0xLjMgMS4yLTEuNWMyLjEtMy4xIDIuMS03LjIgMC0xMC4zbC0xLjItMS41LTEuMy0xLjNDMjIuOSAyMzUuOCAxNiAyMTkuMSAxNiAyMDEuNyAxNiAxNjUuNCA0NS40IDEzNiA4MS43IDEzNmw1LjIgMGMxMi44IDAgMjUuNSAzLjUgMzYuNSAxMC4xbDMzLjUgMjAuMSAyLjUgMWMuNyAuMSAxLjQgLjEgMS45IC4xIDEuMy0uMiAyLjctLjkgMy45LTIuMXMxLjktMi42IDIuMS0zLjljLjEtLjUgLjEtMS4yLS4xLTEuOWwtMS0yLjUtMjAuMS0zMy41Yy02LjYtMTEtMTAuMS0yMy42LTEwLjEtMzYuNWwwLTUuMmMwLTM2LjIgMjkuNC02NS43IDY1LjctNjUuNyAxNy40IDAgMzQuMSA2LjkgNDYuNCAxOS4ybDEuMyAxLjNjMy43IDMuNiA5LjYgMy43IDEzLjMgMGwxLjMtMS4zIDQuOC00LjRDMjgwLjUgMjEuMyAyOTUuMSAxNiAzMTAuNCAxNnoiXX0sR2Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlZXRoLW9wZW4iLGljb246WzUxMiw1MTIsW10sImY2MmYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDgwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTAgMjcyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzA0em04MC0xNjBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0em0xMjggMGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjR6TTgwIDExMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0zMjAgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0ek00OCAzODRsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnptMTQ0IDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMTEyLTE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyeiJdfSxFVj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXJzLXN0YWdnZXJlZCIsaWNvbjpbNTEyLDUxMixbInJlb3JkZXIiLCJzdHJlYW0iXSwiZjU1MCIsIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTY0IDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5NiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0sWWZ0PUVWLFpmdD1FVixYZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FyZWhvdXNlIixpY29uOls1NzYsNTEyLFtdLCJmNDk0IiwiTTAgMTQyLjFMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzM3LjljMC0yNy41LTE3LjYtNTItNDMuOC02MC43TDMwMy4yIDUuMWMtOS45LTMuMy0yMC41LTMuMy0zMC40IDBMNDMuOCA4MS40QzE3LjYgOTAuMSAwIDExNC42IDAgMTQyLjF6TTQ2NCAyNTZsLTM1MiAwIDAgNjQgMzUyIDAgMC02NHpNMTEyIDQxNmwzNTIgMCAwLTY0LTM1MiAwIDAgNjR6bTM1MiAzMmwtMzUyIDAgMCA2NCAzNTIgMCAwLTY0eiJdfSxRZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3dhdGNoYm9vayIsaWNvbjpbNTEyLDUxMixbXSwiZjVjMyIsIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzY4YzAgNTMtNDMgOTYtOTYgOTZTMCA0NjkgMCA0MTZMMCA0OHpNMjQwIDQwOS42bDAtMjcxLjUgNDguMS00OC4xYzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDY3LjkgNjcuOWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwyNDAgNDA5LjZ6TTIwNS41IDUxMmwxOTItMTkyIDY2LjYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNTguNSAwek04MCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2TDgwIDY0ek02NCAyMDhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNOTYgNDQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sS2Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbXBncm91bmQiLGljb246WzUxMiw1MTIsWzk5NzhdLCJmNmJiIiwiTTM0NC44IDUyLjNjMTEuMi0xMy43IDkuMi0zMy44LTQuNS00NXMtMzMuOC05LjItNDUgNC41bC0zOS4yIDQ4LTM5LjItNDhDMjA1LjYtMS45IDE4NS40LTQgMTcxLjcgNy4ycy0xNS43IDMxLjQtNC41IDQ1bDQ3LjQgNTgtMjAyIDI0Ni45QzQuNSAzNjcuMSAwIDM3OS42IDAgMzkyLjZMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zOS40YzAtMTIuOS00LjUtMjUuNS0xMi43LTM1LjVsLTIwMi0yNDYuOSA0Ny40LTU4ek0yNTYgMjg4bDExMiAxMjgtMjI0IDAgMTEyLTEyOHoiXX0sSmZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWFycm93LXJpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJlNTUyIiwiTTEwNC41IDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptLTggMTgxLjNMNzMuOSAyMjcuOWMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzUuMS0zNS4xYzIyLjgtMjIuOCA1My42LTM1LjYgODUuOC0zNS42IDM2LjkgMCA3MS44IDE2LjggOTQuOCA0NS42TDI2Mi4zIDE4MGM2LjEgNy42IDE1LjMgMTIgMjUgMTJsMzMuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMy4yIDBjLTI5LjIgMC01Ni43LTEzLjMtNzUtMzZsLTMuOC00LjcgMCAxMTUuMiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNsMTIuNiA4OC4xYzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4ybC0xMi42LTg4LjFjLTEuMS03LjctNS0xNC43LTEwLjktMTkuOEwxMzAgMzQ3LjVjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3pNOTYuNiAzNzFjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNUw1NS4xIDUzNC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2OC4zLTY4LjNjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDk2LjYgMzcxek01MDUuNSAzNDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMDIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyeiJdfSxldXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xhc3NlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjUzMCIsIk0xNDMuMyA5NmMtMTQgMC0yNi41IDkuMi0zMC42IDIyLjZMNzAuNCAyNTYgMjI0IDI1NmMxNy43IDAgMzIgMTQuMyAzMiAzMmw2NCAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDE1My42IDAtNDIuMy0xMzcuNEM0NTkuMiAxMDUuMiA0NDYuOCA5NiA0MzIuNyA5Nkw0MDAgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIuNyAwYzQyLjEgMCA3OS40IDI3LjUgOTEuOCA2Ny44bDQ1LjQgMTQ3LjVjNC4xIDEzLjIgNi4xIDI2LjkgNi4xIDQwLjdsMCA5NmMwIDUzLTQzIDk2LTk2IDk2bC02NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtMzItNjQgMCAwIDMyYzAgNTMtNDMgOTYtOTYgOTZsLTY0IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC05NmMwLTEzLjggMi4xLTI3LjUgNi4xLTQwLjdMNTEuNSA5OS44QzYzLjkgNTkuNSAxMDEuMSAzMiAxNDMuMyAzMkwxNzYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyLjcgMHpNNjQgMzIwbDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0LTEyOCAwem00MTYgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NC0xMjggMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDB6Il19LG5yZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGF1c2UiLGljb246WzUxMiw1MTIsWzYyMDkyLCJwYXVzZS1jaXJjbGUiXSwiZjI4YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjI0IDE5MmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSx0dXQ9bnJlLGF1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZW1vcnkiLGljb246WzUxMiw1MTIsW10sImY1MzgiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA3LjRDMCAxNDIuMiA0LjQgMTQ4IDEwLjEgMTUxLjcgMjMuMyAxNjAuMyAzMiAxNzUuMSAzMiAxOTJzLTguNyAzMS43LTIxLjkgNDAuM0M0LjQgMjM2IDAgMjQxLjggMCAyNDguNmwwIDU1LjQgNTEyIDAgMC01NS40YzAtNi44LTQuNC0xMi42LTEwLjEtMTYuMy0xMy4yLTguNi0yMS45LTIzLjQtMjEuOS00MC4zczguNy0zMS43IDIxLjktNDAuM2M1LjctMy43IDEwLjEtOS41IDEwLjEtMTYuM2wwLTcuNGMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNTEyIDQxNmwwLTY0LTUxMiAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMCAwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyNCA4OCAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI0IDg4IDAgMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTYwIDE2MGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxydXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2lmdCIsaWNvbjpbNTEyLDUxMixbMTI3ODczXSwiZjA2YiIsIk0zMjEuNSA2OC44QzMyOS4xIDU1LjkgMzQyLjkgNDggMzU3LjggNDhsMi4yIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTczLjMgMCAzNC44LTU5LjJ6bS0xMzEgMGwzNC44IDU5LjItNzMuMyAwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwbDIuMiAwYzE0LjkgMCAyOC44IDcuOSAzNi4zIDIwLjh6bTg5LjYtMjQuM2wtMjQuMSA0MS0yNC4xLTQxQzIxNS43IDE2LjkgMTg2LjEgMCAxNTQuMiAwTDE1MiAwYy00OC42IDAtODggMzkuNC04OCA4OCAwIDE0LjQgMy41IDI4IDkuNiA0MEwzMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDEuNiAwYzYuMS0xMiA5LjYtMjUuNiA5LjYtNDAgMC00OC42LTM5LjQtODgtODgtODhsLTIuMiAwYy0zMS45IDAtNjEuNSAxNi45LTc3LjcgNDQuNHpNNDgwIDI3MmwtMjAwIDAgMCAyMDggMTM2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNDR6bS0yNDggMGwtMjAwIDAgMCAxNDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTM2IDAgMC0yMDh6Il19LGl1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXdoZWF0IixpY29uOls1MTIsNTEyLFtdLCJlNTJhIiwiTTE3Ni0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2ek01NiAwbDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNTYgNDhDNDIuNyA0OCAzMiAzNy4zIDMyIDI0UzQyLjcgMCA1NiAwek0yNCA3MmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCAxMjBDMTAuNyAxMjAgMCAxMDkuMyAwIDk2UzEwLjcgNzIgMjQgNzJ6bTggOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI3MiAwYzAtOC44IDcuMi0xNiAxNi0xNiA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODB6TTQwMC0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2em04MCAxNDRjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDExMmM4LjggMCAxNiA3LjIgMTYgMTYgMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMwNHpNNDggNDE2bDAgNDggNDggMGMwLTI2LjUtMjEuNS00OC00OC00OHpNOTYgMzA0bC00OCAwIDAgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6TTQ2NCA0MTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDQ4IDAgMC00OHpNNDE2IDMwNGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwwLTQ4LTQ4IDB6bS05NiA4MGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6Il19LG91dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW5nZW9uIixpY29uOls1MTIsNTEyLFtdLCJmNmQ5IiwiTTM0Ny41IDE0NC44YzYuNSA1LjQgMTIuNSAxMS4zIDE4IDE3LjcgOC43IDEwLjIgMjMuNyAxNCAzNS4xIDYuOWw1NC4xLTMzLjhjMTEuMi03IDE0LjctMjEuNyA2LjktMzIuMi0xNS4zLTIwLjUtMzMuNS0zOC42LTU0LjEtNTMuOC0xMC40LTcuNi0yNC43LTQuMy0zMS44IDYuNGwtMzUuMSA1Mi42Yy03LjggMTEuNi0zLjggMjcuMyA3IDM2LjJ6TTMyNy44IDQxLjFjOC42LTEyLjkgMi45LTMwLjUtMTIuMi0zNC4xLTE5LjEtNC42LTM5LjEtNy01OS42LTdzLTQwLjQgMi40LTU5LjYgN2MtMTUuMSAzLjYtMjAuOCAyMS4yLTEyLjIgMzQuMWw0MCA2MGM1LjIgNy44IDE0LjUgMTEuNyAyMy45IDExLjIgNS4yLS4zIDEwLjYtLjMgMTUuOCAwIDkuNCAuNSAxOC43LTMuNCAyMy45LTExLjJsNDAtNjB6TTUwLjUgMTAzLjNjLTcuOSAxMC41LTQuMyAyNS4zIDYuOSAzMi4ybDU0LjEgMzMuOGMxMS40IDcuMSAyNi4zIDMuMyAzNS4xLTYuOSA1LjUtNi40IDExLjUtMTIuMyAxOC0xNy43IDEwLjgtOC45IDE0LjgtMjQuNiA3LTM2LjJMMTM2LjQgNTUuOWMtNy4xLTEwLjctMjEuNS0xNC0zMS44LTYuNC0yMC42IDE1LjEtMzguOCAzMy4zLTU0LjEgNTMuOHptNjIgMTQxLjFjLjgtOS45LTMuMy0xOS45LTExLjgtMjUuMUw0MSAxODJjLTEyLjktOC0yOS45LTIuMy0zMy42IDEyLjUtNC45IDE5LjctNy41IDQwLjMtNy41IDYxLjZsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0zLjkgLjItNy44IC41LTExLjZ6bTI4Ny4xIDBjLjMgMy44IC41IDcuNyAuNSAxMS42bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjEuMi0yLjYtNDEuOC03LjUtNjEuNi0zLjYtMTQuNy0yMC43LTIwLjUtMzMuNi0xMi41bC01OS43IDM3LjNjLTguNCA1LjMtMTIuNiAxNS4yLTExLjggMjUuMXpNODggMzUybC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em00MDAgMGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMjgwIDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0em0tODAgMzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnptMTYwIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnoiXX0sbHJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1aXRjYXNlLW1lZGljYWwiLGljb246WzUxMiw1MTIsWyJtZWRraXQiXSwiZjBmYSIsIk0xOTIgNTZsMCA0MCAxMjggMCAwLTQwYzAtNC40LTMuNi04LTgtOEwyMDAgNDhjLTQuNCAwLTggMy42LTggOHptLTQ4IDhsMC04YzAtMzAuOSAyNS4xLTU2IDU2LTU2TDMxMiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgNDI0LTIyNCAwIDAtNDE2ek05NiAxNzZsMCAzMDQtMzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMCAwIDgwek00MTYgNDgwbDAtMzg0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyIDB6TTI0NCAyMDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM2LTM2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwzNiAwIDAgMzZjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzYgMzYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTM2IDAgMC0zNmMwLTguOC03LjItMTYtMTYtMTZsLTI0IDB6Il19LHN1dD1scmUsbnV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jYW5lIixpY29uOls0NDgsNTEyLFtdLCJlNTNjIiwiTTIzMi0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTQ0IDIzNi43TDk3LjcgMjk5LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzE0MiAxMzIgMTgxLjcgMTEyIDIyNCAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZMMzA0IDIzNi43IDMwNCA1MTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNzUuM3pNMzkyIDM4NGMtNC40IDAtOCAzLjYtOCA4IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMjhjMC00LjQtMy42LTgtOC04eiJdfSx0Nz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZSIsaWNvbjpbNTEyLDUxMixbImRhc2hib2FyZCIsImdhdWdlLW1lZCIsInRhY2hvbWV0ZXItYWx0LWF2ZXJhZ2UiXSwiZjYyNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDI4MCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6TTE0NCAxNzZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0tMTYgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjg4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNDAwIDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxsdXQ9dDcsY3V0PXQ3LGR1dD10NyxmdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUtb3Blbi10ZXh0IixpY29uOls1NzYsNTEyLFtdLCJmNjU4IiwiTTI4OCAzMy45TDk2LjQgMTc1LjggMjU0LjUgMjkzYzUuMyAzLjkgMTEuMiA2LjkgMTcuNSA4LjdMMjcyIDQ2NGMwIDUuNSAuNSAxMC44IDEuMyAxNkw5NiA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjM5LjljMC0yMC4zIDkuNi0zOS40IDI1LjktNTEuNEwyNTQuNS0yMWM5LjctNy4yIDIxLjQtMTEgMzMuNS0xMXMyMy44IDMuOSAzMy41IDExTDUxOC4xIDEyNC43YzcuMiA1LjMgMTMuMSAxMiAxNy40IDE5LjYtMi41LS4yLTUtLjMtNy41LS4zTDQzNi42IDE0NCAyODggMzMuOXpNMzIwIDI0MGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNjAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjI0em04MCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05NiAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDB6Il19LHV1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b29sYm94IixpY29uOls1MTIsNTEyLFsxMjk1MjBdLCJmNTUyIiwiTTE3NiA1NmwwIDQwIDE2MCAwIDAtNDBjMC00LjQtMy42LTgtOC04TDE4NCA0OGMtNC40IDAtOCAzLjYtOCA4ek0xMjggOTZsMC00MGMwLTMwLjkgMjUuMS01NiA1Ni01NkwzMjggMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDQwIDI4LjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xbDUxLjkgNTEuOWM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOWwwIDc2LjEtMTM2IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTE0NCAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0xMzYgMCAwLTc2LjFjMC0xMi43IDUuMS0yNC45IDE0LjEtMzMuOWw1MS45LTUxLjljOS05IDIxLjItMTQuMSAzMy45LTE0LjFMMTI4IDk2ek0wIDQxNmwwLTk2IDEzNiAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDE0NCAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDEzNiAwIDAgOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHoiXX0scHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvd2VyLW9mZiIsaWNvbjpbNTEyLDUxMixbOTIxMV0sImYwMTEiLCJNMjg4IDBjMC0xNy43LTE0LjMtMzItMzItMzJTMjI0LTE3LjcgMjI0IDBsMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkwyODggMHpNMTQ2LjMgOTguNGMxNC41LTEwLjEgMTgtMzAuMSA3LjktNDQuNnMtMzAuMS0xOC00NC42LTcuOUM0My40IDkyLjEgMCAxNjkgMCAyNTYgMCAzOTcuNCAxMTQuNiA1MTIgMjU2IDUxMlM1MTIgMzk3LjQgNTEyIDI1NmMwLTg3LTQzLjQtMTYzLjktMTA5LjctMjEwLjEtMTQuNS0xMC4xLTM0LjQtNi42LTQ0LjYgNy45cy02LjYgMzQuNCA3LjkgNDQuNmM0OS44IDM0LjggODIuMyA5Mi40IDgyLjMgMTU3LjYgMCAxMDYtODYgMTkyLTE5MiAxOTJTNjQgMzYyIDY0IDI1NmMwLTY1LjIgMzIuNS0xMjIuOSA4Mi4zLTE1Ny42eiJdfSxOVj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWduYWwiLGljb246WzUxMiw1MTIsWzEyODI0Niwic2lnbmFsLTUiLCJzaWduYWwtcGVyZmVjdCJdLCJmMDEyIiwiTTQ4OCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwek0zNjAgMTI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0yODAgMjQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6TTE1MiAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTQ4IDM4NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LGh1dD1OVixtdXQ9TlYsZ3V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1zcGluIixpY29uOls1MTIsNTEyLFtdLCJlNGJiIiwiTTQ4MS43IDI0MC4xYy0xNy42LTEuMi0zMi45IDEyLTM0LjIgMjkuNy0zLjMgNDctMjMuNiA4OS40LTU0LjggMTIxTDM2MSAzNTljLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzIwIDM2Ni4zIDMyMCAzNzZsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC0zNS0zNWM0MS43LTQyLjIgNjguOS05OC44IDczLjQtMTYxLjggMS4yLTE3LjYtMTItMzIuOS0yOS43LTM0LjJ6TTM5IDQxTDc0IDc2Yy00MS43IDQyLjItNjguOSA5OC44LTczLjQgMTYxLjgtMS4yIDE3LjYgMTIgMzIuOSAyOS43IDM0LjJzMzIuOS0xMiAzNC4yLTI5LjdjMy4zLTQ3IDIzLjYtODkuNCA1NC44LTEyMUwxNTEgMTUzYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMTkyIDE0NS43IDE5MiAxMzZsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRMNTYgMEM0Ni4zIDAgMzcuNSA1LjggMzMuOCAxNC44UzMyLjIgMzQuMSAzOSA0MXptMjAxLTEwLjdjLTEuMiAxNy42IDEyIDMyLjkgMjkuNyAzNC4yIDQ3IDMuMyA4OS40IDIzLjYgMTIxIDU0LjhMMzU5IDE1MWMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMzNjYuMyAxOTIgMzc2IDE5MmwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJTNDc3LjkgMzIuMiA0NzEgMzlMNDM2IDc0Yy00Mi4yLTQxLjctOTguOC02OC45LTE2MS44LTczLjQtMTcuNi0xLjItMzIuOSAxMi0zNC4yIDI5Ljd6TTQxIDQ3M2wzNS0zNWM0Mi4yIDQxLjcgOTguOCA2OC45IDE2MS44IDczLjQgMTcuNiAxLjIgMzIuOS0xMiAzNC4yLTI5LjdzLTEyLTMyLjktMjkuNy0zNC4yYy00Ny0zLjMtODkuNC0yMy42LTEyMS01NC44TDE1MyAzNjFjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNDUuNyAzMjAgMTM2IDMyMEwyNCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0TDAgNDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDQ3OS44IDQxIDQ3M3oiXX0seHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImpvaW50IixpY29uOls1NzYsNTEyLFtdLCJmNTk1IiwiTTM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsMjEgMjFDNDY5IDE5MSA0ODAgMjE3LjQgNDgwIDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTljMC0xNC45LTUuOS0yOS4xLTE2LjQtMzkuNmwtMjEtMjFDMzU3LjEgMTQ2LjkgMzM2IDk2IDMzNiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0ek01NTIgMjg4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE5YzAtNDAuMy0xNi03OS00NC41LTEwNy41bC0yMS0yMUM0NDMgOTcgNDMyIDcwLjYgNDMyIDQzbDAtMTljMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE5YzAgMTQuOSA1LjkgMjkuMSAxNi40IDM5LjZsMjEgMjFDNTU0LjkgMTQxLjEgNTc2IDE5MiA1NzYgMjQ1bDAgMTljMCAxMy4zLTEwLjcgMjQtMjQgMjR6TTI5Mi43IDMyMGM1LjYgMCAxMC43IDIuOSAxMy42IDcuNkwzOTQuNiA0NzFjMS4zIDIuMSAwIDQuOS0yLjQgNS4yLTE2LjEgMi41LTMyLjQgMy43LTQ4LjcgMy43bC0zOC4xIDBjLTUuNiAwLTEwLjctMi45LTEzLjYtNy42bC03OS0xMjguNGMtNi05LjggMC0yMi42IDExLjUtMjMuMyA2LjctLjQgMTMuNC0uNiAyMC4yLS42bDQ4LjMgMHpNNDU5LjMgNDY1LjljLTYuNCAxLTEyLjctMS45LTE2LjEtNy40TDM3NC4xIDM0Ni4xYy02LjctMTAuOSAxLjUtMjQuNyAxNC4yLTIyLjkgMS4zIC4yIDIuNiAuNCAzLjggLjZsMTM2LjQgMjFjMjcuMyA0LjIgNDcuNCAyNy43IDQ3LjQgNTUuM3MtMjAuMSA1MS4xLTQ3LjQgNTUuM2wtNjkuMiAxMC42ek0xMzguNyAzMzZjNi43LTEuNSAxMy42IDEuNCAxNy4yIDcuMmw2OC45IDExMmM2LjYgMTAuNy0xLjIgMjQuNC0xMy44IDIzLjEtMTMtMS40LTI1LjktMy41LTM4LjYtNi41TDMxLjIgNDM5LjJDMTIuOSA0MzUgMCA0MTguNyAwIDQwMHMxMi45LTM1IDMxLjItMzkuMkwxMzguNyAzMzZ6Il19LGJ1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmFpbGxlIixpY29uOlszODQsNTEyLFtdLCJmMmExIiwiTTgwIDE0NGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMCAxOTJhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAgMTM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHptMCA1NmM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MC04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODB6bTI0OC04MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjR6bTU2IDBjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODAgMzUuOCA4MCA4MCA4MCA4MC0zNS44IDgwLTgwek0zMDQgMjMyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMCAxMDRhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAtMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYweiJdfSxjcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFza2V0LXNob3BwaW5nIixpY29uOls1NzYsNTEyLFsic2hvcHBpbmctYmFza2V0Il0sImYyOTEiLCJNMjg4IDBjNi42IDAgMTIuOSAyLjcgMTcuNCA3LjVsMTQ0IDE1MiAuNSAuNSA3OC4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAxNC41LTkuNiAyNi43LTIyLjggMzAuN0w0OTEuMSA0MjkuOWMtNi41IDI5LjMtMzIuNSA1MC4xLTYyLjUgNTAuMWwtMjgxLjMgMGMtMzAgMC01Ni0yMC44LTYyLjUtNTAuMWwtNDYtMjA3LjJjLTEzLjItMy45LTIyLjgtMTYuMi0yMi44LTMwLjcgMC0xNy43IDE0LjMtMzIgMzItMzJsNzguMSAwIC41LS41IDE0NC0xNTJDMjc1LjEgMi43IDI4MS40IDAgMjg4IDB6bTAgNTguOUwxOTIuMiAxNjAgMzgzLjggMTYwIDI4OCA1OC45ek0yMDggMjY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJ6bTgwLTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMjggMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMnoiXX0sdnV0PWNyZSx5dXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlIixpY29uOls1MTIsNTEyLFtdLCJlNGM4IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NGMwLTM4LjggMjYuNC03Mi42IDY0LTgybDAtMTEyLTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHoiXX0sd3V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWFycml2YWwiLGljb246WzU3Niw1MTIsWzEyODc0OF0sImY1YWYiLCJNMzg2LjYgMTkzLjFMMjY1LjkgMy43Yy00LjgtNy42LTEyLjYtMTIuOC0yMS40LTE0LjNsLTQzLjEtNy42Yy0xMC44LTEuOS0yMC4yIDcuMy0xOC42IDE4LjFsMjQgMTYxLjYtMTA1LTE4LjUtMzMuOC02MS44QzY0LjUgNzQuNyA1OC4yIDcwLjIgNTEuMSA2OUwzNCA2NmMtOS44LTEuNy0xOC44IDUuOS0xOC44IDE1LjhsLjYgMTA2LjNjLjIgMzAuOSAyMi40IDU3LjMgNTIuOSA2Mi43bDEzLjUgMi40IDAgMCA0MTcuNiA3My42YzMwLjUgNS40IDU5LjUtMTUgNjQuOS00NS40cy0xNS01OS41LTQ1LjQtNjQuOUwzODYuNiAxOTMuMXpNMjI0IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTEzMS4yLTE1LjNhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQ0OHoiXX0sTXV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhc2gtcmVnaXN0ZXIiLGljb246WzUxMiw1MTIsW10sImY3ODgiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NHMyOC43IDY0IDY0IDY0bDQ4IDAgMCAzMi01NyAwYy0zMS42IDAtNTguNSAyMy4xLTYzLjMgNTQuNEwxLjEgMzY0LjFDLjQgMzY4LjggMCAzNzMuNiAwIDM3OC40TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjkuNmMwLTQuOC0uNC05LjYtMS4xLTE0LjRMNDg4LjIgMjE0LjRDNDgzLjUgMTgzLjEgNDU2LjYgMTYwIDQyNSAxNjBsLTIxNyAwIDAtMzIgNDggMGMzNS4zIDAgNjQtMjguNyA2NC02NFMyOTEuMyAwIDI1NiAwTDk2IDB6bTAgNDhsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMOTYgODBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTY0IDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0em00OC0xNjBhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjAtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMTYwIDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTMyOCAyNDBhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMjU2IDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTQyNCAyNDBhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMzUyIDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6Il19LHp1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaW5nIixpY29uOls1MTIsNTEyLFtdLCJmNzBiIiwiTTY0IDIwOGMwIDcuOCA0LjQgMTguNyAxNy4xIDMwLjMgNDUuNC0yNC4yIDEwNy43LTM4LjMgMTc0LjktMzguM3MxMjkuNSAxNC4xIDE3NC45IDM4LjNjMTIuOC0xMS42IDE3LjEtMjIuNSAxNy4xLTMwLjMgMC0xMi4zLTEwLjgtMzItNDcuOS01MC42LTM1LjItMTcuNi04Ni4xLTI5LjQtMTQ0LjEtMjkuNHMtMTA4LjkgMTEuOC0xNDQuMSAyOS40Qzc0LjggMTc2IDY0IDE5NS43IDY0IDIwOHptMTkyIDQwYy00NyAwLTg5LjMgNy42LTEyMi45IDE5LjcgMzMuMiAxMi40IDc1LjcgMjAuMyAxMjIuOSAyMC4zczg5LjctNy44IDEyMi45LTIwLjNDMzQ1LjMgMjU1LjYgMzAzIDI0OCAyNTYgMjQ4ek0wIDIwOEMwIDE1OC40IDM5LjQgMTIyLjIgODMuMyAxMDAuMiAxMjkuMSA3Ny4zIDE5MC4zIDY0IDI1NiA2NHMxMjYuOSAxMy4zIDE3Mi43IDM2LjJjNDMuOSAyMiA4My4zIDU4LjIgODMuMyAxMDcuOGwwIDk2YzAgNDkuNi0zOS40IDg1LjgtODMuMyAxMDcuOC00NS45IDIyLjktMTA3IDM2LjItMTcyLjcgMzYuMlMxMjkuMSA0MzQuNyA4My4zIDQxMS44QzM5LjQgMzg5LjggMCAzNTMuNiAwIDMwNGwwLTk2eiJdfSxkcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtbm9kZXMiLGljb246WzUxMiw1MTIsWyJzaGFyZS1hbHQiXSwiZjFlMCIsIk0zODQgMTkyYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2YzAgNS40IC41IDEwLjggMS4zIDE2TDE1OS42IDE4NC4xYy0xNi45LTE1LTM5LjItMjQuMS02My42LTI0LjEtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyNC40IDAgNDYuNi05LjEgNjMuNi0yNC4xTDI4OS4zIDQwMGMtLjkgNS4yLTEuMyAxMC41LTEuMyAxNiAwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2LTQzLTk2LTk2LTk2Yy0yNC40IDAtNDYuNiA5LjEtNjMuNiAyNC4xTDE5MC43IDI3MmMuOS01LjIgMS4zLTEwLjUgMS4zLTE2cy0uNS0xMC44LTEuMy0xNmwxMjkuNy03Mi4xYzE2LjkgMTUgMzkuMiAyNC4xIDYzLjYgMjQuMXoiXX0sa3V0PWRyZSxTdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxDdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmlub2N1bGFycyIsaWNvbjpbNTEyLDUxMixbXSwiZjFlNSIsIk0xMjggMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyLTk2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptNjQgOTZsMCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTU5LjFjMC0zNC42IDkuNC02OC42IDI3LjItOTguMyAxMy43LTIyLjggMjIuNS00OC4yIDI1LjgtNzQuNkw2MC41IDE1NmMyLTE2IDE1LjYtMjggMzEuOC0yOGw5OS44IDB6bTIyNy44IDBjMTYuMSAwIDI5LjggMTIgMzEuOCAyOEw0NTkgMjE2YzMuMyAyNi40IDEyLjEgNTEuOCAyNS44IDc0LjYgMTcuOCAyOS43IDI3LjIgNjMuNyAyNy4yIDk4LjNsMCA1OS4xYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMjAgOTkuOCAwek0zMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyLTk2IDAgMC0zMnptLTMyIDY0bDAgMTYwLTY0IDAgMC0xNjAgNjQgMHoiXX0sTHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpcC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWM0IiwiTTM0MC44IDg4LjNjMTMuNC0xMS41IDE1LTMxLjcgMy41LTQ1LjFzLTMxLjctMTUtNDUuMS0zLjVMMTI4IDE4Ni40IDEyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCA0Ni4zIDY0IDY0bDAgMTY4LTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDE2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTIyLjQgMTcxLjIgMTQ2LjdjMTMuNCAxMS41IDMzLjYgOS45IDQ1LjEtMy41czkuOS0zMy42LTMuNS00NS4xTDE3My4yIDI4MCAzNTIgMjgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE3My4yIDIzMiAzNDAuOCA4OC4zeiJdfSxmcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFyZC1kcml2ZSIsaWNvbjpbNDQ4LDUxMixbMTI4NDM2LCJoZGQiXSwiZjBhMCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMjYwLjFDMTguMSAyNDcuNCA0MC4yIDI0MCA2NCAyNDBsMzIwIDBjMjMuOCAwIDQ1LjkgNy40IDY0IDIwLjFMNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00NDggMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0ek0yMjQgMzg0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEyOC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFR1dD1mcmUsX3V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhbmtpbmctc3RhciIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MSIsIk0zMjEuOCA1NC4xTDI5OC4yIDYuM2MtMy45LTguMy0xNi4xLTguNi0yMC40IDBsLTIzLjYgNDcuOC01Mi4zIDcuNWMtOS4zIDEuNC0xMy4zIDEyLjktNi40IDE5LjhsMzggMzctOSA1Mi4xYy0xLjQgOS4zIDguMiAxNi41IDE2LjggMTIuMmw0Ni45LTI0LjggNDYuNiAyNC40YzguNiA0LjMgMTguMy0yLjkgMTYuOC0xMi4ybC05LTUyLjEgMzgtMzYuNmM2LjgtNi44IDIuOS0xOC4zLTYuNC0xOS44bC01Mi4zLTcuNXpNMjU2IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjBjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2MGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDggMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDE2IDQzMmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh6Il19LEF1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXRpZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwOCIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptLTMwLjUgNTZsNjEgMGM5LjcgMCAxNy41IDcuOCAxNy41IDE3LjUgMCA0LjItMS41IDguMi00LjIgMTEuNGwtMjcuNCAzMiAzMSAxMTUuMSAuNiAwIDM0LjYtMTM4LjVjMi4yLTguNyAxMS4xLTE0IDE5LjUtMTAuOCA2MS45IDIzLjYgMTA1LjkgODMuNiAxMDUuOSAxNTMuOCAwIDE1LjEtMTIuMyAyNy40LTI3LjQgMjcuNEw0My40IDUxMmMtMTUuMSAwLTI3LjQtMTIuMy0yNy40LTI3LjQgMC03MC4yIDQ0LTEzMC4yIDEwNS45LTE1My44IDguNC0zLjIgMTcuMyAyLjEgMTkuNSAxMC44bDM0LjYgMTM4LjUgLjYgMCAzMS0xMTUuMS0yNy40LTMyYy0yLjctMy4yLTQuMi03LjItNC4yLTExLjQgMC05LjcgNy44LTE3LjUgMTcuNS0xNy41eiJdfSx1cmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxsaXBzaXMiLGljb246WzQ0OCw1MTIsWyJlbGxpcHNpcy1oIl0sImYxNDEiLCJNMCAyNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0xNjggMGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTIyNC01NmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0sJHV0PXVyZSxEdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzEiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTguNi01OC42YzEuMS00IDEuNi04LjIgMS42LTEyLjVsMC0xNTEuMmMtMTIuNSA0LjYtMjYuMSA3LjItNDAuNSA3LjItOC4xIDAtMTUuOS0uOC0yMy41LTIuNGwwIDY2LjQtMzAuMiAwLTEzNy41LTEzNy41YzIuOS0zLjYgNS41LTcuNCA3LjYtMTEuNSAxMS42IDIyIDM0LjcgMzcgNjEuMyAzNyAyNi44IDAgNDkuOC0xNS4xIDYxLjQtMzcuMSAxMS40IDIyLjEgMzQuNSAzNy4xIDYwLjggMzcuMSA0NS42IDAgNzguNC00My43IDY1LjYtODcuNUw1MTMuOCA3Mi4zQzUwNi44IDQ4LjQgNDg0LjkgMzIgNDYwIDMyTDExNiAzMmMtNS41IDAtMTAuOCAuOC0xNS45IDIuM0w0MS0yNC45ek0xNTEuNSAyMjEuM0w0OC43IDExOC42IDM4LjkgMTUyLjVjLTEyLjggNDMuNyAyMCA4Ny41IDY1LjYgODcuNSAxOC4xIDAgMzQuNy03LjEgNDctMTguN3pNNDEwLjIgNDgwbC0xMjgtMTI4LTE1NC4yIDAgMC02Ni40Yy03LjYgMS42LTE1LjUgMi40LTIzLjUgMi40LTE0LjQgMC0yOC0yLjYtNDAuNS03LjJMNjQgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI5OC4yIDB6Il19LHByZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJjZW50IixpY29uOls0NDgsNTEyLFs2MjEwMSw2Mjc4NSwicGVyY2VudGFnZSJdLCIyNSIsIk0xOTIgMTI4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNNDQ4IDM4NGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6TTQzOC42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTM4NCAzODRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMzg0LTM4NHoiXX0sRXV0PXByZSxocmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS16aXBwZXIiLGljb246WzM4NCw1MTIsWyJmaWxlLWFyY2hpdmUiXSwiZjFjNiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNNjQgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA0OEM3NC43IDQ4IDY0IDU4LjcgNjQgNzJ6bTAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTY0IDcybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTE2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnoiXX0sTnV0PWhyZSxQdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlzcGxheSIsaWNvbjpbNTEyLDUxMixbXSwiZTE2MyIsIk00NDggOTZsMCAyNTYtMzg0IDAgMC0yNTYgMzg0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ0IDAtMTYgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMC0xNi00OCAxNDQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sbXJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imljb25zIixpY29uOls1MTIsNTEyLFsiaGVhcnQtbXVzaWMtY2FtZXJhLWJvbHQiXSwiZjg2ZCIsIk0xNzQuOSAyNzJjMTAuNyAwIDIwLjcgNS4zIDI2LjYgMTQuMmwxMS44IDE3LjggMjYuNyAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTEyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNTJjMC0yNi41IDIxLjUtNDggNDgtNDhsMjYuNyAwIDExLjgtMTcuOGM1LjktOC45IDE1LjktMTQuMiAyNi42LTE0LjJsNjEuNyAwem0yNzguNi0xMmM1LjYtNC45IDEzLjktNS4zIDE5LjktLjlzOC4zIDEyLjQgNS4zIDE5LjNMNDQwLjMgMzY4IDQ5NiAzNjhjNi43IDAgMTIuNiA0LjEgMTUgMTAuNHMuNiAxMy4zLTQuNCAxNy43bC0xMjggMTEyYy01LjYgNC45LTEzLjkgNS4zLTE5LjkgLjlzLTguMy0xMi40LTUuMy0xOS4zbDM4LjUtODkuNy01NS44IDBjLTYuNyAwLTEyLjYtNC4xLTE1LTEwLjRzLS42LTEzLjMgNC40LTE3LjdsMTI4LTExMnpNMTQ0IDM2MGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6TTQ4My44IC40YzYuNS0xLjEgMTMuMSAuNCAxOC41IDQuNCA2LjEgNC41IDkuNyAxMS43IDkuNyAxOS4ybDAgMTUyLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42bDAtNDkuMy0xMTIgMzMuNiAwIDExMC4yLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42TDMwNCA3MmMwLTEwLjYgNy0yMCAxNy4xLTIzbDE2MC00OCAyLjctLjZ6TTE4OC45IDBDMjI2IDAgMjU2IDMwIDI1NiA2Ny4xbDAgNi4xYzAgNTYuMS03NS4yIDExMi4xLTExMC4zIDEzNS4zLTEwLjggNy4xLTI0LjYgNy4xLTM1LjQgMC0zNS4xLTIzLjEtMTEwLjMtNzkuMi0xMTAuMy0xMzUuM2wwLTYuMUMwIDMwIDMwIDAgNjcuMSAwIDg4LjIgMCAxMDggOS45IDEyMC43IDI2LjhsNy4zIDkuOCA3LjMtOS44QzE0OCA5LjkgMTY3LjggMCAxODguOSAweiJdfSxJdXQ9bXJlLEZ1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlci12ZXJ0aWNhbCIsaWNvbjpbMjU2LDUxMixbXSwiZjU0OCIsIk0wIDE2QzAtMTAuNSAyMS41LTMyIDQ4LTMybDE2MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjQtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4LTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgMjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTQ0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE2eiJdfSxncmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uLWRvdCIsaWNvbjpbNjQwLDUxMixbIm1hcC1tYXJrZWQtYWx0Il0sImY1YTAiLCJNNTc2IDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDQxMy41IDc3LjUgMjM0LjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzcwLjggODguOCA2NCA5OS45IDY0IDExMmwwIDM1MmMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTczLjMgNTcuOGMtNC4zLTYuNC04LjUtMTMuMS0xMi42LTE5LjktMTEtMTguMy0yMS45LTM5LjMtMzAtNjEuOGwtMTAxLjItMzMuNyAwLTI4NC41IDEyOCA0Mi43IDAgOTkuM2MzMS0zNS44IDc3LTU4LjQgMTI4LTU4LjQgMjIuNiAwIDQ0LjIgNC40IDY0IDEyLjVMNTc2IDQ4ek01MTIgMjI0Yy02Ni4zIDAtMTIwIDUyLjgtMTIwIDExNy45IDAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOXpNNDcyIDM0NGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSxPdXQ9Z3JlLHhyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jcmFjayIsaWNvbjpbNTEyLDUxMixbMTI4MTQ4LCJoZWFydC1icm9rZW4iXSwiZjdhOSIsIk0xMzMuMSAzMmMxNy4zIDAgMzQuMiAzLjQgNDkuOSA5LjdsNTQuOCA4NS4yLTc1LjQgNzUuNGMtMS41IDEuNS0yLjQgMy42LTIuMyA1LjhzMSA0LjIgMi42IDUuN2wxMTIgMTA0YzIuOSAyLjcgNy40IDIuOSAxMC41IC4zczMuOC03IDEuNy0xMC40bC02MC40LTk4LjEgOTAuNy03NS42YzIuNi0yLjEgMy41LTUuNyAyLjQtOC44TDI5Ni40IDYwLjZDMzE5LjYgNDIuMyAzNDguNiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxMTIuMi0xMzkuOSAyNDIuNS0yMTIuOSAyOTguMi0xMi40IDkuNC0yNy42IDE0LjEtNDMuMSAxNC4xcy0zMC44LTQuNi00My4xLTE0LjFDMTM5LjkgNDEwLjIgMCAyNzkuOSAwIDE2Ny43bDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyeiJdfSxCdXQ9eHJlLFJ1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3ciLGljb246WzY0MCw1MTIsWzEyODAwNF0sImY2YzgiLCJNOTYgMjI0bDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04OC4yYzkuOSA2LjYgMjAuNiAxMiAzMiAxNi4xbDAgMjQuMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTYuOWM1LjMgLjYgMTAuNiAuOSAxNiAuOXMxMC43LS4zIDE2LS45bDAgMTYuOWMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjQuMmMxMS40LTQgMjIuMS05LjQgMzItMTYuMWwwIDg4LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MCAzMiAzMiAwIDQ5LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZMNTMwIDQyN2M4LjggMTMuMSAyMy41IDIxIDM5LjMgMjEgMjIuNSAwIDQxLjktMTUuOSA0Ni4zLTM4bDIwLjMtMTAxLjZjMi42LTEzLS4zLTI2LjUtOC0zNy4zbC0zLjktNS41IDAtODEuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE0LjQtNTIuOS03NC4xQzQ5NiA4Ni41IDQ1Mi40IDY0IDQwNS45IDY0TDE0NCA2NEM3Ny43IDY0IDI0IDExNy43IDI0IDE4NGwwIDU0QzkuNCAyNDkuOCAwIDI2Ny44IDAgMjg4bDAgMTcuNmMwIDggNi40IDE0LjQgMTQuNCAxNC40IDMxLjggMCA1Ny42LTI1LjggNTcuNi01Ny42TDcyIDE4NGMwLTI0LjMgMTIuMS00NS44IDMwLjUtNTguOS00LjIgMTAuOC02LjUgMjIuNi02LjUgMzQuOWwwIDY0ek01NjAgMzM2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTE2Ni42IDE2Ni42Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMTc4LjcgMGMxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNiAwIDYtMi40IDExLjgtNi42IDE2bC0yMy40IDIzLjRDMzMyLjIgMjExLjggMzAyLjcgMjI0IDI3MiAyMjRzLTYwLjItMTIuMi04MS45LTMzLjlsLTIzLjQtMjMuNHoiXX0sdjc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnNzIixpY29uOls0NDgsNTEyLFsiZmVlZCJdLCJmMDllIiwiTTAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzIgMjI5LjggMCA0MTYgMTg2LjIgNDE2IDQxNiAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkMzODQgMjUzLjYgMjI2LjQgOTYgMzIgOTYgMTQuMyA5NiAwIDgxLjcgMCA2NHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0zMiAxNjBjMTU5LjEgMCAyODggMTI4LjkgMjg4IDI4OCAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0LTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LEh1dD12Nyx5Nz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzIixpY29uOls1MTIsNTEyLFsxMjgyNjksInNlYXJjaCJdLCJmMDAyIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDM1MmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6Il19LHF1dD15NyxWdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbW9vbiIsaWNvbjpbNjQwLDUxMixbXSwiZjZjMyIsIk00ODAgMGMxNC42IDAgMjguOCAxLjYgNDIuNSA0LjcgNy40IDEuNyAxMyA3LjggMTMuOSAxNS40cy0zIDE0LjktOS44IDE4LjNjLTQ1LjQgMjIuNi03Ni42IDY5LjUtNzYuNiAxMjMuNiAwIDc2LjIgNjEuOCAxMzggMTM4IDEzOCAzLjcgMCA3LjQtLjEgMTEuMS0uNCA3LjYtLjYgMTQuNyAzLjYgMTcuOCAxMC42czEuNSAxNS4xLTMuOSAyMC40Yy0yNiAyNS01OS4xIDQyLjctOTUuOSA0OS45LTExLjEtMjUuMy0zMC4yLTQ2LjMtNTQuMS01OS44LTcuNi02My40LTYxLjYtMTEyLjYtMTI3LjEtMTEyLjYtMTEuMiAwLTIyLjEgMS41LTMyLjUgNC4yLTQuOC00LjItOS45LTguMi0xNS4yLTExLjgtLjEtMi44LS4yLTUuNi0uMi04LjQgMC0xMDYgODYtMTkyIDE5Mi0xOTJ6bS0uMSA0MzEuOWMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjcxLjkgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04NyA4MC05NC42LS40LTUyLjggNDIuOS05Ny4zIDk2LTk3LjMgMzQuOSAwIDY1LjQgMTguNiA4Mi4yIDQ2LjQgMTMtOS4xIDI4LjgtMTQuNCA0NS44LTE0LjQgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjktLjYgMTEuNy0xLjkgMTcuMiAzNy40IDYuNyA2NS44IDM5LjQgNjUuOCA3OC43eiJdfSxQVj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3hlcy1zdGFja2VkIixpY29uOls1MTIsNTEyLFs2MjYyNSwiYm94ZXMiLCJib3hlcy1hbHQiXSwiZjQ2OCIsIk0yMjQgMGwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCA1LjUtLjcgMTAuOS0yIDE2bC0yNTIgMGMtMS4zLTUuMS0yLTEwLjUtMi0xNmwwLTEyOGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwem05NiA1MTJjLTExLjIgMC0yMS44LTIuOS0zMS04IDkuNS0xNi41IDE1LTM1LjYgMTUtNTZsMC0xMjhjMC0yMC40LTUuNS0zOS41LTE1LTU2IDkuMi01LjEgMTkuNy04IDMxLThsMzIgMCAwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwek0wIDMyMGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwIDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzIweiJdfSxVdXQ9UFYsanV0PVBWLFd1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWJyYW5jaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjEyNiIsIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgNzAuNyAxNzYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyLjdjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgMjIuN2MwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMTc2IDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBTMCA0NzYuMiAwIDQzMmMwLTMyLjggMTkuNy02MSA0OC03My4zbDAtMjA1LjNDMTkuNyAxNDEgMCAxMTIuOCAwIDgwIDAgMzUuOCAzNS44IDAgODAgMHM4MCAzNS44IDgwIDgwem0yMzIgMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek04MCA0NTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxicmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFuIixpY29uOls1MTIsNTEyLFsxMjg2ODMsImNhbmNlbCJdLCJmMDVlIiwiTTM2Ny4yIDQxMi41TDk5LjUgMTQ0LjhjLTIyLjQgMzEuNC0zNS41IDY5LjgtMzUuNSAxMTEuMiAwIDEwNiA4NiAxOTIgMTkyIDE5MiA0MS41IDAgNzkuOS0xMy4xIDExMS4yLTM1LjV6bTQ1LjMtNDUuM2MyMi40LTMxLjQgMzUuNS02OS44IDM1LjUtMTExLjIgMC0xMDYtODYtMTkyLTE5Mi0xOTItNDEuNSAwLTc5LjkgMTMuMS0xMTEuMiAzNS41TDQxMi41IDM2Ny4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxHdXQ9YnJlLFl1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqdWctZGV0ZXJnZW50IixpY29uOlszODQsNTEyLFtdLCJlNTE5IiwiTTk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggOTZDNzQuNyA5NiA2NCA4NS4zIDY0IDcyUzc0LjcgNDggODggNDhsOCAwIDAtMjR6TTAgMjU2YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDEyOCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyNTZ6bTI1NiAwbDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSx2cmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwbHkiLGljb246WzUxMiw1MTIsWzYxNzE0LCJtYWlsLXJlcGx5Il0sImYzZTUiLCJNMjA0LjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCAxMTIgMGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDExMy4zLTgxLjUgMTYzLjktMTAwLjIgMTc0LjEtMi41IDEuNC01LjMgMS45LTguMSAxLjktMTAuOSAwLTE5LjctOC45LTE5LjctMTkuNyAwLTcuNSA0LjMtMTQuNCA5LjgtMTkuNSA5LjQtOC44IDIyLjItMjYuNCAyMi4yLTU2LjcgMC01My00My05Ni05Ni05NmwtOTYgMCAwIDgwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45eiJdfSxadXQ9dnJlLFh1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdW4tcGxhbnQtd2lsdCIsaWNvbjpbNjQwLDUxMixbXSwiZTU3YSIsIk0xNjAgMGMtNS41IDAtMTAuNiAyLjgtMTMuNSA3LjRsLTEuMSAyLjEtMjQuOCA1NS40LTU2LjctMjEuN2MtNS45LTIuMi0xMi41LS44LTE3IDMuN1M0MSA1OCA0My4yIDYzLjlsMjEuNyA1Ni43LTU1LjQgMjQuOEMzLjcgMTQ4IDAgMTUzLjcgMCAxNjBzMy43IDEyIDkuNSAxNC42bDU1LjQgMjQuOC0yMS43IDU2LjdjLTIuMiA1LjktLjggMTIuNSAzLjcgMTdzMTEuMSA1LjkgMTcgMy43bDU2LjctMjEuNyAyNC44IDU1LjRjMi42IDUuOCA4LjMgOS41IDE0LjYgOS41czEyLTMuNyAxNC42LTkuNWwyNC44LTU1LjQgNTYuOCAyMS43YzUuOSAyLjIgMTIuNSAuOCAxNy0zLjdzNS45LTExLjEgMy43LTE3bC0yMS43LTU2LjcgNTUuNC0yNC44YzUuOC0yLjYgOS41LTguMyA5LjUtMTQuNnMtMy43LTEyLTkuNS0xNC42bC01NS40LTI0LjggMjEuNy01Ni43IC43LTIuMmMxLjItNS4zLS40LTEwLjktNC4zLTE0LjhzLTkuNS01LjUtMTQuOC00LjNsLTIuMiAuNy01Ni44IDIxLjctMjQuOC01NS40QzE3MiAzLjcgMTY2LjMgMCAxNjAgMHptMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzc2IDE2bDAgNTMuNGMtMTQuOCA3LjctMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtNTMuNGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDIyLjdjLTkuOC00LjMtMjAuNi02LjctMzItNi43LTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjEuNGMtMTQuOCA3LjYtMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtMjEuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2LTQyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMDQgMCAwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxRdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjdGVyaXVtIixpY29uOls1NzYsNTEyLFtdLCJlMDVhIiwiTTQwOCAxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMzNjAgMi43IDM2MCAxNmwwIDIzLjRjLTEzLjkgNS4zLTI2LjkgMTMuNS0zOC4yIDI0LjVMMzA1IDQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE2LjggMTYuOC0zMC4xIDMwLjEtMTYuOC0xNi44Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE2LjggMTYuOGMtMTAgMTAtMjAgMjAtMzAuMSAzMC4xTDE3NyAxNzVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44LTMwLjEgMzAuMS0xNi44LTE2LjhjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44Yy0xMSAxMS4zLTE5LjIgMjQuMy0yNC41IDM4LjJMNDggMzI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2LjMgMGMxLjMgMTguMyA3LjEgMzYuNCAxNy40IDUyLjRMNzEgNDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTAuNi0xMC42YzE2IDEwLjMgMzQuMSAxNi4xIDUyLjQgMTcuNGwwIDE2LjNjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIzLjRjMTMuOS01LjMgMjYuOS0xMy41IDM4LjItMjQuNUwyNzEgNDY1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTYuOC0xNi44IDMwLjEtMzAuMSAxNi44IDE2LjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjhjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDM5OSAzMzdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjggMzAuMS0zMC4xIDE2LjggMTYuOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOGMxMS0xMS4zIDE5LjItMjQuMyAyNC41LTM4LjJsMjMuNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNi4zIDBjLTEuMy0xOC4zLTcuMS0zNi40LTE3LjQtNTIuNEw1MDUgNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0NjAuNCA0OS43Yy0xNi0xMC4zLTM0LjEtMTYuMS01Mi40LTE3LjRMNDA4IDE2ek0xNjAgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTI3MiAyNDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxLdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjb3JkLXZpbnlsIixpY29uOls1MTIsNTEyLFtdLCJmOGQ5IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMCAyNDBhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTExMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHlyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbG9wcHktZGlzayIsaWNvbjpbNDQ4LDUxMixbMTI4MTkwLDEyODQyNiwic2F2ZSJdLCJmMGM3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDIuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNTIgNTAuN0MzNDAgMzguNyAzMjMuNyAzMiAzMDYuNyAzMkw2NCAzMnptMzIgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6TTIyNCAyODhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LEp1dD15cmUsZXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldHMtcG9ydGFibGUiLGljb246WzUxMiw1MTIsW10sImU1ODQiLCJNNjQgMGw5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMjI0IDAgMC0xNkMwIDI4LjcgMjguNyAwIDY0IDB6TTAgMTI4bDIyNCAwIDAgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xMjggMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA1MDEuMyAwIDQ4OEwwIDEyOHpNMTI4IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzUyIDBsOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTIyNCAwIDAtMTZjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTI4OCAxMjhsMjI0IDAgMCAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyOCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTM2MHpNNDE2IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sdHB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im8iLGljb246WzQ0OCw1MTIsWzExMV0sIjRmIiwiTTIyNCA5NmExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAxIDAgMC0zMjB6TTQ0OCAyNTZhMjI0IDIyNCAwIDEgMSAtNDQ4IDAgMjI0IDIyNCAwIDEgMSA0NDggMHoiXX0sYXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbGV0dGUiLGljb246WzUxMiw1MTIsWzEyNzkxMl0sImY1M2YiLCJNNTEyIDI1NmMwIC45IDAgMS44IDAgMi43LS40IDM2LjUtMzMuNiA2MS4zLTcwLjEgNjEuM0wzNDQgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDMuNCAuNCA2LjcgMSA5LjkgMi4xIDEwLjIgNi41IDIwIDEwLjggMjkuOSA2LjEgMTMuOCAxMi4xIDI3LjUgMTIuMSA0MiAwIDMxLjgtMjEuNiA2MC43LTUzLjQgNjItMy41IC4xLTcgLjItMTAuNiAuMi0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2UzExNC42IDAgMjU2IDAgNTEyIDExNC42IDUxMiAyNTZ6TTEyOCAyODhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC05NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI4OCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHJwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bmxvY2siLGljb246WzM4NCw1MTIsWzEyODI3NV0sImYwOWMiLCJNMTI4IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0IDMxLjcgMCA1OCAyMyA2My4xIDUzLjMgMi45IDE3LjQgMTkuNCAyOS4yIDM2LjkgMjYuM3MyOS4yLTE5LjQgMjYuMy0zNi45QzMwOC4xIDE0LjEgMjU1LjUtMzIgMTkyLTMyIDEyMS4zLTMyIDY0IDI1LjMgNjQgOTZsMCA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE5MiAwIDAtNjR6Il19LHdyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXItbGlzdGVuIixpY29uOls1MTIsNTEyLFsiYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zIl0sImYyYTIiLCJNMzc5LjYgLjNjLTguOSAxLjItMTcuMiA2LjItMjIuNCAxNC4xLTYuOCAxMC40LTcgMjQuMS0uNCAzNC42IDUuNiA4LjkgMTUuNSAxMi43IDIzLjggMTguNSA3LjUgNS4yIDE3LjYgMTMuMiAyNy43IDI0LjIgMjAgMjEuNyAzOS41IDU0LjMgMzkuNSAxMDAuMyAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNjYtMjguNS0xMTMuNC01Ni41LTE0My43LTEzLjktMTUuMS0yNy44LTI2LjEtMzguMy0zMy4zLTExLTcuNi0yMy41LTE2LjYtMzcuNi0xNC43ek0yNDAgMTI4Yy01Ny42IDAtMTA1LjEgNDMuNi0xMTEuMyA5OS41LTEuOSAxNy42LTE3LjggMzAuMi0zNS4zIDI4LjNzLTMwLjItMTcuOC0yOC4zLTM1LjNjOS43LTg4IDg0LjMtMTU2LjUgMTc0LjktMTU2LjUgOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCA0Ni0xNy43IDg3LjktNDYuNiAxMTkuMy0xMiAxMy0xNy40IDI0LjgtMTcuNCAzNC43bDAgNi4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02LjFjMC0zMi45IDE3LjQtNTkuNiAzNC40LTc4IDE4LjQtMjAgMjkuNi00Ni42IDI5LjYtNzUuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMnpNMCA0ODBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYwLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNODYuNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6TTI0MCAyMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LGlwdD13cmUsb3B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtcHVsbC1yZXF1ZXN0IixpY29uOls1MTIsNTEyLFtdLCJlMTNjIiwiTTMyOCAyNGMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJTMjkzLjkgLjIgMjg3IDdMMjMxIDYzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NiA1NmM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzMyOCAxNDUuNyAzMjggMTM2bDAtMjQgMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIxNC43Yy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM0w0NDggMTQ0YzAtNTMtNDMtOTYtOTYtOTZsLTI0IDAgMC0yNHpNNzIgODBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNTYgNzMuM2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zIDAtNDQuMi0zNS44LTgwLTgwLTgwUzE2IDM1LjggMTYgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDIwNS4zYy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTIwNS4zek03MiA0MzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMzQ0LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sc3B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtleSIsaWNvbjpbNTEyLDUxMixbMTI4MjczXSwiZjA4NCIsIk0zMzYgMzUyYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2UzQzMy4yIDAgMzM2IDAgMTYwIDc4LjggMTYwIDE3NmMwIDE4LjcgMi45IDM2LjggOC4zIDUzLjdMNyAzOTFjLTQuNSA0LjUtNyAxMC42LTcgMTdsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwIDQwIDBjNi40IDAgMTIuNS0yLjUgMTctN2wzMy4zLTMzLjNjMTYuOSA1LjQgMzUgOC4zIDUzLjcgOC4zek0zNzYgOTZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxucHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2t1bGwiLGljb246WzUxMiw1MTIsWzEyODEyOF0sImY1NGMiLCJNNDE2IDQyNy40YzU4LjUtNDQgOTYtMTExLjYgOTYtMTg3LjQgMC0xMzIuNS0xMTQuNi0yNDAtMjU2LTI0MFMwIDEwNy41IDAgMjQwYzAgNzUuOCAzNy41IDE0My40IDk2IDE4Ny40TDk2IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDY0IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM2LjZ6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTI1Ni02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sTXJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlLXVwIixpY29uOlszODQsNTEyLFs5ODk2LCJtYXJzLXN0cm9rZS12Il0sImYyMmEiLCJNMTkyIDI1NmExMTIgMTEyIDAgMSAwIDAgMjI0IDExMiAxMTIgMCAxIDAgMC0yMjR6TTE2IDM2OGMwLTg2LjMgNjIuMS0xNTguMSAxNDQuMS0xNzMuMS0uMS0uOS0uMS0xLjktLjEtMi45bDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjEuNC0yOCAyMi40Yy0xMy44IDExLTMzLjkgOC44LTQ1LTVzLTguOC0zMy45IDUtNDVsODAtNjRjMTEuNy05LjMgMjguMy05LjMgNDAgMGw4MCA2NGMxMy44IDExIDE2IDMxLjIgNSA0NXMtMzEuMiAxNi00NSA1bC0yOC0yMi40IDAgNjEuNCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTZjMCAxIDAgMS45LS4xIDIuOSA4MiAxNSAxNDQuMSA4Ni44IDE0NC4xIDE3My4xIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzE2IDQ2NS4yIDE2IDM2OHoiXX0sbHB0PU1yZSx6cmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZS1mbGFtZS1zaW1wbGUiLGljb246WzM4NCw1MTIsWyJidXJuIl0sImY0NmEiLCJNMzcyLjUgMjU2LjVsLS43LTEuOUMzMzcuOCAxNjAuOCAyODIgNzYuNSAyMDkuMSA4LjVsLTMuMy0zQzIwMi4xIDIgMTk3LjEgMCAxOTIgMHMtMTAuMSAyLTEzLjggNS41bC0zLjMgM0MxMDIgNzYuNSA0Ni4yIDE2MC44IDEyLjIgMjU0LjZsLS43IDEuOUMzLjkgMjc3LjMgMCAyOTkuNCAwIDMyMS42IDAgNDI2LjcgODYuOCA1MTIgMTkyIDUxMnMxOTItODUuMyAxOTItMTkwLjRjMC0yMi4yLTMuOS00NC4yLTExLjUtNjUuMXptLTkwLjggNDkuNWM0LjEgOS4zIDYuMiAxOS40IDYuMiAyOS41IDAgNTMtNDMgOTYuNS05NiA5Ni41cy05Ni00My41LTk2LTk2LjVjMC0xMC4xIDIuMS0yMC4zIDYuMi0yOS41bDEuOS00LjNjMTUuOC0zNS40IDM3LjktNjcuNyA2NS4zLTk1LjFsOC45LTguOWMzLjYtMy42IDguNS01LjYgMTMuNi01LjZzMTAgMiAxMy42IDUuNmw4LjkgOC45YzI3LjQgMjcuNCA0OS42IDU5LjcgNjUuMyA5NS4xbDEuOSA0LjN6Il19LGNwdD16cmUsZHB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyZWUiLGljb246WzQ0OCw1MTIsWzEyNzc5NF0sImYxYmIiLCJNMjI0LTMyYzcgMCAxMy43IDMuMSAxOC4zIDguNWwxMzYgMTYwYzYuMSA3LjEgNy40IDE3LjEgMy41IDI1LjZTMzY5LjQgMTc2IDM2MCAxNzZsLTI0LjkgMCA3NS4yIDg4LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MDEuNCAzMDQgMzkyIDMwNGwtMzguNSAwIDg4LjggMTA0LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MzMuNCA0NDggNDI0IDQ0OGwtMTY4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTE2OCAwYy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42TDk0LjUgMzA0IDU2IDMwNGMtOS40IDAtMTcuOS01LjQtMjEuOC0xMy45cy0yLjYtMTguNSAzLjUtMjUuNkwxMTIuOSAxNzYgODggMTc2Yy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42bDEzNi0xNjBDMjEwLjMtMjguOSAyMTctMzIgMjI0LTMyeiJdfSxmcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic21vZyIsaWNvbjpbNTc2LDUxMixbXSwiZjc1ZiIsIk0xNzYgMjg4Qzk2LjUgMjg4IDMyIDIyMy41IDMyIDE0NFM5Ni41IDAgMTc2IDBjMjcuMiAwIDUyLjYgNy41IDc0LjMgMjAuNiAyMC4xLTEzIDQ0LTIwLjYgNjkuNy0yMC42IDQ3LjQgMCA4OC43IDI1LjcgMTEwLjkgNjRsMS4xIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTIgMCA2MC4zLTQ3LjYgMTA5LjQtMTA3LjIgMTExLjktMjIuNiAyMC01Mi4zIDMyLjEtODQuOCAzMi4xLTMyLjUgMC02Mi4xLTEyLjEtODQuNy0zMkwxNzYgMjg4ek01MTIgMzkyYzAgMTMuMy0xMC43IDI0LTI0IDI0TDI0IDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHpNODggNDY0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTE3NiAwbDI4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yODggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sdXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InMiLGljb246WzMyMCw1MTIsWzExNV0sIjUzIiwiTTAgMTU3LjVDMCA4OC4yIDU2LjIgMzIgMTI1LjUgMzJMMjcyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDEyNS41IDk2Yy0zNCAwLTYxLjUgMjcuNS02MS41IDYxLjUgMCAzMSAyMy4xIDU3LjIgNTMuOSA2MUwyMTAuMSAyMzBDMjcyLjkgMjM3LjkgMzIwIDI5MS4yIDMyMCAzNTQuNSAzMjAgNDIzLjggMjYzLjggNDgwIDE5NC41IDQ4MEw0OCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ2LjUgMGMzNCAwIDYxLjUtMjcuNSA2MS41LTYxLjUgMC0zMS0yMy4xLTU3LjItNTMuOS02MUwxMDkuOSAyODJDNDcuMSAyNzQuMSAwIDIyMC44IDAgMTU3LjV6Il19LHBwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqZWRpIixpY29uOls1NzYsNTEyLFtdLCJmNjY5IiwiTTI0NiAzMTUuN2wtMjEuMi0zMS45Yy0yLjEtMy4yLTEuNy03LjQgMS0xMC4xczYuOS0zLjEgMTAuMS0xbDI5LjUgMTkuN2MyLjEgMS40IDQuOS0uMSA1LTIuNkwyNzkuNyA4Yy4xLTQuNSAzLjgtOCA4LjMtOHM4LjEgMy41IDguMyA4bDkuNCAyODEuOWMuMSAyLjUgMi45IDMuOSA1IDIuNmwyOS41LTE5LjdjMy4yLTIuMSA3LjQtMS43IDEwLjEgMXMzLjEgNi45IDEgMTAuMUwzMzAgMzE1LjdjLTEuMyAxLjktLjIgNC41IDIgNC45bDM3LjYgNy41YzMuNyAuNyA2LjQgNCA2LjQgNy44cy0yLjcgNy4xLTYuNCA3LjhMMzMyIDM1MS40Yy0yLjIgLjQtMy4zIDMtMiA0LjlsMjEuMiAzMS45YzIuMSAzLjIgMS43IDcuNC0xIDEwLjFzLTYuOSAzLjEtMTAuMSAxbC0yNi4zLTE3LjZjLTIuMi0xLjQtNS4xIC4yLTUgMi44bDIuMSA2MS41YzU5LjgtMTAuOCAxMDUuMS02My4xIDEwNS4xLTEyNiAwLTM3LTE1LjctNzAuNC00MC44LTkzLjctNy02LjUtNi41LTE4LjYgMS0yNC40IDM0LTI2LjMgNTUuOC02Ny41IDU1LjgtMTEzLjkgMC0xNi44LTIuOS0zMy04LjItNDgtNC42LTEzIDEwLjItMzAgMjEuNC0yMiA1My41IDM4IDkyLjcgOTQuOCAxMDcuOCAxNjAuNyAuNSAyLjEtLjIgNC4zLTEuNyA1LjlsLTI4LjQgMjguNGMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDI2IDBjMy40IDAgNi4yIDIuNiA2LjMgNiAuMSAzLjMgLjIgNi42IC4yIDEwIDAgMTcuNS0xLjcgMzQuNy00LjggNTEuMy0uMiAxLjItLjkgMi40LTEuNyAzLjNsLTQ2LjUgNDYuNWMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDE0LjYgMGM0LjYgMCA3LjcgNC44IDUuNyA5LTQ0LjUgODkuNS0xMzYuOSAxNTEtMjQzLjcgMTUxUzg4LjggNDUwLjUgNDQuMyAzNjFjLTIuMS00LjIgMS05IDUuNy05bDE0LjYgMGM1LjcgMCA4LjYtNi45IDQuNS0xMC45TDIyLjYgMjk0LjZjLS45LS45LTEuNS0yLTEuNy0zLjMtMy4yLTE2LjYtNC44LTMzLjgtNC44LTUxLjMgMC0zLjMgLjEtNi43IC4yLTEwIC4xLTMuNCAyLjktNiA2LjMtNmwyNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjQuNiAxODQuNmMtMS41LTEuNS0yLjItMy44LTEuNy01LjkgMTUuMi02NiA1NC4zLTEyMi44IDEwNy44LTE2MC43IDExLjMtOCAyNiA4LjkgMjEuNCAyMi01LjMgMTUtOC4yIDMxLjItOC4yIDQ4IDAgNDYuMyAyMS45IDg3LjUgNTUuOCAxMTMuOSA3LjUgNS44IDggMTcuOSAxIDI0LjQtMjUuMSAyMy40LTQwLjggNTYuNy00MC44IDkzLjcgMCA2Mi45IDQ1LjQgMTE1LjIgMTA1LjEgMTI2bDIuMS02MS41Yy4xLTIuNi0yLjgtNC4yLTUtMi44bC0yNi4zIDE3LjZjLTMuMiAyLjEtNy40IDEuNy0xMC4xLTFzLTMuMS02LjktMS0xMC4xTDI0NiAzNTYuM2MxLjMtMS45IC4yLTQuNS0yLTQuOWwtMzcuNi03LjVjLTMuNy0uNy02LjQtNC02LjQtNy44czIuNy03LjEgNi40LTcuOGwzNy42LTcuNWMyLjItLjQgMy4zLTMgMi00Ljl6Il19LGtyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24taGlraW5nIixpY29uOls0NDgsNTEyLFsiaGlraW5nIl0sImY2ZWMiLCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xMjggMTczLjZjMC0zNCAyNy42LTYxLjYgNjEuNi02MS42IDIwLjMgMCAzOS43IDguMSA1NCAyMi40bDQ4LjIgNDguMmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMzcuNSAwYzUuOCAwIDExLjMgMS42IDE2IDQuM2wwLTc2LjNjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI2OC4zYy00LjcgMi43LTEwLjIgNC4zLTE2IDQuM2wtMzcuNSAwYy0yNS41IDAtNDkuOS0xMC4xLTY3LjktMjguMWwtNi42LTYuNiAwIDEwOS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM2wxMi42IDg4LjFjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJsLTEyLjYtODguMWMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtMTAxem0tNC44IDIwMy43YzIuMyAyLjMgNC43IDQuNCA3LjEgNi41bDQ0LjkgMzguNWMtMy42IDguNC04LjUgMTYuMy0xNC40IDIzLjRMODguNiA1MzIuNWMtMTEuMyAxMy42LTMxLjUgMTUuNC00NS4xIDQuMXMtMTUuNC0zMS41LTQuMS00NS4xbDcyLjMtODYuN2MyLjYtMy4xIDQuNS02LjYgNS44LTEwLjRsNS43LTE3LjF6TTAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0IDE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2eiJdfSxocHQ9a3JlLG1wdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdXAtdG8tbGluZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQzMy43IDAgNDE2IDBMMzIgMHptODYuNiAxMzcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDY0IDIzNy4zIDY0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQyLjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHptMjU2IDBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40IDAgMjQyLjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0Mi43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6Il19LGdwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLWRvdWJsZSIsaWNvbjpbNjQwLDUxMixbOTg5MV0sImYyMjciLCJNMjg4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNTAuNy05NSA5NWMxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzAgNDAxLjIgMCAzMDQgNzguOCAxMjggMTc2IDEyOGMzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDk1LTk1LTUwLjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE3NiA0MTZhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0xNjAgNjRjLTYuOCAwLTEzLjQtLjQtMjAtMS4xIDIzLjYtMTguOSA0My4zLTQyLjUgNTcuNi02OS40IDQzLjMtMTUuNSA3NC40LTU2LjkgNzQuNC0xMDUuNSAwLTI1LjItOC4zLTQ4LjUtMjIuNC02Ny4yIDcuMSAyLjEgMTQuNiAzLjIgMjIuNCAzLjIgMTcgMCAzMi43LTUuMyA0NS43LTE0LjMgMTEuNyAyMy42IDE4LjMgNTAuMiAxOC4zIDc4LjMgMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZ6TTUyOCAxNTcuM0w1MjggMzJjMC0xMS40LTIuNC0yMi4yLTYuNy0zMkw2MDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctNDggNDh6Il19LHhwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aGVybW9tZXRlciIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MSIsIk05NiAzODIuMWwwLTg4LjhjMC0xNC45IDUuOS0yOS4xIDE2LjQtMzkuNmwyMS43LTIxLjcgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA0Ni4xLTQ2LjEgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA0Ni4xLTQ2LjEgNDEgNDFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00MS00MSA3LjgtNy44YzE5LjQtMTkuNCA0NS42LTMwLjIgNzMtMzAuMiA1NyAwIDEwMy4yIDQ2LjIgMTAzLjIgMTAzLjIgMCAyNy40LTEwLjkgNTMuNi0zMC4yIDczTDI1OC4zIDM5OS42Yy0xMC41IDEwLjUtMjQuNyAxNi40LTM5LjYgMTYuNGwtODguOCAwLTg5IDg5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMFMtMi4zIDQ4MC40IDcgNDcxbDg5LTg5eiJdfSxTcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFpbnRicnVzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mzk2LCJwYWludC1icnVzaCJdLCJmMWZjIiwiTTQ4MC41IDEwLjNMMjU5LjEgMTU4Yy0yOS4xIDE5LjQtNDcuNiA1MC45LTUwLjYgODUuMyA2Mi4zIDEyLjggMTExLjQgNjEuOSAxMjQuMyAxMjQuMyAzNC41LTMgNjUuOS0yMS41IDg1LjMtNTAuNkw1NjUuNyA5NS41YzYuNy0xMC4xIDEwLjMtMjEuOSAxMC4zLTM0LjEgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjQtMTIuMSAwLTI0IDMuNi0zNC4xIDEwLjN6TTI4OCA0MDBjMC02MS45LTUwLjEtMTEyLTExMi0xMTJTNjQgMzM4LjEgNjQgNDAwYzAgMy45IC4yIDcuOCAuNiAxMS42IDEuOCAxNy41LTEwLjIgMzYuNC0yNy44IDM2LjRMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE0NCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyeiJdfSxicHQ9U3JlLHZwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuZXV0ZXIiLGljb246WzM4NCw1MTIsWzk5MDZdLCJmMjJjIiwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0yMjMuOSAzNDkuMUMzMDUuOSAzMzQuMSAzNjggMjYyLjMgMzY4IDE3NiAzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NC4xIDE3My4xLS4xIDEtLjEgMS45LS4xIDIuOWwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtMSAwLTEuOS0uMS0yLjl6Il19LENyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGhvbmUtZmxpcCIsaWNvbjpbNDQ4LDUxMixbInBob25lLXNxdWFyZS1hbHQiXSwiZjg3YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMzIgOTYuN2wyLjggLjhjMzIuMyA4LjggNTkuOSA0MC4xIDUxLjggNzguMi0xOC41IDg3LjUtODcuNCAxNTYuMy0xNzQuOSAxNzQuOS0zOC4xIDguMS02OS40LTE5LjUtNzguMi01MS44bC0uOC0yLjhjLTIuNy05LjggMi40LTIwLjEgMTEuOC0yNGw0OC43LTIwLjNjOC4zLTMuNCAxNy44LTEuMSAyMy41IDUuOWwxOS4zIDIzLjZjMzUuMS0xNy40IDYzLjQtNDYuNiA3OS42LTgyLjRsLTIyLjEtMThjLTYuOS01LjctOS4zLTE1LjItNS45LTIzLjVsMjAuMy00OC43YzMuOS05LjQgMTQuMi0xNC40IDI0LTExLjh6Il19LHlwdD1DcmUsTHJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1NDEsImdyaW4tdG9uZ3VlLXNxdWludCJdLCJmNThhIiwiTTAgMjU2YzAgMTA0LjQgNjIuNSAxOTQuMiAxNTIuMiAyMzQuMS01LjMtMTMtOC4yLTI3LjItOC4yLTQyLjFsMC02MS43Yy0xNi45LTE2LjUtMzAuMS0zNi43LTM4LjMtNTkuMy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTguMyAyMi42LTIxLjUgNDIuOC0zOC4zIDU5LjNsMCA2MS43YzAgMTQuOS0yLjkgMjkuMS04LjIgNDIuMSA4OS43LTM5LjggMTUyLjItMTI5LjYgMTUyLjItMjM0LjEgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMwIDExNC42IDAgMjU2em0xMjUuOC05MS43Yy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xczEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM3ptMjYzLjYtMjEuMWM0LjUgNi44IDMuMSAxNS45LTMuMSAyMS4xTDM1MyAxOTIgMzg2LjIgMjE5LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjV6TTMyMCA0NDhsMC00NS40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgNDUuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSx3cHQ9THJlLE1wdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LWRvbGxhciIsaWNvbjpbNTEyLDUxMixbXSwiZjY1MSIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHptNC0zNTJjMTEgMCAyMCA5IDIwIDIwbDAgNCA4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC00Ny41IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDYuMSA0LjQgMTEuMyAxMC40IDEyLjNsNDEuNyA3YzI1LjMgNC4yIDQzLjkgMjYuMSA0My45IDUxLjggMCAyNi4xLTE5IDQ3LjctNDQgNTEuOGwwIDQuN2MwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC00LTI0IDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDU1LjUgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC02LjEtNC40LTExLjMtMTAuNC0xMi4zbC00MS43LTdjLTI1LjMtNC4yLTQzLjktMjYuMS00My45LTUxLjggMC0yOC44IDIzLjItNTIuMiA1Mi01Mi41bDAtNGMwLTExIDktMjAgMjAtMjB6Il19LHpwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaXBwbyIsaWNvbjpbNjQwLDUxMixbMTI5NDM1XSwiZjZlZCIsIk00MDcgNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTcuMiAxNy4yYzEuOS0uMSAzLjktLjIgNS44LS4ybDMyIDBjMTEuMiAwIDIxLjkgMi4zIDMxLjYgNi41TDU0MyA1NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNTY0IDEwMS45YzcuNiAxMi4yIDEyIDI2LjcgMTIgNDIuMSAwIDEwLjIgNy40IDE4LjggMTYuNyAyMyAyNy45IDEyLjUgNDcuMyA0MC41IDQ3LjMgNzMgMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTYtNjQgMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTcuNmMtMTEuOC0yLjQtMjIuNy03LjQtMzItMTQuNC0xLjUtMS4xLTIuOS0yLjMtNC4zLTMuNS0xNy0xNC43LTI3LjctMzYuNC0yNy43LTYwLjUgMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZjMCA0NC43IDI2LjIgODMuMiA2NCAxMDEuMmwwIDEwLjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc2Yy0xOS44IDcuNy00MS40IDEyLTY0IDEycy00NC4yLTQuMy02NC0xMmwwIDc2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTExOC45LTE4LjEgNDAuN2MtNS40IDEyLjEtMTkuNiAxNy42LTMxLjcgMTIuMlMtMy4zIDM2Mi40IDIuMSAzNTAuM0wyNCAzMDAuOWM1LjMtMTEuOSA4LTI0LjcgOC0zNy43IDAtMTA3LjUgODUuMi0xOTUuMiAxOTEuOC0xOTkuMWwuMi0uMSA2NCAwYzQxLjcgMCA4My40IDEyLjEgMTE3LjIgMjUuNyAxLjctMS44IDMuNS0zLjYgNS4zLTUuMkw0MDcgODFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em03MyAxODVhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptODggMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek00ODAgMTQ0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnoiXX0sa3B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvd2wtZm9vZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRjNiIsIk0wIDE3NmMwLTM1LjMgMjguNy02NCA2NC02NCAuNSAwIDEuMSAwIDEuNiAwIDcuNC0zNi41IDM5LjctNjQgNzguNC02NCAxNSAwIDI5IDQuMSA0MC45IDExLjIgMTMuMy0yNS43IDQwLjEtNDMuMiA3MS4xLTQzLjJzNTcuOCAxNy42IDcxLjEgNDMuMmMxMi03LjEgMjYtMTEuMiA0MC45LTExLjIgMzguNyAwIDcxIDI3LjUgNzguNCA2NCAuNSAwIDEuMSAwIDEuNiAwIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMTEuNy0zLjEgMjIuNi04LjYgMzJMOC42IDIwOEMzLjEgMTk4LjYgMCAxODcuNyAwIDE3NnpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjQgMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6Il19LFNwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtdmlydXMiLGljb246WzQ0OCw1MTIsW10sImU1NzgiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMTYwIDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMTkyIDI0OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LENwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zdW4tcmFpbiIsaWNvbjpbNTc2LDUxMixbMTI3NzgyXSwiZjc0MyIsIk0zMDMuMi0zLjJjLTEuMS01LjItNC42LTkuNS05LjUtMTEuNnMtMTAuNS0xLjUtMTQuOSAxLjRMMjA4IDMzLjYgMTM3LjMtMTMuM2MtNC40LTIuOS0xMC0zLjUtMTQuOS0xLjRzLTguNSA2LjQtOS41IDExLjZMOTYgODAgMTIuOCA5Ni44Yy01LjIgMS4xLTkuNSA0LjYtMTEuNiA5LjVzLTEuNSAxMC41IDEuNCAxNC45TDQ5LjYgMTkyIDIuNyAyNjIuN2MtMi45IDQuNC0zLjUgMTAtMS40IDE0LjlzNi40IDguNSAxMS42IDkuNUw5NiAzMDQgMTEyLjggMzg3LjJjMS4xIDUuMiA0LjYgOS41IDkuNSAxMS42czEwLjUgMS41IDE0LjktMS40bDY3LjMtNDQuNmMtMTUuOC0xOS40LTI2LTQzLjUtMjguMi02OS45LTM3LjUtMTMuMS02NC40LTQ4LjctNjQuNC05MC43IDAtNTMgNDMtOTYgOTYtOTYgMjEuNyAwIDQxLjggNy4yIDU3LjggMTkuNCAxNS41LTE3LjYgMzYuOS0zMCA2MS4xLTM0TDMyMCA4MCAzMDMuMi0zLjJ6TTI0MyAxNTkuMWMtOC44LTkuMy0yMS4yLTE1LjEtMzUtMTUuMS0yNi41IDAtNDggMjEuNS00OCA0OCAwIDE3IDguOSAzMiAyMi4yIDQwLjUgMTAuMi0zMS40IDMyLjEtNTcuNCA2MC43LTczbC4xLS40ek0zMDQgMzUybDE5MiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMzMuOS0yMS4xLTYyLjktNTAuOS03NC41IDEuOS02LjggMi45LTE0IDIuOS0yMS41IDAtNDQuMi0zNS44LTgwLTgwLTgwLTMwLjggMC01Ny41IDE3LjQtNzAuOSA0Mi44LTkuMy02LjgtMjAuNy0xMC44LTMzLjEtMTAuOC0zMC45IDAtNTYgMjUuMS01NiA1NiAwIDMuMiAuMyA2LjQgLjggOS40LTM2LjkgNy4xLTY0LjggMzkuNi02NC44IDc4LjYgMCA0NC4yIDM1LjggODAgODAgODB6bS0xOSA0OS4xYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjQgNjQuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40em0xMjAgMGMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS40IDY0LjFjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHptMTIwIDBjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuNCA2NC4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6Il19LFRyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1yaWdodCJdLCJmMTc4IiwiTTU2Ni42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0NjYuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDQzNC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LExwdD1UcmUsVHB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXVuIixpY29uOls1MTIsNTEyLFtdLCJlNGQ5IiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNzItMTEyIDBjLTIwLjkgMC0zOS41IDEwLjEtNTEuMiAyNS42LTgtNi0xOC05LjYtMjguOC05LjYtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NCA2NCAwIDAgNDgtMTQ0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTQyNy40IDM4MC41YzktMi4xIDE4LjMgMi4yIDIyLjUgMTAuNWwyNi4xIDUyLjIgMC00My4zYzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgMTI4YzAgOS4zLTYuNCAxNy4zLTE1LjQgMTkuNXMtMTguMy0yLjItMjIuNS0xMC41TDQ1MiA0ODQuNyA0NTIgNTI4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTEyOGMwLTkuMyA2LjQtMTcuMyAxNS40LTE5LjV6TTMyNCA0MDBsMCA5NmMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtOTZjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA5NmMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTk2YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIweiJdfSxfcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtbG93IixpY29uOls1MTIsNTEyLFtdLCJmNzZiIiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yOC43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjguN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00NjQgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzUyIDgwYTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHoiXX0sQXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvb3Itb3BlbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjUyYiIsIk0yODggNjRsNjQgMCAwIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC05NiAwIDAgMC0xNjAgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQxNnpNMTYwIDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSwkcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tbGVmdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNiIsIk0yODggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiAzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxfcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtZXJhIixpY29uOls1MTIsNTEyLFs2MjI1OCwiY2FtZXJhLWFsdCJdLCJmMDMwIiwiTTE0OS4xIDY0LjhMMTM4LjcgOTYgNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC03NC43IDAtMTAuNC0zMS4yQzM1Ni40IDQ1LjIgMzM4LjEgMzIgMzE3LjQgMzJMMTk0LjYgMzJjLTIwLjcgMC0zOSAxMy4yLTQ1LjUgMzIuOHpNMjU2IDE5MmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sRHB0PV9yZSxFcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtcmF5cyIsaWNvbjpbNjQwLDUxMixbXSwiZTU5MyIsIk0zMS0zM0MyMS43LTIzLjYgMjEuNy04LjQgMzEgMUw4NyA1N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNjUtMzNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwek02MDktMzNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDUxOSAyM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDYwOSAxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45ek02NSA1NDVsNTYtNTZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwzMSA1MTFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHptNTQ0IDBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTU2LTU2Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU2IDU2YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwek0zMjAgMjA4YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0wIDMyYy02MS45IDAtMTEyIDUwLjEtMTEyIDExMmwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04YzAtNjEuOS01MC4xLTExMi0xMTItMTEyem0yMTYtODBhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwek00NTEuMiAyNjAuNEM0NjkuNCAyODYuMyA0ODAgMzE3LjkgNDgwIDM1MmwwIDhjMCA4LjQtMS40IDE2LjUtNC4xIDI0bDc4LjggMGMxMS44IDAgMjEuMy05LjYgMjEuMy0yMS4zbDAtMTAuN2MwLTUzLTQzLTk2LTk2LTk2LTEwIDAtMTkuNyAxLjUtMjguOCA0LjR6bS0yNjIuNCAwYy05LjEtMi45LTE4LjgtNC40LTI4LjgtNC40LTUzIDAtOTYgNDMtOTYgOTZsMCAxMC43YzAgMTEuOCA5LjYgMjEuMyAyMS4zIDIxLjNsNzguOCAwYy0yLjctNy41LTQuMS0xNS42LTQuMS0yNGwwLThjMC0zNC4xIDEwLjYtNjUuNyAyOC44LTkxLjZ6TTIxNiAxNjBhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAweiJdfSxOcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFpbmJvdyIsaWNvbjpbNjQwLDUxMixbMTI3NzUyXSwiZjc1YiIsIk0zMjAgOTZDMTc4LjYgOTYgNjQgMjEwLjYgNjQgMzUybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0MzMuNyAwIDQxNmwwLTY0QzAgMTc1LjMgMTQzLjMgMzIgMzIwIDMyUzY0MCAxNzUuMyA2NDAgMzUybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NEM1NzYgMjEwLjYgNDYxLjQgOTYgMzIwIDk2em0wIDExMmMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOHMyMDggOTMuMSAyMDggMjA4bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NHpNMjg4IDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6Il19LFBwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaXRlbWFwIixpY29uOls1MTIsNTEyLFtdLCJmMGU4IiwiTTE5MiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTggMCAwIDY0IDEyMCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgNTYgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEyMCAwIDAgODAgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtODAtMTIwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNTYgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtNTZjMC0zOS44IDMyLjItNzIgNzItNzJsMTIwIDAgMC02NC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6Il19LEFyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tc3RhcnMiLGljb246WzUxMiw1MTIsWzEyOTMyMSwiZ3Jpbi1zdGFycyJdLCJmNTg3IiwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTI0LjQtMy40LTQ4LjEtOS44LTcwLjUgMTguNi0zNi4xLTIuNy04My42LTQ2LjctOTAtNDYuOS01OC4zLTExOC45LTk1LjUtMTk5LjUtOTUuNVMxMDMuNCAzNy4zIDU2LjUgOTUuNWMtNDQgNi40LTY1LjMgNTMuOS00Ni43IDkwLTYuNCAyMi40LTkuOCA0Ni05LjggNzAuNSAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2ek0zODYuNyAzMjQuOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgNDA0LjIgMTA1LjcgMzQyLjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXptLTMxLjYtMjMxYzUuMy0xMC43IDIwLjUtMTAuNyAyNS44IDBsMjAuOSA0Mi40IDQ2LjcgNi44YzExLjggMS43IDE2LjUgMTYuMiA4IDI0LjVsLTMzLjggMzMgOCA0Ni42YzIgMTEuNy0xMC4zIDIwLjctMjAuOSAxNS4ybC00MS44LTIyLTQxLjggMjJjLTEwLjUgNS41LTIyLjktMy40LTIwLjktMTUuMmw4LTQ2LjYtMzMuOC0zM2MtOC41LTguMy0zLjgtMjIuOCA4LTI0LjVsNDYuNy02LjggMjAuOS00Mi40em0tMTk4LjIgMGwyMC45IDQyLjQgNDYuNyA2LjhjMTEuOCAxLjcgMTYuNSAxNi4yIDggMjQuNWwtMzMuOCAzMyA4IDQ2LjZjMiAxMS43LTEwLjMgMjAuNy0yMC45IDE1LjJsLTQxLjgtMjItNDEuOCAyMmMtMTAuNSA1LjUtMjIuOS0zLjQtMjAuOS0xNS4ybDgtNDYuNi0zMy44LTMzYy04LjUtOC4zLTMuOC0yMi44IDgtMjQuNWw0Ni43LTYuOCAyMC45LTQyLjRjNS4zLTEwLjcgMjAuNS0xMC43IDI1LjggMHoiXX0sSXB0PUFyZSwkcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29ydC11cCIsaWNvbjpbMzg0LDUxMixbInNvcnQtYXNjIl0sImYwZGUiLCJNMzIgMjI0Yy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44Uy4yIDE3OC41IDkuNCAxNjkuNGwxNjAtMTYwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzY0LjkgMjI0IDM1MiAyMjRMMzIgMjI0eiJdfSxGcHQ9JHJlLFRVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZSIsaWNvbjpbNTc2LDUxMixbMTI4MDY1XSwiZjA2ZSIsIk0yODggMzJjLTgwLjggMC0xNDUuNSAzNi44LTE5Mi42IDgwLjYtNDYuOCA0My41LTc4LjEgOTUuNC05MyAxMzEuMS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjZzMTQ1LjUtMzYuOCAxOTIuNi04MC42YzQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42ek0xNDQgMjU2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0NC02NGMwIDM1LjMtMjguNyA2NC02NCA2NC0xMS41IDAtMjIuMy0zLTMxLjctOC40LTEgMTAuOS0uMSAyMi4xIDIuOSAzMy4yIDEzLjcgNTEuMiA2Ni40IDgxLjYgMTE3LjYgNjcuOXM4MS42LTY2LjQgNjcuOS0xMTcuNmMtMTIuMi00NS43LTU1LjUtNzQuOC0xMDEuMS03MC44IDUuMyA5LjMgOC40IDIwLjEgOC40IDMxLjd6Il19LF9VPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LWxlZnQiLGljb246WzI1Niw1MTIsW10sImYwZDkiLCJNNy43IDIzNS44Yy0xMC4zIDEyLjYtOS41IDMxLjEgMi4yIDQyLjhsMTI4IDEyOGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMjU2YzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC0xMjggMTI4LTIuMiAyLjR6Il19LERyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcHBsZS13aG9sZSIsaWNvbjpbNDQ4LDUxMixbMTI3ODIyLDEyNzgyMywiYXBwbGUtYWx0Il0sImY1ZDEiLCJNMjI0IDExMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODBsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTYgMHpNMCAyODhjMC03Ni4zIDM1LjctMTYwIDExMi0xNjAgMjcuMyAwIDU5LjcgMTAuMyA4Mi43IDE5LjMgMTguOCA3LjMgMzkuOSA3LjMgNTguNyAwIDIyLjktOC45IDU1LjQtMTkuMyA4Mi43LTE5LjMgNzYuMyAwIDExMiA4My43IDExMiAxNjAgMCAxMjgtODAgMjI0LTE2MCAyMjQtMTYuNSAwLTM4LjEtNi42LTUxLjUtMTEuMy04LjEtMi44LTE2LjktMi44LTI1IDAtMTMuNCA0LjctMzUgMTEuMy01MS41IDExLjMtODAgMC0xNjAtOTYtMTYwLTIyNHoiXX0sT3B0PURyZSxFcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsLXRvcmFoIixpY29uOls1NzYsNTEyLFsidG9yYWgiXSwiZjZhMCIsIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMCA2OC45IDAgODYuNyAxMy40IDkzLjMgMzJsMzg5LjUgMGM2LjYtMTguNiAyNC40LTMyIDQ1LjMtMzIgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDgtMjAuOSAwLTM4LjctMTMuNC00NS4zLTMyTDkzLjMgNDgwYy02LjYgMTguNi0yNC40IDMyLTQ1LjMgMzItMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpNMTc3LjkgMzAxYy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yYy0yLjYtNC4yLTcuMi02LjgtMTIuMi02LjhzLTkuNiAyLjYtMTIuMiA2LjhsLTMwLjUgNDkuMi01Ni45IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDIuMyAuNiA0LjYgMS45IDYuNmwyNy44IDQ1LTI3LjggNDV6Il19LEJwdD1FcmUsUnB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWxvY2siLGljb246WzY0MCw1MTIsW10sImU1MTAiLCJNNTI4IDIyNC4xYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwxODUgMTcxLjhDNDQwLjIgMTk1IDQwMCAyNDQuOCA0MDAgMzA0bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek0yNzIgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDk2IDAgMC04Ny4zYzAtMTYuNSA3LTMxLjUgMTguNC00Mi4xLTguNy05LTIwLjktMTQuNi0zNC40LTE0LjZsLTMyIDB6bTI1Ni00Ny45Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3LjljMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEhwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtbGVmdC1yaWdodC10by1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNGJhIiwiTTMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOEwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zOTAuNiAzNDIuNmw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMTMzLjUgMCA5LjQtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTMzLjUgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwek01NzYgMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZ6Il19LEQ3PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoIixpY29uOls0NDgsNTEyLFtdLCJmMWY4IiwiTTEzNi43IDUuOUwxMjggMzIgMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwLTguNy0yNi4xQzMwNi45LTcuMiAyOTQuNy0xNiAyODAuOS0xNkwxNjcuMS0xNmMtMTMuOCAwLTI2IDguOC0zMC40IDIxLjl6TTQxNiAxNDRMMzIgMTQ0IDUzLjEgNDY3LjFDNTQuNyA0OTIuNCA3NS43IDUxMiAxMDEgNTEyTDM0NyA1MTJjMjUuMyAwIDQ2LjMtMTkuNiA0Ny45LTQ0LjlMNDE2IDE0NHoiXX0sTnJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc2FkLXRlYXIiLGljb246WzUxMiw1MTIsWzEyODU0Niwic2FkLXRlYXIiXSwiZjViNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNzEgOThjNS41LTEuMyAxMS4xLTIgMTctMiAyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MC0xMi41IDAtMjQuNiAxLjktMzUuOSA1LjUgOS44IDEyLjcgMTYuNSAyNy45IDE4LjkgNDQuNnpNMTc2IDI0MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE5Mi0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xODUuNCAyOTIuOGMtMi40LTIuOS01LjctNC44LTkuNC00LjhzLTcgMS45LTkuNCA0LjhjLTYuNSA3LjgtMTIuNiAxNi4xLTE4LjMgMjQuNi05IDEzLjQtMjAuMyAzMC4yLTIwLjMgNDcuNCAwIDI4LjMgMjEuNSA1MS4yIDQ4IDUxLjJzNDgtMjIuOSA0OC01MS4yYzAtMTcuMi0xMS4yLTM0LTIwLjMtNDcuNC01LjctOC41LTExLjktMTYuNy0xOC4zLTI0LjZ6Il19LHFwdD1OcmUsVnB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZheCIsaWNvbjpbNTEyLDUxMixbMTI4MjI0LDEyODQzOV0sImYxYWMiLCJNMTYwIDY0bDAgODAgNjQgMCAwLTgwIDE0Ni43IDAgNDUuMyA0NS4zIDAgMzQuNyA2NCAwIDAtMzQuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w0MTYgMTguN0M0MDQgNi43IDM4Ny43IDAgMzcwLjcgMEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMHptNDQ4IDY0bC0zMjAgMCAwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDI4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0wIDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTMzNiAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zMTIgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTQyNCAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek00MDAgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LFVwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLXBsdXMiLGljb246WzY0MCw1MTIsW10sImU1NDEiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnoiXX0sanB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbXNhIixpY29uOls1MTIsNTEyLFtdLCJmNjY1IiwiTTM0LjYgMjg4TDgwIDI4OGM4LjggMCAxNi03LjIgMTYtMTZMOTYgNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDEzMmMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTE2NGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTY0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTMyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMDBjMCA4LjggNy4yIDE2IDE2IDE2bDQ1LjQgMGMxOS4xIDAgMzQuNiAxNS41IDM0LjYgMzQuNiAwIDguNi0zLjIgMTYuOS05IDIzLjNMNDE2LjYgNDQxYy00MS4xIDQ1LjItOTkuNCA3MS0xNjAuNiA3MVMxMzYuNiA0ODYuMiA5NS40IDQ0MUw5IDM0NS45Yy01LjgtNi40LTktMTQuNy05LTIzLjMgMC0xOS4xIDE1LjUtMzQuNiAzNC42LTM0LjZ6TTI1NiAyODhjLTM4LjQgMC03Ni44IDM1LjgtOTAuNiA1MC4yLTMuNiAzLjctNS40IDguNy01LjQgMTMuOHMxLjggMTAuMSA1LjQgMTMuOEMxNzkuMiAzODAuMiAyMTcuNiA0MTYgMjU2IDQxNnM3Ni44LTM1LjggOTAuNi01MC4yYzMuNi0zLjcgNS40LTguNyA1LjQtMTMuOHMtMS44LTEwLjEtNS40LTEzLjhDMzMyLjggMzIzLjggMjk0LjQgMjg4IDI1NiAyODh6bTAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxXcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LEdwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtY2hlY2siLGljb246WzM4NCw1MTIsW10sImY0NmMiLCJNMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMHptMjYuOSAyMTIuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjZzLTkuOCAyNC40LS42IDMzLjlsNDYuNCA0OGM0LjkgNS4xIDExLjggNy44IDE4LjkgNy4zczEzLjYtNC4xIDE3LjgtOS44TDI4OC4yIDI0Ni4xYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41ek0xMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0eiJdfSxQcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtZnJvbS1zcXVhcmUiLGljb246WzU3Niw1MTIsWzYxNTA5LCJzaGFyZS1zcXVhcmUiXSwiZjE0ZCIsIk0zODQuNSAyNGwwIDcyLTY0IDBjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOTMuNCA4Mi44IDEzNC44IDEwMC42IDE0Mi42IDIuMiAxIDQuNiAxLjQgNy4xIDEuNGwyLjUgMGM5LjggMCAxNy44LTggMTcuOC0xNy44IDAtOC4zLTUuOS0xNS41LTEyLjgtMjAuMy04LjktNi4yLTE5LjItMTguMi0xOS4yLTQwLjUgMC00NSAzNi41LTgxLjUgODEuNS04MS41bDMwLjUgMCAwIDcyYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNHptLTI3MiA3MmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMjU2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMHoiXX0sWXB0PVByZSxBVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWNlaXB0IixpY29uOlszODQsNTEyLFsxMjk1MzRdLCJmNTQzIiwiTTE0IDIuMkMyMi41LTEuNyAzMi41LS4zIDM5LjYgNS44TDgwIDQwLjQgMTIwLjQgNS44YzktNy43IDIyLjMtNy43IDMxLjIgMEwxOTIgNDAuNCAyMzIuNCA1LjhjOS03LjcgMjIuMi03LjcgMzEuMiAwTDMwNCA0MC40IDM0NC40IDUuOGM3LjEtNi4xIDE3LjEtNy41IDI1LjYtMy42UzM4NCAxNC42IDM4NCAyNGwwIDQ2NGMwIDkuNC01LjUgMTcuOS0xNCAyMS44cy0xOC41IDIuNS0yNS42LTMuNmwtNDAuNC0zNC42LTQwLjQgMzQuNmMtOSA3LjctMjIuMiA3LjctMzEuMiAwbC00MC40LTM0LjYtNDAuNCAzNC42Yy05IDcuNy0yMi4zIDcuNy0zMS4yIDBMODAgNDcxLjYgMzkuNiA1MDYuMmMtNy4xIDYuMS0xNy4xIDcuNS0yNS42IDMuNlMwIDQ5Ny40IDAgNDg4TDAgMjRDMCAxNC42IDUuNSA2LjEgMTQgMi4yek0xMDQgMTM2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMHpNODAgMzUyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTI0LTEyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LFpwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlcXVhbHMiLGljb246WzQ0OCw1MTIsWzYyNzY0XSwiM2QiLCJNMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDEyOHptMCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIweiJdfSxYcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi11cCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA3NyIsIk0yMDEuNCAxMDUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOTIgMTkyYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDIyNCAxNzMuMyA1NC42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxOTItMTkyeiJdfSxRcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXMtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzUiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODguNi04OC42YzEuNy0xMi4xLTItMjQuOC0xMS4zLTM0LTMxLjItMzEuMi05LjEtODQuNSAzNS04NC41IDIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwYy00NC4xIDAtNjYuMS01My4zLTM1LTg0LjUgMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZzLTQwLjktMTUuNi01Ni42IDBjLTMxLjIgMzEuMi04NC41IDkuMS04NC41LTM1IDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgNDQuMS01My4zIDY2LjEtODQuNSAzNS05LjMtOS4zLTIyLTEzLTM0LTExLjNMNDEtMjQuOXpNNzIgMjE2Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwYzQ0LjEgMCA2Ni4xIDUzLjMgMzUgODQuNS0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNnM0MC45IDE1LjYgNTYuNiAwYzMxLjItMzEuMiA4NC41LTkuMSA4NC41IDM1IDAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBjMC0yMS40IDEyLjYtMzcuNiAyOS4xLTQ1LjFsLTI0MC0yNDBDMTA5LjYgMjAzLjQgOTMuNCAyMTYgNzIgMjE2eiJdfSxLcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2xhc2giLGljb246WzU3Niw1MTIsW10sImY3MTUiLCJNNy0yNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEw1NjkgNTAzYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5Qy0yLjMtLjQtMi4zLTE1LjYgNy0yNXoiXX0sSnB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV4cGFuZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA2NSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTY0IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDMzNC4zIDAgMzUybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNNDQ4IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2eiJdfSxJcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZS1zdGlja3kiLGljb246WzQ0OCw1MTIsWzYyMDI2LCJzdGlja3ktbm90ZSJdLCJmMjQ5IiwiTTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIxMy41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zTDMyMi43IDQ2MS4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDY0IDQ4MHpNMzg5LjUgMzA0TDI5NiAzMDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXoiXX0sZTl0PUlyZSxGcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY29sdW1ucyIsaWNvbjpbNDQ4LDUxMixbImNvbHVtbnMiXSwiZjBkYiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgNjRsMCAyNTYgMTI4IDAgMC0yNTYtMTI4IDB6bTMyMCAwbC0xMjggMCAwIDI1NiAxMjggMCAwLTI1NnoiXX0sdDl0PUZyZSxhOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNoZWx0ZXIiLGljb246WzUxMiw1MTIsW10sImU1NGYiLCJNMjcxLjkgNC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOEM2LjIgMTM3LjkgMCAxNDguNSAwIDE2MEwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDE3OC42IDI1NiA2OC45IDQ0OCAxNzguNiA0NDggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMjBjMC0xMS41LTYuMi0yMi4xLTE2LjEtMjcuOGwtMjI0LTEyOHpNMjU2IDIwOGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bS04IDE5MmwxNiAwIDAgODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NC41IDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTMzLjItNjEuN0MzMjkuNyAyNDUuMSAyOTQuNCAyMjQgMjU2IDIyNHMtNzMuNyAyMS4xLTkxLjkgNTQuOWwtMzMuMiA2MS43Yy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEwyMDAgMzEzLjUgMjAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODh6Il19LHI5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbm90Y2giLGljb246WzUxMiw1MTIsW10sImYxY2UiLCJNMjIyLjcgMzIuMWM1IDE2LjktNC42IDM0LjgtMjEuNSAzOS44LTc5LjMgMjMuNi0xMzcuMSA5Ny4xLTEzNy4xIDE4NC4xIDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtODYuOS01Ny44LTE2MC40LTEzNy4xLTE4NC4xLTE2LjktNS0yNi42LTIyLjktMjEuNS0zOS44czIyLjktMjYuNiAzOS44LTIxLjVDNDM0LjkgNDIuMSA1MTIgMTQwIDUxMiAyNTYgNTEyIDM5Ny40IDM5Ny40IDUxMiAyNTYgNTEyUzAgMzk3LjQgMCAyNTZjMC0xMTYgNzcuMS0yMTMuOSAxODIuOS0yNDUuNCAxNi45LTUgMzQuOCA0LjYgMzkuOCAyMS41eiJdfSxpOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2F0ZXIiLGljb246WzUxMiw1MTIsW10sImY3NzMiLCJNNDEwLjYgMTI0LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0wIDE0NGMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuNy0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDE0NGMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LE9yZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkZWxldGUtbGVmdCIsaWNvbjpbNjQwLDUxMixbOTAwMywiYmFja3NwYWNlIl0sImY1NWEiLCJNNTc2IDEyOGMwLTM1LjMtMjguNy02NC02NC02NEwyMDUuMyA2NGMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdMOS40IDIzMy40Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZMMTYwIDQyOS4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NnpNMjg0LjEgMTg4LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sbzl0PU9yZSxJVj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicm9vbS1iYWxsIixpY29uOls1NzYsNTEyLFsicXVpZGRpdGNoIiwicXVpZGRpdGNoLWJyb29tLWJhbGwiXSwiZjQ1OCIsIk00OTYgNTQ0YTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYwek0xMDYuOCAyNzcuMmMzMC42LTMwLjYgNzMuMS00NS45IDExNS44LTQyLjJMMzQxIDM1My4zYzMuNyA0Mi44LTExLjYgODUuMi00Mi4yIDExNS45LTI3LjQgMjcuNC02NC42IDQyLjgtMTAzLjMgNDIuOEwyMi4xIDUxMmMtMTIuMiAwLTIyLjEtOS45LTIyLjEtMjIuMSAwLTYuMyAyLjctMTIuMyA3LjMtMTYuNUwxMzMuNyAzNTkuN2M0LjItMy43LS40LTEwLjQtNS40LTcuOUw3Ny4yIDM3Ny40Yy02LjEgMy0xMy4yLTEuNC0xMy4yLTguMiAwLTMxLjUgMTIuNS02MS44IDM0LjgtODRsOC04em00MTctMjcwYzEyLjYtMTAuMyAzMS4xLTkuNSA0Mi44IDIuMnMxMi40IDMwLjIgMi4yIDQyLjhsLTIuMiAyLjQtMTkyIDE5MiAzNC44IDM0LjdjNC4yIDQuMiA2LjYgMTAgNi42IDE2IDAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42bC0yOS4xIDAtMTA4LjMtMTA4LjMgMC0yOS4xYzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42IDYgMCAxMS44IDIuNCAxNiA2LjZsMzQuOCAzNC43IDE5Mi0xOTIgMi40LTIuMnoiXX0sczl0PUlWLG45dD1JVixsOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaiIsaWNvbjpbMzIwLDUxMixbMTA2XSwiNGEiLCJNMjg4IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDA4LjQgMCAzMjBsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sQnJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNodXR0bGUtc3BhY2UiLGljb246WzU3Niw1MTIsWyJzcGFjZS1zaHV0dGxlIl0sImYxOTciLCJNMCAzNjhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw1MCAwYzQwLjYgMCA4MC40LTExIDExNS4yLTMxLjlsMTMzLjUtODAuMS05My4zIDAtNjQuOSAzOC45Yy0xNCA4LjQtMjguOSAxNC43LTQ0LjUgMTlsMC02Ni40YzkuNy01LjYgMTcuOC0xMy43IDIzLjQtMjMuNGwxOTguOCAwYzY3LjEgMCAxMjcuOC0yMC42IDE3MC4zLTcwLjYgNC42LTUuNCA0LjYtMTMuMyAwLTE4LjgtNDIuNS01MC4xLTEwMy4yLTcwLjYtMTcwLjMtNzAuNmwtMTk4LjggMGMtNS42LTkuNy0xMy43LTE3LjgtMjMuNC0yMy40bDAtNjYuNGMxNS42IDQuMiAzMC42IDEwLjYgNDQuNSAxOWw2NC45IDM4LjkgOTMuMyAwLTEzMy41LTgwLjFDMTc4LjQgNDMgMTM4LjYgMzIgOTggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDM2OHptOTYgMGwwIDY0LTQ4IDAgMC02NCA0OCAwek05NiA4MGwwIDY0LTQ4IDAgMC02NCA0OCAwek00MTYgMjI0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxjOXQ9QnJlLGQ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ5aW4teWFuZyIsaWNvbjpbNTEyLDUxMixbOTc3NV0sImY2YWQiLCJNMjI0IDE2MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiAzNTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTQ0OGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Ni05NiA0My05NiA5NiA0MyA5NiA5NiA5NkMxNTAgNDQ4IDY0IDM2MiA2NCAyNTZTMTUwIDY0IDI1NiA2NHpNMjI0IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxmOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcCIsaWNvbjpbNDQ4LDUxMixbOTIwOV0sImYwNGQiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyeiJdfSx1OXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvd2VsIixpY29uOls1NzYsNTEyLFtdLCJlNTg5IiwiTTQwNy45IDE4MS40TDI3Ny4zIDMxMiAzNDIuNiAzNzcuNGM3LjkgNy45IDExLjEgMTkuNCA4LjQgMzAuM3MtMTAuOCAxOS42LTIxLjUgMjIuOWwtMjU2IDgwYy0xMS40IDMuNS0yMy44IC41LTMyLjItNy45cy0xMS41LTIwLjgtNy45LTMyLjJsODAtMjU2YzMuMy0xMC43IDEyLTE4LjkgMjIuOS0yMS41czIyLjQgLjUgMzAuMyA4LjRMMjMyIDI2Ni43IDM2Mi42IDEzNi4xYy0xNC4zLTE0LjYtMTQuMi0zOCAuMy01Mi41bDk1LjQtOTUuNGMyNi45LTI2LjkgNzAuNS0yNi45IDk3LjUgMHMyNi45IDcwLjUgMCA5Ny41bC05NS40IDk1LjRjLTE0LjUgMTQuNS0zNy45IDE0LjYtNTIuNSAuM3oiXX0sUnJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtYmFjay1maXN0IixpY29uOlszODQsNTEyLFsiaGFuZC1yb2NrIl0sImYyNTUiLCJNNy40IDI1My42QzIuNiAyNDUuOSAwIDIzNy4xIDAgMjI4bDAtMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4IDE3LjMgMCAzMi40IDkuMSA0MC45IDIyLjggNC4zLTIyLjEgMjMuOC0zOC44IDQ3LjEtMzguOCAyMy40IDAgNDIuOSAxNi44IDQ3LjEgMzguOSA3LjMtNC40IDE1LjgtNi45IDI0LjktNi45IDIyLjEgMCA0MC44IDE1IDQ2LjMgMzUuNCA1LjUtMi4yIDExLjQtMy40IDE3LjctMy40IDI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTYuOWMwIDkuOS0yLjMgMTkuNy02LjggMjguNmwtMzkuNiA3OS4xYy0xMC44IDIxLjctMzMgMzUuNC01Ny4yIDM1LjRMOTYgMzUyYy0xNi41IDAtMzEuOC04LjQtNDAuNi0yMi40bC00OC03NnpNMzIgNDgwbDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxwOXQ9UnJlLGg5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1oaWdoIixpY29uOls1MTIsNTEyLFtdLCJmNzY5IiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNMMjE2IDk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjEyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDY0IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM1MiA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6Il19LG05dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmVhdGVyLXRoYW4iLGljb246WzUxMiw1MTIsWzYyNzY5XSwiM2UiLCJNMzQuOSA1MC42Yy03LjQgMTYtLjQgMzUuMSAxNS42IDQyLjVMNDAzLjYgMjU2IDUwLjYgNDE5Yy0xNiA3LjQtMjMuMSAyNi40LTE1LjYgNDIuNXMyNi40IDIzIDQyLjUgMTUuNmw0MTYtMTkyYzExLjMtNS4yIDE4LjYtMTYuNiAxOC42LTI5LjFzLTcuMy0yMy44LTE4LjYtMjkuMUw3Ny40IDM1Yy0xNi03LjQtMzUuMS0uNC00Mi41IDE1LjZ6Il19LGc5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcnV0Y2giLGljb246WzUxMiw1MTIsW10sImY3ZjciLCJNMjk3LjQgOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTEuNC0xLjQtMTU4LjYgMTU4LjZjLTE4IDE4LTQyLjQgMjguMS02Ny45IDI4LjFsLTU5IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40LTYxLjcgNjEuNy05Mi44IDkyLjgtOTMuMyA5My4zLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2LTE2IDAgMCA3Ny4zLTc3LjNjNi02IDkuNC0xNC4xIDkuNC0yMi42bDAtNTljMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlMMjk4LjcgNTYgMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6TTM0NCAxMDEuM0wyNjEuMyAxODQgMzI4IDI1MC43IDQxMC43IDE2OCAzNDQgMTAxLjN6bS0xMjggMTI4bC0zMC42IDMwLjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDUzLjUgNTMuNSAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40TDI4Mi43IDI5NiAyMTYgMjI5LjN6Il19LEhyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZXB0YWdvbiIsaWNvbjpbNTc2LDUxMixbImhlcHRhZ29uIl0sImU4MjAiLCJNMjY3LjQtMzEuNWMxNS45LTUuNSAzMy41LTQuNiA0OC44IDIuN2wxNzIuNCA4MyA2LjMgMy41YzE0LjIgOSAyNC41IDIzLjMgMjguMyAzOS45bDQyLjYgMTg2LjUgMS4yIDcuMmMxLjYgMTQuMy0xLjcgMjguOC05LjQgNDEuMWwtNC4yIDUuOS0xMTkuMyAxNDkuNmMtMTIuMSAxNS4yLTMwLjYgMjQuMS01MCAyNC4xbC0xOTEuMyAwYy0xOS41IDAtMzcuOS04LjktNTAtMjQuMUwyMy41IDMzOC40Yy0xMi4xLTE1LjItMTYuNy0zNS4yLTEyLjMtNTQuMmw0Mi42LTE4Ni41IDItN2M1LjYtMTUuOSAxNy4yLTI5IDMyLjYtMzYuNGwxNzIuNC04MyA2LjctMi43eiJdfSx4OXQ9SHJlLGI5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdHJlZXQtdmlldyIsaWNvbjpbNTEyLDUxMixbXSwiZjIxZCIsIk0yNTYgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMjI0IDE2MGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEuOCAwLTExLjEgOTkuNWMtMS44IDE2LjItMTUuNSAyOC41LTMxLjggMjguNWwtMzguNyAwYy0xNi4zIDAtMzAtMTIuMy0zMS44LTI4LjVsLTExLjEtOTkuNS0xLjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00OGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDEyLjQgNDAwLjJjLTE2LjEtNC4yLTM0LjgtNy42LTU1LjQtMTAuMmw1LjMtNDcuN2MyMi43IDIuOSA0My43IDYuNyA2Mi4xIDExLjUgMjIuNCA1LjggNDIuNiAxMy4zIDU3LjggMjMuMyAxNC43IDkuNiAyOS44IDI0LjkgMjkuOCA0N3MtMTUuMSAzNy40LTI5LjggNDdjLTE1LjIgOS45LTM1LjUgMTcuNS01Ny44IDIzLjMtNDUuMSAxMS43LTEwNS4zIDE3LjgtMTY4LjQgMTcuOHMtMTIzLjMtNi4xLTE2OC40LTE3LjhDNjUuMiA0ODguNCA0NSA0ODAuOSAyOS44IDQ3MSAxNS4xIDQ2MS40IDAgNDQ2LjEgMCA0MjRzMTUuMS0zNy40IDI5LjgtNDdjMTUuMi05LjkgMzUuNS0xNy41IDU3LjgtMjMuMyAxOC41LTQuOCAzOS41LTguNiA2Mi4xLTExLjVMMTU1IDM5MGMtMjAuNiAyLjYtMzkuMyA2LjEtNTUuNCAxMC4yLTU2LjYgMTQuNi01Ni42IDMyLjkgMCA0Ny41IDM5LjkgMTAuMyA5NS44IDE2LjIgMTU2LjQgMTYuMnMxMTYuNS01LjkgMTU2LjQtMTYuMmM1Ni42LTE0LjYgNTYuNi0zMi45IDAtNDcuNXoiXX0sdjl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdmUtc3F1YXJlIixpY29uOls1MTIsNTEyLFtdLCJmODNlIiwiTTY0IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjg4IDk2IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjg4LTk2IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTEyOHoiXX0seTl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLWxlZnQiLGljb246WzI1Niw1MTIsWzgyNDldLCJmMTA0IiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDIxNC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYweiJdfSx3OXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NyZXdkcml2ZXIiLGljb246WzU3Niw1MTIsWzEyOTY5MV0sImY1NGEiLCJNMzUyLjEgMTQ2LjdsMC00OS42YzAtMTAuNyA1LjMtMjAuNyAxNC4yLTI2LjZMNDg1LjItOC43YzYuMy00LjIgMTQuOC0zLjQgMjAuMiAybDQ1LjQgNDUuNWM1LjQgNS40IDYuMiAxMy44IDIgMjAuMkw0NzMuNiAxNzcuOGMtNS45IDguOS0xNS45IDE0LjItMjYuNiAxNC4ybC00OS42IDAtOTAuNyA5MC43YzE1IDMzLjMgOC45IDczLjktMTguNSAxMDEuM0wxNjIuMSA1MTAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMzQuMSA0NDkuOWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlMMTYwLjEgMjU2YzI3LjQtMjcuNCA2Ny45LTMzLjYgMTAxLjMtMTguNWw5MC43LTkwLjd6Il19LE05dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFjdG9yIixpY29uOls1NzYsNTEyLFsxMjg2NjhdLCJmNzIyIiwiTTE2MCA5NmwwIDk2IDEzMy40IDAtNTcuNi05Ni03NS44IDB6TTk2IDIyM0w5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMDcuOCAwYzIyLjUgMCA0My4zIDExLjggNTQuOSAzMS4xbDc3LjQgMTI4LjkgNjQgMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiA0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDEuNWMwIDE0LjItNi4zIDI3LjgtMTcuMyAzNi45bC0zNSAyOS4yYzI2LjUgMTUuMiA0NC4zIDQzLjcgNDQuMyA3Ni40IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMTQuNCAzLjUtMjggOS42LTQwbC0xMDEuMiAwYy0zIDEzLjQtNy45IDI2LTE0LjQgMzcuNyA3LjcgOS40IDcuMiAyMy40LTEuNiAzMi4ybC0yMi42IDIyLjZjLTguOCA4LjgtMjIuNyA5LjMtMzIuMiAxLjYtOS4zIDUuMi0xOS4zIDkuMy0yOS44IDEyLjMtMS4yIDEyLjEtMTEuNCAyMS42LTIzLjkgMjEuNmwtMzIgMGMtMTIuNCAwLTIyLjctOS41LTIzLjktMjEuNi0xMC41LTMtMjAuNC03LjItMjkuOC0xMi4zLTkuNCA3LjctMjMuNCA3LjItMzIuMi0xLjZMMzUuNSA0NTMuOGMtOC44LTguOC05LjMtMjIuNy0xLjYtMzIuMi01LjItOS4zLTkuMy0xOS4zLTEyLjMtMjkuOC0xMi4xLTEuMi0yMS42LTExLjQtMjEuNi0yMy45bDAtMzJjMC0xMi40IDkuNS0yMi43IDIxLjYtMjMuOSAzLTEwLjUgNy4yLTIwLjQgMTIuMy0yOS44LTcuNy05LjQtNy4yLTIzLjQgMS42LTMyLjJsMjIuNi0yMi42YzguOC04LjggMjIuNy05LjMgMzIuMi0xLjYgMS45LTEgMy43LTIgNS43LTN6bTY0IDY1YTY0IDY0IDAgMSAwIDAgMTI4IDY0IDY0IDAgMSAwIDAtMTI4ek00NDAgNDI0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAgLTgwIDB6Il19LHo5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlNGNiIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sazl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWxzIixpY29uOls1MTIsNTEyLFtdLCJmNDkzIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAzNTJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTM1MiA2NCAwIDAgMzUyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0zNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJTNDk3LjcgMCA0ODAgMEwzMiAwek0xNjAgNjRsMCAxMjgtNjQgMCAwLTEyOCA2NCAwem0yNTYgMGwwIDEyOC02NCAwIDAtMTI4IDY0IDB6Il19LFM5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGV0aG9zY29wZSIsaWNvbjpbNTc2LDUxMixbMTI5NjU4XSwiZjBmMSIsIk0zMiA0OEMzMiAyMS41IDUzLjUgMCA4MCAwbDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMyMzguMyAwIDI1NiAwbDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNDRjMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAxOS4yYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJsMC04NS41Yy0zNy4zLTEzLjItNjQtNDguNy02NC05MC41IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA0MS44LTI2LjcgNzcuNC02NCA5MC41bDAgODUuNWMwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMxNjAgNDY1LjIgMTYwIDM2OGwwLTE5LjJDODcgMzM0IDMyIDI2OS40IDMyIDE5MkwzMiA0OHpNNDgwIDIyNGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEM5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb2RjYXN0IixpY29uOls0NDgsNTEyLFtdLCJmMmNlIiwiTTMzNiAzNTkuOGMzOS4xLTMyLjMgNjQtODEuMSA2NC0xMzUuOCAwLTk3LjItNzguOC0xNzYtMTc2LTE3NlM0OCAxMjYuOCA0OCAyMjRDNDggMjc4LjcgNzIuOSAzMjcuNSAxMTIgMzU5LjggMTEyLjQgMzc3LjQgMTE1LjIgNDAwLjIgMTE4LjQgNDIxLjYgNDggMzgzLjkgMCAzMDkuNSAwIDIyNCAwIDEwMC4zIDEwMC4zIDAgMjI0IDBTNDQ4IDEwMC4zIDQ0OCAyMjRjMCA4NS42LTQ4IDE1OS45LTExOC41IDE5Ny42IDMuMy0yMS40IDYtNDQuMiA2LjQtNjEuOHptLTE0LTUzLjRjLTguMy0xMi42LTE5LjItMjEuNi0zMC40LTI3LjgtMi4xLTEuMS00LjItMi4yLTYuMy0zLjIgMTEuNy0xMy45IDE4LjgtMzEuOSAxOC44LTUxLjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAxOS42IDcuMSAzNy42IDE4LjggNTEuNS0yLjEgMS00LjIgMi02LjMgMy4yLTExLjIgNi4yLTIyLjEgMTUuMi0zMC40IDI3LjgtMTguOC0yMi4zLTMwLjEtNTEtMzAuMS04Mi40IDAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4czEyOCA1Ny4zIDEyOCAxMjhjMCAzMS40LTExLjMgNjAuMi0zMC4xIDgyLjR6TTIyNCAzMTJjMzIuOSAwIDY0IDguNiA2NCA0My44IDAgMzMtMTIuOSAxMDQuMS0yMC42IDEzMi45LTUuMSAxOS0yNC41IDIzLjQtNDMuNCAyMy40cy0zOC4yLTQuNC00My40LTIzLjRjLTcuOC0yOC41LTIwLjYtOTkuNy0yMC42LTEzMi44IDAtMzUuMSAzMS4xLTQzLjggNjQtNDMuOHptMC0xMjhhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxMOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtcmlnaHQtZG90cyIsaWNvbjpbNTEyLDUxMixbXSwiZTRiNyIsIk05NiAzMkM3OC4zIDMyIDY0IDQ2LjMgNjQgNjRTNzguMyA5NiA5NiA5NkwxMTQuNyA5NiA5LjQgMjAxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDE0MS4zIDE2MCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDMyek00MDMuOCA3MC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6TTI3OS43IDE5NC4yYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6bTE2Mi4yLTM4LjFhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yek0xNTYuMiAzMTcuOGEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwem0xNjEuNi0zOC4xYTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnptODYuMSAzOC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6TTcwLjEgNDAzLjhhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yem04Ni4xIDM4LjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHptMTYxLjYtMzguMWEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6bTg2LjEgMzguMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAweiJdfSxUOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtcXVlZW4iLGljb246WzUxMiw1MTIsWzk4MTldLCJmNDQ1IiwiTTI1NiA4MGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTUuNSAxODVMMTI4IDM4NCA3MS44IDQ1NC4zYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwzMTIuOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4yTDM4NCAzODQgNTA2LjUgMTg1YzMuNi01LjkgNS41LTEyLjcgNS41LTE5LjZsMC0uNmMwLTIwLjMtMTYuNS0zNi44LTM2LjgtMzYuOC03LjMgMC0xNC40IDIuMi0yMC40IDYuMmwtMTYuOSAxMS4zYy0xMi43IDguNS0yOS42IDYuOC00MC40LTRsLTM0LjEtMzQuMUMzNTYuMSAxMDAuMSAzNDYuMiA5NiAzMzYgOTZzLTIwLjEgNC4xLTI3LjMgMTEuM2wtMzAuMSAzMC4xYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMzAuMS0zMC4xQzE5Ni4xIDEwMC4xIDE4Ni4yIDk2IDE3NiA5NnMtMjAuMSA0LjEtMjcuMyAxMS4zbC0zNC4xIDM0LjFjLTEwLjggMTAuOC0yNy43IDEyLjUtNDAuNCA0TDU3LjMgMTM0LjJjLTYuMS00LTEzLjItNi4yLTIwLjQtNi4yLTIwLjMgMC0zNi44IDE2LjUtMzYuOCAzNi44bDAgLjZjMCA2LjkgMS45IDEzLjcgNS41IDE5LjZ6Il19LF85dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNGFiIiwiTTMyMC41IDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNsMTYuMi0xNC4yYzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAxNi42IDAgMzIuNy0xLjkgNDguMi01LjYtMjAuMy0zMC41LTMyLjItNjctMzIuMi0xMDYuNCAwLTI3LjMgNS43LTUzLjMgMTYtNzYuOWwwLTEzNi42YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjA4IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LHFyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGxpcHNpcy12ZXJ0aWNhbCIsaWNvbjpbMTI4LDUxMixbImVsbGlwc2lzLXYiXSwiZjE0MiIsIk02NCAxNDRhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6bTAgMjI0YzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2LTU2LTI1LjEtNTYtNTYgMjUuMS01NiA1Ni01NnptNTYtMTEyYzAgMzAuOS0yNS4xIDU2LTU2IDU2cy01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTYgNTYgMjUuMSA1NiA1NnoiXX0sQTl0PXFyZSwkOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGZlIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxEOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGQzIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTc0LjkgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMiAwIDQgLjIgNS45IC41IDYtMjMuNiAxNi4zLTQ1LjQgMzAuMS02NC41bC00IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDRjMjcuNS0xOS44IDYwLjMtMzIuNCA5Ni0zNS40TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LEU5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYXJyb3ctdXAtZnJvbS1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTM5IiwiTTE5Mi0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMzE4LjMgMjk5LjFsLTQ2LjMtNjIuNCAwIDI0My4zIDI3MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MCAwIDAtMjQzLjMtNDYuMyA2Mi40Yy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxMTAgMTMyIDE0OS43IDExMiAxOTIgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42ek0yMDggNDgwbDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTI4IDMyIDB6TTU2Ni42IDEwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEw0OTYgNzcuMyA0OTYgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQ2LjctMjUuNCAyNS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w4MC04MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3oiXX0sTjl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdC1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzZSIsIk0zNzguNiA4MS44YzkuOC0xNC43IDUuOC0zNC42LTguOS00NC40cy0zNC42LTUuOC00NC40IDguOUwyNzAuOSAxMjggMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5Ni4yIDAtODUuMyAxMjgtMTEwLjkgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2OC4yIDAtMzAuOCA0Ni4yYy05LjggMTQuNy01LjggMzQuNiA4LjkgNDQuNHMzNC42IDUuOCA0NC40LTguOUwxNzcuMSAzODQgNDE2IDM4NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTk2LjIgMCA4NS4zLTEyOCAxMTAuOSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02OC4yIDAgMzAuOC00Ni4yeiJdfSxQOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4tdHJhbSIsaWNvbjpbMzg0LDUxMixbMTI4NjUwXSwiZTViNCIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xMjAgMCAwIDY0IDQwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDE2MGMwIDMxLjItMTQuOSA1OS0zOCA3Ni41bDY0LjMgNzZjOC42IDEwLjEgNy4zIDI1LjMtMi44IDMzLjhzLTI1LjMgNy4zLTMzLjgtMi44bC03NC42LTg4LjFjLTMuNiAuNC03LjMgLjYtMTEuMSAuNmwtMTI4IDBjLTMuOCAwLTcuNS0uMi0xMS4xLS42TDQyLjMgNTM1LjVjLTguNiAxMC4xLTIzLjcgMTEuNC0zMy44IDIuOHMtMTEuNC0yMy43LTIuOC0zMy44bDY0LjMtNzZDNDYuOSA0MTEgMzIgMzgzLjIgMzIgMzUybDAtMTYwYzAtNTMgNDMtOTYgOTYtOTZsNDAgMCAwLTY0LTEyMCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDUzLjMgMCA0MEwwIDh6TTEyOCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDB6bTMyIDE5MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEk5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1kZXBhcnR1cmUiLGljb246WzU3Niw1MTIsWzEyODc0N10sImY1YjAiLCJNMzcyIDE0My45TDE3Mi43IDQwLjJjLTgtNC4xLTE3LjMtNC44LTI1LjctMS43bC00MS4xIDE1Yy0xMC4zIDMuNy0xMy44IDE2LjQtNy4xIDI1TDIwMC4zIDIwNi40IDEwMC4xIDI0Mi44IDQwIDIwNi4yYy02LjItMy44LTEzLjgtNC41LTIwLjctMi4xTDMgMjEwLjFjLTkuNCAzLjQtMTMuNCAxNC41LTguMyAyMy4xbDUzLjYgOTEuOGMxNS42IDI2LjcgNDguMSAzOC40IDc3LjEgMjcuOGwxMi45LTQuNyAwIDAgMzk4LjQtMTQ1YzI5LjEtMTAuNiA0NC00Mi43IDMzLjUtNzEuOHMtNDIuNy00NC03MS44LTMzLjVMMzcyIDE0My45ek0zMi4yIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTEyIDB6Il19LFZyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC10by1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1pbi1hbHQiXSwiZjJmNiIsIk0zNDUgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDIwMSA5NWMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMxNjAgMTAyLjMgMTYwIDExMmwwIDgwLTExMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDExMiAwIDAgODBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4yTDM0NSAyNzN6bTcgMTQzYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDB6Il19LEY5dD1WcmUsTzl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNkLWNhcmQiLGljb246WzM4NCw1MTIsW10sImY3YzIiLCJNMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyNS4zIDBDMTA4LjMgMCA5MiA2LjcgODAgMTguN0wxOC43IDgwQzYuNyA5MiAwIDEwOC4zIDAgMTI1LjNMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODR6TTE2MCA4OGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sQjl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYSIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMSA0Ny4yLTE3NS44IDExNC44LTUuMS0xLjgtMTAuNS0yLjgtMTYuMi0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTEgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTQ5NiA0NDRhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem0wLTE0MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2IDguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sSzY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hla2VsLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzNjIsImlscyIsInNoZWtlbCIsInNoZXFlbCIsInNoZXFlbC1zaWduIl0sImYyMGIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTMyMCA0ODBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAweiJdfSxSOXQ9SzYsSDl0PUs2LHE5dD1LNixWOXQ9SzYsVTl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhZGlvIixpY29uOls1MTIsNTEyLFsxMjgyNTFdLCJmOGQ3IiwiTTQ5NC44IDE1YzEyLjctMy43IDIwLTE3LjEgMTYuMy0yOS44UzQ5NC0zNC44IDQ4MS4zLTMxTDUxLjggOTQuOUM0Mi40IDk3LjYgMzMuOSAxMDIuMSAyNi42IDEwOCAxMC41IDExOS43IDAgMTM4LjYgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjE4LjUgOTYgNDk0LjggMTV6TTM2OCAyMDhhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTY0IDI0OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAyNzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDM2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LFVyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWRvdHMiLGljb246WzUxMiw1MTIsWyJhbGxlcmdpZXMiXSwiZjQ2MSIsIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNzJjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjIgMGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmwwLTIwOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTIwOHpNMjAwIDM1MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0tODggMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxqOXQ9VXJlLGpyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXNrdWxsIixpY29uOls0NDgsNTEyLFsiYm9vay1kZWFkIl0sImY2YjciLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTI3MiAxNjMuMmwwIDEyLjhjMCA4LjgtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xMi44Yy0xOS40LTExLjctMzItMzAuMy0zMi01MS4yIDAtMzUuMyAzNS44LTY0IDgwLTY0czgwIDI4LjcgODAgNjRjMCAyMC45LTEyLjYgMzkuNS0zMiA1MS4yek0yMDggMTEyYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptNzQuMiA5NS43YzQuNiAxMC4xIC4xIDIxLjktOS45IDI2LjVsLTQ3LjkgMjEuOCA0Ny45IDIxLjhjMTAuMSA0LjYgMTQuNSAxNi40IDkuOSAyNi41cy0xNi40IDE0LjUtMjYuNSA5LjlMMjI0IDI5NCAxNDQuMyAzMzAuMmMtMTAuMSA0LjYtMjEuOSAuMS0yNi41LTkuOXMtLjEtMjEuOSA5LjktMjYuNWw0Ny45LTIxLjgtNDcuOS0yMS44Yy0xMC4xLTQuNi0xNC41LTE2LjQtOS45LTI2LjVzMTYuNC0xNC41IDI2LjUtOS45TDIyNCAyNTAgMzAzLjcgMjEzLjhjMTAuMS00LjYgMjEuOS0uMSAyNi41IDkuOXoiXX0sVzl0PWpyZSxXcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW5sb2NrLWtleWhvbGUiLGljb246WzM4NCw1MTIsWyJ1bmxvY2stYWx0Il0sImYxM2UiLCJNMTkyIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0IDE5MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMC02NGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCA2My41IDAgMTE2LjEgNDYuMSAxMjYuMiAxMDYuNyAyLjkgMTcuNC04LjggMzMuOS0yNi4zIDM2LjlzLTMzLjktOC44LTM2LjktMjYuM0MyNTAgNTUuMSAyMjMuNyAzMiAxOTIgMzJ6bTQwIDMyOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAweiJdfSxHOXQ9V3JlLEdyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWFycm93LXVwIixpY29uOlszODQsNTEyLFsiZmlsZS11cGxvYWQiXSwiZjU3NCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMjA5IDI2M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTY0IDY0Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMjMtMjMgMCA4Ni4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04Ni4xIDIzIDIzYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjQtNjR6Il19LFk5dD1HcmUsWXJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10ZWFycyIsaWNvbjpbNjQwLDUxMixbMTI4NTE0LCJncmluLXRlYXJzIl0sImY1ODgiLCJNNTU0LjggMjAzLjRsMTYuMyAyLjNDNTQ3LjcgODguNCA0NDQuMiAwIDMyMCAwUzkyLjMgODguNCA2OC45IDIwNS43bDE2LjMtMi4zYzM3LTUuMyA2OC42IDI2LjQgNjMuNCA2My40bC02LjcgNDYuN2MtNC4xIDI5LTIxLjYgNTMuMi00NS44IDY2LjggNDMuNyA3OC41IDEyNy42IDEzMS43IDIyMy44IDEzMS43czE4MC4xLTUzLjEgMjIzLjgtMTMxLjdjLTI0LjEtMTMuNS00MS42LTM3LjgtNDUuOC02Ni44bC02LjctNDYuN2MtNS4zLTM3IDI2LjQtNjguNiA2My40LTYzLjR6TTQ3MC4zIDMyNi45QzQ0Ny45IDM4OC4yIDM4OS4xIDQzMiAzMjAgNDMyUzE5Mi4xIDM4OC4yIDE2OS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAtMjUuNi0xOC44LTQ3LjMtNDQuMS01MC45TDU0OS4xIDI0M2MtMTAuNi0xLjUtMTkuNiA3LjUtMTguMSAxOC4xbDYuNyA0Ni43YzMuNiAyNS4zIDI1LjMgNDQuMSA1MC45IDQ0LjEgMjguNCAwIDUxLjQtMjMgNTEuNC01MS40em0tNjQwIDBDMCAzMjkgMjMgMzUyIDUxLjQgMzUyIDc3IDM1MiA5OC43IDMzMy4yIDEwMi4zIDMwNy45bDYuNy00Ni43YzEuNS0xMC42LTcuNS0xOS42LTE4LjEtMTguMWwtNDYuNyA2LjdDMTguOCAyNTMuMyAwIDI3NSAwIDMwMC42eiJdfSxaOXQ9WXJlLHc3PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi10by1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJlZGl0Il0sImYwNDQiLCJNNDcxLjYgMjEuN2MtMjEuOS0yMS45LTU3LjMtMjEuOS03OS4yIDBMMzY4IDQ2LjEgNDY1LjkgMTQ0IDQ5MC4zIDExOS42YzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ3MS42IDIxLjd6bS0yOTkuMiAyMjBjLTYuMSA2LjEtMTAuOCAxMy42LTEzLjUgMjEuOWwtMjkuNiA4OC44Yy0yLjkgOC42LS42IDE4LjEgNS44IDI0LjZzMTUuOSA4LjcgMjQuNiA1LjhsODguOC0yOS42YzguMi0yLjcgMTUuNy03LjQgMjEuOS0xMy41TDQzMiAxNzcuOSAzMzQuMSA4MCAxNzIuNCAyNDEuN3pNOTYgNjRDNDMgNjQgMCAxMDcgMCAxNjBMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgNjR6Il19LFg5dD13NyxacmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtZXVyb3BlIixpY29uOls1MTIsNTEyLFsiZ2xvYmUtZXVyb3BlIl0sImY3YTIiLCJNMjU2LjIgNDhjMTE0LjggLjEgMjA3LjggOTMuMiAyMDcuOCAyMDggMCAyMi4xLTMuNCA0My40LTkuOCA2My40LTIgLjQtNC4xIC42LTYuMiAuNmwtMi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0yOS4zLTI5LjNjLTYtNi05LjQtMTQuMS05LjQtMjIuNmwwLTUwLjdjMC04LjggNy4yLTE2IDE2LTE2czE2LTcuMiAxNi0xNi03LjItMTYtMTYtMTZsLTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzLTcuMiAxNi0xNiAxNmwtMjUuNCAwYy0xMi41IDAtMjIuNi0xMC4xLTIyLjYtMjIuNiAwLTYgMi40LTExLjggNi42LTE2bDcwLjEtNzAuMWMyLjEtMi4xIDMuMy01IDMuMy04IDAtNi4yLTUuMS0xMS4zLTExLjMtMTEuM2wtMTQuMSAwYy0xMi41IDAtMjIuNi0xMC4xLTIyLjYtMjIuNiAwLTYgMi40LTExLjggNi42LTE2bDIzLjEtMjMuMWMuOC0uOCAxLjYtMS41IDIuNS0yLjJ6TTQzOC40IDM1Ni4xYy0zMi44IDU5LjYtOTMuOSAxMDEuNC0xNjUuMiAxMDcuMi0uNy0yLjMtMS4xLTQuOC0xLjEtNy4zIDAtMTMuMy0xMC43LTI0LTI0LTI0bC0yNi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0yOS4zLTI5LjNjLTYtNi05LjQtMTQuMS05LjQtMjIuNmwwLTY2LjdjMC0xNy43IDE0LjMtMzIgMzItMzJsOTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDI5LjMgMjkuM2M2IDYgMTQuMSA5LjQgMjIuNiA5LjRsNS41IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMTYgMTZjNC4yIDQuMiAxMCA2LjYgMTYgNi42IDQuOCAwIDkuMyAxLjUgMTMgNC4xek0yNTYgNTEybDI2LjItMS4zYy04LjYgLjktMTcuMyAxLjMtMjYuMiAxLjN6bTI2LjItMS4zQzQxMS4zIDQ5Ny42IDUxMiAzODguNiA1MTIgMjU2IDUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwbDAgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTYgMCAzODMuNSA5My4yIDQ4OS4zIDIxNS4zIDUwOC44IDIyOC41IDUxMC45IDI0Mi4xIDUxMiAyNTYgNTEyek0xODcuMyAxMjMuM2wtMzIgMzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzItMzJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxROXQ9WnJlLFhyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbS1zd2VhdCIsaWNvbjpbNTc2LDUxMixbMTI4NTE3LCJncmluLWJlYW0tc3dlYXQiXSwiZjU4MyIsIk01NDYuMi0uMWMxNC43IDE3LjggMjkuOCA0MC4xIDI5LjggNjQuMSAwIDM2LjQtMjcuNiA2NC02NCA2NHMtNjQtMjcuNi02NC02NGMwLTI0IDE1LjItNDYuMyAyOS44LTY0LjEgOC44LTEwLjcgMTguNS0yMC44IDI5LTMwIDMtMi42IDcuNC0yLjYgMTAuNCAwIDEwLjUgOS4xIDIwLjEgMTkuMyAyOSAzMHpNMjg4IDBjNDIuNSAwIDgyLjYgMTAuNCAxMTcuOCAyOC43LTMuNiAxMC45LTUuOCAyMi43LTUuOCAzNS4zIDAgNjIuOSA0OS4xIDExMiAxMTIgMTEyIDYuNCAwIDEyLjctLjUgMTguOC0xLjUgOC42IDI1LjYgMTMuMiA1MyAxMy4yIDgxLjUgMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMzMiAzOTcuNCAzMiAyNTYgMTQ2LjYgMCAyODggMHpNNDE4LjcgMzA4LjlDMzc5LjUgMzIxLjEgMzM1LjEgMzI4IDI4OCAzMjhzLTkxLjUtNi45LTEzMC43LTE5LjFjLTExLjktMy43LTIzLjkgNi4zLTE5LjYgMTguMSAyMi40IDYxLjMgODEuMyAxMDUuMSAxNTAuMyAxMDUuMXMxMjcuOS00My44IDE1MC4zLTEwNS4xYzQuMy0xMS44LTcuNy0yMS44LTE5LjYtMTguMXpNMjA4IDE4MGMxNS41IDAgMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0xNS41IDEyLjUtMjggMjgtMjh6bTEzMiAyOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHMyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOHoiXX0sSzl0PVhyZSxRcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWhhbGYtc3Ryb2tlIixpY29uOls1MTIsNTEyLFs5NjgwLCJhZGp1c3QiXSwiZjA0MiIsIk00NDggMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkybDAgMzg0YzEwNiAwIDE5Mi04NiAxOTItMTkyek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxKOXQ9UXJlLGVodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tbWlsaXRhcnktdG8tcGVyc29uIixpY29uOls1MTIsNTEyLFtdLCJlNTRjIiwiTTcxIDEyLjVjLTguNiAxLTE1IDguMi0xNSAxNi44IDAgOS4zIDcuNSAxNi44IDE2LjcgMTYuOWwxMTEuNCAwYzguOC0uMSAxNS45LTcuMiAxNS45LTE2TDIwMCAxNmMwLTkuNS04LjMtMTctMTcuOC0xNS45TDcxIDEyLjV6TTE4OS41IDc4LjFsLTEyMi45IDBjLTEuNiA1LjctMi41IDExLjctMi41IDE3LjkgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTYuMi0uOS0xMi4yLTIuNS0xNy45ek0zMiAyNTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxLjggMCAzLjUtLjEgNS4yLS40TDUzIDIwOC42QzQwLjEgMjIwLjMgMzIgMjM3LjIgMzIgMjU2em0xOTAuMiA0Mi41YzEuMS0zLjMgMS44LTYuOCAxLjgtMTAuNWwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwYy0zLjcgMC03LjQgLjMtMTAuOSAuOUwyMjIuMiAyOTguNXpNMzg0IDE2MGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTMyIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDB6TTIxNS44IDQ1MC4xYzUuMi00LjYgOC4yLTExLjEgOC4yLTE4LjFzLTMtMTMuNS04LjItMTguMWwtNjQtNTZjLTcuMS02LjItMTcuMS03LjctMjUuNy0zLjhTMTEyIDM2Ni42IDExMiAzNzZsMCAzMi04OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDg4IDAgMCAzMmMwIDkuNCA1LjUgMTggMTQuMSAyMS45czE4LjYgMi40IDI1LjctMy44bDY0LTU2ek0yODggNDMxLjljMCA2LjkgMyAxMy41IDguMSAxOC4xbDY0IDU2LjRjNy4xIDYuMiAxNy4xIDcuOCAyNS43IDMuOVM0MDAgNDk3LjggNDAwIDQ4OC40bDAtMzIuNCA4OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04OCAwIDAtMzJjMC05LjQtNS41LTE4LTE0LjEtMjEuOXMtMTguNi0yLjQtMjUuNyAzLjhsLTY0IDU2Yy01LjIgNC41LTguMiAxMS4xLTguMiAxOHoiXX0sdGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLWNvbHVtbi1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNjc4IiwiTTI1NiAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem0yNTYtNzljLTQ2LjcgNS44LTg1LjYgMzYuOC0xMDIuNyA3OWwtMjUuMyAwIDAgOTAuOGMtMTAuMSAxNS4yLTE2IDMzLjQtMTYgNTMuMWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMMTI4IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA0OXpNMTI4IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTQzMiA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDM2OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sYWh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZpZWxkLXVuIixpY29uOls2NDAsNTEyLFtdLCJlNThlIiwiTTk2IDMyQzYwLjcgMzIgMzIgNjAuNyAzMiA5NmwwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDAgNDhjMCAyMS4xIDEzLjcgMzkuMSAzMi42IDQ1LjUtLjQgMy40LS42IDctLjYgMTAuNSAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDE0NC43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bC40IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMjQuNyAwLTEuNy00LjItNDMuOC0xMDYuM2MtMTIuMy0zMC00MS42LTQ5LjUtNzQtNDkuNWwtNDAuNCAwQzM2NC40IDQ0LjkgMzQzLjcgMzIgMzIwIDMyTDk2IDMyek0zODQgMjI0bDAtOTYgMzEuOSAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45bDM1LjQgODYuMS04Mi4xIDB6TTE1MiAzNTJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yODAgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjU2LjYgMTMyLjlsMjcuNCA0MSAwLTI5LjljMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA5NmMwIDguOC01LjggMTYuNi0xNC4yIDE5LjFzLTE3LjUtLjctMjIuNC04bC0yNy40LTQxIDAgMjkuOWMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC05NmMwLTguOCA1LjgtMTYuNiAxNC4yLTE5LjFzMTcuNSAuNyAyMi40IDh6TTEzMiAxNDRsMCA2NGMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtNjRjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA2NGMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTY0YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIweiJdfSxLcmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvY2siLGljb246WzUxMiw1MTIsWzEyODMzOSwiY2xvY2stZm91ciJdLCJmMDE3IiwiTTI1NiAwYTI1NiAyNTYgMCAxIDEgMCA1MTIgMjU2IDI1NiAwIDEgMSAwLTUxMnpNMjMyIDEyMGwwIDEzNmMwIDggNCAxNS41IDEwLjcgMjBsOTYgNjRjMTEgNy40IDI1LjkgNC40IDMzLjMtNi43czQuNC0yNS45LTYuNy0zMy4zTDI4MCAyNDMuMiAyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxyaHQ9S3JlLGlodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rIixpY29uOls0NDgsNTEyLFsxMjgyMTJdLCJmMDJkIiwiTTM4NCA1MTJMOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyMC45LTEzLjQgMzguNy0zMiA0NS4zbDAgNjYuN2MxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMHpNOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjQtMjU2IDB6bTMyLTIzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNCA3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LEpyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoLXdpbmsiLGljb246WzUxMiw1MTIsWyJsYXVnaC13aW5rIl0sImY1OWMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwMS42IDMxNGMtMy43LTEzLjcgNy41LTI2IDIxLjctMjZsMjY1LjQgMGMxNC4yIDAgMjUuNCAxMi4zIDIxLjcgMjYtMTguNSA2OC04MC42IDExOC0xNTQuNCAxMThTMTIwIDM4MiAxMDEuNiAzMTR6TTE0NCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sb2h0PUpyZSxzaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbWVhdGJhbGwiLGljb246WzUxMiw1MTIsW10sImY3M2IiLCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwyNi45IDBjMy41LTEyLjEgMTAuMS0yMy4zIDE5LjItMzIuNGwxLjQtMS40YzE1LTE1IDM1LjMtMjIuOSA1Ni4xLTIyLjIgMTQuMi0xNS4xIDM0LjItMjMuOSA1NS40LTIzLjlsMiAwYzIxLjEgMCA0MS4xIDguOCA1NS40IDIzLjkgMjAuOC0uNiA0MS4xIDcuMyA1Ni4xIDIyLjJsMS40IDEuNGM5LjIgOS4yIDE1LjcgMjAuNCAxOS4yIDMyLjRsMjYuOSAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwIDEuMS01LjIgMS42LTEwLjUgMS42LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOC0xOC43LTM1LjctNTYuMS02MC05OS4yLTYwLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgNy4xIC43IDE0LjEgMS45IDIwLjgtMzguMyAxMi42LTY1LjkgNDguNy02NS45IDkxLjJ6TTE1Ni41IDQyNC4zYzkuNSA2LjMgMTQuMiAxNy43IDExLjkgMjguOC0xLjggOS4yIDEgMTguNyA3LjcgMjUuM2wxLjQgMS40YzYuNiA2LjYgMTYuMSA5LjUgMjUuMyA3LjcgMTEuMS0yLjIgMjIuNSAyLjUgMjguOCAxMS45IDUuMiA3LjggMTQgMTIuNSAyMy4zIDEyLjVsMiAwYzkuNCAwIDE4LjEtNC43IDIzLjMtMTIuNSA2LjMtOS41IDE3LjctMTQuMiAyOC44LTExLjkgOS4yIDEuOCAxOC43LTEgMjUuMy03LjdsMS40LTEuNGM2LjYtNi42IDkuNS0xNi4xIDcuNy0yNS4zLTIuMi0xMS4xIDIuNS0yMi41IDExLjktMjguOCA3LjgtNS4yIDEyLjUtMTQgMTIuNS0yMy4zbDAtMmMwLTkuNC00LjctMTguMS0xMi41LTIzLjMtOS41LTYuMy0xNC4yLTE3LjctMTEuOS0yOC44IDEuOC05LjItMS0xOC43LTcuNy0yNS4zbC0xLjQtMS40Yy02LjYtNi42LTE2LjEtOS41LTI1LjMtNy43LTExLjEgMi4yLTIyLjUtMi41LTI4LjgtMTEuOS01LjItNy44LTE0LTEyLjUtMjMuMy0xMi41bC0yIDBjLTkuNCAwLTE4LjEgNC43LTIzLjMgMTIuNS02LjMgOS41LTE3LjcgMTQuMi0yOC44IDExLjktOS4yLTEuOC0xOC43IDEtMjUuMyA3LjdsLTEuNCAxLjRjLTYuNiA2LjYtOS41IDE2LjEtNy43IDI1LjMgMi4yIDExLjEtMi41IDIyLjUtMTEuOSAyOC44LTcuOCA1LjItMTIuNSAxNC0xMi41IDIzLjNsMCAyYzAgOS40IDQuNyAxOC4xIDEyLjUgMjMuM3pNNDggNDQ4YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptNDE2IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxlaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtYXJlYSIsaWNvbjpbNTEyLDUxMixbImFyZWEtY2hhcnQiXSwiZjFmZSIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0yNDAgOTZjNi43IDAgMTMuMSAyLjggMTcuNyA3LjhMMzI4LjggMTgxLjMgMzc1IDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw2NCA2NGM0LjUgNC41IDcgMTAuNiA3IDE3bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0zMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xMTJjMC02IDIuMy0xMS44IDYuMy0xNi4ybDg4LTk2YzQuNS01IDExLTcuOCAxNy43LTcuOHoiXX0sbmh0PWVpZSxsaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVwaWFoLXNpZ24iLGljb246WzUxMiw1MTIsW10sImUyM2QiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNTQuMy0zMCAxMDEuNS03NC40IDEyNi4xbDQxIDEzNi43YzUuMSAxNi45LTQuNSAzNC44LTIxLjUgMzkuOHMtMzQuOC00LjUtMzkuOC0yMS41TDEyMC4xIDMxOS44Yy0yLjcgLjEtNS40IC4yLTguMSAuMmwtNDggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwIDAgMTYwem0yNTYtMzJsODAgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM0NjEuOSA0NDggNDAwIDQ0OGwtNDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem04MCAxNjBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTQ4IDAgMCA5NiA0OCAweiJdfSxjaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGV4dC13aWR0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNSIsIk00MCAwQzE3LjkgMCAwIDE3LjkgMCA0MEwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAxMjggMCAwIDE2MC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMTYwIDEyOCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTU2YzAtMjIuMS0xNy45LTQwLTQwLTQwTDQwIDB6bTc4LjYgNDA2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDIyOS41IDAtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMjI5LjUgMCA5LjQtOS40eiJdfSxkaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2F0ZWxsaXRlIixpY29uOls1MTIsNTEyLFsxMjg3NTJdLCJmN2JmIiwiTTE5OSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDg5LjQgODkuNCA1NS01NWMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0OCA0OGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNTUgNTUgODkuNCA4OS40YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC05NiA5NmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTg5LjQtODkuNC0xNS41IDE1LjVjMTEuNCAyNC42IDE3LjggNTIgMTcuOCA4MC45IDAgMzEuNy03LjcgNjEuNS0yMS4yIDg3LjgtNC43IDktMTYuNyAxMC4zLTIzLjggMy4xbC05Ni4zLTk2LjMtNjAgNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDYwLTYwLTk2LjMtOTYuM2MtNy4yLTcuMi01LjktMTkuMiAzLjEtMjMuOCAyNi4zLTEzLjYgNTYuMi0yMS4yIDg3LjgtMjEuMiAyOC45IDAgNTYuMyA2LjQgODAuOSAxNy44TDE5Mi40IDIyNi4zIDEwMyAxMzdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDE5OSA3em0xNyA1MC45bC02Mi4xIDYyLjEgNzIuNCA3Mi40IDYyLjEtNjIuMS03Mi40LTcyLjR6TTM5MiAzNTguMWw2Mi4xLTYyLjEtNzIuNC03Mi40LTYyLjEgNjIuMSA3Mi40IDcyLjR6Il19LHRpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLW1pbnVzIixpY29uOls1MTIsNTEyLFsic2VhcmNoLW1pbnVzIl0sImYwMTAiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0xMzYgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sZmh0PXRpZSx1aHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWdyb3VwIixpY29uOls1MTIsNTEyLFtdLCJlNTMzIiwiTTI1NiAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em05NiAzMTJjMCAyNS0xMi43IDQ3LTMyIDU5LjlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFDMTcyLjcgMzU5IDE2MCAzMzcgMTYwIDMxMmwwLTQwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA0MHpNOTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTE2IDI0MGwwIDMyYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDc1LjNjMCAxLjIgMCAyLjUgLjEgMy43LTguNSA3LjYtMTkuNyAxMi4zLTMyLjEgMTIuM2wtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC01Ni42QzEyLjkgMzY0LjQgMCAzNDMuNyAwIDMyMGwwLTMyYzAtNTMgNDMtOTYgOTYtOTYgMTIuNyAwIDI0LjggMi41IDM1LjkgNi45LTEyLjYgMjEuNC0xOS45IDQ2LjQtMTkuOSA3My4xek0zNjggNDY0bDAtNzUuM2MxOS45LTIyLjUgMzItNTIuMiAzMi04NC43bDAtMzJjMC0yNi43LTcuMy01MS42LTE5LjktNzMuMSAxMS4xLTQuNSAyMy4yLTYuOSAzNS45LTYuOSA1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgNTYuNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMTIuMyAwLTIzLjYtNC42LTMyLjEtMTIuMyAwLTEuMiAuMS0yLjUgLjEtMy43ek00MTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6Il19LHBodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtYmluYXJ5IixpY29uOls0NDgsNTEyLFtdLCJlNjliIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNDQgNGMtMjQuMyAwLTQ0IDE5LjctNDQgNDRsMCA0OGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwzMiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtNDhjMC0yNC4zLTE5LjctNDQtNDQtNDRsLTMyIDB6bS00IDQ0YzAtMi4yIDEuOC00IDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDh6bTE0MC00NGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwek0xMzIgMjk2YzAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6bTk2IDI0bDAgNDhjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMzIgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTQ4YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0zMiAwYy0yNC4zIDAtNDQgMTkuNy00NCA0NHptNDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDhjMC0yLjIgMS44LTQgNC00eiJdfSxhaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFza3MtdGhlYXRlciIsaWNvbjpbNTc2LDUxMixbMTI3OTE3LCJ0aGVhdGVyLW1hc2tzIl0sImY2MzAiLCJNLTUgMTE4TDIzLjUgMjc5LjdjMTQgNzkuNSA3Ni4zIDE0MS44IDE1NS44IDE1NS44bDEyLjcgMi4yYy0xNi41LTI4LjYtMjcuMS02MC43LTMwLjYtOTQuNWwtMjQuMSA0LjNjLTkuNyAxLjctMTguOC01LjgtMTYuOS0xNS41IDQuOC0yNC43IDE5LjEtNDYuNiAzOS43LTYwLjlsMC03NC42Yy0xLjQgLjgtMyAxLjMtNC43IDEuNmwtNjMgMTEuMWMtOC43IDEuNS0xNy4zLTQuNC0xNS45LTEzLjEgMy4xLTE5LjYgMTguNC0zNiAzOS4xLTM5LjcgMTcuMi0zIDMzLjkgMy41IDQ0LjYgMTUuOGwwLTIyLjdjMC0yMi41IDYuOS01Mi40IDMyLjMtNzMuNCAyNi0yMS41IDY3LjctNDMuOSAxMjQuOS01NC4yLTMwLjUtMTYuMy04Ni4zLTMyLTE2My44LTE4LjQtODAuMyAxNC4yLTEyOCA1MC4xLTE1MC4xIDc2LjEtOSAxMC41LTEwLjggMjQuOS04LjQgMzguNXpNMjA4IDEzOC43bDAgMTc0LjhjMCA4MC43IDUwLjUgMTUyLjkgMTI2LjQgMTgwLjRMMzYyLjEgNTA0YzE0LjEgNS4xIDI5LjYgNS4xIDQzLjcgMEw0MzMuNiA0OTRDNTA5LjUgNDY2LjQgNTYwIDM5NC4zIDU2MCAzMTMuNWwwLTE3NC44YzAtNi45LTIuMS0xMy44LTctMTguNi0yMi42LTIyLjUtNzguMi01Ni0xNjktNTZzLTE0Ni40IDMzLjYtMTY5IDU2Yy00LjkgNC45LTcgMTEuNy03IDE4LjZ6bTY2LjEgMTg3LjFjLTEuNC03IDctMTEgMTIuNy02LjYgMjYuOSAyMC42IDYwLjYgMzIuOSA5Ny4yIDMyLjlzNzAuMi0xMi4zIDk3LjItMzIuOWM1LjctNC40IDE0LjEtLjQgMTIuNyA2LjYtMTAuMSA1MS40LTU1LjUgOTAuMy0xMDkuOSA5MC4zcy05OS44LTM4LjgtMTA5LjktOTAuM3ptLjUtMTAxLjVDMjgxLjIgMjA1LjUgMjk5IDE5MiAzMjAgMTkyczM4LjkgMTMuNSA0NS40IDMyLjNjMi45IDguNC00LjUgMTUuNy0xMy40IDE1LjdsLTY0IDBjLTguOCAwLTE2LjMtNy40LTEzLjQtMTUuN3pNNDgwIDI0MGwtNjQgMGMtOC44IDAtMTYuMy03LjQtMTMuNC0xNS43IDYuNS0xOC44IDI0LjQtMzIuMyA0NS40LTMyLjNzMzguOSAxMy41IDQ1LjQgMzIuM2MyLjkgOC40LTQuNSAxNS43LTEzLjQgMTUuN3oiXX0saGh0PWFpZSxtaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJmMjE3IiwiTTAgOEMwLTUuMyAxMC43LTE2IDI0LTE2bDQ1LjMgMGMyNy4xIDAgNTAuMyAxOS40IDU1LjEgNDZsLjQgMiA0MTIuNyAwYzIwIDAgMzUuMSAxOC4yIDMxLjQgMzcuOUw1MzcuOCAyMzUuOGMtNS43IDMwLjMtMzIuMSA1Mi4yLTYyLjkgNTIuMmwtMzAzLjYgMCA1LjEgMjguM2MyLjEgMTEuNCAxMiAxOS43IDIzLjYgMTkuN0w0NTYgMzM2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNTUuOSAwYy0zNC44IDAtNjQuNi0yNC45LTcwLjgtNTkuMUw3Ny4yIDM4LjZjLS43LTMuOC00LTYuNi03LjktNi42TDI0IDMyQzEwLjcgMzIgMCAyMS4zIDAgOHpNMTYwIDQ2NGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0yMjQgMGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0zMzYgNzguNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMy42LTMzLjYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMy42IDAgMCAzMy42YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMy42IDMzLjYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzMuNiAwIDAtMzMuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sYTc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYXNsLWludGVycHJldGluZyIsaWNvbjpbNjQwLDUxMixbImFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nIiwiYXNsLWludGVycHJldGluZyIsImhhbmRzLWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nIl0sImYyYTMiLCJNMTU2LjYgNDYuM2M3LjktMTUuOCAxLjUtMzUtMTQuMy00Mi45cy0zNS0xLjUtNDIuOSAxNC4zTDEzLjUgMTg5LjRDNC42IDIwNy4yIDAgMjI2LjggMCAyNDYuN0wwIDI1NmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw4MCAwIDAtLjNjMzUuMi0yLjcgNjUuNC0yMi44IDgyLjEtNTEuNyA4LjgtMTUuMyAzLjYtMzQuOS0xMS43LTQzLjdzLTM0LjktMy42LTQzLjcgMTEuN2MtNyAxMi0xOS45IDIwLTM0LjcgMjAtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGMxNC44IDAgMjcuNyA4IDM0LjcgMjAgOC44IDE1LjMgMjguNCAyMC41IDQzLjcgMTEuN3MyMC41LTI4LjQgMTEuNy00My43Yy0xMi44LTIyLjEtMzMuNi0zOS4xLTU4LjQtNDcuMWw4MC44LTIyYzE3LTQuNiAyNy4xLTIyLjIgMjIuNS0zOS4zcy0yMi4yLTI3LjEtMzkuMy0yMi41bC0xMDAuNyAyNy41IDgxLjYtNjhjMTMuNi0xMS4zIDE1LjQtMzEuNSA0LjEtNDUuMVMyNDkuMS0zLjkgMjM1LjUgNy40bC0xMDEuOSA4NC45IDIzLTQ2ek00ODMuNCA0NjUuN2MtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDg1LjktMTcxLjdjOC45LTE3LjggMTMuNS0zNy40IDEzLjUtNTcuMmwwLTkuM2MwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtODAgMCAwIC4zYy0zNS4yIDIuNy02NS40IDIyLjgtODIuMSA1MS43LTguOSAxNS4zLTMuNiAzNC45IDExLjcgNDMuN3MzNC45IDMuNiA0My43LTExLjdjNy0xMiAxOS45LTIwIDM0LjctMjAgMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBjLTE0LjggMC0yNy43LTgtMzQuNy0yMC04LjktMTUuMy0yOC40LTIwLjUtNDMuNy0xMS43cy0yMC41IDI4LjQtMTEuNyA0My43YzEyLjggMjIuMSAzMy42IDM5LjEgNTguNCA0Ny4xbC04MC44IDIyYy0xNy4xIDQuNi0yNy4xIDIyLjItMjIuNSAzOS4zczIyLjIgMjcuMSAzOS4zIDIyLjVsMTAwLjctMjcuNS04MS42IDY4Yy0xMy42IDExLjMtMTUuNCAzMS41LTQuMSA0NS4xczMxLjUgMTUuNCA0NS4xIDQuMWwxMDEuOS04NC45LTIzIDQ2eiJdfSxnaHQ9YTcseGh0PWE3LGJodD1hNyx2aHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtcm93LXVubG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY5MSIsIk0yNTYgMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptMjU2LTc5Yy00Ni43IDUuOC04NS42IDM2LjgtMTAyLjcgNzlsLTI1LjMgMCAwIDkwLjhjLTEwLjEgMTUuMi0xNiAzMy40LTE2IDUzLjFsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDEyOCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDl6TTEyOCAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem00MzIgNDhjLS4xLTE3LjYtMTQuNC0zMS45LTMyLTMxLjktMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MCA0NC4yIDAgNzkuOSAzNS44IDgwIDc5LjlsLTQ4IDB6Il19LHlodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2NrZXQiLGljb246WzUxMiw1MTIsW10sImYxMzUiLCJNMTI4IDMyMEwyNC41IDMyMGMtMjQuOSAwLTQwLjItMjcuMS0yNy40LTQ4LjVMNTAgMTgzLjNDNTguNyAxNjguOCA3NC4zIDE2MCA5MS4yIDE2MGw5NSAwYzc2LjEtMTI4LjkgMTg5LjYtMTM1LjQgMjY1LjUtMTI0LjMgMTIuOCAxLjkgMjIuOCAxMS45IDI0LjYgMjQuNiAxMS4xIDc1LjkgNC42IDE4OS40LTEyNC4zIDI2NS41bDAgOTVjMCAxNi45LTguOCAzMi41LTIzLjMgNDEuMmwtODguMiA1Mi45Yy0yMS4zIDEyLjgtNDguNS0yLjYtNDguNS0yNy40TDE5MiAzODRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLS4xIDB6TTQwMCAxNjBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sd2h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNocmltcCIsaWNvbjpbNTEyLDUxMixbMTI5NDI0XSwiZTQ0OCIsIk03MiAzMkMzMi4yIDMyIDAgNjQuMiAwIDEwNCAwIDE0MS45IDI5LjMgMTcyLjkgNjYuNCAxNzUuOCA3Ny42IDI1Ny4yIDE0Ny40IDMyMCAyMzIgMzIwbDU2IDAgMC0xOTItMjE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzU4LjcgODAgNzIgODBsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNzIgMzJ6TTIyNCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNzIgMCAwLTcyLjItNjQuMS0yMi40Yy0xMi41LTQuNC0yNi4yIDIuMi0zMC42IDE0LjdzMi4yIDI2LjIgMTQuNyAzMC42bDQuNSAxLjZDMjMzIDQzMy45IDIyNCA0NDMuOSAyMjQgNDU2em0xMjggMjMuM2MzNi40LTMuMyA2OS41LTE3LjYgOTYuMS0zOS42bC04Ni41LTM0LjZjLTMgMS44LTYuMiAzLjItOS42IDQuM2wwIDY5Ljl6TTQ3Mi42IDQxNWMyNC42LTMwLjMgMzkuNC02OC45IDM5LjQtMTExIDAtMTIuMy0xLjMtMjQuMy0zLjctMzUuOUwzODIuOCAzNTUuMWMuOCAzLjQgMS4yIDcgMS4yIDEwLjYgMCA0LjYtLjcgOS0xLjkgMTMuMUw0NzIuNiA0MTV6TTMzNiAxMjhsLTE2IDAgMCAxOTIgMTguMyAwYzkuOSAwIDE5LjEgMy4yIDI2LjYgOC41bDEzMy41LTkyLjRDNDcxLjggMTcyLjYgNDA5LjEgMTI4IDMzNiAxMjh6TTE2OCAxOTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0scmllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbmdlLXNpZ24iLGljb246WzM4NCw1MTIsWzgzNzYsInRlbmdlIl0sImY3ZDciLCJNMCA1NkMwIDQyLjcgMTAuNyAzMiAyNCAzMmwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA4MEMxMC43IDgwIDAgNjkuMyAwIDU2ek0wIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDAgMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNTYtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxNaHQ9cmllLGlpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LW1lZGljYWwiLGljb246WzUxMiw1MTIsWyJjbGluaWMtbWVkaWNhbCJdLCJmN2YyIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yMjQgMjQ4bDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSx6aHQ9aWllLGtodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1zbGFzaCIsaWNvbjpbNjQwLDUxMixbXSwiZTA3MyIsIk03My0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMyOS43LS4zIDM5IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMjEuOCAyMjRjNTYuNi0xIDEwMi4yLTQ3LjIgMTAyLjItMTA0IDAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTU2LjggMC0xMDMgNDUuNi0xMDQgMTAyLjJMNzMtMjQuOXpNNTEyIDI4OGMtMTcuMiAwLTMzLjcgMy40LTQ4LjcgOS42bDE3MCAxNzBjNC4yLTUuNCA2LjctMTIuMiA2LjctMTkuNmwwLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4ek01OS45IDk3LjdjLTIxLjUgMTIuNS0zNS45IDM1LjctMzUuOSA2Mi4zIDAgMzkuOCAzMi4yIDcyIDcyIDcyIDI2LjYgMCA0OS44LTE0LjQgNjIuMy0zNS45TDU5LjkgOTcuN3pNMjUwLjIgMjg4QzE5Ni44IDMxMy45IDE2MCAzNjguNyAxNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjUwLjIgMC0xOTItMTkyek0xMjggMjg4QzU3LjMgMjg4IDAgMzQ1LjMgMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjR6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAweiJdfSxTaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXItcGxhbmUiLGljb246WzU3Niw1MTIsWzYxOTEzXSwiZjFkOCIsIk01MzYuNC0yNi4zYzkuOC0zLjUgMjAuNi0xIDI4IDYuM3M5LjggMTguMiA2LjMgMjhsLTE3OCA0OTYuOWMtNSAxMy45LTE4LjEgMjMuMS0zMi44IDIzLjEtMTQuMiAwLTI3LTguNi0zMi4zLTIxLjdsLTY0LjItMTU4Yy00LjUtMTEtMi41LTIzLjYgNS4yLTMyLjZsOTQuNS0xMTIuNGM1LjEtNi4xIDQuNy0xNS0uOS0yMC42cy0xNC42LTYtMjAuNi0uOUwyMjkuMiAyNzYuMWMtOS4xIDcuNi0yMS42IDkuNi0zMi42IDUuMkwzOC4xIDIxNi44Yy0xMy4xLTUuMy0yMS43LTE4LjEtMjEuNy0zMi4zIDAtMTQuNyA5LjItMjcuOCAyMy4xLTMyLjhsNDk2LjktMTc4eiJdfSxvaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1hdGxhcyIsaWNvbjpbNDQ4LDUxMixbImF0bGFzIl0sImY1NTgiLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTMxMC42IDIwOEwyNzkgMjA4Yy0xLjQgMjMuMS02IDQ0LjItMTIuNiA2MS4yIDIyLjctMTIuNSAzOS40LTM0LjggNDQuMi02MS4yem0tMTczLjEgMGM0LjggMjYuNCAyMS41IDQ4LjcgNDQuMiA2MS4yLTYuNy0xNy0xMS4yLTM4LTEyLjYtNjEuMmwtMzEuNiAwem03Ni40IDU1YzQuNSA5LjYgOC4yIDEzLjggMTAuMiAxNS41IDItMS43IDUuNy01LjggMTAuMi0xNS41IDYuMi0xMy40IDExLjEtMzIuNSAxMi43LTU1bC00NS44IDBjMS42IDIyLjUgNi41IDQxLjYgMTIuNyA1NXptLTEyLjctODdsNDUuOCAwYy0xLjYtMjIuNS02LjUtNDEuNi0xMi43LTU1LTQuNS05LjYtOC4yLTEzLjgtMTAuMi0xNS41LTIgMS43LTUuNyA1LjgtMTAuMiAxNS41LTYuMiAxMy40LTExLjEgMzIuNS0xMi43IDU1em0xMDkuNSAwYy00LjgtMjYuNC0yMS41LTQ4LjctNDQuMi02MS4yIDYuNyAxNyAxMS4yIDM4IDEyLjYgNjEuMmwzMS42IDB6TTE2OSAxNzZjMS40LTIzLjEgNi00NC4yIDEyLjYtNjEuMi0yMi43IDEyLjUtMzkuNCAzNC44LTQ0LjIgNjEuMmwzMS42IDB6TTk2IDE5MmExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAweiJdfSxDaHQ9b2llLExodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjZSIsIk0yNTYgMTYwbDAgOTYgMTI4IDAgMC05Ni0xMjggMHptLTY0IDBsLTEyOCAwIDAgOTYgMTI4IDAgMC05NnpNMCAzMjBMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtOTZ6bTM4NCAwbC0xMjggMCAwIDk2IDEyOCAwIDAtOTZ6TTE5MiA0MTZsMC05Ni0xMjggMCAwIDk2IDEyOCAweiJdfSxUaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQiLGljb246WzUxMiw1MTIsWzEyODE1MywxMjgxNTQsMTI4MTU1LDEyODE1NiwxMjg0MjAsMTI5MjkzLDEyOTI5NCwxMjk1MDUsOTgyOSwxMDA4NCw2MTU3OF0sImYwMDQiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDExMi4yLTEzOS45IDI0Mi41LTIxMi45IDI5OC4yLTEyLjQgOS40LTI3LjYgMTQuMS00My4xIDE0LjFzLTMwLjgtNC42LTQzLjEtMTQuMUMxMzkuOSA0MTAuMiAwIDI3OS45IDAgMTY3LjdsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6Il19LHNpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi11cCIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLXVwIl0sImYxMzkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM3NyAyNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtODctODctODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMjM5IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzNzcgMjcxeiJdfSxfaHQ9c2llLG5pZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWhhbGYiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTMiXSwiZjI0MiIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEFodD1uaWUsRlY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9udC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFs2MjUwMSw2MjY5NCwiZm9udC1hd2Vzb21lLWZsYWciLCJmb250LWF3ZXNvbWUtbG9nby1mdWxsIl0sImYyYjQiLCJNOTEuNyA5NkMxMDYuMyA4Ni44IDExNiA3MC41IDExNiA1MiAxMTYgMjMuMyA5Mi43IDAgNjQgMFMxMiAyMy4zIDEyIDUyYzAgMTYuNyA3LjggMzEuNSAyMCA0MWwwIDQxOSA2NCAwIDAtNjQgMzczLjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNCAwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3MiA0OTMuNyAxMzMuMWMxLjUtMy40IDIuMy03IDIuMy0xMC43IDAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6Il19LCRodD1GVixEaHQ9RlYsRWh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRjdWZmcyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmOCIsIk0zMjAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyek0xOTIgNjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xNTIgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTZjMCAxIC4xIDEuOSAuMiAyLjktNzQuNyAyNi4zLTEyOC4yIDk3LjUtMTI4LjIgMTgxLjEgMCAxMDYgODYgMTkyIDE5MiAxOTJzMTkyLTg2IDE5Mi0xOTJjMC04My43LTUzLjUtMTU0LjgtMTI4LjItMTgxLjEgLjEtLjkgLjItMS45IC4yLTIuOWwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAwek02NCAzMjBhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHptNDQ4IDBjMCA2Ni45LTUxLjMgMTIxLjgtMTE2LjYgMTI3LjUtMTQuMyAyMi44LTMyLjQgNDMuMS01My40IDU5LjkgMTMuNSAzIDI3LjYgNC42IDQyIDQuNiAxMDYgMCAxOTItODYgMTkyLTE5MiAwLTgzLjctNTMuNS0xNTQuOC0xMjguMi0xODEuMSAuMS0uOSAuMi0xLjkgLjItMi45bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEyLjMgMC0yMi40IDkuMi0yMy44IDIxLjEgMzAuMyAxOS4yIDU2LjEgNDUgNzUuMiA3NS40IDY1LjQgNS44IDExNi42IDYwLjYgMTE2LjYgMTI3LjV6TTM4NCA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LE5odD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtY293Ym95LXNpZGUiLGljb246WzY0MCw1MTIsW10sImY4YzEiLCJNNjQwIDM4OC4zYzAgMTYuOS03LjEgMzIuMi0xOC40IDQzLjFsLTM1LTIzLjMtMjkyLjctMTk1LjFjLTM2LjEtMjQuMS03OC42LTM2LjktMTIyLTM2LjlsLTMuOSAwYy0yLjcgMC01LjQgMC04IC4xbDIyLjItMTAwYzUuNy0yNS44IDI4LjYtNDQuMSA1NS00NC4xIDEyLjIgMCAyNC4xIDQgMzMuOCAxMS4zbDQuNyAzLjVjMjYuMyAxOS43IDYyLjQgMTkuNyA4OC42IDBsNC43LTMuNWM5LjgtNy4zIDIxLjYtMTEuMyAzMy44LTExLjMgMjYuNCAwIDQ5LjMgMTguMyA1NSA0NC4xbDMzIDE0OC41QzU3NC41IDIzMi4zIDY0MCAzMDIuNiA2NDAgMzg4LjN6TTE3MS45IDIyNGMzMy45IDAgNjcuMSAxMCA5NS40IDI4LjlMNTYwIDQ0OCA1NiA0NDhjLTMwLjkgMC01Ni0yNS4xLTU2LTU2IDAtOTIuOCA3NS4yLTE2OCAxNjgtMTY4bDMuOSAweiJdfSxQaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kdXN0cnkiLGljb246WzUxMiw1MTIsW10sImYyNzUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI3OS44YzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xbC0xNTYuNiA4NC4zIDAtNjMuMmMwLTE4LjItMTkuNC0yOS43LTM1LjQtMjEuMUwxMjggMjE1LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxJaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluZXMtbGVhbmluZyIsaWNvbjpbMzg0LDUxMixbXSwiZTUxZSIsIk0xOTAuNCA3NC4xYzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC0xMjggMzg0Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDEyOC0zODR6bTcwLjktNDEuN2MtMTcuNC0yLjktMzMuOSA4LjktMzYuOCAyNi4zbC02NCAzODRjLTIuOSAxNy40IDguOSAzMy45IDI2LjMgMzYuOHMzMy45LTguOSAzNi44LTI2LjNsNjQtMzg0YzIuOS0xNy40LTguOS0zMy45LTI2LjMtMzYuOHpNMzUyIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxGaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzc3BvcnQiLGljb246WzM4NCw1MTIsW10sImY1YWIiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek05NiA0MDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMjc4LjYgMjA4Yy00LjggMjYuNC0yMS41IDQ4LjctNDQuMiA2MS4yIDYuNy0xNyAxMS4yLTM4IDEyLjYtNjEuMmwzMS42IDB6bS0xNzMuMSAwbDMxLjYgMGMxLjQgMjMuMSA2IDQ0LjIgMTIuNiA2MS4yLTIyLjctMTIuNS0zOS40LTM0LjgtNDQuMi02MS4yem03Ni40IDU1Yy02LjItMTMuNC0xMS4xLTMyLjUtMTIuNy01NWw0NS44IDBjLTEuNiAyMi41LTYuNSA0MS42LTEyLjcgNTUtNC41IDkuNi04LjIgMTMuOC0xMC4yIDE1LjUtMi0xLjctNS43LTUuOC0xMC4yLTE1LjV6bTAtMTQyYzQuNS05LjYgOC4yLTEzLjggMTAuMi0xNS41IDIgMS43IDUuNyA1LjggMTAuMiAxNS41IDYuMiAxMy40IDExLjEgMzIuNSAxMi43IDU1bC00NS44IDBjMS42LTIyLjUgNi41LTQxLjYgMTIuNy01NXptOTYuNyA1NUwyNDcgMTc2Yy0xLjQtMjMuMS02LTQ0LjItMTIuNi02MS4yIDIyLjcgMTIuNSAzOS40IDM0LjggNDQuMiA2MS4yek0xMzcgMTc2bC0zMS42IDBjNC44LTI2LjQgMjEuNS00OC43IDQ0LjItNjEuMi02LjcgMTctMTEuMiAzOC0xMi42IDYxLjJ6bTE4MyAxNmExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAweiJdfSxPaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5maW5pdHkiLGljb246WzY0MCw1MTIsWzg3MzQsOTg1NF0sImY1MzQiLCJNMCAyNTZjMC04OC40IDcxLjYtMTYwIDE2MC0xNjAgNTAuNCAwIDk3LjggMjMuNyAxMjggNjRsMzIgNDIuNyAzMi00Mi43YzMwLjItNDAuMyA3Ny42LTY0IDEyOC02NCA4OC40IDAgMTYwIDcxLjYgMTYwIDE2MFM1NjguNCA0MTYgNDgwIDQxNmMtNTAuNCAwLTk3LjgtMjMuNy0xMjgtNjRsLTMyLTQyLjctMzIgNDIuN2MtMzAuMiA0MC4zLTc3LjYgNjQtMTI4IDY0LTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwem0yODAgMGwtNDMuMi01Ny42Yy0xOC4xLTI0LjItNDYuNi0zOC40LTc2LjgtMzguNC01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzMwLjIgMCA1OC43LTE0LjIgNzYuOC0zOC40TDI4MCAyNTZ6bTgwIDBsNDMuMiA1Ny42YzE4LjEgMjQuMiA0Ni42IDM4LjQgNzYuOCAzOC40IDUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0zMC4yIDAtNTguNyAxNC4yLTc2LjggMzguNEwzNjAgMjU2eiJdfSxCaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvbmUiLGljb246WzUxMiw1MTIsW10sImYyNGQiLCJNMjg4IDQ0OGwtMjI0IDAgMC0yMjQgNDggMCAwLTY0LTQ4IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDgtNjQgMCAwIDQ4em0tNjQtOTZsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxSaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9yd2FyZCIsaWNvbjpbNTc2LDUxMixbOTE5M10sImYwNGUiLCJNMzcxLjcgNDMuMUMzNjAuMSAzMiAzNDMgMjguOSAzMjguMyAzNS4yUzMwNCA1NiAzMDQgNzJsMCAxMzYuMy0xNzIuMy0xNjUuMUMxMjAuMSAzMiAxMDMgMjguOSA4OC4zIDM1LjJTNjQgNTYgNjQgNzJsMCAzNjhjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlMMzA0IDMwMy43IDMwNCA0NDBjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlsMTkyLTE4NGM3LjktNy41IDEyLjMtMTggMTIuMy0yOC45cy00LjUtMjEuMy0xMi4zLTI4LjlsLTE5Mi0xODR6Il19LEhodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtIixpY29uOls0NDgsNTEyLFsxMDldLCI0ZCIsIk0yMi43IDMzLjRjMTMuNS00LjEgMjguMSAxLjEgMzUuOSAxMi45TDIyNCAyOTQuMyAzODkuNCA0Ni4zYzcuOC0xMS43IDIyLjQtMTcgMzUuOS0xMi45UzQ0OCA0OS45IDQ0OCA2NGwwIDM4NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3OC4zLTEzMy40IDIwMC4xYy01LjkgOC45LTE1LjkgMTQuMi0yNi42IDE0LjJzLTIwLjctNS4zLTI2LjYtMTQuMkw2NCAxNjkuNyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDkuOSA5LjIgMzcuNSAyMi43IDMzLjR6Il19LHFodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLXNwaWtlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTU2OCIsIk02NCAxMTYuOGMwLTE1LjggMjAuNS0yMiAyOS4zLTguOWw5OC43IDE0OCAwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45bDk4LjcgMTQ4IDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlsOTguNyAxNDggMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUw2MDYuOCAzMDIuMmMxNC4yIDIxLjMtMS4xIDQ5LjgtMjYuNiA0OS44TDY0IDM1MiA2NCAxMTYuOHpNMzIgMzg0bDU3NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sVmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW50YWluIixpY29uOls1MTIsNTEyLFsxMjc5NTZdLCJmNmZjIiwiTTI1Ni41IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41LTcuMiAxMi4xLTIwLjMgMTkuNS0zNC4zIDE5LjVsLTQzMiAwYy0xNC4xIDAtMjcuMS03LjQtMzQuMy0xOS41cy03LjUtMjcuMS0uOC0zOS41bDIxNi00MDAgMi45LTQuNkMyMzEuNyA2LjIgMjQzLjYgMCAyNTYuNSAwek0xNzAuNCAyNDkuOWwyNi44IDI2LjhjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNDMuMy00My4zYzYtNiAxNC4xLTkuNCAyMi42LTkuNGw0Mi44IDAtNzIuMS0xMzMuNS04Ni4xIDE1OS40eiJdfSxVaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MiLGljb246WzUxMiw1MTIsW10sImY0MzkiLCJNMTY4IDU2bDAgNDAtNzguMSAwYy0xNC4zIDAtMjUuOSAxMS42LTI1LjkgMjUuOSAwIDQgLjkgOCAyLjcgMTEuNmwzMy40IDY2LjhjLTExLjQgMS44LTIwLjIgMTEuNy0yMC4yIDIzLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRsNS42IDAtMTMuNiAxMzYtNTYuMiA3MC4zYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwyNDguOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4yTDI4OCAzODQgMjc0LjQgMjQ4IDI4MCAyNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjQgMC0xMS45LTguNy0yMS45LTIwLjItMjMuN2wzMy40LTY2LjhjMS44LTMuNiAyLjctNy42IDIuNy0xMS42IDAtMTQuMy0xMS42LTI1LjktMjUuOS0yNS45bC03OC4xIDAgMC00MCAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzI0NS4zIDggMjMyIDhsLTE2IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMxNjgtMjEuMyAxNjgtOGwwIDE2LTE2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMHpNMzI1LjggMjc5LjZsOC41IDg1LjUgNDcuNCA1OS4yIDQuMiA1LjdjOS4yIDEzLjcgMTQuMSAyOS45IDE0LjEgNDYuNSAwIDEyLjctMi44IDI0LjgtNy45IDM1LjVsODMuMSAwYzIwLjMgMCAzNi44LTE2LjUgMzYuOC0zNi44IDAtNy4zLTIuMi0xNC40LTYuMi0yMC40bC0yNS44LTM4LjcgMC02NCAxMy4zLTEzLjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1MTIgMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYtMzIgMCAwLTE2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJjMCAyMi40LTEwLjIgNDIuNC0yNi4yIDU1LjZ6Il19LHI3PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLXRocmVlLXF1YXJ0ZXJzIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMyIsInRoZXJtb21ldGVyLTMiLCJ0aGVybW9tZXRlci10aHJlZS1xdWFydGVycyJdLCJmMmM4IiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM0wxMzYgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNTYuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LGpodD1yNyxXaHQ9cjcsR2h0PXI3LFlodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiIixpY29uOlszMjAsNTEyLFs5OF0sIjQyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC00Ni41LTI0LjgtODcuMy02Mi0xMDkuNyAxOC43LTIyLjMgMzAtNTEgMzAtODIuMyAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEwzMiAzMnpNMTYwIDIyNGwtOTYgMCAwLTEyOCA5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0ek02NCAyODhsMTI4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMTI4eiJdfSxaaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLXZpcnVzIixpY29uOls1MTIsNTEyLFtdLCJlMDZjIiwiTTI1My40IDIuOUMyNDkuMiAxIDI0NC43IDAgMjQwIDBzLTkuMiAxLTEzLjQgMi45TDM4LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjUzLjQgMi45ek0yNDAgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjA4IDI2NGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFhodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXRlY29pbi1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWQzIiwiTTEyOCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCA0Ni4zIDY0IDY0bDAgMTU3LjktMzguNiAxMWMtMTIuNyAzLjYtMjAuMSAxNi45LTE2LjUgMjkuN3MxNi45IDIwLjEgMjkuNyAxNi41TDY0IDI3MS44IDY0IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0xNjIuNSAxMzQuNi0zOC41YzEyLjctMy42IDIwLjEtMTYuOSAxNi41LTI5LjdzLTE2LjktMjAuMS0yOS43LTE2LjVMMTI4IDIwMy42IDEyOCA2NHoiXX0sUWh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZDYiLGljb246WzUxMiw1MTIsW10sImY2ZDEiLCJNMjI0LjQgOC4zQzI0NC0yLjggMjY4LTIuOCAyODcuNiA4LjNsMTc2IDk5LjdjMjAgMTEuNCAzMi40IDMyLjYgMzIuNCA1NS43bDAgMTk3LjRjMCAyMy0xMi40IDQ0LjMtMzIuNCA1NS43bC0xNzYgOTkuN2MtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBsLTE3Ni05OS43QzI4LjQgNDA1LjUgMTYgMzg0LjIgMTYgMzYxLjJsMC0xOTcuNGMwLTIzIDEyLjQtNDQuMyAzMi40LTU1LjdsMTc2LTk5Ljd6TTEwMi42IDE1NS42Yy04LjgtMy4xLTE4LjggLjMtMjMuOCA4LjZzLTMuMiAxOC43IDMuNiAyNWwzLjIgMi40IDE1MC4yIDkwLjIgMCAxNDguN2MwIDExIDkgMjAgMjAgMjAgMTEgMCAyMC05IDIwLTIwbDAtMTQ4LjcgMTUwLjMtOTAuMmM5LjUtNS43IDEyLjYtMTggNi45LTI3LjRzLTE4LTEyLjUtMjcuNC02LjlsLTE0OS43IDg5LjgtMTQ5LjctODkuOC0zLjctMS43eiJdfSxLaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcC1saW5lcy12ZXJ0aWNhbCIsaWNvbjpbMTkyLDUxMixbXSwiZjdhNSIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDY0em0xMjggMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0eiJdfSxsaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ29sZi1iYWxsLXRlZSIsaWNvbjpbMzg0LDUxMixbImdvbGYtYmFsbCJdLCJmNDUwIiwiTTI5OC41IDM4NC4xYzEyLjEgMS4yIDIxLjUgMTEuNSAyMS41IDIzLjlzLTkuNCAyMi42LTIxLjUgMjMuOWwtMi41IC4xLTgwIDAgMCA4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTg4LTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTIuNCA5LjQtMjIuNiAyMS41LTIzLjlsMi41LS4xIDIwOCAwIDIuNSAuMXpNMTkyIDBjMTA2IDAgMTkyIDg2IDE5MiAxOTIgMCA1Ny40LTI1LjIgMTA4LjgtNjUuMSAxNDRMNjUuMSAzMzZDMjUuMiAzMDAuOCAwIDI0OS40IDAgMTkyIDAgODYgODYgMCAxOTIgMHptMzIgMjQwYy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6bTY0LTY0Yy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6bS04MC0xNmMtNy43IDAtMTQuMiA1LjUtMTUuNyAxMi44bC0uNiA2LjRjLTEuMyA2LjMtNi4yIDExLjItMTIuNSAxMi41bC02LjQgLjZjLTcuMyAxLjUtMTIuOCA4LTEyLjggMTUuNyAwIDguOCA3LjIgMTYgMTYgMTYgMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxKaHQ9bGllLGVtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZXhhZ29uIixpY29uOls1NzYsNTEyLFsxMTA0M10sImYzMTIiLCJNMzMuNSAyMjAuM2MtMTIuNyAyMi4yLTEyLjcgNDkuNCAwIDcxLjVsOTYuMiAxNjguMWMxMi44IDIyLjQgMzYuNyAzNi4yIDYyLjUgMzYuMmwxOTEuNiAwYzI1LjggMCA0OS43LTEzLjggNjIuNS0zNi4ybDk2LjItMTY4LjFjMTIuNy0yMi4yIDEyLjctNDkuNCAwLTcxLjVMNDQ2LjMgNTIuMkM0MzMuNSAyOS44IDQwOS42IDE2IDM4My44IDE2TDE5Mi4yIDE2Yy0yNS44IDAtNDkuNyAxMy44LTYyLjUgMzYuMkwzMy41IDIyMC4zeiJdfSx0bXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTU2IDIyNS42TDMyLjQgMjk2LjIgMzIuNCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRsMTE3LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTM2NS40IDBjLTQxLjMgMC03OCAyNi40LTkxLjEgNjUuNnpNNDc3LjggNDQ4TDk5IDQ0OGMtMzIuOCAwLTU1LjktMzIuMS00NS41LTYzLjJsNDgtMTQ0QzEwOCAyMjEuMiAxMjYuNCAyMDggMTQ3IDIwOGwzNzguOCAwYzMyLjggMCA1NS45IDMyLjEgNDUuNSA2My4ybC00OCAxNDRjLTYuNSAxOS42LTI0LjkgMzIuOC00NS41IDMyLjh6Il19LGFtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrYWFiYSIsaWNvbjpbNTEyLDUxMixbMTI4MzMxXSwiZjY2YiIsIk0yNTYgNTEuM0w5Mi44IDExMi40IDI0Ny41IDE3MS4xYzUuNSAyLjEgMTEuNSAyLjEgMTcgMEw0MTkuMiAxMTIuNCAyNTYgNTEuM3pNMCAxMjkuM2MwLTIwIDEyLjQtMzcuOSAzMS4xLTQ0LjlsMjA4LTc4YzEwLjktNC4xIDIyLjgtNC4xIDMzLjcgMGwyMDggNzhjMTguNyA3IDMxLjEgMjQuOSAzMS4xIDQ0LjlsMCAzNi0yNTMuMiA5NmMtMS44IC43LTMuOCAuNy01LjcgMGwtMjUzLjItOTYgMC0zNnptMCAxNDBsMC01Mi43IDIzNi4xIDg5LjZjMTIuOCA0LjkgMjYuOSA0LjkgMzkuNyAwbDIzNi4xLTg5LjYgMCA1Mi43LTEyOCA0OC42IDAgNTEuMyAxMjgtNDguNiAwIDYyLjJjMCAyMC0xMi40IDM3LjktMzEuMSA0NC45bC0yMDggNzhjLTEwLjkgNC4xLTIyLjggNC4xLTMzLjcgMGwtMjA4LTc4QzEyLjQgNDIwLjcgMCA0MDIuNyAwIDM4Mi43bDAtNjIuMiAxMjggNDguNiAwLTUxLjMtMTI4LTQ4LjZ6TTIzNi4xIDQxMC4xYzEyLjggNC45IDI2LjkgNC45IDM5LjcgMGw2MC4xLTIyLjggMC01MS4zLTc3LjIgMjkuM2MtMS44IC43LTMuOCAuNy01LjcgMGwtNzcuMi0yOS4zIDAgNTEuMyA2MC4xIDIyLjh6Il19LHJtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmciLGljb246WzU3Niw1MTIsW10sImY0YmQiLCJNNjYuNyAzODRsNDIuNS00Mi41YzI0LTI0IDU2LjYtMzcuNSA5MC41LTM3LjVMMzUyIDMwNGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41czkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzQuNyAweiJdfSxpbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luZ2xlLXF1b3RlLXJpZ2h0IixpY29uOlsxOTIsNTEyLFtdLCJlODFjIiwiTTY0IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAweiJdfSxvbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLWRyb3BsZXQiLGljb246WzMyMCw1MTIsW10sImU0YzQiLCJNODAgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTAzLjNjNjQuOSAyMC40IDExMiA4MSAxMTIgMTUyLjdsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTcxLjYgNDcuMS0xMzIuMyAxMTItMTUyLjdMMTEyIDMyQzk0LjMgMzIgODAgMTcuNyA4MCAwem04MCA0MTZjMzUuMyAwIDY0LTMyLjQgNjQtNjQgMC0yMS4yLTI4LjktNjQuNS00Ny45LTkwLjYtOC4xLTExLjEtMjQuMi0xMS4xLTMyLjMgMC0xOSAyNi4xLTQ3LjkgNjkuNC00Ny45IDkwLjYgMCAzMS42IDI4LjcgNjQgNjQgNjR6Il19LHNtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctbWluaW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ2OV0sImYyZDEiLCJNMCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sbm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tcmlnaHQiLGljb246WzMyMCw1MTIsWzkwMDJdLCJmMDU0IiwiTTMxMS4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDMuMiAyNTYgNzMuOSA4Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJ6Il19LGxtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlZ2ciLGljb246WzM4NCw1MTIsWzEyOTM3MF0sImY3ZmIiLCJNMTkyIDQ5NkM4NiA0OTYgMCAzOTQgMCAyODggMCAxNzYgNjQgMTYgMTkyIDE2UzM4NCAxNzYgMzg0IDI4OGMwIDEwNi04NiAyMDgtMTkyIDIwOHpNMTU0LjggMTM0YzYuNS02IDctMTYuMSAxLTIyLjZzLTE2LjEtNy0yMi42LTFjLTIzLjkgMjEuOC00MS4xIDUyLjctNTIuMyA4NC4yLTExLjIgMzEuNi0xNi45IDY1LjEtMTYuOSA5My41IDAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZjMC0yNC41IDUtNTQuNCAxNS4xLTgyLjggMTAuMS0yOC41IDI1LTU0LjEgNDMuNy03MS4yeiJdfSxjaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmstZG9tZSIsaWNvbjpbNTEyLDUxMixbImxhbmRtYXJrLWFsdCJdLCJmNzUyIiwiTTI1NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIC45IDAgMS44IC4xIDIuNi04MC41IDEzLjQtMTQ0IDc2LjktMTU3LjUgMTU3LjRMNjQgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMTYwLTUxLjIgMzguNEM0LjcgNDYwLjQgMCA0NjkuOSAwIDQ4MCAwIDQ5Ny43IDE0LjMgNTEyIDMyIDUxMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDQ0OCA0MTYgNDQ4IDI1NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMi43IDBjLTEzLjUtODAuNC03Ny0xNDMuOS0xNTcuNS0xNTcuNCAuMS0uOSAuMS0xLjcgLjEtMi42IDAtMTcuNy0xNC4zLTMyLTMyLTMyem04MCAyNTZsNjQgMCAwIDE2MC02NCAwIDAtMTYwek0yMjQgNDE2bDAtMTYwIDY0IDAgMCAxNjAtNjQgMHpNMTEyIDI1Nmw2NCAwIDAgMTYwLTY0IDAgMC0xNjB6Il19LGNtdD1jaWUsZG10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Indvcm0iLGljb246WzQ0OCw1MTIsW10sImU1OTkiLCJNMjI0IDk2YzAtNTMgNDMtOTYgOTYtOTZsMzguNCAwQzQwNy45IDAgNDQ4IDQwLjEgNDQ4IDg5LjZMNDQ4IDM3NmMwIDc1LjEtNjAuOSAxMzYtMTM2IDEzNlMxNzYgNDUxLjEgMTc2IDM3NmwwLTgwYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwbDAgMTY4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4UzAgNDkwLjUgMCA0NjRMMCAyOTZjMC03NS4xIDYwLjktMTM2IDEzNi0xMzZzMTM2IDYwLjkgMTM2IDEzNmwwIDgwYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0xODQtMzIgMGMtNTMgMC05Ni00My05Ni05NnptMTQ0LThhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sZm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItaW5qdXJlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjcyOCIsIk0yNDIuNyA4MEwzMzQgODBjLTEwLjctMjQuNi0yOS41LTQ0LjktNTIuOS01Ny42TDI0Mi43IDgwem0tLjktNzAuN0MyMzYgOC40IDIzMCA4IDIyNCA4IDE3NC44IDggMTMyLjUgMzcuNiAxMTQgODBsODAuNiAwIDQ3LjEtNzAuN3pNMjI0IDI0OGM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwtMjQwIDBjMCA2Ni4zIDUzLjcgMTIwIDEyMCAxMjB6TTk4LjcgMzQxLjhDNDkuMyAzNzAuMiAxNiA0MjMuNSAxNiA0ODQuNiAxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmwxNTEgMC05NS44LTE3MC4yem00NS4xLTE3LjdsNDIuNyA3NS45IDg1LjUgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDExLjQtMi40IDIyLjItNi43IDMybDU5LjIgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTkwLjktNzMuNy0xNjQuNi0xNjQuNi0xNjQuNmwtODYuOSAwYy0xMi42IDAtMjQuOSAxLjQtMzYuNyA0LjF6TTIxMy41IDQ0OGwzNiA2NCAyMi41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTU4LjUgMHoiXX0sdW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0cmlrZXRocm91Z2giLGljb246WzUxMiw1MTIsW10sImYwY2MiLCJNOTYgMTU3LjVDOTYgODguMiAxNTIuMiAzMiAyMjEuNSAzMkwzNjggMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMjIxLjUgOTZjLTM0IDAtNjEuNSAyNy41LTYxLjUgNjEuNSAwIDMxIDIzLjEgNTcuMiA1My45IDYxbDQ0LjEgNS41IDIyMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4My4xIDBDMTAzIDIwNC42IDk2IDE4MS44IDk2IDE1Ny41ek0zNDkuMiAzMzZsNjUuNSAwYy45IDYuMSAxLjQgMTIuMiAxLjQgMTguNSAwIDY5LjMtNTYuMiAxMjUuNS0xMjUuNSAxMjUuNUwxNDQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE0Ni41IDBjMzQgMCA2MS41LTI3LjUgNjEuNS02MS41IDAtNi40LTEtMTIuNy0yLjgtMTguNXoiXX0scG10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJsb2ciLGljb246WzUxMiw1MTIsW10sImY3ODEiLCJNMjI0IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0IDE0NS44IDAgMjY0IDExOC4yIDI2NCAyNjQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTkuMy05Ni43LTIxNi0yMTYtMjE2LTEzLjMgMC0yNC0xMC43LTI0LTI0ek04MCA5NmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNiA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NFMyNTUuNSA1MTIgMTc2IDUxMiAzMiA0NDcuNSAzMiAzNjhsMC0yMjRjMC0yNi41IDIxLjUtNDggNDgtNDh6bTE2OCAwYzkyLjggMCAxNjggNzUuMiAxNjggMTY4IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNjYuMy01My43LTEyMC0xMjAtMTIwLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LGhtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2gtMjAiLGljb246WzQ0OCw1MTIsW10sImUwNmYiLCJNMTY4LjUgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMjUuM2MtMTA4IDExLjktMTkyIDEwMy41LTE5MiAyMTQuNyAwIDExOS4zIDk2LjcgMjE2IDIxNiAyMTZzMjE2LTk2LjcgMjE2LTIxNmMwLTM5LjgtMTAuOC03Ny4xLTI5LjYtMTA5LjJsMjguMi0yOC4yYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0yMy40IDIzLjRjLTMyLjktMzAuMi03NS4yLTUwLjMtMTIyLTU1LjVsMC0yNS4zIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwem0tNjAgMjQwYzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsMCAzLjhjMCAxMS43LTMuMiAyMy4xLTkuMyAzM2wtNDMuOCA3MS4yIDMzLjEgMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTU3LjggMGMtMTQuNSAwLTI2LjItMTEuNy0yNi4yLTI2LjIgMC00LjkgMS4zLTkuNiAzLjktMTMuOGw1Ni43LTkyLjFjMi4yLTMuNiAzLjQtNy44IDMuNC0xMi4xbDAtMy44YzAtNi42LTUuNC0xMi0xMi0xMnMtMTIgNS40LTEyIDEyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMHptMTgwLTUyYzI4LjcgMCA1MiAyMy4zIDUyIDUybDAgOTZjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC05NmMwLTI4LjcgMjMuMy01MiA1Mi01MnptLTEyIDUybDAgOTZjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTk2YzAtNi42LTUuNC0xMi0xMi0xMnMtMTIgNS40LTEyIDEyeiJdfSxtbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGlja3VwIixpY29uOls2NDAsNTEyLFsxMjg3NjNdLCJmNjNjIiwiTTM2My44IDk2bDU3LjYgOTYtMTMzLjQgMCAwLTk2IDc1LjggMHpNNDk2IDE5Mkw0MTguNiA2My4xQzQwNy4xIDQzLjggMzg2LjIgMzIgMzYzLjggMzJMMjU2IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOC0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMi40IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDE2MC43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDMyLjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek0xMTIgMzkyYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6bTM3Ni00MGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LGRpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZWVkbGluZyIsaWNvbjpbNTEyLDUxMixbMTI3NzkzLCJzcHJvdXQiXSwiZjRkOCIsIk01MTIgMzJDNTEyIDE0MC4xIDQzNS40IDIzMC4zIDMzMy42IDI1MS40IDMyNS43IDE5My4zIDI5OS42IDE0MSAyNjEuMSAxMDAuNSAzMDEuMiA0MCAzNjkuOSAwIDQ0OCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzIgMGMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0bDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwQzEwMC4zIDMyMCAwIDIxOS43IDAgOTZ6Il19LGdtdD1kaWUsZmllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYW5zZ2VuZGVyIixpY29uOls1NzYsNTEyLFs5ODk1LCJ0cmFuc2dlbmRlci1hbHQiXSwiZjIyNSIsIk0xMjgtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMOTcuOSAzMiAxMzYgNzAuMSAxNTEgNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0xNSAxNSAxNC4yIDE0LjJjMjcuOS0yMy44IDY0LjItMzguMiAxMDMuOC0zOC4yIDM2LjcgMCA3MC42IDEyLjQgOTcuNiAzMy4yTDQ2Ni43IDMyIDQ0OCAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC43LTg0LjQgODQuNGMxMyAyMy4xIDIwLjQgNDkuOSAyMC40IDc4LjMgMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAzNS4yIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTM1LjJjLTczLTE0LjgtMTI4LTc5LjQtMTI4LTE1Ni44IDAtMzEuNCA5LTYwLjcgMjQuNy04NS40bC0xNi43LTE2LjctMTUgMTVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTUtMTUtMzguMS0zOC4xIDAgMzAuMWMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDExMy43IDAgOTZMMCAwQzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDB6TTI4OCAzMzZhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6Il19LHhtdD1maWUsYm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZiIsaWNvbjpbNTc2LDUxMixbNjE3MzFdLCJmMDg5IiwiTTMwNC4xIDcuNmMwLTExLjEtNy42LTIwLjctMTguNC0yMy4zcy0yMS45IDIuNS0yNyAxMi40TDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjkxIDQxNi4xYzgtNC4xIDEzLjEtMTIuNCAxMy4xLTIxLjRsMC0zODcuMXoiXX0sdWllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob3RvLWZpbG0iLGljb246WzY0MCw1MTIsWyJwaG90by12aWRlbyJdLCJmODdjIiwiTTE5MiA2NGMwLTM1LjMgMjguNy02NCA2NC02NEw1NzYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzIwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjI0ek0zMjAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTU2LjUgMTEuNUM0NzIuMSAxMDAuNCA0NjQuNCA5NiA0NTYgOTZzLTE2LjEgNC40LTIwLjUgMTEuNWwtNTQgODguMy0xNy45LTI1LjZjLTQuNS02LjQtMTEuOC0xMC4yLTE5LjctMTAuMnMtMTUuMiAzLjgtMTkuNyAxMC4ybC01NiA4MGMtNS4xIDcuMy01LjggMTYuOS0xLjYgMjQuOFMyNzkuMSAyODggMjg4IDI4OGwyNTYgMGM4LjcgMCAxNi43LTQuNyAyMC45LTEyLjNzNC4xLTE2LjgtLjUtMjQuM2wtODgtMTQ0ek0xNDQgMTI4bDAgMTYwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEybDE5MiAwIDAgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw4MCAwek01MiAxOTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMHptMCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSx2bXQ9dWllLHltdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwdW1wLW1lZGljYWwiLGljb246WzMyMCw1MTIsW10sImUwNmEiLCJNOTYgMGwwIDgwIDEyOCAwIDAtMjQgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyA4IDI5NiA4bC03MiAwIDAtOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMEMxMTAuMy0zMiA5Ni0xNy43IDk2IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTI4em02NCAxMjBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LHdtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlIixpY29uOls0NDgsNTEyLFsxMjgyOTNdLCJmMDZkIiwiTTE2MC41LTI2LjRjOS4zLTcuOCAyMy03LjUgMzEuOSAuOSAxMi4zIDExLjYgMjMuMyAyNC40IDMzLjkgMzcuNCAxMy41IDE2LjUgMjkuNyAzOC4zIDQ1LjMgNjQuMiA1LjItNi44IDEwLTEyLjggMTQuMi0xNy45IDEuMS0xLjMgMi4yLTIuNyAzLjMtNC4xIDcuOS05LjggMTcuNy0yMi4xIDMwLjgtMjIuMSAxMy40IDAgMjIuOCAxMS45IDMwLjggMjIuMSAxLjMgMS43IDIuNiAzLjMgMy45IDQuOCAxMC4zIDEyLjQgMjQgMzAuMyAzNy43IDUyLjQgMjcuMiA0My45IDU1LjYgMTA2LjQgNTUuNiAxNzYuNiAwIDEyMy43LTEwMC4zIDIyNC0yMjQgMjI0UzAgNDExLjcgMCAyODhjMC05MS4xIDQxLjEtMTcwIDgwLjUtMjI1IDE5LjktMjcuNyAzOS43LTQ5LjkgNTQuNi02NS4xIDguMi04LjQgMTYuNS0xNi43IDI1LjUtMjQuMnpNMjI1LjcgNDE2YzI1LjMgMCA0Ny43LTcgNjguOC0yMSA0Mi4xLTI5LjQgNTMuNC04OC4yIDI4LjEtMTM0LjQtNC41LTktMTYtOS42LTIyLjUtMmwtMjUuMiAyOS4zYy02LjYgNy42LTE4LjUgNy40LTI0LjctLjUtMTcuMy0yMi4xLTQ5LjEtNjIuNC02NS4zLTgzLTUuNC02LjktMTUuMi04LTIxLjUtMS45LTE4LjMgMTcuOC01MS41IDU2LjgtNTEuNSAxMDQuMyAwIDY4LjYgNTAuNiAxMDkuMiAxMTMuNyAxMDkuMnoiXX0scGllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtcGx1cyIsaWNvbjpbNTEyLDUxMixbInNlYXJjaC1wbHVzIl0sImYwMGUiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0yMDggMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMCAwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OCA0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LE1tdD1waWUsem10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYXNrIixpY29uOls0NDgsNTEyLFtdLCJmMGMzIiwiTTI4OCAwTDEyOCAwQzExMC4zIDAgOTYgMTQuMyA5NiAzMnMxNC4zIDMyIDMyIDMyTDEyOCAyMTUuNSA3LjUgNDI2LjNDMi42IDQzNSAwIDQ0NC43IDAgNDU0LjcgMCA0ODYuNCAyNS42IDUxMiA1Ny4zIDUxMmwzMzMuNCAwYzMxLjYgMCA1Ny4zLTI1LjYgNTcuMy01Ny4zIDAtMTAtMi42LTE5LjgtNy41LTI4LjRMMzIwIDIxNS41IDMyMCA2NGMxNy43IDAgMzItMTQuMyAzMi0zMlMzMzcuNyAwIDMyMCAwTDI4OCAwek0xOTIgMjE1LjVsMC0xNTEuNSA2NCAwIDAgMTUxLjVjMCAxMS4xIDIuOSAyMi4xIDguNCAzMS44bDQxLjYgNzIuNy0xNjQgMCA0MS42LTcyLjdjNS41LTkuNyA4LjQtMjAuNiA4LjQtMzEuOHoiXX0sa210PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsaWduLXJpZ2h0IixpY29uOls0NDgsNTEyLFtdLCJmMDM4IiwiTTQ0OCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkwxOTIgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6bTAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6Il19LGhpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWJsZS1jYXIiLGljb246WzUxMiw1MTIsWzEyODY3Myw1NzU1MSwidHJhbSJdLCJmN2RhIiwiTTI4OC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE2MCAyNGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0zMiAyODhjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTM2IDAgMC05Ni4yLTE5My40IDU1LjNjLTEyLjcgMy42LTI2LTMuNy0yOS43LTE2LjVzMy43LTI2IDE2LjUtMjkuN2wyMjQtNjQgMCAwIDIyNC02NGMxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC0yMDYuNiA1OSAwIDEwOS45IDEzNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNjB6bTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw1NiAwIDAtOTYtNTYgMHptMTg0IDk2bDAtOTYtODAgMCAwIDk2IDgwIDB6bTQ4IDBsNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTU2IDAgMCA5NnoiXX0sU210PWhpZSxtaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2l0LW1lZGljYWwiLGljb246WzUxMiw1MTIsWyJmaXJzdC1haWQiXSwiZjQ3OSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNiAwIDAtMzg0LTE2IDB6bTY0IDBsMCAzODQgMjU2IDAgMC0zODQtMjU2IDB6TTQ0OCA0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE2IDAgMCAzODQgMTYgMHpNMjI0IDE4NGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sQ210PW1pZSxMbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcC1saW5lcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjdhNCIsIk0zMiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMjg4em0wLTEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxNjB6Il19LGdpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXJnZXIiLGljb246WzUxMiw1MTIsWyJoYW1idXJnZXIiXSwiZjgwNSIsIk00OCAzODRjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwyODggMGM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTguOC03LjItMTYtMTYtMTZMNDggMzg0ek0zMiAyMDJjMCAxMi4yIDkuOSAyMiAyMiAyMkw0NTggMjI0YzEyLjIgMCAyMi05LjkgMjItMjIgMC0xNy4yLTIuNi0zNC40LTEwLjgtNDkuNS0yMi4yLTQwLjgtODIuMy0xMjAuNS0yMTMuMi0xMjAuNVM2NSAxMTEuNiA0Mi44IDE1Mi41QzM0LjYgMTY3LjYgMzIgMTg0LjggMzIgMjAyek0wIDMwNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAyNzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0yNTYgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0xMjAgMTI4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTI0OC0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LFRtdD1naWUsX210PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNub3dtYW4iLGljb246WzY0MCw1MTIsWzk3MzEsOTkyNF0sImY3ZDAiLCJNNDAzIDIxMS43YzMyLjItMjQuOSA1My02My45IDUzLTEwNy43IDAtNzUuMS02MC45LTEzNi0xMzYtMTM2UzE4NCAyOC45IDE4NCAxMDRjMCA0My45IDIwLjggODIuOSA1MyAxMDcuNy0zMi4yIDE2LjMtNTkgNDEuOC03Ni44IDczLjFMMTEyIDI2NC4yIDExMiAyMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxOS42LTIyLjUtOS43Yy0xMi4yLTUuMi0yNi4zIC40LTMxLjUgMTIuNnMuNCAyNi4zIDEyLjYgMzEuNWMzNi4xIDE1LjUgNzUuOSAzMi41IDExOS40IDUxLjItMy45IDE0LjktNiAzMC42LTYgNDYuNyAwIDcwIDM5LjEgMTMwLjggOTYuNiAxNjEuOSA3LjkgNC4zIDE2LjkgNi4xIDI1LjkgNi4xbDEyMyAwYzkgMCAxOC0xLjggMjUuOS02LjEgNTcuNS0zMS4xIDk2LjYtOTIgOTYuNi0xNjEuOSAwLTE2LjItMi4xLTMxLjgtNi00Ni43IDQzLjUtMTguNyA4My40LTM1LjcgMTE5LjQtNTEuMiAxMi4yLTUuMiAxNy44LTE5LjMgMTIuNi0zMS41cy0xOS4zLTE3LjgtMzEuNS0xMi42bC0yMi41IDkuNyAwLTE5LjZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC4yLTQ4LjIgMjAuNmMtMTcuOS0zMS4zLTQ0LjYtNTYuOC03Ni44LTczLjF6TTI5NiA0MTZhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQtMTIwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjQ4IDgwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTM2OCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTI5Mi4yIDE1OS4zYy0yLjctNC44LTQuMi0xMC4yLTQuMi0xNS43IDAtMTcuNSAxNC4yLTMxLjYgMzEuNi0zMS42bC44IDBjMTcuNSAwIDMxLjYgMTQuMiAzMS42IDMxLjYgMCA1LjUtMS40IDEwLjktNC4yIDE1LjdMMzI3IDE5NS44Yy0zLjEgNS40LTEwLjggNS40LTEzLjkgMGwtMjAuOS0zNi42eiJdfSxBbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG90ZWwiLGljb246WzUxMiw1MTIsWzEyNzk3Nl0sImY1OTQiLCJNMTYgMjRDMTYgMTAuNyAyNi43IDAgNDAgMEw0NzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgNDE2IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw0MCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDE2LTggMEMyNi43IDQ4IDE2IDM3LjMgMTYgMjR6bTIwOCA4OGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xMjggOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptOTYgMTEybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTM1MiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0xMTIgMjA4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTI0MC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0yODggMzg0bDQzLjggMGM5LjkgMCAxNy41LTkgMTQtMTguMi0xMy44LTM2LjEtNDguOC02MS44LTg5LjctNjEuOHMtNzUuOSAyNS43LTg5LjcgNjEuOGMtMy41IDkuMiA0LjEgMTguMiAxNCAxOC4ybDQzLjggMCAwIDgwIDY0IDAgMC04MHoiXX0sJG10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InByaW50IixpY29uOls1MTIsNTEyLFsxMjg0MjQsMTI4NDM4LDkxMTNdLCJmMDJmIiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDM0MS41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdsNDIuNSA0Mi41YzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNsMCAzNy41LTM4NCAwIDAtODB6TTAgMjU2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDAgMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjU2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjQtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NnpNMTI4IDQxNmwwIDMyIDI1NiAwIDAtOTYtMjU2IDAgMCA2NHpNNDU2IDI3MmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSx4aWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sbGV5YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTUyLCJ2b2xsZXliYWxsLWJhbGwiXSwiZjQ1ZiIsIk01MTIgMjU4LjljLTIzLjQgOC00Ny44IDEzLjEtNzIuNiAxNS4xIDUuOS05OC42LTMwLjctMTkxLjEtOTQuOS0yNTguMyA5Ny44IDM2IDE2Ny41IDEzMCAxNjcuNSAyNDAuMyAwIDEgMCAxLjkgMCAyLjl6bS01LjkgNTJjLTUuMiAyMy43LTEzLjYgNDYuMi0yNC45IDY2LjktOTQuNyA1Mi4yLTIxNCA1MC0zMDguNC0xMy42IDIxLjctMzEuMyA0OS44LTU4LjkgODMuOC04MC41IDc5LjUgNDEuNiAxNjguNSA0OS4xIDI0OS41IDI3LjF6TTI3OS43IDI0MS42Yy0zLjctODkuNy00MS43LTE3MC41LTEwMS4zLTIyOS43IDIyLjMtNy4xIDQ2LTExLjIgNzAuNS0xMS45IDkyLjUgNTUuOSAxNTAuMyAxNjAuMyAxNDIuNCAyNzMuOC0zOC0zLjItNzUuOS0xMy43LTExMS42LTMyLjN6TTEzMC41IDMyLjhDMTQ5LjEgNDkuMSAxNjUuOCA2Ny43IDE3OS45IDg4LjIgOTEuNSAxMzIuMyAyOS43IDIxMC4zIDMuNyAyOTkuNSAxLjMgMjg1LjMgMCAyNzAuOCAwIDI1NiAwIDE2MC4yIDUyLjYgNzYuNyAxMzAuNSAzMi44em03My40IDk3YzE2LjMgMzQuNSAyNi4xIDcyLjYgMjcuOSAxMTIuOC03NS44IDQ4LTEyNi44IDEyMS4zLTE0OC4zIDIwMi41LTE3LjYtMTYuMS0zMy0zNC42LTQ1LjUtNTUgMi4xLTEwOC4xIDYzLjctMjEwLjQgMTY1LjktMjYwLjN6TTI1NiA1MTJjLTQ3LjcgMC05Mi4zLTEzLTEzMC41LTM1LjcgNC44LTI0LjMgMTIuNi00OCAyMy4yLTcwLjQgODIuNCA1NC40IDE4MC44IDY4LjkgMjcxIDQ3LTQ0LjQgMzctMTAxLjUgNTkuMi0xNjMuNyA1OS4yeiJdfSxEbXQ9eGllLEVtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFmZmljLWxpZ2h0IixpY29uOlszMjAsNTEyLFsxMjg2NzhdLCJmNjM3IiwiTTY0LTMyQzI4LjctMzIgMC0zLjMgMCAzMkwwIDM4NGMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MHMxNjAtNzEuNiAxNjAtMTYwbDAtMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0LTMyem05NiAzOTJjMzAuOSAwIDU2IDI1LjEgNTYgNTZzLTI1LjEgNTYtNTYgNTYtNTYtMjUuMS01Ni01NiAyNS4xLTU2IDU2LTU2em01Ni0xMDRhNTYgNTYgMCAxIDEgLTExMiAwIDU2IDU2IDAgMSAxIDExMiAwek0xNjAgMTUyYTU2IDU2IDAgMSAxIDAtMTEyIDU2IDU2IDAgMSAxIDAgMTEyeiJdfSxObXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTU1IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgNzggNzEuNWMtNjkuMyAyOS0xMTggOTcuNC0xMTggMTc3LjIgMCA0OS4zIDE4LjYgOTQuMyA0OS4xIDEyOC4zTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSwkVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VycyIsaWNvbjpbNjQwLDUxMixbXSwiZjBjMCIsIk0zMjAgMTZhMTA0IDEwNCAwIDEgMSAwIDIwOCAxMDQgMTA0IDAgMSAxIDAtMjA4ek05NiA4OGE3MiA3MiAwIDEgMSAwIDE0NCA3MiA3MiAwIDEgMSAwLTE0NHpNMCA0MTZjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggMTIuOCAwIDI1LjIgMS45IDM2LjkgNS40LTMyLjkgMzYuOC01Mi45IDg1LjQtNTIuOSAxMzguNmwwIDE2YzAgMTEuNCAyLjQgMjIuMiA2LjcgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyem01MjEuMyA2NGM0LjMtOS44IDYuNy0yMC42IDYuNy0zMmwwLTE2YzAtNTMuMi0yMC0xMDEuOC01Mi45LTEzOC42IDExLjctMy41IDI0LjEtNS40IDM2LjktNS40IDcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTg2LjcgMHpNNDcyIDE2MGE3MiA3MiAwIDEgMSAxNDQgMCA3MiA3MiAwIDEgMSAtMTQ0IDB6TTE2MCA0MzJjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBzMTYwIDcxLjYgMTYwIDE2MGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0sUG10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNlcnRpZmljYXRlIixpY29uOls1NzYsNTEyLFtdLCJmMGEzIiwiTTIzOS4yLThjLTYuMS02LjItMTUtOC43LTIzLjQtNi40UzIwMC45LTUuNiAxOTguOCAyLjhMMTgzLjUgNjNjLTEuMSA0LjQtNS42IDctOS45IDUuN0wxMTMuOCA1MS45Yy04LjQtMi40LTE3LjQgMC0yMy41IDYuMXMtOC41IDE1LjEtNi4xIDIzLjVsMTYuOSA1OS44YzEuMiA0LjMtMS40IDguOC01LjcgOS45TDM1LjEgMTY2LjVjLTguNCAyLjEtMTUgOC43LTE3LjMgMTcuMXMuMiAxNy4zIDYuNCAyMy40bDQ0LjUgNDMuM2MzLjIgMy4xIDMuMiA4LjMgMCAxMS41TDI0LjMgMzA1LjFjLTYuMiA2LjEtOC43IDE1LTYuNCAyMy40czguOSAxNC45IDE3LjMgMTcuMWw2MC4yIDE1LjNjNC40IDEuMSA3IDUuNiA1LjcgOS45TDg0LjIgNDMwLjVjLTIuNCA4LjQgMCAxNy40IDYuMSAyMy41czE1LjEgOC41IDIzLjUgNi4xbDU5LjgtMTYuOWM0LjMtMS4yIDguOCAxLjQgOS45IDUuN2wxNS4zIDYwLjJjMi4xIDguNCA4LjcgMTUgMTcuMSAxNy4zczE3LjMtLjIgMjMuNC02LjRsNDMuMy00NC41YzMuMS0zLjIgOC4zLTMuMiAxMS41IDBMMzM3LjMgNTIwYzYuMSA2LjIgMTUgOC43IDIzLjQgNi40czE0LjktOC45IDE3LjEtMTcuM0wzOTMuMSA0NDljMS4xLTQuNCA1LjYtNyA5LjktNS43bDU5LjggMTYuOWM4LjQgMi40IDE3LjQgMCAyMy41LTYuMXM4LjUtMTUuMSA2LjEtMjMuNWwtMTYuOS01OS44Yy0xLjItNC4zIDEuNC04LjggNS43LTkuOWw2MC4yLTE1LjNjOC40LTIuMSAxNS04LjcgMTcuMy0xNy4xcy0uMi0xNy40LTYuNC0yMy40bC00NC41LTQzLjNjLTMuMi0zLjEtMy4yLTguMyAwLTExLjVsNDQuNS00My4zYzYuMi02LjEgOC43LTE1IDYuNC0yMy40cy04LjktMTQuOS0xNy4zLTE3LjFsLTYwLjItMTUuM2MtNC40LTEuMS03LTUuNi01LjctOS45bDE2LjktNTkuOGMyLjQtOC40IDAtMTcuNC02LjEtMjMuNXMtMTUuMS04LjUtMjMuNS02LjFMNDAzIDY4LjhjLTQuMyAxLjItOC44LTEuNC05LjktNS43TDM3Ny44IDIuOGMtMi4xLTguNC04LjctMTUtMTcuMS0xNy4zcy0xNy4zIC4yLTIzLjQgNi40TDI5NCAzNi41Yy0zLjEgMy4yLTguMyAzLjItMTEuNSAwTDIzOS4yLTh6Il19LEltdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGFybS1jbG9jayIsaWNvbjpbNTEyLDUxMixbOTIwMF0sImYzNGUiLCJNNTA0LjQgMTMyLjVjLTQuNSAxMC41LTE4LjQgOS44LTI0LjkgLjQtMjcuOC00MC02Ni4xLTcyLjItMTExLTkyLjYtMTAuNC00LjctMTMuNy0xOC4zLTQuMS0yNC42IDE1LTkuOSAzMy0xNS43IDUyLjMtMTUuNyA1Mi42IDAgOTUuMiA0Mi42IDk1LjIgOTUuMiAwIDEzLjItMi43IDI1LjgtNy42IDM3LjN6bS00NzEuOSAuNGMtNi41IDkuNC0yMC41IDEwLjEtMjQuOS0uNC00LjktMTEuNS03LjYtMjQuMS03LjYtMzcuMyAwLTUyLjYgNDIuNi05NS4yIDk1LjItOTUuMiAxOS4zIDAgMzcuMyA1LjggNTIuMyAxNS43IDkuNiA2LjMgNi4zIDE5LjktNC4xIDI0LjYtNDQuOCAyMC40LTgzLjEgNTIuNi0xMTEgOTIuNnpNMzkwLjIgNDY3LjRDMzUyLjggNDk1LjQgMzA2LjMgNTEyIDI1NiA1MTJzLTk2LjgtMTYuNi0xMzQuMS00NC42TDg2LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDM1LjItMzUuMkM0OC42IDM4NC44IDMyIDMzOC4zIDMyIDI4OCAzMiAxNjQuMyAxMzIuMyA2NCAyNTYgNjRTNDgwIDE2NC4zIDQ4MCAyODhjMCA1MC4zLTE2LjYgOTYuOC00NC42IDEzNC4ybDM1LjIgMzUuMmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtMzUuMi0zNS4yek0yODAgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTA0YzAgNi40IDIuNSAxMi41IDcgMTdsNTYgNTZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00OS00OSAwLTk0LjF6Il19LEZtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxpY29wdGVyLXN5bWJvbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUwMiIsIk00NDUuNCAyMjRsNjQuNyAwQzQ5NS42IDEwOC4yIDQwMy44IDE2LjQgMjg4IDJsMCA2NC43QzM2OC40IDgwLjEgNDMxLjkgMTQzLjYgNDQ1LjQgMjI0ek01MTAgMjg4bC02NC43IDBDNDMxLjkgMzY4LjQgMzY4LjQgNDMxLjkgMjg4IDQ0NS4zbDAgNjQuN2MxMTUuOC0xNC40IDIwNy42LTEwNi4yIDIyMi0yMjJ6TTIgMjg4QzE2LjQgNDAzLjggMTA4LjIgNDk1LjYgMjI0IDUxMGwwLTY0LjdDMTQzLjYgNDMxLjkgODAuMiAzNjguNCA2Ni43IDI4OEwyIDI4OHptMC02NGw2NC43IDBDODAuMiAxNDMuNiAxNDMuNiA4MC4xIDIyNCA2Ni43TDIyNCAyQzEwOC4yIDE2LjQgMTYuNCAxMDguMiAyIDIyNHptMjA2LTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA5NiAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0LTk2IDAgMC02NHoiXX0sYmllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXktY3JhY2siLGljb246WzUxMiw1MTIsWyJob3VzZS1kYW1hZ2UiXSwiZjZmMSIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTA1LjYgMC0zOC40LTY0IDgwLjgtNjcuM2M3LjgtNi41IDcuNi0xOC42LS40LTI0LjlMMjE4LjYgMjYzLjJjLTE0LjYtMTEuNS0zMy44IDctMjIuOCAyMkwyNTYgMzY4IDE3MC41IDQzOS4yYy02LjEgNS03LjUgMTMuOC0zLjUgMjAuNWwzMS4zIDUyLjItODYuNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6Il19LE9tdD1iaWUsQm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1taWxpdGFyeS1wb2ludGluZyIsaWNvbjpbNTEyLDUxMixbXSwiZTU0YSIsIk0yMTQuOSAxNC4xQzIwMiAxNS4yIDE5MiAyNiAxOTIgMzkgMTkyIDUyLjggMjAzLjIgNjQgMjE3IDY0bDE1MSAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMwLjZDMzg0IDggMzc2IC43IDM2Ni43IDEuNEwyMTQuOSAxNC4xek0yMDggMTEyYzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC01LjUtLjYtMTAuOC0xLjYtMTZMMjA5LjYgOTZjLTEgNS4yLTEuNiAxMC41LTEuNiAxNnpNNDAgMjI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDE1MiAwIDAgODkuNCAxNjIuOC0xNjIuOGMtMTMuMy00LjMtMjcuMy02LjUtNDEuNi02LjVMNDAgMjI0em0zNDUuNyAyMC45bC0xNzEuMSAxNzEuMSAxNjkuNCAwIDAtNDYuMyA1My42IDkwLjZjMTEuMiAxOSAzNS44IDI1LjMgNTQuOCAxNC4xczI1LjMtMzUuOCAxNC4xLTU0LjhMNDMwLjMgMjkwLjhjLTExLjItMTktMjYuNi0zNC41LTQ0LjYtNDUuOXpNMTkyIDQ0OGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzItMTkyIDB6Il19LFJtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkYXRhYmFzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjFjMCIsIk00NDggMjA1LjhjLTE0LjggOS44LTMxLjggMTcuNy00OS41IDI0LTQ3IDE2LjgtMTA4LjcgMjYuMi0xNzQuNSAyNi4yUzk2LjQgMjQ2LjUgNDkuNSAyMjkuOGMtMTcuNi02LjMtMzQuNy0xNC4yLTQ5LjUtMjRMMCAyODhjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODBsMC04Mi4yem0wLTc3LjhsMC00OEM0NDggMzUuOCAzNDcuNyAwIDIyNCAwUzAgMzUuOCAwIDgwbDAgNDhjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODB6TTM5OC41IDM4OS44QzM1MS42IDQwNi41IDI4OS45IDQxNiAyMjQgNDE2Uzk2LjQgNDA2LjUgNDkuNSAzODkuOGMtMTcuNi02LjMtMzQuNy0xNC4yLTQ5LjUtMjRMMCA0MzJjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODBsMC02Ni4yYy0xNC44IDkuOC0zMS44IDE3LjctNDkuNSAyNHoiXX0sSG10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ld3NwYXBlciIsaWNvbjpbNTEyLDUxMixbMTI4MjQwXSwiZjFlYSIsIk0wIDQxNkwwIDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHpNMTYwIDEyOGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTI0IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQwIDB6bS0yNC03MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zNjAgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDB6Il19LHFtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1yYWluIixpY29uOls1MTIsNTEyLFsxMjc3ODMsOTkyNl0sImY3M2QiLCJNOTYgMzIwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yLTEuMy02LjctMS45LTEzLjctMS45LTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTIgNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwIDE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjggNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOC0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiAzMjB6bTEuNiA2OC4yYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNmwzMC4yLTY4LjJ6bTE1MiAwYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNmwzMC4yLTY4LjJ6bTEyMS44IDY4LjJsMzAuMi02OC4yYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNnoiXX0sdmllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1heGltaXplIixpY29uOls0NDgsNTEyLFsiZXhwYW5kLWFycm93cy1hbHQiXSwiZjMxZSIsIk0xNjggMzJMMjQgMzJDMTAuNyAzMiAwIDQyLjcgMCA1NkwwIDIwMGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSAyMjMuOCA0MSAyMTdsNDAtNDAgNzkgNzktNzkgNzktNDAtNDBjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMCAzMDIuMyAwIDMxMkwwIDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGM5LjcgMCAxOC41LTUuOCAyMi4yLTE0LjhzMS43LTE5LjMtNS4yLTI2LjJsLTQwLTQwIDc5LTc5IDc5IDc5LTQwIDQwYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yUzI3MC4zIDQ4MCAyODAgNDgwbDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTQ0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMnMtMTkuMy0xLjctMjYuMiA1LjJsLTQwIDQwLTc5LTc5IDc5LTc5IDQwIDQwYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTNDQ4IDIwOS43IDQ0OCAyMDBsMC0xNDRjMC0xMy4zLTEwLjctMjQtMjQtMjRMMjgwIDMyYy05LjcgMC0xOC41IDUuOC0yMi4yIDE0LjhTMjU2LjIgNjYuMSAyNjMgNzNsNDAgNDAtNzkgNzktNzktNzkgNDAtNDBjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNzcuNyAzMiAxNjggMzJ6Il19LFZtdD12aWUsVW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLWFycm93IixpY29uOls1MTIsNTEyLFtdLCJmMTI0IiwiTTQ3Ny45IDc1LjVjNC41LTExLjggMS43LTI1LjItNy4yLTM0LjFzLTIyLjMtMTEuOC0zNC4xLTcuMmwtNDE2IDE2MEM3LjkgMTk5LS4zIDIxMS4yIDAgMjI0LjdzOS4xIDI1LjQgMjEuOSAyOS42bDE3Ni44IDU4LjkgNTguOSAxNzYuOGM0LjMgMTIuOCAxNi4xIDIxLjYgMjkuNiAyMS45czI1LjctNy45IDMwLjYtMjAuNWwxNjAtNDE2eiJdfSxqbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2l0eSIsaWNvbjpbNTc2LDUxMixbMTI3OTYxXSwiZjY0ZiIsIk0zMjAgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMi00OCAwIDAtNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3Mi02NCAwIDAtNzJDOTYgMTAuNyA4NS4zIDAgNzIgMFM0OCAxMC43IDQ4IDI0bDAgNzRjLTI3LjYgNy4xLTQ4IDMyLjItNDggNjJMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAgMC0xMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRMMzIwIDB6bTY0IDExMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2em0tMTYgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHptMTYgMTEybDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6bTExMi0xNmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwek0yNTYgMzA0bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6TTI0MCAxOTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHpNMTI4IDMwNGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2ek0xMTIgMTkyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6Il19LFdtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4LXJheSIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5NyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMzIwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0em0yODAgNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDAgMCA0OC04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDAgMCA0OC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDAgMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMCAwLTQ4IDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDAgMC00OCA2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwIDAtMTZ6Il19LEdtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bWJyZWxsYS1iZWFjaCIsaWNvbjpbNTEyLDUxMixbMTI3OTU4XSwiZjVjYSIsIk00OTcuNSAzNDEuMWMtNS45IDE2LjctMjUuMyAyMy00MS4xIDE1LjFsLTE3OC4yLTg5LjEtMS42IDMuMi04OC44IDE3Ny43IDI5Mi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDg0LjIgMCAxMDMuMi0yMDYuMyAxLjYtMy4yLTE2NS40LTgyLjdjLTE1LjgtNy45LTIyLjQtMjcuMy0xMi41LTQyIDQ1LjktNjguNiAxMjQuMS0xMTMuOCAyMTIuOS0xMTMuOCAxNDEuNCAwIDI1NiAxMTQuNiAyNTYgMjU2IDAgMjkuOC01LjEgNTguNS0xNC41IDg1LjF6Il19LHlpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC10by1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1pbiJdLCJmMDkwIiwiTTM1MiA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0tOS40IDE4Mi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wyNDIuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LFltdD15aWUsWm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWRzZXQiLGljb246WzQ0OCw1MTIsW10sImY1OTAiLCJNMjI0IDY0Yy03OSAwLTE0NC43IDU3LjMtMTU3LjcgMTMyLjcgOS4zLTMgMTkuMy00LjcgMjkuNy00LjdsMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwYy01MyAwLTk2LTQzLTk2LTk2bDAtNjRDMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0bDAgMTY4LjFjMCA2Ni4zLTUzLjggMTIwLTEyMC4xIDEyMGwtODcuOS0uMS0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAwIDQwIDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0yMC45Yy0xNC4xIDguMi0zMC41IDEyLjgtNDggMTIuOGwtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwYzEwLjQgMCAyMC4zIDEuNiAyOS43IDQuNy0xMy03NS4zLTc4LjYtMTMyLjctMTU3LjctMTMyLjd6Il19LFhtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGxvdGNoIixpY29uOls1MTIsNTEyLFtdLCJmNWJjIiwiTTIwOC41IDYyLjNsMjguMS0zNi45QzI0OC44IDkuNCAyNjcuOCAwIDI4OCAwIDMxNi41IDAgMzQxLjYgMTguNyAzNDkuOCA0NmwxNy44IDU5LjRjMTAuMyAzNC40IDM2LjEgNjIgNjkuOCA3NC42bDM5LjggMTQuOWMyMC45IDcuOSAzNC44IDI3LjkgMzQuOCA1MC4yIDAgMTYuOS03LjkgMzIuOC0yMS41IDQyLjlsLTY3LjMgNTAuNWMtMjQuMyAxOC4yLTM3LjIgNDcuOS0zMy44IDc4LjFsMi41IDIyLjdjNC4zIDM4LjctMjYgNzIuNi02NSA3Mi42LTE0LjggMC0yOS4zLTUuMS00MC45LTE0LjNsLTU1LjMtNDQuM2MtNC41LTMuNi05LjMtNi43LTE0LjUtOS4yLTE1LjgtNy45LTMzLjctMTAuNC01MS03LjNMODIuNCA0NTEuOWMtMzQuNiA2LjMtNjYuNC0yMC4zLTY2LjQtNTUuNCAwLTEzLjIgNC43LTI2IDEzLjEtMzYuMmwxMS4yLTEzLjRjMTQuNi0xNy40IDIyLjYtMzkuNCAyMi42LTYyLjEgMC0xOC44LTUuNS0zNy4yLTE1LjgtNTNMOC44IDE3My41QzMuMSAxNjQuNyAwIDE1NC40IDAgMTQzLjkgMCAxMTAuNSAzMC4xIDg1LjEgNjMgOTAuN2w1MS4zIDguN2MzNS45IDYuMSA3Mi4yLTguMiA5NC4yLTM3LjF6Il19LHdpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cC1sb25nIixpY29uOlszMjAsNTEyLFsibG9uZy1hcnJvdy1hbHQtdXAiXSwiZjMwYyIsIk0xMzcuNC0yMi42YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDEyOCAxMjhjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzAwLjkgMTYwIDI4OCAxNjBsLTY0IDAgMCAzMzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzM2LTY0IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhTLjIgMTE0LjUgOS40IDEwNS40bDEyOC0xMjh6Il19LFFtdD13aWUsS210PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24tbm9kZXMiLGljb246WzQ0OCw1MTIsW10sImU2OTkiLCJNMjQ4IDEwNi42YzE4LjktOSAzMi0yOC4zIDMyLTUwLjZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMi44IDEuMy01LjUgMi45LTggNC43bC04MC4xLTQ1LjhjMS42LTIwLjgtOC42LTQxLjYtMjcuOS01Mi44QzU3LjIgOTYgMjMgMTA1LjIgNy41IDEzMlMxLjIgMTkzIDI4IDIwOC41YzEuMyAuOCAyLjYgMS41IDQgMi4xbDAgOTAuOGMtMS4zIC42LTIuNyAxLjMtNCAyLjFDMS4yIDMxOS04IDM1My4yIDcuNSAzODBTNTcuMiA0MTYgODQgNDAwLjVjMTkuMy0xMS4xIDI5LjQtMzIgMjcuOC01Mi44bDUwLjUtMjguOWMtMTEuNS0xMS4yLTE5LjktMjUuNi0yMy44LTQxLjdMODggMzA2LjFjLTIuNi0xLjgtNS4yLTMuMy04LTQuN2wwLTkwLjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtLjEgMS40LS4yIDIuOC0uMiA0LjNjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMTguOSA5LTMyIDI4LjMtMzIgNTAuNmMwIDMwLjkgMjUuMSA1NiA1NiA1NnM1Ni0yNS4xIDU2LTU2YzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4LjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtMS42IDIwLjggOC42IDQxLjYgMjcuOCA1Mi44YzI2LjggMTUuNSA2MSA2LjMgNzYuNS0yMC41czYuMy02MS0yMC41LTc2LjVjLTEuMy0uOC0yLjctMS41LTQtMi4xbDAtOTAuOGMxLjQtLjYgMi43LTEuMyA0LTIuMWMyNi44LTE1LjUgMzYtNDkuNyAyMC41LTc2LjVTMzkwLjggOTYgMzY0IDExMS41Yy0xOS4zIDExLjEtMjkuNCAzMi0yNy44IDUyLjhsLTUwLjYgMjguOWMxMS41IDExLjIgMTkuOSAyNS42IDIzLjggNDEuN0wzNjAgMjA1LjljMi42IDEuOCA1LjIgMy4zIDggNC43bDAgOTAuOGMtMi44IDEuMy01LjUgMi45LTggNC42bC04MC4xLTQ1LjhjLjEtMS40IC4yLTIuOCAuMi00LjNjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOHoiXX0sT1Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9zcGl0YWwiLGljb246WzU3Niw1MTIsWzEyNzk3Myw2MjU4OSwiaG9zcGl0YWwtYWx0IiwiaG9zcGl0YWwtd2lkZSJdLCJmMGY4IiwiTTEyOCA2NGMwLTM1LjMgMjguNy02NCA2NC02NEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDAtNjR6TTI3MiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAgOTYgMCAwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwek0xMjggMzY4bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTExMiAyNTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHpNNTEyIDM2OGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjU2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTI2NCAxMDRsMCAzMi0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LEptdD1PVixlZ3Q9T1YsdGd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oYXJhc3NpbmciLGljb246WzU3Niw1MTIsW10sImU1NDkiLCJNMTkyIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNTkuNCAzMDQuNUw4OCAyNTYuOSA4OCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDQuNyA0Ny40IDU3LjFjMTEuMyAxMy42IDMxLjUgMTUuNSA0NS4xIDQuMnMxNS41LTMxLjUgNC4yLTQ1LjFsLTczLjctODguOWMtMTguMi0yMi00NS4zLTM0LjctNzMuOS0zNC43bC0zNS45IDBjLTMzLjcgMC02NC45IDE3LjctODIuMyA0Ni42bC01OC4zIDk3Yy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45ek00ODAgMjQwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQ2NCAzNDRsMCA1OC43LTQxLjQtNDEuNGMtNy4zLTcuMy0xNy42LTEwLjYtMjcuOC05cy0xOC45IDguMS0yMy41IDE3LjNsLTQ4IDk2Yy03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsMjguMS01Ni4zIDU0LjcgNTQuN2MxMi40IDEyLjQgMjkuMSAxOS4zIDQ2LjYgMTkuMyAzNi40IDAgNjUuOS0yOS41IDY1LjktNjUuOUw1NzYgMzQ0YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2ek0yODggNDhjMCA4LjggNy4yIDE2IDE2IDE2bDU2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLS44IDQ5LjdjLTcuOS00LTE3LjUtLjctMjEuNSA3LjJzLS43IDE3LjUgNy4yIDIxLjVsNDggMjRjNy45IDQgMTcuNSAuNyAyMS41LTcuMnMuNy0xNy41LTcuMi0yMS41bC00OC0yNHoiXX0sYWd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJlbmQtdXAiLGljb246WzUxMiw1MTIsW10sImU1MjkiLCJNNDgwIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRMMzU0LjItMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDMuOSAwLTExMS4zIDExMS4zLTk1LjEtODEuNWMtOS03LjctMjIuMi03LjctMzEuMiAwbC0xMTIgOTZjLTEwLjEgOC42LTExLjIgMjMuOC0yLjYgMzMuOHMyMy44IDExLjIgMzMuOCAyLjZsOTYuNC04Mi42IDk2LjQgODIuNmM5LjUgOC4yIDIzLjcgNy42IDMyLjYtMS4zbDEyNy0xMjcgMCA0My45YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRMNDgwIDh6TTQ4IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNjBjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMjU2em00Ny4zIDU2Yy0zLjQgMjAuMS0xOS4yIDM2LTM5LjQgMzkuNC00LjQgLjctOC0yLjktOC03LjNsMC0zMmMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4LjEgMy42IDcuMyA4em0wIDE0NC4xYy43IDQuNC0yLjkgOC03LjMgOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtMzJjMC00LjQgMy42LTguMSA4LTcuMyAyMC4xIDMuNCAzNiAxOS4yIDM5LjQgMzkuNHpNNDU2IDQxNi43YzQuNC0uNyA4IDIuOSA4IDcuM2wwIDMyYzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC4xLTMuNi03LjMtOCAzLjQtMjAuMSAxOS4yLTM2IDM5LjQtMzkuNHpNNDE2LjcgMzEyYy0uNy00LjQgMi45LTggNy4zLThsMzIgMGM0LjQgMCA4IDMuNiA4IDhsMCAzMmMwIDQuNC0zLjYgOC4xLTggNy4zLTIwLjEtMy40LTM2LTE5LjItMzkuNC0zOS40ek0xOTIgMzg0YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sTWllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1ydWxlciIsaWNvbjpbNTEyLDUxMixbInBlbmNpbC1ydWxlciJdLCJmNWFlIiwiTTQwNCAwYzE5LjIgMCAzNy42IDcuNiA1MS4xIDIxLjJsMzUuNyAzNS43QzUwNC40IDcwLjQgNTEyIDg4LjggNTEyIDEwOHMtNy42IDM3LjYtMjEuMiA1MS4xTDQ0NS45IDIwNCAzMDggNjYuMSAzNTIuOSAyMS4yQzM2Ni40IDcuNiAzODQuOCAwIDQwNCAwek01OC45IDMxNS4xTDI3NC4xIDEwMCA0MTIgMjM3LjkgMTk2LjkgNDUzLjFjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTExLjFjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4ycy04LjUtMTUuMS02LjItMjMuNEwzNi40IDM1My44YzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4Ljd6TTIyNS40IDgwLjhMODAuOCAyMjUuNCAxMS43IDE1Ni4zYy0xNS42LTE1LjYtMTUuNi00MC45IDAtNTYuNmw4OC04OGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMGw1LjkgNS45LTU2LjMgNTYuM2MtNy44IDcuOC03LjggMjAuNSAwIDI4LjNzMjAuNSA3LjggMjguMyAwbDU2LjMtNTYuMyAzNC45IDM0Ljl6TTQzMS4yIDI4Ni42bDM0LjkgMzQuOS01Ni4zIDU2LjNjLTcuOCA3LjgtNy44IDIwLjUgMCAyOC4zczIwLjUgNy44IDI4LjMgMGw1Ni4zLTU2LjMgNS45IDUuOWMxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNmwtODggODhjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwbC02OS4xLTY5LjEgMTQ0LjYtMTQ0LjZ6Il19LHJndD1NaWUsaWd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcGVhdCIsaWNvbjpbNTEyLDUxMixbMTI4MjU3XSwiZjM2MyIsIk00NzAuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzM1MiAxOS4xIDM1MiAzMmwwIDMyLTE2MCAwQzg2IDY0IDAgMTUwIDAgMjU2IDAgMjczLjcgMTQuMyAyODggMzIgMjg4czMyLTE0LjMgMzItMzJjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsMTYwIDAgMCAzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0ek00MS40IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOVMxNjAgNDkyLjkgMTYwIDQ4MGwwLTMyIDE2MCAwYzEwNiAwIDE5Mi04NiAxOTItMTkyIDAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0xNjAgMCAwLTMyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC02NCA2NHoiXX0sb2d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbmUiLGljb246WzY0MCw1MTIsWzEyOTQ2MF0sImY1ZDciLCJNMTk3LjQgMTYwYy0zLjkgMC03LjItMi44LTguMS02LjYtMTAuMi00Mi4xLTQ4LjEtNzMuNC05My4zLTczLjQtNTMgMC05NiA0My05NiA5NiAwIDI5LjEgMTIuOSA1NS4xIDMzLjMgNzIuNyA0LjMgMy43IDQuMyAxMC44IDAgMTQuNS0yMC40IDE3LjYtMzMuMyA0My43LTMzLjMgNzIuNyAwIDUzIDQzIDk2IDk2IDk2IDQ1LjIgMCA4My4xLTMxLjMgOTMuMy03My40IC45LTMuOCA0LjItNi42IDguMS02LjZsMjQ1LjEgMGMzLjkgMCA3LjIgMi44IDguMSA2LjYgMTAuMiA0Mi4xIDQ4LjEgNzMuNCA5My4zIDczLjQgNTMgMCA5Ni00MyA5Ni05NiAwLTI5LjEtMTIuOS01NS4xLTMzLjMtNzIuNy00LjMtMy43LTQuMy0xMC44IDAtMTQuNSAyMC40LTE3LjYgMzMuMy00My43IDMzLjMtNzIuNyAwLTUzLTQzLTk2LTk2LTk2LTQ1LjIgMC04My4xIDMxLjMtOTMuMyA3My40LS45IDMuOC00LjIgNi42LTguMSA2LjZsLTI0NS4xIDB6Il19LHppZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWZsYW1lLWN1cnZlZCIsaWNvbjpbMzg0LDUxMixbImZpcmUtYWx0Il0sImY3ZTQiLCJNMTUzLjYgMjkuOWwxNi0yMS4zQzE3My42IDMuMiAxODAgMCAxODYuNyAwIDE5OC40IDAgMjA4IDkuNiAyMDggMjEuM2wwIDIyLjFjMCAxMy4xIDUuNCAyNS43IDE0LjkgMzQuN0wzMDcuNiAxNTlDMzU2LjQgMjA1LjYgMzg0IDI3MC4yIDM4NCAzMzcuNyAzODQgNDM0IDMwNiA1MTIgMjA5LjcgNTEyTDE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwbDAtMy44YzAtNDguOCAxOS40LTk1LjYgNTMuOS0xMzAuMWwzLjUtMy41YzQuMi00LjIgMTAtNi42IDE2LTYuNiAxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNkw5NiAyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTMuOWMwLTE4LTcuMi0zNS4zLTE5LjktNDhsLTM4LjYtMzguNmMtMjQtMjQtMzcuNS01Ni43LTM3LjUtOTAuNyAwLTI3LjcgOS01NC44IDI1LjYtNzYuOXoiXX0sc2d0PXppZSxraWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzLXNpbXBsZSIsaWNvbjpbNDQ4LDUxMixbImJ1cy1hbHQiXSwiZjU1ZSIsIk05NiAwQzQzIDAgMCA0MyAwIDk2TDAgMzg0YzAgMjkuOCAyMC40IDU0LjkgNDggNjJsMCAzNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMTkyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzRjMjcuNi03LjEgNDgtMzIuMiA0OC02MmwwLTI4OGMwLTUzLTQzLTk2LTk2LTk2TDk2IDB6TTY0IDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NnpNOTYgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjU2IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxuZ3Q9a2llLGxndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZW51cy1tYXJzIixpY29uOls2NDAsNTEyLFs5ODkyXSwiZjIyOCIsIk00ODAtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyUzQ2Mi4zIDAgNDgwIDBMNTMwLjcgMCA0NzQgNTYuN2MtMjYuMy0xNS43LTU3LjEtMjQuNy05MC0yNC43LTM1LjQgMC02OC40IDEwLjUtOTYgMjguNS0yNy42LTE4LTYwLjYtMjguNS05Ni0yOC41LTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45YzIzLjMtNC4zIDQ0LjktMTMuMSA2NC0yNS42IDI3LjYgMTggNjAuNiAyOC41IDk2IDI4LjUgOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzYgMC00MS4xLTE0LjEtNzktMzcuOC0xMDlMNTc2IDQ1LjMgNTc2IDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMNDgwLTY0ek0zMzYgMzA5LjJjMjAuMi0yOC42IDMyLTYzLjUgMzItMTAxLjJzLTExLjgtNzIuNi0zMi0xMDEuMmMxNC42LTYuOSAzMC44LTEwLjggNDgtMTAuOCA2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM0NDUuOSAzMjAgMzg0IDMyMGMtMTcuMiAwLTMzLjUtMy45LTQ4LTEwLjh6TTI4OCAxNTAuM2MxMC4yIDE2LjkgMTYgMzYuNiAxNiA1Ny43cy01LjggNDAuOS0xNiA1Ny43Yy0xMC4yLTE2LjktMTYtMzYuNi0xNi01Ny43czUuOC00MC45IDE2LTU3Ljd6bS00OC00My41Yy0yMC4yIDI4LjYtMzIgNjMuNS0zMiAxMDEuMnMxMS44IDcyLjYgMzIgMTAxLjJjLTE0LjUgNi45LTMwLjggMTAuOC00OCAxMC44LTYxLjkgMC0xMTItNTAuMS0xMTItMTEyUzEzMC4xIDk2IDE5MiA5NmMxNy4yIDAgMzMuNSAzLjkgNDggMTAuOHoiXX0sY2d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJsZW5kZXIiLGljb246WzUxMiw1MTIsW10sImY1MTciLCJNMCA1NkMwIDI1LjEgMjUuMSAwIDU2IDBMNDM3LjYgMGMyMS4zIDAgMzYuNiAyMC4zIDMwLjggNDAuOEw0NTcuMSA4MCAzNDQgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTkuNCAwLTE4LjMgNjQtODEuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjQgMC0yNy40IDk2LTI1NiAwLTkuMS05Ni02Mi45IDBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgNTZ6TTExNC4zIDE5MkwxMDAuNiA0OCA1NiA0OGMtNC40IDAtOCAzLjYtOCA4bDAgMTI4YzAgNC40IDMuNiA4IDggOGw1OC4zIDB6TTEzNiAzODRsMjQwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQwIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6bTEyMCA4OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LGRndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1IixpY29uOlszODQsNTEyLFsxMTddLCI1NSIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIyNGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4bDAtMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyMjRjMCAxMDYtODYgMTkyLTE5MiAxOTJTMCAzOTQgMCAyODhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnoiXX0sTTc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUiLGljb246WzUxMiw1MTIsWyJtYWlsLWZvcndhcmQiXSwiZjA2NCIsIk0zMDcuOCAxOC40Yy0xMiA1LTE5LjggMTYuNi0xOS44IDI5LjZsMCA4MC0xMTIgMGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCAxMTMuMyA4MS41IDE2My45IDEwMC4yIDE3NC4xIDIuNSAxLjQgNS4zIDEuOSA4LjEgMS45IDEwLjkgMCAxOS43LTguOSAxOS43LTE5LjcgMC03LjUtNC4zLTE0LjQtOS44LTE5LjUtOS40LTguOC0yMi4yLTI2LjQtMjIuMi01Ni43IDAtNTMgNDMtOTYgOTYtOTZsOTYgMCAwIDgwYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02Ljl6Il19LGZndD1NNyxTaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUtZmxpcCIsaWNvbjpbNTEyLDUxMixbMTI4MzgxLCJwaG9uZS1hbHQiXSwiZjg3OSIsIk0zNTEuOCAyNWM3LjgtMTguOCAyOC40LTI4LjkgNDguMS0yMy41bDUuNSAxLjVjNjQuNiAxNy42IDExOS44IDgwLjIgMTAzLjcgMTU2LjQtMzcuMSAxNzUtMTc0LjggMzEyLjctMzQ5LjggMzQ5LjgtNzYuMyAxNi4yLTEzOC44LTM5LjEtMTU2LjQtMTAzLjdsLTEuNS01LjVjLTUuNC0xOS43IDQuNy00MC4zIDIzLjUtNDguMWw5Ny4zLTQwLjVjMTYuNS02LjkgMzUuNi0yLjEgNDcgMTEuOGwzOC42IDQ3LjJjNzAuMy0zNC45IDEyNi44LTkzLjMgMTU5LjMtMTY0LjlsLTQ0LjEtMzYuMWMtMTMuOS0xMS4zLTE4LjYtMzAuNC0xMS44LTQ3TDM1MS44IDI1eiJdfSx1Z3Q9U2llLHBndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQtcG9ydGFibGUiLGljb246WzMyMCw1MTIsW10sImU1ODMiLCJNMCA2NGwwIDE2IDMyMCAwIDAtMTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMEMyOC43IDAgMCAyOC43IDAgNjR6bTI0IDY0TDAgMTI4IDAgNDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04IDIyNCAwIDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzYwLTI5NiAwem0yMjQgOTZsMjQgMCAwIDk2LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LGhndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcHJlZ25hbnQiLGljb246WzM4NCw1MTIsW10sImUzMWUiLCJNMTkyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem04MCAzMjEuMmM4LjYtNC41IDE2LjgtMTAgMjQuMy0xNi41bDQtMy40YzIyLjYtMTkuNCAzNS43LTQ3LjcgMzUuNy03Ny42IDAtMzUuOS0xOC44LTY5LjEtNDkuNi04Ny42bC0zMC40LTE4LjIgMC0xLjhjMC00Ni41LTM3LjctODQuMS04NC4xLTg0LjEtMjguMSAwLTU0LjQgMTQuMS03MCAzNy41TDIxLjQgMjcwLjJjLTkuOCAxNC43LTUuOCAzNC42IDguOSA0NC40czM0LjYgNS44IDQ0LjQtOC45bDI5LTQzLjUtMzAuNSAxMTMuNWMtMi42IDkuNi0uNiAxOS45IDUuNSAyNy44Uzk0IDQxNiAxMDQgNDE2bDggMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMC44eiJdfSxtZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVzcy10aGFuIixpY29uOls1MTIsNTEyLFs2Mjc3NF0sIjNjIiwiTTQ3Ny4xIDUwLjZjNy40IDE2IC40IDM1LjEtMTUuNiA0Mi41TDEwOC40IDI1NiA0NjEuNCA0MTljMTYgNy40IDIzIDI2LjQgMTUuNiA0Mi41cy0yNi40IDIzLTQyLjUgMTUuNmwtNDE2LTE5MkM3LjMgMjc5LjggMCAyNjguNSAwIDI1NlM3LjMgMjMyLjIgMTguNiAyMjdsNDE2LTE5MmMxNi03LjQgMzUuMS0uNCA0Mi41IDE1LjZ6Il19LGdndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdXBlcnNjcmlwdCIsaWNvbjpbNTc2LDUxMixbXSwiZjEyYiIsIk01NDQgMzJjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRsLTMyIDE2QzQ0OS45IDI3LjMgNDQzLjUgNDYuNSA0NTEuNCA2Mi4zIDQ1NyA3My41IDQ2OC4zIDgwIDQ4MCA4MGwwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMjh6TTk2IDY0Qzc4LjMgNjQgNjQgNzguMyA2NCA5NnMxNC4zIDMyIDMyIDMybDE1LjMgMCA4OS42IDEyOC04OS42IDEyOC0xNS4zIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMxMC40IDAgMjAuMi01LjEgMjYuMi0xMy42TDI0MCAzMTEuOCAzMjUuOCA0MzQuNGM2IDguNiAxNS44IDEzLjYgMjYuMiAxMy42bDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1LjMgMC04OS42LTEyOCA4OS42LTEyOCAxNS4zIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTEwLjQgMC0yMC4yIDUuMS0yNi4yIDEzLjZMMjQwIDIwMC4yIDE1NC4yIDc3LjZDMTQ4LjIgNjkuMSAxMzguNCA2NCAxMjggNjRMOTYgNjR6Il19LENpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtc3RvcCIsaWNvbjpbNTEyLDUxMixbNjIwOTQsInN0b3AtY2lyY2xlIl0sImYyOGQiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAxNjBsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0seGd0PUNpZSxMaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXVwLWRvd24iLGljb246WzI1Niw1MTIsWyJhcnJvd3MtdiJdLCJmMDdkIiwiTTE1MC42LTIyLjZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiA3Ny4zIDk2IDQzNC43IDU0LjYgMzkzLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzYgNiAxNC4xIDkuNCAyMi42IDkuNHMxNi42LTMuNCAyMi42LTkuNGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNDEuNCA0MS40IDAtMzU3LjUgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2eiJdfSxiZ3Q9TGllLFRpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb28tc3Rvcm0iLGljb246WzUxMiw1MTIsWyJwb28tYm9sdCJdLCJmNzVhIiwiTTI2OC45LTMxLjhjLTUuNS0uNy0xMSAxLjQtMTQuNSA1LjdzLTQuNiAxMC4xLTIuOCAxNS4zYzIuOCA4LjIgNC4zIDE2LjkgNC4zIDI2LjEgMCAyMS43LTguNSAzNy4yLTIxLjkgNDcuNi0xMy45IDEwLjgtMzQuMSAxNy01OC4xIDE3bC0yNCAwYy00OC42IDAtODggMzkuNC04OCA4OCAwIDE0LjggMy43IDI4LjggMTAuMiA0MS4xLTQyIDYuNi03NC4yIDQzLTc0LjIgODYuOSAwIDQ2LjYgMzYuMiA4NC43IDgxLjkgODcuOCAzLjEtMTIuNCA5LjktMjMuOCAxOS42LTMyLjVMMjQyLjcgMjI1YzEyLjItMTAuOSAyOC0xNyA0NC40LTE3IDQ0LjYgMCA3Ni41IDQzIDYzLjcgODUuN2wtMTIuNyA0Mi40YzI4LjggMS4yIDUyLjcgMjEuMSA1OS44IDQ3LjlsMjYuMiAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4IDAtNDMuOS0zMi4xLTgwLjMtNzQuMi04Ni45IDYuNS0xMi4zIDEwLjItMjYuMiAxMC4yLTQxLjEgMC00OC42LTM5LjQtODgtODgtODhsLTkuNCAwYy45LTUuNCAxLjQtMTAuOSAxLjQtMTYuNiAwLTQ4LjctMzYuMS04OC45LTgzLjEtOTUuMnpNMTQ0LjYgNDE2bDYxLjggMC0zMS4yIDEwNC4xYy0zLjYgMTEuOSA1LjMgMjMuOSAxNy44IDIzLjkgNC42IDAgOS0xLjcgMTIuNC00LjdMMzQ2LjUgNDEyLjljMy41LTMuMSA1LjUtNy42IDUuNS0xMi40IDAtOS4yLTcuNC0xNi42LTE2LjYtMTYuNmwtNjEuOCAwIDMxLjItMTA0LjFjMy42LTExLjktNS4zLTIzLjktMTcuOC0yMy45LTQuNiAwLTkgMS43LTEyLjQgNC43TDEzMy41IDM4Ny4xYy0zLjUgMy4xLTUuNSA3LjYtNS41IDEyLjQgMCA5LjIgNy40IDE2LjYgMTYuNiAxNi42eiJdfSx2Z3Q9VGllLHlndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWRlby1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjRlMiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNTMtMTUzIDAtMjIyLjJjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTI5LjggNjQgNDEtMjQuOXpNMzIgMTI4bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzcuOCAwIDE1LjMtMS40IDIyLjItNEwzNiAxMDUuOGMtMi42IDYuOS00IDE0LjQtNCAyMi4yek00NjQgMzM2bDczLjUgNTguOGM0LjIgMy40IDkuNCA1LjIgMTQuOCA1LjIgMTMuMSAwIDIzLjctMTAuNiAyMy43LTIzLjdsMC0yNDAuNmMwLTEzLjEtMTAuNi0yMy43LTIzLjctMjMuNy01LjQgMC0xMC42IDEuOC0xNC44IDUuMkw0NjQgMTc2IDQ2NCAzMzZ6Il19LEJWPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS14bWFyayIsaWNvbjpbNDQ4LDUxMixbMTAwNjIsInRpbWVzLXNxdWFyZSIsInhtYXJrLXNxdWFyZSJdLCJmMmQzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTcxIDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sd2d0PUJWLE1ndD1CVixfaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWRyb3BsZXQiLGljb246WzU3Niw1MTIsWyJoYW5kLWhvbGRpbmctd2F0ZXIiXSwiZjRjMSIsIk0yNzUuNSA2LjZMMjA5LjIgMTAzQzE5OCAxMTkuMyAxOTIgMTM4LjYgMTkyIDE1OC4zbDAgMS43YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xLjdjMC0xOS44LTYtMzktMTcuMi01NS4zTDMwMC41IDYuNkMyOTcuNyAyLjUgMjkzIDAgMjg4IDBzLTkuNyAyLjUtMTIuNSA2LjZ6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSx6Z3Q9X2llLFJWPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Indvbi1zaWduIixpY29uOls1MTIsNTEyLFs4MzYxLCJrcnciLCJ3b24iXSwiZjE1OSIsIk02Mi40IDUzLjlDNTYuOCAzNy4xIDM4LjcgMjguMSAyMS45IDMzLjZTLTMuOSA1Ny40IDEuNyA3NC4xTDU2LjkgMjQwIDMyIDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MC45IDAgNTYuNyAxNzAuMWM0LjUgMTMuNSAxNy40IDIyLjQgMzEuNiAyMS45czI2LjQtMTAuNCAyOS44LTI0LjJMMjMzIDI4OCAyNzkgMjg4IDMyMSA0NTUuOGMzLjQgMTMuOCAxNS42IDIzLjcgMjkuOCAyNC4yczI3LjEtOC40IDMxLjYtMjEuOUw0MzkuMSAyODggNDgwIDI4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQuOSAwIDU1LjMtMTY1LjljNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJsLTYyIDE4Ni4xLTU0LjYgMC00NS45LTE4My44QzI4My41IDQyIDI3MC43IDMyIDI1NiAzMnMtMjcuNSAxMC0zMSAyNC4yTDE3OSAyNDAgMTI0LjQgMjQwIDYyLjQgNTMuOXptNzggMjM0LjFsMjYuNiAwLTExLjQgNDUuNi0xNS4yLTQ1LjZ6TTI0NSAyNDBsMTEtNDQuMSAxMSA0NC4xLTIyIDB6bTEwMCA0OGwyNi42IDAtMTUuMiA0NS42LTExLjQtNDUuNnoiXX0sa2d0PVJWLFNndD1SVixDZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib2JqZWN0LXVuZ3JvdXAiLGljb246WzY0MCw1MTIsW10sImYyNDgiLCJNMzIgMTE5LjRDMTIuOSAxMDguNCAwIDg3LjcgMCA2NCAwIDI4LjcgMjguNyAwIDY0IDAgODcuNyAwIDEwOC40IDEyLjkgMTE5LjQgMzJsMjA5LjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDExMy4xYzE5LjEgMTEuMSAzMiAzMS43IDMyIDU1LjQgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTExMy4xek0xMTkuNCA5NmMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40bDAgMTEzLjFjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDIwOS4xIDBjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40bDAtMTEzLjFjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNEwxMTkuNCA5NnpNNTQ0IDI3OS40Yy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRsLTI5LjIgMGMtNS4zLTE3LjctMTQuOC0zMy41LTI3LjQtNDYuNGwwLTE3LjYgNTYuNiAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTIwOS4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjQuNiA2NCAwIDAgMjQuNmM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjA5LjEgMGM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRsMC0xMTMuMXoiXX0sTGd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQiLGljb246WzUxMiw1MTIsWzEyODQ4OSw2MTY2OV0sImYwNzUiLCJNNTEyIDI0MGMwIDEzMi41LTExNC42IDI0MC0yNTYgMjQwLTM3LjEgMC03Mi4zLTcuNC0xMDQuMS0yMC43TDMzLjUgNTEwLjFjLTkuNCA0LTIwLjIgMS43LTI3LjEtNS44Uy0yIDQ4NS44IDIuOCA0NzYuOGw0OC44LTkyLjJDMTkuMiAzNDQuMyAwIDI5NC4zIDAgMjQwIDAgMTA3LjUgMTE0LjYgMCAyNTYgMFM1MTIgMTA3LjUgNTEyIDI0MHoiXX0sVGd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpbGwtYXZhbGFuY2hlIixpY29uOls1NzYsNTEyLFtdLCJlNTA3IiwiTTQ0MC4xIDQwMS45YzM0LjIgMjMuMSA4MS4xIDE5LjUgMTExLjQtMTAuOCAzNC40LTM0LjQgMzQuNC05MC4xIDAtMTI0LjUtMjcuOC0yNy44LTY5LjUtMzMuMS0xMDIuNi0xNi0xMS44IDYuMS0xNi40IDIwLjYtMTAuMyAzMi4zczIwLjYgMTYuNCAzMi4zIDEwLjNjMTUuMS03LjggMzQtNS4zIDQ2LjYgNy4zIDE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42cy00MC45IDE1LjYtNTYuNiAwbC04MS43LTgxLjdjMjIuMy0xNC4yIDM3LjEtMzkuMSAzNy4xLTY3LjUgMC0zMy45LTIxLjEtNjIuOS01MC45LTc0LjUgMS45LTYuOCAyLjktMTQgMi45LTIxLjUgMC00NC4yLTM1LjgtODAtODAtODAtMjcuMyAwLTUxLjUgMTMuNy02NS45IDM0LjYtNS44LTIwLTI0LjItMzQuNi00Ni4xLTM0LjYtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA0IC41IDcuOSAxLjQgMTEuNkw0NDAuMSA0MDEuOXpNNDgwLjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMCAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek02OC43IDg3QzQzLjUgNjEuOCAuNCA3OS43IC40IDExNS4zTC40IDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMTYuNyAwYzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zTDY4LjcgODd6Il19LF9ndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdG8tZXllIixpY29uOls2NDAsNTEyLFtdLCJlNGJmIiwiTTE3NiA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDM4LjEtNjMtNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUzIxLjcgNTUuNiAzMSA2NWw2MyA2My0zOC4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTk2em0wIDQwMGwwLTk2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDM4LjEgMC02MyA2M2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDYzLTYzIDAgMzguMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0em0zMTIgMjRjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0zOC4xIDYzIDYzYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjMtNjMgMzguMSAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0ek00NjQgNTZsMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zOC4xIDAgNjMtNjNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNjMgNjMgMC0zOC4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0ek0zMjAgMTIwYy01Ny4zIDAtOTkuNCAzNC0xMjUuNiA2NC4zLTIwIDIzLjEtMzIuNCA0NS44LTM3LjYgNTYuMS0yLjUgNS00LjkgOS43LTQuOSAxNS42czIuMyAxMC42IDQuOSAxNS42YzUuMiAxMC4zIDE3LjYgMzMgMzcuNiA1Ni4xIDI2LjIgMzAuMyA2OC4yIDY0LjMgMTI1LjYgNjQuM3M5OS40LTM0IDEyNS42LTY0LjNjMjAtMjMuMSAzMi40LTQ1LjggMzcuNi01Ni4xIDIuNS01IDQuOS05LjcgNC45LTE1LjZzLTIuMy0xMC42LTQuOS0xNS42Yy01LjItMTAuMy0xNy42LTMzLTM3LjYtNTYuMS0yNi4yLTMwLjMtNjguMi02NC4zLTEyNS42LTY0LjN6TTI1NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSxBZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic25vd3Bsb3ciLGljb246WzY0MCw1MTIsW10sImY3ZDIiLCJNMTI4IDE2MGwwLTk2YzAtMzUuMyAyOC43LTY0IDY0LTY0TDI5Ni40IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsODcuNiAxNzUuMWM0LjQgOC45IDYuOCAxOC43IDYuOCAyOC42bDAgNTYuOSA4MCAwIDAtODBjMC00OC42IDM5LjQtODggODgtODggMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgMjA4YzAgMjIuMSAxNy45IDQwIDQwIDQwIDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy00OC42IDAtODgtMzkuNC04OC04OGwwLTgwLTYzIDBjOS41IDE2LjUgMTUgMzUuNiAxNSA1NiAwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMjI0IDBjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyIDAtMzAuNSAxMi4yLTU4LjIgMzItNzguNEw2NCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6bTkxLjcgMzQuOWw0My42IDI5LjEgMTEzLjIgMC04MC0xNjAtMTA0LjQgMCAwIDEwOC44IDI3LjcgMjIuMXpNNDE2IDQwMGMwLTI2LjUtMjEuNS00OC00OC00OGwtMjI0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6bS0yODAgMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yMTYtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yMzIgNDAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LCRndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1nYW50dCIsaWNvbjpbNTEyLDUxMixbXSwiZTBlNCIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQwMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MDAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCA0MTZjLTguOCAwLTE2LTcuMi0xNi0xNkw2NCA2NHptOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwem02NCAxMTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwek0zODQgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6Il19LEFpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWRlbyIsaWNvbjpbNTc2LDUxMixbInZpZGVvLWNhbWVyYSJdLCJmMDNkIiwiTTk2IDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw5NiA2NHpNNDY0IDMzNmw3My41IDU4LjhjNC4yIDMuNCA5LjQgNS4yIDE0LjggNS4yIDEzLjEgMCAyMy43LTEwLjYgMjMuNy0yMy43bDAtMjQwLjZjMC0xMy4xLTEwLjYtMjMuNy0yMy43LTIzLjctNS40IDAtMTAuNiAxLjgtMTQuOCA1LjJMNDY0IDE3NiA0NjQgMzM2eiJdfSxEZ3Q9QWllLEVndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1wYXduIixpY29uOlszODQsNTEyLFs5ODIzXSwiZjQ0MyIsIk0xOTItMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAyNy04LjkgNTEuOS0yNCA3MiAxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTAuNyAwIDI2LjcgMTYwIDU2LjIgNzAuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUw1MS41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMODAgMzg0IDEwNi43IDIyNCA5NiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjLTE1LjEtMjAuMS0yNC00NS0yNC03MiAwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHoiXX0sTmd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN5bmFnb2d1ZSIsaWNvbjpbNTc2LDUxMixbMTI4MzMzXSwiZjY5YiIsIk0xNiA4MGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgMzItMTI4IDAgMC0zMnptMCAzNjhsMC0yODggMTI4IDAgMTI2LjItODQuMmMxMC43LTcuMiAyNC44LTcuMiAzNS41IDBsMTI2LjIgODQuMiAxMjggMCAwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0ek01NjAgMTEybC0xMjggMCAwLTMyYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMnpNMjI0IDM4NGwwIDgwIDEyOCAwIDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjR6bTY0LTE1MmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LFBndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU0ZDIiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sSWd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXBsdXMiLGljb246WzQ0OCw1MTIsW10sImYyNzEiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sJGllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWVsY2hhaXItbW92ZSIsaWNvbjpbNDQ4LDUxMixbIndoZWVsY2hhaXItYWx0Il0sImUyY2UiLCJNMzEyIDU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMjA1LjQgMTI0LjFjLTYuNC01LjItMTUuNi00LjctMjEuNCAxLjFsLTMzLjQgMzMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTM4LjggODBjMjktMjkgNzUuMi0zMS40IDEwNy01LjVsODEuMyA2NmMyMS40IDE3LjQgMjMuOCA0OS4yIDUuMiA2OS41bC00MS44IDQ2IDk4IDBjMzAuMyAwIDUzIDI3LjcgNDcuMSA1Ny40TDQwNy40IDQ1NC4zYy0zLjUgMTcuMy0yMC4zIDI4LjYtMzcuNyAyNS4xcy0yOC42LTIwLjMtMjUuMS0zNy43TDM2OSAzMjAgMzE2LjggMzIwYzIuMSAxMC4zIDMuMiAyMSAzLjIgMzIgMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0NDAuNCAwIDM1MiA3MS42IDE5MiAxNjAgMTkyYzYgMCAxMS45IC4zIDE3LjggMWw1MC40LTUwLjQtMjIuNy0xOC41ek0xNjAgNDQ4YTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyeiJdfSxGZ3Q9JGllLE9ndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZjUwNSIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDAgMC0yNDAgMTIwIDEyMCAwIDEgMCAwIDI0MHptLTI5LjcgNTZDOTUuOCAzMDQgMTYgMzgzLjggMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMjUxLjUgMEMyNjEgNDY5LjQgMjQwIDQxNC41IDI0MCAzNTYuNGwwLTMxLjFjMC03LjMgMS0xNC41IDIuOS0yMS4zbC00OC42IDB6bTI1MSAxODQuNWwtMTMuMyA2LjMgMC0xODguMSA5NiAzMiAwIDE5LjZjMCA1NS44LTMyLjIgMTA2LjUtODIuNyAxMzAuM3pNNDIxLjkgMjU5LjVsLTExMiAzNy4zYy0xMy4xIDQuNC0yMS45IDE2LjYtMjEuOSAzMC40bDAgMzEuMWMwIDc0LjQgNDMgMTQyLjEgMTEwLjIgMTczLjdsMTguNSA4LjdjNC44IDIuMiAxMCAzLjQgMTUuMiAzLjRzMTAuNS0xLjIgMTUuMi0zLjRsMTguNS04LjdDNTMzIDUwMC4zIDU3NiA0MzIuNiA1NzYgMzU4LjJsMC0zMS4xYzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC0xMTItMzcuM2MtNi42LTIuMi0xMy43LTIuMi0yMC4yIDB6Il19LEJndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib2xkIixpY29uOlszODQsNTEyLFtdLCJmMDMyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NmwzMiAwIDAgMzIwLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC00Ni41LTI0LjgtODcuMy02Mi0xMDkuNyAxOC43LTIyLjMgMzAtNTEgMzAtODIuMyAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEwzMiAzMnpNMjg4IDE2MGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMCAwLTEyOCA5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0ek0xMjggNDE2bDAtMTI4IDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC0xMjggMHoiXX0sRGllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LXB1bHNlIixpY29uOls1MTIsNTEyLFsiaGVhcnRiZWF0Il0sImYyMWUiLCJNMjU2IDEwNy45TDI0MSA4Ny4xQzIxNiA1Mi41IDE3NS45IDMyIDEzMy4xIDMyIDU5LjYgMzIgMCA5MS42IDAgMTY1LjFsMCAyLjZjMCAyMy42IDYuMiA0OCAxNi42IDcyLjNsMTA2IDBjMy4yIDAgNi4xLTEuOSA3LjQtNC45bDMxLjgtNzYuM2MzLjctOC44IDEyLjMtMTQuNiAyMS44LTE0LjhzMTguMyA1LjQgMjIuMiAxNC4xbDUxLjMgMTEzLjkgNDEuNC04Mi44YzQuMS04LjEgMTIuNC0xMy4zIDIxLjUtMTMuM3MxNy40IDUuMSAyMS41IDEzLjNsMjMuMiA0Ni4zYzEuNCAyLjcgNC4xIDQuNCA3LjIgNC40bDEyMy42IDBjMTAuNS0yNC4zIDE2LjYtNDguNyAxNi42LTcyLjNsMC0yLjZDNTEyIDkxLjYgNDUyLjQgMzIgMzc4LjkgMzIgMzM2LjIgMzIgMjk2IDUyLjUgMjcxIDg3LjFsLTE1IDIwLjd6TTQ2OS42IDI4OGwtOTcuOCAwYy0yMS4yIDAtNDAuNi0xMi01MC4xLTMxbC0xLjctMy40LTQyLjUgODUuMWMtNC4xIDguMy0xMi43IDEzLjUtMjIgMTMuM3MtMTcuNi01LjctMjEuNC0xNC4xbC00OS4zLTEwOS41LTEwLjUgMjUuMmMtOC43IDIwLjktMjkuMSAzNC41LTUxLjcgMzQuNWwtODAuMiAwYzQ3LjIgNzMuOCAxMjMgMTQxLjcgMTcwLjQgMTc3LjkgMTIuNCA5LjQgMjcuNiAxNC4xIDQzLjEgMTQuMXMzMC44LTQuNiA0My4xLTE0LjFDMzQ2LjYgNDI5LjcgNDIyLjQgMzYxLjggNDY5LjYgMjg4eiJdfSxSZ3Q9RGllLEVpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcm9vdC12YXJpYWJsZSIsaWNvbjpbNTc2LDUxMixbInNxdWFyZS1yb290LWFsdCJdLCJmNjk4IiwiTTI4Mi42IDc4LjFjOC0yNy4zIDMzLTQ2LjEgNjEuNC00Ni4xbDIwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDM0NCA5NiAyMzguNyA0NTdjLTMuNiAxMi4zLTE0LjEgMjEuMi0yNi44IDIyLjhzLTI1LjEtNC42LTMxLjUtMTUuNkw3Ny42IDI4OCAzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDUuNiAwYzIyLjggMCA0My44IDEyLjEgNTUuMyAzMS44bDY1LjIgMTExLjggODQuNC0yODkuNXpNMzkzLjQgMjMzLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDEuNCA0MS40IDQxLjQtNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC00MS40IDQxLjQgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC00MS40LTQxLjQtNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w0MS40LTQxLjQtNDEuNC00MS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3oiXX0sSGd0PUVpZSxOaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYnViYmxlcyIsaWNvbjpbNTEyLDUxMixbImhhbmRzLXdhc2giXSwiZTA1ZSIsIk0zODQgNjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em05NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xMjggNDY0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTAgMTYwbC4xIDcyLjZjMCA0NC44IDE3LjYgODcuMSA0Ny45IDExOC40IC4zLTc3IDQwLjEtMTQ4LjQgMTA1LjQtMTg5LjNsMS45LTEuMmMtMi41LTMuNy0yLjgtOC42LS40LTEyLjdsNjItMTA3LjRjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhTMTgyIDUgMTc1LjQgMTYuNWwtNjggMTE3LjggMCAwIDAgMC00My4zIDc1IDAtNDkuM2MwLTE3LjctMTQuNC0zMi0zMi0zMlMwIDE0Mi40IDAgMTYwem0yMTMuNi0zNS45YzE0LjEtOC44IDI5LjgtMTIuNyA0NS4yLTEyLjFsMzYuNS02My4zYzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOGwtNjcuMSAxMTYuMiAyNy0xNi45em04Ni41LTM1LjdsLTE2LjQgMjguNGMxNS4xIDUuNSAyOC42IDE1LjYgMzguMyAyOS43bDE5LjctMzQuMmM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4Ljh6bTQ2LjQgNjMuN2wtMTIuNSAyMS43YzIgOC42IDIuNSAxNy41IDEuNyAyNi4xbDQuMyAwIDAgMCAzNC40IDAgMTMuNy0yMy44YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHpNMjgzLjEgMTc1Yy05LjQtMTUtMjkuMS0xOS41LTQ0LjEtMTAuMmwtNjAuMiAzNy42QzEyNy4zIDIzNC43IDk2IDI5MS4yIDk2IDM1MmwwIDhjMCA4LjkgLjggMTcuNiAyLjIgMjYuMSAzNS40IDguMiA2MS44IDQwIDYxLjggNzcuOSAwIDYuMy0uNyAxMi41LTIuMSAxOC40IDI1LjIgMTguNiA1Ni40IDI5LjYgOTAuMSAyOS42bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05MiAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDEyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMjQgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxNTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTU2IDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEzNiAwIDAgMCAwIDAtOTMuMiAwIDQ2LjItMjguOWMxNS05LjQgMTkuNS0yOS4xIDEwLjItNDQuMXoiXX0scWd0PU5pZSxWZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFya2VyIixpY29uOls1MTIsNTEyLFtdLCJmNWExIiwiTTQwOC44IDBjLTI3LjQgMC01My42IDEwLjktNzMgMzAuMkwzMTguMSA0OCAzMDUgMzQuOWMtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwTDEwMyAxMzVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwyMzcuMSA2OC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI4NC4xIDgxLjkgMTg0IDE4Mi4xIDMyOS45IDMyOCA0ODEuOCAxNzYuMmMxOS40LTE5LjQgMzAuMi00NS42IDMwLjItNzMgMC01Ny00Ni4yLTEwMy4yLTEwMy4yLTEwMy4yek0xMDIuNCAyNjMuN2MtNDkuOSA0OS45LTgzLjMgMTE0LTk1LjUgMTgzLjVMLjQgNDgzLjhDLTEgNDkxLjYgMS41IDQ5OS40IDcgNTA1czEzLjQgOCAyMS4xIDYuN2wzNi43LTYuNWM2OS41LTEyLjMgMTMzLjYtNDUuNiAxODMuNS05NS41TDI5NiAzNjEuOSAxNTAuMSAyMTYgMTAyLjQgMjYzLjd6Il19LFVndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQiLGljb246WzM4NCw1MTIsWzEyODIwM10sImYzMjgiLCJNMzIwIDMybC04LjYgMEMzMDAuNCAxMi45IDI3OS43IDAgMjU2IDBMMTI4IDBDMTA0LjMgMCA4My42IDEyLjkgNzIuNiAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xMzYgMTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMTIgMHoiXX0samd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYWNlLW9mLXdvcnNoaXAiLGljb246WzUxMiw1MTIsW10sImY2N2YiLCJNMTYwIDc5bDAgODEtNDQuOCAzMy42QzEwMy4xIDIwMi43IDk2IDIxNi45IDk2IDIzMmwwIDQwLTYwLjYgMzAuM0MxMy43IDMxMy4yIDAgMzM1LjMgMCAzNTkuNkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCA3NC43IDAgODUuNCAwIDMyMCAwbDY0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC04OC40YzAtMjQuMi0xMy43LTQ2LjQtMzUuNC01Ny4yTDQxNiAyNzIgNDE2IDIzMmMwLTE1LjEtNy4xLTI5LjMtMTkuMi0zOC40TDM1MiAxNjAgMzUyIDc5YzAtOS41LTQuMi0xOC41LTExLjUtMjQuNkwyNzEuNC0zLjJjLTguOS03LjQtMjEuOC03LjQtMzAuNyAwTDE3MS41IDU0LjRDMTY0LjIgNjAuNSAxNjAgNjkuNSAxNjAgNzl6bTk2IDI0MWMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDgwLTEyOCAwIDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LFdndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW5uYWJpcyIsaWNvbjpbNTEyLDUxMixbXSwiZjU1ZiIsIk0yNTYgMGM1LjMgMCAxMC4zIDIuNyAxMy4zIDcuMSAxNS44IDIzLjUgMzYuNyA2My43IDQ5LjIgMTA5IDcuMyAyNi40IDExLjggNTUuMyAxMC4zIDg0IDExLjYtOC45IDIzLjctMTYuNyAzNS45LTIzLjcgNDEtMjMuMyA4NC40LTM2LjkgMTEyLjItNDIuNSA1LjItMSAxMC43IC42IDE0LjQgNC40czUuNCA5LjIgNC40IDE0LjVjLTUuNiAyNy43LTE5LjMgNzAuOS00Mi43IDExMS43LTkuMSAxNS45LTE5LjkgMzEuNy0zMi41IDQ2LjMgMjcuOSA2LjYgNTIuNSAxNy4yIDY3LjMgMjUuNCA1LjEgMi44IDguMiA4LjIgOC4yIDE0cy0zLjIgMTEuMi04LjIgMTRjLTE1LjIgOC40LTQwLjkgMTkuNS02OS44IDI2LjEtMjAuMiA0LjYtNDIuOSA3LjItNjUuMiA0LjZsOC4zIDMzLjJjMS41IDYuMS0uNiAxMi41LTUuNSAxNi40cy0xMS42IDQuNi0xNy4yIDEuOEwyODAgNDE3LjIgMjgwIDQ4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTcwLjgtNTguNSAyOS4xYy01LjYgMi44LTEyLjMgMi4xLTE3LjItMS44cy03LTEwLjMtNS41LTE2LjRsOC4zLTMzLjJjLTIyLjIgMi42LTQ1IDAtNjUuMi00LjYtMjguOS02LjYtNTQuNS0xNy42LTY5LjgtMjYuMS01LjEtMi44LTguMi04LjItOC4yLTE0czMuMi0xMS4yIDguMi0xNGw2LjItMy4zYzE1LTcuNiAzNi44LTE2LjQgNjEuMS0yMi4yLTEyLjUtMTQuNS0yMy4zLTMwLjQtMzIuNC00Ni4yLTIzLjQtNDAuOC0zNy4xLTg0LTQyLjctMTExLjctMS4xLTUuMiAuNi0xMC43IDQuNC0xNC41czkuMi01LjQgMTQuNC00LjRjMjcuOSA1LjUgNzEuMiAxOS4yIDExMi4yIDQyLjUgMTIuMiA2LjkgMjQuMyAxNC44IDM1LjggMjMuNy0xLjQtMjguNyAzLjEtNTcuNiAxMC4zLTg0IDEyLjUtNDUuMyAzMy40LTg1LjUgNDkuMi0xMDlsMS4yLTEuNkMyNDYuOSAyIDI1MS4zIDAgMjU2IDB6Il19LEdndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtcm9vZiIsaWNvbjpbNTc2LDUxMixbXSwiZTUzNyIsIk0zMDIuMy0xMi42Yy05LTQuNS0xOS42LTQuNS0yOC42IDBsLTI1NiAxMjhDMS45IDEyMy4zLTQuNSAxNDIuNSAzLjQgMTU4LjNzMjcuMSAyMi4yIDQyLjkgMTQuM0wyODggNTEuOCA1MjkuNyAxNzIuNmMxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlsLTI1Ni0xMjh6TTI4OCAyNzJhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTAgNDhjLTUzIDAtOTYgNDMtOTYgOTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtNTMtNDMtOTYtOTYtOTZ6TTE2MCAyNTZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptMzUyIDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMTEyIDMzNmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAzMy4xYzAgMTcgMTMuOCAzMC45IDMwLjkgMzAuOWw4Ny44IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtNDhjMC0xOC40IDMuNS0zNiA5LjgtNTIuMi0xMi4yLTcuNS0yNi41LTExLjgtNDEuOC0xMS44ek00MjUuNCA0ODBsODcuOCAwYzE3IDAgMzAuOS0xMy44IDMwLjktMzAuOWwwLTMzLjFjMC00NC4yLTM1LjgtODAtODAtODAtMTUuMyAwLTI5LjYgNC4zLTQxLjggMTEuOCA2LjMgMTYuMiA5LjggMzMuOCA5LjggNTIuMmwwIDQ4YzAgMTEuNC0yLjQgMjIuMi02LjcgMzJ6Il19LFlndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaXNlYXNlIixpY29uOls1MTIsNTEyLFtdLCJmN2ZhIiwiTTIzNi41IDI5LjRMMjI0IDQ4Yy0yMCAzMC01My42IDQ4LTg5LjcgNDhMNjggOTZjLTM3LjUgMC02Ny45IDMwLjQtNjcuOSA2Ny45IDAgMTggNy4yIDM1LjIgMTkuOSA0Ny45bDI3IDI3YzExIDExIDE3LjIgMjUuOSAxNy4yIDQxLjUgMCAxNS44LTYuNCAzMC45LTE3LjcgNDJMMzMuNCAzMzUuMWMtMTEuMSAxMC44LTE3LjMgMjUuNy0xNy4zIDQxLjIgMCAzNi44IDM0LjEgNjQuMiA3MC4xIDU2LjJsNjIuMy0xMy44YzcuNy0xLjcgMTUuNy0yLjYgMjMuNi0yLjYgMzIuOCAwIDY0LjIgMTQuNiA4NS4yIDM5LjhsMzAuNSAzNi42YzEwLjQgMTIuNCAyNS43IDE5LjYgNDEuOSAxOS42IDMwLjEgMCA1NC41LTI0LjQgNTQuNS01NC41bDAtNTEuMmMwLTQxLjQgMjUuNC03OC41IDY0LTkzLjVsMjIuMi04LjZjMjUuMi05LjggNDEuOC0zNC4xIDQxLjgtNjEuMSAwLTI2LjQtMTUuOS01MC4zLTQwLjMtNjAuNUw0MjkgMTY0LjhjLTMzLjItMTMuOS01Ny42LTQzLTY1LjUtNzguMWwtNy45LTM1LjJjLTYuOC0zMC4xLTMzLjUtNTEuNS02NC4zLTUxLjUtMjIgMC00Mi42IDExLTU0LjggMjkuNHpNMTYwIDE5MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxQaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1iaWJsZSIsaWNvbjpbNDQ4LDUxMixbImJpYmxlIl0sImY2NDciLCJNOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyMC45LTEzLjQgMzguNy0zMiA0NS4zbDAgNjYuN2MxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5NiA1MTJ6bTAtMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjQtMjU2IDB6TTE5MiA4MGwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTExMiA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxaZ3Q9UGllLFhndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1ib2FyZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjQzYyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA2NGwwIDY0IDY0IDAgMC02NCA2NCAwIDAgNjQgNjQgMCAwLTY0IDY0IDAgMCA2NC02NCAwIDAgNjQgNjQgMCAwIDY0LTY0IDAgMCA2NCA2NCAwIDAgNjQtNjQgMCAwLTY0LTY0IDAgMCA2NC02NCAwIDAtNjQtNjQgMCAwIDY0LTY0IDAgMC02NCA2NCAwIDAtNjQtNjQgMCAwLTY0IDY0IDAgMC02NC02NCAwIDAtNjQgNjQgMHptNjQgMTI4bDY0IDAgMC02NC02NCAwIDAgNjR6bTAgNjRsMC02NC02NCAwIDAgNjQgNjQgMHptNjQgMGwtNjQgMCAwIDY0IDY0IDAgMC02NHptMCAwbDY0IDAgMC02NC02NCAwIDAgNjR6Il19LFFndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzIixpY29uOls1MTIsNTEyLFs5Nzk0XSwiZjIyMiIsIk0zMjAgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC01MC43LTk1IDk1YzE5LjUgMjguNCAzMSA2Mi43IDMxIDk5LjggMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMzIgNDAxLjIgMzIgMzA0IDExMC44IDEyOCAyMDggMTI4YzM3IDAgNzEuNCAxMS40IDk5LjggMzFsOTUtOTUtNTAuNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMjA4IDQxNmExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LEtndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AiLGljb246WzY0MCw1MTIsWzEyODE4N10sImYxMDkiLCJNMTI4IDMyQzkyLjcgMzIgNjQgNjAuNyA2NCA5NmwwIDI0MCA2NCAwIDAtMjQwIDM4NCAwIDAgMjQwIDY0IDAgMC0yNDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTI4IDMyek0xOS4yIDM4NEM4LjYgMzg0IDAgMzkyLjYgMCA0MDMuMiAwIDQ0NS42IDM0LjQgNDgwIDc2LjggNDgwbDQ4Ni40IDBjNDIuNCAwIDc2LjgtMzQuNCA3Ni44LTc2LjggMC0xMC42LTguNi0xOS4yLTE5LjItMTkuMkwxOS4yIDM4NHoiXX0sSWllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXIteG1hcmsiLGljb246WzY0MCw1MTIsWyJ1c2VyLXRpbWVzIl0sImYyMzUiLCJNMTM2LjQgMTI4YTEyMCAxMjAgMCAxIDEgMjQwIDAgMTIwIDEyMCAwIDEgMSAtMjQwIDB6bS04OCAzNTQuM2MwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM2w1OS40IDBjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzguMSA1MTJjLTE2LjQgMC0yOS43LTEzLjMtMjkuNy0yOS43ek02MTIuMyAxMjQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMzMuOSAzMy45IDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zMy45LTMzLjktMzMuOSAzMy45Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOS0zMy45LTMzLjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMy45IDMzLjkgMzMuOS0zMy45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAweiJdfSxKZ3Q9SWllLGV4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnLXVzYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc0ZCIsIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMzYuMS00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTIwLjMtOS00MS44LTE0LjctNjMuNi0xNi45bDAgMzIuMmMxNy40IDIuMSAzNC40IDYuNyA1MC42IDEzLjlsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCA2Mi00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNsLTYzLjUgMTMuNiAwIDMyLjcgNzAuMi0xNS4xYzM2LjQtNy44IDc0LjMtMy45IDEwOC40IDExLjNsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCA2MS45LTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtNDAuMi0xNy45LTg1LTIyLjUtMTI4LjEtMTMuM2wtNjMuNSAxMy42IDAgMzIuNyA3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40bDMzLjctMTIuMyAwIDMzLjVjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgNDAwIDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwem04MCA5NmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zMiAwYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptLTMyIDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTMyIDBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSx0eHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1taWRkbGUtZmluZ2VyIixpY29uOls0NDgsNTEyLFsxMjg0MDVdLCJmODA2IiwiTTIzMiAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDE2NC4yYy04LjUtNy42LTE5LjctMTIuMi0zMi0xMi4yLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC01NS43Yy0yIDEuNC0zLjkgMy01LjggNC41TDU1IDI4NC44QzQwLjQgMjk3IDMyIDMxNSAzMiAzMzRMMzIgMzcyYzAgMzggMTYuOSA3NCA0Ni4xIDk4LjNsNS40IDQuNWMyOC44IDI0IDY1IDM3LjEgMTAyLjQgMzcuMUwzMDQgNTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDgtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuMy0xLjktMjQuOC0yMi42LTQ0LjMtNDcuOS00NC4zLTEyLjMgMC0yMy41IDQuNi0zMiAxMi4yTDI3MiA0MGMwLTIyLjEtMTcuOS00MC00MC00MHoiXX0sYXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vcnRhci1wZXN0bGUiLGljb246WzUxMiw1MTIsW10sImY1YTciLCJNNTA0LjMgMTEuMUM0OTMuMy0xLjYgNDc0LjUtMy43IDQ2MSA2LjJMMjUyLjMgMTYwIDM5Ny4zIDE2MCA1MDIuNiA1NC42YzExLjgtMTEuOCAxMi42LTMwLjggMS42LTQzLjV6TTMyIDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmMwIDgyLjUgNDMuNCAxNDcuNyAxMjMuOSAxNzYuMi0xMS4xIDEzLjktMTkuNCAzMC4zLTIzLjkgNDguMS00LjQgMTcuMSAxMC40IDMxLjcgMjguMSAzMS43bDE5MiAwYzE3LjcgMCAzMi40LTE0LjYgMjguMS0zMS43LTQuNS0xNy44LTEyLjgtMzQuMS0yMy45LTQ4LjEgODAuNS0yOC42IDEyMy45LTkzLjcgMTIzLjktMTc2LjIgMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTkyeiJdfSxyeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLWNvdWdoIixpY29uOls1MTIsNTEyLFtdLCJlMDYxIiwiTTk2IDUxMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZsMSAwYzI2IDAgNDctMjEgNDctNDcgMC0xMS0zLjktMjEuNi0xMC45LTMwLjFMMjczLjMgMjAwQzI3MS40IDE5Ny42IDI3MC4xIDE5NC43IDI2OS43IDE5MS43IDI1NCA4My4zIDE2MC43IDAgNDggMCA0MC40IDAgMzIuOSAuNCAyNS40IDEuMSAxMC41IDIuNiAwIDE1LjkgMCAzMC45TDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDB6bTE2LTMyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem02My4xIDIzNy4ybC00MS41LTMuNWMtMTIuMi0xLTIxLjYtMTEuMi0yMS42LTIzLjQgMC0xMC44IDcuMy0yMC4yIDE3LjgtMjIuOGw0MC40LTEwLjFjMTkuMi00LjggMzcuOCA5LjcgMzcuOCAyOS41IDAgMTcuOC0xNS4yIDMxLjgtMzIuOSAzMC4zek00ODAgMzEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwIDI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS02NCA0OGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0xMjggMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek00ODAgNTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwLTcyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGl4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNTU4IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgODIuMSA3NS4yQzQwOS43IDI0OC4xIDQwMCAyNzQuOSA0MDAgMzA0bDAgMjQuNGMtNy4zIDYuNi0xMy42IDE0LjItMTguNyAyMi43bC0zNy4zLTEyLjQgMCA5OS43IDI0IDE5LjIgMCAzOC4zYzAgMTMuNSAyLjggMjYuNCA3LjggMzguMUwyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNTYwIDMwNC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sRmllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktdGhyZWUtcXVhcnRlcnMiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTQiXSwiZjI0MSIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjI0IDB6Il19LG94dD1GaWUsc3h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZyYW5jLXNpZ24iLGljb246WzMyMCw1MTIsW10sImUxOGYiLCJNODAgMzJDNjIuMyAzMiA0OCA0Ni4zIDQ4IDY0bDAgMjU2LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCA4OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04OCAwIDAtNjQgMTQ0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE0NCAwIDAtOTYgMTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgMzJ6Il19LE9pZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWx0ZXItY2lyY2xlLWRvbGxhciIsaWNvbjpbNTc2LDUxMixbImZ1bm5lbC1kb2xsYXIiXSwiZjY2MiIsIk0zMiA2NEMxOS4xIDY0IDcuNCA3MS44IDIuNCA4My44Uy4yIDEwOS41IDkuNCAxMTguNkwxOTIgMzAxLjMgMTkyIDQxNmMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMyLjUgMi41IDUuMyA0LjUgOC4zIDYtMjEuMi0zMC45LTMzLjYtNjguMy0zMy42LTEwOC42IDAtOTkuNCA3NS41LTE4MS4xIDE3Mi4zLTE5MWw5MC40LTkwLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQxNiAzMjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDUuOCAwYy01LjYgMC0xMC4yIDQuNi0xMC4yIDEwLjIgMCA0LjkgMy41IDkuMSA4LjMgMTBsNDUgOC4yYzIwIDMuNiAzNC42IDIxLjEgMzQuNiA0MS41IDAgMjMuMy0xOC45IDQyLjItNDIuMiA0Mi4ybC01LjggMCAwIDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04LTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNTMuOCAwYzUuNiAwIDEwLjItNC42IDEwLjItMTAuMiAwLTQuOS0zLjUtOS4xLTguMy0xMGwtNDUtOC4yYy0yMC0zLjYtMzQuNi0yMS4xLTM0LjYtNDEuNSAwLTIyLjYgMTcuNy00MSA0MC00Mi4xbDAtOC4xeiJdfSxueHQ9T2llLGx4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVlc2UiLGljb246WzUxMiw1MTIsW10sImY3ZWYiLCJNNTEyIDI0MC4ybDAgMTUuOC01MTIgMGMwLTIwIDEwLTM4LjcgMjYuNi00OS44TDI3NC45IDQwLjdjOC42LTUuNyAxOC42LTguNyAyOC45LTguNyAxMTUgMCAyMDguMiA5My4yIDIwOC4yIDIwOC4yem0wIDYzLjhsMCAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTExMiA1MTIgMHoiXX0sQmllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1oIixpY29uOls1MTIsNTEyLFs5NDA1LCJob3NwaXRhbC1zeW1ib2wiXSwiZjQ3ZSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptOTYtMzQ0bDAgMTc2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNjQtOTYgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA5NiAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sY3h0PUJpZSxkeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sIixpY29uOls1NzYsNTEyLFsxMjc5NzldLCJmNTQ5IiwiTTAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDAgMTI3LjktMTE1LjFjMTguMy0xNi40IDQ2LTE2LjQgNjQuMiAwTDQ0OCAxMjggNTEyIDEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyek0yMjQgMzc2bDAgODggMTI4IDAgMC04OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6bS0xMTIgOGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDM4NGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNMjg4IDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHoiXX0sZnh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZml2ZSIsaWNvbjpbNDQ4LDUxMixbOTg2MF0sImY1MjMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek05NiAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0LTY0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHV4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3JuYWRvIixpY29uOls0NDgsNTEyLFsxMjc3ODZdLCJmNzZmIiwiTTAgMzJMMCA0NS42QzAgNjIuNyAxLjcgNzkuNiA1IDk2bDM1Mi44IDBjMy4yLTYuOSA3LjUtMTMuMyAxMy0xOC44bDM4LjYtMzguNmM0LjItNC4yIDYuNi0xMCA2LjYtMTYgMC0xMi41LTEwLjEtMjIuNi0yMi42LTIyLjZMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJ6TTM1NS43IDE0NGwtMzM2IDBjMTIuNCAyOS43IDMwLjIgNTYuOCA1Mi43IDgwbDMzOS42IDAtNDcuMi02Mi45Yy0zLjktNS4yLTctMTEtOS4yLTE3LjF6TTI0Mi42IDMzNC43YzguMiA0LjggMTUuOCAxMC43IDIyLjUgMTcuM0w0NDUgMzUyYzItOS44IDMtMTkuOSAzLTMwLjEgMC0xNy4xLTIuOS0zNC04LjYtNDkuOUwxMzYgMjcyIDI0Mi42IDMzNC43ek0yOTQuMyA0MDBjNS4zIDE3IDYuNSAzNS4yIDMuNiA1M2wtNS45IDM1LjdjLTIgMTIuMiA3LjQgMjMuNCAxOS44IDIzLjQgNS4zIDAgMTAuNC0yLjEgMTQuMi01LjlsNzguMi03OC4yYzguNS04LjUgMTUuOC0xNy44IDIxLjktMjcuOWwtMTMxLjggMHoiXX0sUmllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImpldC1maWdodGVyIixpY29uOls1NzYsNTEyLFsiZmlnaHRlci1qZXQiXSwiZjBmYiIsIk00OTYuMiAyMDYuOGMtMTAuNy00LjUtMjIuMi02LjgtMzMuOC02LjhMMzYyIDIwMCAyNDggNDggMjk2IDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0UzMwOS4zIDAgMjk2IDBMMTUyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOCAwIDAgMTUyLTU0LjQgMC01Mi44LTY2Yy0zLTMuOC03LjYtNi0xMi41LTZMMTYgMTI4Yy04LjggMC0xNiA3LjItMTYgMTZsMCA4OCA0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgODhjMCA4LjggNy4yIDE2IDE2IDE2bDI0LjMgMGM0LjkgMCA5LjUtMi4yIDEyLjUtNmw1Mi44LTY2IDU0LjQgMCAwIDE1Mi04IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMTE0LTE1MiAxMDAuNCAwYzExLjYgMCAyMy4xLTIuMyAzMy44LTYuOGw2NS0yNy4xYzguOS0zLjcgMTQuOC0xMi41IDE0LjgtMjIuMnMtNS44LTE4LjQtMTQuOC0yMi4ybC02NS0yNy4xeiJdfSxweHQ9UmllLGh4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnMtZG93biIsaWNvbjpbNTEyLDUxMixbMTI4MDc4LDYxNTc2XSwiZjE2NSIsIk0zODQgMzJjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCA2LjMtMS4zIDEyLjItMy40IDE3LjcgMjAuNCA1LjUgMzUuNCAyNC4xIDM1LjQgNDYuMyAwIDkuMS0yLjYgMTcuNi03IDI0LjkgMjIuMiA0LjIgMzkgMjMuNyAzOSA0Ny4xIDAgMTkuNy0xMS45IDM2LjYtMjguOSA0NCAxNyA3LjQgMjguOSAyNC4zIDI4LjkgNDQgMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwIDI4LjIgNzAuNGMyLjUgNi4zIDMuOCAxMy4xIDMuOCAxOS45bDAgNC4yYzAgMjcuMy0yMi4xIDQ5LjQtNDkuNCA0OS40LTE4LjcgMC0zNS44LTEwLjYtNDQuMi0yNy4zTDE3MC4xIDM1Ni4zYy02LjctMTMuMy0xMC4xLTI4LTEwLjEtNDIuOWwwLTE4Ni42YzAtMTkuNCA4LjktMzcuOCAyNC01MGwxMi4yLTkuN0MyMjQuNiA0NC40IDI1OS44IDMyIDI5Ni4xIDMyTDM4NCAzMnpNODAgOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDQ4IDB6Il19LG14dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicm9vbSIsaWNvbjpbNTc2LDUxMixbMTI5NTI5XSwiZjUxYSIsIk01NjYuNiA1NC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xOTIgMTkyLTM0LjctMzQuN2MtNC4yLTQuMi0xMC02LjYtMTYtNi42LTEyLjUgMC0yMi42IDEwLjEtMjIuNiAyMi42bDAgMjkuMSAxMDguMyAxMDguMyAyOS4xIDBjMTIuNSAwIDIyLjYtMTAuMSAyMi42LTIyLjYgMC02LTIuNC0xMS44LTYuNi0xNmwtMzQuNy0zNC43IDE5Mi0xOTJ6TTM0MS4xIDM1My40TDIyMi42IDIzNC45Yy00Mi43LTMuNy04NS4yIDExLjctMTE1LjggNDIuM2wtOCA4Yy0yMi4zIDIyLjMtMzQuOCA1Mi41LTM0LjggODQgMCA2LjggNy4xIDExLjIgMTMuMiA4LjJsNTEuMS0yNS41YzUtMi41IDkuNSA0LjEgNS40IDcuOUw3LjMgNDczLjRDMi43IDQ3Ny42IDAgNDgzLjYgMCA0ODkuOSAwIDUwMi4xIDkuOSA1MTIgMjIuMSA1MTJsMTczLjMgMGMzOC44IDAgNzUuOS0xNS40IDEwMy40LTQyLjggMzAuNi0zMC42IDQ1LjktNzMuMSA0Mi4zLTExNS44eiJdfSxIaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbXBvcnQiLGljb246WzM4NCw1MTIsWyJhcnJvdy1yaWdodC10by1maWxlIl0sImY1NmYiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCAyNDAgMTgyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xODIuMSAwIDAgOTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnoiXX0sZ3h0PUhpZSxxaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXRlbnNpbHMiLGljb246WzUxMiw1MTIsWzEyNzg2MCw2MTY4NSwiY3V0bGVyeSJdLCJmMmU3IiwiTTYzLjkgMTQuNEM2My4xIDYuMiA1Ni4yIDAgNDggMHMtMTUuMSA2LjItMTYgMTQuM0wxNy45IDE0OS43Yy0xLjMgNi0xLjkgMTIuMS0xLjkgMTguMiAwIDQ1LjkgMzUuMSA4My42IDgwIDg3LjdMOTYgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjQuNGM0NC45LTQuMSA4MC00MS44IDgwLTg3LjcgMC02LjEtLjYtMTIuMi0xLjktMTguMkwyMjMuOSAxNC4zQzIyMy4xIDYuMiAyMTYuMiAwIDIwOCAwcy0xNS4xIDYuMi0xNS45IDE0LjRMMTc4LjUgMTQ5LjljLS42IDUuNy01LjQgMTAuMS0xMS4xIDEwLjEtNS44IDAtMTAuNi00LjQtMTEuMi0xMC4yTDE0My45IDE0LjZDMTQzLjIgNi4zIDEzNi4zIDAgMTI4IDBzLTE1LjIgNi4zLTE1LjkgMTQuNkw5OS44IDE0OS44Yy0uNSA1LjgtNS40IDEwLjItMTEuMiAxMC4yLTUuOCAwLTEwLjYtNC40LTExLjEtMTAuMUw2My45IDE0LjR6TTQ0OCAwQzQzMiAwIDMyMCAzMiAzMjAgMTc2bDAgMTEyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyIDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ0OGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0seHh0PXFpZSxieHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWQtYmFkZ2UiLGljb246WzM4NCw1MTIsW10sImYyYzEiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHptOTYgMzUybDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xNTIgNjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sdnh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwaWRlciIsaWNvbjpbNTEyLDUxMixbMTI4Mzc1XSwiZjcxNyIsIk0zNjkuMy0zMWMxMS45LTMuNSAyNC40IDIuNyAyOSAxMy45bC44IDIuMyA0MCAxMzZjMi41IDguNCAuMSAxNy41LTYuMSAyMy43bC02NC4xIDY0LjEgNzYuNC0yMC44IDE5LjktNTkuOCAuOS0yLjNjNS0xMS4xIDE3LjctMTYuOCAyOS41LTEyLjkgMTEuOCAzLjkgMTguNSAxNi4xIDE1LjggMjhsLS43IDIuNC0yNCA3MmMtMi41IDcuNi04LjcgMTMuNC0xNi41IDE1LjZsLTkxLjEgMjQuOCA5MS4xIDI0LjhjNy43IDIuMSAxMy45IDggMTYuNSAxNS42bDI0IDcyIC43IDIuNGMyLjcgMTEuOS00LjEgMjQuMS0xNS44IDI4LTExLjggMy45LTI0LjUtMS44LTI5LjUtMTIuOWwtLjktMi4zLTE5LjktNTkuOC03Ni40LTIwLjggNjQuMSA2NC4xYzYuMSA2LjEgOC41IDE1LjEgNi4yIDIzLjRsLTQwIDE0NC0uOCAyLjNjLTQuNCAxMS4zLTE2LjggMTcuNy0yOC44IDE0LjQtMTItMy4zLTE5LjMtMTUuMi0xNy4yLTI3LjJsLjUtMi40IDM2LjItMTMwLjUtMzcuMi0zNy4yQzM1MSA0MDYgMzA4LjQgNDQ4IDI1NiA0NDhzLTk1LTQyLTk2LTk0LjFsLTM3IDM3IDM2IDEyMi4zIC42IDIuNGMyLjIgMTEuOS00LjkgMjMuOS0xNi44IDI3LjQtMTEuOSAzLjUtMjQuNC0yLjctMjktMTMuOWwtLjgtMi4zLTQwLTEzNmMtMi41LTguNC0uMS0xNy41IDYuMS0yMy44bDY0LjEtNjQuMS03Ni40IDIwLjgtMTkuOSA1OS44LS45IDIuM2MtNSAxMS4xLTE3LjcgMTYuOC0yOS41IDEyLjlzLTE4LjUtMTYuMS0xNS44LTI4bC43LTIuNCAyNC03MmMyLjUtNy42IDguNy0xMy40IDE2LjUtMTUuNmw5MS4xLTI0LjgtOTEuMS0yNC44Yy03LjctMi4xLTEzLjktOC0xNi41LTE1LjZsLTI0LTcyLS43LTIuNGMtMi43LTExLjkgNC4xLTI0LjEgMTUuOC0yOHMyNC41IDEuOCAyOS41IDEyLjlsLjkgMi4zIDE5LjkgNTkuOCA3Ni40IDIwLjgtNjQuMS02NC4xYy02LjItNi4yLTguNS0xNS4zLTYuMS0yMy43bDQwLTEzNiAuOC0yLjNjNC42LTExLjMgMTcuMS0xNy40IDI5LTEzLjkgMTEuOSAzLjUgMTkgMTUuNSAxNi44IDI3LjRsLS42IDIuNC0zNiAxMjIuMyA1MyA1M2MxLTQzLjMgMzYuNC03OC4xIDc5LjktNzguMXM3OC45IDM0LjggNzkuOSA3OC4ybDUzLjEtNTMuMS0zNi0xMjIuMy0uNi0yLjRjLTIuMi0xMiA0LjktMjMuOSAxNi44LTI3LjR6Il19LHl4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtcmV0cm8iLGljb246WzM4NCw1MTIsW10sImU1MjciLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0em04MCA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOCAxOTJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNCAxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjR6bTY0LTcyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjQgMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0em02NC03MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0IDEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNHpNMTY4IDQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LFZpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWducy1wb3N0IixpY29uOls1MTIsNTEyLFsibWFwLXNpZ25zIl0sImYyNzciLCJNMjU2LjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMCAwIDY0LTE1My40IDBjLTQuMiAwLTguMyAxLjctMTEuMyA0LjdsLTQ4IDQ4Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmw0OCA0OGMzIDMgNy4xIDQuNyAxMS4zIDQuN2wxNTMuNCAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2MCAwIDAtNjQgMTUzLjQgMGM0LjIgMCA4LjMtMS43IDExLjMtNC43bDQ4LTQ4YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC00OC00OGMtMy0zLTcuMS00LjctMTEuMy00LjdsLTE1My40IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sd3h0PVZpZSxNeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JvdXAtYXJyb3dzLXJvdGF0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRmNiIsIk0zNy42IDEyMi4zYy0xMS41IDE4LjctMjAuNiAzOS0yNyA2MC41LTUgMTYuOSA0LjYgMzQuOCAyMS41IDM5LjhzMzQuOC00LjYgMzkuOC0yMS41YzE4LjQtNjEuOSA2Ny4zLTExMC44IDEyOS4yLTEyOS4yIDE2LjktNSAyNi42LTIyLjkgMjEuNS0zOS44UzE5OS44IDUuNiAxODIuOSAxMC42QzE2MS40IDE3IDE0MS4xIDI2LjEgMTIyLjMgMzcuNiAxMTIuMyAxNS40IDg5LjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NCAwIDg5LjkgMTUuNCAxMTIuMyAzNy42IDEyMi4zem00MzYuNyAwYzIyLjItMTAgMzcuNi0zMi40IDM3LjYtNTguMyAwLTM1LjMtMjguNy02NC02NC02NC0yNS45IDAtNDguMyAxNS40LTU4LjMgMzcuNi0xOC43LTExLjUtMzktMjAuNi02MC41LTI3LTE2LjktNS0zNC44IDQuNi0zOS44IDIxLjVzNC42IDM0LjggMjEuNSAzOS44YzYxLjkgMTguNCAxMTAuOCA2Ny4zIDEyOS4yIDEyOS4yIDUgMTYuOSAyMi45IDI2LjYgMzkuOCAyMS41czI2LjYtMjIuOSAyMS41LTM5LjhjLTYuNC0yMS41LTE1LjUtNDEuOC0yNy02MC41ek01MTIgNDQ4YzAtMjUuOS0xNS40LTQ4LjMtMzcuNi01OC4zIDExLjUtMTguNyAyMC42LTM5IDI3LTYwLjUgNS0xNi45LTQuNi0zNC44LTIxLjUtMzkuOHMtMzQuOCA0LjYtMzkuOCAyMS41Yy0xOC40IDYxLjktNjcuMyAxMTAuOC0xMjkuMiAxMjkuMi0xNi45IDUtMjYuNiAyMi45LTIxLjUgMzkuOHMyMi45IDI2LjYgMzkuOCAyMS41YzIxLjUtNi40IDQxLjgtMTUuNSA2MC41LTI3IDEwIDIyLjIgMzIuNCAzNy42IDU4LjMgMzcuNiAzNS4zIDAgNjQtMjguNyA2NC02NHpNMzcuNiAzODkuN2MtMjIuMiAxMC0zNy42IDMyLjQtMzcuNiA1OC4zIDAgMzUuMyAyOC43IDY0IDY0IDY0IDI1LjkgMCA0OC4zLTE1LjQgNTguMy0zNy42IDE4LjcgMTEuNSAzOSAyMC42IDYwLjUgMjcgMTYuOSA1IDM0LjgtNC42IDM5LjgtMjEuNXMtNC42LTM0LjgtMjEuNS0zOS44Yy02MS45LTE4LjQtMTEwLjgtNjcuMy0xMjkuMi0xMjkuMi01LTE2LjktMjIuOS0yNi42LTM5LjgtMjEuNVM1LjYgMzEyLjIgMTAuNiAzMjkuMWM2LjQgMjEuNSAxNS41IDQxLjggMjcgNjAuNXpNMjU2IDE5MmMxNS42IDAgMzAgNS42IDQxLjEgMTQuOWwtMTUuMyAxNS4zYy02LjYgNi42LTEuOSAxNy44IDcuNCAxNy44bDYwLjUgMGM1LjcgMCAxMC40LTQuNyAxMC40LTEwLjRsMC02MC41YzAtOS4zLTExLjItMTMuOS0xNy44LTcuNGwtMTEuMiAxMS4yYy0xOS44LTE3LjktNDYuMi0yOC45LTc1LjEtMjguOS00My42IDAtODEuMyAyNC45LTk5LjggNjEuMS02IDExLjgtMS40IDI2LjMgMTAuNCAzMi4zczI2LjMgMS40IDMyLjMtMTAuNGMxMC42LTIwLjggMzIuMi0zNC45IDU3LTM0Ljl6bTU4LjYgOTMuMWMtMTAuNiAyMC44LTMyLjIgMzQuOS01NyAzNC45LTE1LjcgMC0zMC01LjYtNDEuMS0xNC45bDE1LjMtMTUuM2M2LjYtNi42IDEuOS0xNy44LTcuNC0xNy44TDE2NCAyNzJjLTUuNyAwLTEwLjQgNC43LTEwLjQgMTAuNGwwIDYwLjVjMCA5LjMgMTEuMiAxMy45IDE3LjggNy40bDExLjItMTEuMmMxOS44IDE3LjkgNDYuMiAyOC45IDc1LjEgMjguOSA0My42IDAgODEuMy0yNC45IDk5LjgtNjEuMSA2LTExLjggMS40LTI2LjMtMTAuNC0zMi4zcy0yNi4zLTEuNC0zMi4zIDEwLjR6Il19LHp4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3Mtc3BsaXQtdXAtYW5kLWxlZnQiLGljb246WzUxMiw1MTIsW10sImU0YmMiLCJNMzQyLjYtMjIuNmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDQxLjQtNDEuNCAwIDE5NS45Yy0xOC44LTEwLjktNDAuNy0xNy4xLTY0LTE3LjFsLTExNC43IDAgNDEuNC00MS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAzMjAgMjI0IDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnoiXX0sa3h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGwtZHJpcCIsaWNvbjpbNTc2LDUxMixbXSwiZjU3NiIsIk0zMDkuNyA3MS42bC02NC40IDY0LjQgMzMuNCAzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0zMy40LTMzLjQtOTYuNCA5Ni40Yy0yLjkgMi45LTUuMSA2LjUtNi4zIDEwLjNsMzIxLjUgMCA1My43LTUzLjdjNC45LTQuOSA3LjYtMTEuNSA3LjYtMTguM3MtMi43LTEzLjUtNy42LTE4LjNMMzQ2LjMgNzEuNkMzNDEuNSA2Ni43IDMzNC45IDY0IDMyOCA2NHMtMTMuNSAyLjctMTguMyA3LjZ6TTU4LjMgMjMyLjRsOTYuNC05Ni40LTQ5LjQtNDkuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwyMDAgOTAuNyAyNjQuNCAyNi4zQzI4MS4zIDkuNSAzMDQuMSAwIDMyOCAwczQ2LjcgOS41IDYzLjYgMjYuM0w1MTcuNyAxNTIuNEM1MzQuNSAxNjkuMyA1NDQgMTkyLjEgNTQ0IDIxNnMtOS41IDQ2LjctMjYuMyA2My42TDMxMS42IDQ4NS43QzI5NC43IDUwMi41IDI3MS45IDUxMiAyNDggNTEycy00Ni43LTkuNS02My42LTI2LjNMNTguMyAzNTkuNkM0MS41IDM0Mi43IDMyIDMxOS45IDMyIDI5NnM5LjUtNDYuNyAyNi4zLTYzLjZ6TTUxMiA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjUuMiAzMi42LTc5LjYgNTEuMi0xMDguNyA2LTkuNCAxOS41LTkuNCAyNS41IDAgMTguNyAyOS4xIDUxLjIgODMuNSA1MS4yIDEwOC43IDAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSxTeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWhlYXJ0IixpY29uOls1MTIsNTEyLFtdLCJlNTc0IiwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0yNDkuNiAxODMuNWw2LjQgOC41IDYuNC04LjVjMTEuMS0xNC44IDI4LjUtMjMuNSA0Ni45LTIzLjUgMzIuNCAwIDU4LjcgMjYuMyA1OC43IDU4LjdsMCA1LjNjMCA0OS4xLTY1LjggOTguMS05Ni41IDExOC4zLTkuNSA2LjItMjEuNSA2LjItMzAuOSAwLTMwLjctMjAuMi05Ni41LTY5LjMtOTYuNS0xMTguM2wwLTUuM2MwLTMyLjQgMjYuMy01OC43IDU4LjctNTguNyAxOC41IDAgMzUuOSA4LjcgNDYuOSAyMy41eiJdfSxVaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNraWluZy1ub3JkaWMiLGljb246WzU3Niw1MTIsWyJza2lpbmctbm9yZGljIl0sImY3Y2EiLCJNNDI0LjggMTZhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTk5LjggMTkzLjdjNy42IDE1LjIgMS45IDMzLjYtMTIuNiA0MmwwIDE4MC4zLTMyIDAgMC0xNjQuMi0xMC4xIDVjLTI3LjQgMTMuNy02MC43IDYuMS03OS40LTE4LjJsLTE5LjYtMjUuNS0zOS41IDY4LjggMjQuOCAxMi40YzI5LjUgMTQuNyA0Mi45IDQ5LjUgMzEuMSA4MC4ybC0yOC4yIDczLjQgMTQ5LjQgMGM3LjkgMCAxNS42LTIuMyAyMi4yLTYuN2w3LjktNS4zYzExLTcuNCAyNS45LTQuNCAzMy4zIDYuN3M0LjQgMjUuOS02LjcgMzMuM2wtNy45IDUuM0M1NDMgNTA2LjkgNTI2IDUxMiA1MDguNiA1MTJsLTE4OS4xIDBjLS41IDAtMSAwLTEuNSAwTDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4OCAwYzAtOC4yIDMuMS0xNi40IDkuNC0yMi42bDc0LjEtNzQuMSAxMC4yLTM1LjljMTEuMyAxOC4zIDI3LjcgMzMuOCA0OC40IDQ0LjJsNC44IDIuNC0xLjkgNi44Yy0zIDEwLjUtOC42IDIwLTE2LjMgMjcuN2wtNTEuNSA1MS41IDEwMS4zIDAgMzcuMS05Ni40LTU1LjYtMjcuOEMyMzAuNCAzMTkgMjE1LjMgMjY3IDIzOS4zIDIyNy4xbDM3LjctNjIuNy0yNy43LTcuN2MtOS0yLjUtMTguMSAzLjItMjAgMTIuM2wtNS45IDI5LjNjLTMuMSAxNS42LTE3LjEgMjYuMy0zMi41IDI1LjdsLTEzMCAyMDgtMzcuNyAwIDE0MC42LTIyNWMtMy40LTYuMy00LjYtMTMuOC0zLjEtMjEuM2w1LjktMjkuM2M5LjEtNDUuNiA1NS4xLTczLjggOTkuOS02MS40bDMyLjUgOWM0Ni43IDEzIDg4IDQwLjggMTE3LjYgNzkuM2wyNC45IDMyLjMgNDAuNC0yMC4yYzE1LjgtNy45IDM1LTEuNSA0Mi45IDE0LjN6Il19LEN4dD1VaWUsamllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jaGVjayIsaWNvbjpbNDQ4LDUxMixbOTc0NSw5OTg5LDYxNTEwLCJjaGVjay1zcXVhcmUiXSwiZjE0YSIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0zNDIgMTQ1LjdjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zTDE4OS4xIDMxNS4yIDEzNyAyNjMuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM1IDUgMTEuOSA3LjUgMTguOCA3czEzLjQtNC4xIDE3LjUtOS44TDM0Ny4zIDE3OS4yYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41eiJdfSxMeHQ9amllLFdpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXRoIixpY29uOls1MTIsNTEyLFsxMjg3MDUsImJhdGh0dWIiXSwiZjJjZCIsIk05NiA3Ny4zYzAtNy4zIDUuOS0xMy4zIDEzLjMtMTMuMyAzLjUgMCA2LjkgMS40IDkuNCAzLjlsMTQuOSAxNC45Yy0zLjYgOS4xLTUuNSAxOC45LTUuNSAyOS4yIDAgMTkuOSA3LjIgMzggMTkuMiA1Mi01LjMgOS4yLTQgMjEuMSAzLjggMjkgOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMjg5IDg5YzkuNC05LjQgOS40LTI0LjYgMC0zMy45LTcuOC03LjktMTkuOC05LjEtMjktMy44LTE0LTEyLTMyLjEtMTkuMi01Mi0xOS4yLTEwLjMgMC0yMC4yIDItMjkuMiA1LjVMMTYzLjkgMjIuNkMxNDkuNCA4LjEgMTI5LjcgMCAxMDkuMyAwIDY2LjYgMCAzMiAzNC42IDMyIDc3LjNMMzIgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgNDhjMCAyOC40IDEyLjQgNTQgMzIgNzEuNkw2NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2IDI1NiAwIDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQwLjRjMTkuNi0xNy42IDMyLTQzLjEgMzItNzEuNmwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDI1NiA5NiA3Ny4zeiJdfSxUeHQ9V2llLF94dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1iaXNob3AiLGljb246WzMyMCw1MTIsWzk4MjFdLCJmNDNhIiwiTTY0IDM4NEw0OC4zIDM2OC4zQzE3LjQgMzM3LjQgMCAyOTUuNCAwIDI1MS43IDAgMjEzLjEgMTMuNSAxNzUuOCAzOC4yIDE0Ni4xTDEwNi43IDY0IDk2IDY0Qzc4LjMgNjQgNjQgNDkuNyA2NCAzMlM3OC4zIDAgOTYgMEwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTAuNyAwIDQ3LjYgNTcuMS04NS45IDg1LjljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw4Mi4zLTgyLjNjMTguNyAyNy4zIDI4LjcgNTkuNyAyOC43IDkzIDAgNDMuNy0xNy40IDg1LjctNDguMyAxMTYuNkwyNTYgMzg0IDMxMi4yIDQ1NC4zYzUgNi4zIDcuOCAxNC4xIDcuOCAyMi4yIDAgMTkuNi0xNS45IDM1LjUtMzUuNSAzNS41TDM1LjUgNTEyYy0xOS42IDAtMzUuNS0xNS45LTM1LjUtMzUuNSAwLTguMSAyLjctMTUuOSA3LjgtMjIuMkw2NCAzODR6Il19LEdpZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmVzY3JpcHRpb24tYm90dGxlLW1lZGljYWwiLGljb246WzM4NCw1MTIsWyJwcmVzY3JpcHRpb24tYm90dGxlLWFsdCJdLCJmNDg2IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NEwwIDMyek0zMiAxNDRsMzIwIDAgMCAzMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMwNHpNMTYwIDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sQXh0PUdpZSxZaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJhdy1wb2x5Z29uIixpY29uOls1MTIsNTEyLFs1ODA1NSwidmVjdG9yLXBvbHlnb24iXSwiZjVlZSIsIk02NCAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmwyNzMuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAzNC0yNi41IDYxLjgtNjAgNjMuOWwtMi4xIDIuOS03MS41IDk5LjFjMy42IDggNS42IDE2LjkgNS42IDI2LjJzLTIgMTguMi01LjYgMjYuMmwyLjIgMy4xIDY5LjMgOTYgMi4xIDIuOWMzMy41IDIuMSA2MCAyOS45IDYwIDYzLjkgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yNzMuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTI3My4xQzEyLjkgMTA4LjQgMCA4Ny43IDAgNjQgMCAyOC43IDI4LjcgMCA2NCAwek0zOTQuMiA0MTMuNGwtNjUuNS05MC42LTIuMi0zLjFjLTIuMSAuMi00LjMgLjMtNi41IC4zLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMi4yIDAgNC40IC4xIDYuNSAuM2w2Ny43LTkzLjdjLS42LS45LTEuMS0xLjctMS42LTIuNkwxMTkuNCA5NmMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40bDAgMjczLjFjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDI3My4xIDBjLjUtLjkgMS4xLTEuOCAxLjYtMi42eiJdfSwkeHQ9WWllLER4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpLWN1cnNvciIsaWNvbjpbMjU2LDUxMixbXSwiZjI0NiIsIk0uMSAyOS4zQy0xLjQgNDcgMTEuNyA2Mi40IDI5LjMgNjMuOWw4IC43QzcwLjUgNjcuMyA5NiA5NSA5NiAxMjguM2wwIDk1LjctMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgOTUuN2MwIDMzLjMtMjUuNSA2MS01OC43IDYzLjhsLTggLjdDMTEuNyA0NDkuNi0xLjQgNDY1IC4xIDQ4Mi43UzE3IDUxMy40IDM0LjcgNTExLjlsOC0uN2MzNC4xLTIuOCA2NC4yLTE4LjkgODUuNC00Mi45IDIxLjIgMjQgNTEuMiA0MCA4NS40IDQyLjlsOCAuN2MxNy42IDEuNSAzMy4xLTExLjYgMzQuNS0yOS4ycy0xMS42LTMzLjEtMjkuMi0zNC41bC04LS43QzE4NS41IDQ0NC43IDE2MCA0MTcgMTYwIDM4My43bDAtOTUuNyAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtOTUuN2MwLTMzLjMgMjUuNS02MSA1OC43LTYzLjhsOC0uN2MxNy42LTEuNSAzMC43LTE2LjkgMjkuMi0zNC41UzIzOS0xLjQgMjIxLjMgLjFsLTggLjdjLTM0LjEgMi44LTY0LjIgMTguOS04NS40IDQyLjktMjEuMi0yNC01MS4yLTQwLTg1LjQtNDIuOWwtOC0uN0MxNy0xLjQgMS42IDExLjcgLjEgMjkuM3oiXX0sRXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1wbHVzIixpY29uOls1NzYsNTEyLFtdLCJlNTAwIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0xNiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNDggMCAwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDh6Il19LE54dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtZG9nIixpY29uOls1MTIsNTEyLFtdLCJlNTczIiwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0xNjAuOSAyODYuMmM0LjggMS4yIDkuOSAxLjggMTUuMSAxLjggMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NCA0NC4yIDBjMTIuMSAwIDIzLjIgNi44IDI4LjYgMTcuN2w3LjIgMTQuMyA2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgNDQuMi0zNS44IDgwLTgwIDgwbC00OCAwIDAgNTAuN2MwIDcuMy01LjkgMTMuMy0xMy4zIDEzLjMtMS44IDAtMy42LS40LTUuMi0xLjFsLTk4LjctNDIuM2MtNi42LTIuOC0xMC44LTkuMy0xMC44LTE2LjQgMC0yLjggLjYtNS41IDEuOS04bDE1LTMwek0xNjAgMTYwbDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LFB4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmVhdGVyLXRoYW4tZXF1YWwiLGljb246WzQ0OCw1MTIsW10sImY1MzIiLCJNMjEuOSA5NC40QzUuMSA4OC44LTMuOSA3MC42IDEuNyA1My45UzI1LjQgMjguMSA0Mi4xIDMzLjZsMzg0IDEyOEM0MzkuMiAxNjYgNDQ4IDE3OC4yIDQ0OCAxOTJzLTguOCAyNi0yMS45IDMwLjRsLTM4NCAxMjhjLTE2LjggNS42LTM0LjktMy41LTQwLjUtMjAuMnMzLjUtMzQuOSAyMC4yLTQwLjVMMzE0LjggMTkyIDIxLjkgOTQuNHpNNDE2IDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDB6Il19LEl4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZS1vcGVuIixpY29uOls1MTIsNTEyLFs2MjEzNV0sImYyYjYiLCJNNjQuNCAxNzUuOEwyNTYgMzMuOSA0NDcuNiAxNzUuOCAyODkuNSAyOTNjLTkuNyA3LjItMjEuNCAxMS0zMy41IDExcy0yMy44LTMuOS0zMy41LTExTDY0LjQgMTc1Ljh6TTI1Ni0zMmMtMTIuMSAwLTIzLjggMy45LTMzLjUgMTFMMjUuOSAxMjQuN0M5LjYgMTM2LjggMCAxNTUuOCAwIDE3Ni4xTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjM5LjljMC0yMC4zLTkuNi0zOS40LTI1LjktNTEuNEwyODkuNS0yMWMtOS43LTcuMi0yMS40LTExLTMzLjUtMTF6Il19LEZ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VuZCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyZCIsIk0xMTIuNCAxNzkuMkMxNDIgMTI3LjcgMTk2LjggOTYgMjU2LjIgOTZzMTE0LjIgMzEuNyAxNDMuOSA4My4yTDUwOC43IDM2OGMxMi4zIDIxLjMtMy4xIDQ4LTI3LjcgNDhMMzEuNSA0MTZjLTI0LjYgMC00MC0yNi42LTI3LjctNDhMMTEyLjQgMTc5LjJ6Il19LE94dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2ljZW1haWwiLGljb246WzY0MCw1MTIsW10sImY4OTciLCJNMTQ0IDE2MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMjYzLjggMzIwYzE1LjMtMjIuOSAyNC4yLTUwLjQgMjQuMi04MCAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDE2MC41IDAgMjQwIDY0LjUgMzg0IDE0NCAzODRsMzUyIDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTNTc1LjUgOTYgNDk2IDk2IDM1MiAxNjAuNSAzNTIgMjQwYzAgMjkuNiA4LjkgNTcuMSAyNC4yIDgwbC0xMTIuNSAwek00OTYgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYweiJdfSxCeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4NSIsIk0yMDAgNDY0bDAtMTcwLjFjMC0zLjktLjUtNy44LTEuNC0xMS42TDE0NC40IDY1LjRDMTYyLjEgNzcuMiAxODguMiA4OCAyMjQgODhzNjEuOS0xMC44IDc5LjYtMjIuNkwyNDkuNCAyODIuM2MtMSAzLjgtMS40IDcuNy0xLjQgMTEuNkwyNDggNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkzLjVjMC05LjUtMi44LTE4LjctOC4xLTI2LjZsLTQ3LjktNzEuOGMtNS4zLTcuOS04LjEtMTcuMS04LjEtMjYuNkwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMuNSAwYy0uMyAwLS42IDAtMSAwLS42IDAtMS4yIDAtMS44IDAtMTguOCAwLTM0LjEgOS43LTQ0LjEgMTguOC05LjMgOC40LTI4LjUgMjEuMi02MS43IDIxLjJzLTUyLjQtMTIuOC02MS43LTIxLjJjLTEwLTkuMS0yNS4zLTE4LjgtNDQuMS0xOC44LS42IDAtMS4yIDAtMS44IDAtLjMgMC0uNiAwLTEgMEwxMTIgMEM4NS41IDAgNjQgMjEuNSA2NCA0OGwwIDk3LjVjMCA5LjUtMi44IDE4LjctOC4xIDI2LjZMOC4xIDI0My45QzIuOCAyNTEuOCAwIDI2MS4xIDAgMjcwLjVMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTA0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6Il19LFJ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdWRpby1kZXNjcmlwdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjI5ZSIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA5NmwwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQgNDggMCAwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0em00OCAzMmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyLTQ4IDB6bTE1Mi05NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTQ4YzAtMzkuOC0zMi4yLTcyLTcyLTcybC00OCAwem00OCAxNDRsLTI0IDAgMC05NiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjR6Il19LEh4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3IixpY29uOls1NzYsNTEyLFsxMTldLCI1NyIsIk0yMC44IDM0YzE2LjUtNi4yIDM1IDIuMiA0MS4yIDE4LjdMMTcyLjIgMzQ2LjcgMjU3LjMgNTVjNC0xMy43IDE2LjUtMjMgMzAuNy0yM3MyNi43IDkuNCAzMC43IDIzTDQwMy44IDM0Ni43IDUxNCA1Mi44YzYuMi0xNi41IDI0LjYtMjQuOSA0MS4yLTE4LjdTNTgwLjIgNTguNyA1NzQgNzUuMmwtMTQ0IDM4NGMtNC44IDEyLjktMTcuNCAyMS4zLTMxLjIgMjAuN3MtMjUuNy05LjgtMjkuNS0yM0wyODggMTc4LjMgMjA2LjcgNDU3Yy0zLjkgMTMuMi0xNS44IDIyLjUtMjkuNSAyM3MtMjYuMy03LjgtMzEuMi0yMC43TDIgNzUuMkMtNC4yIDU4LjcgNC4yIDQwLjIgMjAuOCAzNHoiXX0sSFY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLWRyb3BwZXIiLGljb246WzUxMiw1MTIsWyJleWUtZHJvcHBlci1lbXB0eSIsImV5ZWRyb3BwZXIiXSwiZjFmYiIsIk0zNDEuNiAyOS4ybC0xMDEuNiAxMDEuNi05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTAxLjYtMTAxLjZjMzktMzkgMzktMTAyLjIgMC0xNDEuMXMtMTAyLjItMzktMTQxLjEgMHpNNTUuNCAzMjMuM2MtMTUgMTUtMjMuNCAzNS40LTIzLjQgNTYuNmwwIDQyLjQtMjYuNiAzOS45Yy04LjUgMTIuNy02LjggMjkuNiA0IDQwLjRzMjcuNyAxMi41IDQwLjQgNGwzOS45LTI2LjYgNDIuNCAwYzIxLjIgMCA0MS42LTguNCA1Ni42LTIzLjRsMTA5LjQtMTA5LjQtNDUuMy00NS4zLTEwOS40IDEwOS40Yy0zIDMtNy4xIDQuNy0xMS4zIDQuN2wtMzYuMSAwIDAtMzYuMWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDEwOS40LTEwOS40LTQ1LjMtNDUuMy0xMDkuNCAxMDkuNHoiXX0scXh0PUhWLFZ4dD1IVixhNT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYxNTMyLCJ0aW1lcy1jaXJjbGUiLCJ4bWFyay1jaXJjbGUiXSwiZjA1NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY3IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sVXh0PWE1LGp4dD1hNSxXeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaWxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTA0MSIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOTYuNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOEw5NiA0MTZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDk2em00MDggMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTExMiAxMzZsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptMTc2LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0yNjQgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6Il19LHFWPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cmtpc2gtbGlyYS1zaWduIixpY29uOls0NDgsNTEyLFsidHJ5IiwidHVya2lzaC1saXJhIl0sImUyYmIiLCJNMTYwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDMuNiAxMjEuNC0zNC43YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTEzNC42IDM4LjUgMCA0Ni4xIDEyMS40LTM0LjdjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtMTM0LjYgMzguNSAwIDE2Mi41IDcyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyYzAgODguNC03MS42IDE2MC0xNjAgMTYwbC0xMDQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzYuMi0yNS40IDcuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDM4LjYtMTEgMC00Ni4xLTI1LjQgNy4zYy0xMi43IDMuNi0yNi0zLjctMjkuNy0xNi41czMuNy0yNiAxNi41LTI5LjdsMzguNi0xMSAwLTYxLjljMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LEd4dD1xVixZeHQ9cVYsWnh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbGNhbm8iLGljb246WzUxMiw1MTIsWzEyNzc1NV0sImY3NzAiLCJNMTYwIDE0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMxNS43IDAgMzAgNS42IDQxLjIgMTUgMTEuMi0xOC42IDMxLjYtMzEgNTQuOC0zMXM0My42IDEyLjQgNTQuOCAzMWMxMS4xLTkuNCAyNS41LTE1IDQxLjItMTUgMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRjLTE0LjcgMC0yOC4zLTUtMzkuMS0xMy4zbC0zMiA0OEMyNzUuMyAxODcgMjY2IDE5MiAyNTYgMTkycy0xOS4zLTUtMjQuOS0xMy4zbC0zMi00OEMxODguMyAxMzkgMTc0LjcgMTQ0IDE2MCAxNDR6TTE0NCAzNTJsNDguNC0yNC4yYzEwLjItNS4xIDIxLjYtNy44IDMzLTcuOCAxOS42IDAgMzguNCA3LjggNTIuMiAyMS42bDMyLjUgMzIuNWM2LjMgNi4zIDE0LjkgOS45IDIzLjggOS45IDExLjMgMCAyMS44LTUuNiAyOC0xNWw5LjctMTQuNi01OS02Ni4zYy05LjEtMTAuMi0yMi4yLTE2LjEtMzUuOS0xNi4xbC00MS44IDBjLTEzLjcgMC0yNi44IDUuOS0zNS45IDE2LjFsLTU5LjkgNjcuNCA0LjctMy41em0xOS40LTk1LjhjMTguMi0yMC41IDQ0LjMtMzIuMiA3MS44LTMyLjJsNDEuOCAwYzI3LjQgMCA1My41IDExLjcgNzEuOCAzMi4ybDE1MC4yIDE2OWM4LjUgOS41IDEzLjIgMjEuOSAxMy4yIDM0LjcgMCAyOC44LTIzLjQgNTIuMi01Mi4yIDUyLjJMNTIuMiA1MTJDMjMuNCA1MTIgMCA0ODguNiAwIDQ1OS44IDAgNDQ3LjEgNC43IDQzNC43IDEzLjIgNDI1LjJsMTUwLjItMTY5eiJdfSxYeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1zcGFya2xlcyIsaWNvbjpbNTEyLDUxMixbXSwiZjcyYiIsIk00NjQgNi4xYzkuNS04LjUgMjQtOC4xIDMzIC45bDggOGM5IDkgOS40IDIzLjUgLjkgMzNsLTg1LjggOTUuOWMtMi42IDIuOS00LjEgNi43LTQuMSAxMC43bDAgMjEuNGMwIDguOC03LjIgMTYtMTYgMTZsLTE1LjggMGMtNC42IDAtOC45IDEuOS0xMS45IDUuM0wxMDAuNyA1MDAuOWMtNi4zIDcuMS0xNS4zIDExLjEtMjQuOCAxMS4xLTguOCAwLTE3LjMtMy41LTIzLjUtOS44TDkuNyA0NTkuN2MtNi4yLTYuMi05LjctMTQuNy05LjctMjMuNSAwLTkuNSA0LTE4LjUgMTEuMS0yNC44bDExMS42LTk5LjhjMy40LTMgNS4zLTcuNCA1LjMtMTEuOWwwLTI3LjZjMC04LjggNy4yLTE2IDE2LTE2bDM0LjYgMGMzLjkgMCA3LjctMS41IDEwLjctNC4xTDQ2NCA2LjF6TTQzMiAyODhjMy42IDAgNi43IDIuNCA3LjcgNS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOC0xNC44IDUxLjdjLTEgMy40LTQuMSA1LjgtNy43IDUuOHMtNi43LTIuNC03LjctNS44bC0xNC44LTUxLjctNTEuNy0xNC44Yy0zLjQtMS01LjgtNC4xLTUuOC03LjdzMi40LTYuNyA1LjgtNy43bDUxLjctMTQuOCAxNC44LTUxLjdjMS0zLjQgNC4xLTUuOCA3LjctNS44ek04Ny43IDY5LjhsMTQuOCA1MS43IDUxLjcgMTQuOGMzLjQgMSA1LjggNC4xIDUuOCA3LjdzLTIuNCA2LjctNS44IDcuN2wtNTEuNyAxNC44LTE0LjggNTEuN2MtMSAzLjQtNC4xIDUuOC03LjcgNS44cy02LjctMi40LTcuNy01LjhMNTcuNSAxNjYuNSA1LjggMTUxLjdjLTMuNC0xLTUuOC00LjEtNS44LTcuN3MyLjQtNi43IDUuOC03LjdsNTEuNy0xNC44IDE0LjgtNTEuN2MxLTMuNCA0LjEtNS44IDcuNy01LjhzNi43IDIuNCA3LjcgNS44ek0yMDggMGMzLjcgMCA2LjkgMi41IDcuOCA2LjFsNi44IDI3LjMgMjcuMyA2LjhjMy42IC45IDYuMSA0LjEgNi4xIDcuOHMtMi41IDYuOS02LjEgNy44bC0yNy4zIDYuOC02LjggMjcuM2MtLjkgMy42LTQuMSA2LjEtNy44IDYuMXMtNi45LTIuNS03LjgtNi4xbC02LjgtMjcuMy0yNy4zLTYuOGMtMy42LS45LTYuMS00LjEtNi4xLTcuOHMyLjUtNi45IDYuMS03LjhsMjcuMy02LjggNi44LTI3LjNjLjktMy42IDQuMS02LjEgNy44LTYuMXoiXX0sUXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUiLGljb246WzM4NCw1MTIsW10sImYxMzAiLCJNMTkyIDBDMTM5IDAgOTYgNDMgOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2ek00OCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxNzAuNyAwIDE4NGwwIDQwYzAgOTcuOSA3My4zIDE3OC43IDE2OCAxOTAuNWwwIDQ5LjUtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ5LjVjOTQuNy0xMS44IDE2OC05Mi42IDE2OC0xOTAuNWwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggMzAzLjUgNDggMjI0bDAtNDB6Il19LEt4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm93biIsaWNvbjpbNTc2LDUxMixbMTI4MDgxXSwiZjUyMSIsIk0zMTMgODcuMmM5LjItNy4zIDE1LTE4LjYgMTUtMzEuMiAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDEyLjYgNS45IDIzLjkgMTUgMzEuMkwxOTQuNiAxOTQuOGMtMTAgMTUuNy0zMS4zIDE5LjYtNDYuMiA4LjRMODguOSAxNTguN2M0LjUtNi40IDcuMS0xNC4zIDcuMS0yMi43IDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgMjEuOCAxNy41IDM5LjYgMzkuMiA0MEw4Ny44IDM5My41YzQuNyAzMS4zIDMxLjYgNTQuNSA2My4zIDU0LjVsMjczLjggMGMzMS43IDAgNTguNi0yMy4yIDYzLjMtNTQuNUw1MjAuOCAxNzZjMjEuNy0uNCAzOS4yLTE4LjIgMzkuMi00MCAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDguNCAyLjYgMTYuMyA3LjEgMjIuN2wtNTkuNCA0NC42Yy0xNC45IDExLjItMzYuMiA3LjMtNDYuMi04LjRMMzEzIDg3LjJ6Il19LEp4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LXR1cm4tbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU4MCIsIk0tLjUgMTEzbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzEtMzEgMzUwLjEgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OGwtMzUwLjEgMCAzMS0zMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOVM4MC45LTIuMyA3MS41IDdMLS41IDc5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXpNNjAuMyAyOTIuNkwzNy4xIDQ3NmMtMi40IDE5LjEgMTIuNSAzNiAzMS43IDM2bDE1NC41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMTcuNGMwLTUuOSA0LjctMTAuNiAxMC42LTEwLjYgNCAwIDcuNyAyLjMgOS41IDUuOWw2OC4yIDEzNi41YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdsNzEuOSAwYzE5LjMgMCAzNC4yLTE2LjkgMzEuNy0zNkw0NTIuNyAyOTIuN2MtMS4yLTkuNy02LjktMTguNC0xNS4zLTIzLjRMMjcxLjkgMTY5LjljLTEwLjItNi4xLTIyLjktNi4xLTMzLjEgLjFMNzUuNCAyNjkuM2MtOC4zIDUuMS0xMy45IDEzLjctMTUuMSAyMy4zeiJdfSxaaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZmFzdCIsaWNvbjpbNjQwLDUxMixbInNoaXBwaW5nLWZhc3QiXSwiZjQ4YiIsIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyIDUwLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w2MjEuMyAxOTJjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0w2NDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zLjMgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRsLTEwMi42IDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0zLjMgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC00OC00MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDI0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCAxNDRjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzEwLjcgOTYgMjQgOTZsNDAgMHpNNTc2IDI4OGwwLTUwLjctNDUuMy00NS4zLTUwLjcgMCAwIDk2IDk2IDB6TTI1NiA0MjRhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHptMjMyIDQwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sZWJ0PVppZSxYaWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1wZW4iLGljb246WzY0MCw1MTIsWyJ1c2VyLWVkaXQiXSwiZjRmZiIsIk0yNTYuMSAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NmMtOTguNSAwLTE3OC4zIDc5LjgtMTc4LjMgMTc4LjMgMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMTk2LjUgMCAxMC45LTU0LjVjNC4zLTIxLjcgMTUtNDEuNiAzMC42LTU3LjJsNjcuMy02Ny4zYy0yOC0xOC4zLTYxLjQtMjguOS05Ny40LTI4LjlsLTU5LjQgMHpNMzMyLjMgNDY2LjlsLTExLjkgNTkuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42IDEgMCAxLjktLjEgMi45LS4zbDU5LjYtMTEuOWMxMi40LTIuNSAyMy44LTguNiAzMi43LTE3LjVsMTE4LjktMTE4LjktODAtODAtMTE4LjkgMTE4LjljLTguOSA4LjktMTUgMjAuMy0xNy41IDMyLjd6bTI2Ny44LTEyM2MyMi4xLTIyLjEgMjIuMS01Ny45IDAtODBzLTU3LjktMjIuMS04MCAwbC0yOC44IDI4LjggODAgODAgMjguOC0yOC44eiJdfSx0YnQ9WGllLGFidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWNsb2NrIixpY29uOls1NzYsNTEyLFtdLCJmNGZkIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMTk0LjMgMzA0bDU5LjQgMGMzLjkgMCA3LjkgLjEgMTEuOCAuNC0xNi4yIDI4LjItMjUuNSA2MC44LTI1LjUgOTUuNiAwIDQxLjggMTMuNCA4MC41IDM2IDExMkw0NS43IDUxMkMyOS4zIDUxMiAxNiA0OTguNyAxNiA0ODIuMyAxNiAzODMuOCA5NS44IDMwNCAxOTQuMyAzMDR6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQ0LTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzIgMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNnoiXX0scmJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob3dlciIsaWNvbjpbNTEyLDUxMixbMTI4NzAzXSwiZjJjYyIsIk02NCAxMzEuOWMwLTE5LjggMTYuMS0zNS45IDM1LjktMzUuOSA5LjUgMCAxOC42IDMuOCAyNS40IDEwLjVsMTYuMiAxNi4yYy0yMSAzOC45LTE3LjQgODcuNSAxMC45IDEyM0wxNTEgMjQ3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBMMzQ1IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xLjMgMS4zYy0zNS41LTI4LjMtODQuMS0zMS45LTEyMy0xMC45TDE3MC41IDYxLjNDMTUxLjggNDIuNSAxMjYuNCAzMiA5OS45IDMyIDQ0LjcgMzIgMCA3Ni43IDAgMTMxLjlMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMxNi4xek0yNTYgMzUyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC0xMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMyLTMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUWllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC11cCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS11cCJdLCJmMTUxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAxNjBjNi43IDAgMTMgMi44IDE3LjYgNy43bDEwNCAxMTJjNi41IDcgOC4yIDE3LjIgNC40IDI1LjlTMzM3LjUgMzIwIDMyOCAzMjBsLTIwOCAwYy05LjUgMC0xOC4yLTUuNy0yMi0xNC40cy0yLjEtMTguOSA0LjQtMjUuOWwxMDQtMTEyYzQuNS00LjkgMTAuOS03LjcgMTcuNi03Ljd6Il19LGlidD1RaWUsS2llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcC1sb2NhdGlvbiIsaWNvbjpbNjQwLDUxMixbIm1hcC1tYXJrZWQiXSwiZjU5ZiIsIk01NzYgNDhjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRMNDEzLjUgNzcuNSAyMzQuMSAxNy42Yy04LjEtMi43LTE2LjgtMi4xLTI0LjQgMS43bC0xMjggNjRDNzAuOCA4OC44IDY0IDk5LjkgNjQgMTEybDAgMzUyYzAgMTEuMSA1LjcgMjEuNCAxNS4yIDI3LjJzMjEuMiA2LjQgMzEuMSAxLjRsMTE2LjEtNTguMSAxNzMuMyA1Ny44Yy00LjMtNi40LTguNS0xMy4xLTEyLjYtMTkuOS0xMS0xOC4zLTIxLjktMzkuMy0zMC02MS44bC0xMDEuMi0zMy43IDAtMjg0LjUgMTI4IDQyLjcgMCA5OS4zYzMxLTM1LjggNzctNTguNCAxMjgtNTguNCAyMi42IDAgNDQuMiA0LjQgNjQgMTIuNUw1NzYgNDh6TTM5MiAzNDEuOWMwIDY4LjkgNjQuMSAxNTAuNCA5OC42IDE4OS4zIDExLjYgMTMgMzEuMyAxMyA0Mi45IDAgMzQuNS0zOC45IDk4LjYtMTIwLjQgOTguNi0xODkuMyAwLTY1LjEtNTMuNy0xMTcuOS0xMjAtMTE3LjlTMzkyIDI3Ni44IDM5MiAzNDEuOXoiXX0sb2J0PUtpZSxzYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLWZhbmN5IixpY29uOls1MTIsNTEyLFsxMjgzOTUsMTAwMDJdLCJmNWFjIiwiTTM3My41IDI3LjFjMTUtMTcuMiAzNi43LTI3LjEgNTkuNi0yNy4xIDQzLjYgMCA3OSAzNS40IDc5IDc5IDAgMjIuOC05LjkgNDQuNi0yNy4xIDU5LjZMMjgzLjcgMzEzLjggMjczIDMwMyAyMDkgMjM5IDE5OC4yIDIyOC4zIDM3My41IDI3LjF6TTE2MS4xIDI1OUMxNjIgMjYwIDE4OCAyODYgMjM5IDMzN2wxMy45IDEzLjktMTcuMSA3NC4yYy0zLjkgMTcuMS0xNi45IDMwLjctMzMuOCAzNS40bC0xNjkuOCA0Ny41IDkyLjMtOTIuM2MxLjIgLjEgMi4zIC4yIDMuNSAuMiAxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyYzAgMS4yIC4xIDIuNCAuMiAzLjVMMy45IDQ3OS44IDUxLjUgMzEwYzQuNy0xNi45IDE4LjMtMjkuOSAzNS40LTMzLjhMMTYxLjEgMjU5eiJdfSxWVj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJldXJvLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzNjQsImV1ciIsImV1cm8iXSwiZjE1MyIsIk03My4zIDE5MkMxMDAuOCA5OS41IDE4Ni41IDMyIDI4OCAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy02NS42IDAtMTIyIDM5LjUtMTQ2LjcgOTZMMjcyIDE5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQzLjIgMGMtLjUgNS4zLS44IDEwLjYtLjggMTZzLjMgMTAuNyAuOCAxNkwyNzIgMjcyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMzAuNyAwYzI0LjcgNTYuNSA4MS4xIDk2IDE0Ni43IDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTEwMS41IDAtMTg3LjItNjcuNS0yMTQuNy0xNjBMNDAgMzIwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0LjYgMGMtLjctMTAuNS0uNy0yMS41IDAtMzJMNDAgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDMzLjMgMHoiXX0sbmJ0PVZWLGxidD1WVixjYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTBiIiwiTTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDIxNy42IDIwMmMtMTAuMi0xLjctMjAuNy0yLjYtMzEuMy0yLjYtNzguNiAwLTE0Ni4yIDQ3LjItMTc1LjkgMTE0LjgtNS0xLjgtMTAuNS0yLjgtMTYuMS0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTAuOSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4yIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNTU1LjMgMzQwLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnoiXX0sZGJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpcmEtc2lnbiIsaWNvbjpbMzg0LDUxMixbODM1Nl0sImYxOTUiLCJNODQuOSAyNTZsLTI4LjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMS42IDBDNTMuMiAxMjQuNyAxMTYuOCA0MiAyMDcuNiA0Mmw4LjIgMGMzMy42IDAgNjYuMiAxMS4zIDkyLjUgMzIuMmwxNi4xIDEyLjdjMTMuOSAxMSAxNi4yIDMxLjEgNS4yIDQ1cy0zMS4xIDE2LjItNDUgNS4ybC0xNi4xLTEyLjdjLTE1LTExLjktMzMuNi0xOC40LTUyLjgtMTguNGwtOC4yIDBjLTUzLjggMC05MC4xIDUyLjktNzMuNSAxMDJsMTYyLjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ1LjEgMGMyLjMgMTAuNiAzLjYgMjEuMyAzLjkgMzJsMTQxLjIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwxNTAgMzM2Yy00LjggMTguNi0xMi42IDM2LjUtMjMuNiA1Mi45bC0xOC4xIDI3LjEgMjEyLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjcyIDBjLTExLjggMC0yMi42LTYuNS0yOC4yLTE2LjlzLTUtMjMgMS42LTMyLjlsNTEuMi03Ni44YzMuNy01LjYgNi45LTExLjQgOS40LTE3LjRsLTI2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMzQuOCAwYy0uNS0xMC44LTIuNi0yMS42LTYuNC0zMnoiXX0sSjY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieWVuLXNpZ24iLGljb246WzM4NCw1MTIsWzE2NSwiY255IiwianB5Iiwicm1iIiwieWVuIl0sImYxNTciLCJNNzQuOSA0Ni43Yy05LjYtMTQuOS0yOS40LTE5LjItNDQuMi05LjZTMTEuNSA2Ni40IDIxLjEgODEuM0wxNDMuNyAyNzIgODggMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCAzMi03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDggNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTMyIDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU1LjcgMCAxMjIuNi0xOTAuN2M5LjYtMTQuOSA1LjMtMzQuNy05LjYtNDQuMnMtMzQuNy01LjMtNDQuMiA5LjZMMTkyIDIyOC44IDc0LjkgNDYuN3oiXX0sZmJ0PUo2LHVidD1KNixwYnQ9SjYsaGJ0PUo2LG1idD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3gtb3BlbiIsaWNvbjpbNjQwLDUxMixbXSwiZjQ5ZSIsIk01NjAuMyAyMzcuMmMxMC40IDExLjggMjguMyAxNC40IDQxLjggNS41IDE0LjctOS44IDE4LjctMjkuNyA4LjktNDQuNGwtNDgtNzJjLTIuOC00LjItNi42LTcuNy0xMS4xLTEwLjJMMzUxLjQgNC43Yy0xOS4zLTEwLjctNDIuOC0xMC43LTYyLjIgMEw4OC44IDExNmMtNS40IDMtOS43IDcuNC0xMi42IDEyLjhMMjcuNyAyMTguN2MtMTIuNiAyMy40LTMuOCA1Mi41IDE5LjYgNjUuMWwzMyAxNy43IDAgNTMuM2MwIDIzIDEyLjQgNDQuMyAzMi40IDU1LjdsMTc2IDk5LjdjMTkuNiAxMS4xIDQzLjUgMTEuMSA2My4xIDBsMTc2LTk5LjdjMjAuMS0xMS40IDMyLjQtMzIuNiAzMi40LTU1LjdsMC0xMTcuNXptLTI0MC05LjhMMTcwLjIgMTQ0IDMyMC4zIDYwLjYgNDcwLjQgMTQ0IDMyMC4zIDIyNy40em0tNDEuNSA1MC4ybC0yMS4zIDQ2LjItMTY1LjgtODguOCAyNS40LTQ3LjIgMTYxLjcgODkuOHoiXX0sZ2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZpZWxkIixpY29uOls2NDAsNTEyLFtdLCJlNThkIiwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDIyNCAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmw0MC40IDBjMzIuNCAwIDYxLjYgMTkuNiA3NCA0OS41bDQzLjggMTA2LjMgMS43IDQuMiAyNC43IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtLjQgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0yLjcgLjEtNS40IC40LThsLTE0NC43IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMy42IC4yLTcuMSAuNi0xMC41LTE5LTYuNC0zMi42LTI0LjQtMzIuNi00NS41bDAtNDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMC0zMnptMzUyIDMybDAgOTYgODIuMSAwLTM1LjQtODYuMWMtMi41LTYtOC4zLTkuOS0xNC44LTkuOUwzODQgMTI4ek0xOTIgMzkyYTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTI4MCA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LHhidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1waW4tbG9jayIsaWNvbjpbNTEyLDUxMixbXSwiZTUxZiIsIk0wIDE4OC42QzAgODQuNCA4NiAwIDE5MiAwIDI5NC4xIDAgMzc3LjYgNzguMyAzODMuNiAxNzcgMzIwLjcgMTg1LjEgMjcyIDIzOC44IDI3MiAzMDRsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgNzUuN2MtOS45IDExLjYtMTguOSAyMS43LTI2LjQgMjkuOC0xMS44IDEyLjgtMzEuNSAxMi44LTQzLjMgMC01MC4yLTU0LjUtMTcwLjQtMTk3LjUtMTcwLjQtMzE2Ljh6TTE5MiAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bTI0MCA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMjg4IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sSmllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1wcmF5aW5nIixpY29uOlszODQsNTEyLFsxMjg3MjAsInByYXkiXSwiZjY4MyIsIk0zMjAgNjRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek0yMDAuNyAyNjRsMjIuOSAzMS41YzYuNSA4LjkgMTYuMyAxNC43IDI3LjIgMTYuMXMyMS45LTEuNyAzMC40LTguN2w4OC03MmMxNy4xLTE0IDE5LjYtMzkuMiA1LjYtNTYuM3MtMzkuMi0xOS42LTU2LjMtNS42bC01NS4yIDQ1LjItMjYuMi0zNmMtMTUuNi0yMS41LTQwLjYtMzQuMi02Ny4yLTM0LjItMzAuOSAwLTU5LjIgMTcuMS03My42IDQ0LjRMNDcuOCAyODAuOWMtMjAuMiAzOC41LTkuNCA4NS45IDI1LjYgMTExLjhMMTI2LjYgNDMyIDQwIDQzMmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwyMDggMGMxNy4zIDAgMzIuNi0xMS4xIDM4LTI3LjVzLS4zLTM0LjQtMTQuMi00NC43bC0xMTYuMS04NS44IDQ1LTkweiJdfSxiYnQ9SmllLHZidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtbGlzdCIsaWNvbjpbMzg0LDUxMixbXSwiZjQ2ZCIsIk0zMTEuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyek0yNDggMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMHpNMTI4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zMiAwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTAgMTI4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTk2IDQxNmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHlidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWNrLWRvbGxhciIsaWNvbjpbNTEyLDUxMixbMTI4MTc2XSwiZjgxZCIsIk0zMjggMTEybC0xNDQgMC0zNy4zLTc0LjVjLTEuOC0zLjYtMi43LTcuNi0yLjctMTEuNiAwLTE0LjMgMTEuNi0yNS45IDI1LjktMjUuOUwzNDIuMSAwYzE0LjMgMCAyNS45IDExLjYgMjUuOSAyNS45IDAgNC0uOSA4LTIuNyAxMS42TDMyOCAxMTJ6TTE2OS42IDE2MGwxNzIuOCAwIDQ4LjcgNDAuNkM0NTcuNiAyNTYgNDk2IDMzOCA0OTYgNDI0LjUgNDk2IDQ3Mi44IDQ1Ni44IDUxMiA0MDguNSA1MTJsLTMwNS4xIDBDNTUuMiA1MTIgMTYgNDcyLjggMTYgNDI0LjUgMTYgMzM4IDU0LjQgMjU2IDEyMC45IDIwMC42TDE2OS42IDE2MHpNMjYwIDIyNGMtMTEgMC0yMCA5LTIwIDIwbDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDIxNiAzODRjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjB6Il19LHdidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VudGFpbi1zdW4iLGljb246WzU3Niw1MTIsW10sImU1MmYiLCJNMjU2LjUgMGMxNC43IDAgMjguMiA4LjEgMzUuMiAyMWwyMTYgNDAwYzYuNyAxMi40IDYuNCAyNy40LS44IDM5LjUtNy4yIDEyLjEtMjAuMyAxOS41LTM0LjMgMTkuNWwtNDMyIDBjLTE0LjEgMC0yNy4xLTcuNC0zNC4zLTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMCAyLjktNC42QzIzMS43IDYuMiAyNDMuNiAwIDI1Ni41IDB6TTE3MC40IDI0OS45bDI2LjggMjYuOGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw0My4zLTQzLjNjNi02IDE0LjEtOS40IDIyLjYtOS40bDQyLjggMC03Mi4xLTEzMy41LTg2LjEgMTU5LjR6TTQ5Ni41IDE2MGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHoiXX0sZW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXdpZGUtc2hvcnQiLGljb246WzU3Niw1MTIsWyJzb3J0LWFtb3VudC11cCJdLCJmMTYxIiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNMzIwIDQ4MGwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4bDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnoiXX0sTWJ0PWVvZSx6YnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU5MiIsIk0yMjQgMTI4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTc2IDMzNmMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEybDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOHpNMzkyIDE0NGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI3LjIgMTAwLjRjOS4xLTIuOSAxOC44LTQuNCAyOC44LTQuNCA1MyAwIDk2IDQzIDk2IDk2bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC03OC44IDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC04YzAtMzQuMS0xMC42LTY1LjctMjguOC05MS42em0tMjYyLjQgMGMtMTguMiAyNi0yOC44IDU3LjUtMjguOCA5MS42bDAgOGMwIDguNCAxLjQgMTYuNSA0LjEgMjRsLTc4LjggMEM0MS42IDM2OCAzMiAzNTguNCAzMiAzNDYuN0wzMiAzMzZjMC01MyA0My05NiA5Ni05NiAxMCAwIDE5LjcgMS41IDI4LjggNC40ek03MiAxNDRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0wIDQ0MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxrYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1vZi1kYXZpZCIsaWNvbjpbNTEyLDUxMixbMTAwMTddLCJmNjlhIiwiTTQxNS45IDMxMS45bC0yNy44IDQ4LjEgNTUuNyAwLTI3LjgtNDguMXpNMzgzLjYgMjU2bC02MC4yLTEwNC0xMzQuOCAwLTYwLjIgMTA0IDYwLjIgMTA0IDEzNC44IDAgNjAuMi0xMDR6bTY0LjcgMGw1OC40IDEwMC45YzMuNSA2IDUuMyAxMi44IDUuMyAxOS43IDAgMjEuNy0xNy42IDM5LjQtMzkuNCAzOS40bC0xMTcgMC02MS4zIDEwNS44QzI4Ni41IDUzNS42IDI3MS44IDU0NCAyNTYgNTQ0cy0zMC41LTguNC0zOC40LTIyLjJsLTYxLjMtMTA1LjgtMTE3IDBjLTIxLjcgMC0zOS40LTE3LjYtMzkuNC0zOS40IDAtNi45IDEuOC0xMy43IDUuMy0xOS43TDYzLjcgMjU2IDUuMyAxNTUuMUMxLjggMTQ5LjEgMCAxNDIuMyAwIDEzNS40IDAgMTEzLjYgMTcuNiA5NiAzOS40IDk2bDExNyAwIDYxLjMtMTA1LjhDMjI1LjUtMjMuNiAyNDAuMi0zMiAyNTYtMzJzMzAuNSA4LjQgMzguNCAyMi4ybDYxLjMgMTA1LjggMTE3IDBjMjEuNyAwIDM5LjQgMTcuNiAzOS40IDM5LjQgMCA2LjktMS44IDEzLjctNS4zIDE5LjdMNDQ4LjMgMjU2ek0zODguMSAxNTJsMjcuOCA0OC4xIDI3LjgtNDguMS01NS43IDB6TTI5MSA5NmwtMzUtNjAuNC0zNSA2MC40IDcwIDB6TTEyMy45IDE1MmwtNTUuNyAwIDI3LjggNDguMSAyNy44LTQ4LjF6TTk2LjEgMzExLjlsLTI3LjggNDguMSA1NS43IDAtMjcuOC00OC4xek0yMjEgNDE2bDM1IDYwLjQgMzUtNjAuNC03MCAweiJdfSxTYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZXMtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjQ4MSIsIk05NiAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgxLjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0OTMuMyAyOTAuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiA2NGMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMEMxMjQuNyAwIDk2IDI4LjcgOTYgNjRsMCAyODh6TTI4OCAxMTJsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZ6TTQ4IDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEwNi43IDAgMTIwTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzI4eiJdfSxDYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXVzdHJhbC1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMGE5IiwiTTI2Ni41IDI0MGwtODUgMCA0Mi41LTEwNi40IDQyLjUgMTA2LjR6bTY4LjkgMEwyNjIuOSA1OC4zQzI1Ni41IDQyLjQgMjQxLjEgMzIgMjI0IDMycy0zMi41IDEwLjQtMzguOSAyNi4zTDExMi42IDI0MCAzMiAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjEuNCAwLTE5LjIgNDgtNDIuMyAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDIzLjEgMC0yMC44IDUyLjFjLTYuNiAxNi40IDEuNCAzNSAxNy45IDQxLjZzMzUtMS40IDQxLjYtMTcuOWwzMC4zLTc1LjkgMjAwIDAgMzAuMyA3NS45YzYuNiAxNi40IDI1LjIgMjQuNCA0MS42IDE3LjlzMjQuNC0yNS4yIDE3LjktNDEuNkwzOTIuOSAzODQgNDE2IDM4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDIuMyAwLTE5LjItNDggNjEuNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MC42IDB6bS00OS43IDQ4bDE5LjIgNDgtMTYxLjYgMCAxOS4yLTQ4IDEyMy4zIDB6Il19LExidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtdXNlciIsaWNvbjpbMzg0LDUxMixbXSwiZjdmMyIsIk0zMTEuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyek0yNDggMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMHpNMTkyIDM0NGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNOTguMyA0MTNjLTEyLjkgMTUuNiAyLjIgMzUgMjIuNCAzNWwxNDIuNSAwYzIwLjIgMCAzNS4zLTE5LjQgMjIuNC0zNS0xNC43LTE3LjctMzYuOS0yOS02MS43LTI5bC02NCAwYy0yNC44IDAtNDcgMTEuMy02MS43IDI5eiJdfSxUYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTI4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05Mi42IDQ0OGwxOTguOCAwYzE1LjggMCAyOC42LTEyLjggMjguNi0yOC42IDAtNy4zLTIuOC0xNC40LTcuOS0xOS43TDIxNS4zIDI5Ny45Yy02LTYuMy0xNC40LTkuOS0yMy4yLTkuOWwtLjMgMGMtOC44IDAtMTcuMSAzLjYtMjMuMiA5LjlMNzEuOSAzOTkuN0M2Ni44IDQwNSA2NCA0MTIuMSA2NCA0MTkuNCA2NCA0MzUuMiA3Ni44IDQ0OCA5Mi42IDQ0OHoiXX0sdG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1yaWdodCJdLCJmMTUyIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zMjAgMjU2YzAgNi43LTIuOCAxMy03LjcgMTcuNmwtMTEyIDEwNGMtNyA2LjUtMTcuMiA4LjItMjUuOSA0LjRTMTYwIDM2OS41IDE2MCAzNjBsMC0yMDhjMC05LjUgNS43LTE4LjIgMTQuNC0yMnMxOC45LTIuMSAyNS45IDQuNGwxMTIgMTA0YzQuOSA0LjUgNy43IDEwLjkgNy43IDE3LjZ6Il19LF9idD10b2UsQWJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWwiLGljb246WzUxMiw1MTIsWzEyOTUxNF0sImY0OTIiLCJNMzQyLjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wzMDYuNyA2NCAyOC4xIDM0Mi42QzEwLjEgMzYwLjYgMCAzODUgMCA0MTAuNUwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDUuNSAwYzI1LjUgMCA0OS45LTEwLjEgNjcuOS0yOC4xbDI3OC42LTI3OC42IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHpNMjA1LjMgMjU2bDE0Ni43LTE0Ni43IDUwLjcgNTAuNy05NiA5Ni0xMDEuNSAweiJdfSwkYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVsaWNvcHRlciIsaWNvbjpbNTc2LDUxMixbMTI4NjQxXSwiZjUzMyIsIk0xNzYgMzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTUyIDAgMCA0OC0yMjAuOCAwLTMyLjgtMzkuNEM2OS45IDgzLjIgNjMuMSA4MCA1NiA4MEwyNCA4MEMxNS43IDgwIDggODQuMyAzLjYgOTEuNHMtNC44IDE1LjktMS4xIDIzLjRsNDggOTZDNTQuNiAyMTguOSA2Mi45IDIyNCA3MiAyMjRsMTA3LjggMCAxMDQgMTQzLjFjMTUuMSAyMC43IDM5LjEgMzIuOSA2NC43IDMyLjlsNzUuNSAwYzc1LjEgMCAxMzYtNjAuOSAxMzYtMTM2UzQ5OS4xIDEyOCA0MjQgMTI4bC00OCAwIDAtNDggMTUyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTc2IDMyek0zNzYgMTkybDQ4IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJzLTMyLjIgNzItNzIgNzJsLTQ4IDAgMC0xNDR6TTU1MiA0MTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0IDAgNC40LTMuNiA4LTggOGwtMjcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LERidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaXR0ZW4iLGljb246WzQ0OCw1MTIsW10sImY3YjUiLCJNMzUyIDM4NEw2NCAzODQgNS40IDE3OC45QzEuOCAxNjYuNCAwIDE1My40IDAgMTQwLjMgMCA2Mi44IDYyLjggMCAxNDAuMyAwbDMuNCAwYzY2IDAgMTIzLjUgNDQuOSAxMzkuNSAxMDguOWwzMS40IDEyNS44IDE3LjYtMjAuMUMzNDQuOCAyMDAuMiAzNjIuOSAxOTIgMzgyIDE5MmwyLjggMGMzNC45IDAgNjMuMyAyOC4zIDYzLjMgNjMuMyAwIDE1LjktNiAzMS4yLTE2LjggNDIuOUwzNTIgMzg0ek0zMiA0NjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZ6Il19LEVidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXMtcHVtcCIsaWNvbjpbNTEyLDUxMixbOTk4MV0sImY1MmYiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwyNTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MiA4IDBjNDguNiAwIDg4IDM5LjQgODggODhsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTU0Yy0yNy42LTcuMS00OC0zMi4yLTQ4LTYybDAtNTkuNS0yNS44LTI4LjNjLTguOS05LjgtOC4yLTI1IDEuNi0zMy45czI1LTguMiAzMy45IDEuNmw3MS43IDc4LjhjOS40IDEwLjMgMTQuNiAyMy43IDE0LjYgMzcuN0w1MTIgMzc2YzAgMzkuOC0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcybDAtMzJjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTggMCAwIDE2MS40YzkuMyAzLjMgMTYgMTIuMiAxNiAyMi42IDAgMTMuMy0xMC43IDI0LTI0IDI0TDQwIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC41IDYuNy0xOS4zIDE2LTIyLjZMMzIgNjR6TTk2IDgwbDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNkwxMTIgNjRjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sTmJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTRlOCIsIk02NCAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhsNDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA4MS40Yy0yNC40LTExLjItNTEuNC0xNy40LTgwLTE3LjQtODcuNyAwLTE2MS43IDU4LjgtMTg0LjcgMTM5LjItNy4xLTEuMy0xNC4xLTQuMi0yMC4xLTguOGwtMjA4LTE1NkM3MS4xIDE0MS4zIDY0IDEyNy4xIDY0IDExMnpNMzA0IDM2OGMwIDI4LjYgNi4yIDU1LjYgMTcuNCA4MEwxMjggNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE4OCAxOTguNCAxNDguOGMxMi42IDkuNCAyNi45IDE1LjQgNDEuNyAxNy45IDAgMS44LS4xIDMuNS0uMSA1LjN6bTQ4IDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LGFvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc2thdGluZyIsaWNvbjpbNTEyLDUxMixbInNrYXRpbmciXSwiZjdjNSIsIk0zNjggNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMjggMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE1MC4xIDBjNDkuOSAwIDc0LjkgNjAuMyAzOS42IDk1LjZsLTYzLjkgNjMuOSA2OS44IDMxYzE3LjMgNy43IDI4LjUgMjQuOSAyOC41IDQzLjlsMCA4NS42YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNzUuMi04Mi40LTM2LjZjLTQxLTE4LjItNTEtNzItMTkuMy0xMDMuN2w0MC40LTQwLjQtOTguNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNODkuNCAzNjEuNGw3NS45LTc1LjljNy43IDE5LjcgMjEuNiAzNy4zIDQxIDQ5LjZsLTcxLjYgNzEuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6bTM0Ni41IDg3LjFjOC42IDIuMSAxMy44IDEwLjggMTEuNiAxOS40bC0uNCAxLjdjLTYuMiAyNC45LTI4LjYgNDIuNC01NC4zIDQyLjRMMzA0IDUxMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4OC44IDBjMTEgMCAyMC42LTcuNSAyMy4zLTE4LjJsLjQtMS43YzIuMS04LjYgMTAuOC0xMy44IDE5LjQtMTEuNnpNMTQzLjIgNDg2LjNsLTYuMiAzLjFjLTIxLjYgMTAuOC00Ny42IDYuNi02NC42LTEwLjVMMTIuNyA0MTkuM2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDU5LjYgNTkuNmM3LjMgNy4zIDE4LjUgOS4xIDI3LjcgNC41bDYuMi0zLjFjNy45LTQgMTcuNS0uNyAyMS41IDcuMnMuNyAxNy41LTcuMiAyMS41eiJdfSxQYnQ9YW9lLERVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1biIsaWNvbjpbNTc2LDUxMixbOTcyOF0sImYxODUiLCJNMTc4LjItMTAuMWM3LjQtMy4xIDE1LjgtMi4yIDIyLjUgMi4ybDg3LjggNTguMiA4Ny44LTU4LjJjNi43LTQuNCAxNS4xLTUuMiAyMi41LTIuMlM0MTEuNC0uNSA0MTMgNy4zbDIwLjkgMTAzLjIgMTAzLjIgMjAuOWM3LjggMS42IDE0LjQgNyAxNy40IDE0LjNzMi4yIDE1LjgtMi4yIDIyLjVsLTU4LjIgODcuOCA1OC4yIDg3LjhjNC40IDYuNyA1LjIgMTUuMSAyLjIgMjIuNXMtOS42IDEyLjgtMTcuNCAxNC4zTDQzMy44IDQwMS40IDQxMyA1MDQuN2MtMS42IDcuOC03IDE0LjQtMTQuMyAxNy40cy0xNS44IDIuMi0yMi41LTIuMmwtODcuOC01OC4yLTg3LjggNTguMmMtNi43IDQuNC0xNS4xIDUuMi0yMi41IDIuMnMtMTIuOC05LjYtMTQuMy0xNy40TDE0MyA0MDEuNCAzOS43IDM4MC41Yy03LjgtMS42LTE0LjQtNy0xNy40LTE0LjNzLTIuMi0xNS44IDIuMi0yMi41TDgyLjcgMjU2IDI0LjUgMTY4LjJjLTQuNC02LjctNS4yLTE1LjEtMi4yLTIyLjVzOS42LTEyLjggMTcuNC0xNC4zTDE0MyAxMTAuNiAxNjMuOSA3LjNjMS42LTcuOCA3LTE0LjQgMTQuMy0xNy40ek0yMDcuNiAyNTZhODAuNCA4MC40IDAgMSAxIDE2MC44IDAgODAuNCA4MC40IDAgMSAxIC0xNjAuOCAwem0yMDguOCAwYTEyOC40IDEyOC40IDAgMSAwIC0yNTYuOCAwIDEyOC40IDEyOC40IDAgMSAwIDI1Ni44IDB6Il19LHJvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXNlYmFsbCIsaWNvbjpbNTEyLDUxMixbMTI5MzU4LDk5MTgsImJhc2ViYWxsLWJhbGwiXSwiZjQzMyIsIk0yMzIuNCAxLjFjLTEyMi4yIDExLjQtMjE5LjUgMTA4LjctMjMwLjkgMjMwLjkgMTYuMi0uMSAzMi0xLjggNDcuMi01IDEzLTIuNyAyNS43IDUuNSAyOC40IDE4LjVzLTUuNSAyNS43LTE4LjUgMjguNGMtMTguNCAzLjktMzcuNiA2LTU3LjEgNi4xIDExLjQgMTIyLjIgMTA4LjcgMjE5LjUgMjMwLjkgMjMwLjkgLjEtMTkuNSAyLjItMzguNyA2LjEtNTcuMSAyLjctMTMgMTUuNS0yMS4zIDI4LjQtMTguNXMyMS4zIDE1LjUgMTguNSAyOC40Yy0zLjIgMTUuMi00LjkgMzEtNSA0Ny4yIDEyMi4yLTExLjQgMjE5LjUtMTA4LjcgMjMwLjktMjMwLjktMTYuMiAuMS0zMiAxLjgtNDcuMiA1LTEzIDIuNy0yNS43LTUuNS0yOC40LTE4LjVzNS41LTI1LjcgMTguNS0yOC40YzE4LjQtMy45IDM3LjYtNiA1Ny4xLTYuMS0xMS40LTEyMi4yLTEwOC43LTIxOS41LTIzMC45LTIzMC45LS4xIDE5LjUtMi4yIDM4LjctNi4xIDU3LjEtMi43IDEzLTE1LjUgMjEuMy0yOC40IDE4LjVzLTIxLjMtMTUuNS0xOC41LTI4LjRjMy4yLTE1LjIgNC45LTMxIDUtNDcuMnptMi44IDE1MS40Yy0yMS40IDMyLjktNDkuNSA2MC45LTgyLjMgODIuMy0xMS4xIDcuMi0yNiA0LjEtMzMuMi03cy00LjEtMjYgNy0zMy4yYzI3LjItMTcuNyA1MC41LTQxIDY4LjMtNjguMyA3LjItMTEuMSAyMi4xLTE0LjMgMzMuMi03czE0LjMgMjIuMSA3IDMzLjJ6TTM5My4xIDI4NC4yYzcuMiAxMS4xIDQuMSAyNi03IDMzLjItMjcuMiAxNy43LTUwLjUgNDEtNjguMyA2OC4zLTcuMiAxMS4xLTIyLjEgMTQuMy0zMy4yIDdzLTE0LjMtMjIuMS03LTMzLjJjMjEuNC0zMi45IDQ5LjUtNjAuOSA4Mi4zLTgyLjMgMTEuMS03LjIgMjYtNC4xIDMzLjIgN3oiXX0sSWJ0PXJvZSxGYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW1hZ2UiLGljb246WzQ0OCw1MTIsW10sImYwM2UiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgODBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2ek0yNzIgMjI0YzguNCAwIDE2LjEgNC40IDIwLjUgMTEuNWw4OCAxNDRjNC41IDcuNCA0LjcgMTYuNyAuNSAyNC4zUzM2OC43IDQxNiAzNjAgNDE2TDg4IDQxNmMtOC45IDAtMTcuMi01LTIxLjMtMTIuOXMtMy41LTE3LjUgMS42LTI0LjhsNTYtODBjNC41LTYuNCAxMS44LTEwLjIgMTkuNy0xMC4yczE1LjIgMy44IDE5LjcgMTAuMmwyNi40IDM3LjggNjEuNC0xMDAuNWM0LjQtNy4xIDEyLjEtMTEuNSAyMC41LTExLjV6Il19LE9idD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub3RkZWYiLGljb246WzM4NCw1MTIsW10sImUxZmUiLCJNNjQgMzkwLjNMMTUzLjUgMjU2IDY0IDEyMS43IDY0IDM5MC4zek0xMDIuNSA0NDhMMjgxLjUgNDQ4IDE5MiAzMTMuNyAxMDIuNSA0NDh6bTEyOC0xOTJMMzIwIDM5MC4zIDMyMCAxMjEuNyAyMzAuNSAyNTZ6TTI4MS41IDY0TDEwMi41IDY0IDE5MiAxOTguMyAyODEuNSA2NHpNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDQ4eiJdfSxpb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFza2V0YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTM2LCJiYXNrZXRiYWxsLWJhbGwiXSwiZjQzNCIsIk05Mi43IDU4LjhsNzguNCA3OC40YzE4LjItMjUgMjguOS01NS45IDI4LjktODkuMiAwLTE0LjEtMS45LTI3LjctNS41LTQwLjYtMzggOS40LTcyLjYgMjcuMi0xMDEuOCA1MS40ek01OC44IDkyLjdjLTI0LjIgMjkuMi00MiA2My44LTUxLjQgMTAxLjggMTIuOSAzLjYgMjYuNSA1LjUgNDAuNiA1LjUgMzMuMyAwIDY0LjEtMTAuNyA4OS4yLTI4LjlMNTguOCA5Mi43ek0yNTYgMGMtNC42IDAtOS4yIC4xLTEzLjcgLjQgMy43IDE1LjMgNS43IDMxLjIgNS43IDQ3LjYgMCA0Ni42LTE1LjkgODkuNC00Mi42IDEyMy40TDI1NiAyMjIuMSA0MTkuMyA1OC44QzM3NC45IDIyLjEgMzE4LjEgMCAyNTYgMHpNNDggMjQ4Yy0xNi40IDAtMzIuNC0yLTQ3LjYtNS43LS4yIDQuNS0uNCA5LjEtLjQgMTMuNyAwIDYyLjEgMjIuMSAxMTguOSA1OC44IDE2My4zTDIyMi4xIDI1NiAxNzEuNCAyMDUuNEMxMzcuNCAyMzIuMSA5NC42IDI0OCA0OCAyNDh6bTQ2My42IDIxLjdjLjItNC41IC40LTkuMSAuNC0xMy43IDAtNjIuMS0yMi4xLTExOC45LTU4LjgtMTYzLjNMMjg5LjkgMjU2IDM0MC42IDMwNi42YzM0LTI2LjcgNzYuOS00Mi42IDEyMy40LTQyLjYgMTYuNCAwIDMyLjQgMiA0Ny42IDUuN3ptLTcuMSA0Ny44Yy0xMi45LTMuNi0yNi41LTUuNS00MC42LTUuNS0zMy4zIDAtNjQuMSAxMC43LTg5LjIgMjguOWw3OC40IDc4LjRjMjQuMi0yOS4yIDQyLTYzLjggNTEuNC0xMDEuOHpNMzQwLjkgMzc0LjhjLTE4LjIgMjUtMjguOSA1NS45LTI4LjkgODkuMiAwIDE0LjEgMS45IDI3LjcgNS41IDQwLjYgMzgtOS40IDcyLjYtMjcuMiAxMDEuOC01MS40bC03OC40LTc4LjR6bS0zNC4zLTM0LjNMMjU2IDI4OS45IDkyLjcgNDUzLjJjNDQuMyAzNi43IDEwMS4yIDU4LjggMTYzLjMgNTguOCA0LjYgMCA5LjItLjEgMTMuNy0uNC0zLjctMTUuMy01LjctMzEuMi01LjctNDcuNiAwLTQ2LjYgMTUuOS04OS40IDQyLjYtMTIzLjR6Il19LEJidD1pb2Usb29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbmNpbCIsaWNvbjpbNTEyLDUxMixbOTk5OSw2MTUwNCwicGVuY2lsLWFsdCJdLCJmMzAzIiwiTTM2LjQgMzUzLjJjNC4xLTE0LjYgMTEuOC0yNy45IDIyLjYtMzguN2wxODEuMi0xODEuMiAzMy45LTMzLjljMTYuNiAxNi42IDUxLjMgNTEuMyAxMDQgMTA0bDMzLjkgMzMuOS0zMy45IDMzLjktMTgxLjIgMTgxLjJjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTEwLjZjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4yUy0xLjQgNDg5LjMgLjkgNDgxTDM2LjQgMzUzLjJ6bTU1LjYtMy43Yy00LjQgNC43LTcuNiAxMC40LTkuMyAxNi42bC0yNC4xIDg2LjkgODYuOS0yNC4xYzYuNC0xLjggMTIuMi01LjEgMTctOS43TDkxLjkgMzQ5LjV6bTM1NC0xNDYuMWMtMTYuNi0xNi42LTUxLjMtNTEuMy0xMDQtMTA0TDMwOCA2NS41QzMzNC41IDM5IDM0OS40IDI0LjEgMzUyLjkgMjAuNiAzNjYuNCA3IDM4NC44LS42IDQwNC0uNlM0NDEuNiA3IDQ1NS4xIDIwLjZsMzUuNyAzNS43QzUwNC40IDY5LjkgNTEyIDg4LjMgNTEyIDEwNy40cy03LjYgMzcuNi0yMS4yIDUxLjFjLTMuNSAzLjUtMTguNCAxOC40LTQ0LjkgNDQuOXoiXX0sUmJ0PW9vZSxIYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctYXJyb3ctbG9vcC1sZWZ0IixpY29uOls2NDAsNTEyLFtdLCJlNTUxIiwiTTE2MCA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNNzMuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMMjguMSAxODIuNkMxMC4xIDIwMC42IDAgMjI1IDAgMjUwLjVMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6TTg1LjggNDA3LjNjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDkuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhMODUuOCA0MDcuM3pNMzU5IDMzNWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMS0zMSAxMDIuMSAwYzEuMiAwIDIuNC0uMSAzLjUtLjMgNTYuMS0zLjkgMTAwLjUtNTAuNiAxMDAuNS0xMDcuNyAwLTU5LjYtNDguNC0xMDgtMTA4LTEwOGwtOTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5MiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwcy0yNi45IDYwLTYwIDYwbC05OC4xIDAgMzEtMzFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNzIgNzJ6Il19LHFidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXNpeCIsaWNvbjpbNDQ4LDUxMixbOTg2MV0sImY1MjYiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE2MCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxzb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLWRvd24iLGljb246WzM4NCw1MTIsWyJhbmdsZS1kb3VibGUtZG93biJdLCJmMTAzIiwiTTIxNC42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxOTIgNDAyLjcgMzI5LjQgMjY1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MHptMTYwLTM1MmwtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMTkyIDIxMC43IDMyOS40IDczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3oiXX0sVmJ0PXNvZSxVYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3lyaW5nZSIsaWNvbjpbNTc2LDUxMixbMTI4MTM3XSwiZjQ4ZSIsIk00OTcuNS0xN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNSAxNS00Ni4xIDQ2LjEtNjMtNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNyA3LTc4LjEgNzguMSA0MSA0MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00MS00MS00Ni4xIDQ2LjEgNDEgNDFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDEtNDEtMzcuNyAzNy43Yy0xMC41IDEwLjUtMTYuNCAyNC43LTE2LjQgMzkuNmwwIDg4LjgtNTcgNTdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1Ny01NyA4OC44IDBjMTQuOSAwIDI5LjEtNS45IDM5LjYtMTYuNGwyMjkuNy0yMjkuNyA3IDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02My02MyA0Ni4xLTQ2LjEgMTUgMTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02NC02NHoiXX0sbm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWF0LWF3biIsaWNvbjpbNTc2LDUxMixbIndoZWF0LWFsdCJdLCJlMmNkIiwiTTc5LjcgMjM0LjZjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4yIDgzLjkgMzEuNy03LjcgNjYuMiAxIDkwLjYgMjUuM2w0Ni4xIDQ2LjFjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcuNCA3LjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMEwxMzQuMSA0NDQuMyA0OS40IDUyOWMtOS40IDkuNC0yNC41IDkuNC0zMy45IDAtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODQuNy04NC43LTMwLjUtMzAuNWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXptMTA0LTEwNGM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjIgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDQ2LjEgNDYuMWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNy40IDcuNGMtMzcuNSAzNy41LTk4LjMgMzcuNS0xMzUuOCAwbC05NC45LTk0LjljLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTQ5NS4yIDE1YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4yTDUyOS4yIDQ5IDQxNC43IDE2My40YzcuNyAxIDE1LjIgMyAyMi41IDUuOUw0OTUuNSAxMTFjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFsLTEuNyAxLjgtNTIuNyA1Mi43IDM5IDM5YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03LjQgNy40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMWM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDM5IDM5IDUyLjctNTIuN2M5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01OC4zIDU4LjNjMi44IDcuMSA0LjcgMTQuNSA1LjcgMjIuMUw0OTUuMiAxNXoiXX0samJ0PW5vZSxXYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtdXAiLGljb246WzUxMiw1MTIsW10sImUyMmQiLCJNMjAwIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyAxNzMuNiAxNTkuMmM2LjYgNi4xIDEwLjQgMTQuNiAxMC40IDIzLjZsMCA0My43YzAgMTAuOS0xMC43IDE4LjYtMjEuMSAxNS4ybC0xNjIuOS01NC4zIDAgOTkuNyA2NiA1Mi44YzMuOCAzIDYgNy42IDYgMTIuNWwwIDE5LjhjMCAxMC40LTkuOCAxOC0xOS45IDE1LjVMMjU2IDUxMiAxNDcuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0MyNi43IDM5Ni40IDE2IDM4OC43IDE2IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIwMCAxNTEuMyAyMDAgMjR6Il19LEdidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1jZW50ZXIiLGljb246WzQ0OCw1MTIsW10sImYwMzciLCJNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDEyOCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnptOTYgMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzUyIDMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6Il19LFlidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob2NrZXktcHVjayIsaWNvbjpbNTEyLDUxMixbXSwiZjQ1MyIsIk0yNTYgMjU2QzExNC42IDI1NiAwIDIxMyAwIDE2MHMxMTQuNi05NiAyNTYtOTYgMjU2IDQzIDI1NiA5Ni0xMTQuNiA5Ni0yNTYgOTZ6TTAgMzUyTDAgMjQyLjdjMTYuOSAxMi4zIDM3IDIyLjIgNTguMSAzMC4xIDUzIDE5LjkgMTIzIDMxLjIgMTk3LjkgMzEuMnMxNDQuOS0xMS4zIDE5Ny45LTMxLjJjMjEuMi03LjkgNDEuMi0xNy44IDU4LjEtMzAuMUw1MTIgMzUyYzAgNTMtMTE0LjYgOTYtMjU2IDk2UzAgNDA1IDAgMzUyeiJdfSxsb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LWxlZnQiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtbGVmdCJdLCJmMGE4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMzUgMjM5bDgwLTgwYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzkgMzkgMTUwLjEgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTUwLjEgMCAzOSAzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC04MC04MGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LFpidD1sb2UsWGJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWJvbHQiLGljb246WzY0MCw1MTIsW10sImU1NWIiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFM0MzMuMiA0MTYgNDQwIDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM1NTguOCAzODQgNTUyIDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6Il19LFFidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXN0cm9vbSIsaWNvbjpbNjQwLDUxMixbXSwiZjdiZCIsIk04MCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNTQuOGMtOC4xIDkuMi0yMS4xIDEzLjItMzMuNSA5LjQtMTYuOS01LjMtMjYuMy0yMy4yLTIxLTQwLjFsMjkuNy05NS4yQzQ0LjQgMTU2LjkgODMuNiAxMjggMTI4IDEyOHM4My42IDI4LjkgOTYuOCA3MS4ybDI5LjcgOTUuMmM1LjMgMTYuOS00LjEgMzQuOC0yMSA0MC4xLTEyLjQgMy45LTI1LjQtLjItMzMuNS05LjRMMjAwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0xNiAwek0zMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ2NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDY0IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTQ0MCA0ODBsMC05Ni0xNy44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDktMjYuOWMtMy4yIDAtNi40LS41LTkuNS0xLjUtMTYuOS01LjMtMjYuMy0yMy4yLTIxLTQwLjFsMjkuNy05NS4yQzQyOC40IDE1Ni45IDQ2Ny42IDEyOCA1MTIgMTI4czgzLjYgMjguOSA5Ni44IDcxLjJsMjkuNyA5NS4yYzUuMyAxNi45LTQuMSAzNC44LTIxIDQwLjEtMy4yIDEtNi40IDEuNS05LjUgMS41bDkgMjYuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFsLTE3LjggMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyeiJdfSxLYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWxvY2siLGljb246WzY0MCw1MTIsW10sImU0YWQiLCJNMzIwLjUgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2Yy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM2wxNi4yLTE0LjJjMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDI4LjMgMCA1NS40LTUuNyA4MC0xNS45bDAtLjIgMC03Mi4yYy0xNC40IDkuNi0zMC42IDE2LjctNDggMjAuN2wwLTI1Ny45YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjcyIDMwNC4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00MTYuNSA0MDBsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM2wwLTUwLjZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCA1MC42Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjN6Il19LEpidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aW1lbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTI5YyIsIk0xNjAgMTY5LjNjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MFM0OCA1MS44IDQ4IDk2YzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCA1NC43LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDAgMCA1NC43Yy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTU0LjcgMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC01NC43YzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjMgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDU0LjctMjU2IDAgMC01NC43eiJdfSxldnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlnaHRidWxiIixpY29uOlszODQsNTEyLFsxMjgxNjFdLCJmMGViIiwiTTI5Mi45IDM4NGM3LjMtMjIuMyAyMS45LTQyLjUgMzguNC01OS45IDMyLjctMzQuNCA1Mi43LTgwLjkgNTIuNy0xMzIuMSAwLTEwNi04Ni0xOTItMTkyLTE5MlMwIDg2IDAgMTkyYzAgNTEuMiAyMCA5Ny43IDUyLjcgMTMyLjEgMTYuNSAxNy40IDMxLjIgMzcuNiAzOC40IDU5LjlsMjAxLjcgMHpNMjg4IDQzMmwtMTkyIDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtMTZ6TTE4NCAxMTJjLTM5LjggMC03MiAzMi4yLTcyIDcyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwIDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSxjb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LXJpZ2h0IixpY29uOls1MTIsNTEyLFsiYXJyb3ctY2lyY2xlLXJpZ2h0Il0sImYwYTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTQxLTE1OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzOS0zOS0xNTAuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE1MC4xIDAtMzktMzljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4MCA4MGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODAgODB6Il19LHR2dD1jb2UsYXZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtYW5kLXZlbnVzIixpY29uOls1MTIsNTEyLFs5ODkzXSwiZjIyNCIsIk0zNjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM0LjctNjMgNjNjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOCAwIDg2LjMtNjIuMSAxNTguMS0xNDQgMTczLjFsMCAzNC45IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTM0LjljLTgxLjktMTUtMTQ0LTg2LjgtMTQ0LTE3My4xIDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2IDM3IDAgNzEuNCAxMS40IDk5LjggMzFsNjMtNjMtMzQuNyAwek0zNTIgMjA4YTExMiAxMTIgMCAxIDAgLTIyNCAwIDExMiAxMTIgMCAxIDAgMjI0IDB6Il19LEVVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ldHdvcmstd2lyZWQiLGljb246WzU3Niw1MTIsW10sImY2ZmYiLCJNMjQ4IDg4bDgwIDAgMCA0OC04MCAwIDAtNDh6bS04LTU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDAgMCAzMi0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMzItMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDAgMC0zMiAxOTIgMCAwIDMyLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwIDAtMzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0zMiAxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTk2IDB6TTQ0OCAzNzZsOCAwIDAgNDgtODAgMCAwLTQ4IDcyIDB6bS0yNTYgMGw4IDAgMCA0OC04MCAwIDAtNDggNzIgMHoiXX0scnZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRkOCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwMS4yIDBjLTEyLjUtMTQuNy0yMy4yLTMwLjgtMzEuOC00OGwtODkuNSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMCAwLTI2LjdjMC0xOC4xIDYuMS0zNS4yIDE2LjYtNDguOC0uNC0xLjQtLjYtMi45LS42LTQuNWwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDEgODYuNy0yOC45YzMuMS0xIDYuMi0xLjggOS4zLTIuNUw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQ0NS4zIDQ4OC41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0saXZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUiLGljb246WzU3Niw1MTIsW10sImYxMjEiLCJNMzYwLjggMS4yYy0xNy00LjktMzQuNyA1LTM5LjYgMjJsLTEyOCA0NDhjLTQuOSAxNyA1IDM0LjcgMjIgMzkuNnMzNC43LTUgMzkuNi0yMmwxMjgtNDQ4YzQuOS0xNy01LTM0LjctMjItMzkuNnptNjQuNiAxMzYuMWMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNzMuNCA3My40LTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwem0tMjc0LjcgMGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDE1MC42IDE4Mi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zeiJdfSxkb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVhdGhlci1wb2ludGVkIixpY29uOls1MTIsNTEyLFsiZmVhdGhlci1hbHQiXSwiZjU2YiIsIk00NzUuMyAuMWM5LjktLjggMTkuNiAzIDI2LjYgMTBzMTAuOCAxNi43IDEwIDI2LjZjLTQgNDkuMy0xNy40IDEyNi4yLTQ2LjMgMTk5LjctMS44IDQuNS01LjUgNy45LTEwLjIgOS4zTDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDM4LjYgMGMxMiAwIDE5LjcgMTIuOCAxMy41IDIzLjEtNCA2LjctOC4zIDEzLjItMTIuNyAxOS42LTIgMi45LTUgNS04LjQgNi4xTDMxMC41IDM2NmMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDE2IDBjMTQuNiAwIDIxIDE3LjQgOC44IDI1LjQtNjggNDUtMTM3LjcgNDMuMy0xODIuNCAzMS4zLTEyLjctMy40LTI0LTkuOS0zNC40LTE3LjlMNDggNDk2Yy04LjggOC44LTIzLjIgOC44LTMyIDBzLTguOC0yMy4yIDAtMzJsODAtODAgLjUgLjVjLjctMS4zIDEuNi0yLjUgMi43LTMuNkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw4OS43IDMyNi4yYy04LjkgOC45LTI0IDQuNC0yNS04LjItNC4zLTUzLjIgOS4zLTEyMy4xIDcyLjYtMTg2LjQgOTEuMS05MS4xIDI1NC4yLTEyNC43IDMzNy45LTEzMS41eiJdfSxvdnQ9ZG9lLHN2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LG52dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWduYXR1cmUiLGljb246WzY0MCw1MTIsW10sImY1YjciLCJNMTkyIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNy44YzAgMjcuNy0yLjQgNTUuMy03LjEgODIuNWwtODQuNCAyNS4zYy00MC42IDEyLjItNjguNCA0OS42LTY4LjQgOTJsMCAzMi40LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIuNSAwYzQuMiAzNiAzNC44IDY0IDcyIDY0IDI2IDAgNTAtMTMuOSA2Mi45LTM2LjVsMTMuOS0yNC4zYzI2LjgtNDcgNDYuNS05Ny43IDU4LjQtMTUwLjVsOTQuNC0yOC4zLTEyLjUgMzcuNWMtMy4zIDkuOC0xLjYgMjAuNSA0LjQgMjguOFM0MDUuNyAzMjAgNDE2IDMyMGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODMuNiAwIDE4LTUzLjljMy44LTExLjMgLjktMjMuOC03LjQtMzIuNHMtMjAuNy0xMS44LTMyLjItOC40TDMxNi40IDE5OC4xYzIuNC0yMC43IDMuNi00MS40IDMuNi02Mi4zbDAtNy44YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyem0tOS4yIDE3N2w0OS0xNC43Yy0xMC40IDMzLjgtMjQuNSA2Ni40LTQyLjEgOTcuMmwtMTMuOSAyNC4zYy0xLjUgMi42LTQuMyA0LjMtNy40IDQuMy00LjcgMC04LjUtMy44LTguNS04LjVsMC03MS45YzAtMTQuMSA5LjMtMjYuNiAyMi44LTMwLjd6TTYxNiA0MTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI5Mi45IDBjLTYuNSAxNi4zLTEzLjcgMzIuMy0yMS42IDQ4TDYxNiA0MTZ6Il19LGk3PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWFtZXJpY2FzIixpY29uOls1MTIsNTEyLFsxMjc3NTgsImVhcnRoIiwiZWFydGgtYW1lcmljYSIsImdsb2JlLWFtZXJpY2FzIl0sImY1N2QiLCJNNTUuNyAxOTkuN2wzMC45IDMwLjljNiA2IDE0LjEgOS40IDIyLjYgOS40bDIxLjUgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyOS4zIDI5LjNjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgMzcuNWMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmwxMy4zIDEzLjNjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgMTguN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMi43YzAtOC41IDMuNC0xNi42IDkuNC0yMi42bDQ1LjMtNDUuM2M2LTYgOS40LTE0LjEgOS40LTIyLjZsMC0zNC43YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2IDAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDM0LjcgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNiAwLTYtMi40LTExLjgtNi42LTE2bC0xOS43LTE5LjdDMjQyIDEzMCAyNDAgMTI1LjEgMjQwIDEyMHMyLTEwIDUuNy0xMy43bDE3LjMtMTcuM2M1LjgtNS44IDkuMS0xMy43IDkuMS0yMS45IDAtNy4yLTIuNC0xMy43LTYuNC0xOC45LTMuMi0uMS02LjQtLjItOS42LS4yLTk1LjQgMC0xNzUuNyA2NC4yLTIwMC4zIDE1MS43ek00NjQgMjU2YzAtMzQuNi04LjQtNjcuMi0yMy40LTk1LjgtNi40IC45LTEyLjcgMy45LTE3LjkgOS4xbC0xMy40IDEzLjRjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjQuMSAwYzIuNSAwIDUtLjMgNy4zLS44IC40LTUgLjUtMTAuMSAuNS0xNS4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxsdnQ9aTcsY3Z0PWk3LGR2dD1pNyxmdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fycm90IixpY29uOls2NDAsNTEyLFsxMjkzNjVdLCJmNzg3IiwiTTQ1My4xLTM2LjdMNDQwLjktMjQuNmMtMzEuMiAzMS4yLTMxLjIgODEuOSAwIDExMy4xIDE1LjYgMTUuNiAzMS4yIDMxLjIgNDYuOSA0Ni45IDMxLjIgMzEuMiA4MS45IDMxLjIgMTEzLjEgMGwxMi4xLTEyLjFjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZMNjAwLjkgODguNmMtMzEuMi0zMS4yLTgxLjktMzEuMi0xMTMuMSAwIDMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMUw0NzUuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNMzMxLjYgOTZjLTQ1LjIgMC04Ny4xIDIwLjQtMTE1IDU0LjNMMjczLjMgMjA3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTkxLjYgMTkzLjIgNjcuMiA0NjYuOGMtNS41IDEyLjEtMi45IDI2LjQgNi41IDM1LjlzMjMuNyAxMiAzNS45IDYuNWwxNDEuNi02NC40LTQzLjgtNDMuOGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDU2LjUgNTYuNSA5NS4zLTQzLjNjNTMuMS0yNC4xIDg3LjItNzcuMSA4Ny4yLTEzNS41IDAtODIuMi02Ni42LTE0OC44LTE0OC44LTE0OC44eiJdfSxvNz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1mdWxsIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtNCIsInRoZXJtb21ldGVyLTQiLCJ0aGVybW9tZXRlci1mdWxsIl0sImYyYzciLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zTDEzNiA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjEyLjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSx1dnQ9bzcscHZ0PW83LGh2dD1vNyxtdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtcm93LWxvY2siLGljb246WzY0MCw1MTIsW10sImU2N2EiLCJNMjU2IDI4OGwwLTY0IDE1My4zIDBjMTcuMS00Mi4yIDU2LTczLjIgMTAyLjctNzlsMC00OWMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2bDAgMzIwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0MS4zIDBjLS45LTUuMi0xLjMtMTAuNi0xLjMtMTYuMWwwLTQ3LjktMTEyIDAgMC02NCAxMTMuMyAwYzMuNy0yMiAxNC44LTQxLjQgMzAuNy01NS42bDAtOC40LTE0NCAwem0wLTE5MmwxOTIgMCAwIDY0LTE5MiAwIDAtNjR6TTU2MCAyNzIuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDE2IDM2OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sZ3Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbHQtbGlnaHRuaW5nIixpY29uOlszODQsNTEyLFtdLCJlMGI3IiwiTTAgMjU2TDI4LjUgMjhjMi0xNiAxNS42LTI4IDMxLjgtMjhMMjI4LjkgMGMxNSAwIDI3LjEgMTIuMSAyNy4xIDI3LjEgMCAzLjItLjYgNi41LTEuNyA5LjVMMjA4IDE2MCAzNDcuMyAxNjBjMjAuMiAwIDM2LjcgMTYuNCAzNi43IDM2LjcgMCA3LjQtMi4yIDE0LjYtNi40IDIwLjdsLTE5Mi4yIDI4MWMtNS45IDguNi0xNS42IDEzLjctMjUuOSAxMy43bC0yLjkgMGMtMTUuNyAwLTI4LjUtMTIuOC0yOC41LTI4LjUgMC0yLjMgLjMtNC42IC45LTYuOUwxNzYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHh2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zaG93ZXJzLXdhdGVyIixpY29uOls1MTIsNTEyLFtdLCJlNGU0IiwiTTI3OS4yIDU1LjdDMjYzLjkgMjIuOCAyMzAuNiAwIDE5MiAwIDEzOSAwIDk2IDQzIDk2IDk2IDYwLjcgOTYgMzIgMTI0LjcgMzIgMTYwczI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRsLTEuNiAwYy03LjQtMzYuNS0zOS43LTY0LTc4LjQtNjQtMjIuMiAwLTQyLjMgOS4xLTU2LjggMjMuN3pNNDEwLjYgNDc2LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwek0xMDAuMSAzMDMuNmM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NEMyOSAzNjUgMzUuOCAzNzguNiA0OC40IDM4Mi44czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMjAgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMTIgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0em0xMjAgMGM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjRzLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuMyA2NGMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS4zLTY0eiJdfSxmb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctdXAiXSwiZjE3NiIsIk0xODIuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxMjggNzcuMyAxMjggNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00MzQuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHoiXX0sYnZ0PWZvZSxVVj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhZGRyZXNzLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQwLCJjb250YWN0LWNhcmQiLCJ2Y2FyZCJdLCJmMmJiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTgwIDI1Nmw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNkw4MCAzODRjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTI0LTk2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjQwLTQ4bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMTIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA5NmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHZ2dD1VVix5dnQ9VVYsd3Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLXJpZ2h0IixpY29uOlsyNTYsNTEyLFs4MjUwXSwiZjEwNSIsIk0yNDcuMSAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTc5LjIgMjU2IDQxLjkgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MHoiXX0sdW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbWVoIixpY29uOls1MTIsNTEyLFsxMjg1MjgsIm1laCJdLCJmMTFhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTE3NiAzMjBsMTYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxNdnQ9dW9lLHp2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1mcm9tLWdyb3VuZC13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRiNSIsIk0zMDMgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw4OCA4OGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00NyAwIDI3OC4xYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjc4LjEtNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMzAzIDd6TTI0MCAxOTJsMCAxNjMuMWMtMTAuNi0yLjItMjEuMy0zLjItMzItMy4xLTMyLjUgLjItNjQuOSAxMC43LTkyLjMgMzEuNC04LjggNi42LTE1LjkgMTAuOS0yMS43IDEzLjVsLS44IC40Yy0zLjcgMS43LTYuNCAyLjktOS44IC4zLTYtNC41LTEyLjYtOC0xOS4zLTEwLjRMNjQgMjQwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDEyOCAwem0zMzYgNDhsMCAxNTUuMmMtMS4xIC44LTIuMiAxLjUtMy4zIDIuNC00LjEgMy4xLTguMyAuOC0xMi42LTEuNS0uNi0uMy0xLjItLjYtMS44LTEtNS4yLTIuNy0xMS4xLTYuNi0xOC0xMS43LTI4LjEtMjEuMS02MS4zLTMxLjYtOTQuNC0zMS40LTE1LjUgLjEtMzEgMi41LTQ2IDcuM2wwLTE2Ny4zIDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek00MDMuNCA0NzYuMUMzNzkuMSA0OTQuMyAzNTEuMSA1MTIgMzIwIDUxMnMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LGt2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXAiLGljb246WzUxMiw1MTIsWzEyODUwNiw2MjA3Ml0sImYyNzkiLCJNNTEyIDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDM0OS41IDc3LjUgMTcwLjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzYuOCA4OC44IDAgOTkuOSAwIDExMkwwIDQ2NGMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTc5LjQgNTkuOGM4LjEgMi43IDE2LjggMi4xIDI0LjQtMS43bDEyOC02NGMxMC44LTUuNCAxNy43LTE2LjUgMTcuNy0yOC42bDAtMzUyek0xOTIgMzc2LjlsMC0yODQuNSAxMjggNDIuNyAwIDI4NC41LTEyOC00Mi43eiJdfSxTdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJmMjM0IiwiTTEzNiAxMjhhMTIwIDEyMCAwIDEgMSAyNDAgMCAxMjAgMTIwIDAgMSAxIC0yNDAgMHpNNDggNDgyLjNDNDggMzgzLjggMTI3LjggMzA0IDIyNi4zIDMwNGw1OS40IDBjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzcuNyA1MTJDNjEuMyA1MTIgNDggNDk4LjcgNDggNDgyLjN6TTU0NCA5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4IDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDAgMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4LTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxDdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVudXMiLGljb246WzM4NCw1MTIsWzk3OTJdLCJmMjIxIiwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0yMjMuOSAzNDkuMUMzMDUuOSAzMzQuMSAzNjggMjYyLjMgMzY4IDE3NiAzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NC4xIDE3My4xLS4xIDEtLjEgMS45LS4xIDIuOWwwIDY0LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtNjRjMC0xIDAtMS45LS4xLTIuOXoiXX0sTHZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tc3VjY2Vzc29yIixpY29uOls0NDgsNTEyLFtdLCJlNDdhIiwiTTI4OS4yIDEzNy45YzIuNS02IDguMy05LjkgMTQuOC05LjlsNDAgMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05OCAwYzEuMyA1LjEgMiAxMC41IDIgMTZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDI0IDQwIDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTY0IDY0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjR6TTM4NCA0ODBMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE2MCAxNjBsMC02NC05NiAwIDAgNjQgOTYgMHoiXX0sVHZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS1jb3VnaC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA2MiIsIk01MzUtMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNDEgNTM3LjFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMjUtMjUgMC00NDcuMmMwLTE1IDEwLjUtMjguMyAyNS40LTI5LjggNy40LS43IDE0LjktMS4xIDIyLjYtMS4xIDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMi4yIDIuNiAyMjcuNS0yMjcuNXpNMTMzLjggNTEyTDI4OCAzNTcuOCAyODggNDE2YzAgNTMtNDMgOTYtOTYgOTZsLTU4LjIgMHpNMTc2IDIyNGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMzNiA0MGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS04OCA3MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0tNjQgNDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTI4IDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tODgtMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0scG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tcHJvamVjdCIsaWNvbjpbNTEyLDUxMixbInByb2plY3QtZGlhZ3JhbSJdLCJmNTQyIiwiTTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2IDEyOCAwIDAtMTZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2LTEyOCAwIDAgMTZjMCA3LjMtMS43IDE0LjMtNC42IDIwLjVsNjguNiA5MS41IDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTcuMyAxLjctMTQuMyA0LjYtMjAuNUwxMjggMjI0IDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHoiXX0sX3Z0PXBvZSxOVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXJtaW5hbCIsaWNvbjpbNTEyLDUxMixbXSwiZjEyMCIsIk05LjQgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTQ2LjcgMjU2IDkuNCAxMTguNnpNMjI0IDM4NGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LEF2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1maXJlIixpY29uOls2NDAsNTEyLFtdLCJlNTBjIiwiTTQ0OCAxOTJjMTQuMSAuNCAyMy44IDExLjQgMzIuNyAyMS43IDIgMi4zIDQgNC42IDYgNi43bDE5IDE5LjkgMTIuMi0xMy44YzUuNC02LjEgMTMuMy04LjkgMjAuOS04LjkgNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjggMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42IDE1LjEgMjcuMiAyNi4yIDU4LjIgMjYuMiA4OC4yIDAgODguNy03MS4zIDE1OS44LTE2MCAxNTkuOC04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44IDAtMzcuMyAxNi03My40IDM2LjgtMTA0LjUgMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4xIDUuNy01LjIgMTMuMS03LjcgMjAuMy03LjV6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMTQ3LjUgMTM3Yy0xOS4yLTQuMy00MCAuNS01NS41IDE0LjQtMzYuNCAzMi42LTY3LjcgNjkuOC05MC4zIDEwNi40LTEwLjMgMTYuNi0xOS43IDM0LjktMjYuOCA1My43TDI3MiAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgNjQuNiAwYzcuMyAxNy4yIDE2LjggMzMuNCAyOC4yIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNDg5LjMgMzQzLjdjLTUuNC00LjctMTMuMS00LjctMTguNSAwLTE3LjcgMTUuNC01NC43IDUxLjktNTQuNyA4OC40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC0zNi41LTM3LTczLTU0LjctODguNHoiXX0sJHZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hc2siLGljb246WzU3Niw1MTIsW10sImY2ZmEiLCJNMjg4IDY0QzY0IDY0IDAgMTYwIDAgMjcyUzgwIDQ0OCAxNzYgNDQ4bDguNCAwYzI0LjIgMCA0Ni40LTEzLjcgNTcuMi0zNS40bDIzLjItNDYuM2M0LjQtOC44IDEzLjMtMTQuMyAyMy4yLTE0LjNzMTguOCA1LjUgMjMuMiAxNC4zbDIzLjIgNDYuM2MxMC44IDIxLjcgMzMgMzUuNCA1Ny4yIDM1LjRsOC40IDBjOTYgMCAxNzYtNjQgMTc2LTE3NlM1MTIgNjQgMjg4IDY0ek05NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem0zMjAtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LER2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJodXJyaWNhbmUiLGljb246WzM4NCw1MTIsW10sImY3NTEiLCJNMCAyMDhDMCAxMDQuNCA3NS43IDE4LjUgMTc0LjkgMi42IDE4NCAxLjIgMTkyIDguNiAxOTIgMTcuOWwwIDYzLjNjMCA4LjQgNi41IDE1LjMgMTQuNyAxNi41IDEwMC4zIDE0LjkgMTc3LjMgMTAxLjMgMTc3LjMgMjA1LjcgMCAxMDMuNi03NS43IDE4OS41LTE3NC45IDIwNS40LTkuMiAxLjUtMTcuMS01LjktMTcuMS0xNS4ybDAtNjMuM0MxOTIgNDIxLjkgMTg1LjUgNDE1IDE3Ny4zIDQxMy43IDc3IDM5OC45IDAgMzEyLjQgMCAyMDh6bTI4OCA0OGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bS05Ni0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGhvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXJ0aC1hZnJpY2EiLGljb246WzUxMiw1MTIsWzEyNzc1NywiZ2xvYmUtYWZyaWNhIl0sImY1N2MiLCJNNDQ3LjYgMTc1Yy0zMS42LTc0LjYtMTA1LjUtMTI3LTE5MS42LTEyNy0yMi4xIDAtNDMuNCAzLjUtNjMuNCA5LjgtLjQgMi0uNiA0LjEtLjYgNi4ybDAgNzMuNGMwIDEyLjUgMTAuMSAyMi42IDIyLjYgMjIuNiA2IDAgMTEuOC0yLjQgMTYtNi42bDE2LTE2YzYtNiAxNC4xLTkuNCAyMi42LTkuNGw1LjUgMGMyOC41IDAgNDIuOCAzNC41IDIyLjYgNTQuNi02IDYtMTQuMSA5LjQtMjIuNiA5LjRsLTYxLjUgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRsLTIxLjMgMjEuM2MtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgNDIuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMi43IDBjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRsMjkuMy0yOS4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTE4LjdjMC04LjggNy4yLTE2IDE2LTE2czE2LTcuMiAxNi0xNmwwLTM0LjdjMC04LjUtMy40LTE2LjYtOS40LTIyLjZsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsNDUgMGMxMi40IDAgMjIuNy03LjEgMjgtMTd6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LEV2dD1ob2UsbW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRodW1idGFjayIsaWNvbjpbMzg0LDUxMixbMTI4MjA0LDEyODM5MiwidGh1bWItdGFjayJdLCJmMDhkIiwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBMMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI5LjUgMCAxMC4zIDEzNC4xYzM3LjEgMjEuMiA2NS44IDU2LjQgNzguMiA5OS43bDMuOCAxMy40YzIuOCA5LjcgLjggMjAtNS4yIDI4LjFTMzYyIDM1MiAzNTIgMzUyTDMyIDM1MmMtMTAgMC0xOS41LTQuNy0yNS41LTEyLjdzLTgtMTguNC01LjItMjguMUw1IDI5Ny44YzEyLjQtNDMuMyA0MS03OC41IDc4LjItOTkuN0w5My41IDY0IDY0IDY0QzQ2LjMgNjQgMzIgNDkuNyAzMiAzMnpNMTYwIDQwMGw2NCAwIDAgMTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTEyeiJdfSxOdnQ9bW9lLFB2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LWRvd24iLGljb246WzM4NCw1MTIsW10sImYwYTciLCJNMzIgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMDgtNjQgMCAwIDIwOHpNMjI0IDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NHptLTY0IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTYwLTk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0em0tOTYtODhsMCAuNmM5LjQtNS40IDIwLjMtOC42IDMyLTguNiAxMy4yIDAgMjUuNCA0IDM1LjYgMTAuOCA4LjctMjQuOSAzMi41LTQyLjggNjAuNC00Mi44IDExLjcgMCAyMi42IDMuMSAzMiA4LjZsMC04LjZDMzg0IDcxLjYgMzEyLjQgMCAyMjQgMEwxNjIuMyAwQzExOS44IDAgNzkuMSAxNi45IDQ5LjEgNDYuOUwzNy41IDU4LjVDMTMuNSA4Mi41IDAgMTE1LjEgMCAxNDlsMCAyN2MwIDM1LjMgMjguNyA2NCA2NCA2NGw4OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwbC01NiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDU2IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJ6Il19LGdvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yMDgtNDhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTI4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sSXZ0PWdvZSxzNz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1lbXB0eSIsaWNvbjpbMzIwLDUxMixbInRlbXBlcmF0dXJlLTAiLCJ0aGVybW9tZXRlci0wIiwidGhlcm1vbWV0ZXItZW1wdHkiXSwiZjJjYiIsIk02NCA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTYgNDQ3LjUgMTYgMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0eiJdfSxGdnQ9czcsT3Z0PXM3LEJ2dD1zNyxSdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9yZGVyLW5vbmUiLGljb246WzQ0OCw1MTIsW10sImY4NTAiLCJNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpNMTYwIDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMjg4IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6TTE2MCA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyek0yODggMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek00MTYgNDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMC0zODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zMiAzMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTQxNiAzNTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zMiAxNjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wIDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQxNiAxNjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0eiJdfSxIdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlnaGxpZ2h0ZXIiLGljb246WzU3Niw1MTIsW10sImY1OTEiLCJNMzE1IDMxNUw0NzMuNCA5OS45IDQ0NC4xIDcwLjYgMjI5IDIyOSAzMTUgMzE1em0tMTg3IDVsMCAwIDAtNzEuN2MwLTE1LjMgNy4yLTI5LjYgMTkuNS0zOC42TDQyMC42IDguNEM0MjggMi45IDQzNyAwIDQ0Ni4yIDAgNDU3LjYgMCA0NjguNSA0LjUgNDc2LjYgMTIuNmw1NC44IDU0LjhjOC4xIDguMSAxMi42IDE5IDEyLjYgMzAuNSAwIDkuMi0yLjkgMTguMi04LjQgMjUuNkwzMzQuNCAzOTYuNWMtOSAxMi4zLTIzLjQgMTkuNS0zOC42IDE5LjVsLTcxLjcgMC0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC01MC43LTUwLjdjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDEyOCAzMjB6TTcgNDY2LjNsNTEuNy01MS43IDcwLjYgNzAuNi0xOS43IDE5LjdjLTQuNSA0LjUtMTAuNiA3LTE3IDdMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuN2MwLTYuNCAyLjUtMTIuNSA3LTE3eiJdfSxxdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC13YXZlIixpY29uOls1MTIsNTEyLFtdLCJmNTNhIiwiTTAgNDE5LjZMMCAxMDkuNWMwLTIzLjIgMjQuMS0zOC42IDQ2LjMtMzIgODcuNyAyNi4yIDE0OS43IDUuNSAyMTIuMS0xNS4zIDY0LjUtMjEuNSAxMjkuNC00My4xIDIyMy4zLTEzLjEgMTguNSA1LjkgMzAuMyAyMy44IDMwLjMgNDMuM2wwIDMxMC4xYzAgMjMuMi0yNC4xIDM4LjYtNDYuMiAzMi04Ny43LTI2LjItMTQ5LjgtNS41LTIxMi4xIDE1LjMtNjQuNSAyMS41LTEyOS40IDQzLjEtMjIzLjMgMTMuMS0xOC41LTUuOS0zMC4zLTIzLjgtMzAuMy00My4zek0zMzYgMjU2YzAtNTMtMzUuOC05Ni04MC05NnMtODAgNDMtODAgOTYgMzUuOCA5NiA4MCA5NiA4MC00MyA4MC05NnpNMTIwIDQxMy42YzQuNCAwIDcuOS0zLjggNy4yLTguMS00LjYtMjcuOC0yNy00OS41LTU1LjItNTMtNC40LS41LTggMy4xLTggNy41bDAgMzkuOWMwIDMuNiAyLjQgNi44IDYgNy43IDE3LjkgNC4yIDM0LjMgNi4xIDUwIDYuMXptMzE4LjUtNTEuMWM1IC44IDkuNS0zIDkuNS04bDAtNDIuNmMwLTQuNC0zLjYtOC4xLTgtNy41LTI1LjIgMy4xLTQ1LjkgMjAuOS01My4yIDQ0LjYtMS40IDQuNyAyLjMgOS4xIDcuMiA5LjIgMTQuMiAuNCAyOSAxLjcgNDQuNCA0LjN6TTQ0OCAxNTJsMC0zOS45YzAtMy42LTIuNS02LjgtNi03LjctMTcuOS00LjItMzQuMy02LjEtNTAtNi4xLTQuNCAwLTcuOSAzLjgtNy4yIDguMSA0LjYgMjcuOCAyNyA0OS41IDU1LjIgNTMgNC40IC41IDgtMy4xIDgtNy41ek0xMjUuMiAxNjIuOWMxLjQtNC43LTIuMy05LjEtNy4yLTkuMi0xNC4yLS40LTI5LTEuNy00NC40LTQuMy01LS44LTkuNSAzLTkuNSA4TDY0IDIwMGMwIDQuNCAzLjYgOC4xIDggNy41IDI1LjItMy4xIDQ1LjktMjAuOSA1My4yLTQ0LjZ6Il19LFZ2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQtcGFwZXItc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzIiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTQuNS05NC41YzQwLjItMjMgNjkuNS05Ni45IDY5LjUtMTg0LjYgMC0xMDYtNDMtMTkyLTk2LTE5MnMtOTYgODYtOTYgMTkyYzAgMjQuMSAyLjIgNDcuMiA2LjMgNjguNEwzMDQgMjM4LjIgMzA0IDIyNGMwLTU4LjkgMTEuOC0xMTQuNSAzMy4yLTE1Ny4yIDUuOS0xMS43IDEzLjEtMjMuNyAyMS45LTM0LjhMMTI4IDMyYy04LjMgMC0xNi40IDIuMS0yNC4xIDYuMWwtNjMtNjN6TTMyIDIyNGwwIDI2NGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwxNjAgMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTExNC4yLTI1Ni0yNTZDMzcuOSAxNDguMiAzMiAxODQuNyAzMiAyMjR6bTQxNiA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LFV2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXNoaWVsZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmMCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwMS4yIDBDMjYxIDQ2OS40IDI0MCA0MTQuNSAyNDAgMzU2LjRsMC0zMS4xYzAtMzQuNCAyMi02NSA1NC43LTc1LjlsMTEyLTM3LjNjMy4xLTEgNi4yLTEuOCA5LjMtMi41bDAtMzkuMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnptODcuOCAzMTIuNWwtMTMuMyA2LjMgMC0xODguMSA5NiAzMiAwIDE5LjZjMCA1NS44LTMyLjIgMTA2LjUtODIuNyAxMzAuM3pNNDIxLjkgMjU5LjVsLTExMiAzNy4zYy0xMy4xIDQuNC0yMS45IDE2LjYtMjEuOSAzMC40bDAgMzEuMWMwIDc0LjQgNDMgMTQyLjEgMTEwLjIgMTczLjdsMTguNSA4LjdjNC44IDIuMiAxMCAzLjQgMTUuMiAzLjRzMTAuNS0xLjIgMTUuMi0zLjRsMTguNS04LjdDNTMzIDUwMC4zIDU3NiA0MzIuNiA1NzYgMzU4LjJsMC0zMS4xYzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC0xMTItMzcuM2MtNi42LTIuMi0xMy43LTIuMi0yMC4yIDB6Il19LGp2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXh0LWhlaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZjAzNCIsIk00MCAzMkMxNy45IDMyIDAgNDkuOSAwIDcybDAgNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDY0IDAgMCAzMjAtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyMCA2NCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTU2YzAtMjIuMS0xNy45LTQwLTQwLTQwTDQwIDMyek00MzguNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTkuNCA5LjQgMC0yMjkuNSA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy02LTYtMTQuMS05LjQtMjIuNi05LjRzLTE2LjYgMy40LTIyLjYgOS40bC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40IDAgMjI5LjUtOS40LTkuNHoiXX0seG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUiLGljb246WzUxMiw1MTIsWzEyODUzOSwiZ3Jpbi10b25ndWUiXSwiZjU4OSIsIk0wIDI1NmMwIDEwNC40IDYyLjUgMTk0LjIgMTUyLjIgMjM0LjEtNS4zLTEzLTguMi0yNy4yLTguMi00Mi4xbDAtNjEuN2MtMTYuOS0xNi41LTMwLjEtMzYuNy0zOC4zLTU5LjMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xYzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS04LjMgMjIuNi0yMS41IDQyLjgtMzguMyA1OS4zbDAgNjEuN2MwIDE0LjktMi45IDI5LjEtOC4yIDQyLjEgODkuNy0zOS44IDE1Mi4yLTEyOS42IDE1Mi4yLTIzNC4xIDAtMTQxLjQtMTE0LjYtMjU2LTI1Ni0yNTZTMCAxMTQuNiAwIDI1NnptMTc2LTgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2IDI0MGwwLTQ1LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCA0NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LFd2dD14b2UsR3Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtc2lnbmF0dXJlIixpY29uOls2NDAsNTEyLFtdLCJmNTczIiwiTTY0LjEgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjc3LjYgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgOTcuNS0xMzIgMTMyLTQyLjEgMC0xNi4xLTUzLjZjLTQuNy0xNS43LTE5LjEtMjYuNC0zNS41LTI2LjQtMTEuMyAwLTIxLjkgNS4xLTI4LjkgMTMuOUwxMzMuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDMxLjUgMGMtLjkgMy4xLTEuNyA2LjMtMi4zIDkuNWwtMTAuOSA1NC41LTE0Ni4yIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzg0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw5My41IDAtMTE3LjUtMTE3LjV6bTYwLjIgNDA4LjRjMi41LTEyLjQgOC42LTIzLjggMTcuNS0zMi43bDExOC45LTExOC45IDgwIDgwLTExOC45IDExOC45Yy04LjkgOC45LTIwLjMgMTUtMzIuNyAxNy41bC01OS42IDExLjljLS45IC4yLTEuOSAuMy0yLjkgLjMtOCAwLTE0LjYtNi41LTE0LjYtMTQuNiAwLTEgLjEtMS45IC4zLTIuOWwxMS45LTU5LjZ6bTI2Ny44LTEyM2wtMjguOCAyOC44LTgwLTgwIDI4LjgtMjguOGMyMi4xLTIyLjEgNTcuOS0yMi4xIDgwIDBzMjIuMSA1Ny45IDAgODB6Il19LFl2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy13aGVhdCIsaWNvbjpbNjQwLDUxMixbXSwiZTRkYiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0OS4zIDBjLTYtMTQuOC05LjMtMzEtOS4zLTQ4IDAtMTcuNyA3LjItMzMuNyAxOC44LTQ1LjMtMTEuOS0xOS40LTE4LjgtNDIuMy0xOC44LTY2LjcgMC0xNy43IDcuMi0zMy43IDE4LjgtNDUuMy0xMS45LTE5LjQtMTguOC00Mi4zLTE4LjgtNjYuNyAwLTI1LjIgMTQuNS00Ni45IDM1LjYtNTcuNC0yLjQtNy4xLTMuNi0xNC43LTMuNi0yMi42bDAtMzJDMzY4IDk2LjcgMzg4IDcwLjEgNDE1LjkgNjAuMSA0MTMuOSAyNi42IDM4NiAwIDM1MiAwTDk2IDB6TTIwOCAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTI4IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptMzUyIDBsLTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6bTAgMTEyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6TTQ5NiA1MjhjMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnptLTE2LTk2YzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDB6bTE2LTEyOGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2ek01MTIgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTk2IDY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyek00NDAgMTA0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sWnZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJlNTVlIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnoiXX0salY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZnV0Ym9sIixpY29uOls1MTIsNTEyLFs5OTE3LCJmdXRib2wtYmFsbCIsInNvY2Nlci1iYWxsIl0sImYxZTMiLCJNNDE3LjMgMzYwLjFsLTcxLjYtNC44Yy01LjItLjMtMTAuMyAxLjEtMTQuNSA0LjJzLTcuMiA3LjQtOC40IDEyLjVsLTE3LjYgNjkuNkMyODkuNSA0NDUuOCAyNzMgNDQ4IDI1NiA0NDhzLTMzLjUtMi4yLTQ5LjItNi40TDE4OS4yIDM3MmMtMS4zLTUtNC4zLTkuNC04LjQtMTIuNXMtOS4zLTQuNS0xNC41LTQuMmwtNzEuNiA0LjhjLTE3LjYtMjcuMi0yOC41LTU5LjItMzAuNC05My42TDEyNSAyMjguM2M0LjQtMi44IDcuNi03IDkuMi0xMS45czEuNC0xMC4yLS41LTE1bC0yNi43LTY2LjZDMTI4IDEwOS4yIDE1NS4zIDg5IDE4Ni43IDc2LjlsNTUuMiA0NmM0IDMuMyA5IDUuMSAxNC4xIDUuMXMxMC4yLTEuOCAxNC4xLTUuMWw1NS4yLTQ2YzMxLjMgMTIuMSA1OC43IDMyLjMgNzkuNiA1Ny45bC0yNi43IDY2LjZjLTEuOSA0LjgtMi4xIDEwLjEtLjUgMTVzNC45IDkuMSA5LjIgMTEuOWw2MC43IDM4LjJjLTEuOSAzNC40LTEyLjggNjYuNC0zMC40IDkzLjZ6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xNC4xLTMyNS43Yy04LjQtNi4xLTE5LjgtNi4xLTI4LjIgMEwxOTQgMjIxYy04LjQgNi4xLTExLjkgMTYuOS04LjcgMjYuOGwxOC4zIDU2LjNjMy4yIDkuOSAxMi40IDE2LjYgMjIuOCAxNi42bDU5LjIgMGMxMC40IDAgMTkuNi02LjcgMjIuOC0xNi42bDE4LjMtNTYuM2MzLjItOS45LS4zLTIwLjctOC43LTI2LjhsLTQ3LjktMzQuOHoiXX0sWHZ0PWpWLFF2dD1qVixib2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBsdXMiLGljb246WzUxMiw1MTIsWyJwbHVzLWNpcmNsZSJdLCJmMDU1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzIgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sS3Z0PWJvZSxKdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhemlsaWFuLXJlYWwtc2lnbiIsaWNvbjpbNTEyLDUxMixbXSwiZTQ2YyIsIk00MDAgMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNiAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC00OC45IDBjLTI2IDAtNDcuMSAyMS4xLTQ3LjEgNDcuMSAwIDIyLjUgMTUuOSA0MS44IDM3LjkgNDYuMmwzMi44IDYuNmM1MS45IDEwLjQgODkuMyA1NiA4OS4zIDEwOSAwIDUwLjYtMzMuOCA5My4zLTgwIDEwNi43bDAgMjAuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQuOSAwYzI2IDAgNDcuMS0yMS4xIDQ3LjEtNDcuMSAwLTIyLjUtMTUuOS00MS44LTM3LjktNDYuMmwtMzIuOC02LjZjLTUxLjktMTAuNC04OS4zLTU2LTg5LjMtMTA5IDAtNTAuNiAzMy44LTkzLjIgODAtMTA2LjdMMzY4IDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDgwIDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA1NC4zLTMwIDEwMS41LTc0LjQgMTI2LjFsNDEgMTM2LjdjNS4xIDE2LjktNC41IDM0LjgtMjEuNSAzOS44cy0zNC44LTQuNS0zOS44LTIxLjVMMTIwLjEgMzE5LjhjLTIuNyAuMS01LjQgLjItOC4xIC4ybC00OCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBsLTQ4IDAgMCAxNjB6Il19LGV5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyLWFuZC1jcmVzY2VudCIsaWNvbjpbNTEyLDUxMixbOTc3MF0sImY2OTkiLCJNMCAyNTZjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiAzMyAwIDY0LjYgNi4zIDkzLjYgMTcuNyA3LjQgMi45IDExLjUgMTAuNyA5LjggMTguNHMtOC44IDEzLTE2LjcgMTIuNGMtNC44LS4zLTkuNy0uNS0xNC42LS41LTExNC45IDAtMjA4IDkzLjEtMjA4IDIwOHM5My4xIDIwOCAyMDggMjA4YzQuOSAwIDkuOC0uMiAxNC42LS41IDcuOS0uNSAxNSA0LjcgMTYuNyAxMi40cy0yLjQgMTUuNS05LjggMTguNEMzMjAuNiA1MDUuNyAyODkgNTEyIDI1NiA1MTIgMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZ6TTM3NS40IDEzNy40YzMuNS03LjEgMTMuNy03LjEgMTcuMiAwbDMxLjUgNjMuOGMxLjQgMi44IDQuMSA0LjggNy4yIDUuM2w3MC40IDEwLjJjNy45IDEuMSAxMSAxMC44IDUuMyAxNi40bC01MC45IDQ5LjZjLTIuMyAyLjItMy4zIDUuNC0yLjggOC41bDEyIDcwLjFjMS4zIDcuOC02LjkgMTMuOC0xMy45IDEwLjFsLTYzLTMzLjFjLTIuOC0xLjUtNi4xLTEuNS04LjkgMGwtNjMgMzMuMWMtNyAzLjctMTUuMy0yLjMtMTMuOS0xMC4xbDEyLTcwLjFjLjUtMy4xLS41LTYuMy0yLjgtOC41TDI2MSAyMzMuMWMtNS43LTUuNi0yLjYtMTUuMiA1LjMtMTYuNGw3MC40LTEwLjJjMy4xLS41IDUuOC0yLjQgNy4yLTUuM2wzMS41LTYzLjh6Il19LHZvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXN1cnByaXNlIixpY29uOls1MTIsNTEyLFsxMjg1NTgsInN1cnByaXNlIl0sImY1YzIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTQ4IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSx0eXQ9dm9lLGF5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3NwaXRhbC11c2VyIixpY29uOls2NDAsNTEyLFtdLCJmODBkIiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjcgMCAyNy43IDguOCA1My40IDIzLjggNzQuNC01MS41IDIxLTg3LjggNzEuNi04Ny44IDEzMC43IDAgMSAwIDEuOSAwIDIuOWwtMTc2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDY0ek0yMDggNDAwbDAgNjQgNTMuNCAwYzcuMi0yOS40IDIxLjMtNTYuMSA0MC40LTc4LjMtNi4xLTE5LjUtMjQuMy0zMy43LTQ1LjgtMzMuNy0yNi41IDAtNDggMjEuNS00OCA0OHpNMjQ4IDg4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMi0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwek00MTYgMzA0YTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMzUyIDUxMmMwLTUzIDQzLTk2IDk2LTk2bDk2IDBjNTMgMCA5NiA0MyA5NiA5NiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxyeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi11cC1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGIwIiwiTTI2Mi42IDQyMi42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDI1LjQgMjUuNCAwLTExNC43LTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjU2IDAgMC0xMTQuNy0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDgwLTgwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0yNS40LTI1LjQgMCA5NC44Yy0yNS4zIDIwLjMtNDIuOCA1MC4xLTQ3IDgzLjlsLTE0NSAwIDAgMTE0LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTE5MiAzMmwwIDE0NC02NCAwIDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTQ5NiAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LHlvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXIiLGljb246WzUxMiw1MTIsWzEyODE5MywxMjg0NDcsNjE3MTYsImZvbGRlci1ibGFuayJdLCJmMDdiIiwiTTY0IDQ0OGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwyOTguNyA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjQxLjEgNDQuOEMyMzAgMzYuNSAyMTYuNSAzMiAyMDIuNyAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxpeXQ9eW9lLG95dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob2xseS1iZXJyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjdhYSIsIk0yNTYuMiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTI3NyAzODMuOGMxIC4xIDIuMSAuMiAzLjIgLjIgMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyMi43YzAgMTYuNCAxNiAyNy45IDMxLjYgMjIuOGwxMi44LTQuM2MxOC02IDM3LjMtNi41IDU1LjYtMS41bDE5LjQgNS4zYzE3LjkgNC45IDM0LjQtMTEuNiAyOS41LTI5LjVMNDk1LjkgNDUyYy01LTE4LjMtNC40LTM3LjYgMS41LTU1LjZsNC4zLTEyLjhjNS4yLTE1LjUtNi40LTMxLjYtMjIuOC0zMS42LTM0LjYgMC02Mi43LTI4LjEtNjIuNy02Mi43bDAtMzJjMC0xNi40LTE2LTI3LjktMzEuNi0yMi44bC0xMi44IDQuM2MtMTggNi0zNy4zIDYuNS01NS42IDEuNWwtMjkuNi04LjFjLTIuOS0uOC01LjktMS04LjctLjcgNC4yIDkuNyA1LjggMjAuOCAzLjcgMzIuM2wtNi4zIDM0LjhjLTEuNSA4LjQtMS40IDE3IC41IDI1LjNsNS4zIDIzLjljMi44IDEyLjcgMS4xIDI1LjItNCAzNS45ek0xMjcuOCAyMzQuNWMtMTUuNS01LjItMzEuNiA2LjQtMzEuNiAyMi44bDAgMzJjMCAzNC42LTI4LjEgNjIuNy02Mi43IDYyLjctMTYuNCAwLTI3LjkgMTYtMjIuOCAzMS42TDE1IDM5Ni40YzYgMTggNi41IDM3LjMgMS41IDU1LjZsLTUuMyAxOS40QzYuNCA0ODkuNCAyMi44IDUwNS44IDQwLjcgNTAxbDE5LjQtNS4zYzE4LjMtNSAzNy42LTQuNSA1NS42IDEuNWwxMi44IDQuM2MxNS41IDUuMiAzMS42LTYuNCAzMS42LTIyLjhsMC0zMmMwLTM0LjYgMjguMS02Mi43IDYyLjctNjIuNyAxNi40IDAgMjcuOS0xNiAyMi44LTMxLjZsLTQuMy0xMi44Yy02LTE4LTYuNS0zNy4zLTEuNS01NS42bDUuMy0xOS40YzQuOS0xNy45LTExLjYtMzQuNC0yOS41LTI5LjVsLTE5LjQgNS4zYy0xOC4zIDUtMzcuNiA0LjQtNTUuNi0xLjVsLTEyLjgtNC4zek0zODQuMiAxNDRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sc3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlbnVzLWRvdWJsZSIsaWNvbjpbNjQwLDUxMixbOTg5MF0sImYyMjYiLCJNMTkyIDI4OGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTM2OCAxNzZjMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0LjEgMTczLjEgLjEgMSAuMSAxLjkgLjEgMi45bDAgNjQgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjRjMC0xIDAtMS45IC4xLTIuOS04Mi0xNS0xNDQuMS04Ni44LTE0NC4xLTE3My4xIDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2UzM2OCA3OC44IDM2OCAxNzZ6TTM1Ny41IDMyN2MxNC40LTE1LjggMjYuNi0zMy43IDM2LjEtNTMuMSAxNi4xIDkgMzQuNyAxNC4xIDU0LjUgMTQuMSA2MS45IDAgMTEyLTUwLjEgMTEyLTExMlM1MDkuOSA2NCA0NDggNjRjLTE5LjggMC0zOC4zIDUuMS01NC41IDE0LjEtOS41LTE5LjQtMjEuNi0zNy4zLTM2LjEtNTMuMSAyNi40LTE1LjkgNTcuNC0yNSA5MC41LTI1IDk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgODYuMy02Mi4xIDE1OC4xLTE0NC4xIDE3My4xIC4xIC45IC4xIDEuOSAuMSAyLjlsMCA2NCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02NGMwLTEgMC0xLjkgLjEtMi45LTIxLjEtMy45LTQwLjktMTEuNS01OC42LTIyLjJ6Il19LG55dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtcXVlc3Rpb24iLGljb246WzM4NCw1MTIsW10sImU0ZTMiLCJNMzExLjQgMzJsOC42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDguNiAwQzgzLjYgMTIuOSAxMDQuMyAwIDEyOCAwTDI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMnpNMjQ4IDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDB6TTE5MiAyNDhjMTYuMSAwIDI5LjIgMTMuMSAyOS4yIDI5LjIgMCA4LjctMy4xIDEzLjktNi45IDE3LjctNC41IDQuNC0xMC43IDcuNS0xNi44IDkuNS0xNC45IDUtMjkuNSAxOS4zLTI5LjUgMzkuNSAwIDEzLjMgMTAuNyAyNCAyNCAyNCAxMS41IDAgMjEuMi04LjEgMjMuNS0xOSAxOS4yLTcuMSA1My43LTI2LjMgNTMuNy03MS44IDAtNDIuNi0zNC42LTc3LjItNzcuMi03Ny4ycy03Ny4yIDM0LjYtNzcuMiA3Ny4yYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xNi4xIDEzLjEtMjkuMiAyOS4yLTI5LjJ6bTI4IDE2OGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6Il19LGx5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3Rkb2ciLGljb246WzUxMiw1MTIsWzEyNzc4OV0sImY4MGYiLCJNMjg4IDBjLTIwLjUgMC00MC4xIDguMS01NC42IDIyLjZMMjIuNiAyMzMuNEM4LjEgMjQ3LjkgMCAyNjcuNSAwIDI4OCAwIDMwMC4yIDIuOSAzMTIuMSA4LjIgMzIyLjdMMzIyLjcgOC4yQzMxMi4xIDIuOSAzMDAuMiAwIDI4OCAwek0yMjQgNTEyYzIwLjUgMCA0MC4xLTguMSA1NC42LTIyLjZMNDg5LjQgMjc4LjZjMTQuNS0xNC41IDIyLjYtMzQuMSAyMi42LTU0LjYgMC0xMi4yLTIuOS0yNC4xLTguMi0zNC43TDE4OS4zIDUwMy44YzEwLjcgNS40IDIyLjYgOC4yIDM0LjcgOC4yek00NTYuNiAxNjguNmMzMS4yLTMxLjIgMzEuMi04MS45IDAtMTEzLjFzLTgxLjktMzEuMi0xMTMuMSAwbC0yODggMjg4Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjFzODEuOSAzMS4yIDExMy4xIDBsMjg4LTI4OHoiXX0sY3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20tYnJhY2tldCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA5YSIsIk0yNDYuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAxMDkuMyAxOTIgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMTAuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHpNNjQgMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMzM0LjMgMCAzNTJsMCA2NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHoiXX0sZHl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3Jvc2NvcGUiLGljb246WzUxMiw1MTIsWzEyODMwMF0sImY2MTAiLCJNMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMjA4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NCAzMiAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzM5MC43IDQ0OCAzMjAgNDQ4TDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYuOSAwYzMwLjQtMzQgNDguOS03OC44IDQ4LjktMTI4IDAtMTA2LTg2LTE5Mi0xOTItMTkybC0zMiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTc2IDB6TTEyMCAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxmeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQiLGljb246WzU3Niw1MTIsWzk3MjldLCJmMGMyIiwiTTAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0bDMwNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNTEuNi0zMC41LTk2LjEtNzQuNS0xMTYuMyA2LjctMTMuMSAxMC41LTI4IDEwLjUtNDMuNyAwLTUzLTQzLTk2LTk2LTk2LTE3LjcgMC0zNC4yIDQuOC00OC40IDEzLjEtMjQuMS00NS44LTcyLjItNzcuMS0xMjcuNi03Ny4xLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOCAuNyAxNS45IDEuOSAyMy41LTU2LjkgMTkuMi05Ny45IDczLjEtOTcuOSAxMzYuNXoiXX0sdXl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsLWJhdC1iYWxsIixpY29uOls1NzYsNTEyLFtdLCJmNDMyIiwiTTQ2NC4xIDU0NGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHptOC40LTU3NmMxNS4xIDAgMjkuNyA1LjggNDAuNyAxNi4ybDQ3LjIgNDQuOGMxMi42IDEyIDE5LjEgMjkgMTcuNSA0Ni4zLTEuMiAxMy4zLTcgMjUuOC0xNi41IDM1LjJMMzYzLjEgMzA5Yy03LjMgNy4zLTE1LjcgMTMuNC0yNSAxOEwyMDYgMzkzYy05LjIgNC42LTE3LjcgMTAuNy0yNSAxOGwtOTIgOTIgMS43IDEuOGM3LjcgOS40IDcuMSAyMy4zLTEuNyAzMi4xcy0yMi43IDkuMy0zMi4xIDEuN2wtMS44LTEuNy00OC00OC0xLjctMS44Yy03LjctOS40LTcuMS0yMy4zIDEuNy0zMi4xczIyLjctOS4zIDMyLjEtMS43bDEuOCAxLjcgOTItOTJjNy4zLTcuMyAxMy40LTE1LjcgMTgtMjVsNjYuMS0xMzIuMWM0LjYtOS4yIDEwLjctMTcuNyAxOC0yNUw0MzAuOC0xNC43QzQ0MS45LTI1LjggNDU2LjktMzIgNDcyLjUtMzJ6Il19LHdvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItcmVhciIsaWNvbjpbNTEyLDUxMixbImNhci1hbHQiXSwiZjVkZSIsIk0xNjUuNCA5NmwxODEuMiAwYzEzLjYgMCAyNS43IDguNiAzMC4yIDIxLjRsMjYuMSA3NC42LTI5My44IDAgMjYuMS03NC42YzQuNS0xMi44IDE2LjYtMjEuNCAzMC4yLTIxLjR6bS05MC42IC4zTDM5LjYgMTk2LjhDMTYuNCAyMDYuNCAwIDIyOS4zIDAgMjU2bDAgOTZjMCAyMy43IDEyLjkgNDQuNCAzMiA1NS40TDMyIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMjU2IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDAuNmMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40bDAtOTZjMC0yNi43LTE2LjQtNDkuNi0zOS42LTU5LjJMNDM3LjIgOTYuM0M0MjMuNyA1Ny44IDM4Ny40IDMyIDM0Ni42IDMyTDE2NS40IDMyYy00MC44IDAtNzcuMSAyNS44LTkwLjYgNjQuM3pNMjA4IDI4OGw5NiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtOTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00OCAyODBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTM2MC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxweXQ9d29lLE1vZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnRhY2stc2xhc2giLGljb246WzU3Niw1MTIsWyJ0aHVtYi10YWNrLXNsYXNoIl0sImU2OGYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0MTcuOCAzNTIgNDQ4IDM1MmMxMCAwIDE5LjUtNC43IDI1LjUtMTIuN3M4LTE4LjQgNS4yLTI4LjFMNDc1IDI5Ny44Yy0xMi40LTQzLjMtNDEtNzguNS03OC4yLTk5LjdMMzg2LjUgNjQgNDE2IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQzMy43IDAgNDE2IDBMMTYwIDBjLTcuNCAwLTE0LjEgMi41LTE5LjUgNi42TDE5MC4xIDU2LjMgMTg1LjMgMTE5LjQgNDEtMjQuOXpNMjgyLjIgMzUyTDE0OS43IDIxOS42Yy0yMi43IDIwLjUtMzkuOCA0Ny40LTQ4LjcgNzguM2wtMy44IDEzLjRjLTIuOCA5LjctLjggMjAgNS4yIDI4LjFTMTE4IDM1MiAxMjggMzUybDE1NC4yIDB6TTI1NiA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMi02NCAwIDAgMTEyeiJdfSxoeXQ9TW9lLG15dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVzLW1pbnVzIixpY29uOlszODQsNTEyLFtdLCJlNDNjIiwiTTIyNCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDEyOC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMCAwLTEyOHpNMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sZ3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUwOSIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMSA0Ny4yLTE3NS44IDExNC44LTUuMS0xLjgtMTAuNS0yLjgtMTYuMi0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTEgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTU1My40IDMzOS4xYy03LjEtNS4yLTE3LjEtMy42LTIyLjMgMy41bC01MyA3Mi44LTI2LjctMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDAtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuN3M4LjktMi44IDExLjctNi42bDY0LTg4YzUuMi03LjEgMy42LTE3LjEtMy41LTIyLjN6Il19LHh5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1kYXkiLGljb246WzQ0OCw1MTIsW10sImY3ODMiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6Il19LGJ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUiLGljb246WzUxMiw1MTIsWzEyODMwOCwxMjgzMDksMTI4OTkyLDEyODk5MywxMjg5OTQsMTI4OTk1LDEyODk5Niw5Njc5LDk4OTgsOTg5OSwxMTA0NCw2MTcwOCw2MTkxNV0sImYxMTEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sdnl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS12aWJyYXRlIixpY29uOls1NzYsNTEyLFtdLCJlODE2IiwiTTM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zODRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMzg0IDB6TTI0OCA0MTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHpNNDguOCAxMzMuNGM5LjQtNy43IDIzLjMtNy4xIDMyLjEgMS43IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0zMSAzMSAyNS40IDI1LjQgMi45IDMuMmM2LjMgNy43IDkuOCAxNy40IDkuOCAyNy40IDAgMTEuNS00LjYgMjIuNS0xMi43IDMwLjZsLTI1LjQgMjUuNCAzMSAzMSAxLjcgMS44YzcuNyA5LjQgNy4xIDIzLjMtMS43IDMyLjFzLTIyLjcgOS4zLTMyLjEgMS43TDQ3IDM3NyAxMi43IDM0Mi42QzUuNiAzMzUuNSAxLjIgMzI2LjIgLjIgMzE2LjNMMCAzMTIgLjIgMzA3LjdjMS05LjkgNS40LTE5LjIgMTIuNS0yNi4zTDM4LjEgMjU2IDEyLjcgMjMwLjZDNS42IDIyMy41IDEuMiAyMTQuMiAuMiAyMDQuM0wwIDIwMCAuMiAxOTUuN2MxLTkuOSA1LjQtMTkuMiAxMi41LTI2LjNMNDcgMTM1IDQ4LjggMTMzLjR6TTQ5NSAxMzVjOC44LTguOCAyMi43LTkuMyAzMi4xLTEuN2wxLjggMS43IDM0LjMgMzQuM2M3LjEgNy4xIDExLjUgMTYuNCAxMi41IDI2LjNsLjIgNC4zLS4yIDQuM2MtMSA5LjktNS40IDE5LjItMTIuNSAyNi4zbC0yNS40IDI1LjQgMjUuNCAyNS40YzcuMSA3LjEgMTEuNSAxNi40IDEyLjUgMjYuM2wuMiA0LjMtLjIgNC4zYy0xIDkuOS01LjQgMTkuMi0xMi41IDI2LjNsLTM0LjMgMzQuMy0xLjggMS43Yy05LjQgNy43LTIzLjMgNy4xLTMyLjEtMS43cy05LjMtMjIuNy0xLjctMzIuMWwxLjctMS44IDMxLTMxLTI1LjQtMjUuNGMtOC4xLTguMS0xMi43LTE5LjEtMTIuNy0zMC42IDAtMTAgMy41LTE5LjcgOS44LTI3LjRsMi45LTMuMiAyNS40LTI1LjQtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSx6b2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludCIsaWNvbjpbNTEyLDUxMixbMTI4NTE4LCJncmluLXNxdWludCJdLCJmNTg1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMTIyLjYgMTQzLjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAxOTIgMTI1LjggMTY0LjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0seXl0PXpvZSx3eXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtYmV0d2Vlbi1saW5lcyIsaWNvbjpbNTc2LDUxMixbXSwiZTU5MSIsIk0yNCAxNmw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA2NEMxMC43IDY0IDAgNTMuMyAwIDQwUzEwLjcgMTYgMjQgMTZ6bTAgNDQ4bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMzkyIDE5MmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI3LjIgMTAwLjRjOS4xLTIuOSAxOC44LTQuNCAyOC44LTQuNCA1MyAwIDk2IDQzIDk2IDk2bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC03OC44IDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC04YzAtMzQuMS0xMC42LTY1LjctMjguOC05MS42em0tMjYyLjQgMEMxMzguNiAzMTguMyAxMjggMzQ5LjkgMTI4IDM4NGwwIDhjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC03OC44IDBDNDEuNiA0MTYgMzIgNDA2LjQgMzIgMzk0LjdMMzIgMzg0YzAtNTMgNDMtOTYgOTYtOTYgMTAgMCAxOS43IDEuNSAyOC44IDQuNHpNNzIgMTkyYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMTUyLTE2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTc2IDM4NGMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEybDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOHoiXX0sTXl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTEzIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNTE4LjYgNDAweiJdfSxrb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtbGlzdCIsaWNvbjpbNDQ4LDUxMixbInRoLWxpc3QiXSwiZjAwYiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgMGwwIDY0IDY0IDAgMC02NC02NCAwem0zMjAgMGwtMTkyIDAgMCA2NCAxOTIgMCAwLTY0ek02NCAyMjRsMCA2NCA2NCAwIDAtNjQtNjQgMHptMzIwIDBsLTE5MiAwIDAgNjQgMTkyIDAgMC02NHpNNjQgMzUybDAgNjQgNjQgMCAwLTY0LTY0IDB6bTMyMCAwbC0xOTIgMCAwIDY0IDE5MiAwIDAtNjR6Il19LHp5dD1rb2Usa3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYXNrLXZpYWwiLGljb246WzY0MCw1MTIsW10sImU0ZjMiLCJNMTg0LjYgNDExLjVjLTMuMSA3LjMtNS40IDE0LjktNi44IDIyLjYtMTQuNSA4LjgtMzEuNSAxMy45LTQ5LjggMTMuOS01MyAwLTk2LTQzLTk2LTk2TDMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJTMTQuMyAwIDMyIDBMMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAyNTUuNi0zOS40IDkxLjl6TTk2IDY0bDAgMTI4IDY0IDAgMC0xMjgtNjQgMHpNMzUyIDBMNTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTMuNCA5MS4zIDIxM2MyLjMgNS40IDMuOCAxMS4xIDQuNCAxN2wuMyAuNi0uMyAwYy4yIDEuOCAuMyAzLjYgLjMgNS40IDAgMzIuMy0yNi4yIDU4LjYtNTguNiA1OC42bC0yNjYuOSAwYy0zMi4zIDAtNTguNi0yNi4yLTU4LjYtNTguNiAwLTEuOCAuMS0zLjYgLjMtNS40bC0uMyAwIC4zLS42Yy42LTUuOCAyLjEtMTEuNiA0LjQtMTdMMzIwIDIxNy40IDMyMCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMzAyLjMgMCAzMjAgMGwzMiAwek00NTMuMiAyNDIuNmMtMy40LTgtNS4yLTE2LjUtNS4yLTI1LjJsMC0xNTMuNC02NCAwIDAgMTUzLjRjMCA4LjctMS44IDE3LjItNS4yIDI1LjJsLTMzLjIgNzcuNCAxNDAuNyAwLTMzLjItNzcuNHoiXX0sU29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTEyLDUxMixbImV4Y2xhbWF0aW9uLWNpcmNsZSJdLCJmMDZhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTE5MmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAtMTkyYy0xOC4yIDAtMzIuNyAxNS41LTMxLjQgMzMuN2w3LjQgMTA0Yy45IDEyLjYgMTEuNCAyMi4zIDIzLjkgMjIuMyAxMi42IDAgMjMtOS43IDIzLjktMjIuM2w3LjQtMTA0YzEuMy0xOC4yLTEzLjEtMzMuNy0zMS40LTMzLjd6Il19LFN5dD1Tb2UsQ29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRheGkiLGljb246WzUxMiw1MTIsWzEyODY2MiwiY2FiIl0sImYxYmEiLCJNMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItOC45IDBjLTQyIDAtNzkuMSAyNy4zLTkxLjYgNjcuNGwtMjMgNzMuNUMxNC41IDIxOS4xIDAgMjQzLjkgMCAyNzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDMyMCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE3NmMwLTI4LjEtMTQuNS01Mi45LTM2LjQtNjcuMWwtMjMtNzMuNUM0NDAuMSA5MS4zIDQwMi45IDY0IDM2MC45IDY0bC04LjkgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwek0xNTEuMSAxMjhsMjA5LjkgMGMxNCAwIDI2LjQgOS4xIDMwLjUgMjIuNWwxMyA0MS41LTI5Ni45IDAgMTMtNDEuNWM0LjItMTMuNCAxNi41LTIyLjUgMzAuNS0yMi41ek05NiAyNzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yODggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sQ3l0PUNvZSxMb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGV4dC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbInJlbW92ZS1mb3JtYXQiXSwiZjg3ZCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDMyMi43IDI1Ni45IDM2OC4yIDk2IDQ3MSA5NiA0NjUgMTIwLjJjLTQuMyAxNy4xIDYuMSAzNC41IDIzLjMgMzguOHMzNC41LTYuMSAzOC44LTIzLjNsMTEtNDQuMUM1NDUuNiA2MS4zIDUyMi43IDMyIDQ5MS41IDMybC0zMTkgMGMtMTkuOCAwLTM3LjMgMTIuMS00NC41IDMwLjFsLTg3LTg3ek0xODAuNCAxMTQuNWw0LjYtMTguNSAxMTYuNyAwLTMwLjggMTA5LTkwLjUtOTAuNXpNMjQxIDMxMC44TDIxMS4zIDQxNiAxNjAgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00Mi4yIDAgMTUuMS01My4zLTUxLjktNTEuOXoiXX0sTHl0PUxvZSxUeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLXB1bGxpbmciLGljb246WzU3Niw1MTIsW10sImU1MzUiLCJNODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyIDkuOCAwIDE4LjUtNC40IDI0LjQtMTEuMkw4MC40IDQ4NS4zYzIuOSAxNy40IDE5LjQgMjkuMiAzNi44IDI2LjNzMjkuMi0xOS40IDI2LjMtMzYuOGwtMjAuNS0xMjIuNyAxNS43IDAgMzAgMTM0LjljMy44IDE3LjMgMjAuOSAyOC4xIDM4LjIgMjQuM3MyOC4xLTIwLjkgMjQuMy0zOC4ybC01Ny4zLTI1OCAxMTYuMyA1My44Yy41IC4zIDEuMSAuNSAxLjYgLjcgOC42IDMuNiAxOCAzLjEgMjUuOS0uNyAzLjQtMS42IDYuNi0zLjkgOS4zLTYuNyAzLjEtMy4yIDUuNS03IDcuMS0xMS40IC4xLS4zIC4yLS43IC4zLTFsMi41LTcuNWM1LjctMTcuMSAxOC4zLTMwLjkgMzQuNy0zOC4ybDgtMy41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOWwtMjEuNC0xMC43LTE1LjMtMzYuOGMtMTcuMS00MS4xLTU3LjMtNjcuOS0xMDEuOS02Ny45LTIyLjggMC00NS4zIDQuOC02Ni4xIDE0bC04IDMuNWMtMjQuNCAxMC45LTQ0LjYgMjktNTguMSA1MS42TDE1Ny4zIDEzNi45QzE0NC43IDEzMSAxMzAuOSAxMjggMTE3IDEyOGwtNTMgMHpNNDY0IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMzQ5LjcgMzM1LjZsLTI1IDYyLjQtNTkuNCA1OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDM3Mi4zIDQ0MWM0LjYtNC42IDguMi0xMC4xIDEwLjYtMTYuMWwxNC41LTM2LjItNDAuNy00NC40Yy0yLjUtMi43LTQuOC01LjYtNy04LjZ6Il19LF95dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWNrd2FyZCIsaWNvbjpbNTc2LDUxMixbOTE5NF0sImYwNGEiLCJNMjA0LjMgNDMuMUMyMTUuOSAzMiAyMzMgMjguOSAyNDcuNyAzNS4yUzI3MiA1NiAyNzIgNzJsMCAxMzYuMyAxNzIuMy0xNjUuMUM0NTUuOSAzMiA0NzMgMjguOSA0ODcuNyAzNS4yUzUxMiA1NiA1MTIgNzJsMCAzNjhjMCAxNi05LjYgMzAuNS0yNC4zIDM2LjhzLTMxLjggMy4yLTQzLjQtNy45TDI3MiAzMDMuNyAyNzIgNDQwYzAgMTYtOS42IDMwLjUtMjQuMyAzNi44cy0zMS44IDMuMi00My40LTcuOWwtMTkyLTE4NEM0LjUgMjc3LjMgMCAyNjYuOSAwIDI1NnM0LjUtMjEuMyAxMi4zLTI4LjlsMTkyLTE4NHoiXX0sVG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1idXJzdCIsaWNvbjpbNjQwLDUxMixbImNhci1jcmFzaCJdLCJmNWUxIiwiTTIzMiAxNi4xbDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0ek0zMiAxNjguMWw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0ek0yODEuNSA3MC42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDI4MS41IDM2LjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em0tMTgxIDIxNWwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw2Ni42IDI1MS42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6TTY2LjYgMi43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDEwMC41IDIuN0M5MS4xLTYuNyA3Ni02LjcgNjYuNiAyLjd6TTM1Mi45IDE3NS40TDUwNSAyMTYuMmM2LjQgMS43IDExLjEgNy4zIDExLjggMTMuOWw3LjIgNzQtMjMxLjUtNjIgNDMuMi02MC41YzMuOS01LjQgMTAuNy03LjkgMTcuMi02LjJ6TTIyMy42IDIyOC41bC0yLjEgMi45Yy0yMS43IDUuNS0zOS45IDIyLjMtNDYuMSA0NS41LTQuMSAxNS41LTEyLjQgNDYuNC0yNC44IDkyLjdsLTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42bDguMy0zMC45IDI3OC4yIDc0LjUtOC4zIDMwLjljLTQuNiAxNy4xIDUuNiAzNC42IDIyLjYgMzkuMmwxNS41IDQuMWMxNy4xIDQuNiAzNC42LTUuNiAzOS4yLTIyLjYgNC4xLTE1LjUgMTIuNC00Ni40IDI0LjgtOTIuN2w4LjMtMzAuOWM2LjItMjMuMi0xLjEtNDYuOC0xNy4yLTYyLjVsLS4zLTMuNi0xMC0xMDNjLTMuMi0zMy4yLTI2LjctNjAuOS01OC45LTY5LjVMMzY5LjUgMTEzLjZjLTMyLjItOC42LTY2LjQgMy42LTg1LjggMzAuOGwtNjAuMiA4NC4yem00OC43IDU3LjhhMzIgMzIgMCAxIDEgLTE2LjYgNjEuOCAzMiAzMiAwIDEgMSAxNi42LTYxLjh6bTIwOC4xIDg4LjlhMzIgMzIgMCAxIDEgNjEuOCAxNi42IDMyIDMyIDAgMSAxIC02MS44LTE2LjZ6Il19LEF5dD1Ub2UsX29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpbmsiLGljb246WzU3Niw1MTIsWzEyODI3OSwiY2hhaW4iXSwiZjBjMSIsIk00MTkuNSA5NmMtMTYuNiAwLTMyLjcgNC41LTQ2LjggMTIuNy0xNS44LTE2LTM0LjItMjkuNC01NC41LTM5LjUgMjguMi0yNCA2NC4xLTM3LjIgMTAxLjMtMzcuMiA4Ni40IDAgMTU2LjUgNzAgMTU2LjUgMTU2LjUgMCA0MS41LTE2LjUgODEuMy00NS44IDExMC42bC03MS4xIDcxLjFjLTI5LjMgMjkuMy02OS4xIDQ1LjgtMTEwLjYgNDUuOC04Ni40IDAtMTU2LjUtNzAtMTU2LjUtMTU2LjUgMC0xLjUgMC0zIC4xLTQuNSAuNS0xNy43IDE1LjItMzEuNiAzMi45LTMxLjFzMzEuNiAxNS4yIDMxLjEgMzIuOWMwIC45IDAgMS44IDAgMi42IDAgNTEuMSA0MS40IDkyLjUgOTIuNSA5Mi41IDI0LjUgMCA0OC05LjcgNjUuNC0yNy4xbDcxLjEtNzEuMWMxNy4zLTE3LjMgMjcuMS00MC45IDI3LjEtNjUuNCAwLTUxLjEtNDEuNC05Mi41LTkyLjUtOTIuNXpNMjc1LjIgMTczLjNjLTEuOS0uOC0zLjgtMS45LTUuNS0zLjEtMTIuNi02LjUtMjctMTAuMi00Mi4xLTEwLjItMjQuNSAwLTQ4IDkuNy02NS40IDI3LjFMOTEuMSAyNTguMmMtMTcuMyAxNy4zLTI3LjEgNDAuOS0yNy4xIDY1LjQgMCA1MS4xIDQxLjQgOTIuNSA5Mi41IDkyLjUgMTYuNSAwIDMyLjYtNC40IDQ2LjctMTIuNiAxNS44IDE2IDM0LjIgMjkuNCA1NC42IDM5LjUtMjguMiAyMy45LTY0IDM3LjItMTAxLjMgMzcuMi04Ni40IDAtMTU2LjUtNzAtMTU2LjUtMTU2LjUgMC00MS41IDE2LjUtODEuMyA0NS44LTExMC42bDcxLjEtNzEuMWMyOS4zLTI5LjMgNjkuMS00NS44IDExMC42LTQ1LjggODYuNiAwIDE1Ni41IDcwLjYgMTU2LjUgMTU2LjkgMCAxLjMgMCAyLjYgMCAzLjktLjQgMTcuNy0xNS4xIDMxLjYtMzIuOCAzMS4ycy0zMS42LTE1LjEtMzEuMi0zMi44YzAtLjggMC0xLjUgMC0yLjMgMC0zMy43LTE4LTYzLjMtNDQuOC03OS42eiJdfSwkeXQ9X29lLEFvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWNrd2FyZC1zdGVwIixpY29uOlszODQsNTEyLFsic3RlcC1iYWNrd2FyZCJdLCJmMDQ4IiwiTTM2MyAzNi44Yy0xMi45LTctMjguNy02LjMtNDEgMS44TDY0IDIwOC4xIDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQuMSAyNTggMTY5LjZjMTIuMyA4LjEgMjggOC44IDQxIDEuOHMyMS0yMC41IDIxLTM1LjJsMC0zNjhjMC0xNC43LTguMS0yOC4yLTIxLTM1LjJ6Il19LER5dD1Bb2UsRXl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IngiLGljb246WzM4NCw1MTIsWzEyMF0sIjU4IiwiTTM3Ni42IDg0LjVjMTEuMy0xMy42IDkuNS0zMy44LTQuMS00NS4xcy0zMy44LTkuNS00NS4xIDQuMUwxOTIgMjA2IDU2LjYgNDMuNUM0NS4zIDI5LjkgMjUuMSAyOC4xIDExLjUgMzkuNFMtMy45IDcwLjkgNy40IDg0LjVMMTUwLjMgMjU2IDcuNCA0MjcuNWMtMTEuMyAxMy42LTkuNSAzMy44IDQuMSA0NS4xczMzLjggOS41IDQ1LjEtNC4xTDE5MiAzMDYgMzI3LjQgNDY4LjVjMTEuMyAxMy42IDMxLjUgMTUuNCA0NS4xIDQuMXMxNS40LTMxLjUgNC4xLTQ1LjFMMjMzLjcgMjU2IDM3Ni42IDg0LjV6Il19LCRvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtdXNlciIsaWNvbjpbNTEyLDUxMixbNjIxNDIsInVzZXItY2lyY2xlIl0sImYyYmQiLCJNMzk5IDM4NC4yQzM3Ni45IDM0NS44IDMzNS40IDMyMCAyODggMzIwbC02NCAwYy00Ny40IDAtODguOSAyNS44LTExMSA2NC4yIDM1LjIgMzkuMiA4Ni4yIDYzLjggMTQzIDYzLjhzMTA3LjgtMjQuNyAxNDMtNjMuOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDE2YTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0eiJdfSxOeXQ9JG9lLERvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWN0YW5nbGUtbGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3QtYWx0Il0sImYwMjIiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTk2IDI1NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0xMjAtNTZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDEyOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFB5dD1Eb2UsRW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQiLGljb246WzUxMiw1MTIsWzEyOTMwNiw5OTk1LCJoYW5kLXBhcGVyIl0sImYyNTYiLCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjcyYzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4yIDBjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZsMC0yMDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yMDh6Il19LEl5dD1Fb2UsTm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZhbi1zaHV0dGxlIixpY29uOls1NzYsNTEyLFsxMjg2NTYsInNodXR0bGUtdmFuIl0sImY1YjYiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzMzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsLjQgMGM0IDQ0LjkgNDEuNyA4MCA4Ny42IDgwczgzLjYtMzUuMSA4Ny42LTgwbDEwNC43IDBjNCA0NC45IDQxLjcgODAgODcuNiA4MCA0Ni4xIDAgODMuOS0zNS40IDg3LjctODAuNSAzMS43LTMuOCA1Ni4zLTMwLjggNTYuMy02My41bDAtMTAxLjNjMC0xMy44LTQuNS0yNy4zLTEyLjgtMzguNGwtODAtMTA2LjdDNDcxLjEgNzMuNSA0NTIuMSA2NCA0MzIgNjRMNjQgNjR6TTUwNCAyMjRsLTEyMCAwIDAtOTYgNDggMCA3MiA5NnpNNjQgMjI0bDAtOTYgOTYgMCAwIDk2LTk2IDB6bTE2MCAwbDAtOTYgOTYgMCAwIDk2LTk2IDB6TTM5MiAzOTJhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTUyIDM1MmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LEZ5dD1Ob2UsT3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YWlycyIsaWNvbjpbNTc2LDUxMixbXSwiZTI4OSIsIk0zODQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTk2eiJdfSxCeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9yc2UtaGVhZCIsaWNvbjpbNTEyLDUxMixbXSwiZjdhYiIsIk0wIDQ2NEwwIDMxNi45QzAgMjA4LjUgNjguMyAxMTEuOCAxNzAuNSA3NS42TDM0MC4yIDE1LjVjMjEuNC03LjYgNDMuOCA4LjMgNDMuOCAzMC45IDAgMTEtNS41IDIxLjItMTQuNiAyNy4zTDMzNiA5NmM0OC4xIDAgOTEuMiAyOS44IDEwOC4xIDc0LjlsNDguNiAxMjkuNWMxMS44IDMxLjQgNC4xIDY2LjgtMTkuNiA5MC41LTE2IDE2LTM3LjggMjUuMS02MC41IDI1LjFsLTMuNCAwYy0yNi4xIDAtNTAuOS0xMS42LTY3LjYtMzEuN2wtMzIuMy0zOC43Yy0xMS43IDQuMS0yNC4yIDYuNC0zNy4zIDYuNGwtLjEgMGMtNi4zIDAtMTIuNS0uNS0xOC42LTEuNS0zLjYtLjYtNy4yLTEuNC0xMC43LTIuM2wwIDBjLTI4LjktNy44LTUzLjEtMjYuOC02Ny44LTUyLjItNC40LTcuNy0xNC4yLTEwLjMtMjEuOS01LjhzLTEwLjMgMTQuMi01LjggMjEuOWMyNCA0MS41IDY4LjMgNzAgMTE5LjMgNzEuOWw0Ny4yIDcwLjhjNCA2LjEgNi4yIDEzLjIgNi4yIDIwLjQgMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OHpNMzI4IDIyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFJ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2YXVsdCIsaWNvbjpbNTEyLDUxMixbXSwiZTJjNSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMjU2IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjU2IDI1NmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTY0IDI1NmExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAwem0zODQtNDhjMCAxNy44LTkuNyAzMy4zLTI0IDQxLjZsMCA3OC40YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzguNGMtMTQuMy04LjMtMjQtMjMuOC0yNC00MS42IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh6Il19LEh5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcnVtLXN0ZWVscGFuIixpY29uOls1NzYsNTEyLFtdLCJmNTZhIiwiTTI4OCAzMmMxNTkuMSAwIDI4OCA0OCAyODggMTI4bDAgMTkyYzAgODAtMTI4LjkgMTI4LTI4OCAxMjhTMCA0MzIgMCAzNTJMMCAxNjBDMCA4MCAxMjguOSAzMiAyODggMzJ6TTUyOCAxNjBjMC05LjktOC0yOS45LTU1LTQ5LjgtMTguNi03LjktNDAuOS0xNC40LTY2LTE5LjRsLTI3LjggNDMuNmMtNy4zIDExLjUtMTEuMiAyNC44LTExLjIgMzguNCAwIDE3LjUgNi40IDM0LjQgMTguMSA0Ny41bDkuOCAxMWMyOS44LTUuMiA1NS45LTEyLjUgNzcuMi0yMS41IDQ3LjEtMTkuOSA1NS0zOS45IDU1LTQ5Ljh6TTM0OS4yIDIzNy4zYy04LTI2LjItMzIuNC00NS4zLTYxLjItNDUuM3MtNTMuMyAxOS4xLTYxLjIgNDUuM2MxOS40IDEuNyAzOS45IDIuNyA2MS4yIDIuN3M0MS44LS45IDYxLjItMi43ek0xNjkgOTAuOGMtMjUuMiA1LTQ3LjQgMTEuNi02NiAxOS40LTQ3LjEgMTkuOS01NSAzOS45LTU1IDQ5LjhzOCAyOS45IDU1IDQ5LjhjMjEuMyA5IDQ3LjQgMTYuMyA3Ny4yIDIxLjVsOS44LTExYzExLjYtMTMuMSAxOC4xLTMwIDE4LjEtNDcuNSAwLTEzLjYtMy45LTI2LjktMTEuMi0zOC40TDE2OSA5MC44em01Ni4zLThjLS45IDQuMy0xLjQgOC43LTEuNCAxMy4yIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC00LjUtLjUtOS0xLjQtMTMuMi0xOS44LTEuOC00MC44LTIuOC02Mi42LTIuOHMtNDIuOCAxLTYyLjYgMi44eiJdfSxxeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJzLXVwIixpY29uOls1MTIsNTEyLFsxMjgwNzcsNjE1NzVdLCJmMTY0IiwiTTgwIDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsNDggMHpNMjcwLjYgMTZDMjk3LjkgMTYgMzIwIDM4LjEgMzIwIDY1LjRsMCA0LjJjMCA2LjgtMS4zIDEzLjYtMy44IDE5LjlMMjg4IDE2MCA0NDggMTYwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTkuNy0xMS45IDM2LjYtMjguOSA0NCAxNyA3LjQgMjguOSAyNC4zIDI4LjkgNDQgMCAyMy40LTE2LjggNDIuOS0zOSA0Ny4xIDQuNCA3LjMgNyAxNS44IDcgMjQuOSAwIDIyLjItMTUgNDAuOC0zNS40IDQ2LjMgMi4yIDUuNSAzLjQgMTEuNSAzLjQgMTcuNyAwIDI2LjUtMjEuNSA0OC00OCA0OGwtODcuOSAwYy0zNi4zIDAtNzEuNi0xMi40LTk5LjktMzUuMUwxODQgNDM1LjJjLTE1LjItMTIuMS0yNC0zMC41LTI0LTUwbDAtMTg2LjZjMC0xNC45IDMuNS0yOS42IDEwLjEtNDIuOUwyMjYuMyA0My4zQzIzNC43IDI2LjYgMjUxLjggMTYgMjcwLjYgMTZ6Il19LFZ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFtcCIsaWNvbjpbNTEyLDUxMixbXSwiZjViZiIsIk0zMTIgMjAxLjhjMC0xNy40IDkuMi0zMy4yIDE5LjktNDcgMTIuNi0xNi4yIDIwLjEtMzYuNiAyMC4xLTU4LjggMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAyMi4xIDcuNSA0Mi41IDIwLjEgNTguOCAxMC43IDEzLjggMTkuOSAyOS42IDE5LjkgNDcgMCAyOS45LTI0LjMgNTQuMi01NC4yIDU0LjJMMTEyIDI1NmMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC02MS45LTUwLjEtMTEyLTExMi0xMTJsLTMzLjggMGMtMjkuOSAwLTU0LjItMjQuMy01NC4yLTU0LjJ6TTU2IDQ2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw1NiA0NjR6Il19LFV5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZW5vcmFoIixpY29uOls2NDAsNTEyLFtdLCJmNjc2IiwiTTIwLjggNy40QzIyLjggMi45IDI3LjEgMCAzMiAwczkuMiAyLjkgMTEuMiA3LjRMNjEuMyA0OS43YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMUw2NCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDgxLjcgMCA2NGwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMMjAuOCA3LjR6bTk2IDBDMTE4LjggMi45IDEyMy4xIDAgMTI4IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzk2IDgxLjcgOTYgNjRsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDExNi44IDcuNHptNzcuOCA0Mi40TDIxMi44IDcuNEMyMTQuOCAyLjkgMjE5LjEgMCAyMjQgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek0zMDguOCA3LjRDMzEwLjggMi45IDMxNS4xIDAgMzIwIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwzMDguOCA3LjR6bTc3LjggNDIuNEw0MDQuOCA3LjRDNDA2LjggMi45IDQxMS4xIDAgNDE2IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNNTAwLjggNy40QzUwMi44IDIuOSA1MDcuMSAwIDUxMiAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMNTAwLjggNy40em03Ny44IDQyLjRMNTk2LjggNy40QzU5OC44IDIuOSA2MDMuMSAwIDYwOCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTMyIDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMCAwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTYwIDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMjhjMCA1My00MyA5Ni05NiA5NmwtMTkyIDAgMCA2NCAxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTI4IDAgMC02NC0xOTIgMGMtNTMgMC05Ni00My05Ni05NkwwIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sanl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoaWxkcmVuIixpY29uOls2NDAsNTEyLFtdLCJlNGUxIiwiTTE2MC41IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bS03MiA0ODBsMC04MC0xNy44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xTDg2LjcgMjg1LjUgNTggMzIzLjNjLTEwLjcgMTQuMS0zMC44IDE2LjgtNDQuOCA2LjJTLTMuNyAyOTguNyA3IDI4NC43TDY1LjkgMjA3YzIyLjQtMjkuNiA1Ny41LTQ3IDk0LjYtNDdzNzIuMiAxNy40IDk0LjYgNDdMMzE0IDI4NC43YzEwLjcgMTQuMSA3LjkgMzQuMi02LjIgNDQuOHMtMzQuMiA3LjktNDQuOC02LjJsLTI4LjctMzcuOCAzMS4xIDkzLjRjMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0xNy44IDAgMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwLTE2IDAgMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpNNDgwLjUgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptLTggMzg0bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNzkuNS0xMi45IDIwLjVjLTkuNCAxNS0yOS4yIDE5LjQtNDQuMSAxMHMtMTkuNC0yOS4yLTEwLTQ0LjFsNTEuNy04Mi4xYzE3LjYtMjcuOSA0OC4zLTQ0LjkgODEuMi00NC45bDEyLjMgMGMzMyAwIDYzLjcgMTYuOSA4MS4yIDQ0LjlMNjE5LjYgMjg3YzkuNCAxNSA0LjkgMzQuNy0xMCA0NC4xcy0zNC43IDQuOS00NC4xLTEwbC0xMi45LTIwLjUgMCAxNzkuNWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTE2IDB6Il19LFBvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1saW5lIixpY29uOls1MTIsNTEyLFsibGluZS1jaGFydCJdLCJmMjAxIiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em00MDYuNiA4Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDMyMCAyMTAuNyAyNjIuNiAxNTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDczLjQtNzMuNCA1Ny40IDU3LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHoiXX0sV3l0PVBvZSxJb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWVudmVsb3BlIixpY29uOls0NDgsNTEyLFsiZW52ZWxvcGUtc3F1YXJlIl0sImYxOTkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjA5LjEgMjY3LjlMMTA4LjQgMjA3LjRjLTcuNy00LjYtMTIuNC0xMi45LTEyLjQtMjEuOSAwLTE0LjEgMTEuNC0yNS41IDI1LjUtMjUuNWwyMDQuOSAwYzE0LjEgMCAyNS41IDExLjQgMjUuNSAyNS41IDAgOS00LjcgMTcuMy0xMi40IDIxLjlMMjM4LjkgMjY3LjljLTQuNSAyLjctOS42IDQuMS0xNC45IDQuMXMtMTAuNC0xLjQtMTQuOS00LjF6TTM1MiAyMzcuM2wwIDgyLjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgyLjcgOTYuNyA1OEMyMDIuMSAzMDEgMjEzIDMwNCAyMjQgMzA0czIxLjktMyAzMS4zLTguN2w5Ni43LTU4eiJdfSxHeXQ9SW9lLEZvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW4tc21va2luZyIsaWNvbjpbNTEyLDUxMixbMTI4Njg1LCJzbW9raW5nLWJhbiJdLCJmNTRkIiwiTTk5LjUgMTQ0LjhsNzkuMiA3OS4yLTUwLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNDYuNyAwIDkyLjUgOTIuNWMtMzEuNCAyMi40LTY5LjggMzUuNS0xMTEuMiAzNS41LTEwNiAwLTE5Mi04Ni0xOTItMTkyIDAtNDEuNSAxMy4xLTc5LjkgMzUuNS0xMTEuMnpNMzMzLjMgMjg4bC0zMi0zMiA4Mi43IDAgMCAzMi01MC43IDB6bTMyIDMybDE4LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDI2OS4zIDIyNCAxNDQuOCA5OS41YzMxLjQtMjIuNCA2OS44LTM1LjUgMTExLjItMzUuNSAxMDYgMCAxOTIgODYgMTkyIDE5MiAwIDQxLjUtMTMuMSA3OS45LTM1LjUgMTExLjJMMzY1LjMgMzIwek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjcyIDk2Yy04LjggMC0xNiA3LjItMTYgMTYgMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZ6Il19LFl5dD1Gb2UsWnl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZyb250IixpY29uOls0NDgsNTEyLFtdLCJlMmI3IiwiTTAgMTEyQzAgNjcuOCAzNS44IDMyIDgwIDMybDI4OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMjU2YzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0xOTIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4QzEyLjYgNDE3LjQgMCAzOTQuMiAwIDM2OEwwIDExMnptOTYgODBsMCA2NCAyNTYgMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTMyIDE2MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yMjQgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxQVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZyIsaWNvbjpbMzg0LDUxMixbMTI3OTcwLDYxNjg3XSwiZjFhZCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xNzYgMzUybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC05NiAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTk2IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNDAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNOTYgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxYeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVsbHNleWUiLGljb246WzUxMiw1MTIsW10sImYxNDAiLCJNNDQ4IDI1NmExOTIgMTkyIDAgMSAwIC0zODQgMCAxOTIgMTkyIDAgMSAwIDM4NCAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNTYgODBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAtMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHpNMjI0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxPb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctbGVmdC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1sZWZ0Il0sImYxNzciLCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMjg4IDU0NCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQzNC43IDAgNzMuNC03My40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4eiJdfSxReXQ9T29lLEt5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1yb29rIixpY29uOlszODQsNTEyLFs5ODIwXSwiZjQ0NyIsIk0wIDMyTDAgMTMzLjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMNjQgMjI0IDY0IDM4NCA3LjggNDU0LjNDMi43IDQ2MC42IDAgNDY4LjQgMCA0NzYuNSAwIDQ5Ni4xIDE1LjkgNTEyIDM1LjUgNTEybDMxMi45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJsLTU2LjItNzAuMyAwLTE2MCA0NS4zLTQ1LjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0wzODQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItNDggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE3NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTQ4IDAgMC0zMkM5NiAxNC4zIDgxLjcgMCA2NCAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyeiJdfSxKeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmxlbmRlci1waG9uZSIsaWNvbjpbNTc2LDUxMixbXSwiZjZiNiIsIk0xNTEuNCAxMy4yYzEwLjIgNS44IDE0LjUgMTguNCAxMCAyOS4zTDEzOC4yIDk4LjhjLTMuOSA5LjYtMTMuNyAxNS40LTI0IDE0LjRsLTIwLjItMkM3OC43IDE1Mi45IDc4IDE5OC45IDkxLjkgMjQxLjFsMjIuNC0yLjJjMTAuMy0xIDIwIDQuOCAyNCAxNC40bDIzLjIgNTYuM2M0LjUgMTAuOSAuMiAyMy40LTEwIDI5LjNsLTIuOSAxLjZjLTMzLjYgMTkuMi04MS43IDE2LjItMTA2LjItMjEuNi01Ni4zLTg2LjYtNTYuMy0xOTkuMSAwLTI4NS43IDI0LjYtMzcuNyA3Mi43LTQwLjcgMTA2LjItMjEuNmwyLjkgMS42ek0yMjQgMzM2TDE5My43IDE3LjVDMTkyLjggOC4xIDIwMC4yIDAgMjA5LjYgMGwzMjQgMGMyMS4zIDAgMzYuNiAyMC4zIDMwLjggNDAuOEw1NTMuMSA4MCA0NDAgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTkuNCAwLTE4LjMgNjQtODEuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjQgMC0yNy40IDk2LTI1NiAwem04IDQ4bDI0MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTI0MCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwem0xMjAgODhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxCb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdHVybi11cCIsaWNvbjpbMzg0LDUxMixbImxldmVsLXVwIl0sImYxNDgiLCJNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTMwNi43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTA5LjMgMTYwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMHoiXX0sZXd0PUJvZSx0d3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmljeWNsZSIsaWNvbjpbNjQwLDUxMixbMTI4NjkwXSwiZjIwNiIsIk0zMzEuNyA0My4zQzMzNiAzNi4zIDM0My43IDMyIDM1MiAzMmwxMDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjUuNiAwIDcyLjIgMTQ4LjRjMTAuNy0yLjkgMjEuOS00LjQgMzMuNC00LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhzLTU3LjMgMTI4LTEyOCAxMjgtMTI4LTU3LjMtMTI4LTEyOGMwLTQyIDIwLjItNzkuMiA1MS40LTEwMi42bC0yMC40LTQxLjktNzMuNSAxNDdjLTIuMyA0LjgtNi4zIDguOC0xMS40IDExLjItLjYgLjMtMS4yIC41LTEuOCAuNy0yLjkgMS4xLTUuOSAxLjYtOC45IDEuNUwyNzEgMzY4Yy03LjkgNjMuMS02MS43IDExMi0xMjcgMTEyLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4UzczLjMgMjI0IDE0NCAyMjRjMTAuOCAwIDIxLjIgMS4zIDMxLjIgMy44bDI4LjUtNTYuOS0xMS41LTI2LjktNDAuMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDU2IDBjOS42IDAgMTguMyA1LjcgMjIuMSAxNC41bDE0LjMgMzMuNSAxMjMuNyAwLTM3LjctNzcuNWMtMy42LTcuNC0zLjItMTYuMiAxLjItMjMuMnpNMjI4LjUgMjI4LjdsLTQ1LjYgOTEuMyA4NC44IDAtMzkuMS05MS4zek0zMDUuNyAyODdsNDcuNS05NS04OC4yIDAgNDAuNyA5NXptMTY4LjcgNzUuNWwtMjkuNy02MWMtMTIuOCAxMy0yMC43IDMwLjgtMjAuNyA1MC41IDAgMzkuOCAzMi4yIDcyIDcyIDcyczcyLTMyLjIgNzItNzItMzIuMi03Mi03Mi03MmMtMi43IDAtNS41IC4yLTguMSAuNWwyOS43IDYxYzUuOCAxMS45IC44IDI2LjMtMTEuMSAzMi4xcy0yNi4zIC44LTMyLjEtMTEuMXpNMTQ5LjIgMzY4Yy0yMC4yIDAtMzMuNC0yMS4zLTI0LjMtMzkuNGwyNC4yLTQ4LjVjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM5LjggMC03MiAzMi4yLTcyIDcyczMyLjIgNzIgNzIgNzJjMzQuMyAwIDYyLjktMjMuOSA3MC4yLTU2bC02NSAweiJdfSxSb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LWRvd24iLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtZG93biJdLCJmMGFiIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzkgMzc3bC04MC04MGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM5IDM5IDAtMTUwLjFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE1MC4xIDM5LTM5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODAgODBjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAweiJdfSxhd3Q9Um9lLHo3PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdlYXIiLGljb246WzUxMiw1MTIsWzk4ODEsImNvZyJdLCJmMDEzIiwiTTE5NS4xIDkuNUMxOTguMS01LjMgMjExLjItMTYgMjI2LjQtMTZsNTkuOCAwYzE1LjIgMCAyOC4zIDEwLjcgMzEuMyAyNS41TDMzMiA3OS41YzE0LjEgNiAyNy4zIDEzLjcgMzkuMyAyMi44bDY3LjgtMjIuNWMxNC40LTQuOCAzMC4yIDEuMiAzNy44IDE0LjRsMjkuOSA1MS44YzcuNiAxMy4yIDQuOSAyOS44LTYuNSAzOS45TDQ0NyAyMzMuM2MuOSA3LjQgMS4zIDE1IDEuMyAyMi43cy0uNSAxNS4zLTEuMyAyMi43bDUzLjQgNDcuNWMxMS40IDEwLjEgMTQgMjYuOCA2LjUgMzkuOWwtMjkuOSA1MS44Yy03LjYgMTMuMS0yMy40IDE5LjItMzcuOCAxNC40bC02Ny44LTIyLjVjLTEyLjEgOS4xLTI1LjMgMTYuNy0zOS4zIDIyLjhsLTE0LjQgNjkuOWMtMy4xIDE0LjktMTYuMiAyNS41LTMxLjMgMjUuNWwtNTkuOCAwYy0xNS4yIDAtMjguMy0xMC43LTMxLjMtMjUuNWwtMTQuNC02OS45Yy0xNC4xLTYtMjcuMi0xMy43LTM5LjMtMjIuOEw3My41IDQzMi4zYy0xNC40IDQuOC0zMC4yLTEuMi0zNy44LTE0LjRMNS44IDM2Ni4xYy03LjYtMTMuMi00LjktMjkuOCA2LjUtMzkuOWw1My40LTQ3LjVjLS45LTcuNC0xLjMtMTUtMS4zLTIyLjdzLjUtMTUuMyAxLjMtMjIuN0wxMi4zIDE4NS44Yy0xMS40LTEwLjEtMTQtMjYuOC02LjUtMzkuOUwzNS43IDk0LjFjNy42LTEzLjIgMjMuNC0xOS4yIDM3LjgtMTQuNGw2Ny44IDIyLjVjMTIuMS05LjEgMjUuMy0xNi43IDM5LjMtMjIuOEwxOTUuMSA5LjV6TTI1Ni4zIDMzNmE4MCA4MCAwIDEgMCAtLjYtMTYwIDgwIDgwIDAgMSAwIC42IDE2MHoiXX0scnd0PXo3LGl3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLWFuZC12ZW51cy1idXJzdCIsaWNvbjpbNjQwLDUxMixbXSwiZTUyMyIsIk00NjQtMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzQuNyAwLTYzIDYzYy0yOC40LTE5LjUtNjIuNy0zMS05OS44LTMxLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45YzgxLjktMTUgMTQ0LTg2LjggMTQ0LTE3My4xIDAtMzctMTEuNC03MS40LTMxLTk5LjhsNjMtNjMgMCAzNC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMTJjMC0xNy43LTE0LjMtMzItMzItMzJMNDk2LTY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzY4IDk2YTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHpNMTkwLjktMjEuOUMxODguNC0yOCAxODIuNi0zMiAxNzYtMzJzLTEyLjQgNC0xNC45IDEwLjFsLTI5LjQgNzQtNzYuMi0yMy4xYy02LjMtMS45LTEzLjEgLjItMTcuMiA1LjNTMzMuOCA0Ni41IDM3IDUyLjJsMzkuNSA2OS4xLTY1LjYgNDUuMWMtNS40IDMuNy04IDEwLjMtNi41IDE2LjdzNi43IDExLjIgMTMuMSAxMi4ybDc4LjcgMTIuMi01LjYgNzkuNGMtLjUgNi41IDMuMSAxMi43IDkgMTUuNXMxMi45IDEuOCAxNy44LTIuNkwxNTIuMSAyNjhjLTUuMy0xOS4xLTguMS0zOS4yLTguMS02MCAwLTY1LjQgMjgtMTI0LjIgNzIuNi0xNjUuMUwxOTAuOS0yMS45eiJdfSxvd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib3R0ZXIiLGljb246WzY0MCw1MTIsWzEyOTQ0Nl0sImY3MDAiLCJNMTgxLjUgMTk3LjFsMTIuOSA2LjRjNS45IDMgMTIuNCA0LjUgMTkuMSA0LjUgMjMuNSAwIDQyLjYtMTkuMSA0Mi42LTQyLjZsMC0yMS40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIxLjRjMCAyMy41IDE5LjEgNDIuNiA0Mi42IDQyLjYgNi42IDAgMTMuMS0xLjUgMTkuMS00LjUgOS4zLTQuNyAxNi40LTguMiAyMS4yLTEwLjZMMTM1LjEgMTg1Yy00LjUtMy03LjEtOC03LjEtMTMuM2wwLTMuN2MwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMy43YzAgNS4zLTIuNyAxMC4zLTcuMSAxMy4zbC0xMS44IDcuOSA4LjQgNC4yem0tOC42IDQ5LjRsLTEyLjktNi40LTEyLjkgNi40Yy0xMi42IDYuMy0yNi41IDkuNi00MC41IDkuNi0zLjYgMC03LjEtLjItMTAuNi0uNmwwIC42YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMTYwIDAgMC02NGMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjQgOS40LTUuNCAyMC4zLTguNiAzMi04LjZsMC0xNmMwLTI2LjUgMjEuNS00OCA0OC00OCA4LjggMCAxNiA3LjIgMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTkuN2MwLTQ4LjItMzAuOC05MS03Ni42LTEwNi4zbC04LjUtMi44Yy04LTIuNy0xMi42LTExLjEtMTAuNC0xOS4zczEwLjMtMTMuMiAxOC42LTExLjZsMTkuOSA0QzU3NiA4Ni4xIDY0MCAxNjQuMiA2NDAgMjU0LjlsMCAxLjEgMCAwYzAgMTIzLjctMTAwLjMgMjI0LTIyNCAyMjRsLTE2MC42IDBDMTMyIDQ4MCAzMiAzODAgMzIgMjU2LjZsMC0zOS44Yy0xMC4xLTE0LjYtMTYtMzIuMy0xNi01MS40bDAtMjEuNCAwLTEuNEM2LjcgMTM5LjMgMCAxMzAuNSAwIDEyMCAwIDEwNi43IDEwLjcgOTYgMjQgOTZsMi44IDBDNDQuOCA1OC4yIDgzLjMgMzIgMTI4IDMybDY0IDBjNDQuNyAwIDgzLjIgMjYuMiAxMDEuMiA2NGwyLjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDEwLjUtNi43IDE5LjMtMTYgMjIuNmwwIDEuNCAwIDIxLjRjMCAxLjQgMCAyLjgtLjEgNC4zIDEyLTYuMiAyNS43LTkuNiA0MC4xLTkuNmw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4IDU2LjQgMGMtMTUuMiAxNy0yNC40IDM5LjQtMjQuNCA2NGwtMzIgMGMtNDIuMyAwLTc4LjItMjcuNC05MS02NS4zLTUuMSAuOS0xMC4zIDEuMy0xNS42IDEuMy0xNC4xIDAtMjcuOS0zLjMtNDAuNS05LjZ6TTk2IDEyOGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTExMiAxNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAweiJdfSxIb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tbGVmdCIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLWxlZnQiXSwiZjEzNyIsIk01MTIgMjU2YTI1NiAyNTYgMCAxIDAgLTUxMiAwIDI1NiAyNTYgMCAxIDAgNTEyIDB6TTI3MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC04NyA4NyA4NyA4N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDE2NyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDI3MSAxMzV6Il19LHN3dD1Ib2UscW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNTEyLDUxMixbNjIxMDgsInF1ZXN0aW9uLWNpcmNsZSJdLCJmMDU5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTMzNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDQ3LjItMzYgNjcuMi01NiA3NC41bDAgMy44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC4xYzAtMjAuNSAxNC44LTM1LjIgMzAuMS00MC4yIDYuNC0yLjEgMTMuMi01LjUgMTguMi0xMC4zIDQuMy00LjIgNy43LTEwIDcuNy0xOS42IDAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMjQgMzY4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LG53dD1xb2UsbHd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbGtpZS10YWxraWUiLGljb246WzM4NCw1MTIsW10sImY4ZWYiLCJNODgtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA3MiA0OCAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMzIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjAuOWMwIDkuOS0yLjMgMTkuNy02LjggMjguNmwtMjAuMiA0MC40Yy0zLjMgNi43LTUuMSAxNC01LjEgMjEuNWwwIDg0LjdjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTg0LjdjMC03LjUtMS43LTE0LjgtNS4xLTIxLjVMNi44IDMwMS41QzIuMyAyOTIuNiAwIDI4Mi44IDAgMjcyLjlMMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMTYgMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0em0zMiAxNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sVm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItZ3JvdXAiLGljb246WzU3Niw1MTIsWzEyODEwMSwidXNlci1mcmllbmRzIl0sImY1MDAiLCJNNjQgMTI4YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTAgNDY0YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2czE3NiA3OC44IDE3NiAxNzZsMCA2YzAgMjMuMi0xOC44IDQyLTQyIDQyTDQyIDUxMmMtMjMuMiAwLTQyLTE4LjgtNDItNDJsMC02ek00MzIgNjRhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTAgMjQwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0bDAgMjIuNGMwIDIzLTE4LjYgNDEuNi00MS42IDQxLjZsLTE0NC44IDBjNi42LTEyLjUgMTAuNC0yNi44IDEwLjQtNDJsMC02YzAtNTEuNS0xNy40LTk4LjktNDYuNS0xMzYuNyAyMi42LTE0LjcgNDkuNi0yMy4zIDc4LjUtMjMuM3oiXX0sY3d0PVZvZSxVb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leSIsaWNvbjpbNTEyLDUxMixbNjM0OTksImhvbWUtbGciXSwiZTNhZiIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjQwIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiAxMjggMCAwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAweiJdfSxkd3Q9VW9lLGpvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC1mcm9tLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLW91dC1hbHQiXSwiZjJmNSIsIk01MDUgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDM2MSA5NWMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzMjAgMTAyLjMgMzIwIDExMmwwIDgwLTExMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDExMiAwIDAgODBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4yTDUwNSAyNzN6TTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHoiXX0sZnd0PWpvZSx1d3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZSIsaWNvbjpbMzg0LDUxMixbMTI4MTk2LDEyODQ1OSw2MTQ2Ml0sImYxNWIiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnoiXX0scHd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDY5IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE4My40LTE4My40IDcuMS03LjcgMTI3LjMgMGMzMC45IDAgNTYtMjUuMSA1Ni01NnMtMjUuMS01Ni01Ni01NkwzOTIuNyAyMDAgMjMzLjUgMjYuNEMyMjcuNSAxOS44IDIxOC45IDE2IDIwOS45IDE2bC00My43IDBjLTEwLjkgMC0xOC42IDEwLjctMTUuMiAyMS4xTDE3NS4xIDEwOS4yIDQxLTI0Ljl6TTEzMC4yIDIwMGwtMjQuNiAwLTUyLjgtNjZjLTMtMy44LTcuNi02LTEyLjUtNmwtMTkuOCAwYy0xMC40IDAtMTggOS44LTE1LjUgMTkuOUwzMiAyNTYgNSAzNjQuMUMyLjQgMzc0LjIgMTAuMSAzODQgMjAuNSAzODRsMTkuOCAwYzQuOSAwIDkuNS0yLjIgMTIuNS02bDUyLjgtNjYgOTkuNyAwLTU0LjMgMTYyLjljLTMuNSAxMC40IDQuMyAyMS4xIDE1LjIgMjEuMWw0My43IDBjOSAwIDE3LjUtMy44IDIzLjYtMTAuNEwzMjAuNyAzOTAuNSAxMzAuMiAyMDB6Il19LGh3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1zaG93ZXJzLWhlYXZ5IixpY29uOls1MTIsNTEyLFtdLCJmNzQwIiwiTTk2IDMyMGMtNTMgMC05Ni00My05Ni05NiAwLTQyLjUgMjcuNi03OC42IDY1LjktOTEuMi0xLjMtNi43LTEuOS0xMy43LTEuOS0yMC44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyIDQzLjEgMCA4MC41IDI0LjMgOTkuMiA2MCAxNC43LTE3LjEgMzYuNS0yOCA2MC44LTI4IDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNS41LS42IDEwLjgtMS42IDE2IC41IDAgMS4xIDAgMS42IDAgNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZMOTYgMzIwem02LjggNzkuNmwtMzIgOTZDNjYuNiA1MDguMiA1MyA1MTUgNDAuNCA1MTAuOFMyMSA0OTMgMjUuMiA0ODAuNGwzMi05NkM2MS40IDM3MS44IDc1IDM2NSA4Ny42IDM2OS4yUzEwNyAzODcgMTAyLjggMzk5LjZ6bTEyMCAwbC0zMiA5NmMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMlMxNDEgNDkzIDE0NS4yIDQ4MC40bDMyLTk2YzQuMi0xMi42IDE3LjgtMTkuNCAzMC40LTE1LjJTMjI3IDM4NyAyMjIuOCAzOTkuNnptMTEyIDBsLTMyIDk2Yy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4yUzI1MyA0OTMgMjU3LjIgNDgwLjRsMzItOTZjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjQtMTUuMlMzMzkgMzg3IDMzNC44IDM5OS42em0xMjAgMGwtMzIgOTZjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJTMzczIDQ5MyAzNzcuMiA0ODAuNGwzMi05NmM0LjItMTIuNiAxNy44LTE5LjQgMzAuNC0xNS4yUzQ1OSAzODcgNDU0LjggMzk5LjZ6Il19LG13dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZmFsbGluZyIsaWNvbjpbNTEyLDUxMixbXSwiZTU0NiIsIk0zMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1LjRjMCA0NS0yMy42IDg2LjYtNjIuMSAxMDkuOGwtNC42IDIuOEMxMzEuNCAxODQuNyA5NiAyNDcuMSA5NiAzMTQuNkw5NiAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY5LjRjMC0xNi43IDMuMy0zMyA5LjQtNDhMMzU5LjIgNTAwLjJjMTEuMSAxMy43IDMxLjMgMTUuOCA0NSA0LjdzMTUuOC0zMS4zIDQuNy00NUwyOTUuMiAzMjAgNDAwIDMyMCA0MzguNCAzNzEuMmMxMC42IDE0LjEgMzAuNyAxNyA0NC44IDYuNHMxNy0zMC43IDYuNC00NC44bC00My4yLTU3LjZDNDM3LjMgMjYzLjEgNDIzLjEgMjU2IDQwOCAyNTZsLTg5IDAtNjIuOS03NS41YzQwLjMtMzYgNjMuOS04Ny45IDYzLjktMTQzLjFsMC01LjR6TTEwNCAxNDRhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6Il19LFdvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dXJuLWRvd24iLGljb246WzM4NCw1MTIsWzEwNTQ5LCJsZXZlbC1kb3duLWFsdCJdLCJmM2JlIiwiTTE2OS40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzMyLjkgMzIwIDMyMCAzMjBsLTY0IDAgMC0xNjBDMjU2IDcxLjYgMTg0LjQgMCA5NiAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyTDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MC02NCAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWwxMjggMTI4eiJdfSxnd3Q9V29lLEdvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1cC1yaWdodC1hbmQtZG93bi1sZWZ0LWZyb20tY2VudGVyIixpY29uOls1MTIsNTEyLFsiZXhwYW5kLWFsdCJdLCJmNDI0IiwiTTM0NCAwTDQ4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMzItMzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg3LTg3LTM5LTM5Yy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yUzMzNC4zIDAgMzQ0IDB6TTE2OCA1MTJMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwwIDM0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJTMzQuMSAzMjAuMiA0MSAzMjdsMzkgMzkgODctODdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTMTc3LjcgNTEyIDE2OCA1MTJ6Il19LHh3dD1Hb2UsYnd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItdGFnIixpY29uOls2NDAsNTEyLFtdLCJmNTA3IiwiTTI1Ni4xIDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNCAzMDRsNTkuNCAwYzYuNyAwIDEzLjIgLjQgMTkuNyAxLjEtLjkgNC45LTEuNCA5LjktMS40IDE1bDAgOTIuMWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOWwzMS45IDMxLjktMjg2LjMgMGMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjN6TTM1Mi4xIDQxMi4ybDAtOTIuMWMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5Mi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw5NiA5NmMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOWwtNzYuMSA3Ni4xYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMGwtOTYtOTZjLTktOS0xNC4xLTIxLjItMTQuMS0zMy45em0xMDQtNDQuMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSx2d3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1zcGFya2xlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTA1ZCIsIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIwOGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTExMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc4LjJjLTE5LjIgNS40LTM0LjcgMjAuNC00MC40IDQwLjNsLTYuNSAyMi43LTIyLjcgNi41Yy0yNS4yIDcuMi00Mi41IDMwLjItNDIuNSA1Ni40IDAgMjIuMSAxMi40IDQyIDMxLjQgNTEuOS0yNy41IDE3LjgtNjAuMiAyOC4xLTk1LjQgMjguMWwtMTkuMiAwYy01OS42IDAtMTE2LjktMjIuOS0xNjAtNjRMNzYuNCAzNDFjLTE2LTE1LjItMTYuNi00MC42LTEuNC01Ni42czQwLjYtMTYuNiA1Ni42LTEuNGw2MC41IDU3LjZjMC0xLjUtLjEtMy4xLS4xLTQuNmwwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS03LjMgMzI2LjZjLTEuMS0zLjktNC43LTYuNi04LjctNi42cy03LjYgMi43LTguNyA2LjZsLTcuMyAyNS40LTI1LjQgNy4zYy0zLjkgMS4xLTYuNiA0LjctNi42IDguN3MyLjcgNy42IDYuNiA4LjdsMjUuNCA3LjMgNy4zIDI1LjRjMS4xIDMuOSA0LjcgNi42IDguNyA2LjZzNy42LTIuNyA4LjctNi42bDcuMy0yNS40IDI1LjQtNy4zYzMuOS0xLjEgNi42LTQuNyA2LjYtOC43cy0yLjctNy42LTYuNi04LjdsLTI1LjQtNy4zLTcuMy0yNS40ek0xMDQgMTIwbDQ4LjMgMTMuOGM0LjYgMS4zIDcuNyA1LjUgNy43IDEwLjJzLTMuMSA4LjktNy43IDEwLjJMMTA0IDE2OCA5MC4yIDIxNi4zYy0xLjMgNC42LTUuNSA3LjctMTAuMiA3LjdzLTguOS0zLjEtMTAuMi03LjdMNTYgMTY4IDcuNyAxNTQuMkMzLjEgMTUyLjkgMCAxNDguNyAwIDE0NHMzLjEtOC45IDcuNy0xMC4yTDU2IDEyMCA2OS44IDcxLjdDNzEuMSA2Ny4xIDc1LjMgNjQgODAgNjRzOC45IDMuMSAxMC4yIDcuN0wxMDQgMTIwek01ODQgNDA4bDQ4LjMgMTMuOGM0LjYgMS4zIDcuNyA1LjUgNy43IDEwLjJzLTMuMSA4LjktNy43IDEwLjJMNTg0IDQ1NiA1NzAuMiA1MDQuM2MtMS4zIDQuNi01LjUgNy43LTEwLjIgNy43cy04LjktMy4xLTEwLjItNy43TDUzNiA0NTYgNDg3LjcgNDQyLjJjLTQuNi0xLjMtNy43LTUuNS03LjctMTAuMnMzLjEtOC45IDcuNy0xMC4yTDUzNiA0MDggNTQ5LjggMzU5LjdjMS4zLTQuNiA1LjUtNy43IDEwLjItNy43czguOSAzLjEgMTAuMiA3LjdMNTg0IDQwOHoiXX0seXd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1kb3QiLGljb246WzUxMiw1MTIsW10sImU0YmUiLCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlsLTY0IDY0Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNjQtNjRjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45UzE3OS4xIDY0IDE5MiA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2OS40IDM5My40bDY0LTY0YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDY0IDY0YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMzMi45IDQ0OCAzMjAgNDQ4bC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOXpNMzIgMjI0bDMyIDAgMC0zMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC02NCA2NGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTNjQgMzMyLjkgNjQgMzIwbDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTNDQ4IDE3OS4xIDQ0OCAxOTJsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTY0LTY0ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sWW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc2FkLWNyeSIsaWNvbjpbNTEyLDUxMixbMTI4NTU3LCJzYWQtY3J5Il0sImY1YjMiLCJNMzUyIDQ5My40Yy0yOS42IDEyLTYyLjEgMTguNi05NiAxOC42cy02Ni40LTYuNi05Ni0xOC42TDE2MCAyOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzEuN0M0NC40IDQyMS42IDAgMzQ0IDAgMjU2IDAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NmMwIDg4LTQ0LjQgMTY1LjYtMTEyIDIxMS43TDQwMCAyOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxOTcuNHpNMTUyIDE5NmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE3MiAyMGMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHoiXX0sd3d0PVlvZSxNd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9uZy1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTY5IiwiTTI4OC0xNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDcyLjJjLTIyLjktMTUuMy01MC40LTI0LjItODAtMjQuMi03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NFM5Ni41IDQzMiAxNzYgNDMyYzMwIDAgNTcuOC05LjEgODAuOC0yNC44IDMuMyAxNC4yIDE2IDI0LjggMzEuMiAyNC44IDE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzA0IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNOTYgMjg4YTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMjQgNDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDQ2NHoiXX0send0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTM0IiwiTTI4OCAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em05NiAzMTJjMCAyNS0xMi43IDQ3LTMyIDU5LjlsMCA0NC4xLTEyOCAwIDAtNDQuMUMyMDQuNyAzNTkgMTkyIDMzNyAxOTIgMzEybDAtNDBjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDQwem0xNiAxMDRsMC0yNy4zYzE5LjktMjIuNSAzMi01Mi4yIDMyLTg0LjdsMC0zMmMwLTI2LjctNy4zLTUxLjYtMTkuOS03My4xIDExLjEtNC41IDIzLjItNi45IDM1LjktNi45IDUzIDAgOTYgNDMgOTYgOTZsMCAzMmMwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCA0MC42LTExMiAwek02NCAzNzUuNEM0NC45IDM2NC40IDMyIDM0My43IDMyIDMyMGwwLTMyYzAtNTMgNDMtOTYgOTYtOTYgMTIuNyAwIDI0LjggMi41IDM1LjkgNi45LTEyLjYgMjEuNC0xOS45IDQ2LjQtMTkuOSA3My4xbDAgMzJjMCAzMi41IDEyLjEgNjIuMSAzMiA4NC43bDAgMjcuMy0xMTIgMCAwLTQwLjZ6TTEyOCAzMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnptMzIwIDBhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTI0IDQ2NGw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFpvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcnNzIixpY29uOls0NDgsNTEyLFsicnNzLXNxdWFyZSJdLCJmMTQzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDEzNmMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMzcgMCAyNDggMTExIDI0OCAyNDggMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTAuNS04OS41LTIwMC0yMDAtMjAwLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDgzLjkgMCAxNTIgNjguMSAxNTIgMTUyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDEyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxrd3Q9Wm9lLFN3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1taW51cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MiIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTI0IDI2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEN3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1kaWFncmFtIixpY29uOls1MTIsNTEyLFtdLCJlNjk1IiwiTTgwIDMyQzUzLjUgMzIgMzIgNTMuNSAzMiA4MHMyMS41IDQ4IDQ4IDQ4bDE1MiAwIDAgNDAtNDggNDgtNzIgMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA2NC04IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw3MiAwIDQ4IDQ4IDAgNDAtOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOCAwIDAtNDAgNDgtNDggNzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDY0LTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTggMCAwLTY0YzAtMzkuOC0zMi4yLTcyLTcyLTcybC03MiAwLTQ4LTQ4IDAtNDAgMTUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhMODAgMzJ6Il19LFhvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXRpcmVkIixpY29uOls1MTIsNTEyLFsxMjg1NTUsInRpcmVkIl0sImY1YzgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NC43IDMyOC43YzIyLTIyIDUzLjktNDAuNyA5MS4zLTQwLjdzNjkuMyAxOC43IDkxLjMgNDAuN2MxMS4xIDExLjEgMjAuMSAyMy40IDI2LjQgMzUuNCA2LjIgMTEuNyAxMC4zIDI0LjQgMTAuMyAzNS45IDAgNS4yLTIuNiAxMC4yLTYuOSAxMy4ycy05LjggMy43LTE0LjcgMS44bC0yMC41LTcuN2MtMjYuOS0xMC4xLTU1LjUtMTUuMy04NC4zLTE1LjNsLTMuMiAwYy0yOC44IDAtNTcuMyA1LjItODQuMyAxNS4zTDE0OS42IDQxNWMtNC45IDEuOC0xMC40IDEuMi0xNC43LTEuOFMxMjggNDA1LjIgMTI4IDQwMGMwLTExLjYgNC4yLTI0LjIgMTAuMy0zNS45IDYuMy0xMiAxNS4zLTI0LjMgMjYuNC0zNS40ek0xMjIuNiAxNTkuMmM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxMd3Q9WG9lLFR3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LXJpZ2h0IixpY29uOls1MTIsNTEyLFtdLCJmMGE0IiwiTTQ4MCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjA4IDAgMC02NCAyMDggMHpNMzIwIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwem02NC02NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0yODggMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bS04OC05NmwuNiAwYy01LjQgOS40LTguNiAyMC4zLTguNiAzMiAwIDEzLjIgNCAyNS40IDEwLjggMzUuNi0yNC45IDguNy00Mi44IDMyLjUtNDIuOCA2MC40IDAgMTEuNyAzLjEgMjIuNiA4LjYgMzJsLTguNiAwQzcxLjYgNDQ4IDAgMzc2LjQgMCAyODhsMC02MS43YzAtNDIuNCAxNi45LTgzLjEgNDYuOS0xMTMuMWwxMS42LTExLjZDODIuNSA3Ny41IDExNS4xIDY0IDE0OSA2NGwyNyAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODhjMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDBsMC01NmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDU2YzAgMzkuOCAzMi4yIDcyIDcyIDcyeiJdfSxfd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAiLGljb246WzM4NCw1MTIsWzg1OTNdLCJmMDYyIiwiTTIxNC42IDE3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMTcuMyAxNjAgNDg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNzAuNyAxMDUuNCAxMDUuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYweiJdfSxBd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3ViZXMtc3RhY2tlZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRlNiIsIk0xOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0em0zMiAzNTJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xOTIgMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTMyMCAxOTJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tMTgyLjYtMy45YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDQ1LjMgNDUuM2MxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNDUuMyA0NS4zYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEw5Mi4xIDI3OC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w0NS4zLTQ1LjN6TTMyIDM4NGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFFvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1jb21iYXRhbnQiLGljb246WzU3Niw1MTIsWyJjaGlsZC1yaWZsZSJdLCJlNGUwIiwiTTE3Ni41IDEyOGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTE2IDM1MmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTkyLjIgMjAuOSAzMy4yYzkuNCAxNSAyOS4yIDE5LjQgNDQuMSAxMHMxOS40LTI5LjIgMTAtNDQuMWwtMzkuOS02My4zQzI2Ni44IDE4NCAyMjMuMyAxNjAgMTc2LjUgMTYwUzg2LjIgMTg0IDYxLjMgMjIzLjZMMjEuNCAyODdjLTkuNCAxNS00LjkgMzQuNyAxMCA0NC4xczM0LjcgNC45IDQ0LjEtMTBsMjAuOS0zMy4yIDAgMTkyLjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpNNDQ4LjUgMGwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwwIDEwMC4zYy05LjYgNS41LTE2IDE1LjktMTYgMjcuN2wwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwIDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDU5LjUgMGMxMC40IDAgMTgtOS44IDE1LjUtMTkuOWwtMjMtOTIuMSA0NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNDggMCAwLTI2LjcgNTMuMS0xNy43YzYuNS0yLjIgMTAuOS04LjMgMTAuOS0xNS4ybDAtODQuNWMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDU2LTE2IDUuMyAwLTEwOS4zYzAtMTEuOC02LjQtMjIuMi0xNi0yNy43bDAtMTE2LjNjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSwkd3Q9UW9lLER3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZXN0LXBhdGNoZXMiLGljb246WzQ0OCw1MTIsW10sImUwODYiLCJNMjAwIDI5My45TDIwMCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDI3MC41YzAtOS41IDIuOC0xOC43IDguMS0yNi42bDQ3LjktNzEuOGM1LjMtNy45IDguMS0xNy4xIDguMS0yNi42TDY0IDQ4QzY0IDIxLjUgODUuNSAwIDExMiAwbDMuNSAwYy4zIDAgLjYgMCAxIDAgLjYgMCAxLjIgMCAxLjggMCAxOC44IDAgMzQuMSA5LjcgNDQuMSAxOC44IDkuMyA4LjQgMjguNSAyMS4yIDYxLjcgMjEuMnM1Mi40LTEyLjggNjEuNy0yMS4yYzEwLTkuMSAyNS4zLTE4LjggNDQuMS0xOC44IC42IDAgMS4yIDAgMS44IDAgLjMgMCAuNiAwIDEgMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk3LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZsNDcuOSA3MS44YzUuMyA3LjkgOC4xIDE3LjEgOC4xIDI2LjZMNDQ4IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTA0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTcwLjFjMC0zLjkgLjUtNy44IDEuNC0xMS42TDMwMy42IDY1LjRDMjg1LjkgNzcuMiAyNTkuOCA4OCAyMjQgODhzLTYxLjktMTAuOC03OS42LTIyLjZsNTQuMiAyMTYuOGMxIDMuOCAxLjQgNy43IDEuNCAxMS42ek05NiA0NTZhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek02My41IDI1NS41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdMNzkgMjg4IDYzLjUgMzAzLjVjLTQuNyA0LjctNC43IDEyLjMgMCAxN3MxMi4zIDQuNyAxNyAwTDk2IDMwNSAxMTEuNSAzMjAuNWM0LjcgNC43IDEyLjMgNC43IDE3IDBzNC43LTEyLjMgMC0xN0wxMTMgMjg4IDEyOC41IDI3Mi41YzQuNy00LjcgNC43LTEyLjMgMC0xN3MtMTIuMy00LjctMTcgMEw5NiAyNzEgODAuNSAyNTUuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwek0zMDQgMjgwbDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTggMCAwLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LEtvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJ0aW5pLWdsYXNzLWVtcHR5IixpY29uOls1MTIsNTEyLFsiZ2xhc3MtbWFydGluaSJdLCJmMDAwIiwiTTMyIDMyQzE5LjEgMzIgNy40IDM5LjggMi40IDUxLjhTLjIgNzcuNSA5LjQgODYuNmwyMTQuNiAyMTQuNiAwIDE0Ni43LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC0xNDYuNyAyMTQuNi0yMTQuNmM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSAzMiA0ODAgMzJMMzIgMzJ6TTI1NiAyNDIuN0wxMDkuMyA5NiA0MDIuNyA5NiAyNTYgMjQyLjd6Il19LEV3dD1Lb2UsTnd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25ldCIsaWNvbjpbNDQ4LDUxMixbMTI5NTIyXSwiZjA3NiIsIk0wIDE3NkwwIDI4OEMwIDQxMS43IDEwMC4zIDUxMiAyMjQgNTEyUzQ0OCA0MTEuNyA0NDggMjg4bDAtMTEyLTEyOCAwIDAgMTEyYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bDAtMTEyLTEyOCAwem0wLTQ4bDEyOCAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NGwwIDY0em0zMjAgMGwxMjggMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0eiJdfSxQd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1iYXJyaWVyIixpY29uOls2NDAsNTEyLFtdLCJlNTYyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCAyNjYuMyAxNDkuMiA5NiA2NCA5NiA2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDA1LjIgOTZsLTc0LjMgMC01LjQgMTAuNy05MC42IDE4MS4zIDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zek0zNjIuOCAyODhsNzQuMyAwIDUuNC0xMC43IDkwLjYtMTgxLjMtNzQuMyAwLTUuNCAxMC43LTkwLjYgMTgxLjN6TTIwMi44IDk2bC01LjQgMTAuNy05MC42IDE4MS4zIDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zLTc0LjMgMHptMjg4IDE5Mmw4NS4yIDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUzLjctODUuMiAxNzAuM3oiXX0sSm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXBhc3MtZHJhZnRpbmciLGljb246WzUxMiw1MTIsWyJkcmFmdGluZy1jb21wYXNzIl0sImY1NjgiLCJNOTkuMyAyNTYuMWw2OS40LTExOS45Yy01LjYtMTIuMi04LjgtMjUuOC04LjgtNDAuMiAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgMTQuMy0zLjEgMjcuOS04LjggNDAuMmw0NC40IDc2LjdjLTIzLjEgMjYtNTMuNyA0NS4xLTg4LjQgNTMuOEwyNTYgMTkxLjkgMTg3LjkgMzA5LjVjMjEuNSA2LjggNDQuMyAxMC41IDY4LjEgMTAuNSA3MC43IDAgMTMzLjgtMzIuNyAxNzQuOS04NCAxMS4xLTEzLjggMzEuMi0xNiA0NS01czE2IDMxLjIgNSA0NWMtNTIuNyA2NS44LTEzMy45IDEwOC0yMjQuOCAxMDgtMzUuNCAwLTY5LjQtNi40LTEwMC43LTE4LjFMOTguNyA0NjMuN0M5NCA0NzEuOCA4NyA0NzguNCA3OC42IDQ4Mi42TDIzLjIgNTEwLjNjLTUgMi41LTEwLjkgMi4yLTE1LjYtLjdTMCA1MDEuNSAwIDQ5NmwwLTU1LjRjMC04LjQgMi4yLTE2LjcgNi41LTI0LjFsNjAtMTAzLjdjLTEyLjgtMTEuMi0yNC42LTIzLjUtMzUuMy0zNi44LTExLjEtMTMuOC04LjgtMzMuOSA1LTQ1czMzLjktOC44IDQ1IDVjNS43IDcuMSAxMS44IDEzLjggMTguMiAyMC4xek0zODEuMSA0MDcuOWMzMi41LTEzIDYyLjQtMzEgODguOS01Mi45bDM1LjYgNjEuNWM0LjIgNy4zIDYuNSAxNS42IDYuNSAyNC4xbDAgNTUuNGMwIDUuNS0yLjkgMTAuNy03LjYgMTMuNnMtMTAuNiAzLjItMTUuNiAuN2wtNTUuNC0yNy43Yy04LjQtNC4yLTE1LjQtMTAuOC0yMC4xLTE4LjlsLTMyLjMtNTUuOHpNMjU2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEl3dD1Kb2UsRnd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wZXJzb24tY29uZmluZWQiLGljb246WzQ0OCw1MTIsW10sImU1NzciLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptOTYgMTEyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTgwIDEwNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTAyLjFjMCAzNi40LTI5LjUgNjUuOS02NS45IDY1LjktMTcuNSAwLTM0LjMtNi45LTQ2LjYtMTkuM2wtNTQuNy01NC43LTI4LjEgNTYuM2MtNy45IDE1LjgtMjcuMSAyMi4yLTQyLjkgMTQuM3MtMjIuMi0yNy4xLTE0LjMtNDIuOWw0OC05NmM0LjYtOS4yIDEzLjMtMTUuNiAyMy41LTE3LjNzMjAuNSAxLjcgMjcuOCA5bDQxLjQgNDEuNCAwLTU4Ljd6Il19LE93dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGF0ZS13aGVhdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU1YSIsIk0xNzYgMzJjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNmMwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6TTU2IDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzQyLjcgNjQgNTYgNjR6TTI0IDEzNmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCAxODRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTggOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI3MiA0OGMwLTguOCA3LjItMTYgMTYtMTYgNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNmMwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xNnpNNDAwIDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNjBsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MC04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTM1MiAxNzZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS05NiAxNmwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMy41IDM0Ny42QzEuNiAzMzIuOSAxMyAzMjAgMjcuOCAzMjBsNDU2LjQgMGMxNC44IDAgMjYuMiAxMi45IDI0LjQgMjcuNi02LjMgNTAuMi00NC40IDg5LjQtOTIuNiA5OC40bDAgMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMmMtNDguMi05LTg2LjMtNDguMi05Mi41LTk4LjR6Il19LGVzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWduLWhhbmdpbmciLGljb246WzUxMiw1MTIsWyJzaWduIl0sImY0ZDkiLCJNOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNTIgMCAwIDM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM1Mi0zMiAwQzE0LjMgMTI4IDAgMTEzLjcgMCA5NlMxNC4zIDY0IDMyIDY0bDMyIDAgMC0zMkM2NCAxNC4zIDc4LjMgMCA5NiAwek0yMDggMTc2bDI0MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTQ0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNDAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNDRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LEJ3dD1lc2UsdHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1iYXR0ZXJ5IixpY29uOls1MTIsNTEyLFsiYmF0dGVyeS1jYXIiXSwiZjVkZiIsIk04MCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDk2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMTYgMHpNMzkyIDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMyLTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMiAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMzJ6TTY0IDI0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCAyMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxSd3Q9dHNlLFdWPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaXJ0IixpY29uOls2NDAsNTEyLFsxMjgwODUsInQtc2hpcnQiLCJ0c2hpcnQiXSwiZjU1MyIsIk0zMjAuMiAxMTJjNDQuMiAwIDgwLTM1LjggODAtODBsNTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDYxNy42IDE2OS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC01MC43IDUwLjdjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC00MS40LTQxLjQgMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE5MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIyNC00MS40IDQxLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDIyLjkgMjE0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDE0MS41IDUwLjdjMTItMTIgMjguMy0xOC43IDQ1LjMtMTguN2w1My41IDBjMCA0NC4yIDM1LjggODAgODAgODB6Il19LEh3dD1XVixxd3Q9V1YsVnd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcmFncmFwaCIsaWNvbjpbNDQ4LDUxMixbMTgyXSwiZjFkZCIsIk0xNjAgMEw0MTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQxNi00OCAwIDAgNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwLTQ4IDBDNzEuNiAzMjAgMCAyNDguNCAwIDE2MFM3MS42IDAgMTYwIDB6Il19LGFzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZXMtYnVsayIsaWNvbjpbNTc2LDUxMixbIm1haWwtYnVsayJdLCJmNjc0IiwiTTExMiAwQzg1LjUgMCA2NCAyMS41IDY0IDQ4bDAgMTYwIDgwIDAgMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDIwOCAwIDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTEyIDB6TTI0MCAxMjhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzIgODAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMTEyIDE2MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yODggMHptMjAwIDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDggMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEwLjQgMTU2LjYgODYuMmMxLjEgLjYgMi4yIC45IDMuNCAuOXMyLjQtLjMgMy40LS45TDMyMCAzMTQuNCAzMjAgMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDI1NnpNMzIwIDM2OS4yTDE4Ni42IDQ0Mi42Yy04LjEgNC41LTE3LjMgNi44LTI2LjYgNi44cy0xOC40LTIuNC0yNi42LTYuOEwwIDM2OS4yIDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTQuOHoiXX0sVXd0PWFzZSxqd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VpdGFyIixpY29uOls1MTIsNTEyLFtdLCJmN2E2IiwiTTQ2NSA3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwzODMgNTVjLTIuNCAyLjQtNC4zIDUuMy01LjUgOC41bC0xNS40IDQxLTc3LjUgNzcuNmMtNDUuMS0yOS40LTk5LjMtMzAuMi0xMzEgMS42LTExIDExLTE4IDI0LjYtMjEuNCAzOS42LTMuNyAxNi42LTE5LjEgMzAuNy0zNi4xIDMxLjYtMjUuNiAxLjMtNDkuMyAxMC43LTY3LjMgMjguNi00NC44IDQ0LjgtMzYuNCAxMjUuOCAxOC43IDE4MC45UzE4My42IDUyOCAyMjguNCA0ODMuMmMxNy45LTE3LjkgMjcuNC00MS43IDI4LjYtNjcuMyAuOS0xNyAxNS0zMi4zIDMxLjYtMzYuMSAxNS0zLjQgMjguNi0xMC41IDM5LjYtMjEuNCAzMS44LTMxLjggMzEtODUuOSAxLjYtMTMxbDc3LjYtNzcuNiA0MS0xNS40YzMuMi0xLjIgNi4xLTMuMSA4LjUtNS41bDQ4LTQ4YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQ2NSA3ek0yMDggMjU2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnoiXX0sV3d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1aXRjYXNlIixpY29uOls1MTIsNTEyLFsxMjk1MjNdLCJmMGYyIiwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MjQgMjI0IDAgMC00MjRjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjAwIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek00MTYgOTZsMCAzODQgMzIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMzIgMHpNOTYgNDgwbDAtMzg0LTMyIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyIDB6Il19LHJzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtdXAiLGljb246WzUxMiw1MTIsWzYxNDY3LCJhcnJvdy1hbHQtY2lyY2xlLXVwIl0sImYzNWIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTExLjMtMzg3LjNsMTA0IDEwNGM0LjYgNC42IDUuOSAxMS41IDMuNSAxNy40UzM2Ni41IDI1NiAzNjAgMjU2bC01NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTYtNTYgMGMtNi41IDAtMTIuMy0zLjktMTQuOC05LjlzLTEuMS0xMi45IDMuNS0xNy40bDEwNC0xMDRjNi4yLTYuMiAxNi40LTYuMiAyMi42IDB6Il19LEd3dD1yc2UsWXd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImYiLGljb246WzMyMCw1MTIsWzEwMl0sIjQ2IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0xMjggMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LFp3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4bWFya3MtbGluZXMiLGljb246WzY0MCw1MTIsW10sImU1OWEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZ6TTcgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwek0yNjUgMTY3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NXpNNDU1IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0saXNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLW9jZWFuaWEiLGljb246WzUxMiw1MTIsWyJnbG9iZS1vY2VhbmlhIl0sImU0N2IiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAxNTAuNmMwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmw0MS40IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTZ6TTQzMiAyNTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQxMS4zIDM3OS4zbC0zMiAzMmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzMi0zMmM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6TTIyNCA0MzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnptLTk2LTgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE4LjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsNDgtNDhjNC4yLTQuMiAxMC02LjYgMTYtNi42bDYuNiAwYzguOCAwIDE2IDcuMiAxNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2IDcuMi0xNiAxNi0xNmw2LjYgMGM2IDAgMTEuOCAyLjQgMTYgNi42bDQ4IDQ4YzYgNiA5LjQgMTQuMSA5LjQgMjIuNmwwIDUwLjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTUwLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTEzLjMtMTMuM2MtNi02LTE0LjEtOS40LTIyLjYtOS40TDEyOCAzNTJ6Il19LFh3dD1pc2UsUXd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtc2xhc2giLGljb246WzU3Niw1MTIsW10sImY0YjMiLCJNNDEtMjVDMzEuNi0zNC4zIDE2LjQtMzQuMyA3LTI1Uy0yLjMtLjQgNyA5TDUzNSA1MzdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05Ni42LTk2LjZjNDQuNC00My4yIDcxLjYtMTAxLjggNzEuNi0xNjYuNSAwLTEzMi41LTExNC42LTI0MC0yNTYtMjQwLTYzIDAtMTIwLjggMjEuNC0xNjUuNCA1Ni44TDQxLTI1em0xOS40IDE1NUM0Mi4yIDE2MyAzMiAyMDAuMyAzMiAyMzkuOSAzMiAyOTQuMiA1MS4yIDM0NC4yIDgzLjYgMzg0LjRMMzQuOCA0NzYuN2MtNC44IDktMy4zIDIwIDMuNiAyNy41UzU2LjEgNTE0IDY1LjUgNTEwbDExOC40LTUwLjdjMzEuOCAxMy4zIDY3LjEgMjAuNyAxMDQuMSAyMC43IDM2LjQgMCA3MC45LTcuMSAxMDIuMy0xOS45TDYwLjMgMTMwLjF6Il19LEt3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGF5IixpY29uOls0NDgsNTEyLFs5NjU0XSwiZjA0YiIsIk05MS4yIDM2LjljLTEyLjQtNi44LTI3LjQtNi41LTM5LjYgLjdTMzIgNTcuOSAzMiA3MmwwIDM2OGMwIDE0LjEgNy41IDI3LjIgMTkuNiAzNC40czI3LjIgNy41IDM5LjYgLjdsMzM2LTE4NGMxMi44LTcgMjAuOC0yMC41IDIwLjgtMzUuMXMtOC0yOC4xLTIwLjgtMzUuMWwtMzM2LTE4NHoiXX0sSnd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWwtY2lyY2xlLWNoZWNrIixpY29uOls1MTIsNTEyLFtdLCJlNTk2IiwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBMMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNjEuNGMtNjYuMSAzMC4zLTExMiA5Ny4xLTExMiAxNzQuNiAwIDM5LjcgMTIgNzYuNiAzMi43IDEwNy4yLTEwLjMgMy4xLTIxLjMgNC44LTMyLjcgNC44LTYxLjkgMC0xMTItNTAuMS0xMTItMTEyTDY0IDY0QzQ2LjMgNjQgMzIgNDkuNyAzMiAzMnptOTYgMzJsMCAxMjggOTYgMCAwLTEyOC05NiAwem05NiAzMzZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LGVNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtY2lyY2xlLWNoZWNrIixpY29uOls1NzYsNTEyLFtdLCJlNGM5IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sdE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNlZGktc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTBkZiIsIk0yMzIgMzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNi41Qzg4LjggNzMuOSAxNiAxNTYuNCAxNiAyNTZTODguOCA0MzguMSAxODQgNDUzLjVsMCAyNi41YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNC42YzQ2LjgtMy43IDg5LjEtMjMuNiAxMjEuMy01My45IDEyLjktMTIuMSAxMy40LTMyLjQgMS4zLTQ1LjJzLTMyLjQtMTMuNC00NS4yLTEuM2MtMjAuNyAxOS42LTQ3LjYgMzIuNy03Ny4zIDM2LjJsMC0yNzAuMWMyOS44IDMuNSA1Ni42IDE2LjYgNzcuMyAzNi4yIDEyLjkgMTIuMSAzMy4xIDExLjUgNDUuMi0xLjNzMTEuNS0zMy4xLTEuMy00NS4yQzMyMS4xIDgwLjIgMjc4LjggNjAuMyAyMzIgNTYuNkwyMzIgMzJ6bS00OCA5MS44bDAgMjY0LjRDMTI0LjMgMzczLjggODAgMzIwLjEgODAgMjU2czQ0LjMtMTE3LjggMTA0LTEzMi4yeiJdfSxhTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHV6emxlLXBpZWNlIixpY29uOls1MTIsNTEyLFsxMjk1MTNdLCJmMTJlIiwiTTIyNCAwYzM1LjMgMCA2NCAyMS41IDY0IDQ4IDAgMTAuNC00LjQgMjAtMTIgMjcuOS02LjYgNi45LTEyIDE1LjMtMTIgMjQuOSAwIDE1IDEyLjIgMjcuMiAyNy4yIDI3LjJsNDQuOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDQuOGMwIDE1IDEyLjIgMjcuMiAyNy4yIDI3LjIgOS41IDAgMTgtNS40IDI0LjktMTIgNy45LTcuNSAxNy41LTEyIDI3LjktMTIgMjYuNSAwIDQ4IDI4LjcgNDggNjRzLTIxLjUgNjQtNDggNjRjLTEwLjQgMC0yMC4xLTQuNC0yNy45LTEyLTYuOS02LjYtMTUuMy0xMi0yNC45LTEyLTE1IDAtMjcuMiAxMi4yLTI3LjIgMjcuMkwzODQgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC01Ni44IDBjLTEyLjggMC0yMy4yLTEwLjQtMjMuMi0yMy4yIDAtOS4yIDUuOC0xNy4zIDEzLjItMjIuOCAxMS42LTguNyAxOC44LTIwLjcgMTguOC0zNCAwLTI2LjUtMjguNy00OC02NC00OHMtNjQgMjEuNS02NCA0OGMwIDEzLjMgNy4yIDI1LjMgMTguOCAzNCA3LjQgNS41IDEzLjIgMTMuNSAxMy4yIDIyLjggMCAxMi44LTEwLjQgMjMuMi0yMy4yIDIzLjJMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDM0My4yYzAtMTIuOCAxMC40LTIzLjIgMjMuMi0yMy4yIDkuMiAwIDE3LjMgNS44IDIyLjggMTMuMiA4LjcgMTEuNiAyMC43IDE4LjggMzQgMTguOCAyNi41IDAgNDgtMjguNyA0OC02NHMtMjEuNS02NC00OC02NGMtMTMuMyAwLTI1LjMgNy4yLTM0IDE4LjgtNS41IDcuNC0xMy41IDEzLjItMjIuOCAxMy4yLTEyLjggMC0yMy4yLTEwLjQtMjMuMi0yMy4yTDAgMTc2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDEwOC44IDBjMTUgMCAyNy4yLTEyLjIgMjcuMi0yNy4yIDAtOS41LTUuNC0xOC0xMi0yNC45LTcuNS03LjktMTItMTcuNS0xMi0yNy45IDAtMjYuNSAyOC43LTQ4IDY0LTQ4eiJdfSxyTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVsbWV0LXVuIixpY29uOls1MTIsNTEyLFtdLCJlNTAzIiwiTTQ3OS41IDIyNEM0NzEuMiA5OC45IDM2Ny4yIDAgMjQwIDAgMTA3LjUgMCAwIDEwNy41IDAgMjQwbDAgNTYuM0MwIDM0NC44IDM5LjIgMzg0IDg3LjcgMzg0bDEyNy4zIDAgMTI4LjYgMTIxLjRjNC41IDQuMiAxMC40IDYuNiAxNi41IDYuNmw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04Ni41IDAtMS41LTEuNSAwLTE3NC41IDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0uNSAwek0zMjAgNDE3LjJsLTc4LTczLjcgMzIuNC01NS41IDQ1LjYgMCAwIDEyOS4yek0yODUuMyAxMDMuMWwzNC43IDUyIDAtNDMuMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgOTZjMCA3LjEtNC42IDEzLjMtMTEuNCAxNS4zcy0xNC0uNi0xNy45LTYuNGwtMzQuNy01MiAwIDQzLjJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC05NmMwLTcuMSA0LjYtMTMuMyAxMS40LTE1LjNzMTQgLjYgMTcuOSA2LjR6TTE2MCAxMTJsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnoiXX0saU10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzLXdhdGVyIixpY29uOlszODQsNTEyLFtdLCJlNGY0IiwiTTMyIDBDMjMuMSAwIDE0LjYgMy43IDguNiAxMC4yUy0uNiAyNS40IC4xIDM0LjNMMjguOSA0MzcuN2MzIDQxLjkgMzcuOCA3NC4zIDc5LjggNzQuM2wxNjYuNiAwYzQyIDAgNzYuOC0zMi40IDc5LjgtNzQuM0wzODMuOSAzNC4zYy42LTguOS0yLjQtMTcuNi04LjUtMjQuMVMzNjAuOSAwIDM1MiAwTDMyIDB6TTczIDE1Ni41bC02LjYtOTIuNSAyNTEuMyAwLTYuNiA5Mi41LTI0LjIgMTIuMWMtMTkuNCA5LjctNDIuMiA5LjctNjEuNiAwLTIwLjktMTAuNC00NS41LTEwLjQtNjYuNCAwLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMEw3MyAxNTYuNXoiXX0sb010PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1ib2x0IixpY29uOls1NzYsNTEyLFtdLCJlNGZjIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTc3LjQtNzdjLTUuOC00LjItMTMuOC00LTE5LjQgLjVsLTgwIDY0Yy01LjMgNC4yLTcuNCAxMS40LTUuMSAxNy44UzM2OS4yIDQxNiAzNzYgNDE2bDMyLjkgMC0xNS45IDQyLjRjLTIuNSA2LjctLjIgMTQuMyA1LjYgMTguNnMxMy44IDQgMTkuNC0uNWw4MC02NGM1LjMtNC4yIDcuNC0xMS40IDUuMS0xNy44UzQ5NC44IDM4NCA0ODggMzg0bC0zMi45IDAgMTUuOS00Mi40YzIuNS02LjcgLjItMTQuMy01LjYtMTguNnoiXX0sc010PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1bXAtc29hcCIsaWNvbjpbMzIwLDUxMixbXSwiZTA2YiIsIk05NiAwbDAgODAgMTI4IDAgMC0yNCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzMwOS4zIDggMjk2IDhsLTcyIDAgMC04YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwQzExMC4zLTMyIDk2LTE3LjcgOTYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6TTIyNCAzNDRjMCAzNS4zLTI4LjcgNTYtNjQgNTZzLTY0LTIwLjctNjQtNTZjMC0zMi41IDM3LTgwLjkgNTAuOS05Ny45IDMuMi0zLjkgOC4xLTYuMSAxMy4xLTYuMXM5LjkgMi4yIDEzLjEgNi4xQzE4NyAyNjMuMSAyMjQgMzExLjUgMjI0IDM0NHoiXX0sbk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtc2Npc3NvcnMiLGljb246WzUxMiw1MTIsW10sImYyNTciLCJNNDAgMjA4Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDE4MC4yIDBjLTcuNiA4LjUtMTIuMiAxOS43LTEyLjIgMzIgMCAyNS4zIDE5LjUgNDYgNDQuMyA0Ny45LTcuNyA4LjUtMTIuMyAxOS44LTEyLjMgMzIuMSAwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMTEzLjFjMC00MC4yLTE2LTc4LjgtNDQuNC0xMDcuMy0yMi44LTIyLjgtNTMuNi0zNS42LTg1LjgtMzUuNkwzMzYgNjRjLTIxLjMgMC0zOS4zIDEzLjktNDUuNiAzMy4xbDc0LjUgMjMuN2M4LjQgMi43IDEzLjEgMTEuNyAxMC40IDIwLjFzLTExLjcgMTMuMS0yMC4xIDEwLjRsLTY3LjEtMjEuNCAwIC4xLTIwNC02NC4xQzYyLjkgNTkuMiA0MC41IDcwLjkgMzMuOSA5MnM1LjEgNDMuNSAyNi4yIDUwLjJMMjY5LjUgMjA4IDQwIDIwOHoiXX0sb3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvbGx5IixpY29uOls1NzYsNTEyLFsiZG9sbHktYm94Il0sImY0NzIiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGw3Mi45IDAgOTIuMSAyNzYuMmMtMjIuNSAxNy42LTM3IDQ1LTM3IDc1LjggMCA1MyA0MyA5NiA5NiA5NiA1Mi40IDAgOTUuMS00MiA5Ni05NC4zbDIwMi4xLTY3LjRjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNXMtMjMuNy0yNS44LTQwLjUtMjAuMkwzMzEuOCAzNTdjLTE3LjItMjIuMS00My45LTM2LjUtNzQtMzdMMTY1LjcgNDMuOEMxNTYuOSAxNy42IDEzMi41IDAgMTA0LjkgMEwzMiAwek0yMDggNDE2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTI4MC41IDg5LjNjLTI1LjIgOC4yLTM5IDM1LjMtMzAuOCA2MC41bDM5LjYgMTIxLjdjOC4yIDI1LjIgMzUuMyAzOSA2MC41IDMwLjhsMTIxLjctMzkuNmMyNS4yLTguMiAzOS0zNS4zIDMwLjgtNjAuNUw0NjIuOCA4MC41Yy04LjItMjUuMi0zNS4zLTM5LTYwLjUtMzAuOEwyODAuNSA4OS4zeiJdfSxsTXQ9b3NlLElVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcGVyY2xpcCIsaWNvbjpbNTEyLDUxMixbMTI4MjA2XSwiZjBjNiIsIk0yMjQuNiAxMi44YzU2LjItNTYuMiAxNDcuNC01Ni4yIDIwMy42IDBzNTYuMiAxNDcuNCAwIDIwMy42bC0xNjQgMTY0Yy0zNC40IDM0LjQtOTAuMSAzNC40LTEyNC41IDBzLTM0LjQtOTAuMSAwLTEyNC41TDI5Mi41IDEwMy4zYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMTg1IDMwMS4zYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTY0LTE2NGMzMS4yLTMxLjIgMzEuMi04MS45IDAtMTEzLjFzLTgxLjktMzEuMi0xMTMuMSAwbC0xNjQgMTY0Yy01My4xIDUzLjEtNTMuMSAxMzkuMiAwIDE5Mi4zczEzOS4yIDUzLjEgMTkyLjMgMEw0MjguMyAyODQuM2MxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDM0My40IDQ1OS42Yy03OC4xIDc4LjEtMjA0LjcgNzguMS0yODIuOCAwcy03OC4xLTIwNC43IDAtMjgyLjhsMTY0LTE2NHoiXX0sY010PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRlbW9jcmF0IixpY29uOls2NDAsNTEyLFtdLCJmNzQ3IiwiTTY0IDMyYzAtOC45IDMuOC0yMC45IDYuMi0yNy4zIDEtMi44IDMuOC00LjcgNi44LTQuNyAxLjkgMCAzLjggLjcgNS4yIDIuMUwxMjggNDUuNyAxNzMuOCAyLjFjMS40LTEuMyAzLjItMi4xIDUuMi0yLjEgMyAwIDUuOCAxLjggNi44IDQuNyAyLjQgNi41IDYuMiAxOC40IDYuMiAyNy4zIDAgMjYuNS0yMS45IDQyLTI5LjUgNDYuNmw3Ni4yIDcyLjZjNiA1LjcgMTMuOSA4LjggMjIuMSA4LjhsMjE5LjIgMCAzMiAwYzQwLjMgMCA3OC4yIDE5IDEwMi40IDUxLjJsMTkuMiAyNS42YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOHMtMzQuMiA3LjctNDQuOC02LjRsLTE5LjItMjUuNmMtNS4zLTctMTEuOC0xMi44LTE5LjItMTdsMCA4Ny40LTM1MiAwLTQwLjQtOTQuM2MtMy45LTkuMi0xNS4zLTEyLjYtMjMuNi03bC00Mi4xIDI4Yy05LjEgNi4xLTE5LjcgOS4zLTMwLjcgOS4zbC0yIDBDMjMuOSAyNTYgMCAyMzIuMSAwIDIwMi43IDAgMTkwLjYgNC4xIDE3OC45IDExLjcgMTY5LjRMODcuNiA3NC42Qzc4LjEgNjcuNCA2NCA1My4yIDY0IDMyek01NDQgMzUybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0LTE2MCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4IDM1MiAwek0yNTYgMjgwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQ4LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTM2OCAyODBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxzc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWFycm93LXVwLXJpZ2h0IixpY29uOls0NDgsNTEyLFsiZXh0ZXJuYWwtbGluay1zcXVhcmUiXSwiZjE0YyIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0yNzIgMjk2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU0LjEgMC0xMDMgMTAzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTAzLTEwMyAwIDU0LjF6Il19LGRNdD1zc2UsZk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZlcnJ5IixpY29uOls2NDAsNTEyLFtdLCJlNGVhIiwiTTIyNCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxMjgtLjEgMGMuMSAuNyAuMSAxLjMgLjEgMiAwIDMwLjItNy42IDU5LjgtMjIgODYuM2wtMTIuNyAyMy4zLS42IDFjLTIyLjMtMTEuMy00Ni41LTE2LjgtNzAuOC0xNi43LTMyLjUgLjItNjQuOSAxMC43LTkyLjQgMzEuNC0yMi4xIDE2LjYtMjkuMSAxNi42LTUxLjIgMC0yOC4xLTIxLjEtNjEuMy0zMS42LTk0LjQtMzEuNC0yMy42IC4yLTQ3LjEgNS43LTY4LjcgMTYuN2wtLjYtMS0xMi43LTIzLjNjLTE0LjQtMjYuNS0yMi01Ni4yLTIyLTg2LjMgMC0uNyAwLTEuNCAuMS0ybC0uMSAwIDAtMTI4YzAtNDQuMiAzNS44LTgwIDgwLTgwbDQ4IDAgMC0zMnpNMTYwIDI1NmwzMjAgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZsLTI4OCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTJ6TTQwMy40IDQ3Ni4xQzM3OS4xIDQ5NC4zIDM1MS4xIDUxMiAzMjAgNTEycy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sdU10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1aXRvIixpY29uOls1NzYsNTEyLFtdLCJlNTJiIiwiTTE3OC41IDQ5NS4yYy03LjUgOS42LTIxIDEyLjEtMzEuMyA1LjNTMTMzLjUgNDgwIDEzOC45IDQ2OWwxLjItMi4yIDM2LjItNTggMC00MSAuMy00Yy42LTMuOSAyLjItNy43IDQuNi0xMC45bDM5LjMtNTIuMi02Ni4yIDU5LjVjLTE3IDE1LjMtMzkgMjMuNy02MS45IDIzLjhsLTguMSAwYy00Ni42IDAtODQuNC0zNy44LTg0LjQtODQuNCAwLTQzIDMyLjQtNzkuMiA3NS4xLTgzLjlsMTMwLjUtMTQuNS00NC44LTM4LjMtMi40LTIuNGMtNS4zLTYtNy4zLTE0LjQtNS4zLTIyLjNsMTMuMy01My40LTI1LjktMzguOS0xLjMtMi4xYy01LjgtMTAuOC0yLjctMjQuNiA3LjQtMzEuNyAxMC4xLTcuMSAyMy43LTUuMSAzMS40IDQuM2wxLjUgMiAzMiA0OCAxLjQgMi4yYzIuOCA1LjMgMy41IDExLjYgMi4xIDE3LjZsLTEyLjMgNDkuMiA1My4zIDQ1LjcgMC0yOC44YzAtMTEuOCA2LjUtMjIuMSAxNi0yNy43bDAtNjAuNSAuMy0zLjNjMS41LTcuMyA4LTEyLjcgMTUuNy0xMi43czE0LjIgNS41IDE1LjcgMTIuN2wuMyAzLjIgMCA2MC41YzkuNiA1LjUgMTYgMTUuOCAxNiAyNy43bDAgMjguOSA1My40LTQ1LjgtMTIuMy00OS4yYy0xLjUtNS45LS43LTEyLjIgMi4xLTE3LjZsMS40LTIuMiAzMi00OCAxLjUtMmM3LjctOS40IDIxLjMtMTEuNSAzMS40LTQuMyAxMC4xIDcuMSAxMy4xIDIwLjkgNy40IDMxLjdsLTEuMyAyLjEtMjUuOSAzOC45IDEzLjMgNTMuNGMyIDgtLjEgMTYuMy01LjMgMjIuM2wtMi40IDIuNC00NC43IDM4LjMgMTMwLjUgMTQuNWM0Mi44IDQuOCA3NS4xIDQwLjkgNzUuMSA4My45IDAgNDYuNi0zNy44IDg0LjQtODQuNCA4NC40bC04LjEgMGMtMjIuOCAwLTQ0LjktOC41LTYxLjktMjMuOGwtNjYuMS01OS41IDM5LjIgNTIuMmMyLjQgMy4yIDQgNyA0LjYgMTAuOWwuMyA0IDAgNDEgMzYuMiA1OCAxLjIgMi4xYzUuNCAxMSAyIDI0LjctOC4zIDMxLjVzLTIzLjggNC40LTMxLjMtNS4zbC0xLjQtMi00MC02NC0xLjYtMy4xYy0xLjQtMy4xLTIuMS02LjYtMi4xLTEwLjFsMC0zOS44LTMyLjQtNDMuMSAwIDc0LjdjMCAxNy43LTE0LjMgMzItMzIgMzItMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03NC42LTMyLjMgNDMgMCAzOS44YzAgMy41LS43IDYuOS0yLjEgMTAuMWwtMS42IDMuMS00MCA2NC0xLjQgMnoiXX0scE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMSIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTQ0LjdjLTM1LjcgMi45LTY4LjUgMTUuNi05NiAzNS40bDAtNGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0IDBjLTEzLjggMTkuMi0yNC4xIDQxLTMwLjEgNjQuNS0xLjktLjQtMy45LS41LTUuOS0uNWwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA4MCA3NC45IDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjEgNDhMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NHpNMTQ0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNDQgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQwLjctNjcuM2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMjguNyAyOC43LTg5LjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw4OS40IDAtMjguNyAyOC43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNTYtNTZjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTU2LTU2Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHoiXX0sbnNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsWzg1OTYsImFycm93cy1hbHQtaCJdLCJmMzM3IiwiTTUwMi42IDQwNi42bC05NiA5NmMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzUyIDQ5Mi45IDM1MiA0ODBsMC02NC0zMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMjAgMCAwLTY0YzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjN6TTkuNCAxNTAuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTMTYwIDE5LjEgMTYwIDMybDAgNjQgMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwIDAgNjRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTk2LTk2eiJdfSxoTXQ9bnNlLG1NdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1cyIsaWNvbjpbNTEyLDUxMixbXSwiZTA3NCIsIk0yOTYgNDBjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBjMCA0NC4xLTUzLjMgNjYuMS04NC41IDM1LTE1LjYtMTUuNi00MC45LTE1LjYtNTYuNiAwcy0xNS42IDQwLjkgMCA1Ni42YzMxLjIgMzEuMiA5LjEgODQuNS0zNSA4NC41LTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBjNDQuMSAwIDY2LjEgNTMuMyAzNSA4NC41LTE1LjYgMTUuNi0xNS42IDQwLjkgMCA1Ni42czQwLjkgMTUuNiA1Ni42IDBjMzEuMi0zMS4yIDg0LjUtOS4xIDg0LjUgMzUgMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGMwLTQ0LjEgNTMuMy02Ni4xIDg0LjUtMzUgMTUuNiAxNS42IDQwLjkgMTUuNiA1Ni42IDBzMTUuNi00MC45IDAtNTYuNmMtMzEuMi0zMS4yLTkuMS04NC41IDM1LTg0LjUgMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDBjLTQ0LjEgMC02Ni4xLTUzLjMtMzUtODQuNSAxNS42LTE1LjYgMTUuNi00MC45IDAtNTYuNnMtNDAuOS0xNS42LTU2LjYgMEMzNDkuMyAxMDYuMSAyOTYgODQuMSAyOTYgNDB6TTE2MCAyMjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYwIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sZ010PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdlbSIsaWNvbjpbNTEyLDUxMixbMTI4MTQyXSwiZjNhNSIsIk0xMTYuNyAzMy44YzQuNS02LjEgMTEuNy05LjggMTkuMy05LjhsMjQwIDBjNy42IDAgMTQuOCAzLjYgMTkuMyA5LjhsMTEyIDE1MmM2LjggOS4yIDYuMSAyMS45LTEuNSAzMC40bC0yMzIgMjU2Yy00LjUgNS0xMSA3LjktMTcuOCA3LjlzLTEzLjItMi45LTE3LjgtNy45bC0yMzItMjU2Yy03LjctOC41LTguMy0yMS4yLTEuNS0zMC40bDExMi0xNTJ6bTM4LjUgMzkuOGMtMy4zIDIuNS00LjIgNy0yLjEgMTAuNUwyMTAuNSAxNzkuOCA2My4zIDE5MmMtNC4xIC4zLTcuMyAzLjgtNy4zIDhzMy4yIDcuNiA3LjMgOGwxOTIgMTZjLjQgMCAuOSAwIDEuMyAwbDE5Mi0xNmM0LjEtLjMgNy4zLTMuOCA3LjMtOHMtMy4yLTcuNi03LjMtOGwtMTQ3LjItMTIuMyA1Ny40LTk1LjZjMi4xLTMuNSAxLjItOC4xLTIuMS0xMC41cy03LjktMi0xMC43IDFMMjU2IDE3Mi4yIDE2NS45IDc0LjZjLTIuOC0zLTcuNC0zLjQtMTAuNy0xeiJdfSx4TXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9pbGV0IixpY29uOls0NDgsNTEyLFsxMjg3MDFdLCJmN2Q4IiwiTTI0IDBDMTAuNyAwIDAgMTAuNyAwIDI0UzEwLjcgNDggMjQgNDhsOCAwIDAgMTQ4LjljLTEuOSAxLjQtMy44IDIuOS01LjYgNC40LTE1LjUgMTMuMi0yNi40IDMxLjYtMjYuNCA1NC42IDAgNDYuOSAxNC4zIDg0LjEgMzcgMTEyLjUgMTQuMiAxNy43IDMxLjEgMzEuMyA0OC41IDQxLjhMNjUuNiA0NjkuOWMtMy4zIDkuOC0xLjYgMjAuNSA0LjQgMjguOFM4NS43IDUxMiA5NiA1MTJsMjU2IDBjMTAuMyAwIDE5LjktNC45IDI2LTEzLjNzNy43LTE5LjEgNC40LTI4LjhsLTE5LjgtNTkuNWMxNy40LTEwLjUgMzQuMy0yNC4xIDQ4LjUtNDEuOCAyMi43LTI4LjQgMzctNjUuNSAzNy0xMTIuNSAwLTIzLjEtMTAuOS00MS41LTI2LjQtNTQuNi0xLjgtMS41LTMuNy0zLTUuNi00LjRsMC0xNDguOSA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTNDM3LjMgMCA0MjQgMEwyNCAwek05NiA4MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2ek0yMjQgMjg4Yy04OC40IDAtMTYwLTE0LjMtMTYwLTMyczcxLjYtMzIgMTYwLTMyIDE2MCAxNC4zIDE2MCAzMi03MS42IDMyLTE2MCAzMnoiXX0sYk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpbmdsZS1xdW90ZS1sZWZ0IixpY29uOlsxOTIsNTEyLFtdLCJlODFiIiwiTTEyOCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIxNkMwIDE0OS43IDUzLjcgOTYgMTIwIDk2bDggMHoiXX0sdk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGxzIixpY29uOls1NzYsNTEyLFtdLCJlMWYzIiwiTTE2MCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzUyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTYwIDMyem0xNzYgOTZhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTE2MCAxNTJsMC00OGMwLTQuNCAzLjYtOCA4LThsNDggMGM0LjQgMCA4LjEgMy42IDcuNSA4LTMuNiAyOS0yNi42IDUxLjktNTUuNSA1NS41LTQuNCAuNS04LTMuMS04LTcuNXptMCAxMTJjMC00LjQgMy42LTguMSA4LTcuNSAyOSAzLjYgNTEuOSAyNi42IDU1LjUgNTUuNSAuNSA0LjQtMy4xIDgtNy41IDhsLTQ4IDBjLTQuNCAwLTgtMy42LTgtOGwwLTQ4ek01MDQgMTU5LjVjLTI5LTMuNi01MS45LTI2LjYtNTUuNS01NS41LS41LTQuNCAzLjEtOCA3LjUtOGw0OCAwYzQuNCAwIDggMy42IDggOGwwIDQ4YzAgNC40LTMuNiA4LjEtOCA3LjV6TTUxMiAyNjRsMCA0OGMwIDQuNC0zLjYgOC04IDhsLTQ4IDBjLTQuNCAwLTguMS0zLjYtNy41LTggMy42LTI5IDI2LjYtNTEuOSA1NS41LTU1LjUgNC40LS41IDggMy4xIDggNy41ek00OCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMzguNyAwIDE1MkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzOTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI2NHoiXX0seU10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldC1idXR0b24iLGljb246WzQ0OCw1MTIsW10sImYxMGEiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMjI0IDQwMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LG43PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3RhbmdsZS14bWFyayIsaWNvbjpbNTEyLDUxMixbNjIxNjQsInJlY3RhbmdsZS10aW1lcyIsInRpbWVzLXJlY3RhbmdsZSIsIndpbmRvdy1jbG9zZSJdLCJmNDEwIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek0xNjcgMTY3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDU1IDU1IDU1LTU1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNTUgNTUgNTUgNTVjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNTUtNTUtNTUgNTVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTUtNTUtNTUtNTVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSx3TXQ9bjcsTU10PW43LHpNdD1uNyxrTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid3JlbmNoIixpY29uOls1NzYsNTEyLFsxMjgyOTVdLCJmMGFkIiwiTTUwOS40IDk4LjZjNy42LTcuNiAyMC4zLTUuNyAyNC4xIDQuMyA2LjggMTcuNyAxMC41IDM3IDEwLjUgNTcuMSAwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MC0xNy41IDAtMzQuNC0yLjgtNTAuMi04TDE0Ni45IDQ5OC45Yy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDBzLTI4LjEtNzMuNyAwLTEwMS44TDIzMiAyMTAuMmMtNS4yLTE1LjgtOC0zMi42LTgtNTAuMiAwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCAyMC4xIDAgMzkuNCAzLjcgNTcuMSAxMC41IDEwIDMuOCAxMS44IDE2LjUgNC4zIDI0LjFsLTg4LjcgODguN2MtMyAzLTQuNyA3LjEtNC43IDExLjNsMCA0MS40YzAgOC44IDcuMiAxNiAxNiAxNmw0MS40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w4OC43LTg4Ljd6Il19LGs3PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoLWNhbiIsaWNvbjpbNDQ4LDUxMixbNjE0NjAsInRyYXNoLWFsdCJdLCJmMmVkIiwiTTEzNi43IDUuOUMxNDEuMS03LjIgMTUzLjMtMTYgMTY3LjEtMTZsMTEzLjkgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOUwzMjAgMzIgNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDguNy0yNi4xek0zMiAxNDRsMzg0IDAgMCAzMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMwNHptODggNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xOTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTkyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sU010PWs3LGxzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscyIsaWNvbjpbNDQ4LDUxMixbInRoIl0sImYwMGEiLCJNMzg0IDk2bDAgNjQtNjQgMCAwLTY0IDY0IDB6bTAgMTI4bDAgNjQtNjQgMCAwLTY0IDY0IDB6bTAgMTI4bDAgNjQtNjQgMCAwLTY0IDY0IDB6TTI1NiAyODhsLTY0IDAgMC02NCA2NCAwIDAgNjR6bS02NCA2NGw2NCAwIDAgNjQtNjQgMCAwLTY0em0tNjQtNjRsLTY0IDAgMC02NCA2NCAwIDAgNjR6TTY0IDM1Mmw2NCAwIDAgNjQtNjQgMCAwLTY0em0wLTE5MmwwLTY0IDY0IDAgMCA2NC02NCAwem0xMjggMGwwLTY0IDY0IDAgMCA2NC02NCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxDTXQ9bHNlLExNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWJib24iLGljb246WzM4NCw1MTIsWzEyNzg5NV0sImY0ZDYiLCJNMjM1LjEgMGMzMy40IDAgNjQuNSAxNy40IDgxLjkgNDUuOSAxLjIgMiAxMyAyMS4zIDM1LjMgNTcuOCAyMS4xIDM0LjUgMTguMyA3OC41LTcgMTEwTDI3OC4zIDI5Ny43IDM2NC41IDQwNmM1LjUgNi45IDQuNCAxNi45LTIuNSAyMi41bC04MCA2NGMtNi45IDUuNS0xNyA0LjQtMjIuNS0yLjVMMzguNiAyMTMuOEMxMy4zIDE4Mi4zIDEwLjUgMTM4LjMgMzEuNiAxMDMuOCA1NCA2Ny4yIDY1LjcgNDcuOSA2NyA0NS45IDg0LjQgMTcuNCAxMTUuNCAwIDE0OC45IDBsODYuMyAwek0xOTIgMTg5LjJsNDguNi02MS4yLTk3LjMgMCA0OC42IDYxLjJ6TTc1IDMzNi4ybDg2LjIgMTA3LjgtMzYuOCA0NmMtNS41IDYuOS0xNS42IDgtMjIuNSAyLjVsLTgwLTY0Yy02LjktNS41LTgtMTUuNi0yLjUtMjIuNUw3NSAzMzYuMnoiXX0sVE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhbmRtYXJrLWZsYWciLGljb246WzUxMiw1MTIsW10sImU1MWMiLCJNMzUyLTMyTDI0MC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTQ0LTE3NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2IDAgMCAyMjQtNTEuMiAzOC40QzQuNyA0NjAuNCAwIDQ2OS45IDAgNDgwIDAgNDk3LjcgMTQuMyA1MTIgMzIgNTEybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZsLTUxLjItMzguNCAwLTIyNCAxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOTIgMCAwLTY0IDgwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2em00OCAyMjRsMCAyMjQtNjQgMCAwLTIyNCA2NCAwem0tMTEyIDBsMCAyMjQtNjQgMCAwLTIyNCA2NCAwem0tMTEyIDBsMCAyMjQtNjQgMCAwLTIyNCA2NCAweiJdfSxjc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtZG93bi1sZWZ0LXJpZ2h0IixpY29uOls1MTIsNTEyLFsiYXJyb3dzLWFsdCJdLCJmMGIyIiwiTTI3OC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxNzkuMSAxMjggMTkyIDEyOGwzMiAwIDAgOTYtOTYgMCAwLTMyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlTMTI4IDMzMi45IDEyOCAzMjBsMC0zMiA5NiAwIDAgOTYtMzIgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzMyLjkgMzg0IDMyMCAzODRsLTMyIDAgMC05NiA5NiAwIDAgMzJjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzM4NCAxNzkuMSAzODQgMTkybDAgMzItOTYgMCAwLTk2IDMyIDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtNjQtNjR6Il19LF9NdD1jc2UsQU10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1zaWRlIixpY29uOls2NDAsNTEyLFsxMjg2NjNdLCJmNWU0IiwiTTE0NyAxMDYuN2wtMjkuOCA4NS4zIDEyMi45IDAgMC05Ni03Ny45IDBjLTYuOCAwLTEyLjkgNC4zLTE1LjEgMTAuN3pNNDguNiAxOTMuOUw4Ni41IDg1LjZDOTcuOCA1My41IDEyOC4xIDMyIDE2Mi4xIDMyTDM2MCAzMmMyNS4yIDAgNDguOSAxMS45IDY0IDMybDk2LjIgMTI4LjNDNTg3LjEgMTk2LjUgNjQwIDI1Mi4xIDY0MCAzMjBsMCAxNmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTYuNCAwYy00IDQ0LjktNDEuNyA4MC04Ny42IDgwcy04My42LTM1LjEtODcuNi04MGwtMTQ0LjcgMGMtNCA0NC45LTQxLjcgODAtODcuNiA4MHMtODMuNi0zNS4xLTg3LjYtODBsLS40IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtODBjMC0zMC4xIDIwLjctNTUuMyA0OC42LTYyLjF6TTQ0MCAxOTJsLTY3LjItODkuNmMtMy00LTcuOC02LjQtMTIuOC02LjRsLTcyIDAgMCA5NiAxNTIgMHpNMTUyIDQzMmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bTM2MC00MGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAweiJdfSxkc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhc2gtYXJyb3ctdXAiLGljb246WzQ0OCw1MTIsWyJ0cmFzaC1yZXN0b3JlIl0sImY4MjkiLCJNMTY3LjEtMTZsMTEzLjkgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOUwzMjAgMzIgNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDguNy0yNi4xQzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNnpNMzIgMTQ0bDM4NCAwLTIxLjEgMzIzLjFDMzkzLjMgNDkyLjQgMzcyLjMgNTEyIDM0NyA1MTJMMTAxIDUxMmMtMjUuMyAwLTQ2LjMtMTkuNi00Ny45LTQ0LjlMMzIgMTQ0em0yMDkgNzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC03MiA3MmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMxLTMxIDAgMTAyLjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMi4xIDMxIDMxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzItNzJ6Il19LCRNdD1kc2UsRE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpZmUtcmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFjZCIsIk0zNjcuMiA0MTIuNUMzMzUuOSA0MzQuOSAyOTcuNSA0NDggMjU2IDQ0OHMtNzkuOS0xMy4xLTExMS4yLTM1LjVsNTgtNThjMTUuOCA4LjYgMzQgMTMuNSA1My4zIDEzLjVzMzcuNC00LjkgNTMuMy0xMy41bDU4IDU4em05MC43IC44YzMzLjgtNDMuNCA1NC05OCA1NC0xNTcuM1M0OTEuOCAxNDIuMSA0NTggOTguN2M5LTEyLjUgNy45LTMwLjEtMy40LTQxLjNTNDI1LjggNDUgNDEzLjMgNTRDMzY5LjkgMjAuMiAzMTUuMyAwIDI1NiAwUzE0Mi4xIDIwLjIgOTguNyA1NGMtMTIuNS05LTMwLjEtNy45LTQxLjMgMy40UzQ1IDg2LjIgNTQgOTguN0MyMC4yIDE0Mi4xIDAgMTk2LjcgMCAyNTZTMjAuMiAzNjkuOSA1NCA0MTMuM2MtOSAxMi41LTcuOSAzMC4xIDMuNCA0MS4zUzg2LjIgNDY3IDk4LjcgNDU4YzQzLjQgMzMuOCA5OCA1NCAxNTcuMyA1NHMxMTMuOS0yMC4yIDE1Ny4zLTU0YzEyLjUgOSAzMC4xIDcuOSA0MS4zLTMuNHMxMi40LTI4LjggMy40LTQxLjN6bS00NS41LTQ2LjFsLTU4LTU4YzguNi0xNS44IDEzLjUtMzQgMTMuNS01My4zcy00LjktMzcuNC0xMy41LTUzLjNsNTgtNThDNDM0LjkgMTc2LjEgNDQ4IDIxNC41IDQ0OCAyNTZzLTEzLjEgNzkuOS0zNS41IDExMS4yek0zNjcuMiA5OS41bC01OCA1OGMtMTUuOC04LjYtMzQtMTMuNS01My4zLTEzLjVzLTM3LjQgNC45LTUzLjMgMTMuNWwtNTgtNThDMTc2LjEgNzcuMSAyMTQuNSA2NCAyNTYgNjRzNzkuOSAxMy4xIDExMS4yIDM1LjV6TTE1Ny41IDMwOS4zbC01OCA1OEM3Ny4xIDMzNS45IDY0IDI5Ny41IDY0IDI1NnMxMy4xLTc5LjkgMzUuNS0xMTEuMmw1OCA1OGMtOC42IDE1LjgtMTMuNSAzNC0xMy41IDUzLjNzNC45IDM3LjQgMTMuNSA1My4zek0yMDggMjU2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LEVNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3B5cmlnaHQiLGljb246WzUxMiw1MTIsWzE2OV0sImYxZjkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwNS4xIDMwNi45YzI4LjEgMjguMSA3My43IDI4LjEgMTAxLjggMCA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTQ2LjkgNDYuOS0xMjIuOCA0Ni45LTE2OS43IDBzLTQ2LjktMTIyLjggMC0xNjkuNyAxMjIuOC00Ni45IDE2OS43IDBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwcy0yOC4xIDczLjcgMCAxMDEuOHoiXX0sTk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtcHJlc2NyaXB0aW9uIixpY29uOlszODQsNTEyLFtdLCJmNTcyIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek04OCAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MCAyMi41IDAgNTguNCA1NS0zMy40IDMxLjZjLTkuNiA5LjEtMTAuMSAyNC4zLS45IDMzLjlzMjQuMyAxMC4xIDMzLjkgLjlsMzUuNC0zMy41IDM1LjYgMzMuNWM5LjcgOS4xIDI0LjggOC42IDMzLjktMXM4LjYtMjQuOC0xLTMzLjlsLTMzLjYtMzEuNiAzMy42LTMxLjhjOS42LTkuMSAxMC4xLTI0LjMgLjktMzMuOXMtMjQuMy0xMC4xLTMzLjktLjlsLTM1LjcgMzMuNy00MC45LTM4LjVjMTIuOS0xMS43IDIxLjEtMjguNiAyMS4xLTQ3LjUgMC0zNS4zLTI4LjctNjQtNjQtNjRsLTU2IDB6bTMyIDgwbC04IDAgMC0zMiAzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0yNCAweiJdfSxQTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXJhc2VyIixpY29uOls1NzYsNTEyLFtdLCJmMTJkIiwiTTE3OC41IDQxNmwxMjMgMCA2NS4zLTY1LjMtMTczLjUtMTczLjUtMTI2LjcgMTI2LjcgMTEyIDExMnpNMjI0IDQ4MGwtNDUuNSAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wxNyAzNDVDNi4xIDMzNC4xIDAgMzE5LjQgMCAzMDRzNi4xLTMwLjEgMTctNDFMMjYzIDE3QzI3My45IDYuMSAyODguNiAwIDMwNCAwczMwLjEgNi4xIDQxIDE3TDUyNyAxOTljMTAuOSAxMC45IDE3IDI1LjYgMTcgNDFzLTYuMSAzMC4xLTE3IDQxbC0xMzUgMTM1IDEyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yODggMHoiXX0sZnNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcy1zdGFydCIsaWNvbjpbMzg0LDUxMixbImhvdXJnbGFzcy0xIl0sImYyNTEiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwwIDExYzAgNDIuNCAxNi45IDgzLjEgNDYuOSAxMTMuMWw2Ny45IDY3LjktNjcuOSA2Ny45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3bDAgMTFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMWMwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFsLTY3LjktNjcuOSA2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFsMC0xMWMxNy43IDAgMzItMTQuMyAzMi0zMlMzNjkuNyAwIDM1MiAwTDMyIDB6TTI4OCA0MzdsMCAxMS0xOTIgMCAwLTExYzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDY3LjktNjcuOSA2Ny45IDY3LjljMTggMTggMjguMSA0Mi40IDI4LjEgNjcuOXoiXX0sSU10PWZzZSx1c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWxlZnQiLGljb246WzUxMiw1MTIsWzYxODQwLCJhcnJvdy1hbHQtY2lyY2xlLWxlZnQiXSwiZjM1OSIsIk01MTIgMjU2YTI1NiAyNTYgMCAxIDAgLTUxMiAwIDI1NiAyNTYgMCAxIDAgNTEyIDB6TTEyNC43IDI0NC43bDEwNC0xMDRjNC42LTQuNiAxMS41LTUuOSAxNy40LTMuNXM5LjkgOC4zIDkuOSAxNC44bDAgNTYgOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgNTZjMCA2LjUtMy45IDEyLjMtOS45IDE0LjhzLTEyLjkgMS4xLTE3LjQtMy41bC0xMDQtMTA0Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnoiXX0sRk10PXVzZSxPTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3J1emVpcm8tc2lnbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTE1MiIsIk0yNDAgOTZjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwIDAgNzEuNiA0Ny4xIDEzMi4zIDExMiAxNTIuN0wxOTIgMjU2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDEyLjggMCAyMy4zIDEwLjEgMjQgMjIuNyAxNS41LTkuNSAzMy41LTE0LjcgNTIuMy0xNC43bDExLjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEuOCAwYy0xOC44IDAtMzYuMSAxMC00NS40IDI2LjMtNC41IDcuOS02LjkgMTYuOC02LjkgMjUuOWwwIDc1LjhjNDIuNSAwIDgxLjEtMTYuNiAxMDkuOC00My42IDEyLjktMTIuMSAzMy4xLTExLjUgNDUuMiAxLjNzMTEuNSAzMy4xLTEuMyA0NS4yQzM1My43IDQ1Ni44IDI5OS41IDQ4MCAyNDAgNDgwIDExNi4zIDQ4MCAxNiAzNzkuNyAxNiAyNTZTMTE2LjMgMzIgMjQwIDMyYzU5LjUgMCAxMTMuNyAyMy4yIDE1My43IDYxLjEgMTIuOSAxMi4xIDEzLjQgMzIuNCAxLjMgNDUuMnMtMzIuNCAxMy40LTQ1LjIgMS4zQzMyMS4xIDExMi42IDI4Mi41IDk2IDI0MCA5NnoiXX0sQk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNtb2tpbmciLGljb246WzU3Niw1MTIsWzEyODY4NF0sImY0OGQiLCJNMzYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxOWMwIDQwLjMgMTYgNzkgNDQuNSAxMDcuNWwyMSAyMUM0NjkgMTkxIDQ4MCAyMTcuNCA0ODAgMjQ1bDAgMTljMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xOWMwLTE0LjktNS45LTI5LjEtMTYuNC0zOS42bC0yMS0yMUMzNTcuMSAxNDYuOSAzMzYgOTYgMzM2IDQzbDAtMTljMC0xMy4zIDEwLjctMjQgMjQtMjR6TTU1MiAyODhjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTljMC00MC4zLTE2LTc5LTQ0LjUtMTA3LjVsLTIxLTIxQzQ0MyA5NyA0MzIgNzAuNiA0MzIgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTljMCAxNC45IDUuOSAyOS4xIDE2LjQgMzkuNmwyMSAyMUM1NTQuOSAxNDEuMSA1NzYgMTkyIDU3NiAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHpNMzIwIDQ0OGw5NiAwIDAtMzItOTYgMCAwIDMyek0wIDQxNmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMnptNTc2LTQwbDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LHBzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcG9sbC12ZXJ0aWNhbCIsaWNvbjpbNDQ4LDUxMixbInBvbGwiXSwiZjY4MSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem01NiAxOTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTJjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTE4NCA4OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OHpNMjI0IDEyOGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDIwOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTIwOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0sUk10PXBzZSxITXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1taW51cyIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MCIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZ6Il19LHFNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaW9oYXphcmQiLGljb246WzU3Niw1MTIsWzk3NjNdLCJmNzgwIiwiTTI2MCAxMi42YzAtOC4zLTcuNi0xNC41LTE1LjUtMTIuMS02MC45IDE4LjgtMTA1LjEgNzUuOC0xMDUuMSAxNDMuMSAwIDI1LjEgNi4xIDQ4LjcgMTcgNjkuNS0yMSAxLjgtNDIgOC4yLTYxLjUgMTkuNS01Ny45IDMzLjYtODQuOCAxMDAuMi03MC45IDE2Mi41IDEuOSA4LjQgMTEuNCAxMiAxOC45IDcuNiA1LTIuOSA3LjYtOC42IDcuMS0xNC40LS4zLTMuMy0uNC02LjYtLjQtMTAuMSAwLTEyMy41IDE4NC40LTEyMy41IDE4NC40IDAgMCA4OC40LTk0LjUgMTEzLjYtMTQ4LjIgNzUuNC00LjUtMy4yLTEwLjUtMy45LTE1LjMtMS4xLTcgNC4xLTguNiAxMy42LTIuNyAxOS4xIDQ2LjYgNDMuOCAxMTggNTMuOSAxNzYuMSAyMC4yIDE3LjktMTAuNCAzMi44LTIzLjkgNDQuNS0zOS40IDExLjcgMTUuNiAyNi42IDI5LjEgNDQuNSAzOS40IDU4LjEgMzMuNyAxMjkuNSAyMy42IDE3Ni4xLTIwLjIgNS45LTUuNSA0LjMtMTUuMS0yLjctMTkuMS00LjgtMi44LTEwLjgtMi4xLTE1LjMgMS4xLTUzLjcgMzguMi0xNDguMiAxMy0xNDguMi03NS40IDAtMTIzLjUgMTg0LjQtMTIzLjUgMTg0LjQgMCAwIDMuNC0uMSA2LjgtLjQgMTAuMS0uNSA1LjggMi4xIDExLjUgNy4xIDE0LjQgNy40IDQuMyAxNyAuOCAxOC45LTcuNiAxMy45LTYyLjItMTMtMTI4LjktNzAuOS0xNjIuNS0xOS41LTExLjMtNDAuNC0xNy43LTYxLjUtMTkuNSAxMC45LTIwLjggMTctNDQuNCAxNy02OS41IDAtNjcuMy00NC4yLTEyNC4zLTEwNS4xLTE0My4xLTcuOS0yLjQtMTUuNSAzLjgtMTUuNSAxMi4xIDAgNS45IDQgMTEgOS41IDEzLjIgODMuNCAzMy42IDcwLjggMTc4LjQtMzcuOCAxNzguNFMxNjcuMSA1OS40IDI1MC41IDI1LjhjNS41LTIuMiA5LjUtNy4zIDkuNS0xMy4yek0yNDguNCAyODhhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNNDM1IDMxNy43Yy0xNi4yIDAtMzEuNCA1LjUtNDIuMSAxNS0xMC4xIDkuMS0xOC4xIDIzLjQtMTguMSA0NS42IDAgMjEuMSA3LjIgMzUgMTYuNSA0NC4xIDMyLjItMjQuNiA1NS41LTYwLjUgNjMuOS0xMDEuOC02LjMtMS45LTEzLjItMy0yMC4yLTN6TTIwMiAzNzguM2MwLTIyLjMtOC0zNi42LTE4LjEtNDUuNi0xMC43LTkuNi0yNS45LTE1LTQyLjEtMTUtNyAwLTEzLjkgMS0yMC4yIDMgOC40IDQxLjMgMzEuNiA3Ny4yIDYzLjkgMTAxLjggOS40LTkuMSAxNi41LTIzLjEgMTYuNS00NC4yem00MS4yLTIyNC4zYzkgMTAuMiAyMy4yIDE4LjIgNDUuMiAxOC4yczM2LjItOCA0NS4yLTE4LjJjNi43LTcuNiAxMS41LTE3LjUgMTMuNi0yOC40LTE4LjMtNi44LTM4LjItMTAuNS01OC44LTEwLjVzLTQwLjUgMy43LTU4LjggMTAuNWMyLjIgMTAuOSA2LjkgMjAuOCAxMy42IDI4LjV6Il19LGhzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWxsLWNvbmNpZXJnZSIsaWNvbjpbNTEyLDUxMixbMTI4NzE4LCJjb25jaWVyZ2UtYmVsbCJdLCJmNTYyIiwiTTIxNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNiAwIDAgMzMuM0MxMjQuOCAxNTYuNyA0MC4yIDI0My43IDMyLjYgMzUybDQ0Ni45IDBDNDcxLjggMjQzLjcgMzg3LjIgMTU2LjcgMjgwIDE0NS4zbDAtMzMuMyAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwek0yNCA0MDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgNDAweiJdfSxWTXQ9aHNlLFVNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlci1ob3Jpem9udGFsIixpY29uOls1NzYsNTEyLFtdLCJmNTQ3IiwiTTQ4IDM4NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxNzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMjQgMCAwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTA0IDQ4IDAgMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzIgNDggMCAwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTA0IDQ4IDAgMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzIgNDggMCAwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTA0IDI0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggMzg0eiJdfSxqTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9yc2UiLGljb246WzU3Niw1MTIsWzEyODAxNF0sImY2ZjAiLCJNNDQ4IDIzOC4xbDAtNzguMSAxNiAwIDkuOCAxOS42YzEyLjUgMjUuMSA0Mi4yIDM2LjQgNjguMyAyNiAyMC41LTguMiAzMy45LTI4IDMzLjktNTAuMUw1NzYgODBjMC0xOS4xLTguNC0zNi4zLTIxLjctNDhsNS43IDBjOC44IDAgMTYtNy4yIDE2LTE2UzU2OC44IDAgNTYwIDBMNDQ4IDBDMzc3LjMgMCAzMjAgNTcuMyAzMjAgMTI4bC0xNzEuMiAwQzExOC4xIDEyOCA5MS4yIDE0NC4zIDc2LjMgMTY4LjggMzMuMiAxNzQuNSAwIDIxMS40IDAgMjU2bDAgNTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTU2YzAtMTMuNCA2LjYtMjUuMiAxNi43LTMyLjUgMS42IDEzIDYuMyAyNS40IDEzLjYgMzYuNGwyOC4yIDQyLjRjOC4zIDEyLjQgNi40IDI4LjctMS4yIDQxLjYtMTYuNSAyOC0yMC42IDYyLjItMTAgOTMuOWwxNy41IDUyLjRjNC40IDEzLjEgMTYuNiAyMS45IDMwLjQgMjEuOWwzMy43IDBjMjEuOCAwIDM3LjMtMjEuNCAzMC40LTQyLjFsLTIwLjgtNjIuNWMtMi4xLTYuNC0uNS0xMy40IDQuMy0xOC4ybDEyLjctMTIuN2MxMy4yLTEzLjIgMjAuNi0zMS4xIDIwLjYtNDkuNyAwLTIuMy0uMS00LjYtLjMtNi45bDg0IDI0YzQuMSAxLjIgOC4yIDIuMSAxMi4zIDIuOEwzMjAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNjQuM2MxOS4yLTE5LjIgMzEuNS00NS43IDMyLTc1LjdsMCAwIDAtMS45ek00OTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyeiJdfSxXTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXIiLGljb246WzQ0OCw1MTIsWzEyODE5NywxMjgxOThdLCJmMTMzIiwiTTEyOCAwQzExMC4zIDAgOTYgMTQuMyA5NiAzMmwwIDMyLTMyIDBDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA0OCA0NDggMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMi0xMjggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0wIDIyNEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5Mi00NDggMHoiXX0sR010PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWhvbGRpbmctY2hpbGQiLGljb246WzY0MCw1MTIsW10sImU0ZmEiLCJNMzIwLTMyYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHpNNDAgNjRjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAxNjAuMmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2w1MS4xIDUxLjFjOC4zIDguMyAyMS4zIDkuNiAzMSAzLjEgMTIuOS04LjYgMTQuNy0yNi45IDMuNy0zNy44LTcuMy03LjMtMjMuMS0yMy4xLTQ3LjItNDcuMi0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwYzI0LjEgMjQuMSAzOS45IDM5LjkgNDcuMiA0Ny4ybDAgMCAyNS4zIDI1LjNjMjEgMjEgMzIuOCA0OS41IDMyLjggNzkuMmwwIDc4LjljMCAyNi41LTIxLjUgNDgtNDggNDhsLTY2LjcgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMjguMSAzOTMuNEMxMC4xIDM3NS40IDAgMzUxIDAgMzI1LjVMMCAxMDRDMCA4MS45IDE3LjkgNjQgNDAgNjR6bTU2MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMjIxLjVjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlMNTEyIDQ5My4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDQwMCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNzguOWMwLTI5LjcgMTEuOC01OC4yIDMyLjgtNzkuMmwyNS4zLTI1LjMgMCAwYzcuMy03LjMgMjMuMS0yMy4xIDQ3LjItNDcuMiAxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy0yNC4xIDI0LjEtMzkuOSAzOS45LTQ3LjIgNDcuMi0xMSAxMS05LjIgMjkuMiAzLjcgMzcuOCA5LjcgNi41IDIyLjcgNS4yIDMxLTMuMWw1MS4xLTUxLjFjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1NjAgMTA0YzAtMjIuMSAxNy45LTQwIDQwLTQwek0zODQuNSAxNDlsLTE5LjgtMTYuNyAxMS4xIDg4LjhjMS42IDEzLjItNy43IDI1LjEtMjAuOCAyNi44cy0yNS4xLTcuNy0yNi44LTIwLjhsLTQuNC0zNS03LjYgMC00LjQgMzVjLTEuNiAxMy4yLTEzLjYgMjIuNS0yNi44IDIwLjhzLTIyLjUtMTMuNi0yMC44LTI2LjhsMTEuMS04OC44LTE5LjggMTYuN2MtMTAuMSA4LjYtMjUuMyA3LjMtMzMuOC0yLjhzLTcuMy0yNS4zIDIuOC0zMy44bDI3LjktMjMuNkMyNzEuMyA3Mi44IDI5NS4zIDY0IDMyMCA2NHM0OC43IDguOCA2Ny42IDI0LjdsMjcuOSAyMy42YzEwLjEgOC42IDExLjQgMjMuNyAyLjggMzMuOHMtMjMuNyAxMS40LTMzLjggMi44eiJdfSxZTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaXRhbGljIixpY29uOlszODQsNTEyLFtdLCJmMDMzIiwiTTEyOCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNTguNyAwLTEzMy4zIDMyMCA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw1OC43IDAgMTMzLjMtMzIwLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxaTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2hhbmRhIixpY29uOls1MTIsNTEyLFs5NzcyXSwiZjY2ZCIsIk0yNDAuNyA4YzguOS03LjQgMjEuOC03LjQgMzAuNyAwbDM3LjggMzEuNWM4LjcgNy4zIDExLjEgMTkuNiA2IDI5LjYtMS4yIDIuNC0yLjggNS41LTQuNiA5LjIgMzQuMiAxOS4yIDU3LjMgNTUuOCA1Ny4zIDk3LjhzLTIzLjEgNzguNi01Ny4zIDk3LjhjMS44IDMuNyAzLjMgNi44IDQuNiA5LjIgNS4xIDEwIDIuNyAyMi4zLTYgMjkuNmwtMzcuMiAzMSAwIDE5LjhjMjIuOS0xNS43IDQ4LjQtMzMuMyA3Ni43LTUyLjcgNDIuOC0yOS40IDY4LjQtNzggNjguNC0xMzBsMC0xMS4xYzAtMjMuOS03LjEtNDcuMy0yMC40LTY3LjItNS4xLTcuNy00LjYtMTcuOCAxLjctMjQuNiA2LjYtNy4xIDE3LjItOC4xIDI1LjItMi44IDI3LjUgMTguMSA4OS40IDY3LjUgODkuNCAxNDkuMSAwIDQ2LjUtMjAuMiA4OC42LTQxLjggMTIwLjQtMjEuNiAzMi00NS42IDU1LTU1LjMgNjMuOC03LjggNy4xLTE5IDcuOS0yNy42IDNsLTcwLjgtNDAuMy0zMi43IDIyLjUgNDUuNSAzMS4zYzEuOC0uNCAzLjctLjcgNS43LS43IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0xMi4yIDAtMjIuMy05LjEtMjMuOC0yMWwtNDAuMi0yNy42IDAgMjguOWM5LjYgNS41IDE2IDE1LjkgMTYgMjcuNyAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTExLjggNi40LTIyLjIgMTYtMjcuN2wwLTI4LjEtNDAuMyAyNy43Yy0xLjggMTEuNC0xMS44IDIwLjEtMjMuNyAyMC4xLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMi4yIDAgNC40IC4zIDYuNSAuOWw0NS44LTMxLjUtMzIuNy0yMi41LTcwLjggNDAuM2MtOC43IDQuOS0xOS44IDQuMS0yNy42LTMtOS43LTguOC0zMy43LTMxLjktNTUuMy02My44LTIxLjUtMzEuOC00MS44LTczLjktNDEuOC0xMjAuNCAwLTgxLjcgNjEuOS0xMzEuMSA4OS40LTE0OS4xIDguMS01LjMgMTguNi00LjMgMjUuMiAyLjggNi40IDYuOSA2LjggMTcgMS43IDI0LjYtMTMuMyAxOS45LTIwLjQgNDMuMy0yMC40IDY3LjJsMCAxMS4xYzAgNTEuOSAyNS42IDEwMC42IDY4LjQgMTMwIDI4LjQgMTkuNiA1My43IDM2LjkgNzUuNiA1MmwwLTE5LjEtMzcuMi0zMWMtOC43LTcuMy0xMS4xLTE5LjYtNi0yOS42IDEuMi0yLjQgMi44LTUuNSA0LjYtOS4yLTM0LjItMTkuMi01Ny4zLTU1LjgtNTcuMy05Ny44czIzLjEtNzguNiA1Ny4zLTk3LjhjLTEuOC0zLjctMy4zLTYuOC00LjYtOS4yLTUuMS0xMC0yLjctMjIuMyA2LTI5LjZMMjQwLjcgOHpNMjIwLjMgMTIyLjljLTE3IDExLjUtMjguMiAzMS0yOC4yIDUzLjFzMTEuMiA0MS42IDI4LjIgNTMuMWM2LjgtMTkuMiAxMS44LTM4LjQgMTEuOC01My4xcy00LjktMzMuOS0xMS44LTUzLjF6bTcxLjUgMTA2LjJjMTctMTEuNSAyOC4yLTMxIDI4LjItNTMuMXMtMTEuMi00MS42LTI4LjItNTMuMWMtNi44IDE5LjItMTEuOCAzOC40LTExLjggNTMuMXM0LjkgMzMuOSAxMS44IDUzLjF6Il19LG1zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWZyb3duLW9wZW4iLGljb246WzUxMiw1MTIsWzEyODU1MCwiZnJvd24tb3BlbiJdLCJmNTdhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTE4Mi40IDM4Mi41Yy0xMi40IDUuMi0yNi41LTQuMS0yMS4xLTE2LjQgMTYtMzYuNiA1Mi40LTYyLjEgOTQuOC02Mi4xczc4LjggMjUuNiA5NC44IDYyLjFjNS40IDEyLjMtOC43IDIxLjYtMjEuMSAxNi40LTIyLjQtOS41LTQ3LjQtMTQuOC03My43LTE0LjhzLTUxLjMgNS4zLTczLjcgMTQuOHoiXX0sWE10PW1zZSxGVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjayIsaWNvbjpbNDQ4LDUxMixbMTAwMDMsMTAwMDRdLCJmMDBjIiwiTTQzNC44IDcwLjFjMTQuMyAxMC40IDE3LjUgMzAuNCA3LjEgNDQuN2wtMjU2IDM1MmMtNS41IDcuNi0xNCAxMi4zLTIzLjQgMTMuMXMtMTguNS0yLjctMjUuMS05LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTAxLjUgMTAxLjUgMjM0LTMyMS43YzEwLjQtMTQuMyAzMC40LTE3LjUgNDQuNy03LjF6Il19LFFNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaW5nZXJwcmludCIsaWNvbjpbNTEyLDUxMixbXSwiZjU3NyIsIk00OCAyNTZjMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4IDYzLjEgMCAxMTkuNiAyOC4xIDE1Ny44IDcyLjUgOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOEM0MDMuMyAzNC42IDMzMy43IDAgMjU2IDAgMTE0LjYgMCAwIDExNC42IDAgMjU2bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwem00NTguNS01Mi45Yy0yLjctMTMtMTUuNS0yMS4zLTI4LjQtMTguNXMtMjEuMyAxNS41LTE4LjUgMjguNGMyLjkgMTMuOSA0LjUgMjguMyA0LjUgNDMuMWwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMwLTE4LjEtMS45LTM1LjgtNS41LTUyLjl6TTI1NiA4MGMtMTkgMC0zNy40IDMtNTQuNSA4LjYtMTUuMiA1LTE4LjcgMjMuNy04LjMgMzUuOSA3LjEgOC4zIDE4LjggMTAuOCAyOS40IDcuOSAxMC42LTIuOSAyMS44LTQuNCAzMy40LTQuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDI0LjljMCAyNS4yLTEuNSA1MC4zLTQuNCA3NS4zLTEuNyAxNC42IDkuNCAyNy44IDI0LjIgMjcuOCAxMS44IDAgMjEuOS04LjYgMjMuMy0yMC4zIDMuMy0yNy40IDUtNTUgNS04Mi43bDAtMjQuOWMwLTk3LjItNzguOC0xNzYtMTc2LTE3NnpNMTUwLjcgMTQ4LjdjLTkuMS0xMC42LTI1LjMtMTEuNC0zMy45LS40LTIzLjEgMjkuOC0zNi44IDY3LjEtMzYuOCAxMDcuN2wwIDI0LjljMCAyNC4yLTIuNiA0OC40LTcuOCA3MS45LTMuNCAxNS42IDcuOSAzMS4xIDIzLjkgMzEuMSAxMC41IDAgMTkuOS03IDIyLjItMTcuMyA2LjQtMjguMSA5LjctNTYuOCA5LjctODUuOGwwLTI0LjljMC0yNy4yIDguNS01Mi40IDIyLjktNzMuMSA3LjItMTAuNCA4LTI0LjYtLjItMzQuMnpNMjU2IDE2MGMtNTMgMC05NiA0My05NiA5NmwwIDI0LjljMCAzNS45LTQuNiA3MS41LTEzLjggMTA2LjEtMy44IDE0LjMgNi43IDI5IDIxLjUgMjkgOS41IDAgMTcuOS02LjIgMjAuNC0xNS40IDEwLjUtMzkgMTUuOS03OS4yIDE1LjktMTE5LjdsMC0yNC45YzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsMCAyNC45YzAgMzYuMy0zLjUgNzIuNC0xMC40IDEwNy45LTIuNyAxMy45IDcuNyAyNy4yIDIxLjggMjcuMiAxMC4yIDAgMTktNyAyMS0xNyA3LjctMzguOCAxMS42LTc4LjMgMTEuNi0xMTguMWwwLTI0LjljMC01My00My05Ni05Ni05NnptMjQgOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNC45YzAgNTkuOS0xMSAxMTkuMy0zMi41IDE3NS4ybC01LjkgMTUuM2MtNC44IDEyLjQgMS40IDI2LjMgMTMuOCAzMXMyNi4zLTEuNCAzMS0xMy44bDUuOS0xNS4zQzI2Ny45IDQxMS45IDI4MCAzNDYuNyAyODAgMjgwLjlsMC0yNC45eiJdfSxLTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcmdpbmctc3RhdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZjVlNyIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyYzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTI3LjdjLTMyLjUtMTAuMi01Ni00MC41LTU2LTc2LjNsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OCAzMiAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCAzNS44LTIzLjUgNjYuMS01NiA3Ni4zTDUyMCAzODBjMCAzNy42LTMwLjQgNjgtNjggNjhzLTY4LTMwLjQtNjgtNjhsMC0xMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwwIDEyOS40YzkuMyAzLjMgMTYgMTIuMiAxNiAyMi42IDAgMTMuMy0xMC43IDI0LTI0IDI0TDcyIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC41IDYuNy0xOS4zIDE2LTIyLjZMNjQgNjR6bTgyLjcgMTI1LjdsMzkgMC0yMC45IDY2LjljLTIuNCA3LjYgMy4zIDE1LjQgMTEuMyAxNS40IDIuOSAwIDUuNi0xIDcuOC0yLjlsOTQuNi04MmMzLjEtMi43IDQuOS02LjYgNC45LTEwLjcgMC03LjgtNi4zLTE0LjEtMTQuMS0xNC4xbC0zOSAwIDIwLjktNjYuOWMyLjQtNy42LTMuMy0xNS40LTExLjMtMTUuNC0yLjkgMC01LjYgMS03LjggMi45bC05NC42IDgyYy0zLjEgMi43LTQuOSA2LjYtNC45IDEwLjcgMCA3LjggNi4zIDE0LjEgMTQuMSAxNC4xeiJdfSxKTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJmNTAyIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMTk0LjMgMzA0bDU5LjQgMGMyOS43IDAgNTcuNyA3LjMgODIuMyAyMC4xbDAgNC4zYy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw0NS43IDUxMkMyOS4zIDUxMiAxNiA0OTguNyAxNiA0ODIuMyAxNiAzODMuOCA5NS44IDMwNCAxOTQuMyAzMDR6bTMwMS43IC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sZ3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS1zY3JlZW4tYnV0dG9uIixpY29uOlszODQsNTEyLFsibW9iaWxlLWFsdCJdLCJmM2NkIiwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHptNjQgMGwwIDMwNCAyMjQgMCAwLTMwNC0yMjQgMHpNMTkyIDQ3MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6Il19LGV6dD1nc2UsdHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvci1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU0YWEiLCJNMzIwIDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6TTI4OCAwYy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM0w4MCAzMDcuOWMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSx4c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctd2l0aC1jYW5lIixpY29uOls1NzYsNTEyLFsiYmxpbmQiXSwiZjI5ZCIsIk0yMjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE2MCAyMDUuM2wtMjIuNiAyMi42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNC40LTM0LjRjMjMuMi0yMy4yIDU0LjYtMzYuMiA4Ny4zLTM2LjIgMzYuMSAwIDcwLjMgMTUuOCA5My44IDQzLjFsNjguNiA4MGMxMS41IDEzLjQgOS45IDMzLjYtMy41IDQ1LjFzLTMzLjYgOS45LTQ1LjEtMy41bC01NS43LTY1IDAgMTE4LjYgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zem0uMSAxNjUuOGMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41bC02OC4zIDY4LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY4LjMtNjguM2MzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMMTYwLjEgMzcxem0yMzMuNS02Mi4yYzEwLjYtOCAyNS42LTUuOCAzMy42IDQuOGwxNDQgMTkyYzggMTAuNiA1LjggMjUuNi00LjggMzMuNnMtMjUuNiA1LjgtMzMuNi00LjhsLTE0NC0xOTJjLTgtMTAuNi01LjgtMjUuNiA0LjgtMzMuNnoiXX0sYXp0PXhzZSxic2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS13YXZlZm9ybSIsaWNvbjpbMzg0LDUxMixbImZpbGUtbWVkaWNhbC1hbHQiXSwiZjQ3OCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtOTYgNjAuMyAwIDQ4LjggNjIuN2M1LjEgNi42IDEzLjMgMTAgMjEuNiA5LjFzMTUuNS02LjEgMTkuMS0xMy42bDQyLjktOTEuMiA5LjkgMTkuOGM0LjEgOC4xIDEyLjQgMTMuMyAyMS41IDEzLjNsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTcuMiAwLTI1LjQtNTAuN2MtNC4xLTguMi0xMi42LTEzLjQtMjEuOC0xMy4zcy0xNy41IDUuNS0yMS40IDEzLjhsLTQ3LjMgMTAwLjYtMzItNDEuMUM4Ni40IDMwNy40IDc5LjQgMzA0IDcyIDMwNEwwIDMwNCAwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6Il19LHJ6dD1ic2UsaXp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNyYWNrIixpY29uOls1MTIsNTEyLFtdLCJlM2IxIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODYuNCAwLTMxLjMtNTIuMmMtNC4xLTYuOC0yLjYtMTUuNSAzLjUtMjAuNUwyNTYgMzY4IDE5NS44IDI4NS4yYy0xMC45LTE1IDguMi0zMy41IDIyLjgtMjJsMTE3LjkgOTIuNmM4IDYuMyA4LjIgMTguNCAuNCAyNC45TDI1NiA0NDggMjk0LjQgNTEyIDQwMCA1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6Il19LG96dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtd2l6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmNmU4IiwiTTY0IDQwMGw4NS43LTIwOC4yYzE3LTQxLjMgNDcuOC03NS4zIDg3LjItOTYuM0wzODMuOCAxNy4yYzEyLjMtNi42IDI2LjUgNC43IDIzIDE4LjJMMzY5LjYgMTc3LjhjLTEuMSA0LjEtMS42IDguMy0xLjYgMTIuNiAwIDYuMyAxLjIgMTIuNiAzLjYgMTguNWw3Ni40IDE5MS4xLTIwNy4xIDAgMTEuOC0zNS40IDQwLjQtMTMuNWM2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMnMtNC40LTEzLTEwLjktMTUuMmwtNDAuNC0xMy41LTEzLjUtNDAuNEMyMzcgMjYwLjQgMjMwLjkgMjU2IDIyNCAyNTZzLTEzIDQuNC0xNS4yIDEwLjlsLTEzLjUgNDAuNC00MC40IDEzLjVDMTQ4LjQgMzIzIDE0NCAzMjkuMSAxNDQgMzM2czQuNCAxMyAxMC45IDE1LjJsNDAuNCAxMy41IDExLjggMzUuNC0xNDMuMSAwek0yNzkuNiAxNDEuNWMtMS4xLTMuMy00LjEtNS41LTcuNi01LjVzLTYuNSAyLjItNy42IDUuNWwtNi43IDIwLjItMjAuMiA2LjdjLTMuMyAxLjEtNS41IDQuMS01LjUgNy42czIuMiA2LjUgNS41IDcuNmwyMC4yIDYuNyA2LjcgMjAuMmMxLjEgMy4zIDQuMSA1LjUgNy42IDUuNXM2LjUtMi4yIDcuNi01LjVsNi43LTIwLjIgMjAuMi02LjdjMy4zLTEuMSA1LjUtNC4xIDUuNS03LjZzLTIuMi02LjUtNS41LTcuNmwtMjAuMi02LjctNi43LTIwLjJ6TTMyIDQ0OGw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LHZzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWRvY3RvciIsaWNvbjpbNDQ4LDUxMixbInVzZXItbWQiXSwiZjBmMCIsIk0yMjQgOGExMjAgMTIwIDAgMSAwIDAgMjQwIDEyMCAxMjAgMCAxIDAgMC0yNDB6bTYwIDMxMi44Yy01LjQtLjUtMTEtLjgtMTYuNi0uOGwtODYuOSAwYy01LjYgMC0xMS4xIC4zLTE2LjYgLjhsMCA2Ny41YzE2LjUgNy42IDI4IDI0LjMgMjggNDMuNiAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTE5LjQgMTEuNS0zNi4xIDI4LTQzLjZsMC01OC40QzYxIDM1MyAxNiA0MTMuNiAxNiA0ODQuNiAxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmwzNjEuMSAwYzE1LjEgMCAyNy40LTEyLjMgMjcuNC0yNy40IDAtNzEtNDUtMTMxLjUtMTA4LTE1NC42bDAgMzcuNGMyMy4zIDguMiA0MCAzMC41IDQwIDU2LjZsMCAzMmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0zMmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCAzMmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0zMmMwLTI2LjEgMTYuNy00OC4zIDQwLTU2LjZsMC00Ni42eiJdfSxzenQ9dnNlLHlzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1iYXIiLGljb246WzUxMiw1MTIsWyJiYXItY2hhcnQiXSwiZjA4MCIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyem05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA4MGwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTEybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sbnp0PXlzZSx3c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3ByYXktY2FuLXNwYXJrbGVzIixpY29uOls1NzYsNTEyLFsiYWlyLWZyZXNoZW5lciJdLCJmNWQwIiwiTTE2MCAzMmwwIDgwIDEyOCAwIDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJMMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0wIDEyOGMtNTMgMC05NiA0My05NiA5NmwwIDIwOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIwOGMwLTUzLTQzLTk2LTk2LTk2bC0xMjggMHptNjQgOTZhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTQ0OCA0OGMwLTEuNC0xLTMtMi4yLTMuNkw0MTYgMzIgNDAzLjYgMi4yQzQwMyAxIDQwMS40IDAgNDAwIDBzLTMgMS0zLjYgMi4yTDM4NCAzMiAzNTQuMiA0NC40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDM4NCA2NCAzOTYuNCA5My44QzM5NyA5NSAzOTguNiA5NiA0MDAgOTZzMy0xIDMuNi0yLjJMNDE2IDY0IDQ0NS44IDUxLjZDNDQ3IDUxIDQ0OCA0OS40IDQ0OCA0OHptNzYuNCA0NS44QzUyNSA5NSA1MjYuNiA5NiA1MjggOTZzMy0xIDMuNi0yLjJMNTQ0IDY0IDU3My44IDUxLjZjMS4yLS42IDIuMi0yLjIgMi4yLTMuNiAwLTEuNC0xLTMtMi4yLTMuNkw1NDQgMzIgNTMxLjYgMi4yQzUzMSAxIDUyOS40IDAgNTI4IDBzLTMgMS0zLjYgMi4yTDUxMiAzMiA0ODIuMiA0NC40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDUxMiA2NCA1MjQuNCA5My44em03LjIgMTAwLjRjLS42LTEuMi0yLjItMi4yLTMuNi0yLjJzLTMgMS0zLjYgMi4yTDUxMiAyMjQgNDgyLjIgMjM2LjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjYgMCAxLjQgMSAzIDIuMiAzLjZMNTEyIDI1NiA1MjQuNCAyODUuOGMuNiAxLjIgMi4yIDIuMiAzLjYgMi4yczMtMSAzLjYtMi4yTDU0NCAyNTYgNTczLjggMjQzLjZjMS4yLS42IDIuMi0yLjIgMi4yLTMuNiAwLTEuNC0xLTMtMi4yLTMuNkw1NDQgMjI0IDUzMS42IDE5NC4yek01MTIgMTQ0YzAtMS40LTEtMy0yLjItMy42TDQ4MCAxMjggNDY3LjYgOTguMkM0NjcgOTcgNDY1LjQgOTYgNDY0IDk2cy0zIDEtMy42IDIuMkw0NDggMTI4IDQxOC4yIDE0MC40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDQ0OCAxNjAgNDYwLjQgMTg5LjhjLjYgMS4yIDIuMiAyLjIgMy42IDIuMnMzLTEgMy42LTIuMkw0ODAgMTYwIDUwOS44IDE0Ny42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjZ6Il19LGx6dD13c2UsY3p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhaHQtc2lnbiIsaWNvbjpbMzIwLDUxMixbXSwiZTBhYyIsIk0xMzYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MC03NC40IDBDMTYuOCA2NCAwIDgwLjggMCAxMDEuNkwwIDQwNi4zYzAgMjMgMTguNyA0MS43IDQxLjcgNDEuN2w3MC4zIDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNDggMGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMiAwLTQwLjEtMjEuMS03NS4zLTUyLjctOTUuMSAxMy4xLTE4LjMgMjAuNy00MC43IDIwLjctNjQuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMmwtMTYgMCAwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xMTIgMTI4bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtMTYgMHptLTQ4IDY0bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtNDggMHoiXX0sTXNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWFycm93LXVwIixpY29uOls1MTIsNTEyLFsidGVtcGVyYXR1cmUtdXAiXSwiZTA0MCIsIk02NC41IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NHMtMTQ0LTY0LjUtMTQ0LTE0NGMwLTQyLjYgMTguNS04MSA0OC0xMDcuM0w2NC41IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjEyLjdjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMTIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00MzkuMSA5LjRsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTkuNC05LjQgMCAxNzguN2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE3OC43LTkuNCA5LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY0LTY0YzYtNiAxNC4xLTkuNCAyMi42LTkuNHMxNi42IDMuNCAyMi42IDkuNHoiXX0sZHp0PU1zZSxmenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2ViLWF3ZXNvbWUiLGljb246WzY0MCw1MTIsW10sImU2ODIiLCJNMzcyLjIgNTJjMCAyMC45LTEyLjQgMzktMzAuMiA0Ny4yTDQ0OCAxOTIgNTUyLjQgMTcxLjFjLTUuMy03LjctOC40LTE3LjEtOC40LTI3LjEgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDI2LTIwLjYgNDcuMS00Ni40IDQ4TDQ4MSA0NDIuM2MtMTAuMyAyMy0zMy4yIDM3LjctNTguNCAzNy43bC0yMDUuMiAwYy0yNS4yIDAtNDgtMTQuOC01OC40LTM3LjdMNDYuNCAxOTJDMjAuNiAxOTEuMSAwIDE3MCAwIDE0NCAwIDExNy41IDIxLjUgOTYgNDggOTZzNDggMjEuNSA0OCA0OGMwIDEwLjEtMy4xIDE5LjQtOC40IDI3LjFMMTkyIDE5MiAyOTguMSA5OS4xYy0xNy43LTguMy0zMC0yNi4zLTMwLTQ3LjEgMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MnoiXX0sdXp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vbi1iaW5hcnkiLGljb246WzM4NCw1MTIsW10sImU4MDciLCJNMTkyIDU0NGMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzYgMC04Ni4zIDYyLjEtMTU4IDE0NC0xNzNsMC00Ny4yLTQ5LjcgMjQuOC0zIDEuM2MtMTUuMiA1LjctMzIuNS0uOC0zOS45LTE1LjctNy40LTE0LjgtMi4yLTMyLjYgMTEuNS00MS4zbDIuOC0xLjYgMzguOC0xOS40LTM4LjgtMTkuNGMtMTUuOC03LjktMjIuMi0yNy4xLTE0LjMtNDIuOSA3LjQtMTQuOCAyNC44LTIxLjQgNDAtMTUuNmwzIDEuMyA0OS43IDI0LjggMC00NC4yYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0NC4yIDQ5LjctMjQuOCAzLTEuM2MxNS4yLTUuOCAzMi41IC44IDM5LjkgMTUuNnMyLjIgMzIuNy0xMS41IDQxLjNsLTIuOCAxLjYtMzguNyAxOS40IDM4LjcgMTkuM2MxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45LTcuNCAxNC44LTI0LjcgMjEuNC0zOS45IDE1LjZsLTMtMS4zLTQ5LjctMjQuOCAwIDQ3LjJjODEuOSAxNS4xIDE0NCA4Ni44IDE0NCAxNzMgMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZ6bTAtNjRhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0eiJdfSxwenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibiIsaWNvbjpbMzg0LDUxMixbMTEwXSwiNGUiLCJNMjEuMSAzMy45YzEyLjctNC42IDI2LjktLjcgMzUuNSA5LjZMMzIwIDM1OS42IDMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzg0YzAgMTMuNS04LjQgMjUuNS0yMS4xIDMwLjFzLTI2LjkgLjctMzUuNS05LjZMNjQgMTUyLjQgNjQgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NEMwIDUwLjUgOC40IDM4LjUgMjEuMSAzMy45eiJdfSx6c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXVwLWRvd24tbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbImFycm93cyJdLCJmMDQ3IiwiTTI3OC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAxMTQuNy0xMTQuNyAwIDkuNC05LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDExNC43IDAgMCAxMTQuNy05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOS40IDkuNCAwLTExNC43IDExNC43IDAtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMTE0LjcgMCAwLTExNC43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6Il19LGh6dD16c2UsbDc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UiLGljb246WzUxMiw1MTIsWzEyNzk2OCw2MzQ5OCw2MzUwMCwiaG9tZSIsImhvbWUtYWx0IiwiaG9tZS1sZy1hbHQiXSwiZjAxNSIsIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4ek0yNDAgMzIwbDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5Ni0xMjggMCAwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSxtenQ9bDcsZ3p0PWw3LHh6dD1sNyxienQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Bpbm5lciIsaWNvbjpbNTEyLDUxMixbXSwiZjExMCIsIk0yMDggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMCA0MTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNDggMjA4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMzY4IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTc1IDM2OS4xQTQ4IDQ4IDAgMSAxIDE0Mi45IDQzNyA0OCA0OCAwIDEgMSA3NSAzNjkuMXpNNzUgNzVBNDggNDggMCAxIDEgMTQyLjkgMTQyLjkgNDggNDggMCAxIDEgNzUgNzV6TTQzNyAzNjkuMUE0OCA0OCAwIDEgMSAzNjkuMSA0MzcgNDggNDggMCAxIDEgNDM3IDM2OS4xeiJdfSxrc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F2ZWwiLGljb246WzU3Niw1MTIsWyJsZWdhbCJdLCJmMGUzIiwiTTE2OS42IDE1My40bC0xOC43LTE4LjdjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDI2NS42LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBMMzI5LjYtNi42YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zTDIxNC45IDE1My40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHpNMjc2IDIxMS43bC0zMS40LTMxLjQgMTEyLTExMiAxMTkuNCAxMTkuNC0xMTIgMTEyLTMxLjQtMzEuNC0yMzIgMjMyYy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMHMtMTUuNi00MC45IDAtNTYuNmwyMzItMjMyek0zOTAuOSAzNzQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMNTA1LjYgMjE0LjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTguNyAxOC43YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zTDQ1NC45IDM5My40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTguNy0xOC43eiJdfSx2enQ9a3NlLFNzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aWNrZXQtc2ltcGxlIixpY29uOls1NzYsNTEyLFsidGlja2V0LWFsdCJdLCJmM2ZmIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCA4LjgtNy40IDE1LjctMTUuNyAxOC42LTE4LjggNi41LTMyLjMgMjQuNC0zMi4zIDQ1LjRzMTMuNSAzOC45IDMyLjMgNDUuNGM4LjMgMi45IDE1LjcgOS44IDE1LjcgMTguNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NEMwIDMxMS4yIDcuNCAzMDQuMyAxNS43IDMwMS40IDM0LjUgMjk0LjkgNDggMjc3IDQ4IDI1NnMtMTMuNS0zOC45LTMyLjMtNDUuNEM3LjQgMjA3LjcgMCAyMDAuOCAwIDE5MmwwLTY0eiJdfSx5enQ9U3NlLHd6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3ZlIixpY29uOls1MTIsNTEyLFsxMjgzMzBdLCJmNGJhIiwiTTQ5NiA2NGMxMy4yIDAgMjAuNyAxNS4xIDEyLjggMjUuNkw0ODAgMTI4IDQ4MCAzMDRjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRsLTExMiAwLTQ2LjMgNDYuM2MtMTAuNCAxMC40LTI2LjUgMTIuNC0zOS4xIDQuOEw0MS41IDQ0MC45Yy0xNy0xMC4yLTE1LTM1LjUgMy40LTQyLjlMMTYwIDM1MkMyMy44IDMxMS4xIDcuNSAxNjkuOCAyMiA5NS43IDI1LjYgNzcuOSA0NS4zIDcxLjQgNjEuMyA4MC4yTDMyMCAyMjQgMzIwIDE0NGMwLTQ0LjIgMzUuOC04MCA4MC04MGw5NiAwem0tOTYgNTZhMjQgMjQgMCAxIDAgMCA0OCAyNCAyNCAwIDEgMCAwLTQ4ek0xODIuNS05LjZjMTIuNC0xMy43IDMzLjMtOC45IDQyLjUgNy4xbDU2LjQgOTguM2MtNS44IDE0LjQtOS4yIDMwLjEtOS40IDQ2LjVMMTM4LjEgNjhjMTAuMS0zMS42IDI3LTU4LjQgNDQuNC03Ny42eiJdfSxNenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFycC1kcm9wbGV0IixpY29uOls1MTIsNTEyLFtdLCJlNTdjIiwiTTI1NiAxNjBjMzUuMyAwIDY0LTI2LjkgNjQtNjAgMC0yNC0zMy43LTcwLjEtNTIuMi05My41LTYuMS03LjctMTcuNS03LjctMjMuNiAwLTE4LjUgMjMuNC01Mi4yIDY5LjUtNTIuMiA5My41IDAgMzMuMSAyOC43IDYwIDY0IDYwek0zNjggOTZjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJTMTQ0IDE1Ny45IDE0NCA5NmMwLTExLjEgMS42LTIxLjkgNC42LTMyTDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI3Ny41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMNDkzLjMgMzIyLjdjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1MTIgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04NC42IDBjMyAxMC4xIDQuNiAyMC45IDQuNiAzMnptODUuNSAxNzZMMzM2IDM4OS41IDMzNiAyOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTMuNSAwek05NiAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSx6enQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJlZS1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNTg3IiwiTTI4OCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDggNDggMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzIwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00MTZ6bTY0IDY0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTM1MiAzMDRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNNTI4IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek01MTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTk2IDQ4MGwwLTE2MC0xNiAwYy00NC4yIDAtODAtMzUuOC04MC04MCAwLTI2LjcgMTMuMS01MC4zIDMzLjItNjQuOS0uOC00LjktMS4yLTEwLTEuMi0xNS4xIDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA5NmMwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnoiXX0sQ3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cm4tdXAiLGljb246WzM4NCw1MTIsWzEwNTQ4LCJsZXZlbC11cC1hbHQiXSwiZjNiZiIsIk0xNjkuNCA5LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMzIuOSAxOTIgMzIwIDE5MmwtNjQgMCAwIDE2MGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwLTY0IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45bDEyOC0xMjh6Il19LGt6dD1Dc2UsYzc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtcXVhcnRlciIsaWNvbjpbMzIwLDUxMixbInRlbXBlcmF0dXJlLTEiLCJ0aGVybW9tZXRlci0xIiwidGhlcm1vbWV0ZXItcXVhcnRlciJdLCJmMmNhIiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM2wwLTI4LjdjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI4LjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSxTenQ9YzcsQ3p0PWM3LEx6dD1jNyxMc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2xpZGVycyIsaWNvbjpbNTEyLDUxMixbInNsaWRlcnMtaCJdLCJmMWRlIiwiTTMyIDY0QzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmw4Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwyNjUuMyA2NEMyNTMgMzUuNyAyMjQuOCAxNiAxOTIgMTZzLTYxIDE5LjctNzMuMyA0OEwzMiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjQ2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OGw1NC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTU0LjcgMGMtMTIuMy0yOC4zLTQwLjUtNDgtNzMuMy00OHMtNjEgMTkuNy03My4zIDQ4TDMyIDIyNHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTQuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDhzNjEtMTkuNyA3My4zLTQ4TDQ4MCA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI0Ni43IDBjLTEyLjMtMjguMy00MC41LTQ4LTczLjMtNDhzLTYxIDE5LjctNzMuMyA0OEwzMiAzODR6Il19LFR6dD1Mc2UsX3p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1ZSIsaWNvbjpbNTc2LDUxMixbMTI4MzMyXSwiZjY3OCIsIk0xNzQuOCAyMjRsMjI2LjQgMGM0My41IDAgNzguOC0zNS4zIDc4LjgtNzguOCAwLTI1LjUtMTIuMy00OS40LTMzLjEtNjQuMkwyOTcuMy0yNS40Yy01LjYtMy45LTEzLTMuOS0xOC41IDBMMTI5LjEgODFDMTA4LjMgOTUuOCA5NiAxMTkuNyA5NiAxNDUuMiA5NiAxODguNyAxMzEuMyAyMjQgMTc0LjggMjI0ek01MTIgNTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNDQ4IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDIwNi4zIDAgMjI0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwek0yNDAgMzg0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCA4MC05NiAwIDAtODB6Il19LEF6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoIixpY29uOlszODQsNTEyLFsxMDRdLCI0OCIsIk0zMjAgMjg4bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAtMjU2IDAgMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAyNTYgMHoiXX0sJHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluZm8iLGljb246WzE5Miw1MTIsW10sImYxMjkiLCJNNDggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMjI0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxUc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmciLGljb246WzM4NCw1MTIsWzEyODY5NCwid2Fsa2luZyJdLCJmNTU0IiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMTA1LjQgMjI3LjlsMjIuNi0yMi42IDAgNjkuM2MwIDI4IDEyLjIgNTQuNyAzMy41IDcyLjlsNzEuNCA2MS4yYzUuOSA1LjEgOS44IDEyLjEgMTAuOSAxOS44bDEyLjYgODguMWMyLjUgMTcuNSAxOC43IDI5LjcgMzYuMiAyNy4yczI5LjctMTguNyAyNy4yLTM2LjJsLTEyLjYtODguMWMtMy4zLTIzLjEtMTQuOS00NC4xLTMyLjYtNTkuM2wtMzQuNS0yOS42IDAtMTE1LjIgMy44IDQuN2MxOC4yIDIyLjggNDUuOCAzNiA3NSAzNmwzMy4yIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMzLjIgMGMtOS43IDAtMTguOS00LjQtMjUtMTJsLTE3LjktMjIuNGMtMjMtMjguOC01Ny45LTQ1LjYtOTQuOC00NS42LTMyLjIgMC02My4xIDEyLjgtODUuOCAzNS42TDYwLjEgMTgyLjZDNDIuMSAyMDAuNiAzMiAyMjUgMzIgMjUwLjVMMzIgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNy41YzAtOC41IDMuNC0xNi42IDkuNC0yMi42em0xMi40IDE3OS40Yy0xLjUgNS4yLTQuMyAxMC04LjEgMTMuOEw0MS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOGwtMTAuNCAzNi4yeiJdfSxEenQ9VHNlLF9zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10dXJuLWRvd24iLGljb246WzM4NCw1MTIsWyJsZXZlbC1kb3duIl0sImYxNDkiLCJNMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMlMxNC4zIDAgMzIgMGw5NiAwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMDYuNyA3My40LTczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTEyOC0xMjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMTYwIDQwMi43IDE2MCA5NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA2NHoiXX0sRXp0PV9zZSxOenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZCIsaWNvbjpbNTEyLDUxMixbMTI4NzM5XSwiZjAxOCIsIk0yMjMuOSAzMmwtNzYuMiAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkwxLjQgNDIwLjVDLTYuMSA0NTAuNyAxNi44IDQ4MCA0OCA0ODBsMTc1LjkgMCAwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NCAxNzYuMSAwYzMxLjIgMCA1NC4xLTI5LjMgNDYuNi01OS41TDQyNi41IDgwLjZDNDE5LjQgNTIuMSAzOTMuOCAzMiAzNjQuMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptNjQgMTkybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxQenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BpcmFsIixpY29uOls1MTIsNTEyLFtdLCJlODBhIiwiTTExNS41IDcuNGMxMy42LTExLjMgMzMuOC05LjUgNDUuMSA0LjFzOS41IDMzLjgtNC4xIDQ1LjFDMTAwLjIgMTAzLjUgNjQgMTc1LjIgNjQgMjU2IDY0IDM2MiAxNTAgNDQ4IDI1NiA0NDhzMTkyLTg2IDE5Mi0xOTJjMC03NS4xLTYwLjktMTM2LTEzNi0xMzZTMTc2IDE4MC45IDE3NiAyNTZjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTQ4LjYgMzkuNC04OCA4OC04OHM4OCAzOS40IDg4IDg4YzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzExMiAzMzUuNSAxMTIgMjU2YzAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMHMyMDAgODkuNSAyMDAgMjAwYzAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMCAzOTcuNCAwIDI1NkMwIDE1NS44IDQ1IDY2LjEgMTE1LjUgNy40eiJdfSxBc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1mcm93biIsaWNvbjpbNTEyLDUxMixbOTc4NSwiZnJvd24iXSwiZjExOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptOTAuNi0xMTMuOWMtMjAuNC0yOC01My40LTQ2LjEtOTAuNi00Ni4xcy03MC4yIDE4LjEtOTAuNiA0Ni4xYy03LjggMTAuNy0yMi44IDEzLjEtMzMuNSA1LjNzLTEzLjEtMjIuOC01LjMtMzMuNUMxNTUuNyAzMzAgMjAyLjggMzA0IDI1NiAzMDRzMTAwLjMgMjYgMTI5LjQgNjUuOWM3LjggMTAuNyA1LjQgMjUuNy01LjMgMzMuNXMtMjUuNyA1LjQtMzMuNS01LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sSXp0PUFzZSwkc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZS1nbGFzcy1lbXB0eSIsaWNvbjpbMzIwLDUxMixbIndpbmUtZ2xhc3MtYWx0Il0sImY1Y2UiLCJNNjQgMEM0OC43IDAgMzUuNiAxMC44IDMyLjYgMjUuN0wzLjIgMTczQzEuMSAxODMuNSAwIDE5NC4yIDAgMjA1bDAgM2MwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOGwwIDExNS4yLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC0xMTUuMkMyNjUgMzUwIDMyMCAyODUuNCAzMjAgMjA4bDAtM2MwLTEwLjctMS4xLTIxLjQtMy4yLTMyTDI4Ny40IDI1LjdDMjg0LjQgMTAuOCAyNzEuMyAwIDI1NiAwTDY0IDB6bTEuOSAxODUuNkw5MC4yIDY0IDIyOS44IDY0IDI1NC4xIDE4NS42YzEuMyA2LjQgMS45IDEyLjkgMS45IDE5LjRsMCAzYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bDAtM2MwLTYuNSAuNi0xMyAxLjktMTkuNHoiXX0sRnp0PSRzZSxPenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xhcHBlcmJvYXJkIixpY29uOls1MTIsNTEyLFtdLCJlMTMxIiwiTTQ0OCA2NGMyIDAgMy45IC4xIDUuOCAuM2wtOTUuNyA5NS43IDY3LjkgMCA3Mi03MmM4LjggMTEgMTQgMjQuOSAxNCA0MGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDcwLjEgMC05NiA5NiA2Ny45IDAgOTUtOTUgMS0xIDkyLjEgMC05NiA5NiA2Ny45IDAgOTUtOTUgMS0xIDg2LjEgMHoiXX0sRHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvcndhcmQtc3RlcCIsaWNvbjpbMzg0LDUxMixbInN0ZXAtZm9yd2FyZCJdLCJmMDUxIiwiTTIxIDM2LjhjMTIuOS03IDI4LjctNi4zIDQxIDEuOEwzMjAgMjA4LjEgMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzODRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDQuMS0yNTggMTY5LjZjLTEyLjMgOC4xLTI4IDguOC00MSAxLjhTMCA0NTQuNyAwIDQ0MEwwIDcyQzAgNTcuMyA4LjEgNDMuOCAyMSAzNi44eiJdfSxCenQ9RHNlLEVzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtdXAtcmlnaHQiLGljb246WzQ0OCw1MTIsWzg1OTksImV4dGVybmFsLWxpbmstc3F1YXJlLWFsdCJdLCJmMzYwIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTE2OCAxNjBjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzUgMzUtNjcgNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDI0IDI0YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDY3LTY3IDM1IDM1YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMzIwIDMyMS43IDMyMCAzMTJsMC0xMjhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEyOCAweiJdfSxSenQ9RXNlLE5zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLWpvdXJuYWwtd2hpbGxzIixpY29uOls0NDgsNTEyLFsiam91cm5hbC13aGlsbHMiXSwiZjY2YSIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiAwQzQzIDAgMCA0MyAwIDk2TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZ6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMCAwIDY0LTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMjc0LjEgOTkuMmMyLjYtMi42IDYuNy0zLjEgOS45LTEuMSAzMi4xIDIwIDUzLjQgNTUuNiA1My40IDk2LjIgMCA2Mi42LTUwLjcgMTEzLjMtMTEzLjMgMTEzLjNTMTEwLjcgMjU2LjkgMTEwLjcgMTk0LjNjMC00MC42IDIxLjQtNzYuMiA1My40LTk2LjIgMy4xLTIgNy4yLTEuNSA5LjkgMS4xczMuMSA2LjcgMS4yIDkuOGMtNS4yIDguNi04LjIgMTguNy04LjIgMjkuNSAwIDE1LjEgNS45IDI4LjggMTUuNSAzOS4xIDIuNSAyLjcgMi45IDYuNyAuOSA5LjctNC43IDcuNC03LjQgMTYuMS03LjQgMjUuNSAwIDIxLjYgMTQuMyAzOS45IDM0IDQ1LjlsMS0yNC44Yy03LjEtNC40LTExLjgtMTIuMi0xMS44LTIxLjEgMC05LjYgNS41LTE4IDEzLjUtMjIuMWwzLjMtODEuOGMuMi00LjMgMy43LTcuNyA4LTcuN3M3LjggMy40IDggNy43bDMuMyA4MS44YzggNC4xIDEzLjUgMTIuNCAxMy41IDIyLjEgMCA4LjktNC43IDE2LjctMTEuOCAyMS4xbDEgMjQuOGMxOS42LTYgMzMuOS0yNC4xIDM0LTQ1LjZsMC0uNmMtLjEtOS4zLTIuNy0xNy45LTcuNC0yNS4yLTEuOS0zLjEtMS42LTcuMSAuOS05LjcgOS42LTEwLjIgMTUuNS0yMy45IDE1LjUtMzkuMSAwLTEwLjgtMy0yMC45LTguMi0yOS41LTEuOS0zLjItMS40LTcuMiAxLjItOS44eiJdfSxIenQ9TnNlLFBzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFtcGFnbmUtZ2xhc3NlcyIsaWNvbjpbNjQwLDUxMixbMTI5MzQ2LCJnbGFzcy1jaGVlcnMiXSwiZjc5ZiIsIk0xNTUuNiAxNy4zQzE2MyAzIDE3OS45LTMuNiAxOTUgMS45bDEyNSA0NS42IDEyNS00NS42YzE1LjEtNS41IDMyIDEuMSAzOS40IDE1LjRsNzguOCAxNTIuOWMyOC44IDU1LjggMTAuMyAxMjIuMy0zOC41IDE1Ni42bDMxLjMgODYuMiA0MS0xNWMxNi42LTYgMzUgMi41IDQxIDE5LjFzLTIuNSAzNS0xOS4xIDQxYy00Ny40IDE3LjMtOTQuOCAzNC41LTE0Mi4yIDUxLjgtMTYuNiA2LjEtMzUtMi41LTQxLTE5LjFzMi41LTM1IDE5LjEtNDFsNDEtMTUtMzEuMy04Ni4yYy01OS40IDUuMi0xMTYuMi0zMy45LTEzMC05NS4ybC0xNC42LTY0LjctMTQuNiA2NC43Yy0xMy44IDYxLjMtNzAuNiAxMDAuNC0xMzAgOTUuMmwtMzEuMyA4Ni4yIDQxIDE1YzE2LjYgNi4xIDI1LjIgMjQuNCAxOS4xIDQxcy0yNC40IDI1LjItNDEgMTkuMWMtNDcuNC0xNy4zLTk0LjgtMzQuNi0xNDIuMi01MS44LTE2LjYtNi4xLTI1LjItMjQuNC0xOS4xLTQxUzI2LjMgMzkyIDQyLjkgMzk4bDQxIDE1IDMxLjMtODYuMkM2Ni41IDI5Mi41IDQ4LjEgMjI2IDc2LjkgMTcwLjJMMTU1LjYgMTcuM3ptNDQgNTQuNGwtMjcuMiA1Mi44IDg5LjIgMzIuNSAxMy4xLTU3LjktNzUuMS0yNy40em0yNDAuOSAwbC03NS4xIDI3LjQgMTMuMSA1Ny45IDg5LjItMzIuNS0yNy4yLTUyLjh6Il19LHF6dD1Qc2UsVnp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImR1bXBzdGVyIixpY29uOls1NzYsNTEyLFtdLCJmNzkzIiwiTTEzMi4zIDY0TDEwNi43IDE5MiAyNCAxOTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNC4xYzAtMi42IC40LTUuMSAxLjItNy42TDI2LjUgODAuNEMyOS44IDcwLjYgMzkgNjQgNDkuMyA2NGw4MyAwem0yMy40IDEyOGwyNS42LTEyOCA4Mi43IDAgMCAxMjgtMTA4LjMgMHpNMzEyIDY0bDgyLjcgMCAyNS42IDEyOC0xMDguMyAwIDAtMTI4em0xMzEuNyAwbDgzIDBjMTAuMyAwIDE5LjUgNi42IDIyLjggMTYuNGwyNS4zIDc1LjljLjggMi40IDEuMiA1IDEuMiA3LjZsMCA0LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTgyLjcgMC0yNS42LTEyOHpNMjUuNyAyNDBsNTI0LjcgMGMtLjQgMi4xLTEzLjMgNzMuNC0zOC45IDIxMy43LTMgMTYuMy0xNy45IDI3LjYtMzQuNCAyNi4xUzQ0OCA0NjQuNiA0NDggNDQ4bDAtMTYtMzIwIDAgMCAxNmMwIDE2LjYtMTIuNiAzMC40LTI5LjEgMzEuOVM2Ny41IDQ3MCA2NC41IDQ1My43QzM5IDMxMy4zIDI2IDI0Mi4xIDI1LjcgMjQweiJdfSxVenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlNTAxIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43eiJdfSxqenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcHV0ZXIiLGljb246WzU3Niw1MTIsW10sImU0ZTUiLCJNMzQ4LjggMzJDMzQwLjcgNDYuMSAzMzYgNjIuNSAzMzYgODBsMCAxNi0yNzIgMCAwIDIyNCAyNzIgMCAwIDY0LTI3MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4NC44IDB6TTMzNiA0MzJjMCAxNy41IDQuNyAzMy45IDEyLjggNDhMMTIwIDQ4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMTYgMHpNNDMyIDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em0yNCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTU2IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxJc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1tYWdpYyIsaWNvbjpbNTEyLDUxMixbIm1hZ2ljIl0sImYwZDAiLCJNMzk4LjUgMTIuMmwtODguMiA4OC4yIDEwMS4zIDEwMS4zIDg4LjItODguMkM1MDcuNiAxMDUuNiA1MTIgOTUgNTEyIDg0cy00LjQtMjEuNi0xMi4yLTI5LjVMNDU3LjUgMTIuMkM0NDkuNiA0LjQgNDM5IDAgNDI4IDBzLTIxLjYgNC40LTI5LjUgMTIuMnpNMjc2LjQgMTM0LjNMMTIuMiAzOTguNUM0LjQgNDA2LjQgMCA0MTcgMCA0MjhzNC40IDIxLjYgMTIuMiAyOS41bDQyLjMgNDIuM0M2Mi40IDUwNy42IDczIDUxMiA4NCA1MTJzMjEuNi00LjQgMjkuNS0xMi4yTDM3Ny43IDIzNS42IDI3Ni40IDEzNC4zeiJdfSxXenQ9SXNlLEd6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmFpbiIsaWNvbjpbNTEyLDUxMixbMTI5NTA0XSwiZjVkYyIsIk0xMjAgNTZjMC0zMC45IDI1LjEtNTYgNTYtNTZsMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMjkuOCAwLTU0LjktMjAuNC02Mi00OC0uNyAwLTEuMyAwLTIgMC00NC4yIDAtODAtMzUuOC04MC04MCAwLTE4IDYtMzQuNiAxNi00OC0xOS40LTE0LjYtMzItMzcuOC0zMi02NCAwLTMwLjkgMTcuNi01Ny44IDQzLjItNzEuMS03LjEtMTItMTEuMi0yNi0xMS4yLTQwLjkgMC00NC4yIDM1LjgtODAgODAtODBsMC0yNHptMjcyIDBsMCAyNGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDE1LTQuMSAyOS0xMS4yIDQwLjkgMjUuNyAxMy4zIDQzLjIgNDAuMSA0My4yIDcxLjEgMCAyNi4yLTEyLjYgNDkuNC0zMiA2NCAxMCAxMy40IDE2IDMwIDE2IDQ4IDAgNDQuMi0zNS44IDgwLTgwIDgwLS43IDAtMS4zIDAtMiAwLTcuMSAyNy42LTMyLjIgNDgtNjIgNDhsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6Il19LFl6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmllZmNhc2UtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjQ2OSIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6bTgwIDE2MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sWnp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTEyIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxYenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1jb21taXQiLGljb246WzU3Niw1MTIsW10sImYzODYiLCJNMjg4IDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTU2LjgtNDhDNDMwIDM2MSAzNjUuNCA0MTYgMjg4IDQxNlMxNDYgMzYxIDEzMS4yIDI4OEwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTkuMiAwQzE0NiAxNTEgMjEwLjYgOTYgMjg4IDk2czE0MiA1NSAxNTYuOCAxMjhsOTkuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05OS4yIDB6Il19LFF6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnJlYXN0ZmVlZGluZyIsaWNvbjpbNDQ4LDUxMixbXSwiZTUzYSIsIk0yMjQgMGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNNDM2LjggMzgyLjhMMzczLjUgNDYyYy0xNi42IDIwLjctNDYuOCAyNC4xLTY3LjUgNy41LTE3LjYtMTQuMS0yMi43LTM4LjEtMTMuNS01Ny43bC0uNy0uMWMtMzguOS01LjYtNzQuMy0yNS4xLTk5LjctNTQuOGwwLTM2LjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMwIC44IDAgMS42IC4xIDIuNGwxMDEuNCA1MC43YzIzLjcgMTEuOSAzMy4zIDQwLjcgMjEuNSA2NC40cy00MC43IDMzLjMtNjQuNCAyMS41TDI3LjIgNDI3LjNjLTEuMS0uNS0yLjItMS4xLTMuMy0xLjctNC45LTIuOC05LjItNi40LTEyLjYtMTAuNi00LjYtNS40LTcuOC0xMS43LTkuNi0xOC40LTMuMy0xMi0xLjktMjUuMiA0LjgtMzYuNiAuNi0xLjEgMS4zLTIuMiAyLTMuMkw3NS42IDI1Ni4xYzI2LjctNDAuMSA3MS43LTY0LjEgMTE5LjgtNjQuMWw3NS4yIDBjNDYuNSAwIDkwLjEgMjIuNSAxMTcuMiA2MC4zbDUwLjcgNzAuOWMyLjIgMyA0IDYuMSA1LjUgOS40IDIuOSA2LjcgNC4zIDEzLjggNCAyMC44LS4zIDEwLjYtNC4yIDIxLTExLjIgMjkuNHpNMzIwIDMzMmE0NCA0NCAwIDEgMCAtODggMCA0NCA0NCAwIDEgMCA4OCAweiJdfSxLenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXJheXMiLGljb246WzUxMiw1MTIsW10sImU1NGQiLCJNMzEyLjUgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN2w0Ni4zIDYyLjRjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDMzM4LjUgMTMyIDI5OC44IDExMiAyNTYuNSAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNmw0Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek03LjUgN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsODAgODBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxLjUgN0MzMi4xLTIuMyAxNi45LTIuMyA3LjUgN3ptNDY0IDBsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMHpNNy41IDUwNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC04MCA4MGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjl6bTQ2NCAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODAtODBjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsODAgODB6Il19LEp6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYW5hdC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWQ1IiwiTTE5MiAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MS41QzczLjMgMTA5LjMgMCAxOTAuMSAwIDI4OEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtNjIuNSA0NC44LTExNC41IDEwNC0xMjUuOEwxNjggNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yOTMuOGM1OS4yIDExLjIgMTA0IDYzLjMgMTA0IDEyNS44bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC05Ny45LTczLjMtMTc4LjctMTY4LTE5MC41TDIxNiA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sRnNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQiLGljb246WzM4NCw1MTIsWyJ1bnNvcnRlZCJdLCJmMGRjIiwiTTIuNCAyMDQuMmM1IDEyIDE2LjYgMTkuOCAyOS42IDE5LjhsMzIwIDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45em0wIDEwMy41Yy01IDEyLTIuMiAyNS43IDYuOSAzNC45bDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzNjQuOSAyODggMzUyIDI4OEwzMiAyODhjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5Ljh6Il19LGVrdD1Gc2UsT3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1yYWRpYXRpb24iLGljb246WzUxMiw1MTIsWzk3NjIsInJhZGlhdGlvbi1hbHQiXSwiZjdiYSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem04MCAwbDY0LjMgMGM4LjcgMCAxNS43LTcuMSAxNy4zLTE1LjYgNC40LTI0LjQgMTguMS00NS41IDM3LjItNTkuNyA3LjQtNS41IDEwLjYtMTUuNiA2LTIzLjZsLTMyLjUtNTYuM2MtNC4zLTcuNS0xMy45LTEwLjMtMjEuMi01LjUtNDguMiAzMS41LTgxLjMgODQuMi04Ni4zIDE0NC44LS43IDguOCA2LjUgMTYgMTUuMyAxNnptMTM3LjkgODkuOGMtOC41LTMuNy0xOC44LTEuNC0yMy41IDYuNmwtMzEgNTMuOGMtNC4zIDcuNS0xLjkgMTcuMiA1LjggMjEuMSAyNi4xIDEzLjIgNTUuNSAyMC43IDg2LjggMjAuN3M2MC43LTcuNSA4Ni44LTIwLjdjNy43LTMuOSAxMC4xLTEzLjYgNS44LTIxLjFsLTMxLTUzLjhjLTQuNi04LTE1LTEwLjMtMjMuNS02LjYtMTEuNyA1LTI0LjUgNy44LTM4LjEgNy44cy0yNi40LTIuOC0zOC4xLTcuOHpNMzUwLjQgMjQwLjRjMS42IDguNiA4LjUgMTUuNiAxNy4zIDE1LjZsNjQuMyAwYzguOCAwIDE2LjEtNy4yIDE1LjMtMTYtNS02MC42LTM4LjEtMTEzLjItODYuMy0xNDQuOC03LjMtNC44LTE2LjgtMi0yMS4yIDUuNUwzMDcuMyAxNTdjLTQuNiA4LTEuNCAxOC4xIDYgMjMuNiAxOS4xIDE0LjIgMzIuNyAzNS40IDM3LjIgNTkuN3pNMjU2IDMwNS43YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sdGt0PU9zZSxha3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wLWNvZGUiLGljb246WzY0MCw1MTIsW10sImY1ZmMiLCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDAtNjQgMCAwLTI0MC0zODQgMCAwIDI0MC02NCAwIDAtMjQwek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjIgMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODEgMjA5bC0zMSAzMSAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00OC00OGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNDgtNDhjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45ek0zOTMgMTc1bDQ4IDQ4YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAweiJdfSxya3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luayIsaWNvbjpbNTEyLDUxMixbXSwiZTA2ZCIsIk0yODggOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAxOTItNjQgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtODAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwwIDY0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDAtNDBjMC00LjQgMy42LTggOC04bDU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgNDAtNjQgMCAwLTE5MnoiXX0saWt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20td2F0ZXItcHVtcCIsaWNvbjpbNjQwLDUxMixbXSwiZTRiNiIsIk0xNDQgMzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTc2LTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNzkuNmMxNy42LTIgMzYgMi41IDUxLjMgMTQgMy40IDIuNiA2LjEgMS40IDkuOC0uM2wuOC0uNGM1LjctMi42IDEyLjktNi45IDIxLjctMTMuNSAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjMtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgMjIuMSAxNi42IDI5LjEgMTYuNiA1MS4yIDAgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDYuOSA1LjIgMTIuOCA5IDE4IDExLjcgLjYgLjMgMS4yIC42IDEuOCAxIDQuMiAyLjMgOC41IDQuNiAxMi42IDEuNSAxMC43LTguMSAyMi45LTEyLjcgMzUuMy0xNC4xbDAtNzkuNWMwLTI2LjUtMjEuNS00OC00OC00OGwtNTYgMCAwLTE0Mi4xIDQ3IDQ3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0OTcgMzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC04OCA4OGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ3LTQ3IDAgMTQyLjEtMTM2IDAgMC0xNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTQ0IDMyek00NzQuNiA0NzYuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQ4Mi4zIDE3LjYgNDkwLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAweiJdfSxCc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9waG9uZS1saW5lcy1zbGFzaCIsaWNvbjpbNTc2LDUxMixbIm1pY3JvcGhvbmUtYWx0LXNsYXNoIl0sImY1MzkiLCJNNy0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDE1MSAxNTEgMC0zMC4yYzAtNTMgNDMtOTYgOTYtOTYgNTAuMyAwIDkxLjYgMzguNyA5NS43IDg4TDMyOCA4OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwIDAgNDgtNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NS43IDBjLTEuOSAyMi45LTExLjggNDMuNC0yNi45IDU5bDMzLjkgMzMuOWMyNS41LTI2IDQxLjMtNjEuNiA0MS4zLTEwMC45bDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwYzAgNTIuNi0yMS4xIDEwMC4yLTU1LjMgMTM0LjhMNTY5IDUwMy4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5LjFDLTIuMy0uMy0yLjMtMTUuNSA3LTI0Ljl6TTI5Ny44IDM2Ny43bDQxLjQgNDEuNGMtOC44IDIuNC0xNy45IDQuMy0yNy4zIDUuNGwwIDQ5LjUgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQ5LjVDMTY5LjMgNDAyLjcgOTYgMzIxLjkgOTYgMjI0bDAtNDBjMC01LjEgMS42LTkuOSA0LjQtMTMuOGw0My42IDQzLjYgMCAxMC4yYzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0IDMuMyAwIDYuNi0uMSA5LjgtLjN6Il19LG9rdD1Cc2Usc2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlcnZlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjE2IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNTYgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMjg4em0yMTYgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em01NiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxHVj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyIixpY29uOls0NDgsNTEyLFsxMjgxMDAsNjIxNDQsNjI0NzAsInVzZXItYWx0IiwidXNlci1sYXJnZSJdLCJmMDA3IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NkM5NS44IDMwNCAxNiAzODMuOCAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwzNTYuNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43IDAtOTguNS03OS44LTE3OC4zLTE3OC4zLTE3OC4zbC01OS40IDB6Il19LG5rdD1HVixsa3Q9R1YsY2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNub3dmbGFrZSIsaWNvbjpbNTEyLDUxMixbMTAwNTIsMTAwNTRdLCJmMmRjIiwiTTI4OC4yIDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2Mi4xLTE1LTE1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDQ5IDQ5IDAgNzAuNi02MS4yLTM1LjMtMTcuOS02Ni45Yy0zLjQtMTIuOC0xNi42LTIwLjQtMjkuNC0xN1M5NS4zIDk4IDk4LjcgMTEwLjhsNS41IDIwLjUtNTMuNy0zMUMzNS4yIDkxLjUgMTUuNiA5Ni43IDYuOCAxMTJzLTMuNiAzNC45IDExLjcgNDMuN2w1My43IDMxLTIwLjUgNS41Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w2Ni45LTE3LjkgNjEuMiAzNS4zLTYxLjIgMzUuMy02Ni45LTE3LjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDIwLjUgNS41LTUzLjcgMzFDMy4yIDM2NS4xLTIgMzg0LjcgNi44IDQwMHMyOC40IDIwLjYgNDMuNyAxMS43bDUzLjctMzEtNS41IDIwLjVjLTMuNCAxMi44IDQuMiAyNiAxNyAyOS40czI2LTQuMiAyOS40LTE3bDE3LjktNjYuOSA2MS4yLTM1LjMgMCA3MC42LTQ5IDQ5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTUtMTUgMCA2Mi4xYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Mi4xIDE1IDE1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDktNDkgMC03MC42IDYxLjIgMzUuMyAxNy45IDY2LjljMy40IDEyLjggMTYuNiAyMC40IDI5LjQgMTdzMjAuNC0xNi42IDE3LTI5LjRsLTUuNS0yMC41IDUzLjcgMzFjMTUuMyA4LjggMzQuOSAzLjYgNDMuNy0xMS43czMuNi0zNC45LTExLjctNDMuN2wtNTMuNy0zMSAyMC41LTUuNWMxMi44LTMuNCAyMC40LTE2LjYgMTctMjkuNHMtMTYuNi0yMC40LTI5LjQtMTdsLTY2LjkgMTcuOS02MS4yLTM1LjMgNjEuMi0zNS4zIDY2LjkgMTcuOWMxMi44IDMuNCAyNi00LjIgMjkuNC0xN3MtNC4yLTI2LTE3LTI5LjRsLTIwLjUtNS41IDUzLjctMzFjMTUuMy04LjggMjAuNi0yOC40IDExLjctNDMuN3MtMjguNC0yMC41LTQzLjctMTEuN2wtNTMuNyAzMSA1LjUtMjAuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTE3LjkgNjYuOS02MS4yIDM1LjMgMC03MC42IDQ5LTQ5YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTE1IDE1IDAtNjIuMXoiXX0sZGt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNrdWxsLWNyb3NzYm9uZXMiLGljb246WzQ0OCw1MTIsWzEyODM2OSw5NzYwXSwiZjcxNCIsIk0zODQgMTQ0QzM4NCA2NC41IDMxMi40IDAgMjI0IDBTNjQgNjQuNSA2NCAxNDRjMCA0Ny4xIDI1LjEgODguOSA2NCAxMTUuMmwwIDI4LjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yOC44YzM4LjktMjYuMyA2NC02OC4xIDY0LTExNS4yek0xNjAgMTI4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ1LjUgMzM5LjdjLTYuOC0xNi4zLTI1LjUtMjQtNDEuOC0xNy4yTDIyNCAzOTcuMyA0NC4zIDMyMi41Yy0xNi4zLTYuOC0zNSAuOS00MS44IDE3LjJzLjkgMzUgMTcuMiA0MS44TDE0MC44IDQzMiAxOS43IDQ4Mi41QzMuNCA0ODkuMy00LjMgNTA4IDIuNSA1MjQuM3MyNS41IDI0IDQxLjggMTcuMkwyMjQgNDY2LjcgNDAzLjcgNTQxLjVjMTYuMyA2LjggMzUtLjkgNDEuOC0xNy4ycy0uOS0zNS0xNy4yLTQxLjhMMzA3LjIgNDMyIDQyOC4zIDM4MS41YzE2LjMtNi44IDI0LTI1LjUgMTcuMi00MS44eiJdfSxma3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVzby1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMjIyIiwiTTExMiAzMkM5NC4zIDMyIDgwIDQ2LjMgODAgNjRsMCA2NC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAzMi0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjNjUuNiAwIDEyMi0zOS41IDE0Ni43LTk2bDM3LjMgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQuOCAwYy41LTUuMyAuOC0xMC42IC44LTE2cy0uMy0xMC43LS44LTE2bDI0LjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzcuMyAwQzM2MiA3MS41IDMwNS42IDMyIDI0MCAzMkwxMTIgMzJ6bTE5OS42IDk2bC0xNjcuNiAwIDAtMzIgOTYgMGMyOC40IDAgNTQgMTIuNCA3MS42IDMyek0xNDQgMTc2bDE5MC43IDBjLjkgNS4yIDEuMyAxMC41IDEuMyAxNnMtLjUgMTAuOC0xLjMgMTZsLTE5MC43IDAgMC0zMnptMTY3LjYgODBjLTE3LjYgMTkuNi00My4xIDMyLTcxLjYgMzJsLTk2IDAgMC0zMiAxNjcuNiAweiJdfSx1a3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZS1nbGFzcyIsaWNvbjpbMzIwLDUxMixbMTI3ODYzXSwiZjRlMyIsIk0zMi42IDI1LjdDMzUuNiAxMC44IDQ4LjcgMCA2NCAwTDI1NiAwYzE1LjMgMCAyOC40IDEwLjggMzEuNCAyNS43TDMxNi44IDE3M2MyLjEgMTAuNSAzLjIgMjEuMiAzLjIgMzJsMCAzYzAgNzcuNC01NSAxNDItMTI4IDE1Ni44bDAgMTE1LjIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTExNS4yQzU1IDM1MCAwIDI4NS40IDAgMjA4bDAtM2MwLTEwLjcgMS4xLTIxLjQgMy4yLTMyTDMyLjYgMjUuN3pNNzcuNCAxMjhsMTY1LjEgMC0xMi44LTY0LTEzOS41IDAtMTIuOCA2NHoiXX0sZDc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtaGFsZiIsaWNvbjpbMzIwLDUxMixbMTI3Nzc3LCJ0ZW1wZXJhdHVyZS0yIiwidGhlcm1vbWV0ZXItMiIsInRoZXJtb21ldGVyLWhhbGYiXSwiZjJjOSIsIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNsMC05Mi43YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA5Mi43YzIzLjUgOS41IDQwIDMyLjUgNDAgNTkuM3oiXX0scGt0PWQ3LGhrdD1kNyxta3Q9ZDcsZ2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpY2tldCIsaWNvbjpbNTc2LDUxMixbMTI3OTAzXSwiZjE0NSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOGwwIDY0QzAgMjAwLjggNy40IDIwNy43IDE1LjcgMjEwLjYgMzQuNSAyMTcuMSA0OCAyMzUgNDggMjU2cy0xMy41IDM4LjktMzIuMyA0NS40QzcuNCAzMDQuMyAwIDMxMS4yIDAgMzIwbDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTguOC03LjQtMTUuNy0xNS43LTE4LjYtMTguOC02LjUtMzIuMy0yNC40LTMyLjMtNDUuNHMxMy41LTM4LjkgMzIuMy00NS40YzguMy0yLjkgMTUuNy05LjggMTUuNy0xOC42bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTQxNiAzMzZsMC0xNjAtMjU2IDAgMCAxNjAgMjU2IDB6TTExMiAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI4OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE5MnoiXX0seGt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWF0LWF3bi1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1OTgiLCJNNDk2IDU3NmExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTgxIDUyOWMtOS40IDkuMy0yNC41IDkuMy0zMy45IDAtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMODEgNTI5em0zMC4yLTI5NC40YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMyA4My45IDMxLjctNy43IDY2LjIgMSA5MC42IDI1LjNsMTIgMTJjLS44IDctMS4yIDE0LjItMS4yIDIxLjQgMCAyMCAzIDM5LjMgOC43IDU3LjQtMzYuOCAyMS44LTg1IDE3LTExNi42LTE0LjdMMTY1LjYgNDQ0LjMgODEgNTI5QzY5LjcgNTE3LjcgNTguNCA1MDYuMyA0NyA0OTVsODQuNy04NC43LTMwLjUtMzAuNWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNDk2IDQ3NmEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6bTAtMTQwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTYgOC44IDAgMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2ek0yMTUuMiAxMzAuNmM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjMgODMuOSAyNC4yLTUuOSA1MC4xLTIuMSA3MS45IDEwLjgtMzIuMiAyNC45LTU2LjIgNTkuOC02Ny40IDEwMC4xLTMuOC0yLjgtNy41LTYtMTEtOS41bC05NC45LTk0LjljLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTUyNi43IDE1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwIDguOCA4LjggOS4zIDIyLjcgMS43IDMyLjFMNTYwLjYgNDkgNDQ2LjIgMTYzLjRjNy43IDEgMTUuMyAzIDIyLjUgNS45TDUyNyAxMTFjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFsLTEuNyAxLjgtNTIuNyA1Mi43IDM5IDM5YzMuMiAzLjIgNC43IDcuNCA0LjcgMTEuNi0xNy43LTUuNC0zNi41LTguMy01NS45LTguMy0zNC4yIDAtNjYuMyA4LjktOTQuMSAyNC42bC05Mi43LTkyLjdjLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuOGw3LjQtNy40IDIuNS0yLjFjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWwzOSAzOSA1Mi43LTUyLjdjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFMNDY1IDQ5IDQwNi43IDEwNy4zYzIuOCA3LjEgNC43IDE0LjUgNS44IDIyLjFMNTI2LjcgMTV6Il19LGJrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdHVybi1yaWdodCIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMCIsIk0zMTMuNC02LjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzMzguNyAxMjggMTI4IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDI0MS43IDAgMjI0bDAtMzJDMCAxMjEuMyA1Ny4zIDY0IDEyOCA2NGwyMTAuNyAwLTI1LjQtMjUuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6bS05NiAyNTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDIuNyAzODQgOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhsMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDE0Ni43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3oiXX0sdmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbmR5LWNhbmUiLGljb246WzQ0OCw1MTIsW10sImY3ODYiLCJNNDIxLjggMzkuNkM0NTIgODUuMiA0NTYuNSAxNDIuOSA0MzUuMSAxOTJsLTE2NS40IDAgNDEuNC00MS40Yy44LS44IDEuNS0xLjYgMi4yLTIuNEw0MjEuOCAzOS42ek0yNjggMTAyLjljLS44IC43LTEuNiAxLjQtMi40IDIuMmwtMjguMSAyOC4xYy0yNSAyNS02NS41IDI1LTkwLjUgMHMtMjUtNjUuNSAwLTkwLjVMMTc1IDE0LjZDMjI5LjktNDAuMiAzMTQuNS00Ni43IDM3Ni41LTUuNkwyNjggMTAyLjl6TTEyNS43IDMzNmw4MC04MCAxODEgMC04Mi41IDgyLjUgMC0yLjUtMTc4LjUgMHptMTE3IDY0TDE0MS40IDUwMS4zYy0yNSAyNS02NS41IDI1LTkwLjUgMHMtMjUtNjUuNSAwLTkwLjVsMTAuNy0xMC43IDE4MSAweiJdfSx5a3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlZWxjaGFpciIsaWNvbjpbNTEyLDUxMixbXSwiZjE5MyIsIk0xMzYgNDBhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMTcuOSAxOTcuNmwxMi42IDYzYy0zOC42IDEyLjQtNjYuNSA0OC43LTY2LjUgOTEuNCAwIDUzIDQzIDk2IDk2IDk2IDM1LjYgMCA2Ni43LTE5LjQgODMuMy00OC4yIDIuMyAuMSA0LjYgLjIgNyAuMmw0LjEgMGMxIDAgMi4xIDAgMy4xIDBsNTUuMiAwYy0yMC40IDY0LjktODEgMTEyLTE1Mi43IDExMi04OC40IDAtMTYwLTcxLjYtMTYwLTE2MCAwLTczLjggNTAtMTM1LjkgMTE3LjktMTU0LjR6bTE0OC42LTI4LjFsMjMuNyAxMTguNSA2MC41IDBjMzMuMyAwIDYzLjIgMjAuNyA3NC45IDUxLjlsMjUuNSA2OCAxOC43LTYuMmMxNi44LTUuNiAzNC45IDMuNSA0MC41IDIwLjJzLTMuNSAzNC45LTIwLjIgNDAuNWwtNDggMTZjLTE2LjMgNS40LTM0LTMtNDAuMS0xOS4xbC0zNi4zLTk2LjljLTIuMy02LjItOC4zLTEwLjQtMTUtMTAuNGwtODYuMSAwYy0uNCAwLS44IDAtMS4zIDBsLTEzLjEgMGMtMzAuNSAwLTU2LjgtMjEuNS02Mi44LTUxLjRMMTY1LjMgMTg5LjdjLTYuNC0zMS45IDE4LTYxLjcgNTAuNi02MS43IDI0LjYgMCA0NS44IDE3LjQgNTAuNiA0MS41eiJdfSx3a3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BlbGwtY2hlY2siLGljb246WzU3Niw1MTIsW10sImY4OTEiLCJNMTIwIDMyYy00OC42IDAtODggMzkuNC04OCA4OGwwIDE2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjhjMC00OC42LTM5LjQtODgtODgtODhsLTE2IDB6bTQwIDEyOGwtNjQgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MHpNMzA0IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw3MiAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4IDAtMjMuNi05LjMtNDUtMjQuNC02MC44IDEwLjMtMTQuNCAxNi40LTMyLjEgMTYuNC01MS4yIDAtNDguNi0zOS40LTg4LTg4LTg4bC02NCAwem02NCAxMTJsLTMyIDAgMC00OCAzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0ek0zMzYgMjU2bDAtNDggNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMHptMjMzIDg0YzExLTEzLjggOC44LTMzLjktNS00NXMtMzMuOS04LjgtNDUgNWwtMTA1LjcgMTMyLjEtMzguNy0zOC43Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM2LjQgNi40IDE1LjMgOS44IDI0LjQgOS4zczE3LjUtNC45IDIzLjItMTJMNTY5IDM0MHoiXX0sTWt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZS1vZmYiLGljb246WzMyMCw1MTIsW10sImYwMjYiLCJNOTYgMzUybC00OCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQ4IDAgMTM0LjEtMTE5LjJjNi40LTUuNyAxNC42LTguOCAyMy4xLTguOCAxOS4yIDAgMzQuOCAxNS42IDM0LjggMzQuOGwwIDM3OC40YzAgMTkuMi0xNS42IDM0LjgtMzQuOCAzNC44LTguNSAwLTE2LjctMy4xLTIzLjEtOC44TDk2IDM1MnoiXX0semt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imx1bmdzIixpY29uOls1NzYsNTEyLFsxMjk3MjldLCJmNjA0IiwiTTMyMCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0MS45LTMyIDE5LjIgMC0xMTYuN2MwLTI0LjUtMTkuOS00NC40LTQ0LjQtNDQuNC0xMi41IDAtMjQuNCA1LjMtMzIuOCAxNC41bC0yNi40IDI5QzQyLjkgMTYwLjggMCAyNzEuOCAwIDM4N2wwIDMwLjVjMCA1Mi4yIDQyLjMgOTQuNSA5NC41IDk0LjUgMjIgMCA0My43LTUuMSA2My40LTE1bDUtMi41YzM3LjQtMTguNyA2MS01Ni45IDYxLTk4LjhsMC0xMjggNjQtMzguNCA2NCAzOC40IDAgMTI4YzAgNDEuOCAyMy42IDgwLjEgNjEgOTguOGw1IDIuNWMxOS43IDkuOCA0MS40IDE1IDYzLjQgMTUgNTIuMiAwIDk0LjUtNDIuMyA5NC41LTk0LjVsMC02LjJjMC0xMTEuMS0zNi43LTIxOS0xMDQuNC0zMDdMNDI4LjkgNDguN2MtOC4xLTEwLjYtMjAuNy0xNi43LTM0LTE2LjctMjMuNyAwLTQyLjkgMTkuMi00Mi45IDQyLjlsMCAxMTguMi0zMi0xOS4yIDAtMTQxLjl6Il19LGtrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rbWFyayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc4LDYxNTkxXSwiZjAyZSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ4MGMwIDExLjUgNi4yIDIyLjIgMTYuMiAyNy44czIyLjMgNS41IDMyLjItLjRMMTkyIDQyMS4zIDMzNS41IDUwNy40YzkuOSA1LjkgMjIuMiA2LjEgMzIuMiAuNFMzODQgNDkxLjUgMzg0IDQ4MGwwLTQxNmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAweiJdfSxTa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFyY29kZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAyYSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6bTg4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTcyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6bTIwOC04bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bS05NiAwbDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LFlWPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3Qtb2wiLGljb246WzUxMiw1MTIsWyJsaXN0LTEtMiIsImxpc3QtbnVtZXJpYyJdLCJmMGNiIiwiTTAgNzJDMCA1OC44IDEwLjcgNDggMjQgNDhsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNCAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC05NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC04MC0yNCAwQzEwLjcgOTYgMCA4NS4zIDAgNzJ6TTMwLjQgMzAxLjJDNDEuOCAyOTIuNiA1NS43IDI4OCA3MCAyODhsNC45IDBjMzMuNyAwIDYxLjEgMjcuNCA2MS4xIDYxLjEgMCAxOS42LTkuNCAzNy45LTI1LjIgNDkuNGwtMjQgMTcuNSAzMy4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTkwLjcgMEMxMy4xIDQ2NCAwIDQ1MC45IDAgNDM0LjcgMCA0MjUuMyA0LjUgNDE2LjUgMTIuMSA0MTFsNzAuNS01MS4zYzMuNC0yLjUgNS40LTYuNCA1LjQtMTAuNiAwLTcuMi01LjktMTMuMS0xMy4xLTEzLjFMNzAgMzM2Yy0zLjkgMC03LjcgMS4zLTEwLjggMy42TDM4LjQgMzU1LjJjLTEwLjYgOC0yNS42IDUuOC0zMy42LTQuOFMtMSAzMjQuOCA5LjYgMzE2LjhsMjAuOC0xNS42ek0yMjQgNjRsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDE2MGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sQ2t0PVlWLExrdD1ZVixUa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU1YTEiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sX2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmUiLGljb246WzUxMiw1MTIsW10sImYxYjIiLCJNMjI0LjMtMi41YzE5LjgtMTEuNCA0NC4yLTExLjQgNjQgMEw0NjQuMiA5OWMxOS44IDExLjQgMzIgMzIuNiAzMiA1NS40bDAgMjAzYzAgMjIuOS0xMi4yIDQ0LTMyIDU1LjRMMjg4LjMgNTE0LjVjLTE5LjggMTEuNC00NC4yIDExLjQtNjQgMEw0OC41IDQxM2MtMTkuOC0xMS40LTMyLTMyLjYtMzItNTUuNGwwLTIwM2MwLTIyLjkgMTIuMi00NCAzMi01NS40TDIyNC4zLTIuNXptMjA3LjggMzYwbDAtMTY2LjEtMTQzLjggODMgMCAxNjYuMSAxNDMuOC04M3oiXX0sQWt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhcGUiLGljb246WzU3Niw1MTIsW10sImY0ZGIiLCJNNDEyLjggNDE2YzQxLjUtNDAuNyA2Ny4yLTk3LjMgNjcuMi0xNjAgMC0xMjMuNy0xMDAuMy0yMjQtMjI0LTIyNFMzMiAxMzIuMyAzMiAyNTYgMTMyLjMgNDgwIDI1NiA0ODBsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEzMS4yIDB6TTI1NiAxNjBhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTQ4IDk2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LCRrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib21iIixpY29uOls1NzYsNTEyLFsxMjgxNjNdLCJmMWUyIiwiTTQ4MC0xNmM2LjkgMCAxMyA0LjQgMTUuMiAxMC45bDEzLjUgNDAuNCA0MC40IDEzLjVDNTU1LjYgNTEgNTYwIDU3LjEgNTYwIDY0cy00LjQgMTMtMTAuOSAxNS4ybC00MC40IDEzLjUtMTMuNSA0MC40QzQ5MyAxMzkuNiA0ODYuOSAxNDQgNDgwIDE0NHMtMTMtNC40LTE1LjItMTAuOWwtMTMuNS00MC40LTQwLjQtMTMuNUM0MDQuNCA3NyA0MDAgNzAuOSA0MDAgNjRzNC40LTEzIDEwLjktMTUuMmw0MC40LTEzLjUgMTMuNS00MC40QzQ2Ny0xMS42IDQ3My4xLTE2IDQ4MC0xNnpNMzIxLjQgOTcuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTAuOSAxMC45YzcuOSAyMiAxMi4yIDQ1LjcgMTIuMiA3MC41IDAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFMzMiA0MTguOSAzMiAzMDQgMTI1LjEgOTYgMjQwIDk2YzI0LjcgMCA0OC41IDQuMyA3MC41IDEyLjNsMTAuOS0xMC45ek0xNDQgMzA0YzAtNTMgNDMtOTYgOTYtOTYgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6Il19LFJzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS11bmJhbGFuY2VkIixpY29uOls2NDAsNTEyLFsiYmFsYW5jZS1zY2FsZS1sZWZ0Il0sImY1MTUiLCJNNTE5LjggNjIuNGMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41UzUxNi4zLTMuOSA0OTkuNiAxLjZsLTExMyAzNy43Yy0xMy45LTIzLjUtMzkuNi0zOS4zLTY4LjktMzkuMy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDMgLjIgNS45IC41IDguOEwxMTUuNiAxMjkuNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDEzNS41LTQ1LjJjNC41IDMuMiA5LjMgNS45IDE0LjQgOC4ybDAgMzI2LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMjk0LjdjMjEtOS4yIDM3LjItMjcgNDQuMi00OWwxMjUuOS00MnpNNDM3LjMgMjg4bDcyLjQtMTI0LjIgNzIuNCAxMjQuMi0xNDQuOSAwem03Mi40IDk2YzYyLjkgMCAxMTUuMi0zNCAxMjYtNzguOSAyLjYtMTEtMS0yMi4zLTYuNy0zMi4xTDUzMy44IDEwOS44Yy01LTguNi0xNC4yLTEzLjgtMjQuMS0xMy44cy0xOS4xIDUuMy0yNC4xIDEzLjhMMzkwLjQgMjczLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjEgMTAuOCA0NC44IDYzLjEgNzguOSAxMjYgNzguOXpNMTI2LjggMjkxLjhsNzIuNCAxMjQuMi0xNDQuOSAwIDcyLjQtMTI0LjJ6TS45IDQzMy4xQzExLjcgNDc4IDY0IDUxMiAxMjYuOCA1MTJzMTE1LjItMzQgMTI2LTc4LjljMi42LTExLTEtMjIuMy02LjctMzIuMUwxNTAuOSAyMzcuOGMtNS04LjYtMTQuMi0xMy44LTI0LjEtMTMuOHMtMTkuMSA1LjMtMjQuMSAxMy44TDcuNiA0MDEuMWMtNS43IDkuOC05LjMgMjEuMS02LjcgMzIuMXoiXX0sRGt0PVJzZSxIc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNhcmV0LWxlZnQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtbGVmdCJdLCJmMTkxIiwiTTAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZ6TTEyOCAyNTZjMC02LjcgMi44LTEzIDcuNy0xNy42bDExMi0xMDRjNy02LjUgMTcuMi04LjIgMjUuOS00LjRTMjg4IDE0Mi41IDI4OCAxNTJsMCAyMDhjMCA5LjUtNS43IDE4LjItMTQuNCAyMnMtMTguOSAyLjEtMjUuOS00LjRsLTExMi0xMDRjLTQuOS00LjUtNy43LTEwLjktNy43LTE3LjZ6Il19LEVrdD1Ic2UsTmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyIixpY29uOls1NzYsNTEyLFsxMjgyMDddLCJmNTQ1IiwiTTIwOS4xIDUxNi4yYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMEwyOC4xIDQwMy4xYy0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOWwxNy0xNyA3My41IDczLjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03My41LTczLjUgMzMuOS0zMy45IDUwLjkgNTAuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTUwLjktNTAuOSAzMy45LTMzLjkgNzMuNSA3My41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzMuNS03My41IDMzLjktMzMuOSA1MC45IDUwLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01MC45LTUwLjkgMzMuOS0zMy45IDczLjUgNzMuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTczLjUtNzMuNSAxNy0xN2MxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMEw1NDguNSAxMDguOWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwyMDkuMSA1MTYuMnoiXX0sUGt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImkiLGljb246WzMyMCw1MTIsWzEwNV0sIjQ5IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw5NiAwIDAgMzIwLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDAgMC0zMjAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sWlY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLXhtYXJrIixpY29uOls1NzYsNTEyLFsidm9sdW1lLW11dGUiLCJ2b2x1bWUtdGltZXMiXSwiZjZhOSIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNMzY3IDE3NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNDcgNDctNDcgNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0Ny00NyA0NyA0N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ3LTQ3IDQ3LTQ3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTQ3IDQ3LTQ3LTQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sSWt0PVpWLEZrdD1aVixPa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJjaHdheSIsaWNvbjpbNTEyLDUxMixbXSwiZjU1NyIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6bTAgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwIDAtMTI4YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxMjggMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0yNzItNDQ4IDAgMCAyNzJ6Il19LHFzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZGlnZ2luZyIsaWNvbjpbNTc2LDUxMixbImRpZ2dpbmciXSwiZjg1ZSIsIk0yMDggNDBhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMC41IDE4MS4zYzUuOS0xMS45IDIwLjMtMTYuNyAzMi4yLTEwLjdsMjQuNiAxMi4zIDEyLjItMjAuNGMxOC45LTMxLjUgNTMuMi01MC41IDg5LjYtNTAuNSA0Ni4yIDAgODcuNyAzMC41IDEwMC41IDc1LjRsMzIuMiAxMTIuNyA5Mi45IDQ2LjQgMjUuOC00M2M1LjgtOS42IDE2LjItMTUuNSAyNy40LTE1LjVzMjEuNyA1LjkgMjcuNCAxNS41bDk2IDE2MGM1LjkgOS45IDYuMSAyMi4yIC40IDMyLjJTNTU1LjUgNTEyIDU0NCA1MTJsLTE5MiAwYy0xMS41IDAtMjIuMi02LjItMjcuOC0xNi4ycy01LjUtMjIuMyAuNC0zMi4yTDM3MCAzODcuOCAyMS4zIDIxMy41Yy0xMS45LTUuOS0xNi43LTIwLjMtMTAuNy0zMi4yek05NC4zIDMwNy40bDExMiA1NmMxMC44IDUuNCAxNy43IDE2LjUgMTcuNyAyOC42bDAgODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OC4yLTYxLjMtMzAuNy0zNi4zIDEwOWMtNS42IDE2LjgtMjMuNyAyNS44LTQwLjUgMjAuMlMtMy45IDQ4Ni42IDEuNyA0NjkuOWw0OC0xNDRjMi45LTguOCA5LjUtMTUuOSAxOC4xLTE5LjRzMTguMy0zLjIgMjYuNiAuOXoiXX0sQmt0PXFzZSxYVj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1oaWdoIixpY29uOls1MTIsNTEyLFs2MjQ2MSwidGFjaG9tZXRlci1hbHQiLCJ0YWNob21ldGVyLWFsdC1mYXN0Il0sImY2MjUiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTI1NiA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0xNi4yLTYtMzEuMS0xNi00Mi4zbDY5LjUtMTM4LjljNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4ycy0yNi4zLTEuMS0zMi4yIDEwLjdMMjYxLjEgMjg4LjJjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjR6TTE3NiAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNOTYgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzUyLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LFJrdD1YVixIa3Q9WFYscWt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdlbmRlcmxlc3MiLGljb246WzM4NCw1MTIsW10sImYyMmQiLCJNMTkyIDEyOGExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6bTAgMzIwYTE5MiAxOTIgMCAxIDAgMC0zODQgMTkyIDE5MiAwIDEgMCAwIDM4NHoiXX0sVmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXN1biIsaWNvbjpbNTc2LDUxMixbOTkyNV0sImY2YzQiLCJNNDUzLjYtMTQuOGM0LjkgMiA4LjUgNi40IDkuNSAxMS42TDQ4MCA4MCA1NjMuMiA5Ni44YzUuMiAxLjEgOS41IDQuNiAxMS42IDkuNXMxLjUgMTAuNS0xLjQgMTQuOWwtNDYuOSA3MC43IDQ2LjkgNzAuN2MyLjkgNC40IDMuNSAxMCAxLjQgMTQuOXMtNi40IDguNS0xMS42IDkuNUw1MDEgMjk5LjdjLTExLjktOC43LTI1LjEtMTUuNi0zOS40LTIwLjQtMi41LTEyLjctNi44LTI0LjctMTIuNy0zNS43IDkuNS0xNC45IDE1LjEtMzIuNiAxNS4xLTUxLjcgMC01My00My05Ni05Ni05Ni00Ny45IDAtODcuNiAzNS4xLTk0LjggODAuOS0yNi41LTIwLjMtNTkuNS0zMi41LTk1LjQtMzIuOWwtMTUuMS0yMi43Yy0yLjktNC40LTMuNS0xMC0xLjQtMTQuOXM2LjQtOC41IDExLjYtOS41TDI1NiA4MCAyNzIuOC0zLjJjMS4xLTUuMiA0LjYtOS41IDkuNS0xMS42czEwLjUtMS41IDE0LjkgMS40TDM2OCAzMy42IDQzOC43LTEzLjNjNC40LTIuOSAxMC0zLjUgMTQuOS0xLjR6TTQxNiAxOTJjMCAzLjgtLjQgNy41LTEuMyAxMS4xLTIxLjctMTctNDktMjcuMS03OC43LTI3LjEtNC42IDAtOS4xIC4yLTEzLjUgLjcgNi40LTE5IDI0LjQtMzIuNyA0NS41LTMyLjcgMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTk2IDUxMmMtNTMgMC05Ni00My05Ni05NiAwLTQyLjUgMjcuNi03OC42IDY1LjktOTEuMi0xLjMtNi43LTEuOS0xMy43LTEuOS0yMC44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyIDQzLjEgMCA4MC41IDI0LjMgOTkuMiA2MCAxNC43LTE3LjEgMzYuNS0yOCA2MC44LTI4IDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNS41LS42IDEwLjgtMS42IDE2IC41IDAgMS4xIDAgMS42IDAgNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZMOTYgNTEyeiJdfSxPVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodCIsaWNvbjpbNTEyLDUxMixbODU5NF0sImYwNjEiLCJNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzcwLjcgMC0xMDUuNCAxMDUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYweiJdfSxRVj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzU3Niw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk0yNjguOSA4NS4yTDE1Mi4zIDIxNC44Yy00LjYgNS4xLTQuNCAxMyAuNSAxNy45IDMwLjUgMzAuNSA4MCAzMC41IDExMC41IDBsMzEuOC0zMS44YzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM3NiA1NzYgMzIwIDU3NiAzMiA0NjQgOTYgNDQwLjIgODAuMUM0MjQuNCA2OS42IDQwNS45IDY0IDM4Ni45IDY0bC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMXpNMTE2LjYgMTgyLjdMMjIzLjQgNjQgMTgzLjggNjRjLTI1LjUgMC00OS45IDEwLjEtNjcuOSAyOC4xTDExMiA5NiAwIDMyIDAgMzIwIDE1Ni40IDQ1MC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMxOS4xIDAgMzcuOC00LjMgNTQuOC0xMi4zTDM1OSA0NDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMiAzMiAxNy41LTE3LjVjOC45LTguOSAxMS41LTIxLjggNy42LTMzLjFsLTEzNy45LTEzNi44LTE0LjkgMTQuOWMtNDkuMyA0OS4zLTEyOS4xIDQ5LjMtMTc4LjQgMC0yMy0yMy0yMy45LTU5LjktMi4yLTg0eiJdfSxVa3Q9UVYsamt0PVFWLFZzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc2tpaW5nIixpY29uOls1NzYsNTEyLFs5OTc1LCJza2lpbmciXSwiZjdjOSIsIk00MTYgNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0yLjcgMzAwLjljNi4xLTExLjggMjAuNi0xNi4zIDMyLjQtMTAuMmwxOTcuOCAxMDIuNyA2Mi4zLTg3LjItODItOTIuMmMtMTEtMTIuNC0xNi4yLTI3LjUtMTYuMi00Mi40bDExMS42IDUzLjQgNDIuOSA0OC4yYzE0LjkgMTYuNyAxNi4yIDQxLjYgMy4yIDU5LjhsLTY0LjQgOTAuMiAxMjguMyA2Ni42YzEzLjYgNy4xIDI5LjggNy4yIDQzLjYgLjNsMTUuMi03LjZjMTEuOS01LjkgMjYuMy0xLjEgMzIuMiAxMC43czEuMSAyNi4zLTEwLjcgMzIuMmwtMTUuMiA3LjZjLTI3LjUgMTMuNy01OS45IDEzLjUtODcuMi0uN0wxMi45IDMzMy4zQzEuMiAzMjcuMi0zLjQgMzEyLjcgMi43IDMwMC45ek0xMDMgNDkuNmwxOCA4LjcgOC43LTE3LjRjNC03LjkgMTMuNi0xMS4xIDIxLjUtNy4yczExLjEgMTMuNiA3LjIgMjEuNWwtOC41IDE3IDg0LjggNDEgLjQtLjIgNzYuMS0zMy44YzMxLjMtMTMuOSA2Ny45LS43IDgzLjIgMjkuOWwyOC45IDU3LjggNjguNyAyNy41YzE2LjQgNi42IDI0LjQgMjUuMiAxNy44IDQxLjZzLTI1LjIgMjQuNC00MS42IDE3LjhMMzkzLjggMjI0Yy0xMC45LTQuNC0xOS44LTEyLjYtMjUuMS0yMy4xbC0xMS41LTIzLjFjLTE2LjQgOS40LTI1LjkgMTQuOC0yOC41IDE2LjNsLTcuNi0zLjctMTg1LjYtODkuNi05LjIgMTguM2MtNCA3LjktMTMuNiAxMS4xLTIxLjUgNy4ycy0xMS4xLTEzLjYtNy4yLTIxLjVsOS0xNy45LTE3LjYtOC41QzgxLjEgNzQuNiA3Ny44IDY1IDgxLjYgNTdTOTUgNDUuNyAxMDMgNDkuNnoiXX0sV2t0PVZzZSxHa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLXdhdGVyIixpY29uOls2NDAsNTEyLFtdLCJlNGNlIiwiTTY0IDY0bDUxMiAwIDAgMTEyYy0zNy42IDkuNC02NCA0My4yLTY0IDgybDAgNzYuNGMtMjEtOS43LTQzLjUtMTQuNS02Ni0xNC40LTEwIC4xLTIwLjEgMS4xLTMwIDMuMWwwLTM1LjFjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMi43Yy01LjMtLjUtMTAuNy0uOC0xNi0uNy0yNy43IC4yLTU1LjQgNy44LTgwIDIzbDAtODVjMC0zOC44LTI2LjQtNzIuNi02NC04Mkw2NCA2NHpNNDAzLjQgNDQ0LjFDMzc5LjEgNDYyLjMgMzUxLjEgNDgwIDMyMCA0ODBzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSxZa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctbmdvIixpY29uOls1NzYsNTEyLFtdLCJlNGQ3IiwiTTEyOCAwQzkyLjcgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ4IDAgMC0xMTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjA4IDAgMC0yNzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTI4IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0zMDQgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTYwIDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNTIwIDM4MGMtMjQuMyAwLTQ0IDE5LjctNDQgNDRsMCA4MGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwxNiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtODBjMC0yNC4zLTE5LjctNDQtNDQtNDRsLTE2IDB6bS00IDQ0YzAtMi4yIDEuOC00IDQtNGwxNiAwYzIuMiAwIDQgMS44IDQgNGwwIDgwYzAgMi4yLTEuOCA0LTQgNGwtMTYgMGMtMi4yIDAtNC0xLjgtNC00bDAtODB6bS0xNjggMGwwIDgwYzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDE2IDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC0yNGMwLTExLTktMjAtMjAtMjBsLTggMGMtMTEgMC0yMCA5LTIwIDIwIDAgNi41IDMuMSAxMi40IDggMTZsMCA4YzAgMi4yLTEuOCA0LTQgNGwtMTYgMGMtMi4yIDAtNC0xLjgtNC00bDAtODBjMC0yLjIgMS44LTQgNC00bDIwLjQgMGMxLjkgOS4xIDkuOSAxNiAxOS42IDE2IDExIDAgMjAtOSAyMC0yMCAwLTE5LjktMTYuMS0zNi0zNi0zNmwtMjQgMGMtMjQuMyAwLTQ0IDE5LjctNDQgNDR6bS05MC4xLTMyLjljLTQuMS04LjMtMTMuNS0xMi43LTIyLjUtMTAuNVMyMjAgMzkwLjcgMjIwIDQwMGwwIDEyOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQzLjMgMjYuMSA1Mi4yYzQuMSA4LjMgMTMuNSAxMi43IDIyLjUgMTAuNVMzMjQgNTM3LjMgMzI0IDUyOGwwLTEyOGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCA0My4zLTI2LjEtNTIuMnoiXX0sWmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImlnbG9vIixpY29uOls1NzYsNTEyLFtdLCJmN2FlIiwiTTMyMCAzMy44bDAgMTI2LjItMjcxLjUgMGM1MS43LTc3LjIgMTM5LjYtMTI4IDIzOS41LTEyOCAxMC44IDAgMjEuNSAuNiAzMiAxLjh6TTM2OCAxNjBsMC0xMTYuN2M2NiAxOSAxMjIuMiA2MSAxNTkuNSAxMTYuN0wzNjggMTYwek0yMi42IDIwOGw3My40IDAgMCAxMTItOTYgMGMwLTM5LjcgOC03Ny42IDIyLjYtMTEyek0xNzYgMzIwbC0zMiAwIDAtMTEyIDI4OCAwIDAgMTEyLTMyIDAgMCA0OCAxNzYgMCAwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC02NCAxNzYgMCAwLTQ4em0zMDQgMGwwLTExMiA3My40IDBDNTY4IDI0Mi40IDU3NiAyODAuMyA1NzYgMzIwbC05NiAwek0yODggMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDgwIDEyOCAwIDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjR6Il19LFVzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG9sbGFyLXRvLXNsb3QiLGljb246WzU3Niw1MTIsWyJkb25hdGUiXSwiZjRiOSIsIk05NiAyMjRhMTkyIDE5MiAwIDEgMSAzODQgMCAxOTIgMTkyIDAgMSAxIC0zODQgMHptMTc2LTkybDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDI0OCAyNzJjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjB6TTQ4IDM0NGwwIDEwNGMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxYa3Q9VXNlLFFrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ5IixpY29uOlszODQsNTEyLFsxMjFdLCI1OSIsIk01OCA0NS40QzQ3LjggMzEgMjcuOCAyNy43IDEzLjQgMzhTLTQuMyA2OC4yIDYgODIuNkwxNjAgMjk4LjMgMTYwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTQ5LjcgMTU0LTIxNS43YzEwLjMtMTQuNCA2LjktMzQuNC03LjQtNDQuNlMzMzYuMiAzMSAzMjYgNDUuNEwxOTIgMjMyLjkgNTggNDUuNHoiXX0sanNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc21pbGUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTIxLCJzbWlsZS13aW5rIl0sImY0ZGEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NS40IDMyMS45YzIwLjQgMjggNTMuNCA0Ni4xIDkwLjYgNDYuMXM3MC4yLTE4LjEgOTAuNi00Ni4xYzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVDMzU2LjMgMzkwIDMwOS4yIDQxNiAyNTYgNDE2cy0xMDAuMy0yNi0xMjkuNC02NS45Yy03LjgtMTAuNy01LjQtMjUuNyA1LjMtMzMuNXMyNS43LTUuNCAzMy41IDUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxLa3Q9anNlLEprdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLWZvdXIiLGljb246WzQ0OCw1MTIsWzk4NTldLCJmNTI0IiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNjAgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTM1MiAxNjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFdzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50LXRlYXJzIixpY29uOls1NzYsNTEyLFsxMjkzMTUsImdyaW4tc3F1aW50LXRlYXJzIl0sImY1ODYiLCJNNTYwIDM1LjRjMCAyNS42LTE4LjggNDcuMy00NC4xIDUwLjlMNDY5LjEgOTNjLTEwLjYgMS41LTE5LjYtNy41LTE4LjEtMTguMWw2LjctNDYuN0M0NjEuMyAyLjggNDgzLTE2IDUwOC42LTE2IDUzNy0xNiA1NjAgNyA1NjAgMzUuNHpNNDAzLjUgNjguMWMtNiA0Mi4yIDMwLjIgNzguNCA3Mi40IDcyLjRsMzcuOC01LjRDNTY1LjcgMjMyIDU1MC44IDM1NS4zIDQ2OSA0MzdzLTIwNSA5Ni42LTMwMS45IDQ0LjdsNS40LTM3LjhjNi00Mi4yLTMwLjItNzguNC03Mi40LTcyLjRsLTM3LjggNS40QzEwLjMgMjgwIDI1LjIgMTU2LjcgMTA3IDc1UzMxMi0yMS43IDQwOC45IDMwLjNsLTUuNCAzNy44ek00MTcuOCAyMDFjLTE5LjEgMzYuNC00NS42IDcyLjctNzguOSAxMDZzLTY5LjYgNTkuOC0xMDYgNzguOWMtMTEuMSA1LjgtMTIuNCAyMS40LTEuMSAyNi42IDU5LjIgMjcuNSAxMzEuOCAxNi44IDE4MC42LTMyczU5LjUtMTIxLjQgMzItMTgwLjZjLTUuMy0xMS4zLTIwLjgtMTAtMjYuNiAxLjF6TTExMy45IDI3MC42YzEuNyA4IDkgMTMuNCAxNy4xIDEyLjdsNDMuMS0zLjktMy45IDQzLjFjLS43IDguMSA0LjcgMTUuNSAxMi43IDE3LjFzMTUuOS0yLjkgMTguNC0xMC42bDI4LTg0LjZjMS45LTUuNyAuNC0xMi4xLTMuOS0xNi4zcy0xMC42LTUuOC0xNi4zLTMuOWwtODQuNiAyOGMtNy43IDIuNi0xMi4zIDEwLjUtMTAuNiAxOC41ek0zMTUuMiA5OS4xYy43LTguMS00LjctMTUuNS0xMi43LTE3LjFzLTE1LjkgMi45LTE4LjUgMTAuNmwtMjggODQuNmMtMS45IDUuNy0uNCAxMi4xIDMuOSAxNi4zczEwLjYgNS44IDE2LjMgMy45bDg0LjYtMjhjNy43LTIuNiAxMi4zLTEwLjUgMTAuNi0xOC40cy05LTEzLjQtMTcuMS0xMi43bC00My4xIDMuOSAzLjktNDMuMXpNNjAuMSA0MjUuN2w0Ni43LTYuN2MxMC42LTEuNSAxOS42IDcuNSAxOC4xIDE4LjFsLTYuNyA0Ni43QzExNC43IDUwOS4yIDkzIDUyOCA2Ny40IDUyOCAzOSA1MjggMTYgNTA1IDE2IDQ3Ni42IDE2IDQ1MSAzNC44IDQyOS4zIDYwLjEgNDI1Ljd6Il19LGVTdD1Xc2UsdFN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtYXVkaW8iLGljb246WzM4NCw1MTIsW10sImYxYzciLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6bTUzLjggMTg1LjJjLTkuMS02LjMtMjEuNS00LjEtMjcuOCA1cy00LjEgMjEuNSA1IDI3LjhjMjMuOSAxNi43IDM5LjQgNDQuMyAzOS40IDc1LjVzLTE1LjYgNTguOS0zOS40IDc1LjVjLTkuMSA2LjMtMTEuMyAxOC44LTUgMjcuOHMxOC44IDExLjMgMjcuOCA1YzM0LjEtMjMuOCA1Ni42LTYzLjUgNTYuNi0xMDguM1MyOTYgMjY3LjUgMjYxLjggMjQzLjd6TTgwIDMxMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDAgMjcuMiAzNGMzIDMuOCA3LjYgNiAxMi41IDZsLjMgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2bC0uMyAwYy00LjkgMC05LjUgMi4yLTEyLjUgNmwtMjcuMiAzNC0yNCAwem0xMjggNzIuMmMwIDEwLjcgMTAuNSAxOC4yIDE4LjkgMTEuNiAxMi45LTEwLjMgMjEuMS0yNi4xIDIxLjEtNDMuOHMtOC4yLTMzLjUtMjEuMS00My44Yy04LjQtNi43LTE4LjkgLjktMTguOSAxMS42bDAgNjQuNXoiXX0sYVN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1kb3duLXRvLWxpbmUiLGljb246WzUxMiw1MTIsW10sImU0YjgiLCJNMjE0LjYgMzEwLjZsLTY0IDY0Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNjQtNjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMjc0LjcgOTYgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI0Mi43IDkuNC05LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptMjU2IDBsLTY0IDY0Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNjQtNjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsOS40IDkuNCAwLTI0Mi43YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNDIuNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJ6Il19LHJTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnIixpY29uOls0NDgsNTEyLFsxMDNdLCI0NyIsIk0yMjQgOTZDMTM1LjYgOTYgNjQgMTY3LjYgNjQgMjU2czcxLjYgMTYwIDE2MCAxNjBjNzcuNCAwIDE0Mi01NSAxNTYuOC0xMjhMMjU2IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNDQgMGMyNS44IDAgNDkuNiAyMS40IDQ3LjIgNTAuNi05LjUgMTE1LTEwNS44IDIwNS40LTIyMy4yIDIwNS40LTEyMy43IDAtMjI0LTEwMC4zLTIyNC0yMjRTMTAwLjMgMzIgMjI0IDMyYzU3LjQgMCAxMDkuNyAyMS42IDE0OS4zIDU3IDEzLjIgMTEuOCAxNC4zIDMyIDIuNSA0NS4ycy0zMiAxNC4zLTQ1LjIgMi41QzMwMi4zIDExMS40IDI2NSA5NiAyMjQgOTZ6Il19LGlTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWhhcmEiLGljb246WzU3Niw1MTIsW10sImY2YTciLCJNMjczLjYtMy4yYzguNS02LjQgMjAuMy02LjQgMjguOCAwTDQ0My4yIDEwMi40YzguMyA2LjIgMTguNCA5LjYgMjguOCA5LjYgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI0IDAgMCA0OCA1OC43IDY0IDEzLjMgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgNDggMjQuNCAzMiAxNS42IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTEyOCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xMjggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMi4xIDAgMTcuOS0zMiAwLTQ4LTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMy4zIDAgNTguNy02NCAwLTQ4LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMTAuNCAwIDIwLjUtMy40IDI4LjgtOS42TDI3My42LTMuMnpNMTI4IDM2OGwzMjAgMCAwLTQ4LTMyMCAwIDAgNDh6TTM4NCAxNjBsLTE5MiAwIDAgNDggMTkyIDAgMC00OHoiXX0sb1N0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYWctY2hlY2tlcmVkIixpY29uOls0NDgsNTEyLFsxMjc5MzddLCJmMTFlIiwiTTMyIDBDNDkuNyAwIDY0IDE0LjMgNjQgMzJsMCAxNiA2OS0xNy4yYzM4LjEtOS41IDc4LjMtNS4xIDExMy41IDEyLjUgNDYuMyAyMy4yIDEwMC44IDIzLjIgMTQ3LjEgMGw5LjYtNC44QzQyMy44IDI4LjEgNDQ4IDQzLjEgNDQ4IDY2LjFsMCAyNzkuN2MwIDEzLjMtOC4zIDI1LjMtMjAuOCAzMGwtMzQuNyAxM2MtNDYuMiAxNy4zLTk3LjYgMTQuNi0xNDEuNy03LjQtMzcuOS0xOS04MS40LTIzLjctMTIyLjUtMTMuNEw2NCAzODQgNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDB6TTY0IDE4Ny4xbDY0LTEzLjkgMCA2NS41LTY0IDEzLjkgMCA2NS41IDQ4LjgtMTIuMmM1LjEtMS4zIDEwLjEtMi40IDE1LjItMy4zbDAtNjMuOSAzOC45LTguNGM4LjMtMS44IDE2LjctMi41IDI1LjEtMi4xbDAtNjRjMTMuNiAuNCAyNy4yIDIuNiA0MC40IDYuNGwyMy42IDYuOSAwIDY2LjctNDEuNy0xMi4zYy03LjMtMi4xLTE0LjgtMy40LTIyLjMtMy44bDAgNzEuNGMyMS44IDEuOSA0My4zIDYuNyA2NCAxNC40bDAtNjkuOCAyMi43IDYuN2MxMy41IDQgMjcuMyA2LjQgNDEuMyA3LjRsMC02NC4yYy03LjgtLjgtMTUuNi0yLjMtMjMuMi00LjVsLTQwLjgtMTIgMC02MmMtMTMtMy44LTI1LjgtOC44LTM4LjItMTUtOC4yLTQuMS0xNi45LTctMjUuOC04LjhsMCA3Mi40Yy0xMy0uNC0yNiAuOC0zOC43IDMuNmwtMjUuMyA1LjUgMC03NS4yLTY0IDE2IDAgNzMuMXpNMzIwIDMzNS43YzE2LjggMS41IDMzLjktLjcgNTAtNi44bDE0LTUuMiAwLTcxLjctNy45IDEuOGMtMTguNCA0LjMtMzcuMyA1LjctNTYuMSA0LjVsMCA3Ny40em02NC0xNDkuNGwwLTcwLjhjLTIwLjkgNi4xLTQyLjQgOS4xLTY0IDkuMWwwIDY5LjRjMTMuOSAxLjQgMjggLjUgNDEuNy0yLjZsMjIuMy01LjJ6Il19LEtWPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdWdlLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbImdhdWdlLXNpbXBsZS1tZWQiLCJ0YWNob21ldGVyLWF2ZXJhZ2UiXSwiZjYyOSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDI4MCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LHNTdD1LVixuU3Q9S1YsR3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWxlZnQiLGljb246WzUxMiw1MTIsWyJleGNoYW5nZS1hbHQiXSwiZjM2MiIsIk01MDIuNiAxNTAuNmwtOTYgOTZjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM1MiAyMzYuOSAzNTIgMjI0bDAtNjQtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgOTYgMzIgOTZsMzIwIDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zem0tMzk3LjMgMzUybC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTMTYwIDI3NS4xIDE2MCAyODhsMCA2NCAzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOXoiXX0sbFN0PUdzZSxjU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGlsbHMiLGljb246WzUxMiw1MTIsW10sImY0ODQiLCJNNjQgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTItOTYgMCAwLTExMnpNMTc2IDM2OGMwLTQ4LjcgMTguMS05My4yIDQ4LTEyN2wwLTEyOUMyMjQgNTAuMSAxNzMuOSAwIDExMiAwUzAgNTAuMSAwIDExMkwwIDQwMGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMiAzNy4zIDAgNzAuMy0xOC4yIDkwLjctNDYuMy0xNy0yOC42LTI2LjctNjItMjYuNy05Ny43em02NC43IDY3LjRjNC42IDguNyAxNi4zIDkuNyAyMy4zIDIuN0w0MzguMSAyNjRjNy03IDYtMTguNy0yLjctMjMuMy0yMC4xLTEwLjctNDMtMTYuNy02Ny40LTE2LjctNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCAyNC4zIDYgNDcuMyAxNi43IDY3LjR6TTI5Ny45IDQ3MmMtNyA3LTYgMTguNyAyLjcgMjMuMyAyMC4xIDEwLjcgNDMgMTYuNyA2Ny40IDE2LjcgNzkuNSAwIDE0NC02NC41IDE0NC0xNDQgMC0yNC4zLTYtNDcuMy0xNi43LTY3LjQtNC42LTguNy0xNi4zLTkuNy0yMy4zLTIuN0wyOTcuOSA0NzJ6Il19LGRTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleHBsb3Npb24iLGljb246WzUxMiw1MTIsW10sImU0ZTkiLCJNMjU2LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMCAxNjBjMTIuNCAwIDIyLjcgOS40IDIzLjkgMjEuN0wyOTMuNCAyOTEuNiA0NjcuNiAxMS4zYzYuNy0xMC43IDIwLjUtMTQuNSAzMS43LTguNXMxNS44IDE5LjUgMTAuNiAzMUwzNzIuOCAzMzguNmMyLjIgMi4zIDQuMyA0LjcgNi4zIDcuMWw5Ny4yLTU0LjdjMTAuNS01LjkgMjMuNi0zLjEgMzAuOSA2LjRzNi4zIDIzLTIuMiAzMS41bC04NyA4Ny03MS40IDBjLTEzLjItMzcuMy00OC43LTY0LTkwLjUtNjRzLTc3LjQgMjYuNy05MC41IDY0bC03OS42IDAtNzUuNS01Mi4zQy42IDM1Ny0yLjggMzQ0LjEgMi40IDMzMy41czE3LjQtMTUuOSAyOC43LTEyLjRsOTcuMiAzMC40YzMtMy45IDYuMS03LjYgOS40LTExLjNMNzUuNCAyMzYuM2MtNi4xLTEwLjEtMy45LTIzLjEgNS4xLTMwLjdzMjIuMi03LjUgMzEuMSAuMUwyMTQgMjkzLjZjMS41LS40IDMtLjggNC41LTEuMWwxMy42LTE0Mi43YzEuMi0xMi4zIDExLjUtMjEuNyAyMy45LTIxLjd6TTMyIDQ2NGw0NTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAweiJdfSxmU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLWRvd24tdG8tcGVvcGxlIixpY29uOls1MTIsNTEyLFtdLCJlNGI5IiwiTTExMyAxNTNjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDE1IDg5QzUuNyA3OS42IDUuNyA2NC40IDE1IDU1UzM5LjYgNDUuNyA0OSA1NUw3MiA3OC4xIDcyLThjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDg2LjEgMjMtMjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02NCA2NHptMzIwIDBjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDMzNSA4OWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDIzIDIzIDAtODYuMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODYuMSAyMy0yM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTY0IDY0ek0yNTYgMTkyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0wIDE2MGM1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyYzAtNTMgNDMtOTYgOTYtOTZ6TTMyIDI4OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0zNTIgMGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek04MCAzNjhjMTUuMyAwIDI5LjYgNC4zIDQxLjggMTEuOC02LjMgMTYuMi05LjggMzMuOC05LjggNTIuMmwwIDQ4YzAgMTEuNCAyLjQgMjIuMiA2LjcgMzJsLTg3LjggMEMxMy44IDUxMiAwIDQ5OC4yIDAgNDgxLjFMMCA0NDhjMC00NC4yIDM1LjgtODAgODAtODB6TTM5My4zIDUxMmM0LjMtOS44IDYuNy0yMC42IDYuNy0zMmwwLTQ4YzAtMTguNC0zLjUtMzYtOS44LTUyLjIgMTIuMi03LjUgMjYuNS0xMS44IDQxLjgtMTEuOCA0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDMzLjFjMCAxNy0xMy44IDMwLjktMzAuOSAzMC45bC04Ny44IDB6Il19LHVTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy12aWV3ZmluZGVyIixpY29uOls1NzYsNTEyLFtdLCJlNTk1IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyYzAtOC44IDcuMi0xNiAxNi0xNmw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzE0OS4zIDAgMTM2IDBMNjQgMHpNNDQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNDQwIDB6TTQ4IDM3NmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDM2Mi43IDAgMzc2bDAgNzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNzJ6bTUyOCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNzJjMCA4LjgtNy4yIDE2LTE2IDE2bC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC03MnpNMjg4IDIxNmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptMCA0MGMtNTMgMC05NiA0My05NiA5NmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC01My00My05Ni05Ni05NnptMTkyLTY0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTE2OCAyNzIuM2MtNDkuMyA0LjEtODggNDUuMy04OCA5NS43bDAgMTAuN2MwIDExLjggOS42IDIxLjMgMjEuMyAyMS4zbDQ2LjggMGMtMi43LTcuNS00LjEtMTUuNi00LjEtMjRsMC0yNGMwLTI5LjUgOC44LTU2LjkgMjQtNzkuN3pNNDI3LjkgNDAwbDQ2LjggMGMxMS44IDAgMjEuMy05LjYgMjEuMy0yMS4zbDAtMTAuN2MwLTUwLjMtMzguNy05MS42LTg4LTk1LjcgMTUuMiAyMi44IDI0IDUwLjIgMjQgNzkuN2wwIDI0YzAgOC40LTEuNCAxNi41LTQuMSAyNHpNMTkyIDE5MmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSxwU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLW9uIixpY29uOls0NDgsNTEyLFtdLCJlNGRkIiwiTTI0OC04YzAtMTMuMy0xMC43LTI0LTI0LTI0UzIwMC0yMS4zIDIwMC04bDAgNjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTY0ek0xNDUuMyAyMDhsMTU3LjUgMGM2LjcgMCAxMi42IDQuMSAxNSAxMC40bDI2LjEgNjkuNi0yMzkuNiAwIDI2LjEtNjkuNmMyLjMtNi4yIDguMy0xMC40IDE1LTEwLjR6TTM0IDI5Mi44bC0xLjMgMy40QzEzLjIgMzA3LjEgMCAzMjggMCAzNTJMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDI4OCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTI0LTEzLjItNDQuOS0zMi44LTU1LjlsLTEuMy0zLjQtMzYuMy05Ni45Yy0xMS43LTMxLjItNDEuNi01MS45LTc0LjktNTEuOWwtMTU3LjUgMGMtMzMuMyAwLTYzLjIgMjAuNy03NC45IDUxLjlMMzQgMjkyLjh6TTk2IDMzNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTIyNCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek03IDdDLTIuMyAxNi40LTIuMyAzMS42IDcgNDFMNTUgODljOS40IDkuNCAyNC42IDkuNCAzMy45IDBTOTguMyA2NC40IDg5IDU1TDQxIDdDMzEuNi0yLjMgMTYuNC0yLjMgNyA3ek00MDcgN0wzNTkgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOVM0MTYuNC0yLjMgNDA3IDd6Il19LGhTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbGVpZ2giLGljb246WzY0MCw1MTIsW10sImY3Y2MiLCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0UzQ2LjMgOTYgNjQgOTZsMCAxNjBjMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgNjkuNS03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDUwNCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTgwIDAgMC02NGM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTQ4LjkgMGMtNDguNSAwLTkyLjgtMjcuNC0xMTQuNS03MC44bC0yNS4yLTUwLjVDMjM3LjcgNTkuNCAxOTMuNCAzMiAxNDQuOSAzMkw2NCAzMnpNNDMyIDQxNmwtMjU2IDAgMC02NCAyNTYgMCAwIDY0eiJdfSxtU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtYmJlbGwiLGljb246WzY0MCw1MTIsW10sImY0NGIiLCJNOTYgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTIgMjU2IDAgMC0xMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDE2IDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwIDAgMTZjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0xMTItMjU2IDAgMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC0xNi0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwLTE2eiJdfSxZc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFieS1jYXJyaWFnZSIsaWNvbjpbNTEyLDUxMixbImNhcnJpYWdlLWJhYnkiXSwiZjc3ZCIsIk02NCAyMDhsMCA4MGMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xMTIgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA1Ni0zMzYgMHptLjItNDhsMjIzLjggMCAwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkwyMzIgMEMxNDEuOSAwIDY4LjQgNzAuOSA2NC4yIDE2MHpNMTYwIDQ2NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem0yODggMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSxnU3Q9WXNlLHhTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXdpLWJpcmQiLGljb246WzU3Niw1MTIsW10sImY1MzUiLCJNMjkxLjIgMzg4LjRjMzEuMi0xOC44IDY0LjctMzYuNCAxMDEuMS0zNi40bDU1LjcgMGM0LjYgMCA5LjEtLjIgMTMuNi0uN2w4NS4zIDEyMS45YzQgNS43IDExLjMgOC4yIDE3LjkgNi4xUzU3NiA0NzEgNTc2IDQ2NGwwLTI0MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtNTUuNyAwQzM1NS45IDk2IDMyMi40IDc4LjQgMjkxLjIgNTkuNiAyNjIuMyA0Mi4xIDIyOC4zIDMyIDE5MiAzMiA4NiAzMiAwIDExOCAwIDIyNCAwIDI5NS4xIDM4LjYgMzU3LjEgOTYgMzkwLjNMOTYgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00NmMxNS4zIDMuOSAzMS40IDYgNDggNiA1LjQgMCAxMC43LS4yIDE2LS43bDAgNDAuN2MwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTAuOWMxMi40LTQuNCAyNC4yLTEwIDM1LjItMTYuN3pNNDQ4IDIwMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LFpzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci14bWFyayIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLXRpbWVzIl0sImYyNzMiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yOTEuOSAyMjAuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTMzLjkgMzMuOS0zMy45LTMzLjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45LTMzLjkgMzMuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOSAzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMy45LTMzLjkgMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45eiJdfSxiU3Q9WnNlLFhzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG93biIsaWNvbjpbNTEyLDUxMixbNjE0NjYsImFycm93LWFsdC1jaXJjbGUtZG93biJdLCJmMzU4IiwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMjQ0LjcgMzg3LjNsLTEwNC0xMDRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjRzOC4zLTkuOSAxNC44LTkuOWw1NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDU2IDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTEwNCAxMDRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAweiJdfSx2U3Q9WHNlLHlTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLW1lZGljYWwiLGljb246WzM4NCw1MTIsW10sImY0NzciLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE2MCAyODBsMCA0MC00MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsNDAgMCAwIDQwYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTQwIDQwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC00MCAwIDAtNDBjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LGlzPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InhtYXJrIixpY29uOlszODQsNTEyLFsxMjg0NzMsMTAwMDUsMTAwMDYsMTAwNjAsMjE1LCJjbG9zZSIsIm11bHRpcGx5IiwicmVtb3ZlIiwidGltZXMiXSwiZjAwZCIsIk01NS4xIDczLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDE0Ny4yIDI1NiA5LjkgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyLjUgMzAxLjMgMzI5LjkgNDM4LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wyMzcuOCAyNTYgMzc1LjEgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyLjUgMjEwLjcgNTUuMSA3My40eiJdfSx3U3Q9aXMsTVN0PWlzLHpTdD1pcyxrU3Q9aXMsUXNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoYXBlcyIsaWNvbjpbNTEyLDUxMixbInRyaWFuZ2xlLWNpcmNsZS1zcXVhcmUiXSwiZjYxZiIsIk0yNTYgMGMxMS4yIDAgMjEuNyA1LjkgMjcuNCAxNS41bDk2IDE2MGM1LjkgOS45IDYuMSAyMi4yIC40IDMyLjJTMzYzLjUgMjI0IDM1MiAyMjRsLTE5MiAwYy0xMS41IDAtMjIuMi02LjItMjcuOC0xNi4ycy01LjUtMjIuMyAuNC0zMi4ybDk2LTE2MEMyMzQuMyA1LjkgMjQ0LjggMCAyNTYgMHpNMTI4IDI3MmExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6bTIwMCAxNmwxMTIgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDExMmMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMTEyIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtMTEyYzAtMjIuMSAxNy45LTQwIDQwLTQweiJdfSxTU3Q9UXNlLENTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLW9uZSIsaWNvbjpbNDQ4LDUxMixbOTg1Nl0sImY1MjUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LExTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NrLW9wZW4iLGljb246WzU3Niw1MTIsW10sImYzYzEiLCJNMzg0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhTMzIwIDI1LjMgMzIwIDk2bDAgNjQtMTYwIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwIDAtNjR6Il19LFRTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXBwZXItaG90IixpY29uOls1NzYsNTEyLFsxMjc3OThdLCJmODE2IiwiTTU0NSA2NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQ3OC45IDYzLjJDNDUyLjMgNDMuNiA0MTkuNSAzMiAzODQgMzIgMzQ4LjkgMzIgMzE2LjUgNDMuMyAyOTAuMSA2Mi40IDI3NC4xIDc0LjEgMjg0LjIgOTYgMzA0IDk2bDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCAxOS44IDIxLjkgMjkuOSAzMy42IDEzLjkgMTkuMS0yNi40IDMwLjQtNTguOCAzMC40LTkzLjkgMC0zNS41LTExLjYtNjguMy0zMS4yLTk0LjlMNTQ1IDY1ek0yNzAgMTM1LjVsLTE1OS42IDIyOEMxMDEuMyAzNzYuNCA4Ni43IDM4NCA3MSAzODRsLTcgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyNy4xIDBjNjUuNyAwIDEyOS43LTIwLjIgMTgzLjUtNTcuOEw0NDAuNSAzMDYuMUM0MzUgMjk1LjkgNDMyIDI4NC4yIDQzMiAyNzJsLTU2IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtNTZjLTEyLjIgMC0yMy45LTMtMzQtOC41eiJdfSxLc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJvcGxldC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbInRpbnQtc2xhc2giXSwiZjVjNyIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ2My42IDM5Ny44YzEwLjUtMjMuOCAxNi40LTUwLjEgMTYuNC03Ny44IDAtOTEuMi0xMzAuMi0yNzQuMS0xNjYuNi0zMjMuNS01LjktOC0xNS4yLTEyLjUtMjUuMi0xMi41bC0uNCAwYy0xMCAwLTE5LjMgNC41LTI1LjIgMTIuNS0xNS42IDIxLjItNDguNSA2Ni45LTgwLjkgMTE5LjRMNDEtMjQuOXptOTIgMjI3LjdjLTIxLjYgNDMuOC0zNyA4NS45LTM3IDExNy4yIDAgMTA2IDg2IDE5MiAxOTIgMTkyIDQzLjQgMCA4My40LTE0LjQgMTE1LjUtMzguNkwxMzMgMjAyLjh6Il19LF9TdD1Lc2UsSnNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyb3BsZXQiLGljb246WzM4NCw1MTIsWzEyODE2NywidGludCJdLCJmMDQzIiwiTTE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwIDAgMjI4LjggMTMwLjIgNDUuOSAxNjYuNi0zLjUgMTcyLjUtMTEuNSAxODEuOC0xNiAxOTEuOC0xNmwuNCAwYzEwIDAgMTkuMyA0LjUgMjUuMiAxMi41IDM2LjQgNDkuNCAxNjYuNiAyMzIuMyAxNjYuNiAzMjMuNSAwIDEwNi04NiAxOTItMTkyIDE5MnpNMTEyIDMxMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDc1LjEgNjAuOSAxMzYgMTM2IDEzNiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNDguNiAwLTg4LTM5LjQtODgtODh6Il19LEFTdD1Kc2UsSlY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI4NDQxLDEyODQ2Miw2MTY4NiwiZmlsZS1hbHQiLCJmaWxlLXRleHQiXSwiZjE1YyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTIwIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSwkU3Q9SlYsRFN0PUpWLEVTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50cy1kb2xsYXIiLGljb246WzU3Niw1MTIsW10sImY2NTMiLCJNMTkyIDMyMGMxMDYgMCAxOTItNzguOCAxOTItMTc2UzI5OC0zMiAxOTItMzIgMCA0Ni44IDAgMTQ0YzAgMzkuNiAxNC4zIDc2LjIgMzguNCAxMDUuNkwyLjggMzE2LjhDLTIuMSAzMjYuMS0uNCAzMzcuNSA3IDM0NXMxOC45IDkuMiAyOC4yIDQuMkwxMTYuOCAzMDZjMjMuMSA5IDQ4LjUgMTQgNzUuMiAxNHptMy4yIDQ4YzE2LjQgODEuOSA5NC43IDE0NCAxODguOCAxNDQgMjYuNyAwIDUyLjEtNSA3NS4yLTE0bDgxLjYgNDMuMmM5LjMgNC45IDIwLjcgMy4yIDI4LjItNC4yczkuMi0xOC45IDQuMi0yOC4ybC0zNS42LTY3LjJjMjQuMS0yOS40IDM4LjQtNjYgMzguNC0xMDUuNiAwLTgyLjQtNjEuNy0xNTEuNS0xNDUtMTcwLjctMTEuNSAxMTUuOC0xMTUuOCAyMDEuMi0yMzUuOCAyMDIuN3pNMTk2IDMyYzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Yy0yNS4zLTQuMi00My45LTI2LjEtNDMuOS01MS44IDAtMjguOCAyMy4yLTUyLjIgNTItNTIuNWwwLTRjMC0xMSA5LTIwIDIwLTIweiJdfSxlbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1sb2NhdGlvbiIsaWNvbjpbNTEyLDUxMixbInNlYXJjaC1sb2NhdGlvbiJdLCJmNjg5IiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjg4IDE3NmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDQ4LjggNDYuNSAxMTEuNiA2OC42IDEzOC42IDYgNy4zIDE2LjggNy4zIDIyLjcgMCAyMi4xLTI3IDY4LjYtODkuOCA2OC42LTEzOC42em0tMTEyIDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sTlN0PWVuZSxCVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWludm9pY2UiLGljb246WzM4NCw1MTIsW10sImY1NzAiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnpNNjQgMzg0bDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiA0MTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek04OCA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM3NC43IDY0IDg4IDY0em0wIDk2bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFBTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW50YWdvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTc5MCIsIk0zMTYuNC0zLjFjLTE2LjgtMTIuMi0zOS42LTEyLjItNTYuNCAwTDM1LjMgMTYwLjJjLTE2LjggMTIuMi0yMy45IDMzLjktMTcuNCA1My43bDg1LjggMjY0LjFjNi40IDE5LjggMjQuOSAzMy4yIDQ1LjcgMzMuMmwyNzcuNyAwYzIwLjggMCAzOS4yLTEzLjQgNDUuNy0zMy4ybDg1LjgtMjY0LjFjNi40LTE5LjgtLjYtNDEuNC0xNy40LTUzLjdMMzE2LjQtMy4xeiJdfSxJU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwdWJsaWNhbiIsaWNvbjpbNjQwLDUxMixbXSwiZjc1ZSIsIk0wIDE5MkMwIDEwMy42IDcxLjYgMzIgMTYwIDMybDIyNCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwbDAgNjQtNTQ0IDAgMC02NHptMTUyLTMyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTIzMiAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTI4MCAxNjBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTI4IDI4OGw0MTYgMCAwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ4YzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwbDAtNDgtMzIgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0LTE5MiAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwIDEyOCAweiJdfSx0bmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hvcCIsaWNvbjpbNTc2LDUxMixbInN0b3JlLWFsdCJdLCJmNTRmIiwiTTIxLjUgMTgxLjFMNzguMyA2Ny40Qzg5LjIgNDUuNyAxMTEuMyAzMiAxMzUuNiAzMmwzMDQuOSAwYzI0LjIgMCA0Ni40IDEzLjcgNTcuMiAzNS40bDU2LjggMTEzLjdjMy42IDcuMiA1LjUgMTUuMSA1LjUgMjMuMiAwIDI3LjMtMjEuMiA0OS43LTQ4IDUxLjZMNTEyIDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi05NiAwIDAgMTc2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xOTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNzYuMWMtMjYuOC0xLjktNDgtMjQuMy00OC01MS42IDAtOCAxLjktMTYgNS41LTIzLjJ6TTEyOCAyNTZsMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTExMi0xNjAgMHoiXX0sRlN0PXRuZSxlVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxtIixpY29uOls0NDgsNTEyLFsxMjc5MDIsNjIzNjgsImZpbG0tYWx0IiwiZmlsbS1zaW1wbGUiXSwiZjAwOCIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNNDggMzY4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMwNC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek00OCAyNDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMzA0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTQ4IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2ek0zNTIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHoiXX0sT1N0PWVVLEJTdD1lVSxSU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlNGQ0IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTc0LjkgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMiAwIDQgLjIgNS45IC41IDYtMjMuNiAxNi4zLTQ1LjQgMzAuMS02NC41bC00IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDRjMjcuNS0xOS44IDYwLjMtMzIuNCA5Ni0zNS40TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTIyLjYtMTQ0bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkw0NTQuNiA0MDB6Il19LEhTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50cyIsaWNvbjpbNTc2LDUxMixbMTI4NDkwLDYxNjcwXSwiZjA4NiIsIk0zODQgMTQ0YzAgOTcuMi04NiAxNzYtMTkyIDE3Ni0yNi43IDAtNTIuMS01LTc1LjItMTRMMzUuMiAzNDkuMmMtOS4zIDQuOS0yMC43IDMuMi0yOC4yLTQuMnMtOS4yLTE4LjktNC4yLTI4LjJsMzUuNi02Ny4yQzE0LjMgMjIwLjIgMCAxODMuNiAwIDE0NCAwIDQ2LjggODYtMzIgMTkyLTMyUzM4NCA0Ni44IDM4NCAxNDR6bTAgMzY4Yy05NC4xIDAtMTcyLjQtNjIuMS0xODguOC0xNDQgMTIwLTEuNSAyMjQuMy04Ni45IDIzNS44LTIwMi43IDgzLjMgMTkuMiAxNDUgODguMyAxNDUgMTcwLjcgMCAzOS42LTE0LjMgNzYuMi0zOC40IDEwNS42bDM1LjYgNjcuMmM0LjkgOS4zIDMuMiAyMC43LTQuMiAyOC4ycy0xOC45IDkuMi0yOC4yIDQuMkw0NTkuMiA0OThjLTIzLjEgOS00OC41IDE0LTc1LjIgMTR6Il19LHFTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWdzIixpY29uOls1NzYsNTEyLFtdLCJmMDJjIiwiTTQwMS4yIDM5LjFMNTQ5LjQgMTg5LjRjMjcuNyAyOC4xIDI3LjcgNzMuMSAwIDEwMS4yTDM5MyA0NDguOWMtOS4zIDkuNC0yNC41IDkuNS0zMy45IC4ycy05LjUtMjQuNS0uMi0zMy45TDUxNS4zIDI1Ni44YzkuMi05LjMgOS4yLTI0LjQgMC0zMy43TDM2NyA3Mi45Yy05LjMtOS40LTkuMi0yNC42IC4yLTMzLjlzMjQuNi05LjIgMzMuOSAuMnpNMzIuMSAyMjkuNUwzMi4xIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDEzMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdsMTQ0IDE0NGMyNSAyNSAyNSA2NS41IDAgOTAuNUwyODUuNCA0MTguN2MtMjUgMjUtNjUuNSAyNS05MC41IDBsLTE0NC0xNDRjLTEyLTEyLTE4LjctMjguMy0xOC43LTQ1LjN6bTE0NC04NS41YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LFZTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJndW4iLGljb246WzU3Niw1MTIsW10sImUxOWIiLCJNNTI4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOC00NDggMEMxNC4zIDY0IDAgNzguMyAwIDk2TDAgMjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwIDBjMjAuOCAwIDM2LjEgMTkuNiAzMSAzOS44TDMzIDQ0MC4yYy0yLjQgOS42LS4yIDE5LjcgNS44IDI3LjVTNTQuMSA0ODAgNjQgNDgwbDk2IDBjMTQuNyAwIDI3LjUtMTAgMzEtMjQuMkwyMTcgMzUyIDMyMS40IDM1MmMyMy43IDAgNDQuOC0xNC45IDUyLjctMzcuMmwyNi43LTc0LjggMzEuMSAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40bDIyLjYtMjIuNiA2Ni43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTh6TTMyMS40IDMwNGwtOTIuNSAwIDE2LTY0IDEwNSAwLTIxIDU4LjdjLTEuMSAzLjItNC4yIDUuMy03LjUgNS4zek04MCAxMjhsMzg0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMODAgMTYwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2eiJdfSxTNz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hlY2siLGljb246WzUxMiw1MTIsWzYxNTMzLCJjaGVjay1jaXJjbGUiXSwiZjA1OCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnpNMzc0IDE0NS43Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM0wyMjEuMSAzMTUuMiAxNjkgMjYzLjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjNSA1IDExLjggNy41IDE4LjggN3MxMy40LTQuMSAxNy41LTkuOEwzNzkuMyAxNzkuMmM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0sVVN0PVM3LGFuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1jYXJkLWNsaXAiLGljb246WzU3Niw1MTIsWyJpZC1jYXJkLWFsdCJdLCJmNDdmIiwiTTI1Ni0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjQtMTI4IDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMzJsMTEyIDAgMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTMyIDExMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnpNMTc2IDQwMGMwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHpNMjg4IDI4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnoiXX0salN0PWFuZSxXU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9vbiIsaWNvbjpbNTEyLDUxMixbMTI3NzY5LDkyMTRdLCJmMTg2IiwiTTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NlMxMTQuNiA1MTIgMjU2IDUxMmM2OC44IDAgMTMxLjMtMjcuMiAxNzcuMy03MS40IDcuMy03IDkuNC0xNy45IDUuMy0yNy4xcy0xMy43LTE0LjktMjMuOC0xNC4xYy00LjkgLjQtOS44IC42LTE0LjggLjYtMTAxLjYgMC0xODQtODIuNC0xODQtMTg0IDAtNzIuMSA0MS41LTEzNC42IDEwMi4xLTE2NC44IDkuMS00LjUgMTQuMy0xNC4zIDEzLjEtMjQuNFMzMjIuNiA4LjUgMzEyLjcgNi4zQzI5NC40IDIuMiAyNzUuNCAwIDI1NiAweiJdfSxHU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib2lsLXdlbGwiLGljb246WzU3Niw1MTIsW10sImU1MzIiLCJNNTI4LjMgNjEuM2MtMTEuNC00Mi43LTU1LjMtNjgtOTgtNTYuNkw0MTQuOSA4LjhDMzk3LjggMTMuNCAzODcuNyAzMSAzOTIuMyA0OGwyNC41IDkxLjQtMTA4LjIgMjguMS02LjMtMTguMUMyOTcuNyAxMzYuNiAyODUuNiAxMjggMjcyIDEyOHMtMjUuNyA4LjYtMzAuMiAyMS40bC0xMy42IDM5LTEzMi4yIDM0LjMgMC0zOC42YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjY0LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEzNy4zIDAtNjEuNC0xNzUuNC02Mi4yIDE2LjEgMjIuMSA2My4yLTY2LjYgMCAxOS45LTU2LjktNzQuNiAxOS4zLTQ2LjcgMTMzLjUtNDEuMyAwIDAtMTU5LjIgMzM3LjQtODcuNSAyNS4yIDk0YzQuNiAxNy4xIDIyLjEgMjcuMiAzOS4yIDIyLjZsMTUuNS00LjFjNDIuNy0xMS40IDY4LTU1LjMgNTYuNi05OEw1MjguMyA2MS4zek0yMDUuMSA0NDhsMTYuOC00OCAxMDAuMiAwIDE2LjggNDgtMTMzLjggMHoiXX0scm5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhY2hvZ3JhcGgtZGlnaXRhbCIsaWNvbjpbNTc2LDUxMixbImRpZ2l0YWwtdGFjaG9ncmFwaCJdLCJmNTY2IiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTY0IDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek04OCAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTM2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggMzUyem0yNTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6TTQ5NiAxOTJhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek04OCAzMTJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0xMDQtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptNTYgMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxZU3Q9cm5lLGluZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXQiLGljb246WzQ0OCw1MTIsWyJ0YWJsZXQtYW5kcm9pZCJdLCJmM2ZiIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTE4NCA0MDBsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sWlN0PWluZSxmNz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWJsZS1zaWduIixpY29uOls0NDgsNTEyLFs4MzgxLCJyb3VibGUiLCJydWIiLCJydWJsZSJdLCJmMTU4IiwiTTExMiAzMkM5NC4zIDMyIDgwIDQ2LjMgODAgNjRsMCAyMDgtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNDgtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDE1MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNTIgMCAwLTQ4IDExMiAwYzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0UzMzNS41IDMyIDI1NiAzMkwxMTIgMzJ6TTI1NiAyNTZsLTExMiAwIDAtMTYwIDExMiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgweiJdfSxYU3Q9ZjcsUVN0PWY3LEtTdD1mNyxKU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvc2VkLWNhcHRpb25pbmciLGljb246WzUxMiw1MTIsW10sImYyMGEiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMTUyIDgwbDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTgwYzAtNC40IDMuNi04IDgtOHptMTY4IDhjMC00LjQgMy42LTggOC04bDMyIDBjNC40IDAgOCAzLjYgOCA4IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTMyIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgODBjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzIgMGMzMC45IDAgNTYtMjUuMSA1Ni01NiAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTgweiJdfSxlQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuIixpY29uOls1MTIsNTEyLFsxMjgzOTRdLCJmMzA0IiwiTTM1Mi45IDIxLjJMMzA4IDY2LjEgNDQ1LjkgMjA0IDQ5MC44IDE1OS4xQzUwNC40IDE0NS42IDUxMiAxMjcuMiA1MTIgMTA4cy03LjYtMzcuNi0yMS4yLTUxLjFMNDU1LjEgMjEuMkM0NDEuNiA3LjYgNDIzLjIgMCA0MDQgMHMtMzcuNiA3LjYtNTEuMSAyMS4yek0yNzQuMSAxMDBMNTguOSAzMTUuMWMtMTAuNyAxMC43LTE4LjUgMjQuMS0yMi42IDM4LjdMLjkgNDgxLjZjLTIuMyA4LjMgMCAxNy4zIDYuMiAyMy40czE1LjEgOC41IDIzLjQgNi4ybDEyNy44LTM1LjVjMTQuNi00LjEgMjcuOS0xMS44IDM4LjctMjIuNkw0MTIgMjM3LjkgMjc0LjEgMTAweiJdfSx0Q3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUiLGljb246WzU3Niw1MTIsW10sImYwNzIiLCJNNTIwIDIwMGMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1NmwtMTI3LjMgMC0xNTkuMiAxNzMuNmMtNi4xIDYuNi0xNC42IDEwLjQtMjMuNiAxMC40bC00My43IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDU0LjMtMTYyLjktOTkuNyAwLTUyLjggNjZjLTMgMy44LTcuNiA2LTEyLjUgNmwtMTkuOCAwYy0xMC40IDAtMTgtOS44LTE1LjUtMTkuOUwzMiAyNTYgNSAxNDcuOUMyLjQgMTM3LjggMTAuMSAxMjggMjAuNSAxMjhsMTkuOCAwYzQuOSAwIDkuNSAyLjIgMTIuNSA2bDUyLjggNjYgOTkuNyAwLTU0LjMtMTYyLjlDMTQ3LjYgMjYuNyAxNTUuMyAxNiAxNjYuMiAxNmw0My43IDBjOSAwIDE3LjUgMy44IDIzLjYgMTAuNEwzOTIuNyAyMDAgNTIwIDIwMHoiXX0sYUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImltYWdlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjMwMiIsIk05NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzIwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDk2IDk2ek0yNCAxMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyOTZjMCA4LjggNy4yIDE2IDE2IDE2bDM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTE2OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE5Ni41IDExLjVjLTQuNC03LjEtMTIuMS0xMS41LTIwLjUtMTEuNXMtMTYuMSA0LjQtMjAuNSAxMS41bC01Ni4zIDkyLjEtMjQuNS0zMC42Yy00LjYtNS43LTExLjQtOS0xOC43LTlzLTE0LjIgMy4zLTE4LjcgOWwtNjQgODBjLTUuOCA3LjItNi45IDE3LjEtMi45IDI1LjRTMTc0LjggMzUyIDE4NCAzNTJsMjcyIDBjOC43IDAgMTYuNy00LjcgMjAuOS0xMi4zczQuMS0xNi44LS41LTI0LjNsLTg4LTE0NHoiXX0sb25lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS1zY3JlZW4iLGljb246WzM4NCw1MTIsWyJtb2JpbGUtYW5kcm9pZC1hbHQiXSwiZjNjZiIsIk0xNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwTDMwNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMTYgNjR6TTEyOCA0NDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTMwNCA2NGwtMjI0IDAgMCAzMDQgMjI0IDAgMC0zMDR6Il19LHJDdD1vbmUsaUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imd1YXJhbmktc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTE5YSIsIk0xOTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MS41QzczLjMgNzcuMyAwIDE1OC4xIDAgMjU2UzczLjMgNDM0LjcgMTY4IDQ0Ni41bDAgNDEuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDEuNWM5NC43LTExLjggMTY4LTkyLjYgMTY4LTE5MC41IDAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMzYgMCAwLTkzLjhjMjUuMyA0LjggNDcuOSAxNyA2NS42IDM0LjMgMTIuNiAxMi40IDMyLjkgMTIuMiA0NS4zLS40czEyLjItMzIuOS0uNS00NS4zQzI5Ny4yIDkwLjIgMjU4LjggNzAuOCAyMTYgNjUuNUwyMTYgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTE2OCAxMzAuMmwwIDI1MS41QzEwOC44IDM3MC41IDY0IDMxOC41IDY0IDI1NnM0NC44LTExNC41IDEwNC0xMjUuOHptNDggMjUxLjVsMC05My44IDEwMCAwYy0xMi4zIDQ3LjYtNTEuMiA4NC41LTEwMCA5My44eiJdfSxzbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFnLXNob3BwaW5nIixpY29uOls0NDgsNTEyLFsic2hvcHBpbmctYmFnIl0sImYyOTAiLCJNMTYwIDgwYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCA0OC0xMjggMCAwLTQ4em0tNDggNDhsLTY0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTIwOGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMCAwLTQ4YzAtNjEuOS01MC4xLTExMi0xMTItMTEyUzExMiAxOC4xIDExMiA4MGwwIDQ4em0yNCA0OGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTE1MiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxvQ3Q9c25lLG5uZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcmlnaHQiLGljb246WzUxMiw1MTIsWzYxODM4LCJhcnJvdy1hbHQtY2lyY2xlLXJpZ2h0Il0sImYzNWEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHptMzg3LjMgMTEuM2wtMTA0IDEwNGMtNC42IDQuNi0xMS41IDUuOS0xNy40IDMuNVMyNTYgMzY2LjUgMjU2IDM2MGwwLTU2LTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTU2YzAtNi41IDMuOS0xMi4zIDkuOS0xNC44czEyLjktMS4xIDE3LjQgMy41bDEwNCAxMDRjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZ6Il19LHNDdD1ubmUsbG5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lLXZvbHVtZSIsaWNvbjpbNTc2LDUxMixbInZvbHVtZS1jb250cm9sLXBob25lIl0sImYyYTAiLCJNMzQ0LTMyYzEyOC4xIDAgMjMyIDEwMy45IDIzMiAyMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTggMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMzIwIDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0IDc1LjEgMCAxMzYgNjAuOSAxMzYgMTM2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNi0zOS40LTg4LTg4LTg4LTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xNDQuMSAxLjRjMTkuNy01LjQgNDAuMyA0LjcgNDguMSAyMy41bDQwLjUgOTcuM2M2LjkgMTYuNSAyLjEgMzUuNi0xMS44IDQ3bC00NC4xIDM2LjFjMzIuNSA3MS42IDg5IDEzMCAxNTkuMyAxNjQuOUwzNzQuNyAzMjNjMTEuMy0xMy45IDMwLjQtMTguNiA0Ny0xMS44TDUxOSAzNTEuOGMxOC44IDcuOCAyOC45IDI4LjQgMjMuNSA0OC4xbC0xLjUgNS41QzUyMy40IDQ3MC4xIDQ2MC45IDUyNS4zIDM4NC42IDUwOS4yIDIwOS42IDQ3Mi4xIDcxLjkgMzM0LjQgMzQuOCAxNTkuNCAxOC43IDgzLjEgNzMuOSAyMC42IDEzOC41IDIuOWw1LjUtMS41eiJdfSxuQ3Q9bG5lLGxDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjdWJlcyIsaWNvbjpbNTEyLDUxMixbXSwiZjFiMyIsIk0yODQtMS4zYy0xNy4zLTEwLTM4LjctMTAtNTYgMEwxNDMuOCA0Ny4zYy0xNy4zIDEwLTI4IDI4LjUtMjggNDguNWwwIDEwMS45LTg4LjMgNTFjLTE3LjMgMTAtMjggMjguNS0yOCA0OC41bDAgOTcuM2MwIDIwIDEwLjcgMzguNSAyOCA0OC41bDg0LjMgNDguNmMxNy4zIDEwIDM4LjcgMTAgNTYgMGw4OC4zLTUxIDg4LjMgNTFjMTcuMyAxMCAzOC43IDEwIDU2IDBMNDg0LjUgNDQzYzE3LjMtMTAgMjgtMjguNSAyOC00OC41bDAtOTcuM2MwLTIwLTEwLjctMzguNS0yOC00OC41bC04OC4zLTUxIDAtMTAxLjljMC0yMC0xMC43LTM4LjUtMjgtNDguNUwyODQtMS4zek0yMzIgMjkyLjZsMCAxMDYuNS04OC4zIDUxYy0xLjIgLjctMi42IDEuMS00IDEuMWwwLTEwNS4zIDkyLjMtNTMuM3ptMjMxLjQgLjZjLjcgMS4yIDEuMSAyLjYgMS4xIDRsMCA5Ny4zYzAgMi45LTEuNSA1LjUtNCA2LjlsLTg0LjMgNDguNmMtMS4yIC43LTIuNiAxLjEtNCAxLjFsMC0xMDUuMyA5MS4yLTUyLjZ6TTM0OC4zIDk1LjhsMCAxMDEuOS05Mi4zIDUzLjMgMC0xMDYuNSA5MS4yLTUyLjZjLjcgMS4yIDEuMSAyLjYgMS4xIDR6Il19LGNDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaG9uZSIsaWNvbjpbNTEyLDUxMixbMTI4MjIyLDEyODM3OV0sImYwOTUiLCJNMTYwLjIgMjVDMTUyLjMgNi4xIDEzMS43LTMuOSAxMTIuMSAxLjRsLTUuNSAxLjVjLTY0LjYgMTcuNi0xMTkuOCA4MC4yLTEwMy43IDE1Ni40IDM3LjEgMTc1IDE3NC44IDMxMi43IDM0OS44IDM0OS44IDc2LjMgMTYuMiAxMzguOC0zOS4xIDE1Ni40LTEwMy43bDEuNS01LjVjNS40LTE5LjctNC43LTQwLjMtMjMuNS00OC4xbC05Ny4zLTQwLjVjLTE2LjUtNi45LTM1LjYtMi4xLTQ3IDExLjhsLTM4LjYgNDcuMkMyMzMuOSAzMzUuNCAxNzcuMyAyNzcgMTQ0LjggMjA1LjNMMTg5IDE2OS4zYzEzLjktMTEuMyAxOC42LTMwLjQgMTEuOC00N0wxNjAuMiAyNXoiXX0sZEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvcmlpLWdhdGUiLGljb246WzQ0OCw1MTIsWzk5NjFdLCJmNmExIiwiTTAgOTZMMCAyOC41QzAgMjEuNiA1LjYgMTYgMTIuNSAxNiAxNC44IDE2IDE3IDE2LjYgMTkgMTcuOEw1OCA0MS4yQzgyLjkgNTYuMSAxMTEuMyA2NCAxNDAuMyA2NGwxNjcuNCAwYzI5IDAgNTcuNS03LjkgODIuMy0yMi44bDM5LTIzLjRjMS45LTEuMiA0LjItMS44IDYuNC0xLjggNi45IDAgMTIuNSA1LjYgMTIuNSAxMi41TDQ0OCA5NmMwIDM1LjMtMjguNyA2NC02NCA2NGwwIDY0IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOTItMTkyIDAgMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOTItMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNjRDMjguNyAxNjAgMCAxMzEuMyAwIDk2ek0xMjggMjI0bDY0IDAgMC02NC02NCAwIDAgNjR6bTEyOCAwbDY0IDAgMC02NC02NCAwIDAgNjR6Il19LGZDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWNvbiIsaWNvbjpbNTc2LDUxMixbMTI5MzYzXSwiZjdlNSIsIk01NTcgOTYuN2MxNC40IDE0LjQgMTIuNCAzOC40LTQuMyA1MC4ybC02NC42IDQ1LjdjLTQzLjcgMzAuOS03OS4yIDcxLjktMTAzLjQgMTE5LjZsLTI1LjMgNDkuOGMtMjUuMSA0OS4zLTYyLjEgOTEuNS0xMDcuOCAxMjIuNmwtNzQuMSA1MC42Yy0xMy4xIDguOS0zMC43IDcuMy00MS44LTMuOWwtNDQuOS00NC45IDg2LjUtNjYuNWM0Mi4zLTMyLjUgNzYuNy03NC4zIDEwMC42LTEyMmwyNC41LTQ5LjFjMjQuNS00OSA2MS44LTkwLjYgMTA3LjktMTIwLjJsMTA4LjctNjkuOSAzOCAzOHpNNDg0LjIgMjMuOUwzODQuMyA4OC4yYy01My40IDM0LjMtOTYuNSA4Mi40LTEyNC45IDEzOS4xbC0yNC41IDQ5LjFjLTIwLjYgNDEuMy01MC4zIDc3LjMtODYuOSAxMDUuNGwtOTEuNCA3MC4zLTM2LjktMzYuOWMtMTQuNC0xNC40LTEyLjQtMzguNCA0LjMtNTAuMmw2NC42LTQ1LjdjNDMuNy0zMC45IDc5LjItNzEuOSAxMDMuNC0xMTkuNmwyNS4zLTQ5LjhDMjQyLjMgMTAwLjggMjc5LjMgNTguNiAzMjUgMjcuNGw3NC4xLTUwLjZjMTMuMS04LjkgMzAuNi03LjMgNDEuOCAzLjlsNDMuMyA0My4zeiJdfSx1Q3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWZhbGxpbmctYnVyc3QiLGljb246WzU3Niw1MTIsW10sImU1NDciLCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA1LjRjMCA1NS4yLTIzLjcgMTA3LTYzLjkgMTQzLjFsNjIuOSA3NS41IDg5IDBjMTUuMSAwIDI5LjMgNy4xIDM4LjQgMTkuMmw0My4yIDU3LjZjMTAuNiAxNC4xIDcuNyAzNC4yLTYuNCA0NC44cy0zNC4yIDcuNy00NC44LTYuNEwzNjggMzIwIDI2My4yIDMyMCAzNzYuOCA0NTkuOGMxMS4xIDEzLjcgOS4xIDMzLjktNC43IDQ1cy0zMy45IDkuMS00NS00LjdMMTM3LjQgMjY2LjZjLTYuMSAxNS05LjQgMzEuMy05LjQgNDhsMCA2OS40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjkuNGMwLTY3LjQgMzUuNC0xMjkuOSA5My4yLTE2NC42bDQuNi0yLjhDMjAwLjQgMTI0IDIyNCA4Mi40IDIyNCAzNy40bDAtNS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xNiA4OEE1NiA1NiAwIDEgMSAxMjggODggNTYgNTYgMCAxIDEgMTYgODh6bTM3Ni03LjljMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDh6bTEwNCAxNTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMHptLTU0LjUtOTcuNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzMuOSAzMy45Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHoiXX0sY25lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InF1b3RlLXJpZ2h0IixpY29uOls0NDgsNTEyLFs4MjIxLCJxdW90ZS1yaWdodC1hbHQiXSwiZjEwZSIsIk00NDggMjk2YzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtOC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMzZ6bS0yNTYgMGMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDggMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTgtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTM2eiJdfSxwQ3Q9Y25lLGhDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsLWZsYWciLGljb246WzY0MCw1MTIsW10sImU1MTQiLCJNNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yNjcuNSA1OS4xTDQwMCAxODYuOSA0MDAgNTAzLjRjLTkuNCA1LjQtMjAuMyA4LjYtMzIgOC42bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNDQtMTkuOSAwQzEyLjYgMzA0IDAgMjkxLjQgMCAyNzUuOSAwIDI2OC4zIDMuMSAyNjEgOC42IDI1NS43TDIxMi41IDU5LjFDMjE5LjkgNTIgMjI5LjcgNDggMjQwIDQ4czIwLjEgNCAyNy41IDExLjF6TTIwNC44IDI1Ni44bDAgNDQtNDQgMGMtOS43IDAtMTcuNiA3LjktMTcuNiAxNy42bDAgMzUuMmMwIDkuNyA3LjkgMTcuNiAxNy42IDE3LjZsNDQgMCAwIDQ0YzAgOS43IDcuOSAxNy42IDE3LjYgMTcuNmwzNS4yIDBjOS43IDAgMTcuNi03LjkgMTcuNi0xNy42bDAtNDQgNDQgMGM5LjcgMCAxNy42LTcuOSAxNy42LTE3LjZsMC0zNS4yYzAtOS43LTcuOS0xNy42LTE3LjYtMTcuNmwtNDQgMCAwLTQ0YzAtOS43LTcuOS0xNy42LTE3LjYtMTcuNmwtMzUuMiAwYy05LjcgMC0xNy42IDcuOS0xNy42IDE3LjZ6Il19LG1DdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmVzY3JpcHRpb24iLGljb246WzQ0OCw1MTIsW10sImY1YjEiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDUwLjcgMCAxMjggMTI4LTEwNS40IDEwNS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDI4OCAzOTcuMyAzOTMuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDMzMy4zIDM1MiA0MzguNiAyNDYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyODggMzA2LjcgMjAyLjIgMjIwLjlDMjUxLjQgMjA5LjEgMjg4IDE2NC44IDI4OCAxMTIgMjg4IDUwLjEgMjM3LjkgMCAxNzYgMEwzMiAwek0xNzYgMTYwbC0xMTIgMCAwLTk2IDExMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4eiJdfSxnQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS10aHJlZSIsaWNvbjpbNDQ4LDUxMixbOTg1OF0sImY1MjciLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTI4IDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0seEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWxvY2siLGljb246WzU3Niw1MTIsW10sImU0ZDYiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyMS4zYy00Ni45IDE5LTgwIDY1LTgwIDExOC43bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NHpNMTc2IDM4NGwwIDgwIDgwIDAgMC02NC4xYzAtMTMuNyAxLjktMjcgNS41LTM5LjYtNS43LTUuMi0xMy4yLTguMy0yMS41LTguM2wtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTMwNyAyMjQuM2MtMS0uMi0yLS4zLTMtLjNsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNi43IDBjMi4xLTIyLjggOC40LTQ0LjMgMTguMy02My43ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMzUyIDgwLjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0zNTIgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxkbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWQtY2FyZCIsaWNvbjpbNTc2LDUxMixbNjIxNDcsImRyaXZlcnMtbGljZW5zZSJdLCJmMmMyIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRMMCA5NnptMCA0OGw1NzYgMCAwIDI3MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTQ0ek0yNDcuMyA0MTZjMjAuMiAwIDM1LjMtMTkuNCAyMi40LTM1LTE0LjctMTcuNy0zNi45LTI5LTYxLjctMjlsLTY0IDBjLTI0LjggMC00NyAxMS4zLTYxLjcgMjktMTIuOSAxNS42IDIuMiAzNSAyMi40IDM1bDE0Mi41IDB6TTE3NiAzMTJhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTM2MCAyMDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHoiXX0sYkN0PWRuZSxmbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBsYXkiLGljb246WzUxMiw1MTIsWzYxNDY5LCJwbGF5LWNpcmNsZSJdLCJmMTQ0IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTE4OC4zIDE0Ny4xYy03LjYgNC4yLTEyLjMgMTIuMy0xMi4zIDIwLjlsMCAxNzZjMCA4LjcgNC43IDE2LjcgMTIuMyAyMC45czE2LjggNC4xIDI0LjMtLjVsMTQ0LTg4YzcuMS00LjQgMTEuNS0xMi4xIDExLjUtMjAuNXMtNC40LTE2LjEtMTEuNS0yMC41bC0xNDQtODhjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNXoiXX0sdkN0PWZuZSx1bmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MTMsImxhdWdoLWJlYW0iXSwiZjU5YSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTAxLjYgMzE0Yy0zLjctMTMuNyA3LjUtMjYgMjEuNy0yNmwyNjUuNCAwYzE0LjIgMCAyNS40IDEyLjMgMjEuNyAyNi0xOC41IDY4LTgwLjYgMTE4LTE1NC40IDExOFMxMjAgMzgyIDEwMS42IDMxNHpNMTc2IDE2NGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LHlDdD11bmUsd0N0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlYWYiLGljb246WzUxMiw1MTIsW10sImYwNmMiLCJNNDcxLjMgNi43QzQ3Ny43IC42IDQ4Ny0xLjYgNDk1LjYgMS4yIDUwNS40IDQuNSA1MTIgMTMuNyA1MTIgMjRsMCAxODYuOWMwIDEzMS4yLTEwOC4xIDIzNy4xLTIzOC44IDIzNy4xLTc3IDAtMTQzLjQtNDkuNS0xNjcuNS0xMTguNy0zNS40IDMwLjgtNTcuNyA3Ni4xLTU3LjcgMTI2LjcgMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA0NjkuMyAwIDQ1NkMwIDM4MS4xIDM4LjIgMzE1LjEgOTYuMSAyNzYuMyAxMzEuNCAyNTIuNyAxNzMuNSAyNDAgMjE2IDI0MGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwYy0zOS43IDAtNzcuMyA4LjgtMTExIDI0LjUgMjMuMy03MCA4OS4yLTEyMC41IDE2Ny0xMjAuNSA2Ni40IDAgMTE1LjgtMjIuMSAxNDguNy00NCAxOS4yLTEyLjggMzUuNS0yOC4xIDUwLjctNDUuM3oiXX0sTUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXktdXNlciIsaWNvbjpbNTEyLDUxMixbXSwiZTA2NSIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMzEyIDI1NmE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6TTE0NCA0MzJjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6Il19LHRVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdGF0ZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbInJlZG8tYWx0Iiwicm90YXRlLWZvcndhcmQiXSwiZjJmOSIsIk00ODggMTkybC0xNDQgMGMtOS43IDAtMTguNS01LjgtMjIuMi0xNC44cy0xLjctMTkuMyA1LjItMjYuMmw0Ni43LTQ2LjdjLTc1LjMtNTguNi0xODQuMy01My4zLTI1My41IDE1LjktNzUgNzUtNzUgMTk2LjUgMCAyNzEuNXMxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTQuMy05NC4zIDI0My43LTk5LjYgMzQ0LjMtMTYuMkw0NzEgN2M2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzUxMiAxNC4zIDUxMiAyNGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHoiXX0sekN0PXRVLGtDdD10VSxTQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9vdGgiLGljb246WzQ0OCw1MTIsWzEyOTQ2M10sImY1YzkiLCJNMTQ1IDUuN0wyMjQgMzIgMzAzIDUuN0MzMTQuMyAxLjkgMzI2IDAgMzM3LjkgMCAzOTguNyAwIDQ0OCA0OS4zIDQ0OCAxMTAuMWwwIDY4LjVjMCAyOS40LTkuNSA1OC4xLTI3LjIgODEuNmwtMS4xIDEuNWMtMTIuOSAxNy4yLTIxLjMgMzcuNC0yNC4zIDU4LjdMMzczLjcgNDcxLjljLTMuMyAyMy0yMyA0MC4xLTQ2LjIgNDAuMS0yMi44IDAtNDIuMy0xNi41LTQ2LTM5TDI2MS4zIDM1MS42Yy0zLTE4LjItMTguOC0zMS42LTM3LjMtMzEuNnMtMzQuMiAxMy40LTM3LjMgMzEuNkwxNjYuNSA0NzNjLTMuOCAyMi41LTIzLjIgMzktNDYgMzktMjMuMiAwLTQyLjktMTcuMS00Ni4yLTQwLjFMNTIuNiAzMjAuNWMtMy0yMS4zLTExLjQtNDEuNS0yNC4zLTU4LjdsLTEuMS0xLjVDOS41IDIzNi43IDAgMjA4LjEgMCAxNzguN2wwLTY4LjVDMCA0OS4zIDQ5LjMgMCAxMTAuMSAwIDEyMiAwIDEzMy43IDEuOSAxNDUgNS43eiJdfSxDQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS13aW5kb3ciLGljb246WzUxMiw1MTIsW10sImUwMGQiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6TTIxNiAyMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAweiJdfSxMQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW90b3JjeWNsZSIsaWNvbjpbNjQwLDUxMixbMTI3OTQ5XSwiZjIxYyIsIk0yODAgMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYuNiAwIDIyLjUgNDguNy05NS4xIDcxLjNjLTMzLjQtMjUuMS03NS00MC0xMjAtNDBsLTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYgMGM3OC41IDAgMTQzLjIgNTkuNiAxNTEuMiAxMzZsLTI1LjQgMGMtMTEuMi01OS4yLTYzLjMtMTA0LTEyNS44LTEwNC03MC43IDAtMTI4IDU3LjMtMTI4IDEyOFM3My4zIDQ4MCAxNDQgNDgwYzYyLjUgMCAxMTQuNS00NC44IDEyNS44LTEwNGw1MC4yIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yMi41YzAtNDUuMSAyNS43LTg1LjQgNjUuNS0xMDcuN2wxMi4xIDI2LjFjLTMyLjQgMjMuMi01My41IDYxLjItNTMuNSAxMDQuMSAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4LTU3LjMtMTI4LTEyOC0xMjhjLTEwLjcgMC0yMSAxLjMtMzAuOSAzLjhMNDMzLjggMTYwIDQ4OCAxNjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNTMuMyAwYy02LjkgMC0xMy43IDIuMi0xOS4yIDYuNGwtMTcuMSAxMi44LTI0LjYtNTMuM0MzNjkuOSAyMS40IDM2MS40IDE2IDM1MiAxNmwtNzIgMHpNNDQ1LjggMzAwLjRsMjguNCA2MS42YzUuNiAxMiAxOS44IDE3LjMgMzEuOCAxMS43czE3LjMtMTkuOCAxMS43LTMxLjhsLTI4LjUtNjEuNmMyLjItLjIgNC40LS4zIDYuNy0uMyAzOS44IDAgNzIgMzIuMiA3MiA3MnMtMzIuMiA3Mi03MiA3Mi03Mi0zMi4yLTcyLTcyYzAtMjAuMiA4LjMtMzguNSAyMS44LTUxLjZ6TTE0NCA0MjRjLTM5LjggMC03Mi0zMi4yLTcyLTcyczMyLjItNzIgNzItNzJjMzEuMyAwIDU4IDIwIDY3LjkgNDhMMTQ0IDMyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2Ny45IDBjLTkuOSAyOC0zNi42IDQ4LTY3LjkgNDh6Il19LHBuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWNrd2FyZC1mYXN0IixpY29uOls1MTIsNTEyLFs5MTk4LCJmYXN0LWJhY2t3YXJkIl0sImYwNDkiLCJNNDkyLjIgNDc3LjZjLTEyIDUtMjUuNyAyLjItMzQuOS02LjlMMjg4IDMwMS4zIDI4OCA0NDhjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlMNjQgMzAxLjMgNjQgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMlM2NCA0Ni4zIDY0IDY0TDY0IDIxMC43IDIzMy40IDQxLjRjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTMjg4IDUxLjEgMjg4IDY0bDAgMTQ2LjcgMTY5LjQtMTY5LjRjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTNTEyIDUxLjEgNTEyIDY0bDAgMzg0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZ6Il19LFRDdD1wbmUsaG5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFkZHJlc3MtYm9vayIsaWNvbjpbNTEyLDUxMixbNjIxMzgsImNvbnRhY3QtYm9vayJdLCJmMmI5IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHpNMjA4IDI4OGw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTI0LTk2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNNTEyIDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0em0wIDEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNNDk2IDMyMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sX0N0PWhuZSxBQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2FpbGJvYXQiLGljb246WzUxMiw1MTIsW10sImU0NDUiLCJNMjQwIDM1LjlsMCAzNDguMS0yMjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNjEuOSA1MC4xIDExMiAxMTIgMTEybDI4OCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyIDAtOC44LTcuMi0xNi0xNi0xNmwtMjA4IDAgMC00OCAxNjEuNyAwYzEyLjkgMCAyMC41LTE0LjQgMTMuMi0yNUwyNjkuMiAyNi45Yy04LjktMTMtMjkuMi02LjctMjkuMiA5ek0xOTIgMzIwbDAtMTg0LjJjMC0xNi4xLTIxLTIyLjEtMjkuNi04LjVMNDcuMyAzMTEuNWMtNi43IDEwLjcgMSAyNC41IDEzLjYgMjQuNUwxNzYgMzM2YzguOCAwIDE2LTcuMiAxNi0xNnoiXX0sJEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stYm9va21hcmsiLGljb246WzQ0OCw1MTIsW10sImUwYmIiLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDAgMCAxNjkuNGMwIDEyLjUtMTAuMSAyMi42LTIyLjYgMjIuNi02IDAtMTEuOC0yLjQtMTYtNi42TDI3MiAxNDQgMjMwLjYgMTg1LjRjLTQuMiA0LjItMTAgNi42LTE2IDYuNi0xMi41IDAtMjIuNi0xMC4xLTIyLjYtMjIuNkwxOTIgMCA5NiAwQzQzIDAgMCA0MyAwIDk2TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZ6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMCAwIDY0LTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sREN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtYXJyb3ctcmlnaHQiLGljb246WzUxMiw1MTIsW10sImU1MjEiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0zMDUgMjI1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC03Mi03MmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMS0xMDIuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwMi4xIDAtMzEgMzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3Mi03MnoiXX0sbW5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUtbGluZXMiLGljb246WzM4NCw1MTIsWzEyNzg5NywibWljcm9waG9uZS1hbHQiXSwiZjNjOSIsIk05NiA5NmMwLTUzIDQzLTk2IDk2LTk2IDUwLjMgMCA5MS42IDM4LjcgOTUuNyA4OEwyMzIgODhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYgMCAwIDQ4LTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTUuNyAwYy00LjEgNDkuMy00NS4zIDg4LTk1LjcgODgtNTMgMC05Ni00My05Ni05Nkw5NiA5NnpNMjQgMTYwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDBjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDk3LjktNzMuMyAxNzguNy0xNjggMTkwLjVsMCA0OS41IDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OS41QzczLjMgNDAyLjcgMCAzMjEuOSAwIDIyNGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxFQ3Q9bW5lLGduZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXBseS1hbGwiLGljb246WzU3Niw1MTIsWyJtYWlsLXJlcGx5LWFsbCJdLCJmMTIyIiwiTTMzMi4yIDE4LjRjMTIgNSAxOS44IDE2LjYgMTkuOCAyOS42bDAgODAgNDggMGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDExMy4zLTgxLjUgMTYzLjktMTAwLjIgMTc0LjEtMi41IDEuNC01LjMgMS45LTguMSAxLjktMTAuOSAwLTE5LjctOC45LTE5LjctMTkuNyAwLTcuNSA0LjMtMTQuNCA5LjgtMTkuNSA5LjQtOC44IDIyLjItMjYuNCAyMi4yLTU2LjcgMC01My00My05Ni05Ni05NmwtMzIgMCAwIDgwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45ek0yMDUuNiAyMy4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDU0LjYgMjA4IDIwNS42IDM1OC45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTAgMjMxLjJjLTYuNC02LTEwLTE0LjQtMTAtMjMuMnMzLjYtMTcuMiAxMC0yMy4yTDE3MS42IDIzLjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDB6Il19LE5DdD1nbmUsUEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVuaXZlcnNhbC1hY2Nlc3MiLGljb246WzUxMiw1MTIsW10sImYyOWEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTYxLjUtODYuMWMtMTIuMi01LjItMjYuMyAuNC0zMS41IDEyLjZzLjQgMjYuMyAxMi42IDMxLjVsMTEuOSA1LjFjMTcuMyA3LjQgMzUuMiAxMi45IDUzLjYgMTYuM2wwIDUwLjFjMCA0LjMtLjcgOC42LTIuMSAxMi42bC0yOC43IDg2LjFjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjQuNC03My4yYzEuMy0zLjggNC44LTYuNCA4LjgtNi40czcuNiAyLjYgOC44IDYuNGwyNC40IDczLjJjNC4yIDEyLjYgMTcuOCAxOS40IDMwLjQgMTUuMlMzMzkgMzk3IDMzNC44IDM4NC40bC0yOC43LTg2LjFjLTEuNC00LjEtMi4xLTguMy0yLjEtMTIuNmwwLTUwLjFjMTguNC0zLjUgMzYuMy04LjkgNTMuNi0xNi4zbDExLjktNS4xYzEyLjItNS4yIDE3LjgtMTkuMyAxMi42LTMxLjVzLTE5LjMtMTcuOC0zMS41LTEyLjZMMzM4LjcgMTc1Yy0yNi4xIDExLjItNTQuMiAxNy04Mi43IDE3cy01Ni41LTUuOC04Mi43LTE3bC0xMS45LTUuMXpNMjU2IDE2MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LGFVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wYXBlciIsaWNvbjpbNTEyLDUxMixbMTI5NTMxLDYzMjYzLCJ0b2lsZXQtcGFwZXItYWx0IiwidG9pbGV0LXBhcGVyLWJsYW5rIl0sImY3MWUiLCJNMzI3LjEgMzJjLTguOCAxMS4xLTE2IDIzLjEtMjEuOSAzNC44LTIxLjQgNDIuNy0zMy4yIDk4LjQtMzMuMiAxNTcuMmwwIDI2NGMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA1NDRjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgMjI0QzAgMTE4IDQzIDMyIDk2IDMybDIzMS4xIDB6TTQxNiA0MTZjLTUzIDAtOTYtODYtOTYtMTkyczQzLTE5MiA5Ni0xOTIgOTYgODYgOTYgMTkyLTQzIDE5Mi05NiAxOTJ6bTAtMTI4YzE3LjcgMCAzMi0yOC43IDMyLTY0cy0xNC4zLTY0LTMyLTY0LTMyIDI4LjctMzIgNjQgMTQuMyA2NCAzMiA2NHoiXX0sSUN0PWFVLEZDdD1hVSxPQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidnItY2FyZGJvYXJkIixpY29uOls1NzYsNTEyLFtdLCJmNzI5IiwiTTUxMiA5Nkw2NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTE3LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN2wzMy45LTMzLjljNy4yLTcuMiAxNy4xLTExLjMgMjcuMy0xMS4zczIwLjEgNC4xIDI3LjMgMTEuM2wzMy45IDMzLjljMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN0w1MTIgNDE2YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0ek04MCAyNDBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem0zNTItNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LEJDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaXp6YS1zbGljZSIsaWNvbjpbNTEyLDUxMixbXSwiZjgxOCIsIk0xNjkuNyAuOWMtMjIuOC0xLjYtNDEuOSAxNC00Ny41IDM0LjdMMTEyLjUgNzJDMjkzLjMgNzIuMyA0MzkuNyAyMTguNyA0NDAgMzk5LjVsMzYuNC05LjdjMjAuOC01LjUgMzYuMy0yNC43IDM0LjctNDcuNS0xMi42LTE4Mi44LTE1OC42LTMyOC44LTM0MS40LTM0MS40em0yMjIgNDExLjVjLjItNC4xIC4zLTguMiAuMy0xMi40IDAtMTU0LjYtMTI1LjQtMjgwLTI4MC0yODAtNC4xIDAtOC4zIC4xLTEyLjQgLjNMLjUgNDkxLjljLTEuNSA1LjUgLjEgMTEuNCA0LjEgMTUuNHM5LjkgNS42IDE1LjQgNC4xbDM3MS42LTk5LjF6TTE3NiAyMDhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNOTYgMzg0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LFJDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcHJheS1jYW4iLGljb246WzU3Niw1MTIsW10sImY1YmQiLCJNMTkyIDBsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTEyOCAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTY0IDI1NmMwLTUzIDQzLTk2IDk2LTk2bDEyOCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMDhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTIyNCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTIwOHptMjQwIDgwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHpNMzIwIDY0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTQ0OCAzMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNNTEyIDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek00NDggMTI4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0seG5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZS1sb3ciLGljb246WzQ0OCw1MTIsWzEyODI2NCwidm9sdW1lLWRvd24iXSwiZjAyNyIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNMzgwLjYgMTgxLjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEMzNjEuMSAyMjcuNiAzNjggMjQxIDM2OCAyNTZzLTYuOSAyOC40LTE3LjcgMzcuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM0MDIuMSAzMTIuOSA0MTYgMjg2LjEgNDE2IDI1NnMtMTMuOS01Ni45LTM1LjUtNzQuNXoiXX0sSEN0PXhuZSxxQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3Jvc3MiLGljb246WzM4NCw1MTIsWzEyODMyNywxMDAxM10sImY2NTQiLCJNMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgODAtODAgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw4MCAwIDAgMjA4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMDggODAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC04MCAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTc2IDB6Il19LGJuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24iLGljb246WzM4NCw1MTIsWzEyOTQ4NSwibWFsZSJdLCJmMTgzIiwiTTI0OCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43bDQ2LjMgNjIuNGMxMC41IDE0LjIgMzAuNiAxNy4yIDQ0LjggNi42czE3LjItMzAuNiA2LjYtNDQuOGwtNzAuNS05NUMyNzQgMTMyIDIzNC4zIDExMiAxOTIgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTEyIDIzNi43IDExMiA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3oiXX0sVkN0PWJuZSx2bmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzIixpY29uOlszODQsNTEyLFs5MjAzLDYyMDMyLCJob3VyZ2xhc3MtZW1wdHkiXSwiZjI1NCIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDExYzAgNDIuNC0xNi45IDgzLjEtNDYuOSAxMTMuMWwtNjcuOSA2Ny45IDY3LjkgNjcuOWMzMCAzMCA0Ni45IDcwLjcgNDYuOSAxMTMuMWwwIDExYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwwLTExYzAtNDIuNCAxNi45LTgzLjEgNDYuOS0xMTMuMWw2Ny45LTY3LjktNjcuOS02Ny45QzQ4LjkgMTU4LjEgMzIgMTE3LjQgMzIgNzVsMC0xMUMxNC4zIDY0IDAgNDkuNyAwIDMyek05NiA2NGwwIDExYzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45bDY3LjkgNjcuOSA2Ny45LTY3LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOWwwLTExLTE5MiAwem0wIDM4NGwxOTIgMCAwLTExYzAtMjUuNS0xMC4xLTQ5LjktMjguMS02Ny45bC02Ny45LTY3LjktNjcuOSA2Ny45Yy0xOCAxOC0yOC4xIDQyLjQtMjguMSA2Ny45bDAgMTF6Il19LFVDdD12bmUsakN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpc2giLGljb246WzU3Niw1MTIsWzEyODAzMV0sImY1NzgiLCJNMTgwLjUgMTQxLjVDMjE5LjcgMTA4LjUgMjcyLjYgODAgMzM2IDgwczExNi4zIDI4LjUgMTU1LjUgNjEuNWMzOS4xIDMzIDY2LjkgNzIuNCA4MSA5OS44IDQuNyA5LjIgNC43IDIwLjEgMCAyOS4zLTE0LjEgMjcuNC00MS45IDY2LjgtODEgOTkuOC0zOS4yIDMzLjEtOTIgNjEuNS0xNTUuNSA2MS41cy0xMTYuMy0yOC41LTE1NS41LTYxLjVjLTE2LjItMTMuNy0zMC41LTI4LjUtNDIuNy00My4xTDQ4LjEgMzc5LjZjLTEyLjUgNy4zLTI4LjQgNS4zLTM4LjctNC45cy0xMi40LTI2LTUuMy0zOC42TDUwIDI1NiA0LjIgMTc1LjljLTcuMi0xMi42LTUtMjguNCA1LjMtMzguNnMyNi4xLTEyLjIgMzguNy00LjlsODkuNyA1Mi4zYzEyLjItMTQuNiAyNi41LTI5LjQgNDIuNy00My4xek00NDggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LFdDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcnVtc3RpY2stYml0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjZkNyIsIk0xNjAgMjY1LjJjMCA4LjUtMy40IDE2LjYtOS40IDIyLjZsLTI2LjggMjYuOGMtMTIuMyAxMi4zLTMyLjUgMTEuNC00OS40IDcuMi00LjYtMS4xLTkuNS0xLjgtMTQuNS0xLjgtMzMuMSAwLTYwIDI2LjktNjAgNjBzMjYuOSA2MCA2MCA2MGM2LjMgMCAxMiA1LjcgMTIgMTIgMCAzMy4xIDI2LjkgNjAgNjAgNjBzNjAtMjYuOSA2MC02MGMwLTUtLjYtOS44LTEuOC0xNC41LTQuMi0xNi45LTUuMi0zNy4xIDcuMi00OS40bDI2LjgtMjYuOGM2LTYgMTQuMS05LjQgMjIuNi05LjRsODkuMiAwYzYuMyAwIDEyLjQtLjMgMTguNS0xIDExLjktMS4yIDE2LjQtMTUuNSAxMC44LTI2LTguNS0xNS44LTEzLjMtMzMuOC0xMy4zLTUzIDAtNjEuOSA1MC4xLTExMiAxMTItMTEyIDggMCAxNS43IC44IDIzLjIgMi40IDExLjcgMi41IDI0LjEtNS45IDIyLTE3LjYtMTQuNy04Mi4zLTg2LjctMTQ0LjgtMTczLjItMTQ0LjgtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZsMCA4OS4yeiJdfSxHQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtc2ltcGxlIixpY29uOls1MTIsNTEyLFtdLCJlNDczIiwiTTE5MiA4MGMwLTI2LjUgMjEuNS00OCA0OC00OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTM1MnpNMCAyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAyNzJ6TTQzMiA5NmwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjg4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTI4OGMwLTI2LjUgMjEuNS00OCA0OC00OHoiXX0sWUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF0b20iLGljb246WzQ0OCw1MTIsWzk4ODNdLCJmNWQyIiwiTTIyNCAzOTguOGMtMTEuOCA1LjEtMjMuNCA5LjctMzQuOSAxMy41IDE2LjcgMzMuOCAzMSAzNS43IDM0LjkgMzUuN3MxOC4xLTEuOSAzNC45LTM1LjdjLTExLjQtMy45LTIzLjEtOC40LTM0LjktMTMuNXpNNDE0IDI1NmMzMyA0NS4yIDQ0LjMgOTAuOSAyMy42IDEyOC0yMC4yIDM2LjMtNjIuNSA0OS4zLTExNS4yIDQzLjItMjIgNTIuMS01NS43IDg0LjgtOTguNCA4NC44cy03Ni40LTMyLjctOTguNC04NC44QzcyLjkgNDMzLjMgMzAuNiA0MjAuMyAxMC40IDM4NC0xMC4zIDM0Ni45IDEgMzAxLjIgMzQgMjU2IDEgMjEwLjgtMTAuMyAxNjUuMSAxMC40IDEyOCAzMC42IDkxLjcgNzIuOSA3OC43IDEyNS42IDg0LjggMTQ3LjYgMzIuNyAxODEuMiAwIDIyNCAwczc2LjQgMzIuNyA5OC40IDg0LjhjNTIuNy02LjEgOTUgNi44IDExNS4yIDQzLjIgMjAuNyAzNy4xIDkuNCA4Mi44LTIzLjYgMTI4em0tNjUuOCA2Ny40Yy0xLjcgMTQuMi0zLjkgMjgtNi43IDQxLjIgMzEuOCAxLjQgMzguNi04LjcgNDAuMi0xMS43IDIuMy00LjIgNy0xNy45LTExLjktNDguMS02LjggNi4zLTE0IDEyLjUtMjEuNiAxOC42em0tNi43LTE3NS45YzIuOCAxMy4xIDUgMjYuOSA2LjcgNDEuMiA3LjYgNi4xIDE0LjggMTIuMyAyMS42IDE4LjYgMTguOS0zMC4yIDE0LjItNDQgMTEuOS00OC4xLTEuNi0yLjktOC40LTEzLTQwLjItMTEuN3pNMjU4LjkgOTkuN0MyNDIuMSA2NS45IDIyNy45IDY0IDIyNCA2NHMtMTguMSAxLjktMzQuOSAzNS43YzExLjQgMy45IDIzLjEgOC40IDM0LjkgMTMuNSAxMS44LTUuMSAyMy40LTkuNyAzNC45LTEzLjV6bS0xNTkgODguOWMxLjctMTQuMyAzLjktMjggNi43LTQxLjItMzEuOC0xLjQtMzguNiA4LjctNDAuMiAxMS43LTIuMyA0LjItNyAxNy45IDExLjkgNDguMSA2LjgtNi4zIDE0LTEyLjUgMjEuNi0xOC42ek03OC4yIDMwNC44Yy0xOC45IDMwLjItMTQuMiA0NC0xMS45IDQ4LjEgMS42IDIuOSA4LjQgMTMgNDAuMiAxMS43LTIuOC0xMy4xLTUtMjYuOS02LjctNDEuMi03LjYtNi4xLTE0LjgtMTIuMy0yMS42LTE4LjZ6TTMwNCAyNTZhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwem0tODAtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxaQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicCIsaWNvbjpbMzIwLDUxMixbMTEyXSwiNTAiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwxMjggMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MFMyNDguNCAzNTIgMTYwIDM1MmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjg4bDk2IDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZsLTk2IDAgMCAxOTJ6Il19LFhDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqZXQtZmlnaHRlci11cCIsaWNvbjpbNTEyLDUxMixbXSwiZTUxOCIsIk0yMDYuOCA0Ny44QzIwMi4zIDU4LjUgMjAwIDcwIDIwMCA4MS42bDAgMTAwLjQtMTUyIDExNCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMjM0LjcgMCAyNDhMMCAzOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTggMTUyIDAgMCA1NC40LTY2IDUyLjhjLTMuOCAzLTYgNy42LTYgMTIuNWwwIDI0LjNjMCA4LjggNy4yIDE2IDE2IDE2bDg4IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgODggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNC4zYzAtNC45LTIuMi05LjUtNi0xMi41bC02Ni01Mi44IDAtNTQuNCAxNTIgMCAwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQ4LTE1Mi0xMTQgMC0xMDAuNGMwLTExLjYtMi4zLTIzLjEtNi44LTMzLjhsLTI3LjEtNjVDMjc0LjQtMjYuMiAyNjUuNy0zMiAyNTYtMzJzLTE4LjQgNS44LTIyLjIgMTQuOGwtMjcuMSA2NXoiXX0sUUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTYwIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2Ljd6Il19LEtDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGVldC1wbGFzdGljIixpY29uOlszODQsNTEyLFtdLCJlNTcxIiwiTTAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE0OS41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMMzY1LjMgMzg2LjdjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0wzODQgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDh6bTIwOCA1LjVsMC05My41YzAtMTMuMyAxMC43LTI0IDI0LTI0bDkzLjUgMC0xMTcuNSAxMTcuNXpNMTUzIDEwNWwtNDggNDhjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDgtNDhjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45em05NiAzMkwxMzcgMjQ5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDIxNSAxMDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45eiJdfSxKQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidiIsaWNvbjpbMzg0LDUxMixbMTE4XSwiNTYiLCJNMTkuNyAzNC41YzE2LjMtNi44IDM1IC45IDQxLjggMTcuMkwxOTIgMzY0LjggMzIyLjUgNTEuN2M2LjgtMTYuMyAyNS41LTI0IDQxLjgtMTcuMnMyNCAyNS41IDE3LjIgNDEuOGwtMTYwIDM4NGMtNSAxMS45LTE2LjYgMTkuNy0yOS41IDE5LjdzLTI0LjYtNy44LTI5LjUtMTkuN0wyLjUgNzYuM2MtNi44LTE2LjMgLjktMzUgMTcuMi00MS44eiJdfSx5bmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3Qtc3F1YXJlcyJdLCJmMDNhIiwiTTQwIDQ4QzI2LjcgNDggMTYgNTguNyAxNiA3MmwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNEw0MCA0OHpNMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6TTE2IDIzMmwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTQwIDM2OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LGVMdD15bmUsdEx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvbGFyLXBhbmVsIixpY29uOls1NzYsNTEyLFtdLCJmNWJhIiwiTTEyMS44IDMyYy0zMCAwLTU2IDIwLjgtNjIuNSA1MC4xTDkuNiAzMDYuMUMuNyAzNDYuMSAzMS4xIDM4NCA3MiAzODRsMTg0LjEgMCAwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NCAxODQuMSAwYzQwLjkgMCA3MS40LTM3LjkgNjIuNS03Ny45bC00OS44LTIyNEM1MTAuNCA1Mi44IDQ4NC41IDMyIDQ1NC41IDMyTDEyMS44IDMyek0yNDUuNiA5Nmw4NS4yIDAgNy4zIDg4LTk5LjggMCA3LjMtODh6bS01NS41IDg4bC04Ny44IDAgMTkuNi04OCA3NS42IDAtNy4zIDg4ek05MS42IDIzMmw5NC41IDAtNy4zIDg4LTEwNi43IDAgMTkuNi04OHptMTQyLjYgMGwxMDcuOCAwIDcuMyA4OC0xMjIuNSAwIDcuMy04OHptMTU2IDBsOTQuNSAwIDE5LjYgODgtMTA2LjcgMC03LjMtODh6TTQ3NCAxODRsLTg3LjggMC03LjMtODggNzUuNiAwIDE5LjYgODh6Il19LGFMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kLW1pbmUtb24iLGljb246WzU3Niw1MTIsW10sImU1MWIiLCJNMzEyIDBsMCAxMjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRMMjY0IDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpNMTYwIDI4OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEw4MCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDhsODAgMCAwLTMyek0xMiAxMTQuN2M3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN2w5NiA2NGMxMSA3LjQgMTQgMjIuMyA2LjcgMzMuM3MtMjIuMyAxNC0zMy4zIDYuN2wtOTYtNjRjLTExLTcuNC0xNC0yMi4zLTYuNy0zMy4zek01MzAuNyAxMDhjMTEtNy40IDI1LjktNC40IDMzLjMgNi43czQuNCAyNS45LTYuNyAzMy4zbC05NiA2NGMtMTEgNy40LTI1LjkgNC40LTMzLjMtNi43cy00LjQtMjUuOSA2LjctMzMuM2w5Ni02NHoiXX0sclU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZHBob25lcyIsaWNvbjpbNDQ4LDUxMixbMTI3OTExLDYyODYzLCJoZWFkcGhvbmVzLWFsdCIsImhlYWRwaG9uZXMtc2ltcGxlIl0sImYwMjUiLCJNNjQgMjI0YzAtODguNCA3MS42LTE2MCAxNjAtMTYwczE2MCA3MS42IDE2MCAxNjBsMCAzNy41Yy0xMC0zLjUtMjAuOC01LjUtMzItNS41bC0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xNjBDNDQ4IDEwMC4zIDM0Ny43IDAgMjI0IDBTMCAxMDAuMyAwIDIyNEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDBjLTExLjIgMC0yMiAxLjktMzIgNS41TDY0IDIyNHoiXX0sckx0PXJVLGlMdD1yVSxvTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzIixpY29uOls0NDgsNTEyLFsxMjg2NTNdLCJmMjA3IiwiTTk2IDBDNDMgMCAwIDQzIDAgOTZMMCAzODRjMCAyOS44IDIwLjQgNTQuOSA0OCA2MmwwIDM0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAxOTIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zNGMyNy42LTcuMSA0OC0zMi4yIDQ4LTYybDAtMjg4YzAtNTMtNDMtOTYtOTYtOTZMOTYgMHpNNjQgMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEwNCAwIDAgMTEyLTEwNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4em0xODQgODBsMC0xMTIgMTA0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTA0IDB6TTk2IDMyMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTI1NiAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTUyIDcyYzAtMTMuMyAxMC43LTI0IDI0LTI0bDk2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTk2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxzTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wb3dlcnBvaW50IixpY29uOlszODQsNTEyLFtdLCJmMWM0IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNTIgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQgMjQgMGMzOS44IDAgNzItMzIuMiA3Mi03MnMtMzIuMi03Mi03Mi03MmwtNDggMHptNDggOTZsLTI0IDAgMC00OCAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSx3bmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicXVvdGUtbGVmdCIsaWNvbjpbNDQ4LDUxMixbODIyMCwicXVvdGUtbGVmdC1hbHQiXSwiZjEwZCIsIk0wIDIxNkMwIDE0OS43IDUzLjcgOTYgMTIwIDk2bDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIxNnptMjU2IDBjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBsOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTM2eiJdfSxuTHQ9d25lLGxMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGV2cm9uLWRvd24iLGljb246WzQ0OCw1MTIsW10sImYwNzgiLCJNMjAxLjQgNDA2LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTkyLTE5MmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyMjQgMzM4LjcgNTQuNiAxNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTkyIDE5MnoiXX0sTW5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWFzaWEiLGljb246WzUxMiw1MTIsWzEyNzc1OSwiZ2xvYmUtYXNpYSJdLCJmNTdlIiwiTTUwIDI4NC44YzQuMiAyLjEgOSAzLjIgMTQgMy4ybDUwLjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwxMy4zIDEzLjNjNiA2IDE0LjEgOS40IDIyLjYgOS40bDE4LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0LTEwLjcgMjQtMjRsMC00Mi43YzAtOC41IDMuNC0xNi42IDkuNC0yMi42bDEzLjMtMTMuM2M2LTYgOS40LTE0LjEgOS40LTIyLjZMMzA0IDU3YzAtMS4yLS4xLTIuMy0uMi0zLjUtMTUuNC0zLjYtMzEuNC01LjUtNDcuOC01LjUtMTE0LjkgMC0yMDggOTMuMS0yMDggMjA4IDAgOS44IC43IDE5LjQgMiAyOC44em00MDMuMyAzNy4zYy0zLjItMS40LTYuNy0yLjEtMTAuNS0yLjFMNDMyIDMyMGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZsLTM0LjcgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRsLTQ1LjMgNDUuM2MtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMTguN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOC43IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjQgMi4yIDIuMiA0LjcgNC4xIDcuMyA1LjUgMzkuMy0yNS40IDY5LjUtNjMuNiA4NC42LTEwOC44ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xMjggMzY4YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTI3MiAyNTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTQ4LTExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnoiXX0sY0x0PU1uZSxkTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2VudC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlM2Y1IiwiTTIwOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjUuNGM0My42IDUuMiA4MyAyNC41IDExMy4zIDUzLjEgMTIuOSAxMi4xIDEzLjQgMzIuNCAxLjMgNDUuMnMtMzIuNCAxMy40LTQ1LjIgMS4zYy0yNC40LTIzLTU3LjItMzcuMS05My4zLTM3LjEtNzUuMSAwLTEzNiA2MC45LTEzNiAxMzZzNjAuOSAxMzYgMTM2IDEzNmMzNi4yIDAgNjktMTQuMSA5My4zLTM3LjEgMTIuOS0xMi4xIDMzLjEtMTEuNSA0NS4yIDEuM3MxMS41IDMzLjEtMS4zIDQ1LjJDMzIzIDQzMC4xIDI4My42IDQ0OS40IDI0MCA0NTQuNmwwIDI1LjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yOEM4NC43IDQzMy41IDE2IDM1Mi44IDE2IDI1NlM4NC43IDc4LjUgMTc2IDYwbDAtMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGZMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtY2F0IixpY29uOls1MTIsNTEyLFtdLCJlNTcyIiwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0xNjAgMTU0LjRjMC01LjggNC43LTEwLjQgMTAuNC0xMC40bC4yIDBjMy40IDAgNi41IDEuNiA4LjUgNC4zbDQwIDUzLjNjMyA0IDcuOCA2LjQgMTIuOCA2LjRsNDggMGM1IDAgOS44LTIuNCAxMi44LTYuNGw0MC01My4zYzItMi43IDUuMi00LjMgOC41LTQuM2wuMiAwYzUuOCAwIDEwLjQgNC43IDEwLjQgMTAuNEwzNTIgMjcyYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bDAtMTE3LjZ6TTIxNiAyODhhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem05Ni0xNmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAweiJdfSx1THQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2YiIsIk02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI3NiAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC05MC45IDAgMC04OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzEgMCAxLjkgMCAyLjkgLjEgMjYuMy03NC42IDk3LjUtMTI4LjEgMTgxLjEtMTI4LjEgMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC0zMy40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwLTEyNy45LTExNS4xYy0xOC4zLTE2LjQtNDYtMTYuNC02NC4yIDBMMTI4IDEyOCA2NCAxMjh6bTY0IDI0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyek0xMTIgMjU2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZ6TTI4OCAxMjhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSx6bmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFydGluaS1nbGFzcyIsaWNvbjpbNTEyLDUxMixbMTI3ODY0LCJnbGFzcy1tYXJ0aW5pLWFsdCJdLCJmNTdiIiwiTTIuNCA1MS44QzcuNCAzOS44IDE5LjEgMzIgMzIgMzJsNDQ4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwyODggMzAxLjMgMjg4IDQ0OCAzNTIgNDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTQ2LjctMjE0LjYtMjE0LjZDLjIgNzcuNS0yLjUgNjMuNyAyLjQgNTEuOHpNMzU0LjcgMTQ0bDQ4LTQ4LTI5My41IDAgNDggNDggMTk3LjUgMHoiXX0scEx0PXpuZSxoTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1ZyIsaWNvbjpbNDQ4LDUxMixbMTI4MjY4XSwiZjFlNiIsIk0xMjgtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNjRjMCA5NS4xLTY5LjIgMTc0LjEtMTYwIDE4OS4zbDAgNjYuN2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTAxLjIgMzk4LjEgMzIgMzE5LjEgMzIgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgOTYgMzIgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxtTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFub3JhbWEiLGljb246WzU3Niw1MTIsW10sImUyMDkiLCJNNDMuOSA0OEMxOS43IDQ4IDAgNjcuNyAwIDkxLjlMMCA0MjAuMWMwIDI0LjMgMTkuNyA0My45IDQzLjkgNDMuOSA1LjUgMCAxMC43LTEgMTUuNy0yLjkgMTIuOS00LjkgMTAzLjQtMzcuMSAyMjguNC0zNy4xczIxNS41IDMyLjMgMjI4LjQgMzcuMWM1IDEuOSAxMC4yIDIuOSAxNS43IDIuOSAyNC4zIDAgNDMuOS0xOS43IDQzLjktNDMuOWwwLTMyOC4yYzAtMjQuMy0xOS43LTQzLjktNDMuOS00My45LTUuNSAwLTEwLjcgMS0xNS43IDIuOS0xMi45IDQuOS0xMDMuNCAzNy4xLTIyOC40IDM3LjFTNzIuNSA1NS43IDU5LjYgNTAuOUM1NC42IDQ5IDQ5LjQgNDggNDMuOSA0OHpNNzIgMTc2YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6bTI2NC4xLTE2YzcuNSAwIDE0LjYgMy42IDE5LjEgOS42TDQ3OS43IDMzNi4yYzUuOSA3LjkgNi40IDE4LjUgMS4zIDI2LjlzLTE0LjggMTIuOC0yNC41IDExLjFjLTQ1LjgtNy44LTEwMy4zLTE0LjItMTY4LjQtMTQuMi02NS42IDAtMTIzLjQgNi41LTE2OS4zIDE0LjQtOS44IDEuNy0xOS43LTIuOS0yNC43LTExLjVzLTQuMy0xOS40IDEuOS0yNy4yTDE2NS4zIDI0OWM0LjYtNS43IDExLjUtOSAxOC43LTlzMTQuMiAzLjMgMTguNyA5bDI3LjUgMzQuNCA4Ni43LTExMy45YzQuNi02IDExLjctOS41IDE5LjItOS41eiJdfSxDNz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9jay1yb3RhdGUtbGVmdCIsaWNvbjpbNTc2LDUxMixbImhpc3RvcnkiXSwiZjFkYSIsIk0yODggNjRjMTA2IDAgMTkyIDg2IDE5MiAxOTJTMzk0IDQ0OCAyODggNDQ4Yy02NS4yIDAtMTIyLjktMzIuNS0xNTcuNi04Mi4zLTEwLjEtMTQuNS0zMC4xLTE4LTQ0LjYtNy45cy0xOCAzMC4xLTcuOSA0NC42QzEyNC4xIDQ2OC42IDIwMSA1MTIgMjg4IDUxMiA0MjkuNCA1MTIgNTQ0IDM5Ny40IDU0NCAyNTZTNDI5LjQgMCAyODggMEMyMDIuMyAwIDEyNi41IDQyLjEgODAgMTA2LjdMODAgODBjMC0xNy43LTE0LjMtMzItMzItMzJTMTYgNjIuMyAxNiA4MGwwIDExMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNC42IDBjLjUgMCAxIDAgMS41IDBsODYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzguMyAwQzE1NC45IDEwMi42IDIxNyA2NCAyODggNjR6bTI0IDg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTA0YzAgNi40IDIuNSAxMi41IDcgMTdsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02NS02NSAwLTk0LjF6Il19LGdMdD1DNyx4THQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamFyLXdoZWF0IixpY29uOlszMjAsNTEyLFtdLCJlNTE3IiwiTTMyLThjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNTYgMTZDNDIuNyAxNiAzMiA1LjMgMzItOHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMTEyIDMybC00Mi4yIDBjLTMuMiAwLTUuOCAyLjYtNS44IDUuOCAwIDMyLjEgMjYgNTguMiA1OC4yIDU4LjJsNzUuNiAwYzMyLjEgMCA1OC4yLTI2IDU4LjItNTguMiAwLTMuMi0yLjYtNS44LTUuOC01LjhMMjA4IDE2MGMtMTkuMSAwLTM2LjMgOC40LTQ4IDIxLjctMTEuNy0xMy4zLTI4LjktMjEuNy00OC0yMS43em00OCAxMTcuN2MtMTEuNy0xMy4zLTI4LjktMjEuNy00OC0yMS43bC00Mi4yIDBjLTMuMiAwLTUuOCAyLjYtNS44IDUuOCAwIDMyLjEgMjYgNTguMiA1OC4yIDU4LjJsNzUuNiAwYzMyLjEgMCA1OC4yLTI2IDU4LjItNTguMiAwLTMuMi0yLjYtNS44LTUuOC01LjhMMjA4IDI1NmMtMTkuMSAwLTM2LjMgOC40LTQ4IDIxLjd6TTExMiAzNTJsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmwyMS44IDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMzIgMjEuOCAwYzMyLjEgMCA1OC4yLTI2IDU4LjItNTguMiAwLTMuMi0yLjYtNS44LTUuOC01LjhMMjA4IDM1MmMtMTkuMSAwLTM2LjMgOC40LTQ4IDIxLjctMTEuNy0xMy4zLTI4LjktMjEuNy00OC0yMS43eiJdfSxpVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1hcnJvdy1kb3duIixpY29uOls1NzYsNTEyLFs2MjMzNywiY2xvdWQtZG93bmxvYWQiLCJjbG91ZC1kb3dubG9hZC1hbHQiXSwiZjBlZCIsIk0xNDQgNDgwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTYzLjQgNDEtMTE3LjIgOTcuOS0xMzYuNS0xLjMtNy43LTEuOS0xNS41LTEuOS0yMy41IDAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDU1LjQgMCAxMDMuNSAzMS4zIDEyNy42IDc3LjEgMTQuMi04LjMgMzAuOC0xMy4xIDQ4LjQtMTMuMSA1MyAwIDk2IDQzIDk2IDk2IDAgMTUuNy0zLjggMzAuNi0xMC41IDQzLjcgNDQgMjAuMyA3NC41IDY0LjcgNzQuNSAxMTYuMyAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDB6TTM3NyAzMTNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxiTHQ9aVUsdkx0PWlVLGtuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1yYW1wLWJveCIsaWNvbjpbNTc2LDUxMixbInRydWNrLWxvYWRpbmciXSwiZjRkZSIsIk00MDAgMzJjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjQ4LjItMjk3LjIgODkuMkM1LjkgNDU0LjQtMy43IDQ3Mi4zIDEuNCA0ODkuMnMyMi45IDI2LjUgMzkuOCAyMS41bDMxNS41LTk0LjYgNDMuNyAwYy0uMiAyLjYtLjQgNS4zLS40IDggMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGwwLTM5Mi0xNzYgMHpNNTI4IDQyNGMwIDIyLjEtMTcuOSA0MC00MCA0MHMtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwYzIyLjEgMCAzOS45IDE3LjkgNDAgMzkuOWwwIC4xek01MS45IDE0OS41QzE4LjEgMTU5LjgtLjkgMTk1LjYgOS40IDIyOS40bDI4LjEgOTEuOEM0Ny44IDM1NSA4My42IDM3NCAxMTcuNCAzNjMuN2w5MS44LTI4LjFjMzMuOC0xMC4zIDUyLjgtNDYuMSA0Mi41LTc5LjlsLTI4LjEtOTEuOGMtMTAuMy0zMy44LTQ2LjEtNTIuOC03OS45LTQyLjVMNTEuOSAxNDkuNXoiXX0seUx0PWtuZSx3THQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtZG93biIsaWNvbjpbMzg0LDUxMixbODk2NF0sImYxMDciLCJNMTY5LjQgMzc0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIgMzA2LjcgNTQuNiAxNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHoiXX0sTUx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTVjIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0sekx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmRvdy1tYXhpbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDcwXSwiZjJkMCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMjQgNjRsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxrTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZy1jaXJjbGUiLGljb246WzY0MCw1MTIsW10sImU0ZmIiLCJNMzIwIDBhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2ek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDE2MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMSAxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjgtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjJsMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4ybDAgNzguOWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjYuNyAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyOC4xIDM5My40QzEwLjEgMzc1LjQgMCAzNTEgMCAzMjUuNUwwIDEwNEMwIDgxLjkgMTcuOSA2NCA0MCA2NHptNTYwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyMjEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDBjNy4zLTcuMyAyMy4xLTIzLjEgNDcuMi00Ny4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4yLTExIDExLTkuMiAyOS4yIDMuNyAzNy44IDkuNyA2LjUgMjIuNyA1LjIgMzEtMy4xbDUxLjEtNTEuMWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDU2MCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6Il19LFNuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1waW4iLGljb246WzM4NCw1MTIsWyJtYXAtbWFya2VyIl0sImYwNDEiLCJNMTkyIDBDODYgMCAwIDg0LjQgMCAxODguNiAwIDMwNy45IDEyMC4yIDQ1MC45IDE3MC40IDUwNS40IDE4Mi4yIDUxOC4yIDIwMS44IDUxOC4yIDIxMy42IDUwNS40IDI2My44IDQ1MC45IDM4NCAzMDcuOSAzODQgMTg4LjYgMzg0IDg0LjQgMjk4IDAgMTkyIDB6Il19LFNMdD1TbmUsQ0x0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvd2xpbmctYmFsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjQzNiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjQwIDgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMjA4IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tNjQtNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxDbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1mbGF0YmVkIixpY29uOls1NzYsNTEyLFsiZG9sbHktZmxhdGJlZCJdLCJmNDc0IiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyODhjMCAzOS44IDI5LjEgNzIuOCA2Ny4xIDc5LTIgNS4zLTMuMSAxMS0zLjEgMTcgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNmwxOTcuNSAwYy0xLjggNS0yLjcgMTAuNC0yLjcgMTYgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNmwzNC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQwMCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yODhDMTI4IDM1LjggOTIuMiAwIDQ4IDBMMzIgMHpNMjI0IDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE3NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNDAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE3NmMwLTI2LjUtMjEuNS00OC00OC00OEwyMjQgNjR6Il19LExMdD1DbmUsTG5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLXVzZXIiLGljb246WzUxMiw1MTIsWyJob21lLXVzZXIiXSwiZTFiMCIsIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4ek0yMDAgMjU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTQ0IDQzMmMwLTQ0LjIgMzUuOC04MCA4MC04MGw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnoiXX0sVEx0PUxuZSxfTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2hvc3QiLGljb246WzM4NCw1MTIsWzEyODEyM10sImY2ZTIiLCJNNDAuMSA0NjcuMWwtMTEuMiA5QzI1LjcgNDc4LjYgMjEuOCA0ODAgMTcuOCA0ODAgOCA0ODAgMCA0NzIgMCA0NjIuMkwwIDE5MkMwIDg2IDg2IDAgMTkyIDBTMzg0IDg2IDM4NCAxOTJsMCAyNzAuMmMwIDkuOC04IDE3LjgtMTcuOCAxNy44LTQgMC03LjktMS40LTExLjEtMy45bC0xMS4yLTljLTEzLjQtMTAuNy0zMi44LTktNDQuMSAzLjlMMjY5LjMgNTA2Yy0zLjMgMy44LTguMiA2LTEzLjMgNnMtOS45LTIuMi0xMy4zLTZsLTI2LjYtMzAuNWMtMTIuNy0xNC42LTM1LjQtMTQuNi00OC4yIDBMMTQxLjMgNTA2Yy0zLjMgMy44LTguMiA2LTEzLjMgNnMtOS45LTIuMi0xMy4zLTZMODQuMiA0NzFjLTExLjMtMTIuOS0zMC43LTE0LjYtNDQuMS0zLjl6TTE2MCAxOTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxBTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1ub2RlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTY5NiIsIk00ODAgMjA4QzUwMy43IDIwOCA1MjUuNiAyMTUuMyA1NDMuNyAyMjcuOSA1MzYuOSAxMDAuOSA0MjUgMCAyODggMCAxNDYuNiAwIDMyIDEwNy41IDMyIDI0MCAzMiAyOTQuMyA1MS4yIDM0NC4zIDgzLjYgMzg0LjVMMzQuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdjMjcuMiAxMS40IDU2LjkgMTguNCA4OC4xIDIwLjIgLjEtMTguOSA0LjktMzggMTUtNTUuNSAxNy4xLTI5LjcgNDUuOC00OC41IDc3LTU0LjJsOS4yLTE2Yy0zLjQtMTAuNy01LjItMjItNS4yLTMzLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTJ6TTMyOC42IDQ0OGMtMTcuNyAzMC42LTcuMiA2OS43IDIzLjQgODcuNHM2OS43IDcuMiA4Ny40LTIzLjRjMS41LTIuNiAyLjgtNS4zIDMuOS04bDczLjMgMGMxLjEgMi43IDIuNCA1LjQgMy45IDggMTcuNyAzMC42IDU2LjggNDEuMSA4Ny40IDIzLjRzNDEuMS01Ni44IDIzLjQtODcuNGMtMTMuNC0yMy4yLTM5LjEtMzQuOC02NC0zMS40bC0xNy42LTMwLjdjLTExIDExLjctMjUgMjAuNi00MC42IDI1LjZsMTYuNSAyOC45Yy0zLjggNC44LTYuOCAxMC05IDE1LjZsLTczLjQgMGMtMi4yLTUuNi01LjMtMTAuOC05LTE1LjZsMzMtNTcuN2M0LjEgLjggOC40IDEuMyAxMi44IDEuMyAzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0YzAgMTMuNCA0LjEgMjUuOCAxMS4yIDM2LjFsLTM0LjYgNjAuNWMtMjUtMy40LTUwLjYgOC4zLTY0IDMxLjR6Il19LCRMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYXJyb3ctZG93bi10by1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTM4IiwiTTE5Mi0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMzE4LjMgMjk5LjFsLTQ2LjMtNjIuNCAwIDI0My4zIDI3MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MCAwIDAtMjQzLjMtNDYuMyA2Mi40Yy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxMTAgMTMyIDE0OS43IDExMiAxOTIgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42ek0xNzYgNDgwbDMyIDAgMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxMjh6TTU2Ni42IDE2Ni42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDQzMiAxNDYuNyA0MzIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTQ2LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6Il19LERMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJlNTVmIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTE2IDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDAgMC00OHoiXX0sVG5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1zd2ltbWluZyIsaWNvbjpbNjQwLDUxMixbMTI3OTQ2LCJzd2ltbWVyIl0sImY1YzQiLCJNNTUyIDE1MmE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6TTI5My40IDE5OC4ybC04OC42IDczLjljMS4xIDAgMi4yLS4xIDMuMy0uMSAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgMjIuMSAxNi42IDI5LjEgMTYuNiA1MS4yIDAgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgNC44IDAgOS43IC4yIDE0LjUgLjYtOC4zLTMwLTI0LjMtNTcuNy00Ni44LTgwLjItMTguNC0xOC40LTQwLjYtMzIuNy02NS00MS44bC02OC42LTI1LjdjLTI3LjQtMTAuMy01OC03LjUtODMuMSA3LjZsLTUzLjUgMzIuMWMtMTUuMiA5LjEtMjAuMSAyOC43LTExIDQzLjlzMjguNyAyMC4xIDQzLjkgMTFMMjMwIDE4Ny4zYzguNC01IDE4LjYtNS45IDI3LjctMi41bDM1LjcgMTMuNHptMTEwIDE4MS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgMzg2LjMgMTcuNiAzOTQuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LEVMdD1UbmUsX25lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtZG90cyIsaWNvbjpbNTEyLDUxMixbMTI4MTcyLDYyMDc1LCJjb21tZW50aW5nIl0sImY0YWQiLCJNMjU2IDQ4MGMxNDEuNCAwIDI1Ni0xMDcuNSAyNTYtMjQwUzM5Ny40IDAgMjU2IDAgMCAxMDcuNSAwIDI0MGMwIDU0LjMgMTkuMiAxMDQuMyA1MS42IDE0NC41TDIuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdDMTgzLjcgNDcyLjYgMjE4LjkgNDgwIDI1NiA0ODB6TTEyOCAyMDhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LE5MdD1fbmUsQW5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LXBpZSIsaWNvbjpbNTc2LDUxMixbInBpZS1jaGFydCJdLCJmMjAwIiwiTTUxMi40IDI0MGwtMTc2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTc2YzAtMTcuNyAxNC40LTMyLjIgMzEuOS0yOS45IDEwNyAxNC4yIDE5MS44IDk5IDIwNiAyMDYgMi4zIDE3LjUtMTIuMiAzMS45LTI5LjkgMzEuOXpNMjIyLjYgMzcuMmMxOC4xLTMuOCAzMy44IDExIDMzLjggMjkuNWwwIDE5Ny4zYzAgNS42IDIgMTEgNS41IDE1LjNMMzk0IDQzOC43YzExLjcgMTQuMSA5LjIgMzUuNC02LjkgNDQuMS0zNC4xIDE4LjYtNzMuMiAyOS4yLTExNC43IDI5LjItMTMyLjUgMC0yNDAtMTA3LjUtMjQwLTI0MCAwLTExNS41IDgxLjUtMjExLjkgMTkwLjItMjM0Ljh6TTQ3Ny44IDI4OGw2NCAwYzE4LjUgMCAzMy4zIDE1LjcgMjkuNSAzMy44LTEwLjIgNDguNC0zNSA5MS40LTY5LjYgMTI0LjItMTIuMyAxMS43LTMxLjYgOS4yLTQyLjQtMy45TDM3NC45IDM0MC40Yy0xNy4zLTIwLjktMi40LTUyLjQgMjQuNi01Mi40bDc4LjIgMHoiXX0sUEx0PUFuZSxJTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZnJvZyIsaWNvbjpbNTc2LDUxMixbXSwiZjUyZSIsIk0zNjggMzJjNDEuNyAwIDc1LjkgMzEuOCA3OS43IDcyLjVsODUuNiAyNi4zYzI1LjQgNy44IDQyLjggMzEuMyA0Mi44IDU3LjkgMCAyMS44LTExLjcgNDEuOS0zMC43IDUyLjdsLTE0NC41IDgyLjEgOTIuNSA5Mi41IDUwLjcgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRMMzQ2LjkgMzYwLjJjMTEuNy0zNiAzLjItNzcuMS0yNS40LTEwNS43LTQwLjYtNDAuNi0xMDYuMy00MC42LTE0Ni45LS4xTDEwMSAzMjQuNGMtNi40IDYuMS02LjcgMTYuMi0uNiAyMi42czE2LjIgNi42IDIyLjYgLjZsNzMuOC03MC4yIC4xLS4xIC4xLS4xYzMuNS0zLjUgNy4zLTYuNiAxMS4zLTkuMiAyNy45LTE4LjUgNjUuOS0xNS40IDkwLjUgOS4yIDI0LjcgMjQuNyAyNy43IDYyLjkgOSA5MC45LTIuNiAzLjgtNS42IDcuNS05IDEwLjlMMjYxLjggNDE2IDM1MiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwQzI4LjcgNDgwIDAgNDUxLjMgMCA0MTYgMCAyNDkuNiAxMjcgMTEyLjkgMjg5LjMgOTcuNSAyOTYuMiA2MC4yIDMyOC44IDMyIDM2OCAzMnptMCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxGTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZS1ib3R0bGUiLGljb246WzMyMCw1MTIsW10sImY3MmYiLCJNODAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDExLjgtNi40IDIyLjItMTYgMjcuN2wwIDE0NS42YzU2LjUgMjQuNyA5NiA4MS4xIDk2IDE0Ni43bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDU3NmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyODhjMC02NS42IDM5LjUtMTIyIDk2LTE0Ni43TDk2LTQuM0M4Ni40LTkuOCA4MC0yMC4yIDgwLTMyek05NiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDI4OHoiXX0sT0x0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluYm94IixpY29uOls1MTIsNTEyLFtdLCJmMDFjIiwiTTkxLjggMzJDNTkuOSAzMiAzMi45IDU1LjQgMjguNCA4Ni45TC42IDI4MS4yYy0uNCAzLS42IDYtLjYgOS4xTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTI1LjdjMC0zLS4yLTYuMS0uNi05LjFMNDgzLjYgODYuOUM0NzkuMSA1NS40IDQ1Mi4xIDMyIDQyMC4yIDMyTDkxLjggMzJ6bTAgNjRsMzI4LjUgMCAyNy40IDE5Mi01OS45IDBjLTEyLjEgMC0yMy4yIDYuOC0yOC42IDE3LjdsLTE0LjMgMjguNmMtNS40IDEwLjgtMTYuNSAxNy43LTI4LjYgMTcuN2wtMTIwLjQgMGMtMTIuMSAwLTIzLjItNi44LTI4LjYtMTcuN2wtMTQuMy0yOC42Yy01LjQtMTAuOC0xNi41LTE3LjctMjguNi0xNy43TDY0LjMgMjg4IDkxLjggOTZ6Il19LCRuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtaCIsaWNvbjpbNDQ4LDUxMixbImgtc3F1YXJlIl0sImYwZmQiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzIwIDE2OGwwIDE3NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0LTk2IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgOTYgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LEJMdD0kbmUsUkx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwiLGljb246WzUxMiw1MTIsW10sImUzYjIiLCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHpNMjI0IDI0OGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sRG5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLXJpZ2h0IixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtcmlnaHQiXSwiZjEzOCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwek0yNDEgMzc3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDg3LTg3LTg3LTg3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBMMzQ1IDIzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyNDEgMzc3eiJdfSxITHQ9RG5lLHFMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNzdiIsaWNvbjpbNTc2LDUxMixbXSwiZjZkZCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDgwIDAgMC0xMTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTc2IDAgMC0xNjUuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNMjY0IDM4MGMtMjQuMyAwLTQ0IDE5LjctNDQgNDRsMCA4MGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwxNiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtOGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCA4YzAgMi4yLTEuOCA0LTQgNGwtMTYgMGMtMi4yIDAtNC0xLjgtNC00bDAtODBjMC0yLjIgMS44LTQgNC00bDE2IDBjMi4yIDAgNCAxLjggNCA0bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0yNC4zLTE5LjctNDQtNDQtNDRsLTE2IDB6bTEzNiAwYy0yOC43IDAtNTIgMjMuMy01MiA1MnMyMy4zIDUyIDUyIDUyYzYuNiAwIDEyIDUuNCAxMiAxMnMtNS40IDEyLTEyIDEybC0zMiAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwzMiAwYzI4LjcgMCA1Mi0yMy4zIDUyLTUycy0yMy4zLTUyLTUyLTUyYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDI0IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC0yNCAwem05NiAwYy0xMSAwLTIwIDktMjAgMjBsMCAzMS42YzAgMzUuNSAxMC41IDcwLjMgMzAuMiA5OS44bDUuMSA3LjdjMy43IDUuNiAxMCA4LjkgMTYuNiA4LjlzMTIuOS0zLjMgMTYuNi04LjlsNS4xLTcuN2MxOS43LTI5LjYgMzAuMi02NC4zIDMwLjItOTkuOGwwLTMxLjZjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgMzEuNmMwIDE5LjYtNC4xIDM4LjktMTIgNTYuNy03LjktMTcuOC0xMi0zNy4xLTEyLTU2LjdsMC0zMS42YzAtMTEtOS0yMC0yMC0yMHoiXX0sVkx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhdC1jb3dib3kiLGljb246WzY0MCw1MTIsW10sImY4YzAiLCJNMTgyLjIgNzYuMUwxMzAuOCAzMDcuNUMxNDUuNSAzMjQuOSAxNjcuNCAzMzYgMTkyIDMzNmwyNTYgMGMyNC42IDAgNDYuNS0xMS4xIDYxLjItMjguNUw0NTcuOCA3Ni4xYy01LjctMjUuOC0yOC42LTQ0LjEtNTUtNDQuMS0xMi4yIDAtMjQuMSA0LTMzLjggMTEuM2wtNC43IDMuNWMtMjYuMyAxOS43LTYyLjQgMTkuNy04OC42IDBMMjcxIDQzLjNjLTkuOC03LjMtMjEuNi0xMS4zLTMzLjgtMTEuMy0yNi40IDAtNDkuMyAxOC4zLTU1IDQ0LjF6TTY0IDI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDIzOC4zIDAgMjU2QzAgMzYyIDg2IDQ0OCAxOTIgNDQ4bDI1NiAwYzEwNiAwIDE5Mi04NiAxOTItMTkyIDAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0yNTYgMGMtNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjh6Il19LEVuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlLXdpbmsiLGljb246WzUxMiw1MTIsWzEyODU0MCwiZ3Jpbi10b25ndWUtd2luayJdLCJmNThiIiwiTTE1Mi4yIDQ5MC4xQzYyLjUgNDUwLjIgMCAzNjAuNCAwIDI1NiAwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZjMCAxMDQuNC02Mi41IDE5NC4yLTE1Mi4yIDIzNC4xIDUuMy0xMyA4LjItMjcuMiA4LjItNDIuMWwwLTYxLjdjMTYuOS0xNi41IDMwLjEtMzYuNyAzOC4zLTU5LjMgNC4zLTExLjgtNy43LTIxLjgtMTkuNi0xOC4xLTM5LjIgMTIuMi04My43IDE5LjEtMTMwLjcgMTkuMXMtOTEuNS02LjktMTMwLjctMTkuMWMtMTEuOS0zLjctMjMuOSA2LjMtMTkuNiAxOC4xIDguMyAyMi42IDIxLjUgNDIuOCAzOC4zIDU5LjNsMCA2MS43YzAgMTQuOSAyLjkgMjkuMSA4LjIgNDIuMXpNMTUyIDIxMmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE4NCA2MGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpNMzIwIDQwMi42bDAgNDUuNGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGwwLTQ1LjRjMC0xNC43IDExLjktMjYuNiAyNi42LTI2LjZsMiAwYzExLjMgMCAyMS4xIDcuOSAyMy42IDE4LjkgMi44IDEyLjYgMjAuOCAxMi42IDIzLjYgMCAyLjUtMTEuMSAxMi4zLTE4LjkgMjMuNi0xOC45bDIgMGMxNC43IDAgMjYuNiAxMS45IDI2LjYgMjYuNnpNMzM2IDE4NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LFVMdD1FbmUsakx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImwiLGljb246WzMyMCw1MTIsWzEwOF0sIjRjIiwiTTY0IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzUyIDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMzIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LG9VPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tc2hvcnQtd2lkZSIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LWRlc2MiLCJzb3J0LWFtb3VudC1kb3duLWFsdCJdLCJmODg0IiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxXTHQ9b1UsR0x0PW9VLE5uZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3MtaGFsZiIsaWNvbjpbMzg0LDUxMixbImhvdXJnbGFzcy0yIl0sImYyNTIiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwwIDExYzAgNDIuNCAxNi45IDgzLjEgNDYuOSAxMTMuMWw2Ny45IDY3LjktNjcuOSA2Ny45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3bDAgMTFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMWMwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFsLTY3LjktNjcuOSA2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFsMC0xMWMxNy43IDAgMzItMTQuMyAzMi0zMlMzNjkuNyAwIDM1MiAwTDMyIDB6TTk2IDc1bDAtMTEgMTkyIDAgMCAxMWMwIDE5LTUuNiAzNy40LTE2IDUzTDExMiAxMjhjLTEwLjMtMTUuNi0xNi0zNC0xNi01M3ptMTYgMzA5YzMuNS01LjMgNy42LTEwLjMgMTIuMS0xNC45bDY3LjktNjcuOSA2Ny45IDY3LjljNC42IDQuNiA4LjYgOS42IDEyLjIgMTQuOUwxMTIgMzg0eiJdfSxZTHQ9Tm5lLFBuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcG9vbiIsaWNvbjpbNTEyLDUxMixbMTI5MzQ4LDYxODczLCJ1dGVuc2lsLXNwb29uIl0sImYyZTUiLCJNMjQ1LjggMjIwLjljLTE0LjUtMTcuNi0yMS44LTM5LjItMjEuOC02MC44IDAtODAuMiA5Ni0xNjAuMiAxOTItMTYwLjIgNTMgMCA5NiA0MyA5NiA5NiAwIDk2LTgwIDE5Mi0xNjAuMiAxOTItMjEuNiAwLTQzLjItNy4zLTYwLjgtMjEuOEw1NC42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDUuOCAyMjAuOXoiXX0sWkx0PVBuZSxJbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JlZGl0LWNhcmQiLGljb246WzUxMiw1MTIsWzEyODE3OSw2MjA4MywiY3JlZGl0LWNhcmQtYWx0Il0sImYwOWQiLCJNMCAxMjhsMCAzMiA1MTIgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4em0wIDgwTDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2LTUxMiAwek02NCAzNjBjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTE0NCAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxYTHQ9SW5lLFJVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW52b2ljZS1kb2xsYXIiLGljb246WzM4NCw1MTIsW10sImY1NzEiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTY0IDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjRDNzQuNyA2NCA2NCA3NC43IDY0IDg4em0wIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0xMTIgNzZsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMTUyIDQwMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMHoiXX0sRm5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwYWdoZXR0aS1tb25zdGVyLWZseWluZyIsaWNvbjpbNjQwLDUxMixbInBhc3RhZmFyaWFuaXNtIl0sImY2N2IiLCJNMjA4IDY0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDBjMCAxNi4yLTYgMzEuMS0xNiA0Mi4zbDE1LjYgMzEuMmMxOC43LTYgMzkuOS05LjUgNjQuNC05LjVzNDUuOCAzLjUgNjQuNCA5LjVMNDAwIDEwNi4zYy0xMC0xMS4zLTE2LTI2LjEtMTYtNDIuMyAwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjRjLTEuNyAwLTMuNC0uMS01LjEtLjJMNDI3LjggMTU4YzIxLjEgMTMuNiAzNy43IDMwLjIgNTEuNCA0Ni40IDcuMSA4LjMgMTMuNSAxNi42IDE5LjMgMjRsMS40IDEuOGM2LjMgOC4xIDExLjYgMTQuOCAxNi43IDIwLjQgMTAuNyAxMS43IDE2LjEgMTMuNCAxOS40IDEzLjQgMi41IDAgNC4zLS42IDcuMS0zLjMgMy43LTMuNSA3LjEtOC44IDEyLjUtMTcuNGwuNi0uOWM0LjYtNy40IDExLTE3LjYgMTkuNC0yNS43IDkuNy05LjMgMjIuOS0xNi43IDQwLjQtMTYuNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMi41IDAtNC4zIC42LTcuMSAzLjMtMy43IDMuNS03LjEgOC44LTEyLjUgMTcuNGwtLjYgLjljLTQuNiA3LjQtMTEgMTcuNi0xOS40IDI1LjctOS43IDkuMy0yMi45IDE2LjctNDAuNCAxNi43LTE4LjUgMC0zMi45LTguNS00NC4zLTE4LjYtMy4xIDQtNi42IDguMy0xMC41IDEyLjcgMS40IDQuMyAyLjggOC41IDQgMTIuNSAuOSAzIDEuOCA1LjggMi42IDguNiAzIDkuOCA1LjUgMTguMiA4LjYgMjUuOSAzLjkgOS44IDcuNCAxNS40IDEwLjggMTguNSAyLjYgMi40IDUuOSA0LjMgMTIuOCA0LjMgOC43IDAgMTYuOS00LjIgMzMuNy0xMy4yIDE1LTggMzUuNy0xOC44IDYyLjMtMTguOCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTMuNCAwLTI0LjcgNS4yLTM5LjcgMTMuMi0xIC42LTIuMSAxLjEtMy4yIDEuNy0xMy4xIDcuMS0zMS42IDE3LjEtNTMuMSAxNy4xLTE4LjQgMC0zMy42LTYuMS00NS41LTE3LjItMTEuMS0xMC4zLTE3LjktMjMuNy0yMi43LTM2LTMuNi05LTYuNy0xOS4xLTkuNS0yOC41LTE2LjQgMTIuMy0zNi4xIDIzLjYtNTguOSAzMS4zIDMuNiAxMC44IDguNCAyMy41IDE0LjQgMzYuMiA3LjUgMTUuOSAxNi4yIDMwLjQgMjUuOCA0MC41IDkuNiAxMC4yIDE3LjcgMTMuNyAyNC41IDEzLjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI1LjIgMC00NS0xMy41LTU5LjUtMjguOC0xNC41LTE1LjQtMjUuNy0zNC45LTM0LjItNTMtOC0xNy0xNC4xLTMzLjgtMTguMy00Ni45LTUuMiAuNC0xMC42IC42LTE2IC42cy0xMC44LS4yLTE2LS42Yy00LjIgMTMtMTAuMyAyOS45LTE4LjMgNDYuOS04LjUgMTguMS0xOS44IDM3LjYtMzQuMiA1My0xNC40IDE1LjMtMzQuMyAyOC44LTU5LjUgMjguOC0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzYuOCAwIDE1LTMuNSAyNC41LTEzLjcgOS41LTEwLjEgMTguMy0yNC42IDI1LjgtNDAuNSA1LjktMTIuNiAxMC43LTI1LjQgMTQuNC0zNi4yLTIyLjgtNy43LTQyLjUtMTktNTguOS0zMS4zLTIuOSA5LjQtNiAxOS41LTkuNSAyOC41LTQuOCAxMi4yLTExLjYgMjUuNi0yMi43IDM2LTExLjkgMTEuMS0yNy4xIDE3LjItNDUuNSAxNy4yLTEzLjEgMC0yNC41LTQuMS0zMy44LTguOS03LjktNC0xNS43LTkuMi0yMi4xLTEzLjVsMCAwLTIuNC0xLjZjLTE1LjMtMTAuMi0yNS44LTE2LTM3LjctMTYtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyOC4xIDAgNDkuNiAxNC4yIDY0LjMgMjRsMi40IDEuNmM2LjkgNC42IDEyLjEgOC4xIDE3LjIgMTAuNyA1LjUgMi44IDkuMSAzLjYgMTIgMy42IDYuOCAwIDEwLjItMS45IDEyLjgtNC4zIDMuNC0zLjIgNy04LjggMTAuOC0xOC41IDMtNy43IDUuNi0xNi4xIDguNi0yNS45IC44LTIuNyAxLjctNS42IDIuNi04LjYgMS4yLTQgMi42LTguMiA0LTEyLjUtMy45LTQuNS03LjQtOC44LTEwLjUtMTIuNy0xMS40IDEwLjEtMjUuOSAxOC42LTQ0LjMgMTguNi0xNy41IDAtMzAuNy03LjQtNDAuNC0xNi43LTguNC04LjEtMTQuOC0xOC4zLTE5LjQtMjUuN2wtLjYtLjljLTUuNC04LjYtOC44LTEzLjktMTIuNS0xNy40LTIuOC0yLjctNC42LTMuMy03LjEtMy4zLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMTcuNSAwIDMwLjcgNy40IDQwLjQgMTYuNyA4LjQgOC4xIDE0LjggMTguMyAxOS40IDI1LjdsLjYgLjljNS40IDguNiA4LjggMTMuOSAxMi41IDE3LjQgMi44IDIuNyA0LjYgMy4zIDcuMSAzLjMgMy4zIDAgOC43LTEuNyAxOS40LTEzLjQgNS4xLTUuNiAxMC40LTEyLjMgMTYuNy0yMC40bDEuNC0xLjhjNS44LTcuNCAxMi4yLTE1LjcgMTkuMy0yNCAxMy44LTE2LjIgMzAuMy0zMi44IDUxLjQtNDYuNGwtMTUuMS0zMC4yYy0xLjcgLjEtMy40IC4yLTUuMSAuMi0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0IDY0IDI4LjcgNjQgNjR6bTIwOCAwYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LFFMdD1GbmUsT25lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MtY2l0cnVzIixpY29uOls2NDAsNTEyLFsiY29ja3RhaWwiXSwiZjU2MSIsIk01NzYgODBjMC00NC4yLTM1LjgtODAtODAtODAtMTggMC0zNC42IDYtNDggMTZsLTgxIDBjMjMuNi00Ny40IDcyLjUtODAgMTI5LTgwIDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzU3NS41IDIyNCA0OTYgMjI0Yy02LjUgMC0xMy0uNC0xOS4zLTEuM2w2NC03NC43YzEuMS0xLjMgMi4yLTIuNyAzLjMtNC4xIDE5LjQtMTQuNiAzMi0zNy44IDMyLTY0ek02Ni45IDgyLjZDNzIuMiA3MS4zIDgzLjUgNjQgOTYgNjRsMzg0IDBjMTIuNSAwIDIzLjggNy4zIDI5LjEgMTguNnMzLjQgMjQuNy00LjggMzQuMmwtMTg0LjMgMjE1IDAgMTE2LjIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTExNi4yLTE4NC4zLTIxNWMtOC4xLTkuNS0xMC0yMi44LTQuOC0zNC4yek0xNjUuNiAxMjhMMjg4IDI3MC44IDQxMC40IDEyOCAxNjUuNiAxMjh6Il19LEtMdD1PbmUsSkx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1bGxob3JuIixpY29uOls1MTIsNTEyLFsxMjgyMjYsMTI4MzYzXSwiZjBhMSIsIk00NjEuMiAxOC45QzQ3Mi43IDI0IDQ4MCAzNS40IDQ4MCA0OGwwIDQxNmMwIDEyLjYtNy4zIDI0LTE4LjggMjkuMXMtMjQuOCAzLjItMzQuMy01LjFsLTQ2LjYtNDAuN2MtNDMuNi0zOC4xLTk4LjctNjAuMy0xNTYuNC02M2wwIDk1LjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZDNTcuMyAzODQgMCAzMjYuNyAwIDI1NlM1Ny4zIDEyOCAxMjggMTI4bDg0LjUgMGM2MS44LS4yIDEyMS40LTIyLjcgMTY3LjktNjMuM2w0Ni42LTQwLjdjOS40LTguMyAyMi45LTEwLjIgMzQuMy01LjF6TTIyNCAzMjBsMCAuMmM3MC4zIDIuNyAxMzcuOCAyOC41IDE5MiA3My40bDAtMjc1LjNjLTU0LjIgNDQuOS0xMjEuNyA3MC43LTE5MiA3My40TDIyNCAzMjB6Il19LGVUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3gtdGlzc3VlIixpY29uOls1MTIsNTEyLFtdLCJlMDViIiwiTTEwMy45IDMybDE2MSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45bDE3LjQgNTIuMmM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDYwLjUgMGMyMS44IDAgMzcuMyAyMS40IDMwLjQgNDIuMUwzODQgMzIwIDEyOCAzMjAgNzIuNyA3MC45QzY4LjIgNTEgODMuNCAzMiAxMDMuOSAzMnpNNDggMjU2bDE2LjYgMCAxNi41IDc0LjRDODYgMzUyLjQgMTA1LjUgMzY4IDEyOCAzNjhsMjU2IDBjMjAuNyAwIDM5LTEzLjIgNDUuNS0zMi44bDI2LjQtNzkuMiA4LjEgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMzA0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSx0VHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWF0dHJlc3MtcGlsbG93IixpY29uOls1NzYsNTEyLFtdLCJlNTI1IiwiTTI1NiA2NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwLTM4NHptNDggMzg0bDIwOCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yMDggMCAwIDM4NHpNNjQgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyeiJdfSxhVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi1sZWZ0IixpY29uOlszMjAsNTEyLFs5MDAxXSwiZjA1MyIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE5MiAxOTJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyNDYuNiA4Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xOTIgMTkyeiJdfSxyVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbW9vbi1yYWluIixpY29uOls1NzYsNTEyLFtdLCJmNzNjIiwiTTQ0OCAwYy02OC42IDAtMTI3LjEgNDMuMS0xNDkuOCAxMDMuOCAxNy4xIDE0LjEgMjkuNiAzMy41IDM0LjkgNTUuOCAzOS45IDIxLjcgNjYuOSA2My45IDY2LjkgMTEyLjUgMCAxMy41LTIuMSAyNi41LTUuOSAzOC43IDE2LjkgNiAzNSA5LjMgNTMuOSA5LjMgNDMgMCA4Mi4xLTE3IDExMC44LTQ0LjYgNC42LTQuNCA1LjktMTEuMiAzLjMtMTdzLTguNi05LjMtMTQuOS04LjhjLTMgLjItNi4xIC40LTkuMiAuNC02My41IDAtMTE1LTUxLjUtMTE1LTExNSAwLTQ1LjEgMjYtODQuMiA2My44LTEwMyA1LjctMi44IDktOC45IDguMi0xNS4yUzQ4OS42IDUuMyA0ODMuNCAzLjlDNDcyIDEuNCA0NjAuMiAwIDQ0OCAwek0yNzIgMzUyYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMzktMjcuOS03MS41LTY0LjgtNzguNiAuNS0zLjEgLjgtNi4yIC44LTkuNCAwLTMwLjktMjUuMS01Ni01Ni01Ni0xMi40IDAtMjMuOSA0LTMzLjEgMTAuOC0xMy40LTI1LjUtNDAuMS00Mi44LTcwLjktNDIuOC00NC4yIDAtODAgMzUuOC04MCA4MCAwIDcuNCAxIDE0LjYgMi45IDIxLjUtMjkuOCAxMS42LTUwLjkgNDAuNi01MC45IDc0LjUgMCA0NC4yIDM1LjggODAgODAgODBsMTkyIDB6TTY5IDQwMS4xYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJMMTcuMiA0ODAuNEMxMyA0OTMgMTkuOCA1MDYuNiAzMi40IDUxMC44czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40em0xMjAgMGMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS40IDY0LjFjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHptMTIwIDBjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuNCA2NC4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6Il19LHNVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tMS05IixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLWFzYyIsInNvcnQtbnVtZXJpYy1kb3duIl0sImYxNjIiLCJNNDE4LjcgMzhjOC4zIDYgMTMuMyAxNS43IDEzLjMgMjZsMCA5NiAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC01MS42LTUuOSAyYy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41bDQ4LTE2YzkuOC0zLjMgMjAuNS0xLjYgMjguOCA0LjR6TTM2NS4xIDQzMC42bDExLjctMThjLTMyLjktOS45LTU2LjgtNDAuNS01Ni44LTc2LjYgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDIyLjktNi42IDQ1LjMtMTkuMSA2NC41bC00Mi4xIDY0LjljLTkuNiAxNC44LTI5LjQgMTkuMS00NC4zIDkuNHMtMTkuMS0yOS40LTkuNC00NC4zek00MjQgMzM2YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTE1MC42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDQxLjQtNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC05NiA5NnoiXX0saVR0PXNVLG9UdD1zVSxzVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1zcG9jayIsaWNvbjpbNTEyLDUxMixbMTI4NDA2XSwiZjI1OSIsIk0yMTQuOSAyMy43QzIxMC4zIDYuNiAxOTIuOC0zLjUgMTc1LjcgMS4xcy0yNy4yIDIyLjEtMjIuNiAzOS4yTDIwNiAyMzcuOGMyLjUgOS4yLTQuNSAxOC4yLTE0IDE4LjItNi40IDAtMTItNC4yLTEzLjktMTAuM0wxMzQuNiAxMDIuN2MtNS4xLTE2LjktMjMtMjYuNC0zOS45LTIxLjNzLTI2LjQgMjMtMjEuMyAzOS45bDYyLjggMjA2LjRjMi40IDcuOS03LjIgMTMuOC0xMy4yIDguMUw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4xIDBjLjEgMCAuMS0uMSAuMS0uMXMuMS0uMSAuMS0uMWM1OC4zLTMuNSAxMDguNi00My4yIDEyNS4zLTk5LjdsODEuMi0yNzVjNS0xNi45LTQuNy0zNC43LTIxLjYtMzkuOHMtMzQuNyA0LjctMzkuOCAyMS42TDQxMS41IDI0Ny4xYy0xLjYgNS4zLTYuNCA4LjktMTIgOC45LTcuOSAwLTEzLjgtNy4zLTEyLjItMTUuMWwzNi0xNzAuM2MzLjctMTcuMy03LjQtMzQuMy0yNC43LTM3LjlzLTM0LjMgNy40LTM3LjkgMjQuN0wzMjMuMSAyMzUuMWMtMi42IDEyLjItMTMuMyAyMC45LTI1LjggMjAuOS0xMS45IDAtMjIuNC04LTI1LjQtMTkuNWwtNTctMjEyLjh6Il19LEJuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YW5kLW1hZ2ljLXNwYXJrbGVzIixpY29uOls1NzYsNTEyLFsibWFnaWMtd2FuZC1zcGFya2xlcyJdLCJlMmNhIiwiTTI2My40LTI3TDI3OC4yIDkuOCAzMTUgMjQuNmMzIDEuMiA1IDQuMiA1IDcuNHMtMiA2LjItNSA3LjRMMjc4LjIgNTQuMiAyNjMuNCA5MWMtMS4yIDMtNC4yIDUtNy40IDVzLTYuMi0yLTcuNC01TDIzMy44IDU0LjIgMTk3IDM5LjRjLTMtMS4yLTUtNC4yLTUtNy40czItNi4yIDUtNy40TDIzMy44IDkuOCAyNDguNi0yN2MxLjItMyA0LjItNSA3LjQtNXM2LjIgMiA3LjQgNXpNMTEwLjcgNDEuN2wyMS41IDUwLjEgNTAuMSAyMS41YzUuOSAyLjUgOS43IDguMyA5LjcgMTQuN3MtMy44IDEyLjItOS43IDE0LjdsLTUwLjEgMjEuNS0yMS41IDUwLjFjLTIuNSA1LjktOC4zIDkuNy0xNC43IDkuN3MtMTIuMi0zLjgtMTQuNy05LjdMNTkuOCAxNjQuMiA5LjcgMTQyLjdDMy44IDE0MC4yIDAgMTM0LjQgMCAxMjhzMy44LTEyLjIgOS43LTE0LjdMNTkuOCA5MS44IDgxLjMgNDEuN0M4My44IDM1LjggODkuNiAzMiA5NiAzMnMxMi4yIDMuOCAxNC43IDkuN3pNNDY0IDMwNGM2LjQgMCAxMi4yIDMuOCAxNC43IDkuN2wyMS41IDUwLjEgNTAuMSAyMS41YzUuOSAyLjUgOS43IDguMyA5LjcgMTQuN3MtMy44IDEyLjItOS43IDE0LjdsLTUwLjEgMjEuNS0yMS41IDUwLjFjLTIuNSA1LjktOC4zIDkuNy0xNC43IDkuN3MtMTIuMi0zLjgtMTQuNy05LjdsLTIxLjUtNTAuMS01MC4xLTIxLjVjLTUuOS0yLjUtOS43LTguMy05LjctMTQuN3MzLjgtMTIuMiA5LjctMTQuN2w1MC4xLTIxLjUgMjEuNS01MC4xYzIuNS01LjkgOC4zLTkuNyAxNC43LTkuN3pNNDYwIDBjMTEgMCAyMS42IDQuNCAyOS41IDEyLjJsNDIuMyA0Mi4zQzUzOS42IDYyLjQgNTQ0IDczIDU0NCA4NHMtNC40IDIxLjYtMTIuMiAyOS41bC04OC4yIDg4LjItMTAxLjMtMTAxLjMgODguMi04OC4yQzQzOC40IDQuNCA0NDkgMCA0NjAgMHpNNDQuMiAzOTguNUwzMDguNCAxMzQuMyA0MDkuNyAyMzUuNiAxNDUuNSA0OTkuOEMxMzcuNiA1MDcuNiAxMjcgNTEyIDExNiA1MTJzLTIxLjYtNC40LTI5LjUtMTIuMkw0NC4yIDQ1Ny41QzM2LjQgNDQ5LjYgMzIgNDM5IDMyIDQyOHM0LjQtMjEuNiAxMi4yLTI5LjV6Il19LG5UdD1CbmUsbFR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjdmNSIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMjE3LjYgMTUzLjZjMC0xMC42IDguNi0xOS4yIDE5LjItMTkuMmwzOC40IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmwwIDQ4IDQ4IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmwwIDM4LjRjMCAxMC42LTguNiAxOS4yLTE5LjIgMTkuMmwtNDggMCAwIDQ4YzAgMTAuNi04LjYgMTkuMi0xOS4yIDE5LjJsLTM4LjQgMGMtMTAuNiAwLTE5LjItOC42LTE5LjItMTkuMmwwLTQ4LTQ4IDBjLTEwLjYgMC0xOS4yLTguNi0xOS4yLTE5LjJsMC0zOC40YzAtMTAuNiA4LjYtMTkuMiAxOS4yLTE5LjJsNDggMCAwLTQ4eiJdfSxjVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVsbC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjc3LDYxOTQzXSwiZjFmNiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04Ny41LTg3LjVjMTcuMi0yLjQgMzAuNS0xNy4zIDMwLjUtMzUuMiAwLTguMS0yLjctMTUuOS03LjgtMjIuMmwtOS44LTEyLjJDNDY0LjQgMzA4LjUgNDQ4IDI2MS44IDQ0OCAyMTMuN2wwLTIxLjdjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhsMC0zLjJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzLjJjLTM4LjYgNy44LTcyLjIgMjkuNi05NS4yIDU5LjdMNDEtMjQuOXptODcgMjM4LjVjMCA0OC4xLTE2LjQgOTQuOC00Ni40IDEzMi40bC05LjggMTIuMmMtNSA2LjMtNy44IDE0LjEtNy44IDIyLjIgMCAxOS42IDE1LjkgMzUuNSAzNS41IDM1LjVsMjM1LjMgMC0yMDYuOS0yMDYuOSAwIDQuNXpNMjg4IDUxMmMyOS44IDAgNTQuOS0yMC40IDYyLTQ4bC0xMjQgMGM3LjEgMjcuNiAzMi4yIDQ4IDYyIDQ4eiJdfSxuVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2Utc2xhc2giLGljb246WzU3Niw1MTIsWzU3NDM5LCJoYW5kc2hha2UtYWx0LXNsYXNoIiwiaGFuZHNoYWtlLXNpbXBsZS1zbGFzaCJdLCJlMDYwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTI4OC0yODggMTQuMi0xNC4yYzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM3NiA1NzYgMzIwIDU3NiAzMiA0NjQgOTYgNDQwLjIgODAuMUM0MjQuNCA2OS42IDQwNS45IDY0IDM4Ni45IDY0bC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMWwtNTUuOCA2Mi4xLTM0LTM0IDQ0LjMtNDkuMi0zOS43IDBjLTE1LjMgMC0zMC4xIDMuNi00My41IDEwLjRMNDEtMjQuOXpNMCA2OS44TDAgMzIwIDE1Ni40IDQ1MC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMyMi4yIDAgNDMuOC01LjggNjIuOC0xNi40TDAgNjkuOHoiXX0sZFR0PW5VLGZUdD1uVSx1VHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLXdhdGVyIixpY29uOlszMjAsNTEyLFtdLCJlNGM1IiwiTTExMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwQzk0LjMgMzIgODAgMTcuNyA4MCAwczE0LjMtMzIgMzItMzJ6TTE2IDE0NGMwLTM1LjMgMjguNy02NCA2NC02NGwxNjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDI0LjEtMTMuMyA0NS4xLTMzIDU2IDE5LjcgMTAuOSAzMyAzMS45IDMzIDU2cy0xMy4zIDQ1LjEtMzMgNTZjMTkuNyAxMC45IDMzIDMxLjkgMzMgNTZzLTEzLjMgNDUuMS0zMyA1NmMxOS43IDEwLjkgMzMgMzEuOSAzMyA1NiAwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjQuMSAxMy4zLTQ1LjEgMzMtNTYtMTkuNy0xMC45LTMzLTMxLjktMzMtNTZzMTMuMy00NS4xIDMzLTU2Yy0xOS43LTEwLjktMzMtMzEuOS0zMy01NnMxMy4zLTQ1LjEgMzMtNTZjLTE5LjctMTAuOS0zMy0zMS45LTMzLTU2eiJdfSxwVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1kMjAiLGljb246WzUxMiw1MTIsW10sImY2Y2YiLCJNMjI0LjQtOC4yYzE5LjYtMTEuMSA0My42LTExLjEgNjMuMSAwbDE5MiAxMDguOGMyMCAxMS40IDMyLjQgMzIuNiAzMi40IDU1LjdsMCAyMTUuNmMwIDIzLTEyLjQgNDQuMy0zMi40IDU1LjdsLTE5MiAxMDguOGMtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBMMzIuNCA0MjcuNUMxMi40IDQxNi4xIDAgMzk0LjggMCAzNzEuOEwwIDE1Ni4yYzAtMjMgMTIuNC00NC4zIDMyLjQtNTUuN0wyMjQuNC04LjJ6bTUyIDczLjJDMjY3IDQ5LjggMjQ1IDQ5LjggMjM1LjYgNjVsLTc2LjYgMTIzLjctODUuNC00Ni4zLTMuOC0xLjZjLTguOS0yLjctMTguOCAxLjEtMjMuNCA5LjZzLTIuNCAxOC45IDQuNyAyNC44bDMuMyAyLjMgODMuNCA0NS4yLTc0LjYgMTIwLjZDNTUuMyAzNTYuMiA2MSAzNzMgNzUgMzc4LjRsMTYxIDYxLjkgMCAzOS43YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMzkuNyAxNjEtNjEuOWMxNC01LjQgMTkuNy0yMi4yIDExLjgtMzVsLTc0LjctMTIwLjYgODMuNC00NS4yYzkuNy01LjMgMTMuMy0xNy40IDguMS0yNy4xcy0xNy40LTEzLjMtMjcuMS04LjFMMzUzIDE4OC43IDI3Ni40IDY1em0tNDcgMzI5LjlsLTEyMi00Ni45IDU0LjUtODguMSA2Ny41IDEzNXpNNDA0LjYgMzQ4bC0xMjIgNDYuOSA2Ny41LTEzNSA1NC41IDg4LjF6TTMxOS4zIDIzMkwyNTYgMzU4LjYgMTkyLjcgMjMyIDMxOS4zIDIzMnpNMzA4IDE5MmwtMTA0LjEgMCA1Mi04NCA1MiA4NHoiXX0sbFU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi16LWEiLGljb246WzUxMiw1MTIsWyJzb3J0LWFscGhhLWRlc2MiLCJzb3J0LWFscGhhLWRvd24tYWx0Il0sImY4ODEiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0yODggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwzOTcuMyAxNjAgNDQ4IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45TDM3MC44IDk2IDMyMCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQxMi42IDI3My43bDgwIDE2MGM3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC03LjItMTQuMy04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsODAtMTYwYzUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdzMjMuMiA2LjggMjguNiAxNy43ek0zODQgMzU5LjZsLTIwLjIgNDAuNCA0MC40IDAtMjAuMi00MC40eiJdfSxoVHQ9bFUsbVR0PWxVLGdUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicnVzaCIsaWNvbjpbMzg0LDUxMixbXSwiZjU1ZCIsIk0xNjIuNCA2Yy0xLjUtMy42LTUtNi04LjktNmwtMTkgMGMtMy45IDAtNy41IDIuNC04LjkgNkwxMDQuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDY2LjQgNmMtMS41LTMuNi01LTYtOC45LTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhsMCAyMDggMzg0IDAgMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjMwLjUgMGMtMy45IDAtNy41IDIuNC04LjkgNkwyMDAuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDE2Mi40IDZ6TTAgMzA0bDAgMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMCAwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC02NCA2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTYtMzg0IDB6TTE5MiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnoiXX0seFR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWRhc2hlZC1saW5lLWFycm93LXJpZ2h0IixpY29uOls2NDAsNTEyLFtdLCJlNTUzIiwiTTE2MCA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNNzMuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMMjguMSAxODIuNkMxMC4xIDIwMC42IDAgMjI1IDAgMjUwLjVMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6TTg1LjggNDA3LjNjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDkuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhMODUuOCA0MDcuM3pNNDMyIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMzg0LTUuMyAzODQgOGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnptMCAxMjhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTQwOCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTYwOSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxSbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtc2hvcnQtd2lkZSIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LXVwLWFsdCJdLCJmODg1IiwiTTMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwem0wIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwem0wIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMHpNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2eiJdfSxiVHQ9Um5lLEhuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLXZlcnRpY2FsIixpY29uOlszMjAsNTEyLFsiZ3JpZC12ZXJ0aWNhbCJdLCJmNThlIiwiTTEyOCA0MGMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAwQzE3LjkgMCAwIDE3LjkgMCA0MEwwIDg4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHptMCAxOTJjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4ek0wIDQyNGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6TTMyMCA0MGMwLTIyLjEtMTcuOS00MC00MC00MEwyMzIgMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6TTE5MiAyMzJsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek0zMjAgNDI0YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHoiXX0sdlR0PUhuZSx5VHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLXR1bm5lbCIsaWNvbjpbNTEyLDUxMixbXSwiZTRkZSIsIk0yNTYgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDIuOCAwYy02LjYtNS45LTEwLjgtMTQuNC0xMC44LTI0bDAtMTEzLjFjMC0xMy41IDMuMS0yNi44IDktMzguOWwzOS43LTgwLjhjOS40LTE5LjEgMjguOS0zMS4zIDUwLjItMzEuM0wzMTcgMjI0YzIxLjMgMCA0MC44IDEyLjEgNTAuMiAzMS4zTDQwNyAzMzZjNS45IDEyLjEgOSAyNS40IDkgMzguOUw0MTYgNDg4YzAgOS42LTQuMiAxOC4xLTEwLjggMjRsNDIuOCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyQzUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwek0zNjIuOCA1MTJjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRsMC0yNC0xOTIgMCAwIDI0YzAgOS42LTQuMiAxOC4xLTEwLjggMjRsMjEzLjcgMHptLTE3NS0yMzUuNWwtMjkuMyA1OS41IDE5NC45IDAtMjkuMy01OS41Yy0xLjMtMi43LTQuMS00LjUtNy4yLTQuNUwxOTUgMjcyYy0zIDAtNS44IDEuNy03LjIgNC41ek0xNzYgNDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMTg0LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LHdUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1jb2x1bW4iLGljb246WzUxMiw1MTIsW10sImUwZTMiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnpNMTQ0IDIyNGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE0NC02NGwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem04MCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTUxMiA5NmwwIDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxNVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stYXJyb3ctcmlnaHQiLGljb246WzU3Niw1MTIsW10sImU1OGIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMzA1IDIyNWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMDIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjl6Il19LGNVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR2IixpY29uOls1NzYsNTEyLFs2MzcxNywidGVsZXZpc2lvbiIsInR2LWFsdCJdLCJmMjZjIiwiTTY0IDk2bDAgMjQwIDQ0OCAwIDAtMjQwLTQ0OCAwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQwMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTYwIDQ0OGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LHpUdD1jVSxrVHQ9Y1UsU1R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlY3Rpb24iLGljb246WzI1Niw1MTIsW10sImU0NDciLCJNMTEwIDBDNDkuMiAwIDAgNDkuMiAwIDExMCAwIDEzMy43IDcuNiAxNTUuOCAyMC41IDE3NCA3LjYgMTkyIDAgMjE0LjEgMCAyMzggMCAyOTEuNyAzOC45IDMzNy42IDkxLjkgMzQ2LjRsNjEuNyAxMC4zYzIyLjIgMy43IDM4LjQgMjIuOSAzOC40IDQ1LjMgMCAyNS40LTIwLjYgNDYtNDYgNDZsLTk4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTggMGM2MC43IDAgMTEwLTQ5LjIgMTEwLTExMCAwLTIzLjctNy42LTQ1LjktMjAuNS02NCAxMi45LTE4IDIwLjUtNDAuMSAyMC41LTY0IDAtNTMuOC0zOC45LTk5LjYtOTEuOS0xMDguNWwtNjEuNy0xMC4zQzgwLjIgMTUxLjYgNjQgMTMyLjQgNjQgMTEwIDY0IDg0LjYgODQuNiA2NCAxMTAgNjRsOTggMGMxNy43IDAgMzItMTQuMyAzMi0zMlMyMjUuNyAwIDIwOCAwTDExMCAwem03NC43IDI5OS4xYy02LjUtMi40LTEzLjQtNC4zLTIwLjUtNS41bC02MS43LTEwLjNjLTIyLjItMy43LTM4LjQtMjIuOS0zOC40LTQ1LjMgMC05LjIgMi43LTE3LjggNy40LTI1IDYuNSAyLjQgMTMuNCA0LjMgMjAuNSA1LjVsNjEuNyAxMC4zYzIyLjIgMy43IDM4LjQgMjIuOSAzOC40IDQ1LjMgMCA5LjItMi43IDE3LjgtNy40IDI1eiJdfSxDVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVhY2UiLGljb246WzUxMiw1MTIsWzk3NzRdLCJmNjdjIiwiTTIyNCA0NDUuM2wwLTEyMS44LTk0LjMgNzcuMWMyNi4xIDIyLjggNTguNSAzOC43IDk0LjMgNDQuN3pNODkuMiAzNTEuMUwyMjQgMjQwLjggMjI0IDY2LjdjLTkwLjggMTUuMi0xNjAgOTQuMi0xNjAgMTg5LjMgMCAzNC42IDkuMiA2Ny4xIDI1LjIgOTUuMXptMjkzLjEgNDkuNWwtOTQuMy03Ny4xIDAgMTIxLjhjMzUuNy02IDY4LjEtMjEuOSA5NC4zLTQ0Ljd6bTQwLjYtNDkuNWMxNi0yOCAyNS4yLTYwLjUgMjUuMi05NS4xIDAtOTUuMS02OS4yLTE3NC4xLTE2MC0xODkuM2wwIDE3NC4yIDEzNC44IDExMC4zek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxMVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhciIsaWNvbjpbNTc2LDUxMixbMTEwODgsNjE0NDZdLCJmMDA1IiwiTTMwOS41LTE4LjljLTQuMS04LTEyLjQtMTMuMS0yMS40LTEzLjFzLTE3LjMgNS4xLTIxLjQgMTMuMUwxOTMuMSAxMjUuMyAzMy4yIDE1MC43Yy04LjkgMS40LTE2LjMgNy43LTE5LjEgMTYuM3MtLjUgMTggNS44IDI0LjRsMTE0LjQgMTE0LjUtMjUuMiAxNTkuOWMtMS40IDguOSAyLjMgMTcuOSA5LjYgMjMuMnMxNi45IDYuMSAyNSAyTDI4OC4xIDQxNy42IDQzMi40IDQ5MWM4IDQuMSAxNy43IDMuMyAyNS0yczExLTE0LjIgOS42LTIzLjJMNDQxLjcgMzA1LjkgNTU2LjEgMTkxLjRjNi40LTYuNCA4LjYtMTUuOCA1LjgtMjQuNHMtMTAuMS0xNC45LTE5LjEtMTYuM0wzODMgMTI1LjMgMzA5LjUtMTguOXoiXX0sVFR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsYWciLGljb246WzQ0OCw1MTIsWzEyNzk4OCw2MTcyNV0sImYwMjQiLCJNNjQgMzJDNjQgMTQuMyA0OS43IDAgMzIgMFMwIDE0LjMgMCAzMkwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTIxLjYgNjIuNy0xOC44YzQxLjktMTIuNiA4Ny4xLTguNyAxMjYuMiAxMC45IDQyLjcgMjEuNCA5Mi41IDI0IDEzNy4yIDcuMmwzNy4xLTEzLjljMTIuNS00LjcgMjAuOC0xNi42IDIwLjgtMzBsMC0yNDcuN2MwLTIzLTI0LjItMzgtNDQuOC0yNy43bC0xMS44IDUuOWMtNDQuOSAyMi41LTk3LjggMjIuNS0xNDIuOCAwLTM2LjQtMTguMi03OC4zLTIxLjgtMTE3LjItMTAuMUw2NCA1NC40IDY0IDMyeiJdfSxkVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmlhbmdsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTEyLDUxMixbOTg4OCwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLCJ3YXJuaW5nIl0sImYwNzEiLCJNMjU2IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41UzQ4Ni4xIDQ4MCA0NzIgNDgwTDQwIDQ4MGMtMTQuMSAwLTI3LjItNy40LTM0LjQtMTkuNXMtNy41LTI3LjEtLjgtMzkuNWwyMTYtNDAwYzctMTIuOSAyMC41LTIxIDM1LjItMjF6bTAgMzUyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMC0xOTJjLTE4LjIgMC0zMi43IDE1LjUtMzEuNCAzMy43bDcuNCAxMDRjLjkgMTIuNSAxMS40IDIyLjMgMjMuOSAyMi4zIDEyLjYgMCAyMy05LjcgMjMuOS0yMi4zbDcuNC0xMDRjMS4zLTE4LjItMTMuMS0zMy43LTMxLjQtMzMuN3oiXX0sX1R0PWRVLEFUdD1kVSwkVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU2YyIsIk02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI3NiAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC05MC45IDAgMC04OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzEgMCAxLjkgMCAyLjkgLjEgMjYuMy03NC42IDk3LjUtMTI4LjEgMTgxLjEtMTI4LjEgMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC0zMy40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwLTEyNy45LTExNS4xYy0xOC4zLTE2LjQtNDYtMTYuNC02NC4yIDBMMTI4IDEyOCA2NCAxMjh6bTY0IDI0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyek0xMTIgMjU2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZ6TTI4OCAxMjhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxxbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JhZHVhdGlvbi1jYXAiLGljb246WzU3Niw1MTIsWzEyNzg5MSwibW9ydGFyLWJvYXJkIl0sImYxOWQiLCJNNDggMTk1LjhsMjA5LjIgODYuMWM5LjggNCAyMC4yIDYuMSAzMC44IDYuMXMyMS0yLjEgMzAuOC02LjFsMjQyLjQtOTkuOGM5LTMuNyAxNC44LTEyLjQgMTQuOC0yMi4xcy01LjgtMTguNC0xNC44LTIyLjFMMzE4LjggMzguMUMzMDkgMzQuMSAyOTguNiAzMiAyODggMzJzLTIxIDIuMS0zMC44IDYuMUwxNC44IDEzNy45QzUuOCAxNDEuNiAwIDE1MC4zIDAgMTYwTDAgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNjAuMnptNDggNzEuN0w5NiAzODRjMCA1MyA4NiA5NiAxOTIgOTZzMTkyLTQzIDE5Mi05NmwwLTExNi42LTE0Mi45IDU4LjljLTE1LjYgNi40LTMyLjIgOS43LTQ5LjEgOS43cy0zMy41LTMuMy00OS4xLTkuN0w5NiAyNjcuNHoiXX0sRFR0PXFuZSxFVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcmUiLGljb246WzUxMiw1MTIsW10sImY1NGUiLCJNMzAuNyA3Mi4zQzM3LjYgNDguNCA1OS41IDMyIDg0LjQgMzJsMzQ0IDBjMjQuOSAwIDQ2LjggMTYuNCA1My44IDQwLjNsMjMuNCA4MC4yYzEyLjggNDMuNy0yMC4xIDg3LjUtNjUuNiA4Ny41LTI2LjMgMC00OS40LTE0LjktNjAuOC0zNy4xLTExLjYgMjEuOS0zNC42IDM3LjEtNjEuNCAzNy4xLTI2LjYgMC00OS43LTE1LTYxLjMtMzctMTEuNiAyMi0zNC43IDM3LTYxLjMgMzctMjYuOCAwLTQ5LjgtMTUuMS02MS40LTM3LjEtMTEuNCAyMi4xLTM0LjUgMzcuMS02MC44IDM3LjEtNDUuNiAwLTc4LjQtNDMuNy02NS42LTg3LjVMMzAuNyA3Mi4zek05Ni40IDM1MmwzMjAgMCAwLTY2LjRjNy42IDEuNiAxNS41IDIuNCAyMy41IDIuNCAxNC4zIDAgMjgtMi42IDQwLjUtNy4ybDAgMTUxLjJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTM1MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE1MS4yYzEyLjUgNC42IDI2LjEgNy4yIDQwLjUgNy4yIDguMSAwIDE1LjktLjggMjMuNS0yLjRsMCA2Ni40eiJdfSxOVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1hc3Ryb25hdXQiLGljb246WzQ0OCw1MTIsW10sImY0ZmIiLCJNMjI0IDMzNmM3NC42IDAgMTM4LjQtNDYuNCAxNjQtMTEybDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC00IDBDMzYyLjQgMzAuNCAyOTguNi0xNiAyMjQtMTZTODUuNiAzMC40IDYwIDk2bC00IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNCAwYzI1LjYgNjUuNiA4OS40IDExMiAxNjQgMTEyek0yMDggODBsMzIgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMzIgMGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NnpNMTYgNDg0LjZDMTYgNDk5LjcgMjguMyA1MTIgNDMuNCA1MTJsNTIuNiAwIDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OCA1Mi42IDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC01OS44LTMxLjktMTEyLjItNzkuNi0xNDEtMzYuNCAyNS41LTgwLjYgNDAuNC0xMjguNCA0MC40cy05Mi0xNC45LTEyOC40LTQwLjRDNDcuOSAzNzIuNCAxNiA0MjQuOCAxNiA0ODQuNnpNMTgzLjMgMTQxLjVjLS45LTMuMy0zLjktNS41LTcuMy01LjVzLTYuNCAyLjItNy4zIDUuNWwtNiAyMS4yLTIxLjIgNmMtMy4zIC45LTUuNSAzLjktNS41IDcuM3MyLjIgNi40IDUuNSA3LjNsMjEuMiA2IDYgMjEuMmMuOSAzLjMgMy45IDUuNSA3LjMgNS41czYuNC0yLjIgNy4zLTUuNWw2LTIxLjIgMjEuMi02YzMuMy0uOSA1LjUtMy45IDUuNS03LjNzLTIuMi02LjQtNS41LTcuM2wtMjEuMi02LTYtMjEuMnpNMTUyIDQ4OGwwIDI0IDQ4IDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptMTIwLTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDI0IDQ4IDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sUFR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWZsYWciLGljb246WzY0MCw1MTIsW10sImU0ZDUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTc2IDM1MmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtOTYgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjQwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTk2IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yODggMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LFZuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtdWctc2F1Y2VyIixpY29uOls1NzYsNTEyLFsiY29mZmVlIl0sImYwZjQiLCJNNjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzUyIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNTE4LjcgMjg4IDQ0OCAyODhjMCA1My00MyA5Ni05NiA5NmwtMTkyIDBjLTUzIDAtOTYtNDMtOTYtOTZMNjQgNjR6bTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NGwwIDEyOGMzNS4zIDAgNjQtMjguNyA2NC02NHpNNjQgNDQ4bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sSVR0PVZuZSxGVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVtb24iLGljb246WzQ0OCw1MTIsWzEyNzgxOV0sImYwOTQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0LTYuNiAwLTEzIDEtMTkgMi45LTIyLjUgNy00OC4xIDE0LjktNzEgOS03NS4yLTE5LjEtMTU2LjQgMTEtMjEzLjcgNjguM1MtNy4yIDI1MC44IDExLjkgMzI2YzUuOCAyMi45LTIgNDguNC05IDcxLTEuOSA2LTIuOSAxMi40LTIuOSAxOSAwIDM1LjMgMjguNyA2NCA2NCA2NCA2LjYgMCAxMy0xIDE5LjEtMi45IDIyLjUtNyA0OC4xLTE0LjkgNzEtOSA3NS4yIDE5LjEgMTU2LjQtMTEgMjEzLjctNjguM1M0NTUuMiAyNjEuMiA0MzYuMSAxODZjLTUuOC0yMi45IDItNDguNCA5LTcxIDEuOS02IDIuOS0xMi40IDIuOS0xOS4xek0yMjIuNyAxNDNjLTUyIDE1LjItOTYuNSA1OS43LTExMS43IDExMS43LTMuNyAxMi43LTE3LjEgMjAtMjkuOCAxNi4zUzYxLjIgMjU0IDY1IDI0MS4zYzE5LjgtNjcuNyA3Ni42LTEyNC41IDE0NC4zLTE0NC4zIDEyLjctMy43IDI2LjEgMy42IDI5LjggMTYuM3MtMy42IDI2LjEtMTYuMyAyOS44eiJdfSxPVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyYXZhbiIsaWNvbjpbNjQwLDUxMixbXSwiZjhmZiIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDE5MiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOTYuNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOEw5NiA0MTZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDk2ek0zNTIgMzUybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00OC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJ6TTE2MCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwem02NCAzMzZhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxCVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicSIsaWNvbjpbNDQ4LDUxMixbMTEzXSwiNTEiLCJNNjQgMjU2YzAgODguNCA3MS42IDE2MCAxNjAgMTYwIDI4LjkgMCA1Ni03LjcgNzkuNC0yMS4xbC03Mi04Ni40Yy0xMS4zLTEzLjYtOS41LTMzLjggNC4xLTQ1LjFzMzMuOC05LjUgNDUuMSA0LjFsNzAuOSA4NS4xYzIwLjQtMjYuOCAzMi41LTYwLjMgMzIuNS05Ni42IDAtODguNC03MS42LTE2MC0xNjAtMTYwUzY0IDE2Ny42IDY0IDI1NnpNMzQ0LjkgNDQ0LjZDMzEwIDQ2NyAyNjguNSA0ODAgMjI0IDQ4MCAxMDAuMyA0ODAgMCAzNzkuNyAwIDI1NlMxMDAuMyAzMiAyMjQgMzIgNDQ4IDEzMi4zIDQ0OCAyNTZjMCA1Ni4xLTIwLjYgMTA3LjQtNTQuNyAxNDYuN2w0Ny4zIDU2LjhjMTEuMyAxMy42IDkuNSAzMy44LTQuMSA0NS4xcy0zMy44IDkuNS00NS4xLTQuMWwtNDYuNi01NS45eiJdfSxSVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc0XSwiZjAyMyIsIk0xMjggOTZsMCA2NCAxMjggMCAwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0ek02NCAxNjBsMC02NEM2NCAyNS4zIDEyMS4zLTMyIDE5Mi0zMlMzMjAgMjUuMyAzMjAgOTZsMCA2NGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0eiJdfSxIVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFpbnQtcm9sbGVyIixpY29uOls1MTIsNTEyLFtdLCJmNWFhIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDE2IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCA5NmMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTYwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE4LjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtMTguN2MwLTQ0LjIgMzUuOC04MCA4MC04MGwxNjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0eiJdfSxVbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLWhpZ2giLGljb246WzY0MCw1MTIsWzEyODI2Niwidm9sdW1lLXVwIl0sImYwMjgiLCJNNTMzLjYgMzIuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzU1Ny41IDExMy44IDU5MiAxODAuOCA1OTIgMjU2cy0zNC41IDE0Mi4yLTg4LjcgMTg2LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNTk4LjUgNDI2LjcgNjQwIDM0Ni4yIDY0MCAyNTZTNTk4LjUgODUuMiA1MzMuNiAzMi41ek00NzMuMSAxMDdjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEM0NzUuMyAxNzAuNyA0OTYgMjEwLjkgNDk2IDI1NnMtMjAuNyA4NS4zLTUzLjIgMTExLjhjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVjNDMuMi0zNS4yIDcwLjktODguOSA3MC45LTE0OXMtMjcuNy0xMTMuOC03MC45LTE0OXptLTYwLjUgNzQuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzM5My4xIDIyNy42IDQwMCAyNDEgNDAwIDI1NnMtNi45IDI4LjQtMTcuNyAzNy4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzQzNC4xIDMxMi45IDQ0OCAyODYuMSA0NDggMjU2cy0xMy45LTU2LjktMzUuNC03NC41ek04MCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMMTI4IDE2MCA4MCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6Il19LHFUdD1VbmUsVlR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1wbHVzIixpY29uOls1MTIsNTEyLFtdLCJmNjVlIiwiTTUxMiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNEw0NDggODBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDB6TTI1NiAxNjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sVVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lcmN1cnkiLGljb246WzM4NCw1MTIsWzk3OTFdLCJmMjIzIiwiTTExNy00QzEwNi0xNy44IDg1LjgtMjAgNzIuMS05cy0xNiAzMS4yLTUgNDVDNzQuOSA0NS43IDgzLjcgNTQuNSA5My41IDYyLjEgNDYuNyA5My43IDE2IDE0Ny4zIDE2IDIwOCAxNiAyOTQuMyA3OC4xIDM2Ni4xIDE2MCAzODEuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45YzgxLjktMTUgMTQ0LTg2LjggMTQ0LTE3My4xIDAtNjAuNy0zMC43LTExNC4zLTc3LjUtMTQ1LjkgOS44LTcuNyAxOC43LTE2LjQgMjYuNC0yNi4xIDExLjEtMTMuOCA4LjgtMzMuOS01LTQ1UzI3OC0xNy44IDI2Ny00Yy0xNy42IDIyLTQ0LjcgMzYtNzUgMzZTMTM0LjcgMTggMTE3LTR6bTc1IDMyNGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTJTMTMwLjEgOTYgMTkyIDk2IDMwNCAxNDYuMSAzMDQgMjA4YzAgNjEuOC01MC4xIDExMi0xMTEuOSAxMTJsLS4xIDB6Il19LGpUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3IiLGljb246WzU3Niw1MTIsWzk4NzVdLCJmMTNkIiwiTTI4OCA2NGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTE5MiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDEuOC0yNi43IDc3LjQtNjQgOTAuNWwwIDI1Ny45YzYyLjktMTQuMyAxMTAuMi02OS43IDExMS45LTEzNi41bC0xNi4xIDE0LjFjLTEwIDguNy0yNS4xIDcuNy0zMy45LTIuM3MtNy43LTI1LjEgMi4zLTMzLjlsNjQtNTZjOS03LjkgMjIuNi03LjkgMzEuNiAwbDY0IDU2YzEwIDguNyAxMSAyMy45IDIuMyAzMy45cy0yMy45IDExLTMzLjkgMi4zTDQ5NiAzMDcuOUM0OTMuOSA0MjEgNDAxLjYgNTEyIDI4OCA1MTJTODIuMSA0MjEgODAgMzA3LjlMNjMuOCAzMjIuMWMtMTAgOC43LTI1LjEgNy43LTMzLjktMi4zcy03LjctMjUuMSAyLjMtMzMuOWw2NC01NmM5LTcuOSAyMi42LTcuOSAzMS42IDBsNjQgNTZjMTAgOC43IDExIDIzLjkgMi4zIDMzLjlzLTIzLjkgMTEtMzMuOSAyLjNsLTE2LjEtMTQuMWMxLjggNjYuOCA0OS4xIDEyMi4yIDExMS45IDEzNi41bDAtMjU3LjljLTM3LjMtMTMuMi02NC00OC43LTY0LTkwLjV6Il19LGpuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGFya2luZyIsaWNvbjpbNDQ4LDUxMixbMTI3MzU5LCJwYXJraW5nIl0sImY1NDAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMTkyIDI1Nmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwIDAgNjR6bTQ4IDY0bC00OCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xODRjMC0yMi4xIDE3LjktNDAgNDAtNDBsNzIgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NnoiXX0sV1R0PWpuZSxHVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFudWtpYWgiLGljb246WzY0MCw1MTIsWzEyODMzNF0sImY2ZTYiLCJNMzE0LjIgMy4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zem0tMjg4IDQ4QzIxLjEgNjAuMSA4IDg0LjYgOCAxMDQgOCAxMTcuMyAxOC43IDEyOCAzMiAxMjhzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek04OCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzEwMS4xIDYwLjEgODggODQuNiA4OCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNMjE2IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDMjI5LjEgNjAuMSAyMTYgODQuNiAyMTYgMTA0ek0zOTQuMiA1MS4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek00NDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0M0NTMuMSA2MC4xIDQ0MCA4NC42IDQ0MCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNTg0IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDNTk3LjEgNjAuMSA1ODQgODQuNiA1ODQgMTA0ek0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnpNMzUyIDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3Ni0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDE3NC4zIDAgMTkybDAgOTZjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMCAwIDY0LTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMCAwLTY0IDE5MiAwYzUzIDAgOTYtNDMgOTYtOTZsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xOTIgMCAwLTE3NnoiXX0sdTc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm90YXRlLWxlZnQiLGljb246WzUxMiw1MTIsWyJyb3RhdGUtYmFjayIsInJvdGF0ZS1iYWNrd2FyZCIsInVuZG8tYWx0Il0sImYyZWEiLCJNMjQgMTkybDE0NCAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtNDYuNy00Ni43Yzc1LjMtNTguNiAxODQuMy01My4zIDI1My41IDE1LjkgNzUgNzUgNzUgMTk2LjUgMCAyNzEuNXMtMTk2LjUgNzUtMjcxLjUgMGMtMTAuMi0xMC4yLTE5LTIxLjMtMjYuNC0zMy05LjUtMTQuOS0yOS4zLTE5LjMtNDQuMi05LjhzLTE5LjMgMjkuMy05LjggNDQuMkM0OS43IDQwOC43IDYxLjQgNDIzLjUgNzUgNDM3IDE3NSA1MzcgMzM3IDUzNyA0MzcgNDM3UzUzNyAxNzUgNDM3IDc1QzM0Mi44LTE5LjMgMTkzLjMtMjQuNyA5Mi43IDU4LjhMNDEgN0MzNC4xIC4yIDIzLjgtMS45IDE0LjggMS44UzAgMTQuMyAwIDI0TDAgMTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0eiJdfSxZVHQ9dTcsWlR0PXU3LFhUdD11NyxXbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZGluZyIsaWNvbjpbNDQ4LDUxMixbImhlYWRlciJdLCJmMWRjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDExMiAyMjQgMCAwLTExMi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAzMjAgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMTQ0LTIyNCAwIDAgMTQ0IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTMyMC0xNiAwQzE0LjMgOTYgMCA4MS43IDAgNjR6Il19LFFUdD1XbmUsS1R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3NzaGFpcnMiLGljb246WzU3Niw1MTIsW10sImYwNWIiLCJNMjg4LTE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTguM2M5OC4xIDE0IDE3NS43IDkxLjYgMTg5LjcgMTg5LjdsMTguMyAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC4zIDBjLTE0IDk4LjEtOTEuNiAxNzUuNy0xODkuNyAxODkuN2wwIDE4LjNjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC4zQzE1Ny45IDQ2My43IDgwLjMgMzg2LjEgNjYuMyAyODhMNDggMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE4LjMgMEM4MC4zIDEyNS45IDE1Ny45IDQ4LjMgMjU2IDM0LjNMMjU2IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xMzEuMiAyODhjMTIuNyA2Mi43IDYyLjEgMTEyLjEgMTI0LjggMTI0LjhsMC0xMi44YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMi44YzYyLjctMTIuNyAxMTIuMS02Mi4xIDEyNC44LTEyNC44TDQzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTIuOCAwQzQzMi4xIDE2MS4zIDM4Mi43IDExMS45IDMyMCA5OS4ybDAgMTIuOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyLjhDMTkzLjMgMTExLjkgMTQzLjkgMTYxLjMgMTMxLjIgMjI0bDEyLjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTIuOCAwek0yODggMjA4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnoiXX0sSlR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1ub2RlcyIsaWNvbjpbNTEyLDUxMixbXSwiZTRlMiIsIk00MTguNCAxNTcuOWMzNS4zLTguMyA2MS42LTQwIDYxLjYtNzcuOSAwLTQ0LjItMzUuOC04MC04MC04MC00My40IDAtNzguNyAzNC41LTgwIDc3LjVMMTM2LjIgMTUxLjFDMTIxLjcgMTM2LjggMTAxLjkgMTI4IDgwIDEyOCAzNS44IDEyOCAwIDE2My44IDAgMjA4czM1LjggODAgODAgODBjMTIuMiAwIDIzLjgtMi43IDM0LjEtNy42TDI1OS43IDQwNy44Yy0yLjQgNy42LTMuNyAxNS44LTMuNyAyNC4yIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0yNy43LTE0LTUyLjEtMzUuNC02Ni40bDM3LjgtMjA3Ljd6TTE1Ni4zIDIzMi4yYzIuMi02LjkgMy41LTE0LjIgMy43LTIxLjdsMTgzLjgtNzMuNWMzLjYgMy41IDcuNCA2LjcgMTEuNiA5LjVMMzE3LjYgMzU0LjFjLTUuNSAxLjMtMTAuOCAzLjEtMTUuOCA1LjVMMTU2LjMgMjMyLjJ6Il19LGVfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctcmVzdG9yZSIsaWNvbjpbNTc2LDUxMixbXSwiZjJkMiIsIk01MTIgOTZMMTYwIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OCAwIDAtNjQgNDggMCAwLTE5MnpNMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNHptNjQgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sdF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InIiLGljb246WzMyMCw1MTIsWzExNF0sIjUyIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCA5NS4zIDAgMTAyLjQgMTQ2LjRjMTAuMSAxNC41IDMwLjEgMTggNDQuNiA3LjlzMTgtMzAuMSA3LjktNDQuNkwyMzAuMSAzMDkuNUMyODIuOCAyODguMSAzMjAgMjM2LjQgMzIwIDE3NiAzMjAgOTYuNSAyNTUuNSAzMiAxNzYgMzJMMzIgMzJ6TTE3NiAyNTZsLTExMiAwIDAtMTYwIDExMiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgweiJdfSxhX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTE3YiIsIk0zMiA2NEMxOS4xIDY0IDcuNCA3MS44IDIuNCA4My44Uy4yIDEwOS41IDkuNCAxMTguNkwxOTIgMzAxLjMgMTkyIDQxNmMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMyLjUgMi41IDUuMyA0LjUgOC4zIDYtMjEuMi0zMC45LTMzLjYtNjguMy0zMy42LTEwOC42IDAtOTkuNCA3NS41LTE4MS4xIDE3Mi4zLTE5MWw5MC40LTkwLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0scl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdvcHVyYW0iLGljb246WzUxMiw1MTIsW10sImY2NjQiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4IDQwIDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4IDQ4IDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4IDQwIDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMzZjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA4MGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNDggMCAwLTIyNC0zMiAwIDAtMTI4LTQ4IDAgMCAxMjggMzIgMCAwIDIyNC0yMjQgMCAwLTIyNCAzMiAwIDAtMTI4LTQ4IDAgMCAxMjgtMzIgMCAwIDIyNC00OCAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMzNmMwLTI2LjUgMjEuNS00OCA0OC00OGwwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4TDk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek0yNTYgMjA4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjA4IDQwMGwwIDY0IDk2IDAgMC02NGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNMjU2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyIDY0IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0saV90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1taW51cyIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZiIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIyNCAwYzAtOC44LTcuMi0xNi0xNi0xNmwtMTI4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2eiJdfSxvX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1vZi1saWZlIixpY29uOls1MTIsNTEyLFtdLCJmNjIxIiwiTTIwOC41IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNDAuOSAxMjItNzAuNGMxNS4zLTguOCAzNC45LTMuNiA0My43IDExLjdsMTYgMjcuN2M4LjggMTUuMyAzLjYgMzQuOS0xMS43IDQzLjdsLTEyMiA3MC40IDEyMiA3MC40YzE1LjMgOC44IDIwLjYgMjguNCAxMS43IDQzLjdsLTE2IDI3LjdjLTguOCAxNS4zLTI4LjQgMjAuNi00My43IDExLjdsLTEyMi03MC40IDAgMTQwLjljMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQwLjktMTIyIDcwLjRjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN2wtMTYtMjcuN2MtOC44LTE1LjMtMy42LTM0LjkgMTEuNy00My43bDEyMi03MC40LTEyMi03MC40Yy0xNS4zLTguOC0yMC41LTI4LjQtMTEuNy00My43bDE2LTI3LjdjOC44LTE1LjMgMjguNC0yMC41IDQzLjctMTEuN2wxMjIgNzAuNCAwLTE0MC45eiJdfSxHbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzaW5lc3MtdGltZSIsaWNvbjpbNjQwLDUxMixbImJyaWVmY2FzZS1jbG9jayJdLCJmNjRhIiwiTTI2NCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2IDMwNSAwYzMzLjgtMjkuOSA3OC4zLTQ4IDEyNy00OCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyNjQgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6bTgwIDI5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNi0xOTIgMCAwIDExMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTMuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0xNi42IDIuMS0zMi43IDYtNDhsLTIyIDB6bTM1MiA0OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwek00OTYgMzIwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sc190PUduZSxuX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZS1leHRpbmd1aXNoZXIiLGljb246WzUxMiw1MTIsWzEyOTUxOV0sImYxMzQiLCJNNTEyIDMyYzAtOS42LTQuMy0xOC43LTExLjctMjQuN1M0ODMuMS0xLjMgNDczLjcgLjZsLTE2MCAzMkMzMDEuNSAzNS4xIDI5MiA0NC4zIDI4OSA1NmwtNjUgMCAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI4LjRjLTU1LjMgMTIuMy0xMDEuMyA0OS41LTEyNS41IDk5LjEtNS44IDExLjktLjkgMjYuMyAxMS4xIDMyLjFzMjYuMyAuOSAzMi4xLTExLjFDNjIgMTQ2LjkgOTEuOCAxMjEuMSAxMjggMTEwbDAgMjguOGMtMzcuOCAxOC02NCA1Ni41LTY0IDEwMS4ybDAgMTI4IDIyNCAwIDAtMTI4YzAtNDQuNy0yNi4yLTgzLjItNjQtMTAxLjJsMC0zNC44IDY1IDBjMyAxMS43IDEyLjUgMjAuOSAyNC43IDIzLjRsMTYwIDMyYzkuNCAxLjkgMTkuMS0uNiAyNi42LTYuNlM1MTIgMTM3LjYgNTEyIDEyOGwwLTk2ek0yODggNDQ4bDAtMzItMjI0IDAgMCAzMmMwIDM1LjMgMjguNyA2NCA2NCA2NGw5NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0eiJdfSxZbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi1sb25nIixpY29uOlszMjAsNTEyLFsibG9uZy1hcnJvdy1kb3duIl0sImYxNzUiLCJNMTM3LjQgNTM0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIgNDM0LjcgMTkyIDBjMC0xNy43LTE0LjMtMzItMzItMzJTMTI4LTE3LjcgMTI4IDBsMCA0MzQuNy03My40LTczLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDEyOCAxMjh6Il19LGxfdD1ZbmUsY190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbWludXMiLGljb246WzY0MCw1MTIsW10sImY1MDMiLCJNMTM2IDEyOGExMjAgMTIwIDAgMSAxIDI0MCAwIDEyMCAxMjAgMCAxIDEgLTI0MCAwek00OCA0ODIuM0M0OCAzODMuOCAxMjcuOCAzMDQgMjI2LjMgMzA0bDU5LjQgMGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3Ny43IDUxMkM2MS4zIDUxMiA0OCA0OTguNyA0OCA0ODIuM3pNNDcyIDE2OGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LGRfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1jaGVjayIsaWNvbjpbNTEyLDUxMixbXSwiZjUzYyIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek05NiAzMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMjQtMTM2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNzIgMHoiXX0sWm5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWxhcHRvcCIsaWNvbjpbNjQwLDUxMixbImxhcHRvcC1ob3VzZSJdLCJlMDY2IiwiTTQ0OCAyNDBsMTkuOSAwYzE1LjUgMCAyOC4xLTEyLjYgMjguMS0yOC4xIDAtNy42LTMuMS0xNC45LTguNi0yMC4yTDI4My41LTQuOUMyNzYuMS0xMiAyNjYuMy0xNiAyNTYtMTZzLTIwLjEgNC0yNy41IDExLjFMMjQuNiAxOTEuN0MxOS4xIDE5NyAxNiAyMDQuMyAxNiAyMTEuOSAxNiAyMjcuNCAyOC42IDI0MCA0NC4xIDI0MGwxOS45IDAgMCAxNDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODUuNyAwYzcuNC02LjYgMTYuNC0xMS40IDI2LjMtMTRsMC0xMzBjMC01LjUgLjctMTAuOSAyLTE2bC0xMCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNCAxNDQgMHpNMzUyIDM1MmwxNjAgMCAwIDEyOC0xNjAgMCAwLTEyOHptLTY0LTMybDAgMTYwLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OGwyODggMGMyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJsLTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sZl90PVpuZSx1X3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG93bmxvYWQiLGljb246WzQ0OCw1MTIsW10sImYwMTkiLCJNMjU2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjEwLjctNDEuNC00MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyNTYgMjQyLjcgMjU2IDMyek02NCAzMjBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNDYuOSAwLTU2LjYgNTYuNmMtMzEuMiAzMS4yLTgxLjkgMzEuMi0xMTMuMSAwTDExMC45IDMyMCA2NCAzMjB6bTMwNCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LHBfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3VjaCIsaWNvbjpbNjQwLDUxMixbXSwiZjRiOCIsIk0xNDQgMjcyQzE0NCAyMjQuNyAxMDkuOCAxODUuNCA2NC44IDE3Ny41IDcyIDExMy42IDEyNi4yIDY0IDE5MiA2NGwyNTYgMGM2NS44IDAgMTIwIDQ5LjYgMTI3LjIgMTEzLjUtNDUgOC03OS4yIDQ3LjItNzkuMiA5NC41bDAgMzItMzUyIDAgMC0zMnpNMCAzODRMMCAyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDQ0OCAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0eiJdfSxoX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNTY3IiwiTTI1NiAzMmwtNzYuMyAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkwzMy40IDQyMC41QzI1LjkgNDUwLjcgNDguOCA0ODAgODAgNDgwbDE3NS45IDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMiA2LjEgMCAxMS44IDEuNyAxNi43IDQuNyAyLjgtMjMuOSAxNC4zLTQ1LjEgMzEuNC02MC4zbDAtMjQuNGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCA2LjIgMCAxMi40IC40IDE4LjQgMS4zTDQ1OC41IDgwLjZDNDUxLjQgNTIuMSA0MjUuOCAzMiAzOTYuMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptNjQgMTkybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xNzYgODAuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNMzUyIDQwMGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sWG5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaXNzb3JzIixpY29uOls1MTIsNTEyLFs5OTg0LDk5ODYsOTk4OCwiY3V0Il0sImYwYzQiLCJNMTkyIDI1NmwtMzkuNSAzOS41Yy0xMi42LTQuOS0yNi4yLTcuNS00MC41LTcuNS02MS45IDAtMTEyIDUwLjEtMTEyIDExMnM1MC4xIDExMiAxMTIgMTEyIDExMi01MC4xIDExMi0xMTJjMC0xNC4zLTIuNy0yNy45LTcuNS00MC41TDQ5OS4yIDc2LjhjNy4xLTcuMSA3LjEtMTguNSAwLTI1LjYtMjguMy0yOC4zLTc0LjEtMjguMy0xMDIuNCAwTDI1NiAxOTIgMjE2LjUgMTUyLjVjNC45LTEyLjYgNy41LTI2LjIgNy41LTQwLjUgMC02MS45LTUwLjEtMTEyLTExMi0xMTJTMCA1MC4xIDAgMTEyIDUwLjEgMjI0IDExMiAyMjRjMTQuMyAwIDI3LjktMi43IDQwLjUtNy41TDE5MiAyNTZ6bTk3LjkgOTcuOUwzOTYuOCA0NjAuOGMyOC4zIDI4LjMgNzQuMSAyOC4zIDEwMi40IDAgNy4xLTcuMSA3LjEtMTguNSAwLTI1LjZsLTE0NS4zLTE0NS4zLTY0IDY0ek02NCAxMTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDggMjQwYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnoiXX0sbV90PVhuZSxIVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWciLGljb246WzU3Niw1MTIsW10sImYxODgiLCJNMTkyIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAzLjZjMCAxNS43LTEyLjcgMjguNC0yOC40IDI4LjRsLTEzNS4xIDBjLTE1LjcgMC0yOC40LTEyLjctMjguNC0yOC40bDAtMy42em0zNDUuNiAxMi44YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOGwtOTcuOCA3My4zYzUuMyA4LjkgOS4zIDE4LjcgMTEuOCAyOS4xbDk4LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDMyYzAgMi42LS4xIDUuMy0uMiA3LjlsODMuNCA2Mi41YzE0LjEgMTAuNiAxNyAzMC43IDYuNCA0NC44cy0zMC43IDE3LTQ0LjggNi40bC02My4xLTQ3LjNjLTIzLjIgNDQuMi02Ni41IDc2LjItMTE3LjcgODMuOUwzMTIgMjgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjMwLjJjLTUxLjItNy43LTk0LjUtMzkuNy0xMTcuNy04My45TDgzLjIgNDczLjZjLTE0LjEgMTAuNi0zNC4yIDcuNy00NC44LTYuNHMtNy43LTM0LjIgNi40LTQ0LjhsODMuNC02Mi41Yy0uMS0yLjYtLjItNS4yLS4yLTcuOWwwLTMyLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTguOCAwYzIuNS0xMC40IDYuNS0yMC4yIDExLjgtMjkuMUw0NC44IDE1My42Yy0xNC4xLTEwLjYtMTctMzAuNy02LjQtNDQuOHMzMC43LTE3IDQ0LjgtNi40TDE5MiAxODRjMTIuMy01LjEgMjUuOC04IDQwLThsMTEyIDBjMTQuMiAwIDI3LjcgMi44IDQwIDhsMTA4LjgtODEuNmMxNC4xLTEwLjYgMzQuMi03LjcgNDQuOCA2LjR6Il19LFFuZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1mcm9tLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLW91dCJdLCJmMDhiIiwiTTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAxOTIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LGdfdD1RbmUseF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1oYW5kIixpY29uOls1NzYsNTEyLFtdLCJlNGY3IiwiTTQ2Ni44IDE4Ni41bDQyLjUtNDIuNSAzNC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwyMjMuNiAxNmMtMjkgMC01Ny4zIDkuMy04MC43IDI2LjVMMTYuMyAxMzUuOGMtMTcuOCAxMy4xLTIxLjYgMzguMS04LjUgNTUuOXMzOC4xIDIxLjYgNTUuOSA4LjVMMTgzLjQgMTEyIDI5NiAxMTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTcyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTUyLjIgMGMzMy45IDAgNjYuNS0xMy41IDkwLjUtMzcuNXptLTM1Ny41IDEzOUw2Ni43IDM2OCAzMiAzNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MDAgMjgwIDQwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNTIuMiAwYy0zMy45IDAtNjYuNSAxMy41LTkwLjUgMzcuNXoiXX0sYl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0cm9vcHdhZmVsIixpY29uOls1MTIsNTEyLFtdLCJmNTUxIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTMxMi42IDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI1NiA5Ny42IDIyMi4xIDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzMuOSAzMy45LTQ1LjMgNDUuMy01Ni42LTU2LjZjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNTYuNiA1Ni42LTQ1LjMgNDUuMy0zMy45LTMzLjljLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMOTcuNiAyNTYgNjMuNyAyODkuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMzLjktMzMuOSA0NS4zIDQ1LjMtNTYuNiA1Ni42Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNTYuNi01Ni42IDQ1LjMgNDUuMy0zMy45IDMzLjljLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzMy45LTMzLjkgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzMuOS0zMy45IDQ1LjMtNDUuMyA1Ni42IDU2LjZjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC01Ni42LTU2LjYgNDUuMy00NS4zIDMzLjkgMzMuOWM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTMzLjktMzMuOSAzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzMuOSAzMy45LTQ1LjMtNDUuMyA1Ni42LTU2LjZjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtNTYuNiA1Ni42LTQ1LjMtNDUuMyAzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6TTE0Mi45IDI1Nmw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6bTY3LjkgNjcuOWw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6TTI3OC42IDI1Nmw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6bTIyLjYtNjcuOWwtNDUuMyA0NS4zLTQ1LjMtNDUuMyA0NS4zLTQ1LjMgNDUuMyA0NS4zeiJdfSx2X3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQiLGljb246WzMyMCw1MTIsW10sImYxYWUiLCJNOTYgNjRBNjQgNjQgMCAxIDEgMjI0IDY0IDY0IDY0IDAgMSAxIDk2IDY0em00OCAzMjBsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkw4MCAyODcuOCA1OS4xIDMyMWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwUy00LjUgMzAxLjkgNC45IDI4N2wzOS45LTYzLjNDNjkuNyAxODQgMTEzLjIgMTYwIDE2MCAxNjBzOTAuMyAyNCAxMTUuMiA2My42TDMxNS4xIDI4N2M5LjQgMTUgNC45IDM0LjctMTAgNDQuMXMtMzQuNyA0LjktNDQuMS0xMEwyNDAgMjg3LjggMjQwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTMyIDB6Il19LHlfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpY2UtY3JlYW0iLGljb246WzM4NCw1MTIsWzEyNzg0OF0sImY4MTAiLCJNMzM1LjEgMTYwYy42LTUuMyAuOS0xMC42IC45LTE2IDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0UzQ4IDY0LjUgNDggMTQ0YzAgNS40IC4zIDEwLjcgLjkgMTZsLS45IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjg4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLS45IDB6TTY0IDMwNEwxNjkuMiA1MjkuNWM0LjEgOC44IDEzIDE0LjUgMjIuOCAxNC41czE4LjYtNS43IDIyLjgtMTQuNUwzMjAgMzA0IDY0IDMwNHoiXX0sS25lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXB1dGVyLW1vdXNlIixpY29uOlszODQsNTEyLFsxMjg0MzMsIm1vdXNlIl0sImY4Y2MiLCJNMCAxOTJsMTY4IDAgMC0xOTItOCAwQzcxLjYgMCAwIDcxLjYgMCAxNjBsMCAzMnptMCA0OEwwIDM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGw2NCAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwbDAtMTEyLTM4NCAwem0zODQtNDhsMC0zMkMzODQgNzEuNiAzMTIuNCAwIDIyNCAwbC04IDAgMCAxOTIgMTY4IDB6Il19LHdfdD1LbmUsTV90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhdWNldCIsaWNvbjpbNTEyLDUxMixbXSwiZTAwNSIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgNjQgMTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDIyLjYgMjIuNiAzMiAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwIDAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzYuMSAwYy0yMC4yIDI5LTUzLjkgNDgtOTEuOSA0OHMtNzEuNy0xOS05MS45LTQ4TDMyIDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDIyLjYtMjIuNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsMTguNyAwIDAtNjQtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA2NCA5NiA2NGw5NiAweiJdfSx6X3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXdhcmQiLGljb246WzQ0OCw1MTIsW10sImY1NTkiLCJNMjQ1LjktMjUuOWMtMTMuNC04LjItMzAuMy04LjItNDMuNyAwLTI0LjQgMTQuOS0zOS41IDE4LjktNjguMSAxOC4zLTE1LjctLjQtMzAuMyA4LjEtMzcuOSAyMS45LTEzLjcgMjUuMS0yNC44IDM2LjItNDkuOSA0OS45LTEzLjggNy41LTIyLjIgMjIuMi0yMS45IDM3LjkgLjcgMjguNi0zLjQgNDMuNy0xOC4zIDY4LjEtOC4yIDEzLjQtOC4yIDMwLjMgMCA0My43IDE0LjkgMjQuNCAxOC45IDM5LjUgMTguMyA2OC4xLS40IDE1LjcgOC4xIDMwLjMgMjEuOSAzNy45IDIyLjEgMTIuMSAzMy4zIDIyLjEgNDUuMSA0MS41TDQyLjcgNDU4LjVjLTUuOSAxMS45LTEuMSAyNi4zIDEwLjcgMzIuMmw4NiA0M2MxMS41IDUuNyAyNS41IDEuNCAzMS43LTkuOGw1Mi44LTk1LjEgNTIuOCA5NS4xYzYuMiAxMS4yIDIwLjIgMTUuNiAzMS43IDkuOGw4Ni00M2MxMS45LTUuOSAxNi43LTIwLjMgMTAuNy0zMi4ybC00OC42LTk3LjJjMTEuNy0xOS40IDIzLTI5LjQgNDUuMS00MS41IDEzLjgtNy41IDIyLjItMjIuMiAyMS45LTM3LjktLjctMjguNiAzLjQtNDMuNyAxOC4zLTY4LjEgOC4yLTEzLjQgOC4yLTMwLjMgMC00My43LTE0LjktMjQuNC0xOC45LTM5LjUtMTguMy02OC4xIC40LTE1LjctOC4xLTMwLjMtMjEuOS0zNy45LTI1LjEtMTMuNy0zNi4yLTI0LjgtNDkuOS00OS45LTcuNS0xMy44LTIyLjItMjIuMi0zNy45LTIxLjktMjguNiAuNy00My43LTMuNC02OC4xLTE4LjN6TTIyNCA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sa190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kcm93bmluZyIsaWNvbjpbNjQwLDUxMixbXSwiZTU0NSIsIk0yNjQgODhhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMzMuOSA2NS42YzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMmwxMC45IDMyLjhjOS40IDI4LjMgMzMuMiA0OS41IDYyLjUgNTUuNiA1LjYgMS4yIDExLjMgMS44IDE3LjEgMS44bDg4IDBjMTcuMiAwIDM0LjMtMi44IDUwLjYtOC4ybDExNC40LTM4LjFjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVMNDIzLjcgMjI4LjVjLTguNCAyLjgtMTcgNS4xLTI1LjcgNi45bC0yNi41IDg4LjNjLTYuMSAzLjQtMTIuMSA3LjMtMTcuOSAxMS43LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI2LjItMTkuNy01Ni45LTMwLjItODcuOC0zMS4zbDIwLjItNjcuMmMtNTEuNS0xMC43LTkzLjUtNDguMS0xMTAuMi05OGwtMTAuOS0zMi44Yy01LjYtMTYuOCAzLjUtMzQuOSAyMC4yLTQwLjV6TTQwMy40IDQxMi4xQzM3OS4xIDQzMC4zIDM1MS4xIDQ0OCAzMjAgNDQ4cy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sU190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYS1yb3RhdGUiLGljb246WzUxMiw1MTIsW10sImUwZDgiLCJNMTM4LjcgOTZsMTAuNC0zMS4yQzE1NS42IDQ1LjIgMTczLjkgMzIgMTk0LjYgMzJsMTIyLjggMGMyMC43IDAgMzkgMTMuMiA0NS41IDMyLjhMMzczLjMgOTYgNDQ4IDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsNzQuNyAwek05NiAzMDUuOWMwIDMuOSAxLjQgNy43IDQgMTAuNmw0OCA1NGM2LjQgNy4yIDE3LjYgNy4yIDIzLjkgMGw0OC01NGMyLjYtMi45IDQtNi43IDQtMTAuNmwwLTEuOWMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjMC0zOS44IDMyLjItNzIgNzItNzIgNC40IDAgOC43IC40IDEyLjkgMS4ybDM0LjktMzkuM2MtMTQuNi02LjQtMzAuOC05LjktNDcuOC05LjktNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDEuOXptMTk2LTQ2LjVjLTIuNiAyLjktNCA2LjctNCAxMC42bDAgMS45YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzAgMzkuOC0zMi4yIDcyLTcyIDcyLTQuNCAwLTguNy0uNC0xMi45LTEuMmwtMzQuOSAzOS4zYzE0LjcgNi40IDMwLjggOS45IDQ3LjggOS45IDY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMS45YzAtMy45LTEuNC03LjctNC0xMC42bC00OC01NGMtNi40LTcuMi0xNy42LTcuMi0yMy45IDBsLTQ4IDU0eiJdfSxKbmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWhlYXJ0cyIsaWNvbjpbNTEyLDUxMixbMTI4NTI1LCJncmluLWhlYXJ0cyJdLCJmNTg0IiwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTIzLjMtMy4xLTQ1LjktOC45LTY3LjMgNS41LTEzLjUgOC45LTI4LjQgOC45LTQ0LjcgMC01My00My05Ni05Ni05NmwtMi45IDBjLTIuNSAwLTUgLjEtNy40IC4zLTQyLjEtMzAuNC05My44LTQ4LjMtMTQ5LjctNDguM1MxNDguNCAxNy45IDEwNi4zIDQ4LjNjLTIuNS0uMi00LjktLjMtNy40LS4zTDk2IDQ4Yy01MyAwLTk2IDQzLTk2IDk2IDAgMTYuMyAzLjUgMzEuMiA4LjkgNDQuNy01LjggMjEuNC04LjkgNDQtOC45IDY3LjMgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NnpNMzg2LjcgMzI0LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDQwNC4yIDEwNS43IDM0Mi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTMyMi45IDk2YzEzLjUgMCAyNi41IDUuNCAzNiAxNC45bDkuMSA5LjEgOS4xLTkuMWM5LjUtOS41IDIyLjUtMTQuOSAzNi0xNC45bDIuOSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNTMuNC02Ni45IDk1LjctODkgMTA4LjItNC40IDIuNS05LjYgMi41LTE0IDAtMjIuMS0xMi41LTg5LTU0LjgtODktMTA4LjIgMC0yNi41IDIxLjUtNDggNDgtNDhsMi45IDB6bS0xODggMTQuOWw5LjEgOS4xIDkuMS05LjFjOS41LTkuNSAyMi41LTE0LjkgMzYtMTQuOWwyLjkgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDUzLjQtNjYuOSA5NS43LTg5IDEwOC4yLTQuNCAyLjUtOS42IDIuNS0xNCAwLTIyLjEtMTIuNS04OS01NC44LTg5LTEwOC4yIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDIuOSAwYzEzLjUgMCAyNi41IDUuNCAzNiAxNC45eiJdfSxDX3Q9Sm5lLExfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWZyYWdtZW50IixpY29uOlszODQsNTEyLFtdLCJlNjk3IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjQwIDEyOCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTI4IDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTMyIDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6Il19LFRfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tbWlsaXRhcnktcmlmbGUiLGljb246WzQ0OCw1MTIsW10sImU1NGIiLCJNMTI4IDM5YzAtMTMgMTAtMjMuOCAyMi45LTI0LjlMMzAyLjcgMS40QzMxMiAuNyAzMjAgOCAzMjAgMTcuNEwzMjAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2TDE1MyA2NGMtMTMuOCAwLTI1LTExLjItMjUtMjV6bTE3LjYgNTdsMTU2LjggMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTYgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC01LjUgLjYtMTAuOCAxLjYtMTZ6bTIyOCAzNjQuM0wzMjAgMzY5LjcgMzIwIDQ4MGMwIDEuMy0uMSAyLjUtLjIgMy44TDE0NS41IDIzNC45YzE2LjYtNy4xIDM0LjYtMTAuOSA1My4zLTEwLjlsNTAuNCAwYzE1LjkgMCAzMS4zIDIuOCA0NS44IDcuOUwzODkuOSA2Ny43Yy03LjctNC40LTEwLjMtMTQuMi01LjktMjEuOXMxNC4yLTEwLjMgMjEuOS01LjlsMjcuNyAxNmM3LjcgNC40IDEwLjMgMTQuMiA1LjkgMjEuOWwtNTUuNSA5Ni4xIDEuNiAuOWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43TDM2MC43IDI4MmMyIDIuOCAzLjkgNS44IDUuNyA4LjhsNzYuMSAxMjguOGMxMS4yIDE5IDQuOSA0My41LTE0LjEgNTQuOHMtNDMuNSA0LjktNTQuOC0xNC4xek0yODggNTEybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTAuMy01My42IDkwLjZjLTExLjIgMTktMzUuOCAyNS4zLTU0LjggMTQuMVMtNS43IDQzOC43IDUuNiA0MTkuN0w4MS43IDI5MC44YzkuNC0xNS44IDIxLjctMjkuMyAzNi00MEwyOTkuMSA1MTBjLTMuNSAxLjMtNy4yIDItMTEuMSAyek0yNjQgMzIwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sX190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvZ2dsZS1vbiIsaWNvbjpbNTc2LDUxMixbXSwiZjIwNSIsIk0xOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhsMTkyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJTNDkwIDY0IDM4NCA2NEwxOTIgNjR6bTE5MiA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sQV90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imx1bmdzLXZpcnVzIixpY29uOls1NzYsNTEyLFtdLCJlMDY3IiwiTTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE1MS4zYzkuNi00LjggMjAuNS03LjUgMzItNy41czIyLjQgMi43IDMyIDcuNUwzMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ1MC4xIDQ1MWM4IDE4LjMgOC4xIDM5LjIgLjIgNTcuNSAxMC4yIDIuMyAyMC42IDMuNSAzMS4yIDMuNSA1Mi4yIDAgOTQuNS00Mi4zIDk0LjUtOTQuNWwwLTYuMmMwLTExMS4xLTM2LjctMjE5LTEwNC40LTMwN0w0MjguOSA0OC43Yy04LjEtMTAuNi0yMC43LTE2LjctMzQtMTYuNy0yMy43IDAtNDIuOSAxOS4yLTQyLjkgNDIuOWwwIDEzOS45YzEuMiAyLjIgMi4yIDQuNiAzLjEgNi45IDI2LjQtMTEuNiA1OC4zLTYuNiA3OS45IDE1czI2LjYgNTMuNiAxNSA3OS45QzQ3NyAzMjcuMiA0OTYgMzUzLjMgNDk2IDM4My44cy0xOSA1Ni43LTQ1LjkgNjcuMXpNMjIwLjkgMjIxLjhjLjktMi40IDItNC43IDMuMS02LjlsMC0xMzguNWMwLTI0LjUtMTkuOS00NC40LTQ0LjQtNDQuNC0xMi41IDAtMjQuNCA1LjMtMzIuOCAxNC41bC0yNi40IDI5QzQyLjkgMTYwLjggMCAyNzEuOCAwIDM4N2wwIDMwLjVjMCA1Mi4yIDQyLjMgOTQuNSA5NC41IDk0LjUgMTAuNSAwIDIxLTEuMiAzMS4yLTMuNS03LjktMTguMy03LjgtMzkuMyAuMi01Ny41LTI2LjktMTAuNC00NS45LTM2LjYtNDUuOS02Ny4xczE5LTU2LjcgNDUuOS02Ny4xYy0xMS42LTI2LjQtNi42LTU4LjMgMTUtNzkuOXM1My42LTI2LjYgNzkuOS0xNXpNMTUyIDQwOGMyOC44IDAgNDMuMiAzNC44IDIyLjkgNTUuMi05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBjMjAuNC0yMC40IDU1LjItNS45IDU1LjIgMjIuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMjguOCAzNC44LTQzLjIgNTUuMi0yMi45IDkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtMjAuNC0yMC40LTUuOS01NS4yIDIyLjktNTUuMiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtMjguOCAwLTQzLjItMzQuOC0yMi45LTU1LjIgOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGMtMjAuNCAyMC40LTU1LjIgNS45LTU1LjItMjIuOSAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDI4LjgtMzQuOCA0My4yLTU1LjIgMjIuOS05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45YzIwLjQgMjAuNCA1LjkgNTUuMi0yMi45IDU1LjItMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHptMTA0LTgwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAgODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sZlU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtdGVubmlzLXBhZGRsZS1iYWxsIixpY29uOls1MTIsNTEyLFsxMjc5NTUsInBpbmctcG9uZy1wYWRkbGUtYmFsbCIsInRhYmxlLXRlbm5pcyJdLCJmNDVkIiwiTTk3IDEyN2w2Ny40LTY3LjRjMzguMi0zOC4yIDkwLTU5LjYgMTQ0LTU5LjYgMTEyLjUgMCAyMDMuNyA5MS4yIDIwMy43IDIwMy42IDAgNDYuNC0xNS44IDkxLjEtNDQuNSAxMjctMjMuNi0xNi44LTUyLjQtMjYuNy04My41LTI2LjctMzEuMSAwLTU5LjkgOS45LTgzLjQgMjYuNkw5NyAxMjd6TTI0MCA0NDhjMCA5LjcgMSAxOS4xIDIuOCAyOC4yLTE5LjgtNS4yLTM4LTE1LjUtNTIuNy0zMC4yLTEyLjItMTIuMi0zMS45LTEyLjItNDQuMSAwTDk2LjYgNDk1LjRjLTEwLjYgMTAuNi0yNSAxNi42LTQwIDE2LjYtMzEuMiAwLTU2LjYtMjUuMy01Ni42LTU2LjYgMC0xNSA2LTI5LjQgMTYuNi00MGw0OS40LTQ5LjRjMTIuMi0xMi4yIDEyLjItMzEuOSAwLTQ0LjEtMjEuNy0yMS43LTMzLjktNTEuMi0zMy45LTgxLjkgMC0yOS40IDExLjEtNTcuNiAzMS4xLTc5TDI2Ni42IDM2NC42QzI0OS45IDM4OC4xIDI0MCA0MTYuOSAyNDAgNDQ4em0xNDQtOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LCRfdD1mVSxEX3Q9ZlUsRV90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveGVzLXBhY2tpbmciLGljb246WzU3Niw1MTIsW10sImU0YzciLCJNMjA4IDBsODAgMCAwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC01NiA4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMDguOCAwYzguMi0xNC4xIDEyLjgtMzAuNSAxMi44LTQ4bDAtMTYwYzEwLTEzLjQgMTYtMzAgMTYtNDhsMC0zMmMwLTQ0LjItMzUuOC04MC04MC04MGwtMTc2IDAgMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHpNMzIgMzM2bDMyMCAwIDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xMjh6TTQ4IDE5MmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sTl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaGFsa2JvYXJkIixpY29uOls2NDAsNTEyLFtdLCJlNTNkIiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMTc2IDUxMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMzYgMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC00OCAxOTIgMCAwIDE5Mi0xOTIgMCAwLTMyLTY0IDAgMCA0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEwzNjggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NC0xMjIuNyAwYy00NS42IDAtODguNSAyMS42LTExNS42IDU4LjJMMTQuMyAyNjAuOWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDExMiAyMzYuNyAxMTIgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LFBfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXR3byIsaWNvbjpbNDQ4LDUxMixbOTg1N10sImY1MjgiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTM1MiAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGUwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1hcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjQ0LCJleGNoYW5nZSJdLCJmMGVjIiwiTTUwMi42IDE1MC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDAyLjcgMTYwIDMyIDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5NmwzNzAuNyAwLTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMTA5LjMgMzUyIDQ4MCAzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM3MC43IDAgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxJX3Q9ZTBlLHQwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb290YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTQ0LCJmb290YmFsbC1iYWxsIl0sImY0NGUiLCJNMjYxLjEgMjIuNmMtODkgMTgtMTUwLjUgNjMuNC0xOTAgMTIzLjktMjMuMyAzNS42LTM4LjEgNzUuMy00Ni43IDExNS41TDI1MS45IDQ4OS40Yzg5LTE4IDE1MC41LTYzLjQgMTkwLjEtMTIzLjkgMjMuMy0zNS42IDM4LjEtNzUuMyA0Ni43LTExNS41TDI2MS4xIDIyLjZ6bTIzNiAxNjguMWMzLjItNDIuMyAuNy04My4zLTQuOC0xMTguNy00LjQtMjcuOC0yNi44LTQ4LTUzLjEtNTEuNi00My01LjktODIuMi03LjUtMTE3LjgtNS40TDQ5Ny4xIDE5MC42ek0xOTEuNyA0OTcuMUwxNS45IDMyMS40Yy0zLjIgNDIuMy0uNyA4My4zIDQuOCAxMTguNyA0LjQgMjcuOCAyNi44IDQ4IDUzLjEgNTEuNiA0MyA1LjkgODIuMiA3LjUgMTE3LjggNS40ek0yNzEuNSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxGX3Q9dDBlLE9fdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb25zdGVyIixpY29uOls1NzYsNTEyLFtdLCJmNjNiIiwiTTMzNiA5Nmw0OCA2NC0xMjggMCAwLTY0IDgwIDB6bTEyOCA2NEwzODcuMiA1Ny42QzM3NS4xIDQxLjUgMzU2LjEgMzIgMzM2IDMyTDIyNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5Ni0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDE4LjEgMTAuMSAzMy45IDI0LjkgNDIuMS0uNSA1LjcgMS4xIDExLjYgNC43IDE2LjQtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4zIDMxLjNsMTEuMyAxMS4zYzguNiA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS43LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4zLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMi40LTMuMiAzLjktNi44IDQuNS0xMC41bDExNC4yIDBjLjYgMy43IDIuMSA3LjMgNC41IDEwLjUtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4yIDMxLjNsMTEuMyAxMS4zYzguNSA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS44LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4yLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMy42LTQuOCA1LjItMTAuNyA0LjctMTYuNCAxNC44LTguMiAyNC45LTIzLjkgMjQuOS00Mi4xbDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTEyOCAzMzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNzIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sQl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFzdGVyaXNrIixpY29uOls0NDgsNTEyLFsxMDAzMyw2MTU0NV0sIjJhIiwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTY4LjYgMTQ0LTgzLjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43czMuNiAzNC45LTExLjcgNDMuN0wyODggMjU2IDQzMiAzMzkuMWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43cy0yOC40IDIwLjYtNDMuNyAxMS43TDI1NiAzMTEuNCAyNTYgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTY4LjYtMTQ0IDgzLjFjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN1MuNyAzNDggMTYgMzM5LjFMMTYwIDI1NiAxNiAxNzIuOUMuNyAxNjQtNC41IDE0NC41IDQuMyAxMjkuMVMzMi43IDEwOC42IDQ4IDExNy40TDE5MiAyMDAuNiAxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LHVVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktZnVsbCIsaWNvbjpbNjQwLDUxMixbMTI4MjY3LCJiYXR0ZXJ5IiwiYmF0dGVyeS01Il0sImYyNDAiLCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMzA0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTMwNCAweiJdfSxSX3Q9dVUsSF90PXVVLHFfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1kcmVzcyIsaWNvbjpbMzIwLDUxMixbXSwiZTU5YyIsIk0yMjQgNjRBNjQgNjQgMCAxIDAgOTYgNjQgNjQgNjQgMCAxIDAgMjI0IDY0ek04OCA0MDBsMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgMTYgMCAwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCAxNy44IDBjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTMxLjEtOTMuNCAyOC43IDM3LjhjMTAuNyAxNC4xIDMwLjggMTYuOCA0NC44IDYuMnMxNi44LTMwLjcgNi4yLTQ0LjhMMjU0LjYgMjA3Yy0yMi40LTI5LjYtNTcuNS00Ny05NC42LTQ3cy03Mi4yIDE3LjQtOTQuNiA0N0w2LjUgMjg0LjdjLTEwLjcgMTQuMS03LjkgMzQuMiA2LjIgNDQuOHMzNC4yIDcuOSA0NC44LTYuMkw4Ni4yIDI4NS41IDU1IDM3OC45QzUxLjYgMzg5LjMgNTkuMyA0MDAgNzAuMiA0MDBMODggNDAweiJdfSxhMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1raXNzLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUzNywia2lzcy1iZWFtIl0sImY1OTciLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCAyODhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LFZfdD1hMGUscjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoLWNhbi1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUtYWx0Il0sImY4MmEiLCJNMTY3LjEtMTZsMTEzLjkgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOUwzMjAgMzIgNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDguNy0yNi4xQzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNnpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sVV90PXIwZSxqX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9udCIsaWNvbjpbNTEyLDUxMixbXSwiZjAzMSIsIk0yODUuMSA1MC43QzI3OS45IDM5LjMgMjY4LjUgMzIgMjU2IDMycy0yMy45IDcuMy0yOS4xIDE4LjdMNTkuNSA0MTYgNDggNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTYuMSAwIDIyLTQ4IDIwOC4zIDAgMjIgNDgtNi4xIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTEuNSAwLTE2Ny40LTM2NS4zek0zMzAuOCAzMDRMMTgxLjIgMzA0IDI1NiAxNDAuOCAzMzAuOCAzMDR6Il19LFdfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JlLWhvbGUiLGljb246WzUxMiw1MTIsW10sImU0YzMiLCJNMjU2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjMyLjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTIzLjctMTIuOS00NC40LTMyLTU1LjRMMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0wIDM4NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjcyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE0NGMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMxNDQgMzgxLjkgMTQ0IDMyMGwwLTE0NGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCAzODR6Il19LEdfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1cy1jb3ZpZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRhOCIsIk0xOTIgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDMzLjZjMzAuNyA0LjIgNTguOCAxNi4zIDgyLjMgMzQuMUwzODYuMSA5MiAzNzQuOCA4MC42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTYuNiA1Ni42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTExLjMtMTEuMy0yMy44IDIzLjhjMTcuOSAyMy41IDI5LjkgNTEuNyAzNC4xIDgyLjNsMzMuNiAwIDAtMTZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTYtMzMuNiAwYy00LjIgMzAuNy0xNi4zIDU4LjgtMzQuMSA4Mi4zbDIzLjggMjMuOCAxMS4zLTExLjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01Ni42IDU2LjZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTEuMy0xMS4zLTIzLjgtMjMuOGMtMjMuNSAxNy45LTUxLjcgMjkuOS04Mi4zIDM0LjFsMCAzMy42IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTMzLjZjLTMwLjctNC4yLTU4LjgtMTYuMy04Mi4zLTM0LjFsLTIzLjggMjMuOCAxMS4zIDExLjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw0Ni43IDQwOC43Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMTEuMyAxMS4zIDIzLjgtMjMuOEM5Ny45IDMzOC44IDg1LjggMzEwLjcgODEuNiAyODBsLTMzLjYgMCAwIDE2YzAgMTMuMy0xMC43IDI0LTI0IDI0UzAgMzA5LjMgMCAyOTZsMC04MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTYgMzMuNiAwYzQuMi0zMC43IDE2LjMtNTguOCAzNC4xLTgyLjNMOTIgMTI1LjkgODAuNiAxMzcuMmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1Ni42LTU2LjZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDEyNS45IDkyIDE0OS43IDExNS43YzIzLjUtMTcuOSA1MS43LTI5LjkgODIuMy0zNC4xbDAtMzMuNi0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMzIgMjAwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sWV90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtcGRmIixpY29uOls1NzYsNTEyLFtdLCJmMWMxIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNDAgMzgwYy0xMSAwLTIwIDktMjAgMjBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0yOCAxMiAwYzMzLjEgMCA2MC0yNi45IDYwLTYwcy0yNi45LTYwLTYwLTYwbC0zMiAwem0zMiA4MGwtMTIgMCAwLTQwIDEyIDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwem05Ni04MGMtMTEgMC0yMCA5LTIwIDIwbDAgMTI4YzAgMTEgOSAyMCAyMCAyMGwzMiAwYzI4LjcgMCA1Mi0yMy4zIDUyLTUybDAtNjRjMC0yOC43LTIzLjMtNTItNTItNTJsLTMyIDB6bTIwIDEyOGwwLTg4IDEyIDBjNi42IDAgMTIgNS40IDEyIDEybDAgNjRjMCA2LjYtNS40IDEyLTEyIDEybC0xMiAwem04OC0xMDhsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00NCAyOCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtMjggMCAwLTI0IDI4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00OCAwYy0xMSAwLTIwIDktMjAgMjB6Il19LFpfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5ndWFnZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFhYiIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05LjYgMC04LjQgMjMuMWMtMTYuNCA0NS4yLTQxLjEgODYuNS03Mi4yIDEyMiAxNC4yIDguOCAyOSAxNi42IDQ0LjQgMjMuNWw1MC40IDIyLjQgNjIuMi0xNDBjNS4xLTExLjYgMTYuNi0xOSAyOS4yLTE5czI0LjEgNy40IDI5LjIgMTlsMTI4IDI4OGM3LjIgMTYuMi0uMSAzNS4xLTE2LjIgNDIuMnMtMzUuMS0uMS00Mi4yLTE2LjJsLTIwLTQ1LTE1Ny41IDAtMjAgNDVjLTcuMiAxNi4yLTI2LjEgMjMuNC00Mi4yIDE2LjJzLTIzLjQtMjYuMS0xNi4yLTQyLjJsMzkuOC04OS41LTUwLjQtMjIuNGMtMjMtMTAuMi00NS0yMi40LTY1LjgtMzYuNC0yMS4zIDE3LjItNDQuNiAzMi4yLTY5LjUgNDQuN0w3OC4zIDM4MC42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDM0LjUtMTcuM2MxNi4zLTguMiAzMS44LTE3LjcgNDYuNC0yOC4zLTEzLjgtMTIuNy0yNi44LTI2LjQtMzguOS00MC45TDgxLjYgMjI0LjdjLTExLjMtMTMuNi05LjUtMzMuOCA0LjEtNDUuMXMzMy44LTkuNSA0NS4xIDQuMWwxMC4yIDEyLjJjMTEuNSAxMy45IDI0LjEgMjYuOCAzNy40IDM4LjcgMjcuNS0zMC40IDQ5LjItNjYuMSA2My41LTEwNS40bC41LTEuMi0yMTAuMyAwQzE0LjMgMTI4IDAgMTEzLjcgMCA5NlMxNC4zIDY0IDMyIDY0bDk2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDE2IDI3MC44TDM2NS43IDM4NCA0NjYuMyAzODQgNDE2IDI3MC44eiJdfSxpMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWhhbHZlZCIsaWNvbjpbNTEyLDUxMixbInNoaWVsZC1hbHQiXSwiZjNlZCIsIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuOCA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMi0uNSA5OS4yLTQxLjMgMjgwLjctMjEzLjYgMzYzLjItMTYuNyA4LTM2LjEgOC01Mi44IDAtMTcyLjQtODIuNS0yMTMuMS0yNjQtMjEzLjYtMzYzLjItLjEtMjYuMiAxNi4zLTQ3LjkgMzguMy01Ny4yTDI0Mi43IDIuOUMyNDYuOSAxIDI1MS40IDAgMjU2IDB6bTAgNjYuOGwwIDM3OC4xYzEzOC02Ni44IDE3NS4xLTIxNC44IDE3Ni0zMDMuNGwtMTc2LTc0LjYgMCAweiJdfSxYX3Q9aTBlLFFfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC11cCIsaWNvbjpbMzIwLDUxMixbXSwiZjBkOCIsIk0xNDAuMyAxMzUuMmMxMi42LTEwLjMgMzEuMS05LjUgNDIuOCAyLjJsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMDEuNCAzMjAgMjg4LjUgMzIwbC0yNTYgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuNyAyNzQuNSA5LjkgMjY1LjRsMTI4LTEyOCAyLjQtMi4yeiJdfSxvMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wZW4iLGljb246WzY0MCw1MTIsWzEyODIyMSwiZmlsZS1lZGl0Il0sImYzMWMiLCJNMTI4LjEgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ2LjIgMCAxMC45LTU0LjVjNC4zLTIxLjcgMTUtNDEuNiAzMC42LTU3LjJsMTMyLjItMTMyLjIgMC05Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDMyMi44IDE4LjdDMzEwLjggNi43IDI5NC41IDAgMjc3LjYgMEwxMjguMSAwek0zODkuNiAxNzZsLTkzLjUgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC05My41IDExNy41IDExNy41ek0zMzIuMyA0NjYuOWwtMTEuOSA1OS42Yy0uMiAuOS0uMyAxLjktLjMgMi45IDAgOCA2LjUgMTQuNiAxNC42IDE0LjYgMSAwIDEuOS0uMSAyLjktLjNsNTkuNi0xMS45YzEyLjQtMi41IDIzLjgtOC42IDMyLjctMTcuNWwxMTguOS0xMTguOS04MC04MC0xMTguOSAxMTguOWMtOC45IDguOS0xNSAyMC4zLTE3LjUgMzIuN3ptMjY3LjgtMTIzYzIyLjEtMjIuMSAyMi4xLTU3LjkgMC04MHMtNTcuOS0yMi4xLTgwIDBsLTI4LjggMjguOCA4MCA4MCAyOC44LTI4Ljh6Il19LEtfdD1vMGUsczBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1iaWtpbmciLGljb246WzU3Niw1MTIsWzEyODY5MiwiYmlraW5nIl0sImY4NGEiLCJNMzY4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjcuMiA2NGwtNjEuOC00OC44Yy0xNy4zLTEzLjYtNDEuNy0xMy44LTU5LjEtLjNsLTgzLjEgNjQuMmMtMzAuNyAyMy44LTI4LjUgNzAuOCA0LjMgOTEuNkwyNTYgMzA1LjEgMjU2IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTAuNy01LjMtMjAuNy0xNC4yLTI2LjZMMjYzIDIzMi45IDMyMy4zIDE4NC40IDM2NCAyMTdjNS43IDQuNSAxMi43IDcgMjAgN2w2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi44IDB6TTExMiA1MTJhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0zNTIgMGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LEpfdD1zMGUsbjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stb3Blbi1yZWFkZXIiLGljb246WzUxMiw1MTIsWyJib29rLXJlYWRlciJdLCJmNWRhIiwiTTI1NiAxNTJhODggODggMCAxIDAgMC0xNzYgODggODggMCAxIDAgMCAxNzZ6bTAgMjk4LjdsMC0xNDkuM2MxNi4zLTYuOCAzMi45LTEzLjcgNDkuNy0yMC43IDM5LTE2LjIgODAuOC0yNC42IDEyMy4xLTI0LjZsMTkuMiAwIDAgMTYwLTE5LjIgMGMtNTkuMSAwLTExNy43IDExLjctMTcyLjMgMzQuNWwtLjUgLjJ6TTI1NiAyMzJsLTI1LjEtMTAuNUMxODQuMSAyMDIgMTMzLjkgMTkyIDgzLjIgMTkyTDQ4IDE5MmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUuMiAwYzUwLjcgMCAxMDAuOSAxMCAxNDcuNyAyOS41bDEyLjggNS4zYzcuOSAzLjMgMTYuNyAzLjMgMjQuNiAwbDEyLjgtNS4zYzQ2LjgtMTkuNSA5Ny0yOS41IDE0Ny43LTI5LjVsMzUuMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zNS4yIDBjLTUwLjcgMC0xMDAuOSAxMC0xNDcuNyAyOS41TDI1NiAyMzJ6Il19LGVBdD1uMGUsdEF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzLXdhdGVyLWRyb3BsZXQiLGljb246WzM4NCw1MTIsW10sImU0ZjUiLCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zbDE2Ni42IDBjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBMMzIgMHpNODMgMjk3LjVMNjYuNCA2NCAzMTcuNiA2NCAzMDEgMjk3LjUgMjg4IDMwNGMtMjAuMSAxMC4xLTQzLjkgMTAuMS02NCAwcy00My45LTEwLjEtNjQgMC00My45IDEwLjEtNjQgMGwtMTMtNi41ek0yNTYgMTk2YzAtMjQtMzMuNy03MC4xLTUyLjItOTMuNS02LjEtNy43LTE3LjUtNy43LTIzLjYgMC0xOC41IDIzLjQtNTIuMiA2OS41LTUyLjIgOTMuNSAwIDMzLjEgMjguNyA2MCA2NCA2MHM2NC0yNi45IDY0LTYweiJdfSxsMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItYnJvYWRjYXN0IixpY29uOls1NzYsNTEyLFsiYnJvYWRjYXN0LXRvd2VyIl0sImY1MTkiLCJNODcuOSAxMS41Yy0xMS4zLTYuOS0yNi4xLTMuMi0zMyA4LjEtMjQuOCA0MS0zOSA4OS4xLTM5IDE0MC40czE0LjIgOTkuNCAzOSAxNDAuNGM2LjkgMTEuMyAyMS42IDE1IDMzIDguMXMxNS0yMS42IDguMS0zM0M3NS43IDI0MS45IDY0IDIwMi4zIDY0IDE2MFM3NS43IDc4LjEgOTYuMSA0NC40YzYuOS0xMS4zIDMuMi0yNi4xLTguMS0zM3ptNDAwLjEgMGMtMTEuMyA2LjktMTUgMjEuNi04LjEgMzMgMjAuNCAzMy43IDMyLjEgNzMuMyAzMi4xIDExNS42cy0xMS43IDgxLjktMzIuMSAxMTUuNmMtNi45IDExLjMtMy4yIDI2LjEgOC4xIDMzczI2LjEgMy4yIDMzLTguMWMyNC44LTQxIDM5LTg5LjEgMzktMTQwLjRTNTQ1LjggNjAuNiA1MjEgMTkuNmMtNi45LTExLjMtMjEuNi0xNS0zMy04LjF6TTMyMCAyMTUuNGMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40IDAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0YzAgMjMuNyAxMi45IDQ0LjQgMzIgNTUuNEwyNTYgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNjQuNnpNMTgwLjIgOTFjNy4yLTExLjIgMy45LTI2LTcuMi0zMy4ycy0yNi0zLjktMzMuMiA3LjJjLTE3LjYgMjcuNC0yNy44IDYwLTI3LjggOTVzMTAuMiA2Ny42IDI3LjggOTVjNy4yIDExLjIgMjIgMTQuNCAzMy4yIDcuMnMxNC40LTIyIDcuMi0zMy4yYy0xMi44LTE5LjktMjAuMi00My42LTIwLjItNjlzNy40LTQ5LjEgMjAuMi02OXpNNDM2LjIgNjVjLTcuMi0xMS4yLTIyLTE0LjQtMzMuMi03LjJzLTE0LjQgMjItNy4yIDMzLjJjMTIuOCAxOS45IDIwLjIgNDMuNiAyMC4yIDY5cy03LjQgNDkuMS0yMC4yIDY5Yy03LjIgMTEuMi0zLjkgMjYgNy4yIDMzLjJzMjYgMy45IDMzLjItNy4yYzE3LjYtMjcuNCAyNy44LTYwIDI3LjgtOTVzLTEwLjItNjcuNi0yNy44LTk1eiJdfSxhQXQ9bDBlLGMwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFycm93cy1hbHQiXSwiZjc4YyIsIk00NTYgMjI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yUzMyMi4xIDMyLjIgMzI5IDM5bDQwIDQwIDczLjQtNzMuNEM0NDYgMiA0NTAuOSAwIDQ1NiAwczEwIDIgMTMuNyA1LjdsMzYuNyAzNi43QzUxMCA0NiA1MTIgNTAuOSA1MTIgNTZzLTIgMTAtNS43IDEzLjdMNDMzIDE0MyA0NzMgMTgzYzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDY1LjcgMjI0IDQ1NiAyMjR6bTAgNjRjOS43IDAgMTguNSA1LjggMjIuMiAxNC44czEuNyAxOS4zLTUuMiAyNi4ybC00MCA0MCA3My40IDczLjRjMy42IDMuNiA1LjcgOC41IDUuNyAxMy43cy0yIDEwLTUuNyAxMy43bC0zNi43IDM2LjdDNDY2IDUxMCA0NjEuMSA1MTIgNDU2IDUxMnMtMTAtMi0xMy43LTUuN0wzNjkgNDMzIDMyOSA0NzNjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJTMjg4IDQ2NS43IDI4OCA0NTZsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTQ0IDB6bS0yNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC00MC00MC03My40IDczLjRDNjYgNTEwIDYxLjEgNTEyIDU2IDUxMnMtMTAtMi0xMy43LTUuN0w1LjcgNDY5LjdDMiA0NjYgMCA0NjEuMSAwIDQ1NnMyLTEwIDUuNy0xMy43TDc5IDM2OSAzOSAzMjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNDYuMyAyODggNTYgMjg4bDE0NCAwek01NiAyMjRjLTkuNyAwLTE4LjUtNS44LTIyLjItMTQuOFMzMi4yIDE4OS45IDM5IDE4M0w3OSAxNDMgNS43IDY5LjdDMiA2NiAwIDYxLjEgMCA1NlMyIDQ2IDUuNyA0Mi4zTDQyLjMgNS43QzQ2IDIgNTAuOSAwIDU2IDBTNjYgMiA2OS43IDUuN0wxNDMgNzkgMTgzIDM5YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJTMjI0IDQ2LjMgMjI0IDU2bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0TDU2IDIyNHoiXX0sckF0PWMwZSxpQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtdG8tY2l0eSIsaWNvbjpbNjQwLDUxMixbXSwiZTRiMyIsIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgwIDQ4IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDE2em02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0zNTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE3Ni04MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek01MTIgMzM2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE1MyAxNjdsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAweiJdfSxvQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wLW1lZGljYWwiLGljb246WzY0MCw1MTIsW10sImY4MTIiLCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDAtNjQgMCAwLTI0MC0zODQgMCAwIDI0MC02NCAwIDAtMjQwek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjIgMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODggMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxzQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJlYWQtc2xpY2UiLGljb246WzUxMiw1MTIsW10sImY3ZWMiLCJNNjQgNDMybDAtMTc2Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIxNi41IDUxMi0yMTYuNSA1MTIgMCAwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjg4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSxuQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xvYmUiLGljb246WzUxMiw1MTIsWzEyNzc2MF0sImYwYWMiLCJNMzUxLjkgMjgwbC0xOTAuOSAwYzIuOSA2NC41IDE3LjIgMTIzLjkgMzcuNSAxNjcuNCAxMS40IDI0LjUgMjMuNyA0MS44IDM1LjEgNTIuNCAxMS4yIDEwLjUgMTguOSAxMi4yIDIyLjkgMTIuMnMxMS43LTEuNyAyMi45LTEyLjJjMTEuNC0xMC42IDIzLjctMjggMzUuMS01Mi40IDIwLjMtNDMuNSAzNC42LTEwMi45IDM3LjUtMTY3LjR6TTE2MC45IDIzMmwxOTAuOSAwQzM0OSAxNjcuNSAzMzQuNyAxMDguMSAzMTQuNCA2NC42IDMwMyA0MC4yIDI5MC43IDIyLjggMjc5LjMgMTIuMiAyNjguMSAxLjcgMjYwLjQgMCAyNTYuNCAwcy0xMS43IDEuNy0yMi45IDEyLjJjLTExLjQgMTAuNi0yMy43IDI4LTM1LjEgNTIuNC0yMC4zIDQzLjUtMzQuNiAxMDIuOS0zNy41IDE2Ny40em0tNDggMEMxMTYuNCAxNDYuNCAxMzguNSA2Ni45IDE3MC44IDE0LjcgNzguNyA0Ny4zIDEwLjkgMTMxLjIgMS41IDIzMmwxMTEuNCAwek0xLjUgMjgwYzkuNCAxMDAuOCA3Ny4yIDE4NC43IDE2OS4zIDIxNy4zLTMyLjMtNTIuMi01NC40LTEzMS43LTU3LjktMjE3LjNMMS41IDI4MHptMzk4LjQgMGMtMy41IDg1LjYtMjUuNiAxNjUuMS01Ny45IDIxNy4zIDkyLjEtMzIuNyAxNTkuOS0xMTYuNSAxNjkuMy0yMTcuM2wtMTExLjQgMHptMTExLjQtNDhDNTAxLjkgMTMxLjIgNDM0LjEgNDcuMyAzNDIgMTQuNyAzNzQuMyA2Ni45IDM5Ni40IDE0Ni40IDM5OS45IDIzMmwxMTEuNCAweiJdfSxsQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW1pbnVzIixpY29uOls1MTIsNTEyLFtdLCJmNjVkIiwiTTQ0OCA0NDhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNEw0NDggODBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE4NCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxjQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFzay1mYWNlIixpY29uOls2NDAsNTEyLFtdLCJlMWQ3IiwiTTMyMCA2NGMtMjcuMiAwLTUzLjggOC03Ni40IDIzLjFsLTM3LjEgMjQuOGMtMTUuOCAxMC41LTM0LjMgMTYuMS01My4zIDE2LjFMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDc4LjdjMCA2Mi42IDQ1LjIgMTE2IDEwNyAxMjYuM2w5Ny45IDE2LjNjMzMgMjIgNzIuNiAzNC43IDExNS4xIDM0LjdzODIuMi0xMi44IDExNS4xLTM0LjdMNTMzIDM5Ni45YzYxLjctMTAuMyAxMDctNjMuNyAxMDctMTI2LjNsMC03OC43YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04OS4yIDBjLTE5IDAtMzcuNS01LjYtNTMuMy0xNi4xTDM5Ni40IDg3LjFDMzczLjggNzIgMzQ3LjIgNjQgMzIwIDY0ek0xMzUuOSAzMzYuOWwtMTguNC0zLjFDODYuNiAzMjguNyA2NCAzMDIgNjQgMjcwLjdsMC03OC43IDQ4IDAgMCA0OGMwIDM1IDguNiA2Ny45IDIzLjkgOTYuOXptMzg2LjYtMy4xbC0xOC40IDMuMUM1MTkuNCAzMDcuOSA1MjggMjc1IDUyOCAyNDBsMC00OCA0OCAwIDAgNzguN2MwIDMxLjMtMjIuNiA1OC01My41IDYzLjF6TTE5MiAyMzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNTYgNTZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxkQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9uZyIsaWNvbjpbNTEyLDUxMixbXSwiZjU1YyIsIk00NDguNSAzODRjMCA0MS41LTEzLjEgNzkuOS0zNS41IDExMS4zLTcuOSAxMS4xLTIxLjIgMTYuNy0zNC44IDE2LjdsLTI0My4zIDBjLTEzLjcgMC0yNi45LTUuNi0zNC44LTE2LjctMjIuNC0zMS40LTM1LjUtNjkuOC0zNS41LTExMS4zIDAtNzEuMSAzOC42LTEzMy4xIDk2LTE2Ni4zbDAtMTUzLjdjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTMuN2MxNC4yIDguMiAyNy4yIDE4LjIgMzguOCAyOS42bDM5LjMtMzkuMy03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNiAxNiAzMiAzMiA0OCA0OCA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03LTctNDMuMyA0My4zYzE3LjMgMjguOSAyNy4zIDYyLjYgMjcuMyA5OC44ek0yODguNSA2NGwtNjQgMCAwIDE5MC42LTMyIDE4LjVjLTE5LjUgMTEuMy0zNS43IDI3LjUtNDYuOSA0Ni45bDIyMS44IDBjLTExLjItMTkuNC0yNy40LTM1LjYtNDYuOS00Ni45bC0zMi0xOC41IDAtMTkwLjZ6Il19LGZBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWJyaWRnZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MyIsIk0zMiAzMmwyMDggMCAwIDY0LTI0IDAgMCA2NCAyNCAwIDAgMTI5LjNjLTQ1LjQgNy42LTgwIDQ3LjEtODAgOTQuN2wwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk0YzAtMzguOC0yNi40LTcyLjYtNjQtODJsMC0xMTIgNDAgMCAwLTY0LTggMEMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJ6TTg4IDk2bDAgNjQgODAgMCAwLTY0LTgwIDB6TTMzNiAzMmw3MiAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDcyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTcyIDAgMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTcyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em05NiAxNjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxkMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtOS0xIixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLXVwLWFsdCJdLCJmODg3IiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNMzY1LjEgMjA2LjZjLTkuNiAxNC44LTUuNCAzNC42IDkuNCA0NC4zczM0LjYgNS40IDQ0LjMtOS40bDQyLjEtNjQuOWMxMi40LTE5LjIgMTkuMS00MS42IDE5LjEtNjQuNSAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDM2LjEgMjMuOSA2Ni43IDU2LjggNzYuNmwtMTEuNyAxOHpNMzc2IDExMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem00Mi43IDE4MmMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTk2YzAtMTAuMy00LjktMTkuOS0xMy4zLTI2eiJdfSx1QXQ9ZDBlLHBBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VudGFpbi1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNTJlIiwiTTI1Ni4zIDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTc3LjggMGM0LTE1LjQgMi40LTMyLjYtNi43LTQ4LjJMMzU0LjYgMjU2IDM2OC4zIDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTYuMSAwLTExLjQgMy40LTE0LjEgOC41bC00Mi42LTczYy02LTEwLjItMTQuMS0xOC0yMy4zLTIzLjNsMC01Ni4yem02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNjAgOTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptLTI3Mi02NC43bC02NS4xIDExMS42IDMzLjEgMzMuMSA0OC00OCA0MC40IDAtNTYuNC05Ni43em0tMjcuNi00Ny45YzEyLjMtMjEuMiA0Mi45LTIxLjIgNTUuMyAwTDQyMC4zIDQ2My45YzEyLjQgMjEuMy0yLjkgNDguMS0yNy42IDQ4LjFMNTYgNTEyYy0yNC43IDAtNDAuMS0yNi44LTI3LjYtNDguMUwxOTYuNyAxNzUuNHoiXX0scFU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi05LTEiLGljb246WzUxMiw1MTIsWyJzb3J0LW51bWVyaWMtZGVzYyIsInNvcnQtbnVtZXJpYy1kb3duLWFsdCJdLCJmODg2IiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptMTM0LjUtMTg0bDExLjctMThjLTMyLjktOS45LTU2LjgtNDAuNS01Ni44LTc2LjYgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDIyLjktNi42IDQ1LjMtMTkuMSA2NC41bC00Mi4xIDY0LjljLTkuNiAxNC44LTI5LjQgMTkuMS00NC4zIDkuNHMtMTkuMS0yOS40LTkuNC00NC4zek00MjQgMTEyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS01LjMgMTgyYzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40eiJdfSxoQXQ9cFUsbUF0PXBVLGYwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4td2lkZSIsaWNvbjpbNTEyLDUxMixbMTI4NTE1LCJncmluLWFsdCJdLCJmNTgxIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMjA4IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NCAxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjR6bTEyOCA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LGdBdD1mMGUseEF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvb3AiLGljb246WzUxMiw1MTIsW10sImY2MTkiLCJNMjU0LjQgNi42YzMuNS00LjMgOS02LjUgMTQuNS01LjcgNDYuOSA2LjMgODMuMSA0Ni41IDgzLjEgOTUuMSAwIDExLjItMS45IDIyLTUuNSAzMmw1LjUgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDE5LjEtOC40IDM2LjMtMjEuNyA0OGwxMy43IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzIgMCAyMy4yLTExIDQzLjgtMjggNTcgMzQuMSA1LjcgNjAgMzUuMyA2MCA3MSAwIDM5LjgtMzIuMiA3Mi03MiA3Mkw3MiA1MTJjLTM5LjggMC03Mi0zMi4yLTcyLTcyIDAtMzUuNyAyNS45LTY1LjMgNjAtNzEtMTctMTMuMi0yOC0zMy44LTI4LTU3IDAtMzkuOCAzMi4yLTcyIDcyLTcybDEzLjcgMGMtMTMuMy0xMS43LTIxLjctMjguOS0yMS43LTQ4IDAtMzUuMyAyOC43LTY0IDY0LTY0bDE2LjIgMGM0NC4xLS4xIDc5LjgtMzUuOSA3OS44LTgwIDAtOS4yLTEuNS0xNy45LTQuMy0yNi4xLTEuOC01LjItLjgtMTEuMSAyLjgtMTUuNHoiXX0sYkF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRoYXJtYWNoYWtyYSIsaWNvbjpbNTEyLDUxMixbOTc4NF0sImY2NTUiLCJNMzM3LjggMjA1LjdsNDguNi00Mi41YzEzLjggMTkuMyAyMy40IDQxLjkgMjcuNCA2Ni4ybC02NC40IDQuM2MtMi40LTEwLjEtNi40LTE5LjUtMTEuNi0yOHptMTQwLjEgMTkuNWMtNS4zLTM4LjgtMjAuNi03NC41LTQzLjItMTA0LjNsLjgtLjdDNDQ5IDEwOC40IDQ0OS43IDg3LjYgNDM3IDc1cy0zMy40LTEyLTQ1LjIgMS41bC0uNyAuOGMtMjkuOC0yMi42LTY1LjUtMzcuOS0xMDQuMy00My4ybC4xLTEuMWMxLjItMTcuOS0xMy0zMy0zMC45LTMzcy0zMi4xIDE1LjItMzAuOSAzM2wuMSAxLjFjLTM4LjggNS4zLTc0LjUgMjAuNi0xMDQuMyA0My4ybC0uNy0uOEMxMDguNCA2MyA4Ny42IDYyLjMgNzUgNzVzLTEyIDMzLjQgMS41IDQ1LjJsLjggLjdjLTIyLjYgMjkuOC0zNy45IDY1LjUtNDMuMiAxMDQuM2wtMS4xLS4xYy0xNy45LTEuMi0zMyAxMy0zMyAzMC45czE1LjIgMzIuMSAzMyAzMC45bDEuMS0uMWM1LjMgMzguOCAyMC42IDc0LjUgNDMuMiAxMDQuM2wtLjggLjdDNjMgNDAzLjYgNjIuMyA0MjQuNCA3NSA0MzdzMzMuNCAxMiA0NS4yLTEuNWwuNy0uOGMyOS44IDIyLjYgNjUuNSAzNy45IDEwNC4zIDQzLjJsLS4xIDEuMWMtMS4yIDE3LjkgMTMgMzMgMzAuOSAzM3MzMi4xLTE1LjIgMzAuOS0zM2wtLjEtMS4xYzM4LjgtNS4zIDc0LjUtMjAuNiAxMDQuMy00My4ybC43IC44YzExLjggMTMuNSAzMi41IDE0LjIgNDUuMiAxLjVzMTItMzMuNC0xLjUtNDUuMmwtLjgtLjdjMjIuNi0yOS44IDM3LjktNjUuNSA0My4yLTEwNC4zbDEuMSAuMWMxNy45IDEuMiAzMy0xMyAzMy0zMC45cy0xNS4yLTMyLjEtMzMtMzAuOWwtMS4xIC4xek0xNjMuMiAxMjUuNmMxOS4zLTEzLjggNDEuOS0yMy40IDY2LjItMjcuNWw0LjMgNjQuNGMtMTAgMi40LTE5LjUgNi40LTI4IDExLjZsLTQyLjUtNDguNnptLTY1IDEwMy44YzQuMS0yNC40IDEzLjctNDYuOSAyNy41LTY2LjJsNDguNiA0Mi41Yy01LjMgOC41LTkuMiAxOC0xMS42IDI4bC02NC40LTQuM3ptMjcuNSAxMTkuNGMtMTMuOC0xOS4zLTIzLjQtNDEuOS0yNy41LTY2LjJsNjQuNC00LjNjMi40IDEwLjEgNi40IDE5LjUgMTEuNiAyOGwtNDguNiA0Mi41em0xMDMuOCA2NWMtMjQuNC00LjEtNDYuOS0xMy43LTY2LjItMjcuNGw0Mi41LTQ4LjZjOC41IDUuMyAxOCA5LjIgMjggMTEuNmwtNC4zIDY0LjR6bTExOS40LTI3LjRjLTE5LjMgMTMuOC00MS45IDIzLjQtNjYuMiAyNy40bC00LjMtNjQuNGMxMC0yLjQgMTkuNS02LjQgMjgtMTEuNmw0Mi41IDQ4LjZ6bTY1LTEwMy44Yy00LjEgMjQuNC0xMy43IDQ2LjktMjcuNCA2Ni4ybC00OC42LTQyLjVjNS4zLTguNiA5LjItMTggMTEuNi0yOGw2NC40IDQuM3ptLTY1LTE1Ni45bC00Mi41IDQ4LjZjLTguNi01LjMtMTgtOS4yLTI4LTExLjZsNC4zLTY0LjRjMjQuNCA0LjEgNDYuOSAxMy43IDY2LjIgMjcuNXpNMjU2IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHUwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LXF1YXJ0ZXIiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTIiXSwiZjI0MyIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC02NCAweiJdfSx2QXQ9dTBlLHlBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmtoIixpY29uOlszMjAsNTEyLFs5NzY1XSwiZjY0NCIsIk05NiAxMjhjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGMwIDQxLjYtMjAuNyA3Ni42LTQ2LjYgMTA0LjEtNS45IDYuMi0xMS44IDExLjgtMTcuNCAxNi43LTUuNi00LjktMTEuNS0xMC41LTE3LjQtMTYuNy0yNS45LTI3LjUtNDYuNi02Mi42LTQ2LjYtMTA0LjF6TTE2MCAwQzg5LjMgMCAzMiA1Ny4zIDMyIDEyOCAzMiAxODAuNCA1My41IDIyMy41IDc4LjggMjU2TDMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDYuOCAwQzI2Ni41IDIyMy41IDI4OCAxODAuNCAyODggMTI4IDI4OCA1Ny4zIDIzMC43IDAgMTYwIDB6Il19LHdBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFtb25kIixpY29uOls1MTIsNTEyLFs5ODMwXSwiZjIxOSIsIk0xNyAyMTVMMjE1IDE3QzIyNS45IDYuMSAyNDAuNiAwIDI1NiAwczMwLjEgNi4xIDQxIDE3TDQ5NSAyMTVjMTAuOSAxMC45IDE3IDI1LjYgMTcgNDFzLTYuMSAzMC4xLTE3IDQxTDI5NyA0OTVjLTEwLjkgMTAuOS0yNS42IDE3LTQxIDE3cy0zMC4xLTYuMS00MS0xN0wxNyAyOTdDNi4xIDI4Ni4xIDAgMjcxLjQgMCAyNTZzNi4xLTMwLjEgMTctNDF6Il19LE1BdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWJzY3JpcHQiLGljb246WzU3Niw1MTIsW10sImYxMmMiLCJNOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsMTUuMyAwIDg5LjYgMTI4LTg5LjYgMTI4LTE1LjMgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMjQwIDMxMS44IDMyNS44IDQzNC40YzYgOC42IDE1LjggMTMuNiAyNi4yIDEzLjZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUuMyAwLTg5LjYtMTI4IDg5LjYtMTI4IDE1LjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwyNDAgMjAwLjIgMTU0LjIgNzcuNkMxNDguMiA2OS4xIDEzOC40IDY0IDEyOCA2NEw5NiA2NHpNNTQ0IDMyMGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZjLTE1LjggNy45LTIyLjIgMjcuMS0xNC4zIDQyLjkgNS42IDExLjIgMTYuOSAxNy43IDI4LjYgMTcuN2wwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMjh6Il19LHAwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydXBlZS1zaWduIixpY29uOls0NDgsNTEyLFs4MzYwLCJydXBlZSJdLCJmMTU2IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHptMjg1LjEtMzJsMzQuOSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNC45IDBjLTcuMiAwLTEzLjEgNS45LTEzLjEgMTMuMSAwIDUuNyAzLjcgMTAuNyA5LjEgMTIuNWw0OS40IDE1LjljMzEuOSAxMC4zIDUzLjUgMzkuOSA1My41IDczLjQgMCA0Mi42LTM0LjUgNzcuMS03Ny4xIDc3LjFMMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw1MC45IDBjNy4yIDAgMTMuMS01LjkgMTMuMS0xMy4xIDAtNS43LTMuNy0xMC43LTkuMS0xMi41bC00OS40LTE1LjljLTMxLjktMTAuMy01My41LTM5LjktNTMuNS03My40IDAtNDIuNiAzNC41LTc3LjEgNzcuMS03Ny4xeiJdfSx6QXQ9cDBlLGtBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcmlmbGUiLGljb246WzUxMiw1MTIsW10sImU1NGUiLCJNNDE2IDBMMzg0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN0w0MzIgMTZjMC04LjgtNy4yLTE2LTE2LTE2ek0yMjQgMjA4QzExOCAyMDggMzIgMjk0IDMyIDQwMGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OGMwLTMyLjUgMTIuMS02Mi4xIDMyLTg0LjdsMCAxOTYuNyAxNjAgMCAwLTI5My4xYy0yMC03LjEtNDEuNi0xMC45LTY0LTEwLjl6TTI4MCA4OGE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6Il19LFNBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkIixpY29uOlszODQsNTEyLFsxMDBdLCI0NCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRTMjgzLjcgNDgwIDE2MCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDY0ek02NCA5NmwwIDMyMCA5NiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwUzI0OC40IDk2IDE2MCA5Nkw2NCA5NnoiXX0sQ0F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1uZmkiLGljb246WzQ0OCw1MTIsW10sImU1NzYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTMgMTcyLjNsMzUgNjMgMC01MS40YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNDRjMCAxMC45LTcuNCAyMC41LTE4IDIzLjJzLTIxLjctMi0yNy0xMS42bC0zNS02MyAwIDUxLjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMC45IDcuNC0yMC41IDE4LTIzLjJzMjEuNyAyIDI3IDExLjZ6TTIwOCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwIDMyIDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE0NHptMTkyIDBsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sTEF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlZXRoIixpY29uOls1MTIsNTEyLFtdLCJmNjJlIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNDQgMjA4bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4em0xMjggMGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNODAgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnptMzIwIDMybDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyek00OCAzMzZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZ6bTE0NCA0OGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAyNi41IDIxLjUgNDggNDggNDh6bTEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OHptMTEyLTE2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnoiXX0saDBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtZG9sbGFyIixpY29uOls1MTIsNTEyLFsic2VhcmNoLWRvbGxhciJdLCJmNjg4IiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjEyIDk2Yy0xMSAwLTIwIDktMjAgMjBsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMTY4IDI1NmMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHoiXX0sVEF0PWgwZSxfQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtcHN0ZXItZmlyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjc5NCIsIk0xNjQuMyA2NEwxMzguNyAxOTIgNTYgMTkyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuMWMwLTIuNiAuNC01LjEgMS4yLTcuNkw1OC41IDgwLjRDNjEuOCA3MC42IDcxIDY0IDgxLjMgNjRsODMgMHptMjMuNCAxMjhsMjUuNi0xMjggODIuNyAwIDAgMTI4LTEwOC4zIDB6TTM0NCA2NGw4Mi43IDAgMTYgODBjLTE0LjcgLjItMjkuMyA1LjUtNDAuOSAxNS45LTExLjUgMTAuMy0yMi41IDIxLTMyLjggMzIuMWwtMjQuOSAwIDAtMTI4ek05NiAyNDBsMjMzLjIgMGMtNi40IDguOC0xMi4zIDE3LjYtMTcuNyAyNi4zLTIxLjQgMzQuNy0zOS41IDc2LjEtMzkuNSAxMTUuOCAwIDE3LjEgMi4xIDMzLjggNiA0OS45bC0xMjAuNCAwIDEuOSAxMC4zYzMuMiAxNy40LTguNCAzNC0yNS44IDM3LjJzLTM0LTguNC0zNy4yLTI1LjhDNzEgMzEzLjMgNTggMjQyLjEgNTcuNyAyNDBMOTYgMjQwem01MTItNzJjMCAxMS03LjQgMjAuMy0xNy41IDIzLjEtLjktLjgtMS43LTEuNi0yLjYtMi40LTIxLjgtMjAtNTQuMy0yMS44LTc4LTUuNS00LjItNC4zLTguNS04LjUtMTIuOS0xMi42bC0yMS4zLTEwNi42IDgzIDBjMTAuMyAwIDE5LjUgNi42IDIyLjggMTYuNGwyNS4zIDc1LjljLjggMi40IDEuMiA1IDEuMiA3LjZsMCA0LjF6TTUwNS43IDI0MC4zTDUxOCAyMjYuNWM1LjQtNi4xIDEzLjMtOC44IDIwLjktOC45IDcuMiAwIDE0LjMgMi42IDE5LjkgNy44IDE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNiAxNS4xIDI3LjIgMjYuMiA1OC4xIDI2LjIgODguMSAwIDg4LjctNzEuMyAxNTkuOC0xNjAgMTU5LjgtODkuNiAwLTE2MC03MS4zLTE2MC0xNTkuOCAwLTM3LjMgMTYtNzMuNCAzNi44LTEwNC41IDIwLjktMzEuMyA0Ny41LTU5IDcwLjktODAuMiA1LjctNS4yIDEzLjEtNy43IDIwLjMtNy41czEzLjQgMy4yIDE4LjggNy41YzE0LjQgMTEuNCAzOC45IDQwLjcgMzguOSA0MC43ek01NDQgNDMyLjJjMC0zNi41LTM3LTczLTU0LjgtODguNC01LjQtNC43LTEzLjEtNC43LTE4LjUgMC0xNy43IDE1LjQtNTQuOCA1MS45LTU0LjggODguNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxBQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXBsb2FkIixpY29uOls0NDgsNTEyLFtdLCJmMDkzIiwiTTI1NiAxMDkuM0wyNTYgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjEwLjctNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyNTYgMTA5LjN6TTIyNCA0MDBjNDQuMiAwIDgwLTM1LjggODAtODBsODAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMmMwLTM1LjMgMjguNy02NCA2NC02NGw4MCAwYzAgNDQuMiAzNS44IDgwIDgwIDgwem0xNDQgMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxoVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNsYXNoIixpY29uOls1NzYsNTEyLFs2MjcxNCwidXNlci1hbHQtc2xhc2giLCJ1c2VyLWxhcmdlLXNsYXNoIl0sImY1MDYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMTEuNSAyNDUuN2M1NS0xMC45IDk2LjUtNTkuNSA5Ni41LTExNy43IDAtNjYuMy01My43LTEyMC0xMjAtMTIwLTU4LjIgMC0xMDYuOCA0MS41LTExNy43IDk2LjVMNDEtMjQuOXpNMjM1LjYgMzA1LjRDMTQ3LjkgMzE2LjYgODAgMzkxLjUgODAgNDgyLjMgODAgNDk4LjcgOTMuMyA1MTIgMTA5LjcgNTEybDMzMi41IDAtMjA2LjYtMjA2LjZ6Il19LCRBdD1oVSxEQXQ9aFUsRUF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWxlZnQiLGljb246WzUxMiw1MTIsWzg1OTJdLCJmMDYwIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI4OCA0ODAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNzAuNyAwIDEwNS40LTEwNS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYweiJdfSxOQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlhbC12aXJ1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NyIsIk02NCAzMkM2NCAxNC4zIDc4LjMgMCA5NiAwTDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTUxLjdjLTE4LjUgMC0zNyA3LTUxLjEgMjEuMS0yMS42IDIxLjYtMjYuNiA1My42LTE1IDc5LjktMjYuOSAxMC40LTQ1LjkgMzYuNi00NS45IDY3LjFzMTkgNTYuNyA0NS45IDY3LjFjLTcuMyAxNi41LTggMzUuMi0yLjMgNTIuMi0xMy40IDUuNy0yOC4yIDguOC00My42IDguOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw5NiA2NEM3OC4zIDY0IDY0IDQ5LjcgNjQgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHpNMjgwIDQwOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyOC44IDAgNDMuMi0zNC44IDIyLjktNTUuMi05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMjAuNCAyMC40IDU1LjIgNS45IDU1LjItMjIuOSAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMjguOCAzNC44IDQzLjIgNTUuMiAyMi45IDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMjAuNCAyMC40LTUuOSA1NS4yIDIyLjkgNTUuMiAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjguOCAwLTQzLjIgMzQuOC0yMi45IDU1LjIgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMjAuNC0yMC40LTU1LjItNS45LTU1LjIgMjIuOSAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTI4LjgtMzQuOC00My4yLTU1LjItMjIuOS05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzIwLjQtMjAuNCA1LjktNTUuMi0yMi45LTU1LjJ6bTEwNC0zMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFBBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjay1kb3VibGUiLGljb246WzM4NCw1MTIsW10sImY1NjAiLCJNMjQ5LjkgNjYuOGMxMC40LTE0LjMgNy4yLTM0LjMtNy4xLTQ0LjdzLTM0LjMtNy4yLTQ0LjcgNy4xbC0xMDYgMTQ1LjctMzcuNS0zNy41Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM2LjYgNi42IDE1LjggMTAgMjUuMSA5LjNzMTcuOS01LjUgMjMuNC0xMy4xbDEyOC0xNzZ6bTEyOCAxMzZjMTAuNC0xNC4zIDcuMi0zNC4zLTcuMS00NC43cy0zNC4zLTcuMi00NC43IDcuMWwtMTcwIDIzMy43LTY5LjUtNjkuNWMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjNi42IDYuNiAxNS44IDEwIDI1LjEgOS4zczE3LjktNS41IDIzLjQtMTMuMWwxOTItMjY0eiJdfSxJQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGF3IixpY29uOls1MTIsNTEyLFtdLCJmMWIwIiwiTTIzNC41IDkyLjljMTQuMyA0Mi45LS4zIDg2LjItMzIuNiA5Ni44cy03MC4xLTE1LjYtODQuNC01OC41IC4zLTg2LjIgMzIuNi05Ni44IDcwLjEgMTUuNiA4NC40IDU4LjV6TTEwMC40IDE5OC42YzE4LjkgMzIuNCAxNC4zIDcwLjEtMTAuMiA4NC4xcy01OS43LS45LTc4LjUtMzMuMy0xNC4zLTcwLjEgMTAuMi04NC4xIDU5LjcgLjkgNzguNSAzMy4zek02OS4yIDQwMS4yQzEyMS42IDI1OS45IDIxNC43IDIyNCAyNTYgMjI0czEzNC40IDM1LjkgMTg2LjggMTc3LjJjMy42IDkuNyA1LjIgMjAuMSA1LjIgMzAuNWwwIDEuNmMwIDI1LjgtMjAuOSA0Ni43LTQ2LjcgNDYuNy0xMS41IDAtMjIuOS0xLjQtMzQtNC4ybC04OC0yMmMtMTUuMy0zLjgtMzEuMy0zLjgtNDYuNiAwbC04OCAyMmMtMTEuMSAyLjgtMjIuNSA0LjItMzQgNC4yLTI1LjggMC00Ni43LTIwLjktNDYuNy00Ni43bDAtMS42YzAtMTAuNCAxLjYtMjAuOCA1LjItMzAuNXpNNDIxLjggMjgyLjdjLTI0LjUtMTQtMjkuMS01MS43LTEwLjItODQuMXM1NC00Ny4zIDc4LjUtMzMuMyAyOS4xIDUxLjcgMTAuMiA4NC4xLTU0IDQ3LjMtNzguNSAzMy4zek0zMTAuMSAxODkuN2MtMzIuMy0xMC42LTQ2LjktNTMuOS0zMi42LTk2LjhzNTIuMS02OS4xIDg0LjQtNTguNSA0Ni45IDUzLjkgMzIuNiA5Ni44LTUyLjEgNjkuMS04NC40IDU4LjV6Il19LG1VPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbG1ldC1zYWZldHkiLGljb246WzU3Niw1MTIsWyJoYXJkLWhhdCIsImhhdC1oYXJkIl0sImY4MDciLCJNMzUyIDI2NGwwLTIwMGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xODUuOUM5MCAxMDkuOCAzMiAxOTEuOCAzMiAyODhsMCA2NCA1MTIgMCAwLTY0Yy0xLTk1LjItNTguNC0xNzcuNy0xNDQtMjA5LjhMNDAwIDI2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpNNDAgNDAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDQ5NiAwYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwTDQwIDQwMHoiXX0sRkF0PW1VLE9BdD1tVSxCQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZSIsaWNvbjpbMzIwLDUxMixbMTAxXSwiNDUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0xMjggMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTI4IDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxtMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC1zcXVpbnQiLGljb246WzUxMiw1MTIsWyJsYXVnaC1zcXVpbnQiXSwiZjU5YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTA3LjcgMzMyLjFDMTAyIDMxOCAxMTMuNCAzMDQgMTI4LjYgMzA0bDI1NC45IDBjMTUuMiAwIDI2LjYgMTQgMjAuOSAyOC4xLTIzLjggNTguNi04MS4yIDk5LjktMTQ4LjMgOTkuOXMtMTI0LjYtNDEuMy0xNDguMy05OS45em0xNS0xODguOGM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMTkyIDM4Ni4yIDIxOS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxSQXQ9bTBlLGcwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3duLWxlZnQtYW5kLXVwLXJpZ2h0LXRvLWNlbnRlciIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFsdCJdLCJmNDIyIiwiTTQzOS41IDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDUwLjIgMjQwIDQ0MC41IDI0MGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnMxOS4zLTEuNyAyNi4yIDUuMmwzOSAzOSA4Ny04N3pNNzIuNSAyNzJsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0zMi0zMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODctMzktMzljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNjIuOCAyNzIgNzIuNSAyNzJ6Il19LEhBdD1nMGUscUF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdpZnRzIixpY29uOls1NzYsNTEyLFtdLCJmNzljIiwiTTIwMi0zMC42YzEyLjUgNC40IDE5IDE4LjEgMTQuNiAzMC42bC04LjIgMjMuMSAyNS40LTE4LjVjMTAuNy03LjggMjUuNy01LjQgMzMuNSA1LjNzNS40IDI1LjctNS4zIDMzLjVMMjMzLjggNjQgMjcyIDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMi4xYy01NC43IDEwLjQtOTYgNTguNC05NiAxMTZsMCAxLjljMCA4LjkgMSAxNy41IDIuOCAyNS45LTExLjkgMTcuOC0xOC44IDM5LjEtMTguOCA2Mi4xbDAgMTI4YzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMzguMiAwLTI4LjMtMjAuNkM0Ny4yIDM1LjYgNDQuOCAyMC42IDUyLjYgOS45Uzc1LjQtMy4yIDg2LjEgNC42bDI3LjQgMjAtOC4zLTI1QzEwMS0xMyAxMDcuOC0yNi42IDEyMC40LTMwLjhzMjYuMiAyLjYgMzAuNCAxNS4ybDkuOSAyOS44IDEwLjctMzAuMmM0LjQtMTIuNSAxOC4xLTE5IDMwLjYtMTQuNnpNNDg5LjkgMjA4Yy03LjUgMC0xNC41IDMuOC0xOC42IDEwLjFMNDQ2LjkgMjU2IDQ4OCAyNTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xLjljMC0xMi4yLTkuOS0yMi4xLTIyLjEtMjIuMXpNMzg1LjEgMjU2bC0yNC40LTM3LjljLTQuMS02LjMtMTEuMS0xMC4xLTE4LjYtMTAuMS0xMi4yIDAtMjIuMSA5LjktMjIuMSAyMi4xbDAgMS45YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQxLjEgMHpNMjgxLjkgMjY4LjVjLTYuMy0xMC43LTkuOS0yMy4yLTkuOS0zNi41bDAtMS45YzAtMzguNyAzMS40LTcwLjEgNzAuMS03MC4xIDIzLjggMCA0NiAxMi4xIDU4LjkgMzIuMWwxNSAyMy4yIDE1LTIzLjJjMTIuOS0yMCAzNS4xLTMyLjEgNTguOS0zMi4xIDM4LjcgMCA3MC4xIDMxLjQgNzAuMSA3MC4xbDAgMS45YzAgMTMuMy0zLjYgMjUuOC05LjkgMzYuNSAxNS43IDExLjcgMjUuOSAzMC40IDI1LjkgNTEuNWwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNzIgMCAwLTIwOC00OCAwIDAgMjA4LTcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTI4YzAtMjEuMSAxMC4yLTM5LjggMjUuOS01MS41eiJdfSxWQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVkIixpY29uOls1NzYsNTEyLFsxMjg3MTZdLCJmMjM2IiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0IDIyNCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NC00NDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptODAgMTYwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sVUF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJhbnNmZXIiLGljb246WzY0MCw1MTIsW10sImU1MjgiLCJNMzEgMTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxMDMtMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDY3LjcgMCAwIDAgMzM4LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE3OC4yLTUuMS01LjFjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMC0yNy4yIDI3LjItMjguMSA3MC42LTIuOCA5OC45bDY3LjcgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS00MDYuMSAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3OC4yIDUuMSA1LjFjMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDI3LjItMjcuMiAyOC4xLTcwLjYgMi44LTk4LjlsLTY3LjcgMCAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDMxIDEwNXpNNDE2IDI1NmE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bTg4LTY0LjVjNC40IC41IDgtMy4xIDgtNy41bDAtNDhjMC00LjQtMy42LTgtOC04bC00OCAwYy00LjQgMC04LjEgMy42LTcuNSA4IDMuNiAyOSAyNi42IDUxLjkgNTUuNSA1NS41em0tMzY4IDEyOWMtNC40LS41LTggMy4xLTggNy41bDAgNDhjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC4xLTMuNiA3LjUtOC0zLjYtMjktMjYuNi01MS45LTU1LjUtNTUuNXoiXX0seDBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1ydW5uaW5nIixpY29uOls0NDgsNTEyLFsxMjc5MzksInJ1bm5pbmciXSwiZjcwYyIsIk0yNTYuNS0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTIzLjYgMTc2Yy0zLjMgMC02LjIgMi03LjQgNUw5NC4yIDIzNS45Yy02LjYgMTYuNC0yNS4yIDI0LjQtNDEuNiAxNy44cy0yNC40LTI1LjItMTcuOC00MS42bDIxLjktNTQuOUM2Ny43IDEyOS45IDk0LjEgMTEyIDEyMy42IDExMmw5Ny4zIDBjMjguNSAwIDU0LjggMTUuMSA2OS4xIDM5LjdsMzIuOCA1Ni4zIDYxLjYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjEuNiAwYy0yMi44IDAtNDMuOC0xMi4xLTU1LjMtMzEuOGwtMTAtMTcuMS0yMC43IDcwLjQgNzUuNCAyMi42YzI3LjcgOC4zIDQxLjggMzkgMzAuMSA2NS41TDI4NS43IDUwOWMtNy4yIDE2LjItMjYuMSAyMy40LTQyLjIgMTYuMnMtMjMuNC0yNi4xLTE2LjItNDIuMmw0OS4yLTExMC44LTk1LjktMjguOGMtMzIuNy05LjgtNTItNDMuNy00My43LTc2LjhsMjIuNy05MC42LTM1LjkgMHptLTggMTgxYzEzLjMgMTQuOSAzMC43IDI2LjMgNTEuMiAzMi40bDQuNyAxLjQtNi45IDE5LjNjLTUuOCAxNi4zLTE2IDMwLjgtMjkuMyA0MS44TDUyLjkgNTE5LjhjLTEzLjYgMTEuMi0zMy44IDkuMy00NS00LjNzLTkuMy0zMy44IDQuMy00NWw4Mi40LTY3LjljNC41LTMuNyA3LjgtOC41IDkuOC0xMy45TDExNS42IDM1N3oiXX0sakF0PXgwZSxiMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tZG93biIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLWRvd24iXSwiZjEzYSIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTEzNSAyNDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4NyA4NyA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMjczIDM0NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTM1IDI0MXoiXX0sV0F0PWIwZSxHQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1udXJzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjgyZiIsIk05NiA0NC45YzAtMTIuNyA3LjUtMjQuMiAxOS4yLTI5LjNsOTYtNDJjOC4yLTMuNiAxNy41LTMuNiAyNS43IDBsOTYgNDJDMzQ0LjUgMjAuNyAzNTIgMzIuMiAzNTIgNDQuOWwwIDk5LjFjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhTOTYgMjE0LjcgOTYgMTQ0bDAtOTkuMXpNMzA0IDEyOGwtMTExLjYgMC0uNCAwLTQ4IDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwbDAtMTZ6TTIwOCAxNmwwIDE2LTE2IDBjLTQuNCAwLTggMy42LTggOGwwIDE2YzAgNC40IDMuNiA4IDggOGwxNiAwIDAgMTZjMCA0LjQgMy42IDggOCA4bDE2IDBjNC40IDAgOC0zLjYgOC04bDAtMTYgMTYgMGM0LjQgMCA4LTMuNiA4LThsMC0xNmMwLTQuNC0zLjYtOC04LThsLTE2IDAgMC0xNmMwLTQuNC0zLjYtOC04LThMMjE2IDhjLTQuNCAwLTggMy42LTggOHpNMTQyLjYgMzIzYy02LjUtNC45LTE1LjItNi4yLTIyLjYtMi44LTYxLjQgMjguMi0xMDQuMSA5MC4yLTEwNC4xIDE2Mi4xIDAgMTYuNCAxMy4zIDI5LjcgMjkuNyAyOS43bDM1Ni42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC03Mi00Mi43LTEzNC0xMDQuMS0xNjIuMS03LjQtMy40LTE2LjEtMi4xLTIyLjYgMi44bC02NyA1MC4yYy04LjUgNi40LTIwLjMgNi40LTI4LjggMGwtNjctNTAuMnoiXX0sdjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Uta2lzcy13aW5rLWhlYXJ0IixpY29uOls2NDAsNTEyLFsxMjg1MzYsImtpc3Mtd2luay1oZWFydCJdLCJmNTk4IiwiTTU0My43IDI2OC4zYy4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy03LjYtMTcuMS0xNi4xLTM4LjgtMjEuOC02MS43LTcuNy0zMC41LTE0LjEtNzYuMiA4LjItMTE0LjdsMi43LTQuNmMyOS41LTUxIDk0LjctNjguNSAxNDUuNy0zOSAyIDEuMiA0IDIuNCA1LjkgMy43ek0yNDAgMzA0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTIwOCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xNTIgMjBjLTExIDAtMjAgOS0yMCAyMHMtOSAyMC0yMCAyMC0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDB6TTU0Mi44IDM1MGMtMi4yLTE4LjMtMTIuOS0zNC42LTI4LjktNDMuOC0yOC4xLTE2LjItNjMuOS02LjYtODAuMSAyMS41bC0yLjcgNC42Yy0yNC41IDQyLjUgNy45IDExNy45IDI0LjQgMTUwLjggNS4xIDEwLjEgMTUuNSAxNi4xIDI2LjggMTUuNSAzNi43LTIuMiAxMTguMi0xMS43IDE0Mi44LTU0LjJsMi43LTQuNmMxNi4yLTI4LjEgNi42LTYzLjktMjEuNS04MC4xLTE2LTkuMi0zNS40LTEwLjQtNTIuNC0zLjFsLTkuOCA0LjItMS4zLTEwLjZ6Il19LFlBdD12MGUsWkF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGwiLGljb246WzUxMiw1MTIsW10sImY1NzUiLCJNMjk2IDY0YzYuOSAwIDEzLjUgMi43IDE4LjMgNy42TDQ0MC40IDE5Ny43YzQuOSA0LjkgNy42IDExLjUgNy42IDE4LjNzLTIuNyAxMy41LTcuNiAxOC4zTDM4Ni43IDI4OCA2NS4zIDI4OGMxLjMtMy45IDMuNC03LjQgNi4zLTEwLjNsOTYuNC05Ni40IDMzLjQgMzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIxMy4zIDEzNiAyNzcuNyA3MS42YzQuOS00LjkgMTEuNS03LjYgMTguMy03LjZ6TTEyMi43IDEzNkwyNi4zIDIzMi40QzkuNSAyNDkuMyAwIDI3Mi4xIDAgMjk2czkuNSA0Ni43IDI2LjMgNjMuNkwxNTIuNCA0ODUuN0MxNjkuMyA1MDIuNSAxOTIuMSA1MTIgMjE2IDUxMnM0Ni43LTkuNSA2My42LTI2LjNMNDg1LjcgMjc5LjZDNTAyLjUgMjYyLjcgNTEyIDIzOS45IDUxMiAyMTZzLTkuNS00Ni43LTI2LjMtNjMuNkwzNTkuNiAyNi4zQzM0Mi43IDkuNSAzMTkuOSAwIDI5NiAwcy00Ni43IDkuNS02My42IDI2LjNMMTY4IDkwLjcgMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTIyLjcgMTM2eiJdfSx5MGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC0xLXdhdmUiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLXdhdmUtYWx0Il0sImY1M2IiLCJNMCAxMDkuNUwwIDQxOS42YzAgMTkuNCAxMS44IDM3LjMgMzAuMyA0My4zIDk0IDMwIDE1OC44IDguNCAyMjMuMy0xMy4xIDYyLjQtMjAuOCAxMjQuNC00MS41IDIxMi4xLTE1LjMgMjIuMiA2LjYgNDYuMi04LjggNDYuMi0zMmwwLTMxMC4xYzAtMTkuNC0xMS44LTM3LjMtMzAuMy00My4zLTk0LTMwLTE1OC44LTguNC0yMjMuMyAxMy4xLTYyLjQgMjAuOC0xMjQuNCA0MS41LTIxMi4xIDE1LjMtMjIuMi02LjYtNDYuMyA4LjgtNDYuMyAzMnpNMjU2IDM2OGMtNTMgMC05Ni01MC4xLTk2LTExMnM0My0xMTIgOTYtMTEyIDk2IDUwLjEgOTYgMTEyLTQzIDExMi05NiAxMTJ6TTEyNy4xIDQwNS41Yy43IDQuNC0yLjggOC4xLTcuMiA4LjEtMTUuNyAwLTMyLjEtMS44LTUwLTYuMS0zLjUtLjgtNi00LTYtNy43TDY0IDM2MGMwLTQuNCAzLjYtOC4xIDgtNy41IDI4LjEgMy41IDUwLjYgMjUuMiA1NS4yIDUzek00NDggMzU0LjZjMCA1LTQuNiA4LjgtOS41IDgtMTUuNC0yLjUtMzAuMi0zLjktNDQuNC00LjMtNC45LS4xLTguNy00LjUtNy4yLTkuMiA3LjMtMjMuNyAyOC00MS40IDUzLjItNDQuNiA0LjQtLjUgOCAzLjEgOCA3LjVsMCA0Mi42em0tOC0xOTUuMWMtMjguMS0zLjUtNTAuNi0yNS4yLTU1LjItNTMtLjctNC40IDIuOC04LjEgNy4yLTguMSAxNS43IDAgMzIuMSAxLjggNTAgNi4xIDMuNSAuOCA2IDQgNiA3LjdsMCAzOS45YzAgNC40LTMuNiA4LjEtOCA3LjV6bS0zMjIuMS01LjhjNC45IC4xIDguNyA0LjUgNy4yIDkuMi03LjMgMjMuNy0yOCA0MS40LTUzLjIgNDQuNi00LjQgLjUtOC0zLjEtOC03LjVsMC00Mi42YzAtNSA0LjYtOC44IDkuNS04IDE1LjQgMi41IDMwLjIgMy45IDQ0LjQgNC4zek0yNDAgMTg4Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSxYQXQ9eTBlLFFBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyayIsaWNvbjpbNTEyLDUxMixbMTI3OTYzXSwiZjY2ZiIsIk0yMzguNyA1LjFjMTAuNS02LjggMjQuMS02LjggMzQuNiAwbDIyNCAxNDRjMTEuOSA3LjcgMTcuNCAyMi4zIDEzLjQgMzUuOXMtMTYuNSAyMy0zMC43IDIzbC0zMiAwIDAgMjA4IDUxLjIgMzguNGM4LjEgNiAxMi44IDE1LjUgMTIuOCAyNS42IDAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC0xMC4xIDQuNy0xOS42IDEyLjgtMjUuNmw1MS4yLTM4LjQgMCAwIDAtMjA4LTMyIDBjLTE0LjIgMC0yNi43LTkuNC0zMC43LTIzczEuNS0yOC4zIDEzLjQtMzUuOWwyMjQtMTQ0ek0zMzYgMjA4bDAgMjA4IDY0IDAgMC0yMDgtNjQgMHpNMjI0IDQxNmw2NCAwIDAtMjA4LTY0IDAgMCAyMDh6TTExMiAyMDhsMCAyMDggNjQgMCAwLTIwOC02NCAweiJdfSxLQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibXVzaWMiLGljb246WzUxMiw1MTIsWzEyNzkyNV0sImYwMDEiLCJNNDY4IDdjNy42IDYuMSAxMiAxNS4zIDEyIDI1bDAgMzA0YzAgNDQuMi00MyA4MC05NiA4MHMtOTYtMzUuOC05Ni04MCA0My04MCA5Ni04MGMxMS4yIDAgMjIgMS42IDMyIDQuNmwwLTExNi43LTIyNCA0OS44IDAgMjA2LjNjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwIDQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42TDEyOCA5NmMwLTE1IDEwLjQtMjggMjUuMS0zMS4ybDI4OC02NGM5LjUtMi4xIDE5LjQgLjIgMjcgNi4zeiJdfSxKQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1tZWRpY2FsIixpY29uOls0NDgsNTEyLFtdLCJmN2U2IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xOTIgMTIwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSx3MGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2h1ZmZsZSIsaWNvbjpbNTEyLDUxMixbMTI4MjU2LCJyYW5kb20iXSwiZjA3NCIsIk00MDMuOCAzNC40YzEyLTUgMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAyMDQuOSAzODQgMTkybDAtMzItMzIgMGMtMTAuMSAwLTE5LjYgNC43LTI1LjYgMTIuOGwtMzIuNCA0My4yLTQwLTUzLjMgMjEuMi0yOC4zQzI5My4zIDExMC4yIDMyMS44IDk2IDM1MiA5NmwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnpNMTU0IDI5Nmw0MCA1My4zLTIxLjIgMjguM0MxNTQuNyA0MDEuOCAxMjYuMiA0MTYgOTYgNDE2bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDBjMTAuMSAwIDE5LjYtNC43IDI1LjYtMTIuOEwxNTQgMjk2ek00MzguNiA0NzAuNmMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDQ2MC45IDM4NCA0NDhsMC0zMi0zMiAwYy0zMC4yIDAtNTguNy0xNC4yLTc2LjgtMzguNEwxMjEuNiAxNzIuOGMtNi04LjEtMTUuNS0xMi44LTI1LjYtMTIuOGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwYzMwLjIgMCA1OC43IDE0LjIgNzYuOCAzOC40TDMyNi40IDMzOS4yYzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjR6Il19LGUkdD13MGUsdCR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVuZGVybGluZSIsaWNvbjpbMzg0LDUxMixbXSwiZjBjZCIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyUzExMy43IDY0IDk2IDY0bDAgMTYwYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzI3MC4zIDAgMjg4IDBsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE2MGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMzMiAzMTIuNCAzMiAyMjRMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNMCA0ODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sYSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXVzZXIiLGljb246WzY0MCw1MTIsW10sImU0ZGEiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguNyAwIDI3LjcgOC44IDUzLjQgMjMuOCA3NC40LTUxLjUgMjEtODcuOCA3MS42LTg3LjggMTMwLjcgMCAxIDAgMS45IDAgMi45bC0xNzYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgNjR6TTIwOCA0MDBsMCA2NCA1My40IDBjNy4yLTI5LjQgMjEuMy01Ni4xIDQwLjQtNzguMy02LjEtMTkuNS0yNC4zLTMzLjctNDUuOC0zMy43LTI2LjUgMC00OCAyMS41LTQ4IDQ4ek0zMzkgMjI0LjNjLTEtLjItMi0uMy0zLS4zbC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYuNyAwYzIuMS0yMi44IDguNC00NC4zIDE4LjMtNjMuN3pNMTc2IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNzYgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTI0MCA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6TTM1MiA1MTJjMC01MyA0My05NiA5Ni05Nmw5NiAwYzUzIDAgOTYgNDMgOTYgOTYgMCAxNy43LTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sciR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYm90IixpY29uOls2NDAsNTEyLFsxMjkzMDJdLCJmNTQ0IiwiTTM1MiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzI4OC0xNy43IDI4OCAwbDAgNjQtOTYgMGMtNTMgMC05NiA0My05NiA5NmwwIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yMjRjMC01My00My05Ni05Ni05NmwtOTYgMCAwLTY0ek0xNjAgMzY4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xMjAgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTIwIDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTIyNCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0xNDQgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNjQgMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjA2LjMgMCAyMjRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZ6bTU0NC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEw3PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdXMiLGljb246WzQ0OCw1MTIsWzEwMTMzLDYxNTQzLCJhZGQiXSwiMmIiLCJNMjU2IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYwLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTYweiJdfSxpJHQ9TDcscVU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29weSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjNSIsIk0xOTIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMDAuNmMwLTE3LjQtNy4xLTM0LjEtMTkuNy00Ni4yTDM3MC42IDE3LjhDMzU4LjcgNi40IDM0Mi44IDAgMzI2LjMgMEwxOTIgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2LTY0IDAgMCAxNi0xOTIgMCAwLTI1NiAxNiAwIDAtNjQtMTYgMHoiXX0sbyR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWtpbmciLGljb246WzQ0OCw1MTIsWzk4MThdLCJmNDNmIiwiTTIyNC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCA2NCAxNTMuOCAwYzIxLjEgMCAzOC4yIDE3LjEgMzguMiAzOC4yIDAgNi40LTEuNiAxMi43LTQuNyAxOC4zTDM1MiAzODQgNDA4LjIgNDU0LjNjNSA2LjMgNy44IDE0LjEgNy44IDIyLjIgMCAxOS42LTE1LjkgMzUuNS0zNS41IDM1LjVMNjcuNSA1MTJjLTE5LjYgMC0zNS41LTE1LjktMzUuNS0zNS41IDAtOC4xIDIuNy0xNS45IDcuOC0yMi4yTDk2IDM4NCA0LjcgMjE2LjZDMS42IDIxMC45IDAgMjA0LjYgMCAxOTguMiAwIDE3Ny4xIDE3LjEgMTYwIDM4LjIgMTYwbDE1My44IDAgMC02NC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0scyR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsb29kLXdhdGVyIixpY29uOls2NDAsNTEyLFtdLCJlNTBlIiwiTTQ5NiAyMDhsNC41IDBjMTUuMiAwIDI3LjUtMTIuMyAyNy41LTI3LjUgMC03LjktMy40LTE1LjUtOS40LTIwLjdMMzQ4IDEwLjVDMzQwLjMgMy43IDMzMC4zIDAgMzIwIDBzLTIwLjMgMy43LTI4IDEwLjVMMTIxLjQgMTU5LjhjLTYgNS4yLTkuNCAxMi44LTkuNCAyMC43IDAgMTUuMiAxMi4zIDI3LjUgMjcuNSAyNy41bDQuNSAwIDAgOTQuNGMyMC4zLTkuNCA0Mi4xLTE0LjIgNjQtMTQuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgMjIuMSAxNi42IDI5LjEgMTYuNiA1MS4yIDAgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgMTYuOS0uMSAzMy44IDIuNiA1MCA4bDAtODh6bS0yMjQtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6TTQ3NC42IDQxMi4xYzE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDE4LjMgMTcuNiA0MjYuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDk2YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNTE0LjMgMTcuNiA1MjIuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LG4kdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaXRjb2luLXNpZ24iLGljb246WzMyMCw1MTIsW10sImUwYjQiLCJNNjQgMjRDNjQgMTAuNyA3NC43IDAgODggMHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MS4xYzU0LjMgNy44IDk2IDU0LjQgOTYgMTEwLjkgMCAyNC4yLTcuNyA0Ni42LTIwLjcgNjQuOSAzMS43IDE5LjggNTIuNyA1NSA1Mi43IDk1LjEgMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTE2IDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwLTMyIDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwLTIyLjMgMEMxOC43IDQ0OCAwIDQyOS4zIDAgNDA2LjNMMCAxMDEuNkMwIDgwLjggMTYuOCA2NCAzNy42IDY0TDY0IDY0IDY0IDI0em0wIDIwMGwxMTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtMTEyIDAgMCA5NnptMTEyIDY0bC0xMTIgMCAwIDk2IDE0NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0zMiAweiJdfSxsJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94IixpY29uOls0NDgsNTEyLFsxMjgyMzBdLCJmNDY2IiwiTTM2OS40IDEyOGwtMzQuMy00OC0yMjIuMSAwLTM0LjMgNDggMjkwLjcgMHpNMCAxNDguNWMwLTEzLjMgNC4yLTI2LjMgMTEuOS0zNy4yTDYwLjkgNDIuOEM3Mi45IDI2IDkyLjMgMTYgMTEyLjkgMTZsMjIyLjEgMGMyMC43IDAgNDAuMSAxMCA1Mi4xIDI2LjhsNDguOSA2OC41YzcuOCAxMC45IDExLjkgMjMuOSAxMS45IDM3LjJMNDQ4IDQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTQ4LjV6Il19LE0wZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGx1cyIsaWNvbjpbNDQ4LDUxMixbNjE4NDYsInBsdXMtc3F1YXJlIl0sImYwZmUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjAwIDM0NGwwLTY0LTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNjQgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LGMkdD1NMGUsejBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1sZWZ0LXJpZ2h0IixpY29uOls1NzYsNTEyLFsiYXJyb3dzLWgiXSwiZjA3ZSIsIk00NzAuNiAzNzQuNmw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDQxLjQgNDEuNC0zNTcuNSAwIDQxLjQtNDEuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTYgNi05LjQgMTQuMS05LjQgMjIuNnMzLjQgMTYuNiA5LjQgMjIuNmw5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC00MS40LTQxLjQgMzU3LjUgMC00MS40IDQxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6Il19LGQkdD16MGUsZiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhbiIsaWNvbjpbNTEyLDUxMixbXSwiZjg2MyIsIk0xNjAgMTQ0YzAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDguOCAwIDE2IDcuMiAxNiAxNmwwIDE1Mi4yYzE1LTUuMyAzMS4yLTguMiA0OC04LjIgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA4LjgtNy4yIDE2LTE2IDE2bC0xNTIuMiAwYzUuMyAxNSA4LjIgMzEuMiA4LjIgNDggMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDQtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTUyLjJjLTE1IDUuMy0zMS4yIDguMi00OCA4LjItNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC04LjggNy4yLTE2IDE2LTE2bDE1Mi4yIDBjLTUuMy0xNS04LjItMzEuMi04LjItNDh6bTk2IDE0NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHUkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm93IixpY29uOls2NDAsNTEyLFtdLCJmNTIwIiwiTTQ1Ni41IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4bDAgMzYtMzU1LjIgMjY2LjRDLS44IDQwMS0zLjcgNDIxIDYuOSA0MzUuMnMzMC42IDE3IDQ0LjggNi40bDc2LjgtNTcuNiAxMzEuMyAwIDQ2LjYgMTEzLjEgMSAyLjJjNS43IDEwLjcgMTguOCAxNS41IDMwLjMgMTAuOHMxNy4zLTE3LjMgMTMuOS0yOWwtLjgtMi4zLTM5LjEtOTQuOSA0MC45IDBjMS4xIDAgMi4yIDAgMy4yIDBsNDYuNiAxMTMuMiAxIDIuMmM1LjcgMTAuNyAxOC44IDE1LjUgMzAuMyAxMC44czE3LjMtMTcuMyAxMy45LTI5bC0uOC0yLjMtNDItMTAyQzQ4NS4zIDM1NC4xIDU0NC41IDI4MCA1NDQuNSAxOTJsMC03MiA4MC41LTIwLjFjOC42LTIuMSAxMy44LTEwLjggMTEuNi0xOS40LTcuMS0yOC41LTMyLjctNDguNS02Mi4xLTQ4LjVsLTUwLjEgMEM1MDguMiAxMi41IDQ4My44IDAgNDU2LjUgMHptMCA2NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LHAkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTVhMCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxwNz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5rLXNsYXNoIixpY29uOls1NzYsNTEyLFsiY2hhaW4tYnJva2VuIiwiY2hhaW4tc2xhc2giLCJ1bmxpbmsiXSwiZjEyNyIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMjItMTIyYzQuMi0zLjQgOC4zLTcuMSAxMi4xLTEwLjlsNzEuMS03MS4xYzI5LjMtMjkuMyA0NS44LTY5LjEgNDUuOC0xMTAuNiAwLTg2LjQtNzAtMTU2LjUtMTU2LjUtMTU2LjUtMzcuMyAwLTczLjEgMTMuMy0xMDEuMyAzNy4yIDIwLjMgMTAuMSAzOC43IDIzLjUgNTQuNSAzOS41IDE0LjEtOC4zIDMwLjItMTIuNyA0Ni44LTEyLjcgNTEuMSAwIDkyLjUgNDEuNCA5Mi41IDkyLjUgMCAyNC41LTkuNyA0OC0yNy4xIDY1LjRsLTcxLjEgNzEuMWMtMy45IDMuOS04LjEgNy40LTEyLjYgMTAuNWwtNDcuNS00Ny41YzE2LjUtLjkgMjkuNy0xNC40IDMwLjItMzEuMSAwLTEuMyAwLTIuNiAwLTMuOSAwLTg2LjMtNjkuOS0xNTYuOS0xNTYuNS0xNTYuOS0xOS4yIDAtMzcuOSAzLjUtNTUuNSAxMC4yTDQxLTI0Ljl6TTIyNS45IDE2MGMuNiAwIDEuMSAwIDEuNyAwIDE1LjEgMCAyOS41IDMuNyA0Mi4xIDEwLjIgMS44IDEuMiAzLjYgMi4zIDUuNSAzLjEgMjYuOCAxNi4zIDQ0LjggNDUuOSA0NC44IDc5LjYgMCAuNCAwIC44IDAgMS4yTDIyNS45IDE2MHpNMzQ2LjIgNDE2TDE5MiAyNjEuOGMxLjIgODQuNiA2OS42IDE1Mi45IDE1NC4xIDE1NC4xek0xMzkuNyAyMDkuNWwtNDUuMy00NS4zLTQ4LjYgNDguNmMtMjkuMyAyOS4zLTQ1LjggNjkuMS00NS44IDExMC42IDAgODYuNCA3MCAxNTYuNSAxNTYuNSAxNTYuNSAzNy4yIDAgNzMuMS0xMy4zIDEwMS4zLTM3LjItMjAuMy0xMC4xLTM4LjgtMjMuNS01NC42LTM5LjUtMTQgOC4yLTMwLjEgMTIuNi00Ni43IDEyLjYtNTEuMSAwLTkyLjUtNDEuNC05Mi41LTkyLjUgMC0yNC41IDkuNy00OCAyNy4xLTY1LjRsNDguNi00OC42eiJdfSxoJHQ9cDcsbSR0PXA3LGckdD1wNyxoNz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yb3RhdGUtcmlnaHQiLGljb246WzUxMiw1MTIsWzg2MzUsImFycm93LXJpZ2h0LXJvdGF0ZSIsImFycm93LXJvdGF0ZS1mb3J3YXJkIiwicmVkbyJdLCJmMDFlIiwiTTQzNi43IDc0LjdMNDQ4IDg1LjQgNDQ4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ3LjkgMC03LjYtNy4yYy0uMi0uMi0uNC0uNC0uNi0uNi03NS03NS0xOTYuNS03NS0yNzEuNSAwcy03NSAxOTYuNSAwIDI3MS41IDE5Ni41IDc1IDI3MS41IDBjOC4yLTguMiAxNS41LTE2LjkgMjEuOS0yNi4xIDEwLjEtMTQuNSAzMC4xLTE4IDQ0LjYtNy45czE4IDMwLjEgNy45IDQ0LjZjLTguNSAxMi4yLTE4LjIgMjMuOC0yOS4xIDM0LjctMTAwIDEwMC0yNjIuMSAxMDAtMzYyIDBTLTI1IDE3NSA3NSA3NWM5OS45LTk5LjkgMjYxLjctMTAwIDM2MS43LS4zeiJdfSx4JHQ9aDcsYiR0PWg3LHYkdD1oNyxrMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLWNsaXAiLGljb246WzUxMiw1MTIsWyJwZW4tYWx0Il0sImYzMDUiLCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTI3NC4xIDEwMGwwIDAgMTM3LjkgMTM3LjktMjE1LjEgMjE1LjFjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTExLjFjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4ycy04LjUtMTUuMS02LjItMjMuNEwzNi40IDM1My44YzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4LjdMMjQwLjEgMTMzLjkgMjIzIDExNi45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw4OSAyMTdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMTU1LjEgODIuOWMyOC4xLTI4LjEgNzMuNy0yOC4xIDEwMS44IDBMMjc0LjEgMTAweiJdfSx5JHQ9azBlLHckdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb29yLWNsb3NlZCIsaWNvbjpbNDQ4LDUxMixbMTI4NjgyXSwiZjUyYSIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkwzMiA2NHpNMzIwIDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGdVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24td2lkZS1zaG9ydCIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LWFzYyIsInNvcnQtYW1vdW50LWRvd24iXSwiZjE2MCIsIk0yNDYuNiAzNzQuNmwtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTMyMCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2MCAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMjAgOTZ6Il19LE0kdD1nVSx6JHQ9Z1UsayR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LWRvd24iLGljb246WzMyMCw1MTIsW10sImYwZDciLCJNMTQwLjMgMzc2LjhjMTIuNiAxMC4yIDMxLjEgOS41IDQyLjgtMi4ybDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzAxLjQgMTkyIDI4OC41IDE5MmwtMjU2IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhTLjcgMjM3LjUgOS45IDI0Ni42bDEyOCAxMjggMi40IDIuMnoiXX0sUyR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImsiLGljb246WzMyMCw1MTIsWzEwN10sIjRiIiwiTTMxMSA4Ni4zYzEyLjMtMTIuNyAxMi0zMi45LS43LTQ1LjJzLTMyLjktMTItNDUuMiAuN0MxNDMuNCAxNjcuMiA3Ni40IDIzNi4zIDY0IDI0OUw2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTA3IDY0LjctNjYuNyAxMzMgMTkyYzEwLjEgMTQuNSAzMCAxOC4xIDQ0LjUgOC4xczE4LjEtMzAgOC4xLTQ0LjVMMTc0LjEgMjI3LjQgMzExIDg2LjN6Il19LFMwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjay10by1zbG90IixpY29uOls1NzYsNTEyLFsidm90ZS15ZWEiXSwiZjc3MiIsIk01NTIgMjg4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzMTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MTYgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw5NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyNTYgMHptLTM3LjEgODQuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjYtOS41IDkuMi05LjggMjQuNC0uNiAzMy45bDQ2LjQgNDhjNC45IDUuMSAxMS44IDcuOCAxOC45IDcuM3MxMy42LTQuMSAxNy44LTkuOEwzODQuMiAxNTAuMWM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0sQyR0PVMwZSxMJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlzaC1maW5zIixpY29uOls1NzYsNTEyLFtdLCJlNGYyIiwiTTI3NS4yIDM4LjRjLTEwLjYtOC0yNS04LjUtMzYuMy0xLjVTMjIyIDU3LjMgMjI0LjYgNzAuM2w5LjcgNDguNmMtMTkuNCA5LTM2LjkgMTkuOS01Mi40IDMxLjUtMTUuMyAxMS41LTI5IDIzLjktNDAuNyAzNi4zTDQ4LjEgMTMyLjRjLTEyLjUtNy4zLTI4LjQtNS4zLTM4LjcgNC45cy0xMi40IDI2LTUuMyAzOC42TDUwIDI1NiA0LjIgMzM2LjFjLTcuMiAxMi42LTUgMjguNCA1LjMgMzguNnMyNi4xIDEyLjIgMzguNyA0LjlsOTMuMS01NC4zYzExLjggMTIuMyAyNS40IDI0LjggNDAuNyAzNi4zIDE1LjUgMTEuNiAzMyAyMi41IDUyLjQgMzEuNWwtOS43IDQ4LjZjLTIuNiAxMyAzLjEgMjYuMyAxNC4zIDMzLjNzMjUuNiA2LjUgMzYuMy0xLjVsNzcuNi01OC4yYzU0LjktNCAxMDEuNS0yNyAxMzcuMi01My44IDM5LjItMjkuNCA2Ny4yLTY0LjcgODEuNi04OS41IDUuOC05LjkgNS44LTIyLjIgMC0zMi4xLTE0LjQtMjQuOC00Mi41LTYwLjEtODEuNi04OS41LTM1LjgtMjYuOC04Mi4zLTQ5LjgtMTM3LjItNTMuOEwyNzUuMiAzOC40ek0zODQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LFQkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wcmVzcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjA2NiIsIk0xNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgNDYuMyA5NiA2NGwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2ek0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAweiJdfSxDMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtYS16IixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS11cCJdLCJmMTVlIiwiTTQxMi42IDQ5LjdDNDA3LjIgMzguOCAzOTYuMSAzMiAzODQgMzJzLTIzLjIgNi44LTI4LjYgMTcuN2MtNTAuNyAxMDEuMy03Ny4zIDE1NC43LTgwIDE2MC03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsNy4yLTE0LjMgODguNCAwIDcuMiAxNC4zYzcuOSAxNS44IDI3LjEgMjIuMiA0Mi45IDE0LjNzMjIuMi0yNy4xIDE0LjMtNDIuOWMtMi43LTUuMy0yOS4zLTU4LjctODAtMTYwek0zODQgMTM1LjZsMjAuMiA0MC40LTQwLjQgMCAyMC4yLTQwLjR6TTI4OCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTAuNyAwLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMzA3LjEgNDgwIDMyMCA0ODBsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMCA3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDYwLjkgMjg4IDQ0OCAyODhsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgweiJdfSxfJHQ9QzBlLEEkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdyYWR1YXRlIixpY29uOls0NDgsNTEyLFtdLCJmNTAxIiwiTTI0MS4zLTEzYy0xMS40LTIuMy0yMy4xLTIuMy0zNC41IDBMMTkuMyAyNC41QzguMSAyNi43IDAgMzYuNiAwIDQ4IDAgNTguMyA2LjUgNjcuMyAxNiA3MC42TDE2IDE0NCAuMyAyMjIuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42bDM0LjkgMGM4IDAgMTQuNi02LjUgMTQuNi0xNC42IDAtMS0uMS0xLjktLjMtMi45TDQ4IDE0NCA0OCA3Ny4zIDk2IDg2LjkgOTYgMTQ0YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhsMC01Ny4xIDc2LjctMTUuM0M0MzkuOSA2OS4zIDQ0OCA1OS40IDQ0OCA0OHMtOC4xLTIxLjMtMTkuMy0yMy41TDI0MS4zLTEzek0yMjQgMjI0Yy00NC4yIDAtODAtMzUuOC04MC04MGwxNjAgMGMwIDQ0LjItMzUuOCA4MC04MCA4MHpNMTIwLjEgMzIwLjFDNTguNyAzNDguMyAxNiA0MTAuMyAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwxNTQuMyAwIDAtMTQ2LTU3LjQtNDNjLTYuNS00LjktMTUuMi02LjItMjIuNi0yLjh6TTI0OCA1MTJsMTU0LjMgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTcyLTQyLjctMTM0LTEwNC4xLTE2Mi4xLTcuNC0zLjQtMTYuMS0yLjEtMjIuNiAyLjhsLTU3LjQgNDMgMCAxNDZ6Il19LCQkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNvZGUiLGljb246WzM4NCw1MTIsW10sImYxYzkiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE1NC4yIDI5NS42YzguNi0xMC4xIDcuNS0yNS4yLTIuNi0zMy44cy0yNS4yLTcuNS0zMy44IDIuNmwtNDggNTZjLTcuNyA5LTcuNyAyMi4yIDAgMzEuMmw0OCA1NmM4LjYgMTAuMSAyMy44IDExLjIgMzMuOCAyLjZzMTEuMi0yMy44IDIuNi0zMy44bC0zNC42LTQwLjQgMzQuNi00MC40em0xMTItMzEuMmMtOC42LTEwLjEtMjMuOC0xMS4yLTMzLjgtMi42cy0xMS4yIDIzLjgtMi42IDMzLjhsMzQuNiA0MC40LTM0LjYgNDAuNGMtOC42IDEwLjEtNy41IDI1LjIgMi42IDMzLjhzMjUuMiA3LjUgMzMuOC0yLjZsNDgtNTZjNy43LTkgNy43LTIyLjIgMC0zMS4ybC00OC01NnoiXX0sRCR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvYXAiLGljb246WzUxMiw1MTIsWzEyOTUzMl0sImUwNmUiLCJNMjA4LTMyYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMzIwIDk2YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0zNTIgMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAxNjBsMTEyIDBjMCAyMy44IDcuNCA0NS45IDIwLjEgNjRMMTYwIDIyNGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmwxOTIgMGM1MyAwIDk2LTQzIDk2LTk2IDAtMzUuMS0xOC45LTY1LjktNDctODIuNiAxOS0xOS44IDMwLjctNDYuNiAzMS03Ni4xIDQ1LjQgNy42IDgwIDQ3LjEgODAgOTQuN2wwIDEyOGMwIDUzLTQzIDk2LTk2IDk2TDk2IDQ4MGMtNTMgMC05Ni00My05Ni05NkwwIDI1NmMwLTUzIDQzLTk2IDk2LTk2em02NCAxMTJsMTkyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4eiJdfSxFJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjeWNsZSIsaWNvbjpbNTEyLDUxMixbOTg0Miw5ODUwLDk4NTFdLCJmMWI4IiwiTTE1Mi4zIDYwQzE5OC41LTIwIDMxNC0yMCAzNjAuMiA2MGwzNy4zIDY0LjYgMjcuNy0xNmM4LjQtNC45IDE4LjktNC4yIDI2LjYgMS43czExLjEgMTUuOSA4LjYgMjUuM0w0MzYuOSAyMjNjLTMuNCAxMi44LTE2LjYgMjAuNC0yOS40IDE3bC04Ny40LTIzLjRjLTkuNC0yLjUtMTYuMy0xMC40LTE3LjYtMjBzMy40LTE5LjEgMTEuOC0yMy45bDI3LjctMTYtMzcuMy02NC42Yy0yMS42LTM3LjMtNzUuNC0zNy4zLTk3IDBsLTUuMyA5LjFjLTguOCAxNS4zLTI4LjQgMjAuNS00My43IDExLjdTMTM4LjIgODQuNSAxNDcgNjkuMWw1LjMtOS4xek00NDkuNyAyNzkuMWMxNS4zLTguOCAzNC45LTMuNiA0My43IDExLjdsNS4zIDkuMWM0Ni4yIDgwLTExLjUgMTgwLTEwMy45IDE4MGwtNzQuNiAwIDAgMzJjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDY0LTY0YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJzMTQuOCAxMi41IDE0LjggMjIuMmwwIDMyIDc0LjYgMGM0My4xIDAgNzAuMS00Ni43IDQ4LjUtODRsLTUuMy05LjFjLTguOC0xNS4zLTMuNi0zNC45IDExLjctNDMuN3pNNTEgMjM1LjRsLTI3LjctMTZjLTguNC00LjktMTMuMS0xNC4zLTExLjgtMjMuOXM4LjItMTcuNSAxNy42LTIwTDExNi41IDE1MmMxMi44LTMuNCAyNiA0LjIgMjkuNCAxN2wyMy40IDg3LjRjMi41IDkuNC0uOSAxOS4zLTguNiAyNS4zcy0xOC4yIDYuNi0yNi42IDEuN2wtMjcuNy0xNi0zNy4zIDY0LjZjLTIxLjYgMzcuMyA1LjQgODQgNDguNSA4NGwxMC42IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjYgMEMyNS4zIDQ4MC0zMi40IDM4MCAxMy44IDMwMEw1MSAyMzUuNHoiXX0sTDBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aW5rIixpY29uOls1MTIsNTEyLFsiZ3Jpbi13aW5rIl0sImY1OGMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0zMjggMTk2Yy0xMSAwLTIwIDktMjAgMjBzLTkgMjAtMjAgMjAtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sTiR0PUwwZSx4VT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YXRlci1sYWRkZXIiLGljb246WzY0MCw1MTIsWyJsYWRkZXItd2F0ZXIiLCJzd2ltbWluZy1wb29sIl0sImY1YzUiLCJNMzc0LjUgNDA1LjdjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjggMjUuNy00LjggMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yNC4yIDE4LjMtNTIuMyAzNS45LTgzLjQgMzUuOXMtNTkuMS0xNy43LTgzLjMtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNi0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zek01MTEuOCAzMmM0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjgtMTcuNSAwLTMxLjggMTQuMi0zMS44IDMxLjhsMCAyMTEuOGMtMjMuMS01LjEtNDQuOS00LjQtNjQtLjRsMC01MS4yLTE5MiAwIDAgNDguN2MtNS4zLS41LTEwLjctLjgtMTYtLjctMTYuMiAuMS0zMi40IDIuNy00OCA4bDAtMjE2LjJjMC01Mi45IDQyLjktOTUuOCA5NS43LTk1LjggNDguMyAwIDg5IDM2IDk1IDgzLjlsMSA4LjJjMi4yIDE3LjUtMTAuMiAzMy41LTI3LjggMzUuN3MtMzMuNS0xMC4yLTM1LjctMjcuOGwtMS04LjJjLTItMTUuOS0xNS41LTI3LjgtMzEuNS0yNy44LTE3LjUgMC0zMS43IDE0LjItMzEuNyAzMS44bDAgOTYuMiAxOTIgMCAwLTk2LjJDNDE2IDc0LjkgNDU4LjkgMzIgNTExLjggMzJ6Il19LFAkdD14VSxJJHQ9eFUsRiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvd2VyLWNlbGwiLGljb246WzU3Niw1MTIsW10sImU1ODUiLCJNNTkuNiA5LjhDNDcuMyA0LjggMzMuMyAxMC43IDI4LjQgMjMgMTUuMiA1NS41IDggOTAuOSA4IDEyOHM3LjIgNzIuNSAyMC40IDEwNWM1IDEyLjMgMTkgMTguMiAzMS4zIDEzLjJzMTguMi0xOSAxMy4yLTMxLjNDNjIgMTg4LjIgNTYgMTU4LjggNTYgMTI4czYtNjAuMiAxNi45LTg3YzUtMTIuMy0xLTI2LjMtMTMuMi0zMS4zem00NTYuOCAwYy0xMi4zIDUtMTguMiAxOS0xMy4yIDMxLjMgMTAuOSAyNi44IDE2LjkgNTYuMiAxNi45IDg3cy02IDYwLjItMTYuOSA4N2MtNSAxMi4zIDEgMjYuMyAxMy4yIDMxLjNzMjYuMy0xIDMxLjMtMTMuMmMxMy4xLTMyLjUgMjAuNC02Ny45IDIwLjQtMTA1cy03LjItNzIuNS0yMC40LTEwNWMtNS0xMi4zLTE5LTE4LjItMzEuMy0xMy4yek0zNDAuMSAxNjUuMmM3LjUtMTAuNSAxMS45LTIzLjMgMTEuOS0zNy4yIDAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0YzAgMTMuOSA0LjQgMjYuNyAxMS45IDM3LjJMOTguOSA0NjYuOGMtNy4zIDE2LjEtLjIgMzUuMSAxNS45IDQyLjRzMzUuMSAuMiA0Mi40LTE1LjlsMjAuNi00NS4yIDIyMC42IDAgMjAuNiA0NS4yYzcuMyAxNi4xIDI2LjMgMjMuMiA0Mi40IDE1LjlzMjMuMi0yNi4zIDE1LjktNDIuNEwzNDAuMSAxNjUuMnpNMzc2LjUgNDAwbC0xNzcgMCAyMS44LTQ4IDEzMy4zIDAgMjEuOCA0OHpNMjg4IDIwNS4zbDQ0LjggOTguNy04OS43IDAgNDQuOC05OC43ek0xNjMuMyA3My42YzUuMy0xMi4xLS4yLTI2LjMtMTIuNC0zMS42cy0yNi4zIC4yLTMxLjYgMTIuNEMxMDkuNSA3NyAxMDQgMTAxLjkgMTA0IDEyOHM1LjUgNTEgMTUuMyA3My42YzUuMyAxMi4xIDE5LjUgMTcuNyAzMS42IDEyLjRzMTcuNy0xOS41IDEyLjQtMzEuNkMxNTYgMTY1LjggMTUyIDE0Ny40IDE1MiAxMjhzNC0zNy44IDExLjMtNTQuNHpNNDU2LjcgNTQuNGMtNS4zLTEyLjEtMTkuNS0xNy43LTMxLjYtMTIuNHMtMTcuNyAxOS41LTEyLjQgMzEuNkM0MjAgOTAuMiA0MjQgMTA4LjYgNDI0IDEyOHMtNCAzNy44LTExLjMgNTQuNGMtNS4zIDEyLjEgLjIgMjYuMyAxMi40IDMxLjZzMjYuMy0uMiAzMS42LTEyLjRDNDY2LjUgMTc5IDQ3MiAxNTQuMSA0NzIgMTI4cy01LjUtNTEtMTUuMy03My42eiJdfSxPJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29sb24tc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTE0MCIsIk0yMTMuOCA4LjdjMTIuOSAzLjIgMjAuNyAxNi4yIDE3LjUgMjkuMWwtNC42IDE4LjVjMTUuNCAuOCAzMC40IDMuNCA0NC43IDcuNWw5LjQtMzcuNkMyODMuOSAxMy4zIDI5NyA1LjUgMzA5LjggOC43UzMzMC41IDI1IDMyNy4zIDM3LjhMMzE2IDgyLjhjMTMuNSA3LjggMjYgMTcuMSAzNy4yIDI3LjggMTIuOSAxMi4xIDEzLjQgMzIuNCAxLjMgNDUuMnMtMzIuNCAxMy40LTQ1LjIgMS4zYy0zLjEtMi45LTYuNC01LjgtOS44LTguNEwyMzkuMiAzOTBjMjYuOS00LjYgNTEuMS0xNy4xIDcwLjEtMzUuMSAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMmMtMzQuMyAzMi4zLTgwIDUyLjgtMTMwLjUgNTQuNGwtNy41IDI5LjljLTMuMiAxMi45LTE2LjIgMjAuNy0yOS4xIDE3LjVzLTIwLjctMTYuMi0xNy41LTI5LjFsNS42LTIyLjVjLTE1LTMuMi0yOS40LTgtNDIuOS0xNC40bC0xMi4xIDQ4LjVjLTMuMiAxMi45LTE2LjIgMjAuNy0yOS4xIDE3LjVTNjkuNSA0ODcgNzIuNyA0NzQuMmwxNi02My45QzQ0LjMgMzczLjYgMTYgMzE4LjEgMTYgMjU2IDE2IDE1OS4yIDg0LjggNzguNCAxNzYuMyA2MGw4LjQtMzMuOEMxODcuOSAxMy4zIDIwMSA1LjUgMjEzLjggOC43ek0xNTggMTMyLjljLTQ2LjEgMjEuOC03OCA2OC43LTc4IDEyMy4xIDAgMzAuNSAxMCA1OC42IDI2LjkgODEuM0wxNTggMTMyLjl6TTE0Ny40IDM3My40YzEzIDcuNiAyNy4zIDEzLjEgNDIuNSAxNi4xbDY1LjktMjYzLjZjLTEyLjYtMy44LTI1LjktNS45LTM5LjgtNS45LTEuOCAwLTMuNSAwLTUuMyAuMUwxNDcuNCAzNzMuNHoiXX0sQiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcC1maWxlIixpY29uOls1NzYsNTEyLFtdLCJlNTFkIiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDQxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDgtNjQgMCAwLTQ4LTI4OCAwIDAgMTkyIDExMiAwIDAgOTYtMTYzLjIgMEMzNC40IDM1MiAwIDMxNy42IDAgMjc1LjIgMCAyNjQuNiA4LjYgMjU2IDE5LjIgMjU2TDY0IDI1NiA2NCA2NHpNNTI5LjkgMjU3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNTQ0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjU2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDc2LjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xIDIwIDIwIDQ3LjkgNDcuOSA4My45IDgzLjl6TTQxNiAyNzJjMCA4LjggNy4yIDE2IDE2IDE2bDYwLjEgMC03Ni4xLTc2LjEgMCA2MC4xeiJdfSxUMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFoYWkiLGljb246WzU3Niw1MTIsWyJoYXlrYWwiXSwiZjY2NiIsIk0yODguNC04YzEzLjIgMCAyNSA4LjEgMjkuOCAyMC40bDMxLjkgODIgNzcuMi00Mi4zYzExLjYtNi4zIDI1LjgtNC45IDM1LjkgMy41czE0IDIyLjMgOS43IDM0LjhsLTI4LjIgODMuMyA4Ni4zIDE3LjJjMTIuOSAyLjYgMjMgMTIuOCAyNS4zIDI1LjhzLTMuNiAyNi4xLTE0LjkgMzIuOWwtNzUuMiA0NS43IDU1IDY4LjZjOC4zIDEwLjMgOS4zIDI0LjYgMi43IDM2cy0xOS41IDE3LjYtMzIuNiAxNS42bC04Ny0xMy4zLTIgODhjLS4zIDEzLjItOC42IDI0LjgtMjEgMjkuNHMtMjYuMyAxLTM1LTlsLTU4LTY2LjEtNTggNjYuMWMtOC43IDkuOS0yMi42IDEzLjUtMzUgOXMtMjAuOC0xNi4yLTIxLTI5LjRsLTItODgtODcgMTMuM2MtMTMgMi0yNi00LjItMzIuNi0xNS42cy01LjUtMjUuNyAyLjctMzZsNTUtNjguNi03NS4yLTQ1LjdjLTExLjMtNi44LTE3LjItMTkuOS0xNC45LTMyLjlzMTIuMy0yMy4yIDI1LjMtMjUuOGw4Ni4zLTE3LjItMjguMi04My4zYy00LjItMTIuNS0uNC0yNi4zIDkuNy0zNC44czI0LjQtOS45IDM1LjktMy41bDc3LjEgNDIuMyAzMS45LTgyQzI2My4zIC4xIDI3NS4yLTggMjg4LjQtOHptMCAxMjAuMkwyNzMgMTUxLjZjLTMuMyA4LjYtMTAuMiAxNS4zLTE4LjkgMTguNXMtMTguMiAyLjQtMjYuMy0ybC0zNy0yMC4zIDEzLjYgNDBjMyA4LjcgMiAxOC4zLTIuNiAyNi4zcy0xMi40IDEzLjYtMjEuNSAxNS40bC00MS40IDguMyAzNi4xIDIxLjljNy45IDQuOCAxMy4zIDEyLjcgMTQuOSAyMS44cy0uOCAxOC40LTYuNSAyNS42bC0yNi40IDMzIDQxLjgtNi40YzkuMS0xLjQgMTguNCAxLjIgMjUuNCA3LjFzMTEuMiAxNC42IDExLjQgMjMuOGwuOSA0Mi4yIDI3LjktMzEuOGM2LjEtNi45IDE0LjgtMTAuOSAyNC4xLTEwLjlzMTggNCAyNC4xIDEwLjlsMjcuOSAzMS44IC45LTQyLjJjLjItOS4yIDQuNC0xNy45IDExLjQtMjMuOHMxNi4zLTguNSAyNS40LTcuMWw0MS44IDYuNC0yNi40LTMzYy01LjgtNy4yLTguMi0xNi41LTYuNi0yNS42czctMTcgMTQuOS0yMS44bDM2LjEtMjEuOS00MS40LTguM2MtOS0xLjgtMTYuOS03LjQtMjEuNS0xNS40cy01LjUtMTcuNi0yLjYtMjYuM2wxMy42LTQwLTM3IDIwLjNjLTguMSA0LjQtMTcuNyA1LjItMjYuMyAycy0xNS41LTkuOS0xOC45LTE4LjVsLTE1LjMtMzkuNHoiXX0sUiR0PVQwZSxfMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC0xIixpY29uOls1MTIsNTEyLFsibW9uZXktYmlsbC1hbHQiXSwiZjNkMSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTkyIDgwYTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHpNNjQgMTg0bDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNS00LjQgLjUtOC0zLjEtOC03LjV6bTAgMTQ0YzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHpNNDQwIDE5MS41Yy0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OGMwIDQuNC0zLjYgOC4xLTggNy41ek00NDggMzI4bDAgNDhjMCA0LjQtMy42IDgtOCA4bC00OCAwYy00LjQgMC04LjEtMy42LTcuNS04IDMuNi0yOSAyNi42LTUxLjkgNTUuNS01NS41IDQuNC0uNSA4IDMuMSA4IDcuNXpNMjQwIDE4OGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA0OC40LTQgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsNDggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQgMCAwLTY4YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHoiXX0sSCR0PV8wZSxBMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtYm9sdCIsaWNvbjpbNTEyLDUxMixbMTI3Nzg1LCJ0aHVuZGVyc3Rvcm0iXSwiZjc2YyIsIk0wIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDM4LjYgMCAxMjQuMS0xMTFjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43TDM1NC4xIDMyMCA0MTYgMzIwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwIDEuMS01LjIgMS42LTEwLjUgMS42LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOC0xOC43LTM1LjctNTYuMS02MC05OS4yLTYwLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgNy4xIC43IDE0LjEgMS45IDIwLjgtMzguMyAxMi42LTY1LjkgNDguNy02NS45IDkxLjJ6TTE2MC42IDQwMGw2MS44IDAtMzEuMiAxMDQuMWMtMy42IDExLjkgNS4zIDIzLjkgMTcuOCAyMy45IDQuNiAwIDktMS43IDEyLjQtNC43TDM2Mi41IDM5Ni45YzMuNS0zLjEgNS41LTcuNiA1LjUtMTIuNCAwLTkuMi03LjQtMTYuNi0xNi42LTE2LjZsLTYxLjggMCAzMS4yLTEwNC4xYzMuNi0xMS45LTUuMy0yMy45LTE3LjgtMjMuOS00LjYgMC05IDEuNy0xMi40IDQuN0wxNDkuNSAzNzEuMWMtMy41IDMuMS01LjUgNy42LTUuNSAxMi40IDAgOS4yIDcuNCAxNi42IDE2LjYgMTYuNnoiXX0scSR0PUEwZSxWJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXRoZXJuZXQiLGljb246WzUxMiw1MTIsW10sImY3OTYiLCJNMCAyMjRMMCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDY0IDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCA2NCAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgNjQgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE2MCA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSwkMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaHJ5dm5pYS1zaWduIixpY29uOlszODQsNTEyLFs4MzcyLCJocnl2bmlhIl0sImY2ZjIiLCJNMzM2IDE0OS40QzMzNiA3NyAyNjguNSAyMy41IDE5OCA0MC4xTDkzLjIgNjQuOUM3NiA2OC45IDY1LjQgODYuMiA2OS40IDEwMy40czIxLjMgMjcuOSAzOC41IDIzLjhsMTA0LjgtMjQuN2MzMC4zLTcuMSA1OS4zIDE1LjggNTkuMyA0Ni45IDAgMTcuNi05LjYgMzMuOC0yNSA0Mi4zbC0uNyAuNC0yMjIuMyAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMi40IDBjNS41LTEzLjMgOC40LTI3LjggOC40LTQyLjZ6TTM2MCAyNzJMMjQgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzLjMgMGMtNi4xIDEzLjQtOS4zIDI4LjEtOS4zIDQzLjMgMCA2NC4xIDU2LjkgMTEzLjQgMTIwLjQgMTA0LjJsMTM3LjktMTkuOWMxNy41LTIuNSAyOS42LTE4LjcgMjcuMS0zNi4ycy0xOC44LTI5LjYtMzYuMi0yNy4xTDE1OS4yIDQwNC4yYy0yNC45IDMuNi00Ny4yLTE1LjctNDcuMi00MC45IDAtMTUuMSA4LjItMjguOSAyMS40LTM2LjJsMTMtNy4xIDIxMy42IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6Il19LFUkdD0kMGUsVlU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmMDcwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMjA0LjUgMTM4LjdjMjMuNS0xNi44IDUyLjQtMjYuNyA4My41LTI2LjcgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCAzMS4xLTkuOSA1OS45LTI2LjcgODMuNWwtMzQuNy0zNC43YzEyLjctMjEuNCAxNy00Ny43IDEwLjEtNzMuNy0xMy43LTUxLjItNjYuNC04MS42LTExNy42LTY3LjktOC42IDIuMy0xNi43IDUuNy0yNCAxMGwtMzQuNy0zNC43ek0zMjUuMyAzOTUuMWMtMTEuOSAzLjItMjQuNCA0LjktMzcuMyA0LjktNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC0xMi45IDEuNy0yNS40IDQuOS0zNy4zTDY5LjQgMTM5LjJjLTMyLjYgMzYuOC01NSA3NS44LTY2LjkgMTA0LjUtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjYgMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMSA0Ny4xIDQzLjcgMTExLjggODAuNiAxOTIuNiA4MC42IDM3LjMgMCA3MS4yLTcuOSAxMDEuNS0yMC42bC02NC4yLTY0LjJ6Il19LEQwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWZsYXRiZWQtc3VpdGNhc2UiLGljb246WzU3Niw1MTIsWyJsdWdnYWdlLWNhcnQiXSwiZjU5ZCIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEw0OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmw0MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzQuNyAwYzEuOCA1IDIuNyAxMC40IDIuNyAxNiAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTUuNiAxLTExIDIuNy0xNmwtMTk3LjUgMGMxLjggNSAyLjcgMTAuNCAyLjcgMTYgMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC02IDEuMS0xMS43IDMuMS0xNy0zOC4xLTYuMi02Ny4xLTM5LjItNjcuMS03OUw2NCA4MGMwLTguOC03LjItMTYtMTYtMTZMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNMTc2IDE0NGMwLTI2LjUgMjEuNS00OCA0OC00OGwzMiAwIDAtMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZsNjQgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDI0IDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNDRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI0MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE0NHpNMzg0IDk2bDAtMjRjMC00LjQtMy42LTgtOC04bC02NCAwYy00LjQgMC04IDMuNi04IDhsMCAyNCA4MCAweiJdfSxqJHQ9RDBlLFckdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyYWRpYXRpb24iLGljb246WzU3Niw1MTIsW10sImY3YjkiLCJNNDQ2LjIgMzQuNWMtMTQuMi0xMC4xLTMzLjUtNC42LTQyLjIgMTAuNUwzMzEuNiAxNzAuM2MzMS4zIDE1LjggNTIuOCA0OC4zIDUyLjggODUuN2wxNDQgMGMxNy43IDAgMzIuMi0xNC40IDMwLjEtMzEuOS05LjEtNzguMS01MS40LTE0Ni4xLTExMi4zLTE4OS42ek0xNzIuNyA0NC45QzE2NCAyOS44IDE0NC43IDI0LjMgMTMwLjUgMzQuNSA2OS42IDc3LjkgMjcuMyAxNDUuOSAxOC4yIDIyNC4xIDE2LjEgMjQxLjYgMzAuNyAyNTYgNDguMyAyNTZsMTQ0IDBjMC0zNy41IDIxLjUtNjkuOSA1Mi44LTg1LjdMMTcyLjcgNDQuOXptLTkuNCA0MTYuOGMtOC43IDE1LjEtMy44IDM0LjUgMTIgNDEuOCAzNC40IDE1LjcgNzIuNyAyNC41IDExMyAyNC41czc4LjYtOC44IDExMy0yNC41YzE1LjgtNy4yIDIwLjctMjYuNyAxMi00MS44TDM0MSAzMzYuM2MtMTUuMSA5LjktMzMuMiAxNS43LTUyLjYgMTUuN3MtMzcuNS01LjgtNTIuNi0xNS43TDE2My4zIDQ2MS43ek0yODguMyAzMDRhNDggNDggMCAxIDAgLS43LTk2IDQ4IDQ4IDAgMSAwIC43IDk2eiJdfSxHJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS13b3JkIixpY29uOlszODQsNTEyLFtdLCJmMWMyIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xMzUuNCAyNzQuOGMtMi45LTEyLjktMTUuNy0yMS4xLTI4LjYtMTguMnMtMjEuMSAxNS43LTE4LjIgMjguNmwzMiAxNDRjMi4zIDEwLjUgMTEuNCAxOC4yIDIyLjIgMTguOHMyMC42LTYuMSAyNC0xNi40bDI1LjItNzUuNyAyNS4yIDc1LjdjMy40IDEwLjIgMTMuMiAxNi45IDI0IDE2LjRzMTkuOS04LjIgMjIuMi0xOC44bDMyLTE0NGMyLjktMTIuOS01LjMtMjUuOC0xOC4yLTI4LjZzLTI1LjggNS4zLTI4LjYgMTguMmwtMTMuMiA1OS40LTIwLjYtNjEuOGMtMy4zLTkuOC0xMi40LTE2LjQtMjIuOC0xNi40cy0xOS41IDYuNi0yMi44IDE2LjRsLTIwLjYgNjEuOC0xMy4yLTU5LjR6Il19LEUwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWQtcHVsc2UiLGljb246WzY0MCw1MTIsWyJwcm9jZWR1cmVzIl0sImY0ODciLCJNNTMxLjItMjIuNEw1NzIgMzIgNjE2IDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwYy03LjYgMC0xNC43LTMuNi0xOS4yLTkuNmwtMjQuMS0zMi4xLTQ3IDk5LjljLTMuNyA3LjgtMTEuMyAxMy4xLTE5LjkgMTMuN3MtMTYuOS0zLjQtMjEuNy0xMC42TDM4Ny4yIDgwIDM0NCA4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw1NiAwYzggMCAxNS41IDQgMjAgMTAuN2wyNC40IDM2LjYgNDUuOS05Ny41YzMuNi03LjYgMTAuOS0xMi44IDE5LjMtMTMuN3MxNi42IDIuNyAyMS42IDkuNXpNMzIwIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5LjUgMCAyNi42IDM5LjljMTQuNCAyMS42IDM5LjMgMzMuOCA2NS4yIDMxLjlzNDguOC0xNy42IDU5LjgtNDEuMUw1MjcgMTI5LjJjNDUuOSA3LjIgODEgNDYuOSA4MSA5NC44bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQtNDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgMjI0IDIyNCAwIDAtMTI4ek0xNDQgMTkyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sWSR0PUUwZSxaJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudHMiLGljb246WzU3Niw1MTIsW10sImU1ODIiLCJNNTM5LjkgMzUybC05NS42IDAtOC40LTY2LjFjLTIuOS0yMy4yLTE1LjktNDMuOS0zNS40LTU2LjhMMjUyLjIgMTMxLjVjLTE4LTExLjktMzkuNy0xNS43LTYwLjEtMTEuNSAyLjUtNC4zIDUuOS03LjkgMTAuMS0xMC43TDM1MC42IDExLjZjMTAuNy03IDI0LjUtNyAzNS4yIDBsMTQ4LjQgOTcuN2M3LjggNS4xIDEzIDEzLjQgMTQuMiAyMi43bDIzLjMgMTg0YzIuNCAxOS4xLTEyLjUgMzYtMzEuNyAzNnpNNC44IDQ3NmwyMy4zLTE4NGMxLjItOS4zIDYuMy0xNy42IDE0LjItMjIuN2wxNDguNC05Ny43YzEwLjctNyAyNC41LTcgMzUuMiAwbDE0OC40IDk3LjdjNy44IDUuMSAxMyAxMy40IDE0LjIgMjIuN2wyMy4zIDE4NGMyLjQgMTkuMS0xMi41IDM2LTMxLjcgMzZsLTQ5LjcgMGMtMTEuMiAwLTIxLjUtNS44LTI3LjMtMTUuNGwtNzctMTI2LjdjLTEuNy0yLjgtNC44LTQuNi04LjEtNC42LTUuMyAwLTkuNSA0LjMtOS41IDkuNWwwIDEwNS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDM2LjUgNTEyYy0xOS4zIDAtMzQuMi0xNi45LTMxLjctMzZ6Il19LFVVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11Zy1ob3QiLGljb246WzU3Niw1MTIsWzk3NDldLCJmN2I2IiwiTTE1Mi0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAzOC45IDIzLjQgNTkuNCAzOS4xIDczLjFsMS4xIDFjMTYuMyAxNC4zIDIzLjggMjEuOCAyMy44IDM3LjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTM4LjktMjMuNC01OS40LTM5LjEtNzMuMWwtMS4xLTFDMTgzLjUgMzEuNyAxNzYgMjQuMSAxNzYgOCAxNzYtNS4zIDE2NS4zLTE2IDE1Mi0xNnpNOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwYzQxLjggMCA3Ny40LTI2LjcgOTAuNS02NGw1LjUgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFM1MTguNyAxOTIgNDQ4IDE5Mkw5NiAxOTJ6TTQ0OCAzODRsMC0xMjhjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTI4OCA4YzAtMTMuMy0xMC43LTI0LTI0LTI0UzI0MC01LjMgMjQwIDhjMCAzOC45IDIzLjQgNTkuNCAzOS4xIDczLjFsMS4xIDFjMTYuMyAxNC4zIDIzLjggMjEuOCAyMy44IDM3LjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTM4LjktMjMuNC01OS40LTM5LjEtNzMuMWwtMS4xLTFDMjk1LjUgMzEuNyAyODggMjQuMSAyODggOHoiXX0sTjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbHQiLGljb246WzQ0OCw1MTIsWzk4ODksInphcCJdLCJmMGU3IiwiTTMzOC44LTkuOWMxMS45IDguNiAxNi4zIDI0LjIgMTAuOSAzNy44TDI3MS4zIDIyNCA0MTYgMjI0YzEzLjUgMCAyNS41IDguNCAzMC4xIDIxLjFzLjcgMjYuOS05LjYgMzUuNWwtMjg4IDI0MGMtMTEuMyA5LjQtMjcuNCA5LjktMzkuMyAxLjNzLTE2LjMtMjQuMi0xMC45LTM3LjhMMTc2LjcgMjg4IDMyIDI4OGMtMTMuNSAwLTI1LjUtOC40LTMwLjEtMjEuMXMtLjctMjYuOSA5LjYtMzUuNWwyODgtMjQwYzExLjMtOS40IDI3LjQtOS45IDM5LjMtMS4zeiJdfSxYJHQ9TjBlLFEkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXIiLGljb246WzMyMCw1MTIsW10sImU1MTYiLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTkyeiJdfSxLJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGxhbmUiLGljb246WzY0MCw1MTIsW10sImU1OGYiLCJNMTQ0IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAzMjBjMCAzMi41IDEyLjEgNjIuMSAzMiA4NC43bDAgMjcuM2MwIDcuMSAuOSAxNC4xIDIuNyAyMC43TDE5MiA0ODAgODMuOSA1MDdDNzMuOCA1MDkuNiA2NCA1MDEuOSA2NCA0OTEuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNzQtNTkuMiAwLTU3LjYtMTIyLjEgNDguOEMxMS40IDM5NS40IDAgMzg3LjcgMCAzNzYuNGwwLTQ0YzAtOCAzLTE1LjYgOC4zLTIxLjVMMTQ0IDE2MS42IDE0NCA0OHptMjI0IDgwbDE5MiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTYwYzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMtMTkuNC0xNC42LTMyLTM3LjgtMzItNjRsMC0xNjBjMC00NC4yIDM1LjgtODAgODAtODB6bTAgMTc2bDE5MiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyem0wIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjE2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LEokdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctaGVhcnQiLGljb246WzU3Niw1MTIsW10sImY0YmUiLCJNMjc5LjYgMzFDMjY1LjUgMTEuNSAyNDIuOSAwIDIxOC45IDAgMTc3LjUgMCAxNDQgMzMuNSAxNDQgNzQuOWwwIDIuNGMwIDY0LjQgODIgMTMzLjQgMTIyLjIgMTYzLjMgMTMgOS43IDMwLjUgOS43IDQzLjUgMCA0MC4yLTMwIDEyMi4yLTk4LjkgMTIyLjItMTYzLjNsMC0yLjRjMC00MS40LTMzLjUtNzQuOS03NC45LTc0LjktMjQgMC00Ni42IDExLjUtNjAuNyAzMUwyODggNDIuNyAyNzkuNiAzMXpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LGU1PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJvdGF0ZS1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjM0LCJhcnJvdy1sZWZ0LXJvdGF0ZSIsImFycm93LXJvdGF0ZS1iYWNrIiwiYXJyb3ctcm90YXRlLWJhY2t3YXJkIiwidW5kbyJdLCJmMGUyIiwiTTI1NiA2NGMtNTYuOCAwLTEwNy45IDI0LjctMTQzLjEgNjRsNDcuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBTNjQgMTQuMyA2NCAzMmwwIDU0LjdDMTEwLjkgMzMuNiAxNzkuNSAwIDI1NiAwIDM5Ny40IDAgNTEyIDExNC42IDUxMiAyNTZTMzk3LjQgNTEyIDI1NiA1MTJjLTg3IDAtMTYzLjktNDMuNC0yMTAuMS0xMDkuNy0xMC4xLTE0LjUtNi42LTM0LjQgNy45LTQ0LjZzMzQuNC02LjYgNDQuNiA3LjljMzQuOCA0OS44IDkyLjQgODIuMyAxNTcuNiA4Mi4zIDEwNiAwIDE5Mi04NiAxOTItMTkyUzM2MiA2NCAyNTYgNjR6Il19LGVEdD1lNSx0RHQ9ZTUsYUR0PWU1LHJEdD1lNSxQMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1hbmdyeSIsaWNvbjpbNTEyLDUxMixbMTI4NTQ0LCJhbmdyeSJdLCJmNTU2IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTI1NiAzNjhjMjQuMSAwIDQ1LjQgMTEuOCA1OC41IDMwIDcuNyAxMC44IDIyLjcgMTMuMiAzMy41IDUuNXMxMy4yLTIyLjcgNS41LTMzLjVjLTIxLjctMzAuMi01Ny4zLTUwLTk3LjUtNTBzLTc1LjcgMTkuOC05Ny41IDUwYy03LjcgMTAuOC01LjMgMjUuOCA1LjUgMzMuNXMyNS44IDUuMyAzMy41LTUuNWMxMy4xLTE4LjIgMzQuNC0zMCA1OC41LTMwem0tODAtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0uMyA5LjcgMy4yYzEwLjUgMy41IDIxLjgtMi4yIDI1LjMtMTIuNnMtMi4yLTIxLjgtMTIuNi0yNS4zbC05Ni0zMmMtMTAuNS0zLjUtMjEuOCAyLjItMjUuMyAxMi42czIuMiAyMS44IDEyLjYgMjUuM2wyOC45IDkuNmMtNC4xIDUuNC02LjYgMTIuMS02LjYgMTkuNCAwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTkyLTMyYzAtNy4zLTIuNC0xNC02LjYtMTkuNGwyOC45LTkuNmMxMC41LTMuNSAxNi4xLTE0LjggMTIuNi0yNS4zcy0xNC44LTE2LjEtMjUuMy0xMi42bC05NiAzMmMtMTAuNSAzLjUtMTYuMSAxNC44LTEyLjYgMjUuM3MxNC44IDE2LjEgMjUuMyAxMi42bDkuNy0zLjIgMCAuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyeiJdfSxpRHQ9UDBlLG9EdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXJzdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRkYyIsIk0zNy42IDQuMkMyOC0yLjMgMTUuMi0xLjEgNyA3Uy0yLjMgMjggNC4yIDM3LjZsMTEyIDE2My4zLTk5LjYgMzIuM0M2LjcgMjM2LjQgMCAyNDUuNiAwIDI1NnM2LjcgMTkuNiAxNi42IDIyLjhsMTAzLjEgMzMuNC01Mi45IDEwMC42Yy00LjkgOS4zLTMuMiAyMC43IDQuMyAyOC4xczE4LjggOS4yIDI4LjEgNC4zbDEwMC42LTUyLjkgMzMuNCAxMDMuMWMzLjIgOS45IDEyLjQgMTYuNiAyMi44IDE2LjZzMTkuNi02LjcgMjIuOC0xNi42bDMzLjQtMTAzLjEgMTAwLjYgNTIuOWM5LjMgNC45IDIwLjcgMy4yIDI4LjEtNC4zczkuMi0xOC44IDQuMy0yOC4xbC01Mi45LTEwMC42IDEwMy4xLTMzLjRjOS45LTMuMiAxNi42LTEyLjQgMTYuNi0yMi44cy02LjctMTkuNi0xNi42LTIyLjhsLTEwNi41LTM0LjUgMjUuNy03MC40YzMuMi04LjggMS0xOC42LTUuNi0yNS4ycy0xNi40LTguOC0yNS4yLTUuNmwtNzAuNCAyNS43LTM0LjUtMTA2LjVDMjc1LjYgNi43IDI2Ni40IDAgMjU2IDBzLTE5LjYgNi43LTIyLjggMTYuNkwyMDAuOSAxMTYuMiAzNy42IDQuMnoiXX0sc0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InoiLGljb246WzM4NCw1MTIsWzEyMl0sIjVhIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzIwIDBjMTIuNCAwIDIzLjcgNy4yIDI5IDE4LjRzMy42IDI0LjUtNC40IDM0LjFMMTAwLjMgNDE2IDM1MiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xMi40IDAtMjMuNy03LjItMjktMTguNHMtMy42LTI0LjUgNC40LTM0LjFMMjgzLjcgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sSTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmRhZ2UiLGljb246WzU3Niw1MTIsWzEyOTY1NywiYmFuZC1haWQiXSwiZjQ2MiIsIk00NjQgNDE2bDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMCAzMjB6TTQxNiA5NmwtMjU2IDAgMCAzMjAgMjU2IDAgMC0zMjB6TTY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMzIwLTQ4IDB6TTIxNiAyMDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjE2IDMwNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxuRHQ9STBlLGxEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1NTYiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxjRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzLXNpZGUiLGljb246WzY0MCw1MTIsW10sImU4MWQiLCJNNDgwIDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTUuNiAwYy0xMy4yIDM3LjMtNDguNiA2NC05MC40IDY0cy03Ny4zLTI2LjctOTAuNC02NGwtMTM5LjEgMGMtMTMuMiAzNy4zLTQ4LjcgNjQtOTAuNCA2NHMtNzcuMi0yNi43LTkwLjQtNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNDMgNDMgMCA5NiAwTDQ4MCAwek0xNjAgMzY4YTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnptMzIwIDBhNDggNDggMCAxIDAgMCA5NiA0OCA0OCAwIDEgMCAwLTk2em0wLTMwNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2ek0yNDggMjI0bDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTEwNCAwIDAgMTYwek05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMCAwLTE2MC0xMDQgMHoiXX0sZER0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1Z3MiLGljb246WzU3Niw1MTIsW10sImU0ZDAiLCJNNDQ3LjUgMTc0LjZjOC44LTguNCAyMi43LTguOSAzMi4yLS44czExIDIxLjkgNC4xIDMxLjlsLTEuNSAxLjktMjMgMjYuN2MyNi43IDEzLjUgNDYuMyAzOS4xIDUxLjQgNjkuNmwyNS4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI0IDAgMCAzMiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNS4zIDBjLTcuNiA0NS40LTQ3LjEgODAtOTQuNyA4MHMtODctMzQuNi05NC43LTgwTDI5NiA0MzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTMyLTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjUuMyAwYzUuMS0zMC41IDI0LjctNTYuMSA1MS40LTY5LjZsLTIyLjktMjYuN2MtOC42LTEwLjEtNy41LTI1LjIgMi42LTMzLjhzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44em0tMjU2LTE5MmM4LjgtOC40IDIyLjctOC45IDMyLjItLjhzMTEgMjEuOSA0LjEgMzEuOWwtMS41IDEuOS0yMyAyNi43QzIzMCA1NS45IDI0OS41IDgxLjUgMjU0LjcgMTEybDI1LjMgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQgMCAwIDMyIDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1LjMgMGMtNy42IDQ1LjQtNDcuMSA4MC05NC43IDgwcy04Ny0zNC42LTk0LjctODBMNDAgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC0zMi0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI1LjMgMEM3MC41IDgxLjUgOTAgNTUuOSAxMTYuNyA0Mi40TDkzLjggMTUuNkM4NS4yIDUuNiA4Ni4zLTkuNiA5Ni40LTE4LjJzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44eiJdfSxGMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVlci1tdWctZW1wdHkiLGljb246WzU3Niw1MTIsWyJiZWVyIl0sImYwZmMiLCJNNjQgODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMjg4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNiA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTA4LjJjMCAyNC4yLTEzLjcgNDYuNC0zNS40IDU3LjJMNDQ4IDM3MS44IDQ0OCAzODRjMCA1My00MyA5Ni05NiA5NmwtMTkyIDBjLTUzIDAtOTYtNDMtOTYtOTZMNjQgODB6TTQ0OCAzMDAuMmw2NC0zMiAwLTEwOC4yLTY0IDAgMCAxNDAuMnpNMTkyIDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4em04OCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6bTg4IDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHoiXX0sZkR0PUYwZSx1RHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZSIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxwRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhcGxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTVhZiIsIk02NDAgMjk5LjNMNjQwIDQzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDAgMC00OC0zNTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTYuNi0zMC4yLTUuNGMtMTkuNi0zLjUtMzMuOC0yMC41LTMzLjgtNDAuNCAwLTguOSAyLjktMTcuNSA4LjItMjQuNmwzNS42LTQ3LjVjMzIuOC00My44IDg0LjQtNjkuNiAxMzkuMS02OS42IDI3IDAgNTMuNiA2LjMgNzcuOCAxOC40TDU4Ni45IDIxMy41QzYxOS41IDIyOS43IDY0MCAyNjMgNjQwIDI5OS4zek00NDggMzA0bDAtMTYtMzIwLTU3LjEgMCA3My4xIDMyMCAweiJdfSxoRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1MTEiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LG1EdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuYWlyYS1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMWY2IiwiTTEyMi42IDQ2LjNjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzY0IDQ5LjkgNjQgNjRsMCAxOTItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQgODkuNSAwIDEwNy44IDE2MS44YzcuOCAxMS43IDIyLjQgMTcgMzUuOSAxMi45UzM4NCA0NjIuMSAzODQgNDQ4bDAtMTQ0IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTItNTcuNSAwLTEzOS44LTIwOS43ek0yOTQuNSAzMDRsMjUuNSAwIDAgMzguMy0yNS41LTM4LjN6TTE4NS41IDI1NmwtNTcuNSAwIDAtODYuMyA1Ny41IDg2LjN6Il19LGJVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpZmkiLGljb246WzU3Niw1MTIsWyJ3aWZpLTMiLCJ3aWZpLXN0cm9uZyJdLCJmMWViIiwiTTI4OCA5NmMtOTAuOSAwLTE3My4yIDM2LTIzMy43IDk0LjYtMTIuNyAxMi4zLTMzIDEyLTQ1LjItLjdzLTEyLTMzIC43LTQ1LjJDODEuNyA3NC45IDE3OS45IDMyIDI4OCAzMlM0OTQuMyA3NC45IDU2Ni4zIDE0NC43YzEyLjcgMTIuMyAxMyAzMi42IC43IDQ1LjJzLTMyLjYgMTMtNDUuMiAuN0M0NjEuMiAxMzIgMzc4LjkgOTYgMjg4IDk2ek0yNDAgNDMyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAzMjYuMmMtMTEuNyAxMy4zLTMxLjkgMTQuNS00NS4yIDIuOHMtMTQuNS0zMS45LTIuOC00NS4yQzE2MSAyMzcuNCAyMjEuMSAyMDggMjg4IDIwOHMxMjcgMjkuNCAxNjggNzUuOGMxMS43IDEzLjMgMTAuNCAzMy41LTIuOCA0NS4ycy0zMy41IDEwLjQtNDUuMi0yLjhDMzc4LjYgMjkyLjkgMzM1LjggMjcyIDI4OCAyNzJzLTkwLjYgMjAuOS0xMjAgNTQuMnoiXX0sZ0R0PWJVLHhEdD1iVSxUNz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1jaGVjay1kb2xsYXIiLGljb246WzUxMiw1MTIsWyJtb25leS1jaGVjay1hbHQiXSwiZjUzZCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMjk2IDI4OGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bS0yNC04OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xNDggMTQ0YzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Qzk0LjUgMjY4IDc2IDI0Ni4xIDc2IDIyMC41IDc2IDE5MS43IDk5LjIgMTY4LjMgMTI4IDE2OGwwLTRjMC0xMSA5LTIwIDIwLTIweiJdfSxiRHQ9VDcsTzBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1sb3ctdmlzaW9uIixpY29uOls1NzYsNTEyLFsibG93LXZpc2lvbiJdLCJmMmE4IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMjA0LjUgMTM4LjdjMjMuNS0xNi44IDUyLjQtMjYuNyA4My41LTI2LjcgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCAzMS4xLTkuOSA1OS45LTI2LjcgODMuNWwtMzQuNy0zNC43YzEyLjctMjEuNCAxNy00Ny43IDEwLjEtNzMuNy0xMy43LTUxLjItNjYuNC04MS42LTExNy42LTY3LjktOC42IDIuMy0xNi43IDUuNy0yNCAxMGwtMzQuNy0zNC43ek04OCAxNTcuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwzMjguMiA0NjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDg4IDE1Ny45ek00NS43IDI1MS4zYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDE4MS45IDQ1NS41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NS43IDI1MS4zeiJdfSx2RHQ9TzBlLEIwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtdXAiXSwiZjBhYSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTctMzc3bDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTM5LTM5IDAgMTUwLjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNTAuMS0zOSAzOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0seUR0PUIwZSx3RHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtZXJhLXJldHJvIixpY29uOls1MTIsNTEyLFsxMjgyNDddLCJmMDgzIiwiTTAgNDE2bDAtMjA4IDEzNi4yIDBjMTMuNS0yMC4yIDMyLTM2LjggNTMuNy00OEwwIDE2MCAwIDEyNS43YzAtMzUuMyAyOC43LTY0IDY0LTY0bC4xIDBDNjUuMyA0NS4xIDc5LjEgMzIgOTYgMzJsMzIgMGMxNi45IDAgMzAuNyAxMy4xIDMxLjkgMjkuN2wzMi4xIDAgNTEuMi0yMy44YzguNC0zLjkgMTcuNi02IDI2LjktNkw0NDggMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NC0xOTAgMGMyMS43IDExLjIgNDAuMiAyNy44IDUzLjcgNDhsMTM2LjIgMCAwIDIwOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0ek0yNTYgMTkyYTk2LjEgOTYuMSAwIDEgMCAwIDE5Mi4xIDk2LjEgOTYuMSAwIDEgMCAwLTE5Mi4xeiJdfSxNRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fwc3VsZXMiLGljb246WzU3Niw1MTIsW10sImY0NmIiLCJNOTYgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTItOTYgMCAwLTExMnptLTY0IDBsMCAyODhjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmwwLTEwNS44IDExNi4zIDE2OS41YzM1LjUgNTEuNyAxMDUuMyA2NC4zIDE1NiAyOC4xczYzLTEwNy41IDI3LjUtMTU5LjJMNDI3LjMgMTQ1LjNjLTM1LjUtNTEuNy0xMDUuMy02NC4zLTE1Ni0yOC4xLTUuNiA0LTEwLjcgOC40LTE1LjMgMTMuMWwwLTE4LjNDMjU2IDUwLjEgMjA1LjkgMCAxNDQgMFMzMiA1MC4xIDMyIDExMnpNMjk2LjYgMjQwLjJjLTE2LTIzLjMtMTAtNTUuMyAxMS45LTcxIDIxLjItMTUuMSA1MC41LTEwLjMgNjYgMTIuMmw2NyA5Ny42LTc5LjkgNTUuOS02NS05NC44eiJdfSx6RHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9vIixpY29uOls1MTIsNTEyLFsxMjgxNjldLCJmMmZlIiwiTTI2OC45IC45Yy01LjUtLjctMTEgMS40LTE0LjUgNS43cy00LjYgMTAuMS0yLjggMTUuNGMyLjggOC4yIDQuMyAxNi45IDQuMyAyNi4xIDAgNDQuMS0zNS43IDc5LjktNzkuOCA4MEwxNjAgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDE5LjEgOC40IDM2LjMgMjEuNyA0OEwxMDQgMjQwYy0zOS44IDAtNzIgMzIuMi03MiA3MiAwIDIzLjIgMTEgNDMuOCAyOCA1Ny0zNC4xIDUuNy02MCAzNS4zLTYwIDcxIDAgMzkuOCAzMi4yIDcyIDcyIDcybDM2OCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyIDAtMzUuNy0yNS45LTY1LjMtNjAtNzEgMTctMTMuMiAyOC0zMy44IDI4LTU3IDAtMzkuOC0zMi4yLTcyLTcyLTcybC0xMy43IDBjMTMuMy0xMS43IDIxLjctMjguOSAyMS43LTQ4IDAtMzUuMy0yOC43LTY0LTY0LTY0bC01LjUgMGMzLjUtMTAgNS41LTIwLjggNS41LTMyIDAtNDguNi0zNi4yLTg4LjgtODMuMS05NS4xek0xOTIgMjU2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptNjQgMTA4LjNjMCAyLjQtLjcgNC44LTIuMiA2LjctOC4yIDEwLjUtMzkuNSA0NS05My44IDQ1cy04NS42LTM0LjYtOTMuOC00NWMtMS41LTEuOS0yLjItNC4zLTIuMi02LjcgMC02LjggNS41LTEyLjMgMTIuMy0xMi4zbDE2Ny40IDBjNi44IDAgMTIuMyA1LjUgMTIuMyAxMi4zeiJdfSxrRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxldmF0b3IiLGljb246WzUxMiw1MTIsW10sImUxNmQiLCJNMjkyLjctNC43bDY0IDY0YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTNDM4LjUtMzIgNDMyLTMyTDMwNC0zMmMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40em0tMTYwLTIyLjZsLTY0IDY0Yy00LjYgNC42LTUuOSAxMS41LTMuNSAxNy40UzczLjUgNjQgODAgNjRsMTI4IDBjNi41IDAgMTIuMy0zLjkgMTQuOC05LjlzMS4xLTEyLjktMy41LTE3LjRsLTY0LTY0Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTk2IDk2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNODAgNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnptMTkyIDBjMC0yNi41IDIxLjUtNDggNDgtNDhsNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2em0zMi0xMjhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sU0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhZyIsaWNvbjpbNTEyLDUxMixbMTI3OTkxXSwiZjAyYiIsIk0zMi41IDk2bDAgMTQ5LjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsMTkyIDE5MmMyNSAyNSA2NS41IDI1IDkwLjUgMEw0ODMuMiAzMzMuM2MyNS0yNSAyNS02NS41IDAtOTAuNWwtMTkyLTE5MkMyNzkuMiAzOC43IDI2MyAzMiAyNDYgMzJMOTYuNSAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTExMiAxNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LENEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1taW51cyIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZ6Il19LFIwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3duLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LWFsdC1kb3duIl0sImYzMDkiLCJNMTM3LjQgNTM0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMDAuOSAzNTIgMjg4IDM1MmwtNjQgMCAwLTMzNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMzYtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzOTcuNSA5LjQgNDA2LjZsMTI4IDEyOHoiXX0sTER0PVIwZSxURHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcGFjdC1kaXNjIixpY29uOls1MTIsNTEyLFsxMjgxOTEsMTI4MTkyLDEyODQ0MF0sImY1MWYiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDMyYTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptLTk2LTMyYTk2IDk2IDAgMSAwIDE5MiAwIDk2IDk2IDAgMSAwIC0xOTIgMHptLTU2LTE2YzAtMzIuNCAxNi4zLTY2LjYgNDIuOC05My4yUzIwNy42IDEwNCAyNDAgMTA0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy00Ny45IDAtOTMuNyAyMy41LTEyNy4xIDU2LjlTNTYgMTkyLjEgNTYgMjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6Il19LF9EdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZS1yb2xsaW5nIixpY29uOlszODQsNTEyLFtdLCJmNWMxIiwiTTE0NCAyNGMwLTQuNCAzLjYtOCA4LThsODAgMGM0LjQgMCA4IDMuNiA4IDhsMCA3Mi05NiAwIDAtNzJ6TTMyMCA5NmwtMzIgMCAwLTcyYzAtMzAuOS0yNS4xLTU2LTU2LTU2bC04MCAwQzEyMS4xLTMyIDk2LTYuOSA5NiAyNGwwIDcyLTMyIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OGMwLTM1LjMtMjguNy02NC02NC02NHpNMTIwIDIwOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sSDBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stcXVyYW4iLGljb246WzQ0OCw1MTIsWyJxdXJhbiJdLCJmNjg3IiwiTTY0IDUxMmwyODggMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzIwYzAtNTMtNDMtOTYtOTYtOTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCAzMzZjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zTDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwek0zNTIgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMCAwLTY0IDI1NiAwek0yNzMuMSAxNDQuNGMyLjUtNi4xIDExLjItNi4xIDEzLjcgMGwxMC4zIDI0LjggMjYuOCAyLjFjNi42IC41IDkuMiA4LjcgNC4yIDEzTDMwNy44IDIwMS45IDMxNCAyMjhjMS41IDYuNC01LjUgMTEuNS0xMS4xIDguMWwtMjIuOS0xNC0yMi45IDE0Yy01LjYgMy40LTEyLjYtMS42LTExLjEtOC4xbDYuMi0yNi4xLTIwLjQtMTcuNWMtNS00LjMtMi4zLTEyLjUgNC4yLTEzbDI2LjgtMi4xIDEwLjMtMjQuOHpNMTAwIDE5MmMwLTY4LjUgNTUuNS0xMjQgMTI0LTEyNCAyMy44IDAgNDYuMSA2LjcgNjUgMTguNCA0LjggMi45IDYuOSA4LjggNSAxNC4xcy03LjEgOC42LTEyLjcgOGMtMy4xLS4zLTYuMi0uNS05LjQtLjUtNDYuNCAwLTg0IDM3LjYtODQgODRzMzcuNiA4NCA4NCA4NGMzLjIgMCA2LjMtLjIgOS40LS41IDUuNi0uNiAxMC44IDIuNyAxMi43IDhzLS4zIDExLjItNSAxNC4xYy0xOC45IDExLjctNDEuMiAxOC40LTY1IDE4LjQtNjguNSAwLTEyNC01NS41LTEyNC0xMjR6Il19LEFEdD1IMGUsJER0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmM2RkIiwiTTUzNS0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw0MSA1MzcuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwxNDEuNSAzNjguNkM4OS4yIDMxMC41IDUxLjYgMjM4LjggMzQuOCAxNTkuNCAxOC43IDgzLjEgNzMuOSAyMC42IDEzOC41IDIuOWw1LjUtMS41YzE5LjctNS40IDQwLjMgNC43IDQ4LjEgMjMuNWw0MC41IDk3LjNjNi45IDE2LjUgMi4xIDM1LjYtMTEuOCA0N2wtNDQuMSAzNi4xYzEyLjkgMjguNSAyOS42IDU0LjggNDkuNSA3OC41TDUzNS0yNC45em0tMTUwLjQgNTM0Yy02My0xMy40LTEyMS4zLTM5LjgtMTcxLjctNzYuM0wyOTcuOCAzNDhjMTIuMiA4LjIgMjUgMTUuNiAzOC4zIDIyLjJMMzc0LjcgMzIzYzExLjMtMTMuOSAzMC40LTE4LjYgNDctMTEuOEw1MTkgMzUxLjhjMTguOCA3LjggMjguOSAyOC40IDIzLjUgNDguMWwtMS41IDUuNWMtMTcuNiA2NC42LTgwLjIgMTE5LjgtMTU2LjQgMTAzLjd6Il19LEREdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NCIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LEVEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLWxvY2siLGljb246WzY0MCw1MTIsW10sImU0YTUiLCJNMjEuNSAxODEuMUw3OC4zIDY3LjRDODkuMiA0NS43IDExMS4zIDMyIDEzNS42IDMybDMwNC45IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsNTUuNiAxMTEuMWMtOC4yLTEuNi0xNi42LTIuNS0yNS4yLTIuNS01My43IDAtOTkuNyAzMy4xLTExOC43IDgwbC01Ny4zIDAgMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3Ni4xYy0yNi44LTEuOS00OC0yNC4zLTQ4LTUxLjYgMC04IDEuOS0xNiA1LjUtMjMuMnpNMTI4IDI1NmwwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyLTE2MCAwem00MzIgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTQxNiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LHEwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZS1wb3J0cmFpdCIsaWNvbjpbMzg0LDUxMixbInBvcnRyYWl0Il0sImYzZTAiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek04MCAzNjhjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6TTE5MiAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6Il19LE5EdD1xMGUsUER0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMCAwIDMyLjJjMTMuOCAuNiAyNy4yIDIuOCA0MCA2LjRsMCA1MC43Yy0xNC44LTYtMzEtOS4zLTQ4LTkuMy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLS40IC4zLS43IC42LTEuMSAxLTE3LjMtMjUtNDYuMi00MS4zLTc4LjktNDEuMy01MyAwLTk2IDQzLTk2IDk2bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTRjMC0zOC44LTI2LjQtNzIuNi02NC04MmwwLTExMiA0MCAwIDAtNjQtOCAwQzE0LjMgOTYgMCA4MS43IDAgNjR6bTQyNCA2OC42bDAtMzYuNi04MCAwIDAgNjQgMTguOCAwYzE4LjItMTIuOCAzOC45LTIyLjIgNjEuMi0yNy40ek0yMTYgOTZsMCA2NCA4MCAwIDAtNjQtODAgMHptLTQ4IDBsLTgwIDAgMCA2NCA4MCAwIDAtNjR6TTQ5NiAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LElEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW1tZXIiLGljb246WzY0MCw1MTIsWzEyODI5Nl0sImY2ZTMiLCJNMjQ2LjkgMTguM0wyNzEgMy44YzIxLjYtMTMgNDYuMy0xOS44IDcxLjUtMTkuOCAzNi44IDAgNzIuMiAxNC42IDk4LjIgNDAuN2w2My45IDYzLjljMTUgMTUgMjMuNCAzNS40IDIzLjQgNTYuNmwwIDMwLjkgMTkuNyAxOS43IDAgMGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMHMxNS42IDQwLjkgMCA1Ni42bC02NCA2NGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZMNDY0IDI0MCA0MzMuMSAyNDBjLTIxLjIgMC00MS42LTguNC01Ni42LTIzLjRsLTQ5LjEtNDkuMWMtMTUtMTUtMjMuNC0zNS40LTIzLjQtNTYuNmwwLTEyLjdjMC0xMS4yLTUuOS0yMS43LTE1LjUtMjcuNGwtNDEuNi0yNWMtMTAuNC02LjItMTAuNC0yMS4yIDAtMjcuNHpNNTAuNyA0MDIuN2wyMjIuMS0yMjIuMSA5MC41IDkwLjUtMjIyLjEgMjIyLjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNXoiXX0sVjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLTEtOSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy11cCJdLCJmMTYzIiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNNDE4LjcgMzhjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yIDAgNTEuNi0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC05NmMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnpNMzY1LjEgNDMwLjZjLTkuNiAxNC44LTUuNCAzNC42IDkuNCA0NC4zczM0LjYgNS40IDQ0LjMtOS40bDQyLjEtNjQuOWMxMi40LTE5LjIgMTkuMS00MS42IDE5LjEtNjQuNSAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDM2LjEgMjMuOSA2Ni43IDU2LjggNzYuNmwtMTEuNyAxOHpNMzc2IDMzNmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxGRHQ9VjBlLE9EdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1rbmlnaHQiLGljb246WzM4NCw1MTIsWzk4MjJdLCJmNDQxIiwiTTE5Mi0zMmMxMDYgMCAxOTIgODYgMTkyIDE5MmwwIDEzMy41YzAgMTctNi44IDMzLjItMTguNyA0NS4yTDMyMCAzODQgMzcwLjggNDM0LjdjOC41IDguNSAxMy4yIDIwIDEzLjIgMzIgMCAyNS0yMC4zIDQ1LjItNDUuMiA0NS4zTDQ1LjMgNTEyYy0yNSAwLTQ1LjItMjAuMy00NS4yLTQ1LjMgMC0xMiA0LjgtMjMuNSAxMy4yLTMyTDY0IDM4NCA2NCAzNDkuNGMwLTE4LjcgOC4yLTM2LjQgMjIuMy00OC42bDg5LjctNzYuOC00OCAwLTEyLjEgMTIuMWMtMTIuNyAxMi43LTMwIDE5LjktNDggMTkuOS0zNy41IDAtNjcuOS0zMC40LTY3LjktNjcuOWwwLTguN2MwLTIyLjggOC4yLTQ0LjkgMjMuMS02Mi4zTDk2IDMyIDk2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNMTYwIDcyYTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHoiXX0sQkR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsb29kLXdhdGVyLWNpcmNsZS1hcnJvdy1yaWdodCIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZiIsIk0yODguNSAxMTJhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNMTQxLjIgNDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGw1NiA1NmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNTYgNTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMjguNy0yOC43LTg5LjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4OS40IDAtMjguNy0yOC43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnpNMzM2LjUgMTEyYzAgNzEuMS0zOC42IDEzMy4xLTk2IDE2Ni4zbDAgMTIuOGMyMi4xIDQuNSA0My40IDEzLjkgNjIuNCAyOC4yIDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCA2LjkgNS4yIDEyLjggOSAxOCAxMS43IC42IC4zIDEuMiAuNiAxLjggMSA0LjIgMi4zIDguNSA0LjYgMTIuNiAxLjUgNi00LjUgMTIuNi04IDE5LjMtMTAuNGwwLTExNS4yIDQuNSAwYzE1LjIgMCAyNy41LTEyLjMgMjcuNS0yNy41IDAtNy45LTMuNC0xNS41LTkuNC0yMC43TDQ0NC41IDEwLjVDNDM2LjggMy43IDQyNi44IDAgNDE2LjUgMHMtMjAuMyAzLjctMjggMTAuNUwzMjkuOSA2MS44YzQuMyAxNiA2LjYgMzIuOCA2LjYgNTAuMnptMzIgODhjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4ek00NzUuMSA0MTIuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDM5MS44IDI2NiAzNzMuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiA5NmMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDQ4Ny44IDI2NiA0NjkuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxfNz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1yaWdodC1mcm9tLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImV4dGVybmFsLWxpbmsiXSwiZjA4ZSIsIk0zMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4Mi43IDAtMjAxLjQgMjAxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDQ4IDEwOS4zIDQ0OCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMHpNODAgOTZDMzUuOCA5NiAwIDEzMS44IDAgMTc2TDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDI1NiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZMODAgNDQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDgwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgOTZ6Il19LFJEdD1fNyxIRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi11cC1hY3Jvc3MtbGluZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRhZiIsIk0yNjUuNCAxMDUuNGw5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40IDAgMTE0LjcgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCAxMTQuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiA0MDIuNyA5NiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyMCAwIDAtMTE0LjctNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3pNNDE2IDMzNmwwIDE0NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0NCA2NCAwek05NiAxNzZMOTYgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE0NC02NCAweiJdfSxVMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxNiwiZ3Jpbi1iZWFtIl0sImY1ODIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0scUR0PVUwZSxqMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLWFkIixpY29uOls1MTIsNTEyLFsiYWQiXSwiZjY0MSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNDE2IDE4NGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNC03LjEgMC0xMy41LTMuMS0xNy45LTgtMTAuMiA1LjEtMjEuOCA4LTM0LjEgOC00MiAwLTc2LTM0LTc2LTc2czM0LTc2IDc2LTc2YzkuOSAwIDE5LjMgMS45IDI4IDUuM2wwLTIxLjNjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptLTQ4IDkyYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTE2MCAyMDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyIDQ4IDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDB6bTMyIDk2bC00OCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEwNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI0eiJdfSxWRHQ9ajBlLFcwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXRhbmFraCIsaWNvbjpbNDQ4LDUxMixbInRhbmFraCJdLCJmODI3IiwiTTM1MiA1MTJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjYuN0MxMy40IDM3NC43IDAgMzU2LjkgMCAzMzZMMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzUyIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDMyMGMwIDUzLTQzIDk2LTk2IDk2em0zMi05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjU2IDAgMCA2NCAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTEzLjkgMjI5Yy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yQzIzMy42IDY2LjYgMjI5IDY0IDIyNCA2NHMtOS42IDIuNi0xMi4yIDYuOGwtMzAuNSA0OS4yLTU2LjkgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgMi4zIC42IDQuNiAxLjkgNi42bDI3LjggNDUtMjcuOCA0NXoiXX0sVUR0PVcwZSxHMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG90LXR1Yi1wZXJzb24iLGljb246WzQ0OCw1MTIsWyJob3QtdHViIl0sImY1OTMiLCJNMjQwIDQwYzAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMjAzLjUgOTMuMSAxOTIgNjcuMiAxOTIgNDAgMTkyIDI2LjcgMjAyLjcgMTYgMjE2IDE2czI0IDEwLjcgMjQgMjR6TTAgMzM2bDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTkuNyAwYzguMSAwIDE2LjIgMS42IDIzLjggNC42bDEzNy4xIDU0LjhjNy42IDMgMTUuNiA0LjYgMjMuOCA0LjZMMzg0IDI1NmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzM2em05Ni0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTE1MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MHptMTA0LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMzI4IDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMzE1LjUgOTMuMSAzMDQgNjcuMiAzMDQgNDAgMzA0IDI2LjcgMzE0LjcgMTYgMzI4IDE2ek02NCA0MGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0sakR0PUcwZSxXRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1oYWxmLWRhc2hlZCIsaWNvbjpbMzg0LDUxMixbXSwiZTY5OCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI1NiAzODQgMCAwLTE0OS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek0wIDM1MmwwIDY0IDY0IDAgMC02NC02NCAwek02NCA1MTJsMC02NC02NCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0em0zMiAwbDgwIDAgMC02NC04MCAwIDAgNjR6bTExMiAwbDgwIDAgMC02NC04MCAwIDAgNjR6bTExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bC02NCAwIDAgNjR6bTY0LTE2MGwtNjQgMCAwIDY0IDY0IDAgMC02NHoiXX0sWTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im91dGRlbnQiLGljb246WzQ0OCw1MTIsWyJkZWRlbnQiXSwiZjAzYiIsIk0uNCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzg0IDBDMTQuOCA5NiAuNCA4MS43IC40IDY0em0xOTIgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDk2bDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNLjQgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TS43IDI2OC42Yy04LjItNi40LTguMi0xOC45IDAtMjUuM2wxMDEuOS03OS4zYzEwLjUtOC4yIDI1LjgtLjcgMjUuOCAxMi42bDAgMTU4LjZjMCAxMy4zLTE1LjMgMjAuOC0yNS44IDEyLjZMLjcgMjY4LjZ6Il19LEdEdD1ZMGUsWUR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4LTY0IDAgMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek02MS4zIDUxLjJMMTQzLjkgMjQwIDc0LjEgMjQwIDIuNyA3Ni44Qy00LjQgNjAuNiAzIDQxLjggMTkuMiAzNC43UzU0LjIgMzUgNjEuMyA1MS4yem0yNyAyMjEuM2wtLjItLjUgOTUuOSAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNiAxMy4yIDAgMjUuNC00IDM1LjYtMTAuOCA4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44IDExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDY5LjUgNDUzLjVDNDUuNSA0MjkuNSAzMiAzOTYuOSAzMiAzNjNsMC0yN2MwLTMyLjcgMjQuNi01OS43IDU2LjMtNjMuNXoiXX0sWkR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS12aXJ1cyIsaWNvbjpbNTEyLDUxMixbXSwiZTA2NCIsIk0zMjkuNyA0NDhjLTUuMSAwLTkuNyAzLjctOS43IDguOGwwIDcuMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjMuNmMwLTEyLjYtNS4xLTI0LjUtMTMuMS0zNC4yLTMxLjgtMzguNy01MC45LTg4LjItNTAuOS0xNDIuMiAwLTEyMy43IDEwMC4zLTIyNCAyMjQtMjI0IDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMzUuOCA0Mi45YzcgOC40IDEwLjkgMTkuMSAxMC45IDMwLjEgMCAyNS45LTIxIDQ3LTQ3IDQ3bC0xIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zOC4zIDB6TTIyNCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAyMi45LTI3LjcgMzQuNC00My45IDE4LjItOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMxNi4yIDE2LjIgNC43IDQzLjktMTguMiA0My45LTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRjMjIuOSAwIDM0LjQgMjcuNyAxOC4yIDQzLjktOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwYzE2LjItMTYuMiA0My45LTQuNyA0My45IDE4LjIgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTIyLjkgMjcuNy0zNC40IDQzLjktMTguMiA5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTE2LjItMTYuMi00LjctNDMuOSAxOC4yLTQzLjkgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTIyLjkgMC0zNC40LTI3LjctMTguMi00My45IDkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTE2LjIgMTYuMi00My45IDQuNy00My45LTE4LjIgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS0zMiA4OGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LFhEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYXNzIixpY29uOls1MTIsNTEyLFsxMjk1MTddLCJmMTRlIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem01MC43LTE4Ni45TDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4yIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sUUR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1uaWIiLGljb246WzUxMiw1MTIsWzEwMDAxXSwiZjVhZCIsIk0zNjguNSAxOC4zbC01MC4xIDUwLjEgMTI1LjMgMTI1LjMgNTAuMS01MC4xYzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ0Ny43IDE4LjNjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwek0yNzkuMyA5Ny4ybC0uNSAuMS0xNDQuMSA0My4yYy0xOS45IDYtMzUuNyAyMS4yLTQyLjMgNDFMMy44IDQ0NS44Yy0yLjkgOC43LTEuOSAxOC4yIDIuNSAyNkwxNjEuNyAzMTYuNGMtMS4xLTQtMS42LTguMS0xLjYtMTIuNCAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDhjLTQuMyAwLTguNS0uNi0xMi40LTEuNkw0MC4zIDUwNS43YzcuOCA0LjQgMTcuMiA1LjQgMjYgMi41bDI2NC4zLTg4LjZjMTkuNy02LjYgMzUtMjIuNCA0MS00Mi4zbDQzLjItMTQ0LjEgLjEtLjUtMTM1LjUtMTM1LjV6Il19LEtEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93cy1kb3duIixpY29uOls1MTIsNTEyLFtdLCJlNTgxIiwiTTE4NS41IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6bTI0OCA3Mmw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDB6TTYwLjMgMjkyLjZMMzcuMSA0NzZjLTIuNCAxOS4xIDEyLjUgMzYgMzEuNyAzNmwxNTQuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTE3LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlsNjguMiAxMzYuNWM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43bDcxLjkgMGMxOS4zIDAgMzQuMi0xNi45IDMxLjctMzZMNDUyLjcgMjkyLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDI3MS45IDE2OS45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDc1LjQgMjY5LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3oiXX0sWjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvcndhcmQtZmFzdCIsaWNvbjpbNTEyLDUxMixbOTE5NywiZmFzdC1mb3J3YXJkIl0sImYwNTAiLCJNMTkuOCA0NzcuNmMxMiA1IDI1LjcgMi4yIDM0LjktNi45TDIyNCAzMDEuMyAyMjQgNDQ4YzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlMNDQ4IDMwMS4zIDQ0OCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0Ni43LTE2OS40LTE2OS40Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMyMjQgNTEuMSAyMjQgNjRMMjI0IDIxMC43IDU0LjYgNDEuNGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMCA1MS4xIDAgNjRMMCA0NDhjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnoiXX0sSkR0PVowZSxlRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvcCIsaWNvbjpbNTEyLDUxMixbXSwiZjEyNSIsIk00NDggMTA5LjNsNTQuNi01NC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDQwMi43IDY0IDE3NiA2NCAxNzYgMTI4IDMzOC43IDEyOCAxMjggMzM4LjcgMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMi0zMiAwQzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwOCAwIDAtNjQtMTYyLjcgMCAyMTAuNy0yMTAuNyAwIDMwNi43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjc0Ljd6Il19LFgwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGlza2V5LWdsYXNzIixpY29uOls0NDgsNTEyLFsxMjkzNDcsImdsYXNzLXdoaXNrZXkiXSwiZjdhMCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE5MiAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAyNTZsMC0xNjAgMzIwIDAgMCAxNjAtMzIwIDB6Il19LHRFdD1YMGUsYUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZSIsaWNvbjpbNDQ4LDUxMixbOTYzMiw5NzIzLDk3MjQsNjE1OTBdLCJmMGM4IiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnoiXX0sUTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3JpbiIsaWNvbjpbNTEyLDUxMixbMTI4NTEyLCJncmluIl0sImY1ODAiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHJFdD1RMGUsaUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY29udHJhY3QiLGljb246WzM4NCw1MTIsW10sImY1NmMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTg4IDY0Qzc0LjcgNjQgNjQgNzQuNyA2NCA4OHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNzAuMyAxNjBjLTExLjMgMC0yMS45IDUuMS0yOC45IDEzLjlMNjkuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04Ni4xIDAtMTYuMS01My42Yy00LjctMTUuNy0xOS4xLTI2LjQtMzUuNS0yNi40eiJdfSxvRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtdXAiLGljb246WzM4NCw1MTIsWzg5NjNdLCJmMTA2IiwiTTE2OS40IDEzNy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMTkyIDIwNS4zIDU0LjYgMzQyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjB6Il19LEswZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlIixpY29uOls1MTIsNTEyLFsxMjg1NzgsInNtaWxlIl0sImYxMTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NS40IDMyMS45YzIwLjQgMjggNTMuNCA0Ni4xIDkwLjYgNDYuMXM3MC4yLTE4LjEgOTAuNi00Ni4xYzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVDMzU2LjMgMzkwIDMwOS4yIDQxNiAyNTYgNDE2cy0xMDAuMy0yNi0xMjkuNC02NS45Yy03LjgtMTAuNy01LjQtMjUuNyA1LjMtMzMuNXMyNS43LTUuNCAzMy41IDUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxzRXQ9SzBlLG5FdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MtYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1NDQiLCJNMjA4IDQwLjFjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0ek04IDE0NC4xYzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em05Mi41IDE0MS40bDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDY2LjYgMjUxLjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHpNNjYuNiAyLjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMTAwLjUgMi43QzkxLjEtNi43IDc2LTYuNyA2Ni42IDIuN3pNMzUyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0yNDYuMiAzODRsMjUuOCAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDI1LjggMGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMWwtNDMtMTI5IDQ4LjMgNjUuMWMxMC41IDE0LjIgMzAuNiAxNy4yIDQ0LjggNi42czE3LjItMzAuNiA2LjYtNDQuOGwtNzAuNS05NUM0MzQgMTMyIDM5NC4zIDExMiAzNTIgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZsNDguMy02NS4xLTQzIDEyOWMtMy41IDEwLjQgNC4zIDIxLjEgMTUuMiAyMS4xeiJdfSxsRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGl2aWRlIixpY29uOls0NDgsNTEyLFsxMDEzNSwyNDddLCJmNTI5IiwiTTIyNCA0OGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTY4IDQwOGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6Il19LGNFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWZvcmsiLGljb246WzQ0OCw1MTIsW10sImUxM2IiLCJNODAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODAtMjRjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMi43Yy0yOC4zLTEyLjMtNDgtNDAuNS00OC03My4zIDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTMyIDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM2wwLTcwLjctMzIgMEM5OC4xIDI4OCA0OCAyMzcuOSA0OCAxNzZsMC0yMi43QzE5LjcgMTQxIDAgMTEyLjggMCA4MCAwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MHptMjA4IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNMjQ4IDQzMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxkRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZCIsIk00NzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI4My41IDU5LjFsMTAwLjUgOTYuOSAwIDM1Ni0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNDQtMTkuOSAwYy0xNS41IDAtMjguMS0xMi42LTI4LjEtMjguMSAwLTcuNiAzLjEtMTQuOSA4LjYtMjAuMkwyMjguNSA1OS4xQzIzNS45IDUyIDI0NS43IDQ4IDI1NiA0OHMyMC4xIDQgMjcuNSAxMS4xek0yMzIgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sdDU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY29sdW1ucyIsaWNvbjpbNTEyLDUxMixbImJhbmsiLCJpbnN0aXR1dGlvbiIsIm11c2V1bSIsInVuaXZlcnNpdHkiXSwiZjE5YyIsIk0yNzEuOSAyMC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOGMtMTIuNiA3LjItMTguOCAyMi0xNS4xIDM2UzE3LjUgMjA4IDMyIDIwOGwzMiAwIDAgMjA4IDAgMC01MS4yIDM4LjRDNC43IDQ2MC40IDAgNDY5LjkgMCA0ODAgMCA0OTcuNyAxNC4zIDUxMiAzMiA1MTJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNmwtNTEuMi0zOC40IDAtMjA4IDMyIDBjMTQuNSAwIDI3LjItOS44IDMwLjktMjMuOHMtMi41LTI4LjgtMTUuMS0zNmwtMjI0LTEyOHpNNDAwIDIwOGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6bS0xMTIgMGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6bS0xMTIgMGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6TTI1NiA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGZFdD10NSx1RXQ9dDUscEV0PXQ1LGhFdD10NSxtRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVnIixpY29uOls1NzYsNTEyLFtdLCJlNTY5IiwiTTI0IDY0bDU2IDAgMCAzODQtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMzItOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTMyLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MC04IDBDMTAuNyAxMTIgMCAxMDEuMyAwIDg4UzEwLjcgNjQgMjQgNjR6bTEwNCAwbDMyMCAwIDAgMzg0LTMyMCAwIDAtMzg0ek01NzYgODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMzIgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAzMiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwLTM4NCA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0eiJdfSxnRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1tZXJnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4NyIsIk04MCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTMyLjQgOTcuMmMyOC0xMi40IDQ3LjYtNDAuNSA0Ny42LTczLjIgMC00NC4yLTM1LjgtODAtODAtODBTMCAzNS44IDAgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDIwNS4zQzE5LjcgMzcxIDAgMzk5LjIgMCA0MzIgMCA0NzYuMiAzNS44IDUxMiA4MCA1MTJzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtODYuNmMyNi43IDIwLjEgNjAgMzIgOTYgMzJsODYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDggNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBjLTMyLjggMC02MSAxOS43LTczLjMgNDhMMjA4IDI0MGMtNDkuOSAwLTkxLTM4LjEtOTUuNi04Ni44ek04MCA0MDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zNDQgMjcyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LHhFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS10c3VuYW1pIixpY29uOls2NDAsNTEyLFtdLCJlNTE1IiwiTTI4OCAxNkMxNTUuNSAxNiA0OCAxMjMuNSA0OCAyNTZTMTU1LjUgNDk2IDI4OCA0OTZjNy40IDAgMTkuNy0yLjMgMzMuNy03LjMgMTMuOC00LjkgMjcuMS0xMS43IDM2LjctMTguOSAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTUuNCAxMS42IDM1LjMgMjEuMSA1NSAyNC40IDE5LjUgMy4zIDM3IC40IDUxLjEtMTAuMiAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI3LjMgMjAuNS01OS4yIDI0LTg3LjkgMTkuMi0yOC41LTQuOC01NS40LTE4LTc1LjktMzMuNC0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0xNC41IDEwLjktMzIuNCAxOS43LTQ5LjUgMjUuOC0xNi44IDYtMzQuOSAxMC4xLTQ5LjkgMTAuMWwtLjEgMEMxMjguOSA1NDMuOSAwIDQxNSAwIDI1NiAwIDk2LjkgMTI4LjktMzIgMjg4LTMyIDMwMS4zLTMyIDMxMi0yMS4zIDMxMi04cy0xMC43IDI0LTI0IDI0em00NC44IDE2Ni40bDk2LTcyYzExLjQtOC41IDI3LjEtOC41IDM4LjUgMGw5NS41IDcyYzggNiAxMi43IDE1LjUgMTIuNyAyNS41bC4zIDEyMS41Yy0yLjIgMS4zLTQuMyAyLjYtNi40IDQuMi00LjMgMy4xLTguNyAuOC0xMy4yLTEuNWwtMS4yLS42LS43LS4zYy01LjQtMi43LTExLjctNi42LTE4LjktMTEuNy0yOS41LTIxLjEtNjQuMy0zMS42LTk5LjEtMzEuNC0zNC4xIC4yLTY4LjEgMTAuNy05NyAzMS40LTcuOCA1LjYtMTMuOCA5LjMtMTkuMyAxMS4yTDMyMCAyMDhjMC0xMC4xIDQuNy0xOS42IDEyLjgtMjUuNnptNTQuNiAyMjkuN2MtMTQuNSAxMC45LTMyLjQgMTkuNy00OS41IDI1LjgtMTYuOCA2LTM0LjkgMTAuMS00OS45IDEwLjEtMTA2IDAtMTkyLTg2LTE5Mi0xOTJTMTgyIDY0IDI4OCA2NGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRzNjQuNSAxNDQgMTQ0IDE0NGM3LjQgMCAxOS43LTIuMyAzMy43LTcuMyAxMy44LTQuOSAyNy4xLTExLjcgMzYuNy0xOC45IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNS40IDExLjYgMzUuMyAyMS4xIDU1IDI0LjQgMTkuNSAzLjMgMzcgLjQgNTEuMS0xMC4yIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjcuMyAyMC41LTU5LjIgMjQtODcuOSAxOS4yLTI4LjUtNC44LTU1LjQtMTgtNzUuOS0zMy40LTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSxiRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1jaGFydCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyMiIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6bS0zMTIgOGwwIDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptODAtOTZsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptODAgNjRsMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LHZFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bWJyZWxsYSIsaWNvbjpbNTEyLDUxMixbXSwiZjBlOSIsIk0yNTYtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyYzEyNi4zIDE1LjcgMjI0IDEyMy41IDIyNCAyNTQgMCAzLjgtLjEgNy41LS4yIDExLjMtLjMgNi45LTUgMTIuOC0xMS43IDE0LjdzLTEzLjgtLjctMTcuNi02LjVjLTE0LjQtMjEuNC0zOC44LTM1LjUtNjYuNS0zNS41LTI5LjMgMC01NC45IDE1LjctNjguOSAzOS4zLTIuNyA0LjYtNy42IDcuNi0xMyA3LjhzLTEwLjUtMi4yLTEzLjctNi41Yy0xNC42LTE5LjgtMzgtMzIuNi02NC41LTMyLjZzLTQ5LjkgMTIuOC02NC41IDMyLjZjLTMuMiA0LjMtOC4zIDYuOC0xMy43IDYuNXMtMTAuMi0zLjItMTMtNy44Yy0xNC0yMy42LTM5LjYtMzkuMy02OC45LTM5LjMtMjcuNyAwLTUyLjEgMTQuMS02Ni41IDM1LjUtMy45IDUuNy0xMSA4LjQtMTcuNiA2LjVTLjUgMjc0LjIgLjIgMjY3LjNDLjEgMjYzLjUgMCAyNTkuOCAwIDI1NiAwIDEyNS41IDk3LjcgMTcuNyAyMjQgMmwwLTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTMyIDM2MGwwIDEwMi42YzAgNDUtMzYuNSA4MS40LTgxLjQgODEuNC0zMC44IDAtNTktMTcuNC03Mi44LTQ1bC0yLjMtNC43Yy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45czM1LTEuNSA0Mi45IDE0LjNsMi4zIDQuN2MzIDUuOSA5IDkuNiAxNS42IDkuNiA5LjYgMCAxNy40LTcuOCAxNy40LTE3LjRMMjI0IDMyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSx5RXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlsbC1yb2Nrc2xpZGUiLGljb246WzU3Niw1MTIsW10sImU1MDgiLCJNMjUyLjQgMTAzLjhsMjcgNDhjMi44IDUgOC4yIDguMiAxMy45IDguMmw1My4zIDBjNS44IDAgMTEuMS0zLjEgMTMuOS04LjJsMjctNDhjMi43LTQuOSAyLjctMTAuOCAwLTE1LjdsLTI3LTQ4Yy0yLjgtNS04LjItOC4yLTEzLjktOC4ybC01My4zIDBjLTUuOCAwLTExLjEgMy4xLTEzLjkgOC4ybC0yNyA0OGMtMi43IDQuOS0yLjcgMTAuOCAwIDE1Ljd6TTY4LjMgODdDNDMuMSA2MS44IDAgNzkuNyAwIDExNS4zTDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguMyA4N3pNNTA0LjIgNDAzLjZjNC45IDIuNyAxMC44IDIuNyAxNS43IDBsNDgtMjdjNS0yLjggOC4yLTguMiA4LjItMTMuOWwwLTUzLjNjMC01LjgtMy4xLTExLjEtOC4yLTEzLjlsLTQ4LTI3Yy00LjktMi43LTEwLjgtMi43LTE1LjcgMGwtNDggMjdjLTUgMi44LTguMiA4LjItOC4yIDEzLjlsMCA1My4zYzAgNS44IDMuMSAxMS4xIDguMiAxMy45bDQ4IDI3ek0xOTIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzg0IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHdFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNlY3JldCIsaWNvbjpbNDQ4LDUxMixbMTI4MzczXSwiZjIxYiIsIk0xNzEtMTZjLTM2LjQgMC01Ny44IDU4LjMtNjguMyAxMTJMNzIgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDMyYzAgMTcgMy4zIDMzLjIgOS4zIDQ4bC05LjMgMCAwIDAtMjAuNSAwYy0xNS4yIDAtMjcuNSAxMi4zLTI3LjUgMjcuNSAwIDMgLjUgNS45IDEuNCA4LjdsMjguOSA4Ni42QzQwLjIgMzc5LjYgMTYgNDI4LjEgMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTU0LjItMjQuMi0xMDIuNy02Mi4zLTEzNS40bDI4LjktODYuNmMuOS0yLjggMS40LTUuNyAxLjQtOC43IDAtMTUuMi0xMi4zLTI3LjUtMjcuNS0yNy41bC0yMC41IDAgMCAwLTkuMyAwYzYtMTQuOCA5LjMtMzEgOS4zLTQ4bDAtMzIgMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzAuNyAwYy0xMC40LTUzLjctMzEuOS0xMTItNjguMy0xMTItOS42IDAtMTkgMy45LTI3LjUgOC4yLTguMiA0LjEtMTguNCA3LjgtMjUuNSA3LjhzLTE3LjMtMy43LTI1LjUtNy44QzE5MC0xMi4xIDE4MC42LTE2IDE3MS0xNnptOTMuNyA0ODQuNGwtMjQuOC03MC45IDI3LjktMzIuNWMyLjctMy4yIDQuMi03LjIgNC4yLTExLjQgMC05LjctNy44LTE3LjUtMTcuNS0xNy41bC02MSAwYy05LjcgMC0xNy41IDcuOC0xNy41IDE3LjUgMCA0LjIgMS41IDguMiA0LjIgMTEuNGwyNy45IDMyLjUtMjQuOCA3MC45LTU3LTE4MC40IDM1LjcgMGMxOC40IDEwLjIgMzkuNSAxNiA2MiAxNnM0My42LTUuOCA2Mi0xNmwzNS43IDAtNTcgMTgwLjR6TTIyNCAyNTZjLTM0LjcgMC02NC4yLTIyLjEtNzUuMy01MyA1LjcgMy4yIDEyLjMgNSAxOS4zIDVsMTIuNCAwYzE2LjUgMCAzMS4xLTEwLjYgMzYuMy0yNi4yIDIuMy03IDEyLjItNyAxNC41IDAgNS4yIDE1LjYgMTkuOSAyNi4yIDM2LjMgMjYuMmwxMi40IDBjNyAwIDEzLjYtMS44IDE5LjMtNS0xMS4xIDMwLjktNDAuNiA1My03NS4zIDUzeiJdfSxNRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFnZXIiLGljb246WzUxMiw1MTIsWzEyODIyM10sImY4MTUiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptNjQgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTg4IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem0xMjggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAweiJdfSx6RXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZWZjYXNlIixpY29uOls1MTIsNTEyLFsxMjgxODhdLCJmMGIxIiwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MGwwIDk2IDUxMiAwIDAtOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6TTUxMiAzMDRsLTE5MiAwIDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtMTkyIDAgMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xMTJ6Il19LGtFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cm93ZWwtYnJpY2tzIixpY29uOls1MTIsNTEyLFtdLCJlNThhIiwiTTIyNCAzMmMwLTExLjUtNi4yLTIyLjItMTYuMi0yNy44cy0yMi4zLTUuNS0zMi4yIC40bC0xNjAgOTZDNS45IDEwNi4zIDAgMTE2LjggMCAxMjhzNS45IDIxLjcgMTUuNSAyNy40bDE2MCA5NmM5LjkgNS45IDIyLjIgNi4xIDMyLjIgLjRTMjI0IDIzNS41IDIyNCAyMjRsMC02NCAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjU2IDAgMC02NHptOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2MCAwek0wIDQxNmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTIyNC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNTYgMHoiXX0sU0V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvY2tzIixpY29uOls1MTIsNTEyLFsxMjk1MTBdLCJmNjk2IiwiTTI1Mi44IDBMMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYgMTEyIDAgMC0xNmMwLTE3LjUgNC43LTMzLjkgMTIuOC00OHpNMTI4IDExMmwwIDEyOGMwIDIwLjEtOS41IDM5LjEtMjUuNiA1MS4ybC02NCA0OGMtMjQuMiAxOC4xLTM4LjQgNDYuNi0zOC40IDc2LjggMCA1MyA0MyA5NiA5NiA5NiAxNS40IDAgMzAuNS0zLjcgNDQtMTAuNy0xNy42LTIzLjktMjgtNTMuNC0yOC04NS4zIDAtNDUuMyAyMS4zLTg4IDU3LjYtMTE1LjJsNjQtNDhjNC0zIDYuNC03LjggNi40LTEyLjhsMC0xMjgtMTEyIDB6bTE2MCAwbDAgMTI4YzAgMjAuMS05LjUgMzkuMS0yNS42IDUxLjJsLTY0IDQ4Yy0yNC4yIDE4LjEtMzguNCA0Ni42LTM4LjQgNzYuOCAwIDUzIDQzIDk2IDk2IDk2IDIwLjggMCA0MS02LjcgNTcuNi0xOS4ybDExNS4yLTg2LjRDNDYxIDM4Mi4yIDQ4MCAzNDQuMyA0ODAgMzA0bDAtMTkyLTE5MiAwek00ODAgNjRsMC0xNmMwLTI2LjUtMjEuNS00OC00OC00OEwzMzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNiAxOTIgMHoiXX0sQ0V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InQiLGljb246WzM4NCw1MTIsWzExNl0sIjU0IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NmwxMjggMCAwIDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxMRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9jaGlwIixpY29uOls1MTIsNTEyLFtdLCJmMmRiIiwiTTE3NiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNTYgMCAwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMzNS4zIDAgNjQtMjguNyA2NC02NGw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtNTYgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDBjMC0zNS4zLTI4LjctNjQtNjQtNjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MHpNMTYwIDEyOGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNiA0OGwwIDE2MCAxNjAgMCAwLTE2MC0xNjAgMHoiXX0sSjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLW1lZGljYWwiLGljb246WzU3Niw1MTIsWzEyODY1NywiYW1idWxhbmNlIl0sImYwZjkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTc2IDEzNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sVEV0PUowZSxfRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib20iLGljb246WzU3Niw1MTIsWzEyODMyOV0sImY2NzkiLCJNMzg4LjcgNC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDE2IDE2YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC0xNiAxNmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTE2LTE2Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNmwxNi0xNnpNMTc2IDE2MGMtMTAuOCAwLTIwLjggMy42LTI4LjggOS42LTE0LjEgMTAuNi0zNC4yIDcuOC00NC44LTYuNHMtNy44LTM0LjIgNi40LTQ0LjhjMTguNy0xNC4xIDQyLTIyLjQgNjcuMi0yMi40IDYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyIDAgMTcuMi0zLjkgMzMuNS0xMC44IDQ4bDQ5LjcgMGMxMi43IDAgMjQuOS01IDMzLjktMTQuMWwyMC43LTIwLjdjMTguNy0xOC43IDQ0LjEtMjkuMyA3MC42LTI5LjMgNTUuMiAwIDk5LjkgNDQuNyA5OS45IDk5LjlsMCA5Ni4xYzAgNTUuMi00NC44IDEwMC0xMDAgMTAwUzM1MiA0NDMuMiAzNTIgMzg4bDAtNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNGMwIDE5LjkgMTYuMSAzNiAzNiAzNnMzNi0xNi4xIDM2LTM2bDAtOTYuMWMwLTE5LjgtMTYuMS0zNS45LTM1LjktMzUuOS05LjUgMC0xOC42IDMuOC0yNS40IDEwLjVsLTIwLjcgMjAuN2MtMjEgMjEtNDkuNCAzMi44LTc5LjEgMzIuOGwtMjYuOCAwYzEyLjYgMTkuNiAxOS45IDQyLjggMTkuOSA2OCAwIDc1LjItNjUgMTMyLTE0MCAxMzJTNDAgNDYzLjIgNDAgMzg4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJjMCAzNS4zIDMxLjcgNjggNzYgNjhzNzYtMzIuNyA3Ni02OC0zMS43LTY4LTc2LTY4bC0yMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDh6TTMzNy4xIDYwLjFjLTExLTEzLjgtMzEuMS0xNi4yLTQ1LTUuMnMtMTYuMiAzMS4xLTUuMiA0NUMzMTIuNiAxMzIuMiAzNTQuNCAxNTIgNDAwIDE1MnM4Ny40LTE5LjggMTEzLjEtNTIuMWMxMS0xMy44IDguNy0zNC01LjItNDVzLTM0LTguNy00NSA1LjJDNDUwLjMgNzYgNDI3LjUgODggNDAwIDg4cy01MC4zLTEyLTYyLjktMjcuOXoiXX0sQUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1aXRvLW5ldCIsaWNvbjpbNjQwLDUxMixbXSwiZTUyYyIsIk01NzYgMzUyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTYgMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDQ4IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgMCAxNi0uMSAyLjVDNTk4LjYgNTY2LjYgNTg4LjQgNTc2IDU3NiA1NzZzLTIyLjYtOS40LTIzLjktMjEuNWwtLjEtMi41IDAtMTYtNDggMCAwIDE2LS4xIDIuNUM1MDIuNiA1NjYuNiA0OTIuNCA1NzYgNDgwIDU3NnMtMjIuNi05LjQtMjMuOS0yMS41bC0uMS0yLjUgMC0xNi0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC00OC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTYgNDggMCAwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MjkuOSAxNi4zYzcuNy05LjQgMjEuMy0xMS41IDMxLjQtNC4zIDEwLjEgNy4xIDEzLjEgMjAuOSA3LjQgMzEuN2wtMS4zIDIuMS0yNS45IDM4LjkgMTMuMyA1My40YzIgOC0uMSAxNi4zLTUuMyAyMi4zbC0yLjQgMi40LTQ0LjcgMzguMyAxMzAuNSAxNC41YzQyLjggNC44IDc1LjEgNDAuOSA3NS4xIDgzLjkgMCAzLjktLjQgNy43LS45IDExLjUtNy4zLTMuNS0xNS4zLTUuOC0yMy44LTYuN0w1NzYgMzA0Yy0xOC41IDAtMzUuMyA3LTQ4IDE4LjQtMTEtOS45LTI1LjEtMTYuNS00MC42LTE4LjFMNDgwIDMwNGMtMzAuMyAwLTU2LjEgMTguNy02Ni44IDQ1LjItMTIuNSA1LTIzLjIgMTMuNC0zMS4xIDI0bC0zMC4yLTQwLjEgMCA3NC43YzAgMTcuNy0xNC4zIDMyLTMyIDMyLTE2LjYgMC0zMC4yLTEyLjYtMzEuOC0yOC43bC0uMi0zLjMgMC03NC42LTMyLjMgNDMgMCAzOS44YzAgMy41LS43IDYuOS0yLjEgMTAuMWwtMS42IDMuMS00MCA2NC0xLjQgMmMtNy41IDkuNi0yMSAxMi4xLTMxLjMgNS4zLTEwLjMtNi44LTEzLjctMjAuNS04LjMtMzEuNWwxLjItMi4yIDM2LjItNTggMC00MSAuMy00Yy42LTMuOSAyLjItNy43IDQuNi0xMC45bDM5LjMtNTIuMi02Ni4yIDU5LjVjLTE3IDE1LjMtMzkgMjMuNy02MS45IDIzLjhsLTguMSAwYy00Ni42IDAtODQuNC0zNy44LTg0LjQtODQuNCAwLTQzIDMyLjQtNzkuMiA3NS4xLTgzLjlsMTMwLjUtMTQuNS00NC43LTM4LjMtMi40LTIuNGMtNS4yLTYtNy4zLTE0LjQtNS4zLTIyLjNsMTMuMy01My40LTI1LjktMzguOS0xLjItMi4xYy01LjctMTAuOC0yLjctMjQuNiA3LjQtMzEuNyAxMC4xLTcuMSAyMy43LTUuMSAzMS40IDQuM2wxLjUgMiAzMiA0OCAxLjQgMi4yYzIuOCA1LjMgMy41IDExLjYgMi4xIDE3LjZsLTEyLjMgNDkuMiA1My4zIDQ1LjcgMC0yOC44IC4yLTMuMmMxLjEtMTAuNCA3LjItMTkuNCAxNS44LTI0LjRsMC02MC41IC4zLTMuMmMxLjUtNy4zIDgtMTIuNyAxNS43LTEyLjggNy43IDAgMTQuMiA1LjUgMTUuNyAxMi44bC4zIDMuMiAwIDYwLjVjOC43IDUgMTQuOCAxNCAxNS44IDI0LjRsLjIgMy4yIDAgMjguOSA1My40LTQ1LjctMTIuMy00OS4yYy0xLjUtNS45LS43LTEyLjIgMi4xLTE3LjZsMS40LTIuMiAzMi00OCAxLjUtMnpNNTA0IDQ4OGw0OCAwIDAtNDgtNDggMCAwIDQ4eiJdfSwkRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJlc2NyaXB0aW9uLWJvdHRsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjQ4NSIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRMMCAzMnpNMzIgMTQ0bDMyMCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtNjR6Il19LGU0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1nZWFyIixpY29uOls2NDAsNTEyLFsidXNlcnMtY29nIl0sImY1MDkiLCJNMzIwIDIyNGExMDQgMTA0IDAgMSAwIDAtMjA4IDEwNCAxMDQgMCAxIDAgMCAyMDh6TTk2IDIzMmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHpNMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjQtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAwek0xNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTU2LjggMGMtNy4xLTIxLjYtNi4zLTQ0LjQgMTAuNy02NC0xNC0xNi4yLTIwLjUtMzkuNy0xMS40LTYzLjMgNi42LTE3LjEgMTUuOS0zMy4xIDI3LjQtNDcuMyA1LjQtNi42IDExLjYtMTEuNyAxOC4zLTE1LjQtMjIuMS0xMS41LTQ3LjItMTgtNzMuOC0xOC04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHptNDY0LjYtNDQuMWM2LjMtMy42IDkuNS0xMS4xIDYuOC0xOC00LjgtMTIuNC0xMS41LTI0LjEtMTkuOS0zNC40LTQuNi01LjctMTIuNy02LjctMTktMy0yMS44IDEyLjYtNDguNi0yLjgtNDguNi0yOC4xIDAtNy4zLTQuOS0xMy44LTEyLjEtMTQuOS0xMi45LTItMjYuOC0yLTM5LjcgMC03LjIgMS4xLTEyLjEgNy42LTEyLjEgMTQuOSAwIDI1LjItMjYuOCA0MC43LTQ4LjYgMjguMS02LjMtMy42LTE0LjQtMi42LTE5IDMtOC40IDEwLjMtMTUuMSAyMi0xOS45IDM0LjQtMi42IDYuOCAuNSAxNC4zIDYuOCAxNy45IDIxLjkgMTIuNiAyMS45IDQzLjUgMCA1Ni4yLTYuMyAzLjYtOS41IDExLjEtNi44IDE3LjkgNC44IDEyLjQgMTEuNSAyNC4xIDE5LjkgMzQuNCA0LjYgNS43IDEyLjcgNi43IDE5IDMgMjEuOC0xMi42IDQ4LjYgMi45IDQ4LjYgMjguMSAwIDcuMyA0LjkgMTMuOCAxMi4xIDE0LjkgMTIuOSAyIDI2LjggMiAzOS43IDAgNy4yLTEuMSAxMi4xLTcuNiAxMi4xLTE0LjkgMC0yNS4yIDI2LjgtNDAuNyA0OC42LTI4LjEgNi4zIDMuNiAxNC40IDIuNiAxOS0zIDguNC0xMC4zIDE1LjEtMjIgMTkuOS0zNC40IDIuNi02LjgtLjUtMTQuMy02LjgtMTcuOS0yMS45LTEyLjYtMjEuOS00My41IDAtNTYuMnpNNDcyIDQxNmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSxERXQ9ZTRlLEVFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NSIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LE5FdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXVzZSIsaWNvbjpbMzg0LDUxMixbOTIwOF0sImYwNGMiLCJNNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyem0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzNTJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHoiXX0sbTc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhZmYtc25ha2UiLGljb246WzQ0OCw1MTIsWyJyb2QtYXNjbGVwaXVzIiwicm9kLXNuYWtlIiwic3RhZmYtYWVzY3VsYXBpdXMiXSwiZTU3OSIsIk0xOTIgMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjQgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMTYgMCAwLTY0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMCAxOTIgMzIgMGM1MyAwIDk2IDQzIDk2IDk2IDAgNDcuNi0zNC42IDg3LjEtODAgOTQuN2wwLTY3YzkuNi01LjUgMTYtMTUuOSAxNi0yNy43IDAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjQtMzIgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04Ny4xIDgwLTk0LjdsMCA2N2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjcgMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTE5Mi03Mi42IDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJsLTE2IDBDMjEuNSAxMjggMCAxMDYuNSAwIDgwUzIxLjUgMzIgNDggMzJsMTQ0IDB6Il19LFBFdD1tNyxJRXQ9bTcsRkV0PW03LE9FdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWdneS1iYW5rIixpY29uOls1NzYsNTEyLFtdLCJmNGQzIiwiTTI4OC0zMmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpNNDggMzA0YzAtNzAuMSA0Ny0xMzEuNCAxMTcuMS0xNjQuOSAyNS4zIDQxLjMgNzAuOSA2OC45IDEyMi45IDY4LjkgNTUuNyAwIDEwNC4xLTMxLjcgMTI4LTc4IDE1LjgtMTEuMyAzNS4xLTE4IDU2LTE4bDE5LjUgMGMxMC40IDAgMTggOS44IDE1LjUgMTkuOWwtMTcuMSA2OC4zYzkuOSAxMi40IDE4LjIgMjUuNyAyNC40IDM5LjhsMjEuNyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00MCAwYy0xNi41IDIyLTM4LjUgMzkuNi02NCA1MC43bDAgMjkuM2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzMgMGMtMTQuMyAwLTI2LjgtOS41LTMwLjgtMjMuMmwtNy4xLTI0LjgtODIuMyAwLTcuMSAyNC44QzIzNS44IDUwMi41IDIyMy4zIDUxMiAyMDkgNTEybC0zMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI5LjNDODcuNSA0MjYgNDggMzY5LjYgNDggMzA0em0zNzYgMTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxCRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9udW1lbnQiLGljb246WzM4NCw1MTIsW10sImY1YTYiLCJNMjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw5NSA0N2MtNC4xIDQuMS02LjUgOS40LTcgMTUuMUw1OC40IDQ0OCA0OCA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjQgMC0yOS43LTM4NS44Yy0uNC01LjctMi45LTExLjEtNy0xNS4xTDIwOS0zM3pNMTI4IDI5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sdDRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy1yaWdodCIsaWNvbjpbNDQ4LDUxMixbMTg3LCJhbmdsZS1kb3VibGUtcmlnaHQiXSwiZjEwMSIsIk00MzkuMSAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzcxLjIgMjU2IDIzMy45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6bS0zNTIgMTYwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDE3OS4yIDI1NiA0MS45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAweiJdfSxSRXQ9dDRlLEE3PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRlc2t0b3AiLGljb246WzUxMiw1MTIsWzEyODQyMSw2MTcwNCwiZGVza3RvcC1hbHQiXSwiZjM5MCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE0NCAwLTE2IDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAtMTYtNDggMTQ0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDk2bDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LEhFdD1BNyxxRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTU3IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgNzggNzEuNWMtNjkuMyAyOS0xMTggOTcuNC0xMTggMTc3LjIgMCA0OS4zIDE4LjYgOTQuMyA0OS4xIDEyOC4zTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN3oiXX0sVkV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJldHdlZXQiLGljb246WzU3Niw1MTIsW10sImYwNzkiLCJNMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsMzIgMCAwIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yMjQgMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NHpNNDU3LjQgNDcwLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNTU2LjkgMzUyIDU0NCAzNTJsLTMyIDAgMC0yMjRjMC01My00My05Ni05Ni05NkwyODggMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjQtMzIgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsNjQgNjR6Il19LGE0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdlYXIiLGljb246WzY0MCw1MTIsWyJ1c2VyLWNvZyJdLCJmNGZlIiwiTTI1Ni41IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNyAzMDRsNTkuNCAwIDEuNSAwYy0xMi45IDI2LjgtNy44IDU4LjIgMTEuNSA3OS41LTIwLjIgMjIuMy0yNC44IDU1LjgtOS40IDgzLjRsMjIuNSA0MC40Yy45IDEuNiAxLjkgMy4yIDIuOSA0LjdsLTIzNyAwYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM3ptMjA1LjktNTYuNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNi4xYzAgMTguOSAyNC4xIDMyLjggNDAuNSAyMy40bDUtMi45YzExLjYtNi43IDI2LjUtMi42IDMzIDkuMWwyMi40IDQwLjJjNi4yIDExLjIgMi42IDI1LjItOC4yIDMybC00LjcgMi45Yy0xNi4yIDEwLjEtMTYuMiAzOS45IDAgNTAuMWw0LjYgMi45YzEwLjggNi44IDE0LjUgMjAuOCA4LjMgMzJMNjA3IDQ4My44Yy02LjUgMTEuNy0yMS40IDE1LjktMzMgOS4xbC00LjktMi45Yy0xNi40LTkuNS00MC41IDQuNS00MC41IDIzLjRsMCA2LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNS45YzAtMTktMjQuMi0zMy00MC43LTIzLjVsLTQuOCAyLjhjLTExLjYgNi43LTI2LjQgMi42LTMzLTkuMWwtMjIuNi00MC40Yy02LjItMTEuMi0yLjYtMjUuMyA4LjMtMzIuMWw0LjQtMi43YzE2LjMtMTAuMSAxNi4zLTQwLjEgMC01MC4ybC00LjUtMi44Yy0xMC45LTYuOC0xNC41LTIwLjktOC4zLTMyLjFsMjIuNS00MC4zYzYuNS0xMS43IDIxLjQtMTUuOCAzMi45LTkuMWw0LjggMi44YzE2LjUgOS41IDQwLjctNC41IDQwLjctMjMuNWwwLTUuOXptOTkuOSAxMzYuMmE1MiA1MiAwIDEgMCAtMTA0IDAgNTIgNTIgMCAxIDAgMTA0IDB6Il19LFVFdD1hNGUsakV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci1hbGwiLGljb246WzQ0OCw1MTIsW10sImY4NGMiLCJNMzg0IDk2bDAgMTI4LTEyOCAwIDAtMTI4IDEyOCAwem0wIDE5MmwwIDEyOC0xMjggMCAwLTEyOCAxMjggMHpNMTkyIDIyNGwtMTI4IDAgMC0xMjggMTI4IDAgMCAxMjh6TTY0IDI4OGwxMjggMCAwIDEyOC0xMjggMCAwLTEyOHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sV0V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvaW5zIixpY29uOls1MTIsNTEyLFtdLCJmNTFlIiwiTTEyOCA5NmwwLTE2YzAtNDQuMiA4Ni04MCAxOTItODBTNTEyIDM1LjggNTEyIDgwbDAgMTZjMCAzMC42LTQxLjMgNTcuMi0xMDIgNzAuNy0yLjQtMi44LTQuOS01LjUtNy40LTgtMTUuNS0xNS4zLTM1LjUtMjYuOS01Ni40LTM1LjUtNDEuOS0xNy41LTk2LjUtMjcuMS0xNTQuMi0yNy4xLTIxLjkgMC00My4zIDEuNC02My44IDQuMS0uMi0xLjMtLjItMi43LS4yLTQuMXpNNDMyIDM1M2wwLTQ2LjJjMTUuMS0zLjkgMjkuMy04LjUgNDIuMi0xMy45IDEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40YzAgMjYuOC0zMS41IDUwLjUtODAgNjV6bTAtOTZsMC0zM2MwLTQuNS0uNC04LjgtMS0xMyAxNS41LTMuOSAzMC04LjYgNDMuMi0xNC4yczI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40YzAgMjYuOC0zMS41IDUwLjUtODAgNjV6TTAgMjQwbDAtMTZjMC00NC4yIDg2LTgwIDE5Mi04MHMxOTIgMzUuOCAxOTIgODBsMCAxNmMwIDQ0LjItODYgODAtMTkyIDgwUzAgMjg0LjIgMCAyNDB6bTM4NCA5NmMwIDQ0LjItODYgODAtMTkyIDgwUzAgMzgwLjIgMCAzMzZsMC0xNS40YzExLjYgOC4xIDI0LjUgMTQuNyAzNy44IDIwLjMgNDEuOSAxNy41IDk2LjUgMjcuMSAxNTQuMiAyNy4xczExMi4zLTkuNyAxNTQuMi0yNy4xYzEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40em0wIDgwLjZsMCAxNS40YzAgNDQuMi04NiA4MC0xOTIgODBTMCA0NzYuMiAwIDQzMmwwLTE1LjRjMTEuNiA4LjEgMjQuNSAxNC43IDM3LjggMjAuMyA0MS45IDE3LjUgOTYuNSAyNy4xIDE1NC4yIDI3LjFzMTEyLjMtOS43IDE1NC4yLTI3LjFjMTMuMi01LjUgMjYuMS0xMi4yIDM3LjgtMjAuM3oiXX0sR0V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlIixpY29uOls1NzYsNTEyLFs5ODk0XSwiZjIyOSIsIk00MTYtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTAuNyAwLTU4LjcgNTguNy0xNy40LTE3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE3LjQgMTcuNC0yMyAyM2MtMjguNC0xOS41LTYyLjctMzEtOTkuOC0zMS05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzZjMC0zNy0xMS40LTcxLjQtMzEtOTkuOGwyMy0yMyAxNy40IDE3LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w0NTMuMyAxMzYgNTEyIDc3LjMgNTEyIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDU3NiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDQxNi0zMnpNMTI4IDMwNGExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAweiJdfSxyNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlLWFuZ2xlIixpY29uOls1NzYsNTEyLFsiaGFuZHMtaGVscGluZyJdLCJmNGM0IiwiTTI2OC45IDUzLjJMMTUyLjMgMTgyLjhjLTQuNiA1LjEtNC40IDEzIC41IDE3LjkgMzAuNSAzMC41IDgwIDMwLjUgMTEwLjUgMGwzMS44LTMxLjhjNC4yLTQuMiA5LjUtNi41IDE0LjktNi45IDYuOC0uNiAxMy44IDEuNyAxOSA2LjlMNTA1LjYgMzQ0IDU3NiAyODggNTc2IDAgNDY0IDY0IDQ0MC4yIDQ4LjFDNDI0LjQgMzcuNiA0MDUuOSAzMiAzODYuOSAzMmwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjF6TTExNi42IDE1MC43TDIyMy40IDMyIDE4My44IDMyYy0yNS41IDAtNDkuOSAxMC4xLTY3LjkgMjguMUwwIDE5MiAwIDU0NCAxNDQgNDA4IDE1Ni40IDQxOC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMxOS4xIDAgMzcuOC00LjMgNTQuOC0xMi4zTDM1OSA0MDljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMiAzMiAxNy41LTE3LjVjOC45LTguOSAxMS41LTIxLjggNy42LTMzLjFsLTEzNy45LTEzNi44LTE0LjkgMTQuOWMtNDkuMyA0OS4zLTEyOS4xIDQ5LjMtMTc4LjQgMC0yMy0yMy0yMy45LTU5LjktMi4yLTg0eiJdfSxZRXQ9cjRlLFpFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duIixpY29uOlszODQsNTEyLFs4NTk1XSwiZjA2MyIsIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCA0MDIuNyAyMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzNzAuNy0xMDUuNC0xMDUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHoiXX0saTRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLWRvdCIsaWNvbjpbMzg0LDUxMixbIm1hcC1tYXJrZXItYWx0Il0sImYzYzUiLCJNMCAxODguNkMwIDg0LjQgODYgMCAxOTIgMFMzODQgODQuNCAzODQgMTg4LjZjMCAxMTkuMy0xMjAuMiAyNjIuMy0xNzAuNCAzMTYuOC0xMS44IDEyLjgtMzEuNSAxMi44LTQzLjMgMC01MC4yLTU0LjUtMTcwLjQtMTk3LjUtMTcwLjQtMzE2Ljh6TTE5MiAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6Il19LFhFdD1pNGUsUUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTVkIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjI4YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAxIDAgMCA0MHptMC0xODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LEtFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb29raWUtYml0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjU2NCIsIk0yNTcuNSAyNy42Yy0uOC01LjQtNC45LTkuOC0xMC4zLTEwLjYtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45LS45LTUuMy01LjMtOS4zLTEwLjYtMTAuMS01MS41LTguMi05Mi44LTQ3LjEtMTA0LjUtOTcuNC0xLjgtNy42LTgtMTMuNC0xNS43LTE0LjYtNTQuNi04LjctOTcuNy01Mi0xMDYuMi0xMDYuOHpNMjA4IDE0NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE0NCAzMzZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjI0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sbzRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyLXdyZW5jaCIsaWNvbjpbNTc2LDUxMixbInRvb2xzIl0sImY3ZDkiLCJNNzAuOC02LjdjNS40LTUuNCAxMy44LTYuMiAyMC4yLTJMMjA5LjkgNzAuNWM4LjkgNS45IDE0LjIgMTUuOSAxNC4yIDI2LjZsMCA0OS42IDkwLjggOTAuOGMzMy4zLTE1IDczLjktOC45IDEwMS4yIDE4LjVMNTQyLjIgMzgyLjFjMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlsLTYwLjEgNjAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjg4LjEgMzg0Yy0yNy40LTI3LjQtMzMuNS02Ny45LTE4LjUtMTAxLjJsLTkwLjgtOTAuOC00OS42IDBjLTEwLjcgMC0yMC43LTUuMy0yNi42LTE0LjJMMjMuNCA1OC45Yy00LjItNi4zLTMuNC0xNC44IDItMjAuMkw3MC44LTYuN3ptMTQ1IDMwMy41Yy02LjMgMzYuOSAyLjMgNzUuOSAyNi4yIDEwNy4ybC05NC45IDk1Yy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDBzLTI4LjEtNzMuNyAwLTEwMS44bDEzNS40LTEzNS41IDM1LjIgMzUuMXpNMzg0LjEgMGMyMC4xIDAgMzkuNCAzLjcgNTcuMSAxMC41IDEwIDMuOCAxMS44IDE2LjUgNC4zIDI0LjFMMzg4LjggOTEuM2MtMyAzLTQuNyA3LjEtNC43IDExLjNsMCA0MS40YzAgOC44IDcuMiAxNiAxNiAxNmw0MS40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w1Ni43LTU2LjdjNy42LTcuNSAyMC4zLTUuNyAyNC4xIDQuMyA2LjggMTcuNyAxMC41IDM3IDEwLjUgNTcuMSAwIDQzLjItMTcuMiA4Mi4zLTQ1IDExMS4xbC00OS4xLTQ5LjFjLTMzLjEtMzMtNzguNS00NS43LTEyMS4xLTM4LjRsLTU2LjgtNTYuOCAwLTI5LjctLjItNWMtLjgtMTIuNC00LjQtMjQuMy0xMC41LTM0LjkgMjkuNC0zNSA3My40LTU3LjIgMTIyLjctNTcuM3oiXX0sSkV0PW80ZSxlTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kZW50IixpY29uOls0NDgsNTEyLFtdLCJmMDNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTEyNy44IDI2OC42TDI1LjggMzQ3LjlDMTUuMyAzNTYuMSAwIDM0OC42IDAgMzM1LjNMMCAxNzYuN2MwLTEzLjMgMTUuMy0yMC44IDI1LjgtMTIuNmwxMDEuOSA3OS4zYzguMiA2LjQgOC4yIDE4LjkgMCAyNS4zeiJdfSxzNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFycyIsaWNvbjpbNDQ4LDUxMixbIm5hdmljb24iXSwiZjBjOSIsIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSx0TnQ9czRlLG40ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1wcmF5aW5nIixpY29uOls2NDAsNTEyLFsicHJheWluZy1oYW5kcyJdLCJmNjg0IiwiTTIyNCAyOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTIuNiA4OC4yLTExOS43YzEzLjEtMTcuOCA5LjMtNDIuOC04LjUtNTUuOXMtNDIuOC05LjMtNTUuOSA4LjVMMTA2LjUgMTQyLjlDODkuMyAxNjYuMiA4MCAxOTQuNSA4MCAyMjMuNmwwIDExMC43LTU4LjEgMTkuNEM4LjggMzU4IDAgMzcwLjIgMCAzODRsMCA5NmMwIDEwIDQuNyAxOS41IDEyLjcgMjUuNXMxOC40IDggMjguMSA1LjJsMTU0LjQtNDQuMWM1NS0xNS43IDkyLjgtNjUuOSA5Mi44LTEyMy4xTDI4OCAyMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA3MnptMTkyIDBsMC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExOS42YzAgNTcuMiAzNy45IDEwNy40IDkyLjggMTIzLjFsMTU0LjQgNDQuMWM5LjcgMi44IDIwIC44IDI4LjEtNS4yUzY0MCA0OTAgNjQwIDQ4MGwwLTk2YzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC01OC4xLTE5LjQgMC0xMTAuN2MwLTI5LTkuMy01Ny4zLTI2LjUtODAuN0w0NDAuMiAxNi4zQzQyNy4xLTEuNSA0MDIuMS01LjMgMzg0LjMgNy44cy0yMS42IDM4LjEtOC41IDU1LjlMNDY0IDE4My40IDQ2NCAyOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LGFOdD1uNGUsck50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzZXMiLGljb246WzY0MCw1MTIsW10sImUwNzYiLCJNMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAzMC41IDM2LjkgNDUuOCA1OC41IDI0LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjEuNiAyMS42LTYuMyA1OC41IDI0LjIgNTguNSAxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmMtMzAuNSAwLTQ1LjggMzYuOS0yNC4yIDU4LjUgMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBjLTIxLjYtMjEuNi01OC41LTYuMy01OC41IDI0LjIgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0zMC41LTM2LjktNDUuOC01OC41LTI0LjItMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNDNzcuOCAyNjAuOSA2Mi41IDIyNCAzMiAyMjQgMTQuMyAyMjQgMCAyMDkuNyAwIDE5MnMxNC4zLTMyIDMyLTMyYzMwLjUgMCA0NS44LTM2LjkgMjQuMi01OC41LTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBDMTIzLjEgNzcuOCAxNjAgNjIuNSAxNjAgMzIgMTYwIDE0LjMgMTc0LjMgMCAxOTIgMHpNMTQ0IDE3NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTEyOCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yNDggNDBjMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTUwNCAzODRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0saU50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1mbGFnIixpY29uOls1NzYsNTEyLFtdLCJlNTZlIiwiTTI1Ni04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTcyIDAgMCAxOS4yIDEyOCA3Ni44IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyOC03Ni44IDAtOTEuMnpNMjQwIDM4NGwwIDgwIDk2IDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNMTEyIDQxNmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDQxNmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnptLTIyNCAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sb050PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWRlbWFyayIsaWNvbjpbNjQwLDUxMixbODQ4Ml0sImYyNWMiLCJNMzQ2LjYgMTEwLjJjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzI4OCAxMTMuOSAyODggMTI4bDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNTAuMyA2OS40IDEwNC4xYzUuOSA4LjkgMTUuOSAxNC4yIDI2LjYgMTQuMnMyMC43LTUuMyAyNi42LTE0LjJMNTQ0IDIzMy43IDU0NCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1NmMwLTE0LjEtOS4yLTI2LjUtMjIuNy0zMC42cy0yOC4xIDEuMS0zNS45IDEyLjlMNDQ4IDI2Mi4zIDM0Ni42IDExMC4yek0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmw2NCAwIDAgMjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA5NnoiXX0sc050PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtYnVybmVyIixpY29uOls1MTIsNTEyLFtdLCJlNGYxIiwiTTI4MS43IDQ4LjNMMjk0IDM0LjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMSAyNi4yIDg4LjEgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjIgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXMxMy40IDMuMiAxOC44IDcuNWMxNC40IDExLjQgMzguOSA0MC43IDM4LjkgNDAuN3pNMzIwIDI0MC4yYzAtMzYuNS0zNy03My01NC44LTg4LjQtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjggNTEuOS01NC44IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpNOTIuOCAzMjBjMzcuNyA0OC4zIDk2LjEgODAgMTYzLjIgODAgNjYuNSAwIDEyNS4xLTMxLjcgMTYzLTgwbDQ1IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDQuOCAwek00NTYgNDAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGw0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUyMiwic21pbGUtYmVhbSJdLCJmNWI4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxuTnQ9bDRlLGxOdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LWxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImU1N2YiLCJNLS41IDExM2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNzItNzJjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMSAzMSAzMTAuMSAwIDU0LjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwLS4xIDAtMjYyIDAgMzEgMzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNzItNzJ6TTM3LjEgNDc2TDYwLjMgMjkyLjZjMS4yLTkuNyA2LjgtMTguMyAxNS4xLTIzLjNMMjM4LjggMTcwYzEwLjItNi4yIDIyLjktNi4yIDMzLjEtLjFsMTY1LjUgOTkuNGM4LjQgNSAxNCAxMy43IDE1LjMgMjMuNEw0NzUuOSA0NzZjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2bC03MS45IDBjLTEyLjEgMC0yMy4yLTYuOC0yOC42LTE3LjdMMjc1LjQgMzU3LjljLTEuOC0zLjYtNS41LTUuOS05LjUtNS45LTUuOSAwLTEwLjYgNC43LTEwLjYgMTAuNmwwIDExNy40YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY4LjggNTEyYy0xOS4zIDAtMzQuMi0xNi45LTMxLjctMzZ6Il19LGNOdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3V0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjRkNyIsIk01MTIgOTZjMCA1MC4yLTU5LjEgMTI1LjEtODQuNiAxNTUtMy44IDQuNC05LjQgNi4xLTE0LjUgNUwzMjAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTI3Ni40IDBjOC43LTkuOSAxOS4zLTIyLjYgMzAtMzYuOCA2LjMtOC40IDEyLjgtMTcuNiAxOS0yNy4yTDQxNiA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZsMzkuOCAwYy0yMS0zMS41LTM5LjgtNjcuNy0zOS44LTk2IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZ6TTExNy4xIDQ4OS4xYy0zLjggNC4zLTcuMiA4LjEtMTAuMSAxMS4zbC0xLjggMi0uMi0uMmMtNiA0LjYtMTQuNiA0LTIwLTEuOC0yNS4yLTI3LjQtODUtOTcuOS04NS0xNDguNCAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgMzAtMjEuMSA2Ny00My41IDk3LjktMTAuNyAxNC43LTIxLjcgMjgtMzAuOCAzOC41bC0uNiAuN3pNMTI4IDM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek00MTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYzRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy11cCIsaWNvbjpbMzg0LDUxMixbImFuZ2xlLWRvdWJsZS11cCJdLCJmMTAyIiwiTTIxNC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAxMDkuMyAzMjkuNCAyNDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwem0xNjAgMzUybC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMzAxLjMgMzI5LjQgNDM4LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM3oiXX0sZE50PWM0ZSxmTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVja2V0IixpY29uOls0NDgsNTEyLFtdLCJlNGNmIiwiTTQ0My43IDIwOGMyLjcgNC43IDQuMyAxMC4yIDQuMyAxNiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtNS4xIDAtMjIuNCAyMTNjLTIuNiAyNC40LTIzLjIgNDMtNDcuOCA0M2wtMjMzLjYgMGMtMjQuNiAwLTQ1LjItMTguNS00Ny44LTQzTDM3LjEgMjU2IDMyIDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC01LjggMS42LTExLjMgNC4zLTE2bDQzOS40IDB6TTIyNC0xNmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGwwIDMyLTQ4IDAgMC0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMyLTQ4IDAgMC0zMkM4MCA0OC41IDE0NC41LTE2IDIyNC0xNnoiXX0sdU50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxlc3MtdGhhbi1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzNyIsIk00MjYuMSA5NC40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJsLTM4NCAxMjhDOC44IDE2NiAwIDE3OC4yIDAgMTkyczguOCAyNiAyMS45IDMwLjRsMzg0IDEyOGMxNi44IDUuNiAzNC45LTMuNSA0MC41LTIwLjJzLTMuNS0zNC45LTIwLjItNDAuNUwxMzMuMiAxOTIgNDI2LjEgOTQuNHpNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNnoiXX0scE50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2IDUxMiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0em02NC0yODhMMCAxNjAgMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTZ6Il19LGhOdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tdGhyb3VnaC13aW5kb3ciLGljb246WzY0MCw1MTIsW10sImU1YTkiLCJNNjQgNjRsMjI0IDAgMCA5LjhjMCAzOS0yMy43IDc0LTU5LjkgODguNC02MC41IDI0LjItMTAwLjEgODIuNy0xMDAuMSAxNDcuOWwwIDczLjgtNjQgMCAwLTMyMHptMjg4IDBsMjI0IDAgMCAzMjAtNjcuNyAwLTMuNy00LjUtNzUuMi05MC4yYy05LjEtMTAuOS0yMi42LTE3LjMtMzYuOS0xNy4zbC03MS4xIDAtNDEtNjMuMWMtLjMtLjUtLjYtMS0xLTEuNCA0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHptNzMgMzIwbC0yNi42IDAgNDIuNyA2NCAxNTAuOSAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI2MC4yIDAgMzMuMiA0OS44YzkuOCAxNC43IDI5LjcgMTguNyA0NC40IDguOXMxOC43LTI5LjcgOC45LTQ0LjRsLTg0LjItMTI2LjIgNzQuNiAwIDQwIDQ4em0tMTU5LjUgMGwtNzMuNSAwIDAtNzMuOGMwLTEwLjIgMS42LTIwLjEgNC43LTI5LjVMMjY1LjUgMzg0ek0xOTIgMTI4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LG1OdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2ZiIsIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyNy45LTExNS4xYzE4LjMtMTYuNCA0Ni0xNi40IDY0LjIgMEw0NDggMTI4IDUxMiAxMjhjMzMgMCA2MC4yIDI1IDYzLjYgNTcuMi0xNC43LTUuOS0zMC44LTkuMi00Ny42LTkuMi03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6TTMzMi4zIDM0MS41Yy02LTMuNS0xMi45LTUuNS0yMC4zLTUuNWwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA4OCA5NiAwIDAtNjQuMWMwLTIwLjggNC40LTQwLjUgMTIuMy01OC40ek0xMTIgMzg0YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2em0yMjQtNDhhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek01NjAgMzUybDAtNDcuOWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMHptLTExMiAyLjdsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjN6Il19LGdOdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1M2IiLCJNMjA0IDQwLjFjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0ek00IDE0NC4xYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek05Ni41IDI4NS41Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMOTYuNSAyODUuNXpNNjIuNiAyLjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNjIuNiAzNi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNMzUyLjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTQ3OC43IDI5OS4xbC00Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3NS4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVjMjUuMi0zMy45IDY1LTUzLjkgMTA3LjItNTMuOXM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnoiXX0sZDRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlZnQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctYWx0LWxlZnQiXSwiZjMwYSIsIk05LjQgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTMTkyIDExNS4xIDE5MiAxMjhsMCA2NCAzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMzYgMCAwIDY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xMjgtMTI4eiJdfSx4TnQ9ZDRlLGY0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1jcm9zc2hhaXJzIixpY29uOls1NzYsNTEyLFsibG9jYXRpb24iXSwiZjYwMSIsIk0yODgtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOC4zYzk4LjEgMTQgMTc1LjcgOTEuNiAxODkuNyAxODkuN2wxOC4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjMgMGMtMTQgOTguMS05MS42IDE3NS43LTE4OS43IDE4OS43bDAgMTguM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjNDMTU3LjkgNDYzLjcgODAuMyAzODYuMSA2Ni4zIDI4OEw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguMyAwQzgwLjMgMTI1LjkgMTU3LjkgNDguMyAyNTYgMzQuM0wyNTYgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEyOCAyNTZhMTYwIDE2MCAwIDEgMCAzMjAgMCAxNjAgMTYwIDAgMSAwIC0zMjAgMHptMTYwLTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxiTnQ9ZjRlLHU0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZG90cy1mcm9tLWxpbmUiLGljb246WzUxMiw1MTIsWyJkaWFnbm9zZXMiXSwiZjQ3MCIsIk0xODQgNzJhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwek0xNjAgMjk5LjNjLTE5LjkgMjIuNi0zMiA1Mi4yLTMyIDg0LjdsMCAzMi02NCAwIDAtMzJjMC0xMDYgODYtMTkyIDE5Mi0xOTJzMTkyIDg2IDE5MiAxOTJsMCAzMi02NCAwIDAtMzJjMC0zMi41LTEyLjEtNjIuMS0zMi04NC43bDAgMTE2LjctMTkyIDAgMC0xMTYuN3pNMjMyIDM4NGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4LTEwNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0yNCA0NjRsNDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek02NCAxODRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDI0IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sdk50PXU0ZSx2VT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1zaW1wbGUtaGlnaCIsaWNvbjpbNTEyLDUxMixbNjE2NjgsInRhY2hvbWV0ZXIiLCJ0YWNob21ldGVyLWZhc3QiXSwiZjYyYSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0xNi4yLTYtMzEuMS0xNi00Mi4zbDY5LjUtMTM4LjljNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4ycy0yNi4zLTEuMS0zMi4yIDEwLjdMMjYxLjEgMjg4LjJjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjQgNjQtMjguNyA2NC02NHoiXX0seU50PXZVLHdOdD12VSxwNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLWxlZnQiLGljb246WzQ0OCw1MTIsWzE3MSwiYW5nbGUtZG91YmxlLWxlZnQiXSwiZjEwMCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHptMzUyLTE2MGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDI2OS4zIDI1NiA0MDYuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMHoiXX0sTU50PXA0ZSxoNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtZG93biIsaWNvbjpbNTEyLDUxMixbODU5NywxMTAyMSwiYXJyb3dzLWFsdC12Il0sImYzMzgiLCJNNDA2LjYgNTAyLjZsOTYtOTZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzUyIDQ4MCAzNTJsLTY0IDAgMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMjAtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDB6TTE1MC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsNjQgMCAwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwIDY0IDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtOTYtOTZ6Il19LHpOdD1oNGUsbTRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktZW1wdHkiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTAiXSwiZjI0NCIsIk0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyMjRjMCA4LjggNy4yIDE2IDE2IDE2bDQxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTIyNGMwLTguOC03LjItMTYtMTYtMTZsLTQxNiAwek0zMiAxNzZjMC00NC4yIDM1LjgtODAgODAtODBsNDE2IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgNDhjMCA0NC4yLTM1LjggODAtODAgODBsLTQxNiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTIyNHoiXX0sa050PW00ZSxTTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE2IDY0bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0xNzYgMTI4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MC0xNzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sQ050PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvb2tpZSIsaWNvbjpbNTEyLDUxMixbMTI3ODUwXSwiZjU2MyIsIk0yNDcuMiAxN2MtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45bC0xNC42LTgyLjhjLTMuOS0yMi4xLTE0LjYtNDIuMy0zMC43LTU3LjlMMzg4LjkgNTcuNWMtMTYuMS0xNS42LTM2LjYtMjUuNi01OC43LTI4LjdMMjQ3LjIgMTd6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LExOdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2giLGljb246WzQ0OCw1MTIsWzkyMDFdLCJmMmYyIiwiTTE2OC41IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDI1LjNjLTEwOCAxMS45LTE5MiAxMDMuNS0xOTIgMjE0LjcgMCAxMTkuMyA5Ni43IDIxNiAyMTYgMjE2czIxNi05Ni43IDIxNi0yMTZjMC0zOS44LTEwLjgtNzcuMS0yOS42LTEwOS4ybDI4LjItMjguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMjMuNCAyMy40Yy0zMi45LTMwLjItNzUuMi01MC4zLTEyMi01NS41bDAtMjUuMyAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptODAgMTg0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LFROdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlamVjdCIsaWNvbjpbNDQ4LDUxMixbOTE2N10sImYwNTIiLCJNMjI0IDMyYzEzLjUgMCAyNi4zIDUuNiAzNS40IDE1LjZsMTc2IDE5MmMxMi45IDE0IDE2LjIgMzQuMyA4LjYgNTEuOFM0MTkgMzIwIDQwMCAzMjBMNDggMzIwYy0xOSAwLTM2LjMtMTEuMi00My45LTI4LjdzLTQuMy0zNy43IDguNi01MS44bDE3Ni0xOTJDMTk3LjcgMzcuNiAyMTAuNSAzMiAyMjQgMzJ6TTAgNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6Il19LF9OdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYXRlbGxpdGUtZGlzaCIsaWNvbjpbNTEyLDUxMixbMTI4MjI1XSwiZjdjMCIsIk0yMzIgMGMxNTQuNiAwIDI4MCAxMjUuNCAyODAgMjgwIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTI4LjEtMTAzLjktMjMyLTIzMi0yMzItMTMuMyAwLTI0LTEwLjctMjQtMjRTMjE4LjcgMCAyMzIgMHpNMjA4IDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMDEuNiAwIDE4NCA4Mi40IDE4NCAxODQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC03NS4xLTYwLjktMTM2LTEzNi0xMzYtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI2LjQgMTQyLjdjOC44LTE3LjkgMzIuNC0xOS45IDQ2LjUtNS44bDEyOC41IDEyOC41IDMyLTMyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTMyIDMyIDEyOC41IDEyOC41YzE0LjEgMTQuMSAxMiAzNy42LTUuOCA0Ni41LTM0LjIgMTYuOS03Mi42IDI2LjQtMTEzLjMgMjYuNC0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2IDAtNDAuNyA5LjUtNzkuMiAyNi40LTExMy4zeiJdfSxnNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1yb2xsaW5nLWV5ZXMiLGljb246WzUxMiw1MTIsWzEyODU4MCwibWVoLXJvbGxpbmctZXllcyJdLCJmNWE1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMzUybDEyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMzItMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40em0xMjggNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40IDAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSxBTnQ9ZzRlLHg0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0LWNoZWNrIixpY29uOls1MTIsNTEyLFsidGFza3MiXSwiZjBhZSIsIk0xMzMuOCAzNi4zYzEwLjkgNy42IDEzLjUgMjIuNiA1LjkgMzMuNGwtNTYgODBjLTQuMSA1LjgtMTAuNSA5LjUtMTcuNiAxMC4xUzUyIDE1OCA0NyAxNTNMNyAxMTNDLTIuMyAxMDMuNi0yLjMgODguNCA3IDc5UzMxLjYgNjkuNyA0MSA3OWwxOS44IDE5LjggMzkuNi01Ni42YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXptMCAxNjBjMTAuOSA3LjYgMTMuNSAyMi42IDUuOSAzMy40bC01NiA4MGMtNC4xIDUuOC0xMC41IDkuNS0xNy42IDEwLjFTNTIgMzE4IDQ3IDMxM0w3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDE5LjggMTkuOCAzOS42LTU2LjZjNy42LTEwLjkgMjIuNi0xMy41IDMzLjQtNS45ek0yMjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTYwIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek02NCAzNzZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSwkTnQ9eDRlLEROdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWNrLXhtYXJrIixpY29uOls1MTIsNTEyLFtdLCJlNTZhIiwiTTMyOCAxMTJsLTE0NCAwLTM3LjMtNzQuNWMtMS44LTMuNi0yLjctNy42LTIuNy0xMS42IDAtMTQuMyAxMS42LTI1LjkgMjUuOS0yNS45TDM0Mi4xIDBjMTQuMyAwIDI1LjkgMTEuNiAyNS45IDI1LjkgMCA0LS45IDgtMi43IDExLjZMMzI4IDExMnpNMTY5LjYgMTYwbDE3Mi44IDAgNDguNyA0MC42QzQ1Ny42IDI1NiA0OTYgMzM4IDQ5NiA0MjQuNSA0OTYgNDcyLjggNDU2LjggNTEyIDQwOC41IDUxMmwtMzA1LjEgMEM1NS4yIDUxMiAxNiA0NzIuOCAxNiA0MjQuNSAxNiAzMzggNTQuNCAyNTYgMTIwLjkgMjAwLjZMMTY5LjYgMTYwek0zMjMuOSAyODQuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTMzLjkgMzMuOS0zMy45LTMzLjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45LTMzLjkgMzMuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOSAzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMy45LTMzLjkgMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45eiJdfSxFTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFzaHRhZyIsaWNvbjpbNTEyLDUxMixbNjIwOThdLCIyMyIsIk0yMTQuNyAuN2MxNy4zIDMuNyAyOC4zIDIwLjcgMjQuNiAzOGwtMTkuMSA4OS4zIDEyNi41IDAgMjItMTAyLjdDMzcyLjQgOCAzODkuNC0zIDQwNi43IC43czI4LjMgMjAuNyAyNC42IDM4TDQxMi4yIDEyOCA0ODAgMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MS42IDAtMjcuNCAxMjggNjcuOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MS42IDAtMjIgMTAyLjdjLTMuNyAxNy4zLTIwLjcgMjguMy0zOCAyNC42cy0yOC4zLTIwLjctMjQuNi0zOGwxOS4xLTg5LjMtMTI2LjUgMC0yMiAxMDIuN2MtMy43IDE3LjMtMjAuNyAyOC4zLTM4IDI0LjZzLTI4LjMtMjAuNy0yNC42LTM4TDk5LjggMzg0IDMyIDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MS42IDAgMjcuNC0xMjgtNjcuOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgxLjYgMCAyMi0xMDIuN0MxODAuNCA4IDE5Ny40LTMgMjE0LjcgLjd6TTIwNi40IDE5MmwtMjcuNCAxMjggMTI2LjUgMCAyNy40LTEyOC0xMjYuNSAweiJdfSxOTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4iLGljb246WzM4NCw1MTIsWzEyODY0Nl0sImYyMzgiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTE5MiAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxQTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2FtZXBhZCIsaWNvbjpbNjQwLDUxMixbXSwiZjExYiIsIk00NDggNjRjMTA2IDAgMTkyIDg2IDE5MiAxOTJTNTU0IDQ0OCA0NDggNDQ4bC0yNTYgMEM4NiA0NDggMCAzNjIgMCAyNTZTODYgNjQgMTkyIDY0bDI1NiAwek0xOTIgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyLTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMiAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMzJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0MCA5NmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTY0LTk2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHoiXX0sYjRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtZXhwb3J0IixpY29uOls1NzYsNTEyLFsiYXJyb3ctcmlnaHQtZnJvbS1maWxlIl0sImY1NmUiLCJNOTYuNSAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTk2IDc4LjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC03Mi03MmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMS03OC4xIDAgMC0xMzMuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTEuMiAxOC43QzI3OS4yIDYuNyAyNjMgMCAyNDYgMEw5Ni41IDB6TTM1OCAxNzZsLTkzLjUgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwLjUgNTguNSAzNTggMTc2ek0yMjQuNSAzMjhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTA0IDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LElOdD1iNGUsdjRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3JpbWFjZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU2LCJncmltYWNlIl0sImY1N2YiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTQwMCAzNTJjMCAyNS4yLTE5LjQgNDUuOC00NCA0Ny44bDAtOTUuN2MyNC42IDIgNDQgMjIuNyA0NCA0Ny44ek0yNzYgMzA0bDQwIDAgMCA5Ni00MCAwIDAtOTZ6bS04MCA5NmwwLTk2IDQwIDAgMCA5Ni00MCAwem0tNDAtOTUuOGwwIDk1LjdjLTI0LjYtMi00NC0yMi43LTQ0LTQ3LjhzMTkuNC00NS44IDQ0LTQ3Ljh6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sRk50PXY0ZSx5NGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4tc3Vid2F5IixpY29uOlszODQsNTEyLFsic3Vid2F5Il0sImYyMzkiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMCAwLTE2MC03MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjE2IDI1Nmw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTcyIDAgMCAxNjB6TTk2IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTIyNC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxPTnQ9eTRlLHc0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG90IixpY29uOls1MTIsNTEyLFsxMjgyODAsImRvdC1jaXJjbGUiXSwiZjE5MiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0zNTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LEJOdD13NGUsUk50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9iamVjdC1ncm91cCIsaWNvbjpbNTc2LDUxMixbXSwiZjI0NyIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwzMzcuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMjczLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTMzNy4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjczLjF6bTQ0OCAwYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwzMzcuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTI3My4xek0xNDQgMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTExMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0yNTYgMzIwbDMyIDBjNDQuMiAwIDgwLTM1LjggODAtODBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0sSE50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaXAiLGljb246WzY0MCw1MTIsWzEyODY3NF0sImYyMWEiLCJNMjcyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAxMDguOC0yMS42IDguNmMtMTQuOCA1LjktMjIuNSAyMi40LTE3LjQgMzcuNSAxMC40IDMxLjMgMjYuOCA1OS4zIDQ3LjcgODMuMSAyMC4xLTkuMiA0MS43LTEzLjkgNjMuMy0xNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjRsMS42IDEuMiAwLTIxNS0xMDQgNDEuNiAwLTgzLjJjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgzLjItMTA0LTQxLjYgMCAyMTUgMS42LTEuMmMyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAyMi4zLS4xIDQ0LjYgNC41IDY1LjMgMTQgMjAuOS0yMy43IDM3LjMtNTEuOCA0Ny43LTgzLjEgNS0xNS4yLTIuNi0zMS42LTE3LjQtMzcuNUw1MTIgMjUyLjggNTEyIDE0NGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMCAwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDI3MiAwek00MDMuNCA0NzYuMWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQ4Mi4zIDE3LjYgNDkwLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxxTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYyIsaWNvbjpbMzg0LDUxMixbOTldLCI0MyIsIk0zMjkuMSAxNDIuOWMtNjIuNS02Mi41LTE1NS44LTYyLjUtMjE4LjMgMHMtNjIuNSAxNjMuOCAwIDIyNi4zIDE1NS44IDYyLjUgMjE4LjMgMGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy04Ny41IDg3LjUtMjIxLjMgODcuNS0zMDguOCAwcy04Ny41LTIyOS4zIDAtMzE2LjggMjIxLjMtODcuNSAzMDguOCAwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxNNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBob25lIixpY29uOls0NDgsNTEyLFsicGhvbmUtc3F1YXJlIl0sImYwOTgiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptODggOTYuN2M5LjgtMi43IDIwLjEgMi40IDI0IDExLjhsMjAuMyA0OC43YzMuNCA4LjMgMS4xIDE3LjgtNS45IDIzLjVsLTIyLjEgMThjMTYuMiAzNS44IDQ0LjUgNjUgNzkuNiA4Mi40bDE5LjMtMjMuNmM1LjctNi45IDE1LjItOS4zIDIzLjUtNS45bDQ4LjcgMjAuM2M5LjQgMy45IDE0LjQgMTQuMiAxMS44IDI0bC0uOCAyLjhjLTguOCAzMi4zLTQwLjEgNTkuOS03OC4yIDUxLjgtODcuNS0xOC41LTE1Ni4zLTg3LjQtMTc0LjktMTc0LjktOC4xLTM4LjEgMTkuNS02OS40IDUxLjgtNzguMmwyLjgtLjh6Il19LFZOdD1NNGUsVU50PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLWNvbWJpbmVkIixpY29uOls0NDgsNTEyLFtdLCJmNTQ2IiwiTTEgNDQxLjdDNS41IDQ2My41IDI0LjggNDgwIDQ4IDQ4MGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi02NCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC02NC03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC00OGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMy4zIC4zIDYuNiAxIDkuN3oiXX0seVU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXJvdGF0ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDcyLCJyZWZyZXNoIiwic3luYyJdLCJmMDIxIiwiTTY1LjkgMjI4LjVjMTMuMy05MyA5My40LTE2NC41IDE5MC4xLTE2NC41IDUzIDAgMTAxIDIxLjUgMTM1LjggNTYuMiAuMiAuMiAuNCAuNCAuNiAuNmw3LjYgNy4yLTQ3LjkgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUzLjQtMTEuMy0xMC43QzM5MC41IDI4LjYgMzI2LjUgMCAyNTYgMCAxMjcgMCAyMC4zIDk1LjQgMi42IDIxOS41IC4xIDIzNyAxMi4yIDI1My4yIDI5LjcgMjU1LjdzMzMuNy05LjcgMzYuMi0yNy4xem00NDMuNSA2NGMyLjUtMTcuNS05LjctMzMuNy0yNy4xLTM2LjJzLTMzLjcgOS43LTM2LjIgMjcuMWMtMTMuMyA5My05My40IDE2NC41LTE5MC4xIDE2NC41LTUzIDAtMTAxLTIxLjUtMTM1LjgtNTYuMi0uMi0uMi0uNC0uNC0uNi0uNmwtNy42LTcuMiA0Ny45IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIwYy04LjUgMC0xNi43IDMuNC0yMi43IDkuNVMtLjEgMzQzLjcgMCAzNTIuM2wxIDEyN2MuMSAxNy43IDE0LjYgMzEuOSAzMi4zIDMxLjdTNjUuMiA0OTYuNCA2NSA0NzguN2wtLjQtNTEuNSAxMC43IDEwLjFjNDYuMyA0Ni4xIDExMC4yIDc0LjcgMTgwLjcgNzQuNyAxMjkgMCAyMzUuNy05NS40IDI1My40LTIxOS41eiJdfSxqTnQ9eVUsV050PXlVLHo0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MiLGljb246WzM4NCw1MTIsWyJmZW1hbGUiXSwiZjE4MiIsIk0xMzYgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMTIgMzg0bC0yNS44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDQzLTEyOS00OC4zIDY1LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZMMjcwIDIzNCAzMTMgMzYyLjljMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0yNS44IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMzIgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOHoiXX0sR050PXo0ZSxZTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1vcGVuIixpY29uOls1MTIsNTEyLFsxMjgyMTQsMTI4MzY2XSwiZjUxOCIsIk0yNTYgMTQxLjNsMCAzMDkuMyAuNS0uMkMzMTEuMSA0MjcuNyAzNjkuNyA0MTYgNDI4LjggNDE2bDE5LjIgMCAwLTMyMC0xOS4yIDBjLTQyLjIgMC04NC4xIDguNC0xMjMuMSAyNC42LTE2LjggNy0zMy40IDEzLjktNDkuNyAyMC43ek0yMzAuOSA2MS41TDI1NiA3MiAyODEuMSA2MS41QzMyNy45IDQyIDM3OC4xIDMyIDQyOC44IDMyTDQ2NCAzMmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzUuMiAwYy01MC43IDAtMTAwLjkgMTAtMTQ3LjcgMjkuNWwtMTIuOCA1LjNjLTcuOSAzLjMtMTYuNyAzLjMtMjQuNiAwbC0xMi44LTUuM0MxODQuMSA0OTAgMTMzLjkgNDgwIDgzLjIgNDgwTDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNS4yIDBjNTAuNyAwIDEwMC45IDEwIDE0Ny43IDI5LjV6Il19LFpOdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItdHJlZSIsaWNvbjpbNTc2LDUxMixbXSwiZjgwMiIsIk00OCAyNEM0OCAxMC43IDM3LjMgMCAyNCAwUzAgMTAuNyAwIDI0TDAgMzkyYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDE4NCAwIDAtNDgtMTg0IDBjLTQuNCAwLTgtMy42LTgtOGwwLTIzMiAxOTIgMCAwLTQ4LTE5MiAwIDAtODh6TTMzNiAyMjRsMTkyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtODIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtOC42LTguNmMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFMMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4em0wIDI4OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC04LjYtOC42Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUwzMzYgMjg4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OHoiXX0sazRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveC1hcmNoaXZlIixpY29uOls1MTIsNTEyLFsiYXJjaGl2ZSJdLCJmMTg3IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiAxMjhDMTQuMyAxMjggMCAxMTMuNyAwIDk2TDAgNjR6TTMyIDE3Nmw0NDggMCAwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjQwem0xNTIgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxYTnQ9azRlLFFOdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LWRvd24tdG8tbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU3ZSIsIk0xODUgMTIxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjFDMTIwIDIuNyAxMDkuMy04IDk2LThTNzIgMi43IDcyIDE2bDAgMTAyLjEtMzEtMzFDMzEuNiA3Ny43IDE2LjQgNzcuNyA3IDg3Uy0yLjMgMTExLjYgNyAxMjFsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6TTE1NS44IDI2MC42TDEzMi4xIDQ0OCAzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0yLjgtLjQtNS41LTEtOEw1NDguMiAyNjAuN2MtMS4yLTkuNy02LjktMTguNC0xNS4zLTIzLjRMMzY3LjQgMTM3LjljLTEwLjItNi4xLTIyLjktNi4xLTMzLjEgLjFMMTcwLjkgMjM3LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3pNNDQ4IDQ0OGwtOTcuMSAwIDAtMTQ5LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlMNDQ4IDQ0OHoiXX0sS050PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InFyY29kZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAyOSIsIk02NCAxNjBsNjQgMCAwLTY0LTY0IDAgMCA2NHpNMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODB6TTY0IDQxNmw2NCAwIDAtNjQtNjQgMCAwIDY0ek0wIDMzNmMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6TTMyMCA5NmwwIDY0IDY0IDAgMC02NC02NCAwek0zMDQgMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek0yODggMzUyYTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bTk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyem0zMi05NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bS0zMiAzMmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAweiJdfSxKTnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJhZ29uIixpY29uOls2NDAsNTEyLFsxMjgwMDldLCJmNmQ1IiwiTTM1MiAxMjQuNWwtNTEuOS0xM2MtNi41LTEuNi0xMS4zLTcuMS0xMi0xMy44czIuOC0xMy4xIDguNy0xNi4xbDQwLjgtMjAuNC00My4zLTMyLjVjLTUuNS00LjEtNy44LTExLjMtNS42LTE3LjlTMjk3LjEgMCAzMDQgMEw0NjQgMGMzMC4yIDAgNTguNyAxNC4yIDc2LjggMzguNGw1Ny42IDc2LjhjNi4yIDguMyA5LjYgMTguNCA5LjYgMjguOCAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjEuNSAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN2wtMTMuMy0xMy4zLTMyIDAgMCAyMS41YzAgMjQuOCAxMi44IDQ3LjkgMzMuOCA2MS4xbDEwNi42IDY2LjZjMzIuMSAyMC4xIDUxLjYgNTUuMiA1MS42IDkzLjEgMCA2MC42LTQ5LjEgMTA5LjgtMTA5LjggMTA5LjhMMzIuMyA1MTJjLTMuMyAwLTYuNi0uNC05LjYtMS40LTkuMi0yLjgtMTYuNy05LjYtMjAuNC0xOC42LTEuMy0zLjMtMi4yLTYuOS0yLjMtMTAuNy0uMi0zLjcgLjMtNy4zIDEuMy0xMC43IDIuOC05LjIgOS42LTE2LjcgMTguNi0yMC40IDMtMS4yIDYuMi0yIDkuNS0yLjJMNDMzLjMgNDEyYzguMy0uNyAxNC43LTcuNyAxNC43LTE2LjEgMC00LjMtMS43LTguNC00LjctMTEuNGwtNDQuNC00NC40Yy0zMC0zMC00Ni45LTcwLjctNDYuOS0xMTMuMWwwLTEwMi41ek01MTIgNzIuM2MwLS4xIDAtLjIgMC0uM3MwLS4yIDAtLjNsMCAuNnptLTEuMyA3LjRMNDY0LjMgNjguMWMtLjIgMS4zLS4zIDIuNi0uMyAzLjkgMCAxMy4zIDEwLjcgMjQgMjQgMjQgMTAuNiAwIDE5LjUtNi44IDIyLjctMTYuM3pNMTMwLjkgMTE2LjVjMTYuMy0xNC41IDQwLjQtMTYuMiA1OC41LTQuMWwxMzAuNiA4NyAwIDI3LjVjMCAzMi44IDguNCA2NC44IDI0IDkzbC0yMzIgMGMtNi43IDAtMTIuNy00LjItMTUtMTAuNHMtLjUtMTMuMyA0LjYtMTcuN0wxNzEgMjMyLjMgMTguNCAyNTUuOGMtNyAxLjEtMTMuOS0yLjYtMTYuOS05Uy4xIDIzMi44IDUuNCAyMjhMMTMwLjkgMTE2LjV6Il19LFM0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3MtZW5kIixpY29uOlszODQsNTEyLFs4OTg3LCJob3VyZ2xhc3MtMyJdLCJmMjUzIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFsNjcuOSA2Ny45LTY3LjkgNjcuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC02Ny45LTY3LjkgNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzY5LjcgMCAzNTIgMEwzMiAwek05NiA3NWwwLTExIDE5MiAwIDAgMTFjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlsLTY3LjkgNjcuOS02Ny45LTY3LjlDMTA2LjEgMTI0LjkgOTYgMTAwLjQgOTYgNzV6Il19LGVQdD1TNGUscjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcCIsaWNvbjpbNTEyLDUxMixbNTgxMTksImdyaWQtaG9yaXpvbnRhbCIsImdyaXAtaG9yaXpvbnRhbCJdLCJmNThkIiwiTTg4IDk2YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMHpNMjgwIDIyNGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTE5MiAwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHptMCAxOTJsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwek0yODAgMjg4YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMHpNODggNDE2bC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHoiXX0sdFB0PXI1LGFQdD1yNSxDNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9yZGVyLXRvcC1sZWZ0IixpY29uOls0NDgsNTEyLFsiYm9yZGVyLXN0eWxlIl0sImY4NTMiLCJNMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAzNTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDQ4em0xMjggMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMnptMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJ6bTE2MCAzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6TTM4NCAxOTJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHptMzIgMTYwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sclB0PUM0ZSxMNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdC11bCIsaWNvbjpbNTEyLDUxMixbImxpc3QtZG90cyJdLCJmMGNhIiwiTTQ4IDE0NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTE5MiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwek00OCA0NjRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek05NiAyNTZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0saVB0PUw0ZSxvUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLXJvYmJlcnkiLGljb246WzU3Niw1MTIsW10sImU1MzYiLCJNNDg4LjIgNTkuMUM0NzguMSA5OS42IDQ0MS43IDEyOCA0MDAgMTI4cy03OC4xLTI4LjQtODguMi02OC45TDMwMyAyNC4yQzI5OC44IDcuMSAyODEuNC0zLjMgMjY0LjIgMVMyMzYuNyAyMi42IDI0MSAzOS44bDguNyAzNC45YzExIDQ0IDQwLjIgNzkuNiA3OC4zIDk5LjZMMzI4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDE2IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNS43YzM4LjEtMjAgNjcuMy01NS42IDc4LjMtOTkuNkw1NTkgMzkuOGM0LjMtMTcuMS02LjEtMzQuNS0yMy4zLTM4LjhTNTAxLjIgNy4xIDQ5NyAyNC4ybC04LjcgMzQuOXpNNDAwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA5NiAwIC42IDAgMTkxLjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjcuMyAxMyAyMC41YzUuOSA5LjIgMTYuMSAxNC45IDI3IDE0LjlsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzAuNCAwLTM3LjQtNTguOUMxNTcuNiAxNDIgMTMyLjEgMTI4IDEwNC43IDEyOEw3MiAxMjh6Il19LHNQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtYnV0dG9uIixpY29uOlszODQsNTEyLFtdLCJmMTBiIiwiTTgwIDBDNDQuNyAwIDE2IDI4LjcgMTYgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMODAgMHpNMTkyIDQ2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6Il19LHdVPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tYS16IixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS1hc2MiLCJzb3J0LWFscGhhLWRvd24iXSwiZjE1ZCIsIk0yMzAuNiAzOTAuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTE4Mi0zNDAuOWM1MC43IDEwMS4zIDc3LjMgMTU0LjcgODAgMTYwIDcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNsLTcuMi0xNC4zLTg4LjQgMC03LjIgMTQuM2MtNy45IDE1LjgtMjcuMSAyMi4yLTQyLjkgMTQuM3MtMjIuMi0yNy4xLTE0LjMtNDIuOWMyLjctNS4zIDI5LjMtNTguNyA4MC0xNjAgNS40LTEwLjggMTYuNS0xNy43IDI4LjYtMTcuN3MyMy4yIDYuOCAyOC42IDE3Ljd6TTM4NCAxMzUuNmwtMjAuMiA0MC40IDQwLjQgMC0yMC4yLTQwLjR6TTI4OCAzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwzOTcuMyA0MTYgNDQ4IDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45bDczLjQtNzMuNC01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxuUHQ9d1UsbFB0PXdVLGNQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsIixpY29uOls1MTIsNTEyLFtdLCJmMGQ2IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0xOTIgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTE5MiAyNGMwIDQuNC0zLjYgOC4xLTggNy41LTI5LTMuNi01MS45LTI2LjYtNTUuNS01NS41LS41LTQuNCAzLjEtOCA3LjUtOGw0OCAwYzQuNCAwIDggMy42IDggOGwwIDQ4ek02NCAzMjhjMC00LjQgMy42LTguMSA4LTcuNSAyOSAzLjYgNTEuOSAyNi42IDU1LjUgNTUuNSAuNSA0LjQtMy4xIDgtNy41IDhsLTQ4IDBjLTQuNCAwLTgtMy42LTgtOGwwLTQ4em04LTEzNi41Yy00LjQgLjUtOC0zLjEtOC03LjVsMC00OGMwLTQuNCAzLjYtOCA4LThsNDggMGM0LjQgMCA4LjEgMy42IDcuNSA4LTMuNiAyOS0yNi42IDUxLjktNTUuNSA1NS41em0zNjggMTI5YzQuNC0uNSA4IDMuMSA4IDcuNWwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNXoiXX0sVDRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1taW51cyIsaWNvbjpbNTEyLDUxMixbIm1pbnVzLWNpcmNsZSJdLCJmMDU2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjggMjMybDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sZFB0PVQ0ZSxfNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcG9pbnRlciIsaWNvbjpbNDQ4LDUxMixbIm1vdXNlLXBvaW50ZXIiXSwiZjI0NSIsIk03Ny4zIDIuNWM4LjEtNC4xIDE3LjktMy4yIDI1LjEgMi4zbDMyMCAyMzkuOWM4LjMgNi4yIDExLjYgMTcgOC40IDI2LjhzLTEyLjQgMTYuNC0yMi44IDE2LjRsLTE1Mi4zIDAgODguOSAxNzcuN2M3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC04OC45LTE3Ny43LTkxLjMgMTIxLjhjLTYuMiA4LjMtMTcgMTEuNi0yNi44IDguNFM2NCA0MzQuMyA2NCA0MjRMNjQgMjRjMC05LjEgNS4xLTE3LjQgMTMuMy0yMS41eiJdfSxmUHQ9XzRlLEE0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtc2hhcmUtbm9kZXMiLGljb246WzQ0OCw1MTIsWyJzaGFyZS1hbHQtc3F1YXJlIl0sImYxZTEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzY4IDE2MGMwIDM1LjMtMjguNyA2NC02NCA2NC0xNS40IDAtMjkuNS01LjQtNDAuNi0xNC41bC04NS4zIDQ2LjUgODUuMyA0Ni41YzExLTkuMSAyNS4yLTE0LjUgNDAuNi0xNC41IDM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjRjMC0yLjUgLjEtNC45IC40LTcuM0wxNTguNSAzMDBjLTExLjcgMTIuMy0yOC4yIDIwLTQ2LjUgMjAtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMxOC4zIDAgMzQuOCA3LjcgNDYuNSAyMGw4MS45LTQ0LjdjLS4zLTIuNC0uNC00LjktLjQtNy4zIDAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjR6Il19LHVQdD1BNGUsJDRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLWxhcmdlIixpY29uOls0NDgsNTEyLFsidGgtbGFyZ2UiXSwiZjAwOSIsIk0zODQgOTZsLTEyOCAwIDAgMTI4IDEyOCAwIDAtMTI4em02NCAxMjhsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4ek02NCAyODhsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6bTEyOC02NGwwLTEyOC0xMjggMCAwIDEyOCAxMjggMHptNjQgNjRsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6Il19LHBQdD0kNGUsaFB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhdCIsaWNvbjpbNTc2LDUxMixbMTI4MDA4XSwiZjZiZSIsIk02NCA5NmM1MyAwIDk2IDQzIDk2IDk2bDAgODUuOGMyOS43LTQ0LjcgNzcuOC03Ni4yIDEzMy40LTg0IDI1LjYgNjAgODUuMiAxMDIuMSAxNTQuNiAxMDIuMSAxMC45IDAgMjEuNi0xLjEgMzItMy4xTDQ4MCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDAuOC0xMzYgMTA4LjggNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTQ0IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC0yMjRjMC0xNi42LTEyLjYtMzAuMi0yOC43LTMxLjhsLTYuNi0uM0M0NC42IDE1OC4yIDMyIDE0NC42IDMyIDEyOCAzMiAxMTAuMyA0Ni4zIDk2IDY0IDk2ek01MzMuOCAzLjJDNTQ0LjItNS41IDU2MCAxLjkgNTYwIDE1LjVMNTYwIDEyOGMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMzMzYgMTg5LjkgMzM2IDEyOGwwLTExMi41YzAtMTMuNiAxNS44LTIxIDI2LjItMTIuM0w0MTYgNDggNDgwIDQ4IDUzMy44IDMuMnpNNDAwIDEwOGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6bTk2IDBhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQweiJdfSxtUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXItd2VlayIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4NCIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE5MiAweiJdfSxnUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1jb21wYXJlIixpY29uOls1MTIsNTEyLFtdLCJlMTNhIiwiTTE5OC44IDEuOGM5LTMuNyAxOS4zLTEuNyAyNi4yIDUuMmw1NiA1NmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNTYgNTZjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJTMTg0IDE0NS43IDE4NCAxMzZsMC0yNC0yNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDIxNC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM0w2NCAxNDRjMC01MyA0My05NiA5Ni05NmwyNCAwIDAtMjRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yek0zOTIgODBhMjQgMjQgMCAxIDAgNDggMCAyNCAyNCAwIDEgMCAtNDggMHptLTggNzMuM2MtMjguMy0xMi4zLTQ4LTQwLjUtNDgtNzMuMyAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNMNDQ4IDM2OGMwIDUzLTQzIDk2LTk2IDk2bC0yNCAwIDAgMjRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtNTYtNTZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDU2LTU2YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJTMzI4IDM2Ni4zIDMyOCAzNzZsMCAyNCAyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjE0Ljd6TTcyIDQzMmEyNCAyNCAwIDEgMCA0OCAwIDI0IDI0IDAgMSAwIC00OCAweiJdfSx4UHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NjYiLCJNMjg3LjkgMzJsLTc2LjIgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNiAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5LjJjMzUuMi00MCA4Ni43LTY1LjIgMTQ0LjItNjUuMiA5IDAgMTcuOCAuNiAyNi40IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNSAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LGJQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYWxsZXQiLGljb246WzU3Niw1MTIsW10sImY0ODIiLCJNMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCA2NC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtNjQgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMjB6bTk2IDY0bDEyOCAwIDAgNjQtMTI4IDAgMC02NHptMTkyIDBsMTI4IDAgMCA2NC0xMjggMCAwLTY0eiJdfSxNVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWtlLWNhbmRsZXMiLGljb246WzQ0OCw1MTIsWzEyNzg3NCwiYmlydGhkYXktY2FrZSIsImNha2UiXSwiZjFmZCIsIk04Ni40LTEwLjVMNjEuOCAzMS42QzU4IDM4LjEgNTYgNDUuNiA1NiA1My4yTDU2IDU2YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0yLjhjMC03LjYtMi0xNS01LjgtMjEuNkwxMDUuNi0xMC41Yy0yLTMuNC01LjctNS41LTkuNi01LjVzLTcuNiAyLjEtOS42IDUuNXptMTI4IDBMMTg5LjggMzEuNmMtMy44IDYuNS01LjggMTQtNS44IDIxLjZsMCAyLjhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDIzMy42LTEwLjVjLTItMy40LTUuNy01LjUtOS42LTUuNXMtNy42IDIuMS05LjYgNS41ek0zMTcuOCAzMS42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMzYxLjYtMTAuNWMtMi0zLjQtNS43LTUuNS05LjYtNS41cy03LjYgMi4xLTkuNiA1LjVMMzE3LjggMzEuNnpNMTI4IDE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUzLjVDMjYuNyAyMjYuNiAwIDI2Mi4yIDAgMzA0bDAgMjAuOGMyMC45IDEuMyA0MS42IDcuMyA2MC4zIDE4bDcuMSA0LjFjMjYuMyAxNSA1OC45IDEzLjQgODMuNi00LjIgNDMuNy0zMS4yIDEwMi4zLTMxLjIgMTQ2IDAgMjQuNiAxNy42IDU3LjMgMTkuMyA4My42IDQuMmw3LjEtNC4xYzE4LjctMTAuNyAzOS4zLTE2LjcgNjAuMy0xOGwwLTIwLjhjMC00MS44LTI2LjctNzcuNC02NC05MC41bDAtNTMuNWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4LTY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4LTY0IDAgMC00OHpNNDQ4IDM3M2MtMTIuNyAxLjItMjUuMSA1LTM2LjUgMTEuNWwtNy4xIDQuMWMtNDIuNiAyNC4zLTk1LjQgMjEuNy0xMzUuMy02LjgtMjctMTkuMy02My4yLTE5LjMtOTAuMiAwLTM5LjkgMjguNS05Mi43IDMxLjItMTM1LjMgNi44bC03LjEtNC4xQzI1LjEgMzc4IDEyLjcgMzc0LjEgMCAzNzNsMCA3NWMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTc1eiJdfSx2UHQ9TVUseVB0PU1VLHdQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWctc2xhc2giLGljb246WzU3Niw1MTIsW10sImU0OTAiLCJNNy0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI0MS44IDE3NiAzNDQgMTc2YzE0LjIgMCAyNy43IDIuOCA0MCA4bDEwOC44LTgxLjZjMTQuMS0xMC42IDM0LjItNy43IDQ0LjggNi40czcuNyAzNC4yLTYuNCA0NC44bC05Ny44IDczLjNjNS4zIDguOSA5LjMgMTguNyAxMS44IDI5LjFsOTguOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgMzJjMCA5LjUtLjggMTguNy0yLjQgMjcuOEw1NjkgNTAzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw3IDkuMUMtMi4zLS4zLTIuMy0xNS41IDctMjQuOXpNMzk4LjIgNDY4Yy0yMy4yIDIyLjEtNTMgMzcuMi04Ni4yIDQyLjJsMC0xMjguNCA4Ni4yIDg2LjJ6TTI2NCAzMzMuOGwwIDE3Ni40Yy01MS4yLTcuNy05NC41LTM5LjctMTE3LjctODMuOUw4My4yIDQ3My42Yy0xNC4xIDEwLjYtMzQuMiA3LjctNDQuOC02LjRzLTcuNy0zNC4yIDYuNC00NC44bDgzLjQtNjIuNWMtLjEtMi42LS4yLTUuMi0uMi03LjlsMC0zMi05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk4LjggMGMzLjMtMTMuOSA5LjMtMjYuNyAxNy42LTM3LjhMMjY0IDMzMy44ek0zNTUuNiAxMjhsLTgyLjQgMC03Mi4zLTcyLjNDMjE2LjEgMjIuOCAyNDkuNCAwIDI4OCAwIDM0MSAwIDM4NCA0MyAzODQgOTZsMCAzLjZjMCAxNS43LTEyLjcgMjguNC0yOC40IDI4LjR6Il19LE1QdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXJwIixpY29uOls1MTIsNTEyLFtdLCJlNTdiIiwiTTQ0OCA2NGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE0OS41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zTDM4Ni43IDQyOS4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDB6bTUuNSAyMDhMMzYwIDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA5My41IDExNy41LTExNy41ek05NiAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSx6UHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1wcmVkZWNlc3NvciIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ3NyIsIk0yODkuMiAxMzcuOWMyLjUtNiA4LjMtOS45IDE0LjgtOS45bDQwIDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtOTggMGMxLjMgNS4xIDIgMTAuNSAyIDE2bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjU2IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyNCA0MCAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45czEuMSAxMi45LTMuNSAxNy40bC02NCA2NGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTY0LTY0Yy00LjYtNC42LTUuOS0xMS41LTMuNS0xNy40ek0zODQgMzUybC0zMjAgMCAwIDY0IDMyMCAwIDAtNjR6bTY0IDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0eiJdfSxENGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1mbHVzaGVkIixpY29uOls1MTIsNTEyLFsxMjg1NjMsImZsdXNoZWQiXSwiZjU3OSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xNjggMzkyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDEyOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMjggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bS04LTk2YTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0em0yNjQtNzJhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAwem0tMjg4IDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTkyIDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sa1B0PUQ0ZSxTUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1uZXh0IixpY29uOls0NDgsNTEyLFtdLCJlNDc2IiwiTTM4NCAyMjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTI4IDAgMCA2NC0zMiAwYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjRsNjQgNjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNjQtNjRjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNFMyOTQuNSAyODggMjg4IDI4OGwtMzIgMCAwLTY0IDEyOCAwek02NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NGwtMzQgMGM1LjYgMjEuNy0uNSA0NS4xLTE2LjcgNjEuM2wtNjQgNjRjLTI1IDI1LTY1LjUgMjUtOTAuNSAwbC02NC02NEM5OC42IDMzMy4xIDkyLjQgMzA5LjcgOTggMjg4bC0zNCAweiJdfSxDUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYyIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTIwOCA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxMUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MyIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNTE4LjYgNDAweiJdfSxUUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BhIixpY29uOls1NzYsNTEyLFtdLCJmNWJiIiwiTTE2OS43IDIyNy41YzM0LjMgMTguNyA2NC41IDQ0LjEgODguOCA3NC41IDExLjEgMTMuOSAyMSAyOC45IDI5LjQgNDQuOCA4LjUtMTUuOSAxOC4zLTMwLjggMjkuNC00NC44IDI0LjMtMzAuNSA1NC41LTU1LjkgODguOC03NC41IDQxLjctMjIuNyA4OS40LTM1LjUgMTM5LjctMzUuNWw5LjkgMGMxMS4xIDAgMjAuMSA5IDIwLjEgMjAuMSAwIDE0OC0xMTkuOSAyNjcuOS0yNjcuOSAyNjcuOWwtNDAuMiAwQzExOS45IDQ4MCAwIDM2MC4xIDAgMjEyLjEgMCAyMDEgOSAxOTIgMjAuMSAxOTJsOS45IDBjNTAuNCAwIDk4LjEgMTIuOCAxMzkuNyAzNS41ek0zMDMuOSAzOGMxNi45IDE1LjkgNjEuNCA2My40IDg5IDE0Mi4zLTQwLjEgMjAuMi03NS44IDQ4LjItMTA0LjkgODIuMS0yOS4yLTMzLjktNjQuOC02MS44LTEwNC45LTgyLjEgMjcuNi03OC45IDcyLjItMTI2LjQgODktMTQyLjMgNC4zLTQuMSAxMC02IDE1LjktNnMxMS42IDIgMTUuOSA2eiJdfSxFNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFycy1wcm9ncmVzcyIsaWNvbjpbNDQ4LDUxMixbInRhc2tzLWFsdCJdLCJmODI4IiwiTTI4OCAxNjBsOTYgMCAwLTY0LTk2IDAgMCA2NHpNMCAxNjBMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNnpNMTYwIDQxNmwyMjQgMCAwLTY0LTIyNCAwIDAgNjR6TTAgNDE2bDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZ6Il19LF9QdD1FNGUsQVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxONGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1zdHJva2UtcmlnaHQiLGljb246WzY0MCw1MTIsWzk4OTcsIm1hcnMtc3Ryb2tlLWgiXSwiZjIyYiIsIk0zMjAuNSAyNTZhMTEyIDExMiAwIDEgMCAtMjI0IDAgMTEyIDExMiAwIDEgMCAyMjQgMHpNMjA4LjUgODBjODYuMyAwIDE1OC4xIDYyLjEgMTczLjEgMTQ0LjEgMS0uMSAxLjktLjEgMi45LS4xbDE2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjEuNCAwLTIyLjQtMjhjLTExLTEzLjgtOC44LTMzLjkgNS00NXMzMy45LTguOCA0NSA1bDY0IDgwYzkuMyAxMS43IDkuMyAyOC4zIDAgNDBsLTY0IDgwYy0xMSAxMy44LTMxLjIgMTYtNDUgNXMtMTYtMzEuMi01LTQ1bDIyLjQtMjgtNjEuNCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xNiAwYy0xIDAtMS45IDAtMi45LS4xLTE1IDgyLTg2LjggMTQ0LjEtMTczLjEgMTQ0LjEtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NnoiXX0sJFB0PU40ZSxEUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItb2JzZXJ2YXRpb24iLGljb246WzQ0OCw1MTIsW10sImU1ODYiLCJNMjA5LjcgMy40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxNjAgODBjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOS01LjYgMTEuMi0xNi45IDE3LjctMjguNiAxNy43bDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEzIDAgMzIgMTkyIDQ1IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ1IDAgMzItMTkyLTEzIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBjLTExLjcgMC0yMy02LjUtMjguNi0xNy43LTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlsMTYwLTgwek0zMTAuNyA0NDhsLTg2LjctNjEuOS04Ni43IDYxLjkgMTczLjQgMHptLTE1My0xOTJsLTMuNSAyMS4yIDY5LjkgNDkuOSA2OS45LTQ5LjktMy41LTIxLjItMTMyLjcgMHptLTEyLjMgNzMuOWwtMTAuMSA2MC42IDQ3LjUtMzMuOS0zNy40LTI2Ljd6bTExOS45IDI2LjdsNDcuNSAzMy45LTEwLjEtNjAuNi0zNy40IDI2Ljd6TTE1MiAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSx6VT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGVybGluZy1zaWduIixpY29uOlszODQsNTEyLFsxNjMsImdicCIsInBvdW5kLXNpZ24iXSwiZjE1NCIsIk05MS4zIDI4OGwtMzQuOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIxLjQgMEMzNy4zIDE0Ny4zIDEwNS4xIDQyIDIwNy42IDQybDguMiAwYzMzLjYgMCA2Ni4yIDExLjMgOTIuNSAzMi4ybDE2LjEgMTIuN2MxMy45IDExIDE2LjIgMzEuMSA1LjIgNDVzLTMxLjEgMTYuMi00NSA1LjJsLTE2LjEtMTIuN2MtMTUtMTEuOS0zMy42LTE4LjQtNTIuOC0xOC40bC04LjIgMGMtNTcuMyAwLTk0LjcgNTkuOS02OS43IDExMS40IDMuNiA3LjQgNi42IDE0LjkgOS4xIDIyLjZsMTQ5LjUgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQxLjIgMGMxIDM1LjMtOC43IDcwLjYtMjguOSAxMDAuOWwtMTguMSAyNy4xIDIxMi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI3MiAwYy0xMS44IDAtMjIuNi02LjUtMjguMi0xNi45cy01LTIzIDEuNi0zMi45bDUxLjItNzYuOGMxMy4xLTE5LjYgMTkuMi00Mi42IDE4LjItNjUuNHoiXX0sRVB0PXpVLE5QdD16VSxQUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmF1Y2V0LWRyaXAiLGljb246WzUxMiw1MTIsWzEyODY4OF0sImUwMDYiLCJNMjI0IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMkw5NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmw5NiAwIDAgNjQtMTguNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNEwxMjggMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDAuMSAwYzIwLjIgMjkgNTMuOSA0OCA5MS45IDQ4czcxLjctMTkgOTEuOS00OGwzNi4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtODguNC03MS42LTE2MC0xNjAtMTYwbC0zMiAwLTIyLjYtMjIuNmMtNi02LTE0LjEtOS40LTIyLjYtOS40bC0xOC43IDAgMC02NCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MzYuOCA0NTUuNGwtMTguMiA0Mi40Yy0xLjggNC4xLTIuNyA4LjYtMi43IDEzLjFsMCAxLjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEuMmMwLTQuNS0uOS04LjktMi43LTEzLjFsLTE4LjItNDIuNGMtMS45LTQuNS02LjMtNy40LTExLjItNy40cy05LjIgMi45LTExLjIgNy40eiJdfSwkNz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtaW5mbyIsaWNvbjpbNTEyLDUxMixbImluZm8tY2lyY2xlIl0sImYwNWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTggNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDg4IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtNjQtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sSVB0PSQ3LEZQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmZWF0aGVyIixpY29uOls1MTIsNTEyLFsxMjk3MThdLCJmNTJkIiwiTTM1MiAwYzQxIDAgODAuMyAxNi4zIDEwOS4yIDQ1LjJsNS41IDUuNWMyOSAyOSA0NS4zIDY4LjMgNDUuMyAxMDkuMiAwIDI0LjEtNS43IDQ3LjYtMTYuMiA2OC44LTEuOSAzLjctNS4zIDYuNS05LjMgNy43TDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDMyLjIgMGMxNC4zIDAgMjEuNCAxNy4yIDExLjMgMjcuM2wtMjIuNCAyMi40Yy0xLjkgMS45LTQuMiAzLjItNi43IDRsLTgxIDI0LjNjLTMuOSAxLjItNi41IDQuNy02LjUgOC44IDAgNS4xIDQuMSA5LjIgOS4yIDkuMiAxMy4yIDAgMTguOSAxNS43IDcuOCAyMi45LTQxLjEgMjYuNi04OS4zIDQxLjEtMTM5IDQxLjFsLTg2IDAtNDggNDhjLTguOCA4LjgtMjMuMiA4LjgtMzIgMHMtOC44LTIzLjIgMC0zMkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw3OS41IDMzNi41Yy01LjcgNS43LTE1LjUgMS43LTE1LjUtNi40IDAtNjcuOSAyNy0xMzMgNzUtMTgxTDI0Mi44IDQ1LjJDMjcxLjcgMTYuMyAzMTEgMCAzNTIgMHoiXX0sT1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvd2wtcmljZSIsaWNvbjpbNTEyLDUxMixbXSwiZTJlYiIsIk0xNzYgNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTI0IDQ4bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTU2IDE2MGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0wIDI4My40QzAgMjY4LjMgMTIuMyAyNTYgMjcuNCAyNTZsNDU3LjEgMGMxNS4xIDAgMjcuNCAxMi4zIDI3LjQgMjcuNCAwIDcwLjUtNDQuNCAxMzAuNy0xMDYuNyAxNTQuMUw0MDMuNSA0NTJjLTIgMTYtMTUuNiAyOC0zMS44IDI4bC0yMzEuNSAwYy0xNi4xIDAtMjkuOC0xMi0zMS44LTI4bC0xLjgtMTQuNEM0NC40IDQxNC4xIDAgMzUzLjkgMCAyODMuNHpNMjI0IDE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptLTk2IDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTEwNCA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0yMTYgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI5NiA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0xMjAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTM5MiA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yOTYgMTZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sUDRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMjg4LjEgMzUzLjZjMTAgMCAxOS45IDIuMyAyOSA3bDc0LjQgMzcuOS0xMy04Mi41Yy0zLjItMjAuMiAzLjUtNDAuNyAxNy45LTU1LjJsNTktNTkuMS04Mi41LTEzLjFjLTIwLjItMy4yLTM3LjctMTUuOS00Ny0zNC4xbC0zOC03NC40IDAgMjczLjZ6TTQ1Ny40IDQ4OWMtNy4zIDUuMy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXMxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4yeiJdfSxCUHQ9UDRlLEk0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1hcnJvdy1kb3duIixpY29uOls1MTIsNTEyLFsidGVtcGVyYXR1cmUtZG93biJdLCJlMDNmIiwiTTY0LjUgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0cy0xNDQtNjQuNS0xNDQtMTQ0YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0LjUgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yOC43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjguN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00MzkuMSAzMTAuNmMtNiA2LTE0LjEgOS40LTIyLjYgOS40cy0xNi42LTMuNC0yMi42LTkuNGwtNjQtNjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsOS40IDkuNCAwLTE3OC43YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzguNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0eiJdfSxSUHQ9STRlLEhQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrLXZlbnRpbGF0b3IiLGljb246WzY0MCw1MTIsW10sImU1MjQiLCJNMTUyLjIgMTkyYy0xNS40IDM4LjMtMjQuMiA3Ny4yLTI0LjIgMTA4LjggMCAxMy4zIDEuNSAyNi4yIDQuNCAzOC43bC0xNy0zLjRjLTI5LjktNi01MS40LTMyLjItNTEuNC02Mi44bDAtODEuMyA4OC4yIDB6bTMyLjktNjRMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDgxLjNjMCA2MSA0My4xIDExMy41IDEwMi45IDEyNS41bDY2LjMgMTMuM2MxOC43IDIyLjEgNDIuOSA0MCA3MC44IDUxLjhsMC04Ny44Yy0xMC4xLTE0LjItMTYtMzEuMy0xNi00OS43IDAtNDkuNSA0My0xMzQuNCA5Ni0xMzQuNCA1Mi41IDAgOTYgODQuOSA5NiAxMzQuNCAwIDE4LjQtNS45IDM1LjQtMTYgNDkuNmwwIDg3LjdjMjcuNi0xMS44IDUxLjctMjkuNiA3MC40LTUxLjZsNjYuNy0xMy4zYzU5LjgtMTIgMTAyLjktNjQuNSAxMDIuOS0xMjUuNWwwLTgxLjNjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTEyMS41IDBjLTM0LjgtNTQuMi04Mi41LTk2LTEzNC41LTk2LTUyLjYgMC0xMDAuMiA0MS44LTEzNC45IDk2em0zMDIuNSA2NGw4OC40IDAgMCA4MS4zYzAgMzAuNS0yMS41IDU2LjgtNTEuNCA2Mi44bC0xNyAzLjRjMi45LTEyLjQgNC41LTI1LjQgNC41LTM4LjcgMC0zMS42LTguOS03MC41LTI0LjQtMTA4Ljh6TTI4OCAzMjBsMCAxOTIgNjQgMCAwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnoiXX0scVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtdmlkZW8iLGljb246WzM4NCw1MTIsW10sImYxYzgiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTgwIDMwNGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yNCAzNSAzNWMzLjIgMy4yIDcuNSA1IDEyIDUgOS40IDAgMTctNy42IDE3LTE3bDAtOTQuMWMwLTkuNC03LjYtMTctMTctMTctNC41IDAtOC44IDEuOC0xMiA1bC0zNSAzNSAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sVlB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXRyZW5kLWRvd24iLGljb246WzU3Niw1MTIsW10sImUwOTciLCJNMzg0IDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDgyLjctMTY5LjQtMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwTDE5MiAyNDIuNyA1NC42IDEwNS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwTDMyMCAyMDUuMyA0NjYuNyAzNTIgMzg0IDM1MnoiXX0sVVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9pbC1jYW4iLGljb246WzY0MCw1MTIsW10sImY2MTMiLCJNMzIwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyLTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0LjhjMCAxOSAxMS4yIDM2LjIgMjguNSA0My45bDY3LjUgMzAgMCAyMS4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI1OS4xIDBjMTguNCAwIDM1LjgtNy45IDQ4LTIxLjdMNjMzLjUgMTg3LjdjMTIuMy0xMy45LS4zLTM1LjQtMTguNC0zMS41TDQ0OCAxOTIgMzk3LjUgMTY2LjhjLTguOS00LjQtMTguNy02LjgtMjguNi02LjhsLTgwLjkgMCAwLTMyIDMyIDB6TTk2IDIwOGwwIDg2LjEtNDgtMjEuMyAwLTY0LjggNDggMHoiXX0sRjRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1jYXJyeS1ib3giLGljb246WzU3Niw1MTIsWyJwZW9wbGUtY2FycnkiXSwiZjRjZSIsIk02NC0zMkE1NiA1NiAwIDEgMSA2NCA4MCA1NiA1NiAwIDEgMSA2NC0zMnpNMCAxNzEuMWMwLTMyLjYgMjYuNS01OS4xIDU5LjEtNTkuMSAyMy41IDAgNDUuNSAxMS4zIDU5LjEgMzAuNGw0OC43IDY4LjJjNS44IDguMiAxNS4xIDEzLjEgMjUuMSAxMy40bDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMxMC0uMyAxOS4zLTUuMiAyNS4xLTEzLjRsNDguNy02OC4yYzEzLjYtMTkuMSAzNS42LTMwLjQgNTkuMS0zMC40IDMyLjYgMCA1OS4xIDI2LjUgNTkuMSA1OS4xTDU3NiAyNzJjMCAzMC4yLTE0LjIgNTguNy0zOC40IDc2LjhsLTc2LjggNTcuNmMtOC4xIDYtMTIuOCAxNS41LTEyLjggMjUuNmwwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODBjMC0zMC4yIDE0LjItNTguNyAzOC40LTc2LjhsNDEuNi0zMS4yIDAtODAuMS0yLjggMy45Yy0xOCAyNS4yLTQ3LjEgNDAuMi03OC4xIDQwLjJMMzUyIDI4OGMtLjYgMC0xLjMgMC0xLjktLjEtLjYgMC0xLjMgLjEtMS45IC4xbC0xMjAuNCAwYy0uNiAwLTEuMyAwLTEuOS0uMS0uNiAwLTEuMyAuMS0xLjkgLjFsLTMxLjEgMGMtMzEgMC02MC4xLTE1LTc4LjEtNDAuMmwtMi44LTMuOSAwIDgwLjEgNDEuNiAzMS4yQzE3Ny44IDM3My4zIDE5MiA0MDEuOCAxOTIgNDMybDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDM4LjQgMzQ4LjhDMTQuMiAzMzAuNyAwIDMwMi4yIDAgMjcyTDAgMTcxLjF6TTAgMzc5LjNjMy4xIDIuNyA2LjMgNS40IDkuNiA3LjlMNjQgNDI4IDY0IDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDUyOS43IDAgNTEyTDAgMzc5LjN6TTU2OCAyNGE1NiA1NiAwIDEgMSAtMTEyIDAgNTYgNTYgMCAxIDEgMTEyIDB6bTggNDg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODQgNTQuNC00MC44YzMuMy0yLjUgNi41LTUuMSA5LjYtNy45TDU3NiA1MTJ6Il19LGpQdD1GNGUsV1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYWlyIixpY29uOls0NDgsNTEyLFsxMjk2ODFdLCJmNmMwIiwiTTE1MiAyNTZsMC0xODEuOGMtMjQuNSAyMC41LTQwIDUxLjQtNDAgODUuOGwwIDk2IDQwIDB6bTQ4IDBsNDggMCAwLTIwNS40Yy03LjctMS43LTE1LjgtMi42LTI0LTIuNnMtMTYuMyAuOS0yNCAyLjZMMjAwIDI1NnpNMjk2IDc0LjJsMCAxODEuOCA0MCAwIDAtOTZjMC0zNC40LTE1LjUtNjUuMi00MC04NS44ek0zMiAyNTZsMzIgMCAwLTk2QzY0IDcxLjYgMTM1LjYgMCAyMjQgMFMzODQgNzEuNiAzODQgMTYwbDAgOTYgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0yNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LEdQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kIixpY29uOls1MTIsNTEyLFtdLCJmNzJlIiwiTTI4OCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDMyIDExMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjggMGM0OC42IDAgODgtMzkuNCA4OC04OFM0MDguNiAwIDM2MCAwTDMyMCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNjQgMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZMMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTI4IDUxMmw0MCAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4cy0zOS40LTg4LTg4LTg4TDMyIDMzNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnoiXX0sWVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxheWVyLWdyb3VwIixpY29uOls1MTIsNTEyLFtdLCJmNWZkIiwiTTIzMi41IDUuMmMxNC45LTYuOSAzMi4xLTYuOSA0NyAwbDIxOC42IDEwMWM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgMTQ5LjhDNS40IDE0NS44IDAgMTM3LjMgMCAxMjhzNS40LTE3LjkgMTMuOS0yMS44TDIzMi41IDUuMnpNNDguMSAyMTguNGwxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSAyNzcuOEM1LjQgMjczLjggMCAyNjUuMyAwIDI1NnM1LjQtMTcuOSAxMy45LTIxLjhsMzQuMS0xNS44ek0xMy45IDM2Mi4ybDM0LjEtMTUuOCAxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSA0MDUuOEM1LjQgNDAxLjggMCAzOTMuMyAwIDM4NHM1LjQtMTcuOSAxMy45LTIxLjh6Il19LFpQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtbWFzayIsaWNvbjpbNTEyLDUxMixbXSwiZTA2MyIsIk00NDUuOSAxOTNjLS4xLS40LS4yLS45LS4yLTEuMy0xNS43LTEwOC40LTEwOC45LTE5MS43LTIyMS43LTE5MS43LTg1IDAtMTU5IDQ3LjQtMTk2LjkgMTE3LjJMMjgzLjMgMjg4IDQ1NiAyODggNDQyLjkgMzM2IDMzNiAzMzZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsOTguMiAwLTguNyAzMi04OS41IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAuNiAwYy02LjcgMTkuMS0yNC44IDMyLTQ1LjMgMzJMMjg4IDQ2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMDQuNS0yNDcuNS0xNjVDMyAxODIuMSAwIDIwMi43IDAgMjI0IDAgMjc4IDE5LjEgMzI3LjUgNTAuOSAzNjYuMiA1OC45IDM3NS45IDY0IDM4Ny44IDY0IDQwMC40TDY0IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjcuMyAwIC43IDAgMTMxLjMgMGM0NC45IDAgODMuOC0zMS4xIDkzLjYtNzQuOWwzMy45LTE1MC4zYzMuMy0xNC40LS4zLTI5LjUtOS43LTQxTDQ0NS45IDE5M3pNMjg4IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxrVT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcyIsaWNvbjpbNTEyLDUxMixbInNpZ24tbGFuZ3VhZ2UiLCJzaWduaW5nIl0sImYyYTciLCJNNTEyIDE2MGwtLjEgNzIuNmMwIDQ0LjgtMTcuNiA4Ny4xLTQ3LjkgMTE4LjQtLjMtNzctNDAuMS0xNDguNC0xMDUuNC0xODkuM2wtMS45LTEuMmMyLjUtMy43IDIuOC04LjYgLjQtMTIuN2wtNjItMTA3LjRjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44UzMzMCA1IDMzNi42IDE2LjVsNjggMTE3LjggMCAwIDAgMCA0My4zIDc1IC4xLTQ5LjNjMC0xNy43IDE0LjQtMzIgMzItMzJzMzIgMTQuNCAzMiAzMnpNMjk4LjQgMTI0LjJjLTE0LjEtOC44LTI5LjgtMTIuNy00NS4yLTEyLjFMMjE2LjcgNDguOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4LjhsNjcuMSAxMTYuMi0yNy0xNi45ek0yMTEuOSA4OC41bDE2LjQgMjguNGMtMTUuMSA1LjUtMjguNiAxNS42LTM4LjMgMjkuN2wtMTkuNy0zNC4yYy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHptLTQ2LjQgNjMuN2wxMi41IDIxLjdjLTIgOC42LTIuNSAxNy41LTEuNyAyNi4xbC00LjMgMCAwIDAtMzQuNCAwLTEzLjctMjMuOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4Ljh6TTIyOC45IDE3NWM5LjQtMTUgMjkuMS0xOS41IDQ0LjEtMTAuMmw2MC4yIDM3LjZDMzg0LjcgMjM0LjcgNDE2IDI5MS4yIDQxNiAzNTJsMCA4YzAgODMuOS02OC4xIDE1Mi0xNTIgMTUyTDg4IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5MiAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDU2IDQ0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMjQgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkwyNCAzNjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTU2IDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMNTYgMjk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEzNiAwIDAgMCAwIDAgOTMuMiAwLTQ2LjItMjguOWMtMTUtOS40LTE5LjUtMjkuMS0xMC4yLTQ0LjF6Il19LFhQdD1rVSxRUHQ9a1UsS1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldHMiLGljb246WzUxMiw1MTIsW10sImY0OTAiLCJNNDk1LjMgNzYuNmMtNC42LTguNy0xNi4zLTkuNy0yMy4zLTIuN0wyOTcuOSAyNDhjLTcgNy02IDE4LjcgMi43IDIzLjMgMjAuMSAxMC43IDQzIDE2LjcgNjcuNCAxNi43IDc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjQuMy02LTQ3LjMtMTYuNy02Ny40ek0yNDAuNyAyMTEuNGM0LjYgOC43IDE2LjMgOS43IDIzLjMgMi43TDQzOC4xIDQwYzctNyA2LTE4LjctMi43LTIzLjMtMjAuMS0xMC43LTQzLTE2LjctNjcuNC0xNi43LTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMjQuMyA2IDQ3LjMgMTYuNyA2Ny40ek0xNDQgMjI0Qzc5LjIgMjI0IDI0LjQgMjY2LjggNi4zIDMyNS42IDMuNCAzMzUuMSAxMSAzNDQgMjAuOSAzNDRsMjQ2LjIgMGM5LjkgMCAxNy41LTguOSAxNC42LTE4LjQtLjktMy0xLjktNS45LTMtOC43LTM3LjQtMTguMS02OC00OC04Ny04NC44LTE0LjktNS4yLTMwLjktOC4xLTQ3LjYtOC4xek0yODEuNyA0MTAuNGMyLjktOS41LTQuNy0xOC40LTE0LjYtMTguNEwyMC45IDM5MkMxMSAzOTIgMy40IDQwMC45IDYuMyA0MTAuNCAyNC40IDQ2OS4yIDc5LjIgNTEyIDE0NCA1MTJzMTE5LjYtNDIuOCAxMzcuNy0xMDEuNnoiXX0sSlB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlaWdodC1oYW5naW5nIixpY29uOls1MTIsNTEyLFtdLCJmNWNkIiwiTTIyNCA5NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjIuNSAzMmMzLjUtMTAgNS41LTIwLjggNS41LTMyIDAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMTEuMiAxLjkgMjIgNS41IDMybC0yMS44IDBjLTI4LjMgMC01My4yIDE4LjUtNjEuMyA0NS42TDIuNCA0NDAuMkMuOCA0NDUuNCAwIDQ1MC44IDAgNDU2LjIgMCA0ODcgMjUgNTEyIDU1LjggNTEybDQwMC40IDBjMzAuOCAwIDU1LjgtMjUgNTUuOC01NS44IDAtNS40LS44LTEwLjgtMi40LTE2bC04MC0yNjYuNWMtOC4xLTI3LjEtMzMtNDUuNi02MS4zLTQ1LjZsLTIxLjggMHoiXX0sZUl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UiLGljb246WzUxMiw1MTIsWzEyNzkyMl0sImY1MjIiLCJNMTQxLjQgMi4zQzEwMy04IDYzLjUgMTQuOCA1My4zIDUzLjJMMi41IDI0Mi43Qy03LjggMjgxLjEgMTUgMzIwLjYgNTMuNCAzMzAuOWwxODkuNSA1MC44YzM4LjQgMTAuMyA3Ny45LTEyLjUgODguMi01MC45bDUwLjgtMTg5LjVjMTAuMy0zOC40LTEyLjUtNzcuOS01MC45LTg4LjJMMTQxLjQgMi4zem0yMyAyMDUuN2EzMiAzMiAwIDEgMSA1NS40LTMyIDMyIDMyIDAgMSAxIC01NS40IDMyek03OS4yIDIyMC4zYTMyIDMyIDAgMSAxIDMyIDU1LjQgMzIgMzIgMCAxIDEgLTMyLTU1LjR6bTE4NSA5Ni40YTMyIDMyIDAgMSAxIC0zMi01NS40IDMyIDMyIDAgMSAxIDMyIDU1LjR6bTktMjA4LjRhMzIgMzIgMCAxIDEgMzIgNTUuNCAzMiAzMiAwIDEgMSAtMzItNTUuNHptLTEyMSAxNC40YTMyIDMyIDAgMSAxIC0zMi01NS40IDMyIDMyIDAgMSAxIDMyIDU1LjR6TTQxOCAxOTJMMzc3LjQgMzQzLjJjLTE3LjIgNjQtODMgMTAyLTE0NyA4NC45bC0zOC4zLTEwLjMgMCAzMC4yYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDQxOCAxOTJ6Il19LE80ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLXNsYXNoIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0LXNsYXNoIl0sImUwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTctNTcgMC0xOTAuM2MyNi44LTEuOSA0OC0yNC4zIDQ4LTUxLjYgMC04LTEuOS0xNi01LjUtMjMuMkw0OTcuNyA2Ny40QzQ4Ni44IDQ1LjcgNDY0LjcgMzIgNDQwLjQgMzJMMTM1LjYgMzJjLTEwLjcgMC0yMSAyLjctMzAuMiA3LjZMNDEtMjQuOXpNMzIxLjggMjU2TDQ0OCAyNTYgNDQ4IDM4Mi4yIDMyMS44IDI1NnpNMzUyIDQyMS44bC02NC02NCAwIDEwLjJjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTEyIDU4LjIgMC0xMzQuOC0xMzQuOC0yOS45IDU5LjljLTMuNiA3LjItNS41IDE1LjEtNS41IDIzLjIgMCAyNy4zIDIxLjIgNDkuNyA0OCA1MS42TDY0IDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEwLjJ6Il19LHRJdD1PNGUsQjRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQtZG93biIsaWNvbjpbMzg0LDUxMixbInNvcnQtZGVzYyJdLCJmMGRkIiwiTTMyIDI4OGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzMzMuNSA5LjQgMzQyLjZsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzM2NC45IDI4OCAzNTIgMjg4TDMyIDI4OHoiXX0sYUl0PUI0ZSxySXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVzZXRhLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUyMjEiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDEwNC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAyMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjODAuMiAwIDE0Ni42LTU5IDE1OC4yLTEzNmwyNS44IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI1LjggMEMzODYuNiA5MSAzMjAuMiAzMiAyNDAgMzJMMTEyIDMyek0zMzMgMTY4bC0xODkgMCAwLTcyIDk2IDBjNDQuNyAwIDgyLjMgMzAuNiA5MyA3MnpNMTQ0IDIxNmwxODkgMGMtMTAuNyA0MS40LTQ4LjIgNzItOTMgNzJsLTk2IDAgMC03MnoiXX0sUjRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldC1zY3JlZW4tYnV0dG9uIixpY29uOls0NDgsNTEyLFsidGFibGV0LWFsdCJdLCJmM2ZhIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNMjU2IDQzMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zODQgNjRsLTMyMCAwIDAgMjg4IDMyMCAwIDAtMjg4eiJdfSxpSXQ9UjRlLEg0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctZG9sbGFyIixpY29uOls1NzYsNTEyLFsiaGFuZC1ob2xkaW5nLXVzZCJdLCJmNGMwIiwiTTI4OC0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMi0xLjggMGMtMzYuNiAwLTY2LjIgMjkuNy02Ni4yIDY2LjIgMCAzMy40IDI0LjkgNjEuNiA1OCA2NS43bDYxIDcuNmM1LjEgLjYgOSA1IDkgMTAuMiAwIDUuNy00LjYgMTAuMi0xMC4yIDEwLjJMMjQwIDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhzMTIuNSAyOCAyOCAyOGwyNCAwIDAgMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEyIDEuOCAwYzM2LjYgMCA2Ni4yLTI5LjcgNjYuMi02Ni4yIDAtMzMuNC0yNC45LTYxLjYtNTgtNjUuN2wtNjEtNy42Yy01LjEtLjYtOS01LTktMTAuMiAwLTUuNyA0LjYtMTAuMiAxMC4yLTEwLjJMMzI4IDc2YzE1LjUgMCAyOC0xMi41IDI4LTI4cy0xMi41LTI4LTI4LTI4bC0xNiAwIDAtMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSxvSXQ9SDRlLHE0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQiLGljb246WzUxMiw1MTIsWzEyODczNywic2hpZWxkLWJsYW5rIl0sImYxMzIiLCJNMjU2IDBjNC42IDAgOS4yIDEgMTMuNCAyLjlMNDU3LjggODIuOGMyMiA5LjMgMzguNCAzMSAzOC4zIDU3LjItLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yLTE2LjcgOC0zNi4xIDgtNTIuOCAwLTE3Mi40LTgyLjUtMjEzLjEtMjY0LTIxMy42LTM2My4yLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjkgMSAyNTEuNCAwIDI1NiAweiJdfSxzSXQ9cTRlLFY0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoIixpY29uOls1MTIsNTEyLFsibGF1Z2giXSwiZjU5OSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTAxLjYgMzE0Yy0zLjctMTMuNyA3LjUtMjYgMjEuNy0yNmwyNjUuNCAwYzE0LjIgMCAyNS40IDEyLjMgMjEuNyAyNi0xOC41IDY4LTgwLjYgMTE4LTE1NC40IDExOFMxMjAgMzgyIDEwMS42IDMxNHpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxuSXQ9VjRlLGxJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nIixpY29uOls2NDAsNTEyLFtdLCJmNGMyIiwiTTgwIDEwNGMwLTIyLjEtMTcuOS00MC00MC00MFMwIDgxLjkgMCAxMDRMMCAzMjUuNWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOUwxMjggNDkzLjNjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN2w2Ni43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC03OC45YzAtMjkuNy0xMS44LTU4LjItMzIuOC03OS4ybC0yNS4zLTI1LjMgMCAwYy03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjIgMTEgMTEgOS4yIDI5LjItMy43IDM3LjgtOS43IDYuNS0yMi43IDUuMi0zMS0zLjFMOTguNyAzMDkuNWMtMTItMTItMTguNy0yOC4zLTE4LjctNDUuM0w4MCAxMDR6bTQ4MCAwbDAgMTYwLjJjMCAxNy02LjcgMzMuMy0xOC43IDQ1LjNsLTUxLjEgNTEuMWMtOC4zIDguMy0yMS4zIDkuNi0zMSAzLjEtMTIuOS04LjYtMTQuNy0yNi45LTMuNy0zNy44IDcuMy03LjMgMjMuMS0yMy4xIDQ3LjItNDcuMiAxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGMtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjJsMCAwLTI1LjMgMjUuM2MtMjEgMjEtMzIuOCA0OS41LTMyLjggNzkuMmwwIDc4LjljMCAyNi41IDIxLjUgNDggNDggNDhsNjYuNyAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43bDk5LjktOTkuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45TDY0MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB6Il19LFU0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LXNob3BwaW5nIixpY29uOls2NDAsNTEyLFsxMjg3MjIsInNob3BwaW5nLWNhcnQiXSwiZjA3YSIsIk0yNC0xNkMxMC43LTE2IDAtNS4zIDAgOFMxMC43IDMyIDI0IDMybDQ1LjMgMGMzLjkgMCA3LjIgMi44IDcuOSA2LjZsNTIuMSAyODYuM2M2LjIgMzQuMiAzNiA1OS4xIDcwLjggNTkuMUw0NTYgMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNTUuOSAwYy0xMS42IDAtMjEuNS04LjMtMjMuNi0xOS43bC01LjEtMjguMyAzMDMuNiAwYzMwLjggMCA1Ny4yLTIxLjkgNjIuOS01Mi4yTDU2OC45IDY5LjlDNTcyLjYgNTAuMiA1NTcuNSAzMiA1MzcuNCAzMmwtNDEyLjcgMC0uNC0yYy00LjgtMjYuNi0yOC00Ni01NS4xLTQ2TDI0LTE2ek0yMDggNTEyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjI0IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxjSXQ9VTRlLGRJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvY3RhZ29uIixpY29uOls1MTIsNTEyLFsxMjg3MjFdLCJmMzA2IiwiTTE4OC42IC4xYy0xNyAwLTMzLjMgNi43LTQ1LjMgMTguN0wxOS4yIDE0M0M3LjIgMTU1IC41IDE3MS4yIC41IDE4OC4ybDAgMTM1LjZjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMMTQzLjQgNDkzLjJjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN2wxMzUuNiAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My42IDM2OWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zbDAtMTM1LjZjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzY5LjUgMTguOGMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wxODguNiAuMXoiXX0sZkl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjI1YSIsIk0xMjggNDBjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDE0OC4yYzguNS03LjYgMTkuNy0xMi4yIDMyLTEyLjIgMjAuNiAwIDM4LjIgMTMgNDUgMzEuMiA4LjgtOS4zIDIxLjItMTUuMiAzNS0xNS4yIDI1LjMgMCA0NiAxOS41IDQ3LjkgNDQuMyA4LjUtNy43IDE5LjgtMTIuMyAzMi4xLTEyLjMgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMTJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTg1LjMgMGMtNSAwLTkuOS0uMy0xNC43LTEtNTUuMy01LjYtMTA2LjItMzQtMTQwLTc5TDggMzM2Yy0xMy4zLTE3LjctOS43LTQyLjcgOC01NnM0Mi43LTkuNyA1NiA4bDU2IDc0LjcgMC0zMjIuN3pNMjQwIDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2eiJdfSx1SXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVnaXN0ZXJlZCIsaWNvbjpbNTEyLDUxMixbMTc0XSwiZjI1ZCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDE0NGw4MCAwYzM5LjggMCA3MiAzMi4yIDcyIDcyIDAgMjguOS0xNyA1My44LTQxLjYgNjUuM2wzMC4yIDUwLjNjNi44IDExLjQgMy4xIDI2LjEtOC4yIDMyLjlzLTI2LjEgMy4xLTMyLjktOC4ybC00MS02OC4zLTM0LjQgMCAwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0em03MiA5Nmw4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDAgMCA0OCA0OCAweiJdfSxwSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2Utc2lnbmFsIixpY29uOls1NzYsNTEyLFtdLCJlMDEyIiwiTTUxNS45IDI0MGwtMTkuOSAwIDAgMTQ0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMzcgMGMtMjQtOTEuNy05My41LTE2NS0xODMtMTk0LjNsMC0xMy43LTE5LjkgMGMtMTUuNSAwLTI4LjEtMTIuNi0yOC4xLTI4LjEgMC03LjYgMy4xLTE0LjkgOC42LTIwLjJMMjc2LjUtNC45QzI4My45LTEyIDI5My43LTE2IDMwNC0xNnMyMC4xIDQgMjcuNSAxMS4xTDUzNS40IDE5MS43YzUuNSA1LjMgOC42IDEyLjYgOC42IDIwLjIgMCAxNS41LTEyLjYgMjguMS0yOC4xIDI4LjF6TTI4MCAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwek0yNCAyODhjMTI4LjEgMCAyMzIgMTAzLjkgMjMyIDIzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODQtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0wIDQwOGMwLTEzLjMgMTAuNy0yNCAyNC0yNCA3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OC0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0saEl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmdsYWRlc2hpLXRha2Etc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTJlNiIsIk0zNiAzMi4zQzE4LjQgMzAuMSAyLjQgNDIuNSAuMyA2MFMxMC41IDkzLjYgMjggOTUuOGw3LjkgMWMxNiAyIDI4IDE1LjYgMjggMzEuOGwwIDMxLjUtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgMTc2YzAgNTMgNDMgOTYgOTYgOTZsMzIgMGMxMDYgMCAxOTItODYgMTkyLTE5MmwwLTMyYzAtNTMtNDMtOTYtOTYtOTZsLTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE3NiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtMzEuNUMxMjggODAuMSA5MiAzOS4yIDQzLjkgMzMuMmwtNy45LTF6Il19LGdvMT17ZmEwOkhkdCxmYTE6cWR0LGZhMjpWZHQsZmEzOlVkdCxmYTQ6amR0LGZhNTpXZHQsZmE2OkdkdCxmYTc6WWR0LGZhODpaZHQsZmE5OlhkdCxmYURvbGxhclNpZ246VFYsZmFEb2xsYXI6UWR0LGZhVXNkOktkdCxmYURvZzpKZHQsZmFUcnVja01vdmluZzplN3QsZmFSb3RhdGU6SWFlLGZhU3luY0FsdDp0N3QsZmFTcXVhcmVNaW51czpGYWUsZmFNaW51c1NxdWFyZTphN3QsZmFBbGlnbkp1c3RpZnk6cjd0LGZhQ2FsZW5kYXJDaGVjazppN3QsZmFGYWNlS2lzczpPYWUsZmFLaXNzOm83dCxmYUtpdGNoZW5TZXQ6czd0LGZhRG5hOm43dCxmYUNoaWxkUmVhY2hpbmc6bDd0LGZhUGFzdGU6ZzcsZmFGaWxlQ2xpcGJvYXJkOmM3dCxmYU1ldGVvcjpkN3QsZmFHZWFyczpCYWUsZmFDb2dzOmY3dCxmYUZpbGVDaXJjbGVQbHVzOnU3dCxmYUljaWNsZXM6cDd0LGZhQXJyb3dUcmVuZFVwOmg3dCxmYUhleGFnb25Ob2Rlc0JvbHQ6bTd0LGZhUXVlc3Rpb246Zzd0LGZhSGFuZHNCb3VuZDp4N3QsZmFQZXJzb25XYWxraW5nTHVnZ2FnZTpiN3QsZmFGaWxlQXJyb3dEb3duOlJhZSxmYUZpbGVEb3dubG9hZDp2N3QsZmFQZXJzb25Cb290aDp5N3QsZmFMb2N1c3Q6dzd0LGZhUmlnaHRMb25nOkhhZSxmYUxvbmdBcnJvd0FsdFJpZ2h0Ok03dCxmYVRydWNrRHJvcGxldDp6N3QsZmFIYW5kSG9sZGluZ01lZGljYWw6azd0LGZhSGFuZFBvaW50TGVmdDpTN3QsZmFDYWxjdWxhdG9yOkM3dCxmYU1pbnVzOng3LGZhU3VidHJhY3Q6TDd0LGZhQXJyb3dVcFpBOnFhZSxmYVNvcnRBbHBoYVVwQWx0OlQ3dCxmYU1pY3JvcGhvbmVTbGFzaDpfN3QsZmFTcXVhcmVQZW46X1YsZmFQZW5TcXVhcmU6QTd0LGZhUGVuY2lsU3F1YXJlOiQ3dCxmYUhhbmRGaXN0OlZhZSxmYUZpc3RSYWlzZWQ6RDd0LGZhQ29tbWVudFNtczpVYWUsZmFTbXM6RTd0LGZhU2ltQ2FyZDpON3QsZmFTY2FsZUJhbGFuY2VkOmphZSxmYUJhbGFuY2VTY2FsZTpQN3QsZmFDYXI6V2FlLGZhQXV0b21vYmlsZTpJN3QsZmFDcm9wU2ltcGxlOkdhZSxmYUNyb3BBbHQ6Rjd0LGZhTWVkYWw6Tzd0LGZhU2Nyb2xsOkI3dCxmYUZpbGVFeGNlbDpSN3QsZmFGaWx0ZXI6SDd0LGZhRHJ1bTpxN3QsZmFNYXBQaW46Vjd0LGZhU2NhbGVVbmJhbGFuY2VkRmxpcDpZYWUsZmFCYWxhbmNlU2NhbGVSaWdodDpVN3QsZmFBcnJvd3NUb0NpcmNsZTpqN3QsZmFFbnZlbG9wZTpXN3QsZmFCYWJ5Okc3dCxmYVNxdWFyZUNhcmV0RG93bjpaYWUsZmFDYXJldFNxdWFyZURvd246WTd0LGZhVGVudDpaN3QsZmFBOlg3dCxmYVBhcmFjaHV0ZUJveDpRN3QsZmFDYXJ0QXJyb3dEb3duOks3dCxmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uOko3dCxmYUNsb3VkQXJyb3dVcDpBVixmYUNsb3VkVXBsb2FkOmVmdCxmYUNsb3VkVXBsb2FkQWx0OnRmdCxmYUF0OmFmdCxmYUluZGlhblJ1cGVlU2lnbjokVixmYUluZGlhblJ1cGVlOnJmdCxmYUlucjppZnQsZmFUcnVjazpvZnQsZmFDaGFsa2JvYXJkVXNlcjpYYWUsZmFDaGFsa2JvYXJkVGVhY2hlcjpzZnQsZmFVc2VyQ2hlY2s6bmZ0LGZhVXNlck5pbmphOmxmdCxmYVBsYW50V2lsdDpjZnQsZmFXZWlnaHRTY2FsZTpRYWUsZmFXZWlnaHQ6ZGZ0LGZhQ2FyZXRSaWdodDpTVSxmYUZsb3JpblNpZ246ZmZ0LGZhQmVsbDpDVSxmYUxhcmlTaWduOnVmdCxmYU1pbGxTaWduOnBmdCxmYVBlcnNvblNub3dib2FyZGluZzpLYWUsZmFTbm93Ym9hcmRpbmc6aGZ0LGZhVHR5OkphZSxmYVRlbGV0eXBlOm1mdCxmYVVzZXJzUmVjdGFuZ2xlOmdmdCxmYU1vYmlsZTpEVixmYU1vYmlsZUFuZHJvaWQ6eGZ0LGZhTW9iaWxlUGhvbmU6YmZ0LGZhQXJyb3dzVHVyblRvRG90czp2ZnQsZmFFeGNsYW1hdGlvbjp5ZnQsZmFDaHVyY2g6d2Z0LGZhVG9nZ2xlT2ZmOk1mdCxmYVNob2VQcmludHM6emZ0LGZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uOmtmdCxmYVdhbGxldDpMVSxmYU1lc3NhZ2U6YjcsZmFDb21tZW50QWx0OlNmdCxmYVRyb3BoeTpDZnQsZmFGYWNlRGl6enk6ZXJlLGZhRGl6enk6TGZ0LGZhQmFjdGVyaWE6VGZ0LGZhRWFyRGVhZjplNyxmYURlYWY6X2Z0LGZhRGVhZm5lc3M6QWZ0LGZhSGFyZE9mSGVhcmluZzokZnQsZmFQZW9wbGVBcnJvd3M6dHJlLGZhUGVvcGxlQXJyb3dzTGVmdFJpZ2h0OkRmdCxmYUhhbmRzQ2xhcHBpbmc6RWZ0LGZhVmlydXNDb3ZpZFNsYXNoOk5mdCxmYUNhbGVuZGFyRGF5czphcmUsZmFDYWxlbmRhckFsdDpQZnQsZmFEaWFtb25kVHVyblJpZ2h0OnJyZSxmYURpcmVjdGlvbnM6SWZ0LGZhSGFuZFBvaW50VXA6RmZ0LGZhQmV6aWVyQ3VydmU6T2Z0LGZhUGVyc29uSGFsZkRyZXNzOkJmdCxmYVNxdWFyZVBvbGxIb3Jpem9udGFsOmlyZSxmYVBvbGxIOlJmdCxmYVNjaG9vbENpcmNsZVhtYXJrOkhmdCxmYUhhbmRMaXphcmQ6cWZ0LGZhQ2hhbGtib2FyZDpvcmUsZmFCbGFja2JvYXJkOlZmdCxmYVVwUmlnaHRGcm9tU3F1YXJlOnNyZSxmYUV4dGVybmFsTGlua0FsdDpVZnQsZmFTcXVhcmVGdWxsOmpmdCxmYUNsb3ZlcjpXZnQsZmFUZWV0aE9wZW46R2Z0LGZhQmFyc1N0YWdnZXJlZDpFVixmYVJlb3JkZXI6WWZ0LGZhU3RyZWFtOlpmdCxmYVdhcmVob3VzZTpYZnQsZmFTd2F0Y2hib29rOlFmdCxmYUNhbXBncm91bmQ6S2Z0LGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQ6SmZ0LGZhR2xhc3NlczpldXQsZmFDaXJjbGVQYXVzZTpucmUsZmFQYXVzZUNpcmNsZTp0dXQsZmFNZW1vcnk6YXV0LGZhR2lmdDpydXQsZmFNb25leUJpbGxXaGVhdDppdXQsZmFEdW5nZW9uOm91dCxmYVN1aXRjYXNlTWVkaWNhbDpscmUsZmFNZWRraXQ6c3V0LGZhUGVyc29uQ2FuZTpudXQsZmFHYXVnZTp0NyxmYURhc2hib2FyZDpsdXQsZmFHYXVnZU1lZDpjdXQsZmFUYWNob21ldGVyQWx0QXZlcmFnZTpkdXQsZmFFbnZlbG9wZU9wZW5UZXh0OmZ1dCxmYVRvb2xib3g6dXV0LGZhUG93ZXJPZmY6cHV0LGZhU2lnbmFsOk5WLGZhU2lnbmFsNTpodXQsZmFTaWduYWxQZXJmZWN0Om11dCxmYUFycm93c1NwaW46Z3V0LGZhSm9pbnQ6eHV0LGZhQnJhaWxsZTpidXQsZmFCYXNrZXRTaG9wcGluZzpjcmUsZmFTaG9wcGluZ0Jhc2tldDp2dXQsZmFCcmlkZ2U6eXV0LGZhUGxhbmVBcnJpdmFsOnd1dCxmYUNhc2hSZWdpc3RlcjpNdXQsZmFSaW5nOnp1dCxmYVNoYXJlTm9kZXM6ZHJlLGZhU2hhcmVBbHQ6a3V0LGZhUGVyc29uQ2lyY2xlRXhjbGFtYXRpb246U3V0LGZhQmlub2N1bGFyczpDdXQsZmFLaXBTaWduOkx1dCxmYUhhcmREcml2ZTpmcmUsZmFIZGQ6VHV0LGZhUmFua2luZ1N0YXI6X3V0LGZhVXNlclRpZTpBdXQsZmFFbGxpcHNpczp1cmUsZmFFbGxpcHNpc0g6JHV0LGZhU3RvcmVTbGFzaDpEdXQsZmFQZXJjZW50OnByZSxmYVBlcmNlbnRhZ2U6RXV0LGZhRmlsZVppcHBlcjpocmUsZmFGaWxlQXJjaGl2ZTpOdXQsZmFEaXNwbGF5OlB1dCxmYUljb25zOm1yZSxmYUhlYXJ0TXVzaWNDYW1lcmFCb2x0Okl1dCxmYVJ1bGVyVmVydGljYWw6RnV0LGZhTWFwTG9jYXRpb25Eb3Q6Z3JlLGZhTWFwTWFya2VkQWx0Ok91dCxmYUhlYXJ0Q3JhY2s6eHJlLGZhSGVhcnRCcm9rZW46QnV0LGZhQ293OlJ1dCxmYVJzczp2NyxmYUZlZWQ6SHV0LGZhTWFnbmlmeWluZ0dsYXNzOnk3LGZhU2VhcmNoOnF1dCxmYUNsb3VkTW9vbjpWdXQsZmFCb3hlc1N0YWNrZWQ6UFYsZmFCb3hlczpVdXQsZmFCb3hlc0FsdDpqdXQsZmFDb2RlQnJhbmNoOld1dCxmYUJhbjpicmUsZmFDYW5jZWw6R3V0LGZhSnVnRGV0ZXJnZW50Oll1dCxmYVJlcGx5OnZyZSxmYU1haWxSZXBseTpadXQsZmFTdW5QbGFudFdpbHQ6WHV0LGZhQmFjdGVyaXVtOlF1dCxmYVJlY29yZFZpbnlsOkt1dCxmYUZsb3BweURpc2s6eXJlLGZhU2F2ZTpKdXQsZmFUb2lsZXRzUG9ydGFibGU6ZXB0LGZhTzp0cHQsZmFQYWxldHRlOmFwdCxmYVVubG9jazpycHQsZmFFYXJMaXN0ZW46d3JlLGZhQXNzaXN0aXZlTGlzdGVuaW5nU3lzdGVtczppcHQsZmFDb2RlUHVsbFJlcXVlc3Q6b3B0LGZhS2V5OnNwdCxmYVNrdWxsOm5wdCxmYU1hcnNTdHJva2VVcDpNcmUsZmFNYXJzU3Ryb2tlVjpscHQsZmFGaXJlRmxhbWVTaW1wbGU6enJlLGZhQnVybjpjcHQsZmFUcmVlOmRwdCxmYVNtb2c6ZnB0LGZhUzp1cHQsZmFKZWRpOnBwdCxmYVBlcnNvbkhpa2luZzprcmUsZmFIaWtpbmc6aHB0LGZhQXJyb3dzVXBUb0xpbmU6bXB0LGZhTWFyc0RvdWJsZTpncHQsZmFUaGVybW9tZXRlcjp4cHQsZmFQYWludGJydXNoOlNyZSxmYVBhaW50QnJ1c2g6YnB0LGZhTmV1dGVyOnZwdCxmYVNxdWFyZVBob25lRmxpcDpDcmUsZmFQaG9uZVNxdWFyZUFsdDp5cHQsZmFGYWNlR3JpblRvbmd1ZVNxdWludDpMcmUsZmFHcmluVG9uZ3VlU3F1aW50OndwdCxmYUNvbW1lbnREb2xsYXI6TXB0LGZhSGlwcG86enB0LGZhQm93bEZvb2Q6a3B0LGZhU3F1YXJlVmlydXM6U3B0LGZhQ2xvdWRTdW5SYWluOkNwdCxmYUFycm93UmlnaHRMb25nOlRyZSxmYUxvbmdBcnJvd1JpZ2h0OkxwdCxmYUJ1aWxkaW5nVW46VHB0LGZhVGVtcGVyYXR1cmVMb3c6X3B0LGZhRG9vck9wZW46QXB0LGZhQWxpZ25MZWZ0OiRwdCxmYUNhbWVyYTpfcmUsZmFDYW1lcmFBbHQ6RHB0LGZhVXNlcnNSYXlzOkVwdCxmYVJhaW5ib3c6TnB0LGZhU2l0ZW1hcDpQcHQsZmFGYWNlR3JpblN0YXJzOkFyZSxmYUdyaW5TdGFyczpJcHQsZmFTb3J0VXA6JHJlLGZhU29ydEFzYzpGcHQsZmFFeWU6VFUsZmFDYXJldExlZnQ6X1UsZmFBcHBsZVdob2xlOkRyZSxmYUFwcGxlQWx0Ok9wdCxmYVNjcm9sbFRvcmFoOkVyZSxmYVRvcmFoOkJwdCxmYUhvdXNlTG9jazpScHQsZmFBcnJvd3NMZWZ0UmlnaHRUb0xpbmU6SHB0LGZhVHJhc2g6RDcsZmFGYWNlU2FkVGVhcjpOcmUsZmFTYWRUZWFyOnFwdCxmYUZheDpWcHQsZmFQZXJzb25DaXJjbGVQbHVzOlVwdCxmYUhhbXNhOmpwdCxmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uOldwdCxmYUNsaXBib2FyZENoZWNrOkdwdCxmYVNoYXJlRnJvbVNxdWFyZTpQcmUsZmFTaGFyZVNxdWFyZTpZcHQsZmFSZWNlaXB0OkFVLGZhRXF1YWxzOlpwdCxmYUNoZXZyb25VcDpYcHQsZmFWaXJ1c1NsYXNoOlFwdCxmYVNsYXNoOktwdCxmYUV4cGFuZDpKcHQsZmFOb3RlU3RpY2t5OklyZSxmYVN0aWNreU5vdGU6ZTl0LGZhVGFibGVDb2x1bW5zOkZyZSxmYUNvbHVtbnM6dDl0LGZhUGVyc29uU2hlbHRlcjphOXQsZmFDaXJjbGVOb3RjaDpyOXQsZmFXYXRlcjppOXQsZmFEZWxldGVMZWZ0Ok9yZSxmYUJhY2tzcGFjZTpvOXQsZmFCcm9vbUJhbGw6SVYsZmFRdWlkZGl0Y2g6czl0LGZhUXVpZGRpdGNoQnJvb21CYWxsOm45dCxmYUo6bDl0LGZhU2h1dHRsZVNwYWNlOkJyZSxmYVNwYWNlU2h1dHRsZTpjOXQsZmFZaW5ZYW5nOmQ5dCxmYVN0b3A6Zjl0LGZhVHJvd2VsOnU5dCxmYUhhbmRCYWNrRmlzdDpScmUsZmFIYW5kUm9jazpwOXQsZmFUZW1wZXJhdHVyZUhpZ2g6aDl0LGZhR3JlYXRlclRoYW46bTl0LGZhQ3J1dGNoOmc5dCxmYVNlcHRhZ29uOkhyZSxmYUhlcHRhZ29uOng5dCxmYVN0cmVldFZpZXc6Yjl0LGZhV2F2ZVNxdWFyZTp2OXQsZmFBbmdsZUxlZnQ6eTl0LGZhU2NyZXdkcml2ZXI6dzl0LGZhVHJhY3RvcjpNOXQsZmFCcmlkZ2VDaXJjbGVYbWFyazp6OXQsZmFWaWFsczprOXQsZmFTdGV0aG9zY29wZTpTOXQsZmFQb2RjYXN0OkM5dCxmYUFycm93VXBSaWdodERvdHM6TDl0LGZhQ2hlc3NRdWVlbjpUOXQsZmFBbmNob3JDaXJjbGVFeGNsYW1hdGlvbjpfOXQsZmFFbGxpcHNpc1ZlcnRpY2FsOnFyZSxmYUVsbGlwc2lzVjpBOXQsZmFIZWFydENpcmNsZUV4Y2xhbWF0aW9uOiQ5dCxmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb246RDl0LGZhUGVyc29uQXJyb3dVcEZyb21MaW5lOkU5dCxmYU5vdEVxdWFsOk45dCxmYVRyYWluVHJhbTpQOXQsZmFQbGFuZURlcGFydHVyZTpJOXQsZmFSaWdodFRvQnJhY2tldDpWcmUsZmFTaWduSW5BbHQ6Rjl0LGZhU2RDYXJkOk85dCxmYUhvdXNlQ2lyY2xlRXhjbGFtYXRpb246Qjl0LGZhU2hla2VsU2lnbjpLNixmYUlsczpSOXQsZmFTaGVrZWw6SDl0LGZhU2hlcWVsOnE5dCxmYVNoZXFlbFNpZ246Vjl0LGZhUmFkaW86VTl0LGZhSGFuZERvdHM6VXJlLGZhQWxsZXJnaWVzOmo5dCxmYUJvb2tTa3VsbDpqcmUsZmFCb29rRGVhZDpXOXQsZmFVbmxvY2tLZXlob2xlOldyZSxmYVVubG9ja0FsdDpHOXQsZmFGaWxlQXJyb3dVcDpHcmUsZmFGaWxlVXBsb2FkOlk5dCxmYUZhY2VHcmluVGVhcnM6WXJlLGZhR3JpblRlYXJzOlo5dCxmYVBlblRvU3F1YXJlOnc3LGZhRWRpdDpYOXQsZmFFYXJ0aEV1cm9wZTpacmUsZmFHbG9iZUV1cm9wZTpROXQsZmFGYWNlR3JpbkJlYW1Td2VhdDpYcmUsZmFHcmluQmVhbVN3ZWF0Oks5dCxmYUNpcmNsZUhhbGZTdHJva2U6UXJlLGZhQWRqdXN0Oko5dCxmYVBlcnNvbk1pbGl0YXJ5VG9QZXJzb246ZWh0LGZhVGFibGVDZWxsc0NvbHVtbkxvY2s6dGh0LGZhVHJ1Y2tGaWVsZFVuOmFodCxmYUNsb2NrOktyZSxmYUNsb2NrRm91cjpyaHQsZmFCb29rOmlodCxmYUZhY2VMYXVnaFdpbms6SnJlLGZhTGF1Z2hXaW5rOm9odCxmYUNsb3VkTWVhdGJhbGw6c2h0LGZhQ2hhcnRBcmVhOmVpZSxmYUFyZWFDaGFydDpuaHQsZmFSdXBpYWhTaWduOmxodCxmYVRleHRXaWR0aDpjaHQsZmFTYXRlbGxpdGU6ZGh0LGZhTWFnbmlmeWluZ0dsYXNzTWludXM6dGllLGZhU2VhcmNoTWludXM6Zmh0LGZhUGVvcGxlR3JvdXA6dWh0LGZhU3F1YXJlQmluYXJ5OnBodCxmYU1hc2tzVGhlYXRlcjphaWUsZmFUaGVhdGVyTWFza3M6aGh0LGZhQ2FydFBsdXM6bWh0LGZhSGFuZHNBc2xJbnRlcnByZXRpbmc6YTcsZmFBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZzpnaHQsZmFBc2xJbnRlcnByZXRpbmc6eGh0LGZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZzpiaHQsZmFUYWJsZUNlbGxzUm93VW5sb2NrOnZodCxmYVJvY2tldDp5aHQsZmFTaHJpbXA6d2h0LGZhVGVuZ2VTaWduOnJpZSxmYVRlbmdlOk1odCxmYUhvdXNlQ2hpbW5leU1lZGljYWw6aWllLGZhQ2xpbmljTWVkaWNhbDp6aHQsZmFVc2Vyc1NsYXNoOmtodCxmYVBhcGVyUGxhbmU6U2h0LGZhQm9va0F0bGFzOm9pZSxmYUF0bGFzOkNodCxmYVRhYmxlOkxodCxmYUhlYXJ0OlRodCxmYUNpcmNsZUNoZXZyb25VcDpzaWUsZmFDaGV2cm9uQ2lyY2xlVXA6X2h0LGZhQmF0dGVyeUhhbGY6bmllLGZhQmF0dGVyeTM6QWh0LGZhRm9udEF3ZXNvbWU6RlYsZmFGb250QXdlc29tZUZsYWc6JGh0LGZhRm9udEF3ZXNvbWVMb2dvRnVsbDpEaHQsZmFIYW5kY3VmZnM6RWh0LGZhSGF0Q293Ym95U2lkZTpOaHQsZmFJbmR1c3RyeTpQaHQsZmFMaW5lc0xlYW5pbmc6SWh0LGZhUGFzc3BvcnQ6Rmh0LGZhSW5maW5pdHk6T2h0LGZhQ2xvbmU6Qmh0LGZhRm9yd2FyZDpSaHQsZmFNOkhodCxmYVJvYWRTcGlrZXM6cWh0LGZhTW91bnRhaW46Vmh0LGZhQ2hlc3M6VWh0LGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzOnI3LGZhVGVtcGVyYXR1cmUzOmpodCxmYVRoZXJtb21ldGVyMzpXaHQsZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnM6R2h0LGZhQjpZaHQsZmFTaGllbGRWaXJ1czpaaHQsZmFMaXRlY29pblNpZ246WGh0LGZhRGljZUQ2OlFodCxmYUdyaXBMaW5lc1ZlcnRpY2FsOktodCxmYUdvbGZCYWxsVGVlOmxpZSxmYUdvbGZCYWxsOkpodCxmYUhleGFnb246ZW10LGZhRm9sZGVyT3Blbjp0bXQsZmFLYWFiYTphbXQsZmFIYW5kSG9sZGluZzpybXQsZmFTaW5nbGVRdW90ZVJpZ2h0OmltdCxmYUJvdHRsZURyb3BsZXQ6b210LGZhV2luZG93TWluaW1pemU6c210LGZhQ2hldnJvblJpZ2h0Om5tdCxmYUVnZzpsbXQsZmFMYW5kbWFya0RvbWU6Y2llLGZhTGFuZG1hcmtBbHQ6Y210LGZhV29ybTpkbXQsZmFVc2VySW5qdXJlZDpmbXQsZmFTdHJpa2V0aHJvdWdoOnVtdCxmYUJsb2c6cG10LGZhU3RvcHdhdGNoMjA6aG10LGZhVHJ1Y2tQaWNrdXA6bW10LGZhU2VlZGxpbmc6ZGllLGZhU3Byb3V0OmdtdCxmYVRyYW5zZ2VuZGVyOmZpZSxmYVRyYW5zZ2VuZGVyQWx0OnhtdCxmYVN0YXJIYWxmOmJtdCxmYVBob3RvRmlsbTp1aWUsZmFQaG90b1ZpZGVvOnZtdCxmYVB1bXBNZWRpY2FsOnltdCxmYUZpcmU6d210LGZhTWFnbmlmeWluZ0dsYXNzUGx1czpwaWUsZmFTZWFyY2hQbHVzOk1tdCxmYUZsYXNrOnptdCxmYUFsaWduUmlnaHQ6a210LGZhQ2FibGVDYXI6aGllLGZhVHJhbTpTbXQsZmFLaXRNZWRpY2FsOm1pZSxmYUZpcnN0QWlkOkNtdCxmYUdyaXBMaW5lczpMbXQsZmFCdXJnZXI6Z2llLGZhSGFtYnVyZ2VyOlRtdCxmYVNub3dtYW46X210LGZhSG90ZWw6QW10LGZhUHJpbnQ6JG10LGZhVm9sbGV5YmFsbDp4aWUsZmFWb2xsZXliYWxsQmFsbDpEbXQsZmFUcmFmZmljTGlnaHQ6RW10LGZhUGxhbmVDaXJjbGVDaGVjazpObXQsZmFVc2VyczokVSxmYUNlcnRpZmljYXRlOlBtdCxmYUFsYXJtQ2xvY2s6SW10LGZhSGVsaWNvcHRlclN5bWJvbDpGbXQsZmFIb3VzZUNoaW1uZXlDcmFjazpiaWUsZmFIb3VzZURhbWFnZTpPbXQsZmFQZXJzb25NaWxpdGFyeVBvaW50aW5nOkJtdCxmYURhdGFiYXNlOlJtdCxmYU5ld3NwYXBlcjpIbXQsZmFDbG91ZFJhaW46cW10LGZhTWF4aW1pemU6dmllLGZhRXhwYW5kQXJyb3dzQWx0OlZtdCxmYUxvY2F0aW9uQXJyb3c6VW10LGZhQ2l0eTpqbXQsZmFYUmF5OldtdCxmYVVtYnJlbGxhQmVhY2g6R210LGZhQXJyb3dSaWdodFRvQnJhY2tldDp5aWUsZmFTaWduSW46WW10LGZhSGVhZHNldDpabXQsZmFTcGxvdGNoOlhtdCxmYVVwTG9uZzp3aWUsZmFMb25nQXJyb3dBbHRVcDpRbXQsZmFIZXhhZ29uTm9kZXM6S210LGZhSG9zcGl0YWw6T1YsZmFIb3NwaXRhbEFsdDpKbXQsZmFIb3NwaXRhbFdpZGU6ZWd0LGZhUGVyc29uSGFyYXNzaW5nOnRndCxmYU1vbmV5QmlsbFRyZW5kVXA6YWd0LGZhUGVuUnVsZXI6TWllLGZhUGVuY2lsUnVsZXI6cmd0LGZhUmVwZWF0OmlndCxmYUJvbmU6b2d0LGZhRmlyZUZsYW1lQ3VydmVkOnppZSxmYUZpcmVBbHQ6c2d0LGZhQnVzU2ltcGxlOmtpZSxmYUJ1c0FsdDpuZ3QsZmFWZW51c01hcnM6bGd0LGZhQmxlbmRlcjpjZ3QsZmFVOmRndCxmYVNoYXJlOk03LGZhTWFpbEZvcndhcmQ6Zmd0LGZhUGhvbmVGbGlwOlNpZSxmYVBob25lQWx0OnVndCxmYVRvaWxldFBvcnRhYmxlOnBndCxmYVBlcnNvblByZWduYW50OmhndCxmYUxlc3NUaGFuOm1ndCxmYVN1cGVyc2NyaXB0OmdndCxmYUNpcmNsZVN0b3A6Q2llLGZhU3RvcENpcmNsZTp4Z3QsZmFBcnJvd3NVcERvd246TGllLGZhQXJyb3dzVjpiZ3QsZmFQb29TdG9ybTpUaWUsZmFQb29Cb2x0OnZndCxmYVZpZGVvU2xhc2g6eWd0LGZhU3F1YXJlWG1hcms6QlYsZmFUaW1lc1NxdWFyZTp3Z3QsZmFYbWFya1NxdWFyZTpNZ3QsZmFIYW5kSG9sZGluZ0Ryb3BsZXQ6X2llLGZhSGFuZEhvbGRpbmdXYXRlcjp6Z3QsZmFXb25TaWduOlJWLGZhS3J3OmtndCxmYVdvbjpTZ3QsZmFPYmplY3RVbmdyb3VwOkNndCxmYUNvbW1lbnQ6TGd0LGZhSGlsbEF2YWxhbmNoZTpUZ3QsZmFBcnJvd3NUb0V5ZTpfZ3QsZmFTbm93cGxvdzpBZ3QsZmFDaGFydEdhbnR0OiRndCxmYVZpZGVvOkFpZSxmYVZpZGVvQ2FtZXJhOkRndCxmYUNoZXNzUGF3bjpFZ3QsZmFTeW5hZ29ndWU6Tmd0LGZhQnVpbGRpbmdDaXJjbGVDaGVjazpQZ3QsZmFDYWxlbmRhclBsdXM6SWd0LGZhV2hlZWxjaGFpck1vdmU6JGllLGZhV2hlZWxjaGFpckFsdDpGZ3QsZmFVc2VyU2hpZWxkOk9ndCxmYUJvbGQ6Qmd0LGZhSGVhcnRQdWxzZTpEaWUsZmFIZWFydGJlYXQ6Umd0LGZhU3F1YXJlUm9vdFZhcmlhYmxlOkVpZSxmYVNxdWFyZVJvb3RBbHQ6SGd0LGZhSGFuZHNCdWJibGVzOk5pZSxmYUhhbmRzV2FzaDpxZ3QsZmFNYXJrZXI6Vmd0LGZhQ2xpcGJvYXJkOlVndCxmYVBsYWNlT2ZXb3JzaGlwOmpndCxmYUNhbm5hYmlzOldndCxmYVBlb3BsZVJvb2Y6R2d0LGZhRGlzZWFzZTpZZ3QsZmFCb29rQmlibGU6UGllLGZhQmlibGU6Wmd0LGZhQ2hlc3NCb2FyZDpYZ3QsZmFNYXJzOlFndCxmYUxhcHRvcDpLZ3QsZmFVc2VyWG1hcms6SWllLGZhVXNlclRpbWVzOkpndCxmYUZsYWdVc2E6ZXh0LGZhSGFuZE1pZGRsZUZpbmdlcjp0eHQsZmFNb3J0YXJQZXN0bGU6YXh0LGZhSGVhZFNpZGVDb3VnaDpyeHQsZmFQbGFuZUxvY2s6aXh0LGZhQmF0dGVyeVRocmVlUXVhcnRlcnM6RmllLGZhQmF0dGVyeTQ6b3h0LGZhRnJhbmNTaWduOnN4dCxmYUZpbHRlckNpcmNsZURvbGxhcjpPaWUsZmFGdW5uZWxEb2xsYXI6bnh0LGZhQ2hlZXNlOmx4dCxmYUNpcmNsZUg6QmllLGZhSG9zcGl0YWxTeW1ib2w6Y3h0LGZhU2Nob29sOmR4dCxmYURpY2VGaXZlOmZ4dCxmYVRvcm5hZG86dXh0LGZhSmV0RmlnaHRlcjpSaWUsZmFGaWdodGVySmV0OnB4dCxmYVRodW1ic0Rvd246aHh0LGZhQnJvb206bXh0LGZhRmlsZUltcG9ydDpIaWUsZmFBcnJvd1JpZ2h0VG9GaWxlOmd4dCxmYVV0ZW5zaWxzOnFpZSxmYUN1dGxlcnk6eHh0LGZhSWRCYWRnZTpieHQsZmFTcGlkZXI6dnh0LGZhTW9iaWxlUmV0cm86eXh0LGZhU2lnbnNQb3N0OlZpZSxmYU1hcFNpZ25zOnd4dCxmYUdyb3VwQXJyb3dzUm90YXRlOk14dCxmYUFycm93c1NwbGl0VXBBbmRMZWZ0Onp4dCxmYUZpbGxEcmlwOmt4dCxmYVNoaWVsZEhlYXJ0OlN4dCxmYVBlcnNvblNraWluZ05vcmRpYzpVaWUsZmFTa2lpbmdOb3JkaWM6Q3h0LGZhU3F1YXJlQ2hlY2s6amllLGZhQ2hlY2tTcXVhcmU6THh0LGZhQmF0aDpXaWUsZmFCYXRodHViOlR4dCxmYUNoZXNzQmlzaG9wOl94dCxmYVByZXNjcmlwdGlvbkJvdHRsZU1lZGljYWw6R2llLGZhUHJlc2NyaXB0aW9uQm90dGxlQWx0OkF4dCxmYURyYXdQb2x5Z29uOllpZSxmYVZlY3RvclBvbHlnb246JHh0LGZhSUN1cnNvcjpEeHQsZmFIZWFydENpcmNsZVBsdXM6RXh0LGZhU2hpZWxkRG9nOk54dCxmYUdyZWF0ZXJUaGFuRXF1YWw6UHh0LGZhRW52ZWxvcGVPcGVuOkl4dCxmYU1vdW5kOkZ4dCxmYVZvaWNlbWFpbDpPeHQsZmFWZXN0OkJ4dCxmYUF1ZGlvRGVzY3JpcHRpb246Unh0LGZhVzpIeHQsZmFFeWVEcm9wcGVyOkhWLGZhRXllRHJvcHBlckVtcHR5OnF4dCxmYUV5ZWRyb3BwZXI6Vnh0LGZhQ2lyY2xlWG1hcms6YTUsZmFUaW1lc0NpcmNsZTpVeHQsZmFYbWFya0NpcmNsZTpqeHQsZmFUcmFpbGVyOld4dCxmYVR1cmtpc2hMaXJhU2lnbjpxVixmYVRyeTpHeHQsZmFUdXJraXNoTGlyYTpZeHQsZmFWb2xjYW5vOlp4dCxmYVdhbmRTcGFya2xlczpYeHQsZmFNaWNyb3Bob25lOlF4dCxmYUNyb3duOkt4dCxmYVRlbnRBcnJvd1R1cm5MZWZ0Okp4dCxmYVRydWNrRmFzdDpaaWUsZmFTaGlwcGluZ0Zhc3Q6ZWJ0LGZhVXNlclBlbjpYaWUsZmFVc2VyRWRpdDp0YnQsZmFVc2VyQ2xvY2s6YWJ0LGZhU2hvd2VyOnJidCxmYVNxdWFyZUNhcmV0VXA6UWllLGZhQ2FyZXRTcXVhcmVVcDppYnQsZmFNYXBMb2NhdGlvbjpLaWUsZmFNYXBNYXJrZWQ6b2J0LGZhUGVuRmFuY3k6c2J0LGZhRXVyb1NpZ246VlYsZmFFdXI6bmJ0LGZhRXVybzpsYnQsZmFIb3VzZUNpcmNsZVhtYXJrOmNidCxmYUxpcmFTaWduOmRidCxmYVllblNpZ246SjYsZmFDbnk6ZmJ0LGZhSnB5OnVidCxmYVJtYjpwYnQsZmFZZW46aGJ0LGZhQm94T3BlbjptYnQsZmFUcnVja0ZpZWxkOmdidCxmYUxvY2F0aW9uUGluTG9jazp4YnQsZmFQZXJzb25QcmF5aW5nOkppZSxmYVByYXk6YmJ0LGZhQ2xpcGJvYXJkTGlzdDp2YnQsZmFTYWNrRG9sbGFyOnlidCxmYU1vdW50YWluU3VuOndidCxmYUFycm93VXBXaWRlU2hvcnQ6ZW9lLGZhU29ydEFtb3VudFVwOk1idCxmYVVzZXJzTGluZTp6YnQsZmFTdGFyT2ZEYXZpZDprYnQsZmFOb3Rlc01lZGljYWw6U2J0LGZhQXVzdHJhbFNpZ246Q2J0LGZhQ2xpcGJvYXJkVXNlcjpMYnQsZmFGaWxlSW1hZ2U6VGJ0LGZhU3F1YXJlQ2FyZXRSaWdodDp0b2UsZmFDYXJldFNxdWFyZVJpZ2h0Ol9idCxmYVZpYWw6QWJ0LGZhSGVsaWNvcHRlcjokYnQsZmFNaXR0ZW46RGJ0LGZhR2FzUHVtcDpFYnQsZmFFbnZlbG9wZUNpcmNsZUNoZWNrOk5idCxmYVBlcnNvblNrYXRpbmc6YW9lLGZhU2thdGluZzpQYnQsZmFTdW46RFUsZmFCYXNlYmFsbDpyb2UsZmFCYXNlYmFsbEJhbGw6SWJ0LGZhSW1hZ2U6RmJ0LGZhTm90ZGVmOk9idCxmYUJhc2tldGJhbGw6aW9lLGZhQmFza2V0YmFsbEJhbGw6QmJ0LGZhUGVuY2lsOm9vZSxmYVBlbmNpbEFsdDpSYnQsZmFQZXJzb25XYWxraW5nQXJyb3dMb29wTGVmdDpIYnQsZmFEaWNlU2l4OnFidCxmYUFuZ2xlc0Rvd246c29lLGZhQW5nbGVEb3VibGVEb3duOlZidCxmYVN5cmluZ2U6VWJ0LGZhV2hlYXRBd246bm9lLGZhV2hlYXRBbHQ6amJ0LGZhUGxhbmVVcDpXYnQsZmFBbGlnbkNlbnRlcjpHYnQsZmFIb2NrZXlQdWNrOllidCxmYUNpcmNsZUFycm93TGVmdDpsb2UsZmFBcnJvd0NpcmNsZUxlZnQ6WmJ0LGZhUGx1Z0NpcmNsZUJvbHQ6WGJ0LGZhUmVzdHJvb206UWJ0LGZhQW5jaG9yTG9jazpLYnQsZmFUaW1lbGluZTpKYnQsZmFMaWdodGJ1bGI6ZXZ0LGZhQ2lyY2xlQXJyb3dSaWdodDpjb2UsZmFBcnJvd0NpcmNsZVJpZ2h0OnR2dCxmYU1hcnNBbmRWZW51czphdnQsZmFOZXR3b3JrV2lyZWQ6RVUsZmFCdWlsZGluZ1NoaWVsZDpydnQsZmFDb2RlOml2dCxmYUZlYXRoZXJQb2ludGVkOmRvZSxmYUZlYXRoZXJBbHQ6b3Z0LGZhRmlsZUNpcmNsZVF1ZXN0aW9uOnN2dCxmYVNpZ25hdHVyZTpudnQsZmFFYXJ0aEFtZXJpY2FzOmk3LGZhRWFydGg6bHZ0LGZhRWFydGhBbWVyaWNhOmN2dCxmYUdsb2JlQW1lcmljYXM6ZHZ0LGZhQ2Fycm90OmZ2dCxmYVRlbXBlcmF0dXJlRnVsbDpvNyxmYVRlbXBlcmF0dXJlNDp1dnQsZmFUaGVybW9tZXRlcjQ6cHZ0LGZhVGhlcm1vbWV0ZXJGdWxsOmh2dCxmYVRhYmxlQ2VsbHNSb3dMb2NrOm12dCxmYUJvbHRMaWdodG5pbmc6Z3Z0LGZhQ2xvdWRTaG93ZXJzV2F0ZXI6eHZ0LGZhQXJyb3dVcExvbmc6Zm9lLGZhTG9uZ0Fycm93VXA6YnZ0LGZhQWRkcmVzc0NhcmQ6VVYsZmFDb250YWN0Q2FyZDp2dnQsZmFWY2FyZDp5dnQsZmFBbmdsZVJpZ2h0Ond2dCxmYUZhY2VNZWg6dW9lLGZhTWVoOk12dCxmYUFycm93VXBGcm9tR3JvdW5kV2F0ZXI6enZ0LGZhTWFwOmt2dCxmYVVzZXJQbHVzOlN2dCxmYVZlbnVzOkN2dCxmYURpYWdyYW1TdWNjZXNzb3I6THZ0LGZhSGVhZFNpZGVDb3VnaFNsYXNoOlR2dCxmYURpYWdyYW1Qcm9qZWN0OnBvZSxmYVByb2plY3REaWFncmFtOl92dCxmYVRlcm1pbmFsOk5VLGZhSG91c2VGaXJlOkF2dCxmYU1hc2s6JHZ0LGZhSHVycmljYW5lOkR2dCxmYUVhcnRoQWZyaWNhOmhvZSxmYUdsb2JlQWZyaWNhOkV2dCxmYVRodW1idGFjazptb2UsZmFUaHVtYlRhY2s6TnZ0LGZhSGFuZFBvaW50RG93bjpQdnQsZmFGYWNlTWVoQmxhbms6Z29lLGZhTWVoQmxhbms6SXZ0LGZhVGVtcGVyYXR1cmVFbXB0eTpzNyxmYVRlbXBlcmF0dXJlMDpGdnQsZmFUaGVybW9tZXRlcjA6T3Z0LGZhVGhlcm1vbWV0ZXJFbXB0eTpCdnQsZmFCb3JkZXJOb25lOlJ2dCxmYUhpZ2hsaWdodGVyOkh2dCxmYU1vbmV5QmlsbFdhdmU6cXZ0LGZhVG9pbGV0UGFwZXJTbGFzaDpWdnQsZmFGaWxlU2hpZWxkOlV2dCxmYVRleHRIZWlnaHQ6anZ0LGZhRmFjZUdyaW5Ub25ndWU6eG9lLGZhR3JpblRvbmd1ZTpXdnQsZmFGaWxlU2lnbmF0dXJlOkd2dCxmYUJ1aWxkaW5nV2hlYXQ6WXZ0LGZhUGx1Z0NpcmNsZU1pbnVzOlp2dCxmYUZ1dGJvbDpqVixmYUZ1dGJvbEJhbGw6WHZ0LGZhU29jY2VyQmFsbDpRdnQsZmFDaXJjbGVQbHVzOmJvZSxmYVBsdXNDaXJjbGU6S3Z0LGZhQnJhemlsaWFuUmVhbFNpZ246SnZ0LGZhU3RhckFuZENyZXNjZW50OmV5dCxmYUZhY2VTdXJwcmlzZTp2b2UsZmFTdXJwcmlzZTp0eXQsZmFIb3NwaXRhbFVzZXI6YXl0LGZhQXJyb3dEb3duVXBMb2NrOnJ5dCxmYUZvbGRlcjp5b2UsZmFGb2xkZXJCbGFuazppeXQsZmFIb2xseUJlcnJ5Om95dCxmYVZlbnVzRG91YmxlOnN5dCxmYUNsaXBib2FyZFF1ZXN0aW9uOm55dCxmYUhvdGRvZzpseXQsZmFBcnJvd1VwRnJvbUJyYWNrZXQ6Y3l0LGZhTWljcm9zY29wZTpkeXQsZmFDbG91ZDpmeXQsZmFCYXNlYmFsbEJhdEJhbGw6dXl0LGZhQ2FyUmVhcjp3b2UsZmFDYXJBbHQ6cHl0LGZhVGh1bWJ0YWNrU2xhc2g6TW9lLGZhVGh1bWJUYWNrU2xhc2g6aHl0LGZhUGx1c01pbnVzOm15dCxmYUhvdXNlQ2lyY2xlQ2hlY2s6Z3l0LGZhQ2FsZW5kYXJEYXk6eHl0LGZhQ2lyY2xlOmJ5dCxmYU1vYmlsZVZpYnJhdGU6dnl0LGZhRmFjZUdyaW5TcXVpbnQ6em9lLGZhR3JpblNxdWludDp5eXQsZmFVc2Vyc0JldHdlZW5MaW5lczp3eXQsZmFIb3VzZU1lZGljYWxDaXJjbGVYbWFyazpNeXQsZmFUYWJsZUxpc3Q6a29lLGZhVGhMaXN0Onp5dCxmYUZsYXNrVmlhbDpreXQsZmFDaXJjbGVFeGNsYW1hdGlvbjpTb2UsZmFFeGNsYW1hdGlvbkNpcmNsZTpTeXQsZmFUYXhpOkNvZSxmYUNhYjpDeXQsZmFUZXh0U2xhc2g6TG9lLGZhUmVtb3ZlRm9ybWF0Okx5dCxmYVBlb3BsZVB1bGxpbmc6VHl0LGZhQmFja3dhcmQ6X3l0LGZhQ2FyQnVyc3Q6VG9lLGZhQ2FyQ3Jhc2g6QXl0LGZhTGluazpfb2UsZmFDaGFpbjokeXQsZmFCYWNrd2FyZFN0ZXA6QW9lLGZhU3RlcEJhY2t3YXJkOkR5dCxmYVg6RXl0LGZhQ2lyY2xlVXNlcjokb2UsZmFVc2VyQ2lyY2xlOk55dCxmYVJlY3RhbmdsZUxpc3Q6RG9lLGZhTGlzdEFsdDpQeXQsZmFIYW5kOkVvZSxmYUhhbmRQYXBlcjpJeXQsZmFWYW5TaHV0dGxlOk5vZSxmYVNodXR0bGVWYW46Rnl0LGZhU3RhaXJzOk95dCxmYUhvcnNlSGVhZDpCeXQsZmFWYXVsdDpSeXQsZmFEcnVtU3RlZWxwYW46SHl0LGZhVGh1bWJzVXA6cXl0LGZhU3RhbXA6Vnl0LGZhTWVub3JhaDpVeXQsZmFDaGlsZHJlbjpqeXQsZmFDaGFydExpbmU6UG9lLGZhTGluZUNoYXJ0Old5dCxmYVNxdWFyZUVudmVsb3BlOklvZSxmYUVudmVsb3BlU3F1YXJlOkd5dCxmYUJhblNtb2tpbmc6Rm9lLGZhU21va2luZ0JhbjpZeXQsZmFUcnVja0Zyb250Olp5dCxmYUJ1aWxkaW5nOlBVLGZhQnVsbHNleWU6WHl0LGZhQXJyb3dMZWZ0TG9uZzpPb2UsZmFMb25nQXJyb3dMZWZ0OlF5dCxmYUNoZXNzUm9vazpLeXQsZmFCbGVuZGVyUGhvbmU6Snl0LGZhQXJyb3dUdXJuVXA6Qm9lLGZhTGV2ZWxVcDpld3QsZmFCaWN5Y2xlOnR3dCxmYUNpcmNsZUFycm93RG93bjpSb2UsZmFBcnJvd0NpcmNsZURvd246YXd0LGZhR2Vhcjp6NyxmYUNvZzpyd3QsZmFNYXJzQW5kVmVudXNCdXJzdDppd3QsZmFPdHRlcjpvd3QsZmFDaXJjbGVDaGV2cm9uTGVmdDpIb2UsZmFDaGV2cm9uQ2lyY2xlTGVmdDpzd3QsZmFDaXJjbGVRdWVzdGlvbjpxb2UsZmFRdWVzdGlvbkNpcmNsZTpud3QsZmFXYWxraWVUYWxraWU6bHd0LGZhVXNlckdyb3VwOlZvZSxmYVVzZXJGcmllbmRzOmN3dCxmYUhvdXNlQ2hpbW5leTpVb2UsZmFIb21lTGc6ZHd0LGZhUmlnaHRGcm9tQnJhY2tldDpqb2UsZmFTaWduT3V0QWx0OmZ3dCxmYUZpbGU6dXd0LGZhUGxhbmVTbGFzaDpwd3QsZmFDbG91ZFNob3dlcnNIZWF2eTpod3QsZmFQZXJzb25GYWxsaW5nOm13dCxmYVR1cm5Eb3duOldvZSxmYUxldmVsRG93bkFsdDpnd3QsZmFVcFJpZ2h0QW5kRG93bkxlZnRGcm9tQ2VudGVyOkdvZSxmYUV4cGFuZEFsdDp4d3QsZmFVc2VyVGFnOmJ3dCxmYUhhbmRTcGFya2xlczp2d3QsZmFBcnJvd3NUb0RvdDp5d3QsZmFGYWNlU2FkQ3J5OllvZSxmYVNhZENyeTp3d3QsZmFEb25nU2lnbjpNd3QsZmFQZW9wbGVMaW5lOnp3dCxmYVNxdWFyZVJzczpab2UsZmFSc3NTcXVhcmU6a3d0LGZhQ2FsZW5kYXJNaW51czpTd3QsZmFDaGFydERpYWdyYW06Q3d0LGZhRmFjZVRpcmVkOlhvZSxmYVRpcmVkOkx3dCxmYUhhbmRQb2ludFJpZ2h0OlR3dCxmYUFycm93VXA6X3d0LGZhQ3ViZXNTdGFja2VkOkF3dCxmYUNoaWxkQ29tYmF0YW50OlFvZSxmYUNoaWxkUmlmbGU6JHd0LGZhVmVzdFBhdGNoZXM6RHd0LGZhTWFydGluaUdsYXNzRW1wdHk6S29lLGZhR2xhc3NNYXJ0aW5pOkV3dCxmYU1hZ25ldDpOd3QsZmFSb2FkQmFycmllcjpQd3QsZmFDb21wYXNzRHJhZnRpbmc6Sm9lLGZhRHJhZnRpbmdDb21wYXNzOkl3dCxmYVNxdWFyZVBlcnNvbkNvbmZpbmVkOkZ3dCxmYVBsYXRlV2hlYXQ6T3d0LGZhU2lnbkhhbmdpbmc6ZXNlLGZhU2lnbjpCd3QsZmFDYXJCYXR0ZXJ5OnRzZSxmYUJhdHRlcnlDYXI6Und0LGZhU2hpcnQ6V1YsZmFUU2hpcnQ6SHd0LGZhVHNoaXJ0OnF3dCxmYVBhcmFncmFwaDpWd3QsZmFFbnZlbG9wZXNCdWxrOmFzZSxmYU1haWxCdWxrOlV3dCxmYUd1aXRhcjpqd3QsZmFTdWl0Y2FzZTpXd3QsZmFDaXJjbGVVcDpyc2UsZmFBcnJvd0FsdENpcmNsZVVwOkd3dCxmYUY6WXd0LGZhWG1hcmtzTGluZXM6Wnd0LGZhRWFydGhPY2VhbmlhOmlzZSxmYUdsb2JlT2NlYW5pYTpYd3QsZmFDb21tZW50U2xhc2g6UXd0LGZhUGxheTpLd3QsZmFWaWFsQ2lyY2xlQ2hlY2s6Snd0LGZhQnJpZGdlQ2lyY2xlQ2hlY2s6ZU10LGZhQ2VkaVNpZ246dE10LGZhUHV6emxlUGllY2U6YU10LGZhSGVsbWV0VW46ck10LGZhR2xhc3NXYXRlcjppTXQsZmFIZWFydENpcmNsZUJvbHQ6b010LGZhUHVtcFNvYXA6c010LGZhSGFuZFNjaXNzb3JzOm5NdCxmYURvbGx5Om9zZSxmYURvbGx5Qm94OmxNdCxmYVBhcGVyY2xpcDpJVSxmYURlbW9jcmF0OmNNdCxmYVNxdWFyZUFycm93VXBSaWdodDpzc2UsZmFFeHRlcm5hbExpbmtTcXVhcmU6ZE10LGZhRmVycnk6Zk10LGZhTW9zcXVpdG86dU10LGZhQnVpbGRpbmdDaXJjbGVBcnJvd1JpZ2h0OnBNdCxmYUxlZnRSaWdodDpuc2UsZmFBcnJvd3NBbHRIOmhNdCxmYVZpcnVzOm1NdCxmYUdlbTpnTXQsZmFUb2lsZXQ6eE10LGZhU2luZ2xlUXVvdGVMZWZ0OmJNdCxmYU1vbmV5QmlsbHM6dk10LGZhVGFibGV0QnV0dG9uOnlNdCxmYVJlY3RhbmdsZVhtYXJrOm43LGZhUmVjdGFuZ2xlVGltZXM6d010LGZhVGltZXNSZWN0YW5nbGU6TU10LGZhV2luZG93Q2xvc2U6ek10LGZhV3JlbmNoOmtNdCxmYVRyYXNoQ2FuOms3LGZhVHJhc2hBbHQ6U010LGZhVGFibGVDZWxsczpsc2UsZmFUaDpDTXQsZmFSaWJib246TE10LGZhTGFuZG1hcmtGbGFnOlRNdCxmYVVwRG93bkxlZnRSaWdodDpjc2UsZmFBcnJvd3NBbHQ6X010LGZhQ2FyU2lkZTpBTXQsZmFUcmFzaEFycm93VXA6ZHNlLGZhVHJhc2hSZXN0b3JlOiRNdCxmYUxpZmVSaW5nOkRNdCxmYUNvcHlyaWdodDpFTXQsZmFGaWxlUHJlc2NyaXB0aW9uOk5NdCxmYUVyYXNlcjpQTXQsZmFIb3VyZ2xhc3NTdGFydDpmc2UsZmFIb3VyZ2xhc3MxOklNdCxmYUNpcmNsZUxlZnQ6dXNlLGZhQXJyb3dBbHRDaXJjbGVMZWZ0OkZNdCxmYUNydXplaXJvU2lnbjpPTXQsZmFTbW9raW5nOkJNdCxmYVNxdWFyZVBvbGxWZXJ0aWNhbDpwc2UsZmFQb2xsOlJNdCxmYVBlcnNvbkNpcmNsZU1pbnVzOkhNdCxmYUJpb2hhemFyZDpxTXQsZmFCZWxsQ29uY2llcmdlOmhzZSxmYUNvbmNpZXJnZUJlbGw6Vk10LGZhUnVsZXJIb3Jpem9udGFsOlVNdCxmYUhvcnNlOmpNdCxmYUNhbGVuZGFyOldNdCxmYUhhbmRzSG9sZGluZ0NoaWxkOkdNdCxmYUl0YWxpYzpZTXQsZmFLaGFuZGE6Wk10LGZhRmFjZUZyb3duT3Blbjptc2UsZmFGcm93bk9wZW46WE10LGZhQ2hlY2s6RlUsZmFGaW5nZXJwcmludDpRTXQsZmFDaGFyZ2luZ1N0YXRpb246S010LGZhVXNlckxvY2s6Sk10LGZhTW9iaWxlU2NyZWVuQnV0dG9uOmdzZSxmYU1vYmlsZUFsdDplenQsZmFBbmNob3JDaXJjbGVDaGVjazp0enQsZmFQZXJzb25XYWxraW5nV2l0aENhbmU6eHNlLGZhQmxpbmQ6YXp0LGZhRmlsZVdhdmVmb3JtOmJzZSxmYUZpbGVNZWRpY2FsQWx0OnJ6dCxmYUhvdXNlQ3JhY2s6aXp0LGZhSGF0V2l6YXJkOm96dCxmYVVzZXJEb2N0b3I6dnNlLGZhVXNlck1kOnN6dCxmYUNoYXJ0QmFyOnlzZSxmYUJhckNoYXJ0Om56dCxmYVNwcmF5Q2FuU3BhcmtsZXM6d3NlLGZhQWlyRnJlc2hlbmVyOmx6dCxmYUJhaHRTaWduOmN6dCxmYVRlbXBlcmF0dXJlQXJyb3dVcDpNc2UsZmFUZW1wZXJhdHVyZVVwOmR6dCxmYVdlYkF3ZXNvbWU6Znp0LGZhTm9uQmluYXJ5OnV6dCxmYU46cHp0LGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0OnpzZSxmYUFycm93czpoenQsZmFIb3VzZTpsNyxmYUhvbWU6bXp0LGZhSG9tZUFsdDpnenQsZmFIb21lTGdBbHQ6eHp0LGZhU3Bpbm5lcjpienQsZmFHYXZlbDprc2UsZmFMZWdhbDp2enQsZmFUaWNrZXRTaW1wbGU6U3NlLGZhVGlja2V0QWx0Onl6dCxmYURvdmU6d3p0LGZhVGFycERyb3BsZXQ6TXp0LGZhVHJlZUNpdHk6enp0LGZhVHVyblVwOkNzZSxmYUxldmVsVXBBbHQ6a3p0LGZhVGVtcGVyYXR1cmVRdWFydGVyOmM3LGZhVGVtcGVyYXR1cmUxOlN6dCxmYVRoZXJtb21ldGVyMTpDenQsZmFUaGVybW9tZXRlclF1YXJ0ZXI6THp0LGZhU2xpZGVyczpMc2UsZmFTbGlkZXJzSDpUenQsZmFNb3NxdWU6X3p0LGZhSDpBenQsZmFJbmZvOiR6dCxmYVBlcnNvbldhbGtpbmc6VHNlLGZhV2Fsa2luZzpEenQsZmFBcnJvd1R1cm5Eb3duOl9zZSxmYUxldmVsRG93bjpFenQsZmFSb2FkOk56dCxmYVNwaXJhbDpQenQsZmFGYWNlRnJvd246QXNlLGZhRnJvd246SXp0LGZhV2luZUdsYXNzRW1wdHk6JHNlLGZhV2luZUdsYXNzQWx0OkZ6dCxmYUNsYXBwZXJib2FyZDpPenQsZmFGb3J3YXJkU3RlcDpEc2UsZmFTdGVwRm9yd2FyZDpCenQsZmFTcXVhcmVVcFJpZ2h0OkVzZSxmYUV4dGVybmFsTGlua1NxdWFyZUFsdDpSenQsZmFCb29rSm91cm5hbFdoaWxsczpOc2UsZmFKb3VybmFsV2hpbGxzOkh6dCxmYUNoYW1wYWduZUdsYXNzZXM6UHNlLGZhR2xhc3NDaGVlcnM6cXp0LGZhRHVtcHN0ZXI6Vnp0LGZhSGVhcnRDaXJjbGVYbWFyazpVenQsZmFDb21wdXRlcjpqenQsZmFXYW5kTWFnaWM6SXNlLGZhTWFnaWM6V3p0LGZhQnJhaW46R3p0LGZhQnJpZWZjYXNlTWVkaWNhbDpZenQsZmFIb3VzZU1lZGljYWxDaXJjbGVFeGNsYW1hdGlvbjpaenQsZmFDb2RlQ29tbWl0Olh6dCxmYVBlcnNvbkJyZWFzdGZlZWRpbmc6UXp0LGZhUGVyc29uUmF5czpLenQsZmFNYW5hdFNpZ246Snp0LGZhU29ydDpGc2UsZmFVbnNvcnRlZDpla3QsZmFDaXJjbGVSYWRpYXRpb246T3NlLGZhUmFkaWF0aW9uQWx0OnRrdCxmYUxhcHRvcENvZGU6YWt0LGZhU2luazpya3QsZmFBcnJvd1VwRnJvbVdhdGVyUHVtcDppa3QsZmFNaWNyb3Bob25lTGluZXNTbGFzaDpCc2UsZmFNaWNyb3Bob25lQWx0U2xhc2g6b2t0LGZhU2VydmVyOnNrdCxmYVVzZXI6R1YsZmFVc2VyQWx0Om5rdCxmYVVzZXJMYXJnZTpsa3QsZmFTbm93Zmxha2U6Y2t0LGZhU2t1bGxDcm9zc2JvbmVzOmRrdCxmYVBlc29TaWduOmZrdCxmYVdpbmVHbGFzczp1a3QsZmFUZW1wZXJhdHVyZUhhbGY6ZDcsZmFUZW1wZXJhdHVyZTI6cGt0LGZhVGhlcm1vbWV0ZXIyOmhrdCxmYVRoZXJtb21ldGVySGFsZjpta3QsZmFUaWNrZXQ6Z2t0LGZhV2hlYXRBd25DaXJjbGVFeGNsYW1hdGlvbjp4a3QsZmFBcnJvd3NUdXJuUmlnaHQ6Ymt0LGZhQ2FuZHlDYW5lOnZrdCxmYVdoZWVsY2hhaXI6eWt0LGZhU3BlbGxDaGVjazp3a3QsZmFWb2x1bWVPZmY6TWt0LGZhTHVuZ3M6emt0LGZhQm9va21hcms6a2t0LGZhQmFyY29kZTpTa3QsZmFMaXN0T2w6WVYsZmFMaXN0MTI6Q2t0LGZhTGlzdE51bWVyaWM6TGt0LGZhRmlsZUNpcmNsZVhtYXJrOlRrdCxmYUN1YmU6X2t0LGZhVGFwZTpBa3QsZmFCb21iOiRrdCxmYVNjYWxlVW5iYWxhbmNlZDpSc2UsZmFCYWxhbmNlU2NhbGVMZWZ0OkRrdCxmYVNxdWFyZUNhcmV0TGVmdDpIc2UsZmFDYXJldFNxdWFyZUxlZnQ6RWt0LGZhUnVsZXI6Tmt0LGZhSTpQa3QsZmFWb2x1bWVYbWFyazpaVixmYVZvbHVtZU11dGU6SWt0LGZhVm9sdW1lVGltZXM6Rmt0LGZhQXJjaHdheTpPa3QsZmFQZXJzb25EaWdnaW5nOnFzZSxmYURpZ2dpbmc6Qmt0LGZhR2F1Z2VIaWdoOlhWLGZhVGFjaG9tZXRlckFsdDpSa3QsZmFUYWNob21ldGVyQWx0RmFzdDpIa3QsZmFHZW5kZXJsZXNzOnFrdCxmYUNsb3VkU3VuOlZrdCxmYUFycm93UmlnaHQ6T1UsZmFIYW5kc2hha2U6UVYsZmFIYW5kc2hha2VBbHQ6VWt0LGZhSGFuZHNoYWtlU2ltcGxlOmprdCxmYVBlcnNvblNraWluZzpWc2UsZmFTa2lpbmc6V2t0LGZhQnJpZGdlV2F0ZXI6R2t0LGZhQnVpbGRpbmdOZ286WWt0LGZhSWdsb286Wmt0LGZhQ2lyY2xlRG9sbGFyVG9TbG90OlVzZSxmYURvbmF0ZTpYa3QsZmFZOlFrdCxmYUZhY2VTbWlsZVdpbms6anNlLGZhU21pbGVXaW5rOktrdCxmYURpY2VGb3VyOkprdCxmYUZhY2VHcmluU3F1aW50VGVhcnM6V3NlLGZhR3JpblNxdWludFRlYXJzOmVTdCxmYUZpbGVBdWRpbzp0U3QsZmFBcnJvd3NEb3duVG9MaW5lOmFTdCxmYUc6clN0LGZhVmloYXJhOmlTdCxmYUZsYWdDaGVja2VyZWQ6b1N0LGZhR2F1Z2VTaW1wbGU6S1YsZmFHYXVnZVNpbXBsZU1lZDpzU3QsZmFUYWNob21ldGVyQXZlcmFnZTpuU3QsZmFSaWdodExlZnQ6R3NlLGZhRXhjaGFuZ2VBbHQ6bFN0LGZhUGlsbHM6Y1N0LGZhRXhwbG9zaW9uOmRTdCxmYUFycm93c0Rvd25Ub1Blb3BsZTpmU3QsZmFVc2Vyc1ZpZXdmaW5kZXI6dVN0LGZhQ2FyT246cFN0LGZhU2xlaWdoOmhTdCxmYUR1bWJiZWxsOm1TdCxmYUJhYnlDYXJyaWFnZTpZc2UsZmFDYXJyaWFnZUJhYnk6Z1N0LGZhS2l3aUJpcmQ6eFN0LGZhQ2FsZW5kYXJYbWFyazpac2UsZmFDYWxlbmRhclRpbWVzOmJTdCxmYUNpcmNsZURvd246WHNlLGZhQXJyb3dBbHRDaXJjbGVEb3duOnZTdCxmYUZpbGVNZWRpY2FsOnlTdCxmYVhtYXJrOmlzLGZhQ2xvc2U6d1N0LGZhTXVsdGlwbHk6TVN0LGZhUmVtb3ZlOnpTdCxmYVRpbWVzOmtTdCxmYVNoYXBlczpRc2UsZmFUcmlhbmdsZUNpcmNsZVNxdWFyZTpTU3QsZmFEaWNlT25lOkNTdCxmYUxvY2tPcGVuOkxTdCxmYVBlcHBlckhvdDpUU3QsZmFEcm9wbGV0U2xhc2g6S3NlLGZhVGludFNsYXNoOl9TdCxmYURyb3BsZXQ6SnNlLGZhVGludDpBU3QsZmFGaWxlTGluZXM6SlYsZmFGaWxlQWx0OiRTdCxmYUZpbGVUZXh0OkRTdCxmYUNvbW1lbnRzRG9sbGFyOkVTdCxmYU1hZ25pZnlpbmdHbGFzc0xvY2F0aW9uOmVuZSxmYVNlYXJjaExvY2F0aW9uOk5TdCxmYUZpbGVJbnZvaWNlOkJVLGZhUGVudGFnb246UFN0LGZhUmVwdWJsaWNhbjpJU3QsZmFTaG9wOnRuZSxmYVN0b3JlQWx0OkZTdCxmYUZpbG06ZVUsZmFGaWxtQWx0Ok9TdCxmYUZpbG1TaW1wbGU6QlN0LGZhQnVpbGRpbmdDaXJjbGVYbWFyazpSU3QsZmFDb21tZW50czpIU3QsZmFUYWdzOnFTdCxmYUd1bjpWU3QsZmFDaXJjbGVDaGVjazpTNyxmYUNoZWNrQ2lyY2xlOlVTdCxmYUlkQ2FyZENsaXA6YW5lLGZhSWRDYXJkQWx0OmpTdCxmYU1vb246V1N0LGZhT2lsV2VsbDpHU3QsZmFUYWNob2dyYXBoRGlnaXRhbDpybmUsZmFEaWdpdGFsVGFjaG9ncmFwaDpZU3QsZmFUYWJsZXQ6aW5lLGZhVGFibGV0QW5kcm9pZDpaU3QsZmFSdWJsZVNpZ246ZjcsZmFSb3VibGU6WFN0LGZhUnViOlFTdCxmYVJ1YmxlOktTdCxmYUNsb3NlZENhcHRpb25pbmc6SlN0LGZhUGVuOmVDdCxmYVBsYW5lOnRDdCxmYUltYWdlczphQ3QsZmFNb2JpbGVTY3JlZW46b25lLGZhTW9iaWxlQW5kcm9pZEFsdDpyQ3QsZmFHdWFyYW5pU2lnbjppQ3QsZmFCYWdTaG9wcGluZzpzbmUsZmFTaG9wcGluZ0JhZzpvQ3QsZmFDaXJjbGVSaWdodDpubmUsZmFBcnJvd0FsdENpcmNsZVJpZ2h0OnNDdCxmYVBob25lVm9sdW1lOmxuZSxmYVZvbHVtZUNvbnRyb2xQaG9uZTpuQ3QsZmFDdWJlczpsQ3QsZmFQaG9uZTpjQ3QsZmFUb3JpaUdhdGU6ZEN0LGZhQmFjb246ZkN0LGZhUGVyc29uRmFsbGluZ0J1cnN0OnVDdCxmYVF1b3RlUmlnaHQ6Y25lLGZhUXVvdGVSaWdodEFsdDpwQ3QsZmFIb3VzZU1lZGljYWxGbGFnOmhDdCxmYVByZXNjcmlwdGlvbjptQ3QsZmFEaWNlVGhyZWU6Z0N0LGZhQnVpbGRpbmdMb2NrOnhDdCxmYUlkQ2FyZDpkbmUsZmFEcml2ZXJzTGljZW5zZTpiQ3QsZmFDaXJjbGVQbGF5OmZuZSxmYVBsYXlDaXJjbGU6dkN0LGZhRmFjZUxhdWdoQmVhbTp1bmUsZmFMYXVnaEJlYW06eUN0LGZhTGVhZjp3Q3QsZmFIb3VzZUNoaW1uZXlVc2VyOk1DdCxmYVJvdGF0ZVJpZ2h0OnRVLGZhUmVkb0FsdDp6Q3QsZmFSb3RhdGVGb3J3YXJkOmtDdCxmYVRvb3RoOlNDdCxmYUhvdXNlQ2hpbW5leVdpbmRvdzpDQ3QsZmFNb3RvcmN5Y2xlOkxDdCxmYUJhY2t3YXJkRmFzdDpwbmUsZmFGYXN0QmFja3dhcmQ6VEN0LGZhQWRkcmVzc0Jvb2s6aG5lLGZhQ29udGFjdEJvb2s6X0N0LGZhU2FpbGJvYXQ6QUN0LGZhQm9va0Jvb2ttYXJrOiRDdCxmYU1hZ25pZnlpbmdHbGFzc0Fycm93UmlnaHQ6REN0LGZhTWljcm9waG9uZUxpbmVzOm1uZSxmYU1pY3JvcGhvbmVBbHQ6RUN0LGZhUmVwbHlBbGw6Z25lLGZhTWFpbFJlcGx5QWxsOk5DdCxmYVVuaXZlcnNhbEFjY2VzczpQQ3QsZmFUb2lsZXRQYXBlcjphVSxmYVRvaWxldFBhcGVyQWx0OklDdCxmYVRvaWxldFBhcGVyQmxhbms6RkN0LGZhVnJDYXJkYm9hcmQ6T0N0LGZhUGl6emFTbGljZTpCQ3QsZmFTcHJheUNhbjpSQ3QsZmFWb2x1bWVMb3c6eG5lLGZhVm9sdW1lRG93bjpIQ3QsZmFDcm9zczpxQ3QsZmFQZXJzb246Ym5lLGZhTWFsZTpWQ3QsZmFIb3VyZ2xhc3M6dm5lLGZhSG91cmdsYXNzRW1wdHk6VUN0LGZhRmlzaDpqQ3QsZmFEcnVtc3RpY2tCaXRlOldDdCxmYUNoYXJ0U2ltcGxlOkdDdCxmYUF0b206WUN0LGZhUDpaQ3QsZmFKZXRGaWdodGVyVXA6WEN0LGZhUGx1Z0NpcmNsZVhtYXJrOlFDdCxmYVNoZWV0UGxhc3RpYzpLQ3QsZmFWOkpDdCxmYUxpc3Q6eW5lLGZhTGlzdFNxdWFyZXM6ZUx0LGZhU29sYXJQYW5lbDp0THQsZmFMYW5kTWluZU9uOmFMdCxmYUhlYWRwaG9uZXM6clUsZmFIZWFkcGhvbmVzQWx0OnJMdCxmYUhlYWRwaG9uZXNTaW1wbGU6aUx0LGZhQnVzOm9MdCxmYUZpbGVQb3dlcnBvaW50OnNMdCxmYVF1b3RlTGVmdDp3bmUsZmFRdW90ZUxlZnRBbHQ6bkx0LGZhQ2hldnJvbkRvd246bEx0LGZhRWFydGhBc2lhOk1uZSxmYUdsb2JlQXNpYTpjTHQsZmFDZW50U2lnbjpkTHQsZmFTaGllbGRDYXQ6Zkx0LGZhU2Nob29sQ2lyY2xlQ2hlY2s6dUx0LGZhTWFydGluaUdsYXNzOnpuZSxmYUdsYXNzTWFydGluaUFsdDpwTHQsZmFQbHVnOmhMdCxmYVBhbm9yYW1hOm1MdCxmYUNsb2NrUm90YXRlTGVmdDpDNyxmYUhpc3Rvcnk6Z0x0LGZhSmFyV2hlYXQ6eEx0LGZhQ2xvdWRBcnJvd0Rvd246aVUsZmFDbG91ZERvd25sb2FkOmJMdCxmYUNsb3VkRG93bmxvYWRBbHQ6dkx0LGZhVHJ1Y2tSYW1wQm94OmtuZSxmYVRydWNrTG9hZGluZzp5THQsZmFBbmdsZURvd246d0x0LGZhUGx1Z0NpcmNsZUNoZWNrOk1MdCxmYVdpbmRvd01heGltaXplOnpMdCxmYUhhbmRzSG9sZGluZ0NpcmNsZTprTHQsZmFMb2NhdGlvblBpbjpTbmUsZmFNYXBNYXJrZXI6U0x0LGZhQm93bGluZ0JhbGw6Q0x0LGZhQ2FydEZsYXRiZWQ6Q25lLGZhRG9sbHlGbGF0YmVkOkxMdCxmYUhvdXNlVXNlcjpMbmUsZmFIb21lVXNlcjpUTHQsZmFHaG9zdDpfTHQsZmFDb21tZW50Tm9kZXM6QUx0LGZhUGVyc29uQXJyb3dEb3duVG9MaW5lOiRMdCxmYVBsdWdDaXJjbGVQbHVzOkRMdCxmYVBlcnNvblN3aW1taW5nOlRuZSxmYVN3aW1tZXI6RUx0LGZhQ29tbWVudERvdHM6X25lLGZhQ29tbWVudGluZzpOTHQsZmFDaGFydFBpZTpBbmUsZmFQaWVDaGFydDpQTHQsZmFGcm9nOklMdCxmYVdpbmVCb3R0bGU6Rkx0LGZhSW5ib3g6T0x0LGZhU3F1YXJlSDokbmUsZmFIU3F1YXJlOkJMdCxmYUhvdXNlTWVkaWNhbDpSTHQsZmFDaXJjbGVDaGV2cm9uUmlnaHQ6RG5lLGZhQ2hldnJvbkNpcmNsZVJpZ2h0OkhMdCxmYUZpbGVDc3Y6cUx0LGZhSGF0Q293Ym95OlZMdCxmYUZhY2VHcmluVG9uZ3VlV2luazpFbmUsZmFHcmluVG9uZ3VlV2luazpVTHQsZmFMOmpMdCxmYUFycm93RG93blNob3J0V2lkZTpvVSxmYVNvcnRBbW91bnREZXNjOldMdCxmYVNvcnRBbW91bnREb3duQWx0OkdMdCxmYUhvdXJnbGFzc0hhbGY6Tm5lLGZhSG91cmdsYXNzMjpZTHQsZmFTcG9vbjpQbmUsZmFVdGVuc2lsU3Bvb246Wkx0LGZhQ3JlZGl0Q2FyZDpJbmUsZmFDcmVkaXRDYXJkQWx0OlhMdCxmYUZpbGVJbnZvaWNlRG9sbGFyOlJVLGZhU3BhZ2hldHRpTW9uc3RlckZseWluZzpGbmUsZmFQYXN0YWZhcmlhbmlzbTpRTHQsZmFNYXJ0aW5pR2xhc3NDaXRydXM6T25lLGZhQ29ja3RhaWw6S0x0LGZhQnVsbGhvcm46Skx0LGZhQm94VGlzc3VlOmVUdCxmYU1hdHRyZXNzUGlsbG93OnRUdCxmYUNoZXZyb25MZWZ0OmFUdCxmYUNsb3VkTW9vblJhaW46clR0LGZhQXJyb3dEb3duMTk6c1UsZmFTb3J0TnVtZXJpY0FzYzppVHQsZmFTb3J0TnVtZXJpY0Rvd246b1R0LGZhSGFuZFNwb2NrOnNUdCxmYVdhbmRNYWdpY1NwYXJrbGVzOkJuZSxmYU1hZ2ljV2FuZFNwYXJrbGVzOm5UdCxmYUNvbW1lbnRNZWRpY2FsOmxUdCxmYUJlbGxTbGFzaDpjVHQsZmFIYW5kc2hha2VTbGFzaDpuVSxmYUhhbmRzaGFrZUFsdFNsYXNoOmRUdCxmYUhhbmRzaGFrZVNpbXBsZVNsYXNoOmZUdCxmYUJvdHRsZVdhdGVyOnVUdCxmYURpY2VEMjA6cFR0LGZhQXJyb3dEb3duWkE6bFUsZmFTb3J0QWxwaGFEZXNjOmhUdCxmYVNvcnRBbHBoYURvd25BbHQ6bVR0LGZhQnJ1c2g6Z1R0LGZhUGVyc29uV2Fsa2luZ0Rhc2hlZExpbmVBcnJvd1JpZ2h0OnhUdCxmYUFycm93VXBTaG9ydFdpZGU6Um5lLGZhU29ydEFtb3VudFVwQWx0OmJUdCxmYUdyaXBWZXJ0aWNhbDpIbmUsZmFHcmlkVmVydGljYWw6dlR0LGZhQ2FyVHVubmVsOnlUdCxmYUNoYXJ0Q29sdW1uOndUdCxmYVRydWNrQXJyb3dSaWdodDpNVHQsZmFUdjpjVSxmYVRlbGV2aXNpb246elR0LGZhVHZBbHQ6a1R0LGZhU2VjdGlvbjpTVHQsZmFQZWFjZTpDVHQsZmFTdGFyOkxUdCxmYUZsYWc6VFR0LGZhVHJpYW5nbGVFeGNsYW1hdGlvbjpkVSxmYUV4Y2xhbWF0aW9uVHJpYW5nbGU6X1R0LGZhV2FybmluZzpBVHQsZmFTY2hvb2xDaXJjbGVFeGNsYW1hdGlvbjokVHQsZmFHcmFkdWF0aW9uQ2FwOnFuZSxmYU1vcnRhckJvYXJkOkRUdCxmYVN0b3JlOkVUdCxmYVVzZXJBc3Ryb25hdXQ6TlR0LGZhQnVpbGRpbmdGbGFnOlBUdCxmYU11Z1NhdWNlcjpWbmUsZmFDb2ZmZWU6SVR0LGZhTGVtb246RlR0LGZhQ2FyYXZhbjpPVHQsZmFROkJUdCxmYUxvY2s6UlR0LGZhUGFpbnRSb2xsZXI6SFR0LGZhVm9sdW1lSGlnaDpVbmUsZmFWb2x1bWVVcDpxVHQsZmFGb2xkZXJQbHVzOlZUdCxmYU1lcmN1cnk6VVR0LGZhQW5jaG9yOmpUdCxmYVNxdWFyZVBhcmtpbmc6am5lLGZhUGFya2luZzpXVHQsZmFIYW51a2lhaDpHVHQsZmFSb3RhdGVMZWZ0OnU3LGZhUm90YXRlQmFjazpZVHQsZmFSb3RhdGVCYWNrd2FyZDpaVHQsZmFVbmRvQWx0OlhUdCxmYUhlYWRpbmc6V25lLGZhSGVhZGVyOlFUdCxmYUNyb3NzaGFpcnM6S1R0LGZhQ2lyY2xlTm9kZXM6SlR0LGZhV2luZG93UmVzdG9yZTplX3QsZmFSOnRfdCxmYUZpbHRlckNpcmNsZVhtYXJrOmFfdCxmYUdvcHVyYW06cl90LGZhSGVhcnRDaXJjbGVNaW51czppX3QsZmFTdGFyT2ZMaWZlOm9fdCxmYUJ1c2luZXNzVGltZTpHbmUsZmFCcmllZmNhc2VDbG9jazpzX3QsZmFGaXJlRXh0aW5ndWlzaGVyOm5fdCxmYUFycm93RG93bkxvbmc6WW5lLGZhTG9uZ0Fycm93RG93bjpsX3QsZmFVc2VyTWludXM6Y190LGZhTW9uZXlDaGVjazpkX3QsZmFIb3VzZUxhcHRvcDpabmUsZmFMYXB0b3BIb3VzZTpmX3QsZmFEb3dubG9hZDp1X3QsZmFDb3VjaDpwX3QsZmFSb2FkTG9jazpoX3QsZmFTY2lzc29yczpYbmUsZmFDdXQ6bV90LGZhQnVnOkhVLGZhQXJyb3dSaWdodEZyb21CcmFja2V0OlFuZSxmYVNpZ25PdXQ6Z190LGZhSGFuZEhvbGRpbmdIYW5kOnhfdCxmYVN0cm9vcHdhZmVsOmJfdCxmYUNoaWxkOnZfdCxmYUljZUNyZWFtOnlfdCxmYUNvbXB1dGVyTW91c2U6S25lLGZhTW91c2U6d190LGZhRmF1Y2V0Ok1fdCxmYUF3YXJkOnpfdCxmYVBlcnNvbkRyb3duaW5nOmtfdCxmYUNhbWVyYVJvdGF0ZTpTX3QsZmFGYWNlR3JpbkhlYXJ0czpKbmUsZmFHcmluSGVhcnRzOkNfdCxmYUZpbGVGcmFnbWVudDpMX3QsZmFQZXJzb25NaWxpdGFyeVJpZmxlOlRfdCxmYVRvZ2dsZU9uOl9fdCxmYUx1bmdzVmlydXM6QV90LGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsOmZVLGZhUGluZ1BvbmdQYWRkbGVCYWxsOiRfdCxmYVRhYmxlVGVubmlzOkRfdCxmYUJveGVzUGFja2luZzpFX3QsZmFQZXJzb25DaGFsa2JvYXJkOk5fdCxmYURpY2VUd286UF90LGZhQXJyb3dSaWdodEFycm93TGVmdDplMGUsZmFFeGNoYW5nZTpJX3QsZmFGb290YmFsbDp0MGUsZmFGb290YmFsbEJhbGw6Rl90LGZhVHJ1Y2tNb25zdGVyOk9fdCxmYUFzdGVyaXNrOkJfdCxmYUJhdHRlcnlGdWxsOnVVLGZhQmF0dGVyeTpSX3QsZmFCYXR0ZXJ5NTpIX3QsZmFDaGlsZERyZXNzOnFfdCxmYUZhY2VLaXNzQmVhbTphMGUsZmFLaXNzQmVhbTpWX3QsZmFUcmFzaENhbkFycm93VXA6cjBlLGZhVHJhc2hSZXN0b3JlQWx0OlVfdCxmYUZvbnQ6al90LGZhQm9yZUhvbGU6V190LGZhVmlydXNDb3ZpZDpHX3QsZmFGaWxlUGRmOllfdCxmYUxhbmd1YWdlOlpfdCxmYVNoaWVsZEhhbHZlZDppMGUsZmFTaGllbGRBbHQ6WF90LGZhQ2FyZXRVcDpRX3QsZmFGaWxlUGVuOm8wZSxmYUZpbGVFZGl0OktfdCxmYVBlcnNvbkJpa2luZzpzMGUsZmFCaWtpbmc6Sl90LGZhQm9va09wZW5SZWFkZXI6bjBlLGZhQm9va1JlYWRlcjplQXQsZmFHbGFzc1dhdGVyRHJvcGxldDp0QXQsZmFUb3dlckJyb2FkY2FzdDpsMGUsZmFCcm9hZGNhc3RUb3dlcjphQXQsZmFNaW5pbWl6ZTpjMGUsZmFDb21wcmVzc0Fycm93c0FsdDpyQXQsZmFBcnJvd1JpZ2h0VG9DaXR5OmlBdCxmYUxhcHRvcE1lZGljYWw6b0F0LGZhQnJlYWRTbGljZTpzQXQsZmFHbG9iZTpuQXQsZmFGb2xkZXJNaW51czpsQXQsZmFNYXNrRmFjZTpjQXQsZmFCb25nOmRBdCxmYVJvYWRCcmlkZ2U6ZkF0LGZhQXJyb3dVcDkxOmQwZSxmYVNvcnROdW1lcmljVXBBbHQ6dUF0LGZhTW91bnRhaW5DaXR5OnBBdCxmYUFycm93RG93bjkxOnBVLGZhU29ydE51bWVyaWNEZXNjOmhBdCxmYVNvcnROdW1lcmljRG93bkFsdDptQXQsZmFGYWNlR3JpbldpZGU6ZjBlLGZhR3JpbkFsdDpnQXQsZmFQb29wOnhBdCxmYURoYXJtYWNoYWtyYTpiQXQsZmFCYXR0ZXJ5UXVhcnRlcjp1MGUsZmFCYXR0ZXJ5Mjp2QXQsZmFBbmtoOnlBdCxmYURpYW1vbmQ6d0F0LGZhU3Vic2NyaXB0Ok1BdCxmYVJ1cGVlU2lnbjpwMGUsZmFSdXBlZTp6QXQsZmFQZXJzb25SaWZsZTprQXQsZmFEOlNBdCxmYVNxdWFyZU5maTpDQXQsZmFUZWV0aDpMQXQsZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXI6aDBlLGZhU2VhcmNoRG9sbGFyOlRBdCxmYUR1bXBzdGVyRmlyZTpfQXQsZmFVcGxvYWQ6QUF0LGZhVXNlclNsYXNoOmhVLGZhVXNlckFsdFNsYXNoOiRBdCxmYVVzZXJMYXJnZVNsYXNoOkRBdCxmYUFycm93TGVmdDpFQXQsZmFWaWFsVmlydXM6TkF0LGZhQ2hlY2tEb3VibGU6UEF0LGZhUGF3OklBdCxmYUhlbG1ldFNhZmV0eTptVSxmYUhhcmRIYXQ6RkF0LGZhSGF0SGFyZDpPQXQsZmFFOkJBdCxmYUZhY2VMYXVnaFNxdWludDptMGUsZmFMYXVnaFNxdWludDpSQXQsZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlcjpnMGUsZmFDb21wcmVzc0FsdDpIQXQsZmFHaWZ0czpxQXQsZmFCZWQ6VkF0LGZhTW9uZXlCaWxsVHJhbnNmZXI6VUF0LGZhUGVyc29uUnVubmluZzp4MGUsZmFSdW5uaW5nOmpBdCxmYUNpcmNsZUNoZXZyb25Eb3duOmIwZSxmYUNoZXZyb25DaXJjbGVEb3duOldBdCxmYVVzZXJOdXJzZTpHQXQsZmFGYWNlS2lzc1dpbmtIZWFydDp2MGUsZmFLaXNzV2lua0hlYXJ0OllBdCxmYUZpbGw6WkF0LGZhTW9uZXlCaWxsMVdhdmU6eTBlLGZhTW9uZXlCaWxsV2F2ZUFsdDpYQXQsZmFMYW5kbWFyazpRQXQsZmFNdXNpYzpLQXQsZmFCb29rTWVkaWNhbDpKQXQsZmFTaHVmZmxlOncwZSxmYVJhbmRvbTplJHQsZmFVbmRlcmxpbmU6dCR0LGZhQnVpbGRpbmdVc2VyOmEkdCxmYVJvYm90OnIkdCxmYVBsdXM6TDcsZmFBZGQ6aSR0LGZhQ29weTpxVSxmYUNoZXNzS2luZzpvJHQsZmFIb3VzZUZsb29kV2F0ZXI6cyR0LGZhQml0Y29pblNpZ246biR0LGZhQm94OmwkdCxmYVNxdWFyZVBsdXM6TTBlLGZhUGx1c1NxdWFyZTpjJHQsZmFBcnJvd3NMZWZ0UmlnaHQ6ejBlLGZhQXJyb3dzSDpkJHQsZmFGYW46ZiR0LGZhQ3Jvdzp1JHQsZmFGaWxlQ2lyY2xlQ2hlY2s6cCR0LGZhTGlua1NsYXNoOnA3LGZhQ2hhaW5Ccm9rZW46aCR0LGZhQ2hhaW5TbGFzaDptJHQsZmFVbmxpbms6ZyR0LGZhQXJyb3dSb3RhdGVSaWdodDpoNyxmYUFycm93UmlnaHRSb3RhdGU6eCR0LGZhQXJyb3dSb3RhdGVGb3J3YXJkOmIkdCxmYVJlZG86diR0LGZhUGVuQ2xpcDprMGUsZmFQZW5BbHQ6eSR0LGZhRG9vckNsb3NlZDp3JHQsZmFBcnJvd0Rvd25XaWRlU2hvcnQ6Z1UsZmFTb3J0QW1vdW50QXNjOk0kdCxmYVNvcnRBbW91bnREb3duOnokdCxmYUNhcmV0RG93bjprJHQsZmFLOlMkdCxmYUNoZWNrVG9TbG90OlMwZSxmYVZvdGVZZWE6QyR0LGZhRmlzaEZpbnM6TCR0LGZhQ29tcHJlc3M6VCR0LGZhQXJyb3dVcEFaOkMwZSxmYVNvcnRBbHBoYVVwOl8kdCxmYVVzZXJHcmFkdWF0ZTpBJHQsZmFGaWxlQ29kZTokJHQsZmFTb2FwOkQkdCxmYVJlY3ljbGU6RSR0LGZhRmFjZUdyaW5XaW5rOkwwZSxmYUdyaW5XaW5rOk4kdCxmYVdhdGVyTGFkZGVyOnhVLGZhTGFkZGVyV2F0ZXI6UCR0LGZhU3dpbW1pbmdQb29sOkkkdCxmYVRvd2VyQ2VsbDpGJHQsZmFDb2xvblNpZ246TyR0LGZhTGFwdG9wRmlsZTpCJHQsZmFCYWhhaTpUMGUsZmFIYXlrYWw6UiR0LGZhTW9uZXlCaWxsMTpfMGUsZmFNb25leUJpbGxBbHQ6SCR0LGZhQ2xvdWRCb2x0OkEwZSxmYVRodW5kZXJzdG9ybTpxJHQsZmFFdGhlcm5ldDpWJHQsZmFIcnl2bmlhU2lnbjokMGUsZmFIcnl2bmlhOlUkdCxmYUV5ZVNsYXNoOlZVLGZhQ2FydEZsYXRiZWRTdWl0Y2FzZTpEMGUsZmFMdWdnYWdlQ2FydDpqJHQsZmFSYWRpYXRpb246VyR0LGZhRmlsZVdvcmQ6RyR0LGZhQmVkUHVsc2U6RTBlLGZhUHJvY2VkdXJlczpZJHQsZmFUZW50czpaJHQsZmFNdWdIb3Q6VVUsZmFCb2x0Ok4wZSxmYVphcDpYJHQsZmFKYXI6USR0LGZhVHJ1Y2tQbGFuZTpLJHQsZmFIYW5kSG9sZGluZ0hlYXJ0OkokdCxmYUFycm93Um90YXRlTGVmdDplNSxmYUFycm93TGVmdFJvdGF0ZTplRHQsZmFBcnJvd1JvdGF0ZUJhY2s6dER0LGZhQXJyb3dSb3RhdGVCYWNrd2FyZDphRHQsZmFVbmRvOnJEdCxmYUZhY2VBbmdyeTpQMGUsZmFBbmdyeTppRHQsZmFCdXJzdDpvRHQsZmFaOnNEdCxmYUJhbmRhZ2U6STBlLGZhQmFuZEFpZDpuRHQsZmFQbGFuZUNpcmNsZUV4Y2xhbWF0aW9uOmxEdCxmYUJ1c1NpZGU6Y0R0LGZhQnVnczpkRHQsZmFCZWVyTXVnRW1wdHk6RjBlLGZhQmVlcjpmRHQsZmFQZXJzb25DaXJjbGVDaGVjazp1RHQsZmFTdGFwbGVyOnBEdCxmYUhvdXNlTWVkaWNhbENpcmNsZUNoZWNrOmhEdCxmYU5haXJhU2lnbjptRHQsZmFXaWZpOmJVLGZhV2lmaTM6Z0R0LGZhV2lmaVN0cm9uZzp4RHQsZmFNb25leUNoZWNrRG9sbGFyOlQ3LGZhTW9uZXlDaGVja0FsdDpiRHQsZmFFeWVMb3dWaXNpb246TzBlLGZhTG93VmlzaW9uOnZEdCxmYUNpcmNsZUFycm93VXA6QjBlLGZhQXJyb3dDaXJjbGVVcDp5RHQsZmFDYW1lcmFSZXRybzp3RHQsZmFDYXBzdWxlczpNRHQsZmFQb286ekR0LGZhRWxldmF0b3I6a0R0LGZhVGFnOlNEdCxmYUZpbGVDaXJjbGVNaW51czpDRHQsZmFEb3duTG9uZzpSMGUsZmFMb25nQXJyb3dBbHREb3duOkxEdCxmYUNvbXBhY3REaXNjOlREdCxmYVN1aXRjYXNlUm9sbGluZzpfRHQsZmFCb29rUXVyYW46SDBlLGZhUXVyYW46QUR0LGZhUGhvbmVTbGFzaDokRHQsZmFSb2FkQ2lyY2xlQ2hlY2s6RER0LGZhU2hvcExvY2s6RUR0LGZhSW1hZ2VQb3J0cmFpdDpxMGUsZmFQb3J0cmFpdDpORHQsZmFCcmlkZ2VMb2NrOlBEdCxmYUhhbW1lcjpJRHQsZmFBcnJvd1VwMTk6VjBlLGZhU29ydE51bWVyaWNVcDpGRHQsZmFDaGVzc0tuaWdodDpPRHQsZmFIb3VzZUZsb29kV2F0ZXJDaXJjbGVBcnJvd1JpZ2h0OkJEdCxmYUFycm93VXBSaWdodEZyb21TcXVhcmU6XzcsZmFFeHRlcm5hbExpbms6UkR0LGZhQXJyb3dEb3duVXBBY3Jvc3NMaW5lOkhEdCxmYUZhY2VHcmluQmVhbTpVMGUsZmFHcmluQmVhbTpxRHQsZmFSZWN0YW5nbGVBZDpqMGUsZmFBZDpWRHQsZmFCb29rVGFuYWtoOlcwZSxmYVRhbmFraDpVRHQsZmFIb3RUdWJQZXJzb246RzBlLGZhSG90VHViOmpEdCxmYUZpbGVIYWxmRGFzaGVkOldEdCxmYU91dGRlbnQ6WTBlLGZhRGVkZW50OkdEdCxmYUhhbmRQZWFjZTpZRHQsZmFIZWFkU2lkZVZpcnVzOlpEdCxmYUNvbXBhc3M6WER0LGZhUGVuTmliOlFEdCxmYVRlbnRBcnJvd3NEb3duOktEdCxmYUZvcndhcmRGYXN0OlowZSxmYUZhc3RGb3J3YXJkOkpEdCxmYUNyb3A6ZUV0LGZhV2hpc2tleUdsYXNzOlgwZSxmYUdsYXNzV2hpc2tleTp0RXQsZmFTcXVhcmU6YUV0LGZhRmFjZUdyaW46UTBlLGZhR3JpbjpyRXQsZmFGaWxlQ29udHJhY3Q6aUV0LGZhQW5nbGVVcDpvRXQsZmFGYWNlU21pbGU6SzBlLGZhU21pbGU6c0V0LGZhUGVyc29uRHJlc3NCdXJzdDpuRXQsZmFEaXZpZGU6bEV0LGZhQ29kZUZvcms6Y0V0LGZhSG91c2VGbGFnOmRFdCxmYUJ1aWxkaW5nQ29sdW1uczp0NSxmYUJhbms6ZkV0LGZhSW5zdGl0dXRpb246dUV0LGZhTXVzZXVtOnBFdCxmYVVuaXZlcnNpdHk6aEV0LGZhUnVnOm1FdCxmYUNvZGVNZXJnZTpnRXQsZmFIb3VzZVRzdW5hbWk6eEV0LGZhTWFnbmlmeWluZ0dsYXNzQ2hhcnQ6YkV0LGZhVW1icmVsbGE6dkV0LGZhSGlsbFJvY2tzbGlkZTp5RXQsZmFVc2VyU2VjcmV0OndFdCxmYVBhZ2VyOk1FdCxmYUJyaWVmY2FzZTp6RXQsZmFUcm93ZWxCcmlja3M6a0V0LGZhU29ja3M6U0V0LGZhVDpDRXQsZmFNaWNyb2NoaXA6TEV0LGZhVHJ1Y2tNZWRpY2FsOkowZSxmYUFtYnVsYW5jZTpURXQsZmFPbTpfRXQsZmFNb3NxdWl0b05ldDpBRXQsZmFQcmVzY3JpcHRpb25Cb3R0bGU6JEV0LGZhVXNlcnNHZWFyOmU0ZSxmYVVzZXJzQ29nOkRFdCxmYVJvYWRDaXJjbGVFeGNsYW1hdGlvbjpFRXQsZmFQYXVzZTpORXQsZmFTdGFmZlNuYWtlOm03LGZhUm9kQXNjbGVwaXVzOlBFdCxmYVJvZFNuYWtlOklFdCxmYVN0YWZmQWVzY3VsYXBpdXM6RkV0LGZhUGlnZ3lCYW5rOk9FdCxmYU1vbnVtZW50OkJFdCxmYUFuZ2xlc1JpZ2h0OnQ0ZSxmYUFuZ2xlRG91YmxlUmlnaHQ6UkV0LGZhRGVza3RvcDpBNyxmYURlc2t0b3BBbHQ6SEV0LGZhUGxhbmVDaXJjbGVYbWFyazpxRXQsZmFSZXR3ZWV0OlZFdCxmYVVzZXJHZWFyOmE0ZSxmYVVzZXJDb2c6VUV0LGZhQm9yZGVyQWxsOmpFdCxmYUNvaW5zOldFdCxmYU1hcnNTdHJva2U6R0V0LGZhSGFuZHNoYWtlQW5nbGU6cjRlLGZhSGFuZHNIZWxwaW5nOllFdCxmYUFycm93RG93bjpaRXQsZmFMb2NhdGlvbkRvdDppNGUsZmFNYXBNYXJrZXJBbHQ6WEV0LGZhUGx1Z0NpcmNsZUV4Y2xhbWF0aW9uOlFFdCxmYUNvb2tpZUJpdGU6S0V0LGZhU2NyZXdkcml2ZXJXcmVuY2g6bzRlLGZhVG9vbHM6SkV0LGZhSW5kZW50OmVOdCxmYUJhcnM6czRlLGZhTmF2aWNvbjp0TnQsZmFIYW5kc1ByYXlpbmc6bjRlLGZhUHJheWluZ0hhbmRzOmFOdCxmYVZpcnVzZXM6ck50LGZhU2Nob29sRmxhZzppTnQsZmFUcmFkZW1hcms6b050LGZhRmlyZUJ1cm5lcjpzTnQsZmFGYWNlU21pbGVCZWFtOmw0ZSxmYVNtaWxlQmVhbTpuTnQsZmFUZW50QXJyb3dMZWZ0UmlnaHQ6bE50LGZhUm91dGU6Y050LGZhQW5nbGVzVXA6YzRlLGZhQW5nbGVEb3VibGVVcDpkTnQsZmFCdWNrZXQ6Zk50LGZhTGVzc1RoYW5FcXVhbDp1TnQsZmFGb2xkZXJDbG9zZWQ6cE50LGZhUGVyc29uVGhyb3VnaFdpbmRvdzpoTnQsZmFTY2hvb2xMb2NrOm1OdCxmYVBlcnNvbkJ1cnN0OmdOdCxmYUxlZnRMb25nOmQ0ZSxmYUxvbmdBcnJvd0FsdExlZnQ6eE50LGZhTG9jYXRpb25Dcm9zc2hhaXJzOmY0ZSxmYUxvY2F0aW9uOmJOdCxmYVBlcnNvbkRvdHNGcm9tTGluZTp1NGUsZmFEaWFnbm9zZXM6dk50LGZhR2F1Z2VTaW1wbGVIaWdoOnZVLGZhVGFjaG9tZXRlcjp5TnQsZmFUYWNob21ldGVyRmFzdDp3TnQsZmFBbmdsZXNMZWZ0OnA0ZSxmYUFuZ2xlRG91YmxlTGVmdDpNTnQsZmFVcERvd246aDRlLGZhQXJyb3dzQWx0Vjp6TnQsZmFCYXR0ZXJ5RW1wdHk6bTRlLGZhQmF0dGVyeTA6a050LGZhS2V5Ym9hcmQ6U050LGZhQ29va2llOkNOdCxmYVN0b3B3YXRjaDpMTnQsZmFFamVjdDpUTnQsZmFTYXRlbGxpdGVEaXNoOl9OdCxmYUZhY2VSb2xsaW5nRXllczpnNGUsZmFNZWhSb2xsaW5nRXllczpBTnQsZmFMaXN0Q2hlY2s6eDRlLGZhVGFza3M6JE50LGZhU2Fja1htYXJrOkROdCxmYUhhc2h0YWc6RU50LGZhVHJhaW46Tk50LGZhR2FtZXBhZDpQTnQsZmFGaWxlRXhwb3J0OmI0ZSxmYUFycm93UmlnaHRGcm9tRmlsZTpJTnQsZmFGYWNlR3JpbWFjZTp2NGUsZmFHcmltYWNlOkZOdCxmYVRyYWluU3Vid2F5Onk0ZSxmYVN1YndheTpPTnQsZmFDaXJjbGVEb3Q6dzRlLGZhRG90Q2lyY2xlOkJOdCxmYU9iamVjdEdyb3VwOlJOdCxmYVNoaXA6SE50LGZhQzpxTnQsZmFTcXVhcmVQaG9uZTpNNGUsZmFQaG9uZVNxdWFyZTpWTnQsZmFSdWxlckNvbWJpbmVkOlVOdCxmYUFycm93c1JvdGF0ZTp5VSxmYVJlZnJlc2g6ak50LGZhU3luYzpXTnQsZmFQZXJzb25EcmVzczp6NGUsZmFGZW1hbGU6R050LGZhQm9va09wZW46WU50LGZhRm9sZGVyVHJlZTpaTnQsZmFCb3hBcmNoaXZlOms0ZSxmYUFyY2hpdmU6WE50LGZhVGVudEFycm93RG93blRvTGluZTpRTnQsZmFRcmNvZGU6S050LGZhRHJhZ29uOkpOdCxmYUhvdXJnbGFzc0VuZDpTNGUsZmFIb3VyZ2xhc3MzOmVQdCxmYUdyaXA6cjUsZmFHcmlkSG9yaXpvbnRhbDp0UHQsZmFHcmlwSG9yaXpvbnRhbDphUHQsZmFCb3JkZXJUb3BMZWZ0OkM0ZSxmYUJvcmRlclN0eWxlOnJQdCxmYUxpc3RVbDpMNGUsZmFMaXN0RG90czppUHQsZmFQZW9wbGVSb2JiZXJ5Om9QdCxmYU1vYmlsZUJ1dHRvbjpzUHQsZmFBcnJvd0Rvd25BWjp3VSxmYVNvcnRBbHBoYUFzYzpuUHQsZmFTb3J0QWxwaGFEb3duOmxQdCxmYU1vbmV5QmlsbDpjUHQsZmFDaXJjbGVNaW51czpUNGUsZmFNaW51c0NpcmNsZTpkUHQsZmFBcnJvd1BvaW50ZXI6XzRlLGZhTW91c2VQb2ludGVyOmZQdCxmYVNxdWFyZVNoYXJlTm9kZXM6QTRlLGZhU2hhcmVBbHRTcXVhcmU6dVB0LGZhVGFibGVDZWxsc0xhcmdlOiQ0ZSxmYVRoTGFyZ2U6cFB0LGZhQ2F0OmhQdCxmYUNhbGVuZGFyV2VlazptUHQsZmFDb2RlQ29tcGFyZTpnUHQsZmFSb2FkQ2lyY2xlWG1hcms6eFB0LGZhUGFsbGV0OmJQdCxmYUNha2VDYW5kbGVzOk1VLGZhQmlydGhkYXlDYWtlOnZQdCxmYUNha2U6eVB0LGZhQnVnU2xhc2g6d1B0LGZhVGFycDpNUHQsZmFEaWFncmFtUHJlZGVjZXNzb3I6elB0LGZhRmFjZUZsdXNoZWQ6RDRlLGZhRmx1c2hlZDprUHQsZmFEaWFncmFtTmV4dDpTUHQsZmFBbmNob3JDaXJjbGVYbWFyazpDUHQsZmFQZXJzb25DaXJjbGVYbWFyazpMUHQsZmFTcGE6VFB0LGZhQmFyc1Byb2dyZXNzOkU0ZSxmYVRhc2tzQWx0Ol9QdCxmYUhlYXJ0Q2lyY2xlQ2hlY2s6QVB0LGZhTWFyc1N0cm9rZVJpZ2h0Ok40ZSxmYU1hcnNTdHJva2VIOiRQdCxmYVRvd2VyT2JzZXJ2YXRpb246RFB0LGZhU3RlcmxpbmdTaWduOnpVLGZhR2JwOkVQdCxmYVBvdW5kU2lnbjpOUHQsZmFGYXVjZXREcmlwOlBQdCxmYUNpcmNsZUluZm86JDcsZmFJbmZvQ2lyY2xlOklQdCxmYUZlYXRoZXI6RlB0LGZhQm93bFJpY2U6T1B0LGZhU3RhckhhbGZTdHJva2U6UDRlLGZhU3RhckhhbGZBbHQ6QlB0LGZhVGVtcGVyYXR1cmVBcnJvd0Rvd246STRlLGZhVGVtcGVyYXR1cmVEb3duOlJQdCxmYU1hc2tWZW50aWxhdG9yOkhQdCxmYUZpbGVWaWRlbzpxUHQsZmFBcnJvd1RyZW5kRG93bjpWUHQsZmFPaWxDYW46VVB0LGZhUGVvcGxlQ2FycnlCb3g6RjRlLGZhUGVvcGxlQ2Fycnk6alB0LGZhQ2hhaXI6V1B0LGZhV2luZDpHUHQsZmFMYXllckdyb3VwOllQdCxmYUhlYWRTaWRlTWFzazpaUHQsZmFIYW5kczprVSxmYVNpZ25MYW5ndWFnZTpYUHQsZmFTaWduaW5nOlFQdCxmYVRhYmxldHM6S1B0LGZhV2VpZ2h0SGFuZ2luZzpKUHQsZmFEaWNlOmVJdCxmYVNob3BTbGFzaDpPNGUsZmFTdG9yZUFsdFNsYXNoOnRJdCxmYVNvcnREb3duOkI0ZSxmYVNvcnREZXNjOmFJdCxmYVBlc2V0YVNpZ246ckl0LGZhVGFibGV0U2NyZWVuQnV0dG9uOlI0ZSxmYVRhYmxldEFsdDppSXQsZmFIYW5kSG9sZGluZ0RvbGxhcjpINGUsZmFIYW5kSG9sZGluZ1VzZDpvSXQsZmFTaGllbGQ6cTRlLGZhU2hpZWxkQmxhbms6c0l0LGZhRmFjZUxhdWdoOlY0ZSxmYUxhdWdoOm5JdCxmYUhhbmRzSG9sZGluZzpsSXQsZmFDYXJ0U2hvcHBpbmc6VTRlLGZhU2hvcHBpbmdDYXJ0OmNJdCxmYU9jdGFnb246ZEl0LGZhSGFuZFBvaW50ZXI6Zkl0LGZhUmVnaXN0ZXJlZDp1SXQsZmFIb3VzZVNpZ25hbDpwSXQsZmFCYW5nbGFkZXNoaVRha2FTaWduOmhJdH19KTt2YXIgRTcsajRlPW4oKCk9PntFNz17eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsInN0cm9rZS13aWR0aCI6Miwic3Ryb2tlLWxpbmVjYXAiOiJyb3VuZCIsInN0cm9rZS1saW5lam9pbiI6InJvdW5kIn19KTt2YXIgZ0l0LG9zLFc0ZT1uKCgpPT57ajRlKCk7Z0l0PShbdCxlLGFdKT0+e2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHQpO3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGk9PntyLnNldEF0dHJpYnV0ZShpLFN0cmluZyhlW2ldKSl9KSxhPy5sZW5ndGgmJmEuZm9yRWFjaChpPT57bGV0IG89Z0l0KGkpO3IuYXBwZW5kQ2hpbGQobyl9KSxyfSxvcz0odCxlPXt9KT0+e2xldCByPXsuLi5FNywuLi5lfTtyZXR1cm4gZ0l0KFsic3ZnIixyLHRdKX19KTt2YXIgeEl0LGJJdCx2SXQseG8xLGpVLHlJdD1uKCgpPT57VzRlKCk7ajRlKCk7eEl0PXQ9PkFycmF5LmZyb20odC5hdHRyaWJ1dGVzKS5yZWR1Y2UoKGUsYSk9PihlW2EubmFtZV09YS52YWx1ZSxlKSx7fSksYkl0PXQ9PnR5cGVvZiB0PT0ic3RyaW5nIj90OiF0fHwhdC5jbGFzcz8iIjp0LmNsYXNzJiZ0eXBlb2YgdC5jbGFzcz09InN0cmluZyI/dC5jbGFzcy5zcGxpdCgiICIpOnQuY2xhc3MmJkFycmF5LmlzQXJyYXkodC5jbGFzcyk/dC5jbGFzczoiIix2SXQ9dD0+dC5mbGF0TWFwKGJJdCkubWFwKGE9PmEudHJpbSgpKS5maWx0ZXIoQm9vbGVhbikuZmlsdGVyKChhLHIsaSk9PmkuaW5kZXhPZihhKT09PXIpLmpvaW4oIiAiKSx4bzE9dD0+dC5yZXBsYWNlKC8oXHcpKFx3KikoX3wtfFxzKikvZywoZSxhLHIpPT5hLnRvVXBwZXJDYXNlKCkrci50b0xvd2VyQ2FzZSgpKSxqVT0odCx7bmFtZUF0dHI6ZSxpY29uczphLGF0dHJzOnJ9KT0+e2xldCBpPXQuZ2V0QXR0cmlidXRlKGUpO2lmKGk9PW51bGwpcmV0dXJuO2xldCBvPXhvMShpKSxzPWFbb107aWYoIXMpcmV0dXJuIGNvbnNvbGUud2FybihgJHt0Lm91dGVySFRNTH0gaWNvbiBuYW1lIHdhcyBub3QgZm91bmQgaW4gdGhlIHByb3ZpZGVkIGljb25zIG9iamVjdC5gKTtsZXQgbD14SXQodCksZj17Li4uRTcsImRhdGEtbHVjaWRlIjppLC4uLnIsLi4ubH0sYz12SXQoWyJsdWNpZGUiLGBsdWNpZGUtJHtpfWAsbCxyXSk7YyYmT2JqZWN0LmFzc2lnbihmLHtjbGFzczpjfSk7bGV0IHU9b3MocyxmKTtyZXR1cm4gdC5wYXJlbnROb2RlPy5yZXBsYWNlQ2hpbGQodSx0KX19KTt2YXIgTjcsRzRlPW4oKCk9PntONz1bWyJwYXRoIix7ZDoibTE0IDEyIDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTE4IDE2VjcifV0sWyJwYXRoIix7ZDoibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV1dfSk7dmFyIFA3LFk0ZT1uKCgpPT57UDc9W1sicGF0aCIse2Q6Im0xNCAxMSA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xOCAxNlY3In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXX0pO3ZhciBJNyxaNGU9bigoKT0+e0k3PVtbInBhdGgiLHtkOiJtMTUgMTYgMi41MzYtNy4zMjhhMS4wMiAxLjAyIDEgMCAxIDEuOTI4IDBMMjIgMTYifV0sWyJwYXRoIix7ZDoiTTE1LjY5NyAxNGg1LjYwNiJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV19KTt2YXIgRjcsWDRlPW4oKCk9PntGNz1bWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiI0IixyOiIxIn1dLFsicGF0aCIse2Q6Im0xOCAxOSAxLTctNiAxIn1dLFsicGF0aCIse2Q6Im01IDggMy0zIDUuNSAzLTIuMzYgMy41In1dLFsicGF0aCIse2Q6Ik00LjI0IDE0LjVhNSA1IDAgMCAwIDYuODggNiJ9XSxbInBhdGgiLHtkOiJNMTMuNzYgMTcuNWE1IDUgMCAwIDAtNi44OC02In1dXX0pO3ZhciBPNyxRNGU9bigoKT0+e083PVtbInBhdGgiLHtkOiJNMjIgMTJoLTIuNDhhMiAyIDAgMCAwLTEuOTMgMS40NmwtMi4zNSA4LjM2YS4yNS4yNSAwIDAgMS0uNDggMEw5LjI0IDIuMThhLjI1LjI1IDAgMCAwLS40OCAwbC0yLjM1IDguMzZBMiAyIDAgMCAxIDQuNDkgMTJIMiJ9XV19KTt2YXIgQjcsSzRlPW4oKCk9PntCNz1bWyJwYXRoIix7ZDoiTTE4IDE3LjVhMi41IDIuNSAwIDEgMS00IDIuMDNWMTIifV0sWyJwYXRoIix7ZDoiTTYgMTJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNiA4aDEyIn1dLFsicGF0aCIse2Q6Ik02LjYgMTUuNTcyQTIgMiAwIDEgMCAxMCAxN3YtNSJ9XV19KTt2YXIgTm4sSjRlPW4oKCk9PntObj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJtOSAxMyAyIDIgNC00In1dXX0pO3ZhciBSNyxlM2U9bigoKT0+e1I3PVtbInBhdGgiLHtkOiJNNSAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtMSJ9XSxbInBhdGgiLHtkOiJtMTIgMTUgNSA2SDdaIn1dXX0pO3ZhciBQbix0M2U9bigoKT0+e1BuPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dLFsicGF0aCIse2Q6Ik05IDEzaDYifV1dfSk7dmFyIEg3LGEzZT1uKCgpPT57SDc9W1sicGF0aCIse2Q6Ik02Ljg3IDYuODdhOCA4IDAgMSAwIDExLjI2IDExLjI2In1dLFsicGF0aCIse2Q6Ik0xOS45IDE0LjI1YTggOCAwIDAgMC05LjE1LTkuMTUifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjI2IDE4LjY3IDQgMjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCA0IDIgNiJ9XV19KTt2YXIgSW4scjNlPW4oKCk9PntJbj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dXX0pO3ZhciBxNyxpM2U9bigoKT0+e3E3PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik0xMiA5djRsMiAyIn1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dXX0pO3ZhciBWNyxvM2U9bigoKT0+e1Y3PVtbInBhdGgiLHtkOiJNMTEgMjFjMC0yLjUgMi0yLjUgMi01In1dLFsicGF0aCIse2Q6Ik0xNiAyMWMwLTIuNSAyLTIuNSAyLTUifV0sWyJwYXRoIix7ZDoibTE5IDgtLjggM2ExLjI1IDEuMjUgMCAwIDEtMS4yIDFIN2ExLjI1IDEuMjUgMCAwIDEtMS4yLTFMNSA4In1dLFsicGF0aCIse2Q6Ik0yMSAzYTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY0YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDIxYzAtMi41IDItMi41IDItNSJ9XV19KTt2YXIgVTcsczNlPW4oKCk9PntVNz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTEgMyAxMSAxMSAxNCA4IDE3IDExIDE3IDMifV1dfSk7dmFyIGo3LG4zZT1uKCgpPT57ajc9W1sicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Ik0xMCAxNnY0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi00In1dLFsicGF0aCIse2Q6Ik0xMCA4VjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjAgMTZ2MWEyIDIgMCAwIDEtMiAyaC0yYTIgMiAwIDAgMS0yLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTE0IDhWN2MwLTEuMS45LTIgMi0yaDJhMiAyIDAgMCAxIDIgMnYxIn1dXX0pO3ZhciBXNyxsM2U9bigoKT0+e1c3PVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMEg0YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDQifV0sWyJwYXRoIix7ZDoiTTE2IDEwaDRhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTQifV0sWyJwYXRoIix7ZDoiTTggMjBIN2EyIDIgMCAwIDEtMi0ydi0yYzAtMS4xLjktMiAyLTJoMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoMWEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMmgtMSJ9XV19KTt2YXIgRzcsYzNlPW4oKCk9PntHNz1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjkiLHg6IjE0Iix5OiI5IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XV19KTt2YXIgWTcsZDNlPW4oKCk9PntZNz1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI5IixoZWlnaHQ6IjYiLHg6IjkiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjJWMiJ9XV19KTt2YXIgWjcsZjNlPW4oKCk9PntaNz1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjQiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNCIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDIydi01In1dLFsicGF0aCIse2Q6Ik0xNyA3VjIifV0sWyJwYXRoIix7ZDoiTTcgMjJ2LTMifV0sWyJwYXRoIix7ZDoiTTcgNVYyIn1dXX0pO3ZhciBYNyx1M2U9bigoKT0+e1g3PVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAydjIwIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIwIn1dXX0pO3ZhciBRNyxwM2U9bigoKT0+e1E3PVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTAgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMnYyMCJ9XV19KTt2YXIgSzcsaDNlPW4oKCk9PntLNz1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV1dfSk7dmFyIEo3LG0zZT1uKCgpPT57Sjc9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTIiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAydjIwIn1dXX0pO3ZhciBlZixnM2U9bigoKT0+e2VmPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE2Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAydjIwIn1dXX0pO3ZhciB0Zix4M2U9bigoKT0+e3RmPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiOSIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMjJWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjJWMiJ9XV19KTt2YXIgYWYsYjNlPW4oKCk9PnthZj1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNSIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMjEgMnYyMCJ9XV19KTt2YXIgcmYsdjNlPW4oKCk9PntyZj1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjkiLHg6IjE0Iix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMkgyIn1dXX0pO3ZhciBvZix5M2U9bigoKT0+e29mPVtbInJlY3QiLHt3aWR0aDoiOSIsaGVpZ2h0OiI2Iix4OiI2Iix5OiIxNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjYiLHg6IjYiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDJ2MjAifV1dfSk7dmFyIHNmLHczZT1uKCgpPT57c2Y9W1sicGF0aCIse2Q6Ik0yMiAxN2gtMyJ9XSxbInBhdGgiLHtkOiJNMjIgN2gtNSJ9XSxbInBhdGgiLHtkOiJNNSAxN0gyIn1dLFsicGF0aCIse2Q6Ik03IDdIMiJ9XSxbInJlY3QiLHt4OiI1Iix5OiIxNCIsd2lkdGg6IjE0IixoZWlnaHQ6IjYiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjciLHk6IjQiLHdpZHRoOiIxMCIsaGVpZ2h0OiI2IixyeDoiMiJ9XV19KTt2YXIgbmYsTTNlPW4oKCk9PntuZj1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMjBoMjAifV0sWyJwYXRoIix7ZDoiTTIgMTBoMjAifV1dfSk7dmFyIGxmLHozZT1uKCgpPT57bGY9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik0yIDRoMjAifV1dfSk7dmFyIGNmLGszZT1uKCgpPT57Y2Y9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dXX0pO3ZhciBkZixTM2U9bigoKT0+e2RmPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyMmgyMCJ9XV19KTt2YXIgZmYsQzNlPW4oKCk9PntmZj1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE2IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMmgyMCJ9XV19KTt2YXIgdWYsTDNlPW4oKCk9Pnt1Zj1bWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjkiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMEgyIn1dLFsicGF0aCIse2Q6Ik0yMiA0SDIifV1dfSk7dmFyIHBmLFQzZT1uKCgpPT57cGY9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDIxaDIwIn1dLFsicGF0aCIse2Q6Ik0yIDNoMjAifV1dfSk7dmFyIGhmLF8zZT1uKCgpPT57aGY9W1sicGF0aCIse2Q6Ik0xMCAxMEg2In1dLFsicGF0aCIse2Q6Ik0xNCAxOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFoMiJ9XSxbInBhdGgiLHtkOiJNMTkgMThoMmExIDEgMCAwIDAgMS0xdi0zLjI4YTEgMSAwIDAgMC0uNjg0LS45NDhsLTEuOTIzLS42NDFhMSAxIDAgMCAxLS41NzgtLjUwMmwtMS41MzktMy4wNzZBMSAxIDAgMCAwIDE2LjM4MiA4SDE0In1dLFsicGF0aCIse2Q6Ik04IDh2NCJ9XSxbInBhdGgiLHtkOiJNOSAxOGg2In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXX0pO3ZhciBtZixBM2U9bigoKT0+e21mPVtbInBhdGgiLHtkOiJNMTYgMTJoMyJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMmE4IDggMCAwIDEtOCA4QTQuNSA0LjUgMCAwIDEgNSAxNS41YzAtNiA4LTQgOC04LjVhMyAzIDAgMSAwLTYgMGMwIDMgMi41IDguNSAxMiAxMyJ9XV19KTt2YXIgZ2YsJDNlPW4oKCk9PntnZj1bWyJwYXRoIix7ZDoiTTEwIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01In1dLFsicGF0aCIse2Q6Ik0yMiAxN2MtNS0zLTctNy03LTlhMiAyIDAgMCAxIDQgMGMwIDIuNS01IDIuNS01IDYgMCAxLjcgMS4zIDMgMyAzIDIuOCAwIDUtMi4yIDUtNSJ9XV19KTt2YXIgeGYsRDNlPW4oKCk9Pnt4Zj1bWyJwYXRoIix7ZDoiTTEwIDJ2NS42MzJjMCAuNDI0LS4yNzIuNzk1LS42NTMuOTgyQTYgNiAwIDAgMCA2IDE0Yy4wMDYgNCAzIDcgNSA4In1dLFsicGF0aCIse2Q6Ik0xMCA1SDhhMiAyIDAgMCAwIDAgNGguNjgifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NS42MzJjMCAuNDI0LjI3Mi43OTUuNjUyLjk4MkE2IDYgMCAwIDEgMTggMTRjMCA0LTMgNy01IDgifV0sWyJwYXRoIix7ZDoiTTE0IDVoMmEyIDIgMCAwIDEgMCA0aC0uNjgifV0sWyJwYXRoIix7ZDoiTTE4IDIySDYifV0sWyJwYXRoIix7ZDoiTTkgMmg2In1dXX0pO3ZhciBiZixFM2U9bigoKT0+e2JmPVtbInBhdGgiLHtkOiJNMTIgNnYxNiJ9XSxbInBhdGgiLHtkOiJtMTkgMTMgMi0xYTkgOSAwIDAgMS0xOCAwbDIgMSJ9XSxbInBhdGgiLHtkOiJNOSAxMWg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNCIscjoiMiJ9XV19KTt2YXIgdmYsTjNlPW4oKCk9Pnt2Zj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE2IDE2cy0xLjUtMi00LTItNCAyLTQgMiJ9XSxbInBhdGgiLHtkOiJNNy41IDggMTAgOSJ9XSxbInBhdGgiLHtkOiJtMTQgOSAyLjUtMSJ9XSxbInBhdGgiLHtkOiJNOSAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDEwaC4wMSJ9XV19KTt2YXIgeWYsUDNlPW4oKCk9Pnt5Zj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTVoOCJ9XSxbInBhdGgiLHtkOiJNOCA5aDIifV0sWyJwYXRoIix7ZDoiTTE0IDloMiJ9XV19KTt2YXIgd2YsSTNlPW4oKCk9Pnt3Zj1bWyJwYXRoIix7ZDoiTTIgMTIgNyAyIn1dLFsicGF0aCIse2Q6Im03IDEyIDUtMTAifV0sWyJwYXRoIix7ZDoibTEyIDEyIDUtMTAifV0sWyJwYXRoIix7ZDoibTE3IDEyIDUtMTAifV0sWyJwYXRoIix7ZDoiTTQuNSA3aDE1In1dLFsicGF0aCIse2Q6Ik0xMiAxNnY2In1dXX0pO3ZhciBNZixGM2U9bigoKT0+e01mPVtbInBhdGgiLHtkOiJNNyAxMEg2YTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWg0In1dLFsicGF0aCIse2Q6Ik03IDVhMSAxIDAgMCAxIDEtMWgxM2ExIDEgMCAwIDEgMSAxIDcgNyAwIDAgMS03IDdIOGExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOSAxMnY1In1dLFsicGF0aCIse2Q6Ik0xNSAxMnY1In1dLFsicGF0aCIse2Q6Ik01IDIwYTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzIDEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xIn1dXX0pO3ZhciB6ZixPM2U9bigoKT0+e3pmPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTQuMzEgOCA1Ljc0IDkuOTQifV0sWyJwYXRoIix7ZDoiTTkuNjkgOGgxMS40OCJ9XSxbInBhdGgiLHtkOiJtNy4zOCAxMiA1Ljc0LTkuOTQifV0sWyJwYXRoIix7ZDoiTTkuNjkgMTYgMy45NSA2LjA2In1dLFsicGF0aCIse2Q6Ik0xNC4zMSAxNkgyLjgzIn1dLFsicGF0aCIse2Q6Im0xNi42MiAxMi01Ljc0IDkuOTQifV1dfSk7dmFyIGtmLEIzZT1uKCgpPT57a2Y9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XV19KTt2YXIgU2YsUjNlPW4oKCk9PntTZj1bWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTAgNHY0In1dLFsicGF0aCIse2Q6Ik0yIDhoMjAifV0sWyJwYXRoIix7ZDoiTTYgNHY0In1dXX0pO3ZhciBDZixIM2U9bigoKT0+e0NmPVtbInBhdGgiLHtkOiJNMTIgNi41MjhWM2ExIDEgMCAwIDEgMS0xaDAifV0sWyJwYXRoIix7ZDoiTTE4LjIzNyAyMUExNSAxNSAwIDAgMCAyMiAxMWE2IDYgMCAwIDAtMTAtNC40NzJBNiA2IDAgMCAwIDIgMTFhMTUuMSAxNS4xIDAgMCAwIDMuNzYzIDEwIDMgMyAwIDAgMCAzLjY0OC42NDggNS41IDUuNSAwIDAgMSA1LjE3OCAwQTMgMyAwIDAgMCAxOC4yMzcgMjEifV1dfSk7dmFyIExmLHEzZT1uKCgpPT57TGY9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgOHYxMWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Im05IDE1IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTEyIDEydjkifV1dfSk7dmFyIFRmLFYzZT1uKCgpPT57VGY9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4In1dLFsicGF0aCIse2Q6Im05LjUgMTcgNS01In1dLFsicGF0aCIse2Q6Im05LjUgMTIgNSA1In1dXX0pO3ZhciBfZixVM2U9bigoKT0+e19mPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNSIseDoiMiIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTJoNCJ9XV19KTt2YXIgQWYsajNlPW4oKCk9PntBZj1bWyJwYXRoIix7ZDoiTTE5IDlWNmEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0zIDE2YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXX0pO3ZhciAkZixXM2U9bigoKT0+eyRmPVtbInBhdGgiLHtkOiJNMTUgMTFhMSAxIDAgMCAwIDEgMWgyLjkzOWExIDEgMCAwIDEgLjc1IDEuODExbC02LjgzNSA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwNyAwTDQuMzEgMTMuODFhMSAxIDAgMCAxIC43NS0xLjgxMUg4YTEgMSAwIDAgMCAxLTFWOWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTkgNGg2In1dXX0pO3ZhciBEZixHM2U9bigoKT0+e0RmPVtbInBhdGgiLHtkOiJNMTUgMTFhMSAxIDAgMCAwIDEgMWgyLjkzOWExIDEgMCAwIDEgLjc1IDEuODExbC02LjgzNSA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwNyAwTDQuMzEgMTMuODFhMSAxIDAgMCAxIC43NS0xLjgxMUg4YTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXoifV1dfSk7dmFyIEVmLFkzZT1uKCgpPT57RWY9W1sicGF0aCIse2Q6Ik0xMyA5YTEgMSAwIDAgMS0xLTFWNS4wNjFhMSAxIDAgMCAwLTEuODExLS43NWwtNi44MzUgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN2w2LjgzNSA2LjgzNWExIDEgMCAwIDAgMS44MTEtLjc1VjE2YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTF6In1dLFsicGF0aCIse2Q6Ik0yMCA5djYifV1dfSk7dmFyIE5mLFozZT1uKCgpPT57TmY9W1sicGF0aCIse2Q6Ik0xMyA5YTEgMSAwIDAgMS0xLTFWNS4wNjFhMSAxIDAgMCAwLTEuODExLS43NWwtNi44MzUgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN2w2LjgzNSA2LjgzNWExIDEgMCAwIDAgMS44MTEtLjc1VjE2YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTF6In1dXX0pO3ZhciBQZixYM2U9bigoKT0+e1BmPVtbInBhdGgiLHtkOiJNMTEgOWExIDEgMCAwIDAgMS0xVjUuMDYxYTEgMSAwIDAgMSAxLjgxMS0uNzVsNi44MzYgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi44MzYgNi44MzVhMSAxIDAgMCAxLTEuODExLS43NVYxNmExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNCA5djYifV1dfSk7dmFyIElmLFEzZT1uKCgpPT57SWY9W1sicGF0aCIse2Q6Ik0xMSA5YTEgMSAwIDAgMCAxLTFWNS4wNjFhMSAxIDAgMCAxIDEuODExLS43NWw2LjgzNiA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA3bC02LjgzNiA2LjgzNWExIDEgMCAwIDEtMS44MTEtLjc1VjE2YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6In1dXX0pO3ZhciBGZixLM2U9bigoKT0+e0ZmPVtbInBhdGgiLHtkOiJNOSAxM2ExIDEgMCAwIDAtMS0xSDUuMDYxYTEgMSAwIDAgMS0uNzUtMS44MTFsNi44MzYtNi44MzVhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDcgMGw2LjgzNSA2LjgzNWExIDEgMCAwIDEtLjc1IDEuODExSDE2YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik05IDIwaDYifV1dfSk7dmFyIE9mLEozZT1uKCgpPT57T2Y9W1sicGF0aCIse2Q6Ik05IDEzYTEgMSAwIDAgMC0xLTFINS4wNjFhMSAxIDAgMCAxLS43NS0xLjgxMWw2LjgzNi02LjgzNWExLjIwNyAxLjIwNyAwIDAgMSAxLjcwNyAwbDYuODM1IDYuODM1YTEgMSAwIDAgMS0uNzUgMS44MTFIMTZhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMS0xIDFoLTRhMSAxIDAgMCAxLTEtMXoifV1dfSk7dmFyIEJmLGVsZT1uKCgpPT57QmY9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInJlY3QiLHt4OiIxNSIseToiNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDIwdi02aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAyMGg0In1dXX0pO3ZhciBSZix0bGU9bigoKT0+e1JmPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoiTTE3IDEwVjRoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDEwaDQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XV19KTt2YXIgRm4sYWxlPW4oKCk9PntGbj1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0yMCA4aC01In1dLFsicGF0aCIse2Q6Ik0xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAifV0sWyJwYXRoIix7ZDoiTTE1IDE0aDVsLTUgNmg1In1dXX0pO3ZhciBIZixybGU9bigoKT0+e0hmPVtbInBhdGgiLHtkOiJNMTkgM0g1In1dLFsicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im02IDE1IDYgNiA2LTYifV1dfSk7dmFyIHFmLGlsZT1uKCgpPT57cWY9W1sicGF0aCIse2Q6Ik0xNyA3IDcgMTcifV0sWyJwYXRoIix7ZDoiTTE3IDE3SDdWNyJ9XV19KTt2YXIgVmYsb2xlPW4oKCk9PntWZj1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTcgN3YxMEg3In1dXX0pO3ZhciBVZixzbGU9bigoKT0+e1VmPVtbInBhdGgiLHtkOiJNMTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJtMTkgOS03IDctNy03In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjEiLHI6IjEifV1dfSk7dmFyIGpmLG5sZT1uKCgpPT57amY9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTEgNGg0In1dLFsicGF0aCIse2Q6Ik0xMSA4aDcifV0sWyJwYXRoIix7ZDoiTTExIDEyaDEwIn1dXX0pO3ZhciBXZixsbGU9bigoKT0+e1dmPVtbInBhdGgiLHtkOiJNMTIgMTdWMyJ9XSxbInBhdGgiLHtkOiJtNiAxMSA2IDYgNi02In1dLFsicGF0aCIse2Q6Ik0xOSAyMUg1In1dXX0pO3ZhciBHZixjbGU9bigoKT0+e0dmPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoibTIxIDgtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTcgNHYxNiJ9XV19KTt2YXIgT24sZGxlPW4oKCk9PntPbj1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0xMSA0aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSA4aDcifV0sWyJwYXRoIix7ZDoiTTExIDEyaDQifV1dfSk7dmFyIEJuLGZsZT1uKCgpPT57Qm49W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTUgNGg1bC01IDZoNSJ9XSxbInBhdGgiLHtkOiJNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMThoLTUifV1dfSk7dmFyIFlmLHVsZT1uKCgpPT57WWY9W1sicGF0aCIse2Q6Ik0xMiA1djE0In1dLFsicGF0aCIse2Q6Im0xOSAxMi03IDctNy03In1dXX0pO3ZhciBaZixwbGU9bigoKT0+e1pmPVtbInBhdGgiLHtkOiJNOCAzIDQgN2w0IDQifV0sWyJwYXRoIix7ZDoiTTQgN2gxNiJ9XSxbInBhdGgiLHtkOiJtMTYgMjEgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNMjAgMTdINCJ9XV19KTt2YXIgWGYsaGxlPW4oKCk9PntYZj1bWyJwYXRoIix7ZDoibTkgNi02IDYgNiA2In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE0In1dLFsicGF0aCIse2Q6Ik0yMSAxOVY1In1dXX0pO3ZhciBRZixtbGU9bigoKT0+e1FmPVtbInBhdGgiLHtkOiJNMyAxOVY1In1dLFsicGF0aCIse2Q6Im0xMyA2LTYgNiA2IDYifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTQifV1dfSk7dmFyIEtmLGdsZT1uKCgpPT57S2Y9W1sicGF0aCIse2Q6Im0xMiAxOS03LTcgNy03In1dLFsicGF0aCIse2Q6Ik0xOSAxMkg1In1dXX0pO3ZhciBKZix4bGU9bigoKT0+e0pmPVtbInBhdGgiLHtkOiJNMyA1djE0In1dLFsicGF0aCIse2Q6Ik0yMSAxMkg3In1dLFsicGF0aCIse2Q6Im0xNSAxOCA2LTYtNi02In1dXX0pO3ZhciBldSxibGU9bigoKT0+e2V1PVtbInBhdGgiLHtkOiJtMTYgMyA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yMCA3SDQifV0sWyJwYXRoIix7ZDoibTggMjEtNC00IDQtNCJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV19KTt2YXIgdHUsdmxlPW4oKCk9Pnt0dT1bWyJwYXRoIix7ZDoiTTE3IDEySDMifV0sWyJwYXRoIix7ZDoibTExIDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dfSk7dmFyIGF1LHlsZT1uKCgpPT57YXU9W1sicGF0aCIse2Q6Ik01IDEyaDE0In1dLFsicGF0aCIse2Q6Im0xMiA1IDcgNy03IDcifV1dfSk7dmFyIHJ1LHdsZT1uKCgpPT57cnU9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicmVjdCIse3g6IjE1Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjB2LTZoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDIwaDQifV1dfSk7dmFyIGl1LE1sZT1uKCgpPT57aXU9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyAxMFY0aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGg0In1dLFsicmVjdCIse3g6IjE1Iix5OiIxNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV1dfSk7dmFyIFJuLHpsZT1uKCgpPT57Um49W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0yMCA4aC01In1dLFsicGF0aCIse2Q6Ik0xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAifV0sWyJwYXRoIix7ZDoiTTE1IDE0aDVsLTUgNmg1In1dXX0pO3ZhciBvdSxrbGU9bigoKT0+e291PVtbInBhdGgiLHtkOiJtMjEgMTYtNCA0LTQtNCJ9XSxbInBhdGgiLHtkOiJNMTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XV19KTt2YXIgc3UsU2xlPW4oKCk9PntzdT1bWyJwYXRoIix7ZDoibTUgOSA3LTcgNyA3In1dLFsicGF0aCIse2Q6Ik0xMiAxNlYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjEiLHI6IjEifV1dfSk7dmFyIG51LENsZT1uKCgpPT57bnU9W1sicGF0aCIse2Q6Im0xOCA5LTYtNi02IDYifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTQifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dfSk7dmFyIGx1LExsZT1uKCgpPT57bHU9W1sicGF0aCIse2Q6Ik03IDE3VjdoMTAifV0sWyJwYXRoIix7ZDoiTTE3IDE3IDcgNyJ9XV19KTt2YXIgSG4sVGxlPW4oKCk9PntIbj1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTExIDEyaDQifV0sWyJwYXRoIix7ZDoiTTExIDE2aDcifV0sWyJwYXRoIix7ZDoiTTExIDIwaDEwIn1dXX0pO3ZhciBjdSxfbGU9bigoKT0+e2N1PVtbInBhdGgiLHtkOiJNNyA3aDEwdjEwIn1dLFsicGF0aCIse2Q6Ik03IDE3IDE3IDcifV1dfSk7dmFyIGR1LEFsZT1uKCgpPT57ZHU9W1sicGF0aCIse2Q6Ik01IDNoMTQifV0sWyJwYXRoIix7ZDoibTE4IDEzLTYtNi02IDYifV0sWyJwYXRoIix7ZDoiTTEyIDd2MTQifV1dfSk7dmFyIGZ1LCRsZT1uKCgpPT57ZnU9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTZoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjBoNCJ9XV19KTt2YXIgcW4sRGxlPW4oKCk9Pntxbj1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE1IDRoNWwtNSA2aDUifV0sWyJwYXRoIix7ZDoiTTE1IDIwdi0zLjVhMi41IDIuNSAwIDAgMSA1IDBWMjAifV0sWyJwYXRoIix7ZDoiTTIwIDE4aC01In1dXX0pO3ZhciB1dSxFbGU9bigoKT0+e3V1PVtbInBhdGgiLHtkOiJtNSAxMiA3LTcgNyA3In1dLFsicGF0aCIse2Q6Ik0xMiAxOVY1In1dXX0pO3ZhciBwdSxObGU9bigoKT0+e3B1PVtbInBhdGgiLHtkOiJtNCA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTcgMTdWMyJ9XSxbInBhdGgiLHtkOiJtMTQgNiAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxN1YzIn1dLFsicGF0aCIse2Q6Ik00IDIxaDE2In1dXX0pO3ZhciBodSxQbGU9bigoKT0+e2h1PVtbInBhdGgiLHtkOiJNMTIgNnYxMiJ9XSxbInBhdGgiLHtkOiJNMTcuMTk2IDkgNi44MDQgMTUifV0sWyJwYXRoIix7ZDoibTYuODA0IDkgMTAuMzkyIDYifV1dfSk7dmFyIG11LElsZT1uKCgpPT57bXU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE2IDh2NWEzIDMgMCAwIDAgNiAwdi0xYTEwIDEwIDAgMSAwLTQgOCJ9XV19KTt2YXIgZ3UsRmxlPW4oKCk9PntndT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMjAuMiAyMC4yYzIuMDQtMi4wMy4wMi03LjM2LTQuNS0xMS45LTQuNTQtNC41Mi05Ljg3LTYuNTQtMTEuOS00LjUtMi4wNCAyLjAzLS4wMiA3LjM2IDQuNSAxMS45IDQuNTQgNC41MiA5Ljg3IDYuNTQgMTEuOSA0LjVaIn1dLFsicGF0aCIse2Q6Ik0xNS43IDE1LjdjNC41Mi00LjU0IDYuNTQtOS44NyA0LjUtMTEuOS0yLjAzLTIuMDQtNy4zNi0uMDItMTEuOSA0LjUtNC41MiA0LjU0LTYuNTQgOS44Ny00LjUgMTEuOSAyLjAzIDIuMDQgNy4zNi4wMiAxMS45LTQuNVoifV1dfSk7dmFyIHh1LE9sZT1uKCgpPT57eHU9W1sicGF0aCIse2Q6Ik0yIDEwdjMifV0sWyJwYXRoIix7ZDoiTTYgNnYxMSJ9XSxbInBhdGgiLHtkOiJNMTAgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTQgOHY3In1dLFsicGF0aCIse2Q6Ik0xOCA1djEzIn1dLFsicGF0aCIse2Q6Ik0yMiAxMHYzIn1dXX0pO3ZhciBidSxCbGU9bigoKT0+e2J1PVtbInBhdGgiLHtkOiJtMTUuNDc3IDEyLjg5IDEuNTE1IDguNTI2YS41LjUgMCAwIDEtLjgxLjQ3bC0zLjU4LTIuNjg3YTEgMSAwIDAgMC0xLjE5NyAwbC0zLjU4NiAyLjY4NmEuNS41IDAgMCAxLS44MS0uNDY5bDEuNTE0LTguNTI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiNiJ9XV19KTt2YXIgdnUsUmxlPW4oKCk9Pnt2dT1bWyJwYXRoIix7ZDoiTTIgMTNhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMFY0YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgMi0yIn1dXX0pO3ZhciB5dSxIbGU9bigoKT0+e3l1PVtbInBhdGgiLHtkOiJtMTQgMTItOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5In1dLFsicGF0aCIse2Q6Ik0xNSAxNS41YS41LjUgMCAwIDAgLjUuNUE2LjUgNi41IDAgMCAwIDIyIDkuNWEuNS41IDAgMCAwLS41LS41aC0xLjY3MmEyIDIgMCAwIDEtMS40MTQtLjU4NmwtNS4wNjItNS4wNjJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw5LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDUuMDYyIDUuMDYyQTIgMiAwIDAgMSAxNSAxMy44Mjh6In1dXX0pO3ZhciBWbixxbGU9bigoKT0+e1ZuPVtbInBhdGgiLHtkOiJNMTMuNSAxMC41IDE1IDkifV0sWyJwYXRoIix7ZDoiTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1In1dLFsicGF0aCIse2Q6Ik00LjI5MyAxOS43MDcgNiAxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNSAxLjUtMS41In1dXX0pO3ZhciB3dSxWbGU9bigoKT0+e3d1PVtbInBhdGgiLHtkOiJNMTAgMTZjLjUuMyAxLjIuNSAyIC41czEuNS0uMiAyLS41In1dLFsicGF0aCIse2Q6Ik0xNSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5LjM4IDYuODEzQTkgOSAwIDAgMSAyMC44IDEwLjJhMiAyIDAgMCAxIDAgMy42IDkgOSAwIDAgMS0xNy42IDAgMiAyIDAgMCAxIDAtMy42QTkgOSAwIDAgMSAxMiAzYzIgMCAzLjUgMS4xIDMuNSAyLjVzLS45IDIuNS0yIDIuNWMtLjggMC0xLjUtLjQtMS41LTEifV0sWyJwYXRoIix7ZDoiTTkgMTJoLjAxIn1dXX0pO3ZhciBNdSxVbGU9bigoKT0+e011PVtbInBhdGgiLHtkOiJNNCAxMGE0IDQgMCAwIDEgNC00aDhhNCA0IDAgMCAxIDQgNHYxMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnoifV0sWyJwYXRoIix7ZDoiTTggMTBoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg4In1dLFsicGF0aCIse2Q6Ik04IDIydi02YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTkgNlY0YTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIHp1LGpsZT1uKCgpPT57enU9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIGt1LFdsZT1uKCgpPT57a3U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTUuNCAxMGE0IDQgMCAxIDAgMCA0In1dXX0pO3ZhciBVbixHbGU9bigoKT0+e1VuPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgU3UsWWxlPW4oKCk9PntTdT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dfSk7dmFyIEN1LFpsZT1uKCgpPT57Q3U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNNyAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNSA5LjRhNCA0IDAgMSAwIDAgNS4yIn1dXX0pO3ZhciBMdSxYbGU9bigoKT0+e0x1PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTggOGg4In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTEzIDE3LTUtMWgxYTQgNCAwIDAgMCAwLTgifV1dfSk7dmFyIFR1LFFsZT1uKCgpPT57VHU9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE2Iix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiI4Iix5MjoiOCJ9XV19KTt2YXIgX3UsS2xlPW4oKCk9PntfdT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im05IDggMyAzdjcifV0sWyJwYXRoIix7ZDoibTEyIDExIDMtMyJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik05IDE2aDYifV1dfSk7dmFyIEF1LEpsZT1uKCgpPT57QXU9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMTIiLHkyOiIxMiJ9XV19KTt2YXIgJHUsZWNlPW4oKCk9PnskdT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciBEdSx0Y2U9bigoKT0+e0R1PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTYifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIEV1LGFjZT1uKCgpPT57RXU9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMCAxNlY5LjVhMi41IDIuNSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XV19KTt2YXIgam4scmNlPW4oKCk9Pntqbj1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE3Iix5MjoiMTcifV1dfSk7dmFyIE51LGljZT1uKCgpPT57TnU9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOSAxNmg1In1dLFsicGF0aCIse2Q6Ik05IDEyaDVhMiAyIDAgMSAwIDAtNGgtM3Y5In1dXX0pO3ZhciBQdSxvY2U9bigoKT0+e1B1PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTExIDE3VjhoNCJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoMyJ9XSxbInBhdGgiLHtkOiJNOSAxNmg0In1dXX0pO3ZhciBJdSxzY2U9bigoKT0+e0l1PVtbInBhdGgiLHtkOiJNMTEgN3YxMGE1IDUgMCAwIDAgNS01In1dLFsicGF0aCIse2Q6Im0xNSA4LTYgMyJ9XSxbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NiJ9XV19KTt2YXIgRnUsbmNlPW4oKCk9PntGdT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV19KTt2YXIgT3UsbGNlPW4oKCk9PntPdT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dXX0pO3ZhciBCdSxjY2U9bigoKT0+e0J1PVtbInBhdGgiLHtkOiJNMjIgMThINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAwLTItMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWNGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MTAifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjgiLHg6IjgiLHk6IjYiLHJ4OiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBSdSxkY2U9bigoKT0+e1J1PVtbInBhdGgiLHtkOiJNMTIgMTZ2MWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDhjMCA0LTMuNSA4LTYgOHMtNi00LTYtOGE2IDYgMCAwIDEgMTIgMCJ9XV19KTt2YXIgSHUsZmNlPW4oKCk9PntIdT1bWyJwYXRoIix7ZDoiTTQuOTI5IDQuOTI5IDE5LjA3IDE5LjA3MSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgcXUsdWNlPW4oKCk9PntxdT1bWyJwYXRoIix7ZDoiTTQgMTNjMy41LTIgOC0yIDEwIDJhNS41IDUuNSAwIDAgMSA4IDUifV0sWyJwYXRoIix7ZDoiTTUuMTUgMTcuODljNS41Mi0xLjUyIDguNjUtNi44OSA3LTEyQzExLjU1IDQgMTEuNSAyIDEzIDJjMy4yMiAwIDUgNS41IDUgOCAwIDYuNS00LjIgMTItMTAuNDkgMTJDNS4xMSAyMiAyIDIyIDIgMjBjMC0xLjUgMS4xNC0xLjU1IDMuMTUtMi4xMVoifV1dfSk7dmFyIFZ1LHBjZT1uKCgpPT57VnU9W1sicGF0aCIse2Q6Ik0xMCAxMC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE0LjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTAuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZ2MTEuNSJ9XSxbInBhdGgiLHtkOiJNNiA2djEyIn1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIFV1LGhjZT1uKCgpPT57VXU9W1sicGF0aCIse2Q6Ik0xMiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBqdSxtY2U9bigoKT0+e2p1PVtbInBhdGgiLHtkOiJNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoiTTE4IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTkgMjJ2LTYifV0sWyJwYXRoIix7ZDoibTIyIDE5LTMtMy0zIDMifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIFd1LGdjZT1uKCgpPT57V3U9W1sicGF0aCIse2Q6Ik0xMyAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NSJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNSA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoibTIyIDE3LTUgNSJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgR3UseGNlPW4oKCk9PntHdT1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMU0xOCAxMmguMDEifV1dfSk7dmFyIFl1LGJjZT1uKCgpPT57WXU9W1sicGF0aCIse2Q6Ik0zIDV2MTQifV0sWyJwYXRoIix7ZDoiTTggNXYxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNXYxNCJ9XSxbInBhdGgiLHtkOiJNMTcgNXYxNCJ9XSxbInBhdGgiLHtkOiJNMjEgNXYxNCJ9XV19KTt2YXIgWnUsdmNlPW4oKCk9PntadT1bWyJwYXRoIix7ZDoiTTEwIDNhNDEgNDEgMCAwIDAgMCAxOCJ9XSxbInBhdGgiLHtkOiJNMTQgM2E0MSA0MSAwIDAgMSAwIDE4In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAxLjY4LjkyIDE1LjI1IDE1LjI1IDAgMCAxIDAgMTYuMTZBMiAyIDAgMCAxIDE3IDIxSDdhMiAyIDAgMCAxLTEuNjgtLjkyIDE1LjI1IDE1LjI1IDAgMCAxIDAtMTYuMTZBMiAyIDAgMCAxIDcgM3oifV0sWyJwYXRoIix7ZDoiTTMuODQgMTdoMTYuMzIifV0sWyJwYXRoIix7ZDoiTTMuODQgN2gxNi4zMiJ9XV19KTt2YXIgWHUseWNlPW4oKCk9PntYdT1bWyJwYXRoIix7ZDoiTTQgMjBoMTYifV0sWyJwYXRoIix7ZDoibTYgMTYgNi0xMiA2IDEyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dfSk7dmFyIFF1LHdjZT1uKCgpPT57UXU9W1sicGF0aCIse2Q6Ik0xMCA0IDggNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJNNyAxOXYyIn1dLFsicGF0aCIse2Q6Ik05IDUgNy42MjEgMy42MjFBMi4xMjEgMi4xMjEgMCAwIDAgNCA1djEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtNSJ9XV19KTt2YXIgS3UsTWNlPW4oKCk9PntLdT1bWyJwYXRoIix7ZDoibTExIDctMyA1aDRsLTMgNSJ9XSxbInBhdGgiLHtkOiJNMTQuODU2IDZIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIuOTM1In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNS4xNCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDIuOTM2In1dXX0pO3ZhciBKdSx6Y2U9bigoKT0+e0p1PVtbInBhdGgiLHtkOiJNMTAgMTB2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTB2NCJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMTB2NCJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXX0pO3ZhciBlcCxrY2U9bigoKT0+e2VwPVtbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMTR2LTQifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV19KTt2YXIgdHAsU2NlPW4oKCk9Pnt0cD1bWyJwYXRoIix7ZDoiTTEwIDl2NiJ9XSxbInBhdGgiLHtkOiJNMTIuNTQzIDZIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTMuNjA1In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNyAxMmg2In1dLFsicGF0aCIse2Q6Ik03LjYwNiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDMuNjA2In1dXX0pO3ZhciBhcCxDY2U9bigoKT0+e2FwPVtbInBhdGgiLHtkOiJNMTAgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDE0di00In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIHJwLExjZT1uKCgpPT57cnA9W1sicGF0aCIse2Q6Ik0xMCAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTEwIDd2NiJ9XSxbInBhdGgiLHtkOiJNMTQgNmgyYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDIifV1dfSk7dmFyIGlwLFRjZT1uKCgpPT57aXA9W1sicGF0aCIse2Q6Ik0gMjIgMTQgTCAyMiAxMCJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXX0pO3ZhciBvcCxfY2U9bigoKT0+e29wPVtbInBhdGgiLHtkOiJNNC41IDNoMTUifV0sWyJwYXRoIix7ZDoiTTYgM3YxNmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYzIn1dLFsicGF0aCIse2Q6Ik02IDE0aDEyIn1dXX0pO3ZhciBzcCxBY2U9bigoKT0+e3NwPVtbInBhdGgiLHtkOiJNOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYTEzLjk2IDEzLjk2IDAgMCAwIDkuOS00LjEifV0sWyJwYXRoIix7ZDoiTTEwLjc1IDUuMDkzQTYgNiAwIDAgMSAyMiA4YzAgMi40MTEtLjYxIDQuNjgtMS42ODMgNi42NiJ9XSxbInBhdGgiLHtkOiJNNS4zNDEgMTAuNjJhNCA0IDAgMCAwIDYuNDg3IDEuMjA4TTEwLjYyIDUuMzQxYTQuMDE1IDQuMDE1IDAgMCAxIDIuMDM5IDIuMDQifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgbnAsJGNlPW4oKCk9PntucD1bWyJwYXRoIix7ZDoiTTEwLjE2NSA2LjU5OEM5Ljk1NCA3LjQ3OCA5LjY0IDguMzYgOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYzcuNzMyIDAgMTQtNi4yNjggMTQtMTRhNiA2IDAgMCAwLTExLjgzNS0xLjQwMloifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDEgMCA1LjI3OS01LjI4In1dXX0pO3ZhciBscCxEY2U9bigoKT0+e2xwPVtbInBhdGgiLHtkOiJNMiAyMHYtOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNCAxMFY2YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0xMiA0djYifV0sWyJwYXRoIix7ZDoiTTIgMThoMjAifV1dfSk7dmFyIGNwLEVjZT1uKCgpPT57Y3A9W1sicGF0aCIse2Q6Ik0zIDIwdi04YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY4In1dLFsicGF0aCIse2Q6Ik01IDEwVjZhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMThoMTgifV1dfSk7dmFyIGRwLE5jZT1uKCgpPT57ZHA9W1sicGF0aCIse2Q6Ik0yIDR2MTYifV0sWyJwYXRoIix7ZDoiTTIgOGgxOGEyIDIgMCAwIDEgMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0yIDE3aDIwIn1dLFsicGF0aCIse2Q6Ik02IDh2OSJ9XV19KTt2YXIgZnAsUGNlPW4oKCk9PntmcD1bWyJwYXRoIix7ZDoiTTE2LjQgMTMuN0E2LjUgNi41IDAgMSAwIDYuMjggNi42Yy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGM0IDAgOC40LTEuOCAxMS40LTQuMyJ9XSxbInBhdGgiLHtkOiJtMTguNSA2IDIuMTkgNC41YTYuNDggNi40OCAwIDAgMS0yLjI5IDcuMkMxNS40IDIwLjIgMTEgMjIgNyAyMmEzIDMgMCAwIDEtMi42OC0xLjY2TDIuNCAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjEyLjUiLGN5OiI4LjUiLHI6IjIuNSJ9XV19KTt2YXIgdXAsSWNlPW4oKCk9Pnt1cD1bWyJwYXRoIix7ZDoiTTEzIDEzdjUifV0sWyJwYXRoIix7ZDoiTTE3IDExLjQ3VjgifV0sWyJwYXRoIix7ZDoiTTE3IDExaDFhMyAzIDAgMCAxIDIuNzQ1IDQuMjExIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNNy41MzYgNy41MzVDNi43NjYgNy42NDkgNi4xNTQgOCA1LjUgOGEyLjUgMi41IDAgMCAxLTEuNzY4LTQuMjY4In1dLFsicGF0aCIse2Q6Ik04LjcyNyAzLjIwNEM5LjMwNiAyLjc2NyA5Ljg4NSAyIDExIDJjMS41NiAwIDIgMS41IDMgMS41czEuNzItLjUgMi41LS41YTEgMSAwIDEgMSAwIDVjLS43OCAwLTEuNS0uNS0yLjUtLjVhMy4xNDkgMy4xNDkgMCAwIDAtLjg0Mi4xMiJ9XSxbInBhdGgiLHtkOiJNOSAxNC42VjE4In1dXX0pO3ZhciBwcCxGY2U9bigoKT0+e3BwPVtbInBhdGgiLHtkOiJNMTcgMTFoMWEzIDMgMCAwIDEgMCA2aC0xIn1dLFsicGF0aCIse2Q6Ik05IDEydjYifV0sWyJwYXRoIix7ZDoiTTEzIDEydjYifV0sWyJwYXRoIix7ZDoiTTE0IDcuNWMtMSAwLTEuNDQuNS0zIC41cy0yLS41LTMtLjUtMS43Mi41LTIuNS41YTIuNSAyLjUgMCAwIDEgMC01Yy43OCAwIDEuNTcuNSAyLjUuNVM5LjQ0IDIgMTEgMnMyIDEuNSAzIDEuNSAxLjcyLS41IDIuNS0uNWEyLjUgMi41IDAgMCAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNVoifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4In1dXX0pO3ZhciBocCxPY2U9bigoKT0+e2hwPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xMy45MTYgMi4zMTRBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzQgNy4zMjdBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3MyA5IDkgMCAwIDEtLjU4NS0uNjY1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiOCIscjoiMyJ9XV19KTt2YXIgbXAsQmNlPW4oKCk9PnttcD1bWyJwYXRoIix7ZDoiTTE4LjUxOCAxNy4zNDdBNyA3IDAgMCAxIDE0IDE5In1dLFsicGF0aCIse2Q6Ik0xOC44IDRBMTEgMTEgMCAwIDEgMjAgOSJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE2IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiI3In1dLFsicmVjdCIse3g6IjQiLHk6IjE2Iix3aWR0aDoiMTAiLGhlaWdodDoiNiIscng6IjIifV1dfSk7dmFyIGdwLFJjZT1uKCgpPT57Z3A9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTE1IDhoNiJ9XSxbInBhdGgiLHtkOiJNMTYuMjQzIDMuNzU3QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQTkuNCA5LjQgMCAwIDEgMTguNjY3IDEyIn1dXX0pO3ZhciB4cCxIY2U9bigoKT0+e3hwPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNyAxN0g0YTEgMSAwIDAgMS0uNzQtMS42NzNDNC41OSAxMy45NTYgNiAxMi40OTkgNiA4YTYgNiAwIDAgMSAuMjU4LTEuNzQyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTguNjY4IDMuMDFBNiA2IDAgMCAxIDE4IDhjMCAyLjY4Ny43NyA0LjY1MyAxLjcwNyA2LjA1In1dXX0pO3ZhciBicCxxY2U9bigoKT0+e2JwPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4aDYifV0sWyJwYXRoIix7ZDoiTTE4IDV2NiJ9XSxbInBhdGgiLHtkOiJNMjAuMDAyIDE0LjQ2NGE5IDkgMCAwIDAgLjczOC44NjNBMSAxIDAgMCAxIDIwIDE3SDRhMSAxIDAgMCAxLS43NC0xLjY3M0M0LjU5IDEzLjk1NiA2IDEyLjQ5OSA2IDhhNiA2IDAgMCAxIDguNzUtNS4zMzIifV1dfSk7dmFyIHZwLFZjZT1uKCgpPT57dnA9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTIyIDhjMC0yLjMtLjgtNC4zLTItNiJ9XSxbInBhdGgiLHtkOiJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNDMTkuNDEgMTMuOTU2IDE4IDEyLjQ5OSAxOCA4QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNiJ9XSxbInBhdGgiLHtkOiJNNCAyQzIuOCAzLjcgMiA1LjcgMiA4In1dXX0pO3ZhciB5cCxVY2U9bigoKT0+e3lwPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2In1dXX0pO3ZhciBXbixqY2U9bigoKT0+e1duPVtbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoibTIyIDE1LTMtMyAzLTMifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgR24sV2NlPW4oKCk9PntHbj1bWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjgiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0yIDkgMyAzLTMgMyJ9XSxbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiOCIseToiMTQiLHJ4OiIxIn1dXX0pO3ZhciB3cCxHY2U9bigoKT0+e3dwPVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMyIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoibTkgMjIgMy0zIDMgMyJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMTQiLHk6IjMiLHJ4OiIxIn1dXX0pO3ZhciBNcCxZY2U9bigoKT0+e01wPVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMyIseToiOCIscng6IjEifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMTQiLHk6IjgiLHJ4OiIxIn1dXX0pO3ZhciB6cCxaY2U9bigoKT0+e3pwPVtbInBhdGgiLHtkOiJNMTIuNDA5IDEzLjAxN0E1IDUgMCAwIDEgMjIgMTVjMCAzLjg2Ni00IDctOSA3LTQuMDc3IDAtOC4xNTMtLjgyLTEwLjM3MS0yLjQ2Mi0uNDI2LS4zMTYtLjYzMS0uODMyLS42Mi0xLjM2MkMyLjExOCAxMi43MjMgMi42MjcgMiAxMCAyYTMgMyAwIDAgMSAzIDMgMiAyIDAgMCAxLTIgMmMtMS4xMDUgMC0xLjY0LS40NDQtMi0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGE1IDUgMCAwIDAtNy41ODQgMiJ9XSxbInBhdGgiLHtkOiJNOS45NjQgNi44MjVDOC4wMTkgNy45NzcgOS41IDEzIDggMTUifV1dfSk7dmFyIGtwLFhjZT1uKCgpPT57a3A9W1siY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiIxNy41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNS41IixjeToiMTcuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiNSIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNVYxNGwtMy0zIDQtMyAyIDNoMiJ9XV19KTt2YXIgU3AsUWNlPW4oKCk9PntTcD1bWyJyZWN0Iix7eDoiMTQiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI2Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAyMGg0In1dLFsicGF0aCIse2Q6Ik0xNCAxMGg0In1dLFsicGF0aCIse2Q6Ik02IDE0aDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTQgNGgydjYifV1dfSk7dmFyIENwLEtjZT1uKCgpPT57Q3A9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTEuOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNi43IDMuNGMtLjkgMi41IDAgNS4yIDIuMiA2LjdDNi41IDkgMy43IDkuNiAyIDExLjYifV0sWyJwYXRoIix7ZDoibTguOSAxMC4xIDEuNC44In1dLFsicGF0aCIse2Q6Ik0xNy4zIDMuNGMuOSAyLjUgMCA1LjItMi4yIDYuNyAyLjQtMS4yIDUuMi0uNiA2LjkgMS41In1dLFsicGF0aCIse2Q6Im0xNS4xIDEwLjEtMS40LjgifV0sWyJwYXRoIix7ZDoiTTE2LjcgMjAuOGMtMi42LS40LTQuNi0yLjYtNC43LTUuMy0uMiAyLjYtMi4xIDQuOC00LjcgNS4yIn1dLFsicGF0aCIse2Q6Ik0xMiAxMy45djEuNiJ9XSxbInBhdGgiLHtkOiJNMTMuNSA1LjRjLTEtLjItMi0uMi0zIDAifV0sWyJwYXRoIix7ZDoiTTE3IDE2LjRjLjctLjcgMS4yLTEuNiAxLjUtMi41In1dLFsicGF0aCIse2Q6Ik01LjUgMTMuOWMuMy45LjggMS44IDEuNSAyLjUifV1dfSk7dmFyIExwLEpjZT1uKCgpPT57THA9W1sicGF0aCIse2Q6Ik0xMCAxMGg0In1dLFsicGF0aCIse2Q6Ik0xOSA3VjRhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTIgMiAwIDAgMCAyLTJ2LTMuODUxYzAtMS4zOS0yLTIuOTYyLTItNC44MjlWOGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2MTFhMiAyIDAgMCAwIDIgMnoifV0sWyJwYXRoIix7ZDoiTSAyMiAxNiBMIDIgMTYifV0sWyJwYXRoIix7ZDoiTTQgMjFhMiAyIDAgMCAxLTItMnYtMy44NTFjMC0xLjM5IDItMi45NjIgMi00LjgyOVY4YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjExYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik05IDdWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYzIn1dXX0pO3ZhciBUcCxlNmU9bigoKT0+e1RwPVtbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJtMTcgMTggMS45NTYtMTEuNDY4In1dLFsicGF0aCIse2Q6Im0zIDggNy44Mi01LjYxNWEyIDIgMCAwIDEgMi4zNiAwTDIxIDgifV0sWyJwYXRoIix7ZDoiTTQgMThoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTggNS4wNDQgNi41MzIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMiJ9XV19KTt2YXIgX3AsdDZlPW4oKCk9PntfcD1bWyJwYXRoIix7ZDoiTTE2IDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zLjQgMThIMTJhOCA4IDAgMCAwIDgtOFY3YTQgNCAwIDAgMC03LjI4LTIuM0wyIDIwIn1dLFsicGF0aCIse2Q6Im0yMCA3IDIgLjUtMiAuNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTh2MyJ9XSxbInBhdGgiLHtkOiJNMTQgMTcuNzVWMjEifV0sWyJwYXRoIix7ZDoiTTcgMThhNiA2IDAgMCAwIDMuODQtMTAuNjEifV1dfSk7dmFyIEFwLGE2ZT1uKCgpPT57QXA9W1sicGF0aCIse2Q6Ik0xMS43NjcgMTkuMDg5YzQuOTI0Ljg2OCA2LjE0LTYuMDI1IDEuMjE2LTYuODk0bS0xLjIxNiA2Ljg5NEw1Ljg2IDE4LjA0N201LjkwOCAxLjA0Mi0uMzQ3IDEuOTdtMS41NjMtOC44NjRjNC45MjQuODY5IDYuMTQtNi4wMjUgMS4yMTUtNi44OTNtLTEuMjE1IDYuODkzLTMuOTQtLjY5NG01LjE1NS02LjJMOC4yOSA0LjI2bTUuOTA4IDEuMDQyLjM0OC0xLjk3TTcuNDggMjAuMzY0bDMuMTI2LTE3LjcyNyJ9XV19KTt2YXIgJHAscjZlPW4oKCk9PnskcD1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjcifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxNSIscjoiNyJ9XV19KTt2YXIgRHAsaTZlPW4oKCk9PntEcD1bWyJwYXRoIix7ZDoiTTMgM2gxOCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g4In1dLFsicGF0aCIse2Q6Ik0yMCAxMUg4In1dLFsicGF0aCIse2Q6Ik0xMCAxOWgxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNNCAzdjE0In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgRXAsbzZlPW4oKCk9PntFcD1bWyJwYXRoIix7ZDoiTTEwIDIyVjdhMSAxIDAgMCAwLTEtMUg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0xLTFIMiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dfSk7dmFyIE5wLHM2ZT1uKCgpPT57TnA9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTcifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMjEiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIzIix4MjoiNiIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIFBwLG42ZT1uKCgpPT57UHA9W1sicGF0aCIse2Q6Im0xNyAxNy01IDVWMTJsLTUgNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xNC41IDkuNSAxNyA3bC01LTV2NC41In1dXX0pO3ZhciBJcCxsNmU9bigoKT0+e0lwPVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dLFsicGF0aCIse2Q6Ik0yMC44MyAxNC44M2E0IDQgMCAwIDAgMC01LjY2In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dfSk7dmFyIEZwLGM2ZT1uKCgpPT57RnA9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTcifV1dfSk7dmFyIE9wLGQ2ZT1uKCgpPT57T3A9W1sicGF0aCIse2Q6Ik02IDEyaDlhNCA0IDAgMCAxIDAgOEg3YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDdhNCA0IDAgMCAxIDAgOCJ9XV19KTt2YXIgQnAsZjZlPW4oKCk9PntCcD1bWyJwYXRoIix7ZDoiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXX0pO3ZhciBScCx1NmU9bigoKT0+e1JwPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjEzIixyOiI5In1dLFsicGF0aCIse2Q6Ik0xNC4zNSA0LjY1IDE2LjMgMi43YTIuNDEgMi40MSAwIDAgMSAzLjQgMGwxLjYgMS42YTIuNCAyLjQgMCAwIDEgMCAzLjRsLTEuOTUgMS45NSJ9XSxbInBhdGgiLHtkOiJtMjIgMi0xLjUgMS41In1dXX0pO3ZhciBIcCxwNmU9bigoKT0+e0hwPVtbInBhdGgiLHtkOiJNMTcgMTBjLjctLjcgMS42OSAwIDIuNSAwYTIuNSAyLjUgMCAxIDAgMC01IC41LjUgMCAwIDEtLjUtLjUgMi41IDIuNSAwIDEgMC01IDBjMCAuODEuNyAxLjggMCAyLjVsLTcgN2MtLjcuNy0xLjY5IDAtMi41IDBhMi41IDIuNSAwIDAgMCAwIDVjLjI4IDAgLjUuMjIuNS41YTIuNSAyLjUgMCAxIDAgNSAwYzAtLjgxLS43LTEuOCAwLTIuNVoifV1dfSk7dmFyIHFwLGg2ZT1uKCgpPT57cXA9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im04IDEzIDQtNyA0IDcifV0sWyJwYXRoIix7ZDoiTTkuMSAxMWg1LjcifV1dfSk7dmFyIFZwLG02ZT1uKCgpPT57VnA9W1sicGF0aCIse2Q6Ik0xMiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDZ2MyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV19KTt2YXIgVXAsZzZlPW4oKCk9PntVcD1bWyJwYXRoIix7ZDoiTTEyIDZ2NyJ9XSxbInBhdGgiLHtkOiJNMTYgOHYzIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04IDh2MyJ9XV19KTt2YXIganAseDZlPW4oKCk9PntqcD1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgOS41IDIgMiA0LTQifV1dfSk7dmFyIFdwLGI2ZT1uKCgpPT57V3A9W1sicGF0aCIse2Q6Ik01IDdhMiAyIDAgMCAwLTIgMnYxMSJ9XSxbInBhdGgiLHtkOiJNNS44MDMgMThINWEyIDIgMCAwIDAgMCA0aDkuNWEuNS41IDAgMCAwIC41LS41VjIxIn1dLFsicGF0aCIse2Q6Ik05IDE1VjRhMiAyIDAgMCAxIDItMmg5LjVhLjUuNSAwIDAgMSAuNS41djE0YS41LjUgMCAwIDEtLjUuNUgxMWEyIDIgMCAwIDEgMC00aDEwIn1dXX0pO3ZhciBZbix2NmU9bigoKT0+e1luPVtbInBhdGgiLHtkOiJNMTIgMTdoMS41In1dLFsicGF0aCIse2Q6Ik0xMiAyMmgxLjUifV0sWyJwYXRoIix7ZDoiTTEyIDJoMS41In1dLFsicGF0aCIse2Q6Ik0xNy41IDIySDE5YTEgMSAwIDAgMCAxLTEifV0sWyJwYXRoIix7ZDoiTTE3LjUgMkgxOWExIDEgMCAwIDEgMSAxdjEuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTR2M2gtMi41In1dLFsicGF0aCIse2Q6Ik0yMCA4LjVWMTAifV0sWyJwYXRoIix7ZDoiTTQgMTBWOC41In1dLFsicGF0aCIse2Q6Ik00IDE5LjVWMTQifV0sWyJwYXRoIix7ZDoiTTQgNC41QTIuNSAyLjUgMCAwIDEgNi41IDJIOCJ9XSxbInBhdGgiLHtkOiJNOCAyMkg2LjVhMSAxIDAgMCAxIDAtNUg4In1dXX0pO3ZhciBHcCx5NmU9bigoKT0+e0dwPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzIDMgMy0zIn1dXX0pO3ZhciBZcCx3NmU9bigoKT0+e1lwPVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMmE0IDQgMCAwIDEgOCAwdjIifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV1dfSk7dmFyIFpwLE02ZT1uKCgpPT57WnA9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04LjYyIDkuOEEyLjI1IDIuMjUgMCAxIDEgMTIgNi44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6In1dXX0pO3ZhciBYcCx6NmU9bigoKT0+e1hwPVtbInBhdGgiLHtkOiJtMTkgMyAxIDEifV0sWyJwYXRoIix7ZDoibTIwIDItNC41IDQuNSJ9XSxbInBhdGgiLHtkOiJNMjAgNy44OThWMjFhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAyaDcuODQ0In1dLFsiY2lyY2xlIix7Y3g6IjE0IixjeToiOCIscjoiMiJ9XV19KTt2YXIgUXAsazZlPW4oKCk9PntRcD1bWyJwYXRoIix7ZDoibTIwIDEzLjctMi4xLTIuMWEyIDIgMCAwIDAtMi44IDBMOS43IDE3In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiMiJ9XV19KTt2YXIgS3AsUzZlPW4oKCk9PntLcD1bWyJwYXRoIix7ZDoiTTE4IDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTIwIDE1djZhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDEwIn1dLFsicmVjdCIse3g6IjEyIix5OiI2Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgSnAsQzZlPW4oKCk9PntKcD1bWyJwYXRoIix7ZDoiTTEwIDJ2OGwzLTMgMyAzVjIifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dfSk7dmFyIGU5LEw2ZT1uKCgpPT57ZTk9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dfSk7dmFyIHQ5LFQ2ZT1uKCgpPT57dDk9W1sicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im0xNiAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik0yMiA2VjRhMSAxIDAgMCAwLTEtMWgtNWE0IDQgMCAwIDAtNCA0IDQgNCAwIDAgMC00LTRIM2ExIDEgMCAwIDAtMSAxdjEzYTEgMSAwIDAgMCAxIDFoNmEzIDMgMCAwIDEgMyAzIDMgMyAwIDAgMSAzLTNoNmExIDEgMCAwIDAgMS0xdi0xLjMifV1dfSk7dmFyIGE5LF82ZT1uKCgpPT57YTk9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aDIifV0sWyJwYXRoIix7ZDoiTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgyIn1dLFsicGF0aCIse2Q6Ik02IDhoMiJ9XV19KTt2YXIgcjksQTZlPW4oKCk9PntyOT1bWyJwYXRoIix7ZDoiTTEyIDd2MTQifV0sWyJwYXRoIix7ZDoiTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiJ9XV19KTt2YXIgaTksJDZlPW4oKCk9PntpOT1bWyJwYXRoIix7ZDoiTTEyIDd2NiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXX0pO3ZhciBvOSxENmU9bigoKT0+e285PVtbInBhdGgiLHtkOiJNMTEgMjJINS41YTEgMSAwIDAgMSAwLTVoNC41MDEifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuODc5LTEuODc4In1dLFsicGF0aCIse2Q6Ik0zIDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNS41IDJIMThhMSAxIDAgMCAxIDEgMXY4In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIHM5LEU2ZT1uKCgpPT57czk9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04IDExaDgifV0sWyJwYXRoIix7ZDoiTTggN2g2In1dXX0pO3ZhciBuOSxONmU9bigoKT0+e245PVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzLTMgMyAzIn1dXX0pO3ZhciBsOSxQNmU9bigoKT0+e2w5PVtbInBhdGgiLHtkOiJNMTAgMTNoNCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY3In1dLFsicGF0aCIse2Q6Ik0xNiA4VjZIOHYyIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dXX0pO3ZhciBjOSxJNmU9bigoKT0+e2M5PVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNMTggMmgxYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAyIn1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgNSAzLTMgMyAzIn1dXX0pO3ZhciBkOSxGNmU9bigoKT0+e2Q5PVtbInBhdGgiLHtkOiJNMTUgMTNhMyAzIDAgMSAwLTYgMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV1dfSk7dmFyIGY5LE82ZT1uKCgpPT57Zjk9W1sicGF0aCIse2Q6Im0xNC41IDctNSA1In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im05LjUgNyA1IDUifV1dfSk7dmFyIHU5LEI2ZT1uKCgpPT57dTk9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dXX0pO3ZhciBwOSxSNmU9bigoKT0+e3A5PVtbInBhdGgiLHtkOiJtMTkgMjEtNy00LTcgNFY1YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMloifV0sWyJwYXRoIix7ZDoibTkgMTAgMiAyIDQtNCJ9XV19KTt2YXIgaDksSDZlPW4oKCk9PntoOT1bWyJwYXRoIix7ZDoibTE5IDIxLTctNC03IDRWNWEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MTZ6In1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiIxMCIseTI6IjEwIn1dXX0pO3ZhciBtOSxxNmU9bigoKT0+e205PVtbInBhdGgiLHtkOiJtMTkgMjEtNy00LTcgNFY1YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxNnoifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI3Iix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiOSIseTE6IjEwIix5MjoiMTAifV1dfSk7dmFyIGc5LFY2ZT1uKCgpPT57Zzk9W1sicGF0aCIse2Q6Im0xOSAyMS03LTQtNyA0VjVhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAyWiJ9XSxbInBhdGgiLHtkOiJtMTQuNSA3LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgNy41IDUgNSJ9XV19KTt2YXIgeDksVTZlPW4oKCk9Pnt4OT1bWyJwYXRoIix7ZDoibTE5IDIxLTctNC03IDRWNWEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MTZ6In1dXX0pO3ZhciBiOSxqNmU9bigoKT0+e2I5PVtbInBhdGgiLHtkOiJNNCA5VjVhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTggOHYxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djEifV0sWyJwYXRoIix7ZDoiTTE2IDh2MSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjkiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciB2OSxXNmU9bigoKT0+e3Y5PVtbInBhdGgiLHtkOiJNMTIgNlYySDgifV0sWyJwYXRoIix7ZDoiTTE1IDExdjIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTZhMiAyIDAgMCAxLTIgMkg4LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgNCAyMC4yODZWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik05IDExdjIifV1dfSk7dmFyIHk5LEc2ZT1uKCgpPT57eTk9W1sicGF0aCIse2Q6Ik0xMy42NyA4SDE4YTIgMiAwIDAgMSAyIDJ2NC4zMyJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGgyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMiAyIDIifV0sWyJwYXRoIix7ZDoiTTggOEg2YTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAxLjQxNC0uNTg2In1dLFsicGF0aCIse2Q6Ik05IDEzdjIifV0sWyJwYXRoIix7ZDoiTTkuNjcgNEgxMnYyLjMzIn1dXX0pO3ZhciB3OSxZNmU9bigoKT0+e3c5PVtbInBhdGgiLHtkOiJNMTIgOFY0SDgifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEyIix4OiI0Iix5OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAxM3YyIn1dLFsicGF0aCIse2Q6Ik05IDEzdjIifV1dfSk7dmFyIE05LFo2ZT1uKCgpPT57TTk9W1sicGF0aCIse2Q6Ik0xMCAzYTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjJhNiA2IDAgMCAwIDEuMiAzLjZsLjYuOEE2IDYgMCAwIDEgMTcgMTN2OGExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMXYtOGE2IDYgMCAwIDEgMS4yLTMuNmwuNi0uOEE2IDYgMCAwIDAgMTAgNXoifV0sWyJwYXRoIix7ZDoiTTE3IDEzaC00YTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAwIDAgMSAxaDQifV1dfSk7dmFyIHo5LFg2ZT1uKCgpPT57ejk9W1sicGF0aCIse2Q6Ik0xNyAzaDR2NCJ9XSxbInBhdGgiLHtkOiJNMTguNTc1IDExLjA4MmExMyAxMyAwIDAgMSAxLjA0OCA5LjAyNyAxLjE3IDEuMTcgMCAwIDEtMS45MTQuNTk3TDE0IDE3In1dLFsicGF0aCIse2Q6Ik03IDEwIDMuMjkgNi4yOWExLjE3IDEuMTcgMCAwIDEgLjYtMS45MSAxMyAxMyAwIDAgMSA5LjAzIDEuMDUifV0sWyJwYXRoIix7ZDoiTTcgMTRhMS43IDEuNyAwIDAgMC0xLjIwNy41bC0yLjY0NiAyLjY0NkEuNS41IDAgMCAwIDMuNSAxOEg1YTEgMSAwIDAgMSAxIDF2MS41YS41LjUgMCAwIDAgLjg1NC4zNTRMOS41IDE4LjIwN0ExLjcgMS43IDAgMCAwIDEwIDE3di0yYTEgMSAwIDAgMC0xLTF6In1dLFsicGF0aCIse2Q6Ik05LjcwNyAxNC4yOTMgMjEgMyJ9XV19KTt2YXIgazksUTZlPW4oKCk9PntrOT1bWyJwYXRoIix7ZDoiTTIxIDhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2WiJ9XSxbInBhdGgiLHtkOiJtMy4zIDcgOC43IDUgOC43LTUifV0sWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dXX0pO3ZhciBTOSxLNmU9bigoKT0+e1M5PVtbInBhdGgiLHtkOiJNMi45NyAxMi45MkEyIDIgMCAwIDAgMiAxNC42M3YzLjI0YTIgMiAwIDAgMCAuOTcgMS43MWwzIDEuOGEyIDIgMCAwIDAgMi4wNiAwTDEyIDE5di01LjVsLTUtMy00LjAzIDIuNDJaIn1dLFsicGF0aCIse2Q6Im03IDE2LjUtNC43NC0yLjg1In1dLFsicGF0aCIse2Q6Im03IDE2LjUgNS0zIn1dLFsicGF0aCIse2Q6Ik03IDE2LjV2NS4xNyJ9XSxbInBhdGgiLHtkOiJNMTIgMTMuNVYxOWwzLjk3IDIuMzhhMiAyIDAgMCAwIDIuMDYgMGwzLTEuOGEyIDIgMCAwIDAgLjk3LTEuNzF2LTMuMjRhMiAyIDAgMCAwLS45Ny0xLjcxTDE3IDEwLjVsLTUgM1oifV0sWyJwYXRoIix7ZDoibTE3IDE2LjUtNS0zIn1dLFsicGF0aCIse2Q6Im0xNyAxNi41IDQuNzQtMi44NSJ9XSxbInBhdGgiLHtkOiJNMTcgMTYuNXY1LjE3In1dLFsicGF0aCIse2Q6Ik03Ljk3IDQuNDJBMiAyIDAgMCAwIDcgNi4xM3Y0LjM3bDUgMyA1LTNWNi4xM2EyIDIgMCAwIDAtLjk3LTEuNzFsLTMtMS44YTIgMiAwIDAgMC0yLjA2IDBsLTMgMS44WiJ9XSxbInBhdGgiLHtkOiJNMTIgOCA3LjI2IDUuMTUifV0sWyJwYXRoIix7ZDoibTEyIDggNC43NC0yLjg1In1dLFsicGF0aCIse2Q6Ik0xMiAxMy41VjgifV1dfSk7dmFyIFpuLEo2ZT1uKCgpPT57Wm49W1sicGF0aCIse2Q6Ik04IDNIN2EyIDIgMCAwIDAtMiAydjVhMiAyIDAgMCAxLTIgMiAyIDIgMCAwIDEgMiAydjVjMCAxLjEuOSAyIDIgMmgxIn1dLFsicGF0aCIse2Q6Ik0xNiAyMWgxYTIgMiAwIDAgMCAyLTJ2LTVjMC0xLjEuOS0yIDItMmEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAwLTItMmgtMSJ9XV19KTt2YXIgQzksZTVlPW4oKCk9PntDOT1bWyJwYXRoIix7ZDoiTTE2IDNoM2ExIDEgMCAwIDEgMSAxdjE2YTEgMSAwIDAgMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTggMjFINWExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWgzIn1dXX0pO3ZhciBMOSx0NWU9bigoKT0+e0w5PVtbInBhdGgiLHtkOiJNMTIgNWEzIDMgMCAxIDAtNS45OTcuMTI1IDQgNCAwIDAgMC0yLjUyNiA1Ljc3IDQgNCAwIDAgMCAuNTU2IDYuNTg4QTQgNCAwIDEgMCAxMiAxOFoifV0sWyJwYXRoIix7ZDoiTTkgMTNhNC41IDQuNSAwIDAgMCAzLTQifV0sWyJwYXRoIix7ZDoiTTYuMDAzIDUuMTI1QTMgMyAwIDAgMCA2LjQwMSA2LjUifV0sWyJwYXRoIix7ZDoiTTMuNDc3IDEwLjg5NmE0IDQgMCAwIDEgLjU4NS0uMzk2In1dLFsicGF0aCIse2Q6Ik02IDE4YTQgNCAwIDAgMS0xLjk2Ny0uNTE2In1dLFsicGF0aCIse2Q6Ik0xMiAxM2g0In1dLFsicGF0aCIse2Q6Ik0xMiAxOGg2YTIgMiAwIDAgMSAyIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTIgOGg4In1dLFsicGF0aCIse2Q6Ik0xNiA4VjVhMiAyIDAgMCAxIDItMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEzIixyOiIuNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjMiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMjEiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiOCIscjoiLjUifV1dfSk7dmFyIFQ5LGE1ZT1uKCgpPT57VDk9W1sicGF0aCIse2Q6Im0xMC44NTIgMTQuNzcyLS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xMC44NTIgOS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy4xNDggMTQuNzcyLjM4Mi45MjQifV0sWyJwYXRoIix7ZDoibTEzLjUzMSA4LjMwNS0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDAgMC01LjYzLTEuNDQ2IDMgMyAwIDAgMC0uMzY4IDEuNTcxIDQgNCAwIDAgMC0yLjUyNSA1Ljc3MSJ9XSxbInBhdGgiLHtkOiJNMTcuOTk4IDUuMTI1YTQgNCAwIDAgMSAyLjUyNSA1Ljc3MSJ9XSxbInBhdGgiLHtkOiJNMTkuNTA1IDEwLjI5NGE0IDQgMCAwIDEtMS41IDcuNzA2In1dLFsicGF0aCIse2Q6Ik00LjAzMiAxNy40ODNBNCA0IDAgMCAwIDExLjQ2NCAyMGMuMTgtLjMxMS44OTItLjMxMSAxLjA3MiAwYTQgNCAwIDAgMCA3LjQzMi0yLjUxNiJ9XSxbInBhdGgiLHtkOiJNNC41IDEwLjI5MUE0IDQgMCAwIDAgNiAxOCJ9XSxbInBhdGgiLHtkOiJNNi4wMDIgNS4xMjVhMyAzIDAgMCAwIC40IDEuMzc1In1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV19KTt2YXIgXzkscjVlPW4oKCk9PntfOT1bWyJwYXRoIix7ZDoiTTEyIDE4VjUifV0sWyJwYXRoIix7ZDoiTTE1IDEzYTQuMTcgNC4xNyAwIDAgMS0zLTQgNC4xNyA0LjE3IDAgMCAxLTMgNCJ9XSxbInBhdGgiLHtkOiJNMTcuNTk4IDYuNUEzIDMgMCAxIDAgMTIgNWEzIDMgMCAxIDAtNS41OTggMS41In1dLFsicGF0aCIse2Q6Ik0xNy45OTcgNS4xMjVhNCA0IDAgMCAxIDIuNTI2IDUuNzcifV0sWyJwYXRoIix7ZDoiTTE4IDE4YTQgNCAwIDAgMCAyLTcuNDY0In1dLFsicGF0aCIse2Q6Ik0xOS45NjcgMTcuNDgzQTQgNCAwIDEgMSAxMiAxOGE0IDQgMCAxIDEtNy45NjctLjUxNyJ9XSxbInBhdGgiLHtkOiJNNiAxOGE0IDQgMCAwIDEtMi03LjQ2NCJ9XSxbInBhdGgiLHtkOiJNNi4wMDMgNS4xMjVhNCA0IDAgMCAwLTIuNTI2IDUuNzcifV1dfSk7dmFyIEE5LGk1ZT1uKCgpPT57QTk9W1sicGF0aCIse2Q6Ik0xNiAzdjIuMTA3In1dLFsicGF0aCIse2Q6Ik0xNyA5YzEgMyAyLjUgMy41IDMuNSA0LjVBNSA1IDAgMCAxIDIyIDE3YTUgNSAwIDAgMS0xMCAwYzAtLjMgMC0uNi4xLS45YTIgMiAwIDEgMCAzLjMtMkMxMyAxMS41IDE2IDkgMTcgOSJ9XSxbInBhdGgiLHtkOiJNMjEgOC4yNzRWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDMuOTM4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDUuMjUzIn1dLFsicGF0aCIse2Q6Ik0zIDloOC4yMjgifV0sWyJwYXRoIix7ZDoiTTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNOCAzdjYifV1dfSk7dmFyICQ5LG81ZT1uKCgpPT57JDk9W1sicGF0aCIse2Q6Ik0xMiA5djEuMjU4In1dLFsicGF0aCIse2Q6Ik0xNiAzdjUuNDYifV0sWyJwYXRoIix7ZDoiTTIxIDkuMTE4VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg1Ljc1In1dLFsicGF0aCIse2Q6Ik0yMiAxNy41YzAgMi40OTktMS43NSAzLjc0OS0zLjgzIDQuNDc0YS41LjUgMCAwIDEtLjMzNS0uMDA1Yy0yLjA4NS0uNzItMy44MzUtMS45Ny0zLjgzNS00LjQ3VjE0YS41LjUgMCAwIDEgLjUtLjQ5OWMxIDAgMi4yNS0uNiAzLjEyLTEuMzZhLjYuNiAwIDAgMSAuNzYtLjAwMWMuODc1Ljc2NSAyLjEyIDEuMzYgMy4xMiAxLjM2YS41LjUgMCAwIDEgLjUuNXoifV0sWyJwYXRoIix7ZDoiTTMgMTVoNyJ9XSxbInBhdGgiLHtkOiJNMyA5aDEyLjE0MiJ9XSxbInBhdGgiLHtkOiJNOCAxNXY2In1dLFsicGF0aCIse2Q6Ik04IDN2NiJ9XV19KTt2YXIgRDksczVlPW4oKCk9PntEOT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOXY2In1dLFsicGF0aCIse2Q6Ik0xNiAxNXY2In1dLFsicGF0aCIse2Q6Ik0xNiAzdjYifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNOCAxNXY2In1dLFsicGF0aCIse2Q6Ik04IDN2NiJ9XV19KTt2YXIgRTksbjVlPW4oKCk9PntFOT1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgNlY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMiAxM2ExOC4xNSAxOC4xNSAwIDAgMS0yMCAwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIE45LGw1ZT1uKCgpPT57Tjk9W1sicGF0aCIse2Q6Ik0xMCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xNCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0yMSAyMEgzIn1dLFsicGF0aCIse2Q6Ik02IDIwdjIifV0sWyJwYXRoIix7ZDoiTTggMTZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxMiJ9XSxbInJlY3QiLHt4OiI0Iix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTAiLHJ4OiIyIn1dXX0pO3ZhciBQOSxjNWU9bigoKT0+e1A5PVtbInBhdGgiLHtkOiJNMTIgMTF2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTNoLTQifV0sWyJwYXRoIix7ZDoiTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTggNnYxNCJ9XSxbInBhdGgiLHtkOiJNNiA2djE0In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIEk5LGQ1ZT1uKCgpPT57STk9W1sicGF0aCIse2Q6Ik0xNiAyMFY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYxNiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXX0pO3ZhciBGOSxmNWU9bigoKT0+e0Y5PVtbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE0IDIwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTIifV1dfSk7dmFyIE85LHU1ZT1uKCgpPT57Tzk9W1sicGF0aCIse2Q6Im0xNiAyMi0xLTQifV0sWyJwYXRoIix7ZDoiTTE5IDE0YTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwLTItMmgtM2ExIDEgMCAwIDEtMS0xVjRhMiAyIDAgMCAwLTQgMHY1YTEgMSAwIDAgMS0xIDFINmEyIDIgMCAwIDAtMiAydjFhMSAxIDAgMCAwIDEgMSJ9XSxbInBhdGgiLHtkOiJNMTkgMTRINWwtMS45NzMgNi43NjdBMSAxIDAgMCAwIDQgMjJoMTZhMSAxIDAgMCAwIC45NzMtMS4yMzN6In1dLFsicGF0aCIse2Q6Im04IDIyIDEtNCJ9XV19KTt2YXIgQjkscDVlPW4oKCk9PntCOT1bWyJwYXRoIix7ZDoibTExIDEwIDMgMyJ9XSxbInBhdGgiLHtkOiJNNi41IDIxQTMuNSAzLjUgMCAxIDAgMyAxNy41YTIuNjIgMi42MiAwIDAgMS0uNzA4IDEuNzkyQTEgMSAwIDAgMCAzIDIxeiJ9XSxbInBhdGgiLHtkOiJNOS45NjkgMTcuMDMxIDIxLjM3OCA1LjYyNGExIDEgMCAwIDAtMy4wMDItMy4wMDJMNi45NjcgMTQuMDMxIn1dXX0pO3ZhciBSOSxoNWU9bigoKT0+e1I5PVtbInBhdGgiLHtkOiJNNy4wMDEgMTUuMDg1QTEuNSAxLjUgMCAwIDEgOSAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiI4LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiI1LjUifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNC41IixyOiIyLjUifV1dfSk7dmFyIEg5LG01ZT1uKCgpPT57SDk9W1sicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMy44OCAxNiAyIn1dLFsicGF0aCIse2Q6Ik0xNSA3LjEzVjZhMyAzIDAgMCAwLTUuMTQtMi4xTDggMiJ9XSxbInBhdGgiLHtkOiJNMTggMTIuMzRWMTFhNCA0IDAgMCAwLTQtNGgtMS4zIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMjIgMTNoLTMuMzQifV0sWyJwYXRoIix7ZDoiTTMgMjFhNCA0IDAgMCAxIDMuODEtNCJ9XSxbInBhdGgiLHtkOiJNNiAxM0gyIn1dLFsicGF0aCIse2Q6Ik03LjcgNy43QTQgNCAwIDAgMCA2IDExdjNhNiA2IDAgMCAwIDExLjEzIDMuMTMifV1dfSk7dmFyIHE5LGc1ZT1uKCgpPT57cTk9W1sicGF0aCIse2Q6Ik0xMCAxOS42NTVBNiA2IDAgMCAxIDYgMTR2LTNhNCA0IDAgMCAxIDQtNGg0YTQgNCAwIDAgMSA0IDMuOTcifV0sWyJwYXRoIix7ZDoiTTE0IDE1LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdhMSAxIDAgMCAxLTEuNTE3LS44NnoifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDMuODggMTYgMiJ9XSxbInBhdGgiLHtkOiJNMjEgNWE0IDQgMCAwIDEtMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik0zIDIxYTQgNCAwIDAgMSAzLjgxLTQifV0sWyJwYXRoIix7ZDoiTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik02IDEzSDIifV0sWyJwYXRoIix7ZDoibTggMiAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTkgNy4xM1Y2YTMgMyAwIDEgMSA2IDB2MS4xMyJ9XV19KTt2YXIgVjkseDVlPW4oKCk9PntWOT1bWyJwYXRoIix7ZDoiTTEyIDIwdi05In1dLFsicGF0aCIse2Q6Ik0xNCA3YTQgNCAwIDAgMSA0IDR2M2E2IDYgMCAwIDEtMTIgMHYtM2E0IDQgMCAwIDEgNC00eiJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMy44OCAxNiAyIn1dLFsicGF0aCIse2Q6Ik0yMSAyMWE0IDQgMCAwIDAtMy44MS00In1dLFsicGF0aCIse2Q6Ik0yMSA1YTQgNCAwIDAgMS0zLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTIyIDEzaC00In1dLFsicGF0aCIse2Q6Ik0zIDIxYTQgNCAwIDAgMSAzLjgxLTQifV0sWyJwYXRoIix7ZDoiTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik02IDEzSDIifV0sWyJwYXRoIix7ZDoibTggMiAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTkgNy4xM1Y2YTMgMyAwIDEgMSA2IDB2MS4xMyJ9XV19KTt2YXIgVTksYjVlPW4oKCk9PntVOT1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDhoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMjFWNWEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxNiJ9XV19KTt2YXIgajksdjVlPW4oKCk9PntqOT1bWyJwYXRoIix7ZDoiTTEyIDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTggNmguMDEifV0sWyJwYXRoIix7ZDoiTTkgMjJ2LTNhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MyJ9XSxbInJlY3QiLHt4OiI0Iix5OiIyIix3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHJ4OiIyIn1dXX0pO3ZhciBXOSx5NWU9bigoKT0+e1c5PVtbInBhdGgiLHtkOiJNNCA2IDIgNyJ9XSxbInBhdGgiLHtkOiJNMTAgNmg0In1dLFsicGF0aCIse2Q6Im0yMiA3LTItMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDExaDE2In1dLFsicGF0aCIse2Q6Ik04IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJwYXRoIix7ZDoiTTE4IDIxdi0yIn1dXX0pO3ZhciBHOSx3NWU9bigoKT0+e0c5PVtbInBhdGgiLHtkOiJNOCA2djYifV0sWyJwYXRoIix7ZDoiTTE1IDZ2NiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxOS42In1dLFsicGF0aCIse2Q6Ik0xOCAxOGgzcy41LTEuNy44LTIuOGMuMS0uNC4yLS44LjItMS4yIDAtLjQtLjEtLjgtLjItMS4ybC0xLjQtNUMyMC4xIDYuOCAxOS4xIDYgMTggNkg0YTIgMiAwIDAgMC0yIDJ2MTBoMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTkgMThoNSJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE4IixyOiIyIn1dXX0pO3ZhciBZOSxNNWU9bigoKT0+e1k5PVtbInBhdGgiLHtkOiJNMTAgM2guMDEifV0sWyJwYXRoIix7ZDoiTTE0IDJoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDkgMjAtNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJWNi41In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxMCIseDoiNCIseToiMTIiLHJ4OiIzIn1dLFsicGF0aCIse2Q6Ik05IDEydjUifV0sWyJwYXRoIix7ZDoiTTE1IDEydjUifV0sWyJwYXRoIix7ZDoiTTQgMTdoMTYifV1dfSk7dmFyIFo5LHo1ZT1uKCgpPT57Wjk9W1sicGF0aCIse2Q6Ik0xNyAxOWExIDEgMCAwIDEtMS0xdi0yYTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjJhMSAxIDAgMCAxLTEgMXoifV0sWyJwYXRoIix7ZDoiTTE3IDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0xOSAxNFY2LjVhMSAxIDAgMCAwLTcgMHYxMWExIDEgMCAwIDEtNyAwVjEwIn1dLFsicGF0aCIse2Q6Ik0yMSAyMXYtMiJ9XSxbInBhdGgiLHtkOiJNMyA1VjMifV0sWyJwYXRoIix7ZDoiTTQgMTBhMiAyIDAgMCAxLTItMlY2YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTcgNVYzIn1dXX0pO3ZhciBYOSxrNWU9bigoKT0+e1g5PVtbInBhdGgiLHtkOiJNMTYgMTNIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTdIMyJ9XSxbInBhdGgiLHtkOiJtNy4yIDcuOS0zLjM4OCAyLjVBMiAyIDAgMCAwIDMgMTIuMDFWMjBhMSAxIDAgMCAwIDEgMWgxNmExIDEgMCAwIDAgMS0xdi04LjY1NGMwLTItMi40NC02LjAyNi02LjQ0LTguMDI2YTEgMSAwIDAgMC0xLjA4Mi4wNTdMMTAuNCA1LjYifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjIifV1dfSk7dmFyIFE5LFM1ZT1uKCgpPT57UTk9W1sicGF0aCIse2Q6Ik0yMCAyMXYtOGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY4In1dLFsicGF0aCIse2Q6Ik00IDE2cy41LTEgMi0xIDIuNSAyIDQgMiAyLjUtMiA0LTIgMi41IDIgNCAyIDItMSAyLTEifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV0sWyJwYXRoIix7ZDoiTTcgOHYzIn1dLFsicGF0aCIse2Q6Ik0xMiA4djMifV0sWyJwYXRoIix7ZDoiTTE3IDh2MyJ9XSxbInBhdGgiLHtkOiJNNyA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDRoLjAxIn1dXX0pO3ZhciBLOSxDNWU9bigoKT0+e0s5PVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiI2Iix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNiIseTE6IjE0Iix5MjoiMTgifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aC4wMSJ9XV19KTt2YXIgSjksTDVlPW4oKCk9PntKOT1bWyJwYXRoIix7ZDoiTTExIDE0aDF2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBlaCxUNWU9bigoKT0+e2VoPVtbInBhdGgiLHtkOiJtMTQgMTggNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOCAxNHY4In1dLFsicGF0aCIse2Q6Ik0yMSAxMS4zNTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMzQzIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV19KTt2YXIgdGgsXzVlPW4oKCk9Pnt0aD1bWyJwYXRoIix7ZDoibTE0IDE4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTggMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTIxIDExLjM0M1Y2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIGFoLEE1ZT1uKCgpPT57YWg9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxNFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtMTYgMjAgMiAyIDQtNCJ9XV19KTt2YXIgcmgsJDVlPW4oKCk9PntyaD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNiAyIDIgNC00In1dXX0pO3ZhciBpaCxENWU9bigoKT0+e2loPVtbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxOS4xNDgtLjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJtMTYuNDcgMTQuMzA1LjM4Mi45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNMjEgMTAuNTkyVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBvaCxFNWU9bigoKT0+e29oPVtbInBhdGgiLHtkOiJNMTYgMTR2Mi4ybDEuNiAxIn1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDcuNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMy41In1dLFsicGF0aCIse2Q6Ik0zIDEwaDUifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV1dfSk7dmFyIHNoLE41ZT1uKCgpPT57c2g9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMThoLjAxIn1dXX0pO3ZhciBuaCxQNWU9bigoKT0+e25oPVtbInBhdGgiLHtkOiJNMyAyMGEyIDIgMCAwIDAgMiAyaDEwYTIuNCAyLjQgMCAwIDAgMS43MDYtLjcwNmwzLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDIxIDE2VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNSAyMnYtNWExIDEgMCAwIDEgMS0xaDUifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV1dfSk7dmFyIGxoLEk1ZT1uKCgpPT57bGg9W1sicGF0aCIse2Q6Ik0xMi4xMjcgMjJINWEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjUuMTI1In1dLFsicGF0aCIse2Q6Ik0xNC42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSAxOCAxNS44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBjaCxGNWU9bigoKT0+e2NoPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik0xMCAxNmg0In1dXX0pO3ZhciBkaCxPNWU9bigoKT0+e2RoPVtbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOC41In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV19KTt2YXIgZmgsQjVlPW4oKCk9PntmaD1bWyJwYXRoIix7ZDoiTTQuMiA0LjJBMiAyIDAgMCAwIDMgNnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAxLjgyLTEuMTgifV0sWyJwYXRoIix7ZDoiTTIxIDE1LjVWNmEyIDIgMCAwIDAtMi0ySDkuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDcifV0sWyJwYXRoIix7ZDoiTTIxIDEwaC01LjUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgdWgsUjVlPW4oKCk9Pnt1aD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTZoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2NCJ9XV19KTt2YXIgcGgsSDVlPW4oKCk9PntwaD1bWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMTIuNTk4VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4LjUifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXX0pO3ZhciBoaCxxNWU9bigoKT0+e2hoPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNyAxNGgtNiJ9XSxbInBhdGgiLHtkOiJNMTMgMThINyJ9XSxbInBhdGgiLHtkOiJNNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE4aC4wMSJ9XV19KTt2YXIgbWgsVjVlPW4oKCk9PnttaD1bWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuNzVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMjUifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODc1LTEuODc1In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBnaCxVNWU9bigoKT0+e2doPVtbInBhdGgiLHtkOiJNMTEgMTB2NGg0In1dLFsicGF0aCIse2Q6Im0xMSAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJtMjEgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41In1dLFsicGF0aCIse2Q6Ik0yMSAyMnYtNGgtNCJ9XSxbInBhdGgiLHtkOiJNMjEgOC41VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg0LjMifV0sWyJwYXRoIix7ZDoiTTMgMTBoNCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dfSk7dmFyIHhoLGo1ZT1uKCgpPT57eGg9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxM1Y2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtMTcgMjIgNS01In1dLFsicGF0aCIse2Q6Im0xNyAxNyA1IDUifV1dfSk7dmFyIGJoLFc1ZT1uKCgpPT57Ymg9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE0IDE0LTQgNCJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgNCA0In1dXX0pO3ZhciB2aCxHNWU9bigoKT0+e3ZoPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dXX0pO3ZhciB5aCxZNWU9bigoKT0+e3loPVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNS43MjYgMjEuMDFBMiAyIDAgMCAxIDE0IDIySDRhMiAyIDAgMCAxLTItMlYxMGEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Ik0xOCAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTNoMiJ9XSxbInBhdGgiLHtkOiJNOCA4aDE0In1dLFsicmVjdCIse3g6IjgiLHk6IjMiLHdpZHRoOiIxNCIsaGVpZ2h0OiIxNCIscng6IjIifV1dfSk7dmFyIHdoLFo1ZT1uKCgpPT57d2g9W1sicGF0aCIse2Q6Ik0xNC41NjQgMTQuNTU4YTMgMyAwIDEgMS00LjEyMi00LjEyMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDEuOTk3YTIgMiAwIDAgMCAuODE5LS4xNzUifV0sWyJwYXRoIix7ZDoiTTkuNjk1IDQuMDI0QTIgMiAwIDAgMSAxMC4wMDQgNGgzLjk5M2EyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY3LjM0NCJ9XV19KTt2YXIgTWgsWDVlPW4oKCk9PntNaD1bWyJwYXRoIix7ZDoiTTEzLjk5NyA0YTIgMiAwIDAgMSAxLjc2IDEuMDVsLjQ4Ni45QTIgMiAwIDAgMCAxOC4wMDMgN0gyMGEyIDIgMCAwIDEgMiAydjlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDEuOTk3YTIgMiAwIDAgMCAxLjc1OS0xLjA0OGwuNDg5LS45MDRBMiAyIDAgMCAxIDEwLjAwNCA0eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIzIn1dXX0pO3ZhciB6aCxRNWU9bigoKT0+e3poPVtbInBhdGgiLHtkOiJNNS43IDIxYTIgMiAwIDAgMS0zLjUtMmw4LjYtMTRhNiA2IDAgMCAxIDEwLjQgNiAyIDIgMCAxIDEtMy40NjQtMiAyIDIgMCAxIDAtMy40NjQtMloifV0sWyJwYXRoIix7ZDoiTTE3Ljc1IDcgMTUgMi4xIn1dLFsicGF0aCIse2Q6Ik0xMC45IDQuOCAxMyA5In1dLFsicGF0aCIse2Q6Im03LjkgOS43IDIgNC40In1dLFsicGF0aCIse2Q6Ik00LjkgMTQuNyA3IDE4LjkifV1dfSk7dmFyIGtoLEs1ZT1uKCgpPT57a2g9W1sicGF0aCIse2Q6Ik0xMCAxMHY3LjkifV0sWyJwYXRoIix7ZDoiTTExLjgwMiA2LjE0NWE1IDUgMCAwIDEgNi4wNTMgNi4wNTMifV0sWyJwYXRoIix7ZDoiTTE0IDYuMXYyLjI0MyJ9XSxbInBhdGgiLHtkOiJtMTUuNSAxNS41NzEtLjk2NC45NjRhNSA1IDAgMCAxLTcuMDcxIDAgNSA1IDAgMCAxIDAtNy4wN2wuOTY0LS45NjUifV0sWyJwYXRoIix7ZDoiTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTggMTd2NGExIDEgMCAwIDEtMS43MDcuNzA3IDIuNSAyLjUgMCAwIDAtMi4xNTItLjcxNyAxIDEgMCAwIDEtMS4xMzEtMS4xMzEgMi41IDIuNSAwIDAgMC0uNzE3LTIuMTUyQTEgMSAwIDAgMSAzIDE2aDQifV1dfSk7dmFyIFNoLEo1ZT1uKCgpPT57U2g9W1sicGF0aCIse2Q6Ik0xMCA3djEwLjkifV0sWyJwYXRoIix7ZDoiTTE0IDYuMVYxNyJ9XSxbInBhdGgiLHtkOiJNMTYgN1YzYTEgMSAwIDAgMSAxLjcwNy0uNzA3IDIuNSAyLjUgMCAwIDAgMi4xNTIuNzE3IDEgMSAwIDAgMSAxLjEzMSAxLjEzMSAyLjUgMi41IDAgMCAwIC43MTcgMi4xNTJBMSAxIDAgMCAxIDIxIDhoLTQifV0sWyJwYXRoIix7ZDoiTTE2LjUzNiA3LjQ2NWE1IDUgMCAwIDAtNy4wNzIgMGwtMiAyYTUgNSAwIDAgMCAwIDcuMDcgNSA1IDAgMCAwIDcuMDcyIDBsMi0yYTUgNSAwIDAgMCAwLTcuMDcifV0sWyJwYXRoIix7ZDoiTTggMTd2NGExIDEgMCAwIDEtMS43MDcuNzA3IDIuNSAyLjUgMCAwIDAtMi4xNTItLjcxNyAxIDEgMCAwIDEtMS4xMzEtMS4xMzEgMi41IDIuNSAwIDAgMC0uNzE3LTIuMTUyQTEgMSAwIDAgMSAzIDE2aDQifV1dfSk7dmFyIENoLGU4ZT1uKCgpPT57Q2g9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNGMxLjUgMS41IDMuNSAzIDYgMyAwLTEuNS0uNS0zLjUtMi01In1dLFsicGF0aCIse2Q6Ik0xMy45ODggOC4zMjdDMTMuOTAyIDYuMDU0IDEzLjM2NSAzLjgyIDEyIDJhOS4zIDkuMyAwIDAgMC0xLjQ0NSAyLjkifV0sWyJwYXRoIix7ZDoiTTE3LjM3NSAxMS43MjVDMTguODgyIDEwLjUzIDIxIDcuODQxIDIxIDZjLTIuMzI0IDAtNS4wOCAxLjI5Ni02LjY2MiAyLjY4NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMS4wMjQgMTUuMzc4QTE1IDE1IDAgMCAwIDIyIDE1Yy0uNDI2LTEuMjc5LTIuNjctMi41NTctNC4yNS0yLjkwNyJ9XSxbInBhdGgiLHtkOiJNNi45OTUgNi45OTJDNS43MTQgNi40IDQuMjkgNiAzIDZjMCAyIDIuNSA1IDQgNi0xLjUgMC00LjUgMS41LTUgMyAzLjUgMS41IDYgMSA2IDEtMS41IDEuNS0yIDMuNS0yIDUgMi41IDAgNC41LTEuNSA2LTMifV1dfSk7dmFyIExoLHQ4ZT1uKCgpPT57TGg9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNCJ9XSxbInBhdGgiLHtkOiJNNyAxMmMtMS41IDAtNC41IDEuNS01IDMgMy41IDEuNSA2IDEgNiAxLTEuNSAxLjUtMiAzLjUtMiA1IDIuNSAwIDQuNS0xLjUgNi0zIDEuNSAxLjUgMy41IDMgNiAzIDAtMS41LS41LTMuNS0yLTUgMCAwIDIuNS41IDYtMS0uNS0xLjUtMy41LTMtNS0zIDEuNS0xIDQtNCA0LTYtMi41IDAtNS41IDEuNS03IDMgMC0yLjUtLjUtNS0yLTctMS41IDItMiA0LjUtMiA3LTEuNS0xLjUtNC41LTMtNy0zIDAgMiAyLjUgNSA0IDYifV1dfSk7dmFyIFRoLGE4ZT1uKCgpPT57VGg9W1sicGF0aCIse2Q6Ik0xMC41IDVIMTlhMiAyIDAgMCAxIDIgMnY4LjUifV0sWyJwYXRoIix7ZDoiTTE3IDExaC0uNSJ9XSxbInBhdGgiLHtkOiJNMTkgMTlINWEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik03IDExaDQifV0sWyJwYXRoIix7ZDoiTTcgMTVoMi41In1dXX0pO3ZhciBYbixyOGU9bigoKT0+e1huPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjUiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNyAxNWg0TTE1IDE1aDJNNyAxMWgyTTEzIDExaDQifV1dfSk7dmFyIF9oLGk4ZT1uKCgpPT57X2g9W1sicGF0aCIse2Q6Im0yMSA4LTIgMi0xLjUtMy43QTIgMiAwIDAgMCAxNS42NDYgNUg4LjRhMiAyIDAgMCAwLTEuOTAzIDEuMjU3TDUgMTAgMyA4In1dLFsicGF0aCIse2Q6Ik03IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTRoLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI4Iix4OiIzIix5OiIxMCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTUgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTkgMTh2MiJ9XV19KTt2YXIgQWgsbzhlPW4oKCk9PntBaD1bWyJwYXRoIix7ZDoiTTEwIDJoNCJ9XSxbInBhdGgiLHtkOiJtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCJ9XSxbInBhdGgiLHtkOiJNNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiOCIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDE4djIifV0sWyJwYXRoIix7ZDoiTTE5IDE4djIifV1dfSk7dmFyICRoLHM4ZT1uKCgpPT57JGg9W1sicGF0aCIse2Q6Ik0xOSAxN2gyYy42IDAgMS0uNCAxLTF2LTNjMC0uOS0uNy0xLjctMS41LTEuOUMxOC43IDEwLjYgMTYgMTAgMTYgMTBzLTEuMy0xLjQtMi4yLTIuM2MtLjUtLjQtMS4xLS43LTEuOC0uN0g1Yy0uNiAwLTEuMS40LTEuNC45bC0xLjQgMi45QTMuNyAzLjcgMCAwIDAgMiAxMnY0YzAgLjYuNCAxIDEgMWgyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxNyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjIifV1dfSk7dmFyIERoLG44ZT1uKCgpPT57RGg9W1sicGF0aCIse2Q6Ik0xOCAxOVY5YTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djhhMiAyIDAgMCAwIDIgMmgyIn1dLFsicGF0aCIse2Q6Ik0yIDloM2ExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUgyIn1dLFsicGF0aCIse2Q6Ik0yMiAxN3YxYTEgMSAwIDAgMS0xIDFIMTB2LTlhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2OSJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIEVoLGw4ZT1uKCgpPT57RWg9W1sicGF0aCIse2Q6Ik0xMiAxNHY0In1dLFsicGF0aCIse2Q6Ik0xNC4xNzIgMmEyIDIgMCAwIDEgMS40MTQuNTg2bDMuODI4IDMuODI4QTIgMiAwIDAgMSAyMCA3LjgyOFYyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik04IDE0aDgifV0sWyJyZWN0Iix7eDoiOCIseToiMTAiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXX0pO3ZhciBOaCxjOGU9bigoKT0+e05oPVtbInBhdGgiLHtkOiJNMi4yNyAyMS43czkuODctMy41IDEyLjczLTYuMzZhNC41IDQuNSAwIDAgMC02LjM2LTYuMzdDNS43NyAxMS44NCAyLjI3IDIxLjcgMi4yNyAyMS43ek04LjY0IDE0bC0yLjA1LTIuMDRNMTUuMzQgMTVsLTIuNDYtMi40NiJ9XSxbInBhdGgiLHtkOiJNMjIgOXMtMS4zMy0yLTMuNS0yQzE2Ljg2IDcgMTUgOSAxNSA5czEuMzMgMiAzLjUgMlMyMiA5IDIyIDl6In1dLFsicGF0aCIse2Q6Ik0xNSAycy0yIDEuMzMtMiAzLjVTMTUgOSAxNSA5czItMS44NCAyLTMuNUMxNyAzLjMzIDE1IDIgMTUgMnoifV1dfSk7dmFyIFBoLGQ4ZT1uKCgpPT57UGg9W1sicGF0aCIse2Q6Ik0xMCA5djcifV0sWyJwYXRoIix7ZDoiTTE0IDZ2MTAifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiI2LjUiLGN5OiIxMi41IixyOiIzLjUifV1dfSk7dmFyIEloLGY4ZT1uKCgpPT57SWg9W1sicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTIyIDl2NyJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XV19KTt2YXIgRmgsdThlPW4oKCk9PntGaD1bWyJwYXRoIix7ZDoiTTE1IDExaDQuNWExIDEgMCAwIDEgMCA1aC00YS41LjUgMCAwIDEtLjUtLjV2LTlhLjUuNSAwIDAgMSAuNS0uNWgzYTEgMSAwIDAgMSAwIDUifV0sWyJwYXRoIix7ZDoibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV1dfSk7dmFyIE9oLHA4ZT1uKCgpPT57T2g9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjEwIixyOiIyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMCIscjoiMiJ9XSxbInBhdGgiLHtkOiJtNiAyMCAuNy0yLjlBMS40IDEuNCAwIDAgMSA4LjEgMTZoNy44YTEuNCAxLjQgMCAwIDEgMS40IDFsLjcgMyJ9XV19KTt2YXIgQmgsaDhlPW4oKCk9PntCaD1bWyJwYXRoIix7ZDoiTTIgOFY2YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAyaC02In1dLFsicGF0aCIse2Q6Ik0yIDEyYTkgOSAwIDAgMSA4IDgifV0sWyJwYXRoIix7ZDoiTTIgMTZhNSA1IDAgMCAxIDQgNCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIuMDEiLHkxOiIyMCIseTI6IjIwIn1dXX0pO3ZhciBSaCxtOGU9bigoKT0+e1JoPVtbInBhdGgiLHtkOiJNMTAgNVYzIn1dLFsicGF0aCIse2Q6Ik0xNCA1VjMifV0sWyJwYXRoIix7ZDoiTTE1IDIxdi0zYTMgMyAwIDAgMC02IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTggM3Y4In1dLFsicGF0aCIse2Q6Ik0xOCA1SDYifV0sWyJwYXRoIix7ZDoiTTIyIDExSDIifV0sWyJwYXRoIix7ZDoiTTIyIDl2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOSJ9XSxbInBhdGgiLHtkOiJNNiAzdjgifV1dfSk7dmFyIEhoLGc4ZT1uKCgpPT57SGg9W1sicGF0aCIse2Q6Ik0xMiA1Yy42NyAwIDEuMzUuMDkgMiAuMjYgMS43OC0yIDUuMDMtMi44NCA2LjQyLTIuMjYgMS40LjU4LS40MiA3LS40MiA3IC41NyAxLjA3IDEgMi4yNCAxIDMuNDRDMjEgMTcuOSAxNi45NyAyMSAxMiAyMXMtOS0zLTktNy41NmMwLTEuMjUuNS0yLjQgMS0zLjQ0IDAgMC0xLjg5LTYuNDItLjUtNyAxLjM5LS41OCA0LjcyLjIzIDYuNSAyLjIzQTkuMDQgOS4wNCAwIDAgMSAxMiA1WiJ9XSxbInBhdGgiLHtkOiJNOCAxNHYuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2LjUifV0sWyJwYXRoIix7ZDoiTTExLjI1IDE2LjI1aDEuNUwxMiAxN2wtLjc1LS43NVoifV1dfSk7dmFyIHFoLHg4ZT1uKCgpPT57cWg9W1sicGF0aCIse2Q6Ik0xNi43NSAxMmgzLjYzMmExIDEgMCAwIDEgLjg5NCAxLjQ0N2wtMi4wMzQgNC4wNjlhMSAxIDAgMCAxLTEuNzA4LjEzNGwtMi4xMjQtMi45NyJ9XSxbInBhdGgiLHtkOiJNMTcuMTA2IDkuMDUzYTEgMSAwIDAgMSAuNDQ3IDEuMzQxbC0zLjEwNiA2LjIxMWExIDEgMCAwIDEtMS4zNDIuNDQ3TDMuNjEgMTIuM2EyLjkyIDIuOTIgMCAwIDEtMS4zLTMuOTFMMy42OSA1LjZhMi45MiAyLjkyIDAgMCAxIDMuOTItMS4zeiJ9XSxbInBhdGgiLHtkOiJNMiAxOWgzLjc2YTIgMiAwIDAgMCAxLjgtMS4xTDkgMTUifV0sWyJwYXRoIix7ZDoiTTIgMjF2LTQifV0sWyJwYXRoIix7ZDoiTTcgOWguMDEifV1dfSk7dmFyIFFuLGI4ZT1uKCgpPT57UW49W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxMS4yMDdhLjUuNSAwIDAgMSAuMTQ2LS4zNTNsMi0yYS41LjUgMCAwIDEgLjcwOCAwbDMuMjkyIDMuMjkyYS41LjUgMCAwIDAgLjcwOCAwbDQuMjkyLTQuMjkyYS41LjUgMCAwIDEgLjg1NC4zNTNWMTZhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBLbix2OGU9bigoKT0+e0tuPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgVmgseThlPW4oKCk9PntWaD1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDExaDgifV0sWyJwYXRoIix7ZDoiTTcgMTZoMyJ9XSxbInBhdGgiLHtkOiJNNyA2aDEyIn1dXX0pO3ZhciBVaCx3OGU9bigoKT0+e1VoPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTFoOCJ9XSxbInBhdGgiLHtkOiJNNyAxNmgxMiJ9XSxbInBhdGgiLHtkOiJNNyA2aDMifV1dfSk7dmFyIGpoLE04ZT1uKCgpPT57amg9W1sicGF0aCIse2Q6Ik0xMSAxM3Y0In1dLFsicGF0aCIse2Q6Ik0xNSA1djQifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicmVjdCIse3g6IjciLHk6IjEzIix3aWR0aDoiOSIsaGVpZ2h0OiI0IixyeDoiMSJ9XSxbInJlY3QiLHt4OiI3Iix5OiI1Iix3aWR0aDoiMTIiLGhlaWdodDoiNCIscng6IjEifV1dfSk7dmFyIEpuLHo4ZT1uKCgpPT57Sm49W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxNmg4In1dLFsicGF0aCIse2Q6Ik03IDExaDEyIn1dLFsicGF0aCIse2Q6Ik03IDZoMyJ9XV19KTt2YXIgZTAsazhlPW4oKCk9PntlMD1bWyJwYXRoIix7ZDoiTTkgNXY0In1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjYiLHg6IjciLHk6IjkiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik05IDE1djIifV0sWyJwYXRoIix7ZDoiTTE3IDN2MiJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI4Iix4OiIxNSIseToiNSIscng6IjEifV0sWyJwYXRoIix7ZDoiTTE3IDEzdjMifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dXX0pO3ZhciB0MCxTOGU9bigoKT0+e3QwPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjUiLHdpZHRoOiI0IixoZWlnaHQ6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt4OiI3Iix5OiI4Iix3aWR0aDoiNCIsaGVpZ2h0OiI5IixyeDoiMSJ9XV19KTt2YXIgV2gsQzhlPW4oKCk9PntXaD1bWyJwYXRoIix7ZDoiTTEzIDE3VjkifV0sWyJwYXRoIix7ZDoiTTE4IDE3di0zIn1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxN1Y1In1dXX0pO3ZhciBhMCxMOGU9bigoKT0+e2EwPVtbInBhdGgiLHtkOiJNMTMgMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTggMTdWNSJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTd2LTMifV1dfSk7dmFyIEdoLFQ4ZT1uKCgpPT57R2g9W1sicGF0aCIse2Q6Ik0xMSAxM0g3In1dLFsicGF0aCIse2Q6Ik0xOSA5aC00In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiIxNSIseToiNSIsd2lkdGg6IjQiLGhlaWdodDoiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjgiLHdpZHRoOiI0IixoZWlnaHQ6IjkiLHJ4OiIxIn1dXX0pO3ZhciByMCxfOGU9bigoKT0+e3IwPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTE4IDE3VjkifV0sWyJwYXRoIix7ZDoiTTEzIDE3VjUifV0sWyJwYXRoIix7ZDoiTTggMTd2LTMifV1dfSk7dmFyIFloLEE4ZT1uKCgpPT57WWg9W1sicGF0aCIse2Q6Ik0xMCA2aDgifV0sWyJwYXRoIix7ZDoiTTEyIDE2aDYifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik04IDExaDcifV1dfSk7dmFyIGkwLCQ4ZT1uKCgpPT57aTA9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJtMTkgOS01IDUtNC00LTMgMyJ9XV19KTt2YXIgWmgsRDhlPW4oKCk9PntaaD1bWyJwYXRoIix7ZDoibTEzLjExIDcuNjY0IDEuNzggMi42NzIifV0sWyJwYXRoIix7ZDoibTE0LjE2MiAxMi43ODgtMy4zMjQgMS40MjQifV0sWyJwYXRoIix7ZDoibTIwIDQtNi4wNiAxLjUxNSJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI2IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjE1IixyOiIyIn1dXX0pO3ZhciBYaCxFOGU9bigoKT0+e1hoPVtbInBhdGgiLHtkOiJNNSAyMVYzIn1dLFsicGF0aCIse2Q6Ik0xMiAyMVY5In1dLFsicGF0aCIse2Q6Ik0xOSAyMXYtNiJ9XV19KTt2YXIgbzAsTjhlPW4oKCk9PntvMD1bWyJwYXRoIix7ZDoiTTUgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjkifV0sWyJwYXRoIix7ZDoiTTE5IDIxVjMifV1dfSk7dmFyIHMwLFA4ZT1uKCgpPT57czA9W1sicGF0aCIse2Q6Ik01IDIxdi02In1dLFsicGF0aCIse2Q6Ik0xMiAyMVYzIn1dLFsicGF0aCIse2Q6Ik0xOSAyMVY5In1dXX0pO3ZhciBRaCxJOGU9bigoKT0+e1FoPVtbInBhdGgiLHtkOiJNMTIgMTZ2NSJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2NyJ9XSxbInBhdGgiLHtkOiJNMjAgMTB2MTEifV0sWyJwYXRoIix7ZDoibTIyIDMtOC42NDYgOC42NDZhLjUuNSAwIDAgMS0uNzA4IDBMOS4zNTQgOC4zNTRhLjUuNSAwIDAgMC0uNzA3IDBMMiAxNSJ9XSxbInBhdGgiLHtkOiJNNCAxOHYzIn1dLFsicGF0aCIse2Q6Ik04IDE0djcifV1dfSk7dmFyIG4wLEY4ZT1uKCgpPT57bjA9W1sicGF0aCIse2Q6Ik02IDVoMTIifV0sWyJwYXRoIix7ZDoiTTQgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE5aDgifV1dfSk7dmFyIGwwLE84ZT1uKCgpPT57bDA9W1sicGF0aCIse2Q6Ik0yMSAxMmMuNTUyIDAgMS4wMDUtLjQ0OS45NS0uOTk4YTEwIDEwIDAgMCAwLTguOTUzLTguOTUxYy0uNTUtLjA1NS0uOTk4LjM5OC0uOTk4Ljk1djhhMSAxIDAgMCAwIDEgMXoifV0sWyJwYXRoIix7ZDoiTTIxLjIxIDE1Ljg5QTEwIDEwIDAgMSAxIDggMi44MyJ9XV19KTt2YXIgYzAsQjhlPW4oKCk9PntjMD1bWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiI1LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjExLjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTQuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV1dfSk7dmFyIEtoLFI4ZT1uKCgpPT57S2g9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxNmMuNS0yIDEuNS03IDQtNyAyIDAgMiAzIDQgMyAyLjUgMCA0LjUtNSA1LTcifV1dfSk7dmFyIEpoLEg4ZT1uKCgpPT57Smg9W1sicGF0aCIse2Q6Ik0xOCA2IDcgMTdsLTUtNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTAtNy41IDcuNUwxMyAxNiJ9XV19KTt2YXIgZW0scThlPW4oKCk9PntlbT1bWyJwYXRoIix7ZDoiTTIwIDRMOSAxNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlMMyAxOSJ9XSxbInBhdGgiLHtkOiJNOSAxNUw0IDEwIn1dXX0pO3ZhciB0bSxWOGU9bigoKT0+e3RtPVtbInBhdGgiLHtkOiJNMjAgNiA5IDE3bC01LTUifV1dfSk7dmFyIGFtLFU4ZT1uKCgpPT57YW09W1sicGF0aCIse2Q6Ik0xNyAyMWExIDEgMCAwIDAgMS0xdi01LjM1YzAtLjQ1Ny4zMTYtLjg0NC43MjctMS4wNDFhNCA0IDAgMCAwLTIuMTM0LTcuNTg5IDUgNSAwIDAgMC05LjE4NiAwIDQgNCAwIDAgMC0yLjEzNCA3LjU4OGMuNDExLjE5OC43MjcuNTg1LjcyNyAxLjA0MVYyMGExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNNiAxN2gxMiJ9XV19KTt2YXIgcm0sajhlPW4oKCk9PntybT1bWyJwYXRoIix7ZDoiTTIgMTdhNSA1IDAgMCAwIDEwIDBjMC0yLjc2LTIuNS01LTUtMy0yLjUtMi01IC4yNC01IDNaIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1oifV0sWyJwYXRoIix7ZDoiTTcgMTRjMy4yMi0yLjkxIDQuMjktOC43NSA1LTEyIDEuNjYgMi4zOCA0Ljk0IDkgNSAxMiJ9XSxbInBhdGgiLHtkOiJNMjIgOWMtNC4yOSAwLTcuMTQtMi4zMy0xMC03IDUuNzEgMCAxMCA0LjY3IDEwIDdaIn1dXX0pO3ZhciBpbSxXOGU9bigoKT0+e2ltPVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTE1IDE4YzEuNS0uNjE1IDMtMi40NjEgMy00LjkyM0MxOCA4Ljc2OSAxNC41IDQuNDYyIDEyIDIgOS41IDQuNDYyIDYgOC43NyA2IDEzLjA3NyA2IDE1LjUzOSA3LjUgMTcuMzg1IDkgMTgifV0sWyJwYXRoIix7ZDoibTE2IDctMi41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAyaDYifV1dfSk7dmFyIG9tLEc4ZT1uKCgpPT57b209W1sicGF0aCIse2Q6Ik00IDIwYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtNi43IDE4LTEtMUM0LjM1IDE1LjY4MiAzIDE0LjA5IDMgMTJhNSA1IDAgMCAxIDQuOTUtNWMxLjU4NCAwIDIuNy40NTUgNC4wNSAxLjgxOEMxMy4zNSA3LjQ1NSAxNC40NjYgNyAxNi4wNSA3QTUgNSAwIDAgMSAyMSAxMmMwIDIuMDgyLTEuMzU5IDMuNjczLTIuNyA1bC0xIDEifV0sWyJwYXRoIix7ZDoiTTEwIDRoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY2LjgxOCJ9XV19KTt2YXIgc20sWThlPW4oKCk9PntzbT1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xNi41IDE4YzEtMiAyLjUtNSAyLjUtOWE3IDcgMCAwIDAtNy03SDYuNjM1YTEgMSAwIDAgMC0uNzY4IDEuNjRMNyA1bC0yLjMyIDUuODAyYTIgMiAwIDAgMCAuOTUgMi41MjZsMi44NyAxLjQ1NiJ9XSxbInBhdGgiLHtkOiJtMTUgNSAxLjQyNS0xLjQyNSJ9XSxbInBhdGgiLHtkOiJtMTcgOCAxLjUzLTEuNTMifV0sWyJwYXRoIix7ZDoiTTkuNzEzIDEyLjE4NSA3IDE4In1dXX0pO3ZhciBubSxaOGU9bigoKT0+e25tPVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoibTE0LjUgMTAgMS41IDgifV0sWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoibTggMTggMS41LTgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI2IixyOiI0In1dXX0pO3ZhciBsbSxYOGU9bigoKT0+e2xtPVtbInBhdGgiLHtkOiJNNCAyMGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoibTEyLjQ3NCA1Ljk0MyAxLjU2NyA1LjM0YTEgMSAwIDAgMCAxLjc1LjMyOGwyLjYxNi0zLjQwMiJ9XSxbInBhdGgiLHtkOiJtMjAgOS0zIDkifV0sWyJwYXRoIix7ZDoibTUuNTk0IDguMjA5IDIuNjE1IDMuNDAzYTEgMSAwIDAgMCAxLjc1LS4zMjlsMS41NjctNS4zNCJ9XSxbInBhdGgiLHtkOiJNNyAxOCA0IDkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiNyIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiNyIscjoiMiJ9XV19KTt2YXIgY20sUThlPW4oKCk9PntjbT1bWyJwYXRoIix7ZDoibTYgOSA2IDYgNi02In1dXX0pO3ZhciBkbSxLOGU9bigoKT0+e2RtPVtbInBhdGgiLHtkOiJtMTcgMTgtNi02IDYtNiJ9XSxbInBhdGgiLHtkOiJNNyA2djEyIn1dXX0pO3ZhciBmbSxKOGU9bigoKT0+e2ZtPVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMnYyIn1dLFsicGF0aCIse2Q6Im0xNyAxOC0xLTkifV0sWyJwYXRoIix7ZDoiTTYgMnY1YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjIifV0sWyJwYXRoIix7ZDoiTTYgNGgxMiJ9XSxbInBhdGgiLHtkOiJtNyAxOCAxLTkifV1dfSk7dmFyIHVtLGVkZT1uKCgpPT57dW09W1sicGF0aCIse2Q6Im03IDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoiTTE3IDZ2MTIifV1dfSk7dmFyIHBtLHRkZT1uKCgpPT57cG09W1sicGF0aCIse2Q6Im0xNSAxOC02LTYgNi02In1dXX0pO3ZhciBobSxhZGU9bigoKT0+e2htPVtbInBhdGgiLHtkOiJtOSAxOCA2LTYtNi02In1dXX0pO3ZhciBtbSxyZGU9bigoKT0+e21tPVtbInBhdGgiLHtkOiJtMTggMTUtNi02LTYgNiJ9XV19KTt2YXIgZ20saWRlPW4oKCk9PntnbT1bWyJwYXRoIix7ZDoibTcgMjAgNS01IDUgNSJ9XSxbInBhdGgiLHtkOiJtNyA0IDUgNSA1LTUifV1dfSk7dmFyIHhtLG9kZT1uKCgpPT57eG09W1sicGF0aCIse2Q6Im03IDYgNSA1IDUtNSJ9XSxbInBhdGgiLHtkOiJtNyAxMyA1IDUgNS01In1dXX0pO3ZhciBibSxzZGU9bigoKT0+e2JtPVtbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV0sWyJwYXRoIix7ZDoibTE3IDcgNSA1LTUgNSJ9XSxbInBhdGgiLHtkOiJtNyA3LTUgNSA1IDUifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dXX0pO3ZhciB2bSxuZGU9bigoKT0+e3ZtPVtbInBhdGgiLHtkOiJtOSA3LTUgNSA1IDUifV0sWyJwYXRoIix7ZDoibTE1IDcgNSA1LTUgNSJ9XV19KTt2YXIgeW0sbGRlPW4oKCk9Pnt5bT1bWyJwYXRoIix7ZDoibTExIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTE4IDE3LTUtNSA1LTUifV1dfSk7dmFyIHdtLGNkZT1uKCgpPT57d209W1sicGF0aCIse2Q6Im0yMCAxNy01LTUgNS01In1dLFsicGF0aCIse2Q6Im00IDE3IDUtNS01LTUifV1dfSk7dmFyIE1tLGRkZT1uKCgpPT57TW09W1sicGF0aCIse2Q6Im02IDE3IDUtNS01LTUifV0sWyJwYXRoIix7ZDoibTEzIDE3IDUtNS01LTUifV1dfSk7dmFyIHptLGZkZT1uKCgpPT57em09W1sicGF0aCIse2Q6Im03IDE1IDUgNSA1LTUifV0sWyJwYXRoIix7ZDoibTcgOSA1LTUgNSA1In1dXX0pO3ZhciBrbSx1ZGU9bigoKT0+e2ttPVtbInBhdGgiLHtkOiJtMTcgMTEtNS01LTUgNSJ9XSxbInBhdGgiLHtkOiJtMTcgMTgtNS01LTUgNSJ9XV19KTt2YXIgU20scGRlPW4oKCk9PntTbT1bWyJwYXRoIix7ZDoiTTEwIDloNCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y1In1dLFsicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoibTE4IDkgMy41MiAyLjE0N2ExIDEgMCAwIDEgLjQ4Ljg1NFYxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtNi45OTlhMSAxIDAgMCAxIC40OC0uODU0TDYgOSJ9XSxbInBhdGgiLHtkOiJNNiAyMVY3YTEgMSAwIDAgMSAuMzc2LS43ODJsNS0zLjk5OWExIDEgMCAwIDEgMS4yNDkuMDAxbDUgNEExIDEgMCAwIDEgMTggN3YxNCJ9XV19KTt2YXIgQ20saGRlPW4oKCk9PntDbT1bWyJwYXRoIix7ZDoiTTEyIDEySDNhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMTMifV0sWyJwYXRoIix7ZDoiTTE4IDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtLjUuODY2In1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNNyAxMnY0In1dXX0pO3ZhciBkMCxtZGU9bigoKT0+e2QwPVtbInBhdGgiLHtkOiJNMTAuODggMjEuOTQgMTUuNDYgMTQifV0sWyJwYXRoIix7ZDoiTTIxLjE3IDhIMTIifV0sWyJwYXRoIix7ZDoiTTMuOTUgNi4wNiA4LjU0IDE0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV1dfSk7dmFyIExtLGdkZT1uKCgpPT57TG09W1sicGF0aCIse2Q6Ik0xNyAxMkgzYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDE0In1dLFsicGF0aCIse2Q6Ik0xOCA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNNyAxMnY0In1dXX0pO3ZhciBmMCx4ZGU9bigoKT0+e2YwPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIHUwLGJkZT1uKCgpPT57dTA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV0sWyJwYXRoIix7ZDoibTggMTIgNCA0IDQtNCJ9XV19KTt2YXIgcDAsdmRlPW4oKCk9PntwMD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTEyIDgtNCA0IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XV19KTt2YXIgaDAseWRlPW4oKCk9PntoMD1bWyJwYXRoIix7ZDoiTTIgMTJhMTAgMTAgMCAxIDEgMTAgMTAifV0sWyJwYXRoIix7ZDoibTIgMjIgMTAtMTAifV0sWyJwYXRoIix7ZDoiTTggMjJIMnYtNiJ9XV19KTt2YXIgbTAsd2RlPW4oKCk9PnttMD1bWyJwYXRoIix7ZDoiTTEyIDIyYTEwIDEwIDAgMSAxIDEwLTEwIn1dLFsicGF0aCIse2Q6Ik0yMiAyMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTZ2NmgtNiJ9XV19KTt2YXIgZzAsTWRlPW4oKCk9PntnMD1bWyJwYXRoIix7ZDoiTTIgOFYyaDYifV0sWyJwYXRoIix7ZDoibTIgMiAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMkExMCAxMCAwIDEgMSAyIDEyIn1dXX0pO3ZhciB4MCx6ZGU9bigoKT0+e3gwPVtbInBhdGgiLHtkOiJNMjIgMTJBMTAgMTAgMCAxIDEgMTIgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMTYgMmg2djYifV1dfSk7dmFyIGIwLGtkZT1uKCgpPT57YjA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xMiAxNiA0LTQtNC00In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dfSk7dmFyIHYwLFNkZT1uKCgpPT57djA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNiAxMi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAxNlY4In1dXX0pO3ZhciB5MCxDZGU9bigoKT0+e3kwPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dXX0pO3ZhciB3MCxMZGU9bigoKT0+e3cwPVtbInBhdGgiLHtkOiJNMjEuODAxIDEwQTEwIDEwIDAgMSAxIDE3IDMuMzM1In1dLFsicGF0aCIse2Q6Im05IDExIDMgM0wyMiA0In1dXX0pO3ZhciBNMCxUZGU9bigoKT0+e00wPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTYgMTAtNCA0LTQtNCJ9XV19KTt2YXIgejAsX2RlPW4oKCk9Pnt6MD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE0IDE2LTQtNCA0LTQifV1dfSk7dmFyIGswLEFkZT1uKCgpPT57azA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xMCA4IDQgNC00IDQifV1dfSk7dmFyIFMwLCRkZT1uKCgpPT57UzA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dfSk7dmFyIFRtLERkZT1uKCgpPT57VG09W1sicGF0aCIse2Q6Ik0xMC4xIDIuMTgyYTEwIDEwIDAgMCAxIDMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xMy45IDIxLjgxOGExMCAxMCAwIDAgMS0zLjggMCJ9XSxbInBhdGgiLHtkOiJNMTcuNjA5IDMuNzIxYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yNzkgMTcuNjA5YTEwIDEwIDAgMCAxLTIuNyAyLjY5In1dLFsicGF0aCIse2Q6Ik0yMS44MTggMTAuMWExMCAxMCAwIDAgMSAwIDMuOCJ9XSxbInBhdGgiLHtkOiJNMy43MjEgNi4zOTFhMTAgMTAgMCAwIDEgMi43LTIuNjkifV0sWyJwYXRoIix7ZDoiTTYuMzkxIDIwLjI3OWExMCAxMCAwIDAgMS0yLjY5LTIuNyJ9XV19KTt2YXIgQzAsRWRlPW4oKCk9PntDMD1bWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIF9tLE5kZT1uKCgpPT57X209W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dfSk7dmFyIEFtLFBkZT1uKCgpPT57QW09W1sicGF0aCIse2Q6Ik0xMC4xIDIuMThhOS45MyA5LjkzIDAgMCAxIDMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xNy42IDMuNzFhOS45NSA5Ljk1IDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yMS44MiAxMC4xYTkuOTMgOS45MyAwIDAgMSAwIDMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjkgMTcuNmE5Ljk1IDkuOTUgMCAwIDEtMi43IDIuNjkifV0sWyJwYXRoIix7ZDoiTTEzLjkgMjEuODJhOS45NCA5Ljk0IDAgMCAxLTMuOCAwIn1dLFsicGF0aCIse2Q6Ik02LjQgMjAuMjlhOS45NSA5Ljk1IDAgMCAxLTIuNjktMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4IDEzLjlhOS45MyA5LjkzIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0zLjcxIDYuNGE5Ljk1IDkuOTUgMCAwIDEgMi43LTIuNjkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgJG0sSWRlPW4oKCk9PnskbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgRG0sRmRlPW4oKCk9PntEbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDEyaC4wMSJ9XV19KTt2YXIgRW0sT2RlPW4oKCk9PntFbT1bWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTRoMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIE5tLEJkZT1uKCgpPT57Tm09W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoibTE2IDEyLTQtNC00IDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjgifV0sWyJwYXRoIix7ZDoiTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIn1dLFsicGF0aCIse2Q6Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40In1dLFsicGF0aCIse2Q6Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTcifV0sWyJwYXRoIix7ZDoiTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCJ9XV19KTt2YXIgUG0sUmRlPW4oKCk9PntQbT1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dLFsicGF0aCIse2Q6Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyJ9XSxbInBhdGgiLHtkOiJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCJ9XSxbInBhdGgiLHtkOiJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3In1dLFsicGF0aCIse2Q6Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgifV1dfSk7dmFyIEwwLEhkZT1uKCgpPT57TDA9W1sicGF0aCIse2Q6Ik0xNS42IDIuN2ExMCAxMCAwIDEgMCA1LjcgNS43In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEzLjQgMTAuNiAxOSA1In1dXX0pO3ZhciBUMCxxZGU9bigoKT0+e1QwPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBJbSxWZGU9bigoKT0+e0ltPVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSJ9XSxbInBhdGgiLHtkOiJNMTkuMDggMTkuMDhBMTAgMTAgMCAxIDEgNC45MiA0LjkyIn1dXX0pO3ZhciBfMCxVZGU9bigoKT0+e18wPVtbInBhdGgiLHtkOiJNMTIuNjU2IDdIMTNhMyAzIDAgMCAxIDIuOTg0IDMuMzA3In1dLFsicGF0aCIse2Q6Ik0xMyAxM0g5In1dLFsicGF0aCIse2Q6Ik0xOS4wNzEgMTkuMDcxQTEgMSAwIDAgMSA0LjkzIDQuOTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC4zNTcgMi42ODdhMTAgMTAgMCAwIDEgMTIuOTU2IDEyLjk1NiJ9XSxbInBhdGgiLHtkOiJNOSAxN1Y5In1dXX0pO3ZhciBBMCxqZGU9bigoKT0+e0EwPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOSAxN1Y3aDRhMyAzIDAgMCAxIDAgNkg5In1dXX0pO3ZhciAkMCxXZGU9bigoKT0+eyQwPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgRDAsR2RlPW4oKCk9PntEMD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dfSk7dmFyIEZtLFlkZT1uKCgpPT57Rm09W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjEyIixyOiIyIn1dXX0pO3ZhciBFMCxaZGU9bigoKT0+e0UwPVtbInBhdGgiLHtkOiJNOSA5LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdBMSAxIDAgMCAxIDkgMTQuOTk2eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgT20sWGRlPW4oKCk9PntPbT1bWyJwYXRoIix7ZDoiTTEwIDE2VjkuNWExIDEgMCAwIDEgNSAwIn1dLFsicGF0aCIse2Q6Ik04IDEyaDQifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgTjAsUWRlPW4oKCk9PntOMD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciBQMCxLZGU9bigoKT0+e1AwPVtbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik03Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBOaSxKZGU9bigoKT0+e05pPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgSTAsZTdlPW4oKCk9PntJMD1bWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgQm0sdDdlPW4oKCk9PntCbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgUm0sYTdlPW4oKCk9PntSbT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XV19KTt2YXIgSG0scjdlPW4oKCk9PntIbT1bWyJwYXRoIix7ZDoiTTExLjA1MSA3LjYxNmExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2N2wtMS4xNTYtMS4xNTJhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgRjAsaTdlPW4oKCk9PntGMD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJyZWN0Iix7eDoiOSIseToiOSIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIE8wLG83ZT1uKCgpPT57TzA9W1sicGF0aCIse2Q6Ik0xOCAyMGE2IDYgMCAwIDAtMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBCMCxzN2U9bigoKT0+e0IwPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik03IDIwLjY2MlYxOWEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYxLjY2MiJ9XV19KTt2YXIgUjAsbjdlPW4oKCk9PntSMD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Im05IDkgNiA2In1dXX0pO3ZhciBxbSxsN2U9bigoKT0+e3FtPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgVm0sYzdlPW4oKCk9PntWbT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTEgOWg0YTIgMiAwIDAgMCAyLTJWMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNyAyMXYtNGEyIDIgMCAwIDEgMi0yaDQifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxNSIscjoiMiJ9XV19KTt2YXIgVW0sZDdlPW4oKCk9PntVbT1bWyJwYXRoIix7ZDoiTTIxLjY2IDE3LjY3YTEuMDggMS4wOCAwIDAgMS0uMDQgMS42QTEyIDEyIDAgMCAxIDQuNzMgMi4zOGExLjEgMS4xIDAgMCAxIDEuNjEtLjA0eiJ9XSxbInBhdGgiLHtkOiJNMTkuNjUgMTUuNjZBOCA4IDAgMCAxIDguMzUgNC4zNCJ9XSxbInBhdGgiLHtkOiJtMTQgMTAtNS41IDUuNSJ9XSxbInBhdGgiLHtkOiJNMTQgMTcuODVWMTBINi4xNSJ9XV19KTt2YXIgam0sZjdlPW4oKCk9PntqbT1bWyJwYXRoIix7ZDoiTTIwLjIgNiAzIDExbC0uOS0yLjRjLS4zLTEuMS4zLTIuMiAxLjMtMi41bDEzLjUtNGMxLjEtLjMgMi4yLjMgMi41IDEuM1oifV0sWyJwYXRoIix7ZDoibTYuMiA1LjMgMy4xIDMuOSJ9XSxbInBhdGgiLHtkOiJtMTIuNCAzLjQgMy4xIDQifV0sWyJwYXRoIix7ZDoiTTMgMTFoMTh2OGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMloifV1dfSk7dmFyIFdtLHU3ZT1uKCgpPT57V209W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoibTkgMTQgMiAyIDQtNCJ9XV19KTt2YXIgR20scDdlPW4oKCk9PntHbT1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2LjgzMiJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDIifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxNiIscjoiNiJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgWW0saDdlPW4oKCk9PntZbT1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTRIMTEifV0sWyJwYXRoIix7ZDoibTE1IDEwLTQgNCA0IDQifV1dfSk7dmFyIFptLG03ZT1uKCgpPT57Wm09W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTEyIDExaDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aDQifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XV19KTt2YXIgWG0sZzdlPW4oKCk9PntYbT1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNOSAxNGg2In1dXX0pO3ZhciBRbSx4N2U9bigoKT0+e1FtPVtbInBhdGgiLHtkOiJNMTEgMTRoMTAifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjEuMzQ0In1dLFsicGF0aCIse2Q6Im0xNyAxOCA0LTQtNC00In1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNzkzLTEuMTEzIn1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciBIMCxiN2U9bigoKT0+e0gwPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LS41In1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDEuNzMgMSJ9XSxbInBhdGgiLHtkOiJNOCAxOGgxIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTIuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV1dfSk7dmFyIHEwLHY3ZT1uKCgpPT57cTA9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyaC01LjUifV0sWyJwYXRoIix7ZDoiTTQgMTMuNVY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTMuMzc4IDE1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXX0pO3ZhciBLbSx5N2U9bigoKT0+e0ttPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDE0aDYifV0sWyJwYXRoIix7ZDoiTTEyIDE3di02In1dXX0pO3ZhciBKbSx3N2U9bigoKT0+e0ptPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDEydi0xaDZ2MSJ9XSxbInBhdGgiLHtkOiJNMTEgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2NiJ9XV19KTt2YXIgZWcsTTdlPW4oKCk9PntlZz1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTEtNiA2In1dLFsicGF0aCIse2Q6Im05IDExIDYgNiJ9XV19KTt2YXIgdGcsejdlPW4oKCk9Pnt0Zz1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XV19KTt2YXIgYWcsazdlPW4oKCk9PnthZz1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwyLTQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIHJnLFM3ZT1uKCgpPT57cmc9W1sicGF0aCIse2Q6Ik0xMiA2djZsLTQtMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgaWcsQzdlPW4oKCk9PntpZz1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwtMi00In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBvZyxMN2U9bigoKT0+e29nPVtbInBhdGgiLHtkOiJNMTIgNnY2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBzZyxUN2U9bigoKT0+e3NnPVtbInBhdGgiLHtkOiJNMTIgNnY2bDQtMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgbmcsXzdlPW4oKCk9PntuZz1bWyJwYXRoIix7ZDoiTTEyIDZ2Nmg0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBsZyxBN2U9bigoKT0+e2xnPVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgY2csJDdlPW4oKCk9PntjZz1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwyIDQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIGRnLEQ3ZT1uKCgpPT57ZGc9W1sicGF0aCIse2Q6Ik0xMiA2djEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBmZyxFN2U9bigoKT0+e2ZnPVtbInBhdGgiLHtkOiJNMTIgNnY2bC0yIDQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dfSk7dmFyIHVnLE43ZT1uKCgpPT57dWc9W1sicGF0aCIse2Q6Ik0xMiA2djZsLTQgMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgcGcsUDdlPW4oKCk9PntwZz1bWyJwYXRoIix7ZDoiTTEyIDZ2Nkg4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBoZyxJN2U9bigoKT0+e2hnPVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMjAgMjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMS4yNSA4LjJBMTAgMTAgMCAxIDAgMTYgMjEuMTYifV1dfSk7dmFyIG1nLEY3ZT1uKCgpPT57bWc9W1sicGF0aCIse2Q6Ik0xMiA2djZsMiAxIn1dLFsicGF0aCIse2Q6Ik0xMi4zMzcgMjEuOTk0YTEwIDEwIDAgMSAxIDkuNTg4LTguNzY3In1dLFsicGF0aCIse2Q6Im0xNCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xOCAxNHY4In1dXX0pO3ZhciBnZyxPN2U9bigoKT0+e2dnPVtbInBhdGgiLHtkOiJNMTIgNnY2bDEuNTYuNzgifV0sWyJwYXRoIix7ZDoiTTEzLjIyNyAyMS45MjVhMTAgMTAgMCAxIDEgOC43NjctOS41ODgifV0sWyJwYXRoIix7ZDoibTE0IDE4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE4IDIydi04In1dXX0pO3ZhciB4ZyxCN2U9bigoKT0+e3hnPVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJhMTAgMTAgMCAxIDAtMTEgOS45NSJ9XSxbInBhdGgiLHtkOiJtMjIgMTYtNS41IDUuNUwxNCAxOSJ9XV19KTt2YXIgYmcsUjdlPW4oKCk9PntiZz1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXX0pO3ZhciB2ZyxIN2U9bigoKT0+e3ZnPVtbInBhdGgiLHtkOiJNMTIgNnY2bDMuNjQ0IDEuODIyIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWg2In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMS45MiAxMy4yNjdhMTAgMTAgMCAxIDAtOC42NTMgOC42NTMifV1dfSk7dmFyIHlnLHE3ZT1uKCgpPT57eWc9W1sicGF0aCIse2Q6Ik0xMiA2djZsNCAyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciB3ZyxWN2U9bigoKT0+e3dnPVtbInBhdGgiLHtkOiJNMTAgOS4xN2EzIDMgMCAxIDAgMCA1LjY2In1dLFsicGF0aCIse2Q6Ik0xNyA5LjE3YTMgMyAwIDEgMCAwIDUuNjYifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgTWcsVTdlPW4oKCk9PntNZz1bWyJwYXRoIix7ZDoiTTEyIDEydjQifV0sWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMThoLjVhMSAxIDAgMCAwIDAtOWgtMS43OUE3IDcgMCAxIDAgNyAxNy43MDgifV1dfSk7dmFyIHpnLGo3ZT1uKCgpPT57emc9W1sicGF0aCIse2Q6Ik0yMSAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy41IDhoLTEuNzlBNyA3IDAgMSAwIDMgMTMuNjA3In1dLFsicGF0aCIse2Q6Ik03IDExdjRoNCJ9XSxbInBhdGgiLHtkOiJNOCAxOWE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNSA0LjgyIDQuODIgMCAwIDAtMy40MSAxLjQxTDcgMTUifV1dfSk7dmFyIGtnLFc3ZT1uKCgpPT57a2c9W1sicGF0aCIse2Q6Im0xNyAxNS01LjUgNS41TDkgMTgifV0sWyJwYXRoIix7ZDoiTTUgMTcuNzQzQTcgNyAwIDEgMSAxNS43MSAxMGgxLjc5YTQuNSA0LjUgMCAwIDEgMS41IDguNzQyIn1dXX0pO3ZhciBTZyxHN2U9bigoKT0+e1NnPVtbInBhdGgiLHtkOiJtMTAuODUyIDE5Ljc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTMuMTQ4IDE0LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ4IDE5Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTMuNTMgMjAuNjk2LS4zODItLjkyNGEzIDMgMCAxIDEtMi4yOTYtNS41NDQifV0sWyJwYXRoIix7ZDoibTE0Ljc3MiAxNS44NTIuOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE0Ljc3MiAxOC4xNDguOTIzLjM4MyJ9XSxbInBhdGgiLHtkOiJNNC4yIDE1LjFhNyA3IDAgMSAxIDkuOTMtOS44NThBNyA3IDAgMCAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjIifV0sWyJwYXRoIix7ZDoibTkuMjI4IDE1Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTkuMjI4IDE4LjE0OC0uOTIzLjM4MyJ9XV19KTt2YXIgVjAsWTdlPW4oKCk9PntWMD1bWyJwYXRoIix7ZDoiTTEyIDEzdjhsLTQtNCJ9XSxbInBhdGgiLHtkOiJtMTIgMjEgNC00In1dLFsicGF0aCIse2Q6Ik00LjM5MyAxNS4yNjlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNDM2IDguMjg0In1dXX0pO3ZhciBDZyxaN2U9bigoKT0+e0NnPVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNOCAxOXYxIn1dLFsicGF0aCIse2Q6Ik04IDE0djEifV0sWyJwYXRoIix7ZDoiTTE2IDE5djEifV0sWyJwYXRoIix7ZDoiTTE2IDE0djEifV0sWyJwYXRoIix7ZDoiTTEyIDIxdjEifV0sWyJwYXRoIix7ZDoiTTEyIDE2djEifV1dfSk7dmFyIExnLFg3ZT1uKCgpPT57TGc9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxN0g3In1dLFsicGF0aCIse2Q6Ik0xNyAyMUg5In1dXX0pO3ZhciBUZyxRN2U9bigoKT0+e1RnPVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2MiJ9XSxbInBhdGgiLHtkOiJNOCAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmguMDEifV1dfSk7dmFyIF9nLEs3ZT1uKCgpPT57X2c9W1sicGF0aCIse2Q6Ik02IDE2LjMyNkE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgLjUgOC45NzMifV0sWyJwYXRoIix7ZDoibTEzIDEyLTMgNWg0bC0zIDUifV1dfSk7dmFyIEFnLEo3ZT1uKCgpPT57QWc9W1sicGF0aCIse2Q6Ik0xMSAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOC4zNzYgMTQuNTEyYTYgNiAwIDAgMCAzLjQ2MS00LjEyN2MuMTQ4LS42MjUtLjY1OS0uOTctMS4yNDgtLjcxNGE0IDQgMCAwIDEtNS4yNTktNS4yNmMuMjU1LS41ODktLjA5LTEuMzk1LS43MTYtMS4yNDhhNiA2IDAgMCAwLTQuNTk0IDUuMzYifV0sWyJwYXRoIix7ZDoiTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XV19KTt2YXIgJGcsZWZlPW4oKCk9PnskZz1bWyJwYXRoIix7ZDoiTTEzIDE2YTMgMyAwIDAgMSAwIDZIN2E1IDUgMCAxIDEgNC45LTZ6In1dLFsicGF0aCIse2Q6Ik0xOC4zNzYgMTQuNTEyYTYgNiAwIDAgMCAzLjQ2MS00LjEyN2MuMTQ4LS42MjUtLjY1OS0uOTctMS4yNDgtLjcxNGE0IDQgMCAwIDEtNS4yNTktNS4yNmMuMjU1LS41ODktLjA5LTEuMzk1LS43MTYtMS4yNDhhNiA2IDAgMCAwLTQuNTk0IDUuMzYifV1dfSk7dmFyIERnLHRmZT1uKCgpPT57RGc9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Im05LjIgMjIgMy03In1dLFsicGF0aCIse2Q6Im05IDEzLTMgNyJ9XSxbInBhdGgiLHtkOiJtMTcgMTMtMyA3In1dXX0pO3ZhciBFZyxhZmU9bigoKT0+e0VnPVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik01Ljc4MiA1Ljc4MkE3IDcgMCAwIDAgOSAxOWg4LjVhNC41IDQuNSAwIDAgMCAxLjMwNy0uMTkzIn1dLFsicGF0aCIse2Q6Ik0yMS41MzIgMTYuNUE0LjUgNC41IDAgMCAwIDE3LjUgMTBoLTEuNzlBNy4wMDggNy4wMDggMCAwIDAgMTAgNS4wNyJ9XV19KTt2YXIgTmcscmZlPW4oKCk9PntOZz1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTE2IDE0djYifV0sWyJwYXRoIix7ZDoiTTggMTR2NiJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XV19KTt2YXIgUGcsaWZlPW4oKCk9PntQZz1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTloLjAxIn1dXX0pO3ZhciBJZyxvZmU9bigoKT0+e0lnPVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Im0xOS4wNyA0LjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMTUuOTQ3IDEyLjY1YTQgNCAwIDAgMC01LjkyNS00LjEyOCJ9XSxbInBhdGgiLHtkOiJNMyAyMGE1IDUgMCAxIDEgOC45LTRIMTNhMyAzIDAgMCAxIDIgNS4yNCJ9XSxbInBhdGgiLHtkOiJNMTEgMjB2MiJ9XSxbInBhdGgiLHtkOiJNNyAxOXYyIn1dXX0pO3ZhciBGZyxzZmU9bigoKT0+e0ZnPVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Im0xOS4wNyA0LjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMTUuOTQ3IDEyLjY1YTQgNCAwIDAgMC01LjkyNS00LjEyOCJ9XSxbInBhdGgiLHtkOiJNMTMgMjJIN2E1IDUgMCAxIDEgNC45LTZIMTNhMyAzIDAgMCAxIDAgNloifV1dfSk7dmFyIE9nLG5mZT1uKCgpPT57T2c9W1sicGF0aCIse2Q6Im0xNyAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUifV0sWyJwYXRoIix7ZDoiTTE3IDIydi00aC00In1dLFsicGF0aCIse2Q6Ik0yMC45OTYgMTUuMjUxQTQuNSA0LjUgMCAwIDAgMTcuNDk1IDhoLTEuNzlhNyA3IDAgMSAwLTEyLjcwOSA1LjYwNyJ9XSxbInBhdGgiLHtkOiJNNyAxMHY0aDQifV0sWyJwYXRoIix7ZDoibTcgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dXX0pO3ZhciBVMCxsZmU9bigoKT0+e1UwPVtbInBhdGgiLHtkOiJNMTIgMTN2OCJ9XSxbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJtOCAxNyA0LTQgNCA0In1dXX0pO3ZhciBCZyxjZmU9bigoKT0+e0JnPVtbInBhdGgiLHtkOiJNMTcuNSAxOUg5YTcgNyAwIDEgMSA2LjcxLTloMS43OWE0LjUgNC41IDAgMSAxIDAgOVoifV1dfSk7dmFyIFJnLGRmZT1uKCgpPT57Umc9W1sicGF0aCIse2Q6Ik0xNy41IDIxSDlhNyA3IDAgMSAxIDYuNzEtOWgxLjc5YTQuNSA0LjUgMCAxIDEgMCA5WiJ9XSxbInBhdGgiLHtkOiJNMjIgMTBhMyAzIDAgMCAwLTMtM2gtMi4yMDdhNS41MDIgNS41MDIgMCAwIDAtMTAuNzAyLjUifV1dfSk7dmFyIEhnLGZmZT1uKCgpPT57SGc9W1sicGF0aCIse2Q6Ik0xNi4xNyA3LjgzIDIgMjIifV0sWyJwYXRoIix7ZDoiTTQuMDIgMTJhMi44MjcgMi44MjcgMCAxIDEgMy44MS00LjE3QTIuODI3IDIuODI3IDAgMSAxIDEyIDQuMDJhMi44MjcgMi44MjcgMCAxIDEgNC4xNyAzLjgxQTIuODI3IDIuODI3IDAgMSAxIDE5Ljk4IDEyYTIuODI3IDIuODI3IDAgMSAxLTMuODEgNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiAxOS45OGEyLjgyNyAyLjgyNyAwIDEgMS00LjE3LTMuODFBMSAxIDAgMSAxIDQgMTIifV0sWyJwYXRoIix7ZDoibTcuODMgNy44MyA4LjM0IDguMzQifV1dfSk7dmFyIHFnLHVmZT1uKCgpPT57cWc9W1sicGF0aCIse2Q6Ik0xNy4yOCA5LjA1YTUuNSA1LjUgMCAxIDAtMTAuNTYgMEE1LjUgNS41IDAgMSAwIDEyIDE3LjY2YTUuNSA1LjUgMCAxIDAgNS4yOC04LjZaIn1dLFsicGF0aCIse2Q6Ik0xMiAxNy42NkwxMiAyMiJ9XV19KTt2YXIgajAscGZlPW4oKCk9PntqMD1bWyJwYXRoIix7ZDoibTE4IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0In1dLFsicGF0aCIse2Q6Im0xNC41IDQtNSAxNiJ9XV19KTt2YXIgVmcsaGZlPW4oKCk9PntWZz1bWyJwYXRoIix7ZDoibTE2IDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoibTggNi02IDYgNiA2In1dXX0pO3ZhciBVZyxtZmU9bigoKT0+e1VnPVtbInBvbHlnb24iLHtwb2ludHM6IjEyIDIgMjIgOC41IDIyIDE1LjUgMTIgMjIgMiAxNS41IDIgOC41IDEyIDIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjE1LjUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMjIgOC41IDEyIDE1LjUgMiA4LjUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMiAxNS41IDEyIDguNSAyMiAxNS41In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMiIseTI6IjguNSJ9XV19KTt2YXIgamcsZ2ZlPW4oKCk9PntqZz1bWyJwYXRoIix7ZDoiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiI3LjUgNC4yMSAxMiA2LjgxIDE2LjUgNC4yMSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiI3LjUgMTkuNzkgNy41IDE0LjYgMyAxMiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIyMSAxMiAxNi41IDE0LjYgMTYuNSAxOS43OSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI3IDYuOTYgMTIgMTIuMDEgMjAuNzMgNi45NiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyLjA4Iix5MjoiMTIifV1dfSk7dmFyIFdnLHhmZT1uKCgpPT57V2c9W1sicGF0aCIse2Q6Ik0xMCAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTYgOGExIDEgMCAwIDEgMSAxdjhhNCA0IDAgMCAxLTQgNEg3YTQgNCAwIDAgMS00LTRWOWExIDEgMCAwIDEgMS0xaDE0YTQgNCAwIDEgMSAwIDhoLTEifV0sWyJwYXRoIix7ZDoiTTYgMnYyIn1dXX0pO3ZhciBHZyxiZmU9bigoKT0+e0dnPVtbImNpcmNsZSIse2N4OiI4IixjeToiOCIscjoiNiJ9XSxbInBhdGgiLHtkOiJNMTguMDkgMTAuMzdBNiA2IDAgMSAxIDEwLjM0IDE4In1dLFsicGF0aCIse2Q6Ik03IDZoMXY0In1dLFsicGF0aCIse2Q6Im0xNi43MSAxMy44OC43LjcxLTIuODIgMi44MiJ9XV19KTt2YXIgWWcsdmZlPW4oKCk9PntZZz1bWyJwYXRoIix7ZDoiTTExIDEwLjI3IDcgMy4zNCJ9XSxbInBhdGgiLHtkOiJtMTEgMTMuNzMtNCA2LjkzIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMmg4In1dLFsicGF0aCIse2Q6Im0xNyAyMC42Ni0xLTEuNzMifV0sWyJwYXRoIix7ZDoibTE3IDMuMzQtMSAxLjczIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoibTIwLjY2IDE3LTEuNzMtMSJ9XSxbInBhdGgiLHtkOiJtMjAuNjYgNy0xLjczIDEifV0sWyJwYXRoIix7ZDoibTMuMzQgMTcgMS43My0xIn1dLFsicGF0aCIse2Q6Im0zLjM0IDcgMS43MyAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiOCJ9XV19KTt2YXIgVzAseWZlPW4oKCk9PntXMD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XV19KTt2YXIgUGksd2ZlPW4oKCk9PntQaT1bWyJwYXRoIix7ZDoiTTEwLjUgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjUuNSJ9XSxbInBhdGgiLHtkOiJtMTQuMyAxOS42IDEtLjQifV0sWyJwYXRoIix7ZDoiTTE1IDN2Ny41In1dLFsicGF0aCIse2Q6Im0xNS4yIDE2LjktLjktLjMifV0sWyJwYXRoIix7ZDoibTE2LjYgMjEuNy4zLS45In1dLFsicGF0aCIse2Q6Im0xNi44IDE1LjMtLjQtMSJ9XSxbInBhdGgiLHtkOiJtMTkuMSAxNS4yLjMtLjkifV0sWyJwYXRoIix7ZDoibTE5LjYgMjEuNy0uNC0xIn1dLFsicGF0aCIse2Q6Im0yMC43IDE2LjggMS0uNCJ9XSxbInBhdGgiLHtkOiJtMjEuNyAxOS40LS45LS4zIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgRzAsTWZlPW4oKCk9PntHMD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXX0pO3ZhciBaZyx6ZmU9bigoKT0+e1pnPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03LjUgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTYuNSAzdjE4In1dXX0pO3ZhciBYZyxrZmU9bigoKT0+e1hnPVtbInBhdGgiLHtkOiJNMTQgM2ExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJNMTkgM2ExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJtNyAxNSAzIDMifV0sWyJwYXRoIix7ZDoibTcgMjEgMy0zSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dXX0pO3ZhciBRZyxTZmU9bigoKT0+e1FnPVtbInBhdGgiLHtkOiJNMTUgNnYxMmEzIDMgMCAxIDAgMy0zSDZhMyAzIDAgMSAwIDMgM1Y2YTMgMyAwIDEgMC0zIDNoMTJhMyAzIDAgMSAwLTMtMyJ9XV19KTt2YXIgS2csQ2ZlPW4oKCk9PntLZz1bWyJwYXRoIix7ZDoibTE2LjI0IDcuNzYtMS44MDQgNS40MTFhMiAyIDAgMCAxLTEuMjY1IDEuMjY1TDcuNzYgMTYuMjRsMS44MDQtNS40MTFhMiAyIDAgMCAxIDEuMjY1LTEuMjY1eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgSmcsTGZlPW4oKCk9PntKZz1bWyJwYXRoIix7ZDoiTTE1LjUzNiAxMS4yOTNhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzYgMi4zNzdhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzdhMSAxIDAgMCAwIDAtMS40MTRsLTIuMzc3LTIuMzc3YTEgMSAwIDAgMC0xLjQxNCAweiJ9XSxbInBhdGgiLHtkOiJNMi4yOTcgMTEuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc3IDIuMzc3YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc3YTEgMSAwIDAgMCAwLTEuNDE0TDYuMDg4IDguOTE2YTEgMSAwIDAgMC0xLjQxNCAweiJ9XSxbInBhdGgiLHtkOiJNOC45MTYgMTcuOTEyYTEgMSAwIDAgMCAwIDEuNDE1bDIuMzc3IDIuMzc2YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc2YTEgMSAwIDAgMCAwLTEuNDE1bC0yLjM3Ny0yLjM3NmExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTguOTE2IDQuNjc0YTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc3IDIuMzc2YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc2YTEgMSAwIDAgMCAwLTEuNDE0bC0yLjM3Ny0yLjM3N2ExIDEgMCAwIDAtMS40MTQgMHoifV1dfSk7dmFyIGV4LFRmZT1uKCgpPT57ZXg9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI4Iix4OiI1Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDE4aDIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aDYifV1dfSk7dmFyIHR4LF9mZT1uKCgpPT57dHg9W1sicGF0aCIse2Q6Ik0zIDIwYTEgMSAwIDAgMS0xLTF2LTFhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMVoifV0sWyJwYXRoIix7ZDoiTTIwIDE2YTggOCAwIDEgMC0xNiAwIn1dLFsicGF0aCIse2Q6Ik0xMiA0djQifV0sWyJwYXRoIix7ZDoiTTEwIDRoNCJ9XV19KTt2YXIgYXgsQWZlPW4oKCk9PntheD1bWyJwYXRoIix7ZDoibTIwLjkgMTguNTUtOC0xNS45OGExIDEgMCAwIDAtMS44IDBsLTggMTUuOTgifV0sWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiMTkiLHJ4OiI5IixyeToiMyJ9XV19KTt2YXIgcngsJGZlPW4oKCk9PntyeD1bWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjIwIixoZWlnaHQ6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHY3In1dLFsicGF0aCIse2Q6Ik03IDE0djcifV0sWyJwYXRoIix7ZDoiTTE3IDN2MyJ9XSxbInBhdGgiLHtkOiJNNyAzdjMifV0sWyJwYXRoIix7ZDoiTTEwIDE0IDIuMyA2LjMifV0sWyJwYXRoIix7ZDoibTE0IDYgNy43IDcuNyJ9XSxbInBhdGgiLHtkOiJtOCA2IDggOCJ9XV19KTt2YXIgWTAsRGZlPW4oKCk9PntZMD1bWyJwYXRoIix7ZDoiTTE2IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTcuOTE1IDIyYTYgNiAwIDAgMC0xMiAwIn1dLFsicGF0aCIse2Q6Ik04IDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicmVjdCIse3g6IjMiLHk6IjQiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIGl4LEVmZT1uKCgpPT57aXg9W1sicGF0aCIse2Q6Ik0xNiAydjIifV0sWyJwYXRoIix7ZDoiTTcgMjJ2LTJhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNOCAydjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiMyJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBveCxOZmU9bigoKT0+e294PVtbInBhdGgiLHtkOiJNMjIgNy43YzAtLjYtLjQtMS4yLS44LTEuNWwtNi4zLTMuOWExLjcyIDEuNzIgMCAwIDAtMS43IDBsLTEwLjMgNmMtLjUuMi0uOS44LS45IDEuNHY2LjZjMCAuNS40IDEuMi44IDEuNWw2LjMgMy45YTEuNzIgMS43MiAwIDAgMCAxLjcgMGwxMC4zLTZjLjUtLjMuOS0xIC45LTEuNVoifV0sWyJwYXRoIix7ZDoiTTEwIDIxLjlWMTRMMi4xIDkuMSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgMTEuOS02LjkifV0sWyJwYXRoIix7ZDoiTTE0IDE5Ljh2LTguMSJ9XSxbInBhdGgiLHtkOiJNMTggMTcuNVY5LjQifV1dfSk7dmFyIHN4LFBmZT1uKCgpPT57c3g9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGE2IDYgMCAwIDAgMC0xMnYxMnoifV1dfSk7dmFyIG54LElmZT1uKCgpPT57bng9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMSAwIDEwIDEwIDQgNCAwIDAgMS01LTUgNCA0IDAgMCAxLTUtNSJ9XSxbInBhdGgiLHtkOiJNOC41IDguNXYuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1LjV2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYuMDEifV0sWyJwYXRoIix7ZDoiTTExIDE3di4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxNHYuMDEifV1dfSk7dmFyIGx4LEZmZT1uKCgpPT57bHg9W1sicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAxMnY4YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi04In1dLFsicGF0aCIse2Q6Im00IDggMTYtNCJ9XSxbInBhdGgiLHtkOiJtOC44NiA2Ljc4LS40NS0xLjgxYTIgMiAwIDAgMSAxLjQ1LTIuNDNsMS45NC0uNDhhMiAyIDAgMCAxIDIuNDMgMS40NmwuNDUgMS44In1dXX0pO3ZhciBjeCxPZmU9bigoKT0+e2N4PVtbInBhdGgiLHtkOiJtMTIgMTUgMiAyIDQtNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXX0pO3ZhciBkeCxCZmU9bigoKT0+e2R4PVtbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE1Iix5MjoiMTUifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgZngsUmZlPW4oKCk9PntmeD1bWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUiLHkxOiIxMiIseTI6IjE4In1dLFsibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTUiLHkyOiIxNSJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXX0pO3ZhciB1eCxIZmU9bigoKT0+e3V4PVtbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE4Iix5MjoiMTIifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgcHgscWZlPW4oKCk9PntweD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV19KTt2YXIgaHgsVmZlPW4oKCk9PntoeD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxMiIseTI6IjE4In1dLFsibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTgiLHkyOiIxMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXX0pO3ZhciBteCxVZmU9bigoKT0+e214PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOS4xNyAxNC44M2E0IDQgMCAxIDAgMC01LjY2In1dXX0pO3ZhciBneCxqZmU9bigoKT0+e2d4PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTQuODMgMTQuODNhNCA0IDAgMSAxIDAtNS42NiJ9XV19KTt2YXIgeHgsV2ZlPW4oKCk9Pnt4eD1bWyJwYXRoIix7ZDoibTE1IDEwIDUgNS01IDUifV0sWyJwYXRoIix7ZDoiTTQgNHY3YTQgNCAwIDAgMCA0IDRoMTIifV1dfSk7dmFyIGJ4LEdmZT1uKCgpPT57Yng9W1sicGF0aCIse2Q6Ik0yMCA0djdhNCA0IDAgMCAxLTQgNEg0In1dLFsicGF0aCIse2Q6Im05IDEwLTUgNSA1IDUifV1dfSk7dmFyIHZ4LFlmZT1uKCgpPT57dng9W1sicGF0aCIse2Q6Im0xNCAxNS01IDUtNS01In1dLFsicGF0aCIse2Q6Ik0yMCA0aC03YTQgNCAwIDAgMC00IDR2MTIifV1dfSk7dmFyIHl4LFpmZT1uKCgpPT57eXg9W1sicGF0aCIse2Q6Ik0xNCA5IDkgNCA0IDkifV0sWyJwYXRoIix7ZDoiTTIwIDIwaC03YTQgNCAwIDAgMS00LTRWNCJ9XV19KTt2YXIgd3gsWGZlPW4oKCk9Pnt3eD1bWyJwYXRoIix7ZDoibTEwIDE1IDUgNSA1LTUifV0sWyJwYXRoIix7ZDoiTTQgNGg3YTQgNCAwIDAgMSA0IDR2MTIifV1dfSk7dmFyIE14LFFmZT1uKCgpPT57TXg9W1sicGF0aCIse2Q6Im0xMCA5IDUtNSA1IDUifV0sWyJwYXRoIix7ZDoiTTQgMjBoN2E0IDQgMCAwIDAgNC00VjQifV1dfSk7dmFyIHp4LEtmZT1uKCgpPT57eng9W1sicGF0aCIse2Q6Ik0yMCAyMHYtN2E0IDQgMCAwIDAtNC00SDQifV0sWyJwYXRoIix7ZDoiTTkgMTQgNCA5bDUtNSJ9XV19KTt2YXIga3gsSmZlPW4oKCk9PntreD1bWyJwYXRoIix7ZDoibTE1IDE0IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTQgMjB2LTdhNCA0IDAgMCAxIDQtNGgxMiJ9XV19KTt2YXIgU3gsZXVlPW4oKCk9PntTeD1bWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTcgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTcgMnYyIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMiA3aDIifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE3aDIifV0sWyJwYXRoIix7ZDoiTTIwIDdoMiJ9XSxbInBhdGgiLHtkOiJNNyAyMHYyIn1dLFsicGF0aCIse2Q6Ik03IDJ2MiJ9XSxbInJlY3QiLHt4OiI0Iix5OiI0Iix3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjgiLHk6IjgiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXX0pO3ZhciBDeCx0dWU9bigoKT0+e0N4PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTAgOS4zYTIuOCAyLjggMCAwIDAtMy41IDEgMy4xIDMuMSAwIDAgMCAwIDMuNCAyLjcgMi43IDAgMCAwIDMuNSAxIn1dLFsicGF0aCIse2Q6Ik0xNyA5LjNhMi44IDIuOCAwIDAgMC0zLjUgMSAzLjEgMy4xIDAgMCAwIDAgMy40IDIuNyAyLjcgMCAwIDAgMy41IDEifV1dfSk7dmFyIEx4LGF1ZT1uKCgpPT57THg9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjEwIix5MjoiMTAifV1dfSk7dmFyIFR4LHJ1ZT1uKCgpPT57VHg9W1sicGF0aCIse2Q6Ik0xMC4yIDE4SDQuNzc0YTEuNSAxLjUgMCAwIDEtMS4zNTItLjk3IDExIDExIDAgMCAxIC4xMzItNi40ODcifV0sWyJwYXRoIix7ZDoiTTE4IDEwLjJWNC43NzRhMS41IDEuNSAwIDAgMC0uOTctMS4zNTIgMTEgMTEgMCAwIDAtNi40ODYuMTMyIn1dLFsicGF0aCIse2Q6Ik0xOCA1YTQgMyAwIDAgMSA0IDMgMiAyIDAgMCAxLTIgMiAxMCAxMCAwIDAgMC01LjEzOSAxLjQyIn1dLFsicGF0aCIse2Q6Ik01IDE4YTMgNCAwIDAgMCAzIDQgMiAyIDAgMCAwIDItMiAxMCAxMCAwIDAgMSAxLjQyLTUuMTQifV0sWyJwYXRoIix7ZDoiTTguNzA5IDIuNTU0YTEwIDEwIDAgMCAwLTYuMTU1IDYuMTU1IDEuNSAxLjUgMCAwIDAgLjY3NiAxLjYyNmw5LjgwNyA1LjQyYTIgMiAwIDAgMCAyLjcxOC0yLjcxOGwtNS40Mi05LjgwN2ExLjUgMS41IDAgMCAwLTEuNjI2LS42NzYifV1dfSk7dmFyIF94LGl1ZT1uKCgpPT57X3g9W1sicGF0aCIse2Q6Ik02IDJ2MTRhMiAyIDAgMCAwIDIgMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTggMjJWOGEyIDIgMCAwIDAtMi0ySDIifV1dfSk7dmFyIEF4LG91ZT1uKCgpPT57QXg9W1sicGF0aCIse2Q6Ik00IDlhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoNGExIDEgMCAwIDEgMSAxdjRhMiAyIDAgMCAwIDIgMmgyYTIgMiAwIDAgMCAyLTJ2LTRhMSAxIDAgMCAxIDEtMWg0YTIgMiAwIDAgMCAyLTJ2LTJhMiAyIDAgMCAwLTItMmgtNGExIDEgMCAwIDEtMS0xVjRhMiAyIDAgMCAwLTItMmgtMmEyIDIgMCAwIDAtMiAydjRhMSAxIDAgMCAxLTEgMXoifV1dfSk7dmFyICR4LHN1ZT1uKCgpPT57JHg9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiIyMiIseDI6IjE4Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjIiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiNiIseTI6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjE4In1dXX0pO3ZhciBEeCxudWU9bigoKT0+e0R4PVtbInBhdGgiLHtkOiJNMTEuNTYyIDMuMjY2YS41LjUgMCAwIDEgLjg3NiAwTDE1LjM5IDguODdhMSAxIDAgMCAwIDEuNTE2LjI5NEwyMS4xODMgNS41YS41LjUgMCAwIDEgLjc5OC41MTlsLTIuODM0IDEwLjI0NmExIDEgMCAwIDEtLjk1Ni43MzRINS44MWExIDEgMCAwIDEtLjk1Ny0uNzM0TDIuMDIgNi4wMmEuNS41IDAgMCAxIC43OTgtLjUxOWw0LjI3NiAzLjY2NGExIDEgMCAwIDAgMS41MTYtLjI5NHoifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dfSk7dmFyIEV4LGx1ZT1uKCgpPT57RXg9W1sicGF0aCIse2Q6Im0yMS4xMiA2LjQtNi4wNS00LjA2YTIgMiAwIDAgMC0yLjE3LS4wNUwyLjk1IDguNDFhMiAyIDAgMCAwLS45NSAxLjd2NS44MmEyIDIgMCAwIDAgLjg4IDEuNjZsNi4wNSA0LjA3YTIgMiAwIDAgMCAyLjE3LjA1bDkuOTUtNi4xMmEyIDIgMCAwIDAgLjk1LTEuN1Y4LjA2YTIgMiAwIDAgMC0uODgtMS42NloifV0sWyJwYXRoIix7ZDoiTTEwIDIydi04TDIuMjUgOS4xNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgMTEuNzctNi44NyJ9XV19KTt2YXIgTngsY3VlPW4oKCk9PntOeD1bWyJwYXRoIix7ZDoibTYgOCAxLjc1IDEyLjI4YTIgMiAwIDAgMCAyIDEuNzJoNC41NGEyIDIgMCAwIDAgMi0xLjcyTDE4IDgifV0sWyJwYXRoIix7ZDoiTTUgOGgxNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWE2LjQ3IDYuNDcgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAifV0sWyJwYXRoIix7ZDoibTEyIDggMS02aDIifV1dfSk7dmFyIFB4LGR1ZT1uKCgpPT57UHg9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjgifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI2Iix5MToiMyIseTI6IjYifV0sWyJsaW5lIix7eDE6IjIxIix4MjoiMTgiLHkxOiIzIix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjYiLHkxOiIyMSIseTI6IjE4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE4Iix5MToiMjEiLHkyOiIxOCJ9XV19KTt2YXIgSXgsZnVlPW4oKCk9PntJeD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDE4IDBWNSJ9XV19KTt2YXIgRngsdXVlPW4oKCk9PntGeD1bWyJwYXRoIix7ZDoiTTExIDExLjMxYzEuMTcuNTYgMS41NCAxLjY5IDMuNSAxLjY5IDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNMTEuNzUgMThjLjM1LjUgMS40NSAxIDIuNzUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik03IDNhMSAxIDAgMCAwLTEgMXYxNmExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMUwxMCA0YTEgMSAwIDAgMC0xLTF6In1dXX0pO3ZhciBPeCxwdWU9bigoKT0+e094PVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSAzIDAgMCAwIDUgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEgOS4zVjUifV0sWyJwYXRoIix7ZDoiTTMgNXYxNGE5IDMgMCAwIDAgNi40NyAyLjg4In1dLFsicGF0aCIse2Q6Ik0xMiAxMnY0aDQifV0sWyJwYXRoIix7ZDoiTTEzIDIwYTUgNSAwIDAgMCA5LTMgNC41IDQuNSAwIDAgMC00LjUtNC41Yy0xLjMzIDAtMi41NC41NC0zLjQxIDEuNDFMMTIgMTYifV1dfSk7dmFyIEJ4LGh1ZT1uKCgpPT57Qng9W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1VjE5QTkgMyAwIDAgMCAxNSAyMS44NCJ9XSxbInBhdGgiLHtkOiJNMjEgNVY4In1dLFsicGF0aCIse2Q6Ik0yMSAxMkwxOCAxN0gyMkwxOSAyMiJ9XSxbInBhdGgiLHtkOiJNMyAxMkE5IDMgMCAwIDAgMTQuNTkgMTQuODcifV1dfSk7dmFyIFJ4LG11ZT1uKCgpPT57Ung9W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1VjE5QTkgMyAwIDAgMCAyMSAxOVY1In1dLFsicGF0aCIse2Q6Ik0zIDEyQTkgMyAwIDAgMCAyMSAxMiJ9XV19KTt2YXIgSHgsZ3VlPW4oKCk9PntIeD1bWyJwYXRoIix7ZDoibTEzIDIxLTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTIwIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt4OiI2Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dXX0pO3ZhciBxeCx4dWU9bigoKT0+e3F4PVtbInBhdGgiLHtkOiJNMTAgMThoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxIDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTMgMTFoLjAxIn1dLFsicmVjdCIse3g6IjE1Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dLFsicmVjdCIse3g6IjYiLHk6IjMiLHdpZHRoOiI1IixoZWlnaHQ6IjgiLHJ4OiIyLjUifV1dfSk7dmFyIFZ4LGJ1ZT1uKCgpPT57Vng9W1sicGF0aCIse2Q6Ik0xMCA1YTIgMiAwIDAgMC0xLjM0NC41MTlsLTYuMzI4IDUuNzRhMSAxIDAgMCAwIDAgMS40ODFsNi4zMjggNS43NDFBMiAyIDAgMCAwIDEwIDE5aDEwYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yeiJ9XSxbInBhdGgiLHtkOiJtMTIgOSA2IDYifV0sWyJwYXRoIix7ZDoibTE4IDktNiA2In1dXX0pO3ZhciBVeCx2dWU9bigoKT0+e1V4PVtbInBhdGgiLHtkOiJNMTAuMTYyIDMuMTY3QTEwIDEwIDAgMCAwIDIgMTNhMiAyIDAgMCAwIDQgMHYtMWEyIDIgMCAwIDEgNCAwdjRhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAwIDQtLjAwNiAxMCAxMCAwIDAgMC04LjE2MS05LjgyNiJ9XSxbInBhdGgiLHtkOiJNMjAuODA0IDE0Ljg2OWE5IDkgMCAwIDEtMTcuNjA4IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dXX0pO3ZhciBqeCx5dWU9bigoKT0+e2p4PVtbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIyIn1dLFsicGF0aCIse2Q6Ik02LjQ4IDMuNjZhMTAgMTAgMCAwIDEgMTMuODYgMTMuODYifV0sWyJwYXRoIix7ZDoibTYuNDEgNi40MSAxMS4xOCAxMS4xOCJ9XSxbInBhdGgiLHtkOiJNMy42NiA2LjQ4YTEwIDEwIDAgMCAwIDEzLjg2IDEzLjg2In1dXX0pO3ZhciBXeCx3dWU9bigoKT0+e1d4PVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV19KTt2YXIgWjAsTXVlPW4oKCk9PntaMD1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dLFsicGF0aCIse2Q6Ik05LjIgOS4yaC4wMSJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Ik0xNC43IDE0LjhoLjAxIn1dXX0pO3ZhciBHeCx6dWU9bigoKT0+e0d4PVtbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Ik0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAweiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBZeCxrdWU9bigoKT0+e1l4PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXX0pO3ZhciBaeCxTdWU9bigoKT0+e1p4PVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MWwtNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dXX0pO3ZhciBYeCxDdWU9bigoKT0+e1h4PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV0sWyJwYXRoIix7ZDoiTTkgMTVoLjAxIn1dXX0pO3ZhciBReCxMdWU9bigoKT0+e1F4PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIEt4LFR1ZT1uKCgpPT57S3g9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXX0pO3ZhciBKeCxfdWU9bigoKT0+e0p4PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dfSk7dmFyIGViLEF1ZT1uKCgpPT57ZWI9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XV19KTt2YXIgdGIsJHVlPW4oKCk9Pnt0Yj1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjEyIix4OiIyIix5OiIxMCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Im0xNy45MiAxNCAzLjUtMy41YTIuMjQgMi4yNCAwIDAgMCAwLTNsLTUtNC45MmEyLjI0IDIuMjQgMCAwIDAtMyAwTDEwIDYifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA5aC4wMSJ9XV19KTt2YXIgYWIsRHVlPW4oKCk9PnthYj1bWyJwYXRoIix7ZDoiTTEyIDN2MTQifV0sWyJwYXRoIix7ZDoiTTUgMTBoMTQifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dfSk7dmFyIHJiLEV1ZT1uKCgpPT57cmI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV19KTt2YXIgaWIsTnVlPW4oKCk9PntpYj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTYgMTJjMC0xLjcuNy0zLjIgMS44LTQuMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmMwIDEuNy0uNyAzLjItMS44IDQuMiJ9XV19KTt2YXIgb2IsUHVlPW4oKCk9PntvYj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dfSk7dmFyIHNiLEl1ZT1uKCgpPT57c2I9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIG5iLEZ1ZT1uKCgpPT57bmI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTIiLHkyOiIxMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiIxIn1dXX0pO3ZhciBsYixPdWU9bigoKT0+e2xiPVtbInBhdGgiLHtkOiJNMTUgMmMtMS4zNSAxLjUtMi4wOTIgMy0yLjUgNC41TDE0IDgifV0sWyJwYXRoIix7ZDoibTE3IDYtMi44OTEtMi44OTEifV0sWyJwYXRoIix7ZDoiTTIgMTVjMy4zMzMtMyA2LjY2Ny0zIDEwLTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJtMjAgOSAuODkxLjg5MSJ9XSxbInBhdGgiLHtkOiJNMjIgOWMtMS41IDEuMzUtMyAyLjA5Mi00LjUgMi41bC0xLTEifV0sWyJwYXRoIix7ZDoiTTMuMTA5IDE0LjEwOSA0IDE1In1dLFsicGF0aCIse2Q6Im02LjUgMTIuNSAxIDEifV0sWyJwYXRoIix7ZDoibTcgMTggMi44OTEgMi44OTEifV0sWyJwYXRoIix7ZDoiTTkgMjJjMS4zNS0xLjUgMi4wOTItMyAyLjUtNC41TDEwIDE2In1dXX0pO3ZhciBjYixCdWU9bigoKT0+e2NiPVtbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMTZoMTIifV1dfSk7dmFyIGRiLFJ1ZT1uKCgpPT57ZGI9W1sicGF0aCIse2Q6Im0xMCAxNiAxLjUgMS41In1dLFsicGF0aCIse2Q6Im0xNCA4LTEuNS0xLjUifV0sWyJwYXRoIix7ZDoiTTE1IDJjLTEuNzk4IDEuOTk4LTIuNTE4IDMuOTk1LTIuODA3IDUuOTkzIn1dLFsicGF0aCIse2Q6Im0xNi41IDEwLjUgMSAxIn1dLFsicGF0aCIse2Q6Im0xNyA2LTIuODkxLTIuODkxIn1dLFsicGF0aCIse2Q6Ik0yIDE1YzYuNjY3LTYgMTMuMzMzIDAgMjAtNiJ9XSxbInBhdGgiLHtkOiJtMjAgOSAuODkxLjg5MSJ9XSxbInBhdGgiLHtkOiJNMy4xMDkgMTQuMTA5IDQgMTUifV0sWyJwYXRoIix7ZDoibTYuNSAxMi41IDEgMSJ9XSxbInBhdGgiLHtkOiJtNyAxOCAyLjg5MSAyLjg5MSJ9XSxbInBhdGgiLHtkOiJNOSAyMmMxLjc5OC0xLjk5OCAyLjUxOC0zLjk5NSAyLjgwNy01Ljk5MyJ9XV19KTt2YXIgZmIsSHVlPW4oKCk9PntmYj1bWyJwYXRoIix7ZDoiTTExLjI1IDE2LjI1aDEuNUwxMiAxN3oifV0sWyJwYXRoIix7ZDoiTTE2IDE0di41In1dLFsicGF0aCIse2Q6Ik00LjQyIDExLjI0N0ExMy4xNTIgMTMuMTUyIDAgMCAwIDQgMTQuNTU2QzQgMTguNzI4IDcuNTgyIDIxIDEyIDIxczgtMi4yNzIgOC02LjQ0NGExMS43MDIgMTEuNzAyIDAgMCAwLS40OTMtMy4zMDkifV0sWyJwYXRoIix7ZDoiTTggMTR2LjUifV0sWyJwYXRoIix7ZDoiTTguNSA4LjVjLS4zODQgMS4wNS0xLjA4MyAyLjAyOC0yLjM0NCAyLjUtMS45MzEuNzIyLTMuNTc2LS4yOTctMy42NTYtMS0uMTEzLS45OTQgMS4xNzctNi41MyA0LTcgMS45MjMtLjMyMSAzLjY1MS44NDUgMy42NTEgMi4yMzVBNy40OTcgNy40OTcgMCAwIDEgMTQgNS4yNzdjMC0xLjM5IDEuODQ0LTIuNTk4IDMuNzY3LTIuMjc3IDIuODIzLjQ3IDQuMTEzIDYuMDA2IDQgNy0uMDguNzAzLTEuNzI1IDEuNzIyLTMuNjU2IDEtMS4yNjEtLjQ3Mi0xLjg1NS0xLjQ1LTIuMjM5LTIuNSJ9XV19KTt2YXIgdWIscXVlPW4oKCk9Pnt1Yj1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiMjIifV0sWyJwYXRoIix7ZDoiTTE3IDVIOS41YTMuNSAzLjUgMCAwIDAgMCA3aDVhMy41IDMuNSAwIDAgMSAwIDdINiJ9XV19KTt2YXIgcGIsVnVlPW4oKCk9PntwYj1bWyJwYXRoIix7ZDoiTTIwLjUgMTBhMi41IDIuNSAwIDAgMS0yLjQtM0gxOGEyLjk1IDIuOTUgMCAwIDEtMi42LTQuNCAxMCAxMCAwIDEgMCA2LjMgNy4xYy0uMy4yLS44LjMtMS4yLjMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV19KTt2YXIgaGIsVXVlPW4oKCk9PntoYj1bWyJwYXRoIix7ZDoiTTEwIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOVY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0yIDIwaDgifV0sWyJwYXRoIix7ZDoiTTIwIDE3di0yYTIgMiAwIDEgMC00IDB2MiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMTciLHdpZHRoOiI4IixoZWlnaHQ6IjUiLHJ4OiIxIn1dXX0pO3ZhciBtYixqdWU9bigoKT0+e21iPVtbInBhdGgiLHtkOiJNMTAgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAyMFY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0yIDIwaDIwIn1dXX0pO3ZhciBnYixXdWU9bigoKT0+e2diPVtbImNpcmNsZSIse2N4OiIxMi4xIixjeToiMTIuMSIscjoiMSJ9XV19KTt2YXIgeGIsR3VlPW4oKCk9Pnt4Yj1bWyJwYXRoIix7ZDoiTTExIDIwSDIifV0sWyJwYXRoIix7ZDoiTTExIDQuNTYydjE2LjE1N2ExIDEgMCAwIDAgMS4yNDIuOTdMMTkgMjBWNS41NjJhMiAyIDAgMCAwLTEuNTE1LTEuOTRsLTQtMUEyIDIgMCAwIDAgMTEgNC41NjF6In1dLFsicGF0aCIse2Q6Ik0xMSA0SDhhMiAyIDAgMCAwLTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMiAyMGgtMyJ9XV19KTt2YXIgYmIsWXVlPW4oKCk9PntiYj1bWyJwYXRoIix7ZDoiTTEyIDE1VjMifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV0sWyJwYXRoIix7ZDoibTcgMTAgNSA1IDUtNSJ9XV19KTt2YXIgdmIsWnVlPW4oKCk9Pnt2Yj1bWyJwYXRoIix7ZDoibTEyLjk5IDYuNzQgMS45MyAzLjQ0In1dLFsicGF0aCIse2Q6Ik0xOS4xMzYgMTJhMTAgMTAgMCAwIDEtMTQuMjcxIDAifV0sWyJwYXRoIix7ZDoibTIxIDIxLTIuMTYtMy44NCJ9XSxbInBhdGgiLHtkOiJtMyAyMSA4LjAyLTE0LjI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XV19KTt2YXIgeWIsWHVlPW4oKCk9Pnt5Yj1bWyJwYXRoIix7ZDoiTTEwIDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgNmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjUgMTMuMWguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDVjMCA5LTQgMTItNiAxMnMtNi0zLTYtMTJjMC0yIDItMyA2LTNzNiAxIDYgMyJ9XSxbInBhdGgiLHtkOiJNMTcuNCA5LjljLS44LjgtMiAuOC0yLjggMCJ9XSxbInBhdGgiLHtkOiJNMTAuMSA3LjFDOSA3LjIgNy43IDcuNyA2IDguNmMtMy41IDItNC43IDMuOS0zLjcgNS42IDQuNSA3LjggOS41IDguNCAxMS4yIDcuNC45LS41IDEuOS0yLjEgMS45LTQuNyJ9XSxbInBhdGgiLHtkOiJNOS4xIDE2LjVjLjMtMS4xIDEuNC0xLjcgMi40LTEuNCJ9XV19KTt2YXIgd2IsUXVlPW4oKCk9Pnt3Yj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE5LjEzIDUuMDlDMTUuMjIgOS4xNCAxMCAxMC40NCAyLjI1IDEwLjk0In1dLFsicGF0aCIse2Q6Ik0yMS43NSAxMi44NGMtNi42Mi0xLjQxLTEyLjE0IDEtMTYuMzggNi4zMiJ9XSxbInBhdGgiLHtkOiJNOC41NiAyLjc1YzQuMzcgNiA2IDkuNDIgOCAxNy43MiJ9XV19KTt2YXIgTWIsS3VlPW4oKCk9PntNYj1bWyJwYXRoIix7ZDoiTTEwIDE4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDVhMyAzIDAgMCAxLTMtMyAxIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTMgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtMSAxbC0uODEgMy4yNDJhMSAxIDAgMCAxLS45Ny43NThIOCJ9XSxbInBhdGgiLHtkOiJNMTQgNGgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik0xOCA2aDQifV0sWyJwYXRoIix7ZDoibTUgMTAtMiA4In1dLFsicGF0aCIse2Q6Im03IDE4IDItOCJ9XV19KTt2YXIgemIsSnVlPW4oKCk9Pnt6Yj1bWyJwYXRoIix7ZDoiTTEwIDEwIDcgNyJ9XSxbInBhdGgiLHtkOiJtMTAgMTQtMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxMCAzLTMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDMgMyJ9XSxbInBhdGgiLHtkOiJNMTQuMjA1IDQuMTM5YTQgNCAwIDEgMSA1LjQzOSA1Ljg2MyJ9XSxbInBhdGgiLHtkOiJNMTkuNjM3IDE0YTQgNCAwIDEgMS01LjQzMiA1Ljg2OCJ9XSxbInBhdGgiLHtkOiJNNC4zNjcgMTBhNCA0IDAgMSAxIDUuNDM4LTUuODYyIn1dLFsicGF0aCIse2Q6Ik05Ljc5NSAxOS44NjJhNCA0IDAgMSAxLTUuNDI5LTUuODczIn1dLFsicmVjdCIse3g6IjEwIix5OiI4Iix3aWR0aDoiNCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV19KTt2YXIga2IsZXBlPW4oKCk9PntrYj1bWyJwYXRoIix7ZDoiTTE4LjcxNSAxMy4xODZDMTguMjkgMTEuODU4IDE3LjM4NCAxMC42MDcgMTYgOS41Yy0yLTEuNi0zLjUtNC00LTYuNWExMC43IDEwLjcgMCAwIDEtLjg4NCAyLjU4NiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04Ljc5NSA4Ljc5N0ExMSAxMSAwIDAgMSA4IDkuNUM2IDExLjEgNSAxMyA1IDE1YTcgNyAwIDAgMCAxMy4yMjIgMy4yMDgifV1dfSk7dmFyIFNiLHRwZT1uKCgpPT57U2I9W1sicGF0aCIse2Q6Ik0xMiAyMmE3IDcgMCAwIDAgNy03YzAtMi0xLTMuOS0zLTUuNXMtMy41LTQtNC02LjVjLS41IDIuNS0yIDQuOS00IDYuNUM2IDExLjEgNSAxMyA1IDE1YTcgNyAwIDAgMCA3IDd6In1dXX0pO3ZhciBDYixhcGU9bigoKT0+e0NiPVtbInBhdGgiLHtkOiJNNyAxNi4zYzIuMiAwIDQtMS44MyA0LTQuMDUgMC0xLjE2LS41Ny0yLjI2LTEuNzEtMy4xOVM3LjI5IDYuNzUgNyA1LjNjLS4yOSAxLjQ1LTEuMTQgMi44NC0yLjI5IDMuNzZTMyAxMS4xIDMgMTIuMjVjMCAyLjIyIDEuOCA0LjA1IDQgNC4wNXoifV0sWyJwYXRoIix7ZDoiTTEyLjU2IDYuNkExMC45NyAxMC45NyAwIDAgMCAxNCAzLjAyYy41IDIuNSAyIDQuOSA0IDYuNXMzIDMuNSAzIDUuNWE2Ljk4IDYuOTggMCAwIDEtMTEuOTEgNC45NyJ9XV19KTt2YXIgTGIscnBlPW4oKCk9PntMYj1bWyJwYXRoIix7ZDoibTIgMiA4IDgifV0sWyJwYXRoIix7ZDoibTIyIDItOCA4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjkiLHJ4OiIxMCIscnk6IjUifV0sWyJwYXRoIix7ZDoiTTcgMTMuNHY3LjkifV0sWyJwYXRoIix7ZDoiTTEyIDE0djgifV0sWyJwYXRoIix7ZDoiTTE3IDEzLjR2Ny45In1dLFsicGF0aCIse2Q6Ik0yIDl2OGExMCA1IDAgMCAwIDIwIDBWOSJ9XV19KTt2YXIgVGIsaXBlPW4oKCk9PntUYj1bWyJwYXRoIix7ZDoiTTE1LjQgMTUuNjNhNy44NzUgNiAxMzUgMSAxIDYuMjMtNi4yMyA0LjUgMy40MyAxMzUgMCAwLTYuMjMgNi4yMyJ9XSxbInBhdGgiLHtkOiJtOC4yOSAxMi43MS0yLjYgMi42YTIuNSAyLjUgMCAxIDAtMS42NSA0LjY1QTIuNSAyLjUgMCAxIDAgOC43IDE4LjNsMi41OS0yLjU5In1dXX0pO3ZhciBfYixvcGU9bigoKT0+e19iPVtbInBhdGgiLHtkOiJNMTcuNTk2IDEyLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTEuNzY4LTEuNzY3YTIgMiAwIDAgMCAyLjgyOC0yLjgyOWwtMi44MjgtMi44MjhhMiAyIDAgMCAwLTIuODI5IDIuODI4bC0xLjc2Ny0xLjc2OGEyIDIgMCAxIDAtMi44MjkgMi44Mjl6In1dLFsicGF0aCIse2Q6Im0yLjUgMjEuNSAxLjQtMS40In1dLFsicGF0aCIse2Q6Im0yMC4xIDMuOSAxLjQtMS40In1dLFsicGF0aCIse2Q6Ik01LjM0MyAyMS40ODVhMiAyIDAgMSAwIDIuODI5LTIuODI4bDEuNzY3IDEuNzY4YTIgMiAwIDEgMCAyLjgyOS0yLjgyOWwtNi4zNjQtNi4zNjRhMiAyIDAgMSAwLTIuODI5IDIuODI5bDEuNzY4IDEuNzY3YTIgMiAwIDAgMC0yLjgyOCAyLjgyOXoifV0sWyJwYXRoIix7ZDoibTkuNiAxNC40IDQuOC00LjgifV1dfSk7dmFyIEFiLHNwZT1uKCgpPT57QWI9W1sicGF0aCIse2Q6Ik02IDE4LjVhMy41IDMuNSAwIDEgMCA3IDBjMC0xLjU3LjkyLTIuNTIgMi4wNC0zLjQ2In1dLFsicGF0aCIse2Q6Ik02IDguNWMwLS43NS4xMy0xLjQ3LjM2LTIuMTQifV0sWyJwYXRoIix7ZDoiTTguOCAzLjE1QTYuNSA2LjUgMCAwIDEgMTkgOC41YzAgMS42My0uNDQgMi44MS0xLjA5IDMuNzYifV0sWyJwYXRoIix7ZDoiTTEyLjUgNkEyLjUgMi41IDAgMCAxIDE1IDguNU0xMCAxM2EyIDIgMCAwIDAgMS44Mi0xLjE4In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyICRiLG5wZT1uKCgpPT57JGI9W1sicGF0aCIse2Q6Ik02IDguNWE2LjUgNi41IDAgMSAxIDEzIDBjMCA2LTYgNi02IDEwYTMuNSAzLjUgMCAxIDEtNyAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4LjVhMi41IDIuNSAwIDAgMC01IDB2MWEyIDIgMCAxIDEgMCA0In1dXX0pO3ZhciBEYixscGU9bigoKT0+e0RiPVtbInBhdGgiLHtkOiJNNyAzLjM0VjVhMyAzIDAgMCAwIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSJ9XSxbInBhdGgiLHtkOiJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0In1dLFsicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMSAwIDkuNTQgMTMifV0sWyJwYXRoIix7ZDoiTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMTQiLHk6IjYiLHJ4OiIxIn1dXX0pO3ZhciBYMCxjcGU9bigoKT0+e1gwPVtbInBhdGgiLHtkOiJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0In1dLFsicGF0aCIse2Q6Ik03IDMuMzRWNWEzIDMgMCAwIDAgMyAzYTIgMiAwIDAgMSAyIDJjMCAxLjEuOSAyIDIgMmEyIDIgMCAwIDAgMi0yYzAtMS4xLjktMiAyLTJoMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgRWIsZHBlPW4oKCk9PntFYj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDJhNyA3IDAgMSAwIDEwIDEwIn1dXX0pO3ZhciBOYixmcGU9bigoKT0+e05iPVtbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTIuNSIscjoiMy41In1dLFsicGF0aCIse2Q6Ik0zIDhjMC0zLjUgMi41LTYgNi41LTYgNSAwIDQuODMgMyA3LjUgNXM1IDIgNSA2YzAgNC41LTIuNSA2LjUtNyA2LjUtMi41IDAtMi41IDIuNS02IDIuNXMtNy0yLTctNS41YzAtMyAxLjUtMyAxLjUtNUMzLjUgMTAgMyA5IDMgOFoifV1dfSk7dmFyIFBiLHVwZT1uKCgpPT57UGI9W1sicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjM0N1YxNGMwLTYtNC0xMi04LTEyLTEuMDc4IDAtMi4xNTcuNDM2LTMuMTU3IDEuMTkifV0sWyJwYXRoIix7ZDoiTTYuMjA2IDYuMjFDNC44NzEgOC40IDQgMTEuMiA0IDE0YTggOCAwIDAgMCAxNC41NjggNC41NjgifV1dfSk7dmFyIEliLHBwZT1uKCgpPT57SWI9W1sicGF0aCIse2Q6Ik0xMiAyQzggMiA0IDggNCAxNGE4IDggMCAwIDAgMTYgMGMwLTYtNC0xMi04LTEyIn1dXX0pO3ZhciBRMCxocGU9bigoKT0+e1EwPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIxIn1dXX0pO3ZhciBLMCxtcGU9bigoKT0+e0swPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjEyIixyOiIxIn1dXX0pO3ZhciBGYixncGU9bigoKT0+e0ZiPVtbInBhdGgiLHtkOiJNNSAxNWE2LjUgNi41IDAgMCAxIDcgMCA2LjUgNi41IDAgMCAwIDcgMCJ9XSxbInBhdGgiLHtkOiJNNSA5YTYuNSA2LjUgMCAwIDEgNyAwIDYuNSA2LjUgMCAwIDAgNyAwIn1dXX0pO3ZhciBPYix4cGU9bigoKT0+e09iPVtbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjE5Iix4MjoiNSIseTE6IjUiLHkyOiIxOSJ9XV19KTt2YXIgQmIsYnBlPW4oKCk9PntCYj1bWyJwYXRoIix7ZDoiTTIxIDIxSDhhMiAyIDAgMCAxLTEuNDItLjU4N2wtMy45OTQtMy45OTlhMiAyIDAgMCAxIDAtMi44MjhsMTAtMTBhMiAyIDAgMCAxIDIuODI5IDBsNS45OTkgNmEyIDIgMCAwIDEgMCAyLjgyOEwxMi44MzQgMjEifV0sWyJwYXRoIix7ZDoibTUuMDgyIDExLjA5IDguODI4IDguODI4In1dXX0pO3ZhciBSYix2cGU9bigoKT0+e1JiPVtbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjE1Iix5MjoiMTUifV1dfSk7dmFyIEhiLHlwZT1uKCgpPT57SGI9W1sicGF0aCIse2Q6Im0xNSAyMCAzLTNoMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2OWEyIDIgMCAwIDAgMiAyaDJsMyAzeiJ9XSxbInBhdGgiLHtkOiJNNiA4djEifV0sWyJwYXRoIix7ZDoiTTEwIDh2MSJ9XSxbInBhdGgiLHtkOiJNMTQgOHYxIn1dLFsicGF0aCIse2Q6Ik0xOCA4djEifV1dfSk7dmFyIHFiLHdwZT1uKCgpPT57cWI9W1sicGF0aCIse2Q6Ik00IDEwaDEyIn1dLFsicGF0aCIse2Q6Ik00IDE0aDkifV0sWyJwYXRoIix7ZDoiTTE5IDZhNy43IDcuNyAwIDAgMC01LjItMkE3LjkgNy45IDAgMCAwIDYgMTJjMCA0LjQgMy41IDggNy44IDggMiAwIDMuOC0uOCA1LjItMiJ9XV19KTt2YXIgVmIsTXBlPW4oKCk9PntWYj1bWyJwYXRoIix7ZDoiTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1In1dLFsicGF0aCIse2Q6Ik0xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDEzIn1dLFsicGF0aCIse2Q6Ik0zIDdoMTEifV0sWyJwYXRoIix7ZDoibTkgMTEtMiAzaDNsLTIgMyJ9XV19KTt2YXIgVWIsenBlPW4oKCk9PntVYj1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyMSAzIn1dLFsicGF0aCIse2Q6Ik0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2In1dXX0pO3ZhciBqYixrcGU9bigoKT0+e2piPVtbInBhdGgiLHtkOiJtMTUgMTUgNiA2In1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dLFsicGF0aCIse2Q6Ik0zIDE2djVoNSJ9XSxbInBhdGgiLHtkOiJtMyAyMSA2LTYifV0sWyJwYXRoIix7ZDoiTTMgOFYzaDUifV0sWyJwYXRoIix7ZDoiTTkgOSAzIDMifV1dfSk7dmFyIFdiLFNwZT1uKCgpPT57V2I9W1sicGF0aCIse2Q6Im0xNSAxOC0uNzIyLTMuMjUifV0sWyJwYXRoIix7ZDoiTTIgOGExMC42NDUgMTAuNjQ1IDAgMCAwIDIwIDAifV0sWyJwYXRoIix7ZDoibTIwIDE1LTEuNzI2LTIuMDUifV0sWyJwYXRoIix7ZDoibTQgMTUgMS43MjYtMi4wNSJ9XSxbInBhdGgiLHtkOiJtOSAxOCAuNzIyLTMuMjUifV1dfSk7dmFyIEdiLENwZT1uKCgpPT57R2I9W1sicGF0aCIse2Q6Ik0xMC43MzMgNS4wNzZhMTAuNzQ0IDEwLjc0NCAwIDAgMSAxMS4yMDUgNi41NzUgMSAxIDAgMCAxIDAgLjY5NiAxMC43NDcgMTAuNzQ3IDAgMCAxLTEuNDQ0IDIuNDkifV0sWyJwYXRoIix7ZDoiTTE0LjA4NCAxNC4xNThhMyAzIDAgMCAxLTQuMjQyLTQuMjQyIn1dLFsicGF0aCIse2Q6Ik0xNy40NzkgMTcuNDk5YTEwLjc1IDEwLjc1IDAgMCAxLTE1LjQxNy01LjE1MSAxIDEgMCAwIDEgMC0uNjk2IDEwLjc1IDEwLjc1IDAgMCAxIDQuNDQ2LTUuMTQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIFliLExwZT1uKCgpPT57WWI9W1sicGF0aCIse2Q6Ik0yLjA2MiAxMi4zNDhhMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSAxOS44NzYgMCAxIDEgMCAwIDEgMCAuNjk2IDEwLjc1IDEwLjc1IDAgMCAxLTE5Ljg3NiAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dfSk7dmFyIFpiLFRwZT1uKCgpPT57WmI9W1sicGF0aCIse2Q6Ik0xMiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxOWEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWOC41YS41LjUgMCAwIDAtLjc2OS0uNDIybC00LjQ2MiAyLjg0NEEuNS41IDAgMCAxIDE1IDEwLjV2LTJhLjUuNSAwIDAgMC0uNzY5LS40MjJMOS43NyAxMC45MjJBLjUuNSAwIDAgMSA5IDEwLjVWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnoifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dXX0pO3ZhciBYYixfcGU9bigoKT0+e1hiPVtbInBhdGgiLHtkOiJNMTggMmgtM2E1IDUgMCAwIDAtNSA1djNIN3Y0aDN2OGg0di04aDNsMS00aC00VjdhMSAxIDAgMCAxIDEtMWgzeiJ9XV19KTt2YXIgUWIsQXBlPW4oKCk9PntRYj1bWyJwYXRoIix7ZDoiTTEwLjgyNyAxNi4zNzlhNi4wODIgNi4wODIgMCAwIDEtOC42MTgtNy4wMDJsNS40MTIgMS40NWE2LjA4MiA2LjA4MiAwIDAgMSA3LjAwMi04LjYxOGwtMS40NSA1LjQxMmE2LjA4MiA2LjA4MiAwIDAgMSA4LjYxOCA3LjAwMmwtNS40MTItMS40NWE2LjA4MiA2LjA4MiAwIDAgMS03LjAwMiA4LjYxOGwxLjQ1LTUuNDEyWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LjAxIn1dXX0pO3ZhciBLYiwkcGU9bigoKT0+e0tiPVtbInBhdGgiLHtkOiJNMTIgNmEyIDIgMCAwIDEgMy40MTQtMS40MTRsNiA2YTIgMiAwIDAgMSAwIDIuODI4bC02IDZBMiAyIDAgMCAxIDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJNMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMiAxOHoifV1dfSk7dmFyIEpiLERwZT1uKCgpPT57SmI9W1sicGF0aCIse2Q6Ik0xMi42NyAxOWEyIDIgMCAwIDAgMS40MTYtLjU4OGw2LjE1NC02LjE3MmE2IDYgMCAwIDAtOC40OS04LjQ5TDUuNTg2IDkuOTE0QTIgMiAwIDAgMCA1IDExLjMyOFYxOGExIDEgMCAwIDAgMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTYgOCAyIDIyIn1dLFsicGF0aCIse2Q6Ik0xNy41IDE1SDkifV1dfSk7dmFyIGV2LEVwZT1uKCgpPT57ZXY9W1sicGF0aCIse2Q6Ik00IDMgMiA1djE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoifV0sWyJwYXRoIix7ZDoiTTYgOGg0In1dLFsicGF0aCIse2Q6Ik02IDE4aDQifV0sWyJwYXRoIix7ZDoibTEyIDMtMiAydjE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoifV0sWyJwYXRoIix7ZDoiTTE0IDhoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMThoNCJ9XSxbInBhdGgiLHtkOiJtMjAgMy0yIDJ2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WiJ9XV19KTt2YXIgdHYsTnBlPW4oKCk9Pnt0dj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnY0In1dLFsicGF0aCIse2Q6Im02LjggMTUtMy41IDIifV0sWyJwYXRoIix7ZDoibTIwLjcgNy0zLjUgMiJ9XSxbInBhdGgiLHtkOiJNNi44IDkgMy4zIDcifV0sWyJwYXRoIix7ZDoibTIwLjcgMTctMy41LTIifV0sWyJwYXRoIix7ZDoibTkgMjIgMy04IDMgOCJ9XSxbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik0xOCAxOC43YTkgOSAwIDEgMC0xMiAwIn1dXX0pO3ZhciBhdixQcGU9bigoKT0+e2F2PVtbInBhdGgiLHtkOiJNNSA1LjVBMy41IDMuNSAwIDAgMSA4LjUgMkgxMnY3SDguNUEzLjUgMy41IDAgMCAxIDUgNS41eiJ9XSxbInBhdGgiLHtkOiJNMTIgMmgzLjVhMy41IDMuNSAwIDEgMSAwIDdIMTJWMnoifV0sWyJwYXRoIix7ZDoiTTEyIDEyLjVhMy41IDMuNSAwIDEgMSA3IDAgMy41IDMuNSAwIDEgMS03IDB6In1dLFsicGF0aCIse2Q6Ik01IDE5LjVBMy41IDMuNSAwIDAgMSA4LjUgMTZIMTJ2My41YTMuNSAzLjUgMCAxIDEtNyAweiJ9XSxbInBhdGgiLHtkOiJNNSAxMi41QTMuNSAzLjUgMCAwIDEgOC41IDlIMTJ2N0g4LjVBMy41IDMuNSAwIDAgMSA1IDEyLjV6In1dXX0pO3ZhciBydixJcGU9bigoKT0+e3J2PVtbInBhdGgiLHtkOiJNMTMuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTEuNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3VjYifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBKMCxGcGU9bigoKT0+e0owPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtOCAxOCA0LTQifV0sWyJwYXRoIix7ZDoiTTggMTB2OGg4In1dXX0pO3ZhciBlNCxPcGU9bigoKT0+e2U0PVtbInBhdGgiLHtkOiJNMTMgMjJoNWEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuMyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNy42OSAxNi40NzkgMS4yOSA0Ljg4YS41LjUgMCAwIDEtLjY5OC41OTFsLTEuODQzLS44NDlhMSAxIDAgMCAwLS44NzkuMDAxbC0xLjg0Ni44NWEuNS41IDAgMCAxLS42OTItLjU5M2wxLjI5LTQuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE0IixyOiIzIn1dXX0pO3ZhciB0NCxCcGU9bigoKT0+e3Q0PVtbInBhdGgiLHtkOiJNMTQgMjJoNGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTUgMTRhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMCAxIDEifV0sWyJwYXRoIix7ZDoiTTkgMjJhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDEgMS0xIDEgMSAwIDAgMS0xLTF2LTJhMSAxIDAgMCAwLTEtMSJ9XV19KTt2YXIgaXYsUnBlPW4oKCk9Pntpdj1bWyJwYXRoIix7ZDoiTTE0LjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjgifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTExLjcgMTQuMiA3IDE3bC00LjctMi44In1dLFsicGF0aCIse2Q6Ik0zIDEzLjFhMiAyIDAgMCAwLS45OTkgMS43NnYzLjI0YTIgMiAwIDAgMCAuOTY5IDEuNzhMNiAyMS43YTIgMiAwIDAgMCAyLjAzLjAxTDExIDE5LjlhMiAyIDAgMCAwIDEtMS43NlYxNC45YTIgMiAwIDAgMC0uOTctMS43OEw4IDExLjNhMiAyIDAgMCAwLTIuMDMtLjAxeiJ9XSxbInBhdGgiLHtkOiJNNyAxN3Y1In1dXX0pO3ZhciBhNCxIcGU9bigoKT0+e2E0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTJhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMCAxIDEifV0sWyJwYXRoIix7ZDoiTTE0IDE4YTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0xYTEgMSAwIDAgMC0xLTEifV1dfSk7dmFyIHI0LHFwZT1uKCgpPT57cjQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE4di0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMTh2LTYifV1dfSk7dmFyIGk0LFZwZT1uKCgpPT57aTQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE4di0xIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTh2LTMifV1dfSk7dmFyIG80LFVwZT1uKCgpPT57bzQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNiAxMy0zLjUgMy41LTItMkw4IDE3In1dXX0pO3ZhciBzNCxqcGU9bigoKT0+e3M0PVtbInBhdGgiLHtkOiJNMTUuOTQxIDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My41MTIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTQuMDE3IDExLjUxMmE2IDYgMCAxIDAgOC40NjYgOC40NzUifV0sWyJwYXRoIix7ZDoiTTkgMTZhMSAxIDAgMCAxLTEtMXYtNGMwLS41NTIuNDUtMS4wMDguOTk1LS45MTdhNiA2IDAgMCAxIDQuOTIyIDQuOTIyYy4wOTEuNTQ0LS4zNjUuOTk1LS45MTcuOTk1eiJ9XV19KTt2YXIgbjQsV3BlPW4oKCk9PntuND1bWyJwYXRoIix7ZDoiTTEwLjUgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNCAyMCAyIDIgNC00In1dXX0pO3ZhciBvdixHcGU9bigoKT0+e292PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtOSAxNSAyIDIgNC00In1dXX0pO3ZhciBzdixZcGU9bigoKT0+e3N2PVtbInBhdGgiLHtkOiJNMTYgMjJoMmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjIuODUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTR2Mi4ybDEuNiAxIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNiIscjoiNiJ9XV19KTt2YXIgbDQsWnBlPW4oKCk9PntsND1bWyJwYXRoIix7ZDoiTTQgMTIuMTVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTMuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTUgMTYtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtOSAyMiAzLTMtMy0zIn1dXX0pO3ZhciBudixYcGU9bigoKT0+e252PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTIuNSA4IDE1bDIgMi41In1dLFsicGF0aCIse2Q6Im0xNCAxMi41IDIgMi41LTIgMi41In1dXX0pO3ZhciBjNCxRcGU9bigoKT0+e2M0PVtbInBhdGgiLHtkOiJNMTMuODUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC00LTRBMiAyIDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYuNiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMy4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTQuMjI4IDE2Ljg1Mi0uOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTUuODUyIDE1LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTUuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtOC4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im04LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTkuNzczIDE2Ljg1Mi45MjItLjM4MyJ9XSxbInBhdGgiLHtkOiJtOS43NzMgMTkuMTQ4LjkyMi4zODMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBsdixLcGU9bigoKT0+e2x2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dLFsicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicGF0aCIse2Q6Ik05IDE3aDYifV1dfSk7dmFyIGN2LEpwZT1uKCgpPT57Y3Y9W1sicGF0aCIse2Q6Ik00IDEyVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMCAxNmgydjYifV0sWyJwYXRoIix7ZDoiTTEwIDIyaDQifV0sWyJyZWN0Iix7eDoiMiIseToiMTYiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ4OiIyIn1dXX0pO3ZhciBkdixlOWU9bigoKT0+e2R2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTYifV0sWyJwYXRoIix7ZDoibTkgMTUgMyAzIDMtMyJ9XV19KTt2YXIgZDQsdDllPW4oKCk9PntkND1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDl2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXX0pO3ZhciBJaSxhOWU9bigoKT0+e0lpPVtbInBhdGgiLHtkOiJNNCA2LjgzNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtLjM0MyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMiAxOWEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAxLTQgMHYtNGE2IDYgMCAwIDEgMTIgMHY0YTIgMiAwIDAgMS00IDB2LTFhMiAyIDAgMCAxIDQgMCJ9XV19KTt2YXIgZnYscjllPW4oKCk9Pntmdj1bWyJwYXRoIix7ZDoiTTEzIDIyaDVhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY3In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0zLjYyIDE4LjhBMi4yNSAyLjI1IDAgMSAxIDcgMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmExIDEgMCAwIDEtMS41MDcgMHoifV1dfSk7dmFyIHV2LGk5ZT1uKCgpPT57dXY9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoibTIwIDE3LTEuMjk2LTEuMjk2YTIuNDEgMi40MSAwIDAgMC0zLjQwOCAwTDkgMjIifV1dfSk7dmFyIHB2LG85ZT1uKCgpPT57cHY9W1sicGF0aCIse2Q6Ik00IDExVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtMSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMiAxNWgxMCJ9XSxbInBhdGgiLHtkOiJtOSAxOCAzLTMtMy0zIn1dXX0pO3ZhciBmNCxzOWU9bigoKT0+e2Y0PVtbInBhdGgiLHtkOiJNMTAuNjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxMC4xIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xMCAxNSAxIDEifV0sWyJwYXRoIix7ZDoibTExIDE0LTQuNTg2IDQuNTg2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIyMCIscjoiMiJ9XV19KTt2YXIgdTQsbjllPW4oKCk9Pnt1ND1bWyJwYXRoIix7ZDoiTTQgOS44VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0zIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik05IDE3di0yYTIgMiAwIDAgMC00IDB2MiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNyIscng6IjEifV1dfSk7dmFyIHA0LGw5ZT1uKCgpPT57cDQ9W1sicGF0aCIse2Q6Ik0yMCAxNFY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNCAxOGg2In1dXX0pO3ZhciBodixjOWU9bigoKT0+e2h2PVtbInBhdGgiLHtkOiJNMTEuNjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxMC4zNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAyMHYtN2wzIDEuNDc0In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIyMCIscjoiMiJ9XV19KTt2YXIgbXYsZDllPW4oKCk9Pnttdj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTkgMTVoNiJ9XV19KTt2YXIgZ3YsZjllPW4oKCk9Pntndj1bWyJwYXRoIix7ZDoiTTQuMjI2IDIwLjkyNUEyIDIgMCAwIDAgNiAyMmgxMmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuMTI3In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im01IDExLTMgMyJ9XSxbInBhdGgiLHtkOiJtNSAxNy0zLTNoMTAifV1dfSk7dmFyIGg0LHU5ZT1uKCgpPT57aDQ9W1sicGF0aCIse2Q6Im0xOC4yMjYgNS4yMjYtMi41Mi0yLjUyQTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0uMzUxIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTIuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJwYXRoIix7ZDoiTTggMThoMSJ9XV19KTt2YXIgbTQscDllPW4oKCk9PnttND1bWyJwYXRoIix7ZDoiTTEyLjY1OSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjkuMzQifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwLjM3OCAxMi42MjJhMSAxIDAgMCAxIDMgMy4wMDNMOC4zNiAyMC42MzdhMiAyIDAgMCAxLS44NTQuNTA2bC0yLjg2Ny44MzdhLjUuNSAwIDAgMS0uNjItLjYybC44MzYtMi44NjlhMiAyIDAgMCAxIC41MDYtLjg1M3oifV1dfSk7dmFyIGc0LGg5ZT1uKCgpPT57ZzQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNS4wMzMgMTMuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NnYtNC43MDRhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dXX0pO3ZhciB4dixtOWU9bigoKT0+e3h2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XV19KTt2YXIgeDQsZzllPW4oKCk9Pnt4ND1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyJ9XV19KTt2YXIgYjQseDllPW4oKCk9PntiND1bWyJwYXRoIix7ZDoiTTExLjM1IDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NS4zNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTQgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTZ2NiJ9XV19KTt2YXIgYnYsYjllPW4oKCk9Pntidj1bWyJwYXRoIix7ZDoiTTIwIDEwVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA0bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoNC4zNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTYgMTRhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTYgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjJhMiAyIDAgMCAwIDItMiJ9XV19KTt2YXIgdjQsdjllPW4oKCk9Pnt2ND1bWyJwYXRoIix7ZDoiTTExLjEgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg5IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYzLjI1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0yMSAyMi0yLjg4LTIuODgifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxNyIscjoiMyJ9XV19KTt2YXIgdnYseTllPW4oKCk9Pnt2dj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjE0LjUiLHI6IjIuNSJ9XSxbInBhdGgiLHtkOiJNMTMuMyAxNi4zIDE1IDE4In1dXX0pO3ZhciB5NCx3OWU9bigoKT0+e3k0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTExLjUgMTMuNWEyLjUgMi41IDAgMCAxIDAgMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTJhNSA1IDAgMCAxIDAgNiJ9XV19KTt2YXIgeXYsTTllPW4oKCk9Pnt5dj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTNoMiJ9XSxbInBhdGgiLHtkOiJNOCAxN2gyIn1dLFsicGF0aCIse2Q6Ik0xNCAxN2gyIn1dXX0pO3ZhciB3dix6OWU9bigoKT0+e3d2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMCAxMXYyIn1dLFsicGF0aCIse2Q6Ik04IDE3aDgifV0sWyJwYXRoIix7ZDoiTTE0IDE2djIifV1dfSk7dmFyIE12LGs5ZT1uKCgpPT57TXY9W1sicGF0aCIse2Q6Ik0xMSAyMWExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXYtOGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmExIDEgMCAwIDEtMSAxSDlhMSAxIDAgMCAxLTEtMVY4YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTIxIDZhMiAyIDAgMCAwLS41ODYtMS40MTRsLTItMkEyIDIgMCAwIDAgMTcgMmgtM2ExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTF6In1dXX0pO3ZhciB6dixTOWU9bigoKT0+e3p2PVtbInBhdGgiLHtkOiJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xMCAxOCAzLTMtMy0zIn1dXX0pO3ZhciBrdixDOWU9bigoKT0+e2t2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtOCAxNiAyLTItMi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGg0In1dXX0pO3ZhciBTdixMOWU9bigoKT0+e1N2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgOUg4In1dLFsicGF0aCIse2Q6Ik0xNiAxM0g4In1dLFsicGF0aCIse2Q6Ik0xNiAxN0g4In1dXX0pO3ZhciB3NCxUOWU9bigoKT0+e3c0PVtbInBhdGgiLHtkOiJNMTIgMjJoNmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTMgMTZ2LTEuNWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41VjE2In1dLFsicGF0aCIse2Q6Ik02IDIyaDIifV0sWyJwYXRoIix7ZDoiTTcgMTR2OCJ9XV19KTt2YXIgQ3YsXzllPW4oKCk9PntDdj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTExIDE4aDIifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV0sWyJwYXRoIix7ZDoiTTkgMTN2LS41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIC41LjV2LjUifV1dfSk7dmFyIEx2LEE5ZT1uKCgpPT57THY9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMiAxMnY2In1dLFsicGF0aCIse2Q6Im0xNSAxNS0zLTMtMyAzIn1dXX0pO3ZhciBUdiwkOWU9bigoKT0+e1R2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTYgMjJhNCA0IDAgMCAwLTggMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIzIn1dXX0pO3ZhciBfdixEOWU9bigoKT0+e192PVtbInBhdGgiLHtkOiJNNCAxMS41NVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMS45NSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTVhNSA1IDAgMCAxIDAgNiJ9XSxbInBhdGgiLHtkOiJNOCAxNC41MDJhLjUuNSAwIDAgMC0uODI2LS4zODFsLTEuODkzIDEuNjMxYTEgMSAwIDAgMS0uNjUxLjI0M0gzLjVhLjUuNSAwIDAgMC0uNS41MDF2My4wMDZhLjUuNSAwIDAgMCAuNS41MDFoMS4xMjlhMSAxIDAgMCAxIC42NTIuMjQzbDEuODkzIDEuNjMzYS41LjUgMCAwIDAgLjgyNi0uMzh6In1dXX0pO3ZhciBNNCxFOWU9bigoKT0+e000PVtbInBhdGgiLHtkOiJNNCAxMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTcuODQzIDMuMDMzLTEuNzU1YS42NC42NCAwIDAgMSAuOTY3LjU2djQuNzA0YS42NS42NSAwIDAgMS0uOTY3LjU2TDEwIDIwLjE1NyJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI2Iix4OiIzIix5OiIxNiIscng6IjEifV1dfSk7dmFyIHo0LE45ZT1uKCgpPT57ejQ9W1sicGF0aCIse2Q6Ik0xMSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTE1IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjAgMTctNSA1In1dXX0pO3ZhciBBdixQOWU9bigoKT0+e0F2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMi41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOS41IDEyLjUgNSA1In1dXX0pO3ZhciAkdixJOWU9bigoKT0+eyR2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XV19KTt2YXIgRHYsRjllPW4oKCk9PntEdj1bWyJwYXRoIix7ZDoiTTE1IDJoLTRhMiAyIDAgMCAwLTIgMnYxMWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4In1dLFsicGF0aCIse2Q6Ik0xNi43MDYgMi43MDZBMi40IDIuNCAwIDAgMCAxNSAydjVhMSAxIDAgMCAwIDEgMWg1YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNnoifV0sWyJwYXRoIix7ZDoiTTUgN2EyIDIgMCAwIDAtMiAydjExYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMS43MzItMSJ9XV19KTt2YXIgRXYsTzllPW4oKCk9PntFdj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDcuNWg0In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Ik0zIDE2LjVoNCJ9XSxbInBhdGgiLHtkOiJNMTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTcgNy41aDQifV0sWyJwYXRoIix7ZDoiTTE3IDE2LjVoNCJ9XV19KTt2YXIgazQsQjllPW4oKCk9PntrND1bWyJwYXRoIix7ZDoiTTEyIDEwYTIgMiAwIDAgMC0yIDJjMCAxLjAyLS4xIDIuNTEtLjI2IDQifV0sWyJwYXRoIix7ZDoiTTE0IDEzLjEyYzAgMi4zOCAwIDYuMzgtMSA4Ljg4In1dLFsicGF0aCIse2Q6Ik0xNy4yOSAyMS4wMmMuMTItLjYuNDMtMi4zLjUtMy4wMiJ9XSxbInBhdGgiLHtkOiJNMiAxMmExMCAxMCAwIDAgMSAxOC02In1dLFsicGF0aCIse2Q6Ik0yIDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEuOCAxNmMuMi0yIC4xMzEtNS4zNTQgMC02In1dLFsicGF0aCIse2Q6Ik01IDE5LjVDNS41IDE4IDYgMTUgNiAxMmE2IDYgMCAwIDEgLjM0LTIifV0sWyJwYXRoIix7ZDoiTTguNjUgMjJjLjIxLS42Ni40NS0xLjMyLjU3LTIifV0sWyJwYXRoIix7ZDoiTTkgNi44YTYgNiAwIDAgMSA5IDUuMnYyIn1dXX0pO3ZhciBOdixSOWU9bigoKT0+e052PVtbInBhdGgiLHtkOiJNMTUgNi41VjNhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMuNSJ9XSxbInBhdGgiLHtkOiJNOSAxOGg4In1dLFsicGF0aCIse2Q6Ik0xOCAzaC0zIn1dLFsicGF0aCIse2Q6Ik0xMSAzYTYgNiAwIDAgMC02IDZ2MTEifV0sWyJwYXRoIix7ZDoiTTUgMTNoNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTBhNCA0IDAgMCAwLTggMHYxMGEyIDIgMCAwIDAgMiAyaDRhMiAyIDAgMCAwIDItMloifV1dfSk7dmFyIFB2LEg5ZT1uKCgpPT57UHY9W1sicGF0aCIse2Q6Ik0xOCAxMi40N3YuMDNtMC0uNXYuNDdtLS40NzUgNS4wNTZBNi43NDQgNi43NDQgMCAwIDEgMTUgMThjLTMuNTYgMC03LjU2LTIuNTMtOC41LTYgLjM0OC0xLjI4IDEuMTE0LTIuNDMzIDIuMTIxLTMuMzhtMy40NDQtMi4wODhBOC44MDIgOC44MDIgMCAwIDEgMTUgNmMzLjU2IDAgNi4wNiAyLjU0IDcgNi0uMzA5IDEuMTQtLjc4NiAyLjE3Ny0xLjQxMyAzLjA1OCJ9XSxbInBhdGgiLHtkOiJNNyAxMC42N0M3IDggNS41OCA1Ljk3IDIuNzMgNS41Yy0xIDEuNS0xIDUgLjIzIDYuNS0xLjI0IDEuNS0xLjI0IDUtLjIzIDYuNUM1LjU4IDE4LjAzIDcgMTYgNyAxMy4zM203LjQ4LTQuMzcyQTkuNzcgOS43NyAwIDAgMSAxNiA2LjA3bTAgMTEuODZhOS43NyA5Ljc3IDAgMCAxLTEuNzI4LTMuNjE4In1dLFsicGF0aCIse2Q6Im0xNi4wMSAxNy45My0uMjMgMS40QTIgMiAwIDAgMSAxMy44IDIxSDkuNWE1Ljk2IDUuOTYgMCAwIDAgMS40OS0zLjk4TTguNTMgM2g1LjI3YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNE0yIDJsMjAgMjAifV1dfSk7dmFyIEl2LHE5ZT1uKCgpPT57SXY9W1sicGF0aCIse2Q6Ik0yIDE2czktMTUgMjAtNEMxMSAyMyAyIDggMiA4In1dXX0pO3ZhciBGdixWOWU9bigoKT0+e0Z2PVtbInBhdGgiLHtkOiJNNi41IDEyYy45NC0zLjQ2IDQuOTQtNiA4LjUtNiAzLjU2IDAgNi4wNiAyLjU0IDcgNi0uOTQgMy40Ny0zLjQ0IDYtNyA2cy03LjU2LTIuNTMtOC41LTZaIn1dLFsicGF0aCIse2Q6Ik0xOCAxMnYuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMTcuOTNhOS43NyA5Ljc3IDAgMCAxIDAtMTEuODYifV0sWyJwYXRoIix7ZDoiTTcgMTAuNjdDNyA4IDUuNTggNS45NyAyLjczIDUuNWMtMSAxLjUtMSA1IC4yMyA2LjUtMS4yNCAxLjUtMS4yNCA1LS4yMyA2LjVDNS41OCAxOC4wMyA3IDE2IDcgMTMuMzMifV0sWyJwYXRoIix7ZDoiTTEwLjQ2IDcuMjZDMTAuMiA1Ljg4IDkuMTcgNC4yNCA4IDNoNS44YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNCJ9XSxbInBhdGgiLHtkOiJtMTYuMDEgMTcuOTMtLjIzIDEuNEEyIDIgMCAwIDEgMTMuOCAyMUg5LjVhNS45NiA1Ljk2IDAgMCAwIDEuNDktMy45OCJ9XV19KTt2YXIgT3YsVTllPW4oKCk9PntPdj1bWyJwYXRoIix7ZDoibTE3LjU4NiAxMS40MTQtNS45MyA1LjkzYTEgMSAwIDAgMS04LThsMy4xMzctMy4xMzdhLjcwNy43MDcgMCAwIDEgMS4yMDcuNVYxMCJ9XSxbInBhdGgiLHtkOiJNMjAuNDE0IDguNTg2IDIyIDcifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxMCIscjoiMiJ9XV19KTt2YXIgQnYsajllPW4oKCk9PntCdj1bWyJwYXRoIix7ZDoiTTE2IDE2Yy0zIDAtNS0yLTgtMmE2IDYgMCAwIDAtNCAxLjUyOCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik00IDIyVjQifV0sWyJwYXRoIix7ZDoiTTcuNjU2IDJIOGMzIDAgNSAyIDcuMzMzIDJxMiAwIDMuMDY3LS44QTEgMSAwIDAgMSAyMCA0djEwLjM0NyJ9XV19KTt2YXIgUnYsVzllPW4oKCk9PntSdj1bWyJwYXRoIix7ZDoiTTE4IDIyVjIuOGEuOC44IDAgMCAwLTEuMTctLjcxTDUuNDUgNy43OGEuOC44IDAgMCAwIDAgMS40NEwxOCAxNS41In1dXX0pO3ZhciBIdixHOWU9bigoKT0+e0h2PVtbInBhdGgiLHtkOiJNNiAyMlYyLjhhLjguOCAwIDAgMSAxLjE3LS43MWwxMS4zOCA1LjY5YS44LjggMCAwIDEgMCAxLjQ0TDYgMTUuNSJ9XV19KTt2YXIgcXYsWTllPW4oKCk9Pntxdj1bWyJwYXRoIix7ZDoiTTEyIDJjMSAzIDIuNSAzLjUgMy41IDQuNUE1IDUgMCAwIDEgMTcgMTBhNSA1IDAgMSAxLTEwIDBjMC0uMyAwLS42LjEtLjlhMiAyIDAgMSAwIDMuMy0yQzggNC41IDExIDIgMTIgMloifV0sWyJwYXRoIix7ZDoibTUgMjIgMTQtNCJ9XSxbInBhdGgiLHtkOiJtNSAxOCAxNCA0In1dXX0pO3ZhciBWdixaOWU9bigoKT0+e1Z2PVtbInBhdGgiLHtkOiJNNCAyMlY0YTEgMSAwIDAgMSAuNC0uOEE2IDYgMCAwIDEgOCAyYzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTBhMSAxIDAgMCAxLS40LjhBNiA2IDAgMCAxIDE2IDE2Yy0zIDAtNS0yLTgtMmE2IDYgMCAwIDAtNCAxLjUyOCJ9XV19KTt2YXIgVXYsWDllPW4oKCk9PntVdj1bWyJwYXRoIix7ZDoiTTEyIDNxMSA0IDQgNi41dDMgNS41YTEgMSAwIDAgMS0xNCAwIDUgNSAwIDAgMSAxLTMgMSAxIDAgMCAwIDUgMGMwLTItMS41LTMtMS41LTVxMC0yIDIuNS00In1dXX0pO3ZhciBqdixROWU9bigoKT0+e2p2PVtbInBhdGgiLHtkOiJNMTEuNjUyIDZIMTgifV0sWyJwYXRoIix7ZDoiTTEyIDEzdjEifV0sWyJwYXRoIix7ZDoiTTE2IDE2djRhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0ydi04YTQgNCAwIDAgMC0uOC0yLjRsLS42LS44QTMgMyAwIDAgMSA2IDdWNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik03LjY0OSAySDE3YTEgMSAwIDAgMSAxIDF2NGEzIDMgMCAwIDEtLjYgMS44bC0uNi44YTQgNCAwIDAgMC0uNTUgMS4wMDcifV1dfSk7dmFyIFd2LEs5ZT1uKCgpPT57V3Y9W1sicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNyAyYTEgMSAwIDAgMSAxIDF2NGEzIDMgMCAwIDEtLjYgMS44bC0uNi44QTQgNCAwIDAgMCAxNiAxMnY4YTIgMiAwIDAgMS0yIDJIMTBhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjNhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgNmgxMiJ9XV19KTt2YXIgR3YsSjllPW4oKCk9PntHdj1bWyJwYXRoIix7ZDoiTTEwIDJ2Mi4zNDMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2Ni4zNDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuMjI3LTkuNTYzIn1dLFsicGF0aCIse2Q6Ik02LjQ1MyAxNUgxNSJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XV19KTt2YXIgWXYsZWhlPW4oKCk9PntZdj1bWyJwYXRoIix7ZDoiTTEwIDJ2Ni4yOTJhNyA3IDAgMSAwIDQgMFYyIn1dLFsicGF0aCIse2Q6Ik01IDE1aDE0In1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dXX0pO3ZhciBadix0aGU9bigoKT0+e1p2PVtbInBhdGgiLHtkOiJNMTQgMnY2YTIgMiAwIDAgMCAuMjQ1Ljk2bDUuNTEgMTAuMDhBMiAyIDAgMCAxIDE4IDIySDZhMiAyIDAgMCAxLTEuNzU1LTIuOTZsNS41MS0xMC4wOEEyIDIgMCAwIDAgMTAgOFYyIn1dLFsicGF0aCIse2Q6Ik02LjQ1MyAxNWgxMS4wOTQifV0sWyJwYXRoIix7ZDoiTTguNSAyaDcifV1dfSk7dmFyIFh2LGFoZT1uKCgpPT57WHY9W1sicGF0aCIse2Q6Ik04IDNINWEyIDIgMCAwIDAtMiAydjE0YzAgMS4xLjkgMiAyIDJoMyJ9XSxbInBhdGgiLHtkOiJNMTYgM2gzYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtMyJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV1dfSk7dmFyIFF2LHJoZT1uKCgpPT57UXY9W1sicGF0aCIse2Q6Im0zIDcgNSA1LTUgNVY3In1dLFsicGF0aCIse2Q6Im0yMSA3LTUgNSA1IDVWNyJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV1dfSk7dmFyIEt2LGloZT1uKCgpPT57S3Y9W1sicGF0aCIse2Q6Im0xNyAzLTUgNS01LTVoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxLTUtNS01IDVoMTAifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBKdixvaGU9bigoKT0+e0p2PVtbInBhdGgiLHtkOiJNMjEgOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDE2djNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBleSxzaGU9bigoKT0+e2V5PVtbInBhdGgiLHtkOiJNMTIgNWEzIDMgMCAxIDEgMyAzbS0zLTNhMyAzIDAgMSAwLTMgM20zLTN2MU05IDhhMyAzIDAgMSAwIDMgM005IDhoMW01IDBhMyAzIDAgMSAxLTMgM20zLTNoLTFtLTIgM3YtMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjEyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmM0LjIgMCA3LTEuNjY3IDctNS00LjIgMC03IDEuNjY3LTcgNVoifV0sWyJwYXRoIix7ZDoiTTEyIDIyYy00LjIgMC03LTEuNjY3LTctNSA0LjIgMCA3IDEuNjY3IDcgNVoifV1dfSk7dmFyIHR5LG5oZT1uKCgpPT57dHk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDE2LjVBNC41IDQuNSAwIDEgMSA3LjUgMTIgNC41IDQuNSAwIDEgMSAxMiA3LjVhNC41IDQuNSAwIDEgMSA0LjUgNC41IDQuNSA0LjUgMCAxIDEtNC41IDQuNSJ9XSxbInBhdGgiLHtkOiJNMTIgNy41VjkifV0sWyJwYXRoIix7ZDoiTTcuNSAxMkg5In1dLFsicGF0aCIse2Q6Ik0xNi41IDEySDE1In1dLFsicGF0aCIse2Q6Ik0xMiAxNi41VjE1In1dLFsicGF0aCIse2Q6Im04IDggMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik0xNC4xMiA5Ljg4IDE2IDgifV0sWyJwYXRoIix7ZDoibTggMTYgMS44OC0xLjg4In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAxNC4xMiAxNiAxNiJ9XV19KTt2YXIgYXksbGhlPW4oKCk9PntheT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dXX0pO3ZhciByeSxjaGU9bigoKT0+e3J5PVtbInBhdGgiLHtkOiJNMiAxMmg2In1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtNiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMiA4djIifV0sWyJwYXRoIix7ZDoiTTEyIDE0djIifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoibTE5IDktMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtNSAxNSAzLTMtMy0zIn1dXX0pO3ZhciBpeSxkaGU9bigoKT0+e2l5PVtbInBhdGgiLHtkOiJNMTIgMjJ2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDhWMiJ9XSxbInBhdGgiLHtkOiJNNCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkg4In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTIifV0sWyJwYXRoIix7ZDoibTE1IDE5LTMtMy0zIDMifV0sWyJwYXRoIix7ZDoibTE1IDUtMyAzLTMtMyJ9XV19KTt2YXIgb3ksZmhlPW4oKCk9PntveT1bWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAuOSAxOS44QTIgMiAwIDAgMCAyMiAxOFY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJoNS4xIn1dLFsicGF0aCIse2Q6Ik0xNSAxMXYtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTd2LTIifV1dfSk7dmFyIHN5LHVoZT1uKCgpPT57c3k9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoibTkgMTMgMiAyIDQtNCJ9XV19KTt2YXIgbnkscGhlPW4oKCk9PntueT1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV1dfSk7dmFyIGx5LGhoZT1uKCgpPT57bHk9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTIgMTBoMjAifV1dfSk7dmFyIGN5LG1oZT1uKCgpPT57Y3k9W1sicGF0aCIse2Q6Ik0xMCAxMC41IDggMTNsMiAyLjUifV0sWyJwYXRoIix7ZDoibTE0IDEwLjUgMiAyLjUtMiAyLjUifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyeiJ9XV19KTt2YXIgUzQsZ2hlPW4oKCk9PntTND1bWyJwYXRoIix7ZDoiTTEwLjMgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjk4YTIgMiAwIDAgMSAxLjY5LjlsLjY2IDEuMkEyIDIgMCAwIDAgMTIgNmg4YTIgMiAwIDAgMSAyIDJ2My4zIn1dLFsicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIGR5LHhoZT1uKCgpPT57ZHk9W1sicGF0aCIse2Q6Ik00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjEifV1dfSk7dmFyIGZ5LGJoZT1uKCgpPT57Znk9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoibTE1IDEzLTMgMy0zLTMifV1dfSk7dmFyIHV5LHZoZT1uKCgpPT57dXk9W1sicGF0aCIse2Q6Ik0xOCAxOWE1IDUgMCAwIDEtNS01djgifV0sWyJwYXRoIix7ZDoiTTkgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY1In1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XV19KTt2YXIgcHkseWhlPW4oKCk9PntweT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xNCAxM2gzIn1dLFsicGF0aCIse2Q6Ik03IDEzaDMifV1dfSk7dmFyIGh5LHdoZT1uKCgpPT57aHk9W1sicGF0aCIse2Q6Ik0xMC42MzggMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYzLjQxNyJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV19KTt2YXIgbXksTWhlPW4oKCk9PntteT1bWyJwYXRoIix7ZDoiTTIgOVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTIgMTNoMTAifV0sWyJwYXRoIix7ZDoibTkgMTYgMy0zLTMtMyJ9XV19KTt2YXIgZ3ksemhlPW4oKCk9PntneT1bWyJwYXRoIix7ZDoiTTQgMjBoMTZhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOTNhMiAyIDAgMCAxLTEuNjYtLjlsLS44Mi0xLjJBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNjMCAxLjEuOSAyIDIgMloifV0sWyJwYXRoIix7ZDoiTTggMTB2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTB2NiJ9XV19KTt2YXIgeHksa2hlPW4oKCk9Pnt4eT1bWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIyMCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTAgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Im0yMiAxNC00LjUgNC41In1dLFsicGF0aCIse2Q6Im0yMSAxNSAxIDEifV1dfSk7dmFyIGJ5LFNoZT1uKCgpPT57Ynk9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiIxNyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTEwIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2Mi41In1dLFsicGF0aCIse2Q6Ik0yMCAxN3YtMmEyIDIgMCAxIDAtNCAwdjIifV1dfSk7dmFyIHZ5LENoZT1uKCgpPT57dnk9W1sicGF0aCIse2Q6Ik05IDEzaDYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV19KTt2YXIgeXksTGhlPW4oKCk9Pnt5eT1bWyJwYXRoIix7ZDoibTYgMTQgMS40NS0yLjlBMiAyIDAgMCAxIDkuMjQgMTBIMjBhMiAyIDAgMCAxIDEuOTQgMi41bC0xLjU1IDZhMiAyIDAgMCAxLTEuOTQgMS41SDRhMiAyIDAgMCAxLTItMlY1YzAtMS4xLjktMiAyLTJoMy45M2EyIDIgMCAwIDEgMS42Ni45bC44MiAxLjJhMiAyIDAgMCAwIDEuNjYuOUgxOGEyIDIgMCAwIDEgMiAydjIifV0sWyJjaXJjbGUiLHtjeDoiMTQiLGN5OiIxNSIscjoiMSJ9XV19KTt2YXIgd3ksVGhlPW4oKCk9Pnt3eT1bWyJwYXRoIix7ZDoibTYgMTQgMS41LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTQgNmEyIDIgMCAwIDEtMS45NSAxLjVINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMThhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBNeSxfaGU9bigoKT0+e015PVtbInBhdGgiLHtkOiJNMiA3LjVWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0xLjUifV0sWyJwYXRoIix7ZDoiTTIgMTNoMTAifV0sWyJwYXRoIix7ZDoibTUgMTAtMyAzIDMgMyJ9XV19KTt2YXIgQzQsQWhlPW4oKCk9PntDND1bWyJwYXRoIix7ZDoiTTIgMTEuNVY1YTIgMiAwIDAgMSAyLTJoMy45Yy43IDAgMS4zLjMgMS43LjlsLjggMS4yYy40LjYgMSAuOSAxLjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTkuNSJ9XSxbInBhdGgiLHtkOiJNMTEuMzc4IDEzLjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXX0pO3ZhciB6eSwkaGU9bigoKT0+e3p5PVtbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV1dfSk7dmFyIGt5LERoZT1uKCgpPT57a3k9W1sicGF0aCIse2Q6Ik00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE1djUifV1dfSk7dmFyIFN5LEVoZT1uKCgpPT57U3k9W1siY2lyY2xlIix7Y3g6IjExLjUiLGN5OiIxMi41IixyOiIyLjUifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTMuMyAxNC4zIDE1IDE2In1dXX0pO3ZhciBDeSxOaGU9bigoKT0+e0N5PVtbInBhdGgiLHtkOiJNMTAuNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjQuMSJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMS45LTEuOSJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiIzIn1dXX0pO3ZhciBMeSxQaGU9bigoKT0+e0x5PVtbInBhdGgiLHtkOiJNMiA5LjM1VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoibTggMTYgMy0zLTMtMyJ9XV19KTt2YXIgVHksSWhlPW4oKCk9PntUeT1bWyJwYXRoIix7ZDoiTTkgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYuNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NGg0In1dLFsicGF0aCIse2Q6Im0xMiAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUifV0sWyJwYXRoIix7ZDoiTTIyIDIydi00aC00In1dLFsicGF0aCIse2Q6Im0yMiAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUifV1dfSk7dmFyIF95LEZoZT1uKCgpPT57X3k9W1sicGF0aCIse2Q6Ik0yMCAxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtMi41YTEgMSAwIDAgMS0uOC0uNGwtLjktMS4yQTEgMSAwIDAgMCAxNSAzaC0yYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNMjAgMjFhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xaC0yLjlhMSAxIDAgMCAxLS44OC0uNTVsLS40Mi0uODVhMSAxIDAgMCAwLS45Mi0uNkgxM2ExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMVoifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDAgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTMgM3YxM2EyIDIgMCAwIDAgMiAyaDMifV1dfSk7dmFyIEF5LE9oZT1uKCgpPT57QXk9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoibTkgMTMgMy0zIDMgMyJ9XV19KTt2YXIgJHksQmhlPW4oKCk9PnskeT1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJtOS41IDEwLjUgNSA1In1dLFsicGF0aCIse2Q6Im0xNC41IDEwLjUtNSA1In1dXX0pO3ZhciBEeSxSaGU9bigoKT0+e0R5PVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dXX0pO3ZhciBFeSxIaGU9bigoKT0+e0V5PVtbInBhdGgiLHtkOiJNMjAgNWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMkg5YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDIuNWExLjUgMS41IDAgMCAxIDEuMi42bC42LjhhMS41IDEuNSAwIDAgMCAxLjIuNnoifV0sWyJwYXRoIix7ZDoiTTMgOC4yNjhhMiAyIDAgMCAwLTEgMS43MzhWMTlhMiAyIDAgMCAwIDIgMmgxMWEyIDIgMCAwIDAgMS43MzItMSJ9XV19KTt2YXIgTnkscWhlPW4oKCk9PntOeT1bWyJwYXRoIix7ZDoiTTQgMTZ2LTIuMzhDNCAxMS41IDIuOTcgMTAuNSAzIDhjLjAzLTIuNzIgMS40OS02IDQuNS02QzkuMzcgMiAxMCAzLjggMTAgNS41YzAgMy4xMS0yIDUuNjYtMiA4LjY4VjE2YTIgMiAwIDEgMS00IDBaIn1dLFsicGF0aCIse2Q6Ik0yMCAyMHYtMi4zOGMwLTIuMTIgMS4wMy0zLjEyIDEtNS42Mi0uMDMtMi43Mi0xLjQ5LTYtNC41LTZDMTQuNjMgNiAxNCA3LjggMTQgOS41YzAgMy4xMSAyIDUuNjYgMiA4LjY4VjIwYTIgMiAwIDEgMCA0IDBaIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2g0In1dLFsicGF0aCIse2Q6Ik00IDEzaDQifV1dfSk7dmFyIFB5LFZoZT1uKCgpPT57UHk9W1sicGF0aCIse2Q6Ik0xMiAxMkg1YTIgMiAwIDAgMC0yIDJ2NSJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxOWgzbTUtMTd2MTdoNk02IDEyVjdjMC0xLjEuOS0yIDItMmgzbDUgNSJ9XV19KTt2YXIgSXksVWhlPW4oKCk9PntJeT1bWyJwYXRoIix7ZDoiTTQgMTRoNiJ9XSxbInBhdGgiLHtkOiJNNCAyaDEwIn1dLFsicmVjdCIse3g6IjQiLHk6IjE4Iix3aWR0aDoiMTYiLGhlaWdodDoiNCIscng6IjEifV0sWyJyZWN0Iix7eDoiNCIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXX0pO3ZhciBGeSxqaGU9bigoKT0+e0Z5PVtbInBhdGgiLHtkOiJtMTUgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNNCAxOHYtMmE0IDQgMCAwIDEgNC00aDEyIn1dXX0pO3ZhciBPeSxXaGU9bigoKT0+e095PVtbImxpbmUiLHt4MToiMjIiLHgyOiIyIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMiIseTE6IjE4Iix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiMiIseTI6IjIyIn1dLFsibGluZSIse3gxOiIxOCIseDI6IjE4Iix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBCeSxHaGU9bigoKT0+e0J5PVtbInBhdGgiLHtkOiJNNSAxNlY5aDE0VjJINWwxNCAxNGgtN20tNyAwIDcgN3YtN20tNyAwaDcifV1dfSk7dmFyIFJ5LFloZT1uKCgpPT57Unk9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnMtMS41LTItNC0yLTQgMi00IDIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV19KTt2YXIgSHksWmhlPW4oKCk9PntIeT1bWyJwYXRoIix7ZDoiTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1In1dLFsicGF0aCIse2Q6Ik0xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDEzIn1dLFsicGF0aCIse2Q6Ik0zIDloMTEifV1dfSk7dmFyIHF5LFhoZT1uKCgpPT57cXk9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjgiLHg6IjciLHk6IjgiLHJ4OiIxIn1dXX0pO3ZhciBWeSxRaGU9bigoKT0+e1Z5PVtbInBhdGgiLHtkOiJNMTMuMzU0IDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbDEuMjE4LTEuMzQ4In1dLFsicGF0aCIse2Q6Ik0xNiA2aDYifV0sWyJwYXRoIix7ZDoiTTE5IDN2NiJ9XV19KTt2YXIgTDQsS2hlPW4oKCk9PntMND1bWyJwYXRoIix7ZDoiTTEyLjUzMSAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR2NmExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MWwuNDI3LS40NzMifV0sWyJwYXRoIix7ZDoibTE2LjUgMy41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjEuNSAzLjUtNSA1In1dXX0pO3ZhciBUNCxKaGU9bigoKT0+e1Q0PVtbInBhdGgiLHtkOiJNMTAgMjBhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFMMjEuNzQgNC42N0ExIDEgMCAwIDAgMjEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0eiJ9XV19KTt2YXIgVXksZW1lPW4oKCk9PntVeT1bWyJwYXRoIix7ZDoiTTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNNiA1djE0In1dLFsicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxOCIseDoiMTAiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBqeSx0bWU9bigoKT0+e2p5PVtbInBhdGgiLHtkOiJNMiAzdjE4In1dLFsicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxOCIseDoiNiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDN2MTgifV1dfSk7dmFyIFd5LGFtZT1uKCgpPT57V3k9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxNCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAyMWgxIn1dXX0pO3ZhciBHeSxybWU9bigoKT0+e0d5PVtbInBhdGgiLHtkOiJNNyAyaDEwIn1dLFsicGF0aCIse2Q6Ik01IDZoMTQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiIxMCIscng6IjIifV1dfSk7dmFyIFl5LGltZT1uKCgpPT57WXk9W1sicGF0aCIse2Q6Ik0zIDJoMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XV19KTt2YXIgWnksb21lPW4oKCk9PntaeT1bWyJsaW5lIix7eDE6IjYiLHgyOiIxMCIseTE6IjExIix5MjoiMTEifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiOSIseTI6IjEzIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjEwIix5MjoiMTAifV0sWyJwYXRoIix7ZDoiTTE3LjMyIDVINi42OGE0IDQgMCAwIDAtMy45NzggMy41OWMtLjAwNi4wNTItLjAxLjEwMS0uMDE3LjE1MkMyLjYwNCA5LjQxNiAyIDE0LjQ1NiAyIDE2YTMgMyAwIDAgMCAzIDNjMSAwIDEuNS0uNSAyLTFsMS40MTQtMS40MTRBMiAyIDAgMCAxIDkuODI4IDE2aDQuMzQ0YTIgMiAwIDAgMSAxLjQxNC41ODZMMTcgMThjLjUuNSAxIDEgMiAxYTMgMyAwIDAgMCAzLTNjMC0xLjU0NS0uNjA0LTYuNTg0LS42ODUtNy4yNTgtLjAwNy0uMDUtLjAxMS0uMS0uMDE3LS4xNTFBNCA0IDAgMCAwIDE3LjMyIDV6In1dXX0pO3ZhciBYeSxzbWU9bigoKT0+e1h5PVtbInBhdGgiLHtkOiJNMTEuMTQ2IDE1Ljg1NGExLjIwNyAxLjIwNyAwIDAgMSAxLjcwOCAwbDEuNTYgMS41NkEyIDIgMCAwIDEgMTUgMTguODI4VjIxYTEgMSAwIDAgMS0xIDFoLTRhMSAxIDAgMCAxLTEtMXYtMi4xNzJhMiAyIDAgMCAxIC41ODYtMS40MTR6In1dLFsicGF0aCIse2Q6Ik0xOC44MjggMTVhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTEuNTYtMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwLTEuNzA4bDEuNTYtMS41NkEyIDIgMCAwIDEgMTguODI4IDlIMjFhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDF6In1dLFsicGF0aCIse2Q6Ik02LjU4NiAxNC40MTRBMiAyIDAgMCAxIDUuMTcyIDE1SDNhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaDIuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMS41NiAxLjU2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDh6In1dLFsicGF0aCIse2Q6Ik05IDNhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2Mi4xNzJhMiAyIDAgMCAxLS41ODYgMS40MTRsLTEuNTYgMS41NmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwOCAwbC0xLjU2LTEuNTZBMiAyIDAgMCAxIDkgNS4xNzJ6In1dXX0pO3ZhciBReSxubWU9bigoKT0+e1F5PVtbImxpbmUiLHt4MToiNiIseDI6IjEwIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjgiLHkxOiIxMCIseTI6IjE0In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTMiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjExIix5MjoiMTEifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgS3ksbG1lPW4oKCk9PntLeT1bWyJwYXRoIix7ZDoibTEyIDE0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMy4zNCAxOWExMCAxMCAwIDEgMSAxNy4zMiAwIn1dXX0pO3ZhciBKeSxjbWU9bigoKT0+e0p5PVtbInBhdGgiLHtkOiJtMTQgMTMtOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM2w4LjM4NC04LjM4MSJ9XSxbInBhdGgiLHtkOiJtMTYgMTYgNi02In1dLFsicGF0aCIse2Q6Im0yMS41IDEwLjUtOC04In1dLFsicGF0aCIse2Q6Im04IDggNi02In1dLFsicGF0aCIse2Q6Im04LjUgNy41IDggOCJ9XV19KTt2YXIgZXcsZG1lPW4oKCk9Pntldz1bWyJwYXRoIix7ZDoiTTEwLjUgMyA4IDlsNCAxMyA0LTEzLTIuNS02In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAxLjYuOGwzIDRhMiAyIDAgMCAxIC4wMTMgMi4zODJsLTcuOTkgMTAuOTg2YTIgMiAwIDAgMS0zLjI0NyAwbC03Ljk5LTEwLjk4NkEyIDIgMCAwIDEgMi40IDcuOGwyLjk5OC0zLjk5N0EyIDIgMCAwIDEgNyAzeiJ9XSxbInBhdGgiLHtkOiJNMiA5aDIwIn1dXX0pO3ZhciB0dyxmbWU9bigoKT0+e3R3PVtbInBhdGgiLHtkOiJNMTEuNSAyMWE3LjUgNy41IDAgMSAxIDcuMzUtOSJ9XSxbInBhdGgiLHtkOiJNMTMgMTJWMyJ9XSxbInBhdGgiLHtkOiJNNCAyMWgxNiJ9XSxbInBhdGgiLHtkOiJNOSAxMlYzIn1dXX0pO3ZhciBhdyx1bWU9bigoKT0+e2F3PVtbInBhdGgiLHtkOiJNOSAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMmE4IDggMCAwIDAtOCA4djEybDMtMyAyLjUgMi41TDEyIDE5bDIuNSAyLjVMMTcgMTlsMyAzVjEwYTggOCAwIDAgMC04LTh6In1dXX0pO3ZhciBydyxwbWU9bigoKT0+e3J3PVtbInJlY3QiLHt4OiIzIix5OiI4Iix3aWR0aDoiMTgiLGhlaWdodDoiNCIscng6IjEifV0sWyJwYXRoIix7ZDoiTTEyIDh2MTMifV0sWyJwYXRoIix7ZDoiTTE5IDEydjdhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJ2LTcifV0sWyJwYXRoIix7ZDoiTTcuNSA4YTIuNSAyLjUgMCAwIDEgMC01QTQuOCA4IDAgMCAxIDEyIDhhNC44IDggMCAwIDEgNC41LTUgMi41IDIuNSAwIDAgMSAwIDUifV1dfSk7dmFyIGl3LGhtZT1uKCgpPT57aXc9W1sicGF0aCIse2Q6Ik0xNSA2YTkgOSAwIDAgMC05IDlWMyJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTYifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI2IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgb3csbW1lPW4oKCk9Pntvdz1bWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiMyIseTI6IjE1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE4IDlhOSA5IDAgMCAxLTkgOSJ9XV19KTt2YXIgc3csZ21lPW4oKCk9Pntzdz1bWyJwYXRoIix7ZDoiTTYgM3YxMiJ9XSxbInBhdGgiLHtkOiJNMTggOWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6In1dLFsicGF0aCIse2Q6Ik02IDIxYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnoifV0sWyJwYXRoIix7ZDoiTTE1IDZhOSA5IDAgMCAwLTkgOSJ9XSxbInBhdGgiLHtkOiJNMTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTYifV1dfSk7dmFyIF80LHhtZT1uKCgpPT57XzQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI5Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIyMSIseTE6IjEyIix5MjoiMTIifV1dfSk7dmFyIG53LGJtZT1uKCgpPT57bnc9W1sicGF0aCIse2Q6Ik0xMiAzdjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NiJ9XV19KTt2YXIgbHcsdm1lPW4oKCk9Pntsdz1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcifV0sWyJwYXRoIix7ZDoibTE1IDktMy0zIDMtMyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOEg3YTIgMiAwIDAgMS0yLTJWOSJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzIDMtMyAzIn1dXX0pO3ZhciBjdyx5bWU9bigoKT0+e2N3PVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Ik0xMSAxOEg4YTIgMiAwIDAgMS0yLTJWOSJ9XV19KTt2YXIgZHcsd21lPW4oKCk9Pntkdz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE4IDl2MmMwIC42LS40IDEtMSAxSDdjLS42IDAtMS0uNC0xLTFWOSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2MyJ9XV19KTt2YXIgZncsTW1lPW4oKCk9Pntmdz1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXY2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE2IDE1LjdBOSA5IDAgMCAwIDE5IDkifV1dfSk7dmFyIHV3LHptZT1uKCgpPT57dXc9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYgMjFWOWE5IDkgMCAwIDAgOSA5In1dXX0pO3ZhciBwdyxrbWU9bigoKT0+e3B3PVtbImNpcmNsZSIse2N4OiI1IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNSA5djEyIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTE1IDktMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2NyJ9XV19KTt2YXIgaHcsU21lPW4oKCk9Pntodz1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYgOXYxMiJ9XSxbInBhdGgiLHtkOiJtMjEgMy02IDYifV0sWyJwYXRoIix7ZDoibTIxIDktNi02In1dLFsicGF0aCIse2Q6Ik0xOCAxMS41VjE1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIG13LENtZT1uKCgpPT57bXc9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik01IDl2MTIifV0sWyJwYXRoIix7ZDoibTE1IDktMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjIgMThoLTYifV1dfSk7dmFyIGd3LExtZT1uKCgpPT57Z3c9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik02IDl2MTIifV0sWyJwYXRoIix7ZDoiTTEzIDZoM2EyIDIgMCAwIDEgMiAydjMifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dXX0pO3ZhciB4dyxUbWU9bigoKT0+e3h3PVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xOCA2VjUifV0sWyJwYXRoIix7ZDoiTTE4IDExdi0xIn1dLFsibGluZSIse3gxOiI2Iix4MjoiNiIseTE6IjkiLHkyOiIyMSJ9XV19KTt2YXIgYncsX21lPW4oKCk9Pntidz1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTMgNmgzYTIgMiAwIDAgMSAyIDJ2NyJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiI5Iix5MjoiMjEifV1dfSk7dmFyIHZ3LEFtZT1uKCgpPT57dnc9W1sicGF0aCIse2Q6Ik0xNSAyMnYtNGE0LjggNC44IDAgMCAwLTEtMy41YzMgMCA2LTIgNi01LjUuMDgtMS4yNS0uMjctMi40OC0xLTMuNS4yOC0xLjE1LjI4LTIuMzUgMC0zLjUgMCAwLTEgMC0zIDEuNS0yLjY0LS41LTUuMzYtLjUtOCAwQzYgMiA1IDIgNSAyYy0uMyAxLjE1LS4zIDIuMzUgMCAzLjVBNS40MDMgNS40MDMgMCAwIDAgNCA5YzAgMy41IDMgNS41IDYgNS41LS4zOS40OS0uNjggMS4wNS0uODUgMS42NS0uMTcuNi0uMjIgMS4yMy0uMTUgMS44NXY0In1dLFsicGF0aCIse2Q6Ik05IDE4Yy00LjUxIDItNS0yLTctMiJ9XV19KTt2YXIgeXcsJG1lPW4oKCk9Pnt5dz1bWyJwYXRoIix7ZDoibTIyIDEzLjI5LTMuMzMtMTBhLjQyLjQyIDAgMCAwLS4xNC0uMTguMzguMzggMCAwIDAtLjIyLS4xMS4zOS4zOSAwIDAgMC0uMjMuMDcuNDIuNDIgMCAwIDAtLjE0LjE4bC0yLjI2IDYuNjdIOC4zMkw2LjEgMy4yNmEuNDIuNDIgMCAwIDAtLjEtLjE4LjM4LjM4IDAgMCAwLS4yNi0uMDguMzkuMzkgMCAwIDAtLjIzLjA3LjQyLjQyIDAgMCAwLS4xNC4xOEwyIDEzLjI5YS43NC43NCAwIDAgMCAuMjcuODNMMTIgMjFsOS42OS02Ljg4YS43MS43MSAwIDAgMCAuMzEtLjgzWiJ9XV19KTt2YXIgd3csRG1lPW4oKCk9Pnt3dz1bWyJwYXRoIix7ZDoiTTUuMTE2IDQuMTA0QTEgMSAwIDAgMSA2LjExIDNoMTEuNzhhMSAxIDAgMCAxIC45OTQgMS4xMDVMMTcuMTkgMjAuMjFBMiAyIDAgMCAxIDE1LjIgMjJIOC44YTIgMiAwIDAgMS0yLTEuNzl6In1dLFsicGF0aCIse2Q6Ik02IDEyYTUgNSAwIDAgMSA2IDAgNSA1IDAgMCAwIDYgMCJ9XV19KTt2YXIgTXcsRW1lPW4oKCk9PntNdz1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE1IixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTUiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE0IDE1YTIgMiAwIDAgMC0yLTIgMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMi41IDEzIDUgN2MuNy0xLjMgMS40LTIgMy0yIn1dLFsicGF0aCIse2Q6Ik0yMS41IDEzIDE5IDdjLS43LTEuMy0xLjUtMi0zLTIifV1dfSk7dmFyIHp3LE5tZT1uKCgpPT57enc9W1sicGF0aCIse2Q6Ik0xNS42ODYgMTVBMTQuNSAxNC41IDAgMCAxIDEyIDIyYTE0LjUgMTQuNSAwIDAgMSAwLTIwIDEwIDEwIDAgMSAwIDkuNTQyIDEzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDguNSJ9XSxbInBhdGgiLHtkOiJNMjAgNlY0YTIgMiAwIDEgMC00IDB2MiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiNiIscng6IjEifV1dfSk7dmFyIGt3LFBtZT1uKCgpPT57a3c9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyYTE0LjUgMTQuNSAwIDAgMCAwIDIwIDE0LjUgMTQuNSAwIDAgMCAwLTIwIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dXX0pO3ZhciBTdyxJbWU9bigoKT0+e1N3PVtbInBhdGgiLHtkOiJNMTIgMTNWMmw4IDQtOCA0In1dLFsicGF0aCIse2Q6Ik0yMC41NjEgMTAuMjIyYTkgOSAwIDEgMS0xMi41NS01LjI5In1dLFsicGF0aCIse2Q6Ik04LjAwMiA5Ljk5N2E1IDUgMCAxIDAgOC45IDIuMDIifV1dfSk7dmFyIEN3LEZtZT1uKCgpPT57Q3c9W1sicGF0aCIse2Q6Ik0yIDIxVjMifV0sWyJwYXRoIix7ZDoiTTIgNWgxOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyLjI2In1dLFsicGF0aCIse2Q6Ik03IDE3djNhMSAxIDAgMCAwIDEgMWg1YTEgMSAwIDAgMCAxLTF2LTMifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTEiLHI6IjIifV1dfSk7dmFyIEx3LE9tZT1uKCgpPT57THc9W1sicGF0aCIse2Q6Ik0yMS40MiAxMC45MjJhMSAxIDAgMCAwLS4wMTktMS44MzhMMTIuODMgNS4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA5LjA4YTEgMSAwIDAgMCAwIDEuODMybDguNTcgMy45MDhhMiAyIDAgMCAwIDEuNjYgMHoifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTYgMTIuNVYxNmE2IDMgMCAwIDAgMTIgMHYtMy41In1dXX0pO3ZhciBUdyxCbWU9bigoKT0+e1R3PVtbInBhdGgiLHtkOiJNMjIgNVYybC01Ljg5IDUuODkifV0sWyJjaXJjbGUiLHtjeDoiMTYuNiIsY3k6IjE1Ljg5IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjguMTEiLGN5OiI3LjQiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTIuMzUiLGN5OiIxMS42NSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMy45MSIsY3k6IjUuODUiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTguMTUiLGN5OiIxMC4wOSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2LjU2IixjeToiMTMuMiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMC44IixjeToiMTcuNDQiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIzIn1dXX0pO3ZhciBBNCxSbWU9bigoKT0+e0E0PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAyIDQtNCJ9XV19KTt2YXIgJDQsSG1lPW4oKCk9PnskND1bWyJwYXRoIix7ZDoiTTEyIDN2MTdhMSAxIDAgMCAxLTEgMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NmExIDEgMCAwIDEtMSAxSDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE5IDIydi02In1dXX0pO3ZhciBENCxxbWU9bigoKT0+e0Q0PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTYgNSA1In1dLFsicGF0aCIse2Q6Im0xNiAyMSA1LTUifV1dfSk7dmFyIEU0LFZtZT1uKCgpPT57RTQ9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIF93LFVtZT1uKCgpPT57X3c9W1sicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgRmksam1lPW4oKCk9PntGaT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dfSk7dmFyIEF3LFdtZT1uKCgpPT57QXc9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxNSIscjoiMSJ9XV19KTt2YXIgJHcsR21lPW4oKCk9Pnskdz1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjE5IixyOiIxIn1dXX0pO3ZhciBEdyxZbWU9bigoKT0+e0R3PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV19KTt2YXIgRXcsWm1lPW4oKCk9PntFdz1bWyJwYXRoIix7ZDoiTTMgN1Y1YzAtMS4xLjktMiAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYzEuMSAwIDIgLjkgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJjMCAxLjEtLjkgMi0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWMtMS4xIDAtMi0uOS0yLTJ2LTIifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNSIseDoiNyIseToiNyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNSIseDoiMTAiLHk6IjEyIixyeDoiMSJ9XV19KTt2YXIgTncsWG1lPW4oKCk9PntOdz1bWyJwYXRoIix7ZDoiTTEzLjE0NCAyMS4xNDRBNy4yNzQgMTAuNDQ1IDQ1IDEgMCAyLjg1NiAxMC44NTYifV0sWyJwYXRoIix7ZDoiTTEzLjE0NCAyMS4xNDRBNy4yNzQgNC4zNjUgNDUgMCAwIDIuODU2IDEwLjg1NmE3LjI3NCA0LjM2NSA0NSAwIDAgMTAuMjg4IDEwLjI4OCJ9XSxbInBhdGgiLHtkOiJNMTYuNTY1IDEwLjQzNSAxOC42IDguNGEyLjUwMSAyLjUwMSAwIDEgMCAxLjY1LTQuNjUgMi41IDIuNSAwIDEgMC00LjY2IDEuNjZsLTIuMDI0IDIuMDI1In1dLFsicGF0aCIse2Q6Im04LjUgMTYuNS0xLTEifV1dfSk7dmFyIFB3LFFtZT1uKCgpPT57UHc9W1sicGF0aCIse2Q6Im0xMS45IDEyLjEgNC41MTQtNC41MTQifV0sWyJwYXRoIix7ZDoiTTIwLjEgMi4zYTEgMSAwIDAgMC0xLjQgMGwtMS4xMTQgMS4xMTRBMiAyIDAgMCAwIDE3IDQuODI4djEuMzQ0YTIgMiAwIDAgMS0uNTg2IDEuNDE0QTIgMiAwIDAgMSAxNy44MjggN2gxLjM0NGEyIDIgMCAwIDAgMS40MTQtLjU4NkwyMS43IDUuM2ExIDEgMCAwIDAgMC0xLjR6In1dLFsicGF0aCIse2Q6Im02IDE2IDIgMiJ9XSxbInBhdGgiLHtkOiJNOC4yMyA5Ljg1QTMgMyAwIDAgMSAxMSA4YTUgNSAwIDAgMSA1IDUgMyAzIDAgMCAxLTEuODUgMi43N2wtLjkyLjM4QTIgMiAwIDAgMCAxMiAxOGE0IDQgMCAwIDEtNCA0IDYgNiAwIDAgMS02LTYgNCA0IDAgMCAxIDQtNCAyIDIgMCAwIDAgMS44NS0xLjIzeiJ9XV19KTt2YXIgSXcsS21lPW4oKCk9PntJdz1bWyJwYXRoIix7ZDoiTTEyIDE2SDRhMiAyIDAgMSAxIDAtNGgxNmEyIDIgMCAxIDEgMCA0aC00LjI1In1dLFsicGF0aCIse2Q6Ik01IDEyYTIgMiAwIDAgMS0yLTIgOSA3IDAgMCAxIDE4IDAgMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNNSAxNmEyIDIgMCAwIDAtMiAyIDMgMyAwIDAgMCAzIDNoMTJhMyAzIDAgMCAwIDMtMyAyIDIgMCAwIDAtMi0ycTAgMCAwIDAifV0sWyJwYXRoIix7ZDoibTYuNjcgMTIgNi4xMyA0LjZhMiAyIDAgMCAwIDIuOC0uNGwzLjE1LTQuMiJ9XV19KTt2YXIgRncsSm1lPW4oKCk9PntGdz1bWyJwYXRoIix7ZDoibTE1IDEyLTkuMzczIDkuMzczYTEgMSAwIDAgMS0zLjAwMS0zTDEyIDkifV0sWyJwYXRoIix7ZDoibTE4IDE1IDQtNCJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxMS41LTEuOTE0LTEuOTE0QTIgMiAwIDAgMSAxOSA4LjE3MnYtLjM0NGEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtMS42NTctMS42NTdBNiA2IDAgMCAwIDEyLjUxNiAzSDlsMS4yNDMgMS4yNDNBNiA2IDAgMCAxIDEyIDguNDg1VjEwbDIgMmgxLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2TDE4LjUgMTQuNSJ9XV19KTt2YXIgT3csZWdlPW4oKCk9PntPdz1bWyJwYXRoIix7ZDoiTTExIDE1aDJhMiAyIDAgMSAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE3In1dLFsicGF0aCIse2Q6Im03IDIxIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTIgMiAwIDAgMC0yLjc1LTIuOTFsLTQuMiAzLjkifV0sWyJwYXRoIix7ZDoibTIgMTYgNiA2In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiOSIscjoiMi45In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI1IixyOiIzIn1dXX0pO3ZhciBCdyx0Z2U9bigoKT0+e0J3PVtbInBhdGgiLHtkOiJNMTIuMDM1IDE3LjAxMmEzIDMgMCAwIDAtMy0zbC0uMzExLS4wMDJhLjcyLjcyIDAgMCAxLS41MDUtMS4yMjlsMS4xOTUtMS4xOTVBMiAyIDAgMCAxIDEwLjgyOCAxMUgxMmEyIDIgMCAwIDAgMC00SDkuMjQzYTMgMyAwIDAgMC0yLjEyMi44NzlsLTIuNzA3IDIuNzA3QTQuODMgNC44MyAwIDAgMCAzIDE0YTggOCAwIDAgMCA4IDhoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHYyYTIgMiAwIDEgMCA0IDAifV0sWyJwYXRoIix7ZDoiTTEzLjg4OCA5LjY2MkEyIDIgMCAwIDAgMTcgOFY1QTIgMiAwIDEgMCAxMyA1In1dLFsicGF0aCIse2Q6Ik05IDVBMiAyIDAgMSAwIDUgNVYxMCJ9XSxbInBhdGgiLHtkOiJNOSA3VjRBMiAyIDAgMSAxIDEzIDRWNy4yNjgifV1dfSk7dmFyIE40LGFnZT1uKCgpPT57TjQ9W1sicGF0aCIse2Q6Ik0xOCAxMS41VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEuNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTAgOS45VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjUifV0sWyJwYXRoIix7ZDoiTTYgMTRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtNGE4IDggMCAwIDEtOC04IDIgMiAwIDEgMSA0IDAifV1dfSk7dmFyIFJ3LHJnZT1uKCgpPT57Unc9W1sicGF0aCIse2Q6Ik0xMSAxNGgyYTIgMiAwIDAgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNiJ9XSxbInBhdGgiLHtkOiJtMTQuNDUgMTMuMzkgNS4wNS00LjY5NEMyMC4xOTYgOCAyMSA2Ljg1IDIxIDUuNzVhMi43NSAyLjc1IDAgMCAwLTQuNzk3LTEuODM3LjI3Ni4yNzYgMCAwIDEtLjQwNiAwQTIuNzUgMi43NSAwIDAgMCAxMSA1Ljc1YzAgMS4yLjgwMiAyLjI0OCAxLjUgMi45NDZMMTYgMTEuOTUifV0sWyJwYXRoIix7ZDoibTIgMTUgNiA2In1dLFsicGF0aCIse2Q6Im03IDIwIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTEgMSAwIDAgMC0yLjc1LTIuOTEifV1dfSk7dmFyIFA0LGlnZT1uKCgpPT57UDQ9W1sicGF0aCIse2Q6Ik0xMSAxMmgyYTIgMiAwIDEgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNCJ9XSxbInBhdGgiLHtkOiJtNyAxOCAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGEyIDIgMCAwIDAtMi43NS0yLjkxbC00LjIgMy45In1dLFsicGF0aCIse2Q6Im0yIDEzIDYgNiJ9XV19KTt2YXIgSHcsb2dlPW4oKCk9PntIdz1bWyJwYXRoIix7ZDoiTTE4IDEyLjVWMTBhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEuNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTFWOWEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTEwIDEwLjVWNWEyIDIgMCAxIDAtNCAwdjkifV0sWyJwYXRoIix7ZDoibTcgMTUtMS43Ni0xLjc2YTIgMiAwIDAgMC0yLjgzIDIuODJsMy42IDMuNkM3LjUgMjEuMTQgOS4yIDIyIDEyIDIyaDJhOCA4IDAgMCAwIDgtOFY3YTIgMiAwIDEgMC00IDB2NSJ9XV19KTt2YXIgcXcsc2dlPW4oKCk9Pntxdz1bWyJwYXRoIix7ZDoiTTEyIDNWMiJ9XSxbInBhdGgiLHtkOiJtMTUuNCAxNy40IDMuMi0yLjhhMiAyIDAgMSAxIDIuOCAyLjlsLTMuNiAzLjNjLS43LjgtMS43IDEuMi0yLjggMS4yaC00Yy0xLjEgMC0yLjEtLjQtMi44LTEuMmwtMS4zMDItMS40NjRBMSAxIDAgMCAwIDYuMTUxIDE5SDUifV0sWyJwYXRoIix7ZDoiTTIgMTRoMTJhMiAyIDAgMCAxIDAgNGgtMiJ9XSxbInBhdGgiLHtkOiJNNCAxMGgxNiJ9XSxbInBhdGgiLHtkOiJNNSAxMGE3IDcgMCAwIDEgMTQgMCJ9XSxbInBhdGgiLHtkOiJNNSAxNHY2YTEgMSAwIDAgMS0xIDFIMiJ9XV19KTt2YXIgVncsbmdlPW4oKCk9PntWdz1bWyJwYXRoIix7ZDoiTTE4IDExVjZhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMFY0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMC41VjZhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjgifV0sWyJwYXRoIix7ZDoiTTE4IDhhMiAyIDAgMSAxIDQgMHY2YTggOCAwIDAgMS04IDhoLTJjLTIuOCAwLTQuNS0uODYtNS45OS0yLjM0bC0zLjYtMy42YTIgMiAwIDAgMSAyLjgzLTIuODJMNyAxNSJ9XV19KTt2YXIgVXcsbGdlPW4oKCk9PntVdz1bWyJwYXRoIix7ZDoiTTIuMDQ4IDE4LjU2NkEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45NTItMi40MzRsLTItOUEyIDIgMCAwIDAgMTggOEg2YTIgMiAwIDAgMC0xLjk1MiAxLjU2NnoifV0sWyJwYXRoIix7ZDoiTTggMTFWNmE0IDQgMCAwIDEgOCAwdjUifV1dfSk7dmFyIGp3LGNnZT1uKCgpPT57anc9W1sicGF0aCIse2Q6Im0xMSAxNyAyIDJhMSAxIDAgMSAwIDMtMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTQgMi41IDIuNWExIDEgMCAxIDAgMy0zbC0zLjg4LTMuODhhMyAzIDAgMCAwLTQuMjQgMGwtLjg4Ljg4YTEgMSAwIDEgMS0zLTNsMi44MS0yLjgxYTUuNzkgNS43OSAwIDAgMSA3LjA2LS44N2wuNDcuMjhhMiAyIDAgMCAwIDEuNDIuMjVMMjEgNCJ9XSxbInBhdGgiLHtkOiJtMjEgMyAxIDExaC0yIn1dLFsicGF0aCIse2Q6Ik0zIDMgMiAxNGw2LjUgNi41YTEgMSAwIDEgMCAzLTMifV0sWyJwYXRoIix7ZDoiTTMgNGg4In1dXX0pO3ZhciBXdyxkZ2U9bigoKT0+e1d3PVtbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicGF0aCIse2Q6Im0xNiA2LTQgNC00LTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE4aC4wMSJ9XV19KTt2YXIgR3csZmdlPW4oKCk9PntHdz1bWyJwYXRoIix7ZDoibTE2IDYtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOGguMDEifV1dfSk7dmFyIFl3LHVnZT1uKCgpPT57WXc9W1sicGF0aCIse2Q6Ik0xMCAxMFY1YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE0IDZhNiA2IDAgMCAxIDYgNnYzIn1dLFsicGF0aCIse2Q6Ik00IDE1di0zYTYgNiAwIDAgMSA2LTYifV0sWyJyZWN0Iix7eDoiMiIseToiMTUiLHdpZHRoOiIyMCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV19KTt2YXIgWncscGdlPW4oKCk9Pntadz1bWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxMCIseDI6IjgiLHkxOiIzIix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMTQiLHkxOiIzIix5MjoiMjEifV1dfSk7dmFyIFh3LGhnZT1uKCgpPT57WHc9W1sibGluZSIse3gxOiIyMiIseDI6IjIiLHkxOiIxMiIseTI6IjEyIn1dLFsicGF0aCIse2Q6Ik01LjQ1IDUuMTEgMiAxMnY2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNmwtMy40NS02Ljg5QTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXoifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiMTYiLHkyOiIxNiJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMC4wMSIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIFF3LG1nZT1uKCgpPT57UXc9W1sicGF0aCIse2Q6Ik0xNCAxOGEyIDIgMCAwIDAtNCAwIn1dLFsicGF0aCIse2Q6Im0xOSAxMS0yLjExLTYuNjU3YTIgMiAwIDAgMC0yLjc1Mi0xLjE0OGwtMS4yNzYuNjFBMiAyIDAgMCAxIDEyIDRIOC41YTIgMiAwIDAgMC0xLjkyNSAxLjQ1Nkw1IDExIn1dLFsicGF0aCIse2Q6Ik0yIDExaDIwIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIzIn1dXX0pO3ZhciBLdyxnZ2U9bigoKT0+e0t3PVtbInBhdGgiLHtkOiJtNS4yIDYuMiAxLjQgMS40In1dLFsicGF0aCIse2Q6Ik0yIDEzaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEzaDIifV0sWyJwYXRoIix7ZDoibTE3LjQgNy42IDEuNC0xLjQifV0sWyJwYXRoIix7ZDoiTTIyIDE3SDIifV0sWyJwYXRoIix7ZDoiTTIyIDIxSDIifV0sWyJwYXRoIix7ZDoiTTE2IDEzYTQgNCAwIDAgMC04IDAifV0sWyJwYXRoIix7ZDoiTTEyIDVWMi41In1dXX0pO3ZhciBKdyx4Z2U9bigoKT0+e0p3PVtbInBhdGgiLHtkOiJNMTAgMTJINiJ9XSxbInBhdGgiLHtkOiJNMTAgMTVWOSJ9XSxbInBhdGgiLHtkOiJNMTQgMTQuNWEuNS41IDAgMCAwIC41LjVoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFBMi41IDIuNSAwIDAgMCAxNS41IDloLTFhLjUuNSAwIDAgMC0uNS41eiJ9XSxbInBhdGgiLHtkOiJNNiAxNVY5In1dLFsicmVjdCIse3g6IjIiLHk6IjUiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dfSk7dmFyIGVNLGJnZT1uKCgpPT57ZU09W1sicGF0aCIse2Q6Ik0yMiA5YTEgMSAwIDAgMC0xLTFIM2ExIDEgMCAwIDAtMSAxdjRhMSAxIDAgMCAwIDEgMWgxbDIgMmgxMmwyLTJoMWExIDEgMCAwIDAgMS0xWiJ9XSxbInBhdGgiLHtkOiJNNy41IDEyaDkifV1dfSk7dmFyIHRNLHZnZT1uKCgpPT57dE09W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJtMTcgMTIgMy0ydjgifV1dfSk7dmFyIGFNLHlnZT1uKCgpPT57YU09W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMC41YzEuNy0xIDMuNSAwIDMuNSAxLjVhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTcuNWMyIDEuNSA0IC4zIDQtMS41YTIgMiAwIDAgMC0yLTIifV1dfSk7dmFyIHJNLHdnZT1uKCgpPT57ck09W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTRjMC00IDQtMyA0LTYgMC0xLjUtMi0yLjUtNC0xIn1dXX0pO3ZhciBpTSxNZ2U9bigoKT0+e2lNPVtbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTB2M2ExIDEgMCAwIDAgMSAxaDMifV0sWyJwYXRoIix7ZDoiTTIxIDEwdjgifV0sWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dXX0pO3ZhciBvTSx6Z2U9bigoKT0+e29NPVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoiTTE3IDEzdi0zaDQifV0sWyJwYXRoIix7ZDoiTTE3IDE3LjdjLjQuMi44LjMgMS4zLjMgMS41IDAgMi43LTEuMSAyLjctMi41UzE5LjggMTMgMTguMyAxM0gxNyJ9XV19KTt2YXIgc00sa2dlPW4oKCk9PntzTT1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTIwIDEwYy0yIDItMyAzLjUtMyA2In1dXX0pO3ZhciBuTSxTZ2U9bigoKT0+e25NPVtbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNNiAyMFY0In1dLFsicGF0aCIse2Q6Ik0xOCAyMFY0In1dXX0pO3ZhciBsTSxDZ2U9bigoKT0+e2xNPVtbInBhdGgiLHtkOiJNMjEgMTRoLTEuMzQzIn1dLFsicGF0aCIse2Q6Ik05LjEyOCAzLjQ3QTkgOSAwIDAgMSAyMSAxMnYzLjM0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMC40MTQgMjAuNDE0QTIgMiAwIDAgMSAxOSAyMWgtMWEyIDIgMCAwIDEtMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAyLjYzNi02LjM2NCJ9XV19KTt2YXIgY00sTGdlPW4oKCk9PntjTT1bWyJwYXRoIix7ZDoiTTMgMTRoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTdhOSA5IDAgMCAxIDE4IDB2N2EyIDIgMCAwIDEtMiAyaC0xYTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmgzIn1dXX0pO3ZhciBkTSxUZ2U9bigoKT0+e2RNPVtbInBhdGgiLHtkOiJNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaIn1dLFsicGF0aCIse2Q6Ik0yMSAxNnYyYTQgNCAwIDAgMS00IDRoLTUifV1dfSk7dmFyIGZNLF9nZT1uKCgpPT57Zk09W1sicGF0aCIse2Q6Ik0xMi40MDkgNS44MjRjLS43MDIuNzkyLTEuMTUgMS40OTYtMS40MTUgMi4xNjZsMi4xNTMgMi4xNTZhLjUuNSAwIDAgMSAwIC43MDdsLTIuMjkzIDIuMjkzYS41LjUgMCAwIDAgMCAuNzA3TDEyIDE1In1dLFsicGF0aCIse2Q6Ik0xMy41MDggMjAuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc3LjYuNiAwIDAgMCAuODE4LjAwMUE1LjUgNS41IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjV6In1dXX0pO3ZhciB1TSxBZ2U9bigoKT0+e3VNPVtbInBhdGgiLHtkOiJNMTkuNDE0IDE0LjQxNEMyMSAxMi44MjggMjIgMTEuNSAyMiA5LjVhNS41IDUuNSAwIDAgMC05LjU5MS0zLjY3Ni42LjYgMCAwIDEtLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyIDkuNWMwIDIuMyAxLjUgNCAzIDUuNWw1LjUzNSA1LjM2MmEyIDIgMCAwIDAgMi44NzkuMDUyIDIuMTIgMi4xMiAwIDAgMC0uMDA0LTMgMi4xMjQgMi4xMjQgMCAxIDAgMy0zIDIuMTI0IDIuMTI0IDAgMCAwIDMuMDA0IDAgMiAyIDAgMCAwIDAtMi44MjhsLTEuODgxLTEuODgyYTIuNDEgMi40MSAwIDAgMC0zLjQwOSAwbC0xLjcxIDEuNzFhMiAyIDAgMCAxLTIuODI4IDAgMiAyIDAgMCAxIDAtMi44MjhsMi44MjMtMi43NjIifV1dfSk7dmFyIHBNLCRnZT1uKCgpPT57cE09W1sicGF0aCIse2Q6Im0xNC44NzYgMTguOTktMS4zNjggMS4zMjNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVhNS4yIDUuMiAwIDAgMS0uMjQ0IDEuNTcyIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWg2In1dXX0pO3ZhciBoTSxEZ2U9bigoKT0+e2hNPVtbInBhdGgiLHtkOiJNMTAuNSA0Ljg5M2E1LjUgNS41IDAgMCAxIDEuMDkxLjkzMS41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDEuODcyLTEuMDAyIDMuMzU2LTIuMTg3IDQuNjU1In1dLFsicGF0aCIse2Q6Im0xNi45NjcgMTYuOTY3LTMuNDU5IDMuMzQ2YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDIuNzQ3LTQuNzYxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIG1NLEVnZT1uKCgpPT57bU09W1sicGF0aCIse2Q6Im0xNC40NzkgMTkuMzc0LS45NzEuOTM5YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YTUuMiA1LjIgMCAwIDEtLjIxOSAxLjQ5In1dLFsicGF0aCIse2Q6Ik0xNSAxNWg2In1dLFsicGF0aCIse2Q6Ik0xOCAxMnY2In1dXX0pO3ZhciBnTSxOZ2U9bigoKT0+e2dNPVtbInBhdGgiLHtkOiJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSJ9XSxbInBhdGgiLHtkOiJNMy4yMiAxM0g5LjVsLjUtMSAyIDQuNSAyLTcgMS41IDMuNWg1LjI3In1dXX0pO3ZhciB4TSxQZ2U9bigoKT0+e3hNPVtbInBhdGgiLHtkOiJNMTEgOGMyLTMtMi0zIDAtNiJ9XSxbInBhdGgiLHtkOiJNMTUuNSA4YzItMy0yLTMgMC02In1dLFsicGF0aCIse2Q6Ik02IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2di00In1dLFsicGF0aCIse2Q6Ik0xNCAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZ2LTQifV0sWyJwYXRoIix7ZDoiTTIwIDZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNNSAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAyMHYyIn1dXX0pO3ZhciBiTSxJZ2U9bigoKT0+e2JNPVtbInBhdGgiLHtkOiJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSJ9XV19KTt2YXIgdk0sRmdlPW4oKCk9Pnt2TT1bWyJwYXRoIix7ZDoiTTExIDE3djQifV0sWyJwYXRoIix7ZDoiTTE0IDN2OGEyIDIgMCAwIDAgMiAyaDUuODY1In1dLFsicGF0aCIse2Q6Ik0xNyAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xOCAxN2E0IDQgMCAwIDAgNC00IDggNiAwIDAgMC04LTYgNiA1IDAgMCAwLTYgNXYzYTIgMiAwIDAgMCAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yIDEwdjUifV0sWyJwYXRoIix7ZDoiTTYgM2gxNiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxNCJ9XSxbInBhdGgiLHtkOiJNOCAxM0gyIn1dXX0pO3ZhciB5TSxPZ2U9bigoKT0+e3lNPVtbInBhdGgiLHtkOiJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6In1dXX0pO3ZhciB3TSxCZ2U9bigoKT0+e3dNPVtbInBhdGgiLHtkOiJtOSAxMS02IDZ2M2g5bDMtMyJ9XSxbInBhdGgiLHtkOiJtMjIgMTItNC42IDQuNmEyIDIgMCAwIDEtMi44IDBsLTUuMi01LjJhMiAyIDAgMCAxIDAtMi44TDE0IDQifV1dfSk7dmFyIE1NLFJnZT1uKCgpPT57TU09W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDEgMCA5LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDgifV0sWyJwYXRoIix7ZDoiTTMgM3Y1aDUifV0sWyJwYXRoIix7ZDoiTTEyIDd2NWw0IDIifV1dfSk7dmFyIHpNLEhnZT1uKCgpPT57ek09W1sicGF0aCIse2Q6Ik0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjU1LjAzIDEtLjQyLjk3LS45Ny0uMDYtMS4yNy0uMjYtMy41LS44NS01LjE4In1dLFsicGF0aCIse2Q6Ik0xMS41IDYuNWMxLjY0IDAgNS0uMzggNi43MS0xLjA3LjUyLS4yLjU1LS44Mi4xMi0xLjE3QTEwIDEwIDAgMCAwIDQuMjYgMTguMzNjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODguODggMCAwIDAgLjczLS43NGMuMy0yLjE0LS4xNS0zLjUtLjYxLTQuODgifV0sWyJwYXRoIix7ZDoiTTE1LjYyIDE2Ljk1Yy4yLjg1LjYyIDIuNzYuNSA0LjI4YS43Ny43NyAwIDAgMS0uOS43IDE2LjY0IDE2LjY0IDAgMCAxLTQuMDgtMS4zNiJ9XSxbInBhdGgiLHtkOiJNMTYuMTMgMjEuMDVjMS42NS42MyAzLjY4Ljg0IDQuODcuOTFhLjkuOSAwIDAgMCAuOTYtLjk2IDE3LjY4IDE3LjY4IDAgMCAwLS45LTQuODcifV0sWyJwYXRoIix7ZDoiTTE2Ljk0IDE1LjYyYy44Ni4yIDIuNzcuNjIgNC4yOS41YS43Ny43NyAwIDAgMCAuNy0uOSAxNi42NCAxNi42NCAwIDAgMC0xLjM2LTQuMDgifV0sWyJwYXRoIix7ZDoiTTE3Ljk5IDUuNTJhMjAuODIgMjAuODIgMCAwIDEgMy4xNSA0LjUuOC44IDAgMCAxLS42OCAxLjEzYy0yLjMzLjItNS4zLS4zMi04LjI3LTEuNTcifV0sWyJwYXRoIix7ZDoiTTQuOTMgNC45MyAzIDNhLjcuNyAwIDAgMSAwLTEifV0sWyJwYXRoIix7ZDoiTTkuNTggMTIuMThjMS4yNCAyLjk4IDEuNzcgNS45NSAxLjU3IDguMjhhLjguOCAwIDAgMS0xLjEzLjY4IDIwLjgyIDIwLjgyIDAgMCAxLTQuNS0zLjE1In1dXX0pO3ZhciBrTSxxZ2U9bigoKT0+e2tNPVtbInBhdGgiLHtkOiJNMTAuODIgMTYuMTJjMS42OS42IDMuOTEuNzkgNS4xOC44NS4yOC4wMS41My0uMDkuNy0uMjcifV0sWyJwYXRoIix7ZDoiTTExLjE0IDIwLjU3Yy41Mi4yNCAyLjQ0IDEuMTIgNC4wOCAxLjM3LjQ2LjA2Ljg2LS4yNS45LS43MS4xMi0xLjUyLS4zLTMuNDMtLjUtNC4yOCJ9XSxbInBhdGgiLHtkOiJNMTYuMTMgMjEuMDVjMS42NS42MyAzLjY4Ljg0IDQuODcuOTFhLjkuOSAwIDAgMCAuNy0uMjYifV0sWyJwYXRoIix7ZDoiTTE3Ljk5IDUuNTJhMjAuODMgMjAuODMgMCAwIDEgMy4xNSA0LjUuOC44IDAgMCAxLS42OCAxLjEzYy0xLjE3LjEtMi41LjAyLTMuOS0uMjUifV0sWyJwYXRoIix7ZDoiTTIwLjU3IDExLjE0Yy4yNC41MiAxLjEyIDIuNDQgMS4zNyA0LjA4LjA0LjMtLjA4LjU5LS4zMS43NSJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkzYTEwIDEwIDAgMCAwLS42NyAxMy40Yy4zNS40My45Ni40IDEuMTctLjEyLjY5LTEuNzEgMS4wNy01LjA3IDEuMDctNi43MSAxLjM0LjQ1IDMuMS45IDQuODguNjJhLjg1Ljg1IDAgMCAwIC40OC0uMjQifV0sWyJwYXRoIix7ZDoiTTUuNTIgMTcuOTljMS4wNS45NSAyLjkxIDIuNDIgNC41IDMuMTVhLjguOCAwIDAgMCAxLjEzLS42OGMuMi0yLjM0LS4zMy01LjMtMS41Ny04LjI4In1dLFsicGF0aCIse2Q6Ik04LjM1IDIuNjhhMTAgMTAgMCAwIDEgOS45OCAxLjU4Yy40My4zNS40Ljk2LS4xMiAxLjE3LTEuNS42LTQuMy45OC02LjA3IDEuMDUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgU00sVmdlPW4oKCk9PntTTT1bWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xNCA5aC00In1dLFsicGF0aCIse2Q6Ik0xOCAxMWgyYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE4IDIxVjVhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTYifV1dfSk7dmFyIENNLFVnZT1uKCgpPT57Q009W1sicGF0aCIse2Q6Ik0xMCAyMnYtNi41NyJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDNWMjIifV0sWyJwYXRoIix7ZDoiTTE1IDE2YTUgNSAwIDAgMC02IDAifV0sWyJwYXRoIix7ZDoiTTE2IDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgN2guMDEifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDdoLjAxIn1dLFsicmVjdCIse3g6IjQiLHk6IjIiLHdpZHRoOiIxNiIsaGVpZ2h0OiIyMCIscng6IjIifV1dfSk7dmFyIExNLGpnZT1uKCgpPT57TE09W1sicGF0aCIse2Q6Ik01IDIyaDE0In1dLFsicGF0aCIse2Q6Ik01IDJoMTQifV0sWyJwYXRoIix7ZDoiTTE3IDIydi00LjE3MmEyIDIgMCAwIDAtLjU4Ni0xLjQxNEwxMiAxMmwtNC40MTQgNC40MTRBMiAyIDAgMCAwIDcgMTcuODI4VjIyIn1dLFsicGF0aCIse2Q6Ik03IDJ2NC4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRMMTIgMTJsNC40MTQtNC40MTRBMiAyIDAgMCAwIDE3IDYuMTcyVjIifV1dfSk7dmFyIFRNLFdnZT1uKCgpPT57VE09W1sicGF0aCIse2Q6Ik04LjYyIDEzLjhBMi4yNSAyLjI1IDAgMSAxIDEyIDEwLjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHoifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV1dfSk7dmFyIF9NLEdnZT1uKCgpPT57X009W1sicGF0aCIse2Q6Ik0xMCAxMlY4Ljk2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJWOC45NjQifV0sWyJwYXRoIix7ZDoiTTE1IDEyYTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0yLTJ2LTJhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTguNSAyMUg1YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAyaC01YTIgMiAwIDAgMS0yLTJ2LTIifV1dfSk7dmFyIEFNLFlnZT1uKCgpPT57QU09W1sicGF0aCIse2Q6Ik0xMi4zNSAyMUg1YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIC43MS0xLjUzbDctNmEyIDIgMCAwIDEgMi41OCAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2Mi4zNSJ9XSxbInBhdGgiLHtkOiJNMTQuOCAxMi40QTEgMSAwIDAgMCAxNCAxMmgtNGExIDEgMCAwIDAtMSAxdjgifV0sWyJwYXRoIix7ZDoiTTE1IDE4aDYifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV1dfSk7dmFyICRNLFpnZT1uKCgpPT57JE09W1sicGF0aCIse2Q6Ik05LjUgMTMuODY2YTQgNCAwIDAgMSA1IC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dLFsicGF0aCIse2Q6Ik03IDEwLjc1NGE4IDggMCAwIDEgMTAgMCJ9XV19KTt2YXIgSTQsWGdlPW4oKCk9PntJND1bWyJwYXRoIix7ZDoiTTE1IDIxdi04YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXY4In1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dXX0pO3ZhciBGNCxRZ2U9bigoKT0+e0Y0PVtbInBhdGgiLHtkOiJNMTIgMTdjNSAwIDgtMi42OSA4LTZINGMwIDMuMzEgMyA2IDggNm0tNCA0aDhtLTQtM3YzTTUuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAifV0sWyJwYXRoIix7ZDoiTTEyLjE0IDExYTMuNSAzLjUgMCAxIDEgNi43MSAwIn1dLFsicGF0aCIse2Q6Ik0xNS41IDYuNWEzLjUgMy41IDAgMSAwLTcgMCJ9XV19KTt2YXIgTzQsS2dlPW4oKCk9PntPND1bWyJwYXRoIix7ZDoibTcgMTEgNC4wOCAxMC4zNWExIDEgMCAwIDAgMS44NCAwTDE3IDExIn1dLFsicGF0aCIse2Q6Ik0xNyA3QTUgNSAwIDAgMCA3IDcifV0sWyJwYXRoIix7ZDoiTTE3IDdhMiAyIDAgMCAxIDAgNEg3YTIgMiAwIDAgMSAwLTQifV1dfSk7dmFyIERNLEpnZT1uKCgpPT57RE09W1sicGF0aCIse2Q6Ik0xMy41IDhoLTMifV0sWyJwYXRoIix7ZDoibTE1IDItMSAyaDNhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYuODk5IDIyQTUgNSAwIDAgMCA3LjEgMjIifV0sWyJwYXRoIix7ZDoibTkgMiAzIDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMyJ9XV19KTt2YXIgRU0sZXhlPW4oKCk9PntFTT1bWyJwYXRoIix7ZDoiTTE2IDEwaDIifV0sWyJwYXRoIix7ZDoiTTE2IDE0aDIifV0sWyJwYXRoIix7ZDoiTTYuMTcgMTVhMyAzIDAgMCAxIDUuNjYgMCJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTEiLHI6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgTk0sdHhlPW4oKCk9PntOTT1bWyJwYXRoIix7ZDoiTTEwLjMgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjEwbC0zLjEtMy4xYTIgMiAwIDAgMC0yLjgxNC4wMTRMNiAyMSJ9XSxbInBhdGgiLHtkOiJtMTQgMTkgMyAzdi01LjUifV0sWyJwYXRoIix7ZDoibTE3IDIyIDMtMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV19KTt2YXIgUE0sYXhlPW4oKCk9PntQTT1bWyJwYXRoIix7ZDoiTTIxIDl2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMjIiLHkxOiI1Iix5MjoiNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSJ9XV19KTt2YXIgSU0scnhlPW4oKCk9PntJTT1bWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XSxbInBhdGgiLHtkOiJNMTAuNDEgMTAuNDFhMiAyIDAgMSAxLTIuODMtMi44MyJ9XSxbImxpbmUiLHt4MToiMTMuNSIseDI6IjYiLHkxOiIxMy41Iix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMjEiLHkxOiIxMiIseTI6IjE1In1dLFsicGF0aCIse2Q6Ik0zLjU5IDMuNTlBMS45OSAxLjk5IDAgMCAwIDMgNXYxNGEyIDIgMCAwIDAgMiAyaDE0Yy41NSAwIDEuMDUyLS4yMiAxLjQxLS41OSJ9XSxbInBhdGgiLHtkOiJNMjEgMTVWNWEyIDIgMCAwIDAtMi0ySDkifV1dfSk7dmFyIEZNLGl4ZT1uKCgpPT57Rk09W1sicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuNVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNy41In1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciBPTSxveGU9bigoKT0+e09NPVtbInBhdGgiLHtkOiJNMTUgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiJ9XSxbInBhdGgiLHtkOiJNMjEgMTIuMTdWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoibTYgMjEgNS01In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXX0pO3ZhciBCTSxzeGU9bigoKT0+e0JNPVtbInBhdGgiLHtkOiJNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxIn1dLFsicGF0aCIse2Q6Im0xNCAxOS41IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDIydi01LjUifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dfSk7dmFyIFJNLG54ZT1uKCgpPT57Uk09W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNMTcgMjFoMmEyIDIgMCAwIDAgMi0yIn1dLFsicGF0aCIse2Q6Ik0yMSAxMnYzIn1dLFsicGF0aCIse2Q6Im0yMSAzLTUgNSJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJtNSAyMSA0LjE0NC00LjE0NGExLjIxIDEuMjEgMCAwIDEgMS43MTIgMEwxMyAxOSJ9XSxbInBhdGgiLHtkOiJNOSAzaDMifV0sWyJyZWN0Iix7eDoiMyIseToiMTEiLHdpZHRoOiIxMCIsaGVpZ2h0OiIxMCIscng6IjEifV1dfSk7dmFyIEhNLGx4ZT1uKCgpPT57SE09W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dXX0pO3ZhciBxTSxjeGU9bigoKT0+e3FNPVtbInBhdGgiLHtkOiJtMjIgMTEtMS4yOTYtMS4yOTZhMi40IDIuNCAwIDAgMC0zLjQwOCAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik00IDhhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTIifV0sWyJjaXJjbGUiLHtjeDoiMTMiLGN5OiI3IixyOiIxIixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJyZWN0Iix7eDoiOCIseToiMiIsd2lkdGg6IjE0IixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgVk0sZHhlPW4oKCk9PntWTT1bWyJwYXRoIix7ZDoiTTEyIDN2MTIifV0sWyJwYXRoIix7ZDoibTggMTEgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNOCA1SDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC00In1dXX0pO3ZhciBVTSxmeGU9bigoKT0+e1VNPVtbInBvbHlsaW5lIix7cG9pbnRzOiIyMiAxMiAxNiAxMiAxNCAxNSAxMCAxNSA4IDEyIDIgMTIifV0sWyJwYXRoIix7ZDoiTTUuNDUgNS4xMSAyIDEydjZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi02bC0zLjQ1LTYuODlBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeiJ9XV19KTt2YXIgak0sdXhlPW4oKCk9PntqTT1bWyJwYXRoIix7ZDoiTTYgM2gxMiJ9XSxbInBhdGgiLHtkOiJNNiA4aDEyIn1dLFsicGF0aCIse2Q6Im02IDEzIDguNSA4In1dLFsicGF0aCIse2Q6Ik02IDEzaDMifV0sWyJwYXRoIix7ZDoiTTkgMTNjNi42NjcgMCA2LjY2Ny0xMCAwLTEwIn1dXX0pO3ZhciBXTSxweGU9bigoKT0+e1dNPVtbInBhdGgiLHtkOiJNNiAxNmM1IDAgNy04IDEyLThhNCA0IDAgMCAxIDAgOGMtNSAwLTctOC0xMi04YTQgNCAwIDEgMCAwIDgifV1dfSk7dmFyIEdNLGh4ZT1uKCgpPT57R009W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgOGguMDEifV1dfSk7dmFyIFlNLG14ZT1uKCgpPT57WU09W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgN2guMDEifV0sWyJwYXRoIix7ZDoiTTE3IDdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTdoLjAxIn1dXX0pO3ZhciBaTSxneGU9bigoKT0+e1pNPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMjAiLHg6IjIiLHk6IjIiLHJ4OiI1IixyeToiNSJ9XSxbInBhdGgiLHtkOiJNMTYgMTEuMzdBNCA0IDAgMSAxIDEyLjYzIDggNCA0IDAgMCAxIDE2IDExLjM3eiJ9XSxbImxpbmUiLHt4MToiMTcuNSIseDI6IjE3LjUxIix5MToiNi41Iix5MjoiNi41In1dXX0pO3ZhciBYTSx4eGU9bigoKT0+e1hNPVtbImxpbmUiLHt4MToiMTkiLHgyOiIxMCIseTE6IjQiLHkyOiI0In1dLFsibGluZSIse3gxOiIxNCIseDI6IjUiLHkxOiIyMCIseTI6IjIwIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI0Iix5MjoiMjAifV1dfSk7dmFyIFFNLGJ4ZT1uKCgpPT57UU09W1sicGF0aCIse2Q6Im0xNiAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yMCAxMGE4IDggMCAxIDAtOCA4aDgifV1dfSk7dmFyIEtNLHZ4ZT1uKCgpPT57S009W1sicGF0aCIse2Q6Ik00IDEwYTggOCAwIDEgMSA4IDhINCJ9XSxbInBhdGgiLHtkOiJtOCAyMi00LTQgNC00In1dXX0pO3ZhciBKTSx5eGU9bigoKT0+e0pNPVtbInBhdGgiLHtkOiJNMTIgOS41VjIxbTAtMTEuNUw2IDNtNiA2LjVMMTggMyJ9XSxbInBhdGgiLHtkOiJNNiAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNNiAxMWgxMiJ9XV19KTt2YXIgZXosd3hlPW4oKCk9Pntlej1bWyJwYXRoIix7ZDoiTTIxIDE3YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi0yWiJ9XSxbInBhdGgiLHtkOiJNNiAxNXYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTVWOSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIHR6LE14ZT1uKCgpPT57dHo9W1sicGF0aCIse2Q6Ik01IDN2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDN2OCJ9XSxbInBhdGgiLHtkOiJNMTkgM3YxOCJ9XV19KTt2YXIgYXosenhlPW4oKCk9Pnthej1bWyJwYXRoIix7ZDoiTTE4IDE3YTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNMjAuOTcgMy42MWEuNDUuNDUgMCAwIDAtLjU4LS41OEMxMC4yIDYuNiA2LjYgMTAuMiAzLjAzIDIwLjM5YS40NS40NSAwIDAgMCAuNTguNThDMTMuOCAxNy40IDE3LjQgMTMuOCAyMC45NyAzLjYxIn1dLFsicGF0aCIse2Q6Im02LjcwNyA2LjcwNyAxMC41ODYgMTAuNTg2In1dLFsicGF0aCIse2Q6Ik03IDVhMiAyIDAgMSAwLTIgMmgxYTEgMSAwIDAgMCAxLTF6In1dXX0pO3ZhciByeixreGU9bigoKT0+e3J6PVtbInBhdGgiLHtkOiJNMi41ODYgMTcuNDE0QTIgMiAwIDAgMCAyIDE4LjgyOFYyMWExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaC4xNzJhMiAyIDAgMCAwIDEuNDE0LS41ODZsLjgxNC0uODE0YTYuNSA2LjUgMCAxIDAtNC00eiJ9XSxbImNpcmNsZSIse2N4OiIxNi41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBpeixTeGU9bigoKT0+e2l6PVtbInBhdGgiLHtkOiJNMTIuNCAyLjdhMi41IDIuNSAwIDAgMSAzLjQgMGw1LjUgNS41YTIuNSAyLjUgMCAwIDEgMCAzLjRsLTMuNyAzLjdhMi41IDIuNSAwIDAgMS0zLjQgMEw4LjcgOS44YTIuNSAyLjUgMCAwIDEgMC0zLjR6In1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJtOS40IDEwLjYtNi44MTQgNi44MTRBMiAyIDAgMCAwIDIgMTguODI4VjIxYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoLjE3MmEyIDIgMCAwIDAgMS40MTQtLjU4NmwuODE0LS44MTQifV1dfSk7dmFyIG96LEN4ZT1uKCgpPT57b3o9W1sicGF0aCIse2Q6Im0xNS41IDcuNSAyLjMgMi4zYTEgMSAwIDAgMCAxLjQgMGwyLjEtMi4xYTEgMSAwIDAgMCAwLTEuNEwxOSA0In1dLFsicGF0aCIse2Q6Im0yMSAyLTkuNiA5LjYifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTUuNSIscjoiNS41In1dXX0pO3ZhciBzeixMeGU9bigoKT0+e3N6PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDhoNCJ9XSxbInBhdGgiLHtkOiJNMTQgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Ik02IDEydjQifV0sWyJwYXRoIix7ZDoiTTEwIDEydjQifV0sWyJwYXRoIix7ZDoiTTE0IDEydjQifV0sWyJwYXRoIix7ZDoiTTE4IDEydjQifV1dfSk7dmFyIG56LFR4ZT1uKCgpPT57bno9W1sicGF0aCIse2Q6Ik0gMjAgNCBBMiAyIDAgMCAxIDIyIDYifV0sWyJwYXRoIix7ZDoiTSAyMiA2IEwgMjIgMTYuNDEifV0sWyJwYXRoIix7ZDoiTSA3IDE2IEwgMTYgMTYifV0sWyJwYXRoIix7ZDoiTSA5LjY5IDQgTCAyMCA0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV1dfSk7dmFyIGx6LF94ZT1uKCgpPT57bHo9W1sicGF0aCIse2Q6Ik0xMCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxNmgxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XV19KTt2YXIgY3osQXhlPW4oKCk9Pntjej1bWyJwYXRoIix7ZDoiTTEyIDJ2NSJ9XSxbInBhdGgiLHtkOiJNMTQuODI5IDE1Ljk5OGEzIDMgMCAxIDEtNS42NTggMCJ9XSxbInBhdGgiLHtkOiJNMjAuOTIgMTQuNjA2QTEgMSAwIDAgMSAyMCAxNkg0YTEgMSAwIDAgMS0uOTItMS4zOTRsMy03QTEgMSAwIDAgMSA3IDdoMTBhMSAxIDAgMCAxIC45Mi42MDZ6In1dXX0pO3ZhciBkeiwkeGU9bigoKT0+e2R6PVtbInBhdGgiLHtkOiJNMTAuMjkzIDIuMjkzYTEgMSAwIDAgMSAxLjQxNCAwbDIuNSAyLjUgNS45OTQgMS4yMjdhMSAxIDAgMCAxIC41MDYgMS42ODdsLTcgN2ExIDEgMCAwIDEtMS42ODctLjUwNmwtMS4yMjctNS45OTQtMi41LTIuNWExIDEgMCAwIDEgMC0xLjQxNHoifV0sWyJwYXRoIix7ZDoibTE0LjIwNyA0Ljc5My0zLjQxNCAzLjQxNCJ9XSxbInBhdGgiLHtkOiJNMyAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtOS4wODYgNi41LTQuNzkzIDQuNzkzYTEgMSAwIDAgMC0uMTggMS4xN0w3IDE4In1dXX0pO3ZhciBmeixEeGU9bigoKT0+e2Z6PVtbInBhdGgiLHtkOiJNMTIgMTB2MTIifV0sWyJwYXRoIix7ZDoiTTE3LjkyOSA3LjYyOUExIDEgMCAwIDEgMTcgOUg3YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgOSAyaDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNOSAyMmg2In1dXX0pO3ZhciB1eixFeGU9bigoKT0+e3V6PVtbInBhdGgiLHtkOiJNMTkuOTI5IDE4LjYyOUExIDEgMCAwIDEgMTkgMjBIOWExIDEgMCAwIDEtLjkyOC0xLjM3MWwyLTVBMSAxIDAgMCAxIDExIDEzaDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNNiAzYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik04IDZoNGEyIDIgMCAwIDEgMiAydjUifV1dfSk7dmFyIHB6LE54ZT1uKCgpPT57cHo9W1sicGF0aCIse2Q6Ik0xOS45MjkgOS42MjlBMSAxIDAgMCAxIDE5IDExSDlhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSAxMSA0aDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNNiAxNWEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMkg1YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTggMThoNGEyIDIgMCAwIDAgMi0ydi01In1dXX0pO3ZhciBoeixQeGU9bigoKT0+e2h6PVtbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNNC4wNzcgMTAuNjE1QTEgMSAwIDAgMCA1IDEyaDE0YTEgMSAwIDAgMCAuOTIzLTEuMzg1bC0zLjA3Ny03LjM4NEEyIDIgMCAwIDAgMTUgMkg5YTIgMiAwIDAgMC0xLjg0NiAxLjIzWiJ9XSxbInBhdGgiLHtkOiJNOCAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xeiJ9XV19KTt2YXIgbXosSXhlPW4oKCk9Pnttej1bWyJwYXRoIix7ZDoibTEyIDggNi0zLTYtM3YxMCJ9XSxbInBhdGgiLHtkOiJtOCAxMS45OS01LjUgMy4xNGExIDEgMCAwIDAgMCAxLjc0bDguNSA0Ljg2YTIgMiAwIDAgMCAyIDBsOC41LTQuODZhMSAxIDAgMCAwIDAtMS43NEwxNiAxMiJ9XSxbInBhdGgiLHtkOiJtNi40OSAxMi44NSAxMS4wMiA2LjMifV0sWyJwYXRoIix7ZDoiTTE3LjUxIDEyLjg1IDYuNSAxOS4xNSJ9XV19KTt2YXIgZ3osRnhlPW4oKCk9Pntnej1bWyJwYXRoIix7ZDoiTTEwIDE4di03In1dLFsicGF0aCIse2Q6Ik0xMS4xMiAyLjE5OGEyIDIgMCAwIDEgMS43Ni4wMDZsNy44NjYgMy44NDdjLjQ3Ni4yMzMuMzEuOTQ5LS4yMi45NDlIMy40NzRjLS41MyAwLS42OTUtLjcxNi0uMjItLjk0OXoifV0sWyJwYXRoIix7ZDoiTTE0IDE4di03In1dLFsicGF0aCIse2Q6Ik0xOCAxOHYtNyJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XSxbInBhdGgiLHtkOiJNNiAxOHYtNyJ9XV19KTt2YXIgeHosT3hlPW4oKCk9Pnt4ej1bWyJwYXRoIix7ZDoibTUgOCA2IDYifV0sWyJwYXRoIix7ZDoibTQgMTQgNi02IDItMyJ9XSxbInBhdGgiLHtkOiJNMiA1aDEyIn1dLFsicGF0aCIse2Q6Ik03IDJoMSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItNS0xMC01IDEwIn1dLFsicGF0aCIse2Q6Ik0xNCAxOGg2In1dXX0pO3ZhciBieixCeGU9bigoKT0+e2J6PVtbInBhdGgiLHtkOiJNMiAyMGgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dLFsicmVjdCIse3g6IjMiLHk6IjQiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIEI0LFJ4ZT1uKCgpPT57QjQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiNCIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyMCIseTI6IjIwIn1dXX0pO3ZhciB2eixIeGU9bigoKT0+e3Z6PVtbInBhdGgiLHtkOiJNMTggNWEyIDIgMCAwIDEgMiAydjguNTI2YTIgMiAwIDAgMCAuMjEyLjg5N2wxLjA2OCAyLjEyN2ExIDEgMCAwIDEtLjkgMS40NUgzLjYyYTEgMSAwIDAgMS0uOS0xLjQ1bDEuMDY4LTIuMTI3QTIgMiAwIDAgMCA0IDE1LjUyNlY3YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik0yMC4wNTQgMTUuOTg3SDMuOTQ2In1dXX0pO3ZhciB5eixxeGU9bigoKT0+e3l6PVtbInBhdGgiLHtkOiJNNyAyMmE1IDUgMCAwIDEtMi00In1dLFsicGF0aCIse2Q6Ik03IDE2LjkzYy45Ni40MyAxLjk2Ljc0IDIuOTkuOTEifV0sWyJwYXRoIix7ZDoiTTMuMzQgMTRBNi44IDYuOCAwIDAgMSAyIDEwYzAtNC40MiA0LjQ4LTggMTAtOHMxMCAzLjU4IDEwIDhhNy4xOSA3LjE5IDAgMCAxLS4zMyAyIn1dLFsicGF0aCIse2Q6Ik01IDE4YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHoifV0sWyJwYXRoIix7ZDoiTTE0LjMzIDIyaC0uMDlhLjM1LjM1IDAgMCAxLS4yNC0uMzJ2LTEwYS4zNC4zNCAwIDAgMSAuMzMtLjM0Yy4wOCAwIC4xNS4wMy4yMS4wOGw3LjM0IDZhLjMzLjMzIDAgMCAxLS4yMS41OWgtNC40OWwtMi41NyAzLjg1YS4zNS4zNSAwIDAgMS0uMjguMTR6In1dXX0pO3ZhciB3eixWeGU9bigoKT0+e3d6PVtbInBhdGgiLHtkOiJNMy43MDQgMTQuNDY3QTEwIDggMCAwIDEgMiAxMGExMCA4IDAgMCAxIDIwIDAgMTAgOCAwIDAgMS0xMCA4IDEwIDggMCAwIDEtNS4xODEtMS4xNTgifV0sWyJwYXRoIix7ZDoiTTcgMjJhNSA1IDAgMCAxLTItMy45OTQifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE2IixyOiIyIn1dXX0pO3ZhciBNeixVeGU9bigoKT0+e016PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTggMTNhNiA2IDAgMCAxLTYgNSA2IDYgMCAwIDEtNi01aDEyWiJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkuMDEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjkiLHkyOiI5In1dXX0pO3ZhciB6eixqeGU9bigoKT0+e3p6PVtbInBhdGgiLHtkOiJNMTMgMTMuNzRhMiAyIDAgMCAxLTIgMEwyLjUgOC44N2ExIDEgMCAwIDEgMC0xLjc0TDExIDIuMjZhMiAyIDAgMCAxIDIgMGw4LjUgNC44N2ExIDEgMCAwIDEgMCAxLjc0eiJ9XSxbInBhdGgiLHtkOiJtMjAgMTQuMjg1IDEuNS44NDVhMSAxIDAgMCAxIDAgMS43NEwxMyAyMS43NGEyIDIgMCAwIDEtMiAwbC04LjUtNC44N2ExIDEgMCAwIDEgMC0xLjc0bDEuNS0uODQ1In1dXX0pO3ZhciBSNCxXeGU9bigoKT0+e1I0PVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAxLjY2IDBsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44M3oifV0sWyJwYXRoIix7ZDoiTTIgMTJhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDguNTgtMy45QTEgMSAwIDAgMCAyMiAxMiJ9XSxbInBhdGgiLHtkOiJNMiAxN2ExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDE3In1dXX0pO3ZhciBreixHeGU9bigoKT0+e2t6PVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44MzF6In1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0xOSAxNHY2In1dLFsicGF0aCIse2Q6Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIC44MjUuMTc4In1dLFsicGF0aCIse2Q6Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGwyLjExNi0uOTYyIn1dXX0pO3ZhciBTeixZeGU9bigoKT0+e1N6PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIxNCIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiOSIseDoiMTQiLHk6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNiIscng6IjEifV1dfSk7dmFyIEN6LFp4ZT1uKCgpPT57Q3o9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgTHosWHhlPW4oKCk9PntMej1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNCA0aDcifV0sWyJwYXRoIix7ZDoiTTE0IDloNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoNyJ9XSxbInBhdGgiLHtkOiJNMTQgMjBoNyJ9XV19KTt2YXIgVHosUXhlPW4oKCk9PntUej1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dXX0pO3ZhciBfeixLeGU9bigoKT0+e196PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIxNCIscng6IjEifV1dfSk7dmFyIEF6LEp4ZT1uKCgpPT57QXo9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiOSIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNyIseDoiMTYiLHk6IjE0IixyeDoiMSJ9XV19KTt2YXIgJHosZWJlPW4oKCk9Pnskej1bWyJwYXRoIix7ZDoiTTExIDIwQTcgNyAwIDAgMSA5LjggNi4xQzE1LjUgNSAxNyA0LjQ4IDE5IDJjMSAyIDIgNC4xOCAyIDggMCA1LjUtNC43OCAxMC0xMCAxMFoifV0sWyJwYXRoIix7ZDoiTTIgMjFjMC0zIDEuODUtNS4zNiA1LjA4LTZDOS41IDE0LjUyIDEyIDEzIDEzIDEyIn1dXX0pO3ZhciBEeix0YmU9bigoKT0+e0R6PVtbInBhdGgiLHtkOiJNMiAyMmMxLjI1LS45ODcgMi4yNy0xLjk3NSAzLjktMi4yYTUuNTYgNS41NiAwIDAgMSAzLjggMS41IDQgNCAwIDAgMCA2LjE4Ny0yLjM1MyAzLjUgMy41IDAgMCAwIDMuNjktNS4xMTZBMy41IDMuNSAwIDAgMCAyMC45NSA4IDMuNSAzLjUgMCAxIDAgMTYgMy4wNWEzLjUgMy41IDAgMCAwLTUuODMxIDEuMzczIDMuNSAzLjUgMCAwIDAtNS4xMTYgMy42OSA0IDQgMCAwIDAtMi4zNDggNi4xNTVDMy40OTkgMTUuNDIgNC40MDkgMTYuNzEyIDQuMiAxOC4xIDMuOTI2IDE5Ljc0MyAzLjAxNCAyMC43MzIgMiAyMiJ9XSxbInBhdGgiLHtkOiJNMiAyMiAxNyA3In1dXX0pO3ZhciBFeixhYmU9bigoKT0+e0V6PVtbInBhdGgiLHtkOiJNMTYgMTJoM2EyIDIgMCAwIDAgMS45MDItMS4zOGwxLjA1Ni0zLjMzM0ExIDEgMCAwIDAgMjEgNkgzYTEgMSAwIDAgMC0uOTU4IDEuMjg3bDEuMDU2IDMuMzM0QTIgMiAwIDAgMCA1IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjEyIix4OiI4Iix5OiIxMCIscng6IjEifV1dfSk7dmFyIE56LHJiZT1uKCgpPT57Tno9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNyAzdjE4In1dLFsicGF0aCIse2Q6Ik0yMC40IDE4LjljLjIuNS0uMSAxLjEtLjYgMS4zbC0xLjkuN2MtLjUuMi0xLjEtLjEtMS4zLS42TDExLjEgNS4xYy0uMi0uNS4xLTEuMS42LTEuM2wxLjktLjdjLjUtLjIgMS4xLjEgMS4zLjZaIn1dXX0pO3ZhciBQeixpYmU9bigoKT0+e1B6PVtbInBhdGgiLHtkOiJtMTYgNiA0IDE0In1dLFsicGF0aCIse2Q6Ik0xMiA2djE0In1dLFsicGF0aCIse2Q6Ik04IDh2MTIifV0sWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XV19KTt2YXIgSXosb2JlPW4oKCk9PntJej1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyA0LjI0IDQuMjQifV0sWyJwYXRoIix7ZDoibTE0LjgzIDkuMTcgNC4yNC00LjI0In1dLFsicGF0aCIse2Q6Im0xNC44MyAxNC44MyA0LjI0IDQuMjQifV0sWyJwYXRoIix7ZDoibTkuMTcgMTQuODMtNC4yNCA0LjI0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV1dfSk7dmFyIEZ6LHNiZT1uKCgpPT57Rno9W1sicGF0aCIse2Q6Ik0xNCAxMmgydjgifV0sWyJwYXRoIix7ZDoiTTE0IDIwaDQifV0sWyJwYXRoIix7ZDoiTTYgMTJoNCJ9XSxbInBhdGgiLHtkOiJNNiAyMGg0In1dLFsicGF0aCIse2Q6Ik04IDIwVjhhNCA0IDAgMCAxIDcuNDY0LTIifV1dfSk7dmFyIE96LG5iZT1uKCgpPT57T3o9W1sicGF0aCIse2Q6Ik0xNi44IDExLjJjLjgtLjkgMS4yLTIgMS4yLTMuMmE2IDYgMCAwIDAtOS4zLTUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNi4zIDYuM2E0LjY3IDQuNjcgMCAwIDAgMS4yIDUuMmMuNy43IDEuMyAxLjUgMS41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dXX0pO3ZhciBCeixsYmU9bigoKT0+e0J6PVtbInBhdGgiLHtkOiJNMTUgMTRjLjItMSAuNy0xLjcgMS41LTIuNSAxLS45IDEuNS0yLjIgMS41LTMuNUE2IDYgMCAwIDAgNiA4YzAgMSAuMiAyLjIgMS41IDMuNS43LjcgMS4zIDEuNSAxLjUgMi41In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJwYXRoIix7ZDoiTTEwIDIyaDQifV1dfSk7dmFyIFJ6LGNiZT1uKCgpPT57Uno9W1sicGF0aCIse2Q6Ik03IDMuNWM1LTIgNyAyLjUgMyA0QzEuNSAxMCAyIDE1IDUgMTZjNSAyIDktMTAgMTQtN3MuNSAxMy41LTQgMTJjLTUtMi41LjUtMTEgNi0yIn1dXX0pO3ZhciBIeixkYmU9bigoKT0+e0h6PVtbInBhdGgiLHtkOiJNOSAxN0g3QTUgNSAwIDAgMSA3IDdoMiJ9XSxbInBhdGgiLHtkOiJNMTUgN2gyYTUgNSAwIDEgMSAwIDEwaC0yIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dXX0pO3ZhciBxeixmYmU9bigoKT0+e3F6PVtbInBhdGgiLHtkOiJNOSAxN0g3QTUgNSAwIDAgMSA3IDcifV0sWyJwYXRoIix7ZDoiTTE1IDdoMmE1IDUgMCAwIDEgNCA4In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTIiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIFZ6LHViZT1uKCgpPT57Vno9W1sicGF0aCIse2Q6Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Ik0xNCAxMWE1IDUgMCAwIDAtNy41NC0uNTRsLTMgM2E1IDUgMCAwIDAgNy4wNyA3LjA3bDEuNzEtMS43MSJ9XV19KTt2YXIgVXoscGJlPW4oKCk9PntVej1bWyJwYXRoIix7ZDoiTTE2IDhhNiA2IDAgMCAxIDYgNnY3aC00di03YTIgMiAwIDAgMC0yLTIgMiAyIDAgMCAwLTIgMnY3aC00di03YTYgNiAwIDAgMSA2LTZ6In1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjEyIix4OiIyIix5OiI5In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiI0IixyOiIyIn1dXX0pO3ZhciBqeixoYmU9bigoKT0+e2p6PVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNSAxOCAyIDIgNC00In1dXX0pO3ZhciBXeixtYmU9bigoKT0+e1d6PVtbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Im0zIDE3IDIgMiA0LTQifV0sWyJwYXRoIix7ZDoibTMgNyAyIDIgNC00In1dXX0pO3ZhciBHeixnYmU9bigoKT0+e0d6PVtbInBhdGgiLHtkOiJNMyA1aDgifV0sWyJwYXRoIix7ZDoiTTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWg4In1dLFsicGF0aCIse2Q6Im0xNSA1IDMgMyAzLTMifV0sWyJwYXRoIix7ZDoibTE1IDE5IDMtMyAzIDMifV1dfSk7dmFyIFl6LHhiZT1uKCgpPT57WXo9W1sicGF0aCIse2Q6Ik0zIDVoOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0zIDE5aDgifV0sWyJwYXRoIix7ZDoibTE1IDggMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTYgMyAzIDMtMyJ9XV19KTt2YXIgWnosYmJlPW4oKCk9Pntaej1bWyJwYXRoIix7ZDoiTTEwIDVoMTEifV0sWyJwYXRoIix7ZDoiTTEwIDEyaDExIn1dLFsicGF0aCIse2Q6Ik0xMCAxOWgxMSJ9XSxbInBhdGgiLHtkOiJtMyAxMCAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Im0zIDIwIDMtMy0zLTMifV1dfSk7dmFyIFh6LHZiZT1uKCgpPT57WHo9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTE2IDEySDMifV0sWyJwYXRoIix7ZDoiTTkgMTlIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTYtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMjEgNXYxMmEyIDIgMCAwIDEtMiAyaC02In1dXX0pO3ZhciBReix5YmU9bigoKT0+e1F6PVtbInBhdGgiLHtkOiJNMTIgNUgyIn1dLFsicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsicGF0aCIse2Q6Ik05IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE2IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTkgOFYyIn1dXX0pO3ZhciBLeix3YmU9bigoKT0+e0t6PVtbInBhdGgiLHtkOiJNMiA1aDIwIn1dLFsicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsicGF0aCIse2Q6Ik05IDE5aDYifV1dfSk7dmFyIE9pLE1iZT1uKCgpPT57T2k9W1sicGF0aCIse2Q6Ik0yMSA1SDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlIMTEifV0sWyJwYXRoIix7ZDoibTcgOC00IDQgNCA0In1dXX0pO3ZhciBCaSx6YmU9bigoKT0+e0JpPVtbInBhdGgiLHtkOiJNMjEgNUgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDExIn1dLFsicGF0aCIse2Q6Im0zIDggNCA0LTQgNCJ9XV19KTt2YXIgSnosa2JlPW4oKCk9PntKej1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoLTYifV1dfSk7dmFyIGVrLFNiZT1uKCgpPT57ZWs9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTExIDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2VjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNiIscjoiMyJ9XV19KTt2YXIgdGssQ2JlPW4oKCk9Pnt0az1bWyJwYXRoIix7ZDoiTTExIDVoMTAifV0sWyJwYXRoIix7ZDoiTTExIDEyaDEwIn1dLFsicGF0aCIse2Q6Ik0xMSAxOWgxMCJ9XSxbInBhdGgiLHtkOiJNNCA0aDF2NSJ9XSxbInBhdGgiLHtkOiJNNCA5aDIifV0sWyJwYXRoIix7ZDoiTTYuNSAyMEgzLjRjMC0xIDIuNi0xLjkyNSAyLjYtMy41YTEuNSAxLjUgMCAwIDAtMi42LTEuMDIifV1dfSk7dmFyIGFrLExiZT1uKCgpPT57YWs9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTE4IDl2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoLTYifV1dfSk7dmFyIHJrLFRiZT1uKCgpPT57cms9W1sicGF0aCIse2Q6Ik0yMSA1SDMifV0sWyJwYXRoIix7ZDoiTTcgMTJIMyJ9XSxbInBhdGgiLHtkOiJNNyAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNWMtMS4zMyAwLTIuNTQuNTQtMy40MSAxLjQxTDExIDE0In1dLFsicGF0aCIse2Q6Ik0xMSAxMHY0aDQifV1dfSk7dmFyIGlrLF9iZT1uKCgpPT57aWs9W1sicGF0aCIse2Q6Ik0zIDVoNiJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxMyJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxMyJ9XSxbInBhdGgiLHtkOiJtMTYgOC0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0yMSAxOVY3YTIgMiAwIDAgMC0yLTJoLTYifV1dfSk7dmFyIG9rLEFiZT1uKCgpPT57b2s9W1sicGF0aCIse2Q6Ik0xMyA1aDgifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV0sWyJwYXRoIix7ZDoibTMgMTcgMiAyIDQtNCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV19KTt2YXIgc2ssJGJlPW4oKCk9Pntzaz1bWyJwYXRoIix7ZDoiTTggNWgxMyJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XSxbInBhdGgiLHtkOiJNMyAxMGEyIDIgMCAwIDAgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTMgNXYxMmEyIDIgMCAwIDAgMiAyaDMifV1dfSk7dmFyIG5rLERiZT1uKCgpPT57bms9W1sicGF0aCIse2Q6Ik0yMSA1SDMifV0sWyJwYXRoIix7ZDoiTTEwIDEySDMifV0sWyJwYXRoIix7ZDoiTTEwIDE5SDMifV0sWyJwYXRoIix7ZDoiTTE1IDEyLjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdhMSAxIDAgMCAxLTEuNTE3LS44NnoifV1dfSk7dmFyIGxrLEViZT1uKCgpPT57bGs9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoibTE1LjUgOS41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjAuNSA5LjUtNSA1In1dXX0pO3ZhciBINCxOYmU9bigoKT0+e0g0PVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYifV1dfSk7dmFyIGNrLFBiZT1uKCgpPT57Y2s9W1sicGF0aCIse2Q6Ik0zIDVoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxOWguMDEifV0sWyJwYXRoIix7ZDoiTTggNWgxMyJ9XSxbInBhdGgiLHtkOiJNOCAxMmgxMyJ9XSxbInBhdGgiLHtkOiJNOCAxOWgxMyJ9XV19KTt2YXIgZGssSWJlPW4oKCk9Pntkaz1bWyJwYXRoIix7ZDoiTTIyIDEyYTEgMSAwIDAgMS0xMCAwIDEgMSAwIDAgMC0xMCAwIn1dLFsicGF0aCIse2Q6Ik03IDIwLjdhMSAxIDAgMSAxIDUtOC43IDEgMSAwIDEgMCA1LTguNiJ9XSxbInBhdGgiLHtkOiJNNyAzLjNhMSAxIDAgMSAxIDUgOC42IDEgMSAwIDEgMCA1IDguNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV19KTt2YXIgZmssRmJlPW4oKCk9Pntmaz1bWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtMTYuMiA3LjggMi45LTIuOSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoNCJ9XSxbInBhdGgiLHtkOiJtMTYuMiAxNi4yIDIuOSAyLjkifV0sWyJwYXRoIix7ZDoiTTEyIDE4djQifV0sWyJwYXRoIix7ZDoibTQuOSAxOS4xIDIuOS0yLjkifV0sWyJwYXRoIix7ZDoiTTIgMTJoNCJ9XSxbInBhdGgiLHtkOiJtNC45IDQuOSAyLjkgMi45In1dXX0pO3ZhciB1ayxPYmU9bigoKT0+e3VrPVtbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTkiLHkyOiIyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI3In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dfSk7dmFyIHBrLEJiZT1uKCgpPT57cGs9W1sicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAydjMifV0sWyJwYXRoIix7ZDoiTTE4Ljg5IDEzLjI0YTcgNyAwIDAgMC04LjEzLTguMTMifV0sWyJwYXRoIix7ZDoiTTE5IDEyaDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik03LjA1IDcuMDVhNyA3IDAgMCAwIDkuOSA5LjkifV1dfSk7dmFyIGhrLFJiZT1uKCgpPT57aGs9W1sibGluZSIse3gxOiIyIix4MjoiNSIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE5Iix4MjoiMjIiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMiIseTI6IjUifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxOSIseTI6IjIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjcifV1dfSk7dmFyIHE0LEhiZT1uKCgpPT57cTQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTYiLHI6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiIxMCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTBWN2E1IDUgMCAwIDEgOS4zMy0yLjUifV1dfSk7dmFyIG1rLHFiZT1uKCgpPT57bWs9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTYiLHI6IjEifV0sWyJyZWN0Iix7eDoiMyIseToiMTAiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTBWN2E1IDUgMCAwIDEgMTAgMHYzIn1dXX0pO3ZhciBWNCxWYmU9bigoKT0+e1Y0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTEiLHg6IjMiLHk6IjExIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTFWN2E1IDUgMCAwIDEgOS45LTEifV1dfSk7dmFyIGdrLFViZT1uKCgpPT57Z2s9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMSIseDoiMyIseToiMTEiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMVY3YTUgNSAwIDAgMSAxMCAwdjQifV1dfSk7dmFyIHhrLGpiZT1uKCgpPT57eGs9W1sicGF0aCIse2Q6Im0xMCAxNyA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik0xNSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNSAzaDRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyaC00In1dXX0pO3ZhciBiayxXYmU9bigoKT0+e2JrPVtbInBhdGgiLHtkOiJtMTYgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOSJ9XSxbInBhdGgiLHtkOiJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQifV1dfSk7dmFyIHZrLEdiZT1uKCgpPT57dms9W1sicGF0aCIse2Q6Ik0zIDVoMSJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxIn1dLFsicGF0aCIse2Q6Ik0zIDE5aDEifV0sWyJwYXRoIix7ZDoiTTggNWgxIn1dLFsicGF0aCIse2Q6Ik04IDEyaDEifV0sWyJwYXRoIix7ZDoiTTggMTloMSJ9XSxbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dXX0pO3ZhciB5ayxZYmU9bigoKT0+e3lrPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dLFsicGF0aCIse2Q6Ik0xMSAxMWEyIDIgMCAwIDAgNCAwIDQgNCAwIDAgMC04IDAgNiA2IDAgMCAwIDEyIDAifV1dfSk7dmFyIHdrLFpiZT1uKCgpPT57d2s9W1sicGF0aCIse2Q6Ik02IDIwYTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOCAxOFY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjE0In1dLFsicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIwIixyOiIyIn1dXX0pO3ZhciBNayxYYmU9bigoKT0+e01rPVtbInBhdGgiLHtkOiJtMTIgMTUgNCA0In1dLFsicGF0aCIse2Q6Ik0yLjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDYuMDI5LTYuMDI5YTEgMSAwIDEgMSAzIDNsLTYuMDI5IDYuMDI5YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw2LjM2NS02LjM2N0ExIDEgMCAwIDAgOC43MTYgNC4yODJ6In1dLFsicGF0aCIse2Q6Im01IDggNCA0In1dXX0pO3ZhciB6ayxRYmU9bigoKT0+e3prPVtbInBhdGgiLHtkOiJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dfSk7dmFyIGtrLEtiZT1uKCgpPT57a2s9W1sicGF0aCIse2Q6Ik0yMiAxNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XV19KTt2YXIgU2ssSmJlPW4oKCk9PntTaz1bWyJwYXRoIix7ZDoiTTIxLjIgOC40Yy41LjM4LjguOTcuOCAxLjZ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMTBhMiAyIDAgMCAxIC44LTEuNmw4LTZhMiAyIDAgMCAxIDIuNCAwbDggNloifV0sWyJwYXRoIix7ZDoibTIyIDEwLTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiAxMCJ9XV19KTt2YXIgQ2ssZXZlPW4oKCk9PntDaz1bWyJwYXRoIix7ZDoiTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNiAxOWg2In1dXX0pO3ZhciBVNCx0dmU9bigoKT0+e1U0PVtbInBhdGgiLHtkOiJNMjIgMTAuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMTIuNSJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMTggMTUuMjhjLjItLjQuNS0uOC45LTFhMi4xIDIuMSAwIDAgMSAyLjYuNGMuMy40LjUuOC41IDEuMyAwIDEuMy0yIDItMiAyIn1dLFsicGF0aCIse2Q6Ik0yMCAyMnYuMDEifV1dfSk7dmFyIExrLGF2ZT1uKCgpPT57TGs9W1sicGF0aCIse2Q6Ik0yMiAxMi41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg3LjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE4IDIxYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNloifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS41LTEuNSJ9XV19KTt2YXIgVGsscnZlPW4oKCk9PntUaz1bWyJwYXRoIix7ZDoiTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTIwIDE0djQifV0sWyJwYXRoIix7ZDoiTTIwIDIydi4wMSJ9XV19KTt2YXIgX2ssaXZlPW4oKCk9Pntfaz1bWyJwYXRoIix7ZDoiTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg5In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Im0xNyAxNyA0IDQifV0sWyJwYXRoIix7ZDoibTIxIDE3LTQgNCJ9XV19KTt2YXIgQWssb3ZlPW4oKCk9PntBaz1bWyJwYXRoIix7ZDoibTIyIDctOC45OTEgNS43MjdhMiAyIDAgMCAxLTIuMDA5IDBMMiA3In1dLFsicmVjdCIse3g6IjIiLHk6IjQiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNiIscng6IjIifV1dfSk7dmFyICRrLHN2ZT1uKCgpPT57JGs9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5LjVDMiA3IDQgNSA2LjUgNUgxOGMyLjIgMCA0IDEuOCA0IDR2OFoifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTUsOSAxOCw5IDE4LDExIn1dLFsicGF0aCIse2Q6Ik02LjUgNUM5IDUgMTEgNyAxMSA5LjVWMTdhMiAyIDAgMCAxLTIgMiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjciLHkxOiIxMCIseTI6IjEwIn1dXX0pO3ZhciBEayxudmU9bigoKT0+e0RrPVtbInBhdGgiLHtkOiJNMTcgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LThhMiAyIDAgMCAxIDEtMS43MzIifV0sWyJwYXRoIix7ZDoibTIyIDUuNS02LjQxOSA0LjE3OWEyIDIgMCAwIDEtMi4xNjIgMEw3IDUuNSJ9XSxbInJlY3QiLHt4OiI3Iix5OiIzIix3aWR0aDoiMTUiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXX0pO3ZhciBFayxsdmU9bigoKT0+e0VrPVtbInBhdGgiLHtkOiJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxNCJ9XSxbInBhdGgiLHtkOiJNMTUgNS43NjRWMTQifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXX0pO3ZhciBOayxjdmU9bigoKT0+e05rPVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV1dfSk7dmFyIFBrLGR2ZT1uKCgpPT57UGs9W1sicGF0aCIse2Q6Ik0xOS40MyAxMi45MzVjLjM1Ny0uOTY3LjU3LTEuOTU1LjU3LTIuOTM1YTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMi4xOTcgMzIuMTk3IDAgMCAwIC44MTMtLjcyOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Im0xNiAxOCAyIDIgNC00In1dXX0pO3ZhciBJayxmdmU9bigoKT0+e0lrPVtbInBhdGgiLHtkOiJNMTUgMjJhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgLjQ0NS0uODMybDMtMmExIDEgMCAwIDEgMS4xMSAwbDMgMkExIDEgMCAwIDEgMjIgMTd2NGExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTggMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAuNjAxLjIifV0sWyJwYXRoIix7ZDoiTTE4IDIydi0zIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTAiLHI6IjMifV1dfSk7dmFyIEZrLHV2ZT1uKCgpPT57Rms9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV19KTt2YXIgT2sscHZlPW4oKCk9PntPaz1bWyJwYXRoIix7ZDoiTTE4Ljk3NyAxNEMxOS42IDEyLjcwMSAyMCAxMS4zNDMgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDMyIDMyIDAgMCAwIC44MjQtLjczOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOGg2In1dXX0pO3ZhciBCayxodmU9bigoKT0+e0JrPVtbInBhdGgiLHtkOiJNMTIuNzUgNy4wOWEzIDMgMCAwIDEgMi4xNiAyLjE2In1dLFsicGF0aCIse2Q6Ik0xNy4wNzIgMTcuMDcyYy0xLjYzNCAyLjE3LTMuNTI3IDMuOTEyLTQuNDcxIDQuNzI3YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxLjQzMi00LjU2OCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjQ3NSAyLjgxOEE4IDggMCAwIDEgMjAgMTBjMCAxLjE4My0uMzEgMi4zNzctLjgxIDMuNTMzIn1dLFsicGF0aCIse2Q6Ik05LjEzIDkuMTNhMyAzIDAgMCAwIDMuNzQgMy43NCJ9XV19KTt2YXIgajQsbXZlPW4oKCk9PntqND1bWyJwYXRoIix7ZDoiTTE3Ljk3IDkuMzA0QTggOCAwIDAgMCAyIDEwYzAgNC42OSA0Ljg4NyA5LjU2MiA3LjAyMiAxMS40NjgifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEwIixyOiIzIn1dXX0pO3ZhciBSayxndmU9bigoKT0+e1JrPVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Ik0xMiA3djYifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV19KTt2YXIgSGsseHZlPW4oKCk9PntIaz1bWyJwYXRoIix7ZDoiTTE5LjkxNCAxMS4xMDVBNy4yOTggNy4yOTggMCAwIDAgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDMyIDMyIDAgMCAwIC44MjQtLjczOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOGg2In1dLFsicGF0aCIse2Q6Ik0xOSAxNXY2In1dXX0pO3ZhciBxayxidmU9bigoKT0+e3FrPVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Im0xNC41IDcuNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSA3LjUgNSA1In1dXX0pO3ZhciBWayx2dmU9bigoKT0+e1ZrPVtbInBhdGgiLHtkOiJNMTkuNzUyIDExLjkwMUE3Ljc4IDcuNzggMCAwIDAgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDE5IDE5IDAgMCAwIC4wOS0uMDc3In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIxLjUgMTUuNS01IDUifV0sWyJwYXRoIix7ZDoibTIxLjUgMjAuNS01LTUifV1dfSk7dmFyIFVrLHl2ZT1uKCgpPT57VWs9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XV19KTt2YXIgamssd3ZlPW4oKCk9Pntqaz1bWyJwYXRoIix7ZDoiTTE4IDhjMCAzLjYxMy0zLjg2OSA3LjQyOS01LjM5MyA4Ljc5NWExIDEgMCAwIDEtMS4yMTQgMEM5Ljg3IDE1LjQyOSA2IDExLjYxMyA2IDhhNiA2IDAgMCAxIDEyIDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiIyIn1dLFsicGF0aCIse2Q6Ik04LjcxNCAxNGgtMy43MWExIDEgMCAwIDAtLjk0OC42ODNsLTIuMDA0IDZBMSAxIDAgMCAwIDMgMjJoMThhMSAxIDAgMCAwIC45NDgtMS4zMTZsLTItNmExIDEgMCAwIDAtLjk0OS0uNjg0aC0zLjcxMiJ9XV19KTt2YXIgV2ssTXZlPW4oKCk9PntXaz1bWyJwYXRoIix7ZDoibTExIDE5LTEuMTA2LS41NTJhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDBsNC4yMTIgMi4xMDZhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTlWMTIifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0VjEyIn1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV19KTt2YXIgR2ssenZlPW4oKCk9PntHaz1bWyJwYXRoIix7ZDoiTTE0LjEwNiA1LjU1M2EyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOXYxMi43NjRhMSAxIDAgMCAxLS41NTMuODk0bC00LjU1MyAyLjI3N2EyIDIgMCAwIDEtMS43ODggMGwtNC4yMTItMi4xMDZhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDB6In1dLFsicGF0aCIse2Q6Ik0xNSA1Ljc2NHYxNSJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV19KTt2YXIgWWssa3ZlPW4oKCk9PntZaz1bWyJwYXRoIix7ZDoibTE0IDYgNCA0In1dLFsicGF0aCIse2Q6Ik0xNyAzaDR2NCJ9XSxbInBhdGgiLHtkOiJtMjEgMy03Ljc1IDcuNzUifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjE1IixyOiI2In1dXX0pO3ZhciBaayxTdmU9bigoKT0+e1prPVtbInBhdGgiLHtkOiJNMTYgM2g1djUifV0sWyJwYXRoIix7ZDoibTIxIDMtNi43NSA2Ljc1In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTQiLHI6IjYifV1dfSk7dmFyIFhrLEN2ZT1uKCgpPT57WGs9W1sicGF0aCIse2Q6Ik04IDIyaDgifV0sWyJwYXRoIix7ZDoiTTEyIDExdjExIn1dLFsicGF0aCIse2Q6Im0xOSAzLTcgOC03LThaIn1dXX0pO3ZhciBRayxMdmU9bigoKT0+e1FrPVtbInBhdGgiLHtkOiJNMTUgM2g2djYifV0sWyJwYXRoIix7ZDoibTIxIDMtNyA3In1dLFsicGF0aCIse2Q6Im0zIDIxIDctNyJ9XSxbInBhdGgiLHtkOiJNOSAyMUgzdi02In1dXX0pO3ZhciBLayxUdmU9bigoKT0+e0trPVtbInBhdGgiLHtkOiJNOCAzSDVhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yMSA4VjVhMiAyIDAgMCAwLTItMmgtMyJ9XSxbInBhdGgiLHtkOiJNMyAxNnYzYTIgMiAwIDAgMCAyIDJoMyJ9XSxbInBhdGgiLHtkOiJNMTYgMjFoM2EyIDIgMCAwIDAgMi0ydi0zIn1dXX0pO3ZhciBKayxfdmU9bigoKT0+e0prPVtbInBhdGgiLHtkOiJNMTEuNjM2IDZBMTMgMTMgMCAwIDAgMTkuNCAzLjIgMSAxIDAgMCAxIDIxIDR2MTEuMzQ0In1dLFsicGF0aCIse2Q6Ik0xNC4zNzggMTQuMzU3QTEzIDEzIDAgMCAwIDExIDE0SDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik02IDE0YTEyIDEyIDAgMCAwIDIuNCA3LjIgMiAyIDAgMCAwIDMuMi0yLjRBOCA4IDAgMCAxIDEwIDE0In1dLFsicGF0aCIse2Q6Ik04IDh2NiJ9XV19KTt2YXIgZVMsQXZlPW4oKCk9PntlUz1bWyJwYXRoIix7ZDoiTTExIDZhMTMgMTMgMCAwIDAgOC40LTIuOEExIDEgMCAwIDEgMjEgNHYxMmExIDEgMCAwIDEtMS42LjhBMTMgMTMgMCAwIDAgMTEgMTRINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoiTTYgMTRhMTIgMTIgMCAwIDAgMi40IDcuMiAyIDIgMCAwIDAgMy4yLTIuNEE4IDggMCAwIDEgMTAgMTQifV0sWyJwYXRoIix7ZDoiTTggNnY4In1dXX0pO3ZhciB0UywkdmU9bigoKT0+e3RTPVtbInBhdGgiLHtkOiJNNy4yMSAxNSAyLjY2IDcuMTRhMiAyIDAgMCAxIC4xMy0yLjJMNC40IDIuOEEyIDIgMCAwIDEgNiAyaDEyYTIgMiAwIDAgMSAxLjYuOGwxLjYgMi4xNGEyIDIgMCAwIDEgLjE0IDIuMkwxNi43OSAxNSJ9XSxbInBhdGgiLHtkOiJNMTEgMTIgNS4xMiAyLjIifV0sWyJwYXRoIix7ZDoibTEzIDEyIDUuODgtOS44In1dLFsicGF0aCIse2Q6Ik04IDdoOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtMmgtLjUifV1dfSk7dmFyIGFTLER2ZT1uKCgpPT57YVM9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dfSk7dmFyIHJTLEV2ZT1uKCgpPT57clM9W1sicGF0aCIse2Q6Ik0xMiAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xNiAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMiAxMWgxLjUifV0sWyJwYXRoIix7ZDoiTTIwIDE4di0yIn1dLFsicGF0aCIse2Q6Ik0yMC41IDExSDIyIn1dLFsicGF0aCIse2Q6Ik00IDE4di0yIn1dLFsicGF0aCIse2Q6Ik04IDEydi0yIn1dLFsicGF0aCIse2Q6Ik04IDE4di0yIn1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxMCIscng6IjIifV1dfSk7dmFyIGlTLE52ZT1uKCgpPT57aVM9W1sicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYxMC4zYTQgNCAwIDAgMS0xLjE3MiAyLjg3Mkw0IDIyIn1dLFsicGF0aCIse2Q6Im0yMCAyMi01LTUifV1dfSk7dmFyIG9TLFB2ZT1uKCgpPT57b1M9W1sicGF0aCIse2Q6Ik00IDVoMTYifV0sWyJwYXRoIix7ZDoiTTQgMTJoMTYifV0sWyJwYXRoIix7ZDoiTTQgMTloMTYifV1dfSk7dmFyIHNTLEl2ZT1uKCgpPT57c1M9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBuUyxGdmU9bigoKT0+e25TPVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yOCAxNy42MWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Im02LjE2MyAyMS4xMTctMi45MDYuODVhMSAxIDAgMCAxLTEuMjM2LTEuMTY5bC45NjUtMi45OCJ9XV19KTt2YXIgbFMsT3ZlPW4oKCk9PntsUz1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDUuMDA0IDIuMjI0IDMgMyAwIDAgMS0uODMyIDIuMDgzbC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ1LS4wMDF6In1dXX0pO3ZhciBjUyxCdmU9bigoKT0+e2NTPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgZFMsUnZlPW4oKCk9PntkUz1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkyOWExMCAxMCAwIDAgMC0xLjkzOCAxMS40MTIgMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDAgMCAxMS4zMDItMS45ODkifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OUExMCAxMCAwIDAgMSAyMS4zIDE1LjY1In1dXX0pO3ZhciBmUyxIdmU9bigoKT0+e2ZTPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXX0pO3ZhciBXNCxxdmU9bigoKT0+e1c0PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dfSk7dmFyIHVTLFZ2ZT1uKCgpPT57dVM9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJtMTAgMTUtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNNyAxMmg4YTIgMiAwIDAgMSAyIDJ2MSJ9XV19KTt2YXIgcFMsVXZlPW4oKCk9PntwUz1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV19KTt2YXIgaFMsanZlPW4oKCk9PntoUz1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV19KTt2YXIgbVMsV3ZlPW4oKCk9PnttUz1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXX0pO3ZhciBnUyxHdmU9bigoKT0+e2dTPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDMtMy0zLTMifV1dfSk7dmFyIHhTLFl2ZT1uKCgpPT57eFM9W1sicGF0aCIse2Q6Ik0xMiAxOWguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDNoLjAxIn1dLFsicGF0aCIse2Q6Ik0yIDEzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiAxN3Y0LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUg4In1dLFsicGF0aCIse2Q6Ik0yIDVhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNMiA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjAgM2EyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTIyIDloLjAxIn1dLFsicGF0aCIse2Q6Ik04IDNoLjAxIn1dXX0pO3ZhciBiUyxadmU9bigoKT0+e2JTPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMCAxNWg0In1dLFsicGF0aCIse2Q6Ik0xMCA5aDQifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XV19KTt2YXIgdlMsWHZlPW4oKCk9Pnt2Uz1bWyJwYXRoIix7ZDoiTTEyLjcgM0g0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDIwYTIgMiAwIDAgMCAyLTJ2LTQuNyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIHlTLFF2ZT1uKCgpPT57eVM9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcuNSA5LjVjMCAuNjg3LjI2NSAxLjM4My42OTcgMS44NDRsMy4wMDkgMy4yNjRhMS4xNCAxLjE0IDAgMCAwIC40MDcuMzE0IDEgMSAwIDAgMCAuNzgzLS4wMDQgMS4xNCAxLjE0IDAgMCAwIC4zOTgtLjMxbDMuMDA4LTMuMjY0QTIuNzcgMi43NyAwIDAgMCAxNi41IDkuNSAyLjUgMi41IDAgMCAwIDEyIDhhMi41IDIuNSAwIDAgMC00LjUgMS41In1dXX0pO3ZhciB3UyxLdmU9bigoKT0+e3dTPVtbInBhdGgiLHtkOiJNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwIn1dLFsicGF0aCIse2Q6Ik0yMCAxNXYtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE1Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgTVMsSnZlPW4oKCk9PntNUz1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dXX0pO3ZhciB6UyxleWU9bigoKT0+e3pTPVtbInBhdGgiLHtkOiJNMTkgMTlINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcuNyAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTEuMzQ0In1dXX0pO3ZhciBrUyx0eWU9bigoKT0+e2tTPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA4djYifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XV19KTt2YXIgU1MsYXllPW4oKCk9PntTUz1bWyJwYXRoIix7ZDoiTTE0IDE0YTIgMiAwIDAgMCAyLTJWOGgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik04IDE0YTIgMiAwIDAgMCAyLTJWOEg4In1dXX0pO3ZhciBDUyxyeWU9bigoKT0+e0NTPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE0di0xYTIgMiAwIDAgMC0yLTJINyJ9XV19KTt2YXIgTFMsaXllPW4oKCk9PntMUz1bWyJwYXRoIix7ZDoiTTEyIDNINGEyIDIgMCAwIDAtMiAydjE2LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUgyMGEyIDIgMCAwIDAgMi0ydi00In1dLFsicGF0aCIse2Q6Ik0xNiAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMTYgOSA2LTYifV1dfSk7dmFyIFRTLG95ZT1uKCgpPT57VFM9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcgMTFoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTVoNiJ9XSxbInBhdGgiLHtkOiJNNyA3aDgifV1dfSk7dmFyIF9TLHN5ZT1uKCgpPT57X1M9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dXX0pO3ZhciBBUyxueWU9bigoKT0+e0FTPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xNC41IDguNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSA4LjUgNSA1In1dXX0pO3ZhciAkUyxseWU9bigoKT0+eyRTPVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dXX0pO3ZhciBEUyxjeWU9bigoKT0+e0RTPVtbInBhdGgiLHtkOiJNMTYgMTBhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAxNC4yODZWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yMCA5YTIgMiAwIDAgMSAyIDJ2MTAuMjg2YS43MS43MSAwIDAgMS0xLjIxMi41MDJsLTIuMjAyLTIuMjAyQTIgMiAwIDAgMCAxNy4xNzIgMTlIMTBhMiAyIDAgMCAxLTItMnYtMSJ9XV19KTt2YXIgRVMsZHllPW4oKCk9PntFUz1bWyJwYXRoIix7ZDoiTTEyIDE5djMifV0sWyJwYXRoIix7ZDoiTTE1IDkuMzRWNWEzIDMgMCAwIDAtNS42OC0xLjMzIn1dLFsicGF0aCIse2Q6Ik0xNi45NSAxNi45NUE3IDcgMCAwIDEgNSAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTguODkgMTMuMjNBNyA3IDAgMCAwIDE5IDEydi0yIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTkgOXYzYTMgMyAwIDAgMCA1LjEyIDIuMTIifV1dfSk7dmFyIEc0LGZ5ZT1uKCgpPT57RzQ9W1sicGF0aCIse2Q6Im0xMSA3LjYwMS01Ljk5NCA4LjE5YTEgMSAwIDAgMCAuMSAxLjI5OGwuODE3LjgxOGExIDEgMCAwIDAgMS4zMTQuMDg3TDE1LjA5IDEyIn1dLFsicGF0aCIse2Q6Ik0xNi41IDIxLjE3NEMxNS41IDIwLjUgMTQuMzcyIDIwIDEzIDIwYy0yLjA1OCAwLTMuOTI4IDIuMzU2LTYgMi0yLjA3Mi0uMzU2LTIuNzc1LTMuMzY5LTEuNS00LjUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiI3IixyOiI1In1dXX0pO3ZhciBOUyx1eWU9bigoKT0+e05TPVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTB2MmE3IDcgMCAwIDEtMTQgMHYtMiJ9XSxbInJlY3QiLHt4OiI5Iix5OiIyIix3aWR0aDoiNiIsaGVpZ2h0OiIxMyIscng6IjMifV1dfSk7dmFyIFBTLHB5ZT1uKCgpPT57UFM9W1sicGF0aCIse2Q6Ik0xMCAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMCAxN2g0In1dLFsicGF0aCIse2Q6Ik0xMCA3aDQifV0sWyJwYXRoIix7ZDoiTTE4IDEyaDIifV0sWyJwYXRoIix7ZDoiTTE4IDE4aDIifV0sWyJwYXRoIix7ZDoiTTE4IDZoMiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgyIn1dLFsicGF0aCIse2Q6Ik00IDE4aDIifV0sWyJwYXRoIix7ZDoiTTQgNmgyIn1dLFsicmVjdCIse3g6IjYiLHk6IjIiLHdpZHRoOiIxMiIsaGVpZ2h0OiIyMCIscng6IjIifV1dfSk7dmFyIElTLGh5ZT1uKCgpPT57SVM9W1sicGF0aCIse2Q6Ik02IDE4aDgifV0sWyJwYXRoIix7ZDoiTTMgMjJoMTgifV0sWyJwYXRoIix7ZDoiTTE0IDIyYTcgNyAwIDEgMCAwLTE0aC0xIn1dLFsicGF0aCIse2Q6Ik05IDE0aDIifV0sWyJwYXRoIix7ZDoiTTkgMTJhMiAyIDAgMCAxLTItMlY2aDZ2NGEyIDIgMCAwIDEtMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTIgNlYzYTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMifV1dfSk7dmFyIEZTLG15ZT1uKCgpPT57RlM9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNSIseDoiMiIseToiNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNyIseDoiNiIseToiOCIscng6IjEifV0sWyJwYXRoIix7ZDoiTTE4IDh2NyJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicGF0aCIse2Q6Ik0xOCAxOXYyIn1dXX0pO3ZhciBPUyxneWU9bigoKT0+e09TPVtbInBhdGgiLHtkOiJNMTIgMTN2OCJ9XSxbInBhdGgiLHtkOiJNMTIgM3YzIn1dLFsicGF0aCIse2Q6Ik00IDZhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoMTNhMiAyIDAgMCAwIDEuMTUyLS4zNjVsMy40MjQtMi4zMTdhMSAxIDAgMCAwIDAtMS42MzVsLTMuNDI0LTIuMzE4QTIgMiAwIDAgMCAxNyA2eiJ9XV19KTt2YXIgQlMseHllPW4oKCk9PntCUz1bWyJwYXRoIix7ZDoiTTggMmg4In1dLFsicGF0aCIse2Q6Ik05IDJ2MS4zNDNNMTUgMnYyLjc4OWE0IDQgMCAwIDAgLjY3MiAyLjIxOWwuNjU2Ljk4NGE0IDQgMCAwIDEgLjY3MiAyLjIydjEuMTMxTTcuOCA3LjhsLS4xMjguMTkyQTQgNCAwIDAgMCA3IDEwLjIxMlYyMGEyIDIgMCAwIDAgMiAyaDZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNNyAxNWE2LjQ3IDYuNDcgMCAwIDEgNSAwIDYuNDcyIDYuNDcyIDAgMCAwIDMuNDM1LjQzNSJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciBSUyxieWU9bigoKT0+e1JTPVtbInBhdGgiLHtkOiJNOCAyaDgifV0sWyJwYXRoIix7ZDoiTTkgMnYyLjc4OWE0IDQgMCAwIDEtLjY3MiAyLjIxOWwtLjY1Ni45ODRBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi05Ljc4OWE0IDQgMCAwIDAtLjY3Mi0yLjIxOWwtLjY1Ni0uOTg0QTQgNCAwIDAgMSAxNSA0Ljc4OFYyIn1dLFsicGF0aCIse2Q6Ik03IDE1YTYuNDcyIDYuNDcyIDAgMCAxIDUgMCA2LjQ3IDYuNDcgMCAwIDAgNSAwIn1dXX0pO3ZhciBIUyx2eWU9bigoKT0+e0hTPVtbInBhdGgiLHtkOiJtMTQgMTAgNy03In1dLFsicGF0aCIse2Q6Ik0yMCAxMGgtNlY0In1dLFsicGF0aCIse2Q6Im0zIDIxIDctNyJ9XSxbInBhdGgiLHtkOiJNNCAxNGg2djYifV1dfSk7dmFyIHFTLHl5ZT1uKCgpPT57cVM9W1sicGF0aCIse2Q6Ik04IDN2M2EyIDIgMCAwIDEtMiAySDMifV0sWyJwYXRoIix7ZDoiTTIxIDhoLTNhMiAyIDAgMCAxLTItMlYzIn1dLFsicGF0aCIse2Q6Ik0zIDE2aDNhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xNiAyMXYtM2EyIDIgMCAwIDEgMi0yaDMifV1dfSk7dmFyIFZTLHd5ZT1uKCgpPT57VlM9W1sicGF0aCIse2Q6Ik01IDEyaDE0In1dXX0pO3ZhciBVUyxNeWU9bigoKT0+e1VTPVtbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgalMsenllPW4oKCk9PntqUz1bWyJwYXRoIix7ZDoiTTExIDEzYTMgMyAwIDEgMSAyLjgzLTRIMTRhMiAyIDAgMCAxIDAgNHoifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInJlY3QiLHt4OiIyIix5OiIzIix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXX0pO3ZhciBXUyxreWU9bigoKT0+e1dTPVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDcuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAzLjIyOC0uMzgzLS45MjQifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDMuMjI4LjM4My0uOTI0In1dLFsicGF0aCIse2Q6Im0xOS41MyA5LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiA0Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDcuMTQ4LjkyNC4zODMifV0sWyJwYXRoIix7ZDoiTTIyIDEzdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV1dfSk7dmFyIEdTLFN5ZT1uKCgpPT57R1M9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0yMiAxMi4zMDdWMTVhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDguNjkzIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI2IixyOiIzIn1dXX0pO3ZhciBZUyxDeWU9bigoKT0+e1lTPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJtMTUgMTAtMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dfSk7dmFyIFpTLEx5ZT1uKCgpPT57WlM9W1sicGF0aCIse2Q6Ik0xNyAxN0g0YTIgMiAwIDAgMS0yLTJWNWMwLTEuNSAxLTIgMS0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxNVY1YTIgMiAwIDAgMC0yLTJIOSJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIFhTLFR5ZT1uKCgpPT57WFM9W1sicGF0aCIse2Q6Ik0xMCAxM1Y3In1dLFsicGF0aCIse2Q6Ik0xNCAxM1Y3In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV19KTt2YXIgUVMsX3llPW4oKCk9PntRUz1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV19KTt2YXIgS1MsQXllPW4oKCk9PntLUz1bWyJwYXRoIix7ZDoiTTE4IDhWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTl2LTMuOTYgMy4xNSJ9XSxbInBhdGgiLHtkOiJNNyAxOWg1In1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiMTIiLHJ4OiIyIn1dXX0pO3ZhciBKUywkeWU9bigoKT0+e0pTPVtbInBhdGgiLHtkOiJNNS41IDIwSDgifV0sWyJwYXRoIix7ZDoiTTE3IDloLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiIxNiIseDoiMTIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDZINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmg0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTUiLHI6IjEifV1dfSk7dmFyIGVDLER5ZT1uKCgpPT57ZUM9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI5Iix5OiI3Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV19KTt2YXIgdEMsRXllPW4oKCk9Pnt0Qz1bWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dfSk7dmFyIGFDLE55ZT1uKCgpPT57YUM9W1sicGF0aCIse2Q6Im0xNC41IDEyLjUtNS01In1dLFsicGF0aCIse2Q6Im05LjUgMTIuNSA1LTUifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXX0pO3ZhciByQyxQeWU9bigoKT0+e3JDPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIyMSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTciLHkyOiIyMSJ9XV19KTt2YXIgaUMsSXllPW4oKCk9PntpQz1bWyJwYXRoIix7ZDoiTTE4IDVoNCJ9XSxbInBhdGgiLHtkOiJNMjAgM3Y0In1dLFsicGF0aCIse2Q6Ik0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIn1dXX0pO3ZhciBvQyxGeWU9bigoKT0+e29DPVtbInBhdGgiLHtkOiJtMTggMTQtMS0zIn1dLFsicGF0aCIse2Q6Im0zIDkgNiAyYTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMS45OSAxLjgxIn1dLFsicGF0aCIse2Q6Ik04IDE3aDNhMSAxIDAgMCAwIDEtMSA2IDYgMCAwIDEgNi02IDEgMSAwIDAgMCAxLTF2LS43NUE1IDUgMCAwIDAgMTcgNSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE3IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxNyIscjoiMyJ9XV19KTt2YXIgc0MsT3llPW4oKCk9PntzQz1bWyJwYXRoIix7ZDoiTTIwLjk4NSAxMi40ODZhOSA5IDAgMSAxLTkuNDczLTkuNDcyYy40MDUtLjAyMi42MTcuNDYuNDAyLjgwM2E2IDYgMCAwIDAgOC4yNjggOC4yNjhjLjM0NC0uMjE1LjgyNS0uMDA0LjgwMy40MDEifV1dfSk7dmFyIG5DLEJ5ZT1uKCgpPT57bkM9W1sicGF0aCIse2Q6Im04IDMgNCA4IDUtNSA1IDE1SDJMOCAzeiJ9XSxbInBhdGgiLHtkOiJNNC4xNCAxNS4wOGMyLjYyLTEuNTcgNS4yNC0xLjQzIDcuODYuNDIgMi43NCAxLjk0IDUuNDkgMiA4LjIzLjE5In1dXX0pO3ZhciBsQyxSeWU9bigoKT0+e2xDPVtbInBhdGgiLHtkOiJtOCAzIDQgOCA1LTUgNSAxNUgyTDggM3oifV1dfSk7dmFyIGNDLEh5ZT1uKCgpPT57Y0M9W1sicGF0aCIse2Q6Ik0xMiA2di4zNDMifV0sWyJwYXRoIix7ZDoiTTE4LjIxOCAxOC4yMThBNyA3IDAgMCAxIDUgMTVWOWE3IDcgMCAwIDEgLjc4Mi0zLjIxOCJ9XSxbInBhdGgiLHtkOiJNMTkgMTMuMzQzVjlBNyA3IDAgMCAwIDguNTYgMi45MDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XV19KTt2YXIgZEMscXllPW4oKCk9PntkQz1bWyJwYXRoIix7ZDoibTE1LjU1IDguNDUgNS4xMzggMi4wODdhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjNMOC40NSAxNS41NTEifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbInBhdGgiLHtkOiJtNi44MTYgMTEuNTI4LTIuNzc5LTYuODRhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDYuODQgMi43NzkifV1dfSk7dmFyIGZDLFZ5ZT1uKCgpPT57ZkM9W1sicGF0aCIse2Q6Ik00LjAzNyA0LjY4OGEuNDk1LjQ5NSAwIDAgMSAuNjUxLS42NTFsMTYgNi41YS41LjUgMCAwIDEtLjA2My45NDdsLTYuMTI0IDEuNThhMiAyIDAgMCAwLTEuNDM4IDEuNDM1bC0xLjU3OSA2LjEyNmEuNS41IDAgMCAxLS45NDcuMDYzeiJ9XV19KTt2YXIgdUMsVXllPW4oKCk9Pnt1Qz1bWyJwYXRoIix7ZDoiTTIuMDM0IDIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQ0TDguMjA0IDcuNTQ1YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY2IDMuNDQzYS41LjUgMCAwIDEtLjk0NC4wMzN6In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV0sWyJwYXRoIix7ZDoibTExLjggMTEuOCA4LjQgOC40In1dXX0pO3ZhciBwQyxqeWU9bigoKT0+e3BDPVtbInBhdGgiLHtkOiJNMTQgNC4xIDEyIDYifV0sWyJwYXRoIix7ZDoibTUuMSA4LTIuOS0uOCJ9XSxbInBhdGgiLHtkOiJtNiAxMi0xLjkgMiJ9XSxbInBhdGgiLHtkOiJNNy4yIDIuMiA4IDUuMSJ9XSxbInBhdGgiLHtkOiJNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eiJ9XV19KTt2YXIgaEMsV3llPW4oKCk9PntoQz1bWyJwYXRoIix7ZDoiTTEyLjU4NiAxMi41ODYgMTkgMTkifV0sWyJwYXRoIix7ZDoiTTMuNjg4IDMuMDM3YS40OTcuNDk3IDAgMCAwLS42NTEuNjUxbDYuNSAxNS45OTlhLjUwMS41MDEgMCAwIDAgLjk0Ny0uMDYybDEuNTY5LTYuMDgzYTIgMiAwIDAgMSAxLjQ0OC0xLjQ3OWw2LjEyNC0xLjU3OWEuNS41IDAgMCAwIC4wNjMtLjk0N3oifV1dfSk7dmFyIG1DLEd5ZT1uKCgpPT57bUM9W1sicmVjdCIse3g6IjUiLHk6IjIiLHdpZHRoOiIxNCIsaGVpZ2h0OiIyMCIscng6IjcifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NCJ9XV19KTt2YXIgWTQsWXllPW4oKCk9PntZND1bWyJwYXRoIix7ZDoiTTUgM3YxNmgxNiJ9XSxbInBhdGgiLHtkOiJtNSAxOSA2LTYifV0sWyJwYXRoIix7ZDoibTIgNiAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Im0xOCAxNiAzIDMtMyAzIn1dXX0pO3ZhciBnQyxaeWU9bigoKT0+e2dDPVtbInBhdGgiLHtkOiJNMTkgMTN2NmgtNiJ9XSxbInBhdGgiLHtkOiJNNSAxMVY1aDYifV0sWyJwYXRoIix7ZDoibTUgNSAxNCAxNCJ9XV19KTt2YXIgeEMsWHllPW4oKCk9Pnt4Qz1bWyJwYXRoIix7ZDoiTTExIDE5SDV2LTYifV0sWyJwYXRoIix7ZDoiTTEzIDVoNnY2In1dLFsicGF0aCIse2Q6Ik0xOSA1IDUgMTkifV1dfSk7dmFyIGJDLFF5ZT1uKCgpPT57YkM9W1sicGF0aCIse2Q6Ik0xMSAxOUg1VjEzIn1dLFsicGF0aCIse2Q6Ik0xOSA1TDUgMTkifV1dfSk7dmFyIHZDLEt5ZT1uKCgpPT57dkM9W1sicGF0aCIse2Q6Ik0xOSAxM1YxOUgxMyJ9XSxbInBhdGgiLHtkOiJNNSA1TDE5IDE5In1dXX0pO3ZhciB5QyxKeWU9bigoKT0+e3lDPVtbInBhdGgiLHtkOiJNOCAxOEwxMiAyMkwxNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTIgMlYyMiJ9XV19KTt2YXIgd0MsZXdlPW4oKCk9Pnt3Qz1bWyJwYXRoIix7ZDoiTTYgOEwyIDEyTDYgMTYifV0sWyJwYXRoIix7ZDoiTTIgMTJIMjIifV1dfSk7dmFyIE1DLHR3ZT1uKCgpPT57TUM9W1sicGF0aCIse2Q6Im0xOCA4IDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0In1dXX0pO3ZhciB6Qyxhd2U9bigoKT0+e3pDPVtbInBhdGgiLHtkOiJNMTggOEwyMiAxMkwxOCAxNiJ9XSxbInBhdGgiLHtkOiJNMiAxMkgyMiJ9XV19KTt2YXIga0MscndlPW4oKCk9PntrQz1bWyJwYXRoIix7ZDoiTTUgMTFWNUgxMSJ9XSxbInBhdGgiLHtkOiJNNSA1TDE5IDE5In1dXX0pO3ZhciBTQyxpd2U9bigoKT0+e1NDPVtbInBhdGgiLHtkOiJNMTMgNUgxOVYxMSJ9XSxbInBhdGgiLHtkOiJNMTkgNUw1IDE5In1dXX0pO3ZhciBDQyxvd2U9bigoKT0+e0NDPVtbInBhdGgiLHtkOiJNOCA2TDEyIDJMMTYgNiJ9XSxbInBhdGgiLHtkOiJNMTIgMlYyMiJ9XV19KTt2YXIgTEMsc3dlPW4oKCk9PntMQz1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoibTggMTggNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJtOCA2IDQtNCA0IDQifV1dfSk7dmFyIFRDLG53ZT1uKCgpPT57VEM9W1sicGF0aCIse2Q6Ik0xMiAydjIwIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zIDMtMy0zIn1dLFsicGF0aCIse2Q6Im0xOSA5IDMgMy0zIDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoibTUgOS0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im05IDUgMy0zIDMgMyJ9XV19KTt2YXIgX0MsbHdlPW4oKCk9PntfQz1bWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE4IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAxOFYybDcgNCJ9XV19KTt2YXIgQUMsY3dlPW4oKCk9PntBQz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOCIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTYgMThWMiJ9XV19KTt2YXIgJEMsZHdlPW4oKCk9PnskQz1bWyJwYXRoIix7ZDoiTTkgMThWNWwxMi0ydjEzIn1dLFsicGF0aCIse2Q6Im05IDkgMTItMiJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNiIscjoiMyJ9XV19KTt2YXIgREMsZndlPW4oKCk9PntEQz1bWyJwYXRoIix7ZDoiTTkgMThWNWwxMi0ydjEzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE2IixyOiIzIn1dXX0pO3ZhciBFQyx1d2U9bigoKT0+e0VDPVtbInBhdGgiLHtkOiJNOS4zMSA5LjMxIDUgMjFsNy00IDcgNC0xLjE3LTMuMTcifV0sWyJwYXRoIix7ZDoiTTE0LjUzIDguODggMTIgMmwtMS4xNyAzLjE3In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIE5DLHB3ZT1uKCgpPT57TkM9W1sicG9seWdvbiIse3BvaW50czoiMTIgMiAxOSAyMSAxMiAxNyA1IDIxIDEyIDIifV1dfSk7dmFyIFBDLGh3ZT1uKCgpPT57UEM9W1sicGF0aCIse2Q6Ik04LjQzIDguNDMgMyAxMWw4IDIgMiA4IDIuNTctNS40MyJ9XSxbInBhdGgiLHtkOiJNMTcuMzkgMTEuNzMgMjIgMmwtOS43MyA0LjYxIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIElDLG13ZT1uKCgpPT57SUM9W1sicG9seWdvbiIse3BvaW50czoiMyAxMSAyMiAyIDEzIDIxIDExIDEzIDMgMTEifV1dfSk7dmFyIEZDLGd3ZT1uKCgpPT57RkM9W1sicGF0aCIse2Q6Ik0xNSAxOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTggMTRoLTgifV0sWyJwYXRoIix7ZDoiTTQgMjJoMTZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMS00IDB2LTlhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjEwIix5OiI2IixyeDoiMSJ9XV19KTt2YXIgT0MseHdlPW4oKCk9PntPQz1bWyJyZWN0Iix7eDoiMTYiLHk6IjE2Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJyZWN0Iix7eDoiOSIseToiMiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTUgMTZ2LTNhMSAxIDAgMCAxIDEtMWgxMmExIDEgMCAwIDEgMSAxdjMifV0sWyJwYXRoIix7ZDoiTTEyIDEyVjgifV1dfSk7dmFyIEJDLGJ3ZT1uKCgpPT57QkM9W1sicGF0aCIse2Q6Ik02IDguMzJhNy40MyA3LjQzIDAgMCAxIDAgNy4zNiJ9XSxbInBhdGgiLHtkOiJNOS40NiA2LjIxYTExLjc2IDExLjc2IDAgMCAxIDAgMTEuNTgifV0sWyJwYXRoIix7ZDoiTTEyLjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCJ9XSxbInBhdGgiLHtkOiJNMTYuMzcgMmEyMC4xNiAyMC4xNiAwIDAgMSAwIDIwIn1dXX0pO3ZhciBSQyx2d2U9bigoKT0+e1JDPVtbInBhdGgiLHtkOiJNMTIgMnYxMCJ9XSxbInBhdGgiLHtkOiJtOC41IDQgNyA0In1dLFsicGF0aCIse2Q6Im04LjUgOCA3LTQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNyIscjoiNSJ9XV19KTt2YXIgSEMseXdlPW4oKCk9PntIQz1bWyJwYXRoIix7ZDoiTTEzLjQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi03LjQifV0sWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDQifV0sWyJwYXRoIix7ZDoiTTIgMTRoNCJ9XSxbInBhdGgiLHtkOiJNMiAxOGg0In1dLFsicGF0aCIse2Q6Ik0yMS4zNzggNS42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV19KTt2YXIgcUMsd3dlPW4oKCk9PntxQz1bWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDQifV0sWyJwYXRoIix7ZDoiTTIgMTRoNCJ9XSxbInBhdGgiLHtkOiJNMiAxOGg0In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDJ2MjAifV0sWyJwYXRoIix7ZDoiTTE1IDdoNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJoNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTdoNSJ9XV19KTt2YXIgVkMsTXdlPW4oKCk9PntWQz1bWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDQifV0sWyJwYXRoIix7ZDoiTTIgMTRoNCJ9XSxbInBhdGgiLHtkOiJNMiAxOGg0In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkuNSA4aDUifV0sWyJwYXRoIix7ZDoiTTkuNSAxMkgxNiJ9XSxbInBhdGgiLHtkOiJNOS41IDE2SDE0In1dXX0pO3ZhciBVQyx6d2U9bigoKT0+e1VDPVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTYgMnYyMCJ9XV19KTt2YXIgakMsa3dlPW4oKCk9PntqQz1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2MiJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2MmEyIDIgMCAwIDEtMiAyaC0xIn1dLFsicGF0aCIse2Q6Ik0xMyAyMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMkg2YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTQgMTR2LTIifV0sWyJwYXRoIix7ZDoiTTQgOFY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNOCAxMGg2In1dLFsicGF0aCIse2Q6Ik04IDE0aDgifV0sWyJwYXRoIix7ZDoiTTggMThoNSJ9XV19KTt2YXIgV0MsU3dlPW4oKCk9PntXQz1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTgiLHg6IjQiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDYifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg1In1dXX0pO3ZhciBHQyxDd2U9bigoKT0+e0dDPVtbInBhdGgiLHtkOiJNMTIgNFYyIn1dLFsicGF0aCIse2Q6Ik01IDEwdjRhNy4wMDQgNy4wMDQgMCAwIDAgNS4yNzcgNi43ODdjLjQxMi4xMDQuODAyLjI5MiAxLjEwMi41OTJMMTIgMjJsLjYyMS0uNjIxYy4zLS4zLjY5LS40ODggMS4xMDItLjU5MmE3LjAxIDcuMDEgMCAwIDAgNC4xMjUtMi45MzkifV0sWyJwYXRoIix7ZDoiTTE5IDEwdjMuMzQzIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmMtMS4zNDktLjU3My0xLjkwNS0xLjAwNS0yLjUtMi0uNTQ2LjkwMi0xLjA0OCAxLjM1My0yLjUgMi0xLjAxOC0uNjQ0LTEuNDYtMS4wOC0yLTItMS4wMjguNzEtMS42OS45MTgtMyAxIDEuMDgxLTEuMDQ4IDEuNzU3LTIuMDMgMi0zIC4xOTQtLjc3Ni44NC0xLjU1MSAxLjc5LTIuMjFtMTEuNjU0IDUuOTk3Yy44ODctLjQ1NyAxLjI4LS44OTEgMS41NTYtMS43ODcgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTQtLjc0IDAtMS40NjEuMDY4LTIuMTUuMTkyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIFlDLEx3ZT1uKCgpPT57WUM9W1sicGF0aCIse2Q6Ik0xMiA0VjIifV0sWyJwYXRoIix7ZDoiTTUgMTB2NGE3LjAwNCA3LjAwNCAwIDAgMCA1LjI3NyA2Ljc4N2MuNDEyLjEwNC44MDIuMjkyIDEuMTAyLjU5MkwxMiAyMmwuNjIxLS42MjFjLjMtLjMuNjktLjQ4OCAxLjEwMi0uNTkyQTcuMDAzIDcuMDAzIDAgMCAwIDE5IDE0di00In1dLFsicGF0aCIse2Q6Ik0xMiA0QzggNCA0LjUgNiA0IDhjLS4yNDMuOTctLjkxOSAxLjk1Mi0yIDMgMS4zMS0uMDgyIDEuOTcyLS4yOSAzLTEgLjU0LjkyLjk4MiAxLjM1NiAyIDIgMS40NTItLjY0NyAxLjk1NC0xLjA5OCAyLjUtMiAuNTk1Ljk5NSAxLjE1MSAxLjQyNyAyLjUgMiAxLjMxLS42MjEgMS44NjItMS4wNTggMi41LTIgLjYyOS45NzcgMS4xNjIgMS40MjMgMi41IDIgMS4yMDktLjU0OCAxLjY4LS45NjcgMi0yIDEuMDMyLjkxNiAxLjY4MyAxLjE1NyAzIDEtMS4yOTctMS4wMzYtMS43NTgtMi4wMy0yLTMtLjUtMi00LTQtOC00WiJ9XV19KTt2YXIgWjQsVHdlPW4oKCk9PntaND1bWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgOHY0In1dLFsicGF0aCIse2Q6Ik0xNS4zMTIgMmEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NmwtNC42ODgtNC42ODhBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyeiJ9XV19KTt2YXIgWkMsX3dlPW4oKCk9PntaQz1bWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dfSk7dmFyIFg0LEF3ZT1uKCgpPT57WDQ9W1sicGF0aCIse2Q6Ik0xMCAxNVY5In1dLFsicGF0aCIse2Q6Ik0xNCAxNVY5In1dLFsicGF0aCIse2Q6Ik0yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eiJ9XV19KTt2YXIgUTQsJHdlPW4oKCk9PntRND1bWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik0yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV19KTt2YXIgWEMsRHdlPW4oKCk9PntYQz1bWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dXX0pO3ZhciBRQyxFd2U9bigoKT0+e1FDPVtbInBhdGgiLHtkOiJNMyAyMGg0LjVhLjUuNSAwIDAgMCAuNS0uNXYtLjI4MmEuNTIuNTIgMCAwIDAtLjI0Ny0uNDM3IDggOCAwIDEgMSA4LjQ5NC0uMDAxLjUyLjUyIDAgMCAwLS4yNDcuNDM4di4yODJhLjUuNSAwIDAgMCAuNS41SDIxIn1dXX0pO3ZhciBLQyxOd2U9bigoKT0+e0tDPVtbInBhdGgiLHtkOiJNMyAzaDZsNiAxOGg2In1dLFsicGF0aCIse2Q6Ik0xNCAzaDcifV1dfSk7dmFyIEpDLFB3ZT1uKCgpPT57SkM9W1sicGF0aCIse2Q6Ik0yMC4zNDEgNi40ODRBMTAgMTAgMCAwIDEgMTAuMjY2IDIxLjg1In1dLFsicGF0aCIse2Q6Ik0zLjY1OSAxNy41MTZBMTAgMTAgMCAwIDEgMTMuNzQgMi4xNTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dXX0pO3ZhciBlTCxJd2U9bigoKT0+e2VMPVtbInBhdGgiLHtkOiJNMTIgMTJWNGExIDEgMCAwIDEgMS0xaDYuMjk3YTEgMSAwIDAgMSAuNjUxIDEuNzU5bC00LjY5NiA0LjAyNSJ9XSxbInBhdGgiLHtkOiJtMTIgMjEtNy40MTQtNy40MTRBMiAyIDAgMCAxIDQgMTIuMTcyVjYuNDE1YTEuMDAyIDEuMDAyIDAgMCAxIDEuNzA3LS43MDdMMjAgMjAuMDA5In1dLFsicGF0aCIse2Q6Im0xMi4yMTQgMy4zODEgOC40MTQgMTQuOTY2YTEgMSAwIDAgMS0uMTY3IDEuMTk5bC0xLjE2OCAxLjE2M2ExIDEgMCAwIDEtLjcwNi4yOTFINi4zNTFhMSAxIDAgMCAxLS42MjUtLjIxOUwzLjI1IDE4LjhhMSAxIDAgMCAxIC42MzEtMS43ODFsNC4xNjUuMDI3In1dXX0pO3ZhciB0TCxGd2U9bigoKT0+e3RMPVtbInBhdGgiLHtkOiJNMTIgM3Y2In1dLFsicGF0aCIse2Q6Ik0xNi43NiAzYTIgMiAwIDAgMSAxLjggMS4xbDIuMjMgNC40NzlhMiAyIDAgMCAxIC4yMS44OTFWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOS40NzJhMiAyIDAgMCAxIC4yMTEtLjg5NEw1LjQ1IDQuMUEyIDIgMCAwIDEgNy4yNCAzeiJ9XSxbInBhdGgiLHtkOiJNMy4wNTQgOS4wMTNoMTcuODkzIn1dXX0pO3ZhciBhTCxPd2U9bigoKT0+e2FMPVtbInBhdGgiLHtkOiJtMTYgMTYgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjkgNyAxMiAxMiAyMC43MSA3In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIiLHkyOiIxMiJ9XV19KTt2YXIgckwsQndlPW4oKCk9PntyTD1bWyJwYXRoIix7ZDoiTTE2IDE2aDYifV0sWyJwYXRoIix7ZDoiTTIxIDEwVjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGwyLTEuMTQifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDkgNS4xNSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTIifV1dfSk7dmFyIGlMLFJ3ZT1uKCgpPT57aUw9W1sicGF0aCIse2Q6Ik0xMiAyMnYtOSJ9XSxbInBhdGgiLHtkOiJNMTUuMTcgMi4yMWExLjY3IDEuNjcgMCAwIDEgMS42MyAwTDIxIDQuNTdhMS45MyAxLjkzIDAgMCAxIDAgMy4zNkw4LjgyIDE0Ljc5YTEuNjU1IDEuNjU1IDAgMCAxLTEuNjQgMEwzIDEyLjQzYTEuOTMgMS45MyAwIDAgMSAwLTMuMzZ6In1dLFsicGF0aCIse2Q6Ik0yMCAxM3YzLjg3YTIuMDYgMi4wNiAwIDAgMS0xLjExIDEuODNsLTYgMy4wOGExLjkzIDEuOTMgMCAwIDEtMS43OCAwbC02LTMuMDhBMi4wNiAyLjA2IDAgMCAxIDQgMTYuODdWMTMifV0sWyJwYXRoIix7ZDoiTTIxIDEyLjQzYTEuOTMgMS45MyAwIDAgMCAwLTMuMzZMOC44MyAyLjJhMS42NCAxLjY0IDAgMCAwLTEuNjMgMEwzIDQuNTdhMS45MyAxLjkzIDAgMCAwIDAgMy4zNmwxMi4xOCA2Ljg2YTEuNjM2IDEuNjM2IDAgMCAwIDEuNjMgMHoifV1dfSk7dmFyIG9MLEh3ZT1uKCgpPT57b0w9W1sicGF0aCIse2Q6Ik0xNiAxNmg2In1dLFsicGF0aCIse2Q6Ik0xOSAxM3Y2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMy4yOSA3IDEyIDEyIDIwLjcxIDcifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjEyIn1dXX0pO3ZhciBzTCxxd2U9bigoKT0+e3NMPVtbInBhdGgiLHtkOiJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjkgNyAxMiAxMiAyMC43MSA3In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIiLHkyOiIxMiJ9XSxbImNpcmNsZSIse2N4OiIxOC41IixjeToiMTUuNSIscjoiMi41In1dLFsicGF0aCIse2Q6Ik0yMC4yNyAxNy4yNyAyMiAxOSJ9XV19KTt2YXIgbkwsVndlPW4oKCk9PntuTD1bWyJwYXRoIix7ZDoiTTIxIDEwVjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGwyLTEuMTQifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDkgNS4xNSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTIifV0sWyJwYXRoIix7ZDoibTE3IDEzIDUgNW0tNSAwIDUtNSJ9XV19KTt2YXIgbEwsVXdlPW4oKCk9PntsTD1bWyJwYXRoIix7ZDoiTTExIDIxLjczYTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzN6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dXX0pO3ZhciBjTCxqd2U9bigoKT0+e2NMPVtbInBhdGgiLHtkOiJNMTEgNyA2IDIifV0sWyJwYXRoIix7ZDoiTTE4Ljk5MiAxMkgyLjA0MSJ9XSxbInBhdGgiLHtkOiJNMjEuMTQ1IDE4LjM4QTMuMzQgMy4zNCAwIDAgMSAyMCAxNi41YTMuMyAzLjMgMCAwIDEtMS4xNDUgMS44OGMtLjU3NS40Ni0uODU1IDEuMDItLjg1NSAxLjU5NUEyIDIgMCAwIDAgMjAgMjJhMiAyIDAgMCAwIDItMi4wMjVjMC0uNTgtLjI4NS0xLjEzLS44NTUtMS41OTUifV0sWyJwYXRoIix7ZDoibTguNSA0LjUgMi4xNDgtMi4xNDhhMS4yMDUgMS4yMDUgMCAwIDEgMS43MDQgMGw3LjI5NiA3LjI5NmExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC03LjU5MiA3LjU5MmEzLjYxNSAzLjYxNSAwIDAgMS01LjExMiAwbC0zLjg4OC0zLjg4OGEzLjYxNSAzLjYxNSAwIDAgMSAwLTUuMTEyTDUuNjcgNy4zMyJ9XV19KTt2YXIgZEwsV3dlPW4oKCk9PntkTD1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjYiLHg6IjIiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMCAxNnYtMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNiIseDoiOCIseToiMTYiLHJ4OiIxIn1dXX0pO3ZhciBLNCxHd2U9bigoKT0+e0s0PVtbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjQifV0sWyJwYXRoIix7ZDoiTTE3IDJhMSAxIDAgMCAxIDEgMXY5SDZWM2ExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMCAwIDIgMmgyYTEgMSAwIDAgMSAxIDF2Mi45YTIgMiAwIDEgMCA0IDBWMTdhMSAxIDAgMCAxIDEtMWgyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMSJ9XV19KTt2YXIgZkwsWXdlPW4oKCk9PntmTD1bWyJwYXRoIix7ZDoibTE0LjYyMiAxNy44OTctMTAuNjgtMi45MTMifV0sWyJwYXRoIix7ZDoiTTE4LjM3NiAyLjYyMmExIDEgMCAxIDEgMy4wMDIgMy4wMDJMMTcuMzYgOS42NDNhLjUuNSAwIDAgMCAwIC43MDdsLjk0NC45NDRhMi40MSAyLjQxIDAgMCAxIDAgMy40MDhsLS45NDQuOTQ0YS41LjUgMCAwIDEtLjcwNyAwTDguMzU0IDcuMzQ4YS41LjUgMCAwIDEgMC0uNzA3bC45NDQtLjk0NGEyLjQxIDIuNDEgMCAwIDEgMy40MDggMGwuOTQ0Ljk0NGEuNS41IDAgMCAwIC43MDcgMHoifV0sWyJwYXRoIix7ZDoiTTkgOGMtMS44MDQgMi43MS0zLjk3IDMuNDYtNi41ODMgMy45NDhhLjUwNy41MDcgMCAwIDAtLjMwMi44MTlsNy4zMiA4Ljg4M2ExIDEgMCAwIDAgMS4xODUuMjA0QzEyLjczNSAyMC40MDUgMTYgMTYuNzkyIDE2IDE1In1dXX0pO3ZhciB1TCxad2U9bigoKT0+e3VMPVtbInBhdGgiLHtkOiJNMTIgMjJhMSAxIDAgMCAxIDAtMjAgMTAgOSAwIDAgMSAxMCA5IDUgNSAwIDAgMS01IDVoLTIuMjVhMS43NSAxLjc1IDAgMCAwLTEuNCAyLjhsLjMuNGExLjc1IDEuNzUgMCAwIDEtMS40IDIuOHoifV0sWyJjaXJjbGUiLHtjeDoiMTMuNSIsY3k6IjYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTAuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiI2LjUiLGN5OiIxMi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV19KTt2YXIgcEwsWHdlPW4oKCk9PntwTD1bWyJwYXRoIix7ZDoiTTExLjI1IDE3LjI1aDEuNUwxMiAxOHoifV0sWyJwYXRoIix7ZDoibTE1IDEyIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTggNi41YS41LjUgMCAwIDAtLjUtLjUifV0sWyJwYXRoIix7ZDoiTTIwLjY5IDkuNjdhNC41IDQuNSAwIDEgMC03LjA0LTUuNSA4LjM1IDguMzUgMCAwIDAtMy4zIDAgNC41IDQuNSAwIDEgMC03LjA0IDUuNUMyLjQ5IDExLjIgMiAxMi44OCAyIDE0LjUgMiAxOS40NyA2LjQ4IDIyIDEyIDIyczEwLTIuNTMgMTAtNy41YzAtMS42Mi0uNDgtMy4zLTEuMy00LjgzIn1dLFsicGF0aCIse2Q6Ik02IDYuNWEuNDk1LjQ5NSAwIDAgMSAuNS0uNSJ9XSxbInBhdGgiLHtkOiJtOSAxMi0yIDIifV1dfSk7dmFyIGhMLFF3ZT1uKCgpPT57aEw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoibTE1IDgtMyAzLTMtMyJ9XV19KTt2YXIgSjQsS3dlPW4oKCk9PntKND1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoMSJ9XSxbInBhdGgiLHtkOiJNMTkgMTVoMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgyIn1dLFsicGF0aCIse2Q6Ik05IDE1aDEifV1dfSk7dmFyIG1MLEp3ZT1uKCgpPT57bUw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XV19KTt2YXIgZ0wsZU1lPW4oKCk9PntnTD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XV19KTt2YXIgZTMsdE1lPW4oKCk9PntlMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsicGF0aCIse2Q6Im0xNiAxNS0zLTMgMy0zIn1dXX0pO3ZhciB0MyxhTWU9bigoKT0+e3QzPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDE0djEifV0sWyJwYXRoIix7ZDoiTTkgMTl2MiJ9XSxbInBhdGgiLHtkOiJNOSAzdjIifV0sWyJwYXRoIix7ZDoiTTkgOXYxIn1dXX0pO3ZhciBhMyxyTWU9bigoKT0+e2EzPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoibTE0IDkgMyAzLTMgMyJ9XV19KTt2YXIgeEwsaU1lPW4oKCk9Pnt4TD1bWyJwYXRoIix7ZDoiTTE1IDEwVjkifV0sWyJwYXRoIix7ZDoiTTE1IDE1di0xIn1dLFsicGF0aCIse2Q6Ik0xNSAyMXYtMiJ9XSxbInBhdGgiLHtkOiJNMTUgNVYzIn1dLFsicGF0aCIse2Q6Ik05IDEwVjkifV0sWyJwYXRoIix7ZDoiTTkgMTV2LTEifV0sWyJwYXRoIix7ZDoiTTkgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTkgNVYzIn1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIHIzLG9NZT1uKCgpPT57cjM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XV19KTt2YXIgYkwsc01lPW4oKCk9PntiTD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XSxbInBhdGgiLHtkOiJtOCA5IDMgMy0zIDMifV1dfSk7dmFyIGkzLG5NZT1uKCgpPT57aTM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDE0djEifV0sWyJwYXRoIix7ZDoiTTE1IDE5djIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MiJ9XSxbInBhdGgiLHtkOiJNMTUgOXYxIn1dXX0pO3ZhciB2TCxsTWU9bigoKT0+e3ZMPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Im0xMCAxNS0zLTMgMy0zIn1dXX0pO3ZhciB5TCxjTWU9bigoKT0+e3lMPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXX0pO3ZhciB3TCxkTWU9bigoKT0+e3dMPVtbInBhdGgiLHtkOiJNMTQgMTVoMSJ9XSxbInBhdGgiLHtkOiJNMTQgOWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0xOSA5aDIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDIifV0sWyJwYXRoIix7ZDoiTTkgMTVoMSJ9XSxbInBhdGgiLHtkOiJNOSA5aDEifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgTUwsZk1lPW4oKCk9PntNTD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Im05IDE2IDMtMyAzIDMifV1dfSk7dmFyIG8zLHVNZT1uKCgpPT57bzM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE0IDloMSJ9XSxbInBhdGgiLHtkOiJNMTkgOWgyIn1dLFsicGF0aCIse2Q6Ik0zIDloMiJ9XSxbInBhdGgiLHtkOiJNOSA5aDEifV1dfSk7dmFyIHpMLHBNZT1uKCgpPT57ekw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJtMTUgMTQtMyAzLTMtMyJ9XV19KTt2YXIga0wsaE1lPW4oKCk9PntrTD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsicGF0aCIse2Q6Ik05IDE1aDEyIn1dXX0pO3ZhciBTTCxtTWU9bigoKT0+e1NMPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV1dfSk7dmFyIENMLGdNZT1uKCgpPT57Q0w9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dfSk7dmFyIHMzLHhNZT1uKCgpPT57czM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNOSAyMVY5In1dXX0pO3ZhciBMTCxiTWU9bigoKT0+e0xMPVtbInBhdGgiLHtkOiJtMTYgNi04LjQxNCA4LjU4NmEyIDIgMCAwIDAgMi44MjkgMi44MjlsOC40MTQtOC41ODZhNCA0IDAgMSAwLTUuNjU3LTUuNjU3bC04LjM3OSA4LjU1MWE2IDYgMCAxIDAgOC40ODUgOC40ODVsOC4zNzktOC41NTEifV1dfSk7dmFyIFRMLHZNZT1uKCgpPT57VEw9W1sicGF0aCIse2Q6Ik0xMSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xNS4yODIgMTlhMSAxIDAgMCAwIC45NDgtLjY4bDIuMzctNi45ODhhNyA3IDAgMSAwLTEzLjIgMGwyLjM3IDYuOTg4YTEgMSAwIDAgMCAuOTQ4LjY4eiJ9XSxbInBhdGgiLHtkOiJNOSA5YTMgMyAwIDEgMSA2IDAifV1dfSk7dmFyIF9MLHlNZT1uKCgpPT57X0w9W1sicGF0aCIse2Q6Ik04IDIxcy00LTMtNC05IDQtOSA0LTkifV0sWyJwYXRoIix7ZDoiTTE2IDNzNCAzIDQgOS00IDktNCA5In1dXX0pO3ZhciBBTCx3TWU9bigoKT0+e0FMPVtbInBhdGgiLHtkOiJNNS44IDExLjMgMiAyMmwxMC43LTMuNzkifV0sWyJwYXRoIix7ZDoiTTQgM2guMDEifV0sWyJwYXRoIix7ZDoiTTIyIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAyLTIuMjQuNzVhMi45IDIuOSAwIDAgMC0xLjk2IDMuMTJjLjEuODYtLjU3IDEuNjMtMS40NSAxLjYzaC0uMzhjLS44NiAwLTEuNi42LTEuNzYgMS40NEwxNCAxMCJ9XSxbInBhdGgiLHtkOiJtMjIgMTMtLjgyLS4zM2MtLjg2LS4zNC0xLjgyLjItMS45OCAxLjExYy0uMTEuNy0uNzIgMS4yMi0xLjQzIDEuMjJIMTcifV0sWyJwYXRoIix7ZDoibTExIDIgLjMzLjgyYy4zNC44Ni0uMiAxLjgyLTEuMTEgMS45OEM5LjUyIDQuOSA5IDUuNTIgOSA2LjIzVjcifV0sWyJwYXRoIix7ZDoiTTExIDEzYzEuOTMgMS45MyAyLjgzIDQuMTcgMiA1LS44My44My0zLjA3LS4wNy01LTItMS45My0xLjkzLTIuODMtNC4xNy0yLTUgLjgzLS44MyAzLjA3LjA3IDUgMloifV1dfSk7dmFyICRMLE1NZT1uKCgpPT57JEw9W1sicmVjdCIse3g6IjE0Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiIxOCIscng6IjEifV0sWyJyZWN0Iix7eDoiNSIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiMTgiLHJ4OiIxIn1dXX0pO3ZhciBETCx6TWU9bigoKT0+e0RMPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjQiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI4IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTBhNSA1IDAgMCAxIDUgNXYzLjVhMy41IDMuNSAwIDAgMS02Ljg0IDEuMDQ1UTYuNTIgMTcuNDggNC40NiAxNi44NEEzLjUgMy41IDAgMCAxIDUuNSAxMFoifV1dfSk7dmFyIEVMLGtNZT1uKCgpPT57RUw9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIyMCIseDoiNSIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNOSA2aDYifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV19KTt2YXIgbjMsU01lPW4oKCk9PntuMz1bWyJwYXRoIix7ZDoiTTEzIDIxaDgifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dfSk7dmFyIE5MLENNZT1uKCgpPT57Tkw9W1sicGF0aCIse2Q6Im0xMCAxMC02LjE1NyA2LjE2MmEyIDIgMCAwIDAtLjUuODMzbC0xLjMyMiA0LjM2YS41LjUgMCAwIDAgLjYyMi42MjRsNC4zNTgtMS4zMjNhMiAyIDAgMCAwIC44My0uNUwxNCAxMy45ODIifV0sWyJwYXRoIix7ZDoibTEyLjgyOSA3LjE3MiA0LjM1OS00LjM0NmExIDEgMCAxIDEgMy45ODYgMy45ODZsLTQuMzUzIDQuMzUzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIFBMLExNZT1uKCgpPT57UEw9W1sicGF0aCIse2Q6Ik0xNS43MDcgMjEuMjkzYTEgMSAwIDAgMS0xLjQxNCAwbC0xLjU4Ni0xLjU4NmExIDEgMCAwIDEgMC0xLjQxNGw1LjU4Ni01LjU4NmExIDEgMCAwIDEgMS40MTQgMGwxLjU4NiAxLjU4NmExIDEgMCAwIDEgMCAxLjQxNHoifV0sWyJwYXRoIix7ZDoibTE4IDEzLTEuMzc1LTYuODc0YTEgMSAwIDAgMC0uNzQ2LS43NzZMMy4yMzUgMi4wMjhhMSAxIDAgMCAwLTEuMjA3IDEuMjA3TDUuMzUgMTUuODc5YTEgMSAwIDAgMCAuNzc2Ljc0NkwxMyAxOCJ9XSxbInBhdGgiLHtkOiJtMi4zIDIuMyA3LjI4NiA3LjI4NiJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiIyIn1dXX0pO3ZhciBsMyxUTWU9bigoKT0+e2wzPVtbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XV19KTt2YXIgSUwsX01lPW4oKCk9PntJTD1bWyJwYXRoIix7ZDoiTTEzIDIxaDgifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dLFsicGF0aCIse2Q6Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6In1dXX0pO3ZhciBGTCxBTWU9bigoKT0+e0ZMPVtbInBhdGgiLHtkOiJtMTAgMTAtNi4xNTcgNi4xNjJhMiAyIDAgMCAwLS41LjgzM2wtMS4zMjIgNC4zNmEuNS41IDAgMCAwIC42MjIuNjI0bDQuMzU4LTEuMzIzYTIgMiAwIDAgMCAuODMtLjVMMTQgMTMuOTgyIn1dLFsicGF0aCIse2Q6Im0xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MyJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgT0wsJE1lPW4oKCk9PntPTD1bWyJwYXRoIix7ZDoiTTEzIDcgOC43IDIuN2EyLjQxIDIuNDEgMCAwIDAtMy40IDBMMi43IDUuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjRMNyAxMyJ9XSxbInBhdGgiLHtkOiJtOCA2IDItMiJ9XSxbInBhdGgiLHtkOiJtMTggMTYgMi0yIn1dLFsicGF0aCIse2Q6Im0xNyAxMSA0LjMgNC4zYy45NC45NC45NCAyLjQ2IDAgMy40bC0yLjYgMi42Yy0uOTQuOTQtMi40Ni45NC0zLjQgMEwxMSAxNyJ9XSxbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV1dfSk7dmFyIEJMLERNZT1uKCgpPT57Qkw9W1sicGF0aCIse2Q6Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6In1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XV19KTt2YXIgUkwsRU1lPW4oKCk9PntSTD1bWyJwYXRoIix7ZDoiTTEwLjgzIDIuMzhhMiAyIDAgMCAxIDIuMzQgMGw4IDUuNzRhMiAyIDAgMCAxIC43MyAyLjI1bC0zLjA0IDkuMjZhMiAyIDAgMCAxLTEuOSAxLjM3SDcuMDRhMiAyIDAgMCAxLTEuOS0xLjM3TDIuMSAxMC4zN2EyIDIgMCAwIDEgLjczLTIuMjV6In1dXX0pO3ZhciBITCxOTWU9bigoKT0+e0hMPVtbImxpbmUiLHt4MToiMTkiLHgyOiI1Iix5MToiNSIseTI6IjE5In1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjYuNSIscjoiMi41In1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxNy41IixyOiIyLjUifV1dfSk7dmFyIHFMLFBNZT1uKCgpPT57cUw9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMSJ9XSxbInBhdGgiLHtkOiJtOSAyMCAzLTYgMyA2In1dLFsicGF0aCIse2Q6Im02IDggNiAyIDYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NCJ9XV19KTt2YXIgVkwsSU1lPW4oKCk9PntWTD1bWyJwYXRoIix7ZDoiTTIwIDExSDQifV0sWyJwYXRoIix7ZDoiTTIwIDdINCJ9XSxbInBhdGgiLHtkOiJNNyAyMVY0YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMCAxMkg3In1dXX0pO3ZhciBVTCxGTWU9bigoKT0+e1VMPVtbInBhdGgiLHtkOiJNMTQgNmg4In1dLFsicGF0aCIse2Q6Im0xOCAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXX0pO3ZhciBqTCxPTWU9bigoKT0+e2pMPVtbInBhdGgiLHtkOiJNMTMgMmE5IDkgMCAwIDEgOSA5In1dLFsicGF0aCIse2Q6Ik0xMyA2YTUgNSAwIDAgMSA1IDUifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXX0pO3ZhciBXTCxCTWU9bigoKT0+e1dMPVtbInBhdGgiLHtkOiJNMTYgMnY2aDYifV0sWyJwYXRoIix7ZDoibTIyIDItNiA2In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV19KTt2YXIgR0wsUk1lPW4oKCk9PntHTD1bWyJwYXRoIix7ZDoibTE2IDIgNiA2In1dLFsicGF0aCIse2Q6Im0yMiAyLTYgNiJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIFlMLEhNZT1uKCgpPT57WUw9W1sicGF0aCIse2Q6Ik0xMC4xIDEzLjlhMTQgMTQgMCAwIDAgMy43MzIgMi42NjggMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyIDE4IDE4IDAgMCAxLTEyLjcyOC01LjI3MiJ9XSxbInBhdGgiLHtkOiJNMjIgMiAyIDIyIn1dLFsicGF0aCIse2Q6Ik00Ljc2IDEzLjU4MkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCAuMjQ0LjQ3MyJ9XV19KTt2YXIgWkwscU1lPW4oKCk9PntaTD1bWyJwYXRoIix7ZDoibTE2IDggNi02In1dLFsicGF0aCIse2Q6Ik0yMiA4VjJoLTYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXX0pO3ZhciBYTCxWTWU9bigoKT0+e1hMPVtbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dfSk7dmFyIFFMLFVNZT1uKCgpPT57UUw9W1sibGluZSIse3gxOiI5Iix4MjoiOSIseTE6IjQiLHkyOiIyMCJ9XSxbInBhdGgiLHtkOiJNNCA3YzAtMS43IDEuMy0zIDMtM2gxMyJ9XSxbInBhdGgiLHtkOiJNMTggMjBjLTEuNyAwLTMtMS4zLTMtM1Y0In1dXX0pO3ZhciBLTCxqTWU9bigoKT0+e0tMPVtbInBhdGgiLHtkOiJNMTguNSA4Yy0xLjQgMC0yLjYtLjgtMy4yLTJBNi44NyA2Ljg3IDAgMCAwIDIgOXYxMWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTguNUMyMiA5LjYgMjAuNCA4IDE4LjUgOCJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNNiAxNHY0In1dLFsicGF0aCIse2Q6Ik0xMCAxNHY0In1dLFsicGF0aCIse2Q6Ik0xNCAxNHY0In1dLFsicGF0aCIse2Q6Ik0xOCAxNHY0In1dXX0pO3ZhciBKTCxXTWU9bigoKT0+e0pMPVtbInBhdGgiLHtkOiJtMTQgMTMtOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5Ljk5OSJ9XSxbInBhdGgiLHtkOiJNMTUuOTczIDQuMDI3QTEzIDEzIDAgMCAwIDUuOTAyIDIuMzczYy0xLjM5OC4zNDItMS4wOTIgMi4xNTguMjc3IDIuNjAxYTE5LjkgMTkuOSAwIDAgMSA1LjgyMiAzLjAyNCJ9XSxbInBhdGgiLHtkOiJNMTYuMDAxIDExLjk5OWExOS45IDE5LjkgMCAwIDEgMy4wMjQgNS44MjRjLjQ0NCAxLjM2OSAyLjI2IDEuNjc2IDIuNjAzLjI3OEExMyAxMyAwIDAgMCAyMCA4LjA2OSJ9XSxbInBhdGgiLHtkOiJNMTguMzUyIDMuMzUyYTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBsLTUuMjk2IDUuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw1LjI5Ni01LjI5NmExLjIwNSAxLjIwNSAwIDAgMCAwLTEuNzA0eiJ9XV19KTt2YXIgZVQsR01lPW4oKCk9PntlVD1bWyJwYXRoIix7ZDoiTTIxIDlWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDQifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjciLHg6IjEyIix5OiIxMyIscng6IjIifV1dfSk7dmFyIHRULFlNZT1uKCgpPT57dFQ9W1sicGF0aCIse2Q6Ik0yIDEwaDZWNCJ9XSxbInBhdGgiLHtkOiJtMiA0IDYgNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTBWN2EyIDIgMCAwIDAtMi0yaC03In1dLFsicGF0aCIse2Q6Ik0zIDE0djJhMiAyIDAgMCAwIDIgMmgzIn1dLFsicmVjdCIse3g6IjEyIix5OiIxNCIsd2lkdGg6IjEwIixoZWlnaHQ6IjciLHJ4OiIxIn1dXX0pO3ZhciBhVCxaTWU9bigoKT0+e2FUPVtbInBhdGgiLHtkOiJNMTEgMTdoM3YyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTMuMTYgMy4xNiAwIDAgMCAyLTJoMWExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFoLTFhNSA1IDAgMCAwLTItNFYzYTQgNCAwIDAgMC0zLjIgMS42bC0uMy40SDExYTYgNiAwIDAgMC02IDZ2MWE1IDUgMCAwIDAgMiA0djNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF6In1dLFsicGF0aCIse2Q6Ik0xNiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTIgOHYxYTIgMiAwIDAgMCAyIDJoMSJ9XV19KTt2YXIgclQsWE1lPW4oKCk9PntyVD1bWyJwYXRoIix7ZDoiTTE0IDN2MTEifV0sWyJwYXRoIix7ZDoiTTE0IDloLTNhMyAzIDAgMCAxIDAtNmg5In1dLFsicGF0aCIse2Q6Ik0xOCAzdjExIn1dLFsicGF0aCIse2Q6Ik0yMiAxOEgybDQtNCJ9XSxbInBhdGgiLHtkOiJtNiAyMi00LTQifV1dfSk7dmFyIGlULFFNZT1uKCgpPT57aVQ9W1sicGF0aCIse2Q6Ik0xMCAzdjExIn1dLFsicGF0aCIse2Q6Ik0xMCA5SDdhMSAxIDAgMCAxIDAtNmg4In1dLFsicGF0aCIse2Q6Ik0xNCAzdjExIn1dLFsicGF0aCIse2Q6Im0xOCAxNCA0IDRIMiJ9XSxbInBhdGgiLHtkOiJtMjIgMTgtNCA0In1dXX0pO3ZhciBvVCxLTWU9bigoKT0+e29UPVtbInBhdGgiLHtkOiJNMTMgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTkgNEg5LjVhNC41IDQuNSAwIDAgMCAwIDlIMTMifV1dfSk7dmFyIHNULEpNZT1uKCgpPT57c1Q9W1sicGF0aCIse2Q6Ik0xOCAxMWgtNGExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWg0In1dLFsicGF0aCIse2Q6Ik02IDd2MTNhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNyJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNSIseDoiNCIseToiMiIscng6IjEifV1dfSk7dmFyIG5ULGV6ZT1uKCgpPT57blQ9W1sicGF0aCIse2Q6Im0xMC41IDIwLjUgMTAtMTBhNC45NSA0Ljk1IDAgMSAwLTctN2wtMTAgMTBhNC45NSA0Ljk1IDAgMSAwIDcgN1oifV0sWyJwYXRoIix7ZDoibTguNSA4LjUgNyA3In1dXX0pO3ZhciBsVCx0emU9bigoKT0+e2xUPVtbInBhdGgiLHtkOiJNMTIgMTd2NSJ9XSxbInBhdGgiLHtkOiJNMTUgOS4zNFY3YTEgMSAwIDAgMSAxLTEgMiAyIDAgMCAwIDAtNEg3Ljg5In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTkgOXYxLjc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNFYxNmExIDEgMCAwIDAgMSAxaDExIn1dXX0pO3ZhciBjVCxhemU9bigoKT0+e2NUPVtbInBhdGgiLHtkOiJNMTIgMTd2NSJ9XSxbInBhdGgiLHtkOiJNOSAxMC43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0uNzZhMiAyIDAgMCAwLTEuMTEtMS43OWwtMS43OC0uOUEyIDIgMCAwIDEgMTUgMTAuNzZWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRIOGEyIDIgMCAwIDAgMCA0IDEgMSAwIDAgMSAxIDF6In1dXX0pO3ZhciBkVCxyemU9bigoKT0+e2RUPVtbInBhdGgiLHtkOiJtMTIgOS04LjQxNCA4LjQxNEEyIDIgMCAwIDAgMyAxOC44Mjh2MS4zNDRhMiAyIDAgMCAxLS41ODYgMS40MTRBMiAyIDAgMCAxIDMuODI4IDIxaDEuMzQ0YTIgMiAwIDAgMCAxLjQxNC0uNTg2TDE1IDEyIn1dLFsicGF0aCIse2Q6Im0xOCA5IC40LjRhMSAxIDAgMSAxLTMgM2wtMy44LTMuOGExIDEgMCAxIDEgMy0zbC40LjQgMy40LTMuNGExIDEgMCAxIDEgMyAzeiJ9XSxbInBhdGgiLHtkOiJtMiAyMiAuNDE0LS40MTQifV1dfSk7dmFyIGZULGl6ZT1uKCgpPT57ZlQ9W1sicGF0aCIse2Q6Im0xMiAxNC0xIDEifV0sWyJwYXRoIix7ZDoibTEzLjc1IDE4LjI1LTEuMjUgMS40MiJ9XSxbInBhdGgiLHtkOiJNMTcuNzc1IDUuNjU0YTE1LjY4IDE1LjY4IDAgMCAwLTEyLjEyMSAxMi4xMiJ9XSxbInBhdGgiLHtkOiJNMTguOCA5LjNhMSAxIDAgMCAwIDIuMSA3LjcifV0sWyJwYXRoIix7ZDoiTTIxLjk2NCAyMC43MzJhMSAxIDAgMCAxLTEuMjMyIDEuMjMybC0xOC01YTEgMSAwIDAgMS0uNjk1LTEuMjMyQTE5LjY4IDE5LjY4IDAgMCAxIDE1LjczMiAyLjAzN2ExIDEgMCAwIDEgMS4yMzIuNjk1eiJ9XV19KTt2YXIgdVQsb3plPW4oKCk9Pnt1VD1bWyJwYXRoIix7ZDoiTTIgMjJoMjAifV0sWyJwYXRoIix7ZDoiTTMuNzcgMTAuNzcgMiA5bDItNC41IDEuMS41NWMuNTUuMjguOS44NC45IDEuNDVzLjM1IDEuMTcuOSAxLjQ1TDggOC41bDMtNiAxLjA1LjUzYTIgMiAwIDAgMSAxLjA5IDEuNTJsLjcyIDUuNGEyIDIgMCAwIDAgMS4wOSAxLjUybDQuNCAyLjJjLjQyLjIyLjc4LjU1IDEuMDEuOTZsLjYgMS4wM2MuNDkuODgtLjA2IDEuOTgtMS4wNiAyLjFsLTEuMTguMTVjLS40Ny4wNi0uOTUtLjAyLTEuMzctLjI0TDQuMjkgMTEuMTVhMiAyIDAgMCAxLS41Mi0uMzhaIn1dXX0pO3ZhciBwVCxzemU9bigoKT0+e3BUPVtbInBhdGgiLHtkOiJNMiAyMmgyMCJ9XSxbInBhdGgiLHtkOiJNNi4zNiAxNy40IDQgMTdsLTItNCAxLjEtLjU1YTIgMiAwIDAgMSAxLjggMGwuMTcuMWEyIDIgMCAwIDAgMS44IDBMOCAxMiA1IDZsLjktLjQ1YTIgMiAwIDAgMSAyLjA5LjJsNC4wMiAzYTIgMiAwIDAgMCAyLjEuMmw0LjE5LTIuMDZhMi40MSAyLjQxIDAgMCAxIDEuNzMtLjE3TDIxIDdhMS40IDEuNCAwIDAgMSAuODcgMS45OWwtLjM4Ljc2Yy0uMjMuNDYtLjYuODQtMS4wNyAxLjA4TDcuNTggMTcuMmEyIDIgMCAwIDEtMS4yMi4xOFoifV1dfSk7dmFyIGhULG56ZT1uKCgpPT57aFQ9W1sicGF0aCIse2Q6Ik0xNy44IDE5LjIgMTYgMTFsMy41LTMuNUMyMSA2IDIxLjUgNCAyMSAzYy0xLS41LTMgMC00LjUgMS41TDEzIDggNC44IDYuMmMtLjUtLjEtLjkuMS0xLjEuNWwtLjMuNWMtLjIuNS0uMSAxIC4zIDEuM0w5IDEybC0yIDNINGwtMSAxIDMgMiAyIDMgMS0xdi0zbDMtMiAzLjUgNS4zYy4zLjQuOC41IDEuMy4zbC41LS4yYy40LS4zLjYtLjcuNS0xLjJ6In1dXX0pO3ZhciBtVCxsemU9bigoKT0+e21UPVtbInBhdGgiLHtkOiJNNSA1YTIgMiAwIDAgMSAzLjAwOC0xLjcyOGwxMS45OTcgNi45OThhMiAyIDAgMCAxIC4wMDMgMy40NThsLTEyIDdBMiAyIDAgMCAxIDUgMTl6In1dXX0pO3ZhciBnVCxjemU9bigoKT0+e2dUPVtbInBhdGgiLHtkOiJNOSAydjYifV0sWyJwYXRoIix7ZDoiTTE1IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NSJ9XSxbInBhdGgiLHtkOiJNNSA4aDE0In1dLFsicGF0aCIse2Q6Ik02IDExVjhoMTJ2M2E2IDYgMCAxIDEtMTIgMFoifV1dfSk7dmFyIGMzLGR6ZT1uKCgpPT57YzM9W1sicGF0aCIse2Q6Ik02LjMgMjAuM2EyLjQgMi40IDAgMCAwIDMuNCAwTDEyIDE4bC02LTYtMi4zIDIuM2EyLjQgMi40IDAgMCAwIDAgMy40WiJ9XSxbInBhdGgiLHtkOiJtMiAyMiAzLTMifV0sWyJwYXRoIix7ZDoiTTcuNSAxMy41IDEwIDExIn1dLFsicGF0aCIse2Q6Ik0xMC41IDE2LjUgMTMgMTQifV0sWyJwYXRoIix7ZDoibTE4IDMtNCA0aDZsLTQgNCJ9XV19KTt2YXIgeFQsZnplPW4oKCk9Pnt4VD1bWyJwYXRoIix7ZDoiTTEyIDIydi01In1dLFsicGF0aCIse2Q6Ik0xNSA4VjIifV0sWyJwYXRoIix7ZDoiTTE3IDhhMSAxIDAgMCAxIDEgMXY0YTQgNCAwIDAgMS00IDRoLTRhNCA0IDAgMCAxLTQtNFY5YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik05IDhWMiJ9XV19KTt2YXIgYlQsdXplPW4oKCk9PntiVD1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV0sWyJwYXRoIix7ZDoiTTEyIDV2MTQifV1dfSk7dmFyIHZULHB6ZT1uKCgpPT57dlQ9W1sicGF0aCIse2Q6Ik0zIDJ2MWMwIDEgMiAxIDIgMlMzIDYgMyA3czIgMSAyIDItMiAxLTIgMiAyIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTIwLjgzIDguODNhNCA0IDAgMCAwLTUuNjYtNS42NmwtMTIgMTJhNCA0IDAgMSAwIDUuNjYgNS42NloifV0sWyJwYXRoIix7ZDoiTTE4IDExLjY2VjIyYTQgNCAwIDAgMCA0LTRWNiJ9XV19KTt2YXIgeVQsaHplPW4oKCk9Pnt5VD1bWyJwYXRoIix7ZDoiTTIwIDNhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0yMCAwVjVhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoibTggMTAgNCA0IDQtNCJ9XV19KTt2YXIgd1QsbXplPW4oKCk9Pnt3VD1bWyJwYXRoIix7ZDoiTTEzIDE3YTEgMSAwIDEgMC0yIDBsLjUgNC41YTAuNSAwLjUgMCAwIDAgMSAweiIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Ik0xNi44NSAxOC41OGE5IDkgMCAxIDAtOS43IDAifV0sWyJwYXRoIix7ZDoiTTggMTRhNSA1IDAgMSAxIDggMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExIixyOiIxIixmaWxsOiJjdXJyZW50Q29sb3IifV1dfSk7dmFyIE1ULGd6ZT1uKCgpPT57TVQ9W1sicGF0aCIse2Q6Ik0xMCA0LjVWNGEyIDIgMCAwIDAtMi40MS0xLjk1NyJ9XSxbInBhdGgiLHtkOiJNMTMuOSA4LjRhMiAyIDAgMCAwLTEuMjYtMS4yOTUifV0sWyJwYXRoIix7ZDoiTTIxLjcgMTYuMkE4IDggMCAwIDAgMjIgMTR2LTNhMiAyIDAgMSAwLTQgMHYtMWEyIDIgMCAwIDAtMy42My0xLjE1OCJ9XSxbInBhdGgiLHtkOiJtNyAxNS0xLjgtMS44YTIgMiAwIDAgMC0yLjc5IDIuODZMNiAxOS43YTcuNzQgNy43NCAwIDAgMCA2IDIuM2gyYTggOCAwIDAgMCA1LjY1Ny0yLjM0MyJ9XSxbInBhdGgiLHtkOiJNNiA2djgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgelQseHplPW4oKCk9Pnt6VD1bWyJwYXRoIix7ZDoiTTIyIDE0YTggOCAwIDAgMS04IDgifV0sWyJwYXRoIix7ZDoiTTE4IDExdi0xYTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTAgOS41VjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1In1dXX0pO3ZhciBrVCxiemU9bigoKT0+e2tUPVtbInBhdGgiLHtkOiJNMTggOGEyIDIgMCAwIDAgMC00IDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMCAwIDQifV0sWyJwYXRoIix7ZDoiTTEwIDIyIDkgOCJ9XSxbInBhdGgiLHtkOiJtMTQgMjIgMS0xNCJ9XSxbInBhdGgiLHtkOiJNMjAgOGMuNSAwIC45LjQuOCAxbC0yLjYgMTJjLS4xLjUtLjcgMS0xLjIgMUg3Yy0uNiAwLTEuMS0uNC0xLjItMUwzLjIgOWMtLjEtLjYuMy0xIC44LTFaIn1dXX0pO3ZhciBTVCx2emU9bigoKT0+e1NUPVtbInBhdGgiLHtkOiJNMTguNiAxNC40Yy44LS44LjgtMiAwLTIuOGwtOC4xLTguMWE0Ljk1IDQuOTUgMCAxIDAtNy4xIDcuMWw4LjEgOC4xYy45LjcgMi4xLjcgMi45LS4xWiJ9XSxbInBhdGgiLHtkOiJtMjIgMjItNS41LTUuNSJ9XV19KTt2YXIgQ1QseXplPW4oKCk9PntDVD1bWyJwYXRoIix7ZDoiTTE4IDdjMC01LjMzMy04LTUuMzMzLTggMCJ9XSxbInBhdGgiLHtkOiJNMTAgN3YxNCJ9XSxbInBhdGgiLHtkOiJNNiAyMWgxMiJ9XSxbInBhdGgiLHtkOiJNNiAxM2gxMCJ9XV19KTt2YXIgTFQsd3plPW4oKCk9PntMVD1bWyJwYXRoIix7ZDoiTTE4LjM2IDYuNjRBOSA5IDAgMCAxIDIwLjc3IDE1In1dLFsicGF0aCIse2Q6Ik02LjE2IDYuMTZhOSA5IDAgMSAwIDEyLjY4IDEyLjY4In1dLFsicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgVFQsTXplPW4oKCk9PntUVD1bWyJwYXRoIix7ZDoiTTEyIDJ2MTAifV0sWyJwYXRoIix7ZDoiTTE4LjQgNi42YTkgOSAwIDEgMS0xMi43Ny4wNCJ9XV19KTt2YXIgX1QsenplPW4oKCk9PntfVD1bWyJwYXRoIix7ZDoiTTIgM2gyMCJ9XSxbInBhdGgiLHtkOiJNMjEgM3YxMWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlYzIn1dLFsicGF0aCIse2Q6Im03IDIxIDUtNSA1IDUifV1dfSk7dmFyIEFULGt6ZT1uKCgpPT57QVQ9W1sicGF0aCIse2Q6Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik02IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NiJ9XSxbInJlY3QiLHt4OiI2Iix5OiIxNCIsd2lkdGg6IjEyIixoZWlnaHQ6IjgiLHJ4OiIxIn1dXX0pO3ZhciAkVCxTemU9bigoKT0+eyRUPVtbInBhdGgiLHtkOiJNMTMuNSAyMkg3YTEgMSAwIDAgMS0xLTF2LTZhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdi41In1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYifV1dfSk7dmFyIERULEN6ZT1uKCgpPT57RFQ9W1sicGF0aCIse2Q6Ik01IDcgMyA1In1dLFsicGF0aCIse2Q6Ik05IDZWMyJ9XSxbInBhdGgiLHtkOiJtMTMgNyAyLTIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEzIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMS44MyAxMkgyMGEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTRhMiAyIDAgMCAxIDItMmgyLjE3In1dLFsicGF0aCIse2Q6Ik0xNiAxNmgyIn1dXX0pO3ZhciBFVCxMemU9bigoKT0+e0VUPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA5djExIn1dLFsicGF0aCIse2Q6Ik0yIDloMTNhMiAyIDAgMCAxIDIgMnY5In1dXX0pO3ZhciBOVCxUemU9bigoKT0+e05UPVtbInBhdGgiLHtkOiJNMTUuMzkgNC4zOWExIDEgMCAwIDAgMS42OC0uNDc0IDIuNSAyLjUgMCAxIDEgMy4wMTQgMy4wMTUgMSAxIDAgMCAwLS40NzQgMS42OGwxLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwIDMuNDE0TDE5LjYxIDE1LjM5YTEgMSAwIDAgMS0xLjY4LS40NzQgMi41IDIuNSAwIDEgMC0zLjAxNCAzLjAxNSAxIDEgMCAwIDEgLjQ3NCAxLjY4bC0xLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMS0zLjQxNCAwTDguNjEgMTkuNjFhMSAxIDAgMCAwLTEuNjguNDc0IDIuNSAyLjUgMCAxIDEtMy4wMTQtMy4wMTUgMSAxIDAgMCAwIC40NzQtMS42OGwtMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMC0zLjQxNEw0LjM5IDguNjFhMSAxIDAgMCAxIDEuNjguNDc0IDIuNSAyLjUgMCAxIDAgMy4wMTQtMy4wMTUgMSAxIDAgMCAxLS40NzQtMS42OGwxLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAzLjQxNCAweiJ9XV19KTt2YXIgUFQsX3plPW4oKCk9PntQVD1bWyJwYXRoIix7ZDoiTTIuNSAxNi44OGExIDEgMCAwIDEtLjMyLTEuNDNsOS0xMy4wMmExIDEgMCAwIDEgMS42NCAwbDkgMTMuMDFhMSAxIDAgMCAxLS4zMiAxLjQ0bC04LjUxIDQuODZhMiAyIDAgMCAxLTEuOTggMFoifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV1dfSk7dmFyIElULEF6ZT1uKCgpPT57SVQ9W1sicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjUiLHg6IjE2Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNSIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTIxIDE2aC0zYTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMjEgMjF2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA3djNhMiAyIDAgMCAxLTIgMkg3In1dLFsicGF0aCIse2Q6Ik0zIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgM2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE2di4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMXYtMSJ9XV19KTt2YXIgRlQsJHplPW4oKCk9PntGVD1bWyJwYXRoIix7ZDoiTTE2IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6In1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6In1dXX0pO3ZhciBPVCxEemU9bigoKT0+e09UPVtbInBhdGgiLHtkOiJNMTMgMTZhMyAzIDAgMCAxIDIuMjQgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAyMWgtOGE0IDQgMCAwIDEtNC00IDcgNyAwIDAgMSA3LTdoLjJMOS42IDYuNGExIDEgMCAxIDEgMi44LTIuOEwxNS44IDdoLjJjMy4zIDAgNiAyLjcgNiA2djFhMiAyIDAgMCAxLTIgMmgtMWEzIDMgMCAwIDAtMyAzIn1dLFsicGF0aCIse2Q6Ik0yMCA4LjU0VjRhMiAyIDAgMSAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik03LjYxMiAxMi41MjRhMyAzIDAgMSAwLTEuNiA0LjMifV1dfSk7dmFyIEJULEV6ZT1uKCgpPT57QlQ9W1sicGF0aCIse2Q6Ik0xOS4wNyA0LjkzQTEwIDEwIDAgMCAwIDYuOTkgMy4zNCJ9XSxbInBhdGgiLHtkOiJNNCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMi4yOSA5LjYyQTEwIDEwIDAgMSAwIDIxLjMxIDguMzUifV0sWyJwYXRoIix7ZDoiTTE2LjI0IDcuNzZBNiA2IDAgMSAwIDguMjMgMTYuNjcifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgMTEuNjZBNiA2IDAgMCAxIDE1Ljc3IDE2LjY3In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoibTEzLjQxIDEwLjU5IDUuNjYtNS42NiJ9XV19KTt2YXIgUlQsTnplPW4oKCk9PntSVD1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDY0MWE0IDQgMCAwIDEtNCAwTDcuNTI3ODYgMTkuNzQ1OTcgQSAxIDEgMCAwIDAgNy45OTMwMyAyMS4xNjIxMSAxMCAxMCAwIDAgMCAxNi4wMDY5NyAyMS4xNjIxMSAxIDEgMCAwIDAgMTYuNDcyMTQgMTkuNzQ1OTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxMmE0IDQgMCAwIDAtMi0zLjQ2NGwyLjQ3Mi00LjI4MmExIDEgMCAwIDEgMS40Ni0uMzA1IDEwIDEwIDAgMCAxIDQuMDA2IDYuOTRBMSAxIDAgMCAxIDIxIDEyeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmE0IDQgMCAwIDEgMi0zLjQ2NEw3LjUyOCA0LjI1NGExIDEgMCAwIDAtMS40Ni0uMzA1IDEwIDEwIDAgMCAwLTQuMDA2IDYuOTRBMSAxIDAgMCAwIDMgMTJ6In1dXX0pO3ZhciBIVCxQemU9bigoKT0+e0hUPVtbInBhdGgiLHtkOiJNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMSJ9XV19KTt2YXIgcVQsSXplPW4oKCk9PntxVD1bWyJwYXRoIix7ZDoiTTUgMTZ2MiJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2MiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE4IDEyaC4wMSJ9XV19KTt2YXIgVlQsRnplPW4oKCk9PntWVD1bWyJwYXRoIix7ZDoiTTQuOSAxNi4xQzEgMTIuMiAxIDUuOCA0LjkgMS45In1dLFsicGF0aCIse2Q6Ik03LjggNC43YTYuMTQgNi4xNCAwIDAgMC0uOCA3LjUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xNi4yIDQuOGMyIDIgMi4yNiA1LjExLjggNy40NyJ9XSxbInBhdGgiLHtkOiJNMTkuMSAxLjlhOS45NiA5Ljk2IDAgMCAxIDAgMTQuMSJ9XSxbInBhdGgiLHtkOiJNOS41IDE4aDUifV0sWyJwYXRoIix7ZDoibTggMjIgNC0xMSA0IDExIn1dXX0pO3ZhciBVVCxPemU9bigoKT0+e1VUPVtbInBhdGgiLHtkOiJNMTYuMjQ3IDcuNzYxYTYgNiAwIDAgMSAwIDguNDc4In1dLFsicGF0aCIse2Q6Ik0xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMCAxNC4xMzQifV0sWyJwYXRoIix7ZDoiTTQuOTI1IDE5LjA2N2ExMCAxMCAwIDAgMSAwLTE0LjEzNCJ9XSxbInBhdGgiLHtkOiJNNy43NTMgMTYuMjM5YTYgNiAwIDAgMSAwLTguNDc4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIGpULEJ6ZT1uKCgpPT57alQ9W1sicGF0aCIse2Q6Ik0yMC4zNCAxNy41MmExMCAxMCAwIDEgMC0yLjgyIDIuODIifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTMuNDEgMTMuNDEgNC4xOCA0LjE4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIFdULFJ6ZT1uKCgpPT57V1Q9W1sicGF0aCIse2Q6Ik01IDE1aDE0In1dLFsicGF0aCIse2Q6Ik01IDloMTQifV0sWyJwYXRoIix7ZDoibTE0IDIwLTUtNSA2LTYtNS01In1dXX0pO3ZhciBHVCxIemU9bigoKT0+e0dUPVtbInBhdGgiLHtkOiJNMjIgMTdhMTAgMTAgMCAwIDAtMjAgMCJ9XSxbInBhdGgiLHtkOiJNNiAxN2E2IDYgMCAwIDEgMTIgMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdhMiAyIDAgMCAxIDQgMCJ9XV19KTt2YXIgWVQscXplPW4oKCk9PntZVD1bWyJwYXRoIix7ZDoiTTEzIDIySDRhMiAyIDAgMCAxIDAtNGgxMiJ9XSxbInBhdGgiLHtkOiJNMTMuMjM2IDE4YTMgMyAwIDAgMC0yLjItNSJ9XSxbInBhdGgiLHtkOiJNMTYgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE2LjgyIDMuOTRhMyAzIDAgMSAxIDMuMjM3IDQuODY4bDEuODE1IDIuNTg3YTEuNSAxLjUgMCAwIDEtMS41IDIuMWwtMi44NzItLjQ1M2EzIDMgMCAwIDAtMy41IDMifV0sWyJwYXRoIix7ZDoiTTE3IDQuOTg4YTMgMyAwIDEgMC01LjIgMi4wNTJBNyA3IDAgMCAwIDQgMTQuMDE1IDQgNCAwIDAgMCA4IDE4In1dXX0pO3ZhciBaVCxWemU9bigoKT0+e1pUPVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHg6IjYiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dfSk7dmFyIFhULFV6ZT1uKCgpPT57WFQ9W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Ik0xMiA2LjV2MTEifV0sWyJwYXRoIix7ZDoiTTE1IDkuNGE0IDQgMCAxIDAgMCA1LjIifV1dfSk7dmFyIFFULGp6ZT1uKCgpPT57UVQ9W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Ik04IDEyaDUifV0sWyJwYXRoIix7ZDoiTTE2IDkuNWE0IDQgMCAxIDAgMCA1LjIifV1dfSk7dmFyIEtULFd6ZT1uKCgpPT57S1Q9W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Ik04IDdoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNSA4IDE1aDFhNCA0IDAgMCAwIDAtOCJ9XSxbInBhdGgiLHtkOiJNOCAxMWg4In1dXX0pO3ZhciBKVCxHemU9bigoKT0+e0pUPVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJtMTIgMTAgMy0zIn1dLFsicGF0aCIse2Q6Im05IDcgMyAzdjcuNSJ9XSxbInBhdGgiLHtkOiJNOSAxMWg2In1dLFsicGF0aCIse2Q6Ik05IDE1aDYifV1dfSk7dmFyIGVfLFl6ZT1uKCgpPT57ZV89W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Ik04IDEzaDUifV0sWyJwYXRoIix7ZDoiTTEwIDE3VjkuNWEyLjUgMi41IDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNOCAxN2g3In1dXX0pO3ZhciB0XyxaemU9bigoKT0+e3RfPVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJNOCAxNWg1In1dLFsicGF0aCIse2Q6Ik04IDExaDVhMiAyIDAgMSAwIDAtNGgtM3YxMCJ9XV19KTt2YXIgYV8sWHplPW4oKCk9PnthXz1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTEwIDE3VjdoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTFoNCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg1In1dXX0pO3ZhciByXyxRemU9bigoKT0+e3JfPVtbInBhdGgiLHtkOiJNMTMgMTZIOCJ9XSxbInBhdGgiLHtkOiJNMTQgOEg4In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dLFsicGF0aCIse2Q6Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6In1dXX0pO3ZhciBpXyxLemU9bigoKT0+e2lfPVtbInBhdGgiLHtkOiJNMTAgNi41djExYTUuNSA1LjUgMCAwIDAgNS41LTUuNSJ9XSxbInBhdGgiLHtkOiJtMTQgOC02IDMifV0sWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMXoifV1dfSk7dmFyIG9fLEp6ZT1uKCgpPT57b189W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE3LjV2LTExIn1dXX0pO3ZhciBzXyxla2U9bigoKT0+e3NfPVtbInBhdGgiLHtkOiJNMTQgNHYxNkgzYTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xeiJ9XSxbImNpcmNsZSIse2N4OiIxNCIsY3k6IjEyIixyOiI4In1dXX0pO3ZhciBkMyx0a2U9bigoKT0+e2QzPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dfSk7dmFyIG5fLGFrZT1uKCgpPT57bl89W1sicGF0aCIse2Q6Ik0yMCA2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0xLjYtLjhsLTEuNi0yLjEzYTEgMSAwIDAgMC0xLjYgMEw5LjYgMTcuMkEyIDIgMCAwIDEgOCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiJ9XV19KTt2YXIgbF8scmtlPW4oKCk9PntsXz1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV19KTt2YXIgY18saWtlPW4oKCk9PntjXz1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjIwIix4OiI2Iix5OiIyIixyeDoiMiJ9XV19KTt2YXIgZF8sb2tlPW4oKCk9PntkXz1bWyJwYXRoIix7ZDoiTTcgMTlINC44MTVhMS44MyAxLjgzIDAgMCAxLTEuNTctLjg4MSAxLjc4NSAxLjc4NSAwIDAgMS0uMDA0LTEuNzg0TDcuMTk2IDkuNSJ9XSxbInBhdGgiLHtkOiJNMTEgMTloOC4yMDNhMS44MyAxLjgzIDAgMCAwIDEuNTU2LS44OSAxLjc4NCAxLjc4NCAwIDAgMCAwLTEuNzc1bC0xLjIyNi0yLjEyIn1dLFsicGF0aCIse2Q6Im0xNCAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik04LjI5MyAxMy41OTYgNy4xOTYgOS41IDMuMSAxMC41OTgifV0sWyJwYXRoIix7ZDoibTkuMzQ0IDUuODExIDEuMDkzLTEuODkyQTEuODMgMS44MyAwIDAgMSAxMS45ODUgM2ExLjc4NCAxLjc4NCAwIDAgMSAxLjU0Ni44ODhsMy45NDMgNi44NDMifV0sWyJwYXRoIix7ZDoibTEzLjM3OCA5LjYzMyA0LjA5NiAxLjA5OCAxLjA5Ny00LjA5NiJ9XV19KTt2YXIgZl8sc2tlPW4oKCk9PntmXz1bWyJwYXRoIix7ZDoibTE1IDE0IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTIwIDlIOS41QTUuNSA1LjUgMCAwIDAgNCAxNC41QTUuNSA1LjUgMCAwIDAgOS41IDIwSDEzIn1dXX0pO3ZhciB1Xyxua2U9bigoKT0+e3VfPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIHBfLGxrZT1uKCgpPT57cF89W1sicGF0aCIse2Q6Ik0yMSA3djZoLTYifV0sWyJwYXRoIix7ZDoiTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcifV1dfSk7dmFyIGhfLGNrZT1uKCgpPT57aF89W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dfSk7dmFyIG1fLGRrZT1uKCgpPT57bV89W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dXX0pO3ZhciBnXyxma2U9bigoKT0+e2dfPVtbInBhdGgiLHtkOiJNMjEgOEwxOC43NCA1Ljc0QTkuNzUgOS43NSAwIDAgMCAxMiAzQzExIDMgMTAuMDMgMy4xNiA5LjEzIDMuNDcifV0sWyJwYXRoIix7ZDoiTTggMTZIM3Y1In1dLFsicGF0aCIse2Q6Ik0zIDEyQzMgOS41MSA0IDcuMjYgNS42NCA1LjY0In1dLFsicGF0aCIse2Q6Im0zIDE2IDIuMjYgMi4yNkE5Ljc1IDkuNzUgMCAwIDAgMTIgMjFjMi40OSAwIDQuNzQtMSA2LjM2LTIuNjQifV0sWyJwYXRoIix7ZDoiTTIxIDEyYzAgMS0uMTYgMS45Ny0uNDcgMi44NyJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dLFsicGF0aCIse2Q6Ik0yMiAyMiAyIDIifV1dfSk7dmFyIHhfLHVrZT1uKCgpPT57eF89W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4In1dLFsicGF0aCIse2Q6Ik0yMSAzdjVoLTUifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2In1dLFsicGF0aCIse2Q6Ik04IDE2SDN2NSJ9XV19KTt2YXIgYl8scGtlPW4oKCk9PntiXz1bWyJwYXRoIix7ZDoiTTUgNmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDQgNHYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2WiJ9XSxbInBhdGgiLHtkOiJNNSAxMGgxNCJ9XSxbInBhdGgiLHtkOiJNMTUgN3Y2In1dXX0pO3ZhciB2Xyxoa2U9bigoKT0+e3ZfPVtbInBhdGgiLHtkOiJNMTcgM3YxMCJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgNS41IDguNjYgNSJ9XSxbInBhdGgiLHtkOiJtMTIuNjcgMTAuNSA4LjY2LTUifV0sWyJwYXRoIix7ZDoiTTkgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtMnoifV1dfSk7dmFyIHlfLG1rZT1uKCgpPT57eV89W1sicGF0aCIse2Q6Ik00IDdWNGgxNnYzIn1dLFsicGF0aCIse2Q6Ik01IDIwaDYifV0sWyJwYXRoIix7ZDoiTTEzIDQgOCAyMCJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNS01IDUifV1dfSk7dmFyIHdfLGdrZT1uKCgpPT57d189W1sicGF0aCIse2Q6Im0xNyAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxM3YxYTQgNCAwIDAgMS00IDRIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTBoMXY0In1dXX0pO3ZhciBNXyx4a2U9bigoKT0+e01fPVtbInBhdGgiLHtkOiJtMiA5IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTEzIDE4SDdhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Im0yMiAxNS0zIDMtMy0zIn1dLFsicGF0aCIse2Q6Ik0xMSA2aDZhMiAyIDAgMCAxIDIgMnYxMCJ9XV19KTt2YXIgel8sYmtlPW4oKCk9Pnt6Xz1bWyJwYXRoIix7ZDoibTE3IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMyAxMXYtMWE0IDQgMCAwIDEgNC00aDE0In1dLFsicGF0aCIse2Q6Im03IDIyLTQtNCA0LTQifV0sWyJwYXRoIix7ZDoiTTIxIDEzdjFhNCA0IDAgMCAxLTQgNEgzIn1dXX0pO3ZhciBrXyx2a2U9bigoKT0+e2tfPVtbInBhdGgiLHtkOiJNMTQgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTE0IDRhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBhMSAxIDAgMCAxLTEtMSJ9XSxbInBhdGgiLHtkOiJNMTkgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTIxIDRhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgOWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Im0zIDcgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIFNfLHlrZT1uKCgpPT57U189W1sicGF0aCIse2Q6Ik0xNCA0YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTE1IDEwYTEgMSAwIDAgMS0xLTEifV0sWyJwYXRoIix7ZDoiTTIxIDRhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgOWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Im0zIDcgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV1dfSk7dmFyIENfLHdrZT1uKCgpPT57Q189W1sicGF0aCIse2Q6Im0xMiAxNy01LTUgNS01In1dLFsicGF0aCIse2Q6Ik0yMiAxOHYtMmE0IDQgMCAwIDAtNC00SDcifV0sWyJwYXRoIix7ZDoibTcgMTctNS01IDUtNSJ9XV19KTt2YXIgTF8sTWtlPW4oKCk9PntMXz1bWyJwYXRoIix7ZDoiTTIwIDE4di0yYTQgNCAwIDAgMC00LTRINCJ9XSxbInBhdGgiLHtkOiJtOSAxNy01LTUgNS01In1dXX0pO3ZhciBUXyx6a2U9bigoKT0+e1RfPVtbInBhdGgiLHtkOiJNMTIgNmEyIDIgMCAwIDAtMy40MTQtMS40MTRsLTYgNmEyIDIgMCAwIDAgMCAyLjgyOGw2IDZBMiAyIDAgMCAwIDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJNMjIgNmEyIDIgMCAwIDAtMy40MTQtMS40MTRsLTYgNmEyIDIgMCAwIDAgMCAyLjgyOGw2IDZBMiAyIDAgMCAwIDIyIDE4eiJ9XV19KTt2YXIgX18sa2tlPW4oKCk9PntfXz1bWyJwYXRoIix7ZDoiTTEyIDExLjIyQzExIDkuOTk3IDEwIDkgMTAgOGEyIDIgMCAwIDEgNCAwYzAgMS0uOTk4IDIuMDAyLTIuMDEgMy4yMiJ9XSxbInBhdGgiLHtkOiJtMTIgMTggMi41Ny0zLjUifV0sWyJwYXRoIix7ZDoiTTYuMjQzIDkuMDE2YTcgNyAwIDAgMSAxMS41MDctLjAwOSJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41MyAxMiAxMS4yMiJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41M0M3LjcyOCAxMi4yNDYgNiAxMC4yMjEgNiA3YTYgNSAwIDAgMSAxMiAwYy0uMDA1IDMuMjItMS43NzggNS4yMzUtMy40MyA3LjVsMy41NTcgNC41MjdhMSAxIDAgMCAxLS4yMDMgMS40M2wtMS44OTQgMS4zNmExIDEgMCAwIDEtMS4zODQtLjIxNUwxMiAxOGwtMi42NzkgMy41OTNhMSAxIDAgMCAxLTEuMzkuMjEzbC0xLjg2NS0xLjM1M2ExIDEgMCAwIDEtLjIwMy0xLjQyMnoifV1dfSk7dmFyIEFfLFNrZT1uKCgpPT57QV89W1sicGF0aCIse2Q6Ik00LjUgMTYuNWMtMS41IDEuMjYtMiA1LTIgNXMzLjc0LS41IDUtMmMuNzEtLjg0LjctMi4xMy0uMDktMi45MWEyLjE4IDIuMTggMCAwIDAtMi45MS0uMDl6In1dLFsicGF0aCIse2Q6Im0xMiAxNS0zLTNhMjIgMjIgMCAwIDEgMi0zLjk1QTEyLjg4IDEyLjg4IDAgMCAxIDIyIDJjMCAyLjcyLS43OCA3LjUtNiAxMWEyMi4zNSAyMi4zNSAwIDAgMS00IDJ6In1dLFsicGF0aCIse2Q6Ik05IDEySDRzLjU1LTMuMDMgMi00YzEuNjItMS4wOCA1IDAgNSAwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY1czMuMDMtLjU1IDQtMmMxLjA4LTEuNjIgMC01IDAtNSJ9XV19KTt2YXIgJF8sQ2tlPW4oKCk9PnskXz1bWyJwb2x5bGluZSIse3BvaW50czoiMy41IDIgNi41IDEyLjUgMTggMTIuNSJ9XSxbImxpbmUiLHt4MToiOS41Iix4MjoiNS41Iix5MToiMTIuNSIseTI6IjIwIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE4LjUiLHkxOiIxMi41Iix5MjoiMjAifV0sWyJwYXRoIix7ZDoiTTIuNzUgMThhMTMgMTMgMCAwIDAgMTguNSAwIn1dXX0pO3ZhciBEXyxMa2U9bigoKT0+e0RfPVtbInBhdGgiLHtkOiJNNiAxOVY1In1dLFsicGF0aCIse2Q6Ik0xMCAxOVY2LjgifV0sWyJwYXRoIix7ZDoiTTE0IDE5di03LjgifV0sWyJwYXRoIix7ZDoiTTE4IDV2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTl2LTYifV0sWyJwYXRoIix7ZDoiTTIyIDE5VjkifV0sWyJwYXRoIix7ZDoiTTIgMTlWOWE0IDQgMCAwIDEgNC00YzIgMCA0IDEuMzMgNiA0czQgNCA2IDRhNCA0IDAgMSAwLTMtNi42NSJ9XV19KTt2YXIgRV8sVGtlPW4oKCk9PntFXz1bWyJwYXRoIix7ZDoiTTE3IDEwaC0xYTQgNCAwIDEgMSA0LTR2LjUzNCJ9XSxbInBhdGgiLHtkOiJNMTcgNmgxYTQgNCAwIDAgMSAxLjQyIDcuNzRsLTIuMjkuODdhNiA2IDAgMCAxLTUuMzM5LTEwLjY4bDIuMDY5LTEuMzEifV0sWyJwYXRoIix7ZDoiTTQuNSAxN2MyLjgtLjUgNC40IDAgNS41LjhzMS44IDIuMiAyLjMgMy43Yy0yIC40LTMuNS40LTQuOC0uMy0xLjItLjYtMi4zLTEuOS0zLTQuMiJ9XSxbInBhdGgiLHtkOiJNOS43NyAxMkM0IDE1IDIgMjIgMiAyMiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjgiLHI6IjIifV1dfSk7dmFyIGYzLF9rZT1uKCgpPT57ZjM9W1sicGF0aCIse2Q6Ik0xNi40NjYgNy41QzE1LjY0MyA0LjIzNyAxMy45NTIgMiAxMiAyIDkuMjM5IDIgNyA2LjQ3NyA3IDEyczIuMjM5IDEwIDUgMTBjLjM0MiAwIC42NzctLjA2OSAxLS4yIn1dLFsicGF0aCIse2Q6Im0xNS4xOTQgMTMuNzA3IDMuODE0IDEuODYtMS44NiAzLjgxNCJ9XSxbInBhdGgiLHtkOiJNMTkgMTUuNTdjLTEuODA0Ljg4NS00LjI3NCAxLjQzLTcgMS40My01LjUyMyAwLTEwLTIuMjM5LTEwLTVzNC40NzctNSAxMC01YzQuODM4IDAgOC44NzMgMS43MTggOS44IDQifV1dfSk7dmFyIE5fLEFrZT1uKCgpPT57Tl89W1sicGF0aCIse2Q6Im0xNC41IDkuNSAxIDEifV0sWyJwYXRoIix7ZDoibTE1LjUgOC41LTQgNCJ9XSxbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzQgOS43NCAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTQiLHI6IjIifV1dfSk7dmFyIFBfLCRrZT1uKCgpPT57UF89W1sicGF0aCIse2Q6Ik0yMCA5VjdhMiAyIDAgMCAwLTItMmgtNiJ9XSxbInBhdGgiLHtkOiJtMTUgMi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0yMCAxM3Y1YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDItMmgyIn1dXX0pO3ZhciBJXyxEa2U9bigoKT0+e0lfPVtbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dXX0pO3ZhciBGXyxFa2U9bigoKT0+e0ZfPVtbInBhdGgiLHtkOiJNMTIgNUg2YTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJtOSA4IDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTQgMTR2NGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC0yIn1dXX0pO3ZhciBPXyxOa2U9bigoKT0+e09fPVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMSAxLTktOWMyLjUyIDAgNC45MyAxIDYuNzQgMi43NEwyMSA4In1dLFsicGF0aCIse2Q6Ik0yMSAzdjVoLTUifV1dfSk7dmFyIEJfLFBrZT1uKCgpPT57Ql89W1siY2lyY2xlIix7Y3g6IjYiLGN5OiIxOSIscjoiMyJ9XSxbInBhdGgiLHtkOiJNOSAxOWg4LjVhMy41IDMuNSAwIDAgMCAwLTdoLTExYTMuNSAzLjUgMCAwIDEgMC03SDE1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV19KTt2YXIgUl8sSWtlPW4oKCk9PntSXz1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE5IixyOiIzIn1dLFsicGF0aCIse2Q6Ik05IDE5aDguNWMuNCAwIC45LS4xIDEuMy0uMiJ9XSxbInBhdGgiLHtkOiJNNS4yIDUuMkEzLjUgMy41MyAwIDAgMCA2LjUgMTJIMTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjEgMTUuM2EzLjUgMy41IDAgMCAwLTMuMy0zLjMifV0sWyJwYXRoIix7ZDoiTTE1IDVoLTQuMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjUiLHI6IjMifV1dfSk7dmFyIEhfLEZrZT1uKCgpPT57SF89W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYuMDEgMThINiJ9XSxbInBhdGgiLHtkOiJNMTAuMDEgMThIMTAifV0sWyJwYXRoIix7ZDoiTTE1IDEwdjQifV0sWyJwYXRoIix7ZDoiTTE3Ljg0IDcuMTdhNCA0IDAgMCAwLTUuNjYgMCJ9XSxbInBhdGgiLHtkOiJNMjAuNjYgNC4zNGE4IDggMCAwIDAtMTEuMzEgMCJ9XV19KTt2YXIgdTMsT2tlPW4oKCk9Pnt1Mz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XV19KTt2YXIgcDMsQmtlPW4oKCk9PntwMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjEgOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNUgzIn1dXX0pO3ZhciBxXyxSa2U9bigoKT0+e3FfPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMSA3LjVIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTYuNUgzIn1dXX0pO3ZhciBWXyxIa2U9bigoKT0+e1ZfPVtbInBhdGgiLHtkOiJNNCAxMWE5IDkgMCAwIDEgOSA5In1dLFsicGF0aCIse2Q6Ik00IDRhMTYgMTYgMCAwIDEgMTYgMTYifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIxIn1dXX0pO3ZhciBVXyxxa2U9bigoKT0+e1VfPVtbInBhdGgiLHtkOiJNMTAgMTV2LTMifV0sWyJwYXRoIix7ZDoiTTE0IDE1di0zIn1dLFsicGF0aCIse2Q6Ik0xOCAxNXYtMyJ9XSxbInBhdGgiLHtkOiJNMiA4VjQifV0sWyJwYXRoIix7ZDoiTTIyIDZIMiJ9XSxbInBhdGgiLHtkOiJNMjIgOFY0In1dLFsicGF0aCIse2Q6Ik02IDE1di0zIn1dLFsicmVjdCIse3g6IjIiLHk6IjEyIix3aWR0aDoiMjAiLGhlaWdodDoiOCIscng6IjIifV1dfSk7dmFyIGpfLFZrZT1uKCgpPT57al89W1sicGF0aCIse2Q6Ik0yMS4zIDE1LjNhMi40IDIuNCAwIDAgMSAwIDMuNGwtMi42IDIuNmEyLjQgMi40IDAgMCAxLTMuNCAwTDIuNyA4LjdhMi40MSAyLjQxIDAgMCAxIDAtMy40bDIuNi0yLjZhMi40MSAyLjQxIDAgMCAxIDMuNCAwWiJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMi41IDItMiJ9XSxbInBhdGgiLHtkOiJtMTEuNSA5LjUgMi0yIn1dLFsicGF0aCIse2Q6Im04LjUgNi41IDItMiJ9XSxbInBhdGgiLHtkOiJtMTcuNSAxNS41IDItMiJ9XV19KTt2YXIgV18sVWtlPW4oKCk9PntXXz1bWyJwYXRoIix7ZDoiTTYgMTFoOGE0IDQgMCAwIDAgMC04SDl2MTgifV0sWyJwYXRoIix7ZDoiTTYgMTVoOCJ9XV19KTt2YXIgR18samtlPW4oKCk9PntHXz1bWyJwYXRoIix7ZDoiTTEwIDJ2MTUifV0sWyJwYXRoIix7ZDoiTTcgMjJhNCA0IDAgMCAxLTQtNCAxIDEgMCAwIDEgMS0xaDE2YTEgMSAwIDAgMSAxIDEgNCA0IDAgMCAxLTQgNHoifV0sWyJwYXRoIix7ZDoiTTkuMTU5IDIuNDZhMSAxIDAgMCAxIDEuNTIxLS4xOTNsOS45NzcgOC45OEExIDEgMCAwIDEgMjAgMTNINGExIDEgMCAwIDEtLjgyNC0xLjU2N3oifV1dfSk7dmFyIFlfLFdrZT1uKCgpPT57WV89W1sicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyMWE5IDkgMCAwIDAgOS05SDNhOSA5IDAgMCAwIDkgOVoifV0sWyJwYXRoIix7ZDoiTTExLjM4IDEyYTIuNCAyLjQgMCAwIDEtLjQtNC43NyAyLjQgMi40IDAgMCAxIDMuMi0yLjc3IDIuNCAyLjQgMCAwIDEgMy40Ny0uNjMgMi40IDIuNCAwIDAgMSAzLjM3IDMuMzcgMi40IDIuNCAwIDAgMS0xLjEgMy43IDIuNTEgMi41MSAwIDAgMSAuMDMgMS4xIn1dLFsicGF0aCIse2Q6Im0xMyAxMiA0LTQifV0sWyJwYXRoIix7ZDoiTTEwLjkgNy4yNUEzLjk5IDMuOTkgMCAwIDAgNCAxMGMwIC43My4yIDEuNDEuNTQgMiJ9XV19KTt2YXIgWl8sR2tlPW4oKCk9PntaXz1bWyJwYXRoIix7ZDoibTIuMzcgMTEuMjIzIDguMzcyLTYuNzc3YTIgMiAwIDAgMSAyLjUxNiAwbDguMzcxIDYuNzc3In1dLFsicGF0aCIse2Q6Ik0yMSAxNWExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtNS4yNSJ9XSxbInBhdGgiLHtkOiJNMyAxNWExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWg5In1dLFsicGF0aCIse2Q6Im02LjY3IDE1IDYuMTMgNC42YTIgMiAwIDAgMCAyLjgtLjRsMy4xNS00LjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjQiLHg6IjIiLHk6IjExIixyeDoiMSJ9XV19KTt2YXIgWF8sWWtlPW4oKCk9PntYXz1bWyJwYXRoIix7ZDoiTTQgMTBhNy4zMSA3LjMxIDAgMCAwIDEwIDEwWiJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzLTMifV0sWyJwYXRoIix7ZDoiTTE3IDEzYTYgNiAwIDAgMC02LTYifV0sWyJwYXRoIix7ZDoiTTIxIDEzQTEwIDEwIDAgMCAwIDExIDMifV1dfSk7dmFyIFFfLFprZT1uKCgpPT57UV89W1sicGF0aCIse2Q6Im0xMy41IDYuNS0zLjE0OC0zLjE0OGExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwTDYuMzUyIDUuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRMOS41IDEwLjUifV0sWyJwYXRoIix7ZDoiTTE2LjUgNy41IDE5IDUifV0sWyJwYXRoIix7ZDoibTE3LjUgMTAuNSAzLjE0OCAzLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC0yLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMS0xLjcwNCAwTDEzLjUgMTQuNSJ9XSxbInBhdGgiLHtkOiJNOSAyMWE2IDYgMCAwIDAtNi02In1dLFsicGF0aCIse2Q6Ik05LjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDQuMjk2LTQuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDRsLTIuMjk2LTIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDB6In1dXX0pO3ZhciBLXyxYa2U9bigoKT0+e0tfPVtbInBhdGgiLHtkOiJtMjAgMTkuNS01LjUgMS4yIn1dLFsicGF0aCIse2Q6Ik0xNC41IDR2MTEuMjJhMSAxIDAgMCAwIDEuMjQyLjk3TDIwIDE1LjIifV0sWyJwYXRoIix7ZDoibTIuOTc4IDE5LjM1MSA1LjU0OS0xLjM2M0EyIDIgMCAwIDAgMTAgMTZWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTAgNCAxMy41In1dXX0pO3ZhciBKXyxRa2U9bigoKT0+e0pfPVtbInBhdGgiLHtkOiJNMTAgMnYzYTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTggMTh2LTZhMSAxIDAgMCAwLTEtMWgtNmExIDEgMCAwIDAtMSAxdjYifV0sWyJwYXRoIix7ZDoiTTE4IDIySDRhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Ik04IDE4YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDkuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMi44MjggMi44MjhBMiAyIDAgMCAxIDIyIDYuODI4VjE2YTIgMiAwIDAgMS0yLjAxIDJ6In1dXX0pO3ZhciBlQSxLa2U9bigoKT0+e2VBPVtbInBhdGgiLHtkOiJNMTMgMTNIOGExIDEgMCAwIDAtMSAxdjcifV0sWyJwYXRoIix7ZDoiTTE0IDhoMSJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAuNDEgMjAuNDFBMiAyIDAgMCAxIDE5IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAuNTktMS40MSJ9XSxbInBhdGgiLHtkOiJNMjkuNSAxMS41czUgNSA0IDUifV0sWyJwYXRoIix7ZDoiTTkgM2g2LjJhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxNSJ9XV19KTt2YXIgdEEsSmtlPW4oKCk9Pnt0QT1bWyJwYXRoIix7ZDoiTTE1LjIgM2EyIDIgMCAwIDEgMS40LjZsMy44IDMuOGEyIDIgMCAwIDEgLjYgMS40VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoiTTE3IDIxdi03YTEgMSAwIDAgMC0xLTFIOGExIDEgMCAwIDAtMSAxdjcifV0sWyJwYXRoIix7ZDoiTTcgM3Y0YTEgMSAwIDAgMCAxIDFoNyJ9XV19KTt2YXIgaDMsZVNlPW4oKCk9PntoMz1bWyJwYXRoIix7ZDoiTTUgN3YxMWExIDEgMCAwIDAgMSAxaDExIn1dLFsicGF0aCIse2Q6Ik01LjI5MyAxOC43MDcgMTEgMTMifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiNSIscjoiMiJ9XV19KTt2YXIgYUEsdFNlPW4oKCk9PnthQT1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoibTE5IDggMyA4YTUgNSAwIDAgMS02IDB6VjcifV0sWyJwYXRoIix7ZDoiTTMgN2gxYTE3IDE3IDAgMCAwIDgtMiAxNyAxNyAwIDAgMCA4IDJoMSJ9XSxbInBhdGgiLHtkOiJtNSA4IDMgOGE1IDUgMCAwIDEtNiAwelY3In1dLFsicGF0aCIse2Q6Ik03IDIxaDEwIn1dXX0pO3ZhciByQSxhU2U9bigoKT0+e3JBPVtbInBhdGgiLHtkOiJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03In1dLFsicGF0aCIse2Q6Ik0xNCAxNUg5di01In1dLFsicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNMjEgMyA5IDE1In1dXX0pO3ZhciBpQSxyU2U9bigoKT0+e2lBPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV19KTt2YXIgb0EsaVNlPW4oKCk9PntvQT1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNyA3djEwIn1dXX0pO3ZhciBzQSxvU2U9bigoKT0+e3NBPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIn1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSA5aC4wMSJ9XV19KTt2YXIgbkEsc1NlPW4oKCk9PntuQT1bWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNy44MjggMTMuMDdBMyAzIDAgMCAxIDEyIDguNzY0YTMgMyAwIDAgMSA0LjE3MiA0LjMwNmwtMy40NDcgMy42MmExIDEgMCAwIDEtMS40NDkgMHoifV1dfSk7dmFyIGxBLG5TZT1uKCgpPT57bEE9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV1dfSk7dmFyIGNBLGxTZT1uKCgpPT57Y0E9W1sicGF0aCIse2Q6Ik0xNyAxMnY0YTEgMSAwIDAgMS0xIDFoLTQifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTE3IDhWNyJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTcgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInJlY3QiLHt4OiI3Iix5OiI3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV19KTt2YXIgZEEsY1NlPW4oKCk9PntkQT1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Im0xNiAxNi0xLjktMS45In1dXX0pO3ZhciBmQSxkU2U9bigoKT0+e2ZBPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik03IDhoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNNyAxNmg2In1dXX0pO3ZhciB1QSxmU2U9bigoKT0+e3VBPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dXX0pO3ZhciBwQSx1U2U9bigoKT0+e3BBPVtbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCA1djE2In1dLFsicGF0aCIse2Q6Im00IDYgNy4xMDYtMy43OWEyIDIgMCAwIDEgMS43ODggMEwyMCA2In1dLFsicGF0aCIse2Q6Im02IDExLTMuNTIgMi4xNDdhMSAxIDAgMCAwLS40OC44NTRWMTlhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0uNDgtLjg1M0wxOCAxMSJ9XSxbInBhdGgiLHtkOiJNNiA1djE2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XV19KTt2YXIgaEEscFNlPW4oKCk9PntoQT1bWyJwYXRoIix7ZDoiTTUuNDIgOS40MiA4IDEyIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiI4IixyOiIyIn1dLFsicGF0aCIse2Q6Im0xNCA2LTguNTggOC41OCJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEwLjggMTQuOCAxNCAxOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXX0pO3ZhciBtQSxoU2U9bigoKT0+e21BPVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNOC4xMiA4LjEyIDEyIDEyIn1dLFsicGF0aCIse2Q6Ik0yMCA0IDguMTIgMTUuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNC44IDE0LjggMjAgMjAifV1dfSk7dmFyIGdBLG1TZT1uKCgpPT57Z0E9W1sicGF0aCIse2Q6Ik0yMSA0aC0zLjVsMiAxMS4wNSJ9XSxbInBhdGgiLHtkOiJNNi45NSAxN2g1LjE0MmMuNTIzIDAgLjk1LS40MDYgMS4wNjMtLjkxNmE2LjUgNi41IDAgMCAxIDUuMzQ1LTUuMDA5In1dLFsiY2lyY2xlIix7Y3g6IjE5LjUiLGN5OiIxNy41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiNC41IixjeToiMTcuNSIscjoiMi41In1dXX0pO3ZhciB4QSxnU2U9bigoKT0+e3hBPVtbInBhdGgiLHtkOiJNMTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoibTIyIDMtNSA1In1dLFsicGF0aCIse2Q6Im0xNyAzIDUgNSJ9XV19KTt2YXIgYkEseFNlPW4oKCk9PntiQT1bWyJwYXRoIix7ZDoiTTEzIDNINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0xNyA4IDUtNSJ9XSxbInBhdGgiLHtkOiJNMTcgM2g1djUifV1dfSk7dmFyIHZBLGJTZT1uKCgpPT57dkE9W1sicGF0aCIse2Q6Ik0xNSAxMmgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQifV0sWyJwYXRoIix7ZDoiTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMyJ9XV19KTt2YXIgeUEsdlNlPW4oKCk9Pnt5QT1bWyJwYXRoIix7ZDoiTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0In1dLFsicGF0aCIse2Q6Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMifV1dfSk7dmFyIHdBLHlTZT1uKCgpPT57d0E9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTExIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTEgMTVoLjAxIn1dXX0pO3ZhciBNQSx3U2U9bigoKT0+e01BPVtbInBhdGgiLHtkOiJtMTMgMTMuNSAyLTIuNS0yLTIuNSJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XSxbInBhdGgiLHtkOiJNOSA4LjUgNyAxMWwyIDIuNSJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dXX0pO3ZhciB6QSxNU2U9bigoKT0+e3pBPVtbInBhdGgiLHtkOiJtOCAxMSAyIDIgNC00In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV1dfSk7dmFyIGtBLHpTZT1uKCgpPT57a0E9W1sicGF0aCIse2Q6Im0xMy41IDguNS01IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIgU0Esa1NlPW4oKCk9PntTQT1bWyJwYXRoIix7ZDoibTEzLjUgOC41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA1IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV19KTt2YXIgQ0EsU1NlPW4oKCk9PntDQT1bWyJwYXRoIix7ZDoibTIxIDIxLTQuMzQtNC4zNCJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dXX0pO3ZhciBtMyxDU2U9bigoKT0+e20zPVtbInBhdGgiLHtkOiJNMy43MTQgMy4wNDhhLjQ5OC40OTggMCAwIDAtLjY4My42MjdsMi44NDMgNy42MjdhMiAyIDAgMCAxIDAgMS4zOTZsLTIuODQyIDcuNjI3YS40OTguNDk4IDAgMCAwIC42ODIuNjI3bDE4LTguNWEuNS41IDAgMCAwIDAtLjkwNHoifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTYifV1dfSk7dmFyIExBLExTZT1uKCgpPT57TEE9W1sicGF0aCIse2Q6Ik0xNiA1YTQgMyAwIDAgMC04IDBjMCA0IDggMyA4IDdhNCAzIDAgMCAxLTggMCJ9XSxbInBhdGgiLHtkOiJNOCAxOWE0IDMgMCAwIDAgOCAwYzAtNC04LTMtOC03YTQgMyAwIDAgMSA4IDAifV1dfSk7dmFyIFRBLFRTZT1uKCgpPT57VEE9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTR2MWEyIDIgMCAwIDAgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE0IDdoMWEyIDIgMCAwIDEgMiAydjEifV1dfSk7dmFyIF9BLF9TZT1uKCgpPT57X0E9W1sicGF0aCIse2Q6Ik0xNC41MzYgMjEuNjg2YS41LjUgMCAwIDAgLjkzNy0uMDI0bDYuNS0xOWEuNDk2LjQ5NiAwIDAgMC0uNjM1LS42MzVsLTE5IDYuNWEuNS41IDAgMCAwLS4wMjQuOTM3bDcuOTMgMy4xOGEyIDIgMCAwIDEgMS4xMTIgMS4xMXoifV0sWyJwYXRoIix7ZDoibTIxLjg1NCAyLjE0Ny0xMC45NCAxMC45MzkifV1dfSk7dmFyIEFBLEFTZT1uKCgpPT57QUE9W1sicGF0aCIse2Q6Im0xNiAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Im04IDggNC00IDQgNCJ9XV19KTt2YXIgJEEsJFNlPW4oKCk9PnskQT1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTggOC00IDQgNCA0In1dXX0pO3ZhciBEQSxEU2U9bigoKT0+e0RBPVtbInBhdGgiLHtkOiJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ4IDE0Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTMuMTQ4IDkuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAxNS42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjUgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtLjUifV0sWyJwYXRoIix7ZDoiTTQuNSAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtLjUifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDZoLjAxIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV1dfSk7dmFyIEVBLEVTZT1uKCgpPT57RUE9W1sicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMTRINGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgNmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0xMyA2LTQgNmg2bC00IDYifV1dfSk7dmFyIE5BLE5TZT1uKCgpPT57TkE9W1sicGF0aCIse2Q6Ik03IDJoMTNhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTUifV0sWyJwYXRoIix7ZDoiTTEwIDEwIDIuNSAyLjVDMiAyIDIgMi41IDIgNXYzYTIgMiAwIDAgMCAyIDJoNnoifV0sWyJwYXRoIix7ZDoiTTIyIDE3di0xYTIgMiAwIDAgMC0yLTJoLTEifV0sWyJwYXRoIix7ZDoiTTQgMTRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTYuNWwxLS41LjUuNS04LThINHoifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIFBBLFBTZT1uKCgpPT57UEE9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiMTgiLHkyOiIxOCJ9XV19KTt2YXIgSUEsSVNlPW4oKCk9PntJQT1bWyJwYXRoIix7ZDoiTTE0IDE3SDUifV0sWyJwYXRoIix7ZDoiTTE5IDdoLTkifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiNyIscjoiMyJ9XV19KTt2YXIgRkEsRlNlPW4oKCk9PntGQT1bWyJwYXRoIix7ZDoiTTkuNjcxIDQuMTM2YTIuMzQgMi4zNCAwIDAgMSA0LjY1OSAwIDIuMzQgMi4zNCAwIDAgMCAzLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEgMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAgMCAzLjgzMSAyLjM0IDIuMzQgMCAwIDEtMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAtMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxLTQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwLTMuMzItMS45MTUgMi4zNCAyLjM0IDAgMCAxLTIuMzMtNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAtMy44MzFBMi4zNCAyLjM0IDAgMCAxIDYuMzUgNi4wNTFhMi4zNCAyLjM0IDAgMCAwIDMuMzE5LTEuOTE1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dfSk7dmFyIE9BLE9TZT1uKCgpPT57T0E9W1sicGF0aCIse2Q6Ik04LjMgMTBhLjcuNyAwIDAgMS0uNjI2LTEuMDc5TDExLjQgM2EuNy43IDAgMCAxIDEuMTk4LS4wNDNMMTYuMyA4LjlhLjcuNyAwIDAgMS0uNTcyIDEuMVoifV0sWyJyZWN0Iix7eDoiMyIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxNy41IixyOiIzLjUifV1dfSk7dmFyIEJBLEJTZT1uKCgpPT57QkE9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTIiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOSIscjoiMyJ9XSxbImxpbmUiLHt4MToiOC41OSIseDI6IjE1LjQyIix5MToiMTMuNTEiLHkyOiIxNy40OSJ9XSxbImxpbmUiLHt4MToiMTUuNDEiLHgyOiI4LjU5Iix5MToiNi41MSIseTI6IjEwLjQ5In1dXX0pO3ZhciBSQSxSU2U9bigoKT0+e1JBPVtbInBhdGgiLHtkOiJNMTIgMnYxMyJ9XSxbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04In1dXX0pO3ZhciBIQSxIU2U9bigoKT0+e0hBPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjIxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjMiLHgyOiIyMSIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5Iix5MToiOSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1Iix5MToiOSIseTI6IjIxIn1dXX0pO3ZhciBxQSxxU2U9bigoKT0+e3FBPVtbInBhdGgiLHtkOiJNMTQgMTFhMiAyIDAgMSAxLTQgMCA0IDQgMCAwIDEgOCAwIDYgNiAwIDAgMS0xMiAwIDggOCAwIDAgMSAxNiAwIDEwIDEwIDAgMSAxLTIwIDAgMTEuOTMgMTEuOTMgMCAwIDEgMi40Mi03LjIyIDIgMiAwIDEgMSAzLjE2IDIuNDQifV1dfSk7dmFyIFZBLFZTZT1uKCgpPT57VkE9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY0In1dLFsicGF0aCIse2Q6Ik0xMiAxNmguMDEifV1dfSk7dmFyIFVBLFVTZT1uKCgpPT57VUE9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtNC4yNDMgNS4yMSAxNC4zOSAxMi40NzIifV1dfSk7dmFyIGpBLGpTZT1uKCgpPT57akE9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dXX0pO3ZhciBXQSxXU2U9bigoKT0+e1dBPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV19KTt2YXIgR0EsR1NlPW4oKCk9PntHQT1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYyIn1dXX0pO3ZhciBZQSxZU2U9bigoKT0+e1lBPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTkgMTJoNiJ9XV19KTt2YXIgWkEsWlNlPW4oKCk9PntaQT1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNSA1YTEgMSAwIDAgMC0xIDF2N2MwIDUgMy41IDcuNSA3LjY3IDguOTRhMSAxIDAgMCAwIC42Ny4wMWMyLjM1LS44MiA0LjQ4LTEuOTcgNS45LTMuNzEifV0sWyJwYXRoIix7ZDoiTTkuMzA5IDMuNjUyQTEyLjI1MiAxMi4yNTIgMCAwIDAgMTEuMjQgMi4yOGExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF2N2E5Ljc4NCA5Ljc4NCAwIDAgMS0uMDggMS4yNjQifV1dfSk7dmFyIFhBLFhTZT1uKCgpPT57WEE9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dfSk7dmFyIGczLFFTZT1uKCgpPT57ZzM9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXX0pO3ZhciBRQSxLU2U9bigoKT0+e1FBPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjQifV1dfSk7dmFyIHgzLEpTZT1uKCgpPT57eDM9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgOS41IDUgNSJ9XV19KTt2YXIgS0EsZUNlPW4oKCk9PntLQT1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dXX0pO3ZhciBKQSx0Q2U9bigoKT0+e0pBPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dLFsicGF0aCIse2Q6Ik0xMiAydjcuNSJ9XSxbInBhdGgiLHtkOiJtMTkgNS01LjIzIDUuMjMifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC03LjUifV0sWyJwYXRoIix7ZDoibTE5IDE5LTUuMjMtNS4yMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTQuNVYyMiJ9XSxbInBhdGgiLHtkOiJNMTAuMjMgMTMuNzcgNSAxOSJ9XSxbInBhdGgiLHtkOiJNOS41IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwLjIzIDEwLjIzIDUgNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyLjUifV1dfSk7dmFyIGUkLGFDZT1uKCgpPT57ZSQ9W1sicGF0aCIse2Q6Ik0xMiAxMC4xODlWMTQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTNWN2EyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xOS4zOCAyMEExMS42IDExLjYgMCAwIDAgMjEgMTRsLTguMTg4LTMuNjM5YTIgMiAwIDAgMC0xLjYyNCAwTDMgMTRhMTEuNiAxMS42IDAgMCAwIDIuODEgNy43NiJ9XSxbInBhdGgiLHtkOiJNMiAyMWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMXMxLjIgMSAyLjUgMWMyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV1dfSk7dmFyIHQkLHJDZT1uKCgpPT57dCQ9W1sicGF0aCIse2Q6Ik0yMC4zOCAzLjQ2IDE2IDJhNCA0IDAgMCAxLTggMEwzLjYyIDMuNDZhMiAyIDAgMCAwLTEuMzQgMi4yM2wuNTggMy40N2ExIDEgMCAwIDAgLjk5Ljg0SDZ2MTBjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWMTBoMi4xNWExIDEgMCAwIDAgLjk5LS44NGwuNTgtMy40N2EyIDIgMCAwIDAtMS4zNC0yLjIzeiJ9XV19KTt2YXIgYSQsaUNlPW4oKCk9PnthJD1bWyJwYXRoIix7ZDoiTTE2IDEwYTQgNCAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTMuMTAzIDYuMDM0aDE3Ljc5NCJ9XSxbInBhdGgiLHtkOiJNMy40IDUuNDY3YTIgMiAwIDAgMC0uNCAxLjJWMjBhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjYuNjY3YTIgMiAwIDAgMC0uNC0xLjJsLTItMi42NjdBMiAyIDAgMCAwIDE3IDJIN2EyIDIgMCAwIDAtMS42Ljh6In1dXX0pO3ZhciByJCxvQ2U9bigoKT0+e3IkPVtbInBhdGgiLHtkOiJtMTUgMTEtMSA5In1dLFsicGF0aCIse2Q6Im0xOSAxMS00LTcifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJwYXRoIix7ZDoibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQifV0sWyJwYXRoIix7ZDoiTTQuNSAxNS41aDE1In1dLFsicGF0aCIse2Q6Im01IDExIDQtNyJ9XSxbInBhdGgiLHtkOiJtOSAxMSAxIDkifV1dfSk7dmFyIGkkLHNDZT1uKCgpPT57aSQ9W1siY2lyY2xlIix7Y3g6IjgiLGN5OiIyMSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIxIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yLjA1IDIuMDVoMmwyLjY2IDEyLjQyYTIgMiAwIDAgMCAyIDEuNThoOS43OGEyIDIgMCAwIDAgMS45NS0xLjU3bDEuNjUtNy40M0g1LjEyIn1dXX0pO3ZhciBvJCxuQ2U9bigoKT0+e28kPVtbInBhdGgiLHtkOiJNMjEuNTYgNC41NmExLjUgMS41IDAgMCAxIDAgMi4xMjJsLS40Ny40N2EzIDMgMCAwIDEtNC4yMTItLjAzIDMgMyAwIDAgMSAwLTQuMjQzbC40NC0uNDRhMS41IDEuNSAwIDAgMSAyLjEyMSAweiJ9XSxbInBhdGgiLHtkOiJNMyAyMmExIDEgMCAwIDEtMS0xdi0zLjU4NmExIDEgMCAwIDEgLjI5My0uNzA3bDMuMzU1LTMuMzU1YTEuMjA1IDEuMjA1IDAgMCAxIDEuNzA0IDBsMy4yOTYgMy4yOTZhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMy4zNTUgMy4zNTVhMSAxIDAgMCAxLS43MDcuMjkzeiJ9XSxbInBhdGgiLHtkOiJtOSAxNSA3Ljg3OS03Ljg3OCJ9XV19KTt2YXIgcyQsbENlPW4oKCk9PntzJD1bWyJwYXRoIix7ZDoibTQgNCAyLjUgMi41In1dLFsicGF0aCIse2Q6Ik0xMy41IDYuNWE0Ljk1IDQuOTUgMCAwIDAtNyA3In1dLFsicGF0aCIse2Q6Ik0xNSA1IDUgMTUifV0sWyJwYXRoIix7ZDoiTTE0IDE3di4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAxM3YuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEwdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTEgMjB2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHYuMDEifV0sWyJwYXRoIix7ZDoiTTIwIDExdi4wMSJ9XV19KTt2YXIgbiQsY0NlPW4oKCk9PntuJD1bWyJwYXRoIix7ZDoiTTQgMTNWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDIydi01In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtMiJ9XSxbInBhdGgiLHtkOiJNMTggMjB2LTMifV0sWyJwYXRoIix7ZDoiTTIgMTNoMjAifV0sWyJwYXRoIix7ZDoiTTYgMjB2LTMifV1dfSk7dmFyIGwkLGRDZT1uKCgpPT57bCQ9W1sicGF0aCIse2Q6Ik0xMSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEzIDIyYy41LS41IDEuMTItMSAyLjUtMS0xLjM4IDAtMi0uNS0yLjUtMSJ9XSxbInBhdGgiLHtkOiJNMTQgMmEzLjI4IDMuMjggMCAwIDEtMy4yMjcgMS43OThsLTYuMTctLjU2MUEyLjM4NyAyLjM4NyAwIDEgMCA0LjM4NyA4SDE1LjVhMSAxIDAgMCAxIDAgMTMgMSAxIDAgMCAwIDAtNUgxMmE3IDcgMCAwIDEtNy03VjgifV0sWyJwYXRoIix7ZDoiTTE0IDhhOC41IDguNSAwIDAgMSAwIDgifV0sWyJwYXRoIix7ZDoiTTE2IDE2YzIgMCA0LjUtNCA0LTYifV1dfSk7dmFyIGMkLGZDZT1uKCgpPT57YyQ9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDZtLTYtNnY0LjhtMC00LjhoNC44In1dLFsicGF0aCIse2Q6Ik05IDE5LjhWMTVtMCAwSDQuMk05IDE1bC02IDYifV0sWyJwYXRoIix7ZDoiTTE1IDQuMlY5bTAgMGg0LjhNMTUgOWw2LTYifV0sWyJwYXRoIix7ZDoiTTkgNC4yVjltMCAwSDQuMk05IDkgMyAzIn1dXX0pO3ZhciBkJCx1Q2U9bigoKT0+e2QkPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDkuNSAxMy41In1dLFsicGF0aCIse2Q6Ik0xNC41IDE0LjUgMTIgMTcifV0sWyJwYXRoIix7ZDoiTTE3IDguOEE2IDYgMCAwIDEgMTMuOCAyMEgxMEE2LjUgNi41IDAgMCAxIDcgOGE1IDUgMCAwIDEgMTAgMHoifV1dfSk7dmFyIGYkLHBDZT1uKCgpPT57ZiQ9W1sicGF0aCIse2Q6Im0xOCAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Im0xOCAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMThoMS45NzNhNCA0IDAgMCAwIDMuMy0xLjdsNS40NTQtOC42YTQgNCAwIDAgMSAzLjMtMS43SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDZoMS45NzJhNCA0IDAgMCAxIDMuNiAyLjIifV0sWyJwYXRoIix7ZDoiTTIyIDE4aC02LjA0MWE0IDQgMCAwIDEtMy4zLTEuOGwtLjM1OS0uNDUifV1dfSk7dmFyIHUkLGhDZT1uKCgpPT57dSQ9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTE3IDIwVjgifV1dfSk7dmFyIHAkLG1DZT1uKCgpPT57cCQ9W1sicGF0aCIse2Q6Ik0xOCA3VjVhMSAxIDAgMCAwLTEtMUg2LjVhLjUuNSAwIDAgMC0uNC44bDQuNSA2YTIgMiAwIDAgMSAwIDIuNGwtNC41IDZhLjUuNSAwIDAgMCAuNC44SDE3YTEgMSAwIDAgMCAxLTF2LTIifV1dfSk7dmFyIGgkLGdDZT1uKCgpPT57aCQ9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XV19KTt2YXIgbSQseENlPW4oKCk9PnttJD1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XV19KTt2YXIgZyQsYkNlPW4oKCk9PntnJD1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dXX0pO3ZhciB4JCx2Q2U9bigoKT0+e3gkPVtbInBhdGgiLHtkOiJNMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTcgMjB2LTQifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi04In1dLFsicGF0aCIse2Q6Ik0xNyAyMFY4In1dLFsicGF0aCIse2Q6Ik0yMiA0djE2In1dXX0pO3ZhciBiJCx5Q2U9bigoKT0+e2IkPVtbInBhdGgiLHtkOiJtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCJ9XSxbInBhdGgiLHtkOiJNMyAyMWgxOCJ9XV19KTt2YXIgdiQsd0NlPW4oKCk9Pnt2JD1bWyJwYXRoIix7ZDoiTTEwIDlINEwyIDdsMi0yaDYifV0sWyJwYXRoIix7ZDoiTTE0IDVoNmwyIDItMiAyaC02In1dLFsicGF0aCIse2Q6Ik0xMCAyMlY0YTIgMiAwIDEgMSA0IDB2MTgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XV19KTt2YXIgeSQsTUNlPW4oKCk9Pnt5JD1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MyJ9XSxbInBhdGgiLHtkOiJNMTggNmEyIDIgMCAwIDEgMS4zODcuNTZsMi4zMDcgMi4yMmExIDEgMCAwIDEgMCAxLjQ0bC0yLjMwNyAyLjIyQTIgMiAwIDAgMSAxOCAxM0g2YTIgMiAwIDAgMS0xLjM4Ny0uNTZsLTIuMzA2LTIuMjJhMSAxIDAgMCAxIDAtMS40NGwyLjMwNi0yLjIyQTIgMiAwIDAgMSA2IDZ6In1dXX0pO3ZhciB3JCx6Q2U9bigoKT0+e3ckPVtbInBhdGgiLHtkOiJNNyAxOHYtNmE1IDUgMCAxIDEgMTAgMHY2In1dLFsicGF0aCIse2Q6Ik01IDIxYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnoifV0sWyJwYXRoIix7ZDoiTTIxIDEyaDEifV0sWyJwYXRoIix7ZDoiTTE4LjUgNC41IDE4IDUifV0sWyJwYXRoIix7ZDoiTTIgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMTIgMnYxIn1dLFsicGF0aCIse2Q6Im00LjkyOSA0LjkyOS43MDcuNzA3In1dLFsicGF0aCIse2Q6Ik0xMiAxMnY2In1dXX0pO3ZhciBNJCxrQ2U9bigoKT0+e00kPVtbInBhdGgiLHtkOiJNMTcuOTcxIDQuMjg1QTIgMiAwIDAgMSAyMSA2djEyYTIgMiAwIDAgMS0zLjAyOSAxLjcxNWwtOS45OTctNS45OThhMiAyIDAgMCAxLS4wMDMtMy40MzJ6In1dLFsicGF0aCIse2Q6Ik0zIDIwVjQifV1dfSk7dmFyIHokLFNDZT1uKCgpPT57eiQ9W1sicGF0aCIse2Q6Im0xMi41IDE3LS41LTEtLjUgMWgxeiJ9XSxbInBhdGgiLHtkOiJNMTUgMjJhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAgMS41Ni0zLjI1IDggOCAwIDEgMC0xMS4xMiAwQTIgMiAwIDAgMCA4IDIwdjFhMSAxIDAgMCAwIDEgMXoifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV1dfSk7dmFyIGskLENDZT1uKCgpPT57ayQ9W1sicGF0aCIse2Q6Ik0yMSA0djE2In1dLFsicGF0aCIse2Q6Ik02LjAyOSA0LjI4NUEyIDIgMCAwIDAgMyA2djEyYTIgMiAwIDAgMCAzLjAyOSAxLjcxNWw5Ljk5Ny01Ljk5OGEyIDIgMCAwIDAgLjAwMy0zLjQzMnoifV1dfSk7dmFyIFMkLExDZT1uKCgpPT57UyQ9W1sicmVjdCIse3dpZHRoOiIzIixoZWlnaHQ6IjgiLHg6IjEzIix5OiIyIixyeDoiMS41In1dLFsicGF0aCIse2Q6Ik0xOSA4LjVWMTBoMS41QTEuNSAxLjUgMCAxIDAgMTkgOC41In1dLFsicmVjdCIse3dpZHRoOiIzIixoZWlnaHQ6IjgiLHg6IjgiLHk6IjE0IixyeDoiMS41In1dLFsicGF0aCIse2Q6Ik01IDE1LjVWMTRIMy41QTEuNSAxLjUgMCAxIDAgNSAxNS41In1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjMiLHg6IjE0Iix5OiIxMyIscng6IjEuNSJ9XSxbInBhdGgiLHtkOiJNMTUuNSAxOUgxNHYxLjVhMS41IDEuNSAwIDEgMCAxLjUtMS41In1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjMiLHg6IjIiLHk6IjgiLHJ4OiIxLjUifV0sWyJwYXRoIix7ZDoiTTguNSA1SDEwVjMuNUExLjUgMS41IDAgMSAwIDguNSA1In1dXX0pO3ZhciBDJCxUQ2U9bigoKT0+e0MkPVtbInBhdGgiLHtkOiJNMjIgMiAyIDIyIn1dXX0pO3ZhciBMJCxfQ2U9bigoKT0+e0wkPVtbInBhdGgiLHtkOiJNMTEgMTYuNTg2VjE5YTEgMSAwIDAgMS0xIDFIMkwxOC4zNyAzLjYzYTEgMSAwIDEgMSAzIDNsLTkuNjYzIDkuNjYzYTEgMSAwIDAgMS0xLjQxNCAwTDggMTQifV1dfSk7dmFyIFQkLEFDZT1uKCgpPT57VCQ9W1sicGF0aCIse2Q6Ik0xMCA1SDMifV0sWyJwYXRoIix7ZDoiTTEyIDE5SDMifV0sWyJwYXRoIix7ZDoiTTE0IDN2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoLTkifV0sWyJwYXRoIix7ZDoiTTIxIDE5aC01In1dLFsicGF0aCIse2Q6Ik0yMSA1aC03In1dLFsicGF0aCIse2Q6Ik04IDEwdjQifV0sWyJwYXRoIix7ZDoiTTggMTJIMyJ9XV19KTt2YXIgYjMsJENlPW4oKCk9PntiMz1bWyJwYXRoIix7ZDoiTTEwIDhoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjF2LTkifV0sWyJwYXRoIix7ZDoiTTEyIDhWMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTZoNCJ9XSxbInBhdGgiLHtkOiJNMTkgMTJWMyJ9XSxbInBhdGgiLHtkOiJNMTkgMjF2LTUifV0sWyJwYXRoIix7ZDoiTTMgMTRoNCJ9XSxbInBhdGgiLHtkOiJNNSAxMFYzIn1dLFsicGF0aCIse2Q6Ik01IDIxdi03In1dXX0pO3ZhciBfJCxEQ2U9bigoKT0+e18kPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMjAiLHg6IjUiLHk6IjIiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIuNjY3IDggMTAgMTJoNGwtMi42NjcgNCJ9XV19KTt2YXIgQSQsRUNlPW4oKCk9PntBJD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMyA4LjMyYTcuNDMgNy40MyAwIDAgMSAwIDcuMzYifV0sWyJwYXRoIix7ZDoiTTE2LjQ2IDYuMjFhMTEuNzYgMTEuNzYgMCAwIDEgMCAxMS41OCJ9XSxbInBhdGgiLHtkOiJNMTkuOTEgNC4xYTE1LjkxIDE1LjkxIDAgMCAxIC4wMSAxNS44In1dXX0pO3ZhciAkJCxOQ2U9bigoKT0+eyQkPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMjAiLHg6IjUiLHk6IjIiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dXX0pO3ZhciBEJCxQQ2U9bigoKT0+e0QkPVtbInBhdGgiLHtkOiJNMjIgMTF2MWExMCAxMCAwIDEgMS05LTEwIn1dLFsicGF0aCIse2Q6Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV0sWyJwYXRoIix7ZDoiTTE2IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMnY2In1dXX0pO3ZhciBFJCxJQ2U9bigoKT0+e0UkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkuMDEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjkiLHkyOiI5In1dXX0pO3ZhciBOJCxGQ2U9bigoKT0+e04kPVtbInBhdGgiLHtkOiJNMiAxM2E2IDYgMCAxIDAgMTIgMCA0IDQgMCAxIDAtOCAwIDIgMiAwIDAgMCA0IDAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNMiAyMWgxMmM0LjQgMCA4LTMuNiA4LThWN2EyIDIgMCAxIDAtNCAwdjYifV0sWyJwYXRoIix7ZDoiTTE4IDMgMTkuMSA1LjIifV0sWyJwYXRoIix7ZDoiTTIyIDMgMjAuOSA1LjIifV1dfSk7dmFyIFAkLE9DZT1uKCgpPT57UCQ9W1sicGF0aCIse2Q6Im0xMCAyMC0xLjI1LTIuNUw2IDE4In1dLFsicGF0aCIse2Q6Ik0xMCA0IDguNzUgNi41IDYgNiJ9XSxbInBhdGgiLHtkOiJtMTQgMjAgMS4yNS0yLjVMMTggMTgifV0sWyJwYXRoIix7ZDoibTE0IDQgMS4yNSAyLjVMMTggNiJ9XSxbInBhdGgiLHtkOiJtMTcgMjEtMy02aC00In1dLFsicGF0aCIse2Q6Im0xNyAzLTMgNiAxLjUgMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmg2LjVMMTAgOSJ9XSxbInBhdGgiLHtkOiJtMjAgMTAtMS41IDIgMS41IDIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC02LjVMMTQgMTUifV0sWyJwYXRoIix7ZDoibTQgMTAgMS41IDJMNCAxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMSAzLTYtMS41LTMifV0sWyJwYXRoIix7ZDoibTcgMyAzIDZoNCJ9XV19KTt2YXIgSSQsQkNlPW4oKCk9PntJJD1bWyJwYXRoIix7ZDoiTTEwLjUgMnY0In1dLFsicGF0aCIse2Q6Ik0xNCAySDdhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTkuMjkgMTQuNzZBNi42NyA2LjY3IDAgMCAxIDE3IDExYTYuNiA2LjYgMCAwIDEtMi4yOSAzLjc2Yy0xLjE1LjkyLTEuNzEgMi4wNC0xLjcxIDMuMTkgMCAyLjIyIDEuOCA0LjA1IDQgNC4wNXM0LTEuODMgNC00LjA1YzAtMS4xNi0uNTctMi4yNi0xLjcxLTMuMTkifV0sWyJwYXRoIix7ZDoiTTkuNjA3IDIxSDZhMiAyIDAgMCAxLTItMnYtN2EyIDIgMCAwIDEgMi0yaDdWN2ExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAwLTEgMXYzIn1dXX0pO3ZhciBGJCxSQ2U9bigoKT0+e0YkPVtbInBhdGgiLHtkOiJNMjAgOVY2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIgMTZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiJ9XSxbInBhdGgiLHtkOiJNNCAxOHYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiA0djkifV1dfSk7dmFyIE8kLEhDZT1uKCgpPT57TyQ9W1sicGF0aCIse2Q6Ik0xMSAyaDIifV0sWyJwYXRoIix7ZDoibTE0LjI4IDE0LTQuNTYgOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjItMS41NTgtNEg0LjU1OCJ9XSxbInBhdGgiLHtkOiJNMyAxMHYyIn1dLFsicGF0aCIse2Q6Ik02LjI0NSAxNS4wNEEyIDIgMCAwIDEgOCAxNGgxMmExIDEgMCAwIDEgLjg2NCAxLjUwNWwtMy4xMSA1LjQ1N0EyIDIgMCAwIDEgMTYgMjJINGExIDEgMCAwIDEtLjg2My0xLjUwNnoifV0sWyJwYXRoIix7ZDoiTTcgMmE0IDQgMCAwIDEtNCA0In1dLFsicGF0aCIse2Q6Im04LjY2IDcuNjYgMS40MSAxLjQxIn1dXX0pO3ZhciBCJCxxQ2U9bigoKT0+e0IkPVtbInBhdGgiLHtkOiJNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaIn1dLFsicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicGF0aCIse2Q6Ik0xOS41IDEyIDIyIDYifV0sWyJwYXRoIix7ZDoiTTE2LjI1IDNjLjI3LjEuOC41My43NSAxLjM2LS4wNi44My0uOTMgMS4yLTEgMi4wMi0uMDUuNzguMzQgMS4yNC43MyAxLjYyIn1dLFsicGF0aCIse2Q6Ik0xMS4yNSAzYy4yNy4xLjguNTMuNzQgMS4zNi0uMDUuODMtLjkzIDEuMi0uOTggMi4wMi0uMDYuNzguMzMgMS4yNC43MiAxLjYyIn1dLFsicGF0aCIse2Q6Ik02LjI1IDNjLjI3LjEuOC41My43NSAxLjM2LS4wNi44My0uOTMgMS4yLTEgMi4wMi0uMDUuNzguMzQgMS4yNC43NCAxLjYyIn1dXX0pO3ZhciBSJCxWQ2U9bigoKT0+e1IkPVtbInBhdGgiLHtkOiJNMjIgMTd2MWMwIC41LS41IDEtMSAxSDNjLS41IDAtMS0uNS0xLTF2LTEifV1dfSk7dmFyIEgkLFVDZT1uKCgpPT57SCQ9W1sicGF0aCIse2Q6Ik0xMiAxOHY0In1dLFsicGF0aCIse2Q6Ik0yIDE0LjQ5OWE1LjUgNS41IDAgMCAwIDkuNTkxIDMuNjc1LjYuNiAwIDAgMSAuODE4LjAwMUE1LjUgNS41IDAgMCAwIDIyIDE0LjVjMC0yLjI5LTEuNS00LTMtNS41bC01LjQ5Mi01LjMxMmEyIDIgMCAwIDAtMy0uMDJMNSA4Ljk5OWMtMS41IDEuNS0zIDMuMi0zIDUuNSJ9XV19KTt2YXIgcSQsakNlPW4oKCk9PntxJD1bWyJwYXRoIix7ZDoiTTExLjAxNyAyLjgxNGExIDEgMCAwIDEgMS45NjYgMGwxLjA1MSA1LjU1OGEyIDIgMCAwIDAgMS41OTQgMS41OTRsNS41NTggMS4wNTFhMSAxIDAgMCAxIDAgMS45NjZsLTUuNTU4IDEuMDUxYTIgMiAwIDAgMC0xLjU5NCAxLjU5NGwtMS4wNTEgNS41NThhMSAxIDAgMCAxLTEuOTY2IDBsLTEuMDUxLTUuNTU4YTIgMiAwIDAgMC0xLjU5NC0xLjU5NGwtNS41NTgtMS4wNTFhMSAxIDAgMCAxIDAtMS45NjZsNS41NTgtMS4wNTFhMiAyIDAgMCAwIDEuNTk0LTEuNTk0eiJ9XV19KTt2YXIgdjMsV0NlPW4oKCk9Pnt2Mz1bWyJwYXRoIix7ZDoiTTExLjAxNyAyLjgxNGExIDEgMCAwIDEgMS45NjYgMGwxLjA1MSA1LjU1OGEyIDIgMCAwIDAgMS41OTQgMS41OTRsNS41NTggMS4wNTFhMSAxIDAgMCAxIDAgMS45NjZsLTUuNTU4IDEuMDUxYTIgMiAwIDAgMC0xLjU5NCAxLjU5NGwtMS4wNTEgNS41NThhMSAxIDAgMCAxLTEuOTY2IDBsLTEuMDUxLTUuNTU4YTIgMiAwIDAgMC0xLjU5NC0xLjU5NGwtNS41NTgtMS4wNTFhMSAxIDAgMCAxIDAtMS45NjZsNS41NTgtMS4wNTFhMiAyIDAgMCAwIDEuNTk0LTEuNTk0eiJ9XSxbInBhdGgiLHtkOiJNMjAgMnY0In1dLFsicGF0aCIse2Q6Ik0yMiA0aC00In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIyMCIscjoiMiJ9XV19KTt2YXIgViQsR0NlPW4oKCk9PntWJD1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgNmguMDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNCIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTRoLjAxIn1dXX0pO3ZhciBVJCxZQ2U9bigoKT0+e1UkPVtbInBhdGgiLHtkOiJNOC44IDIwdi00LjFsMS45LjJhMi4zIDIuMyAwIDAgMCAyLjE2NC0yLjFWOC4zQTUuMzcgNS4zNyAwIDAgMCAyIDguMjVjMCAyLjguNjU2IDMuMDU0IDEgNC41NWE1Ljc3IDUuNzcgMCAwIDEgLjAyOSAyLjc1OEwyIDIwIn1dLFsicGF0aCIse2Q6Ik0xOS44IDE3LjhhNy41IDcuNSAwIDAgMCAuMDAzLTEwLjYwMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTVhMy41IDMuNSAwIDAgMC0uMDI1LTQuOTc1In1dXX0pO3ZhciBqJCxaQ2U9bigoKT0+e2okPVtbInBhdGgiLHtkOiJtNiAxNiA2LTEyIDYgMTIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAyMWMxLjEgMCAxLjEtMSAyLjMtMXMxLjEgMSAyLjMgMWMxLjEgMCAxLjEtMSAyLjMtMSAxLjEgMCAxLjEgMSAyLjMgMSAxLjEgMCAxLjEtMSAyLjMtMSAxLjEgMCAxLjEgMSAyLjMgMSAxLjEgMCAxLjEtMSAyLjMtMSJ9XV19KTt2YXIgVyQsWENlPW4oKCk9PntXJD1bWyJwYXRoIix7ZDoibTYgMTYgNi0xMiA2IDEyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTE2IDIwIDIgMiA0LTQifV1dfSk7dmFyIEckLFFDZT1uKCgpPT57RyQ9W1sicGF0aCIse2Q6Ik0xMi4wMzQgMTIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQzbC0zLjQ0NCAxLjA2OGExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NyAzLjQ0M2EuNS41IDAgMCAxLS45NDMuMDMzeiJ9XSxbInBhdGgiLHtkOiJNNSAxN0ExMiAxMiAwIDAgMSAxNyA1In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIFkkLEtDZT1uKCgpPT57WSQ9W1siY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSJ9XV19KTt2YXIgWiQsSkNlPW4oKCk9PntaJD1bWyJwYXRoIix7ZDoiTTE2IDNoNXY1In1dLFsicGF0aCIse2Q6Ik04IDNIM3Y1In1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtOC4zYTQgNCAwIDAgMC0xLjE3Mi0yLjg3MkwzIDMifV0sWyJwYXRoIix7ZDoibTE1IDkgNi02In1dXX0pO3ZhciBYJCxlTGU9bigoKT0+e1gkPVtbInBhdGgiLHtkOiJNMTcgMTMuNDQgNC40NDIgMTcuMDgyQTIgMiAwIDAgMCA0Ljk4MiAyMUgxOWEyIDIgMCAwIDAgLjU1OC0zLjkyMWwtMS4xMTUtLjMyQTIgMiAwIDAgMSAxNyAxNC44MzdWNy42NiJ9XSxbInBhdGgiLHtkOiJtNyAxMC41NiAxMi41NTgtMy42NDJBMiAyIDAgMCAwIDE5LjAxOCAzSDVhMiAyIDAgMCAwLS41NTggMy45MjFsMS4xMTUuMzJBMiAyIDAgMCAxIDcgOS4xNjN2Ny4xNzgifV1dfSk7dmFyIFEkLHRMZT1uKCgpPT57USQ9W1sicGF0aCIse2Q6Ik0xNS4yOTUgMTkuNTYyIDE2IDIyIn1dLFsicGF0aCIse2Q6Im0xNyAxNiAzLjc1OCAyLjA5OCJ9XSxbInBhdGgiLHtkOiJtMTkgMTIuNSAzLjAyNi0uNTk4In1dLFsicGF0aCIse2Q6Ik03LjYxIDYuM2EzIDMgMCAwIDAtMy45MiAxLjNsLTEuMzggMi43OWEzIDMgMCAwIDAgMS4zIDMuOTFsNi44OSAzLjU5N2ExIDEgMCAwIDAgMS4zNDItLjQ0N2wzLjEwNi02LjIxMWExIDEgMCAwIDAtLjQ0Ny0xLjM0MXoifV0sWyJwYXRoIix7ZDoiTTggOVYyIn1dXX0pO3ZhciBLJCxhTGU9bigoKT0+e0skPVtbInBhdGgiLHtkOiJNMyAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyA1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTEgN2guMDEifV0sWyJwYXRoIix7ZDoiTTMgN2guMDEifV0sWyJwYXRoIix7ZDoiTTcgOWguMDEifV0sWyJwYXRoIix7ZDoiTTMgMTFoLjAxIn1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjQiLHg6IjE1Iix5OiI1In1dLFsicGF0aCIse2Q6Im0xOSA5IDIgMnYxMGMwIC42LS40IDEtMSAxaC02Yy0uNiAwLTEtLjQtMS0xVjExbDItMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTQgOC0yIn1dLFsicGF0aCIse2Q6Im0xMyAxOSA4LTIifV1dfSk7dmFyIEokLHJMZT1uKCgpPT57SiQ9W1sicGF0aCIse2Q6Ik0xNCA5LjUzNlY3YTQgNCAwIDAgMSA0LTRoMS41YS41LjUgMCAwIDEgLjUuNVY1YTQgNCAwIDAgMS00IDQgNCA0IDAgMCAwLTQgNGMwIDIgMSAzIDEgNWE1IDUgMCAwIDEtMSAzIn1dLFsicGF0aCIse2Q6Ik00IDlhNSA1IDAgMCAxIDggNCA1IDUgMCAwIDEtOC00In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXX0pO3ZhciB5MyxpTGU9bigoKT0+e3kzPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAxMmgtMmwtMiA1LTItMTAtMiA1SDcifV1dfSk7dmFyIHczLG9MZT1uKCgpPT57dzM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTE2IDgtOCA4In1dLFsicGF0aCIse2Q6Ik0xNiAxNkg4VjgifV1dfSk7dmFyIE0zLHNMZT1uKCgpPT57TTM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTggOCA4IDgifV0sWyJwYXRoIix7ZDoiTTE2IDh2OEg4In1dXX0pO3ZhciB6MyxuTGU9bigoKT0+e3ozPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV0sWyJwYXRoIix7ZDoibTggMTIgNCA0IDQtNCJ9XV19KTt2YXIgazMsbExlPW4oKCk9PntrMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTIgOC00IDQgNCA0In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dXX0pO3ZhciBTMyxjTGU9bigoKT0+e1MzPVtbInBhdGgiLHtkOiJNMTMgMjFoNmEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2NiJ9XSxbInBhdGgiLHtkOiJtMyAyMSA5LTkifV0sWyJwYXRoIix7ZDoiTTkgMjFIM3YtNiJ9XV19KTt2YXIgQzMsZExlPW4oKCk9PntDMz1bWyJwYXRoIix7ZDoiTTIxIDExVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dLFsicGF0aCIse2Q6Im0yMSAyMS05LTkifV0sWyJwYXRoIix7ZDoiTTIxIDE1djZoLTYifV1dfSk7dmFyIEwzLGZMZT1uKCgpPT57TDM9W1sicGF0aCIse2Q6Ik0xMyAzaDZhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNiJ9XSxbInBhdGgiLHtkOiJtMyAzIDkgOSJ9XSxbInBhdGgiLHtkOiJNMyA5VjNoNiJ9XV19KTt2YXIgVDMsdUxlPW4oKCk9PntUMz1bWyJwYXRoIix7ZDoiTTIxIDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDYifV0sWyJwYXRoIix7ZDoibTIxIDMtOSA5In1dLFsicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XV19KTt2YXIgXzMscExlPW4oKCk9PntfMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Im0xMiAxNiA0LTQtNC00In1dXX0pO3ZhciBBMyxoTGU9bigoKT0+e0EzPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDE2VjhoOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTYgOCA4In1dXX0pO3ZhciAkMyxtTGU9bigoKT0+eyQzPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDhoOHY4In1dLFsicGF0aCIse2Q6Im04IDE2IDgtOCJ9XV19KTt2YXIgRDMsZ0xlPW4oKCk9PntEMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTItNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWOCJ9XV19KTt2YXIgRTMseExlPW4oKCk9PntFMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04LjUgMTQgNy00In1dLFsicGF0aCIse2Q6Im04LjUgMTAgNyA0In1dXX0pO3ZhciBOMyxiTGU9bigoKT0+e04zPVtbImxpbmUiLHt4MToiNSIseTE6IjMiLHgyOiIxOSIseTI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHkxOiI1Iix4MjoiMyIseTI6IjE5In1dLFsibGluZSIse3gxOiIyMSIseTE6IjUiLHgyOiIyMSIseTI6IjE5In1dLFsibGluZSIse3gxOiI5Iix5MToiMjEiLHgyOiIxMCIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNCIseTE6IjIxIix4MjoiMTUiLHkyOiIyMSJ9XSxbInBhdGgiLHtkOiJNIDMgNSBBMiAyIDAgMCAxIDUgMyJ9XSxbInBhdGgiLHtkOiJNIDE5IDMgQTIgMiAwIDAgMSAyMSA1In1dLFsicGF0aCIse2Q6Ik0gNSAyMSBBMiAyIDAgMCAxIDMgMTkifV0sWyJwYXRoIix7ZDoiTSAyMSAxOSBBMiAyIDAgMCAxIDE5IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXX0pO3ZhciBSaSx2TGU9bigoKT0+e1JpPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDhoNyJ9XSxbInBhdGgiLHtkOiJNOCAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMSAxNmg1In1dXX0pO3ZhciBQMyx5TGU9bigoKT0+e1AzPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dfSk7dmFyIEkzLHdMZT1uKCgpPT57STM9W1sicGF0aCIse2Q6Ik0yMSAxMC42NTZWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDEyLjM0NCJ9XSxbInBhdGgiLHtkOiJtOSAxMSAzIDNMMjIgNCJ9XV19KTt2YXIgRjMsTUxlPW4oKCk9PntGMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgMTAtNCA0LTQtNCJ9XV19KTt2YXIgTzMsekxlPW4oKCk9PntPMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtNC00IDQtNCJ9XV19KTt2YXIgQjMsa0xlPW4oKCk9PntCMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXX0pO3ZhciBSMyxTTGU9bigoKT0+e1IzPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dfSk7dmFyIEgzLENMZT1uKCgpPT57SDM9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgZUQsTExlPW4oKCk9PntlRD1bWyJwYXRoIix7ZDoiTTEwIDkuNSA4IDEybDIgMi41In1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Im0xNCA5LjUgMiAyLjUtMiAyLjUifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV1dfSk7dmFyIHRELFRMZT1uKCgpPT57dEQ9W1sicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dXX0pO3ZhciBxMyxfTGU9bigoKT0+e3EzPVtbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTE0IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTkgM2EyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dXX0pO3ZhciBWMyxBTGU9bigoKT0+e1YzPVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMiJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYyIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV1dfSk7dmFyIGFELCRMZT1uKCgpPT57YUQ9W1sicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0yMSAxNHYxIn1dLFsicGF0aCIse2Q6Ik0yMSAxOWEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMyA1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMyA5djEifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dXX0pO3ZhciBVMyxETGU9bigoKT0+e1UzPVtbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik05IDNoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XV19KTt2YXIgajMsRUxlPW4oKCk9PntqMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV1dfSk7dmFyIFczLE5MZT1uKCgpPT57VzM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV19KTt2YXIgRzMsUExlPW4oKCk9PntHMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJNNyAxNGgxMCJ9XV19KTt2YXIgWTMsSUxlPW4oKCk9PntZMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTdjMiAwIDIuOC0xIDIuOC0yLjhWMTBjMC0yIDEtMy4zIDMuMi0zIn1dLFsicGF0aCIse2Q6Ik05IDExLjJoNS43In1dXX0pO3ZhciBaMyxGTGU9bigoKT0+e1ozPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDd2NyJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik0xNiA3djkifV1dfSk7dmFyIFgzLE9MZT1uKCgpPT57WDM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTEgN3YxMCJ9XSxbInBhdGgiLHtkOiJtMTUgNyAyIDEwIn1dXX0pO3ZhciBRMyxCTGU9bigoKT0+e1EzPVtbInBhdGgiLHtkOiJNOCAxNlY4LjVhLjUuNSAwIDAgMSAuOS0uM2wyLjcgMy41OTlhLjUuNSAwIDAgMCAuOCAwbDIuNy0zLjZhLjUuNSAwIDAgMSAuOS4zVjE2In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIEszLFJMZT1uKCgpPT57SzM9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgOGgxMCJ9XSxbInBhdGgiLHtkOiJNNyAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNNyAxNmgxMCJ9XV19KTt2YXIgSjMsSExlPW4oKCk9PntKMz1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXX0pO3ZhciBlbCxxTGU9bigoKT0+e2VsPVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTIxIDExVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dXX0pO3ZhciB0bCxWTGU9bigoKT0+e3RsPVtbInBhdGgiLHtkOiJNMy42IDMuNkEyIDIgMCAwIDEgNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLS41OSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0zIDguN1YxOWEyIDIgMCAwIDAgMiAyaDEwLjMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMTMgMTNhMyAzIDAgMSAwIDAtNkg5djIifV0sWyJwYXRoIix7ZDoiTTkgMTd2LTIuMyJ9XV19KTt2YXIgYWwsVUxlPW4oKCk9PnthbD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxN1Y3aDRhMyAzIDAgMCAxIDAgNkg5In1dXX0pO3ZhciBhcixqTGU9bigoKT0+e2FyPVtbInBhdGgiLHtkOiJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03In1dLFsicGF0aCIse2Q6Ik0xOC4zNzUgMi42MjVhMSAxIDAgMCAxIDMgM2wtOS4wMTMgOS4wMTRhMiAyIDAgMCAxLS44NTMuNTA1bC0yLjg3My44NGEuNS41IDAgMCAxLS42Mi0uNjJsLjg0LTIuODczYTIgMiAwIDAgMSAuNTA2LS44NTJ6In1dXX0pO3ZhciByRCxXTGU9bigoKT0+e3JEPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiIxMCIseDI6IjEwIix5MToiMTUiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNCIseDI6IjE0Iix5MToiMTUiLHkyOiI5In1dXX0pO3ZhciBybCxHTGU9bigoKT0+e3JsPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXX0pO3ZhciBpbCxZTGU9bigoKT0+e2lsPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDdoMTAifV0sWyJwYXRoIix7ZDoiTTEwIDd2MTAifV0sWyJwYXRoIix7ZDoiTTE2IDE3YTIgMiAwIDAgMS0yLTJWNyJ9XV19KTt2YXIgb2wsWkxlPW4oKCk9PntvbD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJIOS41YTIuNSAyLjUgMCAwIDEgMC01SDE3In1dLFsicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNiA3djEwIn1dXX0pO3ZhciBzbCxYTGU9bigoKT0+e3NsPVtbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDkuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N0ExIDEgMCAwIDEgOSAxNC45OTZ6In1dXX0pO3ZhciBubCxRTGU9bigoKT0+e25sPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XV19KTt2YXIgbGwsS0xlPW4oKCk9PntsbD1bWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNNy45OTggOS4wMDNhNSA1IDAgMSAwIDgtLjAwNSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXX0pO3ZhciBpRCxKTGU9bigoKT0+e2lEPVtbInBhdGgiLHtkOiJNNyAxMmgybDIgNSAyLTEwaDQifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV19KTt2YXIgY2wsZVRlPW4oKCk9PntjbD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI4LjUiLGN5OiI4LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjkuNTYwNjYiLHgyOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxNyIseTE6IjE3Iix4MjoiMTQuODIiLHkyOiIxNC44MiJ9XSxbImNpcmNsZSIse2N4OiI4LjUiLGN5OiIxNS41IixyOiIxLjUifV0sWyJsaW5lIix7eDE6IjkuNTYwNjYiLHkxOiIxNC40MzkzNCIseDI6IjE3Iix5MjoiNyJ9XV19KTt2YXIgb0QsdFRlPW4oKCk9PntvRD1bWyJwYXRoIix7ZDoiTTIxIDExYTggOCAwIDAgMC04LTgifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQifV1dfSk7dmFyIGRsLGFUZT1uKCgpPT57ZGw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDguOVY3SDhsNCA1LTQgNWg4di0xLjkifV1dfSk7dmFyIGZsLHJUZT1uKCgpPT57Zmw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjE1Iix5MjoiOSJ9XV19KTt2YXIgdWwsaVRlPW4oKCk9Pnt1bD1bWyJwYXRoIix7ZDoiTTggMTlINWMtMSAwLTItMS0yLTJWN2MwLTEgMS0yIDItMmgzIn1dLFsicGF0aCIse2Q6Ik0xNiA1aDNjMSAwIDIgMSAyIDJ2MTBjMCAxLTEgMi0yIDJoLTMifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI0Iix5MjoiMjAifV1dfSk7dmFyIHBsLG9UZT1uKCgpPT57cGw9W1sicGF0aCIse2Q6Ik01IDhWNWMwLTEgMS0yIDItMmgxMGMxIDAgMiAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxNnYzYzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0ydi0zIn1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxMiIseTI6IjEyIn1dXX0pO3ZhciBzRCxzVGU9bigoKT0+e3NEPVtbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjgiLHk6IjgiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXX0pO3ZhciBuRCxuVGU9bigoKT0+e25EPVtbInBhdGgiLHtkOiJNNCAxMGMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDRjMS4xIDAgMiAuOSAyIDIifV0sWyJwYXRoIix7ZDoiTTEwIDE2Yy0xLjEgMC0yLS45LTItMnYtNGMwLTEuMS45LTIgMi0yaDRjMS4xIDAgMiAuOSAyIDIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiOCIseDoiMTQiLHk6IjE0IixyeDoiMiJ9XV19KTt2YXIgbEQsbFRlPW4oKCk9PntsRD1bWyJwYXRoIix7ZDoiTTExLjAzNSA3LjY5YTEgMSAwIDAgMSAxLjkwOS4wMjRsLjczNyAxLjQ1MmExIDEgMCAwIDAgLjczNy41MzVsMS42MzQuMjU2YTEgMSAwIDAgMSAuNTg4IDEuODA2bC0xLjE3MiAxLjE2OGExIDEgMCAwIDAtLjI4Mi44NjZsLjI1OSAxLjYxM2ExIDEgMCAwIDEtMS41NDEgMS4xMzRsLTEuNDY1LS43NWExIDEgMCAwIDAtLjkxMiAwbC0xLjQ2NS43NWExIDEgMCAwIDEtMS41MzktMS4xMzNsLjI1OC0xLjYxM2ExIDEgMCAwIDAtLjI4Mi0uODY2bC0xLjE1Ni0xLjE1M2ExIDEgMCAwIDEgLjU3Mi0xLjgyMmwxLjYzMy0uMjU2YTEgMSAwIDAgMCAuNzM3LS41MzV6In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dfSk7dmFyIGNELGNUZT1uKCgpPT57Y0Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJyZWN0Iix7eDoiOSIseToiOSIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dfSk7dmFyIGhsLGRUZT1uKCgpPT57aGw9W1sicGF0aCIse2Q6Im03IDExIDItMi0yLTIifV0sWyJwYXRoIix7ZDoiTTExIDEzaDQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV1dfSk7dmFyIG1sLGZUZT1uKCgpPT57bWw9W1sicGF0aCIse2Q6Ik0xOCAyMWE2IDYgMCAwIDAtMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExIixyOiI0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dfSk7dmFyIGdsLHVUZT1uKCgpPT57Z2w9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMXYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciB4bCxwVGU9bigoKT0+e3hsPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dfSk7dmFyIGRELGhUZT1uKCgpPT57ZEQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dfSk7dmFyIGZELG1UZT1uKCgpPT57ZkQ9W1sicGF0aCIse2Q6Ik0xNiAxMnYyYTIgMiAwIDAgMS0yIDJIOWExIDEgMCAwIDAtMSAxdjNhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjEwYTIgMiAwIDAgMC0yLTJoMCJ9XSxbInBhdGgiLHtkOiJNNCAxNmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjNhMSAxIDAgMCAxLTEgMWgtNWEyIDIgMCAwIDAtMiAydjIifV1dfSk7dmFyIHVELGdUZT1uKCgpPT57dUQ9W1sicGF0aCIse2Q6Ik0xMCAyMmEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0xNCAyYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE2IDIyaC0yIn1dLFsicGF0aCIse2Q6Ik0yIDEwVjgifV0sWyJwYXRoIix7ZDoiTTIgNGEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Ik0yMCA4YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDE0djIifV0sWyJwYXRoIix7ZDoiTTIyIDIwYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOCAxMGEyIDIgMCAwIDEgMi0yaDVhMSAxIDAgMCAxIDEgMXY1YTIgMiAwIDAgMS0yIDJIOWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAyaDIifV1dfSk7dmFyIHBELHhUZT1uKCgpPT57cEQ9W1sicGF0aCIse2Q6Ik0xMCAyMmEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0xNiAyMmgtMiJ9XSxbInBhdGgiLHtkOiJNMTYgNGEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDNhMSAxIDAgMCAwIDEtMXYtNWEyIDIgMCAwIDEgMi0yaDVhMSAxIDAgMCAwIDEtMXoifV0sWyJwYXRoIix7ZDoiTTIwIDhhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMjIgMjBhMiAyIDAgMCAxLTIgMiJ9XV19KTt2YXIgaEQsYlRlPW4oKCk9PntoRD1bWyJwYXRoIix7ZDoiTTEzLjc3IDMuMDQzYTM0IDM0IDAgMCAwLTMuNTQgMCJ9XSxbInBhdGgiLHtkOiJNMTMuNzcxIDIwLjk1NmEzMyAzMyAwIDAgMS0zLjU0MS4wMDEifV0sWyJwYXRoIix7ZDoiTTIwLjE4IDE3Ljc0Yy0uNTEgMS4xNS0xLjI5IDEuOTMtMi40MzkgMi40NCJ9XSxbInBhdGgiLHtkOiJNMjAuMTggNi4yNTljLS41MS0xLjE0OC0xLjI5MS0xLjkyOS0yLjQ0LTIuNDM4In1dLFsicGF0aCIse2Q6Ik0yMC45NTcgMTAuMjNhMzMgMzMgMCAwIDEgMCAzLjU0In1dLFsicGF0aCIse2Q6Ik0zLjA0MyAxMC4yM2EzNCAzNCAwIDAgMCAuMDAxIDMuNTQxIn1dLFsicGF0aCIse2Q6Ik02LjI2IDIwLjE3OWMtMS4xNS0uNTA4LTEuOTMtMS4yOS0yLjQ0LTIuNDM4In1dLFsicGF0aCIse2Q6Ik02LjI2IDMuODJjLTEuMTQ5LjUxLTEuOTMgMS4yOTEtMi40NCAyLjQ0In1dXX0pO3ZhciBtRCx2VGU9bigoKT0+e21EPVtbInBhdGgiLHtkOiJNNCAxNmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjNhMSAxIDAgMCAwIDEgMWgzYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkgxMGEyIDIgMCAwIDEtMi0ydi0zYTEgMSAwIDAgMC0xLTF6In1dXX0pO3ZhciBnRCx5VGU9bigoKT0+e2dEPVtbInBhdGgiLHtkOiJNMTIgM2M3LjIgMCA5IDEuOCA5IDlzLTEuOCA5LTkgOS05LTEuOC05LTkgMS44LTkgOS05In1dXX0pO3ZhciB4RCx3VGU9bigoKT0+e3hEPVtbInBhdGgiLHtkOiJNMTUuMjM2IDIyYTMgMyAwIDAgMC0yLjItNSJ9XSxbInBhdGgiLHtkOiJNMTYgMjBhMyAzIDAgMCAxIDMtM2gxYTIgMiAwIDAgMCAyLTJ2LTJhNCA0IDAgMCAwLTQtNFY0In1dLFsicGF0aCIse2Q6Ik0xOCAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZhNCA0IDAgMCAwLTQgNCA3IDcgMCAwIDAtNyA3YzAtNSA0LTUgNC0xMC41YTQuNSA0LjUgMCAxIDAtOSAwIDIuNSAyLjUgMCAwIDAgNSAwQzcgMTAgMyAxMSAzIDE3YzAgMi44IDIuMiA1IDUgNWgxMCJ9XV19KTt2YXIgYkQsTVRlPW4oKCk9PntiRD1bWyJwYXRoIix7ZDoiTTE0IDEzVjguNUMxNCA3IDE1IDcgMTUgNWEzIDMgMCAwIDAtNiAwYzAgMiAxIDIgMSAzLjVWMTMifV0sWyJwYXRoIix7ZDoiTTIwIDE1LjVhMi41IDIuNSAwIDAgMC0yLjUtMi41aC0xMUEyLjUgMi41IDAgMCAwIDQgMTUuNVYxN2ExIDEgMCAwIDAgMSAxaDE0YTEgMSAwIDAgMCAxLTF6In1dLFsicGF0aCIse2Q6Ik01IDIyaDE0In1dXX0pO3ZhciB2RCx6VGU9bigoKT0+e3ZEPVtbInBhdGgiLHtkOiJNOC4zNCA4LjM0IDIgOS4yN2w1IDQuODdMNS44MiAyMSAxMiAxNy43NyAxOC4xOCAyMWwtLjU5LTMuNDMifV0sWyJwYXRoIix7ZDoiTTE4LjQyIDEyLjc2IDIyIDkuMjdsLTYuOTEtMUwxMiAybC0xLjQ0IDIuOTEifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgeUQsa1RlPW4oKCk9Pnt5RD1bWyJwYXRoIix7ZDoiTTEyIDE4LjMzOGEyLjEgMi4xIDAgMCAwLS45ODcuMjQ0TDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMiAyLjEyIDAgMCAwIDEuNTk3LTEuMTZsMi4zMDktNC42NzlBLjUzLjUzIDAgMCAxIDEyIDIifV1dfSk7dmFyIHdELFNUZT1uKCgpPT57d0Q9W1sicGF0aCIse2Q6Ik0xMS41MjUgMi4yOTVhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMjMgMi4xMjMgMCAwIDAgMS41OTUgMS4xNmw1LjE2Ni43NTZhLjUzLjUzIDAgMCAxIC4yOTQuOTA0bC0zLjczNiAzLjYzOGEyLjEyMyAyLjEyMyAwIDAgMC0uNjExIDEuODc4bC44ODIgNS4xNGEuNTMuNTMgMCAwIDEtLjc3MS41NmwtNC42MTgtMi40MjhhMi4xMjIgMi4xMjIgMCAwIDAtMS45NzMgMEw2LjM5NiAyMS4wMWEuNTMuNTMgMCAwIDEtLjc3LS41NmwuODgxLTUuMTM5YTIuMTIyIDIuMTIyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMjIgMi4xMjIgMCAwIDAgMS41OTctMS4xNnoifV1dfSk7dmFyIE1ELENUZT1uKCgpPT57TUQ9W1sicGF0aCIse2Q6Ik0xMy45NzEgNC4yODVBMiAyIDAgMCAxIDE3IDZ2MTJhMiAyIDAgMCAxLTMuMDI5IDEuNzE1bC05Ljk5Ny01Ljk5OGEyIDIgMCAwIDEtLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTIxIDIwVjQifV1dfSk7dmFyIHpELExUZT1uKCgpPT57ekQ9W1sicGF0aCIse2Q6Ik0xMC4wMjkgNC4yODVBMiAyIDAgMCAwIDcgNnYxMmEyIDIgMCAwIDAgMy4wMjkgMS43MTVsOS45OTctNS45OThhMiAyIDAgMCAwIC4wMDMtMy40MzJ6In1dLFsicGF0aCIse2Q6Ik0zIDR2MTYifV1dfSk7dmFyIGtELFRUZT1uKCgpPT57a0Q9W1sicGF0aCIse2Q6Ik0xMSAydjIifV0sWyJwYXRoIix7ZDoiTTUgMnYyIn1dLFsicGF0aCIse2Q6Ik01IDNINGEyIDIgMCAwIDAtMiAydjRhNiA2IDAgMCAwIDEyIDBWNWEyIDIgMCAwIDAtMi0yaC0xIn1dLFsicGF0aCIse2Q6Ik04IDE1YTYgNiAwIDAgMCAxMiAwdi0zIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIFNELF9UZT1uKCgpPT57U0Q9W1sicGF0aCIse2Q6Ik0yMSA5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDEzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxNnMuOCAxIDIgMWMxLjMgMCAyLTEgMi0xIn1dXX0pO3ZhciBDRCxBVGU9bigoKT0+e0NEPVtbInBhdGgiLHtkOiJNMTEuMjY0IDIuMjA1QTQgNCAwIDAgMCA2LjQyIDQuMjExbC00IDhhNCA0IDAgMCAwIDEuMzU5IDUuMTE3bDYgNGE0IDQgMCAwIDAgNC40MzggMGw2LTRhNCA0IDAgMCAwIDEuNTc2LTQuNTkybC0yLTZhNCA0IDAgMCAwLTIuNTMtMi41M3oifV0sWyJwYXRoIix7ZDoiTTExLjk5IDIyIDE0IDEybDcuODIyIDMuMTg0In1dLFsicGF0aCIse2Q6Ik0xNCAxMiA4LjQ3IDIuMzAyIn1dXX0pO3ZhciBMRCwkVGU9bigoKT0+e0xEPVtbInBhdGgiLHtkOiJNMjEgOWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTUgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNMTUgM3Y1YTEgMSAwIDAgMCAxIDFoNSJ9XV19KTt2YXIgVEQsRFRlPW4oKCk9PntURD1bWyJwYXRoIix7ZDoiTTE1IDIxdi01YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXY1In1dLFsicGF0aCIse2Q6Ik0xNy43NzQgMTAuMzFhMS4xMiAxLjEyIDAgMCAwLTEuNTQ5IDAgMi41IDIuNSAwIDAgMS0zLjQ1MSAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OCAwIDIuNSAyLjUgMCAwIDEtMy40NTIgMCAxLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNzctMy4yNDhsMi44ODktNC4xODRBMiAyIDAgMCAxIDcgMmgxMGEyIDIgMCAwIDEgMS42NTMuODczbDIuODk1IDQuMTkyYTIuNSAyLjUgMCAwIDEtMy43NzQgMy4yNDQifV0sWyJwYXRoIix7ZDoiTTQgMTAuOTVWMTlhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04LjA1In1dXX0pO3ZhciBfRCxFVGU9bigoKT0+e19EPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNiIseDoiMiIseToiNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjYiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XV19KTt2YXIgQUQsTlRlPW4oKCk9PntBRD1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjIwIix4OiIxNCIseToiMiIscng6IjIifV1dfSk7dmFyICRELFBUZT1uKCgpPT57JEQ9W1sicGF0aCIse2Q6Ik0xNiA0SDlhMyAzIDAgMCAwLTIuODMgNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJhNCA0IDAgMCAxIDAgOEg2In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxMiIseTI6IjEyIn1dXX0pO3ZhciBERCxJVGU9bigoKT0+e0REPVtbInBhdGgiLHtkOiJtNCA1IDggOCJ9XSxbInBhdGgiLHtkOiJtMTIgNS04IDgifV0sWyJwYXRoIix7ZDoiTTIwIDE5aC00YzAtMS41LjQ0LTIgMS41LTIuNVMyMCAxNS4zMyAyMCAxNGMwLS40Ny0uMTctLjkzLS40OC0xLjI5YTIuMTEgMi4xMSAwIDAgMC0yLjYyLS40NGMtLjQyLjI0LS43NC42Mi0uOSAxLjA3In1dXX0pO3ZhciBFRCxGVGU9bigoKT0+e0VEPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTQgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNy42NTcgNi4zNDNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNy42NTcgMTcuNjU3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNi4zNDMgMTcuNjU3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNi4zNDMgNi4zNDNoLjAxIn1dXX0pO3ZhciBORCxPVGU9bigoKT0+e05EPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAzdjEifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjEifV0sWyJwYXRoIix7ZDoiTTMgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMSJ9XSxbInBhdGgiLHtkOiJtMTguMzY0IDUuNjM2LS43MDcuNzA3In1dLFsicGF0aCIse2Q6Im02LjM0MyAxNy42NTctLjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTUuNjM2IDUuNjM2LjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTE3LjY1NyAxNy42NTcuNzA3LjcwNyJ9XV19KTt2YXIgUEQsQlRlPW4oKCk9PntQRD1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQuODM3IDE2LjM4NWE2IDYgMCAxIDEtNy4yMjMtNy4yMjJjLjYyNC0uMTQ3Ljk3LjY2LjcxNSAxLjI0OGE0IDQgMCAwIDAgNS4yNiA1LjI1OWMuNTg5LS4yNTUgMS4zOTYuMDkgMS4yNDguNzE1In1dLFsicGF0aCIse2Q6Ik0xNiAxMmE0IDQgMCAwIDAtNC00In1dLFsicGF0aCIse2Q6Im0xOSA1LTEuMjU2IDEuMjU2In1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dXX0pO3ZhciBJRCxSVGU9bigoKT0+e0lEPVtbInBhdGgiLHtkOiJNMTAgMjF2LTEifV0sWyJwYXRoIix7ZDoiTTEwIDRWMyJ9XSxbInBhdGgiLHtkOiJNMTAgOWEzIDMgMCAwIDAgMCA2In1dLFsicGF0aCIse2Q6Im0xNCAyMCAxLjI1LTIuNUwxOCAxOCJ9XSxbInBhdGgiLHtkOiJtMTQgNCAxLjI1IDIuNUwxOCA2In1dLFsicGF0aCIse2Q6Im0xNyAyMS0zLTYgMS41LTNIMjIifV0sWyJwYXRoIix7ZDoibTE3IDMtMyA2IDEuNSAzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDEifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Im0zLjY0IDE4LjM2LjctLjcifV0sWyJwYXRoIix7ZDoibTQuMzQgNi4zNC0uNy0uNyJ9XV19KTt2YXIgRkQsSFRlPW4oKCk9PntGRD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Im0xNy42NiAxNy42NiAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJtNi4zNCAxNy42Ni0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dXX0pO3ZhciBPRCxxVGU9bigoKT0+e09EPVtbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicGF0aCIse2Q6Im00LjkzIDEwLjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxOGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgyIn1dLFsicGF0aCIse2Q6Im0xOS4wNyAxMC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIyIDIySDIifV0sWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xNiAxOGE0IDQgMCAwIDAtOCAwIn1dXX0pO3ZhciBCRCxWVGU9bigoKT0+e0JEPVtbInBhdGgiLHtkOiJNMTIgMTBWMiJ9XSxbInBhdGgiLHtkOiJtNC45MyAxMC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIgMThoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMThoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgMTAuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yMiAyMkgyIn1dLFsicGF0aCIse2Q6Im0xNiA2LTQgNC00LTQifV0sWyJwYXRoIix7ZDoiTTE2IDE4YTQgNCAwIDAgMC04IDAifV1dfSk7dmFyIFJELFVUZT1uKCgpPT57UkQ9W1sicGF0aCIse2Q6Im00IDE5IDgtOCJ9XSxbInBhdGgiLHtkOiJtMTIgMTktOC04In1dLFsicGF0aCIse2Q6Ik0yMCAxMmgtNGMwLTEuNS40NDItMiAxLjUtMi41UzIwIDguMzM0IDIwIDcuMDAyYzAtLjQ3Mi0uMTctLjkzLS40ODQtMS4yOWEyLjEwNSAyLjEwNSAwIDAgMC0yLjYxNy0uNDM2Yy0uNDIuMjM5LS43MzguNjE0LS44OTkgMS4wNiJ9XV19KTt2YXIgSEQsalRlPW4oKCk9PntIRD1bWyJwYXRoIix7ZDoiTTExIDE3YTQgNCAwIDAgMS04IDBWNWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMloifV0sWyJwYXRoIix7ZDoiTTE2LjcgMTNIMTlhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJINyJ9XSxbInBhdGgiLHtkOiJNIDcgMTdoLjAxIn1dLFsicGF0aCIse2Q6Im0xMSA4IDIuMy0yLjNhMi40IDIuNCAwIDAgMSAzLjQwNC4wMDRMMTguNiA3LjZhMi40IDIuNCAwIDAgMSAuMDI2IDMuNDM0TDkuOSAxOS44In1dXX0pO3ZhciBxRCxXVGU9bigoKT0+e3FEPVtbInBhdGgiLHtkOiJNMTAgMjFWM2g4In1dLFsicGF0aCIse2Q6Ik02IDE2aDkifV0sWyJwYXRoIix7ZDoiTTEwIDkuNWg3In1dXX0pO3ZhciBWRCxHVGU9bigoKT0+e1ZEPVtbInBhdGgiLHtkOiJNMTEgMTlINGEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDItMmg1In1dLFsicGF0aCIse2Q6Ik0xMyA1aDdhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC01In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoibTE4IDIyLTMtMyAzLTMifV0sWyJwYXRoIix7ZDoibTYgMiAzIDMtMyAzIn1dXX0pO3ZhciBVRCxZVGU9bigoKT0+e1VEPVtbInBhdGgiLHtkOiJtMTEgMTktNi02In1dLFsicGF0aCIse2Q6Im01IDIxLTItMiJ9XSxbInBhdGgiLHtkOiJtOCAxNi00IDQifV0sWyJwYXRoIix7ZDoiTTkuNSAxNy41IDIxIDZWM2gtM0w2LjUgMTQuNSJ9XV19KTt2YXIgakQsWlRlPW4oKCk9PntqRD1bWyJwb2x5bGluZSIse3BvaW50czoiMTQuNSAxNy41IDMgNiAzIDMgNiAzIDE3LjUgMTQuNSJ9XSxbImxpbmUiLHt4MToiMTMiLHgyOiIxOSIseTE6IjE5Iix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMjAiLHkxOiIxNiIseTI6IjIwIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIxIix5MToiMjEiLHkyOiIxOSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIxNC41IDYuNSAxOCAzIDIxIDMgMjEgNiAxNy41IDkuNSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjkiLHkxOiIxNCIseTI6IjE4In1dLFsibGluZSIse3gxOiI3Iix4MjoiNCIseTE6IjE3Iix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI1Iix5MToiMTkiLHkyOiIyMSJ9XV19KTt2YXIgV0QsWFRlPW4oKCk9PntXRD1bWyJwYXRoIix7ZDoibTE4IDIgNCA0In1dLFsicGF0aCIse2Q6Im0xNyA3IDMtMyJ9XSxbInBhdGgiLHtkOiJNMTkgOSA4LjcgMTkuM2MtMSAxLTIuNSAxLTMuNCAwbC0uNi0uNmMtMS0xLTEtMi41IDAtMy40TDE1IDUifV0sWyJwYXRoIix7ZDoibTkgMTEgNCA0In1dLFsicGF0aCIse2Q6Im01IDE5LTMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgNCA2IDYifV1dfSk7dmFyIEdELFFUZT1uKCgpPT57R0Q9W1sicGF0aCIse2Q6Ik05IDNINWEyIDIgMCAwIDAtMiAydjRtNi02aDEwYTIgMiAwIDAgMSAyIDJ2NE05IDN2MThtMCAwaDEwYTIgMiAwIDAgMCAyLTJWOU05IDIxSDVhMiAyIDAgMCAxLTItMlY5bTAgMGgxOCJ9XV19KTt2YXIgWUQsS1RlPW4oKCk9PntZRD1bWyJwYXRoIix7ZDoiTTEyIDIxdi02In1dLFsicGF0aCIse2Q6Ik0xMiA5VjMifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXX0pO3ZhciBaRCxKVGU9bigoKT0+e1pEPVtbInBhdGgiLHtkOiJNMTIgMTVWOSJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dfSk7dmFyIFhELGVfZT1uKCgpPT57WEQ9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTE2IDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDVoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTIxIDE5aC4wMSJ9XV19KTt2YXIgUUQsdF9lPW4oKCk9PntRRD1bWyJwYXRoIix7ZDoiTTE0IDE0djIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgOHYyIn1dLFsicGF0aCIse2Q6Ik0yIDE1aDgifV0sWyJwYXRoIix7ZDoiTTIgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkgyIn1dLFsicGF0aCIse2Q6Ik0yIDloOCJ9XSxbInBhdGgiLHtkOiJNMjIgMTVoLTQifV0sWyJwYXRoIix7ZDoiTTIyIDNoLTJhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIyIDloLTQifV0sWyJwYXRoIix7ZDoiTTUgM3YxOCJ9XV19KTt2YXIgS0QsYV9lPW4oKCk9PntLRD1bWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjEgOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNUgzIn1dXX0pO3ZhciBKRCxyX2U9bigoKT0+e0pEPVtbInBhdGgiLHtkOiJNMTQgMTBoMiJ9XSxbInBhdGgiLHtkOiJNMTUgMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTE1IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMiAxMGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMGgyIn1dLFsicGF0aCIse2Q6Ik0zIDE5aDE4In1dLFsicGF0aCIse2Q6Ik0zIDIydi02YTIgMiAxMzUgMCAxIDItMmgxNGEyIDIgNDUgMCAxIDIgMnY2In1dLFsicGF0aCIse2Q6Ik0zIDJ2MmEyIDIgNDUgMCAwIDIgMmgxNGEyIDIgMTM1IDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNOCAxMGgyIn1dLFsicGF0aCIse2Q6Ik05IDIydi04In1dLFsicGF0aCIse2Q6Ik05IDJ2NCJ9XV19KTt2YXIgZUUsaV9lPW4oKCk9PntlRT1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dXX0pO3ZhciB0RSxvX2U9bigoKT0+e3RFPVtbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjE2YTIgMiAwIDAgMS0yIDJoLTIuNCJ9XSxbInBhdGgiLHtkOiJNOCAxOGguMDEifV1dfSk7dmFyIGFFLHNfZT1uKCgpPT57YUU9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyLjAxIix5MToiMTgiLHkyOiIxOCJ9XV19KTt2YXIgckUsbl9lPW4oKCk9PntyRT1bWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjciLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoMTAifV0sWyJwYXRoIix7ZDoibTMuNDYgMTAuNTQgNy4wOC03LjA4In1dXX0pO3ZhciBpRSxsX2U9bigoKT0+e2lFPVtbInBhdGgiLHtkOiJNMTIuNTg2IDIuNTg2QTIgMiAwIDAgMCAxMS4xNzIgMkg0YTIgMiAwIDAgMC0yIDJ2Ny4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsOC43MDQgOC43MDRhMi40MjYgMi40MjYgMCAwIDAgMy40MiAwbDYuNTgtNi41OGEyLjQyNiAyLjQyNiAwIDAgMCAwLTMuNDJ6In1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV19KTt2YXIgb0UsY19lPW4oKCk9PntvRT1bWyJwYXRoIix7ZDoiTTEzLjE3MiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNi43MSA2LjcxYTIuNCAyLjQgMCAwIDEgMCAzLjQwOGwtNC41OTIgNC41OTJhMi40IDIuNCAwIDAgMS0zLjQwOCAwbC02LjcxLTYuNzFBMiAyIDAgMCAxIDYgOS4xNzJWM2ExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNMiA3djYuMTcyYTIgMiAwIDAgMCAuNTg2IDEuNDE0bDYuNzEgNi43MWEyLjQgMi40IDAgMCAwIDMuMTkxLjE5MyJ9XSxbImNpcmNsZSIse2N4OiIxMC41IixjeToiNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXX0pO3ZhciBzRSxkX2U9bigoKT0+e3NFPVtbInBhdGgiLHtkOiJNNCA0djE2In1dXX0pO3ZhciBuRSxmX2U9bigoKT0+e25FPVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV1dfSk7dmFyIGxFLHVfZT1uKCgpPT57bEU9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTQgNHYxNiJ9XV19KTt2YXIgY0UscF9lPW4oKCk9PntjRT1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0djE2In1dXX0pO3ZhciBkRSxoX2U9bigoKT0+e2RFPVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE0IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE5IDR2MTYifV0sWyJwYXRoIix7ZDoiTTIyIDYgMiAxOCJ9XV19KTt2YXIgZkUsbV9lPW4oKCk9PntmRT1bWyJjaXJjbGUiLHtjeDoiMTciLGN5OiI0IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xNS41OSA1LjQxIDUuNDEgMTUuNTkifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE3IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnMtNC05LTEuNS0xMS41UzIyIDEyIDIyIDEyIn1dXX0pO3ZhciB1RSxnX2U9bigoKT0+e3VFPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dfSk7dmFyIHBFLHhfZT1uKCgpPT57cEU9W1sicGF0aCIse2Q6Im0xMC4wNjUgMTIuNDkzLTYuMTggMS4zMThhLjkzNC45MzQgMCAwIDEtMS4xMDgtLjcwMmwtLjUzNy0yLjE1YTEuMDcgMS4wNyAwIDAgMSAuNjkxLTEuMjY1bDEzLjUwNC00LjQ0In1dLFsicGF0aCIse2Q6Im0xMy41NiAxMS43NDcgNC4zMzItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTYgMjEtMy4xMDUtNi4yMSJ9XSxbInBhdGgiLHtkOiJNMTYuNDg1IDUuOTRhMiAyIDAgMCAxIDEuNDU1LTIuNDI1bDEuMDktLjI3MmExIDEgMCAwIDEgMS4yMTIuNzI3bDEuNTE1IDYuMDZhMSAxIDAgMCAxLS43MjcgMS4yMTNsLTEuMDkuMjcyYTIgMiAwIDAgMS0yLjQyNS0xLjQ1NXoifV0sWyJwYXRoIix7ZDoibTYuMTU4IDguNjMzIDEuMTE0IDQuNDU2In1dLFsicGF0aCIse2Q6Im04IDIxIDMuMTA1LTYuMjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XV19KTt2YXIgaEUsYl9lPW4oKCk9PntoRT1bWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjQiLHI6IjIifV0sWyJwYXRoIix7ZDoibTE0IDUgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTAgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRIN2wtNSA4aDIwWiJ9XSxbInBhdGgiLHtkOiJNOCAxNHY4In1dLFsicGF0aCIse2Q6Im05IDE0IDUgOCJ9XV19KTt2YXIgbUUsdl9lPW4oKCk9PnttRT1bWyJwYXRoIix7ZDoiTTMuNSAyMSAxNCAzIn1dLFsicGF0aCIse2Q6Ik0yMC41IDIxIDEwIDMifV0sWyJwYXRoIix7ZDoiTTE1LjUgMjEgMTIgMTVsLTMuNSA2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDIwIn1dXX0pO3ZhciBibCx5X2U9bigoKT0+e2JsPVtbInBhdGgiLHtkOiJNMjEgNyA2LjgyIDIxLjE4YTIuODMgMi44MyAwIDAgMS0zLjk5LS4wMWEyLjgzIDIuODMgMCAwIDEgMC00TDE3IDMifV0sWyJwYXRoIix7ZDoibTE2IDIgNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAxNkg0In1dXX0pO3ZhciBnRSx3X2U9bigoKT0+e2dFPVtbInBhdGgiLHtkOiJNMTIgMTloOCJ9XSxbInBhdGgiLHtkOiJtNCAxNyA2LTYtNi02In1dXX0pO3ZhciB4RSxNX2U9bigoKT0+e3hFPVtbInBhdGgiLHtkOiJNMTQuNSAydjE3LjVjMCAxLjQtMS4xIDIuNS0yLjUgMi41Yy0xLjQgMC0yLjUtMS4xLTIuNS0yLjVWMiJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XSxbInBhdGgiLHtkOiJNMTQuNSAxNmgtNSJ9XV19KTt2YXIgYkUsel9lPW4oKCk9PntiRT1bWyJwYXRoIix7ZDoiTTkgMnYxNy41QTIuNSAyLjUgMCAwIDEgNi41IDIyQTIuNSAyLjUgMCAwIDEgNCAxOS41VjIifV0sWyJwYXRoIix7ZDoiTTIwIDJ2MTcuNWEyLjUgMi41IDAgMCAxLTIuNSAyLjVhMi41IDIuNSAwIDAgMS0yLjUtMi41VjIifV0sWyJwYXRoIix7ZDoiTTMgMmg3In1dLFsicGF0aCIse2Q6Ik0xNCAyaDcifV0sWyJwYXRoIix7ZDoiTTkgMTZINCJ9XSxbInBhdGgiLHtkOiJNMjAgMTZoLTUifV1dfSk7dmFyIHZsLGtfZT1uKCgpPT57dmw9W1sicGF0aCIse2Q6Ik0yMSA1SDMifV0sWyJwYXRoIix7ZDoiTTE3IDEySDcifV0sWyJwYXRoIix7ZDoiTTE5IDE5SDUifV1dfSk7dmFyIHlsLFNfZT1uKCgpPT57eWw9W1sicGF0aCIse2Q6Ik0yMSA1SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEySDkifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDcifV1dfSk7dmFyIHdsLENfZT1uKCgpPT57d2w9W1sicGF0aCIse2Q6Ik0zIDVoMTgifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV1dfSk7dmFyIEhpLExfZT1uKCgpPT57SGk9W1sicGF0aCIse2Q6Ik0yMSA1SDMifV0sWyJwYXRoIix7ZDoiTTE1IDEySDMifV0sWyJwYXRoIix7ZDoiTTE3IDE5SDMifV1dfSk7dmFyIHZFLFRfZT1uKCgpPT57dkU9W1sicGF0aCIse2Q6Ik0xMiAyMGgtMWEyIDIgMCAwIDEtMi0yIDIgMiAwIDAgMS0yIDJINiJ9XSxbInBhdGgiLHtkOiJNMTMgOGg3YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC03In1dLFsicGF0aCIse2Q6Ik01IDE2SDRhMiAyIDAgMCAxLTItMnYtNGEyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTYgNGgxYTIgMiAwIDAgMSAyIDIgMiAyIDAgMCAxIDItMmgxIn1dLFsicGF0aCIse2Q6Ik05IDZ2MTIifV1dfSk7dmFyIHlFLF9fZT1uKCgpPT57eUU9W1sicGF0aCIse2Q6Ik0xNyAyMmgtMWE0IDQgMCAwIDEtNC00VjZhNCA0IDAgMCAxIDQtNGgxIn1dLFsicGF0aCIse2Q6Ik03IDIyaDFhNCA0IDAgMCAwIDQtNHYtMSJ9XSxbInBhdGgiLHtkOiJNNyAyaDFhNCA0IDAgMCAxIDQgNHYxIn1dXX0pO3ZhciB3RSxBX2U9bigoKT0+e3dFPVtbInBhdGgiLHtkOiJNMTcgNUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkg4In1dLFsicGF0aCIse2Q6Ik0yMSAxOUg4In1dLFsicGF0aCIse2Q6Ik0zIDEydjcifV1dfSk7dmFyIE1sLCRfZT1uKCgpPT57TWw9W1sicGF0aCIse2Q6Ik0xNSA1aDYifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoibTMgMTIgMy41NTMtNy43MjRhLjUuNSAwIDAgMSAuODk0IDBMMTEgMTIifV0sWyJwYXRoIix7ZDoiTTMuOTIgMTBoNi4xNiJ9XV19KTt2YXIgTUUsRF9lPW4oKCk9PntNRT1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTlIMyJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE1IixyOiIzIn1dLFsicGF0aCIse2Q6Im0yMSAxOS0xLjktMS45In1dXX0pO3ZhciB6bCxFX2U9bigoKT0+e3psPVtbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTIxIDl2MSJ9XSxbInBhdGgiLHtkOiJNMyAxNHYxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNNyAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNNyAxNmg2In1dLFsicGF0aCIse2Q6Ik03IDhoOCJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik05IDNoMSJ9XV19KTt2YXIgekUsTl9lPW4oKCk9Pnt6RT1bWyJwYXRoIix7ZDoiTTIgMTBzMy0zIDMtOCJ9XSxbInBhdGgiLHtkOiJNMjIgMTBzLTMtMy0zLTgifV0sWyJwYXRoIix7ZDoiTTEwIDJjMCA0LjQtMy42IDgtOCA4In1dLFsicGF0aCIse2Q6Ik0xNCAyYzAgNC40IDMuNiA4IDggOCJ9XSxbInBhdGgiLHtkOiJNMiAxMHMyIDIgMiA1In1dLFsicGF0aCIse2Q6Ik0yMiAxMHMtMiAyLTIgNSJ9XSxbInBhdGgiLHtkOiJNOCAxNWg4In1dLFsicGF0aCIse2Q6Ik0yIDIydi0xYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEifV0sWyJwYXRoIix7ZDoiTTE0IDIydi0xYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEifV1dfSk7dmFyIGtsLFBfZT1uKCgpPT57a2w9W1sicGF0aCIse2Q6Im0xNiAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDE0LjVhMSAxIDAgMCAxIDAgN0gxMyJ9XSxbInBhdGgiLHtkOiJNMyAxOWg2In1dLFsicGF0aCIse2Q6Ik0zIDVoMTgifV1dfSk7dmFyIGtFLElfZT1uKCgpPT57a0U9W1sicGF0aCIse2Q6Im0xMCAyMC0xLjI1LTIuNUw2IDE4In1dLFsicGF0aCIse2Q6Ik0xMCA0IDguNzUgNi41IDYgNiJ9XSxbInBhdGgiLHtkOiJNMTAuNTg1IDE1SDEwIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDYuNUwxMCA5In1dLFsicGF0aCIse2Q6Ik0yMCAxNC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMHoifV0sWyJwYXRoIix7ZDoibTQgMTAgMS41IDJMNCAxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMSAzLTYtMS41LTMifV0sWyJwYXRoIix7ZDoibTcgMyAzIDZoMiJ9XV19KTt2YXIgU0UsRl9lPW4oKCk9PntTRT1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOGE0IDQgMCAwIDAtMS42NDUgNy42NDcifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6In1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Im02LjM0IDE3LjY2LTEuNDEgMS40MSJ9XV19KTt2YXIgQ0UsT19lPW4oKCk9PntDRT1bWyJwYXRoIix7ZDoiTTE0IDR2MTAuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDBaIn1dXX0pO3ZhciBMRSxCX2U9bigoKT0+e0xFPVtbInBhdGgiLHtkOiJNOSAxOC4xMiAxMCAxNEg0LjE3YTIgMiAwIDAgMS0xLjkyLTIuNTZsMi4zMy04QTIgMiAwIDAgMSA2LjUgMkgyMGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi43NmEyIDIgMCAwIDAtMS43OSAxLjExTDEyIDIyYTMuMTMgMy4xMyAwIDAgMS0zLTMuODhaIn1dLFsicGF0aCIse2Q6Ik0xNyAxNFYyIn1dXX0pO3ZhciBURSxSX2U9bigoKT0+e1RFPVtbInBhdGgiLHtkOiJNMTUgNS44OCAxNCAxMGg1LjgzYTIgMiAwIDAgMSAxLjkyIDIuNTZsLTIuMzMgOEEyIDIgMCAwIDEgMTcuNSAyMkg0YTIgMiAwIDAgMS0yLTJ2LThhMiAyIDAgMCAxIDItMmgyLjc2YTIgMiAwIDAgMCAxLjc5LTEuMTFMMTIgMmEzLjEzIDMuMTMgMCAwIDEgMyAzLjg4WiJ9XSxbInBhdGgiLHtkOiJNNyAxMHYxMiJ9XV19KTt2YXIgX0UsSF9lPW4oKCk9PntfRT1bWyJwYXRoIix7ZDoiTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV19KTt2YXIgQUUscV9lPW4oKCk9PntBRT1bWyJwYXRoIix7ZDoiTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloifV0sWyJwYXRoIix7ZDoiTTkgMTJoNiJ9XV19KTt2YXIgJEUsVl9lPW4oKCk9PnskRT1bWyJwYXRoIix7ZDoiTTIgOWEzIDMgMCAxIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDEgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloifV0sWyJwYXRoIix7ZDoiTTkgOWguMDEifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dfSk7dmFyIERFLFVfZT1uKCgpPT57REU9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV0sWyJwYXRoIix7ZDoiTTEyIDl2NiJ9XV19KTt2YXIgRUUsal9lPW4oKCk9PntFRT1bWyJwYXRoIix7ZDoiTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloifV0sWyJwYXRoIix7ZDoibTkuNSAxNC41IDUtNSJ9XV19KTt2YXIgTkUsV19lPW4oKCk9PntORT1bWyJwYXRoIix7ZDoiTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloifV0sWyJwYXRoIix7ZDoibTkuNSAxNC41IDUtNSJ9XSxbInBhdGgiLHtkOiJtOS41IDkuNSA1IDUifV1dfSk7dmFyIFBFLEdfZT1uKCgpPT57UEU9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik0xMyA1djIifV0sWyJwYXRoIix7ZDoiTTEzIDE3djIifV0sWyJwYXRoIix7ZDoiTTEzIDExdjIifV1dfSk7dmFyIElFLFlfZT1uKCgpPT57SUU9W1sicGF0aCIse2Q6Ik0xMC41IDE3aDEuMjI3YTIgMiAwIDAgMCAxLjM0NS0uNTJMMTggMTIifV0sWyJwYXRoIix7ZDoibTEyIDEzLjUgMy43NS41In1dLFsicGF0aCIse2Q6Im0zLjE3MyA4LjE4IDExLTVhMiAyIDAgMCAxIDIuNjQ3Ljk5M0wxOC41NiA4In1dLFsicGF0aCIse2Q6Ik02IDEwVjgifV0sWyJwYXRoIix7ZDoiTTYgMTR2MSJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicmVjdCIse3g6IjIiLHk6IjgiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxMyIscng6IjIifV1dfSk7dmFyIEZFLFpfZT1uKCgpPT57RkU9W1sicGF0aCIse2Q6Im0zLjE3MyA4LjE4IDExLTVhMiAyIDAgMCAxIDIuNjQ3Ljk5M0wxOC41NiA4In1dLFsicGF0aCIse2Q6Ik02IDEwVjgifV0sWyJwYXRoIix7ZDoiTTYgMTR2MSJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicmVjdCIse3g6IjIiLHk6IjgiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxMyIscng6IjIifV1dfSk7dmFyIE9FLFhfZT1uKCgpPT57T0U9W1sicGF0aCIse2Q6Ik0xMCAyaDQifV0sWyJwYXRoIix7ZDoiTTEyIDE0di00In1dLFsicGF0aCIse2Q6Ik00IDEzYTggOCAwIDAgMSA4LTcgOCA4IDAgMSAxLTUuMyAxNEw0IDE3LjYifV0sWyJwYXRoIix7ZDoiTTkgMTdINHY1In1dXX0pO3ZhciBCRSxRX2U9bigoKT0+e0JFPVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Ik00LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjcifV0sWyJwYXRoIix7ZDoiTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYtMiJ9XV19KTt2YXIgUkUsS19lPW4oKCk9PntSRT1bWyJsaW5lIix7eDE6IjEwIix4MjoiMTQiLHkxOiIyIix5MjoiMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxNSIseTE6IjE0Iix5MjoiMTEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNCIscjoiOCJ9XV19KTt2YXIgSEUsSl9lPW4oKCk9PntIRT1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIzIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjcifV1dfSk7dmFyIHFFLGVBZT1uKCgpPT57cUU9W1siY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjMifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiNyJ9XV19KTt2YXIgVkUsdEFlPW4oKCk9PntWRT1bWyJwYXRoIix7ZDoiTTcgMTJoMTNhMSAxIDAgMCAxIDEgMSA1IDUgMCAwIDEtNSA1aC0uNTk4YS41LjUgMCAwIDAtLjQyNC43NjVsMS41NDQgMi40N2EuNS41IDAgMCAxLS40MjQuNzY1SDUuNDAyYS41LjUgMCAwIDEtLjQyNC0uNzY1TDcgMTgifV0sWyJwYXRoIix7ZDoiTTggMThhNSA1IDAgMCAxLTUtNVY0YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjgifV1dfSk7dmFyIFVFLGFBZT1uKCgpPT57VUU9W1sicGF0aCIse2Q6Ik0xMCAxNWg0In1dLFsicGF0aCIse2Q6Im0xNC44MTcgMTAuOTk1LS45NzEtMS40NSAxLjAzNC0xLjIzMmEyIDIgMCAwIDAtMi4wMjUtMy4yMzhsLTEuODIuMzY0TDkuOTEgMy44ODVhMiAyIDAgMCAwLTMuNjI1Ljc0OEw2LjE0MSA2LjU1bC0xLjcyNS40MjZhMiAyIDAgMCAwLS4xOSAzLjc1NmwuNjU3LjI3In1dLFsicGF0aCIse2Q6Im0xOC44MjIgMTAuOTk1IDIuMjYtNS4zOGExIDEgMCAwIDAtLjU1Ny0xLjMxOEwxNi45NTQgMi45YTEgMSAwIDAgMC0xLjI4MS41MzNsLS45MjQgMi4xMjIifV0sWyJwYXRoIix7ZDoiTTQgMTIuMDA2QTEgMSAwIDAgMSA0Ljk5NCAxMUgxOWExIDEgMCAwIDEgMSAxdjdhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ6In1dXX0pO3ZhciBqRSxyQWU9bigoKT0+e2pFPVtbInBhdGgiLHtkOiJNMTYgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgNmEyIDIgMCAwIDEgMS40MTQuNTg2bDQgNEEyIDIgMCAwIDEgMjIgMTJ2N2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtN2EyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LTRBMiAyIDAgMCAxIDggNnoifV0sWyJwYXRoIix7ZDoiTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMnY0In1dXX0pO3ZhciBXRSxpQWU9bigoKT0+e1dFPVtbInBhdGgiLHtkOiJNMjEgNEgzIn1dLFsicGF0aCIse2Q6Ik0xOCA4SDYifV0sWyJwYXRoIix7ZDoiTTE5IDEySDkifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC02In1dLFsicGF0aCIse2Q6Ik0xMSAyMEg5In1dXX0pO3ZhciBHRSxvQWU9bigoKT0+e0dFPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMSIscng6IjMiLHJ5OiIyIn1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjEyLjUiLHJ4OiIxMCIscnk6IjguNSJ9XV19KTt2YXIgWUUsc0FlPW4oKCk9PntZRT1bWyJwYXRoIix7ZDoiTTEyIDIwdi02In1dLFsicGF0aCIse2Q6Ik0xOS42NTYgMTRIMjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNOS42NTYgNEgyMGEyIDIgMCAwIDEgMiAydjEwLjM0NCJ9XV19KTt2YXIgWkUsbkFlPW4oKCk9PntaRT1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTYifV1dfSk7dmFyIFhFLGxBZT1uKCgpPT57WEU9W1sicGF0aCIse2Q6Ik0xOC4yIDEyLjI3IDIwIDZINGwxLjggNi4yN2ExIDEgMCAwIDAgLjk1LjczaDEwLjVhMSAxIDAgMCAwIC45Ni0uNzNaIn1dLFsicGF0aCIse2Q6Ik04IDEzdjkifV0sWyJwYXRoIix7ZDoiTTE2IDIydi05In1dLFsicGF0aCIse2Q6Im05IDYgMSA3In1dLFsicGF0aCIse2Q6Im0xNSA2LTEgNyJ9XSxbInBhdGgiLHtkOiJNMTIgNlYyIn1dLFsicGF0aCIse2Q6Ik0xMyAyaC0yIn1dXX0pO3ZhciBRRSxjQWU9bigoKT0+e1FFPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyJ9XSxbInBhdGgiLHtkOiJNMTkgOFY1YzAtLjYtLjQtMS0xLTFoLTNhMSAxIDAgMCAwLTEgMXYzIn1dXX0pO3ZhciBLRSxkQWU9bigoKT0+e0tFPVtbInBhdGgiLHtkOiJNMTYuMDUgMTAuOTY2YTUgMi41IDAgMCAxLTguMSAwIn1dLFsicGF0aCIse2Q6Im0xNi45MjMgMTQuMDQ5IDQuNDggMi4wNGExIDEgMCAwIDEgLjAwMSAxLjgzMWwtOC41NzQgMy45YTIgMiAwIDAgMS0xLjY2IDBsLTguNTc0LTMuOTFhMSAxIDAgMCAxIDAtMS44M2w0LjQ4NC0yLjA0In1dLFsicGF0aCIse2Q6Ik0xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHoifV0sWyJwYXRoIix7ZDoiTTkuMTk0IDYuNTdhNSAyLjUgMCAwIDAgNS42MSAwIn1dXX0pO3ZhciBKRSxmQWU9bigoKT0+e0pFPVtbInBhdGgiLHtkOiJtMTAgMTEgMTEgLjlhMSAxIDAgMCAxIC44IDEuMWwtLjY2NSA0LjE1OGExIDEgMCAwIDEtLjk4OC44NDJIMjAifV0sWyJwYXRoIix7ZDoiTTE2IDE4aC01In1dLFsicGF0aCIse2Q6Ik0xOCA1YTEgMSAwIDAgMC0xIDF2NS41NzMifV0sWyJwYXRoIix7ZDoiTTMgNGg4LjEyOWExIDEgMCAwIDEgLjk5Ljg2M0wxMyAxMS4yNDYifV0sWyJwYXRoIix7ZDoiTTQgMTFWNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTAuMVY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE1IixyOiI1In1dXX0pO3ZhciBlTix1QWU9bigoKT0+e2VOPVtbInBhdGgiLHtkOiJNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwIn1dLFsicGF0aCIse2Q6Ik0xNSA2Ljh2MS40YTMgMi44IDAgMSAxLTYgMFY2LjgifV0sWyJwYXRoIix7ZDoiTTEwIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOWE0IDQgMCAwIDEtNC00di0zYTYgNiAwIDEgMSAxMiAwdjNhNCA0IDAgMCAxLTQgNFoifV0sWyJwYXRoIix7ZDoibTkgMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAyIDMifV1dfSk7dmFyIHROLHBBZT1uKCgpPT57dE49W1sicGF0aCIse2Q6Ik04IDMuMVY3YTQgNCAwIDAgMCA4IDBWMy4xIn1dLFsicGF0aCIse2Q6Im05IDE1LTEtMSJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgMS0xIn1dLFsicGF0aCIse2Q6Ik05IDE5Yy0yLjggMC01LTIuMi01LTV2LTRhOCA4IDAgMCAxIDE2IDB2NGMwIDIuOC0yLjIgNS01IDVaIn1dLFsicGF0aCIse2Q6Im04IDE5LTIgMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAzIn1dXX0pO3ZhciBhTixoQWU9bigoKT0+e2FOPVtbInBhdGgiLHtkOiJNMiAxNyAxNyAyIn1dLFsicGF0aCIse2Q6Im0yIDE0IDggOCJ9XSxbInBhdGgiLHtkOiJtNSAxMSA4IDgifV0sWyJwYXRoIix7ZDoibTggOCA4IDgifV0sWyJwYXRoIix7ZDoibTExIDUgOCA4In1dLFsicGF0aCIse2Q6Im0xNCAyIDggOCJ9XSxbInBhdGgiLHtkOiJNNyAyMiAyMiA3In1dXX0pO3ZhciBTbCxtQWU9bigoKT0+e1NsPVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDExaDE2In1dLFsicGF0aCIse2Q6Ik0xMiAzdjgifV0sWyJwYXRoIix7ZDoibTggMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xOCAyMi0yLTMifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV1dfSk7dmFyIHJOLGdBZT1uKCgpPT57ck49W1sicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNCAyMGgtNCJ9XSxbInBhdGgiLHtkOiJNMTggMmg0djQifV0sWyJwYXRoIix7ZDoibTIgMiA3LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTIgNS4zNTVWMmgzLjM1NyJ9XSxbInBhdGgiLHtkOiJtMjIgMi03LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTggNSA1IDgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV19KTt2YXIgaU4seEFlPW4oKCk9PntpTj1bWyJwYXRoIix7ZDoiTTEwIDExdjYifV0sWyJwYXRoIix7ZDoiTTE0IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNMyA2aDE4In1dLFsicGF0aCIse2Q6Ik04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIn1dXX0pO3ZhciBvTixiQWU9bigoKT0+e29OPVtbInBhdGgiLHtkOiJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Ik0zIDZoMTgifV0sWyJwYXRoIix7ZDoiTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIifV1dfSk7dmFyIHNOLHZBZT1uKCgpPT57c049W1sicGF0aCIse2Q6Ik04IDE5YTQgNCAwIDAgMS0yLjI0LTcuMzJBMy41IDMuNSAwIDAgMSA5IDYuMDNWNmEzIDMgMCAxIDEgNiAwdi4wNGEzLjUgMy41IDAgMCAxIDMuMjQgNS42NUE0IDQgMCAwIDEgMTYgMTlaIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dXX0pO3ZhciBDbCx5QWU9bigoKT0+e0NsPVtbInBhdGgiLHtkOiJNMTMgOGMwLTIuNzYtMi40Ni01LTUuNS01UzIgNS4yNCAyIDhoMmwxLTEgMSAxaDQifV0sWyJwYXRoIix7ZDoiTTEzIDcuMTRBNS44MiA1LjgyIDAgMCAxIDE2LjUgNmMzLjA0IDAgNS41IDIuMjQgNS41IDVoLTNsLTEtMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTUuODkgOS43MWMtMi4xNSAyLjE1LTIuMyA1LjQ3LS4zNSA3LjQzbDQuMjQtNC4yNS43LS43LjcxLS43MSAyLjEyLTIuMTJjLTEuOTUtMS45Ni01LjI3LTEuOC03LjQyLjM1In1dLFsicGF0aCIse2Q6Ik0xMSAxNS41Yy41IDIuNS0uMTcgNC41LTEgNi41aDRjMi01LjUtLjUtMTItMS0xNCJ9XV19KTt2YXIgbk4sd0FlPW4oKCk9PntuTj1bWyJwYXRoIix7ZDoibTE3IDE0IDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdINC43YTEgMSAwIDAgMS0uNy0xLjdMNyAxNGgtLjNhMSAxIDAgMCAxLS43LTEuN0w5IDloLS4yQTEgMSAwIDAgMSA4IDcuM0wxMiAzbDQgNC4zYTEgMSAwIDAgMS0uOCAxLjdIMTVsMyAzLjNhMSAxIDAgMCAxLS43IDEuN0gxN1oifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0zIn1dXX0pO3ZhciBsTixNQWU9bigoKT0+e2xOPVtbInBhdGgiLHtkOiJNMTAgMTB2LjJBMyAzIDAgMCAxIDguOSAxNkg1YTMgMyAwIDAgMS0xLTUuOFYxMGEzIDMgMCAwIDEgNiAwWiJ9XSxbInBhdGgiLHtkOiJNNyAxNnY2In1dLFsicGF0aCIse2Q6Ik0xMyAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOWg4LjNhMSAxIDAgMCAwIC43LTEuN0wxOCAxNGguM2ExIDEgMCAwIDAgLjctMS43TDE2IDloLjJhMSAxIDAgMCAwIC44LTEuN0wxMyAzbC0xLjQgMS41In1dXX0pO3ZhciBjTix6QWU9bigoKT0+e2NOPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMyIsaGVpZ2h0OiI5Iix4OiI3Iix5OiI3In1dLFsicmVjdCIse3dpZHRoOiIzIixoZWlnaHQ6IjUiLHg6IjE0Iix5OiI3In1dXX0pO3ZhciBkTixrQWU9bigoKT0+e2ROPVtbInBhdGgiLHtkOiJNMTYgMTdoNnYtNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTctOC41LTguNS01IDVMMiA3In1dXX0pO3ZhciBmTixTQWU9bigoKT0+e2ZOPVtbInBhdGgiLHtkOiJNMTQuODI4IDE0LjgyOCAyMSAyMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDktNC00LTYgNiJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dXX0pO3ZhciB1TixDQWU9bigoKT0+e3VOPVtbInBhdGgiLHtkOiJNMTYgN2g2djYifV0sWyJwYXRoIix7ZDoibTIyIDctOC41IDguNS01LTVMMiAxNyJ9XV19KTt2YXIgTGwsTEFlPW4oKCk9PntMbD1bWyJwYXRoIix7ZDoibTIxLjczIDE4LTgtMTRhMiAyIDAgMCAwLTMuNDggMGwtOCAxNEEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS43My0zIn1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV19KTt2YXIgcE4sVEFlPW4oKCk9PntwTj1bWyJwYXRoIix7ZDoiTTEwLjE3IDQuMTkzYTIgMiAwIDAgMSAzLjY2Ni4wMTMifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDIifV0sWyJwYXRoIix7ZDoibTE1Ljg3NCA3Ljc0MyAxIDEuNzMyIn1dLFsicGF0aCIse2Q6Im0xOC44NDkgMTIuOTUyIDEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTIxLjgyNCAxOC4xOGEyIDIgMCAwIDEtMS44MzUgMi44MjQifV0sWyJwYXRoIix7ZDoiTTQuMDI0IDIxYTIgMiAwIDAgMS0xLjgzOS0yLjgzOSJ9XSxbInBhdGgiLHtkOiJtNS4xMzYgMTIuOTUyLTEgMS43MzIifV0sWyJwYXRoIix7ZDoiTTggMjFoMiJ9XSxbInBhdGgiLHtkOiJtOC4xMDIgNy43NDMtMSAxLjczMiJ9XV19KTt2YXIgaE4sX0FlPW4oKCk9PntoTj1bWyJwYXRoIix7ZDoiTTIyIDE4YTIgMiAwIDAgMS0yIDJIM2MtMS4xIDAtMS4zLS42LS40LTEuM0wyMC40IDQuM2MuOS0uNyAxLjYtLjQgMS42LjdaIn1dXX0pO3ZhciBtTixBQWU9bigoKT0+e21OPVtbInBhdGgiLHtkOiJNMTMuNzMgNGEyIDIgMCAwIDAtMy40NiAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIn1dXX0pO3ZhciBnTiwkQWU9bigoKT0+e2dOPVtbInBhdGgiLHtkOiJNMTAgMTQuNjZ2MS42MjZhMiAyIDAgMCAxLS45NzYgMS42OTZBNSA1IDAgMCAwIDcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xNCAxNC42NnYxLjYyNmEyIDIgMCAwIDAgLjk3NiAxLjY5NkE1IDUgMCAwIDEgMTcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xOCA5aDEuNWExIDEgMCAwIDAgMC01SDE4In1dLFsicGF0aCIse2Q6Ik00IDIyaDE2In1dLFsicGF0aCIse2Q6Ik02IDlhNiA2IDAgMCAwIDEyIDBWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXoifV0sWyJwYXRoIix7ZDoiTTYgOUg0LjVhMSAxIDAgMCAxIDAtNUg2In1dXX0pO3ZhciB4TixEQWU9bigoKT0+e3hOPVtbInBhdGgiLHtkOiJNMTQgMTlWN2EyIDIgMCAwIDAtMi0ySDkifV0sWyJwYXRoIix7ZDoiTTE1IDE5SDkifV0sWyJwYXRoIix7ZDoiTTE5IDE5aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MkwxOC4zIDkuMzhhMSAxIDAgMCAwLS43OC0uMzhIMTQifV0sWyJwYXRoIix7ZDoiTTIgMTN2NWExIDEgMCAwIDAgMSAxaDIifV0sWyJwYXRoIix7ZDoiTTQgMyAyLjE1IDUuMTVhLjQ5NS40OTUgMCAwIDAgLjM1Ljg2aDIuMTVhLjQ3LjQ3IDAgMCAxIC4zNS44NkwzIDkuMDIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTkiLHI6IjIifV1dfSk7dmFyIGJOLEVBZT1uKCgpPT57Yk49W1sicGF0aCIse2Q6Ik0xNCAxOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFoMiJ9XSxbInBhdGgiLHtkOiJNMTUgMThIOSJ9XSxbInBhdGgiLHtkOiJNMTkgMThoMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyNGwtMy40OC00LjM1QTEgMSAwIDAgMCAxNy41MiA4SDE0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXX0pO3ZhciB2TixOQWU9bigoKT0+e3ZOPVtbInBhdGgiLHtkOiJNMTUgNCA1IDkifV0sWyJwYXRoIix7ZDoibTE1IDguNS0xMCA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmE5IDkgMCAwIDEtOSA5VjMifV1dfSk7dmFyIHlOLFBBZT1uKCgpPT57eU49W1sicGF0aCIse2Q6Ik0xMCAxMi4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDh2NGE4IDggMCAwIDEtMS4wNyA0In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV19KTt2YXIgd04sSUFlPW4oKCk9Pnt3Tj1bWyJwYXRoIix7ZDoibTEyIDEwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTggOCAwIDEgMC0xNiAwdjNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNsMi00aDRaIn1dLFsicGF0aCIse2Q6Ik00LjgyIDcuOSA4IDEwIn1dLFsicGF0aCIse2Q6Ik0xNS4xOCA3LjkgMTIgMTAifV0sWyJwYXRoIix7ZDoiTTE2LjkzIDEwSDIwYTIgMiAwIDAgMSAwIDRIMiJ9XV19KTt2YXIgTU4sRkFlPW4oKCk9PntNTj1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIFRsLE9BZT1uKCgpPT57VGw9W1sicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dfSk7dmFyIHpOLEJBZT1uKCgpPT57ek49W1sicGF0aCIse2Q6Im0xNyAyLTUgNS01LTUifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE1Iix4OiIyIix5OiI3IixyeDoiMiJ9XV19KTt2YXIga04sUkFlPW4oKCk9PntrTj1bWyJwYXRoIix7ZDoiTTIxIDJIM3YxNmg1djRsNC00aDVsNC00VjJ6bS0xMCA5VjdtNSA0VjcifV1dfSk7dmFyIFNOLEhBZT1uKCgpPT57U049W1sicGF0aCIse2Q6Ik0yMiA0cy0uNyAyLjEtMiAzLjRjMS42IDEwLTkuNCAxNy4zLTE4IDExLjYgMi4yLjEgNC40LS42IDYtMkMzIDE1LjUuNSA5LjYgMyA1YzIuMiAyLjYgNS42IDQuMSA5IDQtLjktNC4yIDQtNi42IDctMy44IDEuMSAwIDMtMS4yIDMtMS4yeiJ9XV19KTt2YXIgQ04scUFlPW4oKCk9PntDTj1bWyJwYXRoIix7ZDoiTTE0IDE2LjVhLjUuNSAwIDAgMCAuNS41aC41YTIgMiAwIDAgMSAwIDRIOWEyIDIgMCAwIDEgMC00aC41YS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVWOGEyIDIgMCAwIDEtNCAwVjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTQgMHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVaIn1dXX0pO3ZhciBMTixWQWU9bigoKT0+e0xOPVtbInBhdGgiLHtkOiJNMTIgNHYxNiJ9XSxbInBhdGgiLHtkOiJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV19KTt2YXIgVE4sVUFlPW4oKCk9PntUTj1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOC42NTYgMTNoMi4zMzZhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTEyLjA3LTcuNTEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNS45NjEgNS45NTdhMTAuMjggMTAuMjggMCAwIDAtMy45MjIgNS43NjlBMSAxIDAgMCAwIDMgMTNoMTAifV1dfSk7dmFyIF9OLGpBZT1uKCgpPT57X049W1sicGF0aCIse2Q6Ik0xMiAxM3Y3YTIgMiAwIDAgMCA0IDAifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjAuOTkyIDEzYTEgMSAwIDAgMCAuOTctMS4yNzQgMTAuMjg0IDEwLjI4NCAwIDAgMC0xOS45MjMgMEExIDEgMCAwIDAgMyAxM3oifV1dfSk7dmFyIEFOLFdBZT1uKCgpPT57QU49W1sicGF0aCIse2Q6Ik02IDR2NmE2IDYgMCAwIDAgMTIgMFY0In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIyMCIseTI6IjIwIn1dXX0pO3ZhciAkTixHQWU9bigoKT0+eyROPVtbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dLFsicGF0aCIse2Q6Ik00IDloMTAuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVhNS41IDUuNSAwIDAgMS01LjUgNS41SDExIn1dXX0pO3ZhciBETixZQWU9bigoKT0+e0ROPVtbInBhdGgiLHtkOiJNMjEgMTdhOSA5IDAgMCAwLTE1LTYuN0wzIDEzIn1dLFsicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjEifV1dfSk7dmFyIEVOLFpBZT1uKCgpPT57RU49W1sicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsicGF0aCIse2Q6Ik0yMSAxN2E5IDkgMCAwIDAtOS05IDkgOSAwIDAgMC02IDIuM0wzIDEzIn1dXX0pO3ZhciBOTixYQWU9bigoKT0+e05OPVtbInBhdGgiLHtkOiJNMTYgMTJoNiJ9XSxbInBhdGgiLHtkOiJNOCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgMTUgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV1dfSk7dmFyIFBOLFFBZT1uKCgpPT57UE49W1sicGF0aCIse2Q6Ik0xMiAyMnYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgOFYyIn1dLFsicGF0aCIse2Q6Ik00IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwIDEySDgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTktMyAzLTMtMyJ9XSxbInBhdGgiLHtkOiJtMTUgNS0zLTMtMyAzIn1dXX0pO3ZhciBJTixLQWU9bigoKT0+e0lOPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiI0IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI2Iix4OiIxMSIseToiMTQiLHJ4OiIxIn1dXX0pO3ZhciBfbCxKQWU9bigoKT0+e19sPVtbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgN2ExIDEgMCAwIDAtMS0xaC0yYTIgMiAwIDAgMS0xLjE0My0uMzU5TDEzLjE0MyAyLjM2YTIgMiAwIDAgMC0yLjI4Ni0uMDAxTDYuMTQzIDUuNjRBMiAyIDAgMCAxIDUgNkgzYTEgMSAwIDAgMC0xIDF2MTJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjIifV1dfSk7dmFyIEZOLGUkZT1uKCgpPT57Rk49W1sicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMCAxIDAgMTBoLTJtLTYgMEg3QTUgNSAwIDAgMSA3IDdoMiJ9XV19KTt2YXIgT04sdCRlPW4oKCk9PntPTj1bWyJwYXRoIix7ZDoibTE4Ljg0IDEyLjI1IDEuNzItMS43MWgtLjAyYTUuMDA0IDUuMDA0IDAgMCAwLS4xMi03LjA3IDUuMDA2IDUuMDA2IDAgMCAwLTYuOTUgMGwtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Im01LjE3IDExLjc1LTEuNzEgMS43MWE1LjAwNCA1LjAwNCAwIDAgMCAuMTIgNy4wNyA1LjAwNiA1LjAwNiAwIDAgMCA2Ljk1IDBsMS43MS0xLjcxIn1dLFsibGluZSIse3gxOiI4Iix4MjoiOCIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIyIix4MjoiNSIseTE6IjgiLHkyOiI4In1dLFsibGluZSIse3gxOiIxNiIseDI6IjE2Iix5MToiMTkiLHkyOiIyMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjE2Iix5MjoiMTYifV1dfSk7dmFyIEJOLGEkZT1uKCgpPT57Qk49W1sicGF0aCIse2Q6Im0xOSA1IDMtMyJ9XSxbInBhdGgiLHtkOiJtMiAyMiAzLTMifV0sWyJwYXRoIix7ZDoiTTYuMyAyMC4zYTIuNCAyLjQgMCAwIDAgMy40IDBMMTIgMThsLTYtNi0yLjMgMi4zYTIuNCAyLjQgMCAwIDAgMCAzLjRaIn1dLFsicGF0aCIse2Q6Ik03LjUgMTMuNSAxMCAxMSJ9XSxbInBhdGgiLHtkOiJNMTAuNSAxNi41IDEzIDE0In1dLFsicGF0aCIse2Q6Im0xMiA2IDYgNiAyLjMtMi4zYTIuNCAyLjQgMCAwIDAgMC0zLjRsLTIuNi0yLjZhMi40IDIuNCAwIDAgMC0zLjQgMFoifV1dfSk7dmFyIFJOLHIkZT1uKCgpPT57Uk49W1siY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTQuNyAxOS4zIDE5IDUifV0sWyJwYXRoIix7ZDoibTIxIDMtMyAxIDIgMloifV0sWyJwYXRoIix7ZDoiTTkuMjYgNy42OCA1IDEybDIgNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgNSAyIDMuNS0zLjUifV0sWyJwYXRoIix7ZDoibTE4IDEyIDEtMSAxIDEtMSAxWiJ9XV19KTt2YXIgSE4saSRlPW4oKCk9PntITj1bWyJwYXRoIix7ZDoiTTEyIDN2MTIifV0sWyJwYXRoIix7ZDoibTE3IDgtNS01LTUgNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCJ9XV19KTt2YXIgcU4sbyRlPW4oKCk9PntxTj1bWyJwYXRoIix7ZDoibTE2IDExIDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dfSk7dmFyIFZOLHMkZT1uKCgpPT57Vk49W1sicGF0aCIse2Q6Ik0xMCAxNUg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDE2LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTMuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDEyLjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNy43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxMi4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDE4LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxMy44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBVTixuJGU9bigoKT0+e1VOPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEwLjMgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJwYXRoIix7ZDoiTTE1IDE1LjVWMTRhMiAyIDAgMCAxIDQgMHYxLjUifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMTMiLHk6IjE2IixyeDoiLjg5OSJ9XV19KTt2YXIgak4sbCRlPW4oKCk9PntqTj1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTYiLHkxOiIxMSIseTI6IjExIn1dXX0pO3ZhciBXTixjJGU9bigoKT0+e1dOPVtbInBhdGgiLHtkOiJNMTEuNSAxNUg3YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiNCJ9XV19KTt2YXIgR04sZCRlPW4oKCk9PntHTj1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV0sWyJsaW5lIix7eDE6IjE5Iix4MjoiMTkiLHkxOiI4Iix5MjoiMTQifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTYiLHkxOiIxMSIseTI6IjExIn1dXX0pO3ZhciBBbCxmJGU9bigoKT0+e0FsPVtbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTMuMjkyLTYifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dXX0pO3ZhciAkbCx1JGU9bigoKT0+eyRsPVtbInBhdGgiLHtkOiJtMTQuMzA1IDE5LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDE1LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dfSk7dmFyIERsLHAkZT1uKCgpPT57RGw9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIyIDE5aC02In1dXX0pO3ZhciBZTixoJGU9bigoKT0+e1lOPVtbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTAuODIxLTcuNDg3In1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dXX0pO3ZhciBFbCxtJGU9bigoKT0+e0VsPVtbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTMuMjkyLTYifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMiAxOWgtNiJ9XV19KTt2YXIgWk4sZyRlPW4oKCk9PntaTj1bWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMC40MzQtNy42MiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Im0yMiAyMi0xLjktMS45In1dXX0pO3ZhciBObCx4JGU9bigoKT0+e05sPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTggOCAwIDAgMC0xNiAwIn1dXX0pO3ZhciBQbCxiJGU9bigoKT0+e1BsPVtbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTEuODczLTcifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Im0xNyAxNyA1IDUifV0sWyJwYXRoIix7ZDoibTIyIDE3LTUgNSJ9XV19KTt2YXIgWE4sdiRlPW4oKCk9PntYTj1bWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMC4zIDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjMifV0sWyJwYXRoIix7ZDoibTIxIDIxLTEuOS0xLjkifV1dfSk7dmFyIFFOLHkkZT1uKCgpPT57UU49W1sicGF0aCIse2Q6Ik0xNi4wNTEgMTIuNjE2YTEgMSAwIDAgMSAxLjkwOS4wMjRsLjczNyAxLjQ1MmExIDEgMCAwIDAgLjczNy41MzVsMS42MzQuMjU2YTEgMSAwIDAgMSAuNTg4IDEuODA2bC0xLjE3MiAxLjE2OGExIDEgMCAwIDAtLjI4Mi44NjZsLjI1OSAxLjYxM2ExIDEgMCAwIDEtMS41NDEgMS4xMzRsLTEuNDY1LS43NWExIDEgMCAwIDAtLjkxMiAwbC0xLjQ2NS43NWExIDEgMCAwIDEtMS41MzktMS4xMzNsLjI1OC0xLjYxM2ExIDEgMCAwIDAtLjI4Mi0uODY2bC0xLjE1Ni0xLjE1M2ExIDEgMCAwIDEgLjU3Mi0xLjgyMmwxLjYzMy0uMjU2YTEgMSAwIDAgMCAuNzM3LS41MzV6In1dLFsicGF0aCIse2Q6Ik04IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiNCJ9XV19KTt2YXIgS04sdyRlPW4oKCk9PntLTj1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV0sWyJsaW5lIix7eDE6IjE3Iix4MjoiMjIiLHkxOiI4Iix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTciLHkxOiI4Iix5MjoiMTMifV1dfSk7dmFyIEpOLE0kZT1uKCgpPT57Sk49W1sicGF0aCIse2Q6Ik0xOSAyMXYtMmE0IDQgMCAwIDAtNC00SDlhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNyIscjoiNCJ9XV19KTt2YXIgSWwseiRlPW4oKCk9PntJbD1bWyJwYXRoIix7ZDoiTTE4IDIxYTggOCAwIDAgMC0xNiAwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBjMC0zLjM3LTItNi41LTQtOGE1IDUgMCAwIDAtLjQ1LTguMyJ9XV19KTt2YXIgZVAsayRlPW4oKCk9PntlUD1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJwYXRoIix7ZDoiTTE2IDMuMTI4YTQgNCAwIDAgMSAwIDcuNzQ0In1dLFsicGF0aCIse2Q6Ik0yMiAyMXYtMmE0IDQgMCAwIDAtMy0zLjg3In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dXX0pO3ZhciBGbCxTJGU9bigoKT0+e0ZsPVtbInBhdGgiLHtkOiJtMTYgMi0yLjMgMi4zYTMgMyAwIDAgMCAwIDQuMmwxLjggMS44YTMgMyAwIDAgMCA0LjIgMEwyMiA4In1dLFsicGF0aCIse2Q6Ik0xNSAxNSAzLjMgMy4zYTQuMiA0LjIgMCAwIDAgMCA2bDcuMyA3LjNjLjcuNyAyIC43IDIuOCAwTDE1IDE1Wm0wIDAgNyA3In1dLFsicGF0aCIse2Q6Im0yLjEgMjEuOCA2LjQtNi4zIn1dLFsicGF0aCIse2Q6Im0xOSA1LTcgNyJ9XV19KTt2YXIgT2wsQyRlPW4oKCk9PntPbD1bWyJwYXRoIix7ZDoiTTMgMnY3YzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0yVjIifV0sWyJwYXRoIix7ZDoiTTcgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMjEgMTVWMmE1IDUgMCAwIDAtNSA1djZjMCAxLjEuOSAyIDIgMmgzWm0wIDB2NyJ9XV19KTt2YXIgdFAsTCRlPW4oKCk9Pnt0UD1bWyJwYXRoIix7ZDoiTTEzIDZ2NWExIDEgMCAwIDAgMSAxaDYuMTAyYTEgMSAwIDAgMSAuNzEyLjI5OGwuODk4LjkxYTEgMSAwIDAgMSAuMjg4LjcwMlYxN2ExIDEgMCAwIDEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik01IDE4SDNhMSAxIDAgMCAxLTEtMVY4YTIgMiAwIDAgMSAyLTJoMTJjMS4xIDAgMi4xLjggMi40IDEuOGwxLjE3NiA0LjIifV0sWyJwYXRoIix7ZDoiTTkgMThoNSJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE4IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMiJ9XV19KTt2YXIgYVAsVCRlPW4oKCk9PnthUD1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIgNWgyMCJ9XSxbInBhdGgiLHtkOiJNMyAzdjIifV0sWyJwYXRoIix7ZDoiTTcgM3YyIn1dLFsicGF0aCIse2Q6Ik0xNyAzdjIifV0sWyJwYXRoIix7ZDoiTTIxIDN2MiJ9XSxbInBhdGgiLHtkOiJtMTkgNS03IDctNy03In1dXX0pO3ZhciByUCxfJGU9bigoKT0+e3JQPVtbInBhdGgiLHtkOiJNOCAyMXMtNC0zLTQtOSA0LTkgNC05In1dLFsicGF0aCIse2Q6Ik0xNiAzczQgMyA0IDktNCA5LTQgOSJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiI5Iix5MToiOSIseTI6IjE1In1dLFsibGluZSIse3gxOiI5Iix4MjoiMTUiLHkxOiI5Iix5MjoiMTUifV1dfSk7dmFyIGlQLEEkZT1uKCgpPT57aVA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im03LjkgNy45IDIuNyAyLjcifV0sWyJjaXJjbGUiLHtjeDoiMTYuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJtMTMuNCAxMC42IDIuNy0yLjcifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJtNy45IDE2LjEgMi43LTIuNyJ9XSxbImNpcmNsZSIse2N4OiIxNi41IixjeToiMTYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJtMTMuNCAxMy40IDIuNyAyLjcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV19KTt2YXIgb1AsJCRlPW4oKCk9PntvUD1bWyJwYXRoIix7ZDoiTTE5LjUgN2EyNCAyNCAwIDAgMSAwIDEwIn1dLFsicGF0aCIse2Q6Ik00LjUgN2EyNCAyNCAwIDAgMCAwIDEwIn1dLFsicGF0aCIse2Q6Ik03IDE5LjVhMjQgMjQgMCAwIDAgMTAgMCJ9XSxbInBhdGgiLHtkOiJNNyA0LjVhMjQgMjQgMCAwIDEgMTAgMCJ9XSxbInJlY3QiLHt4OiIxNyIseToiMTciLHdpZHRoOiI1IixoZWlnaHQ6IjUiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjE3Iix5OiIyIix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV0sWyJyZWN0Iix7eDoiMiIseToiMiIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV1dfSk7dmFyIHNQLEQkZT1uKCgpPT57c1A9W1sicGF0aCIse2Q6Ik0xNiA4cTYgMCA2LTYtNiAwLTYgNiJ9XSxbInBhdGgiLHtkOiJNMTcuNDEgMy41OWExMCAxMCAwIDEgMCAzIDMifV0sWyJwYXRoIix7ZDoiTTIgMmEyNi42IDI2LjYgMCAwIDEgMTAgMjBjLjktNi44MiAxLjUtOS41IDQtMTQifV1dfSk7dmFyIG5QLEUkZT1uKCgpPT57blA9W1sicGF0aCIse2Q6Ik0xOCAxMWMtMS41IDAtMi41LjUtMyAyIn1dLFsicGF0aCIse2Q6Ik00IDZhMiAyIDAgMCAwLTIgMnY0YTUgNSAwIDAgMCA1IDUgOCA4IDAgMCAxIDUgMiA4IDggMCAwIDEgNS0yIDUgNSAwIDAgMCA1LTVWOGEyIDIgMCAwIDAtMi0yaC0zYTggOCAwIDAgMC01IDIgOCA4IDAgMCAwLTUtMnoifV0sWyJwYXRoIix7ZDoiTTYgMTFjMS41IDAgMi41LjUgMyAyIn1dXX0pO3ZhciBsUCxOJGU9bigoKT0+e2xQPVtbInBhdGgiLHtkOiJNMTIgMTV2NyJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiNiJ9XV19KTt2YXIgY1AsUCRlPW4oKCk9PntjUD1bWyJwYXRoIix7ZDoiTTEwIDIwaDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2djYifV0sWyJwYXRoIix7ZDoiTTE3IDJoNHY0In1dLFsicGF0aCIse2Q6Im0yMSAyLTUuNDYgNS40NiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExIixyOiI1In1dXX0pO3ZhciBkUCxJJGU9bigoKT0+e2RQPVtbInBhdGgiLHtkOiJtMiA4IDIgMi0yIDIgMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJtMjIgOC0yIDIgMiAyLTIgMiAyIDIifV0sWyJwYXRoIix7ZDoiTTggOHYxMGMwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMXYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTAuMzRWNmMwLS41NS0uNDUtMS0xLTFoLTQuMzQifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV19KTt2YXIgZlAsRiRlPW4oKCk9PntmUD1bWyJwYXRoIix7ZDoibTIgOCAyIDItMiAyIDIgMi0yIDIifV0sWyJwYXRoIix7ZDoibTIyIDgtMiAyIDIgMi0yIDIgMiAyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI1IixyeDoiMSJ9XV19KTt2YXIgdVAsTyRlPW4oKCk9Pnt1UD1bWyJwYXRoIix7ZDoiTTEwLjY2IDZIMTRhMiAyIDAgMCAxIDIgMnYyLjVsNS4yNDgtMy4wNjJBLjUuNSAwIDAgMSAyMiA3Ljg3djguMTk2In1dLFsicGF0aCIse2Q6Ik0xNiAxNmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXX0pO3ZhciBwUCxCJGU9bigoKT0+e3BQPVtbInBhdGgiLHtkOiJtMTYgMTMgNS4yMjMgMy40ODJhLjUuNSAwIDAgMCAuNzc3LS40MTZWNy44N2EuNS41IDAgMCAwLS43NTItLjQzMkwxNiAxMC41In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNCIsaGVpZ2h0OiIxMiIscng6IjIifV1dfSk7dmFyIGhQLFIkZT1uKCgpPT57aFA9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiIxMiIscjoiNCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjEyIixyOiI0In1dLFsibGluZSIse3gxOiI2Iix4MjoiMTgiLHkxOiIxNiIseTI6IjE2In1dXX0pO3ZhciBtUCxIJGU9bigoKT0+e21QPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDhoMjAifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE0IixyOiIyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxNCIscjoiMiJ9XV19KTt2YXIgZ1AscSRlPW4oKCk9PntnUD1bWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTIxIDdWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV19KTt2YXIgeFAsViRlPW4oKCk9Pnt4UD1bWyJwYXRoIix7ZDoiTTExLjEgNy4xYTE2LjU1IDE2LjU1IDAgMCAxIDEwLjkgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTJhMTIuNiAxMi42IDAgMCAxLTguNyA1In1dLFsicGF0aCIse2Q6Ik0xNi44IDEzLjZhMTYuNTUgMTYuNTUgMCAwIDEtOSA3LjUifV0sWyJwYXRoIix7ZDoiTTIwLjcgMTdhMTIuOCAxMi44IDAgMCAwLTguNy01IDEzLjMgMTMuMyAwIDAgMSAwLTEwIn1dLFsicGF0aCIse2Q6Ik02LjMgMy44YTE2LjU1IDE2LjU1IDAgMCAwIDEuOSAxMS41In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXX0pO3ZhciBiUCxVJGU9bigoKT0+e2JQPVtbInBhdGgiLHtkOiJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoifV0sWyJwYXRoIix7ZDoiTTE2IDlhNSA1IDAgMCAxIDAgNiJ9XV19KTt2YXIgdlAsaiRlPW4oKCk9Pnt2UD1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAwIDYifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCAxOC4zNjRhOSA5IDAgMCAwIDAtMTIuNzI4In1dXX0pO3ZhciB5UCxXJGU9bigoKT0+e3lQPVtbInBhdGgiLHtkOiJNMTYgOWE1IDUgMCAwIDEgLjk1IDIuMjkzIn1dLFsicGF0aCIse2Q6Ik0xOS4zNjQgNS42MzZhOSA5IDAgMCAxIDEuODg5IDkuOTYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJtNyA3LS41ODcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4VjExIn1dLFsicGF0aCIse2Q6Ik05LjgyOCA0LjE3MkEuNjg2LjY4NiAwIDAgMSAxMSA0LjY1N3YuNjg2In1dXX0pO3ZhciB3UCxHJGU9bigoKT0+e3dQPVtbInBhdGgiLHtkOiJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTYiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMjIiLHkxOiI5Iix5MjoiMTUifV1dfSk7dmFyIE1QLFkkZT1uKCgpPT57TVA9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XV19KTt2YXIgelAsWiRlPW4oKCk9Pnt6UD1bWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNNSA3YzAtMS4xLjktMiAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxMkg1VjdaIn1dLFsicGF0aCIse2Q6Ik0yMiAxOUgyIn1dXX0pO3ZhciBCbCxYJGU9bigoKT0+e0JsPVtbInBhdGgiLHtkOiJNMTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDdoMTJhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTQifV1dfSk7dmFyIGtQLFEkZT1uKCgpPT57a1A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgMTFoM2MuOCAwIDEuNi4zIDIuMS45bDEuMS45YzEuNiAxLjYgNC4xIDEuNiA1LjcgMGwxLjEtLjljLjUtLjUgMS4zLS45IDIuMS0uOUgyMSJ9XV19KTt2YXIgU1AsSyRlPW4oKCk9PntTUD1bWyJwYXRoIix7ZDoiTTE5IDdWNGExIDEgMCAwIDAtMS0xSDVhMiAyIDAgMCAwIDAgNGgxNWExIDEgMCAwIDEgMSAxdjRoLTNhMiAyIDAgMCAwIDAgNGgzYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMyA1djE0YTIgMiAwIDAgMCAyIDJoMTVhMSAxIDAgMCAwIDEtMXYtNCJ9XV19KTt2YXIgQ1AsSiRlPW4oKCk9PntDUD1bWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInBhdGgiLHtkOiJtOSAxNyA2LjEtNi4xYTIgMiAwIDAgMSAyLjgxLjAxTDIyIDE1In1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiI5IixyOiIyIn1dLFsicmVjdCIse3g6IjIiLHk6IjMiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dfSk7dmFyIFJsLGVEZT1uKCgpPT57Umw9W1sicGF0aCIse2Q6Im0yMS42NCAzLjY0LTEuMjgtMS4yOGExLjIxIDEuMjEgMCAwIDAtMS43MiAwTDIuMzYgMTguNjRhMS4yMSAxLjIxIDAgMCAwIDAgMS43MmwxLjI4IDEuMjhhMS4yIDEuMiAwIDAgMCAxLjcyIDBMMjEuNjQgNS4zNmExLjIgMS4yIDAgMCAwIDAtMS43MiJ9XSxbInBhdGgiLHtkOiJtMTQgNyAzIDMifV0sWyJwYXRoIix7ZDoiTTUgNnY0In1dLFsicGF0aCIse2Q6Ik0xOSAxNHY0In1dLFsicGF0aCIse2Q6Ik0xMCAydjIifV0sWyJwYXRoIix7ZDoiTTcgOEgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNmgtNCJ9XSxbInBhdGgiLHtkOiJNMTEgM0g5In1dXX0pO3ZhciBMUCx0RGU9bigoKT0+e0xQPVtbInBhdGgiLHtkOiJNMTUgNFYyIn1dLFsicGF0aCIse2Q6Ik0xNSAxNnYtMiJ9XSxbInBhdGgiLHtkOiJNOCA5aDIifV0sWyJwYXRoIix7ZDoiTTIwIDloMiJ9XSxbInBhdGgiLHtkOiJNMTcuOCAxMS44IDE5IDEzIn1dLFsicGF0aCIse2Q6Ik0xNSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcuOCA2LjIgMTkgNSJ9XSxbInBhdGgiLHtkOiJtMyAyMSA5LTkifV0sWyJwYXRoIix7ZDoiTTEyLjIgNi4yIDExIDUifV1dfSk7dmFyIFRQLGFEZT1uKCgpPT57VFA9W1sicGF0aCIse2Q6Ik0xOCAyMVYxMGExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxMSJ9XSxbInBhdGgiLHtkOiJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMS4xMzItMS44MDNsNy45NS0zLjk3NGEyIDIgMCAwIDEgMS44MzcgMGw3Ljk0OCAzLjk3NEEyIDIgMCAwIDEgMjIgOHoifV0sWyJwYXRoIix7ZDoiTTYgMTNoMTIifV0sWyJwYXRoIix7ZDoiTTYgMTdoMTIifV1dfSk7dmFyIF9QLHJEZT1uKCgpPT57X1A9W1sicGF0aCIse2Q6Ik0zIDZoMyJ9XSxbInBhdGgiLHtkOiJNMTcgNmguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjIwIix4OiIzIix5OiIyIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxOGEyLjUgMi41IDAgMCAwIDAtNSAyLjUgMi41IDAgMCAxIDAtNSJ9XV19KTt2YXIgQVAsaURlPW4oKCk9PntBUD1bWyJwYXRoIix7ZDoiTTEyIDEwdjIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJtMTYuMTMgNy42Ni0uODEtNC4wNWEyIDIgMCAwIDAtMi0xLjYxaC0yLjY4YTIgMiAwIDAgMC0yIDEuNjFsLS43OCA0LjA1In1dLFsicGF0aCIse2Q6Im03Ljg4IDE2LjM2LjggNGEyIDIgMCAwIDAgMiAxLjYxaDIuNzJhMiAyIDAgMCAwIDItMS42MWwuODEtNC4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI2In1dXX0pO3ZhciAkUCxvRGU9bigoKT0+eyRQPVtbInBhdGgiLHtkOiJNMTIgMTBMMTIgMiJ9XSxbInBhdGgiLHtkOiJNMTYgNkwxMiAxMEw4IDYifV0sWyJwYXRoIix7ZDoiTTIgMTVDMi42IDE1LjUgMy4yIDE2IDQuNSAxNkM3IDE2IDcgMTQgOS41IDE0QzEyLjEgMTQgMTEuOSAxNiAxNC41IDE2QzE3IDE2IDE3IDE0IDE5LjUgMTRDMjAuOCAxNCAyMS40IDE0LjUgMjIgMTUifV0sWyJwYXRoIix7ZDoiTTIgMjFDMi42IDIxLjUgMy4yIDIyIDQuNSAyMkM3IDIyIDcgMjAgOS41IDIwQzEyLjEgMjAgMTEuOSAyMiAxNC41IDIyQzE3IDIyIDE3IDIwIDE5LjUgMjBDMjAuOCAyMCAyMS40IDIwLjUgMjIgMjEifV1dfSk7dmFyIERQLHNEZT1uKCgpPT57RFA9W1sicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJwYXRoIix7ZDoiTTIgMTVjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNMiAyMWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XV19KTt2YXIgRVAsbkRlPW4oKCk9PntFUD1bWyJwYXRoIix7ZDoiTTE5IDVhMiAyIDAgMCAwLTIgMnYxMSJ9XSxbInBhdGgiLHtkOiJNMiAxOGMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik03IDEzaDEwIn1dLFsicGF0aCIse2Q6Ik03IDloMTAifV0sWyJwYXRoIix7ZDoiTTkgNWEyIDIgMCAwIDAtMiAydjExIn1dXX0pO3ZhciBOUCxsRGU9bigoKT0+e05QPVtbInBhdGgiLHtkOiJNMiA2Yy42LjUgMS4yIDEgMi41IDFDNyA3IDcgNSA5LjUgNWMyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDEyYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XV19KTt2YXIgUFAsY0RlPW4oKCk9PntQUD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0LjUiLHI6IjIuNSJ9XSxbInBhdGgiLHtkOiJtMTAuMiA2LjMtMy45IDMuOSJ9XSxbImNpcmNsZSIse2N4OiI0LjUiLGN5OiIxMiIscjoiMi41In1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsiY2lyY2xlIix7Y3g6IjE5LjUiLGN5OiIxMiIscjoiMi41In1dLFsicGF0aCIse2Q6Im0xMy44IDE3LjcgMy45LTMuOSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5LjUiLHI6IjIuNSJ9XV19KTt2YXIgSVAsZERlPW4oKCk9PntJUD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik03IDIyaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtNCJ9XV19KTt2YXIgRlAsZkRlPW4oKCk9PntGUD1bWyJwYXRoIix7ZDoiTTE3IDE3aC01Yy0xLjA5LS4wMi0xLjk0LjkyLTIuNSAxLjlBMyAzIDAgMSAxIDIuNTcgMTUifV0sWyJwYXRoIix7ZDoiTTkgMy40YTQgNCAwIDAgMSA2LjUyLjY2In1dLFsicGF0aCIse2Q6Im02IDE3IDMuMS01LjhhMi41IDIuNSAwIDAgMCAuMDU3LTIuMDUifV0sWyJwYXRoIix7ZDoiTTIwLjMgMjAuM2E0IDQgMCAwIDEtMi4zLjcifV0sWyJwYXRoIix7ZDoiTTE4LjYgMTNhNCA0IDAgMCAxIDMuMzU3IDMuNDE0In1dLFsicGF0aCIse2Q6Im0xMiA2IC42IDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgT1AsdURlPW4oKCk9PntPUD1bWyJwYXRoIix7ZDoiTTE4IDE2Ljk4aC01Ljk5Yy0xLjEgMC0xLjk1Ljk0LTIuNDggMS45QTQgNCAwIDAgMSAyIDE3Yy4wMS0uNy4yLTEuNC41Ny0yIn1dLFsicGF0aCIse2Q6Im02IDE3IDMuMTMtNS43OGMuNTMtLjk3LjEtMi4xOC0uNS0zLjFhNCA0IDAgMSAxIDYuODktNC4wNiJ9XSxbInBhdGgiLHtkOiJtMTIgNiAzLjEzIDUuNzNDMTUuNjYgMTIuNyAxNi45IDEzIDE4IDEzYTQgNCAwIDAgMSAwIDgifV1dfSk7dmFyIEJQLHBEZT1uKCgpPT57QlA9W1sicGF0aCIse2Q6Ik02LjUgOGEyIDIgMCAwIDAtMS45MDYgMS40NkwyLjEgMTguNUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjUtMi41NEwxOS40IDkuNUEyIDIgMCAwIDAgMTcuNDggOHoifV0sWyJwYXRoIix7ZDoiTTcuOTk5IDE1YTIuNSAyLjUgMCAwIDEgNCAwIDIuNSAyLjUgMCAwIDAgNCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMyJ9XV19KTt2YXIgUlAsaERlPW4oKCk9PntSUD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIzIn1dLFsicGF0aCIse2Q6Ik02LjUgOGEyIDIgMCAwIDAtMS45MDUgMS40NkwyLjEgMTguNUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjUtMi41NEwxOS40IDkuNUEyIDIgMCAwIDAgMTcuNDggOFoifV1dfSk7dmFyIEhQLG1EZT1uKCgpPT57SFA9W1sicGF0aCIse2Q6Im0yIDIyIDEwLTEwIn1dLFsicGF0aCIse2Q6Im0xNiA4LTEuMTcgMS4xNyJ9XSxbInBhdGgiLHtkOiJNMy40NyAxMi41MyA1IDExbDEuNTMgMS41M2EzLjUgMy41IDAgMCAxIDAgNC45NEw1IDE5bC0xLjUzLTEuNTNhMy41IDMuNSAwIDAgMSAwLTQuOTRaIn1dLFsicGF0aCIse2Q6Im04IDgtLjUzLjUzYTMuNSAzLjUgMCAwIDAgMCA0Ljk0TDkgMTVsMS41My0xLjUzYy41NS0uNTUuODgtMS4yNS45OC0xLjk3In1dLFsicGF0aCIse2Q6Ik0xMC45MSA1LjI2Yy4xNS0uMjYuMzQtLjUxLjU2LS43M0wxMyAzbDEuNTMgMS41M2EzLjUgMy41IDAgMCAxIC4yOCA0LjYyIn1dLFsicGF0aCIse2Q6Ik0yMCAyaDJ2MmE0IDQgMCAwIDEtNCA0aC0yVjZhNCA0IDAgMCAxIDQtNFoifV0sWyJwYXRoIix7ZDoiTTExLjQ3IDE3LjQ3IDEzIDE5bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMNSAxOWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIn1dLFsicGF0aCIse2Q6Im0xNiAxNi0uNTMuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMOSAxNWwxLjUzLTEuNTNhMy40OSAzLjQ5IDAgMCAxIDEuOTctLjk4In1dLFsicGF0aCIse2Q6Ik0xOC43NCAxMy4wOWMuMjYtLjE1LjUxLS4zNC43My0uNTZMMjEgMTFsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAwLTQuNjItLjI4In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dfSk7dmFyIHFQLGdEZT1uKCgpPT57cVA9W1sicGF0aCIse2Q6Ik0yIDIyIDE2IDgifV0sWyJwYXRoIix7ZDoiTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJNNy40NyA4LjUzIDkgN2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMOSAxNWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgNC41MyAxMyAzbDEuNTMgMS41M2EzLjUgMy41IDAgMCAxIDAgNC45NEwxMyAxMWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJNMjAgMmgydjJhNCA0IDAgMCAxLTQgNGgtMlY2YTQgNCAwIDAgMSA0LTRaIn1dLFsicGF0aCIse2Q6Ik0xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XSxbInBhdGgiLHtkOiJNMTUuNDcgMTMuNDcgMTcgMTVsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw5IDE1bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoiTTE5LjQ3IDkuNDcgMjEgMTFsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEwxMyAxMWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIn1dXX0pO3ZhciBWUCx4RGU9bigoKT0+e1ZQPVtbImNpcmNsZSIse2N4OiI3IixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEwIDl2NiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNCA3djgifV0sWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXX0pO3ZhciBVUCxiRGU9bigoKT0+e1VQPVtbInBhdGgiLHtkOiJtMTQuMzA1IDE5LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDE1LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoiTTIgNy44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMifV0sWyJwYXRoIix7ZDoiTTUgMTEuODU4YTEwIDEwIDAgMCAxIDExLjUtMS43ODUifV0sWyJwYXRoIix7ZDoiTTguNSAxNS40MjlhNSA1IDAgMCAxIDIuNDEzLTEuMzEifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV19KTt2YXIgalAsdkRlPW4oKCk9PntqUD1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIn1dXX0pO3ZhciBXUCx5RGU9bigoKT0+e1dQPVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxNCAwIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV1dfSk7dmFyIEdQLHdEZT1uKCgpPT57R1A9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XSxbInBhdGgiLHtkOiJNNSAxMi44NTlhMTAgMTAgMCAwIDEgNS4xNy0yLjY5In1dLFsicGF0aCIse2Q6Ik0xOSAxMi44NTlhMTAgMTAgMCAwIDAtMi4wMDctMS41MjMifV0sWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSA0LjE3Ny0yLjY0MyJ9XSxbInBhdGgiLHtkOiJNMjIgOC44MmExNSAxNSAwIDAgMC0xMS4yODgtMy43NjQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV19KTt2YXIgWVAsTURlPW4oKCk9PntZUD1bWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDEwLjUtMi4yMjIifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDMtMS40MDYifV1dfSk7dmFyIFpQLHpEZT1uKCgpPT57WlA9W1sicGF0aCIse2Q6Ik0xMS45NjUgMTAuMTA1djRMMTMuNSAxMi41YTUgNSAwIDAgMSA4IDEuNSJ9XSxbInBhdGgiLHtkOiJNMTEuOTY1IDE0LjEwNWg0In1dLFsicGF0aCIse2Q6Ik0xNy45NjUgMTguMTA1aDRMMjAuNDMgMTkuNzFhNSA1IDAgMCAxLTgtMS41In1dLFsicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJNMjEuOTY1IDIyLjEwNXYtNCJ9XSxbInBhdGgiLHtkOiJNNSAxMi44NmExMCAxMCAwIDAgMSAzLTIuMDMyIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5aC4wMSJ9XV19KTt2YXIgWFAsa0RlPW4oKCk9PntYUD1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XV19KTt2YXIgUVAsU0RlPW4oKCk9PntRUD1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV19KTt2YXIgS1AsQ0RlPW4oKCk9PntLUD1bWyJwYXRoIix7ZDoiTTEwIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMTIuOCAyMS42QTIgMiAwIDEgMCAxNCAxOEgyIn1dLFsicGF0aCIse2Q6Ik0xNy41IDEwYTIuNSAyLjUgMCAxIDEgMiA0SDIifV0sWyJwYXRoIix7ZDoibTYgNiA0IDQgNC00In1dXX0pO3ZhciBKUCxMRGU9bigoKT0+e0pQPVtbInBhdGgiLHtkOiJNMTIuOCAxOS42QTIgMiAwIDEgMCAxNCAxNkgyIn1dLFsicGF0aCIse2Q6Ik0xNy41IDhhMi41IDIuNSAwIDEgMSAyIDRIMiJ9XSxbInBhdGgiLHtkOiJNOS44IDQuNEEyIDIgMCAxIDEgMTEgOEgyIn1dXX0pO3ZhciBlSSxURGU9bigoKT0+e2VJPVtbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik03IDEwaDNtNyAwaC0xLjM0MyJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NyJ9XSxbInBhdGgiLHtkOiJNNy4zMDcgNy4zMDdBMTIuMzMgMTIuMzMgMCAwIDAgNyAxMGE1IDUgMCAwIDAgNy4zOTEgNC4zOTFNOC42MzggMi45ODFDOC43NSAyLjY2OCA4Ljg3MiAyLjM0IDkgMmg2YzEuNSA0IDIgNiAyIDggMCAuNDA3LS4wNS44MDktLjE0NSAxLjE5OCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXX0pO3ZhciB0SSxfRGU9bigoKT0+e3RJPVtbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY3In1dLFsicGF0aCIse2Q6Ik0xMiAxNWE1IDUgMCAwIDAgNS01YzAtMi0uNS00LTItOEg5Yy0xLjUgNC0yIDYtMiA4YTUgNSAwIDAgMCA1IDVaIn1dXX0pO3ZhciBhSSxBRGU9bigoKT0+e2FJPVtbInBhdGgiLHtkOiJtMTkgMTItMS41IDMifV0sWyJwYXRoIix7ZDoiTTE5LjYzIDE4LjgxIDIyIDIwIn1dLFsicGF0aCIse2Q6Ik02LjQ3IDguMjNhMS42OCAxLjY4IDAgMCAxIDIuNDQgMS45M2wtLjY0IDIuMDhhNi43NiA2Ljc2IDAgMCAwIDEwLjE2IDcuNjdsLjQyLS4yN2ExIDEgMCAxIDAtMi43My00LjIxbC0uNDIuMjdhMS43NiAxLjc2IDAgMCAxLTIuNjMtMS45OWwuNjQtMi4wOEE2LjY2IDYuNjYgMCAwIDAgMy45NCAzLjlsLS43LjRhMSAxIDAgMSAwIDIuNTUgNC4zNHoifV1dfSk7dmFyIHJJLCREZT1uKCgpPT57ckk9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExdjRhMiAyIDAgMCAwIDIgMmg0In1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjEzIix5OiIxMyIscng6IjIifV1dfSk7dmFyIGlJLEREZT1uKCgpPT57aUk9W1sicGF0aCIse2Q6Ik0xNC43IDYuM2ExIDEgMCAwIDAgMCAxLjRsMS42IDEuNmExIDEgMCAwIDAgMS40IDBsMy4xMDYtMy4xMDVjLjMyLS4zMjIuODYzLS4yMi45ODMuMjE4YTYgNiAwIDAgMS04LjI1OSA3LjA1N2wtNy45MSA3LjkxYTEgMSAwIDAgMS0yLjk5OS0zbDcuOTEtNy45MWE2IDYgMCAwIDEgNy4wNTctOC4yNTljLjQzOC4xMi41NC42NjIuMjE5Ljk4NHoifV1dfSk7dmFyIG9JLEVEZT1uKCgpPT57b0k9W1sicGF0aCIse2Q6Ik0xOCA2IDYgMTgifV0sWyJwYXRoIix7ZDoibTYgNiAxMiAxMiJ9XV19KTt2YXIgc0ksTkRlPW4oKCk9PntzST1bWyJwYXRoIix7ZDoiTTIuNSAxN2EyNC4xMiAyNC4xMiAwIDAgMSAwLTEwIDIgMiAwIDAgMSAxLjQtMS40IDQ5LjU2IDQ5LjU2IDAgMCAxIDE2LjIgMEEyIDIgMCAwIDEgMjEuNSA3YTI0LjEyIDI0LjEyIDAgMCAxIDAgMTAgMiAyIDAgMCAxLTEuNCAxLjQgNDkuNTUgNDkuNTUgMCAwIDEtMTYuMiAwQTIgMiAwIDAgMSAyLjUgMTcifV0sWyJwYXRoIix7ZDoibTEwIDE1IDUtMy01LTN6In1dXX0pO3ZhciBuSSxQRGU9bigoKT0+e25JPVtbInBhdGgiLHtkOiJNMTAuNTEzIDQuODU2IDEzLjEyIDIuMTdhLjUuNSAwIDAgMSAuODYuNDZsLTEuMzc3IDQuMzE3In1dLFsicGF0aCIse2Q6Ik0xNS42NTYgMTBIMjBhMSAxIDAgMCAxIC43OCAxLjYzbC0xLjcyIDEuNzczIn1dLFsicGF0aCIse2Q6Ik0xNi4yNzMgMTYuMjczIDEwLjg4IDIxLjgzYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0SDRhMSAxIDAgMCAxLS43OC0xLjYzbDQuNTA3LTQuNjQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dfSk7dmFyIGxJLElEZT1uKCgpPT57bEk9W1sicGF0aCIse2Q6Ik00IDE0YTEgMSAwIDAgMS0uNzgtMS42M2w5LjktMTAuMmEuNS41IDAgMCAxIC44Ni40NmwtMS45MiA2LjAyQTEgMSAwIDAgMCAxMyAxMGg3YTEgMSAwIDAgMSAuNzggMS42M2wtOS45IDEwLjJhLjUuNSAwIDAgMS0uODYtLjQ2bDEuOTItNi4wMkExIDEgMCAwIDAgMTEgMTR6In1dXX0pO3ZhciBjSSxGRGU9bigoKT0+e2NJPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE2LjY1Iix5MToiMjEiLHkyOiIxNi42NSJ9XSxbImxpbmUiLHt4MToiMTEiLHgyOiIxMSIseTE6IjgiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE0Iix5MToiMTEiLHkyOiIxMSJ9XV19KTt2YXIgZEksT0RlPW4oKCk9PntkST1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxNi42NSIseTE6IjIxIix5MjoiMTYuNjUifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNCIseTE6IjExIix5MjoiMTEifV1dfSk7dmFyIEhsPXt9O2V0KEhsLHtBQXJyb3dEb3duOigpPT5ONyxBQXJyb3dVcDooKT0+UDcsQUxhcmdlU21hbGw6KCk9Pkk3LEFjY2Vzc2liaWxpdHk6KCk9PkY3LEFjdGl2aXR5OigpPT5PNyxBY3Rpdml0eVNxdWFyZTooKT0+eTMsQWlyVmVudDooKT0+QjcsQWlycGxheTooKT0+UjcsQWxhcm1DaGVjazooKT0+Tm4sQWxhcm1DbG9jazooKT0+cTcsQWxhcm1DbG9ja0NoZWNrOigpPT5ObixBbGFybUNsb2NrTWludXM6KCk9PlBuLEFsYXJtQ2xvY2tPZmY6KCk9Pkg3LEFsYXJtQ2xvY2tQbHVzOigpPT5JbixBbGFybU1pbnVzOigpPT5QbixBbGFybVBsdXM6KCk9PkluLEFsYXJtU21va2U6KCk9PlY3LEFsYnVtOigpPT5VNyxBbGVydENpcmNsZTooKT0+ZjAsQWxlcnRPY3RhZ29uOigpPT5aNCxBbGVydFRyaWFuZ2xlOigpPT5MbCxBbGlnbkNlbnRlcjooKT0+dmwsQWxpZ25DZW50ZXJIb3Jpem9udGFsOigpPT5qNyxBbGlnbkNlbnRlclZlcnRpY2FsOigpPT5XNyxBbGlnbkVuZEhvcml6b250YWw6KCk9Pkc3LEFsaWduRW5kVmVydGljYWw6KCk9Plk3LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI6KCk9Plo3LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ6KCk9PlE3LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDooKT0+WDcsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjooKT0+SzcsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDooKT0+SjcsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0OigpPT5lZixBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZDooKT0+dGYsQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuOigpPT5hZixBbGlnbkp1c3RpZnk6KCk9PndsLEFsaWduTGVmdDooKT0+SGksQWxpZ25SaWdodDooKT0+eWwsQWxpZ25TdGFydEhvcml6b250YWw6KCk9PnJmLEFsaWduU3RhcnRWZXJ0aWNhbDooKT0+b2YsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI6KCk9PnNmLEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kOigpPT5uZixBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0OigpPT5sZixBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcjooKT0+Y2YsQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ6KCk9PmRmLEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ6KCk9PmZmLEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDooKT0+dWYsQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjooKT0+cGYsQW1idWxhbmNlOigpPT5oZixBbXBlcnNhbmQ6KCk9Pm1mLEFtcGVyc2FuZHM6KCk9PmdmLEFtcGhvcmE6KCk9PnhmLEFuY2hvcjooKT0+YmYsQW5ncnk6KCk9PnZmLEFubm95ZWQ6KCk9PnlmLEFudGVubmE6KCk9PndmLEFudmlsOigpPT5NZixBcGVydHVyZTooKT0+emYsQXBwV2luZG93OigpPT5TZixBcHBXaW5kb3dNYWM6KCk9PmtmLEFwcGxlOigpPT5DZixBcmNoaXZlOigpPT5fZixBcmNoaXZlUmVzdG9yZTooKT0+TGYsQXJjaGl2ZVg6KCk9PlRmLEFyZWFDaGFydDooKT0+UW4sQXJtY2hhaXI6KCk9PkFmLEFycm93QmlnRG93bjooKT0+RGYsQXJyb3dCaWdEb3duRGFzaDooKT0+JGYsQXJyb3dCaWdMZWZ0OigpPT5OZixBcnJvd0JpZ0xlZnREYXNoOigpPT5FZixBcnJvd0JpZ1JpZ2h0OigpPT5JZixBcnJvd0JpZ1JpZ2h0RGFzaDooKT0+UGYsQXJyb3dCaWdVcDooKT0+T2YsQXJyb3dCaWdVcERhc2g6KCk9PkZmLEFycm93RG93bjooKT0+WWYsQXJyb3dEb3duMDE6KCk9PkJmLEFycm93RG93bjEwOigpPT5SZixBcnJvd0Rvd25BWjooKT0+Rm4sQXJyb3dEb3duQXo6KCk9PkZuLEFycm93RG93bkNpcmNsZTooKT0+dTAsQXJyb3dEb3duRnJvbUxpbmU6KCk9PkhmLEFycm93RG93bkxlZnQ6KCk9PnFmLEFycm93RG93bkxlZnRGcm9tQ2lyY2xlOigpPT5oMCxBcnJvd0Rvd25MZWZ0RnJvbVNxdWFyZTooKT0+UzMsQXJyb3dEb3duTGVmdFNxdWFyZTooKT0+dzMsQXJyb3dEb3duTmFycm93V2lkZTooKT0+amYsQXJyb3dEb3duUmlnaHQ6KCk9PlZmLEFycm93RG93blJpZ2h0RnJvbUNpcmNsZTooKT0+bTAsQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlOigpPT5DMyxBcnJvd0Rvd25SaWdodFNxdWFyZTooKT0+TTMsQXJyb3dEb3duU3F1YXJlOigpPT56MyxBcnJvd0Rvd25Ub0RvdDooKT0+VWYsQXJyb3dEb3duVG9MaW5lOigpPT5XZixBcnJvd0Rvd25VcDooKT0+R2YsQXJyb3dEb3duV2lkZU5hcnJvdzooKT0+T24sQXJyb3dEb3duWkE6KCk9PkJuLEFycm93RG93blphOigpPT5CbixBcnJvd0xlZnQ6KCk9PktmLEFycm93TGVmdENpcmNsZTooKT0+cDAsQXJyb3dMZWZ0RnJvbUxpbmU6KCk9PlhmLEFycm93TGVmdFJpZ2h0OigpPT5aZixBcnJvd0xlZnRTcXVhcmU6KCk9PmszLEFycm93TGVmdFRvTGluZTooKT0+UWYsQXJyb3dSaWdodDooKT0+YXUsQXJyb3dSaWdodENpcmNsZTooKT0+YjAsQXJyb3dSaWdodEZyb21MaW5lOigpPT5KZixBcnJvd1JpZ2h0TGVmdDooKT0+ZXUsQXJyb3dSaWdodFNxdWFyZTooKT0+XzMsQXJyb3dSaWdodFRvTGluZTooKT0+dHUsQXJyb3dVcDooKT0+dXUsQXJyb3dVcDAxOigpPT5ydSxBcnJvd1VwMTA6KCk9Pml1LEFycm93VXBBWjooKT0+Um4sQXJyb3dVcEF6OigpPT5SbixBcnJvd1VwQ2lyY2xlOigpPT52MCxBcnJvd1VwRG93bjooKT0+b3UsQXJyb3dVcEZyb21Eb3Q6KCk9PnN1LEFycm93VXBGcm9tTGluZTooKT0+bnUsQXJyb3dVcExlZnQ6KCk9Pmx1LEFycm93VXBMZWZ0RnJvbUNpcmNsZTooKT0+ZzAsQXJyb3dVcExlZnRGcm9tU3F1YXJlOigpPT5MMyxBcnJvd1VwTGVmdFNxdWFyZTooKT0+QTMsQXJyb3dVcE5hcnJvd1dpZGU6KCk9PkhuLEFycm93VXBSaWdodDooKT0+Y3UsQXJyb3dVcFJpZ2h0RnJvbUNpcmNsZTooKT0+eDAsQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTooKT0+VDMsQXJyb3dVcFJpZ2h0U3F1YXJlOigpPT4kMyxBcnJvd1VwU3F1YXJlOigpPT5EMyxBcnJvd1VwVG9MaW5lOigpPT5kdSxBcnJvd1VwV2lkZU5hcnJvdzooKT0+ZnUsQXJyb3dVcFpBOigpPT5xbixBcnJvd1VwWmE6KCk9PnFuLEFycm93c1VwRnJvbUxpbmU6KCk9PnB1LEFzdGVyaXNrOigpPT5odSxBc3Rlcmlza1NxdWFyZTooKT0+RTMsQXRTaWduOigpPT5tdSxBdG9tOigpPT5ndSxBdWRpb0xpbmVzOigpPT54dSxBdWRpb1dhdmVmb3JtOigpPT52dSxBd2FyZDooKT0+YnUsQXhlOigpPT55dSxBeGlzM0Q6KCk9PlZuLEF4aXMzZDooKT0+Vm4sQmFieTooKT0+d3UsQmFja3BhY2s6KCk9Pk11LEJhZGdlOigpPT5PdSxCYWRnZUFsZXJ0OigpPT56dSxCYWRnZUNlbnQ6KCk9Pmt1LEJhZGdlQ2hlY2s6KCk9PlVuLEJhZGdlRG9sbGFyU2lnbjooKT0+U3UsQmFkZ2VFdXJvOigpPT5DdSxCYWRnZUhlbHA6KCk9PmpuLEJhZGdlSW5kaWFuUnVwZWU6KCk9Pkx1LEJhZGdlSW5mbzooKT0+VHUsQmFkZ2VKYXBhbmVzZVllbjooKT0+X3UsQmFkZ2VNaW51czooKT0+QXUsQmFkZ2VQZXJjZW50OigpPT4kdSxCYWRnZVBsdXM6KCk9PkR1LEJhZGdlUG91bmRTdGVybGluZzooKT0+RXUsQmFkZ2VRdWVzdGlvbk1hcms6KCk9PmpuLEJhZGdlUnVzc2lhblJ1YmxlOigpPT5OdSxCYWRnZVN3aXNzRnJhbmM6KCk9PlB1LEJhZGdlVHVya2lzaExpcmE6KCk9Pkl1LEJhZGdlWDooKT0+RnUsQmFnZ2FnZUNsYWltOigpPT5CdSxCYWxsb29uOigpPT5SdSxCYW46KCk9Pkh1LEJhbmFuYTooKT0+cXUsQmFuZGFnZTooKT0+VnUsQmFua25vdGU6KCk9Pkd1LEJhbmtub3RlQXJyb3dEb3duOigpPT5VdSxCYW5rbm90ZUFycm93VXA6KCk9Pmp1LEJhbmtub3RlWDooKT0+V3UsQmFyQ2hhcnQ6KCk9Pm8wLEJhckNoYXJ0MjooKT0+czAsQmFyQ2hhcnQzOigpPT5yMCxCYXJDaGFydDQ6KCk9PmEwLEJhckNoYXJ0QmlnOigpPT50MCxCYXJDaGFydEhvcml6b250YWw6KCk9PkpuLEJhckNoYXJ0SG9yaXpvbnRhbEJpZzooKT0+S24sQmFyY29kZTooKT0+WXUsQmFycmVsOigpPT5adSxCYXNlbGluZTooKT0+WHUsQmF0aDooKT0+UXUsQmF0dGVyeTooKT0+aXAsQmF0dGVyeUNoYXJnaW5nOigpPT5LdSxCYXR0ZXJ5RnVsbDooKT0+SnUsQmF0dGVyeUxvdzooKT0+ZXAsQmF0dGVyeU1lZGl1bTooKT0+YXAsQmF0dGVyeVBsdXM6KCk9PnRwLEJhdHRlcnlXYXJuaW5nOigpPT5ycCxCZWFrZXI6KCk9Pm9wLEJlYW46KCk9Pm5wLEJlYW5PZmY6KCk9PnNwLEJlZDooKT0+ZHAsQmVkRG91YmxlOigpPT5scCxCZWRTaW5nbGU6KCk9PmNwLEJlZWY6KCk9PmZwLEJlZXI6KCk9PnBwLEJlZXJPZmY6KCk9PnVwLEJlbGw6KCk9PnlwLEJlbGxEb3Q6KCk9PmhwLEJlbGxFbGVjdHJpYzooKT0+bXAsQmVsbE1pbnVzOigpPT5ncCxCZWxsT2ZmOigpPT54cCxCZWxsUGx1czooKT0+YnAsQmVsbFJpbmc6KCk9PnZwLEJldHdlZW5Ib3Jpem9uYWxFbmQ6KCk9PlduLEJldHdlZW5Ib3Jpem9uYWxTdGFydDooKT0+R24sQmV0d2Vlbkhvcml6b250YWxFbmQ6KCk9PlduLEJldHdlZW5Ib3Jpem9udGFsU3RhcnQ6KCk9PkduLEJldHdlZW5WZXJ0aWNhbEVuZDooKT0+d3AsQmV0d2VlblZlcnRpY2FsU3RhcnQ6KCk9Pk1wLEJpY2Vwc0ZsZXhlZDooKT0+enAsQmlrZTooKT0+a3AsQmluYXJ5OigpPT5TcCxCaW5vY3VsYXJzOigpPT5McCxCaW9oYXphcmQ6KCk9PkNwLEJpcmQ6KCk9Pl9wLEJpcmRob3VzZTooKT0+VHAsQml0Y29pbjooKT0+QXAsQmxlbmQ6KCk9PiRwLEJsaW5kczooKT0+RHAsQmxvY2tzOigpPT5FcCxCbHVldG9vdGg6KCk9PkZwLEJsdWV0b290aENvbm5lY3RlZDooKT0+TnAsQmx1ZXRvb3RoT2ZmOigpPT5QcCxCbHVldG9vdGhTZWFyY2hpbmc6KCk9PklwLEJvbGQ6KCk9Pk9wLEJvbHQ6KCk9PkJwLEJvbWI6KCk9PlJwLEJvbmU6KCk9PkhwLEJvb2s6KCk9PnU5LEJvb2tBOigpPT5xcCxCb29rQWxlcnQ6KCk9PlZwLEJvb2tBdWRpbzooKT0+VXAsQm9va0NoZWNrOigpPT5qcCxCb29rQ29weTooKT0+V3AsQm9va0Rhc2hlZDooKT0+WW4sQm9va0Rvd246KCk9PkdwLEJvb2tIZWFkcGhvbmVzOigpPT5ZcCxCb29rSGVhcnQ6KCk9PlpwLEJvb2tJbWFnZTooKT0+UXAsQm9va0tleTooKT0+WHAsQm9va0xvY2s6KCk9PktwLEJvb2tNYXJrZWQ6KCk9PkpwLEJvb2tNaW51czooKT0+ZTksQm9va09wZW46KCk9PnI5LEJvb2tPcGVuQ2hlY2s6KCk9PnQ5LEJvb2tPcGVuVGV4dDooKT0+YTksQm9va1BsdXM6KCk9Pmk5LEJvb2tTZWFyY2g6KCk9Pm85LEJvb2tUZW1wbGF0ZTooKT0+WW4sQm9va1RleHQ6KCk9PnM5LEJvb2tUeXBlOigpPT5sOSxCb29rVXA6KCk9Pm45LEJvb2tVcDI6KCk9PmM5LEJvb2tVc2VyOigpPT5kOSxCb29rWDooKT0+ZjksQm9va21hcms6KCk9Png5LEJvb2ttYXJrQ2hlY2s6KCk9PnA5LEJvb2ttYXJrTWludXM6KCk9Pmg5LEJvb2ttYXJrUGx1czooKT0+bTksQm9va21hcmtYOigpPT5nOSxCb29tQm94OigpPT5iOSxCb3Q6KCk9Pnc5LEJvdE1lc3NhZ2VTcXVhcmU6KCk9PnY5LEJvdE9mZjooKT0+eTksQm90dGxlV2luZTooKT0+TTksQm93QXJyb3c6KCk9Pno5LEJveDooKT0+azksQm94U2VsZWN0OigpPT5VMyxCb3hlczooKT0+UzksQnJhY2VzOigpPT5abixCcmFja2V0czooKT0+QzksQnJhaW46KCk9Pl85LEJyYWluQ2lyY3VpdDooKT0+TDksQnJhaW5Db2c6KCk9PlQ5LEJyaWNrV2FsbDooKT0+RDksQnJpY2tXYWxsRmlyZTooKT0+QTksQnJpY2tXYWxsU2hpZWxkOigpPT4kOSxCcmllZmNhc2U6KCk9Pkk5LEJyaWVmY2FzZUJ1c2luZXNzOigpPT5FOSxCcmllZmNhc2VDb252ZXlvckJlbHQ6KCk9Pk45LEJyaWVmY2FzZU1lZGljYWw6KCk9PlA5LEJyaW5nVG9Gcm9udDooKT0+RjksQnJ1c2g6KCk9PkI5LEJydXNoQ2xlYW5pbmc6KCk9Pk85LEJ1YmJsZXM6KCk9PlI5LEJ1ZzooKT0+VjksQnVnT2ZmOigpPT5IOSxCdWdQbGF5OigpPT5xOSxCdWlsZGluZzooKT0+ajksQnVpbGRpbmcyOigpPT5VOSxCdXM6KCk9Pkc5LEJ1c0Zyb250OigpPT5XOSxDYWJsZTooKT0+WjksQ2FibGVDYXI6KCk9Plk5LENha2U6KCk9PlE5LENha2VTbGljZTooKT0+WDksQ2FsY3VsYXRvcjooKT0+SzksQ2FsZW5kYXI6KCk9PnZoLENhbGVuZGFyMTooKT0+SjksQ2FsZW5kYXJBcnJvd0Rvd246KCk9PmVoLENhbGVuZGFyQXJyb3dVcDooKT0+dGgsQ2FsZW5kYXJDaGVjazooKT0+cmgsQ2FsZW5kYXJDaGVjazI6KCk9PmFoLENhbGVuZGFyQ2xvY2s6KCk9Pm9oLENhbGVuZGFyQ29nOigpPT5paCxDYWxlbmRhckRheXM6KCk9PnNoLENhbGVuZGFyRm9sZDooKT0+bmgsQ2FsZW5kYXJIZWFydDooKT0+bGgsQ2FsZW5kYXJNaW51czooKT0+ZGgsQ2FsZW5kYXJNaW51czI6KCk9PmNoLENhbGVuZGFyT2ZmOigpPT5maCxDYWxlbmRhclBsdXM6KCk9PnBoLENhbGVuZGFyUGx1czI6KCk9PnVoLENhbGVuZGFyUmFuZ2U6KCk9PmhoLENhbGVuZGFyU2VhcmNoOigpPT5taCxDYWxlbmRhclN5bmM6KCk9PmdoLENhbGVuZGFyWDooKT0+YmgsQ2FsZW5kYXJYMjooKT0+eGgsQ2FsZW5kYXJzOigpPT55aCxDYW1lcmE6KCk9Pk1oLENhbWVyYU9mZjooKT0+d2gsQ2FuZGxlc3RpY2tDaGFydDooKT0+ZTAsQ2FuZHk6KCk9PlNoLENhbmR5Q2FuZTooKT0+emgsQ2FuZHlPZmY6KCk9PmtoLENhbm5hYmlzOigpPT5MaCxDYW5uYWJpc09mZjooKT0+Q2gsQ2FwdGlvbnM6KCk9PlhuLENhcHRpb25zT2ZmOigpPT5UaCxDYXI6KCk9PiRoLENhckZyb250OigpPT5faCxDYXJUYXhpRnJvbnQ6KCk9PkFoLENhcmF2YW46KCk9PkRoLENhcmRTaW06KCk9PkVoLENhcnJvdDooKT0+TmgsQ2FzZUxvd2VyOigpPT5QaCxDYXNlU2Vuc2l0aXZlOigpPT5JaCxDYXNlVXBwZXI6KCk9PkZoLENhc3NldHRlVGFwZTooKT0+T2gsQ2FzdDooKT0+QmgsQ2FzdGxlOigpPT5SaCxDYXQ6KCk9PkhoLENjdHY6KCk9PnFoLENoYXJ0QXJlYTooKT0+UW4sQ2hhcnRCYXI6KCk9PkpuLENoYXJ0QmFyQmlnOigpPT5LbixDaGFydEJhckRlY3JlYXNpbmc6KCk9PlZoLENoYXJ0QmFySW5jcmVhc2luZzooKT0+VWgsQ2hhcnRCYXJTdGFja2VkOigpPT5qaCxDaGFydENhbmRsZXN0aWNrOigpPT5lMCxDaGFydENvbHVtbjooKT0+cjAsQ2hhcnRDb2x1bW5CaWc6KCk9PnQwLENoYXJ0Q29sdW1uRGVjcmVhc2luZzooKT0+V2gsQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5hMCxDaGFydENvbHVtblN0YWNrZWQ6KCk9PkdoLENoYXJ0R2FudHQ6KCk9PlloLENoYXJ0TGluZTooKT0+aTAsQ2hhcnROZXR3b3JrOigpPT5aaCxDaGFydE5vQXhlc0NvbHVtbjooKT0+czAsQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOigpPT5YaCxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6KCk9Pm8wLENoYXJ0Tm9BeGVzQ29tYmluZWQ6KCk9PlFoLENoYXJ0Tm9BeGVzR2FudHQ6KCk9Pm4wLENoYXJ0UGllOigpPT5sMCxDaGFydFNjYXR0ZXI6KCk9PmMwLENoYXJ0U3BsaW5lOigpPT5LaCxDaGVjazooKT0+dG0sQ2hlY2tDaGVjazooKT0+SmgsQ2hlY2tDaXJjbGU6KCk9PncwLENoZWNrQ2lyY2xlMjooKT0+eTAsQ2hlY2tMaW5lOigpPT5lbSxDaGVja1NxdWFyZTooKT0+STMsQ2hlY2tTcXVhcmUyOigpPT5QMyxDaGVmSGF0OigpPT5hbSxDaGVycnk6KCk9PnJtLENoZXNzQmlzaG9wOigpPT5pbSxDaGVzc0tpbmc6KCk9Pm9tLENoZXNzS25pZ2h0OigpPT5zbSxDaGVzc1Bhd246KCk9Pm5tLENoZXNzUXVlZW46KCk9PmxtLENoZXNzUm9vazooKT0+Zm0sQ2hldnJvbkRvd246KCk9PmNtLENoZXZyb25Eb3duQ2lyY2xlOigpPT5NMCxDaGV2cm9uRG93blNxdWFyZTooKT0+RjMsQ2hldnJvbkZpcnN0OigpPT5kbSxDaGV2cm9uTGFzdDooKT0+dW0sQ2hldnJvbkxlZnQ6KCk9PnBtLENoZXZyb25MZWZ0Q2lyY2xlOigpPT56MCxDaGV2cm9uTGVmdFNxdWFyZTooKT0+TzMsQ2hldnJvblJpZ2h0OigpPT5obSxDaGV2cm9uUmlnaHRDaXJjbGU6KCk9PmswLENoZXZyb25SaWdodFNxdWFyZTooKT0+QjMsQ2hldnJvblVwOigpPT5tbSxDaGV2cm9uVXBDaXJjbGU6KCk9PlMwLENoZXZyb25VcFNxdWFyZTooKT0+UjMsQ2hldnJvbnNEb3duOigpPT54bSxDaGV2cm9uc0Rvd25VcDooKT0+Z20sQ2hldnJvbnNMZWZ0OigpPT55bSxDaGV2cm9uc0xlZnRSaWdodDooKT0+dm0sQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczooKT0+Ym0sQ2hldnJvbnNSaWdodDooKT0+TW0sQ2hldnJvbnNSaWdodExlZnQ6KCk9PndtLENoZXZyb25zVXA6KCk9PmttLENoZXZyb25zVXBEb3duOigpPT56bSxDaHJvbWU6KCk9PmQwLENocm9taXVtOigpPT5kMCxDaHVyY2g6KCk9PlNtLENpZ2FyZXR0ZTooKT0+TG0sQ2lnYXJldHRlT2ZmOigpPT5DbSxDaXJjbGU6KCk9PnFtLENpcmNsZUFsZXJ0OigpPT5mMCxDaXJjbGVBcnJvd0Rvd246KCk9PnUwLENpcmNsZUFycm93TGVmdDooKT0+cDAsQ2lyY2xlQXJyb3dPdXREb3duTGVmdDooKT0+aDAsQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6KCk9Pm0wLENpcmNsZUFycm93T3V0VXBMZWZ0OigpPT5nMCxDaXJjbGVBcnJvd091dFVwUmlnaHQ6KCk9PngwLENpcmNsZUFycm93UmlnaHQ6KCk9PmIwLENpcmNsZUFycm93VXA6KCk9PnYwLENpcmNsZUNoZWNrOigpPT55MCxDaXJjbGVDaGVja0JpZzooKT0+dzAsQ2lyY2xlQ2hldnJvbkRvd246KCk9Pk0wLENpcmNsZUNoZXZyb25MZWZ0OigpPT56MCxDaXJjbGVDaGV2cm9uUmlnaHQ6KCk9PmswLENpcmNsZUNoZXZyb25VcDooKT0+UzAsQ2lyY2xlRGFzaGVkOigpPT5UbSxDaXJjbGVEaXZpZGU6KCk9PkMwLENpcmNsZURvbGxhclNpZ246KCk9Pl9tLENpcmNsZURvdDooKT0+JG0sQ2lyY2xlRG90RGFzaGVkOigpPT5BbSxDaXJjbGVFbGxpcHNpczooKT0+RG0sQ2lyY2xlRXF1YWw6KCk9PkVtLENpcmNsZUZhZGluZ0Fycm93VXA6KCk9Pk5tLENpcmNsZUZhZGluZ1BsdXM6KCk9PlBtLENpcmNsZUdhdWdlOigpPT5MMCxDaXJjbGVIZWxwOigpPT5OaSxDaXJjbGVNaW51czooKT0+VDAsQ2lyY2xlT2ZmOigpPT5JbSxDaXJjbGVQYXJraW5nOigpPT5BMCxDaXJjbGVQYXJraW5nT2ZmOigpPT5fMCxDaXJjbGVQYXVzZTooKT0+JDAsQ2lyY2xlUGVyY2VudDooKT0+RDAsQ2lyY2xlUGlsZTooKT0+Rm0sQ2lyY2xlUGxheTooKT0+RTAsQ2lyY2xlUGx1czooKT0+TjAsQ2lyY2xlUG91bmRTdGVybGluZzooKT0+T20sQ2lyY2xlUG93ZXI6KCk9PlAwLENpcmNsZVF1ZXN0aW9uTWFyazooKT0+TmksQ2lyY2xlU2xhc2g6KCk9PkJtLENpcmNsZVNsYXNoMjooKT0+STAsQ2lyY2xlU2xhc2hlZDooKT0+STAsQ2lyY2xlU21hbGw6KCk9PlJtLENpcmNsZVN0YXI6KCk9PkhtLENpcmNsZVN0b3A6KCk9PkYwLENpcmNsZVVzZXI6KCk9PkIwLENpcmNsZVVzZXJSb3VuZDooKT0+TzAsQ2lyY2xlWDooKT0+UjAsQ2lyY3VpdEJvYXJkOigpPT5WbSxDaXRydXM6KCk9PlVtLENsYXBwZXJib2FyZDooKT0+am0sQ2xpcGJvYXJkOigpPT50ZyxDbGlwYm9hcmRDaGVjazooKT0+V20sQ2xpcGJvYXJkQ2xvY2s6KCk9PkdtLENsaXBib2FyZENvcHk6KCk9PlltLENsaXBib2FyZEVkaXQ6KCk9PnEwLENsaXBib2FyZExpc3Q6KCk9PlptLENsaXBib2FyZE1pbnVzOigpPT5YbSxDbGlwYm9hcmRQYXN0ZTooKT0+UW0sQ2xpcGJvYXJkUGVuOigpPT5xMCxDbGlwYm9hcmRQZW5MaW5lOigpPT5IMCxDbGlwYm9hcmRQbHVzOigpPT5LbSxDbGlwYm9hcmRTaWduYXR1cmU6KCk9PkgwLENsaXBib2FyZFR5cGU6KCk9PkptLENsaXBib2FyZFg6KCk9PmVnLENsb2NrOigpPT55ZyxDbG9jazE6KCk9PmFnLENsb2NrMTA6KCk9PnJnLENsb2NrMTE6KCk9PmlnLENsb2NrMTI6KCk9Pm9nLENsb2NrMjooKT0+c2csQ2xvY2szOigpPT5uZyxDbG9jazQ6KCk9PmxnLENsb2NrNTooKT0+Y2csQ2xvY2s2OigpPT5kZyxDbG9jazc6KCk9PmZnLENsb2NrODooKT0+dWcsQ2xvY2s5OigpPT5wZyxDbG9ja0FsZXJ0OigpPT5oZyxDbG9ja0Fycm93RG93bjooKT0+bWcsQ2xvY2tBcnJvd1VwOigpPT5nZyxDbG9ja0NoZWNrOigpPT54ZyxDbG9ja0ZhZGluZzooKT0+YmcsQ2xvY2tQbHVzOigpPT52ZyxDbG9zZWRDYXB0aW9uOigpPT53ZyxDbG91ZDooKT0+QmcsQ2xvdWRBbGVydDooKT0+TWcsQ2xvdWRCYWNrdXA6KCk9PnpnLENsb3VkQ2hlY2s6KCk9PmtnLENsb3VkQ29nOigpPT5TZyxDbG91ZERvd25sb2FkOigpPT5WMCxDbG91ZERyaXp6bGU6KCk9PkNnLENsb3VkRm9nOigpPT5MZyxDbG91ZEhhaWw6KCk9PlRnLENsb3VkTGlnaHRuaW5nOigpPT5fZyxDbG91ZE1vb246KCk9PiRnLENsb3VkTW9vblJhaW46KCk9PkFnLENsb3VkT2ZmOigpPT5FZyxDbG91ZFJhaW46KCk9Pk5nLENsb3VkUmFpbldpbmQ6KCk9PkRnLENsb3VkU25vdzooKT0+UGcsQ2xvdWRTdW46KCk9PkZnLENsb3VkU3VuUmFpbjooKT0+SWcsQ2xvdWRTeW5jOigpPT5PZyxDbG91ZFVwbG9hZDooKT0+VTAsQ2xvdWR5OigpPT5SZyxDbG92ZXI6KCk9PkhnLENsdWI6KCk9PnFnLENvZGU6KCk9PlZnLENvZGUyOigpPT5qMCxDb2RlU3F1YXJlOigpPT5IMyxDb2RlWG1sOigpPT5qMCxDb2RlcGVuOigpPT5VZyxDb2Rlc2FuZGJveDooKT0+amcsQ29mZmVlOigpPT5XZyxDb2c6KCk9PllnLENvaW5zOigpPT5HZyxDb2x1bW5zOigpPT5XMCxDb2x1bW5zMjooKT0+VzAsQ29sdW1uczM6KCk9PkcwLENvbHVtbnMzQ29nOigpPT5QaSxDb2x1bW5zNDooKT0+WmcsQ29sdW1uc1NldHRpbmdzOigpPT5QaSxDb21iaW5lOigpPT5YZyxDb21tYW5kOigpPT5RZyxDb21wYXNzOigpPT5LZyxDb21wb25lbnQ6KCk9PkpnLENvbXB1dGVyOigpPT5leCxDb25jaWVyZ2VCZWxsOigpPT50eCxDb25lOigpPT5heCxDb25zdHJ1Y3Rpb246KCk9PnJ4LENvbnRhY3Q6KCk9Pml4LENvbnRhY3QyOigpPT5ZMCxDb250YWN0Um91bmQ6KCk9PlkwLENvbnRhaW5lcjooKT0+b3gsQ29udHJhc3Q6KCk9PnN4LENvb2tpZTooKT0+bngsQ29va2luZ1BvdDooKT0+bHgsQ29weTooKT0+cHgsQ29weUNoZWNrOigpPT5jeCxDb3B5TWludXM6KCk9PmR4LENvcHlQbHVzOigpPT5meCxDb3B5U2xhc2g6KCk9PnV4LENvcHlYOigpPT5oeCxDb3B5bGVmdDooKT0+bXgsQ29weXJpZ2h0OigpPT5neCxDb3JuZXJEb3duTGVmdDooKT0+YngsQ29ybmVyRG93blJpZ2h0OigpPT54eCxDb3JuZXJMZWZ0RG93bjooKT0+dngsQ29ybmVyTGVmdFVwOigpPT55eCxDb3JuZXJSaWdodERvd246KCk9Pnd4LENvcm5lclJpZ2h0VXA6KCk9Pk14LENvcm5lclVwTGVmdDooKT0+engsQ29ybmVyVXBSaWdodDooKT0+a3gsQ3B1OigpPT5TeCxDcmVhdGl2ZUNvbW1vbnM6KCk9PkN4LENyZWRpdENhcmQ6KCk9Pkx4LENyb2lzc2FudDooKT0+VHgsQ3JvcDooKT0+X3gsQ3Jvc3M6KCk9PkF4LENyb3NzaGFpcjooKT0+JHgsQ3Jvd246KCk9PkR4LEN1Ym9pZDooKT0+RXgsQ3VwU29kYTooKT0+TngsQ3VybHlCcmFjZXM6KCk9PlpuLEN1cnJlbmN5OigpPT5QeCxDeWxpbmRlcjooKT0+SXgsRGFtOigpPT5GeCxEYXRhYmFzZTooKT0+UngsRGF0YWJhc2VCYWNrdXA6KCk9Pk94LERhdGFiYXNlWmFwOigpPT5CeCxEZWNpbWFsc0Fycm93TGVmdDooKT0+SHgsRGVjaW1hbHNBcnJvd1JpZ2h0OigpPT5xeCxEZWxldGU6KCk9PlZ4LERlc3NlcnQ6KCk9PlV4LERpYW1ldGVyOigpPT5qeCxEaWFtb25kOigpPT5aeCxEaWFtb25kTWludXM6KCk9Pld4LERpYW1vbmRQZXJjZW50OigpPT5aMCxEaWFtb25kUGx1czooKT0+R3gsRGljZTE6KCk9Pll4LERpY2UyOigpPT5YeCxEaWNlMzooKT0+UXgsRGljZTQ6KCk9PmViLERpY2U1OigpPT5LeCxEaWNlNjooKT0+SngsRGljZXM6KCk9PnRiLERpZmY6KCk9PmFiLERpc2M6KCk9PnNiLERpc2MyOigpPT5yYixEaXNjMzooKT0+aWIsRGlzY0FsYnVtOigpPT5vYixEaXZpZGU6KCk9Pm5iLERpdmlkZUNpcmNsZTooKT0+QzAsRGl2aWRlU3F1YXJlOigpPT5qMyxEbmE6KCk9PmRiLERuYU9mZjooKT0+bGIsRG9jazooKT0+Y2IsRG9nOigpPT5mYixEb2xsYXJTaWduOigpPT51YixEb251dDooKT0+cGIsRG9vckNsb3NlZDooKT0+bWIsRG9vckNsb3NlZExvY2tlZDooKT0+aGIsRG9vck9wZW46KCk9PnhiLERvdDooKT0+Z2IsRG90U3F1YXJlOigpPT5XMyxEb3dubG9hZDooKT0+YmIsRG93bmxvYWRDbG91ZDooKT0+VjAsRHJhZnRpbmdDb21wYXNzOigpPT52YixEcmFtYTooKT0+eWIsRHJpYmJibGU6KCk9PndiLERyaWxsOigpPT5NYixEcm9uZTooKT0+emIsRHJvcGxldDooKT0+U2IsRHJvcGxldE9mZjooKT0+a2IsRHJvcGxldHM6KCk9PkNiLERydW06KCk9PkxiLERydW1zdGljazooKT0+VGIsRHVtYmJlbGw6KCk9Pl9iLEVhcjooKT0+JGIsRWFyT2ZmOigpPT5BYixFYXJ0aDooKT0+WDAsRWFydGhMb2NrOigpPT5EYixFY2xpcHNlOigpPT5FYixFZGl0OigpPT5hcixFZGl0MjooKT0+bDMsRWRpdDM6KCk9Pm4zLEVnZzooKT0+SWIsRWdnRnJpZWQ6KCk9Pk5iLEVnZ09mZjooKT0+UGIsRWxsaXBzaXM6KCk9PkswLEVsbGlwc2lzVmVydGljYWw6KCk9PlEwLEVxdWFsOigpPT5SYixFcXVhbEFwcHJveGltYXRlbHk6KCk9PkZiLEVxdWFsTm90OigpPT5PYixFcXVhbFNxdWFyZTooKT0+RzMsRXJhc2VyOigpPT5CYixFdGhlcm5ldFBvcnQ6KCk9PkhiLEV1cm86KCk9PnFiLEV2Q2hhcmdlcjooKT0+VmIsRXhwYW5kOigpPT5qYixFeHRlcm5hbExpbms6KCk9PlViLEV5ZTooKT0+WWIsRXllQ2xvc2VkOigpPT5XYixFeWVPZmY6KCk9PkdiLEZhY2Vib29rOigpPT5YYixGYWN0b3J5OigpPT5aYixGYW46KCk9PlFiLEZhc3RGb3J3YXJkOigpPT5LYixGZWF0aGVyOigpPT5KYixGZW5jZTooKT0+ZXYsRmVycmlzV2hlZWw6KCk9PnR2LEZpZ21hOigpPT5hdixGaWxlOigpPT4kdixGaWxlQXJjaGl2ZTooKT0+cnYsRmlsZUF1ZGlvOigpPT5JaSxGaWxlQXVkaW8yOigpPT5JaSxGaWxlQXhpczNEOigpPT5KMCxGaWxlQXhpczNkOigpPT5KMCxGaWxlQmFkZ2U6KCk9PmU0LEZpbGVCYWRnZTI6KCk9PmU0LEZpbGVCYXJDaGFydDooKT0+cjQsRmlsZUJhckNoYXJ0MjooKT0+aTQsRmlsZUJveDooKT0+aXYsRmlsZUJyYWNlczooKT0+YTQsRmlsZUJyYWNlc0Nvcm5lcjooKT0+dDQsRmlsZUNoYXJ0Q29sdW1uOigpPT5pNCxGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5yNCxGaWxlQ2hhcnRMaW5lOigpPT5vNCxGaWxlQ2hhcnRQaWU6KCk9PnM0LEZpbGVDaGVjazooKT0+b3YsRmlsZUNoZWNrMjooKT0+bjQsRmlsZUNoZWNrQ29ybmVyOigpPT5uNCxGaWxlQ2xvY2s6KCk9PnN2LEZpbGVDb2RlOigpPT5udixGaWxlQ29kZTI6KCk9Pmw0LEZpbGVDb2RlQ29ybmVyOigpPT5sNCxGaWxlQ29nOigpPT5jNCxGaWxlQ29nMjooKT0+YzQsRmlsZURpZmY6KCk9Pmx2LEZpbGVEaWdpdDooKT0+Y3YsRmlsZURvd246KCk9PmR2LEZpbGVFZGl0OigpPT5tNCxGaWxlRXhjbGFtYXRpb25Qb2ludDooKT0+ZDQsRmlsZUhlYWRwaG9uZTooKT0+SWksRmlsZUhlYXJ0OigpPT5mdixGaWxlSW1hZ2U6KCk9PnV2LEZpbGVJbnB1dDooKT0+cHYsRmlsZUpzb246KCk9PmE0LEZpbGVKc29uMjooKT0+dDQsRmlsZUtleTooKT0+ZjQsRmlsZUtleTI6KCk9PmY0LEZpbGVMaW5lQ2hhcnQ6KCk9Pm80LEZpbGVMb2NrOigpPT51NCxGaWxlTG9jazI6KCk9PnU0LEZpbGVNaW51czooKT0+bXYsRmlsZU1pbnVzMjooKT0+cDQsRmlsZU1pbnVzQ29ybmVyOigpPT5wNCxGaWxlTXVzaWM6KCk9Pmh2LEZpbGVPdXRwdXQ6KCk9Pmd2LEZpbGVQZW46KCk9Pm00LEZpbGVQZW5MaW5lOigpPT5oNCxGaWxlUGllQ2hhcnQ6KCk9PnM0LEZpbGVQbGF5OigpPT5nNCxGaWxlUGx1czooKT0+eHYsRmlsZVBsdXMyOigpPT5iNCxGaWxlUGx1c0Nvcm5lcjooKT0+YjQsRmlsZVF1ZXN0aW9uOigpPT54NCxGaWxlUXVlc3Rpb25NYXJrOigpPT54NCxGaWxlU2NhbjooKT0+YnYsRmlsZVNlYXJjaDooKT0+dnYsRmlsZVNlYXJjaDI6KCk9PnY0LEZpbGVTZWFyY2hDb3JuZXI6KCk9PnY0LEZpbGVTaWduYWw6KCk9Pnk0LEZpbGVTaWduYXR1cmU6KCk9Pmg0LEZpbGVTbGlkZXJzOigpPT53dixGaWxlU3ByZWFkc2hlZXQ6KCk9Pnl2LEZpbGVTdGFjazooKT0+TXYsRmlsZVN5bWxpbms6KCk9Pnp2LEZpbGVUZXJtaW5hbDooKT0+a3YsRmlsZVRleHQ6KCk9PlN2LEZpbGVUeXBlOigpPT5DdixGaWxlVHlwZTI6KCk9Pnc0LEZpbGVUeXBlQ29ybmVyOigpPT53NCxGaWxlVXA6KCk9Pkx2LEZpbGVVc2VyOigpPT5UdixGaWxlVmlkZW86KCk9Pmc0LEZpbGVWaWRlbzI6KCk9Pk00LEZpbGVWaWRlb0NhbWVyYTooKT0+TTQsRmlsZVZvbHVtZTooKT0+X3YsRmlsZVZvbHVtZTI6KCk9Pnk0LEZpbGVXYXJuaW5nOigpPT5kNCxGaWxlWDooKT0+QXYsRmlsZVgyOigpPT56NCxGaWxlWENvcm5lcjooKT0+ejQsRmlsZXM6KCk9PkR2LEZpbG06KCk9PkV2LEZpbHRlcjooKT0+VDQsRmlsdGVyWDooKT0+TDQsRmluZ2VycHJpbnQ6KCk9Pms0LEZpbmdlcnByaW50UGF0dGVybjooKT0+azQsRmlyZUV4dGluZ3Vpc2hlcjooKT0+TnYsRmlzaDooKT0+RnYsRmlzaE9mZjooKT0+UHYsRmlzaFN5bWJvbDooKT0+SXYsRmlzaGluZ0hvb2s6KCk9Pk92LEZsYWc6KCk9PlZ2LEZsYWdPZmY6KCk9PkJ2LEZsYWdUcmlhbmdsZUxlZnQ6KCk9PlJ2LEZsYWdUcmlhbmdsZVJpZ2h0OigpPT5IdixGbGFtZTooKT0+VXYsRmxhbWVLaW5kbGluZzooKT0+cXYsRmxhc2hsaWdodDooKT0+V3YsRmxhc2hsaWdodE9mZjooKT0+anYsRmxhc2tDb25pY2FsOigpPT5adixGbGFza0NvbmljYWxPZmY6KCk9Pkd2LEZsYXNrUm91bmQ6KCk9Pll2LEZsaXBIb3Jpem9udGFsOigpPT5YdixGbGlwSG9yaXpvbnRhbDI6KCk9PlF2LEZsaXBWZXJ0aWNhbDooKT0+SnYsRmxpcFZlcnRpY2FsMjooKT0+S3YsRmxvd2VyOigpPT50eSxGbG93ZXIyOigpPT5leSxGb2N1czooKT0+YXksRm9sZEhvcml6b250YWw6KCk9PnJ5LEZvbGRWZXJ0aWNhbDooKT0+aXksRm9sZGVyOigpPT5EeSxGb2xkZXJBcmNoaXZlOigpPT5veSxGb2xkZXJDaGVjazooKT0+c3ksRm9sZGVyQ2xvY2s6KCk9Pm55LEZvbGRlckNsb3NlZDooKT0+bHksRm9sZGVyQ29kZTooKT0+Y3ksRm9sZGVyQ29nOigpPT5TNCxGb2xkZXJDb2cyOigpPT5TNCxGb2xkZXJEb3Q6KCk9PmR5LEZvbGRlckRvd246KCk9PmZ5LEZvbGRlckVkaXQ6KCk9PkM0LEZvbGRlckdpdDooKT0+cHksRm9sZGVyR2l0MjooKT0+dXksRm9sZGVySGVhcnQ6KCk9Pmh5LEZvbGRlcklucHV0OigpPT5teSxGb2xkZXJLYW5iYW46KCk9Pmd5LEZvbGRlcktleTooKT0+eHksRm9sZGVyTG9jazooKT0+YnksRm9sZGVyTWludXM6KCk9PnZ5LEZvbGRlck9wZW46KCk9Pnd5LEZvbGRlck9wZW5Eb3Q6KCk9Pnl5LEZvbGRlck91dHB1dDooKT0+TXksRm9sZGVyUGVuOigpPT5DNCxGb2xkZXJQbHVzOigpPT56eSxGb2xkZXJSb290OigpPT5reSxGb2xkZXJTZWFyY2g6KCk9PkN5LEZvbGRlclNlYXJjaDI6KCk9PlN5LEZvbGRlclN5bWxpbms6KCk9Pkx5LEZvbGRlclN5bmM6KCk9PlR5LEZvbGRlclRyZWU6KCk9Pl95LEZvbGRlclVwOigpPT5BeSxGb2xkZXJYOigpPT4keSxGb2xkZXJzOigpPT5FeSxGb290cHJpbnRzOigpPT5OeSxGb3JrS25pZmU6KCk9Pk9sLEZvcmtLbmlmZUNyb3NzZWQ6KCk9PkZsLEZvcmtsaWZ0OigpPT5QeSxGb3JtOigpPT5JeSxGb3JtSW5wdXQ6KCk9PmQzLEZvcndhcmQ6KCk9PkZ5LEZyYW1lOigpPT5PeSxGcmFtZXI6KCk9PkJ5LEZyb3duOigpPT5SeSxGdWVsOigpPT5IeSxGdWxsc2NyZWVuOigpPT5xeSxGdW5jdGlvblNxdWFyZTooKT0+WTMsRnVubmVsOigpPT5UNCxGdW5uZWxQbHVzOigpPT5WeSxGdW5uZWxYOigpPT5MNCxHYWxsZXJ5SG9yaXpvbnRhbDooKT0+anksR2FsbGVyeUhvcml6b250YWxFbmQ6KCk9PlV5LEdhbGxlcnlUaHVtYm5haWxzOigpPT5XeSxHYWxsZXJ5VmVydGljYWw6KCk9Pll5LEdhbGxlcnlWZXJ0aWNhbEVuZDooKT0+R3ksR2FtZXBhZDooKT0+UXksR2FtZXBhZDI6KCk9Plp5LEdhbWVwYWREaXJlY3Rpb25hbDooKT0+WHksR2FudHRDaGFydDooKT0+bjAsR2FudHRDaGFydFNxdWFyZTooKT0+UmksR2F1Z2U6KCk9Pkt5LEdhdWdlQ2lyY2xlOigpPT5MMCxHYXZlbDooKT0+SnksR2VtOigpPT5ldyxHZW9yZ2lhbkxhcmk6KCk9PnR3LEdob3N0OigpPT5hdyxHaWZ0OigpPT5ydyxHaXRCcmFuY2g6KCk9Pm93LEdpdEJyYW5jaE1pbnVzOigpPT5pdyxHaXRCcmFuY2hQbHVzOigpPT5zdyxHaXRDb21taXQ6KCk9Pl80LEdpdENvbW1pdEhvcml6b250YWw6KCk9Pl80LEdpdENvbW1pdFZlcnRpY2FsOigpPT5udyxHaXRDb21wYXJlOigpPT5jdyxHaXRDb21wYXJlQXJyb3dzOigpPT5sdyxHaXRGb3JrOigpPT5kdyxHaXRHcmFwaDooKT0+ZncsR2l0TWVyZ2U6KCk9PnV3LEdpdFB1bGxSZXF1ZXN0OigpPT5idyxHaXRQdWxsUmVxdWVzdEFycm93OigpPT5wdyxHaXRQdWxsUmVxdWVzdENsb3NlZDooKT0+aHcsR2l0UHVsbFJlcXVlc3RDcmVhdGU6KCk9Pmd3LEdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3c6KCk9Pm13LEdpdFB1bGxSZXF1ZXN0RHJhZnQ6KCk9Pnh3LEdpdGh1YjooKT0+dncsR2l0bGFiOigpPT55dyxHbGFzc1dhdGVyOigpPT53dyxHbGFzc2VzOigpPT5NdyxHbG9iZTooKT0+a3csR2xvYmUyOigpPT5YMCxHbG9iZUxvY2s6KCk9Pnp3LEdvYWw6KCk9PlN3LEdwdTooKT0+Q3csR3JhYjooKT0+TjQsR3JhZHVhdGlvbkNhcDooKT0+THcsR3JhcGU6KCk9PlR3LEdyaWQ6KCk9PkZpLEdyaWQyWDI6KCk9PkU0LEdyaWQyWDJDaGVjazooKT0+QTQsR3JpZDJYMlBsdXM6KCk9PiQ0LEdyaWQyWDJYOigpPT5ENCxHcmlkMngyOigpPT5FNCxHcmlkMngyQ2hlY2s6KCk9PkE0LEdyaWQyeDJQbHVzOigpPT4kNCxHcmlkMngyWDooKT0+RDQsR3JpZDNYMzooKT0+RmksR3JpZDN4MjooKT0+X3csR3JpZDN4MzooKT0+RmksR3JpcDooKT0+RHcsR3JpcEhvcml6b250YWw6KCk9PkF3LEdyaXBWZXJ0aWNhbDooKT0+JHcsR3JvdXA6KCk9PkV3LEd1aXRhcjooKT0+UHcsSGFtOigpPT5OdyxIYW1idXJnZXI6KCk9Pkl3LEhhbW1lcjooKT0+RncsSGFuZDooKT0+VncsSGFuZENvaW5zOigpPT5PdyxIYW5kRmlzdDooKT0+QncsSGFuZEdyYWI6KCk9Pk40LEhhbmRIZWFydDooKT0+UncsSGFuZEhlbHBpbmc6KCk9PlA0LEhhbmRNZXRhbDooKT0+SHcsSGFuZFBsYXR0ZXI6KCk9PnF3LEhhbmRiYWc6KCk9PlV3LEhhbmRzaGFrZTooKT0+ancsSGFyZERyaXZlOigpPT5YdyxIYXJkRHJpdmVEb3dubG9hZDooKT0+V3csSGFyZERyaXZlVXBsb2FkOigpPT5HdyxIYXJkSGF0OigpPT5ZdyxIYXNoOigpPT5adyxIYXRHbGFzc2VzOigpPT5RdyxIYXplOigpPT5LdyxIZDooKT0+SncsSGRtaVBvcnQ6KCk9PmVNLEhlYWRpbmc6KCk9Pm5NLEhlYWRpbmcxOigpPT50TSxIZWFkaW5nMjooKT0+ck0sSGVhZGluZzM6KCk9PmFNLEhlYWRpbmc0OigpPT5pTSxIZWFkaW5nNTooKT0+b00sSGVhZGluZzY6KCk9PnNNLEhlYWRwaG9uZU9mZjooKT0+bE0sSGVhZHBob25lczooKT0+Y00sSGVhZHNldDooKT0+ZE0sSGVhcnQ6KCk9PmJNLEhlYXJ0Q3JhY2s6KCk9PmZNLEhlYXJ0SGFuZHNoYWtlOigpPT51TSxIZWFydE1pbnVzOigpPT5wTSxIZWFydE9mZjooKT0+aE0sSGVhcnRQbHVzOigpPT5tTSxIZWFydFB1bHNlOigpPT5nTSxIZWF0ZXI6KCk9PnhNLEhlbGljb3B0ZXI6KCk9PnZNLEhlbHBDaXJjbGU6KCk9Pk5pLEhlbHBpbmdIYW5kOigpPT5QNCxIZXhhZ29uOigpPT55TSxIaWdobGlnaHRlcjooKT0+d00sSGlzdG9yeTooKT0+TU0sSG9tZTooKT0+STQsSG9wOigpPT56TSxIb3BPZmY6KCk9PmtNLEhvc3BpdGFsOigpPT5TTSxIb3RlbDooKT0+Q00sSG91cmdsYXNzOigpPT5MTSxIb3VzZTooKT0+STQsSG91c2VIZWFydDooKT0+VE0sSG91c2VQbHVnOigpPT5fTSxIb3VzZVBsdXM6KCk9PkFNLEhvdXNlV2lmaTooKT0+JE0sSWNlQ3JlYW06KCk9Pk80LEljZUNyZWFtMjooKT0+RjQsSWNlQ3JlYW1Cb3dsOigpPT5GNCxJY2VDcmVhbUNvbmU6KCk9Pk80LElkQ2FyZDooKT0+RU0sSWRDYXJkTGFueWFyZDooKT0+RE0sSW1hZ2U6KCk9PkhNLEltYWdlRG93bjooKT0+Tk0sSW1hZ2VNaW51czooKT0+UE0sSW1hZ2VPZmY6KCk9PklNLEltYWdlUGxheTooKT0+T00sSW1hZ2VQbHVzOigpPT5GTSxJbWFnZVVwOigpPT5CTSxJbWFnZVVwc2NhbGU6KCk9PlJNLEltYWdlczooKT0+cU0sSW1wb3J0OigpPT5WTSxJbmJveDooKT0+VU0sSW5kZW50OigpPT5CaSxJbmRlbnREZWNyZWFzZTooKT0+T2ksSW5kZW50SW5jcmVhc2U6KCk9PkJpLEluZGlhblJ1cGVlOigpPT5qTSxJbmZpbml0eTooKT0+V00sSW5mbzooKT0+R00sSW5zcGVjdDooKT0+ZWwsSW5zcGVjdGlvblBhbmVsOigpPT5ZTSxJbnN0YWdyYW06KCk9PlpNLEl0YWxpYzooKT0+WE0sSXRlcmF0aW9uQ2N3OigpPT5RTSxJdGVyYXRpb25DdzooKT0+S00sSmFwYW5lc2VZZW46KCk9PkpNLEpveXN0aWNrOigpPT5leixLYW5iYW46KCk9PnR6LEthbmJhblNxdWFyZTooKT0+WjMsS2FuYmFuU3F1YXJlRGFzaGVkOigpPT5xMyxLYXlhazooKT0+YXosS2V5OigpPT5veixLZXlSb3VuZDooKT0+cnosS2V5U3F1YXJlOigpPT5peixLZXlib2FyZDooKT0+bHosS2V5Ym9hcmRNdXNpYzooKT0+c3osS2V5Ym9hcmRPZmY6KCk9Pm56LExhbXA6KCk9Pmh6LExhbXBDZWlsaW5nOigpPT5jeixMYW1wRGVzazooKT0+ZHosTGFtcEZsb29yOigpPT5meixMYW1wV2FsbERvd246KCk9PnV6LExhbXBXYWxsVXA6KCk9PnB6LExhbmRQbG90OigpPT5teixMYW5kbWFyazooKT0+Z3osTGFuZ3VhZ2VzOigpPT54eixMYXB0b3A6KCk9PnZ6LExhcHRvcDI6KCk9PkI0LExhcHRvcE1pbmltYWw6KCk9PkI0LExhcHRvcE1pbmltYWxDaGVjazooKT0+YnosTGFzc286KCk9Pnd6LExhc3NvU2VsZWN0OigpPT55eixMYXVnaDooKT0+TXosTGF5ZXJzOigpPT5SNCxMYXllcnMyOigpPT56eixMYXllcnMzOigpPT5SNCxMYXllcnNQbHVzOigpPT5reixMYXlvdXQ6KCk9PnMzLExheW91dERhc2hib2FyZDooKT0+U3osTGF5b3V0R3JpZDooKT0+Q3osTGF5b3V0TGlzdDooKT0+THosTGF5b3V0UGFuZWxMZWZ0OigpPT5UeixMYXlvdXRQYW5lbFRvcDooKT0+X3osTGF5b3V0VGVtcGxhdGU6KCk9PkF6LExlYWY6KCk9PiR6LExlYWZ5R3JlZW46KCk9PkR6LExlY3Rlcm46KCk9PkV6LExldHRlclRleHQ6KCk9Pk1sLExpYnJhcnk6KCk9PlB6LExpYnJhcnlCaWc6KCk9Pk56LExpYnJhcnlTcXVhcmU6KCk9PlgzLExpZmVCdW95OigpPT5JeixMaWdhdHVyZTooKT0+RnosTGlnaHRidWxiOigpPT5CeixMaWdodGJ1bGJPZmY6KCk9Pk96LExpbmVDaGFydDooKT0+aTAsTGluZVNxdWlnZ2xlOigpPT5SeixMaW5rOigpPT5WeixMaW5rMjooKT0+SHosTGluazJPZmY6KCk9PnF6LExpbmtlZGluOigpPT5VeixMaXN0OigpPT5jayxMaXN0Q2hlY2s6KCk9Pmp6LExpc3RDaGVja3M6KCk9Pld6LExpc3RDaGV2cm9uc0Rvd25VcDooKT0+R3osTGlzdENoZXZyb25zVXBEb3duOigpPT5ZeixMaXN0Q29sbGFwc2U6KCk9Plp6LExpc3RFbmQ6KCk9Plh6LExpc3RGaWx0ZXI6KCk9Pkt6LExpc3RGaWx0ZXJQbHVzOigpPT5ReixMaXN0SW5kZW50RGVjcmVhc2U6KCk9Pk9pLExpc3RJbmRlbnRJbmNyZWFzZTooKT0+QmksTGlzdE1pbnVzOigpPT5KeixMaXN0TXVzaWM6KCk9PmVrLExpc3RPcmRlcmVkOigpPT50ayxMaXN0UGx1czooKT0+YWssTGlzdFJlc3RhcnQ6KCk9PnJrLExpc3RTdGFydDooKT0+aWssTGlzdFRvZG86KCk9Pm9rLExpc3RUcmVlOigpPT5zayxMaXN0VmlkZW86KCk9Pm5rLExpc3RYOigpPT5sayxMb2FkZXI6KCk9PmZrLExvYWRlcjI6KCk9Pkg0LExvYWRlckNpcmNsZTooKT0+SDQsTG9hZGVyUGlud2hlZWw6KCk9PmRrLExvY2F0ZTooKT0+aGssTG9jYXRlRml4ZWQ6KCk9PnVrLExvY2F0ZU9mZjooKT0+cGssTG9jYXRpb25FZGl0OigpPT5qNCxMb2NrOigpPT5nayxMb2NrS2V5aG9sZTooKT0+bWssTG9ja0tleWhvbGVPcGVuOigpPT5xNCxMb2NrT3BlbjooKT0+VjQsTG9nSW46KCk9PnhrLExvZ091dDooKT0+YmssTG9nczooKT0+dmssTG9sbGlwb3A6KCk9PnlrLEx1Z2dhZ2U6KCk9PndrLE1TcXVhcmU6KCk9PlEzLE1hZ25ldDooKT0+TWssTWFpbDooKT0+QWssTWFpbENoZWNrOigpPT56ayxNYWlsTWludXM6KCk9PmtrLE1haWxPcGVuOigpPT5TayxNYWlsUGx1czooKT0+Q2ssTWFpbFF1ZXN0aW9uOigpPT5VNCxNYWlsUXVlc3Rpb25NYXJrOigpPT5VNCxNYWlsU2VhcmNoOigpPT5MayxNYWlsV2FybmluZzooKT0+VGssTWFpbFg6KCk9Pl9rLE1haWxib3g6KCk9PiRrLE1haWxzOigpPT5EayxNYXA6KCk9PkdrLE1hcE1pbnVzOigpPT5FayxNYXBQaW46KCk9PlVrLE1hcFBpbkNoZWNrOigpPT5QayxNYXBQaW5DaGVja0luc2lkZTooKT0+TmssTWFwUGluSG91c2U6KCk9PklrLE1hcFBpbk1pbnVzOigpPT5PayxNYXBQaW5NaW51c0luc2lkZTooKT0+RmssTWFwUGluT2ZmOigpPT5CayxNYXBQaW5QZW46KCk9Pmo0LE1hcFBpblBsdXM6KCk9PkhrLE1hcFBpblBsdXNJbnNpZGU6KCk9PlJrLE1hcFBpblg6KCk9PlZrLE1hcFBpblhJbnNpZGU6KCk9PnFrLE1hcFBpbm5lZDooKT0+amssTWFwUGx1czooKT0+V2ssTWFyczooKT0+WmssTWFyc1N0cm9rZTooKT0+WWssTWFydGluaTooKT0+WGssTWF4aW1pemU6KCk9PktrLE1heGltaXplMjooKT0+UWssTWVkYWw6KCk9PnRTLE1lZ2FwaG9uZTooKT0+ZVMsTWVnYXBob25lT2ZmOigpPT5KayxNZWg6KCk9PmFTLE1lbW9yeVN0aWNrOigpPT5yUyxNZW51OigpPT5vUyxNZW51U3F1YXJlOigpPT5LMyxNZXJnZTooKT0+aVMsTWVzc2FnZUNpcmNsZTooKT0+bVMsTWVzc2FnZUNpcmNsZUNvZGU6KCk9PnNTLE1lc3NhZ2VDaXJjbGVEYXNoZWQ6KCk9Pm5TLE1lc3NhZ2VDaXJjbGVIZWFydDooKT0+bFMsTWVzc2FnZUNpcmNsZU1vcmU6KCk9PmNTLE1lc3NhZ2VDaXJjbGVPZmY6KCk9PmRTLE1lc3NhZ2VDaXJjbGVQbHVzOigpPT5mUyxNZXNzYWdlQ2lyY2xlUXVlc3Rpb246KCk9Plc0LE1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcms6KCk9Plc0LE1lc3NhZ2VDaXJjbGVSZXBseTooKT0+dVMsTWVzc2FnZUNpcmNsZVdhcm5pbmc6KCk9PnBTLE1lc3NhZ2VDaXJjbGVYOigpPT5oUyxNZXNzYWdlU3F1YXJlOigpPT4kUyxNZXNzYWdlU3F1YXJlQ29kZTooKT0+Z1MsTWVzc2FnZVNxdWFyZURhc2hlZDooKT0+eFMsTWVzc2FnZVNxdWFyZURpZmY6KCk9PmJTLE1lc3NhZ2VTcXVhcmVEb3Q6KCk9PnZTLE1lc3NhZ2VTcXVhcmVIZWFydDooKT0+eVMsTWVzc2FnZVNxdWFyZUxvY2s6KCk9PndTLE1lc3NhZ2VTcXVhcmVNb3JlOigpPT5NUyxNZXNzYWdlU3F1YXJlT2ZmOigpPT56UyxNZXNzYWdlU3F1YXJlUGx1czooKT0+a1MsTWVzc2FnZVNxdWFyZVF1b3RlOigpPT5TUyxNZXNzYWdlU3F1YXJlUmVwbHk6KCk9PkNTLE1lc3NhZ2VTcXVhcmVTaGFyZTooKT0+TFMsTWVzc2FnZVNxdWFyZVRleHQ6KCk9PlRTLE1lc3NhZ2VTcXVhcmVXYXJuaW5nOigpPT5fUyxNZXNzYWdlU3F1YXJlWDooKT0+QVMsTWVzc2FnZXNTcXVhcmU6KCk9PkRTLE1pYzooKT0+TlMsTWljMjooKT0+RzQsTWljT2ZmOigpPT5FUyxNaWNWb2NhbDooKT0+RzQsTWljcm9jaGlwOigpPT5QUyxNaWNyb3Njb3BlOigpPT5JUyxNaWNyb3dhdmU6KCk9PkZTLE1pbGVzdG9uZTooKT0+T1MsTWlsazooKT0+UlMsTWlsa09mZjooKT0+QlMsTWluaW1pemU6KCk9PnFTLE1pbmltaXplMjooKT0+SFMsTWludXM6KCk9PlZTLE1pbnVzQ2lyY2xlOigpPT5UMCxNaW51c1NxdWFyZTooKT0+SjMsTW9uaXRvcjooKT0+ckMsTW9uaXRvckNoZWNrOigpPT5VUyxNb25pdG9yQ2xvdWQ6KCk9PmpTLE1vbml0b3JDb2c6KCk9PldTLE1vbml0b3JEb3Q6KCk9PkdTLE1vbml0b3JEb3duOigpPT5ZUyxNb25pdG9yT2ZmOigpPT5aUyxNb25pdG9yUGF1c2U6KCk9PlhTLE1vbml0b3JQbGF5OigpPT5RUyxNb25pdG9yU21hcnRwaG9uZTooKT0+S1MsTW9uaXRvclNwZWFrZXI6KCk9PkpTLE1vbml0b3JTdG9wOigpPT5lQyxNb25pdG9yVXA6KCk9PnRDLE1vbml0b3JYOigpPT5hQyxNb29uOigpPT5zQyxNb29uU3RhcjooKT0+aUMsTW9yZUhvcml6b250YWw6KCk9PkswLE1vcmVWZXJ0aWNhbDooKT0+UTAsTW90b3JiaWtlOigpPT5vQyxNb3VudGFpbjooKT0+bEMsTW91bnRhaW5Tbm93OigpPT5uQyxNb3VzZTooKT0+bUMsTW91c2VPZmY6KCk9PmNDLE1vdXNlUG9pbnRlcjooKT0+aEMsTW91c2VQb2ludGVyMjooKT0+ZkMsTW91c2VQb2ludGVyMk9mZjooKT0+ZEMsTW91c2VQb2ludGVyQmFuOigpPT51QyxNb3VzZVBvaW50ZXJDbGljazooKT0+cEMsTW91c2VQb2ludGVyU3F1YXJlRGFzaGVkOigpPT5WMyxNb3ZlOigpPT5UQyxNb3ZlM0Q6KCk9Plk0LE1vdmUzZDooKT0+WTQsTW92ZURpYWdvbmFsOigpPT54QyxNb3ZlRGlhZ29uYWwyOigpPT5nQyxNb3ZlRG93bjooKT0+eUMsTW92ZURvd25MZWZ0OigpPT5iQyxNb3ZlRG93blJpZ2h0OigpPT52QyxNb3ZlSG9yaXpvbnRhbDooKT0+TUMsTW92ZUxlZnQ6KCk9PndDLE1vdmVSaWdodDooKT0+ekMsTW92ZVVwOigpPT5DQyxNb3ZlVXBMZWZ0OigpPT5rQyxNb3ZlVXBSaWdodDooKT0+U0MsTW92ZVZlcnRpY2FsOigpPT5MQyxNdXNpYzooKT0+REMsTXVzaWMyOigpPT5fQyxNdXNpYzM6KCk9PkFDLE11c2ljNDooKT0+JEMsTmF2aWdhdGlvbjooKT0+SUMsTmF2aWdhdGlvbjI6KCk9Pk5DLE5hdmlnYXRpb24yT2ZmOigpPT5FQyxOYXZpZ2F0aW9uT2ZmOigpPT5QQyxOZXR3b3JrOigpPT5PQyxOZXdzcGFwZXI6KCk9PkZDLE5mYzooKT0+QkMsTm9uQmluYXJ5OigpPT5SQyxOb3RlYm9vazooKT0+VUMsTm90ZWJvb2tQZW46KCk9PkhDLE5vdGVib29rVGFiczooKT0+cUMsTm90ZWJvb2tUZXh0OigpPT5WQyxOb3RlcGFkVGV4dDooKT0+V0MsTm90ZXBhZFRleHREYXNoZWQ6KCk9PmpDLE51dDooKT0+WUMsTnV0T2ZmOigpPT5HQyxPY3RhZ29uOigpPT5YQyxPY3RhZ29uQWxlcnQ6KCk9Plo0LE9jdGFnb25NaW51czooKT0+WkMsT2N0YWdvblBhdXNlOigpPT5YNCxPY3RhZ29uWDooKT0+UTQsT21lZ2E6KCk9PlFDLE9wdGlvbjooKT0+S0MsT3JiaXQ6KCk9PkpDLE9yaWdhbWk6KCk9PmVMLE91dGRlbnQ6KCk9Pk9pLFBhY2thZ2U6KCk9PmxMLFBhY2thZ2UyOigpPT50TCxQYWNrYWdlQ2hlY2s6KCk9PmFMLFBhY2thZ2VNaW51czooKT0+ckwsUGFja2FnZU9wZW46KCk9PmlMLFBhY2thZ2VQbHVzOigpPT5vTCxQYWNrYWdlU2VhcmNoOigpPT5zTCxQYWNrYWdlWDooKT0+bkwsUGFpbnRCdWNrZXQ6KCk9PmNMLFBhaW50Um9sbGVyOigpPT5kTCxQYWludGJydXNoOigpPT5mTCxQYWludGJydXNoMjooKT0+SzQsUGFpbnRicnVzaFZlcnRpY2FsOigpPT5LNCxQYWxldHRlOigpPT51TCxQYWxtdHJlZTooKT0+Q2wsUGFuZGE6KCk9PnBMLFBhbmVsQm90dG9tOigpPT5nTCxQYW5lbEJvdHRvbUNsb3NlOigpPT5oTCxQYW5lbEJvdHRvbURhc2hlZDooKT0+SjQsUGFuZWxCb3R0b21JbmFjdGl2ZTooKT0+SjQsUGFuZWxCb3R0b21PcGVuOigpPT5tTCxQYW5lbExlZnQ6KCk9PnIzLFBhbmVsTGVmdENsb3NlOigpPT5lMyxQYW5lbExlZnREYXNoZWQ6KCk9PnQzLFBhbmVsTGVmdEluYWN0aXZlOigpPT50MyxQYW5lbExlZnRPcGVuOigpPT5hMyxQYW5lbExlZnRSaWdodERhc2hlZDooKT0+eEwsUGFuZWxSaWdodDooKT0+eUwsUGFuZWxSaWdodENsb3NlOigpPT5iTCxQYW5lbFJpZ2h0RGFzaGVkOigpPT5pMyxQYW5lbFJpZ2h0SW5hY3RpdmU6KCk9PmkzLFBhbmVsUmlnaHRPcGVuOigpPT52TCxQYW5lbFRvcDooKT0+U0wsUGFuZWxUb3BCb3R0b21EYXNoZWQ6KCk9PndMLFBhbmVsVG9wQ2xvc2U6KCk9Pk1MLFBhbmVsVG9wRGFzaGVkOigpPT5vMyxQYW5lbFRvcEluYWN0aXZlOigpPT5vMyxQYW5lbFRvcE9wZW46KCk9PnpMLFBhbmVsc0xlZnRCb3R0b206KCk9PmtMLFBhbmVsc0xlZnRSaWdodDooKT0+RzAsUGFuZWxzUmlnaHRCb3R0b206KCk9PkNMLFBhbmVsc1RvcEJvdHRvbTooKT0+cDMsUGFuZWxzVG9wTGVmdDooKT0+czMsUGFwZXJjbGlwOigpPT5MTCxQYXJlbnRoZXNlczooKT0+X0wsUGFya2luZ0NpcmNsZTooKT0+QTAsUGFya2luZ0NpcmNsZU9mZjooKT0+XzAsUGFya2luZ01ldGVyOigpPT5UTCxQYXJraW5nU3F1YXJlOigpPT5hbCxQYXJraW5nU3F1YXJlT2ZmOigpPT50bCxQYXJ0eVBvcHBlcjooKT0+QUwsUGF1c2U6KCk9PiRMLFBhdXNlQ2lyY2xlOigpPT4kMCxQYXVzZU9jdGFnb246KCk9Plg0LFBhd1ByaW50OigpPT5ETCxQY0Nhc2U6KCk9PkVMLFBlbjooKT0+bDMsUGVuQm94OigpPT5hcixQZW5MaW5lOigpPT5uMyxQZW5PZmY6KCk9Pk5MLFBlblNxdWFyZTooKT0+YXIsUGVuVG9vbDooKT0+UEwsUGVuY2lsOigpPT5CTCxQZW5jaWxMaW5lOigpPT5JTCxQZW5jaWxPZmY6KCk9PkZMLFBlbmNpbFJ1bGVyOigpPT5PTCxQZW50YWdvbjooKT0+UkwsUGVyY2VudDooKT0+SEwsUGVyY2VudENpcmNsZTooKT0+RDAsUGVyY2VudERpYW1vbmQ6KCk9PlowLFBlcmNlbnRTcXVhcmU6KCk9PnJsLFBlcnNvblN0YW5kaW5nOigpPT5xTCxQaGlsaXBwaW5lUGVzbzooKT0+VkwsUGhvbmU6KCk9PlhMLFBob25lQ2FsbDooKT0+akwsUGhvbmVGb3J3YXJkZWQ6KCk9PlVMLFBob25lSW5jb21pbmc6KCk9PldMLFBob25lTWlzc2VkOigpPT5HTCxQaG9uZU9mZjooKT0+WUwsUGhvbmVPdXRnb2luZzooKT0+WkwsUGk6KCk9PlFMLFBpU3F1YXJlOigpPT5pbCxQaWFubzooKT0+S0wsUGlja2F4ZTooKT0+SkwsUGljdHVyZUluUGljdHVyZTooKT0+dFQsUGljdHVyZUluUGljdHVyZTI6KCk9PmVULFBpZUNoYXJ0OigpPT5sMCxQaWdneUJhbms6KCk9PmFULFBpbGNyb3c6KCk9Pm9ULFBpbGNyb3dMZWZ0OigpPT5yVCxQaWxjcm93UmlnaHQ6KCk9PmlULFBpbGNyb3dTcXVhcmU6KCk9Pm9sLFBpbGw6KCk9Pm5ULFBpbGxCb3R0bGU6KCk9PnNULFBpbjooKT0+Y1QsUGluT2ZmOigpPT5sVCxQaXBldHRlOigpPT5kVCxQaXp6YTooKT0+ZlQsUGxhbmU6KCk9PmhULFBsYW5lTGFuZGluZzooKT0+dVQsUGxhbmVUYWtlb2ZmOigpPT5wVCxQbGF5OigpPT5tVCxQbGF5Q2lyY2xlOigpPT5FMCxQbGF5U3F1YXJlOigpPT5zbCxQbHVnOigpPT54VCxQbHVnMjooKT0+Z1QsUGx1Z1phcDooKT0+YzMsUGx1Z1phcDI6KCk9PmMzLFBsdXM6KCk9PmJULFBsdXNDaXJjbGU6KCk9Pk4wLFBsdXNTcXVhcmU6KCk9Pm5sLFBvY2tldDooKT0+eVQsUG9ja2V0S25pZmU6KCk9PnZULFBvZGNhc3Q6KCk9PndULFBvaW50ZXI6KCk9PnpULFBvaW50ZXJPZmY6KCk9Pk1ULFBvcGNvcm46KCk9PmtULFBvcHNpY2xlOigpPT5TVCxQb3VuZFN0ZXJsaW5nOigpPT5DVCxQb3dlcjooKT0+VFQsUG93ZXJDaXJjbGU6KCk9PlAwLFBvd2VyT2ZmOigpPT5MVCxQb3dlclNxdWFyZTooKT0+bGwsUHJlc2VudGF0aW9uOigpPT5fVCxQcmludGVyOigpPT5BVCxQcmludGVyQ2hlY2s6KCk9PiRULFByb2plY3RvcjooKT0+RFQsUHJvcG9ydGlvbnM6KCk9PkVULFB1enpsZTooKT0+TlQsUHlyYW1pZDooKT0+UFQsUXJDb2RlOigpPT5JVCxRdW90ZTooKT0+RlQsUmFiYml0OigpPT5PVCxSYWRhcjooKT0+QlQsUmFkaWF0aW9uOigpPT5SVCxSYWRpY2FsOigpPT5IVCxSYWRpbzooKT0+VVQsUmFkaW9SZWNlaXZlcjooKT0+cVQsUmFkaW9Ub3dlcjooKT0+VlQsUmFkaXVzOigpPT5qVCxSYWlsU3ltYm9sOigpPT5XVCxSYWluYm93OigpPT5HVCxSYXQ6KCk9PllULFJhdGlvOigpPT5aVCxSZWNlaXB0OigpPT5vXyxSZWNlaXB0Q2VudDooKT0+WFQsUmVjZWlwdEV1cm86KCk9PlFULFJlY2VpcHRJbmRpYW5SdXBlZTooKT0+S1QsUmVjZWlwdEphcGFuZXNlWWVuOigpPT5KVCxSZWNlaXB0UG91bmRTdGVybGluZzooKT0+ZV8sUmVjZWlwdFJ1c3NpYW5SdWJsZTooKT0+dF8sUmVjZWlwdFN3aXNzRnJhbmM6KCk9PmFfLFJlY2VpcHRUZXh0OigpPT5yXyxSZWNlaXB0VHVya2lzaExpcmE6KCk9PmlfLFJlY3RhbmdsZUNpcmNsZTooKT0+c18sUmVjdGFuZ2xlRWxsaXBzaXM6KCk9PmQzLFJlY3RhbmdsZUdvZ2dsZXM6KCk9Pm5fLFJlY3RhbmdsZUhvcml6b250YWw6KCk9PmxfLFJlY3RhbmdsZVZlcnRpY2FsOigpPT5jXyxSZWN5Y2xlOigpPT5kXyxSZWRvOigpPT5wXyxSZWRvMjooKT0+Zl8sUmVkb0RvdDooKT0+dV8sUmVmcmVzaENjdzooKT0+bV8sUmVmcmVzaENjd0RvdDooKT0+aF8sUmVmcmVzaEN3OigpPT54XyxSZWZyZXNoQ3dPZmY6KCk9PmdfLFJlZnJpZ2VyYXRvcjooKT0+Yl8sUmVnZXg6KCk9PnZfLFJlbW92ZUZvcm1hdHRpbmc6KCk9PnlfLFJlcGVhdDooKT0+el8sUmVwZWF0MTooKT0+d18sUmVwZWF0MjooKT0+TV8sUmVwbGFjZTooKT0+U18sUmVwbGFjZUFsbDooKT0+a18sUmVwbHk6KCk9PkxfLFJlcGx5QWxsOigpPT5DXyxSZXdpbmQ6KCk9PlRfLFJpYmJvbjooKT0+X18sUm9ja2V0OigpPT5BXyxSb2NraW5nQ2hhaXI6KCk9PiRfLFJvbGxlckNvYXN0ZXI6KCk9PkRfLFJvc2U6KCk9PkVfLFJvdGF0ZTNEOigpPT5mMyxSb3RhdGUzZDooKT0+ZjMsUm90YXRlQ2N3OigpPT5JXyxSb3RhdGVDY3dLZXk6KCk9Pk5fLFJvdGF0ZUNjd1NxdWFyZTooKT0+UF8sUm90YXRlQ3c6KCk9Pk9fLFJvdGF0ZUN3U3F1YXJlOigpPT5GXyxSb3V0ZTooKT0+Ql8sUm91dGVPZmY6KCk9PlJfLFJvdXRlcjooKT0+SF8sUm93czooKT0+dTMsUm93czI6KCk9PnUzLFJvd3MzOigpPT5wMyxSb3dzNDooKT0+cV8sUnNzOigpPT5WXyxSdWxlcjooKT0+al8sUnVsZXJEaW1lbnNpb25MaW5lOigpPT5VXyxSdXNzaWFuUnVibGU6KCk9PldfLFNhaWxib2F0OigpPT5HXyxTYWxhZDooKT0+WV8sU2FuZHdpY2g6KCk9PlpfLFNhdGVsbGl0ZTooKT0+UV8sU2F0ZWxsaXRlRGlzaDooKT0+WF8sU2F1ZGlSaXlhbDooKT0+S18sU2F2ZTooKT0+dEEsU2F2ZUFsbDooKT0+Sl8sU2F2ZU9mZjooKT0+ZUEsU2NhbGU6KCk9PmFBLFNjYWxlM0Q6KCk9PmgzLFNjYWxlM2Q6KCk9PmgzLFNjYWxpbmc6KCk9PnJBLFNjYW46KCk9PnVBLFNjYW5CYXJjb2RlOigpPT5vQSxTY2FuRXllOigpPT5pQSxTY2FuRmFjZTooKT0+c0EsU2NhbkhlYXJ0OigpPT5uQSxTY2FuTGluZTooKT0+bEEsU2NhblFyQ29kZTooKT0+Y0EsU2NhblNlYXJjaDooKT0+ZEEsU2NhblRleHQ6KCk9PmZBLFNjYXR0ZXJDaGFydDooKT0+YzAsU2Nob29sOigpPT5wQSxTY2hvb2wyOigpPT5fbCxTY2lzc29yczooKT0+bUEsU2Npc3NvcnNMaW5lRGFzaGVkOigpPT5oQSxTY2lzc29yc1NxdWFyZTooKT0+Y2wsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206KCk9Pk4zLFNjb290ZXI6KCk9PmdBLFNjcmVlblNoYXJlOigpPT5iQSxTY3JlZW5TaGFyZU9mZjooKT0+eEEsU2Nyb2xsOigpPT55QSxTY3JvbGxUZXh0OigpPT52QSxTZWFyY2g6KCk9PkNBLFNlYXJjaEFsZXJ0OigpPT53QSxTZWFyY2hDaGVjazooKT0+ekEsU2VhcmNoQ29kZTooKT0+TUEsU2VhcmNoU2xhc2g6KCk9PmtBLFNlYXJjaFg6KCk9PlNBLFNlY3Rpb246KCk9PkxBLFNlbmQ6KCk9Pl9BLFNlbmRIb3Jpem9uYWw6KCk9Pm0zLFNlbmRIb3Jpem9udGFsOigpPT5tMyxTZW5kVG9CYWNrOigpPT5UQSxTZXBhcmF0b3JIb3Jpem9udGFsOigpPT5BQSxTZXBhcmF0b3JWZXJ0aWNhbDooKT0+JEEsU2VydmVyOigpPT5QQSxTZXJ2ZXJDb2c6KCk9PkRBLFNlcnZlckNyYXNoOigpPT5FQSxTZXJ2ZXJPZmY6KCk9Pk5BLFNldHRpbmdzOigpPT5GQSxTZXR0aW5nczI6KCk9PklBLFNoYXBlczooKT0+T0EsU2hhcmU6KCk9PlJBLFNoYXJlMjooKT0+QkEsU2hlZXQ6KCk9PkhBLFNoZWxsOigpPT5xQSxTaGllbGQ6KCk9PktBLFNoaWVsZEFsZXJ0OigpPT5WQSxTaGllbGRCYW46KCk9PlVBLFNoaWVsZENoZWNrOigpPT5qQSxTaGllbGRDbG9zZTooKT0+eDMsU2hpZWxkRWxsaXBzaXM6KCk9PldBLFNoaWVsZEhhbGY6KCk9PkdBLFNoaWVsZE1pbnVzOigpPT5ZQSxTaGllbGRPZmY6KCk9PlpBLFNoaWVsZFBsdXM6KCk9PlhBLFNoaWVsZFF1ZXN0aW9uOigpPT5nMyxTaGllbGRRdWVzdGlvbk1hcms6KCk9PmczLFNoaWVsZFVzZXI6KCk9PlFBLFNoaWVsZFg6KCk9PngzLFNoaXA6KCk9PmUkLFNoaXBXaGVlbDooKT0+SkEsU2hpcnQ6KCk9PnQkLFNob3BwaW5nQmFnOigpPT5hJCxTaG9wcGluZ0Jhc2tldDooKT0+ciQsU2hvcHBpbmdDYXJ0OigpPT5pJCxTaG92ZWw6KCk9Pm8kLFNob3dlckhlYWQ6KCk9PnMkLFNocmVkZGVyOigpPT5uJCxTaHJpbXA6KCk9PmwkLFNocmluazooKT0+YyQsU2hydWI6KCk9PmQkLFNodWZmbGU6KCk9PmYkLFNpZGViYXI6KCk9PnIzLFNpZGViYXJDbG9zZTooKT0+ZTMsU2lkZWJhck9wZW46KCk9PmEzLFNpZ21hOigpPT5wJCxTaWdtYVNxdWFyZTooKT0+ZGwsU2lnbmFsOigpPT54JCxTaWduYWxIaWdoOigpPT51JCxTaWduYWxMb3c6KCk9PmgkLFNpZ25hbE1lZGl1bTooKT0+bSQsU2lnbmFsWmVybzooKT0+ZyQsU2lnbmF0dXJlOigpPT5iJCxTaWducG9zdDooKT0+eSQsU2lnbnBvc3RCaWc6KCk9PnYkLFNpcmVuOigpPT53JCxTa2lwQmFjazooKT0+TSQsU2tpcEZvcndhcmQ6KCk9PmskLFNrdWxsOigpPT56JCxTbGFjazooKT0+UyQsU2xhc2g6KCk9PkMkLFNsYXNoU3F1YXJlOigpPT5mbCxTbGljZTooKT0+TCQsU2xpZGVyczooKT0+YjMsU2xpZGVyc0hvcml6b250YWw6KCk9PlQkLFNsaWRlcnNWZXJ0aWNhbDooKT0+YjMsU21hcnRwaG9uZTooKT0+JCQsU21hcnRwaG9uZUNoYXJnaW5nOigpPT5fJCxTbWFydHBob25lTmZjOigpPT5BJCxTbWlsZTooKT0+RSQsU21pbGVQbHVzOigpPT5EJCxTbmFpbDooKT0+TiQsU25vd2ZsYWtlOigpPT5QJCxTb2FwRGlzcGVuc2VyRHJvcGxldDooKT0+SSQsU29mYTooKT0+RiQsU29sYXJQYW5lbDooKT0+TyQsU29ydEFzYzooKT0+SG4sU29ydERlc2M6KCk9Pk9uLFNvdXA6KCk9PkIkLFNwYWNlOigpPT5SJCxTcGFkZTooKT0+SCQsU3BhcmtsZTooKT0+cSQsU3BhcmtsZXM6KCk9PnYzLFNwZWFrZXI6KCk9PlYkLFNwZWVjaDooKT0+VSQsU3BlbGxDaGVjazooKT0+VyQsU3BlbGxDaGVjazI6KCk9PmokLFNwbGluZTooKT0+WSQsU3BsaW5lUG9pbnRlcjooKT0+RyQsU3BsaXQ6KCk9PlokLFNwbGl0U3F1YXJlSG9yaXpvbnRhbDooKT0+dWwsU3BsaXRTcXVhcmVWZXJ0aWNhbDooKT0+cGwsU3Bvb2w6KCk9PlgkLFNwb3RsaWdodDooKT0+USQsU3ByYXlDYW46KCk9PkskLFNwcm91dDooKT0+SiQsU3F1YXJlOigpPT5kRCxTcXVhcmVBY3Rpdml0eTooKT0+eTMsU3F1YXJlQXJyb3dEb3duOigpPT56MyxTcXVhcmVBcnJvd0Rvd25MZWZ0OigpPT53MyxTcXVhcmVBcnJvd0Rvd25SaWdodDooKT0+TTMsU3F1YXJlQXJyb3dMZWZ0OigpPT5rMyxTcXVhcmVBcnJvd091dERvd25MZWZ0OigpPT5TMyxTcXVhcmVBcnJvd091dERvd25SaWdodDooKT0+QzMsU3F1YXJlQXJyb3dPdXRVcExlZnQ6KCk9PkwzLFNxdWFyZUFycm93T3V0VXBSaWdodDooKT0+VDMsU3F1YXJlQXJyb3dSaWdodDooKT0+XzMsU3F1YXJlQXJyb3dVcDooKT0+RDMsU3F1YXJlQXJyb3dVcExlZnQ6KCk9PkEzLFNxdWFyZUFycm93VXBSaWdodDooKT0+JDMsU3F1YXJlQXN0ZXJpc2s6KCk9PkUzLFNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzOigpPT5OMyxTcXVhcmVDaGFydEdhbnR0OigpPT5SaSxTcXVhcmVDaGVjazooKT0+UDMsU3F1YXJlQ2hlY2tCaWc6KCk9PkkzLFNxdWFyZUNoZXZyb25Eb3duOigpPT5GMyxTcXVhcmVDaGV2cm9uTGVmdDooKT0+TzMsU3F1YXJlQ2hldnJvblJpZ2h0OigpPT5CMyxTcXVhcmVDaGV2cm9uVXA6KCk9PlIzLFNxdWFyZUNvZGU6KCk9PkgzLFNxdWFyZURhc2hlZDooKT0+VTMsU3F1YXJlRGFzaGVkQm90dG9tOigpPT50RCxTcXVhcmVEYXNoZWRCb3R0b21Db2RlOigpPT5lRCxTcXVhcmVEYXNoZWRLYW5iYW46KCk9PnEzLFNxdWFyZURhc2hlZE1vdXNlUG9pbnRlcjooKT0+VjMsU3F1YXJlRGFzaGVkVG9wU29saWQ6KCk9PmFELFNxdWFyZURpdmlkZTooKT0+ajMsU3F1YXJlRG90OigpPT5XMyxTcXVhcmVFcXVhbDooKT0+RzMsU3F1YXJlRnVuY3Rpb246KCk9PlkzLFNxdWFyZUdhbnR0Q2hhcnQ6KCk9PlJpLFNxdWFyZUthbmJhbjooKT0+WjMsU3F1YXJlTGlicmFyeTooKT0+WDMsU3F1YXJlTTooKT0+UTMsU3F1YXJlTWVudTooKT0+SzMsU3F1YXJlTWludXM6KCk9PkozLFNxdWFyZU1vdXNlUG9pbnRlcjooKT0+ZWwsU3F1YXJlUGFya2luZzooKT0+YWwsU3F1YXJlUGFya2luZ09mZjooKT0+dGwsU3F1YXJlUGF1c2U6KCk9PnJELFNxdWFyZVBlbjooKT0+YXIsU3F1YXJlUGVyY2VudDooKT0+cmwsU3F1YXJlUGk6KCk9PmlsLFNxdWFyZVBpbGNyb3c6KCk9Pm9sLFNxdWFyZVBsYXk6KCk9PnNsLFNxdWFyZVBsdXM6KCk9Pm5sLFNxdWFyZVBvd2VyOigpPT5sbCxTcXVhcmVSYWRpY2FsOigpPT5pRCxTcXVhcmVSb3VuZENvcm5lcjooKT0+b0QsU3F1YXJlU2Npc3NvcnM6KCk9PmNsLFNxdWFyZVNpZ21hOigpPT5kbCxTcXVhcmVTbGFzaDooKT0+ZmwsU3F1YXJlU3BsaXRIb3Jpem9udGFsOigpPT51bCxTcXVhcmVTcGxpdFZlcnRpY2FsOigpPT5wbCxTcXVhcmVTcXVhcmU6KCk9PnNELFNxdWFyZVN0YWNrOigpPT5uRCxTcXVhcmVTdGFyOigpPT5sRCxTcXVhcmVTdG9wOigpPT5jRCxTcXVhcmVUZXJtaW5hbDooKT0+aGwsU3F1YXJlVXNlcjooKT0+Z2wsU3F1YXJlVXNlclJvdW5kOigpPT5tbCxTcXVhcmVYOigpPT54bCxTcXVhcmVzRXhjbHVkZTooKT0+ZkQsU3F1YXJlc0ludGVyc2VjdDooKT0+dUQsU3F1YXJlc1N1YnRyYWN0OigpPT5wRCxTcXVhcmVzVW5pdGU6KCk9Pm1ELFNxdWlyY2xlOigpPT5nRCxTcXVpcmNsZURhc2hlZDooKT0+aEQsU3F1aXJyZWw6KCk9PnhELFN0YW1wOigpPT5iRCxTdGFyOigpPT53RCxTdGFySGFsZjooKT0+eUQsU3Rhck9mZjooKT0+dkQsU3RhcnM6KCk9PnYzLFN0ZXBCYWNrOigpPT5NRCxTdGVwRm9yd2FyZDooKT0+ekQsU3RldGhvc2NvcGU6KCk9PmtELFN0aWNrZXI6KCk9PlNELFN0aWNreU5vdGU6KCk9PkxELFN0b25lOigpPT5DRCxTdG9wQ2lyY2xlOigpPT5GMCxTdG9yZTooKT0+VEQsU3RyZXRjaEhvcml6b250YWw6KCk9Pl9ELFN0cmV0Y2hWZXJ0aWNhbDooKT0+QUQsU3RyaWtldGhyb3VnaDooKT0+JEQsU3Vic2NyaXB0OigpPT5ERCxTdWJ0aXRsZXM6KCk9PlhuLFN1bjooKT0+RkQsU3VuRGltOigpPT5FRCxTdW5NZWRpdW06KCk9Pk5ELFN1bk1vb246KCk9PlBELFN1blNub3c6KCk9PklELFN1bnJpc2U6KCk9Pk9ELFN1bnNldDooKT0+QkQsU3VwZXJzY3JpcHQ6KCk9PlJELFN3YXRjaEJvb2s6KCk9PkhELFN3aXNzRnJhbmM6KCk9PnFELFN3aXRjaENhbWVyYTooKT0+VkQsU3dvcmQ6KCk9PlVELFN3b3JkczooKT0+akQsU3lyaW5nZTooKT0+V0QsVGFibGU6KCk9PmVFLFRhYmxlMjooKT0+R0QsVGFibGVDZWxsc01lcmdlOigpPT5ZRCxUYWJsZUNlbGxzU3BsaXQ6KCk9PlpELFRhYmxlQ29sdW1uc1NwbGl0OigpPT5RRCxUYWJsZUNvbmZpZzooKT0+UGksVGFibGVPZkNvbnRlbnRzOigpPT5YRCxUYWJsZVByb3BlcnRpZXM6KCk9PktELFRhYmxlUm93c1NwbGl0OigpPT5KRCxUYWJsZXQ6KCk9PmFFLFRhYmxldFNtYXJ0cGhvbmU6KCk9PnRFLFRhYmxldHM6KCk9PnJFLFRhZzooKT0+aUUsVGFnczooKT0+b0UsVGFsbHkxOigpPT5zRSxUYWxseTI6KCk9Pm5FLFRhbGx5MzooKT0+bEUsVGFsbHk0OigpPT5jRSxUYWxseTU6KCk9PmRFLFRhbmdlbnQ6KCk9PmZFLFRhcmdldDooKT0+dUUsVGVsZXNjb3BlOigpPT5wRSxUZW50OigpPT5tRSxUZW50VHJlZTooKT0+aEUsVGVybWluYWw6KCk9PmdFLFRlcm1pbmFsU3F1YXJlOigpPT5obCxUZXN0VHViZTooKT0+eEUsVGVzdFR1YmUyOigpPT5ibCxUZXN0VHViZURpYWdvbmFsOigpPT5ibCxUZXN0VHViZXM6KCk9PmJFLFRleHQ6KCk9PkhpLFRleHRBbGlnbkNlbnRlcjooKT0+dmwsVGV4dEFsaWduRW5kOigpPT55bCxUZXh0QWxpZ25KdXN0aWZ5OigpPT53bCxUZXh0QWxpZ25TdGFydDooKT0+SGksVGV4dEN1cnNvcjooKT0+eUUsVGV4dEN1cnNvcklucHV0OigpPT52RSxUZXh0SW5pdGlhbDooKT0+TWwsVGV4dFF1b3RlOigpPT53RSxUZXh0U2VhcmNoOigpPT5NRSxUZXh0U2VsZWN0OigpPT56bCxUZXh0U2VsZWN0aW9uOigpPT56bCxUZXh0V3JhcDooKT0+a2wsVGhlYXRlcjooKT0+ekUsVGhlcm1vbWV0ZXI6KCk9PkNFLFRoZXJtb21ldGVyU25vd2ZsYWtlOigpPT5rRSxUaGVybW9tZXRlclN1bjooKT0+U0UsVGh1bWJzRG93bjooKT0+TEUsVGh1bWJzVXA6KCk9PlRFLFRpY2tldDooKT0+UEUsVGlja2V0Q2hlY2s6KCk9Pl9FLFRpY2tldE1pbnVzOigpPT5BRSxUaWNrZXRQZXJjZW50OigpPT4kRSxUaWNrZXRQbHVzOigpPT5ERSxUaWNrZXRTbGFzaDooKT0+RUUsVGlja2V0WDooKT0+TkUsVGlja2V0czooKT0+RkUsVGlja2V0c1BsYW5lOigpPT5JRSxUaW1lcjooKT0+UkUsVGltZXJPZmY6KCk9PkJFLFRpbWVyUmVzZXQ6KCk9Pk9FLFRvZ2dsZUxlZnQ6KCk9PkhFLFRvZ2dsZVJpZ2h0OigpPT5xRSxUb2lsZXQ6KCk9PlZFLFRvb2xDYXNlOigpPT5VRSxUb29sYm94OigpPT5qRSxUb3JuYWRvOigpPT5XRSxUb3J1czooKT0+R0UsVG91Y2hwYWQ6KCk9PlpFLFRvdWNocGFkT2ZmOigpPT5ZRSxUb3dlckNvbnRyb2w6KCk9PlhFLFRveUJyaWNrOigpPT5RRSxUcmFjdG9yOigpPT5KRSxUcmFmZmljQ29uZTooKT0+S0UsVHJhaW46KCk9PlNsLFRyYWluRnJvbnQ6KCk9PnROLFRyYWluRnJvbnRUdW5uZWw6KCk9PmVOLFRyYWluVHJhY2s6KCk9PmFOLFRyYW1Gcm9udDooKT0+U2wsVHJhbnNnZW5kZXI6KCk9PnJOLFRyYXNoOigpPT5vTixUcmFzaDI6KCk9PmlOLFRyZWVEZWNpZHVvdXM6KCk9PnNOLFRyZWVQYWxtOigpPT5DbCxUcmVlUGluZTooKT0+bk4sVHJlZXM6KCk9PmxOLFRyZWxsbzooKT0+Y04sVHJlbmRpbmdEb3duOigpPT5kTixUcmVuZGluZ1VwOigpPT51TixUcmVuZGluZ1VwRG93bjooKT0+Zk4sVHJpYW5nbGU6KCk9Pm1OLFRyaWFuZ2xlQWxlcnQ6KCk9PkxsLFRyaWFuZ2xlRGFzaGVkOigpPT5wTixUcmlhbmdsZVJpZ2h0OigpPT5oTixUcm9waHk6KCk9PmdOLFRydWNrOigpPT5iTixUcnVja0VsZWN0cmljOigpPT54TixUdXJraXNoTGlyYTooKT0+dk4sVHVybnRhYmxlOigpPT55TixUdXJ0bGU6KCk9PndOLFR2OigpPT56TixUdjI6KCk9PlRsLFR2TWluaW1hbDooKT0+VGwsVHZNaW5pbWFsUGxheTooKT0+TU4sVHdpdGNoOigpPT5rTixUd2l0dGVyOigpPT5TTixUeXBlOigpPT5MTixUeXBlT3V0bGluZTooKT0+Q04sVW1icmVsbGE6KCk9Pl9OLFVtYnJlbGxhT2ZmOigpPT5UTixVbmRlcmxpbmU6KCk9PkFOLFVuZG86KCk9PkVOLFVuZG8yOigpPT4kTixVbmRvRG90OigpPT5ETixVbmZvbGRIb3Jpem9udGFsOigpPT5OTixVbmZvbGRWZXJ0aWNhbDooKT0+UE4sVW5ncm91cDooKT0+SU4sVW5pdmVyc2l0eTooKT0+X2wsVW5saW5rOigpPT5PTixVbmxpbmsyOigpPT5GTixVbmxvY2s6KCk9PlY0LFVubG9ja0tleWhvbGU6KCk9PnE0LFVucGx1ZzooKT0+Qk4sVXBsb2FkOigpPT5ITixVcGxvYWRDbG91ZDooKT0+VTAsVXNiOigpPT5STixVc2VyOigpPT5KTixVc2VyMjooKT0+TmwsVXNlckNoZWNrOigpPT5xTixVc2VyQ2hlY2syOigpPT5BbCxVc2VyQ2lyY2xlOigpPT5CMCxVc2VyQ2lyY2xlMjooKT0+TzAsVXNlckNvZzooKT0+Vk4sVXNlckNvZzI6KCk9PiRsLFVzZXJMb2NrOigpPT5VTixVc2VyTWludXM6KCk9PmpOLFVzZXJNaW51czI6KCk9PkRsLFVzZXJQZW46KCk9PldOLFVzZXJQbHVzOigpPT5HTixVc2VyUGx1czI6KCk9PkVsLFVzZXJSb3VuZDooKT0+TmwsVXNlclJvdW5kQ2hlY2s6KCk9PkFsLFVzZXJSb3VuZENvZzooKT0+JGwsVXNlclJvdW5kTWludXM6KCk9PkRsLFVzZXJSb3VuZFBlbjooKT0+WU4sVXNlclJvdW5kUGx1czooKT0+RWwsVXNlclJvdW5kU2VhcmNoOigpPT5aTixVc2VyUm91bmRYOigpPT5QbCxVc2VyU2VhcmNoOigpPT5YTixVc2VyU3F1YXJlOigpPT5nbCxVc2VyU3F1YXJlMjooKT0+bWwsVXNlclN0YXI6KCk9PlFOLFVzZXJYOigpPT5LTixVc2VyWDI6KCk9PlBsLFVzZXJzOigpPT5lUCxVc2VyczI6KCk9PklsLFVzZXJzUm91bmQ6KCk9PklsLFV0ZW5zaWxzOigpPT5PbCxVdGVuc2lsc0Nyb3NzZWQ6KCk9PkZsLFV0aWxpdHlQb2xlOigpPT5hUCxWYW46KCk9PnRQLFZhcmlhYmxlOigpPT5yUCxWYXVsdDooKT0+aVAsVmVjdG9yU3F1YXJlOigpPT5vUCxWZWdhbjooKT0+c1AsVmVuZXRpYW5NYXNrOigpPT5uUCxWZW51czooKT0+bFAsVmVudXNBbmRNYXJzOigpPT5jUCxWZXJpZmllZDooKT0+VW4sVmlicmF0ZTooKT0+ZlAsVmlicmF0ZU9mZjooKT0+ZFAsVmlkZW86KCk9PnBQLFZpZGVvT2ZmOigpPT51UCxWaWRlb3RhcGU6KCk9Pm1QLFZpZXc6KCk9PmdQLFZvaWNlbWFpbDooKT0+aFAsVm9sbGV5YmFsbDooKT0+eFAsVm9sdW1lOigpPT5NUCxWb2x1bWUxOigpPT5iUCxWb2x1bWUyOigpPT52UCxWb2x1bWVPZmY6KCk9PnlQLFZvbHVtZVg6KCk9PndQLFZvdGU6KCk9PnpQLFdhbGxldDooKT0+U1AsV2FsbGV0MjooKT0+QmwsV2FsbGV0Q2FyZHM6KCk9PmtQLFdhbGxldE1pbmltYWw6KCk9PkJsLFdhbGxwYXBlcjooKT0+Q1AsV2FuZDooKT0+TFAsV2FuZDI6KCk9PlJsLFdhbmRTcGFya2xlczooKT0+UmwsV2FyZWhvdXNlOigpPT5UUCxXYXNoaW5nTWFjaGluZTooKT0+X1AsV2F0Y2g6KCk9PkFQLFdhdmVzOigpPT5OUCxXYXZlc0Fycm93RG93bjooKT0+JFAsV2F2ZXNBcnJvd1VwOigpPT5EUCxXYXZlc0xhZGRlcjooKT0+RVAsV2F5cG9pbnRzOigpPT5QUCxXZWJjYW06KCk9PklQLFdlYmhvb2s6KCk9Pk9QLFdlYmhvb2tPZmY6KCk9PkZQLFdlaWdodDooKT0+UlAsV2VpZ2h0VGlsZGU6KCk9PkJQLFdoZWF0OigpPT5xUCxXaGVhdE9mZjooKT0+SFAsV2hvbGVXb3JkOigpPT5WUCxXaWZpOigpPT5RUCxXaWZpQ29nOigpPT5VUCxXaWZpSGlnaDooKT0+V1AsV2lmaUxvdzooKT0+alAsV2lmaU9mZjooKT0+R1AsV2lmaVBlbjooKT0+WVAsV2lmaVN5bmM6KCk9PlpQLFdpZmlaZXJvOigpPT5YUCxXaW5kOigpPT5KUCxXaW5kQXJyb3dEb3duOigpPT5LUCxXaW5lOigpPT50SSxXaW5lT2ZmOigpPT5lSSxXb3JrZmxvdzooKT0+ckksV29ybTooKT0+YUksV3JhcFRleHQ6KCk9PmtsLFdyZW5jaDooKT0+aUksWDooKT0+b0ksWENpcmNsZTooKT0+UjAsWE9jdGFnb246KCk9PlE0LFhTcXVhcmU6KCk9PnhsLFlvdXR1YmU6KCk9PnNJLFphcDooKT0+bEksWmFwT2ZmOigpPT5uSSxab29tSW46KCk9PmNJLFpvb21PdXQ6KCk9PmRJfSk7dmFyIHdJdD1uKCgpPT57RzRlKCk7WTRlKCk7WjRlKCk7WDRlKCk7UTRlKCk7SzRlKCk7SjRlKCk7ZTNlKCk7dDNlKCk7YTNlKCk7cjNlKCk7aTNlKCk7bzNlKCk7czNlKCk7bjNlKCk7bDNlKCk7YzNlKCk7ZDNlKCk7ZjNlKCk7dTNlKCk7cDNlKCk7aDNlKCk7bTNlKCk7ZzNlKCk7eDNlKCk7YjNlKCk7djNlKCk7eTNlKCk7dzNlKCk7TTNlKCk7ejNlKCk7azNlKCk7UzNlKCk7QzNlKCk7TDNlKCk7VDNlKCk7XzNlKCk7QTNlKCk7JDNlKCk7RDNlKCk7RTNlKCk7TjNlKCk7UDNlKCk7STNlKCk7RjNlKCk7TzNlKCk7QjNlKCk7UjNlKCk7SDNlKCk7cTNlKCk7VjNlKCk7VTNlKCk7ajNlKCk7VzNlKCk7RzNlKCk7WTNlKCk7WjNlKCk7WDNlKCk7UTNlKCk7SzNlKCk7SjNlKCk7ZWxlKCk7dGxlKCk7YWxlKCk7cmxlKCk7aWxlKCk7b2xlKCk7c2xlKCk7bmxlKCk7bGxlKCk7Y2xlKCk7ZGxlKCk7ZmxlKCk7dWxlKCk7cGxlKCk7aGxlKCk7bWxlKCk7Z2xlKCk7eGxlKCk7YmxlKCk7dmxlKCk7eWxlKCk7d2xlKCk7TWxlKCk7emxlKCk7a2xlKCk7U2xlKCk7Q2xlKCk7TGxlKCk7VGxlKCk7X2xlKCk7QWxlKCk7JGxlKCk7RGxlKCk7RWxlKCk7TmxlKCk7UGxlKCk7SWxlKCk7RmxlKCk7T2xlKCk7QmxlKCk7UmxlKCk7SGxlKCk7cWxlKCk7VmxlKCk7VWxlKCk7amxlKCk7V2xlKCk7R2xlKCk7WWxlKCk7WmxlKCk7WGxlKCk7UWxlKCk7S2xlKCk7SmxlKCk7ZWNlKCk7dGNlKCk7YWNlKCk7cmNlKCk7aWNlKCk7b2NlKCk7c2NlKCk7bmNlKCk7bGNlKCk7Y2NlKCk7ZGNlKCk7ZmNlKCk7dWNlKCk7cGNlKCk7aGNlKCk7bWNlKCk7Z2NlKCk7eGNlKCk7YmNlKCk7dmNlKCk7eWNlKCk7d2NlKCk7TWNlKCk7emNlKCk7a2NlKCk7U2NlKCk7Q2NlKCk7TGNlKCk7VGNlKCk7X2NlKCk7QWNlKCk7JGNlKCk7RGNlKCk7RWNlKCk7TmNlKCk7UGNlKCk7SWNlKCk7RmNlKCk7T2NlKCk7QmNlKCk7UmNlKCk7SGNlKCk7cWNlKCk7VmNlKCk7VWNlKCk7amNlKCk7V2NlKCk7R2NlKCk7WWNlKCk7WmNlKCk7WGNlKCk7UWNlKCk7S2NlKCk7SmNlKCk7ZTZlKCk7dDZlKCk7YTZlKCk7cjZlKCk7aTZlKCk7bzZlKCk7czZlKCk7bjZlKCk7bDZlKCk7YzZlKCk7ZDZlKCk7ZjZlKCk7dTZlKCk7cDZlKCk7aDZlKCk7bTZlKCk7ZzZlKCk7eDZlKCk7YjZlKCk7djZlKCk7eTZlKCk7dzZlKCk7TTZlKCk7ejZlKCk7azZlKCk7UzZlKCk7QzZlKCk7TDZlKCk7VDZlKCk7XzZlKCk7QTZlKCk7JDZlKCk7RDZlKCk7RTZlKCk7TjZlKCk7UDZlKCk7STZlKCk7RjZlKCk7TzZlKCk7QjZlKCk7UjZlKCk7SDZlKCk7cTZlKCk7VjZlKCk7VTZlKCk7ajZlKCk7VzZlKCk7RzZlKCk7WTZlKCk7WjZlKCk7WDZlKCk7UTZlKCk7SzZlKCk7SjZlKCk7ZTVlKCk7dDVlKCk7YTVlKCk7cjVlKCk7aTVlKCk7bzVlKCk7czVlKCk7bjVlKCk7bDVlKCk7YzVlKCk7ZDVlKCk7ZjVlKCk7dTVlKCk7cDVlKCk7aDVlKCk7bTVlKCk7ZzVlKCk7eDVlKCk7YjVlKCk7djVlKCk7eTVlKCk7dzVlKCk7TTVlKCk7ejVlKCk7azVlKCk7UzVlKCk7QzVlKCk7TDVlKCk7VDVlKCk7XzVlKCk7QTVlKCk7JDVlKCk7RDVlKCk7RTVlKCk7TjVlKCk7UDVlKCk7STVlKCk7RjVlKCk7TzVlKCk7QjVlKCk7UjVlKCk7SDVlKCk7cTVlKCk7VjVlKCk7VTVlKCk7ajVlKCk7VzVlKCk7RzVlKCk7WTVlKCk7WjVlKCk7WDVlKCk7UTVlKCk7SzVlKCk7SjVlKCk7ZThlKCk7dDhlKCk7YThlKCk7cjhlKCk7aThlKCk7bzhlKCk7czhlKCk7bjhlKCk7bDhlKCk7YzhlKCk7ZDhlKCk7ZjhlKCk7dThlKCk7cDhlKCk7aDhlKCk7bThlKCk7ZzhlKCk7eDhlKCk7YjhlKCk7djhlKCk7eThlKCk7dzhlKCk7TThlKCk7ejhlKCk7azhlKCk7UzhlKCk7QzhlKCk7TDhlKCk7VDhlKCk7XzhlKCk7QThlKCk7JDhlKCk7RDhlKCk7RThlKCk7TjhlKCk7UDhlKCk7SThlKCk7RjhlKCk7TzhlKCk7QjhlKCk7UjhlKCk7SDhlKCk7cThlKCk7VjhlKCk7VThlKCk7ajhlKCk7VzhlKCk7RzhlKCk7WThlKCk7WjhlKCk7WDhlKCk7UThlKCk7SzhlKCk7SjhlKCk7ZWRlKCk7dGRlKCk7YWRlKCk7cmRlKCk7aWRlKCk7b2RlKCk7c2RlKCk7bmRlKCk7bGRlKCk7Y2RlKCk7ZGRlKCk7ZmRlKCk7dWRlKCk7cGRlKCk7aGRlKCk7bWRlKCk7Z2RlKCk7eGRlKCk7YmRlKCk7dmRlKCk7eWRlKCk7d2RlKCk7TWRlKCk7emRlKCk7a2RlKCk7U2RlKCk7Q2RlKCk7TGRlKCk7VGRlKCk7X2RlKCk7QWRlKCk7JGRlKCk7RGRlKCk7RWRlKCk7TmRlKCk7UGRlKCk7SWRlKCk7RmRlKCk7T2RlKCk7QmRlKCk7UmRlKCk7SGRlKCk7cWRlKCk7VmRlKCk7VWRlKCk7amRlKCk7V2RlKCk7R2RlKCk7WWRlKCk7WmRlKCk7WGRlKCk7UWRlKCk7S2RlKCk7SmRlKCk7ZTdlKCk7dDdlKCk7YTdlKCk7cjdlKCk7aTdlKCk7bzdlKCk7czdlKCk7bjdlKCk7bDdlKCk7YzdlKCk7ZDdlKCk7ZjdlKCk7dTdlKCk7cDdlKCk7aDdlKCk7bTdlKCk7ZzdlKCk7eDdlKCk7YjdlKCk7djdlKCk7eTdlKCk7dzdlKCk7TTdlKCk7ejdlKCk7azdlKCk7UzdlKCk7QzdlKCk7TDdlKCk7VDdlKCk7XzdlKCk7QTdlKCk7JDdlKCk7RDdlKCk7RTdlKCk7TjdlKCk7UDdlKCk7STdlKCk7RjdlKCk7TzdlKCk7QjdlKCk7UjdlKCk7SDdlKCk7cTdlKCk7VjdlKCk7VTdlKCk7ajdlKCk7VzdlKCk7RzdlKCk7WTdlKCk7WjdlKCk7WDdlKCk7UTdlKCk7SzdlKCk7SjdlKCk7ZWZlKCk7dGZlKCk7YWZlKCk7cmZlKCk7aWZlKCk7b2ZlKCk7c2ZlKCk7bmZlKCk7bGZlKCk7Y2ZlKCk7ZGZlKCk7ZmZlKCk7dWZlKCk7cGZlKCk7aGZlKCk7bWZlKCk7Z2ZlKCk7eGZlKCk7YmZlKCk7dmZlKCk7eWZlKCk7d2ZlKCk7TWZlKCk7emZlKCk7a2ZlKCk7U2ZlKCk7Q2ZlKCk7TGZlKCk7VGZlKCk7X2ZlKCk7QWZlKCk7JGZlKCk7RGZlKCk7RWZlKCk7TmZlKCk7UGZlKCk7SWZlKCk7RmZlKCk7T2ZlKCk7QmZlKCk7UmZlKCk7SGZlKCk7cWZlKCk7VmZlKCk7VWZlKCk7amZlKCk7V2ZlKCk7R2ZlKCk7WWZlKCk7WmZlKCk7WGZlKCk7UWZlKCk7S2ZlKCk7SmZlKCk7ZXVlKCk7dHVlKCk7YXVlKCk7cnVlKCk7aXVlKCk7b3VlKCk7c3VlKCk7bnVlKCk7bHVlKCk7Y3VlKCk7ZHVlKCk7ZnVlKCk7dXVlKCk7cHVlKCk7aHVlKCk7bXVlKCk7Z3VlKCk7eHVlKCk7YnVlKCk7dnVlKCk7eXVlKCk7d3VlKCk7TXVlKCk7enVlKCk7a3VlKCk7U3VlKCk7Q3VlKCk7THVlKCk7VHVlKCk7X3VlKCk7QXVlKCk7JHVlKCk7RHVlKCk7RXVlKCk7TnVlKCk7UHVlKCk7SXVlKCk7RnVlKCk7T3VlKCk7QnVlKCk7UnVlKCk7SHVlKCk7cXVlKCk7VnVlKCk7VXVlKCk7anVlKCk7V3VlKCk7R3VlKCk7WXVlKCk7WnVlKCk7WHVlKCk7UXVlKCk7S3VlKCk7SnVlKCk7ZXBlKCk7dHBlKCk7YXBlKCk7cnBlKCk7aXBlKCk7b3BlKCk7c3BlKCk7bnBlKCk7bHBlKCk7Y3BlKCk7ZHBlKCk7ZnBlKCk7dXBlKCk7cHBlKCk7aHBlKCk7bXBlKCk7Z3BlKCk7eHBlKCk7YnBlKCk7dnBlKCk7eXBlKCk7d3BlKCk7TXBlKCk7enBlKCk7a3BlKCk7U3BlKCk7Q3BlKCk7THBlKCk7VHBlKCk7X3BlKCk7QXBlKCk7JHBlKCk7RHBlKCk7RXBlKCk7TnBlKCk7UHBlKCk7SXBlKCk7RnBlKCk7T3BlKCk7QnBlKCk7UnBlKCk7SHBlKCk7cXBlKCk7VnBlKCk7VXBlKCk7anBlKCk7V3BlKCk7R3BlKCk7WXBlKCk7WnBlKCk7WHBlKCk7UXBlKCk7S3BlKCk7SnBlKCk7ZTllKCk7dDllKCk7YTllKCk7cjllKCk7aTllKCk7bzllKCk7czllKCk7bjllKCk7bDllKCk7YzllKCk7ZDllKCk7ZjllKCk7dTllKCk7cDllKCk7aDllKCk7bTllKCk7ZzllKCk7eDllKCk7YjllKCk7djllKCk7eTllKCk7dzllKCk7TTllKCk7ejllKCk7azllKCk7UzllKCk7QzllKCk7TDllKCk7VDllKCk7XzllKCk7QTllKCk7JDllKCk7RDllKCk7RTllKCk7TjllKCk7UDllKCk7STllKCk7RjllKCk7TzllKCk7QjllKCk7UjllKCk7SDllKCk7cTllKCk7VjllKCk7VTllKCk7ajllKCk7VzllKCk7RzllKCk7WTllKCk7WjllKCk7WDllKCk7UTllKCk7SzllKCk7SjllKCk7ZWhlKCk7dGhlKCk7YWhlKCk7cmhlKCk7aWhlKCk7b2hlKCk7c2hlKCk7bmhlKCk7bGhlKCk7Y2hlKCk7ZGhlKCk7ZmhlKCk7dWhlKCk7cGhlKCk7aGhlKCk7bWhlKCk7Z2hlKCk7eGhlKCk7YmhlKCk7dmhlKCk7eWhlKCk7d2hlKCk7TWhlKCk7emhlKCk7a2hlKCk7U2hlKCk7Q2hlKCk7TGhlKCk7VGhlKCk7X2hlKCk7QWhlKCk7JGhlKCk7RGhlKCk7RWhlKCk7TmhlKCk7UGhlKCk7SWhlKCk7RmhlKCk7T2hlKCk7QmhlKCk7UmhlKCk7SGhlKCk7cWhlKCk7VmhlKCk7VWhlKCk7amhlKCk7V2hlKCk7R2hlKCk7WWhlKCk7WmhlKCk7WGhlKCk7UWhlKCk7S2hlKCk7SmhlKCk7ZW1lKCk7dG1lKCk7YW1lKCk7cm1lKCk7aW1lKCk7b21lKCk7c21lKCk7bm1lKCk7bG1lKCk7Y21lKCk7ZG1lKCk7Zm1lKCk7dW1lKCk7cG1lKCk7aG1lKCk7bW1lKCk7Z21lKCk7eG1lKCk7Ym1lKCk7dm1lKCk7eW1lKCk7d21lKCk7TW1lKCk7em1lKCk7a21lKCk7U21lKCk7Q21lKCk7TG1lKCk7VG1lKCk7X21lKCk7QW1lKCk7JG1lKCk7RG1lKCk7RW1lKCk7Tm1lKCk7UG1lKCk7SW1lKCk7Rm1lKCk7T21lKCk7Qm1lKCk7Um1lKCk7SG1lKCk7cW1lKCk7Vm1lKCk7VW1lKCk7am1lKCk7V21lKCk7R21lKCk7WW1lKCk7Wm1lKCk7WG1lKCk7UW1lKCk7S21lKCk7Sm1lKCk7ZWdlKCk7dGdlKCk7YWdlKCk7cmdlKCk7aWdlKCk7b2dlKCk7c2dlKCk7bmdlKCk7bGdlKCk7Y2dlKCk7ZGdlKCk7ZmdlKCk7dWdlKCk7cGdlKCk7aGdlKCk7bWdlKCk7Z2dlKCk7eGdlKCk7YmdlKCk7dmdlKCk7eWdlKCk7d2dlKCk7TWdlKCk7emdlKCk7a2dlKCk7U2dlKCk7Q2dlKCk7TGdlKCk7VGdlKCk7X2dlKCk7QWdlKCk7JGdlKCk7RGdlKCk7RWdlKCk7TmdlKCk7UGdlKCk7SWdlKCk7RmdlKCk7T2dlKCk7QmdlKCk7UmdlKCk7SGdlKCk7cWdlKCk7VmdlKCk7VWdlKCk7amdlKCk7V2dlKCk7R2dlKCk7WWdlKCk7WmdlKCk7WGdlKCk7UWdlKCk7S2dlKCk7SmdlKCk7ZXhlKCk7dHhlKCk7YXhlKCk7cnhlKCk7aXhlKCk7b3hlKCk7c3hlKCk7bnhlKCk7bHhlKCk7Y3hlKCk7ZHhlKCk7ZnhlKCk7dXhlKCk7cHhlKCk7aHhlKCk7bXhlKCk7Z3hlKCk7eHhlKCk7YnhlKCk7dnhlKCk7eXhlKCk7d3hlKCk7TXhlKCk7enhlKCk7a3hlKCk7U3hlKCk7Q3hlKCk7THhlKCk7VHhlKCk7X3hlKCk7QXhlKCk7JHhlKCk7RHhlKCk7RXhlKCk7TnhlKCk7UHhlKCk7SXhlKCk7RnhlKCk7T3hlKCk7QnhlKCk7UnhlKCk7SHhlKCk7cXhlKCk7VnhlKCk7VXhlKCk7anhlKCk7V3hlKCk7R3hlKCk7WXhlKCk7WnhlKCk7WHhlKCk7UXhlKCk7S3hlKCk7SnhlKCk7ZWJlKCk7dGJlKCk7YWJlKCk7cmJlKCk7aWJlKCk7b2JlKCk7c2JlKCk7bmJlKCk7bGJlKCk7Y2JlKCk7ZGJlKCk7ZmJlKCk7dWJlKCk7cGJlKCk7aGJlKCk7bWJlKCk7Z2JlKCk7eGJlKCk7YmJlKCk7dmJlKCk7eWJlKCk7d2JlKCk7TWJlKCk7emJlKCk7a2JlKCk7U2JlKCk7Q2JlKCk7TGJlKCk7VGJlKCk7X2JlKCk7QWJlKCk7JGJlKCk7RGJlKCk7RWJlKCk7TmJlKCk7UGJlKCk7SWJlKCk7RmJlKCk7T2JlKCk7QmJlKCk7UmJlKCk7SGJlKCk7cWJlKCk7VmJlKCk7VWJlKCk7amJlKCk7V2JlKCk7R2JlKCk7WWJlKCk7WmJlKCk7WGJlKCk7UWJlKCk7S2JlKCk7SmJlKCk7ZXZlKCk7dHZlKCk7YXZlKCk7cnZlKCk7aXZlKCk7b3ZlKCk7c3ZlKCk7bnZlKCk7bHZlKCk7Y3ZlKCk7ZHZlKCk7ZnZlKCk7dXZlKCk7cHZlKCk7aHZlKCk7bXZlKCk7Z3ZlKCk7eHZlKCk7YnZlKCk7dnZlKCk7eXZlKCk7d3ZlKCk7TXZlKCk7enZlKCk7a3ZlKCk7U3ZlKCk7Q3ZlKCk7THZlKCk7VHZlKCk7X3ZlKCk7QXZlKCk7JHZlKCk7RHZlKCk7RXZlKCk7TnZlKCk7UHZlKCk7SXZlKCk7RnZlKCk7T3ZlKCk7QnZlKCk7UnZlKCk7SHZlKCk7cXZlKCk7VnZlKCk7VXZlKCk7anZlKCk7V3ZlKCk7R3ZlKCk7WXZlKCk7WnZlKCk7WHZlKCk7UXZlKCk7S3ZlKCk7SnZlKCk7ZXllKCk7dHllKCk7YXllKCk7cnllKCk7aXllKCk7b3llKCk7c3llKCk7bnllKCk7bHllKCk7Y3llKCk7ZHllKCk7ZnllKCk7dXllKCk7cHllKCk7aHllKCk7bXllKCk7Z3llKCk7eHllKCk7YnllKCk7dnllKCk7eXllKCk7d3llKCk7TXllKCk7enllKCk7a3llKCk7U3llKCk7Q3llKCk7THllKCk7VHllKCk7X3llKCk7QXllKCk7JHllKCk7RHllKCk7RXllKCk7TnllKCk7UHllKCk7SXllKCk7RnllKCk7T3llKCk7QnllKCk7UnllKCk7SHllKCk7cXllKCk7VnllKCk7VXllKCk7anllKCk7V3llKCk7R3llKCk7WXllKCk7WnllKCk7WHllKCk7UXllKCk7S3llKCk7SnllKCk7ZXdlKCk7dHdlKCk7YXdlKCk7cndlKCk7aXdlKCk7b3dlKCk7c3dlKCk7bndlKCk7bHdlKCk7Y3dlKCk7ZHdlKCk7ZndlKCk7dXdlKCk7cHdlKCk7aHdlKCk7bXdlKCk7Z3dlKCk7eHdlKCk7YndlKCk7dndlKCk7eXdlKCk7d3dlKCk7TXdlKCk7endlKCk7a3dlKCk7U3dlKCk7Q3dlKCk7THdlKCk7VHdlKCk7X3dlKCk7QXdlKCk7JHdlKCk7RHdlKCk7RXdlKCk7TndlKCk7UHdlKCk7SXdlKCk7RndlKCk7T3dlKCk7QndlKCk7UndlKCk7SHdlKCk7cXdlKCk7VndlKCk7VXdlKCk7andlKCk7V3dlKCk7R3dlKCk7WXdlKCk7WndlKCk7WHdlKCk7UXdlKCk7S3dlKCk7SndlKCk7ZU1lKCk7dE1lKCk7YU1lKCk7ck1lKCk7aU1lKCk7b01lKCk7c01lKCk7bk1lKCk7bE1lKCk7Y01lKCk7ZE1lKCk7Zk1lKCk7dU1lKCk7cE1lKCk7aE1lKCk7bU1lKCk7Z01lKCk7eE1lKCk7Yk1lKCk7dk1lKCk7eU1lKCk7d01lKCk7TU1lKCk7ek1lKCk7a01lKCk7U01lKCk7Q01lKCk7TE1lKCk7VE1lKCk7X01lKCk7QU1lKCk7JE1lKCk7RE1lKCk7RU1lKCk7Tk1lKCk7UE1lKCk7SU1lKCk7Rk1lKCk7T01lKCk7Qk1lKCk7Uk1lKCk7SE1lKCk7cU1lKCk7Vk1lKCk7VU1lKCk7ak1lKCk7V01lKCk7R01lKCk7WU1lKCk7Wk1lKCk7WE1lKCk7UU1lKCk7S01lKCk7Sk1lKCk7ZXplKCk7dHplKCk7YXplKCk7cnplKCk7aXplKCk7b3plKCk7c3plKCk7bnplKCk7bHplKCk7Y3plKCk7ZHplKCk7ZnplKCk7dXplKCk7cHplKCk7aHplKCk7bXplKCk7Z3plKCk7eHplKCk7YnplKCk7dnplKCk7eXplKCk7d3plKCk7TXplKCk7enplKCk7a3plKCk7U3plKCk7Q3plKCk7THplKCk7VHplKCk7X3plKCk7QXplKCk7JHplKCk7RHplKCk7RXplKCk7TnplKCk7UHplKCk7SXplKCk7RnplKCk7T3plKCk7QnplKCk7UnplKCk7SHplKCk7cXplKCk7VnplKCk7VXplKCk7anplKCk7V3plKCk7R3plKCk7WXplKCk7WnplKCk7WHplKCk7UXplKCk7S3plKCk7SnplKCk7ZWtlKCk7dGtlKCk7YWtlKCk7cmtlKCk7aWtlKCk7b2tlKCk7c2tlKCk7bmtlKCk7bGtlKCk7Y2tlKCk7ZGtlKCk7ZmtlKCk7dWtlKCk7cGtlKCk7aGtlKCk7bWtlKCk7Z2tlKCk7eGtlKCk7YmtlKCk7dmtlKCk7eWtlKCk7d2tlKCk7TWtlKCk7emtlKCk7a2tlKCk7U2tlKCk7Q2tlKCk7TGtlKCk7VGtlKCk7X2tlKCk7QWtlKCk7JGtlKCk7RGtlKCk7RWtlKCk7TmtlKCk7UGtlKCk7SWtlKCk7RmtlKCk7T2tlKCk7QmtlKCk7UmtlKCk7SGtlKCk7cWtlKCk7VmtlKCk7VWtlKCk7amtlKCk7V2tlKCk7R2tlKCk7WWtlKCk7WmtlKCk7WGtlKCk7UWtlKCk7S2tlKCk7SmtlKCk7ZVNlKCk7dFNlKCk7YVNlKCk7clNlKCk7aVNlKCk7b1NlKCk7c1NlKCk7blNlKCk7bFNlKCk7Y1NlKCk7ZFNlKCk7ZlNlKCk7dVNlKCk7cFNlKCk7aFNlKCk7bVNlKCk7Z1NlKCk7eFNlKCk7YlNlKCk7dlNlKCk7eVNlKCk7d1NlKCk7TVNlKCk7elNlKCk7a1NlKCk7U1NlKCk7Q1NlKCk7TFNlKCk7VFNlKCk7X1NlKCk7QVNlKCk7JFNlKCk7RFNlKCk7RVNlKCk7TlNlKCk7UFNlKCk7SVNlKCk7RlNlKCk7T1NlKCk7QlNlKCk7UlNlKCk7SFNlKCk7cVNlKCk7VlNlKCk7VVNlKCk7alNlKCk7V1NlKCk7R1NlKCk7WVNlKCk7WlNlKCk7WFNlKCk7UVNlKCk7S1NlKCk7SlNlKCk7ZUNlKCk7dENlKCk7YUNlKCk7ckNlKCk7aUNlKCk7b0NlKCk7c0NlKCk7bkNlKCk7bENlKCk7Y0NlKCk7ZENlKCk7ZkNlKCk7dUNlKCk7cENlKCk7aENlKCk7bUNlKCk7Z0NlKCk7eENlKCk7YkNlKCk7dkNlKCk7eUNlKCk7d0NlKCk7TUNlKCk7ekNlKCk7a0NlKCk7U0NlKCk7Q0NlKCk7TENlKCk7VENlKCk7X0NlKCk7QUNlKCk7JENlKCk7RENlKCk7RUNlKCk7TkNlKCk7UENlKCk7SUNlKCk7RkNlKCk7T0NlKCk7QkNlKCk7UkNlKCk7SENlKCk7cUNlKCk7VkNlKCk7VUNlKCk7akNlKCk7V0NlKCk7R0NlKCk7WUNlKCk7WkNlKCk7WENlKCk7UUNlKCk7S0NlKCk7SkNlKCk7ZUxlKCk7dExlKCk7YUxlKCk7ckxlKCk7aUxlKCk7b0xlKCk7c0xlKCk7bkxlKCk7bExlKCk7Y0xlKCk7ZExlKCk7ZkxlKCk7dUxlKCk7cExlKCk7aExlKCk7bUxlKCk7Z0xlKCk7eExlKCk7YkxlKCk7dkxlKCk7eUxlKCk7d0xlKCk7TUxlKCk7ekxlKCk7a0xlKCk7U0xlKCk7Q0xlKCk7TExlKCk7VExlKCk7X0xlKCk7QUxlKCk7JExlKCk7RExlKCk7RUxlKCk7TkxlKCk7UExlKCk7SUxlKCk7RkxlKCk7T0xlKCk7QkxlKCk7UkxlKCk7SExlKCk7cUxlKCk7VkxlKCk7VUxlKCk7akxlKCk7V0xlKCk7R0xlKCk7WUxlKCk7WkxlKCk7WExlKCk7UUxlKCk7S0xlKCk7SkxlKCk7ZVRlKCk7dFRlKCk7YVRlKCk7clRlKCk7aVRlKCk7b1RlKCk7c1RlKCk7blRlKCk7bFRlKCk7Y1RlKCk7ZFRlKCk7ZlRlKCk7dVRlKCk7cFRlKCk7aFRlKCk7bVRlKCk7Z1RlKCk7eFRlKCk7YlRlKCk7dlRlKCk7eVRlKCk7d1RlKCk7TVRlKCk7elRlKCk7a1RlKCk7U1RlKCk7Q1RlKCk7TFRlKCk7VFRlKCk7X1RlKCk7QVRlKCk7JFRlKCk7RFRlKCk7RVRlKCk7TlRlKCk7UFRlKCk7SVRlKCk7RlRlKCk7T1RlKCk7QlRlKCk7UlRlKCk7SFRlKCk7cVRlKCk7VlRlKCk7VVRlKCk7alRlKCk7V1RlKCk7R1RlKCk7WVRlKCk7WlRlKCk7WFRlKCk7UVRlKCk7S1RlKCk7SlRlKCk7ZV9lKCk7dF9lKCk7YV9lKCk7cl9lKCk7aV9lKCk7b19lKCk7c19lKCk7bl9lKCk7bF9lKCk7Y19lKCk7ZF9lKCk7Zl9lKCk7dV9lKCk7cF9lKCk7aF9lKCk7bV9lKCk7Z19lKCk7eF9lKCk7Yl9lKCk7dl9lKCk7eV9lKCk7d19lKCk7TV9lKCk7el9lKCk7a19lKCk7U19lKCk7Q19lKCk7TF9lKCk7VF9lKCk7X19lKCk7QV9lKCk7JF9lKCk7RF9lKCk7RV9lKCk7Tl9lKCk7UF9lKCk7SV9lKCk7Rl9lKCk7T19lKCk7Ql9lKCk7Ul9lKCk7SF9lKCk7cV9lKCk7Vl9lKCk7VV9lKCk7al9lKCk7V19lKCk7R19lKCk7WV9lKCk7Wl9lKCk7WF9lKCk7UV9lKCk7S19lKCk7Sl9lKCk7ZUFlKCk7dEFlKCk7YUFlKCk7ckFlKCk7aUFlKCk7b0FlKCk7c0FlKCk7bkFlKCk7bEFlKCk7Y0FlKCk7ZEFlKCk7ZkFlKCk7dUFlKCk7cEFlKCk7aEFlKCk7bUFlKCk7Z0FlKCk7eEFlKCk7YkFlKCk7dkFlKCk7eUFlKCk7d0FlKCk7TUFlKCk7ekFlKCk7a0FlKCk7U0FlKCk7Q0FlKCk7TEFlKCk7VEFlKCk7X0FlKCk7QUFlKCk7JEFlKCk7REFlKCk7RUFlKCk7TkFlKCk7UEFlKCk7SUFlKCk7RkFlKCk7T0FlKCk7QkFlKCk7UkFlKCk7SEFlKCk7cUFlKCk7VkFlKCk7VUFlKCk7akFlKCk7V0FlKCk7R0FlKCk7WUFlKCk7WkFlKCk7WEFlKCk7UUFlKCk7S0FlKCk7SkFlKCk7ZSRlKCk7dCRlKCk7YSRlKCk7ciRlKCk7aSRlKCk7byRlKCk7cyRlKCk7biRlKCk7bCRlKCk7YyRlKCk7ZCRlKCk7ZiRlKCk7dSRlKCk7cCRlKCk7aCRlKCk7bSRlKCk7ZyRlKCk7eCRlKCk7YiRlKCk7diRlKCk7eSRlKCk7dyRlKCk7TSRlKCk7eiRlKCk7ayRlKCk7UyRlKCk7QyRlKCk7TCRlKCk7VCRlKCk7XyRlKCk7QSRlKCk7JCRlKCk7RCRlKCk7RSRlKCk7TiRlKCk7UCRlKCk7SSRlKCk7RiRlKCk7TyRlKCk7QiRlKCk7UiRlKCk7SCRlKCk7cSRlKCk7ViRlKCk7VSRlKCk7aiRlKCk7VyRlKCk7RyRlKCk7WSRlKCk7WiRlKCk7WCRlKCk7USRlKCk7SyRlKCk7SiRlKCk7ZURlKCk7dERlKCk7YURlKCk7ckRlKCk7aURlKCk7b0RlKCk7c0RlKCk7bkRlKCk7bERlKCk7Y0RlKCk7ZERlKCk7ZkRlKCk7dURlKCk7cERlKCk7aERlKCk7bURlKCk7Z0RlKCk7eERlKCk7YkRlKCk7dkRlKCk7eURlKCk7d0RlKCk7TURlKCk7ekRlKCk7a0RlKCk7U0RlKCk7Q0RlKCk7TERlKCk7VERlKCk7X0RlKCk7QURlKCk7JERlKCk7RERlKCk7RURlKCk7TkRlKCk7UERlKCk7SURlKCk7RkRlKCk7T0RlKCk7fSk7dmFyIFdyPXt9O2V0KFdyLHtBQXJyb3dEb3duOigpPT5ONyxBQXJyb3dVcDooKT0+UDcsQUxhcmdlU21hbGw6KCk9Pkk3LEFjY2Vzc2liaWxpdHk6KCk9PkY3LEFjdGl2aXR5OigpPT5PNyxBY3Rpdml0eVNxdWFyZTooKT0+eTMsQWlyVmVudDooKT0+QjcsQWlycGxheTooKT0+UjcsQWxhcm1DaGVjazooKT0+Tm4sQWxhcm1DbG9jazooKT0+cTcsQWxhcm1DbG9ja0NoZWNrOigpPT5ObixBbGFybUNsb2NrTWludXM6KCk9PlBuLEFsYXJtQ2xvY2tPZmY6KCk9Pkg3LEFsYXJtQ2xvY2tQbHVzOigpPT5JbixBbGFybU1pbnVzOigpPT5QbixBbGFybVBsdXM6KCk9PkluLEFsYXJtU21va2U6KCk9PlY3LEFsYnVtOigpPT5VNyxBbGVydENpcmNsZTooKT0+ZjAsQWxlcnRPY3RhZ29uOigpPT5aNCxBbGVydFRyaWFuZ2xlOigpPT5MbCxBbGlnbkNlbnRlcjooKT0+dmwsQWxpZ25DZW50ZXJIb3Jpem9udGFsOigpPT5qNyxBbGlnbkNlbnRlclZlcnRpY2FsOigpPT5XNyxBbGlnbkVuZEhvcml6b250YWw6KCk9Pkc3LEFsaWduRW5kVmVydGljYWw6KCk9Plk3LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI6KCk9Plo3LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ6KCk9PlE3LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDooKT0+WDcsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjooKT0+SzcsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDooKT0+SjcsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0OigpPT5lZixBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZDooKT0+dGYsQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuOigpPT5hZixBbGlnbkp1c3RpZnk6KCk9PndsLEFsaWduTGVmdDooKT0+SGksQWxpZ25SaWdodDooKT0+eWwsQWxpZ25TdGFydEhvcml6b250YWw6KCk9PnJmLEFsaWduU3RhcnRWZXJ0aWNhbDooKT0+b2YsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI6KCk9PnNmLEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kOigpPT5uZixBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0OigpPT5sZixBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcjooKT0+Y2YsQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ6KCk9PmRmLEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ6KCk9PmZmLEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDooKT0+dWYsQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjooKT0+cGYsQW1idWxhbmNlOigpPT5oZixBbXBlcnNhbmQ6KCk9Pm1mLEFtcGVyc2FuZHM6KCk9PmdmLEFtcGhvcmE6KCk9PnhmLEFuY2hvcjooKT0+YmYsQW5ncnk6KCk9PnZmLEFubm95ZWQ6KCk9PnlmLEFudGVubmE6KCk9PndmLEFudmlsOigpPT5NZixBcGVydHVyZTooKT0+emYsQXBwV2luZG93OigpPT5TZixBcHBXaW5kb3dNYWM6KCk9PmtmLEFwcGxlOigpPT5DZixBcmNoaXZlOigpPT5fZixBcmNoaXZlUmVzdG9yZTooKT0+TGYsQXJjaGl2ZVg6KCk9PlRmLEFyZWFDaGFydDooKT0+UW4sQXJtY2hhaXI6KCk9PkFmLEFycm93QmlnRG93bjooKT0+RGYsQXJyb3dCaWdEb3duRGFzaDooKT0+JGYsQXJyb3dCaWdMZWZ0OigpPT5OZixBcnJvd0JpZ0xlZnREYXNoOigpPT5FZixBcnJvd0JpZ1JpZ2h0OigpPT5JZixBcnJvd0JpZ1JpZ2h0RGFzaDooKT0+UGYsQXJyb3dCaWdVcDooKT0+T2YsQXJyb3dCaWdVcERhc2g6KCk9PkZmLEFycm93RG93bjooKT0+WWYsQXJyb3dEb3duMDE6KCk9PkJmLEFycm93RG93bjEwOigpPT5SZixBcnJvd0Rvd25BWjooKT0+Rm4sQXJyb3dEb3duQXo6KCk9PkZuLEFycm93RG93bkNpcmNsZTooKT0+dTAsQXJyb3dEb3duRnJvbUxpbmU6KCk9PkhmLEFycm93RG93bkxlZnQ6KCk9PnFmLEFycm93RG93bkxlZnRGcm9tQ2lyY2xlOigpPT5oMCxBcnJvd0Rvd25MZWZ0RnJvbVNxdWFyZTooKT0+UzMsQXJyb3dEb3duTGVmdFNxdWFyZTooKT0+dzMsQXJyb3dEb3duTmFycm93V2lkZTooKT0+amYsQXJyb3dEb3duUmlnaHQ6KCk9PlZmLEFycm93RG93blJpZ2h0RnJvbUNpcmNsZTooKT0+bTAsQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlOigpPT5DMyxBcnJvd0Rvd25SaWdodFNxdWFyZTooKT0+TTMsQXJyb3dEb3duU3F1YXJlOigpPT56MyxBcnJvd0Rvd25Ub0RvdDooKT0+VWYsQXJyb3dEb3duVG9MaW5lOigpPT5XZixBcnJvd0Rvd25VcDooKT0+R2YsQXJyb3dEb3duV2lkZU5hcnJvdzooKT0+T24sQXJyb3dEb3duWkE6KCk9PkJuLEFycm93RG93blphOigpPT5CbixBcnJvd0xlZnQ6KCk9PktmLEFycm93TGVmdENpcmNsZTooKT0+cDAsQXJyb3dMZWZ0RnJvbUxpbmU6KCk9PlhmLEFycm93TGVmdFJpZ2h0OigpPT5aZixBcnJvd0xlZnRTcXVhcmU6KCk9PmszLEFycm93TGVmdFRvTGluZTooKT0+UWYsQXJyb3dSaWdodDooKT0+YXUsQXJyb3dSaWdodENpcmNsZTooKT0+YjAsQXJyb3dSaWdodEZyb21MaW5lOigpPT5KZixBcnJvd1JpZ2h0TGVmdDooKT0+ZXUsQXJyb3dSaWdodFNxdWFyZTooKT0+XzMsQXJyb3dSaWdodFRvTGluZTooKT0+dHUsQXJyb3dVcDooKT0+dXUsQXJyb3dVcDAxOigpPT5ydSxBcnJvd1VwMTA6KCk9Pml1LEFycm93VXBBWjooKT0+Um4sQXJyb3dVcEF6OigpPT5SbixBcnJvd1VwQ2lyY2xlOigpPT52MCxBcnJvd1VwRG93bjooKT0+b3UsQXJyb3dVcEZyb21Eb3Q6KCk9PnN1LEFycm93VXBGcm9tTGluZTooKT0+bnUsQXJyb3dVcExlZnQ6KCk9Pmx1LEFycm93VXBMZWZ0RnJvbUNpcmNsZTooKT0+ZzAsQXJyb3dVcExlZnRGcm9tU3F1YXJlOigpPT5MMyxBcnJvd1VwTGVmdFNxdWFyZTooKT0+QTMsQXJyb3dVcE5hcnJvd1dpZGU6KCk9PkhuLEFycm93VXBSaWdodDooKT0+Y3UsQXJyb3dVcFJpZ2h0RnJvbUNpcmNsZTooKT0+eDAsQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTooKT0+VDMsQXJyb3dVcFJpZ2h0U3F1YXJlOigpPT4kMyxBcnJvd1VwU3F1YXJlOigpPT5EMyxBcnJvd1VwVG9MaW5lOigpPT5kdSxBcnJvd1VwV2lkZU5hcnJvdzooKT0+ZnUsQXJyb3dVcFpBOigpPT5xbixBcnJvd1VwWmE6KCk9PnFuLEFycm93c1VwRnJvbUxpbmU6KCk9PnB1LEFzdGVyaXNrOigpPT5odSxBc3Rlcmlza1NxdWFyZTooKT0+RTMsQXRTaWduOigpPT5tdSxBdG9tOigpPT5ndSxBdWRpb0xpbmVzOigpPT54dSxBdWRpb1dhdmVmb3JtOigpPT52dSxBd2FyZDooKT0+YnUsQXhlOigpPT55dSxBeGlzM0Q6KCk9PlZuLEF4aXMzZDooKT0+Vm4sQmFieTooKT0+d3UsQmFja3BhY2s6KCk9Pk11LEJhZGdlOigpPT5PdSxCYWRnZUFsZXJ0OigpPT56dSxCYWRnZUNlbnQ6KCk9Pmt1LEJhZGdlQ2hlY2s6KCk9PlVuLEJhZGdlRG9sbGFyU2lnbjooKT0+U3UsQmFkZ2VFdXJvOigpPT5DdSxCYWRnZUhlbHA6KCk9PmpuLEJhZGdlSW5kaWFuUnVwZWU6KCk9Pkx1LEJhZGdlSW5mbzooKT0+VHUsQmFkZ2VKYXBhbmVzZVllbjooKT0+X3UsQmFkZ2VNaW51czooKT0+QXUsQmFkZ2VQZXJjZW50OigpPT4kdSxCYWRnZVBsdXM6KCk9PkR1LEJhZGdlUG91bmRTdGVybGluZzooKT0+RXUsQmFkZ2VRdWVzdGlvbk1hcms6KCk9PmpuLEJhZGdlUnVzc2lhblJ1YmxlOigpPT5OdSxCYWRnZVN3aXNzRnJhbmM6KCk9PlB1LEJhZGdlVHVya2lzaExpcmE6KCk9Pkl1LEJhZGdlWDooKT0+RnUsQmFnZ2FnZUNsYWltOigpPT5CdSxCYWxsb29uOigpPT5SdSxCYW46KCk9Pkh1LEJhbmFuYTooKT0+cXUsQmFuZGFnZTooKT0+VnUsQmFua25vdGU6KCk9Pkd1LEJhbmtub3RlQXJyb3dEb3duOigpPT5VdSxCYW5rbm90ZUFycm93VXA6KCk9Pmp1LEJhbmtub3RlWDooKT0+V3UsQmFyQ2hhcnQ6KCk9Pm8wLEJhckNoYXJ0MjooKT0+czAsQmFyQ2hhcnQzOigpPT5yMCxCYXJDaGFydDQ6KCk9PmEwLEJhckNoYXJ0QmlnOigpPT50MCxCYXJDaGFydEhvcml6b250YWw6KCk9PkpuLEJhckNoYXJ0SG9yaXpvbnRhbEJpZzooKT0+S24sQmFyY29kZTooKT0+WXUsQmFycmVsOigpPT5adSxCYXNlbGluZTooKT0+WHUsQmF0aDooKT0+UXUsQmF0dGVyeTooKT0+aXAsQmF0dGVyeUNoYXJnaW5nOigpPT5LdSxCYXR0ZXJ5RnVsbDooKT0+SnUsQmF0dGVyeUxvdzooKT0+ZXAsQmF0dGVyeU1lZGl1bTooKT0+YXAsQmF0dGVyeVBsdXM6KCk9PnRwLEJhdHRlcnlXYXJuaW5nOigpPT5ycCxCZWFrZXI6KCk9Pm9wLEJlYW46KCk9Pm5wLEJlYW5PZmY6KCk9PnNwLEJlZDooKT0+ZHAsQmVkRG91YmxlOigpPT5scCxCZWRTaW5nbGU6KCk9PmNwLEJlZWY6KCk9PmZwLEJlZXI6KCk9PnBwLEJlZXJPZmY6KCk9PnVwLEJlbGw6KCk9PnlwLEJlbGxEb3Q6KCk9PmhwLEJlbGxFbGVjdHJpYzooKT0+bXAsQmVsbE1pbnVzOigpPT5ncCxCZWxsT2ZmOigpPT54cCxCZWxsUGx1czooKT0+YnAsQmVsbFJpbmc6KCk9PnZwLEJldHdlZW5Ib3Jpem9uYWxFbmQ6KCk9PlduLEJldHdlZW5Ib3Jpem9uYWxTdGFydDooKT0+R24sQmV0d2Vlbkhvcml6b250YWxFbmQ6KCk9PlduLEJldHdlZW5Ib3Jpem9udGFsU3RhcnQ6KCk9PkduLEJldHdlZW5WZXJ0aWNhbEVuZDooKT0+d3AsQmV0d2VlblZlcnRpY2FsU3RhcnQ6KCk9Pk1wLEJpY2Vwc0ZsZXhlZDooKT0+enAsQmlrZTooKT0+a3AsQmluYXJ5OigpPT5TcCxCaW5vY3VsYXJzOigpPT5McCxCaW9oYXphcmQ6KCk9PkNwLEJpcmQ6KCk9Pl9wLEJpcmRob3VzZTooKT0+VHAsQml0Y29pbjooKT0+QXAsQmxlbmQ6KCk9PiRwLEJsaW5kczooKT0+RHAsQmxvY2tzOigpPT5FcCxCbHVldG9vdGg6KCk9PkZwLEJsdWV0b290aENvbm5lY3RlZDooKT0+TnAsQmx1ZXRvb3RoT2ZmOigpPT5QcCxCbHVldG9vdGhTZWFyY2hpbmc6KCk9PklwLEJvbGQ6KCk9Pk9wLEJvbHQ6KCk9PkJwLEJvbWI6KCk9PlJwLEJvbmU6KCk9PkhwLEJvb2s6KCk9PnU5LEJvb2tBOigpPT5xcCxCb29rQWxlcnQ6KCk9PlZwLEJvb2tBdWRpbzooKT0+VXAsQm9va0NoZWNrOigpPT5qcCxCb29rQ29weTooKT0+V3AsQm9va0Rhc2hlZDooKT0+WW4sQm9va0Rvd246KCk9PkdwLEJvb2tIZWFkcGhvbmVzOigpPT5ZcCxCb29rSGVhcnQ6KCk9PlpwLEJvb2tJbWFnZTooKT0+UXAsQm9va0tleTooKT0+WHAsQm9va0xvY2s6KCk9PktwLEJvb2tNYXJrZWQ6KCk9PkpwLEJvb2tNaW51czooKT0+ZTksQm9va09wZW46KCk9PnI5LEJvb2tPcGVuQ2hlY2s6KCk9PnQ5LEJvb2tPcGVuVGV4dDooKT0+YTksQm9va1BsdXM6KCk9Pmk5LEJvb2tTZWFyY2g6KCk9Pm85LEJvb2tUZW1wbGF0ZTooKT0+WW4sQm9va1RleHQ6KCk9PnM5LEJvb2tUeXBlOigpPT5sOSxCb29rVXA6KCk9Pm45LEJvb2tVcDI6KCk9PmM5LEJvb2tVc2VyOigpPT5kOSxCb29rWDooKT0+ZjksQm9va21hcms6KCk9Png5LEJvb2ttYXJrQ2hlY2s6KCk9PnA5LEJvb2ttYXJrTWludXM6KCk9Pmg5LEJvb2ttYXJrUGx1czooKT0+bTksQm9va21hcmtYOigpPT5nOSxCb29tQm94OigpPT5iOSxCb3Q6KCk9Pnc5LEJvdE1lc3NhZ2VTcXVhcmU6KCk9PnY5LEJvdE9mZjooKT0+eTksQm90dGxlV2luZTooKT0+TTksQm93QXJyb3c6KCk9Pno5LEJveDooKT0+azksQm94U2VsZWN0OigpPT5VMyxCb3hlczooKT0+UzksQnJhY2VzOigpPT5abixCcmFja2V0czooKT0+QzksQnJhaW46KCk9Pl85LEJyYWluQ2lyY3VpdDooKT0+TDksQnJhaW5Db2c6KCk9PlQ5LEJyaWNrV2FsbDooKT0+RDksQnJpY2tXYWxsRmlyZTooKT0+QTksQnJpY2tXYWxsU2hpZWxkOigpPT4kOSxCcmllZmNhc2U6KCk9Pkk5LEJyaWVmY2FzZUJ1c2luZXNzOigpPT5FOSxCcmllZmNhc2VDb252ZXlvckJlbHQ6KCk9Pk45LEJyaWVmY2FzZU1lZGljYWw6KCk9PlA5LEJyaW5nVG9Gcm9udDooKT0+RjksQnJ1c2g6KCk9PkI5LEJydXNoQ2xlYW5pbmc6KCk9Pk85LEJ1YmJsZXM6KCk9PlI5LEJ1ZzooKT0+VjksQnVnT2ZmOigpPT5IOSxCdWdQbGF5OigpPT5xOSxCdWlsZGluZzooKT0+ajksQnVpbGRpbmcyOigpPT5VOSxCdXM6KCk9Pkc5LEJ1c0Zyb250OigpPT5XOSxDYWJsZTooKT0+WjksQ2FibGVDYXI6KCk9Plk5LENha2U6KCk9PlE5LENha2VTbGljZTooKT0+WDksQ2FsY3VsYXRvcjooKT0+SzksQ2FsZW5kYXI6KCk9PnZoLENhbGVuZGFyMTooKT0+SjksQ2FsZW5kYXJBcnJvd0Rvd246KCk9PmVoLENhbGVuZGFyQXJyb3dVcDooKT0+dGgsQ2FsZW5kYXJDaGVjazooKT0+cmgsQ2FsZW5kYXJDaGVjazI6KCk9PmFoLENhbGVuZGFyQ2xvY2s6KCk9Pm9oLENhbGVuZGFyQ29nOigpPT5paCxDYWxlbmRhckRheXM6KCk9PnNoLENhbGVuZGFyRm9sZDooKT0+bmgsQ2FsZW5kYXJIZWFydDooKT0+bGgsQ2FsZW5kYXJNaW51czooKT0+ZGgsQ2FsZW5kYXJNaW51czI6KCk9PmNoLENhbGVuZGFyT2ZmOigpPT5maCxDYWxlbmRhclBsdXM6KCk9PnBoLENhbGVuZGFyUGx1czI6KCk9PnVoLENhbGVuZGFyUmFuZ2U6KCk9PmhoLENhbGVuZGFyU2VhcmNoOigpPT5taCxDYWxlbmRhclN5bmM6KCk9PmdoLENhbGVuZGFyWDooKT0+YmgsQ2FsZW5kYXJYMjooKT0+eGgsQ2FsZW5kYXJzOigpPT55aCxDYW1lcmE6KCk9Pk1oLENhbWVyYU9mZjooKT0+d2gsQ2FuZGxlc3RpY2tDaGFydDooKT0+ZTAsQ2FuZHk6KCk9PlNoLENhbmR5Q2FuZTooKT0+emgsQ2FuZHlPZmY6KCk9PmtoLENhbm5hYmlzOigpPT5MaCxDYW5uYWJpc09mZjooKT0+Q2gsQ2FwdGlvbnM6KCk9PlhuLENhcHRpb25zT2ZmOigpPT5UaCxDYXI6KCk9PiRoLENhckZyb250OigpPT5faCxDYXJUYXhpRnJvbnQ6KCk9PkFoLENhcmF2YW46KCk9PkRoLENhcmRTaW06KCk9PkVoLENhcnJvdDooKT0+TmgsQ2FzZUxvd2VyOigpPT5QaCxDYXNlU2Vuc2l0aXZlOigpPT5JaCxDYXNlVXBwZXI6KCk9PkZoLENhc3NldHRlVGFwZTooKT0+T2gsQ2FzdDooKT0+QmgsQ2FzdGxlOigpPT5SaCxDYXQ6KCk9PkhoLENjdHY6KCk9PnFoLENoYXJ0QXJlYTooKT0+UW4sQ2hhcnRCYXI6KCk9PkpuLENoYXJ0QmFyQmlnOigpPT5LbixDaGFydEJhckRlY3JlYXNpbmc6KCk9PlZoLENoYXJ0QmFySW5jcmVhc2luZzooKT0+VWgsQ2hhcnRCYXJTdGFja2VkOigpPT5qaCxDaGFydENhbmRsZXN0aWNrOigpPT5lMCxDaGFydENvbHVtbjooKT0+cjAsQ2hhcnRDb2x1bW5CaWc6KCk9PnQwLENoYXJ0Q29sdW1uRGVjcmVhc2luZzooKT0+V2gsQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5hMCxDaGFydENvbHVtblN0YWNrZWQ6KCk9PkdoLENoYXJ0R2FudHQ6KCk9PlloLENoYXJ0TGluZTooKT0+aTAsQ2hhcnROZXR3b3JrOigpPT5aaCxDaGFydE5vQXhlc0NvbHVtbjooKT0+czAsQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOigpPT5YaCxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6KCk9Pm8wLENoYXJ0Tm9BeGVzQ29tYmluZWQ6KCk9PlFoLENoYXJ0Tm9BeGVzR2FudHQ6KCk9Pm4wLENoYXJ0UGllOigpPT5sMCxDaGFydFNjYXR0ZXI6KCk9PmMwLENoYXJ0U3BsaW5lOigpPT5LaCxDaGVjazooKT0+dG0sQ2hlY2tDaGVjazooKT0+SmgsQ2hlY2tDaXJjbGU6KCk9PncwLENoZWNrQ2lyY2xlMjooKT0+eTAsQ2hlY2tMaW5lOigpPT5lbSxDaGVja1NxdWFyZTooKT0+STMsQ2hlY2tTcXVhcmUyOigpPT5QMyxDaGVmSGF0OigpPT5hbSxDaGVycnk6KCk9PnJtLENoZXNzQmlzaG9wOigpPT5pbSxDaGVzc0tpbmc6KCk9Pm9tLENoZXNzS25pZ2h0OigpPT5zbSxDaGVzc1Bhd246KCk9Pm5tLENoZXNzUXVlZW46KCk9PmxtLENoZXNzUm9vazooKT0+Zm0sQ2hldnJvbkRvd246KCk9PmNtLENoZXZyb25Eb3duQ2lyY2xlOigpPT5NMCxDaGV2cm9uRG93blNxdWFyZTooKT0+RjMsQ2hldnJvbkZpcnN0OigpPT5kbSxDaGV2cm9uTGFzdDooKT0+dW0sQ2hldnJvbkxlZnQ6KCk9PnBtLENoZXZyb25MZWZ0Q2lyY2xlOigpPT56MCxDaGV2cm9uTGVmdFNxdWFyZTooKT0+TzMsQ2hldnJvblJpZ2h0OigpPT5obSxDaGV2cm9uUmlnaHRDaXJjbGU6KCk9PmswLENoZXZyb25SaWdodFNxdWFyZTooKT0+QjMsQ2hldnJvblVwOigpPT5tbSxDaGV2cm9uVXBDaXJjbGU6KCk9PlMwLENoZXZyb25VcFNxdWFyZTooKT0+UjMsQ2hldnJvbnNEb3duOigpPT54bSxDaGV2cm9uc0Rvd25VcDooKT0+Z20sQ2hldnJvbnNMZWZ0OigpPT55bSxDaGV2cm9uc0xlZnRSaWdodDooKT0+dm0sQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczooKT0+Ym0sQ2hldnJvbnNSaWdodDooKT0+TW0sQ2hldnJvbnNSaWdodExlZnQ6KCk9PndtLENoZXZyb25zVXA6KCk9PmttLENoZXZyb25zVXBEb3duOigpPT56bSxDaHJvbWU6KCk9PmQwLENocm9taXVtOigpPT5kMCxDaHVyY2g6KCk9PlNtLENpZ2FyZXR0ZTooKT0+TG0sQ2lnYXJldHRlT2ZmOigpPT5DbSxDaXJjbGU6KCk9PnFtLENpcmNsZUFsZXJ0OigpPT5mMCxDaXJjbGVBcnJvd0Rvd246KCk9PnUwLENpcmNsZUFycm93TGVmdDooKT0+cDAsQ2lyY2xlQXJyb3dPdXREb3duTGVmdDooKT0+aDAsQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6KCk9Pm0wLENpcmNsZUFycm93T3V0VXBMZWZ0OigpPT5nMCxDaXJjbGVBcnJvd091dFVwUmlnaHQ6KCk9PngwLENpcmNsZUFycm93UmlnaHQ6KCk9PmIwLENpcmNsZUFycm93VXA6KCk9PnYwLENpcmNsZUNoZWNrOigpPT55MCxDaXJjbGVDaGVja0JpZzooKT0+dzAsQ2lyY2xlQ2hldnJvbkRvd246KCk9Pk0wLENpcmNsZUNoZXZyb25MZWZ0OigpPT56MCxDaXJjbGVDaGV2cm9uUmlnaHQ6KCk9PmswLENpcmNsZUNoZXZyb25VcDooKT0+UzAsQ2lyY2xlRGFzaGVkOigpPT5UbSxDaXJjbGVEaXZpZGU6KCk9PkMwLENpcmNsZURvbGxhclNpZ246KCk9Pl9tLENpcmNsZURvdDooKT0+JG0sQ2lyY2xlRG90RGFzaGVkOigpPT5BbSxDaXJjbGVFbGxpcHNpczooKT0+RG0sQ2lyY2xlRXF1YWw6KCk9PkVtLENpcmNsZUZhZGluZ0Fycm93VXA6KCk9Pk5tLENpcmNsZUZhZGluZ1BsdXM6KCk9PlBtLENpcmNsZUdhdWdlOigpPT5MMCxDaXJjbGVIZWxwOigpPT5OaSxDaXJjbGVNaW51czooKT0+VDAsQ2lyY2xlT2ZmOigpPT5JbSxDaXJjbGVQYXJraW5nOigpPT5BMCxDaXJjbGVQYXJraW5nT2ZmOigpPT5fMCxDaXJjbGVQYXVzZTooKT0+JDAsQ2lyY2xlUGVyY2VudDooKT0+RDAsQ2lyY2xlUGlsZTooKT0+Rm0sQ2lyY2xlUGxheTooKT0+RTAsQ2lyY2xlUGx1czooKT0+TjAsQ2lyY2xlUG91bmRTdGVybGluZzooKT0+T20sQ2lyY2xlUG93ZXI6KCk9PlAwLENpcmNsZVF1ZXN0aW9uTWFyazooKT0+TmksQ2lyY2xlU2xhc2g6KCk9PkJtLENpcmNsZVNsYXNoMjooKT0+STAsQ2lyY2xlU2xhc2hlZDooKT0+STAsQ2lyY2xlU21hbGw6KCk9PlJtLENpcmNsZVN0YXI6KCk9PkhtLENpcmNsZVN0b3A6KCk9PkYwLENpcmNsZVVzZXI6KCk9PkIwLENpcmNsZVVzZXJSb3VuZDooKT0+TzAsQ2lyY2xlWDooKT0+UjAsQ2lyY3VpdEJvYXJkOigpPT5WbSxDaXRydXM6KCk9PlVtLENsYXBwZXJib2FyZDooKT0+am0sQ2xpcGJvYXJkOigpPT50ZyxDbGlwYm9hcmRDaGVjazooKT0+V20sQ2xpcGJvYXJkQ2xvY2s6KCk9PkdtLENsaXBib2FyZENvcHk6KCk9PlltLENsaXBib2FyZEVkaXQ6KCk9PnEwLENsaXBib2FyZExpc3Q6KCk9PlptLENsaXBib2FyZE1pbnVzOigpPT5YbSxDbGlwYm9hcmRQYXN0ZTooKT0+UW0sQ2xpcGJvYXJkUGVuOigpPT5xMCxDbGlwYm9hcmRQZW5MaW5lOigpPT5IMCxDbGlwYm9hcmRQbHVzOigpPT5LbSxDbGlwYm9hcmRTaWduYXR1cmU6KCk9PkgwLENsaXBib2FyZFR5cGU6KCk9PkptLENsaXBib2FyZFg6KCk9PmVnLENsb2NrOigpPT55ZyxDbG9jazE6KCk9PmFnLENsb2NrMTA6KCk9PnJnLENsb2NrMTE6KCk9PmlnLENsb2NrMTI6KCk9Pm9nLENsb2NrMjooKT0+c2csQ2xvY2szOigpPT5uZyxDbG9jazQ6KCk9PmxnLENsb2NrNTooKT0+Y2csQ2xvY2s2OigpPT5kZyxDbG9jazc6KCk9PmZnLENsb2NrODooKT0+dWcsQ2xvY2s5OigpPT5wZyxDbG9ja0FsZXJ0OigpPT5oZyxDbG9ja0Fycm93RG93bjooKT0+bWcsQ2xvY2tBcnJvd1VwOigpPT5nZyxDbG9ja0NoZWNrOigpPT54ZyxDbG9ja0ZhZGluZzooKT0+YmcsQ2xvY2tQbHVzOigpPT52ZyxDbG9zZWRDYXB0aW9uOigpPT53ZyxDbG91ZDooKT0+QmcsQ2xvdWRBbGVydDooKT0+TWcsQ2xvdWRCYWNrdXA6KCk9PnpnLENsb3VkQ2hlY2s6KCk9PmtnLENsb3VkQ29nOigpPT5TZyxDbG91ZERvd25sb2FkOigpPT5WMCxDbG91ZERyaXp6bGU6KCk9PkNnLENsb3VkRm9nOigpPT5MZyxDbG91ZEhhaWw6KCk9PlRnLENsb3VkTGlnaHRuaW5nOigpPT5fZyxDbG91ZE1vb246KCk9PiRnLENsb3VkTW9vblJhaW46KCk9PkFnLENsb3VkT2ZmOigpPT5FZyxDbG91ZFJhaW46KCk9Pk5nLENsb3VkUmFpbldpbmQ6KCk9PkRnLENsb3VkU25vdzooKT0+UGcsQ2xvdWRTdW46KCk9PkZnLENsb3VkU3VuUmFpbjooKT0+SWcsQ2xvdWRTeW5jOigpPT5PZyxDbG91ZFVwbG9hZDooKT0+VTAsQ2xvdWR5OigpPT5SZyxDbG92ZXI6KCk9PkhnLENsdWI6KCk9PnFnLENvZGU6KCk9PlZnLENvZGUyOigpPT5qMCxDb2RlU3F1YXJlOigpPT5IMyxDb2RlWG1sOigpPT5qMCxDb2RlcGVuOigpPT5VZyxDb2Rlc2FuZGJveDooKT0+amcsQ29mZmVlOigpPT5XZyxDb2c6KCk9PllnLENvaW5zOigpPT5HZyxDb2x1bW5zOigpPT5XMCxDb2x1bW5zMjooKT0+VzAsQ29sdW1uczM6KCk9PkcwLENvbHVtbnMzQ29nOigpPT5QaSxDb2x1bW5zNDooKT0+WmcsQ29sdW1uc1NldHRpbmdzOigpPT5QaSxDb21iaW5lOigpPT5YZyxDb21tYW5kOigpPT5RZyxDb21wYXNzOigpPT5LZyxDb21wb25lbnQ6KCk9PkpnLENvbXB1dGVyOigpPT5leCxDb25jaWVyZ2VCZWxsOigpPT50eCxDb25lOigpPT5heCxDb25zdHJ1Y3Rpb246KCk9PnJ4LENvbnRhY3Q6KCk9Pml4LENvbnRhY3QyOigpPT5ZMCxDb250YWN0Um91bmQ6KCk9PlkwLENvbnRhaW5lcjooKT0+b3gsQ29udHJhc3Q6KCk9PnN4LENvb2tpZTooKT0+bngsQ29va2luZ1BvdDooKT0+bHgsQ29weTooKT0+cHgsQ29weUNoZWNrOigpPT5jeCxDb3B5TWludXM6KCk9PmR4LENvcHlQbHVzOigpPT5meCxDb3B5U2xhc2g6KCk9PnV4LENvcHlYOigpPT5oeCxDb3B5bGVmdDooKT0+bXgsQ29weXJpZ2h0OigpPT5neCxDb3JuZXJEb3duTGVmdDooKT0+YngsQ29ybmVyRG93blJpZ2h0OigpPT54eCxDb3JuZXJMZWZ0RG93bjooKT0+dngsQ29ybmVyTGVmdFVwOigpPT55eCxDb3JuZXJSaWdodERvd246KCk9Pnd4LENvcm5lclJpZ2h0VXA6KCk9Pk14LENvcm5lclVwTGVmdDooKT0+engsQ29ybmVyVXBSaWdodDooKT0+a3gsQ3B1OigpPT5TeCxDcmVhdGl2ZUNvbW1vbnM6KCk9PkN4LENyZWRpdENhcmQ6KCk9Pkx4LENyb2lzc2FudDooKT0+VHgsQ3JvcDooKT0+X3gsQ3Jvc3M6KCk9PkF4LENyb3NzaGFpcjooKT0+JHgsQ3Jvd246KCk9PkR4LEN1Ym9pZDooKT0+RXgsQ3VwU29kYTooKT0+TngsQ3VybHlCcmFjZXM6KCk9PlpuLEN1cnJlbmN5OigpPT5QeCxDeWxpbmRlcjooKT0+SXgsRGFtOigpPT5GeCxEYXRhYmFzZTooKT0+UngsRGF0YWJhc2VCYWNrdXA6KCk9Pk94LERhdGFiYXNlWmFwOigpPT5CeCxEZWNpbWFsc0Fycm93TGVmdDooKT0+SHgsRGVjaW1hbHNBcnJvd1JpZ2h0OigpPT5xeCxEZWxldGU6KCk9PlZ4LERlc3NlcnQ6KCk9PlV4LERpYW1ldGVyOigpPT5qeCxEaWFtb25kOigpPT5aeCxEaWFtb25kTWludXM6KCk9Pld4LERpYW1vbmRQZXJjZW50OigpPT5aMCxEaWFtb25kUGx1czooKT0+R3gsRGljZTE6KCk9Pll4LERpY2UyOigpPT5YeCxEaWNlMzooKT0+UXgsRGljZTQ6KCk9PmViLERpY2U1OigpPT5LeCxEaWNlNjooKT0+SngsRGljZXM6KCk9PnRiLERpZmY6KCk9PmFiLERpc2M6KCk9PnNiLERpc2MyOigpPT5yYixEaXNjMzooKT0+aWIsRGlzY0FsYnVtOigpPT5vYixEaXZpZGU6KCk9Pm5iLERpdmlkZUNpcmNsZTooKT0+QzAsRGl2aWRlU3F1YXJlOigpPT5qMyxEbmE6KCk9PmRiLERuYU9mZjooKT0+bGIsRG9jazooKT0+Y2IsRG9nOigpPT5mYixEb2xsYXJTaWduOigpPT51YixEb251dDooKT0+cGIsRG9vckNsb3NlZDooKT0+bWIsRG9vckNsb3NlZExvY2tlZDooKT0+aGIsRG9vck9wZW46KCk9PnhiLERvdDooKT0+Z2IsRG90U3F1YXJlOigpPT5XMyxEb3dubG9hZDooKT0+YmIsRG93bmxvYWRDbG91ZDooKT0+VjAsRHJhZnRpbmdDb21wYXNzOigpPT52YixEcmFtYTooKT0+eWIsRHJpYmJibGU6KCk9PndiLERyaWxsOigpPT5NYixEcm9uZTooKT0+emIsRHJvcGxldDooKT0+U2IsRHJvcGxldE9mZjooKT0+a2IsRHJvcGxldHM6KCk9PkNiLERydW06KCk9PkxiLERydW1zdGljazooKT0+VGIsRHVtYmJlbGw6KCk9Pl9iLEVhcjooKT0+JGIsRWFyT2ZmOigpPT5BYixFYXJ0aDooKT0+WDAsRWFydGhMb2NrOigpPT5EYixFY2xpcHNlOigpPT5FYixFZGl0OigpPT5hcixFZGl0MjooKT0+bDMsRWRpdDM6KCk9Pm4zLEVnZzooKT0+SWIsRWdnRnJpZWQ6KCk9Pk5iLEVnZ09mZjooKT0+UGIsRWxsaXBzaXM6KCk9PkswLEVsbGlwc2lzVmVydGljYWw6KCk9PlEwLEVxdWFsOigpPT5SYixFcXVhbEFwcHJveGltYXRlbHk6KCk9PkZiLEVxdWFsTm90OigpPT5PYixFcXVhbFNxdWFyZTooKT0+RzMsRXJhc2VyOigpPT5CYixFdGhlcm5ldFBvcnQ6KCk9PkhiLEV1cm86KCk9PnFiLEV2Q2hhcmdlcjooKT0+VmIsRXhwYW5kOigpPT5qYixFeHRlcm5hbExpbms6KCk9PlViLEV5ZTooKT0+WWIsRXllQ2xvc2VkOigpPT5XYixFeWVPZmY6KCk9PkdiLEZhY2Vib29rOigpPT5YYixGYWN0b3J5OigpPT5aYixGYW46KCk9PlFiLEZhc3RGb3J3YXJkOigpPT5LYixGZWF0aGVyOigpPT5KYixGZW5jZTooKT0+ZXYsRmVycmlzV2hlZWw6KCk9PnR2LEZpZ21hOigpPT5hdixGaWxlOigpPT4kdixGaWxlQXJjaGl2ZTooKT0+cnYsRmlsZUF1ZGlvOigpPT5JaSxGaWxlQXVkaW8yOigpPT5JaSxGaWxlQXhpczNEOigpPT5KMCxGaWxlQXhpczNkOigpPT5KMCxGaWxlQmFkZ2U6KCk9PmU0LEZpbGVCYWRnZTI6KCk9PmU0LEZpbGVCYXJDaGFydDooKT0+cjQsRmlsZUJhckNoYXJ0MjooKT0+aTQsRmlsZUJveDooKT0+aXYsRmlsZUJyYWNlczooKT0+YTQsRmlsZUJyYWNlc0Nvcm5lcjooKT0+dDQsRmlsZUNoYXJ0Q29sdW1uOigpPT5pNCxGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOigpPT5yNCxGaWxlQ2hhcnRMaW5lOigpPT5vNCxGaWxlQ2hhcnRQaWU6KCk9PnM0LEZpbGVDaGVjazooKT0+b3YsRmlsZUNoZWNrMjooKT0+bjQsRmlsZUNoZWNrQ29ybmVyOigpPT5uNCxGaWxlQ2xvY2s6KCk9PnN2LEZpbGVDb2RlOigpPT5udixGaWxlQ29kZTI6KCk9Pmw0LEZpbGVDb2RlQ29ybmVyOigpPT5sNCxGaWxlQ29nOigpPT5jNCxGaWxlQ29nMjooKT0+YzQsRmlsZURpZmY6KCk9Pmx2LEZpbGVEaWdpdDooKT0+Y3YsRmlsZURvd246KCk9PmR2LEZpbGVFZGl0OigpPT5tNCxGaWxlRXhjbGFtYXRpb25Qb2ludDooKT0+ZDQsRmlsZUhlYWRwaG9uZTooKT0+SWksRmlsZUhlYXJ0OigpPT5mdixGaWxlSW1hZ2U6KCk9PnV2LEZpbGVJbnB1dDooKT0+cHYsRmlsZUpzb246KCk9PmE0LEZpbGVKc29uMjooKT0+dDQsRmlsZUtleTooKT0+ZjQsRmlsZUtleTI6KCk9PmY0LEZpbGVMaW5lQ2hhcnQ6KCk9Pm80LEZpbGVMb2NrOigpPT51NCxGaWxlTG9jazI6KCk9PnU0LEZpbGVNaW51czooKT0+bXYsRmlsZU1pbnVzMjooKT0+cDQsRmlsZU1pbnVzQ29ybmVyOigpPT5wNCxGaWxlTXVzaWM6KCk9Pmh2LEZpbGVPdXRwdXQ6KCk9Pmd2LEZpbGVQZW46KCk9Pm00LEZpbGVQZW5MaW5lOigpPT5oNCxGaWxlUGllQ2hhcnQ6KCk9PnM0LEZpbGVQbGF5OigpPT5nNCxGaWxlUGx1czooKT0+eHYsRmlsZVBsdXMyOigpPT5iNCxGaWxlUGx1c0Nvcm5lcjooKT0+YjQsRmlsZVF1ZXN0aW9uOigpPT54NCxGaWxlUXVlc3Rpb25NYXJrOigpPT54NCxGaWxlU2NhbjooKT0+YnYsRmlsZVNlYXJjaDooKT0+dnYsRmlsZVNlYXJjaDI6KCk9PnY0LEZpbGVTZWFyY2hDb3JuZXI6KCk9PnY0LEZpbGVTaWduYWw6KCk9Pnk0LEZpbGVTaWduYXR1cmU6KCk9Pmg0LEZpbGVTbGlkZXJzOigpPT53dixGaWxlU3ByZWFkc2hlZXQ6KCk9Pnl2LEZpbGVTdGFjazooKT0+TXYsRmlsZVN5bWxpbms6KCk9Pnp2LEZpbGVUZXJtaW5hbDooKT0+a3YsRmlsZVRleHQ6KCk9PlN2LEZpbGVUeXBlOigpPT5DdixGaWxlVHlwZTI6KCk9Pnc0LEZpbGVUeXBlQ29ybmVyOigpPT53NCxGaWxlVXA6KCk9Pkx2LEZpbGVVc2VyOigpPT5UdixGaWxlVmlkZW86KCk9Pmc0LEZpbGVWaWRlbzI6KCk9Pk00LEZpbGVWaWRlb0NhbWVyYTooKT0+TTQsRmlsZVZvbHVtZTooKT0+X3YsRmlsZVZvbHVtZTI6KCk9Pnk0LEZpbGVXYXJuaW5nOigpPT5kNCxGaWxlWDooKT0+QXYsRmlsZVgyOigpPT56NCxGaWxlWENvcm5lcjooKT0+ejQsRmlsZXM6KCk9PkR2LEZpbG06KCk9PkV2LEZpbHRlcjooKT0+VDQsRmlsdGVyWDooKT0+TDQsRmluZ2VycHJpbnQ6KCk9Pms0LEZpbmdlcnByaW50UGF0dGVybjooKT0+azQsRmlyZUV4dGluZ3Vpc2hlcjooKT0+TnYsRmlzaDooKT0+RnYsRmlzaE9mZjooKT0+UHYsRmlzaFN5bWJvbDooKT0+SXYsRmlzaGluZ0hvb2s6KCk9Pk92LEZsYWc6KCk9PlZ2LEZsYWdPZmY6KCk9PkJ2LEZsYWdUcmlhbmdsZUxlZnQ6KCk9PlJ2LEZsYWdUcmlhbmdsZVJpZ2h0OigpPT5IdixGbGFtZTooKT0+VXYsRmxhbWVLaW5kbGluZzooKT0+cXYsRmxhc2hsaWdodDooKT0+V3YsRmxhc2hsaWdodE9mZjooKT0+anYsRmxhc2tDb25pY2FsOigpPT5adixGbGFza0NvbmljYWxPZmY6KCk9Pkd2LEZsYXNrUm91bmQ6KCk9Pll2LEZsaXBIb3Jpem9udGFsOigpPT5YdixGbGlwSG9yaXpvbnRhbDI6KCk9PlF2LEZsaXBWZXJ0aWNhbDooKT0+SnYsRmxpcFZlcnRpY2FsMjooKT0+S3YsRmxvd2VyOigpPT50eSxGbG93ZXIyOigpPT5leSxGb2N1czooKT0+YXksRm9sZEhvcml6b250YWw6KCk9PnJ5LEZvbGRWZXJ0aWNhbDooKT0+aXksRm9sZGVyOigpPT5EeSxGb2xkZXJBcmNoaXZlOigpPT5veSxGb2xkZXJDaGVjazooKT0+c3ksRm9sZGVyQ2xvY2s6KCk9Pm55LEZvbGRlckNsb3NlZDooKT0+bHksRm9sZGVyQ29kZTooKT0+Y3ksRm9sZGVyQ29nOigpPT5TNCxGb2xkZXJDb2cyOigpPT5TNCxGb2xkZXJEb3Q6KCk9PmR5LEZvbGRlckRvd246KCk9PmZ5LEZvbGRlckVkaXQ6KCk9PkM0LEZvbGRlckdpdDooKT0+cHksRm9sZGVyR2l0MjooKT0+dXksRm9sZGVySGVhcnQ6KCk9Pmh5LEZvbGRlcklucHV0OigpPT5teSxGb2xkZXJLYW5iYW46KCk9Pmd5LEZvbGRlcktleTooKT0+eHksRm9sZGVyTG9jazooKT0+YnksRm9sZGVyTWludXM6KCk9PnZ5LEZvbGRlck9wZW46KCk9Pnd5LEZvbGRlck9wZW5Eb3Q6KCk9Pnl5LEZvbGRlck91dHB1dDooKT0+TXksRm9sZGVyUGVuOigpPT5DNCxGb2xkZXJQbHVzOigpPT56eSxGb2xkZXJSb290OigpPT5reSxGb2xkZXJTZWFyY2g6KCk9PkN5LEZvbGRlclNlYXJjaDI6KCk9PlN5LEZvbGRlclN5bWxpbms6KCk9Pkx5LEZvbGRlclN5bmM6KCk9PlR5LEZvbGRlclRyZWU6KCk9Pl95LEZvbGRlclVwOigpPT5BeSxGb2xkZXJYOigpPT4keSxGb2xkZXJzOigpPT5FeSxGb290cHJpbnRzOigpPT5OeSxGb3JrS25pZmU6KCk9Pk9sLEZvcmtLbmlmZUNyb3NzZWQ6KCk9PkZsLEZvcmtsaWZ0OigpPT5QeSxGb3JtOigpPT5JeSxGb3JtSW5wdXQ6KCk9PmQzLEZvcndhcmQ6KCk9PkZ5LEZyYW1lOigpPT5PeSxGcmFtZXI6KCk9PkJ5LEZyb3duOigpPT5SeSxGdWVsOigpPT5IeSxGdWxsc2NyZWVuOigpPT5xeSxGdW5jdGlvblNxdWFyZTooKT0+WTMsRnVubmVsOigpPT5UNCxGdW5uZWxQbHVzOigpPT5WeSxGdW5uZWxYOigpPT5MNCxHYWxsZXJ5SG9yaXpvbnRhbDooKT0+anksR2FsbGVyeUhvcml6b250YWxFbmQ6KCk9PlV5LEdhbGxlcnlUaHVtYm5haWxzOigpPT5XeSxHYWxsZXJ5VmVydGljYWw6KCk9Pll5LEdhbGxlcnlWZXJ0aWNhbEVuZDooKT0+R3ksR2FtZXBhZDooKT0+UXksR2FtZXBhZDI6KCk9Plp5LEdhbWVwYWREaXJlY3Rpb25hbDooKT0+WHksR2FudHRDaGFydDooKT0+bjAsR2FudHRDaGFydFNxdWFyZTooKT0+UmksR2F1Z2U6KCk9Pkt5LEdhdWdlQ2lyY2xlOigpPT5MMCxHYXZlbDooKT0+SnksR2VtOigpPT5ldyxHZW9yZ2lhbkxhcmk6KCk9PnR3LEdob3N0OigpPT5hdyxHaWZ0OigpPT5ydyxHaXRCcmFuY2g6KCk9Pm93LEdpdEJyYW5jaE1pbnVzOigpPT5pdyxHaXRCcmFuY2hQbHVzOigpPT5zdyxHaXRDb21taXQ6KCk9Pl80LEdpdENvbW1pdEhvcml6b250YWw6KCk9Pl80LEdpdENvbW1pdFZlcnRpY2FsOigpPT5udyxHaXRDb21wYXJlOigpPT5jdyxHaXRDb21wYXJlQXJyb3dzOigpPT5sdyxHaXRGb3JrOigpPT5kdyxHaXRHcmFwaDooKT0+ZncsR2l0TWVyZ2U6KCk9PnV3LEdpdFB1bGxSZXF1ZXN0OigpPT5idyxHaXRQdWxsUmVxdWVzdEFycm93OigpPT5wdyxHaXRQdWxsUmVxdWVzdENsb3NlZDooKT0+aHcsR2l0UHVsbFJlcXVlc3RDcmVhdGU6KCk9Pmd3LEdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3c6KCk9Pm13LEdpdFB1bGxSZXF1ZXN0RHJhZnQ6KCk9Pnh3LEdpdGh1YjooKT0+dncsR2l0bGFiOigpPT55dyxHbGFzc1dhdGVyOigpPT53dyxHbGFzc2VzOigpPT5NdyxHbG9iZTooKT0+a3csR2xvYmUyOigpPT5YMCxHbG9iZUxvY2s6KCk9Pnp3LEdvYWw6KCk9PlN3LEdwdTooKT0+Q3csR3JhYjooKT0+TjQsR3JhZHVhdGlvbkNhcDooKT0+THcsR3JhcGU6KCk9PlR3LEdyaWQ6KCk9PkZpLEdyaWQyWDI6KCk9PkU0LEdyaWQyWDJDaGVjazooKT0+QTQsR3JpZDJYMlBsdXM6KCk9PiQ0LEdyaWQyWDJYOigpPT5ENCxHcmlkMngyOigpPT5FNCxHcmlkMngyQ2hlY2s6KCk9PkE0LEdyaWQyeDJQbHVzOigpPT4kNCxHcmlkMngyWDooKT0+RDQsR3JpZDNYMzooKT0+RmksR3JpZDN4MjooKT0+X3csR3JpZDN4MzooKT0+RmksR3JpcDooKT0+RHcsR3JpcEhvcml6b250YWw6KCk9PkF3LEdyaXBWZXJ0aWNhbDooKT0+JHcsR3JvdXA6KCk9PkV3LEd1aXRhcjooKT0+UHcsSGFtOigpPT5OdyxIYW1idXJnZXI6KCk9Pkl3LEhhbW1lcjooKT0+RncsSGFuZDooKT0+VncsSGFuZENvaW5zOigpPT5PdyxIYW5kRmlzdDooKT0+QncsSGFuZEdyYWI6KCk9Pk40LEhhbmRIZWFydDooKT0+UncsSGFuZEhlbHBpbmc6KCk9PlA0LEhhbmRNZXRhbDooKT0+SHcsSGFuZFBsYXR0ZXI6KCk9PnF3LEhhbmRiYWc6KCk9PlV3LEhhbmRzaGFrZTooKT0+ancsSGFyZERyaXZlOigpPT5YdyxIYXJkRHJpdmVEb3dubG9hZDooKT0+V3csSGFyZERyaXZlVXBsb2FkOigpPT5HdyxIYXJkSGF0OigpPT5ZdyxIYXNoOigpPT5adyxIYXRHbGFzc2VzOigpPT5RdyxIYXplOigpPT5LdyxIZDooKT0+SncsSGRtaVBvcnQ6KCk9PmVNLEhlYWRpbmc6KCk9Pm5NLEhlYWRpbmcxOigpPT50TSxIZWFkaW5nMjooKT0+ck0sSGVhZGluZzM6KCk9PmFNLEhlYWRpbmc0OigpPT5pTSxIZWFkaW5nNTooKT0+b00sSGVhZGluZzY6KCk9PnNNLEhlYWRwaG9uZU9mZjooKT0+bE0sSGVhZHBob25lczooKT0+Y00sSGVhZHNldDooKT0+ZE0sSGVhcnQ6KCk9PmJNLEhlYXJ0Q3JhY2s6KCk9PmZNLEhlYXJ0SGFuZHNoYWtlOigpPT51TSxIZWFydE1pbnVzOigpPT5wTSxIZWFydE9mZjooKT0+aE0sSGVhcnRQbHVzOigpPT5tTSxIZWFydFB1bHNlOigpPT5nTSxIZWF0ZXI6KCk9PnhNLEhlbGljb3B0ZXI6KCk9PnZNLEhlbHBDaXJjbGU6KCk9Pk5pLEhlbHBpbmdIYW5kOigpPT5QNCxIZXhhZ29uOigpPT55TSxIaWdobGlnaHRlcjooKT0+d00sSGlzdG9yeTooKT0+TU0sSG9tZTooKT0+STQsSG9wOigpPT56TSxIb3BPZmY6KCk9PmtNLEhvc3BpdGFsOigpPT5TTSxIb3RlbDooKT0+Q00sSG91cmdsYXNzOigpPT5MTSxIb3VzZTooKT0+STQsSG91c2VIZWFydDooKT0+VE0sSG91c2VQbHVnOigpPT5fTSxIb3VzZVBsdXM6KCk9PkFNLEhvdXNlV2lmaTooKT0+JE0sSWNlQ3JlYW06KCk9Pk80LEljZUNyZWFtMjooKT0+RjQsSWNlQ3JlYW1Cb3dsOigpPT5GNCxJY2VDcmVhbUNvbmU6KCk9Pk80LElkQ2FyZDooKT0+RU0sSWRDYXJkTGFueWFyZDooKT0+RE0sSW1hZ2U6KCk9PkhNLEltYWdlRG93bjooKT0+Tk0sSW1hZ2VNaW51czooKT0+UE0sSW1hZ2VPZmY6KCk9PklNLEltYWdlUGxheTooKT0+T00sSW1hZ2VQbHVzOigpPT5GTSxJbWFnZVVwOigpPT5CTSxJbWFnZVVwc2NhbGU6KCk9PlJNLEltYWdlczooKT0+cU0sSW1wb3J0OigpPT5WTSxJbmJveDooKT0+VU0sSW5kZW50OigpPT5CaSxJbmRlbnREZWNyZWFzZTooKT0+T2ksSW5kZW50SW5jcmVhc2U6KCk9PkJpLEluZGlhblJ1cGVlOigpPT5qTSxJbmZpbml0eTooKT0+V00sSW5mbzooKT0+R00sSW5zcGVjdDooKT0+ZWwsSW5zcGVjdGlvblBhbmVsOigpPT5ZTSxJbnN0YWdyYW06KCk9PlpNLEl0YWxpYzooKT0+WE0sSXRlcmF0aW9uQ2N3OigpPT5RTSxJdGVyYXRpb25DdzooKT0+S00sSmFwYW5lc2VZZW46KCk9PkpNLEpveXN0aWNrOigpPT5leixLYW5iYW46KCk9PnR6LEthbmJhblNxdWFyZTooKT0+WjMsS2FuYmFuU3F1YXJlRGFzaGVkOigpPT5xMyxLYXlhazooKT0+YXosS2V5OigpPT5veixLZXlSb3VuZDooKT0+cnosS2V5U3F1YXJlOigpPT5peixLZXlib2FyZDooKT0+bHosS2V5Ym9hcmRNdXNpYzooKT0+c3osS2V5Ym9hcmRPZmY6KCk9Pm56LExhbXA6KCk9Pmh6LExhbXBDZWlsaW5nOigpPT5jeixMYW1wRGVzazooKT0+ZHosTGFtcEZsb29yOigpPT5meixMYW1wV2FsbERvd246KCk9PnV6LExhbXBXYWxsVXA6KCk9PnB6LExhbmRQbG90OigpPT5teixMYW5kbWFyazooKT0+Z3osTGFuZ3VhZ2VzOigpPT54eixMYXB0b3A6KCk9PnZ6LExhcHRvcDI6KCk9PkI0LExhcHRvcE1pbmltYWw6KCk9PkI0LExhcHRvcE1pbmltYWxDaGVjazooKT0+YnosTGFzc286KCk9Pnd6LExhc3NvU2VsZWN0OigpPT55eixMYXVnaDooKT0+TXosTGF5ZXJzOigpPT5SNCxMYXllcnMyOigpPT56eixMYXllcnMzOigpPT5SNCxMYXllcnNQbHVzOigpPT5reixMYXlvdXQ6KCk9PnMzLExheW91dERhc2hib2FyZDooKT0+U3osTGF5b3V0R3JpZDooKT0+Q3osTGF5b3V0TGlzdDooKT0+THosTGF5b3V0UGFuZWxMZWZ0OigpPT5UeixMYXlvdXRQYW5lbFRvcDooKT0+X3osTGF5b3V0VGVtcGxhdGU6KCk9PkF6LExlYWY6KCk9PiR6LExlYWZ5R3JlZW46KCk9PkR6LExlY3Rlcm46KCk9PkV6LExldHRlclRleHQ6KCk9Pk1sLExpYnJhcnk6KCk9PlB6LExpYnJhcnlCaWc6KCk9Pk56LExpYnJhcnlTcXVhcmU6KCk9PlgzLExpZmVCdW95OigpPT5JeixMaWdhdHVyZTooKT0+RnosTGlnaHRidWxiOigpPT5CeixMaWdodGJ1bGJPZmY6KCk9Pk96LExpbmVDaGFydDooKT0+aTAsTGluZVNxdWlnZ2xlOigpPT5SeixMaW5rOigpPT5WeixMaW5rMjooKT0+SHosTGluazJPZmY6KCk9PnF6LExpbmtlZGluOigpPT5VeixMaXN0OigpPT5jayxMaXN0Q2hlY2s6KCk9Pmp6LExpc3RDaGVja3M6KCk9Pld6LExpc3RDaGV2cm9uc0Rvd25VcDooKT0+R3osTGlzdENoZXZyb25zVXBEb3duOigpPT5ZeixMaXN0Q29sbGFwc2U6KCk9Plp6LExpc3RFbmQ6KCk9Plh6LExpc3RGaWx0ZXI6KCk9Pkt6LExpc3RGaWx0ZXJQbHVzOigpPT5ReixMaXN0SW5kZW50RGVjcmVhc2U6KCk9Pk9pLExpc3RJbmRlbnRJbmNyZWFzZTooKT0+QmksTGlzdE1pbnVzOigpPT5KeixMaXN0TXVzaWM6KCk9PmVrLExpc3RPcmRlcmVkOigpPT50ayxMaXN0UGx1czooKT0+YWssTGlzdFJlc3RhcnQ6KCk9PnJrLExpc3RTdGFydDooKT0+aWssTGlzdFRvZG86KCk9Pm9rLExpc3RUcmVlOigpPT5zayxMaXN0VmlkZW86KCk9Pm5rLExpc3RYOigpPT5sayxMb2FkZXI6KCk9PmZrLExvYWRlcjI6KCk9Pkg0LExvYWRlckNpcmNsZTooKT0+SDQsTG9hZGVyUGlud2hlZWw6KCk9PmRrLExvY2F0ZTooKT0+aGssTG9jYXRlRml4ZWQ6KCk9PnVrLExvY2F0ZU9mZjooKT0+cGssTG9jYXRpb25FZGl0OigpPT5qNCxMb2NrOigpPT5nayxMb2NrS2V5aG9sZTooKT0+bWssTG9ja0tleWhvbGVPcGVuOigpPT5xNCxMb2NrT3BlbjooKT0+VjQsTG9nSW46KCk9PnhrLExvZ091dDooKT0+YmssTG9nczooKT0+dmssTG9sbGlwb3A6KCk9PnlrLEx1Z2dhZ2U6KCk9PndrLE1TcXVhcmU6KCk9PlEzLE1hZ25ldDooKT0+TWssTWFpbDooKT0+QWssTWFpbENoZWNrOigpPT56ayxNYWlsTWludXM6KCk9PmtrLE1haWxPcGVuOigpPT5TayxNYWlsUGx1czooKT0+Q2ssTWFpbFF1ZXN0aW9uOigpPT5VNCxNYWlsUXVlc3Rpb25NYXJrOigpPT5VNCxNYWlsU2VhcmNoOigpPT5MayxNYWlsV2FybmluZzooKT0+VGssTWFpbFg6KCk9Pl9rLE1haWxib3g6KCk9PiRrLE1haWxzOigpPT5EayxNYXA6KCk9PkdrLE1hcE1pbnVzOigpPT5FayxNYXBQaW46KCk9PlVrLE1hcFBpbkNoZWNrOigpPT5QayxNYXBQaW5DaGVja0luc2lkZTooKT0+TmssTWFwUGluSG91c2U6KCk9PklrLE1hcFBpbk1pbnVzOigpPT5PayxNYXBQaW5NaW51c0luc2lkZTooKT0+RmssTWFwUGluT2ZmOigpPT5CayxNYXBQaW5QZW46KCk9Pmo0LE1hcFBpblBsdXM6KCk9PkhrLE1hcFBpblBsdXNJbnNpZGU6KCk9PlJrLE1hcFBpblg6KCk9PlZrLE1hcFBpblhJbnNpZGU6KCk9PnFrLE1hcFBpbm5lZDooKT0+amssTWFwUGx1czooKT0+V2ssTWFyczooKT0+WmssTWFyc1N0cm9rZTooKT0+WWssTWFydGluaTooKT0+WGssTWF4aW1pemU6KCk9PktrLE1heGltaXplMjooKT0+UWssTWVkYWw6KCk9PnRTLE1lZ2FwaG9uZTooKT0+ZVMsTWVnYXBob25lT2ZmOigpPT5KayxNZWg6KCk9PmFTLE1lbW9yeVN0aWNrOigpPT5yUyxNZW51OigpPT5vUyxNZW51U3F1YXJlOigpPT5LMyxNZXJnZTooKT0+aVMsTWVzc2FnZUNpcmNsZTooKT0+bVMsTWVzc2FnZUNpcmNsZUNvZGU6KCk9PnNTLE1lc3NhZ2VDaXJjbGVEYXNoZWQ6KCk9Pm5TLE1lc3NhZ2VDaXJjbGVIZWFydDooKT0+bFMsTWVzc2FnZUNpcmNsZU1vcmU6KCk9PmNTLE1lc3NhZ2VDaXJjbGVPZmY6KCk9PmRTLE1lc3NhZ2VDaXJjbGVQbHVzOigpPT5mUyxNZXNzYWdlQ2lyY2xlUXVlc3Rpb246KCk9Plc0LE1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcms6KCk9Plc0LE1lc3NhZ2VDaXJjbGVSZXBseTooKT0+dVMsTWVzc2FnZUNpcmNsZVdhcm5pbmc6KCk9PnBTLE1lc3NhZ2VDaXJjbGVYOigpPT5oUyxNZXNzYWdlU3F1YXJlOigpPT4kUyxNZXNzYWdlU3F1YXJlQ29kZTooKT0+Z1MsTWVzc2FnZVNxdWFyZURhc2hlZDooKT0+eFMsTWVzc2FnZVNxdWFyZURpZmY6KCk9PmJTLE1lc3NhZ2VTcXVhcmVEb3Q6KCk9PnZTLE1lc3NhZ2VTcXVhcmVIZWFydDooKT0+eVMsTWVzc2FnZVNxdWFyZUxvY2s6KCk9PndTLE1lc3NhZ2VTcXVhcmVNb3JlOigpPT5NUyxNZXNzYWdlU3F1YXJlT2ZmOigpPT56UyxNZXNzYWdlU3F1YXJlUGx1czooKT0+a1MsTWVzc2FnZVNxdWFyZVF1b3RlOigpPT5TUyxNZXNzYWdlU3F1YXJlUmVwbHk6KCk9PkNTLE1lc3NhZ2VTcXVhcmVTaGFyZTooKT0+TFMsTWVzc2FnZVNxdWFyZVRleHQ6KCk9PlRTLE1lc3NhZ2VTcXVhcmVXYXJuaW5nOigpPT5fUyxNZXNzYWdlU3F1YXJlWDooKT0+QVMsTWVzc2FnZXNTcXVhcmU6KCk9PkRTLE1pYzooKT0+TlMsTWljMjooKT0+RzQsTWljT2ZmOigpPT5FUyxNaWNWb2NhbDooKT0+RzQsTWljcm9jaGlwOigpPT5QUyxNaWNyb3Njb3BlOigpPT5JUyxNaWNyb3dhdmU6KCk9PkZTLE1pbGVzdG9uZTooKT0+T1MsTWlsazooKT0+UlMsTWlsa09mZjooKT0+QlMsTWluaW1pemU6KCk9PnFTLE1pbmltaXplMjooKT0+SFMsTWludXM6KCk9PlZTLE1pbnVzQ2lyY2xlOigpPT5UMCxNaW51c1NxdWFyZTooKT0+SjMsTW9uaXRvcjooKT0+ckMsTW9uaXRvckNoZWNrOigpPT5VUyxNb25pdG9yQ2xvdWQ6KCk9PmpTLE1vbml0b3JDb2c6KCk9PldTLE1vbml0b3JEb3Q6KCk9PkdTLE1vbml0b3JEb3duOigpPT5ZUyxNb25pdG9yT2ZmOigpPT5aUyxNb25pdG9yUGF1c2U6KCk9PlhTLE1vbml0b3JQbGF5OigpPT5RUyxNb25pdG9yU21hcnRwaG9uZTooKT0+S1MsTW9uaXRvclNwZWFrZXI6KCk9PkpTLE1vbml0b3JTdG9wOigpPT5lQyxNb25pdG9yVXA6KCk9PnRDLE1vbml0b3JYOigpPT5hQyxNb29uOigpPT5zQyxNb29uU3RhcjooKT0+aUMsTW9yZUhvcml6b250YWw6KCk9PkswLE1vcmVWZXJ0aWNhbDooKT0+UTAsTW90b3JiaWtlOigpPT5vQyxNb3VudGFpbjooKT0+bEMsTW91bnRhaW5Tbm93OigpPT5uQyxNb3VzZTooKT0+bUMsTW91c2VPZmY6KCk9PmNDLE1vdXNlUG9pbnRlcjooKT0+aEMsTW91c2VQb2ludGVyMjooKT0+ZkMsTW91c2VQb2ludGVyMk9mZjooKT0+ZEMsTW91c2VQb2ludGVyQmFuOigpPT51QyxNb3VzZVBvaW50ZXJDbGljazooKT0+cEMsTW91c2VQb2ludGVyU3F1YXJlRGFzaGVkOigpPT5WMyxNb3ZlOigpPT5UQyxNb3ZlM0Q6KCk9Plk0LE1vdmUzZDooKT0+WTQsTW92ZURpYWdvbmFsOigpPT54QyxNb3ZlRGlhZ29uYWwyOigpPT5nQyxNb3ZlRG93bjooKT0+eUMsTW92ZURvd25MZWZ0OigpPT5iQyxNb3ZlRG93blJpZ2h0OigpPT52QyxNb3ZlSG9yaXpvbnRhbDooKT0+TUMsTW92ZUxlZnQ6KCk9PndDLE1vdmVSaWdodDooKT0+ekMsTW92ZVVwOigpPT5DQyxNb3ZlVXBMZWZ0OigpPT5rQyxNb3ZlVXBSaWdodDooKT0+U0MsTW92ZVZlcnRpY2FsOigpPT5MQyxNdXNpYzooKT0+REMsTXVzaWMyOigpPT5fQyxNdXNpYzM6KCk9PkFDLE11c2ljNDooKT0+JEMsTmF2aWdhdGlvbjooKT0+SUMsTmF2aWdhdGlvbjI6KCk9Pk5DLE5hdmlnYXRpb24yT2ZmOigpPT5FQyxOYXZpZ2F0aW9uT2ZmOigpPT5QQyxOZXR3b3JrOigpPT5PQyxOZXdzcGFwZXI6KCk9PkZDLE5mYzooKT0+QkMsTm9uQmluYXJ5OigpPT5SQyxOb3RlYm9vazooKT0+VUMsTm90ZWJvb2tQZW46KCk9PkhDLE5vdGVib29rVGFiczooKT0+cUMsTm90ZWJvb2tUZXh0OigpPT5WQyxOb3RlcGFkVGV4dDooKT0+V0MsTm90ZXBhZFRleHREYXNoZWQ6KCk9PmpDLE51dDooKT0+WUMsTnV0T2ZmOigpPT5HQyxPY3RhZ29uOigpPT5YQyxPY3RhZ29uQWxlcnQ6KCk9Plo0LE9jdGFnb25NaW51czooKT0+WkMsT2N0YWdvblBhdXNlOigpPT5YNCxPY3RhZ29uWDooKT0+UTQsT21lZ2E6KCk9PlFDLE9wdGlvbjooKT0+S0MsT3JiaXQ6KCk9PkpDLE9yaWdhbWk6KCk9PmVMLE91dGRlbnQ6KCk9Pk9pLFBhY2thZ2U6KCk9PmxMLFBhY2thZ2UyOigpPT50TCxQYWNrYWdlQ2hlY2s6KCk9PmFMLFBhY2thZ2VNaW51czooKT0+ckwsUGFja2FnZU9wZW46KCk9PmlMLFBhY2thZ2VQbHVzOigpPT5vTCxQYWNrYWdlU2VhcmNoOigpPT5zTCxQYWNrYWdlWDooKT0+bkwsUGFpbnRCdWNrZXQ6KCk9PmNMLFBhaW50Um9sbGVyOigpPT5kTCxQYWludGJydXNoOigpPT5mTCxQYWludGJydXNoMjooKT0+SzQsUGFpbnRicnVzaFZlcnRpY2FsOigpPT5LNCxQYWxldHRlOigpPT51TCxQYWxtdHJlZTooKT0+Q2wsUGFuZGE6KCk9PnBMLFBhbmVsQm90dG9tOigpPT5nTCxQYW5lbEJvdHRvbUNsb3NlOigpPT5oTCxQYW5lbEJvdHRvbURhc2hlZDooKT0+SjQsUGFuZWxCb3R0b21JbmFjdGl2ZTooKT0+SjQsUGFuZWxCb3R0b21PcGVuOigpPT5tTCxQYW5lbExlZnQ6KCk9PnIzLFBhbmVsTGVmdENsb3NlOigpPT5lMyxQYW5lbExlZnREYXNoZWQ6KCk9PnQzLFBhbmVsTGVmdEluYWN0aXZlOigpPT50MyxQYW5lbExlZnRPcGVuOigpPT5hMyxQYW5lbExlZnRSaWdodERhc2hlZDooKT0+eEwsUGFuZWxSaWdodDooKT0+eUwsUGFuZWxSaWdodENsb3NlOigpPT5iTCxQYW5lbFJpZ2h0RGFzaGVkOigpPT5pMyxQYW5lbFJpZ2h0SW5hY3RpdmU6KCk9PmkzLFBhbmVsUmlnaHRPcGVuOigpPT52TCxQYW5lbFRvcDooKT0+U0wsUGFuZWxUb3BCb3R0b21EYXNoZWQ6KCk9PndMLFBhbmVsVG9wQ2xvc2U6KCk9Pk1MLFBhbmVsVG9wRGFzaGVkOigpPT5vMyxQYW5lbFRvcEluYWN0aXZlOigpPT5vMyxQYW5lbFRvcE9wZW46KCk9PnpMLFBhbmVsc0xlZnRCb3R0b206KCk9PmtMLFBhbmVsc0xlZnRSaWdodDooKT0+RzAsUGFuZWxzUmlnaHRCb3R0b206KCk9PkNMLFBhbmVsc1RvcEJvdHRvbTooKT0+cDMsUGFuZWxzVG9wTGVmdDooKT0+czMsUGFwZXJjbGlwOigpPT5MTCxQYXJlbnRoZXNlczooKT0+X0wsUGFya2luZ0NpcmNsZTooKT0+QTAsUGFya2luZ0NpcmNsZU9mZjooKT0+XzAsUGFya2luZ01ldGVyOigpPT5UTCxQYXJraW5nU3F1YXJlOigpPT5hbCxQYXJraW5nU3F1YXJlT2ZmOigpPT50bCxQYXJ0eVBvcHBlcjooKT0+QUwsUGF1c2U6KCk9PiRMLFBhdXNlQ2lyY2xlOigpPT4kMCxQYXVzZU9jdGFnb246KCk9Plg0LFBhd1ByaW50OigpPT5ETCxQY0Nhc2U6KCk9PkVMLFBlbjooKT0+bDMsUGVuQm94OigpPT5hcixQZW5MaW5lOigpPT5uMyxQZW5PZmY6KCk9Pk5MLFBlblNxdWFyZTooKT0+YXIsUGVuVG9vbDooKT0+UEwsUGVuY2lsOigpPT5CTCxQZW5jaWxMaW5lOigpPT5JTCxQZW5jaWxPZmY6KCk9PkZMLFBlbmNpbFJ1bGVyOigpPT5PTCxQZW50YWdvbjooKT0+UkwsUGVyY2VudDooKT0+SEwsUGVyY2VudENpcmNsZTooKT0+RDAsUGVyY2VudERpYW1vbmQ6KCk9PlowLFBlcmNlbnRTcXVhcmU6KCk9PnJsLFBlcnNvblN0YW5kaW5nOigpPT5xTCxQaGlsaXBwaW5lUGVzbzooKT0+VkwsUGhvbmU6KCk9PlhMLFBob25lQ2FsbDooKT0+akwsUGhvbmVGb3J3YXJkZWQ6KCk9PlVMLFBob25lSW5jb21pbmc6KCk9PldMLFBob25lTWlzc2VkOigpPT5HTCxQaG9uZU9mZjooKT0+WUwsUGhvbmVPdXRnb2luZzooKT0+WkwsUGk6KCk9PlFMLFBpU3F1YXJlOigpPT5pbCxQaWFubzooKT0+S0wsUGlja2F4ZTooKT0+SkwsUGljdHVyZUluUGljdHVyZTooKT0+dFQsUGljdHVyZUluUGljdHVyZTI6KCk9PmVULFBpZUNoYXJ0OigpPT5sMCxQaWdneUJhbms6KCk9PmFULFBpbGNyb3c6KCk9Pm9ULFBpbGNyb3dMZWZ0OigpPT5yVCxQaWxjcm93UmlnaHQ6KCk9PmlULFBpbGNyb3dTcXVhcmU6KCk9Pm9sLFBpbGw6KCk9Pm5ULFBpbGxCb3R0bGU6KCk9PnNULFBpbjooKT0+Y1QsUGluT2ZmOigpPT5sVCxQaXBldHRlOigpPT5kVCxQaXp6YTooKT0+ZlQsUGxhbmU6KCk9PmhULFBsYW5lTGFuZGluZzooKT0+dVQsUGxhbmVUYWtlb2ZmOigpPT5wVCxQbGF5OigpPT5tVCxQbGF5Q2lyY2xlOigpPT5FMCxQbGF5U3F1YXJlOigpPT5zbCxQbHVnOigpPT54VCxQbHVnMjooKT0+Z1QsUGx1Z1phcDooKT0+YzMsUGx1Z1phcDI6KCk9PmMzLFBsdXM6KCk9PmJULFBsdXNDaXJjbGU6KCk9Pk4wLFBsdXNTcXVhcmU6KCk9Pm5sLFBvY2tldDooKT0+eVQsUG9ja2V0S25pZmU6KCk9PnZULFBvZGNhc3Q6KCk9PndULFBvaW50ZXI6KCk9PnpULFBvaW50ZXJPZmY6KCk9Pk1ULFBvcGNvcm46KCk9PmtULFBvcHNpY2xlOigpPT5TVCxQb3VuZFN0ZXJsaW5nOigpPT5DVCxQb3dlcjooKT0+VFQsUG93ZXJDaXJjbGU6KCk9PlAwLFBvd2VyT2ZmOigpPT5MVCxQb3dlclNxdWFyZTooKT0+bGwsUHJlc2VudGF0aW9uOigpPT5fVCxQcmludGVyOigpPT5BVCxQcmludGVyQ2hlY2s6KCk9PiRULFByb2plY3RvcjooKT0+RFQsUHJvcG9ydGlvbnM6KCk9PkVULFB1enpsZTooKT0+TlQsUHlyYW1pZDooKT0+UFQsUXJDb2RlOigpPT5JVCxRdW90ZTooKT0+RlQsUmFiYml0OigpPT5PVCxSYWRhcjooKT0+QlQsUmFkaWF0aW9uOigpPT5SVCxSYWRpY2FsOigpPT5IVCxSYWRpbzooKT0+VVQsUmFkaW9SZWNlaXZlcjooKT0+cVQsUmFkaW9Ub3dlcjooKT0+VlQsUmFkaXVzOigpPT5qVCxSYWlsU3ltYm9sOigpPT5XVCxSYWluYm93OigpPT5HVCxSYXQ6KCk9PllULFJhdGlvOigpPT5aVCxSZWNlaXB0OigpPT5vXyxSZWNlaXB0Q2VudDooKT0+WFQsUmVjZWlwdEV1cm86KCk9PlFULFJlY2VpcHRJbmRpYW5SdXBlZTooKT0+S1QsUmVjZWlwdEphcGFuZXNlWWVuOigpPT5KVCxSZWNlaXB0UG91bmRTdGVybGluZzooKT0+ZV8sUmVjZWlwdFJ1c3NpYW5SdWJsZTooKT0+dF8sUmVjZWlwdFN3aXNzRnJhbmM6KCk9PmFfLFJlY2VpcHRUZXh0OigpPT5yXyxSZWNlaXB0VHVya2lzaExpcmE6KCk9PmlfLFJlY3RhbmdsZUNpcmNsZTooKT0+c18sUmVjdGFuZ2xlRWxsaXBzaXM6KCk9PmQzLFJlY3RhbmdsZUdvZ2dsZXM6KCk9Pm5fLFJlY3RhbmdsZUhvcml6b250YWw6KCk9PmxfLFJlY3RhbmdsZVZlcnRpY2FsOigpPT5jXyxSZWN5Y2xlOigpPT5kXyxSZWRvOigpPT5wXyxSZWRvMjooKT0+Zl8sUmVkb0RvdDooKT0+dV8sUmVmcmVzaENjdzooKT0+bV8sUmVmcmVzaENjd0RvdDooKT0+aF8sUmVmcmVzaEN3OigpPT54XyxSZWZyZXNoQ3dPZmY6KCk9PmdfLFJlZnJpZ2VyYXRvcjooKT0+Yl8sUmVnZXg6KCk9PnZfLFJlbW92ZUZvcm1hdHRpbmc6KCk9PnlfLFJlcGVhdDooKT0+el8sUmVwZWF0MTooKT0+d18sUmVwZWF0MjooKT0+TV8sUmVwbGFjZTooKT0+U18sUmVwbGFjZUFsbDooKT0+a18sUmVwbHk6KCk9PkxfLFJlcGx5QWxsOigpPT5DXyxSZXdpbmQ6KCk9PlRfLFJpYmJvbjooKT0+X18sUm9ja2V0OigpPT5BXyxSb2NraW5nQ2hhaXI6KCk9PiRfLFJvbGxlckNvYXN0ZXI6KCk9PkRfLFJvc2U6KCk9PkVfLFJvdGF0ZTNEOigpPT5mMyxSb3RhdGUzZDooKT0+ZjMsUm90YXRlQ2N3OigpPT5JXyxSb3RhdGVDY3dLZXk6KCk9Pk5fLFJvdGF0ZUNjd1NxdWFyZTooKT0+UF8sUm90YXRlQ3c6KCk9Pk9fLFJvdGF0ZUN3U3F1YXJlOigpPT5GXyxSb3V0ZTooKT0+Ql8sUm91dGVPZmY6KCk9PlJfLFJvdXRlcjooKT0+SF8sUm93czooKT0+dTMsUm93czI6KCk9PnUzLFJvd3MzOigpPT5wMyxSb3dzNDooKT0+cV8sUnNzOigpPT5WXyxSdWxlcjooKT0+al8sUnVsZXJEaW1lbnNpb25MaW5lOigpPT5VXyxSdXNzaWFuUnVibGU6KCk9PldfLFNhaWxib2F0OigpPT5HXyxTYWxhZDooKT0+WV8sU2FuZHdpY2g6KCk9PlpfLFNhdGVsbGl0ZTooKT0+UV8sU2F0ZWxsaXRlRGlzaDooKT0+WF8sU2F1ZGlSaXlhbDooKT0+S18sU2F2ZTooKT0+dEEsU2F2ZUFsbDooKT0+Sl8sU2F2ZU9mZjooKT0+ZUEsU2NhbGU6KCk9PmFBLFNjYWxlM0Q6KCk9PmgzLFNjYWxlM2Q6KCk9PmgzLFNjYWxpbmc6KCk9PnJBLFNjYW46KCk9PnVBLFNjYW5CYXJjb2RlOigpPT5vQSxTY2FuRXllOigpPT5pQSxTY2FuRmFjZTooKT0+c0EsU2NhbkhlYXJ0OigpPT5uQSxTY2FuTGluZTooKT0+bEEsU2NhblFyQ29kZTooKT0+Y0EsU2NhblNlYXJjaDooKT0+ZEEsU2NhblRleHQ6KCk9PmZBLFNjYXR0ZXJDaGFydDooKT0+YzAsU2Nob29sOigpPT5wQSxTY2hvb2wyOigpPT5fbCxTY2lzc29yczooKT0+bUEsU2Npc3NvcnNMaW5lRGFzaGVkOigpPT5oQSxTY2lzc29yc1NxdWFyZTooKT0+Y2wsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206KCk9Pk4zLFNjb290ZXI6KCk9PmdBLFNjcmVlblNoYXJlOigpPT5iQSxTY3JlZW5TaGFyZU9mZjooKT0+eEEsU2Nyb2xsOigpPT55QSxTY3JvbGxUZXh0OigpPT52QSxTZWFyY2g6KCk9PkNBLFNlYXJjaEFsZXJ0OigpPT53QSxTZWFyY2hDaGVjazooKT0+ekEsU2VhcmNoQ29kZTooKT0+TUEsU2VhcmNoU2xhc2g6KCk9PmtBLFNlYXJjaFg6KCk9PlNBLFNlY3Rpb246KCk9PkxBLFNlbmQ6KCk9Pl9BLFNlbmRIb3Jpem9uYWw6KCk9Pm0zLFNlbmRIb3Jpem9udGFsOigpPT5tMyxTZW5kVG9CYWNrOigpPT5UQSxTZXBhcmF0b3JIb3Jpem9udGFsOigpPT5BQSxTZXBhcmF0b3JWZXJ0aWNhbDooKT0+JEEsU2VydmVyOigpPT5QQSxTZXJ2ZXJDb2c6KCk9PkRBLFNlcnZlckNyYXNoOigpPT5FQSxTZXJ2ZXJPZmY6KCk9Pk5BLFNldHRpbmdzOigpPT5GQSxTZXR0aW5nczI6KCk9PklBLFNoYXBlczooKT0+T0EsU2hhcmU6KCk9PlJBLFNoYXJlMjooKT0+QkEsU2hlZXQ6KCk9PkhBLFNoZWxsOigpPT5xQSxTaGllbGQ6KCk9PktBLFNoaWVsZEFsZXJ0OigpPT5WQSxTaGllbGRCYW46KCk9PlVBLFNoaWVsZENoZWNrOigpPT5qQSxTaGllbGRDbG9zZTooKT0+eDMsU2hpZWxkRWxsaXBzaXM6KCk9PldBLFNoaWVsZEhhbGY6KCk9PkdBLFNoaWVsZE1pbnVzOigpPT5ZQSxTaGllbGRPZmY6KCk9PlpBLFNoaWVsZFBsdXM6KCk9PlhBLFNoaWVsZFF1ZXN0aW9uOigpPT5nMyxTaGllbGRRdWVzdGlvbk1hcms6KCk9PmczLFNoaWVsZFVzZXI6KCk9PlFBLFNoaWVsZFg6KCk9PngzLFNoaXA6KCk9PmUkLFNoaXBXaGVlbDooKT0+SkEsU2hpcnQ6KCk9PnQkLFNob3BwaW5nQmFnOigpPT5hJCxTaG9wcGluZ0Jhc2tldDooKT0+ciQsU2hvcHBpbmdDYXJ0OigpPT5pJCxTaG92ZWw6KCk9Pm8kLFNob3dlckhlYWQ6KCk9PnMkLFNocmVkZGVyOigpPT5uJCxTaHJpbXA6KCk9PmwkLFNocmluazooKT0+YyQsU2hydWI6KCk9PmQkLFNodWZmbGU6KCk9PmYkLFNpZGViYXI6KCk9PnIzLFNpZGViYXJDbG9zZTooKT0+ZTMsU2lkZWJhck9wZW46KCk9PmEzLFNpZ21hOigpPT5wJCxTaWdtYVNxdWFyZTooKT0+ZGwsU2lnbmFsOigpPT54JCxTaWduYWxIaWdoOigpPT51JCxTaWduYWxMb3c6KCk9PmgkLFNpZ25hbE1lZGl1bTooKT0+bSQsU2lnbmFsWmVybzooKT0+ZyQsU2lnbmF0dXJlOigpPT5iJCxTaWducG9zdDooKT0+eSQsU2lnbnBvc3RCaWc6KCk9PnYkLFNpcmVuOigpPT53JCxTa2lwQmFjazooKT0+TSQsU2tpcEZvcndhcmQ6KCk9PmskLFNrdWxsOigpPT56JCxTbGFjazooKT0+UyQsU2xhc2g6KCk9PkMkLFNsYXNoU3F1YXJlOigpPT5mbCxTbGljZTooKT0+TCQsU2xpZGVyczooKT0+YjMsU2xpZGVyc0hvcml6b250YWw6KCk9PlQkLFNsaWRlcnNWZXJ0aWNhbDooKT0+YjMsU21hcnRwaG9uZTooKT0+JCQsU21hcnRwaG9uZUNoYXJnaW5nOigpPT5fJCxTbWFydHBob25lTmZjOigpPT5BJCxTbWlsZTooKT0+RSQsU21pbGVQbHVzOigpPT5EJCxTbmFpbDooKT0+TiQsU25vd2ZsYWtlOigpPT5QJCxTb2FwRGlzcGVuc2VyRHJvcGxldDooKT0+SSQsU29mYTooKT0+RiQsU29sYXJQYW5lbDooKT0+TyQsU29ydEFzYzooKT0+SG4sU29ydERlc2M6KCk9Pk9uLFNvdXA6KCk9PkIkLFNwYWNlOigpPT5SJCxTcGFkZTooKT0+SCQsU3BhcmtsZTooKT0+cSQsU3BhcmtsZXM6KCk9PnYzLFNwZWFrZXI6KCk9PlYkLFNwZWVjaDooKT0+VSQsU3BlbGxDaGVjazooKT0+VyQsU3BlbGxDaGVjazI6KCk9PmokLFNwbGluZTooKT0+WSQsU3BsaW5lUG9pbnRlcjooKT0+RyQsU3BsaXQ6KCk9PlokLFNwbGl0U3F1YXJlSG9yaXpvbnRhbDooKT0+dWwsU3BsaXRTcXVhcmVWZXJ0aWNhbDooKT0+cGwsU3Bvb2w6KCk9PlgkLFNwb3RsaWdodDooKT0+USQsU3ByYXlDYW46KCk9PkskLFNwcm91dDooKT0+SiQsU3F1YXJlOigpPT5kRCxTcXVhcmVBY3Rpdml0eTooKT0+eTMsU3F1YXJlQXJyb3dEb3duOigpPT56MyxTcXVhcmVBcnJvd0Rvd25MZWZ0OigpPT53MyxTcXVhcmVBcnJvd0Rvd25SaWdodDooKT0+TTMsU3F1YXJlQXJyb3dMZWZ0OigpPT5rMyxTcXVhcmVBcnJvd091dERvd25MZWZ0OigpPT5TMyxTcXVhcmVBcnJvd091dERvd25SaWdodDooKT0+QzMsU3F1YXJlQXJyb3dPdXRVcExlZnQ6KCk9PkwzLFNxdWFyZUFycm93T3V0VXBSaWdodDooKT0+VDMsU3F1YXJlQXJyb3dSaWdodDooKT0+XzMsU3F1YXJlQXJyb3dVcDooKT0+RDMsU3F1YXJlQXJyb3dVcExlZnQ6KCk9PkEzLFNxdWFyZUFycm93VXBSaWdodDooKT0+JDMsU3F1YXJlQXN0ZXJpc2s6KCk9PkUzLFNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzOigpPT5OMyxTcXVhcmVDaGFydEdhbnR0OigpPT5SaSxTcXVhcmVDaGVjazooKT0+UDMsU3F1YXJlQ2hlY2tCaWc6KCk9PkkzLFNxdWFyZUNoZXZyb25Eb3duOigpPT5GMyxTcXVhcmVDaGV2cm9uTGVmdDooKT0+TzMsU3F1YXJlQ2hldnJvblJpZ2h0OigpPT5CMyxTcXVhcmVDaGV2cm9uVXA6KCk9PlIzLFNxdWFyZUNvZGU6KCk9PkgzLFNxdWFyZURhc2hlZDooKT0+VTMsU3F1YXJlRGFzaGVkQm90dG9tOigpPT50RCxTcXVhcmVEYXNoZWRCb3R0b21Db2RlOigpPT5lRCxTcXVhcmVEYXNoZWRLYW5iYW46KCk9PnEzLFNxdWFyZURhc2hlZE1vdXNlUG9pbnRlcjooKT0+VjMsU3F1YXJlRGFzaGVkVG9wU29saWQ6KCk9PmFELFNxdWFyZURpdmlkZTooKT0+ajMsU3F1YXJlRG90OigpPT5XMyxTcXVhcmVFcXVhbDooKT0+RzMsU3F1YXJlRnVuY3Rpb246KCk9PlkzLFNxdWFyZUdhbnR0Q2hhcnQ6KCk9PlJpLFNxdWFyZUthbmJhbjooKT0+WjMsU3F1YXJlTGlicmFyeTooKT0+WDMsU3F1YXJlTTooKT0+UTMsU3F1YXJlTWVudTooKT0+SzMsU3F1YXJlTWludXM6KCk9PkozLFNxdWFyZU1vdXNlUG9pbnRlcjooKT0+ZWwsU3F1YXJlUGFya2luZzooKT0+YWwsU3F1YXJlUGFya2luZ09mZjooKT0+dGwsU3F1YXJlUGF1c2U6KCk9PnJELFNxdWFyZVBlbjooKT0+YXIsU3F1YXJlUGVyY2VudDooKT0+cmwsU3F1YXJlUGk6KCk9PmlsLFNxdWFyZVBpbGNyb3c6KCk9Pm9sLFNxdWFyZVBsYXk6KCk9PnNsLFNxdWFyZVBsdXM6KCk9Pm5sLFNxdWFyZVBvd2VyOigpPT5sbCxTcXVhcmVSYWRpY2FsOigpPT5pRCxTcXVhcmVSb3VuZENvcm5lcjooKT0+b0QsU3F1YXJlU2Npc3NvcnM6KCk9PmNsLFNxdWFyZVNpZ21hOigpPT5kbCxTcXVhcmVTbGFzaDooKT0+ZmwsU3F1YXJlU3BsaXRIb3Jpem9udGFsOigpPT51bCxTcXVhcmVTcGxpdFZlcnRpY2FsOigpPT5wbCxTcXVhcmVTcXVhcmU6KCk9PnNELFNxdWFyZVN0YWNrOigpPT5uRCxTcXVhcmVTdGFyOigpPT5sRCxTcXVhcmVTdG9wOigpPT5jRCxTcXVhcmVUZXJtaW5hbDooKT0+aGwsU3F1YXJlVXNlcjooKT0+Z2wsU3F1YXJlVXNlclJvdW5kOigpPT5tbCxTcXVhcmVYOigpPT54bCxTcXVhcmVzRXhjbHVkZTooKT0+ZkQsU3F1YXJlc0ludGVyc2VjdDooKT0+dUQsU3F1YXJlc1N1YnRyYWN0OigpPT5wRCxTcXVhcmVzVW5pdGU6KCk9Pm1ELFNxdWlyY2xlOigpPT5nRCxTcXVpcmNsZURhc2hlZDooKT0+aEQsU3F1aXJyZWw6KCk9PnhELFN0YW1wOigpPT5iRCxTdGFyOigpPT53RCxTdGFySGFsZjooKT0+eUQsU3Rhck9mZjooKT0+dkQsU3RhcnM6KCk9PnYzLFN0ZXBCYWNrOigpPT5NRCxTdGVwRm9yd2FyZDooKT0+ekQsU3RldGhvc2NvcGU6KCk9PmtELFN0aWNrZXI6KCk9PlNELFN0aWNreU5vdGU6KCk9PkxELFN0b25lOigpPT5DRCxTdG9wQ2lyY2xlOigpPT5GMCxTdG9yZTooKT0+VEQsU3RyZXRjaEhvcml6b250YWw6KCk9Pl9ELFN0cmV0Y2hWZXJ0aWNhbDooKT0+QUQsU3RyaWtldGhyb3VnaDooKT0+JEQsU3Vic2NyaXB0OigpPT5ERCxTdWJ0aXRsZXM6KCk9PlhuLFN1bjooKT0+RkQsU3VuRGltOigpPT5FRCxTdW5NZWRpdW06KCk9Pk5ELFN1bk1vb246KCk9PlBELFN1blNub3c6KCk9PklELFN1bnJpc2U6KCk9Pk9ELFN1bnNldDooKT0+QkQsU3VwZXJzY3JpcHQ6KCk9PlJELFN3YXRjaEJvb2s6KCk9PkhELFN3aXNzRnJhbmM6KCk9PnFELFN3aXRjaENhbWVyYTooKT0+VkQsU3dvcmQ6KCk9PlVELFN3b3JkczooKT0+akQsU3lyaW5nZTooKT0+V0QsVGFibGU6KCk9PmVFLFRhYmxlMjooKT0+R0QsVGFibGVDZWxsc01lcmdlOigpPT5ZRCxUYWJsZUNlbGxzU3BsaXQ6KCk9PlpELFRhYmxlQ29sdW1uc1NwbGl0OigpPT5RRCxUYWJsZUNvbmZpZzooKT0+UGksVGFibGVPZkNvbnRlbnRzOigpPT5YRCxUYWJsZVByb3BlcnRpZXM6KCk9PktELFRhYmxlUm93c1NwbGl0OigpPT5KRCxUYWJsZXQ6KCk9PmFFLFRhYmxldFNtYXJ0cGhvbmU6KCk9PnRFLFRhYmxldHM6KCk9PnJFLFRhZzooKT0+aUUsVGFnczooKT0+b0UsVGFsbHkxOigpPT5zRSxUYWxseTI6KCk9Pm5FLFRhbGx5MzooKT0+bEUsVGFsbHk0OigpPT5jRSxUYWxseTU6KCk9PmRFLFRhbmdlbnQ6KCk9PmZFLFRhcmdldDooKT0+dUUsVGVsZXNjb3BlOigpPT5wRSxUZW50OigpPT5tRSxUZW50VHJlZTooKT0+aEUsVGVybWluYWw6KCk9PmdFLFRlcm1pbmFsU3F1YXJlOigpPT5obCxUZXN0VHViZTooKT0+eEUsVGVzdFR1YmUyOigpPT5ibCxUZXN0VHViZURpYWdvbmFsOigpPT5ibCxUZXN0VHViZXM6KCk9PmJFLFRleHQ6KCk9PkhpLFRleHRBbGlnbkNlbnRlcjooKT0+dmwsVGV4dEFsaWduRW5kOigpPT55bCxUZXh0QWxpZ25KdXN0aWZ5OigpPT53bCxUZXh0QWxpZ25TdGFydDooKT0+SGksVGV4dEN1cnNvcjooKT0+eUUsVGV4dEN1cnNvcklucHV0OigpPT52RSxUZXh0SW5pdGlhbDooKT0+TWwsVGV4dFF1b3RlOigpPT53RSxUZXh0U2VhcmNoOigpPT5NRSxUZXh0U2VsZWN0OigpPT56bCxUZXh0U2VsZWN0aW9uOigpPT56bCxUZXh0V3JhcDooKT0+a2wsVGhlYXRlcjooKT0+ekUsVGhlcm1vbWV0ZXI6KCk9PkNFLFRoZXJtb21ldGVyU25vd2ZsYWtlOigpPT5rRSxUaGVybW9tZXRlclN1bjooKT0+U0UsVGh1bWJzRG93bjooKT0+TEUsVGh1bWJzVXA6KCk9PlRFLFRpY2tldDooKT0+UEUsVGlja2V0Q2hlY2s6KCk9Pl9FLFRpY2tldE1pbnVzOigpPT5BRSxUaWNrZXRQZXJjZW50OigpPT4kRSxUaWNrZXRQbHVzOigpPT5ERSxUaWNrZXRTbGFzaDooKT0+RUUsVGlja2V0WDooKT0+TkUsVGlja2V0czooKT0+RkUsVGlja2V0c1BsYW5lOigpPT5JRSxUaW1lcjooKT0+UkUsVGltZXJPZmY6KCk9PkJFLFRpbWVyUmVzZXQ6KCk9Pk9FLFRvZ2dsZUxlZnQ6KCk9PkhFLFRvZ2dsZVJpZ2h0OigpPT5xRSxUb2lsZXQ6KCk9PlZFLFRvb2xDYXNlOigpPT5VRSxUb29sYm94OigpPT5qRSxUb3JuYWRvOigpPT5XRSxUb3J1czooKT0+R0UsVG91Y2hwYWQ6KCk9PlpFLFRvdWNocGFkT2ZmOigpPT5ZRSxUb3dlckNvbnRyb2w6KCk9PlhFLFRveUJyaWNrOigpPT5RRSxUcmFjdG9yOigpPT5KRSxUcmFmZmljQ29uZTooKT0+S0UsVHJhaW46KCk9PlNsLFRyYWluRnJvbnQ6KCk9PnROLFRyYWluRnJvbnRUdW5uZWw6KCk9PmVOLFRyYWluVHJhY2s6KCk9PmFOLFRyYW1Gcm9udDooKT0+U2wsVHJhbnNnZW5kZXI6KCk9PnJOLFRyYXNoOigpPT5vTixUcmFzaDI6KCk9PmlOLFRyZWVEZWNpZHVvdXM6KCk9PnNOLFRyZWVQYWxtOigpPT5DbCxUcmVlUGluZTooKT0+bk4sVHJlZXM6KCk9PmxOLFRyZWxsbzooKT0+Y04sVHJlbmRpbmdEb3duOigpPT5kTixUcmVuZGluZ1VwOigpPT51TixUcmVuZGluZ1VwRG93bjooKT0+Zk4sVHJpYW5nbGU6KCk9Pm1OLFRyaWFuZ2xlQWxlcnQ6KCk9PkxsLFRyaWFuZ2xlRGFzaGVkOigpPT5wTixUcmlhbmdsZVJpZ2h0OigpPT5oTixUcm9waHk6KCk9PmdOLFRydWNrOigpPT5iTixUcnVja0VsZWN0cmljOigpPT54TixUdXJraXNoTGlyYTooKT0+dk4sVHVybnRhYmxlOigpPT55TixUdXJ0bGU6KCk9PndOLFR2OigpPT56TixUdjI6KCk9PlRsLFR2TWluaW1hbDooKT0+VGwsVHZNaW5pbWFsUGxheTooKT0+TU4sVHdpdGNoOigpPT5rTixUd2l0dGVyOigpPT5TTixUeXBlOigpPT5MTixUeXBlT3V0bGluZTooKT0+Q04sVW1icmVsbGE6KCk9Pl9OLFVtYnJlbGxhT2ZmOigpPT5UTixVbmRlcmxpbmU6KCk9PkFOLFVuZG86KCk9PkVOLFVuZG8yOigpPT4kTixVbmRvRG90OigpPT5ETixVbmZvbGRIb3Jpem9udGFsOigpPT5OTixVbmZvbGRWZXJ0aWNhbDooKT0+UE4sVW5ncm91cDooKT0+SU4sVW5pdmVyc2l0eTooKT0+X2wsVW5saW5rOigpPT5PTixVbmxpbmsyOigpPT5GTixVbmxvY2s6KCk9PlY0LFVubG9ja0tleWhvbGU6KCk9PnE0LFVucGx1ZzooKT0+Qk4sVXBsb2FkOigpPT5ITixVcGxvYWRDbG91ZDooKT0+VTAsVXNiOigpPT5STixVc2VyOigpPT5KTixVc2VyMjooKT0+TmwsVXNlckNoZWNrOigpPT5xTixVc2VyQ2hlY2syOigpPT5BbCxVc2VyQ2lyY2xlOigpPT5CMCxVc2VyQ2lyY2xlMjooKT0+TzAsVXNlckNvZzooKT0+Vk4sVXNlckNvZzI6KCk9PiRsLFVzZXJMb2NrOigpPT5VTixVc2VyTWludXM6KCk9PmpOLFVzZXJNaW51czI6KCk9PkRsLFVzZXJQZW46KCk9PldOLFVzZXJQbHVzOigpPT5HTixVc2VyUGx1czI6KCk9PkVsLFVzZXJSb3VuZDooKT0+TmwsVXNlclJvdW5kQ2hlY2s6KCk9PkFsLFVzZXJSb3VuZENvZzooKT0+JGwsVXNlclJvdW5kTWludXM6KCk9PkRsLFVzZXJSb3VuZFBlbjooKT0+WU4sVXNlclJvdW5kUGx1czooKT0+RWwsVXNlclJvdW5kU2VhcmNoOigpPT5aTixVc2VyUm91bmRYOigpPT5QbCxVc2VyU2VhcmNoOigpPT5YTixVc2VyU3F1YXJlOigpPT5nbCxVc2VyU3F1YXJlMjooKT0+bWwsVXNlclN0YXI6KCk9PlFOLFVzZXJYOigpPT5LTixVc2VyWDI6KCk9PlBsLFVzZXJzOigpPT5lUCxVc2VyczI6KCk9PklsLFVzZXJzUm91bmQ6KCk9PklsLFV0ZW5zaWxzOigpPT5PbCxVdGVuc2lsc0Nyb3NzZWQ6KCk9PkZsLFV0aWxpdHlQb2xlOigpPT5hUCxWYW46KCk9PnRQLFZhcmlhYmxlOigpPT5yUCxWYXVsdDooKT0+aVAsVmVjdG9yU3F1YXJlOigpPT5vUCxWZWdhbjooKT0+c1AsVmVuZXRpYW5NYXNrOigpPT5uUCxWZW51czooKT0+bFAsVmVudXNBbmRNYXJzOigpPT5jUCxWZXJpZmllZDooKT0+VW4sVmlicmF0ZTooKT0+ZlAsVmlicmF0ZU9mZjooKT0+ZFAsVmlkZW86KCk9PnBQLFZpZGVvT2ZmOigpPT51UCxWaWRlb3RhcGU6KCk9Pm1QLFZpZXc6KCk9PmdQLFZvaWNlbWFpbDooKT0+aFAsVm9sbGV5YmFsbDooKT0+eFAsVm9sdW1lOigpPT5NUCxWb2x1bWUxOigpPT5iUCxWb2x1bWUyOigpPT52UCxWb2x1bWVPZmY6KCk9PnlQLFZvbHVtZVg6KCk9PndQLFZvdGU6KCk9PnpQLFdhbGxldDooKT0+U1AsV2FsbGV0MjooKT0+QmwsV2FsbGV0Q2FyZHM6KCk9PmtQLFdhbGxldE1pbmltYWw6KCk9PkJsLFdhbGxwYXBlcjooKT0+Q1AsV2FuZDooKT0+TFAsV2FuZDI6KCk9PlJsLFdhbmRTcGFya2xlczooKT0+UmwsV2FyZWhvdXNlOigpPT5UUCxXYXNoaW5nTWFjaGluZTooKT0+X1AsV2F0Y2g6KCk9PkFQLFdhdmVzOigpPT5OUCxXYXZlc0Fycm93RG93bjooKT0+JFAsV2F2ZXNBcnJvd1VwOigpPT5EUCxXYXZlc0xhZGRlcjooKT0+RVAsV2F5cG9pbnRzOigpPT5QUCxXZWJjYW06KCk9PklQLFdlYmhvb2s6KCk9Pk9QLFdlYmhvb2tPZmY6KCk9PkZQLFdlaWdodDooKT0+UlAsV2VpZ2h0VGlsZGU6KCk9PkJQLFdoZWF0OigpPT5xUCxXaGVhdE9mZjooKT0+SFAsV2hvbGVXb3JkOigpPT5WUCxXaWZpOigpPT5RUCxXaWZpQ29nOigpPT5VUCxXaWZpSGlnaDooKT0+V1AsV2lmaUxvdzooKT0+alAsV2lmaU9mZjooKT0+R1AsV2lmaVBlbjooKT0+WVAsV2lmaVN5bmM6KCk9PlpQLFdpZmlaZXJvOigpPT5YUCxXaW5kOigpPT5KUCxXaW5kQXJyb3dEb3duOigpPT5LUCxXaW5lOigpPT50SSxXaW5lT2ZmOigpPT5lSSxXb3JrZmxvdzooKT0+ckksV29ybTooKT0+YUksV3JhcFRleHQ6KCk9PmtsLFdyZW5jaDooKT0+aUksWDooKT0+b0ksWENpcmNsZTooKT0+UjAsWE9jdGFnb246KCk9PlE0LFhTcXVhcmU6KCk9PnhsLFlvdXR1YmU6KCk9PnNJLFphcDooKT0+bEksWmFwT2ZmOigpPT5uSSxab29tSW46KCk9PmNJLFpvb21PdXQ6KCk9PmRJLGNyZWF0ZUVsZW1lbnQ6KCk9Pm9zLGNyZWF0ZUljb25zOigpPT5CRGUsaWNvbnM6KCk9PkhsfSk7dmFyIEJEZSxXVT1uKCgpPT57eUl0KCk7d0l0KCk7VzRlKCk7RzRlKCk7WTRlKCk7WjRlKCk7WDRlKCk7UTRlKCk7SzRlKCk7SjRlKCk7ZTNlKCk7dDNlKCk7YTNlKCk7cjNlKCk7aTNlKCk7bzNlKCk7czNlKCk7bjNlKCk7bDNlKCk7YzNlKCk7ZDNlKCk7ZjNlKCk7dTNlKCk7cDNlKCk7aDNlKCk7bTNlKCk7ZzNlKCk7eDNlKCk7YjNlKCk7djNlKCk7eTNlKCk7dzNlKCk7TTNlKCk7ejNlKCk7azNlKCk7UzNlKCk7QzNlKCk7TDNlKCk7VDNlKCk7XzNlKCk7QTNlKCk7JDNlKCk7RDNlKCk7RTNlKCk7TjNlKCk7UDNlKCk7STNlKCk7RjNlKCk7TzNlKCk7QjNlKCk7UjNlKCk7SDNlKCk7cTNlKCk7VjNlKCk7VTNlKCk7ajNlKCk7VzNlKCk7RzNlKCk7WTNlKCk7WjNlKCk7WDNlKCk7UTNlKCk7SzNlKCk7SjNlKCk7ZWxlKCk7dGxlKCk7YWxlKCk7cmxlKCk7aWxlKCk7b2xlKCk7c2xlKCk7bmxlKCk7bGxlKCk7Y2xlKCk7ZGxlKCk7ZmxlKCk7dWxlKCk7cGxlKCk7aGxlKCk7bWxlKCk7Z2xlKCk7eGxlKCk7YmxlKCk7dmxlKCk7eWxlKCk7d2xlKCk7TWxlKCk7emxlKCk7a2xlKCk7U2xlKCk7Q2xlKCk7TGxlKCk7VGxlKCk7X2xlKCk7QWxlKCk7JGxlKCk7RGxlKCk7RWxlKCk7TmxlKCk7UGxlKCk7SWxlKCk7RmxlKCk7T2xlKCk7QmxlKCk7UmxlKCk7SGxlKCk7cWxlKCk7VmxlKCk7VWxlKCk7amxlKCk7V2xlKCk7R2xlKCk7WWxlKCk7WmxlKCk7WGxlKCk7UWxlKCk7S2xlKCk7SmxlKCk7ZWNlKCk7dGNlKCk7YWNlKCk7cmNlKCk7aWNlKCk7b2NlKCk7c2NlKCk7bmNlKCk7bGNlKCk7Y2NlKCk7ZGNlKCk7ZmNlKCk7dWNlKCk7cGNlKCk7aGNlKCk7bWNlKCk7Z2NlKCk7eGNlKCk7YmNlKCk7dmNlKCk7eWNlKCk7d2NlKCk7TWNlKCk7emNlKCk7a2NlKCk7U2NlKCk7Q2NlKCk7TGNlKCk7VGNlKCk7X2NlKCk7QWNlKCk7JGNlKCk7RGNlKCk7RWNlKCk7TmNlKCk7UGNlKCk7SWNlKCk7RmNlKCk7T2NlKCk7QmNlKCk7UmNlKCk7SGNlKCk7cWNlKCk7VmNlKCk7VWNlKCk7amNlKCk7V2NlKCk7R2NlKCk7WWNlKCk7WmNlKCk7WGNlKCk7UWNlKCk7S2NlKCk7SmNlKCk7ZTZlKCk7dDZlKCk7YTZlKCk7cjZlKCk7aTZlKCk7bzZlKCk7czZlKCk7bjZlKCk7bDZlKCk7YzZlKCk7ZDZlKCk7ZjZlKCk7dTZlKCk7cDZlKCk7aDZlKCk7bTZlKCk7ZzZlKCk7eDZlKCk7YjZlKCk7djZlKCk7eTZlKCk7dzZlKCk7TTZlKCk7ejZlKCk7azZlKCk7UzZlKCk7QzZlKCk7TDZlKCk7VDZlKCk7XzZlKCk7QTZlKCk7JDZlKCk7RDZlKCk7RTZlKCk7TjZlKCk7UDZlKCk7STZlKCk7RjZlKCk7TzZlKCk7QjZlKCk7UjZlKCk7SDZlKCk7cTZlKCk7VjZlKCk7VTZlKCk7ajZlKCk7VzZlKCk7RzZlKCk7WTZlKCk7WjZlKCk7WDZlKCk7UTZlKCk7SzZlKCk7SjZlKCk7ZTVlKCk7dDVlKCk7YTVlKCk7cjVlKCk7aTVlKCk7bzVlKCk7czVlKCk7bjVlKCk7bDVlKCk7YzVlKCk7ZDVlKCk7ZjVlKCk7dTVlKCk7cDVlKCk7aDVlKCk7bTVlKCk7ZzVlKCk7eDVlKCk7YjVlKCk7djVlKCk7eTVlKCk7dzVlKCk7TTVlKCk7ejVlKCk7azVlKCk7UzVlKCk7QzVlKCk7TDVlKCk7VDVlKCk7XzVlKCk7QTVlKCk7JDVlKCk7RDVlKCk7RTVlKCk7TjVlKCk7UDVlKCk7STVlKCk7RjVlKCk7TzVlKCk7QjVlKCk7UjVlKCk7SDVlKCk7cTVlKCk7VjVlKCk7VTVlKCk7ajVlKCk7VzVlKCk7RzVlKCk7WTVlKCk7WjVlKCk7WDVlKCk7UTVlKCk7SzVlKCk7SjVlKCk7ZThlKCk7dDhlKCk7YThlKCk7cjhlKCk7aThlKCk7bzhlKCk7czhlKCk7bjhlKCk7bDhlKCk7YzhlKCk7ZDhlKCk7ZjhlKCk7dThlKCk7cDhlKCk7aDhlKCk7bThlKCk7ZzhlKCk7eDhlKCk7YjhlKCk7djhlKCk7eThlKCk7dzhlKCk7TThlKCk7ejhlKCk7azhlKCk7UzhlKCk7QzhlKCk7TDhlKCk7VDhlKCk7XzhlKCk7QThlKCk7JDhlKCk7RDhlKCk7RThlKCk7TjhlKCk7UDhlKCk7SThlKCk7RjhlKCk7TzhlKCk7QjhlKCk7UjhlKCk7SDhlKCk7cThlKCk7VjhlKCk7VThlKCk7ajhlKCk7VzhlKCk7RzhlKCk7WThlKCk7WjhlKCk7WDhlKCk7UThlKCk7SzhlKCk7SjhlKCk7ZWRlKCk7dGRlKCk7YWRlKCk7cmRlKCk7aWRlKCk7b2RlKCk7c2RlKCk7bmRlKCk7bGRlKCk7Y2RlKCk7ZGRlKCk7ZmRlKCk7dWRlKCk7cGRlKCk7aGRlKCk7bWRlKCk7Z2RlKCk7eGRlKCk7YmRlKCk7dmRlKCk7eWRlKCk7d2RlKCk7TWRlKCk7emRlKCk7a2RlKCk7U2RlKCk7Q2RlKCk7TGRlKCk7VGRlKCk7X2RlKCk7QWRlKCk7JGRlKCk7RGRlKCk7RWRlKCk7TmRlKCk7UGRlKCk7SWRlKCk7RmRlKCk7T2RlKCk7QmRlKCk7UmRlKCk7SGRlKCk7cWRlKCk7VmRlKCk7VWRlKCk7amRlKCk7V2RlKCk7R2RlKCk7WWRlKCk7WmRlKCk7WGRlKCk7UWRlKCk7S2RlKCk7SmRlKCk7ZTdlKCk7dDdlKCk7YTdlKCk7cjdlKCk7aTdlKCk7bzdlKCk7czdlKCk7bjdlKCk7bDdlKCk7YzdlKCk7ZDdlKCk7ZjdlKCk7dTdlKCk7cDdlKCk7aDdlKCk7bTdlKCk7ZzdlKCk7eDdlKCk7YjdlKCk7djdlKCk7eTdlKCk7dzdlKCk7TTdlKCk7ejdlKCk7azdlKCk7UzdlKCk7QzdlKCk7TDdlKCk7VDdlKCk7XzdlKCk7QTdlKCk7JDdlKCk7RDdlKCk7RTdlKCk7TjdlKCk7UDdlKCk7STdlKCk7RjdlKCk7TzdlKCk7QjdlKCk7UjdlKCk7SDdlKCk7cTdlKCk7VjdlKCk7VTdlKCk7ajdlKCk7VzdlKCk7RzdlKCk7WTdlKCk7WjdlKCk7WDdlKCk7UTdlKCk7SzdlKCk7SjdlKCk7ZWZlKCk7dGZlKCk7YWZlKCk7cmZlKCk7aWZlKCk7b2ZlKCk7c2ZlKCk7bmZlKCk7bGZlKCk7Y2ZlKCk7ZGZlKCk7ZmZlKCk7dWZlKCk7cGZlKCk7aGZlKCk7bWZlKCk7Z2ZlKCk7eGZlKCk7YmZlKCk7dmZlKCk7eWZlKCk7d2ZlKCk7TWZlKCk7emZlKCk7a2ZlKCk7U2ZlKCk7Q2ZlKCk7TGZlKCk7VGZlKCk7X2ZlKCk7QWZlKCk7JGZlKCk7RGZlKCk7RWZlKCk7TmZlKCk7UGZlKCk7SWZlKCk7RmZlKCk7T2ZlKCk7QmZlKCk7UmZlKCk7SGZlKCk7cWZlKCk7VmZlKCk7VWZlKCk7amZlKCk7V2ZlKCk7R2ZlKCk7WWZlKCk7WmZlKCk7WGZlKCk7UWZlKCk7S2ZlKCk7SmZlKCk7ZXVlKCk7dHVlKCk7YXVlKCk7cnVlKCk7aXVlKCk7b3VlKCk7c3VlKCk7bnVlKCk7bHVlKCk7Y3VlKCk7ZHVlKCk7ZnVlKCk7dXVlKCk7cHVlKCk7aHVlKCk7bXVlKCk7Z3VlKCk7eHVlKCk7YnVlKCk7dnVlKCk7eXVlKCk7d3VlKCk7TXVlKCk7enVlKCk7a3VlKCk7U3VlKCk7Q3VlKCk7THVlKCk7VHVlKCk7X3VlKCk7QXVlKCk7JHVlKCk7RHVlKCk7RXVlKCk7TnVlKCk7UHVlKCk7SXVlKCk7RnVlKCk7T3VlKCk7QnVlKCk7UnVlKCk7SHVlKCk7cXVlKCk7VnVlKCk7VXVlKCk7anVlKCk7V3VlKCk7R3VlKCk7WXVlKCk7WnVlKCk7WHVlKCk7UXVlKCk7S3VlKCk7SnVlKCk7ZXBlKCk7dHBlKCk7YXBlKCk7cnBlKCk7aXBlKCk7b3BlKCk7c3BlKCk7bnBlKCk7bHBlKCk7Y3BlKCk7ZHBlKCk7ZnBlKCk7dXBlKCk7cHBlKCk7aHBlKCk7bXBlKCk7Z3BlKCk7eHBlKCk7YnBlKCk7dnBlKCk7eXBlKCk7d3BlKCk7TXBlKCk7enBlKCk7a3BlKCk7U3BlKCk7Q3BlKCk7THBlKCk7VHBlKCk7X3BlKCk7QXBlKCk7JHBlKCk7RHBlKCk7RXBlKCk7TnBlKCk7UHBlKCk7SXBlKCk7RnBlKCk7T3BlKCk7QnBlKCk7UnBlKCk7SHBlKCk7cXBlKCk7VnBlKCk7VXBlKCk7anBlKCk7V3BlKCk7R3BlKCk7WXBlKCk7WnBlKCk7WHBlKCk7UXBlKCk7S3BlKCk7SnBlKCk7ZTllKCk7dDllKCk7YTllKCk7cjllKCk7aTllKCk7bzllKCk7czllKCk7bjllKCk7bDllKCk7YzllKCk7ZDllKCk7ZjllKCk7dTllKCk7cDllKCk7aDllKCk7bTllKCk7ZzllKCk7eDllKCk7YjllKCk7djllKCk7eTllKCk7dzllKCk7TTllKCk7ejllKCk7azllKCk7UzllKCk7QzllKCk7TDllKCk7VDllKCk7XzllKCk7QTllKCk7JDllKCk7RDllKCk7RTllKCk7TjllKCk7UDllKCk7STllKCk7RjllKCk7TzllKCk7QjllKCk7UjllKCk7SDllKCk7cTllKCk7VjllKCk7VTllKCk7ajllKCk7VzllKCk7RzllKCk7WTllKCk7WjllKCk7WDllKCk7UTllKCk7SzllKCk7SjllKCk7ZWhlKCk7dGhlKCk7YWhlKCk7cmhlKCk7aWhlKCk7b2hlKCk7c2hlKCk7bmhlKCk7bGhlKCk7Y2hlKCk7ZGhlKCk7ZmhlKCk7dWhlKCk7cGhlKCk7aGhlKCk7bWhlKCk7Z2hlKCk7eGhlKCk7YmhlKCk7dmhlKCk7eWhlKCk7d2hlKCk7TWhlKCk7emhlKCk7a2hlKCk7U2hlKCk7Q2hlKCk7TGhlKCk7VGhlKCk7X2hlKCk7QWhlKCk7JGhlKCk7RGhlKCk7RWhlKCk7TmhlKCk7UGhlKCk7SWhlKCk7RmhlKCk7T2hlKCk7QmhlKCk7UmhlKCk7SGhlKCk7cWhlKCk7VmhlKCk7VWhlKCk7amhlKCk7V2hlKCk7R2hlKCk7WWhlKCk7WmhlKCk7WGhlKCk7UWhlKCk7S2hlKCk7SmhlKCk7ZW1lKCk7dG1lKCk7YW1lKCk7cm1lKCk7aW1lKCk7b21lKCk7c21lKCk7bm1lKCk7bG1lKCk7Y21lKCk7ZG1lKCk7Zm1lKCk7dW1lKCk7cG1lKCk7aG1lKCk7bW1lKCk7Z21lKCk7eG1lKCk7Ym1lKCk7dm1lKCk7eW1lKCk7d21lKCk7TW1lKCk7em1lKCk7a21lKCk7U21lKCk7Q21lKCk7TG1lKCk7VG1lKCk7X21lKCk7QW1lKCk7JG1lKCk7RG1lKCk7RW1lKCk7Tm1lKCk7UG1lKCk7SW1lKCk7Rm1lKCk7T21lKCk7Qm1lKCk7Um1lKCk7SG1lKCk7cW1lKCk7Vm1lKCk7VW1lKCk7am1lKCk7V21lKCk7R21lKCk7WW1lKCk7Wm1lKCk7WG1lKCk7UW1lKCk7S21lKCk7Sm1lKCk7ZWdlKCk7dGdlKCk7YWdlKCk7cmdlKCk7aWdlKCk7b2dlKCk7c2dlKCk7bmdlKCk7bGdlKCk7Y2dlKCk7ZGdlKCk7ZmdlKCk7dWdlKCk7cGdlKCk7aGdlKCk7bWdlKCk7Z2dlKCk7eGdlKCk7YmdlKCk7dmdlKCk7eWdlKCk7d2dlKCk7TWdlKCk7emdlKCk7a2dlKCk7U2dlKCk7Q2dlKCk7TGdlKCk7VGdlKCk7X2dlKCk7QWdlKCk7JGdlKCk7RGdlKCk7RWdlKCk7TmdlKCk7UGdlKCk7SWdlKCk7RmdlKCk7T2dlKCk7QmdlKCk7UmdlKCk7SGdlKCk7cWdlKCk7VmdlKCk7VWdlKCk7amdlKCk7V2dlKCk7R2dlKCk7WWdlKCk7WmdlKCk7WGdlKCk7UWdlKCk7S2dlKCk7SmdlKCk7ZXhlKCk7dHhlKCk7YXhlKCk7cnhlKCk7aXhlKCk7b3hlKCk7c3hlKCk7bnhlKCk7bHhlKCk7Y3hlKCk7ZHhlKCk7ZnhlKCk7dXhlKCk7cHhlKCk7aHhlKCk7bXhlKCk7Z3hlKCk7eHhlKCk7YnhlKCk7dnhlKCk7eXhlKCk7d3hlKCk7TXhlKCk7enhlKCk7a3hlKCk7U3hlKCk7Q3hlKCk7THhlKCk7VHhlKCk7X3hlKCk7QXhlKCk7JHhlKCk7RHhlKCk7RXhlKCk7TnhlKCk7UHhlKCk7SXhlKCk7RnhlKCk7T3hlKCk7QnhlKCk7UnhlKCk7SHhlKCk7cXhlKCk7VnhlKCk7VXhlKCk7anhlKCk7V3hlKCk7R3hlKCk7WXhlKCk7WnhlKCk7WHhlKCk7UXhlKCk7S3hlKCk7SnhlKCk7ZWJlKCk7dGJlKCk7YWJlKCk7cmJlKCk7aWJlKCk7b2JlKCk7c2JlKCk7bmJlKCk7bGJlKCk7Y2JlKCk7ZGJlKCk7ZmJlKCk7dWJlKCk7cGJlKCk7aGJlKCk7bWJlKCk7Z2JlKCk7eGJlKCk7YmJlKCk7dmJlKCk7eWJlKCk7d2JlKCk7TWJlKCk7emJlKCk7a2JlKCk7U2JlKCk7Q2JlKCk7TGJlKCk7VGJlKCk7X2JlKCk7QWJlKCk7JGJlKCk7RGJlKCk7RWJlKCk7TmJlKCk7UGJlKCk7SWJlKCk7RmJlKCk7T2JlKCk7QmJlKCk7UmJlKCk7SGJlKCk7cWJlKCk7VmJlKCk7VWJlKCk7amJlKCk7V2JlKCk7R2JlKCk7WWJlKCk7WmJlKCk7WGJlKCk7UWJlKCk7S2JlKCk7SmJlKCk7ZXZlKCk7dHZlKCk7YXZlKCk7cnZlKCk7aXZlKCk7b3ZlKCk7c3ZlKCk7bnZlKCk7bHZlKCk7Y3ZlKCk7ZHZlKCk7ZnZlKCk7dXZlKCk7cHZlKCk7aHZlKCk7bXZlKCk7Z3ZlKCk7eHZlKCk7YnZlKCk7dnZlKCk7eXZlKCk7d3ZlKCk7TXZlKCk7enZlKCk7a3ZlKCk7U3ZlKCk7Q3ZlKCk7THZlKCk7VHZlKCk7X3ZlKCk7QXZlKCk7JHZlKCk7RHZlKCk7RXZlKCk7TnZlKCk7UHZlKCk7SXZlKCk7RnZlKCk7T3ZlKCk7QnZlKCk7UnZlKCk7SHZlKCk7cXZlKCk7VnZlKCk7VXZlKCk7anZlKCk7V3ZlKCk7R3ZlKCk7WXZlKCk7WnZlKCk7WHZlKCk7UXZlKCk7S3ZlKCk7SnZlKCk7ZXllKCk7dHllKCk7YXllKCk7cnllKCk7aXllKCk7b3llKCk7c3llKCk7bnllKCk7bHllKCk7Y3llKCk7ZHllKCk7ZnllKCk7dXllKCk7cHllKCk7aHllKCk7bXllKCk7Z3llKCk7eHllKCk7YnllKCk7dnllKCk7eXllKCk7d3llKCk7TXllKCk7enllKCk7a3llKCk7U3llKCk7Q3llKCk7THllKCk7VHllKCk7X3llKCk7QXllKCk7JHllKCk7RHllKCk7RXllKCk7TnllKCk7UHllKCk7SXllKCk7RnllKCk7T3llKCk7QnllKCk7UnllKCk7SHllKCk7cXllKCk7VnllKCk7VXllKCk7anllKCk7V3llKCk7R3llKCk7WXllKCk7WnllKCk7WHllKCk7UXllKCk7S3llKCk7SnllKCk7ZXdlKCk7dHdlKCk7YXdlKCk7cndlKCk7aXdlKCk7b3dlKCk7c3dlKCk7bndlKCk7bHdlKCk7Y3dlKCk7ZHdlKCk7ZndlKCk7dXdlKCk7cHdlKCk7aHdlKCk7bXdlKCk7Z3dlKCk7eHdlKCk7YndlKCk7dndlKCk7eXdlKCk7d3dlKCk7TXdlKCk7endlKCk7a3dlKCk7U3dlKCk7Q3dlKCk7THdlKCk7VHdlKCk7X3dlKCk7QXdlKCk7JHdlKCk7RHdlKCk7RXdlKCk7TndlKCk7UHdlKCk7SXdlKCk7RndlKCk7T3dlKCk7QndlKCk7UndlKCk7SHdlKCk7cXdlKCk7VndlKCk7VXdlKCk7andlKCk7V3dlKCk7R3dlKCk7WXdlKCk7WndlKCk7WHdlKCk7UXdlKCk7S3dlKCk7SndlKCk7ZU1lKCk7dE1lKCk7YU1lKCk7ck1lKCk7aU1lKCk7b01lKCk7c01lKCk7bk1lKCk7bE1lKCk7Y01lKCk7ZE1lKCk7Zk1lKCk7dU1lKCk7cE1lKCk7aE1lKCk7bU1lKCk7Z01lKCk7eE1lKCk7Yk1lKCk7dk1lKCk7eU1lKCk7d01lKCk7TU1lKCk7ek1lKCk7a01lKCk7U01lKCk7Q01lKCk7TE1lKCk7VE1lKCk7X01lKCk7QU1lKCk7JE1lKCk7RE1lKCk7RU1lKCk7Tk1lKCk7UE1lKCk7SU1lKCk7Rk1lKCk7T01lKCk7Qk1lKCk7Uk1lKCk7SE1lKCk7cU1lKCk7Vk1lKCk7VU1lKCk7ak1lKCk7V01lKCk7R01lKCk7WU1lKCk7Wk1lKCk7WE1lKCk7UU1lKCk7S01lKCk7Sk1lKCk7ZXplKCk7dHplKCk7YXplKCk7cnplKCk7aXplKCk7b3plKCk7c3plKCk7bnplKCk7bHplKCk7Y3plKCk7ZHplKCk7ZnplKCk7dXplKCk7cHplKCk7aHplKCk7bXplKCk7Z3plKCk7eHplKCk7YnplKCk7dnplKCk7eXplKCk7d3plKCk7TXplKCk7enplKCk7a3plKCk7U3plKCk7Q3plKCk7THplKCk7VHplKCk7X3plKCk7QXplKCk7JHplKCk7RHplKCk7RXplKCk7TnplKCk7UHplKCk7SXplKCk7RnplKCk7T3plKCk7QnplKCk7UnplKCk7SHplKCk7cXplKCk7VnplKCk7VXplKCk7anplKCk7V3plKCk7R3plKCk7WXplKCk7WnplKCk7WHplKCk7UXplKCk7S3plKCk7SnplKCk7ZWtlKCk7dGtlKCk7YWtlKCk7cmtlKCk7aWtlKCk7b2tlKCk7c2tlKCk7bmtlKCk7bGtlKCk7Y2tlKCk7ZGtlKCk7ZmtlKCk7dWtlKCk7cGtlKCk7aGtlKCk7bWtlKCk7Z2tlKCk7eGtlKCk7YmtlKCk7dmtlKCk7eWtlKCk7d2tlKCk7TWtlKCk7emtlKCk7a2tlKCk7U2tlKCk7Q2tlKCk7TGtlKCk7VGtlKCk7X2tlKCk7QWtlKCk7JGtlKCk7RGtlKCk7RWtlKCk7TmtlKCk7UGtlKCk7SWtlKCk7RmtlKCk7T2tlKCk7QmtlKCk7UmtlKCk7SGtlKCk7cWtlKCk7VmtlKCk7VWtlKCk7amtlKCk7V2tlKCk7R2tlKCk7WWtlKCk7WmtlKCk7WGtlKCk7UWtlKCk7S2tlKCk7SmtlKCk7ZVNlKCk7dFNlKCk7YVNlKCk7clNlKCk7aVNlKCk7b1NlKCk7c1NlKCk7blNlKCk7bFNlKCk7Y1NlKCk7ZFNlKCk7ZlNlKCk7dVNlKCk7cFNlKCk7aFNlKCk7bVNlKCk7Z1NlKCk7eFNlKCk7YlNlKCk7dlNlKCk7eVNlKCk7d1NlKCk7TVNlKCk7elNlKCk7a1NlKCk7U1NlKCk7Q1NlKCk7TFNlKCk7VFNlKCk7X1NlKCk7QVNlKCk7JFNlKCk7RFNlKCk7RVNlKCk7TlNlKCk7UFNlKCk7SVNlKCk7RlNlKCk7T1NlKCk7QlNlKCk7UlNlKCk7SFNlKCk7cVNlKCk7VlNlKCk7VVNlKCk7alNlKCk7V1NlKCk7R1NlKCk7WVNlKCk7WlNlKCk7WFNlKCk7UVNlKCk7S1NlKCk7SlNlKCk7ZUNlKCk7dENlKCk7YUNlKCk7ckNlKCk7aUNlKCk7b0NlKCk7c0NlKCk7bkNlKCk7bENlKCk7Y0NlKCk7ZENlKCk7ZkNlKCk7dUNlKCk7cENlKCk7aENlKCk7bUNlKCk7Z0NlKCk7eENlKCk7YkNlKCk7dkNlKCk7eUNlKCk7d0NlKCk7TUNlKCk7ekNlKCk7a0NlKCk7U0NlKCk7Q0NlKCk7TENlKCk7VENlKCk7X0NlKCk7QUNlKCk7JENlKCk7RENlKCk7RUNlKCk7TkNlKCk7UENlKCk7SUNlKCk7RkNlKCk7T0NlKCk7QkNlKCk7UkNlKCk7SENlKCk7cUNlKCk7VkNlKCk7VUNlKCk7akNlKCk7V0NlKCk7R0NlKCk7WUNlKCk7WkNlKCk7WENlKCk7UUNlKCk7S0NlKCk7SkNlKCk7ZUxlKCk7dExlKCk7YUxlKCk7ckxlKCk7aUxlKCk7b0xlKCk7c0xlKCk7bkxlKCk7bExlKCk7Y0xlKCk7ZExlKCk7ZkxlKCk7dUxlKCk7cExlKCk7aExlKCk7bUxlKCk7Z0xlKCk7eExlKCk7YkxlKCk7dkxlKCk7eUxlKCk7d0xlKCk7TUxlKCk7ekxlKCk7a0xlKCk7U0xlKCk7Q0xlKCk7TExlKCk7VExlKCk7X0xlKCk7QUxlKCk7JExlKCk7RExlKCk7RUxlKCk7TkxlKCk7UExlKCk7SUxlKCk7RkxlKCk7T0xlKCk7QkxlKCk7UkxlKCk7SExlKCk7cUxlKCk7VkxlKCk7VUxlKCk7akxlKCk7V0xlKCk7R0xlKCk7WUxlKCk7WkxlKCk7WExlKCk7UUxlKCk7S0xlKCk7SkxlKCk7ZVRlKCk7dFRlKCk7YVRlKCk7clRlKCk7aVRlKCk7b1RlKCk7c1RlKCk7blRlKCk7bFRlKCk7Y1RlKCk7ZFRlKCk7ZlRlKCk7dVRlKCk7cFRlKCk7aFRlKCk7bVRlKCk7Z1RlKCk7eFRlKCk7YlRlKCk7dlRlKCk7eVRlKCk7d1RlKCk7TVRlKCk7elRlKCk7a1RlKCk7U1RlKCk7Q1RlKCk7TFRlKCk7VFRlKCk7X1RlKCk7QVRlKCk7JFRlKCk7RFRlKCk7RVRlKCk7TlRlKCk7UFRlKCk7SVRlKCk7RlRlKCk7T1RlKCk7QlRlKCk7UlRlKCk7SFRlKCk7cVRlKCk7VlRlKCk7VVRlKCk7alRlKCk7V1RlKCk7R1RlKCk7WVRlKCk7WlRlKCk7WFRlKCk7UVRlKCk7S1RlKCk7SlRlKCk7ZV9lKCk7dF9lKCk7YV9lKCk7cl9lKCk7aV9lKCk7b19lKCk7c19lKCk7bl9lKCk7bF9lKCk7Y19lKCk7ZF9lKCk7Zl9lKCk7dV9lKCk7cF9lKCk7aF9lKCk7bV9lKCk7Z19lKCk7eF9lKCk7Yl9lKCk7dl9lKCk7eV9lKCk7d19lKCk7TV9lKCk7el9lKCk7a19lKCk7U19lKCk7Q19lKCk7TF9lKCk7VF9lKCk7X19lKCk7QV9lKCk7JF9lKCk7RF9lKCk7RV9lKCk7Tl9lKCk7UF9lKCk7SV9lKCk7Rl9lKCk7T19lKCk7Ql9lKCk7Ul9lKCk7SF9lKCk7cV9lKCk7Vl9lKCk7VV9lKCk7al9lKCk7V19lKCk7R19lKCk7WV9lKCk7Wl9lKCk7WF9lKCk7UV9lKCk7S19lKCk7Sl9lKCk7ZUFlKCk7dEFlKCk7YUFlKCk7ckFlKCk7aUFlKCk7b0FlKCk7c0FlKCk7bkFlKCk7bEFlKCk7Y0FlKCk7ZEFlKCk7ZkFlKCk7dUFlKCk7cEFlKCk7aEFlKCk7bUFlKCk7Z0FlKCk7eEFlKCk7YkFlKCk7dkFlKCk7eUFlKCk7d0FlKCk7TUFlKCk7ekFlKCk7a0FlKCk7U0FlKCk7Q0FlKCk7TEFlKCk7VEFlKCk7X0FlKCk7QUFlKCk7JEFlKCk7REFlKCk7RUFlKCk7TkFlKCk7UEFlKCk7SUFlKCk7RkFlKCk7T0FlKCk7QkFlKCk7UkFlKCk7SEFlKCk7cUFlKCk7VkFlKCk7VUFlKCk7akFlKCk7V0FlKCk7R0FlKCk7WUFlKCk7WkFlKCk7WEFlKCk7UUFlKCk7S0FlKCk7SkFlKCk7ZSRlKCk7dCRlKCk7YSRlKCk7ciRlKCk7aSRlKCk7byRlKCk7cyRlKCk7biRlKCk7bCRlKCk7YyRlKCk7ZCRlKCk7ZiRlKCk7dSRlKCk7cCRlKCk7aCRlKCk7bSRlKCk7ZyRlKCk7eCRlKCk7YiRlKCk7diRlKCk7eSRlKCk7dyRlKCk7TSRlKCk7eiRlKCk7ayRlKCk7UyRlKCk7QyRlKCk7TCRlKCk7VCRlKCk7XyRlKCk7QSRlKCk7JCRlKCk7RCRlKCk7RSRlKCk7TiRlKCk7UCRlKCk7SSRlKCk7RiRlKCk7TyRlKCk7QiRlKCk7UiRlKCk7SCRlKCk7cSRlKCk7ViRlKCk7VSRlKCk7aiRlKCk7VyRlKCk7RyRlKCk7WSRlKCk7WiRlKCk7WCRlKCk7USRlKCk7SyRlKCk7SiRlKCk7ZURlKCk7dERlKCk7YURlKCk7ckRlKCk7aURlKCk7b0RlKCk7c0RlKCk7bkRlKCk7bERlKCk7Y0RlKCk7ZERlKCk7ZkRlKCk7dURlKCk7cERlKCk7aERlKCk7bURlKCk7Z0RlKCk7eERlKCk7YkRlKCk7dkRlKCk7eURlKCk7d0RlKCk7TURlKCk7ekRlKCk7a0RlKCk7U0RlKCk7Q0RlKCk7TERlKCk7VERlKCk7X0RlKCk7QURlKCk7JERlKCk7RERlKCk7RURlKCk7TkRlKCk7UERlKCk7SURlKCk7RkRlKCk7T0RlKCk7QkRlPSh7aWNvbnM6dD17fSxuYW1lQXR0cjplPSJkYXRhLWx1Y2lkZSIsYXR0cnM6YT17fSxyb290OnI9ZG9jdW1lbnQsaW5UZW1wbGF0ZXM6aX09e30pPT57aWYoIU9iamVjdC52YWx1ZXModCkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgUGxlYXNlIHByb3ZpZGUgYW4gaWNvbnMgb2JqZWN0LgpJZiB5b3Ugd2FudCB0byB1c2UgYWxsIHRoZSBpY29ucyB5b3UgY2FuIGltcG9ydCBpdCBsaWtlOgogXGBpbXBvcnQgeyBjcmVhdGVJY29ucywgaWNvbnMgfSBmcm9tICdsdWNpZGUnOwpsdWNpZGUuY3JlYXRlSWNvbnMoe2ljb25zfSk7XGBgKTtpZih0eXBlb2Ygcj4idSIpdGhyb3cgbmV3IEVycm9yKCJgY3JlYXRlSWNvbnMoKWAgb25seSB3b3JrcyBpbiBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIik7aWYoQXJyYXkuZnJvbShyLnF1ZXJ5U2VsZWN0b3JBbGwoYFske2V9XWApKS5mb3JFYWNoKHM9PmpVKHMse25hbWVBdHRyOmUsaWNvbnM6dCxhdHRyczphfSkpLGkmJkFycmF5LmZyb20oci5xdWVyeVNlbGVjdG9yQWxsKCJ0ZW1wbGF0ZSIpKS5mb3JFYWNoKGw9PkJEZSh7aWNvbnM6dCxuYW1lQXR0cjplLGF0dHJzOmEscm9vdDpsLmNvbnRlbnQsaW5UZW1wbGF0ZXM6aX0pKSxlPT09ImRhdGEtbHVjaWRlIil7bGV0IHM9ci5xdWVyeVNlbGVjdG9yQWxsKCJbaWNvbi1uYW1lXSIpO3MubGVuZ3RoPjAmJihjb25zb2xlLndhcm4oIltMdWNpZGVdIFNvbWUgaWNvbnMgd2VyZSBmb3VuZCB3aXRoIHRoZSBub3cgZGVwcmVjYXRlZCBpY29uLW5hbWUgYXR0cmlidXRlLiBUaGVzZSB3aWxsIHN0aWxsIGJlIHJlcGxhY2VkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYnV0IHdpbGwgbm8gbG9uZ2VyIGJlIHN1cHBvcnRlZCBpbiB2MS4wIGFuZCB5b3Ugc2hvdWxkIHN3aXRjaCB0byBkYXRhLWx1Y2lkZSIpLEFycmF5LmZyb20ocykuZm9yRWFjaChsPT5qVShsLHtuYW1lQXR0cjoiaWNvbi1uYW1lIixpY29uczp0LGF0dHJzOmF9KSkpfX19KTt2YXIgTUl0LHpJdD1uKCgpPT57ZmUoKTtGdCgpO1dVKCk7TUl0PSgpPT57bGV0IHQ9T2JqZWN0LmtleXMoUkRlLmZhKTtjb25zb2xlLmxvZygiRmlyc3QgZmV3IEx1Y2lkZSBrZXlzOiIsT2JqZWN0LmtleXMoV3IpLnNsaWNlKDAsNSkpO2xldCBlPU9iamVjdC5rZXlzKFdyKS5maWx0ZXIobz0+e2xldCBzPW9bMF09PT1vWzBdLnRvVXBwZXJDYXNlKCkmJm9bMF0hPT1vWzBdLnRvTG93ZXJDYXNlKCksbD10eXBlb2YgV3Jbb109PSJmdW5jdGlvbiIsZj0hWyJjcmVhdGVFbGVtZW50IiwiY3JlYXRlSWNvbnMiLCJkZWZhdWx0Il0uaW5jbHVkZXMobyk7cmV0dXJuIGwmJnMmJmZ9KS5tYXAobz0+by5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKStvLnNsaWNlKDEpKTtpZihjb25zb2xlLmxvZyhgRm91bmQgJHtlLmxlbmd0aH0gTHVjaWRlIGljb25zYCksZS5sZW5ndGg9PT0wJiYoY29uc29sZS5sb2coIlRyeWluZyBhbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBmaW5kIEx1Y2lkZSBpY29ucyIpLEhsKSl7bGV0IG89SGx8fHt9O2UucHVzaCguLi5PYmplY3Qua2V5cyhvKSksY29uc29sZS5sb2coYEZvdW5kICR7ZS5sZW5ndGh9IGljb25zIHZpYSBhbHRlcm5hdGl2ZSBtZXRob2RgKX1sZXQgYT0oKT0+e2xldCBvPXQubWFwKGM9PmBmYToke2N9YCkscz1lLm1hcChjPT5gbHVjaWRlOiR7Y31gKSxsPVsuLi5vLC4uLnNdLGY9bC5qb2luKGAKYCk7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZikudGhlbigoKT0+e2xldCB1PXdpbmRvdy5ldmVudC5jdXJyZW50VGFyZ2V0LGQ9dS50ZXh0Q29udGVudDt1LnRleHRDb250ZW50PWBcdTI3MTMgQ29waWVkICR7bC5sZW5ndGh9IGljb24gbmFtZXMhYCxzZXRUaW1lb3V0KCgpPT57dS50ZXh0Q29udGVudD1kfSwyZTMpfSl9LHI9bz0+e2xldCBzPW8udGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCkudHJpbSgpLGw9by50YXJnZXQuY2xvc2VzdCgiLmRlbW9Db250YWluZXIiKTtsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5pY29uQ29udGFpbmVyIikuZm9yRWFjaChjPT57bGV0IHU9Yy5nZXRBdHRyaWJ1dGUoImRhdGEtbmFtZSIpO3M9PT0iInx8dSYmdS5pbmNsdWRlcyhzKT9jLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOmMuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9KSxsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZWN0aW9uLWNvbnRhaW5lciIpLmZvckVhY2goYz0+e2xldCB1PWMucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXI6bm90KC5oaWRkZW4pIikubGVuZ3RoLGQ9Yy5xdWVyeVNlbGVjdG9yKCIuaWNvbi1jb3VudCIpO2lmKGQpe2xldCBoPWMuY2xhc3NMaXN0LmNvbnRhaW5zKCJmYS1zZWN0aW9uIik/dC5sZW5ndGg6ZS5sZW5ndGg7ZC50ZXh0Q29udGVudD11PT09aD9gJHtofSBpY29uc2A6YCR7dX0gb2YgJHtofSBpY29uc2B9fSl9LGk9KG8scyk9PntsZXQgbD1gJHtzfToke299YDtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChsKS50aGVuKCgpPT57bGV0IHU9d2luZG93LmV2ZW50LmN1cnJlbnRUYXJnZXQucXVlcnlTZWxlY3RvcigiLmNvcHktdG9vbHRpcCIpO3UmJih1LnRleHRDb250ZW50PSJDb3BpZWQhIixzZXRUaW1lb3V0KCgpPT57dS50ZXh0Q29udGVudD0iQ2xpY2sgdG8gY29weSJ9LDJlMykpfSl9O3JldHVybiBNYAogIDxzdHlsZT4KICAgIC5kZW1vQ29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYmFja2dyb3VuZDogIzExMTExMTsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgZm9udC1zaXplOiAzMHB4OwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjsKICAgIH0KICAgIAogICAgLnNlYXJjaC1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxMHB4OwogICAgfQogICAgCiAgICAjaWNvblNlYXJjaCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYmFja2dyb3VuZDogIzIyMjsKICAgICAgY29sb3I6ICNmZmY7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoOmZvY3VzIHsKICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgYm9yZGVyLWNvbG9yOiAjZTQwMDJiOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uIHsKICAgICAgcGFkZGluZzogMTJweCAyMHB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZTQwMDJiOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIH0KICAgIAogICAgLmNvcHktYWxsLWJ1dHRvbjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICNjNDAwMWI7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICAgIH0KICAgIAogICAgLmNvcHktYWxsLWJ1dHRvbjphY3RpdmUgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICB9CiAgICAKICAgIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMjBweCAxNnB4IDBweCAxNnB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzOwogICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KICAgIAogICAgLmljb25Db250YWluZXI6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOwogICAgfQoKICAgIC5pY29uTmFtZSB7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBjb2xvcjogI2NjYzsKICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweDsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweDsKICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIG1heC13aWR0aDogMTIwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4OwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIG1hcmdpbjogMjBweCAwOwogICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KICAgIAogICAgLmFwaS1ub3RlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogI2U0MDAyYjsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgcGFkZGluZzogMTBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0MDAyYjsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyOCwgMCwgNDMsIDAuMSk7CiAgICB9CiAgICAKICAgIC5pY29uLWNvdW50IHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogIzg4ODsKICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgYmFja2dyb3VuZDogIzIyMjsKICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICB9CiAgICAKICAgIC5pY29ucy1ncmlkIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICB9CiAgICAKICAgIC5jb3B5LXRvb2x0aXAgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0b3A6IC0zMHB4OwogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciAuY29weS10b29sdGlwIHsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciBkZWVzLWljb24gewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7CiAgICB9CiAgICAKICAgIC5oaWRkZW4gewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vQ29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlYXJjaC1jb250YWluZXIiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imljb25TZWFyY2giIHBsYWNlaG9sZGVyPSJTZWFyY2ggaWNvbnMuLi4iIEBpbnB1dD0ke3J9PgogICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWFsbC1idXR0b24iIEBjbGljaz0ke2F9PvCfk4sgQ29weSBBbGwgSWNvbiBOYW1lczwvYnV0dG9uPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImFwaS1ub3RlIj4KICAgICAgTmV3IEFQSTogVXNlIDxjb2RlPmljb249ImZhOmljb25OYW1lIjwvY29kZT4gb3IgPGNvZGU+aWNvbj0ibHVjaWRlOmljb25OYW1lIjwvY29kZT4gaW5zdGVhZCBvZiA8Y29kZT5pY29uRkE8L2NvZGU+LiAKICAgICAgQ2xpY2sgYW55IGljb24gdG8gY29weSBpdHMgbmV3IGZvcm1hdCB0byBjbGlwYm9hcmQuCiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250YWluZXIgZmEtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgIEZvbnRBd2Vzb21lIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7dC5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHt0Lm1hcChvPT57bGV0IHM9YGZhOiR7b31gO3JldHVybiBNYAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25Db250YWluZXIgZmEtaWNvbiIgZGF0YS1uYW1lPSR7by50b0xvd2VyQ2FzZSgpfSBAY2xpY2s9JHsoKT0+aShvLCJmYSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtzfSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmZhOiR7b308L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3B5LXRvb2x0aXAiPkNsaWNrIHRvIGNvcHk8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBsdWNpZGUtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgIEx1Y2lkZSBJY29ucwogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWNvdW50Ij4ke2UubGVuZ3RofSBpY29uczwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Imljb25zLWdyaWQiPgogICAgICAgICR7ZS5tYXAobz0+e2xldCBzPWBsdWNpZGU6JHtvfWA7cmV0dXJuIE1gCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBsdWNpZGUtaWNvbiIgZGF0YS1uYW1lPSR7by50b0xvd2VyQ2FzZSgpfSBAY2xpY2s9JHsoKT0+aShvLCJsdWNpZGUiKX0+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7c30gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25OYW1lIj5sdWNpZGU6JHtvfTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgogIGB9fSk7ZnVuY3Rpb24gdm8xKCl7bzUuc2l6ZT5rSXQmJkFycmF5LmZyb20obzUua2V5cygpKS5zbGljZSgwLGtJdC81KS5mb3JFYWNoKGU9Pm81LmRlbGV0ZShlKSl9dmFyIGk1LHJyLGJvMSxSRGUsbzUsa0l0LHlvMSxGdD1uKCgpPT57ZmUoKTtTdCgpO0JlKCk7SnJ0KCk7dzZ0KCk7UmR0KCk7bUl0KCk7ekl0KCk7V1UoKTtXVSgpO2k1PWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0scnI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LGJvMT17YXJyb3dSaWdodDpPVSxhcnJvd1VwUmlnaHRGcm9tU3F1YXJlOl83LGJlbGw6Q1UsYnVnOkhVLGJ1aWxkaW5nOlBVLGNhcmV0TGVmdDpfVSxjYXJldFJpZ2h0OlNVLGNoZWNrOkZVLGNpcmNsZUluZm86JDcsY2lyY2xlQ2hlY2s6SmQsY2lyY2xlQ2hlY2tTb2xpZDpTNyxjaXJjbGVYbWFyazpRNixjaXJjbGVYbWFya1NvbGlkOmE1LGNsb2NrUm90YXRlTGVmdDpDNyxjb3B5OkxWLGNvcHlTb2xpZDpxVSxkZXNrdG9wOkE3LGV5ZTpUVSxleWVTbGFzaDpWVSxmaWxlSW52b2ljZTpCVSxmaWxlSW52b2ljZURvbGxlcjpSVSxnZWFyOno3LGdyaXA6cjUsbWFnbmlmeWluZ0dsYXNzOnk3LG1lc3NhZ2U6UWQsbWVzc2FnZVNvbGlkOmI3LG1vbmV5Q2hlY2tEb2xsYXI6VDcsbXVnSG90OlVVLG1pbnVzOng3LG5ldHdvcmtXaXJlZDpFVSxwYXBlcmNsaXA6SVUscGFzdGU6WGQscGFzdGVTb2xpZDpnNyxwZW5Ub1NxdWFyZTp3NyxwbHVzOkw3LHJlY2VpcHQ6QVUscnNzOnY3LHNoYXJlOk03LHN1bjpDVixzdW5Tb2xpZDpEVSx0ZXJtaW5hbDpOVSx0cmFzaDpENyx0cmFzaFNvbGlkOkQ3LHRyYXNoQ2FuOktkLHRyYXNoQ2FuU29saWQ6azcsdXNlcnM6JFUsd2FsbGV0OkxVLHhtYXJrOmlzLGZhY2Vib29rOnBWLGdvb2dsZTpmVixpbnN0YWdyYW06Z1YsbGlua2VkaW46dVYsbWVkaXVtOkdkLHNsYWNrOmhWLHRpa3RvazptVix0d2l0dGVyOnhWfSxSRGU9e2ZhOmJvMX0sbzU9bmV3IE1hcCxrSXQ9NTAwO3lvMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtaWNvbiIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdO3ZhciBFPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOlN0cmluZyxjb252ZXJ0ZXI6e2Zyb21BdHRyaWJ1dGU6ej0+eix0b0F0dHJpYnV0ZTp6PT56fX0pXSxmPVtEKHt0eXBlOlN0cmluZyxjb252ZXJ0ZXI6e2Zyb21BdHRyaWJ1dGU6ej0+eix0b0F0dHJpYnV0ZTp6PT56fX0pXSxkPVtEKHt0eXBlOk51bWJlcn0pXSxiPVtEKHt0eXBlOlN0cmluZ30pXSx2PVtEKHt0eXBlOk51bWJlcn0pXSxpNSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25GQSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+Imljb25GQSJpbiB6LGdldDp6PT56Lmljb25GQSxzZXQ6KHosUCk9Pnt6Lmljb25GQT1QfX0sbWV0YWRhdGE6Q30scyxsKSxpNSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJpY29uImluIHosZ2V0Ono9PnouaWNvbixzZXQ6KHosUCk9Pnt6Lmljb249UH19LG1ldGFkYXRhOkN9LGMsdSksaTUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+Imljb25TaXplImluIHosZ2V0Ono9PnouaWNvblNpemUsc2V0Oih6LFApPT57ei5pY29uU2l6ZT1QfX0sbWV0YWRhdGE6Q30saCxnKSxpNSh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iY29sb3IiaW4geixnZXQ6ej0+ei5jb2xvcixzZXQ6KHosUCk9Pnt6LmNvbG9yPVB9fSxtZXRhZGF0YTpDfSx4LG0pLGk1KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3Ryb2tlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJzdHJva2VXaWR0aCJpbiB6LGdldDp6PT56LnN0cm9rZVdpZHRoLHNldDooeixQKT0+e3ouc3Ryb2tlV2lkdGg9UH19LG1ldGFkYXRhOkN9LHksdyksaTUobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxhKSxFPXI9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1NSXQ7I2U9cnIodGhpcyxzLHZvaWQgMCk7Z2V0IGljb25GQSgpe3JldHVybiB0aGlzLiNlfXNldCBpY29uRkEoQyl7dGhpcy4jZT1DfSN0PShycih0aGlzLGwpLHJyKHRoaXMsYyx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiN0fXNldCBpY29uKEMpe3RoaXMuI3Q9Q30jYT0ocnIodGhpcyx1KSxycih0aGlzLGgsdm9pZCAwKSk7Z2V0IGljb25TaXplKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGljb25TaXplKEMpe3RoaXMuI2E9Q30jcj0ocnIodGhpcyxnKSxycih0aGlzLHgsImN1cnJlbnRDb2xvciIpKTtnZXQgY29sb3IoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY29sb3IoQyl7dGhpcy4jcj1DfSNpPShycih0aGlzLG0pLHJyKHRoaXMseSwyKSk7Z2V0IHN0cm9rZVdpZHRoKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHN0cm9rZVdpZHRoKEMpe3RoaXMuI2k9Q31sYXN0SWNvbj0ocnIodGhpcyx3KSxudWxsKTtsYXN0SWNvblNpemU9bnVsbDtsYXN0Q29sb3I9bnVsbDtsYXN0U3Ryb2tlV2lkdGg9bnVsbDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksYzEuc2V0dXAoKX1nZXRFZmZlY3RpdmVJY29uKCl7cmV0dXJuIHRoaXMuaWNvbj90aGlzLmljb246dGhpcy5pY29uRkE/dGhpcy5pY29uRkEuc3RhcnRzV2l0aCgibHVjaWRlOiIpP3RoaXMuaWNvbkZBOmBmYToke3RoaXMuaWNvbkZBfWA6bnVsbH1wYXJzZUljb25TdHJpbmcoQyl7bGV0IHo9Qy50b0xvd2VyQ2FzZSgpO3JldHVybiB6LnN0YXJ0c1dpdGgoImZhOiIpP3t0eXBlOiJmYSIsbmFtZTpDLnN1YnN0cmluZygzKX06ei5zdGFydHNXaXRoKCJsdWNpZGU6Iik/e3R5cGU6Imx1Y2lkZSIsbmFtZTpDLnN1YnN0cmluZyg3KX06e3R5cGU6Imx1Y2lkZSIsbmFtZTpDfX1yZW5kZXJMdWNpZGVJY29uKEMpe2xldCB6PWBsdWNpZGU6JHtDfToke3RoaXMuaWNvblNpemV9OiR7dGhpcy5jb2xvcn06JHt0aGlzLnN0cm9rZVdpZHRofWA7aWYobzUuaGFzKHopKXJldHVybiBvNS5nZXQoeil8fCIiO3RyeXtsZXQgUD1DLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK0Muc2xpY2UoMSk7aWYoIVdyW1BdKXJldHVybiBjb25zb2xlLndhcm4oYEx1Y2lkZSBpY29uICcke1B9JyBub3QgZm91bmQgaW4gbHVjaWRlSWNvbnMgb2JqZWN0YCksIiI7bGV0IF89b3MoV3JbUF0se2NvbG9yOnRoaXMuY29sb3Isc2l6ZTp0aGlzLmljb25TaXplLHN0cm9rZVdpZHRoOnRoaXMuc3Ryb2tlV2lkdGh9KTtpZighXylyZXR1cm4gY29uc29sZS53YXJuKGBjcmVhdGVFbGVtZW50IHJldHVybmVkIGVtcHR5IHJlc3VsdCBmb3IgJHtQfWApLCIiO2xldCAkPV8ub3V0ZXJIVE1MO3JldHVybiBvNS5zZXQoeiwkKSx2bzEoKSwkfWNhdGNoKFApe3JldHVybiBjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgTHVjaWRlIGljb24gJHtDfTpgLFApLGA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IiR7dGhpcy5pY29uU2l6ZX0iIGhlaWdodD0iJHt0aGlzLmljb25TaXplfSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiR7dGhpcy5jb2xvcn0iIHN0cm9rZS13aWR0aD0iJHt0aGlzLnN0cm9rZVdpZHRofSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICA8dGV4dCB4PSI1MCUiIHk9IjUwJSIgZm9udC1zaXplPSI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiBmaWxsPSIke3RoaXMuY29sb3J9Ij4ke0N9PC90ZXh0PgogICAgICA8L3N2Zz5gfX1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC8qIEltcHJvdmUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlICovCiAgICAgICNpY29uQ29udGFpbmVyIHN2ZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIEhlbHBzIHdpdGggYW5pbWF0aW9ucyAqLwogICAgICAgIGNvbnRhaW46IHN0cmljdDsgLyogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovCiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICAke2MxLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgICNpY29uQ29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuaWNvblNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5pY29uU2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgaWQ9Imljb25Db250YWluZXIiPjwvZGl2PgogICAgYH11cGRhdGVkKCl7dGhpcy5pY29uU2l6ZXx8KHRoaXMuaWNvblNpemU9cGFyc2VJbnQoZ2xvYmFsVGhpcy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmZvbnRTaXplLnJlcGxhY2UoL1xEL2csIiIpKSk7bGV0IEM9dGhpcy5nZXRFZmZlY3RpdmVJY29uKCk7aWYodGhpcy5sYXN0SWNvbj09PUMmJnRoaXMubGFzdEljb25TaXplPT09dGhpcy5pY29uU2l6ZSYmdGhpcy5sYXN0Q29sb3I9PT10aGlzLmNvbG9yJiZ0aGlzLmxhc3RTdHJva2VXaWR0aD09PXRoaXMuc3Ryb2tlV2lkdGgpcmV0dXJuO3RoaXMubGFzdEljb249Qyx0aGlzLmxhc3RJY29uU2l6ZT10aGlzLmljb25TaXplLHRoaXMubGFzdENvbG9yPXRoaXMuY29sb3IsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9dGhpcy5zdHJva2VXaWR0aDtsZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIiNpY29uQ29udGFpbmVyIik7aWYoISghenx8IUMpKXRyeXtsZXR7dHlwZTpQLG5hbWU6X309dGhpcy5wYXJzZUljb25TdHJpbmcoQyk7aWYoUD09PSJsdWNpZGUiKXt6LmlubmVySFRNTD0iIjt0cnl7bGV0ICQ9Xy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStfLnNsaWNlKDEpO2lmKFdyWyRdKXtsZXQgSD1vcyhXclskXSx7Y29sb3I6dGhpcy5jb2xvcixzaXplOnRoaXMuaWNvblNpemUsc3Ryb2tlV2lkdGg6dGhpcy5zdHJva2VXaWR0aH0pO2lmKEgpe3ouYXBwZW5kQ2hpbGQoSCk7cmV0dXJufX10aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBjcmVhdGUgZWxlbWVudCBmb3IgJHskfWApfWNhdGNoKCQpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHJlbmRlcmluZyBMdWNpZGUgaWNvbjoiLCQpO2xldCBIPXRoaXMucmVuZGVyTHVjaWRlSWNvbihfKTtIJiYoei5pbm5lckhUTUw9SCl9fWVsc2V7bGV0ICQ9UkRlLmZhW19dO2lmKCQpe2xldCBIPU4xZSgkKS5odG1sWzBdO3ouaW5uZXJIVE1MPUh9ZWxzZSBjb25zb2xlLndhcm4oYEZvbnRBd2Vzb21lIGljb24gbm90IGZvdW5kOiAke199YCl9fWNhdGNoKFApe2NvbnNvbGUuZXJyb3IoYEVycm9yIHVwZGF0aW5nIGljb24gJHtDfTpgLFApfX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5sYXN0SWNvbj1udWxsLHRoaXMubGFzdEljb25TaXplPW51bGwsdGhpcy5sYXN0Q29sb3I9bnVsbCx0aGlzLmxhc3RTdHJva2VXaWR0aD1udWxsfXN0YXRpY3tycihyLGEpfX07cmV0dXJuIEU9cn0pKCl9KTt2YXIgbHMsaGEseEVlPW4oKCk9Pntscz17eHRlcm06IjUuMy4wIix4dGVybUFkZG9uRml0OiIwLjguMCIsaGlnaGxpZ2h0SnM6IjExLjExLjEiLGFwZXhjaGFydHM6IjUuMy42Iix0aXB0YXA6IjIuMjMuMCIsZm9udGF3ZXNvbWU6IjcuMS4wIn0saGE9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0ifSk7dmFyIEgyLGtGdD1uKCgpPT57eEVlKCk7SDI9Y2xhc3MgdHtzdGF0aWMgaW5zdGFuY2U7eHRlcm1MaWI9bnVsbDt4dGVybUZpdEFkZG9uTGliPW51bGw7aGlnaGxpZ2h0SnNMaWI9bnVsbDthcGV4Q2hhcnRzTGliPW51bGw7dGlwdGFwTGliPW51bGw7eHRlcm1Mb2FkaW5nUHJvbWlzZT1udWxsO3h0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT1udWxsO2hpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U9bnVsbDthcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2U9bnVsbDt0aXB0YXBMb2FkaW5nUHJvbWlzZT1udWxsO2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB0Lmluc3RhbmNlfHwodC5pbnN0YW5jZT1uZXcgdCksdC5pbnN0YW5jZX1hc3luYyBsb2FkWHRlcm0oKXtyZXR1cm4gdGhpcy54dGVybUxpYj90aGlzLnh0ZXJtTGliOnRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U6KHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCBhPWF3YWl0IGltcG9ydChgJHtoYX0veHRlcm1AJHtscy54dGVybX0vK2VzbWApO3JldHVybiBhd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzKCksdGhpcy54dGVybUxpYj17VGVybWluYWw6YS5UZXJtaW5hbH0sdGhpcy54dGVybUxpYn0pKCksdGhpcy54dGVybUxvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkWHRlcm1GaXRBZGRvbigpe3JldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWI/dGhpcy54dGVybUZpdEFkZG9uTGliOnRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCBhPWF3YWl0IGltcG9ydChgJHtoYX0veHRlcm0tYWRkb24tZml0QCR7bHMueHRlcm1BZGRvbkZpdH0vK2VzbWApO3JldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWI9e0ZpdEFkZG9uOmEuRml0QWRkb259LHRoaXMueHRlcm1GaXRBZGRvbkxpYn0pKCksdGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2UpfWFzeW5jIGluamVjdFh0ZXJtU3R5bGVzKCl7bGV0IGU9Inh0ZXJtLWNkbi1zdHlsZXMiO2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpKXJldHVybjtsZXQgYT1gJHtoYX0veHRlcm1AJHtscy54dGVybX0vY3NzL3h0ZXJtLmNzc2AsaT1hd2FpdChhd2FpdCBmZXRjaChhKSkudGV4dCgpLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtvLmlkPWUsby50ZXh0Q29udGVudD1pLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobyl9YXN5bmMgbG9hZEhpZ2hsaWdodEpzKCl7cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWI/dGhpcy5oaWdobGlnaHRKc0xpYjp0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U/dGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlOih0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgYT1hd2FpdCBpbXBvcnQoYCR7aGF9L2hpZ2hsaWdodC5qc0Ake2xzLmhpZ2hsaWdodEpzfS8rZXNtYCk7cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWI9YS5kZWZhdWx0LHRoaXMuaGlnaGxpZ2h0SnNMaWJ9KSgpLHRoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZEFwZXhDaGFydHMoKXtyZXR1cm4gdGhpcy5hcGV4Q2hhcnRzTGliP3RoaXMuYXBleENoYXJ0c0xpYjp0aGlzLmFwZXhDaGFydHNMb2FkaW5nUHJvbWlzZT90aGlzLmFwZXhDaGFydHNMb2FkaW5nUHJvbWlzZToodGhpcy5hcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgYT1hd2FpdCBpbXBvcnQoYCR7aGF9L2FwZXhjaGFydHNAJHtscy5hcGV4Y2hhcnRzfS8rZXNtYCk7cmV0dXJuIHRoaXMuYXBleENoYXJ0c0xpYj1hLmRlZmF1bHQsdGhpcy5hcGV4Q2hhcnRzTGlifSkoKSx0aGlzLmFwZXhDaGFydHNMb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFRpcHRhcCgpe3JldHVybiB0aGlzLnRpcHRhcExpYj90aGlzLnRpcHRhcExpYjp0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlP3RoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U6KHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgZT1scy50aXB0YXAsW2EscixpLG8scyxsXT1hd2FpdCBQcm9taXNlLmFsbChbaW1wb3J0KGAke2hhfS9AdGlwdGFwL2NvcmVAJHtlfS8rZXNtYCksaW1wb3J0KGAke2hhfS9AdGlwdGFwL3N0YXJ0ZXIta2l0QCR7ZX0vK2VzbWApLGltcG9ydChgJHtoYX0vQHRpcHRhcC9leHRlbnNpb24tdW5kZXJsaW5lQCR7ZX0vK2VzbWApLGltcG9ydChgJHtoYX0vQHRpcHRhcC9leHRlbnNpb24tdGV4dC1hbGlnbkAke2V9Lytlc21gKSxpbXBvcnQoYCR7aGF9L0B0aXB0YXAvZXh0ZW5zaW9uLWxpbmtAJHtlfS8rZXNtYCksaW1wb3J0KGAke2hhfS9AdGlwdGFwL2V4dGVuc2lvbi10eXBvZ3JhcGh5QCR7ZX0vK2VzbWApXSk7cmV0dXJuIHRoaXMudGlwdGFwTGliPXtFZGl0b3I6YS5FZGl0b3IsU3RhcnRlcktpdDpyLmRlZmF1bHR8fHIuU3RhcnRlcktpdCxVbmRlcmxpbmU6aS5kZWZhdWx0fHxpLlVuZGVybGluZSxUZXh0QWxpZ246by5kZWZhdWx0fHxvLlRleHRBbGlnbixMaW5rOnMuZGVmYXVsdHx8cy5MaW5rLFR5cG9ncmFwaHk6bC5kZWZhdWx0fHxsLlR5cG9ncmFwaHl9LHRoaXMudGlwdGFwTGlifSkoKSx0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlKX1hc3luYyBwcmVsb2FkQWxsKCl7YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMubG9hZFh0ZXJtKCksdGhpcy5sb2FkWHRlcm1GaXRBZGRvbigpLHRoaXMubG9hZEhpZ2hsaWdodEpzKCksdGhpcy5sb2FkQXBleENoYXJ0cygpLHRoaXMubG9hZFRpcHRhcCgpXSl9aXNMb2FkZWQoZSl7c3dpdGNoKGUpe2Nhc2UieHRlcm0iOnJldHVybiB0aGlzLnh0ZXJtTGliIT09bnVsbDtjYXNlInh0ZXJtRml0QWRkb24iOnJldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWIhPT1udWxsO2Nhc2UiaGlnaGxpZ2h0SnMiOnJldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliIT09bnVsbDtjYXNlImFwZXhDaGFydHMiOnJldHVybiB0aGlzLmFwZXhDaGFydHNMaWIhPT1udWxsO2Nhc2UidGlwdGFwIjpyZXR1cm4gdGhpcy50aXB0YXBMaWIhPT1udWxsO2RlZmF1bHQ6cmV0dXJuITF9fX19KTt2YXIgZWM9bigoKT0+e2tGdCgpO3hFZSgpfSk7dmFyIF9GdD1uKCgpPT57fSk7dmFyIEFGdD1uKCgpPT57X0Z0KCl9KTt2YXIgJEZ0LGFqLHJqLHlFZSxERnQsaWosb2osc2osbmo9bigoKT0+eyRGdD0iaHR0cHM6Ly9zdGFja2JsaXR6LmNvbSIsYWo9ImNvZGUiLHJqPSJlcnJvciIseUVlPSJlcnJvcl9kZXNjcmlwdGlvbiIsREZ0PSJfX3djX2FwaV9iY19fIixpaj0iX193Y19hcGlfdG9rZW5zX18iLG9qPSJfX3djX2FwaV92ZXJpZmllcl9fIixzaj0iX193Y19hcGlfcG9wdXBfXyJ9KTt2YXIgdGMsd0VlPW4oKCk9Pnt0Yz1jbGFzc3tfYnVzPW5ldyBFdmVudFRhcmdldDtsaXN0ZW4oZSl7ZnVuY3Rpb24gYShyKXtlKHIuZGF0YSl9cmV0dXJuIHRoaXMuX2J1cy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixhKSwoKT0+dGhpcy5fYnVzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGEpfWZpcmVFdmVudChlKXt0aGlzLl9idXMuZGlzcGF0Y2hFdmVudChuZXcgTWVzc2FnZUV2ZW50KCJtZXNzYWdlIix7ZGF0YTplfSkpfX19KTtmdW5jdGlvbiBsaigpe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGlqKX1mdW5jdGlvbiBGRnQodCl7cmV0dXJuIE5GdC5saXN0ZW4odCl9ZnVuY3Rpb24gdXMxKCl7bGV0IHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oaWopO2lmKCF0KXJldHVybiBudWxsO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaHtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gcHMxKHQpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKGlqLEpTT04uc3RyaW5naWZ5KHQpKX1mdW5jdGlvbiBQRnQoe2NyZWF0ZWRfYXQ6dCxleHBpcmVzX2luOmV9KXtyZXR1cm4odCtlKSoxZTN9ZnVuY3Rpb24gSUZ0KHQpe2lmKHR5cGVvZiB0IT0ib2JqZWN0Inx8IXQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFRva2VuIFJlc3BvbnNlIik7aWYodHlwZW9mIHQuYWNjZXNzX3Rva2VuIT0ic3RyaW5nInx8dHlwZW9mIHQucmVmcmVzaF90b2tlbiE9InN0cmluZyJ8fHR5cGVvZiB0LmNyZWF0ZWRfYXQhPSJudW1iZXIifHx0eXBlb2YgdC5leHBpcmVzX2luIT0ibnVtYmVyIil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgVG9rZW4gUmVzcG9uc2UiKX1mdW5jdGlvbiBoczEodCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PnNldFRpbWVvdXQoZSx0KSl9ZnVuY3Rpb24gbXMxKHQpe05GdC5maXJlRXZlbnQodCl9dmFyIEVGdCxORnQscDUsTUVlPW4oKCk9PntuaigpO3dFZSgpO0VGdD1uZXcgRXJyb3I7RUZ0LnN0YWNrPSIiO05GdD1uZXcgdGMscDU9Y2xhc3MgdHtvcmlnaW47cmVmcmVzaDthY2Nlc3M7ZXhwaXJlcztfcmV2b2tlZD1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0cnVjdG9yKGUsYSxyLGkpe3RoaXMub3JpZ2luPWUsdGhpcy5yZWZyZXNoPWEsdGhpcy5hY2Nlc3M9cix0aGlzLmV4cGlyZXM9aX1hc3luYyBhY3RpdmF0ZShlKXtpZih0aGlzLl9yZXZva2VkLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBFcnJvcigiVG9rZW4gcmV2b2tlZCIpO3JldHVybiB0aGlzLmV4cGlyZXM8RGF0ZS5ub3coKSYmIWF3YWl0IHRoaXMuX2ZldGNoTmV3QWNjZXNzVG9rZW4oKT8hMToodGhpcy5fc3luYygpLHRoaXMuX3N0YXJ0UmVmcmVzaFRva2Vuc0xvb3AoZSksITApfWFzeW5jIHJldm9rZShlLGEpe3RoaXMuX3Jldm9rZWQuYWJvcnQoKTt0cnl7aWYoIShhd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvcmV2b2tlYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHt0b2tlbjp0aGlzLnJlZnJlc2gsdG9rZW5fdHlwZV9oaW50OiJyZWZyZXNoX3Rva2VuIixjbGllbnRfaWQ6ZX0pLG1vZGU6ImNvcnMifSkpLm9rKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGxvZ291dCIpfWNhdGNoKHIpe2lmKCFhKXRocm93IHJ9bGooKX1zdGF0aWMgZnJvbVN0b3JhZ2UoKXtsZXQgZT11czEoKTtyZXR1cm4gZT9uZXcgdChlLm9yaWdpbixlLnJlZnJlc2gsZS5hY2Nlc3MsZS5leHBpcmVzKTpudWxsfXN0YXRpYyBhc3luYyBmcm9tQXV0aENvZGUoe2VkaXRvck9yaWdpbjplLGNsaWVudElkOmEsY29kZVZlcmlmaWVyOnIsYXV0aENvZGU6aSxyZWRpcmVjdFVyaTpvfSl7bGV0IHM9YXdhaXQgZmV0Y2goYCR7ZX0vb2F1dGgvdG9rZW5gLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe2NsaWVudF9pZDphLGNvZGU6aSxjb2RlX3ZlcmlmaWVyOnIsZ3JhbnRfdHlwZToiYXV0aG9yaXphdGlvbl9jb2RlIixyZWRpcmVjdF91cmk6b30pLG1vZGU6ImNvcnMifSk7aWYoIXMub2spdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggdG9rZW46ICR7cy5zdGF0dXN9YCk7bGV0IGw9YXdhaXQgcy5qc29uKCk7SUZ0KGwpO2xldHthY2Nlc3NfdG9rZW46ZixyZWZyZXNoX3Rva2VuOmN9PWwsdT1QRnQobCk7cmV0dXJuIG5ldyB0KGUsYyxmLHUpfWFzeW5jIF9mZXRjaE5ld0FjY2Vzc1Rva2VuKCl7dHJ5e2xldCBlPWF3YWl0IGZldGNoKGAke3RoaXMub3JpZ2lufS9vYXV0aC90b2tlbmAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyh7Z3JhbnRfdHlwZToicmVmcmVzaF90b2tlbiIscmVmcmVzaF90b2tlbjp0aGlzLnJlZnJlc2h9KSxtb2RlOiJjb3JzIixzaWduYWw6dGhpcy5fcmV2b2tlZC5zaWduYWx9KTtpZighZS5vayl0aHJvdyBFRnQ7bGV0IGE9YXdhaXQgZS5qc29uKCk7SUZ0KGEpO2xldHthY2Nlc3NfdG9rZW46cixyZWZyZXNoX3Rva2VuOml9PWEsbz1QRnQoYSk7cmV0dXJuIHRoaXMuYWNjZXNzPXIsdGhpcy5leHBpcmVzPW8sdGhpcy5yZWZyZXNoPWksITB9Y2F0Y2h7cmV0dXJuIGxqKCksITF9fV9zeW5jKCl7cHMxKHRoaXMpLG1zMSh0aGlzLmFjY2Vzcyl9YXN5bmMgX3N0YXJ0UmVmcmVzaFRva2Vuc0xvb3AoZSl7Zm9yKDs7KXtsZXQgYT10aGlzLmV4cGlyZXMtRGF0ZS5ub3coKS0xZTM7aWYoYXdhaXQgaHMxKE1hdGgubWF4KGEsMWUzKSksdGhpcy5fcmV2b2tlZC5zaWduYWwuYWJvcnRlZClyZXR1cm47aWYoIXRoaXMuX2ZldGNoTmV3QWNjZXNzVG9rZW4oKSl7ZSgpO3JldHVybn10aGlzLl9zeW5jKCl9fX19KTt2YXIgekVlLGNqLFppLGtFZT1uKCgpPT57bmooKTt6RWU9e30sY2o9bnVsbCxaaT17Z2V0IGVkaXRvck9yaWdpbigpe3JldHVybiBjaj09bnVsbCYmKGNqPW5ldyBVUkwoZ2xvYmFsVGhpcy5XRUJDT05UQUlORVJfQVBJX0lGUkFNRV9VUkw/PyRGdCkub3JpZ2luKSxjan0sc2V0IGVkaXRvck9yaWdpbih0KXtjaj1uZXcgVVJMKHQpLm9yaWdpbn0sc2V0UXVlcnlQYXJhbSh0LGUpe3pFZVt0XT1lfSxnZXQgdXJsKCl7bGV0IHQ9bmV3IFVSTCh0aGlzLmVkaXRvck9yaWdpbik7dC5wYXRobmFtZT0iL2hlYWRsZXNzIjtmb3IobGV0IGUgaW4gekVlKXQuc2VhcmNoUGFyYW1zLnNldChlLHpFZVtlXSk7cmV0dXJuIHQuc2VhcmNoUGFyYW1zLnNldCgidmVyc2lvbiIsIjEuNi4xIiksdH19fSk7YXN5bmMgZnVuY3Rpb24gT0Z0KHQpe2xldCBlPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0KSxhPW5ldyBVaW50OEFycmF5KGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKSk7cmV0dXJuIGJ0b2EoYS5yZWR1Y2UoKHIsaSk9PnIrU3RyaW5nLmZyb21Db2RlUG9pbnQoaSksIiIpKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfWZ1bmN0aW9uIEJGdCgpe2xldCB0PW5ldyBVaW50OEFycmF5KDk2KTtjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHQpO2xldCBlPSIiO2ZvcihsZXQgYT0wO2E8MzI7KythKWUrPWdzMSh0WzMqYSswXSx0WzMqYSsxXSx0WzMqYSsyXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZ3MxKHQsZSxhKXtsZXQgcj10Pj4yLGk9KHQmMyk8PDR8ZT4+NCxvPWUmMTV8KGEmMTkyKT4+MixzPWEmNjM7cmV0dXJuW3IsaSxvLHNdLm1hcCh4czEpLmpvaW4oIiIpfWZ1bmN0aW9uIHhzMSh0KXtsZXQgZTtyZXR1cm4gdDwyNj9lPXQrNjU6dDw1Mj9lPXQtMjYrOTc6dDw2Mj9lPXQtNTIrNDg6ZT10PT09NjI/MzA6NDUsU3RyaW5nLmZyb21DaGFyQ29kZShlKX12YXIgUkZ0PW4oKCk9Pnt9KTtmdW5jdGlvbiBIRnQoKXtsZXQgdCxlO2Z1bmN0aW9uIGEoKXtlPW5ldyBQcm9taXNlKHI9PnQ9cil9cmV0dXJuIGEoKSx7Z2V0IHByb21pc2UoKXtyZXR1cm4gZX0scmVzb2x2ZShyKXtyZXR1cm4gdChyKX0scmVzZXQ6YX19dmFyIHFGdD1uKCgpPT57fSk7ZnVuY3Rpb24gTUkodCl7aHQuYnJvYWRjYXN0Q2hhbm5lbCYmKGh0LmJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UodCksbG9jYWxTdG9yYWdlLmdldEl0ZW0oc2opPT09InRydWUiJiZ0LnR5cGUhPT0iYXV0aC1sb2dvdXQiJiYobG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oc2opLHNldFRpbWVvdXQoKCk9Pnt3aW5kb3cuY2xvc2UoKX0pKSl9ZnVuY3Rpb24gU0VlKCl7YWMuZmlyZUV2ZW50KCksTUkoe3R5cGU6ImF1dGgtbG9nb3V0In0pfWZ1bmN0aW9uIFVGdCgpe3JldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZn1hc3luYyBmdW5jdGlvbiBqRnQoKXtsZXQgdD1CRnQoKTtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShvaix0KTtsZXQgZT1hd2FpdCBPRnQodCksYT1uZXcgVVJMKCIvb2F1dGgvYXV0aG9yaXplIixodC5lZGl0b3JPcmlnaW4pLHtzZWFyY2hQYXJhbXM6cn09YTtyZXR1cm4gci5hcHBlbmQoInJlc3BvbnNlX3R5cGUiLCJjb2RlIiksci5hcHBlbmQoImNsaWVudF9pZCIsaHQuY2xpZW50SWQpLHIuYXBwZW5kKCJyZWRpcmVjdF91cmkiLFVGdCgpKSxyLmFwcGVuZCgic2NvcGUiLGh0Lm9hdXRoU2NvcGUpLHIuYXBwZW5kKCJjb2RlX2NoYWxsZW5nZSIsZSksci5hcHBlbmQoImNvZGVfY2hhbGxlbmdlX21ldGhvZCIsIlMyNTYiKSxhLnRvU3RyaW5nKCl9ZnVuY3Rpb24gQ0VlKHQpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiT29wcyEgVG9rZW5zIGlzIG5vdCBkZWZpbmVkIHdoZW4gaXQgYWx3YXlzIHNob3VsZCBiZS4iKX12YXIgaHQsVkZ0LGFjLFdGdCxMRWU9bigoKT0+e01FZSgpO25qKCk7a0VlKCk7UkZ0KCk7cUZ0KCk7d0VlKCk7aHQ9e2luaXRpYWxpemVkOiExLGJvb3RDYWxsZWQ6ITEsYXV0aENvbXBsZXRlOkhGdCgpLGNsaWVudElkOiIiLG9hdXRoU2NvcGU6IiIsYnJvYWRjYXN0Q2hhbm5lbDpudWxsLGdldCBlZGl0b3JPcmlnaW4oKXtyZXR1cm4gWmkuZWRpdG9yT3JpZ2lufSx0b2tlbnM6bnVsbH0sVkZ0PW5ldyB0YyxhYz1uZXcgdGM7V0Z0PXtpbml0KHtlZGl0b3JPcmlnaW46dCxjbGllbnRJZDplLHNjb3BlOmF9KXtpZihodC5pbml0aWFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkluaXQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2UiKTtpZighMCYmaHQuYm9vdENhbGxlZCl0aHJvdyBuZXcgRXJyb3IoImBhdXRoLmluaXRgIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGJlZm9yZSBgV2ViQ29udGFpbmVyLmJvb3RgIik7aHQuaW5pdGlhbGl6ZWQ9ITAsaHQudG9rZW5zPXA1LmZyb21TdG9yYWdlKCksaHQuY2xpZW50SWQ9ZSxodC5vYXV0aFNjb3BlPWEsaHQuYnJvYWRjYXN0Q2hhbm5lbD1uZXcgQnJvYWRjYXN0Q2hhbm5lbChERnQpLFppLnNldFF1ZXJ5UGFyYW0oImNsaWVudF9pZCIsZSksdCYmKFppLmVkaXRvck9yaWdpbj1uZXcgVVJMKHQpLm9yaWdpbiksYWMubGlzdGVuKCgpPT5odC5hdXRoQ29tcGxldGUucmVzZXQoKSksaHQuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKTthc3luYyBmdW5jdGlvbiBpKGYpe2xldCBjPWYuZGF0YTtpZihjLnR5cGU9PT0iYXV0aC1jb21wbGV0ZSIpe2h0LnRva2Vucz1wNS5mcm9tU3RvcmFnZSgpLGF3YWl0IGh0LnRva2Vucy5hY3RpdmF0ZShTRWUpLGh0LmF1dGhDb21wbGV0ZS5yZXNvbHZlKCk7cmV0dXJufWlmKGMudHlwZT09PSJhdXRoLWZhaWxlZCIpe1ZGdC5maXJlRXZlbnQoYyk7cmV0dXJufWlmKGMudHlwZT09PSJhdXRoLWxvZ291dCIpe2FjLmZpcmVFdmVudCgpO3JldHVybn19aWYoaHQudG9rZW5zKXtsZXQgZj1odC50b2tlbnM7aWYoZi5vcmlnaW49PT1odC5lZGl0b3JPcmlnaW4pcmV0dXJuKGFzeW5jKCk9PntpZighYXdhaXQgZi5hY3RpdmF0ZShTRWUpKXtpZihodC50b2tlbnMhPT1mKXJldHVybjthYy5maXJlRXZlbnQoKTtyZXR1cm59aHQuYXV0aENvbXBsZXRlLnJlc29sdmUoKX0pKCkse3N0YXR1czoiYXV0aG9yaXplZCJ9O2xqKCksaHQudG9rZW5zPW51bGx9bGV0IG89bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikse3NlYXJjaFBhcmFtczpzfT1vLGw9KCk9PndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSxkb2N1bWVudC50aXRsZSxvKTtpZihzLmhhcyhyaikpe2xldCBmPXMuZ2V0KHJqKSxjPXMuZ2V0KHlFZSk7cmV0dXJuIHMuZGVsZXRlKHJqKSxzLmRlbGV0ZSh5RWUpLGwoKSxNSSh7dHlwZToiYXV0aC1mYWlsZWQiLGVycm9yOmYsZGVzY3JpcHRpb246Y30pLHtzdGF0dXM6ImF1dGgtZmFpbGVkIixlcnJvcjpmLGRlc2NyaXB0aW9uOmN9fWlmKHMuaGFzKGFqKSl7bGV0IGY9cy5nZXQoYWopLGM9aHQuZWRpdG9yT3JpZ2luO3MuZGVsZXRlKGFqKSxsKCk7bGV0IHU9bG9jYWxTdG9yYWdlLmdldEl0ZW0ob2opO3JldHVybiB1Pyhsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShvaikscDUuZnJvbUF1dGhDb2RlKHtlZGl0b3JPcmlnaW46YyxjbGllbnRJZDpodC5jbGllbnRJZCxhdXRoQ29kZTpmLGNvZGVWZXJpZmllcjp1LHJlZGlyZWN0VXJpOlVGdCgpfSkudGhlbihhc3luYyBkPT57aWYoaHQudG9rZW5zPWQsQ0VlKGh0LnRva2VucyksIWF3YWl0IGh0LnRva2Vucy5hY3RpdmF0ZShTRWUpKXRocm93IG5ldyBFcnJvcjtodC5hdXRoQ29tcGxldGUucmVzb2x2ZSgpLE1JKHt0eXBlOiJhdXRoLWNvbXBsZXRlIn0pfSkuY2F0Y2goZD0+e2NvbnNvbGUuZXJyb3IoZCksYWMuZmlyZUV2ZW50KCksTUkoe3R5cGU6ImF1dGgtbG9nb3V0In0pfSkse3N0YXR1czoiYXV0aG9yaXplZCJ9KTp7c3RhdHVzOiJuZWVkLWF1dGgifX1yZXR1cm57c3RhdHVzOiJuZWVkLWF1dGgifX0sYXN5bmMgc3RhcnRBdXRoRmxvdyh7cG9wdXA6dH09e30pe2lmKCFodC5pbml0aWFsaXplZCl0aHJvdyBuZXcgRXJyb3IoImF1dGguaW5pdCBtdXN0IGJlIGNhbGxlZCBmaXJzdCIpO2lmKHQpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKHNqLCJ0cnVlIik7bGV0IGU9NTAwLGE9NjIwLHI9d2luZG93LnNjcmVlbkxlZnQrKHdpbmRvdy5vdXRlcldpZHRoLWEpLzIsaT13aW5kb3cuc2NyZWVuVG9wKyh3aW5kb3cub3V0ZXJIZWlnaHQtZSkvMjt3aW5kb3cub3Blbihhd2FpdCBqRnQoKSwiX2JsYW5rIixgcG9wdXAsd2lkdGg9JHthfSxoZWlnaHQ9JHtlfSxsZWZ0PSR7cn0sdG9wPSR7aX1gKX1lbHNlIHdpbmRvdy5sb2NhdGlvbi5ocmVmPWF3YWl0IGpGdCgpfSxhc3luYyBsb2dvdXQoe2lnbm9yZVJldm9rZUVycm9yOnR9PXt9KXthd2FpdCBodC50b2tlbnM/LnJldm9rZShodC5jbGllbnRJZCx0Pz8hMSksYWMuZmlyZUV2ZW50KCksTUkoe3R5cGU6ImF1dGgtbG9nb3V0In0pfSxsb2dnZWRJbigpe3JldHVybiBodC5hdXRoQ29tcGxldGUucHJvbWlzZX0sb24odCxlKXtzd2l0Y2godCl7Y2FzZSJhdXRoLWZhaWxlZCI6cmV0dXJuIFZGdC5saXN0ZW4oZSk7Y2FzZSJsb2dnZWQtb3V0IjpyZXR1cm4gYWMubGlzdGVuKGUpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBldmVudCB0eXBlICcke3R9Jy5gKX19fX0pO3ZhciBYaSxkaj1uKCgpPT57KGZ1bmN0aW9uKHQpe3QuVW5jYXVnaHRFeGNlcHRpb249IlBSRVZJRVdfVU5DQVVHSFRfRVhDRVBUSU9OIix0LlVuaGFuZGxlZFJlamVjdGlvbj0iUFJFVklFV19VTkhBTkRMRURfUkVKRUNUSU9OIix0LkNvbnNvbGVFcnJvcj0iUFJFVklFV19DT05TT0xFX0VSUk9SIn0pKFhpfHwoWGk9e30pKX0pO2Z1bmN0aW9uICRFZSh0LGU9c2VsZil7ZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBhKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtsZXR7aWQ6aSx0eXBlOm8scGF0aDpzfT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxyLmRhdGEpLGw9KHIuZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAocmMpLGY7dHJ5e2xldCBjPXMuc2xpY2UoMCwtMSkucmVkdWNlKChkLGgpPT5kW2hdLHQpLHU9cy5yZWR1Y2UoKGQsaCk9PmRbaF0sdCk7c3dpdGNoKG8pe2Nhc2UgMDpmPXU7YnJlYWs7Y2FzZSAxOmNbcy5zbGljZSgtMSlbMF1dPXJjKHIuZGF0YS52YWx1ZSksZj0hMDticmVhaztjYXNlIDI6Zj11LmFwcGx5KGMsbCk7YnJlYWs7Y2FzZSAzOntsZXQgZD1uZXcgdSguLi5sKTtmPXRPdChkKX1icmVhaztjYXNlIDQ6e2xldHtwb3J0MTpkLHBvcnQyOmh9PW5ldyBNZXNzYWdlQ2hhbm5lbDskRWUodCxoKSxmPWVPdChkLFtkXSl9YnJlYWs7Y2FzZSA1OmY9dm9pZCAwO2JyZWFrfX1jYXRjaChjKXtmPXt2YWx1ZTpjLFtfRWVdOjB9fVByb21pc2UucmVzb2x2ZShmKS5jYXRjaChjPT4oe3ZhbHVlOmMsW19FZV06MH0pKS50aGVuKGM9PntsZXRbdSxkXT1FRWUoYyk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdSkse2lkOml9KSxkKSxvPT09NSYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYSksWEZ0KGUpKX0pfSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIE1zMSh0KXtyZXR1cm4gdC5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBYRnQodCl7TXMxKHQpJiZ0LmNsb3NlKCl9ZnVuY3Rpb24gUUZ0KHQsZSl7cmV0dXJuIERFZSh0LFtdLGUpfWZ1bmN0aW9uIGZqKHQpe2lmKHQpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBERWUodCxlPVtdLGE9ZnVuY3Rpb24oKXt9KXtsZXQgcj0hMSxpPW5ldyBQcm94eShhLHtnZXQobyxzKXtpZihmaihyKSxzPT09WUZ0KXJldHVybigpPT5oNSh0LHt0eXBlOjUscGF0aDplLm1hcChsPT5sLnRvU3RyaW5nKCkpfSkudGhlbigoKT0+e1hGdCh0KSxyPSEwfSk7aWYocz09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5pfTtsZXQgbD1oNSh0LHt0eXBlOjAscGF0aDplLm1hcChmPT5mLnRvU3RyaW5nKCkpfSkudGhlbihyYyk7cmV0dXJuIGwudGhlbi5iaW5kKGwpfXJldHVybiBERWUodCxbLi4uZSxzXSl9LHNldChvLHMsbCl7Zmoocik7bGV0W2YsY109RUVlKGwpO3JldHVybiBoNSh0LHt0eXBlOjEscGF0aDpbLi4uZSxzXS5tYXAodT0+dS50b1N0cmluZygpKSx2YWx1ZTpmfSxjKS50aGVuKHJjKX0sYXBwbHkobyxzLGwpe2ZqKHIpO2xldCBmPWVbZS5sZW5ndGgtMV07aWYoZj09PUdGdClyZXR1cm4gaDUodCx7dHlwZTo0fSkudGhlbihyYyk7aWYoZj09PSJiaW5kIilyZXR1cm4gREVlKHQsZS5zbGljZSgwLC0xKSk7bGV0W2MsdV09S0Z0KGwpO3JldHVybiBoNSh0LHt0eXBlOjIscGF0aDplLm1hcChkPT5kLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpjfSx1KS50aGVuKHJjKX0sY29uc3RydWN0KG8scyl7Zmoocik7bGV0W2wsZl09S0Z0KHMpO3JldHVybiBoNSh0LHt0eXBlOjMscGF0aDplLm1hcChjPT5jLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpsfSxmKS50aGVuKHJjKX19KTtyZXR1cm4gaX1mdW5jdGlvbiB6czEodCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sdCl9ZnVuY3Rpb24gS0Z0KHQpe2xldCBlPXQubWFwKEVFZSk7cmV0dXJuW2UubWFwKGE9PmFbMF0pLHpzMShlLm1hcChhPT5hWzFdKSldfWZ1bmN0aW9uIGVPdCh0LGUpe3JldHVybiBKRnQuc2V0KHQsZSksdH1mdW5jdGlvbiB0T3QodCl7cmV0dXJuIE9iamVjdC5hc3NpZ24odCx7W1RFZV06ITB9KX1mdW5jdGlvbiBrczEodCxlPXNlbGYsYT0iKiIpe3JldHVybntwb3N0TWVzc2FnZToocixpKT0+dC5wb3N0TWVzc2FnZShyLGEsaSksYWRkRXZlbnRMaXN0ZW5lcjplLmFkZEV2ZW50TGlzdGVuZXIuYmluZChlKSxyZW1vdmVFdmVudExpc3RlbmVyOmUucmVtb3ZlRXZlbnRMaXN0ZW5lci5iaW5kKGUpfX1mdW5jdGlvbiBFRWUodCl7Zm9yKGxldFtlLGFdb2YgQUVlKWlmKGEuY2FuSGFuZGxlKHQpKXtsZXRbcixpXT1hLnNlcmlhbGl6ZSh0KTtyZXR1cm5be3R5cGU6MyxuYW1lOmUsdmFsdWU6cn0saV19cmV0dXJuW3t0eXBlOjAsdmFsdWU6dH0sSkZ0LmdldCh0KXx8W11dfWZ1bmN0aW9uIHJjKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UgMzpyZXR1cm4gQUVlLmdldCh0Lm5hbWUpLmRlc2VyaWFsaXplKHQudmFsdWUpO2Nhc2UgMDpyZXR1cm4gdC52YWx1ZX19ZnVuY3Rpb24gaDUodCxlLGEpe3JldHVybiBuZXcgUHJvbWlzZShyPT57bGV0IGk9U3MxKCk7dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBvKHMpeyFzLmRhdGF8fCFzLmRhdGEuaWR8fHMuZGF0YS5pZCE9PWl8fCh0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG8pLHIocy5kYXRhKSl9KSx0LnN0YXJ0JiZ0LnN0YXJ0KCksdC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDppfSxlKSxhKX0pfWZ1bmN0aW9uIFNzMSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9dmFyIGJzMSx2czEsRmEsVEVlLEdGdCxZRnQsX0VlLFpGdCx5czEsd3MxLEFFZSxKRnQsYU90PW4oKCk9PnticzE9T2JqZWN0LmRlZmluZVByb3BlcnR5LHZzMT0odCxlKT0+e2Zvcih2YXIgYSBpbiBlKWJzMSh0LGEse2dldDplW2FdLGVudW1lcmFibGU6ITB9KX0sRmE9e307dnMxKEZhLHtjcmVhdGVFbmRwb2ludDooKT0+R0Z0LGV4cG9zZTooKT0+JEVlLHByb3h5OigpPT50T3QscHJveHlNYXJrZXI6KCk9PlRFZSxyZWxlYXNlUHJveHk6KCk9PllGdCx0cmFuc2ZlcjooKT0+ZU90LHRyYW5zZmVySGFuZGxlcnM6KCk9PkFFZSx3aW5kb3dFbmRwb2ludDooKT0+a3MxLHdyYXA6KCk9PlFGdH0pO1RFZT1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxHRnQ9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IiksWUZ0PVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxfRWU9U3ltYm9sKCJDb21saW5rLnRocm93biIpLFpGdD10PT50eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsfHx0eXBlb2YgdD09ImZ1bmN0aW9uIix5czE9e2NhbkhhbmRsZTp0PT5aRnQodCkmJnRbVEVlXSxzZXJpYWxpemUodCl7bGV0e3BvcnQxOmUscG9ydDI6YX09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiAkRWUodCxlKSxbYSxbYV1dfSxkZXNlcmlhbGl6ZSh0KXtyZXR1cm4gdC5zdGFydCgpLFFGdCh0KX19LHdzMT17Y2FuSGFuZGxlOnQ9PlpGdCh0KSYmX0VlIGluIHQsc2VyaWFsaXplKHt2YWx1ZTp0fSl7bGV0IGU7cmV0dXJuIHQgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOnQubWVzc2FnZSxuYW1lOnQubmFtZSxzdGFjazp0LnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTp0fSxbZSxbXV19LGRlc2VyaWFsaXplKHQpe3Rocm93IHQuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcih0LnZhbHVlLm1lc3NhZ2UpLHQudmFsdWUpOnQudmFsdWV9fSxBRWU9bmV3IE1hcChbWyJwcm94eSIseXMxXSxbInRocm93Iix3czFdXSk7SkZ0PW5ldyBXZWFrTWFwfSk7dmFyIHJPdD1uKCgpPT57fSk7ZnVuY3Rpb24gTkVlKHQpe3JldHVybiEodD09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QifHwhKCJ0eXBlImluIHQpfHwhQ3MxLmluY2x1ZGVzKHQudHlwZSkpfXZhciBDczEsaU90PW4oKCk9PntkaigpO0NzMT1bWGkuQ29uc29sZUVycm9yLFhpLlVuY2F1Z2h0RXhjZXB0aW9uLFhpLlVuaGFuZGxlZFJlamVjdGlvbl19KTt2YXIgUEVlPW4oKCk9PntyT3QoKTtkaigpO2lPdCgpfSk7ZnVuY3Rpb24gaWModCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gdD9PYmplY3QuYXNzaWduKGUsdCk6ZX12YXIgb090PW4oKCk9Pnt9KTtmdW5jdGlvbiBJRWUodCl7bGV0IGU9e2Q6e319O2ZvcihsZXQgYSBvZiBPYmplY3Qua2V5cyh0KSl7bGV0IHI9dFthXTtpZigiZmlsZSJpbiByKXtpZigic3ltbGluayJpbiByLmZpbGUpe2UuZFthXT17Zjp7bDpyLmZpbGUuc3ltbGlua319O2NvbnRpbnVlfWxldCBvPXIuZmlsZS5jb250ZW50cyxzPXR5cGVvZiBvPT0ic3RyaW5nIj9vOkxzMS5kZWNvZGUobyksbD10eXBlb2Ygbz09InN0cmluZyI/e306e2I6ITB9O2UuZFthXT17Zjp7YzpzLC4uLmx9fTtjb250aW51ZX1sZXQgaT1JRWUoci5kaXJlY3RvcnkpO2UuZFthXT1pfXJldHVybiBlfWZ1bmN0aW9uIEZFZSh0KXtsZXQgZT1pYygpO2lmKCJmImluIHQpdGhyb3cgbmV3IEVycm9yKCJJdCBpcyBub3QgcG9zc2libGUgdG8gZXhwb3J0IGEgc2luZ2xlIGZpbGUgaW4gdGhlIEpTT04gZm9ybWF0LiIpO2lmKCJkImluIHQpZm9yKGxldCBhIG9mIE9iamVjdC5rZXlzKHQuZCkpe2xldCByPXQuZFthXTsiZCJpbiByP2VbYV09aWMoe2RpcmVjdG9yeTpGRWUocil9KToiZiJpbiByJiYoImMiaW4gci5mP2VbYV09aWMoe2ZpbGU6aWMoe2NvbnRlbnRzOnIuZi5iP1RzMShyLmYuYyk6ci5mLmN9KX0pOiJsImluIHIuZiYmKGVbYV09aWMoe2ZpbGU6aWMoe3N5bWxpbms6ci5mLmx9KX0pKSl9cmV0dXJuIGV9ZnVuY3Rpb24gVHMxKHQpe2xldCBlPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErKyllW2FdPXRbYV0uY2hhckNvZGVBdCgwKTtyZXR1cm4gZX12YXIgTHMxLHNPdD1uKCgpPT57b090KCk7THMxPW5ldyBUZXh0RGVjb2RlcigibGF0aW4xIil9KTtmdW5jdGlvbiBOSGEodCl7aWYoaHQuYm9vdENhbGxlZCl0aHJvdyBuZXcgRXJyb3IoImBjb25maWd1cmVBUElLZXlgIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGJlZm9yZSBgV2ViQ29udGFpbmVyLmJvb3RgIik7Wmkuc2V0UXVlcnlQYXJhbSgiY2xpZW50X2lkIix0KX1hc3luYyBmdW5jdGlvbiBEczEodCl7bGV0e3NlcnZlclByb21pc2U6ZX09RXMxKHQpLHI9YXdhaXQoYXdhaXQgZSkuYnVpbGQoe2hvc3Q6d2luZG93LmxvY2F0aW9uLmhvc3QsdmVyc2lvbjoiMS42LjEiLHdvcmtkaXJOYW1lOnQud29ya2Rpck5hbWUsZm9yd2FyZFByZXZpZXdFcnJvcnM6dC5mb3J3YXJkUHJldmlld0Vycm9yc30pLFtpLG8sc109YXdhaXQgUHJvbWlzZS5hbGwoW3IuZnMoKSxyLnByZXZpZXdTY3JpcHQoKSxyLnJ1bnRpbWVJbmZvKCldKTtyZXR1cm4gbmV3IHpJKHIsaSxvLHMpfWZ1bmN0aW9uIFZFZSh0KXtpZih0IT1udWxsKXJldHVybiBlPT57ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/dChuT3QuZGVjb2RlKGUpKTplPT1udWxsJiZ0KG51bGwpfX1mdW5jdGlvbiBoaih0KXtpZih0IT1udWxsKXJldHVybiBGYS5wcm94eSh0KX1mdW5jdGlvbiBFczEodCl7aWYocGohPW51bGwpcmV0dXJuIHQuY29lcCE9PU9FZS5jb2VwJiYoY29uc29sZS53YXJuKGBBdHRlbXB0aW5nIHRvIGJvb3QgV2ViQ29udGFpbmVyIHdpdGggJ2NvZXA6ICR7dC5jb2VwfSdgKSxjb25zb2xlLndhcm4oYEZpcnN0IGJvb3QgaGFkICdjb2VwOiAke09FZS5jb2VwfScsIG5ldyBzZXR0aW5ncyB3aWxsIG5vdCB0YWtlIGVmZmVjdCFgKSkse3NlcnZlclByb21pc2U6cGp9O3QuY29lcCYmWmkuc2V0UXVlcnlQYXJhbSgiY29lcCIsdC5jb2VwKSx0LmV4cGVyaW1lbnRhbE5vZGUmJlppLnNldFF1ZXJ5UGFyYW0oImV4cGVyaW1lbnRhbF9ub2RlIiwiMSIpO2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2Uuc3R5bGUuZGlzcGxheT0ibm9uZSIsZS5zZXRBdHRyaWJ1dGUoImFsbG93IiwiY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkIik7bGV0IGE9WmkudXJsO2Uuc3JjPWEudG9TdHJpbmcoKTtsZXR7b3JpZ2luOnJ9PWE7cmV0dXJuIE9FZT17Li4udH0scGo9bmV3IFByb21pc2UoaT0+e2xldCBvPXM9PntpZihzLm9yaWdpbiE9PXIpcmV0dXJuO2xldHtkYXRhOmx9PXM7aWYobC50eXBlPT09ImluaXQiKXtpKEZhLndyYXAocy5wb3J0c1swXSkpO3JldHVybn1pZihsLnR5cGU9PT0id2FybmluZyIpe2NvbnNvbGVbbC5sZXZlbF0uY2FsbChjb25zb2xlLGwubWVzc2FnZSk7cmV0dXJufX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG8pfSksZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZSxudWxsKSx7c2VydmVyUHJvbWlzZTpwan19ZnVuY3Rpb24gTnMxKHQpe3JldHVybiB0eXBlb2YgdFswXT09InN0cmluZyJ9ZnVuY3Rpb24gUHMxKHQpe3JldHVybiB0WzBdaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIElzMSgpe2xldCB0PW51bGw7cmV0dXJue3N0cmVhbTpuZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0KHIpe3Q9cn19KSxwdXNoOnI9PntyIT1udWxsP3Q/LmVucXVldWUocik6KHQ/LmNsb3NlKCksdD1udWxsKX19fWZ1bmN0aW9uIEZzMSh0KXtsZXQgZT0hMSxhPSgpPT57fTtyZXR1cm57c3Vic2NyaWJlKGkpe3JldHVybiBpLnRoZW4obz0+e2E9byxlJiZhKCl9KSwoKT0+e2U9ITAsYSgpfX0sbGlzdGVuZXI6KCguLi5pKT0+e2V8fHQoLi4uaSl9KX19dmFyIEVIYSx1aixwaixPRWUsbk90LF9zMSx6SSxBczEsJHMxLEJFZSxSRWUsSEVlLHFFZSxsT3Q9bigoKT0+e0xFZSgpO2RqKCk7YU90KCk7TEVlKCk7TUVlKCk7a0VlKCk7UEVlKCk7c090KCk7UEVlKCk7RUhhPVdGdCx1aj1udWxsLHBqPW51bGwsT0VlPXt9LG5PdD1uZXcgVGV4dERlY29kZXIsX3MxPW5ldyBUZXh0RW5jb2Rlcix6ST1jbGFzcyB0e19pbnN0YW5jZTtfcnVudGltZUluZm87ZnM7c3RhdGljIF9pbnN0YW5jZT1udWxsO3N0YXRpYyBfdGVhcmRvd25Qcm9taXNlPW51bGw7X3Rvcm5Eb3duPSExO191bnN1YnNjcmliZUZyb21Ub2tlbkNoYW5nZWRMaXN0ZW5lcj0oKT0+e307Y29uc3RydWN0b3IoZSxhLHIsaSl7dGhpcy5faW5zdGFuY2U9ZSx0aGlzLl9ydW50aW1lSW5mbz1pLHRoaXMuZnM9bmV3IHFFZShhKSxodC5pbml0aWFsaXplZCYmKHRoaXMuX3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyPUZGdChvPT57dGhpcy5faW5zdGFuY2Uuc2V0Q3JlZGVudGlhbHMoe2FjY2Vzc1Rva2VuOm8sZWRpdG9yT3JpZ2luOmh0LmVkaXRvck9yaWdpbn0pfSksKGFzeW5jKCk9Pnthd2FpdCBodC5hdXRoQ29tcGxldGUucHJvbWlzZSwhdGhpcy5fdG9ybkRvd24mJihDRWUoaHQudG9rZW5zKSxhd2FpdCB0aGlzLl9pbnN0YW5jZS5zZXRDcmVkZW50aWFscyh7YWNjZXNzVG9rZW46aHQudG9rZW5zLmFjY2VzcyxlZGl0b3JPcmlnaW46aHQuZWRpdG9yT3JpZ2lufSkpfSkoKS5jYXRjaChvPT57Y29uc29sZS5lcnJvcihvKX0pKX1hc3luYyBzcGF3bihlLGEscil7bGV0IGk9W107QXJyYXkuaXNBcnJheShhKT9pPWE6cj1hO2xldCBvLHM9bmV3IFJlYWRhYmxlU3RyZWFtO2lmKHI/Lm91dHB1dCE9PSExKXtsZXQgeD1JczEoKTtvPXgucHVzaCxzPXguc3RyZWFtfWxldCBsLGYsYyx1LGQ9aGooVkVlKG8pKSxoPWhqKFZFZShsKSksZz1oaihWRWUoYykpLGI9YXdhaXQgdGhpcy5faW5zdGFuY2UucnVuKHtjb21tYW5kOmUsYXJnczppLGN3ZDpyPy5jd2QsZW52OnI/LmVudix0ZXJtaW5hbDpyPy50ZXJtaW5hbH0saCxnLGQpO3JldHVybiBuZXcgSEVlKGIscyxmLHUpfWFzeW5jIGV4cG9ydChlLGEpe2xldCByPXtmb3JtYXQ6YT8uZm9ybWF0Pz8ianNvbiIsaW5jbHVkZXM6YT8uaW5jbHVkZXMsZXhjbHVkZXM6YT8uZXhjbHVkZXMsZXh0ZXJuYWw6ITB9LGk9YXdhaXQgdGhpcy5faW5zdGFuY2Uuc2VyaWFsaXplKGUscik7aWYoci5mb3JtYXQ9PT0ianNvbiIpe2xldCBvPUpTT04ucGFyc2Uobk90LmRlY29kZShpKSk7cmV0dXJuIEZFZShvKX1yZXR1cm4gaX1vbihlLGEpe2lmKGU9PT0icHJldmlldy1tZXNzYWdlIil7bGV0IG89YTthPShzPT57TkVlKHMpJiZvKHMpfSl9bGV0e2xpc3RlbmVyOnIsc3Vic2NyaWJlOml9PUZzMShhKTtyZXR1cm4gaSh0aGlzLl9pbnN0YW5jZS5vbihlLEZhLnByb3h5KHIpKSl9bW91bnQoZSxhKXtsZXQgcj1lIGluc3RhbmNlb2YgVWludDhBcnJheT9lOmUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9uZXcgVWludDhBcnJheShlKTpfczEuZW5jb2RlKEpTT04uc3RyaW5naWZ5KElFZShlKSkpO3JldHVybiB0aGlzLl9pbnN0YW5jZS5sb2FkRmlsZXMoRmEudHJhbnNmZXIocixbci5idWZmZXJdKSx7bW91bnRQb2ludHM6YT8ubW91bnRQb2ludH0pfXNldFByZXZpZXdTY3JpcHQoZSxhKXtyZXR1cm4gdGhpcy5faW5zdGFuY2Uuc2V0UHJldmlld1NjcmlwdChlLGEpfWdldCBwYXRoKCl7cmV0dXJuIHRoaXMuX3J1bnRpbWVJbmZvLnBhdGh9Z2V0IHdvcmtkaXIoKXtyZXR1cm4gdGhpcy5fcnVudGltZUluZm8uY3dkfXRlYXJkb3duKCl7aWYodGhpcy5fdG9ybkRvd24pdGhyb3cgbmV3IEVycm9yKCJXZWJDb250YWluZXIgYWxyZWFkeSB0b3JuIGRvd24iKTt0aGlzLl90b3JuRG93bj0hMCx0aGlzLl91bnN1YnNjcmliZUZyb21Ub2tlbkNoYW5nZWRMaXN0ZW5lcigpO2xldCBlPWFzeW5jKCk9Pnt0cnl7YXdhaXQgdGhpcy5mcy5fdGVhcmRvd24oKSxhd2FpdCB0aGlzLl9pbnN0YW5jZS50ZWFyZG93bigpfWZpbmFsbHl7dGhpcy5faW5zdGFuY2VbRmEucmVsZWFzZVByb3h5XSgpLHQuX2luc3RhbmNlPT09dGhpcyYmKHQuX2luc3RhbmNlPW51bGwpfX07dC5fdGVhcmRvd25Qcm9taXNlPWUoKX1zdGF0aWMgYXN5bmMgYm9vdChlPXt9KXthd2FpdCB0aGlzLl90ZWFyZG93blByb21pc2UsdC5fdGVhcmRvd25Qcm9taXNlPW51bGw7bGV0e3dvcmtkaXJOYW1lOmF9PWU7aWYod2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQmJmUuY29lcD09PSJub25lIiYmY29uc29sZS53YXJuKGBBIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kgaGVhZGVyIGlzIHJlcXVpcmVkIGluIGNyb3NzIG9yaWdpbiBpc29sYXRlZCBlbnZpcm9ubWVudHMuClNldCB0aGUgJ2NvZXAnIG9wdGlvbiB0byAncmVxdWlyZS1jb3JwJy5gKSxhPy5pbmNsdWRlcygiLyIpfHxhPT09Ii4uInx8YT09PSIuIil0aHJvdyBuZXcgRXJyb3IoIndvcmtkaXJOYW1lIHNob3VsZCBiZSBhIHZhbGlkIGZvbGRlciBuYW1lIik7Zm9yKGh0LmJvb3RDYWxsZWQ9ITA7dWo7KWF3YWl0IHVqO2lmKHQuX2luc3RhbmNlKXRocm93IG5ldyBFcnJvcigiT25seSBhIHNpbmdsZSBXZWJDb250YWluZXIgaW5zdGFuY2UgY2FuIGJlIGJvb3RlZCIpO2xldCByPURzMShlKTt1aj1yLmNhdGNoKCgpPT57fSk7dHJ5e2xldCBpPWF3YWl0IHI7cmV0dXJuIHQuX2luc3RhbmNlPWksaX1maW5hbGx5e3VqPW51bGx9fX07QXMxPTEsJHMxPTIsQkVlPWNsYXNze25hbWU7X3R5cGU7Y29uc3RydWN0b3IoZSxhKXt0aGlzLm5hbWU9ZSx0aGlzLl90eXBlPWF9aXNGaWxlKCl7cmV0dXJuIHRoaXMuX3R5cGU9PT1BczF9aXNEaXJlY3RvcnkoKXtyZXR1cm4gdGhpcy5fdHlwZT09PSRzMX19LFJFZT1jbGFzc3tfYXBpQ2xpZW50O19wYXRoO19vcHRpb25zO19saXN0ZW5lcjtfd3JhcHBlZExpc3RlbmVyO193YXRjaGVyO19jbG9zZWQ9ITE7Y29uc3RydWN0b3IoZSxhLHIsaSl7dGhpcy5fYXBpQ2xpZW50PWUsdGhpcy5fcGF0aD1hLHRoaXMuX29wdGlvbnM9cix0aGlzLl9saXN0ZW5lcj1pLHRoaXMuX2FwaUNsaWVudC5fd2F0Y2hlcnMuYWRkKHRoaXMpLHRoaXMuX3dyYXBwZWRMaXN0ZW5lcj0obyxzKT0+e3RoaXMuX2xpc3RlbmVyJiYhdGhpcy5fY2xvc2VkJiZ0aGlzLl9saXN0ZW5lcihvLHMpfSx0aGlzLl9hcGlDbGllbnQuX2ZzLndhdGNoKHRoaXMuX3BhdGgsdGhpcy5fb3B0aW9ucyxoaih0aGlzLl93cmFwcGVkTGlzdGVuZXIpKS50aGVuKG89PntpZih0aGlzLl93YXRjaGVyPW8sdGhpcy5fY2xvc2VkKXJldHVybiB0aGlzLl90ZWFyZG93bigpfSkuY2F0Y2goY29uc29sZS5lcnJvcil9YXN5bmMgY2xvc2UoKXt0aGlzLl9jbG9zZWR8fCh0aGlzLl9jbG9zZWQ9ITAsdGhpcy5fYXBpQ2xpZW50Ll93YXRjaGVycy5kZWxldGUodGhpcyksYXdhaXQgdGhpcy5fdGVhcmRvd24oKSl9YXN5bmMgX3RlYXJkb3duKCl7YXdhaXQgdGhpcy5fd2F0Y2hlcj8uY2xvc2UoKS5maW5hbGx5KCgpPT57dGhpcy5fd2F0Y2hlcj8uW0ZhLnJlbGVhc2VQcm94eV0oKX0pfX0sSEVlPWNsYXNze291dHB1dDtpbnB1dDtleGl0O19wcm9jZXNzO3N0ZG91dDtzdGRlcnI7Y29uc3RydWN0b3IoZSxhLHIsaSl7dGhpcy5vdXRwdXQ9YSx0aGlzLl9wcm9jZXNzPWUsdGhpcy5pbnB1dD1uZXcgV3JpdGFibGVTdHJlYW0oe3dyaXRlOm89Pnt0aGlzLl9nZXRQcm9jZXNzKCk/LndyaXRlKG8pLmNhdGNoKCgpPT57fSl9fSksdGhpcy5leGl0PXRoaXMuX29uRXhpdCgpLHRoaXMuc3Rkb3V0PXIsdGhpcy5zdGRlcnI9aX1raWxsKCl7dGhpcy5fcHJvY2Vzcz8ua2lsbCgpfXJlc2l6ZShlKXt0aGlzLl9nZXRQcm9jZXNzKCk/LnJlc2l6ZShlKX1hc3luYyBfb25FeGl0KCl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9wcm9jZXNzLm9uRXhpdH1maW5hbGx5e3RoaXMuX3Byb2Nlc3M/LltGYS5yZWxlYXNlUHJveHldKCksdGhpcy5fcHJvY2Vzcz1udWxsfX1fZ2V0UHJvY2Vzcygpe3JldHVybiB0aGlzLl9wcm9jZXNzPT1udWxsJiZjb25zb2xlLndhcm4oIlRoaXMgcHJvY2VzcyBhbHJlYWR5IGV4aXRlZCIpLHRoaXMuX3Byb2Nlc3N9fSxxRWU9Y2xhc3N7X2ZzO193YXRjaGVycz1uZXcgU2V0KFtdKTtjb25zdHJ1Y3RvcihlKXt0aGlzLl9mcz1lfXJtKC4uLmUpe3JldHVybiB0aGlzLl9mcy5ybSguLi5lKX1hc3luYyByZWFkRmlsZShlLGEpe3JldHVybiBhd2FpdCB0aGlzLl9mcy5yZWFkRmlsZShlLGEpfWFzeW5jIHJlbmFtZShlLGEpe3JldHVybiBhd2FpdCB0aGlzLl9mcy5yZW5hbWUoZSxhKX1hc3luYyB3cml0ZUZpbGUoZSxhLHIpe2lmKGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgaT1hLmJ1ZmZlci5zbGljZShhLmJ5dGVPZmZzZXQsYS5ieXRlT2Zmc2V0K2EuYnl0ZUxlbmd0aCk7YT1GYS50cmFuc2ZlcihuZXcgVWludDhBcnJheShpKSxbaV0pfWF3YWl0IHRoaXMuX2ZzLndyaXRlRmlsZShlLGEscil9YXN5bmMgcmVhZGRpcihlLGEpe2xldCByPWF3YWl0IHRoaXMuX2ZzLnJlYWRkaXIoZSxhKTtyZXR1cm4gTnMxKHIpfHxQczEocik/cjpyLm1hcChvPT5uZXcgQkVlKG8ubmFtZSxvWyJTeW1ib2wodHlwZSkiXSkpfWFzeW5jIG1rZGlyKGUsYSl7cmV0dXJuIGF3YWl0IHRoaXMuX2ZzLm1rZGlyKGUsYSl9d2F0Y2goZSxhLHIpe3JldHVybiB0eXBlb2YgYT09ImZ1bmN0aW9uIiYmKHI9YSxhPW51bGwpLG5ldyBSRWUodGhpcyxlLGEscil9YXN5bmMgX3RlYXJkb3duKCl7dGhpcy5fZnNbRmEucmVsZWFzZVByb3h5XSgpLGF3YWl0IFByb21pc2UuYWxsKFsuLi50aGlzLl93YXRjaGVyc10ubWFwKGU9PmUuY2xvc2UoKSkpfX19KTt2YXIgbTUsY090PW4oKCk9PntsT3QoKTttNT1jbGFzcyB0e3N0YXRpYyBzaGFyZWRDb250YWluZXI9bnVsbDtzdGF0aWMgYm9vdFByb21pc2U9bnVsbDtfcmVhZHk9ITE7dHlwZT0id2ViY29udGFpbmVyIjtnZXQgcmVhZHkoKXtyZXR1cm4gdGhpcy5fcmVhZHl9Z2V0IGNvbnRhaW5lcigpe3JldHVybiB0LnNoYXJlZENvbnRhaW5lcn1hc3luYyBpbml0KCl7aWYoISh0aGlzLl9yZWFkeSYmdC5zaGFyZWRDb250YWluZXIpKXtpZih0LmJvb3RQcm9taXNlKXthd2FpdCB0LmJvb3RQcm9taXNlLHRoaXMuX3JlYWR5PSEwO3JldHVybn1pZih0LnNoYXJlZENvbnRhaW5lcil7dGhpcy5fcmVhZHk9ITA7cmV0dXJufWlmKHR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcj4idSIpdGhyb3cgbmV3IEVycm9yKGBXZWJDb250YWluZXIgcmVxdWlyZXMgU2hhcmVkQXJyYXlCdWZmZXIgd2hpY2ggaXMgbm90IGF2YWlsYWJsZS4gRW5zdXJlIHlvdXIgc2VydmVyIHNlbmRzIHRoZXNlIGhlYWRlcnM6CiAgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3k6IHNhbWUtb3JpZ2luCiAgQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeTogcmVxdWlyZS1jb3JwYCk7dC5ib290UHJvbWlzZT16SS5ib290KCk7dHJ5e3Quc2hhcmVkQ29udGFpbmVyPWF3YWl0IHQuYm9vdFByb21pc2UsdGhpcy5fcmVhZHk9ITB9Y2F0Y2goZSl7dGhyb3cgdC5ib290UHJvbWlzZT1udWxsLGV9fX1hc3luYyBkZXN0cm95KCl7dC5zaGFyZWRDb250YWluZXImJih0LnNoYXJlZENvbnRhaW5lci50ZWFyZG93bigpLHQuc2hhcmVkQ29udGFpbmVyPW51bGwsdC5ib290UHJvbWlzZT1udWxsLHRoaXMuX3JlYWR5PSExKX1hc3luYyByZWFkRmlsZShlKXtyZXR1cm4gdGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRGaWxlKGUsInV0Zi04Iil9YXN5bmMgd3JpdGVGaWxlKGUsYSl7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLndyaXRlRmlsZShlLGEsInV0Zi04Iil9YXN5bmMgcmVhZERpcihlKXtyZXR1cm4gdGhpcy5lbnN1cmVSZWFkeSgpLChhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkZGlyKGUse3dpdGhGaWxlVHlwZXM6ITB9KSkubWFwKHI9Pih7dHlwZTpyLmlzRGlyZWN0b3J5KCk/ImRpcmVjdG9yeSI6ImZpbGUiLG5hbWU6ci5uYW1lLHBhdGg6ZT09PSIvIj9gLyR7ci5uYW1lfWA6YCR7ZX0vJHtyLm5hbWV9YH0pKX1hc3luYyBta2RpcihlKXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMubWtkaXIoZSx7cmVjdXJzaXZlOiEwfSl9YXN5bmMgcm0oZSxhKXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIuZnMucm0oZSx7cmVjdXJzaXZlOmE/LnJlY3Vyc2l2ZT8/ITF9KX1hc3luYyBleGlzdHMoZSl7dGhpcy5lbnN1cmVSZWFkeSgpO3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZEZpbGUoZSksITB9Y2F0Y2h7dHJ5e3JldHVybiBhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkZGlyKGUpLCEwfWNhdGNoe3JldHVybiExfX19d2F0Y2goZSxhLHIpe3RoaXMuZW5zdXJlUmVhZHkoKTtsZXQgaT10aGlzLmNvbnRhaW5lci5mcy53YXRjaChlLHtyZWN1cnNpdmU6cj8ucmVjdXJzaXZlPz8hMX0sYSk7cmV0dXJue3N0b3A6KCk9PmkuY2xvc2UoKX19YXN5bmMgc3Bhd24oZSxhPVtdKXt0aGlzLmVuc3VyZVJlYWR5KCk7bGV0IHI9YXdhaXQgdGhpcy5jb250YWluZXIuc3Bhd24oZSxhKTtyZXR1cm57b3V0cHV0OnIub3V0cHV0LGlucHV0OnIuaW5wdXQsZXhpdDpyLmV4aXQsa2lsbDooKT0+ci5raWxsKCl9fWFzeW5jIG1vdW50KGUpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5tb3VudChlKX1nZXRDb250YWluZXIoKXtyZXR1cm4gdGhpcy5lbnN1cmVSZWFkeSgpLHRoaXMuY29udGFpbmVyfWVuc3VyZVJlYWR5KCl7aWYoIXRoaXMuX3JlYWR5fHwhdGhpcy5jb250YWluZXIpdGhyb3cgbmV3IEVycm9yKCJXZWJDb250YWluZXJFbnZpcm9ubWVudCBub3QgaW5pdGlhbGl6ZWQuIENhbGwgaW5pdCgpIGZpcnN0LiIpfX19KTt2YXIgZE90PW4oKCk9PntjT3QoKX0pO3ZhciBtaj1uKCgpPT57QUZ0KCk7ZE90KCl9KTt2YXIga0ksUWksUnMxLGdqPW4oKCk9PntmZSgpO0JlKCk7RnQoKTtrST1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LFFpPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxSczE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWFjdGlvbmJhciIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdO3ZhciB2PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgeT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtsZSgpXSxmPVtsZSgpXSxkPVtsZSgpXSxiPVtsZSgpXSxrSSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRCYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJjdXJyZW50QmFyImluIHcsZ2V0Onc9PncuY3VycmVudEJhcixzZXQ6KHcsRSk9Pnt3LmN1cnJlbnRCYXI9RX19LG1ldGFkYXRhOnl9LHMsbCksa0kodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lUmVtYWluaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4idGltZVJlbWFpbmluZyJpbiB3LGdldDp3PT53LnRpbWVSZW1haW5pbmcsc2V0Oih3LEUpPT57dy50aW1lUmVtYWluaW5nPUV9fSxtZXRhZGF0YTp5fSxjLHUpLGtJKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ3Jlc3NQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4icHJvZ3Jlc3NQZXJjZW50ImluIHcsZ2V0Onc9PncucHJvZ3Jlc3NQZXJjZW50LHNldDoodyxFKT0+e3cucHJvZ3Jlc3NQZXJjZW50PUV9fSxtZXRhZGF0YTp5fSxoLGcpLGtJKHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4iaXNWaXNpYmxlImluIHcsZ2V0Onc9PncuaXNWaXNpYmxlLHNldDoodyxFKT0+e3cuaXNWaXNpYmxlPUV9fSxtZXRhZGF0YTp5fSx4LG0pLGtJKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOnl9LG51bGwsYSksdj1yPWUudmFsdWUseSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp5fSl9c3RhdGljIGRlbW89KCk9PntsZXQgeT16PT56LmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmRlbW8tY29udGFpbmVyIik/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYWN0aW9uYmFyIik7cmV0dXJuIE1gCiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5kZW1vLWNvbnRlbnQgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRlbnQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2FzeW5jIHo9PntsZXQgUD15KHopO2lmKCFQKXJldHVybjtsZXQgXz1hd2FpdCBQLnNob3coe21lc3NhZ2U6IkZpbGUgY2hhbmdlZCBleHRlcm5hbGx5LiBSZWxvYWQ/Iix0eXBlOiJ3YXJuaW5nIixpY29uOiJsdWNpZGU6YWxlcnRUcmlhbmdsZSIsYWN0aW9uczpbe2lkOiJyZWxvYWQiLGxhYmVsOiJSZWxvYWQiLHByaW1hcnk6ITB9LHtpZDoiaWdub3JlIixsYWJlbDoiSWdub3JlIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjVlMyxkZWZhdWx0QWN0aW9uSWQ6InJlbG9hZCJ9LGRpc21pc3NpYmxlOiEwfSk7Y29uc29sZS5sb2coIkFjdGlvbiBiYXIgcmVzdWx0OiIsXyl9fT5XYXJuaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHthc3luYyB6PT57bGV0IFA9eSh6KTtpZighUClyZXR1cm47bGV0IF89YXdhaXQgUC5zaG93KHttZXNzYWdlOiJQcm9jZXNzIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAxIix0eXBlOiJlcnJvciIsaWNvbjoibHVjaWRlOnhDaXJjbGUiLGFjdGlvbnM6W3tpZDoicmV0cnkiLGxhYmVsOiJSZXRyeSIscHJpbWFyeTohMH0se2lkOiJkaXNtaXNzIixsYWJlbDoiRGlzbWlzcyJ9XSx0aW1lb3V0OntkdXJhdGlvbjoxZTQsZGVmYXVsdEFjdGlvbklkOiJkaXNtaXNzIn19KTtjb25zb2xlLmxvZygiRXJyb3IgYmFyIHJlc3VsdDoiLF8pfX0+RXJyb3I8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2FzeW5jIHo9PntsZXQgUD15KHopO2lmKCFQKXJldHVybjtsZXQgXz1hd2FpdCBQLnNob3coe21lc3NhZ2U6IlNhdmUgY2hhbmdlcyBiZWZvcmUgY2xvc2luZz8iLHR5cGU6InF1ZXN0aW9uIixpY29uOiJsdWNpZGU6aGVscENpcmNsZSIsYWN0aW9uczpbe2lkOiJzYXZlIixsYWJlbDoiU2F2ZSIscHJpbWFyeTohMH0se2lkOiJkaXNjYXJkIixsYWJlbDoiRGlzY2FyZCJ9LHtpZDoiY2FuY2VsIixsYWJlbDoiQ2FuY2VsIn1dfSk7Y29uc29sZS5sb2coIlF1ZXN0aW9uIGJhciByZXN1bHQ6IixfKX19PlF1ZXN0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGVlcy1hY3Rpb25iYXI+PC9kZWVzLWFjdGlvbmJhcj4KICAgICAgPC9kaXY+CiAgICBgfTtxdWV1ZT1bXTsjZT1RaSh0aGlzLHMsbnVsbCk7Z2V0IGN1cnJlbnRCYXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudEJhcih5KXt0aGlzLiNlPXl9I3Q9KFFpKHRoaXMsbCksUWkodGhpcyxjLDApKTtnZXQgdGltZVJlbWFpbmluZygpe3JldHVybiB0aGlzLiN0fXNldCB0aW1lUmVtYWluaW5nKHkpe3RoaXMuI3Q9eX0jYT0oUWkodGhpcyx1KSxRaSh0aGlzLGgsMTAwKSk7Z2V0IHByb2dyZXNzUGVyY2VudCgpe3JldHVybiB0aGlzLiNhfXNldCBwcm9ncmVzc1BlcmNlbnQoeSl7dGhpcy4jYT15fSNyPShRaSh0aGlzLGcpLFFpKHRoaXMseCwhMSkpO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNWaXNpYmxlKHkpe3RoaXMuI3I9eX10aW1lb3V0SW50ZXJ2YWw9KFFpKHRoaXMsbSksbnVsbCk7Y3VycmVudFJlc29sdmU9bnVsbDtzdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmFjdGlvbmJhci1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjJzIGVhc2Utb3V0OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICB9CgogICAgICA6aG9zdCgudmlzaWJsZSkgLmFjdGlvbmJhci1pdGVtIHsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgfQoKICAgICAgLmFjdGlvbmJhci1jb250ZW50IHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC52aXNpYmxlKSAuYWN0aW9uYmFyLWNvbnRlbnQgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXIgewogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGxpbmVhcjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMzggOTIlIDUwJSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC5xdWVzdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtaW4taGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAubWVzc2FnZS1zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24uaW5mbyB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24ucXVlc3Rpb24gewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4NSUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLmFjdGlvbnMtc2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDgwJSkiLCJoc2woMCAwJSAzMCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA1MCUpIiwiaHNsKDIxMCAxMDAlIDU1JSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5Lndhcm5pbmc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMzggOTIlIDQwJSkiLCJoc2woMzggOTIlIDQ1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LmVycm9yOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5xdWVzdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LnF1ZXN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDI3MCA3MCUgNDUlKSIsImhzbCgyNzAgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5jb3VudGRvd24gewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgfQoKICAgICAgLmRpc21pc3MtYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmRpc21pc3MtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDIyJSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IHk9dGhpcy5jdXJyZW50QmFyLHc9eT8udHlwZXx8ImluZm8iLEU9eT8udGltZW91dCYmdGhpcy50aW1lUmVtYWluaW5nPjA7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbmJhci1pdGVtIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25iYXItY29udGVudCI+CiAgICAgICAgICAke3k/TWAKICAgICAgICAgICAgJHtFP01gCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InByb2dyZXNzLWJhci1maWxsICR7d30iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnByb2dyZXNzUGVyY2VudH0lIgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgJHt5Lmljb24/TWAKICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtZXNzYWdlLWljb24gJHt3fSIKICAgICAgICAgICAgICAgICAgICAuaWNvbj0ke3kuaWNvbn0KICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTYiCiAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVzc2FnZS10ZXh0Ij4ke3kubWVzc2FnZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9ucy1zZWN0aW9uIj4KICAgICAgICAgICAgICAgICR7eS5hY3Rpb25zLm1hcChDPT50aGlzLnJlbmRlckFjdGlvbkJ1dHRvbihDLHksRSkpfQogICAgICAgICAgICAgICAgJHt5LmRpc21pc3NpYmxlP01gCiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZGlzbWlzcy1idXR0b24iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRGlzbWlzcygpfQogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJEaXNtaXNzIgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uQnV0dG9uKHksdyxFKXtsZXQgQz15LnByaW1hcnksej13LnR5cGV8fCJpbmZvIixQPXcudGltZW91dD8uZGVmYXVsdEFjdGlvbklkPT09eS5pZCxfPUUmJlAsJD1NYXRoLmNlaWwodGhpcy50aW1lUmVtYWluaW5nLzFlMyk7cmV0dXJuIE1gCiAgICAgIDxidXR0b24KICAgICAgICBjbGFzcz0iYWN0aW9uLWJ1dHRvbiAke0M/YHByaW1hcnkgJHt6fWA6InNlY29uZGFyeSJ9IgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUFjdGlvbih5LmlkLCExKX0KICAgICAgPgogICAgICAgICR7eS5pY29uP01gCiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7eS5pY29ufSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4+JHt5LmxhYmVsfTwvc3Bhbj4KICAgICAgICAke18/TWAKICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudGRvd24iPigkeyR9cyk8L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgPC9idXR0b24+CiAgICBgfWFzeW5jIHNob3coeSl7cmV0dXJuIG5ldyBQcm9taXNlKHc9Pnt0aGlzLnF1ZXVlLnB1c2goe29wdGlvbnM6eSxyZXNvbHZlOnd9KSx0aGlzLmN1cnJlbnRCYXJ8fHRoaXMucHJvY2Vzc1F1ZXVlKCl9KX1kaXNtaXNzKCl7dGhpcy5oYW5kbGVEaXNtaXNzKCl9Y2xlYXJRdWV1ZSgpe2ZvcihsZXQgeSBvZiB0aGlzLnF1ZXVlKXkucmVzb2x2ZSh7YWN0aW9uSWQ6ImRpc21pc3NlZCIsdGltZWRPdXQ6ITF9KTt0aGlzLnF1ZXVlPVtdfWFzeW5jIGhpZGVDdXJyZW50QmFyKCl7dGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIiksdGhpcy5pc1Zpc2libGU9ITEsYXdhaXQgbmV3IFByb21pc2UoeT0+c2V0VGltZW91dCh5LDIyMCkpLHRoaXMuY3VycmVudEJhcj1udWxsLHRoaXMuY3VycmVudFJlc29sdmU9bnVsbH1hc3luYyBwcm9jZXNzUXVldWUoKXtpZih0aGlzLnF1ZXVlLmxlbmd0aD09PTApe3RoaXMuaGlkZUN1cnJlbnRCYXIoKTtyZXR1cm59bGV0IHk9dGhpcy5xdWV1ZS5zaGlmdCgpO3RoaXMuY3VycmVudEJhcj15Lm9wdGlvbnMsdGhpcy5jdXJyZW50UmVzb2x2ZT15LnJlc29sdmUsdGhpcy5pc1Zpc2libGU9ITAsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pLHkub3B0aW9ucy50aW1lb3V0JiZ0aGlzLnN0YXJ0VGltZW91dCh5Lm9wdGlvbnMudGltZW91dC5kdXJhdGlvbix5Lm9wdGlvbnMudGltZW91dC5kZWZhdWx0QWN0aW9uSWQpfXN0YXJ0VGltZW91dCh5LHcpe3RoaXMudGltZVJlbWFpbmluZz15LHRoaXMucHJvZ3Jlc3NQZXJjZW50PTEwMDtsZXQgRT1EYXRlLm5vdygpLEM9NTA7dGhpcy50aW1lb3V0SW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PntsZXQgej1EYXRlLm5vdygpLUU7dGhpcy50aW1lUmVtYWluaW5nPU1hdGgubWF4KDAseS16KSx0aGlzLnByb2dyZXNzUGVyY2VudD10aGlzLnRpbWVSZW1haW5pbmcveSoxMDAsdGhpcy50aW1lUmVtYWluaW5nPD0wJiYodGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpLHRoaXMuaGFuZGxlQWN0aW9uKHcsITApKX0sQyl9Y2xlYXJUaW1lb3V0SW50ZXJ2YWwoKXt0aGlzLnRpbWVvdXRJbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy50aW1lb3V0SW50ZXJ2YWwpLHRoaXMudGltZW91dEludGVydmFsPW51bGwpfWhhbmRsZUFjdGlvbih5LHcpe3RoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKSx0aGlzLmN1cnJlbnRSZXNvbHZlJiZ0aGlzLmN1cnJlbnRSZXNvbHZlKHthY3Rpb25JZDp5LHRpbWVkT3V0Ond9KSx0aGlzLnByb2Nlc3NRdWV1ZSgpfWhhbmRsZURpc21pc3MoKXt0aGlzLmhhbmRsZUFjdGlvbigiZGlzbWlzc2VkIiwhMSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKX1zdGF0aWN7UWkocixhKX19O3JldHVybiB2PXJ9KSgpfSk7dmFyIHhqLFVFZT1uKCgpPT57eGo9Y2xhc3N7dGFicz1uZXcgTWFwO3RhYkNvdW50ZXI9MDt4dGVybUJ1bmRsZT1udWxsO3h0ZXJtRml0QWRkb25CdW5kbGU9bnVsbDtzZXRYdGVybU1vZHVsZXMoZSxhKXt0aGlzLnh0ZXJtQnVuZGxlPWUsdGhpcy54dGVybUZpdEFkZG9uQnVuZGxlPWF9Z2VuZXJhdGVUYWJJZCgpe3JldHVybiB0aGlzLnRhYkNvdW50ZXIrKyxgdGVybWluYWwtJHt0aGlzLnRhYkNvdW50ZXJ9LSR7RGF0ZS5ub3coKX1gfWdldERlZmF1bHRMYWJlbChlLGEpe3N3aXRjaChlKXtjYXNlInNoZWxsIjpyZXR1cm4iYmFzaCI7Y2FzZSJzY3JpcHQiOnJldHVybiBhPy5zY3JpcHROYW1lfHwic2NyaXB0IjtjYXNlInBhY2thZ2UtdXBkYXRlIjpyZXR1cm4gYT8ucGFja2FnZU5hbWU/YHVwZGF0ZSAke2EucGFja2FnZU5hbWV9YDoidXBkYXRlIjtjYXNlImN1c3RvbSI6cmV0dXJuIGE/LmNvbW1hbmR8fCJwcm9jZXNzIjtkZWZhdWx0OnJldHVybiJ0ZXJtaW5hbCJ9fWdldERlZmF1bHRJY29uKGUpe3N3aXRjaChlKXtjYXNlInNoZWxsIjpyZXR1cm4ibHVjaWRlOnRlcm1pbmFsIjtjYXNlInNjcmlwdCI6cmV0dXJuImx1Y2lkZTpwbGF5IjtjYXNlInBhY2thZ2UtdXBkYXRlIjpyZXR1cm4ibHVjaWRlOnBhY2thZ2VDaGVjayI7Y2FzZSJjdXN0b20iOnJldHVybiJsdWNpZGU6Y29kZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOnRlcm1pbmFsIn19Z2V0VGVybWluYWxUaGVtZShlKXtyZXR1cm4gZT97YmFja2dyb3VuZDoiI2ZmZmZmZiIsZm9yZWdyb3VuZDoiIzMzMzMzMyIsY3Vyc29yOiIjMzMzMzMzIixjdXJzb3JBY2NlbnQ6IiNmZmZmZmYiLHNlbGVjdGlvbjoicmdiYSgwLCAwLCAwLCAwLjIpIixibGFjazoiIzAwMDAwMCIscmVkOiIjY2QzMTMxIixncmVlbjoiIzAwYmMwMCIseWVsbG93OiIjOTQ5ODAwIixibHVlOiIjMDQ1MWE1IixtYWdlbnRhOiIjYmMwNWJjIixjeWFuOiIjMDU5OGJjIix3aGl0ZToiIzU1NTU1NSIsYnJpZ2h0QmxhY2s6IiM2NjY2NjYiLGJyaWdodFJlZDoiI2NkMzEzMSIsYnJpZ2h0R3JlZW46IiMxNGNlMTQiLGJyaWdodFllbGxvdzoiI2I1YmEwMCIsYnJpZ2h0Qmx1ZToiIzA0NTFhNSIsYnJpZ2h0TWFnZW50YToiI2JjMDViYyIsYnJpZ2h0Q3lhbjoiIzA1OThiYyIsYnJpZ2h0V2hpdGU6IiNhNWE1YTUifTp7YmFja2dyb3VuZDoiIzAwMDAwMCIsZm9yZWdyb3VuZDoiI2ZmZmZmZiIsY3Vyc29yOiIjZmZmZmZmIixjdXJzb3JBY2NlbnQ6IiMwMDAwMDAiLHNlbGVjdGlvbjoicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIn19Y3JlYXRlVGFiKGUsYSl7aWYoIXRoaXMueHRlcm1CdW5kbGV8fCF0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGUpdGhyb3cgbmV3IEVycm9yKCJUZXJtaW5hbFRhYk1hbmFnZXI6IHh0ZXJtIG1vZHVsZXMgbm90IGluaXRpYWxpemVkLiBDYWxsIHNldFh0ZXJtTW9kdWxlcygpIGZpcnN0LiIpO2xldCByPXRoaXMuZ2VuZXJhdGVUYWJJZCgpLGk9ZS50eXBlLG89bmV3IHRoaXMueHRlcm1CdW5kbGUuVGVybWluYWwoe2NvbnZlcnRFb2w6ITAsY3Vyc29yQmxpbms6ITAsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKGEpLGZvbnRGYW1pbHk6J01lbmxvLCBNb25hY28sICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZScsZm9udFNpemU6MTMsbGluZUhlaWdodDoxLjJ9KSxzPW5ldyB0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGUuRml0QWRkb247by5sb2FkQWRkb24ocyk7bGV0IGw9e2lkOnIsbGFiZWw6ZS5sYWJlbHx8dGhpcy5nZXREZWZhdWx0TGFiZWwoaSxlLm1ldGFkYXRhKSxpY29uTmFtZTplLmljb25OYW1lfHx0aGlzLmdldERlZmF1bHRJY29uKGkpLHR5cGU6aSxjbG9zZWFibGU6ZS5jbG9zZWFibGU/P2khPT0ic2hlbGwiLHRlcm1pbmFsOm8sZml0QWRkb246cyxwcm9jZXNzOm51bGwsaW5wdXRXcml0ZXI6bnVsbCxleGl0ZWQ6ITEsZXhpdENvZGU6bnVsbCxjcmVhdGVkQXQ6RGF0ZS5ub3coKSxtZXRhZGF0YTplLm1ldGFkYXRhfTtyZXR1cm4gdGhpcy50YWJzLnNldChyLGwpLGx9Z2V0VGFiKGUpe3JldHVybiB0aGlzLnRhYnMuZ2V0KGUpfWdldEFsbFRhYnMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRhYnMudmFsdWVzKCkpLnNvcnQoKGUsYSk9PmUuY3JlYXRlZEF0LWEuY3JlYXRlZEF0KX1nZXRUYWJDb3VudCgpe3JldHVybiB0aGlzLnRhYnMuc2l6ZX1oYXNUYWIoZSl7cmV0dXJuIHRoaXMudGFicy5oYXMoZSl9Y2xvc2VUYWIoZSl7bGV0IGE9dGhpcy50YWJzLmdldChlKTtpZighYSlyZXR1cm4hMTtpZihhLnByb2Nlc3MmJiFhLmV4aXRlZCl0cnl7YS5wcm9jZXNzLmtpbGwoKX1jYXRjaChyKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBraWxsIHByb2Nlc3M6IixyKX10cnl7YS50ZXJtaW5hbC5kaXNwb3NlKCl9Y2F0Y2gocil7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZGlzcG9zZSB0ZXJtaW5hbDoiLHIpfXJldHVybiB0aGlzLnRhYnMuZGVsZXRlKGUpLCEwfXJlbmFtZVRhYihlLGEpe2xldCByPXRoaXMudGFicy5nZXQoZSk7cmV0dXJuIHI/KHIubGFiZWw9YSwhMCk6ITF9bWFya1RhYkV4aXRlZChlLGEpe2xldCByPXRoaXMudGFicy5nZXQoZSk7ciYmKHIuZXhpdGVkPSEwLHIuZXhpdENvZGU9YSl9c2V0VGFiUHJvY2VzcyhlLGEscil7bGV0IGk9dGhpcy50YWJzLmdldChlKTtpJiYoaS5wcm9jZXNzPWEsaS5pbnB1dFdyaXRlcj1yKX11cGRhdGVBbGxUaGVtZXMoZSl7bGV0IGE9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKGUpO2ZvcihsZXQgciBvZiB0aGlzLnRhYnMudmFsdWVzKCkpci50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPWF9ZGlzcG9zZUFsbCgpe2ZvcihsZXRbZV1vZiB0aGlzLnRhYnMpdGhpcy5jbG9zZVRhYihlKTt0aGlzLnRhYnMuY2xlYXIoKX19fSk7dmFyIHVPdD17fTtldCh1T3Qse0RlZXNXb3Jrc3BhY2VUZXJtaW5hbDooKT0+Zk90fSk7dmFyIGNzLHEyLGZPdCxTST1uKCgpPT57ZmUoKTtTdCgpO0JlKCk7bWooKTtGdCgpO2dqKCk7VUVlKCk7ZWMoKTtjcz1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LHEyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxmT3Q9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdLEUsQz1bXSx6PVtdLFAsXz1bXSwkPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOk9iamVjdH0pXSxmPVtEKCldLGQ9W0QoKV0sYj1bRCh7dHlwZTpOdW1iZXJ9KV0sdj1bRCh7dHlwZTpCb29sZWFufSldLEU9W2xlKCldLFA9W2xlKCldLGNzKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiBrLGdldDprPT5rLmV4ZWN1dGlvbkVudmlyb25tZW50LHNldDooayxOKT0+e2suZXhlY3V0aW9uRW52aXJvbm1lbnQ9Tn19LG1ldGFkYXRhOkx9LHMsbCksY3ModGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXR1cENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzZXR1cENvbW1hbmQiaW4gayxnZXQ6az0+ay5zZXR1cENvbW1hbmQsc2V0OihrLE4pPT57ay5zZXR1cENvbW1hbmQ9Tn19LG1ldGFkYXRhOkx9LGMsdSksY3ModGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnZpcm9ubWVudFZhcmlhYmxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImVudmlyb25tZW50VmFyaWFibGVzImluIGssZ2V0Oms9PmsuZW52aXJvbm1lbnRWYXJpYWJsZXMsc2V0OihrLE4pPT57ay5lbnZpcm9ubWVudFZhcmlhYmxlcz1OfX0sbWV0YWRhdGE6TH0saCxnKSxjcyh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYkJhcldpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idGFiQmFyV2lkdGgiaW4gayxnZXQ6az0+ay50YWJCYXJXaWR0aCxzZXQ6KGssTik9PntrLnRhYkJhcldpZHRoPU59fSxtZXRhZGF0YTpMfSx4LG0pLGNzKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYkJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNob3dUYWJCYXIiaW4gayxnZXQ6az0+ay5zaG93VGFiQmFyLHNldDooayxOKT0+e2suc2hvd1RhYkJhcj1OfX0sbWV0YWRhdGE6TH0seSx3KSxjcyh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ0YWJzImluIGssZ2V0Oms9PmsudGFicyxzZXQ6KGssTik9PntrLnRhYnM9Tn19LG1ldGFkYXRhOkx9LEMseiksY3ModGhpcyxudWxsLFAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVUYWJJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImFjdGl2ZVRhYklkImluIGssZ2V0Oms9PmsuYWN0aXZlVGFiSWQsc2V0OihrLE4pPT57ay5hY3RpdmVUYWJJZD1OfX0sbWV0YWRhdGE6TH0sXywkKSxjcyhudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpMfSxudWxsLGEpLEg9cj1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPSgpPT57bGV0IEw9bmV3IG01O3JldHVybiBNYDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHtMfT48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsPmB9O3N0YXRpYyBkZW1vR3JvdXA9IldvcmtzcGFjZSI7cmVzaXplT2JzZXJ2ZXI7dGFiTWFuYWdlcjsjZT1xMih0aGlzLHMsbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KEwpe3RoaXMuI2U9TH0jdD0ocTIodGhpcyxsKSxxMih0aGlzLGMsIiIpKTtnZXQgc2V0dXBDb21tYW5kKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNldHVwQ29tbWFuZChMKXt0aGlzLiN0PUx9I2E9KHEyKHRoaXMsdSkscTIodGhpcyxoLHt9KSk7Z2V0IGVudmlyb25tZW50VmFyaWFibGVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGVudmlyb25tZW50VmFyaWFibGVzKEwpe3RoaXMuI2E9TH0jcj0ocTIodGhpcyxnKSxxMih0aGlzLHgsMTYwKSk7Z2V0IHRhYkJhcldpZHRoKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRhYkJhcldpZHRoKEwpe3RoaXMuI3I9TH0jaT0ocTIodGhpcyxtKSxxMih0aGlzLHksITApKTtnZXQgc2hvd1RhYkJhcigpe3JldHVybiB0aGlzLiNpfXNldCBzaG93VGFiQmFyKEwpe3RoaXMuI2k9TH0jbz0ocTIodGhpcyx3KSxxMih0aGlzLEMsW10pKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNvfXNldCB0YWJzKEwpe3RoaXMuI289TH0jcz0ocTIodGhpcyx6KSxxMih0aGlzLF8sbnVsbCkpO2dldCBhY3RpdmVUYWJJZCgpe3JldHVybiB0aGlzLiNzfXNldCBhY3RpdmVUYWJJZChMKXt0aGlzLiNzPUx9dGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj0ocTIodGhpcywkKSxudWxsKTtpc0JyaWdodD0hMTt0ZXJtaW5hbEFjdGlvbmJhcj1udWxsO2Vudmlyb25tZW50RGVmZXJyZWQ9bmV3IEF0LnNtYXJ0cHJvbWlzZS5EZWZlcnJlZDtlbnZpcm9ubWVudFByb21pc2U9dGhpcy5lbnZpcm9ubWVudERlZmVycmVkLnByb21pc2U7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudGFiTWFuYWdlcj1uZXcgeGosdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmhhbmRsZVJlc2l6ZSgpfSl9c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICA6aG9zdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgIH0KCiAgICAgICNhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIG1hcmdpbjogMjBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRlbnQgZGVlcy1hY3Rpb25iYXIgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBUYWIgYmFyIG9uIHRoZSByaWdodCBzaWRlICovCiAgICAgIC50YWItYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnRhYi1iYXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0NSUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1iYXItdGl0bGUgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnRhYi1iYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnRhYi1hY3Rpb24gewogICAgICAgIHdpZHRoOiAyMnB4OwogICAgICAgIGhlaWdodDogMjJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiLWFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItbGlzdCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyNSUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTUlKSIsImhzbCgyMTAgMzAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDAlKSIsImhzbCgyMTAgMTAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiLmV4aXRlZCB7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAudGFiLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLWljb24ucnVubmluZyB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMTQyIDcwJSA0MCUpIiwiaHNsKDE0MiA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1sYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5leGl0LWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMXB4IDVweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgxNDIgNzAlIDkwJSkiLCJoc2woMTQyIDMwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDE0MiA3MCUgMzUlKSIsImhzbCgxNDIgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5leGl0LWJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgNzAlIDkzJSkiLCJoc2woMCAzMCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDcwJSA0NSUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2UgewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIgLnRhYi1jbG9zZSB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyNSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIHh0ZXJtLmpzIHN0eWxlcyAqLwogICAgICAueHRlcm0gewogICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnIDA7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAueHRlcm0uZm9jdXMsCiAgICAgIC54dGVybTpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXJzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0taGVscGVyLXRleHRhcmVhIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IC01OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzMzMzMzMyIsIiNmZmZmZmYiKX07CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcuYWN0aXZlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gY2FudmFzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2Nyb2xsLWFyZWEgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWNoYXItbWVhc3VyZS1lbGVtZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOwogICAgICB9CgogICAgICAueHRlcm0gewogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnh0ZXJtLmVuYWJsZS1tb3VzZS1ldmVudHMgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLnh0ZXJtLnh0ZXJtLWN1cnNvci1wb2ludGVyIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC54dGVybS5jb2x1bW4tc2VsZWN0LmZvY3VzIHsKICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1hY2Nlc3NpYmlsaXR5LAogICAgICAueHRlcm0gLnh0ZXJtLW1lc3NhZ2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAueHRlcm0gLmxpdmUtcmVnaW9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTk5OTlweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC54dGVybS1kaW0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnh0ZXJtLXVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBMPXRoaXMuYWN0aXZlVGFiSWQ/dGhpcy50YWJNYW5hZ2VyLmdldFRhYih0aGlzLmFjdGl2ZVRhYklkKTpudWxsO3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgIDwhLS0gTWFpbiB0ZXJtaW5hbCBhcmVhIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRlbnQiPgogICAgICAgICAgJHtMP01gCiAgICAgICAgICAgIDxkaXYgaWQ9ImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgYDpNYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dGVybWluYWwifSBpY29uU2l6ZT0iMzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuPk5vIHRlcm1pbmFsIG9wZW48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFZlcnRpY2FsIHRhYiBiYXIgb24gdGhlIHJpZ2h0IC0tPgogICAgICAgICR7dGhpcy5zaG93VGFiQmFyP01gCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItYmFyIiBzdHlsZT0id2lkdGg6ICR7dGhpcy50YWJCYXJXaWR0aH1weCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXItaGVhZGVyIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFiLWJhci10aXRsZSI+VGVybWluYWxzPC9zcGFuPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItYWN0aW9uIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUFkZFRhYn0gdGl0bGU9Ik5ldyBUZXJtaW5hbCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBsdXMifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWxpc3QiPgogICAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcChrPT5NYAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0idGVybWluYWwtdGFiICR7ay5pZD09PXRoaXMuYWN0aXZlVGFiSWQ/ImFjdGl2ZSI6IiJ9ICR7ay5leGl0ZWQ/ImV4aXRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zd2l0Y2hUb1RhYihrLmlkKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgIC5pY29uPSR7ay5pY29uTmFtZX0KICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRhYi1pY29uICR7ay5wcm9jZXNzJiYhay5leGl0ZWQ/InJ1bm5pbmciOiIifSIKICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFiLWxhYmVsIj4ke2subGFiZWx9PC9zcGFuPgogICAgICAgICAgICAgICAgICAke2suZXhpdGVkP01gCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV4aXQtYmFkZ2UgJHtrLmV4aXRDb2RlPT09MD8ic3VjY2VzcyI6ImVycm9yIn0iPgogICAgICAgICAgICAgICAgICAgICAgJHtrLmV4aXRDb2RlfQogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgJHtrLmNsb3NlYWJsZT9NYAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY2xvc2UiIEBjbGljaz0ke049PnRoaXMuaGFuZGxlVGFiQ2xvc2UoTixrLmlkKX0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7bGV0IEw9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5pc0JyaWdodD1MLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4sdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPUwudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoVD0+e3RoaXMuaXNCcmlnaHQ9VCx0aGlzLnRhYk1hbmFnZXIudXBkYXRlQWxsVGhlbWVzKFQpfSk7bGV0IGs9SDIuZ2V0SW5zdGFuY2UoKSxbTixTXT1hd2FpdCBQcm9taXNlLmFsbChbay5sb2FkWHRlcm0oKSxrLmxvYWRYdGVybUZpdEFkZG9uKCldKTt0aGlzLnRhYk1hbmFnZXIuc2V0WHRlcm1Nb2R1bGVzKE4sUyksYXdhaXQgdGhpcy5jcmVhdGVTaGVsbFRhYigpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2xldCBMPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtMJiZ0aGlzLnJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShMKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24mJih0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249bnVsbCksdGhpcy50YWJNYW5hZ2VyLmRpc3Bvc2VBbGwoKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGhhbmRsZUFkZFRhYigpe2F3YWl0IHRoaXMuY3JlYXRlU2hlbGxUYWIoKX1oYW5kbGVUYWJDbG9zZShMLGspe0wuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbG9zZVRhYihrKX1zd2l0Y2hUb1RhYihMKXtpZihMPT09dGhpcy5hY3RpdmVUYWJJZClyZXR1cm47bGV0IGs9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihMKTtpZighaylyZXR1cm47bGV0IE49dGhpcy5hY3RpdmVUYWJJZDt0aGlzLmFjdGl2ZVRhYklkJiZ0aGlzLmRldGFjaEFjdGl2ZVRlcm1pbmFsKCksdGhpcy5hY3RpdmVUYWJJZD1MLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMuYXR0YWNoVGVybWluYWxUb0NvbnRhaW5lcihrKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItc3dpdGNoZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6TCxwcmV2aW91c1RhYklkOk59fSkpfSl9ZGV0YWNoQWN0aXZlVGVybWluYWwoKXtsZXQgTD10aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIik7TCYmKEwuaW5uZXJIVE1MPSIiKX1hdHRhY2hUZXJtaW5hbFRvQ29udGFpbmVyKEwpe2xldCBrPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtrJiYodGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGspLGsuaW5uZXJIVE1MPSIiLEwudGVybWluYWwub3BlbihrKSxMLmZpdEFkZG9uLmZpdCgpLEwudGVybWluYWwuZm9jdXMoKSl9aGFuZGxlUmVzaXplKCl7aWYodGhpcy5hY3RpdmVUYWJJZCl7bGV0IEw9dGhpcy50YWJNYW5hZ2VyLmdldFRhYih0aGlzLmFjdGl2ZVRhYklkKTtMJiZMLmZpdEFkZG9uLmZpdCgpfX1hc3luYyBzcGF3blByb2Nlc3NGb3JUYWIoTCxrLE49W10pe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXtMLnRlcm1pbmFsLndyaXRlKCJceDFCWzMxbSIpLEwudGVybWluYWwud3JpdGUoYFx1Mjc0QyBObyBleGVjdXRpb24gZW52aXJvbm1lbnQgYXZhaWxhYmxlLlxyCmApLEwudGVybWluYWwud3JpdGUoIlx4MUJbMG0iKTtyZXR1cm59dHJ5e3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fChMLnRlcm1pbmFsLndyaXRlKGBJbml0aWFsaXppbmcgZW52aXJvbm1lbnQuLi5ccgpgKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSk7bGV0IFM9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bihrLE4pO1Mub3V0cHV0LnBpcGVUbyhuZXcgV3JpdGFibGVTdHJlYW0oe3dyaXRlOlI9PntMLnRlcm1pbmFsLndyaXRlKFIpfX0pKTtsZXQgVD1TLmlucHV0LmdldFdyaXRlcigpO0wudGVybWluYWwub25EYXRhKFI9PntULndyaXRlKFIpfSksdGhpcy50YWJNYW5hZ2VyLnNldFRhYlByb2Nlc3MoTC5pZCxTLFQpLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLFMuZXhpdC50aGVuKFI9Pnt0aGlzLmhhbmRsZVByb2Nlc3NFeGl0KEwuaWQsUil9KX1jYXRjaChTKXtMLnRlcm1pbmFsLndyaXRlKCJceDFCWzMxbSIpLEwudGVybWluYWwud3JpdGUoYFx1Mjc0QyBGYWlsZWQgdG8gc3Bhd24gcHJvY2VzczogJHtTfVxyCmApLEwudGVybWluYWwud3JpdGUoIlx4MUJbMG0iKSxjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc3Bhd24gcHJvY2VzczoiLFMpfX1oYW5kbGVQcm9jZXNzRXhpdChMLGspe2xldCBOPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoTCk7aWYoIU4pcmV0dXJuO3RoaXMudGFiTWFuYWdlci5tYXJrVGFiRXhpdGVkKEwsayk7bGV0IFM9az09PTA/YFxyClx4MUJbMzJtW1Byb2Nlc3MgY29tcGxldGVkIHN1Y2Nlc3NmdWxseV1ceDFCWzBtXHIKYDpgXHIKXHgxQlszMW1bUHJvY2VzcyBleGl0ZWQgd2l0aCBjb2RlICR7a31dXHgxQlswbVxyCmA7Ti50ZXJtaW5hbC53cml0ZShTKSx0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwcm9jZXNzLWNvbXBsZXRlIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOkwsZXhpdENvZGU6a319KSksTi5jbG9zZWFibGUmJnRoaXMuc2hvd0V4aXRlZFRhYkFjdGlvbmJhcihMLE4ubGFiZWwsayl9YXN5bmMgc2hvd0V4aXRlZFRhYkFjdGlvbmJhcihMLGssTil7bGV0IFM9Tj09PTA7KGF3YWl0IHRoaXMuc2hvd0FjdGlvbmJhcih7bWVzc2FnZTpTP2AiJHtrfSIgY29tcGxldGVkLiBDbG9zZSB0YWI/YDpgIiR7a30iIGV4aXRlZCAoY29kZSAke059KS4gQ2xvc2UgdGFiP2AsdHlwZTpTPyJpbmZvIjoid2FybmluZyIsaWNvbjpTPyJsdWNpZGU6Y2hlY2tDaXJjbGUiOiJsdWNpZGU6YWxlcnRUcmlhbmdsZSIsYWN0aW9uczpbe2lkOiJjbG9zZSIsbGFiZWw6IkNsb3NlIFRhYiIscHJpbWFyeTohMH0se2lkOiJrZWVwIixsYWJlbDoiS2VlcCBPcGVuIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjFlNCxkZWZhdWx0QWN0aW9uSWQ6ImNsb3NlIn0sZGlzbWlzc2libGU6ITB9KSkuYWN0aW9uSWQ9PT0iY2xvc2UiJiZ0aGlzLmNsb3NlVGFiKEwpfWFzeW5jIGNyZWF0ZVNoZWxsVGFiKEwpe2xldCBrPXRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoe3R5cGU6InNoZWxsIixsYWJlbDpMfHxgYmFzaCAke3RoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpKzF9YCxjbG9zZWFibGU6dGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCk+MH0sdGhpcy5pc0JyaWdodCk7cmV0dXJuIHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuc3dpdGNoVG9UYWIoay5pZCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYihrLCJqc2giKSx0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKT09PTEmJnRoaXMuc2V0dXBDb21tYW5kJiYoYXdhaXQgdGhpcy53YWl0Rm9yUHJvbXB0KGsudGVybWluYWwsIn4vIiksay5pbnB1dFdyaXRlciYmay5pbnB1dFdyaXRlci53cml0ZSh0aGlzLnNldHVwQ29tbWFuZCkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jcmVhdGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOmsuaWR9fSkpLGsuaWR9YXN5bmMgY3JlYXRlUHJvY2Vzc1RhYihMKXtsZXQgaz10aGlzLnRhYk1hbmFnZXIuY3JlYXRlVGFiKEwsdGhpcy5pc0JyaWdodCk7cmV0dXJuIHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLEwuc3dpdGNoVG9UYWIhPT0hMSYmdGhpcy5zd2l0Y2hUb1RhYihrLmlkKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLEwuY29tbWFuZCYmYXdhaXQgdGhpcy5zcGF3blByb2Nlc3NGb3JUYWIoayxMLmNvbW1hbmQsTC5hcmdzKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItY3JlYXRlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDprLmlkfX0pKSxrLmlkfWdldEFjdGl2ZVRhYigpe3JldHVybiB0aGlzLmFjdGl2ZVRhYklkJiZ0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpfHxudWxsfWdldFRhYnMoKXtyZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKX1zZWxlY3RUYWIoTCl7cmV0dXJuIHRoaXMudGFiTWFuYWdlci5oYXNUYWIoTCk/KHRoaXMuc3dpdGNoVG9UYWIoTCksITApOiExfWNsb3NlVGFiKEwpe2xldCBrPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoTCk7aWYoIWt8fCFrLmNsb3NlYWJsZSlyZXR1cm4hMTtpZihMPT09dGhpcy5hY3RpdmVUYWJJZCl7bGV0IE49dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSxTPU4uZmluZEluZGV4KFI9PlIuaWQ9PT1MKSxUPU5bUysxXXx8TltTLTFdO1Q/dGhpcy5zd2l0Y2hUb1RhYihULmlkKToodGhpcy5hY3RpdmVUYWJJZD1udWxsLHRoaXMuZGV0YWNoQWN0aXZlVGVybWluYWwoKSl9cmV0dXJuIHRoaXMudGFiTWFuYWdlci5jbG9zZVRhYihMKSx0aGlzLnRhYnM9dGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItY2xvc2VkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOkx9fSkpLCEwfXdyaXRlVG9UYWIoTCxrKXtsZXQgTj10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKEwpO3JldHVybiBOPyhOLnRlcm1pbmFsLndyaXRlKGspLCEwKTohMX1zZW5kSW5wdXRUb1RhYihMLGspe2xldCBOPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoTCk7cmV0dXJuIU58fCFOLmlucHV0V3JpdGVyPyExOihOLmlucHV0V3JpdGVyLndyaXRlKGspLCEwKX1hc3luYyBzaG93QWN0aW9uYmFyKEwpe3JldHVybiB0aGlzLnRlcm1pbmFsQWN0aW9uYmFyfHwodGhpcy50ZXJtaW5hbEFjdGlvbmJhcj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYWN0aW9uYmFyIikpLHRoaXMudGVybWluYWxBY3Rpb25iYXI/LnNob3coTCl9YXN5bmMgd2FpdEZvclByb21wdChMLGspe3JldHVybiBuZXcgUHJvbWlzZShOPT57bGV0IFM9KCk9PntsZXQgVD1MLmJ1ZmZlci5hY3RpdmU7Zm9yKGxldCBSPTA7UjxULmxlbmd0aDtSKyspe2xldCBBPVQuZ2V0TGluZShSKTtpZihBJiZBLnRyYW5zbGF0ZVRvU3RyaW5nKCkuaW5jbHVkZXMoaykpe3NldFRpbWVvdXQoKCk9PntOKCl9LDEwMCk7cmV0dXJufX1zZXRUaW1lb3V0KFMsMTAwKX07UygpfSl9YXN5bmMgc2V0RW52aXJvbm1lbnRWYXJpYWJsZXMoTCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdGhyb3cgbmV3IEVycm9yKCJObyBleGVjdXRpb24gZW52aXJvbm1lbnQgYXZhaWxhYmxlIik7bGV0IGs9IiI7Zm9yKGxldCBOIGluIEwpays9YGV4cG9ydCAke059PSIke0xbTl19IgpgO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKCIvc291cmNlLmVudiIsayl9Z2V0RXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH1zdGF0aWN7cTIocixhKX19O3JldHVybiBIPXJ9KSgpfSk7dmFyIFgxPXtiYXNlOntjb250ZW50OiJhdXRvIixpbnB1dEVsZW1lbnRzOjF9LGZpeGVkOnthcHBCYXI6MTAsc2lkZU1lbnU6MTAsbW9iaWxlTmF2OjI1MH0sYmFja2Ryb3A6e2Ryb3Bkb3duOjE5OTksbW9kYWw6Mjk5OSxjb250ZXh0TWVudTozOTk5fSxvdmVybGF5Ontkcm9wZG93bjoyZTMsbW9kYWw6M2UzLGNvbnRleHRNZW51OjRlMyx0b2FzdDo1ZTN9LG1vZGFsRHJvcGRvd246MzUwMCx3eXNpd3lnTWVudXM6NDUwMH07ZnVuY3Rpb24gczAyKHQsZSl7bGV0IGE9WDFbdF07cmV0dXJuIHR5cGVvZiBhPT0ib2JqZWN0IiYmZT9hW2VdfHwiYXV0byI6dHlwZW9mIGE9PSJudW1iZXIiP2E6ImF1dG8ifXZhciBuMDI9eyJkZWVzLW1vZGFsIjpYMS5vdmVybGF5Lm1vZGFsLCJkZWVzLXdpbmRvd2xheWVyIjpYMS5vdmVybGF5LmRyb3Bkb3duLCJkZWVzLWNvbnRleHRtZW51IjpYMS5vdmVybGF5LmNvbnRleHRNZW51LCJkZWVzLXRvYXN0IjpYMS5vdmVybGF5LnRvYXN0LCJkZWVzLWFwcHVpLW1haW5tZW51IjpYMS5maXhlZC5hcHBCYXIsImRlZXMtbW9iaWxlbmF2aWdhdGlvbiI6WDEuZml4ZWQubW9iaWxlTmF2LCJkZWVzLXNsYXNoLW1lbnUiOlgxLnd5c2l3eWdNZW51cywiZGVlcy1mb3JtYXR0aW5nLW1lbnUiOlgxLnd5c2l3eWdNZW51c30sQnRlPWNsYXNzIHR7c3RhdGljIGluc3RhbmNlO2FjdGl2ZUVsZW1lbnRzPW5ldyBTZXQ7ZWxlbWVudFpJbmRleE1hcD1uZXcgV2Vha01hcDtjdXJyZW50WkluZGV4PTFlMztjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gdC5pbnN0YW5jZXx8KHQuaW5zdGFuY2U9bmV3IHQpLHQuaW5zdGFuY2V9Z2V0TmV4dFpJbmRleCgpe3JldHVybiB0aGlzLmN1cnJlbnRaSW5kZXgrPTEwLHRoaXMuY3VycmVudFpJbmRleH1yZWdpc3RlcihlLGEpe3RoaXMuYWN0aXZlRWxlbWVudHMuYWRkKGUpLHRoaXMuZWxlbWVudFpJbmRleE1hcC5zZXQoZSxhKX11bnJlZ2lzdGVyKGUpe3RoaXMuYWN0aXZlRWxlbWVudHMuZGVsZXRlKGUpLHRoaXMuZWxlbWVudFpJbmRleE1hcC5kZWxldGUoZSksdGhpcy5hY3RpdmVFbGVtZW50cy5zaXplPT09MCYmKHRoaXMuY3VycmVudFpJbmRleD0xZTMpfWdldEVsZW1lbnRaSW5kZXgoZSl7cmV0dXJuIHRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQoZSl9Z2V0QWN0aXZlQ291bnQoKXtyZXR1cm4gdGhpcy5hY3RpdmVFbGVtZW50cy5zaXplfWdldEN1cnJlbnRaSW5kZXgoKXtyZXR1cm4gdGhpcy5jdXJyZW50WkluZGV4fWNsZWFyKCl7dGhpcy5hY3RpdmVFbGVtZW50cy5jbGVhcigpLHRoaXMuZWxlbWVudFpJbmRleE1hcD1uZXcgV2Vha01hcCx0aGlzLmN1cnJlbnRaSW5kZXg9MWUzfWdldEFjdGl2ZUVsZW1lbnRzSW5PcmRlcigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuYWN0aXZlRWxlbWVudHMpLnNvcnQoKGUsYSk9PntsZXQgcj10aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KGUpfHwwLGk9dGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChhKXx8MDtyZXR1cm4gci1pfSl9fSxzMT1CdGUuZ2V0SW5zdGFuY2UoKTt2YXIgS3RlPXt9O2V0KEt0ZSx7YnVzaW5lc3M6KCk9PnF0ZSxjb2RlOigpPT5WdGUsY29udGFpbmVyOigpPT5VdGUsY29udGVudDooKT0+V3RlLGRhdGFiYXNlOigpPT5SdGUsZGVzY3JpcHRvcnM6KCk9Pmp0ZSxmaW5hbmNlOigpPT5IdGUsZ2VuZXJhbDooKT0+R3RlLG5ldHdvcms6KCk9PlpxLHNhYXM6KCk9Plp0ZSxzdG9yYWdlOigpPT5YdGUsd2Vic2l0ZTooKT0+UXRlfSk7dmFyIHF0ZT17fTt2YXIgUnRlPXt9O3ZhciBIdGU9e307dmFyIFZ0ZT17fTt2YXIgVXRlPXt9O3ZhciBqdGU9e307dmFyIFd0ZT17fTt2YXIgR3RlPXt9O3ZhciBacT17fTtldChacSx7SUNuYW1lRGVzY3JpcHRvcjooKT0+WXRlfSk7dmFyIFl0ZT1jbGFzc3t9O3ZhciBadGU9e307dmFyIFh0ZT17fTt2YXIgUXRlPXt9O3AyKCk7ZmUoKTt2YXIgdmF0PSgpPT5NYAo8c3R5bGU+CiAgLndpdGhNYXJnaW4gewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW46IDIwcHg7CiAgfQogIC5kZW1vLWNvbnRhaW5lciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMjBweDsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBtaW4taGVpZ2h0OiA0MDBweDsKICB9CiAgLmRlbW8tYXJlYSB7CiAgICBwYWRkaW5nOiA0MHB4OwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgfQogIC5kZW1vLWFyZWE6aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAyKTsKICB9Cjwvc3R5bGU+CjxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJCYXNpYyBDb250ZXh0IE1lbnUgd2l0aCBOZXN0ZWQgU3VibWVudXMiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHt0PT57V3Qub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxbe25hbWU6IkZpbGUiLGljb25OYW1lOiJmaWxlVGV4dCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXciLGljb25OYW1lOiJmaWxlUGx1cyIsc2hvcnRjdXQ6IkNtZCtOIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBmaWxlIil9LHtuYW1lOiJPcGVuIixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtPIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gZmlsZSIpfSx7bmFtZToiU2F2ZSIsaWNvbk5hbWU6InNhdmUiLHNob3J0Y3V0OiJDbWQrUyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhwb3J0IGFzIFBERiIsaWNvbk5hbWU6ImRvd25sb2FkIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkV4cG9ydCBQREYiKX0se25hbWU6IkV4cG9ydCBhcyBIVE1MIixpY29uTmFtZToiY29kZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHBvcnQgSFRNTCIpfV19LHtuYW1lOiJFZGl0IixpY29uTmFtZToiZWRpdDMiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiQ3V0IixpY29uTmFtZToic2Npc3NvcnMiLHNob3J0Y3V0OiJDbWQrWCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDdXQiKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixzaG9ydGN1dDoiQ21kK0MiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ29weSIpfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJQYXN0ZSIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZpbmQiLGljb25OYW1lOiJzZWFyY2giLHNob3J0Y3V0OiJDbWQrRiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJGaW5kIil9LHtuYW1lOiJSZXBsYWNlIixpY29uTmFtZToicmVwZWF0IixzaG9ydGN1dDoiQ21kK0giLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVwbGFjZSIpfV19LHtuYW1lOiJWaWV3IixpY29uTmFtZToiZXllIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6Ilpvb20gSW4iLGljb25OYW1lOiJ6b29tSW4iLHNob3J0Y3V0OiJDbWQrKyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIGluIil9LHtuYW1lOiJab29tIE91dCIsaWNvbk5hbWU6Inpvb21PdXQiLHNob3J0Y3V0OiJDbWQrLSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIG91dCIpfSx7bmFtZToiUmVzZXQgWm9vbSIsaWNvbk5hbWU6Im1heGltaXplMiIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlc2V0IHpvb20iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGdWxsIFNjcmVlbiIsaWNvbk5hbWU6Im1heGltaXplIixzaG9ydGN1dDoiRjExIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkZ1bGwgc2NyZWVuIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIil9LHtuYW1lOiJIZWxwIixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixpY29uTmFtZToiYm9vayIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb2N1bWVudGF0aW9uIil9LHtuYW1lOiJLZXlib2FyZCBTaG9ydGN1dHMiLGljb25OYW1lOiJrZXlib2FyZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQWJvdXQiKX1dfV0pfX0+CiAgICAgIDxoMz5SaWdodC1jbGljayBhbnl3aGVyZSBpbiB0aGlzIGFyZWE8L2gzPgogICAgICA8cD5BIGNvbnRleHQgbWVudSB3aXRoIG5lc3RlZCBzdWJtZW51cyB3aWxsIGFwcGVhcjwvcD4KICAgIDwvZGl2PgogIDwvZGVlcy1wYW5lbD4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJDb21wb25lbnQtU3BlY2lmaWMgQ29udGV4dCBNZW51Ij4KICAgIDxkZWVzLWJ1dHRvbiBzdHlsZT0ibWFyZ2luOiAyMHB4OyIgQGNvbnRleHRtZW51PSR7dD0+e1d0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHQsW3tuYW1lOiJCdXR0b24gQWN0aW9ucyIsaWNvbk5hbWU6Im1vdXNlUG9pbnRlciIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJDbGljayIsaWNvbk5hbWU6Im1vdXNlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNsaWNrIGFjdGlvbiIpfSx7bmFtZToiRG91YmxlIENsaWNrIixpY29uTmFtZToiemFwIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvdWJsZSBjbGljayIpfSx7bmFtZToiTG9uZyBQcmVzcyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkxvbmcgcHJlc3MiKX1dfSx7bmFtZToiQnV0dG9uIFN0YXRlIixpY29uTmFtZToidG9nZ2xlTGVmdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJFbmFibGUiLGljb25OYW1lOiJjaGVja0NpcmNsZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJFbmFibGUiKX0se25hbWU6IkRpc2FibGUiLGljb25OYW1lOiJ4Q2lyY2xlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRpc2FibGUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaG93IixpY29uTmFtZToiZXllIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3ciKX0se25hbWU6IkhpZGUiLGljb25OYW1lOiJleWVPZmYiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiSGlkZSIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiRGlzYWJsZWQgQWN0aW9uIixpY29uTmFtZToiYmFuIixkaXNhYmxlZDohMCxhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRoaXMgc2hvdWxkIG5vdCBydW4iKX0se25hbWU6IlByb3BlcnRpZXMiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJCdXR0b24gcHJvcGVydGllcyIpfV0pfX0+UmlnaHQtY2xpY2sgb24gdGhpcyBidXR0b248L2RlZXMtYnV0dG9uPgogIDwvZGVlcy1wYW5lbD4KCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iQWR2YW5jZWQgQ29udGV4dCBNZW51IEV4YW1wbGUiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHt0PT57V3Qub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxbe25hbWU6IkZvcm1hdCIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiQm9sZCIsaWNvbk5hbWU6ImJvbGQiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJCb2xkIil9LHtuYW1lOiJJdGFsaWMiLGljb25OYW1lOiJpdGFsaWMiLHNob3J0Y3V0OiJDbWQrSSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJJdGFsaWMiKX0se25hbWU6IlVuZGVybGluZSIsaWNvbk5hbWU6InVuZGVybGluZSIsc2hvcnRjdXQ6IkNtZCtVIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZGVybGluZSIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZvbnQgU2l6ZSIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRm9udCBzaXplIG1lbnUiKX0se25hbWU6IkZvbnQgQ29sb3IiLGljb25OYW1lOiJwYWxldHRlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkZvbnQgY29sb3IgbWVudSIpfV19LHtuYW1lOiJUcmFuc2Zvcm0iLGljb25OYW1lOiJzaHVmZmxlIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IlRvIFVwcGVyY2FzZSIsaWNvbk5hbWU6ImFycm93VXAiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiVXBwZXJjYXNlIil9LHtuYW1lOiJUbyBMb3dlcmNhc2UiLGljb25OYW1lOiJhcnJvd0Rvd24iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiTG93ZXJjYXNlIil9LHtuYW1lOiJDYXBpdGFsaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDYXBpdGFsaXplIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRGVsZXRlIil9XSl9fT4KICAgICAgPGgzPkFkdmFuY2VkIE5lc3RlZCBNZW51IEV4YW1wbGU8L2gzPgogICAgICA8cD5UaGlzIHNob3dzIGRlZXBseSBuZXN0ZWQgc3VibWVudXMgYW5kIHZhcmlvdXMgZm9ybWF0dGluZyBvcHRpb25zPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIAogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IlN0YXRpYyBDb250ZXh0IE1lbnUgKEFsd2F5cyBWaXNpYmxlKSI+CiAgICA8ZGVlcy1jb250ZXh0bWVudQogICAgICBjbGFzcz0id2l0aE1hcmdpbiIKICAgICAgLm1lbnVJdGVtcz0ke1t7bmFtZToiUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlciIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXcgUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLHNob3J0Y3V0OiJDbWQrU2hpZnQrTiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXcgcHJvamVjdCIpfSx7bmFtZToiT3BlbiBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtPIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcHJvamVjdCIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlY2VudCBQcm9qZWN0cyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IlByb2plY3QgQWxwaGEiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBBbHBoYSIpfSx7bmFtZToiUHJvamVjdCBCZXRhIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gQmV0YSIpfSx7bmFtZToiUHJvamVjdCBHYW1tYSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEdhbW1hIil9XX1dfSx7bmFtZToiVG9vbHMiLGljb25OYW1lOiJ0b29sIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IlRlcm1pbmFsIixpY29uTmFtZToidGVybWluYWwiLHNob3J0Y3V0OiJDbWQrVCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJUZXJtaW5hbCIpfSx7bmFtZToiQ29uc29sZSIsaWNvbk5hbWU6Im1vbml0b3IiLHNob3J0Y3V0OiJDbWQrSyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb25zb2xlIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXh0ZW5zaW9ucyIsaWNvbk5hbWU6InBhY2thZ2UiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRXh0ZW5zaW9ucyIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJzbGlkZXJzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlByZWZlcmVuY2VzIil9XX0KICAgID48L2RlZXMtY29udGV4dG1lbnU+CiAgPC9kZWVzLXBhbmVsPgo8L2Rpdj4KYDtmZSgpO3ZhciBCZD1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LEFpPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxLYT0oKCk9PntsZXQgdD1bY2UoImRlZXMtd2luZG93bGF5ZXIiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHk9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bbGUoKV0sZj1bbGUoKV0sZD1bbGUoKV0sYj1bRCh7dHlwZTpCb29sZWFufSldLEJkKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+Im9wdGlvbnMiaW4gdyxnZXQ6dz0+dy5vcHRpb25zLHNldDoodyxFKT0+e3cub3B0aW9ucz1FfX0sbWV0YWRhdGE6eX0scyxsKSxCZCh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJhY2tkcm9wWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4iYmFja2Ryb3BaSW5kZXgiaW4gdyxnZXQ6dz0+dy5iYWNrZHJvcFpJbmRleCxzZXQ6KHcsRSk9Pnt3LmJhY2tkcm9wWkluZGV4PUV9fSxtZXRhZGF0YTp5fSxjLHUpLEJkKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+ImNvbnRlbnRaSW5kZXgiaW4gdyxnZXQ6dz0+dy5jb250ZW50WkluZGV4LHNldDoodyxFKT0+e3cuY29udGVudFpJbmRleD1FfX0sbWV0YWRhdGE6eX0saCxnKSxCZCh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJ2aXNpYmxlImluIHcsZ2V0Onc9PncudmlzaWJsZSxzZXQ6KHcsRSk9Pnt3LnZpc2libGU9RX19LG1ldGFkYXRhOnl9LHgsbSksQmQobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6eX0sbnVsbCxhKSx2PXI9ZS52YWx1ZSx5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnl9KX1zdGF0aWMgZGVtbz0oKT0+TWA8ZGVlcy13aW5kb3dsYXllcj48L2RlZXMtd2luZG93bGF5ZXI+YDtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyh5KXtsZXQgdz1zdC5Eb21Ub29scy5nZXRHbG9iYWxEb21Ub29sc1N5bmMoKSxFPW5ldyB2O3JldHVybiBFLm9wdGlvbnM9ey4uLkUub3B0aW9ucywuLi55fSxkb2N1bWVudC5ib2R5LmFwcGVuZChFKSxhd2FpdCB3LmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksRS5zaG93KCksRX0jZT1BaSh0aGlzLHMse2JsdXI6ITF9KTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBvcHRpb25zKHkpe3RoaXMuI2U9eX0jdD0oQWkodGhpcyxsKSxBaSh0aGlzLGMsMWUzKSk7Z2V0IGJhY2tkcm9wWkluZGV4KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJhY2tkcm9wWkluZGV4KHkpe3RoaXMuI3Q9eX0jYT0oQWkodGhpcyx1KSxBaSh0aGlzLGgsMTAwMSkpO2dldCBjb250ZW50WkluZGV4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGNvbnRlbnRaSW5kZXgoeSl7dGhpcy4jYT15fSNyPShBaSh0aGlzLGcpLEFpKHRoaXMseCwhMSkpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHZpc2libGUoeSl7dGhpcy4jcj15fWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxBaSh0aGlzLG0pLHN0LmVsZW1lbnRCYXNpYy5zZXR1cCgpfXJlbmRlcigpe3JldHVybiBNYAogICAgICAke3N0LmVsZW1lbnRCYXNpYy5zdHlsZXN9CiAgICAgIDxzdHlsZT4KICAgICAgICAud2luZG93T3ZlcmxheSB7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICB0b3A6IDBweDsKICAgICAgICAgIGxlZnQ6IDBweDsKICAgICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjApOwogICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBicmlnaHRuZXNzKDEpICR7dGhpcy5vcHRpb25zLmJsdXI/ImJsdXIoMHB4KSI6IiJ9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICB6LWluZGV4OiAke3RoaXMuYmFja2Ryb3BaSW5kZXh9OwogICAgICAgIH0KICAgICAgICAuc2xvdENvbnRlbnQgewogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICB6LWluZGV4OiAke3RoaXMuY29udGVudFpJbmRleH07CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNsb3RDb250ZW50ID4gKiB7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnZpc2libGUgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpOwogICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBicmlnaHRuZXNzKDAuOSkgJHt0aGlzLm9wdGlvbnMuYmx1cj8iYmx1cigycHgpIjoiIn07CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBAY2xpY2s9JHt0aGlzLmRpc3BhdGNoQ2xpY2tlZH0gY2xhc3M9IndpbmRvd092ZXJsYXkgJHt0aGlzLnZpc2libGU/InZpc2libGUiOm51bGx9Ij4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNsb3RDb250ZW50Ij4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy52aXNpYmxlPSEwfSwxMDApfWRpc3BhdGNoQ2xpY2tlZCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrZWQiKSl9dG9nZ2xlVmlzaWJpbGl0eSgpe3RoaXMudmlzaWJsZT0hdGhpcy52aXNpYmxlfWdldENvbnRlbnRaSW5kZXgoKXtyZXR1cm4gdGhpcy5jb250ZW50WkluZGV4fWFzeW5jIHNob3coKXtsZXQgeT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmJhY2tkcm9wWkluZGV4PXMxLmdldE5leHRaSW5kZXgoKSx0aGlzLmNvbnRlbnRaSW5kZXg9czEuZ2V0TmV4dFpJbmRleCgpLHMxLnJlZ2lzdGVyKHRoaXMsdGhpcy5iYWNrZHJvcFpJbmRleCksYXdhaXQgeS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMudmlzaWJsZT0hMH1hc3luYyBoaWRlKCl7YXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy52aXNpYmxlPSExfWFzeW5jIGRlc3Ryb3koKXtsZXQgeT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTthd2FpdCB0aGlzLmhpZGUoKSxhd2FpdCB5LmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzAwKSxzMS51bnJlZ2lzdGVyKHRoaXMpLHRoaXMucmVtb3ZlKCl9c3RhdGlje0FpKHIsYSl9fTtyZXR1cm4gdj1yfSkoKTtmZSgpO1N0KCk7RnQoKTtCZSgpO3ZhciBTSXQ9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxIRGU9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LFd0PSgoKT0+e2xldCB0PVtjZSgiZGVlcy1jb250ZXh0bWVudSIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdO3ZhciBmPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOkFycmF5fSldLFNJdCh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+Im1lbnVJdGVtcyJpbiB1LGdldDp1PT51Lm1lbnVJdGVtcyxzZXQ6KHUsZCk9Pnt1Lm1lbnVJdGVtcz1kfX0sbWV0YWRhdGE6Y30scyxsKSxTSXQobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxmPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz12YXQ7c3RhdGljIGNvbnRleHRNZW51RGVhY3RpdmF0ZWQ9ITE7c3RhdGljIGFjY3VtdWxhdGVkTWVudUl0ZW1zPVtdO3N0YXRpYyBpbml0aWFsaXplR2xvYmFsTGlzdGVuZXIoKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsYz0+e2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47Yy5wcmV2ZW50RGVmYXVsdCgpLGYuYWNjdW11bGF0ZWRNZW51SXRlbXM9W107bGV0IHU9Yy5jb21wb3NlZFBhdGgoKTtmb3IobGV0IGQgb2YgdSlpZihkLmdldENvbnRleHRNZW51SXRlbXMpe2xldCBoPWQuZ2V0Q29udGV4dE1lbnVJdGVtcygpO2gmJmgubGVuZ3RoPjAmJihmLmFjY3VtdWxhdGVkTWVudUl0ZW1zLmxlbmd0aD4wJiZmLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goe2RpdmlkZXI6ITB9KSxmLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goLi4uaCkpfWYub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoYyxmLmFjY3VtdWxhdGVkTWVudUl0ZW1zKX0pfXN0YXRpYyBhc3luYyBvcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhjLHUpe2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47Yy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IGQ9bmV3IGY7ZC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGQuc3R5bGUuekluZGV4PVN0cmluZyhYMS5vdmVybGF5LmNvbnRleHRNZW51KSxkLnN0eWxlLm9wYWNpdHk9IjAiLGQuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIsZC5tZW51SXRlbXM9dSxkLndpbmRvd0xheWVyPWF3YWl0IEthLmNyZWF0ZUFuZFNob3coKSxkLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYyB2PT57di50YXJnZXQuY2xvc2VzdCgiZGVlcy1jb250ZXh0bWVudSIpfHxhd2FpdCBkLmRlc3Ryb3koKX0pLGRvY3VtZW50LmJvZHkuYXBwZW5kKGQpLGF3YWl0IEF0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IGg9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxnPXdpbmRvdy5pbm5lcldpZHRoLGI9d2luZG93LmlubmVySGVpZ2h0LHg9Yy5jbGllbnRZLG09Yy5jbGllbnRYO20raC53aWR0aD5nJiYobT1nLWgud2lkdGgtMTApLHgraC5oZWlnaHQ+YiYmKHg9Yi1oLmhlaWdodC0xMCksbTwxMCYmKG09MTApLHg8MTAmJih4PTEwKSxkLnN0eWxlLnRvcD1gJHt4fXB4YCxkLnN0eWxlLmxlZnQ9YCR7bX1weGAsZC5zdHlsZS50cmFuc2Zvcm1PcmlnaW49InRvcCBsZWZ0Iixhd2FpdCBBdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLGQuc3R5bGUub3BhY2l0eT0iMSIsZC5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkifSNlPUhEZSh0aGlzLHMsW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKGMpe3RoaXMuI2U9Y313aW5kb3dMYXllcj1IRGUodGhpcyxsKTtzdWJtZW51PW51bGw7c3VibWVudVRpbWVvdXQ9bnVsbDtwYXJlbnRNZW51PW51bGw7aXNEZXN0cm95aW5nPSExO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRhYkluZGV4PTB9c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDI4MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7cC5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWVudWl0ZW0uaGFzLXN1Ym1lbnU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAn4oC6JzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAubWVudWl0ZW06YWN0aXZlOm5vdCguaGFzLXN1Ym1lbnUpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tZW51aXRlbS5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubWVudWl0ZW0tc2hvcnRjdXQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChjPT57aWYoImRpdmlkZXIiaW4gYyYmYy5kaXZpZGVyKXJldHVybiBNYDxkaXYgY2xhc3M9Im1lbnUtZGl2aWRlciI+PC9kaXY+YDtsZXQgdT1jLGQ9dS5zdWJtZW51JiZ1LnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIE1gCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9Im1lbnVpdGVtICR7dS5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSAke2Q/Imhhcy1zdWJtZW51IjoiIn0iIAogICAgICAgICAgICAgIEBjbGljaz0keygpPT4hdS5kaXNhYmxlZCYmIWQmJnRoaXMuaGFuZGxlQ2xpY2sodSl9CiAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUhvdmVyKHUsZCl9CiAgICAgICAgICAgICAgQG1vdXNlbGVhdmU9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3UuaWNvbk5hbWU/TWAKICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dS5pY29uTmFtZX0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnVpdGVtLXRleHQiPiR7dS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAke3Uuc2hvcnRjdXQmJiFkP01gCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tc2hvcnRjdXQiPiR7dS5zaG9ydGN1dH08L3NwYW4+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSl9CiAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5sZW5ndGg9PT0wP01gCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIiBAY2xpY2s9JHsoKT0+e2YuY29udGV4dE1lbnVEZWFjdGl2YXRlZD0hMCx0aGlzLmRlc3Ryb3koKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249Imx1Y2lkZTp4Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tdGV4dCI+QWxsb3cgbmF0aXZlIGNvbnRleHQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6TWBgfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5mb2N1cygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlkb3duKX1oYW5kbGVLZXlkb3duPWM9PntsZXQgdT1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWVudWl0ZW06bm90KC5kaXNhYmxlZCkiKSksZD11LmZpbmRJbmRleChoPT5oLm1hdGNoZXMoIjpob3ZlciIpKTtzd2l0Y2goYy5rZXkpe2Nhc2UiQXJyb3dEb3duIjpjLnByZXZlbnREZWZhdWx0KCk7bGV0IGg9ZCsxPHUubGVuZ3RoP2QrMTowO3VbaF0uZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgibW91c2VlbnRlciIpKTticmVhaztjYXNlIkFycm93VXAiOmMucHJldmVudERlZmF1bHQoKTtsZXQgZz1kLTE+PTA/ZC0xOnUubGVuZ3RoLTE7dVtnXS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJtb3VzZWVudGVyIikpO2JyZWFrO2Nhc2UiRW50ZXIiOmMucHJldmVudERlZmF1bHQoKSxkPj0wJiZ1W2RdLmNsaWNrKCk7YnJlYWs7Y2FzZSJFc2NhcGUiOmMucHJldmVudERlZmF1bHQoKSx0aGlzLmRlc3Ryb3koKTticmVha319O2FzeW5jIGhhbmRsZUNsaWNrKGMpe2MuYWN0aW9uKCksYXdhaXQgdGhpcy5kZXN0cm95QWxsKCl9YXN5bmMgaGFuZGxlTWVudUl0ZW1Ib3ZlcihjLHUpe3RoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKSx0aGlzLnN1Ym1lbnUmJmF3YWl0IHRoaXMuaGlkZVN1Ym1lbnUoKSx1JiZjLnN1Ym1lbnUmJih0aGlzLnN1Ym1lbnVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnNob3dTdWJtZW51KGMpfSwyMDApKX1oYW5kbGVNZW51SXRlbUxlYXZlKCl7dGhpcy5zdWJtZW51VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc3VibWVudSYmIXRoaXMuc3VibWVudS5tYXRjaGVzKCI6aG92ZXIiKSYmdGhpcy5oaWRlU3VibWVudSgpfSwzMDApfWFzeW5jIHNob3dTdWJtZW51KGMpe2lmKCFjLnN1Ym1lbnV8fGMuc3VibWVudS5sZW5ndGg9PT0wKXJldHVybjtsZXQgZD1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWVudWl0ZW0iKSkuZmluZCh5PT55LnF1ZXJ5U2VsZWN0b3IoIi5tZW51aXRlbS10ZXh0Iik/LnRleHRDb250ZW50PT09Yy5uYW1lKTtpZighZClyZXR1cm47dGhpcy5zdWJtZW51PW5ldyBmLHRoaXMuc3VibWVudS5tZW51SXRlbXM9Yy5zdWJtZW51LHRoaXMuc3VibWVudS5wYXJlbnRNZW51PXRoaXMsdGhpcy5zdWJtZW51LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdWJtZW51LnN0eWxlLnpJbmRleD1TdHJpbmcocGFyc2VJbnQodGhpcy5zdHlsZS56SW5kZXgpKzEpLHRoaXMuc3VibWVudS5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLnN1Ym1lbnUuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSIsZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5zdWJtZW51KSxhd2FpdCBBdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO2xldCBoPWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZz10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGI9dGhpcy5zdWJtZW51LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHg9d2luZG93LmlubmVyV2lkdGgsbT1nLnJpZ2h0LTQsdj1oLnRvcDttK2Iud2lkdGg+eC0xMCYmKG09Zy5sZWZ0LWIud2lkdGgrNCksditiLmhlaWdodD53aW5kb3cuaW5uZXJIZWlnaHQtMTAmJih2PXdpbmRvdy5pbm5lckhlaWdodC1iLmhlaWdodC0xMCksdGhpcy5zdWJtZW51LnN0eWxlLmxlZnQ9YCR7bX1weGAsdGhpcy5zdWJtZW51LnN0eWxlLnRvcD1gJHt2fXB4YCxhd2FpdCBBdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWVudS5zdHlsZS5vcGFjaXR5PSIxIix0aGlzLnN1Ym1lbnUuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgxKSIsdGhpcy5zdWJtZW51LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCgpPT57dGhpcy5zdWJtZW51VGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PW51bGwpfSksdGhpcy5zdWJtZW51LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCgpPT57dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9KX1hc3luYyBoaWRlU3VibWVudSgpe3RoaXMuc3VibWVudSYmKGF3YWl0IHRoaXMuc3VibWVudS5kZXN0cm95KCksdGhpcy5zdWJtZW51PW51bGwpfWFzeW5jIGRlc3Ryb3koKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHRoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKSx0aGlzLnN1Ym1lbnUmJihhd2FpdCB0aGlzLnN1Ym1lbnUuZGVzdHJveSgpLHRoaXMuc3VibWVudT1udWxsKSx0aGlzLndpbmRvd0xheWVyJiYhdGhpcy5wYXJlbnRNZW51JiZ0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIsYXdhaXQgQXQuc21hcnRkZWxheS5kZWxheUZvcigxMDApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpKX1hc3luYyBkZXN0cm95QWxsKCl7bGV0IGM9dGhpcztmb3IoO2MucGFyZW50TWVudTspYz1jLnBhcmVudE1lbnU7YXdhaXQgYy5kZXN0cm95KCl9c3RhdGlje0hEZShyLGEpfX07cmV0dXJuIGY9cn0pKCk7V3QuaW5pdGlhbGl6ZUdsb2JhbExpc3RlbmVyKCk7ZmUoKTt2YXIgQ0l0PWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0scURlPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSx3bzE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWRlbW93cmFwcGVyIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W107dmFyIGY9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe2F0dHJpYnV0ZTohMX0pXSxDSXQodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJydW5BZnRlclJlbmRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+InJ1bkFmdGVyUmVuZGVyImluIHUsZ2V0OnU9PnUucnVuQWZ0ZXJSZW5kZXIsc2V0Oih1LGQpPT57dS5ydW5BZnRlclJlbmRlcj1kfX0sbWV0YWRhdGE6Y30scyxsKSxDSXQobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxmPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX0jZT1xRGUodGhpcyxzLHZvaWQgMCk7Z2V0IHJ1bkFmdGVyUmVuZGVyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJ1bkFmdGVyUmVuZGVyKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVt0ZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPHNsb3Q+PC9zbG90PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IG5ldyBQcm9taXNlKGM9PnNldFRpbWVvdXQoYyw1MCkpLHRoaXMuY2hpbGRyZW4ubGVuZ3RoPjAmJnRoaXMucnVuQWZ0ZXJSZW5kZXIpdHJ5e2F3YWl0IHRoaXMucnVuQWZ0ZXJSZW5kZXIodGhpcyl9Y2F0Y2goYyl7Y29uc29sZS5lcnJvcigiRXJyb3IgaW4gcnVuQWZ0ZXJSZW5kZXI6IixjKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHFEZSh0aGlzLGwpfXN0YXRpY3txRGUocixhKX19O3JldHVybiBmPXJ9KSgpO2ZlKCk7dmFyIExJdD0oKT0+e2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKTtyZXR1cm4gc2V0VGltZW91dCgoKT0+e3QuYWRkTWFueShbe3R5cGU6ImxvZ2luIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToibG9nZ2VkIGluIGZyb20gQ2hyb21lIG9uIG1hY09TIn0se3R5cGU6ImNyZWF0ZSIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6J2NyZWF0ZWQgYSBuZXcgcHJvamVjdCAiRnJvbnRlbmQgQXBwIid9LHt0eXBlOiJ1cGRhdGUiLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6InVwZGF0ZWQgQVBJIGRvY3VtZW50YXRpb24ifSx7dHlwZToidmlldyIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6InZpZXdlZCBkYXNoYm9hcmQgYW5hbHl0aWNzIn0se3R5cGU6ImRlbGV0ZSIsdXNlcjoiQWRtaW4iLG1lc3NhZ2U6InJlbW92ZWQgZGVwcmVjYXRlZCBlbmRwb2ludCJ9LHt0eXBlOiJjdXN0b20iLHVzZXI6IlN5c3RlbSIsbWVzc2FnZToic2NoZWR1bGVkIGJhY2t1cCBjb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UifSx7dHlwZToibG9nb3V0Iix1c2VyOiJBbGljZSBCcm93biIsbWVzc2FnZToibG9nZ2VkIG91dCJ9LHt0eXBlOiJjcmVhdGUiLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6ImNyZWF0ZWQgaW52b2ljZSAjMTIzNCJ9XSksdC5lbnRyaWVzJC5zdWJzY3JpYmUoZT0+e2NvbnNvbGUubG9nKCJBY3Rpdml0eSBsb2cgdXBkYXRlZDoiLGUubGVuZ3RoLCJlbnRyaWVzIil9KX0sMTAwKSxNYAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMwOTA5MGIiKX07CiAgICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgICR7dH0KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH07ZmUoKTtTdCgpO0Z0KCk7QmUoKTt2YXIgR1U9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxxbD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sTW8xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdO3ZhciBiPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgeD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtsZSgpXSxmPVtsZSgpXSxkPVtsZSgpXSxHVSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJlbnRyaWVzImluIG0sZ2V0Om09Pm0uZW50cmllcyxzZXQ6KG0sdik9PnttLmVudHJpZXM9dn19LG1ldGFkYXRhOnh9LHMsbCksR1UodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hRdWVyeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InNlYXJjaFF1ZXJ5ImluIG0sZ2V0Om09Pm0uc2VhcmNoUXVlcnksc2V0OihtLHYpPT57bS5zZWFyY2hRdWVyeT12fX0sbWV0YWRhdGE6eH0sYyx1KSxHVSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlckNyaXRlcmlhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4iZmlsdGVyQ3JpdGVyaWEiaW4gbSxnZXQ6bT0+bS5maWx0ZXJDcml0ZXJpYSxzZXQ6KG0sdik9PnttLmZpbHRlckNyaXRlcmlhPXZ9fSxtZXRhZGF0YTp4fSxoLGcpLEdVKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOnh9LG51bGwsYSksYj1yPWUudmFsdWUseCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp4fSl9c3RhdGljIGRlbW89TEl0O3N0YXRpYyBkZW1vR3JvdXA9IkFwcCBVSSI7I2U9cWwodGhpcyxzLFtdKTtnZXQgZW50cmllcygpe3JldHVybiB0aGlzLiNlfXNldCBlbnRyaWVzKHgpe3RoaXMuI2U9eH0jdD0ocWwodGhpcyxsKSxxbCh0aGlzLGMsIiIpKTtnZXQgc2VhcmNoUXVlcnkoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VhcmNoUXVlcnkoeCl7dGhpcy4jdD14fSNhPShxbCh0aGlzLHUpLHFsKHRoaXMsaCx7fSkpO2dldCBmaWx0ZXJDcml0ZXJpYSgpe3JldHVybiB0aGlzLiNhfXNldCBmaWx0ZXJDcml0ZXJpYSh4KXt0aGlzLiNhPXh9ZW50cmllcyQ9KHFsKHRoaXMsZyksbmV3IEF0LnNtYXJ0cngucnhqcy5TdWJqZWN0KTtzdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIDpob3N0IHsKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGFsaWduZWQgd2l0aCBzZWNvbmRhcnkgbWVudSAqLwogICAgICAgIC0tYWN0aXZpdHlsb2ctYmc6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnOiAke3AuYmRUaGVtZSgiIzUyNTI1MiIsIiNhM2EzYTMiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZy1tdXRlZDogJHtwLmJkVGhlbWUoIiM3MzczNzMiLCIjNzM3MzczIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlOiAke3AuYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1ib3JkZXI6ICR7cC5iZFRoZW1lKCIjZTVlNWU1IiwiIzFhMWExYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWhvdmVyOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1hY2NlbnQ6ICR7cC5iZFRoZW1lKCIjNzg3MTZjIiwiI2I1YTk5YSIpfTsKCiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDI4MHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIgd2l0aCBzdHJlYW1pbmcgaW5kaWNhdG9yICovCiAgICAgIC50b3BiYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRvcGJhciAuaGVhZGluZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5saXZlLWluZGljYXRvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAubGl2ZS1pbmRpY2F0b3IgLmRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC41OyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IH0KICAgICAgICA1MCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH0KICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgY29udGFpbmVyICovCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDhweDsKICAgICAgICBib3R0b206IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7cC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjYTNhM2EzIiwiIzUyNTI1MiIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMTZweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAvKiBEYXRlIHNlcGFyYXRvciAtIHdhcm0gdGF1cGUgc3R5bGluZyAqLwogICAgICAuZGF0ZS1zZXBhcmF0b3IgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWFjY2VudCk7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGVudHJ5IC0gbW9kZXJuIHN0YWNrZWQgbGF5b3V0ICovCiAgICAgIC5hY3Rpdml0eWVudHJ5IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgbWFyZ2luOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmFjdGl2aXR5ZW50cnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWhvdmVyKTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmxvZ2luIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC4wOCkiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxNmEzNGEiLCIjNGFkZTgwIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5sb2dvdXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnZpZXcgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgxNjgsIDg1LCAyNDcsIDAuMDgpIiwicmdiYSgxNjgsIDg1LCAyNDcsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzkzMzNlYSIsIiNjMDg0ZmMiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnVwZGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMjUxLCAxNDYsIDYwLCAwLjA4KSIsInJnYmEoMjUxLCAxNDYsIDYwLCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5kZWxldGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmN1c3RvbSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMTAwLCAxMTYsIDEzOSwgMC4wOCkiLCJyZ2JhKDEwMCwgMTE2LCAxMzksIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzQ3NTU2OSIsIiM5NGEzYjgiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXVzZXIgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAuYWN0aXZpdHktc2VwYXJhdG9yIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgfQoKICAgICAgLnRpbWVzdGFtcCB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LW1lc3NhZ2UgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLyogU2VhcmNoIGJveCAtIHJlZmluZWQgc3R5bGluZyAqLwogICAgICAuc2VhcmNoYm94IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VhcmNoLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSIpfTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHggMCAzNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtd3JhcHBlcjpoYXMoaW5wdXQ6Zm9jdXMpIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IHg9dGhpcy5nZXRGaWx0ZXJlZEVudHJpZXMoKSxtPXRoaXMuZ3JvdXBFbnRyaWVzQnlEYXRlKHgpO3JldHVybiBNYAogICAgICAke2MxLnN0eWxlc30KICAgICAgPHN0eWxlPjwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIj5BY3Rpdml0eSBMb2c8L2Rpdj4KICAgICAgICAgICR7eC5sZW5ndGg+MD9NYDxkaXYgY2xhc3M9ImxpdmUtaW5kaWNhdG9yIj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+TGl2ZTwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHlDb250YWluZXIiPgogICAgICAgICAgJHt4Lmxlbmd0aD09PTA/TWA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gYWN0aXZpdHkgZW50cmllczwvZGl2PmA6bS5tYXAodj0+TWAKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1zZXBhcmF0b3IiPiR7di5sYWJlbH08L2Rpdj4KICAgICAgICAgICAgICAgICAgJHt2LmVudHJpZXMubWFwKHk9PnRoaXMucmVuZGVyQWN0aXZpdHlFbnRyeSh5KSl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJzZWFyY2gtaWNvbiIgLmljb249JHsibHVjaWRlOnNlYXJjaCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggYWN0aXZpdGllcywgdXNlcnMuLi4iCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVNlYXJjaElucHV0fQogICAgICAgICAgICAvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpdml0eUVudHJ5KHgpe2xldCBtPXgudGltZXN0YW1wfHxuZXcgRGF0ZSx2PXRoaXMuZm9ybWF0VGltZShtKSx5PXguaWNvbk5hbWV8fHRoaXMuZ2V0SWNvbkZvclR5cGUoeC50eXBlKTtyZXR1cm4gTWAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpdml0eWVudHJ5IgogICAgICAgIEBjb250ZXh0bWVudT0ke3c9PnRoaXMuaGFuZGxlQ29udGV4dE1lbnUodyx4KX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWljb24gJHt4LnR5cGV9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt5fT48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWhlYWRlciI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS11c2VyIj4ke3gudXNlcn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1zZXBhcmF0b3IiPsK3PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZXN0YW1wIj4ke3Z9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1tZXNzYWdlIj4ke3gubWVzc2FnZX08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFkZCh4KXtsZXQgbT17Li4ueCxpZDp4LmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6eC50aW1lc3RhbXB8fG5ldyBEYXRlfTt0aGlzLmVudHJpZXM9W20sLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1hZGRNYW55KHgpe2xldCBtPXgubWFwKHY9Pih7Li4udixpZDp2LmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6di50aW1lc3RhbXB8fG5ldyBEYXRlfSkpO3RoaXMuZW50cmllcz1bLi4ubS5yZXZlcnNlKCksLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1jbGVhcigpe3RoaXMuZW50cmllcz1bXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1nZXRFbnRyaWVzKCl7cmV0dXJuWy4uLnRoaXMuZW50cmllc119ZmlsdGVyKHgpe3JldHVybiB0aGlzLmVudHJpZXMuZmlsdGVyKG09PiEoeC51c2VyJiZtLnVzZXIhPT14LnVzZXJ8fHgudHlwZSYmbS50eXBlIT09eC50eXBlKSl9c2VhcmNoKHgpe2xldCBtPXgudG9Mb3dlckNhc2UoKTtyZXR1cm4gdGhpcy5lbnRyaWVzLmZpbHRlcih2PT52Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhtKXx8di51c2VyLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobSkpfWdlbmVyYXRlSWQoKXtyZXR1cm5gYWN0aXZpdHktJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9Z2V0RmlsdGVyZWRFbnRyaWVzKCl7bGV0IHg9dGhpcy5lbnRyaWVzO2lmKHRoaXMuc2VhcmNoUXVlcnkpe2xldCBtPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTt4PXguZmlsdGVyKHY9PnYubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG0pfHx2LnVzZXIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhtKSl9cmV0dXJuKHRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlKSYmKHg9eC5maWx0ZXIobT0+ISh0aGlzLmZpbHRlckNyaXRlcmlhLnVzZXImJm0udXNlciE9PXRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlJiZtLnR5cGUhPT10aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUpKSkseH1ncm91cEVudHJpZXNCeURhdGUoeCl7bGV0IG09bmV3IE1hcCx2PW5ldyBEYXRlLHk9bmV3IERhdGUodik7eS5zZXREYXRlKHkuZ2V0RGF0ZSgpLTEpO2ZvcihsZXQgdyBvZiB4KXtsZXQgRT13LnRpbWVzdGFtcHx8bmV3IERhdGUsQzt0aGlzLmlzU2FtZURheShFLHYpP0M9IlRvZGF5Ijp0aGlzLmlzU2FtZURheShFLHkpP0M9Illlc3RlcmRheSI6Qz1FLnRvTG9jYWxlRGF0ZVN0cmluZygiZW4tVVMiLHttb250aDoic2hvcnQiLGRheToibnVtZXJpYyIseWVhcjpFLmdldEZ1bGxZZWFyKCkhPT12LmdldEZ1bGxZZWFyKCk/Im51bWVyaWMiOnZvaWQgMH0pLG0uaGFzKEMpfHxtLnNldChDLFtdKSxtLmdldChDKS5wdXNoKHcpfXJldHVybiBBcnJheS5mcm9tKG0uZW50cmllcygpKS5tYXAoKFt3LEVdKT0+KHtsYWJlbDp3LGVudHJpZXM6RX0pKX1pc1NhbWVEYXkoeCxtKXtyZXR1cm4geC5nZXRGdWxsWWVhcigpPT09bS5nZXRGdWxsWWVhcigpJiZ4LmdldE1vbnRoKCk9PT1tLmdldE1vbnRoKCkmJnguZ2V0RGF0ZSgpPT09bS5nZXREYXRlKCl9Zm9ybWF0VGltZSh4KXtyZXR1cm4geC50b0xvY2FsZVRpbWVTdHJpbmcoImVuLVVTIix7aG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0Iixob3VyMTI6ITF9KX1nZXRJY29uRm9yVHlwZSh4KXtsZXQgbT17bG9naW46Imx1Y2lkZTpsb2dJbiIsbG9nb3V0OiJsdWNpZGU6bG9nT3V0Iix2aWV3OiJsdWNpZGU6ZXllIixjcmVhdGU6Imx1Y2lkZTpwbHVzIix1cGRhdGU6Imx1Y2lkZTplZGl0IixkZWxldGU6Imx1Y2lkZTp0cmFzaDIiLGN1c3RvbToibHVjaWRlOmFjdGl2aXR5In07cmV0dXJuIG1beF18fG0uY3VzdG9tfWhhbmRsZVNlYXJjaElucHV0KHgpe2xldCBtPXgudGFyZ2V0O3RoaXMuc2VhcmNoUXVlcnk9bS52YWx1ZX1oYW5kbGVDb250ZXh0TWVudSh4LG0pe3gucHJldmVudERlZmF1bHQoKSxXdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh4LFt7bmFtZToiQ29weSBhY3Rpdml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGAke20udXNlcn0gJHttLm1lc3NhZ2V9YCl9fSx7bmFtZToiRmlsdGVyIGJ5IHVzZXIiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOmFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt1c2VyOm0udXNlcn19fSx7bmFtZToiRmlsdGVyIGJ5IHR5cGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixhY3Rpb246YXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e3R5cGU6bS50eXBlfX19LHtuYW1lOiJDbGVhciBmaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOngiLGFjdGlvbjphc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17fSx0aGlzLnNlYXJjaFF1ZXJ5PSIifX1dKX1zdGF0aWN7cWwocixhKX19O3JldHVybiBiPXJ9KSgpO2ZlKCk7dmFyIFRJdD0oKT0+e2xldCB0PVt7bmFtZToiRmlsZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXcgRmlsZSIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZS1wbHVzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBmaWxlIil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXItb3BlbiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIil9LHtuYW1lOiJPcGVuIFJlY2VudCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJwcm9qZWN0LWFscGhhLnRzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDEiKX0se25hbWU6ImNvbmZpZy5qc29uIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDIiKX0se25hbWU6InJlYWRtZS5tZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAzIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKX0se25hbWU6IlNhdmUgQXMuLi4iLHNob3J0Y3V0OiJDbWQrU2hpZnQrUyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIGFzIiksZGlzYWJsZWQ6ITB9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhpdCIsc2hvcnRjdXQ6IkNtZCtRIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkV4aXQiKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZG8iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVkbyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ3V0Iil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGaW5kIixzaG9ydGN1dDoiQ21kK0YiLGljb25OYW1lOiJzZWFyY2giLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpfSx7bmFtZToiUmVwbGFjZSIsc2hvcnRjdXQ6IkNtZCtIIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgRnVsbHNjcmVlbiIsc2hvcnRjdXQ6IkYxMSIsaWNvbk5hbWU6ImV4cGFuZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsc2NyZWVuIil9LHtuYW1lOiJab29tIEluIixzaG9ydGN1dDoiQ21kKysiLGljb25OYW1lOiJ6b29tLWluIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKX0se25hbWU6Ilpvb20gT3V0IixzaG9ydGN1dDoiQ21kKy0iLGljb25OYW1lOiJ6b29tLW91dCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIG91dCIpfSx7bmFtZToiUmVzZXQgWm9vbSIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlc2V0IHpvb20iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBzaWRlYmFyIil9LHtuYW1lOiJUb2dnbGUgVGVybWluYWwiLHNob3J0Y3V0OiJDbWQrSiIsaWNvbk5hbWU6InRlcm1pbmFsIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSB0ZXJtaW5hbCIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGljb25OYW1lOiJmaWxlLXRleHQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVsZWFzZSBub3RlcyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlcG9ydCBJc3N1ZSIsaWNvbk5hbWU6ImJ1ZyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBvcnQgaXNzdWUiKX0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpfV19XTtyZXR1cm4gTWAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIiNhcHBiYXIiKSxyPWUucXVlcnlTZWxlY3RvckFsbCgiLnN0YXR1cy10b2dnbGUgZGVlcy1idXR0b24iKTtyWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2EudXNlcj17Li4uYS51c2VyLHN0YXR1czoib25saW5lIn19KSxyWzFdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2EudXNlcj17Li4uYS51c2VyLHN0YXR1czoiYnVzeSJ9fSksclsyXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnthLnVzZXI9ey4uLmEudXNlcixzdGF0dXM6ImF3YXkifX0pLHJbM10uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS51c2VyPXsuLi5hLnVzZXIsc3RhdHVzOiJvZmZsaW5lIn19KSxlLnF1ZXJ5U2VsZWN0b3IoIi53aW5kb3ctY29udHJvbHMtdG9nZ2xlIGRlZXMtYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5zaG93V2luZG93Q29udHJvbHM9IWEuc2hvd1dpbmRvd0NvbnRyb2xzfSk7bGV0IG89ZS5xdWVyeVNlbGVjdG9yQWxsKCIuYnJlYWRjcnVtYi10b2dnbGUgZGVlcy1idXR0b24iKTtvWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2EuYnJlYWRjcnVtYnM9IkhvbWUgPiBEb2N1bWVudHMgPiBQcm9qZWN0cyA+IE15QXBwID4gc3JjID4gaW5kZXgudHMifSksb1sxXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnthLmJyZWFkY3J1bWJzPSJEYXNoYm9hcmQifSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7dGVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRlbnQgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBjb2xvcjogI2NjYzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCBsYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzg4ODsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIGlkPSJhcHBiYXIiCiAgICAgICAgLm1lbnVJdGVtcz0ke3R9CiAgICAgICAgLmJyZWFkY3J1bWJzPSR7IlByb2plY3QgPiBzcmMgPiBjb21wb25lbnRzID4gQXBwQmFyLnRzIn0KICAgICAgICAuYnJlYWRjcnVtYlNlcGFyYXRvcj0keyIgPiAifQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHshMH0KICAgICAgICAuc2hvd1NlYXJjaD0keyEwfQogICAgICAgIC50aGVtZT0keyJkYXJrIn0KICAgICAgICAudXNlcj0ke3tuYW1lOiJKb2huIERvZSIsc3RhdHVzOiJvbmxpbmUifX0KICAgICAgICBAbWVudS1zZWxlY3Q9JHtlPT5jb25zb2xlLmxvZygiTWVudSBzZWxlY3RlZDoiLGUuZGV0YWlsLml0ZW0pfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7ZT0+Y29uc29sZS5sb2coIkJyZWFkY3J1bWIgY2xpY2tlZDoiLGUuZGV0YWlsKX0KICAgICAgICBAc2VhcmNoLWNsaWNrPSR7KCk9PmNvbnNvbGUubG9nKCJTZWFyY2ggY2xpY2tlZCIpfQogICAgICAgIEB1c2VyLW1lbnUtb3Blbj0keygpPT5jb25zb2xlLmxvZygiVXNlciBtZW51IGNsaWNrZWQiKX0KICAgICAgPjwvZGVlcy1hcHB1aS1hcHBiYXI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8aDI+QXBwIEJhciBEZW1vPC9oMj4KICAgICAgICA8cD5UaGlzIGRlbW8gc2hvd3MgdmFyaW91cyBmZWF0dXJlcyBvZiB0aGUgYXBwIGJhciBjb21wb25lbnQ6PC9wPgogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT5EeW5hbWljIG1lbnUgaXRlbXMgd2l0aCBpY29ucywgc2hvcnRjdXRzLCBhbmQgc3VibWVudXM8L2xpPgogICAgICAgICAgPGxpPkJyZWFkY3J1bWIgbmF2aWdhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+VXNlciBhY2NvdW50IHNlY3Rpb24gd2l0aCBzdGF0dXMgaW5kaWNhdG9yPC9saT4KICAgICAgICAgIDxsaT5TZWFyY2ggaWNvbjwvbGk+CiAgICAgICAgICA8bGk+V2luZG93IGNvbnRyb2xzIChwbGF0Zm9ybS1zcGVjaWZpYyk8L2xpPgogICAgICAgICAgPGxpPkRhcmsvbGlnaHQgdGhlbWUgc3VwcG9ydDwvbGk+CiAgICAgICAgICA8bGk+S2V5Ym9hcmQgbmF2aWdhdGlvbiAoVGFiLCBFbnRlciwgRXNjYXBlKTwvbGk+CiAgICAgICAgICA8bGk+Q3VzdG9tIGV2ZW50cyBmb3IgYWxsIGludGVyYWN0aW9uczwvbGk+CiAgICAgICAgPC91bD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VGhlbWU8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ0aGVtZS10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RGFyazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPlVzZXIgU3RhdHVzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0ic3RhdHVzLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PbmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QnVzeTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Bd2F5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9mZmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5XaW5kb3cgQ29udHJvbHM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ3aW5kb3ctY29udHJvbHMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPkJyZWFkY3J1bWJzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0iYnJlYWRjcnVtYi10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TG9uZyBQYXRoPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNob3J0IFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfTtmZSgpO3ZhciBfSXQ9W3AuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgOmhvc3QgewogICAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIHRoZW1pbmcgKi8KICAgICAgICAtLWFwcGJhci1oZWlnaHQ6IDQwcHg7CiAgICAgICAgLS1hcHBiYXItZm9udC1zaXplOiAxMnB4OwogICAgICAgIAogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IHZhcigtLWFwcGJhci1oZWlnaHQpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tYXBwYmFyLWZvbnQtc2l6ZSk7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBkcmFnOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBuby1kcmFnOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAvKiBPcHRpb25hbDogU3R5bGUgZm9yIG1lbnUgaXRlbXMgd2l0aCBpY29ucyAobm90IHR5cGljYWxseSB1c2VkIGZvciB0b3AtbGV2ZWwgaXRlbXMpICovCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYyMCIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzAwMDAwMDIwIiwiI2ZmZmZmZjMwIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW06Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7cC5iZFRoZW1lKCIjMDAwMDAwODAiLCIjZmZmZmZmODAiKX07CiAgICAgIH0KCgogICAgICAvKiBEcm9wZG93biBzdHlsZXMgKi8KICAgICAgLmRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAke3AuYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5vcGVuIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWl0ZW0gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbTpob3ZlciwKICAgICAgLmRyb3Bkb3duLWl0ZW0uZm9jdXNlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYyMCIpfTsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbSAuc2hvcnRjdXQgewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC8qIEJyZWFkY3J1bWJzICovCiAgICAgIC5icmVhZGNydW1icyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yczsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItc2VwYXJhdG9yIHsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogQWNjb3VudCBzZWN0aW9uICovCiAgICAgIC5hY2NvdW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuc2VhcmNoLWljb246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CgogICAgICAudXNlci1pbmZvOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMDAwMDAwMjAiLCIjZmZmZmZmMzAiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMnB4OwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9ubGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzRjYWY1MDsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9mZmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM3NTc1NzU7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5idXN5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjQ0MzM2OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYXdheSB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmOTgwMDsKICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgbG9nIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmFjdGl2aXR5LXRvZ2dsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogbm8tZHJhZzsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAwMDA2MCIsIiNmZmZmZmY2MCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjE1Iil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktYmFkZ2UgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tbGVmdDogNHB4OwogICAgICAgIG1pbi13aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiM1MjUyNTIiLCIjNTI1MjUyIil9OwogICAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIH0KICAgIGBdO2ZlKCk7dmFyIEFJdD10PT5NYAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVzIj4KICAgICAgICAgICR7dC5zaG93V2luZG93Q29udHJvbHM/TWA8ZGVlcy13aW5kb3djb250cm9scz48L2RlZXMtd2luZG93Y29udHJvbHM+YDoiIn0KICAgICAgICAgICR7dC5yZW5kZXJNZW51SXRlbXMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJicmVhZGNydW1icyI+CiAgICAgICAgICAke3QucmVuZGVyQnJlYWRjcnVtYnMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvdW50Ij4KICAgICAgICAgICR7dC5yZW5kZXJBY2NvdW50U2VjdGlvbigpfQogICAgICAgIDwvZGl2PgogICAgICBgO2ZlKCk7QmUoKTt2YXIgVkRlPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sZkk9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LHpvMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtd2luZG93Y29udHJvbHMiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7cmVmbGVjdDohMH0pXSxmPVtEKHtyZWZsZWN0OiEwfSldLFZEZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJ0eXBlImluIGcsZ2V0Omc9PmcudHlwZSxzZXQ6KGcsYik9PntnLnR5cGU9Yn19LG1ldGFkYXRhOmh9LHMsbCksVkRlKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJwb3NpdGlvbiJpbiBnLGdldDpnPT5nLnBvc2l0aW9uLHNldDooZyxiKT0+e2cucG9zaXRpb249Yn19LG1ldGFkYXRhOmh9LGMsdSksVkRlKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmh9LG51bGwsYSksZD1yPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89KCk9Pk1gPGRlZXMtd2luZG93Y29udHJvbHM+PC9kZWVzLXdpbmRvd2NvbnRyb2xzPmA7I2U9ZkkodGhpcyxzLCJtYWMiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKGgpe3RoaXMuI2U9aH0jdD0oZkkodGhpcyxsKSxmSSh0aGlzLGMsImxlZnQiKSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKGgpe3RoaXMuI3Q9aH1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdiB7CiAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgcGFkZGluZzogMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICMyMjIyMjI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYuY2xvc2UgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjVmNTc7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LnRvRG9jayB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmYmQyZTsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYubWluTWF4IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjdjOTNmOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgJHt0aGlzLnR5cGU9PT0ibWFjIiYmdGhpcy5wb3NpdGlvbj09PSJsZWZ0Inx8KHRoaXMudHlwZT09PSJsaW51eCJ8fHRoaXMudHlwZT09PSJ3aW5kb3dzIikmJnRoaXMucG9zaXRpb249PT0icmlnaHQiP01gCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndpbmRvd0NvbnRyb2xzIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbG9zZSI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9Eb2NrIj48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtaW5NYXgiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6TWBgfQogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZkkodGhpcyx1KX1zdGF0aWN7ZkkocixhKX19O3JldHVybiBkPXJ9KSgpO2ZlKCk7QmUoKTt2YXIgdUk9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxxaT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sa28xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24iKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHk9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpPYmplY3R9KV0sZj1bRCh7dHlwZTpBcnJheX0pXSxkPVtEKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxiPVtEKHt0eXBlOlN0cmluZ30pXSx1SSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJ1c2VyImluIHcsZ2V0Onc9PncudXNlcixzZXQ6KHcsRSk9Pnt3LnVzZXI9RX19LG1ldGFkYXRhOnl9LHMsbCksdUkodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJtZW51SXRlbXMiaW4gdyxnZXQ6dz0+dy5tZW51SXRlbXMsc2V0Oih3LEUpPT57dy5tZW51SXRlbXM9RX19LG1ldGFkYXRhOnl9LGMsdSksdUkodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJpc09wZW4iaW4gdyxnZXQ6dz0+dy5pc09wZW4sc2V0Oih3LEUpPT57dy5pc09wZW49RX19LG1ldGFkYXRhOnl9LGgsZyksdUkodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+InBvc2l0aW9uImluIHcsZ2V0Onc9PncucG9zaXRpb24sc2V0Oih3LEUpPT57dy5wb3NpdGlvbj1FfX0sbWV0YWRhdGE6eX0seCxtKSx1SShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTp5fSxudWxsLGEpLHY9cj1lLnZhbHVlLHkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eX0pfXN0YXRpYyBkZW1vPSgpPT5NYAogICAgPGRlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duCiAgICAgIC51c2VyPSR7e25hbWU6IkpvaG4gRG9lIixlbWFpbDoiam9obi5kb2VAZXhhbXBsZS5jb20iLGF2YXRhcjoiaHR0cHM6Ly9yYW5kb211c2VyLm1lL2FwaS9wb3J0cmFpdHMvbWVuLzEuanBnIixzdGF0dXM6Im9ubGluZSJ9fQogICAgICAubWVudUl0ZW1zPSR7W3tuYW1lOiJQcm9maWxlIFNldHRpbmdzIixpY29uTmFtZToidXNlciIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIil9LHtuYW1lOiJBY2NvdW50IixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQWNjb3VudCIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAgJiBTdXBwb3J0IixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJIZWxwIil9LHtuYW1lOiJLZXlib2FyZCBTaG9ydGN1dHMiLGljb25OYW1lOiJrZXlib2FyZCIsc2hvcnRjdXQ6IkNtZCtLIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibG9nT3V0IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNpZ24gb3V0Iil9XX0KICAgICAgLmlzT3Blbj0keyEwfQogICAgPjwvZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24+CiAgYDtzdGF0aWMgZGVtb0dyb3VwPSJBcHAgVUkiOyNlPXFpKHRoaXMscyx2b2lkIDApO2dldCB1c2VyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHVzZXIoeSl7dGhpcy4jZT15fSN0PShxaSh0aGlzLGwpLHFpKHRoaXMsYyxbXSkpO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWVudUl0ZW1zKHkpe3RoaXMuI3Q9eX0jYT0ocWkodGhpcyx1KSxxaSh0aGlzLGgsITEpKTtnZXQgaXNPcGVuKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzT3Blbih5KXt0aGlzLiNhPXl9I3I9KHFpKHRoaXMsZykscWkodGhpcyx4LCJ0b3AtcmlnaHQiKSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHBvc2l0aW9uKHkpe3RoaXMuI3I9eX1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1pbi13aWR0aDogMjIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtwLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHotaW5kZXg6ICR7WDEub3ZlcmxheS5kcm9wZG93bn07CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtpc29wZW5dKSAuZHJvcGRvd24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuYmFja2Ryb3AgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFBvc2l0aW9uIHZhcmlhbnRzICovCiAgICAgIC5kcm9wZG93bi50b3AtcmlnaHQgewogICAgICAgIHRvcDogMTAwJTsKICAgICAgICByaWdodDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi50b3AtbGVmdCB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24uYm90dG9tLXJpZ2h0IHsKICAgICAgICBib3R0b206IDEwMCU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24uYm90dG9tLWxlZnQgewogICAgICAgIGJvdHRvbTogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLyogVXNlciBzZWN0aW9uICovCiAgICAgIC51c2VyLXNlY3Rpb24gewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgfQoKICAgICAgLnVzZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vbmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM0Y2FmNTA7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5vZmZsaW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNzU3NTc1OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYnVzeSB7CiAgICAgICAgYmFja2dyb3VuZDogI2Y0NDMzNjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmF3YXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmZjk4MDA7CiAgICAgIH0KCiAgICAgIC51c2VyLWRldGFpbHMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudXNlci1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLnVzZXItZW1haWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgc2VjdGlvbiAqLwogICAgICAubWVudS1zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLm1lbnUtc2hvcnRjdXQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KCiAgICAgIC8qIEJhY2tkcm9wIGZvciBtb2JpbGUgKi8KICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmJhY2tkcm9wIHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogMDsKICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICByaWdodDogMDsKICAgICAgICAgIGJvdHRvbTogMDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgICAgICAgIHotaW5kZXg6ICR7WDEuYmFja2Ryb3AuZHJvcGRvd259OwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbaXNvcGVuXSkgLmJhY2tkcm9wIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmRyb3Bkb3duIHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgcmlnaHQ6IGF1dG87CiAgICAgICAgICBib3R0b206IGF1dG87CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwLjk1KTsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpOwogICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDMycHgpOwogICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbaXNvcGVuXSkgLmRyb3Bkb3duIHsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEpOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9ImJhY2tkcm9wIiBAY2xpY2s9JHsoKT0+dGhpcy5jbG9zZSgpfT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24gJHt0aGlzLnBvc2l0aW9ufSI+CiAgICAgICAgJHt0aGlzLnVzZXI/TWAKICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItaW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuYXZhdGFyP01gPGltZyBzcmM9IiR7dGhpcy51c2VyLmF2YXRhcn0iIGFsdD0iJHt0aGlzLnVzZXIubmFtZX0iPmA6dGhpcy5nZXRJbml0aWFscyh0aGlzLnVzZXIubmFtZSl9CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5zdGF0dXM/TWAKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItZGV0YWlscyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLW5hbWUiPiR7dGhpcy51c2VyLm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5lbWFpbD9NYAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWVtYWlsIj4ke3RoaXMudXNlci5lbWFpbH08L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51LXNlY3Rpb24iPgogICAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5tYXAoeT0+dGhpcy5yZW5kZXJNZW51SXRlbSh5KSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJNZW51SXRlbSh5KXtpZigiZGl2aWRlciJpbiB5JiZ5LmRpdmlkZXIpcmV0dXJuIE1gPGRpdiBjbGFzcz0ibWVudS1kaXZpZGVyIj48L2Rpdj5gO2xldCB3PXk7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9Im1lbnUtaXRlbSIgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlTWVudUNsaWNrKHcpfT4KICAgICAgICAke3cuaWNvbk5hbWU/TWAKICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7YGx1Y2lkZToke3cuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnUtaXRlbS10ZXh0Ij4ke3cubmFtZX08L3NwYW4+CiAgICAgICAgJHt3LnNob3J0Y3V0P01gCiAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudS1zaG9ydGN1dCI+JHt3LnNob3J0Y3V0fTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0SW5pdGlhbHMoeSl7cmV0dXJuIHkuc3BsaXQoIiAiKS5tYXAodz0+d1swXSkuam9pbigiIikudG9VcHBlckNhc2UoKS5zbGljZSgwLDIpfWFzeW5jIGhhbmRsZU1lbnVDbGljayh5KXthd2FpdCB5LmFjdGlvbigpLHRoaXMuY2xvc2UoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTp5fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfW9wZW4oKXt0aGlzLmlzT3Blbj0hMH1jbG9zZSgpe3RoaXMuaXNPcGVuPSExfXRvZ2dsZSgpe3RoaXMuaXNPcGVuPSF0aGlzLmlzT3Blbn1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2s9dGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2suYmluZCh0aGlzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2spfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2spfWhhbmRsZU91dHNpZGVDbGljayh5KXtpZih0aGlzLmlzT3BlbiYmIXRoaXMuY29udGFpbnMoeS50YXJnZXQpKXtsZXQgdz10aGlzLnBhcmVudEVsZW1lbnQ7aWYodyYmdy5jb250YWlucyh5LnRhcmdldCkpcmV0dXJuO3RoaXMuY2xvc2UoKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHFpKHRoaXMsbSl9c3RhdGlje3FpKHIsYSl9fTtyZXR1cm4gdj1yfSkoKTtmZSgpO1N0KCk7RnQoKTt2YXIgVDI9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxSdD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sU28xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1hcHB1aS1hcHBiYXIiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXSx2LHk9W10sdz1bXSxFLEM9W10sej1bXSxQLF89W10sJD1bXSxILEw9W10saz1bXSxOLFM9W10sVD1bXSxSLEE9W10sRj1bXSxhZSxWPVtdLFNlPVtdLHplLFc9W10sTmU9W10sUmUsWD1bXSxJPVtdLE8sRz1bXSxqPVtdLHNlLGtlPVtdLERlPVtdO3ZhciBPZT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IFU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpBcnJheX0pXSxmPVtEKHt0eXBlOlN0cmluZ30pXSxkPVtEKHt0eXBlOlN0cmluZ30pXSxiPVtEKHt0eXBlOkJvb2xlYW59KV0sdj1bRCh7dHlwZTpPYmplY3R9KV0sRT1bRCh7dHlwZTpBcnJheX0pXSxQPVtEKHt0eXBlOkJvb2xlYW59KV0sSD1bRCh7dHlwZTpCb29sZWFufSldLE49W0Qoe3R5cGU6TnVtYmVyfSldLFI9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxhZT1bbGUoKV0semU9W2xlKCldLFJlPVtsZSgpXSxPPVtsZSgpXSxzZT1bbGUoKV0sVDIodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJtZW51SXRlbXMiaW4gQixnZXQ6Qj0+Qi5tZW51SXRlbXMsc2V0OihCLG9lKT0+e0IubWVudUl0ZW1zPW9lfX0sbWV0YWRhdGE6VX0scyxsKSxUMih0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJyZWFkY3J1bWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpCPT4iYnJlYWRjcnVtYnMiaW4gQixnZXQ6Qj0+Qi5icmVhZGNydW1icyxzZXQ6KEIsb2UpPT57Qi5icmVhZGNydW1icz1vZX19LG1ldGFkYXRhOlV9LGMsdSksVDIodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJicmVhZGNydW1iU2VwYXJhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpCPT4iYnJlYWRjcnVtYlNlcGFyYXRvciJpbiBCLGdldDpCPT5CLmJyZWFkY3J1bWJTZXBhcmF0b3Isc2V0OihCLG9lKT0+e0IuYnJlYWRjcnVtYlNlcGFyYXRvcj1vZX19LG1ldGFkYXRhOlV9LGgsZyksVDIodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V2luZG93Q29udHJvbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJzaG93V2luZG93Q29udHJvbHMiaW4gQixnZXQ6Qj0+Qi5zaG93V2luZG93Q29udHJvbHMsc2V0OihCLG9lKT0+e0Iuc2hvd1dpbmRvd0NvbnRyb2xzPW9lfX0sbWV0YWRhdGE6VX0seCxtKSxUMih0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJ1c2VyImluIEIsZ2V0OkI9PkIudXNlcixzZXQ6KEIsb2UpPT57Qi51c2VyPW9lfX0sbWV0YWRhdGE6VX0seSx3KSxUMih0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2ZpbGVNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJwcm9maWxlTWVudUl0ZW1zImluIEIsZ2V0OkI9PkIucHJvZmlsZU1lbnVJdGVtcyxzZXQ6KEIsb2UpPT57Qi5wcm9maWxlTWVudUl0ZW1zPW9lfX0sbWV0YWRhdGE6VX0sQyx6KSxUMih0aGlzLG51bGwsUCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJzaG93U2VhcmNoImluIEIsZ2V0OkI9PkIuc2hvd1NlYXJjaCxzZXQ6KEIsb2UpPT57Qi5zaG93U2VhcmNoPW9lfX0sbWV0YWRhdGE6VX0sXywkKSxUMih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dBY3Rpdml0eUxvZ1RvZ2dsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Qj0+InNob3dBY3Rpdml0eUxvZ1RvZ2dsZSJpbiBCLGdldDpCPT5CLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZSxzZXQ6KEIsb2UpPT57Qi5zaG93QWN0aXZpdHlMb2dUb2dnbGU9b2V9fSxtZXRhZGF0YTpVfSxMLGspLFQyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Qj0+ImFjdGl2aXR5TG9nQ291bnQiaW4gQixnZXQ6Qj0+Qi5hY3Rpdml0eUxvZ0NvdW50LHNldDooQixvZSk9PntCLmFjdGl2aXR5TG9nQ291bnQ9b2V9fSxtZXRhZGF0YTpVfSxTLFQpLFQyKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJhY3Rpdml0eUxvZ0FjdGl2ZSJpbiBCLGdldDpCPT5CLmFjdGl2aXR5TG9nQWN0aXZlLHNldDooQixvZSk9PntCLmFjdGl2aXR5TG9nQWN0aXZlPW9lfX0sbWV0YWRhdGE6VX0sQSxGKSxUMih0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVNZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpCPT4iYWN0aXZlTWVudSJpbiBCLGdldDpCPT5CLmFjdGl2ZU1lbnUsc2V0OihCLG9lKT0+e0IuYWN0aXZlTWVudT1vZX19LG1ldGFkYXRhOlV9LFYsU2UpLFQyKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5Ecm9wZG93bnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJvcGVuRHJvcGRvd25zImluIEIsZ2V0OkI9PkIub3BlbkRyb3Bkb3ducyxzZXQ6KEIsb2UpPT57Qi5vcGVuRHJvcGRvd25zPW9lfX0sbWV0YWRhdGE6VX0sVyxOZSksVDIodGhpcyxudWxsLFJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZm9jdXNlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJmb2N1c2VkSXRlbSJpbiBCLGdldDpCPT5CLmZvY3VzZWRJdGVtLHNldDooQixvZSk9PntCLmZvY3VzZWRJdGVtPW9lfX0sbWV0YWRhdGE6VX0sWCxJKSxUMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvY3VzZWREcm9wZG93bkl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJmb2N1c2VkRHJvcGRvd25JdGVtImluIEIsZ2V0OkI9PkIuZm9jdXNlZERyb3Bkb3duSXRlbSxzZXQ6KEIsb2UpPT57Qi5mb2N1c2VkRHJvcGRvd25JdGVtPW9lfX0sbWV0YWRhdGE6VX0sRyxqKSxUMih0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Byb2ZpbGVEcm9wZG93bk9wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJpc1Byb2ZpbGVEcm9wZG93bk9wZW4iaW4gQixnZXQ6Qj0+Qi5pc1Byb2ZpbGVEcm9wZG93bk9wZW4sc2V0OihCLG9lKT0+e0IuaXNQcm9maWxlRHJvcGRvd25PcGVuPW9lfX0sbWV0YWRhdGE6VX0sa2UsRGUpLFQyKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOlV9LG51bGwsYSksT2U9cj1lLnZhbHVlLFUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VX0pfXN0YXRpYyBkZW1vPVRJdDtzdGF0aWMgZGVtb0dyb3VwPSJBcHAgVUkiOyNlPVJ0KHRoaXMscyxbXSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNlfXNldCBtZW51SXRlbXMoVSl7dGhpcy4jZT1VfSN0PShSdCh0aGlzLGwpLFJ0KHRoaXMsYywiIikpO2dldCBicmVhZGNydW1icygpe3JldHVybiB0aGlzLiN0fXNldCBicmVhZGNydW1icyhVKXt0aGlzLiN0PVV9I2E9KFJ0KHRoaXMsdSksUnQodGhpcyxoLCIgPiAiKSk7Z2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYnJlYWRjcnVtYlNlcGFyYXRvcihVKXt0aGlzLiNhPVV9I3I9KFJ0KHRoaXMsZyksUnQodGhpcyx4LCEwKSk7Z2V0IHNob3dXaW5kb3dDb250cm9scygpe3JldHVybiB0aGlzLiNyfXNldCBzaG93V2luZG93Q29udHJvbHMoVSl7dGhpcy4jcj1VfSNpPShSdCh0aGlzLG0pLFJ0KHRoaXMseSx2b2lkIDApKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNpfXNldCB1c2VyKFUpe3RoaXMuI2k9VX0jbz0oUnQodGhpcyx3KSxSdCh0aGlzLEMsW10pKTtnZXQgcHJvZmlsZU1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNvfXNldCBwcm9maWxlTWVudUl0ZW1zKFUpe3RoaXMuI289VX0jcz0oUnQodGhpcyx6KSxSdCh0aGlzLF8sITEpKTtnZXQgc2hvd1NlYXJjaCgpe3JldHVybiB0aGlzLiNzfXNldCBzaG93U2VhcmNoKFUpe3RoaXMuI3M9VX0jbj0oUnQodGhpcywkKSxSdCh0aGlzLEwsITEpKTtnZXQgc2hvd0FjdGl2aXR5TG9nVG9nZ2xlKCl7cmV0dXJuIHRoaXMuI259c2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZShVKXt0aGlzLiNuPVV9I2w9KFJ0KHRoaXMsayksUnQodGhpcyxTLDApKTtnZXQgYWN0aXZpdHlMb2dDb3VudCgpe3JldHVybiB0aGlzLiNsfXNldCBhY3Rpdml0eUxvZ0NvdW50KFUpe3RoaXMuI2w9VX0jYz0oUnQodGhpcyxUKSxSdCh0aGlzLEEsITEpKTtnZXQgYWN0aXZpdHlMb2dBY3RpdmUoKXtyZXR1cm4gdGhpcy4jY31zZXQgYWN0aXZpdHlMb2dBY3RpdmUoVSl7dGhpcy4jYz1VfSNkPShSdCh0aGlzLEYpLFJ0KHRoaXMsVixudWxsKSk7Z2V0IGFjdGl2ZU1lbnUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlTWVudShVKXt0aGlzLiNkPVV9I2Y9KFJ0KHRoaXMsU2UpLFJ0KHRoaXMsVyxuZXcgU2V0KSk7Z2V0IG9wZW5Ecm9wZG93bnMoKXtyZXR1cm4gdGhpcy4jZn1zZXQgb3BlbkRyb3Bkb3ducyhVKXt0aGlzLiNmPVV9I3U9KFJ0KHRoaXMsTmUpLFJ0KHRoaXMsWCxudWxsKSk7Z2V0IGZvY3VzZWRJdGVtKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGZvY3VzZWRJdGVtKFUpe3RoaXMuI3U9VX0jcD0oUnQodGhpcyxJKSxSdCh0aGlzLEcsLTEpKTtnZXQgZm9jdXNlZERyb3Bkb3duSXRlbSgpe3JldHVybiB0aGlzLiNwfXNldCBmb2N1c2VkRHJvcGRvd25JdGVtKFUpe3RoaXMuI3A9VX0jaD0oUnQodGhpcyxqKSxSdCh0aGlzLGtlLCExKSk7Z2V0IGlzUHJvZmlsZURyb3Bkb3duT3Blbigpe3JldHVybiB0aGlzLiNofXNldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4oVSl7dGhpcy4jaD1VfXN0YXRpYyBzdHlsZXM9X0l0O3JlbmRlcigpe3JldHVybiBBSXQodGhpcyl9cmVuZGVyTWVudUl0ZW1zKCl7cmV0dXJuIE1gCiAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKChVLEIpPT50aGlzLnJlbmRlck1lbnVJdGVtKFUsYG1lbnUtJHtCfWApKX0KICAgIGB9cmVuZGVyTWVudUl0ZW0oVSxCKXtpZigiZGl2aWRlciJpbiBVJiZVLmRpdmlkZXIpcmV0dXJuIE1gPGRpdiBjbGFzcz0iZHJvcGRvd24tZGl2aWRlciI+PC9kaXY+YDtsZXQgb2U9VSx2ZT10aGlzLmFjdGl2ZU1lbnU9PT1CLHllPW9lLnN1Ym1lbnUmJm9lLnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIE1gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gJHt2ZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7b2UuZGlzYWJsZWR9CiAgICAgICAgdGFiaW5kZXg9IiR7b2UuZGlzYWJsZWQ/LTE6MH0iCiAgICAgICAgZGF0YS1pdGVtLWlkPSIke0J9IgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1lbnVDbGljayhvZSxCKX0KICAgICAgICBAa2V5ZG93bj0keyRlPT50aGlzLmhhbmRsZU1lbnVLZXlkb3duKCRlLG9lLEIpfQogICAgICAgIHJvbGU9Im1lbnVpdGVtIgogICAgICAgIGFyaWEtaGFzcG9wdXA9IiR7eWV9IgogICAgICAgIGFyaWEtZXhwYW5kZWQ9IiR7dmV9IgogICAgICA+CiAgICAgICAgJHtvZS5pY29uTmFtZT9NYDxkZWVzLWljb24gLmljb249IiR7YGx1Y2lkZToke29lLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICR7b2UubmFtZX0KICAgICAgICAke3llP3RoaXMucmVuZGVyRHJvcGRvd24ob2Uuc3VibWVudSxCLHZlKToiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRyb3Bkb3duKFUsQixvZSl7cmV0dXJuIE1gCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImRyb3Bkb3duICR7b2U/Im9wZW4iOiIifSIgCiAgICAgICAgQGNsaWNrPSR7dmU9PnZlLnN0b3BQcm9wYWdhdGlvbigpfQogICAgICAgIEBrZXlkb3duPSR7dmU9PnRoaXMuaGFuZGxlRHJvcGRvd25LZXlkb3duKHZlLFUsQil9CiAgICAgICAgdGFiaW5kZXg9IiR7b2U/MDotMX0iCiAgICAgICAgcm9sZT0ibWVudSIKICAgICAgPgogICAgICAgICR7VS5tYXAoKHZlLHllKT0+dGhpcy5yZW5kZXJEcm9wZG93bkl0ZW0odmUsYCR7Qn0tJHt5ZX1gKSl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bkl0ZW0oVSxCKXtpZigiZGl2aWRlciJpbiBVJiZVLmRpdmlkZXIpcmV0dXJuIE1gPGRpdiBjbGFzcz0iZHJvcGRvd24tZGl2aWRlciI+PC9kaXY+YDtsZXQgb2U9VSx2ZT1wYXJzZUludChCLnNwbGl0KCItIikucG9wKCl8fCIwIikseWU9dGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPT09dmU7cmV0dXJuIE1gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSAke3llPyJmb2N1c2VkIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7b2UuZGlzYWJsZWR9CiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2sob2UpfQogICAgICAgIEBtb3VzZWVudGVyPSR7KCk9PnRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT12ZX0KICAgICAgICByb2xlPSJtZW51aXRlbSIKICAgICAgICB0YWJpbmRleD0iJHtvZS5kaXNhYmxlZD8tMTowfSIKICAgICAgPgogICAgICAgICR7b2UuaWNvbk5hbWU/TWA8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtvZS5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3Bhbj4ke29lLm5hbWV9PC9zcGFuPgogICAgICAgICR7b2Uuc2hvcnRjdXQ/TWA8c3BhbiBjbGFzcz0ic2hvcnRjdXQiPiR7b2Uuc2hvcnRjdXR9PC9zcGFuPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJCcmVhZGNydW1icygpe2lmKCF0aGlzLmJyZWFkY3J1bWJzKXJldHVybiBNYGA7bGV0IFU9dGhpcy5icmVhZGNydW1icy5zcGxpdCh0aGlzLmJyZWFkY3J1bWJTZXBhcmF0b3IpO3JldHVybiBNYAogICAgICAke1UubWFwKChCLG9lKT0+TWAKICAgICAgICAke29lPjA/TWA8c3BhbiBjbGFzcz0iYnJlYWRjcnVtYi1zZXBhcmF0b3IiPiR7dGhpcy5icmVhZGNydW1iU2VwYXJhdG9yfTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIAogICAgICAgICAgY2xhc3M9ImJyZWFkY3J1bWItaXRlbSIgCiAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVCcmVhZGNydW1iQ2xpY2soQixvZSl9CiAgICAgICAgPgogICAgICAgICAgJHtCfQogICAgICAgIDwvc3Bhbj4KICAgICAgYCl9CiAgICBgfXJlbmRlckFjY291bnRTZWN0aW9uKCl7cmV0dXJuIE1gCiAgICAgICR7dGhpcy5zaG93U2VhcmNoP01gCiAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgY2xhc3M9InNlYXJjaC1pY29uIgogICAgICAgICAgLmljb249JHsibHVjaWRlOnNlYXJjaCJ9CiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlYXJjaENsaWNrfQogICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnVzZXI/TWAKICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItaW5mbyIgQGNsaWNrPSR7dGhpcy5oYW5kbGVVc2VyQ2xpY2t9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWF2YXRhciI+CiAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuYXZhdGFyP01gPGltZyBzcmM9IiR7dGhpcy51c2VyLmF2YXRhcn0iIGFsdD0iJHt0aGlzLnVzZXIubmFtZX0iPmA6TWAke3RoaXMudXNlci5uYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfWB9CiAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuc3RhdHVzP01gCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXN0YXR1cyAke3RoaXMudXNlci5zdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHNwYW4+JHt0aGlzLnVzZXIubmFtZX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bgogICAgICAgICAgICAudXNlcj0ke3RoaXMudXNlcn0KICAgICAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMucHJvZmlsZU1lbnVJdGVtc30KICAgICAgICAgICAgLmlzT3Blbj0ke3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVufQogICAgICAgICAgICAucG9zaXRpb249JHsidG9wLXJpZ2h0In0KICAgICAgICAgICAgQG1lbnUtc2VsZWN0PSR7VT0+dGhpcy5oYW5kbGVQcm9maWxlTWVudVNlbGVjdChVKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAke3RoaXMuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlP01gCiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImFjdGl2aXR5LXRvZ2dsZSAke3RoaXMuYWN0aXZpdHlMb2dBY3RpdmU/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVBY3Rpdml0eVRvZ2dsZX0KICAgICAgICAgIHRpdGxlPSJBY3Rpdml0eSBMb2ciCiAgICAgICAgPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6YWN0aXZpdHkifT48L2RlZXMtaWNvbj4KICAgICAgICAgICR7dGhpcy5hY3Rpdml0eUxvZ0NvdW50PjA/TWAKICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFjdGl2aXR5LWJhZGdlIj4ke3RoaXMuYWN0aXZpdHlMb2dDb3VudD45OT8iOTkrIjp0aGlzLmFjdGl2aXR5TG9nQ291bnR9PC9zcGFuPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9aGFuZGxlTWVudUNsaWNrKFUsQil7VS5kaXNhYmxlZHx8KFUuc3VibWVudSYmVS5zdWJtZW51Lmxlbmd0aD4wP3RoaXMuYWN0aXZlTWVudT09PUI/dGhpcy5hY3RpdmVNZW51PW51bGw6dGhpcy5hY3RpdmVNZW51PUI6KHRoaXMuYWN0aXZlTWVudT1udWxsLFUuYWN0aW9uJiZVLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOlV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpKX1oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhVKXtVLmRpc2FibGVkfHwodGhpcy5hY3RpdmVNZW51PW51bGwsVS5hY3Rpb24mJlUuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWVudS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06VX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9aGFuZGxlTWVudUtleWRvd24oVSxCLG9lKXtzd2l0Y2goVS5rZXkpe2Nhc2UiRW50ZXIiOmNhc2UiICI6VS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlTWVudUNsaWNrKEIsb2UpO2JyZWFrO2Nhc2UiQXJyb3dEb3duIjppZihCLnN1Ym1lbnUmJnRoaXMuYWN0aXZlTWVudT09PW9lKXtVLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPTA7bGV0IHZlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQi5zdWJtZW51LC0xLDEpO3ZlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09dmUsc2V0VGltZW91dCgoKT0+e2xldCB5ZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiLmRyb3Bkb3duLm9wZW4iKTt5ZSYmeWUuZm9jdXMoKX0sMCkpfWJyZWFrO2Nhc2UiRXNjYXBlIjp0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTE7YnJlYWs7Y2FzZSJUYWIiOnRoaXMuYWN0aXZlTWVudT09PW9lJiYodGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xKTticmVhaztjYXNlIkFycm93UmlnaHQiOlUucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE1lbnVJdGVtKG9lLDEpO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0IjpVLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRNZW51SXRlbShvZSwtMSk7YnJlYWt9fWhhbmRsZUJyZWFkY3J1bWJDbGljayhVLEIpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJyZWFkY3J1bWItbmF2aWdhdGUiLHtkZXRhaWw6e2JyZWFkY3J1bWI6VSxpbmRleDpCfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlYXJjaENsaWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNsaWNrIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBY3Rpdml0eVRvZ2dsZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFjdGl2aXR5LXRvZ2dsZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlVXNlckNsaWNrKCl7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49IXRoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVzZXItbWVudS1vcGVuIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVQcm9maWxlTWVudVNlbGVjdChVKXt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbj0hMSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwcm9maWxlLW1lbnUtc2VsZWN0Iix7ZGV0YWlsOlUuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlR2xvYmFsQ2xpY2spLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZURvY3VtZW50Q2xpY2spfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1oYW5kbGVHbG9iYWxDbGljaz0oUnQodGhpcyxEZSksVT0+e1Uuc3RvcFByb3BhZ2F0aW9uKCl9KTtoYW5kbGVEb2N1bWVudENsaWNrPSgpPT57dGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xfTtoYW5kbGVEcm9wZG93bktleWRvd24oVSxCLG9lKXtsZXQgdmU9Qi5maWx0ZXIoeWU9PiEoImRpdmlkZXIiaW4geWUmJnllLmRpdmlkZXIpKTtzd2l0Y2goVS5rZXkpe2Nhc2UiQXJyb3dEb3duIjpVLnByZXZlbnREZWZhdWx0KCk7bGV0IHllPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQix0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0sMSk7eWUhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT15ZSk7YnJlYWs7Y2FzZSJBcnJvd1VwIjpVLnByZXZlbnREZWZhdWx0KCk7bGV0ICRlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQix0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0sLTEpOyRlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09JGUpO2JyZWFrO2Nhc2UiRW50ZXIiOmlmKFUucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0hPT0tMSl7bGV0IEVlPXZlW3RoaXMuZm9jdXNlZERyb3Bkb3duSXRlbV07RWUmJiJhY3Rpb24iaW4gRWUmJiFFZS5kaXNhYmxlZCYmdGhpcy5oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhFZSl9YnJlYWs7Y2FzZSJIb21lIjpVLnByZXZlbnREZWZhdWx0KCk7bGV0IG5lPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oQiwtMSwxKTtuZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPW5lKTticmVhaztjYXNlIkVuZCI6VS5wcmV2ZW50RGVmYXVsdCgpO2xldCByZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEIsQi5sZW5ndGgsLTEpO3JlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09cmUpO2JyZWFrO2Nhc2UiRXNjYXBlIjpVLnByZXZlbnREZWZhdWx0KCksdGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2xldCBnZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiLm1lbnVJdGVtLmFjdGl2ZSIpO2dlJiZnZS5mb2N1cygpO2JyZWFrfX1maW5kTmV4dFZhbGlkSXRlbShVLEIsb2Upe2xldCB2ZT1CK29lO2Zvcig7dmU+PTAmJnZlPFUubGVuZ3RoOyl7bGV0IHllPVVbdmVdO2lmKCEoImRpdmlkZXIiaW4geWUmJnllLmRpdmlkZXIpJiYhKCJkaXNhYmxlZCJpbiB5ZSYmeWUuZGlzYWJsZWQpKXJldHVybiB2ZTt2ZSs9b2V9cmV0dXJuLTF9Zm9jdXNOZXh0TWVudUl0ZW0oVSxCKXtsZXQgb2U9QXJyYXkuZnJvbSh0aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvckFsbCgiLm1lbnVJdGVtIikpLHZlPW9lLmZpbmRJbmRleChuZT0+bmUuZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0taWQiKT09PVUpO2lmKHZlPT09LTEpcmV0dXJuO2xldCB5ZT12ZStCO3llPDA/eWU9b2UubGVuZ3RoLTE6eWU+PW9lLmxlbmd0aCYmKHllPTApO2xldCAkZT0wO2Zvcig7JGU8b2UubGVuZ3RoOyl7bGV0IG5lPW9lW3llXTtpZighbmUuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpKXtuZS5mb2N1cygpLHRoaXMuYWN0aXZlTWVudSYmKHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMSk7YnJlYWt9eWU9KHllK0Irb2UubGVuZ3RoKSVvZS5sZW5ndGgsJGUrK319c3RhdGlje1J0KHIsYSl9fTtyZXR1cm4gT2U9cn0pKCk7ZmUoKTt2YXIgJEl0LERJdD0oKT0+TSgkSXR8fCgkSXQ9aGMoW2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1sYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzczNzM3MzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ib3R0b21iYXItd3JhcHBlciB7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCAwJSAyMCUpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Qm90dG9tIGJhciB3aXRoIHN0YXR1cyB3aWRnZXRzIGFuZCBhY3Rpb25zPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWJvdHRvbWJhci13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyCiAgICAgICAgICAgICAgaWQ9ImRlbW8tYm90dG9tYmFyIgogICAgICAgICAgICA+PC9kZWVzLWFwcHVpLWJvdHRvbWJhcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1sYWJlbCI+Q29udHJvbHM8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7Ij4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRTdWNjZXNzV2lkZ2V0KCkiPkFkZCBTdWNjZXNzIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFdhcm5pbmdXaWRnZXQoKSI+QWRkIFdhcm5pbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkRXJyb3JXaWRnZXQoKSI+QWRkIEVycm9yIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZExvYWRpbmdXaWRnZXQoKSI+QWRkIExvYWRpbmcgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkUmlnaHRXaWRnZXQoKSI+QWRkIFJpZ2h0IFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZEFjdGlvbigpIj5BZGQgQWN0aW9uPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iY2xlYXJBbGwoKSI+Q2xlYXIgQWxsPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KICAgICAgICBjb25zdCBib3R0b21iYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVtby1ib3R0b21iYXInKTsKCiAgICAgICAgLy8gV2FpdCBmb3IgY29tcG9uZW50IHRvIGluaXRpYWxpemUKICAgICAgICBhd2FpdCBib3R0b21iYXIudXBkYXRlQ29tcGxldGU7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIHdpZGdldHMKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnc3RhdHVzJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmFjdGl2aXR5JywKICAgICAgICAgIGxhYmVsOiAnU3lzdGVtIE9ubGluZScsCiAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJywKICAgICAgICAgIHRvb2x0aXA6ICdBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnU3RhdHVzIGNsaWNrZWQnKSwKICAgICAgICAgIGNvbnRleHRNZW51SXRlbXM6IFsKICAgICAgICAgICAgeyBuYW1lOiAnVmlldyBEZXRhaWxzJywgaWNvbk5hbWU6ICdsdWNpZGU6aW5mbycsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ1N5c3RlbSBkZXRhaWxzJykgfSwKICAgICAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sCiAgICAgICAgICAgIHsgbmFtZTogJ1JlZnJlc2ggU3RhdHVzJywgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaEN3JywgYWN0aW9uOiAoKSA9PiBhbGVydCgnUmVmcmVzaGluZy4uLicpIH0sCiAgICAgICAgICBdLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAnbm90aWZpY2F0aW9ucycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpiZWxsJywKICAgICAgICAgIGxhYmVsOiAnMyBub3RpZmljYXRpb25zJywKICAgICAgICAgIHN0YXR1czogJ3dhcm5pbmcnLAogICAgICAgICAgdG9vbHRpcDogJ1lvdSBoYXZlIHVucmVhZCBub3RpZmljYXRpb25zJywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdOb3RpZmljYXRpb25zIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICBpZDogJ3ZlcnNpb24nLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Z2l0QnJhbmNoJywKICAgICAgICAgIGxhYmVsOiAndjEuMi4zJywKICAgICAgICAgIHRvb2x0aXA6ICdDdXJyZW50IHZlcnNpb24nLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnVmVyc2lvbiBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIC8vIEFkZCBpbml0aWFsIGFjdGlvbnMKICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgIGlkOiAnc2V0dGluZ3MnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6c2V0dGluZ3MnLAogICAgICAgICAgdG9vbHRpcDogJ1NldHRpbmdzJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gYWxlcnQoJ1NldHRpbmdzIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZEFjdGlvbih7CiAgICAgICAgICBpZDogJ2hlbHAnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aGVscENpcmNsZScsCiAgICAgICAgICB0b29sdGlwOiAnSGVscCcsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFsZXJ0KCdIZWxwIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgLy8gRGVtbyBjb250cm9sIGZ1bmN0aW9ucwogICAgICAgIGxldCB3aWRnZXRDb3VudGVyID0gMDsKICAgICAgICBsZXQgYWN0aW9uQ291bnRlciA9IDA7CgogICAgICAgIHdpbmRvdy5hZGRTdWNjZXNzV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnc3VjY2Vzcy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2tDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ1N1Y2Nlc3MgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICB0b29sdGlwOiAnU3VjY2VzcyB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdzdWNjZXNzLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRXYXJuaW5nV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnd2FybmluZy0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YWxlcnRUcmlhbmdsZScsCiAgICAgICAgICAgIGxhYmVsOiAnV2FybmluZyAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnd2FybmluZycsCiAgICAgICAgICAgIHRvb2x0aXA6ICdXYXJuaW5nIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3dhcm5pbmctJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZEVycm9yV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAnZXJyb3ItJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnhDaXJjbGUnLAogICAgICAgICAgICBsYWJlbDogJ0Vycm9yICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsCiAgICAgICAgICAgIHRvb2x0aXA6ICdFcnJvciB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdlcnJvci0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkTG9hZGluZ1dpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGNvbnN0IGlkID0gJ2xvYWRpbmctJyArIHdpZGdldENvdW50ZXI7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6IGlkLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpsb2FkZXIyJywKICAgICAgICAgICAgbGFiZWw6ICdMb2FkaW5nLi4uJywKICAgICAgICAgICAgc3RhdHVzOiAnYWN0aXZlJywKICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgICAgICAgdG9vbHRpcDogJ0xvYWRpbmcgaW4gcHJvZ3Jlc3MnLAogICAgICAgICAgfSk7CgogICAgICAgICAgLy8gU2ltdWxhdGUgY29tcGxldGlvbiBhZnRlciAzIHNlY29uZHMKICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICBib3R0b21iYXIudXBkYXRlV2lkZ2V0KGlkLCB7CiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y2hlY2snLAogICAgICAgICAgICAgIGxhYmVsOiAnRG9uZSEnLAogICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sIDMwMDApOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRSaWdodFdpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTppbmZvJywKICAgICAgICAgICAgbGFiZWw6ICdSaWdodCAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRBY3Rpb24gPSAoKSA9PiB7CiAgICAgICAgICBhY3Rpb25Db3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgICAgaWQ6ICdhY3Rpb24tJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnphcCcsCiAgICAgICAgICAgIHRvb2x0aXA6ICdBY3Rpb24gJyArIGFjdGlvbkNvdW50ZXIsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHsKICAgICAgICAgICAgICBhbGVydCgnQWN0aW9uICcgKyBhY3Rpb25Db3VudGVyICsgJyBjbGlja2VkJyk7CiAgICAgICAgICAgICAgYm90dG9tYmFyLnJlbW92ZUFjdGlvbignYWN0aW9uLScgKyBhY3Rpb25Db3VudGVyKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5jbGVhckFsbCA9ICgpID0+IHsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhcldpZGdldHMoKTsKICAgICAgICAgIGJvdHRvbWJhci5jbGVhckFjdGlvbnMoKTsKICAgICAgICAgIHdpZGdldENvdW50ZXIgPSAwOwogICAgICAgICAgYWN0aW9uQ291bnRlciA9IDA7CiAgICAgICAgfTsKICAgICAgPFwvc2NyaXB0PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGBdKSkpO2ZlKCk7QmUoKTtGdCgpO3ZhciBVRGU9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxwST1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sQ28xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1hcHB1aS1ib3R0b21iYXIiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bbGUoKV0sZj1bbGUoKV0sVURlKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+IndpZGdldHMiaW4gZyxnZXQ6Zz0+Zy53aWRnZXRzLHNldDooZyxiKT0+e2cud2lkZ2V0cz1ifX0sbWV0YWRhdGE6aH0scyxsKSxVRGUodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iYWN0aW9ucyJpbiBnLGdldDpnPT5nLmFjdGlvbnMsc2V0OihnLGIpPT57Zy5hY3Rpb25zPWJ9fSxtZXRhZGF0YTpofSxjLHUpLFVEZShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpofSxudWxsLGEpLGQ9cj1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPURJdDtzdGF0aWMgZGVtb0dyb3VwPSJBcHAgVUkiOyNlPXBJKHRoaXMscyxbXSk7Z2V0IHdpZGdldHMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgd2lkZ2V0cyhoKXt0aGlzLiNlPWh9I3Q9KHBJKHRoaXMsbCkscEkodGhpcyxjLFtdKSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWN0aW9ucyhoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tLWJhciB7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDYlKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2lkZ2V0OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAud2lkZ2V0LXNlcGFyYXRvciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDgwJSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBjb2xvcnMgbWF0Y2hpbmcgZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyICovCiAgICAgIC53aWRnZXQuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuc3VjY2VzcyB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CgogICAgICAuc3Bpbm5pbmcgewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGg9dGhpcy53aWRnZXRzLmZpbHRlcihtPT5tLnBvc2l0aW9uIT09InJpZ2h0Iikuc29ydCgobSx2KT0+KG0ub3JkZXJ8fDApLSh2Lm9yZGVyfHwwKSksZz10aGlzLndpZGdldHMuZmlsdGVyKG09Pm0ucG9zaXRpb249PT0icmlnaHQiKS5zb3J0KChtLHYpPT4obS5vcmRlcnx8MCktKHYub3JkZXJ8fDApKSxiPXRoaXMuYWN0aW9ucy5maWx0ZXIobT0+bS5wb3NpdGlvbj09PSJsZWZ0IikseD10aGlzLmFjdGlvbnMuZmlsdGVyKG09Pm0ucG9zaXRpb24hPT0ibGVmdCIpO3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJib3R0b20tYmFyIj4KICAgICAgICA8IS0tIExlZnQgYWN0aW9ucyAtLT4KICAgICAgICAke2IubWFwKG09PnRoaXMucmVuZGVyQWN0aW9uKG0pKX0KCiAgICAgICAgPCEtLSBMZWZ0IHdpZGdldHMgLS0+CiAgICAgICAgJHtoLm1hcCgobSx2KT0+TWAKICAgICAgICAgICR7dj4wfHxiLmxlbmd0aD4wP01gPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICAgICR7dGhpcy5yZW5kZXJXaWRnZXQobSl9CiAgICAgICAgYCl9CgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgogICAgICAgIDwhLS0gUmlnaHQgd2lkZ2V0cyAtLT4KICAgICAgICAke2cubWFwKChtLHYpPT5NYAogICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldChtKX0KICAgICAgICAgICR7djxnLmxlbmd0aC0xfHx4Lmxlbmd0aD4wP01gPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICBgKX0KCiAgICAgICAgPCEtLSBSaWdodCBhY3Rpb25zIC0tPgogICAgICAgICR7eC5tYXAobT0+dGhpcy5yZW5kZXJBY3Rpb24obSkpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyV2lkZ2V0KGgpe2xldCBnPWguc3RhdHVzJiZoLnN0YXR1cyE9PSJpZGxlIj9oLnN0YXR1czoiIixiPWguaWNvbk5hbWU/aC5pY29uTmFtZS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/aC5pY29uTmFtZTpgbHVjaWRlOiR7aC5pY29uTmFtZX1gOiIiO3JldHVybiBNYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IndpZGdldCAke2d9IgogICAgICAgIHRpdGxlPSIke2gudG9vbHRpcHx8IiJ9IgogICAgICAgIEBjbGljaz0keygpPT5oLm9uQ2xpY2s/LigpfQogICAgICAgIEBjb250ZXh0bWVudT0ke3g9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoeCxoKX0KICAgICAgPgogICAgICAgICR7Yj9NYAogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0ke2J9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgICAgY2xhc3M9IiR7aC5sb2FkaW5nPyJzcGlubmluZyI6IiJ9IgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgJHtoLmxhYmVsP01gPHNwYW4+JHtoLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uKGgpe2xldCBnPWguaWNvbk5hbWUuc3RhcnRzV2l0aCgibHVjaWRlOiIpP2guaWNvbk5hbWU6YGx1Y2lkZToke2guaWNvbk5hbWV9YDtyZXR1cm4gTWAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7aC5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICB0aXRsZT0iJHtoLnRvb2x0aXB8fCIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+IWguZGlzYWJsZWQmJmgub25DbGljaz8uKCl9CiAgICAgID4KICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAuaWNvbj0ke2d9CiAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoaCxnKXtpZighZy5jb250ZXh0TWVudUl0ZW1zfHxnLmNvbnRleHRNZW51SXRlbXMubGVuZ3RoPT09MClyZXR1cm47aC5wcmV2ZW50RGVmYXVsdCgpO2xldCBiPVtdO2ZvcihsZXQgeCBvZiBnLmNvbnRleHRNZW51SXRlbXMpeC5kaXZpZGVyP2IucHVzaCh7ZGl2aWRlcjohMH0pOmIucHVzaCh7bmFtZTp4Lm5hbWUsaWNvbk5hbWU6eC5pY29uTmFtZSxhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHguYWN0aW9uKCl9LGRpc2FibGVkOnguZGlzYWJsZWR9KTthd2FpdCBXdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhoLGIpfWFkZFdpZGdldChoKXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihnPT5nLmlkIT09aC5pZCksdGhpcy53aWRnZXRzPVsuLi50aGlzLndpZGdldHMsaF19dXBkYXRlV2lkZ2V0KGgsZyl7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoYj0+Yi5pZD09PWg/ey4uLmIsLi4uZ306Yil9cmVtb3ZlV2lkZ2V0KGgpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMuZmlsdGVyKGc9PmcuaWQhPT1oKX1nZXRXaWRnZXQoaCl7cmV0dXJuIHRoaXMud2lkZ2V0cy5maW5kKGc9PmcuaWQ9PT1oKX1jbGVhcldpZGdldHMoKXt0aGlzLndpZGdldHM9W119YWRkQWN0aW9uKGgpe3RoaXMuYWN0aW9ucz10aGlzLmFjdGlvbnMuZmlsdGVyKGc9PmcuaWQhPT1oLmlkKSx0aGlzLmFjdGlvbnM9Wy4uLnRoaXMuYWN0aW9ucyxoXX1yZW1vdmVBY3Rpb24oaCl7dGhpcy5hY3Rpb25zPXRoaXMuYWN0aW9ucy5maWx0ZXIoZz0+Zy5pZCE9PWgpfWNsZWFyQWN0aW9ucygpe3RoaXMuYWN0aW9ucz1bXX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscEkodGhpcyx1KX1zdGF0aWN7cEkocixhKX19O3JldHVybiBkPXJ9KSgpO2ZlKCk7dmFyIFZsPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sR3I9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LFNEYT0oKCk9PntsZXQgdD1bY2UoImRlbW8tZGFzaGJvYXJkLXZpZXciKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXTt2YXIgZj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bbGUoKV0sVmwodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmF0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnU9PiJhY3RpdmF0ZWQiaW4gdSxnZXQ6dT0+dS5hY3RpdmF0ZWQsc2V0Oih1LGQpPT57dS5hY3RpdmF0ZWQ9ZH19LG1ldGFkYXRhOmN9LHMsbCksVmwobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxmPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KSxHcihyLGEpfSNlPUdyKHRoaXMscywhMSk7Z2V0IGFjdGl2YXRlZCgpe3JldHVybiB0aGlzLiNlfXNldCBhY3RpdmF0ZWQoYyl7dGhpcy4jZT1jfWN0eD1Hcih0aGlzLGwpO29uQWN0aXZhdGUoYyl7dGhpcy5jdHg9Yyx0aGlzLmFjdGl2YXRlZD0hMCxjb25zb2xlLmxvZygiRGFzaGJvYXJkIGFjdGl2YXRlZCB3aXRoIGNvbnRleHQ6IixjKSxjLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkRhc2hib2FyZCIsZ3JvdXBzOlt7bmFtZToiUXVpY2sgQWNjZXNzIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibGF5b3V0RGFzaGJvYXJkIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJPdmVydmlldyIpfSx7a2V5OiJSZWNlbnQiLGljb25OYW1lOiJjbG9jayIsYmFkZ2U6NSxhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJSZWNlbnQiKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2ggRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjooKT0+YWxlcnQoIlJlZnJlc2hpbmcgZGFzaGJvYXJkIGRhdGEuLi4iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiVGltZSBSYW5nZSJ9LHt0eXBlOiJmaWx0ZXIiLGtleToiTGl2ZSBVcGRhdGVzIixpY29uTmFtZToibHVjaWRlOnJhZGlvIixhY3RpdmU6ITAsb25Ub2dnbGU6dT0+Y29uc29sZS5sb2coIkxpdmUgdXBkYXRlczoiLHUpfSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgQXJjaGl2ZWQiLGljb25OYW1lOiJsdWNpZGU6YXJjaGl2ZSIsYWN0aXZlOiExLG9uVG9nZ2xlOnU9PmNvbnNvbGUubG9nKCJTaG93IGFyY2hpdmVkOiIsdSl9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6Im11bHRpRmlsdGVyIixrZXk6IkRhdGEgU291cmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSIsb3B0aW9uczpbe2tleToiYXBpIixsYWJlbDoiQVBJIFNlcnZlciIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOnNlcnZlciJ9LHtrZXk6IndlYiIsbGFiZWw6IldlYiBUcmFmZmljIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6Z2xvYmUifSx7a2V5OiJtb2JpbGUiLGxhYmVsOiJNb2JpbGUgQXBwIixjaGVja2VkOiExLGljb25OYW1lOiJsdWNpZGU6c21hcnRwaG9uZSJ9XSxvbkNoYW5nZTp1PT5jb25zb2xlLmxvZygiRGF0YSBzb3VyY2VzOiIsdSl9XX0se25hbWU6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydDMiLGl0ZW1zOlt7a2V5OiJNZXRyaWNzIixpY29uTmFtZToiYWN0aXZpdHkiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk1ldHJpY3MiKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6ImZpbGVUZXh0IixiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlJlcG9ydHMiKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToibGluayIsa2V5OiJBbmFseXRpY3MgRG9jcyIsaWNvbk5hbWU6Imx1Y2lkZTpleHRlcm5hbExpbmsiLGhyZWY6Imh0dHBzOi8vZG9jcy5leGFtcGxlLmNvbS9hbmFseXRpY3MifV19XX0pLGMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiT3ZlcnZpZXcgdGFiIil9LHtrZXk6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQW5hbHl0aWNzIHRhYiIpfSx7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIHRhYiIpfV0pfW9uRGVhY3RpdmF0ZSgpe3RoaXMuYWN0aXZhdGVkPSExLGNvbnNvbGUubG9nKCJEYXNoYm9hcmQgZGVhY3RpdmF0ZWQiKX1yZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KICAgICAgICBwIHsgY29sb3I6ICM3MzczNzM7IG1hcmdpbi1ib3R0b206IDMycHg7IH0KICAgICAgICAuZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgLmNhcmQgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIH0KICAgICAgICAuY2FyZCBoMyB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IG1hcmdpbi1ib3R0b206IDhweDsgfQogICAgICAgIC5tZXRyaWMgeyBmb250LXNpemU6IDMycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAjZmFmYWZhOyB9CiAgICAgICAgLnN0YXR1cyB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJhZGl1czogOXB4OyBmb250LXNpemU6IDEycHg7IH0KICAgICAgICAuc3RhdHVzLmFjdGl2ZSB7IGJhY2tncm91bmQ6ICMxNDUzMmQ7IGNvbG9yOiAjNGFkZTgwOyB9CgogICAgICAgIC5jdHgtYWN0aW9ucyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMik7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KICAgICAgICAuY3R4LWFjdGlvbnMgaDIgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwOyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CiAgICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4gewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjNjBhNWZhOwogICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG46aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMik7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5kYW5nZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5kYW5nZXI6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC41KTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uc3VjY2VzcyB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjMpOwogICAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLnN1Y2Nlc3M6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMTk3LCA5NCwgMC41KTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIGJhY2shIEhlcmUncyBhbiBvdmVydmlldyBvZiB5b3VyIHN5c3RlbS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgICAgPGgzPkFjdGl2ZSBVc2VyczwvaDM+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPjEsMjM0PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdHVzIGFjdGl2ZSI+T25saW5lPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgICAgICAgPGgzPkFQSSBDYWxsczwvaDM+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXRyaWMiPjQ1LjJLPC9kaXY+CiAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6ICM0YWRlODA7IGZvbnQtc2l6ZTogMTJweDsgbWFyZ2luOiAwOyI+KzEyJSBmcm9tIGxhc3QgaG91cjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICAgIDxoMz5TeXN0ZW0gSGVhbHRoPC9oMz4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1ldHJpYyI+OTkuOSU8L2Rpdj4KICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjogIzczNzM3MzsgZm9udC1zaXplOiAxMnB4OyBtYXJnaW46IDA7Ij5BbGwgc3lzdGVtcyBvcGVyYXRpb25hbDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJjdHgtYWN0aW9ucyI+CiAgICAgICAgPGgyPkNvbnRleHQgQWN0aW9ucyAoY3R4LmFwcHVpKTwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudVZpc2libGUoITEpfT5IaWRlIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51VmlzaWJsZSghMCl9PlNob3cgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCExKX0+SGlkZSBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCEwKX0+U2hvdyBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic1Zpc2libGUoITEpfT5IaWRlIENvbnRlbnQgVGFiczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzVmlzaWJsZSghMCl9PlNob3cgQ29udGVudCBUYWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51Q29sbGFwc2VkKCEwKX0+Q29sbGFwc2UgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVDb2xsYXBzZWQoITEpfT5FeHBhbmQgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldEJyZWFkY3J1bWJzKFsiRGFzaGJvYXJkIiwiT3ZlcnZpZXciLCJTdGF0cyJdKX0+U2V0IEJyZWFkY3J1bWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLm5hdmlnYXRlVG9WaWV3KCJwcm9qZWN0cyIpfT5HbyB0byBQcm9qZWN0czwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5uYXZpZ2F0ZVRvVmlldygic2V0dGluZ3MiLHtzZWN0aW9uOiJzZWN1cml0eSJ9KX0+R28gdG8gU2V0dGluZ3MvU2VjdXJpdHk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuYWN0aXZpdHlMb2cuYWRkKHt0eXBlOiJjdXN0b20iLHVzZXI6IkRlbW8gVXNlciIsbWVzc2FnZToiQnV0dG9uIGNsaWNrZWQgZnJvbSBjdHghIixpY29uTmFtZToibHVjaWRlOm1vdXNlLXBvaW50ZXItY2xpY2sifSl9PkFkZCBBY3Rpdml0eSBFbnRyeTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUJhZGdlKCJ0YXNrcyIsOTkpfT5TZXQgVGFza3MgQmFkZ2UgdG8gOTk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLmNsZWFyTWFpbk1lbnVCYWRnZSgidGFza3MiKX0+Q2xlYXIgVGFza3MgQmFkZ2U8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNBdXRvSGlkZSghMCwxKX0+QXV0by1oaWRlIFRhYnMgKOKJpDEpPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIGRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic0F1dG9IaWRlKCExKX0+RGlzYWJsZSBBdXRvLWhpZGU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkQ2xvc2VhYmxlVGFiKCl9PkFkZCBDbG9zZWFibGUgVGFiPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH10YWJDb3VudGVyPTA7YWRkQ2xvc2VhYmxlVGFiKCl7aWYoIXRoaXMuY3R4KXJldHVybjt0aGlzLnRhYkNvdW50ZXIrKztsZXQgYz1gVGFiICR7dGhpcy50YWJDb3VudGVyfWA7dGhpcy5jdHguYXBwdWkuYWRkQ29udGVudFRhYih7a2V5OmMsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKGBTZWxlY3RlZCAke2N9YCksY2xvc2VhYmxlOiEwLG9uQ2xvc2U6KCk9Pnt0aGlzLmN0eD8uYXBwdWkucmVtb3ZlQ29udGVudFRhYihjKX19KX19O3JldHVybiBmPXJ9KSgpLENEYT0oKCk9PntsZXQgdD1bY2UoImRlbW8tc2V0dGluZ3MtdmlldyIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtsZSgpXSxmPVtsZSgpXSxWbCh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJzZWN0aW9uImluIGcsZ2V0Omc9Pmcuc2VjdGlvbixzZXQ6KGcsYik9PntnLnNlY3Rpb249Yn19LG1ldGFkYXRhOmh9LHMsbCksVmwodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYXNDaGFuZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iaGFzQ2hhbmdlcyJpbiBnLGdldDpnPT5nLmhhc0NoYW5nZXMsc2V0OihnLGIpPT57Zy5oYXNDaGFuZ2VzPWJ9fSxtZXRhZGF0YTpofSxjLHUpLFZsKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmh9LG51bGwsYSksZD1yPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSksR3IocixhKX0jZT1Hcih0aGlzLHMsImdlbmVyYWwiKTtnZXQgc2VjdGlvbigpe3JldHVybiB0aGlzLiNlfXNldCBzZWN0aW9uKGgpe3RoaXMuI2U9aH0jdD0oR3IodGhpcyxsKSxHcih0aGlzLGMsITEpKTtnZXQgaGFzQ2hhbmdlcygpe3JldHVybiB0aGlzLiN0fXNldCBoYXNDaGFuZ2VzKGgpe3RoaXMuI3Q9aH1hcHB1aT1Hcih0aGlzLHUpO29uQWN0aXZhdGUoaCl7dGhpcy5hcHB1aT1oLmFwcHVpLGNvbnNvbGUubG9nKCJTZXR0aW5ncyBhY3RpdmF0ZWQgd2l0aCBwYXJhbXM6IixoLnBhcmFtcyksaC5wYXJhbXM/LnNlY3Rpb24mJih0aGlzLnNlY3Rpb249aC5wYXJhbXMuc2VjdGlvbiksaC5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJTZXR0aW5ncyIsZ3JvdXBzOlt7bmFtZToiQWNjb3VudCIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixpdGVtczpbe2tleToiZ2VuZXJhbCIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246KCk9PnRoaXMuc2hvd1NlY3Rpb24oImdlbmVyYWwiKX0se2tleToicHJvZmlsZSIsaWNvbk5hbWU6InVzZXIiLGFjdGlvbjooKT0+dGhpcy5zaG93U2VjdGlvbigicHJvZmlsZSIpfSx7a2V5OiJzZWN1cml0eSIsaWNvbk5hbWU6InNoaWVsZCIsYWN0aW9uOigpPT50aGlzLnNob3dTZWN0aW9uKCJzZWN1cml0eSIpfV19LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpzbGlkZXJzIixpdGVtczpbe2tleToibm90aWZpY2F0aW9ucyIsaWNvbk5hbWU6ImJlbGwiLGJhZGdlOjMsYWN0aW9uOigpPT50aGlzLnNob3dTZWN0aW9uKCJub3RpZmljYXRpb25zIil9LHtrZXk6ImFwcGVhcmFuY2UiLGljb25OYW1lOiJwYWxldHRlIixhY3Rpb246KCk9PnRoaXMuc2hvd1NlY3Rpb24oImFwcGVhcmFuY2UiKX1dfV19KSxoLmFwcHVpLnNldFNlY29uZGFyeU1lbnVTZWxlY3Rpb24odGhpcy5zZWN0aW9uKSxoLmFwcHVpLnNldENvbnRlbnRUYWJzKFtdKX1vbkRlYWN0aXZhdGUoKXtjb25zb2xlLmxvZygiU2V0dGluZ3MgZGVhY3RpdmF0ZWQiKSx0aGlzLmhhc0NoYW5nZXM9ITF9Y2FuRGVhY3RpdmF0ZSgpe3JldHVybiB0aGlzLmhhc0NoYW5nZXM/IllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcy4gTGVhdmUgYW55d2F5PyI6ITB9c2hvd1NlY3Rpb24oaCl7dGhpcy5zZWN0aW9uPWgsdGhpcy5hcHB1aT8uc2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbihoKX1zaW11bGF0ZUNoYW5nZSgpe3RoaXMuaGFzQ2hhbmdlcz0hMH1yZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KICAgICAgICBwIHsgY29sb3I6ICM3MzczNzM7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAuc2VjdGlvbi1uYW1lIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgY29sb3I6ICNmYWZhZmE7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIH0KICAgICAgICAuYWN0aW9ucyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICBidXR0b24gewogICAgICAgICAgYmFja2dyb3VuZDogIzNiODJmNjsKICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgICBidXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogIzI1NjNlYjsKICAgICAgICB9CiAgICAgICAgLndhcm5pbmcgewogICAgICAgICAgY29sb3I6ICNmYmJmMjQ7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPlNldHRpbmdzPC9oMT4KICAgICAgPHA+TWFuYWdlIHlvdXIgYWNjb3VudCBhbmQgYXBwbGljYXRpb24gcHJlZmVyZW5jZXMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLW5hbWUiPgogICAgICAgIEN1cnJlbnQgc2VjdGlvbjogPHN0cm9uZz4ke3RoaXMuc2VjdGlvbn08L3N0cm9uZz4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuc2ltdWxhdGVDaGFuZ2UoKX0+TWFrZSBDaGFuZ2VzPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMuaGFzQ2hhbmdlcz9NYDxwIGNsYXNzPSJ3YXJuaW5nIj5Zb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMuIE5hdmlnYXRpb24gd2lsbCBwcm9tcHQgZm9yIGNvbmZpcm1hdGlvbi48L3A+YDoiIn0KICAgIGB9fTtyZXR1cm4gZD1yfSkoKSxMRGE9KCgpPT57bGV0IHQ9W2NlKCJkZW1vLXByb2plY3RzLXZpZXciKV0sZSxhPVtdLHIsaT1wZTt2YXIgbz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7VmwobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6c30sbnVsbCxhKSxvPXI9ZS52YWx1ZSxzJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnN9KSxHcihyLGEpfW9uQWN0aXZhdGUocyl7cy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJQcm9qZWN0cyIsZ3JvdXBzOlt7bmFtZToiTXkgUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixpdGVtczpbe2tleToiQWN0aXZlIixpY29uTmFtZToiZm9sZGVyIixiYWRnZTozLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFjdGl2ZSIpfSx7a2V5OiJBcmNoaXZlZCIsaWNvbk5hbWU6ImFyY2hpdmUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFyY2hpdmVkIil9LHtrZXk6IlNoYXJlZCIsaWNvbk5hbWU6InVzZXJzIixiYWRnZToyLGJhZGdlVmFyaWFudDoid2FybmluZyIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiU2hhcmVkIil9XX0se25hbWU6IlF1aWNrIEFjdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6emFwIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJOZXcgUHJvamVjdCIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJQbHVzIixhY3Rpb246KCk9PmFsZXJ0KCJDcmVhdGUgbmV3IHByb2plY3QiKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjooKT0+YWxlcnQoIkltcG9ydCBwcm9qZWN0Iil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImxpbmsiLGtleToiVGVtcGxhdGVzIixpY29uTmFtZToibHVjaWRlOmxheW91dFRlbXBsYXRlIixocmVmOiJodHRwczovL3RlbXBsYXRlcy5leGFtcGxlLmNvbSJ9XX1dfSkscy5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiR3JpZCIsaWNvbk5hbWU6Imx1Y2lkZTpncmlkIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJHcmlkIHZpZXciKX0se2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJMaXN0IHZpZXciKX0se2tleToiQm9hcmQiLGljb25OYW1lOiJsdWNpZGU6a2FuYmFuIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJCb2FyZCB2aWV3Iil9XSl9cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC5wcm9qZWN0cyB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgLnByb2plY3QgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnM7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0OmhvdmVyIHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjIpOwogICAgICAgIH0KICAgICAgICAucHJvamVjdCBoMyB7IGNvbG9yOiAjZmFmYWZhOyBtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNnB4OyB9CiAgICAgICAgLnByb2plY3QgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTNweDsgfQogICAgICAgIC5iYWRnZSB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMTQ1MzJkOwogICAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5Qcm9qZWN0czwvaDE+CiAgICAgIDxkaXYgY2xhc3M9InByb2plY3RzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Gcm9udGVuZCBBcHAgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPlJlYWN0LWJhc2VkIGRhc2hib2FyZCBhcHBsaWNhdGlvbjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5BUEkgU2VydmVyIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5Ob2RlLmpzIFJFU1QgQVBJIGJhY2tlbmQ8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+TW9iaWxlIEFwcCA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+UmVhY3QgTmF0aXZlIGlPUy9BbmRyb2lkIGFwcDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0Ij4KICAgICAgICAgIDxoMz5Eb2N1bWVudGF0aW9uPC9oMz4KICAgICAgICAgIDxwPlRlY2huaWNhbCBkb2N1bWVudGF0aW9uIHNpdGU8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBvPXJ9KSgpLFREYT0oKCk9PntsZXQgdD1bY2UoImRlbW8tdGFza3MtdmlldyIpXSxlLGE9W10scixpPXBlO3ZhciBvPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgcz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtWbChudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpzfSxudWxsLGEpLG89cj1lLnZhbHVlLHMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6c30pLEdyKHIsYSl9b25BY3RpdmF0ZShzKXtzLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IlRhc2tzIixncm91cHM6W3tuYW1lOiJWaWV3cyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLGl0ZW1zOlt7a2V5OiJBbGwgVGFza3MiLGljb25OYW1lOiJsaXN0IixiYWRnZToxMixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBbGwiKX0se2tleToiVG9kYXkiLGljb25OYW1lOiJjYWxlbmRhciIsYmFkZ2U6MyxhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJUb2RheSIpfSx7a2V5OiJVcGNvbWluZyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJVcGNvbWluZyIpfSx7a2V5OiJDb21wbGV0ZWQiLGljb25OYW1lOiJjaGVja0NpcmNsZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQ29tcGxldGVkIil9XX0se25hbWU6IkZpbHRlcnMiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IlByaW9yaXR5In0se3R5cGU6Im11bHRpRmlsdGVyIixrZXk6IlByaW9yaXR5IixpY29uTmFtZToibHVjaWRlOmZsYWciLG9wdGlvbnM6W3trZXk6ImhpZ2giLGxhYmVsOiJIaWdoIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6YWxlcnRDaXJjbGUifSx7a2V5OiJtZWRpdW0iLGxhYmVsOiJNZWRpdW0iLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTptaW51c0NpcmNsZSJ9LHtrZXk6ImxvdyIsbGFiZWw6IkxvdyIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOmNpcmNsZSJ9XSxvbkNoYW5nZTpsPT5jb25zb2xlLmxvZygiUHJpb3JpdHkgZmlsdGVyOiIsbCl9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImhlYWRlciIsbGFiZWw6Ik9wdGlvbnMifSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgU3VidGFza3MiLGljb25OYW1lOiJsdWNpZGU6bGlzdFRyZWUiLGFjdGl2ZTohMCxvblRvZ2dsZTpsPT5jb25zb2xlLmxvZygiU2hvdyBzdWJ0YXNrczoiLGwpfSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgQ29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixhY3RpdmU6ITEsb25Ub2dnbGU6bD0+Y29uc29sZS5sb2coIlNob3cgY29tcGxldGVkOiIsbCl9XX0se25hbWU6IkFjdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6emFwIixpdGVtczpbe3R5cGU6ImFjdGlvbiIsa2V5OiJBZGQgVGFzayIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246KCk9PmFsZXJ0KCJBZGQgbmV3IHRhc2siKX0se3R5cGU6ImFjdGlvbiIsa2V5OiJJbXBvcnQgVGFza3MiLGljb25OYW1lOiJsdWNpZGU6dXBsb2FkIixhY3Rpb246KCk9PmFsZXJ0KCJJbXBvcnQgdGFza3MiKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiYWN0aW9uIixrZXk6IkNsZWFyIENvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLHZhcmlhbnQ6ImRhbmdlciIsY29uZmlybU1lc3NhZ2U6IkRlbGV0ZSBhbGwgY29tcGxldGVkIHRhc2tzPyIsYWN0aW9uOigpPT5hbGVydCgiQ2xlYXJlZCBjb21wbGV0ZWQgdGFza3MiKX1dfV19KSxzLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJMaXN0IixpY29uTmFtZToibHVjaWRlOmxpc3QiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkxpc3QiKX0se2tleToiQ2FsZW5kYXIiLGljb25OYW1lOiJsdWNpZGU6Y2FsZW5kYXIiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkNhbGVuZGFyIil9XSl9cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogICAgICAgIC50YXNrLWxpc3QgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CiAgICAgICAgLnRhc2sgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICB9CiAgICAgICAgLmNoZWNrYm94IHsKICAgICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzUyNTI1MjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CiAgICAgICAgLnRhc2stdGV4dCB7IGNvbG9yOiAjZmFmYWZhOyBmbGV4OiAxOyB9CiAgICAgICAgLmR1ZS1kYXRlIHsgY29sb3I6ICM3MzczNzM7IGZvbnQtc2l6ZTogMTJweDsgfQogICAgICAgIC5wcmlvcml0eSB7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIH0KICAgICAgICAucHJpb3JpdHkuaGlnaCB7IGJhY2tncm91bmQ6ICM0NTBhMGE7IGNvbG9yOiAjZjg3MTcxOyB9CiAgICAgICAgLnByaW9yaXR5Lm1lZGl1bSB7IGJhY2tncm91bmQ6ICM0NTFhMDM7IGNvbG9yOiAjZmJiZjI0OyB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5UYXNrczwvaDE+CiAgICAgIDxkaXYgY2xhc3M9InRhc2stbGlzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5SZXZpZXcgcHVsbCByZXF1ZXN0ICM0Mjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+VG9kYXk8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpb3JpdHkgaGlnaCI+SGlnaDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YXNrIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94Ij48L2Rpdj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXNrLXRleHQiPlVwZGF0ZSBkb2N1bWVudGF0aW9uPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5Ub21vcnJvdzwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmlvcml0eSBtZWRpdW0iPk1lZGl1bTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YXNrIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94Ij48L2Rpdj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YXNrLXRleHQiPldyaXRlIHVuaXQgdGVzdHM8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPkRlYyAyMDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX07cmV0dXJuIG89cn0pKCksRUl0PSgpPT57bGV0IHQ9e2JyYW5kaW5nOntsb2dvSWNvbjoibHVjaWRlOmJveCIsbG9nb1RleHQ6IkFjbWUgQXBwIn0sYXBwQmFyOnttZW51SXRlbXM6W3tuYW1lOiJGaWxlIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6Ik5ldyBQcm9qZWN0IixzaG9ydGN1dDoiQ21kK04iLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXciKX0se25hbWU6Ik9wZW4uLi4iLHNob3J0Y3V0OiJDbWQrTyIsaWNvbk5hbWU6ImZvbGRlck9wZW4iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiIpfSx7bmFtZToiUmVjZW50IFByb2plY3RzIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6Im15LWFwcCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIG15LWFwcCIpfSx7bmFtZToiY29tcG9uZW50LWxpYiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIGNvbXBvbmVudC1saWIiKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNhdmUgQWxsIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZG8iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVkbyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ3V0Iil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBzaWRlYmFyIil9LHtuYW1lOiJUb2dnbGUgQWN0aXZpdHkgTG9nIixzaG9ydGN1dDoiQ21kK1NoaWZ0K0EiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiVG9nZ2xlIGFjdGl2aXR5Iil9XX0se25hbWU6IkhlbHAiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiRG9jdW1lbnRhdGlvbiIsaWNvbk5hbWU6ImJvb2siLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRG9jcyIpfSx7bmFtZToiS2V5Ym9hcmQgU2hvcnRjdXRzIixpY29uTmFtZToia2V5Ym9hcmQiLHNob3J0Y3V0OiJDbWQrLyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQWJvdXQiKX1dfV0sYnJlYWRjcnVtYnM6IkRhc2hib2FyZCIsc2hvd1dpbmRvd0NvbnRyb2xzOiEwLHNob3dTZWFyY2g6ITAsdXNlcjp7bmFtZToiSmFuZSBTbWl0aCIsZW1haWw6ImphbmUuc21pdGhAZXhhbXBsZS5jb20iLHN0YXR1czoib25saW5lIn0scHJvZmlsZU1lbnVJdGVtczpbe25hbWU6IlByb2ZpbGUiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlByb2ZpbGUiKX0se25hbWU6IkFjY291bnQgU2V0dGluZ3MiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAgJiBTdXBwb3J0IixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJIZWxwIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2lnbiBPdXQiLGljb25OYW1lOiJsb2dPdXQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2lnbiBvdXQiKX1dfSx2aWV3czpbe2lkOiJkYXNoYm9hcmQiLG5hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixjb250ZW50OiJkZW1vLWRhc2hib2FyZC12aWV3Iixyb3V0ZToiZGFzaGJvYXJkIn0se2lkOiJwcm9qZWN0cyIsbmFtZToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixjb250ZW50OiJkZW1vLXByb2plY3RzLXZpZXciLHJvdXRlOiJwcm9qZWN0cyIsYmFkZ2U6M30se2lkOiJ0YXNrcyIsbmFtZToiVGFza3MiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tTcXVhcmUiLGNvbnRlbnQ6ImRlbW8tdGFza3MtdmlldyIscm91dGU6InRhc2tzIixiYWRnZToxMn0se2lkOiJzZXR0aW5ncyIsbmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGNvbnRlbnQ6ImRlbW8tc2V0dGluZ3MtdmlldyIscm91dGU6InNldHRpbmdzLzpzZWN0aW9uPyJ9XSxtYWluTWVudTp7c2VjdGlvbnM6W3tuYW1lOiJNYWluIix2aWV3czpbImRhc2hib2FyZCJdfSx7bmFtZToiV29ya3NwYWNlIix2aWV3czpbInByb2plY3RzIiwidGFza3MiXX1dLGJvdHRvbUl0ZW1zOlsic2V0dGluZ3MiXX0sZGVmYXVsdFZpZXc6ImRhc2hib2FyZCIsYm90dG9tQmFyOnt2aXNpYmxlOiEwLHdpZGdldHM6W3tpZDoic3RhdHVzIixpY29uTmFtZToibHVjaWRlOmFjdGl2aXR5IixsYWJlbDoiU3lzdGVtIE9ubGluZSIsc3RhdHVzOiJzdWNjZXNzIix0b29sdGlwOiJBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCIsb25DbGljazooKT0+Y29uc29sZS5sb2coIlN0YXR1cyBjbGlja2VkIil9LHtpZDoibm90aWZpY2F0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTpiZWxsIixsYWJlbDoiMyBub3RpZmljYXRpb25zIixzdGF0dXM6Indhcm5pbmciLHRvb2x0aXA6IllvdSBoYXZlIHVucmVhZCBub3RpZmljYXRpb25zIixvbkNsaWNrOigpPT5jb25zb2xlLmxvZygiTm90aWZpY2F0aW9ucyBjbGlja2VkIil9LHtpZDoidmVyc2lvbiIsaWNvbk5hbWU6Imx1Y2lkZTpnaXRCcmFuY2giLGxhYmVsOiJ2MS4yLjMiLHBvc2l0aW9uOiJyaWdodCIsdG9vbHRpcDoiQ3VycmVudCB2ZXJzaW9uIn1dLGFjdGlvbnM6W3tpZDoidGVybWluYWwiLGljb25OYW1lOiJsdWNpZGU6dGVybWluYWwiLHRvb2x0aXA6Ik9wZW4gVGVybWluYWwiLHBvc2l0aW9uOiJyaWdodCIsb25DbGljazooKT0+Y29uc29sZS5sb2coIlRlcm1pbmFsIGNsaWNrZWQiKX1dfSxvblZpZXdDaGFuZ2U6KHIsaSk9Pntjb25zb2xlLmxvZyhgVmlldyBjaGFuZ2VkIHRvOiAke3J9ICgke2kubmFtZX0pYCl9LG9uU2VhcmNoOnI9Pntjb25zb2xlLmxvZygiU2VhcmNoIHF1ZXJ5OiIscil9fSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NOYW1lPSJkZW1vLWNvbnRhaW5lciIsZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsiO2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtYXBwdWkiKTtyZXR1cm4gZS5hcHBlbmRDaGlsZChhKSxzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCBhLnVwZGF0ZUNvbXBsZXRlLGEuY29uZmlndXJlKHQpLHNldFRpbWVvdXQoKCk9PnthLmFjdGl2aXR5TG9nLmFkZE1hbnkoW3t0eXBlOiJsb2dpbiIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToibG9nZ2VkIGluIGZyb20gQ2hyb21lIG9uIG1hY09TIn0se3R5cGU6ImNyZWF0ZSIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZTonY3JlYXRlZCBwcm9qZWN0ICJGcm9udGVuZCBBcHAiJ30se3R5cGU6InVwZGF0ZSIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6InVwZGF0ZWQgQVBJIGRvY3VtZW50YXRpb24ifSx7dHlwZToidmlldyIsdXNlcjoiSmFuZSBTbWl0aCIsbWVzc2FnZToidmlld2VkIGRhc2hib2FyZCBhbmFseXRpY3MifSx7dHlwZToiZGVsZXRlIix1c2VyOiJBZG1pbiIsbWVzc2FnZToicmVtb3ZlZCBkZXByZWNhdGVkIGVuZHBvaW50In0se3R5cGU6ImN1c3RvbSIsdXNlcjoiU3lzdGVtIixtZXNzYWdlOiJzY2hlZHVsZWQgYmFja3VwIGNvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSJ9XSl9LDUwMCksYS52aWV3Q2hhbmdlZCQuc3Vic2NyaWJlKHI9Pntjb25zb2xlLmxvZygiVmlldyBjaGFuZ2VkIGV2ZW50OiIsciksYS5zZXRCcmVhZGNydW1icyhyLnZpZXcubmFtZSl9KSxhLnZpZXdMaWZlY3ljbGUkLnN1YnNjcmliZShyPT57Y29uc29sZS5sb2coIkxpZmVjeWNsZSBldmVudDoiLHIudHlwZSxyLnZpZXdJZCl9KSxzZXRUaW1lb3V0KCgpPT57YS5zZXRNYWluTWVudUJhZGdlKCJ0YXNrcyIsMTUpLGEuYWN0aXZpdHlMb2cuYWRkKHt0eXBlOiJ1cGRhdGUiLHVzZXI6IlN5c3RlbSIsbWVzc2FnZToibmV3IHRhc2tzIGFkZGVkIn0pfSw1ZTMpfSwwKSxNYAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgICR7ZX0KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfTtmZSgpO3ZhciBZVT1jbGFzc3t2aWV3cz1uZXcgTWFwO2luc3RhbmNlcz1uZXcgTWFwO2N1cnJlbnRWaWV3SWQ9bnVsbDthcHB1aT1udWxsO3NldEFwcHVpUmVmKGUpe3RoaXMuYXBwdWk9ZX1yZWdpc3RlcihlKXt0aGlzLnZpZXdzLmhhcyhlLmlkKSYmY29uc29sZS53YXJuKGBWaWV3IHdpdGggaWQgIiR7ZS5pZH0iIGFscmVhZHkgcmVnaXN0ZXJlZC4gT3ZlcndyaXRpbmcuYCksdGhpcy52aWV3cy5zZXQoZS5pZCxlKX1yZWdpc3RlckFsbChlKXtlLmZvckVhY2goYT0+dGhpcy5yZWdpc3RlcihhKSl9Z2V0KGUpe3JldHVybiB0aGlzLnZpZXdzLmdldChlKX1nZXRWaWV3SWRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy5rZXlzKCkpfWdldEFsbCgpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudmlld3MudmFsdWVzKCkpfWdldFJvdXRlKGUpe2xldCBhPXRoaXMudmlld3MuZ2V0KGUpO3JldHVybiBhPy5yb3V0ZXx8YT8uaWR8fCIifWZpbmRCeVJvdXRlKGUpe2ZvcihsZXQgYSBvZiB0aGlzLnZpZXdzLnZhbHVlcygpKXtsZXQgcj1hLnJvdXRlfHxhLmlkLGk9dGhpcy5tYXRjaFJvdXRlKHIsZSk7aWYoaSE9PW51bGwpcmV0dXJue3ZpZXc6YSxwYXJhbXM6aX19fW1hdGNoUm91dGUoZSxhKXtsZXQgcj1lLnNwbGl0KCIvIiksaT1hLnNwbGl0KCIvIik7aWYoci5sZW5ndGg+MCYmcltyLmxlbmd0aC0xXS5lbmRzV2l0aCgiPyIpKXtpZihpLmxlbmd0aDxyLmxlbmd0aC0xfHxpLmxlbmd0aD5yLmxlbmd0aClyZXR1cm4gbnVsbH1lbHNlIGlmKHIubGVuZ3RoIT09aS5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IHM9e307Zm9yKGxldCBsPTA7bDxyLmxlbmd0aDtsKyspe2xldCBmPXJbbF0sYz1mLmVuZHNXaXRoKCI/Iik7aWYoYyYmKGY9Zi5zbGljZSgwLC0xKSksZi5zdGFydHNXaXRoKCI6Iikpe2xldCB1PWYuc2xpY2UoMSk7aWYoaVtsXSE9PXZvaWQgMClzW3VdPWlbbF07ZWxzZSBpZighYylyZXR1cm4gbnVsbH1lbHNlIGlmKGlbbF0hPT1mKXJldHVybiBudWxsfXJldHVybiBzfWFzeW5jIGNhbkxlYXZlQ3VycmVudFZpZXcoKXtpZighdGhpcy5jdXJyZW50Vmlld0lkKXJldHVybiEwO2xldCBlPXRoaXMuaW5zdGFuY2VzLmdldCh0aGlzLmN1cnJlbnRWaWV3SWQpO2lmKCFlKXJldHVybiEwO2xldCBhPWU7cmV0dXJuIHR5cGVvZiBhLmNhbkRlYWN0aXZhdGU9PSJmdW5jdGlvbiI/YXdhaXQgYS5jYW5EZWFjdGl2YXRlKCk6ITB9YXN5bmMgYWN0aXZhdGVWaWV3KGUsYSxyKXtsZXQgaT10aGlzLnZpZXdzLmdldChlKTtpZighaSlyZXR1cm4gY29uc29sZS5lcnJvcihgVmlldyAiJHtlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbDtsZXQgbz1pLmNhY2hlIT09ITE7dGhpcy5jdXJyZW50Vmlld0lkJiZ0aGlzLmN1cnJlbnRWaWV3SWQhPT1lJiZhd2FpdCB0aGlzLmRlYWN0aXZhdGVWaWV3KHRoaXMuY3VycmVudFZpZXdJZCk7bGV0IHM9bz90aGlzLmluc3RhbmNlcy5nZXQoZSk6dm9pZCAwO2lmKHMpcy5zdHlsZS5kaXNwbGF5PSIiO2Vsc2V7aWYocz1hd2FpdCB0aGlzLmNyZWF0ZVZpZXdFbGVtZW50KGkpLCFzKXJldHVybiBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGVsZW1lbnQgZm9yIHZpZXcgIiR7ZX0iYCksbnVsbDthLmFwcGVuZENoaWxkKHMpLG8mJnRoaXMuaW5zdGFuY2VzLnNldChlLHMpfXJldHVybiB0aGlzLmN1cnJlbnRWaWV3SWQ9ZSxhd2FpdCB0aGlzLmNhbGxPbkFjdGl2YXRlKHMsZSxyKSxzfWFzeW5jIGRlYWN0aXZhdGVWaWV3KGUpe2xldCBhPXRoaXMuaW5zdGFuY2VzLmdldChlKTtpZighYSlyZXR1cm47bGV0IHI9YTt0eXBlb2Ygci5vbkRlYWN0aXZhdGU9PSJmdW5jdGlvbiImJmF3YWl0IHIub25EZWFjdGl2YXRlKCksYS5zdHlsZS5kaXNwbGF5PSJub25lIn1hc3luYyBjcmVhdGVWaWV3RWxlbWVudChlKXtsZXQgYT1lLmNvbnRlbnQ7aWYodHlwZW9mIGE9PSJmdW5jdGlvbiImJiEoYS5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkmJmEuY29uc3RydWN0b3IubmFtZT09PSJBc3luY0Z1bmN0aW9uIil0cnl7YT1hd2FpdCBhKCl9Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIGFzeW5jIGNvbnRlbnQgZm9yIHZpZXcgIiR7ZS5pZH0iOmAsaSksbnVsbH1sZXQgcjtpZih0eXBlb2YgYT09InN0cmluZyIpcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGEpO2Vsc2UgaWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpaWYoYS5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClyPW5ldyBhO2Vsc2V7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc05hbWU9InZpZXctY29udGVudC13cmFwcGVyIixpLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6IGNvbnRlbnRzOyI7bGV0IG89YSgpO3dzKG8saSkscj1pfWVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgY29udGVudCB0eXBlIGZvciB2aWV3ICIke2UuaWR9ImApLG51bGw7cmV0dXJuIHIuZGF0YXNldC52aWV3SWQ9ZS5pZCxyfWFzeW5jIGNhbGxPbkFjdGl2YXRlKGUsYSxyKXtsZXQgaT1lO2lmKHR5cGVvZiBpLm9uQWN0aXZhdGU9PSJmdW5jdGlvbiIpe2xldCBvPXthcHB1aTp0aGlzLmFwcHVpLHZpZXdJZDphLHBhcmFtczpyfTthd2FpdCBpLm9uQWN0aXZhdGUobyl9fXJlbmRlclZpZXcoZSxhKXtsZXQgcj10aGlzLnZpZXdzLmdldChlKTtpZighcilyZXR1cm4gY29uc29sZS5lcnJvcihgVmlldyAiJHtlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbDthLmlubmVySFRNTD0iIjtsZXQgaSxvPXIuY29udGVudDtpZih0eXBlb2Ygbz09InN0cmluZyIpaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KG8pO2Vsc2UgaWYodHlwZW9mIG89PSJmdW5jdGlvbiIpaWYoby5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClpPW5ldyBvO2Vsc2V7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5jbGFzc05hbWU9InZpZXctY29udGVudC13cmFwcGVyIixzLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6IGNvbnRlbnRzOyI7bGV0IGw9bygpO3dzKGwscyksaT1zfWVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgY29udGVudCB0eXBlIGZvciB2aWV3ICIke2V9ImApLG51bGw7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoaSksdGhpcy5pbnN0YW5jZXMuc2V0KGUsaSksdGhpcy5jdXJyZW50Vmlld0lkPWUsaX1nZXRDdXJyZW50Vmlld0lkKCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZH1nZXRJbnN0YW5jZShlKXtyZXR1cm4gdGhpcy5pbnN0YW5jZXMuZ2V0KGUpfWNsZWFySW5zdGFuY2UoZSl7bGV0IGE9dGhpcy5pbnN0YW5jZXMuZ2V0KGUpO2EmJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpLHRoaXMuaW5zdGFuY2VzLmRlbGV0ZShlKSx0aGlzLmN1cnJlbnRWaWV3SWQ9PT1lJiYodGhpcy5jdXJyZW50Vmlld0lkPW51bGwpfWNsZWFySW5zdGFuY2VzKCl7Zm9yKGxldFtlLGFdb2YgdGhpcy5pbnN0YW5jZXMpYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSk7dGhpcy5pbnN0YW5jZXMuY2xlYXIoKSx0aGlzLmN1cnJlbnRWaWV3SWQ9bnVsbH11bnJlZ2lzdGVyKGUpe3JldHVybiB0aGlzLmNsZWFySW5zdGFuY2UoZSksdGhpcy52aWV3cy5kZWxldGUoZSl9Y2xlYXIoKXt0aGlzLnZpZXdzLmNsZWFyKCksdGhpcy5jbGVhckluc3RhbmNlcygpfWhhcyhlKXtyZXR1cm4gdGhpcy52aWV3cy5oYXMoZSl9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy52aWV3cy5zaXplfX07ZmUoKTt2YXIgTkl0PSgpPT5NYAogIDxzdHlsZT4KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tbWFpbm1lbnUtY29udGFpbmVyIC5zcGFjZXIgewogICAgICBmbGV4OiAxOwogICAgICBiYWNrZ3JvdW5kOiAjMGYwZjBmOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1tYWlubWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktbWFpbm1lbnUKICAgICAgLmxvZ29JY29uPSR7Imx1Y2lkZTpib3gifQogICAgICAubG9nb1RleHQ9JHsiQWNtZSBBcHAifQogICAgICAubWVudUdyb3Vwcz0ke1t7dGFiczpbe2tleToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkRhc2hib2FyZCIpfSx7a2V5OiJJbmJveCIsaWNvbk5hbWU6Imx1Y2lkZTppbmJveCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiSW5ib3giKX1dfSx7bmFtZToiV29ya3NwYWNlIix0YWJzOlt7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlByb2plY3RzIil9LHtrZXk6IlRhc2tzIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJUYXNrcyIpfSx7a2V5OiJEb2N1bWVudHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkRvY3VtZW50cyIpfV19LHtuYW1lOiJBbmFseXRpY3MiLHRhYnM6W3trZXk6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQzIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIil9LHtrZXk6Ikluc2lnaHRzIixpY29uTmFtZToibHVjaWRlOmxpZ2h0YnVsYiIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiSW5zaWdodHMiKX1dfV19CiAgICAgIC5ib3R0b21UYWJzPSR7W3trZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpfSx7a2V5OiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHBDaXJjbGUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkhlbHAiKX1dfQogICAgPjwvZGVlcy1hcHB1aS1tYWlubWVudT4KICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CiAgPC9kaXY+CmA7ZmUoKTtCZSgpO3ZhciBzcz1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LEIyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxMbzE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWFwcHVpLW1haW5tZW51IildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBMPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6U3RyaW5nfSldLGY9W0Qoe3R5cGU6U3RyaW5nfSldLGQ9W0Qoe3R5cGU6QXJyYXl9KV0sYj1bRCh7dHlwZTpBcnJheX0pXSx2PVtEKHt0eXBlOkFycmF5fSldLEU9W0QoKV0sUD1bRCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sc3ModGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImxvZ29JY29uImluIGssZ2V0Oms9PmsubG9nb0ljb24sc2V0OihrLE4pPT57ay5sb2dvSWNvbj1OfX0sbWV0YWRhdGE6TH0scyxsKSxzcyh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ29UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ibG9nb1RleHQiaW4gayxnZXQ6az0+ay5sb2dvVGV4dCxzZXQ6KGssTik9PntrLmxvZ29UZXh0PU59fSxtZXRhZGF0YTpMfSxjLHUpLHNzKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+Im1lbnVHcm91cHMiaW4gayxnZXQ6az0+ay5tZW51R3JvdXBzLHNldDooayxOKT0+e2subWVudUdyb3Vwcz1OfX0sbWV0YWRhdGE6TH0saCxnKSxzcyh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJib3R0b21UYWJzImluIGssZ2V0Oms9PmsuYm90dG9tVGFicyxzZXQ6KGssTik9PntrLmJvdHRvbVRhYnM9Tn19LG1ldGFkYXRhOkx9LHgsbSksc3ModGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idGFicyJpbiBrLGdldDprPT5rLnRhYnMsc2V0OihrLE4pPT57ay50YWJzPU59fSxtZXRhZGF0YTpMfSx5LHcpLHNzKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzZWxlY3RlZFRhYiJpbiBrLGdldDprPT5rLnNlbGVjdGVkVGFiLHNldDooayxOKT0+e2suc2VsZWN0ZWRUYWI9Tn19LG1ldGFkYXRhOkx9LEMseiksc3ModGhpcyxudWxsLFAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJjb2xsYXBzZWQiaW4gayxnZXQ6az0+ay5jb2xsYXBzZWQsc2V0OihrLE4pPT57ay5jb2xsYXBzZWQ9Tn19LG1ldGFkYXRhOkx9LF8sJCksc3MobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6TH0sbnVsbCxhKSxIPXI9ZS52YWx1ZSxMJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KX1zdGF0aWMgZGVtbz1OSXQ7c3RhdGljIGRlbW9Hcm91cD0iQXBwIFVJIjsjZT1CMih0aGlzLHMsIiIpO2dldCBsb2dvSWNvbigpe3JldHVybiB0aGlzLiNlfXNldCBsb2dvSWNvbihMKXt0aGlzLiNlPUx9I3Q9KEIyKHRoaXMsbCksQjIodGhpcyxjLCIiKSk7Z2V0IGxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvZ29UZXh0KEwpe3RoaXMuI3Q9TH0jYT0oQjIodGhpcyx1KSxCMih0aGlzLGgsW10pKTtnZXQgbWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNhfXNldCBtZW51R3JvdXBzKEwpe3RoaXMuI2E9TH0jcj0oQjIodGhpcyxnKSxCMih0aGlzLHgsW10pKTtnZXQgYm90dG9tVGFicygpe3JldHVybiB0aGlzLiNyfXNldCBib3R0b21UYWJzKEwpe3RoaXMuI3I9TH0jaT0oQjIodGhpcyxtKSxCMih0aGlzLHksW10pKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNpfXNldCB0YWJzKEwpe3RoaXMuI2k9TH0jbz0oQjIodGhpcyx3KSxCMih0aGlzLEMsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI299c2V0IHNlbGVjdGVkVGFiKEwpe3RoaXMuI289TH0jcz0oQjIodGhpcyx6KSxCMih0aGlzLF8sITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNvbGxhcHNlZChMKXt0aGlzLiNzPUx9c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgLS1tZW51LXdpZHRoLWV4cGFuZGVkOiAyMDBweDsKICAgICAgICAtLW1lbnUtd2lkdGgtY29sbGFwc2VkOiA1NnB4OwogICAgICAgIC0tdG9vbHRpcC1iZzogJHtwLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIC0tdG9vbHRpcC1mZzogJHtwLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tYWluQ29udGFpbmVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2NjYiLCIjY2NjIil9OwogICAgICAgIHotaW5kZXg6ICR7WDEuZml4ZWQuYXBwQmFyfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiB2YXIoLS1tZW51LXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlNWU1IiwiIzFhMWExYSIpfTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tYWluQ29udGFpbmVyIHsKICAgICAgICB3aWR0aDogdmFyKC0tbWVudS13aWR0aC1jb2xsYXBzZWQpOwogICAgICB9CgogICAgICAvKiBGbG9hdGluZyBjb2xsYXBzZSB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTEycHg7CiAgICAgICAgdG9wOiAyNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTVlNSIsIiMzZjNmNDYiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzczNzM3MyIsIiNhMWExYWEiKX07CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzNmM2Y0NiIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC8qIExvZ28gU2VjdGlvbiAqLwogICAgICAubG9nb1NlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5sb2dvU2VjdGlvbiAubG9nb0ljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubG9nb1NlY3Rpb24gLmxvZ29UZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmxvZ29TZWN0aW9uIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5sb2dvU2VjdGlvbiAubG9nb1RleHQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIE1pZGRsZSBTZWN0aW9uIChzY3JvbGxhYmxlKSAqLwogICAgICAubWVudVNlY3Rpb24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMjUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSIpfTsKICAgICAgfQoKICAgICAgLyogTWVudSBHcm91cCAqLwogICAgICAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tZW51R3JvdXA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzM3MzczIiwiIzczNzM3MyIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIG1heC1oZWlnaHQgMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiAzMHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSGVhZGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5ncm91cFRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51R3JvdXAgewogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICB9CgogICAgICAvKiBUYWIgSXRlbSAqLwogICAgICAudGFiIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM1MjUyNTIiLCIjYTNhM2EzIil9OwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMjYyNjI2IiwiI2U1ZTVlNSIpfTsKICAgICAgfQoKICAgICAgLnRhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgfQoKICAgICAgLnRhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg1OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnRhYiAudGFiTGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgdGFiIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYiB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICBnYXA6IDA7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiLnNlbGVjdGVkVGFiOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGNvbGxhcHNlZCBzdGF0ZSAqLwogICAgICAudGFiLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLnRhYi10b29sdGlwOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYjpob3ZlciAudGFiLXRvb2x0aXAgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7CiAgICAgIH0KCiAgICAgIC8qIEJhZGdlIHN0eWxlcyAqLwogICAgICAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiAwIDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZGNmY2U3IiwiIzE0NTMyZCIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxNjY1MzQiLCIjNGFkZTgwIil9OwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZWYzYzciLCIjNDUxYTAzIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzkyNDAwZSIsIiNmYmJmMjQiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZWUyZTIiLCIjNDUwYTBhIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzk5MWIxYiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEJvdHRvbSBTZWN0aW9uICovCiAgICAgIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlNWU1IiwiIzFhMWExYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuYm90dG9tU2VjdGlvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDRweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IEw9dGhpcy5nZXRBbGxUYWJzKCk7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9Im1haW5Db250YWluZXIiIEBjb250ZXh0bWVudT0ke2s9PntXdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhrLFt7bmFtZToiYXBwIHNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+e30saWNvbk5hbWU6ImdlYXIifV0pfX0+CiAgICAgICAgJHt0aGlzLmxvZ29JY29ufHx0aGlzLmxvZ29UZXh0P01gCiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvU2VjdGlvbiI+CiAgICAgICAgICAgICR7dGhpcy5sb2dvSWNvbj9NYDxkZWVzLWljb24gY2xhc3M9ImxvZ29JY29uIiAuaWNvbj0iJHt0aGlzLmxvZ29JY29ufSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgJHt0aGlzLmxvZ29UZXh0P01gPHNwYW4gY2xhc3M9ImxvZ29UZXh0Ij4ke3RoaXMubG9nb1RleHR9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51U2VjdGlvbiI+CiAgICAgICAgICAke3RoaXMubWVudUdyb3Vwcy5sZW5ndGg+MD90aGlzLnJlbmRlck1lbnVHcm91cHMoKTp0aGlzLnJlbmRlckxlZ2FjeVRhYnMoKX0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmJvdHRvbVRhYnMubGVuZ3RoPjA/TWAKICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbVNlY3Rpb24iPgogICAgICAgICAgICAke3RoaXMuYm90dG9tVGFicy5tYXAoaz0+dGhpcy5yZW5kZXJUYWIoaykpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvbGxhcHNlLXRvZ2dsZSIgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUNvbGxhcHNlKCl9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMuY29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblJpZ2h0IjoibHVjaWRlOmNoZXZyb25MZWZ0In0iPjwvZGVlcy1pY29uPgogICAgICA8L2J1dHRvbj4KICAgIGB9cmVuZGVyTWVudUdyb3Vwcygpe3JldHVybiBNYAogICAgICAke3RoaXMubWVudUdyb3Vwcy5tYXAoTD0+TWAKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51R3JvdXAiPgogICAgICAgICAgJHtMLm5hbWU/TWA8ZGl2IGNsYXNzPSJncm91cEhlYWRlciI+JHtMLm5hbWV9PC9kaXY+YDoiIn0KICAgICAgICAgIDxkaXYgY2xhc3M9Imdyb3VwVGFicyI+CiAgICAgICAgICAgICR7TC5pdGVtcy5tYXAoaz0+dGhpcy5yZW5kZXJUYWIoaykpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGApfQogICAgYH1yZW5kZXJMZWdhY3lUYWJzKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBUYWJzIj4KICAgICAgICAgICR7dGhpcy50YWJzLm1hcChMPT50aGlzLnJlbmRlclRhYihMKSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWIoTCl7cmV0dXJuIE1gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0idGFiICR7TD09PXRoaXMuc2VsZWN0ZWRUYWI/InNlbGVjdGVkVGFiIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy51cGRhdGVUYWIoTCl9fSIKICAgICAgPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7TC5pY29uTmFtZXx8IiJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICA8c3BhbiBjbGFzcz0idGFiTGFiZWwiPiR7TC5rZXl9PC9zcGFuPgogICAgICAgICR7TC5iYWRnZSE9PXZvaWQgMD9NYAogICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlICR7TC5iYWRnZVZhcmlhbnR8fCJkZWZhdWx0In0iPiR7TC5iYWRnZX08L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0idGFiLXRvb2x0aXAiPiR7TC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9Z2V0QWxsVGFicygpe3JldHVybiB0aGlzLm1lbnVHcm91cHMubGVuZ3RoPjA/Wy4uLnRoaXMubWVudUdyb3Vwcy5mbGF0TWFwKGs9PmsuaXRlbXMpLC4uLnRoaXMuYm90dG9tVGFic106Wy4uLnRoaXMudGFicywuLi50aGlzLmJvdHRvbVRhYnNdfXVwZGF0ZVRhYihMKXt0aGlzLnNlbGVjdGVkVGFiPUwsdGhpcy5zZWxlY3RlZFRhYi5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItc2VsZWN0Iix7ZGV0YWlsOnt0YWI6TH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1maXJzdFVwZGF0ZWQoKXtsZXQgTD10aGlzLmdldEFsbFRhYnMoKTtMLmxlbmd0aD4wJiZ0aGlzLnVwZGF0ZVRhYihMWzBdKX10b2dnbGVDb2xsYXBzZSgpe3RoaXMuY29sbGFwc2VkPSF0aGlzLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6e2NvbGxhcHNlZDp0aGlzLmNvbGxhcHNlZH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksQjIodGhpcywkKX1zdGF0aWN7QjIocixhKX19O3JldHVybiBIPXJ9KSgpO2ZlKCk7dmFyIFBJdD0oKT0+TWAKICA8c3R5bGU+CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGJhY2tncm91bmQ6ICMwZjBmMGY7CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBoMyB7CiAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICBtYXJnaW4tdG9wOiAwOwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBjb2RlIHsKICAgICAgYmFja2dyb3VuZDogIzI3MjcyYTsKICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIHVsIHsKICAgICAgbGluZS1oZWlnaHQ6IDEuODsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudQogICAgICAuaGVhZGluZz0keyJQcm9qZWN0cyJ9CiAgICAgIC5ncm91cHM9JHtbe25hbWU6Ik5hdmlnYXRpb24iLGljb25OYW1lOiJsdWNpZGU6Y29tcGFzcyIsaXRlbXM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkRhc2hib2FyZCBjbGlja2VkIiksYmFkZ2U6MyxiYWRnZVZhcmlhbnQ6Indhcm5pbmcifSx7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlByb2plY3RzIGNsaWNrZWQiKSxiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MifSx7a2V5OiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQyIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBbmFseXRpY3MgY2xpY2tlZCIpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQ3JlYXRlIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246KCk9PmFsZXJ0KCJDcmVhdGUgTmV3IGNsaWNrZWQhIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IERhdGEiLGljb25OYW1lOiJsdWNpZGU6dXBsb2FkIixhY3Rpb246KCk9PmFsZXJ0KCJJbXBvcnQgRGF0YSBjbGlja2VkISIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJhY3Rpb24iLGtleToiRGVsZXRlIEFsbCIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLHZhcmlhbnQ6ImRhbmdlciIsY29uZmlybU1lc3NhZ2U6IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYWxsIGl0ZW1zPyIsYWN0aW9uOigpPT5hbGVydCgiRGVsZXRlZCEiKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiU3RhdHVzIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFjdGl2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja0NpcmNsZSIsYWN0aXZlOiEwLG9uVG9nZ2xlOnQ9PmNvbnNvbGUubG9nKCJTaG93IEFjdGl2ZToiLHQpfSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgQXJjaGl2ZWQiLGljb25OYW1lOiJsdWNpZGU6YXJjaGl2ZSIsYWN0aXZlOiExLG9uVG9nZ2xlOnQ9PmNvbnNvbGUubG9nKCJTaG93IEFyY2hpdmVkOiIsdCl9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6Im11bHRpRmlsdGVyIixrZXk6IkNhdGVnb3JpZXMiLGljb25OYW1lOiJsdWNpZGU6dGFnIixjb2xsYXBzZWQ6ITEsb3B0aW9uczpbe2tleToiZnJvbnRlbmQiLGxhYmVsOiJGcm9udGVuZCIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOm1vbml0b3IifSx7a2V5OiJiYWNrZW5kIixsYWJlbDoiQmFja2VuZCIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOnNlcnZlciJ9LHtrZXk6ImRldm9wcyIsbGFiZWw6IkRldk9wcyIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOmNsb3VkIn0se2tleToiZGVzaWduIixsYWJlbDoiRGVzaWduIixjaGVja2VkOiExLGljb25OYW1lOiJsdWNpZGU6cGFsZXR0ZSJ9XSxvbkNoYW5nZTp0PT5jb25zb2xlLmxvZygiU2VsZWN0ZWQgY2F0ZWdvcmllczoiLHQpfV19LHtuYW1lOiJSZXNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6Ym9va09wZW4iLGNvbGxhcHNlZDohMCxpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IkRvY3VtZW50YXRpb24ifSx7dHlwZToibGluayIsa2V5OiJBUEkgUmVmZXJlbmNlIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixocmVmOiJodHRwczovL2FwaS5leGFtcGxlLmNvbS9kb2NzIn0se3R5cGU6ImxpbmsiLGtleToiVXNlciBHdWlkZSIsaWNvbk5hbWU6Imx1Y2lkZTpib29rIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vZ3VpZGUifSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJTdXBwb3J0In0se3R5cGU6ImxpbmsiLGtleToiSGVscCBDZW50ZXIiLGljb25OYW1lOiJsdWNpZGU6aGVscENpcmNsZSIsaHJlZjoiL2hlbHAiLGV4dGVybmFsOiExfSx7dHlwZToibGluayIsa2V5OiJHaXRIdWIgSXNzdWVzIixpY29uTmFtZToibHVjaWRlOmdpdGh1YiIsaHJlZjoiaHR0cHM6Ly9naXRodWIuY29tL2V4YW1wbGUvaXNzdWVzIn1dfV19CiAgICAgIEBpdGVtLXNlbGVjdD0ke3Q9PmNvbnNvbGUubG9nKCJUYWIgc2VsZWN0ZWQ6Iix0LmRldGFpbCl9CiAgICAgIEBhY3Rpb24tY2xpY2s9JHt0PT5jb25zb2xlLmxvZygiQWN0aW9uIGNsaWNrZWQ6Iix0LmRldGFpbCl9CiAgICAgIEBmaWx0ZXItdG9nZ2xlPSR7dD0+Y29uc29sZS5sb2coIkZpbHRlciB0b2dnbGVkOiIsdC5kZXRhaWwpfQogICAgICBAbXVsdGlmaWx0ZXItY2hhbmdlPSR7dD0+Y29uc29sZS5sb2coIk11bHRpLWZpbHRlciBjaGFuZ2VkOiIsdC5kZXRhaWwpfQogICAgICBAbGluay1jbGljaz0ke3Q9PmNvbnNvbGUubG9nKCJMaW5rIGNsaWNrZWQ6Iix0LmRldGFpbCl9CiAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICA8aDM+U2Vjb25kYXJ5IE1lbnUgRGVtbzwvaDM+CiAgICAgIDxwPlRoaXMgZGVtbyBzaG93Y2FzZXMgYWxsIDggaXRlbSB0eXBlczo8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+PGNvZGU+dGFiPC9jb2RlPiAtIFNlbGVjdGFibGUgaXRlbXMgKE5hdmlnYXRpb24gZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+YWN0aW9uPC9jb2RlPiAtIEJsdWUgYWN0aW9ucyAoQWN0aW9ucyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5hY3Rpb248L2NvZGU+IHdpdGggPGNvZGU+dmFyaWFudDogJ2Rhbmdlcic8L2NvZGU+IC0gUmVkIGRhbmdlciBhY3Rpb248L2xpPgogICAgICAgIDxsaT48Y29kZT5maWx0ZXI8L2NvZGU+IC0gQ2hlY2tib3ggdG9nZ2xlcyAoRmlsdGVycyBncm91cCk8L2xpPgogICAgICAgIDxsaT48Y29kZT5tdWx0aUZpbHRlcjwvY29kZT4gLSBDb2xsYXBzaWJsZSBtdWx0aS1zZWxlY3QgKENhdGVnb3JpZXMpPC9saT4KICAgICAgICA8bGk+PGNvZGU+ZGl2aWRlcjwvY29kZT4gLSBWaXN1YWwgc2VwYXJhdG9yczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmhlYWRlcjwvY29kZT4gLSBTZWN0aW9uIGxhYmVsczwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmxpbms8L2NvZGU+IC0gRXh0ZXJuYWwvaW50ZXJuYWwgbGlua3MgKFJlc291cmNlcyBncm91cCk8L2xpPgogICAgICA8L3VsPgogICAgICA8cD5UcnkgdGhlIGNvbGxhcHNlIHRvZ2dsZSBvbiB0aGUgbGVmdCBlZGdlITwvcD4KICAgIDwvZGl2PgogIDwvZGl2PgpgO0Z0KCk7ZmUoKTtCZSgpO3ZhciBWaT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LG8yPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxUbzE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXSx2LHk9W10sdz1bXSxFLEM9W10sej1bXSxQLF89W10sJD1bXSxILEw9W10saz1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IFM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpTdHJpbmd9KV0sZj1bRCh7dHlwZTpBcnJheX0pXSxkPVtEKHt0eXBlOkFycmF5fSldLGI9W0Qoe3R5cGU6T2JqZWN0fSldLHY9W2xlKCldLEU9W2xlKCldLFA9W2xlKCldLEg9W0Qoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFZpKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VD0+ImhlYWRpbmciaW4gVCxnZXQ6VD0+VC5oZWFkaW5nLHNldDooVCxSKT0+e1QuaGVhZGluZz1SfX0sbWV0YWRhdGE6U30scyxsKSxWaSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VD0+Imdyb3VwcyJpbiBULGdldDpUPT5ULmdyb3VwcyxzZXQ6KFQsUik9PntULmdyb3Vwcz1SfX0sbWV0YWRhdGE6U30sYyx1KSxWaSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJzZWxlY3Rpb25PcHRpb25zImluIFQsZ2V0OlQ9PlQuc2VsZWN0aW9uT3B0aW9ucyxzZXQ6KFQsUik9PntULnNlbGVjdGlvbk9wdGlvbnM9Un19LG1ldGFkYXRhOlN9LGgsZyksVmkodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJzZWxlY3RlZEl0ZW0iaW4gVCxnZXQ6VD0+VC5zZWxlY3RlZEl0ZW0sc2V0OihULFIpPT57VC5zZWxlY3RlZEl0ZW09Un19LG1ldGFkYXRhOlN9LHgsbSksVmkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWRHcm91cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJjb2xsYXBzZWRHcm91cHMiaW4gVCxnZXQ6VD0+VC5jb2xsYXBzZWRHcm91cHMsc2V0OihULFIpPT57VC5jb2xsYXBzZWRHcm91cHM9Un19LG1ldGFkYXRhOlN9LHksdyksVmkodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWRNdWx0aUZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJjb2xsYXBzZWRNdWx0aUZpbHRlcnMiaW4gVCxnZXQ6VD0+VC5jb2xsYXBzZWRNdWx0aUZpbHRlcnMsc2V0OihULFIpPT57VC5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9Un19LG1ldGFkYXRhOlN9LEMseiksVmkodGhpcyxudWxsLFAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5kZXJDb3VudGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4icmVuZGVyQ291bnRlciJpbiBULGdldDpUPT5ULnJlbmRlckNvdW50ZXIsc2V0OihULFIpPT57VC5yZW5kZXJDb3VudGVyPVJ9fSxtZXRhZGF0YTpTfSxfLCQpLFZpKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4iY29sbGFwc2VkImluIFQsZ2V0OlQ9PlQuY29sbGFwc2VkLHNldDooVCxSKT0+e1QuY29sbGFwc2VkPVJ9fSxtZXRhZGF0YTpTfSxMLGspLFZpKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOlN9LG51bGwsYSksTj1yPWUudmFsdWUsUyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpTfSl9c3RhdGljIGRlbW89UEl0O3N0YXRpYyBkZW1vR3JvdXA9IkFwcCBVSSI7I2U9bzIodGhpcyxzLCJNZW51Iik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhTKXt0aGlzLiNlPVN9I3Q9KG8yKHRoaXMsbCksbzIodGhpcyxjLFtdKSk7Z2V0IGdyb3Vwcygpe3JldHVybiB0aGlzLiN0fXNldCBncm91cHMoUyl7dGhpcy4jdD1TfSNhPShvMih0aGlzLHUpLG8yKHRoaXMsaCxbXSkpO2dldCBzZWxlY3Rpb25PcHRpb25zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGlvbk9wdGlvbnMoUyl7dGhpcy4jYT1TfSNyPShvMih0aGlzLGcpLG8yKHRoaXMseCxudWxsKSk7Z2V0IHNlbGVjdGVkSXRlbSgpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RlZEl0ZW0oUyl7dGhpcy4jcj1TfSNpPShvMih0aGlzLG0pLG8yKHRoaXMseSxuZXcgU2V0KSk7Z2V0IGNvbGxhcHNlZEdyb3Vwcygpe3JldHVybiB0aGlzLiNpfXNldCBjb2xsYXBzZWRHcm91cHMoUyl7dGhpcy4jaT1TfSNvPShvMih0aGlzLHcpLG8yKHRoaXMsQyxuZXcgU2V0KSk7Z2V0IGNvbGxhcHNlZE11bHRpRmlsdGVycygpe3JldHVybiB0aGlzLiNvfXNldCBjb2xsYXBzZWRNdWx0aUZpbHRlcnMoUyl7dGhpcy4jbz1TfSNzPShvMih0aGlzLHopLG8yKHRoaXMsXywwKSk7Z2V0IHJlbmRlckNvdW50ZXIoKXtyZXR1cm4gdGhpcy4jc31zZXQgcmVuZGVyQ291bnRlcihTKXt0aGlzLiNzPVN9I249KG8yKHRoaXMsJCksbzIodGhpcyxMLCExKSk7Z2V0IGNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNufXNldCBjb2xsYXBzZWQoUyl7dGhpcy4jbj1TfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIC0tc2lkZWJhci13aWR0aC1leHBhbmRlZDogMjQwcHg7CiAgICAgICAgLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZDogNTZweDsKICAgICAgICAtLXNpZGViYXItYmc6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAtLXNpZGViYXItZmc6ICR7cC5iZFRoZW1lKCIjNTI1MjUyIiwiI2EzYTNhMyIpfTsKICAgICAgICAtLXNpZGViYXItZmctbXV0ZWQ6ICR7cC5iZFRoZW1lKCIjNzM3MzczIiwiIzczNzM3MyIpfTsKICAgICAgICAtLXNpZGViYXItZmctYWN0aXZlOiAke3AuYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS1zaWRlYmFyLWJvcmRlcjogJHtwLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIC0tc2lkZWJhci1ob3ZlcjogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIC0tc2lkZWJhci1hY3RpdmU6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgICAtLXNpZGViYXItYWNjZW50OiAke3AuYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS10b29sdGlwLWJnOiAke3AuYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgLS10b29sdGlwLWZnOiAke3AuYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CgogICAgICAgIC8qIEJhZGdlIGNvbG9ycyAqLwogICAgICAgIC0tYmFkZ2UtZGVmYXVsdC1iZzogJHtwLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIC0tYmFkZ2UtZGVmYXVsdC1mZzogJHtwLmJkVGhlbWUoIiMzZjNmNDYiLCIjYTFhMWFhIil9OwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1iZzogJHtwLmJkVGhlbWUoIiNkY2ZjZTciLCIjMTQ1MzJkIil9OwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1mZzogJHtwLmJkVGhlbWUoIiMxNjY1MzQiLCIjNGFkZTgwIil9OwogICAgICAgIC0tYmFkZ2Utd2FybmluZy1iZzogJHtwLmJkVGhlbWUoIiNmZWYzYzciLCIjNDUxYTAzIil9OwogICAgICAgIC0tYmFkZ2Utd2FybmluZy1mZzogJHtwLmJkVGhlbWUoIiM5MjQwMGUiLCIjZmJiZjI0Iil9OwogICAgICAgIC0tYmFkZ2UtZXJyb3ItYmc6ICR7cC5iZFRoZW1lKCIjZmVlMmUyIiwiIzQ1MGEwYSIpfTsKICAgICAgICAtLWJhZGdlLWVycm9yLWZnOiAke3AuYmRUaGVtZSgiIzk5MWIxYiIsIiNmODcxNzEiKX07CgogICAgICAgIC8qIEFjdGlvbiBjb2xvcnMgKi8KICAgICAgICAtLWFjdGlvbi1wcmltYXJ5OiAke3AuYmRUaGVtZSgiIzI1NjNlYiIsIiMzYjgyZjYiKX07CiAgICAgICAgLS1hY3Rpb24tcHJpbWFyeS1ob3ZlcjogJHtwLmJkVGhlbWUoIiMxZDRlZDgiLCIjNjBhNWZhIil9OwogICAgICAgIC0tYWN0aW9uLWRhbmdlcjogJHtwLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIC0tYWN0aW9uLWRhbmdlci1ob3ZlcjogJHtwLmJkVGhlbWUoIiNiOTFjMWMiLCIjZjg3MTcxIil9OwoKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJnKTsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSB7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgtY29sbGFwc2VkKTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGNvbGxhcHNlIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMTJweDsKICAgICAgICB0b3A6IDI0cHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlNWU1IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzM3MzczIiwiI2ExYTFhYSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNGY0ZjUiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyIFNlY3Rpb24gKi8KICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5oZWFkZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAvKiBTY3JvbGxhYmxlIE1lbnUgU2VjdGlvbiAqLwogICAgICAubWVudVNlY3Rpb24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMjUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSIpfTsKICAgICAgfQoKICAgICAgLyogTWVudSBHcm91cCAqLwogICAgICAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlcjpob3ZlciB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoInJnYmEoMTQwLCAxMjAsIDEwMCwgMC4wNikiLCJyZ2JhKDE4MCwgMTYwLCAxNDAsIDAuMDgpIil9OwogICAgICAgIHBhZGRpbmc6IDdweCAxMXB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXI6bm90KC5jb2xsYXBzZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgxNDAsIDEyMCwgMTAwLCAwLjA2KSIsInJnYmEoMTgwLCAxNjAsIDE0MCwgMC4wOCkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmdyb3VwVGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3ODcxNmMiLCIjYjVhOTlhIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5ncm91cFRpdGxlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzc4NzE2YyIsIiNiNWE5OWEiKX07CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuY2hldnJvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzg3MTZjIiwiI2I1YTk5YSIpfTsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyLmNvbGxhcHNlZCAuY2hldnJvbiB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgfQoKICAgICAgLyogSGlkZSBncm91cCBoZWFkZXJzIHdoZW4gaG9yaXpvbnRhbGx5IGNvbGxhcHNlZCAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSGVhZGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEdyb3VwIEl0ZW1zIENvbnRhaW5lciAqLwogICAgICAuZ3JvdXBJdGVtcyB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlLCBtYXJnaW4gMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBJdGVtcy5jb2xsYXBzZWQgewogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBBbHdheXMgc2hvdyBpdGVtcyB3aGVuIGhvcml6b250YWxseSBjb2xsYXBzZWQgKHJlZ2FyZGxlc3Mgb2YgZ3JvdXAgY29sbGFwc2Ugc3RhdGUpICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBJdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogbm9uZTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBNZW51IEl0ZW0gQmFzZSAqLwogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIG1hcmdpbjogMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY3RpdmUpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0gLml0ZW1MYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIEFjdGlvbiBJdGVtIFN0eWxlcyAqLwogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1wcmltYXJ5LWhvdmVyKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgzNywgOTksIDIzNSwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeSBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlcik7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlci1ob3Zlcik7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMjIwLCAzOCwgMzgsIDAuMDgpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogRmlsdGVyIEl0ZW0gU3R5bGVzICovCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94IHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtwLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjNTI1MjUyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAvKiBNdWx0aS1GaWx0ZXIgQ29udGFpbmVyICovCiAgICAgIC5tdWx0aUZpbHRlciB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpIil9OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItdGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci10aXRsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLWNvdW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5jaGV2cm9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIuY29sbGFwc2VkIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9ucyB7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbnMuY29sbGFwc2VkIHsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveCB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzUyNTI1MiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiBkZWVzLWljb24ub3B0aW9uLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC8qIERpdmlkZXIgKi8KICAgICAgLm1lbnVEaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51RGl2aWRlciB7CiAgICAgICAgbWFyZ2luOiA4cHggNHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIvTGFiZWwgKi8KICAgICAgLm1lbnVIZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA0cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUhlYWRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTGluayBJdGVtICovCiAgICAgIC5tZW51SXRlbS5saW5rIC5leHRlcm5hbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgbWVudSBpdGVtIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5pdGVtTGFiZWwgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtLnNlbGVjdGVkOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmZpbHRlci1jaGVja2JveCwKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuZXh0ZXJuYWwtaWNvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tdWx0aUZpbHRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovCiAgICAgIC5pdGVtLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLml0ZW0tdG9vbHRpcDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbTpob3ZlciAuaXRlbS10b29sdGlwIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzOwogICAgICB9CgogICAgICAvKiBCYWRnZSBTdHlsZXMgKi8KICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYmFkZ2UuZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utc3VjY2Vzcy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXN1Y2Nlc3MtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXdhcm5pbmctZmcpOwogICAgICB9CgogICAgICAuYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWVycm9yLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBMZWdhY3kgb3B0aW9ucyBjb250YWluZXIgKi8KICAgICAgLmxlZ2FjeU9wdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICAvKiBEaXZpZGVyIChsZWdhY3kpICovCiAgICAgIC5kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5ncm91cHMubGVuZ3RoPjA/dGhpcy5yZW5kZXJHcm91cHMoKTp0aGlzLnJlbmRlckxlZ2FjeU9wdGlvbnMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvbGxhcHNlLXRvZ2dsZSIgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUNvbGxhcHNlKCl9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMuY29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblJpZ2h0IjoibHVjaWRlOmNoZXZyb25MZWZ0In0iPjwvZGVlcy1pY29uPgogICAgICA8L2J1dHRvbj4KICAgIGB9cmVuZGVyR3JvdXBzKCl7cmV0dXJuIE1gCiAgICAgICR7dGhpcy5ncm91cHMubWFwKFM9Pk1gCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9Imdyb3VwSGVhZGVyICR7dGhpcy5jb2xsYXBzZWRHcm91cHMuaGFzKFMubmFtZSk/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlR3JvdXAoUy5uYW1lKX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJncm91cFRpdGxlIj4KICAgICAgICAgICAgICAke1MuaWNvbk5hbWU/TWA8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihTLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgJHtTLm5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBJdGVtcyAke3RoaXMuY29sbGFwc2VkR3JvdXBzLmhhcyhTLm5hbWUpPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAgICR7Uy5pdGVtcy5tYXAoVD0+dGhpcy5yZW5kZXJJdGVtKFQsUykpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGApfQogICAgYH1yZW5kZXJJdGVtKFMsVCl7aWYoImhpZGRlbiJpbiBTJiZTLmhpZGRlbilyZXR1cm4gTWBgO3N3aXRjaCgidHlwZSJpbiBTP1MudHlwZToidGFiIil7Y2FzZSJhY3Rpb24iOnJldHVybiB0aGlzLnJlbmRlckFjdGlvbkl0ZW0oUyk7Y2FzZSJmaWx0ZXIiOnJldHVybiB0aGlzLnJlbmRlckZpbHRlckl0ZW0oUyk7Y2FzZSJtdWx0aUZpbHRlciI6cmV0dXJuIHRoaXMucmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFMpO2Nhc2UiZGl2aWRlciI6cmV0dXJuIHRoaXMucmVuZGVyRGl2aWRlcigpO2Nhc2UiaGVhZGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJIZWFkZXIoUyk7Y2FzZSJsaW5rIjpyZXR1cm4gdGhpcy5yZW5kZXJMaW5rSXRlbShTKTtkZWZhdWx0OnJldHVybiB0aGlzLnJlbmRlclRhYkl0ZW0oUyxUKX19cmVuZGVyVGFiSXRlbShTLFQpe2xldCBSPXRoaXMuc2VsZWN0ZWRJdGVtPy5rZXk9PT1TLmtleSxBPVMuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gTWAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSAke1I/InNlbGVjdGVkIjoiIn0gJHtBPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IUEmJnRoaXMuc2VsZWN0VGFiSXRlbShTLFQpfSIKICAgICAgICBAY29udGV4dG1lbnU9IiR7Rj0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShGLFMpfSIKICAgICAgPgogICAgICAgICR7Uy5pY29uTmFtZT9NYDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFMuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Mua2V5fTwvc3Bhbj4KICAgICAgICAke1MuYmFkZ2UhPT12b2lkIDA/TWAKICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke1MuYmFkZ2VWYXJpYW50fHwiZGVmYXVsdCJ9Ij4ke1MuYmFkZ2V9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtTLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25JdGVtKFMpe2xldCBUPVMudmFyaWFudHx8InByaW1hcnkiLFI9Uy5kaXNhYmxlZD09PSEwO3JldHVybiBNYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGFjdGlvbi0ke1R9ICR7Uj8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFSJiZ0aGlzLmhhbmRsZUFjdGlvbkNsaWNrKFMpfSIKICAgICAgPgogICAgICAgICR7Uy5pY29uTmFtZT9NYDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFMuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Mua2V5fTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4ke1Mua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbHRlckl0ZW0oUyl7bGV0IFQ9Uy5kaXNhYmxlZD09PSEwO3JldHVybiBNYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGZpbHRlciAke1MuYWN0aXZlPyJhY3RpdmUiOiIifSAke1Q/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hVCYmdGhpcy5oYW5kbGVGaWx0ZXJUb2dnbGUoUyl9IgogICAgICA+CiAgICAgICAgJHtTLmljb25OYW1lP01gPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oUy5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7Uy5rZXl9PC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1jaGVja2JveCAke1MuYWN0aXZlPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgJHtTLmFjdGl2ZT9NYDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpjaGVjayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7Uy5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFMpe2xldCBUPXRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLmhhcyhTLmtleSksUj1TLm9wdGlvbnMuZmlsdGVyKEE9PkEuY2hlY2tlZCkubGVuZ3RoO3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJtdWx0aUZpbHRlciI+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLWhlYWRlciAke1Q/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZU11bHRpRmlsdGVyKFMua2V5KX0iCiAgICAgICAgPgogICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpRmlsdGVyLXRpdGxlIj4KICAgICAgICAgICAgJHtTLmljb25OYW1lP01gPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oUy5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke1Mua2V5fQogICAgICAgICAgPC9zcGFuPgogICAgICAgICAgJHtSPjA/TWA8c3BhbiBjbGFzcz0ibXVsdGlGaWx0ZXItY291bnQiPiR7Un08L3NwYW4+YDoiIn0KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNoZXZyb24iIC5pY29uPSIkeyJsdWNpZGU6Y2hldnJvbkRvd24ifSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGlGaWx0ZXItb3B0aW9ucyAke1Q/ImNvbGxhcHNlZCI6IiJ9Ij4KICAgICAgICAgICR7Uy5vcHRpb25zLm1hcChBPT5NYAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLW9wdGlvbiIKICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuaGFuZGxlTXVsdGlGaWx0ZXJPcHRpb25Ub2dnbGUoUyxBLmtleSl9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9uLWNoZWNrYm94ICR7QS5jaGVja2VkPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgICAgICAgJHtBLmNoZWNrZWQ/TWA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6Y2hlY2sifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAke0EuaWNvbk5hbWU/TWA8ZGVlcy1pY29uIGNsYXNzPSJvcHRpb24taWNvbiIgLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKEEuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8c3Bhbj4ke0EubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGl2aWRlcigpe3JldHVybiBNYDxkaXYgY2xhc3M9Im1lbnVEaXZpZGVyIj48L2Rpdj5gfXJlbmRlckhlYWRlcihTKXtyZXR1cm4gTWA8ZGl2IGNsYXNzPSJtZW51SGVhZGVyIj4ke1MubGFiZWx9PC9kaXY+YH1yZW5kZXJMaW5rSXRlbShTKXtsZXQgVD1TLmV4dGVybmFsPz9TLmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpLFI9Uy5kaXNhYmxlZD09PSEwO3JldHVybiBNYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGxpbmsgJHtSPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IVImJnRoaXMuaGFuZGxlTGlua0NsaWNrKFMpfSIKICAgICAgPgogICAgICAgICR7Uy5pY29uTmFtZT9NYDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFMuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Mua2V5fTwvc3Bhbj4KICAgICAgICAke1Q/TWA8ZGVlcy1pY29uIGNsYXNzPSJleHRlcm5hbC1pY29uIiAuaWNvbj0iJHsibHVjaWRlOmV4dGVybmFsTGluayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7Uy5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTGVnYWN5T3B0aW9ucygpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJsZWdhY3lPcHRpb25zIj4KICAgICAgICAke3RoaXMuc2VsZWN0aW9uT3B0aW9ucy5tYXAoUz0+e2lmKCJkaXZpZGVyImluIFMmJlMuZGl2aWRlcilyZXR1cm4gTWA8ZGl2IGNsYXNzPSJkaXZpZGVyIj48L2Rpdj5gO2xldCBUPVMsUj17a2V5OlQua2V5LGljb25OYW1lOlQuaWNvbk5hbWUsYWN0aW9uOlQuYWN0aW9uLGJhZGdlOlQuYmFkZ2UsYmFkZ2VWYXJpYW50OlQuYmFkZ2VWYXJpYW50fTtyZXR1cm4gdGhpcy5yZW5kZXJUYWJJdGVtKFIpfSl9CiAgICAgIDwvZGl2PgogICAgYH1ub3JtYWxpemVJY29uKFMpe3JldHVybiBTLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9TOmBsdWNpZGU6JHtTfWB9dG9nZ2xlR3JvdXAoUyl7bGV0IFQ9bmV3IFNldCh0aGlzLmNvbGxhcHNlZEdyb3Vwcyk7VC5oYXMoUyk/VC5kZWxldGUoUyk6VC5hZGQoUyksdGhpcy5jb2xsYXBzZWRHcm91cHM9VH10b2dnbGVNdWx0aUZpbHRlcihTKXtsZXQgVD1uZXcgU2V0KHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzKTtULmhhcyhTKT9ULmRlbGV0ZShTKTpULmFkZChTKSx0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycz1UfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXNlbGVjdFRhYkl0ZW0oUyxUKXt0aGlzLnNlbGVjdGVkSXRlbT1TLFMuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06Uyxncm91cDpUfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGhhbmRsZUFjdGlvbkNsaWNrKFMpe1MuY29uZmlybU1lc3NhZ2UmJiF3aW5kb3cuY29uZmlybShTLmNvbmZpcm1NZXNzYWdlKXx8KGF3YWl0IFMuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOntpdGVtOlN9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZUZpbHRlclRvZ2dsZShTKXtsZXQgVD0hUy5hY3RpdmU7Uy5hY3RpdmU9VCxTLm9uVG9nZ2xlKFQpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbHRlci10b2dnbGUiLHtkZXRhaWw6e2l0ZW06UyxhY3RpdmU6VH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNdWx0aUZpbHRlck9wdGlvblRvZ2dsZShTLFQpe2xldCBSPVMub3B0aW9ucy5maW5kKEY9PkYua2V5PT09VCk7UiYmKFIuY2hlY2tlZD0hUi5jaGVja2VkKTtsZXQgQT1TLm9wdGlvbnMuZmlsdGVyKEY9PkYuY2hlY2tlZCkubWFwKEY9PkYua2V5KTtTLm9uQ2hhbmdlKEEpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm11bHRpZmlsdGVyLWNoYW5nZSIse2RldGFpbDp7aXRlbTpTLHNlbGVjdGVkS2V5czpBfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUxpbmtDbGljayhTKXtTLmV4dGVybmFsPz9TLmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpP3dpbmRvdy5vcGVuKFMuaHJlZiwiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpOndpbmRvdy5sb2NhdGlvbi5ocmVmPVMuaHJlZix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsaW5rLWNsaWNrIix7ZGV0YWlsOntpdGVtOlN9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGV4dE1lbnUoUyxUKXtXdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhTLFt7bmFtZToiVmlldyBkZXRhaWxzIixhY3Rpb246YXN5bmMoKT0+e30saWNvbk5hbWU6Imx1Y2lkZTpleWUifSx7bmFtZToiRWRpdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIn1dKX1hc3luYyBmaXJzdFVwZGF0ZWQoUyl7aWYoYXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKFMpLHRoaXMuZ3JvdXBzLmxlbmd0aD4wKXtsZXQgVD1uZXcgU2V0LFI9bmV3IFNldDtpZih0aGlzLmdyb3Vwcy5mb3JFYWNoKEE9PntBLmNvbGxhcHNlZCYmVC5hZGQoQS5uYW1lKSxBLml0ZW1zLmZvckVhY2goRj0+e2lmKCJ0eXBlImluIEYmJkYudHlwZT09PSJtdWx0aUZpbHRlciIpe2xldCBhZT1GO2FlLmNvbGxhcHNlZCYmUi5hZGQoYWUua2V5KX19KX0pLHRoaXMuY29sbGFwc2VkR3JvdXBzPVQsdGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9UiwhdGhpcy5zZWxlY3RlZEl0ZW0pZm9yKGxldCBBIG9mIHRoaXMuZ3JvdXBzKWZvcihsZXQgRiBvZiBBLml0ZW1zKXtsZXQgYWU9InR5cGUiaW4gRj9GLnR5cGU6InRhYiI7aWYoYWU9PT0idGFiInx8YWU9PT12b2lkIDApe2xldCBWPUY7aWYoIVYuZGlzYWJsZWQpe3RoaXMuc2VsZWN0VGFiSXRlbShWLEEpO3JldHVybn19fX1lbHNlIGlmKHRoaXMuc2VsZWN0aW9uT3B0aW9ucy5sZW5ndGg+MCl7bGV0IFQ9dGhpcy5zZWxlY3Rpb25PcHRpb25zLmZpbmQoUj0+ISgiZGl2aWRlciJpbiBSKSk7aWYoVCYmIXRoaXMuc2VsZWN0ZWRJdGVtKXtsZXQgUj17a2V5OlQua2V5LGljb25OYW1lOlQuaWNvbk5hbWUsYWN0aW9uOlQuYWN0aW9ufTt0aGlzLnNlbGVjdFRhYkl0ZW0oUil9fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksbzIodGhpcyxrKX1zdGF0aWN7bzIocixhKX19O3JldHVybiBOPXJ9KSgpO2ZlKCk7dmFyIFVsPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sTmE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LG5FYT0oKCk9PntsZXQgdD1bY2UoImRlbW8tY2xvc2VhYmxlLXRhYnMiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bbGUoKV0sZj1bbGUoKV0sVWwodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4idGFicyJpbiBnLGdldDpnPT5nLnRhYnMsc2V0OihnLGIpPT57Zy50YWJzPWJ9fSxtZXRhZGF0YTpofSxzLGwpLFVsKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQ291bnRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InRhYkNvdW50ZXIiaW4gZyxnZXQ6Zz0+Zy50YWJDb3VudGVyLHNldDooZyxiKT0+e2cudGFiQ291bnRlcj1ifX0sbWV0YWRhdGE6aH0sYyx1KSxVbChudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpofSxudWxsLGEpLGQ9cj1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfSNlPU5hKHRoaXMscyxbe2tleToiTWFpbiIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJNYWluIGNsaWNrZWQiKX1dKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKGgpe3RoaXMuI2U9aH0jdD0oTmEodGhpcyxsKSxOYSh0aGlzLGMsMCkpO2dldCB0YWJDb3VudGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRhYkNvdW50ZXIoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W3RlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgLmNvbnRyb2xzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgIH0KICAgICAgLmluZm8gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjAyKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO2FkZFRhYigpe3RoaXMudGFiQ291bnRlcisrO2xldCBoPWBEb2N1bWVudCAke3RoaXMudGFiQ291bnRlcn1gO3RoaXMudGFicz1bLi4udGhpcy50YWJzLHtrZXk6aCxpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coYCR7aH0gY2xpY2tlZGApLGNsb3NlYWJsZTohMCxvbkNsb3NlOigpPT50aGlzLnJlbW92ZVRhYihoKX1dfXJlbW92ZVRhYihoKXt0aGlzLnRhYnM9dGhpcy50YWJzLmZpbHRlcihnPT5nLmtleSE9PWgpfXJlbmRlcigpe3JldHVybiBNYAogICAgICA8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgQHRhYi1jbG9zZT0ke2g9PnRoaXMucmVtb3ZlVGFiKGguZGV0YWlsLnRhYi5rZXkpfQogICAgICA+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLmFkZFRhYigpfT4rIEFkZCBOZXcgVGFiPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBDbGljayB0aGUgWCBidXR0b24gb24gdGFicyB0byBjbG9zZSB0aGVtLiBUaGUgIk1haW4iIHRhYiBpcyBub3QgY2xvc2VhYmxlLgogICAgICAgIDxicj5DdXJyZW50IHRhYnM6ICR7dGhpcy50YWJzLmxlbmd0aH0KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxOYSh0aGlzLHUpfXN0YXRpY3tOYShyLGEpfX07cmV0dXJuIGQ9cn0pKCksbEVhPSgoKT0+e2xldCB0PVtjZSgiZGVtby1hdXRvaGlkZS10YWJzIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W107dmFyIGI9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCB4PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W2xlKCldLGY9W2xlKCldLGQ9W2xlKCldLFVsKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InRhYnMiaW4gbSxnZXQ6bT0+bS50YWJzLHNldDoobSx2KT0+e20udGFicz12fX0sbWV0YWRhdGE6eH0scyxsKSxVbCh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4iYXV0b0hpZGUiaW4gbSxnZXQ6bT0+bS5hdXRvSGlkZSxzZXQ6KG0sdik9PnttLmF1dG9IaWRlPXZ9fSxtZXRhZGF0YTp4fSxjLHUpLFVsKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4idGhyZXNob2xkImluIG0sZ2V0Om09Pm0udGhyZXNob2xkLHNldDoobSx2KT0+e20udGhyZXNob2xkPXZ9fSxtZXRhZGF0YTp4fSxoLGcpLFVsKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOnh9LG51bGwsYSksYj1yPWUudmFsdWUseCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp4fSl9I2U9TmEodGhpcyxzLFt7a2V5OiJUYWIgMSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJUYWIgMSIpfSx7a2V5OiJUYWIgMiIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJUYWIgMiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoeCl7dGhpcy4jZT14fSN0PShOYSh0aGlzLGwpLE5hKHRoaXMsYywhMCkpO2dldCBhdXRvSGlkZSgpe3JldHVybiB0aGlzLiN0fXNldCBhdXRvSGlkZSh4KXt0aGlzLiN0PXh9I2E9KE5hKHRoaXMsdSksTmEodGhpcyxoLDEpKTtnZXQgdGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRocmVzaG9sZCh4KXt0aGlzLiNhPXh9c3RhdGljIHN0eWxlcz1bdGVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICAgIC50YWJzLWNvbnRhaW5lciBkZWVzLWFwcHVpLXRhYnMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5wbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KICAgICAgLmluZm8gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjAyKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3RhYkNvdW50ZXI9KE5hKHRoaXMsZyksMik7YWRkVGFiKCl7dGhpcy50YWJDb3VudGVyKyssdGhpcy50YWJzPVsuLi50aGlzLnRhYnMse2tleTpgVGFiICR7dGhpcy50YWJDb3VudGVyfWAsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKGBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YCl9XX1yZW1vdmVMYXN0VGFiKCl7dGhpcy50YWJzLmxlbmd0aD4wJiYodGhpcy50YWJzPXRoaXMudGFicy5zbGljZSgwLC0xKSl9Y2xlYXJUYWJzKCl7dGhpcy50YWJzPVtdfXJlbmRlcigpe2xldCB4PXRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMudGhyZXNob2xkO3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgJHt4P01gPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyIj5UYWJzIGhpZGRlbiAoJHt0aGlzLnRhYnMubGVuZ3RofSB0YWJzIOKJpCB0aHJlc2hvbGQgJHt0aGlzLnRocmVzaG9sZH0pPC9zcGFuPmA6TWA8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy5hdXRvSGlkZX0KICAgICAgICAgICAgICAuYXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLnRocmVzaG9sZH0KICAgICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPmB9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRUYWIoKX0+KyBBZGQgVGFiPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVMYXN0VGFiKCl9Pi0gUmVtb3ZlIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY2xlYXJUYWJzKCl9PkNsZWFyIEFsbDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0wfX0+VGhyZXNob2xkOiAwPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTF9fT5UaHJlc2hvbGQ6IDE8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9Mn19PlRocmVzaG9sZDogMjwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgQXV0by1oaWRlOiAke3RoaXMuYXV0b0hpZGU/Ik9OIjoiT0ZGIn0gfCBUaHJlc2hvbGQ6ICR7dGhpcy50aHJlc2hvbGR9IHwgVGFiczogJHt0aGlzLnRhYnMubGVuZ3RofQogICAgICAgIDxicj5UYWJzIHdpbGwgaGlkZSB3aGVuIGNvdW50IOKJpCB0aHJlc2hvbGQuCiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7TmEocixhKX19O3JldHVybiBiPXJ9KSgpLElJdD0oKT0+e2xldCB0PVt7a2V5OiJIb21lIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkhvbWUgY2xpY2tlZCIpfSx7a2V5OiJBbmFseXRpY3MgRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxpbmVDaGFydCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQW5hbHl0aWNzIGNsaWNrZWQiKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVwb3J0cyBjbGlja2VkIil9LHtrZXk6IlVzZXIgU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIGNsaWNrZWQiKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJIZWxwIGNsaWNrZWQiKX1dLGU9W3trZXk6IlByb2ZpbGUiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUHJvZmlsZSBjbGlja2VkIil9LHtrZXk6IlNlY3VyaXR5IixpY29uTmFtZToibHVjaWRlOnNoaWVsZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiU2VjdXJpdHkgY2xpY2tlZCIpfSx7a2V5OiJOb3RpZmljYXRpb25zIixpY29uTmFtZToibHVjaWRlOmJlbGwiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk5vdGlmaWNhdGlvbnMgY2xpY2tlZCIpfSx7a2V5OiJJbnRlZ3JhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6bGluayIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiSW50ZWdyYXRpb25zIGNsaWNrZWQiKX0se2tleToiQWR2YW5jZWQiLGljb25OYW1lOiJsdWNpZGU6Y29kZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQWR2YW5jZWQgY2xpY2tlZCIpfV0sYT1be2tleToiQWxsIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBbGwgY2xpY2tlZCIpfSx7a2V5OiJBY3RpdmUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFjdGl2ZSBjbGlja2VkIil9LHtrZXk6IkNvbXBsZXRlZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQ29tcGxldGVkIGNsaWNrZWQiKX0se2tleToiQXJjaGl2ZWQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFyY2hpdmVkIGNsaWNrZWQiKX1dLHI9aT0+TWAKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07Ij4KICAgICAgJHtpfQogICAgPC9kaXY+CiAgYDtyZXR1cm4gTWAKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICB9CgogICAgICAuc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudHdvLWNvbHVtbiB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwMHB4IDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ib3Jpem9udGFsIFRhYnMgd2l0aCBBbmltYXRlZCBJbmRpY2F0b3I8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC50YWJzPSR7dH0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgJHtyKCJTZWxlY3QgYSB0YWIgdG8gc2VlIHRoZSBzbW9vdGggc2xpZGluZyBhbmltYXRpb24gb2YgdGhlIGluZGljYXRvci4gVGhlIGluZGljYXRvciBhdXRvbWF0aWNhbGx5IGFkanVzdHMgaXRzIHdpZHRoIHRvIG1hdGNoIHRoZSB0YWIgY29udGVudCB3aXRoIG1pbmltYWwgcGFkZGluZy4iKX0KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DbG9zZWFibGUgVGFicyAoQnJvd3Nlci1zdHlsZSk8L2Rpdj4KICAgICAgICA8ZGVtby1jbG9zZWFibGUtdGFicz48L2RlbW8tY2xvc2VhYmxlLXRhYnM+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXV0by1oaWRlIFRhYnM8L2Rpdj4KICAgICAgICA8ZGVtby1hdXRvaGlkZS10YWJzPjwvZGVtby1hdXRvaGlkZS10YWJzPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlZlcnRpY2FsIFRhYnMgTGF5b3V0PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idHdvLWNvbHVtbiI+CiAgICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC50YWJTdHlsZT0keyJ2ZXJ0aWNhbCJ9IC50YWJzPSR7ZX0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgICAke3IoIlZlcnRpY2FsIHRhYnMgd29yayBncmVhdCBmb3Igc2V0dGluZ3MgcGFnZXMgYW5kIG5hdmlnYXRpb24gbWVudXMuIFRoZSBhbmltYXRlZCBpbmRpY2F0b3Igc21vb3RobHkgdHJhbnNpdGlvbnMgYmV0d2VlbiBzZWxlY3Rpb25zLiIpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPldpdGhvdXQgSW5kaWNhdG9yPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicyAuc2hvd1RhYkluZGljYXRvcj0keyExfSAudGFicz0ke2F9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7cigiVGFicyBjYW4gYWxzbyBiZSB1c2VkIHdpdGhvdXQgdGhlIGFuaW1hdGVkIGluZGljYXRvciBieSBzZXR0aW5nIHNob3dUYWJJbmRpY2F0b3IgdG8gZmFsc2UuIil9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH07ZmUoKTtTdCgpO0JlKCk7dmFyIFVpPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sczI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LF9vMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtYXBwdWktdGFicyIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdLEUsQz1bXSx6PVtdLFAsXz1bXSwkPVtdLEgsTD1bXSxrPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgUz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOkFycmF5fSldLGY9W0Qoe3R5cGU6T2JqZWN0fSldLGQ9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxiPVtEKHt0eXBlOlN0cmluZ30pXSx2PVtEKHt0eXBlOkJvb2xlYW59KV0sRT1bRCh7dHlwZTpOdW1iZXJ9KV0sUD1bbGUoKV0sSD1bbGUoKV0sVWkodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4idGFicyJpbiBULGdldDpUPT5ULnRhYnMsc2V0OihULFIpPT57VC50YWJzPVJ9fSxtZXRhZGF0YTpTfSxzLGwpLFVpKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJzZWxlY3RlZFRhYiJpbiBULGdldDpUPT5ULnNlbGVjdGVkVGFiLHNldDooVCxSKT0+e1Quc2VsZWN0ZWRUYWI9Un19LG1ldGFkYXRhOlN9LGMsdSksVWkodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGFiSW5kaWNhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4ic2hvd1RhYkluZGljYXRvciJpbiBULGdldDpUPT5ULnNob3dUYWJJbmRpY2F0b3Isc2V0OihULFIpPT57VC5zaG93VGFiSW5kaWNhdG9yPVJ9fSxtZXRhZGF0YTpTfSxoLGcpLFVpKHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiU3R5bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJ0YWJTdHlsZSJpbiBULGdldDpUPT5ULnRhYlN0eWxlLHNldDooVCxSKT0+e1QudGFiU3R5bGU9Un19LG1ldGFkYXRhOlN9LHgsbSksVWkodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VD0+ImF1dG9IaWRlImluIFQsZ2V0OlQ9PlQuYXV0b0hpZGUsc2V0OihULFIpPT57VC5hdXRvSGlkZT1SfX0sbWV0YWRhdGE6U30seSx3KSxVaSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4iYXV0b0hpZGVUaHJlc2hvbGQiaW4gVCxnZXQ6VD0+VC5hdXRvSGlkZVRocmVzaG9sZCxzZXQ6KFQsUik9PntULmF1dG9IaWRlVGhyZXNob2xkPVJ9fSxtZXRhZGF0YTpTfSxDLHopLFVpKHRoaXMsbnVsbCxQLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2FuU2Nyb2xsTGVmdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VD0+ImNhblNjcm9sbExlZnQiaW4gVCxnZXQ6VD0+VC5jYW5TY3JvbGxMZWZ0LHNldDooVCxSKT0+e1QuY2FuU2Nyb2xsTGVmdD1SfX0sbWV0YWRhdGE6U30sXywkKSxVaSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhblNjcm9sbFJpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4iY2FuU2Nyb2xsUmlnaHQiaW4gVCxnZXQ6VD0+VC5jYW5TY3JvbGxSaWdodCxzZXQ6KFQsUik9PntULmNhblNjcm9sbFJpZ2h0PVJ9fSxtZXRhZGF0YTpTfSxMLGspLFVpKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOlN9LG51bGwsYSksTj1yPWUudmFsdWUsUyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpTfSl9c3RhdGljIGRlbW89SUl0O3N0YXRpYyBkZW1vR3JvdXA9IkFwcCBVSSI7I2U9czIodGhpcyxzLFtdKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKFMpe3RoaXMuI2U9U30jdD0oczIodGhpcyxsKSxzMih0aGlzLGMsbnVsbCkpO2dldCBzZWxlY3RlZFRhYigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFRhYihTKXt0aGlzLiN0PVN9I2E9KHMyKHRoaXMsdSksczIodGhpcyxoLCEwKSk7Z2V0IHNob3dUYWJJbmRpY2F0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1RhYkluZGljYXRvcihTKXt0aGlzLiNhPVN9I3I9KHMyKHRoaXMsZyksczIodGhpcyx4LCJob3Jpem9udGFsIikpO2dldCB0YWJTdHlsZSgpe3JldHVybiB0aGlzLiNyfXNldCB0YWJTdHlsZShTKXt0aGlzLiNyPVN9I2k9KHMyKHRoaXMsbSksczIodGhpcyx5LCExKSk7Z2V0IGF1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGF1dG9IaWRlKFMpe3RoaXMuI2k9U30jbz0oczIodGhpcyx3KSxzMih0aGlzLEMsMCkpO2dldCBhdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNvfXNldCBhdXRvSGlkZVRocmVzaG9sZChTKXt0aGlzLiNvPVN9I3M9KHMyKHRoaXMseiksczIodGhpcyxfLCExKSk7Z2V0IGNhblNjcm9sbExlZnQoKXtyZXR1cm4gdGhpcy4jc31zZXQgY2FuU2Nyb2xsTGVmdChTKXt0aGlzLiNzPVN9I249KHMyKHRoaXMsJCksczIodGhpcyxMLCExKSk7Z2V0IGNhblNjcm9sbFJpZ2h0KCl7cmV0dXJuIHRoaXMuI259c2V0IGNhblNjcm9sbFJpZ2h0KFMpe3RoaXMuI249U31yZXNpemVPYnNlcnZlcj0oczIodGhpcyxrKSxudWxsKTtzdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIuaG9yaXpvbnRhbC13cmFwcGVyIHsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbCBmYWRlIGluZGljYXRvcnMgKi8KICAgICAgLnNjcm9sbC1mYWRlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMXB4OwogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS1sZWZ0IHsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwKICAgICAgICAgICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE2MTYxNiIpfSAwJSwKICAgICAgICAgICR7cC5iZFRoZW1lKCJyZ2JhKDI1NSwyNTUsMjU1LDApIiwicmdiYSgyMiwyMiwyMiwwKSIpfSAxMDAlKTsKICAgICAgfQoKICAgICAgLnNjcm9sbC1mYWRlLXJpZ2h0IHsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwKICAgICAgICAgICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE2MTYxNiIpfSAwJSwKICAgICAgICAgICR7cC5iZFRoZW1lKCJyZ2JhKDI1NSwyNTUsMjU1LDApIiwicmdiYSgyMiwyMiwyMiwwKSIpfSAxMDAlKTsKICAgICAgfQoKICAgICAgLnNjcm9sbC1mYWRlLnZpc2libGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLyogU2hvdyBzY3JvbGxiYXIgb24gaG92ZXIgKi8KICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMikiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMikiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9OwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLDAsMCwwLjM1KSIsInJnYmEoMjU1LDI1NSwyNTUsMC4zNSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLnZlcnRpY2FsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KCiAgICAgIC5ob3Jpem9udGFsIC50YWIgewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IC0ycHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWIgLnRhYi1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudmVydGljYWwgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXIgKyAudGFiOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDI0NCwgMjQ0LCAyNDUsIDAuNSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuNSkiKX07CiAgICAgIH0KCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWI6OmFmdGVyLAogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiICsgLnRhYjo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbCAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFiIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAudGFiSW5kaWNhdG9yIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CiAgICAgIAogICAgICAudGFiSW5kaWNhdG9yLm5vLXRyYW5zaXRpb24gewogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDsKICAgICAgICB6LWluZGV4OiAzOwogICAgICB9CgogICAgICAudmVydGljYWwtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudmVydGljYWwtd3JhcHBlciAudGFiSW5kaWNhdG9yIHsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wOCk7CiAgICAgIH0KCiAgICAgIC8qIENsb3NlIGJ1dHRvbiAqLwogICAgICAudGFiLWNsb3NlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICB9CgogICAgICAudGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLDAsMCwwLjEpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjEpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2VmNDQ0NCIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5hdXRvSGlkZSYmdGhpcy50YWJzLmxlbmd0aDw9dGhpcy5hdXRvSGlkZVRocmVzaG9sZD9NYGA6TWAKICAgICAgJHt0aGlzLnJlbmRlclRhYnNXcmFwcGVyKCl9CiAgICBgfXJlbmRlclRhYnNXcmFwcGVyKCl7bGV0IFM9dGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIixUPVM/InRhYnMtd3JhcHBlciBob3Jpem9udGFsLXdyYXBwZXIiOiJ2ZXJ0aWNhbC13cmFwcGVyIixSPWB0YWJzQ29udGFpbmVyICR7dGhpcy50YWJTdHlsZX1gO3JldHVybiBTP01gCiAgICAgICAgPGRpdiBjbGFzcz0iJHtUfSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtZmFkZSBzY3JvbGwtZmFkZS1sZWZ0ICR7dGhpcy5jYW5TY3JvbGxMZWZ0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iJHtSfSIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT4KICAgICAgICAgICAgJHt0aGlzLnRhYnMubWFwKEE9PnRoaXMucmVuZGVyVGFiKEEsUykpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtZmFkZSBzY3JvbGwtZmFkZS1yaWdodCAke3RoaXMuY2FuU2Nyb2xsUmlnaHQ/InZpc2libGUiOiIifSI+PC9kaXY+CiAgICAgICAgICAke3RoaXMuc2hvd1RhYkluZGljYXRvcj9NYDxkaXYgY2xhc3M9InRhYkluZGljYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYDpNYAogICAgICA8ZGl2IGNsYXNzPSIke1R9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSIke1J9Ij4KICAgICAgICAgICR7dGhpcy50YWJzLm1hcChBPT50aGlzLnJlbmRlclRhYihBLFMpKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc2hvd1RhYkluZGljYXRvcj9NYDxkaXYgY2xhc3M9InRhYkluZGljYXRvciI+PC9kaXY+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihTLFQpe2xldCBBPWB0YWIgJHtTPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifWAsRj1TLmNsb3NlYWJsZT9NYAogICAgICA8c3BhbiBjbGFzcz0idGFiLWNsb3NlIiBAY2xpY2s9IiR7Vj0+dGhpcy5jbG9zZVRhYihWLFMpfSI+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij48L2RlZXMtaWNvbj4KICAgICAgPC9zcGFuPgogICAgYDoiIixhZT1UP01gCiAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY29udGVudCI+CiAgICAgICAgJHt0aGlzLnJlbmRlclRhYkljb24oUyl9CiAgICAgICAgJHtTLmtleX0KICAgICAgPC9zcGFuPgogICAgICAke0Z9CiAgICBgOk1gCiAgICAgICR7dGhpcy5yZW5kZXJUYWJJY29uKFMpfQogICAgICAke1Mua2V5fQogICAgICAke0Z9CiAgICBgO3JldHVybiBNYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IiR7QX0iCiAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnNlbGVjdFRhYihTKX0iCiAgICAgID4KICAgICAgICAke2FlfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVGFiSWNvbihTKXtyZXR1cm4gUy5pY29uTmFtZT9NYDxkZWVzLWljb24gLmljb249JHtTLmljb25OYW1lfT48L2RlZXMtaWNvbj5gOiIifXNlbGVjdFRhYihTKXt0aGlzLnNlbGVjdGVkVGFiPVMsUy5hY3Rpb24oKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNjcm9sbFRhYkludG9WaWV3KFMpfSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDp7dGFiOlN9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2xvc2VUYWIoUyxUKXtTLnN0b3BQcm9wYWdhdGlvbigpLFQub25DbG9zZSYmVC5vbkNsb3NlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNsb3NlIix7ZGV0YWlsOnt0YWI6VH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnRhYnMmJnRoaXMudGFicy5sZW5ndGg+MCYmdGhpcy5zZWxlY3RUYWIodGhpcy50YWJzWzBdKSx0aGlzLnNldHVwUmVzaXplT2JzZXJ2ZXIoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlKCl9KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bnVsbCl9c2V0dXBSZXNpemVPYnNlcnZlcigpe2lmKHRoaXMudGFiU3R5bGUhPT0iaG9yaXpvbnRhbCIpcmV0dXJuO3RoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSk7bGV0IFM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7UyYmdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKFMpfWhhbmRsZVNjcm9sbD0oKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX07dXBkYXRlU2Nyb2xsU3RhdGUoKXtsZXQgUz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJzQ29udGFpbmVyLmhvcml6b250YWwiKTtpZighUylyZXR1cm47bGV0IFQ9Uy5zY3JvbGxMZWZ0LFI9Uy5zY3JvbGxXaWR0aCxBPVMuY2xpZW50V2lkdGgsRj0yO3RoaXMuY2FuU2Nyb2xsTGVmdD1UPkYsdGhpcy5jYW5TY3JvbGxSaWdodD1UPFItQS1GfXNjcm9sbFRhYkludG9WaWV3KFMpe2lmKHRoaXMudGFiU3R5bGUhPT0iaG9yaXpvbnRhbCIpcmV0dXJuO2xldCBUPXRoaXMudGFicy5pbmRleE9mKFMpO2lmKFQ9PT0tMSlyZXR1cm47bGV0IFI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIiksQT1SPy5xdWVyeVNlbGVjdG9yKGAudGFiOm50aC1jaGlsZCgke1QrMX0pYCk7aWYoQSYmUil7bGV0IEY9Ui5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhZT1BLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2FlLmxlZnQ+PUYubGVmdCYmYWUucmlnaHQ8PUYucmlnaHR8fEEuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJuZWFyZXN0IixpbmxpbmU6Im5lYXJlc3QifSl9fWFzeW5jIHVwZGF0ZWQoUyl7c3VwZXIudXBkYXRlZChTKSxTLmhhcygidGFicyIpJiZ0aGlzLnRhYnMmJnRoaXMudGFicy5sZW5ndGg+MCYmIXRoaXMuc2VsZWN0ZWRUYWImJnRoaXMuc2VsZWN0VGFiKHRoaXMudGFic1swXSksKFMuaGFzKCJzZWxlY3RlZFRhYiIpfHxTLmhhcygidGFicyIpKSYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsIXRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQmJmRvY3VtZW50LmZvbnRzJiZhd2FpdCBkb2N1bWVudC5mb250cy5yZWFkeSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnVwZGF0ZVRhYkluZGljYXRvcigpLHRoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pKX1pbmRpY2F0b3JJbml0aWFsaXplZD0hMTt1cGRhdGVUYWJJbmRpY2F0b3IoKXtpZighdGhpcy5zaG91bGRTaG93SW5kaWNhdG9yKCkpcmV0dXJuO2xldCBTPXRoaXMuZ2V0U2VsZWN0ZWRUYWJFbGVtZW50KCk7aWYoIVMpcmV0dXJuO2xldCBUPXRoaXMuZ2V0SW5kaWNhdG9yRWxlbWVudCgpO1QmJih0aGlzLmhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKFQpLHRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCI/dGhpcy51cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKFQsUyk6dGhpcy51cGRhdGVWZXJ0aWNhbEluZGljYXRvcihULFMpLFQuc3R5bGUub3BhY2l0eT0iMSIpfXNob3VsZFNob3dJbmRpY2F0b3IoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZFRhYiYmdGhpcy5zaG93VGFiSW5kaWNhdG9yJiZ0aGlzLnRhYnMuaW5jbHVkZXModGhpcy5zZWxlY3RlZFRhYil9Z2V0U2VsZWN0ZWRUYWJFbGVtZW50KCl7bGV0IFM9dGhpcy50YWJzLmluZGV4T2YodGhpcy5zZWxlY3RlZFRhYiksUj10aGlzLnRhYlN0eWxlPT09Imhvcml6b250YWwiP2AudGFicy13cmFwcGVyIC50YWJzQ29udGFpbmVyIC50YWI6bnRoLWNoaWxkKCR7UysxfSlgOmAudmVydGljYWwtd3JhcHBlciAudGFic0NvbnRhaW5lciAudGFiOm50aC1jaGlsZCgke1MrMX0pYDtyZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoUil9Z2V0SW5kaWNhdG9yRWxlbWVudCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnRhYkluZGljYXRvciIpfWhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKFMpe3RoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWR8fChTLmNsYXNzTGlzdC5hZGQoIm5vLXRyYW5zaXRpb24iKSx0aGlzLmluZGljYXRvckluaXRpYWxpemVkPSEwLHNldFRpbWVvdXQoKCk9PntTLmNsYXNzTGlzdC5yZW1vdmUoIm5vLXRyYW5zaXRpb24iKX0sNTApKX11cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKFMsVCl7bGV0IFI9VC5xdWVyeVNlbGVjdG9yKCIudGFiLWNvbnRlbnQiKTtpZighUilyZXR1cm47bGV0IEE9Uy5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEY9Ui5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhZT1GLmxlZnQtQS5sZWZ0LFY9Ri53aWR0aCs4LFNlPWFlLTQ7Uy5zdHlsZS53aWR0aD1gJHtWfXB4YCxTLnN0eWxlLmxlZnQ9YCR7U2V9cHhgfXVwZGF0ZVZlcnRpY2FsSW5kaWNhdG9yKFMsVCl7bGV0IFI9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi52ZXJ0aWNhbC13cmFwcGVyIC50YWJzQ29udGFpbmVyIik7UiYmKFMuc3R5bGUudG9wPWAke1Qub2Zmc2V0VG9wK1Iub2Zmc2V0VG9wfXB4YCxTLnN0eWxlLmhlaWdodD1gJHtULmNsaWVudEhlaWdodH1weGApfXN0YXRpY3tzMihyLGEpfX07cmV0dXJuIE49cn0pKCk7ZmUoKTtTdCgpO0JlKCk7dmFyIHM1PWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0saXI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LEFvMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXSx2LHk9W10sdz1bXTt2YXIgRT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpBcnJheX0pXSxmPVtEKHt0eXBlOk9iamVjdH0pXSxkPVtEKHt0eXBlOkJvb2xlYW59KV0sYj1bRCh7dHlwZTpCb29sZWFufSldLHY9W0Qoe3R5cGU6TnVtYmVyfSldLHM1KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InRhYnMiaW4geixnZXQ6ej0+ei50YWJzLHNldDooeixQKT0+e3oudGFicz1QfX0sbWV0YWRhdGE6Q30scyxsKSxzNSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic2VsZWN0ZWRUYWIiaW4geixnZXQ6ej0+ei5zZWxlY3RlZFRhYixzZXQ6KHosUCk9Pnt6LnNlbGVjdGVkVGFiPVB9fSxtZXRhZGF0YTpDfSxjLHUpLHM1KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJzaG93VGFicyJpbiB6LGdldDp6PT56LnNob3dUYWJzLHNldDooeixQKT0+e3ouc2hvd1RhYnM9UH19LG1ldGFkYXRhOkN9LGgsZyksczUodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzQXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJ0YWJzQXV0b0hpZGUiaW4geixnZXQ6ej0+ei50YWJzQXV0b0hpZGUsc2V0Oih6LFApPT57ei50YWJzQXV0b0hpZGU9UH19LG1ldGFkYXRhOkN9LHgsbSksczUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzQXV0b0hpZGVUaHJlc2hvbGQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJ0YWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4geixnZXQ6ej0+ei50YWJzQXV0b0hpZGVUaHJlc2hvbGQsc2V0Oih6LFApPT57ei50YWJzQXV0b0hpZGVUaHJlc2hvbGQ9UH19LG1ldGFkYXRhOkN9LHksdyksczUobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxhKSxFPXI9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz0oKT0+TWAKICAgIDxkZWVzLWFwcHVpLW1haW5jb250ZW50CiAgICAgIC50YWJzPSR7W3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3Iil9LHtrZXk6IkRldGFpbHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiRGV0YWlscyIpfSx7a2V5OiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKX1dfQogICAgPgogICAgICA8ZGl2IHNsb3Q9ImNvbnRlbnQiIHN0eWxlPSJwYWRkaW5nOiA0MHB4OyBjb2xvcjogI2NjYzsiPgogICAgICAgIDxoMT5NYWluIENvbnRlbnQgQXJlYTwvaDE+CiAgICAgICAgPHA+VGhpcyBpcyB3aGVyZSB5b3VyIGFwcGxpY2F0aW9uIGNvbnRlbnQgZ29lcy48L3A+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWFwcHVpLW1haW5jb250ZW50PgogIGA7c3RhdGljIGRlbW9Hcm91cD0iQXBwIFVJIjsjZT1pcih0aGlzLHMsW3trZXk6Ilx1MjZBMFx1RkUwRiBQbGVhc2Ugc2V0IHRhYnMiLGFjdGlvbjooKT0+Y29uc29sZS53YXJuKCJObyB0YWJzIGNvbmZpZ3VyZWQgZm9yIG1haW5jb250ZW50Iil9XSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhDKXt0aGlzLiNlPUN9I3Q9KGlyKHRoaXMsbCksaXIodGhpcyxjLG51bGwpKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRUYWIoQyl7dGhpcy4jdD1DfSNhPShpcih0aGlzLHUpLGlyKHRoaXMsaCwhMCkpO2dldCBzaG93VGFicygpe3JldHVybiB0aGlzLiNhfXNldCBzaG93VGFicyhDKXt0aGlzLiNhPUN9I3I9KGlyKHRoaXMsZyksaXIodGhpcyx4LCExKSk7Z2V0IHRhYnNBdXRvSGlkZSgpe3JldHVybiB0aGlzLiNyfXNldCB0YWJzQXV0b0hpZGUoQyl7dGhpcy4jcj1DfSNpPShpcih0aGlzLG0pLGlyKHRoaXMseSwwKSk7Z2V0IHRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNpfXNldCB0YWJzQXV0b0hpZGVUaHJlc2hvbGQoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQoKICAgICAgLnRvcGJhciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b3BiYXIgPiAqIHsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuY29udGVudC1hcmVhIHsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIH0KCiAgICAgIDpob3N0KFtub3RhYnNdKSAudG9wYmFyIHsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvcGJhciI+CiAgICAgICAgICA8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgICAgIC50YWJzPSR7dGhpcy50YWJzfQogICAgICAgICAgICAuc2VsZWN0ZWRUYWI9JHt0aGlzLnNlbGVjdGVkVGFifQogICAgICAgICAgICAuc2hvd1RhYkluZGljYXRvcj0keyEwfQogICAgICAgICAgICAudGFiU3R5bGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5hdXRvSGlkZT0ke3RoaXMudGFic0F1dG9IaWRlfQogICAgICAgICAgICAuYXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLnRhYnNBdXRvSGlkZVRocmVzaG9sZH0KICAgICAgICAgICAgQHRhYi1zZWxlY3Q9JHtDPT50aGlzLmhhbmRsZVRhYlNlbGVjdChDKX0KICAgICAgICAgICAgQHRhYi1jbG9zZT0ke0M9PnRoaXMuaGFuZGxlVGFiQ2xvc2UoQyl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1hcmVhIj4KICAgICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgICAgIDxzbG90IG5hbWU9ImNvbnRlbnQiPjwvc2xvdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZVRhYlNlbGVjdChDKXt0aGlzLnNlbGVjdGVkVGFiPUMuZGV0YWlsLnRhYix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItc2VsZWN0Iix7ZGV0YWlsOkMuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlVGFiQ2xvc2UoQyl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNsb3NlIix7ZGV0YWlsOkMuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9dXBkYXRlZChDKXtzdXBlci51cGRhdGVkKEMpLEMuaGFzKCJzaG93VGFicyIpJiYodGhpcy5zaG93VGFicz90aGlzLnJlbW92ZUF0dHJpYnV0ZSgibm90YWJzIik6dGhpcy5zZXRBdHRyaWJ1dGUoIm5vdGFicyIsIiIpKX1hc3luYyBmaXJzdFVwZGF0ZWQoQyl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKEMpLHRoaXMuc2hvd1RhYnN8fHRoaXMuc2V0QXR0cmlidXRlKCJub3RhYnMiLCIiKTtsZXQgej10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS10YWJzIik7eiYmYXdhaXQgei51cGRhdGVDb21wbGV0ZX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksaXIodGhpcyx3KX1zdGF0aWN7aXIocixhKX19O3JldHVybiBFPXJ9KSgpO2ZlKCk7U3QoKTtCZSgpO3ZhciBMdD1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LEZlPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSwkbzE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWFwcHVpIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W10sSCxMPVtdLGs9W10sTixTPVtdLFQ9W10sUixBPVtdLEY9W10sYWUsVj1bXSxTZT1bXSx6ZSxXPVtdLE5lPVtdLFJlLFg9W10sST1bXSxPLEc9W10saj1bXSxzZSxrZT1bXSxEZT1bXSxPZSxVPVtdLEI9W10sb2UsdmU9W10seWU9W10sJGUsbmU9W10scmU9W10sZ2UsRWU9W10scnQ9W10sdWUsWj1bXSxKPVtdLGRlLEFlPVtdLEhlPVtdLE10LGl0PVtdLHp0PVtdLHF0LFE9W10sSz1bXSxiZSxvdD1bXSxudD1bXSxuMSx2YT1bXSxLcj1bXSxKcixUZT1bXSxqZT1bXSxnMSxLMT1bXSxmMj1bXSwkMix1Mj1bXSxpbz1bXSxvbyxzbz1bXSx3NT1bXSxNNSxoZT1bXSxpZT1bXSxDZSx6MT1bXSx0dD1bXSx0MSxEMj1bXSxRZT1bXSxUMSxFMj1bXSxPYT1bXSx6NSxHST1bXSxrNT1bXSxZSSxrTmU9W10sU05lPVtdO3ZhciBDTmU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBxPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6QXJyYXl9KV0sZj1bRCh7dHlwZTpTdHJpbmd9KV0sZD1bRCh7dHlwZTpTdHJpbmd9KV0sYj1bRCh7dHlwZTpCb29sZWFufSldLHY9W0Qoe3R5cGU6T2JqZWN0fSldLEU9W0Qoe3R5cGU6QXJyYXl9KV0sUD1bRCh7dHlwZTpCb29sZWFufSldLEg9W0Qoe3R5cGU6U3RyaW5nfSldLE49W0Qoe3R5cGU6U3RyaW5nfSldLFI9W0Qoe3R5cGU6QXJyYXl9KV0sYWU9W0Qoe3R5cGU6QXJyYXl9KV0semU9W0Qoe3R5cGU6QXJyYXl9KV0sUmU9W0Qoe3R5cGU6T2JqZWN0fSldLE89W0Qoe3R5cGU6U3RyaW5nfSldLHNlPVtEKHt0eXBlOkFycmF5fSldLE9lPVtEKHt0eXBlOk9iamVjdH0pXSxvZT1bRCh7dHlwZTpCb29sZWFufSldLCRlPVtEKHt0eXBlOkJvb2xlYW59KV0sZ2U9W0Qoe3R5cGU6Qm9vbGVhbn0pXSx1ZT1bRCh7dHlwZTpCb29sZWFufSldLGRlPVtEKHt0eXBlOkJvb2xlYW59KV0sTXQ9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxxdD1bRCh7dHlwZTpOdW1iZXJ9KV0sYmU9W2xlKCldLG4xPVtsZSgpXSxKcj1bRCh7dHlwZTpBcnJheX0pXSxnMT1bRCh7dHlwZTpPYmplY3R9KV0sJDI9W2xlKCldLG9vPVtsZSgpXSxNNT1bbGUoKV0sQ2U9W2xlKCldLHQxPVtsZSgpXSxUMT1bbGUoKV0sejU9W2xlKCldLFlJPVtsZSgpXSxMdCh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhck1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImFwcGJhck1lbnVJdGVtcyJpbiBZLGdldDpZPT5ZLmFwcGJhck1lbnVJdGVtcyxzZXQ6KFksbWUpPT57WS5hcHBiYXJNZW51SXRlbXM9bWV9fSxtZXRhZGF0YTpxfSxzLGwpLEx0KHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyQnJlYWRjcnVtYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJhcHBiYXJCcmVhZGNydW1icyJpbiBZLGdldDpZPT5ZLmFwcGJhckJyZWFkY3J1bWJzLHNldDooWSxtZSk9PntZLmFwcGJhckJyZWFkY3J1bWJzPW1lfX0sbWV0YWRhdGE6cX0sYyx1KSxMdCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yImluIFksZ2V0Olk9PlkuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcixzZXQ6KFksbWUpPT57WS5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yPW1lfX0sbWV0YWRhdGE6cX0saCxnKSxMdCh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclNob3dXaW5kb3dDb250cm9scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImFwcGJhclNob3dXaW5kb3dDb250cm9scyJpbiBZLGdldDpZPT5ZLmFwcGJhclNob3dXaW5kb3dDb250cm9scyxzZXQ6KFksbWUpPT57WS5hcHBiYXJTaG93V2luZG93Q29udHJvbHM9bWV9fSxtZXRhZGF0YTpxfSx4LG0pLEx0KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyVXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImFwcGJhclVzZXIiaW4gWSxnZXQ6WT0+WS5hcHBiYXJVc2VyLHNldDooWSxtZSk9PntZLmFwcGJhclVzZXI9bWV9fSxtZXRhZGF0YTpxfSx5LHcpLEx0KHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyUHJvZmlsZU1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiaW4gWSxnZXQ6WT0+WS5hcHBiYXJQcm9maWxlTWVudUl0ZW1zLHNldDooWSxtZSk9PntZLmFwcGJhclByb2ZpbGVNZW51SXRlbXM9bWV9fSxtZXRhZGF0YTpxfSxDLHopLEx0KHRoaXMsbnVsbCxQLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyU2hvd1NlYXJjaCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImFwcGJhclNob3dTZWFyY2giaW4gWSxnZXQ6WT0+WS5hcHBiYXJTaG93U2VhcmNoLHNldDooWSxtZSk9PntZLmFwcGJhclNob3dTZWFyY2g9bWV9fSxtZXRhZGF0YTpxfSxfLCQpLEx0KHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVMb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+Im1haW5tZW51TG9nb0ljb24iaW4gWSxnZXQ6WT0+WS5tYWlubWVudUxvZ29JY29uLHNldDooWSxtZSk9PntZLm1haW5tZW51TG9nb0ljb249bWV9fSxtZXRhZGF0YTpxfSxMLGspLEx0KHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVMb2dvVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+Im1haW5tZW51TG9nb1RleHQiaW4gWSxnZXQ6WT0+WS5tYWlubWVudUxvZ29UZXh0LHNldDooWSxtZSk9PntZLm1haW5tZW51TG9nb1RleHQ9bWV9fSxtZXRhZGF0YTpxfSxTLFQpLEx0KHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVHcm91cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJtYWlubWVudUdyb3VwcyJpbiBZLGdldDpZPT5ZLm1haW5tZW51R3JvdXBzLHNldDooWSxtZSk9PntZLm1haW5tZW51R3JvdXBzPW1lfX0sbWV0YWRhdGE6cX0sQSxGKSxMdCh0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJtYWlubWVudUJvdHRvbVRhYnMiaW4gWSxnZXQ6WT0+WS5tYWlubWVudUJvdHRvbVRhYnMsc2V0OihZLG1lKT0+e1kubWFpbm1lbnVCb3R0b21UYWJzPW1lfX0sbWV0YWRhdGE6cX0sVixTZSksTHQodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ibWFpbm1lbnVUYWJzImluIFksZ2V0Olk9PlkubWFpbm1lbnVUYWJzLHNldDooWSxtZSk9PntZLm1haW5tZW51VGFicz1tZX19LG1ldGFkYXRhOnF9LFcsTmUpLEx0KHRoaXMsbnVsbCxSZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJtYWlubWVudVNlbGVjdGVkVGFiImluIFksZ2V0Olk9PlkubWFpbm1lbnVTZWxlY3RlZFRhYixzZXQ6KFksbWUpPT57WS5tYWlubWVudVNlbGVjdGVkVGFiPW1lfX0sbWV0YWRhdGE6cX0sWCxJKSxMdCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVIZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ic2Vjb25kYXJ5bWVudUhlYWRpbmciaW4gWSxnZXQ6WT0+WS5zZWNvbmRhcnltZW51SGVhZGluZyxzZXQ6KFksbWUpPT57WS5zZWNvbmRhcnltZW51SGVhZGluZz1tZX19LG1ldGFkYXRhOnF9LEcsaiksTHQodGhpcyxudWxsLHNlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+InNlY29uZGFyeW1lbnVHcm91cHMiaW4gWSxnZXQ6WT0+WS5zZWNvbmRhcnltZW51R3JvdXBzLHNldDooWSxtZSk9PntZLnNlY29uZGFyeW1lbnVHcm91cHM9bWV9fSxtZXRhZGF0YTpxfSxrZSxEZSksTHQodGhpcyxudWxsLE9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+InNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0iaW4gWSxnZXQ6WT0+WS5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtLHNldDooWSxtZSk9PntZLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09bWV9fSxtZXRhZGF0YTpxfSxVLEIpLEx0KHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51Q29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ibWFpbm1lbnVDb2xsYXBzZWQiaW4gWSxnZXQ6WT0+WS5tYWlubWVudUNvbGxhcHNlZCxzZXQ6KFksbWUpPT57WS5tYWlubWVudUNvbGxhcHNlZD1tZX19LG1ldGFkYXRhOnF9LHZlLHllKSxMdCh0aGlzLG51bGwsJGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51Q29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCJpbiBZLGdldDpZPT5ZLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQsc2V0OihZLG1lKT0+e1kuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZD1tZX19LG1ldGFkYXRhOnF9LG5lLHJlKSxMdCh0aGlzLG51bGwsZ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJtYWlubWVudVZpc2libGUiaW4gWSxnZXQ6WT0+WS5tYWlubWVudVZpc2libGUsc2V0OihZLG1lKT0+e1kubWFpbm1lbnVWaXNpYmxlPW1lfX0sbWV0YWRhdGE6cX0sRWUscnQpLEx0KHRoaXMsbnVsbCx1ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ic2Vjb25kYXJ5bWVudVZpc2libGUiaW4gWSxnZXQ6WT0+WS5zZWNvbmRhcnltZW51VmlzaWJsZSxzZXQ6KFksbWUpPT57WS5zZWNvbmRhcnltZW51VmlzaWJsZT1tZX19LG1ldGFkYXRhOnF9LFosSiksTHQodGhpcyxudWxsLGRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+Im1haW5jb250ZW50VGFic1Zpc2libGUiaW4gWSxnZXQ6WT0+WS5tYWluY29udGVudFRhYnNWaXNpYmxlLHNldDooWSxtZSk9PntZLm1haW5jb250ZW50VGFic1Zpc2libGU9bWV9fSxtZXRhZGF0YTpxfSxBZSxIZSksTHQodGhpcyxudWxsLE10LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFRhYnNBdXRvSGlkZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImNvbnRlbnRUYWJzQXV0b0hpZGUiaW4gWSxnZXQ6WT0+WS5jb250ZW50VGFic0F1dG9IaWRlLHNldDooWSxtZSk9PntZLmNvbnRlbnRUYWJzQXV0b0hpZGU9bWV9fSxtZXRhZGF0YTpxfSxpdCx6dCksTHQodGhpcyxudWxsLHF0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4gWSxnZXQ6WT0+WS5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkLHNldDooWSxtZSk9PntZLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9bWV9fSxtZXRhZGF0YTpxfSxRLEspLEx0KHRoaXMsbnVsbCxiZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5TG9nVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImFjdGl2aXR5TG9nVmlzaWJsZSJpbiBZLGdldDpZPT5ZLmFjdGl2aXR5TG9nVmlzaWJsZSxzZXQ6KFksbWUpPT57WS5hY3Rpdml0eUxvZ1Zpc2libGU9bWV9fSxtZXRhZGF0YTpxfSxvdCxudCksTHQodGhpcyxudWxsLG4xLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImFjdGl2aXR5TG9nQ291bnQiaW4gWSxnZXQ6WT0+WS5hY3Rpdml0eUxvZ0NvdW50LHNldDooWSxtZSk9PntZLmFjdGl2aXR5TG9nQ291bnQ9bWV9fSxtZXRhZGF0YTpxfSx2YSxLciksTHQodGhpcyxudWxsLEpyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ibWFpbmNvbnRlbnRUYWJzImluIFksZ2V0Olk9PlkubWFpbmNvbnRlbnRUYWJzLHNldDooWSxtZSk9PntZLm1haW5jb250ZW50VGFicz1tZX19LG1ldGFkYXRhOnF9LFRlLGplKSxMdCh0aGlzLG51bGwsZzEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWluY29udGVudFNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ibWFpbmNvbnRlbnRTZWxlY3RlZFRhYiJpbiBZLGdldDpZPT5ZLm1haW5jb250ZW50U2VsZWN0ZWRUYWIsc2V0OihZLG1lKT0+e1kubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj1tZX19LG1ldGFkYXRhOnF9LEsxLGYyKSxMdCh0aGlzLG51bGwsJDIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJhcHBiYXIiaW4gWSxnZXQ6WT0+WS5hcHBiYXIsc2V0OihZLG1lKT0+e1kuYXBwYmFyPW1lfX0sbWV0YWRhdGE6cX0sdTIsaW8pLEx0KHRoaXMsbnVsbCxvbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ibWFpbm1lbnUiaW4gWSxnZXQ6WT0+WS5tYWlubWVudSxzZXQ6KFksbWUpPT57WS5tYWlubWVudT1tZX19LG1ldGFkYXRhOnF9LHNvLHc1KSxMdCh0aGlzLG51bGwsTTUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ic2Vjb25kYXJ5bWVudSJpbiBZLGdldDpZPT5ZLnNlY29uZGFyeW1lbnUsc2V0OihZLG1lKT0+e1kuc2Vjb25kYXJ5bWVudT1tZX19LG1ldGFkYXRhOnF9LGhlLGllKSxMdCh0aGlzLG51bGwsQ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWluY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+Im1haW5jb250ZW50ImluIFksZ2V0Olk9PlkubWFpbmNvbnRlbnQsc2V0OihZLG1lKT0+e1kubWFpbmNvbnRlbnQ9bWV9fSxtZXRhZGF0YTpxfSx6MSx0dCksTHQodGhpcyxudWxsLHQxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlsb2dFbGVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4iYWN0aXZpdHlsb2dFbGVtZW50ImluIFksZ2V0Olk9PlkuYWN0aXZpdHlsb2dFbGVtZW50LHNldDooWSxtZSk9PntZLmFjdGl2aXR5bG9nRWxlbWVudD1tZX19LG1ldGFkYXRhOnF9LEQyLFFlKSxMdCh0aGlzLG51bGwsVDEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib3R0b21iYXJFbGVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4iYm90dG9tYmFyRWxlbWVudCJpbiBZLGdldDpZPT5ZLmJvdHRvbWJhckVsZW1lbnQsc2V0OihZLG1lKT0+e1kuYm90dG9tYmFyRWxlbWVudD1tZX19LG1ldGFkYXRhOnF9LEUyLE9hKSxMdCh0aGlzLG51bGwsejUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib3R0b21iYXJWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4iYm90dG9tYmFyVmlzaWJsZSJpbiBZLGdldDpZPT5ZLmJvdHRvbWJhclZpc2libGUsc2V0OihZLG1lKT0+e1kuYm90dG9tYmFyVmlzaWJsZT1tZX19LG1ldGFkYXRhOnF9LEdJLGs1KSxMdCh0aGlzLG51bGwsWUkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VmlldyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+ImN1cnJlbnRWaWV3ImluIFksZ2V0Olk9PlkuY3VycmVudFZpZXcsc2V0OihZLG1lKT0+e1kuY3VycmVudFZpZXc9bWV9fSxtZXRhZGF0YTpxfSxrTmUsU05lKSxMdChudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpxfSxudWxsLGEpLENOZT1yPWUudmFsdWUscSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSl9c3RhdGljIGRlbW89RUl0O3N0YXRpYyBkZW1vR3JvdXA9IkFwcCBVSSI7dmlld0xpZmVjeWNsZSQ9bmV3IEF0LnNtYXJ0cngucnhqcy5TdWJqZWN0O3ZpZXdDaGFuZ2VkJD1uZXcgQXQuc21hcnRyeC5yeGpzLlN1YmplY3Q7I2U9RmUodGhpcyxzLFtdKTtnZXQgYXBwYmFyTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFwcGJhck1lbnVJdGVtcyhxKXt0aGlzLiNlPXF9I3Q9KEZlKHRoaXMsbCksRmUodGhpcyxjLCIiKSk7Z2V0IGFwcGJhckJyZWFkY3J1bWJzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGFwcGJhckJyZWFkY3J1bWJzKHEpe3RoaXMuI3Q9cX0jYT0oRmUodGhpcyx1KSxGZSh0aGlzLGgsIiA+ICIpKTtnZXQgYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcigpe3JldHVybiB0aGlzLiNhfXNldCBhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKHEpe3RoaXMuI2E9cX0jcj0oRmUodGhpcyxnKSxGZSh0aGlzLHgsITApKTtnZXQgYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFwcGJhclNob3dXaW5kb3dDb250cm9scyhxKXt0aGlzLiNyPXF9I2k9KEZlKHRoaXMsbSksRmUodGhpcyx5LHZvaWQgMCkpO2dldCBhcHBiYXJVc2VyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGFwcGJhclVzZXIocSl7dGhpcy4jaT1xfSNvPShGZSh0aGlzLHcpLEZlKHRoaXMsQyxbXSkpO2dldCBhcHBiYXJQcm9maWxlTWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI299c2V0IGFwcGJhclByb2ZpbGVNZW51SXRlbXMocSl7dGhpcy4jbz1xfSNzPShGZSh0aGlzLHopLEZlKHRoaXMsXywhMSkpO2dldCBhcHBiYXJTaG93U2VhcmNoKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFwcGJhclNob3dTZWFyY2gocSl7dGhpcy4jcz1xfSNuPShGZSh0aGlzLCQpLEZlKHRoaXMsTCwiIikpO2dldCBtYWlubWVudUxvZ29JY29uKCl7cmV0dXJuIHRoaXMuI259c2V0IG1haW5tZW51TG9nb0ljb24ocSl7dGhpcy4jbj1xfSNsPShGZSh0aGlzLGspLEZlKHRoaXMsUywiIikpO2dldCBtYWlubWVudUxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI2x9c2V0IG1haW5tZW51TG9nb1RleHQocSl7dGhpcy4jbD1xfSNjPShGZSh0aGlzLFQpLEZlKHRoaXMsQSxbXSkpO2dldCBtYWlubWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNjfXNldCBtYWlubWVudUdyb3VwcyhxKXt0aGlzLiNjPXF9I2Q9KEZlKHRoaXMsRiksRmUodGhpcyxWLFtdKSk7Z2V0IG1haW5tZW51Qm90dG9tVGFicygpe3JldHVybiB0aGlzLiNkfXNldCBtYWlubWVudUJvdHRvbVRhYnMocSl7dGhpcy4jZD1xfSNmPShGZSh0aGlzLFNlKSxGZSh0aGlzLFcsW10pKTtnZXQgbWFpbm1lbnVUYWJzKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IG1haW5tZW51VGFicyhxKXt0aGlzLiNmPXF9I3U9KEZlKHRoaXMsTmUpLEZlKHRoaXMsWCx2b2lkIDApKTtnZXQgbWFpbm1lbnVTZWxlY3RlZFRhYigpe3JldHVybiB0aGlzLiN1fXNldCBtYWlubWVudVNlbGVjdGVkVGFiKHEpe3RoaXMuI3U9cX0jcD0oRmUodGhpcyxJKSxGZSh0aGlzLEcsIiIpKTtnZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jcH1zZXQgc2Vjb25kYXJ5bWVudUhlYWRpbmcocSl7dGhpcy4jcD1xfSNoPShGZSh0aGlzLGopLEZlKHRoaXMsa2UsW10pKTtnZXQgc2Vjb25kYXJ5bWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNofXNldCBzZWNvbmRhcnltZW51R3JvdXBzKHEpe3RoaXMuI2g9cX0jbT0oRmUodGhpcyxEZSksRmUodGhpcyxVLHZvaWQgMCkpO2dldCBzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtKCl7cmV0dXJuIHRoaXMuI219c2V0IHNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0ocSl7dGhpcy4jbT1xfSNnPShGZSh0aGlzLEIpLEZlKHRoaXMsdmUsITEpKTtnZXQgbWFpbm1lbnVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jZ31zZXQgbWFpbm1lbnVDb2xsYXBzZWQocSl7dGhpcy4jZz1xfSN4PShGZSh0aGlzLHllKSxGZSh0aGlzLG5lLCExKSk7Z2V0IHNlY29uZGFyeW1lbnVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jeH1zZXQgc2Vjb25kYXJ5bWVudUNvbGxhcHNlZChxKXt0aGlzLiN4PXF9I2I9KEZlKHRoaXMscmUpLEZlKHRoaXMsRWUsITApKTtnZXQgbWFpbm1lbnVWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI2J9c2V0IG1haW5tZW51VmlzaWJsZShxKXt0aGlzLiNiPXF9I3Y9KEZlKHRoaXMscnQpLEZlKHRoaXMsWiwhMCkpO2dldCBzZWNvbmRhcnltZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiN2fXNldCBzZWNvbmRhcnltZW51VmlzaWJsZShxKXt0aGlzLiN2PXF9I3k9KEZlKHRoaXMsSiksRmUodGhpcyxBZSwhMCkpO2dldCBtYWluY29udGVudFRhYnNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI3l9c2V0IG1haW5jb250ZW50VGFic1Zpc2libGUocSl7dGhpcy4jeT1xfSN3PShGZSh0aGlzLEhlKSxGZSh0aGlzLGl0LCExKSk7Z2V0IGNvbnRlbnRUYWJzQXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jd31zZXQgY29udGVudFRhYnNBdXRvSGlkZShxKXt0aGlzLiN3PXF9I009KEZlKHRoaXMsenQpLEZlKHRoaXMsUSwwKSk7Z2V0IGNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jTX1zZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZChxKXt0aGlzLiNNPXF9I3o9KEZlKHRoaXMsSyksRmUodGhpcyxvdCwhMSkpO2dldCBhY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jen1zZXQgYWN0aXZpdHlMb2dWaXNpYmxlKHEpe3RoaXMuI3o9cX0jaz0oRmUodGhpcyxudCksRmUodGhpcyx2YSwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4ja31zZXQgYWN0aXZpdHlMb2dDb3VudChxKXt0aGlzLiNrPXF9I1M9KEZlKHRoaXMsS3IpLEZlKHRoaXMsVGUsW10pKTtnZXQgbWFpbmNvbnRlbnRUYWJzKCl7cmV0dXJuIHRoaXMuI1N9c2V0IG1haW5jb250ZW50VGFicyhxKXt0aGlzLiNTPXF9I0M9KEZlKHRoaXMsamUpLEZlKHRoaXMsSzEsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jQ31zZXQgbWFpbmNvbnRlbnRTZWxlY3RlZFRhYihxKXt0aGlzLiNDPXF9I0w9KEZlKHRoaXMsZjIpLEZlKHRoaXMsdTIsdm9pZCAwKSk7Z2V0IGFwcGJhcigpe3JldHVybiB0aGlzLiNMfXNldCBhcHBiYXIocSl7dGhpcy4jTD1xfSNUPShGZSh0aGlzLGlvKSxGZSh0aGlzLHNvLHZvaWQgMCkpO2dldCBtYWlubWVudSgpe3JldHVybiB0aGlzLiNUfXNldCBtYWlubWVudShxKXt0aGlzLiNUPXF9I189KEZlKHRoaXMsdzUpLEZlKHRoaXMsaGUsdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnUoKXtyZXR1cm4gdGhpcy4jX31zZXQgc2Vjb25kYXJ5bWVudShxKXt0aGlzLiNfPXF9I0E9KEZlKHRoaXMsaWUpLEZlKHRoaXMsejEsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50KCl7cmV0dXJuIHRoaXMuI0F9c2V0IG1haW5jb250ZW50KHEpe3RoaXMuI0E9cX0jJD0oRmUodGhpcyx0dCksRmUodGhpcyxEMix2b2lkIDApKTtnZXQgYWN0aXZpdHlsb2dFbGVtZW50KCl7cmV0dXJuIHRoaXMuIyR9c2V0IGFjdGl2aXR5bG9nRWxlbWVudChxKXt0aGlzLiMkPXF9I0Q9KEZlKHRoaXMsUWUpLEZlKHRoaXMsRTIsdm9pZCAwKSk7Z2V0IGJvdHRvbWJhckVsZW1lbnQoKXtyZXR1cm4gdGhpcy4jRH1zZXQgYm90dG9tYmFyRWxlbWVudChxKXt0aGlzLiNEPXF9I0U9KEZlKHRoaXMsT2EpLEZlKHRoaXMsR0ksITApKTtnZXQgYm90dG9tYmFyVmlzaWJsZSgpe3JldHVybiB0aGlzLiNFfXNldCBib3R0b21iYXJWaXNpYmxlKHEpe3RoaXMuI0U9cX0jTj0oRmUodGhpcyxrNSksRmUodGhpcyxrTmUsdm9pZCAwKSk7Z2V0IGN1cnJlbnRWaWV3KCl7cmV0dXJuIHRoaXMuI059c2V0IGN1cnJlbnRWaWV3KHEpe3RoaXMuI049cX12aWV3UmVnaXN0cnk9KEZlKHRoaXMsU05lKSxuZXcgWVUpO3JvdXRlckNsZWFudXA9bnVsbDtzZWFyY2hDYWxsYmFjaz1udWxsO3N0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9OwogICAgICB9CiAgICAgIC5tYWluZ3JpZCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHggLSAyNHB4KTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIC8qIGdyaWQtdGVtcGxhdGUtY29sdW1ucyBzZXQgZHluYW1pY2FsbHkgaW4gdGVtcGxhdGUgKi8KICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgMC4zcyBlYXNlLCBoZWlnaHQgMC4zcyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIDpob3N0KFtib3R0b21iYXItaGlkZGVuXSkgLm1haW5ncmlkIHsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHgpOwogICAgICB9CgogICAgICBkZWVzLWFwcHVpLWJvdHRvbWJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IDQ7CiAgICAgIH0KCiAgICAgIC8qIFotaW5kZXggbGF5ZXJpbmcgZm9yIHByb3BlciBzdGFja2luZyAqLwogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLW1haW5tZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1tYWluY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy5oaWRkZW4gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLWFjdGl2aXR5bG9nLnZpc2libGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICB9CgogICAgICAvKiBWaWV3IGNvbnRhaW5lciBmb3IgZHluYW1pY2FsbHkgbG9hZGVkIHZpZXdzICovCiAgICAgIC52aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KCiAgICAgIC52aWV3LWNvbnRhaW5lcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLmFwcGJhck1lbnVJdGVtc30KICAgICAgICAuYnJlYWRjcnVtYnM9JHt0aGlzLmFwcGJhckJyZWFkY3J1bWJzfQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7dGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yfQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9sc30KICAgICAgICAudXNlcj0ke3RoaXMuYXBwYmFyVXNlcn0KICAgICAgICAucHJvZmlsZU1lbnVJdGVtcz0ke3RoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtc30KICAgICAgICAuc2hvd1NlYXJjaD0ke3RoaXMuYXBwYmFyU2hvd1NlYXJjaH0KICAgICAgICAuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlPSR7ITB9CiAgICAgICAgLmFjdGl2aXR5TG9nQ291bnQ9JHt0aGlzLmFjdGl2aXR5TG9nQ291bnR9CiAgICAgICAgLmFjdGl2aXR5TG9nQWN0aXZlPSR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9CiAgICAgICAgQG1lbnUtc2VsZWN0PSR7cT0+dGhpcy5oYW5kbGVBcHBiYXJNZW51U2VsZWN0KHEpfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7cT0+dGhpcy5oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUocSl9CiAgICAgICAgQHNlYXJjaC1jbGljaz0keygpPT50aGlzLmhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl9CiAgICAgICAgQHNlYXJjaC1xdWVyeT0ke3E9PnRoaXMuaGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkocSl9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PnRoaXMuaGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl9CiAgICAgICAgQHByb2ZpbGUtbWVudS1zZWxlY3Q9JHtxPT50aGlzLmhhbmRsZUFwcGJhclByb2ZpbGVNZW51U2VsZWN0KHEpfQogICAgICAgIEBhY3Rpdml0eS10b2dnbGU9JHsoKT0+dGhpcy50b2dnbGVBY3Rpdml0eUxvZygpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmdyaWQiIHN0eWxlPSJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byAxZnIgJHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT8iMjgwcHgiOiIwcHgifTsiPgogICAgICAgICR7dGhpcy5tYWlubWVudVZpc2libGU/TWAKICAgICAgICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgICAgICAgIC5sb2dvSWNvbj0ke3RoaXMubWFpbm1lbnVMb2dvSWNvbn0KICAgICAgICAgICAgLmxvZ29UZXh0PSR7dGhpcy5tYWlubWVudUxvZ29UZXh0fQogICAgICAgICAgICAubWVudUdyb3Vwcz0ke3RoaXMubWFpbm1lbnVHcm91cHN9CiAgICAgICAgICAgIC5ib3R0b21UYWJzPSR7dGhpcy5tYWlubWVudUJvdHRvbVRhYnN9CiAgICAgICAgICAgIC50YWJzPSR7dGhpcy5tYWlubWVudVRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYn0KICAgICAgICAgICAgLmNvbGxhcHNlZD0ke3RoaXMubWFpbm1lbnVDb2xsYXBzZWR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7cT0+dGhpcy5oYW5kbGVNYWlubWVudVRhYlNlbGVjdChxKX0KICAgICAgICAgICAgQGNvbGxhcHNlLWNoYW5nZT0ke3E9PnRoaXMuaGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShxKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICAke3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU/TWAKICAgICAgICAgIDxkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUKICAgICAgICAgICAgLmhlYWRpbmc9JHt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nfQogICAgICAgICAgICAuZ3JvdXBzPSR7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzfQogICAgICAgICAgICAuc2VsZWN0ZWRJdGVtPSR7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtfQogICAgICAgICAgICAuY29sbGFwc2VkPSR7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkfQogICAgICAgICAgICBAaXRlbS1zZWxlY3Q9JHtxPT50aGlzLmhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KHEpfQogICAgICAgICAgICBAY29sbGFwc2UtY2hhbmdlPSR7cT0+dGhpcy5oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UocSl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICA8ZGVlcy1hcHB1aS1tYWluY29udGVudAogICAgICAgICAgLnRhYnM9JHt0aGlzLm1haW5jb250ZW50VGFic30KICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYn0KICAgICAgICAgIC5zaG93VGFicz0ke3RoaXMubWFpbmNvbnRlbnRUYWJzVmlzaWJsZX0KICAgICAgICAgIC50YWJzQXV0b0hpZGU9JHt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGV9CiAgICAgICAgICAudGFic0F1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgQHRhYi1zZWxlY3Q9JHtxPT50aGlzLmhhbmRsZUNvbnRlbnRUYWJTZWxlY3QocSl9CiAgICAgICAgICBAdGFiLWNsb3NlPSR7cT0+dGhpcy5oYW5kbGVDb250ZW50VGFiQ2xvc2UocSl9CiAgICAgICAgPgogICAgICAgICAgPGRpdiBjbGFzcz0idmlldy1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgPHNsb3QgbmFtZT0ibWFpbmNvbnRlbnQiPjwvc2xvdD4KICAgICAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgICAgICAgPGRlZXMtYXBwdWktYWN0aXZpdHlsb2cKICAgICAgICAgIGNsYXNzPSIke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPyJ2aXNpYmxlIjoiaGlkZGVuIn0iCiAgICAgICAgPjwvZGVlcy1hcHB1aS1hY3Rpdml0eWxvZz4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5ib3R0b21iYXJWaXNpYmxlP01gCiAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyPjwvZGVlcy1hcHB1aS1ib3R0b21iYXI+CiAgICAgIGA6IiJ9CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuYXBwYmFyPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLWFwcGJhciIpLHRoaXMubWFpbm1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbm1lbnUiKSx0aGlzLnNlY29uZGFyeW1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSIpLHRoaXMubWFpbmNvbnRlbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpLHRoaXMuYm90dG9tYmFyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1ib3R0b21iYXIiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudCYmdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuZW50cmllcyQuc3Vic2NyaWJlKHE9Pnt0aGlzLmFjdGl2aXR5TG9nQ291bnQ9cS5sZW5ndGh9KSx0aGlzLnZpZXdSZWdpc3RyeS5zZXRBcHB1aVJlZih0aGlzKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yb3V0ZXJDbGVhbnVwJiYodGhpcy5yb3V0ZXJDbGVhbnVwKCksdGhpcy5yb3V0ZXJDbGVhbnVwPW51bGwpLHRoaXMudmlld0xpZmVjeWNsZSQuY29tcGxldGUoKSx0aGlzLnZpZXdDaGFuZ2VkJC5jb21wbGV0ZSgpfXNldEFwcEJhck1lbnVzKHEpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPVsuLi5xXX11cGRhdGVBcHBCYXJNZW51KHEsWSl7dGhpcy5hcHBiYXJNZW51SXRlbXM9dGhpcy5hcHBiYXJNZW51SXRlbXMubWFwKG1lPT4ibmFtZSJpbiBtZSYmbWUubmFtZT09PXE/ey4uLm1lLC4uLll9Om1lKX1zZXRCcmVhZGNydW1icyhxKXtBcnJheS5pc0FycmF5KHEpP3RoaXMuYXBwYmFyQnJlYWRjcnVtYnM9cS5qb2luKHRoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcik6dGhpcy5hcHBiYXJCcmVhZGNydW1icz1xfXNldFVzZXIocSl7dGhpcy5hcHBiYXJVc2VyPXF9c2V0UHJvZmlsZU1lbnVJdGVtcyhxKXt0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXM9Wy4uLnFdfXNldFNlYXJjaFZpc2libGUocSl7dGhpcy5hcHBiYXJTaG93U2VhcmNoPXF9c2V0V2luZG93Q29udHJvbHNWaXNpYmxlKHEpe3RoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPXF9b25TZWFyY2gocSl7dGhpcy5zZWFyY2hDYWxsYmFjaz1xfXNldE1haW5NZW51KHEpe3EubG9nb0ljb24hPT12b2lkIDAmJih0aGlzLm1haW5tZW51TG9nb0ljb249cS5sb2dvSWNvbikscS5sb2dvVGV4dCE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVMb2dvVGV4dD1xLmxvZ29UZXh0KSxxLmdyb3VwcyE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVHcm91cHM9Wy4uLnEuZ3JvdXBzXSkscS5ib3R0b21UYWJzIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUJvdHRvbVRhYnM9Wy4uLnEuYm90dG9tVGFic10pfXVwZGF0ZU1haW5NZW51R3JvdXAocSxZKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKG1lPT5tZS5uYW1lPT09cT97Li4ubWUsLi4uWX06bWUpfWFkZE1haW5NZW51SXRlbShxLFkpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAobWU9Pm1lLm5hbWU9PT1xP3suLi5tZSxpdGVtczpbLi4ubWUuaXRlbXN8fFtdLFldfTptZSl9cmVtb3ZlTWFpbk1lbnVJdGVtKHEsWSl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChtZT0+bWUubmFtZT09PXE/ey4uLm1lLGl0ZW1zOihtZS5pdGVtc3x8W10pLmZpbHRlcihOdD0+TnQua2V5IT09WSl9Om1lKX1zZXRNYWluTWVudVNlbGVjdGlvbihxKXtmb3IobGV0IG1lIG9mIHRoaXMubWFpbm1lbnVHcm91cHMpe2xldCBOdD1tZS5pdGVtcz8uZmluZChHMj0+RzIua2V5PT09cSk7aWYoTnQpe3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYj1OdDtyZXR1cm59fWxldCBZPXRoaXMubWFpbm1lbnVCb3R0b21UYWJzLmZpbmQobWU9Pm1lLmtleT09PXEpO1kmJih0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9WSl9c2V0TWFpbk1lbnVDb2xsYXBzZWQocSl7dGhpcy5tYWlubWVudUNvbGxhcHNlZD1xfXNldE1haW5NZW51VmlzaWJsZShxKXt0aGlzLm1haW5tZW51VmlzaWJsZT1xfXNldFNlY29uZGFyeU1lbnVDb2xsYXBzZWQocSl7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkPXF9c2V0U2Vjb25kYXJ5TWVudVZpc2libGUocSl7dGhpcy5zZWNvbmRhcnltZW51VmlzaWJsZT1xfXNldENvbnRlbnRUYWJzVmlzaWJsZShxKXt0aGlzLm1haW5jb250ZW50VGFic1Zpc2libGU9cX1zZXRDb250ZW50VGFic0F1dG9IaWRlKHEsWT0wKXt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGU9cSx0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9WX1zZXRNYWluTWVudUJhZGdlKHEsWSl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChtZT0+KHsuLi5tZSxpdGVtczoobWUuaXRlbXN8fFtdKS5tYXAoTnQ9Pk50LmtleT09PXE/ey4uLk50LGJhZGdlOll9Ok50KX0pKSx0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAobWU9Pm1lLmtleT09PXE/ey4uLm1lLGJhZGdlOll9Om1lKX1jbGVhck1haW5NZW51QmFkZ2UocSl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChZPT4oey4uLlksaXRlbXM6KFkuaXRlbXN8fFtdKS5tYXAobWU9PntpZihtZS5rZXk9PT1xKXtsZXR7YmFkZ2U6TnQsLi4uRzJ9PW1lO3JldHVybiBHMn1yZXR1cm4gbWV9KX0pKSx0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAoWT0+e2lmKFkua2V5PT09cSl7bGV0e2JhZGdlOm1lLC4uLk50fT1ZO3JldHVybiBOdH1yZXR1cm4gWX0pfXNldFNlY29uZGFyeU1lbnUocSl7cS5oZWFkaW5nIT09dm9pZCAwJiYodGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1xLmhlYWRpbmcpLHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1bLi4ucS5ncm91cHNdfXVwZGF0ZVNlY29uZGFyeU1lbnVHcm91cChxLFkpe3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz10aGlzLnNlY29uZGFyeW1lbnVHcm91cHMubWFwKG1lPT5tZS5uYW1lPT09cT97Li4ubWUsLi4uWX06bWUpfWFkZFNlY29uZGFyeU1lbnVJdGVtKHEsWSl7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzPXRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcy5tYXAobWU9Pm1lLm5hbWU9PT1xP3suLi5tZSxpdGVtczpbLi4ubWUuaXRlbXMsWV19Om1lKX1zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKHEpe2ZvcihsZXQgWSBvZiB0aGlzLnNlY29uZGFyeW1lbnVHcm91cHMpe2xldCBtZT1ZLml0ZW1zLmZpbmQoTnQ9PiJrZXkiaW4gTnQmJk50LmtleT09PXEpO2lmKG1lJiYoISgidHlwZSJpbiBtZSl8fG1lLnR5cGU9PT0idGFiInx8bWUudHlwZT09PXZvaWQgMCkpe3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbT1tZTtyZXR1cm59fX1jbGVhclNlY29uZGFyeU1lbnUoKXt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nPSIiLHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1bXSx0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09dm9pZCAwfXNldENvbnRlbnRUYWJzKHEpe3RoaXMubWFpbmNvbnRlbnRUYWJzPVsuLi5xXSxxLmxlbmd0aD4wJiYhdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPXFbMF0pfWFkZENvbnRlbnRUYWIocSl7dGhpcy5tYWluY29udGVudFRhYnM9Wy4uLnRoaXMubWFpbmNvbnRlbnRUYWJzLHFdfXJlbW92ZUNvbnRlbnRUYWIocSl7dGhpcy5tYWluY29udGVudFRhYnM9dGhpcy5tYWluY29udGVudFRhYnMuZmlsdGVyKFk9Plkua2V5IT09cSksdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPy5rZXk9PT1xJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPXRoaXMubWFpbmNvbnRlbnRUYWJzWzBdKX1zZWxlY3RDb250ZW50VGFiKHEpe2xldCBZPXRoaXMubWFpbmNvbnRlbnRUYWJzLmZpbmQobWU9Pm1lLmtleT09PXEpO1kmJih0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9WSl9Z2V0U2VsZWN0ZWRDb250ZW50VGFiKCl7cmV0dXJuIHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYn1nZXQgYWN0aXZpdHlMb2coKXtyZXR1cm4gdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/e2FkZDpxPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGQocSksYWRkTWFueTpxPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGRNYW55KHEpLGNsZWFyOigpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5jbGVhcigpLGdldEVudHJpZXM6KCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmdldEVudHJpZXMoKSxmaWx0ZXI6cT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuZmlsdGVyKHEpLHNlYXJjaDpxPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5zZWFyY2gocSl9OnthZGQ6cT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmFkZChxKSl9LGFkZE1hbnk6cT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmFkZE1hbnkocSkpfSxjbGVhcjooKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmNsZWFyKCkpfSxnZXRFbnRyaWVzOigpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uZ2V0RW50cmllcygpfHxbXSxmaWx0ZXI6cT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmZpbHRlcihxKXx8W10sc2VhcmNoOnE9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5zZWFyY2gocSl8fFtdfX1zZXRBY3Rpdml0eUxvZ1Zpc2libGUocSl7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU9cX10b2dnbGVBY3Rpdml0eUxvZygpe3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPSF0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZX1nZXRBY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9Z2V0IGJvdHRvbUJhcigpe3JldHVybiB0aGlzLmJvdHRvbWJhckVsZW1lbnQ/e2FkZFdpZGdldDpxPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuYWRkV2lkZ2V0KHEpLHVwZGF0ZVdpZGdldDoocSxZKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LnVwZGF0ZVdpZGdldChxLFkpLHJlbW92ZVdpZGdldDpxPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlV2lkZ2V0KHEpLGdldFdpZGdldDpxPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuZ2V0V2lkZ2V0KHEpLGNsZWFyV2lkZ2V0czooKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyV2lkZ2V0cygpLGFkZEFjdGlvbjpxPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuYWRkQWN0aW9uKHEpLHJlbW92ZUFjdGlvbjpxPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlQWN0aW9uKHEpLGNsZWFyQWN0aW9uczooKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyQWN0aW9ucygpfTp7YWRkV2lkZ2V0OnE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkV2lkZ2V0KHEpKX0sdXBkYXRlV2lkZ2V0OihxLFkpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LnVwZGF0ZVdpZGdldChxLFkpKX0scmVtb3ZlV2lkZ2V0OnE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8ucmVtb3ZlV2lkZ2V0KHEpKX0sZ2V0V2lkZ2V0OnE9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uZ2V0V2lkZ2V0KHEpLGNsZWFyV2lkZ2V0czooKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5jbGVhcldpZGdldHMoKSl9LGFkZEFjdGlvbjpxPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmFkZEFjdGlvbihxKSl9LHJlbW92ZUFjdGlvbjpxPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LnJlbW92ZUFjdGlvbihxKSl9LGNsZWFyQWN0aW9uczooKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5jbGVhckFjdGlvbnMoKSl9fX1zZXRCb3R0b21CYXJWaXNpYmxlKHEpe3RoaXMuYm90dG9tYmFyVmlzaWJsZT1xLHE/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImJvdHRvbWJhci1oaWRkZW4iKTp0aGlzLnNldEF0dHJpYnV0ZSgiYm90dG9tYmFyLWhpZGRlbiIsIiIpfWdldEJvdHRvbUJhclZpc2libGUoKXtyZXR1cm4gdGhpcy5ib3R0b21iYXJWaXNpYmxlfWFzeW5jIG5hdmlnYXRlVG9WaWV3KHEsWSl7bGV0IG1lPXRoaXMudmlld1JlZ2lzdHJ5LmdldChxKTtpZighbWUpcmV0dXJuIGNvbnNvbGUud2FybihgQ2Fubm90IG5hdmlnYXRlIHRvIHVua25vd24gdmlldzogJHtxfWApLCExO2xldCBOdD1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5jYW5MZWF2ZUN1cnJlbnRWaWV3KCk7aWYoTnQhPT0hMClpZih0eXBlb2YgTnQ9PSJzdHJpbmciKXtpZighd2luZG93LmNvbmZpcm0oTnQpKXJldHVybiExfWVsc2UgcmV0dXJuITE7dGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJsb2FkaW5nIix2aWV3SWQ6cX0pO3RyeXthd2FpdCB0aGlzLmxvYWRWaWV3KG1lLFkpO2xldCBTNT1gIyR7bWUucm91dGV8fHF9YDtyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhhc2ghPT1TNSYmd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt2aWV3SWQ6cX0sIiIsUzUpLCEwfWNhdGNoKEcyKXtyZXR1cm4gdGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJsb2FkRXJyb3IiLHZpZXdJZDpxLGVycm9yOkcyfSksITF9fWdldEN1cnJlbnRWaWV3KCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXd9Z2V0Vmlld1JlZ2lzdHJ5KCl7cmV0dXJuIHRoaXMudmlld1JlZ2lzdHJ5fWNvbmZpZ3VyZShxKXtxLnZpZXdzJiYodGhpcy52aWV3UmVnaXN0cnkuY2xlYXIoKSx0aGlzLnZpZXdSZWdpc3RyeS5yZWdpc3RlckFsbChxLnZpZXdzKSkscS5icmFuZGluZyYmKHRoaXMubWFpbm1lbnVMb2dvSWNvbj1xLmJyYW5kaW5nLmxvZ29JY29ufHwiIix0aGlzLm1haW5tZW51TG9nb1RleHQ9cS5icmFuZGluZy5sb2dvVGV4dHx8IiIpLHEuYXBwQmFyJiYodGhpcy5hcHBiYXJNZW51SXRlbXM9cS5hcHBCYXIubWVudUl0ZW1zfHxbXSx0aGlzLmFwcGJhckJyZWFkY3J1bWJzPXEuYXBwQmFyLmJyZWFkY3J1bWJzfHwiIix0aGlzLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3I9cS5hcHBCYXIuYnJlYWRjcnVtYlNlcGFyYXRvcnx8IiA+ICIsdGhpcy5hcHBiYXJTaG93V2luZG93Q29udHJvbHM9cS5hcHBCYXIuc2hvd1dpbmRvd0NvbnRyb2xzPz8hMCx0aGlzLmFwcGJhclNob3dTZWFyY2g9cS5hcHBCYXIuc2hvd1NlYXJjaD8/ITEsdGhpcy5hcHBiYXJVc2VyPXEuYXBwQmFyLnVzZXIsdGhpcy5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPXEuYXBwQmFyLnByb2ZpbGVNZW51SXRlbXN8fFtdKSxxLm1haW5NZW51JiYocS5tYWluTWVudS5zZWN0aW9ucz90aGlzLm1haW5tZW51R3JvdXBzPXRoaXMuYnVpbGRNYWluTWVudUZyb21TZWN0aW9ucyhxKTpxLm1haW5NZW51Lmdyb3VwcyYmKHRoaXMubWFpbm1lbnVHcm91cHM9cS5tYWluTWVudS5ncm91cHMpLHEubWFpbk1lbnUubG9nb0ljb24mJih0aGlzLm1haW5tZW51TG9nb0ljb249cS5tYWluTWVudS5sb2dvSWNvbikscS5tYWluTWVudS5sb2dvVGV4dCYmKHRoaXMubWFpbm1lbnVMb2dvVGV4dD1xLm1haW5NZW51LmxvZ29UZXh0KSxxLm1haW5NZW51LmJvdHRvbVRhYnM/dGhpcy5tYWlubWVudUJvdHRvbVRhYnM9cS5tYWluTWVudS5ib3R0b21UYWJzOnEubWFpbk1lbnUuYm90dG9tSXRlbXMmJih0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLmJ1aWxkQm90dG9tVGFic0Zyb21JdGVtcyhxLm1haW5NZW51LmJvdHRvbUl0ZW1zKSkpLHEuYm90dG9tQmFyJiYodGhpcy5zZXRCb3R0b21CYXJWaXNpYmxlKHEuYm90dG9tQmFyLnZpc2libGU/PyEwKSxxLmJvdHRvbUJhci53aWRnZXRzJiZxLmJvdHRvbUJhci53aWRnZXRzLmZvckVhY2goWT0+e3RoaXMuYm90dG9tQmFyLmFkZFdpZGdldChZKX0pLHEuYm90dG9tQmFyLmFjdGlvbnMmJnEuYm90dG9tQmFyLmFjdGlvbnMuZm9yRWFjaChZPT57dGhpcy5ib3R0b21CYXIuYWRkQWN0aW9uKFkpfSkpLHRoaXMuc2V0dXBSb3V0ZXJJbnRlZ3JhdGlvbihxKSxxLm9uVmlld0NoYW5nZSYmdGhpcy52aWV3Q2hhbmdlZCQuc3Vic2NyaWJlKFk9PntxLm9uVmlld0NoYW5nZShZLnZpZXdJZCxZLnZpZXcpfSkscS5vblNlYXJjaCYmKHRoaXMuc2VhcmNoQ2FsbGJhY2s9cS5vblNlYXJjaCkscS5kZWZhdWx0VmlldyYmdGhpcy5uYXZpZ2F0ZVRvVmlldyhxLmRlZmF1bHRWaWV3KX1zZXR1cFJvdXRlckludGVncmF0aW9uKHEpe2xldCBZPSgpPT57bGV0IE50PXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKCFOdClyZXR1cm47bGV0IEcyPXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKE50KTtHMiYmdGhpcy5uYXZpZ2F0ZVRvVmlldyhHMi52aWV3LmlkLEcyLnBhcmFtcyl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixZKSx0aGlzLnJvdXRlckNsZWFudXA9KCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsWSl9O2xldCBtZT13aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKTtpZihtZSl7bGV0IE50PXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKG1lKTtOdCYmc2V0VGltZW91dCgoKT0+dGhpcy5uYXZpZ2F0ZVRvVmlldyhOdC52aWV3LmlkLE50LnBhcmFtcyksMCl9fWJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMocSl7cmV0dXJuIHEubWFpbk1lbnU/LnNlY3Rpb25zP3EubWFpbk1lbnUuc2VjdGlvbnMubWFwKFk9Pih7bmFtZTpZLm5hbWUsaXRlbXM6WS52aWV3cy5tYXAobWU9PntsZXQgTnQ9dGhpcy52aWV3UmVnaXN0cnkuZ2V0KG1lKTtyZXR1cm4gTnQ/e2tleTpOdC5pZCxpY29uTmFtZTpOdC5pY29uTmFtZSxhY3Rpb246KCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcobWUpLGJhZGdlOk50LmJhZGdlfTooY29uc29sZS53YXJuKGBWaWV3ICIke21lfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbCl9KS5maWx0ZXIoQm9vbGVhbil9KSk6W119YnVpbGRCb3R0b21UYWJzRnJvbUl0ZW1zKHEpe3JldHVybiBxLm1hcChZPT57bGV0IG1lPXRoaXMudmlld1JlZ2lzdHJ5LmdldChZKTtyZXR1cm4gbWU/e2tleTptZS5pZCxpY29uTmFtZTptZS5pY29uTmFtZSxhY3Rpb246KCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcoWSl9Oihjb25zb2xlLndhcm4oYFZpZXcgIiR7WX0iIG5vdCBmb3VuZCBpbiByZWdpc3RyeWApLG51bGwpfSkuZmlsdGVyKEJvb2xlYW4pfWFzeW5jIGxvYWRWaWV3KHEsWSl7bGV0IG1lPXRoaXMuY3VycmVudFZpZXc7dGhpcy5jdXJyZW50Vmlldz1xO2xldCBOdD10aGlzLm1haW5jb250ZW50Py5xdWVyeVNlbGVjdG9yKCIudmlldy1jb250YWluZXIiKXx8dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlldy1jb250YWluZXIiKTtpZihOdCl7bGV0IFM1PWF3YWl0IHRoaXMudmlld1JlZ2lzdHJ5LmFjdGl2YXRlVmlldyhxLmlkLE50LFkpO1M1JiZ0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImFjdGl2YXRlZCIsdmlld0lkOnEuaWQsZWxlbWVudDpTNSxwYXJhbXM6WX0pfXEuc2Vjb25kYXJ5TWVudSYmKHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1xLnNlY29uZGFyeU1lbnUsdGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1xLm5hbWUpLHEuY29udGVudFRhYnMmJih0aGlzLm1haW5jb250ZW50VGFicz1xLmNvbnRlbnRUYWJzKSx0aGlzLnNldE1haW5NZW51U2VsZWN0aW9uKHEuaWQpO2xldCBHMj17dmlld0lkOnEuaWQsdmlldzpxLHByZXZpb3VzVmlldzptZSxwYXJhbXM6WX07dGhpcy52aWV3Q2hhbmdlZCQubmV4dChHMiksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1jaGFuZ2UiLHtkZXRhaWw6RzIsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJNZW51U2VsZWN0KHEpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1tZW51LXNlbGVjdCIse2RldGFpbDpxLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhckJyZWFkY3J1bWJOYXZpZ2F0ZShxKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItYnJlYWRjcnVtYi1uYXZpZ2F0ZSIse2RldGFpbDpxLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkocSl7dGhpcy5zZWFyY2hDYWxsYmFjayYmdGhpcy5zZWFyY2hDYWxsYmFjayhxLmRldGFpbC5xdWVyeSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLXF1ZXJ5Iix7ZGV0YWlsOnEuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXVzZXItbWVudS1vcGVuIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJQcm9maWxlTWVudVNlbGVjdChxKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItcHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpxLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZU1haW5tZW51VGFiU2VsZWN0KHEpe3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYj1xLmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWFpbm1lbnUtdGFiLXNlbGVjdCIse2RldGFpbDpxLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KHEpe3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbT1xLmRldGFpbC5pdGVtLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlY29uZGFyeW1lbnUtaXRlbS1zZWxlY3QiLHtkZXRhaWw6cS5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNYWlubWVudUNvbGxhcHNlQ2hhbmdlKHEpe3RoaXMubWFpbm1lbnVDb2xsYXBzZWQ9cS5kZXRhaWwuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1haW5tZW51LWNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDpxLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlY29uZGFyeW1lbnVDb2xsYXBzZUNoYW5nZShxKXt0aGlzLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQ9cS5kZXRhaWwuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlY29uZGFyeW1lbnUtY29sbGFwc2UtY2hhbmdlIix7ZGV0YWlsOnEuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGVudFRhYlNlbGVjdChxKXt0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9cS5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtdGFiLXNlbGVjdCIse2RldGFpbDpxLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRlbnRUYWJDbG9zZShxKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LXRhYi1jbG9zZSIse2RldGFpbDpxLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXN0YXRpY3tGZShyLGEpfX07cmV0dXJuIENOZT1yfSkoKTtmZSgpO3ZhciBGSXQ9KCk9Pk1gCiAgPHN0eWxlPgogICAgJHt0ZWAKICAgICAgLmRlbW8tYmFja2dyb3VuZCB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbWFyZ2luOiAzMnB4IDAgMTZweCAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWN0aW9uLXRpdGxlOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk2OHB4KSB7CiAgICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1iYWNrZ3JvdW5kIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5EZWZhdWx0IFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUGFuZWwgQ29tcG9uZW50In0gLnN1YnRpdGxlPSR7IlRoZSBkZWZhdWx0IHBhbmVsIHZhcmlhbnQgd2l0aCBzaGFkY24taW5zcGlyZWQgc3R5bGluZyJ9PgogICAgICAgIDxwPlRoZSBwYW5lbCBjb21wb25lbnQgYXV0b21hdGljYWxseSBmb2xsb3dzIHRoZSB0aGVtZSBhbmQgcHJvdmlkZXMgY29uc2lzdGVudCBzdHlsaW5nIGZvciBncm91cGVkIGNvbnRlbnQuPC9wPgogICAgICAgIDxwPkl0J3MgcGVyZmVjdCBmb3IgY3JlYXRpbmcgc2VjdGlvbnMgaW4geW91ciBhcHBsaWNhdGlvbiB3aXRoIHByb3BlciBzcGFjaW5nIGFuZCBib3JkZXJzLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIE92ZXJ2aWV3In0gLnN1YnRpdGxlPSR7IktleSBjYXBhYmlsaXRpZXMifT4KICAgICAgICAgIDxwPkdyaWQgbGF5b3V0cyB3b3JrIGdyZWF0IHdpdGggcGFuZWxzIGZvciBjcmVhdGluZyBkYXNoYm9hcmRzIGFuZCBmZWF0dXJlIHNlY3Rpb25zLjwvcD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MZWFybiBNb3JlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlF1aWNrIEFjdGlvbnMifSAuc3VidGl0bGU9JHsiQ29tbW9uIHRhc2tzIn0+CiAgICAgICAgICA8cD5FYWNoIHBhbmVsIG1haW50YWlucyBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHN0eWxpbmcgYWNyb3NzIHlvdXIgYXBwbGljYXRpb24uPC9wPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkdldCBTdGFydGVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBWYXJpYW50czwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGVmYXVsdCBWYXJpYW50In0gLnZhcmlhbnQ9JHsiZGVmYXVsdCJ9PgogICAgICAgIDxwPlRoZSBkZWZhdWx0IHZhcmlhbnQgaGFzIGEgd2hpdGUgYmFja2dyb3VuZCwgc3VidGxlIGJvcmRlciwgYW5kIG1pbmltYWwgc2hhZG93LiBJdCdzIHRoZSBzdGFuZGFyZCBjaG9pY2UgZm9yIG1vc3QgY29udGVudC48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9ImRlZmF1bHQiPC9jb2RlPiBvciBvbWl0IHRoZSB2YXJpYW50IHByb3BlcnR5LjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik91dGxpbmUgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJUcmFuc3BhcmVudCBiYWNrZ3JvdW5kIHdpdGggYm9yZGVyIn0gLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgIDxwPlRoZSBvdXRsaW5lIHZhcmlhbnQgcmVtb3ZlcyB0aGUgYmFja2dyb3VuZCBjb2xvciBhbmQgc2hhZG93LCBrZWVwaW5nIG9ubHkgdGhlIGJvcmRlci48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9Im91dGxpbmUiPC9jb2RlPiBmb3IgYSBsaWdodGVyIHZpc3VhbCB3ZWlnaHQuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiR2hvc3QgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJNaW5pbWFsIHN0eWxpbmcgZm9yIHN1YnRsZSBzZWN0aW9ucyJ9IC52YXJpYW50PSR7Imdob3N0In0+CiAgICAgICAgPHA+VGhlIGdob3N0IHZhcmlhbnQgaGFzIG5vIGJvcmRlciBvciBiYWNrZ3JvdW5kIGJ5IGRlZmF1bHQsIG9ubHkgc2hvd2luZyBhIHN1YnRsZSBiYWNrZ3JvdW5kIG9uIGhvdmVyLjwvcD4KICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD0iZ2hvc3QiPC9jb2RlPiBmb3IgdGhlIG1vc3QgbWluaW1hbCBhcHBlYXJhbmNlLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBTaXplczwvaDI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLTNjb2wiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTbWFsbCBQYW5lbCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5Db21wYWN0IHBhZGRpbmcgZm9yIGRlbnNlIGxheW91dHMuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9InNtIjwvY29kZT48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJNZWRpdW0gUGFuZWwifSAuc2l6ZT0keyJtZCJ9PgogICAgICAgICAgPHA+RGVmYXVsdCBzaXplIHdpdGggYmFsYW5jZWQgc3BhY2luZy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibWQiPC9jb2RlPiBvciBvbWl0LjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkxhcmdlIFBhbmVsIn0gLnNpemU9JHsibGcifT4KICAgICAgICAgIDxwPkdlbmVyb3VzIHBhZGRpbmcgZm9yIHByb21pbmVudCBzZWN0aW9ucy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibGciPC9jb2RlPjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db21wbGV4IEV4YW1wbGVzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiUGFuZWxzIHdvcmsgZ3JlYXQgZm9yIG9yZ2FuaXppbmcgZm9ybSBzZWN0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQcm9qZWN0IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJEZXNjcmlwdGlvbiJ9IC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIAogICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcnkifSAKICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIERldmVsb3BtZW50IixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHAiLGtleToibW9iaWxlIn0se29wdGlvbjoiRGVza3RvcCBTb2Z0d2FyZSIsa2V5OiJkZXNrdG9wIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNyZWF0ZSBQcm9qZWN0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVscyJ9IC5zdWJ0aXRsZT0keyJQYW5lbHMgY2FuIGJlIG5lc3RlZCBmb3IgaGllcmFyY2hpY2FsIG9yZ2FuaXphdGlvbiJ9PgogICAgICAgIDxwPllvdSBjYW4gbmVzdCBwYW5lbHMgdG8gY3JlYXRlIG1vcmUgY29tcGxleCBsYXlvdXRzOjwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDEifSAudmFyaWFudD0keyJvdXRsaW5lIn0gLnNpemU9JHsic20ifT4KICAgICAgICAgIDxwPlRoaXMgaXMgYSBuZXN0ZWQgcGFuZWwgd2l0aCBvdXRsaW5lIHZhcmlhbnQgYW5kIHNtYWxsIHNpemUuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDIifSAudmFyaWFudD0keyJnaG9zdCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5UaGlzIGlzIGFub3RoZXIgbmVzdGVkIHBhbmVsIHdpdGggZ2hvc3QgdmFyaWFudC48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlVudGl0bGVkIFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICA8cD5QYW5lbHMgd29yayBncmVhdCBldmVuIHdpdGhvdXQgYSB0aXRsZSBmb3Igc2ltcGxlIGNvbnRlbnQgZ3JvdXBpbmcuPC9wPgogICAgICAgIDxwPlRoZXkgcHJvdmlkZSB2aXN1YWwgc2VwYXJhdGlvbiBhbmQgY29uc2lzdGVudCBwYWRkaW5nIHRocm91Z2hvdXQgeW91ciBpbnRlcmZhY2UuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+Q3VzdG9tIENvbnRlbnQ8L2g0PgogICAgICAgICAgPHA+WW91IGNhbiBhZGQgeW91ciBvd24gaGVhZGluZ3MgYW5kIHN0cnVjdHVyZSB3aXRoaW4gdW50aXRsZWQgcGFuZWxzLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsiZ2hvc3QifT4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luLXRvcDogMDsiPk1pbmltYWwgU3R5bGU8L2g0PgogICAgICAgICAgPHA+R2hvc3QgcGFuZWxzIHdpdGhvdXQgdGl0bGVzIGNyZWF0ZSB2ZXJ5IHN1YnRsZSBjb250ZW50IHNlY3Rpb25zLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmA7ZmUoKTt2YXIgRG8xPSJHZWlzdCBTYW5zIixFbzE9IkludGVsIE9uZSBNb25vIixqRGU9YCcke0RvMX0nLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCAnT3h5Z2VuJywgJ1VidW50dScsICdDYW50YXJlbGwnLCAnRmlyYSBTYW5zJywgJ0Ryb2lkIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmYCxObzE9YCcke0VvMX0nLCAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgJ0ZpcmEgTW9ubycsICdEcm9pZCBTYW5zIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2VgLEp0PUJ0KGpEZSksamw9QnQoTm8xKSxQbzE9IkNhbCBTYW5zIixJbzE9YCcke1BvMX0nLCAke2pEZX1gLE9JdD1CdChJbzEpLEZvMT0iUm9ib3RvIFNsYWIiLE9vMT1gJyR7Rm8xfScsIEdlb3JnaWEsIHNlcmlmYCxmTmE9QnQoT28xKSx1TmE9QnQoYAogIGZvbnQtZmFtaWx5OiAke2pEZX07CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdjdjExJywgJ3RudW0nLCAnY3YwNScgMTsKYCk7ZmUoKTtCZSgpO3ZhciBuNT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LG9yPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxCbzE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLXBhbmVsIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W107dmFyIEU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6U3RyaW5nfSldLGY9W0Qoe3R5cGU6U3RyaW5nfSldLGQ9W0Qoe3R5cGU6U3RyaW5nfSldLGI9W0Qoe3R5cGU6U3RyaW5nfSldLHY9W0Qoe2F0dHJpYnV0ZTohMX0pXSxuNSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4idGl0bGUiaW4geixnZXQ6ej0+ei50aXRsZSxzZXQ6KHosUCk9Pnt6LnRpdGxlPVB9fSxtZXRhZGF0YTpDfSxzLGwpLG41KHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3VidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJzdWJ0aXRsZSJpbiB6LGdldDp6PT56LnN1YnRpdGxlLHNldDooeixQKT0+e3ouc3VidGl0bGU9UH19LG1ldGFkYXRhOkN9LGMsdSksbjUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YXJpYW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4idmFyaWFudCJpbiB6LGdldDp6PT56LnZhcmlhbnQsc2V0Oih6LFApPT57ei52YXJpYW50PVB9fSxtZXRhZGF0YTpDfSxoLGcpLG41KHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InNpemUiaW4geixnZXQ6ej0+ei5zaXplLHNldDooeixQKT0+e3ouc2l6ZT1QfX0sbWV0YWRhdGE6Q30seCxtKSxuNSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJ1bkFmdGVyUmVuZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4icnVuQWZ0ZXJSZW5kZXIiaW4geixnZXQ6ej0+ei5ydW5BZnRlclJlbmRlcixzZXQ6KHosUCk9Pnt6LnJ1bkFmdGVyUmVuZGVyPVB9fSxtZXRhZGF0YTpDfSx5LHcpLG41KG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkN9LG51bGwsYSksRT1yPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89Rkl0OyNlPW9yKHRoaXMscywiIik7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpdGxlKEMpe3RoaXMuI2U9Q30jdD0ob3IodGhpcyxsKSxvcih0aGlzLGMsIiIpKTtnZXQgc3VidGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3VidGl0bGUoQyl7dGhpcy4jdD1DfSNhPShvcih0aGlzLHUpLG9yKHRoaXMsaCwiZGVmYXVsdCIpKTtnZXQgdmFyaWFudCgpe3JldHVybiB0aGlzLiNhfXNldCB2YXJpYW50KEMpe3RoaXMuI2E9Q30jcj0ob3IodGhpcyxnKSxvcih0aGlzLHgsIm1kIikpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNpemUoQyl7dGhpcy4jcj1DfSNpPShvcih0aGlzLG0pLG9yKHRoaXMseSx2b2lkIDApKTtnZXQgcnVuQWZ0ZXJSZW5kZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcnVuQWZ0ZXJSZW5kZXIoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGRlZmF1bHQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9ImRlZmF1bHQiXSkgewogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIGhzbCgwIDAlIDAlIC8gMC4wNSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IG91dGxpbmUgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Im91dGxpbmUiXSkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGdob3N0ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJnaG9zdCJdKSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmhlYWRlcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBUaXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgbWFyZ2luOiA0cHggMCAwIDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTdWJ0aXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA4NC45JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC8qIENvbnRlbnQgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLmNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgfQoKICAgICAgLyogUmVtb3ZlIG1hcmdpbnMgZnJvbSBmaXJzdCBhbmQgbGFzdCBjaGlsZHJlbiAqLwogICAgICAuY29udGVudCA6OnNsb3R0ZWQoKjpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIGRlZmF1bHQgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZGVmYXVsdCJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIG91dGxpbmUgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0ib3V0bGluZSJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgNy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3IgZ2hvc3QgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZ2hvc3QiXTpob3ZlcikgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlcyAqLwogICAgICA6aG9zdCg6Zm9jdXMtd2l0aGluKSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAvKiBOZXN0ZWQgcGFuZWxzIHNwYWNpbmcgKi8KICAgICAgOjpzbG90dGVkKGRlZXMtcGFuZWwpIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbDpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICR7dGhpcy50aXRsZT9NYDxoMyBjbGFzcz0idGl0bGUiPiR7dGhpcy50aXRsZX08L2gzPmA6IiJ9CiAgICAgICAgJHt0aGlzLnN1YnRpdGxlP01gPHAgY2xhc3M9InN1YnRpdGxlIj4ke3RoaXMuc3VidGl0bGV9PC9wPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJ1bkFmdGVyUmVuZGVyJiZhd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxvcih0aGlzLHcpfXN0YXRpY3tvcihyLGEpfX07cmV0dXJuIEU9cn0pKCk7ZmUoKTtTdCgpO3ZhciBXbD1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LGFhPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxYZT0oKCk9PntsZXQgdD1wZSxlLGE9W10scj1bXSxpLG89W10scz1bXSxsLGY9W10sYz1bXSx1LGQ9W10saD1bXSxnLGI9W10seD1bXSxtLHY9W10seT1bXSx3LEU9W10sQz1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e3N0YXRpY3tsZXQgUD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZSh0W1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtEKHt0eXBlOlN0cmluZ30pXSxpPVtEKHt0eXBlOlN0cmluZ30pXSxsPVtEKHt0eXBlOlN0cmluZ30pXSx1PVtEKHt0eXBlOlN0cmluZ30pXSxnPVtEKHt0eXBlOkJvb2xlYW59KV0sbT1bRCh7dHlwZTpCb29sZWFufSldLHc9W0Qoe3R5cGU6U3RyaW5nfSldLFdsKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGF5b3V0TW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Xz0+ImxheW91dE1vZGUiaW4gXyxnZXQ6Xz0+Xy5sYXlvdXRNb2RlLHNldDooXywkKT0+e18ubGF5b3V0TW9kZT0kfX0sbWV0YWRhdGE6UH0sYSxyKSxXbCh0aGlzLG51bGwsaSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOl89PiJsYWJlbFBvc2l0aW9uImluIF8sZ2V0Ol89Pl8ubGFiZWxQb3NpdGlvbixzZXQ6KF8sJCk9PntfLmxhYmVsUG9zaXRpb249JH19LG1ldGFkYXRhOlB9LG8scyksV2wodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJrZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOl89PiJrZXkiaW4gXyxnZXQ6Xz0+Xy5rZXksc2V0OihfLCQpPT57Xy5rZXk9JH19LG1ldGFkYXRhOlB9LGYsYyksV2wodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Xz0+ImxhYmVsImluIF8sZ2V0Ol89Pl8ubGFiZWwsc2V0OihfLCQpPT57Xy5sYWJlbD0kfX0sbWV0YWRhdGE6UH0sZCxoKSxXbCh0aGlzLG51bGwsZyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlcXVpcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpfPT4icmVxdWlyZWQiaW4gXyxnZXQ6Xz0+Xy5yZXF1aXJlZCxzZXQ6KF8sJCk9PntfLnJlcXVpcmVkPSR9fSxtZXRhZGF0YTpQfSxiLHgpLFdsKHRoaXMsbnVsbCxtLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOl89PiJkaXNhYmxlZCJpbiBfLGdldDpfPT5fLmRpc2FibGVkLHNldDooXywkKT0+e18uZGlzYWJsZWQ9JH19LG1ldGFkYXRhOlB9LHYseSksV2wodGhpcyxudWxsLHcse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkZXNjcmlwdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Xz0+ImRlc2NyaXB0aW9uImluIF8sZ2V0Ol89Pl8uZGVzY3JpcHRpb24sc2V0OihfLCQpPT57Xy5kZXNjcmlwdGlvbj0kfX0sbWV0YWRhdGE6UH0sRSxDKSxQJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlB9KX0jZT1hYSh0aGlzLGEsImF1dG8iKTtnZXQgbGF5b3V0TW9kZSgpe3JldHVybiB0aGlzLiNlfXNldCBsYXlvdXRNb2RlKFApe3RoaXMuI2U9UH0jdD0oYWEodGhpcyxyKSxhYSh0aGlzLG8sInRvcCIpKTtnZXQgbGFiZWxQb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBsYWJlbFBvc2l0aW9uKFApe3RoaXMuI3Q9UH0jYT0oYWEodGhpcyxzKSxhYSh0aGlzLGYsdm9pZCAwKSk7Z2V0IGtleSgpe3JldHVybiB0aGlzLiNhfXNldCBrZXkoUCl7dGhpcy4jYT1QfSNyPShhYSh0aGlzLGMpLGFhKHRoaXMsZCx2b2lkIDApKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbGFiZWwoUCl7dGhpcy4jcj1QfSNpPShhYSh0aGlzLGgpLGFhKHRoaXMsYiwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNpfXNldCByZXF1aXJlZChQKXt0aGlzLiNpPVB9I289KGFhKHRoaXMseCksYWEodGhpcyx2LCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI299c2V0IGRpc2FibGVkKFApe3RoaXMuI289UH0jcz0oYWEodGhpcyx5KSxhYSh0aGlzLEUsdm9pZCAwKSk7Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGRlc2NyaXB0aW9uKFApe3RoaXMuI3M9UH1zdGF0aWMgZ2V0IGJhc2VTdHlsZXMoKXtyZXR1cm5bdGVgCiAgICAgICAgLyogQ1NTIFZhcmlhYmxlcyBmb3IgY29uc2lzdGVudCBzcGFjaW5nICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdDogOHB4OwogICAgICAgICAgLS1kZWVzLWlucHV0LXZlcnRpY2FsLWdhcDogY2FsYyh2YXIoLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdCkgKiAyKTsgLyogMTZweCAqLwogICAgICAgICAgLS1kZWVzLWlucHV0LWhvcml6b250YWwtZ2FwOiBjYWxjKHZhcigtLWRlZXMtaW5wdXQtc3BhY2luZy11bml0KSAqIDIpOyAvKiAxNnB4ICovCiAgICAgICAgICAtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwOiB2YXIoLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdCk7IC8qIDhweCAqLwogICAgICAgIH0KCiAgICAgICAgLyogRGVmYXVsdCB2ZXJ0aWNhbCBzdGFja2luZyBtb2RlIChmb3IgZm9ybXMpICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1kZWVzLWlucHV0LXZlcnRpY2FsLWdhcCk7CiAgICAgICAgfQoKICAgICAgICAvKiBMYXN0IGNoaWxkIGluIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBubyBib3R0b20gbWFyZ2luICovCiAgICAgICAgOmhvc3QoOmxhc3QtY2hpbGQpIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQoKICAgICAgICAvKiBIb3Jpem9udGFsIGxheW91dCBtb2RlIC0gYWN0aXZhdGVkIGJ5IGF0dHJpYnV0ZSAqLwogICAgICAgIDpob3N0KFtsYXlvdXQtbW9kZT0iaG9yaXpvbnRhbCJdKSB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWRlZXMtaW5wdXQtaG9yaXpvbnRhbC1nYXApOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYXlvdXQtbW9kZT0iaG9yaXpvbnRhbCJdOmxhc3QtY2hpbGQpIHsKICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgICAgICB9CgogICAgICAgIC8qIEF1dG8gbW9kZSAtIGluaGVyaXQgZnJvbSBwYXJlbnQgZGVlcy1mb3JtIGlmIHByZXNlbnQgKi8KCiAgICAgICAgLyogTGFiZWwgcG9zaXRpb24gdmFyaWF0aW9ucyAqLwogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjsKICAgICAgICAgIGdhcDogdmFyKC0tZGVlcy1pbnB1dC1sYWJlbC1nYXApOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87CiAgICAgICAgICBnYXA6IHZhcigtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwKTsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InRvcCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibm9uZSJdKSBkZWVzLWxhYmVsIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICBgXX1jaGFuZ2VTdWJqZWN0PShhYSh0aGlzLEMpLG5ldyBBdC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuZGV0ZWN0TGF5b3V0TW9kZSgpfWRldGVjdExheW91dE1vZGUoKXtpZih0aGlzLmxheW91dE1vZGUhPT0iYXV0byIpe3RoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsdGhpcy5sYXlvdXRNb2RlKTtyZXR1cm59bGV0IFA9dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtQJiZQLmhhc0F0dHJpYnV0ZSgiaG9yaXpvbnRhbC1sYXlvdXQiKT90aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLCJob3Jpem9udGFsIik6dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIiwidmVydGljYWwiKX11cGRhdGVkKFApe3N1cGVyLnVwZGF0ZWQoUCksUC5oYXMoImxheW91dE1vZGUiKSYmdGhpcy5kZXRlY3RMYXlvdXRNb2RlKCksUC5oYXMoImxhYmVsUG9zaXRpb24iKSYmdGhpcy5zZXRBdHRyaWJ1dGUoImxhYmVsLXBvc2l0aW9uIix0aGlzLmxhYmVsUG9zaXRpb24pfWFzeW5jIGZyZWV6ZSgpe3RoaXMuZGlzYWJsZWQ9ITB9YXN5bmMgdW5mcmVlemUoKXt0aGlzLmRpc2FibGVkPSExfX19KSgpO2ZlKCk7dmFyIEJJdD0oKT0+TWAKICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LWNoZWNrYm94IiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3QtYWxsLWJ0biIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjY2xlYXItYWxsLWJ0biIpO2EmJnImJihhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZm9yRWFjaChpPT57IWkuZGlzYWJsZWQmJmkua2V5Py5zdGFydHNXaXRoKCJmZWF0dXJlIikmJihpLnZhbHVlPSEwKX0pfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmZvckVhY2goaT0+eyFpLmRpc2FibGVkJiZpLmtleT8uc3RhcnRzV2l0aCgiZmVhdHVyZSIpJiYoaS52YWx1ZT0hMSl9KX0pKX19PgogICAgPHN0eWxlPgogICAgICAke3RlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hlY2tib3gtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ob3Jpem9udGFsLWNoZWNrYm94ZXMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmludGVyYWN0aXZlLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vdXRwdXQtdGV4dCB7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTAgNDAlIDgwJSkiKX07CiAgICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvcm0tc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmJ1dHRvbi1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmVhdHVyZS1saXN0IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgQ2hlY2tib3hlcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgY2hlY2tib3ggZXhhbXBsZXMgd2l0aCB2YXJpb3VzIGxhYmVscyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiSSBhZ3JlZSB0byB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnMifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsidGVybXMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJTdWJzY3JpYmUgdG8gbmV3c2xldHRlciJ9IAogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmtleT0keyJuZXdzbGV0dGVyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlIG5vdGlmaWNhdGlvbnMifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJSZWNlaXZlIGVtYWlsIHVwZGF0ZXMgYWJvdXQgeW91ciBhY2NvdW50In0KICAgICAgICAgICAgLmtleT0keyJub3RpZmljYXRpb25zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDaGVja2JveCBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGNoZWNrYm94IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkRlZmF1bHQgc3RhdGUifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkNoZWNrZWQgc3RhdGUifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIHVuY2hlY2tlZCJ9IAogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIGNoZWNrZWQifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBjaGVja2JveCJ9IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJyZXF1aXJlZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiQ2hlY2tib3hlcyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgZm9ybXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWNoZWNrYm94ZXMiPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQSJ9IAogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBCIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJvcHRpb25CIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEMifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7Im9wdGlvbkMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gRCJ9IAogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uRCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZSBTZWxlY3Rpb24gRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJDb21tb24gdXNlIGNhc2UgZm9yIGZlYXR1cmUgdG9nZ2xlcyB3aXRoIGJhdGNoIG9wZXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIGlkPSJzZWxlY3QtYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5TZWxlY3QgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0iY2xlYXItYWxsLWJ0biIgdHlwZT0ic2Vjb25kYXJ5Ij5DbGVhciBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbGlzdCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJEYXJrIE1vZGUgU3VwcG9ydCJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIE5vdGlmaWNhdGlvbnMifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJUd28tRmFjdG9yIEF1dGhlbnRpY2F0aW9uIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiQVBJIEFjY2VzcyJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFkdmFuY2VkIEFuYWx5dGljcyJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcml2YWN5IFNldHRpbmdzIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ2hlY2tib3hlcyBpbiBhIHR5cGljYWwgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHJpdmFjeSBQcmVmZXJlbmNlczwvaDQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94LWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlNoYXJlIGFuYWx5dGljcyBkYXRhIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkhlbHAgdXMgaW1wcm92ZSBieSBzaGFyaW5nIGFub255bW91cyB1c2FnZSBkYXRhIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJQZXJzb25hbGl6ZWQgcmVjb21tZW5kYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkdldCBzdWdnZXN0aW9ucyBiYXNlZCBvbiB5b3VyIGFjdGl2aXR5In0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJNYXJrZXRpbmcgY29tbXVuaWNhdGlvbnMifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwcm9tb3Rpb25hbCBlbWFpbHMgYW5kIHNwZWNpYWwgb2ZmZXJzIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJUaGlyZC1wYXJ0eSBpbnRlZ3JhdGlvbnMifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWxsb3cgYXBwcm92ZWQgcGFydG5lcnMgdG8gYWNjZXNzIHlvdXIgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ2xpY2sgY2hlY2tib3hlcyB0byBzZWUgdmFsdWUgY2hhbmdlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiRmVhdHVyZSB0b2dnbGUifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGVja2JveC1vdXRwdXQiKTtpZihlJiZ0LmRldGFpbCl7bGV0IGE9dC5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBGZWF0dXJlIGlzICR7YT8iZW5hYmxlZCI6ImRpc2FibGVkIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkRlYnVnIG1vZGUifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkZWJ1Zy1vdXRwdXQiKTtpZihlJiZ0LmRldGFpbCl7bGV0IGE9dC5kZXRhaWwuZ2V0VmFsdWUoKTtlLnRleHRDb250ZW50PWBEZWJ1ZyBtb2RlOiAke2E/Ik9OIjoiT0ZGIn1gfX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImludGVyYWN0aXZlLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBpZD0iY2hlY2tib3gtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiPkZlYXR1cmUgaXMgZGlzYWJsZWQ8L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRlYnVnLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0IiBzdHlsZT0ibWFyZ2luLXRvcDogOHB4OyI+RGVidWcgbW9kZTogT0ZGPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYDtmZSgpO0JlKCk7dmFyIFdEZT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LGhJPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxHRGU9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWlucHV0LWNoZWNrYm94IildLGUsYT1bXSxyLGk9WGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6Qm9vbGVhbn0pXSxmPVtEKHt0eXBlOkJvb2xlYW59KV0sV0RlKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJ2YWx1ZSJpbiBnLGdldDpnPT5nLnZhbHVlLHNldDooZyxiKT0+e2cudmFsdWU9Yn19LG1ldGFkYXRhOmh9LHMsbCksV0RlKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5kZXRlcm1pbmF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+ImluZGV0ZXJtaW5hdGUiaW4gZyxnZXQ6Zz0+Zy5pbmRldGVybWluYXRlLHNldDooZyxiKT0+e2cuaW5kZXRlcm1pbmF0ZT1ifX0sbWV0YWRhdGE6aH0sYyx1KSxXRGUobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxhKSxkPXI9ZS52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1CSXQ7c3RhdGljIGRlbW9Hcm91cD0iSW5wdXQiOyNlPWhJKHRoaXMscywhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGgpe3RoaXMuI2U9aH0jdD0oaEkodGhpcyxsKSxoSSh0aGlzLGMsITEpKTtnZXQgaW5kZXRlcm1pbmF0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbmRldGVybWluYXRlKGgpe3RoaXMuI3Q9aH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksaEkodGhpcyx1KSx0aGlzLmxhYmVsUG9zaXRpb249InJpZ2h0In1zdGF0aWMgc3R5bGVzPVt4ZSwuLi5YZS5iYXNlU3R5bGVzLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAgICogewogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CgogICAgICAgIDpob3N0IHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3ggewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgbWFyZ2luLXRvcDogMXB4OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLmNoZWNrYm94IHsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveDpmb2N1cy12aXNpYmxlIHsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICAgIH0KCiAgICAgICAgLyogQ2hlY2ttYXJrIHVzaW5nIEx1Y2lkZSBpY29uIHN0eWxlICovCiAgICAgICAgLmNoZWNrYm94IC5jaGVja21hcmsgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3guc2VsZWN0ZWQgLmNoZWNrbWFyayB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94IC5jaGVja21hcmsgc3ZnIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgc3Ryb2tlOiB3aGl0ZTsKICAgICAgICAgIHN0cm9rZS13aWR0aDogMzsKICAgICAgICB9CgogICAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5kaXNhYmxlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLyogTGFiZWwgKi8KICAgICAgICAubGFiZWwtY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LWxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQ6aG92ZXIgLmNoZWNrYm94LWxhYmVsIHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBEZXNjcmlwdGlvbiAqLwogICAgICAgIC5kZXNjcmlwdGlvbi10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iIEBjbGljaz0iJHt0aGlzLnRvZ2dsZVNlbGVjdGVkfSI+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0iY2hlY2tib3ggJHt0aGlzLnZhbHVlPyJzZWxlY3RlZCI6IiJ9ICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZUtleWRvd259IgogICAgICAgICAgPgogICAgICAgICAgICAke3RoaXMudmFsdWU/TWAKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNoZWNrbWFyayI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAgNkw5IDE3TDQgMTIiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgYDp0aGlzLmluZGV0ZXJtaW5hdGU/TWAKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hlY2ttYXJrIj4KICAgICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSAxMkgxOSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgOk1gYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtY29udGFpbmVyIj4KICAgICAgICAgICAgJHt0aGlzLmxhYmVsP01gPGRpdiBjbGFzcz0iY2hlY2tib3gtbGFiZWwiPiR7dGhpcy5sYWJlbH08L2Rpdj5gOiIifQogICAgICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/TWA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbi10ZXh0Ij4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgdG9nZ2xlU2VsZWN0ZWQoKXt0aGlzLmRpc2FibGVkfHwodGhpcy52YWx1ZT0hdGhpcy52YWx1ZSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuZXdWYWx1ZSIse2RldGFpbDp0aGlzLnZhbHVlLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoaCl7dGhpcy52YWx1ZT1ofWZvY3VzKCl7bGV0IGg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGVja2JveCIpO2gmJmguZm9jdXMoKX1oYW5kbGVLZXlkb3duKGgpeyhoLmtleT09PSIgInx8aC5rZXk9PT0iRW50ZXIiKSYmKGgucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZVNlbGVjdGVkKCkpfXN0YXRpY3toSShyLGEpfX07cmV0dXJuIGQ9cn0pKCk7dmFyIGw1PXt9O2V0KGw1LHticmlnaHQ6KCk9PkdsLGRhcms6KCk9PlBhfSk7dmFyIFBhPXtibHVlOiIjMDA1MGI5IixibHVlQWN0aXZlOiIjMDA2OWYyIixibHVlTXV0ZWQ6IiMwMTI0NTIiLHRleHQ6IiNmZmZmZmYifSxHbD17Ymx1ZToiIzAwNTBiOSIsYmx1ZUFjdGl2ZToiIzAwNjlmMiIsYmx1ZU11dGVkOiIjMDA2OWYyIix0ZXh0OiIjMzMzMzMzIn07ZmUoKTt2YXIgUkl0PSgpPT5NYAogIDxzdHlsZT4KICAgICR7dGVgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y4ZjlmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tc2VjdGlvbiBwIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SGVhZGVyIEJ1dHRvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgb3B0aW9uYWwgaGVhZGVyIGJ1dHRvbnMgZm9yIGhlbHAgYW5kIGNsb3NpbmcuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZTEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBIZWxwIEJ1dHRvbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmFzeW5jKCk9PntsZXQgdD1hd2FpdCBlMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJIZWxwIix3aWR0aDoic21hbGwiLHNob3dDbG9zZUJ1dHRvbjohMCxzaG93SGVscEJ1dHRvbjohMSxjb250ZW50Ok1gCiAgICAgICAgICAgICAgICAgIDxwPlRoaXMgaXMgdGhlIGhlbHAgY29udGVudCBmb3IgdGhlIG1vZGFsLjwvcD4KICAgICAgICAgICAgICAgICAgPHA+WW91IGNhbiBwcm92aWRlIGNvbnRleHQtc3BlY2lmaWMgaGVscCBoZXJlLjwvcD4KICAgICAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJHb3QgaXQiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX1dfSl9LGNvbnRlbnQ6TWAKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBhIGhlbHAgYnV0dG9uIGluIHRoZSBoZWFkZXIuIENsaWNrIGl0IHRvIHNlZSBoZWxwIGNvbnRlbnQuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjbG9zZSBidXR0b24gaXMgYWxzbyB2aXNpYmxlIGJ5IGRlZmF1bHQuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5XaXRoIEhlbHAgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBDbG9zZSBCdXR0b24iLHNob3dDbG9zZUJ1dHRvbjohMSxjb250ZW50Ok1gCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIuPC9wPgogICAgICAgICAgICAgIDxwPllvdSBtdXN0IHVzZSB0aGUgYWN0aW9uIGJ1dHRvbnMgb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBpdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19Pk5vIENsb3NlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZTEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQm90aCBCdXR0b25zIixzaG93SGVscEJ1dHRvbjohMCxzaG93Q2xvc2VCdXR0b246ITAsb25IZWxwOigpPT5hbGVydCgiSGVscCBjbGlja2VkISIpLGNvbnRlbnQ6TWAKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBib3RoIGhlbHAgYW5kIGNsb3NlIGJ1dHRvbnMuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiRG9uZSIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PkJvdGggQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZTEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ2xlYW4gSGVhZGVyIixzaG93Q2xvc2VCdXR0b246ITEsc2hvd0hlbHBCdXR0b246ITEsY29udGVudDpNYAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY2xlYW4gaGVhZGVyIHdpdGggbm8gYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PkNsZWFuIEhlYWRlcjwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Nb2RhbCBXaWR0aCBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCB3aWR0aHM6IHNtYWxsLCBtZWRpdW0sIGxhcmdlLCBmdWxsc2NyZWVuLCBvciBjdXN0b20gcGl4ZWwgdmFsdWVzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2UxLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlNtYWxsIE1vZGFsIix3aWR0aDoic21hbGwiLGNvbnRlbnQ6TWAKICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc21hbGwgbW9kYWwgd2l0aCBhIHdpZHRoIG9mIDM4MHB4LiBQZXJmZWN0IGZvciBzaW1wbGUgY29uZmlybWF0aW9ucyBvciBicmllZiBtZXNzYWdlcy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX0se25hbWU6Ik9LIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+U21hbGwgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2UxLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik1lZGl1bSBNb2RhbCAoRGVmYXVsdCkiLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6TWAKICAgICAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUGFzc3dvcmQifSAuaW5wdXRUeXBlPSR7InBhc3N3b3JkIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX0se25hbWU6IlNpZ24gVXAiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5NZWRpdW0gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2UxLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkxhcmdlIE1vZGFsIix3aWR0aDoibGFyZ2UiLGNvbnRlbnQ6TWAKICAgICAgICAgICAgICA8aDQ+V2lkZSBDb250ZW50IEFyZWE8L2g0PgogICAgICAgICAgICAgIDxwPlRoaXMgbGFyZ2UgbW9kYWwgaXMgODAwcHggd2lkZSBhbmQgcGVyZmVjdCBmb3IgZGlzcGxheWluZyBtb3JlIGNvbXBsZXggY29udGVudCBsaWtlIGZvcm1zIHdpdGggbXVsdGlwbGUgY29sdW1ucywgdGFibGVzLCBvciBkZXRhaWxlZCBpbmZvcm1hdGlvbi48L3A+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDE2cHg7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkZpcnN0IE5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7Ikxhc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ29tcGFueSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUG9zaXRpb24ifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfSx7bmFtZToiU2F2ZSIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PkxhcmdlIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJGdWxsc2NyZWVuIEVkaXRvciIsd2lkdGg6ImZ1bGxzY3JlZW4iLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDphc3luYygpPT57YWxlcnQoIkluIGEgcmVhbCBhcHAsIHRoaXMgd291bGQgc2hvdyBlZGl0b3IgZG9jdW1lbnRhdGlvbiIpfSxjb250ZW50Ok1gCiAgICAgICAgICAgICAgPGg0PkZ1bGxzY3JlZW4gRXhwZXJpZW5jZSB3aXRoIEhlYWRlciBDb250cm9sczwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB0YWtlcyB1cCBhbG1vc3QgdGhlIGVudGlyZSB2aWV3cG9ydCB3aXRoIGEgMjBweCBtYXJnaW4gb24gYWxsIHNpZGVzLiBUaGUgaGVhZGVyIGJ1dHRvbnMgYXJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gZnVsbHNjcmVlbiBtb2RlLjwvcD4KICAgICAgICAgICAgICA8cD5UaGUgY29udGVudCBhcmVhIGNhbiBiZSBhcyB0YWxsIGFzIG5lZWRlZCBhbmQgd2lsbCBzY3JvbGwgaWYgbmVjZXNzYXJ5LjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2YwZjBmMCIsIiMyYTJhMmEiKX07IGJvcmRlci1yYWRpdXM6IDhweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogJHtwLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9Ij5MYXJnZSBjb250ZW50IGFyZWE8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJTYXZlIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9LHtuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5GdWxsc2NyZWVuIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkN1c3RvbSBXaWR0aCAmIENvbnN0cmFpbnRzPC9oMz4KICAgICAgPHA+WW91IGNhbiBhbHNvIHNldCBjdXN0b20gcGl4ZWwgd2lkdGhzIGFuZCBtaW4vbWF4IGNvbnN0cmFpbnRzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2UxLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkN1c3RvbSBXaWR0aCAoNzAwcHgpIix3aWR0aDo3MDAsY29udGVudDpNYAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY3VzdG9tIHdpZHRoIG9mIGV4YWN0bHkgNzAwIHBpeGVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PkN1c3RvbSA3MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZTEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNYXggV2lkdGgiLHdpZHRoOiJsYXJnZSIsbWF4V2lkdGg6NjAwLGNvbnRlbnQ6TWAKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGlzIHNldCB0byAnbGFyZ2UnIGJ1dCBjb25zdHJhaW5lZCBieSBhIG1heFdpZHRoIG9mIDYwMHB4LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19Pk1heCBXaWR0aCA2MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZTEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNaW4gV2lkdGgiLHdpZHRoOjMwMCxtaW5XaWR0aDo0MDAsY29udGVudDpNYAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgd2lkdGggaXMgc2V0IHRvIDMwMHB4IGJ1dCBoYXMgYSBtaW5XaWR0aCBvZiA0MDBweCwgc28gaXQgd2lsbCBiZSA0MDBweCB3aWRlLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6Ik9LIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+TWluIFdpZHRoIDQwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCBidXR0b24gY29uZmlndXJhdGlvbnMgd2l0aCBwcm9wZXIgc3BhY2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJNdWx0aXBsZSBBY3Rpb25zIixjb250ZW50Ok1gCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBkZW1vbnN0cmF0ZXMgbXVsdGlwbGUgYnV0dG9ucyB3aXRoIHByb3BlciBzcGFjaW5nIGJldHdlZW4gdGhlbS48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEZWxldGUiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfSx7bmFtZToiU2F2ZSBDaGFuZ2VzIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+VGhyZWUgQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZTEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2luZ2xlIEFjdGlvbiIsY29udGVudDpNYAogICAgICAgICAgICAgIDxwPlNvbWV0aW1lcyB5b3UganVzdCBuZWVkIG9uZSBidXR0b24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQWNrbm93bGVkZ2UiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5TaW5nbGUgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBBY3Rpb25zIixjb250ZW50Ok1gCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gYm90dG9tIGJ1dHRvbnMuIFVzZSB0aGUgWCBidXR0b24gb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZS48L3A+CiAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IGNvbG9yOiAke3AuYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07Ij5UaGlzIGlzIHVzZWZ1bCBmb3IgaW5mb3JtYXRpb25hbCBtb2RhbHMgdGhhdCBkb24ndCByZXF1aXJlIHVzZXIgYWN0aW9uLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbXX0pfX0+Tm8gQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57ZTEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBCdXR0b24gTGFiZWxzIixjb250ZW50Ok1gCiAgICAgICAgICAgICAgPHA+VGVzdGluZyBidXR0b24gbGF5b3V0IHdpdGggbG9uZ2VyIGxhYmVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEaXNjYXJkIEFsbCBDaGFuZ2VzIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9LHtuYW1lOiJTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+TG9uZyBMYWJlbHM8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVzcG9uc2l2ZSBCZWhhdmlvcjwvaDM+CiAgICAgIDxwPkFsbCBtb2RhbHMgYXV0b21hdGljYWxseSBiZWNvbWUgZnVsbC13aWR0aCBvbiBtb2JpbGUgZGV2aWNlcyAoPCA3NjhweCB2aWV3cG9ydCB3aWR0aCkgZm9yIGJldHRlciB1c2FiaWxpdHkuPC9wPgogICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntlMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJSZXNwb25zaXZlIE1vZGFsIix3aWR0aDoibGFyZ2UiLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDooKT0+Y29uc29sZS5sb2coIkhlbHAgcmVxdWVzdGVkIGZvciByZXNwb25zaXZlIG1vZGFsIiksY29udGVudDpNYAogICAgICAgICAgICA8cD5SZXNpemUgeW91ciBicm93c2VyIHdpbmRvdyB0byBzZWUgaG93IHRoaXMgbW9kYWwgYWRhcHRzLiBPbiBtb2JpbGUgdmlld3BvcnRzLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgdGFrZSB0aGUgZnVsbCB3aWR0aCBtaW51cyBtYXJnaW5zLjwvcD4KICAgICAgICAgICAgPHA+VGhlIGhlYWRlciBidXR0b25zIHJlbWFpbiBhY2Nlc3NpYmxlIGF0IGFsbCB2aWV3cG9ydCBzaXplcy48L3A+CiAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2xvc2UiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5UZXN0IFJlc3BvbnNpdmU8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CiAgPC9kaXY+CmA7ZmUoKTtTdCgpO0Z0KCk7QmUoKTt2YXIgZmE9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxmMT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sZTE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLW1vZGFsIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W10sSCxMPVtdLGs9W10sTixTPVtdLFQ9W10sUixBPVtdLEY9W10sYWUsVj1bXSxTZT1bXSx6ZSxXPVtdLE5lPVtdO3ZhciBSZT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IFg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpTdHJpbmd9KV0sZj1bbGUoe30pXSxkPVtsZSh7fSldLGI9W0Qoe3R5cGU6U3RyaW5nfSldLHY9W0Qoe3R5cGU6TnVtYmVyfSldLEU9W0Qoe3R5cGU6TnVtYmVyfSldLFA9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxIPVtEKHt0eXBlOkJvb2xlYW59KV0sTj1bRCh7YXR0cmlidXRlOiExfSldLFI9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxhZT1bRCh7dHlwZTpOdW1iZXJ9KV0semU9W2xlKCldLGZhKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ST0+ImhlYWRpbmciaW4gSSxnZXQ6ST0+SS5oZWFkaW5nLHNldDooSSxPKT0+e0kuaGVhZGluZz1PfX0sbWV0YWRhdGE6WH0scyxsKSxmYSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkk9PiJjb250ZW50ImluIEksZ2V0Okk9PkkuY29udGVudCxzZXQ6KEksTyk9PntJLmNvbnRlbnQ9T319LG1ldGFkYXRhOlh9LGMsdSksZmEodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51T3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ST0+Im1lbnVPcHRpb25zImluIEksZ2V0Okk9PkkubWVudU9wdGlvbnMsc2V0OihJLE8pPT57SS5tZW51T3B0aW9ucz1PfX0sbWV0YWRhdGE6WH0saCxnKSxmYSh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpJPT4id2lkdGgiaW4gSSxnZXQ6ST0+SS53aWR0aCxzZXQ6KEksTyk9PntJLndpZHRoPU99fSxtZXRhZGF0YTpYfSx4LG0pLGZhKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4V2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkk9PiJtYXhXaWR0aCJpbiBJLGdldDpJPT5JLm1heFdpZHRoLHNldDooSSxPKT0+e0kubWF4V2lkdGg9T319LG1ldGFkYXRhOlh9LHksdyksZmEodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5XaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ST0+Im1pbldpZHRoImluIEksZ2V0Okk9PkkubWluV2lkdGgsc2V0OihJLE8pPT57SS5taW5XaWR0aD1PfX0sbWV0YWRhdGE6WH0sQyx6KSxmYSh0aGlzLG51bGwsUCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDbG9zZUJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ST0+InNob3dDbG9zZUJ1dHRvbiJpbiBJLGdldDpJPT5JLnNob3dDbG9zZUJ1dHRvbixzZXQ6KEksTyk9PntJLnNob3dDbG9zZUJ1dHRvbj1PfX0sbWV0YWRhdGE6WH0sXywkKSxmYSh0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIZWxwQnV0dG9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpJPT4ic2hvd0hlbHBCdXR0b24iaW4gSSxnZXQ6ST0+SS5zaG93SGVscEJ1dHRvbixzZXQ6KEksTyk9PntJLnNob3dIZWxwQnV0dG9uPU99fSxtZXRhZGF0YTpYfSxMLGspLGZhKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib25IZWxwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpJPT4ib25IZWxwImluIEksZ2V0Okk9Pkkub25IZWxwLHNldDooSSxPKT0+e0kub25IZWxwPU99fSxtZXRhZGF0YTpYfSxTLFQpLGZhKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9iaWxlRnVsbHNjcmVlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ST0+Im1vYmlsZUZ1bGxzY3JlZW4iaW4gSSxnZXQ6ST0+SS5tb2JpbGVGdWxsc2NyZWVuLHNldDooSSxPKT0+e0kubW9iaWxlRnVsbHNjcmVlbj1PfX0sbWV0YWRhdGE6WH0sQSxGKSxmYSh0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50UGFkZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ST0+ImNvbnRlbnRQYWRkaW5nImluIEksZ2V0Okk9PkkuY29udGVudFBhZGRpbmcsc2V0OihJLE8pPT57SS5jb250ZW50UGFkZGluZz1PfX0sbWV0YWRhdGE6WH0sVixTZSksZmEodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kYWxaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkk9PiJtb2RhbFpJbmRleCJpbiBJLGdldDpJPT5JLm1vZGFsWkluZGV4LHNldDooSSxPKT0+e0kubW9kYWxaSW5kZXg9T319LG1ldGFkYXRhOlh9LFcsTmUpLGZhKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOlh9LG51bGwsYSksUmU9cj1lLnZhbHVlLFgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6WH0pfXN0YXRpYyBkZW1vPVJJdDtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhYKXtsZXQgST1kb2N1bWVudC5ib2R5LE89bmV3IFJlO3JldHVybiBPLmhlYWRpbmc9WC5oZWFkaW5nLE8uY29udGVudD1YLmNvbnRlbnQsTy5tZW51T3B0aW9ucz1YLm1lbnVPcHRpb25zLFgud2lkdGgmJihPLndpZHRoPVgud2lkdGgpLFgubWF4V2lkdGgmJihPLm1heFdpZHRoPVgubWF4V2lkdGgpLFgubWluV2lkdGgmJihPLm1pbldpZHRoPVgubWluV2lkdGgpLFguc2hvd0Nsb3NlQnV0dG9uIT09dm9pZCAwJiYoTy5zaG93Q2xvc2VCdXR0b249WC5zaG93Q2xvc2VCdXR0b24pLFguc2hvd0hlbHBCdXR0b24hPT12b2lkIDAmJihPLnNob3dIZWxwQnV0dG9uPVguc2hvd0hlbHBCdXR0b24pLFgub25IZWxwJiYoTy5vbkhlbHA9WC5vbkhlbHApLFgubW9iaWxlRnVsbHNjcmVlbiE9PXZvaWQgMCYmKE8ubW9iaWxlRnVsbHNjcmVlbj1YLm1vYmlsZUZ1bGxzY3JlZW4pLFguY29udGVudFBhZGRpbmchPT12b2lkIDAmJihPLmNvbnRlbnRQYWRkaW5nPVguY29udGVudFBhZGRpbmcpLE8ud2luZG93TGF5ZXI9YXdhaXQgS2EuY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLE8ud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9Pnthd2FpdCBPLmRlc3Ryb3koKX0pLEkuYXBwZW5kKE8ud2luZG93TGF5ZXIpLEkuYXBwZW5kKE8pLE8ubW9kYWxaSW5kZXg9czEuZ2V0TmV4dFpJbmRleCgpLHMxLnJlZ2lzdGVyKE8sTy5tb2RhbFpJbmRleCksT30jZT1mMSh0aGlzLHMsIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcoWCl7dGhpcy4jZT1YfSN0PShmMSh0aGlzLGwpLGYxKHRoaXMsYyx2b2lkIDApKTtnZXQgY29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBjb250ZW50KFgpe3RoaXMuI3Q9WH0jYT0oZjEodGhpcyx1KSxmMSh0aGlzLGgsW10pKTtnZXQgbWVudU9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudU9wdGlvbnMoWCl7dGhpcy4jYT1YfSNyPShmMSh0aGlzLGcpLGYxKHRoaXMseCwibWVkaXVtIikpO2dldCB3aWR0aCgpe3JldHVybiB0aGlzLiNyfXNldCB3aWR0aChYKXt0aGlzLiNyPVh9I2k9KGYxKHRoaXMsbSksZjEodGhpcyx5LHZvaWQgMCkpO2dldCBtYXhXaWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCBtYXhXaWR0aChYKXt0aGlzLiNpPVh9I289KGYxKHRoaXMsdyksZjEodGhpcyxDLHZvaWQgMCkpO2dldCBtaW5XaWR0aCgpe3JldHVybiB0aGlzLiNvfXNldCBtaW5XaWR0aChYKXt0aGlzLiNvPVh9I3M9KGYxKHRoaXMseiksZjEodGhpcyxfLCEwKSk7Z2V0IHNob3dDbG9zZUJ1dHRvbigpe3JldHVybiB0aGlzLiNzfXNldCBzaG93Q2xvc2VCdXR0b24oWCl7dGhpcy4jcz1YfSNuPShmMSh0aGlzLCQpLGYxKHRoaXMsTCwhMSkpO2dldCBzaG93SGVscEJ1dHRvbigpe3JldHVybiB0aGlzLiNufXNldCBzaG93SGVscEJ1dHRvbihYKXt0aGlzLiNuPVh9I2w9KGYxKHRoaXMsayksZjEodGhpcyxTLHZvaWQgMCkpO2dldCBvbkhlbHAoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb25IZWxwKFgpe3RoaXMuI2w9WH0jYz0oZjEodGhpcyxUKSxmMSh0aGlzLEEsITEpKTtnZXQgbW9iaWxlRnVsbHNjcmVlbigpe3JldHVybiB0aGlzLiNjfXNldCBtb2JpbGVGdWxsc2NyZWVuKFgpe3RoaXMuI2M9WH0jZD0oZjEodGhpcyxGKSxmMSh0aGlzLFYsMTYpKTtnZXQgY29udGVudFBhZGRpbmcoKXtyZXR1cm4gdGhpcy4jZH1zZXQgY29udGVudFBhZGRpbmcoWCl7dGhpcy4jZD1YfSNmPShmMSh0aGlzLFNlKSxmMSh0aGlzLFcsMWUzKSk7Z2V0IG1vZGFsWkluZGV4KCl7cmV0dXJuIHRoaXMuI2Z9c2V0IG1vZGFsWkluZGV4KFgpe3RoaXMuI2Y9WH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgfQogICAgICAubW9kYWxDb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KICAgICAgLm1vZGFsIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpIHNjYWxlKDAuOTUpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQwcHgpOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgICAgICBtYXJnaW46IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIH0KCiAgICAgIC8qIFdpZHRoIHZhcmlhdGlvbnMgKi8KICAgICAgLm1vZGFsLndpZHRoLXNtYWxsIHsKICAgICAgICB3aWR0aDogMzgwcHg7CiAgICAgIH0KCiAgICAgIC5tb2RhbC53aWR0aC1tZWRpdW0gewogICAgICAgIHdpZHRoOiA1NjBweDsKICAgICAgfQoKICAgICAgLm1vZGFsLndpZHRoLWxhcmdlIHsKICAgICAgICB3aWR0aDogODAwcHg7CiAgICAgIH0KCiAgICAgIC5tb2RhbC53aWR0aC1mdWxsc2NyZWVuIHsKICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpOwogICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDQwcHgpOwogICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm1vZGFsIHsKICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gNDBweCkgIWltcG9ydGFudDsKICAgICAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBBbGxvdyBmdWxsIGhlaWdodCBvbiBtb2JpbGUgd2hlbiBjb250ZW50IG5lZWRzIGl0ICovCiAgICAgICAgLm1vZGFsQ29udGFpbmVyIHsKICAgICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tb2RhbCB7CiAgICAgICAgICBtYXJnaW46IDEwcHg7CiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjBweCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEZ1bGwgc2NyZWVuIG1vZGUgb24gbW9iaWxlICovCiAgICAgICAgLm1vZGFsLm1vYmlsZS1mdWxsc2NyZWVuIHsKICAgICAgICAgIHdpZHRoOiAxMDB2dyAhaW1wb3J0YW50OwogICAgICAgICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OwogICAgICAgICAgbWF4LWhlaWdodDogMTAwdmggIWltcG9ydGFudDsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgfQogICAgICB9CgogICAgICAubW9kYWwuc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgLm1vZGFsLnNob3cucHJlZGVzdHJveSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyB7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubW9kYWwgLmhlYWRpbmcgLmhlYWRlci1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICB9CgogICAgICAubW9kYWwgLmhlYWRpbmcgLmhlYWRlci1idXR0b24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAubW9kYWwgLmhlYWRpbmcgLmhlYWRlci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubW9kYWwgLmhlYWRpbmcgLmhlYWRlci1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkaW5nLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OwogICAgICAgIHBhZGRpbmc6IDAgNDBweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubW9kYWwgLmNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiI2QxZDVkYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICB9CgogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMyNTYzZWIiLCIjMjU2M2ViIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiMyNTYzZWIiLCIjMjU2M2ViIil9OwogICAgICB9CiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzFkNGVkOCIsIiMxZDRlZDgiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzFkNGVkOCIsIiMxZDRlZDgiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBYPXR5cGVvZiB0aGlzLndpZHRoPT0ic3RyaW5nIj9gd2lkdGgtJHt0aGlzLndpZHRofWA6IiIsST10eXBlb2YgdGhpcy53aWR0aD09Im51bWJlciI/YCR7dGhpcy53aWR0aH1weGA6IiIsTz10aGlzLm1heFdpZHRoP2Ake3RoaXMubWF4V2lkdGh9cHhgOiIiLEc9dGhpcy5taW5XaWR0aD9gJHt0aGlzLm1pbldpZHRofXB4YDoiIixqPXRoaXMubW9iaWxlRnVsbHNjcmVlbj8ibW9iaWxlLWZ1bGxzY3JlZW4iOiIiO3JldHVybiBNYAogICAgICA8c3R5bGU+CiAgICAgICAgJHtJP2AubW9kYWwgeyB3aWR0aDogJHtJfTsgfWA6IiJ9CiAgICAgICAgJHtPP2AubW9kYWwgeyBtYXgtd2lkdGg6ICR7T307IH1gOiIifQogICAgICAgICR7Rz9gLm1vZGFsIHsgbWluLXdpZHRoOiAke0d9OyB9YDoiIn0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibW9kYWxDb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlT3V0c2lkZUNsaWNrfSBzdHlsZT0iei1pbmRleDogJHt0aGlzLm1vZGFsWkluZGV4fSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwgJHtYfSAke2p9Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nLXRleHQiPiR7dGhpcy5oZWFkaW5nfTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYnV0dG9ucyI+CiAgICAgICAgICAgICAgJHt0aGlzLnNob3dIZWxwQnV0dG9uP01gCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUhlbHB9IHRpdGxlPSJIZWxwIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6aGVscENpcmNsZSJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAke3RoaXMuc2hvd0Nsb3NlQnV0dG9uP01gCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5kZXN0cm95KCl9IHRpdGxlPSJDbG9zZSI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50IiBzdHlsZT0icGFkZGluZzogJHt0aGlzLmNvbnRlbnRQYWRkaW5nfXB4OyI+JHt0aGlzLmNvbnRlbnR9PC9kaXY+CiAgICAgICAgICAke3RoaXMubWVudU9wdGlvbnMubGVuZ3RoPjA/TWAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm90dG9tQnV0dG9ucyI+CiAgICAgICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLm1hcCgoc2Usa2UpPT5NYAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b21CdXR0b24gJHtrZT09PXRoaXMubWVudU9wdGlvbnMubGVuZ3RoLTE/InByaW1hcnkiOiIifSAke3NlLm5hbWU9PT0iT0siPyJvayI6IiJ9IiBAY2xpY2s9JHsoKT0+e3NlLmFjdGlvbih0aGlzKX19PiR7c2UubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH13aW5kb3dMYXllcj1mMSh0aGlzLE5lKTthc3luYyBmaXJzdFVwZGF0ZWQoWCl7c3VwZXIuZmlyc3RVcGRhdGVkKFgpLGF3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1vZGFsIikuY2xhc3NMaXN0LmFkZCgic2hvdyIpfWFzeW5jIGhhbmRsZU91dHNpZGVDbGljayhYKXtYLnN0b3BQcm9wYWdhdGlvbigpO2xldCBJPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubW9kYWxDb250YWluZXIiKTtYLnRhcmdldD09PUkmJmF3YWl0IHRoaXMuZGVzdHJveSgpfWFzeW5jIGRlc3Ryb3koKXtsZXQgWD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1vZGFsIikuY2xhc3NMaXN0LmFkZCgicHJlZGVzdHJveSIpLGF3YWl0IFguY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyMDApLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcyksYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksczEudW5yZWdpc3Rlcih0aGlzKX1hc3luYyBoYW5kbGVIZWxwKCl7dGhpcy5vbkhlbHAmJmF3YWl0IHRoaXMub25IZWxwKCl9c3RhdGlje2YxKHIsYSl9fTtyZXR1cm4gUmU9cn0pKCk7ZmUoKTt2YXIgSEl0PSgpPT5NYAogICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7ImEgbGFiZWwifT48L2RlZXMtbGFiZWw+CiAgYDtmZSgpO0JlKCk7dmFyIFpVPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sWWw9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LFJvMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtbGFiZWwiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXTt2YXIgYj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxmPVtEKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGQ9W0Qoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFpVKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJsYWJlbCJpbiBtLGdldDptPT5tLmxhYmVsLHNldDoobSx2KT0+e20ubGFiZWw9dn19LG1ldGFkYXRhOnh9LHMsbCksWlUodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkZXNjcmlwdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImRlc2NyaXB0aW9uImluIG0sZ2V0Om09Pm0uZGVzY3JpcHRpb24sc2V0OihtLHYpPT57bS5kZXNjcmlwdGlvbj12fX0sbWV0YWRhdGE6eH0sYyx1KSxaVSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlcXVpcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4icmVxdWlyZWQiaW4gbSxnZXQ6bT0+bS5yZXF1aXJlZCxzZXQ6KG0sdik9PnttLnJlcXVpcmVkPXZ9fSxtZXRhZGF0YTp4fSxoLGcpLFpVKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOnh9LG51bGwsYSksYj1yPWUudmFsdWUseCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp4fSl9c3RhdGljIGRlbW89SEl0OyNlPVlsKHRoaXMscywiIik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKHgpe3RoaXMuI2U9eH0jdD0oWWwodGhpcyxsKSxZbCh0aGlzLGMsdm9pZCAwKSk7Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRlc2NyaXB0aW9uKHgpe3RoaXMuI3Q9eH0jYT0oWWwodGhpcyx1KSxZbCh0aGlzLGgsITEpKTtnZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcmVxdWlyZWQoeCl7dGhpcy4jYT14fXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubGFiZWwgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnJlcXVpcmVkIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICB9CgogICAgICBkZWVzLWljb24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBjdXJzb3I6IGhlbHA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICAke3RoaXMubGFiZWw/TWAKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwiPgogICAgICAgICAgICAgICR7dGhpcy5sYWJlbH0KICAgICAgICAgICAgICAke3RoaXMucmVxdWlyZWQ/TWA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/TWAKICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTppbmZvIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtc3BlZWNoYnViYmxlIC50ZXh0PSR7dGhpcy5kZXNjcmlwdGlvbn0+PC9kZWVzLXNwZWVjaGJ1YmJsZT4KICAgICAgICAgICAgICAgICAgYDpNYGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDpNYGB9CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxZbCh0aGlzLGcpfXN0YXRpY3tZbChyLGEpfX07cmV0dXJuIGI9cn0pKCk7dmFyIFhVPSIwLjU1LjEiO2ZlKCk7U3QoKTtCZSgpO3ZhciBjNT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LHNyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxIbzE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXSx2LHk9W10sdz1bXTt2YXIgRT1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpTdHJpbmd9KV0sZj1bRCh7dHlwZTpTdHJpbmd9KV0sZD1bRCh7dHlwZTpTdHJpbmd9KV0sYj1bRCh7dHlwZTpPYmplY3R9KV0sdj1bRCh7dHlwZTpCb29sZWFufSldLGM1KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImNvbnRlbnQiaW4geixnZXQ6ej0+ei5jb250ZW50LHNldDooeixQKT0+e3ouY29udGVudD1QfX0sbWV0YWRhdGE6Q30scyxsKSxjNSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ibGFuZ3VhZ2UiaW4geixnZXQ6ej0+ei5sYW5ndWFnZSxzZXQ6KHosUCk9Pnt6Lmxhbmd1YWdlPVB9fSxtZXRhZGF0YTpDfSxjLHUpLGM1KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJmaWxlUGF0aCJpbiB6LGdldDp6PT56LmZpbGVQYXRoLHNldDooeixQKT0+e3ouZmlsZVBhdGg9UH19LG1ldGFkYXRhOkN9LGgsZyksYzUodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50U3ViamVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImNvbnRlbnRTdWJqZWN0ImluIHosZ2V0Ono9PnouY29udGVudFN1YmplY3Qsc2V0Oih6LFApPT57ei5jb250ZW50U3ViamVjdD1QfX0sbWV0YWRhdGE6Q30seCxtKSxjNSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4id29yZFdyYXAiaW4geixnZXQ6ej0+ei53b3JkV3JhcCxzZXQ6KHosUCk9Pnt6LndvcmRXcmFwPVB9fSxtZXRhZGF0YTpDfSx5LHcpLGM1KG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkN9LG51bGwsYSksRT1yPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89KCk9Pk1gPGRlZXMtd29ya3NwYWNlLW1vbmFjbz48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz5gO3N0YXRpYyBkZW1vR3JvdXA9IldvcmtzcGFjZSI7c3RhdGljIG1vbmFjb0RlZmVycmVkO2VkaXRvckRlZmVycmVkPUF0LnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPXNyKHRoaXMscyxgZnVuY3Rpb24gaGVsbG8oKSB7CglhbGVydCgnSGVsbG8gd29ybGQhJyk7Cn1gKTtnZXQgY29udGVudCgpe3JldHVybiB0aGlzLiNlfXNldCBjb250ZW50KEMpe3RoaXMuI2U9Q30jdD0oc3IodGhpcyxsKSxzcih0aGlzLGMsInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhbmd1YWdlKEMpe3RoaXMuI3Q9Q30jYT0oc3IodGhpcyx1KSxzcih0aGlzLGgsIiIpKTtnZXQgZmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsZVBhdGgoQyl7dGhpcy4jYT1DfSNyPShzcih0aGlzLGcpLHNyKHRoaXMseCxuZXcgQXQuc21hcnRyeC5yeGpzLlN1YmplY3QpKTtnZXQgY29udGVudFN1YmplY3QoKXtyZXR1cm4gdGhpcy4jcn1zZXQgY29udGVudFN1YmplY3QoQyl7dGhpcy4jcj1DfSNpPShzcih0aGlzLG0pLHNyKHRoaXMseSwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNpfXNldCB3b3JkV3JhcChDKXt0aGlzLiNpPUN9bW9uYWNvVGhlbWVTdWJzY3JpcHRpb249KHNyKHRoaXMsdyksbnVsbCk7aXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksQzIuc2V0dXBEb21Ub29scygpfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAjY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChDKXtzdXBlci5maXJzdFVwZGF0ZWQoQyk7bGV0IHo9dGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKSxQPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21vbmFjby1lZGl0b3JAJHtYVX1gO2lmKCFFLm1vbmFjb0RlZmVycmVkKXtFLm1vbmFjb0RlZmVycmVkPUF0LnNtYXJ0cHJvbWlzZS5kZWZlcigpO2xldCBMPWAke1B9L21pbi92cy9sb2FkZXIuanNgLGs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ay5zcmM9TCxrLm9ubG9hZD0oKT0+e0UubW9uYWNvRGVmZXJyZWQucmVzb2x2ZSgpfSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGspfWF3YWl0IEUubW9uYWNvRGVmZXJyZWQucHJvbWlzZSx3aW5kb3cucmVxdWlyZS5jb25maWcoe3BhdGhzOnt2czpgJHtQfS9taW4vdnNgfX0pLHdpbmRvdy5yZXF1aXJlKFsidnMvZWRpdG9yL2VkaXRvci5tYWluIl0sYXN5bmMoKT0+e2xldCBMPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLE49TC50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuPyJ2cyI6InZzLWRhcmsiLFM9d2luZG93Lm1vbmFjbyxUPW51bGw7aWYodGhpcy5maWxlUGF0aCl7bGV0IEE9Uy5VcmkucGFyc2UoYGZpbGU6Ly8ke3RoaXMuZmlsZVBhdGh9YCk7VD1TLmVkaXRvci5nZXRNb2RlbChBKSxUP1Quc2V0VmFsdWUodGhpcy5jb250ZW50KTpUPVMuZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMuY29udGVudCx0aGlzLmxhbmd1YWdlLEEpfWxldCBSPVMuZWRpdG9yLmNyZWF0ZSh6LHttb2RlbDpUfHx2b2lkIDAsdmFsdWU6VD92b2lkIDA6dGhpcy5jb250ZW50LGxhbmd1YWdlOlQ/dm9pZCAwOnRoaXMubGFuZ3VhZ2UsdGhlbWU6Tix1c2VTaGFkb3dET006ITAsZm9udFNpemU6MTYsYXV0b21hdGljTGF5b3V0OiEwLHdvcmRXcmFwOnRoaXMud29yZFdyYXAsaG92ZXI6e2VuYWJsZWQ6ITAsZGVsYXk6MzAwLHN0aWNreTohMCxhYm92ZTohMX19KTt0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPUwudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoQT0+e2xldCBGPUE/InZzIjoidnMtZGFyayI7Ui51cGRhdGVPcHRpb25zKHt0aGVtZTpGfSl9KSx0aGlzLmVkaXRvckRlZmVycmVkLnJlc29sdmUoUil9KTtsZXQgXz1hd2FpdChhd2FpdCBmZXRjaChgJHtQfS9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzc2ApKS50ZXh0KCksJD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOyQudGV4dENvbnRlbnQ9Xyx0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kKCQpO2xldCBIPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtILm9uRGlkQ2hhbmdlTW9kZWxDb250ZW50KGFzeW5jIEw9PntpZih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWwpcmV0dXJuO2xldCBrPUguZ2V0VmFsdWUoKTt0aGlzLmNvbnRlbnRTdWJqZWN0Lm5leHQoayksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC1jaGFuZ2UiLHtkZXRhaWw6ayxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSksdGhpcy5jb250ZW50U3ViamVjdC5uZXh0KEguZ2V0VmFsdWUoKSl9YXN5bmMgdXBkYXRlZChDKXtzdXBlci51cGRhdGVkKEMpO2xldCB6PXdpbmRvdy5tb25hY287aWYoeil7aWYoQy5oYXMoImZpbGVQYXRoIikmJnRoaXMuZmlsZVBhdGgpe2xldCBQPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSxfPXouVXJpLnBhcnNlKGBmaWxlOi8vJHt0aGlzLmZpbGVQYXRofWApLCQ9ei5lZGl0b3IuZ2V0TW9kZWwoXyk7JD8kLmdldFZhbHVlKCkhPT10aGlzLmNvbnRlbnQmJih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsJC5zZXRWYWx1ZSh0aGlzLmNvbnRlbnQpLHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMSk6JD16LmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLmNvbnRlbnQsdGhpcy5sYW5ndWFnZSxfKSxQLmdldE1vZGVsKCk/LnVyaS50b1N0cmluZygpIT09Xy50b1N0cmluZygpJiZQLnNldE1vZGVsKCQpO3JldHVybn1pZihDLmhhcygiY29udGVudCIpKXtsZXQgUD1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7UC5nZXRWYWx1ZSgpIT09dGhpcy5jb250ZW50JiYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLFAuc2V0VmFsdWUodGhpcy5jb250ZW50KSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEpfWlmKEMuaGFzKCJsYW5ndWFnZSIpKXtsZXQgXz0oYXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRNb2RlbCgpO18mJnouZWRpdG9yLnNldE1vZGVsTGFuZ3VhZ2UoXyx0aGlzLmxhbmd1YWdlKX19fWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbCl9YXN5bmMgc2V0Q29udGVudEV4dGVybmFsKEMsej0hMCl7bGV0IFA9YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO2lmKFAuZ2V0VmFsdWUoKT09PUMpcmV0dXJuO2xldCAkPXo/UC5nZXRQb3NpdGlvbigpOm51bGwsSD16P1AuZ2V0U2VsZWN0aW9ucygpOm51bGwsTD16P1AuZ2V0U2Nyb2xsVG9wKCk6MCxrPXo/UC5nZXRTY3JvbGxMZWZ0KCk6MDtpZih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsUC5zZXRWYWx1ZShDKSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEseil7aWYoJCl7bGV0IE49UC5nZXRNb2RlbCgpLFM9Tj8uZ2V0TGluZUNvdW50KCl8fDEsVD1NYXRoLm1pbigkLmxpbmVOdW1iZXIsUyksUj1OPy5nZXRMaW5lTWF4Q29sdW1uKFQpfHwxLEE9TWF0aC5taW4oJC5jb2x1bW4sUik7UC5zZXRQb3NpdGlvbih7bGluZU51bWJlcjpULGNvbHVtbjpBfSl9aWYoSCYmSC5sZW5ndGg+MCl0cnl7UC5zZXRTZWxlY3Rpb25zKEgpfWNhdGNoe31QLnNldFNjcm9sbFBvc2l0aW9uKHtzY3JvbGxUb3A6TCxzY3JvbGxMZWZ0Omt9KX19c3RhdGlje3NyKHIsYSl9fTtyZXR1cm4gRT1yfSkoKTtmZSgpO0JlKCk7RnQoKTt2YXIgbnM9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxSMj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sbUk9W3trZXk6InR5cGVzY3JpcHQiLGxhYmVsOiJUeXBlU2NyaXB0In0se2tleToiamF2YXNjcmlwdCIsbGFiZWw6IkphdmFTY3JpcHQifSx7a2V5OiJqc29uIixsYWJlbDoiSlNPTiJ9LHtrZXk6Imh0bWwiLGxhYmVsOiJIVE1MIn0se2tleToiY3NzIixsYWJlbDoiQ1NTIn0se2tleToic2NzcyIsbGFiZWw6IlNDU1MifSx7a2V5OiJtYXJrZG93biIsbGFiZWw6Ik1hcmtkb3duIn0se2tleToieWFtbCIsbGFiZWw6IllBTUwifSx7a2V5OiJ4bWwiLGxhYmVsOiJYTUwifSx7a2V5OiJzcWwiLGxhYmVsOiJTUUwifSx7a2V5OiJweXRob24iLGxhYmVsOiJQeXRob24ifSx7a2V5OiJqYXZhIixsYWJlbDoiSmF2YSJ9LHtrZXk6ImNzaGFycCIsbGFiZWw6IkMjIn0se2tleToiY3BwIixsYWJlbDoiQysrIn0se2tleToiZ28iLGxhYmVsOiJHbyJ9LHtrZXk6InJ1c3QiLGxhYmVsOiJSdXN0In0se2tleToic2hlbGwiLGxhYmVsOiJTaGVsbCJ9LHtrZXk6InBsYWludGV4dCIsbGFiZWw6IlBsYWluIFRleHQifV0sWURlPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1pbnB1dC1jb2RlIildLGUsYT1bXSxyLGk9WGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBMPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6U3RyaW5nfSldLGY9W0Qoe3R5cGU6U3RyaW5nfSldLGQ9W0Qoe3R5cGU6U3RyaW5nfSldLGI9W0Qoe3R5cGU6U3RyaW5nfSldLHY9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxFPVtsZSgpXSxQPVtsZSgpXSxucyh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idmFsdWUiaW4gayxnZXQ6az0+ay52YWx1ZSxzZXQ6KGssTik9PntrLnZhbHVlPU59fSxtZXRhZGF0YTpMfSxzLGwpLG5zKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJsYW5ndWFnZSJpbiBrLGdldDprPT5rLmxhbmd1YWdlLHNldDooayxOKT0+e2subGFuZ3VhZ2U9Tn19LG1ldGFkYXRhOkx9LGMsdSksbnModGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJoZWlnaHQiaW4gayxnZXQ6az0+ay5oZWlnaHQsc2V0OihrLE4pPT57ay5oZWlnaHQ9Tn19LG1ldGFkYXRhOkx9LGgsZyksbnModGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkV3JhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+IndvcmRXcmFwImluIGssZ2V0Oms9Pmsud29yZFdyYXAsc2V0OihrLE4pPT57ay53b3JkV3JhcD1OfX0sbWV0YWRhdGE6TH0seCxtKSxucyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5lTnVtYmVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNob3dMaW5lTnVtYmVycyJpbiBrLGdldDprPT5rLnNob3dMaW5lTnVtYmVycyxzZXQ6KGssTik9PntrLnNob3dMaW5lTnVtYmVycz1OfX0sbWV0YWRhdGE6TH0seSx3KSxucyh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJpc0xhbmd1YWdlRHJvcGRvd25PcGVuImluIGssZ2V0Oms9PmsuaXNMYW5ndWFnZURyb3Bkb3duT3BlbixzZXQ6KGssTik9PntrLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49Tn19LG1ldGFkYXRhOkx9LEMseiksbnModGhpcyxudWxsLFAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb3B5U3VjY2VzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImNvcHlTdWNjZXNzImluIGssZ2V0Oms9PmsuY29weVN1Y2Nlc3Msc2V0OihrLE4pPT57ay5jb3B5U3VjY2Vzcz1OfX0sbWV0YWRhdGE6TH0sXywkKSxucyhudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpMfSxudWxsLGEpLEg9cj1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPSgpPT5NYAogICAgPGRlZXMtaW5wdXQtY29kZQogICAgICBsYWJlbD0iVHlwZVNjcmlwdCBDb2RlIgogICAgICBrZXk9ImNvZGUiCiAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICBoZWlnaHQ9IjMwMHB4IgogICAgICAudmFsdWU9JHtgY29uc3QgZ3JlZXRpbmc6IHN0cmluZyA9ICJIZWxsbyBXb3JsZCI7CmNvbnNvbGUubG9nKGdyZWV0aW5nKTtgfQogICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogIGA7c3RhdGljIGRlbW9Hcm91cD0iSW5wdXQiOyNlPVIyKHRoaXMscywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEwpe3RoaXMuI2U9TH0jdD0oUjIodGhpcyxsKSxSMih0aGlzLGMsInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhbmd1YWdlKEwpe3RoaXMuI3Q9TH0jYT0oUjIodGhpcyx1KSxSMih0aGlzLGgsIjIwMHB4IikpO2dldCBoZWlnaHQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaGVpZ2h0KEwpe3RoaXMuI2E9TH0jcj0oUjIodGhpcyxnKSxSMih0aGlzLHgsIm9mZiIpKTtnZXQgd29yZFdyYXAoKXtyZXR1cm4gdGhpcy4jcn1zZXQgd29yZFdyYXAoTCl7dGhpcy4jcj1MfSNpPShSMih0aGlzLG0pLFIyKHRoaXMseSwhMCkpO2dldCBzaG93TGluZU51bWJlcnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd0xpbmVOdW1iZXJzKEwpe3RoaXMuI2k9TH0jbz0oUjIodGhpcyx3KSxSMih0aGlzLEMsITEpKTtnZXQgaXNMYW5ndWFnZURyb3Bkb3duT3Blbigpe3JldHVybiB0aGlzLiNvfXNldCBpc0xhbmd1YWdlRHJvcGRvd25PcGVuKEwpe3RoaXMuI289TH0jcz0oUjIodGhpcyx6KSxSMih0aGlzLF8sITEpKTtnZXQgY29weVN1Y2Nlc3MoKXtyZXR1cm4gdGhpcy4jc31zZXQgY29weVN1Y2Nlc3MoTCl7dGhpcy4jcz1MfWVkaXRvckVsZW1lbnQ9KFIyKHRoaXMsJCksbnVsbCk7c3RhdGljIHN0eWxlcz1beGUsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmNvZGUtY29udGFpbmVyIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWxlZnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItcmlnaHQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgei1pbmRleDogMTAwOwogICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWluLXdpZHRoOiAxNDBweDsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLW9wdGlvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgIGNvbG9yOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICB9CgogICAgICAuZWRpdG9yLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnRvb2xiYXItZGl2aWRlciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5jb2RlLWNvbnRhaW5lciB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgTD1tSS5maW5kKGs9Pmsua2V5PT09dGhpcy5sYW5ndWFnZSl8fG1JWzBdO3JldHVybiBNYAogICAgICA8c3R5bGU+CiAgICAgICAgLmVkaXRvci13cmFwcGVyIHsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLmhlaWdodH07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxhbmd1YWdlRHJvcGRvd259CiAgICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVMYW5ndWFnZUJsdXJ9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7TC5sYWJlbH0KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAke3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj9NYAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgJHttSS5tYXAoaz0+TWAKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke2sua2V5PT09dGhpcy5sYW5ndWFnZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke049PnRoaXMuc2VsZWN0TGFuZ3VhZ2UoTixrLmtleSl9CiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7ay5sYWJlbH0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXJpZ2h0Ij4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLndvcmRXcmFwPT09Im9uIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iV29yZCBXcmFwIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVXb3JkV3JhcH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5zaG93TGluZU51bWJlcnM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IkxpbmUgTnVtYmVycyIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTGluZU51bWJlcnN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmNvcHlTdWNjZXNzPyJzdWNjZXNzIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iQ29weSBDb2RlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jb3B5Q29kZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5jb3B5U3VjY2Vzcz8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIHRpdGxlPSJFeHBhbmQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm9wZW5GdWxsc2NyZWVufQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOk1heGltaXplMiJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3Itd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5sYW5ndWFnZX0KICAgICAgICAgICAgICAud29yZFdyYXA9JHt0aGlzLndvcmRXcmFwfQogICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RoaXMuaGFuZGxlQ29udGVudENoYW5nZX0KICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSx0aGlzLmVkaXRvckVsZW1lbnQmJnRoaXMuZWRpdG9yRWxlbWVudC5jb250ZW50U3ViamVjdC5zdWJzY3JpYmUoTD0+e3RoaXMudmFsdWUhPT1MJiYodGhpcy52YWx1ZT1MLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX0pfXRvZ2dsZUxhbmd1YWdlRHJvcGRvd24oKXt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49IXRoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbn1oYW5kbGVMYW5ndWFnZUJsdXIoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSExfSwxNTApfWFzeW5jIHNlbGVjdExhbmd1YWdlKEwsayl7aWYoTC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubGFuZ3VhZ2U9ayx0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49ITEsdGhpcy5lZGl0b3JFbGVtZW50KXt0aGlzLmVkaXRvckVsZW1lbnQubGFuZ3VhZ2U9aztsZXQgUz0oYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldE1vZGVsKCk7UyYmd2luZG93Lm1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShTLGspfX10b2dnbGVXb3JkV3JhcCgpe3RoaXMud29yZFdyYXA9dGhpcy53b3JkV3JhcD09PSJvbiI/Im9mZiI6Im9uIix0aGlzLnVwZGF0ZUVkaXRvck9wdGlvbigid29yZFdyYXAiLHRoaXMud29yZFdyYXApfXRvZ2dsZUxpbmVOdW1iZXJzKCl7dGhpcy5zaG93TGluZU51bWJlcnM9IXRoaXMuc2hvd0xpbmVOdW1iZXJzLHRoaXMudXBkYXRlRWRpdG9yT3B0aW9uKCJsaW5lTnVtYmVycyIsdGhpcy5zaG93TGluZU51bWJlcnM/Im9uIjoib2ZmIil9YXN5bmMgdXBkYXRlRWRpdG9yT3B0aW9uKEwsayl7dGhpcy5lZGl0b3JFbGVtZW50JiYoYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe1tMXTprfSl9YXN5bmMgY29weUNvZGUoKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy52YWx1ZSksdGhpcy5jb3B5U3VjY2Vzcz0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5jb3B5U3VjY2Vzcz0hMX0sMmUzKX1jYXRjaChMKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weSBjb2RlOiIsTCl9fWhhbmRsZUNvbnRlbnRDaGFuZ2UoTCl7bGV0IGs9TC5kZXRhaWw7dGhpcy52YWx1ZSE9PWsmJih0aGlzLnZhbHVlPWssdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWFzeW5jIG9wZW5GdWxsc2NyZWVuKCl7bGV0IEw9dGhpcy52YWx1ZSxrPW51bGwsTj10aGlzLmxhbmd1YWdlLFM9dGhpcy53b3JkV3JhcCxUPXRoaXMuc2hvd0xpbmVOdW1iZXJzLFI9ITEsQT0hMSxGPSgpPT57bGV0IHplPW1JLmZpbmQoVz0+Vy5rZXk9PT1OKTtyZXR1cm4gemU/emUubGFiZWw6IlR5cGVTY3JpcHQifSxhZT16ZT0+e2xldCBXPXplLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoIVcpcmV0dXJuO2xldCBOZT1XLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24gc3BhbiIpO05lJiYoTmUudGV4dENvbnRlbnQ9RigpKTtsZXQgUmU9Vy5xdWVyeVNlbGVjdG9yKCIud3JhcC1idG4iKTtSZSYmUmUuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixTPT09Im9uIik7bGV0IFg9Vy5xdWVyeVNlbGVjdG9yKCIubGluZXMtYnRuIik7WCYmWC5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLFQpO2xldCBJPVcucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIiksTz1JPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKTtJJiZPJiYoSS5jbGFzc0xpc3QudG9nZ2xlKCJzdWNjZXNzIixBKSxPLmljb249QT8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkiKTtsZXQgRz1XLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1kcm9wZG93biIpO0cmJihHLnN0eWxlLmRpc3BsYXk9Uj8iYmxvY2siOiJub25lIil9LFY9YXdhaXQgZTEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzp0aGlzLmxhYmVsfHwiQ29kZSBFZGl0b3IiLHdpZHRoOiJmdWxsc2NyZWVuIixjb250ZW50UGFkZGluZzowLGNvbnRlbnQ6TWAKICAgICAgICA8c3R5bGU+CiAgICAgICAgICAubW9kYWwtdG9vbGJhciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1sZWZ0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1yaWdodCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAxMDAlOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZWRpdG9yLXdyYXBwZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDE3NXB4KTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC10b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYW5ndWFnZS1idXR0b24iPgogICAgICAgICAgICAgICAgPHNwYW4+JHtGKCl9PC9zcGFuPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICR7bUkubWFwKHplPT5NYAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke3plLmtleT09PU4/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke3plLmtleX0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAke3plLmxhYmVsfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1yaWdodCI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIHdyYXAtYnRuICR7Uz09PSJvbiI/ImFjdGl2ZSI6IiJ9IiB0aXRsZT0iV29yZCBXcmFwIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBsaW5lcy1idG4gJHtUPyJhY3RpdmUiOiIifSIgdGl0bGU9IkxpbmUgTnVtYmVycyI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWRpdmlkZXIiPjwvZGl2PgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBjb3B5LWJ0biIgdGl0bGU9IkNvcHkgQ29kZSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q29weSJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZWRpdG9yLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAuY29udGVudD0ke0x9CiAgICAgICAgICAgIC5sYW5ndWFnZT0ke059CiAgICAgICAgICAgIC53b3JkV3JhcD0ke1N9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgPC9kaXY+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyB6ZT0+e2F3YWl0IHplLmRlc3Ryb3koKX19LHtuYW1lOiJTYXZlICYgQ2xvc2UiLGFjdGlvbjphc3luYyB6ZT0+e2lmKGs9emUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIiksayl7bGV0IE5lPShhd2FpdCBrLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dGhpcy5zZXRWYWx1ZShOZSl9YXdhaXQgemUuZGVzdHJveSgpfX1dfSk7YXdhaXQgbmV3IFByb21pc2UoemU9PnNldFRpbWVvdXQoemUsMTAwKSksaz1WLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2xldCBTZT1WLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoU2Upe2xldCB6ZT1TZS5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2UtYnV0dG9uIik7emU/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e1I9IVIsYWUoVil9KTtsZXQgVz1TZS5xdWVyeVNlbGVjdG9yQWxsKCIubGFuZ3VhZ2Utb3B0aW9uIik7Vy5mb3JFYWNoKEk9PntJLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57bGV0IE89SS5kYXRhc2V0Lmxhbmc7aWYoTyYmayl7Tj1PLFI9ITE7bGV0IGo9KGF3YWl0IGsuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTtqJiZ3aW5kb3cubW9uYWNvLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKGosTyksVy5mb3JFYWNoKHNlPT5zZS5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpKSxJLmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIiksYWUoVil9fSl9KSxTZS5xdWVyeVNlbGVjdG9yKCIud3JhcC1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntTPVM9PT0ib24iPyJvZmYiOiJvbiIsayYmKGF3YWl0IGsuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkudXBkYXRlT3B0aW9ucyh7d29yZFdyYXA6U30pLGFlKFYpfSksU2UucXVlcnlTZWxlY3RvcigiLmxpbmVzLWJ0biIpPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e1Q9IVQsayYmKGF3YWl0IGsuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkudXBkYXRlT3B0aW9ucyh7bGluZU51bWJlcnM6VD8ib24iOiJvZmYifSksYWUoVil9KSxTZS5xdWVyeVNlbGVjdG9yKCIuY29weS1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntpZihrKXtsZXQgTz0oYXdhaXQgay5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRWYWx1ZSgpO3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChPKSxBPSEwLGFlKFYpLHNldFRpbWVvdXQoKCk9PntBPSExLGFlKFYpfSwyZTMpfWNhdGNoKEcpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjb3B5IGNvZGU6IixHKX19fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEk9PntSJiYhemU/LmNvbnRhaW5zKEkudGFyZ2V0KSYmKFI9ITEsYWUoVikpfSx7b25jZTohMH0pfX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKEwpe3RoaXMudmFsdWU9TCx0aGlzLmVkaXRvckVsZW1lbnQmJih0aGlzLmVkaXRvckVsZW1lbnQuY29udGVudD1MLHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlLnRoZW4oaz0+e2suZ2V0VmFsdWUoKSE9PUwmJmsuc2V0VmFsdWUoTCl9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9c3RhdGlje1IyKHIsYSl9fTtyZXR1cm4gSD1yfSkoKTtmZSgpO3ZhciBxSXQ9KCk9Pk1gCiAgPHN0eWxlPgogICAgJHt0ZWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tb3V0cHV0IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDUsIDI0MiwgMC4xKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5kYXRlLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYT0+e2NvbnNvbGUubG9nKCJCYXNpYyBkYXRlIHNlbGVjdGVkOiIsYS50YXJnZXQudmFsdWUpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIERhdGUgUGlja2VyIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBkYXRlIHNlbGVjdGlvbiB3aXRob3V0IHRpbWUifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iU2VsZWN0IERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2hvb3NlIGEgZGF0ZSBmcm9tIHRoZSBjYWxlbmRhciIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IkV2ZW50IERhdGUgJiBUaW1lIl0nKSxhPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJBcHBvaW50bWVudCJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHI9PntsZXQgaT1yLnRhcmdldC52YWx1ZTtjb25zb2xlLmxvZygiMjRoIGZvcm1hdCBkYXRldGltZToiLGkpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHI9PntsZXQgaT1yLnRhcmdldC52YWx1ZTtjb25zb2xlLmxvZygiMTJoIGZvcm1hdCBkYXRldGltZToiLGkpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRhdGUgYW5kIFRpbWUgU2VsZWN0aW9uIn0gLnN1YnRpdGxlPSR7IkRhdGUgcGlja2VycyB3aXRoIHRpbWUgc2VsZWN0aW9uIGluIGRpZmZlcmVudCBmb3JtYXRzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkV2ZW50IERhdGUgJiBUaW1lIgogICAgICAgICAgZGVzY3JpcHRpb249IlNlbGVjdCBib3RoIGRhdGUgYW5kIHRpbWUgKDI0LWhvdXIgZm9ybWF0KSIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIyNGgiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJBcHBvaW50bWVudCIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJEYXRlIGFuZCB0aW1lIHdpdGggQU0vUE0gc2VsZWN0b3IgKDE1LW1pbnV0ZSBpbmNyZW1lbnRzKSIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIxMmgiCiAgICAgICAgICAubWludXRlSW5jcmVtZW50PSR7MTV9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIikuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHI9PntsZXQgaT1yLnRhcmdldDtjb25zb2xlLmxvZyhgJHtpLmxhYmVsfSB2YWx1ZTpgLGkudmFsdWUpO2xldCBvPWkuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKTtvJiZjb25zb2xlLmxvZyhgJHtpLmxhYmVsfSBmb3JtYXR0ZWQ6YCxvLnZhbHVlKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlRpbWV6b25lIFN1cHBvcnQifSAuc3VidGl0bGU9JHsiRGF0ZSBhbmQgdGltZSBzZWxlY3Rpb24gd2l0aCB0aW1lem9uZSBhd2FyZW5lc3MifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iTWVldGluZyBUaW1lICh3aXRoIFRpbWV6b25lKSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYSBkYXRlL3RpbWUgYW5kIHRpbWV6b25lIGZvciB0aGUgbWVldGluZyIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICAuZW5hYmxlVGltZXpvbmU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjI0aCIKICAgICAgICAgIHRpbWV6b25lPSJBbWVyaWNhL05ld19Zb3JrIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iR2xvYmFsIEV2ZW50IFNjaGVkdWxlIgogICAgICAgICAgZGVzY3JpcHRpb249IlNjaGVkdWxlIGFuIGV2ZW50IGFjcm9zcyBkaWZmZXJlbnQgdGltZXpvbmVzIgogICAgICAgICAgLmVuYWJsZVRpbWU9JHshMH0KICAgICAgICAgIC5lbmFibGVUaW1lem9uZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMTJoIgogICAgICAgICAgdGltZXpvbmU9IkV1cm9wZS9Mb25kb24iCiAgICAgICAgICAubWludXRlSW5jcmVtZW50PSR7MzB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGE9PntsZXQgcj1hLnRhcmdldC52YWx1ZTtpZihyKXtsZXQgaT1uZXcgRGF0ZShyKSxvPW5ldyBEYXRlLHM9TWF0aC5mbG9vcigoaS5nZXRUaW1lKCktby5nZXRUaW1lKCkpLygxZTMqNjAqNjAqMjQpKTtjb25zb2xlLmxvZyhgU2VsZWN0ZWQgZGF0ZSBpcyAke3N9IGRheXMgZnJvbSB0b2RheWApfX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIFJhbmdlIENvbnN0cmFpbnRzIn0gLnN1YnRpdGxlPSR7IkxpbWl0IHNlbGVjdGFibGUgZGF0ZXMgd2l0aCBtaW4gYW5kIG1heCB2YWx1ZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRnV0dXJlIERhdGUgT25seSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJDYW4gb25seSBzZWxlY3QgZGF0ZXMgZnJvbSB0b2RheSB0byA5MCBkYXlzIGluIHRoZSBmdXR1cmUiCiAgICAgICAgICAubWluRGF0ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgIC5tYXhEYXRlPSR7bmV3IERhdGUoRGF0ZS5ub3coKSsyMTYwKjYwKjYwKjFlMykudG9JU09TdHJpbmcoKX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9eyJERC9NTS9ZWVlZIjoiRXVyb3BlYW4iLCJNTS9ERC9ZWVlZIjoiVVMiLCJZWVlZLU1NLUREIjoiSVNPIn07dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsaT0+e2xldCBvPWkudGFyZ2V0LHM9by5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZGF0ZS1pbnB1dCIpO3MmJmNvbnNvbGUubG9nKGAke28ubGFiZWx9IGZvcm1hdDpgLHMudmFsdWUpfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBGb3JtYXRzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBkYXRlIGRpc3BsYXkgZm9ybWF0cyBmb3IgdmFyaW91cyByZWdpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJFdXJvcGVhbiBGb3JtYXQiCiAgICAgICAgICAgIGRhdGVGb3JtYXQ9IkREL01NL1lZWVkiCiAgICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iVVMgRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJNTS9ERC9ZWVlZIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IklTTyBGb3JtYXQiCiAgICAgICAgICAgIGRhdGVGb3JtYXQ9IllZWVktTU0tREQiCiAgICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlcltyZXF1aXJlZF0iKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57ZS5nZXRWYWx1ZSgpfHxjb25zb2xlLmxvZygiUmVxdWlyZWQgZGF0ZSBmaWVsZCBpcyBlbXB0eSIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmVkIGFuZCBkaXNhYmxlZCBzdGF0ZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQmlydGggRGF0ZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIgogICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VsZWN0IHlvdXIgYmlydGggZGF0ZSIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkRpc2FibGVkIERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBmaWVsZCBjYW5ub3QgYmUgZWRpdGVkIgogICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJVUyBDYWxlbmRhciJdJyksYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iRVUgQ2FsZW5kYXIiXScpO2UmJmNvbnNvbGUubG9nKCJVUyBDYWxlbmRhciBzdGFydHMgb24gU3VuZGF5ICgwKSIpLGEmJmNvbnNvbGUubG9nKCJFVSBDYWxlbmRhciBzdGFydHMgb24gTW9uZGF5ICgxKSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDYWxlbmRhciBDdXN0b21pemF0aW9uIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCB3ZWVrIHN0YXJ0IGRheXMgZm9yIHZhcmlvdXMgcmVnaW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iVVMgQ2FsZW5kYXIiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrIHN0YXJ0cyBvbiBTdW5kYXkiCiAgICAgICAgICAgIC53ZWVrU3RhcnRzT249JHswfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJFVSBDYWxlbmRhciIKICAgICAgICAgICAgZGVzY3JpcHRpb249IldlZWsgc3RhcnRzIG9uIE1vbmRheSIKICAgICAgICAgICAgLndlZWtTdGFydHNPbj0kezF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9KCk9PntsZXQgcj1bXSxpPW5ldyBEYXRlLG89aS5nZXRGdWxsWWVhcigpLHM9aS5nZXRNb250aCgpLGw9bmV3IERhdGUobyxzLDEpO2Zvcig7bC5nZXRNb250aCgpPT09czspKGwuZ2V0RGF5KCk9PT0wfHxsLmdldERheSgpPT09NikmJnIucHVzaChuZXcgRGF0ZShsKS50b0lTT1N0cmluZygpKSxsLnNldERhdGUobC5nZXREYXRlKCkrMSk7cmV0dXJuIHJ9LGE9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKTthJiYoYS5kaXNhYmxlZERhdGVzPWUoKSxjb25zb2xlLmxvZygiRGlzYWJsZWQgd2Vla2VuZCBkYXRlcyBmb3IgY3VycmVudCBtb250aCIpKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGlzYWJsZWQgRGF0ZXMifSAuc3VidGl0bGU9JHsiQ2FsZW5kYXIgd2l0aCBzcGVjaWZpYyBkYXRlcyBkaXNhYmxlZCAod2Vla2VuZHMgaW4gY3VycmVudCBtb250aCkifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQXZhaWxhYmlsaXR5IENhbGVuZGFyIgogICAgICAgICAgZGVzY3JpcHRpb249IldlZWtlbmRzIGFyZSBkaXNhYmxlZCBmb3IgdGhlIGN1cnJlbnQgbW9udGgiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPW5ldyBEYXRlLGE9ZS5nZXRNb250aCgpLHI9ZS5nZXRGdWxsWWVhcigpLGk9W3tkYXRlOmAke3J9LSR7KGErMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiVGVhbSBNZWV0aW5nIix0eXBlOiJpbmZvIixjb3VudDoyfSx7ZGF0ZTpgJHtyfS0keyhhKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJQcm9qZWN0IERlYWRsaW5lIix0eXBlOiJ3YXJuaW5nIn0se2RhdGU6YCR7cn0tJHsoYSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrMikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiUmVsZWFzZSBEYXkiLHR5cGU6InN1Y2Nlc3MifSx7ZGF0ZTpgJHtyfS0keyhhKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSs1KS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJVcmdlbnQgRml4IFJlcXVpcmVkIix0eXBlOiJlcnJvciJ9LHtkYXRlOmAke3J9LSR7KGErMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzcpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6Ik11bHRpcGxlIEV2ZW50cyBUb2RheSIsdHlwZToiaW5mbyIsY291bnQ6NX0se2RhdGU6YCR7cn0tJHsoYSsyKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tMTVgLHRpdGxlOiJGdXR1cmUgUGxhbm5pbmcgU2Vzc2lvbiIsdHlwZToiaW5mbyJ9XSxvPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7byYmKG8uZXZlbnRzPWksY29uc29sZS5sb2coIkNhbGVuZGFyIGV2ZW50cyBsb2FkZWQ6IixpKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkNhbGVuZGFyIHdpdGggRXZlbnRzIn0gLnN1YnRpdGxlPSR7IlZpc3VhbCBmZWVkYmFjayBmb3Igc2NoZWR1bGVkIGV2ZW50cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBDYWxlbmRhciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJEYXlzIHdpdGggY29sb3JlZCBkb3RzIGhhdmUgZXZlbnRzLiBIb3ZlciB0byBzZWUgZGV0YWlscy4iCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPHN0cm9uZz5FdmVudCBMZWdlbmQ6PC9zdHJvbmc+PGJyPgogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjMDk2OWRhOyI+4pePIEluZm88L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICNkMjk5MjI7Ij7il48gV2FybmluZzwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogIzJlYTA0MzsiPuKXjyBTdWNjZXNzPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjY2YyMjJlOyI+4pePIEVycm9yPC9zcGFuPjxicj4KICAgICAgICAgIDxlbT5EYXlzIHdpdGggbW9yZSB0aGFuIDMgZXZlbnRzIHNob3cgYSBjb3VudCBiYWRnZTwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKSxhPXQucXVlcnlTZWxlY3RvcigiI2V2ZW50LW91dHB1dCIpO2UmJmEmJihlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIscj0+e2xldCBpPXIudGFyZ2V0LG89aS52YWx1ZTtpZihvKXtsZXQgcz1uZXcgRGF0ZShvKSxmPWkuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKT8udmFsdWV8fCJOL0EiO2EuaW5uZXJIVE1MPWAKICAgICAgICAgICAgICA8c3Ryb25nPkV2ZW50IHRyaWdnZXJlZCE8L3N0cm9uZz48YnI+CiAgICAgICAgICAgICAgSVNPIFZhbHVlOiAke299PGJyPgogICAgICAgICAgICAgIEZvcm1hdHRlZDogJHtmfTxicj4KICAgICAgICAgICAgICBEYXRlIG9iamVjdDogJHtzLnRvTG9jYWxlU3RyaW5nKCl9CiAgICAgICAgICAgIGB9ZWxzZSBhLmlubmVySFRNTD0iPGVtPkRhdGUgY2xlYXJlZDwvZW0+In0pLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZygiRGF0ZXBpY2tlciBsb3N0IGZvY3VzIil9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkV2ZW50IEhhbmRsaW5nIn0gLnN1YnRpdGxlPSR7IkludGVyYWN0aXZlIGRlbW9uc3RyYXRpb24gb2YgY2hhbmdlIGV2ZW50cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBEZW1vIgogICAgICAgICAgZGVzY3JpcHRpb249IlNlbGVjdCBhIGRhdGUgdG8gc2VlIHRoZSBldmVudCBkZXRhaWxzIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJldmVudC1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICA8ZW0+U2VsZWN0IGEgZGF0ZSB0byBzZWUgZXZlbnQgZGV0YWlscy4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYDtmZSgpO3ZhciBWSXQ9Wy4uLlhlLmJhc2VTdHlsZXMscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaW5wdXQtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpmb2N1cywKICAgICAgLmRhdGUtaW5wdXQub3BlbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX0sCiAgICAgICAgICAgICAgICAgICAgMCAwIDAgNHB4ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUgLyAwLjEpIiwiaHNsKDIxMCAyMCUgOTglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC8qIEljb24gY29udGFpbmVyIHVzaW5nIGZsZXhib3ggZm9yIGJldHRlciBwb3NpdGlvbmluZyAqLwogICAgICAuaWNvbi1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5pY29uLWNvbnRhaW5lciA+ICogewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICB9CgogICAgICAuY2FsZW5kYXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuY2xlYXItYnV0dG9uIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuY2xlYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b246ZGlzYWJsZWQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIENhbGVuZGFyIFBvcHVwIFN0eWxlcyAqLwogICAgICAuY2FsZW5kYXItcG9wdXAgewogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAke3AuYmRUaGVtZSgiMCAxMHB4IDE1cHggLTNweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgNHB4IDZweCAtNHB4IGhzbCgwIDAlIDAlIC8gMC4xKSIsIjAgMTBweCAxNXB4IC0zcHggaHNsKDAgMCUgMCUgLyAwLjIpLCAwIDRweCA2cHggLTRweCBoc2woMCAwJSAwJSAvIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICB6LWluZGV4OiA1MDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1pbi13aWR0aDogMjgwcHg7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cC50b3AgewogICAgICAgIGJvdHRvbTogY2FsYygxMDAlICsgNHB4KTsKICAgICAgICB0b3A6IGF1dG87CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCk7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cC5ib3R0b20gewogICAgICAgIHRvcDogMTAwJTsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLXBvcHVwLnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIENhbGVuZGFyIEhlYWRlciAqLwogICAgICAuY2FsZW5kYXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tb250aC15ZWFyLWRpc3BsYXkgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgZmxleDogMTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAvKiBXZWVrZGF5IGhlYWRlcnMgKi8KICAgICAgLndlZWtkYXlzIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcik7CiAgICAgICAgZ2FwOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQoKICAgICAgLndlZWtkYXkgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBwYWRkaW5nOiAwIDAgOHB4IDA7CiAgICAgIH0KCiAgICAgIC8qIERheXMgZ3JpZCAqLwogICAgICAuZGF5cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcik7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5kYXkgewogICAgICAgIGFzcGVjdC1yYXRpbzogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5kYXk6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXkub3RoZXItbW9udGggewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmRheS50b2RheSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZGF5LnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAuZGF5LmRpc2FibGVkIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQoKICAgICAgLyogRXZlbnQgaW5kaWNhdG9ycyAqLwogICAgICAuZGF5Lmhhcy1ldmVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZXZlbnQtaW5kaWNhdG9yIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiA0cHg7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZXZlbnQtZG90IHsKICAgICAgICB3aWR0aDogNHB4OwogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuZXZlbnQtZG90LmluZm8gewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjExIDcwJSA1MiUpIiwiaHNsKDIxMSA3MCUgNjIlKSIpfTsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdC53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDQ1IDkwJSA0NSUpIiwiaHNsKDQ1IDkwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuZXZlbnQtZG90LnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMTQyIDY5JSA0NSUpIiwiaHNsKDE0MiA2OSUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdC5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDcyJSA1MSUpIiwiaHNsKDAgNzIlIDYxJSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1jb3VudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMnB4OwogICAgICAgIHJpZ2h0OiAycHg7CiAgICAgICAgbWluLXdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIlIDUxJSkiLCJoc2woMCA3MiUgNjElKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgZXZlbnQgZGV0YWlscyAqLwogICAgICAuZXZlbnQtdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogY2FsYygxMDAlICsgOHB4KTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMCUpIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMik7CiAgICAgIH0KCiAgICAgIC5ldmVudC10b29sdGlwOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLmRheS5oYXMtZXZlbnQ6aG92ZXIgLmV2ZW50LXRvb2x0aXAgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIFRpbWUgc2VsZWN0b3IgKi8KICAgICAgLnRpbWUtc2VsZWN0b3IgewogICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtc2VsZWN0b3ItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXRzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0IHsKICAgICAgICB3aWR0aDogNjVweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXQ6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlIC8gMC4xKSIsImhzbCgyMTAgMjAlIDk4JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLXNlcGFyYXRvciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1zZWxlY3RvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICB9CgogICAgICAuYW0tcG0tYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuYW0tcG0tYnV0dG9uOmhvdmVyOm5vdCguc2VsZWN0ZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAvKiBBY3Rpb24gYnV0dG9ucyAqLwogICAgICAuY2FsZW5kYXItYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnRvZGF5LWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLnRvZGF5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRvZGF5LWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSAzMC42JSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjIpIiwiaHNsKDAgNjIuOCUgMzAuNiUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAvKiBUaW1lem9uZSBzZWxlY3RvciAqLwogICAgICAudGltZXpvbmUtc2VsZWN0b3IgewogICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdG9yLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lem9uZS1zZWxlY3QgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAudGltZXpvbmUtc2VsZWN0OmhvdmVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAudGltZXpvbmUtc2VsZWN0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlIC8gMC4xKSIsImhzbCgyMTAgMjAlIDk4JSAvIDAuMSkiKX07CiAgICAgIH0KICAgIGBdO2ZlKCk7dmFyIFVJdD10PT57bGV0IGU9WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLGE9dC53ZWVrU3RhcnRzT249PT0xP1siTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIiwiU3UiXTpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0scj10LmdldERheXNJbk1vbnRoKCksaT10LnNlbGVjdGVkSG91cjwxMixvPXQuZ2V0VGltZXpvbmVzKCk7cmV0dXJuIE1gCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0LmxhYmVsfSAuZGVzY3JpcHRpb249JHt0LmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0LnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1jb250YWluZXIiPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIGNsYXNzPSJkYXRlLWlucHV0ICR7dC5pc09wZW5lZD8ib3BlbiI6IiJ9IgogICAgICAgICAgICAgIC52YWx1ZT0ke3QuZm9ybWF0RGF0ZSh0LnZhbHVlKX0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0LnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgID9kaXNhYmxlZD0ke3QuZGlzYWJsZWR9CiAgICAgICAgICAgICAgQGNsaWNrPSR7dC50b2dnbGVDYWxlbmRhcn0KICAgICAgICAgICAgICBAa2V5ZG93bj0ke3QuaGFuZGxlS2V5ZG93bn0KICAgICAgICAgICAgICBAaW5wdXQ9JHt0LmhhbmRsZU1hbnVhbElucHV0fQogICAgICAgICAgICAgIEBibHVyPSR7dC5oYW5kbGVJbnB1dEJsdXJ9CiAgICAgICAgICAgICAgc3R5bGU9InBhZGRpbmctcmlnaHQ6ICR7dC52YWx1ZT8iNjRweCI6IjQwcHgifSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1jb250YWluZXIiPgogICAgICAgICAgICAgICR7dC52YWx1ZSYmIXQuZGlzYWJsZWQ/TWAKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsZWFyLWJ1dHRvbiIgQGNsaWNrPSR7dC5jbGVhclZhbHVlfSB0aXRsZT0iQ2xlYXIiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYWxlbmRhci1pY29uIiBpY29uPSJsdWNpZGU6Y2FsZW5kYXIiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gQ2FsZW5kYXIgUG9wdXAgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLXBvcHVwICR7dC5pc09wZW5lZD8ic2hvdyI6IiJ9ICR7dC5vcGVuc1RvVG9wPyJ0b3AiOiJib3R0b20ifSI+CiAgICAgICAgICAgICAgPCEtLSBNb250aC9ZZWFyIE5hdmlnYXRpb24gLS0+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FsZW5kYXItaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3QucHJldmlvdXNNb250aH0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25MZWZ0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb250aC15ZWFyLWRpc3BsYXkiPgogICAgICAgICAgICAgICAgICAke2VbdC52aWV3RGF0ZS5nZXRNb250aCgpXX0gJHt0LnZpZXdEYXRlLmdldEZ1bGxZZWFyKCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3QubmV4dE1vbnRofT4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hldnJvblJpZ2h0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDwhLS0gV2Vla2RheSBIZWFkZXJzIC0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndlZWtkYXlzIj4KICAgICAgICAgICAgICAgICR7YS5tYXAocz0+TWA8ZGl2IGNsYXNzPSJ3ZWVrZGF5Ij4ke3N9PC9kaXY+YCl9CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDwhLS0gRGF5cyBHcmlkIC0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRheXMtZ3JpZCI+CiAgICAgICAgICAgICAgICAke3IubWFwKHM9PntsZXQgbD10LmlzVG9kYXkocyksZj10LmlzU2VsZWN0ZWQocyksYz1zLmdldE1vbnRoKCkhPT10LnZpZXdEYXRlLmdldE1vbnRoKCksdT10LmlzRGlzYWJsZWQocyksZD10LmdldEV2ZW50c0ZvckRhdGUocyksaD1kLmxlbmd0aD4wLGc9ZC5yZWR1Y2UoKGIseCk9PmIrKHguY291bnR8fDEpLDApO3JldHVybiBNYAogICAgICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZGF5ICR7Yz8ib3RoZXItbW9udGgiOiIifSAke2w/InRvZGF5IjoiIn0gJHtmPyJzZWxlY3RlZCI6IiJ9ICR7dT8iZGlzYWJsZWQiOiIifSAke2g/Imhhcy1ldmVudCI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiF1JiZ0LnNlbGVjdERhdGUocyl9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtzLmdldERhdGUoKX0KICAgICAgICAgICAgICAgICAgICAgICR7aD9NYAogICAgICAgICAgICAgICAgICAgICAgICAke2c+Mz9NYAogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWNvdW50Ij4ke2d9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIGA6TWAKICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC1pbmRpY2F0b3IiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtkLnNsaWNlKDAsMykubWFwKGI9Pk1gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWRvdCAke2IudHlwZXx8ImluZm8ifSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgICAgICAgJHtkWzBdLnRpdGxlP01gCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtdG9vbHRpcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2RbMF0udGl0bGV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2c+MT9NYCAoKyR7Zy0xfSBtb3JlKWA6IiJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDwhLS0gVGltZSBTZWxlY3RvciAtLT4KICAgICAgICAgICAgICAke3QuZW5hYmxlVGltZT9NYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3ItdGl0bGUiPlRpbWU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1pbnB1dHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Im51bWJlciIgCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGltZS1pbnB1dCIgCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0LnRpbWVGb3JtYXQ9PT0iMTJoIj8odC5zZWxlY3RlZEhvdXI9PT0wPzEyOnQuc2VsZWN0ZWRIb3VyPjEyP3Quc2VsZWN0ZWRIb3VyLTEyOnQuc2VsZWN0ZWRIb3VyKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKTp0LnNlbGVjdGVkSG91ci50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke3M9PnQuaGFuZGxlSG91cklucHV0KHMpfQogICAgICAgICAgICAgICAgICAgICAgbWluPSIke3QudGltZUZvcm1hdD09PSIxMmgiPzE6MH0iCiAgICAgICAgICAgICAgICAgICAgICBtYXg9IiR7dC50aW1lRm9ybWF0PT09IjEyaCI/MTI6MjN9IgogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpbWUtc2VwYXJhdG9yIj46PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Im51bWJlciIgCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGltZS1pbnB1dCIgCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0LnNlbGVjdGVkTWludXRlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfQogICAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7cz0+dC5oYW5kbGVNaW51dGVJbnB1dChzKX0KICAgICAgICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgICAgICAgIG1heD0iNTkiCiAgICAgICAgICAgICAgICAgICAgICBzdGVwPSIke3QubWludXRlSW5jcmVtZW50fHwxfSIKICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICAgICR7dC50aW1lRm9ybWF0PT09IjEyaCI/TWAKICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtLXBtLXNlbGVjdG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYW0tcG0tYnV0dG9uICR7aT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dC5zZXRBTVBNKCJhbSIpfQogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgQU0KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImFtLXBtLWJ1dHRvbiAke2k/IiI6InNlbGVjdGVkIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnQuc2V0QU1QTSgicG0iKX0KICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgIFBNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICA8IS0tIFRpbWV6b25lIFNlbGVjdG9yIC0tPgogICAgICAgICAgICAgICR7dC5lbmFibGVUaW1lem9uZT9NYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZXpvbmUtc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lem9uZS1zZWxlY3Rvci10aXRsZSI+VGltZXpvbmU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPHNlbGVjdCAKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGltZXpvbmUtc2VsZWN0IiAKICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0LnRpbWV6b25lfQogICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHtzPT50LmhhbmRsZVRpbWV6b25lQ2hhbmdlKHMpfQogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHtvLm1hcChzPT5NYAogICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iJHtzLnZhbHVlfSIgP3NlbGVjdGVkPSR7cy52YWx1ZT09PXQudGltZXpvbmV9PgogICAgICAgICAgICAgICAgICAgICAgICAke3MubGFiZWx9CiAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICA8IS0tIEFjdGlvbiBCdXR0b25zIC0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiB0b2RheS1idXR0b24iIEBjbGljaz0ke3Quc2VsZWN0VG9kYXl9PgogICAgICAgICAgICAgICAgICBUb2RheQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNsZWFyLWJ1dHRvbiIgQGNsaWNrPSR7dC5jbGVhcn0+CiAgICAgICAgICAgICAgICAgIENsZWFyCiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH07ZmUoKTtGdCgpO3ZhciBOMT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LGJ0PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxaRGU9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKV0sZSxhPVtdLHIsaT1YZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXSx2LHk9W10sdz1bXSxFLEM9W10sej1bXSxQLF89W10sJD1bXSxILEw9W10saz1bXSxOLFM9W10sVD1bXSxSLEE9W10sRj1bXSxhZSxWPVtdLFNlPVtdLHplLFc9W10sTmU9W10sUmUsWD1bXSxJPVtdLE8sRz1bXSxqPVtdLHNlLGtlPVtdLERlPVtdLE9lLFU9W10sQj1bXSxvZSx2ZT1bXSx5ZT1bXSwkZSxuZT1bXSxyZT1bXSxnZSxFZT1bXSxydD1bXTt2YXIgdWU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBaPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6U3RyaW5nfSldLGY9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxkPVtEKHt0eXBlOlN0cmluZ30pXSxiPVtEKHt0eXBlOk51bWJlcn0pXSx2PVtEKHt0eXBlOlN0cmluZ30pXSxFPVtEKHt0eXBlOlN0cmluZ30pXSxQPVtEKHt0eXBlOlN0cmluZ30pXSxIPVtEKHt0eXBlOkFycmF5fSldLE49W0Qoe3R5cGU6TnVtYmVyfSldLFI9W0Qoe3R5cGU6U3RyaW5nfSldLGFlPVtEKHt0eXBlOkJvb2xlYW59KV0semU9W0Qoe3R5cGU6U3RyaW5nfSldLFJlPVtEKHt0eXBlOkFycmF5fSldLE89W2xlKCldLHNlPVtsZSgpXSxPZT1bbGUoKV0sb2U9W2xlKCldLCRlPVtsZSgpXSxnZT1bbGUoKV0sTjEodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+InZhbHVlImluIEosZ2V0Oko9PkoudmFsdWUsc2V0OihKLGRlKT0+e0oudmFsdWU9ZGV9fSxtZXRhZGF0YTpafSxzLGwpLE4xKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+ImVuYWJsZVRpbWUiaW4gSixnZXQ6Sj0+Si5lbmFibGVUaW1lLHNldDooSixkZSk9PntKLmVuYWJsZVRpbWU9ZGV9fSxtZXRhZGF0YTpafSxjLHUpLE4xKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZUZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+InRpbWVGb3JtYXQiaW4gSixnZXQ6Sj0+Si50aW1lRm9ybWF0LHNldDooSixkZSk9PntKLnRpbWVGb3JtYXQ9ZGV9fSxtZXRhZGF0YTpafSxoLGcpLE4xKHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWludXRlSW5jcmVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4ibWludXRlSW5jcmVtZW50ImluIEosZ2V0Oko9PkoubWludXRlSW5jcmVtZW50LHNldDooSixkZSk9PntKLm1pbnV0ZUluY3JlbWVudD1kZX19LG1ldGFkYXRhOlp9LHgsbSksTjEodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRlRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4iZGF0ZUZvcm1hdCJpbiBKLGdldDpKPT5KLmRhdGVGb3JtYXQsc2V0OihKLGRlKT0+e0ouZGF0ZUZvcm1hdD1kZX19LG1ldGFkYXRhOlp9LHksdyksTjEodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5EYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4ibWluRGF0ZSJpbiBKLGdldDpKPT5KLm1pbkRhdGUsc2V0OihKLGRlKT0+e0oubWluRGF0ZT1kZX19LG1ldGFkYXRhOlp9LEMseiksTjEodGhpcyxudWxsLFAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhEYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4ibWF4RGF0ZSJpbiBKLGdldDpKPT5KLm1heERhdGUsc2V0OihKLGRlKT0+e0oubWF4RGF0ZT1kZX19LG1ldGFkYXRhOlp9LF8sJCksTjEodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZERhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4iZGlzYWJsZWREYXRlcyJpbiBKLGdldDpKPT5KLmRpc2FibGVkRGF0ZXMsc2V0OihKLGRlKT0+e0ouZGlzYWJsZWREYXRlcz1kZX19LG1ldGFkYXRhOlp9LEwsayksTjEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3ZWVrU3RhcnRzT24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJ3ZWVrU3RhcnRzT24iaW4gSixnZXQ6Sj0+Si53ZWVrU3RhcnRzT24sc2V0OihKLGRlKT0+e0oud2Vla1N0YXJ0c09uPWRlfX0sbWV0YWRhdGE6Wn0sUyxUKSxOMSh0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4icGxhY2Vob2xkZXIiaW4gSixnZXQ6Sj0+Si5wbGFjZWhvbGRlcixzZXQ6KEosZGUpPT57Si5wbGFjZWhvbGRlcj1kZX19LG1ldGFkYXRhOlp9LEEsRiksTjEodGhpcyxudWxsLGFlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJlbmFibGVUaW1lem9uZSJpbiBKLGdldDpKPT5KLmVuYWJsZVRpbWV6b25lLHNldDooSixkZSk9PntKLmVuYWJsZVRpbWV6b25lPWRlfX0sbWV0YWRhdGE6Wn0sVixTZSksTjEodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJ0aW1lem9uZSJpbiBKLGdldDpKPT5KLnRpbWV6b25lLHNldDooSixkZSk9PntKLnRpbWV6b25lPWRlfX0sbWV0YWRhdGE6Wn0sVyxOZSksTjEodGhpcyxudWxsLFJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXZlbnRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4iZXZlbnRzImluIEosZ2V0Oko9PkouZXZlbnRzLHNldDooSixkZSk9PntKLmV2ZW50cz1kZX19LG1ldGFkYXRhOlp9LFgsSSksTjEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW5lZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+ImlzT3BlbmVkImluIEosZ2V0Oko9PkouaXNPcGVuZWQsc2V0OihKLGRlKT0+e0ouaXNPcGVuZWQ9ZGV9fSxtZXRhZGF0YTpafSxHLGopLE4xKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wZW5zVG9Ub3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJvcGVuc1RvVG9wImluIEosZ2V0Oko9Pkoub3BlbnNUb1RvcCxzZXQ6KEosZGUpPT57Si5vcGVuc1RvVG9wPWRlfX0sbWV0YWRhdGE6Wn0sa2UsRGUpLE4xKHRoaXMsbnVsbCxPZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+InNlbGVjdGVkRGF0ZSJpbiBKLGdldDpKPT5KLnNlbGVjdGVkRGF0ZSxzZXQ6KEosZGUpPT57Si5zZWxlY3RlZERhdGU9ZGV9fSxtZXRhZGF0YTpafSxVLEIpLE4xKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdEYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4idmlld0RhdGUiaW4gSixnZXQ6Sj0+Si52aWV3RGF0ZSxzZXQ6KEosZGUpPT57Si52aWV3RGF0ZT1kZX19LG1ldGFkYXRhOlp9LHZlLHllKSxOMSh0aGlzLG51bGwsJGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEhvdXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJzZWxlY3RlZEhvdXIiaW4gSixnZXQ6Sj0+Si5zZWxlY3RlZEhvdXIsc2V0OihKLGRlKT0+e0ouc2VsZWN0ZWRIb3VyPWRlfX0sbWV0YWRhdGE6Wn0sbmUscmUpLE4xKHRoaXMsbnVsbCxnZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkTWludXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4ic2VsZWN0ZWRNaW51dGUiaW4gSixnZXQ6Sj0+Si5zZWxlY3RlZE1pbnV0ZSxzZXQ6KEosZGUpPT57Si5zZWxlY3RlZE1pbnV0ZT1kZX19LG1ldGFkYXRhOlp9LEVlLHJ0KSxOMShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpafSxudWxsLGEpLHVlPXI9ZS52YWx1ZSxaJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlp9KX1zdGF0aWMgZGVtbz1xSXQ7c3RhdGljIGRlbW9Hcm91cD0iSW5wdXQiOyNlPWJ0KHRoaXMscywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFope3RoaXMuI2U9Wn0jdD0oYnQodGhpcyxsKSxidCh0aGlzLGMsITEpKTtnZXQgZW5hYmxlVGltZSgpe3JldHVybiB0aGlzLiN0fXNldCBlbmFibGVUaW1lKFope3RoaXMuI3Q9Wn0jYT0oYnQodGhpcyx1KSxidCh0aGlzLGgsIjI0aCIpKTtnZXQgdGltZUZvcm1hdCgpe3JldHVybiB0aGlzLiNhfXNldCB0aW1lRm9ybWF0KFope3RoaXMuI2E9Wn0jcj0oYnQodGhpcyxnKSxidCh0aGlzLHgsMSkpO2dldCBtaW51dGVJbmNyZW1lbnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWludXRlSW5jcmVtZW50KFope3RoaXMuI3I9Wn0jaT0oYnQodGhpcyxtKSxidCh0aGlzLHksIllZWVktTU0tREQiKSk7Z2V0IGRhdGVGb3JtYXQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZGF0ZUZvcm1hdChaKXt0aGlzLiNpPVp9I289KGJ0KHRoaXMsdyksYnQodGhpcyxDLCIiKSk7Z2V0IG1pbkRhdGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWluRGF0ZShaKXt0aGlzLiNvPVp9I3M9KGJ0KHRoaXMseiksYnQodGhpcyxfLCIiKSk7Z2V0IG1heERhdGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWF4RGF0ZShaKXt0aGlzLiNzPVp9I249KGJ0KHRoaXMsJCksYnQodGhpcyxMLFtdKSk7Z2V0IGRpc2FibGVkRGF0ZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZGlzYWJsZWREYXRlcyhaKXt0aGlzLiNuPVp9I2w9KGJ0KHRoaXMsayksYnQodGhpcyxTLDEpKTtnZXQgd2Vla1N0YXJ0c09uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHdlZWtTdGFydHNPbihaKXt0aGlzLiNsPVp9I2M9KGJ0KHRoaXMsVCksYnQodGhpcyxBLCJZWVlZLU1NLUREIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNjfXNldCBwbGFjZWhvbGRlcihaKXt0aGlzLiNjPVp9I2Q9KGJ0KHRoaXMsRiksYnQodGhpcyxWLCExKSk7Z2V0IGVuYWJsZVRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGVuYWJsZVRpbWV6b25lKFope3RoaXMuI2Q9Wn0jZj0oYnQodGhpcyxTZSksYnQodGhpcyxXLEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSkpO2dldCB0aW1lem9uZSgpe3JldHVybiB0aGlzLiNmfXNldCB0aW1lem9uZShaKXt0aGlzLiNmPVp9I3U9KGJ0KHRoaXMsTmUpLGJ0KHRoaXMsWCxbXSkpO2dldCBldmVudHMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZXZlbnRzKFope3RoaXMuI3U9Wn0jcD0oYnQodGhpcyxJKSxidCh0aGlzLEcsITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jcH1zZXQgaXNPcGVuZWQoWil7dGhpcy4jcD1afSNoPShidCh0aGlzLGopLGJ0KHRoaXMsa2UsITEpKTtnZXQgb3BlbnNUb1RvcCgpe3JldHVybiB0aGlzLiNofXNldCBvcGVuc1RvVG9wKFope3RoaXMuI2g9Wn0jbT0oYnQodGhpcyxEZSksYnQodGhpcyxVLG51bGwpKTtnZXQgc2VsZWN0ZWREYXRlKCl7cmV0dXJuIHRoaXMuI219c2V0IHNlbGVjdGVkRGF0ZShaKXt0aGlzLiNtPVp9I2c9KGJ0KHRoaXMsQiksYnQodGhpcyx2ZSxuZXcgRGF0ZSkpO2dldCB2aWV3RGF0ZSgpe3JldHVybiB0aGlzLiNnfXNldCB2aWV3RGF0ZShaKXt0aGlzLiNnPVp9I3g9KGJ0KHRoaXMseWUpLGJ0KHRoaXMsbmUsMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jeH1zZXQgc2VsZWN0ZWRIb3VyKFope3RoaXMuI3g9Wn0jYj0oYnQodGhpcyxyZSksYnQodGhpcyxFZSwwKSk7Z2V0IHNlbGVjdGVkTWludXRlKCl7cmV0dXJuIHRoaXMuI2J9c2V0IHNlbGVjdGVkTWludXRlKFope3RoaXMuI2I9Wn1zdGF0aWMgc3R5bGVzPVZJdDtnZXRUaW1lem9uZXMoKXtyZXR1cm5be3ZhbHVlOiJVVEMiLGxhYmVsOiJVVEMgKENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lKSJ9LHt2YWx1ZToiQW1lcmljYS9OZXdfWW9yayIsbGFiZWw6IkVhc3Rlcm4gVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0NoaWNhZ28iLGxhYmVsOiJDZW50cmFsIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9EZW52ZXIiLGxhYmVsOiJNb3VudGFpbiBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvTG9zX0FuZ2VsZXMiLGxhYmVsOiJQYWNpZmljIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9QaG9lbml4IixsYWJlbDoiQXJpem9uYSJ9LHt2YWx1ZToiQW1lcmljYS9BbmNob3JhZ2UiLGxhYmVsOiJBbGFza2EifSx7dmFsdWU6IlBhY2lmaWMvSG9ub2x1bHUiLGxhYmVsOiJIYXdhaWkifSx7dmFsdWU6IkV1cm9wZS9Mb25kb24iLGxhYmVsOiJMb25kb24ifSx7dmFsdWU6IkV1cm9wZS9QYXJpcyIsbGFiZWw6IlBhcmlzIn0se3ZhbHVlOiJFdXJvcGUvQmVybGluIixsYWJlbDoiQmVybGluIn0se3ZhbHVlOiJFdXJvcGUvTW9zY293IixsYWJlbDoiTW9zY293In0se3ZhbHVlOiJBc2lhL0R1YmFpIixsYWJlbDoiRHViYWkifSx7dmFsdWU6IkFzaWEvS29sa2F0YSIsbGFiZWw6IkluZGlhIFN0YW5kYXJkIFRpbWUifSx7dmFsdWU6IkFzaWEvU2hhbmdoYWkiLGxhYmVsOiJDaGluYSBTdGFuZGFyZCBUaW1lIn0se3ZhbHVlOiJBc2lhL1Rva3lvIixsYWJlbDoiVG9reW8ifSx7dmFsdWU6IkF1c3RyYWxpYS9TeWRuZXkiLGxhYmVsOiJTeWRuZXkifSx7dmFsdWU6IlBhY2lmaWMvQXVja2xhbmQiLGxhYmVsOiJBdWNrbGFuZCJ9XX1yZW5kZXIoKXtyZXR1cm4gVUl0KHRoaXMpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZT10aGlzLmhhbmRsZUNsaWNrT3V0c2lkZS5iaW5kKHRoaXMpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsdWV8fCh0aGlzLnZhbHVlPSIiKSx0aGlzLnZhbHVlKXRyeXtsZXQgWj1uZXcgRGF0ZSh0aGlzLnZhbHVlKTtpc05hTihaLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1aLHRoaXMudmlld0RhdGU9bmV3IERhdGUoWiksdGhpcy5zZWxlY3RlZEhvdXI9Wi5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9Wi5nZXRNaW51dGVzKCkpfWNhdGNoe31lbHNle2xldCBaPW5ldyBEYXRlO3RoaXMudmlld0RhdGU9bmV3IERhdGUoWiksdGhpcy5zZWxlY3RlZEhvdXI9Wi5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9MH19Zm9ybWF0RGF0ZShaKXtpZighWilyZXR1cm4iIjt0cnl7bGV0IEo9bmV3IERhdGUoWik7aWYoaXNOYU4oSi5nZXRUaW1lKCkpKXJldHVybiIiO2xldCBkZT10aGlzLmRhdGVGb3JtYXQsQWU9Si5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksSGU9KEouZ2V0TW9udGgoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxNdD1KLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtpZihkZT1kZS5yZXBsYWNlKCJZWVlZIixNdCksZGU9ZGUucmVwbGFjZSgiWVkiLE10LnNsaWNlKC0yKSksZGU9ZGUucmVwbGFjZSgiTU0iLEhlKSxkZT1kZS5yZXBsYWNlKCJERCIsQWUpLHRoaXMuZW5hYmxlVGltZSl7bGV0IGl0PUouZ2V0SG91cnMoKSx6dD1pdD09PTA/MTI6aXQ+MTI/aXQtMTI6aXQscXQ9Si5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksUT1pdD49MTI/IlBNIjoiQU0iO3RoaXMudGltZUZvcm1hdD09PSIxMmgiP2RlKz1gICR7enR9OiR7cXR9ICR7UX1gOmRlKz1gICR7aXQudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7cXR9YH1pZih0aGlzLmVuYWJsZVRpbWV6b25lKXtsZXQgcXQ9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmVOYW1lOiJzaG9ydCIsdGltZVpvbmU6dGhpcy50aW1lem9uZX0pLmZvcm1hdFRvUGFydHMoSikuZmluZChRPT5RLnR5cGU9PT0idGltZVpvbmVOYW1lIik7cXQmJihkZSs9YCAke3F0LnZhbHVlfWApfXJldHVybiBkZX1jYXRjaHtyZXR1cm4iIn19aGFuZGxlQ2xpY2tPdXRzaWRlPShidCh0aGlzLHJ0KSxaPT57Wi5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyh0aGlzKXx8KHRoaXMuaXNPcGVuZWQ9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKSl9KTthc3luYyB0b2dnbGVDYWxlbmRhcigpe2lmKCF0aGlzLmRpc2FibGVkKWlmKHRoaXMuaXNPcGVuZWQ9IXRoaXMuaXNPcGVuZWQsdGhpcy5pc09wZW5lZCl7bGV0IEo9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb250YWluZXIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkZT13aW5kb3cuaW5uZXJIZWlnaHQtSi5ib3R0b20sQWU9Si50b3A7dGhpcy5vcGVuc1RvVG9wPWRlPDQwMCYmQWU+ZGUsc2V0VGltZW91dCgoKT0+e2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSl9LDApfWVsc2UgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKX1nZXREYXlzSW5Nb250aCgpe2xldCBaPXRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSxKPXRoaXMudmlld0RhdGUuZ2V0TW9udGgoKSxkZT1uZXcgRGF0ZShaLEosMSksQWU9bmV3IERhdGUoWixKKzEsMCksSGU9W10sTXQ9dGhpcy53ZWVrU3RhcnRzT249PT0xP2RlLmdldERheSgpPT09MD82OmRlLmdldERheSgpLTE6ZGUuZ2V0RGF5KCk7Zm9yKGxldCB6dD1NdDt6dD4wO3p0LS0pSGUucHVzaChuZXcgRGF0ZShaLEosMS16dCkpO2ZvcihsZXQgenQ9MTt6dDw9QWUuZ2V0RGF0ZSgpO3p0KyspSGUucHVzaChuZXcgRGF0ZShaLEosenQpKTtsZXQgaXQ9NDItSGUubGVuZ3RoO2ZvcihsZXQgenQ9MTt6dDw9aXQ7enQrKylIZS5wdXNoKG5ldyBEYXRlKFosSisxLHp0KSk7cmV0dXJuIEhlfWlzVG9kYXkoWil7bGV0IEo9bmV3IERhdGU7cmV0dXJuIFouZ2V0RGF0ZSgpPT09Si5nZXREYXRlKCkmJlouZ2V0TW9udGgoKT09PUouZ2V0TW9udGgoKSYmWi5nZXRGdWxsWWVhcigpPT09Si5nZXRGdWxsWWVhcigpfWlzU2VsZWN0ZWQoWil7cmV0dXJuIHRoaXMuc2VsZWN0ZWREYXRlP1ouZ2V0RGF0ZSgpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpJiZaLmdldE1vbnRoKCk9PT10aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpJiZaLmdldEZ1bGxZZWFyKCk9PT10aGlzLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpOiExfWlzRGlzYWJsZWQoWil7aWYodGhpcy5taW5EYXRlKXtsZXQgSj1uZXcgRGF0ZSh0aGlzLm1pbkRhdGUpO2lmKFo8SilyZXR1cm4hMH1pZih0aGlzLm1heERhdGUpe2xldCBKPW5ldyBEYXRlKHRoaXMubWF4RGF0ZSk7aWYoWj5KKXJldHVybiEwfXJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMmJnRoaXMuZGlzYWJsZWREYXRlcy5sZW5ndGg+MD90aGlzLmRpc2FibGVkRGF0ZXMuc29tZShKPT57dHJ5e2xldCBkZT1uZXcgRGF0ZShKKTtyZXR1cm4gWi5nZXREYXRlKCk9PT1kZS5nZXREYXRlKCkmJlouZ2V0TW9udGgoKT09PWRlLmdldE1vbnRoKCkmJlouZ2V0RnVsbFllYXIoKT09PWRlLmdldEZ1bGxZZWFyKCl9Y2F0Y2h7cmV0dXJuITF9fSk6ITF9Z2V0RXZlbnRzRm9yRGF0ZShaKXtpZighdGhpcy5ldmVudHN8fHRoaXMuZXZlbnRzLmxlbmd0aD09PTApcmV0dXJuW107bGV0IEo9YCR7Wi5nZXRGdWxsWWVhcigpfS0keyhaLmdldE1vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7Wi5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YDtyZXR1cm4gdGhpcy5ldmVudHMuZmlsdGVyKGRlPT5kZS5kYXRlPT09Sil9c2VsZWN0RGF0ZShaKXt0aGlzLnNlbGVjdGVkRGF0ZT1uZXcgRGF0ZShaLmdldEZ1bGxZZWFyKCksWi5nZXRNb250aCgpLFouZ2V0RGF0ZSgpLHRoaXMuc2VsZWN0ZWRIb3VyLHRoaXMuc2VsZWN0ZWRNaW51dGUpLHRoaXMudmFsdWU9dGhpcy5mb3JtYXRWYWx1ZVdpdGhUaW1lem9uZSh0aGlzLnNlbGVjdGVkRGF0ZSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdGhpcy5lbmFibGVUaW1lfHwodGhpcy5pc09wZW5lZD0hMSl9c2VsZWN0VG9kYXkoKXtsZXQgWj1uZXcgRGF0ZTt0aGlzLnNlbGVjdGVkRGF0ZT1aLHRoaXMudmlld0RhdGU9bmV3IERhdGUoWiksdGhpcy5zZWxlY3RlZEhvdXI9Wi5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9Wi5nZXRNaW51dGVzKCksdGhpcy52YWx1ZT10aGlzLmZvcm1hdFZhbHVlV2l0aFRpbWV6b25lKHRoaXMuc2VsZWN0ZWREYXRlKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmVuYWJsZVRpbWV8fCh0aGlzLmlzT3BlbmVkPSExKX1jbGVhcigpe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmlzT3BlbmVkPSExfXByZXZpb3VzTW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCktMSwxKX1uZXh0TW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCkrMSwxKX1oYW5kbGVIb3VySW5wdXQoWil7bGV0IEo9Wi50YXJnZXQsZGU9cGFyc2VJbnQoSi52YWx1ZSl8fDA7dGhpcy50aW1lRm9ybWF0PT09IjEyaCI/KGRlPU1hdGgubWF4KDEsTWF0aC5taW4oMTIsZGUpKSx0aGlzLnNlbGVjdGVkSG91cj49MTImJmRlIT09MTI/dGhpcy5zZWxlY3RlZEhvdXI9ZGUrMTI6dGhpcy5zZWxlY3RlZEhvdXI8MTImJmRlPT09MTI/dGhpcy5zZWxlY3RlZEhvdXI9MDp0aGlzLnNlbGVjdGVkSG91cj1kZSk6dGhpcy5zZWxlY3RlZEhvdXI9TWF0aC5tYXgoMCxNYXRoLm1pbigyMyxkZSkpLHRoaXMudXBkYXRlU2VsZWN0ZWREYXRlVGltZSgpfWhhbmRsZU1pbnV0ZUlucHV0KFope2xldCBKPVoudGFyZ2V0LGRlPXBhcnNlSW50KEoudmFsdWUpfHwwO2RlPU1hdGgubWF4KDAsTWF0aC5taW4oNTksZGUpKSx0aGlzLm1pbnV0ZUluY3JlbWVudCYmdGhpcy5taW51dGVJbmNyZW1lbnQ+MSYmKGRlPU1hdGgucm91bmQoZGUvdGhpcy5taW51dGVJbmNyZW1lbnQpKnRoaXMubWludXRlSW5jcmVtZW50KSx0aGlzLnNlbGVjdGVkTWludXRlPWRlLHRoaXMudXBkYXRlU2VsZWN0ZWREYXRlVGltZSgpfXNldEFNUE0oWil7Wj09PSJhbSImJnRoaXMuc2VsZWN0ZWRIb3VyPj0xMj90aGlzLnNlbGVjdGVkSG91ci09MTI6Wj09PSJwbSImJnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiYodGhpcy5zZWxlY3RlZEhvdXIrPTEyKSx0aGlzLnVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKX11cGRhdGVTZWxlY3RlZERhdGVUaW1lKCl7dGhpcy5zZWxlY3RlZERhdGUmJih0aGlzLnNlbGVjdGVkRGF0ZT1uZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLHRoaXMuc2VsZWN0ZWREYXRlLmdldE1vbnRoKCksdGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpLHRoaXMuc2VsZWN0ZWRIb3VyLHRoaXMuc2VsZWN0ZWRNaW51dGUpLHRoaXMudmFsdWU9dGhpcy5mb3JtYXRWYWx1ZVdpdGhUaW1lem9uZSh0aGlzLnNlbGVjdGVkRGF0ZSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWhhbmRsZVRpbWV6b25lQ2hhbmdlKFope2xldCBKPVoudGFyZ2V0O3RoaXMudGltZXpvbmU9Si52YWx1ZSx0aGlzLnVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKX1mb3JtYXRWYWx1ZVdpdGhUaW1lem9uZShaKXtpZighdGhpcy5lbmFibGVUaW1lem9uZSlyZXR1cm4gWi50b0lTT1N0cmluZygpO2xldCBkZT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tVVMiLHt5ZWFyOiJudW1lcmljIixtb250aDoiMi1kaWdpdCIsZGF5OiIyLWRpZ2l0Iixob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsaG91cjEyOiExLHRpbWVab25lOnRoaXMudGltZXpvbmUsdGltZVpvbmVOYW1lOiJzaG9ydCJ9KS5mb3JtYXRUb1BhcnRzKFopLEFlPXt9O2RlLmZvckVhY2goaXQ9PntBZVtpdC50eXBlXT1pdC52YWx1ZX0pO2xldCBIZT1gJHtBZS55ZWFyfS0ke0FlLm1vbnRofS0ke0FlLmRheX1UJHtBZS5ob3VyfToke0FlLm1pbnV0ZX06JHtBZS5zZWNvbmR9YCxNdD10aGlzLmdldFRpbWV6b25lT2Zmc2V0KFosdGhpcy50aW1lem9uZSk7cmV0dXJuYCR7SGV9JHtNdH1gfWdldFRpbWV6b25lT2Zmc2V0KFosSil7bGV0IGRlPW5ldyBEYXRlKFoudG9Mb2NhbGVTdHJpbmcoImVuLVVTIix7dGltZVpvbmU6Sn0pKSxBZT1uZXcgRGF0ZShaLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse3RpbWVab25lOiJVVEMifSkpLEhlPShkZS5nZXRUaW1lKCktQWUuZ2V0VGltZSgpKS8oMWUzKjYwKSxNdD1NYXRoLmZsb29yKE1hdGguYWJzKEhlKS82MCksaXQ9TWF0aC5hYnMoSGUpJTYwO3JldHVybmAke0hlPj0wPyIrIjoiLSJ9JHtNdC50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHtpdC50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfWhhbmRsZUtleWRvd24oWil7Wi5rZXk9PT0iRW50ZXIifHxaLmtleT09PSIgIj8oWi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlQ2FsZW5kYXIoKSk6Wi5rZXk9PT0iRXNjYXBlIiYmdGhpcy5pc09wZW5lZCYmKFoucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkPSExKX1jbGVhclZhbHVlKFope1ouc3RvcFByb3BhZ2F0aW9uKCksdGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWhhbmRsZU1hbnVhbElucHV0KFope2xldCBkZT1aLnRhcmdldC52YWx1ZS50cmltKCk7aWYoIWRlKXt0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGw7cmV0dXJufWxldCBBZT10aGlzLnBhcnNlTWFudWFsRGF0ZShkZSk7QWUmJiFpc05hTihBZS5nZXRUaW1lKCkpJiYodGhpcy52YWx1ZT1BZS50b0lTT1N0cmluZygpLHRoaXMuc2VsZWN0ZWREYXRlPUFlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoQWUpLHRoaXMuc2VsZWN0ZWRIb3VyPUFlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1BZS5nZXRNaW51dGVzKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWhhbmRsZUlucHV0Qmx1cihaKXtsZXQgSj1aLnRhcmdldCxkZT1KLnZhbHVlLnRyaW0oKTtpZighZGUpe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtyZXR1cm59bGV0IEFlPXRoaXMucGFyc2VNYW51YWxEYXRlKGRlKTtBZSYmIWlzTmFOKEFlLmdldFRpbWUoKSk/KHRoaXMudmFsdWU9QWUudG9JU09TdHJpbmcoKSx0aGlzLnNlbGVjdGVkRGF0ZT1BZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKEFlKSx0aGlzLnNlbGVjdGVkSG91cj1BZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9QWUuZ2V0TWludXRlcygpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLEoudmFsdWU9dGhpcy5mb3JtYXREYXRlKHRoaXMudmFsdWUpKTpKLnZhbHVlPXRoaXMuZm9ybWF0RGF0ZSh0aGlzLnZhbHVlKX1wYXJzZU1hbnVhbERhdGUoWil7aWYoIVopcmV0dXJuIG51bGw7bGV0IEo9Wi5zcGxpdCgiICIpLGRlPUpbMF0sQWU9SlsxXXx8IiIsSGU9bnVsbCxNdD1kZS5tYXRjaCgvXihcZHs0fSktKFxkezEsMn0pLShcZHsxLDJ9KSQvKTtpZihNdCl7bGV0W2l0LHp0LHF0LFFdPU10O0hlPW5ldyBEYXRlKHBhcnNlSW50KHp0KSxwYXJzZUludChxdCktMSxwYXJzZUludChRKSl9aWYoIUhlKXtsZXQgaXQ9ZGUubWF0Y2goL14oXGR7MSwyfSlcLihcZHsxLDJ9KVwuKFxkezR9KSQvKTtpZihpdCl7bGV0W3p0LHF0LFEsS109aXQ7SGU9bmV3IERhdGUocGFyc2VJbnQoSykscGFyc2VJbnQoUSktMSxwYXJzZUludChxdCkpfX1pZighSGUpe2xldCBpdD1kZS5tYXRjaCgvXihcZHsxLDJ9KVwvKFxkezEsMn0pXC8oXGR7NH0pJC8pO2lmKGl0KXtsZXRbenQscXQsUSxLXT1pdDtIZT1uZXcgRGF0ZShwYXJzZUludChLKSxwYXJzZUludChxdCktMSxwYXJzZUludChRKSl9fWlmKCFIZXx8aXNOYU4oSGUuZ2V0VGltZSgpKSlyZXR1cm4gbnVsbDtpZihBZSl7bGV0IGl0PUFlLm1hdGNoKC9eKFxkezEsMn0pOihcZHsyfSkkLyk7aWYoaXQpe2xldFt6dCxxdCxRXT1pdDtIZS5zZXRIb3VycyhwYXJzZUludChxdCkpLEhlLnNldE1pbnV0ZXMocGFyc2VJbnQoUSkpfX1lbHNlIGlmKCF0aGlzLmVuYWJsZVRpbWUpe2xldCBpdD1uZXcgRGF0ZTtIZS5zZXRIb3VycyhpdC5nZXRIb3VycygpKSxIZS5zZXRNaW51dGVzKGl0LmdldE1pbnV0ZXMoKSksSGUuc2V0U2Vjb25kcygwKSxIZS5zZXRNaWxsaXNlY29uZHMoMCl9cmV0dXJuIEhlfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoWil7aWYodGhpcy52YWx1ZT1aLFopdHJ5e2xldCBKPW5ldyBEYXRlKFopO2lzTmFOKEouZ2V0VGltZSgpKXx8KHRoaXMuc2VsZWN0ZWREYXRlPUosdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShKKSx0aGlzLnNlbGVjdGVkSG91cj1KLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1KLmdldE1pbnV0ZXMoKSl9Y2F0Y2h7fX1zdGF0aWN7YnQocixhKX19O3JldHVybiB1ZT1yfSkoKTtmZSgpO3ZhciBqSXQ9KCk9Pk1gCiAgPHN0eWxlPgogICAgJHt0ZWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLmludGVyYWN0aXZlLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAub3V0cHV0LXRleHQgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0IikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IixpPT57Y29uc29sZS5sb2coYElucHV0ICIke3IubGFiZWx9IiBjaGFuZ2VkIHRvOmAsci5nZXRWYWx1ZSgpKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZyhgSW5wdXQgIiR7ci5sYWJlbH0iIGxvc3QgZm9jdXNgKX0pfSksdC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PSJwYXNzd29yZCJdJykmJmNvbnNvbGUubG9nKCJQYXNzd29yZCBpbnB1dCBpbmNsdWRlcyB2aXNpYmlsaXR5IHRvZ2dsZSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUZXh0IElucHV0cyJ9IC5zdWJ0aXRsZT0keyJTdGFuZGFyZCB0ZXh0IGlucHV0cyB3aXRoIGxhYmVscyBhbmQgZGVzY3JpcHRpb25zIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJVc2VybmFtZSJ9IAogICAgICAgICAgLnZhbHVlPSR7ImpvaG5kb2UifQogICAgICAgICAgLmtleT0keyJ1c2VybmFtZSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAubGFiZWw9JHsiRW1haWwgQWRkcmVzcyJ9IAogICAgICAgICAgLnZhbHVlPSR7ImpvaG5AZXhhbXBsZS5jb20ifSAKICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJXZSB3aWxsIG5ldmVyIHNoYXJlIHlvdXIgZW1haWwgd2l0aCBhbnlvbmUifQogICAgICAgICAgLmtleT0keyJlbWFpbCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAubGFiZWw9JHsiUGFzc3dvcmQifSAKICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0keyEwfSAKICAgICAgICAgIC52YWx1ZT0keyJzZWNyZXQxMjMifQogICAgICAgICAgLmtleT0keyJwYXNzd29yZCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goaT0+e2xldCBvPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGkpO2NvbnNvbGUubG9nKGBIb3Jpem9udGFsIGlucHV0ICIke2kubGFiZWx9IiBkaXNwbGF5OmAsby5kaXNwbGF5KX0pO2xldCBhPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0iZmlyc3ROYW1lIl0nKSxyPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0ibGFzdE5hbWUiXScpO2lmKGEmJnIpe2xldCBpPSgpPT57bGV0IG89YS5nZXRWYWx1ZSgpLHM9ci5nZXRWYWx1ZSgpO2NvbnNvbGUubG9nKGBGdWxsIG5hbWU6ICR7b30gJHtzfWApfTthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLGkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsaSl9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBpbnB1dHMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiRmlyc3QgTmFtZSJ9IAogICAgICAgICAgICAudmFsdWU9JHsiSm9obiJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJmaXJzdE5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiTGFzdCBOYW1lIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyJEb2UifSAKICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5rZXk9JHsibGFzdE5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiQWdlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyIyOCJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJhZ2UifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2gocj0+e2xldCBpPXIubGFiZWxQb3NpdGlvbjtjb25zb2xlLmxvZyhgSW5wdXQgIiR7ci5sYWJlbH0iIGhhcyBsYWJlbCBwb3NpdGlvbjogJHtpfWApfSk7bGV0IGE9dC5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWlucHV0LXRleHRbbGFiZWxQb3NpdGlvbj0ibGVmdCJdJyk7YS5sZW5ndGg+MCYmY29uc29sZS5sb2coYCR7YS5sZW5ndGh9IGlucHV0cyBoYXZlIGxlZnQtYWxpZ25lZCBsYWJlbHMgZm9yIGlubGluZSBsYXlvdXRgKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTGFiZWwgUG9zaXRpb25zIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBsYWJlbCBwb3NpdGlvbmluZyBvcHRpb25zIGZvciB2YXJpb3VzIGxheW91dHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IkxhYmVsIG9uIFRvcCAoRGVmYXVsdCkifSAKICAgICAgICAgIC52YWx1ZT0keyJTdGFuZGFyZCBsYXlvdXQifSAKICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7InRvcCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAubGFiZWw9JHsiTGFiZWwgb24gTGVmdCJ9IAogICAgICAgICAgLnZhbHVlPSR7IklubGluZSBsYWJlbCJ9IAogICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsibGVmdCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJDaXR5In0gCiAgICAgICAgICAgIC52YWx1ZT0keyJOZXcgWW9yayJ9IAogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLmxhYmVsPSR7IlpJUCBDb2RlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyIxMDAwMSJ9IAogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHRbcmVxdWlyZWRdIiksYT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dFtkaXNhYmxlZF0iKSxyPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W3ZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2UuZ2V0VmFsdWUoKXx8Y29uc29sZS5sb2coIlJlcXVpcmVkIGZpZWxkIGlzIGVtcHR5ISIpfSksYSYmY29uc29sZS5sb2coIkRpc2FibGVkIGlucHV0IGNhbm5vdCBiZSBlZGl0ZWQiKSxyJiYoY29uc29sZS5sb2coIkVycm9yIGlucHV0IHNob3dzIHZhbGlkYXRpb24gbWVzc2FnZToiLHIudmFsaWRhdGlvblRleHQpLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsKCk9PntsZXQgaT1yLmdldFZhbHVlKCk7aS5pbmNsdWRlcygiQCIpJiZpLmluY2x1ZGVzKCIuIikmJihyLnZhbGlkYXRpb25TdGF0ZT0idmFsaWQiLHIudmFsaWRhdGlvblRleHQ9IiIsY29uc29sZS5sb2coIkVtYWlsIHZhbGlkYXRpb24gcGFzc2VkISIpKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVmFsaWRhdGlvbiAmIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmFsaWRhdGlvbiBzdGF0ZXMgYW5kIGlucHV0IGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBGaWVsZCJ9IAogICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAua2V5PSR7InJlcXVpcmVkRmllbGQifQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIEZpZWxkIn0gCiAgICAgICAgICAudmFsdWU9JHsiQ2Fubm90IGVkaXQgdGhpcyJ9IAogICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAubGFiZWw9JHsiRmllbGQgd2l0aCBFcnJvciJ9IAogICAgICAgICAgLnZhbHVlPSR7ImludmFsaWRAIn0gCiAgICAgICAgICAudmFsaWRhdGlvblRleHQ9JHsiUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyJ9CiAgICAgICAgICAudmFsaWRhdGlvblN0YXRlPSR7ImludmFsaWQifQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHRbaXNQYXNzd29yZEJvb2xdIikuZm9yRWFjaChhPT57bGV0IHI9KCk9PntsZXQgaT1hLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7aSYmY29uc29sZS5sb2coYFBhc3N3b3JkIGZpZWxkICIke2EubGFiZWx9IiB0eXBlOmAsaS50eXBlKX07aWYoYS5zaGFkb3dSb290KXtsZXQgaT1uZXcgTXV0YXRpb25PYnNlcnZlcihyKSxvPWEuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpO28mJmkub2JzZXJ2ZShvLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInR5cGUiXX0pfX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJBZHZhbmNlZCBGZWF0dXJlcyJ9IC5zdWJ0aXRsZT0keyJQYXNzd29yZCB2aXNpYmlsaXR5IHRvZ2dsZSBhbmQgb3RoZXIgYWR2YW5jZWQgZmVhdHVyZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IlBhc3N3b3JkIHdpdGggVG9nZ2xlIn0gCiAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgIC52YWx1ZT0keyJteVNlY3VyZVBhc3N3b3JkMTIzIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDbGljayB0aGUgZXllIGljb24gdG8gc2hvdy9oaWRlIHBhc3N3b3JkIn0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJBUEkgS2V5In0gCiAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgIC52YWx1ZT0keyJzay0xMjM0NTY3ODkwYWJjZGVmIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJLZWVwIHRoaXMga2V5IHNlY3VyZSBhbmQgbmV2ZXIgc2hhcmUgaXQifQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKSxhPXQucXVlcnlTZWxlY3RvcigiI3RleHQtaW5wdXQtb3V0cHV0Iik7aWYoZSYmYSl7ZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IixpPT57bGV0IG89aS5kZXRhaWwuZ2V0VmFsdWUoKTthLnRleHRDb250ZW50PWBDdXJyZW50IHZhbHVlOiAiJHtvfSJgfSksZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pntjb25zb2xlLmxvZygiSW5wdXQgZm9jdXNlZCIpfSksZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2NvbnNvbGUubG9nKCJJbnB1dCBibHVycmVkIil9KTtsZXQgcj0wO2UuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsKCk9PntyKyssY29uc29sZS5sb2coYEtleXByZXNzIGNvdW50OiAke3J9YCl9KX19fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiVHJ5IHR5cGluZyBpbiB0aGUgaW5wdXRzIHRvIHNlZSByZWFsLXRpbWUgdmFsdWUgY2hhbmdlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAubGFiZWw9JHsiRHluYW1pYyBJbnB1dCJ9IAogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgc29tZXRoaW5nIGhlcmUuLi4ifQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9InRleHQtaW5wdXQtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiPkN1cnJlbnQgdmFsdWU6ICIiPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYDtmZSgpO0JlKCk7dmFyIFpsPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sdWE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LFhEZT0oKCk9PntsZXQgdD1bY2UoImRlZXMtaW5wdXQtdGV4dCIpXSxlLGE9W10scixpPVhlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdLEUsQz1bXSx6PVtdO3ZhciBQPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGY9W0Qoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLGQ9W0Qoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLGI9W0Qoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHY9W0Qoe3JlZmxlY3Q6ITB9KV0sRT1bRCh7fSldLFpsKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJ2YWx1ZSJpbiAkLGdldDokPT4kLnZhbHVlLHNldDooJCxIKT0+eyQudmFsdWU9SH19LG1ldGFkYXRhOl99LHMsbCksWmwodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Bhc3N3b3JkQm9vbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+ImlzUGFzc3dvcmRCb29sImluICQsZ2V0OiQ9PiQuaXNQYXNzd29yZEJvb2wsc2V0OigkLEgpPT57JC5pc1Bhc3N3b3JkQm9vbD1IfX0sbWV0YWRhdGE6X30sYyx1KSxabCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dQYXNzd29yZEJvb2wiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJzaG93UGFzc3dvcmRCb29sImluICQsZ2V0OiQ9PiQuc2hvd1Bhc3N3b3JkQm9vbCxzZXQ6KCQsSCk9PnskLnNob3dQYXNzd29yZEJvb2w9SH19LG1ldGFkYXRhOl99LGgsZyksWmwodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJ2YWxpZGF0aW9uU3RhdGUiaW4gJCxnZXQ6JD0+JC52YWxpZGF0aW9uU3RhdGUsc2V0OigkLEgpPT57JC52YWxpZGF0aW9uU3RhdGU9SH19LG1ldGFkYXRhOl99LHgsbSksWmwodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InZhbGlkYXRpb25UZXh0ImluICQsZ2V0OiQ9PiQudmFsaWRhdGlvblRleHQsc2V0OigkLEgpPT57JC52YWxpZGF0aW9uVGV4dD1IfX0sbWV0YWRhdGE6X30seSx3KSxabCh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25GdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InZhbGlkYXRpb25GdW5jdGlvbiJpbiAkLGdldDokPT4kLnZhbGlkYXRpb25GdW5jdGlvbixzZXQ6KCQsSCk9PnskLnZhbGlkYXRpb25GdW5jdGlvbj1IfX0sbWV0YWRhdGE6X30sQyx6KSxabChudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpffSxudWxsLGEpLFA9cj1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPWpJdDtzdGF0aWMgZGVtb0dyb3VwPSJJbnB1dCI7I2U9dWEodGhpcyxzLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoXyl7dGhpcy4jZT1ffSN0PSh1YSh0aGlzLGwpLHVhKHRoaXMsYywhMSkpO2dldCBpc1Bhc3N3b3JkQm9vbCgpe3JldHVybiB0aGlzLiN0fXNldCBpc1Bhc3N3b3JkQm9vbChfKXt0aGlzLiN0PV99I2E9KHVhKHRoaXMsdSksdWEodGhpcyxoLCExKSk7Z2V0IHNob3dQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1Bhc3N3b3JkQm9vbChfKXt0aGlzLiNhPV99I3I9KHVhKHRoaXMsZyksdWEodGhpcyx4LHZvaWQgMCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdmFsaWRhdGlvblN0YXRlKF8pe3RoaXMuI3I9X30jaT0odWEodGhpcyxtKSx1YSh0aGlzLHksIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmFsaWRhdGlvblRleHQoXyl7dGhpcy4jaT1ffSNvPSh1YSh0aGlzLHcpLHVhKHRoaXMsQyx2b2lkIDApKTtnZXQgdmFsaWRhdGlvbkZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI299c2V0IHZhbGlkYXRpb25GdW5jdGlvbihfKXt0aGlzLiNvPV99c3RhdGljIHN0eWxlcz1beGUsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogYXV0bzsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBjdXJzb3I6IHRleHQ7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdCg6Zm9jdXMpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSAvIDAuMDUpIiwiaHNsKDAgMCUgOTglIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogUGFzc3dvcmQgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuc2hvd1Bhc3N3b3JkIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDFweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAzOHB4OwogICAgICAgIGhlaWdodDogMzhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA1cHggNXB4IDA7CiAgICAgIH0KCiAgICAgIC5zaG93UGFzc3dvcmQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAvKiBWYWxpZGF0aW9uIHN0eWxlcyAqLwogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMSkiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyLndhcm4gewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMSkiLCJoc2woMjUgOTUlIDYzJSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgIH0KCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyLnZhbGlkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLyogRXJyb3Igc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uLXN0YXRlPSJpbnZhbGlkIl0pIGlucHV0IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uLXN0YXRlPSJpbnZhbGlkIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7cC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMDUpIiwiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogV2FybmluZyBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb24tc3RhdGU9Indhcm4iXSkgaW5wdXQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb24tc3RhdGU9Indhcm4iXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlIC8gMC4wNSkiLCJoc2woMjUgOTUlIDYzJSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAvKiBWYWxpZCBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb24tc3RhdGU9InZhbGlkIl0pIGlucHV0IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb24tc3RhdGU9InZhbGlkIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMDUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4wNSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICA8c3R5bGU+CiAgICAgICAgaW5wdXQgewogICAgICAgICAgZm9udC1mYW1pbHk6ICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD9qbDoiaW5oZXJpdCJ9OwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD8iMC41cHgiOiJub3JtYWwifTsKICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD8iNDhweCI6IjEycHgifTsKICAgICAgICB9CiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3RlYAogICAgICAgICAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBgOnRlYAogICAgICAgICAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICAgICAgICAgIGhlaWdodDogMDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0iJHt0aGlzLmlzUGFzc3dvcmRCb29sJiYhdGhpcy5zaG93UGFzc3dvcmRCb29sPyJwYXNzd29yZCI6InRleHQifSIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy52YWx1ZX0KICAgICAgICAgICAgQGlucHV0PSIke3RoaXMudXBkYXRlVmFsdWV9IgogICAgICAgICAgICAuZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICBwbGFjZWhvbGRlcj0iJHt0aGlzLmxhYmVsPyIiOiJFbnRlciB0ZXh0Li4uIn0iCiAgICAgICAgICAvPgogICAgICAgICAgJHt0aGlzLmlzUGFzc3dvcmRCb29sP01gCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG93UGFzc3dvcmQiIEBjbGljaz0ke3RoaXMudG9nZ2xlUGFzc3dvcmRWaWV3fT4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuc2hvd1Bhc3N3b3JkQm9vbD8ibHVjaWRlOkV5ZSI6Imx1Y2lkZTpFeWVPZmYifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6TWBgfQogICAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P01gCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uQ29udGFpbmVyICR7dGhpcy52YWxpZGF0aW9uU3RhdGV8fCJlcnJvciJ9Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0fQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDpNYDxkaXYgY2xhc3M9InZhbGlkYXRpb25Db250YWluZXIiPjwvZGl2PmB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoKXt9YXN5bmMgdXBkYXRlVmFsdWUoXyl7bGV0ICQ9Xy50YXJnZXQ7dGhpcy52YWx1ZT0kLnZhbHVlLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoXyl7dGhpcy52YWx1ZT1ffWFzeW5jIHRvZ2dsZVBhc3N3b3JkVmlldygpe3RoaXMuc2hvd1Bhc3N3b3JkQm9vbD0hdGhpcy5zaG93UGFzc3dvcmRCb29sfWFzeW5jIGZvY3VzKCl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKX1hc3luYyBibHVyKCl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuYmx1cigpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx1YSh0aGlzLHopfXN0YXRpY3t1YShyLGEpfX07cmV0dXJuIFA9cn0pKCk7ZmUoKTt2YXIgV0l0PSgpPT5NYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3RlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJvZHVjdC1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyODBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnktdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXRvdGFsIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdGVkLXByb2R1Y3RzIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQcm9kdWN0IENhcmRzIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBwcm9kdWN0IGRpc3BsYXkgd2l0aCB2YXJpb3VzIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJXaXJlbGVzcyBCbHVldG9vdGggSGVhZHBob25lcyIsY2F0ZWdvcnk6IkF1ZGlvIixkZXNjcmlwdGlvbjoiUHJlbWl1bSBzb3VuZCBxdWFsaXR5IHdpdGggYWN0aXZlIG5vaXNlIGNhbmNlbGxhdGlvbiIscHJpY2U6MTQ5Ljk5LG9yaWdpbmFsUHJpY2U6MTk5Ljk5LGljb25OYW1lOiJsdWNpZGU6aGVhZHBob25lcyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU21hcnQgV2F0Y2ggU2VyaWVzIDciLGNhdGVnb3J5OiJXZWFyYWJsZXMiLGRlc2NyaXB0aW9uOiJUcmFjayB5b3VyIGZpdG5lc3MgYW5kIHN0YXkgY29ubmVjdGVkIG9uIHRoZSBnbyIscHJpY2U6Mzk5LGljb25OYW1lOiJsdWNpZGU6d2F0Y2gifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlVTQi1DIEh1YiIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixwcmljZTo0OS45OSxpY29uTmFtZToibHVjaWRlOnVzYiIsaW5TdG9jazohMX19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezB9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSW50ZXJhY3RpdmUgU2hvcHBpbmcgQ2FydCJ9IC5zdWJ0aXRsZT0keyJQcm9kdWN0IGNhcmRzIHdpdGggZHluYW1pYyBjYXJ0IGNhbGN1bGF0aW9uIn0gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPVt7aWQ6ImxhcHRvcCIsZWxlbWVudDpudWxsLGRhdGE6e25hbWU6J01hY0Jvb2sgUHJvIDE0IicsY2F0ZWdvcnk6IkNvbXB1dGVycyIsZGVzY3JpcHRpb246Ik0zIFBybyBjaGlwIHdpdGggMThHQiBSQU0iLHByaWNlOjE5OTksb3JpZ2luYWxQcmljZToyMTk5LGljb25OYW1lOiJsdWNpZGU6bGFwdG9wIn19LHtpZDoiaXBhZCIsZWxlbWVudDpudWxsLGRhdGE6e25hbWU6ImlQYWQgQWlyIixjYXRlZ29yeToiVGFibGV0cyIsZGVzY3JpcHRpb246JzEwLjkiIExpcXVpZCBSZXRpbmEgZGlzcGxheScscHJpY2U6NTk5LGljb25OYW1lOiJsdWNpZGU6dGFibGV0In19LHtpZDoia2V5Ym9hcmQiLGVsZW1lbnQ6bnVsbCxkYXRhOntuYW1lOiJNYWdpYyBLZXlib2FyZCIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiV2lyZWxlc3Mga2V5Ym9hcmQgd2l0aCBUb3VjaCBJRCIscHJpY2U6MTQ5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX1dLGE9KCk9PntsZXQgcj0wLGk9W107ZS5mb3JFYWNoKHM9PntsZXQgbD10LnF1ZXJ5U2VsZWN0b3IoYCMke3MuaWR9YCk7aWYobCYmbC5xdWFudGl0eT4wKXtsZXQgZj1zLmRhdGEucHJpY2UqbC5xdWFudGl0eTtyKz1mLGkucHVzaChgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgICA8c3Bhbj4ke3MuZGF0YS5uYW1lfSAoJHtsLnF1YW50aXR5fSk8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDxzcGFuPiQke2YudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX19KTtsZXQgbz10LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1jYXJ0LXN1bW1hcnkiKTtvJiYoby5pbm5lckhUTUw9YAogICAgICAgICAgICAgICR7aS5qb2luKCIiKX0KICAgICAgICAgICAgICAke2kubGVuZ3RoPT09MD8nPGRpdiBjbGFzcz0iY2FydC1pdGVtIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzk5OTsiPllvdXIgY2FydCBpcyBlbXB0eTwvZGl2Pic6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC10b3RhbCI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Ub3RhbDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke3IudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfTtzZXRUaW1lb3V0KGEsMTAwKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQiKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoInF1YW50aXR5Q2hhbmdlIixhKX0pfX0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJsYXB0b3AiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOidNYWNCb29rIFBybyAxNCInLGNhdGVnb3J5OiJDb21wdXRlcnMiLGRlc2NyaXB0aW9uOiJNMyBQcm8gY2hpcCB3aXRoIDE4R0IgUkFNIixwcmljZToxOTk5LG9yaWdpbmFsUHJpY2U6MjE5OSxpY29uTmFtZToibHVjaWRlOmxhcHRvcCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0iaXBhZCIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6ImlQYWQgQWlyIixjYXRlZ29yeToiVGFibGV0cyIsZGVzY3JpcHRpb246JzEwLjkiIExpcXVpZCBSZXRpbmEgZGlzcGxheScscHJpY2U6NTk5LGljb25OYW1lOiJsdWNpZGU6dGFibGV0In19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezB9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJrZXlib2FyZCIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6Ik1hZ2ljIEtleWJvYXJkIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJXaXJlbGVzcyBrZXlib2FyZCB3aXRoIFRvdWNoIElEIixwcmljZToxNDksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1zdW1tYXJ5Ij4KICAgICAgICAgIDxoMyBjbGFzcz0iY2FydC1zdW1tYXJ5LXRpdGxlIj5TaG9wcGluZyBDYXJ0PC9oMz4KICAgICAgICAgIDxkaXYgaWQ9ImludGVyYWN0aXZlLWNhcnQtc3VtbWFyeSI+CiAgICAgICAgICAgIDwhLS0gRHluYW1pY2FsbHkgdXBkYXRlZCAtLT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2VsZWN0YWJsZSBQcm9kdWN0IENhcmRzIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNhcmRzIG9yIGNoZWNrYm94ZXMgdG8gc2VsZWN0IHByb2R1Y3RzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTb255IEFscGhhIDcgSVYiLGNhdGVnb3J5OiJDYW1lcmFzIixkZXNjcmlwdGlvbjoiRnVsbC1mcmFtZSBtaXJyb3JsZXNzIGNhbWVyYSIscHJpY2U6MjQ5OCxpY29uTmFtZToibHVjaWRlOmNhbWVyYSJ9fQogICAgICAgICAgICAuc2VsZWN0YWJsZT0keyEwfQogICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHshMX0KICAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0ke3Q9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2lmKGUpe2xldCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRbc2VsZWN0YWJsZV0iKSxyPVtdO2EuZm9yRWFjaChpPT57aS5zZWxlY3RlZCYmci5wdXNoKGkucHJvZHVjdERhdGEubmFtZSl9KSxlLnRleHRDb250ZW50PXIubGVuZ3RoPjA/YFNlbGVjdGVkOiAke3Iuam9pbigiLCAiKX1gOiJObyBwcm9kdWN0cyBzZWxlY3RlZCJ9fX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkRKSSBNaW5pIDMgUHJvIixjYXRlZ29yeToiRHJvbmVzIixkZXNjcmlwdGlvbjoiTGlnaHR3ZWlnaHQgZHJvbmUgd2l0aCA0SyBjYW1lcmEiLHByaWNlOjc1OSxpY29uTmFtZToibHVjaWRlOnBsYW5lIn19CiAgICAgICAgICAgIC5zZWxlY3RhYmxlPSR7ITB9CiAgICAgICAgICAgIC5zaG93UXVhbnRpdHlTZWxlY3Rvcj0keyExfQogICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7aWYoZSl7bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXSIpLHI9W107YS5mb3JFYWNoKGk9PntpLnNlbGVjdGVkJiZyLnB1c2goaS5wcm9kdWN0RGF0YS5uYW1lKX0pLGUudGV4dENvbnRlbnQ9ci5sZW5ndGg+MD9gU2VsZWN0ZWQ6ICR7ci5qb2luKCIsICIpfWA6Ik5vIHByb2R1Y3RzIHNlbGVjdGVkIn19fQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiR29Qcm8gSEVSTzEyIixjYXRlZ29yeToiQWN0aW9uIENhbWVyYXMiLGRlc2NyaXB0aW9uOiI1LjNLIHZpZGVvIHdpdGggSHlwZXJTbW9vdGggNi4wIixwcmljZTozOTksb3JpZ2luYWxQcmljZTo0NDksaWNvbk5hbWU6Imx1Y2lkZTp2aWRlbyJ9fQogICAgICAgICAgICAuc2VsZWN0YWJsZT0keyEwfQogICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHshMX0KICAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0ke3Q9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2lmKGUpe2xldCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRbc2VsZWN0YWJsZV0iKSxyPVtdO2EuZm9yRWFjaChpPT57aS5zZWxlY3RlZCYmci5wdXNoKGkucHJvZHVjdERhdGEubmFtZSl9KSxlLnRleHRDb250ZW50PXIubGVuZ3RoPjA/YFNlbGVjdGVkOiAke3Iuam9pbigiLCAiKX1gOiJObyBwcm9kdWN0cyBzZWxlY3RlZCJ9fX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0ZWQtcHJvZHVjdHMiIGlkPSJzZWxlY3Rpb24tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgTm8gcHJvZHVjdHMgc2VsZWN0ZWQKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlByb2R1Y3QgVmFyaWF0aW9ucyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTGltaXRlZCBFZGl0aW9uIFNuZWFrZXJzIixjYXRlZ29yeToiRm9vdHdlYXIiLGRlc2NyaXB0aW9uOiJFeGNsdXNpdmUgY29sb3J3YXkgLSBPbmx5IDUwMCBwYWlycyIscHJpY2U6Mjk5LGljb25OYW1lOiJsdWNpZGU6Zm9vdHByaW50cyIsaW5TdG9jazohMSxzdG9ja1RleHQ6IlNvbGQgT3V0In19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezB9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJNaW5pbWFsaXN0IFdhbGxldCIscHJpY2U6MzkuOTksaWNvbk5hbWU6Imx1Y2lkZTp3YWxsZXQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlByZW1pdW0gQ29mZmVlIEJlYW5zIixjYXRlZ29yeToiRm9vZCAmIEJldmVyYWdlIixkZXNjcmlwdGlvbjoiU2luZ2xlIG9yaWdpbiwgbWVkaXVtIHJvYXN0IixwcmljZToxOC41LGljb25OYW1lOiJsdWNpZGU6Y29mZmVlIixjdXJyZW5jeToiXHUyMEFDIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezJ9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmA7ZmUoKTtCZSgpO3ZhciBkNT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LG5yPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxxbzE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W107dmFyIEU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6T2JqZWN0fSldLGY9W0Qoe3R5cGU6TnVtYmVyfSldLGQ9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxiPVtEKHt0eXBlOkJvb2xlYW59KV0sdj1bRCh7dHlwZTpCb29sZWFufSldLGQ1KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZHVjdERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJwcm9kdWN0RGF0YSJpbiB6LGdldDp6PT56LnByb2R1Y3REYXRhLHNldDooeixQKT0+e3oucHJvZHVjdERhdGE9UH19LG1ldGFkYXRhOkN9LHMsbCksZDUodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJxdWFudGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InF1YW50aXR5ImluIHosZ2V0Ono9PnoucXVhbnRpdHksc2V0Oih6LFApPT57ei5xdWFudGl0eT1QfX0sbWV0YWRhdGE6Q30sYyx1KSxkNSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dRdWFudGl0eVNlbGVjdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic2hvd1F1YW50aXR5U2VsZWN0b3IiaW4geixnZXQ6ej0+ei5zaG93UXVhbnRpdHlTZWxlY3RvcixzZXQ6KHosUCk9Pnt6LnNob3dRdWFudGl0eVNlbGVjdG9yPVB9fSxtZXRhZGF0YTpDfSxoLGcpLGQ1KHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InNlbGVjdGFibGUiaW4geixnZXQ6ej0+ei5zZWxlY3RhYmxlLHNldDooeixQKT0+e3ouc2VsZWN0YWJsZT1QfX0sbWV0YWRhdGE6Q30seCxtKSxkNSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic2VsZWN0ZWQiaW4geixnZXQ6ej0+ei5zZWxlY3RlZCxzZXQ6KHosUCk9Pnt6LnNlbGVjdGVkPVB9fSxtZXRhZGF0YTpDfSx5LHcpLGQ1KG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkN9LG51bGwsYSksRT1yPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89V0l0OyNlPW5yKHRoaXMscyx7bmFtZToiUHJvZHVjdCBOYW1lIixwcmljZTowfSk7Z2V0IHByb2R1Y3REYXRhKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHByb2R1Y3REYXRhKEMpe3RoaXMuI2U9Q30jdD0obnIodGhpcyxsKSxucih0aGlzLGMsMCkpO2dldCBxdWFudGl0eSgpe3JldHVybiB0aGlzLiN0fXNldCBxdWFudGl0eShDKXt0aGlzLiN0PUN9I2E9KG5yKHRoaXMsdSksbnIodGhpcyxoLCEwKSk7Z2V0IHNob3dRdWFudGl0eVNlbGVjdG9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dRdWFudGl0eVNlbGVjdG9yKEMpe3RoaXMuI2E9Q30jcj0obnIodGhpcyxnKSxucih0aGlzLHgsITEpKTtnZXQgc2VsZWN0YWJsZSgpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RhYmxlKEMpe3RoaXMuI3I9Q30jaT0obnIodGhpcyxtKSxucih0aGlzLHksITEpKTtnZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWQoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAucHJvZHVjdC1jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWNhcmQ6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2FyZC5zZWxlY3RhYmxlIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWNhcmQuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke3AuYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDE4MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAucHJvZHVjdC1pbWFnZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3ggewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEycHg7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94IGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveC5jaGVja2VkIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICB9CgogICAgICAucHJvZHVjdC1jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleDogMTsKICAgICAgfQogICAgICAKICAgICAgLnByb2R1Y3QtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWNhdGVnb3J5IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQogICAgICAKICAgICAgLnByb2R1Y3QtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAucHJvZHVjdC1wcmljZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAucHJpY2UtY3VycmVudCB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAucHJpY2Utb3JpZ2luYWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzLmluLXN0b2NrIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIil9OwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzLm91dC1vZi1zdG9jayB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldHtuYW1lOkMsY2F0ZWdvcnk6eixkZXNjcmlwdGlvbjpQLHByaWNlOl8sb3JpZ2luYWxQcmljZTokLGN1cnJlbmN5Okg9IiQiLGluU3RvY2s6TD0hMCxzdG9ja1RleHQ6az1MPyJJbiBTdG9jayI6Ik91dCBvZiBTdG9jayIsaW1hZ2VVcmw6TixpY29uTmFtZTpTPSJsdWNpZGU6cGFja2FnZSJ9PXRoaXMucHJvZHVjdERhdGEsVD1SPT5gJHtIfSR7Ui50b0ZpeGVkKDIpfWA7cmV0dXJuIE1gCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9InByb2R1Y3QtY2FyZCAke3RoaXMuc2VsZWN0YWJsZT8ic2VsZWN0YWJsZSI6IiJ9ICR7dGhpcy5zZWxlY3RlZD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZUNhcmRDbGlja30KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtaW1hZ2UiPgogICAgICAgICAgJHtOP01gCiAgICAgICAgICAgIDxpbWcgc3JjPSIke059IiBhbHQ9IiR7Q30iPgogICAgICAgICAgYDpNYAogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7U30+PC9kZWVzLWljb24+CiAgICAgICAgICBgfQogICAgICAgICAgJHt0aGlzLnNlbGVjdGFibGU/TWAKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ic2VsZWN0aW9uLWNoZWNrYm94ICR7dGhpcy5zZWxlY3RlZD8iY2hlY2tlZCI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0ke1I9PntSLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuaGFuZGxlU2VsZWN0aW9uVG9nZ2xlKCl9fQogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWhlYWRlciI+CiAgICAgICAgICAgICR7ej9NYDxkaXYgY2xhc3M9InByb2R1Y3QtY2F0ZWdvcnkiPiR7en08L2Rpdj5gOiIifQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LW5hbWUiPiR7Q308L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHtQP01gCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZGVzY3JpcHRpb24iPiR7UH08L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdG9jay1zdGF0dXMgJHtMPyJpbi1zdG9jayI6Im91dC1vZi1zdG9jayJ9Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke0w/Imx1Y2lkZTpjaGVjay1jaXJjbGUiOiJsdWNpZGU6eC1jaXJjbGUifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgJHtrfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWZvb3RlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcHJpY2UiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1jdXJyZW50Ij4ke1QoXyl9PC9zcGFuPgogICAgICAgICAgICAgICR7JCYmJD5fP01gCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2Utb3JpZ2luYWwiPiR7VCgkKX08L3NwYW4+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5zaG93UXVhbnRpdHlTZWxlY3Rvcj9NYAogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IKICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMucXVhbnRpdHl9CiAgICAgICAgICAgICAgICBAY2hhbmdlU3ViamVjdD0ke1I9Pnt0aGlzLnF1YW50aXR5PVIuZGV0YWlsLmdldFZhbHVlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicXVhbnRpdHlDaGFuZ2UiLHtkZXRhaWw6e3F1YW50aXR5OnRoaXMucXVhbnRpdHkscHJvZHVjdERhdGE6dGhpcy5wcm9kdWN0RGF0YX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVDYXJkQ2xpY2soKXt0aGlzLnNlbGVjdGFibGUmJih0aGlzLnNlbGVjdGVkPSF0aGlzLnNlbGVjdGVkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbGVjdGlvbkNoYW5nZSIse2RldGFpbDp7c2VsZWN0ZWQ6dGhpcy5zZWxlY3RlZCxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX1oYW5kbGVTZWxlY3Rpb25Ub2dnbGUoKXt0aGlzLnNlbGVjdGVkPSF0aGlzLnNlbGVjdGVkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbGVjdGlvbkNoYW5nZSIse2RldGFpbDp7c2VsZWN0ZWQ6dGhpcy5zZWxlY3RlZCxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxucih0aGlzLHcpfXN0YXRpY3tucihyLGEpfX07cmV0dXJuIEU9cn0pKCk7ZmUoKTt2YXIgR0l0PSgpPT5NYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3RlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hvcHBpbmctZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAyMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5LXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC10b3RhbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBRdWFudGl0eSBTZWxlY3RvciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgcXVhbnRpdHkgaW5wdXQgd2l0aCBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlNlbGVjdCB0aGUgZGVzaXJlZCBxdWFudGl0eSJ9CiAgICAgICAgICAudmFsdWU9JHsxfQogICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAubGFiZWw9JHsiSXRlbXMgaW4gQ2FydCJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRqdXN0IHRoZSBxdWFudGl0eSBvZiBpdGVtcyJ9CiAgICAgICAgICAudmFsdWU9JHszfQogICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNob3BwaW5nIENhcnQifSAuc3VidGl0bGU9JHsiTW9kZXJuIGUtY29tbWVyY2UgcHJvZHVjdCBjYXJkcyB3aXRoIGludGVyYWN0aXZlIHF1YW50aXR5IHNlbGVjdG9ycyJ9IC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT0oKT0+e2xldCBhPXQucXVlcnlTZWxlY3RvcigiI2hlYWRwaG9uZXMtcXR5Iikscj10LnF1ZXJ5U2VsZWN0b3IoIiNtb3VzZS1xdHkiKSxpPXQucXVlcnlTZWxlY3RvcigiI2tleWJvYXJkLXF0eSIpLG89YT8ucXVhbnRpdHl8fDAscz1yPy5xdWFudGl0eXx8MCxsPWk/LnF1YW50aXR5fHwwLGY9MzQ5Ljk5Km8sYz05OS45OSpzLHU9NzkuOTkqbCxkPWYrYyt1LGg9dC5xdWVyeVNlbGVjdG9yKCIjY2FydC1zdW1tYXJ5LWNvbnRlbnQiKTtoJiYoaC5pbm5lckhUTUw9YAogICAgICAgICAgICAgICR7bz4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+U29ueSBXSC0xMDAwWE01ICgke299KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2YudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke3M+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPkxvZ2l0ZWNoIE1YIE1hc3RlciAzUyAoJHtzfSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtjLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtsPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5LZXljaHJvbiBLMiAoJHtsfSk8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHt1LnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgJHtkPT09MD8nPGRpdiBjbGFzcz0iY2FydC1pdGVtIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzk5OTsiPllvdXIgY2FydCBpcyBlbXB0eTwvZGl2Pic6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC10b3RhbCI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Ub3RhbDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2QudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfTtzZXRUaW1lb3V0KGUsMTAwKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQiKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoInF1YW50aXR5Q2hhbmdlIixlKX0pfX0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2hvcHBpbmctZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0iaGVhZHBob25lcy1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTb255IFdILTEwMDBYTTUgV2lyZWxlc3MgSGVhZHBob25lcyIsY2F0ZWdvcnk6IkF1ZGlvIixkZXNjcmlwdGlvbjoiSW5kdXN0cnktbGVhZGluZyBub2lzZSBjYW5jZWxpbmcgd2l0aCBBdXRvIE5DIE9wdGltaXplciIscHJpY2U6MzQ5Ljk5LG9yaWdpbmFsUHJpY2U6Mzk5Ljk5LGljb25OYW1lOiJsdWNpZGU6aGVhZHBob25lcyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9Im1vdXNlLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkxvZ2l0ZWNoIE1YIE1hc3RlciAzUyIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiUGVyZm9ybWFuY2Ugd2lyZWxlc3MgbW91c2Ugd2l0aCB1bHRyYS1mYXN0IHNjcm9sbGluZyIscHJpY2U6OTkuOTksaWNvbk5hbWU6Imx1Y2lkZTptb3VzZS1wb2ludGVyIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezJ9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ia2V5Ym9hcmQtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiS2V5Y2hyb24gSzIgV2lyZWxlc3MgTWVjaGFuaWNhbCBLZXlib2FyZCIsY2F0ZWdvcnk6IktleWJvYXJkcyIsZGVzY3JpcHRpb246IkNvbXBhY3QgNzUlIGxheW91dCB3aXRoIGhvdC1zd2FwcGFibGUgc3dpdGNoZXMiLHByaWNlOjc5Ljk5LG9yaWdpbmFsUHJpY2U6OTQuOTksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1zdW1tYXJ5Ij4KICAgICAgICAgIDxoMyBjbGFzcz0iY2FydC1zdW1tYXJ5LXRpdGxlIj5PcmRlciBTdW1tYXJ5PC9oMz4KICAgICAgICAgIDxkaXYgaWQ9ImNhcnQtc3VtbWFyeS1jb250ZW50Ij4KICAgICAgICAgICAgPCEtLSBDb250ZW50IHdpbGwgYmUgZHluYW1pY2FsbHkgdXBkYXRlZCAtLT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUmVxdWlyZWQgJiBEaXNhYmxlZCBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBmb3IgdmFsaWRhdGlvbiBhbmQgcmVzdHJpY3Rpb25zIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgLmxhYmVsPSR7Ik51bWJlciBvZiBMaWNlbnNlcyJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IGhvdyBtYW55IGxpY2Vuc2VzIHlvdSBuZWVkIn0KICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgLmxhYmVsPSR7IkZpeGVkIFF1YW50aXR5In0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIHF1YW50aXR5IGNhbm5vdCBiZSBjaGFuZ2VkIn0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLnZhbHVlPSR7NX0KICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJPcmRlciBGb3JtIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXRlIG9yZGVyIGZvcm0gd2l0aCBxdWFudGl0eSBzZWxlY3Rpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ3VzdG9tZXIgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJhc2ljIFBsYW4iLCJQcm8gUGxhbiIsIkVudGVycHJpc2UgUGxhbiJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJRdWFudGl0eSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJOdW1iZXIgb2YgbGljZW5zZXMifQogICAgICAgICAgICAudmFsdWU9JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiU3BlY2lhbCBJbnN0cnVjdGlvbnMifQogICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgO2ZlKCk7U3QoKTtCZSgpO3ZhciBZSXQ9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxRRGU9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LEtEZT0oKCk9PntsZXQgdD1bY2UoImRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvciIpXSxlLGE9W10scixpPVhlLG8scz1bXSxsPVtdO3ZhciBmPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOk51bWJlcn0pXSxZSXQodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+InZhbHVlImluIHUsZ2V0OnU9PnUudmFsdWUsc2V0Oih1LGQpPT57dS52YWx1ZT1kfX0sbWV0YWRhdGE6Y30scyxsKSxZSXQobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxmPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1HSXQ7c3RhdGljIGRlbW9Hcm91cD0iSW5wdXQiOyNlPVFEZSh0aGlzLHMsMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVt4ZSwuLi5YZS5iYXNlU3R5bGVzLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIHdpZHRoOiBhdXRvOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyIHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgbWluLXdpZHRoOiAxMjBweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXI6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yIHsKICAgICAgICAgIGZsZXg6IDAgMCA0MHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3I6YWN0aXZlIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTElKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3Rvci5taW51cyB7CiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yLnBsdXMgewogICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5IHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICB9CgogICAgICAgIC8qIEtleWJvYXJkIG5hdmlnYXRpb24gZm9jdXMgc3R5bGVzICovCiAgICAgICAgLnNlbGVjdG9yOmZvY3VzIHsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLyogTWluIHZhbHVlIHN0YXRlICovCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcltkYXRhLW1pbj0idHJ1ZSJdIC5zZWxlY3Rvci5taW51cyB7CiAgICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcltkYXRhLW1pbj0idHJ1ZSJdIC5zZWxlY3Rvci5taW51czpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP01gPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPmA6IiJ9CiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJxdWFudGl0eS1jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgZGF0YS1taW49IiR7dGhpcy52YWx1ZTw9MH0iCiAgICAgICAgPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNlbGVjdG9yIG1pbnVzIiAKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5kZWNyZWFzZSgpfX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHtjPT57KGMua2V5PT09IkVudGVyInx8Yy5rZXk9PT0iICIpJiYoYy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVjcmVhc2UoKSl9fSIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBhcmlhLWxhYmVsPSJEZWNyZWFzZSBxdWFudGl0eSIKICAgICAgICAgID7iiJI8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InF1YW50aXR5IiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1hdG9taWM9InRydWUiPiR7dGhpcy52YWx1ZX08L2Rpdj4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJzZWxlY3RvciBwbHVzIiAKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5pbmNyZWFzZSgpfX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHtjPT57KGMua2V5PT09IkVudGVyInx8Yy5rZXk9PT0iICIpJiYoYy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVhc2UoKSl9fSIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBhcmlhLWxhYmVsPSJJbmNyZWFzZSBxdWFudGl0eSIKICAgICAgICAgID4rPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1pbmNyZWFzZSgpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnZhbHVlKyssdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWRlY3JlYXNlKCl7IXRoaXMuZGlzYWJsZWQmJnRoaXMudmFsdWU+MCYmKHRoaXMudmFsdWUtLSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShjKXt0aGlzLnZhbHVlPWN9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFFEZSh0aGlzLGwpfXN0YXRpY3tRRGUocixhKX19O3JldHVybiBmPXJ9KSgpO2ZlKCk7dmFyIFpJdD0oKT0+TWAKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHt0ZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtZGlzcGxheSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJhZGlvIEdyb3VwcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgc3RyaW5nIG9wdGlvbnMgZm9yIGNvbW1vbiB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaXB0aW9uIFBsYW4ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siQmFzaWMgLSAkOS9tb250aCIsIlBybyAtICQyOS9tb250aCIsIkVudGVycHJpc2UgLSAkOTkvbW9udGgiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlBybyAtICQyOS9tb250aCJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgeW91ciBzdWJzY3JpcHRpb24gdGllciJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlByaW9yaXR5IExldmVsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkhpZ2giLCJNZWRpdW0iLCJMb3ciXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik1lZGl1bSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiUmFkaW8gZ3JvdXBzIHdpdGggaG9yaXpvbnRhbCBhcnJhbmdlbWVudCJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgIC5sYWJlbD0keyJEbyB5b3UgYWdyZWUgd2l0aCB0aGUgdGVybXM/In0KICAgICAgICAgIC5vcHRpb25zPSR7WyJZZXMiLCJObyIsIk1heWJlIl19CiAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlllcyJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgIC5sYWJlbD0keyJFeHBlcmllbmNlIExldmVsIn0KICAgICAgICAgIC5vcHRpb25zPSR7WyJCZWdpbm5lciIsIkludGVybWVkaWF0ZSIsIkV4cGVydCJdfQogICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbnRlcm1lZGlhdGUifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlNlbGVjdCB5b3VyIGV4cGVyaWVuY2UgbGV2ZWwgd2l0aCB3ZWIgZGV2ZWxvcG1lbnQifQogICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIEFkdmFuY2VkIE9wdGlvbnMifSAuc3VidGl0bGU9JHsiVXNpbmcgb2JqZWN0IGZvcm1hdCB3aXRoIGtleXMgYW5kIHBheWxvYWRzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgaWQ9ImFkdmFuY2VkLXJhZGlvIgogICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBSZWdpb24ifQogICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiVW5pdGVkIFN0YXRlcyAoVVMgRWFzdCkiLGtleToidXMtZWFzdCIscGF5bG9hZDp7cmVnaW9uOiJ1cy1lYXN0LTEiLGxhdGVuY3k6MjB9fSx7b3B0aW9uOiJFdXJvcGUgKEZyYW5rZnVydCkiLGtleToiZXUtY2VudHJhbCIscGF5bG9hZDp7cmVnaW9uOiJldS1jZW50cmFsLTEiLGxhdGVuY3k6NTB9fSx7b3B0aW9uOiJBc2lhIFBhY2lmaWMgKFNpbmdhcG9yZSkiLGtleToiYXAtc291dGhlYXN0IixwYXlsb2FkOntyZWdpb246ImFwLXNvdXRoZWFzdC0xIixsYXRlbmN5OjEyMH19XX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJldS1jZW50cmFsIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgdGhlIGNsb3Nlc3QgcmVnaW9uIGZvciBvcHRpbWFsIHBlcmZvcm1hbmNlIn0KICAgICAgICAgIEBjaGFuZ2U9JHt0PT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3JlZ2lvbi1yZXN1bHQiKTtlJiYoZS50ZXh0Q29udGVudD0iU2VsZWN0ZWQ6ICIrSlNPTi5zdHJpbmdpZnkodC5kZXRhaWwudmFsdWUsbnVsbCwyKSl9fQogICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8ZGl2IGlkPSJyZWdpb24tcmVzdWx0IiBjbGFzcz0icmVzdWx0LWRpc3BsYXkiPlNlbGVjdGVkOiB7ICJyZWdpb24iOiAiZXUtY2VudHJhbC0xIiwgImxhdGVuY3kiOiA1MCB9PC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBTdXJ2ZXkgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSByYWRpbyBncm91cHMgZm9yIHN1cnZleXMgYW5kIGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkhvdyBzYXRpc2ZpZWQgYXJlIHlvdT8ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siVmVyeSBTYXRpc2ZpZWQiLCJTYXRpc2ZpZWQiLCJOZXV0cmFsIiwiRGlzc2F0aXNmaWVkIiwiVmVyeSBEaXNzYXRpc2ZpZWQiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlNhdGlzZmllZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IldvdWxkIHlvdSByZWNvbW1lbmQgdXM/In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkRlZmluaXRlbHkiLCJQcm9iYWJseSIsIk5vdCBTdXJlIiwiUHJvYmFibHkgTm90IiwiRGVmaW5pdGVseSBOb3QiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByb2JhYmx5In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIFN0YXRlcyAmIFZhbGlkYXRpb24ifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgdmFsaWRhdGlvbiBleGFtcGxlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBTZWxlY3Rpb24ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siT3B0aW9uIEEiLCJPcHRpb24gQiIsIk9wdGlvbiBDIl19CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIFN0YXRlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkRpc2FibGVkIE9wdGlvbiAxIiwiRGlzYWJsZWQgT3B0aW9uIDIiLCJEaXNhYmxlZCBPcHRpb24gMyJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRGlzYWJsZWQgT3B0aW9uIDIifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIFNldHRpbmdzIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ29tbW9uIHBhdHRlcm5zIGluIGFwcGxpY2F0aW9uIHNldHRpbmdzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgLmxhYmVsPSR7IlRoZW1lIFByZWZlcmVuY2UifQogICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiTGlnaHQgVGhlbWUiLGtleToibGlnaHQiLHBheWxvYWQ6ImxpZ2h0In0se29wdGlvbjoiRGFyayBUaGVtZSIsa2V5OiJkYXJrIixwYXlsb2FkOiJkYXJrIn0se29wdGlvbjoiU3lzdGVtIERlZmF1bHQiLGtleToic3lzdGVtIixwYXlsb2FkOiJhdXRvIn1dfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7ImRhcmsifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSBob3cgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCBhcHBlYXIifQogICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIEZyZXF1ZW5jeSJ9CiAgICAgICAgICAub3B0aW9ucz0ke1siQWxsIE5vdGlmaWNhdGlvbnMiLCJJbXBvcnRhbnQgT25seSIsIk5vbmUiXX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbXBvcnRhbnQgT25seSJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ29udHJvbCBob3cgb2Z0ZW4geW91IHJlY2VpdmUgbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgIC5sYWJlbD0keyJMYW5ndWFnZSJ9CiAgICAgICAgICAub3B0aW9ucz0ke1siRW5nbGlzaCIsIkdlcm1hbiIsIkZyZW5jaCIsIlNwYW5pc2giLCJKYXBhbmVzZSJdfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVuZ2xpc2gifQogICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IldvcmtzIHNlYW1sZXNzbHkgd2l0aCBkZWVzLWZvcm0ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCBOYW1lIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicHJvZHVjdE5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IENhdGVnb3J5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVsZWN0cm9uaWNzIiwiQ2xvdGhpbmciLCJCb29rcyIsIkhvbWUgJiBHYXJkZW4iLCJTcG9ydHMiXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsiY2F0ZWdvcnkifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJDb25kaXRpb24ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siTmV3IiwiTGlrZSBOZXciLCJHb29kIiwiRmFpciIsIlBvb3IiXX0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJjb25kaXRpb24ifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTmV3In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiU2hpcHBpbmcgU3BlZWQifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJTdGFuZGFyZCAoNS03IGRheXMpIixrZXk6InN0YW5kYXJkIixwYXlsb2FkOntkYXlzOjcscHJpY2U6MH19LHtvcHRpb246IkV4cHJlc3MgKDItMyBkYXlzKSIsa2V5OiJleHByZXNzIixwYXlsb2FkOntkYXlzOjMscHJpY2U6MTB9fSx7b3B0aW9uOiJPdmVybmlnaHQiLGtleToib3Zlcm5pZ2h0IixwYXlsb2FkOntkYXlzOjEscHJpY2U6MjV9fV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJzdGFuZGFyZCJ9CiAgICAgICAgICAgIC5rZXk9JHsic2hpcHBpbmcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keyJTdWJtaXQgUHJvZHVjdCJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgO2ZlKCk7QmUoKTt2YXIgZ0k9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxqaT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sSkRlPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1pbnB1dC1yYWRpb2dyb3VwIildLGUsYT1bXSxyLGk9WGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCB5PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6QXJyYXl9KV0sZj1bRCgpXSxkPVtEKHt0eXBlOlN0cmluZ30pXSxiPVtEKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGdJKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+Im9wdGlvbnMiaW4gdyxnZXQ6dz0+dy5vcHRpb25zLHNldDoodyxFKT0+e3cub3B0aW9ucz1FfX0sbWV0YWRhdGE6eX0scyxsKSxnSSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4ic2VsZWN0ZWRPcHRpb24iaW4gdyxnZXQ6dz0+dy5zZWxlY3RlZE9wdGlvbixzZXQ6KHcsRSk9Pnt3LnNlbGVjdGVkT3B0aW9uPUV9fSxtZXRhZGF0YTp5fSxjLHUpLGdJKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlyZWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4iZGlyZWN0aW9uImluIHcsZ2V0Onc9PncuZGlyZWN0aW9uLHNldDoodyxFKT0+e3cuZGlyZWN0aW9uPUV9fSxtZXRhZGF0YTp5fSxoLGcpLGdJKHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4idmFsaWRhdGlvblN0YXRlImluIHcsZ2V0Onc9PncudmFsaWRhdGlvblN0YXRlLHNldDoodyxFKT0+e3cudmFsaWRhdGlvblN0YXRlPUV9fSxtZXRhZGF0YTp5fSx4LG0pLGdJKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOnl9LG51bGwsYSksdj1yPWUudmFsdWUseSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp5fSl9c3RhdGljIGRlbW89Wkl0O3N0YXRpYyBkZW1vR3JvdXA9IklucHV0IjsjZT1qaSh0aGlzLHMsW10pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoeSl7dGhpcy4jZT15fSN0PShqaSh0aGlzLGwpLGppKHRoaXMsYywiIikpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZE9wdGlvbih5KXt0aGlzLiN0PXl9I2E9KGppKHRoaXMsdSksamkodGhpcyxoLCJ2ZXJ0aWNhbCIpKTtnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGRpcmVjdGlvbih5KXt0aGlzLiNhPXl9I3I9KGppKHRoaXMsZyksamkodGhpcyx4LG51bGwpKTtnZXQgdmFsaWRhdGlvblN0YXRlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHZhbGlkYXRpb25TdGF0ZSh5KXt0aGlzLiNyPXl9Z2V0IHZhbHVlKCl7bGV0IHk9dGhpcy5nZXRPcHRpb25CeUtleSh0aGlzLnNlbGVjdGVkT3B0aW9uKTtyZXR1cm4gdHlwZW9mIHk9PSJvYmplY3QiJiZ5LnBheWxvYWQhPT12b2lkIDA/eS5wYXlsb2FkOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKHkpe2lmKHR5cGVvZiB5PT0ic3RyaW5nIil0aGlzLnNlbGVjdGVkT3B0aW9uPXk7ZWxzZXtsZXQgdz10aGlzLm9wdGlvbnMuZmluZChFPT50eXBlb2YgRT09Im9iamVjdCImJkUucGF5bG9hZD09PXkpO3cmJnR5cGVvZiB3PT0ib2JqZWN0IiYmKHRoaXMuc2VsZWN0ZWRPcHRpb249dy5rZXkpfX1zdGF0aWMgc3R5bGVzPVt4ZSwuLi5YZS5iYXNlU3R5bGVzLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyLmhvcml6b250YWwgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA2cHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lci5ob3Jpem9udGFsIC5yYWRpby1vcHRpb24gewogICAgICAgIHBhZGRpbmc6IDZweCAyMHB4IDZweCAwOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSA2LjglKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGU6OmFmdGVyIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICB9CgogICAgICAucmFkaW8tY2lyY2xlOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDMuOSUpIil9LAogICAgICAgICAgICAgICAgICAgIDAgMCAwIDRweCAke3AuYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5yYWRpby1vcHRpb24gewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgfQoKICAgICAgLmxhYmVsLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbi10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDNlbTsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCJdKSAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT0idmFsaWQiXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9Indhcm4iXSkgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLyogT3ZlcnJpZGUgYmFzZSBncmlkIGxheW91dCBmb3IgcmFkaW9ncm91cCB0byBwcmV2ZW50IGxhcmdlIGdhcHMgKi8KICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJsZWZ0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/TWA8ZGl2IGNsYXNzPSJsYWJlbC10ZXh0Ij4ke3RoaXMubGFiZWx9PC9kaXY+YDoiIn0KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXJlY3Rpb259Ij4KICAgICAgICAgICR7dGhpcy5vcHRpb25zLm1hcCh5PT57bGV0IHc9dGhpcy5nZXRPcHRpb25LZXkoeSksRT10aGlzLmdldE9wdGlvbkxhYmVsKHkpLEM9dGhpcy5zZWxlY3RlZE9wdGlvbj09PXc7cmV0dXJuIE1gCiAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgIGNsYXNzPSJyYWRpby1vcHRpb24gJHtDPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnNlbGVjdE9wdGlvbih3KX0iCiAgICAgICAgICAgICAgICBAa2V5ZG93bj0iJHt6PT50aGlzLmhhbmRsZUtleWRvd24oeix3KX0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9InJhZGlvLWNpcmNsZSIgCiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICAgICAgICByb2xlPSJyYWRpbyIKICAgICAgICAgICAgICAgICAgYXJpYS1jaGVja2VkPSIke0N9IgogICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSIke0V9IgogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaW8tbGFiZWwiPiR7RX08L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbj9NYDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uLXRleHQiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9Z2V0T3B0aW9uS2V5KHkpe3JldHVybiB0eXBlb2YgeT09InN0cmluZyI/eTp5LmtleX1nZXRPcHRpb25MYWJlbCh5KXtyZXR1cm4gdHlwZW9mIHk9PSJzdHJpbmciP3k6eS5vcHRpb259Z2V0T3B0aW9uQnlLZXkoeSl7cmV0dXJuIHRoaXMub3B0aW9ucy5maW5kKHc9PnRoaXMuZ2V0T3B0aW9uS2V5KHcpPT09eSl9c2VsZWN0T3B0aW9uKHkpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCB3PXRoaXMuc2VsZWN0ZWRPcHRpb247dGhpcy5zZWxlY3RlZE9wdGlvbj15LHchPT15JiYodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImlucHV0Iix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKHkpe3RoaXMudmFsdWU9eX1hc3luYyB2YWxpZGF0ZSgpe3JldHVybiB0aGlzLnJlcXVpcmVkJiYhdGhpcy5zZWxlY3RlZE9wdGlvbj8odGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExKToodGhpcy52YWxpZGF0aW9uU3RhdGU9InZhbGlkIiwhMCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoIXRoaXMuc2VsZWN0ZWRPcHRpb24mJnRoaXMub3B0aW9ucy5sZW5ndGg+MCYmIXRoaXMucmVxdWlyZWQpe2xldCB5PXRoaXMub3B0aW9uc1swXTt0aGlzLnNlbGVjdGVkT3B0aW9uPXRoaXMuZ2V0T3B0aW9uS2V5KHkpfX1oYW5kbGVLZXlkb3duKHksdyl7dGhpcy5kaXNhYmxlZHx8KHkua2V5PT09IiAifHx5LmtleT09PSJFbnRlciI/KHkucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbGVjdE9wdGlvbih3KSk6eS5rZXk9PT0iQXJyb3dEb3duInx8eS5rZXk9PT0iQXJyb3dSaWdodCI/KHkucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE9wdGlvbigpKTooeS5rZXk9PT0iQXJyb3dVcCJ8fHkua2V5PT09IkFycm93TGVmdCIpJiYoeS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNQcmV2aW91c09wdGlvbigpKSl9Zm9jdXNOZXh0T3B0aW9uKCl7bGV0IHk9QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnJhZGlvLWNpcmNsZSIpKSxFPSh5LmZpbmRJbmRleChDPT5DPT09dGhpcy5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpKzEpJXkubGVuZ3RoO3lbRV0uZm9jdXMoKX1mb2N1c1ByZXZpb3VzT3B0aW9uKCl7bGV0IHk9QXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnJhZGlvLWNpcmNsZSIpKSx3PXkuZmluZEluZGV4KEM9PkM9PT10aGlzLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCksRT13PD0wP3kubGVuZ3RoLTE6dy0xO3lbRV0uZm9jdXMoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksamkodGhpcyxtKX1zdGF0aWN7amkocixhKX19O3JldHVybiB2PXJ9KSgpO2ZlKCk7dmFyIFhJdD0oKT0+TWA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD5gO2ZlKCk7QmUoKTt2YXIgUVU9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxYbD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sZUVlPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1mb3JtLXN1Ym1pdCIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdO3ZhciBiPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgeD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxmPVtEKHt0eXBlOlN0cmluZ30pXSxkPVtEKHt0eXBlOlN0cmluZ30pXSxRVSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4iZGlzYWJsZWQiaW4gbSxnZXQ6bT0+bS5kaXNhYmxlZCxzZXQ6KG0sdik9PnttLmRpc2FibGVkPXZ9fSxtZXRhZGF0YTp4fSxzLGwpLFFVKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InRleHQiaW4gbSxnZXQ6bT0+bS50ZXh0LHNldDoobSx2KT0+e20udGV4dD12fX0sbWV0YWRhdGE6eH0sYyx1KSxRVSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InN0YXR1cyJpbiBtLGdldDptPT5tLnN0YXR1cyxzZXQ6KG0sdik9PnttLnN0YXR1cz12fX0sbWV0YWRhdGE6eH0saCxnKSxRVShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTp4fSxudWxsLGEpLGI9cj1lLnZhbHVlLHgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eH0pfXN0YXRpYyBkZW1vPVhJdDtzdGF0aWMgZGVtb0dyb3VwPSJGb3JtIjsjZT1YbCh0aGlzLHMsITEpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNlfXNldCBkaXNhYmxlZCh4KXt0aGlzLiNlPXh9I3Q9KFhsKHRoaXMsbCksWGwodGhpcyxjLHZvaWQgMCkpO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRleHQoeCl7dGhpcy4jdD14fSNhPShYbCh0aGlzLHUpLFhsKHRoaXMsaCwibm9ybWFsIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc3RhdHVzKHgpe3RoaXMuI2E9eH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksWGwodGhpcyxnKX1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgc3RhdHVzPSIke3RoaXMuc3RhdHVzfSIKICAgICAgICBAY2xpY2s9IiR7dGhpcy5zdWJtaXR9IgogICAgICAgID9kaXNhYmxlZD0iJHt0aGlzLmRpc2FibGVkfSIKICAgICAgPgogICAgICAgICR7dGhpcy50ZXh0fHxNYDxzbG90Pjwvc2xvdD5gfQogICAgICA8L2RlZXMtYnV0dG9uPgogICAgYH1hc3luYyBzdWJtaXQoKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtsZXQgeD10aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpO3gmJnguZ2F0aGVyQW5kRGlzcGF0Y2gmJnguZ2F0aGVyQW5kRGlzcGF0Y2goKX1hc3luYyBmb2N1cygpe2xldCB4PWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuZGlzYWJsZWR8fChhd2FpdCB4LmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5zdWJtaXQoKSl9c3RhdGlje1hsKHIsYSl9fTtyZXR1cm4gYj1yfSkoKTtmZSgpO3ZhciBRSXQ9KCk9Pk1gCiAgPHN0eWxlPgogICAgJHt0ZWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3BhY2VyIHsKICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2xhYmVsPSJTZWxlY3QgQ291bnRyeSJdJyksYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25bbGFiZWw9IlNlbGVjdCBSb2xlIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixyPT57Y29uc29sZS5sb2coIkNvdW50cnkgc2VsZWN0ZWQ6IixyLmRldGFpbCl9KSxhJiZhLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixyPT57Y29uc29sZS5sb2coIlJvbGUgc2VsZWN0ZWQ6IixyLmRldGFpbCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgRHJvcGRvd25zIn0gLnN1YnRpdGxlPSR7IlN0YW5kYXJkIGRyb3Bkb3duIHdpdGggc2VhcmNoIGZ1bmN0aW9uYWxpdHkgYW5kIHZhcmlvdXMgb3B0aW9ucyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiU2VsZWN0IENvdW50cnkifQogICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiVW5pdGVkIFN0YXRlcyIsa2V5OiJ1cyJ9LHtvcHRpb246IkNhbmFkYSIsa2V5OiJjYSJ9LHtvcHRpb246Ikdlcm1hbnkiLGtleToiZGUifSx7b3B0aW9uOiJGcmFuY2UiLGtleToiZnIifSx7b3B0aW9uOiJVbml0ZWQgS2luZ2RvbSIsa2V5OiJ1ayJ9LHtvcHRpb246IkF1c3RyYWxpYSIsa2V5OiJhdSJ9LHtvcHRpb246IkphcGFuIixrZXk6ImpwIn0se29wdGlvbjoiQnJhemlsIixrZXk6ImJyIn1dfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiVW5pdGVkIFN0YXRlcyIsa2V5OiJ1cyJ9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUm9sZSJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJBZG1pbmlzdHJhdG9yIixrZXk6ImFkbWluIn0se29wdGlvbjoiRWRpdG9yIixrZXk6ImVkaXRvciJ9LHtvcHRpb246IlZpZXdlciIsa2V5OiJ2aWV3ZXIifSx7b3B0aW9uOiJHdWVzdCIsa2V5OiJndWVzdCJ9XX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd24iKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixhPT57Y29uc29sZS5sb2coYFByaW9yaXR5IGNoYW5nZWQgdG86ICR7YS5kZXRhaWwub3B0aW9ufWApfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIFdpdGhvdXQgU2VhcmNoIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdpdGggc2VhcmNoIGZ1bmN0aW9uYWxpdHkgZGlzYWJsZWQgZm9yIHNpbXBsZXIgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJQcmlvcml0eSBMZXZlbCJ9CiAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJIaWdoIixrZXk6ImhpZ2gifSx7b3B0aW9uOiJNZWRpdW0iLGtleToibWVkaXVtIn0se29wdGlvbjoiTG93IixrZXk6ImxvdyJ9XX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246Ik1lZGl1bSIsa2V5OiJtZWRpdW0ifX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZHJvcGRvd24iKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixyPT57bGV0IGk9YS5nZXRBdHRyaWJ1dGUoImxhYmVsIik7Y29uc29sZS5sb2coYCR7aX06ICR7ci5kZXRhaWwub3B0aW9ufWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiTXVsdGlwbGUgZHJvcGRvd25zIGluIGEgaG9yaXpvbnRhbCBsYXlvdXQgZm9yIGNvbXBhY3QgZm9ybXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJEZXBhcnRtZW50In0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkVuZ2luZWVyaW5nIixrZXk6ImVuZyJ9LHtvcHRpb246IkRlc2lnbiIsa2V5OiJkZXNpZ24ifSx7b3B0aW9uOiJNYXJrZXRpbmciLGtleToibWFya2V0aW5nIn0se29wdGlvbjoiU2FsZXMiLGtleToic2FsZXMifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBTaXplIn0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiMS01IixrZXk6InNtYWxsIn0se29wdGlvbjoiNi0yMCIsa2V5OiJtZWRpdW0ifSx7b3B0aW9uOiIyMS01MCIsa2V5OiJsYXJnZSJ9LHtvcHRpb246IjUwKyIsa2V5OiJ4bGFyZ2UifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiTG9jYXRpb24ifQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiUmVtb3RlIixrZXk6InJlbW90ZSJ9LHtvcHRpb246Ik9uLXNpdGUiLGtleToib25zaXRlIn0se29wdGlvbjoiSHlicmlkIixrZXk6Imh5YnJpZCJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kcm9wZG93bltyZXF1aXJlZF0iKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coIlJlcXVpcmVkIGRyb3Bkb3duIGxvc3QgZm9jdXMiKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIEZpZWxkIn0KICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiT3B0aW9uIEEiLGtleToiYSJ9LHtvcHRpb246Ik9wdGlvbiBCIixrZXk6ImIifSx7b3B0aW9uOiJPcHRpb24gQyIsa2V5OiJjIn1dfQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBEcm9wZG93biJ9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkNhbm5vdCBTZWxlY3QiLGtleToiZGlzYWJsZWQifV19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJDYW5ub3QgU2VsZWN0IixrZXk6ImRpc2FibGVkIn19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPgogICAgICAoU3BhY2VyIHRvIHRlc3QgZHJvcGRvd24gcG9zaXRpb25pbmcpCiAgICA8L2Rpdj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kcm9wZG93biIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLGE9Pntjb25zb2xlLmxvZygiQm90dG9tIGRyb3Bkb3duIHNlbGVjdGVkOiIsYS5kZXRhaWwpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIEJvdHRvbSBQb3NpdGlvbmluZyJ9IC5zdWJ0aXRsZT0keyJEcm9wZG93biB0aGF0IG9wZW5zIHVwd2FyZCB3aGVuIG5lYXIgYm90dG9tIG9mIHZpZXdwb3J0In0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJPcGVucyBVcHdhcmQifQogICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRmlyc3QgT3B0aW9uIixrZXk6ImZpcnN0In0se29wdGlvbjoiU2Vjb25kIE9wdGlvbiIsa2V5OiJzZWNvbmQifSx7b3B0aW9uOiJUaGlyZCBPcHRpb24iLGtleToidGhpcmQifSx7b3B0aW9uOiJGb3VydGggT3B0aW9uIixrZXk6ImZvdXJ0aCJ9LHtvcHRpb246IkZpZnRoIE9wdGlvbiIsa2V5OiJmaWZ0aCJ9XX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kcm9wZG93biIpLGE9dC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2UmJmEmJihhLmlubmVySFRNTD0iPGVtPlNlbGVjdCBhIHByb2R1Y3QgdG8gc2VlIGRldGFpbHMuLi48L2VtPiIsZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHI9PntyLmRldGFpbC52YWx1ZSYmKGEuaW5uZXJIVE1MPWAKICAgICAgICAgICAgICA8c3Ryb25nPlNlbGVjdGVkOjwvc3Ryb25nPiAke3IuZGV0YWlsLnZhbHVlLm9wdGlvbn08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5LZXk6PC9zdHJvbmc+ICR7ci5kZXRhaWwudmFsdWUua2V5fTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPlByaWNlOjwvc3Ryb25nPiAkJHtyLmRldGFpbC52YWx1ZS5wYXlsb2FkPy5wcmljZXx8Ik4vQSJ9PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+RmVhdHVyZXM6PC9zdHJvbmc+ICR7ci5kZXRhaWwudmFsdWUucGF5bG9hZD8uZmVhdHVyZXM/LmpvaW4oIiwgIil8fCJOL0EifQogICAgICAgICAgICBgKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRXZlbnQgSGFuZGxpbmcgJiBQYXlsb2FkIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdpdGggcGF5bG9hZCBkYXRhIGFuZCBjaGFuZ2UgZXZlbnQgaGFuZGxpbmcifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBQcm9kdWN0In0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkJhc2ljIFBsYW4iLGtleToiYmFzaWMiLHBheWxvYWQ6e3ByaWNlOjkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiXX19LHtvcHRpb246IlBybyBQbGFuIixrZXk6InBybyIscGF5bG9hZDp7cHJpY2U6MTkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiLCJGZWF0dXJlIEIiXX19LHtvcHRpb246IkVudGVycHJpc2UgUGxhbiIsa2V5OiJlbnRlcnByaXNlIixwYXlsb2FkOntwcmljZTo0OS45OSxmZWF0dXJlczpbIkZlYXR1cmUgQSIsIkZlYXR1cmUgQiIsIkZlYXR1cmUgQyJdfX1dfQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic2VsZWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IHBhZGRpbmc6IDEycHg7IGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7IGJvcmRlci1yYWRpdXM6IDRweDsgZm9udC1zaXplOiAxNHB4OyI+PC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSxhPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltrZXk9InByb2plY3RUeXBlIl0nKSxyPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltrZXk9ImZyYW1ld29yayJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsaT0+e2NvbnNvbGUubG9nKCJGb3JtIHN1Ym1pdHRlZCB3aXRoIGRhdGE6IixpLmRldGFpbC5kYXRhKX0pLGEmJnImJmEuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLGk9PntsZXQgbz1pLmRldGFpbC5rZXk7Y29uc29sZS5sb2coYFByb2plY3QgdHlwZSBjaGFuZ2VkIHRvOiAke299YCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJEcm9wZG93biB3b3JraW5nIHdpdGhpbiBhIGZvcm0gd2l0aCB2YWxpZGF0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9qZWN0IFR5cGUifQogICAgICAgICAgICAua2V5PSR7InByb2plY3RUeXBlIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IldlYiBBcHBsaWNhdGlvbiIsa2V5OiJ3ZWIifSx7b3B0aW9uOiJNb2JpbGUgQXBwbGljYXRpb24iLGtleToibW9iaWxlIn0se29wdGlvbjoiRGVza3RvcCBBcHBsaWNhdGlvbiIsa2V5OiJkZXNrdG9wIn0se29wdGlvbjoiQVBJIFNlcnZpY2UiLGtleToiYXBpIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IkRldmVsb3BtZW50IEZyYW1ld29yayJ9CiAgICAgICAgICAgIC5rZXk9JHsiZnJhbWV3b3JrIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlJlYWN0IixrZXk6InJlYWN0IixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiVnVlLmpzIixrZXk6InZ1ZSIscGF5bG9hZDp7dHlwZToid2ViIn19LHtvcHRpb246IkFuZ3VsYXIiLGtleToiYW5ndWxhciIscGF5bG9hZDp7dHlwZToid2ViIn19LHtvcHRpb246IlJlYWN0IE5hdGl2ZSIsa2V5OiJyZWFjdC1uYXRpdmUiLHBheWxvYWQ6e3R5cGU6Im1vYmlsZSJ9fSx7b3B0aW9uOiJGbHV0dGVyIixrZXk6ImZsdXR0ZXIiLHBheWxvYWQ6e3R5cGU6Im1vYmlsZSJ9fSx7b3B0aW9uOiJFbGVjdHJvbiIsa2V5OiJlbGVjdHJvbiIscGF5bG9hZDp7dHlwZToiZGVza3RvcCJ9fV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keyJDcmVhdGUgUHJvamVjdCJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgO2ZlKCk7U3QoKTtCZSgpO3ZhciBXaT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LG4yPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSx0RWU9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWlucHV0LWRyb3Bkb3duIildLGUsYT1bXSxyLGk9WGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W10sSCxMPVtdLGs9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBTPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0QoKV0sZj1bRCgpXSxkPVtEKHt0eXBlOkJvb2xlYW59KV0sYj1bbGUoKV0sdj1bbGUoKV0sRT1bbGUoKV0sUD1bbGUoKV0sSD1bbGUoKV0sV2kodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4ib3B0aW9ucyJpbiBULGdldDpUPT5ULm9wdGlvbnMsc2V0OihULFIpPT57VC5vcHRpb25zPVJ9fSxtZXRhZGF0YTpTfSxzLGwpLFdpKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRPcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJzZWxlY3RlZE9wdGlvbiJpbiBULGdldDpUPT5ULnNlbGVjdGVkT3B0aW9uLHNldDooVCxSKT0+e1Quc2VsZWN0ZWRPcHRpb249Un19LG1ldGFkYXRhOlN9LGMsdSksV2kodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJlbmFibGVTZWFyY2giaW4gVCxnZXQ6VD0+VC5lbmFibGVTZWFyY2gsc2V0OihULFIpPT57VC5lbmFibGVTZWFyY2g9Un19LG1ldGFkYXRhOlN9LGgsZyksV2kodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuc1RvVG9wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4ib3BlbnNUb1RvcCJpbiBULGdldDpUPT5ULm9wZW5zVG9Ub3Asc2V0OihULFIpPT57VC5vcGVuc1RvVG9wPVJ9fSxtZXRhZGF0YTpTfSx4LG0pLFdpKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyZWRPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4iZmlsdGVyZWRPcHRpb25zImluIFQsZ2V0OlQ9PlQuZmlsdGVyZWRPcHRpb25zLHNldDooVCxSKT0+e1QuZmlsdGVyZWRPcHRpb25zPVJ9fSxtZXRhZGF0YTpTfSx5LHcpLFdpKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0ZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VD0+ImhpZ2hsaWdodGVkSW5kZXgiaW4gVCxnZXQ6VD0+VC5oaWdobGlnaHRlZEluZGV4LHNldDooVCxSKT0+e1QuaGlnaGxpZ2h0ZWRJbmRleD1SfX0sbWV0YWRhdGE6U30sQyx6KSxXaSh0aGlzLG51bGwsUCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4iaXNPcGVuZWQiaW4gVCxnZXQ6VD0+VC5pc09wZW5lZCxzZXQ6KFQsUik9PntULmlzT3BlbmVkPVJ9fSxtZXRhZGF0YTpTfSxfLCQpLFdpKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJzZWFyY2hWYWx1ZSJpbiBULGdldDpUPT5ULnNlYXJjaFZhbHVlLHNldDooVCxSKT0+e1Quc2VhcmNoVmFsdWU9Un19LG1ldGFkYXRhOlN9LEwsayksV2kobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6U30sbnVsbCxhKSxOPXI9ZS52YWx1ZSxTJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlN9KX1zdGF0aWMgZGVtbz1RSXQ7c3RhdGljIGRlbW9Hcm91cD0iSW5wdXQiOyNlPW4yKHRoaXMscyxbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhTKXt0aGlzLiNlPVN9I3Q9KG4yKHRoaXMsbCksbjIodGhpcyxjLG51bGwpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRPcHRpb24oUyl7dGhpcy4jdD1TfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZShTKXt0aGlzLnNlbGVjdGVkT3B0aW9uPVN9I2E9KG4yKHRoaXMsdSksbjIodGhpcyxoLCEwKSk7Z2V0IGVuYWJsZVNlYXJjaCgpe3JldHVybiB0aGlzLiNhfXNldCBlbmFibGVTZWFyY2goUyl7dGhpcy4jYT1TfSNyPShuMih0aGlzLGcpLG4yKHRoaXMseCwhMSkpO2dldCBvcGVuc1RvVG9wKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG9wZW5zVG9Ub3AoUyl7dGhpcy4jcj1TfSNpPShuMih0aGlzLG0pLG4yKHRoaXMseSxbXSkpO2dldCBmaWx0ZXJlZE9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZmlsdGVyZWRPcHRpb25zKFMpe3RoaXMuI2k9U30jbz0objIodGhpcyx3KSxuMih0aGlzLEMsMCkpO2dldCBoaWdobGlnaHRlZEluZGV4KCl7cmV0dXJuIHRoaXMuI299c2V0IGhpZ2hsaWdodGVkSW5kZXgoUyl7dGhpcy4jbz1TfSNzPShuMih0aGlzLHopLG4yKHRoaXMsXywhMSkpO2dldCBpc09wZW5lZCgpe3JldHVybiB0aGlzLiNzfXNldCBpc09wZW5lZChTKXt0aGlzLiNzPVN9I249KG4yKHRoaXMsJCksbjIodGhpcyxMLCIiKSk7Z2V0IHNlYXJjaFZhbHVlKCl7cmV0dXJuIHRoaXMuI259c2V0IHNlYXJjaFZhbHVlKFMpe3RoaXMuI249U31zdGF0aWMgc3R5bGVzPVt4ZSwuLi5YZS5iYXNlU3R5bGVzLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94IHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNDBweCAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3g6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94OmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94LmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogRHJvcGRvd24gYXJyb3cgKi8KICAgICAgLnNlbGVjdGVkQm94OjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94Lm9wZW46OmFmdGVyIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25Cb3ggewogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgc2NhbGUoMC45OCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgei1pbmRleDogNTA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgfQogICAgICAKICAgICAgLnNlbGVjdGlvbkJveC50b3AgewogICAgICAgIGJvdHRvbTogY2FsYygxMDAlICsgNHB4KTsKICAgICAgICB0b3A6IGF1dG87CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OCk7CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWxlY3Rpb25Cb3guYm90dG9tIHsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25Cb3guc2hvdyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogT3B0aW9ucyBjb250YWluZXIgKi8KICAgICAgLm9wdGlvbnMtY29udGFpbmVyIHsKICAgICAgICBtYXgtaGVpZ2h0OiAyNTBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgfQoKICAgICAgLyogT3B0aW9ucyAqLwogICAgICAub3B0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luOiAycHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb24uaGlnaGxpZ2h0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAvKiBObyBvcHRpb25zIG1lc3NhZ2UgKi8KICAgICAgLm5vLW9wdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLyogU2VhcmNoICovCiAgICAgIC5zZWFyY2ggewogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWFyY2guYm90dG9tIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc2VhcmNoIGlucHV0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InNlbGVjdGVkQm94ICR7dGhpcy5pc09wZW5lZD8ib3BlbiI6IiJ9ICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT4hdGhpcy5kaXNhYmxlZCYmdGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZVNlbGVjdGVkQm94S2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy5zZWxlY3RlZE9wdGlvbj8ub3B0aW9ufHwiU2VsZWN0IGFuIG9wdGlvbiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGlvbkJveCAke3RoaXMuaXNPcGVuZWQ/InNob3ciOiIifSAke3RoaXMub3BlbnNUb1RvcD8idG9wIjoiYm90dG9tIn0iPgogICAgICAgICAgICAke3RoaXMuZW5hYmxlU2VhcmNoP01gCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIgCiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIG9wdGlvbnMuLi4iIAogICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSIke3RoaXMuc2VhcmNoVmFsdWV9IgogICAgICAgICAgICAgICAgICAgICAgQGlucHV0PSIke3RoaXMuaGFuZGxlU2VhcmNofSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHtTPT5TLnN0b3BQcm9wYWdhdGlvbigpfSIKICAgICAgICAgICAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlU2VhcmNoS2V5ZG93bn0iCiAgICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOm51bGx9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbnMtY29udGFpbmVyIj4KICAgICAgICAgICAgICAke3RoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aD09PTA/TWA8ZGl2IGNsYXNzPSJuby1vcHRpb25zIj5ObyBvcHRpb25zIGZvdW5kPC9kaXY+YDp0aGlzLmZpbHRlcmVkT3B0aW9ucy5tYXAoKFMsVCk9PntsZXQgUj10aGlzLmhpZ2hsaWdodGVkSW5kZXg9PT1UO3JldHVybiBNYAogICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3B0aW9uICR7Uj8iaGlnaGxpZ2h0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnVwZGF0ZVNlbGVjdGlvbihTKX0iCiAgICAgICAgICAgICAgICAgICAgICAgIEBtb3VzZWVudGVyPSIkeygpPT50aGlzLmhpZ2hsaWdodGVkSW5kZXg9VH0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7Uy5vcHRpb259CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5oYW5kbGVDbGlja091dHNpZGU9dGhpcy5oYW5kbGVDbGlja091dHNpZGUuYmluZCh0aGlzKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnNlbGVjdGVkT3B0aW9uPXRoaXMuc2VsZWN0ZWRPcHRpb258fG51bGwsdGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zfXVwZGF0ZWQoUyl7c3VwZXIudXBkYXRlZChTKSxTLmhhcygib3B0aW9ucyIpJiYodGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zKX1hc3luYyB1cGRhdGVTZWxlY3Rpb24oUyl7dGhpcy5zZWxlY3RlZE9wdGlvbj1TLHRoaXMuaXNPcGVuZWQ9ITEsdGhpcy5zZWFyY2hWYWx1ZT0iIix0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy5oaWdobGlnaHRlZEluZGV4PTAsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0ZWRPcHRpb24iLHtkZXRhaWw6UyxidWJibGVzOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWhhbmRsZUNsaWNrT3V0c2lkZT0objIodGhpcyxrKSxTPT57Uy5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyh0aGlzKXx8KHRoaXMuaXNPcGVuZWQ9ITEsdGhpcy5zZWFyY2hWYWx1ZT0iIix0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKSl9KTthc3luYyB0b2dnbGVTZWxlY3Rpb25Cb3goKXtpZih0aGlzLmlzT3BlbmVkPSF0aGlzLmlzT3BlbmVkLHRoaXMuaXNPcGVuZWQpe2xldCBUPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VsZWN0ZWRCb3giKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxSPXdpbmRvdy5pbm5lckhlaWdodC1ULmJvdHRvbSxBPVQudG9wO3RoaXMub3BlbnNUb1RvcD1SPDMwMCYmQT5SLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IEY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2ggaW5wdXQiKTtGJiZGLmZvY3VzKCksc2V0VGltZW91dCgoKT0+e2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSl9LDApfWVsc2UgdGhpcy5zZWFyY2hWYWx1ZT0iIix0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKX1oYW5kbGVTZWFyY2goUyl7bGV0IFQ9Uy50YXJnZXQudmFsdWU7dGhpcy5zZWFyY2hWYWx1ZT1UO2xldCBSPVQudG9Mb3dlckNhc2UoKTt0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMuZmlsdGVyKEE9PkEub3B0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoUikpLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD0wfWhhbmRsZUtleURvd24oUyl7bGV0IFQ9Uy5rZXksUj10aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGgtMTtUPT09IkFycm93RG93biI/KFMucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9dGhpcy5oaWdobGlnaHRlZEluZGV4KzE+Uj8wOnRoaXMuaGlnaGxpZ2h0ZWRJbmRleCsxKTpUPT09IkFycm93VXAiPyhTLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZEluZGV4PXRoaXMuaGlnaGxpZ2h0ZWRJbmRleC0xPDA/Ujp0aGlzLmhpZ2hsaWdodGVkSW5kZXgtMSk6VD09PSJFbnRlciI/KFMucHJldmVudERlZmF1bHQoKSx0aGlzLmZpbHRlcmVkT3B0aW9uc1t0aGlzLmhpZ2hsaWdodGVkSW5kZXhdJiZ0aGlzLnVwZGF0ZVNlbGVjdGlvbih0aGlzLmZpbHRlcmVkT3B0aW9uc1t0aGlzLmhpZ2hsaWdodGVkSW5kZXhdKSk6VD09PSJFc2NhcGUiJiYoUy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNPcGVuZWQ9ITEpfWhhbmRsZVNlYXJjaEtleWRvd24oUyl7KFMua2V5PT09IkFycm93RG93biJ8fFMua2V5PT09IkFycm93VXAifHxTLmtleT09PSJFbnRlciIpJiZ0aGlzLmhhbmRsZUtleURvd24oUyl9aGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3duKFMpe3RoaXMuZGlzYWJsZWR8fChTLmtleT09PSJFbnRlciJ8fFMua2V5PT09IiAiPyhTLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKSk6Uy5rZXk9PT0iQXJyb3dEb3duInx8Uy5rZXk9PT0iQXJyb3dVcCI/KFMucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkfHx0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpKTpTLmtleT09PSJFc2NhcGUiJiYoUy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNPcGVuZWQmJih0aGlzLmlzT3BlbmVkPSExKSkpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb259c2V0VmFsdWUoUyl7dGhpcy5zZWxlY3RlZE9wdGlvbj1TfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpfXN0YXRpY3tuMihyLGEpfX07cmV0dXJuIE49cn0pKCk7ZmUoKTt2YXIgS0l0PSgpPT5NYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3RlYAogICAgICAgIC5kZW1vLXNoZWxsIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTE2MHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHsKICAgICAgICAgIC5kZW1vLWdyaWQtLXR3byB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC5kZW1vLXN0YWNrIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxOHB4OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tbm90ZSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgOTAlKSIsImhzbCgyMTUgMjAlIDI2JSkiKX07CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMyAxMDAlIDk3JSkiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDI1JSAzMiUpIiwiaHNsKDIxNSAyMCUgODIlKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU1OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tbm90ZSBzdHJvbmcgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA0NSUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNoZWxsIj4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiTW9kZXJuIGZpbGUgdXBsb2FkZXIifQogICAgICAgIC5zdWJ0aXRsZT0keyJTaGFkY24taW5zcGlyZWQgbGF5b3V0IHdpdGggZHJhZyAmIGRyb3AsIHByZXZpZXdzIGFuZCB2YWxpZGF0aW9uIn0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCBkZW1vLWdyaWQtLXR3byI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXN0YWNrIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgIC5sYWJlbD0keyJBdHRhY2htZW50cyJ9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlVwbG9hZCBzdXBwb3J0aW5nIGRvY3VtZW50cyBmb3IgeW91ciByZXF1ZXN0In0KICAgICAgICAgICAgICAuYWNjZXB0PSR7ImltYWdlLyosLnBkZiwuemlwIn0KICAgICAgICAgICAgICAubWF4U2l6ZT0kezEwKjEwMjQqMTAyNH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgIC5sYWJlbD0keyJCcmFuZCBhc3NldHMifQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJVcGxvYWQgaGlnaC1yZXNvbHV0aW9uIGltYWdlcnkgKEpQRy9QTkcpIn0KICAgICAgICAgICAgICAuYWNjZXB0PSR7ImltYWdlL2pwZWcsaW1hZ2UvcG5nIn0KICAgICAgICAgICAgICAubXVsdGlwbGU9JHshMX0KICAgICAgICAgICAgICAubWF4U2l6ZT0kezUqMTAyNCoxMDI0fQogICAgICAgICAgICAgIC5idXR0b25UZXh0PSR7IlNlbGVjdCBjb3ZlciBpbWFnZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF1ZGlvIHVwbG9hZHMifQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJTaGFyZSBwb2RjYXN0IGRyYWZ0cyAoTVAzL1dBViwgbWF4IDI1TUIgZWFjaCkifQogICAgICAgICAgICAgIC5hY2NlcHQ9JHsiYXVkaW8vKiJ9CiAgICAgICAgICAgICAgLm1heFNpemU9JHsyNSoxMDI0KjEwMjR9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgZXhhbXBsZSJ9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlVwbG9hZGVyIGlzIGRpc2FibGVkIHdoaWxlIG1vZGVyYXRpb24gaXMgcGVuZGluZyJ9CiAgICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJGb3JtIGludGVncmF0aW9uIn0KICAgICAgICAuc3VidGl0bGU9JHsiQ29tYmluZSBmaWxlIHVwbG9hZHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgREVFUyBmb3JtIGVjb3N5c3RlbSJ9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zdGFjayI+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgbmFtZSJ9CiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiSG93IHNob3VsZCB3ZSByZWZlciB0byB0aGlzIHByb2plY3QgaW50ZXJuYWxseT8ifQogICAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgICAua2V5PSR7InByb2plY3ROYW1lIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJDb250YWN0IGVtYWlsIn0KICAgICAgICAgICAgICAgIC5pbnB1dFR5cGU9JHsiZW1haWwifQogICAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgICAua2V5PSR7ImNvbnRhY3RFbWFpbCJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgICAubGFiZWw9JHsiU3RhdGVtZW50IG9mIHdvcmsifQogICAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlVwbG9hZCBhIHNpZ25lZCBzdGF0ZW1lbnQgb2Ygd29yayAoUERGLCBtYXggMTVNQikifQogICAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgICAgICAuYWNjZXB0PSR7ImFwcGxpY2F0aW9uL3BkZiJ9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezE1KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAgIC5tdWx0aXBsZT0keyExfQogICAgICAgICAgICAgICAgLmtleT0keyJzb3cifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkNyZWF0aXZlIHJlZmVyZW5jZXMifQogICAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ik9wdGlvbmFsLiBVcGxvYWQgdXAgdG8gZml2ZSB2aXN1YWwgcmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgICAuYWNjZXB0PSR7ImltYWdlLyoifQogICAgICAgICAgICAgICAgLm1heEZpbGVzPSR7NX0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7OCoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgICAua2V5PSR7InJlZmVyZW5jZXMifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGVzIn0KICAgICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJBZGQgb3B0aW9uYWwgY29udGV4dCBmb3IgcmV2aWV3ZXJzIn0KICAgICAgICAgICAgICAgIC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifQogICAgICAgICAgICAgICAgLmtleT0keyJub3RlcyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keyJTdWJtaXQgYnJpZWZpbmcifT48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kZWVzLWZvcm0+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ub3RlIj4KICAgICAgICAgICAgPHN0cm9uZz5Hb29kIHRvIGtub3c6PC9zdHJvbmc+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+RHJhZyAmIGRyb3AgaGlnaGxpZ2h0cyB0aGUgZHJvcHpvbmUgYW5kIHN1cHBvcnRzIGtleWJvYXJkIGFjdGl2YXRpb24uPC9saT4KICAgICAgICAgICAgICA8bGk+QWNjZXB0ZWQgZmlsZSB0eXBlcyBhcmUgc3VtbWFyaXNlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIDxjb2RlPmFjY2VwdDwvY29kZT4gYXR0cmlidXRlLjwvbGk+CiAgICAgICAgICAgICAgPGxpPkltYWdlIHVwbG9hZHMgc2hvdyBsaXZlIHByZXZpZXdzIGdlbmVyYXRlZCB2aWEgPGNvZGU+VVJMLmNyZWF0ZU9iamVjdFVSTDwvY29kZT4uPC9saT4KICAgICAgICAgICAgICA8bGk+RmlsZSBzaXplIGFuZCBmaWxlLWNvdW50IGxpbWl0cyBzdXJmYWNlIGlubGluZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLjwvbGk+CiAgICAgICAgICAgICAgPGxpPlRoZSBjb21wb25lbnQgc3RheXMgY29tcGF0aWJsZSB3aXRoIDxjb2RlPmRlZXMtZm9ybTwvY29kZT4gdmFsdWUgYWNjZXNzb3JzLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgO2ZlKCk7dmFyIEpJdD1bcC5kZWZhdWx0U3R5bGVzLC4uLlhlLmJhc2VTdHlsZXMsdGVgCiAgICA6aG9zdCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CgoKICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQoKICAgIC5kcm9wem9uZSB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgYm9yZGVyOiAxLjVweCBkYXNoZWQgJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDgwJSkiLCJoc2woMjE3IDIwJSAyNSUpIil9OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjJzIGVhc2U7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICAuZHJvcHpvbmU6Zm9jdXMtdmlzaWJsZSB7CiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxMiUpIil9LAogICAgICAgIDAgMCAwIDRweCAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlIC8gMC41KSIsImhzbCgyMTMgOTMlIDY4JSAvIDAuNCkiKX07CiAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC5kcm9wem9uZS0tYWN0aXZlIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4ICR7cC5iZFRoZW1lKCJyZ2JhKDE1LCAyMywgNDIsIDAuMTIpIiwicmdiYSgwLCAwLCAwLCAwLjM1KSIpfTsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSAvIDAuMDYpIiwiaHNsKDIxMyA5MyUgNjglIC8gMC4xMikiKX07CiAgICB9CgogICAgLmRyb3B6b25lLS1oYXMtZmlsZXMgewogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTklKSIsImhzbCgyMTUgMjAlIDExJSkiKX07CiAgICB9CgogICAgLmRyb3B6b25lLS1kaXNhYmxlZCB7CiAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICB9CgogICAgLmRyb3B6b25lX19ib2R5IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAxNnB4OwogICAgfQoKICAgIC5kcm9wem9uZV9faWNvbiB7CiAgICAgIHdpZHRoOiA0OHB4OwogICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlIC8gMC4xMikiLCJoc2woMjEzIDkzJSA2OCUgLyAwLjEyKSIpfTsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAuZHJvcHpvbmVfX2ljb24gZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgfQoKICAgIC5kcm9wem9uZV9fbG9hZGVyIHsKICAgICAgd2lkdGg6IDIwcHg7CiAgICAgIGhlaWdodDogMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDE1LCAyMywgNDIsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBhbmltYXRpb246IGxvYWRlci1zcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIC5kcm9wem9uZV9fY29udGVudCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogNHB4OwogICAgICBtaW4td2lkdGg6IDA7CiAgICB9CgogICAgLmRyb3B6b25lX19oZWFkbGluZSB7CiAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyIDQ3JSAxMSUpIiwiaHNsKDIxMCAyMCUgOTYlKSIpfTsKICAgIH0KCiAgICAuZHJvcHpvbmVfX3N1YmxpbmUgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDYlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICB9CgogICAgLmRyb3B6b25lX19icm93c2UgewogICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgfQoKICAgIC5kcm9wem9uZV9fYnJvd3NlOmhvdmVyIHsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICB9CgogICAgLmRyb3B6b25lX19icm93c2U6ZGlzYWJsZWQgewogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICBvcGFjaXR5OiAwLjY7CiAgICB9CgogICAgLmRyb3B6b25lX19tZXRhIHsKICAgICAgbWFyZ2luLXRvcDogMTRweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBnYXA6IDhweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDUwJSkiLCJoc2woMjE1IDE2JSA3MiUpIil9OwogICAgfQoKICAgIC5kcm9wem9uZV9fbWV0YSBzcGFuIHsKICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgOTUlKSIsImhzbCgyMTMgOTMlIDE4JSkiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxMyA5MyUgMjQlKSIpfTsKICAgIH0KCiAgICAuZmlsZS1saXN0IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICBwYWRkaW5nLXRvcDogMjBweDsKICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxMyA5MyUgMjQlKSIpfTsKICAgIH0KCiAgICAuZmlsZS1saXN0X19oZWFkZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNjglKSIpfTsKICAgIH0KCiAgICAuZmlsZS1saXN0X19jbGVhciB7CiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgLmZpbGUtbGlzdF9fY2xlYXI6aG92ZXIgewogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgIH0KCiAgICAuZmlsZS1saXN0X19pdGVtcyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAuZmlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDEycHg7CiAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUgLyAwLjUpIiwiaHNsKDIxNSAyMCUgMTYlIC8gMC41KSIpfTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTMgMjclIDkyJSkiLCJoc2woMjE3IDI1JSAyNiUpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgIH0KCiAgICAuZmlsZS1yb3c6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuOCkiLCJoc2woMjE1IDIwJSAxNiUgLyAwLjgpIil9OwogICAgfQoKICAgIC5maWxlLXRodW1iIHsKICAgICAgd2lkdGg6IDM2cHg7CiAgICAgIGhlaWdodDogMzZweDsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMzIlIDE4JSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAuZmlsZS10aHVtYiBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMThweDsKICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgoKICAgIC50aHVtYi1pbWFnZSB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgfQoKICAgIC5maWxlLW1ldGEgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDRweDsKICAgICAgbWluLXdpZHRoOiAwOwogICAgfQoKICAgIC5maWxlLW5hbWUgewogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMiA0NyUgMTElKSIsImhzbCgyMTAgMjAlIDk2JSkiKX07CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgfQoKICAgIC5maWxlLWRldGFpbHMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDYlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICB9CgogICAgLmZpbGUtc2l6ZSB7CiAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICB9CgogICAgLmZpbGUtdHlwZSB7CiAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMzIlIDI4JSkiKX07CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDYlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgfQoKICAgIC5maWxlLWFjdGlvbnMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnJlbW92ZS1idXR0b24gewogICAgICB3aWR0aDogMjhweDsKICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNTIlKSIsImhzbCgyMTUgMTYlIDY4JSkiKX07CiAgICB9CgogICAgLnJlbW92ZS1idXR0b246aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIlIDUwJSAvIDAuMDgpIiwiaHNsKDAgNjIlIDMyJSAvIDAuMTUpIil9OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDcyJSA0NiUpIiwiaHNsKDAgNzAlIDcwJSkiKX07CiAgICB9CgogICAgLnJlbW92ZS1idXR0b246YWN0aXZlIHsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTsKICAgIH0KCiAgICAucmVtb3ZlLWJ1dHRvbiBkZWVzLWljb24gewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDE0cHg7CiAgICAgIGhlaWdodDogMTRweDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3MiUgNDAlKSIsImhzbCgwIDcwJSA2OCUpIil9OwogICAgICBsaW5lLWhlaWdodDogMS41OwogICAgfQoKICAgIEBrZXlmcmFtZXMgbG9hZGVyLXNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQogIGBdO0Z0KCk7ZmUoKTt2YXIgWXI9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxxMT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sYUVlPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1pbnB1dC1maWxldXBsb2FkIildLGUsYT1bXSxyLGk9WGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W10sSCxMPVtdLGs9W10sTixTPVtdLFQ9W107dmFyIFI9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBBPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe2F0dHJpYnV0ZTohMX0pXSxmPVtsZSgpXSxkPVtsZSgpXSxiPVtEKHt0eXBlOlN0cmluZ30pXSx2PVtEKHt0eXBlOlN0cmluZ30pXSxFPVtEKHt0eXBlOkJvb2xlYW59KV0sUD1bRCh7dHlwZTpOdW1iZXJ9KV0sSD1bRCh7dHlwZTpOdW1iZXJ9KV0sTj1bRCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxZcih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpGPT4idmFsdWUiaW4gRixnZXQ6Rj0+Ri52YWx1ZSxzZXQ6KEYsYWUpPT57Ri52YWx1ZT1hZX19LG1ldGFkYXRhOkF9LHMsbCksWXIodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rj0+InN0YXRlImluIEYsZ2V0OkY9PkYuc3RhdGUsc2V0OihGLGFlKT0+e0Yuc3RhdGU9YWV9fSxtZXRhZGF0YTpBfSxjLHUpLFlyKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNMb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpGPT4iaXNMb2FkaW5nImluIEYsZ2V0OkY9PkYuaXNMb2FkaW5nLHNldDooRixhZSk9PntGLmlzTG9hZGluZz1hZX19LG1ldGFkYXRhOkF9LGgsZyksWXIodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJidXR0b25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpGPT4iYnV0dG9uVGV4dCJpbiBGLGdldDpGPT5GLmJ1dHRvblRleHQsc2V0OihGLGFlKT0+e0YuYnV0dG9uVGV4dD1hZX19LG1ldGFkYXRhOkF9LHgsbSksWXIodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY2NlcHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkY9PiJhY2NlcHQiaW4gRixnZXQ6Rj0+Ri5hY2NlcHQsc2V0OihGLGFlKT0+e0YuYWNjZXB0PWFlfX0sbWV0YWRhdGE6QX0seSx3KSxZcih0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im11bHRpcGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpGPT4ibXVsdGlwbGUiaW4gRixnZXQ6Rj0+Ri5tdWx0aXBsZSxzZXQ6KEYsYWUpPT57Ri5tdWx0aXBsZT1hZX19LG1ldGFkYXRhOkF9LEMseiksWXIodGhpcyxudWxsLFAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpGPT4ibWF4U2l6ZSJpbiBGLGdldDpGPT5GLm1heFNpemUsc2V0OihGLGFlKT0+e0YubWF4U2l6ZT1hZX19LG1ldGFkYXRhOkF9LF8sJCksWXIodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhGaWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rj0+Im1heEZpbGVzImluIEYsZ2V0OkY9PkYubWF4RmlsZXMsc2V0OihGLGFlKT0+e0YubWF4RmlsZXM9YWV9fSxtZXRhZGF0YTpBfSxMLGspLFlyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpGPT4idmFsaWRhdGlvblN0YXRlImluIEYsZ2V0OkY9PkYudmFsaWRhdGlvblN0YXRlLHNldDooRixhZSk9PntGLnZhbGlkYXRpb25TdGF0ZT1hZX19LG1ldGFkYXRhOkF9LFMsVCksWXIobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6QX0sbnVsbCxhKSxSPXI9ZS52YWx1ZSxBJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkF9KX1zdGF0aWMgZGVtbz1LSXQ7c3RhdGljIGRlbW9Hcm91cD0iSW5wdXQiOyNlPXExKHRoaXMscyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEEpe3RoaXMuI2U9QX0jdD0ocTEodGhpcyxsKSxxMSh0aGlzLGMsImlkbGUiKSk7Z2V0IHN0YXRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHN0YXRlKEEpe3RoaXMuI3Q9QX0jYT0ocTEodGhpcyx1KSxxMSh0aGlzLGgsITEpKTtnZXQgaXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzTG9hZGluZyhBKXt0aGlzLiNhPUF9I3I9KHExKHRoaXMsZykscTEodGhpcyx4LCJTZWxlY3QgZmlsZXMiKSk7Z2V0IGJ1dHRvblRleHQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYnV0dG9uVGV4dChBKXt0aGlzLiNyPUF9I2k9KHExKHRoaXMsbSkscTEodGhpcyx5LCIiKSk7Z2V0IGFjY2VwdCgpe3JldHVybiB0aGlzLiNpfXNldCBhY2NlcHQoQSl7dGhpcy4jaT1BfSNvPShxMSh0aGlzLHcpLHExKHRoaXMsQywhMCkpO2dldCBtdWx0aXBsZSgpe3JldHVybiB0aGlzLiNvfXNldCBtdWx0aXBsZShBKXt0aGlzLiNvPUF9I3M9KHExKHRoaXMseikscTEodGhpcyxfLDApKTtnZXQgbWF4U2l6ZSgpe3JldHVybiB0aGlzLiNzfXNldCBtYXhTaXplKEEpe3RoaXMuI3M9QX0jbj0ocTEodGhpcywkKSxxMSh0aGlzLEwsMCkpO2dldCBtYXhGaWxlcygpe3JldHVybiB0aGlzLiNufXNldCBtYXhGaWxlcyhBKXt0aGlzLiNuPUF9I2w9KHExKHRoaXMsaykscTEodGhpcyxTLG51bGwpKTtnZXQgdmFsaWRhdGlvblN0YXRlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHZhbGlkYXRpb25TdGF0ZShBKXt0aGlzLiNsPUF9I2M9KHExKHRoaXMsVCksIiIpO2dldCB2YWxpZGF0aW9uTWVzc2FnZSgpe3JldHVybiB0aGlzLiNjfXNldCB2YWxpZGF0aW9uTWVzc2FnZShBKXt0aGlzLiNjPUF9cHJldmlld1VybE1hcD1uZXcgV2Vha01hcDtkcm9wQXJlYT1udWxsO3N0YXRpYyBzdHlsZXM9Skl0O3JlbmRlcigpe2xldCBBPXRoaXMuZ2V0QWNjZXB0ZWRTdW1tYXJ5KCksRj1bdGhpcy5tdWx0aXBsZT8iTXVsdGlwbGUgZmlsZXMgc3VwcG9ydGVkIjoiU2luZ2xlIGZpbGUgb25seSIsdGhpcy5tYXhTaXplPjA/YE1heCAke3RoaXMuZm9ybWF0RmlsZVNpemUodGhpcy5tYXhTaXplKX1gOiJObyBzaXplIGxpbWl0Il07cmV0dXJuIEEmJkYucHVzaChgQWNjZXB0cyAke0F9YCksTWAKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwKICAgICAgICAgIC5sYWJlbD0ke3RoaXMubGFiZWx9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufQogICAgICAgICAgLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0KICAgICAgICA+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJkcm9wem9uZSAke3RoaXMuc3RhdGU9PT0iZHJhZ092ZXIiPyJkcm9wem9uZS0tYWN0aXZlIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkcm9wem9uZS0tZGlzYWJsZWQiOiIifSAke3RoaXMudmFsdWUubGVuZ3RoPjA/ImRyb3B6b25lLS1oYXMtZmlsZXMiOiIifSIKICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgIHRhYmluZGV4PSR7dGhpcy5kaXNhYmxlZD8tMTowfQogICAgICAgICAgYXJpYS1kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICBhcmlhLWxhYmVsPSR7YFNlbGVjdCBmaWxlcyR7QT9gICgke0F9KWA6IiJ9YH0KICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlRHJvcHpvbmVDbGlja30KICAgICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVEcm9wem9uZUtleWRvd259CiAgICAgICAgPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIGNsYXNzPSJmaWxlLWlucHV0IgogICAgICAgICAgICBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBvcGFjaXR5OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHRvcDogMDsgbGVmdDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsiCiAgICAgICAgICAgIHR5cGU9ImZpbGUiCiAgICAgICAgICAgID9tdWx0aXBsZT0ke3RoaXMubXVsdGlwbGV9CiAgICAgICAgICAgIGFjY2VwdD0ke3RoaXMuYWNjZXB0fHwiIn0KICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlRmlsZUlucHV0Q2hhbmdlfQogICAgICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgICAvPgogICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcHpvbmVfX2JvZHkiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkcm9wem9uZV9faWNvbiI+CiAgICAgICAgICAgICAgJHt0aGlzLmlzTG9hZGluZz9NYDxzcGFuIGNsYXNzPSJkcm9wem9uZV9fbG9hZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPmA6TWA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpGb2xkZXJPcGVuIj48L2RlZXMtaWNvbj5gfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcHpvbmVfX2NvbnRlbnQiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkcm9wem9uZV9faGVhZGxpbmUiPiR7dGhpcy5idXR0b25UZXh0fHwiU2VsZWN0IGZpbGVzIn08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRyb3B6b25lX19zdWJsaW5lIj4KICAgICAgICAgICAgICAgIERyYWcgYW5kIGRyb3AgZmlsZXMgaGVyZSBvcgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICB0eXBlPSJidXR0b24iCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJkcm9wem9uZV9fYnJvd3NlIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZUJyb3dzZUNsaWNrfQogICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICBicm93c2UKICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3B6b25lX19tZXRhIj4KICAgICAgICAgICAgJHtGLm1hcChhZT0+TWA8c3Bhbj4ke2FlfTwvc3Bhbj5gKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLnJlbmRlckZpbGVMaXN0KCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25NZXNzYWdlP01gPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIiBhcmlhLWxpdmU9InBvbGl0ZSI+JHt0aGlzLnZhbGlkYXRpb25NZXNzYWdlfTwvZGl2PmA6TWBgfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZUxpc3QoKXtyZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGg9PT0wP01gYDpNYAogICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdF9faGVhZGVyIj4KICAgICAgICAgIDxzcGFuPiR7dGhpcy52YWx1ZS5sZW5ndGh9IGZpbGUke3RoaXMudmFsdWUubGVuZ3RoPT09MT8iIjoicyJ9IHNlbGVjdGVkPC9zcGFuPgogICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD4wP01gPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJmaWxlLWxpc3RfX2NsZWFyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsZWFyQWxsfT5DbGVhciAke3RoaXMudmFsdWUubGVuZ3RoPjE/ImFsbCI6IiJ9PC9idXR0b24+YDpNYGB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0X19pdGVtcyI+CiAgICAgICAgICAke3RoaXMudmFsdWUubWFwKEE9PnRoaXMucmVuZGVyRmlsZVJvdyhBKSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWxlUm93KEEpe2xldCBGPXRoaXMuZ2V0RmlsZVR5cGUoQSksYWU9dGhpcy5jYW5TaG93UHJldmlldyhBKT90aGlzLmdldFByZXZpZXdVcmwoQSk6bnVsbDtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0iZmlsZS1yb3cgJHtGfS1maWxlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLXRodW1iIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAke2FlP01gPGltZyBjbGFzcz0idGh1bWItaW1hZ2UiIHNyYz0ke2FlfSBhbHQ9JHtgUHJldmlldyBvZiAke0EubmFtZX1gfT5gOk1gPGRlZXMtaWNvbiBpY29uPSR7dGhpcy5nZXRGaWxlSWNvbihBKX0+PC9kZWVzLWljb24+YH0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLW1ldGEiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1uYW1lIiB0aXRsZT0ke0EubmFtZX0+JHtBLm5hbWV9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWRldGFpbHMiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1zaXplIj4ke3RoaXMuZm9ybWF0RmlsZVNpemUoQS5zaXplKX08L3NwYW4+CiAgICAgICAgICAgICR7RiE9PSJmaWxlIj9NYDxzcGFuIGNsYXNzPSJmaWxlLXR5cGUiPiR7Rn08L3NwYW4+YDpNYGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWFjdGlvbnMiPgogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICB0eXBlPSJidXR0b24iCiAgICAgICAgICAgIGNsYXNzPSJyZW1vdmUtYnV0dG9uIgogICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVGaWxlKEEpfQogICAgICAgICAgICBhcmlhLWxhYmVsPSR7YFJlbW92ZSAke0EubmFtZX1gfQogICAgICAgICAgPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpYIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlRmlsZUlucHV0Q2hhbmdlPWFzeW5jIEE9Pnt0aGlzLmlzTG9hZGluZz0hMTtsZXQgRj1BLnRhcmdldCxhZT1BcnJheS5mcm9tKEYuZmlsZXM/P1tdKTthZS5sZW5ndGg+MCYmYXdhaXQgdGhpcy5hZGRGaWxlcyhhZSksRi52YWx1ZT0iIn07aGFuZGxlRHJvcHpvbmVDbGljaz1BPT57dGhpcy5kaXNhYmxlZHx8QS50YXJnZXQuY2xvc2VzdCgiLmRyb3B6b25lX19icm93c2UsIC5maWxlLWxpc3QiKXx8dGhpcy5vcGVuRmlsZVNlbGVjdG9yKCl9O2hhbmRsZUJyb3dzZUNsaWNrPUE9Pnt0aGlzLmRpc2FibGVkfHwoQS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKSl9O2hhbmRsZURyb3B6b25lS2V5ZG93bj1BPT57dGhpcy5kaXNhYmxlZHx8KEEua2V5PT09IkVudGVyInx8QS5rZXk9PT0iICIpJiYoQS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMub3BlbkZpbGVTZWxlY3RvcigpKX07aGFuZGxlQ2xlYXJBbGw9QT0+e0EucHJldmVudERlZmF1bHQoKSx0aGlzLmNsZWFyQWxsKCl9O2hhbmRsZURyYWdFdmVudD1hc3luYyBBPT57aWYoQS5wcmV2ZW50RGVmYXVsdCgpLEEuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuZGlzYWJsZWQpe2lmKEEudHlwZT09PSJkcmFnZW50ZXIifHxBLnR5cGU9PT0iZHJhZ292ZXIiKXtBLmRhdGFUcmFuc2ZlciYmKEEuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9ImNvcHkiKSx0aGlzLnN0YXRlPSJkcmFnT3ZlciI7cmV0dXJufWlmKEEudHlwZT09PSJkcmFnbGVhdmUiKXtpZighdGhpcy5kcm9wQXJlYSl7dGhpcy5zdGF0ZT0iaWRsZSI7cmV0dXJufWxldCBGPXRoaXMuZHJvcEFyZWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse2NsaWVudFg6YWU9MCxjbGllbnRZOlY9MH09QTsoYWU8PUYubGVmdHx8YWU+PUYucmlnaHR8fFY8PUYudG9wfHxWPj1GLmJvdHRvbSkmJih0aGlzLnN0YXRlPSJpZGxlIik7cmV0dXJufWlmKEEudHlwZT09PSJkcm9wIil7dGhpcy5zdGF0ZT0iaWRsZSI7bGV0IEY9QXJyYXkuZnJvbShBLmRhdGFUcmFuc2Zlcj8uZmlsZXM/P1tdKTtGLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmFkZEZpbGVzKEYpfX19O2F0dGFjaERyb3BMaXN0ZW5lcnMoKXt0aGlzLmRyb3BBcmVhJiZbImRyYWdlbnRlciIsImRyYWdvdmVyIiwiZHJhZ2xlYXZlIiwiZHJvcCJdLmZvckVhY2goQT0+e3RoaXMuZHJvcEFyZWEuYWRkRXZlbnRMaXN0ZW5lcihBLHRoaXMuaGFuZGxlRHJhZ0V2ZW50KX0pfWRldGFjaERyb3BMaXN0ZW5lcnMoKXt0aGlzLmRyb3BBcmVhJiZbImRyYWdlbnRlciIsImRyYWdvdmVyIiwiZHJhZ2xlYXZlIiwiZHJvcCJdLmZvckVhY2goQT0+e3RoaXMuZHJvcEFyZWEucmVtb3ZlRXZlbnRMaXN0ZW5lcihBLHRoaXMuaGFuZGxlRHJhZ0V2ZW50KX0pfXJlYmluZEludGVyYWN0aXZlRWxlbWVudHMoKXtsZXQgQT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kcm9wem9uZSIpO0EhPT10aGlzLmRyb3BBcmVhJiYodGhpcy5kZXRhY2hEcm9wTGlzdGVuZXJzKCksdGhpcy5kcm9wQXJlYT1BLHRoaXMuYXR0YWNoRHJvcExpc3RlbmVycygpKX1mb3JtYXRGaWxlU2l6ZShBKXtsZXQgRj1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl07aWYoQT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCBhZT1NYXRoLm1pbihNYXRoLmZsb29yKE1hdGgubG9nKEEpL01hdGgubG9nKDEwMjQpKSxGLmxlbmd0aC0xKSxWPUEvTWF0aC5wb3coMTAyNCxhZSk7cmV0dXJuYCR7TWF0aC5yb3VuZChWKjEwMCkvMTAwfSAke0ZbYWVdfWB9Z2V0RmlsZVR5cGUoQSl7bGV0IEY9QS50eXBlLnRvTG93ZXJDYXNlKCk7cmV0dXJuIEYuc3RhcnRzV2l0aCgiaW1hZ2UvIik/ImltYWdlIjpGPT09ImFwcGxpY2F0aW9uL3BkZiI/InBkZiI6Ri5pbmNsdWRlcygid29yZCIpfHxGLmluY2x1ZGVzKCJkb2N1bWVudCIpPyJkb2MiOkYuaW5jbHVkZXMoInNoZWV0Iil8fEYuaW5jbHVkZXMoImV4Y2VsIik/InNwcmVhZHNoZWV0IjpGLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKXx8Ri5pbmNsdWRlcygicG93ZXJwb2ludCIpPyJwcmVzZW50YXRpb24iOkYuc3RhcnRzV2l0aCgidmlkZW8vIik/InZpZGVvIjpGLnN0YXJ0c1dpdGgoImF1ZGlvLyIpPyJhdWRpbyI6Ri5pbmNsdWRlcygiemlwIil8fEYuaW5jbHVkZXMoImNvbXByZXNzZWQiKT8iYXJjaGl2ZSI6ImZpbGUifWdldEZpbGVJY29uKEEpe2xldCBGPXRoaXMuZ2V0RmlsZVR5cGUoQSk7cmV0dXJue2ltYWdlOiJsdWNpZGU6RmlsZUltYWdlIixwZGY6Imx1Y2lkZTpGaWxlVGV4dCIsZG9jOiJsdWNpZGU6RmlsZVRleHQiLHNwcmVhZHNoZWV0OiJsdWNpZGU6RmlsZVNwcmVhZHNoZWV0IixwcmVzZW50YXRpb246Imx1Y2lkZTpGaWxlQmFyQ2hhcnQiLHZpZGVvOiJsdWNpZGU6RmlsZVZpZGVvIixhdWRpbzoibHVjaWRlOkZpbGVBdWRpbyIsYXJjaGl2ZToibHVjaWRlOkZpbGVBcmNoaXZlIixmaWxlOiJsdWNpZGU6RmlsZSJ9W0ZdPz8ibHVjaWRlOkZpbGUifWNhblNob3dQcmV2aWV3KEEpe3JldHVybiBBLnR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIikmJkEuc2l6ZTw1KjEwMjQqMTAyNH12YWxpZGF0ZUZpbGUoQSl7aWYodGhpcy5tYXhTaXplPjAmJkEuc2l6ZT50aGlzLm1heFNpemUpcmV0dXJuIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YEZpbGUgIiR7QS5uYW1lfSIgZXhjZWVkcyB0aGUgbWF4aW11bSBzaXplIG9mICR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLm1heFNpemUpfWAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExO2lmKHRoaXMuYWNjZXB0KXtsZXQgRj10aGlzLmFjY2VwdC5zcGxpdCgiLCIpLm1hcChhZT0+YWUudHJpbSgpKS5maWx0ZXIoYWU9PmFlLmxlbmd0aD4wKTtpZihGLmxlbmd0aD4wKXtsZXQgYWU9ITE7Zm9yKGxldCBWIG9mIEYpaWYoVi5zdGFydHNXaXRoKCIuIikpe2lmKEEubmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKFYudG9Mb3dlckNhc2UoKSkpe2FlPSEwO2JyZWFrfX1lbHNlIGlmKFYuZW5kc1dpdGgoIi8qIikpe2xldCBTZT1WLnNsaWNlKDAsLTIpO2lmKEEudHlwZS5zdGFydHNXaXRoKFNlKSl7YWU9ITA7YnJlYWt9fWVsc2UgaWYoQS50eXBlPT09Vil7YWU9ITA7YnJlYWt9aWYoIWFlKXJldHVybiB0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBGaWxlIHR5cGUgbm90IGFjY2VwdGVkLiBBbGxvd2VkOiAke0Yuam9pbigiLCAiKX1gLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMX19cmV0dXJuITB9Z2V0UHJldmlld1VybChBKXtsZXQgRj10aGlzLnByZXZpZXdVcmxNYXAuZ2V0KEEpO3JldHVybiBGfHwoRj1VUkwuY3JlYXRlT2JqZWN0VVJMKEEpLHRoaXMucHJldmlld1VybE1hcC5zZXQoQSxGKSksRn1yZWxlYXNlUHJldmlldyhBKXtsZXQgRj10aGlzLnByZXZpZXdVcmxNYXAuZ2V0KEEpO0YmJihVUkwucmV2b2tlT2JqZWN0VVJMKEYpLHRoaXMucHJldmlld1VybE1hcC5kZWxldGUoQSkpfWdldEFjY2VwdGVkU3VtbWFyeSgpe2lmKCF0aGlzLmFjY2VwdClyZXR1cm4gbnVsbDtsZXQgQT1BcnJheS5mcm9tKG5ldyBTZXQodGhpcy5hY2NlcHQuc3BsaXQoIiwiKS5tYXAoRj0+Ri50cmltKCkpLmZpbHRlcihGPT5GLmxlbmd0aD4wKS5tYXAoRj0+dGhpcy5mb3JtYXRBY2NlcHRUb2tlbihGKSkpKS5maWx0ZXIoQm9vbGVhbik7cmV0dXJuIEEubGVuZ3RoPT09MD9udWxsOkEubGVuZ3RoPT09MT9BWzBdOkEubGVuZ3RoPT09Mj9gJHtBWzBdfSwgJHtBWzFdfWA6YCR7QS5zbGljZSgwLDIpLmpvaW4oIiwgIil9XHUyMDI2YH1mb3JtYXRBY2NlcHRUb2tlbihBKXtpZihBPT09IiovKiIpcmV0dXJuIkFsbCBmaWxlcyI7aWYoQS5lbmRzV2l0aCgiLyoiKSl7bGV0IFY9QS5zcGxpdCgiLyIpWzBdO3JldHVybiBWP2Ake1YuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtWLnNsaWNlKDEpfSBmaWxlc2A6IkFsbCBmaWxlcyJ9cmV0dXJuIEEuc3RhcnRzV2l0aCgiLiIpP0Euc2xpY2UoMSkudG9VcHBlckNhc2UoKTpBLmluY2x1ZGVzKCJwZGYiKT8iUERGIjpBLmluY2x1ZGVzKCJ6aXAiKT8iWklQIjpBLmluY2x1ZGVzKCJqc29uIik/IkpTT04iOkEuaW5jbHVkZXMoIm1zd29yZCIpPyJET0MiOkEuaW5jbHVkZXMoIndvcmRwcm9jZXNzaW5nbWwiKT8iRE9DWCI6QS5pbmNsdWRlcygiZXhjZWwiKT8iWExTIjpBLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKT8iUFBUIjooQS5zcGxpdCgiLyIpLnBvcCgpPz9BKS50b1VwcGVyQ2FzZSgpfWF0dGFjaExpZmVjeWNsZUxpc3RlbmVycygpe3RoaXMucmViaW5kSW50ZXJhY3RpdmVFbGVtZW50cygpfWZpcnN0VXBkYXRlZChBKXtzdXBlci5maXJzdFVwZGF0ZWQoQSksdGhpcy5hdHRhY2hMaWZlY3ljbGVMaXN0ZW5lcnMoKX11cGRhdGVkKEEpe3N1cGVyLnVwZGF0ZWQoQSksQS5oYXMoInZhbHVlIikmJnRoaXMudmFsaWRhdGUoKSx0aGlzLnJlYmluZEludGVyYWN0aXZlRWxlbWVudHMoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuZGV0YWNoRHJvcExpc3RlbmVycygpLHRoaXMudmFsdWUuZm9yRWFjaChBPT50aGlzLnJlbGVhc2VQcmV2aWV3KEEpKSx0aGlzLnByZXZpZXdVcmxNYXA9bmV3IFdlYWtNYXAsYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBvcGVuRmlsZVNlbGVjdG9yKCl7aWYodGhpcy5kaXNhYmxlZHx8dGhpcy5pc0xvYWRpbmcpcmV0dXJuO3RoaXMuaXNMb2FkaW5nPSEwO2xldCBBPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZpbGUtaW5wdXQiKTtpZighQSl7dGhpcy5pc0xvYWRpbmc9ITE7cmV0dXJufWxldCBGPSgpPT57c2V0VGltZW91dCgoKT0+eyghQS5maWxlc3x8QS5maWxlcy5sZW5ndGg9PT0wKSYmKHRoaXMuaXNMb2FkaW5nPSExKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLEYpfSwzMDApfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLEYpLEEuY2xpY2soKX1yZW1vdmVGaWxlKEEpe2xldCBGPXRoaXMudmFsdWUuaW5kZXhPZihBKTtGPi0xJiYodGhpcy5yZWxlYXNlUHJldmlldyhBKSx0aGlzLnZhbHVlLnNwbGljZShGLDEpLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWNsZWFyQWxsKCl7bGV0IEE9Wy4uLnRoaXMudmFsdWVdO3RoaXMudmFsdWU9W10sQS5mb3JFYWNoKEY9PnRoaXMucmVsZWFzZVByZXZpZXcoRikpLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMifWFzeW5jIHVwZGF0ZVZhbHVlKEEpe2xldCBGPUEudGFyZ2V0O3RoaXMudmFsdWU9QXJyYXkuZnJvbShGLmZpbGVzPz9bXSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9c2V0VmFsdWUoQSl7dGhpcy52YWx1ZS5mb3JFYWNoKEY9PnRoaXMucmVsZWFzZVByZXZpZXcoRikpLHRoaXMudmFsdWU9QSxBLmxlbmd0aD4wP3RoaXMuYnV0dG9uVGV4dD10aGlzLm11bHRpcGxlPyJBZGQgbW9yZSBmaWxlcyI6IlJlcGxhY2UgZmlsZSI6dGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMiLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSx0aGlzLnZhbGlkYXRlKCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1hc3luYyBhZGRGaWxlcyhBKXtsZXQgRj1bXTtmb3IobGV0IGFlIG9mIEEpdGhpcy52YWxpZGF0ZUZpbGUoYWUpJiZGLnB1c2goYWUpO2lmKEYubGVuZ3RoPT09MCl7dGhpcy5pc0xvYWRpbmc9ITE7cmV0dXJufWlmKHRoaXMubWF4RmlsZXM+MCYmdGhpcy52YWx1ZS5sZW5ndGgrRi5sZW5ndGg+dGhpcy5tYXhGaWxlcyl7bGV0IFY9dGhpcy5tYXhGaWxlcy10aGlzLnZhbHVlLmxlbmd0aDtpZihWPD0wKXt0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBNYXhpbXVtICR7dGhpcy5tYXhGaWxlc30gZmlsZXMgYWxsb3dlZGAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLHRoaXMuaXNMb2FkaW5nPSExO3JldHVybn1GLnNwbGljZShWKSx0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBPbmx5ICR7Vn0gbW9yZSBmaWxlKHMpIGNhbiBiZSBhZGRlZGAsdGhpcy52YWxpZGF0aW9uU3RhdGU9Indhcm4ifSF0aGlzLm11bHRpcGxlJiZGLmxlbmd0aD4wPyh0aGlzLnZhbHVlLmZvckVhY2goYWU9PnRoaXMucmVsZWFzZVByZXZpZXcoYWUpKSx0aGlzLnZhbHVlPVtGWzBdXSk6dGhpcy52YWx1ZS5wdXNoKC4uLkYpLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9IiIsdGhpcy52YWxpZGF0aW9uU3RhdGU9bnVsbCx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksYXdhaXQgdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuaXNMb2FkaW5nPSExLHRoaXMudmFsdWUubGVuZ3RoPjA/dGhpcy5idXR0b25UZXh0PXRoaXMubXVsdGlwbGU/IkFkZCBtb3JlIGZpbGVzIjoiUmVwbGFjZSBmaWxlIjp0aGlzLmJ1dHRvblRleHQ9IlNlbGVjdCBmaWxlcyJ9YXN5bmMgdmFsaWRhdGUoKXtpZih0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSIiLHRoaXMucmVxdWlyZWQmJnRoaXMudmFsdWUubGVuZ3RoPT09MClyZXR1cm4gdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9IlBsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIGZpbGUiLCExO2ZvcihsZXQgQSBvZiB0aGlzLnZhbHVlKWlmKCF0aGlzLnZhbGlkYXRlRmlsZShBKSlyZXR1cm4hMTtyZXR1cm4gdGhpcy52YWxpZGF0aW9uU3RhdGU9dGhpcy52YWx1ZS5sZW5ndGg+MD8idmFsaWQiOm51bGwsITB9c3RhdGlje3ExKHIsYSl9fTtyZXR1cm4gUj1yfSkoKTtmdW5jdGlvbiBvRWUodCxlKXtpZihlPT09dm9pZCAwJiYoZT17YWxsb3dRUklCQU46ITB9KSx0PT1udWxsKXJldHVybiExO3ZhciBhPW5ldyBSZWdFeHAoIl5bMC05XXsyfSQiLCIiKSxyPXQuc2xpY2UoMCwyKSxpPUlhW3JdO3JldHVybiBpPT09dm9pZCAwfHxpLmJiYW5fcmVnZXhwPT09dm9pZCAwfHxpLmJiYW5fcmVnZXhwPT09bnVsbHx8aS5jaGFycz09PXZvaWQgMD8hMTppLmNoYXJzPT09dC5sZW5ndGgmJmEudGVzdCh0LnNsaWNlKDIsNCkpJiZWbzEodC5zbGljZSg0KSxyKSYmdEZ0KHQpJiYoZS5hbGxvd1FSSUJBTnx8IWVGdCh0KSl9dmFyIGxyOyhmdW5jdGlvbih0KXt0W3QuTm9JQkFOUHJvdmlkZWQ9MF09Ik5vSUJBTlByb3ZpZGVkIix0W3QuTm9JQkFOQ291bnRyeT0xXT0iTm9JQkFOQ291bnRyeSIsdFt0Lldyb25nQkJBTkxlbmd0aD0yXT0iV3JvbmdCQkFOTGVuZ3RoIix0W3QuV3JvbmdCQkFORm9ybWF0PTNdPSJXcm9uZ0JCQU5Gb3JtYXQiLHRbdC5DaGVja3N1bU5vdE51bWJlcj00XT0iQ2hlY2tzdW1Ob3ROdW1iZXIiLHRbdC5Xcm9uZ0lCQU5DaGVja3N1bT01XT0iV3JvbmdJQkFOQ2hlY2tzdW0iLHRbdC5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW09Nl09Ildyb25nQWNjb3VudEJhbmtCcmFuY2hDaGVja3N1bSIsdFt0LlFSSUJBTk5vdEFsbG93ZWQ9N109IlFSSUJBTk5vdEFsbG93ZWQifSkobHJ8fChscj17fSkpO2Z1bmN0aW9uIHdGYSh0LGUpe2U9PT12b2lkIDAmJihlPXthbGxvd1FSSUJBTjohMH0pO3ZhciBhPXtlcnJvckNvZGVzOltdLHZhbGlkOiEwfTtpZih0IT1udWxsJiZ0IT09IiIpe3ZhciByPUlhW3Quc2xpY2UoMCwyKV07aWYoIXJ8fCEoci5iYmFuX3JlZ2V4cHx8ci5jaGFycykpcmV0dXJuIGEudmFsaWQ9ITEsYS5lcnJvckNvZGVzLnB1c2gobHIuTm9JQkFOQ291bnRyeSksYTtyJiZyLmNoYXJzJiZyLmNoYXJzIT09dC5sZW5ndGgmJihhLnZhbGlkPSExLGEuZXJyb3JDb2Rlcy5wdXNoKGxyLldyb25nQkJBTkxlbmd0aCkpLHImJnIuYmJhbl9yZWdleHAmJiFyRWUodC5zbGljZSg0KSxyLmJiYW5fcmVnZXhwKSYmKGEudmFsaWQ9ITEsYS5lcnJvckNvZGVzLnB1c2gobHIuV3JvbmdCQkFORm9ybWF0KSksciYmci5iYmFuX3ZhbGlkYXRpb25fZnVuYyYmIXIuYmJhbl92YWxpZGF0aW9uX2Z1bmModC5zbGljZSg0KSkmJihhLnZhbGlkPSExLGEuZXJyb3JDb2Rlcy5wdXNoKGxyLldyb25nQWNjb3VudEJhbmtCcmFuY2hDaGVja3N1bSkpO3ZhciBpPW5ldyBSZWdFeHAoIl5bMC05XXsyfSQiLCIiKTtpLnRlc3QodC5zbGljZSgyLDQpKXx8KGEudmFsaWQ9ITEsYS5lcnJvckNvZGVzLnB1c2gobHIuQ2hlY2tzdW1Ob3ROdW1iZXIpKSwoYS5lcnJvckNvZGVzLmluZGV4T2YobHIuV3JvbmdCQkFORm9ybWF0KSE9PS0xfHwhdEZ0KHQpKSYmKGEudmFsaWQ9ITEsYS5lcnJvckNvZGVzLnB1c2gobHIuV3JvbmdJQkFOQ2hlY2tzdW0pKSwhZS5hbGxvd1FSSUJBTiYmZUZ0KHQpJiYoYS52YWxpZD0hMSxhLmVycm9yQ29kZXMucHVzaChsci5RUklCQU5Ob3RBbGxvd2VkKSl9ZWxzZSBhLnZhbGlkPSExLGEuZXJyb3JDb2Rlcy5wdXNoKGxyLk5vSUJBTlByb3ZpZGVkKTtyZXR1cm4gYX1mdW5jdGlvbiBWbzEodCxlKXtpZih0PT1udWxsfHxlPT09dm9pZCAwfHxlPT09bnVsbClyZXR1cm4hMTt2YXIgYT1JYVtlXTtyZXR1cm4gYT09bnVsbHx8YS5iYmFuX3JlZ2V4cD09PXZvaWQgMHx8YS5iYmFuX3JlZ2V4cD09PW51bGx8fGEuY2hhcnM9PT12b2lkIDB8fGEuY2hhcnM9PT1udWxsPyExOmEuY2hhcnMtND09PXQubGVuZ3RoJiZyRWUodCxhLmJiYW5fcmVnZXhwKT9hLmJiYW5fdmFsaWRhdGlvbl9mdW5jP2EuYmJhbl92YWxpZGF0aW9uX2Z1bmModC5yZXBsYWNlKC9bXHMuXSsvZywiIikpOiEwOiExfWZ1bmN0aW9uIE1GYSh0KXtpZih0IT1udWxsKXt2YXIgZT1JYVt0XTtpZihlIT09dm9pZCAwKXJldHVybiBlLlNFUEE/ZS5TRVBBOiExfXJldHVybiExfWZ1bmN0aW9uIGVGdCh0KXtpZih0PT1udWxsKXJldHVybiExO3ZhciBlPXQuc2xpY2UoMCwyKSxhPVsiTEkiLCJDSCJdO2lmKCFhLmluY2x1ZGVzKGUpKXJldHVybiExO3ZhciByPW5ldyBSZWdFeHAoIl4zWzAtMV17MX1bMC05XXszfSQiLCIiKTtyZXR1cm4gci50ZXN0KHQuc2xpY2UoNCw5KSl9ZnVuY3Rpb24gekZhKHQpe3ZhciBlPWlFZSh0LmJiYW4pfHwiIjtpZih0LmNvdW50cnlDb2RlPT09bnVsbHx8dC5jb3VudHJ5Q29kZT09PXZvaWQgMClyZXR1cm4gbnVsbDt2YXIgYT1JYVt0LmNvdW50cnlDb2RlXTtpZihlIT09IiImJmEhPT12b2lkIDAmJmEuY2hhcnMmJmEuY2hhcnMhPT1udWxsJiZhLmNoYXJzPT09ZS5sZW5ndGgrNCYmYS5iYmFuX3JlZ2V4cCYmYS5iYmFuX3JlZ2V4cCE9PW51bGwmJnJFZShlLGEuYmJhbl9yZWdleHApKXt2YXIgcj1VbzEodC5jb3VudHJ5Q29kZSsiMDAiK2UpO3JldHVybiB0LmNvdW50cnlDb2RlKygiMCIrKDk4LXIpKS5zbGljZSgtMikrZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBrRmEodCl7dmFyIGU9e30sYT1pRWUodCk7aWYoZS5pYmFuPWF8fHQsYSYmb0VlKGEpKXtlLmJiYW49YS5zbGljZSg0KSxlLmNvdW50cnlDb2RlPWEuc2xpY2UoMCwyKSxlLnZhbGlkPSEwO3ZhciByPUlhW2UuY291bnRyeUNvZGVdO2lmKHIuYWNjb3VudF9pbmRlbnRpZmllcil7dmFyIGk9ci5hY2NvdW50X2luZGVudGlmaWVyLnNwbGl0KCItIiksbz1wYXJzZUludChpWzBdKSxzPXBhcnNlSW50KGlbMV0pO2UuYWNjb3VudE51bWJlcj1lLmliYW4uc2xpY2UobyxzKzEpfWlmKHIuYmFua19pZGVudGlmaWVyKXt2YXIgaT1yLmJhbmtfaWRlbnRpZmllci5zcGxpdCgiLSIpLG89cGFyc2VJbnQoaVswXSkscz1wYXJzZUludChpWzFdKTtlLmJhbmtJZGVudGlmaWVyPWUuYmJhbi5zbGljZShvLHMrMSl9aWYoci5icmFuY2hfaW5kZW50aWZpZXIpe3ZhciBpPXIuYnJhbmNoX2luZGVudGlmaWVyLnNwbGl0KCItIiksbz1wYXJzZUludChpWzBdKSxzPXBhcnNlSW50KGlbMV0pO2UuYnJhbmNoSWRlbnRpZmllcj1lLmJiYW4uc2xpY2UobyxzKzEpfX1lbHNlIGUudmFsaWQ9ITE7cmV0dXJuIGV9ZnVuY3Rpb24gckVlKHQsZSl7dmFyIGE9bmV3IFJlZ0V4cChlLCIiKTtyZXR1cm4gYS50ZXN0KHQpfWZ1bmN0aW9uIGlFZSh0KXtyZXR1cm4gdHlwZW9mIHQhPSJzdHJpbmciP251bGw6dC5yZXBsYWNlKC9bLVwgXS9nLCIiKS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIHNFZSh0LGUpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIilyZXR1cm4gbnVsbDtlPT1udWxsJiYoZT0iICIpO3ZhciBhPWlFZSh0KTtyZXR1cm4gYT09PW51bGw/bnVsbDphLnJlcGxhY2UoLyguezR9KSg/ISQpL2csIiQxIitlKX1mdW5jdGlvbiB0RnQodCl7dmFyIGU9dC5zbGljZSgwLDIpLGE9cGFyc2VJbnQodC5zbGljZSgyLDQpLDEwKSxyPXQuc2xpY2UoNCksaT1hRnQoIiIuY29uY2F0KHIpLmNvbmNhdChlLCIwMCIpKSxvPUtVKGkpO3JldHVybiA5OC1vPT09YX1mdW5jdGlvbiBhRnQodCl7cmV0dXJuIHQuc3BsaXQoIiIpLm1hcChmdW5jdGlvbihlKXt2YXIgYT1lLmNoYXJDb2RlQXQoMCk7cmV0dXJuIGE+PTY1PyhhLTU1KS50b1N0cmluZygpOmV9KS5qb2luKCIiKX1mdW5jdGlvbiBVbzEodCl7cmV0dXJuIEtVKGFGdCh0LnNsaWNlKDQpK3Quc2xpY2UoMCw0KSkpfWZ1bmN0aW9uIFNGYSgpe3ZhciB0PXt9O2Zvcih2YXIgZSBpbiBJYSl7dmFyIGE9SWFbZV07dFtlXT17Y2hhcnM6YS5jaGFyc3x8bnVsbCxiYmFuX3JlZ2V4cDphLmJiYW5fcmVnZXhwfHxudWxsLElCQU5SZWdpc3RyeTphLklCQU5SZWdpc3RyeXx8ITEsU0VQQTphLlNFUEF8fCExfX1yZXR1cm4gdH1mdW5jdGlvbiBqbzEodCl7aWYoIXQpcmV0dXJuITE7dmFyIGU9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKSxhPUlhW3QudG9VcHBlckNhc2UoKS5zbGljZSg0LDYpXTtyZXR1cm4gZS50ZXN0KHQpJiZhIT09dm9pZCAwfXZhciB4STsoZnVuY3Rpb24odCl7dFt0Lk5vQklDUHJvdmlkZWQ9MF09Ik5vQklDUHJvdmlkZWQiLHRbdC5Ob0JJQ0NvdW50cnk9MV09Ik5vQklDQ291bnRyeSIsdFt0Lldyb25nQklDRm9ybWF0PTJdPSJXcm9uZ0JJQ0Zvcm1hdCJ9KSh4SXx8KHhJPXt9KSk7ZnVuY3Rpb24gQ0ZhKHQpe3ZhciBlPXtlcnJvckNvZGVzOltdLHZhbGlkOiEwfTtpZih0IT1udWxsJiZ0IT09IiIpe3ZhciBhPUlhW3QudG9VcHBlckNhc2UoKS5zbGljZSg0LDYpXTtpZihhPT09dm9pZCAwKWUudmFsaWQ9ITEsZS5lcnJvckNvZGVzLnB1c2goeEkuTm9CSUNDb3VudHJ5KTtlbHNle3ZhciByPW5ldyBSZWdFeHAoIl5bYS16QS1aXXs2fVthLXpBLVowLTldezJ9KFthLXpBLVowLTldezN9KT8kIiwiIik7ci50ZXN0KHQpfHwoZS52YWxpZD0hMSxlLmVycm9yQ29kZXMucHVzaCh4SS5Xcm9uZ0JJQ0Zvcm1hdCkpfX1lbHNlIGUudmFsaWQ9ITEsZS5lcnJvckNvZGVzLnB1c2goeEkuTm9CSUNQcm92aWRlZCk7cmV0dXJuIGV9ZnVuY3Rpb24gTEZhKHQpe3ZhciBlPXt9LGE9dC50b1VwcGVyQ2FzZSgpO3JldHVybiBqbzEoYSk/KGUuYmFua0NvZGU9YS5zbGljZSgwLDQpLGUuY291bnRyeUNvZGU9YS5zbGljZSg0LDYpLGUubG9jYXRpb25Db2RlPWEuc2xpY2UoNiw4KSxlLnRlc3RCSUM9ZS5sb2NhdGlvbkNvZGVbMV09PT0iMCIsZS5icmFuY2hDb2RlPWEubGVuZ3RoPjg/YS5zbGljZSg4KTpudWxsLGUudmFsaWQ9ITApOmUudmFsaWQ9ITEsZX12YXIgV28xPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bNSw0LDMsMiw3LDYsNSw0LDMsMl0sYT10LnJlcGxhY2UoL1tccy5dKy9nLCIiKSxyPXBhcnNlSW50KGEuY2hhckF0KDEwKSwxMCksaT1hLnN1YnN0cmluZygwLDEwKSxvPTAscz0wO3M8MTA7cysrKW8rPXBhcnNlSW50KGkuY2hhckF0KHMpLDEwKSplW3NdO3ZhciBsPW8lMTE7cmV0dXJuIHI9PT0obD09PTA/MDoxMS1sKX0sR28xPWZ1bmN0aW9uKHQpe3ZhciBlPXQucmVwbGFjZSgvW1xzLl0rL2csIiIpLGE9cGFyc2VJbnQoZS5zdWJzdHJpbmcoMCxlLmxlbmd0aC0yKSwxMCkscj1wYXJzZUludChlLnN1YnN0cmluZyhlLmxlbmd0aC0yLGUubGVuZ3RoKSwxMCksaT1hJTk3PT09MD85NzphJTk3O3JldHVybiBpPT09cn0sS1U9ZnVuY3Rpb24odCl7Zm9yKDt0Lmxlbmd0aD4yOyl7dmFyIGU9dC5zbGljZSgwLDYpLGE9cGFyc2VJbnQoZSwxMCk7aWYoaXNOYU4oYSkpcmV0dXJuIE5hTjt0PWElOTcrdC5zbGljZShlLmxlbmd0aCl9cmV0dXJuIHBhcnNlSW50KHQsMTApJTk3fSxmNT1mdW5jdGlvbih0KXt2YXIgZT10LnJlcGxhY2UoL1tccy5dKy9nLCIiKSxhPUtVKGUpO3JldHVybiBhPT09MX0sWW8xPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bMyw5LDcsMSwzLDksN10sYT1wYXJzZUludCh0LmNoYXJBdCg3KSwxMCkscj10LnN1YnN0cmluZygwLDcpLGk9MCxvPTA7bzw3O28rKylpKz1wYXJzZUludChyLmNoYXJBdChvKSwxMCkqZVtvXTt2YXIgcz1pJTEwO3JldHVybiBhPT09KHM9PT0wPzA6MTAtcyl9LFpvMT1mdW5jdGlvbih0KXtmb3IodmFyIGU9WzQsOCw1LDEwLDksNywzLDZdLGE9WzEsMiw0LDgsNSwxMCw5LDcsMyw2XSxyPXBhcnNlSW50KHQuY2hhckF0KDgpLDEwKSxpPXBhcnNlSW50KHQuY2hhckF0KDkpLDEwKSxvPXQuc3Vic3RyaW5nKDAsOCkscz10LnN1YnN0cmluZygxMCwyMCksbD0wLGY9MDtmPDg7ZisrKWwrPXBhcnNlSW50KG8uY2hhckF0KGYpLDEwKSplW2ZdO3ZhciBjPWwlMTE7aWYociE9PShjPT09MD8wOmM9PT0xPzE6MTEtYykpcmV0dXJuITE7bD0wO2Zvcih2YXIgZj0wO2Y8MTA7ZisrKWwrPXBhcnNlSW50KHMuY2hhckF0KGYpLDEwKSphW2ZdO3JldHVybiBjPWwlMTEsaT09PShjPT09MD8wOmM9PT0xPzE6MTEtYyl9LHJGdD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgYT0xMCxyPTA7cjx0Lmxlbmd0aDtyKyspYSs9cGFyc2VJbnQodC5jaGFyQXQociksMTApLGElMTAhPT0wJiYoYT1hJTEwKSxhPWEqMixhPWElMTE7cmV0dXJuIGU9PT0oMTEtYT09PTEwPzA6MTEtYSl9LFhvMT1mdW5jdGlvbih0KXt2YXIgZT1wYXJzZUludCh0LmNoYXJBdCg2KSwxMCksYT1wYXJzZUludCh0LmNoYXJBdCgxNiksMTApLHI9dC5zdWJzdHJpbmcoMCw2KSxpPXQuc3Vic3RyaW5nKDcsMTYpO3JldHVybiByRnQocixlKSYmckZ0KGksYSl9LGlGdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9WzEwLDUsOCw0LDIsMV0sYT1bNiwzLDcsOSwxMCw1LDgsNCwyLDFdLHI9cGFyc2VJbnQodC5jaGFyQXQoOSksMTApLGk9cGFyc2VJbnQodC5jaGFyQXQoMTkpLDEwKSxvPXQuc3Vic3RyaW5nKDQsOSkscz10LnN1YnN0cmluZygxMCwxOSksbD0wLGY9MDtmPG8ubGVuZ3RoO2YrKylsKz1wYXJzZUludChvLmNoYXJBdChmKSwxMCkqZVtmXTt2YXIgYz1sJTExO2lmKHIhPT0oYz09PTA/MDpjPT09MT8xOjExLWMpKXJldHVybiExO2w9MDtmb3IodmFyIGY9MDtmPHMubGVuZ3RoO2YrKylsKz1wYXJzZUludChzLmNoYXJBdChmKSwxMCkqYVtmXTtyZXR1cm4gYz1sJTExLGk9PT0oYz09PTA/MDpjPT09MT8xOjExLWMpfSxRbzE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVs3LDEsMyw3LDEsMyw3LDEsMyw3LDEsMyw3XSxhPXBhcnNlSW50KHQuY2hhckF0KDE1KSwxMCkscj10LnN1YnN0cmluZygyLDE1KSxpPTAsbz0wO288ci5sZW5ndGg7bysrKWkrPXBhcnNlSW50KHIuY2hhckF0KG8pLDEwKSplW29dO3ZhciBzPWklMTA7cmV0dXJuIGE9PT0ocz09PTA/MDoxMC1zKX0sb0Z0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LnJlcGxhY2UoL1tccy5dKy9nLCIiKSxhPUFycmF5LmZyb20oZSkscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1hW3JdLmNoYXJDb2RlQXQoMCk7aWYoaT49NjUpc3dpdGNoKGkpe2Nhc2UgNjU6Y2FzZSA3NDphW3JdPSIxIjticmVhaztjYXNlIDY2OmNhc2UgNzU6Y2FzZSA4MzphW3JdPSIyIjticmVhaztjYXNlIDY3OmNhc2UgNzY6Y2FzZSA4NDphW3JdPSIzIjticmVhaztjYXNlIDY4OmNhc2UgNzc6Y2FzZSA4NTphW3JdPSI0IjticmVhaztjYXNlIDY5OmNhc2UgNzg6Y2FzZSA4NjphW3JdPSI1IjticmVhaztjYXNlIDcwOmNhc2UgNzk6Y2FzZSA4NzphW3JdPSI2IjticmVhaztjYXNlIDcxOmNhc2UgODA6Y2FzZSA4ODphW3JdPSI3IjticmVhaztjYXNlIDcyOmNhc2UgODE6Y2FzZSA4OTphW3JdPSI4IjticmVhaztjYXNlIDczOmNhc2UgODI6Y2FzZSA5MDphW3JdPSI5IjticmVha319dmFyIG89S1UoYS5qb2luKCIiKSk7cmV0dXJuIG89PT0wfSxLbzE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVs5LDcsMywxLDksNywzLDEsOSw3LDMsMSw5LDcsM10sYT1wYXJzZUludCh0LmNoYXJBdCg3KSwxMCkscj10LnN1YnN0cmluZygwLDcpLGk9MCxvPTA7bzxyLmxlbmd0aDtvKyspaSs9cGFyc2VJbnQoci5jaGFyQXQobyksMTApKmVbb107dmFyIHM9aSUxMDtpZihhIT09KHM9PT0wPzA6MTAtcykpcmV0dXJuITE7aWYoaT0wLHQuZW5kc1dpdGgoIjAwMDAwMDAwIikpe2Zvcih2YXIgbD10LnN1YnN0cmluZyg4LDE1KSxmPXBhcnNlSW50KHQuY2hhckF0KDE1KSwxMCksbz0wO288bC5sZW5ndGg7bysrKWkrPXBhcnNlSW50KGwuY2hhckF0KG8pLDEwKSplW29dO3ZhciBjPWklMTA7cmV0dXJuIGY9PT0oYz09PTA/MDoxMC1jKX1lbHNle2Zvcih2YXIgbD10LnN1YnN0cmluZyg4LDIzKSxmPXBhcnNlSW50KHQuY2hhckF0KDIzKSwxMCksbz0wO288bC5sZW5ndGg7bysrKWkrPXBhcnNlSW50KGwuY2hhckF0KG8pLDEwKSplW29dO3ZhciB1PWklMTA7cmV0dXJuIGY9PT0odT09PTA/MDoxMC11KX19LFRGYT1mdW5jdGlvbih0LGUpe3JldHVybiB0eXBlb2YgSWFbdF0+InUiPyExOihJYVt0XS5iYmFuX3ZhbGlkYXRpb25fZnVuYz1lLCEwKX0sSWE9e0FEOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezh9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTI0In0sQUU6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17M31bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjctMjMifSxBRjp7fSxBRzp7fSxBSTp7fSxBTDp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXs4fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNyIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTI4In0sQU06e30sQU86e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCJ9LEFROnt9LEFSOnt9LEFTOnt9LEFUOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sQVU6e30sQVc6e30sQVg6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxBWjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yOCJ9LEJBOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmY1LElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIifSxCQjp7fSxCRDp7fSxCRTp7Y2hhcnM6MTYsYmJhbl9yZWdleHA6Il5bMC05XXsxMn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpHbzEsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMTYifSxCRjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezIyfSQifSxCRzp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezZ9W0EtWjAtOV17OH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMifSxCSDp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMiJ9LEJJOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQiLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjcifSxCSjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezIyfSQifSxCTDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQifSxCTTp7fSxCTjp7fSxCTzp7fSxCUTp7fSxCUjp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXsyM31bQS1aXXsxfVtBLVowLTldezF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiOC0xMiIsYmFua19pZGVudGlmaWVyOiIwLTciLGFjY291bnRfaW5kZW50aWZpZXI6IjE3LTI5In0sQlM6e30sQlQ6e30sQlY6e30sQlc6e30sQlk6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXs0fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LEJaOnt9LENBOnt9LENDOnt9LENEOnt9LENGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxDRzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sQ0g6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeWzAtOV17NX1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LENJOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezF9WzAtOV17MjN9JCJ9LENLOnt9LENMOnt9LENNOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxDTjp7fSxDTzp7fSxDUjp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjIifSxDVTp7fSxDVjp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIn0sQ1c6e30sQ1g6e30sQ1k6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17OH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNyIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjEyLTI4In0sQ1o6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6aUZ0LElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sREU6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTciLGFjY291bnRfaW5kZW50aWZpZXI6IjEzLTIyIn0sREo6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCIsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00IixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNyJ9LERLOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE4In0sRE06e30sRE86e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjgifSxEWjp7Y2hhcnM6MjYsYmJhbl9yZWdleHA6Il5bMC05XXsyMn0kIn0sRUM6e30sRUU6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6UW8xLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIwIn0sRUc6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeWzAtOV17MjV9IixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNy0yOSJ9LEVIOnt9LEVSOnt9LEVTOntjaGFyczoyNCxiYmFuX3ZhbGlkYXRpb25fZnVuYzpabzEsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI0In0sRVQ6e30sRkk6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMCJ9LEZKOnt9LEZLOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MTJ9JCIsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjYtMTgifSxGTTp7fSxGTzp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTgifSxGUjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOm9GdCxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCIsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI0In0sR0E6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LEdCOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTkiLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sR0Q6e30sR0U6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjYtMjIifSxHRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sR0c6e30sR0g6e30sR0k6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxNX0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMyJ9LEdMOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xOCJ9LEdNOnt9LEdOOnt9LEdQOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxHUTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sR1I6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17N31bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNiIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjctMjcifSxHUzp7fSxHVDp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjgifSxHVTp7fSxHVzp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezE5fSQifSxHWTp7fSxISzp7fSxITTp7fSxITjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQifSxIUjp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXsxN30kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpYbzEsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTYifSxIVDp7fSxIVTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXsyNH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpLbzEsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTYiLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sSUQ6e30sSUU6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17NH1bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtOSIsYmFua19pZGVudGlmaWVyOiIwLTMifSxJTDp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTUiLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sSU06e30sSU46e30sSU86e30sSVE6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxNX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTYiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxMS0yMyJ9LElSOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQifSxJUzp7Y2hhcnM6MjYsYmJhbl9yZWdleHA6Il5bMC05XXsyMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItMyIsYmFua19pZGVudGlmaWVyOiIwLTEifSxJVDp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bQS1aXXsxfVswLTldezEwfVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi0xMCIsYmFua19pZGVudGlmaWVyOiIxLTUiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjcifSxKRTp7fSxKTTp7fSxKTzp7Y2hhcnM6MzAsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjQtNyJ9LEpQOnt9LEtFOnt9LEtHOnt9LEtIOnt9LEtJOnt9LEtNOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxLTjp7fSxLUDp7fSxLUjp7fSxLVzp7Y2hhcnM6MzAsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezIyfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMjAtMzAifSxLWTp7fSxLWjp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEzfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yMCJ9LExBOnt9LExCOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezR9W0EtWjAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yOCJ9LExDOntjaGFyczozMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTMyIn0sTEk6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeWzAtOV17NX1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LExLOnt9LExSOnt9LExTOnt9LExUOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sTFU6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17M31bQS1aMC05XXsxM30kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LExWOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTN9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMjEifSxMWTp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIzLTUiLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIxMC0yNSJ9LE1BOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQifSxNQzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOm9GdCxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQifSxNRDp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVtBLVowLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0yNCJ9LE1FOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmY1LElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yMiJ9LE1GOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxNRzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sTUg6e30sTUs6e2NoYXJzOjE5LGJiYW5fcmVnZXhwOiJeWzAtOV17M31bQS1aMC05XXsxMH1bMC05XXsyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmY1LElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LE1MOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LE1NOnt9LE1OOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMCJ9LE1POnt9LE1QOnt9LE1ROntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxNUjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00IixhY2NvdW50X2luZGVudGlmaWVyOiI0LTI3In0sTVM6e30sTVQ6e2NoYXJzOjMxLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXs1fVtBLVowLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC04IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTUtMzEifSxNVTp7Y2hhcnM6MzAsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezE5fVtBLVpdezN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi03IixiYW5rX2lkZW50aWZpZXI6IjAtNSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0zMCJ9LE1WOnt9LE1XOnt9LE1YOnt9LE1ZOnt9LE1aOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQifSxOQTp7fSxOQzp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sTkU6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsyMn0kIn0sTkY6e30sTkc6e30sTkk6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH0kIixiYW5rX2lkZW50aWZpZXI6IjAtMyIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjgifSxOTDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezEwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTE4In0sTk86e2NoYXJzOjE1LGJiYW5fcmVnZXhwOiJeWzAtOV17MTF9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6V28xLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE1In0sTlA6e30sTlI6e30sTlU6e30sTlo6e30sT006e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17M31bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMSxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LFBBOnt9LFBFOnt9LFBGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxQRzp7fSxQSDp7fSxQSzp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LFBMOntjaGFyczoyOCxiYmFuX3ZhbGlkYXRpb25fZnVuYzpZbzEsYmJhbl9yZWdleHA6Il5bMC05XXsyNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMi0yOCJ9LFBNOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxQTjp7fSxQUjp7fSxQUzp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTctMjkifSxQVDp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpmNSxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LFBXOnt9LFBZOnt9LFFBOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTI5In0sUkU6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFJPOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjAtMjQifSxSUzp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpmNSxJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTIifSxSVTp7Y2hhcnM6MzMsYmJhbl9yZWdleHA6Il5bMC05XXsxNH1bQS1aMC05XXsxNX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI5LTEzIixiYW5rX2lkZW50aWZpZXI6IjAtOCIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTMtMzMifSxSVzp7fSxTQTp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyfVtBLVowLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjQifSxTQjp7fSxTQzp7Y2hhcnM6MzEsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfVtBLVpdezN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi03IixiYW5rX2lkZW50aWZpZXI6IjAtNSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxTRDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjYtMTgifSxTRTp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LFNHOnt9LFNIOnt9LFNJOntjaGFyczoxOSxiYmFuX3JlZ2V4cDoiXlswLTldezE1fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmY1LElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi00IixiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiOS0xNiJ9LFNKOnt9LFNLOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmlGdCxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMH0sU0w6e30sU006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeW0EtWl17MX1bMC05XXsxMH1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjYtMTAifSxTTjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxTTzp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTYiLGFjY291bnRfaW5kZW50aWZpZXI6IjExLTIzIn0sU1I6e30sU1M6e30sU1Q6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03In0sU1Y6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LFNYOnt9LFNZOnt9LFNaOnt9LFRDOnt9LFREOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxURjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sVEc6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsyMn0kIn0sVEg6e30sVEo6e30sVEs6e30sVEw6e2NoYXJzOjIzLGJiYW5fcmVnZXhwOiJeWzAtOV17MTl9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjMifSxUTTp7fSxUTjp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjQifSxUTzp7fSxUUjp7Y2hhcnM6MjYsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezE3fSQiLElCQU5SZWdpc3RyeTohMH0sVFQ6e30sVFY6e30sVFc6e30sVFo6e30sVUE6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeWzAtOV17Nn1bQS1aMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiMTUtMjkifSxVRzp7fSxVTTp7fSxVUzp7fSxVWTp7fSxVWjp7fSxWQTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0iLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjctMjIifSxWQzp7fSxWRTp7fSxWRzp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI4LTI0In0sVkk6e30sVk46e30sVlU6e30sV0Y6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFdTOnt9LFhLOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yMCJ9LFlFOnt9LFlUOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxaQTp7fSxaTTp7fSxaVzp7fX07ZmUoKTt2YXIgc0Z0PSgpPT5NYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3RlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGF5bWVudC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBJQkFOIElucHV0In0gLnN1YnRpdGxlPSR7IkludGVybmF0aW9uYWwgQmFuayBBY2NvdW50IE51bWJlciB3aXRoIGF1dG9tYXRpYyBmb3JtYXR0aW5nIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAKICAgICAgICAgIC5sYWJlbD0keyJCYW5rIEFjY291bnQgSUJBTiJ9IAogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkVudGVyIHlvdXIgSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAKICAgICAgICAgIC5sYWJlbD0keyJWZXJpZmllZCBJQkFOIn0gCiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBJQkFOIGhhcyBiZWVuIHZlcmlmaWVkIn0KICAgICAgICAgIC52YWx1ZT0keyJERTg5MzcwNDAwNDQwNTMyMDEzMDAwIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQYXltZW50IEluZm9ybWF0aW9uIn0gLnN1YnRpdGxlPSR7IklCQU4gaW5wdXQgd2l0aCBob3Jpem9udGFsIGxheW91dCBmb3IgcGF5bWVudCBmb3JtcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InBheW1lbnQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgSG9sZGVyIn0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAudmFsdWU9JHsiSm9obiBEb2UifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIAogICAgICAgICAgICAubGFiZWw9JHsiSUJBTiJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnZhbHVlPSR7IkdCODJXRVNUMTIzNDU2OTg3NjU0MzIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVmFsaWRhdGlvbiAmIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJSZXF1aXJlZCBmaWVsZHMgYW5kIGRpc2FibGVkIHN0YXRlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWliYW4gCiAgICAgICAgICAubGFiZWw9JHsiUGF5bWVudCBBY2NvdW50In0gCiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVxdWlyZWQgZm9yIHByb2Nlc3NpbmcgcGF5bWVudHMifQogICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWliYW4gCiAgICAgICAgICAubGFiZWw9JHsiTG9ja2VkIElCQU4ifSAKICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIElCQU4gY2Fubm90IGJlIGNoYW5nZWQifQogICAgICAgICAgLnZhbHVlPSR7IkZSMTQyMDA0MTAxMDA1MDUwMDAxM00wMjYwNiJ9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYW5rIFRyYW5zZmVyIEZvcm0ifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZm9ybSBleGFtcGxlIHdpdGggSUJBTiB2YWxpZGF0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlJlY2lwaWVudCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAubGFiZWw9JHsiUmVjaXBpZW50IElCQU4ifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJUcmFuc2ZlciBSZWZlcmVuY2UifSAuZGVzY3JpcHRpb249JHsiT3B0aW9uYWwgcmVmZXJlbmNlIGZvciB0aGUgdHJhbnNmZXIifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkFtb3VudCJ9IC5pbnB1dFR5cGU9JHsibnVtYmVyIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmA7ZmUoKTtTdCgpO0JlKCk7dmFyIEpVPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sUWw9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LG5FZT0oKCk9PntsZXQgdD1bY2UoImRlZXMtaW5wdXQtaWJhbiIpXSxlLGE9W10scixpPVhlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdO3ZhciBiPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgeD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtsZSgpXSxmPVtsZSgpXSxkPVtEKHt0eXBlOlN0cmluZ30pXSxKVSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudGVyZWRTdHJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJlbnRlcmVkU3RyaW5nImluIG0sZ2V0Om09Pm0uZW50ZXJlZFN0cmluZyxzZXQ6KG0sdik9PnttLmVudGVyZWRTdHJpbmc9dn19LG1ldGFkYXRhOnh9LHMsbCksSlUodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRlcmVkSWJhbklzVmFsaWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJlbnRlcmVkSWJhbklzVmFsaWQiaW4gbSxnZXQ6bT0+bS5lbnRlcmVkSWJhbklzVmFsaWQsc2V0OihtLHYpPT57bS5lbnRlcmVkSWJhbklzVmFsaWQ9dn19LG1ldGFkYXRhOnh9LGMsdSksSlUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InZhbHVlImluIG0sZ2V0Om09Pm0udmFsdWUsc2V0OihtLHYpPT57bS52YWx1ZT12fX0sbWV0YWRhdGE6eH0saCxnKSxKVShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTp4fSxudWxsLGEpLGI9cj1lLnZhbHVlLHgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eH0pfXN0YXRpYyBkZW1vPXNGdDtzdGF0aWMgZGVtb0dyb3VwPSJJbnB1dCI7I2U9UWwodGhpcyxzLCIiKTtnZXQgZW50ZXJlZFN0cmluZygpe3JldHVybiB0aGlzLiNlfXNldCBlbnRlcmVkU3RyaW5nKHgpe3RoaXMuI2U9eH0jdD0oUWwodGhpcyxsKSxRbCh0aGlzLGMsITEpKTtnZXQgZW50ZXJlZEliYW5Jc1ZhbGlkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGVudGVyZWRJYmFuSXNWYWxpZCh4KXt0aGlzLiN0PXh9I2E9KFFsKHRoaXMsdSksUWwodGhpcyxoLCIiKSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHZhbHVlKHgpe3RoaXMuI2E9eH1zdGF0aWMgc3R5bGVzPVt4ZSwuLi5YZS5iYXNlU3R5bGVzLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogSUJBTiBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfHwiSUJBTiJ9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiREU4OSAzNzA0IDAwNDQgMDUzMiAwMTMwIDAwIn0KICAgICAgICAgIEBpbnB1dD0ke3g9Pnt0aGlzLnZhbGlkYXRlSWJhbih4KX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKHgpe3N1cGVyLmZpcnN0VXBkYXRlZCh4KTtsZXQgbT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7bSYmbS5jaGFuZ2VTdWJqZWN0JiZtLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCgpPT57dGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9KX1hc3luYyB2YWxpZGF0ZUliYW4oeCl7bGV0IG09eC50YXJnZXQsdj1tPy52YWx1ZTt2PXZ8fCIiLHRoaXMuZW50ZXJlZFN0cmluZyE9PXYmJih0aGlzLmVudGVyZWRTdHJpbmc9c0VlKHYpfHwiIixtJiYobS52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpKSx0aGlzLmVudGVyZWRJYmFuSXNWYWxpZD1vRWUodGhpcy5lbnRlcmVkU3RyaW5nLnJlcGxhY2UoLyAvZywiIikpO2xldCB5PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTt5LnZhbGlkYXRpb25UZXh0PWBJQkFOIGlzIHZhbGlkOiAke3RoaXMuZW50ZXJlZEliYW5Jc1ZhbGlkfWB9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZSh4KXt0aGlzLnZhbHVlPXgsdGhpcy5lbnRlcmVkU3RyaW5nPXNFZSh4KXx8IiJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFFsKHRoaXMsZyl9c3RhdGlje1FsKHIsYSl9fTtyZXR1cm4gYj1yfSkoKTtmZSgpO3ZhciBuRnQ9KCk9Pk1gCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7dGVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgICAgcGFkZGluZzogNDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2V0dGluZ3MtZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5zZXR0aW5ncy1ncmlkIHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NdWx0aS1PcHRpb24gVG9nZ2xlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2VsZWN0IGZyb20gbXVsdGlwbGUgb3B0aW9ucyB3aXRoIGEgc21vb3RoIHNsaWRpbmcgaW5kaWNhdG9yIGFuaW1hdGlvbi48L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgLmxhYmVsPSR7IkRpc3BsYXkgTW9kZSJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIGhvdyBjb250ZW50IGlzIGRpc3BsYXllZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1siTGlzdCBWaWV3IiwiR3JpZCBWaWV3IiwiQ29tcGFjdCJdfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkdyaWQgVmlldyJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAKICAgICAgICA8YnI+PGJyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiVC1TaGlydCBTaXplIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJTZWxlY3QgeW91ciBwcmVmZXJyZWQgc2l6ZSJ9CiAgICAgICAgICAub3B0aW9ucz0ke1siWFMiLCJTIiwiTSIsIkwiLCJYTCIsIlhYTCJdfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik0ifQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Qm9vbGVhbiBUb2dnbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TaW1wbGUgb24vb2ZmIHN3aXRjaGVzIHdpdGggY3VzdG9taXphYmxlIGxhYmVscyBmb3IgY2xlYXJlciBjb250ZXh0LjwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRW5hYmxlIG9yIGRpc2FibGUgcHVzaCBub3RpZmljYXRpb25zIn0KICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7InRydWUifQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgCiAgICAgICAgPGJyPjxicj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgLmxhYmVsPSR7IlRoZW1lIE1vZGUifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlN3aXRjaCBiZXR3ZWVuIGxpZ2h0IGFuZCBkYXJrIHRoZW1lIn0KICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJEYXJrIn0KICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IkxpZ2h0In0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJEYXJrIn0KICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNldHRpbmdzIEdyaWQ8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Db25maWd1cmF0aW9uIG9wdGlvbnMgYXJyYW5nZWQgaW4gYSByZXNwb25zaXZlIGdyaWQgbGF5b3V0LjwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWdyaWQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkF1dG8tU2F2ZSJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IkVuYWJsZWQifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJEaXNhYmxlZCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmFibGVkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJMYW5ndWFnZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbmdsaXNoIiwiR2VybWFuIiwiRnJlbmNoIiwiU3BhbmlzaCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW5nbGlzaCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiUXVhbGl0eSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJMb3ciLCJNZWRpdW0iLCJIaWdoIiwiVWx0cmEiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkhpZ2gifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlByaXZhY3kifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJQcml2YXRlIn0KICAgICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiUHVibGljIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByaXZhdGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdGF0ZXMgJiBGb3JtIEludGVncmF0aW9uPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+RXhhbXBsZXMgb2YgZGlzYWJsZWQgc3RhdGVzIGFuZCBpbnRlZ3JhdGlvbiB3aXRoaW4gZm9ybXMuPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgIC5sYWJlbD0keyJBY2NvdW50IFR5cGUifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgc2V0dGluZyBpcyBsb2NrZWQifQogICAgICAgICAgLm9wdGlvbnM9JHtbIkZyZWUiLCJQcm8iLCJFbnRlcnByaXNlIl19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW50ZXJwcmlzZSJ9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIAogICAgICAgIDxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlByb2plY3QgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJWaXNpYmlsaXR5In0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiUHVibGljIn0KICAgICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiUHJpdmF0ZSJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcml2YXRlIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiTGljZW5zZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJNSVQiLCJBcGFjaGUgMi4wIiwiR1BMIHYzIiwiUHJvcHJpZXRhcnkiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik1JVCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYDtmZSgpO0JlKCk7dmFyIEtsPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0scGE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LGxFZT0oKCk9PntsZXQgdD1bY2UoImRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKV0sZSxhPVtdLHIsaT1YZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXSx2LHk9W10sdz1bXSxFLEM9W10sej1bXTt2YXIgUD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCgpXSxmPVtEKCldLGQ9W0QoKV0sYj1bRCh7dHlwZTpBcnJheX0pXSx2PVtEKCldLEU9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxLbCh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJ0eXBlImluICQsZ2V0OiQ9PiQudHlwZSxzZXQ6KCQsSCk9PnskLnR5cGU9SH19LG1ldGFkYXRhOl99LHMsbCksS2wodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuVHJ1ZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJib29sZWFuVHJ1ZU5hbWUiaW4gJCxnZXQ6JD0+JC5ib29sZWFuVHJ1ZU5hbWUsc2V0OigkLEgpPT57JC5ib29sZWFuVHJ1ZU5hbWU9SH19LG1ldGFkYXRhOl99LGMsdSksS2wodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuRmFsc2VOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iYm9vbGVhbkZhbHNlTmFtZSJpbiAkLGdldDokPT4kLmJvb2xlYW5GYWxzZU5hbWUsc2V0OigkLEgpPT57JC5ib29sZWFuRmFsc2VOYW1lPUh9fSxtZXRhZGF0YTpffSxoLGcpLEtsKHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+Im9wdGlvbnMiaW4gJCxnZXQ6JD0+JC5vcHRpb25zLHNldDooJCxIKT0+eyQub3B0aW9ucz1IfX0sbWV0YWRhdGE6X30seCxtKSxLbCh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4ic2VsZWN0ZWRPcHRpb24iaW4gJCxnZXQ6JD0+JC5zZWxlY3RlZE9wdGlvbixzZXQ6KCQsSCk9PnskLnNlbGVjdGVkT3B0aW9uPUh9fSxtZXRhZGF0YTpffSx5LHcpLEtsKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm9vbFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iYm9vbFZhbHVlImluICQsZ2V0OiQ9PiQuYm9vbFZhbHVlLHNldDooJCxIKT0+eyQuYm9vbFZhbHVlPUh9fSxtZXRhZGF0YTpffSxDLHopLEtsKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksUD1yPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89bkZ0O3N0YXRpYyBkZW1vR3JvdXA9IklucHV0IjsjZT1wYSh0aGlzLHMsIm11bHRpIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShfKXt0aGlzLiNlPV99I3Q9KHBhKHRoaXMsbCkscGEodGhpcyxjLCJ0cnVlIikpO2dldCBib29sZWFuVHJ1ZU5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYm9vbGVhblRydWVOYW1lKF8pe3RoaXMuI3Q9X30jYT0ocGEodGhpcyx1KSxwYSh0aGlzLGgsImZhbHNlIikpO2dldCBib29sZWFuRmFsc2VOYW1lKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJvb2xlYW5GYWxzZU5hbWUoXyl7dGhpcy4jYT1ffSNyPShwYSh0aGlzLGcpLHBhKHRoaXMseCxbXSkpO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG9wdGlvbnMoXyl7dGhpcy4jcj1ffSNpPShwYSh0aGlzLG0pLHBhKHRoaXMseSwiIikpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZE9wdGlvbihfKXt0aGlzLiNpPV99I289KHBhKHRoaXMsdykscGEodGhpcyxDLCExKSk7Z2V0IGJvb2xWYWx1ZSgpe3JldHVybiB0aGlzLiNvfXNldCBib29sVmFsdWUoXyl7dGhpcy4jbz1ffWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKF8pe3RoaXMudHlwZT09PSJib29sZWFuIiYmdHlwZW9mIF89PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPV8/dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5ib29sZWFuRmFsc2VOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb249Xyx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmhhc1VwZGF0ZWQmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2V0SW5kaWNhdG9yKCl9KX1zdGF0aWMgc3R5bGVzPVt4ZSwuLi5YZS5iYXNlU3R5bGVzLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25zIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTsKICAgICAgfQoKICAgICAgLm9wdGlvbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHBhZGRpbmc6IDhweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICB9CgogICAgICAub3B0aW9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxODE4MWIiLCIjZTRlNGU3Iil9OwogICAgICB9CgogICAgICAub3B0aW9uLnNlbGVjdGVkIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuaW5kaWNhdG9yIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDhweCk7CiAgICAgICAgdG9wOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAuaW5kaWNhdG9yLm5vLXRyYW5zaXRpb24gewogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5zZWxlY3Rpb25zIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLm9wdGlvbiB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmluZGljYXRvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMTEzLCAxMTMsIDEyMiwgMC4xNSkiLCJyZ2JhKDExMywgMTEzLCAxMjIsIDAuMTUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0aW9ucyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmRpY2F0b3IiPjwvZGl2PgogICAgICAgICAgJHt0aGlzLm9wdGlvbnMubWFwKF89Pk1gPGRpdiBjbGFzcz0ib3B0aW9uICR7Xz09PXRoaXMuc2VsZWN0ZWRPcHRpb24/InNlbGVjdGVkIjoiIn0iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVNlbGVjdGlvbihfKX0+CiAgICAgICAgICAgICAgICAke199CiAgICAgICAgICAgICAgPC9kaXY+IGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPT09MCYmKHRoaXMub3B0aW9ucz1bdGhpcy5ib29sZWFuVHJ1ZU5hbWV8fCJ0cnVlIix0aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSJdLHRoaXMuc2VsZWN0ZWRPcHRpb258fCh0aGlzLnNlbGVjdGVkT3B0aW9uPXRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIikpLCF0aGlzLnNlbGVjdGVkT3B0aW9uJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPjAmJih0aGlzLnNlbGVjdGVkT3B0aW9uPXRoaXMub3B0aW9uc1swXSl9YXN5bmMgZmlyc3RVcGRhdGVkKF8pe3N1cGVyLmZpcnN0VXBkYXRlZChfKSx0aGlzLnR5cGU9PT0iYm9vbGVhbiImJih0aGlzLm9wdGlvbnM9W3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSIsdGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiXSksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxkb2N1bWVudC5mb250cyYmYXdhaXQgZG9jdW1lbnQuZm9udHMucmVhZHksYXdhaXQgbmV3IFByb21pc2UoJD0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCQpKSx0aGlzLnNldEluZGljYXRvcigpfWFzeW5jIGhhbmRsZVNlbGVjdGlvbihfKXt0aGlzLmRpc2FibGVkfHwodGhpcy5zZWxlY3RlZE9wdGlvbj1fLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5zZXRJbmRpY2F0b3IoKSl9aW5kaWNhdG9ySW5pdGlhbGl6ZWQ9KHBhKHRoaXMseiksITEpO2FzeW5jIHNldEluZGljYXRvcigpe2xldCBfPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5kaWNhdG9yIiksJD10aGlzLm9wdGlvbnMuaW5kZXhPZih0aGlzLnNlbGVjdGVkT3B0aW9uKTtpZigkPT09LTF8fCFfKXtfJiYoXy5zdHlsZS5vcGFjaXR5PSIwIik7cmV0dXJufWxldCBIPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGAub3B0aW9uOm50aC1jaGlsZCgkeyQrMn0pYCk7XyYmSCYmKHRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWR8fChfLmNsYXNzTGlzdC5hZGQoIm5vLXRyYW5zaXRpb24iKSx0aGlzLmluZGljYXRvckluaXRpYWxpemVkPSEwLHNldFRpbWVvdXQoKCk9PntfLmNsYXNzTGlzdC5yZW1vdmUoIm5vLXRyYW5zaXRpb24iKX0sNTApKSxfLnN0eWxlLndpZHRoPWAke0guY2xpZW50V2lkdGh9cHhgLF8uc3R5bGUubGVmdD1gJHtILm9mZnNldExlZnR9cHhgLF8uc3R5bGUub3BhY2l0eT0iMSIpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudHlwZT09PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPT09dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5zZWxlY3RlZE9wdGlvbn1zZXRWYWx1ZShfKXt0aGlzLnR5cGU9PT0iYm9vbGVhbiImJnR5cGVvZiBfPT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj1fP3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSI6dGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiOnRoaXMuc2VsZWN0ZWRPcHRpb249Xyx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmhhc1VwZGF0ZWQmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2V0SW5kaWNhdG9yKCl9KX1zdGF0aWN7cGEocixhKX19O3JldHVybiBQPXJ9KSgpO2ZlKCk7dmFyIGxGdD0oKT0+TWAKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHt0ZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgUGhvbmUgSW5wdXQifSAuc3VidGl0bGU9JHsiQXV0b21hdGljIGZvcm1hdHRpbmcgZm9yIHBob25lIG51bWJlcnMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAKICAgICAgICAgIC5sYWJlbD0keyJQaG9uZSBOdW1iZXIifSAKICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJFbnRlciB5b3VyIHBob25lIG51bWJlciB3aXRoIGNvdW50cnkgY29kZSJ9CiAgICAgICAgICAudmFsdWU9JHsiNTU1MTIzNDU2NyJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAKICAgICAgICAgIC5sYWJlbD0keyJDb250YWN0IFBob25lIn0gCiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVxdWlyZWQgZm9yIGFjY291bnQgdmVyaWZpY2F0aW9uIn0KICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IisxICg1NTUpIDAwMC0wMDAwIn0KICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiUGhvbmUgaW5wdXRzIGFycmFuZ2VkIGhvcml6b250YWxseSJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUgCiAgICAgICAgICAgIC5sYWJlbD0keyJNb2JpbGUifSAKICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyI0MTU1NTUxMjM0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lIAogICAgICAgICAgICAubGFiZWw9JHsiT2ZmaWNlIn0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDgwMCkgNTU1LTAwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVybmF0aW9uYWwgTnVtYmVycyJ9IC5zdWJ0aXRsZT0keyJTdXBwb3J0cyBmb3JtYXR0aW5nIGZvciBudW1iZXJzIHdpdGggY291bnRyeSBjb2RlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXBob25lIAogICAgICAgICAgLmxhYmVsPSR7IkludGVybmF0aW9uYWwgQ29udGFjdCJ9IAogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkF1dG9tYXRpY2FsbHkgZm9ybWF0cyBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgLnZhbHVlPSR7IjQ0MTIzNDU2Nzg5MCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAKICAgICAgICAgIC5sYWJlbD0keyJFbWVyZ2VuY3kgQ29udGFjdCJ9IAogICAgICAgICAgLnZhbHVlPSR7IjkxMSJ9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJQaG9uZSBpbnB1dCBhcyBwYXJ0IG9mIGEgY29udGFjdCBmb3JtIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkZ1bGwgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lIC5sYWJlbD0keyJQaG9uZSBOdW1iZXIifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRW1haWwifSAuaW5wdXRUeXBlPSR7ImVtYWlsIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYDtmZSgpO1N0KCk7QmUoKTt2YXIgZWo9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxKbD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sY0VlPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1pbnB1dC1waG9uZSIpXSxlLGE9W10scixpPVhlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdO3ZhciBiPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgeD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtsZSgpXSxmPVtEKHt0eXBlOlN0cmluZ30pXSxkPVtEKHt0eXBlOlN0cmluZ30pXSxlaih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvcm1hdHRlZFBob25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4iZm9ybWF0dGVkUGhvbmUiaW4gbSxnZXQ6bT0+bS5mb3JtYXR0ZWRQaG9uZSxzZXQ6KG0sdik9PnttLmZvcm1hdHRlZFBob25lPXZ9fSxtZXRhZGF0YTp4fSxzLGwpLGVqKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJ2YWx1ZSJpbiBtLGdldDptPT5tLnZhbHVlLHNldDoobSx2KT0+e20udmFsdWU9dn19LG1ldGFkYXRhOnh9LGMsdSksZWoodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InBsYWNlaG9sZGVyImluIG0sZ2V0Om09Pm0ucGxhY2Vob2xkZXIsc2V0OihtLHYpPT57bS5wbGFjZWhvbGRlcj12fX0sbWV0YWRhdGE6eH0saCxnKSxlaihudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTp4fSxudWxsLGEpLGI9cj1lLnZhbHVlLHgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eH0pfXN0YXRpYyBkZW1vPWxGdDtzdGF0aWMgZGVtb0dyb3VwPSJJbnB1dCI7I2U9SmwodGhpcyxzLCIiKTtnZXQgZm9ybWF0dGVkUGhvbmUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZm9ybWF0dGVkUGhvbmUoeCl7dGhpcy4jZT14fSN0PShKbCh0aGlzLGwpLEpsKHRoaXMsYywiIikpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiN0fXNldCB2YWx1ZSh4KXt0aGlzLiN0PXh9I2E9KEpsKHRoaXMsdSksSmwodGhpcyxoLCIrMSAoNTU1KSAxMjMtNDU2NyIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcGxhY2Vob2xkZXIoeCl7dGhpcy4jYT14fXN0YXRpYyBzdHlsZXM9W3hlLC4uLlhlLmJhc2VTdHlsZXMscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAvKiBQaG9uZSBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLnZhbHVlPSR7dGhpcy5mb3JtYXR0ZWRQaG9uZX0KICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgIEBpbnB1dD0ke3g9PnRoaXMuaGFuZGxlUGhvbmVJbnB1dCh4KX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoeCl7c3VwZXIuZmlyc3RVcGRhdGVkKHgpLHRoaXMudmFsdWUmJih0aGlzLmZvcm1hdHRlZFBob25lPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIodGhpcy52YWx1ZSkpO2xldCBtPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTttJiZtLmNoYW5nZVN1YmplY3QmJm0uY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pfWhhbmRsZVBob25lSW5wdXQoeCl7bGV0IG09eC50YXJnZXQsdj10aGlzLmNsZWFuUGhvbmVOdW1iZXIobS52YWx1ZSkseT10aGlzLmZvcm1hdFBob25lTnVtYmVyKHYpO2lmKG0udmFsdWUhPT15KXtsZXQgdz1tLnNlbGVjdGlvblN0YXJ0fHwwO20udmFsdWU9eTtsZXQgRT10aGlzLmNhbGN1bGF0ZUN1cnNvclBvc2l0aW9uKHYseSx3KTttLnNldFNlbGVjdGlvblJhbmdlKEUsRSl9dGhpcy5mb3JtYXR0ZWRQaG9uZT15LHRoaXMudmFsdWU9dix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1jbGVhblBob25lTnVtYmVyKHgpe3JldHVybiB4LnJlcGxhY2UoL1xEL2csIiIpfWZvcm1hdFBob25lTnVtYmVyKHgpe2xldCBtPXRoaXMuY2xlYW5QaG9uZU51bWJlcih4KTtyZXR1cm4gbS5sZW5ndGg9PT0wPyIiOm0ubGVuZ3RoPD0zP206bS5sZW5ndGg8PTY/YCgke20uc2xpY2UoMCwzKX0pICR7bS5zbGljZSgzKX1gOm0ubGVuZ3RoPD0xMD9gKCR7bS5zbGljZSgwLDMpfSkgJHttLnNsaWNlKDMsNil9LSR7bS5zbGljZSg2KX1gOmArJHttLnNsaWNlKDAsbS5sZW5ndGgtMTApfSAoJHttLnNsaWNlKC0xMCwtNyl9KSAke20uc2xpY2UoLTcsLTQpfS0ke20uc2xpY2UoLTQpfWB9Y2FsY3VsYXRlQ3Vyc29yUG9zaXRpb24oeCxtLHYpe2xldCB5PTA7Zm9yKGxldCB3PTA7dzx2JiZ3PG0ubGVuZ3RoO3crKykvXGQvLnRlc3QobVt3XSl8fHkrKztyZXR1cm4gTWF0aC5taW4odit5LG0ubGVuZ3RoKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKHgpe3RoaXMudmFsdWU9eCx0aGlzLmZvcm1hdHRlZFBob25lPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIoeCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEpsKHRoaXMsZyl9c3RhdGlje0psKHIsYSl9fTtyZXR1cm4gYj1yfSkoKTtmZSgpO3ZhciBjRnQ9KCk9Pk1gCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7dGVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmluZm8tYm94IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2UzZjJmZDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAjMTk3NmQyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAuaW5mby1ib3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMWUzYTVmOwogICAgICAgICAgICBjb2xvcjogIzkwY2FmOTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUeXBlIExpc3QifSAuc3VidGl0bGU9JHsiQWRkIGFuZCByZW1vdmUgaXRlbXMgZnJvbSBhIGxpc3QifT4KICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCB0YWdzIGJ5IHR5cGluZyBhbmQgcHJlc3NpbmcgRW50ZXIifQogICAgICAgICAgLnZhbHVlPSR7WyJqYXZhc2NyaXB0IiwidHlwZXNjcmlwdCIsIndlYi1jb21wb25lbnRzIl19CiAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlRlYW0gTWVtYmVycyJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGVtYWlsIGFkZHJlc3NlcyBvZiB0ZWFtIG1lbWJlcnMifQogICAgICAgICAgLnZhbHVlPSR7WyJhbGljZUBleGFtcGxlLmNvbSIsImJvYkBleGFtcGxlLmNvbSJdfQogICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTa2lsbHMgJiBLZXl3b3JkcyJ9IC5zdWJ0aXRsZT0keyJNYW5hZ2UgbGlzdHMgb2Ygc2tpbGxzIGFuZCBrZXl3b3JkcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAubGFiZWw9JHsiWW91ciBTa2lsbHMifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ikxpc3QgeW91ciBwcm9mZXNzaW9uYWwgc2tpbGxzIn0KICAgICAgICAgIC52YWx1ZT0ke1siSFRNTCIsIkNTUyIsIkphdmFTY3JpcHQiLCJOb2RlLmpzIiwiUmVhY3QiXX0KICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IkNhdGVnb3JpZXMifQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJUZWNobm9sb2d5IiwiRGVzaWduIiwiQnVzaW5lc3MiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJLZXl3b3JkcyJ9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAudmFsdWU9JHtbImlubm92YXRpb24iLCJzdGFydHVwIiwiZ3Jvd3RoIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUmVxdWlyZWQgJiBEaXNhYmxlZCBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGlucHV0IHN0YXRlcyBmb3IgdmFsaWRhdGlvbiJ9PgogICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBEZXBlbmRlbmNpZXMifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ikxpc3QgYWxsIHJlcXVpcmVkIG5wbSBwYWNrYWdlcyJ9CiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke1siQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50IiwiQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyJdfQogICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gVGFncyJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhlc2UgdGFncyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIn0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLnZhbHVlPSR7WyJzeXN0ZW0iLCJwcm90ZWN0ZWQiLCJyZWFkb25seSJdfQogICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJBcnRpY2xlIFB1Ymxpc2hpbmcgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmb3JtIHdpdGggdGFnIG1hbmFnZW1lbnQifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQXJ0aWNsZSBUaXRsZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTdW1tYXJ5In0gCiAgICAgICAgICAgIC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGFydGljbGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIHJlbGV2YW50IHRhZ3MgZm9yIGJldHRlciBkaXNjb3ZlcmFiaWxpdHkifQogICAgICAgICAgICAudmFsdWU9JHtbInR1dG9yaWFsIiwid2ViLWRldmVsb3BtZW50Il19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IkNvLUF1dGhvcnMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGVtYWlsIGFkZHJlc3NlcyBvZiBjby1hdXRob3JzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1ib3giPgogICAgICAgICAgPHN0cm9uZz5UaXA6PC9zdHJvbmc+IFR5cGUgYSB2YWx1ZSBhbmQgcHJlc3MgRW50ZXIgdG8gYWRkIGl0IHRvIHRoZSBsaXN0LiBDbGljayBvbiBhbnkgaXRlbSB0byByZW1vdmUgaXQuCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYDtmZSgpO1N0KCk7QmUoKTt2YXIgZEVlPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sYkk9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LGZFZT0oKCk9PntsZXQgdD1bY2UoImRlZXMtaW5wdXQtdHlwZWxpc3QiKV0sZSxhPVtdLHIsaT1YZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpBcnJheX0pXSxmPVtsZSgpXSxkRWUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InZhbHVlImluIGcsZ2V0Omc9PmcudmFsdWUsc2V0OihnLGIpPT57Zy52YWx1ZT1ifX0sbWV0YWRhdGE6aH0scyxsKSxkRWUodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iaW5wdXRWYWx1ZSJpbiBnLGdldDpnPT5nLmlucHV0VmFsdWUsc2V0OihnLGIpPT57Zy5pbnB1dFZhbHVlPWJ9fSxtZXRhZGF0YTpofSxjLHUpLGRFZShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpofSxudWxsLGEpLGQ9cj1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPWNGdDtzdGF0aWMgZGVtb0dyb3VwPSJJbnB1dCI7I2U9YkkodGhpcyxzLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoaCl7dGhpcy4jZT1ofSN0PShiSSh0aGlzLGwpLGJJKHRoaXMsYywiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlucHV0VmFsdWUoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W3hlLC4uLlhlLmJhc2VTdHlsZXMscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAubWFpbmJveCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzIyMjIyMiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci10b3A6ICR7cC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHtwLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICMyMjIiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAke3AuYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAke3AuYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7cC5iZFRoZW1lKCIwcHggMXB4IDRweCByZ2JhKDAsMCwwLDAuMykiLCJub25lIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICAKICAgICAgLm1haW5ib3g6aG92ZXIgewogICAgICAgIGZpbHRlcjogJHtwLmJkVGhlbWUoImJyaWdodG5lc3MoMC45OCkiLCJicmlnaHRuZXNzKDEuMDUpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFpbmJveDpmb2N1cy13aXRoaW4gewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiIzAwNjlmMiIsIiMwMDg0ZmYiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KCiAgICAgIC50YWdzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLm5vdGFncyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODE4Iil9OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZhZmFmYSIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZThmNWU5IiwiIzJkM2EyZCIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMyZTdkMzIiLCIjODFjNzg0Iil9OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDNweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2M4ZTZjOSIsIiMxYjVlMjAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC50YWc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjYzhlNmM5IiwiIzNkNGYzZCIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgIH0KCiAgICAgIC50YWcgLnJlbW92ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgfQoKICAgICAgLnRhZyAucmVtb3ZlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2M2MjgyOCIsIiNlZjUzNTAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5tYWluYm94IHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRhZ3MgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50YWcgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSBpbnB1dCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWdzIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9fT4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD09PTA/TWA8ZGl2IGNsYXNzPSJub3RhZ3MiPk5vIHRhZ3MgeWV0PC9kaXY+YDp0aGlzLnZhbHVlLm1hcChoPT5NYAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgICAgICAgJHtofQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlbW92ZSIgQGNsaWNrPSR7Zz0+e2cuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVUYWcoaCl9fT7Dlzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlR5cGUsIHByZXNzIEVudGVyIHRvIGFkZCBpdC4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9JHtoPT57dGhpcy5pbnB1dFZhbHVlPWgudGFyZ2V0LnZhbHVlfX0KICAgICAgICAgICAgQGtleWRvd249JHtoPT57aC5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpJiYoaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpKX19CiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAvPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YWRkVGFnKGgpe3RoaXMudmFsdWUuaW5jbHVkZXMoaCl8fCh0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLGhdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9cmVtb3ZlVGFnKGgpe3RoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIoZz0+ZyE9PWgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoaCl7dGhpcy52YWx1ZT1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxiSSh0aGlzLHUpfXN0YXRpY3tiSShyLGEpfX07cmV0dXJuIGQ9cn0pKCk7ZmUoKTt2YXIgZEZ0PSgpPT5NYAogIDxzdHlsZT4KICAgICR7dGVgCiAgICAgIC5kZW1vV3JhcHBlciB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA1JSkiKX07CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7CiAgICAgIH0KICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KICAgICAgLmRlbW8tZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIC50aGVtZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDE2cHg7CiAgICAgICAgcmlnaHQ6IDE2cHg7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgIDxkZWVzLWJ1dHRvbiBjbGFzcz0idGhlbWUtdG9nZ2xlIiBAY2xpY2s9JHsoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiYnJpZ2h0IiksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJkYXJrIil9fT5Ub2dnbGUgVGhlbWU8L2RlZXMtYnV0dG9uPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5CYXNpYyBUYWJsZSB3aXRoIEFjdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5BIHN0YW5kYXJkIHRhYmxlIHdpdGggcm93IGFjdGlvbnMsIGVkaXRhYmxlIGZpZWxkcywgYW5kIGNvbnRleHQgbWVudSBzdXBwb3J0LiBEb3VibGUtY2xpY2sgb24gZGVzY3JpcHRpb25zIHRvIGVkaXQuIEdyaWQgbGluZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJDdXJyZW50IEFjY291bnQgU3RhdGVtZW50IgogICAgICAgICAgaGVhZGluZzI9IkJ1bnEgLSBQYXltZW50IEFjY291bnQgMiAtIEFwcmlsIDIwMjEiCiAgICAgICAgICAuZWRpdGFibGVGaWVsZHM9IiR7WyJkZXNjcmlwdGlvbiJdfSIKICAgICAgICAgIC5kYXRhPSR7W3tkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixkZXNjcmlwdGlvbjoiUHJpbnRpbmcgUGFwZXIgKE9mZmljZSBTdXBwbGllcykgLSBTVEFQTEVTIEJSRU1FTiJ9LHtkYXRlOiIyMDIxLTA0LTAyIixhbW91bnQ6IjE2NS42NSBcdTIwQUMiLGRlc2NyaXB0aW9uOiJMb2dpdGVjaCBNb3VzZSAoSGFyZHdhcmUpIC0gbG9naS5jb20gT25saW5lU2hvcCJ9LHtkYXRlOiIyMDIxLTA0LTAzIixhbW91bnQ6IjI5OTksMDAgXHUyMEFDIixkZXNjcmlwdGlvbjoiTWFjYm9vayBQcm8gMTZpbmNoIChIYXJkd2FyZSkgLSBBcHBsZS5kZSBPbmxpbmVTaG9wIn0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiJ9LHtkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixkZXNjcmlwdGlvbjoiT2ZmaWNlLVN1cHBsaWVzIC0gU1RBUExFUyBCUkVNRU4ifV19CiAgICAgICAgICBkYXRhTmFtZT0idHJhbnNhY3Rpb25zIgogICAgICAgICAgLmRhdGFBY3Rpb25zPSIke1t7bmFtZToidXBsb2FkIixpY29uTmFtZToiYmVsbCIsdXNlVGFibGVCZWhhdmlvdXI6InVwbG9hZCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyB0PT57YWxlcnQodC5pdGVtLmFtb3VudCl9fSx7bmFtZToidmlzaWJpbGl0eSIsaWNvbk5hbWU6ImNvcHkiLHR5cGU6WyJpblJvdyJdLHVzZVRhYmxlQmVoYXZpb3VyOiJwcmV2aWV3IixhY3Rpb25GdW5jOmFzeW5jIHQ9Pnt9fSx7bmFtZToiY3JlYXRlIG5ldyIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsdHlwZTpbImhlYWRlciJdLHVzZVRhYmxlQmVoYXZpb3VyOiJwcmV2aWV3IixhY3Rpb25GdW5jOmFzeW5jIHQ9Pnt9fSx7bmFtZToidG8gZ2FsbGVyeSIsaWNvbk5hbWU6Im1lc3NhZ2UiLHR5cGU6WyJmb290ZXIiXSx1c2VUYWJsZUJlaGF2aW91cjoicHJldmlldyIsYWN0aW9uRnVuYzphc3luYyB0PT57fX0se25hbWU6ImNvcHkiLGljb25OYW1lOiJjb3B5U29saWQiLHR5cGU6WyJjb250ZXh0bWVudSIsImluUm93Il0sYWN0aW9uOmFzeW5jKCk9Pm51bGx9LHtuYW1lOiJlZGl0IChmcm9tIGRlbW8pIixpY29uTmFtZToicGVuVG9TcXVhcmUiLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbjphc3luYygpPT5udWxsfSx7bmFtZToicGFzdGUiLGljb25OYW1lOiJwYXN0ZVNvbGlkIix0eXBlOlsiY29udGV4dG1lbnUiXSxhY3Rpb246YXN5bmMoKT0+bnVsbH0se25hbWU6InByZXZpZXciLHR5cGU6WyJkb3VibGVDbGljayIsImNvbnRleHRtZW51Il0saWNvbk5hbWU6ImV5ZSIsYWN0aW9uRnVuYzphc3luYyB0PT4oYWxlcnQodC5pdGVtLmFtb3VudCksbnVsbCl9XX0iCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBWZXJ0aWNhbCBMaW5lczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVuaGFuY2VkIGNvbHVtbiBzZXBhcmF0aW9uIGZvciBiZXR0ZXIgZGF0YSB0cmFja2luZy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQcm9kdWN0IEludmVudG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJDdXJyZW50IHN0b2NrIGxldmVscyBhY3Jvc3Mgd2FyZWhvdXNlcyIKICAgICAgICAgIC5zaG93VmVydGljYWxMaW5lcz0keyEwfQogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6J01hY0Jvb2sgUHJvIDE2Iicsd2FyZWhvdXNlX2E6IjQ1Iix3YXJlaG91c2VfYjoiMzIiLHdhcmVob3VzZV9jOiIyOCIsdG90YWw6IjEwNSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifSx7cHJvZHVjdDoiaVBob25lIDE1IFBybyIsd2FyZWhvdXNlX2E6IjEyMCIsd2FyZWhvdXNlX2I6Ijg5Iix3YXJlaG91c2VfYzoiMTU2Iix0b3RhbDoiMzY1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9LHtwcm9kdWN0OiJBaXJQb2RzIFBybyIsd2FyZWhvdXNlX2E6IjAiLHdhcmVob3VzZV9iOiIxMiIsd2FyZWhvdXNlX2M6IjUiLHRvdGFsOiIxNyIsc3RhdHVzOiJcdTI2QTAgTG93IFN0b2NrIn0se3Byb2R1Y3Q6ImlQYWQgQWlyIix3YXJlaG91c2VfYToiMjMiLHdhcmVob3VzZV9iOiI0NSIsd2FyZWhvdXNlX2M6IjY3Iix0b3RhbDoiMTM1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJwcm9kdWN0cyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEZ1bGwgR3JpZDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkNvbXBsZXRlIGdyaWQgbGluZXMgZm9yIG1heGltdW0gcmVhZGFiaWxpdHkgYW5kIHN0cnVjdHVyZS48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTZXJ2ZXIgTW9uaXRvcmluZyBEYXNoYm9hcmQiCiAgICAgICAgICBoZWFkaW5nMj0iUmVhbC10aW1lIG1ldHJpY3MgYWNyb3NzIHJlZ2lvbnMiCiAgICAgICAgICAuc2hvd0dyaWQ9JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tzZXJ2ZXI6IkFQSS0xIixyZWdpb246IlVTLUVhc3QiLGNwdToiNDUlIixtZW1vcnk6IjYyJSIsZGlzazoiNzglIixsYXRlbmN5OiIxMm1zIix1cHRpbWU6Ijk5LjklIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiQVBJLTIiLHJlZ2lvbjoiRVUtV2VzdCIsY3B1OiIzOCUiLG1lbW9yeToiNTUlIixkaXNrOiI0NSUiLGxhdGVuY3k6IjI1bXMiLHVwdGltZToiOTkuOCUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJEQi1NYXN0ZXIiLHJlZ2lvbjoiVVMtRWFzdCIsY3B1OiI3MiUiLG1lbW9yeToiODElIixkaXNrOiI5MiUiLGxhdGVuY3k6IjhtcyIsdXB0aW1lOiIxMDAlIixzdGF0dXM6Ilx1ezFGN0UxfSBXYXJuaW5nIn0se3NlcnZlcjoiREItUmVwbGljYSIscmVnaW9uOiJFVS1XZXN0IixjcHU6IjIzJSIsbWVtb3J5OiIzNCUiLGRpc2s6IjQ1JSIsbGF0ZW5jeToiMTVtcyIsdXB0aW1lOiI5OS43JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkNhY2hlLTEiLHJlZ2lvbjoiQVAtU291dGgiLGNwdToiODklIixtZW1vcnk6IjkyJSIsZGlzazoiMTIlIixsYXRlbmN5OiIxMjBtcyIsdXB0aW1lOiI5OC41JSIsc3RhdHVzOiJcdXsxRjUzNH0gQ3JpdGljYWwifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2VydmVycyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6IlNTSCBDb25uZWN0IixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmFzeW5jIHQ9Pntjb25zb2xlLmxvZygiQ29ubmVjdGluZyB0bzoiLHQuaXRlbS5zZXJ2ZXIpfX0se25hbWU6IlZpZXcgTG9ncyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlLXRleHQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzphc3luYyB0PT57Y29uc29sZS5sb2coIlZpZXdpbmcgbG9ncyBmb3I6Iix0Lml0ZW0uc2VydmVyKX19LHtuYW1lOiJSZXN0YXJ0IFNlcnZlciIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoLWN3Iix0eXBlOlsiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmFzeW5jIHQ9Pntjb25zb2xlLmxvZygiUmVzdGFydGluZzoiLHQuaXRlbS5zZXJ2ZXIpfX1dfSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEhvcml6b250YWwgTGluZXMgT25seTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVtcGhhc2lzIG9uIHJvdyBzZXBhcmF0aW9uIHdpdGhvdXQgY29sdW1uIGRpdmlkZXJzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFBlcmZvcm1hbmNlIgogICAgICAgICAgaGVhZGluZzI9IlRvcCBwZXJmb3JtZXJzIHRoaXMgcXVhcnRlciIKICAgICAgICAgIC5zaG93SG9yaXpvbnRhbExpbmVzPSR7ITB9CiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHshMX0KICAgICAgICAgIC5kYXRhPSR7W3tzYWxlc3BlcnNvbjoiRW1pbHkgSm9obnNvbiIscmVnaW9uOiJOb3J0aCBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjQyIixyZXZlbnVlOiIkMS4yTSIscXVvdGFfYWNoaWV2ZW1lbnQ6IjEyOCUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJNaWNoYWVsIENoZW4iLHJlZ2lvbjoiQXNpYSBQYWNpZmljIixkZWFsc19jbG9zZWQ6IjM4IixyZXZlbnVlOiIkOTgwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6IjExNSUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJTYXJhaCBXaWxsaWFtcyIscmVnaW9uOiJFdXJvcGUiLGRlYWxzX2Nsb3NlZDoiMzUiLHJldmVudWU6IiQ4NzVLIixxdW90YV9hY2hpZXZlbWVudDoiMTA4JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246IkRhdmlkIEdhcmNpYSIscmVnaW9uOiJMYXRpbiBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjMxIixyZXZlbnVlOiIkNzUwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6Ijk1JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2FsZXMgcmVwcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TaW1wbGUgVGFibGUgKE5vIEdyaWQpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+Q2xlYW4sIG1pbmltYWwgZGVzaWduIHdpdGhvdXQgZ3JpZCBsaW5lcy4gU2V0IHNob3dHcmlkIHRvIGZhbHNlIHRvIGRpc2FibGUgdGhlIGRlZmF1bHQgZ3JpZC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJUZWFtIE1lbWJlcnMiCiAgICAgICAgICBoZWFkaW5nMj0iRW5naW5lZXJpbmcgRGVwYXJ0bWVudCIKICAgICAgICAgIC5zaG93R3JpZD0keyExfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkxlYWQgRW5naW5lZXIiLGVtYWlsOiJhbGljZUBjb21wYW55LmNvbSIsbG9jYXRpb246IlNhbiBGcmFuY2lzY28iLGpvaW5lZDoiMjAyMC0wMy0xNSJ9LHtuYW1lOiJCb2IgU21pdGgiLHJvbGU6IlNlbmlvciBEZXZlbG9wZXIiLGVtYWlsOiJib2JAY29tcGFueS5jb20iLGxvY2F0aW9uOiJOZXcgWW9yayIsam9pbmVkOiIyMDE5LTA3LTIyIn0se25hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6IkRldk9wcyBFbmdpbmVlciIsZW1haWw6ImNoYXJsaWVAY29tcGFueS5jb20iLGxvY2F0aW9uOiJMb25kb24iLGpvaW5lZDoiMjAyMS0wMS0xMCJ9LHtuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRnJvbnRlbmQgRGV2ZWxvcGVyIixlbWFpbDoiZGlhbmFAY29tcGFueS5jb20iLGxvY2F0aW9uOiJCYXJjZWxvbmEiLGpvaW5lZDoiMjAyMi0wNS0xOCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJ0ZWFtIG1lbWJlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBDdXN0b20gRGlzcGxheSBGdW5jdGlvbjwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlRyYW5zZm9ybSBkYXRhIGZvciBkaXNwbGF5IHVzaW5nIGN1c3RvbSBmb3JtYXR0aW5nLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFJlcG9ydCIKICAgICAgICAgIGhlYWRpbmcyPSJRNCAyMDIzIFBlcmZvcm1hbmNlIgogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6IkVudGVycHJpc2UgTGljZW5zZSIsdW5pdHM6NDUscmV2ZW51ZToyMjVlMyxncm93dGg6LjIzLGZvcmVjYXN0OjI4ZTR9LHtwcm9kdWN0OiJQcm9mZXNzaW9uYWwgTGljZW5zZSIsdW5pdHM6MTI4LHJldmVudWU6MTI4ZTMsZ3Jvd3RoOi4xNSxmb3JlY2FzdDoxNDdlM30se3Byb2R1Y3Q6IlN0YXJ0ZXIgTGljZW5zZSIsdW5pdHM6MzQyLHJldmVudWU6Njg0MDAsZ3Jvd3RoOi40Mixmb3JlY2FzdDo5N2UzfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7dD0+KHtQcm9kdWN0OnQucHJvZHVjdCwiVW5pdHMgU29sZCI6dC51bml0cy50b0xvY2FsZVN0cmluZygpLFJldmVudWU6IiQiK3QucmV2ZW51ZS50b0xvY2FsZVN0cmluZygpLEdyb3d0aDoodC5ncm93dGgqMTAwKS50b0ZpeGVkKDEpKyIlIiwiUTEgMjAyNCBGb3JlY2FzdCI6IiQiK3QuZm9yZWNhc3QudG9Mb2NhbGVTdHJpbmcoKX0pfQogICAgICAgICAgZGF0YU5hbWU9InByb2R1Y3RzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkVtcHR5IFRhYmxlIFN0YXRlPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+SG93IHRoZSB0YWJsZSBsb29rcyB3aGVuIG5vIGRhdGEgaXMgYXZhaWxhYmxlLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9Ik5vIERhdGEgQXZhaWxhYmxlIgogICAgICAgICAgaGVhZGluZzI9IlRoaXMgdGFibGUgaXMgY3VycmVudGx5IGVtcHR5IgogICAgICAgICAgLmRhdGE9JHtbXX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY2hlbWEtRmlyc3QgQ29sdW1ucyAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRlZmluZXMgY29sdW1ucyBleHBsaWNpdGx5IGFuZCByZW5kZXJzIHZpYSBzY2hlbWEuIE5vIGRpc3BsYXlGdW5jdGlvbiBuZWVkZWQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFNjaGVtYS1GaXJzdCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ29sdW1ucyBkZWZpbmUgcmVuZGVyaW5nIGFuZCBvcmRlciIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixyZW5kZXJlcjp0PT5NYDxkZWVzLWJhZGdlPiR7dH08L2RlZXMtYmFkZ2U+YH0se2tleToiam9pbmVkQXQiLGhlYWRlcjoiSm9pbmVkIixyZW5kZXJlcjp0PT5uZXcgRGF0ZSh0KS50b0xvY2FsZURhdGVTdHJpbmcoKX1dfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIixlbWFpbDoiYWxpY2VAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIyLTA4LTAxIn0se25hbWU6IkJvYiIsZW1haWw6ImJvYkBleGFtcGxlLmNvbSIsam9pbmVkQXQ6IjIwMjEtMTItMTEifSx7bmFtZToiQ2Fyb2wiLGVtYWlsOiJjYXJvbEBleGFtcGxlLmNvbSIsam9pbmVkQXQ6IjIwMjMtMDMtMjIifV19CiAgICAgICAgICBkYXRhTmFtZT0idXNlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UGFydGlhbCBTY2hlbWEgKyBBdWdtZW50IChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+UHJvdmlkZXMgb25seSB0aGUgaW1wb3J0YW50IGNvbHVtbnM7IHRoZSByZXN0IGFyZSBtZXJnZWQgaW4gZnJvbSBkaXNwbGF5RnVuY3Rpb24uPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFBhcnRpYWwgKyBBdWdtZW50KSIKICAgICAgICAgIGhlYWRpbmcyPSJNaXNzaW5nIGNvbHVtbnMgYXJlIGRlcml2ZWQiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7dD0+KHtuYW1lOnQubmFtZSxlbWFpbDp0LmVtYWlsLHJvbGU6dC5yb2xlfSl9CiAgICAgICAgICAuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJFcmluIixlbWFpbDoiZXJpbkBleGFtcGxlLmNvbSIscm9sZToiQWRtaW4ifSx7bmFtZToiRmlubiIsZW1haWw6ImZpbm5AZXhhbXBsZS5jb20iLHJvbGU6IlVzZXIifSx7bmFtZToiR2luYSIsZW1haWw6ImdpbmFAZXhhbXBsZS5jb20iLHJvbGU6IlVzZXIifV19CiAgICAgICAgICBkYXRhTmFtZT0idXNlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iIAogICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHt0PT57Y29uc29sZS5sb2coIlNlbGVjdGlvbiBjaGFuZ2VkIix0LmRldGFpbCl9fQogICAgICAgICAgIEBzZWFyY2gtY2hhbmdlZD0ke3Q9PntsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFibGVGaWx0ZXJTZWxlY3REZW1vIik7ZSYmZS5zZXRGaWx0ZXJUZXh0KHQuZGV0YWlsLnZhbHVlKX19CiAgICAgICAgICAgQHNlYXJjaC1zdWJtaXQ9JHt0PT57bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO2UmJmUuc2V0RmlsdGVyVGV4dCh0LmRldGFpbC52YWx1ZSl9fQogICAgICA+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5GaWx0ZXJpbmcgKyBNdWx0aS1TZWxlY3Rpb24gKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5Vc2UgdGhlIHNlYXJjaCBiYXIgdG8gZmlsdGVyIHJvd3M7IHRvZ2dsZSBzZWxlY3Rpb24gdmlhIGNoZWNrYm94ZXMuIENsaWNrIGhlYWRlcnMgdG8gc29ydC48L3A+CiAgICAgICAgPGRlZXMtc2VhcmNoYmFyPjwvZGVlcy1zZWFyY2hiYXI+CiAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMnB4Ij48L2Rpdj4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaWQ9InRhYmxlRmlsdGVyU2VsZWN0RGVtbyIKICAgICAgICAgIGhlYWRpbmcxPSJJbnZlbnRvcnkgKEZpbHRlciArIFNlbGVjdCkiCiAgICAgICAgICBoZWFkaW5nMj0iVHJ5IHR5cGluZyB0byBmaWx0ZXIgYW5kIHNlbGVjdGluZyBtdWx0aXBsZSByb3dzIgogICAgICAgICAgLnNlbGVjdGlvbk1vZGU9JHsibXVsdGkifQogICAgICAgICAgLnJvd0tleT0keyJza3UifQogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToic2t1IixoZWFkZXI6IlNLVSIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InN0b2NrIixoZWFkZXI6IlN0b2NrIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe3NrdToiQS0xMDAiLG5hbWU6IlVTQi1DIENhYmxlIixzdG9jazoxMjB9LHtza3U6IkEtMTAxIixuYW1lOiJXaXJlbGVzcyBNb3VzZSIsc3RvY2s6NTV9LHtza3U6IkEtMTAyIixuYW1lOiJMYXB0b3AgU3RhbmQiLHN0b2NrOjE4fSx7c2t1OiJCLTIwMCIsbmFtZToiS2V5Ym9hcmQgKElTTykiLHN0b2NrOjg5fSx7c2t1OiJCLTIwMSIsbmFtZToiSERNSSBBZGFwdGVyIixzdG9jazowfSx7c2t1OiJDLTMwMCIsbmFtZToiV2ViY2FtIDEwODBwIixzdG9jazo0Mn1dfQogICAgICAgICAgZGF0YU5hbWU9Iml0ZW1zIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkNvbHVtbiBGaWx0ZXJzICsgU3RpY2t5IEhlYWRlciAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlBlci1jb2x1bW4gcXVpY2sgZmlsdGVycyBhbmQgc3RpY2t5IGhlYWRlciB3aXRoIGludGVybmFsIHNjcm9sbC4gVHJ5IGZpbHRlcmluZyB0aGUgTmFtZSBjb2x1bW4uIFVzZXMgLS10YWJsZS1tYXgtaGVpZ2h0IHZhci48L3A+CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgZGVlcy10YWJsZVtzdGlja3ktaGVhZGVyXSB7IC0tdGFibGUtbWF4LWhlaWdodDogMjIwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iRW1wbG95ZWVzIgogICAgICAgICAgaGVhZGluZzI9IlF1aWNrIGZpbHRlciBwZXIgY29sdW1uICsgc3RpY2t5IGhlYWRlciIKICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgLnN0aWNreUhlYWRlcj0keyEwfQogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwiLHNvcnRhYmxlOiEwfSx7a2V5OiJkZXBhcnRtZW50IixoZWFkZXI6IkRlcGFydG1lbnQiLHNvcnRhYmxlOiEwfV19CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiQWxpY2UgSm9obnNvbiIsZW1haWw6ImFsaWNlQGNvcnAuY29tIixkZXBhcnRtZW50OiJFbmdpbmVlcmluZyJ9LHtuYW1lOiJCb2IgU21pdGgiLGVtYWlsOiJib2JAY29ycC5jb20iLGRlcGFydG1lbnQ6IlNhbGVzIn0se25hbWU6IkNoYXJsaWUgRGF2aXMiLGVtYWlsOiJjaGFybGllQGNvcnAuY29tIixkZXBhcnRtZW50OiJIUiJ9LHtuYW1lOiJEaWFuYSBNYXJ0aW5leiIsZW1haWw6ImRpYW5hQGNvcnAuY29tIixkZXBhcnRtZW50OiJFbmdpbmVlcmluZyJ9LHtuYW1lOiJFdGhhbiBCcm93biIsZW1haWw6ImV0aGFuQGNvcnAuY29tIixkZXBhcnRtZW50OiJGaW5hbmNlIn0se25hbWU6IkZpb25hIENsYXJrIixlbWFpbDoiZmlvbmFAY29ycC5jb20iLGRlcGFydG1lbnQ6IlNhbGVzIn0se25hbWU6IkdyYWNlIExlZSIsZW1haWw6ImdyYWNlQGNvcnAuY29tIixkZXBhcnRtZW50OiJFbmdpbmVlcmluZyJ9LHtuYW1lOiJIZW5yeSBXaWxzb24iLGVtYWlsOiJoZW5yeUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiTWFya2V0aW5nIn0se25hbWU6IklyZW5lIFdhbGtlciIsZW1haWw6ImlyZW5lQGNvcnAuY29tIixkZXBhcnRtZW50OiJGaW5hbmNlIn0se25hbWU6IkphY2sgVHVybmVyIixlbWFpbDoiamFja0Bjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU3VwcG9ydCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJlbXBsb3llZXMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iCiAgICAgICAgQHNlYXJjaFJlcXVlc3Q9JHthc3luYyB0PT57bGV0e3F1ZXJ5OmV9PXQuZGV0YWlsfHx7cXVlcnk6IiJ9LGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlcnZlclNlYXJjaERlbW8iKSxyPVt7aWQ6MSxuYW1lOiJBbGljZSIsY2l0eToiQmVybGluIix0aXRsZToiRW5naW5lZXIifSx7aWQ6MixuYW1lOiJCb2IiLGNpdHk6IlBhcmlzIix0aXRsZToiRGVzaWduZXIifSx7aWQ6MyxuYW1lOiJDaGFybGllIixjaXR5OiJMb25kb24iLHRpdGxlOiJNYW5hZ2VyIn0se2lkOjQsbmFtZToiRGlhbmEiLGNpdHk6Ik1hZHJpZCIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjUsbmFtZToiRXRoYW4iLGNpdHk6IlJvbWUiLHRpdGxlOiJTdXBwb3J0In1dO2F3YWl0IG5ldyBQcm9taXNlKHM9PnNldFRpbWVvdXQocywzMDApKTtsZXQgaT1TdHJpbmcoZXx8IiIpLnRvTG93ZXJDYXNlKCksbz1pP3IuZmlsdGVyKHM9Pk9iamVjdC52YWx1ZXMocykuc29tZShsPT5TdHJpbmcobCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhpKSkpOnI7YS5kYXRhPW99fQogICAgICA+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TZXJ2ZXIgU2VhcmNoIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+U2VsZWN0IFNlcnZlciBtb2RlLCB0eXBlIGEgcXVlcnksIGFuZCB3YXRjaCB0aGUgdGFibGUgZmV0Y2ggc2ltdWxhdGVkIHJlc3VsdHMuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBpZD0ic2VydmVyU2VhcmNoRGVtbyIKICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgKFNlcnZlciBTZWFyY2gpIgogICAgICAgICAgaGVhZGluZzI9IkNsaWNrIFNlYXJjaCwgY2hvb3NlIFNlcnZlciBtb2RlLCBhbmQgdHlwZSIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSJ9LHtrZXk6ImNpdHkiLGhlYWRlcjoiQ2l0eSJ9LHtrZXk6InRpdGxlIixoZWFkZXI6IlRpdGxlIn1dfQogICAgICAgICAgLmRhdGE9JHtbe2lkOjEsbmFtZToiQWxpY2UiLGNpdHk6IkJlcmxpbiIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjIsbmFtZToiQm9iIixjaXR5OiJQYXJpcyIsdGl0bGU6IkRlc2lnbmVyIn0se2lkOjMsbmFtZToiQ2hhcmxpZSIsY2l0eToiTG9uZG9uIix0aXRsZToiTWFuYWdlciJ9LHtpZDo0LG5hbWU6IkRpYW5hIixjaXR5OiJNYWRyaWQiLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDo1LG5hbWU6IkV0aGFuIixjaXR5OiJSb21lIix0aXRsZToiU3VwcG9ydCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJwZW9wbGUiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+V2lkZSBQcm9wZXJ0aWVzICsgTWFueSBBY3Rpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QSB0YWJsZSB3aXRoIG1hbnkgY29sdW1ucyBhbmQgcmljaCBhY3Rpb25zIHRvIHN0cmVzcyB0ZXN0IGxheW91dCBhbmQgc3RpY2t5IEFjdGlvbnMuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJNYW55IHByb3BlcnRpZXMgYW5kIGFjdGlvbnMiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJpZCIsaGVhZGVyOiJJRCIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InJvbGUiLGhlYWRlcjoiUm9sZSIsc29ydGFibGU6ITB9LHtrZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIn0se2tleToicGhvbmUiLGhlYWRlcjoiUGhvbmUifSx7a2V5OiJsb2NhdGlvbiIsaGVhZGVyOiJMb2NhdGlvbiIsc29ydGFibGU6ITB9LHtrZXk6InN0YXR1cyIsaGVhZGVyOiJTdGF0dXMiLHNvcnRhYmxlOiEwfSx7a2V5OiJjcmVhdGVkQXQiLGhlYWRlcjoiQ3JlYXRlZCIsc29ydGFibGU6ITB9LHtrZXk6InVwZGF0ZWRBdCIsaGVhZGVyOiJVcGRhdGVkIixzb3J0YWJsZTohMH0se2tleToibGFzdExvZ2luIixoZWFkZXI6Ikxhc3QgTG9naW4iLHNvcnRhYmxlOiEwfSx7a2V5OiJwcm9qZWN0cyIsaGVhZGVyOiJQcm9qZWN0cyJ9LHtrZXk6InRhZ3MiLGhlYWRlcjoiVGFncyJ9LHtrZXk6Im5vdGVzIixoZWFkZXI6Ik5vdGVzIn1dfQogICAgICAgICAgLmRhdGE9JHtbe2lkOjEsbmFtZToiQWxpY2UgSm9obnNvbiIscm9sZToiRW5naW5lZXIiLGRlcGFydG1lbnQ6IlImRCIsZW1haWw6ImFsaWNlQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTExIixsb2NhdGlvbjoiQmVybGluIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIzLTAxLTEyIix1cGRhdGVkQXQ6IjIwMjQtMDUtMDMiLGxhc3RMb2dpbjoiMjAyNC0xMC0wMSIscHJvamVjdHM6NSx0YWdzOiJ0eXBlc2NyaXB0LCB1aSIsbm90ZXM6Ik1lbnRvciJ9LHtpZDoyLG5hbWU6IkJvYiBTbWl0aCIscm9sZToiRGVzaWduZXIiLGRlcGFydG1lbnQ6IkRlc2lnbiIsZW1haWw6ImJvYkBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExMiIsbG9jYXRpb246IlBhcmlzIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIyLTExLTA1Iix1cGRhdGVkQXQ6IjIwMjQtMDQtMTAiLGxhc3RMb2dpbjoiMjAyNC0wOS0yOCIscHJvamVjdHM6OCx0YWdzOiJmaWdtYSwgYnJhbmQiLG5vdGVzOiJQYXJ0LXRpbWUifSx7aWQ6MyxuYW1lOiJDaGFybGllIERhdmlzIixyb2xlOiJNYW5hZ2VyIixkZXBhcnRtZW50OiJPcHMiLGVtYWlsOiJjaGFybGllQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTEzIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6Ik9uIExlYXZlIixjcmVhdGVkQXQ6IjIwMjEtMDQtMjEiLHVwZGF0ZWRBdDoiMjAyNC0wMi0xNSIsbGFzdExvZ2luOiIyMDI0LTA4LTEyIixwcm9qZWN0czozLHRhZ3M6InNyZSwgbGVhZGVyc2hpcCIsbm90ZXM6IiJ9LHtpZDo0LG5hbWU6IkRpYW5hIE1hcnRpbmV6Iixyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiUGxhdGZvcm0iLGVtYWlsOiJkaWFuYUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExNCIsbG9jYXRpb246Ik1hZHJpZCIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMC0wNi0zMCIsdXBkYXRlZEF0OiIyMDI0LTA2LTI1IixsYXN0TG9naW46IjIwMjQtMTAtMDIiLHByb2plY3RzOjYsdGFnczoibm9kZSwgYXBpIixub3RlczoiT24tY2FsbCJ9LHtpZDo1LG5hbWU6IkV0aGFuIEJyb3duIixyb2xlOiJTdXBwb3J0IixkZXBhcnRtZW50OiJDUyIsZW1haWw6ImV0aGFuQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTE1Iixsb2NhdGlvbjoiUm9tZSIsc3RhdHVzOiJJbmFjdGl2ZSIsY3JlYXRlZEF0OiIyMDE5LTA5LTE4Iix1cGRhdGVkQXQ6IjIwMjQtMDMtMDkiLGxhc3RMb2dpbjoiMjAyNC0wNi0xOSIscHJvamVjdHM6Mix0YWdzOiJ6ZW5kZXNrIixub3RlczoiUmVoaXJlIn0se2lkOjYsbmFtZToiRmlvbmEgQ2xhcmsiLHJvbGU6IlFBIixkZXBhcnRtZW50OiJRQSIsZW1haWw6ImZpb25hQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTE2Iixsb2NhdGlvbjoiVmllbm5hIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIyLTAzLTE0Iix1cGRhdGVkQXQ6IjIwMjQtMDMtMDEiLGxhc3RMb2dpbjoiMjAyNC0wOS0wNyIscHJvamVjdHM6Nyx0YWdzOiJwbGF5d3JpZ2h0Iixub3RlczoiIn1dfQogICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmFzeW5jKHtpdGVtOnR9KT0+e2NvbnNvbGUubG9nKCJ2aWV3Iix0KX19LHtuYW1lOiJFZGl0IixpY29uTmFtZToibHVjaWRlOmVkaXQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygiZWRpdCIsdCl9fSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06dH0pPT57Y29uc29sZS5sb2coImRlbGV0ZSIsdCl9fSx7bmFtZToiTWVzc2FnZSIsaWNvbk5hbWU6Imx1Y2lkZTptZXNzYWdlLXNxdWFyZSIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygibWVzc2FnZSIsdCl9fSx7bmFtZToiSGlzdG9yeSIsaWNvbk5hbWU6Imx1Y2lkZTpjbG9jayIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygiaGlzdG9yeSIsdCl9fSx7bmFtZToiQWRkIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzphc3luYyh7dGFibGU6dH0pPT57Y29uc29sZS5sb2coImFkZCIpfX0se25hbWU6IkV4cG9ydCBDU1YiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLHR5cGU6WyJoZWFkZXIiXSxhY3Rpb25GdW5jOmFzeW5jKHt0YWJsZTp0fSk9Pntjb25zb2xlLmxvZygiZXhwb3J0Iil9fSx7bmFtZToiQnVsayBEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gtMiIsdHlwZTpbImZvb3RlciJdLGFjdGlvbkZ1bmM6YXN5bmMoe3RhYmxlOnR9KT0+e2NvbnNvbGUubG9nKCJidWxrIGRlbGV0ZSIpfX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNjcm9sbGFibGUgU21hbGwgSGVpZ2h0PC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+U2FtZSBhcyBhYm92ZSwgYnV0IHdpdGggbWFueSBpdGVtcyBhbmQgYSBzbWFsbCBmaXhlZCBoZWlnaHQgdG8gZm9yY2UgdmVydGljYWwgc2Nyb2xsaW5nIGluc2lkZSB0aGUgdGFibGUuIEFjdGlvbnMgcmVtYWluIHZpc2libGUgb24gdGhlIHJpZ2h0OyBob3Jpem9udGFsIHNjcm9sbCBhcHBlYXJzIGlmIG5lZWRlZC48L3A+CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgI3Njcm9sbFNtYWxsSGVpZ2h0IHsgLS10YWJsZS1tYXgtaGVpZ2h0OiAyNDBweDsgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJzY3JvbGxTbWFsbEhlaWdodCIKICAgICAgICAgIC5zdGlja3lIZWFkZXI9JHshMH0KICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgRGlyZWN0b3J5IChTY3JvbGxhYmxlKSIKICAgICAgICAgIGhlYWRpbmcyPSJGb3JjZWQgc2Nyb2xsaW5nIHdpdGggbWFueSBpdGVtcyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke0FycmF5LmZyb20oe2xlbmd0aDoxMDB9LCh0LGUpPT4oe2lkOmUrMSxuYW1lOmBVc2VyICR7ZSsxfWAscm9sZTpbIkVuZ2luZWVyIiwiRGVzaWduZXIiLCJNYW5hZ2VyIiwiUUEiLCJTdXBwb3J0Il1bZSU1XSxkZXBhcnRtZW50OlsiUiZEIiwiRGVzaWduIiwiT3BzIiwiUUEiLCJDUyJdW2UlNV0sZW1haWw6YHVzZXIke2UrMX1AY29ycC5jb21gLHBob25lOmArMSAyMDIgNTU1ICR7U3RyaW5nKDFlMytlKS5zbGljZSgtNCl9YCxsb2NhdGlvbjpbIkJlcmxpbiIsIlBhcmlzIiwiTG9uZG9uIiwiTWFkcmlkIiwiUm9tZSJdW2UlNV0sc3RhdHVzOlsiQWN0aXZlIiwiSW5hY3RpdmUiLCJPbiBMZWF2ZSJdW2UlM10sY3JlYXRlZEF0OmAyMDIzLSR7U3RyaW5nKGUlMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZyhlJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLHVwZGF0ZWRBdDpgMjAyNC0ke1N0cmluZygoZSszKSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzcpJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLGxhc3RMb2dpbjpgMjAyNC0ke1N0cmluZygoZSs2KSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzEwKSUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCxwcm9qZWN0czplJTEyLHRhZ3M6ZSUyPyJ0eXBlc2NyaXB0IjoiZGVzaWduIixub3RlczplJTM/IiI6Ik5vdGUifSkpfQogICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pnt9fSx7bmFtZToiRWRpdCIsaWNvbk5hbWU6Imx1Y2lkZTplZGl0Iix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmFzeW5jKHtpdGVtOnR9KT0+e319LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2giLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06dH0pPT57fX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmA7ZmUoKTtCZSgpO3ZhciBmRnQ9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDE2cHggMjRweDsKICAgICAgICBtaW4taGVpZ2h0OiA2NHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAuaGVhZGluZ0NvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nMSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRpbmcyIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuaGVhZGluZ1NlcGFyYXRpb24gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb25zIHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5oZWFkZXJBY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb246aG92ZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLnNlYXJjaEdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC1nYXA6IDE2cHg7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgbWF4LWNvbnRlbnQ7CiAgICAgICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7CiAgICAgICAgLnNlYXJjaEdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICAvKiBsZXQgc2VhcmNoIG1vZGUgc2l6ZSB0byBjb250ZW50IChubyBmb3JjZWQgd2lkdGgpICovCgogICAgICAuc2VhcmNoR3JpZC5oaWRkZW4gewogICAgICAgIGhlaWdodDogMHB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwYWRkaW5nOiAwcHggMjRweDsKICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7CiAgICAgIH0KCiAgICAgIC50YWJsZVNjcm9sbCB7CiAgICAgICAgLyogZW5hYmxlIGhvcml6b250YWwgc2Nyb2xsIG9ubHkgd2hlbiBjb250ZW50IGV4Y2VlZHMgd2lkdGggKi8KICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIC8qIHByZXZlbnQgdmVydGljYWwgc2Nyb2xsIGluc2lkZSB0aGUgdGFibGUgY29udGFpbmVyICovCiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgICAgIC8qIGF2b2lkIHJlc2VydmluZyBleHRyYSBzcGFjZSBmb3IgY2xhc3NpYyBzY3JvbGxiYXJzIHdoZXJlIHBvc3NpYmxlICovCiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlIGJvdGgtZWRnZXM7CiAgICAgIH0KICAgICAgLyogSGlkZSBob3Jpem9udGFsIHNjcm9sbGJhciBlbnRpcmVseSB3aGVuIG5vdCB1c2luZyBzdGlja3kgaGVhZGVyICovCiAgICAgIDpob3N0KDpub3QoW3N0aWNreS1oZWFkZXJdKSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIElFL0VkZ2UgKi8KICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7ICAgLyogRmlyZWZveCAoaGlkZXMgYm90aCBheGVzKSAqLwogICAgICB9CiAgICAgIDpob3N0KDpub3QoW3N0aWNreS1oZWFkZXJdKSkgLnRhYmxlU2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsgLyogQ2hyb21lL1NhZmFyaSAqLwogICAgICB9CiAgICAgIC8qIEluIHN0aWNreS1oZWFkZXIgbW9kZSwgaGlkZSBvbmx5IHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBpbiBXZWJLaXQvQmxpbmsgKi8KICAgICAgOmhvc3QoW3N0aWNreS1oZWFkZXJdKSAudGFibGVTY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWwgewogICAgICAgIGhlaWdodDogMHB4OwogICAgICB9CiAgICAgIDpob3N0KFtzdGlja3ktaGVhZGVyXSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS10YWJsZS1tYXgtaGVpZ2h0LCAzNjBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgIHRhYmxlIHsKICAgICAgICAvKiBhbGxvdyB0YWJsZSB0byBncm93IHdpZGVyIHRoYW4gY29udGFpbmVyIHNvIGFjdGlvbnMgY29sdW1uIGNhbiBzdGljayAqLwogICAgICAgIHdpZHRoOiBtYXgtY29udGVudDsKICAgICAgICBtaW4td2lkdGg6IDEwMCU7CiAgICAgICAgY2FwdGlvbi1zaWRlOiBib3R0b207CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7CiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ub0RhdGFTZXQgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRoZWFkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICAgIDpob3N0KFtzdGlja3ktaGVhZGVyXSkgdGhlYWQgdGggewogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICAvKiBEZWZhdWx0IGhvcml6b250YWwgbGluZXMgKGJvdHRvbSBib3JkZXIgb25seSkgKi8KICAgICAgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICB0Ym9keSB0cjpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBGdWxsIGhvcml6b250YWwgbGluZXMgd2hlbiBlbmFibGVkICovCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0ciB7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICB0Ym9keSB0cjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElIC8gMC41KSIsImhzbCgwIDAlIDE0LjklIC8gMC41KSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29sdW1uIGhvdmVyIGVmZmVjdCBmb3IgYmV0dGVyIHRyYWNlYWJpbGl0eSAqLwogICAgICB0ZCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICB0ZDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElIC8gMC4zKSIsImhzbCgwIDAlIDE0LjklIC8gMC4zKSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgdGQ6aG92ZXI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAvKiBHcmlkIG1vZGUgLSBzaG93cyBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGxpbmVzICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRoOmZpcnN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQ6Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CgogICAgICAvKiBTdGlja3kgQWN0aW9ucyBjb2x1bW4gKHJpZ2h0IHBpbm5lZCkgKi8KICAgICAgdGhlYWQgdGguYWN0aW9uc0NvbCwKICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgfQogICAgICB0aGVhZCB0aC5hY3Rpb25zQ29sIHsgei1pbmRleDogMzsgfQogICAgICB0Ym9keSB0ZC5hY3Rpb25zQ29sIHsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIGJveC1zaGFkb3c6IC0xcHggMCAwIDAgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIHRib2R5IHRyLmhhc0F0dGFjaG1lbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoIHsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICB0ZCB7CiAgICAgICAgcGFkZGluZzogMTJweCAyNHB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQgewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRoOmZpcnN0LWNoaWxkLAogICAgICB0ZDpmaXJzdC1jaGlsZCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICB0aDpsYXN0LWNoaWxkLAogICAgICB0ZDpsYXN0LWNoaWxkIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoOmxhc3QtY2hpbGQsCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuaW5uZXJDZWxsQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfQogICAgICB0ZCBpbnB1dCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNHB4OwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIGxlZnQ6IDIwcHg7CiAgICAgICAgcmlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpOwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gOHB4KTsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpOwogICAgICB9CiAgICAgIAogICAgICB0ZCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjIpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLyogZmlsdGVyIHJvdyAqLwogICAgICB0aGVhZCB0ci5maWx0ZXJzUm93IHRoIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCAxMnB4IDEycHg7CiAgICAgIH0KICAgICAgdGhlYWQgdHIuZmlsdGVyc1JvdyB0aCBpbnB1dFt0eXBlPSd0ZXh0J10gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZzogNnB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CiAgICAgIC5hY3Rpb25zQ29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTEuOCUpIil9OwogICAgICB9CiAgICAgIAogICAgICAuYWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAuZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogNTJweDsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZVN0YXRpc3RpY3MgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyAuZm9vdGVyQWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyAuZm9vdGVyQWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQogIGBdO2Z1bmN0aW9uIHVFZSh0LGUpe2lmKCFlfHxlLmxlbmd0aD09PTApcmV0dXJuW107bGV0IGE9dChlWzBdKTtyZXR1cm4gT2JqZWN0LmtleXMoYSkubWFwKGk9Pih7a2V5OmksaGVhZGVyOmksdmFsdWU6bz0+dChvKVtpXX0pKX1mdW5jdGlvbiB1RnQodCxlLGEscil7bGV0IGk9KHR8fFtdKS5zbGljZSgpO2lmKCFlKXJldHVybiBpO2xldCBvPXVFZShhLHIpLHM9bmV3IFNldChpLm1hcChsPT5TdHJpbmcobC5rZXkpKSk7Zm9yKGxldCBsIG9mIG8pcy5oYXMoU3RyaW5nKGwua2V5KSl8fGkucHVzaChsKTtyZXR1cm4gaX1mdW5jdGlvbiB1NSh0LGUsYSl7cmV0dXJuIGUudmFsdWU/ZS52YWx1ZSh0KTp0W2Uua2V5XX1mdW5jdGlvbiBwRnQodCxlLGEscixpLG8scz0idGFibGUiLGwpe2xldCBmPXQuc2xpY2UoKSxjPShpfHwiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksdT1vfHx7fSxkPU9iamVjdC5rZXlzKHUpLmZpbHRlcihiPT4odVtiXT8/IiIpLnRyaW0oKS5sZW5ndGg+MCk7aWYoKGN8fGQubGVuZ3RoPjApJiYoZj1mLmZpbHRlcihiPT57Zm9yKGxldCB4IG9mIGQpaWYocz09PSJkYXRhIil7bGV0IG09Ylt4XSx2PVN0cmluZyhtPz8iIikudG9Mb3dlckNhc2UoKSx5PVN0cmluZyh1W3hdKS50b0xvd2VyQ2FzZSgpO2lmKCF2LmluY2x1ZGVzKHkpKXJldHVybiExfWVsc2V7bGV0IG09ZS5maW5kKEU9PlN0cmluZyhFLmtleSk9PT14KTtpZighbXx8bS5oaWRkZW58fG0uZmlsdGVyYWJsZT09PSExKWNvbnRpbnVlO2xldCB2PXU1KGIsbSkseT1TdHJpbmcodj8/IiIpLnRvTG93ZXJDYXNlKCksdz1TdHJpbmcodVt4XSkudG9Mb3dlckNhc2UoKTtpZigheS5pbmNsdWRlcyh3KSlyZXR1cm4hMX1pZihjKXtpZihsKXJldHVybiEhbChiKTtsZXQgeD0hMTtpZihzPT09ImRhdGEiKXtmb3IobGV0IG0gb2YgT2JqZWN0LnZhbHVlcyhiKSlpZihTdHJpbmcobT8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYykpe3g9ITA7YnJlYWt9fWVsc2UgZm9yKGxldCBtIG9mIGUpe2lmKG0uaGlkZGVuKWNvbnRpbnVlO2xldCB2PXU1KGIsbSk7aWYoU3RyaW5nKHY/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGMpKXt4PSEwO2JyZWFrfX1pZigheClyZXR1cm4hMX1yZXR1cm4hMH0pKSwhYXx8IXIpcmV0dXJuIGY7bGV0IGg9ZS5maW5kKGI9PlN0cmluZyhiLmtleSk9PT1hKTtpZighaClyZXR1cm4gZjtsZXQgZz1yPT09ImFzYyI/MTotMTtyZXR1cm4gZi5zb3J0KChiLHgpPT57bGV0IG09dTUoYixoKSx2PXU1KHgsaCk7aWYobT09bnVsbCYmdj09bnVsbClyZXR1cm4gMDtpZihtPT1udWxsKXJldHVybi0xKmc7aWYodj09bnVsbClyZXR1cm4gMSpnO2lmKHR5cGVvZiBtPT0ibnVtYmVyIiYmdHlwZW9mIHY9PSJudW1iZXIiKXJldHVybihtLXYpKmc7bGV0IHk9U3RyaW5nKG0pLnRvTG93ZXJDYXNlKCksdz1TdHJpbmcodikudG9Mb3dlckNhc2UoKTtyZXR1cm4geTx3Py0xKmc6eT53PzEqZzowfSksZn1mdW5jdGlvbiB0aih0KXtyZXR1cm4gdC5zdGFydHNXaXRoKCciJykmJnQuZW5kc1dpdGgoJyInKXx8dC5zdGFydHNXaXRoKCInIikmJnQuZW5kc1dpdGgoIiciKT90LnNsaWNlKDEsLTEpOnR9ZnVuY3Rpb24gZXMxKHQpe3JldHVybiB0LnNwbGl0KC9ccytPUlxzKy9pKS5tYXAoZT0+ZS50cmltKCkpLmZpbHRlcihCb29sZWFuKX1mdW5jdGlvbiB0czEodCl7cmV0dXJuIHQuc3BsaXQoL1xzK0FORFxzKy9pKS5tYXAoZT0+ZS50cmltKCkpLmZpbHRlcihCb29sZWFuKX1mdW5jdGlvbiBhczEodCl7aWYoIXQpcmV0dXJuIG51bGw7bGV0IGU9ITEsYT10Lm1hdGNoKC9eXHMqKE5PVFxzK3wtKVxzKiguKikkL2kpO2EmJihlPSEwLHQ9YVsyXSk7bGV0IHI9dC5tYXRjaCgvXihbXjpcc10rKVxzKjpccypcWyguKj8pXHMrVE9ccysoLio/KVxdJC9pKTtpZihyKXJldHVybntmaWVsZDpyWzFdLG5lZ2F0ZTplLHJhbmdlOntsb3dlcjp0aihyWzJdKS50b0xvd2VyQ2FzZSgpLHVwcGVyOnRqKHJbM10pLnRvTG93ZXJDYXNlKCksaW5jbHVzaXZlOiEwfX07bGV0IGk9dC5tYXRjaCgvXihbXjpcc10rKVxzKjpccyooIlteIl0qInwnW14nXSonfFteIidcc10rKSQvKTtyZXR1cm4gaT97ZmllbGQ6aVsxXSx2YWx1ZTp0aihpWzJdKS50b0xvd2VyQ2FzZSgpLG5lZ2F0ZTplfTp0Lmxlbmd0aD4wP3t2YWx1ZTp0aih0KS50b0xvd2VyQ2FzZSgpLG5lZ2F0ZTplfTpudWxsfWZ1bmN0aW9uIHJzMSh0KXtpZighdClyZXR1cm4gbnVsbDtsZXQgZT1lczEodCkubWFwKGE9Pih7dGVybXM6dHMxKGEpLm1hcChhczEpLmZpbHRlcihpPT4hIWkmJiEhaS52YWx1ZSl9KSkuZmlsdGVyKGE9PmEudGVybXMubGVuZ3RoPjApO3JldHVybiBlLmxlbmd0aD09PTA/bnVsbDp7Y2xhdXNlczplfX1mdW5jdGlvbiBoRnQodCxlLGEpe2xldCByPXJzMSh0KTtpZighcilyZXR1cm4gbnVsbDtsZXQgaT1uZXcgTWFwKGEubWFwKGY9PltTdHJpbmcoZi5rZXkpLGZdKSksbz0oZixjKT0+ZjxjPy0xOmY+Yz8xOjAscz1mPT57bGV0IGM9U3RyaW5nKGY/PyIiKS50b0xvd2VyQ2FzZSgpLHU9TnVtYmVyKGMpLGQ9RGF0ZS5wYXJzZShjKTtyZXR1cm4hTnVtYmVyLmlzTmFOKHUpJiZjLnRyaW0oKSE9PSIiP3t0OiJuIix2OnV9Ok51bWJlci5pc05hTihkKT97dDoicyIsdjpjfTp7dDoiZCIsdjpkfX0sbD0oZixjLHUpPT57bGV0IGQ9cyhmKSxoPXMoYyksZz1zKHUpO2lmKGQudD09PSJzIiYmaC50PT09InMiJiZnLnQ9PT0icyIpe2xldCB4PWQudjtyZXR1cm4gbyh4LGgudik+PTAmJm8oeCxnLnYpPD0wfWlmKGQudD09PSJuIiYmaC50PT09Im4iJiZnLnQ9PT0ibiIpe2xldCB4PWQudjtyZXR1cm4geD49aC52JiZ4PD1nLnZ9aWYoZC50PT09ImQiJiZoLnQ9PT0iZCImJmcudD09PSJkIil7bGV0IHg9ZC52O3JldHVybiB4Pj1oLnYmJng8PWcudn1sZXQgYj1TdHJpbmcoZj8/IiIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIG8oYixjKT49MCYmbyhiLHUpPD0wfTtyZXR1cm4gZj0+e2ZvcihsZXQgYyBvZiByLmNsYXVzZXMpe2xldCB1PSEwO2ZvcihsZXQgZCBvZiBjLnRlcm1zKXtsZXQgaD0hMTtpZihkLnJhbmdlJiZkLmZpZWxkKWlmKGU9PT0iZGF0YSIpaD1sKGZbZC5maWVsZF0sZC5yYW5nZS5sb3dlcixkLnJhbmdlLnVwcGVyKTtlbHNle2xldCBnPWkuZ2V0KGQuZmllbGQpO2lmKCFnfHxnLmhpZGRlbiloPSExO2Vsc2V7bGV0IGI9Zy52YWx1ZT9nLnZhbHVlKGYpOmZbZy5rZXldO2g9bChiLGQucmFuZ2UubG93ZXIsZC5yYW5nZS51cHBlcil9fWVsc2UgaWYoZC5maWVsZCYmZC52YWx1ZSE9bnVsbClpZihlPT09ImRhdGEiKWg9U3RyaW5nKGZbZC5maWVsZF0/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGQudmFsdWUpO2Vsc2V7bGV0IGc9aS5nZXQoZC5maWVsZCk7aWYoIWd8fGcuaGlkZGVuPT09ITApaD0hMTtlbHNle2xldCBiPWcudmFsdWU/Zy52YWx1ZShmKTpmW2cua2V5XTtoPVN0cmluZyhiPz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhkLnZhbHVlKX19ZWxzZSBkLnZhbHVlIT1udWxsJiYoZT09PSJkYXRhIj9oPU9iamVjdC52YWx1ZXMoZikuc29tZShnPT5TdHJpbmcoZz8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZC52YWx1ZSkpOmg9YS5zb21lKGc9PntpZihnLmhpZGRlbilyZXR1cm4hMTtsZXQgYj1nLnZhbHVlP2cudmFsdWUoZik6ZltnLmtleV07cmV0dXJuIFN0cmluZyhiPz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhkLnZhbHVlKX0pKTtpZihkLm5lZ2F0ZSYmKGg9IWgpLCFoKXt1PSExO2JyZWFrfX1pZih1KXJldHVybiEwfXJldHVybiExfX1mZSgpO1N0KCk7RnQoKTtCZSgpO3ZhciBHdD1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LFdlPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxwRWU9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLXRhYmxlIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W10sSCxMPVtdLGs9W10sTixTPVtdLFQ9W10sUixBPVtdLEY9W10sYWUsVj1bXSxTZT1bXSx6ZSxXPVtdLE5lPVtdLFJlLFg9W10sST1bXSxPLEc9W10saj1bXSxzZSxrZT1bXSxEZT1bXSxPZSxVPVtdLEI9W10sb2UsdmU9W10seWU9W10sJGUsbmU9W10scmU9W10sZ2UsRWU9W10scnQ9W10sdWUsWj1bXSxKPVtdLGRlLEFlPVtdLEhlPVtdLE10LGl0PVtdLHp0PVtdLHF0LFE9W10sSz1bXSxiZSxvdD1bXSxudD1bXSxuMSx2YT1bXSxLcj1bXSxKcixUZT1bXSxqZT1bXSxnMSxLMT1bXSxmMj1bXSwkMix1Mj1bXSxpbz1bXSxvbyxzbz1bXSx3NT1bXTt2YXIgTTU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBoZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOlN0cmluZ30pXSxmPVtEKHt0eXBlOlN0cmluZ30pXSxkPVtEKHt0eXBlOkFycmF5fSldLGI9W0Qoe3R5cGU6U3RyaW5nfSldLHY9W0Qoe3R5cGU6U3RyaW5nfSldLEU9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxQPVtEKHt0eXBlOkJvb2xlYW59KV0sSD1bRCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxOPVtEKHt0eXBlOkJvb2xlYW59KV0sUj1bRCh7dHlwZTpBcnJheX0pXSxhZT1bRCh7YXR0cmlidXRlOiExfSldLHplPVtEKHthdHRyaWJ1dGU6ITF9KV0sUmU9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxPPVtEKHthdHRyaWJ1dGU6ITF9KV0sc2U9W0Qoe2F0dHJpYnV0ZTohMX0pXSxPZT1bRCh7dHlwZTpPYmplY3R9KV0sb2U9W0Qoe3R5cGU6QXJyYXl9KV0sJGU9W0Qoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy12ZXJ0aWNhbC1saW5lcyJ9KV0sZ2U9W0Qoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1ob3Jpem9udGFsLWxpbmVzIn0pXSx1ZT1bRCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LWdyaWQifSldLGRlPVtEKHthdHRyaWJ1dGU6ITF9KV0sTXQ9W0Qoe2F0dHJpYnV0ZTohMX0pXSxxdD1bRCh7dHlwZTpTdHJpbmd9KV0sYmU9W0Qoe2F0dHJpYnV0ZTohMX0pXSxuMT1bRCh7dHlwZTpCb29sZWFuLGF0dHJpYnV0ZToic2hvdy1jb2x1bW4tZmlsdGVycyJ9KV0sSnI9W0Qoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic3RpY2t5LWhlYWRlciJ9KV0sZzE9W0Qoe3R5cGU6U3RyaW5nfSldLCQyPVtEKHt0eXBlOlN0cmluZ30pXSxvbz1bRCh7YXR0cmlidXRlOiExfSldLEd0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZzEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4iaGVhZGluZzEiaW4gaWUsZ2V0OmllPT5pZS5oZWFkaW5nMSxzZXQ6KGllLENlKT0+e2llLmhlYWRpbmcxPUNlfX0sbWV0YWRhdGE6aGV9LHMsbCksR3QodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nMiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJoZWFkaW5nMiJpbiBpZSxnZXQ6aWU9PmllLmhlYWRpbmcyLHNldDooaWUsQ2UpPT57aWUuaGVhZGluZzI9Q2V9fSxtZXRhZGF0YTpoZX0sYyx1KSxHdCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4iZGF0YSJpbiBpZSxnZXQ6aWU9PmllLmRhdGEsc2V0OihpZSxDZSk9PntpZS5kYXRhPUNlfX0sbWV0YWRhdGE6aGV9LGgsZyksR3QodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJrZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4ia2V5ImluIGllLGdldDppZT0+aWUua2V5LHNldDooaWUsQ2UpPT57aWUua2V5PUNlfX0sbWV0YWRhdGE6aGV9LHgsbSksR3QodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJsYWJlbCJpbiBpZSxnZXQ6aWU9PmllLmxhYmVsLHNldDooaWUsQ2UpPT57aWUubGFiZWw9Q2V9fSxtZXRhZGF0YTpoZX0seSx3KSxHdCh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+ImRpc2FibGVkImluIGllLGdldDppZT0+aWUuZGlzYWJsZWQsc2V0OihpZSxDZSk9PntpZS5kaXNhYmxlZD1DZX19LG1ldGFkYXRhOmhlfSxDLHopLEd0KHRoaXMsbnVsbCxQLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4icmVxdWlyZWQiaW4gaWUsZ2V0OmllPT5pZS5yZXF1aXJlZCxzZXQ6KGllLENlKT0+e2llLnJlcXVpcmVkPUNlfX0sbWV0YWRhdGE6aGV9LF8sJCksR3QodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJkYXRhTmFtZSJpbiBpZSxnZXQ6aWU9PmllLmRhdGFOYW1lLHNldDooaWUsQ2UpPT57aWUuZGF0YU5hbWU9Q2V9fSxtZXRhZGF0YTpoZX0sTCxrKSxHdCh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4ic2VhcmNoYWJsZSJpbiBpZSxnZXQ6aWU9PmllLnNlYXJjaGFibGUsc2V0OihpZSxDZSk9PntpZS5zZWFyY2hhYmxlPUNlfX0sbWV0YWRhdGE6aGV9LFMsVCksR3QodGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhQWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJkYXRhQWN0aW9ucyJpbiBpZSxnZXQ6aWU9PmllLmRhdGFBY3Rpb25zLHNldDooaWUsQ2UpPT57aWUuZGF0YUFjdGlvbnM9Q2V9fSxtZXRhZGF0YTpoZX0sQSxGKSxHdCh0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+ImNvbHVtbnMiaW4gaWUsZ2V0OmllPT5pZS5jb2x1bW5zLHNldDooaWUsQ2UpPT57aWUuY29sdW1ucz1DZX19LG1ldGFkYXRhOmhlfSxWLFNlKSxHdCh0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3dLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4icm93S2V5ImluIGllLGdldDppZT0+aWUucm93S2V5LHNldDooaWUsQ2UpPT57aWUucm93S2V5PUNlfX0sbWV0YWRhdGE6aGV9LFcsTmUpLEd0KHRoaXMsbnVsbCxSZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+ImF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uImluIGllLGdldDppZT0+aWUuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24sc2V0OihpZSxDZSk9PntpZS5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbj1DZX19LG1ldGFkYXRhOmhlfSxYLEkpLEd0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+ImRpc3BsYXlGdW5jdGlvbiJpbiBpZSxnZXQ6aWU9PmllLmRpc3BsYXlGdW5jdGlvbixzZXQ6KGllLENlKT0+e2llLmRpc3BsYXlGdW5jdGlvbj1DZX19LG1ldGFkYXRhOmhlfSxHLGopLEd0KHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJldmVyc2VEaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4icmV2ZXJzZURpc3BsYXlGdW5jdGlvbiJpbiBpZSxnZXQ6aWU9PmllLnJldmVyc2VEaXNwbGF5RnVuY3Rpb24sc2V0OihpZSxDZSk9PntpZS5yZXZlcnNlRGlzcGxheUZ1bmN0aW9uPUNlfX0sbWV0YWRhdGE6aGV9LGtlLERlKSxHdCh0aGlzLG51bGwsT2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERhdGFSb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4ic2VsZWN0ZWREYXRhUm93ImluIGllLGdldDppZT0+aWUuc2VsZWN0ZWREYXRhUm93LHNldDooaWUsQ2UpPT57aWUuc2VsZWN0ZWREYXRhUm93PUNlfX0sbWV0YWRhdGE6aGV9LFUsQiksR3QodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGFibGVGaWVsZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4iZWRpdGFibGVGaWVsZHMiaW4gaWUsZ2V0OmllPT5pZS5lZGl0YWJsZUZpZWxkcyxzZXQ6KGllLENlKT0+e2llLmVkaXRhYmxlRmllbGRzPUNlfX0sbWV0YWRhdGE6aGV9LHZlLHllKSxHdCh0aGlzLG51bGwsJGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VmVydGljYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJzaG93VmVydGljYWxMaW5lcyJpbiBpZSxnZXQ6aWU9PmllLnNob3dWZXJ0aWNhbExpbmVzLHNldDooaWUsQ2UpPT57aWUuc2hvd1ZlcnRpY2FsTGluZXM9Q2V9fSxtZXRhZGF0YTpoZX0sbmUscmUpLEd0KHRoaXMsbnVsbCxnZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIb3Jpem9udGFsTGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4ic2hvd0hvcml6b250YWxMaW5lcyJpbiBpZSxnZXQ6aWU9PmllLnNob3dIb3Jpem9udGFsTGluZXMsc2V0OihpZSxDZSk9PntpZS5zaG93SG9yaXpvbnRhbExpbmVzPUNlfX0sbWV0YWRhdGE6aGV9LEVlLHJ0KSxHdCh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93R3JpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJzaG93R3JpZCJpbiBpZSxnZXQ6aWU9PmllLnNob3dHcmlkLHNldDooaWUsQ2UpPT57aWUuc2hvd0dyaWQ9Q2V9fSxtZXRhZGF0YTpoZX0sWixKKSxHdCh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzb3J0S2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+InNvcnRLZXkiaW4gaWUsZ2V0OmllPT5pZS5zb3J0S2V5LHNldDooaWUsQ2UpPT57aWUuc29ydEtleT1DZX19LG1ldGFkYXRhOmhlfSxBZSxIZSksR3QodGhpcyxudWxsLE10LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic29ydERpciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJzb3J0RGlyImluIGllLGdldDppZT0+aWUuc29ydERpcixzZXQ6KGllLENlKT0+e2llLnNvcnREaXI9Q2V9fSxtZXRhZGF0YTpoZX0saXQsenQpLEd0KHRoaXMsbnVsbCxxdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlclRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4iZmlsdGVyVGV4dCJpbiBpZSxnZXQ6aWU9PmllLmZpbHRlclRleHQsc2V0OihpZSxDZSk9PntpZS5maWx0ZXJUZXh0PUNlfX0sbWV0YWRhdGE6aGV9LFEsSyksR3QodGhpcyxudWxsLGJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1uRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJjb2x1bW5GaWx0ZXJzImluIGllLGdldDppZT0+aWUuY29sdW1uRmlsdGVycyxzZXQ6KGllLENlKT0+e2llLmNvbHVtbkZpbHRlcnM9Q2V9fSxtZXRhZGF0YTpoZX0sb3QsbnQpLEd0KHRoaXMsbnVsbCxuMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDb2x1bW5GaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+InNob3dDb2x1bW5GaWx0ZXJzImluIGllLGdldDppZT0+aWUuc2hvd0NvbHVtbkZpbHRlcnMsc2V0OihpZSxDZSk9PntpZS5zaG93Q29sdW1uRmlsdGVycz1DZX19LG1ldGFkYXRhOmhlfSx2YSxLciksR3QodGhpcyxudWxsLEpyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RpY2t5SGVhZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+InN0aWNreUhlYWRlciJpbiBpZSxnZXQ6aWU9PmllLnN0aWNreUhlYWRlcixzZXQ6KGllLENlKT0+e2llLnN0aWNreUhlYWRlcj1DZX19LG1ldGFkYXRhOmhlfSxUZSxqZSksR3QodGhpcyxudWxsLGcxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJzZWFyY2hNb2RlImluIGllLGdldDppZT0+aWUuc2VhcmNoTW9kZSxzZXQ6KGllLENlKT0+e2llLnNlYXJjaE1vZGU9Q2V9fSxtZXRhZGF0YTpoZX0sSzEsZjIpLEd0KHRoaXMsbnVsbCwkMix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4ic2VsZWN0aW9uTW9kZSJpbiBpZSxnZXQ6aWU9PmllLnNlbGVjdGlvbk1vZGUsc2V0OihpZSxDZSk9PntpZS5zZWxlY3Rpb25Nb2RlPUNlfX0sbWV0YWRhdGE6aGV9LHUyLGlvKSxHdCh0aGlzLG51bGwsb28se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZElkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJzZWxlY3RlZElkcyJpbiBpZSxnZXQ6aWU9PmllLnNlbGVjdGVkSWRzLHNldDooaWUsQ2UpPT57aWUuc2VsZWN0ZWRJZHM9Q2V9fSxtZXRhZGF0YTpoZX0sc28sdzUpLEd0KG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmhlfSxudWxsLGEpLE01PXI9ZS52YWx1ZSxoZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpoZX0pfXN0YXRpYyBkZW1vPWRGdDsjZT1XZSh0aGlzLHMsImhlYWRpbmcgMSIpO2dldCBoZWFkaW5nMSgpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nMShoZSl7dGhpcy4jZT1oZX0jdD0oV2UodGhpcyxsKSxXZSh0aGlzLGMsImhlYWRpbmcgMiIpKTtnZXQgaGVhZGluZzIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaGVhZGluZzIoaGUpe3RoaXMuI3Q9aGV9I2E9KFdlKHRoaXMsdSksV2UodGhpcyxoLFtdKSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZGF0YShoZSl7dGhpcy4jYT1oZX0jcj0oV2UodGhpcyxnKSxXZSh0aGlzLHgsdm9pZCAwKSk7Z2V0IGtleSgpe3JldHVybiB0aGlzLiNyfXNldCBrZXkoaGUpe3RoaXMuI3I9aGV9I2k9KFdlKHRoaXMsbSksV2UodGhpcyx5LHZvaWQgMCkpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNpfXNldCBsYWJlbChoZSl7dGhpcy4jaT1oZX0jbz0oV2UodGhpcyx3KSxXZSh0aGlzLEMsITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jb31zZXQgZGlzYWJsZWQoaGUpe3RoaXMuI289aGV9I3M9KFdlKHRoaXMseiksV2UodGhpcyxfLCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHJlcXVpcmVkKGhlKXt0aGlzLiNzPWhlfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmRhdGF9c2V0IHZhbHVlKGhlKXt9Y2hhbmdlU3ViamVjdD0oV2UodGhpcywkKSxuZXcgQXQuc21hcnRyeC5yeGpzLlN1YmplY3QpOyNuPVdlKHRoaXMsTCx2b2lkIDApO2dldCBkYXRhTmFtZSgpe3JldHVybiB0aGlzLiNufXNldCBkYXRhTmFtZShoZSl7dGhpcy4jbj1oZX0jbD0oV2UodGhpcyxrKSxXZSh0aGlzLFMsITApKTtnZXQgc2VhcmNoYWJsZSgpe3JldHVybiB0aGlzLiNsfXNldCBzZWFyY2hhYmxlKGhlKXt0aGlzLiNsPWhlfSNjPShXZSh0aGlzLFQpLFdlKHRoaXMsQSxbXSkpO2dldCBkYXRhQWN0aW9ucygpe3JldHVybiB0aGlzLiNjfXNldCBkYXRhQWN0aW9ucyhoZSl7dGhpcy4jYz1oZX0jZD0oV2UodGhpcyxGKSxXZSh0aGlzLFYsW10pKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNkfXNldCBjb2x1bW5zKGhlKXt0aGlzLiNkPWhlfSNmPShXZSh0aGlzLFNlKSxXZSh0aGlzLFcsdm9pZCAwKSk7Z2V0IHJvd0tleSgpe3JldHVybiB0aGlzLiNmfXNldCByb3dLZXkoaGUpe3RoaXMuI2Y9aGV9I3U9KFdlKHRoaXMsTmUpLFdlKHRoaXMsWCwhMSkpO2dldCBhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbigpe3JldHVybiB0aGlzLiN1fXNldCBhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbihoZSl7dGhpcy4jdT1oZX0jcD0oV2UodGhpcyxJKSxXZSh0aGlzLEcsaGU9PmhlKSk7Z2V0IGRpc3BsYXlGdW5jdGlvbigpe3JldHVybiB0aGlzLiNwfXNldCBkaXNwbGF5RnVuY3Rpb24oaGUpe3RoaXMuI3A9aGV9I2g9KFdlKHRoaXMsaiksV2UodGhpcyxrZSxoZT0+aGUpKTtnZXQgcmV2ZXJzZURpc3BsYXlGdW5jdGlvbigpe3JldHVybiB0aGlzLiNofXNldCByZXZlcnNlRGlzcGxheUZ1bmN0aW9uKGhlKXt0aGlzLiNoPWhlfSNtPShXZSh0aGlzLERlKSxXZSh0aGlzLFUsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkRGF0YVJvdygpe3JldHVybiB0aGlzLiNtfXNldCBzZWxlY3RlZERhdGFSb3coaGUpe3RoaXMuI209aGV9I2c9KFdlKHRoaXMsQiksV2UodGhpcyx2ZSxbXSkpO2dldCBlZGl0YWJsZUZpZWxkcygpe3JldHVybiB0aGlzLiNnfXNldCBlZGl0YWJsZUZpZWxkcyhoZSl7dGhpcy4jZz1oZX0jeD0oV2UodGhpcyx5ZSksV2UodGhpcyxuZSwhMSkpO2dldCBzaG93VmVydGljYWxMaW5lcygpe3JldHVybiB0aGlzLiN4fXNldCBzaG93VmVydGljYWxMaW5lcyhoZSl7dGhpcy4jeD1oZX0jYj0oV2UodGhpcyxyZSksV2UodGhpcyxFZSwhMSkpO2dldCBzaG93SG9yaXpvbnRhbExpbmVzKCl7cmV0dXJuIHRoaXMuI2J9c2V0IHNob3dIb3Jpem9udGFsTGluZXMoaGUpe3RoaXMuI2I9aGV9I3Y9KFdlKHRoaXMscnQpLFdlKHRoaXMsWiwhMCkpO2dldCBzaG93R3JpZCgpe3JldHVybiB0aGlzLiN2fXNldCBzaG93R3JpZChoZSl7dGhpcy4jdj1oZX1maWxlcz0oV2UodGhpcyxKKSxbXSk7ZmlsZVdlYWtNYXA9bmV3IFdlYWtNYXA7ZGF0YUNoYW5nZVN1YmplY3Q9bmV3IEF0LnNtYXJ0cngucnhqcy5TdWJqZWN0OyN5PVdlKHRoaXMsQWUsdm9pZCAwKTtnZXQgc29ydEtleSgpe3JldHVybiB0aGlzLiN5fXNldCBzb3J0S2V5KGhlKXt0aGlzLiN5PWhlfSN3PShXZSh0aGlzLEhlKSxXZSh0aGlzLGl0LG51bGwpKTtnZXQgc29ydERpcigpe3JldHVybiB0aGlzLiN3fXNldCBzb3J0RGlyKGhlKXt0aGlzLiN3PWhlfSNNPShXZSh0aGlzLHp0KSxXZSh0aGlzLFEsIiIpKTtnZXQgZmlsdGVyVGV4dCgpe3JldHVybiB0aGlzLiNNfXNldCBmaWx0ZXJUZXh0KGhlKXt0aGlzLiNNPWhlfSN6PShXZSh0aGlzLEspLFdlKHRoaXMsb3Qse30pKTtnZXQgY29sdW1uRmlsdGVycygpe3JldHVybiB0aGlzLiN6fXNldCBjb2x1bW5GaWx0ZXJzKGhlKXt0aGlzLiN6PWhlfSNrPShXZSh0aGlzLG50KSxXZSh0aGlzLHZhLCExKSk7Z2V0IHNob3dDb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI2t9c2V0IHNob3dDb2x1bW5GaWx0ZXJzKGhlKXt0aGlzLiNrPWhlfSNTPShXZSh0aGlzLEtyKSxXZSh0aGlzLFRlLCExKSk7Z2V0IHN0aWNreUhlYWRlcigpe3JldHVybiB0aGlzLiNTfXNldCBzdGlja3lIZWFkZXIoaGUpe3RoaXMuI1M9aGV9I0M9KFdlKHRoaXMsamUpLFdlKHRoaXMsSzEsInRhYmxlIikpO2dldCBzZWFyY2hNb2RlKCl7cmV0dXJuIHRoaXMuI0N9c2V0IHNlYXJjaE1vZGUoaGUpe3RoaXMuI0M9aGV9X19zZWFyY2hUZXh0U3ViPVdlKHRoaXMsZjIpO19fc2VhcmNoTW9kZVN1YjsjTD1XZSh0aGlzLHUyLCJub25lIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jTH1zZXQgc2VsZWN0aW9uTW9kZShoZSl7dGhpcy4jTD1oZX0jVD0oV2UodGhpcyxpbyksV2UodGhpcyxzbyxuZXcgU2V0KSk7Z2V0IHNlbGVjdGVkSWRzKCl7cmV0dXJuIHRoaXMuI1R9c2V0IHNlbGVjdGVkSWRzKGhlKXt0aGlzLiNUPWhlfV9yb3dJZE1hcD0oV2UodGhpcyx3NSksbmV3IFdlYWtNYXApO19yb3dJZENvdW50ZXI9MDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1mRnQ7cmVuZGVyKCl7bGV0IGllPUFycmF5LmlzQXJyYXkodGhpcy5jb2x1bW5zKSYmdGhpcy5jb2x1bW5zLmxlbmd0aD4wP3VGdCh0aGlzLmNvbHVtbnMsdGhpcy5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbix0aGlzLmRpc3BsYXlGdW5jdGlvbix0aGlzLmRhdGEpOnVFZSh0aGlzLmRpc3BsYXlGdW5jdGlvbix0aGlzLmRhdGEpLENlPWhGdCh0aGlzLmZpbHRlclRleHQsdGhpcy5zZWFyY2hNb2RlPT09ImRhdGEiPyJkYXRhIjoidGFibGUiLGllKSx6MT1wRnQodGhpcy5kYXRhLGllLHRoaXMuc29ydEtleSx0aGlzLnNvcnREaXIsdGhpcy5maWx0ZXJUZXh0LHRoaXMuY29sdW1uRmlsdGVycyx0aGlzLnNlYXJjaE1vZGU9PT0iZGF0YSI/ImRhdGEiOiJ0YWJsZSIsQ2V8fHZvaWQgMCk7cmV0dXJuIHRoaXMuX2xhc3RWaWV3RGF0YT16MSxNYAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8IS0tIHRoZSBoZWFkaW5nIHBhcnQgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmdDb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIGhlYWRpbmcxIj4ke3RoaXMubGFiZWx8fHRoaXMuaGVhZGluZzF9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmcgaGVhZGluZzIiPiR7dGhpcy5oZWFkaW5nMn08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyQWN0aW9ucyI+CiAgICAgICAgICAgICR7RWEucmVzb2x2ZUV4ZWMoYXN5bmMoKT0+e2xldCB0dD1bXTtmb3IobGV0IHQxIG9mIHRoaXMuZGF0YUFjdGlvbnMpdDEudHlwZS5pbmNsdWRlcygiaGVhZGVyIikmJnR0LnB1c2goTWA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRlckFjdGlvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e3QxLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7dDEuaWNvbk5hbWU/TWA8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke3QxLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAke3QxLm5hbWV9YDp0MS5uYW1lfQogICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtyZXR1cm4gdHR9KX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmdTZXBhcmF0aW9uIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hHcmlkIGhpZGRlbiI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJsdWNlbmUgc3ludGF4IHNlYXJjaCJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke2AKICAgICAgICAgICAgICBZb3UgY2FuIHVzZSB0aGUgbHVjZW5lIHN5bnRheCB0byBzZWFyY2ggZm9yIGRhdGEsIGUuZy46CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgbmFtZTogImpvaG4iIEFORCBhZ2U6IDE4CiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsic2VhcmNoIG1vZGUifQogICAgICAgICAgICAub3B0aW9ucz0ke1sidGFibGUiLCJkYXRhIiwic2VydmVyIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJ0YWJsZSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke2AKICAgICAgICAgICAgICBUaGVyZSBhcmUgdGhyZWUgYmFzaWMgbW9kZXM6CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgKiB0YWJsZTogb25seSBzZWFyY2hlcyBkYXRhIGFscmVhZHkgaW4gdGhlIHRhYmxlCiAgICAgICAgICAgICAgKiBkYXRhOiBzZWFyY2hlcyBvcmlnaW5hbCBkYXRhLCBpZ25vcmluZyB0YWJsZSB0cmFuc2Zvcm1zCiAgICAgICAgICAgICAgKiBzZXJ2ZXI6IHNlYXJjaGVzIGRhdGEgb24gdGhlIHNlcnZlcgogICAgICAgICAgICAgIAogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSB0aGUgYWN0dWFsIHRhYmxlIC0tPgogICAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aD4wP01gCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTY3JvbGwiPgogICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICR7dGhpcy5zZWxlY3Rpb25Nb2RlIT09Im5vbmUiP01gCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiP01gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmFyZUFsbFZpc2libGVTZWxlY3RlZCgpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke3RoaXMuaXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHt0dD0+e3R0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0U2VsZWN0VmlzaWJsZSh0dC5kZXRhaWw9PT0hMCl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgOk1gYH0KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICBgOk1gYH0KICAgICAgICAgICAgICAgICAgICAke2llLmZpbHRlcih0dD0+IXR0LmhpZGRlbikubWFwKHR0PT57bGV0IHQxPSEhdHQuc29ydGFibGUsRDI9dGhpcy5nZXRBcmlhU29ydCh0dCk7cmV0dXJuIE1gCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJjb2x1bW5oZWFkZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXNvcnQ9JHtEMn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSIke3QxPyJjdXJzb3I6IHBvaW50ZXI7IjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dDE/dGhpcy50b2dnbGVTb3J0KHR0KTpudWxsfQogICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dHQuaGVhZGVyPz90dC5rZXl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU29ydEluZGljYXRvcih0dCl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5gfSl9CiAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZih0aGlzLmRhdGFBY3Rpb25zJiZ0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aD4wKXJldHVybiBNYCA8dGggY2xhc3M9ImFjdGlvbnNDb2wiPkFjdGlvbnM8L3RoPiBgfSkoKX0KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnNob3dDb2x1bW5GaWx0ZXJzP01gPHRyIGNsYXNzPSJmaWx0ZXJzUm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSI/TWA8dGggc3R5bGU9IndpZHRoOjQycHg7Ij48L3RoPmA6TWBgfQogICAgICAgICAgICAgICAgICAgICAgICAke2llLmZpbHRlcih0dD0+IXR0LmhpZGRlbikubWFwKHR0PT57bGV0IHQxPVN0cmluZyh0dC5rZXkpO3JldHVybiB0dC5maWx0ZXJhYmxlPT09ITE/TWA8dGg+PC90aD5gOk1gPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkZpbHRlci4uLiIgLnZhbHVlPSR7dGhpcy5jb2x1bW5GaWx0ZXJzW3QxXXx8IiJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7RDI9PnRoaXMuc2V0Q29sdW1uRmlsdGVyKHQxLEQyLnRhcmdldC52YWx1ZSl9IC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPmB9KX0KICAgICAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZih0aGlzLmRhdGFBY3Rpb25zJiZ0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aD4wKXJldHVybiBNYCA8dGg+PC90aD4gYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmA6TWBgfQogICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgJHt6MS5tYXAoKHR0LHQxKT0+e2xldCBEMj1RZT0+UWUudGFnTmFtZT09PSJUUiI/UWU6RDIoUWUucGFyZW50RWxlbWVudCk7cmV0dXJuIE1gCiAgICAgICAgICAgICAgICAgICAgICA8dHIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PntpZih0aGlzLnNlbGVjdGVkRGF0YVJvdz10dCx0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIil7bGV0IFFlPXRoaXMuZ2V0Um93SWQodHQpO3RoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZChRZSksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9fX0KICAgICAgICAgICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke2FzeW5jIFFlPT57UWUucHJldmVudERlZmF1bHQoKSxRZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgVDE9RDIoUWUudGFyZ2V0KTtzZXRUaW1lb3V0KCgpPT57VDEuY2xhc3NMaXN0LmFkZCgiaGFzQXR0YWNobWVudCIpfSwwKX19CiAgICAgICAgICAgICAgICAgICAgICAgIEBkcmFnbGVhdmU9JHthc3luYyBRZT0+e1FlLnByZXZlbnREZWZhdWx0KCksUWUuc3RvcFByb3BhZ2F0aW9uKCksRDIoUWUudGFyZ2V0KS5jbGFzc0xpc3QucmVtb3ZlKCJoYXNBdHRhY2htZW50Iil9fQogICAgICAgICAgICAgICAgICAgICAgICBAZHJhZ292ZXI9JHthc3luYyBRZT0+e1FlLnByZXZlbnREZWZhdWx0KCl9fQogICAgICAgICAgICAgICAgICAgICAgICBAZHJvcD0ke2FzeW5jIFFlPT57UWUucHJldmVudERlZmF1bHQoKTtsZXQgVDE9W107Zm9yKGxldCBPYSBvZiBBcnJheS5mcm9tKFFlLmRhdGFUcmFuc2Zlci5maWxlcykpdGhpcy5maWxlcy5wdXNoKE9hKSxUMS5wdXNoKE9hKSx0aGlzLnJlcXVlc3RVcGRhdGUoKTtsZXQgRTI9dGhpcy5maWxlV2Vha01hcC5nZXQodHQpO0UyP0UyLnB1c2goLi4uVDEpOnRoaXMuZmlsZVdlYWtNYXAuc2V0KHR0LFQxKX19CiAgICAgICAgICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke2FzeW5jIFFlPT57V3Qub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoUWUsdGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiY29udGV4dG1lbnUiKS5tYXAoVDE9Pih7bmFtZTpUMS5uYW1lLGljb25OYW1lOlQxLmljb25OYW1lLGFjdGlvbjphc3luYygpPT4oYXdhaXQgVDEuYWN0aW9uRnVuYyh7aXRlbTp0dCx0YWJsZTp0aGlzfSksbnVsbCl9KSkpfX0KICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7dHQ9PT10aGlzLnNlbGVjdGVkRGF0YVJvdz8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSI/TWA8dGQgc3R5bGU9IndpZHRoOjQycHg7IHRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pc1Jvd1NlbGVjdGVkKHR0KX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtRZT0+e1FlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0Um93U2VsZWN0ZWQodHQsUWUuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+YDpNYGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7aWUuZmlsdGVyKFFlPT4hUWUuaGlkZGVuKS5tYXAoKFFlLFQxKT0+e2xldCBFMj11NSh0dCxRZSx0aGlzLmRpc3BsYXlGdW5jdGlvbiksT2E9UWUucmVuZGVyZXI/UWUucmVuZGVyZXIoRTIsdHQse3Jvd0luZGV4OnQxLGNvbEluZGV4OlQxLGNvbHVtbjpRZX0pOkUyLHo1PVN0cmluZyhRZS5rZXkpO3JldHVybiBNYAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGJsY2xpY2s9JHtHST0+e2xldCBrNT10aGlzLmRhdGFBY3Rpb25zLmZpbmQoWUk9PllJLnR5cGUuaW5jbHVkZXMoImRvdWJsZUNsaWNrIikpO3RoaXMuZWRpdGFibGVGaWVsZHMuaW5jbHVkZXMoejUpP3RoaXMuaGFuZGxlQ2VsbEVkaXRpbmcoR0ksdHQsejUpOms1JiZrNS5hY3Rpb25GdW5jKHtpdGVtOnR0LHRhYmxlOnRoaXN9KX19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lckNlbGxDb250YWluZXIiPiR7T2F9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICR7KCgpPT57aWYodGhpcy5kYXRhQWN0aW9ucyYmdGhpcy5kYXRhQWN0aW9ucy5sZW5ndGg+MClyZXR1cm4gTWAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJhY3Rpb25zQ29sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiaW5Sb3ciKS5tYXAoUWU9Pk1gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImFjdGlvbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT5RZS5hY3Rpb25GdW5jKHtpdGVtOnR0LHRhYmxlOnRoaXN9KX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke1FlLmljb25OYW1lP01gIDxkZWVzLWljb24gLmljb249JHtRZS5pY29uTmFtZX0+PC9kZWVzLWljb24+IGA6UWUubmFtZX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfSkoKX0KICAgICAgICAgICAgICAgICAgICAgIDwvdHI+YH0pfQogICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOk1gIDxkaXYgY2xhc3M9Im5vRGF0YVNldCI+Tm8gZGF0YSBzZXQhPC9kaXY+IGB9CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRhYmxlU3RhdGlzdGljcyI+CiAgICAgICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aH0gJHt0aGlzLmRhdGFOYW1lfHwiZGF0YSByb3dzIn0gKHRvdGFsKSB8CiAgICAgICAgICAgICR7dGhpcy5zZWxlY3RlZERhdGFSb3c/YCMgJHt0aGlzLmRhdGEuaW5kZXhPZih0aGlzLnNlbGVjdGVkRGF0YVJvdykrMX1gOiJObyJ9CiAgICAgICAgICAgIHNlbGVjdGVkCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlckFjdGlvbnMiPgogICAgICAgICAgICAke0VhLnJlc29sdmVFeGVjKGFzeW5jKCk9PntsZXQgdHQ9W107Zm9yKGxldCB0MSBvZiB0aGlzLmRhdGFBY3Rpb25zKXQxLnR5cGUuaW5jbHVkZXMoImZvb3RlciIpJiZ0dC5wdXNoKE1gPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmb290ZXJBY3Rpb24iCiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0MS5hY3Rpb25GdW5jKHtpdGVtOnRoaXMuc2VsZWN0ZWREYXRhUm93LHRhYmxlOnRoaXN9KX19CiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAke3QxLmljb25OYW1lP01gPGRlZXMtaWNvbiAuaWNvblNpemU9JHsxNH0gLmljb249JHt0MS5pY29uTmFtZX0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0MS5uYW1lfWA6dDEubmFtZX0KICAgICAgICAgICAgICAgICAgPC9kaXY+YCk7cmV0dXJuIHR0fSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe31hc3luYyB1cGRhdGVkKGhlKXtzdXBlci51cGRhdGVkKGhlKSx0aGlzLmRldGVybWluZUNvbHVtbldpZHRocygpLHRoaXMuc2VhcmNoYWJsZSYmKHRoaXMuZGF0YUFjdGlvbnMuZmluZChDZT0+Q2UudHlwZS5pbmNsdWRlcygiaGVhZGVyIikmJkNlLm5hbWU9PT0iU2VhcmNoIil8fCh0aGlzLmRhdGFBY3Rpb25zLnVuc2hpZnQoe25hbWU6IlNlYXJjaCIsaWNvbk5hbWU6Im1hZ25pZnlpbmdHbGFzcyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6YXN5bmMoKT0+e2NvbnNvbGUubG9nKCJvcGVuIHNlYXJjaCIpLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoR3JpZCIpLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIpfX0pLGNvbnNvbGUubG9nKHRoaXMuZGF0YUFjdGlvbnMpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKSx0aGlzLndpcmVTZWFyY2hJbnB1dHMoKSl9X19kZWJvdW5jZVRpbWVyO2RlYm91bmNlUnVuKGhlLGllPTIwMCl7dGhpcy5fX2RlYm91bmNlVGltZXImJmNsZWFyVGltZW91dCh0aGlzLl9fZGVib3VuY2VUaW1lciksdGhpcy5fX2RlYm91bmNlVGltZXI9c2V0VGltZW91dChoZSxpZSl9d2lyZVNlYXJjaElucHV0cygpe2xldCBoZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIGRlZXMtaW5wdXQtdGV4dCIpLGllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNlYXJjaEdyaWQgZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZSIpO2hlJiYhdGhpcy5fX3NlYXJjaFRleHRTdWImJih0aGlzLl9fc2VhcmNoVGV4dFN1Yj1oZS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZShDZT0+e2xldCB6MT1DZT8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTp6MSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dCh6MSl9KX0pKSxpZSYmIXRoaXMuX19zZWFyY2hNb2RlU3ViJiYodGhpcy5fX3NlYXJjaE1vZGVTdWI9aWUuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoQ2U9PntsZXQgejE9Q2U/LnNlbGVjdGVkT3B0aW9ufHxDZT8udmFsdWV8fCJ0YWJsZSI7aWYoejE9PT0idGFibGUifHx6MT09PSJkYXRhInx8ejE9PT0ic2VydmVyIil7dGhpcy5zZWFyY2hNb2RlPXoxO2xldCB0dD1oZT8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTp0dCxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dCh0dCl9KX19KSl9YXN5bmMgZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCl7YXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IGllPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJ0YWJsZSIpO2lmKCFpZSlyZXR1cm47bGV0IENlPWllLnJvd3NbMF0uY2VsbHMsejE9YXN5bmModHQsdDE9ITEpPT57bGV0IEQyPVZlLmRlZmVyKCksUWU9Q2VbdHRdLFQxPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKFFlKS53aWR0aDtpZihRZS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpKXtsZXQgRTI9dGhpcy5kYXRhQWN0aW9ucy5maWx0ZXIoT2E9Pk9hLnR5cGUuaW5jbHVkZXMoImluUm93IikpLmxlbmd0aCozNjtRZS5zdHlsZS53aWR0aD1gJHtNYXRoLm1heChFMiw2OCl9cHhgfWVsc2UgUWUuc3R5bGUud2lkdGg9VDE7dDEmJihyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntEMi5yZXNvbHZlKCl9KSxhd2FpdCBEMi5wcm9taXNlKX07Q2VbQ2UubGVuZ3RoLTFdLnRleHRDb250ZW50LmluY2x1ZGVzKCJBY3Rpb25zIikmJmF3YWl0IHoxKENlLmxlbmd0aC0xLCEwKTtmb3IobGV0IHR0PTA7dHQ8Q2UubGVuZ3RoO3R0KyspQ2VbdHRdLnRleHRDb250ZW50LmluY2x1ZGVzKCJBY3Rpb25zIil8fGF3YWl0IHoxKHR0KTtpZS5zdHlsZS50YWJsZUxheW91dD0iZml4ZWQifXRvZ2dsZVNvcnQoaGUpe2xldCBpZT1TdHJpbmcoaGUua2V5KTt0aGlzLnNvcnRLZXkhPT1pZT8odGhpcy5zb3J0S2V5PWllLHRoaXMuc29ydERpcj0iYXNjIik6dGhpcy5zb3J0RGlyPT09ImFzYyI/dGhpcy5zb3J0RGlyPSJkZXNjIjp0aGlzLnNvcnREaXI9PT0iZGVzYyI/KHRoaXMuc29ydERpcj1udWxsLHRoaXMuc29ydEtleT12b2lkIDApOnRoaXMuc29ydERpcj0iYXNjIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzb3J0Q2hhbmdlIix7ZGV0YWlsOntrZXk6dGhpcy5zb3J0S2V5LGRpcjp0aGlzLnNvcnREaXJ9LGJ1YmJsZXM6ITB9KSksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9Z2V0QXJpYVNvcnQoaGUpe3JldHVybiBTdHJpbmcoaGUua2V5KSE9PXRoaXMuc29ydEtleXx8IXRoaXMuc29ydERpcj8ibm9uZSI6dGhpcy5zb3J0RGlyPT09ImFzYyI/ImFzY2VuZGluZyI6ImRlc2NlbmRpbmcifXJlbmRlclNvcnRJbmRpY2F0b3IoaGUpe3JldHVybiBTdHJpbmcoaGUua2V5KSE9PXRoaXMuc29ydEtleXx8IXRoaXMuc29ydERpcj9NYGA6TWA8c3BhbiBzdHlsZT0ibWFyZ2luLWxlZnQ6NnB4OyBvcGFjaXR5OjAuNzsiPiR7dGhpcy5zb3J0RGlyPT09ImFzYyI/Ilx1MjVCMiI6Ilx1MjVCQyJ9PC9zcGFuPmB9c2V0RmlsdGVyVGV4dChoZSl7bGV0IGllPXRoaXMuZmlsdGVyVGV4dDt0aGlzLmZpbHRlclRleHQ9aGU/PyIiLGllIT09dGhpcy5maWx0ZXJUZXh0JiYodGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1zZXRDb2x1bW5GaWx0ZXIoaGUsaWUpe3RoaXMuY29sdW1uRmlsdGVycz17Li4udGhpcy5jb2x1bW5GaWx0ZXJzLFtoZV06aWV9LHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbHRlckNoYW5nZSIse2RldGFpbDp7dGV4dDp0aGlzLmZpbHRlclRleHQsY29sdW1uczp7Li4udGhpcy5jb2x1bW5GaWx0ZXJzfX0sYnViYmxlczohMH0pKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1nZXRSb3dJZChoZSl7aWYodGhpcy5yb3dLZXkpcmV0dXJuIHR5cGVvZiB0aGlzLnJvd0tleT09ImZ1bmN0aW9uIj90aGlzLnJvd0tleShoZSk6U3RyaW5nKGhlW3RoaXMucm93S2V5XSk7bGV0IGllPWhlO3JldHVybiB0aGlzLl9yb3dJZE1hcC5oYXMoaWUpfHx0aGlzLl9yb3dJZE1hcC5zZXQoaWUsU3RyaW5nKCsrdGhpcy5fcm93SWRDb3VudGVyKSksdGhpcy5fcm93SWRNYXAuZ2V0KGllKX1pc1Jvd1NlbGVjdGVkKGhlKXtyZXR1cm4gdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChoZSkpfXRvZ2dsZVJvd1NlbGVjdGVkKGhlKXtsZXQgaWU9dGhpcy5nZXRSb3dJZChoZSk7dGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/KHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZChpZSkpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJih0aGlzLnNlbGVjdGVkSWRzLmhhcyhpZSk/dGhpcy5zZWxlY3RlZElkcy5kZWxldGUoaWUpOnRoaXMuc2VsZWN0ZWRJZHMuYWRkKGllKSksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c2V0Um93U2VsZWN0ZWQoaGUsaWUpe2xldCBDZT10aGlzLmdldFJvd0lkKGhlKTt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIj8odGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLGllJiZ0aGlzLnNlbGVjdGVkSWRzLmFkZChDZSkpOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aSImJihpZT90aGlzLnNlbGVjdGVkSWRzLmFkZChDZSk6dGhpcy5zZWxlY3RlZElkcy5kZWxldGUoQ2UpKSx0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hcmVBbGxWaXNpYmxlU2VsZWN0ZWQoKXtsZXQgaGU9dGhpcy5fbGFzdFZpZXdEYXRhfHxbXTtpZihoZS5sZW5ndGg9PT0wKXJldHVybiExO2ZvcihsZXQgaWUgb2YgaGUpaWYoIXRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoaWUpKSlyZXR1cm4hMTtyZXR1cm4hMH1pc1Zpc2libGVTZWxlY3Rpb25JbmRldGVybWluYXRlKCl7bGV0IGhlPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoaGUubGVuZ3RoPT09MClyZXR1cm4hMTtsZXQgaWU9MDtmb3IobGV0IENlIG9mIGhlKXRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoQ2UpKSYmaWUrKztyZXR1cm4gaWU+MCYmaWU8aGUubGVuZ3RofXNldFNlbGVjdFZpc2libGUoaGUpe2xldCBpZT10aGlzLl9sYXN0Vmlld0RhdGF8fFtdO2lmKGhlKWZvcihsZXQgQ2Ugb2YgaWUpdGhpcy5zZWxlY3RlZElkcy5hZGQodGhpcy5nZXRSb3dJZChDZSkpO2Vsc2UgZm9yKGxldCBDZSBvZiBpZSl0aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZSh0aGlzLmdldFJvd0lkKENlKSk7dGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9ZW1pdFNlbGVjdGlvbkNoYW5nZSgpe2xldCBoZT1BcnJheS5mcm9tKHRoaXMuc2VsZWN0ZWRJZHMpLGllPXRoaXMuZGF0YS5maWx0ZXIoQ2U9PnRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoQ2UpKSk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZElkczpoZSxzZWxlY3RlZFJvd3M6aWV9LGJ1YmJsZXM6ITB9KSl9Z2V0QWN0aW9uc0ZvclR5cGUoaGUpe2xldCBpZT1bXTtmb3IobGV0IENlIG9mIHRoaXMuZGF0YUFjdGlvbnMpQ2UudHlwZS5pbmNsdWRlcyhoZSkmJmllLnB1c2goQ2UpO3JldHVybiBpZX1hc3luYyBoYW5kbGVDZWxsRWRpdGluZyhoZSxpZSxDZSl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7bGV0IHoxPWhlLnRhcmdldCx0dD16MS5zdHlsZS5jb2xvcjt6MS5zdHlsZS5jb2xvcj0idHJhbnNwYXJlbnQiO2xldCBEMj10aGlzLmRpc3BsYXlGdW5jdGlvbihpZSlbQ2VdPz9pZVtDZV0/PyIiLFFlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7UWUudHlwZT0idGV4dCIsUWUudmFsdWU9RDI7bGV0IFQxPWFzeW5jKEUyPSEwLE9hPSExKT0+e0UyJiZRZS5ibHVyKCksT2EmJihpZVtDZV09UWUudmFsdWUsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpLFFlLnJlbW92ZSgpLHoxLnN0eWxlLmNvbG9yPXR0LHRoaXMucmVxdWVzdFVwZGF0ZSgpfTtRZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e1QxKCExLCExKX0pLFFlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEUyPT57RTIua2V5PT09IkVudGVyIiYmVDEoITAsITApfSksejEuYXBwZW5kQ2hpbGQoUWUpLFFlLmZvY3VzKCl9c3RhdGlje1dlKHIsYSl9fTtyZXR1cm4gTTU9cn0pKCk7ZmUoKTt2YXIgbUZ0PSgpPT5NYAogIDxzdHlsZT4KICAgICR7dGVgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5mb3JtLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2UgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDM1LjMlKSIsImhzbCgxNDIuMSA3MC42JSA2NS4zJSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5zdGF0dXMtbWVzc2FnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDcyLjIlIDQwLjYlKSIsImhzbCgwIDcyLjIlIDYwLjYlKSIpfTsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLGE9dC5xdWVyeVNlbGVjdG9yKCIuZm9ybS1vdXRwdXQiKTtlJiZhJiYoZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsYXN5bmMgaT0+e2xldCBvPWkuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YToiLG8pLGUuc2V0U3RhdHVzKCJwZW5kaW5nIiwiUHJvY2Vzc2luZyB5b3VyIHJlZ2lzdHJhdGlvbi4uLiIpLGEuaW5uZXJIVE1MPWA8c3Ryb25nPlN1Ym1pdHRlZCBEYXRhOjwvc3Ryb25nPgoke0pTT04uc3RyaW5naWZ5KG8sbnVsbCwyKX1gLGF3YWl0IHN0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUuc2V0U3RhdHVzKCJzdWNjZXNzIiwiUmVnaXN0cmF0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhIiksYXdhaXQgc3QucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDJlMyksZS5yZXNldCgpLGEuaW5uZXJIVE1MPSI8ZW0+Rm9ybSBoYXMgYmVlbiByZXNldDwvZW0+In0pLGUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0LCBkZWVzLWlucHV0LWRyb3Bkb3duLCBkZWVzLWlucHV0LWNoZWNrYm94IikuZm9yRWFjaChpPT57aS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IiwoKT0+e2NvbnNvbGUubG9nKCJGaWVsZCBjaGFuZ2VkOiIsaS5nZXRBdHRyaWJ1dGUoImtleSIpKX0pfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJDb21wbGV0ZSBGb3JtIEV4YW1wbGUiIC5kZXNjcmlwdGlvbj0iQSBjb21wcmVoZW5zaXZlIGZvcm0gd2l0aCB2YXJpb3VzIGlucHV0IHR5cGVzLCB2YWxpZGF0aW9uLCBhbmQgZm9ybSBzdWJtaXNzaW9uIGhhbmRsaW5nIj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImZpcnN0TmFtZSIgCiAgICAgICAgICAgIGxhYmVsPSJGaXJzdCBOYW1lIgogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiWW91ciBnaXZlbiBuYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9Imxhc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9Ikxhc3QgTmFtZSIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImVtYWlsIiAKICAgICAgICAgICAgbGFiZWw9IkVtYWlsIEFkZHJlc3MiCiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJXZSB3aWxsIHVzZSB0aGlzIHRvIGNvbnRhY3QgeW91In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIGtleT0iY291bnRyeSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNvdW50cnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn0se29wdGlvbjoiQ2FuYWRhIixrZXk6ImNhIn0se29wdGlvbjoiR2VybWFueSIsa2V5OiJkZSJ9LHtvcHRpb246IkZyYW5jZSIsa2V5OiJmciJ9LHtvcHRpb246IlVuaXRlZCBLaW5nZG9tIixrZXk6InVrIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJwYXNzd29yZCIKICAgICAgICAgICAgbGFiZWw9IlBhc3N3b3JkIgogICAgICAgICAgICBpc1Bhc3N3b3JkQm9vbAogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTWluaW11bSA4IGNoYXJhY3RlcnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJ0ZXJtcyIKICAgICAgICAgICAgbGFiZWw9IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAga2V5PSJuZXdzbGV0dGVyIgogICAgICAgICAgICBsYWJlbD0iU2VuZCBtZSBwcm9tb3Rpb25hbCBlbWFpbHMiCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q3JlYXRlIEFjY291bnQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1vdXRwdXQiPgogICAgICAgICAgPGVtPlN1Ym1pdCB0aGUgZm9ybSB0byBzZWUgdGhlIGNvbGxlY3RlZCBkYXRhLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtlJiYoY29uc29sZS5sb2coIkhvcml6b250YWwgZm9ybSBsYXlvdXQgYWN0aXZlIiksZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIscj0+e2xldCBpPXIuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZpbHRlciBhcHBsaWVkOiIsaSk7bGV0IG89TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMCkrMTtjb25zb2xlLmxvZyhgRm91bmQgJHtvfSByZXN1bHRzIHdpdGggZmlsdGVyczpgLGkpfSksZS5xdWVyeVNlbGVjdG9yQWxsKCJba2V5XSIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsYXN5bmMoKT0+e2xldCBpPWF3YWl0IGUuY29sbGVjdEZvcm1EYXRhKCk7Y29uc29sZS5sb2coIkxpdmUgZmlsdGVyIHVwZGF0ZToiLGkpfSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9Ikhvcml6b250YWwgRm9ybSBMYXlvdXQiIC5kZXNjcmlwdGlvbj0iQ29tcGFjdCBmb3JtIHdpdGggaW5wdXRzIGFycmFuZ2VkIGhvcml6b250YWxseSAtIHBlcmZlY3QgZm9yIGZpbHRlcnMgYW5kIHF1aWNrIGZvcm1zIj4KICAgICAgICA8ZGVlcy1mb3JtIGhvcml6b250YWwtbGF5b3V0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAga2V5PSJzZWFyY2giIAogICAgICAgICAgICBsYWJlbD0iU2VhcmNoIgogICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIga2V5d29yZHMuLi4iCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIGtleT0iY2F0ZWdvcnkiCiAgICAgICAgICAgIC5sYWJlbD0keyJDYXRlZ29yeSJ9CiAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQWxsIixrZXk6ImFsbCJ9LHtvcHRpb246IlByb2R1Y3RzIixrZXk6InByb2R1Y3RzIn0se29wdGlvbjoiU2VydmljZXMiLGtleToic2VydmljZXMifSx7b3B0aW9uOiJTdXBwb3J0IixrZXk6InN1cHBvcnQifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICBrZXk9InNvcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJTb3J0IEJ5In0KICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJOZXdlc3QiLGtleToibmV3ZXN0In0se29wdGlvbjoiUG9wdWxhciIsa2V5OiJwb3B1bGFyIn0se29wdGlvbjoiUHJpY2U6IExvdyB0byBIaWdoIixrZXk6InByaWNlX2FzYyJ9LHtvcHRpb246IlByaWNlOiBIaWdoIHRvIExvdyIsa2V5OiJwcmljZV9kZXNjIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAga2V5PSJpblN0b2NrIgogICAgICAgICAgICBsYWJlbD0iSW4gU3RvY2sgT25seSIKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLGE9dC5xdWVyeVNlbGVjdG9yKCIjc3RhdHVzLWRpc3BsYXkiKTtpZihlKXtlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixhc3luYyBpPT57bGV0IG89aS5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiQWR2YW5jZWQgZm9ybSBkYXRhOiIsbyksZS5zZXRTdGF0dXMoInBlbmRpbmciLCJWYWxpZGF0aW5nIHlvdXIgaW5mb3JtYXRpb24uLi4iKSxhd2FpdCBzdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwMCksby5pYmFuJiZvLmliYW4ubGVuZ3RoPjE1PyhlLnNldFN0YXR1cygic3VjY2VzcyIsIkFwcGxpY2F0aW9uIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHkhIiksYSYmKGEuY2xhc3NOYW1lPSJzdGF0dXMtbWVzc2FnZSBzdWNjZXNzIixhLnRleHRDb250ZW50PSJcdTI3MTMgWW91ciBhcHBsaWNhdGlvbiBoYXMgYmVlbiBzdWJtaXR0ZWQuIFdlIHdpbGwgY29udGFjdCB5b3Ugc29vbi4iKSk6KGUuc2V0U3RhdHVzKCJlcnJvciIsIlBsZWFzZSBjaGVjayB5b3VyIElCQU4iKSxhJiYoYS5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIGVycm9yIixhLnRleHRDb250ZW50PSJcdTI3MTcgSW52YWxpZCBJQkFOIGZvcm1hdC4gUGxlYXNlIGNoZWNrIGFuZCB0cnkgYWdhaW4uIikpLGNvbnNvbGUubG9nKCJGb3JtIGRhdGEgbG9nZ2VkOiIsbyl9KTtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpO3ImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IG89aS5kZXRhaWw/LmZpbGVzfHxbXTtjb25zb2xlLmxvZyhgJHtvLmxlbmd0aH0gZmlsZShzKSBzZWxlY3RlZCBmb3IgdXBsb2FkYCl9KX19fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkFkdmFuY2VkIEZvcm0gRmVhdHVyZXMiIC5kZXNjcmlwdGlvbj0iRm9ybSB3aXRoIHNwZWNpYWxpemVkIGlucHV0IHR5cGVzIGFuZCBjb21wbGV4IHZhbGlkYXRpb24iPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIAogICAgICAgICAgICBrZXk9ImliYW4iCiAgICAgICAgICAgIGxhYmVsPSJJQkFOIgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAga2V5PSJwaG9uZSIKICAgICAgICAgICAgbGFiZWw9IlBob25lIE51bWJlciIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICBrZXk9InByZWZlcmVuY2VzIgogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIFByZWZlcmVuY2VzIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVtYWlsIiwiU01TIiwiUHVzaCIsIkluLUFwcCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGlzZWxlY3QKICAgICAgICAgICAga2V5PSJpbnRlcmVzdHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJBcmVhcyBvZiBJbnRlcmVzdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlRlY2hub2xvZ3kiLGtleToidGVjaCJ9LHtvcHRpb246IkRlc2lnbiIsa2V5OiJkZXNpZ24ifSx7b3B0aW9uOiJCdXNpbmVzcyIsa2V5OiJidXNpbmVzcyJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGlzZWxlY3Q+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAga2V5PSJkb2N1bWVudHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJVcGxvYWQgRG9jdW1lbnRzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlBERiwgRE9DLCBvciBET0NYIGZpbGVzIHVwIHRvIDEwTUIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgQXBwbGljYXRpb248L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic3RhdHVzLWRpc3BsYXkiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmA7ZmUoKTtTdCgpO3ZhciBnRnQ9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxoRWU9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LHhGdD1bR0RlLFlEZSxaRGUsdEVlLGFFZSxuRWUsbEVlLGNFZSxLRGUsSkRlLFhEZSxmRWUscEVlXSxpczE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWZvcm0iKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXTt2YXIgZj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJob3Jpem9udGFsLWxheW91dCJ9KV0sZ0Z0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaG9yaXpvbnRhbExheW91dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+Imhvcml6b250YWxMYXlvdXQiaW4gdSxnZXQ6dT0+dS5ob3Jpem9udGFsTGF5b3V0LHNldDoodSxkKT0+e3UuaG9yaXpvbnRhbExheW91dD1kfX0sbWV0YWRhdGE6Y30scyxsKSxnRnQobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxmPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1tRnQ7c3RhdGljIGRlbW9Hcm91cD0iRm9ybSI7bmFtZT0ibXlmb3JtIjtjaGFuZ2VTdWJqZWN0PW5ldyBBdC5zbWFydHJ4LnJ4anMuU3ViamVjdDtyZWFkeURlZmVycmVkPUF0LnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPWhFZSh0aGlzLHMsITEpO2dldCBob3Jpem9udGFsTGF5b3V0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhvcml6b250YWxMYXlvdXQoYyl7dGhpcy4jZT1jfXJlbmRlcigpe3JldHVybiBNYAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7dGhpcy51cGRhdGVSZXF1aXJlZFN0YXR1cygpLHRoaXMudXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCk7Zm9yKGxldCB1IG9mIGMpdS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZShhc3luYygpPT57bGV0IGQ9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKTt0aGlzLmNoYW5nZVN1YmplY3QubmV4dChkKSxjb25zb2xlLmxvZyhkKSx0aGlzLnVwZGF0ZVJlcXVpcmVkU3RhdHVzKCl9KTthd2FpdCB0aGlzLmFkZEJlaGF2aW91cnMoKSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfWdldEZvcm1FbGVtZW50cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbHRlcihjPT54RnQuaW5jbHVkZXMoYy5jb25zdHJ1Y3RvcikpfWdldFN1Ym1pdEJ1dHRvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbmQoYz0+YyBpbnN0YW5jZW9mIGVFZSl9YXN5bmMgdXBkYXRlUmVxdWlyZWRTdGF0dXMoKXtjb25zb2xlLmxvZygiY2hlY2tpbmcgdGhlIHJlcXVpcmVkIHN0YXR1cy4iKTtsZXQgYz0hMDtmb3IobGV0IHUgb2YgdGhpcy5nZXRGb3JtRWxlbWVudHMoKSl1LnJlcXVpcmVkJiYhdS52YWx1ZSYmKGM9ITEpO3RoaXMuZ2V0U3VibWl0QnV0dG9uKCkmJih0aGlzLmdldFN1Ym1pdEJ1dHRvbigpLmRpc2FibGVkPSFjKX1hc3luYyBjb2xsZWN0Rm9ybURhdGEoKXtsZXQgYz10aGlzLmdldEZvcm1FbGVtZW50cygpLHU9e307Zm9yKGxldCBkIG9mIGMpe2lmKCFkLmtleSl7Y29uc29sZS5sb2coYGZvcm0gZWxlbWVudCB3aXRoIGxhYmVsICIke2QubGFiZWx9IiBoYXMgbm8ga2V5LiBza2lwcGluZy5gKTtjb250aW51ZX11W2Qua2V5XT1kLnZhbHVlfXJldHVybiB1fWFzeW5jIGdhdGhlckFuZERpc3BhdGNoKCl7bGV0IGM9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKSx1PW5ldyBDdXN0b21FdmVudCgiZm9ybURhdGEiLHtkZXRhaWw6e2RhdGE6Y30sYnViYmxlczohMH0pO3RoaXMuZGlzcGF0Y2hFdmVudCh1KSxjb25zb2xlLmxvZygiZGlzcGF0Y2hlZCBkYXRhOiIpLGNvbnNvbGUubG9nKGMpfXNldFN0YXR1cyhjLHUpe2xldCBkPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksaD10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO3N3aXRjaChjKXtjYXNlIm5vcm1hbCI6aC5kaXNhYmxlZD0hMSxoLnN0YXR1cz0ibm9ybWFsIjtmb3IobGV0IGcgb2YgZClnLmRpc2FibGVkPSExO2JyZWFrO2Nhc2UicGVuZGluZyI6aC5kaXNhYmxlZD0hMCxoLnN0YXR1cz0icGVuZGluZyI7Zm9yKGxldCBnIG9mIGQpZy5kaXNhYmxlZD0hMDticmVhaztjYXNlInN1Y2Nlc3MiOmguZGlzYWJsZWQ9ITAsaC5zdGF0dXM9InN1Y2Nlc3MiO2ZvcihsZXQgZyBvZiBkKWcuZGlzYWJsZWQ9ITA7YnJlYWs7Y2FzZSJlcnJvciI6aC5kaXNhYmxlZD0hMCxoLnN0YXR1cz0iZXJyb3IiO2ZvcihsZXQgZyBvZiBkKWcuZGlzYWJsZWQ9ITA7YnJlYWt9aC50ZXh0PXV9cmVzZXQoKXtsZXQgYz10aGlzLmdldEZvcm1FbGVtZW50cygpLHU9dGhpcy5nZXRTdWJtaXRCdXR0b24oKTtmb3IobGV0IGQgb2YgYylkLnZhbHVlPW51bGw7dGhpcy5zZXRTdGF0dXMoIm5vcm1hbCIsIlN1Ym1pdCIpfWFzeW5jIGFkZEJlaGF2aW91cnMoKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGM9PntsZXQgdT1jLnRhcmdldDtpZih4RnQuaW5jbHVkZXModS5jb25zdHJ1Y3RvcikmJmMua2V5PT09IkVudGVyIil7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSxoPWQuaW5kZXhPZih1KTtoPGQubGVuZ3RoLTE/ZFtoKzFdLmZvY3VzKCk6KHUuYmx1cigpLHRoaXMuZ2V0U3VibWl0QnV0dG9uKCk/LmZvY3VzKCkpfX0pfXVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7Zm9yKGxldCB1IG9mIGMpImxheW91dE1vZGUiaW4gdSYmKHUubGF5b3V0TW9kZT0iYXV0byIpfXVwZGF0ZWQoYyl7c3VwZXIudXBkYXRlZChjKSxjLmhhcygiaG9yaXpvbnRhbExheW91dCIpJiZ0aGlzLnVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxoRWUodGhpcyxsKX1zdGF0aWN7aEVlKHIsYSl9fTtyZXR1cm4gZj1yfSkoKTtmZSgpO0Z0KCk7dmFyIGJGdD0oKT0+TWAKICA8c3R5bGU+CiAgICAke3RlYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLnZlcnRpY2FsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5pY29uLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1zbmlwcGV0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IHI9YS5nZXRBdHRyaWJ1dGUoInR5cGUiKXx8ImRlZmF1bHQiO2NvbnNvbGUubG9nKGBCdXR0b24gdmFyaWFudCBjbGlja2VkOiAke3J9YCl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCdXR0b24gVmFyaWFudHMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHZpc3VhbCBzdHlsZXMgZm9yIHZhcmlvdXMgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZWZhdWx0Ij5EZWZhdWx0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiPlNlY29uZGFyeTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPkRlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIj5PdXRsaW5lPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+R2hvc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImxpbmsiPkxpbmsgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgcj1hLmdldEF0dHJpYnV0ZSgic2l6ZSIpfHwiZGVmYXVsdCI7Y29uc29sZS5sb2coYEJ1dHRvbiBzaXplOiAke3J9YCl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBCdXR0b24gU2l6ZXMifSAuc3VidGl0bGU9JHsiTXVsdGlwbGUgc2l6ZXMgZm9yIGRpZmZlcmVudCBjb250ZXh0cyBhbmQgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJzbSI+U21hbGwgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJkZWZhdWx0Ij5EZWZhdWx0IFNpemU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImxnIj5MYXJnZSBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Im91dGxpbmUiIC50ZXh0PSR7Ilx1ezFGNjgwfSJ9PjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9InNtIiB0eXBlPSJzZWNvbmRhcnkiPlNtYWxsIFNlY29uZGFyeTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iZGVmYXVsdCIgdHlwZT0iZGVzdHJ1Y3RpdmUiPkRlZmF1bHQgRGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImxnIiB0eXBlPSJvdXRsaW5lIj5MYXJnZSBPdXRsaW5lPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgcj1hLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaWNvbiIpO2lmKHIpe2xldCBpPXIuZ2V0QXR0cmlidXRlKCJpY29uRkEiKXx8InVua25vd24iO2NvbnNvbGUubG9nKGBJY29uIGJ1dHRvbiBjbGlja2VkOiAke2l9YCl9fSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gQnV0dG9ucyB3aXRoIEljb25zIn0gLnN1YnRpdGxlPSR7IkNvbWJpbmluZyBpY29ucyB3aXRoIHRleHQgZm9yIGVuaGFuY2VkIHZpc3VhbCBjb21tdW5pY2F0aW9uIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb25GQT0iZmFQbHVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgQWRkIEl0ZW0KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb25GQT0iZmFUcmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIERlbGV0ZQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uRkE9ImZhRG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBEb3dubG9hZAogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPSJmYUNvZyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIFNldHRpbmdzCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uRkE9ImZhQ2hldnJvbkxlZnQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBCYWNrCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgTmV4dAogICAgICAgICAgICA8ZGVlcy1pY29uIGljb25GQT0iZmFDaGV2cm9uUmlnaHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVmYXVsdCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPSJmYVBsdXMiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJzZWNvbmRhcnkiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb25GQT0iZmFDb2ciPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uRkE9ImZhU2VhcmNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZ2hvc3QiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb25GQT0iZmFFbGxpcHNpc1YiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZXN0cnVjdGl2ZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPSJmYVRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bc3RhdHVzPSJwZW5kaW5nIl0nKSxhPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bc3RhdHVzPSJzdWNjZXNzIl0nKSxyPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bc3RhdHVzPSJlcnJvciJdJyk7ZSYmc2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJQZW5kaW5nIGJ1dHRvbiBpcyBzaG93aW5nIGxvYWRpbmcgc3RhdGUiKX0sMWUzKSxhJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIlN1Y2Nlc3Mgc3RhdGUgYnV0dG9uIGNsaWNrZWQiKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiRXJyb3Igc3RhdGUgYnV0dG9uIGNsaWNrZWQiKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBCdXR0b24gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgdG8gaW5kaWNhdGUgYnV0dG9uIHN0YXR1cyBhbmQgbG9hZGluZyBjb25kaXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzdGF0dXM9Im5vcm1hbCI+Tm9ybWFsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzdGF0dXM9InBlbmRpbmciPlByb2Nlc3NpbmcuLi48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0ic3VjY2VzcyI+U3VjY2VzcyE8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0iZXJyb3IiPkVycm9yITwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gZGlzYWJsZWQ+RGlzYWJsZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiIHN0YXR1cz0icGVuZGluZyIgc2l6ZT0ic20iPlNtYWxsIExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiIHN0YXR1cz0icGVuZGluZyI+RGVmYXVsdCBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc3RhdHVzPSJwZW5kaW5nIiBzaXplPSJsZyI+TGFyZ2UgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiI2NsaWNrLW91dHB1dCIpLGE9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWJ1dHRvbjpmaXJzdC1vZi10eXBlIikscj10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9InNlY29uZGFyeSJdJyksaT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9ImRlc3RydWN0aXZlIl0nKTthJiZlJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57ZS50ZXh0Q29udGVudD1gQ2xpY2tlZDogRGVmYXVsdCBidXR0b24gYXQgJHtuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpfWB9KSxyJiZlJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLG89PntlLnRleHRDb250ZW50PWBDbGlja2VkOiBTZWNvbmRhcnkgYnV0dG9uIHdpdGggZGF0YTogJHtvLmRldGFpbC5kYXRhfWB9KSxpJiZlJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLGFzeW5jKCk9PntlLnRleHRDb250ZW50PSJQcm9jZXNzaW5nLi4uIixhd2FpdCBzdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxlLnRleHRDb250ZW50PSJBY3Rpb24gY29tcGxldGVkISJ9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRXZlbnQgSGFuZGxpbmcifSAuc3VidGl0bGU9JHsiSW50ZXJhY3RpdmUgZXhhbXBsZXMgd2l0aCBjbGljayBldmVudCBoYW5kbGluZyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+Q2xpY2sgTWU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgLmV2ZW50RGV0YWlsRGF0YT0keyJjdXN0b20tZGF0YS0xMjMifT4KICAgICAgICAgICAgQ2xpY2sgd2l0aCBEYXRhCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj5Bc3luYyBBY3Rpb248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9ImNsaWNrLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0Ij4KICAgICAgICAgIDxlbT5DbGljayBhIGJ1dHRvbiB0byBzZWUgdGhlIHJlc3VsdC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNmb3JtLW91dHB1dCIpO2UmJmEmJmUuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLG89PnthLmlubmVySFRNTD0iPHN0cm9uZz5Gb3JtIHN1Ym1pdHRlZCB3aXRoIGRhdGE6PC9zdHJvbmc+PGJyPiIrSlNPTi5zdHJpbmdpZnkoby5kZXRhaWwuZGF0YSxudWxsLDIpfSk7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvblt0eXBlPSJzZWNvbmRhcnkiXScpLGk9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvblt0eXBlPSJnaG9zdCJdJyk7ciYmci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJTYXZlIERyYWZ0IGNsaWNrZWQiKX0pLGkmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiQ2FuY2VsIGNsaWNrZWQiKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IkJ1dHRvbnMgd29ya2luZyB3aXRoaW4gZm9ybXMgd2l0aCBhdXRvbWF0aWMgc3BhY2luZyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJOYW1lIiBrZXk9Im5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iRW1haWwiIGtleT0iZW1haWwiIHR5cGU9ImVtYWlsIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik1lc3NhZ2UiIGtleT0ibWVzc2FnZSIgaXNNdWx0aWxpbmU+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzZWNvbmRhcnkiPlNhdmUgRHJhZnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij5DYW5jZWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iZm9ybS1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCIgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmUtd3JhcDsiPgogICAgICAgICAgPGVtPlN1Ym1pdCB0aGUgZm9ybSB0byBzZWUgdGhlIGRhdGEuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChhPT57bGV0IHI9YS5nZXRBdHRyaWJ1dGUoInR5cGUiKTtyJiZjb25zb2xlLmxvZyhgTGVnYWN5IHR5cGUgIiR7cn0iIGlzIHN1cHBvcnRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eWApfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEJhY2t3YXJkIENvbXBhdGliaWxpdHkifSAuc3VidGl0bGU9JHsiT2xkIGJ1dHRvbiB0eXBlcyBhcmUgYXV0b21hdGljYWxseSBtYXBwZWQgdG8gbmV3IHZhcmlhbnRzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJub3JtYWwiPk5vcm1hbCDihpIgRGVmYXVsdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPkhpZ2hsaWdodGVkIOKGkiBEZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGlzY3JlZXQiPkRpc2NyZWV0IOKGkiBPdXRsaW5lPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJiaWciPkJpZyDihpIgTGFyZ2UgU2l6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07Ij4KICAgICAgICAgIFRoZXNlIGxlZ2FjeSB0eXBlIHZhbHVlcyBhcmUgbWFpbnRhaW5lZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBidXQgd2UgcmVjb21tZW5kIHVzaW5nIHRoZSBuZXcgdmFyaWFudCBzeXN0ZW0uCiAgICAgICAgPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi52ZXJ0aWNhbC1ncm91cCIpWzBdLGE9dC5xdWVyeVNlbGVjdG9yQWxsKCIudmVydGljYWwtZ3JvdXAiKVsxXTtlJiZlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCgoaSxvKT0+e2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgcz1bIlNhdmUgQ2hhbmdlcyIsIkRpc2NhcmQiLCJIZWxwIl1bb107Y29uc29sZS5sb2coYEFjdGlvbiBncm91cDogJHtzfSBjbGlja2VkYCl9KX0pLGEmJmEucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKChpLG8pPT57aS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBzPVsiRGVsZXRlIEFjY291bnQiLCJBcmNoaXZlIERhdGEiLCJOb3QgQXZhaWxhYmxlIl1bb107byE9PTImJmNvbnNvbGUubG9nKGBEYW5nZXIgem9uZTogJHtzfSBjbGlja2VkYCl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI4LiBBZHZhbmNlZCBFeGFtcGxlcyJ9IC5zdWJ0aXRsZT0keyJDb21wbGV4IGJ1dHRvbiBjb25maWd1cmF0aW9ucyBhbmQgcmVhbC13b3JsZCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsLWdyb3VwIj4KICAgICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+QWN0aW9uIEdyb3VwPC9oND4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiIHNpemU9InNtIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb25GQT0iZmFTYXZlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBTYXZlIENoYW5nZXMKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPSJmYVVuZG8iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERpc2NhcmQKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uRkE9ImZhUXVlc3Rpb25DaXJjbGUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIEhlbHAKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbC1ncm91cCI+CiAgICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsiPkRhbmdlciBab25lPC9oND4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uRkE9ImZhVHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERlbGV0ZSBBY2NvdW50CiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uRkE9ImZhQXJjaGl2ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgQXJjaGl2ZSBEYXRhCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgc2l6ZT0ic20iIGRpc2FibGVkPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPSJmYUJhbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgTm90IEF2YWlsYWJsZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjRweDsiPgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+Q29kZSBFeGFtcGxlOjwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIEBjbGlja2VkPSJcJHtoYW5kbGVDbGlja30iJmd0Ozxicj4KICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jmx0O2RlZXMtaWNvbiBpY29uRkE9ImZhU2F2ZSImZ3Q7Jmx0Oy9kZWVzLWljb24mZ3Q7PGJyPgogICAgICAgICAgICAmbmJzcDsmbmJzcDtTYXZlIENoYW5nZXM8YnI+CiAgICAgICAgICAgICZsdDsvZGVlcy1idXR0b24mZ3Q7CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgO2ZlKCk7U3QoKTtCZSgpO3ZhciBHaT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LGwyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxvczE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWJ1dHRvbiIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdLEUsQz1bXSx6PVtdLFAsXz1bXSwkPVtdLEgsTD1bXSxrPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgUz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHtyZWZsZWN0OiEwLGhhc0NoYW5nZWQoKXtyZXR1cm4hMH19KV0sZj1bRCgpXSxkPVtEKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxiPVtEKHt0eXBlOkJvb2xlYW59KV0sdj1bRCh7dHlwZTpTdHJpbmd9KV0sRT1bRCh7dHlwZTpTdHJpbmd9KV0sUD1bRCh7dHlwZTpTdHJpbmd9KV0sSD1bRCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sR2kodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4idGV4dCJpbiBULGdldDpUPT5ULnRleHQsc2V0OihULFIpPT57VC50ZXh0PVJ9fSxtZXRhZGF0YTpTfSxzLGwpLEdpKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXZlbnREZXRhaWxEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4iZXZlbnREZXRhaWxEYXRhImluIFQsZ2V0OlQ9PlQuZXZlbnREZXRhaWxEYXRhLHNldDooVCxSKT0+e1QuZXZlbnREZXRhaWxEYXRhPVJ9fSxtZXRhZGF0YTpTfSxjLHUpLEdpKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJkaXNhYmxlZCJpbiBULGdldDpUPT5ULmRpc2FibGVkLHNldDooVCxSKT0+e1QuZGlzYWJsZWQ9Un19LG1ldGFkYXRhOlN9LGgsZyksR2kodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hpZGRlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VD0+ImlzSGlkZGVuImluIFQsZ2V0OlQ9PlQuaXNIaWRkZW4sc2V0OihULFIpPT57VC5pc0hpZGRlbj1SfX0sbWV0YWRhdGE6U30seCxtKSxHaSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJ0eXBlImluIFQsZ2V0OlQ9PlQudHlwZSxzZXQ6KFQsUik9PntULnR5cGU9Un19LG1ldGFkYXRhOlN9LHksdyksR2kodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4ic2l6ZSJpbiBULGdldDpUPT5ULnNpemUsc2V0OihULFIpPT57VC5zaXplPVJ9fSxtZXRhZGF0YTpTfSxDLHopLEdpKHRoaXMsbnVsbCxQLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4ic3RhdHVzImluIFQsZ2V0OlQ9PlQuc3RhdHVzLHNldDooVCxSKT0+e1Quc3RhdHVzPVJ9fSxtZXRhZGF0YTpTfSxfLCQpLEdpKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5zaWRlRm9ybSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VD0+Imluc2lkZUZvcm0iaW4gVCxnZXQ6VD0+VC5pbnNpZGVGb3JtLHNldDooVCxSKT0+e1QuaW5zaWRlRm9ybT1SfX0sbWV0YWRhdGE6U30sTCxrKSxHaShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpTfSxudWxsLGEpLE49cj1lLnZhbHVlLFMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6U30pfXN0YXRpYyBkZW1vPWJGdDtzdGF0aWMgZGVtb0dyb3VwPSJCdXR0b24iOyNlPWwyKHRoaXMscyx2b2lkIDApO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRleHQoUyl7dGhpcy4jZT1TfSN0PShsMih0aGlzLGwpLGwyKHRoaXMsYyx2b2lkIDApKTtnZXQgZXZlbnREZXRhaWxEYXRhKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGV2ZW50RGV0YWlsRGF0YShTKXt0aGlzLiN0PVN9I2E9KGwyKHRoaXMsdSksbDIodGhpcyxoLCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGRpc2FibGVkKFMpe3RoaXMuI2E9U30jcj0obDIodGhpcyxnKSxsMih0aGlzLHgsITEpKTtnZXQgaXNIaWRkZW4oKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNIaWRkZW4oUyl7dGhpcy4jcj1TfSNpPShsMih0aGlzLG0pLGwyKHRoaXMseSwiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNpfXNldCB0eXBlKFMpe3RoaXMuI2k9U30jbz0obDIodGhpcyx3KSxsMih0aGlzLEMsImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jb31zZXQgc2l6ZShTKXt0aGlzLiNvPVN9I3M9KGwyKHRoaXMseiksbDIodGhpcyxfLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNzfXNldCBzdGF0dXMoUyl7dGhpcy4jcz1TfSNuPShsMih0aGlzLCQpLGwyKHRoaXMsTCwhMSkpO2dldCBpbnNpZGVGb3JtKCl7cmV0dXJuIHRoaXMuI259c2V0IGluc2lkZUZvcm0oUyl7dGhpcy4jbj1TfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxsMih0aGlzLGspfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSwhdGhpcy5pbnNpZGVGb3JtJiZ0aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpJiYodGhpcy5pbnNpZGVGb3JtPSEwKX1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEZvcm0gc3BhY2luZyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtpbnNpZGUtZm9ybV06bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtZm9ybVtob3Jpem9udGFsLWxheW91dF0gOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1mb3JtW2hvcml6b250YWwtbGF5b3V0XSA6aG9zdChbaW5zaWRlLWZvcm1dOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5idXR0b24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWFudHMgKi8KICAgICAgLmJ1dHRvbi5zaXplLWRlZmF1bHQgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtc20gewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtbGcgewogICAgICAgIGhlaWdodDogNDRweDsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtaWNvbiB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC8qIERlZmF1bHQgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZWZhdWx0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMC4yJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDIwJSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVmYXVsdDphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERlc3RydWN0aXZlIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgODQuMiUgNjAuMiUpOwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5OCUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Ni4yJSk7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmU6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Mi4yJSk7CiAgICAgIH0KCiAgICAgIC8qIE91dGxpbmUgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLm91dGxpbmUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDI2LjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogU2Vjb25kYXJ5IHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zZWNvbmRhcnk6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogR2hvc3QgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmdob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmdob3N0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZ2hvc3Q6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAvKiBMaW5rIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5saW5rIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuYnV0dG9uLmxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAvKiBTdGF0dXMgc3RhdGVzICovCiAgICAgIC5idXR0b24ucGVuZGluZywKICAgICAgLmJ1dHRvbi5zdWNjZXNzLAogICAgICAuYnV0dG9uLmVycm9yIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7IC8qIFNwYWNlIGZvciBzcGlubmVyICovCiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbS5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtc20uc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLXNtLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZy5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtbGcuc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLWxnLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24ucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDYyLjglIDcwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgNjIuOCUgNzAuNiUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICAuYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogSGlkZGVuIHN0YXRlICovCiAgICAgIC5idXR0b24uaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBGb2N1cyBzdGF0ZSAqLwogICAgICAuYnV0dG9uOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBzcGlubmVyICovCiAgICAgIGRlZXMtc3Bpbm5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20gZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiAxNHB4OwogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQogICAgICAKICAgICAgLyogSWNvbiBzaXppbmcgd2l0aGluIGJ1dHRvbnMgKi8KICAgICAgLmJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtsZXQgVD17bm9ybWFsOiJkZWZhdWx0IixoaWdobGlnaHRlZDoiZGVzdHJ1Y3RpdmUiLGRpc2NyZWV0OiJvdXRsaW5lIixiaWc6ImRlZmF1bHQifVt0aGlzLnR5cGVdfHx0aGlzLnR5cGUsUj10aGlzLnR5cGU9PT0iYmlnIj8ibGciOnRoaXMuc2l6ZTtyZXR1cm4gTWAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJidXR0b24gJHt0aGlzLmlzSGlkZGVuPyJoaWRkZW4iOiIifSAke1R9IHNpemUtJHtSfSAke3RoaXMuc3RhdHVzfSAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIke3RoaXMuZGlzcGF0Y2hDbGlja30iCiAgICAgID4KICAgICAgICAke3RoaXMuc3RhdHVzPT09Im5vcm1hbCI/TWBgOk1gCiAgICAgICAgICA8ZGVlcy1zcGlubmVyIAogICAgICAgICAgICAuYm53PSR7ITB9IAogICAgICAgICAgICBzdGF0dXM9IiR7dGhpcy5zdGF0dXN9IgogICAgICAgICAgICBzaXplPSIke1I9PT0ic20iPzE0OlI9PT0ibGciPzE4OjE2fSIKICAgICAgICAgID48L2RlZXMtc3Bpbm5lcj4KICAgICAgICBgfQogICAgICAgIDxkaXYgY2xhc3M9InRleHRib3giPiR7dGhpcy50ZXh0fHxNYDxzbG90PkJ1dHRvbjwvc2xvdD5gfTwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZGlzcGF0Y2hDbGljaygpe3RoaXMuZGlzYWJsZWR8fHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrZWQiLHtkZXRhaWw6e2RhdGE6dGhpcy5ldmVudERldGFpbERhdGF9LGJ1YmJsZXM6ITB9KSl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fXN0YXRpY3tsMihyLGEpfX07cmV0dXJuIE49cn0pKCk7ZmUoKTt2YXIgdkZ0PWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sbUVlPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxzczE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWJ1dHRvbi1leGl0IildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W107dmFyIGY9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6TnVtYmVyfSldLHZGdCh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnU9PiJzaXplImluIHUsZ2V0OnU9PnUuc2l6ZSxzZXQ6KHUsZCk9Pnt1LnNpemU9ZH19LG1ldGFkYXRhOmN9LHMsbCksdkZ0KG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZj1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89KCk9Pk1gCiAgICA8ZGVlcy1idXR0b24tZXhpdD48L2RlZXMtYnV0dG9uLWV4aXQ+CiAgYDtzdGF0aWMgZGVtb0dyb3VwPSJCdXR0b24iOyNlPW1FZSh0aGlzLHMsMjQpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNpemUoYyl7dGhpcy4jZT1jfXN0eWxlcz0obUVlKHRoaXMsbCksW3AuZGVmYXVsdFN0eWxlcyx0ZWAKCiAgICBgXSk7cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxzdHlsZT4KICAgICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5zaXplfXB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlyc3RMaW5lIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWNvbmRMaW5lIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3ttRWUocixhKX19O3JldHVybiBmPXJ9KSgpO2ZlKCk7dmFyIHlGdD0oKT0+TWAKICAgIDxzdHlsZT4KICAgICAgJHt0ZWAKICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLXRpdGxlIHsKICAgICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tZGVzY3JpcHRpb24gewogICAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5CYXNpYyBCdXR0b24gR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QnV0dG9uIGdyb3VwcyB3aXRob3V0IGxhYmVscyBmb3Igc2ltcGxlIGdyb3VwaW5nPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5MYWJlbGVkIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGggZGVzY3JpcHRpdmUgbGFiZWxzPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iVmlldyBNb2RlOiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPkdyaWQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkxpc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkNhcmRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NdWx0aXBsZSBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5NdWx0aXBsZSBidXR0b24gZ3JvdXBzIHVzZWQgdG9nZXRoZXI8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiAxNnB4OyBmbGV4LXdyYXA6IHdyYXA7Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iRGF0YXNldDoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPlN5c3RlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5OZXR3b3JrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNhbGVzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iVGltZSBSYW5nZToiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+MUg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPjI0SDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj43RDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj4zMEQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZWZyZXNoPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkV4cG9ydDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5WZXJ0aWNhbCBCdXR0b24gR3JvdXBzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QnV0dG9uIGdyb3VwcyB3aXRoIHZlcnRpY2FsIGxheW91dDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDI0cHg7Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBkaXJlY3Rpb249InZlcnRpY2FsIiBsYWJlbD0iTmF2aWdhdGlvbjoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RGFzaGJvYXJkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5BbmFseXRpY3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVwb3J0czwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TZXR0aW5nczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgZGlyZWN0aW9uPSJ2ZXJ0aWNhbCI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5FZGl0IEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RGVsZXRlIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+TWl4ZWQgQnV0dG9uIFR5cGVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+RGlmZmVyZW50IGJ1dHRvbiB0eXBlcyB3aXRoaW4gZ3JvdXBzPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iU3RhdHVzOiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic3VjY2VzcyI+QWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5QZW5kaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkYW5nZXIiPkluYWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGA7ZmUoKTtTdCgpO0JlKCk7dmFyIGdFZT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LHZJPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxuczE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWJ1dHRvbi1ncm91cCIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKCldLGY9W0QoKV0sZ0VlKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJsYWJlbCJpbiBnLGdldDpnPT5nLmxhYmVsLHNldDooZyxiKT0+e2cubGFiZWw9Yn19LG1ldGFkYXRhOmh9LHMsbCksZ0VlKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlyZWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iZGlyZWN0aW9uImluIGcsZ2V0Omc9PmcuZGlyZWN0aW9uLHNldDooZyxiKT0+e2cuZGlyZWN0aW9uPWJ9fSxtZXRhZGF0YTpofSxjLHUpLGdFZShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpofSxudWxsLGEpLGQ9cj1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPXlGdDtzdGF0aWMgZGVtb0dyb3VwPSJCdXR0b24iOyNlPXZJKHRoaXMscywiIik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKGgpe3RoaXMuI2U9aH0jdD0odkkodGhpcyxsKSx2SSh0aGlzLGMsImhvcml6b250YWwiKSk7Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBkaXJlY3Rpb24oaCl7dGhpcy4jdD1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx2SSh0aGlzLHUpLGMxLnNldHVwKCl9c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnV0dG9uLWdyb3VwLnZlcnRpY2FsIC5sYWJlbCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKCopIHsKICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgJHt0aGlzLmxhYmVsP01gPHNwYW4gY2xhc3M9ImxhYmVsIj4ke3RoaXMubGFiZWx9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje3ZJKHIsYSl9fTtyZXR1cm4gZD1yfSkoKTtmZSgpO3ZhciB3RnQ9KCk9PntsZXQgdD17c3lzdGVtOntsYWJlbDoiU3lzdGVtIFVzYWdlICglKSIsc2VyaWVzOlt7bmFtZToiQ1BVIixkYXRhOlt7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTNlNSkudG9JU09TdHJpbmcoKSx5OjI1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTI0ZTQpLnRvSVNPU3RyaW5nKCkseTozMH0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xOGU0KS50b0lTT1N0cmluZygpLHk6Mjh9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMTJlNCkudG9JU09TdHJpbmcoKSx5OjM1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTZlNCkudG9JU09TdHJpbmcoKSx5OjMyfSx7eDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseTozOH1dfSx7bmFtZToiTWVtb3J5IixkYXRhOlt7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTNlNSkudG9JU09TdHJpbmcoKSx5OjQ1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTI0ZTQpLnRvSVNPU3RyaW5nKCkseTo0OH0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xOGU0KS50b0lTT1N0cmluZygpLHk6NDZ9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMTJlNCkudG9JU09TdHJpbmcoKSx5OjUyfSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTZlNCkudG9JU09TdHJpbmcoKSx5OjUwfSx7eDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseTo1NX1dfV19fSxlPXtzeXN0ZW06YT0+YCR7YX0lYH07cmV0dXJuIE1gCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IHI9YS5xdWVyeVNlbGVjdG9yKCIjbWFpbi1jaGFydCIpLGk9YS5xdWVyeVNlbGVjdG9yKCIjY29ubmVjdGlvbnMtY2hhcnQiKSxvLHMsbD0ic3lzdGVtIixmPXtzeXN0ZW06az0+YCR7a30lYCxuZXR3b3JrOms9PmAke2t9IE1icHNgLHNhbGVzOms9PmAkJHtrLnRvTG9jYWxlU3RyaW5nKCl9YH0sYz0xMjAqMWUzLHU9MWUzLGQ9NWUzLGg9e2NwdTozMCxtZW1vcnk6NTAsZG93bmxvYWQ6MTUwLHVwbG9hZDozMCxjb25uZWN0aW9uczoxNTB9LGc9KGssTixTPWQpPT57bGV0IFQ9W10sUj1EYXRlLm5vdygpLEE9TWF0aC5mbG9vcihjL1MpO2ZvcihsZXQgRj1BO0Y+PTA7Ri0tKXtsZXQgYWU9bmV3IERhdGUoUi1GKlMpLnRvSVNPU3RyaW5nKCksVj1rKyhNYXRoLnJhbmRvbSgpLS41KSpOO1QucHVzaCh7eDphZSx5Ok1hdGgucm91bmQoVil9KX1yZXR1cm4gVH0sYj17c3lzdGVtOntsYWJlbDoiU3lzdGVtIFVzYWdlICglKSIsc2VyaWVzOlt7bmFtZToiQ1BVIixkYXRhOmcoaC5jcHUsMTApfSx7bmFtZToiTWVtb3J5IixkYXRhOmcoaC5tZW1vcnksOCl9XX0sbmV0d29yazp7bGFiZWw6Ik5ldHdvcmsgVHJhZmZpYyAoTWJwcykiLHNlcmllczpbe25hbWU6IkRvd25sb2FkIixkYXRhOmcoaC5kb3dubG9hZCwzMCl9LHtuYW1lOiJVcGxvYWQiLGRhdGE6ZyhoLnVwbG9hZCwxMCl9XX0sc2FsZXM6e2xhYmVsOiJTYWxlcyBBbmFseXRpY3MiLHNlcmllczpbe25hbWU6IlJldmVudWUiLGRhdGE6W3t4OiIyMDI1LTAxLTAxIix5OjQ1ZTN9LHt4OiIyMDI1LTAxLTAyIix5OjUyZTN9LHt4OiIyMDI1LTAxLTAzIix5OjQ4ZTN9LHt4OiIyMDI1LTAxLTA0Iix5OjYxZTN9LHt4OiIyMDI1LTAxLTA1Iix5OjU4ZTN9LHt4OiIyMDI1LTAxLTA2Iix5OjY1ZTN9XX0se25hbWU6IlByb2ZpdCIsZGF0YTpbe3g6IjIwMjUtMDEtMDEiLHk6MTJlM30se3g6IjIwMjUtMDEtMDIiLHk6MTRlM30se3g6IjIwMjUtMDEtMDMiLHk6MTFlM30se3g6IjIwMjUtMDEtMDQiLHk6MThlM30se3g6IjIwMjUtMDEtMDUiLHk6MTZlM30se3g6IjIwMjUtMDEtMDYiLHk6MmU0fV19XX19LHg9KGssTixTLFQ9NSk9PntsZXQgUj0oTWF0aC5yYW5kb20oKS0uNSkqVCoyLEE9aytSLGFlPSgoTitTKS8yLUEpKi4xO3JldHVybiBBKz1hZSxBPU1hdGgubWF4KE4sTWF0aC5taW4oUyxBKSksTWF0aC5yb3VuZChBKX0sbT1EYXRlLm5vdygpLHY9RGF0ZS5ub3coKSx5PSgpPT57aWYoIXIpcmV0dXJuO2xldCBrPURhdGUubm93KCk7aWYoay1tPj1kKXttPWs7bGV0IFM9bmV3IERhdGUoaykudG9JU09TdHJpbmcoKTtpZihsPT09InN5c3RlbSIpe2guY3B1PXgoaC5jcHUsMjAsNTAsMyksaC5tZW1vcnk9eChoLm1lbW9yeSw0MCw3MCwyKTtsZXQgVD1yLmNoYXJ0U2VyaWVzLm1hcCgoUixBKT0+KHtuYW1lOlIubmFtZSxkYXRhOlsuLi5SLmRhdGEsQT09PTA/e3g6Uyx5OmguY3B1fTp7eDpTLHk6aC5tZW1vcnl9XX0pKTtyLnVwZGF0ZVNlcmllcyhULCExKX1lbHNlIGlmKGw9PT0ibmV0d29yayIpe2guZG93bmxvYWQ9eChoLmRvd25sb2FkLDEwMCwyMDAsMTApLGgudXBsb2FkPXgoaC51cGxvYWQsMjAsNTAsNSk7bGV0IFQ9ci5jaGFydFNlcmllcy5tYXAoKFIsQSk9Pih7bmFtZTpSLm5hbWUsZGF0YTpbLi4uUi5kYXRhLEE9PT0wP3t4OlMseTpoLmRvd25sb2FkfTp7eDpTLHk6aC51cGxvYWR9XX0pKTtyLnVwZGF0ZVNlcmllcyhULCExKX19fSx3PSgpPT57aWYoIWkpcmV0dXJuO2xldCBrPURhdGUubm93KCksTj1uZXcgRGF0ZShrKS50b0lTT1N0cmluZygpLFM9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjIxKS0xMDtoLmNvbm5lY3Rpb25zPU1hdGgubWF4KDUwLE1hdGgubWluKDMwMCxoLmNvbm5lY3Rpb25zK1MpKTtsZXQgVD1pLmNoYXJ0U2VyaWVzLFI9W3tuYW1lOlRbMF0/Lm5hbWV8fCJDb25uZWN0aW9ucyIsZGF0YTpbLi4uVFswXT8uZGF0YXx8W10se3g6Tix5OmguY29ubmVjdGlvbnN9XX1dO2kudXBkYXRlU2VyaWVzKFIsITEpfSxFPWs9PntsPWs7bGV0IE49YltrXTtyLmxhYmVsPU4ubGFiZWwsci5zZXJpZXM9Ti5zZXJpZXMsci55QXhpc0Zvcm1hdHRlcj1mW2tdLGs9PT0ic3lzdGVtIj8oci55QXhpc1NjYWxpbmc9InBlcmNlbnRhZ2UiLHIueUF4aXNNYXg9MTAwKTpyLnlBeGlzU2NhbGluZz0iZHluYW1pYyIsbT1EYXRlLm5vdygpLWR9LEM9KCk9PnshbyYmKGw9PT0ic3lzdGVtInx8bD09PSJuZXR3b3JrIikmJihyLnJlYWx0aW1lTW9kZT0hMCxvPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+eSgpLGQpKSxzfHwoaS5yZWFsdGltZU1vZGU9ITAscz13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9PncoKSx1KSl9LHo9KCk9PntvJiYod2luZG93LmNsZWFySW50ZXJ2YWwobyksbz1udWxsLHIucmVhbHRpbWVNb2RlPSExKSxzJiYod2luZG93LmNsZWFySW50ZXJ2YWwocykscz1udWxsLGkucmVhbHRpbWVNb2RlPSExKX0sUD0oKT0+e2w9PT0ic3lzdGVtIj8oaC5jcHU9TWF0aC5yYW5kb20oKT4uNT84NToyNSxoLm1lbW9yeT1NYXRoLnJhbmRvbSgpPi41PzgwOjQ1KTpsPT09Im5ldHdvcmsiJiYoaC5kb3dubG9hZD1NYXRoLnJhbmRvbSgpPi41PzI1MDoxMDAsaC51cGxvYWQ9TWF0aC5yYW5kb20oKT4uNT84MDoyMCksaC5jb25uZWN0aW9ucz1NYXRoLnJhbmRvbSgpPi41PzI4MDo4MCxtPTAsdj0wfSxfPWEucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKTtfLmZvckVhY2goaz0+e2xldCBOPWsudGV4dENvbnRlbnQ/LnRyaW0oKTtOPT09IlN5c3RlbSBVc2FnZSI/ay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkUoInN5c3RlbSIpKTpOPT09Ik5ldHdvcmsgVHJhZmZpYyI/ay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkUoIm5ldHdvcmsiKSk6Tj09PSJTYWxlcyBEYXRhIj9rLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+RSgic2FsZXMiKSk6Tj09PSJTdGFydCBMaXZlIj9rLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+QygpKTpOPT09IlN0b3AgTGl2ZSI/ay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnooKSk6Tj09PSJTcGlrZSBWYWx1ZXMiJiZrLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+UCgpKX0pO2xldCAkPSgpPT57YS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goTj0+e2xldCBTPU4udGV4dENvbnRlbnQ/LnRyaW0oKTtTPT09IlN5c3RlbSBVc2FnZSI/Ti50eXBlPWw9PT0ic3lzdGVtIj8iaGlnaGxpZ2h0ZWQiOiJub3JtYWwiOlM9PT0iTmV0d29yayBUcmFmZmljIj9OLnR5cGU9bD09PSJuZXR3b3JrIj8iaGlnaGxpZ2h0ZWQiOiJub3JtYWwiOlM9PT0iU2FsZXMgRGF0YSImJihOLnR5cGU9bD09PSJzYWxlcyI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIil9KX07ci5yb2xsaW5nV2luZG93PWMsci5yZWFsdGltZU1vZGU9ITEsci55QXhpc1NjYWxpbmc9InBlcmNlbnRhZ2UiLHIueUF4aXNNYXg9MTAwLHIuYXV0b1Njcm9sbEludGVydmFsPTFlMyxzZXRUaW1lb3V0KCgpPT57ci51cGRhdGVUaW1lV2luZG93KCl9LDEwMCk7bGV0IEg9RSxMPWs9PntIKGspLCQoKX07aWYoXy5mb3JFYWNoKGs9PntsZXQgTj1rLnRleHRDb250ZW50Py50cmltKCk7Tj09PSJTeXN0ZW0gVXNhZ2UiPyhrLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+RSgic3lzdGVtIikpLGsuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5MKCJzeXN0ZW0iKSkpOk49PT0iTmV0d29yayBUcmFmZmljIj8oay5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkUoIm5ldHdvcmsiKSksay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkwoIm5ldHdvcmsiKSkpOk49PT0iU2FsZXMgRGF0YSImJihrLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+RSgic2FsZXMiKSksay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkwoInNhbGVzIikpKX0pLGkpe2xldCBrPWcoaC5jb25uZWN0aW9ucywzMCx1KTtpLnNlcmllcz1be25hbWU6IkNvbm5lY3Rpb25zIixkYXRhOmt9XSxpLnJvbGxpbmdXaW5kb3c9YyxpLnJlYWx0aW1lTW9kZT0hMSxpLnlBeGlzU2NhbGluZz0iZml4ZWQiLGkueUF4aXNNYXg9MzUwLGkuYXV0b1Njcm9sbEludGVydmFsPTFlMyxzZXRUaW1lb3V0KCgpPT57aS51cGRhdGVUaW1lV2luZG93KCl9LDEwMCl9fX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke3RlYAogICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgbWluLWhlaWdodDogNDAwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbmZvIHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iRGF0YXNldDoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIj5TeXN0ZW0gVXNhZ2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcmsgVHJhZmZpYzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U2FsZXMgRGF0YTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IlJlYWwtdGltZToiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IExpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgTGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TcGlrZSBWYWx1ZXM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iY2hhcnQtY29udGFpbmVyIj4KICAgICAgICA8ZGVlcy1jaGFydC1hcmVhCiAgICAgICAgICBpZD0ibWFpbi1jaGFydCIKICAgICAgICAgIC5sYWJlbD0ke3Quc3lzdGVtLmxhYmVsfQogICAgICAgICAgLnNlcmllcz0ke3Quc3lzdGVtLnNlcmllc30KICAgICAgICAgIC55QXhpc0Zvcm1hdHRlcj0ke2Uuc3lzdGVtfQogICAgICAgID48L2RlZXMtY2hhcnQtYXJlYT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiIHN0eWxlPSJtYXJnaW4tdG9wOiAyMHB4OyI+CiAgICAgICAgPGRlZXMtY2hhcnQtYXJlYQogICAgICAgICAgaWQ9ImNvbm5lY3Rpb25zLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7IkFjdGl2ZSBDb25uZWN0aW9ucyJ9CiAgICAgICAgICAuc2VyaWVzPSR7W3tuYW1lOiJDb25uZWN0aW9ucyIsZGF0YTpbXX1dfQogICAgICAgICAgLnlBeGlzRm9ybWF0dGVyPSR7YT0+YCR7YX1gfQogICAgICAgID48L2RlZXMtY2hhcnQtYXJlYT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBSZWFsLXRpbWUgbW9uaXRvcmluZyB3aXRoIDItbWludXRlIHJvbGxpbmcgd2luZG93IOKAoiAKICAgICAgICBVcGRhdGVzIGV2ZXJ5IHNlY29uZCB3aXRoIHNtb290aCB2YWx1ZSB0cmFuc2l0aW9ucyDigKIgCiAgICAgICAgQ2xpY2sgJ1NwaWtlIFZhbHVlcycgdG8gc2ltdWxhdGUgbG9hZCBzcGlrZXMKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfTtmZSgpO3ZhciBNRnQ9W3AuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIC5tYWluYm94IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuY2hhcnRUaXRsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQogICAgICAuY2hhcnRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBwYWRkaW5nOiA0NHB4IDE2cHggMTZweCAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogRW5zdXJlIGNvbnRhaW5lciBkb2Vzbid0IG92ZXJyaWRlIGNoYXJ0IGJhY2tncm91bmQgKi8KICAgICAgfQogICAgICAKICAgICAgLyogQXBleENoYXJ0cyB0aGVtZSBvdmVycmlkZXMgKi8KICAgICAgLmFwZXhjaGFydHMtY2FudmFzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAuYXBleGNoYXJ0cy1pbm5lciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLmFwZXhjaGFydHMtZ3JhcGhpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgICB9CiAgICBgXTtmZSgpO3ZhciB6RnQ9dD0+TWAKICAgICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0VGl0bGUiPiR7dC5sYWJlbH08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0Q29udGFpbmVyIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDtmZSgpO1N0KCk7ZWMoKTt2YXIgWnI9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxWMT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sbHMxPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1jaGFydC1hcmVhIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W10sSCxMPVtdLGs9W10sTixTPVtdLFQ9W107dmFyIFI9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBBPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W2xlKCldLGY9W0QoKV0sZD1bRCh7dHlwZTpBcnJheX0pXSxiPVtEKHthdHRyaWJ1dGU6ITF9KV0sdj1bRCh7dHlwZTpOdW1iZXJ9KV0sRT1bRCh7dHlwZTpCb29sZWFufSldLFA9W0Qoe3R5cGU6U3RyaW5nfSldLEg9W0Qoe3R5cGU6TnVtYmVyfSldLE49W0Qoe3R5cGU6TnVtYmVyfSldLFpyKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2hhcnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkY9PiJjaGFydCJpbiBGLGdldDpGPT5GLmNoYXJ0LHNldDooRixhZSk9PntGLmNoYXJ0PWFlfX0sbWV0YWRhdGE6QX0scyxsKSxacih0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpGPT4ibGFiZWwiaW4gRixnZXQ6Rj0+Ri5sYWJlbCxzZXQ6KEYsYWUpPT57Ri5sYWJlbD1hZX19LG1ldGFkYXRhOkF9LGMsdSksWnIodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkY9PiJzZXJpZXMiaW4gRixnZXQ6Rj0+Ri5zZXJpZXMsc2V0OihGLGFlKT0+e0Yuc2VyaWVzPWFlfX0sbWV0YWRhdGE6QX0saCxnKSxacih0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InlBeGlzRm9ybWF0dGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpGPT4ieUF4aXNGb3JtYXR0ZXIiaW4gRixnZXQ6Rj0+Ri55QXhpc0Zvcm1hdHRlcixzZXQ6KEYsYWUpPT57Ri55QXhpc0Zvcm1hdHRlcj1hZX19LG1ldGFkYXRhOkF9LHgsbSksWnIodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb2xsaW5nV2luZG93IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpGPT4icm9sbGluZ1dpbmRvdyJpbiBGLGdldDpGPT5GLnJvbGxpbmdXaW5kb3csc2V0OihGLGFlKT0+e0Yucm9sbGluZ1dpbmRvdz1hZX19LG1ldGFkYXRhOkF9LHksdyksWnIodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWFsdGltZU1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkY9PiJyZWFsdGltZU1vZGUiaW4gRixnZXQ6Rj0+Ri5yZWFsdGltZU1vZGUsc2V0OihGLGFlKT0+e0YucmVhbHRpbWVNb2RlPWFlfX0sbWV0YWRhdGE6QX0sQyx6KSxacih0aGlzLG51bGwsUCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InlBeGlzU2NhbGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rj0+InlBeGlzU2NhbGluZyJpbiBGLGdldDpGPT5GLnlBeGlzU2NhbGluZyxzZXQ6KEYsYWUpPT57Ri55QXhpc1NjYWxpbmc9YWV9fSxtZXRhZGF0YTpBfSxfLCQpLFpyKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNNYXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkY9PiJ5QXhpc01heCJpbiBGLGdldDpGPT5GLnlBeGlzTWF4LHNldDooRixhZSk9PntGLnlBeGlzTWF4PWFlfX0sbWV0YWRhdGE6QX0sTCxrKSxacih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TY3JvbGxJbnRlcnZhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rj0+ImF1dG9TY3JvbGxJbnRlcnZhbCJpbiBGLGdldDpGPT5GLmF1dG9TY3JvbGxJbnRlcnZhbCxzZXQ6KEYsYWUpPT57Ri5hdXRvU2Nyb2xsSW50ZXJ2YWw9YWV9fSxtZXRhZGF0YTpBfSxTLFQpLFpyKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkF9LG51bGwsYSksUj1yPWUudmFsdWUsQSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpBfSl9c3RhdGljIGRlbW89d0Z0O3N0YXRpYyBkZW1vR3JvdXA9IkNoYXJ0IjsjZT1WMSh0aGlzLHMsdm9pZCAwKTtnZXQgY2hhcnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY2hhcnQoQSl7dGhpcy4jZT1BfSN0PShWMSh0aGlzLGwpLFYxKHRoaXMsYywiVW50aXRsZWQgQ2hhcnQiKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhYmVsKEEpe3RoaXMuI3Q9QX0jYT0oVjEodGhpcyx1KSxWMSh0aGlzLGgsW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlcmllcyhBKXt0aGlzLiNhPUF9Z2V0IGNoYXJ0U2VyaWVzKCl7cmV0dXJuIHRoaXMuaW50ZXJuYWxDaGFydERhdGEubGVuZ3RoPjA/dGhpcy5pbnRlcm5hbENoYXJ0RGF0YTp0aGlzLnNlcmllc30jcj0oVjEodGhpcyxnKSxWMSh0aGlzLHgsQT0+YCR7QX0gTWJwc2ApKTtnZXQgeUF4aXNGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgeUF4aXNGb3JtYXR0ZXIoQSl7dGhpcy4jcj1BfSNpPShWMSh0aGlzLG0pLFYxKHRoaXMseSwwKSk7Z2V0IHJvbGxpbmdXaW5kb3coKXtyZXR1cm4gdGhpcy4jaX1zZXQgcm9sbGluZ1dpbmRvdyhBKXt0aGlzLiNpPUF9I289KFYxKHRoaXMsdyksVjEodGhpcyxDLCExKSk7Z2V0IHJlYWx0aW1lTW9kZSgpe3JldHVybiB0aGlzLiNvfXNldCByZWFsdGltZU1vZGUoQSl7dGhpcy4jbz1BfSNzPShWMSh0aGlzLHopLFYxKHRoaXMsXywiZHluYW1pYyIpKTtnZXQgeUF4aXNTY2FsaW5nKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHlBeGlzU2NhbGluZyhBKXt0aGlzLiNzPUF9I249KFYxKHRoaXMsJCksVjEodGhpcyxMLDEwMCkpO2dldCB5QXhpc01heCgpe3JldHVybiB0aGlzLiNufXNldCB5QXhpc01heChBKXt0aGlzLiNuPUF9I2w9KFYxKHRoaXMsayksVjEodGhpcyxTLDFlMykpO2dldCBhdXRvU2Nyb2xsSW50ZXJ2YWwoKXtyZXR1cm4gdGhpcy4jbH1zZXQgYXV0b1Njcm9sbEludGVydmFsKEEpe3RoaXMuI2w9QX1yZXNpemVPYnNlcnZlcj1WMSh0aGlzLFQpO3Jlc2l6ZVRpbWVvdXQ7aW50ZXJuYWxDaGFydERhdGE9W107YXV0b1Njcm9sbFRpbWVyPW51bGw7REVCVUdfUkVTSVpFPSExO0NIQVJUX0NPTE9SUz17ZGFyazpbImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMTczLjQgODAuNCUgNDAlKSIsImhzbCgyODAuMyA4Ny40JSA2Ni43JSkiLCJoc2woMjQuNiA5NSUgNTMuMSUpIl0sbGlnaHQ6WyJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgyODAuMyA0Ny43JSA1MC4yJSkiLCJoc2woMjAuNSA5MC4yJSA0OC4yJSkiXX07Y29uc3RydWN0b3IoKXtzdXBlcigpLGMxLnNldHVwKCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoQT0+e3RoaXMucmVzaXplVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZW91dCksdGhpcy5yZXNpemVUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57aWYodGhpcy5jaGFydCl7aWYodGhpcy5ERUJVR19SRVNJWkUmJkEubGVuZ3RoPjApe2xldCBGPUFbMF07Y29uc29sZS5sb2coIkRlZXNDaGFydEFyZWEgLSBSZXNpemUgZGV0ZWN0ZWQ6Iix7d2lkdGg6Ri5jb250ZW50UmVjdC53aWR0aCxoZWlnaHQ6Ri5jb250ZW50UmVjdC5oZWlnaHR9KX10aGlzLnJlc2l6ZUNoYXJ0KCl9fSwxMDApfSksdGhpcy5yZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihhc3luYygpPT57aWYodGhpcy5yZXNpemVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KSx0aGlzLnJlc2l6ZU9ic2VydmVyJiZ0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnN0b3BBdXRvU2Nyb2xsKCksdGhpcy5jaGFydCl0cnl7dGhpcy5jaGFydC5kZXN0cm95KCksdGhpcy5jaGFydD1udWxsfWNhdGNoKEEpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRlc3Ryb3lpbmcgY2hhcnQ6IixBKX19KX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jaGFydCYmKGF3YWl0IG5ldyBQcm9taXNlKEE9PnJlcXVlc3RBbmltYXRpb25GcmFtZShBKSksYXdhaXQgdGhpcy5yZXNpemVDaGFydCgpKX1zdGF0aWMgc3R5bGVzPU1GdDtyZW5kZXIoKXtyZXR1cm4gekZ0KHRoaXMpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2xldCBBPWF3YWl0IEgyLmdldEluc3RhbmNlKCkubG9hZEFwZXhDaGFydHMoKTthd2FpdCBuZXcgUHJvbWlzZShzZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHNlKSk7bGV0IEY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluYm94IiksYWU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpO2lmKCFGfHwhYWUpe2NvbnNvbGUuZXJyb3IoIkNoYXJ0IGNvbnRhaW5lcnMgbm90IGZvdW5kIik7cmV0dXJufWxldCBWPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGFlKSxTZT1wYXJzZUludChWLnBhZGRpbmdUb3AsMTApLHplPXBhcnNlSW50KFYucGFkZGluZ0JvdHRvbSwxMCksVz1wYXJzZUludChWLnBhZGRpbmdMZWZ0LDEwKSxOZT1wYXJzZUludChWLnBhZGRpbmdSaWdodCwxMCksUmU9Ri5jbGllbnRXaWR0aC1XLU5lLFg9Ri5vZmZzZXRIZWlnaHQtU2UtemUsST10aGlzLnNlcmllcy5sZW5ndGg+MD90aGlzLnNlcmllczpbe25hbWU6ImNwdSIsZGF0YTpbe3g6IjIwMjUtMDEtMTVUMDM6MDA6MDAiLHk6MjV9LHt4OiIyMDI1LTAxLTE1VDA3OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxMTowMDowMCIseToyMH0se3g6IjIwMjUtMDEtMTVUMTU6MDA6MDAiLHk6MzV9LHt4OiIyMDI1LTAxLTE1VDE5OjAwOjAwIix5OjI1fV19LHtuYW1lOiJtZW1vcnkiLGRhdGE6W3t4OiIyMDI1LTAxLTE1VDAzOjAwOjAwIix5OjEwfSx7eDoiMjAyNS0wMS0xNVQwNzowMDowMCIseToxMn0se3g6IjIwMjUtMDEtMTVUMTE6MDA6MDAiLHk6MTB9LHt4OiIyMDI1LTAxLTE1VDE1OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxOTowMDowMCIseTo0MH1dfV07dGhpcy5pbnRlcm5hbENoYXJ0RGF0YT1JO2xldCBPPSF0aGlzLmdvQnJpZ2h0LEc9Tz8iZGFyayI6ImxpZ2h0Ijt2YXIgaj17c2VyaWVzOkksY2hhcnQ6e3dpZHRoOlJlfHwxMDAsaGVpZ2h0Olh8fDEwMCx0eXBlOiJhcmVhIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsdG9vbGJhcjp7c2hvdzohMX0sYW5pbWF0aW9uczp7ZW5hYmxlZDohdGhpcy5yZWFsdGltZU1vZGUsc3BlZWQ6NDAwLGFuaW1hdGVHcmFkdWFsbHk6e2VuYWJsZWQ6ITEsZGVsYXk6MH0sZHluYW1pY0FuaW1hdGlvbjp7ZW5hYmxlZDohdGhpcy5yZWFsdGltZU1vZGUsc3BlZWQ6MzUwfX0sem9vbTp7ZW5hYmxlZDohMX0sc2VsZWN0aW9uOntlbmFibGVkOiExfX0sZGF0YUxhYmVsczp7ZW5hYmxlZDohMX0sc3Ryb2tlOnt3aWR0aDoyLGN1cnZlOiJzbW9vdGgifSx4YXhpczp7dHlwZToiZGF0ZXRpbWUiLGxhYmVsczp7Zm9ybWF0OiJISDptbTpzcyIsZGF0ZXRpbWVVVEM6ITEsc3R5bGU6e2NvbG9yczpbTz8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdLGZvbnRTaXplOiIxMnB4Iixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRXZWlnaHQ6IjQwMCJ9fSxheGlzQm9yZGVyOntzaG93OiExfSxheGlzVGlja3M6e3Nob3c6ITF9fSx5YXhpczp7bWluOjAsbWF4OnRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiP3ZvaWQgMDp0aGlzLnlBeGlzTWF4LGxhYmVsczp7Zm9ybWF0dGVyOnRoaXMueUF4aXNGb3JtYXR0ZXIsc3R5bGU6e2NvbG9yczpbTz8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdLGZvbnRTaXplOiIxMnB4Iixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRXZWlnaHQ6IjQwMCJ9fSxheGlzQm9yZGVyOntzaG93OiExfSxheGlzVGlja3M6e3Nob3c6ITF9fSx0b29sdGlwOntzaGFyZWQ6ITAsaW50ZXJzZWN0OiExLGZvbGxvd0N1cnNvcjohMCx4Ontmb3JtYXQ6ImRkL01NL3l5IEhIOm1tIn0sY3VzdG9tOih7c2VyaWVzOnNlLGRhdGFQb2ludEluZGV4OmtlLHc6RGV9KT0+e2xldCBVPURlLmNvbmZpZy50aGVtZS5tb2RlPT09ImRhcmsiLEI9VT8iaHNsKDAgMCUgOSUpIjoiaHNsKDAgMCUgMTAwJSkiLG9lPVU/ImhzbCgwIDAlIDk1JSkiOiJoc2woMCAwJSA5JSkiLHZlPVU/ImhzbCgwIDAlIDE0LjklKSI6ImhzbCgwIDAlIDg5LjglKSIseWU9RGUuY29uZmlnLnlheGlzWzBdPy5sYWJlbHM/LmZvcm1hdHRlcnx8KG5lPT5uZS50b1N0cmluZygpKSwkZT1gPGRpdiBzdHlsZT0icGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogJHtCfTsgY29sb3I6ICR7b2V9OyBib3JkZXItcmFkaXVzOiA2cHg7IGJveC1zaGFkb3c6IDAgMnB4IDhweCAwIGhzbCgwIDAlIDAlIC8gJHtVPyIwLjIiOiIwLjEifSk7IGJvcmRlcjogMXB4IHNvbGlkICR7dmV9O2ZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJweDsiPmA7cmV0dXJuIHNlLmZvckVhY2goKG5lLHJlKT0+e2xldCBnZT1EZS5nbG9iYWxzLnNlcmllc05hbWVzW3JlXSxFZT1uZVtrZV0scnQ9RGUuZ2xvYmFscy5jb2xvcnNbcmVdLHVlPXllKEVlKTskZSs9YDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBtYXJnaW46ICR7cmU+MD8iNnB4IjoiMCJ9IDA7Ij4KICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiAke3J0fTsgYm9yZGVyLXJhZGl1czogMnB4OyI+PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogNTAwOyI+JHtnZX06PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJtYXJnaW4tbGVmdDogYXV0bzsgZm9udC13ZWlnaHQ6IDYwMDsiPiR7dWV9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj5gfSksJGUrPSI8L2Rpdj4iLCRlfX0sZ3JpZDp7eGF4aXM6e2xpbmVzOntzaG93OiExfX0seWF4aXM6e2xpbmVzOntzaG93OiEwfX0sYm9yZGVyQ29sb3I6Tz8iaHNsKDAgMCUgMTQuOSUpIjoiaHNsKDAgMCUgOTQlKSIsc3Ryb2tlRGFzaEFycmF5OjAscGFkZGluZzp7dG9wOjEwLHJpZ2h0OjIwLGJvdHRvbToxMCxsZWZ0OjIwfX0sZmlsbDp7dHlwZToiZ3JhZGllbnQiLGdyYWRpZW50OntzaGFkZTpPPyJkYXJrIjoibGlnaHQiLHR5cGU6InZlcnRpY2FsIixzaGFkZUludGVuc2l0eTouMSxvcGFjaXR5RnJvbTpPPy4yOi4zLG9wYWNpdHlUbzowLHN0b3BzOlswLDEwMF19fSxjb2xvcnM6Tz90aGlzLkNIQVJUX0NPTE9SUy5kYXJrOnRoaXMuQ0hBUlRfQ09MT1JTLmxpZ2h0LHRoZW1lOnttb2RlOkd9fTt0cnl7dGhpcy5jaGFydD1uZXcgQSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoYXJ0Q29udGFpbmVyIiksaiksYXdhaXQgdGhpcy5jaGFydC5yZW5kZXIoKSxhd2FpdCBuZXcgUHJvbWlzZShrZT0+c2V0VGltZW91dChrZSwxMDApKSxhd2FpdCB0aGlzLnJlc2l6ZUNoYXJ0KCk7bGV0IHNlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbmJveCIpO3NlJiZ0aGlzLnJlc2l6ZU9ic2VydmVyJiYodGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHNlKSx0aGlzLkRFQlVHX1JFU0laRSYmY29uc29sZS5sb2coIkRlZXNDaGFydEFyZWEgLSBSZXNpemVPYnNlcnZlciBhdHRhY2hlZCB0byBtYWluYm94IikpfWNhdGNoKHNlKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBjaGFydDoiLHNlKX19YXN5bmMgdXBkYXRlZChBKXtzdXBlci51cGRhdGVkKEEpLEEuaGFzKCJnb0JyaWdodCIpJiZ0aGlzLmNoYXJ0JiZhd2FpdCB0aGlzLnVwZGF0ZUNoYXJ0VGhlbWUoKSxBLmhhcygic2VyaWVzIikmJnRoaXMuY2hhcnQmJnRoaXMuc2VyaWVzLmxlbmd0aD4wJiZhd2FpdCB0aGlzLnVwZGF0ZVNlcmllcyh0aGlzLnNlcmllcyksQS5oYXMoInlBeGlzRm9ybWF0dGVyIikmJnRoaXMuY2hhcnQmJmF3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7eWF4aXM6e2xhYmVsczp7Zm9ybWF0dGVyOnRoaXMueUF4aXNGb3JtYXR0ZXJ9fX0pLEEuaGFzKCJyZWFsdGltZU1vZGUiKSYmdGhpcy5jaGFydCYmKGF3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7Y2hhcnQ6e2FuaW1hdGlvbnM6e2VuYWJsZWQ6IXRoaXMucmVhbHRpbWVNb2RlLHNwZWVkOjQwMCxhbmltYXRlR3JhZHVhbGx5OntlbmFibGVkOiExLGRlbGF5OjB9LGR5bmFtaWNBbmltYXRpb246e2VuYWJsZWQ6IXRoaXMucmVhbHRpbWVNb2RlLHNwZWVkOjM1MH19fX0pLHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MD90aGlzLnN0YXJ0QXV0b1Njcm9sbCgpOnRoaXMuc3RvcEF1dG9TY3JvbGwoKSksQS5oYXMoImF1dG9TY3JvbGxJbnRlcnZhbCIpJiZ0aGlzLmNoYXJ0JiYodGhpcy5zdG9wQXV0b1Njcm9sbCgpLHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MCYmdGhpcy5zdGFydEF1dG9TY3JvbGwoKSksKEEuaGFzKCJ5QXhpc1NjYWxpbmciKXx8QS5oYXMoInlBeGlzTWF4IikpJiZ0aGlzLmNoYXJ0JiZhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe3lheGlzOnttaW46MCxtYXg6dGhpcy55QXhpc1NjYWxpbmc9PT0iZHluYW1pYyI/dm9pZCAwOnRoaXMueUF4aXNNYXh9fSl9YXN5bmMgdXBkYXRlU2VyaWVzKEEsRj0hMCl7aWYodGhpcy5jaGFydCl0cnl7aWYodGhpcy5pbnRlcm5hbENoYXJ0RGF0YT1BLHRoaXMucm9sbGluZ1dpbmRvdz4wJiZ0aGlzLnJlYWx0aW1lTW9kZSl7bGV0IFY9RGF0ZS5ub3coKS10aGlzLnJvbGxpbmdXaW5kb3csU2U9QS5tYXAoemU9Pih7bmFtZTp6ZS5uYW1lLGRhdGE6emUuZGF0YS5maWx0ZXIoVz0+dHlwZW9mIFc9PSJvYmplY3QiJiZXIT09bnVsbCYmIngiaW4gVz9uZXcgRGF0ZShXLngpLmdldFRpbWUoKT5WOiExKX0pKTtpZihTZS5zb21lKHplPT56ZS5kYXRhLmxlbmd0aD4wKSl7aWYodGhpcy55QXhpc1NjYWxpbmc9PT0iZHluYW1pYyIpe2xldCB6ZT1TZS5mbGF0TWFwKFc9PlcuZGF0YS5tYXAoTmU9Pk5lLnkpKTtpZih6ZS5sZW5ndGg+MCl7bGV0IFc9TWF0aC5tYXgoLi4uemUpLE5lPU1hdGguY2VpbChXKjEuMSk7YXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHt5YXhpczp7bWluOjAsbWF4Ok5lfX0sITEsITEpfX1hd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZVNlcmllcyhTZSwhMSl9fWVsc2UgYXdhaXQgdGhpcy5jaGFydC51cGRhdGVTZXJpZXMoQSxGKX1jYXRjaChhZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBjaGFydCBzZXJpZXM6IixhZSl9fWFzeW5jIHVwZGF0ZVRpbWVXaW5kb3coKXtpZighdGhpcy5jaGFydHx8dGhpcy5yb2xsaW5nV2luZG93PD0wKXJldHVybjtsZXQgQT1EYXRlLm5vdygpLEY9QS10aGlzLnJvbGxpbmdXaW5kb3c7YXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHt4YXhpczp7bWluOkYsbWF4OkEsbGFiZWxzOntmb3JtYXQ6IkhIOm1tOnNzIixkYXRldGltZVVUQzohMSxzdHlsZTp7Y29sb3JzOlt0aGlzLmdvQnJpZ2h0PyJoc2woMCAwJSAyMCUpIjoiaHNsKDAgMCUgNjMuOSUpIl0sZm9udFNpemU6IjEycHgiLGZvbnRGYW1pbHk6Jy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgc2Fucy1zZXJpZicsZm9udFdlaWdodDoiNDAwIn19LHRpY2tBbW91bnQ6Nn19LCExLCExKX1hc3luYyBhcHBlbmREYXRhKEEpe3RoaXMuY2hhcnQmJnRoaXMuY2hhcnQuYXBwZW5kRGF0YShBKX1hc3luYyB1cGRhdGVPcHRpb25zKEEsRixhZSl7aWYodGhpcy5jaGFydClyZXR1cm4gdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKEEsRixhZSl9YXN5bmMgcmVzaXplQ2hhcnQoKXtpZih0aGlzLmNoYXJ0KXt0aGlzLkRFQlVHX1JFU0laRSYmY29uc29sZS5sb2coIkRlZXNDaGFydEFyZWEgLSByZXNpemVDaGFydCBjYWxsZWQiKTt0cnl7bGV0IEE9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluYm94IiksRj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoYXJ0Q29udGFpbmVyIik7aWYoIUF8fCFGKXJldHVybjtBLm9mZnNldEhlaWdodDtsZXQgYWU9d2luZG93LmdldENvbXB1dGVkU3R5bGUoRiksVj1wYXJzZUludChhZS5wYWRkaW5nVG9wLDEwKSxTZT1wYXJzZUludChhZS5wYWRkaW5nQm90dG9tLDEwKSx6ZT1wYXJzZUludChhZS5wYWRkaW5nTGVmdCwxMCksVz1wYXJzZUludChhZS5wYWRkaW5nUmlnaHQsMTApLE5lPUEuY2xpZW50V2lkdGgtemUtVyxSZT1BLm9mZnNldEhlaWdodC1WLVNlO05lPjAmJlJlPjAmJih0aGlzLkRFQlVHX1JFU0laRSYmY29uc29sZS5sb2coIkRlZXNDaGFydEFyZWEgLSBVcGRhdGluZyBjaGFydCBkaW1lbnNpb25zOiIse3dpZHRoOk5lLGhlaWdodDpSZX0pLGF3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7Y2hhcnQ6e3dpZHRoOk5lLGhlaWdodDpSZX19LCEwLCExKSl9Y2F0Y2goQSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlc2l6ZSBjaGFydDoiLEEpfX19YXN5bmMgZm9yY2VSZXNpemUoKXthd2FpdCB0aGlzLnJlc2l6ZUNoYXJ0KCl9c3RhcnRBdXRvU2Nyb2xsKCl7dGhpcy5hdXRvU2Nyb2xsVGltZXJ8fCh0aGlzLmF1dG9TY3JvbGxUaW1lcj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnVwZGF0ZVRpbWVXaW5kb3coKX0sdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWwpKX1zdG9wQXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbFRpbWVyJiYod2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2Nyb2xsVGltZXIpLHRoaXMuYXV0b1Njcm9sbFRpbWVyPW51bGwpfWFzeW5jIHVwZGF0ZUNoYXJ0VGhlbWUoKXtpZighdGhpcy5jaGFydClyZXR1cm47bGV0IEE9IXRoaXMuZ29CcmlnaHQsRj1BPyJkYXJrIjoibGlnaHQiO2F3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7dGhlbWU6e21vZGU6Rn0sY29sb3JzOkE/dGhpcy5DSEFSVF9DT0xPUlMuZGFyazp0aGlzLkNIQVJUX0NPTE9SUy5saWdodCx4YXhpczp7bGFiZWxzOntzdHlsZTp7Y29sb3JzOltBPyJoc2woMCAwJSA2My45JSkiOiJoc2woMCAwJSAyMCUpIl19fX0seWF4aXM6e2xhYmVsczp7c3R5bGU6e2NvbG9yczpbQT8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdfX19LGdyaWQ6e2JvcmRlckNvbG9yOkE/ImhzbCgwIDAlIDE0LjklKSI6ImhzbCgwIDAlIDk0JSkifSxmaWxsOntncmFkaWVudDp7c2hhZGU6QT8iZGFyayI6ImxpZ2h0IixvcGFjaXR5RnJvbTpBPy4yOi4zfX19KX1zdGF0aWN7VjEocixhKX19O3JldHVybiBSPXJ9KSgpO2ZlKCk7dmFyIFNGdD0oKT0+TWAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtY2hhcnQtbG9nIiksYSxyPVsiU2VydmVyIiwiRGF0YWJhc2UiLCJBUEkiLCJBdXRoIiwiQ2FjaGUiLCJRdWV1ZSIsIldlYlNvY2tldCIsIlNjaGVkdWxlciJdLGk9e2RlYnVnOlsiTG9hZGluZyBtb2R1bGU6IHt7bW9kdWxlfX0iLCJDYWNoZSBoaXQgZm9yIGtleToge3trZXl9fSIsIlNRTCBxdWVyeSBleGVjdXRlZCBpbiB7e3RpbWV9fW1zIiwiUmVxdWVzdCBoZWFkZXJzOiB7e2hlYWRlcnN9fSIsIkVudmlyb25tZW50IHZhcmlhYmxlIGxvYWRlZDoge3t2YXJ9fSJdLGluZm86WyJSZXF1ZXN0IHJlY2VpdmVkOiB7e21ldGhvZH19IHt7cGF0aH19IiwiVXNlciB7e3VzZXJJZH19IGF1dGhlbnRpY2F0ZWQgc3VjY2Vzc2Z1bGx5IiwiUHJvY2Vzc2luZyBqb2Ige3tqb2JJZH19IGZyb20gcXVldWUiLCdTY2hlZHVsZWQgdGFzayAie3t0YXNrfX0iIHN0YXJ0ZWQnLCJXZWJTb2NrZXQgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCBmcm9tIHt7aXB9fSJdLHdhcm46WyJTbG93IHF1ZXJ5IGRldGVjdGVkOiB7e3F1ZXJ5fX0gKHt7dGltZX19bXMpIiwiTWVtb3J5IHVzYWdlIGF0IHt7cGVyY2VudH19JSIsIlJhdGUgbGltaXQgYXBwcm9hY2hpbmcgZm9yIElQIHt7aXB9fSIsIkRlcHJlY2F0ZWQgQVBJIGVuZHBvaW50IGNhbGxlZDoge3tlbmRwb2ludH19IiwiQ2VydGlmaWNhdGUgZXhwaXJlcyBpbiB7e2RheXN9fSBkYXlzIl0sZXJyb3I6WyJEYXRhYmFzZSBjb25uZWN0aW9uIGxvc3Q6IHt7ZXJyb3J9fSIsIkZhaWxlZCB0byBwcm9jZXNzIHJlcXVlc3Q6IHt7ZXJyb3J9fSIsIkF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3IgdXNlciB7e3VzZXJ9fSIsIkZpbGUgbm90IGZvdW5kOiB7e3BhdGh9fSIsIlNlcnZpY2UgdW5hdmFpbGFibGU6IHt7c2VydmljZX19Il0sc3VjY2VzczpbIlNlcnZlciBzdGFydGVkIHN1Y2Nlc3NmdWxseSBvbiBwb3J0IHt7cG9ydH19IiwiRGF0YWJhc2UgbWlncmF0aW9uIGNvbXBsZXRlZCIsIkJhY2t1cCBjb21wbGV0ZWQ6IHt7c2l6ZX19IE1CIiwiU1NMIGNlcnRpZmljYXRlIHJlbmV3ZWQiLCJIZWFsdGggY2hlY2sgcGFzc2VkOiBhbGwgc3lzdGVtcyBvcGVyYXRpb25hbCJdfSxvPSgpPT57bGV0IGM9WyJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJzdWNjZXNzIl0sdT1bLjIsLjUsLjE1LC4xLC4wNV0sZD1NYXRoLnJhbmRvbSgpLGg9MCxnPSJpbmZvIjtmb3IobGV0IHk9MDt5PHUubGVuZ3RoO3krKylpZihoKz11W3ldLGQ8aCl7Zz1jW3ldO2JyZWFrfWxldCBiPXJbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnIubGVuZ3RoKV0seD1pW2ddLHY9eFtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqeC5sZW5ndGgpXS5yZXBsYWNlKCJ7e21vZHVsZX19IixbImV4cHJlc3MiLCJtb25nb29zZSIsInJlZGlzIiwic29ja2V0LmlvIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3trZXl9fSIsInVzZXI6IitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKSkucmVwbGFjZSgie3t0aW1lfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNTAwKSs1MCkpLnJlcGxhY2UoInt7aGVhZGVyc319IiwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uLCBBdXRob3JpemF0aW9uOiBCZWFyZXIgLi4uIikucmVwbGFjZSgie3t2YXJ9fSIsWyJOT0RFX0VOViIsIkRBVEFCQVNFX1VSTCIsIkFQSV9LRVkiLCJQT1JUIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3ttZXRob2R9fSIsWyJHRVQiLCJQT1NUIiwiUFVUIiwiREVMRVRFIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3twYXRofX0iLFsiL2FwaS91c2VycyIsIi9hcGkvYXV0aC9sb2dpbiIsIi9hcGkvcHJvZHVjdHMiLCIvaGVhbHRoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tqb2JJZH19Iiwiam9iXyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTEpKS5yZXBsYWNlKCJ7e3Rhc2t9fSIsWyJjbGVhbnVwIiwiYmFja3VwIiwicmVwb3J0LWdlbmVyYXRpb24iLCJjYWNoZS1yZWZyZXNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3txdWVyeX19IiwiU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSAuLi4iKS5yZXBsYWNlKCJ7e3BlcmNlbnR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozMCkrNzApKS5yZXBsYWNlKCJ7e2VuZHBvaW50fX0iLCIvYXBpL3YxL2xlZ2FjeSIpLnJlcGxhY2UoInt7ZGF5c319IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMwKSsxKSkucmVwbGFjZSgie3tlcnJvcn19IixbIkVDT05OUkVGVVNFRCIsIkVUSU1FRE9VVCIsIkVOT1RGT1VORCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozKV0pLnJlcGxhY2UoInt7dXNlcn19IiwidXNlcl8iK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpKS5yZXBsYWNlKCJ7e3NlcnZpY2V9fSIsWyJSZWRpcyIsIk1vbmdvREIiLCJFbGFzdGljU2VhcmNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMpXSkucmVwbGFjZSgie3twb3J0fX0iLFN0cmluZygzZTMrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwKSkpLnJlcGxhY2UoInt7c2l6ZX19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjUwMCkrMTAwKSk7ZS5hZGRMb2coZyx2LGIpfSxzPSgpPT57aWYoIWEpe2xldCBjPSgpPT57bygpO2xldCB1PU1hdGgucmFuZG9tKCkqMmUzKzUwMDthPXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57YSYmYygpfSx1KX07YygpfX0sbD0oKT0+e2EmJih3aW5kb3cuY2xlYXJUaW1lb3V0KGEpLGE9bnVsbCl9O3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGM9PntsZXQgdT1jLnRleHRDb250ZW50Py50cmltKCk7dT09PSJBZGQgU2luZ2xlIExvZyI/Yy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pm8oKSk6dT09PSJTdGFydCBTaW11bGF0aW9uIj9jLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+cygpKTp1PT09IlN0b3AgU2ltdWxhdGlvbiImJmMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5sKCkpfSl9fT4KICAgICAgPHN0eWxlPgogICAgICAuZGVtb0JveCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIC5pbmZvIHsKICAgICAgICBjb2xvcjogIzg4ODsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBTaW5nbGUgTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8ZGVlcy1idXR0b24+U3RhcnQgU2ltdWxhdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgU2ltdWxhdGlvbjwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj5TaW11bGF0aW5nIHJlYWxpc3RpYyBzZXJ2ZXIgbG9ncyB3aXRoIHZhcmlvdXMgbGV2ZWxzIGFuZCBzb3VyY2VzPC9kaXY+CiAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgIC5sYWJlbD0keyJQcm9kdWN0aW9uIFNlcnZlciBMb2dzIn0KICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgO2ZlKCk7U3QoKTtCZSgpO3ZhciB5ST1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LFlpPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxjczE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWNoYXJ0LWxvZyIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdO3ZhciB2PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgeT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKCldLGY9W0Qoe3R5cGU6QXJyYXl9KV0sZD1bRCh7dHlwZTpCb29sZWFufSldLGI9W0Qoe3R5cGU6TnVtYmVyfSldLHlJKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJsYWJlbCJpbiB3LGdldDp3PT53LmxhYmVsLHNldDoodyxFKT0+e3cubGFiZWw9RX19LG1ldGFkYXRhOnl9LHMsbCkseUkodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4ibG9nRW50cmllcyJpbiB3LGdldDp3PT53LmxvZ0VudHJpZXMsc2V0Oih3LEUpPT57dy5sb2dFbnRyaWVzPUV9fSxtZXRhZGF0YTp5fSxjLHUpLHlJKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b1Njcm9sbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+ImF1dG9TY3JvbGwiaW4gdyxnZXQ6dz0+dy5hdXRvU2Nyb2xsLHNldDoodyxFKT0+e3cuYXV0b1Njcm9sbD1FfX0sbWV0YWRhdGE6eX0saCxnKSx5SSh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEVudHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJtYXhFbnRyaWVzImluIHcsZ2V0Onc9PncubWF4RW50cmllcyxzZXQ6KHcsRSk9Pnt3Lm1heEVudHJpZXM9RX19LG1ldGFkYXRhOnl9LHgsbSkseUkobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6eX0sbnVsbCxhKSx2PXI9ZS52YWx1ZSx5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnl9KX1zdGF0aWMgZGVtbz1TRnQ7c3RhdGljIGRlbW9Hcm91cD0iQ2hhcnQiOyNlPVlpKHRoaXMscywiU2VydmVyIExvZ3MiKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGFiZWwoeSl7dGhpcy4jZT15fSN0PShZaSh0aGlzLGwpLFlpKHRoaXMsYyxbXSkpO2dldCBsb2dFbnRyaWVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvZ0VudHJpZXMoeSl7dGhpcy4jdD15fSNhPShZaSh0aGlzLHUpLFlpKHRoaXMsaCwhMCkpO2dldCBhdXRvU2Nyb2xsKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGF1dG9TY3JvbGwoeSl7dGhpcy4jYT15fSNyPShZaSh0aGlzLGcpLFlpKHRoaXMseCwxZTMpKTtnZXQgbWF4RW50cmllcygpe3JldHVybiB0aGlzLiNyfXNldCBtYXhFbnRyaWVzKHkpe3RoaXMuI3I9eX1sb2dDb250YWluZXI9WWkodGhpcyxtKTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksYzEuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0xpYmVyYXRpb24gTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQogICAgICAubWFpbmJveCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuY29udHJvbHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5jb250cm9sLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgIH0KCiAgICAgIC5sb2dDb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KCiAgICAgIC5sb2dFbnRyeSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICB9CgogICAgICAudGltZXN0YW1wIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5sZXZlbCB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICAgICAgcGFkZGluZzogMCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5sZXZlbC5kZWJ1ZyB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElIC8gMC4xKSIsImhzbCgwIDAlIDYzLjklIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmxldmVsLmluZm8gewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAubGV2ZWwud2FybiB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlIC8gMC4xKSIsImhzbCgyNSA5NSUgNjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmxldmVsLmVycm9yIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUgLyAwLjEpIiwiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAubGV2ZWwuc3VjY2VzcyB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5zb3VyY2UgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAvKiBDdXN0b20gc2Nyb2xsYmFyICovCiAgICAgIC5sb2dDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAubG9nQ29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSAxMCUpIil9OwogICAgICB9CgogICAgICAubG9nQ29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDcwJSkiLCJoc2woMCAwJSAzMCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLmxvZ0NvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA2MCUpIiwiaHNsKDAgMCUgNDAlKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+JHt0aGlzLmxhYmVsfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgICA8YnV0dG9uIAogICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sLWJ1dHRvbiAke3RoaXMuYXV0b1Njcm9sbD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLmF1dG9TY3JvbGw9IXRoaXMuYXV0b1Njcm9sbH19CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBBdXRvIFNjcm9sbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgICBjbGFzcz0iY29udHJvbC1idXR0b24iCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9Pnt0aGlzLmNsZWFyTG9ncygpfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIENsZWFyCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9nQ29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5sb2dFbnRyaWVzLmxlbmd0aD09PTA/TWA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gbG9ncyB0byBkaXNwbGF5PC9kaXY+YDp0aGlzLmxvZ0VudHJpZXMubWFwKHk9PnRoaXMucmVuZGVyTG9nRW50cnkoeSkpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTG9nRW50cnkoeSl7bGV0IHc9bmV3IERhdGUoeS50aW1lc3RhbXApLnRvTG9jYWxlVGltZVN0cmluZygiZW4tVVMiLHtob3VyMTI6ITEsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQiLGZyYWN0aW9uYWxTZWNvbmREaWdpdHM6M30pO3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJsb2dFbnRyeSI+CiAgICAgICAgPHNwYW4gY2xhc3M9InRpbWVzdGFtcCI+JHt3fTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ibGV2ZWwgJHt5LmxldmVsfSI+JHt5LmxldmVsfTwvc3Bhbj4KICAgICAgICAke3kuc291cmNlP01gPHNwYW4gY2xhc3M9InNvdXJjZSI+WyR7eS5zb3VyY2V9XTwvc3Bhbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJtZXNzYWdlIj4ke3kubWVzc2FnZX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx0aGlzLmxvZ0NvbnRhaW5lcj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmxvZ0NvbnRhaW5lciIpO2xldCB5PVt7dGltZXN0YW1wOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxsZXZlbDoiaW5mbyIsbWVzc2FnZToiU2VydmVyIHN0YXJ0ZWQgb24gcG9ydCAzMDAwIixzb3VyY2U6IlNlcnZlciJ9LHt0aW1lc3RhbXA6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGxldmVsOiJkZWJ1ZyIsbWVzc2FnZToiTG9hZGluZyBjb25maWd1cmF0aW9uIGZyb20gL2V0Yy9hcHAvY29uZmlnLmpzb24iLHNvdXJjZToiQ29uZmlnIn0se3RpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksbGV2ZWw6ImluZm8iLG1lc3NhZ2U6IkNvbm5lY3RlZCB0byBNb25nb0RCIGF0IG1vbmdvZGI6Ly9sb2NhbGhvc3Q6MjcwMTciLHNvdXJjZToiRGF0YWJhc2UifSx7dGltZXN0YW1wOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxsZXZlbDoic3VjY2VzcyIsbWVzc2FnZToiRGF0YWJhc2UgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCBzdWNjZXNzZnVsbHkiLHNvdXJjZToiRGF0YWJhc2UifSx7dGltZXN0YW1wOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxsZXZlbDoid2FybiIsbWVzc2FnZToiTm8gU1NMIGNlcnRpZmljYXRlIGZvdW5kLCB1c2luZyBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSIsc291cmNlOiJTZWN1cml0eSJ9LHt0aW1lc3RhbXA6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGxldmVsOiJpbmZvIixtZXNzYWdlOiJBUEkgcm91dGVzIGluaXRpYWxpemVkOiBHRVQgL2FwaS91c2VycywgUE9TVCAvYXBpL3VzZXJzLCBERUxFVEUgL2FwaS91c2Vycy86aWQiLHNvdXJjZToiUm91dGVyIn0se3RpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksbGV2ZWw6ImRlYnVnIixtZXNzYWdlOiJNaWRkbGV3YXJlIHN0YWNrOiBjb3JzLCBib2R5UGFyc2VyLCBhdXRoZW50aWNhdGlvbiwgZXJyb3JIYW5kbGVyIixzb3VyY2U6Ik1pZGRsZXdhcmUifSx7dGltZXN0YW1wOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxsZXZlbDoiaW5mbyIsbWVzc2FnZToiV2ViU29ja2V0IHNlcnZlciBsaXN0ZW5pbmcgb24gd3M6Ly9sb2NhbGhvc3Q6MzAwMSIsc291cmNlOiJXZWJTb2NrZXQifV07dGhpcy5sb2dFbnRyaWVzPXksdGhpcy5zY3JvbGxUb0JvdHRvbSgpfWFzeW5jIHVwZGF0ZUxvZyh5KXt5JiYodGhpcy5sb2dFbnRyaWVzPVsuLi50aGlzLmxvZ0VudHJpZXMsLi4ueV0sdGhpcy5sb2dFbnRyaWVzLmxlbmd0aD50aGlzLm1heEVudHJpZXMmJih0aGlzLmxvZ0VudHJpZXM9dGhpcy5sb2dFbnRyaWVzLnNsaWNlKC10aGlzLm1heEVudHJpZXMpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy5zY3JvbGxUb0JvdHRvbSgpKX1jbGVhckxvZ3MoKXt0aGlzLmxvZ0VudHJpZXM9W10sdGhpcy5yZXF1ZXN0VXBkYXRlKCl9c2Nyb2xsVG9Cb3R0b20oKXt0aGlzLmxvZ0NvbnRhaW5lciYmKHRoaXMubG9nQ29udGFpbmVyLnNjcm9sbFRvcD10aGlzLmxvZ0NvbnRhaW5lci5zY3JvbGxIZWlnaHQpfWFkZExvZyh5LHcsRSl7bGV0IEM9e3RpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksbGV2ZWw6eSxtZXNzYWdlOncsc291cmNlOkV9O3RoaXMudXBkYXRlTG9nKFtDXSl9c3RhdGlje1lpKHIsYSl9fTtyZXR1cm4gdj1yfSkoKTtmZSgpO3ZhciBDRnQ9KCk9Pk1gCiAgPHN0eWxlPgogICAgLmRlbW9XcmFwcGVyIHsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgfQogICAgCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtb1dyYXBwZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlR5cGVTY3JpcHQgQ29kZSBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkEgY29tcHJlaGVuc2l2ZSBUeXBlU2NyaXB0IGNvZGUgZXhhbXBsZSB3aXRoIHZhcmlvdXMgc3ludGF4IGhpZ2hsaWdodGluZy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0idHlwZXNjcmlwdCI+CmludGVyZmFjZSBVc2VyIHsKICBpZDogbnVtYmVyOwogIG5hbWU6IHN0cmluZzsKICBlbWFpbDogc3RyaW5nOwogIGlzQWN0aXZlOiBib29sZWFuOwp9CgpjbGFzcyBVc2VyU2VydmljZSB7CiAgcHJpdmF0ZSB1c2VyczogVXNlcltdID0gW107CiAgCiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlVcmw6IHN0cmluZykgewogICAgY29uc29sZS5sb2coJ1VzZXJTZXJ2aWNlIGluaXRpYWxpemVkJyk7CiAgfQogIAogIGFzeW5jIGdldFVzZXJzKCk6IFByb21pc2U8VXNlcltdPiB7CiAgICB0cnkgewogICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMuYXBpVXJsKTsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTsKICAgICAgcmV0dXJuIGRhdGEudXNlcnM7CiAgICB9IGNhdGNoIChlcnJvcikgewogICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggdXNlcnM6JywgZXJyb3IpOwogICAgICByZXR1cm4gW107CiAgICB9CiAgfQogIAogIGFkZFVzZXIodXNlcjogVXNlcik6IHZvaWQgewogICAgdGhpcy51c2Vycy5wdXNoKHVzZXIpOwogIH0KfQoKLy8gVXNhZ2UgZXhhbXBsZQpjb25zdCBzZXJ2aWNlID0gbmV3IFVzZXJTZXJ2aWNlKCdodHRwczovL2FwaS5leGFtcGxlLmNvbS91c2VycycpOwpjb25zdCB1c2VycyA9IGF3YWl0IHNlcnZpY2UuZ2V0VXNlcnMoKTsKY29uc29sZS5sb2coJ0ZvdW5kIHVzZXJzOicsIHVzZXJzLmxlbmd0aCk7CiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5KYXZhU2NyaXB0IEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+TW9kZXJuIEphdmFTY3JpcHQgd2l0aCBFUzYrIGZlYXR1cmVzLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJqYXZhc2NyaXB0Ij4KLy8gQXJyYXkgbWFuaXB1bGF0aW9uIGV4YW1wbGVzCmNvbnN0IG51bWJlcnMgPSBbMSwgMiwgMywgNCwgNV07CmNvbnN0IGRvdWJsZWQgPSBudW1iZXJzLm1hcChuID0+IG4gKiAyKTsKY29uc3QgZmlsdGVyZWQgPSBudW1iZXJzLmZpbHRlcihuID0+IG4gPiAzKTsKCi8vIE9iamVjdCBkZXN0cnVjdHVyaW5nCmNvbnN0IHVzZXIgPSB7IG5hbWU6ICdKb2huJywgYWdlOiAzMCwgY2l0eTogJ05ldyBZb3JrJyB9Owpjb25zdCB7IG5hbWUsIGFnZSB9ID0gdXNlcjsKCi8vIFByb21pc2UgaGFuZGxpbmcKY29uc3QgZmV0Y2hEYXRhID0gYXN5bmMgKHVybCkgPT4gewogIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTsKICByZXR1cm4gcmVzcG9uc2UuanNvbigpOwp9OwoKLy8gTW9kZXJuIHN5bnRheApjb25zdCBncmVldCA9IChuYW1lID0gJ1dvcmxkJykgPT4gXGBIZWxsbywgXCR7bmFtZX0hXGA7CmNvbnNvbGUubG9nKGdyZWV0KCdTaGFkQ04nKSk7CiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QeXRob24gRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5QeXRob24gY29kZSB3aXRoIGNsYXNzZXMgYW5kIHR5cGUgaGludHMuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9InB5dGhvbiI+CmZyb20gdHlwaW5nIGltcG9ydCBMaXN0LCBPcHRpb25hbAppbXBvcnQgYXN5bmNpbwoKY2xhc3MgRGF0YVByb2Nlc3NvcjoKICAgICIiIkEgc2ltcGxlIGRhdGEgcHJvY2Vzc29yIGNsYXNzIiIiCiAgICAKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lOiBzdHIpOgogICAgICAgIHNlbGYubmFtZSA9IG5hbWUKICAgICAgICBzZWxmLmRhdGE6IExpc3RbZGljdF0gPSBbXQogICAgCiAgICBhc3luYyBkZWYgcHJvY2Vzc19kYXRhKHNlbGYsIGl0ZW1zOiBMaXN0W2RpY3RdKSAtPiBMaXN0W2RpY3RdOgogICAgICAgICIiIlByb2Nlc3MgZGF0YSBpdGVtcyBhc3luY2hyb25vdXNseSIiIgogICAgICAgIHJlc3VsdHMgPSBbXQogICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgogICAgICAgICAgICAjIFNpbXVsYXRlIGFzeW5jIHByb2Nlc3NpbmcKICAgICAgICAgICAgYXdhaXQgYXN5bmNpby5zbGVlcCgwLjEpCiAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHsKICAgICAgICAgICAgICAgICdpZCc6IGl0ZW0uZ2V0KCdpZCcpLAogICAgICAgICAgICAgICAgJ3Byb2Nlc3NlZCc6IFRydWUsCiAgICAgICAgICAgICAgICAncHJvY2Vzc29yJzogc2VsZi5uYW1lCiAgICAgICAgICAgIH0pCiAgICAgICAgcmV0dXJuIHJlc3VsdHMKICAgIAogICAgZGVmIGdldF9zdW1tYXJ5KHNlbGYpIC0+IGRpY3Q6CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgJ3Byb2Nlc3Nvcic6IHNlbGYubmFtZSwKICAgICAgICAgICAgJ2l0ZW1zX3Byb2Nlc3NlZCc6IGxlbihzZWxmLmRhdGEpCiAgICAgICAgfQoKIyBVc2FnZQpwcm9jZXNzb3IgPSBEYXRhUHJvY2Vzc29yKCJNYWluIikKZGF0YSA9IGF3YWl0IHByb2Nlc3Nvci5wcm9jZXNzX2RhdGEoW3snaWQnOiAxfSwgeydpZCc6IDJ9XSkKICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNTUyBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk1vZGVybiBDU1Mgd2l0aCBjdXN0b20gcHJvcGVydGllcyBhbmQgYW5pbWF0aW9ucy4gTm90ZSB0aGUgc2hvcnRlciBsYW5ndWFnZSBsYWJlbC48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0iY3NzIj4KLyogTW9kZXJuIENTUyB3aXRoIGN1c3RvbSBwcm9wZXJ0aWVzICovCjpyb290IHsKICAtLXByaW1hcnktY29sb3I6ICMzYjgyZjY7CiAgLS1zZWNvbmRhcnktY29sb3I6ICMxMGI5ODE7CiAgLS1iYWNrZ3JvdW5kOiAjZmZmZmZmOwogIC0tdGV4dC1jb2xvcjogIzA5MDkwYjsKICAtLWJvcmRlci1yYWRpdXM6IDZweDsKfQoKLmNhcmQgewogIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQpOwogIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7CiAgcGFkZGluZzogMjRweDsKICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7Cn0KCi5jYXJkOmhvdmVyIHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgYm94LXNoYWRvdzogMCA0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKfQoKQGtleWZyYW1lcyBmYWRlSW4gewogIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IH0KICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQp9CiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5KU09OIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+SlNPTiBjb25maWd1cmF0aW9uIHdpdGggcHJvcGVyIGZvcm1hdHRpbmcuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9Impzb24iPgp7CiAgIm5hbWUiOiAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIiwKICAidmVyc2lvbiI6ICIxLjEwLjciLAogICJkZXNjcmlwdGlvbiI6ICJBIGNvbXByZWhlbnNpdmUgY2F0YWxvZyBvZiB3ZWIgY29tcG9uZW50cyIsCiAgIm1haW4iOiAiZGlzdF90c193ZWIvaW5kZXguanMiLAogICJ0eXBlIjogIm1vZHVsZSIsCiAgInNjcmlwdHMiOiB7CiAgICAiYnVpbGQiOiAidHNidWlsZCB0c2ZvbGRlcnMgLS1hbGxvd2ltcGxpY2l0YW55ICYmIHRzYnVuZGxlIGVsZW1lbnQgLS1wcm9kdWN0aW9uIiwKICAgICJ3YXRjaCI6ICJ0c3dhdGNoIGVsZW1lbnQiLAogICAgInRlc3QiOiAidHN0ZXN0IHRlc3QvIC0td2ViIC0tdmVyYm9zZSIKICB9LAogICJkZXBlbmRlbmNpZXMiOiB7CiAgICAiQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50IjogIl4yLjAuNDUiLAogICAgImhpZ2hsaWdodC5qcyI6ICJeMTEuOS4wIgogIH0KfQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogIDwvZGl2PgpgO2ZlKCk7UDgoKTtTdCgpO2VjKCk7dmFyIGJFZT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LHdJPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxkczE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWRhdGF2aWV3LWNvZGVib3giKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCgpXSxmPVtEKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGJFZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByb2dMYW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4icHJvZ0xhbmciaW4gZyxnZXQ6Zz0+Zy5wcm9nTGFuZyxzZXQ6KGcsYik9PntnLnByb2dMYW5nPWJ9fSxtZXRhZGF0YTpofSxzLGwpLGJFZSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvZGVUb0Rpc3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJjb2RlVG9EaXNwbGF5ImluIGcsZ2V0Omc9PmcuY29kZVRvRGlzcGxheSxzZXQ6KGcsYik9PntnLmNvZGVUb0Rpc3BsYXk9Yn19LG1ldGFkYXRhOmh9LGMsdSksYkVlKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmh9LG51bGwsYSksZD1yPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89Q0Z0O3N0YXRpYyBkZW1vR3JvdXA9IkRhdGEgVmlldyI7I2U9d0kodGhpcyxzLCJ0eXBlc2NyaXB0Iik7Z2V0IHByb2dMYW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHByb2dMYW5nKGgpe3RoaXMuI2U9aH0jdD0od0kodGhpcyxsKSx3SSh0aGlzLGMsIiIpKTtnZXQgY29kZVRvRGlzcGxheSgpe3JldHVybiB0aGlzLiN0fXNldCBjb2RlVG9EaXNwbGF5KGgpe3RoaXMuI3Q9aH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgICR7YzEuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIH0KICAgICAgICAubWFpbmJveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLmFwcGJhciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTgxODFiIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5hcHBiYXIgLmZpbGVOYW1lIHsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5ib3R0b21CYXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzE4MTgxYiIpfTsKICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLnNwYWNlc0xhYmVsIHsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmxhbmd1YWdlTGFiZWwgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5obGpzLWtleXdvcmQgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5jb2RlZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MHB4IGF1dG87CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM1MjUyNWIiKX07CiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDE2cHggMHB4IDBweDsKICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIH0KCiAgICAgICAgLmxpbmVDb3VudGVyOmxhc3QtY2hpbGQgewogICAgICAgICAgb3BhY2l0eTogNTAlOwogICAgICAgIH0KCiAgICAgICAgcHJlIHsKICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHggMjRweDsKICAgICAgICB9CgogICAgICAgIGNvZGUgewogICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIH0KCiAgICAgICAgY29kZSwKICAgICAgICBjb2RlICosCiAgICAgICAgLmxpbmVOdW1iZXJzIHsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7CiAgICAgICAgICBmb250LWZhbWlseTogJHtqbH07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1zdHJpbmcgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWJ1aWx0X2luIHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzhiNWNmNiIsIiNhNzhiZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1mdW5jdGlvbiB7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtcGFyYW1zIHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA4OTFiMiIsIiMwNmI2ZDQiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1jb21tZW50IHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1udW1iZXIgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWxpdGVyYWwgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLWF0dHIgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjOGI1Y2Y2IiwiI2E3OGJmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXZhcmlhYmxlIHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1haW5ib3giCiAgICAgICAgQGNvbnRleHRtZW51PSIke2g9PntXdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhoLFt7bmFtZToiQWJvdXQiLGljb25OYW1lOiJjaXJjbGVJbmZvIixhY3Rpb246YXN5bmMoKT0+bnVsbH1dKX19IgogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwYmFyIj4KICAgICAgICAgIDxkZWVzLXdpbmRvd2NvbnRyb2xzIHR5cGU9Im1hYyIgcG9zaXRpb249ImxlZnQiPjwvZGVlcy13aW5kb3djb250cm9scz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGVOYW1lIj5pbmRleC50czwvZGl2PgogICAgICAgICAgPGRlZXMtd2luZG93Y29udHJvbHMgdHlwZT0ibWFjIiBwb3NpdGlvbj0icmlnaHQiPjwvZGVlcy13aW5kb3djb250cm9scz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lTnVtYmVycyI+CiAgICAgICAgICAgICR7KCgpPT57bGV0IGg9MDtyZXR1cm4gdGhpcy5jb2RlVG9EaXNwbGF5LnNwbGl0KGAKYCkubWFwKGc9PihoKyssTWA8ZGl2IGNsYXNzPSJsaW5lQ291bnRlciI+JHtofTwvZGl2PmApKX0pKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwcmU+PGNvZGU+PC9jb2RlPjwvcHJlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXNMYWJlbCI+U3BhY2VzOiAyPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZUxhYmVsIj4ke3RoaXMucHJvZ0xhbmd9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb2RlVG9EaXNwbGF5U3RvcmU9KHdJKHRoaXMsdSksIiIpO2hpZ2hsaWdodEpzPW51bGw7YXN5bmMgdXBkYXRlZChoKXtzdXBlci51cGRhdGVkKGgpLGNvbnNvbGUubG9nKCJoaWdobGlnaHRpbmcgbm93IiksY29uc29sZS5sb2codGhpcy5jaGlsZE5vZGVzKTtsZXQgZz1bXTt0aGlzLmNoaWxkTm9kZXMuZm9yRWFjaChtPT57bS5ub2RlTmFtZT09PSIjdGV4dCImJmcucHVzaChtKX0pLHRoaXMuY29kZVRvRGlzcGxheSYmdGhpcy5jb2RlVG9EaXNwbGF5IT09dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1Vcy5ub3JtYWxpemUodGhpcy5jb2RlVG9EaXNwbGF5KS50cmltU3RhcnQoKSksZ1swXSYmZ1swXS53aG9sZVRleHQmJiF0aGlzLmNvZGVUb0Rpc3BsYXkmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1Vcy5ub3JtYWxpemUoZ1swXS53aG9sZVRleHQpLnRyaW1TdGFydCgpLHRoaXMuY29kZVRvRGlzcGxheT10aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZSksYXdhaXQgQXQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCBIMi5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgYj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiY29kZSIpLHg9dGhpcy5oaWdobGlnaHRKcy5oaWdobGlnaHQodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUse2xhbmd1YWdlOnRoaXMucHJvZ0xhbmcsaWdub3JlSWxsZWdhbHM6ITB9KTtiLmlubmVySFRNTD14LnZhbHVlfXN0YXRpY3t3SShyLGEpfX07cmV0dXJuIGQ9cn0pKCk7ZmUoKTt2YXIgTEZ0PSgpPT5NYCA8c3R5bGU+CiAgICAuZGVtbyB7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjVmNWY1IiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwYWRkaW5nOiA0MHB4OwogICAgfQogICAgCiAgICAuZGVtby1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTZweDsKICAgIH0KICAgIAogICAgLmRlbW8tdGl0bGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICB9CiAgICAKICAgIC5kZW1vLW5vdGUgewogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8iPgogICAgPGRpdiBjbGFzcz0iZGVtby1ub3RlIj4KICAgICAgUmlnaHQtY2xpY2sgb24gYW55IGRldGFpbCByb3cgdG8gY29weSB0aGUgdmFsdWUsIGtleSwgb3Iga2V5OnZhbHVlIGNvbWJpbmF0aW9uCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+U2VydmljZSBIZWFsdGggU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIxIixuYW1lOiJBUEkgR2F0ZXdheSBTZXJ2aWNlIixjb21iaW5lZFN0YXR1czoib2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLGRldGFpbHM6W3tuYW1lOiJSZXNwb25zZSBUaW1lIix2YWx1ZToiNDVtcyAoYXZnKSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiV2l0aGluIG5vcm1hbCByYW5nZSJ9LHtuYW1lOiJVcHRpbWUiLHZhbHVlOiI5OS45OSUgKDMwIGRheXMpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJFeGNlbGxlbnQgdXB0aW1lIn0se25hbWU6IkFjdGl2ZSBDb25uZWN0aW9ucyIsdmFsdWU6IjEsMjM0IC8gMTAsMDAwIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJOb3JtYWwgbG9hZCJ9LHtuYW1lOiJTU0wgQ2VydGlmaWNhdGUiLHZhbHVlOiJWYWxpZCB1bnRpbCAyMDI0LTEyLTMxIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJDZXJ0aWZpY2F0ZSB2YWxpZCJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5EYXRhYmFzZSBDbHVzdGVyIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMiIsbmFtZToiUG9zdGdyZVNRTCBDbHVzdGVyIixjb21iaW5lZFN0YXR1czoicGFydGx5X29rIixjb21iaW5lZFN0YXR1c1RleHQ6Ik1pbm9yIGlzc3VlcyBkZXRlY3RlZCIsZGV0YWlsczpbe25hbWU6IlByaW1hcnkgTm9kZSIsdmFsdWU6ImRiLXByaW1hcnktMDEgKGhlYWx0aHkpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJPcGVyYXRpbmcgbm9ybWFsbHkifSx7bmFtZToiUmVwbGljYSBMYWciLHZhbHVlOiIyLjUgc2Vjb25kcyIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IlNsaWdodGx5IGVsZXZhdGVkIn0se25hbWU6IkRpc2sgVXNhZ2UiLHZhbHVlOiI3OCUgKDMxMkdCIC8gNDAwR0IpIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiQXBwcm9hY2hpbmcgdGhyZXNob2xkIn0se25hbWU6IkNvbm5lY3Rpb24gUG9vbCIsdmFsdWU6Ijg5IC8gMTAwIGNvbm5lY3Rpb25zIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJXaXRoaW4gbGltaXRzIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tdGl0bGUiPkJ1aWxkIFBpcGVsaW5lIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMyIsbmFtZToiQ0kvQ0QgUGlwZWxpbmUiLGNvbWJpbmVkU3RhdHVzOiJub3Rfb2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQnVpbGQgZmFpbHVyZSIsZGV0YWlsczpbe25hbWU6Ikxhc3QgQnVpbGQiLHZhbHVlOiJCdWlsZCAjMTIzNCAtIEZhaWxlZCIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlRlc3QgZmFpbHVyZXMifSx7bmFtZToiRmFpbGVkIFRlc3RzIix2YWx1ZToiMyB0ZXN0cyBmYWlsZWQ6IGF1dGguc3BlYy50cywgdXNlci5zcGVjLnRzLCBhcGkuc3BlYy50cyIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlVuaXQgdGVzdCBmYWlsdXJlcyJ9LHtuYW1lOiJDb2RlIENvdmVyYWdlIix2YWx1ZToiODIuNSUgKHRhcmdldDogODUlKSIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IkJlbG93IHRhcmdldCJ9LHtuYW1lOiJCdWlsZCBEdXJhdGlvbiIsdmFsdWU6IjEybSAzNHMiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik5vcm1hbCBkdXJhdGlvbiJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+YDtmZSgpO0JlKCk7dmFyIFRGdD1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LHZFZT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sZnMxPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXTt2YXIgZj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpPYmplY3R9KV0sVEZ0KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzT2JqZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4ic3RhdHVzT2JqZWN0ImluIHUsZ2V0OnU9PnUuc3RhdHVzT2JqZWN0LHNldDoodSxkKT0+e3Uuc3RhdHVzT2JqZWN0PWR9fSxtZXRhZGF0YTpjfSxzLGwpLFRGdChudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGY9cj1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPUxGdDtzdGF0aWMgZGVtb0dyb3VwPSJEYXRhIFZpZXciOyNlPXZFZSh0aGlzLHMsdm9pZCAwKTtnZXQgc3RhdHVzT2JqZWN0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0YXR1c09iamVjdChjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggMCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMXB4IDJweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgICBtaW4taGVpZ2h0OiA0OHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ4cHggYXV0byAxMDBweDsKICAgICAgICBoZWlnaHQ6IDU2cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzZG90IHsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUgLyAwLjIpIiwiaHNsKDAgMCUgNDUuMSUgLyAwLjIpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuY29weU1haW46YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuc3RhdHVzZG90Lm9rIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjIpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5ub3Rfb2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7cC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMikiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3QucGFydGx5X29rIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke3AuYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjIpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuZGV0YWlsIHsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ4cHggYXV0bzsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk0JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICB9CgogICAgICAuZGV0YWlsOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgLmxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfQogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgLnZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmciPgogICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzZG90ICR7dGhpcy5zdGF0dXNPYmplY3Q/LmNvbWJpbmVkU3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICA8aDE+JHt0aGlzLnN0YXR1c09iamVjdD8ubmFtZXx8Ik5vIHN0YXR1cyBvYmplY3QgYXNzaWduZWQifTwvaDE+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb3B5TWFpbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDb3B5QXNKc29ufT5Db3B5IEpTT048L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc3RhdHVzT2JqZWN0Py5kZXRhaWxzPy5tYXAoYz0+TWAKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0iZGV0YWlsIgogICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke3U9Pnt1LnByZXZlbnREZWZhdWx0KCksV3Qub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModSxbe25hbWU6IkNvcHkgVmFsdWUiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChjLnZhbHVlLCJWYWx1ZSIpfX0se25hbWU6IkNvcHkgS2V5IixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChjLm5hbWUsIktleSIpfX0se25hbWU6IkNvcHkgS2V5OlZhbHVlIixpY29uTmFtZToibHVjaWRlOmNvcHktcGx1cyIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChgJHtjLm5hbWV9OiAke2MudmFsdWV9YCwiS2V5OlZhbHVlIil9fV0pfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke2Muc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsc1RleHQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwiPiR7Yy5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmFsdWUiPiR7Yy52YWx1ZX08L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe31hc3luYyBjb3B5VG9DbGlwYm9hcmQoYyx1PSJUZXh0Iil7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGMpLGNvbnNvbGUubG9nKGAke3V9IGNvcGllZCB0byBjbGlwYm9hcmRgKX1jYXRjaChkKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY29weSAke3V9OmAsZCl9fWFzeW5jIGhhbmRsZUNvcHlBc0pzb24oKXtpZih0aGlzLnN0YXR1c09iamVjdCl0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0dXNPYmplY3QsbnVsbCwyKSk7bGV0IGM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb3B5TWFpbiIpLHU9Yy50ZXh0Q29udGVudDtjLnRleHRDb250ZW50PSJDb3BpZWQhIjtsZXQgZD0hdGhpcy5nb0JyaWdodDtjLnN0eWxlLmJhY2tncm91bmQ9ZD8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLGMuc3R5bGUuYm9yZGVyQ29sb3I9ZD8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGMuc3R5bGUuY29sb3I9ZD8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLHNldFRpbWVvdXQoKCk9PntjLnRleHRDb250ZW50PXUsYy5zdHlsZS5iYWNrZ3JvdW5kPSIiLGMuc3R5bGUuYm9yZGVyQ29sb3I9IiIsYy5zdHlsZS5jb2xvcj0iIn0sMTUwMCl9Y2F0Y2goYyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHk6IixjKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHZFZSh0aGlzLGwpfXN0YXRpY3t2RWUocixhKX19O3JldHVybiBmPXJ9KSgpO2ZlKCk7U3QoKTtCZSgpO0Z0KCk7dmFyIG9jPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sbWE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LEJzMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtd29ya3NwYWNlLWZpbGV0cmVlIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W107dmFyIFA9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6T2JqZWN0fSldLGY9W0Qoe3R5cGU6U3RyaW5nfSldLGQ9W0Qoe3R5cGU6U3RyaW5nfSldLGI9W2xlKCldLHY9W2xlKCldLEU9W2xlKCldLG9jKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiAkLGdldDokPT4kLmV4ZWN1dGlvbkVudmlyb25tZW50LHNldDooJCxIKT0+eyQuZXhlY3V0aW9uRW52aXJvbm1lbnQ9SH19LG1ldGFkYXRhOl99LHMsbCksb2ModGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb290UGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InJvb3RQYXRoImluICQsZ2V0OiQ9PiQucm9vdFBhdGgsc2V0OigkLEgpPT57JC5yb290UGF0aD1IfX0sbWV0YWRhdGE6X30sYyx1KSxvYyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InNlbGVjdGVkUGF0aCJpbiAkLGdldDokPT4kLnNlbGVjdGVkUGF0aCxzZXQ6KCQsSCk9PnskLnNlbGVjdGVkUGF0aD1IfX0sbWV0YWRhdGE6X30saCxnKSxvYyh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRyZWVEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4idHJlZURhdGEiaW4gJCxnZXQ6JD0+JC50cmVlRGF0YSxzZXQ6KCQsSCk9PnskLnRyZWVEYXRhPUh9fSxtZXRhZGF0YTpffSx4LG0pLG9jKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNMb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iaXNMb2FkaW5nImluICQsZ2V0OiQ9PiQuaXNMb2FkaW5nLHNldDooJCxIKT0+eyQuaXNMb2FkaW5nPUh9fSxtZXRhZGF0YTpffSx5LHcpLG9jKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3JNZXNzYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iZXJyb3JNZXNzYWdlImluICQsZ2V0OiQ9PiQuZXJyb3JNZXNzYWdlLHNldDooJCxIKT0+eyQuZXJyb3JNZXNzYWdlPUh9fSxtZXRhZGF0YTpffSxDLHopLG9jKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksUD1yPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89KCk9Pk1gCiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogNDAwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsiPgogICAgICA8ZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+PC9kZWVzLXdvcmtzcGFjZS1maWxldHJlZT4KICAgIDwvZGl2PgogIGA7c3RhdGljIGRlbW9Hcm91cD0iV29ya3NwYWNlIjsjZT1tYSh0aGlzLHMsbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KF8pe3RoaXMuI2U9X30jdD0obWEodGhpcyxsKSxtYSh0aGlzLGMsIi8iKSk7Z2V0IHJvb3RQYXRoKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHJvb3RQYXRoKF8pe3RoaXMuI3Q9X30jYT0obWEodGhpcyx1KSxtYSh0aGlzLGgsIiIpKTtnZXQgc2VsZWN0ZWRQYXRoKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlbGVjdGVkUGF0aChfKXt0aGlzLiNhPV99I3I9KG1hKHRoaXMsZyksbWEodGhpcyx4LFtdKSk7Z2V0IHRyZWVEYXRhKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRyZWVEYXRhKF8pe3RoaXMuI3I9X30jaT0obWEodGhpcyxtKSxtYSh0aGlzLHksITEpKTtnZXQgaXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzTG9hZGluZyhfKXt0aGlzLiNpPV99I289KG1hKHRoaXMsdyksbWEodGhpcyxDLCIiKSk7Z2V0IGVycm9yTWVzc2FnZSgpe3JldHVybiB0aGlzLiNvfXNldCBlcnJvck1lc3NhZ2UoXyl7dGhpcy4jbz1ffWV4cGFuZGVkUGF0aHM9KG1hKHRoaXMseiksbmV3IFNldCk7bG9hZFRyZWVTdGFydGVkPSExO2NsaXBib2FyZFBhdGg9bnVsbDtjbGlwYm9hcmRPcGVyYXRpb249bnVsbDtmaWxlV2F0Y2hlcj1udWxsO3JlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9bnVsbDtsYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQ9bnVsbDtzdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC50cmVlLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luOiAxcHggNHB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlOwogICAgICB9CgogICAgICAudHJlZS1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTMlKSIsImhzbCgwIDAlIDE0JSkiKX07CiAgICAgIH0KCiAgICAgIC50cmVlLWl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgOTUlKSIsImhzbCgyMTAgNTAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDAlKSIsImhzbCgyMTAgMTAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAudHJlZS1pdGVtLnNlbGVjdGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDkyJSkiLCJoc2woMjEwIDUwJSAyNSUpIil9OwogICAgICB9CgogICAgICAuaW5kZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24uZXhwYW5kZWQgewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uLmhpZGRlbiB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAuZmlsZS1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuZmlsZS1pY29uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmZvbGRlciB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woNDUgODAlIDQ1JSkiLCJoc2woNDUgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uZmlsZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi50eXBlc2NyaXB0IHsKICAgICAgICBjb2xvcjogaHNsKDIxMSA2MCUgNDglKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5qYXZhc2NyaXB0IHsKICAgICAgICBjb2xvcjogaHNsKDUzIDkzJSA1NCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmpzb24gewogICAgICAgIGNvbG9yOiBoc2woNDUgODAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uaHRtbCB7CiAgICAgICAgY29sb3I6IGhzbCgxNCA3NyUgNTIlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5jc3MgewogICAgICAgIGNvbG9yOiBoc2woMjI4IDc3JSA1OSUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLm1hcmtkb3duIHsKICAgICAgICBjb2xvcjogaHNsKDAgMCUgNTAlKTsKICAgICAgfQoKICAgICAgLmZpbGUtbmFtZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODUlKSIpfTsKICAgICAgfQoKICAgICAgLmxvYWRpbmcgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5lcnJvciB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6IGhzbCgwIDcwJSA1MCUpOwogICAgICB9CgogICAgICAuZW1wdHkgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZmlsZXRyZWUtdG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudD90aGlzLmlzTG9hZGluZz9NYAogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmciPgogICAgICAgICAgTG9hZGluZyBmaWxlcy4uLgogICAgICAgIDwvZGl2PgogICAgICBgOnRoaXMuZXJyb3JNZXNzYWdlP01gCiAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3IiPgogICAgICAgICAgJHt0aGlzLmVycm9yTWVzc2FnZX0KICAgICAgICA8L2Rpdj4KICAgICAgYDpNYAogICAgICA8ZGl2IGNsYXNzPSJmaWxldHJlZS10b29sYmFyIj4KICAgICAgICA8c3BhbiBjbGFzcz0idG9vbGJhci10aXRsZSI+RXhwbG9yZXI8L3NwYW4+CiAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1hY3Rpb25zIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jcmVhdGVOZXdGaWxlKCIvIil9IHRpdGxlPSJOZXcgRmlsZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmZpbGVQbHVzIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNyZWF0ZU5ld0ZvbGRlcigiLyIpfSB0aXRsZT0iTmV3IEZvbGRlciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmZvbGRlclBsdXMifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMudHJlZURhdGEubGVuZ3RoPT09MD9NYDxkaXYgY2xhc3M9ImVtcHR5Ij5ObyBmaWxlcyBmb3VuZC48L2Rpdj5gOk1gCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyZWUtY29udGFpbmVyIiBAY29udGV4dG1lbnU9JHt0aGlzLmhhbmRsZUVtcHR5U3BhY2VDb250ZXh0TWVudX0+CiAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlclRyZWUodGhpcy50cmVlRGF0YSl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgIGA6TWAKICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eSI+CiAgICAgICAgICBObyBleGVjdXRpb24gZW52aXJvbm1lbnQgcHJvdmlkZWQuCiAgICAgICAgPC9kaXY+CiAgICAgIGB9cmVuZGVyVHJlZShfKXtyZXR1cm4gXy5tYXAoJD0+dGhpcy5yZW5kZXJOb2RlKCQpKX1yZW5kZXJOb2RlKF8pe2xldCAkPV8udHlwZT09PSJkaXJlY3RvcnkiLEg9dGhpcy5leHBhbmRlZFBhdGhzLmhhcyhfLnBhdGgpLEw9Xy5wYXRoPT09dGhpcy5zZWxlY3RlZFBhdGgsaz10aGlzLmdldEZpbGVJY29uQ2xhc3MoXyk7cmV0dXJuIE1gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0idHJlZS1pdGVtICR7TD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICBzdHlsZT0icGFkZGluZy1sZWZ0OiAkezgrXy5sZXZlbCoxNn1weCIKICAgICAgICBAY2xpY2s9JHtOPT50aGlzLmhhbmRsZUl0ZW1DbGljayhOLF8pfQogICAgICAgIEBjb250ZXh0bWVudT0ke049PnRoaXMuaGFuZGxlQ29udGV4dE1lbnUoTixfKX0KICAgICAgPgogICAgICAgIDxzcGFuIGNsYXNzPSJleHBhbmQtaWNvbiAke0g/ImV4cGFuZGVkIjoiIn0gJHskPyIiOiJoaWRkZW4ifSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGV2cm9uUmlnaHQifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1pY29uICR7a30iPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuZ2V0RmlsZUljb24oXyl9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLW5hbWUiPiR7Xy5uYW1lfTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgICR7JCYmSCYmXy5jaGlsZHJlbj90aGlzLnJlbmRlclRyZWUoXy5jaGlsZHJlbik6IiJ9CiAgICBgfWdldEZpbGVJY29uKF8pe2lmKF8udHlwZT09PSJkaXJlY3RvcnkiKXJldHVybiB0aGlzLmV4cGFuZGVkUGF0aHMuaGFzKF8ucGF0aCk/Imx1Y2lkZTpmb2xkZXJPcGVuIjoibHVjaWRlOmZvbGRlciI7c3dpdGNoKF8ubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpKXtjYXNlInRzIjpjYXNlInRzeCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJqcyI6Y2FzZSJqc3giOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UianNvbiI6cmV0dXJuImx1Y2lkZTpmaWxlSnNvbiI7Y2FzZSJodG1sIjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImNzcyI6Y2FzZSJzY3NzIjpjYXNlImxlc3MiOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UibWQiOnJldHVybiJsdWNpZGU6ZmlsZVRleHQiO2Nhc2UicG5nIjpjYXNlImpwZyI6Y2FzZSJqcGVnIjpjYXNlImdpZiI6Y2FzZSJzdmciOnJldHVybiJsdWNpZGU6aW1hZ2UiO2RlZmF1bHQ6cmV0dXJuImx1Y2lkZTpmaWxlIn19Z2V0RmlsZUljb25DbGFzcyhfKXtpZihfLnR5cGU9PT0iZGlyZWN0b3J5IilyZXR1cm4iZm9sZGVyIjtzd2l0Y2goXy5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCkpe2Nhc2UidHMiOmNhc2UidHN4IjpyZXR1cm4idHlwZXNjcmlwdCI7Y2FzZSJqcyI6Y2FzZSJqc3giOnJldHVybiJqYXZhc2NyaXB0IjtjYXNlImpzb24iOnJldHVybiJqc29uIjtjYXNlImh0bWwiOnJldHVybiJodG1sIjtjYXNlImNzcyI6Y2FzZSJzY3NzIjpjYXNlImxlc3MiOnJldHVybiJjc3MiO2Nhc2UibWQiOnJldHVybiJtYXJrZG93biI7ZGVmYXVsdDpyZXR1cm4iZmlsZSJ9fWFzeW5jIGhhbmRsZUl0ZW1DbGljayhfLCQpe18uc3RvcFByb3BhZ2F0aW9uKCksJC50eXBlPT09ImRpcmVjdG9yeSI/YXdhaXQgdGhpcy50b2dnbGVEaXJlY3RvcnkoJCk6KHRoaXMuc2VsZWN0ZWRQYXRoPSQucGF0aCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWxlLXNlbGVjdCIse2RldGFpbDp7cGF0aDokLnBhdGgsbmFtZTokLm5hbWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWFzeW5jIHRvZ2dsZURpcmVjdG9yeShfKXt0aGlzLmV4cGFuZGVkUGF0aHMuaGFzKF8ucGF0aCk/dGhpcy5leHBhbmRlZFBhdGhzLmRlbGV0ZShfLnBhdGgpOih0aGlzLmV4cGFuZGVkUGF0aHMuYWRkKF8ucGF0aCksKCFfLmNoaWxkcmVufHxfLmNoaWxkcmVuLmxlbmd0aD09PTApJiZhd2FpdCB0aGlzLmxvYWREaXJlY3RvcnlDb250ZW50cyhfKSksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXN5bmMgbG9hZERpcmVjdG9yeUNvbnRlbnRzKF8pe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2xldCAkPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihfLnBhdGgpO18uY2hpbGRyZW49dGhpcy5zb3J0RW50cmllcygkKS5tYXAoSD0+KHsuLi5ILGxldmVsOl8ubGV2ZWwrMSxleHBhbmRlZDohMSxjaGlsZHJlbjpILnR5cGU9PT0iZGlyZWN0b3J5Ij9bXTp2b2lkIDB9KSl9Y2F0Y2goJCl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgZGlyZWN0b3J5ICR7Xy5wYXRofTpgLCQpfX1hc3luYyBoYW5kbGVDb250ZXh0TWVudShfLCQpe18ucHJldmVudERlZmF1bHQoKSxfLnN0b3BQcm9wYWdhdGlvbigpO2xldCBIPVtdOyQudHlwZT09PSJkaXJlY3RvcnkiJiZILnB1c2goe25hbWU6Ik5ldyBGaWxlIixpY29uTmFtZToiZmlsZVBsdXMiLGFjdGlvbjphc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoJC5wYXRoKX0se25hbWU6Ik5ldyBGb2xkZXIiLGljb25OYW1lOiJmb2xkZXJQbHVzIixhY3Rpb246YXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoJC5wYXRoKX0se2RpdmlkZXI6ITB9KSxILnB1c2goe25hbWU6IlJlbmFtZSIsaWNvbk5hbWU6InBlbmNpbCIsYWN0aW9uOmFzeW5jKCk9PnRoaXMucmVuYW1lSXRlbSgkKX0se25hbWU6IkR1cGxpY2F0ZSIsaWNvbk5hbWU6ImZpbGVzIixhY3Rpb246YXN5bmMoKT0+dGhpcy5kdXBsaWNhdGVJdGVtKCQpfSx7bmFtZToiQ29weSIsaWNvbk5hbWU6ImNvcHkiLGFjdGlvbjphc3luYygpPT50aGlzLmNvcHlJdGVtKCQpfSksJC50eXBlPT09ImRpcmVjdG9yeSImJnRoaXMuY2xpcGJvYXJkUGF0aCYmSC5wdXNoKHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsYWN0aW9uOmFzeW5jKCk9PnRoaXMucGFzdGVJdGVtKCQucGF0aCl9KSxILnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjphc3luYygpPT50aGlzLmRlbGV0ZUl0ZW0oJCl9KSxhd2FpdCBXdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhfLEgpfWFzeW5jIGhhbmRsZUVtcHR5U3BhY2VDb250ZXh0TWVudShfKXtpZihfLnRhcmdldC5jbG9zZXN0KCIudHJlZS1pdGVtIikpcmV0dXJuO18ucHJldmVudERlZmF1bHQoKSxfLnN0b3BQcm9wYWdhdGlvbigpO2xldCBIPVt7bmFtZToiTmV3IEZpbGUiLGljb25OYW1lOiJmaWxlUGx1cyIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3RmlsZSgiLyIpfSx7bmFtZToiTmV3IEZvbGRlciIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLGFjdGlvbjphc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZvbGRlcigiLyIpfV07dGhpcy5jbGlwYm9hcmRQYXRoJiZILnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsYWN0aW9uOmFzeW5jKCk9PnRoaXMucGFzdGVJdGVtKCIvIil9KSxhd2FpdCBXdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhfLEgpfWFzeW5jIHNob3dJbnB1dE1vZGFsKF8pe3JldHVybiBuZXcgUHJvbWlzZShhc3luYyAkPT57bGV0IEg9YXdhaXQgZTEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzpfLmhlYWRpbmcsd2lkdGg6InNtYWxsIixjb250ZW50Ok1gCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0ke18ubGFiZWx9CiAgICAgICAgICAgIC52YWx1ZT0ke18udmFsdWV8fCIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBrPT57YXdhaXQgay5kZXN0cm95KCksJChudWxsKX19LHtuYW1lOl8uYnV0dG9uTmFtZXx8IkNyZWF0ZSIsYWN0aW9uOmFzeW5jIGs9PntsZXQgVD1rLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbCAuY29udGVudCIpPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKT8udmFsdWU/LnRyaW0oKXx8IiI7YXdhaXQgay5kZXN0cm95KCksJChUfHxudWxsKX19XX0pO2F3YWl0IEgudXBkYXRlQ29tcGxldGU7bGV0IEw9SC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwgLmNvbnRlbnQiKTtpZihMKXtsZXQgaz1MLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpO2smJihhd2FpdCBrLnVwZGF0ZUNvbXBsZXRlLGsuZm9jdXMoKSl9fSl9YXN5bmMgY3JlYXRlTmV3RmlsZShfKXtsZXQgJD1hd2FpdCB0aGlzLnNob3dJbnB1dE1vZGFsKHtoZWFkaW5nOiJOZXcgRmlsZSIsbGFiZWw6IkZpbGUgbmFtZSJ9KTtpZighJHx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBIPV89PT0iLyI/YC8keyR9YDpgJHtffS8keyR9YDt0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoSCwiIiksYXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsZS1jcmVhdGVkIix7ZGV0YWlsOntwYXRoOkh9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goTCl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBmaWxlOiIsTCl9fWFzeW5jIGNyZWF0ZU5ld0ZvbGRlcihfKXtsZXQgJD1hd2FpdCB0aGlzLnNob3dJbnB1dE1vZGFsKHtoZWFkaW5nOiJOZXcgRm9sZGVyIixsYWJlbDoiRm9sZGVyIG5hbWUifSk7aWYoISR8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgSD1fPT09Ii8iP2AvJHskfWA6YCR7X30vJHskfWA7dHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQubWtkaXIoSCksYXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZm9sZGVyLWNyZWF0ZWQiLHtkZXRhaWw6e3BhdGg6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChMKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGZvbGRlcjoiLEwpfX1hc3luYyBkZWxldGVJdGVtKF8pe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCFjb25maXJtKGBEZWxldGUgJHtfLm5hbWV9P2ApKSl0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ybShfLnBhdGgse3JlY3Vyc2l2ZTpfLnR5cGU9PT0iZGlyZWN0b3J5In0pLGF3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tZGVsZXRlZCIse2RldGFpbDp7cGF0aDpfLnBhdGgsdHlwZTpfLnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goSCl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGRlbGV0ZSBpdGVtOiIsSCl9fWFzeW5jIHJlbmFtZUl0ZW0oXyl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCAkPWF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe2hlYWRpbmc6IlJlbmFtZSIsbGFiZWw6Ik5ldyBuYW1lIix2YWx1ZTpfLm5hbWUsYnV0dG9uTmFtZToiUmVuYW1lIn0pO2lmKCEkfHwkPT09Xy5uYW1lKXJldHVybjtsZXQgSD1fLnBhdGguc3Vic3RyaW5nKDAsXy5wYXRoLmxhc3RJbmRleE9mKCIvIikpfHwiLyIsTD1IPT09Ii8iP2AvJHskfWA6YCR7SH0vJHskfWA7dHJ5e2lmKF8udHlwZT09PSJmaWxlIil7bGV0IGs9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShfLnBhdGgpO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKEwsayksYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ybShfLnBhdGgpfWVsc2UgYXdhaXQgdGhpcy5jb3B5RGlyZWN0b3J5Q29udGVudHMoXy5wYXRoLEwpLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucm0oXy5wYXRoLHtyZWN1cnNpdmU6ITB9KTthd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLXJlbmFtZWQiLHtkZXRhaWw6e29sZFBhdGg6Xy5wYXRoLG5ld1BhdGg6TCx0eXBlOl8udHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChrKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmVuYW1lIGl0ZW06IixrKX19YXN5bmMgZHVwbGljYXRlSXRlbShfKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0ICQ9Xy5wYXRoLnN1YnN0cmluZygwLF8ucGF0aC5sYXN0SW5kZXhPZigiLyIpKXx8Ii8iLEg7aWYoXy50eXBlPT09ImZpbGUiKXtsZXQgaz1fLm5hbWUubGFzdEluZGV4T2YoIi4iKTtpZihrPjApe2xldCBOPV8ubmFtZS5zdWJzdHJpbmcoMCxrKSxTPV8ubmFtZS5zdWJzdHJpbmcoayk7SD1gJHtOfV9jb3B5JHtTfWB9ZWxzZSBIPWAke18ubmFtZX1fY29weWB9ZWxzZSBIPWAke18ubmFtZX1fY29weWA7bGV0IEw9JD09PSIvIj9gLyR7SH1gOmAkeyR9LyR7SH1gO3RyeXtpZihfLnR5cGU9PT0iZmlsZSIpe2xldCBrPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoXy5wYXRoKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShMLGspfWVsc2UgYXdhaXQgdGhpcy5jb3B5RGlyZWN0b3J5Q29udGVudHMoXy5wYXRoLEwpO2F3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tZHVwbGljYXRlZCIse2RldGFpbDp7c291cmNlUGF0aDpfLnBhdGgsbmV3UGF0aDpMLHR5cGU6Xy50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkdXBsaWNhdGUgaXRlbToiLGspfX1hc3luYyBjb3B5SXRlbShfKXt0aGlzLmNsaXBib2FyZFBhdGg9Xy5wYXRoLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPSJjb3B5In1hc3luYyBwYXN0ZUl0ZW0oXyl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCF0aGlzLmNsaXBib2FyZFBhdGgpcmV0dXJuO2xldCAkPXRoaXMuY2xpcGJvYXJkUGF0aC5zcGxpdCgiLyIpLnBvcCgpfHwicGFzdGVkIixIPV89PT0iLyI/YC8keyR9YDpgJHtffS8keyR9YDt0cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKHRoaXMuY2xpcGJvYXJkUGF0aCkpe2NvbnNvbGUuZXJyb3IoIlNvdXJjZSBmaWxlIG5vIGxvbmdlciBleGlzdHMiKSx0aGlzLmNsaXBib2FyZFBhdGg9bnVsbCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj1udWxsO3JldHVybn10cnl7bGV0IEw9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSh0aGlzLmNsaXBib2FyZFBhdGgpO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKEgsTCl9Y2F0Y2h7YXdhaXQgdGhpcy5jb3B5RGlyZWN0b3J5Q29udGVudHModGhpcy5jbGlwYm9hcmRQYXRoLEgpfWF3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tcGFzdGVkIix7ZGV0YWlsOntzb3VyY2VQYXRoOnRoaXMuY2xpcGJvYXJkUGF0aCx0YXJnZXRQYXRoOkh9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jbGlwYm9hcmRQYXRoPW51bGwsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249bnVsbH1jYXRjaChMKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcGFzdGUgaXRlbToiLEwpfX1hc3luYyBjb3B5RGlyZWN0b3J5Q29udGVudHMoXywkKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ta2RpcigkKTtsZXQgSD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoXyk7Zm9yKGxldCBMIG9mIEgpe2xldCBrPV89PT0iLyI/YC8ke0wubmFtZX1gOmAke199LyR7TC5uYW1lfWAsTj0kPT09Ii8iP2AvJHtMLm5hbWV9YDpgJHskfS8ke0wubmFtZX1gO2lmKEwudHlwZT09PSJkaXJlY3RvcnkiKWF3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKGssTik7ZWxzZXtsZXQgUz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGspO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKE4sUyl9fX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmxvYWRUcmVlKCl9YXN5bmMgdXBkYXRlZChfKXtfLmhhcygiZXhlY3V0aW9uRW52aXJvbm1lbnQiKSYmKHRoaXMubGFzdEV4ZWN1dGlvbkVudmlyb25tZW50IT09dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmKHRoaXMuc3RvcEZpbGVXYXRjaGVyKCksdGhpcy5sYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQ9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCksdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmKGF3YWl0IHRoaXMubG9hZFRyZWUoKSx0aGlzLnN0YXJ0RmlsZVdhdGNoZXIoKSkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnN0b3BGaWxlV2F0Y2hlcigpLHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQpLHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dD1udWxsKX1zdGFydEZpbGVXYXRjaGVyKCl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5maWxlV2F0Y2hlcikpdHJ5e3RoaXMuZmlsZVdhdGNoZXI9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53YXRjaCgiLyIsKF8sJCk9Pnt0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQpLHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5yZWZyZXNoKCl9LDMwMCl9LHtyZWN1cnNpdmU6ITB9KX1jYXRjaChfKXtjb25zb2xlLndhcm4oIkZpbGUgd2F0Y2hpbmcgbm90IHN1cHBvcnRlZDoiLF8pfX1zdG9wRmlsZVdhdGNoZXIoKXt0aGlzLmZpbGVXYXRjaGVyJiYodGhpcy5maWxlV2F0Y2hlci5zdG9wKCksdGhpcy5maWxlV2F0Y2hlcj1udWxsKX1hc3luYyBsb2FkVHJlZSgpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJiF0aGlzLmxvYWRUcmVlU3RhcnRlZCl7dGhpcy5sb2FkVHJlZVN0YXJ0ZWQ9ITAsdGhpcy5pc0xvYWRpbmc9ITAsdGhpcy5lcnJvck1lc3NhZ2U9IiI7dHJ5e3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpO2xldCBfPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcih0aGlzLnJvb3RQYXRoKTt0aGlzLnRyZWVEYXRhPXRoaXMuc29ydEVudHJpZXMoXykubWFwKCQ9Pih7Li4uJCxsZXZlbDowLGV4cGFuZGVkOiExLGNoaWxkcmVuOiQudHlwZT09PSJkaXJlY3RvcnkiP1tdOnZvaWQgMH0pKX1jYXRjaChfKXt0aGlzLmVycm9yTWVzc2FnZT1gRmFpbGVkIHRvIGxvYWQgZmlsZXM6ICR7X31gLGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBsb2FkIGZpbGUgdHJlZToiLF8pLHRoaXMubG9hZFRyZWVTdGFydGVkPSExfWZpbmFsbHl7dGhpcy5pc0xvYWRpbmc9ITF9fX1zb3J0RW50cmllcyhfKXtyZXR1cm4gXy5zb3J0KCgkLEgpPT4kLnR5cGUhPT1ILnR5cGU/JC50eXBlPT09ImRpcmVjdG9yeSI/LTE6MTokLm5hbWUubG9jYWxlQ29tcGFyZShILm5hbWUpKX1hc3luYyByZWZyZXNoKCl7dGhpcy5leHBhbmRlZFBhdGhzLmNsZWFyKCksdGhpcy5sb2FkVHJlZVN0YXJ0ZWQ9ITEsYXdhaXQgdGhpcy5sb2FkVHJlZSgpfXNlbGVjdEZpbGUoXyl7dGhpcy5zZWxlY3RlZFBhdGg9X31zdGF0aWN7bWEocixhKX19O3JldHVybiBQPXJ9KSgpO2ZlKCk7QmUoKTtlYygpO3ZhciBqRWU9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxDST1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sSHMxPSgoKT0+e2xldCB0PVtjZSgiZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldyIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOlN0cmluZ30pXSxmPVtEKHt0eXBlOkFycmF5fSldLGpFZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJjb21tYW5kImluIGcsZ2V0Omc9PmcuY29tbWFuZCxzZXQ6KGcsYik9PntnLmNvbW1hbmQ9Yn19LG1ldGFkYXRhOmh9LHMsbCksakVlKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJsaW5lcyJpbiBnLGdldDpnPT5nLmxpbmVzLHNldDooZyxiKT0+e2cubGluZXM9Yn19LG1ldGFkYXRhOmh9LGMsdSksakVlKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmh9LG51bGwsYSksZD1yPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89KCk9Pk1gCiAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldwogICAgICAuY29tbWFuZD0keyJwbnBtIGluc3RhbGwifQogICAgICAubGluZXM9JHtbIlBhY2thZ2VzOiArNDIiLCJQcm9ncmVzczogcmVzb2x2ZWQgMTQyLCByZXVzZWQgMTQwLCBkb3dubG9hZGVkIDIsIGFkZGVkIDQyLCBkb25lIiwiIiwiZGVwZW5kZW5jaWVzOiIsIisgQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlIDQuMi4zIiwiKyB0eXBlc2NyaXB0IDUuMy4zIiwiIiwiRG9uZSBpbiAyLjNzIl19CiAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3PgogIGA7c3RhdGljIGRlbW9Hcm91cD0iV29ya3NwYWNlIjsjZT1DSSh0aGlzLHMsIiIpO2dldCBjb21tYW5kKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGNvbW1hbmQoaCl7dGhpcy4jZT1ofSN0PShDSSh0aGlzLGwpLENJKHRoaXMsYyxbXSkpO2dldCBsaW5lcygpe3JldHVybiB0aGlzLiN0fXNldCBsaW5lcyhoKXt0aGlzLiN0PWh9dGVybWluYWw9KENJKHRoaXMsdSksbnVsbCk7Zml0QWRkb249bnVsbDtsYXN0TGluZUNvdW50PTA7cmVzaXplT2JzZXJ2ZXI9bnVsbDt0ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPW51bGw7c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXByZXZpZXcgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgMTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyLWljb24gewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXItY29tbWFuZCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgICN4dGVybS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLyogQ3VzdG9tIHNjcm9sbGJhciBmb3IgeHRlcm0gdmlld3BvcnQgKi8KICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4MCUpIiwiaHNsKDAgMCUgMjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzAlKSIsImhzbCgwIDAlIDM1JSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1wcmV2aWV3Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm1pbmFsLWhlYWRlci1pY29uIj4kPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm1pbmFsLWhlYWRlci1jb21tYW5kIj4ke3RoaXMuY29tbWFuZHx8IldhaXRpbmcuLi4ifTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBpZD0ieHRlcm0tY29udGFpbmVyIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWdldFRlcm1pbmFsVGhlbWUoaCl7cmV0dXJuIGg/e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsY3Vyc29yQWNjZW50OiIjZmZmZmZmIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiJyZ2JhKDAsIDAsIDAsIDAuMikifTp7YmFja2dyb3VuZDoiIzAwMDAwMCIsZm9yZWdyb3VuZDoiI2NjY2NjYyIsY3Vyc29yOiIjY2NjY2NjIixjdXJzb3JBY2NlbnQ6IiMwMDAwMDAiLHNlbGVjdGlvbkJhY2tncm91bmQ6InJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSJ9fWFzeW5jIGZpcnN0VXBkYXRlZChoKXtzdXBlci5maXJzdFVwZGF0ZWQoaCk7bGV0IGc9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgieHRlcm0tY29udGFpbmVyIik7aWYoIWcpcmV0dXJuO2xldCBiPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHg9Yi50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuLG09SDIuZ2V0SW5zdGFuY2UoKSxbdix5XT1hd2FpdCBQcm9taXNlLmFsbChbbS5sb2FkWHRlcm0oKSxtLmxvYWRYdGVybUZpdEFkZG9uKCldKTt0aGlzLnRlcm1pbmFsPW5ldyB2LlRlcm1pbmFsKHtjb252ZXJ0RW9sOiEwLGN1cnNvckJsaW5rOiExLGRpc2FibGVTdGRpbjohMCxmb250U2l6ZToxMixmb250RmFtaWx5OiInU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlIix0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUoeCksc2Nyb2xsYmFjazoxZTN9KSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249Yi50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSh3PT57dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwub3B0aW9ucy50aGVtZT10aGlzLmdldFRlcm1pbmFsVGhlbWUodykpfSksdGhpcy5maXRBZGRvbj1uZXcgeS5GaXRBZGRvbix0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbih0aGlzLmZpdEFkZG9uKSx0aGlzLnRlcm1pbmFsLm9wZW4oZyksdGhpcy5maXRBZGRvbi5maXQoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuZml0QWRkb24mJnRoaXMuZml0QWRkb24uZml0KCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZyksdGhpcy53cml0ZU5ld0xpbmVzKCl9YXN5bmMgdXBkYXRlZChoKXtzdXBlci51cGRhdGVkKGgpLGguaGFzKCJsaW5lcyIpJiZ0aGlzLndyaXRlTmV3TGluZXMoKX13cml0ZU5ld0xpbmVzKCl7aWYoIXRoaXMudGVybWluYWwpcmV0dXJuO2xldCBoPXRoaXMubGluZXMuc2xpY2UodGhpcy5sYXN0TGluZUNvdW50KTtmb3IobGV0IGcgb2YgaCl0aGlzLnRlcm1pbmFsLndyaXRlbG4oZyk7dGhpcy5sYXN0TGluZUNvdW50PXRoaXMubGluZXMubGVuZ3RofWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bnVsbCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLmRpc3Bvc2UoKSx0aGlzLnRlcm1pbmFsPW51bGwpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YWRkTGluZShoKXt0aGlzLmxpbmVzPVsuLi50aGlzLmxpbmVzLGhdfWNsZWFyKCl7dGhpcy5saW5lcz1bXSx0aGlzLmxhc3RMaW5lQ291bnQ9MCx0aGlzLnRlcm1pbmFsJiZ0aGlzLnRlcm1pbmFsLmNsZWFyKCl9c3RhdGlje0NJKHIsYSl9fTtyZXR1cm4gZD1yfSkoKTtmZSgpO0JlKCk7RnQoKTt2YXIgZzU9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxjcj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0scXMxPSgoKT0+e2xldCB0PVtjZSgiZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W107dmFyIEU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6T2JqZWN0fSldLGY9W2xlKCldLGQ9W2xlKCldLGI9W2xlKCldLHY9W2xlKCldLGc1KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiB6LGdldDp6PT56LmV4ZWN1dGlvbkVudmlyb25tZW50LHNldDooeixQKT0+e3ouZXhlY3V0aW9uRW52aXJvbm1lbnQ9UH19LG1ldGFkYXRhOkN9LHMsbCksZzUodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzY3JpcHRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic2NyaXB0cyJpbiB6LGdldDp6PT56LnNjcmlwdHMsc2V0Oih6LFApPT57ei5zY3JpcHRzPVB9fSxtZXRhZGF0YTpDfSxjLHUpLGc1KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFja2FnZVN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InBhY2thZ2VTdGF0dXMiaW4geixnZXQ6ej0+ei5wYWNrYWdlU3RhdHVzLHNldDooeixQKT0+e3oucGFja2FnZVN0YXR1cz1QfX0sbWV0YWRhdGE6Q30saCxnKSxnNSh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dGRhdGVkUGFja2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJvdXRkYXRlZFBhY2thZ2VzImluIHosZ2V0Ono9Pnoub3V0ZGF0ZWRQYWNrYWdlcyxzZXQ6KHosUCk9Pnt6Lm91dGRhdGVkUGFja2FnZXM9UH19LG1ldGFkYXRhOkN9LHgsbSksZzUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0NoZWNraW5nUGFja2FnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJpc0NoZWNraW5nUGFja2FnZXMiaW4geixnZXQ6ej0+ei5pc0NoZWNraW5nUGFja2FnZXMsc2V0Oih6LFApPT57ei5pc0NoZWNraW5nUGFja2FnZXM9UH19LG1ldGFkYXRhOkN9LHksdyksZzUobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxhKSxFPXI9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX0jZT1jcih0aGlzLHMsbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KEMpe3RoaXMuI2U9Q30jdD0oY3IodGhpcyxsKSxjcih0aGlzLGMse30pKTtnZXQgc2NyaXB0cygpe3JldHVybiB0aGlzLiN0fXNldCBzY3JpcHRzKEMpe3RoaXMuI3Q9Q30jYT0oY3IodGhpcyx1KSxjcih0aGlzLGgsImlkbGUiKSk7Z2V0IHBhY2thZ2VTdGF0dXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcGFja2FnZVN0YXR1cyhDKXt0aGlzLiNhPUN9I3I9KGNyKHRoaXMsZyksY3IodGhpcyx4LFtdKSk7Z2V0IG91dGRhdGVkUGFja2FnZXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgb3V0ZGF0ZWRQYWNrYWdlcyhDKXt0aGlzLiNyPUN9I2k9KGNyKHRoaXMsbSksY3IodGhpcyx5LCExKSk7Z2V0IGlzQ2hlY2tpbmdQYWNrYWdlcygpe3JldHVybiB0aGlzLiNpfXNldCBpc0NoZWNraW5nUGFja2FnZXMoQyl7dGhpcy4jaT1DfXBlbmRpbmdQYWNrYWdlVXBkYXRlPShjcih0aGlzLHcpLCExKTtoYW5kbGVQcm9jZXNzQ29tcGxldGU9Qz0+e3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGUmJih0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSExLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDUwMCkpfTtzdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5ib3R0b20tYmFyIHsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgNiUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0IGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtc2VwYXJhdG9yIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLndpZGdldC5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQudXAtdG8tZGF0ZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC51cGRhdGVzLWF2YWlsYWJsZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuZXJyb3IgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLnNwaW5uaW5nIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0iYm90dG9tLWJhciI+CiAgICAgICAgPCEtLSBTY3JpcHQgUnVubmVyIFdpZGdldCAtLT4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0id2lkZ2V0IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTY3JpcHRDbGlja30KICAgICAgICAgIHRpdGxlPSJSdW4gc2NyaXB0IgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgLmljb249JHsibHVjaWRlOnBsYXkifQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5TY3JpcHRzPC9zcGFuPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtc2VwYXJhdG9yIj48L2Rpdj4KCiAgICAgICAgPCEtLSBQYWNrYWdlIENoZWNrZXIgV2lkZ2V0IC0tPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJ3aWRnZXQgJHt0aGlzLmdldFBhY2thZ2VTdGF0dXNDbGFzcygpfSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlUGFja2FnZUNsaWNrfQogICAgICAgICAgdGl0bGU9IiR7dGhpcy5nZXRQYWNrYWdlVG9vbHRpcCgpfSIKICAgICAgICA+CiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7dGhpcy5nZXRQYWNrYWdlSWNvbigpfQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICAgIGNsYXNzPSIke3RoaXMuaXNDaGVja2luZ1BhY2thZ2VzPyJzcGlubmluZyI6IiJ9IgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+JHt0aGlzLmdldFBhY2thZ2VTdGF0dXNUZXh0KCl9PC9zcGFuPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoKICAgICAgICA8IS0tIEZ1dHVyZSB3aWRnZXRzIGNhbiBiZSBhZGRlZCBoZXJlIC0tPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwcm9jZXNzLWNvbXBsZXRlIix0aGlzLmhhbmRsZVByb2Nlc3NDb21wbGV0ZSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwcm9jZXNzLWNvbXBsZXRlIix0aGlzLmhhbmRsZVByb2Nlc3NDb21wbGV0ZSl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpLGF3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHVwZGF0ZWQoQyl7Qy5oYXMoImV4ZWN1dGlvbkVudmlyb25tZW50IikmJnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJihhd2FpdCB0aGlzLmxvYWRTY3JpcHRzKCksYXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCkpfWFzeW5jIGxvYWRTY3JpcHRzKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvcGFja2FnZS5qc29uIikpe3RoaXMuc2NyaXB0cz17fTtyZXR1cm59bGV0IHo9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgiL3BhY2thZ2UuanNvbiIpLFA9SlNPTi5wYXJzZSh6KTt0aGlzLnNjcmlwdHM9UC5zY3JpcHRzfHx7fX1jYXRjaChDKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBsb2FkIHNjcmlwdHMgZnJvbSBwYWNrYWdlLmpzb246IixDKSx0aGlzLnNjcmlwdHM9e319fWFzeW5jIGhhbmRsZVNjcmlwdENsaWNrKEMpe0Muc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHo9T2JqZWN0LmtleXModGhpcy5zY3JpcHRzKTtpZih6Lmxlbmd0aD09PTApcmV0dXJuO2xldCBQPXoubWFwKF89Pih7bmFtZTpfLGljb25OYW1lOiJsdWNpZGU6dGVybWluYWwiLGFjdGlvbjphc3luYygpPT57YXdhaXQgdGhpcy5ydW5TY3JpcHQoXyl9fSkpO2F3YWl0IFd0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEMsUCl9YXN5bmMgcnVuU2NyaXB0KEMpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgej17dHlwZToic2NyaXB0IixsYWJlbDpDLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJydW4iLENdLG1ldGFkYXRhOntzY3JpcHROYW1lOkN9fTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnp9KSl9YXN5bmMgY2hlY2tQYWNrYWdlcygpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnBhY2thZ2VTdGF0dXM9ImlkbGUiO3JldHVybn10cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvcGFja2FnZS5qc29uIikpe3RoaXMucGFja2FnZVN0YXR1cz0iaWRsZSI7cmV0dXJufXRoaXMucGFja2FnZVN0YXR1cz0iY2hlY2tpbmciLHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzPSEwO2xldCB6PWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuc3Bhd24oInBucG0iLFsib3V0ZGF0ZWQiLCItLWpzb24iXSksUD0iIixfPXoub3V0cHV0LmdldFJlYWRlcigpOyhhc3luYygpPT57dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6TCx2YWx1ZTprfT1hd2FpdCBfLnJlYWQoKTtpZihMKWJyZWFrO1ArPWt9fWNhdGNoe319KSgpO2xldCBIPWF3YWl0IFByb21pc2UucmFjZShbei5leGl0LG5ldyBQcm9taXNlKEw9PnNldFRpbWVvdXQoKCk9PkwoLTEpLDFlNCkpXSk7dHJ5e2F3YWl0IF8uY2FuY2VsKCl9Y2F0Y2h7fWlmKEg9PT0tMSl7Y29uc29sZS53YXJuKCJQYWNrYWdlIGNoZWNrIHRpbWVkIG91dCIpLHRoaXMucGFja2FnZVN0YXR1cz0iZXJyb3IiO3JldHVybn1pZihIPT09MCl0aGlzLnBhY2thZ2VTdGF0dXM9InVwLXRvLWRhdGUiLHRoaXMub3V0ZGF0ZWRQYWNrYWdlcz1bXTtlbHNlIHRyeXtsZXQgTD1KU09OLnBhcnNlKFApO3RoaXMub3V0ZGF0ZWRQYWNrYWdlcz10aGlzLnBhcnNlT3V0ZGF0ZWRQYWNrYWdlcyhMKSx0aGlzLnBhY2thZ2VTdGF0dXM9dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4wPyJ1cGRhdGVzLWF2YWlsYWJsZSI6InVwLXRvLWRhdGUifWNhdGNoe3RoaXMucGFja2FnZVN0YXR1cz0idXBkYXRlcy1hdmFpbGFibGUiLHRoaXMub3V0ZGF0ZWRQYWNrYWdlcz1bXX19Y2F0Y2goQyl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gY2hlY2sgZm9yIHBhY2thZ2UgdXBkYXRlczoiLEMpLHRoaXMucGFja2FnZVN0YXR1cz0iZXJyb3IifWZpbmFsbHl7dGhpcy5pc0NoZWNraW5nUGFja2FnZXM9ITF9fXBhcnNlT3V0ZGF0ZWRQYWNrYWdlcyhDKXtsZXQgej1bXTtpZih0eXBlb2YgQz09Im9iamVjdCImJkMhPT1udWxsKWZvcihsZXRbUCxfXW9mIE9iamVjdC5lbnRyaWVzKEMpKXtsZXQgJD1fO3oucHVzaCh7bmFtZTpQLGN1cnJlbnQ6JC5jdXJyZW50fHwidW5rbm93biIsd2FudGVkOiQud2FudGVkfHwkLmN1cnJlbnR8fCJ1bmtub3duIixsYXRlc3Q6JC5sYXRlc3R8fCQud2FudGVkfHwidW5rbm93biIsdHlwZTokLmRlcGVuZGVuY3lUeXBlPT09ImRldkRlcGVuZGVuY2llcyI/ImRldkRlcGVuZGVuY2llcyI6ImRlcGVuZGVuY2llcyJ9KX1yZXR1cm4gen1hc3luYyBoYW5kbGVQYWNrYWdlQ2xpY2soQyl7Qy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgej1bXTtpZih6LnB1c2goe25hbWU6dGhpcy5pc0NoZWNraW5nUGFja2FnZXM/IkNoZWNraW5nLi4uIjoiQ2hlY2sgZm9yIHVwZGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaEN3IixhY3Rpb246YXN5bmMoKT0+e2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybjtsZXQgUD17dHlwZToicGFja2FnZS11cGRhdGUiLGxhYmVsOiJjaGVjayBwYWNrYWdlcyIsY29tbWFuZDoicG5wbSIsYXJnczpbIm91dGRhdGVkIl19O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6UH0pKSxzZXRUaW1lb3V0KCgpPT50aGlzLmNoZWNrUGFja2FnZXMoKSwzZTMpfX0pLHRoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGg+MCl7ei5wdXNoKHtkaXZpZGVyOiEwfSk7bGV0IFA9dGhpcy5vdXRkYXRlZFBhY2thZ2VzLnNsaWNlKDAsMTApO2ZvcihsZXQgXyBvZiBQKXoucHVzaCh7bmFtZTpgJHtfLm5hbWV9OiAke18uY3VycmVudH0gXHUyMTkyICR7Xy5sYXRlc3R9YCxpY29uTmFtZToibHVjaWRlOnBhY2thZ2UiLGFjdGlvbjphc3luYygpPT57YXdhaXQgdGhpcy51cGRhdGVQYWNrYWdlKF8ubmFtZSl9fSk7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4xMCYmei5wdXNoKHtuYW1lOmAuLi4gYW5kICR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aC0xMH0gbW9yZWAsaWNvbk5hbWU6Imx1Y2lkZTptb3JlSG9yaXpvbnRhbCIsYWN0aW9uOmFzeW5jKCk9Pnt9fSksei5wdXNoKHtkaXZpZGVyOiEwfSksei5wdXNoKHtuYW1lOiJVcGRhdGUgYWxsIHBhY2thZ2VzIixpY29uTmFtZToibHVjaWRlOmFycm93VXBDaXJjbGUiLGFjdGlvbjphc3luYygpPT57YXdhaXQgdGhpcy51cGRhdGVBbGxQYWNrYWdlcygpfX0pfWF3YWl0IFd0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKEMseil9YXN5bmMgdXBkYXRlUGFja2FnZShDKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47dGhpcy5wZW5kaW5nUGFja2FnZVVwZGF0ZT0hMDtsZXQgej17dHlwZToicGFja2FnZS11cGRhdGUiLGxhYmVsOmB1cGRhdGUgJHtDfWAsY29tbWFuZDoicG5wbSIsYXJnczpbInVwZGF0ZSIsIi0tbGF0ZXN0IixDXSxtZXRhZGF0YTp7cGFja2FnZU5hbWU6Q319O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6en0pKX1hc3luYyB1cGRhdGVBbGxQYWNrYWdlcygpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjt0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSEwO2xldCBDPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6InVwZGF0ZSBhbGwiLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJ1cGRhdGUiLCItLWxhdGVzdCJdfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOkN9KSl9Z2V0UGFja2FnZVN0YXR1c0NsYXNzKCl7cmV0dXJuIHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzPyIiOnRoaXMucGFja2FnZVN0YXR1c31nZXRQYWNrYWdlSWNvbigpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJsdWNpZGU6bG9hZGVyMiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4ibHVjaWRlOmNoZWNrQ2lyY2xlIjtjYXNlInVwZGF0ZXMtYXZhaWxhYmxlIjpyZXR1cm4ibHVjaWRlOmFsZXJ0Q2lyY2xlIjtjYXNlImVycm9yIjpyZXR1cm4ibHVjaWRlOnhDaXJjbGUiO2RlZmF1bHQ6cmV0dXJuImx1Y2lkZTpwYWNrYWdlIn19Z2V0UGFja2FnZVN0YXR1c1RleHQoKXtpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm4iQ2hlY2tpbmcuLi4iO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuIlVwIHRvIGRhdGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybmAke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGh9IHVwZGF0ZSR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aCE9PTE/InMiOiIifWA7Y2FzZSJlcnJvciI6cmV0dXJuIkNoZWNrIGZhaWxlZCI7ZGVmYXVsdDpyZXR1cm4iUGFja2FnZXMifX1nZXRQYWNrYWdlVG9vbHRpcCgpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJDaGVja2luZyBmb3IgcGFja2FnZSB1cGRhdGVzLi4uIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJBbGwgcGFja2FnZXMgYXJlIHVwIHRvIGRhdGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybmAke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGh9IHBhY2thZ2UgdXBkYXRlJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF2YWlsYWJsZWA7Y2FzZSJlcnJvciI6cmV0dXJuIkZhaWxlZCB0byBjaGVjayBmb3IgdXBkYXRlcy4gQ2xpY2sgdG8gcmV0cnkuIjtkZWZhdWx0OnJldHVybiJDbGljayB0byBjaGVjayBmb3IgcGFja2FnZSB1cGRhdGVzIn19YXN5bmMgcmVmcmVzaFBhY2thZ2VTdGF0dXMoKXthd2FpdCB0aGlzLmNoZWNrUGFja2FnZXMoKX1hc3luYyByZWZyZXNoU2NyaXB0cygpe2F3YWl0IHRoaXMubG9hZFNjcmlwdHMoKX1zdGF0aWN7Y3IocixhKX19O3JldHVybiBFPXJ9KSgpO3ZhciBiaj1jbGFzc3tsb2FkZWRMaWJzPW5ldyBTZXQ7bm90Rm91bmRQYWNrYWdlcz1uZXcgU2V0O21vbmFjb0luc3RhbmNlPW51bGw7ZXhlY3V0aW9uRW52aXJvbm1lbnQ9bnVsbDtmaWxlQ2FjaGU9bmV3IE1hcDthZGRlZEV4dHJhTGlicz1uZXcgTWFwO2dldCB0c0FwaSgpe3JldHVybiB0aGlzLm1vbmFjb0luc3RhbmNlP3RoaXMubW9uYWNvSW5zdGFuY2UubGFuZ3VhZ2VzLnR5cGVzY3JpcHQ6bnVsbH1hc3luYyBpbml0KGUsYSl7dGhpcy5tb25hY29JbnN0YW5jZT1lLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQ9YSx0aGlzLmNvbmZpZ3VyZUNvbXBpbGVyT3B0aW9ucygpLGF3YWl0IHRoaXMubG9hZEFsbFByb2plY3RGaWxlcygpfWFzeW5jIGxvYWRBbGxQcm9qZWN0RmlsZXMoKXt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmxvYWRGaWxlc0Zyb21EaXJlY3RvcnkoIi8iKX1hc3luYyBsb2FkRmlsZXNGcm9tRGlyZWN0b3J5KGUpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2xldCBhPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihlKTtmb3IobGV0IHIgb2YgYSl7bGV0IGk9ZT09PSIvIj9gLyR7ci5uYW1lfWA6YCR7ZX0vJHtyLm5hbWV9YDtpZihyLm5hbWUhPT0ibm9kZV9tb2R1bGVzIil7aWYoci50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5sb2FkRmlsZXNGcm9tRGlyZWN0b3J5KGkpO2Vsc2UgaWYoci50eXBlPT09ImZpbGUiKXtsZXQgbz1yLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtpZihvPT09InRzInx8bz09PSJ0c3gifHxvPT09ImpzInx8bz09PSJqc3giKXRyeXtsZXQgcz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGkpO3RoaXMuYWRkRmlsZU1vZGVsKGkscyl9Y2F0Y2h7fX19fX1jYXRjaHt9fWNvbmZpZ3VyZUNvbXBpbGVyT3B0aW9ucygpe2xldCBlPXRoaXMudHNBcGk7ZSYmKGUudHlwZXNjcmlwdERlZmF1bHRzLnNldENvbXBpbGVyT3B0aW9ucyh7dGFyZ2V0OmUuU2NyaXB0VGFyZ2V0LkVTMjAyMCxtb2R1bGU6ZS5Nb2R1bGVLaW5kLkVTTmV4dCxtb2R1bGVSZXNvbHV0aW9uOmUuTW9kdWxlUmVzb2x1dGlvbktpbmQuQnVuZGxlcj8/ZS5Nb2R1bGVSZXNvbHV0aW9uS2luZC5Ob2RlSnMsYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0czohMCxlc01vZHVsZUludGVyb3A6ITAsc3RyaWN0OiEwLG5vRW1pdDohMCxhbGxvd0pzOiEwLGNoZWNrSnM6ITEsYWxsb3dOb25Uc0V4dGVuc2lvbnM6ITAsbGliOlsiZXMyMDIwIiwiZG9tIiwiZG9tLml0ZXJhYmxlIl0sYmFzZVVybDoiLyIsYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnM6ITAscmVzb2x2ZUpzb25Nb2R1bGU6ITB9KSxlLnR5cGVzY3JpcHREZWZhdWx0cy5zZXREaWFnbm9zdGljc09wdGlvbnMoe25vU2VtYW50aWNWYWxpZGF0aW9uOiExLG5vU3ludGF4VmFsaWRhdGlvbjohMX0pLGUudHlwZXNjcmlwdERlZmF1bHRzLnNldEVhZ2VyTW9kZWxTeW5jKCEwKSl9cGFyc2VJbXBvcnRzKGUpe2xldCBhPVtdLHI9L2ltcG9ydFxzKyg/Oltcdyp7fVxzLF0rZnJvbVxzKyk/WyciXShbXiciXSspWyciXS9nLGk7Zm9yKDsoaT1yLmV4ZWMoZSkpIT09bnVsbDspe2xldCBzPWlbMV07aWYoIXMuc3RhcnRzV2l0aCgiLiIpJiYhcy5zdGFydHNXaXRoKCIvIikpe2xldCBsPXMuc3RhcnRzV2l0aCgiQCIpP3Muc3BsaXQoIi8iKS5zbGljZSgwLDIpLmpvaW4oIi8iKTpzLnNwbGl0KCIvIilbMF07YS5wdXNoKGwpfX1sZXQgbz0vcmVxdWlyZVxzKlwoXHMqWyciXShbXiciXSspWyciXVxzKlwpL2c7Zm9yKDsoaT1vLmV4ZWMoZSkpIT09bnVsbDspe2xldCBzPWlbMV07aWYoIXMuc3RhcnRzV2l0aCgiLiIpJiYhcy5zdGFydHNXaXRoKCIvIikpe2xldCBsPXMuc3RhcnRzV2l0aCgiQCIpP3Muc3BsaXQoIi8iKS5zbGljZSgwLDIpLmpvaW4oIi8iKTpzLnNwbGl0KCIvIilbMF07YS5wdXNoKGwpfX1yZXR1cm5bLi4ubmV3IFNldChhKV19YXN5bmMgbG9hZFR5cGVzRm9yUGFja2FnZShlKXtpZighKCF0aGlzLm1vbmFjb0luc3RhbmNlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkmJiF0aGlzLmxvYWRlZExpYnMuaGFzKGUpJiYhdGhpcy5ub3RGb3VuZFBhY2thZ2VzLmhhcyhlKSl0cnl7bGV0IGE9YXdhaXQgdGhpcy50cnlMb2FkUGFja2FnZVR5cGVzKGUpO2F8fChhPWF3YWl0IHRoaXMudHJ5TG9hZEF0VHlwZXNQYWNrYWdlKGUpKSxhP3RoaXMubG9hZGVkTGlicy5hZGQoZSk6dGhpcy5ub3RGb3VuZFBhY2thZ2VzLmFkZChlKX1jYXRjaChhKXtjb25zb2xlLndhcm4oYEZhaWxlZCB0byBsb2FkIHR5cGVzIGZvciAke2V9OmAsYSl9fWFzeW5jIHRyeUxvYWRQYWNrYWdlVHlwZXMoZSl7bGV0IGE9dGhpcy50c0FwaTtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IWEpcmV0dXJuITE7bGV0IHI9YC9ub2RlX21vZHVsZXMvJHtlfWA7dHJ5e2xldCBpPWAke3J9L3BhY2thZ2UuanNvbmA7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoaSkpe2xldCBsPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoaSksZj1KU09OLnBhcnNlKGwpO2lmKGEudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKGwsYGZpbGU6Ly8ke2l9YCksZi50eXBlc3x8Zi50eXBpbmdzKXJldHVybiBhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKHIpLCEwfWxldCBzPVtgJHtyfS9pbmRleC5kLnRzYCxgJHtyfS9kaXN0L2luZGV4LmQudHNgLGAke3J9L2xpYi9pbmRleC5kLnRzYF07Zm9yKGxldCBsIG9mIHMpaWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMobCkpcmV0dXJuIGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UociksITA7cmV0dXJuITF9Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIHBhY2thZ2UgdHlwZXMgZm9yICR7ZX06YCxpKSwhMX19YXN5bmMgbG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UoZSl7bGV0IGE9dGhpcy50c0FwaTshdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IWF8fGF3YWl0IHRoaXMubG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeShlKX1hc3luYyBsb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KGUpe2xldCBhPXRoaXMudHNBcGk7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IWEpKXRyeXtsZXQgcj1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoZSk7Zm9yKGxldCBpIG9mIHIpe2xldCBvPWU9PT0iLyI/YC8ke2kubmFtZX1gOmAke2V9LyR7aS5uYW1lfWA7aWYoaS5uYW1lIT09Im5vZGVfbW9kdWxlcyIpe2lmKGkudHlwZT09PSJkaXJlY3RvcnkiKWF3YWl0IHRoaXMubG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeShvKTtlbHNlIGlmKGkudHlwZT09PSJmaWxlIiYmaS5uYW1lLmVuZHNXaXRoKCIuZC50cyIpKXRyeXtsZXQgcz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKG8pO2EudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHMsYGZpbGU6Ly8ke299YCl9Y2F0Y2h7fX19fWNhdGNoe319YXN5bmMgdHJ5TG9hZEF0VHlwZXNQYWNrYWdlKGUpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybiExO2xldCByPWAvbm9kZV9tb2R1bGVzLyR7ZS5zdGFydHNXaXRoKCJAIik/YEB0eXBlcy8ke2Uuc2xpY2UoMSkucmVwbGFjZSgiLyIsIl9fIil9YDpgQHR5cGVzLyR7ZX1gfWA7dHJ5e2xldCBpPWAke3J9L2luZGV4LmQudHNgO3JldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhpKT8oYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShyKSwhMCk6ITF9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIHByb2Nlc3NDb250ZW50Q2hhbmdlKGUpe2xldCBhPXRoaXMucGFyc2VJbXBvcnRzKGUpO2ZvcihsZXQgciBvZiBhKXRoaXMubG9hZGVkTGlicy5oYXMocil8fGF3YWl0IHRoaXMubG9hZFR5cGVzRm9yUGFja2FnZShyKX1hc3luYyBzY2FuQW5kTG9hZE5ld1BhY2thZ2VUeXBlcygpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe3RoaXMubm90Rm91bmRQYWNrYWdlcy5jbGVhcigpO3RyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9ub2RlX21vZHVsZXMiKSlyZXR1cm47bGV0IGU9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKCIvbm9kZV9tb2R1bGVzIik7Zm9yKGxldCBhIG9mIGUpaWYoYS50eXBlPT09ImRpcmVjdG9yeSIpaWYoYS5uYW1lLnN0YXJ0c1dpdGgoIkAiKSl0cnl7bGV0IHI9YC9ub2RlX21vZHVsZXMvJHthLm5hbWV9YCxpPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihyKTtmb3IobGV0IG8gb2YgaSlpZihvLnR5cGU9PT0iZGlyZWN0b3J5Iil7bGV0IHM9YCR7YS5uYW1lfS8ke28ubmFtZX1gO2F3YWl0IHRoaXMubG9hZFR5cGVzRm9yUGFja2FnZShzKX19Y2F0Y2h7fWVsc2UgYS5uYW1lLnN0YXJ0c1dpdGgoIi4iKXx8YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKGEubmFtZSl9Y2F0Y2goZSl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gc2NhbiBub2RlX21vZHVsZXM6IixlKX19fWFkZEZpbGVNb2RlbChlLGEpe2lmKCF0aGlzLm1vbmFjb0luc3RhbmNlKXJldHVybjt0aGlzLmZpbGVDYWNoZS5zZXQoZSxhKTtsZXQgcj10aGlzLm1vbmFjb0luc3RhbmNlLlVyaS5wYXJzZShgZmlsZTovLyR7ZX1gKSxpPXRoaXMubW9uYWNvSW5zdGFuY2UuZWRpdG9yLmdldE1vZGVsKHIpO2lmKGkpaS5nZXRWYWx1ZSgpIT09YSYmaS5zZXRWYWx1ZShhKTtlbHNle2xldCBvPXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChlKTt0aGlzLm1vbmFjb0luc3RhbmNlLmVkaXRvci5jcmVhdGVNb2RlbChhLG8scil9dGhpcy5hZGRGaWxlQXNFeHRyYUxpYihlLGEpfWFkZEZpbGVBc0V4dHJhTGliKGUsYSl7bGV0IHI9dGhpcy50c0FwaTtpZighcilyZXR1cm47bGV0IGk9dGhpcy5hZGRlZEV4dHJhTGlicy5nZXQoZSk7aSYmaS5kaXNwb3NlKCk7bGV0IG89YGZpbGU6Ly8ke2V9YCxzPXIudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKGEsbyk7aWYodGhpcy5hZGRlZEV4dHJhTGlicy5zZXQoZSxzKSxlLmVuZHNXaXRoKCIudHMiKSYmIWUuZW5kc1dpdGgoIi5kLnRzIikpe2xldCBsPWUucmVwbGFjZSgvXC50cyQvLCIuanMiKSxmPWBmaWxlOi8vJHtsfWAsYz1yLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihhLGYpO3RoaXMuYWRkZWRFeHRyYUxpYnMuc2V0KGwsYyksdGhpcy5maWxlQ2FjaGUuc2V0KGwsYSl9ZWxzZSBpZihlLmVuZHNXaXRoKCIudHN4Iikpe2xldCBsPWUucmVwbGFjZSgvXC50c3gkLywiLmpzeCIpLGY9YGZpbGU6Ly8ke2x9YCxjPXIudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKGEsZik7dGhpcy5hZGRlZEV4dHJhTGlicy5zZXQobCxjKSx0aGlzLmZpbGVDYWNoZS5zZXQobCxhKX19Z2V0RmlsZUNvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZmlsZUNhY2hlLmdldChlKX1nZXRMYW5ndWFnZUZyb21QYXRoKGUpe3N3aXRjaChlLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCkpe2Nhc2UidHMiOmNhc2UidHN4IjpyZXR1cm4idHlwZXNjcmlwdCI7Y2FzZSJqcyI6Y2FzZSJqc3giOnJldHVybiJqYXZhc2NyaXB0IjtjYXNlImpzb24iOnJldHVybiJqc29uIjtkZWZhdWx0OnJldHVybiJwbGFpbnRleHQifX19O2ZlKCk7U3QoKTtCZSgpO3ZhciBzYz1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LGdhPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxWczE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvciIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdLEUsQz1bXSx6PVtdO3ZhciBQPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOlN0cmluZ30pXSxmPVtEKHt0eXBlOlN0cmluZ30pXSxkPVtEKHt0eXBlOlN0cmluZ30pXSxiPVtEKHt0eXBlOlN0cmluZ30pXSx2PVtEKHt0eXBlOlN0cmluZ30pXSxFPVtEKHt0eXBlOlN0cmluZ30pXSxzYyh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9yaWdpbmFsQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+Im9yaWdpbmFsQ29udGVudCJpbiAkLGdldDokPT4kLm9yaWdpbmFsQ29udGVudCxzZXQ6KCQsSCk9PnskLm9yaWdpbmFsQ29udGVudD1IfX0sbWV0YWRhdGE6X30scyxsKSxzYyh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGlmaWVkQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+Im1vZGlmaWVkQ29udGVudCJpbiAkLGdldDokPT4kLm1vZGlmaWVkQ29udGVudCxzZXQ6KCQsSCk9PnskLm1vZGlmaWVkQ29udGVudD1IfX0sbWV0YWRhdGE6X30sYyx1KSxzYyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9yaWdpbmFsTGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJvcmlnaW5hbExhYmVsImluICQsZ2V0OiQ9PiQub3JpZ2luYWxMYWJlbCxzZXQ6KCQsSCk9PnskLm9yaWdpbmFsTGFiZWw9SH19LG1ldGFkYXRhOl99LGgsZyksc2ModGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4ibW9kaWZpZWRMYWJlbCJpbiAkLGdldDokPT4kLm1vZGlmaWVkTGFiZWwsc2V0OigkLEgpPT57JC5tb2RpZmllZExhYmVsPUh9fSxtZXRhZGF0YTpffSx4LG0pLHNjKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJsYW5ndWFnZSJpbiAkLGdldDokPT4kLmxhbmd1YWdlLHNldDooJCxIKT0+eyQubGFuZ3VhZ2U9SH19LG1ldGFkYXRhOl99LHksdyksc2ModGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+ImZpbGVQYXRoImluICQsZ2V0OiQ9PiQuZmlsZVBhdGgsc2V0OigkLEgpPT57JC5maWxlUGF0aD1IfX0sbWV0YWRhdGE6X30sQyx6KSxzYyhudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpffSxudWxsLGEpLFA9cj1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPSgpPT5NYAogICAgPGRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yCiAgICAgIC5vcmlnaW5hbENvbnRlbnQ9JHtgZnVuY3Rpb24gaGVsbG8oKSB7CiAgY29uc29sZS5sb2coIkhlbGxvIik7Cn1gfQogICAgICAubW9kaWZpZWRDb250ZW50PSR7YGZ1bmN0aW9uIGhlbGxvKCkgewogIGNvbnNvbGUubG9nKCJIZWxsbyBXb3JsZCEiKTsKICByZXR1cm4gdHJ1ZTsKfWB9CiAgICAgIC5sYW5ndWFnZT0keyJ0eXBlc2NyaXB0In0KICAgICAgLmZpbGVQYXRoPSR7Ii9kZW1vL2V4YW1wbGUudHMifQogICAgPjwvZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3I+CiAgYDtzdGF0aWMgZGVtb0dyb3VwPSJXb3Jrc3BhY2UiO2RpZmZFZGl0b3JEZWZlcnJlZD1BdC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT1nYSh0aGlzLHMsIiIpO2dldCBvcmlnaW5hbENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3JpZ2luYWxDb250ZW50KF8pe3RoaXMuI2U9X30jdD0oZ2EodGhpcyxsKSxnYSh0aGlzLGMsIiIpKTtnZXQgbW9kaWZpZWRDb250ZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1vZGlmaWVkQ29udGVudChfKXt0aGlzLiN0PV99I2E9KGdhKHRoaXMsdSksZ2EodGhpcyxoLCJEaXNrIFZlcnNpb24iKSk7Z2V0IG9yaWdpbmFsTGFiZWwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb3JpZ2luYWxMYWJlbChfKXt0aGlzLiNhPV99I3I9KGdhKHRoaXMsZyksZ2EodGhpcyx4LCJMb2NhbCBWZXJzaW9uIikpO2dldCBtb2RpZmllZExhYmVsKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1vZGlmaWVkTGFiZWwoXyl7dGhpcy4jcj1ffSNpPShnYSh0aGlzLG0pLGdhKHRoaXMseSwidHlwZXNjcmlwdCIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbGFuZ3VhZ2UoXyl7dGhpcy4jaT1ffSNvPShnYSh0aGlzLHcpLGdhKHRoaXMsQywiIikpO2dldCBmaWxlUGF0aCgpe3JldHVybiB0aGlzLiNvfXNldCBmaWxlUGF0aChfKXt0aGlzLiNvPV99ZGlmZkVkaXRvcj0oZ2EodGhpcyx6KSxudWxsKTttb25hY29UaGVtZVN1YnNjcmlwdGlvbj1udWxsO29yaWdpbmFsTW9kZWw9bnVsbDttb2RpZmllZE1vZGVsPW51bGw7Y29uc3RydWN0b3IoKXtzdXBlcigpLEMyLnNldHVwRG9tVG9vbHMoKX1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZGlmZi13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZGlmZi10b29sYmFyIHsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5kaWZmLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWZpbGVuYW1lIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWxhYmVscyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kaWZmLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpZmYtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgXz10aGlzLmZpbGVQYXRoLnNwbGl0KCIvIikucG9wKCl8fCJmaWxlIjtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0iZGlmZi13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLXRvb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi1pbmZvIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpZmYtZmlsZW5hbWUiPiR7X308L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaWZmLWxhYmVscyI+JHt0aGlzLm9yaWdpbmFsTGFiZWx9IOKGlCAke3RoaXMubW9kaWZpZWRMYWJlbH08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtYWN0aW9ucyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1idXR0b25zIj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmdvVG9QcmV2aW91c0RpZmZ9CiAgICAgICAgICAgICAgPlByZXZpb3VzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmdvVG9OZXh0RGlmZn0KICAgICAgICAgICAgICA+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24tYnV0dG9ucyI+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJoaWdobGlnaHRlZCIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWNjZXB0TG9jYWx9CiAgICAgICAgICAgICAgPlVzZSBMb2NhbDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hY2NlcHREaXNrfQogICAgICAgICAgICAgID5Vc2UgRGlzazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jbG9zZX0KICAgICAgICAgICAgICA+Q2xvc2U8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtY29udGFpbmVyIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChuZXcgTWFwKSxhd2FpdCB0aGlzLmluaXREaWZmRWRpdG9yKCl9YXN5bmMgaW5pdERpZmZFZGl0b3IoKXtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kaWZmLWNvbnRhaW5lciIpO2lmKCFfKXJldHVybjtsZXQgJD1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tb25hY28tZWRpdG9yQCR7WFV9YCxIPXdpbmRvdy5tb25hY287SHx8KGF3YWl0IG5ldyBQcm9taXNlKEY9PntsZXQgYWU9c2V0SW50ZXJ2YWwoKCk9Pnt3aW5kb3cubW9uYWNvJiYoY2xlYXJJbnRlcnZhbChhZSksRigpKX0sMTAwKX0pLEg9d2luZG93Lm1vbmFjbyk7bGV0IEw9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsTj1MLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4/InZzIjoidnMtZGFyayIsUz1EYXRlLm5vdygpLFQ9SC5VcmkucGFyc2UoYGRpZmY6Ly9vcmlnaW5hbC8ke1N9JHt0aGlzLmZpbGVQYXRofWApLFI9SC5VcmkucGFyc2UoYGRpZmY6Ly9tb2RpZmllZC8ke1N9JHt0aGlzLmZpbGVQYXRofWApO3RoaXMub3JpZ2luYWxNb2RlbD1ILmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLm9yaWdpbmFsQ29udGVudCx0aGlzLmxhbmd1YWdlLFQpLHRoaXMubW9kaWZpZWRNb2RlbD1ILmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLm1vZGlmaWVkQ29udGVudCx0aGlzLmxhbmd1YWdlLFIpLHRoaXMuZGlmZkVkaXRvcj1ILmVkaXRvci5jcmVhdGVEaWZmRWRpdG9yKF8se2F1dG9tYXRpY0xheW91dDohMCxyZWFkT25seTohMSxvcmlnaW5hbEVkaXRhYmxlOiExLHJlbmRlclNpZGVCeVNpZGU6ITAsaWdub3JlVHJpbVdoaXRlc3BhY2U6ITEsZm9udFNpemU6MTQsbWluaW1hcDp7ZW5hYmxlZDohMX19KSxILmVkaXRvci5zZXRUaGVtZShOKSx0aGlzLmRpZmZFZGl0b3Iuc2V0TW9kZWwoe29yaWdpbmFsOnRoaXMub3JpZ2luYWxNb2RlbCxtb2RpZmllZDp0aGlzLm1vZGlmaWVkTW9kZWx9KSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPUwudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoRj0+e2xldCBhZT1GPyJ2cyI6InZzLWRhcmsiO0guZWRpdG9yLnNldFRoZW1lKGFlKX0pO2xldCBBPSJtb25hY28tZGlmZi1lZGl0b3ItY3NzIjtpZighdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZChBKSl7bGV0IGFlPWF3YWl0KGF3YWl0IGZldGNoKGAkeyR9L21pbi92cy9lZGl0b3IvZWRpdG9yLm1haW4uY3NzYCkpLnRleHQoKSxWPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Vi5pZD1BLFYudGV4dENvbnRlbnQ9YWUsdGhpcy5zaGFkb3dSb290Py5hcHBlbmQoVil9c2V0VGltZW91dCgoKT0+e3RyeXt0aGlzLmRpZmZFZGl0b3I/LnJldmVhbEZpcnN0RGlmZigpfWNhdGNoe319LDEwMCksdGhpcy5kaWZmRWRpdG9yRGVmZXJyZWQucmVzb2x2ZSh0aGlzLmRpZmZFZGl0b3IpfWdvVG9OZXh0RGlmZigpe3RyeXt0aGlzLmRpZmZFZGl0b3I/LmdvVG9EaWZmKCJuZXh0Iil9Y2F0Y2h7fX1nb1RvUHJldmlvdXNEaWZmKCl7dHJ5e3RoaXMuZGlmZkVkaXRvcj8uZ29Ub0RpZmYoInByZXZpb3VzIil9Y2F0Y2h7fX1hY2NlcHRMb2NhbCgpe2xldCBfPXRoaXMuZGlmZkVkaXRvcj8uZ2V0TW9kaWZpZWRFZGl0b3IoKS5nZXRWYWx1ZSgpfHx0aGlzLm1vZGlmaWVkQ29udGVudDt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWZmLXJlc29sdmVkIix7ZGV0YWlsOnthY3Rpb246InVzZS1sb2NhbCIsY29udGVudDpffSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFjY2VwdERpc2soKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWZmLXJlc29sdmVkIix7ZGV0YWlsOnthY3Rpb246InVzZS1kaXNrIixjb250ZW50OnRoaXMub3JpZ2luYWxDb250ZW50fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNsb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbCksdGhpcy5vcmlnaW5hbE1vZGVsJiYodGhpcy5vcmlnaW5hbE1vZGVsLmRpc3Bvc2UoKSx0aGlzLm9yaWdpbmFsTW9kZWw9bnVsbCksdGhpcy5tb2RpZmllZE1vZGVsJiYodGhpcy5tb2RpZmllZE1vZGVsLmRpc3Bvc2UoKSx0aGlzLm1vZGlmaWVkTW9kZWw9bnVsbCksdGhpcy5kaWZmRWRpdG9yJiYodGhpcy5kaWZmRWRpdG9yLmRpc3Bvc2UoKSx0aGlzLmRpZmZFZGl0b3I9bnVsbCl9c3RhdGlje2dhKHIsYSl9fTtyZXR1cm4gUD1yfSkoKTtmZSgpO1N0KCk7QmUoKTttaigpO1NJKCk7U0koKTtGdCgpO2dqKCk7dmFyIG0xPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sZHQ9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LFVzMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtd29ya3NwYWNlIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W10sSCxMPVtdLGs9W10sTixTPVtdLFQ9W10sUixBPVtdLEY9W10sYWUsVj1bXSxTZT1bXSx6ZSxXPVtdLE5lPVtdLFJlLFg9W10sST1bXSxPLEc9W10saj1bXSxzZSxrZT1bXSxEZT1bXSxPZSxVPVtdLEI9W10sb2UsdmU9W10seWU9W10sJGUsbmU9W10scmU9W10sZ2UsRWU9W10scnQ9W10sdWUsWj1bXSxKPVtdLGRlLEFlPVtdLEhlPVtdLE10LGl0PVtdLHp0PVtdO3ZhciBxdD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IFE9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpPYmplY3R9KV0sZj1bRCh7YXR0cmlidXRlOiExfSldLGQ9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxiPVtEKHt0eXBlOkJvb2xlYW59KV0sdj1bRCh7dHlwZTpOdW1iZXJ9KV0sRT1bRCh7dHlwZTpOdW1iZXJ9KV0sUD1bbGUoKV0sSD1bbGUoKV0sTj1bbGUoKV0sUj1bbGUoKV0sYWU9W2xlKCldLHplPVtsZSgpXSxSZT1bbGUoKV0sTz1bbGUoKV0sc2U9W2xlKCldLE9lPVtsZSgpXSxvZT1bbGUoKV0sJGU9W2xlKCldLGdlPVtsZSgpXSx1ZT1bbGUoKV0sZGU9W2xlKCldLE10PVtsZSgpXSxtMSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpLPT4iZXhlY3V0aW9uRW52aXJvbm1lbnQiaW4gSyxnZXQ6Sz0+Sy5leGVjdXRpb25FbnZpcm9ubWVudCxzZXQ6KEssYmUpPT57Sy5leGVjdXRpb25FbnZpcm9ubWVudD1iZX19LG1ldGFkYXRhOlF9LHMsbCksbTEodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsaXphdGlvblByb21pc2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOks9PiJpbml0aWFsaXphdGlvblByb21pc2UiaW4gSyxnZXQ6Sz0+Sy5pbml0aWFsaXphdGlvblByb21pc2Usc2V0OihLLGJlKT0+e0suaW5pdGlhbGl6YXRpb25Qcm9taXNlPWJlfX0sbWV0YWRhdGE6UX0sYyx1KSxtMSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dGaWxlVHJlZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sz0+InNob3dGaWxlVHJlZSJpbiBLLGdldDpLPT5LLnNob3dGaWxlVHJlZSxzZXQ6KEssYmUpPT57Sy5zaG93RmlsZVRyZWU9YmV9fSxtZXRhZGF0YTpRfSxoLGcpLG0xKHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Rlcm1pbmFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpLPT4ic2hvd1Rlcm1pbmFsImluIEssZ2V0Oks9Pksuc2hvd1Rlcm1pbmFsLHNldDooSyxiZSk9PntLLnNob3dUZXJtaW5hbD1iZX19LG1ldGFkYXRhOlF9LHgsbSksbTEodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlVHJlZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpLPT4iZmlsZVRyZWVXaWR0aCJpbiBLLGdldDpLPT5LLmZpbGVUcmVlV2lkdGgsc2V0OihLLGJlKT0+e0suZmlsZVRyZWVXaWR0aD1iZX19LG1ldGFkYXRhOlF9LHksdyksbTEodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXJtaW5hbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sz0+InRlcm1pbmFsSGVpZ2h0ImluIEssZ2V0Oks9PksudGVybWluYWxIZWlnaHQsc2V0OihLLGJlKT0+e0sudGVybWluYWxIZWlnaHQ9YmV9fSxtZXRhZGF0YTpRfSxDLHopLG0xKHRoaXMsbnVsbCxQLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkZpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpLPT4ib3BlbkZpbGVzImluIEssZ2V0Oks9Pksub3BlbkZpbGVzLHNldDooSyxiZSk9PntLLm9wZW5GaWxlcz1iZX19LG1ldGFkYXRhOlF9LF8sJCksbTEodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVGaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sz0+ImFjdGl2ZUZpbGVQYXRoImluIEssZ2V0Oks9PksuYWN0aXZlRmlsZVBhdGgsc2V0OihLLGJlKT0+e0suYWN0aXZlRmlsZVBhdGg9YmV9fSxtZXRhZGF0YTpRfSxMLGspLG0xKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNUZXJtaW5hbENvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sz0+ImlzVGVybWluYWxDb2xsYXBzZWQiaW4gSyxnZXQ6Sz0+Sy5pc1Rlcm1pbmFsQ29sbGFwc2VkLHNldDooSyxiZSk9PntLLmlzVGVybWluYWxDb2xsYXBzZWQ9YmV9fSxtZXRhZGF0YTpRfSxTLFQpLG0xKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGaWxlVHJlZUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sz0+ImlzRmlsZVRyZWVDb2xsYXBzZWQiaW4gSyxnZXQ6Sz0+Sy5pc0ZpbGVUcmVlQ29sbGFwc2VkLHNldDooSyxiZSk9PntLLmlzRmlsZVRyZWVDb2xsYXBzZWQ9YmV9fSxtZXRhZGF0YTpRfSxBLEYpLG0xKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSW5pdGlhbGl6aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpLPT4iaXNJbml0aWFsaXppbmciaW4gSyxnZXQ6Sz0+Sy5pc0luaXRpYWxpemluZyxzZXQ6KEssYmUpPT57Sy5pc0luaXRpYWxpemluZz1iZX19LG1ldGFkYXRhOlF9LFYsU2UpLG0xKHRoaXMsbnVsbCx6ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJvdHRvbVBhbmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpLPT4iYWN0aXZlQm90dG9tUGFuZWwiaW4gSyxnZXQ6Sz0+Sy5hY3RpdmVCb3R0b21QYW5lbCxzZXQ6KEssYmUpPT57Sy5hY3RpdmVCb3R0b21QYW5lbD1iZX19LG1ldGFkYXRhOlF9LFcsTmUpLG0xKHRoaXMsbnVsbCxSZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpYWdub3N0aWNNYXJrZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpLPT4iZGlhZ25vc3RpY01hcmtlcnMiaW4gSyxnZXQ6Sz0+Sy5kaWFnbm9zdGljTWFya2VycyxzZXQ6KEssYmUpPT57Sy5kaWFnbm9zdGljTWFya2Vycz1iZX19LG1ldGFkYXRhOlF9LFgsSSksbTEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvU2F2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sz0+ImF1dG9TYXZlImluIEssZ2V0Oks9PksuYXV0b1NhdmUsc2V0OihLLGJlKT0+e0suYXV0b1NhdmU9YmV9fSxtZXRhZGF0YTpRfSxHLGopLG0xKHRoaXMsbnVsbCxzZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpLPT4iaW5pdENvbW1hbmQiaW4gSyxnZXQ6Sz0+Sy5pbml0Q29tbWFuZCxzZXQ6KEssYmUpPT57Sy5pbml0Q29tbWFuZD1iZX19LG1ldGFkYXRhOlF9LGtlLERlKSxtMSh0aGlzLG51bGwsT2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0T3V0cHV0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpLPT4iaW5pdE91dHB1dCJpbiBLLGdldDpLPT5LLmluaXRPdXRwdXQsc2V0OihLLGJlKT0+e0suaW5pdE91dHB1dD1iZX19LG1ldGFkYXRhOlF9LFUsQiksbTEodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudEZpbGVUcmVlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOks9PiJjdXJyZW50RmlsZVRyZWVXaWR0aCJpbiBLLGdldDpLPT5LLmN1cnJlbnRGaWxlVHJlZVdpZHRoLHNldDooSyxiZSk9PntLLmN1cnJlbnRGaWxlVHJlZVdpZHRoPWJlfX0sbWV0YWRhdGE6UX0sdmUseWUpLG0xKHRoaXMsbnVsbCwkZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUZXJtaW5hbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sz0+ImN1cnJlbnRUZXJtaW5hbEhlaWdodCJpbiBLLGdldDpLPT5LLmN1cnJlbnRUZXJtaW5hbEhlaWdodCxzZXQ6KEssYmUpPT57Sy5jdXJyZW50VGVybWluYWxIZWlnaHQ9YmV9fSxtZXRhZGF0YTpRfSxuZSxyZSksbTEodGhpcyxudWxsLGdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZ0ZpbGVUcmVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpLPT4iaXNEcmFnZ2luZ0ZpbGVUcmVlImluIEssZ2V0Oks9PksuaXNEcmFnZ2luZ0ZpbGVUcmVlLHNldDooSyxiZSk9PntLLmlzRHJhZ2dpbmdGaWxlVHJlZT1iZX19LG1ldGFkYXRhOlF9LEVlLHJ0KSxtMSh0aGlzLG51bGwsdWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nVGVybWluYWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOks9PiJpc0RyYWdnaW5nVGVybWluYWwiaW4gSyxnZXQ6Sz0+Sy5pc0RyYWdnaW5nVGVybWluYWwsc2V0OihLLGJlKT0+e0suaXNEcmFnZ2luZ1Rlcm1pbmFsPWJlfX0sbWV0YWRhdGE6UX0sWixKKSxtMSh0aGlzLG51bGwsZGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RGlmZlZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOks9PiJzaG93RGlmZlZpZXciaW4gSyxnZXQ6Sz0+Sy5zaG93RGlmZlZpZXcsc2V0OihLLGJlKT0+e0suc2hvd0RpZmZWaWV3PWJlfX0sbWV0YWRhdGE6UX0sQWUsSGUpLG0xKHRoaXMsbnVsbCxNdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpZmZWaWV3Q29uZmlnIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpLPT4iZGlmZlZpZXdDb25maWciaW4gSyxnZXQ6Sz0+Sy5kaWZmVmlld0NvbmZpZyxzZXQ6KEssYmUpPT57Sy5kaWZmVmlld0NvbmZpZz1iZX19LG1ldGFkYXRhOlF9LGl0LHp0KSxtMShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpRfSxudWxsLGEpLHF0PXI9ZS52YWx1ZSxRJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlF9KX1zdGF0aWMgZGVtbz0oKT0+e2xldCBRPW5ldyBtNSxLPShhc3luYygpPT57YXdhaXQgUS5pbml0KCk7bGV0IG50PXsicGFja2FnZS5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe25hbWU6ImRlbW8tcHJvamVjdCIsdmVyc2lvbjoiMS4wLjAiLHR5cGU6Im1vZHVsZSIsc2NyaXB0czp7YnVpbGQ6InRzYyIsZGV2OiJ0c2MgLS13YXRjaCJ9LGRlcGVuZGVuY2llczp7IkBwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSI6Il40LjIuMyJ9LGRldkRlcGVuZGVuY2llczp7IkB0eXBlcy9ub2RlIjoiXjIyLjAuMCIsdHlwZXNjcmlwdDoiXjUuMC4wIn19LG51bGwsMil9fSwibnBtZXh0cmEuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtkZWVzRWRpdG9yV29ya3NwYWNlOntvbkluaXQ6InBucG0gaW5zdGFsbCJ9fSxudWxsLDIpfX0sInRzY29uZmlnLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7Y29tcGlsZXJPcHRpb25zOnt0YXJnZXQ6IkVTMjAyMiIsbW9kdWxlOiJOb2RlTmV4dCIsbW9kdWxlUmVzb2x1dGlvbjoiTm9kZU5leHQiLHN0cmljdDohMCxvdXREaXI6Ii4vZGlzdCIscm9vdERpcjoiLi9zcmMiLGRlY2xhcmF0aW9uOiEwfSxpbmNsdWRlOlsic3JjLyoqLyoiXX0sbnVsbCwyKX19LHNyYzp7ZGlyZWN0b3J5OnsiaW5kZXgudHMiOntmaWxlOntjb250ZW50czpgLy8gTWFpbiBlbnRyeSBwb2ludAppbXBvcnQgeyBncmVldCwgZm9ybWF0TmFtZSB9IGZyb20gJy4vdXRpbHMuanMnOwoKY29uc3QgbmFtZSA9IGZvcm1hdE5hbWUoJ1dvcmxkJyk7CmNvbnNvbGUubG9nKGdyZWV0KG5hbWUpKTsKCi8vIEV4YW1wbGUgYXN5bmMgZnVuY3Rpb24KYXN5bmMgZnVuY3Rpb24gbWFpbigpIHsKICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoJ0hlbGxvIGZyb20gYXN5bmMhJyk7CiAgY29uc29sZS5sb2cocmVzdWx0KTsKfQoKbWFpbigpOwpgfX0sInV0aWxzLnRzIjp7ZmlsZTp7Y29udGVudHM6YC8vIFV0aWxpdHkgZnVuY3Rpb25zCgpleHBvcnQgaW50ZXJmYWNlIElVc2VyIHsKICBmaXJzdE5hbWU6IHN0cmluZzsKICBsYXN0TmFtZTogc3RyaW5nOwp9CgpleHBvcnQgZnVuY3Rpb24gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICByZXR1cm4gXGBIZWxsbywgXCR7bmFtZX0hXGA7Cn0KCmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgcmV0dXJuIG5hbWUudHJpbSgpLnRvVXBwZXJDYXNlKCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVc2VyKGZpcnN0TmFtZTogc3RyaW5nLCBsYXN0TmFtZTogc3RyaW5nKTogSVVzZXIgewogIHJldHVybiB7IGZpcnN0TmFtZSwgbGFzdE5hbWUgfTsKfQpgfX0sImltcG9ydHRlc3QudHMiOntmaWxlOntjb250ZW50czpgLy8gVGVzdCBucG0gcGFja2FnZSBpbXBvcnRzCmltcG9ydCAqIGFzIHNtYXJ0cHJvbWlzZSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UnOwoKLy8gVGhpcyBzaG91bGQgaGF2ZSBJbnRlbGxpU2Vuc2Ugc2hvd2luZyBkZWZlcigpIG1ldGhvZApjb25zdCBkZWZlcnJlZCA9IHNtYXJ0cHJvbWlzZS5kZWZlcjxzdHJpbmc+KCk7CgovLyBUZXN0IHVzaW5nIHRoZSBkZWZlcnJlZCBwcm9taXNlCmFzeW5jIGZ1bmN0aW9uIHRlc3RTbWFydFByb21pc2UoKSB7CiAgc2V0VGltZW91dCgoKSA9PiB7CiAgICBkZWZlcnJlZC5yZXNvbHZlKCdIZWxsbyBmcm9tIHNtYXJ0cHJvbWlzZSEnKTsKICB9LCAxMDApOwoKICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWZlcnJlZC5wcm9taXNlOwogIGNvbnNvbGUubG9nKHJlc3VsdCk7Cn0KCnRlc3RTbWFydFByb21pc2UoKTsKYH19fX19O2F3YWl0IFEubW91bnQobnQpfSkoKSxiZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsiO2xldCBvdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXdvcmtzcGFjZSIpO3JldHVybiBvdC5leGVjdXRpb25FbnZpcm9ubWVudD1RLG90LmluaXRpYWxpemF0aW9uUHJvbWlzZT1LLGJlLmFwcGVuZENoaWxkKG90KSxNYAogICAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgICAke2JlfQogICAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICBgfTtzdGF0aWMgZGVtb0dyb3VwPSJXb3Jrc3BhY2UiOyNlPWR0KHRoaXMscyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoUSl7dGhpcy4jZT1RfSN0PShkdCh0aGlzLGwpLGR0KHRoaXMsYyxudWxsKSk7Z2V0IGluaXRpYWxpemF0aW9uUHJvbWlzZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbml0aWFsaXphdGlvblByb21pc2UoUSl7dGhpcy4jdD1RfSNhPShkdCh0aGlzLHUpLGR0KHRoaXMsaCwhMCkpO2dldCBzaG93RmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0ZpbGVUcmVlKFEpe3RoaXMuI2E9UX0jcj0oZHQodGhpcyxnKSxkdCh0aGlzLHgsITApKTtnZXQgc2hvd1Rlcm1pbmFsKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dUZXJtaW5hbChRKXt0aGlzLiNyPVF9I2k9KGR0KHRoaXMsbSksZHQodGhpcyx5LDI1MCkpO2dldCBmaWxlVHJlZVdpZHRoKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGZpbGVUcmVlV2lkdGgoUSl7dGhpcy4jaT1RfSNvPShkdCh0aGlzLHcpLGR0KHRoaXMsQywyMDApKTtnZXQgdGVybWluYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jb31zZXQgdGVybWluYWxIZWlnaHQoUSl7dGhpcy4jbz1RfSNzPShkdCh0aGlzLHopLGR0KHRoaXMsXyxbXSkpO2dldCBvcGVuRmlsZXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgb3BlbkZpbGVzKFEpe3RoaXMuI3M9UX0jbj0oZHQodGhpcywkKSxkdCh0aGlzLEwsIiIpKTtnZXQgYWN0aXZlRmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jbn1zZXQgYWN0aXZlRmlsZVBhdGgoUSl7dGhpcy4jbj1RfSNsPShkdCh0aGlzLGspLGR0KHRoaXMsUywhMSkpO2dldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlzVGVybWluYWxDb2xsYXBzZWQoUSl7dGhpcy4jbD1RfSNjPShkdCh0aGlzLFQpLGR0KHRoaXMsQSwhMSkpO2dldCBpc0ZpbGVUcmVlQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoUSl7dGhpcy4jYz1RfSNkPShkdCh0aGlzLEYpLGR0KHRoaXMsViwhMCkpO2dldCBpc0luaXRpYWxpemluZygpe3JldHVybiB0aGlzLiNkfXNldCBpc0luaXRpYWxpemluZyhRKXt0aGlzLiNkPVF9I2Y9KGR0KHRoaXMsU2UpLGR0KHRoaXMsVywidGVybWluYWwiKSk7Z2V0IGFjdGl2ZUJvdHRvbVBhbmVsKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGFjdGl2ZUJvdHRvbVBhbmVsKFEpe3RoaXMuI2Y9UX0jdT0oZHQodGhpcyxOZSksZHQodGhpcyxYLFtdKSk7Z2V0IGRpYWdub3N0aWNNYXJrZXJzKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGRpYWdub3N0aWNNYXJrZXJzKFEpe3RoaXMuI3U9UX1lZGl0b3JFbGVtZW50PShkdCh0aGlzLEkpLG51bGwpO2luaXRpYWxpemF0aW9uU3RhcnRlZD0hMTtpbnRlbGxpU2Vuc2VNYW5hZ2VyPW51bGw7aW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQ9ITE7bm9kZU1vZHVsZXNXYXRjaGVyPW51bGw7bm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQ9bnVsbDtpbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQ9bnVsbDtvcGVuRmlsZVdhdGNoZXJzPW5ldyBNYXA7ZmlsZUNoYW5nZURlYm91bmNlPW5ldyBNYXA7YWN0aW9uYmFyRWxlbWVudD1udWxsOyNwPWR0KHRoaXMsRywhMSk7Z2V0IGF1dG9TYXZlKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGF1dG9TYXZlKFEpe3RoaXMuI3A9UX1hdXRvU2F2ZUludGVydmFsPShkdCh0aGlzLGopLG51bGwpOyNoPWR0KHRoaXMsa2UsIiIpO2dldCBpbml0Q29tbWFuZCgpe3JldHVybiB0aGlzLiNofXNldCBpbml0Q29tbWFuZChRKXt0aGlzLiNoPVF9I209KGR0KHRoaXMsRGUpLGR0KHRoaXMsVSxbXSkpO2dldCBpbml0T3V0cHV0KCl7cmV0dXJuIHRoaXMuI219c2V0IGluaXRPdXRwdXQoUSl7dGhpcy4jbT1RfSNnPShkdCh0aGlzLEIpLGR0KHRoaXMsdmUsMjUwKSk7Z2V0IGN1cnJlbnRGaWxlVHJlZVdpZHRoKCl7cmV0dXJuIHRoaXMuI2d9c2V0IGN1cnJlbnRGaWxlVHJlZVdpZHRoKFEpe3RoaXMuI2c9UX0jeD0oZHQodGhpcyx5ZSksZHQodGhpcyxuZSwyMDApKTtnZXQgY3VycmVudFRlcm1pbmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3h9c2V0IGN1cnJlbnRUZXJtaW5hbEhlaWdodChRKXt0aGlzLiN4PVF9I2I9KGR0KHRoaXMscmUpLGR0KHRoaXMsRWUsITEpKTtnZXQgaXNEcmFnZ2luZ0ZpbGVUcmVlKCl7cmV0dXJuIHRoaXMuI2J9c2V0IGlzRHJhZ2dpbmdGaWxlVHJlZShRKXt0aGlzLiNiPVF9I3Y9KGR0KHRoaXMscnQpLGR0KHRoaXMsWiwhMSkpO2dldCBpc0RyYWdnaW5nVGVybWluYWwoKXtyZXR1cm4gdGhpcy4jdn1zZXQgaXNEcmFnZ2luZ1Rlcm1pbmFsKFEpe3RoaXMuI3Y9UX0jeT0oZHQodGhpcyxKKSxkdCh0aGlzLEFlLCExKSk7Z2V0IHNob3dEaWZmVmlldygpe3JldHVybiB0aGlzLiN5fXNldCBzaG93RGlmZlZpZXcoUSl7dGhpcy4jeT1RfSN3PShkdCh0aGlzLEhlKSxkdCh0aGlzLGl0LG51bGwpKTtnZXQgZGlmZlZpZXdDb25maWcoKXtyZXR1cm4gdGhpcy4jd31zZXQgZGlmZlZpZXdDb25maWcoUSl7dGhpcy4jdz1RfWtleWRvd25IYW5kbGVyPShkdCh0aGlzLHp0KSxRPT57KFEubWV0YUtleXx8US5jdHJsS2V5KSYmUS5rZXk9PT0icyImJiFRLnNoaWZ0S2V5JiYoUS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUFjdGl2ZUZpbGUoKSksKFEubWV0YUtleXx8US5jdHJsS2V5KSYmUS5zaGlmdEtleSYmUS5rZXkudG9Mb3dlckNhc2UoKT09PSJzIiYmKFEucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVBbGxGaWxlcygpKX0pO2hhbmRsZUZpbGVUcmVlTW91c2VEb3duPVE9PntRLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nRmlsZVRyZWU9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCl9O2hhbmRsZUZpbGVUcmVlTW91c2VNb3ZlPVE9PntpZighdGhpcy5pc0RyYWdnaW5nRmlsZVRyZWUpcmV0dXJuO2xldCBLPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYmU9US5jbGllbnRYLUsubGVmdCxvdD0xNTAsbnQ9Sy53aWR0aCouNSxuMT1NYXRoLm1heChvdCxNYXRoLm1pbihudCxiZSkpO3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9bjF9O2hhbmRsZUZpbGVUcmVlTW91c2VVcD0oKT0+e3RoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlVXApLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfTtoYW5kbGVUZXJtaW5hbE1vdXNlRG93bj1RPT57US5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlVXApfTtoYW5kbGVUZXJtaW5hbE1vdXNlTW92ZT1RPT57aWYoIXRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsKXJldHVybjtsZXQgSz10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGJlPVEuY2xpZW50WS1LLnRvcCxvdD1LLmhlaWdodC1iZSxudD0xMDAsbjE9Sy5oZWlnaHQqLjcsdmE9TWF0aC5tYXgobnQsTWF0aC5taW4objEsb3QpKTt0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD12YX07aGFuZGxlVGVybWluYWxNb3VzZVVwPSgpPT57dGhpcy5pc0RyYWdnaW5nVGVybWluYWw9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9O3N0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAud29ya3NwYWNlLW91dGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmVkaXRvci1hcmVhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXBhbmVsLmNvbGxhcHNlZCB7CiAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmVkaXRvci1wYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1wYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXBhbmVsLmNvbGxhcHNlZCB7CiAgICAgICAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlci10aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnBhbmVsLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGFicy1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgIG1heC13aWR0aDogMjAwcHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDEwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItbW9kaWZpZWQgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYnMtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1tZW51LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDhweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmVkaXRvci1tZW51LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMzJweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnByb2JsZW1zLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDMycHg7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICAucGFuZWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWI6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDc1JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNDUlKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWItYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCg0MCA3MCUgNTAlKSIsImhzbCg0MCA3MCUgNDUlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZS5ub25lIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAucHJvYmxlbXMtbGlzdCB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24ud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woNDAgNzAlIDUwJSkiLCJoc2woNDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWRldGFpbHMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAucHJvYmxlbS1tZXNzYWdlIHsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAucHJvYmxlbS1sb2NhdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbXMtZW1wdHkgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDU1JSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy1pY29uIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuaW5pdGlhbGl6aW5nIGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXcgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICBkZWVzLXdvcmtzcGFjZS1tb25hY28gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBSZXNpemUgaGFuZGxlcyAqLwogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6aG92ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB3aWR0aDogMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM2ZTc2ODEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwgewogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGN1cnNvcjogcm93LXJlc2l6ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsOmhvdmVyLAogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyAuZmlsZXRyZWUtcGFuZWwsCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3ItcGFuZWwsCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC50ZXJtaW5hbC1wYW5lbCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtsZXQgUT1bIndvcmtzcGFjZS1jb250YWluZXIiLHRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlfHx0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD8iZHJhZ2dpbmciOiIiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO3JldHVybiB0aGlzLmlzSW5pdGlhbGl6aW5nP01gCiAgICAgICAgPGRpdiBjbGFzcz0iaW5pdGlhbGl6aW5nIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxvYWRlcjIifSBpY29uU2l6ZT0iMzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+SW5pdGlhbGl6aW5nIHdvcmtzcGFjZS4uLjwvc3Bhbj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3CiAgICAgICAgICAgIC5jb21tYW5kPSR7dGhpcy5pbml0Q29tbWFuZHx8IiJ9CiAgICAgICAgICAgIC5saW5lcz0ke3RoaXMuaW5pdE91dHB1dH0KICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6TWAKICAgICAgPGRpdiBjbGFzcz0id29ya3NwYWNlLW91dGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSIke1F9Ij4KICAgICAgICAgIDwhLS0gRmlsZXRyZWUgcGFuZWwgKGZ1bGwgaGVpZ2h0KSAtLT4KICAgICAgICAgICR7dGhpcy5zaG93RmlsZVRyZWU/TWAKICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJmaWxldHJlZS1wYW5lbCAke3RoaXMuaXNGaWxlVHJlZUNvbGxhcHNlZD8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke3RoaXMuaXNGaWxlVHJlZUNvbGxhcHNlZD8wOnRoaXMuY3VycmVudEZpbGVUcmVlV2lkdGh9cHgiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUKICAgICAgICAgICAgICAgIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9CiAgICAgICAgICAgICAgICAuc2VsZWN0ZWRQYXRoPSR7dGhpcy5hY3RpdmVGaWxlUGF0aH0KICAgICAgICAgICAgICAgIEBmaWxlLXNlbGVjdD0ke3RoaXMuaGFuZGxlRmlsZVNlbGVjdH0KICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1maWxldHJlZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5pc0ZpbGVUcmVlQ29sbGFwc2VkPyIiOk1gCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUtdmVydGljYWwgJHt0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VEb3dufQogICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgPCEtLSBFZGl0b3IgKyBUZXJtaW5hbCBhcmVhIC0tPgogICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWFyZWEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItcGFuZWwiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYnMtYmFyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYnMtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLm9wZW5GaWxlcy5tYXAoSz0+TWAKICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiICR7Sy5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmF0ZUZpbGUoSy5wYXRoKX0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAke0subW9kaWZpZWQ/TWA8c3BhbiBjbGFzcz0idGFiLW1vZGlmaWVkIj48L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbmFtZSI+JHtLLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7YmU9PnRoaXMuY2xvc2VGaWxlKGJlLEsucGF0aCl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1tZW51LWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5zaG93RWRpdG9yTWVudX0gdGl0bGU9IkVkaXRvciBvcHRpb25zIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bW9yZVZlcnRpY2FsIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5zaG93RGlmZlZpZXcmJnRoaXMuZGlmZlZpZXdDb25maWc/TWAKICAgICAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yCiAgICAgICAgICAgICAgICAgICAgLmZpbGVQYXRoPSR7dGhpcy5kaWZmVmlld0NvbmZpZy5maWxlUGF0aH0KICAgICAgICAgICAgICAgICAgICAub3JpZ2luYWxDb250ZW50PSR7dGhpcy5kaWZmVmlld0NvbmZpZy5vcmlnaW5hbENvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgLm1vZGlmaWVkQ29udGVudD0ke3RoaXMuZGlmZlZpZXdDb25maWcubW9kaWZpZWRDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMuZGlmZlZpZXdDb25maWcubGFuZ3VhZ2V9CiAgICAgICAgICAgICAgICAgICAgQGRpZmYtcmVzb2x2ZWQ9JHt0aGlzLmhhbmRsZURpZmZSZXNvbHZlZH0KICAgICAgICAgICAgICAgICAgICBAZGlmZi1jbG9zZWQ9JHsoKT0+e3RoaXMuc2hvd0RpZmZWaWV3PSExLHRoaXMuZGlmZlZpZXdDb25maWc9bnVsbH19CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yPgogICAgICAgICAgICAgICAgYDp0aGlzLm9wZW5GaWxlcy5sZW5ndGg9PT0wP01gCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpmaWxlQ29kZSJ9IGljb25TaXplPSI0OCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+U2VsZWN0IGEgZmlsZSB0byBlZGl0PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6TWAKICAgICAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAgICAgICAgIC5maWxlUGF0aD0ke3RoaXMuYWN0aXZlRmlsZVBhdGh9CiAgICAgICAgICAgICAgICAgICAgLmNvbnRlbnQ9JHt0aGlzLmdldEFjdGl2ZUZpbGVDb250ZW50KCl9CiAgICAgICAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKHRoaXMuYWN0aXZlRmlsZVBhdGgpfQogICAgICAgICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RoaXMuaGFuZGxlQ29udGVudENoYW5nZX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGVlcy1hY3Rpb25iYXI+PC9kZWVzLWFjdGlvbmJhcj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIEhvcml6b250YWwgcmVzaXplIGhhbmRsZSBmb3IgdGVybWluYWwgLS0+CiAgICAgICAgICAgICR7dGhpcy5zaG93VGVybWluYWwmJiF0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/TWAKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZS1ob3Jpem9udGFsICR7dGhpcy5pc0RyYWdnaW5nVGVybWluYWw/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlRG93bn0KICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgICA8IS0tIFRlcm1pbmFsIHBhbmVsIC0tPgogICAgICAgICAgICAke3RoaXMuc2hvd1Rlcm1pbmFsP01gCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9InRlcm1pbmFsLXBhbmVsICR7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgICAgICAgIHN0eWxlPSJoZWlnaHQ6ICR7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPzMyOnRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0fXB4IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLXRhYnMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwYW5lbC10YWIgJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InRlcm1pbmFsIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmVCb3R0b21QYW5lbD0idGVybWluYWwifQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnRlcm1pbmFsIn0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIFRlcm1pbmFsCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InBhbmVsLXRhYiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0icHJvYmxlbXMiPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPSJwcm9ibGVtcyJ9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2lyY2xlQWxlcnQifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgUHJvYmxlbXMKICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5sZW5ndGg+MD9NYAogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFuZWwtdGFiLWJhZGdlICR7dGhpcy5nZXRFcnJvckNvdW50KCk9PT0wPyJ3YXJuaW5nIjoiIn0iPiR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5sZW5ndGh9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWRlci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1hY3Rpb24iIEBjbGljaz0ke3RoaXMudG9nZ2xlVGVybWluYWx9PgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgICAgICAuaWNvbj0ke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8ibHVjaWRlOmNoZXZyb25VcCI6Imx1Y2lkZTpjaGV2cm9uRG93biJ9CiAgICAgICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNCIKICAgICAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRlbnQiIHN0eWxlPSJkaXNwbGF5OiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0idGVybWluYWwiPyJibG9jayI6Im5vbmUifSI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbAogICAgICAgICAgICAgICAgICAgIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9CiAgICAgICAgICAgICAgICAgICAgLnNldHVwQ29tbWFuZD0keyIifQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbXMtY29udGVudCIgc3R5bGU9ImRpc3BsYXk6ICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJwcm9ibGVtcyI/ImJsb2NrIjoibm9uZSJ9Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlclByb2JsZW1zUGFuZWwoKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gQm90dG9tIEJhciAoZnVsbCB3aWR0aCkgLS0+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLWJvdHRvbWJhcgogICAgICAgICAgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH0KICAgICAgICAgIEBydW4tcHJvY2Vzcz0ke3RoaXMuaGFuZGxlUnVuUHJvY2Vzc30KICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1ib3R0b21iYXI+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5rZXlkb3duSGFuZGxlcil9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMua2V5ZG93bkhhbmRsZXIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlVXApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlVXApLHRoaXMuYXV0b1NhdmVJbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2F2ZUludGVydmFsKSx0aGlzLmF1dG9TYXZlSW50ZXJ2YWw9bnVsbCksdGhpcy5zdG9wTm9kZU1vZHVsZXNXYXRjaGVyKCksdGhpcy5zdG9wQWxsRmlsZVdhdGNoZXJzKCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aD10aGlzLmZpbGVUcmVlV2lkdGgsdGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9dGhpcy50ZXJtaW5hbEhlaWdodCx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmluaXRpYWxpemVXb3Jrc3BhY2UoKX1hc3luYyB1cGRhdGVkKFEpe1EuaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiZ0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmluaXRpYWxpemVXb3Jrc3BhY2UoKSx0aGlzLmFjdGlvbmJhckVsZW1lbnR8fCh0aGlzLmFjdGlvbmJhckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZWRpdG9yLXBhbmVsIGRlZXMtYWN0aW9uYmFyIikpfWFzeW5jIGluaXRpYWxpemVXb3Jrc3BhY2UoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYhdGhpcy5pbml0aWFsaXphdGlvblN0YXJ0ZWQpe3RoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkPSEwLHRoaXMuaXNJbml0aWFsaXppbmc9ITA7dHJ5e3RoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlP2F3YWl0IHRoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlOnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZHl8fGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpLGF3YWl0IHRoaXMuZXhlY3V0ZU9uSW5pdENvbW1hbmQoKX1jYXRjaChRKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSB3b3Jrc3BhY2U6IixRKSx0aGlzLmluaXRpYWxpemF0aW9uU3RhcnRlZD0hMX1maW5hbGx5e3RoaXMuaXNJbml0aWFsaXppbmc9ITF9fX1hc3luYyBleGVjdXRlT25Jbml0Q29tbWFuZCgpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvbnBtZXh0cmEuanNvbiIpKXtsZXQgUT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCIvbnBtZXh0cmEuanNvbiIpLGJlPUpTT04ucGFyc2UoUSk/LmRlZXNFZGl0b3JXb3Jrc3BhY2U/Lm9uSW5pdDtpZihiZSYmdHlwZW9mIGJlPT0ic3RyaW5nIil7Y29uc29sZS5sb2coIkV4ZWN1dGluZyBvbkluaXQgY29tbWFuZDoiLGJlKSx0aGlzLmluaXRDb21tYW5kPWJlLHRoaXMuaW5pdE91dHB1dD1bXTtsZXRbb3QsLi4ubnRdPWJlLnNwbGl0KCIgIiksbjE9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bihvdCxudCk7bjEub3V0cHV0LnBpcGVUbyhuZXcgV3JpdGFibGVTdHJlYW0oe3dyaXRlOktyPT57bGV0IEpyPUtyLnNwbGl0KGAKYCk7Zm9yKGxldCBUZSBvZiBKcilUZSYmKHRoaXMuaW5pdE91dHB1dD1bLi4udGhpcy5pbml0T3V0cHV0LFRlXSl9fSkpO2xldCB2YT1hd2FpdCBuMS5leGl0O2NvbnNvbGUubG9nKCJvbkluaXQgY29tbWFuZCBjb21wbGV0ZWQgd2l0aCBleGl0IGNvZGU6Iix2YSksdGhpcy5pbml0T3V0cHV0PVsuLi50aGlzLmluaXRPdXRwdXQsIiIsYENvbW1hbmQgY29tcGxldGVkIHdpdGggZXhpdCBjb2RlOiAke3ZhfWBdfX19Y2F0Y2goUSl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZXhlY3V0ZSBvbkluaXQgY29tbWFuZDoiLFEpfX1hc3luYyBpbml0aWFsaXplSW50ZWxsaVNlbnNlKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpcmV0dXJuO2xldCBRPXdpbmRvdy5tb25hY287aWYoUXx8KGF3YWl0IG5ldyBQcm9taXNlKEs9PnNldFRpbWVvdXQoSywxMDApKSxRPXdpbmRvdy5tb25hY28pLCFRKXtjb25zb2xlLndhcm4oIk1vbmFjbyBub3QgeWV0IGxvYWRlZCwgSW50ZWxsaVNlbnNlIHdpbGwgYmUgaW5pdGlhbGl6ZWQgbGF0ZXIiKTtyZXR1cm59dGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZD0hMCx0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI9bmV3IGJqLGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5pbml0KFEsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCksdGhpcy5zZXR1cE1hcmtlckxpc3RlbmVyKCksdGhpcy5zdGFydE5vZGVNb2R1bGVzV2F0Y2hlcigpLGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5zY2FuQW5kTG9hZE5ld1BhY2thZ2VUeXBlcygpfXN0YXJ0Tm9kZU1vZHVsZXNXYXRjaGVyKCl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXIpKXRyeXt0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlcj10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKCIvbm9kZV9tb2R1bGVzIiwoUSxLKT0+e3RoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoYXN5bmMoKT0+e3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl9LDJlMyl9LHtyZWN1cnNpdmU6ITB9KX1jYXRjaChRKXtjb25zb2xlLndhcm4oIkNvdWxkIG5vdCB3YXRjaCBub2RlX21vZHVsZXM6IixRKX19c3RvcE5vZGVNb2R1bGVzV2F0Y2hlcigpe3RoaXMubm9kZU1vZHVsZXNXYXRjaGVyJiYodGhpcy5ub2RlTW9kdWxlc1dhdGNoZXIuc3RvcCgpLHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyPW51bGwpLHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dD1udWxsKX1zdGFydFdhdGNoaW5nRmlsZShRKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuaGFzKFEpKSl0cnl7bGV0IEs9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53YXRjaChRLChiZSxvdCk9PntsZXQgbnQ9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KFEpO250JiZjbGVhclRpbWVvdXQobnQpO2xldCBuMT1zZXRUaW1lb3V0KCgpPT57dGhpcy5oYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UoUSksdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZGVsZXRlKFEpfSwzMDApO3RoaXMuZmlsZUNoYW5nZURlYm91bmNlLnNldChRLG4xKX0pO3RoaXMub3BlbkZpbGVXYXRjaGVycy5zZXQoUSxLKX1jYXRjaChLKXtjb25zb2xlLndhcm4oYENvdWxkIG5vdCB3YXRjaCBmaWxlICR7UX06YCxLKX19c3RvcFdhdGNoaW5nRmlsZShRKXtsZXQgSz10aGlzLm9wZW5GaWxlV2F0Y2hlcnMuZ2V0KFEpO0smJihLLnN0b3AoKSx0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuZGVsZXRlKFEpKTtsZXQgYmU9dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KFEpO2JlJiYoY2xlYXJUaW1lb3V0KGJlKSx0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5kZWxldGUoUSkpfXN0b3BBbGxGaWxlV2F0Y2hlcnMoKXtmb3IobGV0IFEgb2YgdGhpcy5vcGVuRmlsZVdhdGNoZXJzLnZhbHVlcygpKVEuc3RvcCgpO3RoaXMub3BlbkZpbGVXYXRjaGVycy5jbGVhcigpO2ZvcihsZXQgUSBvZiB0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS52YWx1ZXMoKSljbGVhclRpbWVvdXQoUSk7dGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuY2xlYXIoKX1hc3luYyBoYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UoUSl7bGV0IEs9dGhpcy5vcGVuRmlsZXMuZmluZChiZT0+YmUucGF0aD09PVEpO2lmKCEoIUt8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSl0cnl7bGV0IGJlPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoUSk7aWYoYmU9PT1LLmNvbnRlbnQpcmV0dXJuO2lmKEsubW9kaWZpZWQpe2xldCBvdD1hd2FpdCB0aGlzLmFjdGlvbmJhckVsZW1lbnQ/LnNob3coe21lc3NhZ2U6YCIke0submFtZX0iIGNoYW5nZWQgb24gZGlzay4gV2hhdCBkbyB5b3Ugd2FudCB0byBkbz9gLHR5cGU6InF1ZXN0aW9uIixpY29uOiJsdWNpZGU6Z2l0TWVyZ2UiLGFjdGlvbnM6W3tpZDoibG9hZC1kaXNrIixsYWJlbDoiTG9hZCBmcm9tIERpc2siLHByaW1hcnk6ITB9LHtpZDoic2F2ZS1sb2NhbCIsbGFiZWw6IlNhdmUgTG9jYWwgdG8gRGlzayJ9LHtpZDoiY29tcGFyZSIsbGFiZWw6IkNvbXBhcmUifV0sdGltZW91dDp7ZHVyYXRpb246MTVlMyxkZWZhdWx0QWN0aW9uSWQ6ImxvYWQtZGlzayJ9LGRpc21pc3NpYmxlOiEwfSk7b3Q/LmFjdGlvbklkPT09ImxvYWQtZGlzayI/YXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudChRLGJlLCExKTpvdD8uYWN0aW9uSWQ9PT0ic2F2ZS1sb2NhbCI/KGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKFEsSy5jb250ZW50KSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAobnQ9Pm50LnBhdGg9PT1RP3suLi5udCxtb2RpZmllZDohMX06bnQpKTpvdD8uYWN0aW9uSWQ9PT0iY29tcGFyZSImJnRoaXMub3BlbkRpZmZWaWV3KFEsSy5jb250ZW50LGJlKX1lbHNlIGF3YWl0IHRoaXMudXBkYXRlRmlsZUNvbnRlbnQoUSxiZSwhMCl9Y2F0Y2goYmUpe2NvbnNvbGUud2FybihgRmFpbGVkIHRvIGhhbmRsZSBleHRlcm5hbCBjaGFuZ2UgZm9yICR7UX06YCxiZSl9fWFzeW5jIHVwZGF0ZUZpbGVDb250ZW50KFEsSyxiZSl7aWYodGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKG90PT5vdC5wYXRoPT09UT97Li4ub3QsY29udGVudDpLLG1vZGlmaWVkOiExfTpvdCksUT09PXRoaXMuYWN0aXZlRmlsZVBhdGgpe2xldCBvdD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO290JiZhd2FpdCBvdC5zZXRDb250ZW50RXh0ZXJuYWwoSyxiZSl9fW9wZW5EaWZmVmlldyhRLEssYmUpe3RoaXMuZGlmZlZpZXdDb25maWc9e2ZpbGVQYXRoOlEsb3JpZ2luYWxDb250ZW50OmJlLG1vZGlmaWVkQ29udGVudDpLLGxhbmd1YWdlOnRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChRKX0sdGhpcy5zaG93RGlmZlZpZXc9ITB9YXN5bmMgaGFuZGxlRGlmZlJlc29sdmVkKFEpe2xldHthY3Rpb246Syxjb250ZW50OmJlfT1RLmRldGFpbCxvdD10aGlzLmRpZmZWaWV3Q29uZmlnPy5maWxlUGF0aDtpZighb3R8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLnNob3dEaWZmVmlldz0hMSx0aGlzLmRpZmZWaWV3Q29uZmlnPW51bGw7cmV0dXJufWlmKEs9PT0idXNlLWxvY2FsIil7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUob3QsYmUpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChudD0+bnQucGF0aD09PW90P3suLi5udCxjb250ZW50OmJlLG1vZGlmaWVkOiExfTpudCksb3Q9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKXtsZXQgbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKTtudCYmYXdhaXQgbnQuc2V0Q29udGVudEV4dGVybmFsKGJlLCExKX19ZWxzZSBLPT09InVzZS1kaXNrIiYmYXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudChvdCxiZSwhMSk7dGhpcy5zaG93RGlmZlZpZXc9ITEsdGhpcy5kaWZmVmlld0NvbmZpZz1udWxsfWFzeW5jIGhhbmRsZUZpbGVTZWxlY3QoUSl7bGV0e3BhdGg6SyxuYW1lOmJlfT1RLmRldGFpbDthd2FpdCB0aGlzLm9wZW5GaWxlKEssYmUpfWFzeW5jIG9wZW5GaWxlKFEsSyl7aWYodGhpcy5vcGVuRmlsZXMuZmluZChvdD0+b3QucGF0aD09PVEpKXt0aGlzLmFjdGl2ZUZpbGVQYXRoPVE7cmV0dXJufWlmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2xldCBvdD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKFEpO2lmKHRoaXMub3BlbkZpbGVzPVsuLi50aGlzLm9wZW5GaWxlcyx7cGF0aDpRLG5hbWU6Syxjb250ZW50Om90LG1vZGlmaWVkOiExfV0sdGhpcy5hY3RpdmVGaWxlUGF0aD1RLHRoaXMuc3RhcnRXYXRjaGluZ0ZpbGUoUSksIXRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2UobjE9PnNldFRpbWVvdXQobjEsNTAwKSksYXdhaXQgdGhpcy5pbml0aWFsaXplSW50ZWxsaVNlbnNlKCk7bGV0IG50PXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChRKTt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJihudD09PSJ0eXBlc2NyaXB0Inx8bnQ9PT0iamF2YXNjcmlwdCIpJiZhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIucHJvY2Vzc0NvbnRlbnRDaGFuZ2Uob3QpfX1jYXRjaChvdCl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIG9wZW4gZmlsZSAke1F9OmAsb3QpfX1hY3RpdmF0ZUZpbGUoUSl7dGhpcy5hY3RpdmVGaWxlUGF0aD1RfWNsb3NlRmlsZShRLEspe1Euc3RvcFByb3BhZ2F0aW9uKCk7bGV0IGJlPXRoaXMub3BlbkZpbGVzLmZpbmRJbmRleChudD0+bnQucGF0aD09PUspO2lmKGJlPT09LTEpcmV0dXJuO2xldCBvdD10aGlzLm9wZW5GaWxlc1tiZV07aWYoIShvdC5tb2RpZmllZCYmIWNvbmZpcm0oYCR7b3QubmFtZX0gaGFzIHVuc2F2ZWQgY2hhbmdlcy4gQ2xvc2UgYW55d2F5P2ApKSYmKHRoaXMuc3RvcFdhdGNoaW5nRmlsZShLKSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5maWx0ZXIobnQ9Pm50LnBhdGghPT1LKSx0aGlzLmFjdGl2ZUZpbGVQYXRoPT09SykpaWYodGhpcy5vcGVuRmlsZXMubGVuZ3RoPjApe2xldCBudD1NYXRoLm1pbihiZSx0aGlzLm9wZW5GaWxlcy5sZW5ndGgtMSk7dGhpcy5hY3RpdmVGaWxlUGF0aD10aGlzLm9wZW5GaWxlc1tudF0ucGF0aH1lbHNlIHRoaXMuYWN0aXZlRmlsZVBhdGg9IiJ9Z2V0QWN0aXZlRmlsZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy5vcGVuRmlsZXMuZmluZChLPT5LLnBhdGg9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKT8uY29udGVudHx8IiJ9aGFuZGxlQ29udGVudENoYW5nZShRKXtsZXQgSz1RLmRldGFpbCxiZT10aGlzLm9wZW5GaWxlcy5maW5kSW5kZXgobnQ9Pm50LnBhdGg9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKTtpZihiZT09PS0xKXJldHVybjtsZXQgb3Q9dGhpcy5vcGVuRmlsZXNbYmVdO2lmKG90LmNvbnRlbnQhPT1LKXt0aGlzLm9wZW5GaWxlcz1bLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoMCxiZSksey4uLm90LGNvbnRlbnQ6Syxtb2RpZmllZDohMH0sLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoYmUrMSldO2xldCBudD10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCk7dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiYobnQ9PT0idHlwZXNjcmlwdCJ8fG50PT09ImphdmFzY3JpcHQiKSYmKHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQpLHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI/LnByb2Nlc3NDb250ZW50Q2hhbmdlKEspfSw1MDApKX19Z2V0TGFuZ3VhZ2VGcm9tUGF0aChRKXtsZXQgSz1RLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCk7cmV0dXJue3RzOiJ0eXBlc2NyaXB0Iix0c3g6InR5cGVzY3JpcHQiLGpzOiJqYXZhc2NyaXB0Iixqc3g6ImphdmFzY3JpcHQiLGpzb246Impzb24iLGh0bWw6Imh0bWwiLGNzczoiY3NzIixzY3NzOiJzY3NzIixsZXNzOiJsZXNzIixtZDoibWFya2Rvd24iLHlhbWw6InlhbWwiLHltbDoieWFtbCIseG1sOiJ4bWwiLHNxbDoic3FsIixweToicHl0aG9uIixzaDoic2hlbGwiLGJhc2g6InNoZWxsIn1bS3x8IiJdfHwicGxhaW50ZXh0In10b2dnbGVUZXJtaW5hbCgpe3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD0hdGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkfWFzeW5jIHNhdmVBY3RpdmVGaWxlKCl7bGV0IFE9dGhpcy5vcGVuRmlsZXMuZmluZChLPT5LLnBhdGg9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKTtpZighKCFRfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKFEucGF0aCxRLmNvbnRlbnQpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChLPT5LLnBhdGg9PT1RLnBhdGg/ey4uLkssbW9kaWZpZWQ6ITF9OkspLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLmFkZEZpbGVNb2RlbChRLnBhdGgsUS5jb250ZW50KX1jYXRjaChLKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc2F2ZSBmaWxlOiIsSyl9fWFzeW5jIHNhdmVBbGxGaWxlcygpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe2ZvcihsZXQgUSBvZiB0aGlzLm9wZW5GaWxlcy5maWx0ZXIoSz0+Sy5tb2RpZmllZCkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKFEucGF0aCxRLmNvbnRlbnQpLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLmFkZEZpbGVNb2RlbChRLnBhdGgsUS5jb250ZW50KX1jYXRjaChLKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gc2F2ZSAke1EucGF0aH06YCxLKX10aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoUT0+KHsuLi5RLG1vZGlmaWVkOiExfSkpfX1hc3luYyBzaG93RWRpdG9yTWVudShRKXtRLnN0b3BQcm9wYWdhdGlvbigpO2xldCBLPVt7bmFtZTp0aGlzLmF1dG9TYXZlPyJcdTI3MTMgQXV0byBTYXZlIjoiQXV0byBTYXZlIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjphc3luYygpPT50aGlzLnRvZ2dsZUF1dG9TYXZlKCl9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2F2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246YXN5bmMoKT0+dGhpcy5zYXZlQWN0aXZlRmlsZSgpfSx7bmFtZToiU2F2ZSBBbGwiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuc2F2ZUFsbEZpbGVzKCl9XTthd2FpdCBXdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhRLEspfXRvZ2dsZUF1dG9TYXZlKCl7dGhpcy5hdXRvU2F2ZT0hdGhpcy5hdXRvU2F2ZSx0aGlzLmF1dG9TYXZlP3RoaXMuYXV0b1NhdmVJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e3RoaXMub3BlbkZpbGVzLnNvbWUoSz0+Sy5tb2RpZmllZCkmJnRoaXMuc2F2ZUFsbEZpbGVzKCl9LDJlMyk6dGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKX1nZXRFcnJvckNvdW50KCl7cmV0dXJuIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMuZmlsdGVyKFE9PlEuc2V2ZXJpdHk9PT04KS5sZW5ndGh9cmVuZGVyUHJvYmxlbXNQYW5lbCgpe3JldHVybiB0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aD09PTA/TWAKICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtcy1lbXB0eSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGVja0NpcmNsZSJ9IGljb25TaXplPSIyNCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5ObyBwcm9ibGVtcyBkZXRlY3RlZDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDpNYAogICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtcy1saXN0Ij4KICAgICAgICAke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubWFwKFE9Pk1gCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWl0ZW0iIEBjbGljaz0keygpPT50aGlzLm5hdmlnYXRlVG9Qcm9ibGVtKFEpfT4KICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgIGNsYXNzPSJwcm9ibGVtLWljb24gJHtRLnNldmVyaXR5PT09OD8iZXJyb3IiOiJ3YXJuaW5nIn0iCiAgICAgICAgICAgICAgLmljb249JHtRLnNldmVyaXR5PT09OD8ibHVjaWRlOmNpcmNsZVgiOiJsdWNpZGU6dHJpYW5nbGVBbGVydCJ9CiAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tZGV0YWlscyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1tZXNzYWdlIj4ke1EubWVzc2FnZX08L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWxvY2F0aW9uIj4KICAgICAgICAgICAgICAgICR7US5yZXNvdXJjZS5wYXRoLnNwbGl0KCIvIikucG9wKCl9ICgke1Euc3RhcnRMaW5lTnVtYmVyfSwgJHtRLnN0YXJ0Q29sdW1ufSkKICAgICAgICAgICAgICAgICR7US5zb3VyY2U/YFske1Euc291cmNlfV1gOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgbmF2aWdhdGVUb1Byb2JsZW0oUSl7bGV0IEs9US5yZXNvdXJjZS5wYXRoLGJlPUsuc3BsaXQoIi8iKS5wb3AoKXx8IiI7dGhpcy5vcGVuRmlsZXMuZmluZChuMT0+bjEucGF0aD09PUspP3RoaXMuYWN0aXZlRmlsZVBhdGg9Szphd2FpdCB0aGlzLm9wZW5GaWxlKEssYmUpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IG50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7aWYobnQpe2xldCBuMT1hd2FpdCBudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO24xLnJldmVhbExpbmVJbkNlbnRlcihRLnN0YXJ0TGluZU51bWJlciksbjEuc2V0UG9zaXRpb24oe2xpbmVOdW1iZXI6US5zdGFydExpbmVOdW1iZXIsY29sdW1uOlEuc3RhcnRDb2x1bW59KSxuMS5mb2N1cygpfX1zZXR1cE1hcmtlckxpc3RlbmVyKCl7bGV0IFE9d2luZG93Lm1vbmFjbztRJiYoUS5lZGl0b3Iub25EaWRDaGFuZ2VNYXJrZXJzKEs9Pnt0aGlzLnVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCl9KSx0aGlzLnVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCkpfXVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCl7bGV0IFE9d2luZG93Lm1vbmFjbztpZighUSlyZXR1cm47bGV0IEs9US5lZGl0b3IuZ2V0TW9kZWxNYXJrZXJzKHt9KTt0aGlzLmRpYWdub3N0aWNNYXJrZXJzPUsubWFwKGJlPT4oe21lc3NhZ2U6YmUubWVzc2FnZSxzZXZlcml0eTpiZS5zZXZlcml0eSxzdGFydExpbmVOdW1iZXI6YmUuc3RhcnRMaW5lTnVtYmVyLHN0YXJ0Q29sdW1uOmJlLnN0YXJ0Q29sdW1uLGVuZExpbmVOdW1iZXI6YmUuZW5kTGluZU51bWJlcixlbmRDb2x1bW46YmUuZW5kQ29sdW1uLHNvdXJjZTpiZS5zb3VyY2UscmVzb3VyY2U6e3BhdGg6YmUucmVzb3VyY2UucGF0aH19KSl9YXN5bmMgaGFuZGxlUnVuUHJvY2VzcyhRKXtsZXQgSz1RLmRldGFpbCxiZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIik7aWYoIWJlKXtjb25zb2xlLndhcm4oIlRlcm1pbmFsIGNvbXBvbmVudCBub3QgZm91bmQiKTtyZXR1cm59dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkJiYodGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPSExKSx0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPSJ0ZXJtaW5hbCIsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBiZS5jcmVhdGVQcm9jZXNzVGFiKHt0eXBlOksudHlwZSxsYWJlbDpLLmxhYmVsLGNvbW1hbmQ6Sy5jb21tYW5kLGFyZ3M6Sy5hcmdzLG1ldGFkYXRhOksubWV0YWRhdGEsc3dpdGNoVG9UYWI6ITB9KX1zZXRGaWxlVHJlZVdpZHRoKFEpe2xldCBiZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKi41O3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9TWF0aC5tYXgoMTUwLE1hdGgubWluKGJlLFEpKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX1zZXRUZXJtaW5hbEhlaWdodChRKXtsZXQgYmU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQqLjc7dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9TWF0aC5tYXgoMTAwLE1hdGgubWluKGJlLFEpKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX1yZXNldExheW91dCgpe3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9dGhpcy5maWxlVHJlZVdpZHRoLHRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PXRoaXMudGVybWluYWxIZWlnaHQsd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9c3RhdGlje2R0KHIsYSl9fTtyZXR1cm4gcXQ9cn0pKCk7U0koKTtVRWUoKTtmZSgpO0JlKCk7dmFyIExJPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sS2k9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LGJWYT1zdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpLGpzMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtd29ya3NwYWNlLW1hcmtkb3duIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W107dmFyIHY9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCB5PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6TnVtYmVyfSldLGY9W0Qoe3R5cGU6TnVtYmVyfSldLGQ9W2xlKCldLGI9W2xlKCldLExJKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3BsaXRSYXRpbyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+InNwbGl0UmF0aW8iaW4gdyxnZXQ6dz0+dy5zcGxpdFJhdGlvLHNldDoodyxFKT0+e3cuc3BsaXRSYXRpbz1FfX0sbWV0YWRhdGE6eX0scyxsKSxMSSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblBhbmVsU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+Im1pblBhbmVsU2l6ZSJpbiB3LGdldDp3PT53Lm1pblBhbmVsU2l6ZSxzZXQ6KHcsRSk9Pnt3Lm1pblBhbmVsU2l6ZT1FfX0sbWV0YWRhdGE6eX0sYyx1KSxMSSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTcGxpdFJhdGlvIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4iY3VycmVudFNwbGl0UmF0aW8iaW4gdyxnZXQ6dz0+dy5jdXJyZW50U3BsaXRSYXRpbyxzZXQ6KHcsRSk9Pnt3LmN1cnJlbnRTcGxpdFJhdGlvPUV9fSxtZXRhZGF0YTp5fSxoLGcpLExJKHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+ImlzRHJhZ2dpbmciaW4gdyxnZXQ6dz0+dy5pc0RyYWdnaW5nLHNldDoodyxFKT0+e3cuaXNEcmFnZ2luZz1FfX0sbWV0YWRhdGE6eX0seCxtKSxMSShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTp5fSxudWxsLGEpLHY9cj1lLnZhbHVlLHkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eX0pfXN0YXRpYyBkZW1vPSgpPT5NYDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bj48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3duPmA7c3RhdGljIGRlbW9Hcm91cD0iV29ya3NwYWNlIjtzdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuc3BsaXRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAuZWRpdG9yQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZSB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzAzNjNkIil9OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyLAogICAgICAucmVzaXplSGFuZGxlLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZUhhbmRsZS5kcmFnZ2luZzo6YWZ0ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGQxMTE3Iil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzI0MjkyZiIsIiNlNmVkZjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3JDb250YWluZXIsCiAgICAgIC5zcGxpdENvbnRhaW5lci5kcmFnZ2luZyAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07I2U9S2kodGhpcyxzLDUwKTtnZXQgc3BsaXRSYXRpbygpe3JldHVybiB0aGlzLiNlfXNldCBzcGxpdFJhdGlvKHkpe3RoaXMuI2U9eX0jdD0oS2kodGhpcyxsKSxLaSh0aGlzLGMsMTApKTtnZXQgbWluUGFuZWxTaXplKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblBhbmVsU2l6ZSh5KXt0aGlzLiN0PXl9I2E9KEtpKHRoaXMsdSksS2kodGhpcyxoLDUwKSk7Z2V0IGN1cnJlbnRTcGxpdFJhdGlvKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGN1cnJlbnRTcGxpdFJhdGlvKHkpe3RoaXMuI2E9eX0jcj0oS2kodGhpcyxnKSxLaSh0aGlzLHgsITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiNyfXNldCBpc0RyYWdnaW5nKHkpe3RoaXMuI3I9eX1yZXNpemVIYW5kbGVFbGVtZW50PUtpKHRoaXMsbSk7Y29udGFpbmVyRWxlbWVudDtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0ic3BsaXRDb250YWluZXIgJHt0aGlzLmlzRHJhZ2dpbmc/ImRyYWdnaW5nIjoiIn0iPgogICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvckNvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAke3RoaXMuY3VycmVudFNwbGl0UmF0aW99JSI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgIC5sYW5ndWFnZT0keyJtYXJrZG93biJ9CiAgICAgICAgICAgIC5jb250ZW50PSR7YCMgYSB0ZXN0IGNvbnRlbnQKClRoaXMgaXMgdGVzdCBjb250ZW50IHRoYXQgaXMgb2YgbG9uZ2VyIGZvcm0gYW4gaG9wZWZ1bGx5IHN0YXJ0cyB0byB3cmFwIHdoZW4gSSBuZWVkIGl0LiBBbmQgeWVzLCBpdCBkb2VzIHBlcmZlY3RseS4gbmljZS4KClRlc3QgfCBIZWxsbwotLS0gfCAtLS0KWWVhaCB8IFNvIGdvb2QKClRoaXMgaXMgcmVhbCBhc3NldCBJIHRoaW5rLiBXaHkgd291bGQgd2Ugd2FudCB0byBsZWF2ZSB0aGF0IG9uIHRoZSB0YWJsZT8gQ2FuIHlvdSB0ZWxsIG15IHRoYXQ/CgpXaHkgYXJlIHdlIGhlcmU/CgpEbyB5b3Uga25vdz8KCj4gbm90ZToKVGhlcmUgaXMgc29tZXRoaW5nIGdvaW5nIG9uLgoKXGBcYFxgdHlwZXNjcmlwdApjb25zdCBoZWxsbyA9ICd5ZXMnClxgXGBcYApgfQogICAgICAgICAgICB3b3JkV3JhcD0iYm91bmRlZCIKICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0icmVzaXplSGFuZGxlICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlTW91c2VEb3dufQogICAgICAgID48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJvdXRsZXRDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJHsxMDAtdGhpcy5jdXJyZW50U3BsaXRSYXRpb30lIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKHkpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZCh5KSx0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpbyx0aGlzLmNvbnRhaW5lckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zcGxpdENvbnRhaW5lciIpLHRoaXMucmVzaXplSGFuZGxlRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnJlc2l6ZUhhbmRsZSIpO2xldCB3PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSxFPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpLHo9YXdhaXQgbmV3IHN0LnBsdWdpbnMuc21hcnRtYXJrZG93bi5TbWFydE1hcmtkb3duKCkuZ2V0TWRQYXJzZWRSZXN1bHRGcm9tTWFya2Rvd24oImxvYWRpbmcuLi4iKTt3LmNvbnRlbnRTdWJqZWN0LnN1YnNjcmliZShhc3luYyBQPT57YXdhaXQgei51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoUCk7bGV0IF89ei5odG1sO0UudXBkYXRlSHRtbFRleHQoXyl9KX1oYW5kbGVNb3VzZURvd249eT0+e3kucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmc9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKX07aGFuZGxlTW91c2VNb3ZlPXk9PntpZighdGhpcy5pc0RyYWdnaW5nfHwhdGhpcy5jb250YWluZXJFbGVtZW50KXJldHVybjtsZXQgdz10aGlzLmNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksRT13LndpZHRoLHo9KHkuY2xpZW50WC13LmxlZnQpL0UqMTAwO3o9TWF0aC5tYXgodGhpcy5taW5QYW5lbFNpemUsTWF0aC5taW4oMTAwLXRoaXMubWluUGFuZWxTaXplLHopKSx0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXp9O2hhbmRsZU1vdXNlVXA9KCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIikmJndpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfTthc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKX1zZXRTcGxpdFJhdGlvKHkpe3RoaXMuY3VycmVudFNwbGl0UmF0aW89TWF0aC5tYXgodGhpcy5taW5QYW5lbFNpemUsTWF0aC5taW4oMTAwLXRoaXMubWluUGFuZWxTaXplLHkpKX1yZXNldFNwbGl0UmF0aW8oKXt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpb31zdGF0aWN7S2kocixhKX19O3JldHVybiB2PXJ9KSgpO2ZlKCk7dmFyIHBPdD0oKT0+TWAKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHt0ZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8IS0tIERlbW8gMTogSGVhZGluZ3MgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkhlYWRpbmdzIn0KICAgICAgICAuc3VidGl0bGU9JHsiQWxsIGhlYWRpbmcgbGV2ZWxzIGZyb20gSDEgdG8gSDYifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGgxPkhlYWRpbmcgTGV2ZWwgMTwvaDE+CiAgICAgICAgICAgIDxoMj5IZWFkaW5nIExldmVsIDI8L2gyPgogICAgICAgICAgICA8aDM+SGVhZGluZyBMZXZlbCAzPC9oMz4KICAgICAgICAgICAgPGg0PkhlYWRpbmcgTGV2ZWwgNDwvaDQ+CiAgICAgICAgICAgIDxoNT5IZWFkaW5nIExldmVsIDU8L2g1PgogICAgICAgICAgICA8aDY+SGVhZGluZyBMZXZlbCA2PC9oNj4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gMjogVGV4dCBGb3JtYXR0aW5nIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJUZXh0IEZvcm1hdHRpbmcifQogICAgICAgIC5zdWJ0aXRsZT0keyJCb2xkLCBpdGFsaWMsIGxpbmtzLCBjb2RlLCBhbmQga2V5Ym9hcmQgaW5wdXQifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPHA+VGhpcyBpcyBhIHBhcmFncmFwaCB3aXRoIDxzdHJvbmc+Ym9sZCB0ZXh0PC9zdHJvbmc+IGFuZCA8ZW0+aXRhbGljIHRleHQ8L2VtPi48L3A+CiAgICAgICAgICAgIDxwPllvdSBjYW4gYWxzbyB1c2UgPHN0cm9uZz48ZW0+Ym9sZCBpdGFsaWM8L2VtPjwvc3Ryb25nPiBmb3IgZW1waGFzaXMuPC9wPgogICAgICAgICAgICA8cD5IZXJlJ3MgYSA8YSBocmVmPSIjIj5saW5rIGV4YW1wbGU8L2E+IGFuZCBzb21lIDxjb2RlPmlubGluZSBjb2RlPC9jb2RlPi48L3A+CiAgICAgICAgICAgIDxwPlByZXNzIDxrYmQ+Q3RybDwva2JkPiArIDxrYmQ+Qzwva2JkPiB0byBjb3B5IHRleHQuPC9wPgogICAgICAgICAgICA8aHI+CiAgICAgICAgICAgIDxwPkFib3ZlIGlzIGEgaG9yaXpvbnRhbCBydWxlIHNlcGFyYXRvci48L3A+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDM6IExpc3RzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJMaXN0cyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7Ik9yZGVyZWQsIHVub3JkZXJlZCwgYW5kIHRhc2sgbGlzdHMifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGgzPlVub3JkZXJlZCBMaXN0PC9oMz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5GaXJzdCBpdGVtPC9saT4KICAgICAgICAgICAgICA8bGk+U2Vjb25kIGl0ZW0KICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgPGxpPk5lc3RlZCBpdGVtIDE8L2xpPgogICAgICAgICAgICAgICAgICA8bGk+TmVzdGVkIGl0ZW0gMjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgPGxpPlRoaXJkIGl0ZW08L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgPGgzPk9yZGVyZWQgTGlzdDwvaDM+CiAgICAgICAgICAgIDxvbD4KICAgICAgICAgICAgICA8bGk+U3RlcCBvbmU8L2xpPgogICAgICAgICAgICAgIDxsaT5TdGVwIHR3bzwvbGk+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgdGhyZWU8L2xpPgogICAgICAgICAgICA8L29sPgoKICAgICAgICAgICAgPGgzPlRhc2sgTGlzdDwvaDM+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQgZGlzYWJsZWQ+IENvbXBsZXRlZCB0YXNrPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9InRhc2stbGlzdC1pdGVtIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPiBQZW5kaW5nIHRhc2s8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0idGFzay1saXN0LWl0ZW0iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGlzYWJsZWQ+IEFub3RoZXIgdGFzazwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDQ6IENvZGUgQmxvY2tzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJDb2RlIEJsb2NrcyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlN5bnRheCBoaWdobGlnaHRlZCBjb2RlIGV4YW1wbGVzIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxwPklubGluZSBjb2RlOiA8Y29kZT5jb25zdCBncmVldGluZyA9ICJIZWxsbywgV29ybGQhIjs8L2NvZGU+PC9wPgoKICAgICAgICAgICAgPGgzPlR5cGVTY3JpcHQgRXhhbXBsZTwvaDM+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW1wb3J0PC9zcGFuPiB7IGh0bWwsIGNzcyB9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmZyb208L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+J0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc8L3NwYW4+OwoKPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+aW50ZXJmYWNlPC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy10aXRsZSI+SVVzZXI8L3NwYW4+IHsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5uYW1lPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj47CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+ZW1haWw8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+c3RyaW5nPC9zcGFuPjsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5hZ2U8L3NwYW4+PzogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPm51bWJlcjwvc3Bhbj47Cn0KCjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmNvbnN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaGxqcy10aXRsZSI+Z2V0VXNlcjwvc3Bhbj4gPSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5hc3luYzwvc3Bhbj4gKDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmlkPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtYnVpbHRfaW4iPnN0cmluZzwvc3Bhbj4pOiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+UHJvbWlzZTwvc3Bhbj4mbHQ7SVVzZXImZ3Q7ID0mZ3Q7IHsKICA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5jb25zdDwvc3Bhbj4gcmVzcG9uc2UgPSA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5hd2FpdDwvc3Bhbj4gZmV0Y2goXGAvYXBpL3VzZXJzL1wke2lkfVxgKTsKICA8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5yZXR1cm48L3NwYW4+IHJlc3BvbnNlLmpzb24oKTsKfTs8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8aDM+SlNPTiBFeGFtcGxlPC9oMz4KICAgICAgICAgICAgPHByZT48Y29kZT57CiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+Im5hbWUiPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4iZGVlcy1jYXRhbG9nIjwvc3Bhbj4sCiAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+InZlcnNpb24iPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4iMy4wLjAiPC9zcGFuPiwKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4iZGVwZW5kZW5jaWVzIjwvc3Bhbj46IHsKICAgIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQiPC9zcGFuPjogPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4iXjIuMC4wIjwvc3Bhbj4KICB9Cn08L2NvZGU+PC9wcmU+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDU6IFRhYmxlcyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiVGFibGVzIn0KICAgICAgICAuc3VidGl0bGU9JHsiU3R5bGVkIHRhYmxlcyB3aXRoIGFsdGVybmF0aW5nIHJvd3MifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPHRhYmxlPgogICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRoPkZlYXR1cmU8L3RoPgogICAgICAgICAgICAgICAgICA8dGg+U3RhdHVzPC90aD4KICAgICAgICAgICAgICAgICAgPHRoPlByaW9yaXR5PC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5EYXJrIG1vZGUgc3VwcG9ydDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Db21wbGV0ZWQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SGlnaDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+UmVzcG9uc2l2ZSBkZXNpZ248L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SW4gUHJvZ3Jlc3M8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TWVkaXVtPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5BY2Nlc3NpYmlsaXR5PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlBsYW5uZWQ8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+SGlnaDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+RG9jdW1lbnRhdGlvbjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5JbiBQcm9ncmVzczwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5Mb3c8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA2OiBCbG9ja3F1b3RlcyAmIEFsZXJ0cyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiQmxvY2txdW90ZXMgJiBBbGVydHMifQogICAgICAgIC5zdWJ0aXRsZT0keyJRdW90ZXMgYW5kIEdpdEh1Yi1zdHlsZSBhbGVydHMifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGJsb2NrcXVvdGU+CiAgICAgICAgICAgICAgPHA+VGhpcyBpcyBhIHN0YW5kYXJkIGJsb2NrcXVvdGUuIEl0J3MgZ3JlYXQgZm9yIGhpZ2hsaWdodGluZyBpbXBvcnRhbnQgaW5mb3JtYXRpb24gb3IgcXVvdGVzIGZyb20gb3RoZXIgc291cmNlcy48L3A+CiAgICAgICAgICAgIDwvYmxvY2txdW90ZT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LW5vdGUiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIG5vdGUgdG8gZHJhdyBhdHRlbnRpb24gdG8gaW1wb3J0YW50IGRldGFpbHMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXRpcCI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXA6PC9zdHJvbmc+IEhlcmUncyBhIGhlbHBmdWwgdGlwIHRvIGltcHJvdmUgeW91ciB3b3JrZmxvdy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtaW1wb3J0YW50Ij4KICAgICAgICAgICAgICA8cD48c3Ryb25nPkltcG9ydGFudDo8L3N0cm9uZz4gVGhpcyBpbmZvcm1hdGlvbiBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSB0b3BpYy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtd2FybmluZyI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPiBCZSBjYXJlZnVsIHdoZW4gcGVyZm9ybWluZyB0aGlzIGFjdGlvbi48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtY2F1dGlvbiI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5DYXV0aW9uOjwvc3Ryb25nPiBUaGlzIGFjdGlvbiBtYXkgaGF2ZSB1bmludGVuZGVkIGNvbnNlcXVlbmNlcy48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyA3OiBGdWxsIERvY3VtZW50IC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJGdWxsIERvY3VtZW50In0KICAgICAgICAuc3VidGl0bGU9JHsiQSBjb21wbGV0ZSBtYXJrZG93biBkb2N1bWVudCBleGFtcGxlIn0KICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57YXdhaXQgdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpPy51cGRhdGVIdG1sVGV4dChgCiAgICAgICAgICAgIDxoMT5HZXR0aW5nIFN0YXJ0ZWQgR3VpZGU8L2gxPgogICAgICAgICAgICA8cD5XZWxjb21lIHRvIHRoZSA8c3Ryb25nPmRlZXMtY2F0YWxvZzwvc3Ryb25nPiBjb21wb25lbnQgbGlicmFyeS4gVGhpcyBndWlkZSB3aWxsIGhlbHAgeW91IGdldCB1cCBhbmQgcnVubmluZyBxdWlja2x5LjwvcD4KCiAgICAgICAgICAgIDxoMj5JbnN0YWxsYXRpb248L2gyPgogICAgICAgICAgICA8cD5JbnN0YWxsIHRoZSBwYWNrYWdlIHVzaW5nIHlvdXIgcHJlZmVycmVkIHBhY2thZ2UgbWFuYWdlcjo8L3A+CiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9ImhsanMtY29tbWVudCI+IyBVc2luZyBwbnBtIChyZWNvbW1lbmRlZCk8L3NwYW4+CnBucG0gYWRkIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZwoKPHNwYW4gY2xhc3M9ImhsanMtY29tbWVudCI+IyBVc2luZyBucG08L3NwYW4+Cm5wbSBpbnN0YWxsIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZzwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxoMj5CYXNpYyBVc2FnZTwvaDI+CiAgICAgICAgICAgIDxwPkltcG9ydCBhbmQgdXNlIGNvbXBvbmVudHMgaW4geW91ciBUeXBlU2NyaXB0IGZpbGVzOjwvcD4KICAgICAgICAgICAgPHByZT48Y29kZT48c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5pbXBvcnQ8L3NwYW4+IHsgRGVlc0J1dHRvbiB9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmZyb208L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXN0cmluZyI+J0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyc8L3NwYW4+OwoKPHNwYW4gY2xhc3M9ImhsanMtY29tbWVudCI+Ly8gVXNlIGluIHlvdXIgdGVtcGxhdGVzPC9zcGFuPgpodG1sXGAmbHQ7ZGVlcy1idXR0b24mZ3Q7Q2xpY2sgbWUmbHQ7L2RlZXMtYnV0dG9uJmd0O1xgPC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtdGlwIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPlRpcDo8L3N0cm9uZz4gQ2hlY2sgdGhlIGRlbW8gc2hvd2Nhc2UgZm9yIGxpdmUgZXhhbXBsZXMgb2YgYWxsIGNvbXBvbmVudHMuPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxoMj5BdmFpbGFibGUgQ29tcG9uZW50czwvaDI+CiAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0aD5Db21wb25lbnQ8L3RoPgogICAgICAgICAgICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtYnV0dG9uPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5QcmltYXJ5IGJ1dHRvbiBjb21wb25lbnQ8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtaW5wdXQtdGV4dDwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+VGV4dCBpbnB1dCBmaWVsZDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy10YWJsZTwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+RGF0YSB0YWJsZSB3aXRoIHNvcnRpbmc8L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtbW9kYWw8L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPk1vZGFsIGRpYWxvZzwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICA8aDI+TmV4dCBTdGVwczwvaDI+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGk+RXhwbG9yZSB0aGUgPGEgaHJlZj0iIyI+Y29tcG9uZW50IGRvY3VtZW50YXRpb248L2E+PC9saT4KICAgICAgICAgICAgICA8bGk+Q2hlY2sgb3V0IHRoZSA8YSBocmVmPSIjIj50aGVtaW5nIGd1aWRlPC9hPjwvbGk+CiAgICAgICAgICAgICAgPGxpPkpvaW4gb3VyIDxhIGhyZWY9IiMiPmNvbW11bml0eSBEaXNjb3JkPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8YmxvY2txdW90ZT4KICAgICAgICAgICAgICA8cD4iVGhlIGJlc3QgY29tcG9uZW50IGxpYnJhcnkgaXMgb25lIHRoYXQgZ2V0cyBvdXQgb2YgeW91ciB3YXkuIiBcdTIwMTQgRGVzaWduIFN5c3RlbXMgVGVhbTwvcD4KICAgICAgICAgICAgPC9ibG9ja3F1b3RlPgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYDtmZSgpO0JlKCk7dmFyIFdzMT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LEdzMT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sWXMxPSgoKT0+e2xldCB0PVtjZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKV0sZSxhPVtdLHIsaT1wZTt2YXIgbz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7V3MxKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOnN9LG51bGwsYSksbz1yPWUudmFsdWUscyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpzfSl9c3RhdGljIGRlbW89cE90O3N0YXRpYyBkZW1vR3JvdXA9IldvcmtzcGFjZSI7c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgLm91dGxldCB7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAvKiBIZWFkaW5ncyAqLwogICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yNTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxZjIzMjgiLCIjZjBmNmZjIil9OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07CiAgICAgIH0KCiAgICAgIGg0IHsKICAgICAgICBmb250LXNpemU6IDFlbTsKICAgICAgfQoKICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTsKICAgICAgfQoKICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMC44NWVtOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgIH0KCiAgICAgIC8qIFBhcmFncmFwaHMgYW5kIHRleHQgKi8KICAgICAgcCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAvKiBMaW5rcyAqLwogICAgICBhIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTY5ZGEiLCIjNThhNmZmIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIFN0cm9uZyBhbmQgZW1waGFzaXMgKi8KICAgICAgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzFmMjMyOCIsIiNmMGY2ZmMiKX07CiAgICAgIH0KCiAgICAgIGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC8qIExpc3RzICovCiAgICAgIHVsLCBvbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMmVtOwogICAgICB9CgogICAgICBsaSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICBsaSArIGxpIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIHVsIHVsLCB1bCBvbCwgb2wgdWwsIG9sIG9sIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrcXVvdGVzICovCiAgICAgIGJsb2NrcXVvdGUgewogICAgICAgIG1hcmdpbjogMCAwIDE2cHggMDsKICAgICAgICBwYWRkaW5nOiAwIDFlbTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJHtwLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIElubGluZSBjb2RlICovCiAgICAgIGNvZGUgewogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoInJnYmEoMTc1LCAxODQsIDE5MywgMC4yKSIsInJnYmEoMTEwLCAxMTgsIDEyOSwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9ja3MgKi8KICAgICAgcHJlIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBsaW5lLWhlaWdodDogMS40NTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDsKICAgICAgfQoKICAgICAgcHJlIGNvZGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICAgIHdvcmQtd3JhcDogbm9ybWFsOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBmb250LXNpemU6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgfQoKICAgICAgLyogVGFibGVzICovCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICB0YWJsZSB0aCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdHIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBkMTExNyIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMjEyNjJkIil9OwogICAgICB9CgogICAgICB0YWJsZSB0cjpudGgtY2hpbGQoMm4pIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3AuYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC8qIEhvcml6b250YWwgcnVsZXMgKi8KICAgICAgaHIgewogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAyNHB4IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC8qIEltYWdlcyAqLwogICAgICBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLyogVGFzayBsaXN0cyAqLwogICAgICAudGFzay1saXN0LWl0ZW0gewogICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhc2stbGlzdC1pdGVtIGlucHV0IHsKICAgICAgICBtYXJnaW46IDAgMC4yZW0gMC4yNWVtIC0xLjRlbTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAvKiBEZWZpbml0aW9uIGxpc3RzICovCiAgICAgIGRsIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICBkbCBkdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBkbCBkZCB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIEtleWJvYXJkIGlucHV0ICovCiAgICAgIGtiZCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDNweCA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBsaW5lLWhlaWdodDogMTBweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHtwLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICAvKiBGb290bm90ZXMgKi8KICAgICAgLmZvb3Rub3RlcyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICB9CgogICAgICAvKiBBbGVydHMvQWRtb25pdGlvbnMgKi8KICAgICAgLm1hcmtkb3duLWFsZXJ0IHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtbm90ZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzA5NjlkYSIsIiM1OGE2ZmYiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoInJnYmEoOSwgMTA1LCAyMTgsIDAuMSkiLCJyZ2JhKDU2LCAxMzksIDI1MywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNiZjg3MDAiLCIjZDI5OTIyIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cC5iZFRoZW1lKCJyZ2JhKDE5MSwgMTM1LCAwLCAwLjEpIiwicmdiYSgxODcsIDEyOCwgOSwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzgyNTBkZiIsIiNhMzcxZjciKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoInJnYmEoMTMwLCA4MCwgMjIzLCAwLjEpIiwicmdiYSgxNjMsIDExMywgMjQ3LCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtY2F1dGlvbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiI2NmMjIyZSIsIiNmODUxNDkiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwLmJkVGhlbWUoInJnYmEoMjA3LCAzNCwgNDYsIDAuMSkiLCJyZ2JhKDI0OCwgODEsIDczLCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtdGlwIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjMWE3ZjM3IiwiIzNmYjk1MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3AuYmRUaGVtZSgicmdiYSgyNiwgMTI3LCA1NSwgMC4xKSIsInJnYmEoNDYsIDE2MCwgNjcsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFN5bnRheCBoaWdobGlnaHRpbmcgZm9yIGNvZGUgYmxvY2tzICovCiAgICAgIC5obGpzLWNvbW1lbnQsCiAgICAgIC5obGpzLXF1b3RlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2YTczN2QiLCIjOGI5NDllIil9OwogICAgICB9CgogICAgICAuaGxqcy1rZXl3b3JkLAogICAgICAuaGxqcy1zZWxlY3Rvci10YWcsCiAgICAgIC5obGpzLWFkZGl0aW9uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNkNzNhNDkiLCIjZmY3YjcyIil9OwogICAgICB9CgogICAgICAuaGxqcy1udW1iZXIsCiAgICAgIC5obGpzLXN0cmluZywKICAgICAgLmhsanMtbWV0YSAuaGxqcy1tZXRhLXN0cmluZywKICAgICAgLmhsanMtbGl0ZXJhbCwKICAgICAgLmhsanMtZG9jdGFnLAogICAgICAuaGxqcy1yZWdleHAgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAzMmY2MiIsIiNhNWQ2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLXRpdGxlLAogICAgICAuaGxqcy1zZWN0aW9uLAogICAgICAuaGxqcy1uYW1lLAogICAgICAuaGxqcy1zZWxlY3Rvci1pZCwKICAgICAgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzZmNDJjMSIsIiNkMmE4ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWF0dHJpYnV0ZSwKICAgICAgLmhsanMtYXR0ciwKICAgICAgLmhsanMtdmFyaWFibGUsCiAgICAgIC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLAogICAgICAuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSwKICAgICAgLmhsanMtdHlwZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDA1Y2M1IiwiIzc5YzBmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtc3ltYm9sLAogICAgICAuaGxqcy1idWxsZXQsCiAgICAgIC5obGpzLXN1YnN0LAogICAgICAuaGxqcy1tZXRhLAogICAgICAuaGxqcy1tZXRhIC5obGpzLWtleXdvcmQsCiAgICAgIC5obGpzLXNlbGVjdG9yLWF0dHIsCiAgICAgIC5obGpzLXNlbGVjdG9yLXBzZXVkbywKICAgICAgLmhsanMtbGluayB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjZTM2MjA5IiwiI2ZmYTY1NyIpfTsKICAgICAgfQoKICAgICAgLmhsanMtYnVpbHRfaW4sCiAgICAgIC5obGpzLWRlbGV0aW9uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNiMzFkMjgiLCIjZmZhMTk4Iil9OwogICAgICB9CgogICAgICAuaGxqcy1mb3JtdWxhIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3AuYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWVtcGhhc2lzIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5obGpzLXN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KICAgIGBdO291dGxldDtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0ib3V0bGV0Ij4KICAgICAgICA8aDE+TWFya2Rvd24gUHJldmlldzwvaDE+CiAgICAgICAgPHA+Q29udGVudCB3aWxsIGFwcGVhciBoZXJlIHdoZW4gbWFya2Rvd24gaXMgcGFyc2VkLjwvcD4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChzKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQocyksdGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKX1hc3luYyB1cGRhdGVIdG1sVGV4dChzKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMub3V0bGV0fHwodGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKSksdGhpcy5vdXRsZXQuaW5uZXJIVE1MPXN9c3RhdGlje0dzMShyLGEpfX07cmV0dXJuIG89cn0pKCk7ZmUoKTt2YXIgaE90PSgpPT5NYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke3RlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlZmY2ZmY7CiAgICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMzYjgyZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogIzFlNDBhZjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7CiAgICAgICAgICAgIGNvbG9yOiAjOTNjNWZkOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIExpc3QgSW5wdXQifSAuc3VidGl0bGU9JHsiU2ltcGxlIGxpc3QgbWFuYWdlbWVudCB3aXRoIGFkZCwgZWRpdCwgYW5kIGRlbGV0ZSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTaG9wcGluZyBMaXN0In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaXRlbSB0byB5b3VyIGxpc3QuLi4ifQogICAgICAgICAgLnZhbHVlPSR7WyJNaWxrIiwiQnJlYWQiLCJFZ2dzIiwiQ2hlZXNlIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRG91YmxlLWNsaWNrIHRvIGVkaXQgaXRlbXMsIG9yIHVzZSB0aGUgZWRpdCBidXR0b24ifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAg8J+SoSBEb3VibGUtY2xpY2sgYW55IGl0ZW0gdG8gcXVpY2tseSBlZGl0IGl0IGlubGluZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gU29ydGFibGUgTGlzdCJ9IC5zdWJ0aXRsZT0keyJEcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIgaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiVGFzayBQcmlvcml0eSJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIGEgdGFzay4uLiJ9CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke1siUmV2aWV3IHB1bGwgcmVxdWVzdHMiLCJGaXggY3JpdGljYWwgYnVnIiwiVXBkYXRlIGRvY3VtZW50YXRpb24iLCJEZXBsb3kgdG8gcHJvZHVjdGlvbiIsIlRlYW0gc3RhbmR1cCBtZWV0aW5nIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRHJhZyBpdGVtcyB1c2luZyB0aGUgaGFuZGxlIHRvIHJlb3JkZXIgdGhlbSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5SEIERyYWcgdGhlIGdyaXAgaGFuZGxlIHRvIHJlb3JkZXIgdGFza3MgYnkgcHJpb3JpdHkKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIFZhbGlkYXRpb24gJiBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaXN0cyB3aXRoIG1pbmltdW0vbWF4aW11bSBpdGVtcyBhbmQgZHVwbGljYXRlIHByZXZlbnRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUZWFtIE1lbWJlcnMgKE1pbiAyLCBNYXggNSkifQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHRlYW0gbWVtYmVyLi4uIn0KICAgICAgICAgICAgLm1pbkl0ZW1zPSR7Mn0KICAgICAgICAgICAgLm1heEl0ZW1zPSR7NX0KICAgICAgICAgICAgLnZhbHVlPSR7WyJBbGljZSIsIkJvYiJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCAyLTUgdGVhbSBtZW1iZXJzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVW5pcXVlIFRhZ3MgKE5vIER1cGxpY2F0ZXMpIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCB1bmlxdWUgdGFnLi4uIn0KICAgICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgICAudmFsdWU9JHtbImZyb250ZW5kIiwiYmFja2VuZCIsImRhdGFiYXNlIl19CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEdXBsaWNhdGUgaXRlbXMgYXJlIG5vdCBhbGxvd2VkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIERlbGV0ZSBDb25maXJtYXRpb24ifSAuc3VidGl0bGU9JHsiUmVxdWlyZSBjb25maXJtYXRpb24gYmVmb3JlIGRlbGV0aW5nIGl0ZW1zIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IkltcG9ydGFudCBEb2N1bWVudHMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBkb2N1bWVudCBuYW1lLi4uIn0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtbIkNvbnRyYWN0XzIwMjQucGRmIiwiRmluYW5jaWFsX1JlcG9ydF9RMy54bHN4IiwiUHJvamVjdF9Qcm9wb3NhbC5kb2N4IiwiTWVldGluZ19Ob3Rlcy50eHQiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEZWxldGlvbiByZXF1aXJlcyBjb25maXJtYXRpb24gZm9yIHNhZmV0eSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IGxpc3QgZGlzcGxheSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gRGVmYXVsdHMifQogICAgICAgICAgLnZhbHVlPSR7WyJEZWZhdWx0IFNldHRpbmcgMSIsIkRlZmF1bHQgU2V0dGluZyAyIiwiRGVmYXVsdCBTZXR0aW5nIDMiXX0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoZXNlIGl0ZW1zIGNhbm5vdCBiZSBtb2RpZmllZCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJMaXN0IGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlY2lwZSBOYW1lIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7Ik15IEFtYXppbmcgUmVjaXBlIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsibmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJJbmdyZWRpZW50cyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbmdyZWRpZW50Li4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5ncmVkaWVudHMifQogICAgICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgICAgIC52YWx1ZT0ke1siMiBjdXBzIGZsb3VyIiwiMSBjdXAgc3VnYXIiLCIzIGVnZ3MiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGF0IGxlYXN0IDMgaW5ncmVkaWVudHMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ikluc3RydWN0aW9ucyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbnN0cnVjdGlvbiBzdGVwLi4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgICAgICAudmFsdWU9JHtbIlByZWhlYXQgb3ZlbiB0byAzNTBceEIwRiIsIk1peCBkcnkgaW5ncmVkaWVudHMiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGNvb2tpbmcgaW5zdHJ1Y3Rpb25zIGluIG9yZGVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGVzIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBbnkgc3BlY2lhbCBub3RlcyBvciB0aXBzLi4uIn0KICAgICAgICAgICAgLmtleT0keyJub3RlcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlNhdmUgUmVjaXBlIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gSW50ZXJhY3RpdmUgRGVtbyJ9IC5zdWJ0aXRsZT0keyJCdWlsZCB5b3VyIG93biBmZWF0dXJlIGxpc3QgYW5kIHNlZSB0aGUgZGF0YSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1saXN0IgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgRmVhdHVyZXMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBhIGZlYXR1cmUuLi4ifQogICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyExfQogICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTB9CiAgICAgICAgICBAY2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNsaXN0LWpzb24iKTtpZihlKXtsZXQgYT17aXRlbXM6dC5kZXRhaWwudmFsdWUsY291bnQ6dC5kZXRhaWwudmFsdWUubGVuZ3RoLHRpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9O2UudGV4dENvbnRlbnQ9SlNPTi5zdHJpbmdpZnkoYSxudWxsLDIpfX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ibGlzdC1qc29uIj4KICAgICAgICAgIHsKICAgICAgICAgICAgIml0ZW1zIjogW10sCiAgICAgICAgICAgICJjb3VudCI6IDAsCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9IgogICAgICAgICAgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDinKggQWRkLCBlZGl0LCByZW1vdmUsIGFuZCByZW9yZGVyIGl0ZW1zIHRvIHNlZSB0aGUgSlNPTiBvdXRwdXQgdXBkYXRlIGluIHJlYWwtdGltZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQWR2YW5jZWQgQ29uZmlndXJhdGlvbiJ9IC5zdWJ0aXRsZT0keyJDb21iaW5lIGFsbCBmZWF0dXJlcyBmb3IgY29tcGxleCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBNaWxlc3RvbmVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgbWlsZXN0b25lLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1siUHJvamVjdCBLaWNrb2ZmIC0gV2VlayAxIiwiUmVxdWlyZW1lbnRzIEdhdGhlcmluZyAtIFdlZWsgMi0zIiwiRGVzaWduIFBoYXNlIC0gV2VlayA0LTYiLCJEZXZlbG9wbWVudCBTcHJpbnQgMSAtIFdlZWsgNy05IiwiVGVzdGluZyAmIFFBIC0gV2VlayAxMC0xMSIsIkRlcGxveW1lbnQgLSBXZWVrIDEyIl19CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTJ9CiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJNYW5hZ2UgcHJvamVjdCBtaWxlc3RvbmVzICgzLTEyIGl0ZW1zLCBzb3J0YWJsZSwgbm8gZHVwbGljYXRlcykifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEVtcHR5IFN0YXRlIn0gLnN1YnRpdGxlPSR7IkhvdyB0aGUgY29tcG9uZW50IGxvb2tzIHdpdGggbm8gaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiWW91ciBJZGVhcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiU2hhcmUgeW91ciBpZGVhcy4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJTdGFydCBhZGRpbmcgaXRlbXMgdG8gYnVpbGQgeW91ciBsaXN0In0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYDtmZSgpO0Z0KCk7QmUoKTt2YXIgUTE9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSwkdD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sWnMxPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1pbnB1dC1saXN0IildLGUsYT1bXSxyLGk9WGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W10sSCxMPVtdLGs9W10sTixTPVtdLFQ9W10sUixBPVtdLEY9W10sYWUsVj1bXSxTZT1bXSx6ZSxXPVtdLE5lPVtdLFJlLFg9W10sST1bXSxPLEc9W10saj1bXSxzZSxrZT1bXSxEZT1bXSxPZSxVPVtdLEI9W10sb2UsdmU9W10seWU9W107dmFyICRlPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgbmU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpBcnJheX0pXSxmPVtEKHt0eXBlOlN0cmluZ30pXSxkPVtEKHt0eXBlOk51bWJlcn0pXSxiPVtEKHt0eXBlOk51bWJlcn0pXSx2PVtEKHt0eXBlOkJvb2xlYW59KV0sRT1bRCh7dHlwZTpCb29sZWFufSldLFA9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxIPVtEKHt0eXBlOlN0cmluZ30pXSxOPVtsZSgpXSxSPVtsZSgpXSxhZT1bbGUoKV0semU9W2xlKCldLFJlPVtsZSgpXSxPPVtsZSgpXSxzZT1bbGUoKV0sT2U9W2xlKCldLG9lPVtsZSgpXSxRMSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+InZhbHVlImluIHJlLGdldDpyZT0+cmUudmFsdWUsc2V0OihyZSxnZSk9PntyZS52YWx1ZT1nZX19LG1ldGFkYXRhOm5lfSxzLGwpLFExKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4icGxhY2Vob2xkZXIiaW4gcmUsZ2V0OnJlPT5yZS5wbGFjZWhvbGRlcixzZXQ6KHJlLGdlKT0+e3JlLnBsYWNlaG9sZGVyPWdlfX0sbWV0YWRhdGE6bmV9LGMsdSksUTEodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJtYXhJdGVtcyJpbiByZSxnZXQ6cmU9PnJlLm1heEl0ZW1zLHNldDoocmUsZ2UpPT57cmUubWF4SXRlbXM9Z2V9fSxtZXRhZGF0YTpuZX0saCxnKSxRMSh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Im1pbkl0ZW1zImluIHJlLGdldDpyZT0+cmUubWluSXRlbXMsc2V0OihyZSxnZSk9PntyZS5taW5JdGVtcz1nZX19LG1ldGFkYXRhOm5lfSx4LG0pLFExKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dEdXBsaWNhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImFsbG93RHVwbGljYXRlcyJpbiByZSxnZXQ6cmU9PnJlLmFsbG93RHVwbGljYXRlcyxzZXQ6KHJlLGdlKT0+e3JlLmFsbG93RHVwbGljYXRlcz1nZX19LG1ldGFkYXRhOm5lfSx5LHcpLFExKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic29ydGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4ic29ydGFibGUiaW4gcmUsZ2V0OnJlPT5yZS5zb3J0YWJsZSxzZXQ6KHJlLGdlKT0+e3JlLnNvcnRhYmxlPWdlfX0sbWV0YWRhdGE6bmV9LEMseiksUTEodGhpcyxudWxsLFAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb25maXJtRGVsZXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImNvbmZpcm1EZWxldGUiaW4gcmUsZ2V0OnJlPT5yZS5jb25maXJtRGVsZXRlLHNldDoocmUsZ2UpPT57cmUuY29uZmlybURlbGV0ZT1nZX19LG1ldGFkYXRhOm5lfSxfLCQpLFExKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4idmFsaWRhdGlvblRleHQiaW4gcmUsZ2V0OnJlPT5yZS52YWxpZGF0aW9uVGV4dCxzZXQ6KHJlLGdlKT0+e3JlLnZhbGlkYXRpb25UZXh0PWdlfX0sbWV0YWRhdGE6bmV9LEwsayksUTEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImlucHV0VmFsdWUiaW4gcmUsZ2V0OnJlPT5yZS5pbnB1dFZhbHVlLHNldDoocmUsZ2UpPT57cmUuaW5wdXRWYWx1ZT1nZX19LG1ldGFkYXRhOm5lfSxTLFQpLFExKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGluZ0luZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImVkaXRpbmdJbmRleCJpbiByZSxnZXQ6cmU9PnJlLmVkaXRpbmdJbmRleCxzZXQ6KHJlLGdlKT0+e3JlLmVkaXRpbmdJbmRleD1nZX19LG1ldGFkYXRhOm5lfSxBLEYpLFExKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJlZGl0aW5nVmFsdWUiaW4gcmUsZ2V0OnJlPT5yZS5lZGl0aW5nVmFsdWUsc2V0OihyZSxnZSk9PntyZS5lZGl0aW5nVmFsdWU9Z2V9fSxtZXRhZGF0YTpuZX0sVixTZSksUTEodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImRyYWdnZWRJbmRleCJpbiByZSxnZXQ6cmU9PnJlLmRyYWdnZWRJbmRleCxzZXQ6KHJlLGdlKT0+e3JlLmRyYWdnZWRJbmRleD1nZX19LG1ldGFkYXRhOm5lfSxXLE5lKSxRMSh0aGlzLG51bGwsUmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImRyYWdPdmVySW5kZXgiaW4gcmUsZ2V0OnJlPT5yZS5kcmFnT3ZlckluZGV4LHNldDoocmUsZ2UpPT57cmUuZHJhZ092ZXJJbmRleD1nZX19LG1ldGFkYXRhOm5lfSxYLEkpLFExKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ1N0YXJ0WSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJkcmFnU3RhcnRZImluIHJlLGdldDpyZT0+cmUuZHJhZ1N0YXJ0WSxzZXQ6KHJlLGdlKT0+e3JlLmRyYWdTdGFydFk9Z2V9fSxtZXRhZGF0YTpuZX0sRyxqKSxRMSh0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnQ3VycmVudFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iZHJhZ0N1cnJlbnRZImluIHJlLGdldDpyZT0+cmUuZHJhZ0N1cnJlbnRZLHNldDoocmUsZ2UpPT57cmUuZHJhZ0N1cnJlbnRZPWdlfX0sbWV0YWRhdGE6bmV9LGtlLERlKSxRMSh0aGlzLG51bGwsT2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJ0YXJnZXRJbmRleCJpbiByZSxnZXQ6cmU9PnJlLnRhcmdldEluZGV4LHNldDoocmUsZ2UpPT57cmUudGFyZ2V0SW5kZXg9Z2V9fSxtZXRhZGF0YTpuZX0sVSxCKSxRMSh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpdGVtSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Iml0ZW1IZWlnaHQiaW4gcmUsZ2V0OnJlPT5yZS5pdGVtSGVpZ2h0LHNldDoocmUsZ2UpPT57cmUuaXRlbUhlaWdodD1nZX19LG1ldGFkYXRhOm5lfSx2ZSx5ZSksUTEobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6bmV9LG51bGwsYSksJGU9cj1lLnZhbHVlLG5lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm5lfSl9c3RhdGljIGRlbW89aE90O3N0YXRpYyBkZW1vR3JvdXA9IklucHV0IjsjZT0kdCh0aGlzLHMsW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShuZSl7dGhpcy4jZT1uZX0jdD0oJHQodGhpcyxsKSwkdCh0aGlzLGMsIkFkZCBuZXcgaXRlbS4uLiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIobmUpe3RoaXMuI3Q9bmV9I2E9KCR0KHRoaXMsdSksJHQodGhpcyxoLDApKTtnZXQgbWF4SXRlbXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWF4SXRlbXMobmUpe3RoaXMuI2E9bmV9I3I9KCR0KHRoaXMsZyksJHQodGhpcyx4LDApKTtnZXQgbWluSXRlbXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWluSXRlbXMobmUpe3RoaXMuI3I9bmV9I2k9KCR0KHRoaXMsbSksJHQodGhpcyx5LCExKSk7Z2V0IGFsbG93RHVwbGljYXRlcygpe3JldHVybiB0aGlzLiNpfXNldCBhbGxvd0R1cGxpY2F0ZXMobmUpe3RoaXMuI2k9bmV9I289KCR0KHRoaXMsdyksJHQodGhpcyxDLCExKSk7Z2V0IHNvcnRhYmxlKCl7cmV0dXJuIHRoaXMuI299c2V0IHNvcnRhYmxlKG5lKXt0aGlzLiNvPW5lfSNzPSgkdCh0aGlzLHopLCR0KHRoaXMsXywhMSkpO2dldCBjb25maXJtRGVsZXRlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNvbmZpcm1EZWxldGUobmUpe3RoaXMuI3M9bmV9I249KCR0KHRoaXMsJCksJHQodGhpcyxMLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI259c2V0IHZhbGlkYXRpb25UZXh0KG5lKXt0aGlzLiNuPW5lfSNsPSgkdCh0aGlzLGspLCR0KHRoaXMsUywiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlucHV0VmFsdWUobmUpe3RoaXMuI2w9bmV9I2M9KCR0KHRoaXMsVCksJHQodGhpcyxBLC0xKSk7Z2V0IGVkaXRpbmdJbmRleCgpe3JldHVybiB0aGlzLiNjfXNldCBlZGl0aW5nSW5kZXgobmUpe3RoaXMuI2M9bmV9I2Q9KCR0KHRoaXMsRiksJHQodGhpcyxWLCIiKSk7Z2V0IGVkaXRpbmdWYWx1ZSgpe3JldHVybiB0aGlzLiNkfXNldCBlZGl0aW5nVmFsdWUobmUpe3RoaXMuI2Q9bmV9I2Y9KCR0KHRoaXMsU2UpLCR0KHRoaXMsVywtMSkpO2dldCBkcmFnZ2VkSW5kZXgoKXtyZXR1cm4gdGhpcy4jZn1zZXQgZHJhZ2dlZEluZGV4KG5lKXt0aGlzLiNmPW5lfSN1PSgkdCh0aGlzLE5lKSwkdCh0aGlzLFgsLTEpKTtnZXQgZHJhZ092ZXJJbmRleCgpe3JldHVybiB0aGlzLiN1fXNldCBkcmFnT3ZlckluZGV4KG5lKXt0aGlzLiN1PW5lfSNwPSgkdCh0aGlzLEkpLCR0KHRoaXMsRywwKSk7Z2V0IGRyYWdTdGFydFkoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZHJhZ1N0YXJ0WShuZSl7dGhpcy4jcD1uZX0jaD0oJHQodGhpcyxqKSwkdCh0aGlzLGtlLDApKTtnZXQgZHJhZ0N1cnJlbnRZKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGRyYWdDdXJyZW50WShuZSl7dGhpcy4jaD1uZX0jbT0oJHQodGhpcyxEZSksJHQodGhpcyxVLC0xKSk7Z2V0IHRhcmdldEluZGV4KCl7cmV0dXJuIHRoaXMuI219c2V0IHRhcmdldEluZGV4KG5lKXt0aGlzLiNtPW5lfSNnPSgkdCh0aGlzLEIpLCR0KHRoaXMsdmUsMCkpO2dldCBpdGVtSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2d9c2V0IGl0ZW1IZWlnaHQobmUpe3RoaXMuI2c9bmV9Ym91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj0oJHQodGhpcyx5ZSksbnVsbCk7Ym91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPW51bGw7b3JpZ2luYWxJdGVtUmVjdHM9W107c3RhdGljIHN0eWxlcz1beGUsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubGlzdC1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5saXN0LWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAubGlzdC1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAubGlzdC1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAubGlzdC1pdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogUHJldmVudCBhbmltYXRpb24gZnJvbSBhZmZlY3Rpbmcgc2Nyb2xsIGJvdW5kcyAqLwogICAgICB9CgogICAgICAubGlzdC1pdGVtOmxhc3Qtb2YtdHlwZSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6bm90KC5pcy1kcmFnZ2luZykgLmxpc3QtaXRlbTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk3LjUlKSIsImhzbCgwIDAlIDYuOSUpIil9OwogICAgICB9CgogICAgICAvKiBEcmFnZ2luZyBpdGVtIC0gZm9sbG93cyBjdXJzb3IgKi8KICAgICAgLmxpc3QtaXRlbS5kcmFnZ2luZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTIlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgwLCAwLCAwLCAwLjQpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMTVzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLyogSXRlbXMgdGhhdCBuZWVkIHRvIG1vdmUgdXAgdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtdXAgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0taXRlbS1oZWlnaHQsIDQ4cHgpKSk7CiAgICAgIH0KCiAgICAgIC8qIEl0ZW1zIHRoYXQgbmVlZCB0byBtb3ZlIGRvd24gdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtZG93biB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSk7CiAgICAgIH0KCgogICAgICAuZHJhZy1oYW5kbGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBjdXJzb3I6IG1vdmU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmRyYWctaGFuZGxlOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmRyYWctaGFuZGxlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAuaXRlbS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5pdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAuaXRlbS1lZGl0LWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuaXRlbS1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNhdmUgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNhdmU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uY2FuY2VsIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uY2FuY2VsOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIiwiaHNsKDAgNjIuOCUgNTAuNiUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgNTAuNiUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSA1MC42JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuYWRkLWl0ZW0tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTcuNSUpIiwiaHNsKDAgMCUgNi45JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuYWRkLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDMycHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAyNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAzNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERpc2FibGUgdHJhbnNpdGlvbnMgZHVyaW5nIGRyb3AgdG8gcHJldmVudCBmbGFzaCAqLwogICAgICAubGlzdC1pdGVtcy5kcm9wcGluZyAubGlzdC1pdGVtIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/TWA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJsaXN0LWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlzdC1pdGVtcyI+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZS5sZW5ndGg+MD90aGlzLnZhbHVlLm1hcCgobmUscmUpPT5NYAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJsaXN0LWl0ZW0gJHt0aGlzLmRyYWdnZWRJbmRleD09PXJlPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgZHJhZ2dhYmxlPSIke3RoaXMuc29ydGFibGUmJiF0aGlzLmRpc2FibGVkfSIKICAgICAgICAgICAgICAgIEBkcmFnc3RhcnQ9JHtnZT0+dGhpcy5oYW5kbGVEcmFnU3RhcnQoZ2UscmUpfQogICAgICAgICAgICAgICAgQGRyYWdlbmQ9JHt0aGlzLmhhbmRsZURyYWdFbmR9CiAgICAgICAgICAgICAgICBAZHJhZ292ZXI9JHtnZT0+dGhpcy5oYW5kbGVEcmFnT3ZlcihnZSxyZSl9CiAgICAgICAgICAgICAgICBAZHJvcD0ke2dlPT50aGlzLmhhbmRsZURyb3AoZ2UscmUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7dGhpcy5zb3J0YWJsZSYmIXRoaXMuZGlzYWJsZWQ/TWAKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJhZy1oYW5kbGUiPgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmdyaXBWZXJ0aWNhbCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXg9PT1yZT9NYAogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpdGVtLWVkaXQtaW5wdXQiCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmVkaXRpbmdWYWx1ZX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke2dlPT50aGlzLmVkaXRpbmdWYWx1ZT1nZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke2dlPT50aGlzLmhhbmRsZUVkaXRLZXlEb3duKGdlLHJlKX0KICAgICAgICAgICAgICAgICAgICAgIEBibHVyPSR7KCk9PnRoaXMuc2F2ZUVkaXQocmUpfQogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIGA6TWAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLXRleHQiIEBkYmxjbGljaz0keygpPT4hdGhpcy5kaXNhYmxlZCYmdGhpcy5zdGFydEVkaXQocmUpfT4KICAgICAgICAgICAgICAgICAgICAgICR7bmV9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmVkaXRpbmdJbmRleD09PXJlP01gCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBzYXZlIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlRWRpdChyZSl9PgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2FuY2VsRWRpdCgpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDpNYAogICAgICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjpNYAogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuc3RhcnRFZGl0KHJlKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBlbmNpbCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlSXRlbShyZSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0cmFzaDIifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCk6TWAKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICBObyBpdGVtcyBhZGRlZCB5ZXQKICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4SXRlbXN8fHRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWF4SXRlbXMpP01gCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkZC1pdGVtLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1pbnB1dCIKICAgICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlucHV0VmFsdWV9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQogICAgICAgICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZUFkZEtleURvd259CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0iYWRkLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWRkSXRlbX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmlucHV0VmFsdWUudHJpbSgpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBsdXMifT48L2RlZXMtaWNvbj4gQWRkCiAgICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/TWAKICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkYXRpb24tbWVzc2FnZSI+JHt0aGlzLnZhbGlkYXRpb25UZXh0fTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgCiAgICAgICAgJHt0aGlzLmRlc2NyaXB0aW9uP01gCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+JHt0aGlzLmRlc2NyaXB0aW9ufTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVJbnB1dChuZSl7dGhpcy5pbnB1dFZhbHVlPW5lLnRhcmdldC52YWx1ZX1oYW5kbGVBZGRLZXlEb3duKG5lKXtuZS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpJiYobmUucHJldmVudERlZmF1bHQoKSx0aGlzLmFkZEl0ZW0oKSl9aGFuZGxlRWRpdEtleURvd24obmUscmUpe25lLmtleT09PSJFbnRlciI/KG5lLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlRWRpdChyZSkpOm5lLmtleT09PSJFc2NhcGUiJiYobmUucHJldmVudERlZmF1bHQoKSx0aGlzLmNhbmNlbEVkaXQoKSl9YWRkSXRlbSgpe2xldCBuZT10aGlzLmlucHV0VmFsdWUudHJpbSgpO2lmKCFuZSlyZXR1cm47aWYoIXRoaXMuYWxsb3dEdXBsaWNhdGVzJiZ0aGlzLnZhbHVlLmluY2x1ZGVzKG5lKSl7dGhpcy52YWxpZGF0aW9uVGV4dD0iVGhpcyBpdGVtIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IixzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufWlmKHRoaXMubWF4SXRlbXMmJnRoaXMudmFsdWUubGVuZ3RoPj10aGlzLm1heEl0ZW1zKXt0aGlzLnZhbGlkYXRpb25UZXh0PWBNYXhpbXVtICR7dGhpcy5tYXhJdGVtc30gaXRlbXMgYWxsb3dlZGAsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn10aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLG5lXSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy52YWxpZGF0aW9uVGV4dD0iIjtsZXQgcmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYWRkLWlucHV0Iik7cmUmJihyZS52YWx1ZT0iIixyZS5mb2N1cygpKSx0aGlzLmVtaXRDaGFuZ2UoKX1zdGFydEVkaXQobmUpe3RoaXMuZWRpdGluZ0luZGV4PW5lLHRoaXMuZWRpdGluZ1ZhbHVlPXRoaXMudmFsdWVbbmVdLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCByZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5pdGVtLWVkaXQtaW5wdXQiKTtyZSYmKHJlLmZvY3VzKCkscmUuc2VsZWN0KCkpfSl9c2F2ZUVkaXQobmUpe2xldCByZT10aGlzLmVkaXRpbmdWYWx1ZS50cmltKCk7aWYoIXJlKXt0aGlzLmNhbmNlbEVkaXQoKTtyZXR1cm59aWYoIXRoaXMuYWxsb3dEdXBsaWNhdGVzJiZyZSE9PXRoaXMudmFsdWVbbmVdJiZ0aGlzLnZhbHVlLmluY2x1ZGVzKHJlKSl7dGhpcy52YWxpZGF0aW9uVGV4dD0iVGhpcyBpdGVtIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IixzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufWxldCBnZT1bLi4udGhpcy52YWx1ZV07Z2VbbmVdPXJlLHRoaXMudmFsdWU9Z2UsdGhpcy5lZGl0aW5nSW5kZXg9LTEsdGhpcy5lZGl0aW5nVmFsdWU9IiIsdGhpcy52YWxpZGF0aW9uVGV4dD0iIix0aGlzLmVtaXRDaGFuZ2UoKX1jYW5jZWxFZGl0KCl7dGhpcy5lZGl0aW5nSW5kZXg9LTEsdGhpcy5lZGl0aW5nVmFsdWU9IiJ9YXN5bmMgcmVtb3ZlSXRlbShuZSl7dGhpcy5jb25maXJtRGVsZXRlJiYhYXdhaXQgdGhpcy5zaG93Q29uZmlybURpYWxvZyhgRGVsZXRlICIke3RoaXMudmFsdWVbbmVdfSI/YCl8fCh0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKChyZSxnZSk9PmdlIT09bmUpLHRoaXMuZW1pdENoYW5nZSgpKX1hc3luYyBzaG93Q29uZmlybURpYWxvZyhuZSl7cmV0dXJuIGNvbmZpcm0obmUpfWhhbmRsZURyYWdTdGFydChuZSxyZSl7aWYoIXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWQpcmV0dXJuO3RoaXMuZHJhZ2dlZEluZGV4PXJlLHRoaXMudGFyZ2V0SW5kZXg9cmUsbmUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9Im1vdmUiLG5lLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIixyZS50b1N0cmluZygpKTtsZXQgZ2U9bmV3IEltYWdlO2dlLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQVVFQkFBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSIsbmUuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShnZSwwLDApLHRoaXMuZHJhZ1N0YXJ0WT1uZS5jbGllbnRZLHRoaXMuZHJhZ0N1cnJlbnRZPW5lLmNsaWVudFk7bGV0IEVlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKSxydD1BcnJheS5mcm9tKEVlPy5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIil8fFtdKTtydFtyZV0mJih0aGlzLml0ZW1IZWlnaHQ9cnRbcmVdLm9mZnNldEhlaWdodCksdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1ydC5tYXAodWU9PnVlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxFZT8uY2xhc3NMaXN0LmFkZCgiaXMtZHJhZ2dpbmciKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXI9dGhpcy5oYW5kbGVHbG9iYWxEcmFnT3Zlci5iaW5kKHRoaXMpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPXRoaXMuaGFuZGxlR2xvYmFsRHJhZ0VuZC5iaW5kKHRoaXMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kKX1oYW5kbGVHbG9iYWxEcmFnT3ZlcihuZSl7aWYobmUucHJldmVudERlZmF1bHQoKSx0aGlzLmRyYWdnZWRJbmRleD09PS0xKXJldHVybjt0aGlzLmRyYWdDdXJyZW50WT1uZS5jbGllbnRZO2xldCByZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik7aWYoIXJlKXJldHVybjtsZXQgZ2U9QXJyYXkuZnJvbShyZS5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIikpLEVlPWdlW3RoaXMuZHJhZ2dlZEluZGV4XTtpZighRWUpcmV0dXJuO2xldCBydD10aGlzLmRyYWdDdXJyZW50WS10aGlzLmRyYWdTdGFydFk7RWUuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVZKCR7cnR9cHgpYDtsZXQgdWU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF07aWYoIXVlKXJldHVybjtsZXQgWj11ZS50b3ArdWUuaGVpZ2h0LzIrcnQsSj10aGlzLmRyYWdnZWRJbmRleDtmb3IobGV0IGRlPTA7ZGU8Z2UubGVuZ3RoO2RlKyspe2lmKGRlPT09dGhpcy5kcmFnZ2VkSW5kZXgpY29udGludWU7bGV0IEFlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbZGVdO2lmKCFBZSljb250aW51ZTtsZXQgSGU9QWUudG9wK0FlLmhlaWdodC8yO2lmKGdlW2RlXS5jbGFzc0xpc3QuY29udGFpbnMoIm1vdmUtdXAiKT9IZS09dGhpcy5pdGVtSGVpZ2h0OmdlW2RlXS5jbGFzc0xpc3QuY29udGFpbnMoIm1vdmUtZG93biIpJiYoSGUrPXRoaXMuaXRlbUhlaWdodCksWjxIZSYmZGU8dGhpcy5kcmFnZ2VkSW5kZXgpe0o9ZGU7YnJlYWt9ZWxzZSBaPkhlJiZkZT50aGlzLmRyYWdnZWRJbmRleCYmKEo9ZGUpfUohPT10aGlzLnRhcmdldEluZGV4JiYodGhpcy50YXJnZXRJbmRleD1KLHRoaXMudXBkYXRlSXRlbVBvc2l0aW9ucyhnZSkpfXVwZGF0ZUl0ZW1Qb3NpdGlvbnMobmUpe2xldCByZT10aGlzLmRyYWdnZWRJbmRleCxnZT10aGlzLnRhcmdldEluZGV4LEVlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKTtFZSYmRWUuc3R5bGUuc2V0UHJvcGVydHkoIi0taXRlbS1oZWlnaHQiLGAke3RoaXMuaXRlbUhlaWdodH1weGApLG5lLmZvckVhY2goKHJ0LHVlKT0+e3VlIT09cmUmJihydC5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIikscnQuc3R5bGUuc2V0UHJvcGVydHkoIi0taXRlbS1oZWlnaHQiLGAke3RoaXMuaXRlbUhlaWdodH1weGApLHJlPGdlP3VlPnJlJiZ1ZTw9Z2UmJnJ0LmNsYXNzTGlzdC5hZGQoIm1vdmUtdXAiKTpyZT5nZSYmdWU+PWdlJiZ1ZTxyZSYmcnQuY2xhc3NMaXN0LmFkZCgibW92ZS1kb3duIikpfSl9aGFuZGxlR2xvYmFsRHJhZ0VuZCgpe3RoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXIpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj1udWxsKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZD1udWxsKTtsZXQgbmU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpLHJlPW5lPy5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIiksZ2U9cmU/Llt0aGlzLmRyYWdnZWRJbmRleF07aWYodGhpcy5kcmFnZ2VkSW5kZXg9PT0tMXx8dGhpcy50YXJnZXRJbmRleD09PS0xfHx0aGlzLmRyYWdnZWRJbmRleD09PXRoaXMudGFyZ2V0SW5kZXgpe2lmKGdlJiZ0aGlzLmRyYWdnZWRJbmRleCE9PS0xKXtnZS5zdHlsZS50cmFuc2l0aW9uPSJ0cmFuc2Zvcm0gMC4xNXMgZWFzZSIsZ2Uuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIjtsZXQgZGU9ITEsQWU9KCk9PntkZXx8KGRlPSEwLGdlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLEFlKSx0aGlzLmNsZWFudXBEcmFnU3RhdGUobmUscmUpKX07Z2UuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsQWUse29uY2U6ITB9KSxzZXRUaW1lb3V0KEFlLDIwMCl9ZWxzZSB0aGlzLmNsZWFudXBEcmFnU3RhdGUobmUscmUpO3JldHVybn1sZXQgRWU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF0scnQ9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLnRhcmdldEluZGV4XTtpZighRWV8fCFydHx8IWdlKXt0aGlzLmNsZWFudXBEcmFnU3RhdGUobmUscmUpO3JldHVybn1sZXQgdWU7dGhpcy50YXJnZXRJbmRleD50aGlzLmRyYWdnZWRJbmRleD91ZT1ydC5ib3R0b20tRWUuYm90dG9tOnVlPXJ0LnRvcC1FZS50b3AsZ2Uuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLGdlLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke3VlfXB4KWA7bGV0IFo9ITEsSj0oKT0+e2lmKFopcmV0dXJuO1o9ITAsZ2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsSiksbmU/LmNsYXNzTGlzdC5hZGQoImRyb3BwaW5nIiksbmU/Lm9mZnNldEhlaWdodCxyZT8uZm9yRWFjaChIZT0+e0hlLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iLCJkcmFnZ2luZyIpLEhlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2Zvcm0iKSxIZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNpdGlvbiIpfSk7bGV0IGRlPVsuLi50aGlzLnZhbHVlXSxbQWVdPWRlLnNwbGljZSh0aGlzLmRyYWdnZWRJbmRleCwxKTtkZS5zcGxpY2UodGhpcy50YXJnZXRJbmRleCwwLEFlKSx0aGlzLnZhbHVlPWRlLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMuZHJhZ2dlZEluZGV4PS0xLHRoaXMuZHJhZ092ZXJJbmRleD0tMSx0aGlzLnRhcmdldEluZGV4PS0xLHRoaXMuZHJhZ1N0YXJ0WT0wLHRoaXMuZHJhZ0N1cnJlbnRZPTAsdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1bXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgSGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIik7SGU/LmZvckVhY2goTXQ9PntNdC5zdHlsZS50cmFuc2l0aW9uPSJub25lIn0pLHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKT8ub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e0hlPy5mb3JFYWNoKE10PT57TXQuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLG5lPy5jbGFzc0xpc3QucmVtb3ZlKCJkcm9wcGluZyIsImlzLWRyYWdnaW5nIil9KX0pfTtnZS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixKLHtvbmNlOiEwfSksc2V0VGltZW91dChKLDIwMCl9Y2xlYW51cERyYWdTdGF0ZShuZSxyZSl7bmU/LmNsYXNzTGlzdC5hZGQoImRyb3BwaW5nIiksbmU/Lm9mZnNldEhlaWdodCxyZT8uZm9yRWFjaChnZT0+e2dlLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iLCJkcmFnZ2luZyIpLGdlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2Zvcm0iKSxnZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNpdGlvbiIpfSksdGhpcy5kcmFnZ2VkSW5kZXg9LTEsdGhpcy5kcmFnT3ZlckluZGV4PS0xLHRoaXMudGFyZ2V0SW5kZXg9LTEsdGhpcy5kcmFnU3RhcnRZPTAsdGhpcy5kcmFnQ3VycmVudFk9MCx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPVtdLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBnZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKTtnZT8uZm9yRWFjaChFZT0+e0VlLnN0eWxlLnRyYW5zaXRpb249Im5vbmUifSksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpPy5vZmZzZXRIZWlnaHQscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Z2U/LmZvckVhY2goRWU9PntFZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNpdGlvbiIpfSksbmU/LmNsYXNzTGlzdC5yZW1vdmUoImRyb3BwaW5nIiwiaXMtZHJhZ2dpbmciKX0pfSl9aGFuZGxlRHJhZ0VuZCgpe3RoaXMuaGFuZGxlR2xvYmFsRHJhZ0VuZCgpfWhhbmRsZURyYWdPdmVyKG5lLHJlKXshdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZHx8KG5lLnByZXZlbnREZWZhdWx0KCksbmUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9Im1vdmUiKX1oYW5kbGVEcmFnTGVhdmUoKXt9aGFuZGxlRHJvcChuZSxyZSl7IXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWR8fG5lLnByZXZlbnREZWZhdWx0KCl9ZW1pdENoYW5nZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKG5lKXt0aGlzLnZhbHVlPW5lfHxbXX1hc3luYyB2YWxpZGF0ZSgpe3JldHVybiB0aGlzLnJlcXVpcmVkJiYoIXRoaXMudmFsdWV8fHRoaXMudmFsdWUubGVuZ3RoPT09MCk/KHRoaXMudmFsaWRhdGlvblRleHQ9IkF0IGxlYXN0IG9uZSBpdGVtIGlzIHJlcXVpcmVkIiwhMSk6dGhpcy5taW5JdGVtcyYmdGhpcy52YWx1ZS5sZW5ndGg8dGhpcy5taW5JdGVtcz8odGhpcy52YWxpZGF0aW9uVGV4dD1gQXQgbGVhc3QgJHt0aGlzLm1pbkl0ZW1zfSBpdGVtcyByZXF1aXJlZGAsITEpOih0aGlzLnZhbGlkYXRpb25UZXh0PSIiLCEwKX1zdGF0aWN7JHQocixhKX19O3JldHVybiAkZT1yfSkoKTtmZSgpO3ZhciBtT3Q9KCk9Pk1gCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7dGVgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJpY2ggVGV4dCBFZGl0b3IifSAuc3VidGl0bGU9JHsiQSBmdWxsLWZlYXR1cmVkIHJpY2ggdGV4dCBlZGl0b3Igd2l0aCBmb3JtYXR0aW5nIHRvb2xiYXIifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJBcnRpY2xlIENvbnRlbnQifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDE+V2VsY29tZSB0byB0aGUgUmljaCBUZXh0IEVkaXRvciE8L2gxPjxwPlRoaXMgaXMgYSBmZWF0dXJlLXJpY2ggZWRpdG9yIGJ1aWx0IHdpdGggVGlwVGFwLiBZb3UgY2FuOjwvcD48dWw+PGxpPjxzdHJvbmc+Rm9ybWF0IHRleHQ8L3N0cm9uZz4gd2l0aCA8ZW0+dmFyaW91czwvZW0+IDx1PnN0eWxlczwvdT48L2xpPjxsaT5DcmVhdGUgZGlmZmVyZW50IGhlYWRpbmcgbGV2ZWxzPC9saT48bGk+QWRkIDxhIGhyZWY9Imh0dHBzOi8vZXhhbXBsZS5jb20iPmxpbmtzPC9hPiB0byBleHRlcm5hbCByZXNvdXJjZXM8L2xpPjxsaT5Xcml0ZSA8Y29kZT5pbmxpbmUgY29kZTwvY29kZT4gb3IgY29kZSBibG9ja3M8L2xpPjwvdWw+PGJsb2NrcXVvdGU+PHA+VXNlIHRoZSB0b29sYmFyIGFib3ZlIHRvIGV4cGxvcmUgYWxsIHRoZSBmb3JtYXR0aW5nIG9wdGlvbnMgYXZhaWxhYmxlITwvcD48L2Jsb2NrcXVvdGU+PHA+U3RhcnQgdHlwaW5nIHRvIHNlZSB0aGUgbWFnaWMgaGFwcGVuLi4uPC9wPid9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXNlIHRoZSB0b29sYmFyIHRvIGZvcm1hdCB5b3VyIGNvbnRlbnQgd2l0aCBoZWFkaW5ncywgbGlzdHMsIGxpbmtzLCBhbmQgbW9yZSJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBXaXRoIFBsYWNlaG9sZGVyIn0gLnN1YnRpdGxlPSR7IkVtcHR5IGVkaXRvciB3aXRoIHBsYWNlaG9sZGVyIHRleHQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJCbG9nIFBvc3QifSAKICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTdGFydCB3cml0aW5nIHlvdXIgYmxvZyBwb3N0IGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gRGlmZmVyZW50IEhlaWdodHMifSAuc3VidGl0bGU9JHsiRWRpdG9ycyB3aXRoIGRpZmZlcmVudCBtaW5pbXVtIGhlaWdodHMgZm9yIHZhcmlvdXMgdXNlIGNhc2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTaG9ydCBOb3RlIn0gCiAgICAgICAgICAgIC5taW5IZWlnaHQ9JHsxNTB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJRdWljayBub3RlLi4uIn0KICAgICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiRXh0ZW5kZWQgQ29udGVudCJ9IAogICAgICAgICAgICAubWluSGVpZ2h0PSR7MzAwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiV3JpdGUgeW91ciBleHRlbmRlZCBjb250ZW50IGhlcmUuLi4ifQogICAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIENvZGUgRXhhbXBsZXMifSAuc3VidGl0bGU9JHsiRWRpdG9yIHByZS1maWxsZWQgd2l0aCBjb2RlIGV4YW1wbGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiVGVjaG5pY2FsIERvY3VtZW50YXRpb24ifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+SW5zdGFsbGF0aW9uIEd1aWRlPC9oMj48cD5UbyBpbnN0YWxsIHRoZSBwYWNrYWdlLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOjwvcD48cHJlPjxjb2RlPm5wbSBpbnN0YWxsIEBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZzwvY29kZT48L3ByZT48cD5UaGVuIGltcG9ydCB0aGUgY29tcG9uZW50IGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlOjwvcD48cHJlPjxjb2RlPmltcG9ydCB7IERlZXNJbnB1dFJpY2h0ZXh0IH0gZnJvbSAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIjs8L2NvZGU+PC9wcmU+PHA+WW91IGNhbiBub3cgdXNlIHRoZSA8Y29kZT4mbHQ7ZGVlcy1pbnB1dC1yaWNodGV4dCZndDs8L2NvZGU+IGVsZW1lbnQgaW4geW91ciB0ZW1wbGF0ZXMuPC9wPid9CiAgICAgICAgICAubWluSGVpZ2h0PSR7MjUwfQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IHJpY2ggdGV4dCBjb250ZW50In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAubGFiZWw9JHsiUHVibGlzaGVkIEFydGljbGUgKFJlYWQgT25seSkifSAKICAgICAgICAgIC52YWx1ZT0keyc8aDI+VGhlIEZ1dHVyZSBvZiBXZWIgQ29tcG9uZW50czwvaDI+PHA+V2ViIENvbXBvbmVudHMgaGF2ZSByZXZvbHV0aW9uaXplZCBob3cgd2UgYnVpbGQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMuLi48L3A+PGJsb2NrcXVvdGU+PHA+IlRoZSBmdXR1cmUgb2Ygd2ViIGRldmVsb3BtZW50IGxpZXMgaW4gcmV1c2FibGUsIGVuY2Fwc3VsYXRlZCBjb21wb25lbnRzLiI8L3A+PC9ibG9ja3F1b3RlPid9CiAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEludGVyYWN0aXZlIERlbW8ifSAuc3VidGl0bGU9JHsiVHlwZSBpbiB0aGUgZWRpdG9yIGJlbG93IGFuZCBzZWUgdGhlIEhUTUwgb3V0cHV0In0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtZWRpdG9yIgogICAgICAgICAgLmxhYmVsPSR7IlRyeSBpdCB5b3Vyc2VsZiJ9IAogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlR5cGUgc29tZXRoaW5nIGhlcmUuLi4ifQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICAgIEBjaGFuZ2U9JHt0PT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3Iik7ZSYmKGUudGV4dENvbnRlbnQ9dC5kZXRhaWwudmFsdWUpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ib3V0cHV0LXByZXZpZXciPgogICAgICAgICAgPGVtPkhUTUwgb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmA7ZmUoKTt2YXIgZ090PVsuLi5YZS5iYXNlU3R5bGVzLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmb250LWZhbWlseTogSW50ZXIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAubGFiZWwgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgbWluLWhlaWdodDogJHtwLmJkVGhlbWUoIjIwMHB4IiwiMjAwcHgiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250YWluZXI6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250YWluZXIuZm9jdXNlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci10b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tbWluLWhlaWdodCwgMjAwcHgpOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgbWluLWhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwIHsKICAgICAgICBtYXJnaW46IDAuNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcDpmaXJzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDEgewogICAgICAgIGZvbnQtc2l6ZTogMmVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGgzIHsKICAgICAgICBmb250LXNpemU6IDEuMjVlbTsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBtYXJnaW46IDFlbSAwIDAuNWVtIDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciB1bCwKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBvbCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVlbTsKICAgICAgICBtYXJnaW46IDAuNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgbGkgewogICAgICAgIG1hcmdpbjogMC4yNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYmxvY2txdW90ZSB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnRmlyYSBDb2RlJywgJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgJ1JvYm90byBNb25vJywgQ29uc29sYXMsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDFlbTsKICAgICAgICBtYXJnaW46IDFlbSAwOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcHJlIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGEgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGE6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDQxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA2OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItZm9vdGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAud29yZC1jb3VudCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC5zaG93IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAubGluay1pbnB1dCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmVkaXRvci1jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudG9vbGJhci1idXR0b24sCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGBdO2ZlKCk7dmFyIHhPdD10PT5NYAogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICAgJHt0LmxhYmVsP01gPGxhYmVsIGNsYXNzPSJsYWJlbCI+JHt0LmxhYmVsfTwvbGFiZWw+YDoiIn0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1jb250YWluZXIgJHt0LmVkaXRvcj8uaXNGb2N1c2VkPyJmb2N1c2VkIjoiIn0iIHN0eWxlPSItLW1pbi1oZWlnaHQ6ICR7dC5taW5IZWlnaHR9cHgiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItdG9vbGJhciI+CiAgICAgICAgICAgICAgJHt0LnJlbmRlclRvb2xiYXIoKX0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0ICR7dC5zaG93TGlua0lucHV0PyJzaG93IjoiIn0iPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InVybCIgcGxhY2Vob2xkZXI9IkVudGVyIFVSTC4uLiIgQGtleWRvd249JHt0LmhhbmRsZUxpbmtJbnB1dEtleWRvd259IC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWlucHV0LWJ1dHRvbnMiPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJwcmltYXJ5IiBAY2xpY2s9JHt0LnNhdmVMaW5rfT5TYXZlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7dC5yZW1vdmVMaW5rfT5SZW1vdmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHt0LmhpZGVMaW5rSW5wdXR9PkNhbmNlbDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGVudCI+PC9kaXY+CiAgICAgICAgICAgICR7dC5zaG93V29yZENvdW50P01gCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1mb290ZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3b3JkLWNvdW50Ij4ke3Qud29yZENvdW50fSB3b3JkJHt0LndvcmRDb3VudCE9PTE/InMiOiIifTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3QuZGVzY3JpcHRpb24/TWA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+JHt0LmRlc2NyaXB0aW9ufTwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA7RnQoKTtmZSgpO2VjKCk7dmFyIG5jPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0seGE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LFhzMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtaW5wdXQtcmljaHRleHQiKV0sZSxhPVtdLHIsaT1YZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXSx2LHk9W10sdz1bXSxFLEM9W10sej1bXTt2YXIgUD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxmPVtEKHt0eXBlOlN0cmluZ30pXSxkPVtEKHt0eXBlOkJvb2xlYW59KV0sYj1bRCh7dHlwZTpOdW1iZXJ9KV0sdj1bbGUoKV0sRT1bbGUoKV0sbmModGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InZhbHVlImluICQsZ2V0OiQ9PiQudmFsdWUsc2V0OigkLEgpPT57JC52YWx1ZT1IfX0sbWV0YWRhdGE6X30scyxsKSxuYyh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4icGxhY2Vob2xkZXIiaW4gJCxnZXQ6JD0+JC5wbGFjZWhvbGRlcixzZXQ6KCQsSCk9PnskLnBsYWNlaG9sZGVyPUh9fSxtZXRhZGF0YTpffSxjLHUpLG5jKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dvcmRDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InNob3dXb3JkQ291bnQiaW4gJCxnZXQ6JD0+JC5zaG93V29yZENvdW50LHNldDooJCxIKT0+eyQuc2hvd1dvcmRDb3VudD1IfX0sbWV0YWRhdGE6X30saCxnKSxuYyh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+Im1pbkhlaWdodCJpbiAkLGdldDokPT4kLm1pbkhlaWdodCxzZXQ6KCQsSCk9PnskLm1pbkhlaWdodD1IfX0sbWV0YWRhdGE6X30seCxtKSxuYyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5rSW5wdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJzaG93TGlua0lucHV0ImluICQsZ2V0OiQ9PiQuc2hvd0xpbmtJbnB1dCxzZXQ6KCQsSCk9PnskLnNob3dMaW5rSW5wdXQ9SH19LG1ldGFkYXRhOl99LHksdyksbmModGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJ3b3JkQ291bnQiaW4gJCxnZXQ6JD0+JC53b3JkQ291bnQsc2V0OigkLEgpPT57JC53b3JkQ291bnQ9SH19LG1ldGFkYXRhOl99LEMseiksbmMobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxhKSxQPXI9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1tT3Q7c3RhdGljIGRlbW9Hcm91cD0iSW5wdXQiOyNlPXhhKHRoaXMscywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKF8pe3RoaXMuI2U9X30jdD0oeGEodGhpcyxsKSx4YSh0aGlzLGMsIiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoXyl7dGhpcy4jdD1ffSNhPSh4YSh0aGlzLHUpLHhhKHRoaXMsaCwhMCkpO2dldCBzaG93V29yZENvdW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dXb3JkQ291bnQoXyl7dGhpcy4jYT1ffSNyPSh4YSh0aGlzLGcpLHhhKHRoaXMseCwyMDApKTtnZXQgbWluSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1pbkhlaWdodChfKXt0aGlzLiNyPV99I2k9KHhhKHRoaXMsbSkseGEodGhpcyx5LCExKSk7Z2V0IHNob3dMaW5rSW5wdXQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd0xpbmtJbnB1dChfKXt0aGlzLiNpPV99I289KHhhKHRoaXMsdykseGEodGhpcyxDLDApKTtnZXQgd29yZENvdW50KCl7cmV0dXJuIHRoaXMuI299c2V0IHdvcmRDb3VudChfKXt0aGlzLiNvPV99ZWRpdG9yRWxlbWVudD14YSh0aGlzLHopO2xpbmtJbnB1dEVsZW1lbnQ7dGlwdGFwQnVuZGxlPW51bGw7ZWRpdG9yO3N0YXRpYyBzdHlsZXM9Z090O3JlbmRlcigpe3JldHVybiB4T3QodGhpcyl9cmVuZGVyVG9vbGJhcigpe2xldCBfPXRoaXMuZ2V0VG9vbGJhckJ1dHRvbnMoKTtyZXR1cm4gTWAKICAgICAgJHtfLm1hcCgkPT4kLmlzRGl2aWRlcj9NYDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+YDpNYAogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHskLmlzQWN0aXZlPy4oKT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0keyQuYWN0aW9ufQogICAgICAgICAgICB0aXRsZT0keyQudGl0bGV9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR8fCF0aGlzLmVkaXRvcn0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyQuaWNvbn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgIGB9Z2V0VG9vbGJhckJ1dHRvbnMoKXtyZXR1cm4gdGhpcy5lZGl0b3I/W3tuYW1lOiJib2xkIixpY29uOiJsdWNpZGU6Ym9sZCIsdGl0bGU6IkJvbGQgKEN0cmwrQikiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJvbGQoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImJvbGQiKX0se25hbWU6Iml0YWxpYyIsaWNvbjoibHVjaWRlOml0YWxpYyIsdGl0bGU6Ikl0YWxpYyAoQ3RybCtJKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSXRhbGljKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJpdGFsaWMiKX0se25hbWU6InVuZGVybGluZSIsaWNvbjoibHVjaWRlOnVuZGVybGluZSIsdGl0bGU6IlVuZGVybGluZSAoQ3RybCtVKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlVW5kZXJsaW5lKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJ1bmRlcmxpbmUiKX0se25hbWU6InN0cmlrZSIsaWNvbjoibHVjaWRlOnN0cmlrZXRocm91Z2giLHRpdGxlOiJTdHJpa2V0aHJvdWdoIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVTdHJpa2UoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoInN0cmlrZSIpfSx7bmFtZToiZGl2aWRlcjEiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImgxIixpY29uOiJsdWNpZGU6aGVhZGluZzEiLHRpdGxlOiJIZWFkaW5nIDEiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUhlYWRpbmcoe2xldmVsOjF9KS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImhlYWRpbmciLHtsZXZlbDoxfSl9LHtuYW1lOiJoMiIsaWNvbjoibHVjaWRlOmhlYWRpbmcyIix0aXRsZToiSGVhZGluZyAyIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoyfSkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6Mn0pfSx7bmFtZToiaDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyIsdGl0bGU6IkhlYWRpbmcgMyIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7bGV2ZWw6M30pLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaGVhZGluZyIse2xldmVsOjN9KX0se25hbWU6ImRpdmlkZXIyIix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJidWxsZXRMaXN0IixpY29uOiJsdWNpZGU6bGlzdCIsdGl0bGU6IkJ1bGxldCBMaXN0IixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCdWxsZXRMaXN0KCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJidWxsZXRMaXN0Iil9LHtuYW1lOiJvcmRlcmVkTGlzdCIsaWNvbjoibHVjaWRlOmxpc3RPcmRlcmVkIix0aXRsZToiTnVtYmVyZWQgTGlzdCIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlT3JkZXJlZExpc3QoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIm9yZGVyZWRMaXN0Iil9LHtuYW1lOiJibG9ja3F1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUiLHRpdGxlOiJRdW90ZSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQmxvY2txdW90ZSgpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYmxvY2txdW90ZSIpfSx7bmFtZToiY29kZSIsaWNvbjoibHVjaWRlOmNvZGUiLHRpdGxlOiJDb2RlIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVDb2RlKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJjb2RlIil9LHtuYW1lOiJjb2RlQmxvY2siLGljb246Imx1Y2lkZTpmaWxlQ29kZSIsdGl0bGU6IkNvZGUgQmxvY2siLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGVCbG9jaygpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZUJsb2NrIil9LHtuYW1lOiJkaXZpZGVyMyIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToibGluayIsaWNvbjoibHVjaWRlOmxpbmsiLHRpdGxlOiJBZGQgTGluayIsYWN0aW9uOigpPT50aGlzLnRvZ2dsZUxpbmsoKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImxpbmsiKX0se25hbWU6ImFsaWduTGVmdCIsaWNvbjoibHVjaWRlOmFsaWduTGVmdCIsdGl0bGU6IkFsaWduIExlZnQiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldFRleHRBbGlnbigibGVmdCIpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSh7dGV4dEFsaWduOiJsZWZ0In0pfSx7bmFtZToiYWxpZ25DZW50ZXIiLGljb246Imx1Y2lkZTphbGlnbkNlbnRlciIsdGl0bGU6IkFsaWduIENlbnRlciIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJjZW50ZXIiKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoiY2VudGVyIn0pfSx7bmFtZToiYWxpZ25SaWdodCIsaWNvbjoibHVjaWRlOmFsaWduUmlnaHQiLHRpdGxlOiJBbGlnbiBSaWdodCIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJyaWdodCIpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSh7dGV4dEFsaWduOiJyaWdodCJ9KX0se25hbWU6ImRpdmlkZXI0Iix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJ1bmRvIixpY29uOiJsdWNpZGU6dW5kbyIsdGl0bGU6IlVuZG8gKEN0cmwrWikiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnVuZG8oKS5ydW4oKX0se25hbWU6InJlZG8iLGljb246Imx1Y2lkZTpyZWRvIix0aXRsZToiUmVkbyAoQ3RybCtZKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkucmVkbygpLnJ1bigpfV06W119YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnRpcHRhcEJ1bmRsZT1hd2FpdCBIMi5nZXRJbnN0YW5jZSgpLmxvYWRUaXB0YXAoKSx0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0b3ItY29udGVudCIpLHRoaXMubGlua0lucHV0RWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmxpbmstaW5wdXQgaW5wdXQiKSx0aGlzLmluaXRpYWxpemVFZGl0b3IoKX1pbml0aWFsaXplRWRpdG9yKCl7aWYodGhpcy5kaXNhYmxlZHx8IXRoaXMudGlwdGFwQnVuZGxlKXJldHVybjtsZXR7RWRpdG9yOl8sU3RhcnRlcktpdDokLFVuZGVybGluZTpILFRleHRBbGlnbjpMLExpbms6ayxUeXBvZ3JhcGh5Ok59PXRoaXMudGlwdGFwQnVuZGxlO3RoaXMuZWRpdG9yPW5ldyBfKHtlbGVtZW50OnRoaXMuZWRpdG9yRWxlbWVudCxleHRlbnNpb25zOlskLmNvbmZpZ3VyZSh7aGVhZGluZzp7bGV2ZWxzOlsxLDIsM119fSksSC5jb25maWd1cmUoe30pLEwuY29uZmlndXJlKHt0eXBlczpbImhlYWRpbmciLCJwYXJhZ3JhcGgiXX0pLGsuY29uZmlndXJlKHtvcGVuT25DbGljazohMSxIVE1MQXR0cmlidXRlczp7Y2xhc3M6ImVkaXRvci1saW5rIn19KSxOLmNvbmZpZ3VyZSh7fSldLGNvbnRlbnQ6dGhpcy52YWx1ZXx8KHRoaXMucGxhY2Vob2xkZXI/YDxwPiR7dGhpcy5wbGFjZWhvbGRlcn08L3A+YDoiIiksb25VcGRhdGU6KHtlZGl0b3I6U30pPT57dGhpcy52YWx1ZT1TLmdldEhUTUwoKSx0aGlzLnVwZGF0ZVdvcmRDb3VudCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImlucHV0Iix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0sb25TZWxlY3Rpb25VcGRhdGU6KCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sb25Gb2N1czooKT0+e3RoaXMucmVxdWVzdFVwZGF0ZSgpfSxvbkJsdXI6KCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX19KSx0aGlzLnVwZGF0ZVdvcmRDb3VudCgpfXVwZGF0ZVdvcmRDb3VudCgpe2lmKCF0aGlzLmVkaXRvcilyZXR1cm47bGV0IF89dGhpcy5lZGl0b3IuZ2V0VGV4dCgpO3RoaXMud29yZENvdW50PV8udHJpbSgpP18udHJpbSgpLnNwbGl0KC9ccysvKS5sZW5ndGg6MH10b2dnbGVMaW5rKCl7aWYodGhpcy5lZGl0b3IpaWYodGhpcy5lZGl0b3IuaXNBY3RpdmUoImxpbmsiKSl7bGV0IF89dGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcygibGluayIpLmhyZWY7dGhpcy5zaG93TGlua0lucHV0PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMubGlua0lucHV0RWxlbWVudCYmKHRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZT1ffHwiIix0aGlzLmxpbmtJbnB1dEVsZW1lbnQuZm9jdXMoKSx0aGlzLmxpbmtJbnB1dEVsZW1lbnQuc2VsZWN0KCkpfSl9ZWxzZSB0aGlzLnNob3dMaW5rSW5wdXQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5saW5rSW5wdXRFbGVtZW50JiYodGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlPSIiLHRoaXMubGlua0lucHV0RWxlbWVudC5mb2N1cygpKX0pfXNhdmVMaW5rKCl7aWYoIXRoaXMuZWRpdG9yfHwhdGhpcy5saW5rSW5wdXRFbGVtZW50KXJldHVybjtsZXQgXz10aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU7XyYmdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldExpbmsoe2hyZWY6X30pLnJ1bigpLHRoaXMuaGlkZUxpbmtJbnB1dCgpfXJlbW92ZUxpbmsoKXt0aGlzLmVkaXRvciYmKHRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS51bnNldExpbmsoKS5ydW4oKSx0aGlzLmhpZGVMaW5rSW5wdXQoKSl9aGlkZUxpbmtJbnB1dCgpe3RoaXMuc2hvd0xpbmtJbnB1dD0hMSx0aGlzLmVkaXRvcj8uY29tbWFuZHMuZm9jdXMoKX1oYW5kbGVMaW5rSW5wdXRLZXlkb3duKF8pe18ua2V5PT09IkVudGVyIj8oXy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUxpbmsoKSk6Xy5rZXk9PT0iRXNjYXBlIiYmKF8ucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZGVMaW5rSW5wdXQoKSl9c2V0VmFsdWUoXyl7dGhpcy52YWx1ZT1fLHRoaXMuZWRpdG9yJiZfIT09dGhpcy5lZGl0b3IuZ2V0SFRNTCgpJiZ0aGlzLmVkaXRvci5jb21tYW5kcy5zZXRDb250ZW50KF8pfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9Y2xlYXIoKXt0aGlzLnNldFZhbHVlKCIiKX1mb2N1cygpe3RoaXMuZWRpdG9yPy5jb21tYW5kcy5mb2N1cygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmVkaXRvciYmdGhpcy5lZGl0b3IuZGVzdHJveSgpfXN0YXRpY3t4YShyLGEpfX07cmV0dXJuIFA9cn0pKCk7ZmUoKTt2YXIgYk90LHZPdD0oKT0+TShiT3R8fChiT3Q9aGMoW2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgYCxgCiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgIC5tYXhUYWdzPWAsYAogICAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgLm1heFRhZ3M9YCxgCiAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRpc2FibGVkPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgICAgIC5tYXhUYWdzPWAsYAogICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAuaW5wdXRUeXBlPWAsYAogICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PWAsYD48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICBpZD0iaW50ZXJhY3RpdmUtdGFncyIKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIEBjaGFuZ2U9YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRhZy1wcmV2aWV3IiBpZD0idGFncy1wcmV2aWV3Ij4KICAgICAgICAgIDxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJ0YWdzLWpzb24iPgogICAgICAgICAgPGVtPkpTT04gb3V0cHV0IHdpbGwgYXBwZWFyIGhlcmUuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAvLyBVcGRhdGUgSlNPTiBwcmV2aWV3CiAgICAgICAgICBjb25zdCB0YWdzSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaW50ZXJhY3RpdmUtdGFncycpOwogICAgICAgICAgdGFnc0lucHV0Py5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4gewogICAgICAgICAgICBjb25zdCBqc29uUHJldmlldyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0YWdzLWpzb24nKTsKICAgICAgICAgICAgaWYgKGpzb25QcmV2aWV3KSB7CiAgICAgICAgICAgICAganNvblByZXZpZXcudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShlLmRldGFpbC52YWx1ZSwgbnVsbCwgMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIDxcL3NjcmlwdD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgXSkpLHRlYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRhZy1wcmV2aWV3IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmYWZiOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC50YWctcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZjI5Mzc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50YWctcHJldmlldy1pdGVtIHsKICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2UwZTdmZjsKICAgICAgICAgIGNvbG9yOiAjNDMzOGNhOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLnRhZy1wcmV2aWV3LWl0ZW0gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzEyZTgxOwogICAgICAgICAgICBjb2xvcjogI2M3ZDJmZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGAsIjEuIEJhc2ljIFRhZ3MgSW5wdXQiLCJTaW1wbGUgdGFnIGlucHV0IHdpdGggY29tbW9uIHByb2dyYW1taW5nIGxhbmd1YWdlcyIsIlByb2dyYW1taW5nIExhbmd1YWdlcyIsIkFkZCBhIGxhbmd1YWdlLi4uIixbIkphdmFTY3JpcHQiLCJUeXBlU2NyaXB0IiwiUHl0aG9uIiwiR28iXSwiUHJlc3MgRW50ZXIgb3IgY29tbWEgdG8gYWRkIHRhZ3MiLCIyLiBUYWdzIHdpdGggU3VnZ2VzdGlvbnMiLCJBdXRvLWNvbXBsZXRlIHN1Z2dlc3Rpb25zIGZvciBmYXN0ZXIgaW5wdXQiLCJUZWNoIFN0YWNrIiwiVHlwZSB0byBzZWUgc3VnZ2VzdGlvbnMuLi4iLFsiUmVhY3QiLCJWdWUiLCJBbmd1bGFyIiwiU3ZlbHRlIiwiTGl0IiwiTmV4dC5qcyIsIk51eHQiLCJTdmVsdGVLaXQiLCJOb2RlLmpzIiwiRGVubyIsIkJ1biIsIkV4cHJlc3MiLCJGYXN0aWZ5IiwiTmVzdC5qcyIsIktvYSIsIk1vbmdvREIiLCJQb3N0Z3JlU1FMIiwiUmVkaXMiLCJNeVNRTCIsIlNRTGl0ZSIsIkNhc3NhbmRyYSIsIkRvY2tlciIsIkt1YmVybmV0ZXMiLCJBV1MiLCJBenVyZSIsIkdDUCIsIlZlcmNlbCIsIk5ldGxpZnkiXSxbIlJlYWN0IiwiTm9kZS5qcyIsIlBvc3RncmVTUUwiLCJEb2NrZXIiXSwiU3RhcnQgdHlwaW5nIHRvIHNlZSBzdWdnZXN0aW9ucyBmcm9tIHBvcHVsYXIgdGVjaG5vbG9naWVzIiwiMy4gTGltaXRlZCBUYWdzIiwiUmVzdHJpY3QgdGhlIG51bWJlciBvZiB0YWdzIHVzZXJzIGNhbiBhZGQiLCJUb3AgMyBTa2lsbHMiLCJBZGQgdXAgdG8gMyBza2lsbHMuLi4iLDMsWyJEZXNpZ24iLCJEZXZlbG9wbWVudCJdLCJNYXhpbXVtIDMgdGFncyBhbGxvd2VkIiwiQ2F0ZWdvcmllcyAoTWF4IDUpIiwiU2VsZWN0IGNhdGVnb3JpZXMuLi4iLDUsWyJCbG9nIiwiVHV0b3JpYWwiLCJOZXdzIiwiUmV2aWV3IiwiR3VpZGUiLCJDYXNlIFN0dWR5IiwiSW50ZXJ2aWV3Il0sWyJUdXRvcmlhbCIsIkd1aWRlIl0sIkNob29zZSB1cCB0byA1IGNhdGVnb3JpZXMiLCI0LiBSZXF1aXJlZCAmIFZhbGlkYXRpb24iLCJUYWdzIGlucHV0IHdpdGggdmFsaWRhdGlvbiByZXF1aXJlbWVudHMiLCJQcm9qZWN0IFRhZ3MiLCJBZGQgYXQgbGVhc3Qgb25lIHRhZy4uLiIsITAsIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQgLSBhZGQgYXQgbGVhc3Qgb25lIHRhZyIsIjUuIERpc2FibGVkIFN0YXRlIiwiUmVhZC1vbmx5IHRhZ3MgZGlzcGxheSIsIlN5c3RlbSBUYWdzIixbIlN5c3RlbSIsIlByb3RlY3RlZCIsIlJlYWQtT25seSIsIkFyY2hpdmUiXSwhMCwiVGhlc2UgdGFncyBjYW5ub3QgYmUgbW9kaWZpZWQiLCI2LiBGb3JtIEludGVncmF0aW9uIiwiVGFncyBpbnB1dCB3b3JraW5nIHdpdGhpbiBhIGZvcm0gY29udGV4dCIsIlByb2plY3QgTmFtZSIsIk15IEF3ZXNvbWUgUHJvamVjdCIsITAsIm5hbWUiLCJUZWNobm9sb2dpZXMgVXNlZCIsIkFkZCB0ZWNobm9sb2dpZXMuLi4iLCEwLCJ0ZWNobm9sb2dpZXMiLFsiVHlwZVNjcmlwdCIsIkphdmFTY3JpcHQiLCJQeXRob24iLCJHbyIsIlJ1c3QiLCJSZWFjdCIsIlZ1ZSIsIkFuZ3VsYXIiLCJTdmVsdGUiLCJOb2RlLmpzIiwiRGVubyIsIkV4cHJlc3MiLCJGYXN0QVBJIl0sIlByb2plY3QgVGFncyIsIkFkZCBkZXNjcmlwdGl2ZSB0YWdzLi4uIiwidGFncyIsMTAsWyJmcm9udGVuZCIsImJhY2tlbmQiLCJmdWxsc3RhY2siLCJtb2JpbGUiLCJkZXNrdG9wIiwid2ViIiwiYXBpIiwiZGF0YWJhc2UiLCJkZXZvcHMiLCJ1aS91eCIsIm9wZW5zb3VyY2UiLCJzYWFzIiwiZW50ZXJwcmlzZSIsInN0YXJ0dXAiXSwiRGVzY3JpcHRpb24iLCJ0ZXh0YXJlYSIsIkRlc2NyaWJlIHlvdXIgcHJvamVjdC4uLiIsImRlc2NyaXB0aW9uIiwiQ3JlYXRlIFByb2plY3QiLCI3LiBJbnRlcmFjdGl2ZSBEZW1vIiwiQWRkIHRhZ3MgYW5kIHNlZSB0aGVtIGNvbGxlY3RlZCBpbiByZWFsLXRpbWUiLCJZb3VyIEludGVyZXN0cyIsIlR5cGUgeW91ciBpbnRlcmVzdHMuLi4iLFsiTXVzaWMiLCJNb3ZpZXMiLCJCb29rcyIsIlRyYXZlbCIsIlBob3RvZ3JhcGh5IiwiQ29va2luZyIsIkdhbWluZyIsIlNwb3J0cyIsIkFydCIsIlRlY2hub2xvZ3kiLCJGYXNoaW9uIiwiRml0bmVzcyIsIk5hdHVyZSIsIlNjaWVuY2UiLCJIaXN0b3J5Il0sdD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0YWdzLXByZXZpZXciKSxhPXQuZGV0YWlsLnZhbHVlO2UmJihhLmxlbmd0aD09PTA/ZS5pbm5lckhUTUw9JzxlbSBzdHlsZT0iY29sb3I6ICM5OTk7Ij5ObyB0YWdzIGFkZGVkIHlldC4uLjwvZW0+JzplLmlubmVySFRNTD1hLm1hcChyPT5gPHNwYW4gY2xhc3M9InRhZy1wcmV2aWV3LWl0ZW0iPiR7cn08L3NwYW4+YCkuam9pbigiIikpfSk7ZmUoKTtGdCgpO0JlKCk7dmFyIEppPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sYzI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LFFzMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtaW5wdXQtdGFncyIpXSxlLGE9W10scixpPVhlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdLEUsQz1bXSx6PVtdLFAsXz1bXSwkPVtdLEgsTD1bXSxrPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgUz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOkFycmF5fSldLGY9W0Qoe3R5cGU6U3RyaW5nfSldLGQ9W0Qoe3R5cGU6TnVtYmVyfSldLGI9W0Qoe3R5cGU6QXJyYXl9KV0sdj1bbGUoKV0sRT1bbGUoKV0sUD1bbGUoKV0sSD1bRCh7dHlwZTpTdHJpbmd9KV0sSmkodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VD0+InZhbHVlImluIFQsZ2V0OlQ9PlQudmFsdWUsc2V0OihULFIpPT57VC52YWx1ZT1SfX0sbWV0YWRhdGE6U30scyxsKSxKaSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4icGxhY2Vob2xkZXIiaW4gVCxnZXQ6VD0+VC5wbGFjZWhvbGRlcixzZXQ6KFQsUik9PntULnBsYWNlaG9sZGVyPVJ9fSxtZXRhZGF0YTpTfSxjLHUpLEppKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4VGFncyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VD0+Im1heFRhZ3MiaW4gVCxnZXQ6VD0+VC5tYXhUYWdzLHNldDooVCxSKT0+e1QubWF4VGFncz1SfX0sbWV0YWRhdGE6U30saCxnKSxKaSh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN1Z2dlc3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4ic3VnZ2VzdGlvbnMiaW4gVCxnZXQ6VD0+VC5zdWdnZXN0aW9ucyxzZXQ6KFQsUik9PntULnN1Z2dlc3Rpb25zPVJ9fSxtZXRhZGF0YTpTfSx4LG0pLEppKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5wdXRWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VD0+ImlucHV0VmFsdWUiaW4gVCxnZXQ6VD0+VC5pbnB1dFZhbHVlLHNldDooVCxSKT0+e1QuaW5wdXRWYWx1ZT1SfX0sbWV0YWRhdGE6U30seSx3KSxKaSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTdWdnZXN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VD0+InNob3dTdWdnZXN0aW9ucyJpbiBULGdldDpUPT5ULnNob3dTdWdnZXN0aW9ucyxzZXQ6KFQsUik9PntULnNob3dTdWdnZXN0aW9ucz1SfX0sbWV0YWRhdGE6U30sQyx6KSxKaSh0aGlzLG51bGwsUCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpUPT4iaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgiaW4gVCxnZXQ6VD0+VC5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCxzZXQ6KFQsUik9PntULmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PVJ9fSxtZXRhZGF0YTpTfSxfLCQpLEppKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlQ9PiJ2YWxpZGF0aW9uVGV4dCJpbiBULGdldDpUPT5ULnZhbGlkYXRpb25UZXh0LHNldDooVCxSKT0+e1QudmFsaWRhdGlvblRleHQ9Un19LG1ldGFkYXRhOlN9LEwsayksSmkobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6U30sbnVsbCxhKSxOPXI9ZS52YWx1ZSxTJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlN9KX1zdGF0aWMgZGVtbz12T3Q7c3RhdGljIGRlbW9Hcm91cD0iSW5wdXQiOyNlPWMyKHRoaXMscyxbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFMpe3RoaXMuI2U9U30jdD0oYzIodGhpcyxsKSxjMih0aGlzLGMsIkFkZCB0YWdzLi4uIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiN0fXNldCBwbGFjZWhvbGRlcihTKXt0aGlzLiN0PVN9I2E9KGMyKHRoaXMsdSksYzIodGhpcyxoLDApKTtnZXQgbWF4VGFncygpe3JldHVybiB0aGlzLiNhfXNldCBtYXhUYWdzKFMpe3RoaXMuI2E9U30jcj0oYzIodGhpcyxnKSxjMih0aGlzLHgsW10pKTtnZXQgc3VnZ2VzdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc3VnZ2VzdGlvbnMoUyl7dGhpcy4jcj1TfSNpPShjMih0aGlzLG0pLGMyKHRoaXMseSwiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlucHV0VmFsdWUoUyl7dGhpcy4jaT1TfSNvPShjMih0aGlzLHcpLGMyKHRoaXMsQywhMSkpO2dldCBzaG93U3VnZ2VzdGlvbnMoKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd1N1Z2dlc3Rpb25zKFMpe3RoaXMuI289U30jcz0oYzIodGhpcyx6KSxjMih0aGlzLF8sLTEpKTtnZXQgaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgoKXtyZXR1cm4gdGhpcy4jc31zZXQgaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgoUyl7dGhpcy4jcz1TfSNuPShjMih0aGlzLCQpLGMyKHRoaXMsTCwiIikpO2dldCB2YWxpZGF0aW9uVGV4dCgpe3JldHVybiB0aGlzLiNufXNldCB2YWxpZGF0aW9uVGV4dChTKXt0aGlzLiNuPVN9c3RhdGljIHN0eWxlcz1beGUsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHRleHQ7CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtwLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudGFnIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUgLyAwLjIpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUgLyAwLjMpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSAvIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGFuaW1hdGlvbjogdGFnQXBwZWFyIDAuMTVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgdGFnQXBwZWFyIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgNDYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDU0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDgpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDgpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICB9CgogICAgICAudGFnLXJlbW92ZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgfQoKICAgICAgLnRhZy1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgfQoKICAgICAgLnRhZy1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAudGFnLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAvKiBTdWdnZXN0aW9ucyBkcm9wZG93biAqLwogICAgICAuc3VnZ2VzdGlvbnMtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbi5oaWdobGlnaHRlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBEZXNjcmlwdGlvbiBzdHlsZXMgKi8KICAgICAgLmRlc2NyaXB0aW9uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IFM9dGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoVD0+IXRoaXMudmFsdWUuaW5jbHVkZXMoVCkmJlQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSkpO3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/TWA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJzdWdnZXN0aW9ucy1jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0idGFncy1jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZUNvbnRhaW5lckNsaWNrfQogICAgICAgICAgPgogICAgICAgICAgICAke3RoaXMudmFsdWUubWFwKFQ9Pk1gCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFnIj4KICAgICAgICAgICAgICAgIDxzcGFuPiR7VH08L3NwYW4+CiAgICAgICAgICAgICAgICAke3RoaXMuZGlzYWJsZWQ/IiI6TWAKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFnLXJlbW92ZSIgQGNsaWNrPSR7Uj0+dGhpcy5yZW1vdmVUYWcoUixUKX0+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgICAgICAKICAgICAgICAgICAgJHshdGhpcy5kaXNhYmxlZCYmKCF0aGlzLm1heFRhZ3N8fHRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWF4VGFncyk/TWAKICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBjbGFzcz0idGFnLWlucHV0IgogICAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuaW5wdXRWYWx1ZX0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3RoaXMuaGFuZGxlSW5wdXR9CiAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlS2V5RG93bn0KICAgICAgICAgICAgICAgIEBmb2N1cz0ke3RoaXMuaGFuZGxlRm9jdXN9CiAgICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMuaGFuZGxlQmx1cn0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7dGhpcy5zaG93U3VnZ2VzdGlvbnMmJlMubGVuZ3RoPjA/TWAKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VnZ2VzdGlvbnMtZHJvcGRvd24iPgogICAgICAgICAgICAgICR7Uy5tYXAoKFQsUik9Pk1gCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJzdWdnZXN0aW9uICR7Uj09PXRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg/ImhpZ2hsaWdodGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHtBPT57QS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkVGFnKFQpfX0KICAgICAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9JHsoKT0+dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD1SfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke1R9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/TWAKICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkYXRpb24tbWVzc2FnZSI+JHt0aGlzLnZhbGlkYXRpb25UZXh0fTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgCiAgICAgICAgJHt0aGlzLmRlc2NyaXB0aW9uP01gCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+JHt0aGlzLmRlc2NyaXB0aW9ufTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVDb250YWluZXJDbGljayhTKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtsZXQgVD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWctaW5wdXQiKTtUJiZTLnRhcmdldCE9PVQmJlQuZm9jdXMoKX1oYW5kbGVJbnB1dChTKXtsZXQgVD1TLnRhcmdldDtpZih0aGlzLmlucHV0VmFsdWU9VC52YWx1ZSx0aGlzLmlucHV0VmFsdWUuaW5jbHVkZXMoIiwiKXx8dGhpcy5pbnB1dFZhbHVlLmluY2x1ZGVzKCI7Iikpe2xldCBSPXRoaXMuaW5wdXRWYWx1ZS5yZXBsYWNlKC9bLDtdL2csIiIpLnRyaW0oKTtSJiZ0aGlzLmFkZFRhZyhSKX19aGFuZGxlS2V5RG93bihTKXtsZXQgVD1TLnRhcmdldDtpZihTLmtleT09PSJFbnRlciIpaWYoUy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg+PTAmJnRoaXMuc2hvd1N1Z2dlc3Rpb25zKXtsZXQgUj10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihBPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhBKSYmQS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7Ult0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4XSYmdGhpcy5hZGRUYWcoUlt0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4XSl9ZWxzZSB0aGlzLmlucHV0VmFsdWUudHJpbSgpJiZ0aGlzLmFkZFRhZyh0aGlzLmlucHV0VmFsdWUudHJpbSgpKTtlbHNlIGlmKFMua2V5PT09IkJhY2tzcGFjZSImJiF0aGlzLmlucHV0VmFsdWUmJnRoaXMudmFsdWUubGVuZ3RoPjApdGhpcy5yZW1vdmVUYWcoUyx0aGlzLnZhbHVlW3RoaXMudmFsdWUubGVuZ3RoLTFdKTtlbHNlIGlmKFMua2V5PT09IkFycm93RG93biImJnRoaXMuc2hvd1N1Z2dlc3Rpb25zKXtTLnByZXZlbnREZWZhdWx0KCk7bGV0IFI9dGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoQT0+IXRoaXMudmFsdWUuaW5jbHVkZXMoQSkmJkEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSkpLmxlbmd0aDt0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PU1hdGgubWluKHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgrMSxSLTEpfWVsc2UgUy5rZXk9PT0iQXJyb3dVcCImJnRoaXMuc2hvd1N1Z2dlc3Rpb25zPyhTLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD1NYXRoLm1heCh0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4LTEsMCkpOlMua2V5PT09IkVzY2FwZSImJih0aGlzLnNob3dTdWdnZXN0aW9ucz0hMSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PS0xKX1oYW5kbGVGb2N1cygpe3RoaXMuc3VnZ2VzdGlvbnMubGVuZ3RoPjAmJih0aGlzLnNob3dTdWdnZXN0aW9ucz0hMCl9aGFuZGxlQmx1cigpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLnNob3dTdWdnZXN0aW9ucz0hMSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PS0xfSwyMDApfWFkZFRhZyhTKXtpZighU3x8dGhpcy52YWx1ZS5pbmNsdWRlcyhTKXx8dGhpcy5tYXhUYWdzJiZ0aGlzLnZhbHVlLmxlbmd0aD49dGhpcy5tYXhUYWdzKXJldHVybjt0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLFNdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLnNob3dTdWdnZXN0aW9ucz0hMSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PS0xO2xldCBUPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhZy1pbnB1dCIpO1QmJihULnZhbHVlPSIiKSx0aGlzLmVtaXRDaGFuZ2UoKX1yZW1vdmVUYWcoUyxUKXtTLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIoUj0+UiE9PVQpLHRoaXMuZW1pdENoYW5nZSgpfWVtaXRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShTKXt0aGlzLnZhbHVlPVN8fFtdfWFzeW5jIHZhbGlkYXRlKCl7cmV0dXJuIHRoaXMucmVxdWlyZWQmJighdGhpcy52YWx1ZXx8dGhpcy52YWx1ZS5sZW5ndGg9PT0wKT8odGhpcy52YWxpZGF0aW9uVGV4dD0iQXQgbGVhc3Qgb25lIHRhZyBpcyByZXF1aXJlZCIsITEpOih0aGlzLnZhbGlkYXRpb25UZXh0PSIiLCEwKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksYzIodGhpcyxrKX1zdGF0aWN7YzIocixhKX19O3JldHVybiBOPXJ9KSgpO2ZlKCk7dmFyIEtzMT0oKT0+e2xldCB0PURhdGUubm93KCk7cmV0dXJuW3tpZDpgdGl0bGUtJHt0fWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJTeXN0ZW0gUGVyZm9ybWFuY2UgUmVwb3J0In0se2lkOmBkYXRlLSR7dCsxfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OmBHZW5lcmF0ZWQgb246ICR7bmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpfWB9LHtpZDpgc3VtbWFyeS1oZWFkaW5nLSR7dCsyfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJFeGVjdXRpdmUgU3VtbWFyeSJ9LHtpZDpgc3VtbWFyeS0ke3QrM31gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiVGhpcyByZXBvcnQgcHJvdmlkZXMgYW4gYW5hbHlzaXMgb2Ygc3lzdGVtIHBlcmZvcm1hbmNlIG1ldHJpY3Mgb3ZlciB0aGUgbGFzdCAzMCBkYXlzLiJ9LHtpZDpgbWV0cmljcy1oZWFkaW5nLSR7dCs0fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJLZXkgTWV0cmljcyJ9LHtpZDpgbWV0cmljcy1saXN0LSR7dCs1fWAsdHlwZToibGlzdCIsY29udGVudDpgQXZlcmFnZSByZXNwb25zZSB0aW1lOiAxMjRtcwpVcHRpbWU6IDk5Ljk3JQpDUFUgdXRpbGl6YXRpb246IDQ1JQpNZW1vcnkgdXNhZ2U6IDIuM0dCIC8gOEdCYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YGFuYWx5c2lzLWhlYWRpbmctJHt0KzZ9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IlBlcmZvcm1hbmNlIEFuYWx5c2lzIn0se2lkOmBhbmFseXNpcy1xdW90ZS0ke3QrN31gLHR5cGU6InF1b3RlIixjb250ZW50OiJTeXN0ZW0gcGVyZm9ybWFuY2UgcmVtYWlucyB3aXRoaW4gYWNjZXB0YWJsZSBwYXJhbWV0ZXJzIHdpdGggcm9vbSBmb3Igb3B0aW1pemF0aW9uIGluIG1lbW9yeSBtYW5hZ2VtZW50LiJ9LHtpZDpgY29kZS1oZWFkaW5nLSR7dCs4fWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJTYW1wbGUgUXVlcnkgUGVyZm9ybWFuY2UifSx7aWQ6YGNvZGUtYmxvY2stJHt0Kzl9YCx0eXBlOiJjb2RlIixjb250ZW50OmBTRUxFQ1QgQVZHKHJlc3BvbnNlX3RpbWUpIGFzIGF2Z190aW1lLAogICAgICAgQ09VTlQoKikgYXMgdG90YWxfcmVxdWVzdHMsCiAgICAgICBEQVRFKGNyZWF0ZWRfYXQpIGFzIGRhdGUKRlJPTSBwZXJmb3JtYW5jZV9sb2dzCldIRVJFIGNyZWF0ZWRfYXQgPj0gTk9XKCkgLSBJTlRFUlZBTCAzMCBEQVkKR1JPVVAgQlkgREFURShjcmVhdGVkX2F0KQpPUkRFUiBCWSBkYXRlIERFU0M7YCxtZXRhZGF0YTp7bGFuZ3VhZ2U6InNxbCJ9fSx7aWQ6YGRpdmlkZXItJHt0KzEwfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOmBmb290ZXItJHt0KzExfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJSZXBvcnQgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgU3lzdGVtIE1vbml0b3IgdjIuNS4wIn1dfSxKczE9KCk9PntsZXQgdD1EYXRlLm5vdygpO3JldHVyblt7aWQ6YHJlY2lwZS10aXRsZS0ke3R9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6IkNsYXNzaWMgTWFyZ2hlcml0YSBQaXp6YSJ9LHtpZDpgcmVjaXBlLWludHJvLSR7dCsxfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJBIHRyYWRpdGlvbmFsIEl0YWxpYW4gcGl6emEgd2l0aCBmcmVzaCBiYXNpbCwgbW96emFyZWxsYSwgYW5kIHRvbWF0byBzYXVjZS4ifSx7aWQ6YGluZ3JlZGllbnRzLWhlYWRpbmctJHt0KzJ9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6Ilx1ezFGMzU1fSBJbmdyZWRpZW50cyJ9LHtpZDpgZG91Z2gtaGVhZGluZy0ke3QrM31gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiRm9yIHRoZSBEb3VnaDoifSx7aWQ6YGRvdWdoLWxpc3QtJHt0KzR9YCx0eXBlOiJsaXN0Iixjb250ZW50OmA1MDBnIHRpcG8gIjAwIiBmbG91cgozMjVtbCB3YXJtIHdhdGVyCjEwZyBzYWx0CjdnIGFjdGl2ZSBkcnkgeWVhc3QKMiB0YnNwIG9saXZlIG9pbGAsbWV0YWRhdGE6e2xpc3RUeXBlOiJidWxsZXQifX0se2lkOmB0b3BwaW5ncy1oZWFkaW5nLSR7dCs1fWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OiJGb3IgdGhlIFRvcHBpbmdzOiJ9LHtpZDpgdG9wcGluZ3MtbGlzdC0ke3QrNn1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YDQwMGcgY2FubmVkIFNhbiBNYXJ6YW5vIHRvbWF0b2VzCjI1MGcgZnJlc2ggbW96emFyZWxsYQpGcmVzaCBiYXNpbCBsZWF2ZXMKRXh0cmEgdmlyZ2luIG9saXZlIG9pbApTYWx0IGFuZCBwZXBwZXIgdG8gdGFzdGVgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgaW5zdHJ1Y3Rpb25zLWhlYWRpbmctJHt0Kzd9YCx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6Ilx1ezFGNDY4fVx1MjAwRFx1ezFGMzczfSBJbnN0cnVjdGlvbnMifSx7aWQ6YHN0ZXBzLWxpc3QtJHt0Kzh9YCx0eXBlOiJsaXN0Iixjb250ZW50OmBEaXNzb2x2ZSB5ZWFzdCBpbiB3YXJtIHdhdGVyIGFuZCBsZXQgc3RhbmQgZm9yIDUgbWludXRlcwpNaXggZmxvdXIgYW5kIHNhbHQsIGNyZWF0ZSBhIHdlbGwgaW4gY2VudGVyCkFkZCB5ZWFzdCBtaXh0dXJlIGFuZCBvbGl2ZSBvaWwKS25lYWQgZm9yIDEwIG1pbnV0ZXMgdW50aWwgc21vb3RoCkxldCByaXNlIGZvciAxLTIgaG91cnMgdW50aWwgZG91YmxlZApQdW5jaCBkb3duIGFuZCBkaXZpZGUgaW50byBwb3J0aW9ucwpSb2xsIG91dCBlYWNoIHBvcnRpb24gdG8gMTItaW5jaCBjaXJjbGVzClRvcCB3aXRoIGNydXNoZWQgdG9tYXRvZXMsIG1venphcmVsbGEsIGFuZCBiYXNpbApCYWtlIGF0IDQ3NVx4QjBGICgyNDVceEIwQykgZm9yIDEwLTEyIG1pbnV0ZXNgLG1ldGFkYXRhOntsaXN0VHlwZToib3JkZXJlZCJ9fSx7aWQ6YHRpcC0ke3QrOX1gLHR5cGU6InF1b3RlIixjb250ZW50OiJQcm8gdGlwOiBGb3IgYW4gYXV0aGVudGljIHRhc3RlLCB1c2UgYSBwaXp6YSBzdG9uZSBhbmQgcHJlaGVhdCBpdCBpbiB0aGUgb3ZlbiBmb3IgYXQgbGVhc3QgMzAgbWludXRlcyBiZWZvcmUgYmFraW5nLiJ9LHtpZDpgZGl2aWRlci0ke3QrMTB9YCx0eXBlOiJkaXZpZGVyIixjb250ZW50OiIifSx7aWQ6YHNlcnZpbmdzLSR7dCsxMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiU2VydmluZ3M6IDQgcGl6emFzIHwgUHJlcCB0aW1lOiAyIGhvdXJzIHwgQ29vayB0aW1lOiAxMiBtaW51dGVzIn1dfSxlbjE9dD0+e2xldCBlPXt9O3JldHVybiBlLmJhc2ljPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1iYXNpYyIpLGUuYXJ0aWNsZT10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItYXJ0aWNsZSIpLGUuZHJhZ0Ryb3A9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWRyYWdkcm9wIiksZS50dXRvcmlhbD10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItdHV0b3JpYWwiKSxlLm1lZXRpbmc9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLW1lZXRpbmciKSxlLnJlY2lwZT10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItcmVjaXBlIiksZS50ZWNobmljYWw9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXRlY2huaWNhbCIpLGUuZm9ybUludGVncmF0aW9uPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1mb3JtLWludGVncmF0aW9uIiksZS5wcm9ncmFtbWF0aWM9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXByb2dyYW1tYXRpYyIpLGUuZXhwb3J0RGVtbz10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZXhwb3J0IiksZX0sdG4xPSh0LGUpPT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLWdlbmVyYXRlLXJlcG9ydCIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLWdlbmVyYXRlLXJlY2lwZSIpLGk9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLWNsZWFyLWVkaXRvciIpO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5pbXBvcnRCbG9ja3MoS3MxKCkpfSksciYmci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmltcG9ydEJsb2NrcyhKczEoKSl9KSxpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuaW1wb3J0QmxvY2tzKFtdKX0pfSxhbjE9KHQsZSk9PntsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LWJsb2NrcyIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLWV4cG9ydC1odG1sIiksaT10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tZXhwb3J0LW1hcmtkb3duIiksbz10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tc2F2ZS1zdGF0ZSIpLHM9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLXJlc3RvcmUtc3RhdGUiKSxsPW51bGw7YSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgZj1lLmV4cG9ydEJsb2NrcygpO2NvbnNvbGUubG9nKCJFeHBvcnRlZCBibG9ja3M6IixmKSxhbGVydChgRXhwb3J0ZWQgJHtmLmxlbmd0aH0gYmxvY2tzIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy5gKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IGY9ZS5leHBvcnRBc0h0bWwoKTtjb25zb2xlLmxvZygiSFRNTCBFeHBvcnQ6IixmKSxhbGVydCgiSFRNTCBleHBvcnRlZCB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuIil9KSxpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBmPWUuZXhwb3J0QXNNYXJrZG93bigpO2NvbnNvbGUubG9nKCJNYXJrZG93biBFeHBvcnQ6IixmKSxhbGVydCgiTWFya2Rvd24gZXhwb3J0ZWQgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLiIpfSksbyYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsPWUuZXhwb3J0U3RhdGUoKSxjb25zb2xlLmxvZygiU2F2ZWQgc3RhdGU6IixsKSxhbGVydCgiRWRpdG9yIHN0YXRlIHNhdmVkISIpfSkscyYmcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsPyhlLmltcG9ydFN0YXRlKGwpLGFsZXJ0KCJFZGl0b3Igc3RhdGUgcmVzdG9yZWQhIikpOmFsZXJ0KCJObyBzYXZlZCBzdGF0ZSBmb3VuZC4gU2F2ZSBzdGF0ZSBmaXJzdCEiKX0pfSxybjE9KHQsZSxhKT0+e2xldCByPXQucXVlcnlTZWxlY3RvcigiI2J0bi1zaG93LWh0bWwtb3V0cHV0IiksaT10LnF1ZXJ5U2VsZWN0b3IoIiNvdXRwdXQtcHJldmlldy1odG1sIik7ciYmaSYmZSYmci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntpLnRleHRDb250ZW50PWUuZ2V0VmFsdWUoKSxpLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pO2xldCBvPXQucXVlcnlTZWxlY3RvcigiI2J0bi1zaG93LW1hcmtkb3duLW91dHB1dCIpLHM9dC5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0LXByZXZpZXctbWFya2Rvd24iKTtvJiZzJiZhJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3MudGV4dENvbnRlbnQ9YS5nZXRWYWx1ZSgpLHMuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSl9LGluMT10PT57dC5hcnRpY2xlJiZzZXRUaW1lb3V0KCgpPT57bGV0IGU9W3tpZDoiaW50cm8taGVhZGluZy0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJJbnRyb2R1Y3Rpb24gdG8gTW9kZXJuIFdlYiBEZXZlbG9wbWVudCJ9LHtpZDoiaW50cm8tcGFyYS0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJNb2Rlcm4gd2ViIGRldmVsb3BtZW50IGhhcyBldm9sdmVkIHNpZ25pZmljYW50bHkgb3ZlciB0aGUgcGFzdCBkZWNhZGUuIEluIHRoaXMgYXJ0aWNsZSwgd2UnbGwgZXhwbG9yZSB0aGUga2V5IHRlY2hub2xvZ2llcyBhbmQgYmVzdCBwcmFjdGljZXMgdGhhdCBkZWZpbmUgd2ViIGRldmVsb3BtZW50IGluIDIwMjQuIn0se2lkOiJ0ZWNoLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiS2V5IFRlY2hub2xvZ2llcyJ9LHtpZDoidGVjaC1saXN0LSIrRGF0ZS5ub3coKSx0eXBlOiJsaXN0Iixjb250ZW50OmBUeXBlU2NyaXB0IC0gVHlwZS1zYWZlIEphdmFTY3JpcHQgZGV2ZWxvcG1lbnQKV2ViIENvbXBvbmVudHMgLSBOYXRpdmUgY29tcG9uZW50IG1vZGVsCkVTIE1vZHVsZXMgLSBNb2Rlcm4gbW9kdWxlIHN5c3RlbQpXZWJBc3NlbWJseSAtIEhpZ2gtcGVyZm9ybWFuY2UgY29tcHV0aW5nYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOiJxdW90ZS0iK0RhdGUubm93KCksdHlwZToicXVvdGUiLGNvbnRlbnQ6IlRoZSBiZXN0IHdheSB0byBwcmVkaWN0IHRoZSBmdXR1cmUgaXMgdG8gaW52ZW50IGl0LiAtIEFsYW4gS2F5In0se2lkOiJleGFtcGxlLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiQ29kZSBFeGFtcGxlIn0se2lkOiJjb2RlLWV4YW1wbGUtIitEYXRlLm5vdygpLHR5cGU6ImNvZGUiLGNvbnRlbnQ6YGNsYXNzIE1vZGVybldlYkFwcCBleHRlbmRzIEhUTUxFbGVtZW50IHsKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTsKICB9CiAgCiAgY29ubmVjdGVkQ2FsbGJhY2soKSB7CiAgICB0aGlzLnJlbmRlcigpOwogIH0KfWAsbWV0YWRhdGE6e2xhbmd1YWdlOiJqYXZhc2NyaXB0In19XTt0LmFydGljbGUuaW1wb3J0QmxvY2tzKGUpfSw1MDApLHQuZHJhZ0Ryb3AmJnNldFRpbWVvdXQoKCk9PntsZXQgZT1be2lkOiJkcmFnLXRpdGxlLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6IkRyYWcgJiBEcm9wIERlbW8ifSx7aWQ6ImRyYWctaW50cm8tIitEYXRlLm5vdygpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiVGhpcyBlZGl0b3IgZGVtb25zdHJhdGVzIGRyYWcgYW5kIGRyb3AgZnVuY3Rpb25hbGl0eS4gVHJ5IGRyYWdnaW5nIHRoZXNlIGJsb2NrcyBhcm91bmQhIn0se2lkOiJkcmFnLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiSG93IEl0IFdvcmtzIn0se2lkOiJkcmFnLWxpc3QtIitEYXRlLm5vdygpLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YEhvdmVyIG92ZXIgYW55IGJsb2NrIHRvIHNlZSB0aGUgZHJhZyBoYW5kbGUKQ2xpY2sgYW5kIGhvbGQgdGhlIGhhbmRsZSB0byBzdGFydCBkcmFnZ2luZwpEcmFnIHRvIHJlb3JkZXIgYmxvY2tzClJlbGVhc2UgdG8gZHJvcCBpbiB0aGUgbmV3IHBvc2l0aW9uYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOiJkcmFnLXF1b3RlLSIrRGF0ZS5ub3coKSx0eXBlOiJxdW90ZSIsY29udGVudDoiVGhlIGRyYWcgYW5kIGRyb3AgZmVhdHVyZSBtYWtlcyBpdCBlYXN5IHRvIHJlb3JnYW5pemUgeW91ciBjb250ZW50IHdpdGhvdXQgY3V0dGluZyBhbmQgcGFzdGluZy4ifSx7aWQ6ImRyYWctZGl2aWRlci0iK0RhdGUubm93KCksdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOiJkcmFnLWZvb3Rlci0iK0RhdGUubm93KCksdHlwZToicGFyYWdyYXBoIixjb250ZW50OiJOb3RlOiBEaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZCwgYnV0IG90aGVyIGJsb2NrcyBjYW4gYmUgbW92ZWQgYXJvdW5kIHRoZW0uIn1dO3QuZHJhZ0Ryb3AuaW1wb3J0QmxvY2tzKGUpfSw2MDApfSx5T3Q9KCk9Pk1gCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IG5ldyBQcm9taXNlKGE9PnNldFRpbWVvdXQoYSw1MDApKTtsZXQgZT1lbjEodCk7ZS5wcm9ncmFtbWF0aWMmJnRuMSh0LGUucHJvZ3JhbW1hdGljKSxlLmV4cG9ydERlbW8mJmFuMSh0LGUuZXhwb3J0RGVtbykscm4xKHQsZS5tZWV0aW5nLGUucmVjaXBlKSxpbjEoZSksY29uc29sZS5sb2coIldZU0lXWUcgRGVtbyBpbml0aWFsaXplZCB3aXRoIGVkaXRvcnM6IixPYmplY3Qua2V5cyhlKSl9fT4KICA8c3R5bGU+CiAgICAke3RlYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQogICAgICAKICAgICAgLnBhbmVsLWRlc2NyaXB0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAucGFuZWwtZGVzY3JpcHRpb24gewogICAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZmVhdHVyZS1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pY29uIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmZlYXR1cmUtaXRlbSB7CiAgICAgICAgICBjb2xvcjogI2FhYTsKICAgICAgICB9CiAgICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDEwMiwgMjA0LCAwLjIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLWJveCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMyk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICBtYXJnaW46IDAgMCAxMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnNob3J0Y3V0LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dC1rZXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5zaG9ydGN1dC1pdGVtIHsKICAgICAgICAgIGNvbG9yOiAjYmJiOwogICAgICAgIH0KICAgICAgICAuc2hvcnRjdXQta2V5IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMyMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgfQoKICAgICAgLm91dHB1dC1jYXJkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3V0cHV0LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC4wNCk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgIzBmMTcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW3RoZW1lPSdkYXJrJ10pIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjA2KTsKICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4xNSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgI2Y0ZjRmNSk7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtcHJldmlldy52aXNpYmxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm91dHB1dC1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtYm94IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogI2YwZjhmZjsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAudGlwcy1ib3ggewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1ib3ggc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC50aXBzLWJveCBzdHJvbmcgewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1saXN0IHsKICAgICAgICBtYXJnaW46IDhweCAwIDAgMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWxpc3QgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjhmODsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogI2U4ZThlODsKICAgICAgICBib3JkZXItY29sb3I6ICNjY2M7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmRlbW8tYnV0dG9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM1NTU7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICM0NDQ7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM2NjY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3MgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAyLCAyMDQsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmh0bWwgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzYsIDE3NSwgODAsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLm1hcmtkb3duIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNTYsIDM5LCAxNzYsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHN0cm9uZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3Mgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuaHRtbCBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjNENBRjUwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5tYXJrZG93biBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjRkY5ODAwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjOUMyN0IwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCBwIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIFx1ezFGNjgwfSBNb2Rlcm4gV1lTSVdZRyBFZGl0b3IifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQSBwb3dlcmZ1bCBibG9jay1iYXNlZCBlZGl0b3Igd2l0aCBzbGFzaCBjb21tYW5kcywga2V5Ym9hcmQgc2hvcnRjdXRzLCBhbmQgbXVsdGlwbGUgb3V0cHV0IGZvcm1hdHMuIAogICAgICAgICAgUGVyZmVjdCBmb3IgY29udGVudCBjcmVhdGlvbiwgYmxvZyBwb3N0cywgZG9jdW1lbnRhdGlvbiwgYW5kIG1vcmUuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPlNsYXNoIGNvbW1hbmRzICgvKTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5LZXlib2FyZCBzaG9ydGN1dHM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+QmxvY2stYmFzZWQgZWRpdGluZzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5EcmFnICYgZHJvcCByZW9yZGVyaW5nPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkhUTUwgJiBNYXJrZG93biBvdXRwdXQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+RGFyayBtb2RlIHN1cHBvcnQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+TW9iaWxlIHJlc3BvbnNpdmU8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1iYXNpYyIKICAgICAgICAgIGxhYmVsPSJSaWNoIFRleHQgRWRpdG9yIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdGFydCB0eXBpbmcgb3IgdXNlICcvJyB0byBpbnNlcnQgZGlmZmVyZW50IGJsb2NrIHR5cGVzIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXRzLWJveCI+CiAgICAgICAgICA8aDQgY2xhc3M9InNob3J0Y3V0cy10aXRsZSI+4oyo77iPIEtleWJvYXJkIFNob3J0Y3V0czwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dHMtZ3JpZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi88L3NwYW4+IFNsYXNoIGNvbW1hbmRzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jPC9zcGFuPiBIZWFkaW5nIDEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjPC9zcGFuPiBIZWFkaW5nIDIKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjIzwvc3Bhbj4gSGVhZGluZyAzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4+PC9zcGFuPiBRdW90ZQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+XGBcYFxgPC9zcGFuPiBDb2RlIGJsb2NrCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4qPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4tPC9zcGFuPiBCdWxsZXQgbGlzdAogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+MS48L3NwYW4+IE51bWJlcmVkIGxpc3QKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi0tLTwvc3Bhbj4gRGl2aWRlcgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gXHV7MUY0RER9IEJsb2cgUG9zdCBFeGFtcGxlIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFBlcmZlY3QgZm9yIGNyZWF0aW5nIHJpY2ggY29udGVudCB3aXRoIG11bHRpcGxlIGJsb2NrIHR5cGVzLiAKICAgICAgICAgIFRoZSBlZGl0b3IgcHJlc2VydmVzIGZvcm1hdHRpbmcgYW5kIHByb3ZpZGVzIGEgY2xlYW4gZWRpdGluZyBleHBlcmllbmNlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1hcnRpY2xlIgogICAgICAgICAgbGFiZWw9IkJsb2cgUG9zdCBDb250ZW50IiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgdXNpbmcgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gXHV7MUY1MDB9IERyYWcgJiBEcm9wIFJlb3JkZXJpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgRWFzaWx5IHJlYXJyYW5nZSB5b3VyIGNvbnRlbnQgYmxvY2tzIGJ5IGRyYWdnaW5nIHRoZW0uIAogICAgICAgICAgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gcmV2ZWFsIHRoZSBkcmFnIGhhbmRsZSBvbiB0aGUgbGVmdCBzaWRlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1kcmFnZHJvcCIKICAgICAgICAgIGxhYmVsPSJEcmFnICYgRHJvcCBEZW1vIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUcnkgZHJhZ2dpbmcgYmxvY2tzIHRvIHJlb3JkZXIgdGhlbSAtIGhvdmVyIHRvIHNlZSBkcmFnIGhhbmRsZXMiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpcHMtYm94Ij4KICAgICAgICAgIDxzdHJvbmc+8J+SoSBUaXBzOjwvc3Ryb25nPgogICAgICAgICAgPHVsIGNsYXNzPSJ0aXBzLWxpc3QiPgogICAgICAgICAgICA8bGk+SG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZSAo4ouu4ouuKSBvbiB0aGUgbGVmdDwvbGk+CiAgICAgICAgICAgIDxsaT5DbGljayBhbmQgaG9sZCB0aGUgZHJhZyBoYW5kbGUgdG8gc3RhcnQgZHJhZ2dpbmc8L2xpPgogICAgICAgICAgICA8bGk+Qmx1ZSBpbmRpY2F0b3JzIHNob3cgd2hlcmUgdGhlIGJsb2NrIHdpbGwgYmUgZHJvcHBlZDwvbGk+CiAgICAgICAgICAgIDxsaT5EaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZDwvbGk+CiAgICAgICAgICAgIDxsaT5UaGUgZWRpdG9yIG1haW50YWlucyBmb2N1cyBvbiB0aGUgbW92ZWQgYmxvY2sgYWZ0ZXIgZHJvcHBpbmc8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFx1ezFGNERBfSBUdXRvcmlhbCAmIERvY3VtZW50YXRpb24ifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXByZWhlbnNpdmUgdHV0b3JpYWxzIGFuZCBkb2N1bWVudGF0aW9uIHdpdGggY29kZSBleGFtcGxlcywgbGlzdHMsIGFuZCBzdHJ1Y3R1cmVkIGNvbnRlbnQuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXR1dG9yaWFsIgogICAgICAgICAgbGFiZWw9IkdpdCBUdXRvcmlhbCIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RlcC1ieS1zdGVwIGd1aWRlIHdpdGggY29tbWFuZHMgYW5kIGV4cGxhbmF0aW9ucyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICB2YWx1ZT0iIyBHaXQgVHV0b3JpYWwgZm9yIEJlZ2lubmVycwoKR2l0IGlzIGEgZGlzdHJpYnV0ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbSB0aGF0IGhlbHBzIHlvdSB0cmFjayBjaGFuZ2VzIGluIHlvdXIgY29kZSBvdmVyIHRpbWUuIFRoaXMgdHV0b3JpYWwgd2lsbCBndWlkZSB5b3UgdGhyb3VnaCB0aGUgYmFzaWNzLgoKIyMgUHJlcmVxdWlzaXRlcwoKQmVmb3JlIHN0YXJ0aW5nLCBlbnN1cmUgeW91IGhhdmU6CgotIEdpdCBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0KLSBBIHRleHQgZWRpdG9yIG9yIElERQotIEJhc2ljIGNvbW1hbmQgbGluZSBrbm93bGVkZ2UKCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIDEuIENvbmZpZ3VyZSBHaXQKCkZpcnN0LCBzZXQgdXAgeW91ciBpZGVudGl0eToKClxgXGBcYGJhc2gKZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgJnF1b3Q7WW91ciBOYW1lJnF1b3Q7CmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAmcXVvdDt5b3VyLmVtYWlsQGV4YW1wbGUuY29tJnF1b3Q7ClxgXGBcYAoKIyMjIDIuIEluaXRpYWxpemUgYSBSZXBvc2l0b3J5CgpDcmVhdGUgYSBuZXcgR2l0IHJlcG9zaXRvcnk6CgpcYFxgXGBiYXNoCm1rZGlyIG15LXByb2plY3QKY2QgbXktcHJvamVjdApnaXQgaW5pdApcYFxgXGAKCiMjIyAzLiBCYXNpYyBHaXQgV29ya2Zsb3cKCiMjIyMgQWRkaW5nIEZpbGVzCgpDcmVhdGUgYSBmaWxlIGFuZCBhZGQgaXQgdG8gc3RhZ2luZzoKClxgXGBcYGJhc2gKZWNobyAmcXVvdDsjIE15IFByb2plY3QmcXVvdDsgPiBSRUFETUUubWQKZ2l0IGFkZCBSRUFETUUubWQKXGBcYFxgCgojIyMjIENvbW1pdHRpbmcgQ2hhbmdlcwoKXGBcYFxgYmFzaApnaXQgY29tbWl0IC1tICZxdW90O0luaXRpYWwgY29tbWl0JnF1b3Q7ClxgXGBcYAoKPiAqKkJlc3QgUHJhY3RpY2U6KiogV3JpdGUgY2xlYXIsIGRlc2NyaXB0aXZlIGNvbW1pdCBtZXNzYWdlcyB0aGF0IGV4cGxhaW4gd2hhdCBjaGFuZ2VzIHdlcmUgbWFkZSBhbmQgd2h5LgoKIyMjIDQuIFdvcmtpbmcgd2l0aCBCcmFuY2hlcwoKQnJhbmNoZXMgYWxsb3cgeW91IHRvIHdvcmsgb24gZmVhdHVyZXMgaW5kZXBlbmRlbnRseToKClxgXGBcYGJhc2gKIyBDcmVhdGUgYW5kIHN3aXRjaCB0byBhIG5ldyBicmFuY2gKZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUtYnJhbmNoCgojIE1ha2UgY2hhbmdlcyBhbmQgY29tbWl0CmdpdCBhZGQgLgpnaXQgY29tbWl0IC1tICZxdW90O0FkZCBuZXcgZmVhdHVyZSZxdW90OwoKIyBTd2l0Y2ggYmFjayB0byBtYWluCmdpdCBjaGVja291dCBtYWluCgojIE1lcmdlIHRoZSBmZWF0dXJlCmdpdCBtZXJnZSBmZWF0dXJlLWJyYW5jaApcYFxgXGAKCi0tLQoKIyMgQ29tbW9uIENvbW1hbmRzIFJlZmVyZW5jZQoKfCBDb21tYW5kIHwgRGVzY3JpcHRpb24gfAp8LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgXGBnaXQgc3RhdHVzXGAgfCBDaGVjayByZXBvc2l0b3J5IHN0YXR1cyB8CnwgXGBnaXQgbG9nXGAgfCBWaWV3IGNvbW1pdCBoaXN0b3J5IHwKfCBcYGdpdCBkaWZmXGAgfCBTaG93IGNoYW5nZXMgfAp8IFxgZ2l0IHB1bGxcYCB8IEZldGNoIGFuZCBtZXJnZSBjaGFuZ2VzIHwKfCBcYGdpdCBwdXNoXGAgfCBVcGxvYWQgY2hhbmdlcyB0byByZW1vdGUgfAoKIyMgTmV4dCBTdGVwcwoKMS4gTGVhcm4gYWJvdXQgcmVtb3RlIHJlcG9zaXRvcmllcwoyLiBFeHBsb3JlIGFkdmFuY2VkIEdpdCBmZWF0dXJlcwozLiBQcmFjdGljZSB3aXRoIHJlYWwgcHJvamVjdHMKNC4gQ29udHJpYnV0ZSB0byBvcGVuIHNvdXJjZQoKKipIYXBweSBjb2RpbmchKiog8J+agCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBcdXsxRjUwNH0gT3V0cHV0IEZvcm1hdHMifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2hvb3NlIGJldHdlZW4gSFRNTCBhbmQgTWFya2Rvd24gb3V0cHV0IGZvcm1hdHMgZGVwZW5kaW5nIG9uIHlvdXIgbmVlZHMuIAogICAgICAgICAgUGVyZmVjdCBmb3Igc3RhdGljIHNpdGUgZ2VuZXJhdG9ycywgZG9jdW1lbnRhdGlvbiBzeXN0ZW1zLCBvciBhbnkgY29udGVudCBtYW5hZ2VtZW50IHdvcmtmbG93LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtY2FyZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgICAgaWQ9ImVkaXRvci1tZWV0aW5nIgogICAgICAgICAgICAgIGxhYmVsPSJNZWV0aW5nIE5vdGVzIiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RydWN0dXJlZCBtZWV0aW5nIGRvY3VtZW50YXRpb24iCiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgICAgICAgIHZhbHVlPSI8aDI+UTQgUGxhbm5pbmcgTWVldGluZzwvaDI+PHA+PHN0cm9uZz5EYXRlOjwvc3Ryb25nPiBEZWNlbWJlciAxNSwgMjAyNDxicj48c3Ryb25nPkF0dGVuZGVlczo8L3N0cm9uZz4gUHJvZHVjdCBUZWFtLCBFbmdpbmVlcmluZywgRGVzaWduPC9wPjxoMz5BZ2VuZGEgSXRlbXM8L2gzPjxvbD48bGk+UmV2aWV3IFEzIGFjaGlldmVtZW50czwvbGk+PGxpPlNldCBRNCBvYmplY3RpdmVzPC9saT48bGk+UmVzb3VyY2UgYWxsb2NhdGlvbjwvbGk+PGxpPlRpbWVsaW5lIGRpc2N1c3Npb248L2xpPjwvb2w+PGgzPktleSBEZWNpc2lvbnM8L2gzPjx1bD48bGk+TGF1bmNoIG5ldyBkYXNoYm9hcmQgZmVhdHVyZSBieSBlbmQgb2YgSmFudWFyeTwvbGk+PGxpPkluY3JlYXNlIGVuZ2luZWVyaW5nIHRlYW0gYnkgMiBkZXZlbG9wZXJzPC9saT48bGk+SW1wbGVtZW50IHdlZWtseSBkZXNpZ24gcmV2aWV3czwvbGk+PC91bD48YmxvY2txdW90ZT4mcXVvdDtGb2N1cyBvbiB1c2VyIGV4cGVyaWVuY2UgaW1wcm92ZW1lbnRzIGJhc2VkIG9uIFEzIGZlZWRiYWNrJnF1b3Q7IC0gUHJvZHVjdCBNYW5hZ2VyPC9ibG9ja3F1b3RlPjxoMz5BY3Rpb24gSXRlbXM8L2gzPjx1bD48bGk+U2FyYWg6IENyZWF0ZSBkZXRhaWxlZCBwcm9qZWN0IHRpbWVsaW5lPC9saT48bGk+TWlrZTogRHJhZnQgdGVjaG5pY2FsIHJlcXVpcmVtZW50czwvbGk+PGxpPkxpc2E6IFNjaGVkdWxlIHVzZXIgcmVzZWFyY2ggc2Vzc2lvbnM8L2xpPjwvdWw+PGhyPjxwPk5leHQgbWVldGluZzogSmFudWFyeSA1LCAyMDI1PC9wPiIKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNob3ctaHRtbC1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBIVE1MIE91dHB1dDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHByZSBpZD0ib3V0cHV0LXByZXZpZXctaHRtbCIgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWNhcmQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICAgIGlkPSJlZGl0b3ItcmVjaXBlIgogICAgICAgICAgICAgIGxhYmVsPSJSZWNpcGUgQmxvZyBQb3N0IiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iRm9vZCBibG9nIHdpdGggbWl4ZWQgY29udGVudCIKICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgICAgIHZhbHVlPSIjIFVsdGltYXRlIENob2NvbGF0ZSBDaGlwIENvb2tpZXMKClRoZXJlJ3Mgbm90aGluZyBxdWl0ZSBsaWtlIHRoZSBzbWVsbCBvZiBmcmVzaGx5IGJha2VkIGNob2NvbGF0ZSBjaGlwIGNvb2tpZXMuIFRoaXMgcmVjaXBlIGhhcyBiZWVuIHBlcmZlY3RlZCBvdmVyIHllYXJzIG9mIHRlc3RpbmchCgojIyBJbmdyZWRpZW50cwoKLSAywrwgY3VwcyBhbGwtcHVycG9zZSBmbG91cgotIDEgdHNwIGJha2luZyBzb2RhCi0gMSB0c3Agc2FsdAotIDEgY3VwIGJ1dHRlciwgc29mdGVuZWQKLSDCviBjdXAgZ3JhbnVsYXRlZCBzdWdhcgotIMK+IGN1cCBwYWNrZWQgYnJvd24gc3VnYXIKLSAyIGxhcmdlIGVnZ3MKLSAyIHRzcCB2YW5pbGxhIGV4dHJhY3QKLSAyIGN1cHMgY2hvY29sYXRlIGNoaXBzCgojIyBJbnN0cnVjdGlvbnMKCiMjIyBTdGVwIDE6IFByZXBhcmF0aW9uCgpQcmVoZWF0IHlvdXIgb3ZlbiB0byAqKjM3NcKwRiAoMTkwwrBDKSoqLiBUaGlzIHRlbXBlcmF0dXJlIGlzIGNydWNpYWwgZm9yIGFjaGlldmluZyB0aGUgcGVyZmVjdCB0ZXh0dXJlLgoKIyMjIFN0ZXAgMjogTWl4IERyeSBJbmdyZWRpZW50cwoKSW4gYSBtZWRpdW0gYm93bCwgd2hpc2sgdG9nZXRoZXI6CgoxLiBGbG91cgoyLiBCYWtpbmcgc29kYQozLiBTYWx0CgojIyMgU3RlcCAzOiBDcmVhbSBCdXR0ZXIgYW5kIFN1Z2FycwoKXGBcYFxgCkNyZWFtIGJ1dHRlciBhbmQgc3VnYXJzIGZvciAzLTQgbWludXRlcwp1bnRpbCBsaWdodCBhbmQgZmx1ZmZ5ClxgXGBcYAoKPiAqKlBybyB0aXA6KiogUm9vbSB0ZW1wZXJhdHVyZSBpbmdyZWRpZW50cyBtaXggYmV0dGVyIGFuZCBjcmVhdGUgYSBtb3JlIHVuaWZvcm0gZG91Z2guCgojIyMgU3RlcCA0OiBBZGQgV2V0IEluZ3JlZGllbnRzCgpCZWF0IGluIGVnZ3Mgb25lIGF0IGEgdGltZSwgdGhlbiBhZGQgdmFuaWxsYSBleHRyYWN0LgoKIyMjIFN0ZXAgNTogQ29tYmluZSBhbmQgQmFrZQoKR3JhZHVhbGx5IGJsZW5kIGluIGZsb3VyIG1peHR1cmUsIHRoZW4gc3RpciBpbiBjaG9jb2xhdGUgY2hpcHMuIERyb3Agcm91bmRlZCB0YWJsZXNwb29ucyBvbnRvIHVuZ3JlYXNlZCBjb29raWUgc2hlZXRzLgoKLS0tCgoqKkJha2luZyB0aW1lOioqIDktMTEgbWludXRlcyBvciB1bnRpbCBnb2xkZW4gYnJvd24KCioqWWllbGQ6KiogQWJvdXQgNSBkb3plbiBjb29raWVzIgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1hY3Rpb25zIj4KICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2hvdy1tYXJrZG93bi1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBNYXJrZG93biBPdXRwdXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgaWQ9Im91dHB1dC1wcmV2aWV3LW1hcmtkb3duIiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGFyaWEtbGl2ZT0icG9saXRlIj48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gXHV7MUYzQTh9IEFkdmFuY2VkIEVkaXRpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXBsZXggZG9jdW1lbnRzIHdpdGggbWl4ZWQgY29udGVudCB0eXBlcy4gVGhlIGVkaXRvciBoYW5kbGVzIGFsbCBmb3JtYXR0aW5nIHNlYW1sZXNzbHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXRlY2huaWNhbCIKICAgICAgICAgIGxhYmVsPSJUZWNobmljYWwgRG9jdW1lbnRhdGlvbiIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ3JlYXRlIHRlY2huaWNhbCBkb2NzIHdpdGggY29kZSBleGFtcGxlcyBhbmQgc3RydWN0dXJlZCBjb250ZW50IgogICAgICAgICAgdmFsdWU9IjxoMT5BUEkgRG9jdW1lbnRhdGlvbjwvaDE+PHA+V2VsY29tZSB0byBvdXIgQVBJIGRvY3VtZW50YXRpb24uIEJlbG93IHlvdSdsbCBmaW5kIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ugb3VyIGVuZHBvaW50cy48L3A+PGgyPkF1dGhlbnRpY2F0aW9uPC9oMj48cD5BbGwgQVBJIHJlcXVlc3RzIHJlcXVpcmUgYXV0aGVudGljYXRpb24gdXNpbmcgYW4gQVBJIGtleTo8L3A+PHByZT48Y29kZT5BdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZPC9jb2RlPjwvcHJlPjxoMj5FbmRwb2ludHM8L2gyPjxoMz5HRVQgL3VzZXJzPC9oMz48cD5SZXRyaWV2ZSBhIGxpc3Qgb2YgdXNlcnMgZnJvbSB0aGUgc3lzdGVtLjwvcD48cHJlPjxjb2RlPmN1cmwgLVggR0VUIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzIFxcCiAgLUggJnF1b3Q7QXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSZxdW90OzwvY29kZT48L3ByZT48YmxvY2txdW90ZT5Ob3RlOiBSYXRlIGxpbWl0aW5nIGFwcGxpZXMgdG8gYWxsIGVuZHBvaW50cy4gWW91IGNhbiBtYWtlIHVwIHRvIDEwMCByZXF1ZXN0cyBwZXIgbWludXRlLjwvYmxvY2txdW90ZT48aDM+UE9TVCAvdXNlcnM8L2gzPjxwPkNyZWF0ZSBhIG5ldyB1c2VyIGluIHRoZSBzeXN0ZW0uPC9wPjxwcmU+PGNvZGU+ewogICZxdW90O25hbWUmcXVvdDs6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICZxdW90O2VtYWlsJnF1b3Q7OiAmcXVvdDtqb2huQGV4YW1wbGUuY29tJnF1b3Q7LAogICZxdW90O3JvbGUmcXVvdDs6ICZxdW90O3VzZXImcXVvdDsKfTwvY29kZT48L3ByZT48aHI+PHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byBvdXIgY29tcGxldGUgZG9jdW1lbnRhdGlvbi48L3A+IgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIFx1MjY5OVx1RkUwRiBGb3JtIEludGVncmF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFNlYW1sZXNzbHkgaW50ZWdyYXRlcyB3aXRoIGRlZXMtZm9ybSBmb3IgY29tcGxldGUgZm9ybSBzb2x1dGlvbnMuIAogICAgICAgICAgQWxsIHN0YW5kYXJkIGZvcm0gZmVhdHVyZXMgbGlrZSB2YWxpZGF0aW9uLCByZXF1aXJlZCBmaWVsZHMsIGFuZCBkYXRhIGJpbmRpbmcgd29yayBvdXQgb2YgdGhlIGJveC4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIGxhYmVsPSJBcnRpY2xlIFRpdGxlIiAKICAgICAgICAgICAgcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgIHZhbHVlPSJIb3cgdG8gQnVpbGQgTW9kZXJuIFdlYiBBcHBsaWNhdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgIGlkPSJlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIKICAgICAgICAgICAgbGFiZWw9IkFydGljbGUgQ29udGVudCIgCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgY29udGVudCBoZXJlIgogICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICBsYWJlbD0iVGFncyIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkFkZCByZWxldmFudCB0YWdzIGZvciB5b3VyIGFydGljbGUiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI4LiBcdXsxRjlFOX0gUHJvZ3JhbW1hdGljIEJsb2NrIENyZWF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb250ZW50IHByb2dyYW1tYXRpY2FsbHkgdXNpbmcgdGhlIGJsb2NrIEFQSSBmb3IgZHluYW1pYyBkb2N1bWVudCBnZW5lcmF0aW9uLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnCiAgICAgICAgICBpZD0iZWRpdG9yLXByb2dyYW1tYXRpYyIKICAgICAgICAgIGxhYmVsPSJQcm9ncmFtbWF0aWNhbGx5IEdlbmVyYXRlZCBDb250ZW50IgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgY29udGVudCB3YXMgY3JlYXRlZCB1c2luZyB0aGUgaW1wb3J0QmxvY2tzIEFQSSIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZXBvcnQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlcG9ydAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZWNpcGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlY2lwZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jbGVhci1lZGl0b3IiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIENsZWFyIEVkaXRvcgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI5LiBcdXsxRjRFNH0gRXhwb3J0L0ltcG9ydCBGZWF0dXJlcyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUaGUgV1lTSVdZRyBlZGl0b3IgcHJvdmlkZXMgbXVsdGlwbGUgZXhwb3J0IGZvcm1hdHMgYW5kIGxvc3NsZXNzIHNhdmUvcmVzdG9yZSBjYXBhYmlsaXRpZXMgZm9yIG1heGltdW0gZmxleGliaWxpdHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBibG9ja3MiPgogICAgICAgICAgICA8c3Ryb25nPkxvc3NsZXNzIEJsb2Nrczwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYW5kIGltcG9ydCByYXcgYmxvY2sgc3RydWN0dXJlIGZvciBwZXJmZWN0IHJvdW5kLXRyaXAgZWRpdGluZzwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBodG1sIj4KICAgICAgICAgICAgPHN0cm9uZz5IVE1MIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5HZXQgY2xlYW4sIHNlbWFudGljIEhUTUwgcmVnYXJkbGVzcyBvZiBvdXRwdXQgZm9ybWF0IHNldHRpbmc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgbWFya2Rvd24iPgogICAgICAgICAgICA8c3Ryb25nPk1hcmtkb3duIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYXMgTWFya2Rvd24gZm9yIGRvY3MsIFJFQURNRXMsIGFuZCBzdGF0aWMgc2l0ZXM8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgc3RhdGUiPgogICAgICAgICAgICA8c3Ryb25nPlN0YXRlIE1hbmFnZW1lbnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+U2F2ZSBhbmQgcmVzdG9yZSBjb21wbGV0ZSBlZGl0b3Igc3RhdGUgaW5jbHVkaW5nIHNldHRpbmdzPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZwogICAgICAgICAgaWQ9ImVkaXRvci1leHBvcnQiCiAgICAgICAgICBsYWJlbD0iRXhwb3J0IERlbW8gRWRpdG9yIgogICAgICAgICAgZGVzY3JpcHRpb249IlRyeSB0aGUgZXhwb3J0IGJ1dHRvbnMgYmVsb3cgdG8gc2VlIGRpZmZlcmVudCBvdXRwdXQgZm9ybWF0cyIKICAgICAgICAgIHZhbHVlPSI8aDE+U29mdHdhcmUgUmVsZWFzZSBOb3RlczwvaDE+PHA+PHN0cm9uZz5WZXJzaW9uIDIuNS4wPC9zdHJvbmc+IC0gUmVsZWFzZWQgRGVjZW1iZXIgMTUsIDIwMjQ8L3A+PGgyPvCfjokgTmV3IEZlYXR1cmVzPC9oMj48dWw+PGxpPkFkZGVkIGRhcmsgbW9kZSBzdXBwb3J0IGFjcm9zcyBhbGwgY29tcG9uZW50czwvbGk+PGxpPkltcGxlbWVudGVkIHJlYWwtdGltZSBjb2xsYWJvcmF0aW9uIGZlYXR1cmVzPC9saT48bGk+TmV3IGRhc2hib2FyZCBhbmFseXRpY3Mgd2lkZ2V0czwvbGk+PGxpPkV4cG9ydCBmdW5jdGlvbmFsaXR5IGZvciBhbGwgcmVwb3J0IHR5cGVzPC9saT48L3VsPjxoMj7wn5CbIEJ1ZyBGaXhlczwvaDI+PHVsPjxsaT5GaXhlZCBtZW1vcnkgbGVhayBpbiBkYXRhIHByb2Nlc3NpbmcgbW9kdWxlPC9saT48bGk+UmVzb2x2ZWQgYXV0aGVudGljYXRpb24gdGltZW91dCBpc3N1ZXM8L2xpPjxsaT5Db3JyZWN0ZWQgdGltZXpvbmUgaGFuZGxpbmcgaW4gc2NoZWR1bGVkIHRhc2tzPC9saT48L3VsPjxoMj7imqEgUGVyZm9ybWFuY2UgSW1wcm92ZW1lbnRzPC9oMj48YmxvY2txdW90ZT5QYWdlIGxvYWQgdGltZXMgcmVkdWNlZCBieSA0MCUgdGhyb3VnaCBsYXp5IGxvYWRpbmcgYW5kIGNvZGUgc3BsaXR0aW5nPC9ibG9ja3F1b3RlPjxoMj7wn5SnIFRlY2huaWNhbCBEZXRhaWxzPC9oMj48cHJlPjxjb2RlPi8vIE5ldyBBUEkgZW5kcG9pbnQgZm9yIGJhdGNoIG9wZXJhdGlvbnMKUE9TVCAvYXBpL3YyL2JhdGNoCnsKICAmcXVvdDtvcGVyYXRpb25zJnF1b3Q7OiBbCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7R0VUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvdXNlcnMvMTIzJnF1b3Q7IH0sCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7UFVUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvc2V0dGluZ3MmcXVvdDssICZxdW90O2JvZHkmcXVvdDs6IHsuLi59IH0KICBdCn08L2NvZGU+PC9wcmU+PGgyPvCfkqEgTWlncmF0aW9uIEd1aWRlPC9oMj48b2w+PGxpPlVwZGF0ZSB5b3VyIGRlcGVuZGVuY2llcyB0byB0aGUgbGF0ZXN0IHZlcnNpb25zPC9saT48bGk+UnVuIGRhdGFiYXNlIG1pZ3JhdGlvbnM6IDxjb2RlPm5wbSBydW4gbWlncmF0ZTwvY29kZT48L2xpPjxsaT5DbGVhciBjYWNoZTogPGNvZGU+bnBtIHJ1biBjYWNoZTpjbGVhcjwvY29kZT48L2xpPjxsaT5SZXN0YXJ0IGFsbCBzZXJ2aWNlczwvbGk+PC9vbD48aHI+PHA+Rm9yIHF1ZXN0aW9ucyBvciBpc3N1ZXMsIHBsZWFzZSBjb250YWN0IHRoZSBkZXZlbG9wbWVudCB0ZWFtIG9yIGZpbGUgYSB0aWNrZXQgaW4gb3VyIGlzc3VlIHRyYWNrZXIuPC9wPiIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtYmxvY2tzIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgQmxvY2tzCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4cG9ydC1odG1sIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgYXMgSFRNTAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtbWFya2Rvd24iIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEV4cG9ydCBhcyBNYXJrZG93bgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zYXZlLXN0YXRlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBTYXZlIFN0YXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXJlc3RvcmUtc3RhdGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIFJlc3RvcmUgU3RhdGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmA7dmFyIFAxPWNsYXNze3N0YXRpYyBIRUFESU5HX1BBVFRFUk5TPVt7cGF0dGVybjovXiNbXHNcdTAwQTBdJC8sdHlwZToiaGVhZGluZy0xIn0se3BhdHRlcm46L14jI1tcc1x1MDBBMF0kLyx0eXBlOiJoZWFkaW5nLTIifSx7cGF0dGVybjovXiMjI1tcc1x1MDBBMF0kLyx0eXBlOiJoZWFkaW5nLTMifV07c3RhdGljIExJU1RfUEFUVEVSTlM9W3twYXR0ZXJuOi9eWyotXVtcc1x1MDBBMF0kLyx0eXBlOiJidWxsZXQifSx7cGF0dGVybjovXihcZCspXC5bXHNcdTAwQTBdJC8sdHlwZToib3JkZXJlZCJ9LHtwYXR0ZXJuOi9eKFxkKylcKVtcc1x1MDBBMF0kLyx0eXBlOiJvcmRlcmVkIn1dO3N0YXRpYyBRVU9URV9QQVRURVJOPS9ePltcc1x1MDBBMF0kLztzdGF0aWMgQ09ERV9QQVRURVJOPS9eYGBgJC87c3RhdGljIERJVklERVJfUEFUVEVSTlM9WyItLS0iLCIqKioiLCJfX18iXTtzdGF0aWMgY2hlY2tIZWFkaW5nU2hvcnRjdXQoZSl7Zm9yKGxldHtwYXR0ZXJuOmEsdHlwZTpyfW9mIHRoaXMuSEVBRElOR19QQVRURVJOUylpZihhLnRlc3QoZSkpcmV0dXJue3R5cGU6cn07cmV0dXJuIG51bGx9c3RhdGljIGNoZWNrTGlzdFNob3J0Y3V0KGUpe2ZvcihsZXR7cGF0dGVybjphLHR5cGU6cn1vZiB0aGlzLkxJU1RfUEFUVEVSTlMpaWYoYS50ZXN0KGUpKXJldHVybnt0eXBlOiJsaXN0IixsaXN0VHlwZTpyfTtyZXR1cm4gbnVsbH1zdGF0aWMgY2hlY2tRdW90ZVNob3J0Y3V0KGUpe3JldHVybiB0aGlzLlFVT1RFX1BBVFRFUk4udGVzdChlKX1zdGF0aWMgY2hlY2tDb2RlU2hvcnRjdXQoZSl7cmV0dXJuIHRoaXMuQ09ERV9QQVRURVJOLnRlc3QoZSl9c3RhdGljIGNoZWNrRGl2aWRlclNob3J0Y3V0KGUpe3JldHVybiB0aGlzLkRJVklERVJfUEFUVEVSTlMuaW5jbHVkZXMoZSl9c3RhdGljIGdldFNsYXNoTWVudUl0ZW1zKCl7cmV0dXJuW3t0eXBlOiJwYXJhZ3JhcGgiLGxhYmVsOiJQYXJhZ3JhcGgiLGljb246Imx1Y2lkZTpwaWxjcm93In0se3R5cGU6ImhlYWRpbmctMSIsbGFiZWw6IkhlYWRpbmcgMSIsaWNvbjoibHVjaWRlOmhlYWRpbmcxIn0se3R5cGU6ImhlYWRpbmctMiIsbGFiZWw6IkhlYWRpbmcgMiIsaWNvbjoibHVjaWRlOmhlYWRpbmcyIn0se3R5cGU6ImhlYWRpbmctMyIsbGFiZWw6IkhlYWRpbmcgMyIsaWNvbjoibHVjaWRlOmhlYWRpbmczIn0se3R5cGU6InF1b3RlIixsYWJlbDoiUXVvdGUiLGljb246Imx1Y2lkZTpxdW90ZSJ9LHt0eXBlOiJjb2RlIixsYWJlbDoiQ29kZSBCbG9jayIsaWNvbjoibHVjaWRlOmZpbGVDb2RlIn0se3R5cGU6Imxpc3QiLGxhYmVsOiJCdWxsZXQgTGlzdCIsaWNvbjoibHVjaWRlOmxpc3QifSx7dHlwZToiaW1hZ2UiLGxhYmVsOiJJbWFnZSIsaWNvbjoibHVjaWRlOmltYWdlIn0se3R5cGU6ImRpdmlkZXIiLGxhYmVsOiJEaXZpZGVyIixpY29uOiJsdWNpZGU6bWludXMifSx7dHlwZToieW91dHViZSIsbGFiZWw6IllvdVR1YmUiLGljb246Imx1Y2lkZTp5b3V0dWJlIn0se3R5cGU6Im1hcmtkb3duIixsYWJlbDoiTWFya2Rvd24iLGljb246Imx1Y2lkZTpmaWxlVGV4dCJ9LHt0eXBlOiJodG1sIixsYWJlbDoiSFRNTCIsaWNvbjoibHVjaWRlOmNvZGUifSx7dHlwZToiYXR0YWNobWVudCIsbGFiZWw6IkZpbGUgQXR0YWNobWVudCIsaWNvbjoibHVjaWRlOnBhcGVyY2xpcCJ9XX1zdGF0aWMgZ2VuZXJhdGVCbG9ja0lkKCl7cmV0dXJuYGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gfX07ZmUoKTtGdCgpO0JlKCk7dmFyIHg1PWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sZHI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LFdFZT0oKCk9PntsZXQgdD1bY2UoImRlZXMtc2xhc2gtbWVudSIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdO3ZhciBFPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtsZSgpXSxmPVtsZSgpXSxkPVtsZSgpXSxiPVtsZSgpXSx2PVtsZSgpXSx4NSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJ2aXNpYmxlImluIHosZ2V0Ono9PnoudmlzaWJsZSxzZXQ6KHosUCk9Pnt6LnZpc2libGU9UH19LG1ldGFkYXRhOkN9LHMsbCkseDUodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InBvc2l0aW9uImluIHosZ2V0Ono9PnoucG9zaXRpb24sc2V0Oih6LFApPT57ei5wb3NpdGlvbj1QfX0sbWV0YWRhdGE6Q30sYyx1KSx4NSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImZpbHRlciJpbiB6LGdldDp6PT56LmZpbHRlcixzZXQ6KHosUCk9Pnt6LmZpbHRlcj1QfX0sbWV0YWRhdGE6Q30saCxnKSx4NSh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJzZWxlY3RlZEluZGV4ImluIHosZ2V0Ono9Pnouc2VsZWN0ZWRJbmRleCxzZXQ6KHosUCk9Pnt6LnNlbGVjdGVkSW5kZXg9UH19LG1ldGFkYXRhOkN9LHgsbSkseDUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51WkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ibWVudVpJbmRleCJpbiB6LGdldDp6PT56Lm1lbnVaSW5kZXgsc2V0Oih6LFApPT57ei5tZW51WkluZGV4PVB9fSxtZXRhZGF0YTpDfSx5LHcpLHg1KG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkN9LG51bGwsYSksRT1yPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGluc3RhbmNlO3N0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiBFLmluc3RhbmNlfHwoRS5pbnN0YW5jZT1uZXcgRSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKEUuaW5zdGFuY2UpKSxFLmluc3RhbmNlfSNlPWRyKHRoaXMscywhMSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmlzaWJsZShDKXt0aGlzLiNlPUN9I3Q9KGRyKHRoaXMsbCksZHIodGhpcyxjLHt4OjAseTowfSkpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBwb3NpdGlvbihDKXt0aGlzLiN0PUN9I2E9KGRyKHRoaXMsdSksZHIodGhpcyxoLCIiKSk7Z2V0IGZpbHRlcigpe3JldHVybiB0aGlzLiNhfXNldCBmaWx0ZXIoQyl7dGhpcy4jYT1DfSNyPShkcih0aGlzLGcpLGRyKHRoaXMseCwwKSk7Z2V0IHNlbGVjdGVkSW5kZXgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VsZWN0ZWRJbmRleChDKXt0aGlzLiNyPUN9I2k9KGRyKHRoaXMsbSksZHIodGhpcyx5LDFlMykpO2dldCBtZW51WkluZGV4KCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1lbnVaSW5kZXgoQyl7dGhpcy4jaT1DfWNhbGxiYWNrPShkcih0aGlzLHcpLG51bGwpO3N0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIG1pbi13aWR0aDogMjIwcHg7CiAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuMTVzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJblNjYWxlIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpIHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIsCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtIC5pY29uIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIgLmljb24sCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgLmljb24gewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2lmKCF0aGlzLnZpc2libGUpcmV0dXJuIE1gYDt0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKTtsZXQgQz10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7cmV0dXJuIE1gCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9InNsYXNoLW1lbnUiIAogICAgICAgIHN0eWxlPSJsZWZ0OiAke3RoaXMucG9zaXRpb24ueH1weDsgdG9wOiAke3RoaXMucG9zaXRpb24ueX1weDsiCiAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgIGRhdGEtbWVudS10eXBlPSJzbGFzaCIKICAgICAgPgogICAgICAgICR7Qy5tYXAoKHosUCk9Pk1gCiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0ic2xhc2gtbWVudS1pdGVtICR7UD09PXRoaXMuc2VsZWN0ZWRJbmRleD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgZGF0YS1pdGVtLXR5cGU9IiR7ei50eXBlfSIKICAgICAgICAgICAgZGF0YS1pdGVtLWluZGV4PSIke1B9IgogICAgICAgICAgPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJpY29uIiAuaWNvbj0iJHt6Lmljb259IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3Bhbj4ke3oubGFiZWx9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1nZXRGaWx0ZXJlZE1lbnVJdGVtcygpe3JldHVybiBQMS5nZXRTbGFzaE1lbnVJdGVtcygpLmZpbHRlcih6PT50aGlzLmZpbHRlcj09PSIifHx6LmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5maWx0ZXIudG9Mb3dlckNhc2UoKSkpfXNlbGVjdEl0ZW0oQyl7dGhpcy5jYWxsYmFjayYmdGhpcy5jYWxsYmFjayhDKSx0aGlzLmhpZGUoKX1zaG93KEMseil7dGhpcy5wb3NpdGlvbj1DLHRoaXMuY2FsbGJhY2s9eix0aGlzLmZpbHRlcj0iIix0aGlzLnNlbGVjdGVkSW5kZXg9MCx0aGlzLm1lbnVaSW5kZXg9czEuZ2V0TmV4dFpJbmRleCgpLHMxLnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx0aGlzLnZpc2libGU9ITB9aGlkZSgpe3RoaXMudmlzaWJsZT0hMSx0aGlzLmNhbGxiYWNrPW51bGwsdGhpcy5maWx0ZXI9IiIsdGhpcy5zZWxlY3RlZEluZGV4PTAsczEudW5yZWdpc3Rlcih0aGlzKX11cGRhdGVGaWx0ZXIoQyl7dGhpcy5maWx0ZXI9Qyx0aGlzLnNlbGVjdGVkSW5kZXg9MH1uYXZpZ2F0ZShDKXtsZXQgej10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7Qz09PSJkb3duIj90aGlzLnNlbGVjdGVkSW5kZXg9KHRoaXMuc2VsZWN0ZWRJbmRleCsxKSV6Lmxlbmd0aDp0aGlzLnNlbGVjdGVkSW5kZXg9dGhpcy5zZWxlY3RlZEluZGV4PT09MD96Lmxlbmd0aC0xOnRoaXMuc2VsZWN0ZWRJbmRleC0xfXNlbGVjdEN1cnJlbnQoKXtsZXQgQz10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7Q1t0aGlzLnNlbGVjdGVkSW5kZXhdJiZ0aGlzLnNlbGVjdEl0ZW0oQ1t0aGlzLnNlbGVjdGVkSW5kZXhdLnR5cGUpfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixDPT57bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2xhc2gtbWVudSIpO3omJnouY29udGFpbnMoQy50YXJnZXQpJiYoQy5wcmV2ZW50RGVmYXVsdCgpLEMuc3RvcFByb3BhZ2F0aW9uKCkpfSksdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsQz0+e2xldCBQPUMudGFyZ2V0LmNsb3Nlc3QoIi5zbGFzaC1tZW51LWl0ZW0iKTtpZihQKXtDLnByZXZlbnREZWZhdWx0KCksQy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgXz1QLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLXR5cGUiKTtfJiZ0aGlzLnNlbGVjdEl0ZW0oXyl9fSksdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixDPT57bGV0IFA9Qy50YXJnZXQuY2xvc2VzdCgiLnNsYXNoLW1lbnUtaXRlbSIpO2lmKFApe2xldCBfPXBhcnNlSW50KFAuZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0taW5kZXgiKXx8IjAiLDEwKTt0aGlzLnNlbGVjdGVkSW5kZXg9X319LCEwKSx0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixDPT57bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2xhc2gtbWVudSIpO3omJnouY29udGFpbnMoQy50YXJnZXQpJiYoQy5wcmV2ZW50RGVmYXVsdCgpLEMuc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje2RyKHIsYSl9fTtyZXR1cm4gRT1yfSkoKTt2YXIgSWU9Y2xhc3N7c3RhdGljIGdldFNlbGVjdGlvbkluZm8oLi4uZSl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGNvbnNvbGUubG9nKCJXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8gLSBzZWxlY3Rpb246IixhLCJyYW5nZUNvdW50OiIsYT8ucmFuZ2VDb3VudCksIWEpcmV0dXJuIG51bGw7aWYoImdldENvbXBvc2VkUmFuZ2VzImluIGEmJnR5cGVvZiBhLmdldENvbXBvc2VkUmFuZ2VzPT0iZnVuY3Rpb24iKXtjb25zb2xlLmxvZygiVXNpbmcgZ2V0Q29tcG9zZWRSYW5nZXMgd2l0aCIsZS5sZW5ndGgsInNoYWRvdyByb290cyIpO3RyeXtsZXQgcj1hLmdldENvbXBvc2VkUmFuZ2VzKHtzaGFkb3dSb290czplfSk7aWYoY29uc29sZS5sb2coImdldENvbXBvc2VkUmFuZ2VzIHJldHVybmVkIixyLmxlbmd0aCwicmFuZ2VzIiksci5sZW5ndGg+MCl7bGV0IGk9clswXTtyZXR1cm57c3RhcnRDb250YWluZXI6aS5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDppLnN0YXJ0T2Zmc2V0LGVuZENvbnRhaW5lcjppLmVuZENvbnRhaW5lcixlbmRPZmZzZXQ6aS5lbmRPZmZzZXQsY29sbGFwc2VkOmkuY29sbGFwc2VkfX19Y2F0Y2gocil7Y29uc29sZS53YXJuKCJnZXRDb21wb3NlZFJhbmdlcyBmYWlsZWQsIGZhbGxpbmcgYmFjayB0byBnZXRSYW5nZUF0OiIscil9fWVsc2UgY29uc29sZS5sb2coImdldENvbXBvc2VkUmFuZ2VzIG5vdCBhdmFpbGFibGUsIHVzaW5nIGZhbGxiYWNrIik7aWYoYS5yYW5nZUNvdW50PjApe2xldCByPWEuZ2V0UmFuZ2VBdCgwKTtyZXR1cm57c3RhcnRDb250YWluZXI6ci5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpyLnN0YXJ0T2Zmc2V0LGVuZENvbnRhaW5lcjpyLmVuZENvbnRhaW5lcixlbmRPZmZzZXQ6ci5lbmRPZmZzZXQsY29sbGFwc2VkOnIuY29sbGFwc2VkfX1yZXR1cm4gbnVsbH1zdGF0aWMgaXNTZWxlY3Rpb25JbkVsZW1lbnQoZSxhKXtsZXQgcj1hP3RoaXMuZ2V0U2VsZWN0aW9uSW5mbyhhKTp0aGlzLmdldFNlbGVjdGlvbkluZm8oKTtyZXR1cm4gcj9lLmNvbnRhaW5zKHIuc3RhcnRDb250YWluZXIpfHxlLmNvbnRhaW5zKHIuZW5kQ29udGFpbmVyKTohMX1zdGF0aWMgZ2V0U2VsZWN0ZWRUZXh0KCl7bGV0IGU9d2luZG93LmdldFNlbGVjdGlvbigpO3JldHVybiBlP2UudG9TdHJpbmcoKToiIn1zdGF0aWMgY3JlYXRlUmFuZ2VGcm9tSW5mbyhlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiBhLnNldFN0YXJ0KGUuc3RhcnRDb250YWluZXIsZS5zdGFydE9mZnNldCksYS5zZXRFbmQoZS5lbmRDb250YWluZXIsZS5lbmRPZmZzZXQpLGF9c3RhdGljIHNldFNlbGVjdGlvbkZyb21SYW5nZShlKXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7YSYmKGEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZShlKSl9c3RhdGljIGdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGUsLi4uYSl7bGV0IHI9YS5sZW5ndGg+MD90aGlzLmdldFNlbGVjdGlvbkluZm8oLi4uYSk6dGhpcy5nZXRTZWxlY3Rpb25JbmZvKCk7aWYoIXJ8fCFyLmNvbGxhcHNlZClyZXR1cm4gbnVsbDt0cnl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtpZihpLnNlbGVjdE5vZGVDb250ZW50cyhlKSx0aGlzLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGUsci5zdGFydENvbnRhaW5lcikpcmV0dXJuIGkuc2V0RW5kKHIuc3RhcnRDb250YWluZXIsci5zdGFydE9mZnNldCksaS50b1N0cmluZygpLmxlbmd0aDt7bGV0IHM9ZS50ZXh0Q29udGVudHx8IiIsbD1yLnN0YXJ0Q29udGFpbmVyLnRleHRDb250ZW50fHwiIjtyZXR1cm4gci5zdGFydE9mZnNldD09PTA/MDpyLnN0YXJ0T2Zmc2V0PT09bC5sZW5ndGg/cy5sZW5ndGg6KGNvbnNvbGUud2FybigiU2VsZWN0aW9uIGNvbnRhaW5lciBub3Qgd2l0aGluIGVsZW1lbnQsIHVzaW5nIHRleHQgbWF0Y2hpbmcgZmFsbGJhY2siKSxyLnN0YXJ0T2Zmc2V0KX19Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUud2FybigiRmFpbGVkIHRvIGdldCBjdXJzb3IgcG9zaXRpb246IixpKSxudWxsfX1zdGF0aWMgZ2V0Q3Vyc29yUG9zaXRpb25Gcm9tUG9pbnQoZSxhLHIsLi4uaSl7aWYoImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiaW4gZG9jdW1lbnQmJmRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQpe2xldCBvPW51bGw7dHJ5e289ZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLGEsLi4uaSl9Y2F0Y2h7bz1kb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KGUsYSl9aWYobyYmci5jb250YWlucyhvLm9mZnNldE5vZGUpKXJldHVybiB0aGlzLmdldE9mZnNldEluRWxlbWVudChvLm9mZnNldE5vZGUsby5vZmZzZXQscil9aWYoImNhcmV0UmFuZ2VGcm9tUG9pbnQiaW4gZG9jdW1lbnQpe2xldCBvPWRvY3VtZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQoZSxhKTtpZihvJiZyLmNvbnRhaW5zKG8uc3RhcnRDb250YWluZXIpKXJldHVybiB0aGlzLmdldE9mZnNldEluRWxlbWVudChvLnN0YXJ0Q29udGFpbmVyLG8uc3RhcnRPZmZzZXQscil9cmV0dXJuIG51bGx9c3RhdGljIGdldE9mZnNldEluRWxlbWVudChlLGEscil7bGV0IGk9MCxvPSExLHM9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihyLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLGw7Zm9yKDtsPXMubmV4dE5vZGUoKTspaWYobD09PWUpe2krPWEsbz0hMDticmVha31lbHNlIGkrPWwudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gbz9pOjB9c3RhdGljIHNldEN1cnNvclBvc2l0aW9uKGUsYSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihlLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLGk9MCxvPW51bGwscz0wO2Zvcig7ci5uZXh0Tm9kZSgpOyl7bGV0IGw9ci5jdXJyZW50Tm9kZSxmPWwudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZihpK2Y+PWEpe289bCxzPWEtaTticmVha31pKz1mfWlmKG8pe2xldCBsPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bC5zZXRTdGFydChvLHMpLGwuY29sbGFwc2UoITApLHRoaXMuc2V0U2VsZWN0aW9uRnJvbVJhbmdlKGwpfX1zdGF0aWMgY29udGFpbnNBY3Jvc3NTaGFkb3dET00oZSxhKXtpZighZXx8IWEpcmV0dXJuITE7bGV0IHI9YTtmb3IoO3I7KXtpZihyPT09ZSlyZXR1cm4hMDtpZihyLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFJiZyLmhvc3Qpe2xldCBpPXI7aWYoaS5jb250YWlucyhlKSlyZXR1cm4hMTtyPWkuaG9zdH1lbHNlIHI9ci5wYXJlbnROb2RlfXJldHVybiExfX07ZmUoKTt2YXIgZHM9Y2xhc3N7c3RhdGljIGZvcm1hdEJ1dHRvbnM9W3tjb21tYW5kOiJib2xkIixpY29uOiJCIixsYWJlbDoiQm9sZCIsc2hvcnRjdXQ6Ilx1MjMxOEIifSx7Y29tbWFuZDoiaXRhbGljIixpY29uOiJJIixsYWJlbDoiSXRhbGljIixzaG9ydGN1dDoiXHUyMzE4SSJ9LHtjb21tYW5kOiJ1bmRlcmxpbmUiLGljb246IlUiLGxhYmVsOiJVbmRlcmxpbmUiLHNob3J0Y3V0OiJcdTIzMThVIn0se2NvbW1hbmQ6InN0cmlrZVRocm91Z2giLGljb246IlNcdTAzMzYiLGxhYmVsOiJTdHJpa2V0aHJvdWdoIn0se2NvbW1hbmQ6ImNvZGUiLGljb246InsgfSIsbGFiZWw6IklubGluZSBDb2RlIn0se2NvbW1hbmQ6ImxpbmsiLGljb246Ilx1ezFGNTE3fSIsbGFiZWw6IkxpbmsiLHNob3J0Y3V0OiJcdTIzMThLIn1dO3N0YXRpYyByZW5kZXJGb3JtYXR0aW5nTWVudShlLGEpe3JldHVybiBNYAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJmb3JtYXR0aW5nLW1lbnUiIAogICAgICAgIHN0eWxlPSJ0b3A6ICR7ZS55fXB4OyBsZWZ0OiAke2UueH1weDsiCiAgICAgICAgQG1vdXNlZG93bj0iJHtyPT57ci5wcmV2ZW50RGVmYXVsdCgpLHIuc3RvcFByb3BhZ2F0aW9uKCl9fSIKICAgICAgICBAY2xpY2s9IiR7cj0+ci5zdG9wUHJvcGFnYXRpb24oKX0iCiAgICAgID4KICAgICAgICAke3RoaXMuZm9ybWF0QnV0dG9ucy5tYXAocj0+TWAKICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgIGNsYXNzPSJmb3JtYXQtYnV0dG9uICR7ci5jb21tYW5kfSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT5hKHIuY29tbWFuZCl9IgogICAgICAgICAgICB0aXRsZT0iJHtyLmxhYmVsfSR7ci5zaG9ydGN1dD9gICgke3Iuc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHtyLmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke3IuaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpYyBhcHBseUZvcm1hdChlLGEscixpKXtsZXQgbztpZihyKW89cjtlbHNle2xldCBzPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighc3x8cy5yYW5nZUNvdW50PT09MClyZXR1cm4hMTtvPXMuZ2V0UmFuZ2VBdCgwKX1zd2l0Y2goZSl7Y2FzZSJib2xkIjp0aGlzLndyYXBTZWxlY3Rpb24obywic3Ryb25nIik7YnJlYWs7Y2FzZSJpdGFsaWMiOnRoaXMud3JhcFNlbGVjdGlvbihvLCJlbSIpO2JyZWFrO2Nhc2UidW5kZXJsaW5lIjp0aGlzLndyYXBTZWxlY3Rpb24obywidSIpO2JyZWFrO2Nhc2Uic3RyaWtlVGhyb3VnaCI6dGhpcy53cmFwU2VsZWN0aW9uKG8sInMiKTticmVhaztjYXNlImNvZGUiOnRoaXMud3JhcFNlbGVjdGlvbihvLCJjb2RlIik7YnJlYWs7Y2FzZSJsaW5rIjppZighYSlyZXR1cm4hMTt0aGlzLndyYXBTZWxlY3Rpb25XaXRoTGluayhvLGEpO2JyZWFrfWlmKGkmJmkubGVuZ3RoPjApSWUuc2V0U2VsZWN0aW9uRnJvbVJhbmdlKG8pO2Vsc2V7bGV0IHM9d2luZG93LmdldFNlbGVjdGlvbigpO3MmJihzLnJlbW92ZUFsbFJhbmdlcygpLHMuYWRkUmFuZ2UobykpfXJldHVybiEwfXN0YXRpYyB3cmFwU2VsZWN0aW9uKGUsYSl7bGV0IHI9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFyKXJldHVybjtpZih0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsYSkpdGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUsYSk7ZWxzZXtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGEpO3RyeXtsZXQgcz1lLmV4dHJhY3RDb250ZW50cygpO28uYXBwZW5kQ2hpbGQocyksZS5pbnNlcnROb2RlKG8pLGUuc2VsZWN0Tm9kZUNvbnRlbnRzKG8pLHIucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShlKX1jYXRjaChzKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gd3JhcCBzZWxlY3Rpb246IixzKX19fXN0YXRpYyBzZWxlY3Rpb25Db250YWluc1RhZyhlLGEpe2xldCByPWUuc3RhcnRDb250YWluZXI7Zm9yKDtyJiZyIT09ZS5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoci5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZyLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PWEpcmV0dXJuITA7cj1yLnBhcmVudE5vZGV9Zm9yKHI9ZS5lbmRDb250YWluZXI7ciYmciE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKHIubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmci50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT1hKXJldHVybiEwO3I9ci5wYXJlbnROb2RlfWxldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG89ZS5jbG9uZUNvbnRlbnRzKCk7cmV0dXJuIGkuYXBwZW5kQ2hpbGQobyksaS5nZXRFbGVtZW50c0J5VGFnTmFtZShhKS5sZW5ndGg+MH1zdGF0aWMgcmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLGEpe2xldCByPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighcilyZXR1cm47bGV0IGk9ZS5jbG9uZVJhbmdlKCksbz1lLnN0YXJ0Q29udGFpbmVyLHM9bnVsbDtmb3IoO28mJm8hPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihvLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJm8udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09YSl7cz1vO2JyZWFrfW89by5wYXJlbnROb2RlfWxldCBsPWUuZW5kQ29udGFpbmVyLGY9bnVsbDtmb3IoO2wmJmwhPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihsLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmwudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09YSl7Zj1sO2JyZWFrfWw9bC5wYXJlbnROb2RlfXMmJmkuc2V0U3RhcnRCZWZvcmUocyksZiYmaS5zZXRFbmRBZnRlcihmKTtsZXQgYz1pLmV4dHJhY3RDb250ZW50cygpLHU9dGhpcy5yZW1vdmVUYWdzRnJvbUZyYWdtZW50KGMsYSk7aS5pbnNlcnROb2RlKHUpO2xldCBkPVtdLGg9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih1LE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLGc7Zm9yKDtnPWgubmV4dE5vZGUoKTspZC5wdXNoKGcpO2lmKGQubGVuZ3RoPjApe2xldCBiPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Yi5zZXRTdGFydChkWzBdLDApLGIuc2V0RW5kKGRbZC5sZW5ndGgtMV0sZFtkLmxlbmd0aC0xXS50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxyLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UoYil9fXN0YXRpYyByZW1vdmVUYWdzRnJvbUZyYWdtZW50KGUsYSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5hcHBlbmRDaGlsZChlKTtsZXQgaT1yLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO0FycmF5LmZyb20oaSkuZm9yRWFjaChsPT57bGV0IGY9bC5wYXJlbnROb2RlO2lmKGYpe2Zvcig7bC5maXJzdENoaWxkOylmLmluc2VydEJlZm9yZShsLmZpcnN0Q2hpbGQsbCk7Zi5yZW1vdmVDaGlsZChsKX19KTtsZXQgcz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKDtyLmZpcnN0Q2hpbGQ7KXMuYXBwZW5kQ2hpbGQoci5maXJzdENoaWxkKTtyZXR1cm4gc31zdGF0aWMgd3JhcFNlbGVjdGlvbldpdGhMaW5rKGUsYSl7bGV0IHI9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFyKXJldHVybjt0aGlzLnNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsImEiKSYmKHRoaXMucmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihlLCJhIiksci5yYW5nZUNvdW50PjAmJihlPXIuZ2V0UmFuZ2VBdCgwKSkpO2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtpLmhyZWY9YSxpLnRhcmdldD0iX2JsYW5rIixpLnJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI7dHJ5e2xldCBvPWUuZXh0cmFjdENvbnRlbnRzKCk7aS5hcHBlbmRDaGlsZChvKSxlLmluc2VydE5vZGUoaSksZS5zZWxlY3ROb2RlQ29udGVudHMoaSksci5yZW1vdmVBbGxSYW5nZXMoKSxyLmFkZFJhbmdlKGUpfWNhdGNoKG8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgbGluazoiLG8pfX1zdGF0aWMgZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uZSl7bGV0IGE9SWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5lKTtpZihjb25zb2xlLmxvZygiZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMgLSBzZWxlY3Rpb25JbmZvOiIsYSksIWEpcmV0dXJuIGNvbnNvbGUubG9nKCJObyBzZWxlY3Rpb24gaW5mbyBhdmFpbGFibGUiKSxudWxsO2xldCBpPUllLmNyZWF0ZVJhbmdlRnJvbUluZm8oYSkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoY29uc29sZS5sb2coIlJhbmdlIHJlY3Q6IixpKSxpLndpZHRoPT09MCYmaS5oZWlnaHQ9PT0wKXtpZihjb25zb2xlLmxvZygiUmVjdCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwLCB0cnlpbmcgZGlmZmVyZW50IGFwcHJvYWNoIiksImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiaW4gZG9jdW1lbnQpe2xldCBzPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihzJiZzLnJhbmdlQ291bnQ+MCl7bGV0IGw9cy5nZXRSYW5nZUF0KDApLGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2YudGV4dENvbnRlbnQ9Ilx1MjAwQiIsbC5pbnNlcnROb2RlKGYpO2xldCBjPWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoZi5yZW1vdmUoKSxjLndpZHRoPjB8fGMuaGVpZ2h0PjApe2xldCB1PXt4OmMubGVmdCx5Ok1hdGgubWF4KDQ1LGMudG9wLTQ1KX07cmV0dXJuIGNvbnNvbGUubG9nKCJVc2VkIHNwYW4gdHJpY2sgZm9yIGNvb3JkczoiLHUpLHV9fX1yZXR1cm4gbnVsbH1sZXQgbz17eDppLmxlZnQraS53aWR0aC8yLHk6TWF0aC5tYXgoNDUsaS50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlJldHVybmluZyBjb29yZHM6IixvKSxvfX07ZmUoKTtCZSgpO3ZhciB2aj1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LGxjPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxHRWU9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWZvcm1hdHRpbmctbWVudSIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdO3ZhciBiPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgeD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtsZSgpXSxmPVtsZSgpXSxkPVtsZSgpXSx2aih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJ2aXNpYmxlImluIG0sZ2V0Om09Pm0udmlzaWJsZSxzZXQ6KG0sdik9PnttLnZpc2libGU9dn19LG1ldGFkYXRhOnh9LHMsbCksdmoodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InBvc2l0aW9uImluIG0sZ2V0Om09Pm0ucG9zaXRpb24sc2V0OihtLHYpPT57bS5wb3NpdGlvbj12fX0sbWV0YWRhdGE6eH0sYyx1KSx2aih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJtZW51WkluZGV4ImluIG0sZ2V0Om09Pm0ubWVudVpJbmRleCxzZXQ6KG0sdik9PnttLm1lbnVaSW5kZXg9dn19LG1ldGFkYXRhOnh9LGgsZyksdmoobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6eH0sbnVsbCxhKSxiPXI9ZS52YWx1ZSx4JiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnh9KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIGIuaW5zdGFuY2V8fChiLmluc3RhbmNlPW5ldyBiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYi5pbnN0YW5jZSkpLGIuaW5zdGFuY2V9I2U9bGModGhpcyxzLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKHgpe3RoaXMuI2U9eH0jdD0obGModGhpcyxsKSxsYyh0aGlzLGMse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKHgpe3RoaXMuI3Q9eH0jYT0obGModGhpcyx1KSxsYyh0aGlzLGgsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudVpJbmRleCh4KXt0aGlzLiNhPXh9Y2FsbGJhY2s9KGxjKHRoaXMsZyksbnVsbCk7c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmZvcm1hdHRpbmctbWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzI2MjYyNiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2UwZTBlMCIsIiM0MDQwNDAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuMTVzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJblNjYWxlIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoNXB4KTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uIHsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiNlMGUwZTAiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmMGYwZjAiLCIjMzMzMzMzIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24uYm9sZCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b24uaXRhbGljIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLnVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uIC5jb2RlLWljb24gewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMudmlzaWJsZT8odGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksTWAKICAgICAgPGRpdiAKICAgICAgICBjbGFzcz0iZm9ybWF0dGluZy1tZW51IiAKICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBvc2l0aW9uLnh9cHg7IHRvcDogJHt0aGlzLnBvc2l0aW9uLnl9cHg7IgogICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICBkYXRhLW1lbnUtdHlwZT0iZm9ybWF0dGluZyIKICAgICAgPgogICAgICAgICR7ZHMuZm9ybWF0QnV0dG9ucy5tYXAoeD0+TWAKICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgIGNsYXNzPSJmb3JtYXQtYnV0dG9uICR7eC5jb21tYW5kfSIKICAgICAgICAgICAgZGF0YS1jb21tYW5kPSIke3guY29tbWFuZH0iCiAgICAgICAgICAgIHRpdGxlPSIke3gubGFiZWx9JHt4LnNob3J0Y3V0P2AgKCR7eC5zaG9ydGN1dH0pYDoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke3guY29tbWFuZD09PSJjb2RlIj8iY29kZS1pY29uIjoiIn0iPiR7eC5pY29ufTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGApOk1gYH1hcHBseUZvcm1hdCh4KXt0aGlzLmNhbGxiYWNrJiZ0aGlzLmNhbGxiYWNrKHgpLHg9PT0ibGluayImJnRoaXMuaGlkZSgpfXNob3coeCxtKXtjb25zb2xlLmxvZygiRm9ybWF0dGluZ01lbnUuc2hvdyBjYWxsZWQ6Iix7cG9zaXRpb246eCx2aXNpYmxlOnRoaXMudmlzaWJsZX0pLHRoaXMucG9zaXRpb249eCx0aGlzLmNhbGxiYWNrPW0sdGhpcy5tZW51WkluZGV4PXMxLmdldE5leHRaSW5kZXgoKSxzMS5yZWdpc3Rlcih0aGlzLHRoaXMubWVudVpJbmRleCksdGhpcy5zdHlsZS56SW5kZXg9dGhpcy5tZW51WkluZGV4LnRvU3RyaW5nKCksdGhpcy52aXNpYmxlPSEwfWhpZGUoKXt0aGlzLnZpc2libGU9ITEsdGhpcy5jYWxsYmFjaz1udWxsLHMxLnVucmVnaXN0ZXIodGhpcyl9dXBkYXRlUG9zaXRpb24oeCl7dGhpcy5wb3NpdGlvbj14fWZpcnN0VXBkYXRlZCgpe3RoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix4PT57bGV0IG09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZm9ybWF0dGluZy1tZW51Iik7bSYmbS5jb250YWlucyh4LnRhcmdldCkmJih4LnByZXZlbnREZWZhdWx0KCkseC5zdG9wUHJvcGFnYXRpb24oKSl9KSx0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix4PT57bGV0IHY9eC50YXJnZXQuY2xvc2VzdCgiLmZvcm1hdC1idXR0b24iKTtpZih2KXt4LnByZXZlbnREZWZhdWx0KCkseC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgeT12LmdldEF0dHJpYnV0ZSgiZGF0YS1jb21tYW5kIik7eSYmdGhpcy5hcHBseUZvcm1hdCh5KX19KSx0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix4PT57bGV0IG09dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZm9ybWF0dGluZy1tZW51Iik7bSYmbS5jb250YWlucyh4LnRhcmdldCkmJih4LnByZXZlbnREZWZhdWx0KCkseC5zdG9wUHJvcGFnYXRpb24oKSl9LCEwKX1zdGF0aWN7bGMocixhKX19O3JldHVybiBiPXJ9KSgpO2ZlKCk7dmFyIHlqPVsiSmF2YVNjcmlwdCIsIlR5cGVTY3JpcHQiLCJQeXRob24iLCJKYXZhIiwiQysrIiwiQyMiLCJHbyIsIlJ1c3QiLCJIVE1MIiwiQ1NTIiwiU1FMIiwiU2hlbGwiLCJKU09OIiwiWUFNTCIsIk1hcmtkb3duIiwiUGxhaW4gVGV4dCJdO2ZlKCk7dmFyIHdPdD10ZWAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CgogIC53eXNpd3lnLWNvbnRhaW5lciB7CiAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgIHBhZGRpbmc6IDI0cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC53eXNpd3lnLWNvbnRhaW5lcjpob3ZlciB7CiAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjZDFkNWRiIiwiIzNmM2Y0NiIpfTsKICB9CgogIC53eXNpd3lnLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX0sIDAgMCAwIDRweCAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC41KSIpfTsKICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLyogVmlzdWFsIGhpbnQgZm9yIHRleHQgc2VsZWN0aW9uICovCiAgLmVkaXRvci1jb250ZW50OmhvdmVyIHsKICAgIGN1cnNvcjogdGV4dDsKICB9CgogIC5lZGl0b3ItY29udGVudCB7CiAgICBvdXRsaW5lOiBub25lOwogICAgbWluLWhlaWdodDogMTYwcHg7CiAgICBtYXJnaW46IDAgLThweDsKICAgIHBhZGRpbmc6IDAgOHB4OwogIH0KCiAgLmJsb2NrIHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDRweCAwOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBtaW4taGVpZ2h0OiAxLjZlbTsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAvKiBGaXJzdCBhbmQgbGFzdCBibG9ja3MgZG9uJ3QgbmVlZCBleHRyYSBzcGFjaW5nICovCiAgLmJsb2NrLXdyYXBwZXI6Zmlyc3QtY2hpbGQgLmJsb2NrIHsKICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsKICB9CgogIC5ibG9jay13cmFwcGVyOmxhc3QtY2hpbGQgLmJsb2NrIHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQoKICAuYmxvY2suc2VsZWN0ZWQgewogICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIpfTsKICAgIG91dGxpbmU6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgbWFyZ2luLWxlZnQ6IC04cHg7CiAgICBtYXJnaW4tcmlnaHQ6IC04cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgIHBhZGRpbmctcmlnaHQ6IDhweDsKICB9CgogIC5ibG9ja1tjb250ZW50ZWRpdGFibGVdIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgfQoKICAuYmxvY2sucGFyYWdyYXBoIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KCiAgLmJsb2NrLnBhcmFncmFwaDplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJUeXBlICcvJyBmb3IgY29tbWFuZHMuLi4iOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0xIHsKICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTE6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAxIjsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMiB7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0yOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMiI7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBsaW5lLWhlaWdodDogMS4zOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTMgewogICAgZm9udC1zaXplOiAyMHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMzplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDMiOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuYmxvY2sucXVvdGUgewogICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICBsaW5lLWhlaWdodDogMS42OwogIH0KCiAgLmJsb2NrLnF1b3RlOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIlF1b3RlIjsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KCiAgLmNvZGUtYmxvY2stY29udGFpbmVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG1hcmdpbjogMjBweCAwOwogIH0KCiAgLmNvZGUtbGFuZ3VhZ2UgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgcmlnaHQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgcGFkZGluZzogNHB4IDEycHg7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBib3JkZXItcmFkaXVzOiAwIDRweCAwIDRweDsKICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7CiAgICB6LWluZGV4OiAxOwogIH0KCiAgLmJsb2NrLmNvZGUgewogICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgcGFkZGluZzogMTZweDsKICAgIHBhZGRpbmctdG9wOiAzMnB4OyAvKiBNYWtlIHJvb20gZm9yIGxhbmd1YWdlIGluZGljYXRvciAqLwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMS41OwogICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIG92ZXJmbG93LXg6IGF1dG87CiAgfQoKICAuYmxvY2suY29kZTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICIvLyBDb2RlIGJsb2NrIjsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQoKICAuYmxvY2subGlzdCB7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgfQoKICAuYmxvY2subGlzdCB1bCwKICAuYmxvY2subGlzdCBvbCB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwIDAgMCAyNHB4OwogICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTsKICB9CgogIC5ibG9jay5saXN0IHVsIHsKICAgIGxpc3Qtc3R5bGU6IGRpc2M7CiAgfQoKICAuYmxvY2subGlzdCBvbCB7CiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsOwogIH0KCiAgLmJsb2NrLmxpc3QgbGkgewogICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICB9CgogIC5ibG9jay5saXN0IGxpOmxhc3QtY2hpbGQgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CgogIC5ibG9jay5kaXZpZGVyIHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBhZGRpbmc6IDIwcHggMDsKICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgLmJsb2NrLmRpdmlkZXIgaHIgewogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIG1hcmdpbjogMDsKICB9CgogIC5zbGFzaC1tZW51IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgcGFkZGluZzogNHB4OwogICAgei1pbmRleDogMTAwMDsKICAgIG1pbi13aWR0aDogMjIwcHg7CiAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgIHVzZXItc2VsZWN0OiBub25lOwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbSB7CiAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEycHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgZm9udC1zaXplOiAxNHB4OwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbTpob3ZlciwKICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIHsKICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtIC5pY29uIHsKICAgIHdpZHRoOiAyNHB4OwogICAgaGVpZ2h0OiAyNHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbTpob3ZlciAuaWNvbiwKICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIC5pY29uIHsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAudG9vbGJhciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IC00MHB4OwogICAgbGVmdDogMDsKICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgcGFkZGluZzogNHB4OwogICAgZGlzcGxheTogbm9uZTsKICAgIGdhcDogNHB4OwogICAgei1pbmRleDogMTAwMDsKICB9CgogIC50b29sYmFyLnZpc2libGUgewogICAgZGlzcGxheTogZmxleDsKICB9CgogIC50b29sYmFyLWJ1dHRvbiB7CiAgICB3aWR0aDogMzJweDsKICAgIGhlaWdodDogMzJweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLyogRHJhZyBhbmQgRHJvcCBTdHlsZXMgKi8KICAuYmxvY2std3JhcHBlciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZTsKICB9CgogIC8qIEVuc3VyZSBwcm9wZXIgc3BhY2luZyBjb250ZXh0IGZvciBibG9ja3MgKi8KICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jayB7CiAgICBtYXJnaW4tdG9wOiAxNnB4OwogIH0KCiAgLyogT3ZlcnJpZGUgZm9yIGhlYWRpbmdzIGZvbGxvd2luZyBvdGhlciBibG9ja3MgKi8KICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTEsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0yLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMyB7CiAgICBtYXJnaW4tdG9wOiAyNHB4OwogIH0KCiAgLyogQ29kZSBhbmQgcXVvdGUgYmxvY2tzIG5lZWQgY29uc2lzdGVudCBzcGFjaW5nICovCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suY29kZSwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5xdW90ZSB7CiAgICBtYXJnaW4tdG9wOiAyMHB4OwogIH0KCiAgLmRyYWctaGFuZGxlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IC0yOHB4OwogICAgdG9wOiA1MCU7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICB3aWR0aDogMjRweDsKICAgIGhlaWdodDogMjRweDsKICAgIGN1cnNvcjogZ3JhYjsKICAgIG9wYWNpdHk6IDA7CiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogIH0KCiAgLmRyYWctaGFuZGxlOjpiZWZvcmUgewogICAgY29udGVudDogIuKLruKLriI7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBsZXR0ZXItc3BhY2luZzogLTJweDsKICB9CgogIC5ibG9jay13cmFwcGVyOmhvdmVyIC5kcmFnLWhhbmRsZSB7CiAgICBvcGFjaXR5OiAxOwogIH0KCiAgLmRyYWctaGFuZGxlOmhvdmVyIHsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgfQoKICAuZHJhZy1oYW5kbGU6YWN0aXZlIHsKICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgfQoKICAuYmxvY2std3JhcHBlci5kcmFnZ2luZyB7CiAgICBvcGFjaXR5OiAwLjg7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDIwMDE7CiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgfQoKCiAgLyogQmxvY2tzIHRoYXQgc2hvdWxkIG1vdmUgb3V0IG9mIHRoZSB3YXkgKi8KICAuYmxvY2std3JhcHBlci5tb3ZlLWRvd24gewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWRyYWctb2Zmc2V0LCAwcHgpKTsKICB9CgogIC5ibG9jay13cmFwcGVyLm1vdmUtdXAgewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoLTEgKiB2YXIoLS1kcmFnLW9mZnNldCwgMHB4KSkpOwogIH0KCiAgLyogRHJvcCBpbmRpY2F0b3IgKi8KICAuZHJvcC1pbmRpY2F0b3IgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIpfTsKICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBlYXNlLCBoZWlnaHQgMC4ycyBlYXNlOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB6LWluZGV4OiAxOTk5OwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIC8qIFJlbW92ZSBvbGQgZHJhZy1vdmVyIHN0eWxlcyAqLwogIC5ibG9jay13cmFwcGVyLmRyYWctb3Zlci1iZWZvcmUsCiAgLmJsb2NrLXdyYXBwZXIuZHJhZy1vdmVyLWFmdGVyIHsKICAgIC8qIE5vIGxvbmdlciBuZWVkZWQsIHVzaW5nIGRyb3AgaW5kaWNhdG9yIGluc3RlYWQgKi8KICB9CgogIC5lZGl0b3ItY29udGVudC5kcmFnZ2luZyAqIHsKICAgIHVzZXItc2VsZWN0OiBub25lOwogIH0KCiAgLyogQmxvY2sgU2V0dGluZ3MgQnV0dG9uIC0gUmVtb3ZlZCBpbiBmYXZvciBvZiBjb250ZXh0IG1lbnUgKi8KCiAgLyogVGV4dCBTZWxlY3Rpb24gU3R5bGVzICovCiAgLmJsb2NrIDo6c2VsZWN0aW9uIHsKICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgY29sb3I6IGluaGVyaXQ7CiAgfQoKICAvKiBGb3JtYXR0aW5nIE1lbnUgKi8KICAuZm9ybWF0dGluZy1tZW51IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgcGFkZGluZzogNHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogMnB4OwogICAgei1pbmRleDogMTAwMTsKICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC4xNXMgZWFzZS1vdXQ7CiAgfQoKICBAa2V5ZnJhbWVzIGZhZGVJblNjYWxlIHsKICAgIGZyb20gewogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpIHRyYW5zbGF0ZVkoMnB4KTsKICAgIH0KICAgIHRvIHsKICAgICAgb3BhY2l0eTogMTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgfQogIH0KCiAgLmZvcm1hdC1idXR0b24gewogICAgd2lkdGg6IDMycHg7CiAgICBoZWlnaHQ6IDMycHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBmb250LXdlaWdodDogNjAwOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KCiAgLmZvcm1hdC1idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC5mb3JtYXQtYnV0dG9uOmFjdGl2ZSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOwogIH0KCiAgLmZvcm1hdC1idXR0b24uYm9sZCB7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KCiAgLmZvcm1hdC1idXR0b24uaXRhbGljIHsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CgogIC5mb3JtYXQtYnV0dG9uLnVuZGVybGluZSB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB9CgogIC5mb3JtYXQtYnV0dG9uIC5jb2RlLWljb24gewogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDEycHg7CiAgfQoKICAvKiBBcHBsaWVkIGZvcm1hdCBzdHlsZXMgaW4gY29udGVudCAqLwogIC5ibG9jayBzdHJvbmcsCiAgLmJsb2NrIGIgewogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2sgZW0sCiAgLmJsb2NrIGkgewogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KCiAgLmJsb2NrIHUgewogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgfQoKICAuYmxvY2sgc3RyaWtlLAogIC5ibG9jayBzIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgb3BhY2l0eTogMC43OwogIH0KCiAgLmJsb2NrIGNvZGUgewogICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgcGFkZGluZzogMnB4IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAwLjllbTsKICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2sgYSB7CiAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgfQoKICAuYmxvY2sgYTpob3ZlciB7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQpgO3ZhciBmcj1jbGFzc3tzdGF0aWMgZXNjYXBlSHRtbChlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1lLGEuaW5uZXJIVE1MfXN0YXRpYyBmb3JtYXRGaWxlU2l6ZShlKXtpZihlPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IGE9MTAyNCxyPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxpPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2coYSkpO3JldHVybiBwYXJzZUZsb2F0KChlL01hdGgucG93KGEsaSkpLnRvRml4ZWQoMikpKyIgIityW2ldfXN0YXRpYyBnZXRIdG1sT3V0cHV0KGUpe3JldHVybiBlLm1hcChhPT57bGV0IHI9YS5jb250ZW50LmluY2x1ZGVzKCI8IikmJmEuY29udGVudC5pbmNsdWRlcygiPiIpP2EuY29udGVudDp0aGlzLmVzY2FwZUh0bWwoYS5jb250ZW50KTtzd2l0Y2goYS50eXBlKXtjYXNlInBhcmFncmFwaCI6cmV0dXJuIGEuY29udGVudD9gPHA+JHtyfTwvcD5gOiIiO2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gPGgxPiR7cn08L2gxPmA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmA8aDI+JHtyfTwvaDI+YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYDxoMz4ke3J9PC9oMz5gO2Nhc2UicXVvdGUiOnJldHVybmA8YmxvY2txdW90ZT4ke3J9PC9ibG9ja3F1b3RlPmA7Y2FzZSJjb2RlIjpyZXR1cm5gPHByZT48Y29kZT4ke3RoaXMuZXNjYXBlSHRtbChhLmNvbnRlbnQpfTwvY29kZT48L3ByZT5gO2Nhc2UibGlzdCI6bGV0IGk9YS5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKGY9PmYudHJpbSgpKTtpZihpLmxlbmd0aD4wKXtsZXQgZj1hLm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke2Z9PiR7aS5tYXAoYz0+YDxsaT4ke2N9PC9saT5gKS5qb2luKCIiKX08LyR7Zn0+YH1yZXR1cm4iIjtjYXNlImRpdmlkZXIiOnJldHVybiI8aHI+IjtjYXNlImltYWdlIjpsZXQgbz1hLm1ldGFkYXRhPy51cmw7aWYobyl7bGV0IGY9dGhpcy5lc2NhcGVIdG1sKGEuY29udGVudHx8IkltYWdlIik7cmV0dXJuYDxpbWcgc3JjPSIke299IiBhbHQ9IiR7Zn0iIC8+YH1yZXR1cm4iIjtjYXNlInlvdXR1YmUiOmxldCBzPWEubWV0YWRhdGE/LnZpZGVvSWQ7cmV0dXJuIHM/YDxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtzfSIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+YDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm5gPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+JHt0aGlzLmVzY2FwZUh0bWwoYS5jb250ZW50KX08L2Rpdj5gO2Nhc2UiaHRtbCI6cmV0dXJuIGEuY29udGVudDtjYXNlImF0dGFjaG1lbnQiOmxldCBsPWEubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gbC5sZW5ndGg+MD9gPGRpdiBjbGFzcz0iYXR0YWNobWVudHMiPiR7bC5tYXAoZj0+YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaXRlbSIgZGF0YS1maWxlLWlkPSIke2YuaWR9Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7Zi5kYXRhfSIgZG93bmxvYWQ9IiR7Zi5uYW1lfSI+JHt0aGlzLmVzY2FwZUh0bWwoZi5uYW1lKX08L2E+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1zaXplIj4oJHt0aGlzLmZvcm1hdEZpbGVTaXplKGYuc2l6ZSl9KTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gKS5qb2luKCIiKX08L2Rpdj5gOiIiO2RlZmF1bHQ6cmV0dXJuYDxwPiR7cn08L3A+YH19KS5maWx0ZXIoYT0+YSE9PSIiKS5qb2luKGAKYCl9c3RhdGljIGdldE1hcmtkb3duT3V0cHV0KGUpe3JldHVybiBlLm1hcChhPT57c3dpdGNoKGEudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiBhLmNvbnRlbnQ7Y2FzZSJoZWFkaW5nLTEiOnJldHVybmAjICR7YS5jb250ZW50fWA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmAjIyAke2EuY29udGVudH1gO2Nhc2UiaGVhZGluZy0zIjpyZXR1cm5gIyMjICR7YS5jb250ZW50fWA7Y2FzZSJxdW90ZSI6cmV0dXJuYD4gJHthLmNvbnRlbnR9YDtjYXNlImNvZGUiOnJldHVybmBcYFxgXGAKJHthLmNvbnRlbnR9ClxgXGBcYGA7Y2FzZSJsaXN0IjpsZXQgcj1hLmNvbnRlbnQuc3BsaXQoYApgKS5maWx0ZXIoYz0+Yy50cmltKCkpO3JldHVybiBhLm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj9yLm1hcCgoYyx1KT0+YCR7dSsxfS4gJHtjfWApLmpvaW4oYApgKTpyLm1hcChjPT5gLSAke2N9YCkuam9pbihgCmApO2Nhc2UiZGl2aWRlciI6cmV0dXJuIi0tLSI7Y2FzZSJpbWFnZSI6bGV0IGk9YS5tZXRhZGF0YT8udXJsLG89YS5jb250ZW50fHwiSW1hZ2UiO3JldHVybiBpP2AhWyR7b31dKCR7aX0pYDoiIjtjYXNlInlvdXR1YmUiOmxldCBzPWEubWV0YWRhdGE/LnZpZGVvSWQsbD1hLm1ldGFkYXRhPy51cmx8fChzP2BodHRwczovL3lvdXR1YmUuY29tL3dhdGNoP3Y9JHtzfWA6IiIpO3JldHVybiBsP2BbWW91VHViZSBWaWRlb10oJHtsfSlgOiIiO2Nhc2UibWFya2Rvd24iOnJldHVybiBhLmNvbnRlbnQ7Y2FzZSJodG1sIjpyZXR1cm5gPCEtLSBIVE1MIEJsb2NrCiR7YS5jb250ZW50fQotLT5gO2Nhc2UiYXR0YWNobWVudCI6bGV0IGY9YS5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybiBmLmxlbmd0aD4wP2YubWFwKGM9PmAtIFske2MubmFtZX1dKCR7Yy5kYXRhfSlgKS5qb2luKGAKYCk6IiI7ZGVmYXVsdDpyZXR1cm4gYS5jb250ZW50fX0pLmZpbHRlcihhPT5hIT09IiIpLmpvaW4oYAoKYCl9c3RhdGljIHBhcnNlSHRtbFRvQmxvY2tzKGUpe2xldCByPW5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoZSwidGV4dC9odG1sIiksaT1bXSxvPXM9PntpZihzLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJnMudGV4dENvbnRlbnQ/LnRyaW0oKSlpLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6cy50ZXh0Q29udGVudC50cmltKCl9KTtlbHNlIGlmKHMubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7bGV0IGw9cyxmPWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChmKXtjYXNlInAiOmkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgxIjppLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6bC5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMiI6aS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDMiOmkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDpsLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImJsb2NrcXVvdGUiOmkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InF1b3RlIixjb250ZW50OmwuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UicHJlIjpjYXNlImNvZGUiOmkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6bC50ZXh0Q29udGVudHx8IiJ9KTticmVhaztjYXNlInVsIjpjYXNlIm9sIjpsZXQgdT1BcnJheS5mcm9tKGwucXVlcnlTZWxlY3RvckFsbCgibGkiKSkubWFwKGg9PmguaW5uZXJIVE1MfHwiIikuam9pbihgCmApO2kucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6dSxtZXRhZGF0YTp7bGlzdFR5cGU6Zj09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifX0pO2JyZWFrO2Nhc2UiaHIiOmkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiAifSk7YnJlYWs7Y2FzZSJpbWciOmxldCBkPWw7aS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6ZC5hbHR8fCIiLG1ldGFkYXRhOnt1cmw6ZC5zcmN9fSk7YnJlYWs7ZGVmYXVsdDpsLmNoaWxkTm9kZXMuZm9yRWFjaChoPT5vKGgpKX19fTtyZXR1cm4gci5ib2R5LmNoaWxkTm9kZXMuZm9yRWFjaChzPT5vKHMpKSxpfXN0YXRpYyBwYXJzZU1hcmtkb3duVG9CbG9ja3MoZSl7bGV0IGE9ZS5zcGxpdChgCmApLHI9W10saT1bXTtmb3IobGV0IG89MDtvPGEubGVuZ3RoO28rKyl7bGV0IHM9YVtvXTtpZihzLnN0YXJ0c1dpdGgoIiMgIikpci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OnMuc3Vic3RyaW5nKDIpfSk7ZWxzZSBpZihzLnN0YXJ0c1dpdGgoIiMjICIpKXIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDpzLnN1YnN0cmluZygzKX0pO2Vsc2UgaWYocy5zdGFydHNXaXRoKCIjIyMgIikpci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50OnMuc3Vic3RyaW5nKDQpfSk7ZWxzZSBpZihzLnN0YXJ0c1dpdGgoIj4gIikpci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6cy5zdWJzdHJpbmcoMil9KTtlbHNlIGlmKHMuc3RhcnRzV2l0aCgiYGBgIikpe2xldCBsPVtdO2ZvcihvKys7bzxhLmxlbmd0aCYmIWFbb10uc3RhcnRzV2l0aCgiYGBgIik7KWwucHVzaChhW29dKSxvKys7ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiY29kZSIsY29udGVudDpsLmpvaW4oYApgKX0pfWVsc2UgaWYocy5tYXRjaCgvXihcKnwtKSAvKSlpLnB1c2gocy5zdWJzdHJpbmcoMikpLChvPT09YS5sZW5ndGgtMXx8IWFbbysxXS5tYXRjaCgvXihcKnwtKSAvKSkmJihyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJsaXN0Iixjb250ZW50Omkuam9pbihgCmApLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19KSxpPVtdKTtlbHNlIGlmKHMubWF0Y2goL15cZCtcLiAvKSlpLnB1c2gocy5yZXBsYWNlKC9eXGQrXC4gLywiIikpLChvPT09YS5sZW5ndGgtMXx8IWFbbysxXS5tYXRjaCgvXlxkK1wuIC8pKSYmKHIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6aS5qb2luKGAKYCksbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19KSxpPVtdKTtlbHNlIGlmKHM9PT0iLS0tInx8cz09PSIqKioifHxzPT09Il9fXyIpci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiICJ9KTtlbHNlIGlmKHMubWF0Y2goL14hXFsoW15cXV0qKVxdXCgoW15cKV0rKVwpJC8pKXtsZXQgbD1zLm1hdGNoKC9eIVxbKFteXF1dKilcXVwoKFteXCldKylcKSQvKTtsJiZyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJpbWFnZSIsY29udGVudDpsWzFdfHwiIixtZXRhZGF0YTp7dXJsOmxbMl19fSl9ZWxzZSBzLnRyaW0oKSYmci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50OnN9KX1yZXR1cm4gcn19O2ZlKCk7dmFyIF8yPWNsYXNze3N0YXRpYyByZW5kZXJMaXN0Q29udGVudChlLGEpe2xldCByPWUuc3BsaXQoYApgKS5maWx0ZXIobz0+by50cmltKCkpO2lmKHIubGVuZ3RoPT09MClyZXR1cm4iIjtsZXQgaT1hPy5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke2l9PiR7ci5tYXAobz0+YDxsaT4ke299PC9saT5gKS5qb2luKCIiKX08LyR7aX0+YH1zdGF0aWMgcmVuZGVyQmxvY2soZSxhLHIpe2lmKGUudHlwZT09PSJkaXZpZGVyIilyZXR1cm4gTWAKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iYmxvY2sgZGl2aWRlciIKICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgPgogICAgICAgICAgPGhyPgogICAgICAgIDwvZGl2PgogICAgICBgO2lmKGUudHlwZT09PSJsaXN0IilyZXR1cm4gTWAKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iYmxvY2sgbGlzdCAke2E/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgQGlucHV0PSIke3Iub25JbnB1dH0iCiAgICAgICAgICBAa2V5ZG93bj0iJHtyLm9uS2V5RG93bn0iCiAgICAgICAgICBAZm9jdXM9IiR7ci5vbkZvY3VzfSIKICAgICAgICAgIEBibHVyPSIke3Iub25CbHVyfSIKICAgICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PSIke3Iub25Db21wb3NpdGlvblN0YXJ0fSIKICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHtyLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgICAgQG1vdXNldXA9IiR7bz0+e2NvbnNvbGUubG9nKCJCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkIiksci5vbk1vdXNlVXAmJnIub25Nb3VzZVVwKG8pfX0iCiAgICAgICAgICAuaW5uZXJIVE1MPSIke3RoaXMucmVuZGVyTGlzdENvbnRlbnQoZS5jb250ZW50LGUubWV0YWRhdGEpfSIKICAgICAgICA+PC9kaXY+CiAgICAgIGA7aWYoZS50eXBlPT09ImNvZGUiKXtsZXQgbz1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8InBsYWluIHRleHQiO3JldHVybiBNYAogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYmxvY2stY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtbGFuZ3VhZ2UiPiR7b308L2Rpdj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9ImJsb2NrICR7ZS50eXBlfSAke2E/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICAgICAgQGlucHV0PSIke3Iub25JbnB1dH0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3Iub25LZXlEb3dufSIKICAgICAgICAgICAgQGZvY3VzPSIke3Iub25Gb2N1c30iCiAgICAgICAgICAgIEBibHVyPSIke3Iub25CbHVyfSIKICAgICAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7ci5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgICAgICBAY29tcG9zaXRpb25lbmQ9IiR7ci5vbkNvbXBvc2l0aW9uRW5kfSIKICAgICAgICAgICAgQG1vdXNldXA9IiR7cz0+e2NvbnNvbGUubG9nKCJCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkIiksci5vbk1vdXNlVXAmJnIub25Nb3VzZVVwKHMpfX0iCiAgICAgICAgICAgIC50ZXh0Q29udGVudD0iJHtlLmNvbnRlbnR8fCIifSIKICAgICAgICAgID48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH1yZXR1cm4gTWAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke2UudHlwZX0gJHthPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBAaW5wdXQ9IiR7ci5vbklucHV0fSIKICAgICAgICBAa2V5ZG93bj0iJHtyLm9uS2V5RG93bn0iCiAgICAgICAgQGZvY3VzPSIke3Iub25Gb2N1c30iCiAgICAgICAgQGJsdXI9IiR7ci5vbkJsdXJ9IgogICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PSIke3Iub25Db21wb3NpdGlvblN0YXJ0fSIKICAgICAgICBAY29tcG9zaXRpb25lbmQ9IiR7ci5vbkNvbXBvc2l0aW9uRW5kfSIKICAgICAgICBAbW91c2V1cD0iJHtvPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxyLm9uTW91c2VVcCYmci5vbk1vdXNlVXAobyl9fSIKICAgICAgICAuaW5uZXJIVE1MPSIke2UuY29udGVudHx8IiJ9IgogICAgICA+PC9kaXY+CiAgICBgfXN0YXRpYyBzZXRDdXJzb3JUb0VuZChlKXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWEpcmV0dXJuO2xldCByPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYoZS5jaGlsZE5vZGVzLmxlbmd0aD09PTApe2xldCBpPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdTIwMEIiKTtlLmFwcGVuZENoaWxkKGkpLHIuc2V0U3RhcnQoaSwxKSxyLmNvbGxhcHNlKCEwKX1lbHNle2xldCBpPXRoaXMuZ2V0TGFzdE5vZGUoZSk7aS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP3Iuc2V0U3RhcnQoaSxpLnRleHRDb250ZW50Py5sZW5ndGh8fDApOnIuc2V0U3RhcnRBZnRlcihpKSxyLmNvbGxhcHNlKCEwKX1hLnJlbW92ZUFsbFJhbmdlcygpLGEuYWRkUmFuZ2UociksZS50ZXh0Q29udGVudD09PSJcdTIwMEIiJiYoZS50ZXh0Q29udGVudD0iIil9c3RhdGljIHNldEN1cnNvclRvU3RhcnQoZSl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtsZXQgcj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXIuc2V0U3RhcnQoZSwwKSxyLmNvbGxhcHNlKCEwKTtlbHNle2xldCBpPXRoaXMuZ2V0Rmlyc3ROb2RlKGUpO2kubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT9yLnNldFN0YXJ0KGksMCk6ci5zZXRTdGFydEJlZm9yZShpKSxyLmNvbGxhcHNlKCEwKX1hLnJlbW92ZUFsbFJhbmdlcygpLGEuYWRkUmFuZ2Uocil9c3RhdGljIGdldExhc3ROb2RlKGUpe2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXJldHVybiBlO2xldCBhPWUuY2hpbGROb2Rlc1tlLmNoaWxkTm9kZXMubGVuZ3RoLTFdO3JldHVybiBhLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV8fGEuY2hpbGROb2Rlcy5sZW5ndGg9PT0wP2E6dGhpcy5nZXRMYXN0Tm9kZShhKX1zdGF0aWMgZ2V0Rmlyc3ROb2RlKGUpe2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXJldHVybiBlO2xldCBhPWUuY2hpbGROb2Rlc1swXTtyZXR1cm4gYS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFfHxhLmNoaWxkTm9kZXMubGVuZ3RoPT09MD9hOnRoaXMuZ2V0Rmlyc3ROb2RlKGEpfXN0YXRpYyBmb2N1c0xpc3RJdGVtKGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigibGkiKTtpZihhKXthLmZvY3VzKCk7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxpPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyLnNlbGVjdE5vZGVDb250ZW50cyhhKSxyLmNvbGxhcHNlKCEwKSxpLnJlbW92ZUFsbFJhbmdlcygpLGkuYWRkUmFuZ2Uocil9fX07dmFyIHdqPWNsYXNze2NvbXBvbmVudDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWNyZWF0ZUJsb2NrKGU9InBhcmFncmFwaCIsYT0iIixyKXtyZXR1cm57aWQ6UDEuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTplLGNvbnRlbnQ6YSwuLi5yJiZ7bWV0YWRhdGE6cn19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoZSxhLHI9ITApe2xldCBpPXRoaXMuY29tcG9uZW50LmJsb2NrcyxvPWkuZmluZEluZGV4KHM9PnMuaWQ9PT1lLmlkKTtpZih0aGlzLmNvbXBvbmVudC5ibG9ja3M9Wy4uLmkuc2xpY2UoMCxvKzEpLGEsLi4uaS5zbGljZShvKzEpXSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKXtsZXQgcz10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKTtpZihzKXtsZXQgbD10aGlzLmNvbXBvbmVudC5jcmVhdGVCbG9ja0VsZW1lbnQoYSk7cy5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixsKX19dGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxyJiZhLnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShzPT5zZXRUaW1lb3V0KHMsMCkpLGF3YWl0IHRoaXMuZm9jdXNCbG9jayhhLmlkLCJzdGFydCIpKX1yZW1vdmVCbG9jayhlKXtpZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSx0aGlzLmNvbXBvbmVudC5ibG9ja3M9dGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbHRlcihhPT5hLmlkIT09ZSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZil7bGV0IGE9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlfSJdYCk7YSYmYS5yZW1vdmUoKX10aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWZpbmRCbG9jayhlKXtyZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQoYT0+YS5pZD09PWUpfWdldEJsb2NrSW5kZXgoZSl7cmV0dXJuIHRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kSW5kZXgoYT0+YS5pZD09PWUpfWFzeW5jIGZvY3VzQmxvY2soZSxhPSJzdGFydCIpe2xldCByPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZX0iXWApO2lmKHIpe2xldCBpPXIucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aSYmKGF3YWl0IG5ldyBQcm9taXNlKG89PnJlcXVlc3RBbmltYXRpb25GcmFtZShvKSksaS5mb2N1c1dpdGhDdXJzb3IoYSkpfX11cGRhdGVCbG9ja0NvbnRlbnQoZSxhKXtsZXQgcj10aGlzLmZpbmRCbG9jayhlKTtyJiYoci5jb250ZW50PWEsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSl9dHJhbnNmb3JtQmxvY2soZSxhLHIpe2xldCBpPXRoaXMuZmluZEJsb2NrKGUpO2kmJih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxpLnR5cGU9YSxpLmNvbnRlbnQ9IiIsciYmKGkubWV0YWRhdGE9ciksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCkpfW1vdmVCbG9jayhlLGEpe2xldCByPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLGk9dGhpcy5nZXRCbG9ja0luZGV4KGUpO2lmKGk9PT0tMXx8YTwwfHxhPj1yLmxlbmd0aClyZXR1cm47bGV0W29dPXIuc3BsaWNlKGksMSk7ci5zcGxpY2UoYSwwLG8pLHRoaXMuY29tcG9uZW50LmJsb2Nrcz1yLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9Z2V0UHJldmlvdXNCbG9jayhlKXtsZXQgYT10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIGE+MD90aGlzLmNvbXBvbmVudC5ibG9ja3NbYS0xXTpudWxsfWdldE5leHRCbG9jayhlKXtsZXQgYT10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIGE8dGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aC0xP3RoaXMuY29tcG9uZW50LmJsb2Nrc1thKzFdOm51bGx9fTt2YXIgdTE9Y2xhc3N7c2V0dXAoZSxhLHIpe31nZXRTdHlsZXMoKXtyZXR1cm4iIn19O3ZhciBZdD1jbGFzc3tzdGF0aWMgaGFuZGxlcnM9bmV3IE1hcDtzdGF0aWMgcmVnaXN0ZXIoZSxhKXt0aGlzLmhhbmRsZXJzLnNldChlLGEpfXN0YXRpYyBnZXRIYW5kbGVyKGUpe3JldHVybiB0aGlzLmhhbmRsZXJzLmdldChlKX1zdGF0aWMgZ2V0QWxsVHlwZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmhhbmRsZXJzLmtleXMoKSl9fTtmZSgpO3ZhciBUST1jbGFzcyBleHRlbmRzIHUxe3R5cGU9InBhcmFncmFwaCI7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtyZW5kZXIoZSxhKXtsZXQgcj1hPyIgc2VsZWN0ZWQiOiIiLGk9dGhpcy5nZXRQbGFjZWhvbGRlcigpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBwYXJhZ3JhcGgke3J9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke2l9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSxhLHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFpKXtjb25zb2xlLmVycm9yKCJQYXJhZ3JhcGhCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIHBhcmFncmFwaCBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufWEuY29udGVudCYmIWkuaW5uZXJIVE1MJiYoaS5pbm5lckhUTUw9YS5jb250ZW50KSxpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixvPT57ci5vbklucHV0KG8pO2xldCBzPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7cyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPXMpfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57bGV0IHM9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtzIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249cyksci5vbktleURvd24obyl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e3Iub25Gb2N1cygpfSksaS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3Iub25CbHVyKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57ci5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57ci5vbkNvbXBvc2l0aW9uRW5kKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG89PntsZXQgcz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO3MhPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1zKSxyLm9uTW91c2VVcD8uKG8pfSksaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbz0+e3NldFRpbWVvdXQoKCk9PntsZXQgcz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO3MhPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1zKX0sMCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixvPT57bGV0IHM9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtzIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249cyl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlLGksYSl9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsYSxyKXtsZXQgaT0oKT0+e2xldCBzPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighc3x8cy5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IGw9cy50b1N0cmluZygpO2lmKGwubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6ci5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBmPWEuZ2V0Um9vdE5vZGUoKS5ob3N0LHU9Zj8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsZD1mPy5zaGFkb3dSb290LGg9W107dSYmaC5wdXNoKHUpLGQmJmgucHVzaChkKTtsZXQgZz1JZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmgpO2lmKCFnKXJldHVybjtsZXQgYj1JZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGcuc3RhcnRDb250YWluZXIpLHg9SWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxnLmVuZENvbnRhaW5lcik7aWYoYnx8eCl7aWYobCE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PWw7bGV0IG09SWUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhnKSx2PW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6bC50cmltKCksYmxvY2tJZDpyLmlkLHJhbmdlOm0scmVjdDp2LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOnIuaWQsaGFzU2VsZWN0aW9uOiExfSkpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLGkpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1pO2xldCBvPWUuY2xvc2VzdCgiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYobyl7bGV0IHM9by5kaXNjb25uZWN0ZWRDYWxsYmFjaztvLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxzJiZhd2FpdCBzLmNhbGwobyl9LmJpbmQodGhpcyl9fWRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSxhKXtsZXQgcj1uZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6YSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7ZS5kaXNwYXRjaEV2ZW50KHIpfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogUGFyYWdyYXBoIHNwZWNpZmljIHN0eWxlcyAqLwogICAgICAuYmxvY2sucGFyYWdyYXBoIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7cmV0dXJuIlR5cGUgJy8nIGZvciBjb21tYW5kcy4uLiJ9Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IGE9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO2E+PTA7YS0tKXtsZXQgcj10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbYV0pO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighcilyZXR1cm4gbnVsbDtsZXQgcz1hPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9YT8uc2hhZG93Um9vdCxmPVtdO3MmJmYucHVzaChzKSxsJiZmLnB1c2gobCk7bGV0IGM9SWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5mKTtpZighY3x8IUllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsYy5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IHU9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gdS5zZWxlY3ROb2RlQ29udGVudHMociksdS5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSx1LnRvU3RyaW5nKCkubGVuZ3RofWdldENvbnRlbnQoZSxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtyZXR1cm4gciYmci5pbm5lckhUTUx8fCIifXNldENvbnRlbnQoZSxhLHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFpKXJldHVybjtsZXQgbz1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aXx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09aTtpLmlubmVySFRNTD1hLG8mJmkuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7ciYmXzIuc2V0Q3Vyc29yVG9TdGFydChyKX1zZXRDdXJzb3JUb0VuZChlLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO3ImJl8yLnNldEN1cnNvclRvRW5kKHIpfWZvY3VzKGUsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7ciYmKHIuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8ci5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXImJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PXImJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntyLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIixyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighaSlyZXR1cm47aWYoaS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxpLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGE9PT0iZW5kIiYmaS50ZXh0Q29udGVudCYmaS50ZXh0Q29udGVudC5sZW5ndGg+MCl7bGV0IHM9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHMpe2xldCBsPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksZj10aGlzLmdldExhc3RUZXh0Tm9kZShpKXx8aTtmLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/KGwuc2V0U3RhcnQoZixmLnRleHRDb250ZW50Py5sZW5ndGh8fDApLGwuc2V0RW5kKGYsZi50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSk6KGwuc2VsZWN0Tm9kZUNvbnRlbnRzKGYpLGwuY29sbGFwc2UoITEpKSxzLnJlbW92ZUFsbFJhbmdlcygpLHMuYWRkUmFuZ2UobCl9fWkuZm9jdXMoKTtsZXQgbz0oKT0+e2E9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLHIpOmE9PT0iZW5kIiYmKCFpLnRleHRDb250ZW50fHxpLnRleHRDb250ZW50Lmxlbmd0aD09PTApP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxyKTp0eXBlb2YgYT09Im51bWJlciImJkllLnNldEN1cnNvclBvc2l0aW9uKGksYSl9O2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1pfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1pP28oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWl8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWk/bygpOnNldFRpbWVvdXQoKCk9PnsoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWl8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWkpJiZvKCl9LDEwKX0pfWdldFNwbGl0Q29udGVudChlLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFyKXJldHVybiBudWxsO2xldCBzPWE/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD1hPy5zaGFkb3dSb290LGY9W107cyYmZi5wdXNoKHMpLGwmJmYucHVzaChsKTtsZXQgYz1JZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmYpO2lmKCFjKXtpZih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IHk9ci50ZXh0Q29udGVudHx8IiIsdz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLHkubGVuZ3RoKTtyZXR1cm57YmVmb3JlOnkuc3Vic3RyaW5nKDAsdyksYWZ0ZXI6eS5zdWJzdHJpbmcodyl9fXJldHVybiBudWxsfWlmKCFJZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShyLGMuc3RhcnRDb250YWluZXIpKXtpZih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IHk9ci50ZXh0Q29udGVudHx8IiIsdz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLHkubGVuZ3RoKTtyZXR1cm57YmVmb3JlOnkuc3Vic3RyaW5nKDAsdyksYWZ0ZXI6eS5zdWJzdHJpbmcodyl9fXJldHVybiBudWxsfWxldCB1PXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSxhKTtpZih1PT09bnVsbHx8dT09PTApcmV0dXJue2JlZm9yZToiIixhZnRlcjpyLmlubmVySFRNTH07bGV0IGQ9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxoPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7ZC5zZXRTdGFydChyLDApLGQuc2V0RW5kKGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksaC5zZXRTdGFydChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGguc2V0RW5kKHIsci5jaGlsZE5vZGVzLmxlbmd0aCk7bGV0IGc9ZC5jbG9uZUNvbnRlbnRzKCksYj1oLmNsb25lQ29udGVudHMoKSx4PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3guYXBwZW5kQ2hpbGQoZyk7bGV0IG09eC5pbm5lckhUTUw7eC5pbm5lckhUTUw9IiIseC5hcHBlbmRDaGlsZChiKTtsZXQgdj14LmlubmVySFRNTDtyZXR1cm57YmVmb3JlOm0sYWZ0ZXI6dn19fTtmZSgpO3ZhciBjYz1jbGFzcyBleHRlbmRzIHUxe3R5cGU7bGV2ZWw7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMudHlwZT1lLHRoaXMubGV2ZWw9cGFyc2VJbnQoZS5zcGxpdCgiLSIpWzFdKX1yZW5kZXIoZSxhKXtsZXQgcj1hPyIgc2VsZWN0ZWQiOiIiLGk9dGhpcy5nZXRQbGFjZWhvbGRlcigpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBoZWFkaW5nLSR7dGhpcy5sZXZlbH0ke3J9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke2l9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSxhLHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFpKXtjb25zb2xlLmVycm9yKCJIZWFkaW5nQmxvY2tIYW5kbGVyLnNldHVwOiBObyBoZWFkaW5nIGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59YS5jb250ZW50JiYhaS5pbm5lckhUTUwmJihpLmlubmVySFRNTD1hLmNvbnRlbnQpLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLG89PntyLm9uSW5wdXQobyk7bGV0IHM9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtzIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249cyl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG89PntsZXQgcz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO3MhPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1zKSxyLm9uS2V5RG93bihvKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57ci5vbkZvY3VzKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57ci5vbkJsdXIoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PntyLm9uQ29tcG9zaXRpb25TdGFydCgpfSksaS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PntyLm9uQ29tcG9zaXRpb25FbmQoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbz0+e2xldCBzPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7cyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPXMpLHIub25Nb3VzZVVwPy4obyl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixvPT57c2V0VGltZW91dCgoKT0+e2xldCBzPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7cyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPXMpfSwwKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLG89PntsZXQgcz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO3MhPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1zKX0pLHRoaXMuc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsaSxhKX1zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxhLHIpe2xldCBpPSgpPT57bGV0IHM9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFzfHxzLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1zLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDpyLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGY9YS5nZXRSb290Tm9kZSgpLmhvc3QsdT1mPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxkPWY/LnNoYWRvd1Jvb3QsaD1bXTt1JiZoLnB1c2godSksZCYmaC5wdXNoKGQpO2xldCBnPUllLmdldFNlbGVjdGlvbkluZm8oLi4uaCk7aWYoIWcpcmV0dXJuO2xldCBiPUllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZy5zdGFydENvbnRhaW5lcikseD1JZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGcuZW5kQ29udGFpbmVyKTtpZihifHx4KXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgbT1JZS5jcmVhdGVSYW5nZUZyb21JbmZvKGcpLHY9bS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOnIuaWQscmFuZ2U6bSxyZWN0OnYsaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6ci5pZCxoYXNTZWxlY3Rpb246ITF9KSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsaSksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPWk7bGV0IG89YS5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobyl7bGV0IHM9by5kaXNjb25uZWN0ZWRDYWxsYmFjaztvLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxzJiZhd2FpdCBzLmNhbGwobyl9LmJpbmQodGhpcyl9fWRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSxhKXtsZXQgcj1uZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6YSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7ZS5kaXNwYXRjaEV2ZW50KHIpfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLmJsb2NrLmhlYWRpbmctMSB7CiAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgICBtYXJnaW46IDI0cHggMCA4cHggMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYmxvY2suaGVhZGluZy0yIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICAgIG1hcmdpbjogMjBweCAwIDZweCAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5oZWFkaW5nLTMgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgbWFyZ2luOiAxNnB4IDAgNHB4IDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3N3aXRjaCh0aGlzLmxldmVsKXtjYXNlIDE6cmV0dXJuIkhlYWRpbmcgMSI7Y2FzZSAyOnJldHVybiJIZWFkaW5nIDIiO2Nhc2UgMzpyZXR1cm4iSGVhZGluZyAzIjtkZWZhdWx0OnJldHVybiJIZWFkaW5nIn19Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IGE9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO2E+PTA7YS0tKXtsZXQgcj10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbYV0pO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighcilyZXR1cm4gbnVsbDtsZXQgcz1hPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9YT8uc2hhZG93Um9vdCxmPVtdO3MmJmYucHVzaChzKSxsJiZmLnB1c2gobCk7bGV0IGM9SWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5mKTtpZighY3x8IUllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsYy5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IHU9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gdS5zZWxlY3ROb2RlQ29udGVudHMociksdS5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSx1LnRvU3RyaW5nKCkubGVuZ3RofWdldENvbnRlbnQoZSxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtyZXR1cm4gciYmci5pbm5lckhUTUx8fCIifXNldENvbnRlbnQoZSxhLHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFpKXJldHVybjtsZXQgbz1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aXx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09aTtpLmlubmVySFRNTD1hLG8mJmkuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7ciYmXzIuc2V0Q3Vyc29yVG9TdGFydChyKX1zZXRDdXJzb3JUb0VuZChlLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO3ImJl8yLnNldEN1cnNvclRvRW5kKHIpfWZvY3VzKGUsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7ciYmKHIuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8ci5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXImJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PXImJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntyLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIixyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighaSlyZXR1cm47aWYoaS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxpLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGE9PT0iZW5kIiYmaS50ZXh0Q29udGVudCYmaS50ZXh0Q29udGVudC5sZW5ndGg+MCl7bGV0IHM9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHMpe2xldCBsPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksZj10aGlzLmdldExhc3RUZXh0Tm9kZShpKXx8aTtmLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/KGwuc2V0U3RhcnQoZixmLnRleHRDb250ZW50Py5sZW5ndGh8fDApLGwuc2V0RW5kKGYsZi50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSk6KGwuc2VsZWN0Tm9kZUNvbnRlbnRzKGYpLGwuY29sbGFwc2UoITEpKSxzLnJlbW92ZUFsbFJhbmdlcygpLHMuYWRkUmFuZ2UobCl9fWkuZm9jdXMoKTtsZXQgbz0oKT0+e2E9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLHIpOmE9PT0iZW5kIiYmKCFpLnRleHRDb250ZW50fHxpLnRleHRDb250ZW50Lmxlbmd0aD09PTApP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxyKTp0eXBlb2YgYT09Im51bWJlciImJkllLnNldEN1cnNvclBvc2l0aW9uKGksYSl9O2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1pfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1pP28oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWl8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWk/bygpOnNldFRpbWVvdXQoKCk9PnsoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWl8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWkpJiZvKCl9LDEwKX0pfWdldFNwbGl0Q29udGVudChlLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFyKXJldHVybiBudWxsO2xldCBzPWE/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD1hPy5zaGFkb3dSb290LGY9W107cyYmZi5wdXNoKHMpLGwmJmYucHVzaChsKTtsZXQgYz1JZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmYpO2lmKCFjKXtpZih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IHk9ci50ZXh0Q29udGVudHx8IiIsdz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLHkubGVuZ3RoKTtyZXR1cm57YmVmb3JlOnkuc3Vic3RyaW5nKDAsdyksYWZ0ZXI6eS5zdWJzdHJpbmcodyl9fXJldHVybiBudWxsfWlmKCFJZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShyLGMuc3RhcnRDb250YWluZXIpKXtpZih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IHk9ci50ZXh0Q29udGVudHx8IiIsdz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLHkubGVuZ3RoKTtyZXR1cm57YmVmb3JlOnkuc3Vic3RyaW5nKDAsdyksYWZ0ZXI6eS5zdWJzdHJpbmcodyl9fXJldHVybiBudWxsfWxldCB1PXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSxhKTtpZih1PT09bnVsbHx8dT09PTApcmV0dXJue2JlZm9yZToiIixhZnRlcjpyLmlubmVySFRNTH07bGV0IGQ9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxoPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7ZC5zZXRTdGFydChyLDApLGQuc2V0RW5kKGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksaC5zZXRTdGFydChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGguc2V0RW5kKHIsci5jaGlsZE5vZGVzLmxlbmd0aCk7bGV0IGc9ZC5jbG9uZUNvbnRlbnRzKCksYj1oLmNsb25lQ29udGVudHMoKSx4PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3guYXBwZW5kQ2hpbGQoZyk7bGV0IG09eC5pbm5lckhUTUw7eC5pbm5lckhUTUw9IiIseC5hcHBlbmRDaGlsZChiKTtsZXQgdj14LmlubmVySFRNTDtyZXR1cm57YmVmb3JlOm0sYWZ0ZXI6dn19fTtmZSgpO3ZhciBfST1jbGFzcyBleHRlbmRzIHUxe3R5cGU9InF1b3RlIjtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7c2VsZWN0aW9uSGFuZGxlcj1udWxsO3JlbmRlcihlLGEpe2xldCByPWE/IiBzZWxlY3RlZCI6IiIsaT10aGlzLmdldFBsYWNlaG9sZGVyKCk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIHF1b3RlJHtyfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHtpfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKGUsYSxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFpKXtjb25zb2xlLmVycm9yKCJRdW90ZUJsb2NrSGFuZGxlci5zZXR1cDogTm8gcXVvdGUgYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn1hLmNvbnRlbnQmJiFpLmlubmVySFRNTCYmKGkuaW5uZXJIVE1MPWEuY29udGVudCksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbz0+e3Iub25JbnB1dChvKTtsZXQgcz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO3MhPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1zKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbz0+e2xldCBzPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7cyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPXMpLHIub25LZXlEb3duKG8pfSksaS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntyLm9uRm9jdXMoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntyLm9uQmx1cigpfSksaS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e3Iub25Db21wb3NpdGlvblN0YXJ0KCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e3Iub25Db21wb3NpdGlvbkVuZCgpfSksaS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixvPT57bGV0IHM9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtzIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249cyksci5vbk1vdXNlVXA/LihvKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntzZXRUaW1lb3V0KCgpPT57bGV0IHM9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtzIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249cyl9LDApfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbz0+e2xldCBzPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7cyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPXMpfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxpLGEpfXNldHVwU2VsZWN0aW9uSGFuZGxlcihlLGEscil7bGV0IGk9KCk9PntsZXQgcz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXN8fHMucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBsPXMudG9TdHJpbmcoKTtpZihsLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOnIuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgZj1hLmdldFJvb3ROb2RlKCkuaG9zdCx1PWY/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGQ9Zj8uc2hhZG93Um9vdCxoPVtdO3UmJmgucHVzaCh1KSxkJiZoLnB1c2goZCk7bGV0IGc9SWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5oKTtpZighZylyZXR1cm47bGV0IGI9SWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxnLnN0YXJ0Q29udGFpbmVyKSx4PUllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZy5lbmRDb250YWluZXIpO2lmKGJ8fHgpe2lmKGwhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1sO2xldCBtPUllLmNyZWF0ZVJhbmdlRnJvbUluZm8oZyksdj1tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OmwudHJpbSgpLGJsb2NrSWQ6ci5pZCxyYW5nZTptLHJlY3Q6dixoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDpyLmlkLGhhc1NlbGVjdGlvbjohMX0pKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixpKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9aTtsZXQgbz1hLmdldFJvb3ROb2RlKCkuaG9zdDtpZihvKXtsZXQgcz1vLmRpc2Nvbm5lY3RlZENhbGxiYWNrO28uZGlzY29ubmVjdGVkQ2FsbGJhY2s9YXN5bmMgZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvbkhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMuc2VsZWN0aW9uSGFuZGxlciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPW51bGwpLHMmJmF3YWl0IHMuY2FsbChvKX0uYmluZCh0aGlzKX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLGEpe2xldCByPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDphLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQocil9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBRdW90ZSBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnF1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7cC5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNTU1IiwiI2IwYjBiMCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJBZGQgYSBxdW90ZS4uLiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFyKXJldHVybiBudWxsO2xldCBzPWE/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD1hPy5zaGFkb3dSb290LGY9W107cyYmZi5wdXNoKHMpLGwmJmYucHVzaChsKTtsZXQgYz1JZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmYpO2lmKCFjfHwhSWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixjLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhyKSx1LnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7cmV0dXJuIHImJnIuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KGUsYSxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFpKXJldHVybjtsZXQgbz1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aXx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09aTtpLmlubmVySFRNTD1hLG8mJmkuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtyJiZfMi5zZXRDdXJzb3JUb1N0YXJ0KHIpfXNldEN1cnNvclRvRW5kKGUsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtyJiZfMi5zZXRDdXJzb3JUb0VuZChyKX1mb2N1cyhlLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7ciYmKHIuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8ci5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXImJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PXImJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntyLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIixyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFpKXJldHVybjtpLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGkuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksaS5mb2N1cygpO2xldCBvPSgpPT57YT09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUscik6YT09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxyKTp0eXBlb2YgYT09Im51bWJlciImJkllLnNldEN1cnNvclBvc2l0aW9uKGksYSl9O2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1pfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1pP28oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1pfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1pKSYmbygpfSl9Z2V0U3BsaXRDb250ZW50KGUsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighcilyZXR1cm4gbnVsbDtsZXQgcz1hPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9YT8uc2hhZG93Um9vdCxmPVtdO3MmJmYucHVzaChzKSxsJiZmLnB1c2gobCk7bGV0IGM9SWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5mKTtpZighYyl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCB5PXIudGV4dENvbnRlbnR8fCIiLHc9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbix5Lmxlbmd0aCk7cmV0dXJue2JlZm9yZTp5LnN1YnN0cmluZygwLHcpLGFmdGVyOnkuc3Vic3RyaW5nKHcpfX1yZXR1cm4gbnVsbH1pZighSWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixjLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCB5PXIudGV4dENvbnRlbnR8fCIiLHc9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbix5Lmxlbmd0aCk7cmV0dXJue2JlZm9yZTp5LnN1YnN0cmluZygwLHcpLGFmdGVyOnkuc3Vic3RyaW5nKHcpfX1yZXR1cm4gbnVsbH1sZXQgdT10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUsYSk7aWYodT09PW51bGx8fHU9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6ci5pbm5lckhUTUx9O2xldCBkPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksaD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Quc2V0U3RhcnQociwwKSxkLnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGguc2V0U3RhcnQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxoLnNldEVuZChyLHIuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBnPWQuY2xvbmVDb250ZW50cygpLGI9aC5jbG9uZUNvbnRlbnRzKCkseD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt4LmFwcGVuZENoaWxkKGcpO2xldCBtPXguaW5uZXJIVE1MO3guaW5uZXJIVE1MPSIiLHguYXBwZW5kQ2hpbGQoYik7bGV0IHY9eC5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTptLGFmdGVyOnZ9fX07ZmUoKTtlYygpO3ZhciBBST1jbGFzcyBleHRlbmRzIHUxe3R5cGU9ImNvZGUiO2hpZ2hsaWdodFRpbWVyPW51bGw7aGlnaGxpZ2h0SnM9bnVsbDtyZW5kZXIoZSxhKXtsZXQgcj1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8InR5cGVzY3JpcHQiLGk9ZS5jb250ZW50fHwiIixvPWkuc3BsaXQoYApgKS5sZW5ndGgscz0iIjtmb3IobGV0IGY9MTtmPD1vO2YrKylzKz1gPGRpdiBjbGFzcz0ibGluZS1udW1iZXIiPiR7Zn08L2Rpdj5gO2xldCBsPXlqLm1hcChmPT57bGV0IGM9Zi50b0xvd2VyQ2FzZSgpO3JldHVybmA8b3B0aW9uIHZhbHVlPSIke2N9IiAke2M9PT1yPyJzZWxlY3RlZCI6IiJ9PiR7Zn08L29wdGlvbj5gfSkuam9pbigiIik7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrLWNvbnRhaW5lciR7YT8iIHNlbGVjdGVkIjoiIn0iIGRhdGEtbGFuZ3VhZ2U9IiR7cn0iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtaGVhZGVyIj4KICAgICAgICAgIDxzZWxlY3QgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIiBkYXRhLWJsb2NrLWlkPSIke2UuaWR9Ij4KICAgICAgICAgICAgJHtsfQogICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWJ1dHRvbiIgdGl0bGU9IkNvcHkgY29kZSI+CiAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNvcHktaWNvbiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTAgNi43NUMwIDUuNzg0Ljc4NCA1IDEuNzUgNWgxLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMS41YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWg3LjVhLjI1LjI1IDAgMDAuMjUtLjI1di0xLjVhLjc1Ljc1IDAgMDExLjUgMHYxLjVBMS43NSAxLjc1IDAgMDE5LjI1IDE2aC03LjVBMS43NSAxLjc1IDAgMDEwIDE0LjI1di03LjV6Ij48L3BhdGg+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMS43NUM1IC43ODQgNS43ODQgMCA2Ljc1IDBoNy41QzE1LjIxNiAwIDE2IC43ODQgMTYgMS43NXY3LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxMWgtNy41QTEuNzUgMS43NSAwIDAxNSA5LjI1di03LjV6bTEuNzUtLjI1YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWg3LjVhLjI1LjI1IDAgMDAuMjUtLjI1di03LjVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNy41eiI+PC9wYXRoPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdGV4dCI+Q29weTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYm9keSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlcnMiPiR7c308L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtY29udGVudCI+CiAgICAgICAgICAgIDxwcmUgY2xhc3M9ImNvZGUtcHJlIj48Y29kZSBjbGFzcz0iY29kZS1lZGl0b3IiIAogICAgICAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9ImZhbHNlIj4ke3RoaXMuZXNjYXBlSHRtbChpKX08L2NvZGU+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsYSxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1ibG9jay1jb250YWluZXIiKSxzPWUucXVlcnlTZWxlY3RvcigiLmNvcHktYnV0dG9uIiksbD1lLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1zZWxlY3RvciIpO2lmKCFpfHwhbylyZXR1cm47bCYmbC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGM9PntsZXQgdT1jLnRhcmdldC52YWx1ZTthLm1ldGFkYXRhPXsuLi5hLm1ldGFkYXRhLGxhbmd1YWdlOnV9LG8uc2V0QXR0cmlidXRlKCJkYXRhLWxhbmd1YWdlIix1KSxhLmNvbnRlbnQmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1pJiZ0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUsYSksci5vbklucHV0JiZyLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpfSkscyYmcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e2xldCBjPWkudGV4dENvbnRlbnR8fCIiO3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChjKTtsZXQgdT1zLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRleHQiKSxkPXUudGV4dENvbnRlbnQ7dS50ZXh0Q29udGVudD0iQ29waWVkISIscy5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KCgpPT57dS50ZXh0Q29udGVudD1kLHMuY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9Y2F0Y2godSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHk6Iix1KTtsZXQgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO2QudmFsdWU9YyxkLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsZC5zdHlsZS5vcGFjaXR5PSIwIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGQpLGQuc2VsZWN0KCk7dHJ5e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iik7bGV0IGg9cy5xdWVyeVNlbGVjdG9yKCIuY29weS10ZXh0IiksZz1oLnRleHRDb250ZW50O2gudGV4dENvbnRlbnQ9IkNvcGllZCEiLHMuY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dCgoKT0+e2gudGV4dENvbnRlbnQ9ZyxzLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfWNhdGNoKGgpe2NvbnNvbGUuZXJyb3IoIkZhbGxiYWNrIGNvcHkgZmFpbGVkOiIsaCl9ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkKX19KTtsZXQgZj0hMTtpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2Y9ITAsby5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIik7bGV0IGM9aS50ZXh0Q29udGVudHx8IiI7aS50ZXh0Q29udGVudD1jLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2xldCB1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksZD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aS5maXJzdENoaWxkJiYodS5zZXRTdGFydChpLmZpcnN0Q2hpbGQsMCksdS5jb2xsYXBzZSghMCksZD8ucmVtb3ZlQWxsUmFuZ2VzKCksZD8uYWRkUmFuZ2UodSkpfSksci5vbkZvY3VzKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Zj0hMSxvLmNsYXNzTGlzdC5yZW1vdmUoImVkaXRpbmciKSx0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUsYSksci5vbkJsdXIoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGM9PntyLm9uSW5wdXQoYyksdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKSxjbGVhclRpbWVvdXQodGhpcy5oaWdobGlnaHRUaW1lcil9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGM9PntpZihjLmtleT09PSJUYWIiKXtjLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHUmJnUucmFuZ2VDb3VudD4wKXtsZXQgZD11LmdldFJhbmdlQXQoMCksaD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICAiKTtkLmluc2VydE5vZGUoaCksZC5zZXRTdGFydEFmdGVyKGgpLGQuc2V0RW5kQWZ0ZXIoaCksdS5yZW1vdmVBbGxSYW5nZXMoKSx1LmFkZFJhbmdlKGQpLHIub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSksdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKX1yZXR1cm59aWYoWyJBcnJvd0xlZnQiLCJBcnJvd1JpZ2h0IiwiQXJyb3dVcCIsIkFycm93RG93biJdLmluY2x1ZGVzKGMua2V5KSl7bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKSxkPWkudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZihjLmtleT09PSJBcnJvd0xlZnQiJiZ1PT09MHx8Yy5rZXk9PT0iQXJyb3dSaWdodCImJnU9PT1kKXtyLm9uS2V5RG93bihjKTtyZXR1cm59aWYoYy5rZXk9PT0iQXJyb3dVcCJ8fGMua2V5PT09IkFycm93RG93biIpe2xldCBoPShpLnRleHRDb250ZW50fHwiIikuc3BsaXQoYApgKSxnPXRoaXMuZ2V0Q3VycmVudExpbmVJbmRleChpKTtpZihjLmtleT09PSJBcnJvd1VwIiYmZz09PTB8fGMua2V5PT09IkFycm93RG93biImJmc9PT1oLmxlbmd0aC0xKXtyLm9uS2V5RG93bihjKTtyZXR1cm59fX1yLm9uS2V5RG93bihjKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLGM9PntjLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9Yy5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCJ0ZXh0L3BsYWluIik7aWYodSl7bGV0IGQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGQmJmQucmFuZ2VDb3VudD4wKXtsZXQgaD1kLmdldFJhbmdlQXQoMCk7aC5kZWxldGVDb250ZW50cygpO2xldCBnPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHUpO2guaW5zZXJ0Tm9kZShnKSxoLnNldFN0YXJ0QWZ0ZXIoZyksaC5zZXRFbmRBZnRlcihnKSxkLnJlbW92ZUFsbFJhbmdlcygpLGQuYWRkUmFuZ2UoaCksci5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpfX19KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT5yLm9uQ29tcG9zaXRpb25TdGFydCgpKSxpLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+ci5vbkNvbXBvc2l0aW9uRW5kKCkpLGEuY29udGVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWkmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSxhKX0pfXVwZGF0ZUxpbmVOdW1iZXJzKGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIikscj1lLnF1ZXJ5U2VsZWN0b3IoIi5saW5lLW51bWJlcnMiKTtpZighYXx8IXIpcmV0dXJuO2xldCBzPShhLnRleHRDb250ZW50fHwiIikuc3BsaXQoYApgKS5sZW5ndGh8fDEsbD0iIjtmb3IobGV0IGY9MTtmPD1zO2YrKylsKz1gPGRpdiBjbGFzcz0ibGluZS1udW1iZXIiPiR7Zn08L2Rpdj5gO3IuaW5uZXJIVE1MPWx9Z2V0Q3VycmVudExpbmVJbmRleChlKXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWF8fGEucmFuZ2VDb3VudD09PTApcmV0dXJuIDA7bGV0IHI9YS5nZXRSYW5nZUF0KDApLGk9ci5jbG9uZVJhbmdlKCk7cmV0dXJuIGkuc2VsZWN0Tm9kZUNvbnRlbnRzKGUpLGkuc2V0RW5kKHIuc3RhcnRDb250YWluZXIsci5zdGFydE9mZnNldCksaS50b1N0cmluZygpLnNwbGl0KGAKYCkubGVuZ3RoLTF9YXN5bmMgYXBwbHlIaWdobGlnaHRpbmcoZSxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKCFyKXJldHVybjt0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCBIMi5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgaT10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpLG89ci50ZXh0Q29udGVudHx8IiIscz1hLm1ldGFkYXRhPy5sYW5ndWFnZXx8InR5cGVzY3JpcHQiO3RyeXtsZXQgbD10aGlzLmhpZ2hsaWdodEpzLmhpZ2hsaWdodChvLHtsYW5ndWFnZTpzLGlnbm9yZUlsbGVnYWxzOiEwfSk7bC52YWx1ZSYmKHIuaW5uZXJIVE1MPWwudmFsdWUsZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXImJmkhPT1udWxsJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntJZS5zZXRDdXJzb3JQb3NpdGlvbihyLGkpfSkpfWNhdGNoKGwpe2NvbnNvbGUud2FybigiU3ludGF4IGhpZ2hsaWdodGluZyBmYWlsZWQ6IixsKX19ZXNjYXBlSHRtbChlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1lLGEuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIGUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik/LnRleHRDb250ZW50fHwiIn1zZXRDb250ZW50KGUsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZihyJiYoci50ZXh0Q29udGVudD1hLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXIpKXtsZXQgaT17aWQ6ci5kYXRhc2V0LmJsb2NrSWR8fCIiLHR5cGU6ImNvZGUiLGNvbnRlbnQ6YSxtZXRhZGF0YTp7bGFuZ3VhZ2U6ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWxhbmd1YWdlIil8fCJ0eXBlc2NyaXB0In19O3RoaXMuYXBwbHlIaWdobGlnaHRpbmcoZSxpKX19Z2V0Q3Vyc29yUG9zaXRpb24oZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXJ8fHIucmFuZ2VDb3VudD09PTApcmV0dXJuIG51bGw7bGV0IGk9ci5nZXRSYW5nZUF0KDApO2lmKCFhLmNvbnRhaW5zKGkuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBvPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIG8uc2VsZWN0Tm9kZUNvbnRlbnRzKGEpLG8uc2V0RW5kKGkuc3RhcnRDb250YWluZXIsaS5zdGFydE9mZnNldCksby50b1N0cmluZygpLmxlbmd0aH1zZXRDdXJzb3JUb1N0YXJ0KGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7YSYmSWUuc2V0Q3Vyc29yUG9zaXRpb24oYSwwKX1zZXRDdXJzb3JUb0VuZChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKGEpe2xldCByPWEudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtJZS5zZXRDdXJzb3JQb3NpdGlvbihhLHIpfX1mb2N1cyhlKXtlLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLGE9ImVuZCIpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7ciYmKHIuZm9jdXMoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PnthPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSk6YT09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSk6dHlwZW9mIGE9PSJudW1iZXIiJiZJZS5zZXRDdXJzb3JQb3NpdGlvbihyLGEpfSkpfWdldFNwbGl0Q29udGVudChlKXtsZXQgYT10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO2lmKGE9PT1udWxsKXJldHVybiBudWxsO2xldCByPXRoaXMuZ2V0Q29udGVudChlKTtyZXR1cm57YmVmb3JlOnIuc3Vic3RyaW5nKDAsYSksYWZ0ZXI6ci5zdWJzdHJpbmcoYSl9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQ29kZSBCbG9jayBDb250YWluZXIgLSBNaW5pbWFsaXN0IHNoYWRjbiBzdHlsZSAqLwogICAgICAuY29kZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAtIFNpbXBsaWZpZWQgKi8KICAgICAgLmNvZGUtaGVhZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3RvciB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3I6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3I6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb3B5IEJ1dHRvbiAtIE1pbmltYWwgKi8KICAgICAgLmNvcHktYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b24uY29waWVkIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwNTk2NjkiLCIjMTBiOTgxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciAuY29weS1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAuY29weS10ZXh0IHsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2RlIEJvZHkgKi8KICAgICAgLmNvZGUtYm9keSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBMaW5lIE51bWJlcnMgLSBTdWJ0bGUgKi8KICAgICAgLmxpbmUtbnVtYmVycyB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogMTJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogNDBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5saW5lLW51bWJlciB7CiAgICAgICAgcGFkZGluZzogMCAxMnB4IDAgOHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7amx9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvZGUgQ29udGVudCAqLwogICAgICAuY29kZS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1wcmUgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7amx9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgfQogICAgICAKICAgICAgLyogUGxhY2Vob2xkZXIgKi8KICAgICAgLmNvZGUtZWRpdG9yOmVtcHR5OjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICIvLyBUeXBlIG9yIHBhc3RlIGNvZGUgaGVyZS4uLiI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogV2hlbiBlZGl0aW5nIChmb2N1c2VkKSwgc2hvdyBncmV5IHRleHQgd2l0aG91dCBoaWdobGlnaHRpbmcgKi8KICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgLmNvZGUtZWRpdG9yIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIC5jb2RlLWVkaXRvciAqIHsKICAgICAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAvKiBTeW50YXggSGlnaGxpZ2h0aW5nIC0gTXV0ZWQgY29sb3JzICovCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1rZXl3b3JkIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zdHJpbmcgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1udW1iZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1mdW5jdGlvbiB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWNvbW1lbnQgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzZiNzI4MCIsIiM2YjcyODAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdmFyaWFibGUsCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1hdHRyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtY2xhc3MsCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy10aXRsZSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtcGFyYW1zIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYnVpbHRfaW4gewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1saXRlcmFsIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtbWV0YSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXB1bmN0dWF0aW9uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzNzQxNTEiLCIjZDFkNWRiIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdGFnIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYXR0cmlidXRlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItdGFnIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci1pZCB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogU2VsZWN0aW9uICovCiAgICAgIC5jb2RlLWVkaXRvcjo6c2VsZWN0aW9uLAogICAgICAuY29kZS1lZGl0b3IgKjo6c2VsZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSg5OSwgMTAyLCAyNDEsIDAuMikiLCJyZ2JhKDk5LCAxMDIsIDI0MSwgMC4zKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgLSBNaW5pbWFsICovCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgYH19O2ZlKCk7dmFyICRJPWNsYXNzIGV4dGVuZHMgdTF7dHlwZT0ibGlzdCI7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtyZW5kZXIoZSxhKXtsZXQgcj1hPyIgc2VsZWN0ZWQiOiIiLG89KGUubWV0YWRhdGE/Lmxpc3RUeXBlfHwidW5vcmRlcmVkIik9PT0ib3JkZXJlZCI/Im9sIjoidWwiLHM9dGhpcy5yZW5kZXJMaXN0Q29udGVudChlLmNvbnRlbnQsZS5tZXRhZGF0YSk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIGxpc3Qke3J9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IgogICAgICA+JHtzfTwvZGl2PgogICAgYH1yZW5kZXJMaXN0Q29udGVudChlLGEpe2lmKCFlKXJldHVybiI8dWw+PGxpPjwvbGk+PC91bD4iO2xldCBpPShhPy5saXN0VHlwZXx8InVub3JkZXJlZCIpPT09Im9yZGVyZWQiPyJvbCI6InVsIixvPWUuc3BsaXQoYApgKS5maWx0ZXIobD0+bC50cmltKCkpO2lmKG8ubGVuZ3RoPT09MClyZXR1cm5gPCR7aX0+PGxpPjwvbGk+PC8ke2l9PmA7bGV0IHM9by5tYXAobD0+YDxsaT4ke2x9PC9saT5gKS5qb2luKCIiKTtyZXR1cm5gPCR7aX0+JHtzfTwvJHtpfT5gfXNldHVwKGUsYSxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWkpe2NvbnNvbGUuZXJyb3IoIkxpc3RCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIGxpc3QgYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn1hLmNvbnRlbnQmJiFpLmlubmVySFRNTCYmKGkuaW5uZXJIVE1MPXRoaXMucmVuZGVyTGlzdENvbnRlbnQoYS5jb250ZW50LGEubWV0YWRhdGEpKSxpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixvPT57ci5vbklucHV0KG8pO2xldCBzPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7cyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPXMpfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57bGV0IHM9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtpZihzIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249cyksby5rZXk9PT0iRW50ZXIiJiYhby5zaGlmdEtleSl7bGV0IGw9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGwmJmwucmFuZ2VDb3VudD4wKXtsZXQgYz1sLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIucGFyZW50RWxlbWVudD8uY2xvc2VzdCgibGkiKTtpZihjJiZjLnRleHRDb250ZW50PT09IiIpe28ucHJldmVudERlZmF1bHQoKSxyLm9uS2V5RG93bihvKTtyZXR1cm59fX1yLm9uS2V5RG93bihvKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57ci5vbkZvY3VzKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57ci5vbkJsdXIoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PntyLm9uQ29tcG9zaXRpb25TdGFydCgpfSksaS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PntyLm9uQ29tcG9zaXRpb25FbmQoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbz0+e2xldCBzPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7cyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPXMpLHIub25Nb3VzZVVwPy4obyl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixvPT57c2V0VGltZW91dCgoKT0+e2xldCBzPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7cyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPXMpfSwwKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLG89PntsZXQgcz10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO3MhPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1zKX0pLHRoaXMuc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUsaSxhKX1zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxhLHIpe2xldCBpPSgpPT57bGV0IHM9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFzfHxzLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbD1zLnRvU3RyaW5nKCk7aWYobC5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDpyLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGY9YS5nZXRSb290Tm9kZSgpLmhvc3QsdT1mPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxkPWY/LnNoYWRvd1Jvb3QsaD1bXTt1JiZoLnB1c2godSksZCYmaC5wdXNoKGQpO2xldCBnPUllLmdldFNlbGVjdGlvbkluZm8oLi4uaCk7aWYoIWcpcmV0dXJuO2xldCBiPUllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZy5zdGFydENvbnRhaW5lcikseD1JZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGcuZW5kQ29udGFpbmVyKTtpZihifHx4KXtpZihsIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bDtsZXQgbT1JZS5jcmVhdGVSYW5nZUZyb21JbmZvKGcpLHY9bS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpsLnRyaW0oKSxibG9ja0lkOnIuaWQscmFuZ2U6bSxyZWN0OnYsaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6ci5pZCxoYXNTZWxlY3Rpb246ITF9KSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsaSksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPWk7bGV0IG89YS5nZXRSb290Tm9kZSgpLmhvc3Q7aWYobyl7bGV0IHM9by5kaXNjb25uZWN0ZWRDYWxsYmFjaztvLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxzJiZhd2FpdCBzLmNhbGwobyl9LmJpbmQodGhpcyl9fWRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSxhKXtsZXQgcj1uZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6YSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7ZS5kaXNwYXRjaEV2ZW50KHIpfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogTGlzdCBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLmxpc3QgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ibG9jay5saXN0IHVsLAogICAgICAuYmxvY2subGlzdCBvbCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmJsb2NrLmxpc3QgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgfQogICAgICAKICAgICAgLmJsb2NrLmxpc3QgbGk6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiIifWdldEN1cnNvclBvc2l0aW9uKGUsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFyKXJldHVybiBudWxsO2xldCBzPWE/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsbD1hPy5zaGFkb3dSb290LGY9W107cyYmZi5wdXNoKHMpLGwmJmYucHVzaChsKTtsZXQgYz1JZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmYpO2lmKCFjfHwhSWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixjLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhyKSx1LnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighcilyZXR1cm4iIjtsZXQgaT1yLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIik7cmV0dXJuIEFycmF5LmZyb20oaSkubWFwKHM9PnMudGV4dENvbnRlbnR8fCIiKS5qb2luKGAKYCl9c2V0Q29udGVudChlLGEscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFpKXJldHVybjtsZXQgbz1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aXx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09aSxsPWkucXVlcnlTZWxlY3RvcigidWwsIG9sIik/LnRhZ05hbWU9PT0iT0wiO2kuaW5uZXJIVE1MPXRoaXMucmVuZGVyTGlzdENvbnRlbnQoYSx7bGlzdFR5cGU6bD8ib3JkZXJlZCI6InVub3JkZXJlZCJ9KSxvJiZpLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydChlLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighcilyZXR1cm47bGV0IGk9ci5xdWVyeVNlbGVjdG9yKCJsaSIpO2lmKGkpe2xldCBvPXRoaXMuZ2V0Rmlyc3RUZXh0Tm9kZShpKTtpZihvKXtsZXQgcz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGw9d2luZG93LmdldFNlbGVjdGlvbigpO3Muc2V0U3RhcnQobywwKSxzLnNldEVuZChvLDApLGw/LnJlbW92ZUFsbFJhbmdlcygpLGw/LmFkZFJhbmdlKHMpfX19c2V0Q3Vyc29yVG9FbmQoZSxhKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXIpcmV0dXJuO2xldCBpPXIucXVlcnlTZWxlY3RvcigibGk6bGFzdC1jaGlsZCIpO2lmKGkpe2xldCBvPXRoaXMuZ2V0TGFzdFRleHROb2RlKGkpO2lmKG8pe2xldCBzPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksbD13aW5kb3cuZ2V0U2VsZWN0aW9uKCksZj1vLnRleHRDb250ZW50Py5sZW5ndGh8fDA7cy5zZXRTdGFydChvLGYpLHMuc2V0RW5kKG8sZiksbD8ucmVtb3ZlQWxsUmFuZ2VzKCksbD8uYWRkUmFuZ2Uocyl9fX1nZXRGaXJzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IGE9MDthPGUuY2hpbGROb2Rlcy5sZW5ndGg7YSsrKXtsZXQgcj10aGlzLmdldEZpcnN0VGV4dE5vZGUoZS5jaGlsZE5vZGVzW2FdKTtpZihyKXJldHVybiByfXJldHVybiBudWxsfWdldExhc3RUZXh0Tm9kZShlKXtpZihlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIGU7Zm9yKGxldCBhPWUuY2hpbGROb2Rlcy5sZW5ndGgtMTthPj0wO2EtLSl7bGV0IHI9dGhpcy5nZXRMYXN0VGV4dE5vZGUoZS5jaGlsZE5vZGVzW2FdKTtpZihyKXJldHVybiByfXJldHVybiBudWxsfWZvY3VzKGUsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO3ImJihyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksci5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1yJiZlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1yJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57ci5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihlLGE9ImVuZCIscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFpKXJldHVybjtpLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGkuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksaS5mb2N1cygpO2xldCBvPSgpPT57YT09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUscik6YT09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxyKTp0eXBlb2YgYT09Im51bWJlciImJnRoaXMuc2V0Q3Vyc29yVG9FbmQoZSxyKX07ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWl8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWk/bygpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnsoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWl8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWkpJiZvKCl9KX1nZXRTcGxpdENvbnRlbnQoZSxhKXtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpLG51bGx9fTtmZSgpO3ZhciBEST1jbGFzcyBleHRlbmRzIHUxe3R5cGU9ImltYWdlIjtyZW5kZXIoZSxhKXtsZXQgcj1lLm1ldGFkYXRhPy51cmwsaT1lLmNvbnRlbnR8fCJJbWFnZSIsbz1lLm1ldGFkYXRhPy5sb2FkaW5nO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtYmxvY2stY29udGFpbmVyJHthPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICBkYXRhLWhhcy1pbWFnZT0iJHshIXJ9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAke28/dGhpcy5yZW5kZXJMb2FkaW5nKCk6cj90aGlzLnJlbmRlckltYWdlKHIsaSk6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcigpfQogICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiAKICAgICAgICAgICAgICAgY2xhc3M9ImltYWdlLWZpbGUtaW5wdXQiIAogICAgICAgICAgICAgICBhY2NlcHQ9ImltYWdlLyoiIAogICAgICAgICAgICAgICBzdHlsZT0iZGlzcGxheTogbm9uZTsiIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyI+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLWljb24iIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPgogICAgICAgICAgPHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgcnk9IjIiLz4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iOC41IiBjeT0iOC41IiByPSIxLjUiLz4KICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz0iMjEgMTUgMTYgMTAgNSAyMSIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLXRleHQiIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPkNsaWNrIHRvIHVwbG9hZCBhbiBpbWFnZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1oaW50IiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij5vciBkcmFnIGFuZCBkcm9wPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJJbWFnZShlLGEpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtY29udGFpbmVyIj4KICAgICAgICA8aW1nIHNyYz0iJHtlfSIgYWx0PSIke3RoaXMuZXNjYXBlSHRtbChhKX0iIC8+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJMb2FkaW5nKCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS1sb2FkaW5nIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctdGV4dCI+VXBsb2FkaW5nIGltYWdlLi4uPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLGEscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIiksbz1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1maWxlLWlucHV0Iik7aWYoIWkpe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBjb250YWluZXIiKTtyZXR1cm59aWYoIW8pe2NvbnNvbGUuZXJyb3IoIkltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBmaWxlIGlucHV0Iik7cmV0dXJufWxldCBzPWkucXVlcnlTZWxlY3RvcigiLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciIpO3MmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFBsYWNlaG9sZGVyIGNsaWNrZWQsIG9wZW5pbmcgZmlsZSBzZWxlY3RvciIpLG8uY2xpY2soKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci5vbkZvY3VzKCl9KSxvLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYXN5bmMgbD0+e2xldCBjPWwudGFyZ2V0LmZpbGVzPy5bMF07YyYmKGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogRmlsZSBzZWxlY3RlZDoiLGMubmFtZSksYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKGMsYSxyKSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksYS5tZXRhZGF0YT8udXJsfHxpLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSksaS5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxpLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksaS5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixhc3luYyBsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksaS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTtsZXQgZj1sLmRhdGFUcmFuc2Zlcj8uZmlsZXNbMF07ZiYmZi50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiYhYS5tZXRhZGF0YT8udXJsJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVVcGxvYWQoZixhLHIpfSksaS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnIub25Gb2N1cygpKSxpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5yLm9uQmx1cigpKSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PntpZigobC5rZXk9PT0iRGVsZXRlInx8bC5rZXk9PT0iQmFja3NwYWNlIikmJmEubWV0YWRhdGE/LnVybCl7YS5tZXRhZGF0YS51cmw9dm9pZCAwLGEubWV0YWRhdGEubG9hZGluZz0hMSxhLmNvbnRlbnQ9IiIsci5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKTtyZXR1cm59ci5vbktleURvd24obCl9KX1hc3luYyBoYW5kbGVGaWxlVXBsb2FkKGUsYSxyKXtpZihjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFN0YXJ0aW5nIGZpbGUgdXBsb2FkIix7ZmlsZU5hbWU6ZS5uYW1lLGZpbGVTaXplOmUuc2l6ZSxibG9ja0lkOmEuaWR9KSwhZS50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGZpbGUgdHlwZToiLGUudHlwZSk7cmV0dXJufWxldCBpPTEwKjEwMjQqMTAyNDtpZihlLnNpemU+aSl7Y29uc29sZS5lcnJvcigiRmlsZSB0b28gbGFyZ2UuIE1heGltdW0gc2l6ZSBpcyAxME1CIik7cmV0dXJufWEubWV0YWRhdGF8fChhLm1ldGFkYXRhPXt9KSxhLm1ldGFkYXRhLmxvYWRpbmc9ITAsYS5tZXRhZGF0YS5maWxlTmFtZT1lLm5hbWUsYS5tZXRhZGF0YS5maWxlU2l6ZT1lLnNpemUsYS5tZXRhZGF0YS5taW1lVHlwZT1lLnR5cGUsY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBTZXQgbG9hZGluZyBzdGF0ZSwgcmVxdWVzdGluZyB1cGRhdGUiKSxyLm9uUmVxdWVzdFVwZGF0ZT8uKCk7dHJ5e2xldCBvPWF3YWl0IHRoaXMuZmlsZVRvRGF0YVVybChlKTthLm1ldGFkYXRhLnVybD1vLGEubWV0YWRhdGEubG9hZGluZz0hMTtsZXQgcz1lLm5hbWUucmVwbGFjZSgvXC5bXi8uXSskLywiIik7YS5jb250ZW50PXMsY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBVcGxvYWQgY29tcGxldGUsIHJlcXVlc3RpbmcgdXBkYXRlIix7aGFzVXJsOiEhYS5tZXRhZGF0YS51cmwsdXJsTGVuZ3RoOm8ubGVuZ3RoLGFsdFRleHQ6YS5jb250ZW50fSksci5vblJlcXVlc3RVcGRhdGU/LigpfWNhdGNoKG8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGxvYWQgaW1hZ2U6IixvKSxhLm1ldGFkYXRhLmxvYWRpbmc9ITEsci5vblJlcXVlc3RVcGRhdGU/LigpfX1maWxlVG9EYXRhVXJsKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoYSxyKT0+e2xldCBpPW5ldyBGaWxlUmVhZGVyO2kub25sb2FkPW89PntsZXQgcz1vLnRhcmdldD8ucmVzdWx0O3R5cGVvZiBzPT0ic3RyaW5nIj9hKHMpOnIobmV3IEVycm9yKCJGYWlsZWQgdG8gcmVhZCBmaWxlIikpfSxpLm9uZXJyb3I9cixpLnJlYWRBc0RhdGFVUkwoZSl9KX1lc2NhcGVIdG1sKGUpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBhLnRleHRDb250ZW50PWUsYS5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUsYSl7bGV0IHI9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO3ImJihyLmNvbnRlbnQ9YSl9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIHI/e2lkOnIsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXt0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe3RoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7ZS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBJbWFnZSBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtwLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBVcGxvYWQgUGxhY2Vob2xkZXIgKi8KICAgICAgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lcjpob3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZWZmNmZmIiwiIzFlMWI0YiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnVwbG9hZC1pY29uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtaGludCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEltYWdlIENvbnRhaW5lciAqLwogICAgICAuaW1hZ2UtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtY29udGFpbmVyIGltZyB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIExvYWRpbmcgU3RhdGUgKi8KICAgICAgLmltYWdlLWxvYWRpbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtwLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQogICAgICAKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQogICAgICAKICAgICAgLmxvYWRpbmctdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZpbGUgaW5wdXQgaGlkZGVuICovCiAgICAgIC5pbWFnZS1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fTtmZSgpO3ZhciBFST1jbGFzcyBleHRlbmRzIHUxe3R5cGU9InlvdXR1YmUiO3JlbmRlcihlLGEpe2xldCByPWUubWV0YWRhdGE/LnZpZGVvSWQsaT1lLm1ldGFkYXRhPy51cmx8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1ibG9jay1jb250YWluZXIke2E/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtaGFzLXZpZGVvPSIkeyEhcn0iPgogICAgICAgICR7cj90aGlzLnJlbmRlclZpZGVvKHIpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIoaSl9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtcGxhY2Vob2xkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLWljb24iPgogICAgICAgICAgPHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYxNSAzLjE4NGMtMy42MDQtLjI0Ni0xMS42MzEtLjI0NS0xNS4yMyAwLTMuODk3LjI2Ni00LjM1NiAyLjYyLTQuMzg1IDguODE2LjAyOSA2LjE4NS40ODQgOC41NDkgNC4zODUgOC44MTYgMy42LjI0NSAxMS42MjYuMjQ2IDE1LjIzIDAgMy44OTctLjI2NiA0LjM1Ni0yLjYyIDQuMzg1LTguODE2LS4wMjktNi4xODUtLjQ4NC04LjU0OS00LjM4NS04LjgxNnptLTEwLjYxNSAxMi44MTZ2LThsOCAzLjk5My04IDQuMDA3eiIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+RW50ZXIgWW91VHViZSBVUkw8L2Rpdj4KICAgICAgICA8aW5wdXQgdHlwZT0idXJsIiAKICAgICAgICAgICAgICAgY2xhc3M9InlvdXR1YmUtdXJsLWlucHV0IiAKICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Imh0dHBzOi8veW91dHViZS5jb20vd2F0Y2g/dj0uLi4iIAogICAgICAgICAgICAgICB2YWx1ZT0iJHt0aGlzLmVzY2FwZUh0bWwoZSl9IiAvPgogICAgICAgIDxidXR0b24gY2xhc3M9InlvdXR1YmUtZW1iZWQtYnRuIj5FbWJlZCBWaWRlbzwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVmlkZW8oZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLWNvbnRhaW5lciI+CiAgICAgICAgPGlmcmFtZSAKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtlfSIKICAgICAgICAgIGZyYW1lYm9yZGVyPSIwIgogICAgICAgICAgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmUiCiAgICAgICAgICBhbGxvd2Z1bGxzY3JlZW4KICAgICAgICA+PC9pZnJhbWU+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLGEscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKTtpZighaSlyZXR1cm47aWYoYS5tZXRhZGF0YT8udmlkZW9JZCl7aS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLGkuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5yLm9uRm9jdXMoKSksaS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+ci5vbkJsdXIoKSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixsPT57KGwua2V5PT09IkRlbGV0ZSJ8fGwua2V5PT09IkJhY2tzcGFjZSIpJiZsLnByZXZlbnREZWZhdWx0KCksci5vbktleURvd24obCl9KTtyZXR1cm59bGV0IG89ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS11cmwtaW5wdXQiKSxzPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtZW1iZWQtYnRuIik7IW98fCFzfHwoby5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnIub25Gb2N1cygpKSxvLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5yLm9uQmx1cigpKSxzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuZW1iZWRWaWRlbyhvLnZhbHVlLGEscil9KSxvLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PntsLmtleT09PSJFbnRlciI/KGwucHJldmVudERlZmF1bHQoKSx0aGlzLmVtYmVkVmlkZW8oby52YWx1ZSxhLHIpKTpsLmtleT09PSJFc2NhcGUiJiYobC5wcmV2ZW50RGVmYXVsdCgpLG8uYmx1cigpKX0pLG8uYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLGw9PntzZXRUaW1lb3V0KCgpPT57bGV0IGY9by52YWx1ZTt0aGlzLmV4dHJhY3RZb3VUdWJlVmlkZW9JZChmKSYmdGhpcy5lbWJlZFZpZGVvKGYsYSxyKX0sMCl9KSxvLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+e2EubWV0YWRhdGF8fChhLm1ldGFkYXRhPXt9KSxhLm1ldGFkYXRhLnVybD1vLnZhbHVlfSkpfWVtYmVkVmlkZW8oZSxhLHIpe2xldCBpPXRoaXMuZXh0cmFjdFlvdVR1YmVWaWRlb0lkKGUpO2lmKCFpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIFlvdVR1YmUgVVJMIik7cmV0dXJufWEubWV0YWRhdGF8fChhLm1ldGFkYXRhPXt9KSxhLm1ldGFkYXRhLnZpZGVvSWQ9aSxhLm1ldGFkYXRhLnVybD1lLGEuY29udGVudD1gWW91VHViZSBWaWRlbzogJHtpfWAsci5vblJlcXVlc3RVcGRhdGU/LigpfWV4dHJhY3RZb3VUdWJlVmlkZW9JZChlKXtsZXQgYT1bLyg/OnlvdXR1YmVcLmNvbVwvKD86W15cL10rXC8uK1wvfCg/OnZ8ZSg/Om1iZWQpPylcL3wuKls/Jl12PSl8eW91dHVcLmJlXC8pKFteIiY/XC8gXXsxMX0pLywveW91dHViZVwuY29tXC9lbWJlZFwvKFteIiY/XC8gXXsxMX0pLywveW91dHViZVwuY29tXC93YXRjaFw/dj0oW14iJj9cLyBdezExfSkvLC95b3V0dVwuYmVcLyhbXiImP1wvIF17MTF9KS9dO2ZvcihsZXQgciBvZiBhKXtsZXQgaT1lLm1hdGNoKHIpO2lmKGkpcmV0dXJuIGlbMV19cmV0dXJuIG51bGx9ZXNjYXBlSHRtbChlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1lLGEuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLGEpe2xldCByPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTtyJiYoci5jb250ZW50PWEpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIHI/e2lkOnIsdHlwZToieW91dHViZSIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS11cmwtaW5wdXQiKTtyP3IuZm9jdXMoKTphJiZhLmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBZb3VUdWJlIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAueW91dHViZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke3AuYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFlvdVR1YmUgUGxhY2Vob2xkZXIgKi8KICAgICAgLnlvdXR1YmUtcGxhY2Vob2xkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDMycHggMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci1pY29uIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMWYyOTM3Iil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG4gewogICAgICAgIHBhZGRpbmc6IDZweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQogICAgICAKICAgICAgLyogWW91VHViZSBDb250YWluZXIgKi8KICAgICAgLnlvdXR1YmUtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgLyogMTY6OSBhc3BlY3QgcmF0aW8gKi8KICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiMwMDAwMDAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWNvbnRhaW5lciBpZnJhbWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQogICAgYH19O2ZlKCk7dmFyIE5JPWNsYXNzIGV4dGVuZHMgdTF7dHlwZT0iYXR0YWNobWVudCI7cmVuZGVyKGUsYSl7bGV0IHI9ZS5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1ibG9jay1jb250YWluZXIke2E/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWljb24iPlx1ezFGNENFfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC10aXRsZSI+RmlsZSBBdHRhY2htZW50czwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtbGlzdCI+CiAgICAgICAgICAke3IubGVuZ3RoPjA/dGhpcy5yZW5kZXJGaWxlcyhyKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIAogICAgICAgICAgICAgICBjbGFzcz0iYXR0YWNobWVudC1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgbXVsdGlwbGUgCiAgICAgICAgICAgICAgIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgLz4KICAgICAgICAke3IubGVuZ3RoPjA/JzxidXR0b24gY2xhc3M9ImFkZC1tb3JlLWZpbGVzIj5BZGQgTW9yZSBGaWxlczwvYnV0dG9uPic6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcigpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1wbGFjZWhvbGRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+Q2xpY2sgdG8gYWRkIGZpbGVzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItaGludCI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZXMoZSl7cmV0dXJuIGUubWFwKGE9PmAKICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1pdGVtIiBkYXRhLWZpbGUtaWQ9IiR7YS5pZH0iPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaWNvbiI+JHt0aGlzLmdldEZpbGVJY29uKGEudHlwZSl9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1pbmZvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSI+JHt0aGlzLmVzY2FwZUh0bWwoYS5uYW1lKX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKGEuc2l6ZSl9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWZpbGUiIGRhdGEtZmlsZS1pZD0iJHthLmlkfSI+XHhENzwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIGApLmpvaW4oIiIpfXNldHVwKGUsYSxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1maWxlLWlucHV0Iik7aWYoIWl8fCFvKXtjb25zb2xlLmVycm9yKCJBdHRhY2htZW50QmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn1hLm1ldGFkYXRhfHwoYS5tZXRhZGF0YT17fSksYS5tZXRhZGF0YS5maWxlc3x8KGEubWV0YWRhdGEuZmlsZXM9W10pO2xldCBzPWkucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXIiKTtzJiZzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmPT57Zi5wcmV2ZW50RGVmYXVsdCgpLGYuc3RvcFByb3BhZ2F0aW9uKCksby5jbGljaygpfSk7bGV0IGw9aS5xdWVyeVNlbGVjdG9yKCIuYWRkLW1vcmUtZmlsZXMiKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmPT57Zi5wcmV2ZW50RGVmYXVsdCgpLGYuc3RvcFByb3BhZ2F0aW9uKCksby5jbGljaygpfSksby5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIGY9PntsZXQgYz1mLnRhcmdldCx1PWMuZmlsZXM7dSYmdS5sZW5ndGg+MCYmKGF3YWl0IHRoaXMuaGFuZGxlRmlsZUF0dGFjaG1lbnRzKHUsYSxyKSxjLnZhbHVlPSIiKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGY9PntsZXQgYz1mLnRhcmdldDtpZihjLmNsYXNzTGlzdC5jb250YWlucygicmVtb3ZlLWZpbGUiKSl7Zi5wcmV2ZW50RGVmYXVsdCgpLGYuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHU9Yy5nZXRBdHRyaWJ1dGUoImRhdGEtZmlsZS1pZCIpO3UmJnRoaXMucmVtb3ZlRmlsZSh1LGEscil9fSksaS5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsZj0+e2YucHJldmVudERlZmF1bHQoKSxmLnN0b3BQcm9wYWdhdGlvbigpLGkuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsZj0+e2YucHJldmVudERlZmF1bHQoKSxmLnN0b3BQcm9wYWdhdGlvbigpLGkuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLGFzeW5jIGY9PntmLnByZXZlbnREZWZhdWx0KCksZi5zdG9wUHJvcGFnYXRpb24oKSxpLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO2xldCBjPWYuZGF0YVRyYW5zZmVyPy5maWxlcztjJiZjLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmhhbmRsZUZpbGVBdHRhY2htZW50cyhjLGEscil9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+ci5vbkZvY3VzKCkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnIub25CbHVyKCkpLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZj0+e2lmKChmLmtleT09PSJEZWxldGUifHxmLmtleT09PSJCYWNrc3BhY2UiKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWkmJmEubWV0YWRhdGE/LmZpbGVzPy5sZW5ndGg+MCl7Zi5wcmV2ZW50RGVmYXVsdCgpLGEubWV0YWRhdGEuZmlsZXM9W10sci5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1yLm9uS2V5RG93bihmKX0pfWFzeW5jIGhhbmRsZUZpbGVBdHRhY2htZW50cyhlLGEscil7YS5tZXRhZGF0YXx8KGEubWV0YWRhdGE9e30pLGEubWV0YWRhdGEuZmlsZXN8fChhLm1ldGFkYXRhLmZpbGVzPVtdKTtmb3IobGV0IGkgb2YgQXJyYXkuZnJvbShlKSl0cnl7bGV0IG89YXdhaXQgdGhpcy5maWxlVG9EYXRhVXJsKGkpLHM9e2lkOnRoaXMuZ2VuZXJhdGVJZCgpLG5hbWU6aS5uYW1lLHNpemU6aS5zaXplLHR5cGU6aS50eXBlLGRhdGE6b307YS5tZXRhZGF0YS5maWxlcy5wdXNoKHMpfWNhdGNoKG8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBhdHRhY2ggZmlsZToiLGkubmFtZSxvKX1hLmNvbnRlbnQ9YCR7YS5tZXRhZGF0YS5maWxlcy5sZW5ndGh9IGZpbGUke2EubWV0YWRhdGEuZmlsZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF0dGFjaGVkYCxyLm9uUmVxdWVzdFVwZGF0ZT8uKCl9cmVtb3ZlRmlsZShlLGEscil7YS5tZXRhZGF0YT8uZmlsZXMmJihhLm1ldGFkYXRhLmZpbGVzPWEubWV0YWRhdGEuZmlsZXMuZmlsdGVyKGk9PmkuaWQhPT1lKSxhLmNvbnRlbnQ9YS5tZXRhZGF0YS5maWxlcy5sZW5ndGg+MD9gJHthLm1ldGFkYXRhLmZpbGVzLmxlbmd0aH0gZmlsZSR7YS5tZXRhZGF0YS5maWxlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXR0YWNoZWRgOiIiLHIub25SZXF1ZXN0VXBkYXRlPy4oKSl9ZmlsZVRvRGF0YVVybChlKXtyZXR1cm4gbmV3IFByb21pc2UoKGEscik9PntsZXQgaT1uZXcgRmlsZVJlYWRlcjtpLm9ubG9hZD1vPT57bGV0IHM9by50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygcz09InN0cmluZyI/YShzKTpyKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0saS5vbmVycm9yPXIsaS5yZWFkQXNEYXRhVVJMKGUpfSl9Z2V0RmlsZUljb24oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiaW1hZ2UvIik/Ilx1ezFGNUJDfVx1RkUwRiI6ZS5zdGFydHNXaXRoKCJ2aWRlby8iKT8iXHV7MUYzQTV9IjplLnN0YXJ0c1dpdGgoImF1ZGlvLyIpPyJcdXsxRjNCNX0iOmUuaW5jbHVkZXMoInBkZiIpPyJcdXsxRjRDNH0iOmUuaW5jbHVkZXMoInppcCIpfHxlLmluY2x1ZGVzKCJyYXIiKXx8ZS5pbmNsdWRlcygidGFyIik/Ilx1ezFGNUM0fVx1RkUwRiI6ZS5pbmNsdWRlcygic2hlZXQiKT8iXHV7MUY0Q0F9IjplLmluY2x1ZGVzKCJkb2N1bWVudCIpfHxlLmluY2x1ZGVzKCJtc3dvcmQiKT8iXHV7MUY0RER9IjplLmluY2x1ZGVzKCJwcmVzZW50YXRpb24iKT8iXHV7MUY0Q0J9IjplLmluY2x1ZGVzKCJ0ZXh0Iik/Ilx1ezFGNEMzfSI6Ilx1ezFGNEMxfSJ9Zm9ybWF0RmlsZVNpemUoZSl7aWYoZT09PTApcmV0dXJuIjAgQnl0ZXMiO2xldCBhPTEwMjQscj1bIkJ5dGVzIiwiS0IiLCJNQiIsIkdCIl0saT1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGgubG9nKGEpKTtyZXR1cm4gcGFyc2VGbG9hdCgoZS9NYXRoLnBvdyhhLGkpKS50b0ZpeGVkKDIpKSsiICIrcltpXX1nZW5lcmF0ZUlkKCl7cmV0dXJuYGZpbGUtJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9ZXNjYXBlSHRtbChlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1lLGEuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKT8uY29udGVudHx8IiJ9c2V0Q29udGVudChlLGEpe2xldCByPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlKTtyJiYoci5jb250ZW50PWEpfWdldEJsb2NrRnJvbUVsZW1lbnQoZSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIHI/e2lkOnIsdHlwZToiYXR0YWNobWVudCIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtlLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLGE9ImVuZCIpe3RoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQXR0YWNobWVudCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIuZHJhZy1vdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAuYXR0YWNobWVudC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIExpc3QgKi8KICAgICAgLmF0dGFjaG1lbnQtbGlzdCB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBQbGFjZWhvbGRlciAqLwogICAgICAuYXR0YWNobWVudC1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LXBsYWNlaG9sZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRmlsZSBJdGVtcyAqLwogICAgICAuYXR0YWNobWVudC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtaW5mbyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1zaXplIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZW1vdmUtZmlsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZWUyZTIiLCIjOTkxYjFiIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNmY2E1YTUiLCIjZGMyNjI2Iil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2RjMjYyNiIsIiNmY2E1YTUiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEFkZCBNb3JlIEZpbGVzIEJ1dHRvbiAqLwogICAgICAuYWRkLW1vcmUtZmlsZXMgewogICAgICAgIG1hcmdpbjogOHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgIH0KICAgICAgCiAgICAgIC5hZGQtbW9yZS1maWxlczpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIaWRkZW4gZmlsZSBpbnB1dCAqLwogICAgICAuYXR0YWNobWVudC1maWxlLWlucHV0IHsKICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGB9fTtmZSgpO3ZhciBQST1jbGFzcyBleHRlbmRzIHUxe3R5cGU9ImRpdmlkZXIiO3JlbmRlcihlLGEpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iYmxvY2sgZGl2aWRlciR7YT8iIHNlbGVjdGVkIjoiIn0iIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iIGRhdGEtYmxvY2stdHlwZT0iJHtlLnR5cGV9IiB0YWJpbmRleD0iMCI+CiAgICAgICAgPGhyPgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSxhLHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmRpdmlkZXIiKTtpJiYoaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbz0+e28uc3RvcFByb3BhZ2F0aW9uKCksaS5mb2N1cygpLHIub25Gb2N1cz8uKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e3Iub25Gb2N1cz8uKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57ci5vbkJsdXI/LigpfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57KG8ua2V5PT09IkJhY2tzcGFjZSJ8fG8ua2V5PT09IkRlbGV0ZSIpJiZvLnByZXZlbnREZWZhdWx0KCksci5vbktleURvd24/LihvKX0pKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC5ibG9jay5kaXZpZGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmJsb2NrLmRpdmlkZXI6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyIGhyIHsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGB9fTtmZSgpO3ZhciBJST1jbGFzcyBleHRlbmRzIHUxe3R5cGU9Im1hcmtkb3duIjtyZW5kZXIoZSxhKXtsZXQgcj1lLm1ldGFkYXRhPy5pc0VkaXRNb2RlPz8hMCxpPWUuY29udGVudHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1ibG9jay1jb250YWluZXIke2E/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke3J9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24taWNvbiI+TVx1MjE5MzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tdGl0bGUiPk1hcmtkb3duPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJtYXJrZG93bi10b2dnbGUtbW9kZSIgdGl0bGU9IiR7cj8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7cj8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPgogICAgICAgICAgJHtyP3RoaXMucmVuZGVyRWRpdG9yKGkpOnRoaXMucmVuZGVyUHJldmlldyhpKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckVkaXRvcihlKXtyZXR1cm5gCiAgICAgIDx0ZXh0YXJlYSBjbGFzcz0ibWFya2Rvd24tZWRpdG9yIiAKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBtYXJrZG93biBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKGUpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcoZSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1wcmV2aWV3Ij4KICAgICAgICAke3RoaXMucGFyc2VNYXJrZG93bihlKXx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLGEscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIiksbz1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi10b2dnbGUtbW9kZSIpO2lmKCFpfHwhbyl7Y29uc29sZS5lcnJvcigiTWFya2Rvd25CbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufWEubWV0YWRhdGF8fChhLm1ldGFkYXRhPXt9KSxhLm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJihhLm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLG8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHM9PntpZihzLnByZXZlbnREZWZhdWx0KCkscy5zdG9wUHJvcGFnYXRpb24oKSxhLm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBsPWkucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2wmJihhLmNvbnRlbnQ9bC52YWx1ZSl9YS5tZXRhZGF0YS5pc0VkaXRNb2RlPSFhLm1ldGFkYXRhLmlzRWRpdE1vZGUsci5vblJlcXVlc3RVcGRhdGU/LigpfSksYS5tZXRhZGF0YS5pc0VkaXRNb2RlP3RoaXMuc2V0dXBFZGl0b3IoZSxhLHIpOnRoaXMuc2V0dXBQcmV2aWV3KGUsYSxyKX1zZXR1cEVkaXRvcihlLGEscil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aSYmKGkuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5yLm9uRm9jdXMoKSksaS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+ci5vbkJsdXIoKSksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9PnthLmNvbnRlbnQ9aS52YWx1ZX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbz0+e2lmKG8ua2V5PT09IlRhYiIpe28ucHJldmVudERlZmF1bHQoKTtsZXQgcz1pLnNlbGVjdGlvblN0YXJ0LGw9aS5zZWxlY3Rpb25FbmQsZj1pLnZhbHVlO2lmKG8uc2hpZnRLZXkpe2xldCBkPWYuc3Vic3RyaW5nKDAscykubGFzdEluZGV4T2YoYApgKSsxLGg9Zi5zdWJzdHJpbmcoZCxzKTtoLnN0YXJ0c1dpdGgoIiAgIikmJihpLnZhbHVlPWYuc3Vic3RyaW5nKDAsZCkraC5zdWJzdHJpbmcoMikrZi5zdWJzdHJpbmcocyksaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD1zLTIpfWVsc2UgaS52YWx1ZT1mLnN1YnN0cmluZygwLHMpKyIgICIrZi5zdWJzdHJpbmcobCksaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD1zKzI7YS5jb250ZW50PWkudmFsdWU7cmV0dXJufWlmKChvLmN0cmxLZXl8fG8ubWV0YUtleSkmJm8ua2V5PT09ImIiKXtvLnByZXZlbnREZWZhdWx0KCksdGhpcy53cmFwU2VsZWN0aW9uKGksIioqIiwiKioiKSxhLmNvbnRlbnQ9aS52YWx1ZTtyZXR1cm59aWYoKG8uY3RybEtleXx8by5tZXRhS2V5KSYmby5rZXk9PT0iaSIpe28ucHJldmVudERlZmF1bHQoKSx0aGlzLndyYXBTZWxlY3Rpb24oaSwiXyIsIl8iKSxhLmNvbnRlbnQ9aS52YWx1ZTtyZXR1cm59aWYoKG8uY3RybEtleXx8by5tZXRhS2V5KSYmby5rZXk9PT0iayIpe28ucHJldmVudERlZmF1bHQoKSx0aGlzLmluc2VydExpbmsoaSksYS5jb250ZW50PWkudmFsdWU7cmV0dXJufXIub25LZXlEb3duKG8pfSksdGhpcy5hdXRvUmVzaXplKGkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT50aGlzLmF1dG9SZXNpemUoaSkpKX1zZXR1cFByZXZpZXcoZSxhLHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tcHJldmlldyIpOyFpfHwhb3x8KG8uc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxvLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+ci5vbkZvY3VzKCkpLG8uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PnIub25CbHVyKCkpLG8uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIscz0+e2lmKHMua2V5PT09IkVudGVyIiYmIXMuc2hpZnRLZXkpe3MucHJldmVudERlZmF1bHQoKSxhLm1ldGFkYXRhLmlzRWRpdE1vZGU9ITAsci5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1yLm9uS2V5RG93bihzKX0pKX13cmFwU2VsZWN0aW9uKGUsYSxyKXtsZXQgaT1lLnNlbGVjdGlvblN0YXJ0LG89ZS5zZWxlY3Rpb25FbmQscz1lLnZhbHVlLnN1YnN0cmluZyhpLG8pLGw9YSsoc3x8InRleHQiKStyO2UudmFsdWU9ZS52YWx1ZS5zdWJzdHJpbmcoMCxpKStsK2UudmFsdWUuc3Vic3RyaW5nKG8pLHM/KGUuc2VsZWN0aW9uU3RhcnQ9aSxlLnNlbGVjdGlvbkVuZD1pK2wubGVuZ3RoKTooZS5zZWxlY3Rpb25TdGFydD1pK2EubGVuZ3RoLGUuc2VsZWN0aW9uRW5kPWkrYS5sZW5ndGgrNCksZS5mb2N1cygpfWluc2VydExpbmsoZSl7bGV0IGE9ZS5zZWxlY3Rpb25TdGFydCxyPWUuc2VsZWN0aW9uRW5kLG89ZS52YWx1ZS5zdWJzdHJpbmcoYSxyKXx8ImxpbmsgdGV4dCIscz1gWyR7b31dKHVybClgO2UudmFsdWU9ZS52YWx1ZS5zdWJzdHJpbmcoMCxhKStzK2UudmFsdWUuc3Vic3RyaW5nKHIpLGUuc2VsZWN0aW9uU3RhcnQ9YStvLmxlbmd0aCszLGUuc2VsZWN0aW9uRW5kPWErby5sZW5ndGgrNixlLmZvY3VzKCl9YXV0b1Jlc2l6ZShlKXtlLnN0eWxlLmhlaWdodD0iYXV0byIsZS5zdHlsZS5oZWlnaHQ9ZS5zY3JvbGxIZWlnaHQrInB4In1wYXJzZU1hcmtkb3duKGUpe2xldCBhPXRoaXMuZXNjYXBlSHRtbChlKTtyZXR1cm4gYT1hLnJlcGxhY2UoL14jIyMgKC4rKSQvZ20sIjxoMz4kMTwvaDM+IiksYT1hLnJlcGxhY2UoL14jIyAoLispJC9nbSwiPGgyPiQxPC9oMj4iKSxhPWEucmVwbGFjZSgvXiMgKC4rKSQvZ20sIjxoMT4kMTwvaDE+IiksYT1hLnJlcGxhY2UoL1wqXCooLis/KVwqXCovZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLGE9YS5yZXBsYWNlKC9fXyguKz8pX18vZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLGE9YS5yZXBsYWNlKC9cKiguKz8pXCovZywiPGVtPiQxPC9lbT4iKSxhPWEucmVwbGFjZSgvXyguKz8pXy9nLCI8ZW0+JDE8L2VtPiIpLGE9YS5yZXBsYWNlKC9gYGAoW1xzXFNdKj8pYGBgL2csIjxwcmU+PGNvZGU+JDE8L2NvZGU+PC9wcmU+IiksYT1hLnJlcGxhY2UoL2AoLis/KWAvZywiPGNvZGU+JDE8L2NvZGU+IiksYT1hLnJlcGxhY2UoL1xbKFteXF1dKylcXVwoKFteKV0rKVwpL2csJzxhIGhyZWY9IiQyIj4kMTwvYT4nKSxhPWEucmVwbGFjZSgvXlwqICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLGE9YS5yZXBsYWNlKC9eLSAoLispJC9nbSwiPGxpPiQxPC9saT4iKSxhPWEucmVwbGFjZSgvXlxkK1wuICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLGE9YS5yZXBsYWNlKC8oPGxpPi4qPFwvbGk+XG4/KSsvZyxyPT4iPHVsPiIrcisiPC91bD4iKSxhPWEucmVwbGFjZSgvXG5cbi9nLCI8L3A+PHA+IiksYT0iPHA+IithKyI8L3A+IixhPWEucmVwbGFjZSgvPHA+PFwvcD4vZywiIiksYT1hLnJlcGxhY2UoLzxwPig8aFsxLTNdPikvZywiJDEiKSxhPWEucmVwbGFjZSgvKDxcL2hbMS0zXT4pPFwvcD4vZywiJDEiKSxhPWEucmVwbGFjZSgvPHA+KDx1bD4pL2csIiQxIiksYT1hLnJlcGxhY2UoLyg8XC91bD4pPFwvcD4vZywiJDEiKSxhPWEucmVwbGFjZSgvPHA+KDxwcmU+KS9nLCIkMSIpLGE9YS5yZXBsYWNlKC8oPFwvcHJlPik8XC9wPi9nLCIkMSIpLGF9ZXNjYXBlSHRtbChlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1lLGEuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYoYSlyZXR1cm4gYS52YWx1ZTtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudChlLGEpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3ImJihyLnZhbHVlPWEsdGhpcy5hdXRvUmVzaXplKHIpKX1nZXRDdXJzb3JQb3NpdGlvbihlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyZXR1cm4gYT9hLnNlbGVjdGlvblN0YXJ0Om51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTthPyhhLnNlbGVjdGlvblN0YXJ0PWEuc2VsZWN0aW9uRW5kPTAsYS5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfXNldEN1cnNvclRvRW5kKGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKGEpe2xldCByPWEudmFsdWUubGVuZ3RoO2Euc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9cixhLmZvY3VzKCl9ZWxzZSB0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2E/YS5mb2N1cygpOmUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSxhPSJlbmQiKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyP2E9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlKTphPT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlKTp0eXBlb2YgYT09Im51bWJlciImJihyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPWEsci5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfWdldFNwbGl0Q29udGVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgcj1hLnNlbGVjdGlvblN0YXJ0O3JldHVybntiZWZvcmU6YS52YWx1ZS5zdWJzdHJpbmcoMCxyKSxhZnRlcjphLnZhbHVlLnN1YnN0cmluZyhyKX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBNYXJrZG93biBCbG9jayBDb250YWluZXIgKi8KICAgICAgLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLm1hcmtkb3duLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24taWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRvZ2dsZS1tb2RlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvbnRlbnQgKi8KICAgICAgLm1hcmtkb3duLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogRWRpdG9yICovCiAgICAgIC5tYXJrZG93bi1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWVkaXRvcjo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFByZXZpZXcgKi8KICAgICAgLm1hcmtkb3duLXByZXZpZXcgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogOTZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wcmV2aWV3LWVtcHR5IHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLyogTWFya2Rvd24gcHJldmlldyBzdHlsZXMgKi8KICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDEgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTZweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgyIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDE0cHggMCA2cHggMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxMnB4IDAgNHB4IDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcCB7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgdWwsCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IG9sIHsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBzdHJvbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgZW0gewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBibG9ja3F1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICBgfX07ZmUoKTt2YXIgRkk9Y2xhc3MgZXh0ZW5kcyB1MXt0eXBlPSJodG1sIjtyZW5kZXIoZSxhKXtsZXQgcj1lLm1ldGFkYXRhPy5pc0VkaXRNb2RlPz8hMCxpPWUuY29udGVudHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJodG1sLWJsb2NrLWNvbnRhaW5lciR7YT8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1lZGl0LW1vZGU9IiR7cn0iPgogICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtaWNvbiI+Jmx0Oy8mZ3Q7PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLXRpdGxlIj5IVE1MPC9kaXY+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJodG1sLXRvZ2dsZS1tb2RlIiB0aXRsZT0iJHtyPyJQcmV2aWV3IjoiRWRpdCJ9Ij4KICAgICAgICAgICAgJHtyPyJcdXsxRjQ0MX1cdUZFMEYiOiJcdTI3MEZcdUZFMEYifQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC1jb250ZW50Ij4KICAgICAgICAgICR7cj90aGlzLnJlbmRlckVkaXRvcihpKTp0aGlzLnJlbmRlclByZXZpZXcoaSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJFZGl0b3IoZSl7cmV0dXJuYAogICAgICA8dGV4dGFyZWEgY2xhc3M9Imh0bWwtZWRpdG9yIiAKICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBIVE1MIGNvbnRlbnQuLi4iCiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPSJmYWxzZSI+JHt0aGlzLmVzY2FwZUh0bWwoZSl9PC90ZXh0YXJlYT4KICAgIGB9cmVuZGVyUHJldmlldyhlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9Imh0bWwtcHJldmlldyI+CiAgICAgICAgJHtlfHwnPGRpdiBjbGFzcz0icHJldmlldy1lbXB0eSI+Tm8gY29udGVudCB0byBwcmV2aWV3PC9kaXY+J30KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsYSxyKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpLG89ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC10b2dnbGUtbW9kZSIpO2lmKCFpfHwhbyl7Y29uc29sZS5lcnJvcigiSHRtbEJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgZWxlbWVudHMiKTtyZXR1cm59YS5tZXRhZGF0YXx8KGEubWV0YWRhdGE9e30pLGEubWV0YWRhdGEuaXNFZGl0TW9kZT09PXZvaWQgMCYmKGEubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCksby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscz0+e2lmKHMucHJldmVudERlZmF1bHQoKSxzLnN0b3BQcm9wYWdhdGlvbigpLGEubWV0YWRhdGEuaXNFZGl0TW9kZSl7bGV0IGw9aS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtsJiYoYS5jb250ZW50PWwudmFsdWUpfWEubWV0YWRhdGEuaXNFZGl0TW9kZT0hYS5tZXRhZGF0YS5pc0VkaXRNb2RlLHIub25SZXF1ZXN0VXBkYXRlPy4oKX0pLGEubWV0YWRhdGEuaXNFZGl0TW9kZT90aGlzLnNldHVwRWRpdG9yKGUsYSxyKTp0aGlzLnNldHVwUHJldmlldyhlLGEscil9c2V0dXBFZGl0b3IoZSxhLHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aSYmKGkuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5yLm9uRm9jdXMoKSksaS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+ci5vbkJsdXIoKSksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9PnthLmNvbnRlbnQ9aS52YWx1ZSx0aGlzLnZhbGlkYXRlSHRtbChpLnZhbHVlKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbz0+e2lmKG8ua2V5PT09IlRhYiIpe28ucHJldmVudERlZmF1bHQoKTtsZXQgcz1pLnNlbGVjdGlvblN0YXJ0LGw9aS5zZWxlY3Rpb25FbmQsZj1pLnZhbHVlO2lmKG8uc2hpZnRLZXkpe2xldCBkPWYuc3Vic3RyaW5nKDAscykubGFzdEluZGV4T2YoYApgKSsxLGg9Zi5zdWJzdHJpbmcoZCxzKTtoLnN0YXJ0c1dpdGgoIiAgIikmJihpLnZhbHVlPWYuc3Vic3RyaW5nKDAsZCkraC5zdWJzdHJpbmcoMikrZi5zdWJzdHJpbmcocyksaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD1zLTIpfWVsc2UgaS52YWx1ZT1mLnN1YnN0cmluZygwLHMpKyIgICIrZi5zdWJzdHJpbmcobCksaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD1zKzI7YS5jb250ZW50PWkudmFsdWU7cmV0dXJufWlmKChvLmN0cmxLZXl8fG8ubWV0YUtleSkmJm8ua2V5PT09Ii8iKXtvLnByZXZlbnREZWZhdWx0KCksdGhpcy5hdXRvQ2xvc2VUYWcoaSksYS5jb250ZW50PWkudmFsdWU7cmV0dXJufXIub25LZXlEb3duKG8pfSksdGhpcy5hdXRvUmVzaXplKGkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT50aGlzLmF1dG9SZXNpemUoaSkpKX1zZXR1cFByZXZpZXcoZSxhLHIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtYmxvY2stY29udGFpbmVyIiksbz1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXByZXZpZXciKTshaXx8IW98fChvLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksby5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PnIub25Gb2N1cygpKSxvLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5yLm9uQmx1cigpKSxvLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHM9PntpZihzLmtleT09PSJFbnRlciImJiFzLnNoaWZ0S2V5KXtzLnByZXZlbnREZWZhdWx0KCksYS5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwLHIub25SZXF1ZXN0VXBkYXRlPy4oKTtyZXR1cm59ci5vbktleURvd24ocyl9KSx0aGlzLnNhbmRib3hDb250ZW50KG8pKX1hdXRvQ2xvc2VUYWcoZSl7bGV0IGE9ZS5zZWxlY3Rpb25TdGFydCxyPWUudmFsdWUsaT1hO2Zvcig7aT4wJiZyW2ktMV0hPT0iPCI7KWktLTtpZihpPjApe2xldCBzPXIuc3Vic3RyaW5nKGksYSkubWF0Y2goL14oXHcrKS8pO2lmKHMpe2xldCBmPWA8LyR7c1sxXX0+YDtlLnZhbHVlPXIuc3Vic3RyaW5nKDAsYSkrIj4iK2Yrci5zdWJzdHJpbmcoYSksZS5zZWxlY3Rpb25TdGFydD1lLnNlbGVjdGlvbkVuZD1hKzF9fX1hdXRvUmVzaXplKGUpe2Uuc3R5bGUuaGVpZ2h0PSJhdXRvIixlLnN0eWxlLmhlaWdodD1lLnNjcm9sbEhlaWdodCsicHgifXZhbGlkYXRlSHRtbChlKXtsZXQgYT1bXSxyPS88XC8/KFthLXpBLVpdW2EtekEtWjAtOV0qKVxiW14+XSo+L2csaTtmb3IoOyhpPXIuZXhlYyhlKSkhPT1udWxsOyl7bGV0IG89aVswXS5zdGFydHNXaXRoKCI8LyIpLHM9aVsxXS50b0xvd2VyQ2FzZSgpO2lmKG8pe2lmKGEubGVuZ3RoPT09MHx8YVthLmxlbmd0aC0xXSE9PXMpcmV0dXJuIGNvbnNvbGUud2FybihgTWlzbWF0Y2hlZCBjbG9zaW5nIHRhZzogJHtzfWApLCExO2EucG9wKCl9ZWxzZSBpWzBdLmVuZHNXaXRoKCIvPiIpfHxhLnB1c2gocyl9cmV0dXJuIGEubGVuZ3RoPjA/KGNvbnNvbGUud2FybihgVW5jbG9zZWQgdGFnczogJHthLmpvaW4oIiwgIil9YCksITEpOiEwfXNhbmRib3hDb250ZW50KGUpe2UucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0IikuZm9yRWFjaChvPT5vLnJlbW92ZSgpKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKS5mb3JFYWNoKG89PntBcnJheS5mcm9tKG8uYXR0cmlidXRlcykuZm9yRWFjaChzPT57cy5uYW1lLnN0YXJ0c1dpdGgoIm9uIikmJm8ucmVtb3ZlQXR0cmlidXRlKHMubmFtZSl9KX0pLGUucXVlcnlTZWxlY3RvckFsbCgiZm9ybSIpLmZvckVhY2gobz0+e28uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IixzPT57cy5wcmV2ZW50RGVmYXVsdCgpLHMuc3RvcFByb3BhZ2F0aW9uKCl9KX0pfWVzY2FwZUh0bWwoZSl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGEudGV4dENvbnRlbnQ9ZSxhLmlubmVySFRNTH1nZXRDb250ZW50KGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYoYSlyZXR1cm4gYS52YWx1ZTtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4iIn1zZXRDb250ZW50KGUsYSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyJiYoci52YWx1ZT1hLHRoaXMuYXV0b1Jlc2l6ZShyKSl9Z2V0Q3Vyc29yUG9zaXRpb24oZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyZXR1cm4gYT9hLnNlbGVjdGlvblN0YXJ0Om51bGx9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2E/KGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9MCxhLmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtpZihhKXtsZXQgcj1hLnZhbHVlLmxlbmd0aDthLnNlbGVjdGlvblN0YXJ0PWEuc2VsZWN0aW9uRW5kPXIsYS5mb2N1cygpfWVsc2UgdGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2E/YS5mb2N1cygpOmUucXVlcnlTZWxlY3RvcigiLmh0bWwtcHJldmlldyIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLGE9ImVuZCIpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7cj9hPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSk6YT09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSk6dHlwZW9mIGE9PSJudW1iZXIiJiYoci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1hLHIuZm9jdXMoKSk6dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgcj1hLnNlbGVjdGlvblN0YXJ0O3JldHVybntiZWZvcmU6YS52YWx1ZS5zdWJzdHJpbmcoMCxyKSxhZnRlcjphLnZhbHVlLnN1YnN0cmluZyhyKX19Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBIVE1MIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAuaHRtbC1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLmh0bWwtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdGl0bGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdG9nZ2xlLW1vZGUgewogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC10b2dnbGUtbW9kZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb250ZW50ICovCiAgICAgIC5odG1sLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgfQogICAgICAKICAgICAgLyogRWRpdG9yICovCiAgICAgIC5odG1sLWVkaXRvciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMWYyOTM3IiwiI2YzZjRmNiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1lZGl0b3I6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBQcmV2aWV3ICovCiAgICAgIC5odG1sLXByZXZpZXcgewogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogOTZweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5wcmV2aWV3LWVtcHR5IHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLyogU2FuZGJveGVkIEhUTUwgcHJldmlldyBzdHlsZXMgKi8KICAgICAgLmh0bWwtcHJldmlldyAqIHsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgaW1nIHsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgYSB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGFibGUgewogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0aCwKICAgICAgLmh0bWwtcHJldmlldyB0ZCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgcHJlIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgIGB9fTtmdW5jdGlvbiBvbjEoKXtZdC5yZWdpc3RlcigiZGl2aWRlciIsbmV3IFBJKSxZdC5yZWdpc3RlcigicGFyYWdyYXBoIixuZXcgVEkpLFl0LnJlZ2lzdGVyKCJoZWFkaW5nLTEiLG5ldyBjYygiaGVhZGluZy0xIikpLFl0LnJlZ2lzdGVyKCJoZWFkaW5nLTIiLG5ldyBjYygiaGVhZGluZy0yIikpLFl0LnJlZ2lzdGVyKCJoZWFkaW5nLTMiLG5ldyBjYygiaGVhZGluZy0zIikpLFl0LnJlZ2lzdGVyKCJxdW90ZSIsbmV3IF9JKSxZdC5yZWdpc3RlcigiY29kZSIsbmV3IEFJKSxZdC5yZWdpc3RlcigibGlzdCIsbmV3ICRJKSxZdC5yZWdpc3RlcigiaW1hZ2UiLG5ldyBESSksWXQucmVnaXN0ZXIoInlvdXR1YmUiLG5ldyBFSSksWXQucmVnaXN0ZXIoImF0dGFjaG1lbnQiLG5ldyBOSSksWXQucmVnaXN0ZXIoIm1hcmtkb3duIixuZXcgSUkpLFl0LnJlZ2lzdGVyKCJodG1sIixuZXcgRkkpfW9uMSgpO2ZlKCk7dmFyIE1qPWNsYXNze3N0YXRpYyBhc3luYyBzaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57bGV0IGE9bnVsbDtlMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJTZWxlY3QgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UiLGNvbnRlbnQ6TWAKICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgLmxhbmd1YWdlLWNvbnRhaW5lciB7CiAgICAgICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDsKICAgICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1ncmlkIHsKICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEyMHB4LCAxZnIpKTsKICAgICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDsKICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMzc0MTUxIil9OwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgICAgIH0KICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1ncmlkIj4KICAgICAgICAgICAgICAke3RoaXMuZ2V0TGFuZ3VhZ2VzKCkubWFwKHI9Pk1gCiAgICAgICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uICR7YT09PXIudG9Mb3dlckNhc2UoKT8ic2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+e2E9ci50b0xvd2VyQ2FzZSgpO2xldCBpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtbW9kYWwiKTtpJiZ0eXBlb2YgaS5kZXN0cm95PT0iZnVuY3Rpb24iJiZpLmRlc3Ryb3koKSxlKGEpfX0iPgogICAgICAgICAgICAgICAgICAke3J9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgcj0+e3IuZGVzdHJveSgpLGUobnVsbCl9fV19KX0pfXN0YXRpYyBhc3luYyBzaG93QmxvY2tTZXR0aW5nc01vZGFsKGUsYSl7bGV0IHI9TWAKICAgICAgPHN0eWxlPgogICAgICAgIC5zZXR0aW5ncy1jb250YWluZXIgewogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CiAgICAgICAgLnNldHRpbmdzLXNlY3Rpb24gewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgLnNldHRpbmdzLXNlY3Rpb246bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAuc2V0dGluZ3MtbGFiZWwgewogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTYwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbiB7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1pY29uIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtY29udGFpbmVyIj4KICAgICAgICAke3RoaXMuZ2V0QmxvY2tUeXBlU2VsZWN0b3IoZSxhKX0KICAgICAgICAke2UudHlwZT09PSJjb2RlIj90aGlzLmdldENvZGVCbG9ja1NldHRpbmdzKGUsYSk6IiJ9CiAgICAgIDwvZGl2PgogICAgYDtlMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJCbG9jayBTZXR0aW5ncyIsY29udGVudDpyLG1lbnVPcHRpb25zOlt7bmFtZToiRG9uZSIsYWN0aW9uOmFzeW5jIGk9PntpLmRlc3Ryb3koKX19XX0pfXN0YXRpYyBnZXRDb2RlQmxvY2tTZXR0aW5ncyhlLGEpe2xldCByPWUubWV0YWRhdGE/Lmxhbmd1YWdlfHwiamF2YXNjcmlwdCI7cmV0dXJuIE1gCiAgICAgIDxzdHlsZT4KICAgICAgICAubGFuZ3VhZ2UtZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTAwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgfQogICAgICAgIC5sYW5ndWFnZS1idXR0b24gewogICAgICAgICAgcGFkZGluZzogOHB4IDRweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICAgIH0KICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgIH0KICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWxhYmVsIj5Qcm9ncmFtbWluZyBMYW5ndWFnZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWdyaWQiPgogICAgICAgICAgJHt0aGlzLmdldExhbmd1YWdlcygpLm1hcChpPT5NYAogICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgIGNsYXNzPSJsYW5ndWFnZS1idXR0b24gJHtyPT09aS50b0xvd2VyQ2FzZSgpPyJzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PntlLm1ldGFkYXRhfHwoZS5tZXRhZGF0YT17fSksZS5tZXRhZGF0YS5sYW5ndWFnZT1pLnRvTG93ZXJDYXNlKCksYShlKTtsZXQgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7byYmdHlwZW9mIG8uZGVzdHJveT09ImZ1bmN0aW9uIiYmby5kZXN0cm95KCl9fSIKICAgICAgICAgICAgICBkYXRhLWxhbmc9IiR7aX0iCiAgICAgICAgICAgID4ke2l9PC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpYyBnZXRMYW5ndWFnZXMoKXtyZXR1cm5bLi4ueWpdfXN0YXRpYyBnZXRCbG9ja1R5cGVTZWxlY3RvcihlLGEpe2xldCByPVAxLmdldFNsYXNoTWVudUl0ZW1zKCkuZmlsdGVyKGk9PmkudHlwZSE9PSJkaXZpZGVyIik7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWxhYmVsIj5CbG9jayBUeXBlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2stdHlwZS1ncmlkIj4KICAgICAgICAgICR7ci5tYXAoaT0+TWAKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0iYmxvY2stdHlwZS1idXR0b24gJHtlLnR5cGU9PT1pLnR5cGU/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSIke2FzeW5jIG89PntsZXQgcz1vLmN1cnJlbnRUYXJnZXQsbD1lLnR5cGU7aWYoZS50eXBlPWkudHlwZSxsPT09ImNvZGUiJiZlLnR5cGUhPT0iY29kZSIpZGVsZXRlIGUubWV0YWRhdGE/Lmxhbmd1YWdlO2Vsc2UgaWYobD09PSJsaXN0IiYmZS50eXBlIT09Imxpc3QiKWRlbGV0ZSBlLm1ldGFkYXRhPy5saXN0VHlwZTtlbHNlIGlmKGUudHlwZT09PSJsaXN0IiYmIWUubWV0YWRhdGE/Lmxpc3RUeXBlKWUubWV0YWRhdGE9e2xpc3RUeXBlOiJidWxsZXQifTtlbHNlIGlmKGUudHlwZT09PSJjb2RlIiYmIWUubWV0YWRhdGE/Lmxhbmd1YWdlKXtsZXQgYz1hd2FpdCB0aGlzLnNob3dMYW5ndWFnZVNlbGVjdGlvbk1vZGFsKCk7aWYoYyllLm1ldGFkYXRhPXtsYW5ndWFnZTpjfTtlbHNle2UudHlwZT1sO3JldHVybn19YShlKTtsZXQgZj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7ZiYmdHlwZW9mIGYuZGVzdHJveT09ImZ1bmN0aW9uIiYmZi5kZXN0cm95KCl9fSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJibG9jay10eXBlLWljb24iPiR7aS5pY29ufTwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj4ke2kubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fTt2YXIgemo9Y2xhc3N7Y29tcG9uZW50O3NhdmVUaW1lb3V0PW51bGw7Y29uc3RydWN0b3IoZSl7dGhpcy5jb21wb25lbnQ9ZX1oYW5kbGVCbG9ja0lucHV0KGUsYSl7aWYodGhpcy5jb21wb25lbnQuaXNDb21wb3NpbmcpcmV0dXJuO2xldCByPWUudGFyZ2V0LGk9ci50ZXh0Q29udGVudHx8IiIsbz10aGlzLmRldGVjdEJsb2NrVHlwZUludGVudChpKTtpZihvJiZvLnR5cGUhPT1hLnR5cGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZUJsb2NrVHJhbnNmb3JtYXRpb24oYSxvLHIpO3JldHVybn10aGlzLmhhbmRsZVNsYXNoQ29tbWFuZChpLHIpLHRoaXMuc2NoZWR1bGVBdXRvU2F2ZSgpfXVwZGF0ZUJsb2NrQ29udGVudChlLGEpe2xldCBpPWEuY2xvc2VzdCgiLmJsb2NrLXdyYXBwZXIiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoaSl7bGV0IG89aS5nZXRDb250ZW50KCk7aWYoZS5jb250ZW50IT09byYmKGUuY29udGVudD1vKSxlLnR5cGU9PT0ibGlzdCIpe2xldCBzPWEucXVlcnlTZWxlY3Rvcigib2wsIHVsIik7cyYmKGUubWV0YWRhdGE9e2xpc3RUeXBlOnMudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09Im9sIj8ib3JkZXJlZCI6ImJ1bGxldCJ9KX19ZWxzZSBpZihlLnR5cGU9PT0ibGlzdCIpe2xldCBvPWEucXVlcnlTZWxlY3RvckFsbCgibGkiKTtlLmNvbnRlbnQ9QXJyYXkuZnJvbShvKS5tYXAobD0+bC5pbm5lckhUTUx8fCIiKS5qb2luKGAKYCk7bGV0IHM9YS5xdWVyeVNlbGVjdG9yKCJvbCwgdWwiKTtzJiYoZS5tZXRhZGF0YT17bGlzdFR5cGU6cy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ib2wiPyJvcmRlcmVkIjoiYnVsbGV0In0pfWVsc2UgZS50eXBlPT09ImNvZGUiP2UuY29udGVudD1hLnRleHRDb250ZW50fHwiIjplLmNvbnRlbnQ9YS5pbm5lckhUTUx8fCIifWRldGVjdEJsb2NrVHlwZUludGVudChlKXtsZXQgYT1QMS5jaGVja0hlYWRpbmdTaG9ydGN1dChlKTtpZihhKXJldHVybiBhO2xldCByPVAxLmNoZWNrTGlzdFNob3J0Y3V0KGUpO3JldHVybiByfHwoUDEuY2hlY2tRdW90ZVNob3J0Y3V0KGUpP3t0eXBlOiJxdW90ZSJ9OlAxLmNoZWNrQ29kZVNob3J0Y3V0KGUpP3t0eXBlOiJjb2RlIn06UDEuY2hlY2tEaXZpZGVyU2hvcnRjdXQoZSk/e3R5cGU6ImRpdmlkZXIifTpudWxsKX1hc3luYyBoYW5kbGVCbG9ja1RyYW5zZm9ybWF0aW9uKGUsYSxyKXtsZXQgaT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoYS50eXBlPT09Imxpc3QiKXtlLnR5cGU9Imxpc3QiLGUuY29udGVudD0iIixlLm1ldGFkYXRhPXtsaXN0VHlwZTphLmxpc3RUeXBlfTtsZXQgbz1hLmxpc3RUeXBlPT09Im9yZGVyZWQiPyJvbCI6InVsIjtyLmlubmVySFRNTD1gPCR7b30+PGxpPjwvbGk+PC8ke299PmAsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCksc2V0VGltZW91dCgoKT0+e18yLmZvY3VzTGlzdEl0ZW0ocil9LDApfWVsc2UgaWYoYS50eXBlPT09ImRpdmlkZXIiKXtlLnR5cGU9ImRpdmlkZXIiLGUuY29udGVudD0iICIsdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpO2xldCBvPWkuY3JlYXRlQmxvY2soKTtpLmluc2VydEJsb2NrQWZ0ZXIoZSxvKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWVsc2UgaWYoYS50eXBlPT09ImNvZGUiKXtsZXQgbz1hd2FpdCBNai5zaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpO28mJihlLnR5cGU9ImNvZGUiLGUuY29udGVudD0iIixlLm1ldGFkYXRhPXtsYW5ndWFnZTpvfSxyLnRleHRDb250ZW50PSIiLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IGkuZm9jdXNCbG9jayhlLmlkLCJzdGFydCIpfSw1MCkpfWVsc2UgZS50eXBlPWEudHlwZSxlLmNvbnRlbnQ9IiIsci50ZXh0Q29udGVudD0iIix0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCBpLmZvY3VzQmxvY2soZS5pZCwic3RhcnQiKX0sNTApfWhhbmRsZVNsYXNoQ29tbWFuZChlLGEpe2xldCByPXRoaXMuY29tcG9uZW50LnNsYXNoTWVudSxpPXImJnIudmlzaWJsZTtpZihlPT09Ii8ifHxlLnN0YXJ0c1dpdGgoIi8iKSYmaSl7aWYoIWkmJmU9PT0iLyIpe2xldCBvPXRoaXMuZ2V0Q2FyZXRDb29yZGluYXRlcyhhKTtyLnNob3coe3g6by5sZWZ0LHk6by5ib3R0b20rNH0scz0+e3RoaXMuY29tcG9uZW50Lmluc2VydEJsb2NrKHMpfSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJmEuZm9jdXMoKX0pfXImJnIudXBkYXRlRmlsdGVyKGUuc2xpY2UoMSkpfWVsc2UgZS5zdGFydHNXaXRoKCIvIil8fHRoaXMuY29tcG9uZW50LmNsb3NlU2xhc2hNZW51KCl9Z2V0Q2FyZXRDb29yZGluYXRlcyhlKXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoYSYmYS5yYW5nZUNvdW50PjApe2xldCBpPWEuZ2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihpLndpZHRoPjB8fGkuaGVpZ2h0PjApcmV0dXJuIGl9cmV0dXJuIGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9c2NoZWR1bGVBdXRvU2F2ZSgpe3RoaXMuc2F2ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNhdmVUaW1lb3V0KSwhKHRoaXMuY29tcG9uZW50LnNsYXNoTWVudSYmdGhpcy5jb21wb25lbnQuc2xhc2hNZW51LnZpc2libGUpJiYodGhpcy5zYXZlVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zeW5jQWxsQmxvY2tDb250ZW50KCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX0sMmUzKSl9c3luY0FsbEJsb2NrQ29udGVudCgpe3RoaXMuY29tcG9uZW50LmJsb2Nrcy5mb3JFYWNoKGU9PntsZXQgcj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKHImJnIuZ2V0Q29udGVudCl7bGV0IGk9ci5nZXRDb250ZW50KCk7ZS5jb250ZW50IT09aSYmKGUuY29udGVudD1pKX19KX1kZXN0cm95KCl7dGhpcy5zYXZlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2F2ZVRpbWVvdXQpfX07dmFyIGtqPWNsYXNze2NvbXBvbmVudDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWFzeW5jIGhhbmRsZUJsb2NrS2V5RG93bihlLGEpe2lmKHRoaXMuY29tcG9uZW50LnNsYXNoTWVudS52aXNpYmxlJiZ0aGlzLmlzU2xhc2hNZW51S2V5KGUua2V5KSl7dGhpcy5jb21wb25lbnQuaGFuZGxlU2xhc2hNZW51S2V5Ym9hcmQoZSk7cmV0dXJufWlmKCF0aGlzLmhhbmRsZUZvcm1hdHRpbmdTaG9ydGN1dHMoZSkpc3dpdGNoKGUua2V5KXtjYXNlIlRhYiI6dGhpcy5oYW5kbGVUYWIoZSxhKTticmVhaztjYXNlIkVudGVyIjphd2FpdCB0aGlzLmhhbmRsZUVudGVyKGUsYSk7YnJlYWs7Y2FzZSJCYWNrc3BhY2UiOmF3YWl0IHRoaXMuaGFuZGxlQmFja3NwYWNlKGUsYSk7YnJlYWs7Y2FzZSJEZWxldGUiOmF3YWl0IHRoaXMuaGFuZGxlRGVsZXRlKGUsYSk7YnJlYWs7Y2FzZSJBcnJvd1VwIjphd2FpdCB0aGlzLmhhbmRsZUFycm93VXAoZSxhKTticmVhaztjYXNlIkFycm93RG93biI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd0Rvd24oZSxhKTticmVhaztjYXNlIkFycm93TGVmdCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd0xlZnQoZSxhKTticmVhaztjYXNlIkFycm93UmlnaHQiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dSaWdodChlLGEpO2JyZWFrfX1pc1NsYXNoTWVudUtleShlKXtyZXR1cm5bIkFycm93RG93biIsIkFycm93VXAiLCJFbnRlciIsIkVzY2FwZSJdLmluY2x1ZGVzKGUpfWhhbmRsZUZvcm1hdHRpbmdTaG9ydGN1dHMoZSl7aWYoIShlLm1ldGFLZXl8fGUuY3RybEtleSkpcmV0dXJuITE7c3dpdGNoKGUua2V5LnRvTG93ZXJDYXNlKCkpe2Nhc2UiYiI6cmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgiYm9sZCIpKSwhMDtjYXNlImkiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoIml0YWxpYyIpKSwhMDtjYXNlInUiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoInVuZGVybGluZSIpKSwhMDtjYXNlImsiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoImxpbmsiKSksITB9cmV0dXJuITF9aGFuZGxlVGFiKGUsYSl7YS50eXBlIT09ImNvZGUiJiZhLnR5cGU9PT0ibGlzdCImJmUucHJldmVudERlZmF1bHQoKX1hc3luYyBoYW5kbGVFbnRlcihlLGEpe2xldCByPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYS50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBvPXIuY3JlYXRlQmxvY2soKTthd2FpdCByLmluc2VydEJsb2NrQWZ0ZXIoYSxvKTtyZXR1cm59aWYoYS50eXBlPT09ImNvZGUiKXtpZihlLnNoaWZ0S2V5KXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG89ci5jcmVhdGVCbG9jaygpO2F3YWl0IHIuaW5zZXJ0QmxvY2tBZnRlcihhLG8pfXJldHVybn1pZighZS5zaGlmdEtleSlpZihhLnR5cGU9PT0ibGlzdCIpYXdhaXQgdGhpcy5oYW5kbGVFbnRlckluTGlzdChlLGEpO2Vsc2V7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBzPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYocyYmcy5nZXRTcGxpdENvbnRlbnQpe2xldCBsPXMuZ2V0U3BsaXRDb250ZW50KCk7aWYobCl7cy5zZXRDb250ZW50KGwuYmVmb3JlKSxhLmNvbnRlbnQ9bC5iZWZvcmU7bGV0IGY9ci5jcmVhdGVCbG9jaygicGFyYWdyYXBoIixsLmFmdGVyKTthd2FpdCByLmluc2VydEJsb2NrQWZ0ZXIoYSxmKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWVsc2V7bGV0IGY9ci5jcmVhdGVCbG9jaygpO2F3YWl0IHIuaW5zZXJ0QmxvY2tBZnRlcihhLGYpfX1lbHNle2xldCBsPXIuY3JlYXRlQmxvY2soKTthd2FpdCByLmluc2VydEJsb2NrQWZ0ZXIoYSxsKX19fWFzeW5jIGhhbmRsZUVudGVySW5MaXN0KGUsYSl7bGV0IHI9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHImJnIucmFuZ2VDb3VudD4wKXtsZXQgbz1yLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIucGFyZW50RWxlbWVudD8uY2xvc2VzdCgibGkiKTtpZihvJiZvLnRleHRDb250ZW50PT09IiIpe2UucHJldmVudERlZmF1bHQoKTtsZXQgcz10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsbD1zLmNyZWF0ZUJsb2NrKCk7YXdhaXQgcy5pbnNlcnRCbG9ja0FmdGVyKGEsbCl9fX1hc3luYyBoYW5kbGVCYWNrc3BhY2UoZSxhKXtsZXQgcj10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGEudHlwZSkpe2lmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPT09MSl7dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSksci5yZW1vdmVCbG9jayhhLmlkKTtsZXQgYj1yLmNyZWF0ZUJsb2NrKCJwYXJhZ3JhcGgiLCIiKTt0aGlzLmNvbXBvbmVudC5ibG9ja3M9W2JdLHRoaXMuY29tcG9uZW50LnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKSxhd2FpdCByLmZvY3VzQmxvY2soYi5pZCwic3RhcnQiKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpO3JldHVybn10aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKTtsZXQgaD1yLmdldFByZXZpb3VzQmxvY2soYS5pZCksZz1yLmdldE5leHRCbG9jayhhLmlkKTtyLnJlbW92ZUJsb2NrKGEuaWQpLGgmJmgudHlwZSE9PSJkaXZpZGVyIiYmaC50eXBlIT09ImltYWdlIj9hd2FpdCByLmZvY3VzQmxvY2soaC5pZCwiZW5kIik6ZyYmZy50eXBlIT09ImRpdmlkZXIiJiZnLnR5cGUhPT0iaW1hZ2UiP2F3YWl0IHIuZm9jdXNCbG9jayhnLmlkLCJzdGFydCIpOmg/YXdhaXQgci5mb2N1c0Jsb2NrKGguaWQpOmcmJmF3YWl0IHIuZm9jdXNCbG9jayhnLmlkKTtyZXR1cm59bGV0IHM9dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7YS5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighc3x8IXMuc2hhZG93Um9vdClyZXR1cm47bGV0IGw9YS50eXBlPT09ImNvZGUiP3Muc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIWwpcmV0dXJuO2xldCBmPXMuY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksYz1bXTtmPy5zaGFkb3dSb290JiZjLnB1c2goZi5zaGFkb3dSb290KSxjLnB1c2gocy5zaGFkb3dSb290KTtsZXQgdT1JZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChsLC4uLmMpLGQ9cy5nZXRDb250ZW50P3MuZ2V0Q29udGVudCgpOmwudGV4dENvbnRlbnQ7aWYodT09PTApe2UucHJldmVudERlZmF1bHQoKTtsZXQgaD1yLmdldFByZXZpb3VzQmxvY2soYS5pZCk7aWYoaCl7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGgudHlwZSkpe2F3YWl0IHIuZm9jdXNCbG9jayhoLmlkKTtyZXR1cm59aWYodGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSksaC50eXBlPT09ImNvZGUiJiZhLnR5cGUhPT0iY29kZSIpe2EuY29udGVudD09PSIiJiYoci5yZW1vdmVCbG9jayhhLmlkKSxhd2FpdCByLmZvY3VzQmxvY2soaC5pZCwiZW5kIikpO3JldHVybn1pZihhLnR5cGU9PT0iY29kZSImJmgudHlwZSE9PSJjb2RlIil7bGV0IEU9cy5nZXRDb250ZW50P3MuZ2V0Q29udGVudCgpOmEuY29udGVudDsoRT09PSIifHxFLnRyaW0oKT09PSIiKSYmKHIucmVtb3ZlQmxvY2soYS5pZCksYXdhaXQgci5mb2N1c0Jsb2NrKGguaWQsImVuZCIpKTtyZXR1cm59bGV0IHg9dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7aC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKSxtPXg/LmdldENvbnRlbnQoKXx8aC5jb250ZW50fHwiIix2PXMuZ2V0Q29udGVudCgpfHxhLmNvbnRlbnR8fCIiLHk9IiI7aC50eXBlPT09ImNvZGUiJiZhLnR5cGU9PT0iY29kZSJ8fGgudHlwZT09PSJsaXN0IiYmYS50eXBlPT09Imxpc3QiP3k9bSsobSYmdj9gCmA6IiIpK3Y6eT1tKyhtJiZ2PyIgIjoiIikrdjtsZXQgdz1tLmxlbmd0aDtyLnVwZGF0ZUJsb2NrQ29udGVudChoLmlkLHkpLHgmJnguc2V0Q29udGVudCh5KSxyLnJlbW92ZUJsb2NrKGEuaWQpLGF3YWl0IHIuZm9jdXNCbG9jayhoLmlkLHcpfX1lbHNlIGlmKHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg+MSl7bGV0IGg9cy5nZXRDb250ZW50P3MuZ2V0Q29udGVudCgpOmEuY29udGVudDtpZihoPT09IiJ8fGgudHJpbSgpPT09IiIpe2UucHJldmVudERlZmF1bHQoKTtsZXQgZz1yLmdldFByZXZpb3VzQmxvY2soYS5pZCk7ZyYmKHIucmVtb3ZlQmxvY2soYS5pZCksZy50eXBlIT09ImRpdmlkZXIiJiZhd2FpdCByLmZvY3VzQmxvY2soZy5pZCwiZW5kIikpfX19YXN5bmMgaGFuZGxlRGVsZXRlKGUsYSl7bGV0IHI9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhhLnR5cGUpKXtpZihlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD09PTEpe3RoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLHIucmVtb3ZlQmxvY2soYS5pZCk7bGV0IHg9ci5jcmVhdGVCbG9jaygicGFyYWdyYXBoIiwiIik7dGhpcy5jb21wb25lbnQuYmxvY2tzPVt4XSx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksYXdhaXQgci5mb2N1c0Jsb2NrKHguaWQsInN0YXJ0IiksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtyZXR1cm59dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSk7bGV0IGg9ci5nZXRQcmV2aW91c0Jsb2NrKGEuaWQpLGc9ci5nZXROZXh0QmxvY2soYS5pZCk7ci5yZW1vdmVCbG9jayhhLmlkKTtsZXQgYj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07ZyYmIWIuaW5jbHVkZXMoZy50eXBlKT9hd2FpdCByLmZvY3VzQmxvY2soZy5pZCwic3RhcnQiKTpoJiYhYi5pbmNsdWRlcyhoLnR5cGUpP2F3YWl0IHIuZm9jdXNCbG9jayhoLmlkLCJlbmQiKTpnP2F3YWl0IHIuZm9jdXNCbG9jayhnLmlkKTpoJiZhd2FpdCByLmZvY3VzQmxvY2soaC5pZCk7cmV0dXJufWxldCBzPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIXN8fCFzLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBsPWEudHlwZT09PSJjb2RlIj9zLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6cy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFsKXJldHVybjtsZXQgZj1zLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGM9W107Zj8uc2hhZG93Um9vdCYmYy5wdXNoKGYuc2hhZG93Um9vdCksYy5wdXNoKHMuc2hhZG93Um9vdCk7bGV0IHU9SWUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobCwuLi5jKSxkPWwudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZih1PT09ZCl7bGV0IGg9ci5nZXROZXh0QmxvY2soYS5pZCk7aWYoaCYmWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGgudHlwZSkpe2UucHJldmVudERlZmF1bHQoKSxhd2FpdCByLmZvY3VzQmxvY2soaC5pZCk7cmV0dXJufX19YXN5bmMgaGFuZGxlQXJyb3dVcChlLGEpe2xldCByPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTtpZihyLmluY2x1ZGVzKGEudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsZD11LmdldFByZXZpb3VzQmxvY2soYS5pZCk7ZCYmYXdhaXQgdS5mb2N1c0Jsb2NrKGQuaWQsci5pbmNsdWRlcyhkLnR5cGUpP3ZvaWQgMDoiZW5kIik7cmV0dXJufWxldCBvPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW98fCFvLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBzPWEudHlwZT09PSJjb2RlIj9vLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFzKXJldHVybjtsZXQgbD1vLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGY9W107bD8uc2hhZG93Um9vdCYmZi5wdXNoKGwuc2hhZG93Um9vdCksZi5wdXNoKG8uc2hhZG93Um9vdCk7bGV0IGM9SWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5mKTtpZighKCFjfHwhYy5jb2xsYXBzZWQpJiZ0aGlzLmlzT25GaXJzdExpbmUoYyxzLC4uLmYpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGQ9dS5nZXRQcmV2aW91c0Jsb2NrKGEuaWQpO2lmKGQpe2xldCBoPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCB1LmZvY3VzQmxvY2soZC5pZCxoLmluY2x1ZGVzKGQudHlwZSk/dm9pZCAwOiJlbmQiKX19fWFzeW5jIGhhbmRsZUFycm93RG93bihlLGEpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhhLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGQ9dS5nZXROZXh0QmxvY2soYS5pZCk7aWYoZCl7bGV0IGg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IHUuZm9jdXNCbG9jayhkLmlkLGguaW5jbHVkZXMoZC50eXBlKT92b2lkIDA6InN0YXJ0Iil9cmV0dXJufWxldCBvPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW98fCFvLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBzPWEudHlwZT09PSJjb2RlIj9vLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFzKXJldHVybjtsZXQgbD1vLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGY9W107bD8uc2hhZG93Um9vdCYmZi5wdXNoKGwuc2hhZG93Um9vdCksZi5wdXNoKG8uc2hhZG93Um9vdCk7bGV0IGM9SWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5mKTtpZighKCFjfHwhYy5jb2xsYXBzZWQpJiZ0aGlzLmlzT25MYXN0TGluZShjLHMsLi4uZikpe2UucHJldmVudERlZmF1bHQoKTtsZXQgdT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsZD11LmdldE5leHRCbG9jayhhLmlkKTtpZihkKXtsZXQgaD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgdS5mb2N1c0Jsb2NrKGQuaWQsaC5pbmNsdWRlcyhkLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX19fWdldExhc3RUZXh0Tm9kZShlKXtpZihlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIGU7Zm9yKGxldCBhPWUuY2hpbGROb2Rlcy5sZW5ndGgtMTthPj0wO2EtLSl7bGV0IHI9dGhpcy5nZXRMYXN0VGV4dE5vZGUoZS5jaGlsZE5vZGVzW2FdKTtpZihyKXJldHVybiByfXJldHVybiBudWxsfWFzeW5jIGhhbmRsZUFycm93TGVmdChlLGEpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhhLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGQ9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGg9ZC5nZXRQcmV2aW91c0Jsb2NrKGEuaWQpO2lmKGgpe2xldCBnPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCBkLmZvY3VzQmxvY2soaC5pZCxnLmluY2x1ZGVzKGgudHlwZSk/dm9pZCAwOiJlbmQiKX1yZXR1cm59bGV0IG89dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7YS5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighb3x8IW8uc2hhZG93Um9vdClyZXR1cm47bGV0IHM9YS50eXBlPT09ImNvZGUiP28uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpvLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIXMpcmV0dXJuO2xldCBsPW8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksZj1bXTtsPy5zaGFkb3dSb290JiZmLnB1c2gobC5zaGFkb3dSb290KSxmLnB1c2goby5zaGFkb3dSb290KTtsZXQgYz1JZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmYpO2lmKCFjfHwhYy5jb2xsYXBzZWQpcmV0dXJuO2lmKEllLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KHMsLi4uZik9PT0wKXtsZXQgZD10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsaD1kLmdldFByZXZpb3VzQmxvY2soYS5pZCk7aWYoaCl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBiPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhoLnR5cGUpP3ZvaWQgMDoiZW5kIjthd2FpdCBkLmZvY3VzQmxvY2soaC5pZCxiKX19fWFzeW5jIGhhbmRsZUFycm93UmlnaHQoZSxhKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYS50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBoPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxnPWguZ2V0TmV4dEJsb2NrKGEuaWQpO2lmKGcpe2xldCBiPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCBoLmZvY3VzQmxvY2soZy5pZCxiLmluY2x1ZGVzKGcudHlwZSk/dm9pZCAwOiJzdGFydCIpfXJldHVybn1sZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHthLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFvfHwhby5zaGFkb3dSb290KXJldHVybjtsZXQgcz1hLnR5cGU9PT0iY29kZSI/by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighcylyZXR1cm47bGV0IGw9by5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxmPVtdO2w/LnNoYWRvd1Jvb3QmJmYucHVzaChsLnNoYWRvd1Jvb3QpLGYucHVzaChvLnNoYWRvd1Jvb3QpO2xldCBjPUllLmdldFNlbGVjdGlvbkluZm8oLi4uZik7aWYoIWN8fCFjLmNvbGxhcHNlZClyZXR1cm47bGV0IHU9SWUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQocywuLi5mKSxkPXMudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZih1PT09ZCl7bGV0IGg9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGc9aC5nZXROZXh0QmxvY2soYS5pZCk7aWYoZyl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBiPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCBoLmZvY3VzQmxvY2soZy5pZCxiLmluY2x1ZGVzKGcudHlwZSk/dm9pZCAwOiJzdGFydCIpfX19aXNPbkZpcnN0TGluZShlLGEsLi4ucil7dHJ5e2xldCBpPUllLmNyZWF0ZVJhbmdlRnJvbUluZm8oZSksbz1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9aS5jb21tb25BbmNlc3RvckNvbnRhaW5lcjtzLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJihzPXMucGFyZW50RWxlbWVudCk7bGV0IGw9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPW8udG9wLWwudG9wPDU7cmV0dXJuIHMudGV4dENvbnRlbnQmJiFzLnRleHRDb250ZW50LmluY2x1ZGVzKGAKYCk/SWUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQocywuLi5yKT09PTA6Zn1jYXRjaChpKXtyZXR1cm4gY29uc29sZS53YXJuKCJFcnJvciBjaGVja2luZyBmaXJzdCBsaW5lOiIsaSksZS5zdGFydE9mZnNldD09PTB9fWlzT25MYXN0TGluZShlLGEsLi4ucil7dHJ5e2xldCBpPUllLmNyZWF0ZVJhbmdlRnJvbUluZm8oZSksbz1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9aS5jb21tb25BbmNlc3RvckNvbnRhaW5lcjtzLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJihzPXMucGFyZW50RWxlbWVudCk7bGV0IGY9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20tby5ib3R0b208NTtpZihzLnRleHRDb250ZW50JiYhcy50ZXh0Q29udGVudC5pbmNsdWRlcyhgCmApKXtsZXQgYz1hLnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuIEllLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGEsLi4ucik9PT1jfXJldHVybiBmfWNhdGNoKGkpe2NvbnNvbGUud2FybigiRXJyb3IgY2hlY2tpbmcgbGFzdCBsaW5lOiIsaSk7bGV0IG89YS50ZXh0Q29udGVudD8ubGVuZ3RofHwwO3JldHVybiBJZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChhLC4uLnIpPT09b319fTt2YXIgU2o9Y2xhc3N7Y29tcG9uZW50O2RyYWdnZWRCbG9ja0lkPW51bGw7ZHJhZ092ZXJCbG9ja0lkPW51bGw7ZHJhZ092ZXJQb3NpdGlvbj1udWxsO2Ryb3BJbmRpY2F0b3I9bnVsbDtpbml0aWFsTW91c2VZPTA7aW5pdGlhbEJsb2NrWT0wO2RyYWdnZWRCbG9ja0VsZW1lbnQ9bnVsbDtkcmFnZ2VkQmxvY2tIZWlnaHQ9MDtkcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0PTA7ZHJhZ2dlZEJsb2NrTWFyZ2luVG9wPTA7bGFzdFVwZGF0ZVRpbWU9MDt1cGRhdGVUaHJvdHRsZT04MDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWdldCBkcmFnU3RhdGUoKXtyZXR1cm57ZHJhZ2dlZEJsb2NrSWQ6dGhpcy5kcmFnZ2VkQmxvY2tJZCxkcmFnT3ZlckJsb2NrSWQ6dGhpcy5kcmFnT3ZlckJsb2NrSWQsZHJhZ092ZXJQb3NpdGlvbjp0aGlzLmRyYWdPdmVyUG9zaXRpb259fWhhbmRsZURyYWdTdGFydChlLGEpe2lmKCFlLmRhdGFUcmFuc2ZlcilyZXR1cm47dGhpcy5kcmFnZ2VkQmxvY2tJZD1hLmlkLGUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9Im1vdmUiLGUuZGF0YVRyYW5zZmVyLnNldERhdGEoInRleHQvcGxhaW4iLGEuaWQpO2xldCByPW5ldyBJbWFnZTtpZihyLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQVVFQkFBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSIsZS5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKHIsMCwwKSx0aGlzLmluaXRpYWxNb3VzZVk9ZS5jbGllbnRZLHRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudD10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKSx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpe2xldCBpPXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmluaXRpYWxCbG9ja1k9aS50b3A7bGV0IG89dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKG8pe2xldCBzPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShvKTt0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcD1wYXJzZUludChsLm1hcmdpblRvcCl8fDAsdGhpcy5kcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0PXMuaGVpZ2h0fXRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0PWkuaGVpZ2h0LGNvbnNvbGUubG9nKCJEcmFnIG1lYXN1cmVtZW50czoiLHt3cmFwcGVySGVpZ2h0OmkuaGVpZ2h0LG1hcmdpblRvcDp0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcCxkcm9wSW5kaWNhdG9ySGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0LGNvbnRlbnRIZWlnaHQ6dGhpcy5kcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0LGJsb2NrSWQ6YS5pZH0pLHRoaXMuY3JlYXRlRHJvcEluZGljYXRvcigpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQpfXRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkPXRoaXMuZHJhZ2dlZEJsb2NrSWQsc2V0VGltZW91dCgoKT0+e3RoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCYmdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpfSwxMCl9aGFuZGxlRHJhZ0VuZCgpe3RoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKS5mb3JFYWNoKGE9PnthLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiwibW92ZS11cCIsIm1vdmUtZG93biIpLGEuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiKSxhLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2Zvcm0iKX0pLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSx0aGlzLmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlckJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyUG9zaXRpb249bnVsbCx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQ9bnVsbCx0aGlzLmRyYWdnZWRCbG9ja0hlaWdodD0wLHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD0wLHRoaXMuZHJhZ2dlZEJsb2NrTWFyZ2luVG9wPTAsdGhpcy5pbml0aWFsQmxvY2tZPTAsdGhpcy5jb21wb25lbnQuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmNvbXBvbmVudC5kcmFnT3ZlckJsb2NrSWQ9bnVsbCx0aGlzLmNvbXBvbmVudC5kcmFnT3ZlclBvc2l0aW9uPW51bGx9aGFuZGxlRHJhZ092ZXIoZSxhKXtpZihlLnByZXZlbnREZWZhdWx0KCksIWUuZGF0YVRyYW5zZmVyfHwhdGhpcy5kcmFnZ2VkQmxvY2tJZHx8dGhpcy5kcmFnZ2VkQmxvY2tJZD09PWEuaWQpcmV0dXJuO2UuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9Im1vdmUiO2xldCByPWUuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXIudG9wK3IuaGVpZ2h0LzI7dGhpcy5kcmFnT3ZlckJsb2NrSWQ9YS5pZCx0aGlzLmRyYWdPdmVyUG9zaXRpb249ZS5jbGllbnRZPGk/ImJlZm9yZSI6ImFmdGVyIix0aGlzLmNvbXBvbmVudC5kcmFnT3ZlckJsb2NrSWQ9dGhpcy5kcmFnT3ZlckJsb2NrSWQsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj10aGlzLmRyYWdPdmVyUG9zaXRpb259aGFuZGxlRHJhZ0xlYXZlKGUpe3RoaXMuZHJhZ092ZXJCbG9ja0lkPT09ZS5pZCYmKHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj1udWxsKX1oYW5kbGVEcm9wKGUsYSl7ZS5wcmV2ZW50RGVmYXVsdCgpLCEoIXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1hLmlkKSYmdGhpcy5jb21wb25lbnQuaGFuZGxlRHJvcChlLGEpfWlzRHJhZ2dpbmcoZSl7cmV0dXJuIHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1lfWlzRHJhZ092ZXIoZSl7cmV0dXJuIHRoaXMuZHJhZ092ZXJCbG9ja0lkPT09ZX1nZXREcmFnT3ZlckNsYXNzZXMoZSl7cmV0dXJuIHRoaXMuaXNEcmFnT3ZlcihlKT90aGlzLmRyYWdPdmVyUG9zaXRpb249PT0iYmVmb3JlIj8iZHJhZy1vdmVyLWJlZm9yZSI6ImRyYWctb3Zlci1hZnRlciI6IiJ9Y3JlYXRlRHJvcEluZGljYXRvcigpe3RoaXMuZHJvcEluZGljYXRvcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmRyb3BJbmRpY2F0b3IuY2xhc3NOYW1lPSJkcm9wLWluZGljYXRvciIsdGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQodGhpcy5kcm9wSW5kaWNhdG9yKX1oYW5kbGVHbG9iYWxEcmFnT3Zlcj1lPT57aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpcmV0dXJuO2xldCBhPWUuY2xpZW50WS10aGlzLmluaXRpYWxNb3VzZVk7dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke2F9cHgpYDtsZXQgcj1EYXRlLm5vdygpO3ItdGhpcy5sYXN0VXBkYXRlVGltZTx0aGlzLnVwZGF0ZVRocm90dGxlfHwodGhpcy5sYXN0VXBkYXRlVGltZT1yLHRoaXMudXBkYXRlQmxvY2tQb3NpdGlvbnMoZS5jbGllbnRZKSl9O3VwZGF0ZUJsb2NrUG9zaXRpb25zKGUpe2xldCBhPUFycmF5LmZyb20odGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpKSxyPWEuZmluZEluZGV4KG89Pm8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZihyPT09LTEpcmV0dXJuO2EuZm9yRWFjaChvPT57by5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKSE9PXRoaXMuZHJhZ2dlZEJsb2NrSWQmJihvLmNsYXNzTGlzdC5yZW1vdmUoIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxvLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0IikpfSk7bGV0IGk9YS5sZW5ndGg7Zm9yKGxldCBvPTA7bzxhLmxlbmd0aDtvKyspe2lmKG89PT1yKWNvbnRpbnVlO2xldCBsPWFbb10uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZj1sLnRvcDtpZihlPGYrbC5oZWlnaHQqLjUpe2k9bzticmVha319Zm9yKGxldCBvPTA7bzxhLmxlbmd0aDtvKyspe2lmKG89PT1yKWNvbnRpbnVlO2xldCBzPWFbb107cjxpP28+ciYmbzxpJiYocy5jbGFzc0xpc3QuYWRkKCJtb3ZlLXVwIikscy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIsYCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgKSk6cj5pJiZvPj1pJiZvPHImJihzLmNsYXNzTGlzdC5hZGQoIm1vdmUtZG93biIpLHMuc3R5bGUuc2V0UHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiLGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCkpfXRoaXMudXBkYXRlRHJvcEluZGljYXRvcihhLGkscil9dXBkYXRlRHJvcEluZGljYXRvcihlLGEscil7aWYoIXRoaXMuZHJvcEluZGljYXRvcnx8IXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudClyZXR1cm47dGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtsZXQgaT10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89MCxzPVtdO2ZvcihsZXQgYz0wO2M8ZS5sZW5ndGg7YysrKXtpZihjPT09ciljb250aW51ZTtsZXQgdT1lW2NdLGQ9dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxoPWQudG9wLWkudG9wLGc9ZC5ib3R0b20taS50b3AsYj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh1KS50cmFuc2Zvcm07aWYoYiYmYiE9PSJub25lIil7bGV0IG09bmV3IERPTU1hdHJpeChiKS5tNDI7aCs9bSxnKz1tfXMucHVzaCh7aW5kZXg6Yyx0b3A6aCxib3R0b206Z30pfXMuc29ydCgoYyx1KT0+Yy50b3AtdS50b3ApO2xldCBsPWE7YT5yJiZsLS07bGV0IGY9MTY7aWYodGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgYz10aGlzLmNvbXBvbmVudC5ibG9ja3MuZmluZCh1PT51LmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoYyl7bGV0IHU9Yy50eXBlO3U9PT0iaGVhZGluZy0xInx8dT09PSJoZWFkaW5nLTIifHx1PT09ImhlYWRpbmctMyI/Zj0yNDoodT09PSJjb2RlInx8dT09PSJxdW90ZSIpJiYoZj0yMCl9fWlmKGw9PT0wKW89MDtlbHNlIGlmKGw+PXMubGVuZ3RoKXtsZXQgYz1zW3MubGVuZ3RoLTFdO2MmJihvPWMuYm90dG9tLG8rPWYpfWVsc2V7bGV0IGM9c1tsLTFdO2MmJihvPWMuYm90dG9tLG8rPWYpfXRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5oZWlnaHQ9YCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS50b3A9YCR7TWF0aC5tYXgoMCxvKX1weGAsY29uc29sZS5sb2coIkRyb3AgaW5kaWNhdG9yIHVwZGF0ZToiLHt0YXJnZXRJbmRleDphLGFkanVzdGVkVGFyZ2V0SW5kZXg6bCxkcmFnZ2VkSW5kZXg6cix0b3BQb3NpdGlvbjpvLGhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxibG9ja01hcmdpbjpmLHZpc3VhbEJsb2NrczpzLm1hcChjPT4oe2luZGV4OmMuaW5kZXgsdG9wOmMudG9wLGJvdHRvbTpjLmJvdHRvbX0pKX0pfWhhbmRsZUdsb2JhbERyYWdFbmQ9KCk9Pntkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKSx0aGlzLmRyb3BJbmRpY2F0b3ImJih0aGlzLmRyb3BJbmRpY2F0b3IucmVtb3ZlKCksdGhpcy5kcm9wSW5kaWNhdG9yPW51bGwpLHRoaXMuZHJhZ2dlZEJsb2NrSWQ/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5wZXJmb3JtRHJvcCgpLHRoaXMuaGFuZGxlRHJhZ0VuZCgpfSk6dGhpcy5oYW5kbGVEcmFnRW5kKCl9O3BlcmZvcm1Ecm9wKCl7aWYoIXRoaXMuZHJhZ2dlZEJsb2NrSWQpcmV0dXJuO2xldCBlPUFycmF5LmZyb20odGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpKTtpZighZS5maW5kKHU9PnUuZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik9PT10aGlzLmRyYWdnZWRCbG9ja0lkKSlyZXR1cm47bGV0IHI9ZS5tYXAodT0+e2xldCBkPXUuZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIiksaD11LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGc9aC50b3AraC5oZWlnaHQvMjtyZXR1cm57aWQ6ZCxjZW50ZXJZOmcsZWxlbWVudDp1fX0pO3Iuc29ydCgodSxkKT0+dS5jZW50ZXJZLWQuY2VudGVyWSk7bGV0IGk9ci5tYXAodT0+dS5pZCkuZmlsdGVyKHU9PnUhPT1udWxsKSxvPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLHM9by5maW5kKHU9PnUuaWQ9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZighcylyZXR1cm47bGV0IGw9by5tYXAodT0+dS5pZCk7aWYoISFpLmV2ZXJ5KCh1LGQpPT51PT09bFtkXSkpcmV0dXJuO2xldCBjPWkubWFwKHU9Pm8uZmluZChkPT5kLmlkPT09dSkpLmZpbHRlcihCb29sZWFuKTt0aGlzLmNvbXBvbmVudC5ibG9ja3M9Yyx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxzZXRUaW1lb3V0KCgpPT57cy50eXBlIT09ImRpdmlkZXIiJiZ0aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhzLmlkKX0sMTAwKX19O3ZhciBDaj1jbGFzc3toaXN0b3J5PVtdO2N1cnJlbnRJbmRleD0tMTttYXhIaXN0b3J5U2l6ZT01MDtsYXN0U2F2ZVRpbWU9MDtzYXZlRGVib3VuY2VNcz01MDA7Y29uc3RydWN0b3IoKXt0aGlzLmhpc3Rvcnk9W10sdGhpcy5jdXJyZW50SW5kZXg9LTF9c2F2ZVN0YXRlKGUsYSxyKXtsZXQgaT1EYXRlLm5vdygpO2lmKGktdGhpcy5sYXN0U2F2ZVRpbWU8dGhpcy5zYXZlRGVib3VuY2VNcyYmdGhpcy5jdXJyZW50SW5kZXg+PTApe3RoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF09e2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUpLHNlbGVjdGVkQmxvY2tJZDphLGN1cnNvclBvc2l0aW9uOnI/ey4uLnJ9OnZvaWQgMCx0aW1lc3RhbXA6aX07cmV0dXJufXRoaXMuY3VycmVudEluZGV4PHRoaXMuaGlzdG9yeS5sZW5ndGgtMSYmKHRoaXMuaGlzdG9yeT10aGlzLmhpc3Rvcnkuc2xpY2UoMCx0aGlzLmN1cnJlbnRJbmRleCsxKSk7bGV0IG89e2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKGUpLHNlbGVjdGVkQmxvY2tJZDphLGN1cnNvclBvc2l0aW9uOnI/ey4uLnJ9OnZvaWQgMCx0aW1lc3RhbXA6aX07dGhpcy5oaXN0b3J5LnB1c2gobyksdGhpcy5jdXJyZW50SW5kZXgrKyx0aGlzLmhpc3RvcnkubGVuZ3RoPnRoaXMubWF4SGlzdG9yeVNpemUmJih0aGlzLmhpc3Rvcnkuc2hpZnQoKSx0aGlzLmN1cnJlbnRJbmRleC0tKSx0aGlzLmxhc3RTYXZlVGltZT1pfXNhdmVDaGVja3BvaW50KGUsYSxyKXt0aGlzLmxhc3RTYXZlVGltZT0wLHRoaXMuc2F2ZVN0YXRlKGUsYSxyKX11bmRvKCl7cmV0dXJuIHRoaXMuY2FuVW5kbygpPyh0aGlzLmN1cnJlbnRJbmRleC0tLHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKSk6bnVsbH1yZWRvKCl7cmV0dXJuIHRoaXMuY2FuUmVkbygpPyh0aGlzLmN1cnJlbnRJbmRleCsrLHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKSk6bnVsbH1jYW5VbmRvKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4PjB9Y2FuUmVkbygpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoLTF9Z2V0Q3VycmVudFN0YXRlKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4Pj0wJiZ0aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoP3RoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKTpudWxsfWNsZWFyKCl7dGhpcy5oaXN0b3J5PVtdLHRoaXMuY3VycmVudEluZGV4PS0xLHRoaXMubGFzdFNhdmVUaW1lPTB9Y2xvbmVCbG9ja3MoZSl7cmV0dXJuIGUubWFwKGE9Pih7Li4uYSxtZXRhZGF0YTphLm1ldGFkYXRhP3suLi5hLm1ldGFkYXRhfTp2b2lkIDB9KSl9Y2xvbmVTdGF0ZShlKXtyZXR1cm57YmxvY2tzOnRoaXMuY2xvbmVCbG9ja3MoZS5ibG9ja3MpLHNlbGVjdGVkQmxvY2tJZDplLnNlbGVjdGVkQmxvY2tJZCxjdXJzb3JQb3NpdGlvbjplLmN1cnNvclBvc2l0aW9uP3suLi5lLmN1cnNvclBvc2l0aW9ufTp2b2lkIDAsdGltZXN0YW1wOmUudGltZXN0YW1wfX1nZXRIaXN0b3J5SW5mbygpe3JldHVybntzaXplOnRoaXMuaGlzdG9yeS5sZW5ndGgsY3VycmVudEluZGV4OnRoaXMuY3VycmVudEluZGV4LGNhblVuZG86dGhpcy5jYW5VbmRvKCksY2FuUmVkbzp0aGlzLmNhblJlZG8oKX19fTtmZSgpO0JlKCk7dmFyIE9JPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sZW89ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LHNuMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtd3lzaXd5Zy1ibG9jayIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdO3ZhciB2PWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgeT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOk9iamVjdH0pXSxmPVtEKHt0eXBlOkJvb2xlYW59KV0sZD1bRCh7dHlwZTpPYmplY3R9KV0sYj1bRCh7dHlwZTpPYmplY3R9KV0sT0kodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibG9jayIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+ImJsb2NrImluIHcsZ2V0Onc9PncuYmxvY2ssc2V0Oih3LEUpPT57dy5ibG9jaz1FfX0sbWV0YWRhdGE6eX0scyxsKSxPSSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzU2VsZWN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJpc1NlbGVjdGVkImluIHcsZ2V0Onc9PncuaXNTZWxlY3RlZCxzZXQ6KHcsRSk9Pnt3LmlzU2VsZWN0ZWQ9RX19LG1ldGFkYXRhOnl9LGMsdSksT0kodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYW5kbGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+ImhhbmRsZXJzImluIHcsZ2V0Onc9PncuaGFuZGxlcnMsc2V0Oih3LEUpPT57dy5oYW5kbGVycz1FfX0sbWV0YWRhdGE6eX0saCxnKSxPSSh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Ind5c2l3eWdDb21wb25lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJ3eXNpd3lnQ29tcG9uZW50ImluIHcsZ2V0Onc9Pncud3lzaXd5Z0NvbXBvbmVudCxzZXQ6KHcsRSk9Pnt3Lnd5c2l3eWdDb21wb25lbnQ9RX19LG1ldGFkYXRhOnl9LHgsbSksT0kobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6eX0sbnVsbCxhKSx2PXI9ZS52YWx1ZSx5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnl9KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fc2VsZWN0aW9uSGFuZGxlciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLl9zZWxlY3Rpb25IYW5kbGVyKX0jZT1lbyh0aGlzLHMsdm9pZCAwKTtnZXQgYmxvY2soKXtyZXR1cm4gdGhpcy4jZX1zZXQgYmxvY2soeSl7dGhpcy4jZT15fSN0PShlbyh0aGlzLGwpLGVvKHRoaXMsYywhMSkpO2dldCBpc1NlbGVjdGVkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlzU2VsZWN0ZWQoeSl7dGhpcy4jdD15fSNhPShlbyh0aGlzLHUpLGVvKHRoaXMsaCx2b2lkIDApKTtnZXQgaGFuZGxlcnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaGFuZGxlcnMoeSl7dGhpcy4jYT15fSNyPShlbyh0aGlzLGcpLGVvKHRoaXMseCx2b2lkIDApKTtnZXQgd3lzaXd5Z0NvbXBvbmVudCgpe3JldHVybiB0aGlzLiNyfXNldCB3eXNpd3lnQ29tcG9uZW50KHkpe3RoaXMuI3I9eX1ibG9ja0VsZW1lbnQ9KGVvKHRoaXMsbSksbnVsbCk7Y29udGVudEluaXRpYWxpemVkPSExO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtoYW5kbGVyU3R5bGVzSW5qZWN0ZWQ9ITE7c3RhdGljIE5PTl9FRElUQUJMRV9UWVBFUz1bImltYWdlIiwiZGl2aWRlciIsInlvdXR1YmUiXTtpbmplY3RIYW5kbGVyU3R5bGVzKCl7aWYodGhpcy5oYW5kbGVyU3R5bGVzSW5qZWN0ZWQpcmV0dXJuO3RoaXMuaGFuZGxlclN0eWxlc0luamVjdGVkPSEwO2xldCB5PSIiLHc9WXQuZ2V0QWxsVHlwZXMoKTtmb3IobGV0IEUgb2Ygdyl7bGV0IEM9WXQuZ2V0SGFuZGxlcihFKTtDJiYoeSs9Qy5nZXRTdHlsZXMoKSl9aWYoeSl7bGV0IEU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtFLnRleHRDb250ZW50PXksdGhpcy5zaGFkb3dSb290Py5hcHBlbmRDaGlsZChFKX19c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5ibG9jayB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgICAgbWluLWhlaWdodDogMS42ZW07CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiNlMGUwZTAiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jazplbXB0eTpub3QoOmZvY3VzKTo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtcGxhY2Vob2xkZXIpOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAvKiBCbG9jay1zcGVjaWZpYyBzdHlsZXMgbW92ZWQgdG8gaGFuZGxlcnMgKi8KCgogICAgICAvKiBGb3JtYXR0aW5nIHN0eWxlcyAqLwogICAgICAuYmxvY2sgOmlzKGIsIHN0cm9uZykgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrIDppcyhpLCBlbSkgewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmJsb2NrIHUgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuYmxvY2sgcyB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgIH0KCiAgICAgIC5ibG9jayBjb2RlIHsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2QxNCIsIiNmZjZiNmIiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jayBhIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDY2Y2MiLCIjNGQ5NGZmIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuYmxvY2sgYTpob3ZlciB7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtwLmJkVGhlbWUoIiMwMDY2Y2MiLCIjNGQ5NGZmIil9OwogICAgICB9CgogICAgICAvKiBDb2RlIGJsb2NrIGNvbnRhaW5lciBhbmQgbGFuZ3VhZ2Ugc3R5bGVzIG1vdmVkIHRvIGhhbmRsZXIgKi8KCiAgICAgIC8qIFNlbGVjdGlvbiBzdHlsZXMgKi8KICAgICAgLmJsb2NrIDo6c2VsZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4zKSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgoKICAgICAgLyogU3RyaWtlIHRocm91Z2ggKi8KICAgICAgLmJsb2NrIDppcyhzLCBzdHJpa2UpIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCgogICAgICAvKiBCbG9jayBtYXJnaW4gYWRqdXN0bWVudHMgYmFzZWQgb24gdHlwZSAqLwogICAgICA6aG9zdC1jb250ZXh0KC5ibG9jay13cmFwcGVyOmZpcnN0LWNoaWxkKSAuYmxvY2sgewogICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgOmhvc3QtY29udGV4dCguYmxvY2std3JhcHBlcjpsYXN0LWNoaWxkKSAuYmxvY2sgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIFNlbGVjdGVkIHN0YXRlICovCiAgICAgIC5ibG9jay5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMDUpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAke3AuYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4yKSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW4tbGVmdDogLThweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC04cHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4OwogICAgICB9CgoKCgogICAgYF07c2hvdWxkVXBkYXRlKHkpe2lmKHkuaGFzKCJpc1NlbGVjdGVkIikmJnRoaXMuYmxvY2spe2xldCB3PW51bGwsQz1gLmJsb2NrLiR7dGhpcy5ibG9jay50eXBlfWA7cmV0dXJuIHc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKEMpLHcmJih0aGlzLmlzU2VsZWN0ZWQ/dy5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOncuY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKSksITF9aWYoeS5oYXMoImJsb2NrIikmJnRoaXMuYmxvY2spe2xldCB3PXkuZ2V0KCJibG9jayIpO2lmKHcmJncuaWQmJncudHlwZSYmdy5pZD09PXRoaXMuYmxvY2suaWQmJncudHlwZT09PXRoaXMuYmxvY2sudHlwZSlyZXR1cm4hMX1yZXR1cm4hdGhpcy5ibG9ja0VsZW1lbnR8fHRoaXMuYmxvY2s/LnR5cGUhPT10aGlzLmJsb2NrRWxlbWVudC5kYXRhc2V0LmJsb2NrVHlwZX1maXJzdFVwZGF0ZWQoKXt0aGlzLmNvbnRlbnRJbml0aWFsaXplZD0hMCx0aGlzLmluamVjdEhhbmRsZXJTdHlsZXMoKTtsZXQgeT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO2lmKHkmJnRoaXMuYmxvY2smJih5LmlubmVySFRNTD10aGlzLnJlbmRlckJsb2NrQ29udGVudCgpKSx0aGlzLmJsb2NrKXtsZXQgRT1ZdC5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoRSl7bGV0IEM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKTtDJiZFLnNldHVwKEMsdGhpcy5ibG9jayx0aGlzLmhhbmRsZXJzKTtyZXR1cm59fWxldCB3PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYodyl7dy5zZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiLHRoaXMuYmxvY2suaWQpLHcuc2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLXR5cGUiLHRoaXMuYmxvY2sudHlwZSksdy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsQz0+e3RoaXMuaGFuZGxlcnM/Lm9uSW5wdXQ/LihDKTtsZXQgej10aGlzLmdldEN1cnNvclBvc2l0aW9uKHcpO3ohPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj16KX0pLHcuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsQz0+e2xldCB6PXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odyk7eiE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPXopLHRoaXMuaGFuZGxlcnM/Lm9uS2V5RG93bj8uKEMpfSksdy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkZvY3VzPy4oKX0pLHcuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkJsdXI/LigpfSksdy5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uQ29tcG9zaXRpb25TdGFydD8uKCl9KSx3LmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uQ29tcG9zaXRpb25FbmQ/LigpfSksdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixDPT57bGV0IHo9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih3KTt6IT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249eiksdGhpcy5oYW5kbGVycz8ub25Nb3VzZVVwPy4oQyl9KSx3LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3NldFRpbWVvdXQoKCk9PntsZXQgQz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHcpO0MhPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1DKX0sMCl9KTtsZXQgRT0oKT0+e2xldCBDPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighQ3x8Qy5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IHo9Qy50b1N0cmluZygpO2lmKHoubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6IiIsYmxvY2tJZDp0aGlzLmJsb2NrLmlkLGhhc1NlbGVjdGlvbjohMX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSk7cmV0dXJufWxldCBQPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIVApcmV0dXJuO2xldCAkPXRoaXMuY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsSD1bXTskJiZILnB1c2goJCksdGhpcy5zaGFkb3dSb290JiZILnB1c2godGhpcy5zaGFkb3dSb290KTtsZXQgTD1JZS5nZXRTZWxlY3Rpb25JbmZvKC4uLkgpO2lmKCFMKXJldHVybjtsZXQgaz1JZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShQLEwuc3RhcnRDb250YWluZXIpLE49SWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oUCxMLmVuZENvbnRhaW5lcik7aWYoa3x8Til7aWYoeiE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PXo7bGV0IFM9SWUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhMKSxUPVMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDp6LnRyaW0oKSxibG9ja0lkOnRoaXMuYmxvY2suaWQscmFuZ2U6UyxyZWN0OlQsaGFzU2VsZWN0aW9uOiEwfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OiIiLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxoYXNTZWxlY3Rpb246ITF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLEUpLHRoaXMuX3NlbGVjdGlvbkhhbmRsZXI9RSx3LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwoKT0+e2xldCBDPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odyk7QyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPUMpfSksdGhpcy5ibG9jay5jb250ZW50JiYody5pbm5lckhUTUw9dGhpcy5ibG9jay5jb250ZW50KX10aGlzLmJsb2NrRWxlbWVudD13fXJlbmRlcigpe3JldHVybiB0aGlzLmJsb2NrP0pvYDxkaXYgY2xhc3M9Ind5c2l3eWctYmxvY2stY29udGFpbmVyIj48L2Rpdj5gOkpvYGB9cmVuZGVyQmxvY2tDb250ZW50KCl7aWYoIXRoaXMuYmxvY2spcmV0dXJuIiI7bGV0IHk9WXQuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHkpcmV0dXJuIHkucmVuZGVyKHRoaXMuYmxvY2ssdGhpcy5pc1NlbGVjdGVkKTtsZXQgdz10aGlzLmlzU2VsZWN0ZWQ/IiBzZWxlY3RlZCI6IiI7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrICR7dGhpcy5ibG9jay50eXBlfSR7d30iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICA+PC9kaXY+CiAgICBgfWZvY3VzKCl7bGV0IHk9WXQuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHkmJnkuZm9jdXMpe2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksQz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB5LmZvY3VzKEUsQyl9aWYodGhpcy5ibG9jayYmdi5OT05fRURJVEFCTEVfVFlQRVMuaW5jbHVkZXModGhpcy5ibG9jay50eXBlKSl7bGV0IEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAuYmxvY2suJHt0aGlzLmJsb2NrLnR5cGV9YCk7RSYmRS5mb2N1cygpO3JldHVybn1sZXQgdz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO3cmJih3Lmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHcuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksdy5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT13JiZ0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT13JiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dy5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcih5PSJlbmQiKXtsZXQgdz1ZdC5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYodyYmdy5mb2N1c1dpdGhDdXJzb3Ipe2xldCB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksUD17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB3LmZvY3VzV2l0aEN1cnNvcih6LHksUCl9aWYodGhpcy5ibG9jayYmdi5OT05fRURJVEFCTEVfVFlQRVMuaW5jbHVkZXModGhpcy5ibG9jay50eXBlKSl7dGhpcy5mb2N1cygpO3JldHVybn1sZXQgRT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFFKXJldHVybjtFLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fEUuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksRS5mb2N1cygpO2xldCBDPSgpPT57eT09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KCk6eT09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQoKTp0eXBlb2YgeT09Im51bWJlciImJkllLnNldEN1cnNvclBvc2l0aW9uKEUseSl9O2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1FfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1FP0MoKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1FfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1FKSYmQygpfSl9Z2V0Q3Vyc29yUG9zaXRpb24oeSl7bGV0IHc9WXQuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHcmJncuZ2V0Q3Vyc29yUG9zaXRpb24pe2xldCBIPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIHcuZ2V0Q3Vyc29yUG9zaXRpb24oeSxIKX1sZXQgQz10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LHo9W107QyYmei5wdXNoKEMpLHRoaXMuc2hhZG93Um9vdCYmei5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IFA9SWUuZ2V0U2VsZWN0aW9uSW5mbyguLi56KTtpZihjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFNlbGVjdGlvbiBpbmZvIGZyb20gc2hhZG93IERPTXM6Iix7c2VsZWN0aW9uSW5mbzpQLHNoYWRvd1Jvb3RzQ291bnQ6ei5sZW5ndGh9KSwhUClyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBObyBzZWxlY3Rpb24gZm91bmQiKSxudWxsO2lmKGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogUmFuZ2UgaW5mbzoiLHtzdGFydENvbnRhaW5lcjpQLnN0YXJ0Q29udGFpbmVyLHN0YXJ0T2Zmc2V0OlAuc3RhcnRPZmZzZXQsY29sbGFwc2VkOlAuY29sbGFwc2VkLHN0YXJ0Q29udGFpbmVyVGV4dDpQLnN0YXJ0Q29udGFpbmVyLnRleHRDb250ZW50fSksIXkuY29udGFpbnMoUC5zdGFydENvbnRhaW5lcikpcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogUmFuZ2Ugbm90IGluIGVsZW1lbnQiKSxudWxsO2xldCBfPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Xy5zZWxlY3ROb2RlQ29udGVudHMoeSksXy5zZXRFbmQoUC5zdGFydENvbnRhaW5lcixQLnN0YXJ0T2Zmc2V0KTtsZXQgJD1fLnRvU3RyaW5nKCkubGVuZ3RoO3JldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IENhbGN1bGF0ZWQgcG9zaXRpb246Iix7cG9zaXRpb246JCxwcmVDYXJldFRleHQ6Xy50b1N0cmluZygpLGVsZW1lbnRUZXh0OnkudGV4dENvbnRlbnQsZWxlbWVudFRleHRMZW5ndGg6eS50ZXh0Q29udGVudD8ubGVuZ3RofSksJH1nZXRDb250ZW50KCl7bGV0IHk9WXQuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHkmJnkuZ2V0Q29udGVudCl7bGV0IEM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSx6PXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIHkuZ2V0Q29udGVudChDLHopfWxldCB3PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIXcpcmV0dXJuIiI7bGV0IEU9dy5pbm5lckhUTUx8fCIiO3JldHVybiBjb25zb2xlLmxvZygiR2V0dGluZyBjb250ZW50IGZyb20gYmxvY2s6IixFKSxFfXNldENvbnRlbnQoeSl7bGV0IHc9WXQuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHcmJncuc2V0Q29udGVudCl7bGV0IHo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxQPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIHcuc2V0Q29udGVudCh6LHksUCl9bGV0IEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighRSlyZXR1cm47bGV0IEM9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PUV8fHRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PUU7RS5pbm5lckhUTUw9eSxDJiZFLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydCgpe2xldCB5PVl0LmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZih5JiZ5LnNldEN1cnNvclRvU3RhcnQpe2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksQz17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB5LnNldEN1cnNvclRvU3RhcnQoRSxDKX1sZXQgdz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO3cmJl8yLnNldEN1cnNvclRvU3RhcnQodyl9c2V0Q3Vyc29yVG9FbmQoKXtsZXQgeT1ZdC5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoeSYmeS5zZXRDdXJzb3JUb0VuZCl7bGV0IEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxDPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIHkuc2V0Q3Vyc29yVG9FbmQoRSxDKX1sZXQgdz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO3cmJl8yLnNldEN1cnNvclRvRW5kKHcpfWdldENvbnRleHRNZW51SXRlbXMoKXtpZighdGhpcy5ibG9ja3x8dGhpcy5ibG9jay50eXBlPT09ImRpdmlkZXIiKXJldHVybltdO2xldCB5PVAxLmdldFNsYXNoTWVudUl0ZW1zKCksdz10aGlzLmJsb2NrLnR5cGUsRT10aGlzLnd5c2l3eWdDb21wb25lbnQsQz10aGlzLmJsb2NrLmlkLFA9W3tuYW1lOiJDaGFuZ2UgVHlwZSIsaWNvbk5hbWU6InR5cGUiLHN1Ym1lbnU6eS5maWx0ZXIoXz0+Xy50eXBlIT09dyYmXy50eXBlIT09ImRpdmlkZXIiKS5tYXAoXz0+KHtuYW1lOl8ubGFiZWwsaWNvbk5hbWU6Xy5pY29uLnJlcGxhY2UoImx1Y2lkZToiLCIiKSxhY3Rpb246YXN5bmMoKT0+e2lmKEUmJkUuYmxvY2tPcGVyYXRpb25zKXtsZXQgJD1FLmJsb2Nrcy5maW5kKEg9PkguaWQ9PT1DKTskJiYoJC50eXBlPV8udHlwZSwkLmNvbnRlbnQ9JC5jb250ZW50fHwiIixfLnR5cGU9PT0iY29kZSI/JC5tZXRhZGF0YT17bGFuZ3VhZ2U6InR5cGVzY3JpcHQifTpfLnR5cGU9PT0ibGlzdCI/JC5tZXRhZGF0YT17bGlzdFR5cGU6ImJ1bGxldCJ9Ol8udHlwZT09PSJpbWFnZSI/KCQuY29udGVudD0iIiwkLm1ldGFkYXRhPXt1cmw6IiIsbG9hZGluZzohMX0pOl8udHlwZT09PSJ5b3V0dWJlIj8oJC5jb250ZW50PSIiLCQubWV0YWRhdGE9e3ZpZGVvSWQ6IiIsdXJsOiIifSk6Xy50eXBlPT09Im1hcmtkb3duIj8kLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06Xy50eXBlPT09Imh0bWwiPyQubWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTpfLnR5cGU9PT0iYXR0YWNobWVudCImJigkLmNvbnRlbnQ9IiIsJC5tZXRhZGF0YT17ZmlsZXM6W119KSxFLnVwZGF0ZUJsb2NrRWxlbWVudChDKSxFLnVwZGF0ZVZhbHVlKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57RS5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhDKX0pKX19fSkpfV07cmV0dXJuWyJpbWFnZSIsImRpdmlkZXIiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSl8fFAucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsaWNvbk5hbWU6InNjaXNzb3JzIixzaG9ydGN1dDoiQ21kK1giLGFjdGlvbjphc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImN1dCIpfX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixzaG9ydGN1dDoiQ21kK0MiLGFjdGlvbjphc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKX19LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246YXN5bmMoKT0+e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJwYXN0ZSIpfX0pLFAucHVzaCh7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSBCbG9jayIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmFzeW5jKCk9PntFJiZFLmJsb2NrT3BlcmF0aW9ucyYmRS5ibG9ja09wZXJhdGlvbnMuZGVsZXRlQmxvY2soQyl9fSksUH1nZXRTcGxpdENvbnRlbnQoKXtjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTdGFydGluZy4uLiIpO2xldCB5PVl0LmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDaGVja2luZyBmb3IgaGFuZGxlciIse2Jsb2NrVHlwZTp0aGlzLmJsb2NrLnR5cGUsaGFzSGFuZGxlcjohIXksaGFzU3BsaXRNZXRob2Q6ISEoeSYmeS5nZXRTcGxpdENvbnRlbnQpfSkseSYmeS5nZXRTcGxpdENvbnRlbnQpe2xldCBSPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogRm91bmQgY29udGFpbmVyIix7Y29udGFpbmVyOiEhUixjb250YWluZXJIVE1MOlI/LmlubmVySFRNTD8uc3Vic3RyaW5nKDAsMTAwKX0pO2xldCBBPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIHkuZ2V0U3BsaXRDb250ZW50KFIsQSl9bGV0IHc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighdylyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogTm8gZWRpdGFibGUgZWxlbWVudCBmb3VuZCIpLG51bGw7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogRWxlbWVudCBpbmZvOiIse2Jsb2NrVHlwZTp0aGlzLmJsb2NrLnR5cGUsaW5uZXJIVE1MOncuaW5uZXJIVE1MLHRleHRDb250ZW50OncudGV4dENvbnRlbnQsdGV4dExlbmd0aDp3LnRleHRDb250ZW50Py5sZW5ndGh9KTtsZXQgQz10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LHo9W107QyYmei5wdXNoKEMpLHRoaXMuc2hhZG93Um9vdCYmei5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IFA9SWUuZ2V0U2VsZWN0aW9uSW5mbyguLi56KTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOiIse3NlbGVjdGlvbkluZm86UCxzaGFkb3dSb290c0NvdW50OnoubGVuZ3RofSksIVApe2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IE5vIHNlbGVjdGlvbiwgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjoiLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgUj13LnRleHRDb250ZW50fHwiIixBPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sUi5sZW5ndGgpO3JldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTcGxpdHRpbmcgd2l0aCBsYXN0IGtub3duIHBvc2l0aW9uOiIse3BvczpBLGZ1bGxUZXh0TGVuZ3RoOlIubGVuZ3RoLGJlZm9yZTpSLnN1YnN0cmluZygwLEEpLGFmdGVyOlIuc3Vic3RyaW5nKEEpfSkse2JlZm9yZTpSLnN1YnN0cmluZygwLEEpLGFmdGVyOlIuc3Vic3RyaW5nKEEpfX1yZXR1cm4gbnVsbH1pZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTZWxlY3Rpb24gcmFuZ2U6Iix7c3RhcnRDb250YWluZXI6UC5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpQLnN0YXJ0T2Zmc2V0LHN0YXJ0Q29udGFpbmVySW5FbGVtZW50OncuY29udGFpbnMoUC5zdGFydENvbnRhaW5lcil9KSwhSWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00odyxQLnN0YXJ0Q29udGFpbmVyKSl7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIG5vdCBpbiB0aGlzIGJsb2NrLCB1c2luZyBsYXN0IGtub3duIHBvc2l0aW9uOiIsdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiksdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBSPXcudGV4dENvbnRlbnR8fCIiLEE9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixSLmxlbmd0aCk7cmV0dXJue2JlZm9yZTpSLnN1YnN0cmluZygwLEEpLGFmdGVyOlIuc3Vic3RyaW5nKEEpfX1yZXR1cm4gbnVsbH1sZXQgXz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHcpO2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBwb3NpdGlvbiBmb3IgSFRNTCBzcGxpdDoiLF8pLF89PT1udWxsfHxfPT09MClyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ3Vyc29yIGF0IHN0YXJ0IG9yIG51bGwsIG1vdmluZyBhbGwgY29udGVudCIpLHtiZWZvcmU6IiIsYWZ0ZXI6dy5pbm5lckhUTUx9O2xldCAkPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksSD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpOyQuc2V0U3RhcnQodywwKSwkLnNldEVuZChQLnN0YXJ0Q29udGFpbmVyLFAuc3RhcnRPZmZzZXQpLEguc2V0U3RhcnQoUC5zdGFydENvbnRhaW5lcixQLnN0YXJ0T2Zmc2V0KSxILnNldEVuZCh3LHcuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBMPSQuY2xvbmVDb250ZW50cygpLGs9SC5jbG9uZUNvbnRlbnRzKCksTj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtOLmFwcGVuZENoaWxkKEwpO2xldCBTPU4uaW5uZXJIVE1MO04uaW5uZXJIVE1MPSIiLE4uYXBwZW5kQ2hpbGQoayk7bGV0IFQ9Ti5pbm5lckhUTUw7cmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEZpbmFsIHNwbGl0IHJlc3VsdDoiLHtjdXJzb3JQb3M6XyxiZWZvcmVIdG1sOlMsYmVmb3JlTGVuZ3RoOlMubGVuZ3RoLGJlZm9yZUh0bWxQcmV2aWV3OlMuc3Vic3RyaW5nKDAsMTAwKSsoUy5sZW5ndGg+MTAwPyIuLi4iOiIiKSxhZnRlckh0bWw6VCxhZnRlckxlbmd0aDpULmxlbmd0aCxhZnRlckh0bWxQcmV2aWV3OlQuc3Vic3RyaW5nKDAsMTAwKSsoVC5sZW5ndGg+MTAwPyIuLi4iOiIiKX0pLHtiZWZvcmU6UyxhZnRlcjpUfX1zdGF0aWN7ZW8ocixhKX19O3JldHVybiB2PXJ9KSgpO2ZlKCk7QmUoKTt2YXIgZnM9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxWMj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sTU90PSgoKT0+e2xldCB0PVtjZSgiZGVlcy1pbnB1dC13eXNpd3lnIildLGUsYT1bXSxyLGk9WGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W107dmFyIEg9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBMPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6U3RyaW5nfSldLGY9W0Qoe3R5cGU6U3RyaW5nfSldLGQ9W2xlKCldLGI9W2xlKCldLHY9W2xlKCldLEU9W2xlKCldLFA9W2xlKCldLGZzKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ2YWx1ZSJpbiBrLGdldDprPT5rLnZhbHVlLHNldDooayxOKT0+e2sudmFsdWU9Tn19LG1ldGFkYXRhOkx9LHMsbCksZnModGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJvdXRwdXRGb3JtYXQiaW4gayxnZXQ6az0+ay5vdXRwdXRGb3JtYXQsc2V0OihrLE4pPT57ay5vdXRwdXRGb3JtYXQ9Tn19LG1ldGFkYXRhOkx9LGMsdSksZnModGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibG9ja3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJibG9ja3MiaW4gayxnZXQ6az0+ay5ibG9ja3Msc2V0OihrLE4pPT57ay5ibG9ja3M9Tn19LG1ldGFkYXRhOkx9LGgsZyksZnModGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnZ2VkQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImRyYWdnZWRCbG9ja0lkImluIGssZ2V0Oms9PmsuZHJhZ2dlZEJsb2NrSWQsc2V0OihrLE4pPT57ay5kcmFnZ2VkQmxvY2tJZD1OfX0sbWV0YWRhdGE6TH0seCxtKSxmcyh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImRyYWdPdmVyQmxvY2tJZCJpbiBrLGdldDprPT5rLmRyYWdPdmVyQmxvY2tJZCxzZXQ6KGssTik9PntrLmRyYWdPdmVyQmxvY2tJZD1OfX0sbWV0YWRhdGE6TH0seSx3KSxmcyh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJkcmFnT3ZlclBvc2l0aW9uImluIGssZ2V0Oms9PmsuZHJhZ092ZXJQb3NpdGlvbixzZXQ6KGssTik9PntrLmRyYWdPdmVyUG9zaXRpb249Tn19LG1ldGFkYXRhOkx9LEMseiksZnModGhpcyxudWxsLFAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzZWxlY3RlZFRleHQiaW4gayxnZXQ6az0+ay5zZWxlY3RlZFRleHQsc2V0OihrLE4pPT57ay5zZWxlY3RlZFRleHQ9Tn19LG1ldGFkYXRhOkx9LF8sJCksZnMobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6TH0sbnVsbCxhKSxIPXI9ZS52YWx1ZSxMJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KX1zdGF0aWMgZGVtbz15T3Q7c3RhdGljIGRlbW9Hcm91cD0iSW5wdXQiOyNlPVYyKHRoaXMscywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEwpe3RoaXMuI2U9TH0jdD0oVjIodGhpcyxsKSxWMih0aGlzLGMsImh0bWwiKSk7Z2V0IG91dHB1dEZvcm1hdCgpe3JldHVybiB0aGlzLiN0fXNldCBvdXRwdXRGb3JtYXQoTCl7dGhpcy4jdD1MfSNhPShWMih0aGlzLHUpLFYyKHRoaXMsaCxbe2lkOlAxLmdlbmVyYXRlQmxvY2tJZCgpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiIn1dKSk7Z2V0IGJsb2Nrcygpe3JldHVybiB0aGlzLiNhfXNldCBibG9ja3MoTCl7dGhpcy4jYT1MfXNlbGVjdGVkQmxvY2tJZD0oVjIodGhpcyxnKSxudWxsKTtzbGFzaE1lbnU9V0VlLmdldEluc3RhbmNlKCk7I3I9VjIodGhpcyx4LG51bGwpO2dldCBkcmFnZ2VkQmxvY2tJZCgpe3JldHVybiB0aGlzLiNyfXNldCBkcmFnZ2VkQmxvY2tJZChMKXt0aGlzLiNyPUx9I2k9KFYyKHRoaXMsbSksVjIodGhpcyx5LG51bGwpKTtnZXQgZHJhZ092ZXJCbG9ja0lkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGRyYWdPdmVyQmxvY2tJZChMKXt0aGlzLiNpPUx9I289KFYyKHRoaXMsdyksVjIodGhpcyxDLG51bGwpKTtnZXQgZHJhZ092ZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLiNvfXNldCBkcmFnT3ZlclBvc2l0aW9uKEwpe3RoaXMuI289TH1mb3JtYXR0aW5nTWVudT0oVjIodGhpcyx6KSxHRWUuZ2V0SW5zdGFuY2UoKSk7I3M9VjIodGhpcyxfLCIiKTtnZXQgc2VsZWN0ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkVGV4dChMKXt0aGlzLiNzPUx9ZWRpdG9yQ29udGVudFJlZj1WMih0aGlzLCQpO2lzQ29tcG9zaW5nPSExO2Jsb2NrT3BlcmF0aW9ucztpbnB1dEhhbmRsZXI7a2V5Ym9hcmRIYW5kbGVyO2RyYWdEcm9wSGFuZGxlcjtoaXN0b3J5O3N0YXRpYyBzdHlsZXM9W3hlLC4uLlhlLmJhc2VTdHlsZXMscC5kZWZhdWx0U3R5bGVzLHdPdF07Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuYmxvY2tPcGVyYXRpb25zPW5ldyB3aih0aGlzKSx0aGlzLmlucHV0SGFuZGxlcj1uZXcgemoodGhpcyksdGhpcy5rZXlib2FyZEhhbmRsZXI9bmV3IGtqKHRoaXMpLHRoaXMuZHJhZ0Ryb3BIYW5kbGVyPW5ldyBTaih0aGlzKSx0aGlzLmhpc3Rvcnk9bmV3IENqfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5pbnB1dEhhbmRsZXI/LmRlc3Ryb3koKSx0aGlzLmJsdXJUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuYmx1clRpbWVvdXQ9bnVsbCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy52YWx1ZSYmdGhpcy52YWx1ZS50cmltKCkubGVuZ3RoPjApe2xldCBMPXRoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP2ZyLnBhcnNlSHRtbFRvQmxvY2tzKHRoaXMudmFsdWUpOmZyLnBhcnNlTWFya2Rvd25Ub0Jsb2Nrcyh0aGlzLnZhbHVlKTtMLmxlbmd0aD4wJiYodGhpcy5ibG9ja3M9TCl9dGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuZWRpdG9yQ29udGVudFJlZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmVkaXRvckNvbnRlbnRSZWYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEw9PnRoaXMuaGFuZGxlRWRpdG9yQ2xpY2soTCkpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2stdGV4dC1zZWxlY3RlZCIsTD0+e2lmKCF0aGlzLnNsYXNoTWVudS52aXNpYmxlJiZMLmRldGFpbC5oYXNTZWxlY3Rpb24mJkwuZGV0YWlsLnRleHQubGVuZ3RoPjAmJih0aGlzLnNlbGVjdGVkVGV4dD1MLmRldGFpbC50ZXh0LEwuZGV0YWlsLnJlY3QpKXtsZXQgaz17eDpMLmRldGFpbC5yZWN0LmxlZnQrTC5kZXRhaWwucmVjdC53aWR0aC8yLHk6TWF0aC5tYXgoNDUsTC5kZXRhaWwucmVjdC50b3AtNDUpfTt0aGlzLmZvcm1hdHRpbmdNZW51LnNob3coayxhc3luYyBOPT5hd2FpdCB0aGlzLmFwcGx5Rm9ybWF0KE4pKX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLEw9PntsZXQgaz10aGlzLmZvcm1hdHRpbmdNZW51LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5mb3JtYXR0aW5nLW1lbnUiKTtpZihrJiZrLmNvbnRhaW5zKEwudGFyZ2V0KSlyZXR1cm47bGV0IE49d2luZG93LmdldFNlbGVjdGlvbigpO04mJk4udG9TdHJpbmcoKS50cmltKCkubGVuZ3RoPjB8fHRoaXMuZm9ybWF0dGluZ01lbnUudmlzaWJsZSYmdGhpcy5oaWRlRm9ybWF0dGluZ01lbnUoKX0pLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsTD0+e2xldCBrPUwudGFyZ2V0OyF0aGlzLmNvbnRhaW5zKGspJiYhdGhpcy5zaGFkb3dSb290Py5jb250YWlucyhrKXx8KChMLm1ldGFLZXl8fEwuY3RybEtleSkmJiFMLnNoaWZ0S2V5JiZMLmtleT09PSJ6Ij8oTC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudW5kbygpKTooTC5tZXRhS2V5fHxMLmN0cmxLZXkpJiZMLnNoaWZ0S2V5JiZMLmtleT09PSJ6IiYmKEwucHJldmVudERlZmF1bHQoKSx0aGlzLnJlZG8oKSkpfSksdGhpcy5oaXN0b3J5LnNhdmVTdGF0ZSh0aGlzLmJsb2Nrcyx0aGlzLnNlbGVjdGVkQmxvY2tJZCksdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCl9cmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpe3RoaXMuZWRpdG9yQ29udGVudFJlZiYmKHRoaXMuZWRpdG9yQ29udGVudFJlZi5pbm5lckhUTUw9IiIsdGhpcy5ibG9ja3MuZm9yRWFjaChMPT57bGV0IGs9dGhpcy5jcmVhdGVCbG9ja0VsZW1lbnQoTCk7dGhpcy5lZGl0b3JDb250ZW50UmVmLmFwcGVuZENoaWxkKGspfSkpfWNyZWF0ZUJsb2NrRWxlbWVudChMKXtsZXQgaz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihrLmNsYXNzTmFtZT0iYmxvY2std3JhcHBlciIsay5zZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiLEwuaWQpLEwudHlwZSE9PSJkaXZpZGVyIil7bGV0IFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Uy5jbGFzc05hbWU9ImRyYWctaGFuZGxlIixTLmRyYWdnYWJsZT0hMCxTLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsVD0+dGhpcy5kcmFnRHJvcEhhbmRsZXIuaGFuZGxlRHJhZ1N0YXJ0KFQsTCkpLGsuYXBwZW5kQ2hpbGQoUyl9bGV0IE49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy13eXNpd3lnLWJsb2NrIik7cmV0dXJuIE4uYmxvY2s9TCxOLmlzU2VsZWN0ZWQ9dGhpcy5zZWxlY3RlZEJsb2NrSWQ9PT1MLmlkLE4ud3lzaXd5Z0NvbXBvbmVudD10aGlzLE4uaGFuZGxlcnM9e29uSW5wdXQ6Uz0+dGhpcy5pbnB1dEhhbmRsZXIuaGFuZGxlQmxvY2tJbnB1dChTLEwpLG9uS2V5RG93bjpTPT50aGlzLmtleWJvYXJkSGFuZGxlci5oYW5kbGVCbG9ja0tleURvd24oUyxMKSxvbkZvY3VzOigpPT50aGlzLmhhbmRsZUJsb2NrRm9jdXMoTCksb25CbHVyOigpPT50aGlzLmhhbmRsZUJsb2NrQmx1cihMKSxvbkNvbXBvc2l0aW9uU3RhcnQ6KCk9PnRoaXMuaXNDb21wb3Npbmc9ITAsb25Db21wb3NpdGlvbkVuZDooKT0+dGhpcy5pc0NvbXBvc2luZz0hMSxvbk1vdXNlVXA6Uz0+dGhpcy5oYW5kbGVUZXh0U2VsZWN0aW9uKFMpLG9uUmVxdWVzdFVwZGF0ZTooKT0+dGhpcy51cGRhdGVCbG9ja0VsZW1lbnQoTC5pZCl9LGsuYXBwZW5kQ2hpbGQoTiksay5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsUz0+dGhpcy5kcmFnRHJvcEhhbmRsZXIuaGFuZGxlRHJhZ092ZXIoUyxMKSksay5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixTPT50aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcm9wKFMsTCkpLGsuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIiwoKT0+dGhpcy5kcmFnRHJvcEhhbmRsZXIuaGFuZGxlRHJhZ0xlYXZlKEwpKSxrfXVwZGF0ZUJsb2NrRWxlbWVudChMKXtsZXQgaz10aGlzLmJsb2Nrcy5maW5kKFQ9PlQuaWQ9PT1MKTtpZighaylyZXR1cm47bGV0IE49dGhpcy5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke0x9Il1gKTtpZighTilyZXR1cm47bGV0IFM9dGhpcy5jcmVhdGVCbG9ja0VsZW1lbnQoayk7Ti5yZXBsYWNlV2l0aChTKX1yZW5kZXIoKXtyZXR1cm4gSm9gCiAgICAgIDxkZWVzLWxhYmVsCiAgICAgICAgLmxhYmVsPSIke3RoaXMubGFiZWx9IgogICAgICAgIC5kZXNjcmlwdGlvbj0iJHt0aGlzLmRlc2NyaXB0aW9ufSIKICAgICAgICAucmVxdWlyZWQ9IiR7dGhpcy5yZXF1aXJlZH0iCiAgICAgID48L2RlZXMtbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9Ind5c2l3eWctY29udGFpbmVyIj4KICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9ImVkaXRvci1jb250ZW50ICR7dGhpcy5kcmFnZ2VkQmxvY2tJZD8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgIGlkPSJlZGl0b3ItY29udGVudCIKICAgICAgICA+CiAgICAgICAgICA8IS0tIEJsb2NrcyB3aWxsIGJlIHJlbmRlcmVkIHByb2dyYW1tYXRpY2FsbHkgLS0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVTbGFzaE1lbnVLZXlib2FyZChMKXtzd2l0Y2goTC5rZXkpe2Nhc2UiQXJyb3dEb3duIjpMLnByZXZlbnREZWZhdWx0KCksdGhpcy5zbGFzaE1lbnUubmF2aWdhdGUoImRvd24iKTticmVhaztjYXNlIkFycm93VXAiOkwucHJldmVudERlZmF1bHQoKSx0aGlzLnNsYXNoTWVudS5uYXZpZ2F0ZSgidXAiKTticmVhaztjYXNlIkVudGVyIjpMLnByZXZlbnREZWZhdWx0KCksdGhpcy5zbGFzaE1lbnUuc2VsZWN0Q3VycmVudCgpO2JyZWFrO2Nhc2UiRXNjYXBlIjpMLnByZXZlbnREZWZhdWx0KCksdGhpcy5jbG9zZVNsYXNoTWVudSghMCk7YnJlYWt9fWNsb3NlU2xhc2hNZW51KEw9ITEpe2lmKEwmJnRoaXMuc2VsZWN0ZWRCbG9ja0lkKXtsZXQgaz10aGlzLmJsb2Nrcy5maW5kKE49Pk4uaWQ9PT10aGlzLnNlbGVjdGVkQmxvY2tJZCk7aWYoayl7bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2suaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoUyl7bGV0IFQ9Uy5nZXRDb250ZW50KCk7aWYoVC5zdGFydHNXaXRoKCIvIikpe2xldCBSPVQucmVwbGFjZSgvXlwvW15cc10qXHMqLywiIikudHJpbSgpO1Muc2V0Q29udGVudChSKSxrLmNvbnRlbnQ9UixyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntTLmZvY3VzV2l0aEN1cnNvcigwKX0pfX19fXRoaXMuc2xhc2hNZW51LmhpZGUoKX1oYW5kbGVCbG9ja0ZvY3VzKEwpe3RoaXMuYmx1clRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5ibHVyVGltZW91dCksdGhpcy5ibHVyVGltZW91dD1udWxsKTtsZXQgaz10aGlzLnNlbGVjdGVkQmxvY2tJZDtpZih0aGlzLnNlbGVjdGVkQmxvY2tJZD1MLmlkLGshPT1MLmlkKXtpZihrKXtsZXQgUj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2t9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7UiYmKFIuaXNTZWxlY3RlZD0hMSl9bGV0IFM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtMLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO1MmJihTLmlzU2VsZWN0ZWQ9ITApfX1ibHVyVGltZW91dD1udWxsO2hhbmRsZUJsb2NrQmx1cihMKXtpZih0aGlzLmJsdXJUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5ibHVyVGltZW91dCksdGhpcy5zbGFzaE1lbnUudmlzaWJsZSlyZXR1cm47bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtMLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKE4mJk4uZ2V0Q29udGVudCl7bGV0IFM9Ti5nZXRDb250ZW50KCk7TC5jb250ZW50IT09UyYmKEwuY29udGVudD1TKX10aGlzLmJsdXJUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdC5jb250YWlucygiYmxvY2siKXx8dGhpcy51cGRhdGVWYWx1ZSgpfSwxMDApfWhhbmRsZUVkaXRvckNsaWNrKEwpe2xldCBrPUwudGFyZ2V0O2lmKHRoaXMuc2xhc2hNZW51LnZpc2libGUmJnRoaXMuY2xvc2VTbGFzaE1lbnUoITApLGsuY2xhc3NMaXN0LmNvbnRhaW5zKCJlZGl0b3ItY29udGVudCIpKXtsZXQgTj10aGlzLmJsb2Nrc1t0aGlzLmJsb2Nrcy5sZW5ndGgtMV07dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhOLmlkLE4udHlwZT09PSJkaXZpZGVyInx8Ti50eXBlPT09ImltYWdlIj92b2lkIDA6ImVuZCIpfX1jcmVhdGVOZXdCbG9jayhMPSJwYXJhZ3JhcGgiLGs9IiIsTil7cmV0dXJue2lkOlAxLmdlbmVyYXRlQmxvY2tJZCgpLHR5cGU6TCxjb250ZW50OmssLi4uTiYme21ldGFkYXRhOk59fX1hc3luYyBpbnNlcnRCbG9ja0FmdGVyKEwsayxOPSEwKXtsZXQgUz10aGlzLmJsb2Nrcy5maW5kSW5kZXgoUj0+Ui5pZD09PUwuaWQpO3RoaXMuYmxvY2tzPVsuLi50aGlzLmJsb2Nrcy5zbGljZSgwLFMrMSksaywuLi50aGlzLmJsb2Nrcy5zbGljZShTKzEpXTtsZXQgVD10aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7TC5pZH0iXWApO2lmKFQpe2xldCBSPXRoaXMuY3JlYXRlQmxvY2tFbGVtZW50KGspO1QuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJhZnRlcmVuZCIsUil9dGhpcy51cGRhdGVWYWx1ZSgpLE4mJmsudHlwZSE9PSJkaXZpZGVyIiYmKGF3YWl0IG5ldyBQcm9taXNlKFI9PnNldFRpbWVvdXQoUiwwKSksYXdhaXQgdGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhrLmlkLCJzdGFydCIpKX1hc3luYyBpbnNlcnRCbG9jayhMKXtsZXQgaz10aGlzLmJsb2Nrcy5maW5kKFQ9PlQuaWQ9PT10aGlzLnNlbGVjdGVkQmxvY2tJZCk7aWYoIWspe3RoaXMuY2xvc2VTbGFzaE1lbnUoKTtyZXR1cm59bGV0IFM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2suaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoUyl7bGV0IFQ9Uy5nZXRDb250ZW50KCk7aWYoVC5zdGFydHNXaXRoKCIvIikpe2xldCBSPVQucmVwbGFjZSgvXlwvW15cc10qXHMqLywiIikudHJpbSgpO1Muc2V0Q29udGVudChSKSxrLmNvbnRlbnQ9Un19aWYodGhpcy5jbG9zZVNsYXNoTWVudSghMSksTD09PSJjb2RlIiYmKGsubWV0YWRhdGE9e2xhbmd1YWdlOiJ0eXBlc2NyaXB0In0pLGsudHlwZT1MLGsuY29udGVudD1rLmNvbnRlbnR8fCIiLEw9PT0iZGl2aWRlciIpe2suY29udGVudD0iICI7bGV0IFQ9dGhpcy5jcmVhdGVOZXdCbG9jaygpO3RoaXMuaW5zZXJ0QmxvY2tBZnRlcihrLFQpfWVsc2UgTD09PSJsaXN0Ij8oay5tZXRhZGF0YT17bGlzdFR5cGU6ImJ1bGxldCJ9LGsuY29udGVudD0iIik6TD09PSJpbWFnZSI/KGsuY29udGVudD0iIixrLm1ldGFkYXRhPXt1cmw6IiIsbG9hZGluZzohMX0pOkw9PT0ieW91dHViZSI/KGsuY29udGVudD0iIixrLm1ldGFkYXRhPXt2aWRlb0lkOiIiLHVybDoiIn0pOkw9PT0ibWFya2Rvd24iP2subWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTpMPT09Imh0bWwiP2subWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTpMPT09ImF0dGFjaG1lbnQiPyhrLmNvbnRlbnQ9IiIsay5tZXRhZGF0YT17ZmlsZXM6W119KTprLmNvbnRlbnQ9ay5jb250ZW50fHwiIjt0aGlzLnVwZGF0ZUJsb2NrRWxlbWVudChrLmlkKSx0aGlzLnVwZGF0ZVZhbHVlKCksYXdhaXQgbmV3IFByb21pc2UoVD0+c2V0VGltZW91dChULDApKSxMPT09Imxpc3QiPyh0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKGsuaWQsInN0YXJ0IikscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57bGV0IFI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtrLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO1ImJlIuZm9jdXNMaXN0SXRlbSgpfSkpOkwhPT0iZGl2aWRlciImJkwhPT0iaW1hZ2UiJiZMIT09InlvdXR1YmUiJiZMIT09Im1hcmtkb3duIiYmTCE9PSJodG1sIiYmTCE9PSJhdHRhY2htZW50Ij90aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKGsuaWQsInN0YXJ0Iik6KEw9PT0iaW1hZ2UifHxMPT09InlvdXR1YmUifHxMPT09Im1hcmtkb3duInx8TD09PSJodG1sInx8TD09PSJhdHRhY2htZW50IikmJnRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soay5pZCl9dXBkYXRlVmFsdWUoKXt0aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj90aGlzLnZhbHVlPWZyLmdldEh0bWxPdXRwdXQodGhpcy5ibG9ja3MpOnRoaXMudmFsdWU9ZnIuZ2V0TWFya2Rvd25PdXRwdXQodGhpcy5ibG9ja3MpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMudmFsdWUpLHRoaXMuc2F2ZVRvSGlzdG9yeSghMCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShMKXt0aGlzLnZhbHVlPUwsdGhpcy5vdXRwdXRGb3JtYXQ9PT0iaHRtbCI/dGhpcy5ibG9ja3M9ZnIucGFyc2VIdG1sVG9CbG9ja3MoTCk6dGhpcy5ibG9ja3M9ZnIucGFyc2VNYXJrZG93blRvQmxvY2tzKEwpLHRoaXMuYmxvY2tzLmxlbmd0aD09PTAmJih0aGlzLmJsb2Nrcz1be2lkOlAxLmdlbmVyYXRlQmxvY2tJZCgpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiIn1dKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzLnZhbHVlKSx0aGlzLmVkaXRvckNvbnRlbnRSZWYmJnRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpfWV4cG9ydEJsb2Nrcygpe3JldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuYmxvY2tzKSl9aW1wb3J0QmxvY2tzKEwpe3RoaXMuYmxvY2tzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoTCkpLHRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLmVkaXRvckNvbnRlbnRSZWYmJnRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpfWV4cG9ydEFzSHRtbCgpe3JldHVybiBmci5nZXRIdG1sT3V0cHV0KHRoaXMuYmxvY2tzKX1leHBvcnRBc01hcmtkb3duKCl7cmV0dXJuIGZyLmdldE1hcmtkb3duT3V0cHV0KHRoaXMuYmxvY2tzKX1leHBvcnRTdGF0ZSgpe3JldHVybntibG9ja3M6dGhpcy5leHBvcnRCbG9ja3MoKSxvdXRwdXRGb3JtYXQ6dGhpcy5vdXRwdXRGb3JtYXR9fWltcG9ydFN0YXRlKEwpe0wub3V0cHV0Rm9ybWF0JiYodGhpcy5vdXRwdXRGb3JtYXQ9TC5vdXRwdXRGb3JtYXQpLHRoaXMuaW1wb3J0QmxvY2tzKEwuYmxvY2tzKX1oYW5kbGVEcmFnRW5kKCl7aWYodGhpcy5kcmFnZ2VkQmxvY2tJZCl7bGV0IGs9dGhpcy5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3RoaXMuZHJhZ2dlZEJsb2NrSWR9Il1gKTtrJiZrLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIil9dGhpcy5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikuZm9yRWFjaChrPT57ay5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXItYmVmb3JlIiwiZHJhZy1vdmVyLWFmdGVyIil9KSx0aGlzLmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSx0aGlzLmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlckJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyUG9zaXRpb249bnVsbH1oYW5kbGVEcm9wKEwsayl7aWYoTC5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLmRyYWdnZWRCbG9ja0lkfHx0aGlzLmRyYWdnZWRCbG9ja0lkPT09ay5pZClyZXR1cm47bGV0IE49dGhpcy5ibG9ja3MuZmluZEluZGV4KEE9PkEuaWQ9PT10aGlzLmRyYWdnZWRCbG9ja0lkKSxTPXRoaXMuYmxvY2tzLmZpbmRJbmRleChBPT5BLmlkPT09ay5pZCk7aWYoTj09PS0xfHxTPT09LTEpcmV0dXJuO2xldFtUXT10aGlzLmJsb2Nrcy5zcGxpY2UoTiwxKSxSPVM7dGhpcy5kcmFnT3ZlclBvc2l0aW9uPT09ImFmdGVyIj9SPU48Uz9TOlMrMTpSPU48Uz9TLTE6Uyx0aGlzLmJsb2Nrcy5zcGxpY2UoUiwwLFQpLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLHRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLmhhbmRsZURyYWdFbmQoKSxzZXRUaW1lb3V0KCgpPT57bGV0IEE9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke1QuaWR9Il0gLmJsb2NrYCk7QSYmVC50eXBlIT09ImRpdmlkZXIiJiZBLmZvY3VzKCl9LDEwMCl9aGFuZGxlVGV4dFNlbGVjdGlvbihMKXt0aGlzLnNsYXNoTWVudS52aXNpYmxlfXVwZGF0ZUZvcm1hdHRpbmdNZW51UG9zaXRpb24oKXtsZXQgTD1bXTt0aGlzLnNoYWRvd1Jvb3QmJkwucHVzaCh0aGlzLnNoYWRvd1Jvb3QpLHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKT8uZm9yRWFjaChTPT57bGV0IFQ9Uy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtUPy5zaGFkb3dSb290JiZMLnB1c2goVC5zaGFkb3dSb290KX0pO2xldCBOPWRzLmdldFNlbGVjdGlvbkNvb3JkaW5hdGVzKC4uLkwpO04mJnRoaXMuZm9ybWF0dGluZ01lbnUuc2hvdyh7eDpOLngseTpOLnl9LGFzeW5jIFM9PmF3YWl0IHRoaXMuYXBwbHlGb3JtYXQoUykpfWhpZGVGb3JtYXR0aW5nTWVudSgpe3RoaXMuZm9ybWF0dGluZ01lbnUuaGlkZSgpLHRoaXMuc2VsZWN0ZWRUZXh0PSIifWFzeW5jIGFwcGx5Rm9ybWF0KEwpe2xldCBrPVtdO3RoaXMuc2hhZG93Um9vdCYmay5wdXNoKHRoaXMuc2hhZG93Um9vdCksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpPy5mb3JFYWNoKGFlPT57bGV0IFY9YWUucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7Vj8uc2hhZG93Um9vdCYmay5wdXNoKFYuc2hhZG93Um9vdCl9KTtsZXQgUz1JZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmspO2lmKCFTKXJldHVybjtsZXQgVCxSLEE9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik7Zm9yKGxldCBhZT0wO2FlPEEubGVuZ3RoO2FlKyspe2xldCBWPUFbYWVdLFNlPVYucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoU2U/LnNoYWRvd1Jvb3Qpe2xldCB6ZT1TZS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKHplJiYoemUuY29udGFpbnMoUy5zdGFydENvbnRhaW5lcil8fHplLmNvbnRhaW5zKFMuZW5kQ29udGFpbmVyKSkpe2xldCBXPVYuZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7VD10aGlzLmJsb2Nrcy5maW5kKE5lPT5OZS5pZD09PVcpLFI9U2U7YnJlYWt9fX1pZighVHx8IVIpcmV0dXJuO2xldCBGPUllLmNyZWF0ZVJhbmdlRnJvbUluZm8oUyk7aWYoTD09PSJsaW5rIil7bGV0IGFlPWF3YWl0IHRoaXMuc2hvd0xpbmtEaWFsb2coKTtpZighYWUpe1IuZm9jdXMoKTtyZXR1cm59ZHMuYXBwbHlGb3JtYXQoTCxhZSxGLGspfWVsc2UgZHMuYXBwbHlGb3JtYXQoTCx2b2lkIDAsRixrKTthd2FpdCBuZXcgUHJvbWlzZShhZT0+c2V0VGltZW91dChhZSwxMCkpLFQuY29udGVudD1SLmdldENvbnRlbnQoKSx0aGlzLnVwZGF0ZVZhbHVlKCksUi5mb2N1cygpLEw9PT0ibGluayI/dGhpcy5oaWRlRm9ybWF0dGluZ01lbnUoKTp0aGlzLnNlbGVjdGVkVGV4dD0iIn1hc3luYyBzaG93TGlua0RpYWxvZygpe3JldHVybiBuZXcgUHJvbWlzZShMPT57bGV0IGs9bnVsbDtlMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJBZGQgTGluayIsY29udGVudDpKb2AKICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgLmxpbmstaW5wdXQgewogICAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRlZXMtY29sb3ItbGluZS1icmlnaHQpOwogICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kZWVzLWNvbG9yLWlucHV0KTsKICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0KTsKICAgICAgICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGluay1pbnB1dDpmb2N1cyB7CiAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWRlZXMtY29sb3ItcHJpbWFyeSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICA8aW5wdXQgCiAgICAgICAgICAgIGNsYXNzPSJsaW5rLWlucHV0IiAKICAgICAgICAgICAgdHlwZT0idXJsIiAKICAgICAgICAgICAgcGxhY2Vob2xkZXI9Imh0dHBzOi8vZXhhbXBsZS5jb20iIAogICAgICAgICAgICBAa2V5ZG93bj0iJHtOPT57aWYoTi5rZXk9PT0iRW50ZXIiKXtsZXQgUz1OLnRhcmdldDtrPVMudmFsdWU7bGV0IFQ9Uy5jbG9zZXN0KCJkZWVzLW1vZGFsIik7aWYoVCl7bGV0IFI9VC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYm90dG9tQnV0dG9uOmxhc3QtY2hpbGQiKTtSJiZSLmNsaWNrKCl9fX19IgogICAgICAgICAgICBAaW5wdXQ9IiR7Tj0+e2s9Ti50YXJnZXQudmFsdWV9fSIKICAgICAgICAgIC8+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIE49PntOLmRlc3Ryb3koKSxMKG51bGwpfX0se25hbWU6IkFkZCBMaW5rIixhY3Rpb246YXN5bmMgTj0+e04uZGVzdHJveSgpLEwoayl9fV19KSxzZXRUaW1lb3V0KCgpPT57bGV0IE49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCAubGluay1pbnB1dCIpO04mJk4uZm9jdXMoKX0sMTAwKX0pfXVuZG8oKXtsZXQgTD10aGlzLmhpc3RvcnkudW5kbygpO0wmJnRoaXMucmVzdG9yZVN0YXRlKEwpfXJlZG8oKXtsZXQgTD10aGlzLmhpc3RvcnkucmVkbygpO0wmJnRoaXMucmVzdG9yZVN0YXRlKEwpfXJlc3RvcmVTdGF0ZShMKXt0aGlzLmJsb2Nrcz1MLmJsb2Nrcyx0aGlzLnNlbGVjdGVkQmxvY2tJZD1MLnNlbGVjdGVkQmxvY2tJZCx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKSxMLmN1cnNvclBvc2l0aW9uP3NldFRpbWVvdXQoKCk9PntsZXQgTj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke0wuY3Vyc29yUG9zaXRpb24uYmxvY2tJZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtOJiZOLmZvY3VzV2l0aEN1cnNvcihMLmN1cnNvclBvc2l0aW9uLm9mZnNldCl9LDUwKTpMLnNlbGVjdGVkQmxvY2tJZCYmc2V0VGltZW91dCgoKT0+e3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soTC5zZWxlY3RlZEJsb2NrSWQpfSw1MCksdGhpcy51cGRhdGVWYWx1ZSgpfXNhdmVUb0hpc3RvcnkoTD0hMCl7bGV0IGs7aWYodGhpcy5zZWxlY3RlZEJsb2NrSWQpe2xldCBTPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dGhpcy5zZWxlY3RlZEJsb2NrSWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoUyYmdHlwZW9mIFMuZ2V0Q3Vyc29yUG9zaXRpb249PSJmdW5jdGlvbiIpe2xldCBUPVMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoVCl7bGV0IFI9Uy5nZXRDdXJzb3JQb3NpdGlvbihUKTtSIT09bnVsbCYmKGs9e2Jsb2NrSWQ6dGhpcy5zZWxlY3RlZEJsb2NrSWQsb2Zmc2V0OlJ9KX19fUw/dGhpcy5oaXN0b3J5LnNhdmVTdGF0ZSh0aGlzLmJsb2Nrcyx0aGlzLnNlbGVjdGVkQmxvY2tJZCxrKTp0aGlzLmhpc3Rvcnkuc2F2ZUNoZWNrcG9pbnQodGhpcy5ibG9ja3MsdGhpcy5zZWxlY3RlZEJsb2NrSWQsayl9c3RhdGlje1YyKHIsYSl9fTtyZXR1cm4gSD1yfSkoKTt2YXIgTGo9Y2xhc3N7b3B0aW9ucztjYW52YXM7Y3R4O2ltZztvdmVybGF5Q2FudmFzO292ZXJsYXlDdHg7Y3JvcFg9MDtjcm9wWT0wO2Nyb3BTaXplPTIwMDttaW5Dcm9wU2l6ZT01MDtpc0RyYWdnaW5nPSExO2lzUmVzaXppbmc9ITE7ZHJhZ1N0YXJ0WD0wO2RyYWdTdGFydFk9MDtyZXNpemVIYW5kbGU9IiI7aW1hZ2VTY2FsZT0xO2ltYWdlT2Zmc2V0WD0wO2ltYWdlT2Zmc2V0WT0wO2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz17bWluU2l6ZTo1MCxvdXRwdXRTaXplOjgwMCxvdXRwdXRRdWFsaXR5Oi45NSwuLi5lfSx0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLmN0eD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLHRoaXMub3ZlcmxheUNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLm92ZXJsYXlDdHg9dGhpcy5vdmVybGF5Q2FudmFzLmdldENvbnRleHQoIjJkIiksdGhpcy5pbWc9bmV3IEltYWdlfWFzeW5jIGluaXRpYWxpemUoKXthd2FpdCB0aGlzLmxvYWRJbWFnZSgpLHRoaXMuc2V0dXBDYW52YXNlcygpLHRoaXMuc2V0dXBFdmVudExpc3RlbmVycygpLHRoaXMucmVuZGVyKCl9YXN5bmMgbG9hZEltYWdlKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlLGEpPT57dGhpcy5pbWcub25sb2FkPSgpPT5lKCksdGhpcy5pbWcub25lcnJvcj1hLHRoaXMuaW1nLnNyYz10aGlzLm9wdGlvbnMuaW1hZ2V9KX1zZXR1cENhbnZhc2VzKCl7bGV0IGU9dGhpcy5vcHRpb25zLmNvbnRhaW5lcixhPU1hdGgubWluKGUuY2xpZW50V2lkdGgsZS5jbGllbnRIZWlnaHQpO3RoaXMuY2FudmFzLndpZHRoPWEsdGhpcy5jYW52YXMuaGVpZ2h0PWEsdGhpcy5jYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodD0iMTAwJSIsdGhpcy5jYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMuY2FudmFzLnN0eWxlLmxlZnQ9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aD1hLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQ9YSx0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS50b3A9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5sZWZ0PSIwIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPSJtb3ZlIixlLmFwcGVuZENoaWxkKHRoaXMuY2FudmFzKSxlLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUNhbnZhcyk7bGV0IHI9TWF0aC5taW4oYS90aGlzLmltZy53aWR0aCxhL3RoaXMuaW1nLmhlaWdodCk7dGhpcy5pbWFnZVNjYWxlPXIsdGhpcy5pbWFnZU9mZnNldFg9KGEtdGhpcy5pbWcud2lkdGgqcikvMix0aGlzLmltYWdlT2Zmc2V0WT0oYS10aGlzLmltZy5oZWlnaHQqcikvMjtsZXQgaT10aGlzLmltZy53aWR0aCpyLG89dGhpcy5pbWcuaGVpZ2h0KnIscz1NYXRoLm1pbihpLG8sYSouOCk7dGhpcy5jcm9wU2l6ZT1zKi44LHRoaXMuY3JvcFg9KGEtdGhpcy5jcm9wU2l6ZSkvMix0aGlzLmNyb3BZPShhLXRoaXMuY3JvcFNpemUpLzJ9c2V0dXBFdmVudExpc3RlbmVycygpe3RoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuaGFuZGxlTW91c2VEb3duLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlTW91c2VNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZU1vdXNlVXAuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuaGFuZGxlTW91c2VVcC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5oYW5kbGVUb3VjaFN0YXJ0LmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuaGFuZGxlVG91Y2hNb3ZlLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5oYW5kbGVUb3VjaEVuZC5iaW5kKHRoaXMpKX1oYW5kbGVNb3VzZURvd24oZSl7bGV0IGE9dGhpcy5vdmVybGF5Q2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9KGUuY2xpZW50WC1hLmxlZnQpKih0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgvYS53aWR0aCksaT0oZS5jbGllbnRZLWEudG9wKSoodGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodC9hLmhlaWdodCksbz10aGlzLmdldFJlc2l6ZUhhbmRsZShyLGkpO28/KHRoaXMuaXNSZXNpemluZz0hMCx0aGlzLnJlc2l6ZUhhbmRsZT1vKTp0aGlzLmlzSW5zaWRlQ3JvcEFyZWEocixpKSYmKHRoaXMuaXNEcmFnZ2luZz0hMCksdGhpcy5kcmFnU3RhcnRYPXIsdGhpcy5kcmFnU3RhcnRZPWl9aGFuZGxlTW91c2VNb3ZlKGUpe2xldCBhPXRoaXMub3ZlcmxheUNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPShlLmNsaWVudFgtYS5sZWZ0KSoodGhpcy5vdmVybGF5Q2FudmFzLndpZHRoL2Eud2lkdGgpLGk9KGUuY2xpZW50WS1hLnRvcCkqKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQvYS5oZWlnaHQpLG89dGhpcy5nZXRSZXNpemVIYW5kbGUocixpKTtpZihvP3RoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9dGhpcy5nZXRSZXNpemVDdXJzb3Iobyk6dGhpcy5pc0luc2lkZUNyb3BBcmVhKHIsaSk/dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0ibW92ZSI6dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0iZGVmYXVsdCIsdGhpcy5pc0RyYWdnaW5nKXtsZXQgcz1yLXRoaXMuZHJhZ1N0YXJ0WCxsPWktdGhpcy5kcmFnU3RhcnRZLGY9dGhpcy5pbWFnZU9mZnNldFgsYz10aGlzLmltYWdlT2Zmc2V0WCt0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUtdGhpcy5jcm9wU2l6ZSx1PXRoaXMuaW1hZ2VPZmZzZXRZLGQ9dGhpcy5pbWFnZU9mZnNldFkrdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZS10aGlzLmNyb3BTaXplO3RoaXMuY3JvcFg9TWF0aC5tYXgoZixNYXRoLm1pbihjLHRoaXMuY3JvcFgrcykpLHRoaXMuY3JvcFk9TWF0aC5tYXgodSxNYXRoLm1pbihkLHRoaXMuY3JvcFkrbCkpLHRoaXMuZHJhZ1N0YXJ0WD1yLHRoaXMuZHJhZ1N0YXJ0WT1pLHRoaXMucmVuZGVyKCl9dGhpcy5pc1Jlc2l6aW5nJiYodGhpcy5oYW5kbGVSZXNpemUocixpKSx0aGlzLmRyYWdTdGFydFg9cix0aGlzLmRyYWdTdGFydFk9aSx0aGlzLnJlbmRlcigpKX1oYW5kbGVNb3VzZVVwKCl7dGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuaXNSZXNpemluZz0hMSx0aGlzLnJlc2l6ZUhhbmRsZT0iIn1oYW5kbGVUb3VjaFN0YXJ0KGUpe2UucHJldmVudERlZmF1bHQoKTtsZXQgYT1lLnRvdWNoZXNbMF0scj1uZXcgTW91c2VFdmVudCgibW91c2Vkb3duIix7Y2xpZW50WDphLmNsaWVudFgsY2xpZW50WTphLmNsaWVudFl9KTt0aGlzLmhhbmRsZU1vdXNlRG93bihyKX1oYW5kbGVUb3VjaE1vdmUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBhPWUudG91Y2hlc1swXSxyPW5ldyBNb3VzZUV2ZW50KCJtb3VzZW1vdmUiLHtjbGllbnRYOmEuY2xpZW50WCxjbGllbnRZOmEuY2xpZW50WX0pO3RoaXMuaGFuZGxlTW91c2VNb3ZlKHIpfWhhbmRsZVRvdWNoRW5kKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1vdXNlVXAoKX1nZXRSZXNpemVIYW5kbGUoZSxhKXtsZXQgaT17bnc6e3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFl9LG5lOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFl9LHN3Ont4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9LHNlOnt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX19O2ZvcihsZXRbbyxzXW9mIE9iamVjdC5lbnRyaWVzKGkpKWlmKE1hdGguYWJzKGUtcy54KTwyMCYmTWF0aC5hYnMoYS1zLnkpPDIwKXJldHVybiBvO3JldHVybiIifWdldFJlc2l6ZUN1cnNvcihlKXtyZXR1cm57bnc6Im53LXJlc2l6ZSIsbmU6Im5lLXJlc2l6ZSIsc3c6InN3LXJlc2l6ZSIsc2U6InNlLXJlc2l6ZSJ9W2VdfHwiZGVmYXVsdCJ9aXNJbnNpZGVDcm9wQXJlYShlLGEpe3JldHVybiBlPj10aGlzLmNyb3BYJiZlPD10aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUmJmE+PXRoaXMuY3JvcFkmJmE8PXRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX1oYW5kbGVSZXNpemUoZSxhKXtsZXQgcj1lLXRoaXMuZHJhZ1N0YXJ0WCxpPWEtdGhpcy5kcmFnU3RhcnRZLG89dGhpcy5pbWFnZU9mZnNldFgscz10aGlzLmltYWdlT2Zmc2V0WSxsPXRoaXMuaW1hZ2VPZmZzZXRYK3RoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSxmPXRoaXMuaW1hZ2VPZmZzZXRZK3RoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGU7c3dpdGNoKHRoaXMucmVzaXplSGFuZGxlKXtjYXNlInNlIjp0aGlzLmNyb3BTaXplPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsTWF0aC5taW4odGhpcy5jcm9wU2l6ZStNYXRoLm1heChyLGkpLE1hdGgubWluKGwtdGhpcy5jcm9wWCxmLXRoaXMuY3JvcFkpKSk7YnJlYWs7Y2FzZSJudyI6bGV0IGM9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplLU1hdGgubWF4KHIsaSkpLHU9dGhpcy5jcm9wU2l6ZS1jLGQ9dGhpcy5jcm9wWCt1LGg9dGhpcy5jcm9wWSt1O2Q+PW8mJmg+PXMmJih0aGlzLmNyb3BYPWQsdGhpcy5jcm9wWT1oLHRoaXMuY3JvcFNpemU9Yyk7YnJlYWs7Y2FzZSJuZSI6bGV0IGc9TWF0aC5tYXgociwtaSksYj1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUrZykseD1iLXRoaXMuY3JvcFNpemUsbT10aGlzLmNyb3BZLXg7bT49cyYmdGhpcy5jcm9wWCtiPD1sJiYodGhpcy5jcm9wWT1tLHRoaXMuY3JvcFNpemU9Yik7YnJlYWs7Y2FzZSJzdyI6bGV0IHY9TWF0aC5tYXgoLXIsaSkseT1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUrdiksdz15LXRoaXMuY3JvcFNpemUsRT10aGlzLmNyb3BYLXc7RT49byYmdGhpcy5jcm9wWSt5PD1mJiYodGhpcy5jcm9wWD1FLHRoaXMuY3JvcFNpemU9eSk7YnJlYWt9fXJlbmRlcigpe3RoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5jdHguZmlsbFN0eWxlPSIjMDAwMDAwIix0aGlzLmN0eC5maWxsUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5pbWcsdGhpcy5pbWFnZU9mZnNldFgsdGhpcy5pbWFnZU9mZnNldFksdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLHRoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUpLHRoaXMub3ZlcmxheUN0eC5maWxsU3R5bGU9InJnYmEoMCwgMCwgMCwgMC41KSIsdGhpcy5vdmVybGF5Q3R4LmZpbGxSZWN0KHRoaXMuaW1hZ2VPZmZzZXRYLHRoaXMuaW1hZ2VPZmZzZXRZLHRoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSx0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlKSx0aGlzLm92ZXJsYXlDdHguc2F2ZSgpLHRoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCI/KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKHRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFNpemUvMiwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LmNsaXAoKSk6KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHgucmVjdCh0aGlzLmNyb3BYLHRoaXMuY3JvcFksdGhpcy5jcm9wU2l6ZSx0aGlzLmNyb3BTaXplKSx0aGlzLm92ZXJsYXlDdHguY2xpcCgpKSx0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsMCx0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCksdGhpcy5vdmVybGF5Q3R4LnJlc3RvcmUoKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlU3R5bGU9IndoaXRlIix0aGlzLm92ZXJsYXlDdHgubGluZVdpZHRoPTIsdGhpcy5vcHRpb25zLnNoYXBlPT09InJvdW5kIj8odGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmModGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wU2l6ZS8yLDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguc3Ryb2tlKCkpOnRoaXMub3ZlcmxheUN0eC5zdHJva2VSZWN0KHRoaXMuY3JvcFgsdGhpcy5jcm9wWSx0aGlzLmNyb3BTaXplLHRoaXMuY3JvcFNpemUpLHRoaXMuZHJhd1Jlc2l6ZUhhbmRsZXMoKX1kcmF3UmVzaXplSGFuZGxlcygpe2xldCBhPVt7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWX0se3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX0se3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfV07dGhpcy5vdmVybGF5Q3R4LmZpbGxTdHlsZT0id2hpdGUiLGEuZm9yRWFjaChyPT57dGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmMoci54LHIueSw4LDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguZmlsbCgpfSl9YXN5bmMgZ2V0Q3JvcHBlZEltYWdlKCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksYT1lLmdldENvbnRleHQoIjJkIikscj0xL3RoaXMuaW1hZ2VTY2FsZSxpPXRoaXMuY3JvcFNpemUqcixvPXRoaXMub3B0aW9ucy5vdXRwdXRTaXplO28+aSYmY29uc29sZS5pbmZvKGBQcm9maWxlIHBpY3R1cmU6IFVwc2NhbGluZyBmcm9tICR7TWF0aC5yb3VuZChpKX1weCB0byAke299cHhgKSxlLndpZHRoPW8sZS5oZWlnaHQ9bztsZXQgcz0odGhpcy5jcm9wWC10aGlzLmltYWdlT2Zmc2V0WCkqcixsPSh0aGlzLmNyb3BZLXRoaXMuaW1hZ2VPZmZzZXRZKSpyLGY9dGhpcy5jcm9wU2l6ZSpyO3RoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCImJihhLmJlZ2luUGF0aCgpLGEuYXJjKG8vMixvLzIsby8yLDAsTWF0aC5QSSoyKSxhLmNsaXAoKSksYS5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsYS5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLGEuZHJhd0ltYWdlKHRoaXMuaW1nLHMsbCxmLGYsMCwwLG8sbyk7bGV0IHU9dGhpcy5vcHRpb25zLmltYWdlLmluY2x1ZGVzKCJpbWFnZS9wbmciKT8iaW1hZ2UvcG5nIjoiaW1hZ2UvanBlZyI7cmV0dXJuIGUudG9EYXRhVVJMKHUsdGhpcy5vcHRpb25zLm91dHB1dFF1YWxpdHkpfWRlc3Ryb3koKXt0aGlzLmNhbnZhcy5yZW1vdmUoKSx0aGlzLm92ZXJsYXlDYW52YXMucmVtb3ZlKCl9fTtmZSgpO0Z0KCk7QmUoKTt2YXIgdXM9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxVMj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sWUVlPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1wcm9maWxlcGljdHVyZS1tb2RhbCIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdLEUsQz1bXSx6PVtdLFAsXz1bXSwkPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOlN0cmluZ30pXSxmPVtEKHt0eXBlOlN0cmluZ30pXSxkPVtEKHt0eXBlOk51bWJlcn0pXSxiPVtEKHt0eXBlOk51bWJlcn0pXSx2PVtsZSgpXSxFPVtsZSgpXSxQPVtsZSgpXSx1cyh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImluaXRpYWxJbWFnZSJpbiBrLGdldDprPT5rLmluaXRpYWxJbWFnZSxzZXQ6KGssTik9PntrLmluaXRpYWxJbWFnZT1OfX0sbWV0YWRhdGE6TH0scyxsKSx1cyh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNoYXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2hhcGUiaW4gayxnZXQ6az0+ay5zaGFwZSxzZXQ6KGssTik9PntrLnNoYXBlPU59fSxtZXRhZGF0YTpMfSxjLHUpLHVzKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+Im91dHB1dFNpemUiaW4gayxnZXQ6az0+ay5vdXRwdXRTaXplLHNldDooayxOKT0+e2sub3V0cHV0U2l6ZT1OfX0sbWV0YWRhdGE6TH0saCxnKSx1cyh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJvdXRwdXRRdWFsaXR5ImluIGssZ2V0Oms9Pmsub3V0cHV0UXVhbGl0eSxzZXQ6KGssTik9PntrLm91dHB1dFF1YWxpdHk9Tn19LG1ldGFkYXRhOkx9LHgsbSksdXModGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50U3RlcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImN1cnJlbnRTdGVwImluIGssZ2V0Oms9PmsuY3VycmVudFN0ZXAsc2V0OihrLE4pPT57ay5jdXJyZW50U3RlcD1OfX0sbWV0YWRhdGE6TH0seSx3KSx1cyh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyb3BwZWRJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImNyb3BwZWRJbWFnZSJpbiBrLGdldDprPT5rLmNyb3BwZWRJbWFnZSxzZXQ6KGssTik9PntrLmNyb3BwZWRJbWFnZT1OfX0sbWV0YWRhdGE6TH0sQyx6KSx1cyh0aGlzLG51bGwsUCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvY2Vzc2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImlzUHJvY2Vzc2luZyJpbiBrLGdldDprPT5rLmlzUHJvY2Vzc2luZyxzZXQ6KGssTik9PntrLmlzUHJvY2Vzc2luZz1OfX0sbWV0YWRhdGE6TH0sXywkKSx1cyhudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpMfSxudWxsLGEpLEg9cj1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfSNlPVUyKHRoaXMscywiIik7Z2V0IGluaXRpYWxJbWFnZSgpe3JldHVybiB0aGlzLiNlfXNldCBpbml0aWFsSW1hZ2UoTCl7dGhpcy4jZT1MfSN0PShVMih0aGlzLGwpLFUyKHRoaXMsYywicm91bmQiKSk7Z2V0IHNoYXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNoYXBlKEwpe3RoaXMuI3Q9TH0jYT0oVTIodGhpcyx1KSxVMih0aGlzLGgsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb3V0cHV0U2l6ZShMKXt0aGlzLiNhPUx9I3I9KFUyKHRoaXMsZyksVTIodGhpcyx4LC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI3J9c2V0IG91dHB1dFF1YWxpdHkoTCl7dGhpcy4jcj1MfSNpPShVMih0aGlzLG0pLFUyKHRoaXMseSwiY3JvcCIpKTtnZXQgY3VycmVudFN0ZXAoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VycmVudFN0ZXAoTCl7dGhpcy4jaT1MfSNvPShVMih0aGlzLHcpLFUyKHRoaXMsQywiIikpO2dldCBjcm9wcGVkSW1hZ2UoKXtyZXR1cm4gdGhpcy4jb31zZXQgY3JvcHBlZEltYWdlKEwpe3RoaXMuI289TH0jcz0oVTIodGhpcyx6KSxVMih0aGlzLF8sITEpKTtnZXQgaXNQcm9jZXNzaW5nKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGlzUHJvY2Vzc2luZyhMKXt0aGlzLiNzPUx9Y3JvcHBlcj0oVTIodGhpcywkKSxudWxsKTt3aW5kb3dMYXllcjt6SW5kZXg9MDtzdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4KTsKICAgICAgfQoKICAgICAgLm1vZGFsLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGEwYTBhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7cC5iZFRoZW1lKCIwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpIiwiMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIHdpZHRoOiA0ODBweDsKICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGUoMC45OCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBhbmltYXRpb246IG1vZGFsU2hvdyAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIG1vZGFsU2hvdyB7CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpIHNjYWxlKDEpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1vZGFsLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiA1MnB4OwogICAgICAgIHBhZGRpbmc6IDAgMjBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tb2RhbC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CgogICAgICAubW9kYWwtYm9keSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CgogICAgICAuY3JvcHBlci1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogMzYwcHg7CiAgICAgICAgYXNwZWN0LXJhdGlvOiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzAwMDAwMCIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJveC1zaGFkb3c6ICR7cC5iZFRoZW1lKCJpbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA2KSIsImluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CgogICAgICAucHJldmlldy1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDE4MHB4OwogICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7cC5iZFRoZW1lKCIwIDEwcHggMTVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCA0cHggNnB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjA1KSIsIjAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWltYWdlLnJvdW5kIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWltYWdlLnNxdWFyZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDsKICAgICAgfQoKICAgICAgLnN1Y2Nlc3MtbWVzc2FnZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMxMGI5ODEiLCIjMTBiOTgxIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBhbmltYXRpb246IHN1Y2Nlc3NQdWxzZSAwLjRzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHN1Y2Nlc3NQdWxzZSB7CiAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IG9wYWNpdHk6IDA7IH0KICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpOyB9CiAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH0KICAgICAgfQoKICAgICAgLm1vZGFsLWZvb3RlciB7CiAgICAgICAgcGFkZGluZzogMjBweCAyNHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLmluc3RydWN0aW9ucyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5tb2RhbC1jb250YWluZXIgewogICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTsKICAgICAgICAgIG1hcmdpbjogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm1vZGFsLWJvZHkgewogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLndpbmRvd0xheWVyPWF3YWl0IEthLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+dGhpcy5jbG9zZSgpKSx0aGlzLnpJbmRleD1zMS5nZXROZXh0WkluZGV4KCksdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS16LWluZGV4Iix0aGlzLnpJbmRleC50b1N0cmluZygpKSxzMS5yZWdpc3Rlcih0aGlzLHRoaXMuekluZGV4KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jcm9wcGVyJiZ0aGlzLmNyb3BwZXIuZGVzdHJveSgpLHRoaXMud2luZG93TGF5ZXImJmF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHMxLnVucmVnaXN0ZXIodGhpcyl9cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRhaW5lciIgQGNsaWNrPSR7TD0+TC5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgICAgIDxoMyBjbGFzcz0ibW9kYWwtdGl0bGUiPgogICAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/IkFkanVzdCBJbWFnZSI6IlN1Y2Nlc3MifQogICAgICAgICAgPC9oMz4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsb3NlLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5jbG9zZX0gdGl0bGU9IkNsb3NlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6eCIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPgogICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiP01gCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imluc3RydWN0aW9ucyI+CiAgICAgICAgICAgICAgUG9zaXRpb24gYW5kIHJlc2l6ZSB0aGUgc3F1YXJlIHRvIHNlbGVjdCB5b3VyIHByb2ZpbGUgYXJlYQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JvcHBlci1jb250YWluZXIiIGlkPSJjcm9wcGVyQ29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgIGA6TWAKICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgICAgICAgICR7dGhpcy5pc1Byb2Nlc3Npbmc/TWAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnN0cnVjdGlvbnMiPlNhdmluZy4uLjwvZGl2PgogICAgICAgICAgICAgIGA6TWAKICAgICAgICAgICAgICAgIDxpbWcgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcmV2aWV3LWltYWdlICR7dGhpcy5zaGFwZX0iIAogICAgICAgICAgICAgICAgICBzcmM9IiR7dGhpcy5jcm9wcGVkSW1hZ2V9IiAKICAgICAgICAgICAgICAgICAgYWx0PSJDcm9wcGVkIHByZXZpZXciCiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VjY2Vzcy1tZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hlY2siIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuPkxvb2tpbmcgZ29vZCE8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIj4KICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj9NYAogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiIHNpemU9InNtIiBAY2xpY2s9JHt0aGlzLmNsb3NlfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiIHNpemU9InNtIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNyb3B9PgogICAgICAgICAgICAgIFNhdmUKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiJiZhd2FpdCB0aGlzLmluaXRpYWxpemVDcm9wcGVyKCl9YXN5bmMgaW5pdGlhbGl6ZUNyb3BwZXIoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBMPXRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY3JvcHBlckNvbnRhaW5lciIpO0wmJih0aGlzLmNyb3BwZXI9bmV3IExqKHtjb250YWluZXI6TCxpbWFnZTp0aGlzLmluaXRpYWxJbWFnZSxzaGFwZTp0aGlzLnNoYXBlLGFzcGVjdFJhdGlvOjEsb3V0cHV0U2l6ZTp0aGlzLm91dHB1dFNpemUsb3V0cHV0UXVhbGl0eTp0aGlzLm91dHB1dFF1YWxpdHl9KSxhd2FpdCB0aGlzLmNyb3BwZXIuaW5pdGlhbGl6ZSgpKX1hc3luYyBoYW5kbGVDcm9wKCl7aWYodGhpcy5jcm9wcGVyKXRyeXt0aGlzLmlzUHJvY2Vzc2luZz0hMCx0aGlzLmN1cnJlbnRTdGVwPSJwcmV2aWV3Iixhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBMPWF3YWl0IHRoaXMuY3JvcHBlci5nZXRDcm9wcGVkSW1hZ2UoKTt0aGlzLmNyb3BwZWRJbWFnZT1MLGF3YWl0IG5ldyBQcm9taXNlKGs9PnNldFRpbWVvdXQoayw4MDApKSx0aGlzLmlzUHJvY2Vzc2luZz0hMSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzYXZlIix7ZGV0YWlsOntjcm9wcGVkSW1hZ2U6dGhpcy5jcm9wcGVkSW1hZ2V9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksc2V0VGltZW91dCgoKT0+e3RoaXMuY2xvc2UoKX0sMTUwMCl9Y2F0Y2goTCl7Y29uc29sZS5lcnJvcigiRXJyb3IgY3JvcHBpbmcgaW1hZ2U6IixMKSx0aGlzLmlzUHJvY2Vzc2luZz0hMX19Y2xvc2UoKXt0aGlzLnJlbW92ZSgpfXN0YXRpY3tVMihyLGEpfX07cmV0dXJuIEg9cn0pKCk7ZmUoKTt2YXIgek90PSgpPT5NYAogIDxzdHlsZT4KICAgICR7dGVgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0OHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5mZWF0dXJlLWxpc3QgbGkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmVbc2hhcGU9InJvdW5kIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYT0+e2xldCByPWEudGFyZ2V0O2NvbnNvbGUubG9nKCJSb3VuZCBwcm9maWxlIHBpY3R1cmUgY2hhbmdlZDoiLHIudmFsdWU/LnN1YnN0cmluZygwLDUwKSsiLi4uIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJvZmlsZSBQaWN0dXJlIElucHV0In0gLnN1YnRpdGxlPSR7IkJhc2ljIHVzYWdlIHdpdGggcm91bmQgYW5kIHNxdWFyZSBzaGFwZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUHJvZmlsZSBQaWN0dXJlIChSb3VuZCkiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayB0byB1cGxvYWQgb3IgZHJhZyAmIGRyb3AgYW4gaW1hZ2UiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlByb2ZpbGUgUGljdHVyZSAoU3F1YXJlKSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IlN1cHBvcnRzIEpQRUcsIFBORywgYW5kIFdlYlAgZm9ybWF0cyIKICAgICAgICAgICAgc2hhcGU9InNxdWFyZSIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUiKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIscj0+e2xldCBpPXIudGFyZ2V0O2NvbnNvbGUubG9nKGBQcm9maWxlIChzaXplICR7aS5zaXplfSkgY2hhbmdlZGApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2l6ZSBWYXJpYXRpb25zIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZXMgaW4gZGlmZmVyZW50IHNpemVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlNtYWxsICg4MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSI4MCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJNZWRpdW0gKDEyMHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iTGFyZ2UgKDE2MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxNjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4WkdWbWN6NEtJQ0FnSUR4c2FXNWxZWEpIY21Ga2FXVnVkQ0JwWkQwaVozSmhaR2xsYm5RaUlIZ3hQU0l3SlNJZ2VURTlJakFsSWlCNE1qMGlNVEF3SlNJZ2VUSTlJakV3TUNVaVBnb2dJQ0FnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakFsSWlCemRHOXdMV052Ykc5eVBTSWpOalkzWldWaElpQXZQZ29nSUNBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlNM05qUmlZVElpSUM4K0NpQWdJQ0E4TDJ4cGJtVmhja2R5WVdScFpXNTBQZ29nSUR3dlpHVm1jejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdabWxzYkQwaWRYSnNLQ05uY21Ga2FXVnVkQ2tpSUM4K0NpQWdQSFJsZUhRZ2VEMGlOVEFsSWlCNVBTSTFNQ1VpSUdSdmJXbHVZVzUwTFdKaGMyVnNhVzVsUFNKdGFXUmtiR1VpSUhSbGVIUXRZVzVqYUc5eVBTSnRhV1JrYkdVaUlHWnZiblF0Wm1GdGFXeDVQU0pCY21saGJDSWdabTl1ZEMxemFYcGxQU0k0TUNJZ1ptbHNiRDBpZDJocGRHVWlQa3BFUEM5MFpYaDBQZ284TDNOMlp6ND0iLGE9dC5xdWVyeVNlbGVjdG9yKCIjcHJlZmlsbGVkLXByb2ZpbGUiKTthJiYoYS52YWx1ZT1lLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixyPT57bGV0IGk9ci50YXJnZXQsbz10LnF1ZXJ5U2VsZWN0b3IoIiNwcmVmaWxsZWQtb3V0cHV0Iik7byYmKG8udGV4dENvbnRlbnQ9aS52YWx1ZT9gSW1hZ2UgZGF0YTogJHtpLnZhbHVlLnN1YnN0cmluZygwLDgwKX0uLi5gOiJObyBpbWFnZSBzZWxlY3RlZCIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcmUtZmlsbGVkIGFuZCBWYWx1ZSBCaW5kaW5nIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZSB3aXRoIGluaXRpYWwgdmFsdWUgYW5kIGNoYW5nZSB0cmFja2luZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICBpZD0icHJlZmlsbGVkLXByb2ZpbGUiCiAgICAgICAgICBsYWJlbD0iRWRpdCBFeGlzdGluZyBQcm9maWxlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIHRoZSBlZGl0IGJ1dHRvbiB0byBjaGFuZ2Ugb3IgZGVsZXRlIHRvIHJlbW92ZSIKICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgIHNpemU9IjE1MCIKICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InByZWZpbGxlZC1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICBJbWFnZSBkYXRhIHdpbGwgYXBwZWFyIGhlcmUgd2hlbiBjaGFuZ2VkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjZGlzYWJsZWQtcHJvZmlsZSIpO2UmJihlLnZhbHVlPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ1ptbHNiRDBpSTJOalkyTmpZeUlnTHo0S0lDQThkR1Y0ZENCNFBTSTFNQ1VpSUhrOUlqVXdKU0lnWkc5dGFXNWhiblF0WW1GelpXeHBibVU5SW0xcFpHUnNaU0lnZEdWNGRDMWhibU5vYjNJOUltMXBaR1JzWlNJZ1ptOXVkQzFtWVcxcGJIazlJa0Z5YVdGc0lpQm1iMjUwTFhOcGVtVTlJall3SWlCbWFXeHNQU0ozYUdsMFpTSStUa0U4TDNSbGVIUStDand2YzNablBnPT0iKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUmVxdWlyZWQgRmllbGQiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgaWQ9ImRpc2FibGVkLXByb2ZpbGUiCiAgICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBTdGF0ZSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkNhbm5vdCBiZSBlZGl0ZWQiCiAgICAgICAgICAgIHNoYXBlPSJzcXVhcmUiCiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlVwbG9hZCBPbmx5IgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iRGVsZXRlIG5vdCBhbGxvd2VkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5hbGxvd0RlbGV0ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZmVhdHVyZSBzZXQgb2YgdGhlIHByb2ZpbGUgcGljdHVyZSBpbnB1dCJ9PgogICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZS1saXN0Ij4KICAgICAgICAgIDxsaT48c3Ryb25nPkltYWdlIFVwbG9hZDo8L3N0cm9uZz4gQ2xpY2sgdG8gdXBsb2FkIG9yIGRyYWcgJiBkcm9wIGltYWdlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBDcm9wcGluZzo8L3N0cm9uZz4gSW50ZXJhY3RpdmUgY3JvcCB0b29sIHdpdGggcmVzaXplIGhhbmRsZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2hhcGUgU3VwcG9ydDo8L3N0cm9uZz4gUm91bmQgb3Igc3F1YXJlIHByb2ZpbGUgcGljdHVyZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2l6ZSBDdXN0b21pemF0aW9uOjwvc3Ryb25nPiBBZGp1c3RhYmxlIGRpbWVuc2lvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UHJldmlldyAmIEVkaXQ6PC9zdHJvbmc+IEhvdmVyIG92ZXJsYXkgd2l0aCBlZGl0IGFuZCBkZWxldGUgb3B0aW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5GaWxlIFZhbGlkYXRpb246PC9zdHJvbmc+IEZvcm1hdCBhbmQgc2l6ZSByZXN0cmljdGlvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UmVzcG9uc2l2ZSBEZXNpZ246PC9zdHJvbmc+IFdvcmtzIG9uIGRlc2t0b3AgYW5kIG1vYmlsZSBkZXZpY2VzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkZvcm0gSW50ZWdyYXRpb246PC9zdHJvbmc+IFN0YW5kYXJkIGZvcm0gdmFsdWUgYmluZGluZyBhbmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5BY2Nlc3NpYmlsaXR5Ojwvc3Ryb25nPiBLZXlib2FyZCBuYXZpZ2F0aW9uIGFuZCBzY3JlZW4gcmVhZGVyIHN1cHBvcnQ8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+Wi1JbmRleCBNYW5hZ2VtZW50Ojwvc3Ryb25nPiBQcm9wZXIgbW9kYWwgc3RhY2tpbmcgd2l0aCByZWdpc3RyeTwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyNHB4OyI+CiAgICAgICAgICA8c3Ryb25nPlN1cHBvcnRlZCBGb3JtYXRzOjwvc3Ryb25nPiBKUEVHLCBQTkcsIFdlYlA8YnI+CiAgICAgICAgICA8c3Ryb25nPk1heCBGaWxlIFNpemU6PC9zdHJvbmc+IDVNQiAoY29uZmlndXJhYmxlKTxicj4KICAgICAgICAgIDxzdHJvbmc+T3V0cHV0IEZvcm1hdDo8L3N0cm9uZz4gQmFzZTY0IGVuY29kZWQgSlBFRwogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmA7ZmUoKTtGdCgpO0JlKCk7dmFyIHJhPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0scjE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LG5uMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUiKV0sZSxhPVtdLHIsaT1YZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXSx2LHk9W10sdz1bXSxFLEM9W10sej1bXSxQLF89W10sJD1bXSxILEw9W10saz1bXSxOLFM9W10sVD1bXSxSLEE9W10sRj1bXSxhZSxWPVtdLFNlPVtdLHplLFc9W10sTmU9W10sUmUsWD1bXSxJPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgRz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOlN0cmluZ30pXSxmPVtEKHt0eXBlOlN0cmluZ30pXSxkPVtEKHt0eXBlOk51bWJlcn0pXSxiPVtEKHt0eXBlOlN0cmluZ30pXSx2PVtEKHt0eXBlOkJvb2xlYW59KV0sRT1bRCh7dHlwZTpCb29sZWFufSldLFA9W0Qoe3R5cGU6TnVtYmVyfSldLEg9W0Qoe3R5cGU6QXJyYXl9KV0sTj1bRCh7dHlwZTpOdW1iZXJ9KV0sUj1bRCh7dHlwZTpOdW1iZXJ9KV0sYWU9W2xlKCldLHplPVtsZSgpXSxSZT1bbGUoKV0scmEodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aj0+InZhbHVlImluIGosZ2V0Omo9PmoudmFsdWUsc2V0OihqLHNlKT0+e2oudmFsdWU9c2V9fSxtZXRhZGF0YTpHfSxzLGwpLHJhKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hhcGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmo9PiJzaGFwZSJpbiBqLGdldDpqPT5qLnNoYXBlLHNldDooaixzZSk9PntqLnNoYXBlPXNlfX0sbWV0YWRhdGE6R30sYyx1KSxyYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmo9PiJzaXplImluIGosZ2V0Omo9Pmouc2l6ZSxzZXQ6KGosc2UpPT57ai5zaXplPXNlfX0sbWV0YWRhdGE6R30saCxnKSxyYSh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpqPT4icGxhY2Vob2xkZXIiaW4gaixnZXQ6aj0+ai5wbGFjZWhvbGRlcixzZXQ6KGosc2UpPT57ai5wbGFjZWhvbGRlcj1zZX19LG1ldGFkYXRhOkd9LHgsbSkscmEodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd1VwbG9hZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aj0+ImFsbG93VXBsb2FkImluIGosZ2V0Omo9PmouYWxsb3dVcGxvYWQsc2V0OihqLHNlKT0+e2ouYWxsb3dVcGxvYWQ9c2V9fSxtZXRhZGF0YTpHfSx5LHcpLHJhKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dEZWxldGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmo9PiJhbGxvd0RlbGV0ZSJpbiBqLGdldDpqPT5qLmFsbG93RGVsZXRlLHNldDooaixzZSk9PntqLmFsbG93RGVsZXRlPXNlfX0sbWV0YWRhdGE6R30sQyx6KSxyYSh0aGlzLG51bGwsUCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpqPT4ibWF4RmlsZVNpemUiaW4gaixnZXQ6aj0+ai5tYXhGaWxlU2l6ZSxzZXQ6KGosc2UpPT57ai5tYXhGaWxlU2l6ZT1zZX19LG1ldGFkYXRhOkd9LF8sJCkscmEodGhpcyxudWxsLEgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY2NlcHRlZEZvcm1hdHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmo9PiJhY2NlcHRlZEZvcm1hdHMiaW4gaixnZXQ6aj0+ai5hY2NlcHRlZEZvcm1hdHMsc2V0OihqLHNlKT0+e2ouYWNjZXB0ZWRGb3JtYXRzPXNlfX0sbWV0YWRhdGE6R30sTCxrKSxyYSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmo9PiJvdXRwdXRTaXplImluIGosZ2V0Omo9Pmoub3V0cHV0U2l6ZSxzZXQ6KGosc2UpPT57ai5vdXRwdXRTaXplPXNlfX0sbWV0YWRhdGE6R30sUyxUKSxyYSh0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmo9PiJvdXRwdXRRdWFsaXR5ImluIGosZ2V0Omo9Pmoub3V0cHV0UXVhbGl0eSxzZXQ6KGosc2UpPT57ai5vdXRwdXRRdWFsaXR5PXNlfX0sbWV0YWRhdGE6R30sQSxGKSxyYSh0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmo9PiJpc0hvdmVyZWQiaW4gaixnZXQ6aj0+ai5pc0hvdmVyZWQsc2V0OihqLHNlKT0+e2ouaXNIb3ZlcmVkPXNlfX0sbWV0YWRhdGE6R30sVixTZSkscmEodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aj0+ImlzRHJhZ2dpbmciaW4gaixnZXQ6aj0+ai5pc0RyYWdnaW5nLHNldDooaixzZSk9PntqLmlzRHJhZ2dpbmc9c2V9fSxtZXRhZGF0YTpHfSxXLE5lKSxyYSh0aGlzLG51bGwsUmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmo9PiJpc0xvYWRpbmciaW4gaixnZXQ6aj0+ai5pc0xvYWRpbmcsc2V0OihqLHNlKT0+e2ouaXNMb2FkaW5nPXNlfX0sbWV0YWRhdGE6R30sWCxJKSxyYShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpHfSxudWxsLGEpLE89cj1lLnZhbHVlLEcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6R30pfXN0YXRpYyBkZW1vPXpPdDtzdGF0aWMgZGVtb0dyb3VwPSJJbnB1dCI7I2U9cjEodGhpcyxzLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoRyl7dGhpcy4jZT1HfSN0PShyMSh0aGlzLGwpLHIxKHRoaXMsYywicm91bmQiKSk7Z2V0IHNoYXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNoYXBlKEcpe3RoaXMuI3Q9R30jYT0ocjEodGhpcyx1KSxyMSh0aGlzLGgsMTIwKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2l6ZShHKXt0aGlzLiNhPUd9I3I9KHIxKHRoaXMsZykscjEodGhpcyx4LCIiKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHBsYWNlaG9sZGVyKEcpe3RoaXMuI3I9R30jaT0ocjEodGhpcyxtKSxyMSh0aGlzLHksITApKTtnZXQgYWxsb3dVcGxvYWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYWxsb3dVcGxvYWQoRyl7dGhpcy4jaT1HfSNvPShyMSh0aGlzLHcpLHIxKHRoaXMsQywhMCkpO2dldCBhbGxvd0RlbGV0ZSgpe3JldHVybiB0aGlzLiNvfXNldCBhbGxvd0RlbGV0ZShHKXt0aGlzLiNvPUd9I3M9KHIxKHRoaXMseikscjEodGhpcyxfLDUqMTAyNCoxMDI0KSk7Z2V0IG1heEZpbGVTaXplKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG1heEZpbGVTaXplKEcpe3RoaXMuI3M9R30jbj0ocjEodGhpcywkKSxyMSh0aGlzLEwsWyJpbWFnZS9qcGVnIiwiaW1hZ2UvcG5nIiwiaW1hZ2Uvd2VicCJdKSk7Z2V0IGFjY2VwdGVkRm9ybWF0cygpe3JldHVybiB0aGlzLiNufXNldCBhY2NlcHRlZEZvcm1hdHMoRyl7dGhpcy4jbj1HfSNsPShyMSh0aGlzLGspLHIxKHRoaXMsUyw4MDApKTtnZXQgb3V0cHV0U2l6ZSgpe3JldHVybiB0aGlzLiNsfXNldCBvdXRwdXRTaXplKEcpe3RoaXMuI2w9R30jYz0ocjEodGhpcyxUKSxyMSh0aGlzLEEsLjk1KSk7Z2V0IG91dHB1dFF1YWxpdHkoKXtyZXR1cm4gdGhpcy4jY31zZXQgb3V0cHV0UXVhbGl0eShHKXt0aGlzLiNjPUd9I2Q9KHIxKHRoaXMsRikscjEodGhpcyxWLCExKSk7Z2V0IGlzSG92ZXJlZCgpe3JldHVybiB0aGlzLiNkfXNldCBpc0hvdmVyZWQoRyl7dGhpcy4jZD1HfSNmPShyMSh0aGlzLFNlKSxyMSh0aGlzLFcsITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiNmfXNldCBpc0RyYWdnaW5nKEcpe3RoaXMuI2Y9R30jdT0ocjEodGhpcyxOZSkscjEodGhpcyxYLCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiN1fXNldCBpc0xvYWRpbmcoRyl7dGhpcy4jdT1HfW1vZGFsSW5zdGFuY2U9KHIxKHRoaXMsSSksbnVsbCk7c3RhdGljIHN0eWxlcz1beGUsLi4uWGUuYmFzZVN0eWxlcyxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLWNvbnRhaW5lcjpob3ZlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZSB7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y1ZjVmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnJvdW5kIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmRyYWdnaW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggJHtwLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIsInJnYmEoOTYsIDE2NSwgMjUwLCAwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZTpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAucHJvZmlsZS1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAucGxhY2Vob2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgLm92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuOTUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC45KSIsInJnYmEoMjIwLCAzOCwgMzgsIDAuOSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2RjMjYyNiIpfTsKICAgICAgfQoKICAgICAgLmRyb3Atem9uZS10ZXh0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmhpZGRlbi1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBhbmltYXRpb24gKi8KICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkuc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuY2xpY2tpbmcgewogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMC4zcyBlYXNlLW91dDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICAKICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InByb2ZpbGUtY29udGFpbmVyIgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGlja30KICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuaGFuZGxlRHJhZ092ZXJ9CiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5oYW5kbGVEcmFnTGVhdmV9CiAgICAgICAgICBAZHJvcD0ke3RoaXMuaGFuZGxlRHJvcH0KICAgICAgICAgIHN0eWxlPSItLXNpemU6ICR7dGhpcy5zaXplfXB4IgogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtcGljdHVyZSAke3RoaXMuc2hhcGV9ICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9ICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlPyJjbGlja2luZyI6IiJ9Ij4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlP01gCiAgICAgICAgICAgICAgPGltZyBjbGFzcz0icHJvZmlsZS1pbWFnZSIgc3JjPSIke3RoaXMudmFsdWV9IiBhbHQ9IlByb2ZpbGUgcGljdHVyZSIgLz4KICAgICAgICAgICAgYDpNYAogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InBsYWNlaG9sZGVyLWljb24iIGljb249Imx1Y2lkZTp1c2VyIiBpY29uU2l6ZT0iJHt0aGlzLnNpemUqLjV9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0RyYWdnaW5nP01gCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgc3R5bGU9Im9wYWNpdHk6IDEiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcC16b25lLXRleHQiPgogICAgICAgICAgICAgICAgICBEcm9wIGltYWdlIGhlcmUKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLnZhbHVlJiYhdGhpcy5kaXNhYmxlZD9NYAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmFsbG93VXBsb2FkP01gCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ib3ZlcmxheS1idXR0b24iIEBjbGljaz0ke0c9PntHLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3Blbk1vZGFsKCl9fSB0aXRsZT0iQ2hhbmdlIHBpY3R1cmUiPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6cGVuY2lsIiBpY29uU2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke3RoaXMuYWxsb3dEZWxldGU/TWAKICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJvdmVybGF5LWJ1dHRvbiBkZWxldGUiIEBjbGljaz0ke0c9PntHLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGVsZXRlUGljdHVyZSgpfX0gdGl0bGU9IkRlbGV0ZSBwaWN0dXJlIj4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOnRyYXNoMiIgaWNvblNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLmlzTG9hZGluZyYmIXRoaXMudmFsdWU/TWAKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkgc2hvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGlucHV0CiAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgY2xhc3M9ImhpZGRlbi1pbnB1dCIKICAgICAgICAgIGFjY2VwdD0iJHt0aGlzLmFjY2VwdGVkRm9ybWF0cy5qb2luKCIsIil9IgogICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlRmlsZVNlbGVjdH0KICAgICAgICAvPgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ2xpY2soKXtpZighKHRoaXMuZGlzYWJsZWR8fCF0aGlzLmFsbG93VXBsb2FkKSYmIXRoaXMudmFsdWUpe3RoaXMuaXNMb2FkaW5nPSEwO2xldCBHPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaGlkZGVuLWlucHV0Iiksaj0oKT0+e3NldFRpbWVvdXQoKCk9PnsoIUcuZmlsZXN8fEcuZmlsZXMubGVuZ3RoPT09MCkmJih0aGlzLmlzTG9hZGluZz0hMSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixqKX0sMzAwKX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixqKSxHLmNsaWNrKCl9fWhhbmRsZUZpbGVTZWxlY3QoRyl7bGV0IGo9Ry50YXJnZXQsc2U9ai5maWxlcz8uWzBdO3RoaXMuaXNMb2FkaW5nPSExLHNlJiZ0aGlzLnByb2Nlc3NGaWxlKHNlKSxqLnZhbHVlPSIifWhhbmRsZURyYWdPdmVyKEcpe0cucHJldmVudERlZmF1bHQoKSwhdGhpcy5kaXNhYmxlZCYmdGhpcy5hbGxvd1VwbG9hZCYmKHRoaXMuaXNEcmFnZ2luZz0hMCl9aGFuZGxlRHJhZ0xlYXZlKCl7dGhpcy5pc0RyYWdnaW5nPSExfWhhbmRsZURyb3AoRyl7aWYoRy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZz0hMSx0aGlzLmRpc2FibGVkfHwhdGhpcy5hbGxvd1VwbG9hZClyZXR1cm47bGV0IGo9Ry5kYXRhVHJhbnNmZXI/LmZpbGVzWzBdO2omJnRoaXMucHJvY2Vzc0ZpbGUoail9YXN5bmMgcHJvY2Vzc0ZpbGUoRyl7aWYoIXRoaXMuYWNjZXB0ZWRGb3JtYXRzLmluY2x1ZGVzKEcudHlwZSkpe2NvbnNvbGUuZXJyb3IoIkludmFsaWQgZmlsZSB0eXBlOiIsRy50eXBlKTtyZXR1cm59aWYoRy5zaXplPnRoaXMubWF4RmlsZVNpemUpe2NvbnNvbGUuZXJyb3IoIkZpbGUgdG9vIGxhcmdlOiIsRy5zaXplKTtyZXR1cm59bGV0IGo9bmV3IEZpbGVSZWFkZXI7ai5vbmxvYWQ9YXN5bmMgc2U9PntsZXQga2U9c2UudGFyZ2V0Py5yZXN1bHQ7YXdhaXQgdGhpcy5vcGVuTW9kYWwoa2UpfSxqLnJlYWRBc0RhdGFVUkwoRyl9YXN5bmMgb3Blbk1vZGFsKEcpe2xldCBqPUd8fHRoaXMudmFsdWU7aWYoIWope3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaGlkZGVuLWlucHV0IikuY2xpY2soKTtyZXR1cm59dGhpcy5tb2RhbEluc3RhbmNlPW5ldyBZRWUsdGhpcy5tb2RhbEluc3RhbmNlLnNoYXBlPXRoaXMuc2hhcGUsdGhpcy5tb2RhbEluc3RhbmNlLmluaXRpYWxJbWFnZT1qLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRTaXplPXRoaXMub3V0cHV0U2l6ZSx0aGlzLm1vZGFsSW5zdGFuY2Uub3V0cHV0UXVhbGl0eT10aGlzLm91dHB1dFF1YWxpdHksdGhpcy5tb2RhbEluc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIoInNhdmUiLHNlPT57dGhpcy52YWx1ZT1zZS5kZXRhaWwuY3JvcHBlZEltYWdlLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLm1vZGFsSW5zdGFuY2UpfWRlbGV0ZVBpY3R1cmUoKXt0aGlzLnZhbHVlPSIiLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoRyl7dGhpcy52YWx1ZT1HfXN0YXRpY3tyMShyLGEpfX07cmV0dXJuIE89cn0pKCk7ZmUoKTtwMigpO0Z0KCk7dmFyIGtPdD1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LFpFZT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sbG4xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1wZGYiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXTt2YXIgZj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCgpXSxrT3QodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwZGZVcmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnU9PiJwZGZVcmwiaW4gdSxnZXQ6dT0+dS5wZGZVcmwsc2V0Oih1LGQpPT57dS5wZGZVcmw9ZH19LG1ldGFkYXRhOmN9LHMsbCksa090KG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZj1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89KCk9Pk1gIDxkZWVzLXBkZj48L2RlZXMtcGRmPiBgO3N0YXRpYyBkZW1vR3JvdXA9IlBERiI7I2U9WkVlKHRoaXMscywiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoYyl7dGhpcy4jZT1jfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxaRWUodGhpcyxsKX1yZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICAgIH0KICAgICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CgogICAgICAgICNwZGZjYW52YXMgewogICAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA1cHggI2NjYzsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGNhbnZhcwogICAgICAgIGlkPSJwZGZjYW52YXMiCiAgICAgICAgLmhlaWdodD0kezB9CiAgICAgICAgLndpZHRoPSR7MH0KCiAgICAgID48L2NhbnZhcz4KICAgIGB9c3RhdGljIHBkZkpzUmVhZHk7c3RhdGljIHBkZmpzTGliO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7aWYoc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSwhZi5wZGZKc1JlYWR5KXtsZXQgYz1zdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO2YucGRmSnNSZWFkeT1jLnByb21pc2UsZi5wZGZqc0xpYj1hd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20iKSxmLnBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS9idWlsZC9wZGYud29ya2VyLm1qcyIsYy5yZXNvbHZlKCl9YXdhaXQgZi5wZGZKc1JlYWR5LHRoaXMuZGlzcGxheUNvbnRlbnQoKX1hc3luYyBkaXNwbGF5Q29udGVudCgpe2F3YWl0IGYucGRmSnNSZWFkeSxmLnBkZmpzTGliLmdldERvY3VtZW50KHRoaXMucGRmVXJsKS5wcm9taXNlLnRoZW4odT0+e2NvbnNvbGUubG9nKCJQREYgbG9hZGVkIiksdS5nZXRQYWdlKDEpLnRoZW4oaD0+e2NvbnNvbGUubG9nKCJQYWdlIGxvYWRlZCIpO2xldCBiPWguZ2V0Vmlld3BvcnQoe3NjYWxlOjEwfSkseD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiI3BkZmNhbnZhcyIpLG09eC5nZXRDb250ZXh0KCIyZCIpO3guaGVpZ2h0PWIuaGVpZ2h0LHgud2lkdGg9Yi53aWR0aDtsZXQgdj17Y2FudmFzQ29udGV4dDptLHZpZXdwb3J0OmJ9O2gucmVuZGVyKHYpLnByb21pc2UudGhlbihmdW5jdGlvbigpe2NvbnNvbGUubG9nKCJQYWdlIHJlbmRlcmVkIil9KX0pfSx1PT57Y29uc29sZS5lcnJvcih1KX0pfWdldENvbnRleHRNZW51SXRlbXMoKXtyZXR1cm5be25hbWU6Ik9wZW4gUERGIGluIE5ldyBUYWIiLGljb25OYW1lOiJsdWNpZGU6RXh0ZXJuYWxMaW5rIixhY3Rpb246YXN5bmMoKT0+e3dpbmRvdy5vcGVuKHRoaXMucGRmVXJsLCJfYmxhbmsiKX19LHtkaXZpZGVyOiEwfSx7bmFtZToiQ29weSBQREYgVVJMIixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjphc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy5wZGZVcmwpfX0se25hbWU6IkRvd25sb2FkIFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmFzeW5jKCk9PntsZXQgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Yy5ocmVmPXRoaXMucGRmVXJsLGMuZG93bmxvYWQ9dGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKXx8ImRvY3VtZW50LnBkZiIsYy5jbGljaygpfX1dfXN0YXRpY3taRWUocixhKX19O3JldHVybiBmPXJ9KSgpO2ZlKCk7dmFyIHRvPWNsYXNze3N0YXRpYyBwZGZqc0xpYjtzdGF0aWMgaW5pdGlhbGl6ZWQ9ITE7c3RhdGljIGFzeW5jIGluaXRpYWxpemUoKXt0aGlzLmluaXRpYWxpemVkfHwodGhpcy5wZGZqc0xpYj1hd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20iKSx0aGlzLnBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS9idWlsZC9wZGYud29ya2VyLm1qcyIsdGhpcy5pbml0aWFsaXplZD0hMCl9c3RhdGljIGFzeW5jIGxvYWREb2N1bWVudChlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0aWFsaXplKCksYXdhaXQgdGhpcy5wZGZqc0xpYi5nZXREb2N1bWVudChlKS5wcm9taXNlfXN0YXRpYyByZWxlYXNlRG9jdW1lbnQoZSl7fX07dmFyIEJJPWNsYXNze3N0YXRpYyBwb29sPVtdO3N0YXRpYyBtYXhQb29sU2l6ZT0yMDtzdGF0aWMgTUlOX0NBTlZBU19TSVpFPTI1NjtzdGF0aWMgTUFYX0NBTlZBU19TSVpFPTQwOTY7c3RhdGljIGFjcXVpcmUoZSxhKXtsZXQgcj10aGlzLnBvb2wuZmluZChsPT4hbC5pblVzZSYmbC5jYW52YXMud2lkdGg+PWUmJmwuY2FudmFzLmhlaWdodD49YSYmbC5jYW52YXMud2lkdGg8PWUqMS41JiZsLmNhbnZhcy5oZWlnaHQ8PWEqMS41KTtpZihyKXJldHVybiByLmluVXNlPSEwLHIubGFzdFVzZWQ9RGF0ZS5ub3coKSxyLmNhbnZhcy53aWR0aD1lLHIuY2FudmFzLmhlaWdodD1hLHIuY3R4LmNsZWFyUmVjdCgwLDAsZSxhKSxyO2lmKHRoaXMucG9vbC5sZW5ndGg8dGhpcy5tYXhQb29sU2l6ZSl7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksZj1sLmdldENvbnRleHQoIjJkIix7YWxwaGE6ITAsZGVzeW5jaHJvbml6ZWQ6ITB9KTtsLndpZHRoPU1hdGgubWluKE1hdGgubWF4KGUsdGhpcy5NSU5fQ0FOVkFTX1NJWkUpLHRoaXMuTUFYX0NBTlZBU19TSVpFKSxsLmhlaWdodD1NYXRoLm1pbihNYXRoLm1heChhLHRoaXMuTUlOX0NBTlZBU19TSVpFKSx0aGlzLk1BWF9DQU5WQVNfU0laRSk7bGV0IGM9e2NhbnZhczpsLGN0eDpmLGluVXNlOiEwLGxhc3RVc2VkOkRhdGUubm93KCl9O3JldHVybiB0aGlzLnBvb2wucHVzaChjKSxjfWxldCBpPXRoaXMucG9vbC5maWx0ZXIobD0+IWwuaW5Vc2UpLnNvcnQoKGwsZik9PmwubGFzdFVzZWQtZi5sYXN0VXNlZClbMF07aWYoaSlyZXR1cm4gaS5jYW52YXMud2lkdGg9ZSxpLmNhbnZhcy5oZWlnaHQ9YSxpLmN0eC5jbGVhclJlY3QoMCwwLGUsYSksaS5pblVzZT0hMCxpLmxhc3RVc2VkPURhdGUubm93KCksaTtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxzPW8uZ2V0Q29udGV4dCgiMmQiKTtyZXR1cm4gby53aWR0aD1lLG8uaGVpZ2h0PWEse2NhbnZhczpvLGN0eDpzLGluVXNlOiEwLGxhc3RVc2VkOkRhdGUubm93KCl9fXN0YXRpYyByZWxlYXNlKGUpe3RoaXMucG9vbC5pbmNsdWRlcyhlKSYmKGUuaW5Vc2U9ITEsZS5jdHguY2xlYXJSZWN0KDAsMCxlLmNhbnZhcy53aWR0aCxlLmNhbnZhcy5oZWlnaHQpKX1zdGF0aWMgcmVsZWFzZUFsbCgpe2ZvcihsZXQgZSBvZiB0aGlzLnBvb2wpZS5pblVzZT0hMSxlLmN0eC5jbGVhclJlY3QoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCl9c3RhdGljIGRlc3Ryb3koKXtmb3IobGV0IGUgb2YgdGhpcy5wb29sKWUuY2FudmFzLndpZHRoPTAsZS5jYW52YXMuaGVpZ2h0PTA7dGhpcy5wb29sPVtdfXN0YXRpYyBnZXRTdGF0cygpe3JldHVybntwb29sU2l6ZTp0aGlzLnBvb2wubGVuZ3RoLG1heFBvb2xTaXplOnRoaXMubWF4UG9vbFNpemUsaW5Vc2U6dGhpcy5wb29sLmZpbHRlcihlPT5lLmluVXNlKS5sZW5ndGgsYXZhaWxhYmxlOnRoaXMucG9vbC5maWx0ZXIoZT0+IWUuaW5Vc2UpLmxlbmd0aH19c3RhdGljIGFkanVzdFBvb2xTaXplKGUpe2lmKGU8dGhpcy5wb29sLmxlbmd0aCl7bGV0IGE9dGhpcy5wb29sLmxlbmd0aC1lLHI9dGhpcy5wb29sLmZpbHRlcihpPT4haS5pblVzZSkuc2xpY2UoMCxhKTtmb3IobGV0IGkgb2Ygcil7bGV0IG89dGhpcy5wb29sLmluZGV4T2YoaSk7bz4tMSYmdGhpcy5wb29sLnNwbGljZShvLDEpfX10aGlzLm1heFBvb2xTaXplPWV9fTtmdW5jdGlvbiBLWmEodCxlKXtsZXQgYTtyZXR1cm4gZnVuY3Rpb24oLi4uaSl7bGV0IG89KCk9PntjbGVhclRpbWVvdXQoYSksdCguLi5pKX07Y2xlYXJUaW1lb3V0KGEpLGE9d2luZG93LnNldFRpbWVvdXQobyxlKX19ZnVuY3Rpb24gU090KHQsZSl7bGV0IGE7cmV0dXJuIGZ1bmN0aW9uKC4uLmkpe2F8fCh0LmFwcGx5KHRoaXMsaSksYT0hMCxzZXRUaW1lb3V0KCgpPT5hPSExLGUpKX19ZnVuY3Rpb24gSlphKHQpe2lmKHQ9PT0wKXJldHVybiIwIEJ5dGVzIjtsZXQgZT0xMDI0LGE9WyJCeXRlcyIsIktCIiwiTUIiLCJHQiJdLHI9TWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLmxvZyhlKSk7cmV0dXJuIE1hdGgucm91bmQodC9NYXRoLnBvdyhlLHIpKjEwMCkvMTAwKyIgIithW3JdfWZ1bmN0aW9uIGVYYSh0LGU9MCl7bGV0IGE9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gYS50b3A+PS1lJiZhLmxlZnQ+PS1lJiZhLmJvdHRvbTw9KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkrZSYmYS5yaWdodDw9KHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpK2V9dmFyIFJJPWNsYXNze3N0YXRpYyBtYXJrcz1uZXcgTWFwO3N0YXRpYyBtZWFzdXJlcz1bXTtzdGF0aWMgbWFyayhlKXt0aGlzLm1hcmtzLnNldChlLHBlcmZvcm1hbmNlLm5vdygpKX1zdGF0aWMgbWVhc3VyZShlLGEpe2xldCByPXRoaXMubWFya3MuZ2V0KGEpO2lmKHIpe2xldCBpPXBlcmZvcm1hbmNlLm5vdygpLXI7cmV0dXJuIHRoaXMubWVhc3VyZXMucHVzaCh7bmFtZTplLGR1cmF0aW9uOml9KSx0aGlzLm1hcmtzLmRlbGV0ZShhKSxpfXJldHVybiAwfXN0YXRpYyBnZXRSZXBvcnQoKXtsZXQgZT17bWVhc3VyZXM6Wy4uLnRoaXMubWVhc3VyZXNdLGF2ZXJhZ2VzOnt9fSxhPW5ldyBNYXA7Zm9yKGxldCByIG9mIHRoaXMubWVhc3VyZXMpYS5oYXMoci5uYW1lKXx8YS5zZXQoci5uYW1lLFtdKSxhLmdldChyLm5hbWUpLnB1c2goci5kdXJhdGlvbik7Zm9yKGxldFtyLGldb2YgYSllLmF2ZXJhZ2VzW3JdPWkucmVkdWNlKChvLHMpPT5vK3MsMCkvaS5sZW5ndGg7cmV0dXJuIGV9c3RhdGljIGNsZWFyKCl7dGhpcy5tYXJrcy5jbGVhcigpLHRoaXMubWVhc3VyZXM9W119fTtmZSgpO3ZhciBDT3Q9W3AuZGVmYXVsdFN0eWxlcyx0ZWAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB9CgogICAgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB3aWR0aDogMjAwcHg7CiAgICAgIGhlaWdodDogMjYwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDIxNSAyMCUgMTQlKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTsKICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTIpIiwicmdiYSgwLCAwLCAwLCAwLjI0KSIpfTsKICAgIH0KCiAgICAucHJldmlldy1jb250YWluZXIuY2xpY2thYmxlIHsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQoKICAgIC5wcmV2aWV3LWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xMikiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICB9CgogICAgLnByZXZpZXctY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciAucHJldmlldy1vdmVybGF5IHsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAucHJldmlldy1zdGFjayB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnByZXZpZXctc3RhY2subm9uLWE0IHsKICAgICAgcGFkZGluZzogMTJweDsKICAgIH0KCiAgICAucHJldmlldy1jYW52YXMgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICBtYXgtaGVpZ2h0OiAxMDAlOwogICAgICB3aWR0aDogYXV0bzsKICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgICBpbWFnZS1yZW5kZXJpbmc6IGF1dG87CiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgIH0KCiAgICAubm9uLWE0IC5wcmV2aWV3LWNhbnZhcyB7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjQlKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgfQoKICAgIC5wcmV2aWV3LWluZm8gewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogOHB4OwogICAgICBsZWZ0OiA4cHg7CiAgICAgIHJpZ2h0OiA4cHg7CiAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuOTIpIiwiaHNsKDIxNSAyMCUgMTIlIC8gMC45MikiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA2cHg7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOwogICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICB6LWluZGV4OiAxMDsKICAgIH0KCiAgICAucHJldmlldy1pbmZvIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAucHJldmlldy1wYWdlcyB7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIH0KCiAgICAucHJldmlldy1vdmVybGF5IHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuNykiLCJyZ2JhKDAsIDAsIDAsIDAuOCkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIHotaW5kZXg6IDIwOwogICAgfQoKICAgIC5wcmV2aWV3LW92ZXJsYXkgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnByZXZpZXctb3ZlcmxheSBzcGFuIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogd2hpdGU7CiAgICB9CgogICAgLnByZXZpZXctbG9hZGluZywKICAgIC5wcmV2aWV3LWVycm9yIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBnYXA6IDEycHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnByZXZpZXctbG9hZGluZyB7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5OSUpIiwiaHNsKDIxNSAyMCUgMTQlKSIpfTsKICAgIH0KCiAgICAucHJldmlldy1lcnJvciB7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCA3MiUgOTglKSIsImhzbCgwIDYyJSAyMCUpIil9OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDcyJSA0MCUpIiwiaHNsKDAgNzAlIDY4JSkiKX07CiAgICB9CgogICAgLnByZXZpZXctc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAyNHB4OwogICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgYm9yZGVyOiAycHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBib3JkZXItdG9wLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQoKICAgIC5wcmV2aWV3LXRleHQgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnByZXZpZXctZXJyb3IgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgfQoKICAgIC5wcmV2aWV3LXBhZ2UtaW5kaWNhdG9yIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDhweDsKICAgICAgbGVmdDogOHB4OwogICAgICByaWdodDogOHB4OwogICAgICBwYWRkaW5nOiA1cHggOHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjcpIiwiaHNsKDAgMCUgMTAwJSAvIDAuOSkiKX07CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgid2hpdGUiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7CiAgICAgIHotaW5kZXg6IDE1OwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4ycyBlYXNlOwogICAgfQoKICAgIEBrZXlmcmFtZXMgZmFkZUluIHsKICAgICAgZnJvbSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgIH0KICAgICAgdG8gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICB9CiAgICB9CgogICAgLyogUmVzcG9uc2l2ZSBzaXplcyAqLwogICAgOmhvc3QoW3NpemU9InNtYWxsIl0pIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxNTBweDsKICAgICAgaGVpZ2h0OiAxOTVweDsKICAgIH0KCiAgICA6aG9zdChbc2l6ZT0ibGFyZ2UiXSkgLnByZXZpZXctY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDI1MHB4OwogICAgICBoZWlnaHQ6IDMyNXB4OwogICAgfQoKICAgIC8qIEdyaWQgb3B0aW1pemF0aW9ucyAqLwogICAgOmhvc3QoW2dyaWQtbW9kZV0pIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgIHdpbGwtY2hhbmdlOiBhdXRvOwogICAgfQoKICAgIDpob3N0KFtncmlkLW1vZGVdKSAucHJldmlldy1jYW52YXMgewogICAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgICB9CiAgYF07ZmUoKTt2YXIgTE90PSgpPT57bGV0IHQ9WyJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiLCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiXTtyZXR1cm4gTWAKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KCiAgICAgIGgzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAucHJldmlldy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICB9CgogICAgICAucHJldmlldy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgfQoKICAgICAgLnBlcmZvcm1hbmNlLXN0YXRzIHsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTUwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICB9CgogICAgICAuc3RhdC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdGF0LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgIH0KCiAgICAgIC5zdGF0LXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPlNpbmdsZSBQREYgUHJldmlldyB3aXRoIFN0YWNrZWQgUGFnZXM8L2gzPgogICAgICAgIDxkZWVzLXBkZi1wcmV2aWV3CiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICAgIG1heFBhZ2VzPSIzIgogICAgICAgICAgc3RhY2tPZmZzZXQ9IjgiCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgPjwvZGVlcy1wZGYtcHJldmlldz4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5EaWZmZXJlbnQgU2l6ZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPlNtYWxsOjwvZGl2PgogICAgICAgICAgPGRlZXMtcGRmLXByZXZpZXcKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBtYXhQYWdlcz0iMiIKICAgICAgICAgICAgc3RhY2tPZmZzZXQ9IjYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtcGRmLXByZXZpZXc+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPkRlZmF1bHQ6PC9kaXY+CiAgICAgICAgICA8ZGVlcy1wZGYtcHJldmlldwogICAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgICAgbWF4UGFnZXM9IjMiCiAgICAgICAgICAgIHN0YWNrT2Zmc2V0PSI4IgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXBkZi1wcmV2aWV3PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5MYXJnZTo8L2Rpdj4KICAgICAgICAgIDxkZWVzLXBkZi1wcmV2aWV3CiAgICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgICAgbWF4UGFnZXM9IjQiCiAgICAgICAgICAgIHN0YWNrT2Zmc2V0PSIxMCIKICAgICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgPjwvZGVlcy1wZGYtcHJldmlldz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Ob24tQ2xpY2thYmxlIFByZXZpZXc8L2gzPgogICAgICAgIDxkZWVzLXBkZi1wcmV2aWV3CiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgIG1heFBhZ2VzPSIzIgogICAgICAgICAgc3RhY2tPZmZzZXQ9IjgiCiAgICAgICAgICBjbGlja2FibGU9ImZhbHNlIgogICAgICAgID48L2RlZXMtcGRmLXByZXZpZXc+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+UGVyZm9ybWFuY2UgR3JpZCAtIDUwIFBERnMgd2l0aCBMYXp5IExvYWRpbmc8L2gzPgogICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAyMHB4OyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAjNjY2OyI+CiAgICAgICAgICBUaGlzIGdyaWQgZGVtb25zdHJhdGVzIHRoZSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zIHdpdGggNTAgUERGIHByZXZpZXdzLgogICAgICAgICAgU2Nyb2xsIHRvIHNlZSBsYXp5IGxvYWRpbmcgaW4gYWN0aW9uIC0gcHJldmlld3MgcmVuZGVyIG9ubHkgd2hlbiB2aXNpYmxlLgogICAgICAgIDwvcD4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1ncmlkIj4KICAgICAgICAgICR7KGE9PntsZXQgcj1bXTtmb3IobGV0IGk9MDtpPGE7aSsrKXtsZXQgbz10W2kldC5sZW5ndGhdO3IucHVzaChNYAogICAgICAgIDxkZWVzLXBkZi1wcmV2aWV3CiAgICAgICAgICBwZGZVcmw9IiR7b30iCiAgICAgICAgICBtYXhQYWdlcz0iMyIKICAgICAgICAgIHN0YWNrT2Zmc2V0PSI2IgogICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgZ3JpZC1tb2RlCiAgICAgICAgICBAcGRmLXByZXZpZXctY2xpY2s9JHtzPT57Y29uc29sZS5sb2coIlBERiBQcmV2aWV3IGNsaWNrZWQ6IixzLmRldGFpbCksYWxlcnQoYFBERiBjbGlja2VkOiAke3MuZGV0YWlsLnBhZ2VDb3VudH0gcGFnZXNgKX19CiAgICAgICAgPjwvZGVlcy1wZGYtcHJldmlldz4KICAgICAgYCl9cmV0dXJuIHJ9KSg1MCl9CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InBlcmZvcm1hbmNlLXN0YXRzIj4KICAgICAgICAgIDxoND5QZXJmb3JtYW5jZSBGZWF0dXJlczwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0cy1ncmlkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdC1sYWJlbCI+TGF6eSBMb2FkaW5nPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0LXZhbHVlIj7inJMgRW5hYmxlZDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQtbGFiZWwiPkNhbnZhcyBQb29saW5nPC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0LXZhbHVlIj7inJMgQWN0aXZlPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3RhdC1sYWJlbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQtdmFsdWUiPuKckyBPcHRpbWl6ZWQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0LWxhYmVsIj5JbnRlcnNlY3Rpb24gT2JzZXJ2ZXI8L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InN0YXQtdmFsdWUiPjIwMHB4IG1hcmdpbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfTtmZSgpO0Z0KCk7dmFyIFhyPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sVTE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LGNuMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtcGRmLXByZXZpZXciKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXSx2LHk9W10sdz1bXSxFLEM9W10sej1bXSxQLF89W10sJD1bXSxILEw9W10saz1bXSxOLFM9W10sVD1bXTt2YXIgUj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IEE9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpTdHJpbmd9KV0sZj1bRCh7dHlwZTpOdW1iZXJ9KV0sZD1bRCh7dHlwZTpCb29sZWFufSldLGI9W0Qoe3R5cGU6TnVtYmVyfSldLHY9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxFPVtEKHt0eXBlOkJvb2xlYW59KV0sUD1bRCh7dHlwZTpCb29sZWFufSldLEg9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxOPVtEKHt0eXBlOkJvb2xlYW59KV0sWHIodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwZGZVcmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkY9PiJwZGZVcmwiaW4gRixnZXQ6Rj0+Ri5wZGZVcmwsc2V0OihGLGFlKT0+e0YucGRmVXJsPWFlfX0sbWV0YWRhdGE6QX0scyxsKSxYcih0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRQcmV2aWV3UGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rj0+ImN1cnJlbnRQcmV2aWV3UGFnZSJpbiBGLGdldDpGPT5GLmN1cnJlbnRQcmV2aWV3UGFnZSxzZXQ6KEYsYWUpPT57Ri5jdXJyZW50UHJldmlld1BhZ2U9YWV9fSxtZXRhZGF0YTpBfSxjLHUpLFhyKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2xpY2thYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpGPT4iY2xpY2thYmxlImluIEYsZ2V0OkY9PkYuY2xpY2thYmxlLHNldDooRixhZSk9PntGLmNsaWNrYWJsZT1hZX19LG1ldGFkYXRhOkF9LGgsZyksWHIodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkY9PiJwYWdlQ291bnQiaW4gRixnZXQ6Rj0+Ri5wYWdlQ291bnQsc2V0OihGLGFlKT0+e0YucGFnZUNvdW50PWFlfX0sbWV0YWRhdGE6QX0seCxtKSxYcih0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkY9PiJsb2FkaW5nImluIEYsZ2V0OkY9PkYubG9hZGluZyxzZXQ6KEYsYWUpPT57Ri5sb2FkaW5nPWFlfX0sbWV0YWRhdGE6QX0seSx3KSxYcih0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmRlcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpGPT4icmVuZGVyZWQiaW4gRixnZXQ6Rj0+Ri5yZW5kZXJlZCxzZXQ6KEYsYWUpPT57Ri5yZW5kZXJlZD1hZX19LG1ldGFkYXRhOkF9LEMseiksWHIodGhpcyxudWxsLFAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rj0+ImVycm9yImluIEYsZ2V0OkY9PkYuZXJyb3Isc2V0OihGLGFlKT0+e0YuZXJyb3I9YWV9fSxtZXRhZGF0YTpBfSxfLCQpLFhyKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rj0+ImlzSG92ZXJpbmciaW4gRixnZXQ6Rj0+Ri5pc0hvdmVyaW5nLHNldDooRixhZSk9PntGLmlzSG92ZXJpbmc9YWV9fSxtZXRhZGF0YTpBfSxMLGspLFhyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNBNEZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rj0+ImlzQTRGb3JtYXQiaW4gRixnZXQ6Rj0+Ri5pc0E0Rm9ybWF0LHNldDooRixhZSk9PntGLmlzQTRGb3JtYXQ9YWV9fSxtZXRhZGF0YTpBfSxTLFQpLFhyKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkF9LG51bGwsYSksUj1yPWUudmFsdWUsQSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpBfSl9c3RhdGljIGRlbW89TE90O3N0YXRpYyBkZW1vR3JvdXA9IlBERiI7c3RhdGljIHN0eWxlcz1DT3Q7I2U9VTEodGhpcyxzLCIiKTtnZXQgcGRmVXJsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBkZlVybChBKXt0aGlzLiNlPUF9I3Q9KFUxKHRoaXMsbCksVTEodGhpcyxjLDEpKTtnZXQgY3VycmVudFByZXZpZXdQYWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1cnJlbnRQcmV2aWV3UGFnZShBKXt0aGlzLiN0PUF9I2E9KFUxKHRoaXMsdSksVTEodGhpcyxoLCEwKSk7Z2V0IGNsaWNrYWJsZSgpe3JldHVybiB0aGlzLiNhfXNldCBjbGlja2FibGUoQSl7dGhpcy4jYT1BfSNyPShVMSh0aGlzLGcpLFUxKHRoaXMseCwwKSk7Z2V0IHBhZ2VDb3VudCgpe3JldHVybiB0aGlzLiNyfXNldCBwYWdlQ291bnQoQSl7dGhpcy4jcj1BfSNpPShVMSh0aGlzLG0pLFUxKHRoaXMseSwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxvYWRpbmcoQSl7dGhpcy4jaT1BfSNvPShVMSh0aGlzLHcpLFUxKHRoaXMsQywhMSkpO2dldCByZW5kZXJlZCgpe3JldHVybiB0aGlzLiNvfXNldCByZW5kZXJlZChBKXt0aGlzLiNvPUF9I3M9KFUxKHRoaXMseiksVTEodGhpcyxfLCExKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGVycm9yKEEpe3RoaXMuI3M9QX0jbj0oVTEodGhpcywkKSxVMSh0aGlzLEwsITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNufXNldCBpc0hvdmVyaW5nKEEpe3RoaXMuI249QX0jbD0oVTEodGhpcyxrKSxVMSh0aGlzLFMsITApKTtnZXQgaXNBNEZvcm1hdCgpe3JldHVybiB0aGlzLiNsfXNldCBpc0E0Rm9ybWF0KEEpe3RoaXMuI2w9QX1yZW5kZXJQYWdlc1Rhc2s9KFUxKHRoaXMsVCksbnVsbCk7cmVuZGVyUGFnZXNRdWV1ZWQ9ITE7b2JzZXJ2ZXI7cGRmRG9jdW1lbnQ7Y2FudmFzZXM9W107cmVzaXplT2JzZXJ2ZXI7cHJldmlld0NvbnRhaW5lcj1udWxsO3N0YWNrRWxlbWVudD1udWxsO2xvYWRlZFBkZlVybD1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciAke3RoaXMubG9hZGluZz8ibG9hZGluZyI6IiJ9ICR7dGhpcy5lcnJvcj8iZXJyb3IiOiIifSAke3RoaXMuY2xpY2thYmxlPyJjbGlja2FibGUiOiIifSIKICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsaWNrfQogICAgICAgIEBtb3VzZWVudGVyPSR7dGhpcy5oYW5kbGVNb3VzZUVudGVyfQogICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZUxlYXZlfQogICAgICAgIEBtb3VzZW1vdmU9JHt0aGlzLmhhbmRsZU1vdXNlTW92ZX0KICAgICAgPgogICAgICAgICR7dGhpcy5sb2FkaW5nP01gCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxvYWRpbmciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXRleHQiPkxvYWRpbmcgcHJldmlldy4uLjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHt0aGlzLmVycm9yP01gCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWVycm9yIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXRleHQiPkZhaWxlZCB0byBsb2FkIFBERjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHshdGhpcy5sb2FkaW5nJiYhdGhpcy5lcnJvcj9NYAogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1zdGFjayAke3RoaXMuaXNBNEZvcm1hdD8iIjoibm9uLWE0In0iPgogICAgICAgICAgICA8Y2FudmFzCiAgICAgICAgICAgICAgY2xhc3M9InByZXZpZXctY2FudmFzIgogICAgICAgICAgICAgIGRhdGEtcGFnZT0iJHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX0iCiAgICAgICAgICAgID48L2NhbnZhcz4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7dGhpcy5wYWdlQ291bnQ+MSYmdGhpcy5pc0hvdmVyaW5nP01gCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcGFnZS1pbmRpY2F0b3IiPgogICAgICAgICAgICAgIFBhZ2UgJHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX0gb2YgJHt0aGlzLnBhZ2VDb3VudH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgICR7dGhpcy5wYWdlQ291bnQ+MCYmIXRoaXMuaXNIb3ZlcmluZz9NYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWluZm8iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVUZXh0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJldmlldy1wYWdlcyI+JHt0aGlzLnBhZ2VDb3VudH0gcGFnZSR7dGhpcy5wYWdlQ291bnQ+MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgJHt0aGlzLmNsaWNrYWJsZT9NYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkV5ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+VmlldyBQREY8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMH1oYW5kbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuY3VycmVudFByZXZpZXdQYWdlIT09MSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfWhhbmRsZU1vdXNlTW92ZShBKXtpZighdGhpcy5pc0hvdmVyaW5nfHx0aGlzLnBhZ2VDb3VudDw9MSlyZXR1cm47bGV0IEY9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhZT1BLmNsaWVudFgtRi5sZWZ0LFY9Ri53aWR0aCxTZT1NYXRoLm1heCgwLE1hdGgubWluKDEsYWUvVikpLHplPU1hdGguY2VpbChTZSp0aGlzLnBhZ2VDb3VudCl8fDE7emUhPT10aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPXplLHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNhY2hlRWxlbWVudHMoKSx0aGlzLnNldHVwUmVzaXplT2JzZXJ2ZXIoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhbnVwKCksdGhpcy5vYnNlcnZlciYmdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9dm9pZCAwfXNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKXtsZXQgQT17cm9vdDpudWxsLHJvb3RNYXJnaW46IjIwMHB4Iix0aHJlc2hvbGQ6LjAxfTt0aGlzLm9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihTT3QoRj0+e2ZvcihsZXQgYWUgb2YgRilhZS5pc0ludGVyc2VjdGluZyYmIXRoaXMucmVuZGVyZWQmJnRoaXMucGRmVXJsP3RoaXMubG9hZEFuZFJlbmRlclByZXZpZXcoKTohYWUuaXNJbnRlcnNlY3RpbmcmJnRoaXMucmVuZGVyZWR9LDEwMCksQSksdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMpfWFzeW5jIGxvYWRBbmRSZW5kZXJQcmV2aWV3KCl7aWYoISh0aGlzLnJlbmRlcmVkfHx0aGlzLmxvYWRpbmcpKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5lcnJvcj0hMSxSSS5tYXJrKGBwcmV2aWV3LWxvYWQtJHt0aGlzLnBkZlVybH1gKTt0cnl7dGhpcy5wZGZEb2N1bWVudD1hd2FpdCB0by5sb2FkRG9jdW1lbnQodGhpcy5wZGZVcmwpLHRoaXMucGFnZUNvdW50PXRoaXMucGRmRG9jdW1lbnQubnVtUGFnZXMsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MSx0aGlzLmxvYWRlZFBkZlVybD10aGlzLnBkZlVybCx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNhY2hlRWxlbWVudHMoKSxhd2FpdCB0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSx0aGlzLnJlbmRlcmVkPSEwO2xldCBBPVJJLm1lYXN1cmUoYHByZXZpZXctcmVuZGVyLSR7dGhpcy5wZGZVcmx9YCxgcHJldmlldy1sb2FkLSR7dGhpcy5wZGZVcmx9YCk7Y29uc29sZS5sb2coYFBERiBwcmV2aWV3IHJlbmRlcmVkIGluICR7QX1tc2ApfWNhdGNoKEEpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBsb2FkIFBERiBwcmV2aWV3OiIsQSksdGhpcy5lcnJvcj0hMCx0aGlzLmxvYWRpbmc9ITF9fX1zY2hlZHVsZVJlbmRlclBhZ2VzKCl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQ/dGhpcy5yZW5kZXJQYWdlc1Rhc2s/KHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITAsdGhpcy5yZW5kZXJQYWdlc1Rhc2spOih0aGlzLnJlbmRlclBhZ2VzVGFzaz0oYXN5bmMoKT0+e3RyeXthd2FpdCB0aGlzLnBlcmZvcm1SZW5kZXJQYWdlcygpfWNhdGNoKEEpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZW5kZXIgUERGIHByZXZpZXcgcGFnZXM6IixBKX19KSgpLmZpbmFsbHkoKCk9Pnt0aGlzLnJlbmRlclBhZ2VzVGFzaz1udWxsLHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQmJih0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSExLHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpKX0pLHRoaXMucmVuZGVyUGFnZXNUYXNrKTpQcm9taXNlLnJlc29sdmUoKX1hc3luYyBwZXJmb3JtUmVuZGVyUGFnZXMoKXtpZighdGhpcy5wZGZEb2N1bWVudClyZXR1cm47YXdhaXQgbmV3IFByb21pc2UoVj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFYpKTtsZXQgQT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LWNhbnZhcyIpO2lmKCFBKXtjb25zb2xlLndhcm4oIlByZXZpZXcgY2FudmFzIG5vdCBmb3VuZCBpbiBET00iKTtyZXR1cm59dGhpcy5jbGVhckNhbnZhc2VzKCksdGhpcy5jYWNoZUVsZW1lbnRzKCk7bGV0e2F2YWlsYWJsZVdpZHRoOkYsYXZhaWxhYmxlSGVpZ2h0OmFlfT10aGlzLmdldEF2YWlsYWJsZVNpemUoKTt0cnl7bGV0IFY9dGhpcy5jdXJyZW50UHJldmlld1BhZ2UsU2U9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKFYpLHplPVNlLmdldFZpZXdwb3J0KHtzY2FsZToxfSksVz16ZS5oZWlnaHQvemUud2lkdGgsTmU9MS40MTQsUmU9LjcwNyxYPTEuMjk0LEk9Ljc3MyxPPS4wNSxHPU1hdGguYWJzKFctTmUpPE5lKk8saj1NYXRoLmFicyhXLVJlKTxSZSpPLHNlPU1hdGguYWJzKFctWCk8WCpPLGtlPU1hdGguYWJzKFctSSk8SSpPO3RoaXMuaXNBNEZvcm1hdD1HfHxqfHxzZXx8a2UsY29uc29sZS5sb2coYFBERiBhc3BlY3QgcmF0aW86ICR7Vy50b0ZpeGVkKDMpfSwgc3RhbmRhcmQgZm9ybWF0OiAke3RoaXMuaXNBNEZvcm1hdH1gKTtsZXQgRGU9dGhpcy5pc0E0Rm9ybWF0P0Y6Ri0yNCxPZT10aGlzLmlzQTRGb3JtYXQ/YWU6YWUtMjQsVT1EZT4wP0RlL3plLndpZHRoOjAsQj1PZT4wP09lL3plLmhlaWdodDowLG9lPU1hdGgubWluKFV8fC41LEJ8fFV8fC41KSx2ZT1NYXRoLm1pbihvZSoyLDMpO2lmKCFOdW1iZXIuaXNGaW5pdGUodmUpfHx2ZTw9MCl7U2UuY2xlYW51cD8uKCk7cmV0dXJufWxldCB5ZT1TZS5nZXRWaWV3cG9ydCh7c2NhbGU6dmV9KSwkZT1CSS5hY3F1aXJlKHllLndpZHRoLHllLmhlaWdodCk7dGhpcy5jYW52YXNlcy5wdXNoKCRlKTtsZXQgbmU9e2NhbnZhc0NvbnRleHQ6JGUuY3R4LHZpZXdwb3J0OnllfTthd2FpdCBTZS5yZW5kZXIobmUpLnByb21pc2UsQS53aWR0aD15ZS53aWR0aCxBLmhlaWdodD15ZS5oZWlnaHQ7bGV0IHJlPURlLGdlPXllLmhlaWdodC95ZS53aWR0aCpEZTtpZihnZT5PZSl7bGV0IHJ0PU9lLHVlPXllLndpZHRoL3llLmhlaWdodCpPZTtBLnN0eWxlLndpZHRoPWAke3VlfXB4YCxBLnN0eWxlLmhlaWdodD1gJHtydH1weGB9ZWxzZSBBLnN0eWxlLndpZHRoPWAke3JlfXB4YCxBLnN0eWxlLmhlaWdodD1gJHtnZX1weGA7bGV0IEVlPUEuZ2V0Q29udGV4dCgiMmQiKTtFZSYmKEVlLmltYWdlU21vb3RoaW5nRW5hYmxlZD0hMCxFZS5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLEVlLmRyYXdJbWFnZSgkZS5jYW52YXMsMCwwKSksU2UuY2xlYW51cCgpfWNhdGNoKFYpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byByZW5kZXIgcGFnZSAke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfTpgLFYpfX1jbGVhckNhbnZhc2VzKCl7Zm9yKGxldCBBIG9mIHRoaXMuY2FudmFzZXMpQkkucmVsZWFzZShBKTt0aGlzLmNhbnZhc2VzPVtdfWNsZWFudXAoKXt0aGlzLmNsZWFyQ2FudmFzZXMoKSx0aGlzLnBkZkRvY3VtZW50JiYodG8ucmVsZWFzZURvY3VtZW50KHRoaXMubG9hZGVkUGRmVXJsPz90aGlzLnBkZlVybCksdGhpcy5wZGZEb2N1bWVudD1udWxsKSx0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSExLHRoaXMucGFnZUNvdW50PTAsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MSx0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5pc0E0Rm9ybWF0PSEwLHRoaXMucHJldmlld0NvbnRhaW5lcj1udWxsLHRoaXMuc3RhY2tFbGVtZW50PW51bGwsdGhpcy5sb2FkZWRQZGZVcmw9bnVsbCx0aGlzLnJlbmRlcmVkPSExLHRoaXMubG9hZGluZz0hMSx0aGlzLmVycm9yPSExfWhhbmRsZUNsaWNrKCl7dGhpcy5jbGlja2FibGUmJnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInBkZi1wcmV2aWV3LWNsaWNrIix7ZGV0YWlsOntwZGZVcmw6dGhpcy5wZGZVcmwscGFnZUNvdW50OnRoaXMucGFnZUNvdW50fSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIHVwZGF0ZWQoQSl7aWYoc3VwZXIudXBkYXRlZChBKSxBLmhhcygicGRmVXJsIikmJnRoaXMucGRmVXJsKXtsZXQgRj1BLmdldCgicGRmVXJsIik7aWYoRiYmdG8ucmVsZWFzZURvY3VtZW50KEYpLHRoaXMuY2xlYW51cCgpLHRoaXMucmVuZGVyZWQ9ITEsdGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MSx0aGlzLm9ic2VydmVyKXtsZXQgYWU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTthZS50b3A8d2luZG93LmlubmVySGVpZ2h0JiZhZS5ib3R0b20+MCYmdGhpcy5sb2FkQW5kUmVuZGVyUHJldmlldygpfX1BLmhhcygiY3VycmVudFByZXZpZXdQYWdlIikmJnRoaXMucmVuZGVyZWQmJmF3YWl0IHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpfWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgQT1bXTtyZXR1cm4gdGhpcy5jbGlja2FibGUmJihBLnB1c2goe25hbWU6IlZpZXcgUERGIixpY29uTmFtZToibHVjaWRlOkV5ZSIsYWN0aW9uOmFzeW5jKCk9Pnt0aGlzLmhhbmRsZUNsaWNrKCl9fSksQS5wdXNoKHtkaXZpZGVyOiEwfSkpLEEucHVzaCh7bmFtZToiT3BlbiBQREYgaW4gTmV3IFRhYiIsaWNvbk5hbWU6Imx1Y2lkZTpFeHRlcm5hbExpbmsiLGFjdGlvbjphc3luYygpPT57d2luZG93Lm9wZW4odGhpcy5wZGZVcmwsIl9ibGFuayIpfX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDb3B5IFBERiBVUkwiLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLnBkZlVybCl9fSx7bmFtZToiRG93bmxvYWQgUERGIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246YXN5bmMoKT0+e2xldCBGPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtGLmhyZWY9dGhpcy5wZGZVcmwsRi5kb3dubG9hZD10aGlzLnBkZlVybC5zcGxpdCgiLyIpLnBvcCgpfHwiZG9jdW1lbnQucGRmIixGLmNsaWNrKCl9fSksdGhpcy5wYWdlQ291bnQ+MCYmQS5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZTpgJHt0aGlzLnBhZ2VDb3VudH0gcGFnZSR7dGhpcy5wYWdlQ291bnQ+MT8icyI6IiJ9YCxpY29uTmFtZToibHVjaWRlOkZpbGVUZXh0IixkaXNhYmxlZDohMCxhY3Rpb246YXN5bmMoKT0+e319KSxBfWNhY2hlRWxlbWVudHMoKXt0aGlzLnByZXZpZXdDb250YWluZXJ8fCh0aGlzLnByZXZpZXdDb250YWluZXI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1jb250YWluZXIiKSksdGhpcy5zdGFja0VsZW1lbnR8fCh0aGlzLnN0YWNrRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wcmV2aWV3LXN0YWNrIikpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXshdGhpcy5wcmV2aWV3Q29udGFpbmVyfHx0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLnJlbmRlcmVkJiZ0aGlzLnBkZkRvY3VtZW50JiYhdGhpcy5sb2FkaW5nJiZ0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKSl9Z2V0QXZhaWxhYmxlU2l6ZSgpe2lmKHRoaXMuc3RhY2tFbGVtZW50fHwodGhpcy5zdGFja0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1zdGFjayIpKSwhdGhpcy5zdGFja0VsZW1lbnQpcmV0dXJue2F2YWlsYWJsZVdpZHRoOjIwMCxhdmFpbGFibGVIZWlnaHQ6MjYwfTtsZXQgQT10aGlzLnN0YWNrRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxGPU1hdGgubWF4KEEud2lkdGgsMCl8fDIwMCxhZT1NYXRoLm1heChBLmhlaWdodCwwKXx8MjYwO3JldHVybnthdmFpbGFibGVXaWR0aDpGLGF2YWlsYWJsZUhlaWdodDphZX19c3RhdGlje1UxKHIsYSl9fTtyZXR1cm4gUj1yfSkoKTtmZSgpO3ZhciBUT3Q9W3AuZGVmYXVsdFN0eWxlcyx0ZWAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgIGNvbnRhaW46IGxheW91dCBzdHlsZTsKICAgIH0KCiAgICAucGRmLXZpZXdlciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC50b29sYmFyIHsKICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgIGdhcDogMTZweDsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLnRvb2xiYXItZ3JvdXAgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDRweDsKICAgIH0KCiAgICAudG9vbGJhci1ncm91cC0tZW5kIHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgfQoKICAgIC5wYWdlLWluZm8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAucGFnZS1pbnB1dCB7CiAgICAgIHdpZHRoOiA0OHB4OwogICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMjIgNDclIDExJSkiLCJoc2woMjEwIDIwJSA5NiUpIil9OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgLnBhZ2UtaW5wdXQ6Zm9jdXMgewogICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAucGFnZS1zZXBhcmF0b3IgewogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDYwJSkiLCJoc2woMjE1IDE2JSA1MCUpIil9OwogICAgfQoKICAgIC56b29tLWxldmVsIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBtaW4td2lkdGg6IDQ4cHg7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgbWluLWhlaWdodDogMDsKICAgIH0KCiAgICAuc2lkZWJhciB7CiAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnNpZGViYXItaGVhZGVyIHsKICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC5zaWRlYmFyLWNsb3NlIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICB9CgogICAgLnNpZGViYXItY2xvc2U6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICB9CgogICAgLnNpZGViYXItY2xvc2UgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQoKICAgIC5zaWRlYmFyLWNvbnRlbnQgewogICAgICBmbGV4OiAxOwogICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICBtaW4taGVpZ2h0OiAwOwogICAgfQoKICAgIC50aHVtYm5haWwgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDIxNSAyMCUgMTglKSIpfTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAvKiBEZWZhdWx0IEE0IGFzcGVjdCByYXRpbyAoMjk3bW0gLyAyMTBtbSDiiYggMS40MTQpICovCiAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTc2cHggKiAxLjQxNCk7CiAgICB9CgogICAgLnRodW1ibmFpbDpsYXN0LWNoaWxkIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIH0KCiAgICAudGh1bWJuYWlsOmhvdmVyIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDM1JSkiKX07CiAgICB9CgogICAgLnRodW1ibmFpbC5hY3RpdmUgewogICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAudGh1bWJuYWlsLWNhbnZhcyB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgICB9CgogICAgLnRodW1ibmFpbC1udW1iZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogNHB4OwogICAgICByaWdodDogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjcpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgfQoKICAgIC52aWV3ZXItbWFpbiB7CiAgICAgIGZsZXg6IDE7CiAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAubG9hZGluZy1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBnYXA6IDE2cHg7CiAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAzMnB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBib3JkZXItdG9wLWNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQoKICAgIC5sb2FkaW5nLXRleHQgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnBhZ2VzLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogMjBweDsKICAgIH0KCiAgICAucGFnZS13cmFwcGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgIC5jYW52YXMtY29udGFpbmVyIHsKICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggJHtwLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB9CgogICAgLnBhZ2UtY2FudmFzIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICAgIH0KCiAgICAucGRmLXZpZXdlci53aXRoLXNpZGViYXIgLnZpZXdlci1tYWluIHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICB9CiAgYF07ZmUoKTt2YXIgX090PSgpPT5NYAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CgogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICB9CgogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CgogICAgZGVlcy1wZGYtdmlld2VyIHsKICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC52aWV3ZXItdGFsbCB7CiAgICAgIGhlaWdodDogODAwcHg7CiAgICB9CgogICAgLnZpZXdlci1jb21wYWN0IHsKICAgICAgaGVpZ2h0OiA1MDBweDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+RnVsbCBGZWF0dXJlZCBQREYgVmlld2VyIHdpdGggVG9vbGJhcjwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLXRhbGwiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9InRydWUiCiAgICAgICAgc2hvd1NpZGViYXI9ImZhbHNlIgogICAgICAgIGluaXRpYWxab29tPSJwYWdlLWZpdCIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlBERiBWaWV3ZXIgd2l0aCBTaWRlYmFyIE5hdmlnYXRpb248L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci10YWxsIgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJ0cnVlIgogICAgICAgIHNob3dTaWRlYmFyPSJ0cnVlIgogICAgICAgIGluaXRpYWxab29tPSJwYWdlLXdpZHRoIgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+Q29tcGFjdCBWaWV3ZXIgd2l0aG91dCBDb250cm9sczwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLWNvbXBhY3QiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9ImZhbHNlIgogICAgICAgIHNob3dTaWRlYmFyPSJmYWxzZSIKICAgICAgICBpbml0aWFsWm9vbT0iYXV0byIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CiAgPC9kaXY+CmA7ZmUoKTtGdCgpO3ZhciBiYT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LHAxPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxkbjE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLXBkZi12aWV3ZXIiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXSx2LHk9W10sdz1bXSxFLEM9W10sej1bXSxQLF89W10sJD1bXSxILEw9W10saz1bXSxOLFM9W10sVD1bXSxSLEE9W10sRj1bXSxhZSxWPVtdLFNlPVtdLHplLFc9W10sTmU9W107dmFyIFJlPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgWD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOlN0cmluZ30pXSxmPVtEKHt0eXBlOk51bWJlcn0pXSxkPVtEKHt0eXBlOlN0cmluZ30pXSxiPVtEKHt0eXBlOkJvb2xlYW59KV0sdj1bRCh7dHlwZTpCb29sZWFufSldLEU9W0Qoe3R5cGU6TnVtYmVyfSldLFA9W0Qoe3R5cGU6TnVtYmVyfSldLEg9W0Qoe3R5cGU6TnVtYmVyfSldLE49W0Qoe3R5cGU6Qm9vbGVhbn0pXSxSPVtEKHt0eXBlOlN0cmluZ30pXSxhZT1bRCh7dHlwZTpBcnJheX0pXSx6ZT1bRCh7dHlwZTpBcnJheX0pXSxiYSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ST0+InBkZlVybCJpbiBJLGdldDpJPT5JLnBkZlVybCxzZXQ6KEksTyk9PntJLnBkZlVybD1PfX0sbWV0YWRhdGE6WH0scyxsKSxiYSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxQYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpJPT4iaW5pdGlhbFBhZ2UiaW4gSSxnZXQ6ST0+SS5pbml0aWFsUGFnZSxzZXQ6KEksTyk9PntJLmluaXRpYWxQYWdlPU99fSxtZXRhZGF0YTpYfSxjLHUpLGJhKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbFpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkk9PiJpbml0aWFsWm9vbSJpbiBJLGdldDpJPT5JLmluaXRpYWxab29tLHNldDooSSxPKT0+e0kuaW5pdGlhbFpvb209T319LG1ldGFkYXRhOlh9LGgsZyksYmEodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VG9vbGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ST0+InNob3dUb29sYmFyImluIEksZ2V0Okk9Pkkuc2hvd1Rvb2xiYXIsc2V0OihJLE8pPT57SS5zaG93VG9vbGJhcj1PfX0sbWV0YWRhdGE6WH0seCxtKSxiYSh0aGlzLG51bGwsdix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTaWRlYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpJPT4ic2hvd1NpZGViYXIiaW4gSSxnZXQ6ST0+SS5zaG93U2lkZWJhcixzZXQ6KEksTyk9PntJLnNob3dTaWRlYmFyPU99fSxtZXRhZGF0YTpYfSx5LHcpLGJhKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkk9PiJjdXJyZW50UGFnZSJpbiBJLGdldDpJPT5JLmN1cnJlbnRQYWdlLHNldDooSSxPKT0+e0kuY3VycmVudFBhZ2U9T319LG1ldGFkYXRhOlh9LEMseiksYmEodGhpcyxudWxsLFAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0b3RhbFBhZ2VzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpJPT4idG90YWxQYWdlcyJpbiBJLGdldDpJPT5JLnRvdGFsUGFnZXMsc2V0OihJLE8pPT57SS50b3RhbFBhZ2VzPU99fSxtZXRhZGF0YTpYfSxfLCQpLGJhKHRoaXMsbnVsbCxILHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFpvb20iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkk9PiJjdXJyZW50Wm9vbSJpbiBJLGdldDpJPT5JLmN1cnJlbnRab29tLHNldDooSSxPKT0+e0kuY3VycmVudFpvb209T319LG1ldGFkYXRhOlh9LEwsayksYmEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpJPT4ibG9hZGluZyJpbiBJLGdldDpJPT5JLmxvYWRpbmcsc2V0OihJLE8pPT57SS5sb2FkaW5nPU99fSxtZXRhZGF0YTpYfSxTLFQpLGJhKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9jdW1lbnRJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ST0+ImRvY3VtZW50SWQiaW4gSSxnZXQ6ST0+SS5kb2N1bWVudElkLHNldDooSSxPKT0+e0kuZG9jdW1lbnRJZD1PfX0sbWV0YWRhdGE6WH0sQSxGKSxiYSh0aGlzLG51bGwsYWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHVtYm5haWxEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpJPT4idGh1bWJuYWlsRGF0YSJpbiBJLGdldDpJPT5JLnRodW1ibmFpbERhdGEsc2V0OihJLE8pPT57SS50aHVtYm5haWxEYXRhPU99fSxtZXRhZGF0YTpYfSxWLFNlKSxiYSh0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ST0+InBhZ2VEYXRhImluIEksZ2V0Okk9PkkucGFnZURhdGEsc2V0OihJLE8pPT57SS5wYWdlRGF0YT1PfX0sbWV0YWRhdGE6WH0sVyxOZSksYmEobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6WH0sbnVsbCxhKSxSZT1yPWUudmFsdWUsWCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpYfSl9c3RhdGljIGRlbW89X090O3N0YXRpYyBkZW1vR3JvdXA9IlBERiI7c3RhdGljIHN0eWxlcz1UT3Q7I2U9cDEodGhpcyxzLCIiKTtnZXQgcGRmVXJsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBkZlVybChYKXt0aGlzLiNlPVh9I3Q9KHAxKHRoaXMsbCkscDEodGhpcyxjLDEpKTtnZXQgaW5pdGlhbFBhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaW5pdGlhbFBhZ2UoWCl7dGhpcy4jdD1YfSNhPShwMSh0aGlzLHUpLHAxKHRoaXMsaCwiYXV0byIpKTtnZXQgaW5pdGlhbFpvb20oKXtyZXR1cm4gdGhpcy4jYX1zZXQgaW5pdGlhbFpvb20oWCl7dGhpcy4jYT1YfSNyPShwMSh0aGlzLGcpLHAxKHRoaXMseCwhMCkpO2dldCBzaG93VG9vbGJhcigpe3JldHVybiB0aGlzLiNyfXNldCBzaG93VG9vbGJhcihYKXt0aGlzLiNyPVh9I2k9KHAxKHRoaXMsbSkscDEodGhpcyx5LCExKSk7Z2V0IHNob3dTaWRlYmFyKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dTaWRlYmFyKFgpe3RoaXMuI2k9WH0jbz0ocDEodGhpcyx3KSxwMSh0aGlzLEMsMSkpO2dldCBjdXJyZW50UGFnZSgpe3JldHVybiB0aGlzLiNvfXNldCBjdXJyZW50UGFnZShYKXt0aGlzLiNvPVh9I3M9KHAxKHRoaXMseikscDEodGhpcyxfLDEpKTtnZXQgdG90YWxQYWdlcygpe3JldHVybiB0aGlzLiNzfXNldCB0b3RhbFBhZ2VzKFgpe3RoaXMuI3M9WH0jbj0ocDEodGhpcywkKSxwMSh0aGlzLEwsMSkpO2dldCBjdXJyZW50Wm9vbSgpe3JldHVybiB0aGlzLiNufXNldCBjdXJyZW50Wm9vbShYKXt0aGlzLiNuPVh9I2w9KHAxKHRoaXMsaykscDEodGhpcyxTLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbG9hZGluZyhYKXt0aGlzLiNsPVh9I2M9KHAxKHRoaXMsVCkscDEodGhpcyxBLCIiKSk7Z2V0IGRvY3VtZW50SWQoKXtyZXR1cm4gdGhpcy4jY31zZXQgZG9jdW1lbnRJZChYKXt0aGlzLiNjPVh9I2Q9KHAxKHRoaXMsRikscDEodGhpcyxWLFtdKSk7Z2V0IHRodW1ibmFpbERhdGEoKXtyZXR1cm4gdGhpcy4jZH1zZXQgdGh1bWJuYWlsRGF0YShYKXt0aGlzLiNkPVh9I2Y9KHAxKHRoaXMsU2UpLHAxKHRoaXMsVyxbXSkpO2dldCBwYWdlRGF0YSgpe3JldHVybiB0aGlzLiNmfXNldCBwYWdlRGF0YShYKXt0aGlzLiNmPVh9cGRmRG9jdW1lbnQ9cDEodGhpcyxOZSk7cmVuZGVyU3RhdGU9ImlkbGUiO3JlbmRlckFib3J0Q29udHJvbGxlcj1udWxsO3BhZ2VSZW5kZXJpbmc9ITE7cGFnZU51bVBlbmRpbmc9bnVsbDtjdXJyZW50UmVuZGVyVGFzaz1udWxsO2N1cnJlbnRSZW5kZXJQcm9taXNlPW51bGw7dGh1bWJuYWlsUmVuZGVyVGFza3M9W107cGFnZVJlbmRlclRhc2tzPW5ldyBNYXA7Y2FudmFzO2N0eDt2aWV3ZXJNYWluPW51bGw7cmVzaXplT2JzZXJ2ZXI7aW50ZXJzZWN0aW9uT2JzZXJ2ZXI7c2Nyb2xsVGhyb3R0bGVUaW1lb3V0O3ZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6MCxoZWlnaHQ6MH07dmlld3BvcnRNb2RlPSJhdXRvIjtNQU5VQUxfTUlOX1pPT009LjU7TUFOVUFMX01BWF9aT09NPTM7QUJTT0xVVEVfTUlOX1pPT009LjE7QUJTT0xVVEVfTUFYX1pPT009NDtQQUdFX0dBUD0yMDtSRU5ERVJfQlVGRkVSPTM7Y29uc3RydWN0b3IoKXtzdXBlcigpfXJlbmRlcigpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJwZGYtdmlld2VyICR7dGhpcy5zaG93U2lkZWJhcj8id2l0aC1zaWRlYmFyIjoiIn0iPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj9NYAogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucHJldmlvdXNQYWdlfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5jdXJyZW50UGFnZTw9MX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpDaGV2cm9uTGVmdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiCiAgICAgICAgICAgICAgICAgIG1pbj0iMSIKICAgICAgICAgICAgICAgICAgbWF4PSIke3RoaXMudG90YWxQYWdlc30iCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLmN1cnJlbnRQYWdlKX0KICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlUGFnZUlucHV0fQogICAgICAgICAgICAgICAgICBjbGFzcz0icGFnZS1pbnB1dCIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS10b3RhbCI+JHt0aGlzLnRvdGFsUGFnZXN9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMubmV4dFBhZ2V9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmN1cnJlbnRQYWdlPj10aGlzLnRvdGFsUGFnZXN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Q2hldnJvblJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnpvb21PdXR9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tT3V0fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21PdXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucmVzZXRab29tfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ6b29tLWxldmVsIj4ke01hdGgucm91bmQodGhpcy5jdXJyZW50Wm9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy56b29tSW59CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tSW59CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmZpdFRvUGFnZX0KICAgICAgICAgICAgICAgIHRpdGxlPSJGaXQgdG8gcGFnZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5maXRUb1dpZHRofQogICAgICAgICAgICAgICAgdGl0bGU9IkZpdCB0byB3aWR0aCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBcnJvd0xlZnRSaWdodCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCB0b29sYmFyLWdyb3VwLS1lbmQiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNob3dTaWRlYmFyPSF0aGlzLnNob3dTaWRlYmFyfQogICAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5zaG93U2lkZWJhcj8iSGlkZSB0aHVtYm5haWxzIjoiU2hvdyB0aHVtYm5haWxzIn0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSIke3RoaXMuc2hvd1NpZGViYXI/Imx1Y2lkZTpTaWRlYmFyQ2xvc2UiOiJsdWNpZGU6U2lkZWJhciJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmRvd25sb2FkUGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IkRvd25sb2FkIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkRvd25sb2FkIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnByaW50UGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IlByaW50IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlByaW50ZXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnNob3dTaWRlYmFyP01gCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuPlBhZ2VzPC9zcGFuPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ic2lkZWJhci1jbG9zZSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd1NpZGViYXI9ITF9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICR7RWEua2V5ZWQodGhpcy5kb2N1bWVudElkLE1gCiAgICAgICAgICAgICAgICAgICR7RWEucmVwZWF0KHRoaXMudGh1bWJuYWlsRGF0YSxYPT5YLnBhZ2UsWD0+TWAKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRodW1ibmFpbCAke3RoaXMuY3VycmVudFBhZ2U9PT1YLnBhZ2U/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXBhZ2U9IiR7WC5wYWdlfSIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVUaHVtYm5haWxDbGlja30KICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0idGh1bWJuYWlsLWNhbnZhcyIgZGF0YS1wYWdlPSIke1gucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGh1bWJuYWlsLW51bWJlciI+JHtYLnBhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1tYWluIiBAc2Nyb2xsPSR7dGhpcy5oYW5kbGVTY3JvbGx9PgogICAgICAgICAgICAke3RoaXMubG9hZGluZz9NYAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXRleHQiPkxvYWRpbmcgUERGLi4uPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6TWAKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgJHtFYS5yZXBlYXQodGhpcy5wYWdlRGF0YSxYPT5YLnBhZ2UsWD0+TWAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLXdyYXBwZXIiIGRhdGEtcGFnZT0iJHtYLnBhZ2V9Ij4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbnZhcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJwYWdlLWNhbnZhcyIgZGF0YS1wYWdlPSIke1gucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmVuc3VyZVZpZXdlclJlZnMoKSx0aGlzLnBkZlVybCYmKHRoaXMuZG9jdW1lbnRJZD1gJHt0aGlzLnBkZlVybH0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxhd2FpdCB0aGlzLmxvYWRQZGYoKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMCx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj12b2lkIDAsdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQpLHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0PXZvaWQgMCksdGhpcy5yZW5kZXJTdGF0ZT0iZGlzcG9zZWQiLGF3YWl0IHRoaXMuY2xlYW51cERvY3VtZW50KCksdGhpcy5jYW52YXM9dm9pZCAwLHRoaXMuY3R4PXZvaWQgMH1hc3luYyB1cGRhdGVkKFgpe2lmKHN1cGVyLnVwZGF0ZWQoWCksWC5oYXMoInBkZlVybCIpJiZ0aGlzLnBkZlVybCl7bGV0IEk9WC5nZXQoInBkZlVybCIpO0kmJnRvLnJlbGVhc2VEb2N1bWVudChJKSx0aGlzLmRvY3VtZW50SWQ9YCR7dGhpcy5wZGZVcmx9LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWAsYXdhaXQgdGhpcy5sb2FkUGRmKCl9WC5oYXMoInNob3dTaWRlYmFyIikmJnRoaXMuc2hvd1NpZGViYXImJnRoaXMucGRmRG9jdW1lbnQmJihhd2FpdCBuZXcgUHJvbWlzZShJPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoSSkpLHRoaXMudGh1bWJuYWlsRGF0YS5mb3JFYWNoKEk9PkkucmVuZGVyZWQ9ITEpLGF3YWl0IHRoaXMucmVuZGVyVGh1bWJuYWlscygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpLHRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcodGhpcy5jdXJyZW50UGFnZSkpfWFzeW5jIGxvYWRQZGYoKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZW5kZXJTdGF0ZT0ibG9hZGluZyI7dHJ5e2F3YWl0IHRoaXMuY2xlYW51cERvY3VtZW50KCksdGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcjtsZXQgWD10aGlzLnJlbmRlckFib3J0Q29udHJvbGxlci5zaWduYWw7aWYodGhpcy5wZGZEb2N1bWVudD1hd2FpdCB0by5sb2FkRG9jdW1lbnQodGhpcy5wZGZVcmwpLFguYWJvcnRlZHx8KHRoaXMudG90YWxQYWdlcz10aGlzLnBkZkRvY3VtZW50Lm51bVBhZ2VzLHRoaXMuY3VycmVudFBhZ2U9dGhpcy5pbml0aWFsUGFnZSx0aGlzLnJlc29sdmVJbml0aWFsVmlld3BvcnRNb2RlKCksdGhpcy50aHVtYm5haWxEYXRhPUFycmF5LmZyb20oe2xlbmd0aDp0aGlzLnRvdGFsUGFnZXN9LChJLE8pPT4oe3BhZ2U6TysxLHJlbmRlcmVkOiExfSkpLHRoaXMucGFnZURhdGE9QXJyYXkuZnJvbSh7bGVuZ3RoOnRoaXMudG90YWxQYWdlc30sKEksTyk9Pih7cGFnZTpPKzEscmVuZGVyZWQ6ITEscmVuZGVyaW5nOiExfSkpLHRoaXMubG9hZGluZz0hMSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZW5zdXJlVmlld2VyUmVmcygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpLGF3YWl0IG5ldyBQcm9taXNlKEk9PnJlcXVlc3RBbmltYXRpb25GcmFtZShJKSksWC5hYm9ydGVkKXx8KHRoaXMucmVuZGVyU3RhdGU9InJlbmRlcmluZy1tYWluIixhd2FpdCB0aGlzLnJlbmRlclZpc2libGVQYWdlcygpLFguYWJvcnRlZCl8fCh0aGlzLmluaXRpYWxQYWdlPjEmJmF3YWl0IHRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuaW5pdGlhbFBhZ2UsITEpLHRoaXMuc2hvd1NpZGViYXImJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IG5ldyBQcm9taXNlKEk9PnJlcXVlc3RBbmltYXRpb25GcmFtZShJKSksWC5hYm9ydGVkfHwoYXdhaXQgdGhpcy5yZW5kZXJUaHVtYm5haWxzKCksWC5hYm9ydGVkKSkpKXJldHVybjt0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJlZCJ9Y2F0Y2goWCl7Y29uc29sZS5lcnJvcigiRXJyb3IgbG9hZGluZyBQREY6IixYKSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5yZW5kZXJTdGF0ZT0iZXJyb3IifX1zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCl7dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciYmdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoST0+e2ZvcihsZXQgTyBvZiBJKXtsZXQgRz1PLnRhcmdldCxqPXBhcnNlSW50KEcuZGF0YXNldC5wYWdlfHwiMSIpO08uaXNJbnRlcnNlY3RpbmcmJnRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKGopfX0se3Jvb3Q6dGhpcy52aWV3ZXJNYWluLHJvb3RNYXJnaW46YCR7dGhpcy5SRU5ERVJfQlVGRkVSKjEwMH1weCAwcHhgLHRocmVzaG9sZDouMDF9KTtsZXQgWD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wYWdlLXdyYXBwZXIiKTtYJiZYLmZvckVhY2goST0+e3RoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/Lm9ic2VydmUoSSl9KX1hc3luYyByZW5kZXJWaXNpYmxlUGFnZXMoKXtpZighdGhpcy52aWV3ZXJNYWluKXJldHVybjtsZXQgWD10aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0O2ZvcihsZXQgSSBvZiB0aGlzLnBhZ2VEYXRhKXtsZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke0kucGFnZX0iXWApO2lmKCFPKWNvbnRpbnVlO2xldCBHPU8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaj10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksc2U9Ry50b3Atai50b3Asa2U9c2UrRy5oZWlnaHQsRGU9dGhpcy5SRU5ERVJfQlVGRkVSKlg7a2U+PS1EZSYmc2U8PVgrRGUmJmF3YWl0IHRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKEkucGFnZSl9fWFzeW5jIHJlbmRlclBhZ2VJZk5lZWRlZChYKXtsZXQgST10aGlzLnBhZ2VEYXRhLmZpbmQoTz0+Ty5wYWdlPT09WCk7aWYoISghSXx8SS5yZW5kZXJlZHx8SS5yZW5kZXJpbmcpKXtJLnJlbmRlcmluZz0hMDt0cnl7bGV0IE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS1jYW52YXNbZGF0YS1wYWdlPSIke1h9Il1gKTtpZighTyl7SS5yZW5kZXJpbmc9ITE7cmV0dXJufWxldCBHPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShYKSxqPXRoaXMuY29tcHV0ZVZpZXdwb3J0KEcpO08uaGVpZ2h0PWouaGVpZ2h0LE8ud2lkdGg9ai53aWR0aCxPLnN0eWxlLndpZHRoPWAke2oud2lkdGh9cHhgLE8uc3R5bGUuaGVpZ2h0PWAke2ouaGVpZ2h0fXB4YDtsZXQgc2U9Ty5nZXRDb250ZXh0KCIyZCIpO2lmKCFzZSl7Ry5jbGVhbnVwPy4oKSxJLnJlbmRlcmluZz0hMTtyZXR1cm59bGV0IGtlPXtjYW52YXNDb250ZXh0OnNlLHZpZXdwb3J0Omp9LERlPUcucmVuZGVyKGtlKTt0aGlzLnBhZ2VSZW5kZXJUYXNrcy5zZXQoWCxEZSksYXdhaXQgRGUucHJvbWlzZSxHLmNsZWFudXA/LigpLEkucmVuZGVyZWQ9ITAsSS5yZW5kZXJpbmc9ITEsdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKFgpLHRoaXMucmVxdWVzdFVwZGF0ZSgicGFnZURhdGEiKX1jYXRjaChPKXtPPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoYEVycm9yIHJlbmRlcmluZyBwYWdlICR7WH06YCxPKSxJLnJlbmRlcmluZz0hMSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5kZWxldGUoWCl9fX1oYW5kbGVTY3JvbGw9KCk9Pnt0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0KSx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dD13aW5kb3cuc2V0VGltZW91dCgoKT0+e3RoaXMudXBkYXRlQ3VycmVudFBhZ2UoKSx0aGlzLnJlbmRlclZpc2libGVQYWdlcygpfSw1MCl9O3VwZGF0ZUN1cnJlbnRQYWdlKCl7aWYoIXRoaXMudmlld2VyTWFpbilyZXR1cm47bGV0IFg9dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcCxJPXRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQsTz1YK0kvMjtmb3IobGV0IEc9MDtHPHRoaXMucGFnZURhdGEubGVuZ3RoO0crKyl7bGV0IGo9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT0iJHtHKzF9Il1gKTtpZighailjb250aW51ZTtsZXQgc2U9ai5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxrZT10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksRGU9c2UudG9wLWtlLnRvcCtYLE9lPURlK3NlLmhlaWdodDtpZihPPj1EZSYmTzw9T2Upe3RoaXMuY3VycmVudFBhZ2UhPT1HKzEmJih0aGlzLmN1cnJlbnRQYWdlPUcrMSx0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNjcm9sbFRodW1ibmFpbEludG9WaWV3KEcrMSkpO2JyZWFrfX19c2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcoWCl7bGV0IEk9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAudGh1bWJuYWlsW2RhdGEtcGFnZT0iJHtYfSJdYCksTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zaWRlYmFyLWNvbnRlbnQiKTtpZihJJiZPKXtsZXQgRz1JLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGo9Ty5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzZT1HLnRvcDxqLnRvcCxrZT1HLmJvdHRvbT5qLmJvdHRvbTtpZihzZXx8a2Upe2xldCBEZT1JLm9mZnNldFRvcCxPZT1JLm9mZnNldEhlaWdodCxVPU8uY2xpZW50SGVpZ2h0LEI9RGUtVS8yK09lLzI7Ty5zY3JvbGxUbyh7dG9wOk1hdGgubWF4KDAsQiksYmVoYXZpb3I6InNtb290aCJ9KX19fWFzeW5jIHNjcm9sbFRvUGFnZShYLEk9ITApe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT0iJHtYfSJdYCk7aWYoTyYmdGhpcy52aWV3ZXJNYWluKXtsZXQgRz1PLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGo9dGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGtlPXRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3ArKEcudG9wLWoudG9wKS10aGlzLnZpZXdlck1haW4uY2xpZW50VG9wO0k/dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvKHt0b3A6a2UsYmVoYXZpb3I6InNtb290aCJ9KTp0aGlzLnZpZXdlck1haW4uc2Nyb2xsVG9wPWtlLHRoaXMuY3VycmVudFBhZ2U9WCx0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNjcm9sbFRodW1ibmFpbEludG9WaWV3KFgpLGF3YWl0IHRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKFgpfX1hc3luYyByZW5kZXJUaHVtYm5haWxzKCl7aWYoIXRoaXMucGRmRG9jdW1lbnR8fHRoaXMudGh1bWJuYWlsRGF0YS5sZW5ndGg+MCYmdGhpcy50aHVtYm5haWxEYXRhLmV2ZXJ5KEk9PkkucmVuZGVyZWQpfHx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj8uc2lnbmFsLmFib3J0ZWQpcmV0dXJuO2xldCBYPXRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPy5zaWduYWw7dGhpcy5yZW5kZXJTdGF0ZT0icmVuZGVyaW5nLXRodW1icyI7Zm9yKGxldCBJIG9mIHRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3MpdHJ5e0kuY2FuY2VsKCl9Y2F0Y2h7fXRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W107dHJ5e2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IEk9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIudGh1bWJuYWlsIiksTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi50aHVtYm5haWwtY2FudmFzIiksRz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zaWRlYmFyLWNvbnRlbnQiKSxqPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKEcpLGtlPTIwMC0ocGFyc2VGbG9hdChqLnBhZGRpbmdMZWZ0KStwYXJzZUZsb2F0KGoucGFkZGluZ1JpZ2h0KSktNDtmb3IobGV0IERlIG9mIEFycmF5LmZyb20oTykpe2xldCBPZT1EZS5nZXRDb250ZXh0KCIyZCIpO09lJiZPZS5jbGVhclJlY3QoMCwwLERlLndpZHRoLERlLmhlaWdodCl9Zm9yKGxldCBEZT0wO0RlPE8ubGVuZ3RoO0RlKyspe2lmKFg/LmFib3J0ZWQpcmV0dXJuO2xldCBPZT1PW0RlXSxVPUlbRGVdLEI9cGFyc2VJbnQoT2UuZGF0YXNldC5wYWdlfHwiMSIpLG9lPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShCKSx2ZT1vZS5nZXRWaWV3cG9ydCh7c2NhbGU6MX0pLHllPWtlL3ZlLndpZHRoLCRlPW9lLmdldFZpZXdwb3J0KHtzY2FsZTp5ZX0pO09lLndpZHRoPSRlLndpZHRoLE9lLmhlaWdodD0kZS5oZWlnaHQsT2Uuc3R5bGUud2lkdGg9YCR7JGUud2lkdGh9cHhgLE9lLnN0eWxlLmhlaWdodD1gJHskZS5oZWlnaHR9cHhgLFUuc3R5bGUuaGVpZ2h0PWAkeyRlLmhlaWdodH1weGAsVS5zdHlsZS5taW5IZWlnaHQ9YCR7JGUuaGVpZ2h0fXB4YDtsZXQgbmU9T2UuZ2V0Q29udGV4dCgiMmQiKTtpZighbmUpe29lLmNsZWFudXA/LigpO2NvbnRpbnVlfWxldCByZT17Y2FudmFzQ29udGV4dDpuZSx2aWV3cG9ydDokZX0sZ2U9b2UucmVuZGVyKHJlKTt0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzLnB1c2goZ2UpLGF3YWl0IGdlLnByb21pc2Usb2UuY2xlYW51cD8uKCk7bGV0IEVlPXRoaXMudGh1bWJuYWlsRGF0YS5maW5kKHJ0PT5ydC5wYWdlPT09Qik7RWUmJihFZS5yZW5kZXJlZD0hMCl9dGhpcy5yZXF1ZXN0VXBkYXRlKCJ0aHVtYm5haWxEYXRhIil9Y2F0Y2goSSl7ST8ubmFtZSE9PSJSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24iJiZjb25zb2xlLmVycm9yKCJFcnJvciByZW5kZXJpbmcgdGh1bWJuYWlsczoiLEkpfWZpbmFsbHl7dGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXX19cHJldmlvdXNQYWdlKCl7dGhpcy5jdXJyZW50UGFnZT4xJiZ0aGlzLnNjcm9sbFRvUGFnZSh0aGlzLmN1cnJlbnRQYWdlLTEpfW5leHRQYWdlKCl7dGhpcy5jdXJyZW50UGFnZTx0aGlzLnRvdGFsUGFnZXMmJnRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuY3VycmVudFBhZ2UrMSl9aGFuZGxlVGh1bWJuYWlsQ2xpY2soWCl7bGV0IEk9WC5jdXJyZW50VGFyZ2V0LE89cGFyc2VJbnQoSS5kYXRhc2V0LnBhZ2V8fCIxIik7dGhpcy5zY3JvbGxUb1BhZ2UoTyl9aGFuZGxlUGFnZUlucHV0KFgpe2xldCBJPVgudGFyZ2V0LE89cGFyc2VJbnQoSS52YWx1ZSk7dGhpcy5zY3JvbGxUb1BhZ2UoTyl9em9vbUluKCl7bGV0IFg9TWF0aC5taW4odGhpcy5NQU5VQUxfTUFYX1pPT00sdGhpcy5jdXJyZW50Wm9vbSoxLjIpO3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLFghPT10aGlzLmN1cnJlbnRab29tJiYodGhpcy5jdXJyZW50Wm9vbT1YLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpKX16b29tT3V0KCl7bGV0IFg9TWF0aC5tYXgodGhpcy5NQU5VQUxfTUlOX1pPT00sdGhpcy5jdXJyZW50Wm9vbS8xLjIpO3RoaXMudmlld3BvcnRNb2RlPSJjdXN0b20iLFghPT10aGlzLmN1cnJlbnRab29tJiYodGhpcy5jdXJyZW50Wm9vbT1YLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpKX1yZXNldFpvb20oKXt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIix0aGlzLmN1cnJlbnRab29tPTEsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9Zml0VG9QYWdlKCl7dGhpcy52aWV3cG9ydE1vZGU9InBhZ2UtZml0Iix0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1maXRUb1dpZHRoKCl7dGhpcy52aWV3cG9ydE1vZGU9InBhZ2Utd2lkdGgiLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfXJlUmVuZGVyQWxsUGFnZXMoKXt0aGlzLnBhZ2VEYXRhLmZvckVhY2goWD0+e1gucmVuZGVyZWQ9ITEsWC5yZW5kZXJpbmc9ITF9KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5mb3JFYWNoKFg9Pnt0cnl7WC5jYW5jZWwoKX1jYXRjaHt9fSksdGhpcy5wYWdlUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLnJlbmRlclZpc2libGVQYWdlcygpfSl9ZG93bmxvYWRQZGYoKXtsZXQgWD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7WC5ocmVmPXRoaXMucGRmVXJsLFguZG93bmxvYWQ9dGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKXx8ImRvY3VtZW50LnBkZiIsWC5jbGljaygpfXByaW50UGRmKCl7d2luZG93Lm9wZW4odGhpcy5wZGZVcmwsIl9ibGFuayIpPy5wcmludCgpfWdldENvbnRleHRNZW51SXRlbXMoKXtyZXR1cm5be25hbWU6Ik9wZW4gUERGIGluIE5ldyBUYWIiLGljb25OYW1lOiJsdWNpZGU6RXh0ZXJuYWxMaW5rIixhY3Rpb246YXN5bmMoKT0+e3dpbmRvdy5vcGVuKHRoaXMucGRmVXJsLCJfYmxhbmsiKX19LHtkaXZpZGVyOiEwfSx7bmFtZToiQ29weSBQREYgVVJMIixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjphc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy5wZGZVcmwpfX0se25hbWU6IkRvd25sb2FkIFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpEb3dubG9hZCIsYWN0aW9uOmFzeW5jKCk9Pnt0aGlzLmRvd25sb2FkUGRmKCl9fSx7bmFtZToiUHJpbnQgUERGIixpY29uTmFtZToibHVjaWRlOlByaW50ZXIiLGFjdGlvbjphc3luYygpPT57dGhpcy5wcmludFBkZigpfX1dfWdldCBjYW5ab29tSW4oKXtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tInx8dGhpcy5jdXJyZW50Wm9vbTx0aGlzLk1BTlVBTF9NQVhfWk9PTX1nZXQgY2FuWm9vbU91dCgpe3JldHVybiB0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20ifHx0aGlzLmN1cnJlbnRab29tPnRoaXMuTUFOVUFMX01JTl9aT09NfWVuc3VyZVZpZXdlclJlZnMoKXt0aGlzLnZpZXdlck1haW58fCh0aGlzLnZpZXdlck1haW49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlld2VyLW1haW4iKSksdGhpcy52aWV3ZXJNYWluJiYhdGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCksdGhpcy5wZGZEb2N1bWVudCYmdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy52aWV3ZXJNYWluKSx0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKSx0aGlzLnZpZXdlck1haW4uYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLFg9PntsZXQgST1YLmN1cnJlbnRUYXJnZXQsTz1JLnNjcm9sbFRvcCxHPUkuc2Nyb2xsSGVpZ2h0LGo9SS5jbGllbnRIZWlnaHQsc2U9WC5kZWx0YVksa2U9Tz09PTAsRGU9TWF0aC5hYnMoTytqLUcpPDE7c2U8MCYmIWtlfHxzZT4wJiYhRGU/WC5zdG9wUHJvcGFnYXRpb24oKTooc2U8MCYma2V8fHNlPjAmJkRlKSYmKFgucHJldmVudERlZmF1bHQoKSxYLnN0b3BQcm9wYWdhdGlvbigpKX0se3Bhc3NpdmU6ITF9KSl9bWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpe2lmKCF0aGlzLnZpZXdlck1haW4pe3RoaXMudmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDowLGhlaWdodDowfTtyZXR1cm59bGV0IFg9Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnZpZXdlck1haW4pLEk9cGFyc2VGbG9hdChYLnBhZGRpbmdMZWZ0fHwiMCIpK3BhcnNlRmxvYXQoWC5wYWRkaW5nUmlnaHR8fCIwIiksTz1wYXJzZUZsb2F0KFgucGFkZGluZ1RvcHx8IjAiKStwYXJzZUZsb2F0KFgucGFkZGluZ0JvdHRvbXx8IjAiKSxHPU1hdGgubWF4KHRoaXMudmlld2VyTWFpbi5jbGllbnRXaWR0aC1JLDApLGo9TWF0aC5tYXgodGhpcy52aWV3ZXJNYWluLmNsaWVudEhlaWdodC1PLDApO3RoaXMudmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDpHLGhlaWdodDpqfX1yZXNvbHZlSW5pdGlhbFZpZXdwb3J0TW9kZSgpe3R5cGVvZiB0aGlzLmluaXRpYWxab29tPT0ibnVtYmVyIj8odGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsdGhpcy5jdXJyZW50Wm9vbT10aGlzLm5vcm1hbGl6ZVpvb20odGhpcy5pbml0aWFsWm9vbSwhMCkpOnRoaXMuaW5pdGlhbFpvb209PT0icGFnZS13aWR0aCI/dGhpcy52aWV3cG9ydE1vZGU9InBhZ2Utd2lkdGgiOnRoaXMuaW5pdGlhbFpvb209PT0icGFnZS1maXQifHx0aGlzLmluaXRpYWxab29tPT09ImF1dG8iP3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLWZpdCI6dGhpcy52aWV3cG9ydE1vZGU9ImF1dG8iLHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSImJih0aGlzLmN1cnJlbnRab29tPTEpfWNvbXB1dGVWaWV3cG9ydChYKXt0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKTtsZXQgST1YLmdldFZpZXdwb3J0KHtzY2FsZToxfSksTztzd2l0Y2godGhpcy52aWV3cG9ydE1vZGUpe2Nhc2UicGFnZS13aWR0aCI6e089KHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRofHxJLndpZHRoKS9JLndpZHRoO2JyZWFrfWNhc2UicGFnZS1maXQiOmNhc2UiYXV0byI6e2xldCBqPXRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRofHxJLndpZHRoLHNlPXRoaXMudmlld3BvcnREaW1lbnNpb25zLmhlaWdodHx8SS5oZWlnaHQsa2U9ai9JLndpZHRoLERlPXNlL0kuaGVpZ2h0O089TWF0aC5taW4oa2UsRGUpO2JyZWFrfWRlZmF1bHQ6e089dGhpcy5ub3JtYWxpemVab29tKHRoaXMuY3VycmVudFpvb218fDEsITEpO2JyZWFrfX0oIU51bWJlci5pc0Zpbml0ZShPKXx8Tzw9MCkmJihPPTEpO2xldCBHPXRoaXMudmlld3BvcnRNb2RlPT09ImN1c3RvbSI/dGhpcy5ub3JtYWxpemVab29tKE8sITApOnRoaXMubm9ybWFsaXplWm9vbShPLCExKTtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tIiYmKHRoaXMuY3VycmVudFpvb209RyksWC5nZXRWaWV3cG9ydCh7c2NhbGU6R30pfW5vcm1hbGl6ZVpvb20oWCxJKXtsZXQgTz1JP3RoaXMuTUFOVUFMX01JTl9aT09NOnRoaXMuQUJTT0xVVEVfTUlOX1pPT00sRz1JP3RoaXMuTUFOVUFMX01BWF9aT09NOnRoaXMuQUJTT0xVVEVfTUFYX1pPT007cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KFgsTyksRyl9YXN5bmMgY2xlYW51cERvY3VtZW50KCl7aWYodGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXImJih0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlci5hYm9ydCgpLHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPW51bGwpLHRoaXMuY3VycmVudFJlbmRlclByb21pc2Upe3RyeXthd2FpdCB0aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlfWNhdGNoe310aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlPW51bGx9dGhpcy5jdXJyZW50UmVuZGVyVGFzaz1udWxsLHRoaXMucGFnZVJlbmRlclRhc2tzLmZvckVhY2goWD0+e3RyeXtYLmNhbmNlbCgpfWNhdGNoe319KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5jbGVhcigpO2ZvcihsZXQgWCBvZiB0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzfHxbXSl0cnl7WC5jYW5jZWwoKX1jYXRjaHt9aWYodGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXSx0aGlzLnJlbmRlclN0YXRlPSJpZGxlIix0aGlzLnBhZ2VSZW5kZXJpbmc9ITEsdGhpcy5wYWdlTnVtUGVuZGluZz1udWxsLHRoaXMudGh1bWJuYWlsRGF0YT1bXSx0aGlzLnBhZ2VEYXRhPVtdLHRoaXMuZG9jdW1lbnRJZD0iIix0aGlzLmNhbnZhcyYmdGhpcy5jdHgmJnRoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLnBkZkRvY3VtZW50KXRyeXt0aGlzLnBkZkRvY3VtZW50LmRlc3Ryb3koKX1jYXRjaChYKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIFBERiBkb2N1bWVudDoiLFgpfXRoaXMucGRmRG9jdW1lbnQ9bnVsbCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7cDEocixhKX19O3JldHVybiBSZT1yfSkoKTtmZSgpO3ZhciBBT3QsJE90PSgpPT5NKEFPdHx8KEFPdD1oYyhbYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICBgLGAKICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iYWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IHBhZGRpbmc6IDEycHg7IGJhY2tncm91bmQ6IGAsIjsgYm9yZGVyLXJhZGl1czogNnB4OyBmb250LXNpemU6IDE0cHg7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IGNvbG9yOiAiLGA7Ij4KICAgICAgICAgIDxlbT5DbGljayBvbiB0aWxlIGFjdGlvbnMgb3IgZ3JpZCBhY3Rpb25zIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1jb25maWciPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPkNvbmZpZ3VyYXRpb24gT3B0aW9uczwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctZGVzY3JpcHRpb24iPgogICAgICAgICAgICAgIEVhY2ggdGlsZSB0eXBlIHN1cHBvcnRzIGRpZmZlcmVudCBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgIDx1bCBzdHlsZT0ibWFyZ2luOiA4cHggMDsgcGFkZGluZy1sZWZ0OiAyMHB4OyI+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5OdW1iZXI6PC9zdHJvbmc+IHZhbHVlLCB1bml0LCBjb2xvciwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+R2F1Z2U6PC9zdHJvbmc+IHZhbHVlLCB1bml0LCBnYXVnZU9wdGlvbnMgKG1pbiwgbWF4LCB0aHJlc2hvbGRzKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5QZXJjZW50YWdlOjwvc3Ryb25nPiB2YWx1ZSAoMC0xMDApLCBjb2xvciwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+VHJlbmQ6PC9zdHJvbmc+IHZhbHVlLCB1bml0LCB0cmVuZERhdGEgYXJyYXksIGRlc2NyaXB0aW9uPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlRleHQ6PC9zdHJvbmc+IHZhbHVlIChzdHJpbmcpLCBjb2xvciwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDE2cHggMDsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwOyI+Q29tcGFjdCBMYXlvdXQgKDE4MHB4IHRpbGVzKTwvaDQ+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgICAKICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMjRweCAwIDE2cHggMDsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwOyI+U3BhY2lvdXMgTGF5b3V0ICgzMjBweCB0aWxlcyk8L2g0PgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1ncmlkIgogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrIj5gLGA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgICAKICAgIDxzY3JpcHQ+CiAgICAgIC8vIENsZWFudXAgbGl2ZSB1cGRhdGVzIG9uIHBhZ2UgdW5sb2FkCiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCAoKSA9PiB7CiAgICAgICAgaWYgKCh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwpIHsKICAgICAgICAgIGNsZWFySW50ZXJ2YWwoKHdpbmRvdyBhcyBhbnkpLmxpdmVVcGRhdGVJbnRlcnZhbCk7CiAgICAgICAgfQogICAgICB9KTsKICAgIDxcL3NjcmlwdD4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYF0pKSx0ZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRpbGUtY29uZmlnIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctc2VjdGlvbiB7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29kZS1ibG9jayB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgICB9CiAgICAgIGAsIjEuIENvbXByZWhlbnNpdmUgRGFzaGJvYXJkIiwiRnVsbC1mZWF0dXJlZCBzdGF0cyBncmlkIHdpdGggdmFyaW91cyB0aWxlIHR5cGVzLCBhY3Rpb25zLCBhbmQgTHVjaWRlIGljb25zIixbe2lkOiJyZXZlbnVlIix0aXRsZToiVG90YWwgUmV2ZW51ZSIsdmFsdWU6MTI1NDIwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmRvbGxhci1zaWduIixkZXNjcmlwdGlvbjoiKzEyLjUlIGZyb20gbGFzdCBtb250aCIsYWN0aW9uczpbe25hbWU6IlZpZXcgRGV0YWlscyIsaWNvbk5hbWU6Imx1Y2lkZTp0cmVuZGluZy11cCIsYWN0aW9uOmFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PSJWaWV3aW5nIHJldmVudWUgZGV0YWlsczogJDEyNSw0MjAgKCsxMi41JSkiKX19LHtuYW1lOiJFeHBvcnQgRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTpkb3dubG9hZCIsYWN0aW9uOmFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PSJFeHBvcnRpbmcgcmV2ZW51ZSBkYXRhIHRvIENTVi4uLiIpfX1dfSx7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZTozODQ3LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnVzZXJzIixkZXNjcmlwdGlvbjoiMzI0IG5ldyB0aGlzIHdlZWsiLGFjdGlvbnM6W3tuYW1lOiJWaWV3IFVzZXIgTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246YXN5bmMoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7dCYmKHQudGV4dENvbnRlbnQ9Ik9wZW5pbmcgdXNlciBsaXN0Li4uIil9fV19LHtpZDoiY3B1Iix0aXRsZToiQ1BVIFVzYWdlIix2YWx1ZTo3Myx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmNwdSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjYwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoic3RvcmFnZSIsdGl0bGU6IlN0b3JhZ2UgVXNlZCIsdmFsdWU6NjUsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRlc2NyaXB0aW9uOiI2NTAgR0Igb2YgMSBUQiJ9LHtpZDoibGF0ZW5jeSIsdGl0bGU6IlJlc3BvbnNlIFRpbWUiLHZhbHVlOjE0Mix1bml0OiJtcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTphY3Rpdml0eSIsdHJlbmREYXRhOlsxNTAsMTQ1LDE0OCwxNDIsMTM4LDE0MCwxMzUsMTQ1LDE0Ml0sZGVzY3JpcHRpb246IlA5NSJ9LHtpZDoidXB0aW1lIix0aXRsZToiU3lzdGVtIFVwdGltZSIsdmFsdWU6Ijk5Ljk1JSIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmNoZWNrLWNpcmNsZSIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGRlc2NyaXB0aW9uOiJMYXN0IDMwIGRheXMifV0sW3tuYW1lOiJSZWZyZXNoIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLGFjdGlvbjphc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1zdGF0c2dyaWQiKTt0JiYodC5zdHlsZS5vcGFjaXR5PSIwLjUiLHNldFRpbWVvdXQoKCk9Pnt0LnN0eWxlLm9wYWNpdHk9IjEifSwzMDApKX19LHtuYW1lOiJFeHBvcnQiLGljb25OYW1lOiJsdWNpZGU6c2hhcmUiLGFjdGlvbjphc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTt0JiYodC50ZXh0Q29udGVudD0iRXhwb3J0aW5nIGRhc2hib2FyZCByZXBvcnQuLi4iKX19LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PSJPcGVuaW5nIGRhc2hib2FyZCBzZXR0aW5ncy4uLiIpfX1dLDI1MCwxNixwLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIikscC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpLCIyLiBUaWxlIFR5cGVzIiwiRGlmZmVyZW50IHZpc3VhbGl6YXRpb24gdHlwZXMgYXZhaWxhYmxlIGluIHRoZSBzdGF0cyBncmlkIixbe2lkOiJudW1iZXItZXhhbXBsZSIsdGl0bGU6Ik51bWJlciBUaWxlIix2YWx1ZTo0MjE5NSx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpoYXNoIixkZXNjcmlwdGlvbjoiU2ltcGxlIG51bWVyaWMgZGlzcGxheSJ9LHtpZDoiZ2F1Z2UtZXhhbXBsZSIsdGl0bGU6IkdhdWdlIFRpbGUiLHZhbHVlOjY4LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Z2F1Z2UiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6MCxjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9LHt2YWx1ZTo1MCxjb2xvcjoiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMCA4NC4yJSA2MC4yJSkifV19fSx7aWQ6InBlcmNlbnRhZ2UtZXhhbXBsZSIsdGl0bGU6IlBlcmNlbnRhZ2UgVGlsZSIsdmFsdWU6NzgsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOnBlcmNlbnQiLGRlc2NyaXB0aW9uOiJQcm9ncmVzcyBiYXIgdmlzdWFsaXphdGlvbiJ9LHtpZDoidHJlbmQtZXhhbXBsZSIsdGl0bGU6IlRyZW5kIFRpbGUiLHZhbHVlOjg5Mix1bml0OiJvcHMvcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTp0cmVuZGluZy11cCIsdHJlbmREYXRhOls3MjAsNzUwLDc4MCw3OTUsODEwLDgzNSw4NTAsODY1LDg4MCw4OTJdLGRlc2NyaXB0aW9uOiJhdmcifSx7aWQ6InRleHQtZXhhbXBsZSIsdGl0bGU6IlRleHQgVGlsZSIsdmFsdWU6Ik9wZXJhdGlvbmFsIix0eXBlOiJ0ZXh0IixpY29uOiJsdWNpZGU6aW5mbyIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGRlc2NyaXB0aW9uOiJTdGF0dXMgZGlzcGxheSJ9XSwyODAsMTYsIjMuIEdyaWQgQ29uZmlndXJhdGlvbnMiLCJEaWZmZXJlbnQgbGF5b3V0IG9wdGlvbnMgYW5kIHJlc3BvbnNpdmUgYmVoYXZpb3IiLFt7aWQ6IjEiLHRpdGxlOiJPcmRlcnMiLHZhbHVlOjE1Nix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpzaG9wcGluZy1jYXJ0In0se2lkOiIyIix0aXRsZToiUmV2ZW51ZSIsdmFsdWU6ODQyMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpkb2xsYXItc2lnbiJ9LHtpZDoiMyIsdGl0bGU6IlVzZXJzIix2YWx1ZTo0MjMsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMifSx7aWQ6IjQiLHRpdGxlOiJHcm93dGgiLHZhbHVlOjEyLjUsdW5pdDoiJSIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dHJlbmRpbmctdXAiLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn1dLDE4MCwxMixbe2lkOiJzcGFjaW91czEiLHRpdGxlOiJNb250aGx5IFJldmVudWUiLHZhbHVlOjE4NDUwMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpjcmVkaXQtY2FyZCIsZGVzY3JpcHRpb246IlRvdGFsIHJldmVudWUgdGhpcyBtb250aCJ9LHtpZDoic3BhY2lvdXMyIix0aXRsZToiQ3VzdG9tZXIgU2F0aXNmYWN0aW9uIix2YWx1ZTo5NCx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6c21pbGUiLGRlc2NyaXB0aW9uOiJCYXNlZCBvbiAxLDIzNCByZXZpZXdzIn0se2lkOiJzcGFjaW91czMiLHRpdGxlOiJTZXJ2ZXIgUmVzcG9uc2UiLHZhbHVlOjk4LHVuaXQ6Im1zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnNlcnZlciIsdHJlbmREYXRhOlsxMDUsMTAyLDEwMCw5OSw5OCw5OCw5Nyw5OF0sZGVzY3JpcHRpb246ImF2ZyByZXNwb25zZSB0aW1lIn1dLDMyMCwyMCwiNC4gSW50ZXJhY3RpdmUgRmVhdHVyZXMiLCJUaWxlcyB3aXRoIGFjdGlvbnMgYW5kIHJlYWwtdGltZSB1cGRhdGVzIixbe2lkOiJsaXZlLWNwdSIsdGl0bGU6IkxpdmUgQ1BVIix2YWx1ZTo0NSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmNwdSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjYwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoibGl2ZS1yZXF1ZXN0cyIsdGl0bGU6IlJlcXVlc3RzL3NlYyIsdmFsdWU6ODkyLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLHRyZW5kRGF0YTpbODUwLDg2MCw4NzAsODgwLDg4NSw4OTAsODkyXX0se2lkOiJsaXZlLW1lbW9yeSIsdGl0bGU6Ik1lbW9yeSBVc2FnZSIsdmFsdWU6NjIsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIn0se2lkOiJjb3VudGVyIix0aXRsZToiRXZlbnQgQ291bnRlciIsdmFsdWU6MCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp6YXAiLGFjdGlvbnM6W3tuYW1lOiJJbmNyZW1lbnQiLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCF0KXJldHVybjtsZXQgZT10LnRpbGVzLmZpbmQoYT0+YS5pZD09PSJjb3VudGVyIik7ZS52YWx1ZT10eXBlb2YgZS52YWx1ZT09Im51bWJlciI/ZS52YWx1ZSsxOjEsdC50aWxlcz1bLi4udC50aWxlc119fSx7bmFtZToiUmVzZXQiLGljb25OYW1lOiJsdWNpZGU6cm90YXRlLWNjdyIsYWN0aW9uOmFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCF0KXJldHVybjtsZXQgZT10LnRpbGVzLmZpbmQoYT0+YS5pZD09PSJjb3VudGVyIik7ZS52YWx1ZT0wLHQudGlsZXM9Wy4uLnQudGlsZXNdfX1dfV0sW3tuYW1lOiJTdGFydCBMaXZlIFVwZGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6cGxheSIsYWN0aW9uOmFzeW5jIGZ1bmN0aW9uKCl7d2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD8oY2xlYXJJbnRlcnZhbCh3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsKSx3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPW51bGwsdGhpcy5uYW1lPSJTdGFydCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwbGF5Iik6KHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKHQpe2xldCBlPVsuLi50LnRpbGVzXSxhPWUuZmluZChzPT5zLmlkPT09ImxpdmUtY3B1Iik7YS52YWx1ZT1NYXRoLm1heCgwLE1hdGgubWluKDEwMCxhLnZhbHVlKyhNYXRoLnJhbmRvbSgpKjIwLTEwKSkpO2xldCByPWUuZmluZChzPT5zLmlkPT09ImxpdmUtcmVxdWVzdHMiKSxpPXIudmFsdWUrTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjUwLTI1KTtyLnZhbHVlPU1hdGgubWF4KDgwMCxpKSxyLnRyZW5kRGF0YT1bLi4uci50cmVuZERhdGEuc2xpY2UoMSksci52YWx1ZV07bGV0IG89ZS5maW5kKHM9PnMuaWQ9PT0ibGl2ZS1tZW1vcnkiKTtvLnZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oMTAwLG8udmFsdWUrKE1hdGgucmFuZG9tKCkqMTAtNSkpKSx0LnRpbGVzPWV9fSwxZTMpLHRoaXMubmFtZT0iU3RvcCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwYXVzZSIpfX1dLDI1MCwxNiwiNS4gQ29kZSBFeGFtcGxlIiwiSG93IHRvIGltcGxlbWVudCBhIHN0YXRzIGdyaWQgd2l0aCBUeXBlU2NyaXB0IixgY29uc3QgdGlsZXM6IElTdGF0c1RpbGVbXSA9IFsKICB7CiAgICBpZDogJ3JldmVudWUnLAogICAgdGl0bGU6ICdUb3RhbCBSZXZlbnVlJywKICAgIHZhbHVlOiAxMjU0MjAsCiAgICB1bml0OiAnJCcsCiAgICB0eXBlOiAnbnVtYmVyJywKICAgIGljb246ICdsdWNpZGU6ZG9sbGFyLXNpZ24nLAogICAgZGVzY3JpcHRpb246ICcrMTIuNSUgZnJvbSBsYXN0IG1vbnRoJywKICAgIGFjdGlvbnM6IFsKICAgICAgewogICAgICAgIG5hbWU6ICdWaWV3IERldGFpbHMnLAogICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnRyZW5kaW5nLXVwJywKICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHsKICAgICAgICAgIGNvbnNvbGUubG9nKCdWaWV3IHJldmVudWUgZGV0YWlscycpOwogICAgICAgIH0KICAgICAgfQogICAgXQogIH0sCiAgewogICAgaWQ6ICdjcHUnLAogICAgdGl0bGU6ICdDUFUgVXNhZ2UnLAogICAgdmFsdWU6IDczLAogICAgdW5pdDogJyUnLAogICAgdHlwZTogJ2dhdWdlJywKICAgIGljb246ICdsdWNpZGU6Y3B1JywKICAgIGdhdWdlT3B0aW9uczogewogICAgICBtaW46IDAsCiAgICAgIG1heDogMTAwLAogICAgICB0aHJlc2hvbGRzOiBbCiAgICAgICAgeyB2YWx1ZTogMCwgY29sb3I6ICdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJyB9LAogICAgICAgIHsgdmFsdWU6IDYwLCBjb2xvcjogJ2hzbCg0NS40IDkzLjQlIDQ3LjUlKScgfSwKICAgICAgICB7IHZhbHVlOiA4MCwgY29sb3I6ICdoc2woMCA4NC4yJSA2MC4yJSknIH0KICAgICAgXQogICAgfQogIH0KXTsKCi8vIFJlbmRlciB0aGUgc3RhdHMgZ3JpZApodG1sXGAKICA8ZGVlcy1zdGF0c2dyaWQKICAgIC50aWxlcz1cJHt0aWxlc30KICAgIC5taW5UaWxlV2lkdGg9XCR7MjUwfQogICAgLmdhcD1cJHsxNn0KICAgIC5ncmlkQWN0aW9ucz1cJHtbCiAgICAgIHsKICAgICAgICBuYW1lOiAnUmVmcmVzaCcsCiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaC1jdycsCiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnUmVmcmVzaCcpCiAgICAgIH0KICAgIF19CiAgPjwvZGVlcy1zdGF0c2dyaWQ+ClxgO2ApO2ZlKCk7RnQoKTtCZSgpO3ZhciBwcz1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LGoyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxmbjE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLXN0YXRzZ3JpZCIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdLEUsQz1bXSx6PVtdLFAsXz1bXSwkPVtdO3ZhciBIPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOkFycmF5fSldLGY9W0Qoe3R5cGU6TnVtYmVyfSldLGQ9W0Qoe3R5cGU6TnVtYmVyfSldLGI9W0Qoe3R5cGU6QXJyYXl9KV0sdj1bbGUoKV0sRT1bbGUoKV0sUD1bbGUoKV0scHModGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InRpbGVzImluIGssZ2V0Oms9PmsudGlsZXMsc2V0OihrLE4pPT57ay50aWxlcz1OfX0sbWV0YWRhdGE6TH0scyxsKSxwcyh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblRpbGVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+Im1pblRpbGVXaWR0aCJpbiBrLGdldDprPT5rLm1pblRpbGVXaWR0aCxzZXQ6KGssTik9PntrLm1pblRpbGVXaWR0aD1OfX0sbWV0YWRhdGE6TH0sYyx1KSxwcyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImdhcCJpbiBrLGdldDprPT5rLmdhcCxzZXQ6KGssTik9PntrLmdhcD1OfX0sbWV0YWRhdGE6TH0saCxnKSxwcyh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdyaWRBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iZ3JpZEFjdGlvbnMiaW4gayxnZXQ6az0+ay5ncmlkQWN0aW9ucyxzZXQ6KGssTik9PntrLmdyaWRBY3Rpb25zPU59fSxtZXRhZGF0YTpMfSx4LG0pLHBzKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iY29udGV4dE1lbnVWaXNpYmxlImluIGssZ2V0Oms9PmsuY29udGV4dE1lbnVWaXNpYmxlLHNldDooayxOKT0+e2suY29udGV4dE1lbnVWaXNpYmxlPU59fSxtZXRhZGF0YTpMfSx5LHcpLHBzKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImNvbnRleHRNZW51UG9zaXRpb24iaW4gayxnZXQ6az0+ay5jb250ZXh0TWVudVBvc2l0aW9uLHNldDooayxOKT0+e2suY29udGV4dE1lbnVQb3NpdGlvbj1OfX0sbWV0YWRhdGE6TH0sQyx6KSxwcyh0aGlzLG51bGwsUCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRleHRNZW51QWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImNvbnRleHRNZW51QWN0aW9ucyJpbiBrLGdldDprPT5rLmNvbnRleHRNZW51QWN0aW9ucyxzZXQ6KGssTik9PntrLmNvbnRleHRNZW51QWN0aW9ucz1OfX0sbWV0YWRhdGE6TH0sXywkKSxwcyhudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpMfSxudWxsLGEpLEg9cj1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPSRPdDsjZT1qMih0aGlzLHMsW10pO2dldCB0aWxlcygpe3JldHVybiB0aGlzLiNlfXNldCB0aWxlcyhMKXt0aGlzLiNlPUx9I3Q9KGoyKHRoaXMsbCksajIodGhpcyxjLDI1MCkpO2dldCBtaW5UaWxlV2lkdGgoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWluVGlsZVdpZHRoKEwpe3RoaXMuI3Q9TH0jYT0oajIodGhpcyx1KSxqMih0aGlzLGgsMTYpKTtnZXQgZ2FwKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGdhcChMKXt0aGlzLiNhPUx9I3I9KGoyKHRoaXMsZyksajIodGhpcyx4LFtdKSk7Z2V0IGdyaWRBY3Rpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGdyaWRBY3Rpb25zKEwpe3RoaXMuI3I9TH0jaT0oajIodGhpcyxtKSxqMih0aGlzLHksITEpKTtnZXQgY29udGV4dE1lbnVWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbnRleHRNZW51VmlzaWJsZShMKXt0aGlzLiNpPUx9I289KGoyKHRoaXMsdyksajIodGhpcyxDLHt4OjAseTowfSkpO2dldCBjb250ZXh0TWVudVBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbnRleHRNZW51UG9zaXRpb24oTCl7dGhpcy4jbz1MfSNzPShqMih0aGlzLHopLGoyKHRoaXMsXyxbXSkpO2dldCBjb250ZXh0TWVudUFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jc31zZXQgY29udGV4dE1lbnVBY3Rpb25zKEwpe3RoaXMuI3M9TH1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgIH0KCiAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIGNvbnNpc3RlbnQgc3BhY2luZyBhbmQgc2l6aW5nICovCiAgICAgIDpob3N0IHsKICAgICAgICAtLWdyaWQtZ2FwOiAxMnB4OwogICAgICAgIC0tdGlsZS1wYWRkaW5nOiAxNnB4OwogICAgICAgIC0taGVhZGVyLXNwYWNpbmc6IDEycHg7CiAgICAgICAgLS1jb250ZW50LW1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgLS12YWx1ZS1mb250LXNpemU6IDI2cHg7CiAgICAgICAgLS11bml0LWZvbnQtc2l6ZTogMTRweDsKICAgICAgICAtLWxhYmVsLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAtLXRpdGxlLWZvbnQtc2l6ZTogMTNweDsKICAgICAgICAtLWRlc2NyaXB0aW9uLXNwYWNpbmc6IDhweDsKICAgICAgICAtLWJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAtLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzOwogICAgICB9CgogICAgICAvKiBHcmlkIExheW91dCAqLwogICAgICAuZ3JpZC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1ncmlkLWdhcCkgKiAxLjUpOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5ncmlkLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAuZ3JpZC1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZ3JpZC1hY3Rpb25zIGRlZXMtYnV0dG9uIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLWxhYmVsLWZvbnQtc2l6ZSk7CiAgICAgIH0KCiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHtCdCgyNTApfXB4LCAxZnIpKTsKICAgICAgICBnYXA6ICR7QnQoMTYpfXB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAvKiBUaWxlIEJhc2UgU3R5bGVzICovCiAgICAgIC5zdGF0cy10aWxlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpOwogICAgICAgIHBhZGRpbmc6IHZhcigtLXRpbGUtcGFkZGluZyk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIGVhc2U7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBkMGQwZCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjZDBkMGQwIiwiIzJhMmEyYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGUuY2xpY2thYmxlIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5zdGF0cy10aWxlLmNsaWNrYWJsZTpob3ZlciB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCAke3AuYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAzKSIsInJnYmEoMCwwLDAsMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgSGVhZGVyICovCiAgICAgIC50aWxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0taGVhZGVyLXNwYWNpbmcpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGlsZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10aXRsZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgIH0KCiAgICAgIC50aWxlLWljb24gewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgQ29udGVudCAqLwogICAgICAudGlsZS1jb250ZW50IHsKICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1jb250ZW50LW1pbi1oZWlnaHQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAudGlsZS12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnRpbGUtdW5pdCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS11bml0LWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnRpbGUtZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1kZXNjcmlwdGlvbi1zcGFjaW5nKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLyogR2F1Z2UgU3R5bGVzICovCiAgICAgIC5nYXVnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMjBweDsKICAgICAgICBoZWlnaHQ6IDcwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbi10b3A6IC04cHg7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1zdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmdhdWdlLWJhY2tncm91bmQgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiAke3AuYmRUaGVtZSgiI2U4ZThlOCIsIiMxYTFhMWEiKX07CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2OwogICAgICB9CgogICAgICAuZ2F1Z2UtZmlsbCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2Utd2lkdGg6IDY7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmdhdWdlLXRleHQgewogICAgICAgIGZpbGw6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC1hbmNob3I6IG1pZGRsZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5nYXVnZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmaWxsOiAke3AuYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICB9CgogICAgICAvKiBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAucGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U4ZThlOCIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzMzMzMzMyIsIiNlMGUwZTAiKX07CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLyogVHJlbmQgU3R5bGVzICovCiAgICAgIC50cmVuZC1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRyZW5kLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC50cmVuZC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnRyZW5kLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC50cmVuZC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC50cmVuZC1ncmFwaCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnRyZW5kLXN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAudHJlbmQtbGluZSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6ICR7cC5iZFRoZW1lKCIjOTk5OTk5IiwiIzY2NjY2NiIpfTsKICAgICAgICBzdHJva2Utd2lkdGg6IDEuNTsKICAgICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kOwogICAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsKICAgICAgfQoKICAgICAgLnRyZW5kLWFyZWEgewogICAgICAgIGZpbGw6ICR7cC5iZFRoZW1lKCJyZ2JhKDE1MCwgMTUwLCAxNTAsIDAuMDgpIiwicmdiYSgxMDAsIDEwMCwgMTAwLCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLyogVGV4dCBWYWx1ZSBTdHlsZXMgKi8KICAgICAgLnRleHQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC8qIENvbnRleHQgTWVudSAqLwogICAgICBkZWVzLWNvbnRleHRtZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQogICAgYF07Y29uc3RydWN0b3IoKXtzdXBlcigpLGoyKHRoaXMsJCl9cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgICR7dGhpcy5ncmlkQWN0aW9ucy5sZW5ndGg+MD9NYAogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtdGl0bGUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1hY3Rpb25zIj4KICAgICAgICAgICAgJHt0aGlzLmdyaWRBY3Rpb25zLm1hcChMPT5NYAogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiAKICAgICAgICAgICAgICAgIEBjbGlja2VkPSR7KCk9PnRoaXMuaGFuZGxlR3JpZEFjdGlvbihMKX0KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBzaXplPSJzbSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke0wuaWNvbk5hbWU/TWA8ZGVlcy1pY29uIC5pY29uPSR7TC5pY29uTmFtZX0gc2l6ZT0ic21hbGwiPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgICAke0wubmFtZX0KICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic3RhdHMtZ3JpZCIgc3R5bGU9ImdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHt0aGlzLm1pblRpbGVXaWR0aH1weCwgMWZyKSk7IGdhcDogJHt0aGlzLmdhcH1weDsiPgogICAgICAgICR7dGhpcy50aWxlcy5tYXAoTD0+dGhpcy5yZW5kZXJUaWxlKEwpKX0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY29udGV4dE1lbnVWaXNpYmxlP01gCiAgICAgICAgPGRlZXMtY29udGV4dG1lbnUKICAgICAgICAgIC54PSR7dGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnh9CiAgICAgICAgICAueT0ke3RoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55fQogICAgICAgICAgLm1lbnVJdGVtcz0ke3RoaXMuY29udGV4dE1lbnVBY3Rpb25zfQogICAgICAgICAgQGNsaWNrZWQ9JHsoKT0+dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITF9CiAgICAgICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICAgICAgYDoiIn0KICAgIGB9cmVuZGVyVGlsZShMKXtsZXQgaz1MLmFjdGlvbnMmJkwuYWN0aW9ucy5sZW5ndGg+MCxOPWsmJkwuYWN0aW9ucy5sZW5ndGg9PT0xO3JldHVybiBNYAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJzdGF0cy10aWxlICR7Tj8iY2xpY2thYmxlIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7Tj8oKT0+dGhpcy5oYW5kbGVUaWxlQWN0aW9uKEwuYWN0aW9uc1swXSxMKTp2b2lkIDB9CiAgICAgICAgQGNvbnRleHRtZW51PSR7az9TPT50aGlzLnNob3dDb250ZXh0TWVudShTLEwpOnZvaWQgMH0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtaGVhZGVyIj4KICAgICAgICAgIDxoMyBjbGFzcz0idGlsZS10aXRsZSI+JHtMLnRpdGxlfTwvaDM+CiAgICAgICAgICAke0wuaWNvbj9NYAogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJ0aWxlLWljb24iIC5pY29uPSR7TC5pY29ufSBzaXplPSJzbWFsbCI+PC9kZWVzLWljb24+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29udGVudCI+CiAgICAgICAgICAke3RoaXMucmVuZGVyVGlsZUNvbnRlbnQoTCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgJHtMLmRlc2NyaXB0aW9uJiZMLnR5cGUhPT0idHJlbmQiP01gCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWRlc2NyaXB0aW9uIj4ke0wuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRpbGVDb250ZW50KEwpe3N3aXRjaChMLnR5cGUpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTWAKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiIHN0eWxlPSIke0wuY29sb3I/YGNvbG9yOiAke0wuY29sb3J9YDoiIn0iPgogICAgICAgICAgICA8c3Bhbj4ke0wudmFsdWV9PC9zcGFuPgogICAgICAgICAgICAke0wudW5pdD9NYDxzcGFuIGNsYXNzPSJ0aWxlLXVuaXQiPiR7TC51bml0fTwvc3Bhbj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtjYXNlImdhdWdlIjpyZXR1cm4gdGhpcy5yZW5kZXJHYXVnZShMKTtjYXNlInBlcmNlbnRhZ2UiOnJldHVybiB0aGlzLnJlbmRlclBlcmNlbnRhZ2UoTCk7Y2FzZSJ0cmVuZCI6cmV0dXJuIHRoaXMucmVuZGVyVHJlbmQoTCk7Y2FzZSJ0ZXh0IjpyZXR1cm4gTWAKICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtdmFsdWUiIHN0eWxlPSIke0wuY29sb3I/YGNvbG9yOiAke0wuY29sb3J9YDoiIn0iPgogICAgICAgICAgICAke0wudmFsdWV9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgO2RlZmF1bHQ6cmV0dXJuIE1gPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtMLnZhbHVlfTwvZGl2PmB9fXJlbmRlckdhdWdlKEwpe2xldCBrPXR5cGVvZiBMLnZhbHVlPT0ibnVtYmVyIj9MLnZhbHVlOnBhcnNlRmxvYXQoTC52YWx1ZSksTj1MLmdhdWdlT3B0aW9uc3x8e21pbjowLG1heDoxMDB9LFM9KGstTi5taW4pLyhOLm1heC1OLm1pbikqMTAwLFQ9MTIwLFI9NzAsRj02LzIrMixhZT00MCxWPVQvMixTZT1SLUYsemU9Vi1hZSxXPVNlLE5lPVYrYWUsWD1gTSAke3plfSAke1d9IEEgJHthZX0gJHthZX0gMCAwIDEgJHtOZX0gJHtTZX1gLEk9TWF0aC5QSSphZSxPPUktSSpTLzEwMCxHPUwuY29sb3J8fHAuYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyOC44JSkiLCJoc2woMjEwIDQwJSA3OCUpIik7aWYoTi50aHJlc2hvbGRzKXtsZXQgaj1bLi4uTi50aHJlc2hvbGRzXS5zb3J0KChzZSxrZSk9PmtlLnZhbHVlLXNlLnZhbHVlKTtmb3IobGV0IHNlIG9mIGopaWYoaz49c2UudmFsdWUpe0c9c2UuY29sb3I7YnJlYWt9fXJldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJnYXVnZS13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJnYXVnZS1jb250YWluZXIiPgogICAgICAgICAgPHN2ZyBjbGFzcz0iZ2F1Z2Utc3ZnIiB2aWV3Qm94PSIwIDAgJHtUfSAke1J9IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0Ij4KICAgICAgICAgICAgPCEtLSBCYWNrZ3JvdW5kIGFyYyAtLT4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICBjbGFzcz0iZ2F1Z2UtYmFja2dyb3VuZCIKICAgICAgICAgICAgICBkPSIke1h9IgogICAgICAgICAgICAvPgogICAgICAgICAgICA8IS0tIEZpbGxlZCBhcmMgLS0+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgY2xhc3M9ImdhdWdlLWZpbGwiCiAgICAgICAgICAgICAgZD0iJHtYfSIKICAgICAgICAgICAgICBzdHJva2U9IiR7R30iCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hhcnJheT0iJHtJfSIKICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldD0iJHtPfSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPCEtLSBWYWx1ZSB0ZXh0IC0tPgogICAgICAgICAgICA8dGV4dCBjbGFzcz0iZ2F1Z2UtdGV4dCIgeD0iJHtWfSIgeT0iJHtTZS04fSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSI+CiAgICAgICAgICAgICAgPHRzcGFuPiR7a308L3RzcGFuPiR7TC51bml0P01gPHRzcGFuIGNsYXNzPSJnYXVnZS11bml0IiBkeD0iMiIgZHk9IjAiPiR7TC51bml0fTwvdHNwYW4+YDoiIn0KICAgICAgICAgICAgPC90ZXh0PgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQZXJjZW50YWdlKEwpe2xldCBrPXR5cGVvZiBMLnZhbHVlPT0ibnVtYmVyIj9MLnZhbHVlOnBhcnNlRmxvYXQoTC52YWx1ZSksTj1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxrKSk7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS12YWx1ZSI+JHtOfSU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLWJhciI+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0icGVyY2VudGFnZS1maWxsIiAKICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke059JTsgJHtMLmNvbG9yP2BiYWNrZ3JvdW5kOiAke0wuY29sb3J9YDoiIn0iCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUcmVuZChMKXtpZighTC50cmVuZERhdGF8fEwudHJlbmREYXRhLmxlbmd0aDwyKXJldHVybiBNYDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7TC52YWx1ZX08L2Rpdj5gO2xldCBrPUwudHJlbmREYXRhLE49TWF0aC5tYXgoLi4uayksUz1NYXRoLm1pbiguLi5rKSxUPU4tU3x8MSxSPTMwMCxBPTMyLEY9MixhZT1rLm1hcCgoU2UsemUpPT57bGV0IFc9emUvKGsubGVuZ3RoLTEpKlIsTmU9RisoQS0yKkYpLShTZS1TKS9UKihBLTIqRik7cmV0dXJuYCR7V30sJHtOZX1gfSkuam9pbigiICIpLFY9YDAsJHtBfSAke2FlfSAke1J9LCR7QX1gO3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJ0cmVuZC1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRyZW5kLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idHJlbmQtdmFsdWUiPiR7TC52YWx1ZX08L3NwYW4+CiAgICAgICAgICAke0wudW5pdD9NYDxzcGFuIGNsYXNzPSJ0cmVuZC11bml0Ij4ke0wudW5pdH08L3NwYW4+YDoiIn0KICAgICAgICAgICR7TC5kZXNjcmlwdGlvbj9NYDxzcGFuIGNsYXNzPSJ0cmVuZC1sYWJlbCI+JHtMLmRlc2NyaXB0aW9ufTwvc3Bhbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRyZW5kLWdyYXBoIj4KICAgICAgICAgIDxzdmcgY2xhc3M9InRyZW5kLXN2ZyIgdmlld0JveD0iMCAwICR7Un0gJHtBfSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJ0cmVuZC1hcmVhIiBwb2ludHM9IiR7Vn0iIC8+CiAgICAgICAgICAgIDxwb2x5bGluZSBjbGFzcz0idHJlbmQtbGluZSIgcG9pbnRzPSIke2FlfSIgLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgaGFuZGxlR3JpZEFjdGlvbihMKXtMLmFjdGlvbiYmYXdhaXQgTC5hY3Rpb24oKX1hc3luYyBoYW5kbGVUaWxlQWN0aW9uKEwsayl7TC5hY3Rpb24mJmF3YWl0IEwuYWN0aW9uKCl9c2hvd0NvbnRleHRNZW51KEwsayl7aWYoIWsuYWN0aW9uc3x8ay5hY3Rpb25zLmxlbmd0aD09PTApcmV0dXJuO0wucHJldmVudERlZmF1bHQoKSx0aGlzLmNvbnRleHRNZW51UG9zaXRpb249e3g6TC5jbGllbnRYLHk6TC5jbGllbnRZfSx0aGlzLmNvbnRleHRNZW51QWN0aW9ucz1rLmFjdGlvbnMsdGhpcy5jb250ZXh0TWVudVZpc2libGU9ITA7bGV0IE49KCk9Pnt0aGlzLmNvbnRleHRNZW51VmlzaWJsZT0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsTil9O3NldFRpbWVvdXQoKCk9Pntkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTil9LDEwMCl9c3RhdGlje2oyKHIsYSl9fTtyZXR1cm4gSD1yfSkoKTtmZSgpO3ZhciBYRWU9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxRRWU9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LHVuMT0oKCk9PntsZXQgdD1bY2UoImRlbW8tdmlldy1kYXNoYm9hcmQiKV0sZSxhPVtdLHIsaT1wZTt2YXIgbz1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7WEVlKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOnN9LG51bGwsYSksbz1yPWUudmFsdWUscyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpzfSl9c3RhdGljIHN0eWxlcz1bcC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgfQogICAgICBoMSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgICAgZGVlcy1zdGF0c2dyaWQgewogICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICAgIH0KICAgIGBdO3N0YXRzVGlsZXM9W3tpZDoidXNlcnMiLHRpdGxlOiJBY3RpdmUgVXNlcnMiLHZhbHVlOjEyMzQsdHlwZToibnVtYmVyIixpY29uOiJmYVVzZXJzIixkZXNjcmlwdGlvbjoiKzE1JSBmcm9tIGxhc3Qgd2VlayIsY29sb3I6IiMyMmM1NWUifSx7aWQ6InBhZ2V2aWV3cyIsdGl0bGU6IlBhZ2UgVmlld3MiLHZhbHVlOjU2NzAwLHR5cGU6Im51bWJlciIsaWNvbjoiZmFFeWUiLGRlc2NyaXB0aW9uOiI1Ni43ayB0b3RhbCB2aWV3cyIsY29sb3I6IiMzYjgyZjYifSx7aWQ6InVwdGltZSIsdGl0bGU6IlN5c3RlbSBVcHRpbWUiLHZhbHVlOjg5LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJmYVNlcnZlciIsZGVzY3JpcHRpb246Ikxhc3QgMzAgZGF5cyIsY29sb3I6IiMxMGI5ODEiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6ODAsY29sb3I6IiNlZjQ0NDQifSx7dmFsdWU6OTAsY29sb3I6IiNmNTllMGIifSx7dmFsdWU6MTAwLGNvbG9yOiIjMTBiOTgxIn1dfX0se2lkOiJyZXNwb25zZSIsdGl0bGU6IkF2ZyBSZXNwb25zZSBUaW1lIix2YWx1ZTozLjIsdW5pdDoicyIsdHlwZToibnVtYmVyIixpY29uOiJmYUNsb2NrIixkZXNjcmlwdGlvbjoiLTAuNXMgaW1wcm92ZW1lbnQiLGNvbG9yOiIjZjU5ZTBiIn0se2lkOiJyZXZlbnVlIix0aXRsZToiTW9udGhseSBSZXZlbnVlIix2YWx1ZTo0ODUyMCx1bml0OiIkIix0eXBlOiJ0cmVuZCIsaWNvbjoiZmFEb2xsYXJTaWduIixkZXNjcmlwdGlvbjoiKzguMiUgZ3Jvd3RoIixjb2xvcjoiIzIyYzU1ZSIsdHJlbmREYXRhOlszNWUzLDM4ZTMsMzc1MDAsNDFlMywzOTgwMCw0MmUzLDQ0MTAwLDQzMjAwLDQ1NjAwLDQ3MTAwLDQ2ODAwLDQ4NTIwXX0se2lkOiJ0cmFmZmljIix0aXRsZToiVHJhZmZpYyBUcmVuZCIsdmFsdWU6MTY4MCx0eXBlOiJ0cmVuZCIsaWNvbjoiZmFDaGFydExpbmUiLGRlc2NyaXB0aW9uOiJMYXN0IDcgZGF5cyIsY29sb3I6IiMzYjgyZjYiLHRyZW5kRGF0YTpbMTIwMCwxMzUwLDExMDAsMTQ1MCwxNjAwLDE1NTAsMTY4MF19XTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGgxPkRhc2hib2FyZDwvaDE+CiAgICAgIDxwPldlbGNvbWUgdG8geW91ciBhcHBsaWNhdGlvbiBkYXNoYm9hcmQuIEhlcmUncyBhbiBvdmVydmlldyBvZiB5b3VyIG1ldHJpY3M6PC9wPgogICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAudGlsZXM9JHt0aGlzLnN0YXRzVGlsZXN9CiAgICAgICAgQHRpbGUtYWN0aW9uPSR7cz0+e2NvbnNvbGUubG9nKCJUaWxlIGFjdGlvbjoiLHMuZGV0YWlsKX19CiAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgYH1zdGF0aWN7UUVlKHIsYSl9fTtyZXR1cm4gbz1yfSkoKSxwbjE9KCgpPT57bGV0IHQ9W2NlKCJkZW1vLXZpZXctYW5hbHl0aWNzIildLGUsYT1bXSxyLGk9cGU7dmFyIG89Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBzPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO1hFZShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpzfSxudWxsLGEpLG89cj1lLnZhbHVlLHMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6c30pfXN0YXRpYyBzdHlsZXM9W3AuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGgxPkFuYWx5dGljczwvaDE+CiAgICAgIDxwPlRoaXMgaXMgdGhlIGFuYWx5dGljcyB2aWV3LiBZb3UgY2FuIGFkZCBjaGFydHMgYW5kIG1ldHJpY3MgaGVyZS48L3A+CiAgICBgfXN0YXRpY3tRRWUocixhKX19O3JldHVybiBvPXJ9KSgpLGhuMT0oKCk9PntsZXQgdD1bY2UoImRlbW8tdmlldy1zZXR0aW5ncyIpXSxlLGE9W10scixpPXBlO3ZhciBvPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgcz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtYRWUobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6c30sbnVsbCxhKSxvPXI9ZS52YWx1ZSxzJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnN9KX1zdGF0aWMgc3R5bGVzPVtwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMzBweDsKICAgICAgfQogICAgICAuc2V0dGluZ3Mtc2VjdGlvbiBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICAgIC5ob3Jpem9udGFsLWZvcm0tc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMWExYTFhIil9OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG1hcmdpbjogMTVweCAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGgxPlNldHRpbmdzPC9oMT4KICAgICAgPHA+Q29uZmlndXJlIHlvdXIgYXBwbGljYXRpb24gc2V0dGluZ3MgYmVsb3c6PC9wPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPkdlbmVyYWwgU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYXBwTmFtZSIgbGFiZWw9IkFwcGxpY2F0aW9uIE5hbWUiIHZhbHVlPSJNeSBBcHAiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImFwaUVuZHBvaW50IiBsYWJlbD0iQVBJIEVuZHBvaW50IiB2YWx1ZT0iaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20iPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJlbnZpcm9ubWVudCIKICAgICAgICAgICAgbGFiZWw9IkVudmlyb25tZW50IgogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJEZXZlbG9wbWVudCIsa2V5OiJkZXYifSx7b3B0aW9uOiJTdGFnaW5nIixrZXk6InN0YWdpbmcifSx7b3B0aW9uOiJQcm9kdWN0aW9uIixrZXk6InByb2QifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IlByb2R1Y3Rpb24iLGtleToicHJvZCJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iZW5hYmxlTm90aWZpY2F0aW9ucyIgbGFiZWw9IkVuYWJsZSBOb3RpZmljYXRpb25zIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJlbmFibGVBbmFseXRpY3MiIGxhYmVsPSJFbmFibGUgQW5hbHl0aWNzIiB2YWx1ZT0iZmFsc2UiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNhdmUgR2VuZXJhbCBTZXR0aW5nczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+RGlzcGxheSBQcmVmZXJlbmNlczwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1mb3JtLXNlY3Rpb24iPgogICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij5RdWljayBkaXNwbGF5IHNldHRpbmdzIHVzaW5nIGhvcml6b250YWwgbGF5b3V0OjwvcD4KICAgICAgICAgIDxkZWVzLWZvcm0gaG9yaXpvbnRhbC1sYXlvdXQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAga2V5PSJ0aGVtZSIKICAgICAgICAgICAgICBsYWJlbD0iVGhlbWUiCiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkxpZ2h0IixrZXk6ImxpZ2h0In0se29wdGlvbjoiRGFyayIsa2V5OiJkYXJrIn0se29wdGlvbjoiQXV0byIsa2V5OiJhdXRvIn1dfQogICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IkRhcmsiLGtleToiZGFyayJ9fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0ibGFuZ3VhZ2UiCiAgICAgICAgICAgICAgbGFiZWw9Ikxhbmd1YWdlIgogICAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn0se29wdGlvbjoiR2VybWFuIixrZXk6ImRlIn0se29wdGlvbjoiU3BhbmlzaCIsa2V5OiJlcyJ9LHtvcHRpb246IkZyZW5jaCIsa2V5OiJmciJ9XX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJFbmdsaXNoIixrZXk6ImVuIn19CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iY29tcGFjdE1vZGUiIGxhYmVsPSJDb21wYWN0IE1vZGUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5Ob3RpZmljYXRpb24gU2V0dGluZ3M8L2gyPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBGcmVxdWVuY3kifQogICAgICAgICAgICAub3B0aW9ucz0ke1siUmVhbC10aW1lIiwiRGFpbHkgRGlnZXN0IiwiV2Vla2x5IFN1bW1hcnkiLCJOZXZlciJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUmVhbC10aW1lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbEZyZXF1ZW5jeSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9InB1c2hOb3RpZmljYXRpb25zIiBsYWJlbD0iRW5hYmxlIFB1c2ggTm90aWZpY2F0aW9ucyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0ic291bmRBbGVydHMiIGxhYmVsPSJQbGF5IFNvdW5kIGZvciBBbGVydHMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5VcGRhdGUgTm90aWZpY2F0aW9uczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tRRWUocixhKX19O3JldHVybiBvPXJ9KSgpLERPdD0oKT0+TWAKICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgfQogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1zaW1wbGUtYXBwZGFzaAogICAgICBuYW1lPSJNeSBBcHBsaWNhdGlvbiIKICAgICAgdGVybWluYWxTZXR1cENvbW1hbmQ9ImVjaG8gJ1dlbGNvbWUgdG8gdGhlIHRlcm1pbmFsISciCiAgICAgIC52aWV3VGFicz0ke1t7bmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGVsZW1lbnQ6dW4xfSx7bmFtZToiQW5hbHl0aWNzIixpY29uTmFtZToibHVjaWRlOmxpbmVDaGFydCIsZWxlbWVudDpwbjF9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsZWxlbWVudDpobjF9XX0KICAgICAgQGxvZ291dD0keygpPT57Y29uc29sZS5sb2coIkxvZ291dCBldmVudCB0cmlnZ2VyZWQiKSxhbGVydCgiTG9nb3V0IGNsaWNrZWQhIil9fQogICAgICBAdmlldy1zZWxlY3Q9JHt0PT57Y29uc29sZS5sb2coIlZpZXcgc2VsZWN0ZWQ6Iix0LmRldGFpbC52aWV3Lm5hbWUpfX0KICAgID48L2RlZXMtc2ltcGxlLWFwcGRhc2g+CiAgPC9kaXY+CmA7ZmUoKTtGdCgpO0JlKCk7dmFyIEhJPWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sYW89ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LG1uMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtc2ltcGxlLWFwcGRhc2giKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHk9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCgpXSxmPVtEKHt0eXBlOkFycmF5fSldLGQ9W0Qoe3R5cGU6U3RyaW5nfSldLGI9W2xlKCldLEhJKHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+Im5hbWUiaW4gdyxnZXQ6dz0+dy5uYW1lLHNldDoodyxFKT0+e3cubmFtZT1FfX0sbWV0YWRhdGE6eX0scyxsKSxISSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4idmlld1RhYnMiaW4gdyxnZXQ6dz0+dy52aWV3VGFicyxzZXQ6KHcsRSk9Pnt3LnZpZXdUYWJzPUV9fSxtZXRhZGF0YTp5fSxjLHUpLEhJKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxTZXR1cENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJ0ZXJtaW5hbFNldHVwQ29tbWFuZCJpbiB3LGdldDp3PT53LnRlcm1pbmFsU2V0dXBDb21tYW5kLHNldDoodyxFKT0+e3cudGVybWluYWxTZXR1cENvbW1hbmQ9RX19LG1ldGFkYXRhOnl9LGgsZyksSEkodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJzZWxlY3RlZFZpZXciaW4gdyxnZXQ6dz0+dy5zZWxlY3RlZFZpZXcsc2V0Oih3LEUpPT57dy5zZWxlY3RlZFZpZXc9RX19LG1ldGFkYXRhOnl9LHgsbSksSEkobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6eX0sbnVsbCxhKSx2PXI9ZS52YWx1ZSx5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnl9KX1zdGF0aWMgZGVtbz1ET3Q7c3RhdGljIGRlbW9Hcm91cD0iU2ltcGxlIjsjZT1hbyh0aGlzLHMsIkFwcGxpY2F0aW9uIERhc2hib2FyZCIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoeSl7dGhpcy4jZT15fSN0PShhbyh0aGlzLGwpLGFvKHRoaXMsYyxbXSkpO2dldCB2aWV3VGFicygpe3JldHVybiB0aGlzLiN0fXNldCB2aWV3VGFicyh5KXt0aGlzLiN0PXl9I2E9KGFvKHRoaXMsdSksYW8odGhpcyxoLCdlY2hvICJUZXJtaW5hbCByZWFkeSInKSk7Z2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKHkpe3RoaXMuI2E9eX0jcj0oYW8odGhpcyxnKSxhbyh0aGlzLHgsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkVmlldygpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RlZFZpZXcoeSl7dGhpcy4jcj15fXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICByaWdodDogMHB4OwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5hcHBiYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyNHB4KTsKICAgICAgICB3aWR0aDogMjQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDk5JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtwLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyIG1pbi1jb250ZW50OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMjBweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmhlYWRlci1pY29uLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgibGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsKDIxNSAyMCUgOTUlKSAwJSwgaHNsKDIxNSAyMCUgOTAlKSAxMDAlKSIsImxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyMTUgMjAlIDE4JSkgMCUsIGhzbCgyMTUgMjAlIDE0JSkgMTAwJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtwLmJkVGhlbWUoIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA1KSwgaW5zZXQgMCAxcHggMCByZ2IoMjU1IDI1NSAyNTUgLyAwLjUpIiwiMCAxcHggMnB4IHJnYigwIDAgMCAvIDAuMiksIGluc2V0IDAgMXB4IDAgcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAyMCUgNDAlKSIsImhzbCgyMTUgMjAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBOYW1lIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyIHsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNzUlKSIsImhzbCgwIDAlIDMwJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAudmlld1RhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2NSUpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA0KSIsImhzbCgwIDAlIDEwMCUgLyAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAudmlld1RhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDYpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDcpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDIxNSAyNSUgOTUlKSIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDI1JSAzMCUpIiwiaHNsKDIxNSAyNSUgODUlKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMjE1IDcwJSA1MCUpIiwiaHNsKDIxNSA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41NTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgyMTUgNzAlIDQ1JSkiLCJoc2woMjE1IDcwJSA2NSUpIil9OwogICAgICB9CgogICAgICAudmlld1RhYiBzcGFuIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmFwcEFjdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDg0JSA2MCUgLyAwLjA4KSIsImhzbCgwIDg0JSA2MCUgLyAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoImhzbCgwIDg0JSA0NSUpIiwiaHNsKDAgODQlIDY1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMC45OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgODQlIDQ1JSkiLCJoc2woMCA4NCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFwcGNvbnRlbnQgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyNHB4KTsKICAgICAgICBib3R0b206IDI0cHg7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI0MHB4KTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAuY29udHJvbGJhciB7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgyMjAgMTMlIDE4JSkiLCJoc2woMjIwIDEzJSAxMiUpIil9OwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwogICAgICB9CgogICAgICAuY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDcwJSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBoc2woMCAwJSAxMDAlIC8gMC4wOCk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbnRyb2w6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDAlIDEwMCUgLyAwLjA2KTsKICAgICAgICBjb2xvcjogaHNsKDAgMCUgOTUlKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy1jb25uZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogaHNsKDE0MiA3MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wuc3RhdHVzLXRlcm1pbmFsIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6IGhzbCg0NSA5MCUgNTUlKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImFwcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pY29uLXdyYXBwZXIiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpsYXlvdXRHcmlkIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXBwTmFtZSI+JHt0aGlzLm5hbWV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdUYWJzLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPk5hdmlnYXRpb248L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idmlld1RhYnMiPgogICAgICAgICAgICAgICR7dGhpcy52aWV3VGFicy5tYXAoeT0+TWAKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ2aWV3VGFiICR7dGhpcy5zZWxlY3RlZFZpZXc9PT15PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmxvYWRWaWV3KHkpfQogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHt5Lmljb25OYW1lP01gCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3kuaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT95Lmljb25OYW1lOmBsdWNpZGU6JHt5Lmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgOk1gCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6ZmlsZSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7eS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcEFjdGlvbnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24iIEBjbGljaz0keygpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9nb3V0Iix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpsb2dPdXQifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+U2lnbiBvdXQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwY29udGVudCI+CiAgICAgICAgICA8IS0tIENvbnRlbnQgZ29lcyBoZXJlIC0tPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbCBzdGF0dXMtY29ubmVjdGVkIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOndpZmkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuPkNvbm5lY3RlZDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbCBzdGF0dXMtdGVybWluYWwiIEBjbGljaz0ke3RoaXMubGF1bmNoVGVybWluYWx9PgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6dGVybWluYWwifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuPlRlcm1pbmFsPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoeSl7bGV0IHc9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7c3VwZXIuZmlyc3RVcGRhdGVkKHkpLHRoaXMudmlld1RhYnMmJnRoaXMudmlld1RhYnMubGVuZ3RoPjAmJmF3YWl0IHRoaXMubG9hZFZpZXcodGhpcy52aWV3VGFic1swXSl9Y3VycmVudFRlcm1pbmFsPWFvKHRoaXMsbSk7YXN5bmMgbGF1bmNoVGVybWluYWwoKXtsZXQgeT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtpZih0aGlzLmN1cnJlbnRUZXJtaW5hbCl7YXdhaXQgdGhpcy5jbG9zZVRlcm1pbmFsKCk7cmV0dXJufWxldCB3PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLHtEZWVzV29ya3NwYWNlVGVybWluYWw6RX09YXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFNJKCksdU90KSksQz1uZXcgRTtyZXR1cm4gQy5zZXR1cENvbW1hbmQ9dGhpcy50ZXJtaW5hbFNldHVwQ29tbWFuZCx0aGlzLmN1cnJlbnRUZXJtaW5hbD1DLHcuYXBwZW5kQ2hpbGQoQyksQy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLEMuc3R5bGUuekluZGV4PSIxMCIsQy5zdHlsZS50b3A9IjBweCIsQy5zdHlsZS5sZWZ0PSIyNDBweCIsQy5zdHlsZS5yaWdodD0iMHB4IixDLnN0eWxlLmJvdHRvbT0iMjRweCIsQy5zdHlsZS5vcGFjaXR5PSIwIixDLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixDLnN0eWxlLnRyYW5zaXRpb249ImFsbCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIixDLnN0eWxlLmJveFNoYWRvdz0iMCAyNXB4IDUwcHggLTEycHggcmdiKDAgMCAwIC8gMC41KSwgMCAwIDAgMXB4IHJnYigyNTUgMjU1IDI1NSAvIDAuMDUpIixDLnN0eWxlLm1heFdpZHRoPWBjYWxjKCR7dy5jbGllbnRXaWR0aH1weCAtMjQwcHgpYCxDLnN0eWxlLm1heEhlaWdodD1gY2FsYygke3cuY2xpZW50SGVpZ2h0fXB4IC0gMjRweClgLEMuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgpPT50aGlzLmNsb3NlVGVybWluYWwoKSksYXdhaXQgeS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLEMuc3R5bGUub3BhY2l0eT0iMSIsQy5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMCkgc2NhbGUoMSkiLEN9YXN5bmMgY2xvc2VUZXJtaW5hbCgpe2xldCB5PWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuY3VycmVudFRlcm1pbmFsJiYodGhpcy5jdXJyZW50VGVybWluYWwuc3R5bGUub3BhY2l0eT0iMCIsdGhpcy5jdXJyZW50VGVybWluYWwuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OSkiLGF3YWl0IHkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyNTApLHRoaXMuY3VycmVudFRlcm1pbmFsLnJlbW92ZSgpLHRoaXMuY3VycmVudFRlcm1pbmFsPW51bGwpfWN1cnJlbnRWaWV3O2FzeW5jIGxvYWRWaWV3KHkpe2xldCB3PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYXBwY29udGVudCIpLEU9bmV3IHkuZWxlbWVudDt0aGlzLmN1cnJlbnRWaWV3JiZ0aGlzLmN1cnJlbnRWaWV3LnJlbW92ZSgpLHcuYXBwZW5kQ2hpbGQoRSksdGhpcy5jdXJyZW50Vmlldz1FLHRoaXMuc2VsZWN0ZWRWaWV3PXksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1zZWxlY3QiLHtkZXRhaWw6e3ZpZXc6eX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zdGF0aWN7YW8ocixhKX19O3JldHVybiB2PXJ9KSgpO2ZlKCk7dmFyIEVPdD0oKT0+TWAKICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgfQogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1zaW1wbGUtbG9naW4gCiAgICAgIG5hbWU9Ik15IEFwcGxpY2F0aW9uIgogICAgICBAbG9naW49JHt0PT57Y29uc29sZS5sb2coIkxvZ2luIGV2ZW50IHJlY2VpdmVkOiIsdC5kZXRhaWwpO2xldCBlPXQuZGV0YWlsPy5kYXRhfHx0LmRldGFpbDtlPy51c2VybmFtZSYmZT8ucGFzc3dvcmQ/YWxlcnQoYExvZ2luIGF0dGVtcHRlZCB3aXRoOgpVc2VybmFtZTogJHtlLnVzZXJuYW1lfQpQYXNzd29yZDogJHtlLnBhc3N3b3JkfWApOmNvbnNvbGUuZXJyb3IoIkludmFsaWQgbG9naW4gZGF0YSBzdHJ1Y3R1cmU6Iix0LmRldGFpbCl9fQogICAgPgogICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICA8aDE+V2VsY29tZSE8L2gxPgogICAgICAgIDxwPlRoaXMgaXMgdGhlIHNsb3R0ZWQgY29udGVudCB0aGF0IGFwcGVhcnMgYWZ0ZXIgbG9naW4uPC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1zaW1wbGUtbG9naW4+CiAgPC9kaXY+CmA7ZmUoKTtCZSgpO3ZhciBOT3Q9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxLRWU9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjIsaT0wO2k8ZS5sZW5ndGg7aSsrKWE9cj9lW2ldLmNhbGwodCxhKTplW2ldLmNhbGwodCk7cmV0dXJuIHI/YTp2b2lkIDB9LGduMT0oKCk9PntsZXQgdD1bY2UoImRlZXMtc2ltcGxlLWxvZ2luIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W107dmFyIGY9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0QoKV0sTk90KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+Im5hbWUiaW4gdSxnZXQ6dT0+dS5uYW1lLHNldDoodSxkKT0+e3UubmFtZT1kfX0sbWV0YWRhdGE6Y30scyxsKSxOT3QobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxmPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1FT3Q7c3RhdGljIGRlbW9Hcm91cD0iU2ltcGxlIjsjZT1LRWUodGhpcyxzLCJBcHBsaWNhdGlvbiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubG9naW5Db250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICB9CgogICAgICAuc2xvdENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubG9naW4gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogMzYwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLmxvZ2luLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLnN1YmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAubG9naW4tY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sb2dpbi1jYXJkIGRlZXMtZm9ybSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmxvZ2luLWNhcmQgZGVlcy1pbnB1dC10ZXh0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmxvZ2luLWNhcmQgZGVlcy1mb3JtLXN1Ym1pdCB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0ibG9naW5Db250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+U2lnbiBpbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJoZWFkZXIiPkVudGVyIHlvdXIgY3JlZGVudGlhbHMgdG8gYWNjZXNzICR7dGhpcy5uYW1lfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIj4KICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0idXNlcm5hbWUiIGxhYmVsPSJVc2VybmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InBhc3N3b3JkIiBsYWJlbD0iUGFzc3dvcmQiIGlzUGFzc3dvcmRCb29sIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNpZ24gaW48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGFpbmVyIj4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoYyl7c3VwZXIuZmlyc3RVcGRhdGVkKGMpO2xldCB1PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTt1JiZ1LmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixkPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9naW4iLHtkZXRhaWw6ZC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0pfWFzeW5jIHN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKXtsZXQgYz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx1PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW4iKSxkPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW5Db250YWluZXIiKSxoPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2xvdENvbnRhaW5lciIpO3Uuc3R5bGUub3BhY2l0eT0iMCIsdS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGQuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsaC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGF3YWl0IGMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLGguc3R5bGUub3BhY2l0eT0iMSIsaC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMHB4KSIsYXdhaXQgYy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksaC5zdHlsZS5wb2ludGVyRXZlbnRzPSJhbGwifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxLRWUodGhpcyxsKX1zdGF0aWN7S0VlKHIsYSl9fTtyZXR1cm4gZj1yfSkoKTtnaigpO2ZlKCk7dmFyIFBPdD0oKT0+TWAKICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsiPgogICAgPGRlZXMtYmFkZ2UgLnRleHQ9JHsiRGVmYXVsdCJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InByaW1hcnkifSAudGV4dD0keyJQcmltYXJ5In0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsic3VjY2VzcyJ9IC50ZXh0PSR7IlN1Y2Nlc3MifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJ3YXJuaW5nIn0gLnRleHQ9JHsiV2FybmluZyJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7ImVycm9yIn0gLnRleHQ9JHsiRXJyb3IifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJwcmltYXJ5In0gLnJvdW5kZWQ9JHshMH0gLnRleHQ9JHsiUm91bmRlZCJ9PjwvZGVlcy1iYWRnZT4KICA8L2Rpdj4KYDtmZSgpO1N0KCk7QmUoKTt2YXIgVGo9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxkYz1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0seG4xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1iYWRnZSIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdO3ZhciBiPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgeD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOlN0cmluZ30pXSxmPVtEKHt0eXBlOlN0cmluZ30pXSxkPVtEKHt0eXBlOkJvb2xlYW59KV0sVGoodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4idHlwZSJpbiBtLGdldDptPT5tLnR5cGUsc2V0OihtLHYpPT57bS50eXBlPXZ9fSxtZXRhZGF0YTp4fSxzLGwpLFRqKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InRleHQiaW4gbSxnZXQ6bT0+bS50ZXh0LHNldDoobSx2KT0+e20udGV4dD12fX0sbWV0YWRhdGE6eH0sYyx1KSxUaih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdW5kZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJyb3VuZGVkImluIG0sZ2V0Om09Pm0ucm91bmRlZCxzZXQ6KG0sdik9PnttLnJvdW5kZWQ9dn19LG1ldGFkYXRhOnh9LGgsZyksVGoobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6eH0sbnVsbCxhKSxiPXI9ZS52YWx1ZSx4JiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnh9KX1zdGF0aWMgZGVtbz1QT3Q7I2U9ZGModGhpcyxzLCJkZWZhdWx0Iik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZSh4KXt0aGlzLiNlPXh9I3Q9KGRjKHRoaXMsbCksZGModGhpcyxjLCIiKSk7Z2V0IHRleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGV4dCh4KXt0aGlzLiN0PXh9I2E9KGRjKHRoaXMsdSksZGModGhpcyxoLCExKSk7Z2V0IHJvdW5kZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcm91bmRlZCh4KXt0aGlzLiNhPXh9Y29uc3RydWN0b3IoKXtzdXBlcigpLGRjKHRoaXMsZyksYzEuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5yb3VuZGVkIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICB9CgogICAgICAuYmFkZ2UuZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMzMzIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzY2NiIsIiNjY2MiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMDA1MGI5OwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogIzJlN2QzMjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICNlZDZjMDI7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogI2U0MDAyYjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9ImJhZGdlICR7dGhpcy50eXBlfSAke3RoaXMucm91bmRlZD8icm91bmRlZCI6IiJ9Ij4KICAgICAgICAke3RoaXMudGV4dH0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tkYyhyLGEpfX07cmV0dXJuIGI9cn0pKCk7ZmUoKTt2YXIgSU90PSgpPT5NYAogIDxzdHlsZT4KICAgIC5kZW1vQ29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgfQogICAgCiAgICAuc2VjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQogICAgCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9Db250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk5vbi1TZWxlY3RhYmxlIENoaXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkJhc2ljIGNoaXBzIHdpdGhvdXQgc2VsZWN0aW9uIGNhcGFiaWxpdHkuIFVzZSBmb3IgZGlzcGxheS1vbmx5IHRhZ3MuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibm9uZSIKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6InN0YXR1cyIsdmFsdWU6IkFjdGl2ZSJ9LHtrZXk6InRpZXIiLHZhbHVlOiJQcmVtaXVtIn0se2tleToicmVnaW9uIix2YWx1ZToiRVUtV2VzdCJ9LHtrZXk6InR5cGUiLHZhbHVlOiJFbnRlcnByaXNlIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TaW5nbGUgU2VsZWN0aW9uIENoaXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNsaWNrIHRvIHNlbGVjdCBvbmUgY2hpcCBhdCBhIHRpbWUuIFVzZWZ1bCBmb3IgZmlsdGVycyBhbmQgb3B0aW9ucy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJzaW5nbGUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJhbGwiLHZhbHVlOiJBbGwgUHJvamVjdHMifSx7a2V5OiJhY3RpdmUiLHZhbHVlOiJBY3RpdmUifSx7a2V5OiJhcmNoaXZlZCIsdmFsdWU6IkFyY2hpdmVkIn0se2tleToiZHJhZnRzIix2YWx1ZToiRHJhZnRzIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NdWx0aXBsZSBTZWxlY3Rpb24gQ2hpcHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2VsZWN0IG11bHRpcGxlIGNoaXBzIHNpbXVsdGFuZW91c2x5LiBHcmVhdCBmb3IgdGFnIHNlbGVjdGlvbi48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJtdWx0aXBsZSIKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6ImpzIix2YWx1ZToiSmF2YVNjcmlwdCJ9LHtrZXk6InRzIix2YWx1ZToiVHlwZVNjcmlwdCJ9LHtrZXk6InJlYWN0Iix2YWx1ZToiUmVhY3QifSx7a2V5OiJ2dWUiLHZhbHVlOiJWdWUifSx7a2V5OiJhbmd1bGFyIix2YWx1ZToiQW5ndWxhciJ9LHtrZXk6Im5vZGUiLHZhbHVlOiJOb2RlLmpzIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5SZW1vdmFibGUgQ2hpcHMgd2l0aCBLZXlzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNoaXBzIHdpdGggcmVtb3ZlIGJ1dHRvbnMgYW5kIGtleS12YWx1ZSBwYWlycy4gUGVyZmVjdCBmb3IgZHluYW1pYyBsaXN0cy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJzaW5nbGUiCiAgICAgICAgY2hpcHNBcmVSZW1vdmFibGUKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6ImVudiIsdmFsdWU6IlByb2R1Y3Rpb24ifSx7a2V5OiJ2ZXJzaW9uIix2YWx1ZToiMi40LjEifSx7a2V5OiJicmFuY2giLHZhbHVlOiJtYWluIn0se2tleToiYXV0aG9yIix2YWx1ZToiSm9obiBEb2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk1peGVkIENvbnRlbnQgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Db21iaW5pbmcgZGlmZmVyZW50IGNoaXAgdHlwZXMgZm9yIGNvbXBsZXggVUlzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im11bHRpcGxlIgogICAgICAgIGNoaXBzQXJlUmVtb3ZhYmxlCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJwcmlvcml0eSIsdmFsdWU6IkhpZ2gifSx7a2V5OiJzdGF0dXMiLHZhbHVlOiJJbiBQcm9ncmVzcyJ9LHtrZXk6ImJ1ZyIsdmFsdWU6IkJ1ZyJ9LHtrZXk6ImZlYXR1cmUiLHZhbHVlOiJGZWF0dXJlIn0se2tleToic3ByaW50Iix2YWx1ZToiU3ByaW50IDIzIn0se2tleToiYXNzaWduZWUiLHZhbHVlOiJBbGljZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogIDwvZGl2PgpgO2ZlKCk7U3QoKTtCZSgpO3ZhciBiNT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LHVyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxibjE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWNoaXBzIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W107dmFyIEU9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0QoKV0sZj1bRCh7dHlwZTpCb29sZWFufSldLGQ9W0Qoe3R5cGU6QXJyYXl9KV0sYj1bRCgpXSx2PVtEKHt0eXBlOkFycmF5fSldLGI1KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InNlbGVjdGlvbk1vZGUiaW4geixnZXQ6ej0+ei5zZWxlY3Rpb25Nb2RlLHNldDooeixQKT0+e3ouc2VsZWN0aW9uTW9kZT1QfX0sbWV0YWRhdGE6Q30scyxsKSxiNSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoaXBzQXJlUmVtb3ZhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iY2hpcHNBcmVSZW1vdmFibGUiaW4geixnZXQ6ej0+ei5jaGlwc0FyZVJlbW92YWJsZSxzZXQ6KHosUCk9Pnt6LmNoaXBzQXJlUmVtb3ZhYmxlPVB9fSxtZXRhZGF0YTpDfSxjLHUpLGI1KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZUNoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic2VsZWN0YWJsZUNoaXBzImluIHosZ2V0Ono9Pnouc2VsZWN0YWJsZUNoaXBzLHNldDooeixQKT0+e3ouc2VsZWN0YWJsZUNoaXBzPVB9fSxtZXRhZGF0YTpDfSxoLGcpLGI1KHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic2VsZWN0ZWRDaGlwImluIHosZ2V0Ono9Pnouc2VsZWN0ZWRDaGlwLHNldDooeixQKT0+e3ouc2VsZWN0ZWRDaGlwPVB9fSxtZXRhZGF0YTpDfSx4LG0pLGI1KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InNlbGVjdGVkQ2hpcHMiaW4geixnZXQ6ej0+ei5zZWxlY3RlZENoaXBzLHNldDooeixQKT0+e3ouc2VsZWN0ZWRDaGlwcz1QfX0sbWV0YWRhdGE6Q30seSx3KSxiNShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpDfSxudWxsLGEpLEU9cj1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPUlPdDsjZT11cih0aGlzLHMsInNpbmdsZSIpO2dldCBzZWxlY3Rpb25Nb2RlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNlbGVjdGlvbk1vZGUoQyl7dGhpcy4jZT1DfSN0PSh1cih0aGlzLGwpLHVyKHRoaXMsYywhMSkpO2dldCBjaGlwc0FyZVJlbW92YWJsZSgpe3JldHVybiB0aGlzLiN0fXNldCBjaGlwc0FyZVJlbW92YWJsZShDKXt0aGlzLiN0PUN9I2E9KHVyKHRoaXMsdSksdXIodGhpcyxoLFtdKSk7Z2V0IHNlbGVjdGFibGVDaGlwcygpe3JldHVybiB0aGlzLiNhfXNldCBzZWxlY3RhYmxlQ2hpcHMoQyl7dGhpcy4jYT1DfSNyPSh1cih0aGlzLGcpLHVyKHRoaXMseCxudWxsKSk7Z2V0IHNlbGVjdGVkQ2hpcCgpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RlZENoaXAoQyl7dGhpcy4jcj1DfSNpPSh1cih0aGlzLG0pLHVyKHRoaXMseSxbXSkpO2dldCBzZWxlY3RlZENoaXBzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkQ2hpcHMoQyl7dGhpcy4jaT1DfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx1cih0aGlzLHcpfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmNoaXAgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpOwogICAgICB9CgogICAgICAuY2hpcDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuY2hpcDphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwS2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tbGVmdDogLThweDsKICAgICAgICBwYWRkaW5nOiAwcHggOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCAuY2hpcEtleSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOwogICAgICB9CgogICAgICBkZWVzLWljb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgZGVlcy1pY29uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMuc2VsZWN0YWJsZUNoaXBzLm1hcChDPT5NYAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0Q2hpcChDKX0KICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuaXNTZWxlY3RlZChDKT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7Qy5rZXk/TWA8ZGl2IGNsYXNzPSJjaGlwS2V5Ij4ke0Mua2V5fTwvZGl2PmA6TWBgfSAke0MudmFsdWV9CiAgICAgICAgICAgICAgJHt0aGlzLmNoaXBzQXJlUmVtb3ZhYmxlP01gCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7ej0+e3ouc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVDaGlwKEMpfX0KICAgICAgICAgICAgICAgICAgICAgIC5pY29uPSR7ImZhOnhtYXJrIn0KICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIGA6TWBgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWlzU2VsZWN0ZWQoQyl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiP3RoaXMuc2VsZWN0ZWRDaGlwP3RoaXMuaXNTYW1lQ2hpcCh0aGlzLnNlbGVjdGVkQ2hpcCxDKTohMTp0aGlzLnNlbGVjdGVkQ2hpcHMuc29tZSh6PT50aGlzLmlzU2FtZUNoaXAoeixDKSl9aXNTYW1lQ2hpcChDLHope3JldHVybihDLmtleSYmei5rZXl8fEMudmFsdWU9PT16LnZhbHVlKSYmQy5rZXk9PT16LmtleX1hc3luYyBzZWxlY3RDaGlwKEMpe3RoaXMuc2VsZWN0aW9uTW9kZSE9PSJub25lIiYmKHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiP3RoaXMuaXNTZWxlY3RlZChDKT8odGhpcy5zZWxlY3RlZENoaXA9bnVsbCx0aGlzLnNlbGVjdGVkQ2hpcHM9W10pOih0aGlzLnNlbGVjdGVkQ2hpcD1DLHRoaXMuc2VsZWN0ZWRDaGlwcz1bQ10pOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aXBsZSImJih0aGlzLmlzU2VsZWN0ZWQoQyk/dGhpcy5zZWxlY3RlZENoaXBzPXRoaXMuc2VsZWN0ZWRDaGlwcy5maWx0ZXIoej0+IXRoaXMuaXNTYW1lQ2hpcCh6LEMpKTp0aGlzLnNlbGVjdGVkQ2hpcHM9Wy4uLnRoaXMuc2VsZWN0ZWRDaGlwcyxDXSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksY29uc29sZS5sb2codGhpcy5zZWxlY3RlZENoaXBzKSl9cmVtb3ZlQ2hpcChDKXt0aGlzLnNlbGVjdGFibGVDaGlwcz10aGlzLnNlbGVjdGFibGVDaGlwcy5maWx0ZXIoej0+IXRoaXMuaXNTYW1lQ2hpcCh6LEMpKSx0aGlzLnNlbGVjdGVkQ2hpcHM9dGhpcy5zZWxlY3RlZENoaXBzLmZpbHRlcih6PT4hdGhpcy5pc1NhbWVDaGlwKHosQykpLHRoaXMuc2VsZWN0ZWRDaGlwJiZ0aGlzLmlzU2FtZUNoaXAodGhpcy5zZWxlY3RlZENoaXAsQykmJih0aGlzLnNlbGVjdGVkQ2hpcD1udWxsKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7dXIocixhKX19O3JldHVybiBFPXJ9KSgpO2ZlKCk7dmFyIEZPdD0oKT0+TWAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoIiNkYXNoYm9hcmRHcmlkIiksYT1be2lkOiJtZXRyaWNzMSIseDowLHk6MCx3OjMsaDoyLHRpdGxlOiJSZXZlbnVlIixpY29uOiJsdWNpZGU6ZG9sbGFyU2lnbiIsY29udGVudDpNYAogICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyI+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAzMnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OyI+JDEyNCw1NjM8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjogIzIyYzU1ZTsgZm9udC1zaXplOiAxNHB4OyBtYXJnaW4tdG9wOiA4cHg7Ij7ihpEgMTIuNSUgZnJvbSBsYXN0IG1vbnRoPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0se2lkOiJtZXRyaWNzMiIseDozLHk6MCx3OjMsaDoyLHRpdGxlOiJVc2VycyIsaWNvbjoibHVjaWRlOnVzZXJzIixjb250ZW50Ok1gCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDMycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij44LDIzNDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjM2I4MmY2OyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPuKGkSA1LjIlIGZyb20gbGFzdCB3ZWVrPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0se2lkOiJjaGFydDEiLHg6Nix5OjAsdzo2LGg6NCx0aXRsZToiQW5hbHl0aWNzIixpY29uOiJsdWNpZGU6bGluZUNoYXJ0Iixjb250ZW50Ok1gCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IGhlaWdodDogMTAwJTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjNzE3MTdhOyI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpsaW5lQ2hhcnQifSBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAxNnB4OyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8ZGl2PkNoYXJ0IHZpc3VhbGl6YXRpb24gYXJlYTwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9XTtlLndpZGdldHM9YS5tYXAodj0+KHsuLi52fSkpLGUuY2VsbEhlaWdodD04MCxlLm1hcmdpbj17dG9wOjEwLHJpZ2h0OjEwLGJvdHRvbToxMCxsZWZ0OjEwfSxlLmVuYWJsZUFuaW1hdGlvbj0hMCxlLnNob3dHcmlkTGluZXM9ITE7bGV0IHI9ZS5nZXRMYXlvdXQoKS5tYXAodj0+KHsuLi52fSkpLGk9ZS53aWRnZXRzLm1hcCgodix5KT0+KHtpZDp2LmlkLHg6MCx5Onk9PT0wPzA6ZS53aWRnZXRzLnNsaWNlKDAseSkucmVkdWNlKCh3LEUpPT53K0UuaCwwKSx3OmUuY29sdW1ucyxoOnYuaH0pKTtlLmxheW91dHM9e2Jhc2U6cixtb2JpbGU6aX07bGV0IG89dC5xdWVyeVNlbGVjdG9yKCIjZGFzaGJvYXJkTGF5b3V0U3RhdHVzIikscz0oKT0+e2xldCB2PWUuZ2V0TGF5b3V0KCk7by50ZXh0Q29udGVudD1gQWN0aXZlIGJyZWFrcG9pbnQ6ICR7ZS5hY3RpdmVCcmVha3BvaW50fSBcdTIwMjIgVGlsZXM6ICR7di5sZW5ndGh9YH0sbD13aW5kb3cubWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNzY4cHgpIiksZj0oKT0+e2xldCB2PWwubWF0Y2hlcz8ibW9iaWxlIjoiYmFzZSI7ZS5hcHBseUJyZWFrcG9pbnRMYXlvdXQodikscygpfTt0eXBlb2YgbC5hZGRFdmVudExpc3RlbmVyPT0iZnVuY3Rpb24iP2wuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmKTpsLmFkZExpc3RlbmVyPy4oZiksZigpO2xldCBjPTQ7dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2godj0+e3N3aXRjaCh2LnRleHRDb250ZW50Py50cmltKCkpe2Nhc2UiVG9nZ2xlIEFuaW1hdGlvbiI6di5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmVuYWJsZUFuaW1hdGlvbj0hZS5lbmFibGVBbmltYXRpb259KTticmVhaztjYXNlIlRvZ2dsZSBHcmlkIExpbmVzIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2Uuc2hvd0dyaWRMaW5lcz0hZS5zaG93R3JpZExpbmVzfSk7YnJlYWs7Y2FzZSJBZGQgV2lkZ2V0Ijp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCB3PXtpZDpgd2lkZ2V0JHtjKyt9YCx4OjAseTowLHc6MyxoOjIsYXV0b1Bvc2l0aW9uOiEwLHRpdGxlOmBXaWRnZXQgJHtjLTF9YCxpY29uOiJsdWNpZGU6cGFja2FnZSIsY29udGVudDpNYAogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjogIzcxNzE3YTsiPk5ldyB3aWRnZXQgY29udGVudDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsgZm9udC1zaXplOiAyNHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OyI+JHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKX08L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgfTtlLmFkZFdpZGdldCh3LCEwKX0pO2JyZWFrO2Nhc2UiQ29tcGFjdCBHcmlkIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuY29tcGFjdCgpfSk7YnJlYWs7Y2FzZSJUb2dnbGUgRWRpdCBNb2RlIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZWRpdGFibGU9IWUuZWRpdGFibGUsdi50ZXh0Q29udGVudD1lLmVkaXRhYmxlPyJMb2NrIEdyaWQiOiJVbmxvY2sgR3JpZCJ9KTticmVhaztjYXNlIlJlc2V0IExheW91dCI6di5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmFwcGx5QnJlYWtwb2ludExheW91dChlLmFjdGl2ZUJyZWFrcG9pbnQpfSk7YnJlYWs7ZGVmYXVsdDpicmVha319KTtsZXQgZD1udWxsLGg9MCxnPSh2LHkpPT57bGV0IHc9ZS5nZXRMYXlvdXQoKTtjb25zb2xlLmdyb3VwKGBcdXsxRjUwNH0gJHt2fSBbRXZlbnQgIyR7KytofV1gKSxjb25zb2xlLmxvZygiVGltZXN0YW1wOiIsbmV3IERhdGUoKS50b0lTT1N0cmluZygpKSxjb25zb2xlLmxvZygiR3JpZCBDb25maWd1cmF0aW9uOiIse2NvbHVtbnM6ZS5jb2x1bW5zLGNlbGxIZWlnaHQ6ZS5jZWxsSGVpZ2h0LG1hcmdpbjplLm1hcmdpbixlZGl0YWJsZTplLmVkaXRhYmxlLGFjdGl2ZUJyZWFrcG9pbnQ6ZS5hY3RpdmVCcmVha3BvaW50fSksY29uc29sZS5sb2coIkN1cnJlbnQgTGF5b3V0OiIsdyksY29uc29sZS5sb2coIldpZGdldCBDb3VudDoiLHcubGVuZ3RoKSxjb25zb2xlLmxvZygiR3JpZCBCb3VuZHM6Iix7dG90YWxXaWRnZXRzOmUud2lkZ2V0cy5sZW5ndGgsbWF4WTpNYXRoLm1heCguLi53Lm1hcChFPT5FLnkrRS5oKSksb2NjdXBpZWQ6dy5tYXAoRT0+YCR7RS5pZH06ICgke0UueH0sJHtFLnl9KSAke0Uud314JHtFLmh9YCkuam9pbigiLCAiKX0pLHkmJmNvbnNvbGUubG9nKCJFdmVudCBEZXRhaWxzOiIseSksY29uc29sZS5ncm91cEVuZCgpfSxiPW5ldyBNdXRhdGlvbk9ic2VydmVyKCgpPT57bGV0IHY9ZS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucGxhY2Vob2xkZXIiKTtpZih2KXtsZXQgeT17bGVmdDp2LnN0eWxlLmxlZnQsdG9wOnYuc3R5bGUudG9wLHdpZHRoOnYuc3R5bGUud2lkdGgsaGVpZ2h0OnYuc3R5bGUuaGVpZ2h0fTtpZihKU09OLnN0cmluZ2lmeSh5KSE9PUpTT04uc3RyaW5naWZ5KGQpKXtjb25zb2xlLmdyb3VwKCJcdXsxRjRDRH0gUGxhY2Vob2xkZXIgUG9zaXRpb24gQ2hhbmdlZCIpLGNvbnNvbGUubG9nKCJQcmV2aW91czoiLGQpLGNvbnNvbGUubG9nKCJDdXJyZW50OiIseSk7bGV0IHc9ZS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZ3JpZC1jb250YWluZXIiKTt3JiZjb25zb2xlLmxvZygiR3JpZCBDb250YWluZXIgRGltZW5zaW9uczoiLHt3aWR0aDp3LmNsaWVudFdpZHRoLGhlaWdodDp3LmNsaWVudEhlaWdodH0pLGNvbnNvbGUuZ3JvdXBFbmQoKSxkPXl9fX0pO2Uuc2hhZG93Um9vdCYmYi5vYnNlcnZlKGUuc2hhZG93Um9vdCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITAsYXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJzdHlsZSJdfSksZygiSW5pdGlhbCBHcmlkIFN0YXRlIiksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtbW92ZSIsdj0+e2coIldpZGdldCBNb3ZlIix7d2lkZ2V0OnYuZGV0YWlsLndpZGdldCxkaXNwbGFjZWQ6di5kZXRhaWwuZGlzcGxhY2VkLHN3YXBwZWRXaXRoOnYuZGV0YWlsLnN3YXBwZWRXaXRofSl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1yZXNpemUiLHY9PntnKCJXaWRnZXQgUmVzaXplIix7d2lkZ2V0OnYuZGV0YWlsLndpZGdldCxkaXNwbGFjZWQ6di5kZXRhaWwuZGlzcGxhY2VkLHN3YXBwZWRXaXRoOnYuZGV0YWlsLnN3YXBwZWRXaXRofSl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1yZW1vdmUiLHY9PntnKCJXaWRnZXQgUmVtb3ZlIix7cmVtb3ZlZFdpZGdldDp2LmRldGFpbC53aWRnZXR9KSxzKCl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoImxheW91dC1jaGFuZ2UiLCgpPT57ZygiTGF5b3V0IENoYW5nZSIpLHMoKX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHY9PntsZXQgeT12LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0LWhlYWRlciIpLHc9di50YXJnZXQuY2xvc2VzdCgiLnJlc2l6ZS1oYW5kbGUiKTtpZih5fHx3KXtjb25zb2xlLmdyb3VwKGBcdXsxRjNBRn0gSW50ZXJhY3Rpb24gU3RhcnRlZDogJHt5PyJEcmFnIjoiUmVzaXplIn1gKSxjb25zb2xlLmxvZygiVGFyZ2V0IFdpZGdldDoiLHYudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLXdpZGdldC1pZCIpKSxjb25zb2xlLmxvZygiUG9pbnRlciBQb3NpdGlvbjoiLHt4OnYuY2xpZW50WCx5OnYuY2xpZW50WX0pLGNvbnNvbGUuZ3JvdXBFbmQoKTtsZXQgRT16PT57bGV0IFA9di50YXJnZXQuY2xvc2VzdCgiLndpZGdldCIpO1AmJmNvbnNvbGUubG9nKCJcdTIxOTRcdUZFMEYgUG9pbnRlciBNb3ZlOiIse3dpZGdldElkOlAuZ2V0QXR0cmlidXRlKCJkYXRhLXdpZGdldC1pZCIpLHBvc2l0aW9uOnt4OnouY2xpZW50WCx5OnouY2xpZW50WX0sZGVsdGE6e3g6ei5jbGllbnRYLXYuY2xpZW50WCx5OnouY2xpZW50WS12LmNsaWVudFl9fSl9LEM9KCk9Pntjb25zb2xlLmdyb3VwKCJcdXsxRjNDMX0gSW50ZXJhY3Rpb24gRW5kZWQiKSxnKCJGaW5hbCBTdGF0ZSBBZnRlciBJbnRlcmFjdGlvbiIpLGNvbnNvbGUuZ3JvdXBFbmQoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsRSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixDKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLEUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsQyl9fSk7bGV0IHg9ZS5hZGRXaWRnZXQuYmluZChlKTtlLmFkZFdpZGdldD0odix5KT0+e2NvbnNvbGUuZ3JvdXAoIlx1Mjc5NSBBZGRpbmcgV2lkZ2V0IiksY29uc29sZS5sb2coIk5ldyBXaWRnZXQ6Iix2KSxjb25zb2xlLmxvZygiQXV0byBQb3NpdGlvbjoiLHkpO2xldCB3PXgodix5KTtyZXR1cm4gZygiQWZ0ZXIgV2lkZ2V0IEFkZGVkIiksY29uc29sZS5ncm91cEVuZCgpLHd9O2xldCBtPWUuY29tcGFjdC5iaW5kKGUpO2UuY29tcGFjdD12PT57Y29uc29sZS5ncm91cCgiXHV7MUY1REN9XHVGRTBGIENvbXBhY3RpbmcgR3JpZCIpLGNvbnNvbGUubG9nKCJEaXJlY3Rpb246Iix2fHwidmVydGljYWwiKSxnKCJCZWZvcmUgQ29tcGFjdCIpO2xldCB5PW0odik7cmV0dXJuIGcoIkFmdGVyIENvbXBhY3QiKSxjb25zb2xlLmdyb3VwRW5kKCkseX0scygpfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke3RlYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjRmNGY1IiwiIzA5MDkwYiIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQoKICAgICAgICAgIC5kZW1vLWNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICB9CgogICAgICAgICAgLmRlbW8tY29udHJvbHMgZGVlcy1idXR0b24gewogICAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZ3JpZC1jb250YWluZXItd3JhcHBlciB7CiAgICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDYwMHB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB9CgogICAgICAgICAgLmluZm8gewogICAgICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgICB9CgogICAgICAgICAgI2Rhc2hib2FyZExheW91dFN0YXR1cyB7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFuaW1hdGlvbjoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlIEFuaW1hdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgoKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iRGlzcGxheToiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlIEdyaWQgTGluZXM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBXaWRnZXQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+Q29tcGFjdCBHcmlkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlc2V0IExheW91dDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgoKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iTW9kZToiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlIEVkaXQgTW9kZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWNvbnRhaW5lci13cmFwcGVyIj4KICAgICAgICAgIDxkZWVzLWRhc2hib2FyZGdyaWQgaWQ9ImRhc2hib2FyZEdyaWQiPjwvZGVlcy1kYXNoYm9hcmRncmlkPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICAgIDxkaXY+RHJhZyB0byByZXBvc2l0aW9uLCByZXNpemUgZnJvbSBoYW5kbGVzLCBvciByaWdodC1jbGljayBhIGhlYWRlciB0byBkZWxldGUgYSB0aWxlLjwvZGl2PgogICAgICAgICAgPGRpdiBpZD0iZGFzaGJvYXJkTGF5b3V0U3RhdHVzIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYDtmZSgpO3ZhciBPT3Q9W3AuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpbGwtY2hhbmdlOiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZW5hYmxlYW5pbWF0aW9uXSkgLmdyaWQtd2lkZ2V0IHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQuZHJhZ2dpbmcgewogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLXdpZGdldC5wbGFjZWhvbGRlciB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtd2lkZ2V0LnBsYWNlaG9sZGVyIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQucmVzaXppbmcgewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLndpZGdldC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtwLmJkVGhlbWUoIjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSkiLCIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLndpZGdldC1jb250ZW50IHsKICAgICAgICBib3gtc2hhZG93OiAke3AuYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCkiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5kcmFnZ2luZyAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJveC1zaGFkb3c6ICR7cC5iZFRoZW1lKCIwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuMjUpIiwiMCAxNnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjYpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgICAgY3Vyc29yOiBncmFiOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjphY3RpdmUgewogICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyLmxvY2tlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlci5sb2NrZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1ib2R5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtYm9keS5oYXMtaGVhZGVyIHsKICAgICAgICB0b3A6IDQ1cHg7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1lIHsKICAgICAgICBjdXJzb3I6IGV3LXJlc2l6ZTsKICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICByaWdodDogLTZweDsKICAgICAgICB0b3A6IDEwJTsKICAgICAgICBoZWlnaHQ6IDgwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtcyB7CiAgICAgICAgY3Vyc29yOiBucy1yZXNpemU7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgYm90dG9tOiAtNnB4OwogICAgICAgIGxlZnQ6IDEwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIGN1cnNvcjogc2UtcmVzaXplOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICByaWdodDogLTJweDsKICAgICAgICBib3R0b206IC0ycHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXI6OmFmdGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtcGxhY2Vob2xkZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4xOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHotaW5kZXg6IC0xOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lLXZlcnRpY2FsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmUtaG9yaXpvbnRhbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQogIGBdO3ZhciBkS2E9MTAsSkVlPXQ9PntpZih0eXBlb2YgdD09Im51bWJlciIpcmV0dXJue2hvcml6b250YWw6dCx2ZXJ0aWNhbDp0LHRvcDp0LHJpZ2h0OnQsYm90dG9tOnQsbGVmdDp0fTtsZXQgZT17dG9wOnQudG9wPz8xMCxyaWdodDp0LnJpZ2h0Pz8xMCxib3R0b206dC5ib3R0b20/PzEwLGxlZnQ6dC5sZWZ0Pz8xMH07cmV0dXJuey4uLmUsaG9yaXpvbnRhbDooZS5sZWZ0K2UucmlnaHQpLzIsdmVydGljYWw6KGUudG9wK2UuYm90dG9tKS8yfX0sSE90PSh0LGUsYSxyLGkpPT57bGV0IG89YS5ob3Jpem9udGFsKihlKzEpLHM9TWF0aC5tYXgodC1vLDApLGw9ZT4wP3MvZTowLGY9aT09PSJhdXRvIj9sOnI7cmV0dXJue2NvbnRhaW5lcldpZHRoOnQsY2VsbFdpZHRoUHg6bCxtYXJnaW5Ib3Jpem9udGFsUHg6YS5ob3Jpem9udGFsLGNlbGxIZWlnaHRQeDpmLG1hcmdpblZlcnRpY2FsUHg6YS52ZXJ0aWNhbH19LHFPdD0odCxlLGEpPT57aWYodC5sZW5ndGg9PT0wKXJldHVybiAwO2xldCByPU1hdGgubWF4KC4uLnQubWFwKGk9PmkueStpLmgpLDApO3JldHVybiByKmErKHIrMSkqZS52ZXJ0aWNhbH0sQk90PSh0LGUsYSxyLGkpPT5lPHQueCt0LncmJmUrcj50LngmJmE8dC55K3QuaCYmYStpPnQueSxxST0odCxlLGEscixpPWUudyxvPWUuaCk9PnQuZmlsdGVyKHM9PnMuaWQ9PT1lLmlkPyExOkJPdChzLGEscixpLG8pKSxST3Q9KHQsZSxhLHIpPT5xSSh0LGUsYSxyKS5sZW5ndGg+MCx2bjE9dD0+KHsuLi50fSkseW4xPXQ9PnQubWFwKHZuMSksZU5lPSh0LGUsYSxyKT0+e2ZvcihsZXQgbz0wO288MjAwO28rKylmb3IobGV0IHM9MDtzPD1yLWU7cysrKWlmKCF0LnNvbWUoZj0+Qk90KGYscyxvLGUsYSkpKXJldHVybnt4OnMseTpvfTtyZXR1cm57eDowLHk6dC5yZWR1Y2UoKG8scyk9Pk1hdGgubWF4KG8scy55K3MuaCksMCl9fSxocz0odCxlLGEscixpKT0+e2xldCBvPXluMSh0KSxzPW8uZmluZChoPT5oLmlkPT09ZSksbD10LmZpbmQoaD0+aC5pZD09PWUpO2lmKCFzfHwhbClyZXR1cm4gbnVsbDtsZXQgZj17eDphLngseTphLnksdzphLnc/P3MudyxoOmEuaD8/cy5ofTtzLng9Zi54LHMueT1mLnkscy53PWYudyxzLmg9Zi5oO2xldCBjPXFJKG8scyxmLngsZi55LGYudyxmLmgpO2lmKGMubGVuZ3RoPT09MClyZXR1cm57d2lkZ2V0czpvLG1vdmVkV2lkZ2V0czpbcy5pZF19O2lmKGMubGVuZ3RoPT09MSl7bGV0IGg9Y1swXTtpZighaC5sb2NrZWQmJiFoLm5vTW92ZSYmaC53PT09cy53JiZoLmg9PT1zLmgpe2xldCBnPW8uZmluZChiPT5iLmlkPT09aC5pZCk7aWYoZyl7bGV0IGI9bCx4PXt4OmcueCx5OmcueX07aWYoZy54PWIueCxnLnk9Yi55LHFJKG8scyxzLngscy55LHMudyxzLmgpLmxlbmd0aD09PTAmJnFJKG8sZyxnLngsZy55LGcudyxnLmgpLmxlbmd0aD09PTApcmV0dXJue3dpZGdldHM6byxtb3ZlZFdpZGdldHM6W3MuaWQsZy5pZF0sc3dhcHBlZFdpdGg6Zy5pZH07Zy54PXgueCxnLnk9eC55fX19bGV0IHU9bmV3IFNldChbcy5pZF0pO2ZvcihsZXQgaCBvZiBjKXtpZihoLmxvY2tlZHx8aC5ub01vdmUpcmV0dXJuIG51bGw7bGV0IGc9by5maW5kKG09Pm0uaWQ9PT1oLmlkKTtpZighZyljb250aW51ZTtsZXQgYj1vLmZpbHRlcihtPT5tLmlkIT09aC5pZCkseD1lTmUoYixnLncsZy5oLHIpO2cueD14LngsZy55PXgueSx1LmFkZChnLmlkKX1yZXR1cm4gcUkobyxzLHMueCxzLnkscy53LHMuaCkubGVuZ3RoPjA/bnVsbDp7d2lkZ2V0czpvLG1vdmVkV2lkZ2V0czpBcnJheS5mcm9tKHUpfX0sVk90PSh0LGU9InZlcnRpY2FsIik9PntsZXQgYT1bLi4udF0uc29ydCgocixpKT0+ZT09PSJ2ZXJ0aWNhbCI/ci55IT09aS55P3IueS1pLnk6ci54LWkueDpyLnghPT1pLng/ci54LWkueDpyLnktaS55KTtmb3IobGV0IHIgb2YgYSlpZighKHIubG9ja2VkfHxyLm5vTW92ZSkpaWYoZT09PSJ2ZXJ0aWNhbCIpZm9yKDtyLnk+MCYmIVJPdCh0LHIsci54LHIueS0xKTspci55LT0xO2Vsc2UgZm9yKDtyLng+MCYmIVJPdCh0LHIsci54LTEsci55KTspci54LT0xfSxVT3Q9KHQsZSk9PnQubWFwKGE9PntsZXQgcj1lLmZpbmQoaT0+aS5pZD09PWEuaWQpO3JldHVybiByP3suLi5hLC4uLnJ9OmF9KTt2YXIgak90PSh7cG9pbnRlcjp0LGNvbnRhaW5lclJlY3Q6ZSxtZXRyaWNzOmEsY29sdW1uczpyLHdpZGdldDppLHJ0bDpvLGRyYWdPZmZzZXRYOnM9MCxkcmFnT2Zmc2V0WTpsPTB9KT0+e2xldCBmPXQuY2xpZW50WC1lLmxlZnQtcyxjPXQuY2xpZW50WS1lLnRvcC1sLHU9YS5tYXJnaW5Ib3Jpem9udGFsUHgsZD1hLm1hcmdpblZlcnRpY2FsUHgsaD1hLmNlbGxXaWR0aFB4LGc9YS5jZWxsSGVpZ2h0UHgsYj0oQyx6LFApPT5NYXRoLm1heCh6LE1hdGgubWluKFAsQykpLHg9YihmLXUsMCxlLndpZHRoLXUpLG09YihjLWQsMCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHY9aCt1LHk9ZytkLHc9TWF0aC5yb3VuZCh4L3YpO28mJih3PXItaS53LXcpLHc9Yih3LDAsci1pLncpO2xldCBFPWIoTWF0aC5yb3VuZChtL3kpLDAsTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO3JldHVybnt4OncseTpFfX0sV090PSh7cG9pbnRlcjp0LGNvbnRhaW5lclJlY3Q6ZSxtZXRyaWNzOmEsc3RhcnRXaWR0aDpyLHN0YXJ0SGVpZ2h0Omksc3RhcnRQb2ludGVyOm8saGFuZGxlcjpzLHdpZGdldDpsLGNvbHVtbnM6Zn0pPT57bGV0IGM9dC5jbGllbnRYLW8uY2xpZW50WCx1PXQuY2xpZW50WS1vLmNsaWVudFksZD1yLGg9aSxnPWEuY2VsbFdpZHRoUHgrYS5tYXJnaW5Ib3Jpem9udGFsUHgsYj1hLmNlbGxIZWlnaHRQeCthLm1hcmdpblZlcnRpY2FsUHg7aWYocy5pbmNsdWRlcygiZSIpKXtsZXQgdj1NYXRoLnJvdW5kKGMvZyk7ZD1yK3Z9aWYocy5pbmNsdWRlcygicyIpKXtsZXQgdj1NYXRoLnJvdW5kKHUvYik7aD1pK3Z9bGV0IHg9TWF0aC5tYXgobC5taW5XfHwxLE1hdGgubWluKGQsbC5tYXhXfHxmLWwueCkpLG09TWF0aC5tYXgobC5taW5IfHwxLE1hdGgubWluKGgsbC5tYXhIfHxOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpO3JldHVybnt3aWR0aDp4LGhlaWdodDptfX07dmFyIEdPdD0oe3dpZGdldDp0LGhvc3Q6ZSxldmVudDphfSk9PntsZXQgcj1be25hbWU6IkRlbGV0ZSB0aWxlIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmFzeW5jKCk9PihlLnJlbW92ZVdpZGdldCh0LmlkKSxudWxsKX1dO1d0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGEscil9O2ZlKCk7RnQoKTt2YXIgQTI9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxIdD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sd24xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1kYXNoYm9hcmRncmlkIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W10sZCxoPVtdLGc9W10sYix4PVtdLG09W10sdix5PVtdLHc9W10sRSxDPVtdLHo9W10sUCxfPVtdLCQ9W10sSCxMPVtdLGs9W10sTixTPVtdLFQ9W10sUixBPVtdLEY9W10sYWUsVj1bXSxTZT1bXSx6ZSxXPVtdLE5lPVtdLFJlLFg9W10sST1bXSxPLEc9W10saj1bXSxzZSxrZT1bXSxEZT1bXTt2YXIgT2U9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBVPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6QXJyYXl9KV0sZj1bRCh7dHlwZTpOdW1iZXJ9KV0sZD1bRCh7dHlwZTpPYmplY3R9KV0sYj1bRCh7dHlwZTpOdW1iZXJ9KV0sdj1bRCh7dHlwZTpCb29sZWFufSldLEU9W0Qoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFA9W0Qoe3R5cGU6U3RyaW5nfSldLEg9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxOPVtEKHt0eXBlOkJvb2xlYW59KV0sUj1bRCh7YXR0cmlidXRlOiExfSldLGFlPVtEKHt0eXBlOlN0cmluZ30pXSx6ZT1bbGUoKV0sUmU9W2xlKCldLE89W2xlKCldLHNlPVtsZSgpXSxBMih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJ3aWRnZXRzImluIEIsZ2V0OkI9PkIud2lkZ2V0cyxzZXQ6KEIsb2UpPT57Qi53aWRnZXRzPW9lfX0sbWV0YWRhdGE6VX0scyxsKSxBMih0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlbGxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJjZWxsSGVpZ2h0ImluIEIsZ2V0OkI9PkIuY2VsbEhlaWdodCxzZXQ6KEIsb2UpPT57Qi5jZWxsSGVpZ2h0PW9lfX0sbWV0YWRhdGE6VX0sYyx1KSxBMih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hcmdpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Qj0+Im1hcmdpbiJpbiBCLGdldDpCPT5CLm1hcmdpbixzZXQ6KEIsb2UpPT57Qi5tYXJnaW49b2V9fSxtZXRhZGF0YTpVfSxoLGcpLEEyKHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Qj0+ImNvbHVtbnMiaW4gQixnZXQ6Qj0+Qi5jb2x1bW5zLHNldDooQixvZSk9PntCLmNvbHVtbnM9b2V9fSxtZXRhZGF0YTpVfSx4LG0pLEEyKHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJlZGl0YWJsZSJpbiBCLGdldDpCPT5CLmVkaXRhYmxlLHNldDooQixvZSk9PntCLmVkaXRhYmxlPW9lfX0sbWV0YWRhdGE6VX0seSx3KSxBMih0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZUFuaW1hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Qj0+ImVuYWJsZUFuaW1hdGlvbiJpbiBCLGdldDpCPT5CLmVuYWJsZUFuaW1hdGlvbixzZXQ6KEIsb2UpPT57Qi5lbmFibGVBbmltYXRpb249b2V9fSxtZXRhZGF0YTpVfSxDLHopLEEyKHRoaXMsbnVsbCxQLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VsbEhlaWdodFVuaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJjZWxsSGVpZ2h0VW5pdCJpbiBCLGdldDpCPT5CLmNlbGxIZWlnaHRVbml0LHNldDooQixvZSk9PntCLmNlbGxIZWlnaHRVbml0PW9lfX0sbWV0YWRhdGE6VX0sXywkKSxBMih0aGlzLG51bGwsSCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJ0bCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Qj0+InJ0bCJpbiBCLGdldDpCPT5CLnJ0bCxzZXQ6KEIsb2UpPT57Qi5ydGw9b2V9fSxtZXRhZGF0YTpVfSxMLGspLEEyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0dyaWRMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Qj0+InNob3dHcmlkTGluZXMiaW4gQixnZXQ6Qj0+Qi5zaG93R3JpZExpbmVzLHNldDooQixvZSk9PntCLnNob3dHcmlkTGluZXM9b2V9fSxtZXRhZGF0YTpVfSxTLFQpLEEyKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGF5b3V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Qj0+ImxheW91dHMiaW4gQixnZXQ6Qj0+Qi5sYXlvdXRzLHNldDooQixvZSk9PntCLmxheW91dHM9b2V9fSxtZXRhZGF0YTpVfSxBLEYpLEEyKHRoaXMsbnVsbCxhZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJyZWFrcG9pbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJhY3RpdmVCcmVha3BvaW50ImluIEIsZ2V0OkI9PkIuYWN0aXZlQnJlYWtwb2ludCxzZXQ6KEIsb2UpPT57Qi5hY3RpdmVCcmVha3BvaW50PW9lfX0sbWV0YWRhdGE6VX0sVixTZSksQTIodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Qj0+InBsYWNlaG9sZGVyUG9zaXRpb24iaW4gQixnZXQ6Qj0+Qi5wbGFjZWhvbGRlclBvc2l0aW9uLHNldDooQixvZSk9PntCLnBsYWNlaG9sZGVyUG9zaXRpb249b2V9fSxtZXRhZGF0YTpVfSxXLE5lKSxBMih0aGlzLG51bGwsUmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpCPT4ibWV0cmljcyJpbiBCLGdldDpCPT5CLm1ldHJpY3Msc2V0OihCLG9lKT0+e0IubWV0cmljcz1vZX19LG1ldGFkYXRhOlV9LFgsSSksQTIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZE1hcmdpbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkI9PiJyZXNvbHZlZE1hcmdpbnMiaW4gQixnZXQ6Qj0+Qi5yZXNvbHZlZE1hcmdpbnMsc2V0OihCLG9lKT0+e0IucmVzb2x2ZWRNYXJnaW5zPW9lfX0sbWV0YWRhdGE6VX0sRyxqKSxBMih0aGlzLG51bGwsc2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcmV2aWV3V2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Qj0+InByZXZpZXdXaWRnZXRzImluIEIsZ2V0OkI9PkIucHJldmlld1dpZGdldHMsc2V0OihCLG9lKT0+e0IucHJldmlld1dpZGdldHM9b2V9fSxtZXRhZGF0YTpVfSxrZSxEZSksQTIobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6VX0sbnVsbCxhKSxPZT1yPWUudmFsdWUsVSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpVfSl9c3RhdGljIGRlbW89Rk90O3N0YXRpYyBzdHlsZXM9T090OyNlPUh0KHRoaXMscyxbXSk7Z2V0IHdpZGdldHMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgd2lkZ2V0cyhVKXt0aGlzLiNlPVV9I3Q9KEh0KHRoaXMsbCksSHQodGhpcyxjLDgwKSk7Z2V0IGNlbGxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY2VsbEhlaWdodChVKXt0aGlzLiN0PVV9I2E9KEh0KHRoaXMsdSksSHQodGhpcyxoLDEwKSk7Z2V0IG1hcmdpbigpe3JldHVybiB0aGlzLiNhfXNldCBtYXJnaW4oVSl7dGhpcy4jYT1VfSNyPShIdCh0aGlzLGcpLEh0KHRoaXMseCwxMikpO2dldCBjb2x1bW5zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNvbHVtbnMoVSl7dGhpcy4jcj1VfSNpPShIdCh0aGlzLG0pLEh0KHRoaXMseSwhMCkpO2dldCBlZGl0YWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCBlZGl0YWJsZShVKXt0aGlzLiNpPVV9I289KEh0KHRoaXMsdyksSHQodGhpcyxDLCEwKSk7Z2V0IGVuYWJsZUFuaW1hdGlvbigpe3JldHVybiB0aGlzLiNvfXNldCBlbmFibGVBbmltYXRpb24oVSl7dGhpcy4jbz1VfSNzPShIdCh0aGlzLHopLEh0KHRoaXMsXywicHgiKSk7Z2V0IGNlbGxIZWlnaHRVbml0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNlbGxIZWlnaHRVbml0KFUpe3RoaXMuI3M9VX0jbj0oSHQodGhpcywkKSxIdCh0aGlzLEwsITEpKTtnZXQgcnRsKCl7cmV0dXJuIHRoaXMuI259c2V0IHJ0bChVKXt0aGlzLiNuPVV9I2w9KEh0KHRoaXMsayksSHQodGhpcyxTLCExKSk7Z2V0IHNob3dHcmlkTGluZXMoKXtyZXR1cm4gdGhpcy4jbH1zZXQgc2hvd0dyaWRMaW5lcyhVKXt0aGlzLiNsPVV9I2M9KEh0KHRoaXMsVCksSHQodGhpcyxBLHZvaWQgMCkpO2dldCBsYXlvdXRzKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGxheW91dHMoVSl7dGhpcy4jYz1VfSNkPShIdCh0aGlzLEYpLEh0KHRoaXMsViwiYmFzZSIpKTtnZXQgYWN0aXZlQnJlYWtwb2ludCgpe3JldHVybiB0aGlzLiNkfXNldCBhY3RpdmVCcmVha3BvaW50KFUpe3RoaXMuI2Q9VX0jZj0oSHQodGhpcyxTZSksSHQodGhpcyxXLG51bGwpKTtnZXQgcGxhY2Vob2xkZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLiNmfXNldCBwbGFjZWhvbGRlclBvc2l0aW9uKFUpe3RoaXMuI2Y9VX0jdT0oSHQodGhpcyxOZSksSHQodGhpcyxYLG51bGwpKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiN1fXNldCBtZXRyaWNzKFUpe3RoaXMuI3U9VX0jcD0oSHQodGhpcyxJKSxIdCh0aGlzLEcsbnVsbCkpO2dldCByZXNvbHZlZE1hcmdpbnMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgcmVzb2x2ZWRNYXJnaW5zKFUpe3RoaXMuI3A9VX0jaD0oSHQodGhpcyxqKSxIdCh0aGlzLGtlLG51bGwpKTtnZXQgcHJldmlld1dpZGdldHMoKXtyZXR1cm4gdGhpcy4jaH1zZXQgcHJldmlld1dpZGdldHMoVSl7dGhpcy4jaD1VfWNvbnRhaW5lckJvdW5kcz0oSHQodGhpcyxEZSksbnVsbCk7ZHJhZ1N0YXRlPW51bGw7cmVzaXplU3RhdGU9bnVsbDtyZXNpemVPYnNlcnZlcjtpbnRlcmFjdGlvbkFjdGl2ZT0hMTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb21wdXRlTWV0cmljcygpLHRoaXMub2JzZXJ2ZVJlc2l6ZSgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX11cGRhdGVkKFUpeyhVLmhhcygibWFyZ2luIil8fFUuaGFzKCJjb2x1bW5zIil8fFUuaGFzKCJjZWxsSGVpZ2h0Iil8fFUuaGFzKCJjZWxsSGVpZ2h0VW5pdCIpKSYmdGhpcy5jb21wdXRlTWV0cmljcygpLFUuaGFzKCJ3aWRnZXRzIikmJiF0aGlzLmludGVyYWN0aW9uQWN0aXZlJiZ0aGlzLm5vdGlmeUxheW91dENoYW5nZSgpfXJlbmRlcigpe2xldCBVPXRoaXMud2lkZ2V0cztpZihVLmxlbmd0aD09PTApcmV0dXJuIE1gCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bGF5b3V0R3JpZCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPGRpdj5ObyB3aWRnZXRzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+QWRkIHdpZGdldHMgdG8gcG9wdWxhdGUgdGhlIGRhc2hib2FyZDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgO2xldCBCPXRoaXMuZW5zdXJlTWV0cmljcygpLG9lPXRoaXMucmVzb2x2ZWRNYXJnaW5zPz9KRWUodGhpcy5tYXJnaW4pLHZlPUIuY2VsbEhlaWdodFB4LHllPXRoaXMucHJldmlld1dpZGdldHM/P3RoaXMud2lkZ2V0cywkZT1xT3QoeWUsb2UsdmUpLG5lPXRoaXMucHJldmlld1dpZGdldHM/bmV3IE1hcCh0aGlzLnByZXZpZXdXaWRnZXRzLm1hcChyZT0+W3JlLmlkLHJlXSkpOm51bGw7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OiAkeyRlfXB4OyI+CiAgICAgICAgJHt0aGlzLnNob3dHcmlkTGluZXM/dGhpcy5yZW5kZXJHcmlkTGluZXMoQiwkZSk6bnVsbH0KICAgICAgICAke1UubWFwKHJlPT50aGlzLnJlbmRlcldpZGdldChyZSxCLG9lLG5lKSl9CiAgICAgICAgJHt0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/dGhpcy5yZW5kZXJQbGFjZWhvbGRlcihCLG9lKTpudWxsfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyR3JpZExpbmVzKFUsQil7bGV0IG9lPVtdLHZlPVtdLHllPVUuY2VsbFdpZHRoUHgrVS5tYXJnaW5Ib3Jpem9udGFsUHgsJGU9VS5jZWxsSGVpZ2h0UHgrVS5tYXJnaW5WZXJ0aWNhbFB4O2ZvcihsZXQgcmU9MDtyZTw9dGhpcy5jb2x1bW5zO3JlKyspe2xldCBnZT1yZSp5ZStVLm1hcmdpbkhvcml6b250YWxQeCxFZT10aGlzLnB4VG9QZXJjZW50KGdlLFUuY29udGFpbmVyV2lkdGgpO29lLnB1c2goTWA8ZGl2IGNsYXNzPSJncmlkLWxpbmUtdmVydGljYWwiIHN0eWxlPSJsZWZ0OiAke0VlfSU7Ij48L2Rpdj5gKX1sZXQgbmU9TWF0aC5jZWlsKEIvJGUpO2ZvcihsZXQgcmU9MDtyZTw9bmU7cmUrKyl7bGV0IGdlPXJlKiRlO3ZlLnB1c2goTWA8ZGl2IGNsYXNzPSJncmlkLWxpbmUtaG9yaXpvbnRhbCIgc3R5bGU9InRvcDogJHtnZX1weDsiPjwvZGl2PmApfXJldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxpbmVzIj4KICAgICAgICAke29lfQogICAgICAgICR7dmV9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJXaWRnZXQoVSxCLG9lLHZlKXtsZXQgeWU9dGhpcy5kcmFnU3RhdGU/LndpZGdldElkPT09VS5pZCwkZT10aGlzLnJlc2l6ZVN0YXRlPy53aWRnZXRJZD09PVUuaWQsbmU9VS5sb2NrZWR8fCF0aGlzLmVkaXRhYmxlLHJlPXZlPy5nZXQoVS5pZCk/P251bGwsZ2U9eWU/VTpyZT8/VSxFZT10aGlzLmNvbXB1dGVXaWRnZXRSZWN0KGdlLEIsb2UpLHJ0PXRoaXMucnRsPyJyaWdodCI6ImxlZnQiLHVlPXRoaXMucHhUb1BlcmNlbnQoRWUubGVmdCxCLmNvbnRhaW5lcldpZHRoKSxaPXRoaXMucHhUb1BlcmNlbnQoRWUud2lkdGgsQi5jb250YWluZXJXaWR0aCksSj0iIjtpZih5ZSYmdGhpcy5kcmFnU3RhdGU/LmN1cnJlbnRQb2ludGVyKXtsZXQgZGU9dGhpcy5kcmFnU3RhdGUuY3VycmVudFBvaW50ZXIsQWU9dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksSGU9ZGUuY2xpZW50WC1BZS5sZWZ0LXRoaXMuZHJhZ1N0YXRlLm9mZnNldFgtRWUubGVmdCxNdD1kZS5jbGllbnRZLUFlLnRvcC10aGlzLmRyYWdTdGF0ZS5vZmZzZXRZLUVlLnRvcDtKPWB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke0hlfXB4LCAke010fXB4KTtgfXJldHVybiBNYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImdyaWQtd2lkZ2V0ICR7eWU/ImRyYWdnaW5nIjoiIn0gJHskZT8icmVzaXppbmciOiIifSIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke3J0fTogJHt1ZX0lOwogICAgICAgICAgdG9wOiAke0VlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke1p9JTsKICAgICAgICAgIGhlaWdodDogJHtFZS5oZWlnaHR9cHg7CiAgICAgICAgICAke0p9CiAgICAgICAgIgogICAgICAgIGRhdGEtd2lkZ2V0LWlkPSR7VS5pZH0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij4KICAgICAgICAgICR7VS50aXRsZT9NYAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0id2lkZ2V0LWhlYWRlciAke25lPyJsb2NrZWQiOiIifSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7IW5lJiYhVS5ub01vdmU/ZGU9PnRoaXMuc3RhcnREcmFnKGRlLFUpOm51bGx9CiAgICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke2RlPT50aGlzLmhhbmRsZVdpZGdldENvbnRleHRNZW51KGRlLFUpfQogICAgICAgICAgICAgICAgICB0YWJpbmRleD0keyFuZSYmIVUubm9Nb3ZlPzA6LTF9CiAgICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7ZGU9PnRoaXMuaGFuZGxlSGVhZGVyS2V5ZG93bihkZSxVKX0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHtVLmljb24/TWA8ZGVlcy1pY29uIC5pY29uPSR7VS5pY29ufT48L2RlZXMtaWNvbj5gOm51bGx9CiAgICAgICAgICAgICAgICAgICR7VS50aXRsZX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6bnVsbH0KICAgICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1ib2R5ICR7VS50aXRsZT8iaGFzLWhlYWRlciI6IiJ9Ij4KICAgICAgICAgICAgJHtVLmNvbnRlbnR9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7IW5lJiYhVS5ub1Jlc2l6ZT9NYAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLWUiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke2RlPT50aGlzLnN0YXJ0UmVzaXplKGRlLFUsImUiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zIgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHtkZT0+dGhpcy5zdGFydFJlc2l6ZShkZSxVLCJzIil9CiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtc2UiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke2RlPT50aGlzLnN0YXJ0UmVzaXplKGRlLFUsInNlIil9CiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIoVSxCKXtpZighdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uKXJldHVybiBNYGA7bGV0IG9lPXRoaXMuY29tcHV0ZVdpZGdldFJlY3QodGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uLFUsQiksdmU9dGhpcy5ydGw/InJpZ2h0IjoibGVmdCIseWU9dGhpcy5weFRvUGVyY2VudChvZS5sZWZ0LFUuY29udGFpbmVyV2lkdGgpLCRlPXRoaXMucHhUb1BlcmNlbnQob2Uud2lkdGgsVS5jb250YWluZXJXaWR0aCk7cmV0dXJuIE1gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iZ3JpZC13aWRnZXQgcGxhY2Vob2xkZXIiCiAgICAgICAgc3R5bGU9IgogICAgICAgICAgJHt2ZX06ICR7eWV9JTsKICAgICAgICAgIHRvcDogJHtvZS50b3B9cHg7CiAgICAgICAgICB3aWR0aDogJHskZX0lOwogICAgICAgICAgaGVpZ2h0OiAke29lLmhlaWdodH1weDsKICAgICAgICAiCiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtY29udGVudCI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGFydERyYWcoVSxCKXtpZighdGhpcy5lZGl0YWJsZXx8Qi5ub01vdmV8fEIubG9ja2VkKXJldHVybjtVLnByZXZlbnREZWZhdWx0KCksVS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgb2U9VS5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoIi5ncmlkLXdpZGdldCIpO2lmKCFvZSlyZXR1cm47bGV0IHZlPW9lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuY29udGFpbmVyQm91bmRzPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5lbnN1cmVNZXRyaWNzKCksdGhpcy5kcmFnU3RhdGU9e3dpZGdldElkOkIuaWQscG9pbnRlcklkOlUucG9pbnRlcklkLG9mZnNldFg6VS5jbGllbnRYLXZlLmxlZnQsb2Zmc2V0WTpVLmNsaWVudFktdmUudG9wLHN0YXJ0OntpZDpCLmlkLHg6Qi54LHk6Qi55LHc6Qi53LGg6Qi5ofSxwcmV2aW91c1Bvc2l0aW9uOntpZDpCLmlkLHg6Qi54LHk6Qi55LHc6Qi53LGg6Qi5ofSxjdXJyZW50UG9pbnRlcjp7Y2xpZW50WDpVLmNsaWVudFgsY2xpZW50WTpVLmNsaWVudFl9LGxhc3RQbGFjZW1lbnQ6bnVsbH0sdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZT0hMCxVLmN1cnJlbnRUYXJnZXQuc2V0UG9pbnRlckNhcHR1cmUoVS5wb2ludGVySWQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZURyYWdNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlRHJhZ0VuZCksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpCLmlkLHg6Qi54LHk6Qi55LHc6Qi53LGg6Qi5ofX1oYW5kbGVEcmFnTW92ZT1VPT57aWYoIXRoaXMuZHJhZ1N0YXRlKXJldHVybjtsZXQgQj10aGlzLmVuc3VyZU1ldHJpY3MoKSxvZT10aGlzLndpZGdldHMsdmU9b2UuZmluZChyZT0+cmUuaWQ9PT10aGlzLmRyYWdTdGF0ZS53aWRnZXRJZCk7aWYoIXZlKXJldHVybjtVLnByZXZlbnREZWZhdWx0KCk7bGV0IHllPXRoaXMuZHJhZ1N0YXRlLnByZXZpb3VzUG9zaXRpb24sJGU9ak90KHtwb2ludGVyOntjbGllbnRYOlUuY2xpZW50WCxjbGllbnRZOlUuY2xpZW50WX0sY29udGFpbmVyUmVjdDp0aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtZXRyaWNzOkIsY29sdW1uczp0aGlzLmNvbHVtbnMsd2lkZ2V0OnZlLHJ0bDp0aGlzLnJ0bCxkcmFnT2Zmc2V0WDp0aGlzLmRyYWdTdGF0ZS5vZmZzZXRYLGRyYWdPZmZzZXRZOnRoaXMuZHJhZ1N0YXRlLm9mZnNldFl9KSxuZT1ocyhvZSx2ZS5pZCx7eDokZS54LHk6JGUueX0sdGhpcy5jb2x1bW5zLHllKTtpZihuZSl7bGV0IHJlPW5lLndpZGdldHMuZmluZChFZT0+RWUuaWQ9PT12ZS5pZCk7dGhpcy5kcmFnU3RhdGU9ey4uLnRoaXMuZHJhZ1N0YXRlLGN1cnJlbnRQb2ludGVyOntjbGllbnRYOlUuY2xpZW50WCxjbGllbnRZOlUuY2xpZW50WX0sbGFzdFBsYWNlbWVudDpuZSxwcmV2aW91c1Bvc2l0aW9uOnJlP3tpZDpyZS5pZCx4OnJlLngseTpyZS55LHc6cmUudyxoOnJlLmh9OntpZDp2ZS5pZCx4OiRlLngseTokZS55LHc6dmUudyxoOnZlLmh9fSx0aGlzLnByZXZpZXdXaWRnZXRzPW5lLndpZGdldHM7bGV0IGdlPW5lLndpZGdldHMuZmluZChFZT0+RWUuaWQ9PT12ZS5pZCk7Z2U/dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpnZS5pZCx4OmdlLngseTpnZS55LHc6Z2UudyxoOmdlLmh9OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6dmUuaWQseDokZS54LHk6JGUueSx3OnZlLncsaDp2ZS5ofX1lbHNlIHRoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249bnVsbDt0aGlzLnJlcXVlc3RVcGRhdGUoKX07aGFuZGxlRHJhZ0VuZD1VPT57bGV0IEI9dGhpcy5kcmFnU3RhdGU7aWYoIUJ8fFUucG9pbnRlcklkIT09Qi5wb2ludGVySWQpcmV0dXJuO2xldCBvZT10aGlzLndpZGdldHM7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsO2xldCB2ZT10aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/P0Iuc3RhcnQseWU9aHMob2UsQi53aWRnZXRJZCx7eDp2ZS54LHk6dmUueX0sdGhpcy5jb2x1bW5zLEIucHJldmlvdXNQb3NpdGlvbik7aWYoeWUpe2xldCAkZT15ZS53aWRnZXRzLmZpbmQobmU9Pm5lLmlkPT09Qi53aWRnZXRJZCk7JGUmJih5ZS53aWRnZXRzLnNvbWUocmU9PnJlLmlkPT09Qi53aWRnZXRJZD8hMTokZS54PHJlLngrcmUudyYmJGUueCskZS53PnJlLngmJiRlLnk8cmUueStyZS5oJiYkZS55KyRlLmg+cmUueSk/dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAocmU9PnJlLmlkPT09Qi53aWRnZXRJZD97Li4ucmUseDpCLnN0YXJ0LngseTpCLnN0YXJ0Lnl9OnJlKTp0aGlzLmNvbW1pdFBsYWNlbWVudCh5ZSxCLndpZGdldElkLCJ3aWRnZXQtbW92ZSIpKX1lbHNlIHRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKCRlPT4kZS5pZD09PUIud2lkZ2V0SWQ/ey4uLiRlLHg6Qi5zdGFydC54LHk6Qi5zdGFydC55fTokZSk7dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnU3RhdGU9bnVsbCx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSExLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX07c3RhcnRSZXNpemUoVSxCLG9lKXshdGhpcy5lZGl0YWJsZXx8Qi5ub1Jlc2l6ZXx8Qi5sb2NrZWR8fChVLnByZXZlbnREZWZhdWx0KCksVS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLnJlc2l6ZVN0YXRlPXt3aWRnZXRJZDpCLmlkLHBvaW50ZXJJZDpVLnBvaW50ZXJJZCxoYW5kbGVyOm9lLHN0YXJ0UG9pbnRlcjp7Y2xpZW50WDpVLmNsaWVudFgsY2xpZW50WTpVLmNsaWVudFl9LHN0YXJ0OntpZDpCLmlkLHg6Qi54LHk6Qi55LHc6Qi53LGg6Qi5ofSxzdGFydFdpZHRoOkIudyxzdGFydEhlaWdodDpCLmgsbGFzdFBsYWNlbWVudDpudWxsfSx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSEwLFUuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShVLnBvaW50ZXJJZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUmVzaXplTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZVJlc2l6ZUVuZCksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpCLmlkLHg6Qi54LHk6Qi55LHc6Qi53LGg6Qi5ofSl9aGFuZGxlUmVzaXplTW92ZT1VPT57aWYoIXRoaXMucmVzaXplU3RhdGUpcmV0dXJuO2xldCBCPXRoaXMuZW5zdXJlTWV0cmljcygpLG9lPXRoaXMud2lkZ2V0cyx2ZT1vZS5maW5kKG5lPT5uZS5pZD09PXRoaXMucmVzaXplU3RhdGUud2lkZ2V0SWQpO2lmKCF2ZSlyZXR1cm47VS5wcmV2ZW50RGVmYXVsdCgpO2xldCB5ZT1XT3Qoe3BvaW50ZXI6e2NsaWVudFg6VS5jbGllbnRYLGNsaWVudFk6VS5jbGllbnRZfSxjb250YWluZXJSZWN0OnRoaXMuY29udGFpbmVyQm91bmRzPz90aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG1ldHJpY3M6QixzdGFydFdpZHRoOnRoaXMucmVzaXplU3RhdGUuc3RhcnRXaWR0aCxzdGFydEhlaWdodDp0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0SGVpZ2h0LHN0YXJ0UG9pbnRlcjp0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0UG9pbnRlcixoYW5kbGVyOnRoaXMucmVzaXplU3RhdGUuaGFuZGxlcix3aWRnZXQ6dmUsY29sdW1uczp0aGlzLmNvbHVtbnN9KSwkZT1ocyhvZSx2ZS5pZCx7eDp2ZS54LHk6dmUueSx3OnllLndpZHRoLGg6eWUuaGVpZ2h0fSx0aGlzLmNvbHVtbnMsdGhpcy5yZXNpemVTdGF0ZS5zdGFydCk7aWYoJGUpe3RoaXMucmVzaXplU3RhdGU9ey4uLnRoaXMucmVzaXplU3RhdGUsbGFzdFBsYWNlbWVudDokZX0sdGhpcy5wcmV2aWV3V2lkZ2V0cz0kZS53aWRnZXRzO2xldCBuZT0kZS53aWRnZXRzLmZpbmQocmU9PnJlLmlkPT09dmUuaWQpO25lP3RoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6bmUuaWQseDpuZS54LHk6bmUueSx3Om5lLncsaDpuZS5ofTp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOnZlLmlkLHg6dmUueCx5OnZlLnksdzp5ZS53aWR0aCxoOnllLmhlaWdodH19ZWxzZSB0aGlzLnByZXZpZXdXaWRnZXRzPW51bGwsdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGw7dGhpcy5yZXF1ZXN0VXBkYXRlKCl9O2hhbmRsZVJlc2l6ZUVuZD1VPT57bGV0IEI9dGhpcy5yZXNpemVTdGF0ZTtpZighQnx8VS5wb2ludGVySWQhPT1CLnBvaW50ZXJJZClyZXR1cm47bGV0IG9lPXRoaXMud2lkZ2V0czt0aGlzLnByZXZpZXdXaWRnZXRzPW51bGw7bGV0IHZlPUIubGFzdFBsYWNlbWVudD8/aHMob2UsQi53aWRnZXRJZCx7eDp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lng/P0Iuc3RhcnQueCx5OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueT8/Qi5zdGFydC55LHc6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy53Pz9CLnN0YXJ0LncsaDp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lmg/P0Iuc3RhcnQuaH0sdGhpcy5jb2x1bW5zLEIuc3RhcnQpO3ZlP3RoaXMuY29tbWl0UGxhY2VtZW50KHZlLEIud2lkZ2V0SWQsIndpZGdldC1yZXNpemUiKTp0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcCh5ZT0+eWUuaWQ9PT1CLndpZGdldElkP3suLi55ZSx3OkIuc3RhcnQudyxoOkIuc3RhcnQuaH06eWUpLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsLHRoaXMucmVzaXplU3RhdGU9bnVsbCx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSExLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX07aGFuZGxlSGVhZGVyS2V5ZG93bihVLEIpe2lmKCF0aGlzLmVkaXRhYmxlfHxCLm5vTW92ZXx8Qi5sb2NrZWQpcmV0dXJuO2xldCBvZT1VLmtleSx2ZT1VLnNoaWZ0S2V5LHllPW51bGw7aWYodmUmJlsiQXJyb3dMZWZ0IiwiQXJyb3dSaWdodCIsIkFycm93VXAiLCJBcnJvd0Rvd24iXS5pbmNsdWRlcyhvZSkpe1UucHJldmVudERlZmF1bHQoKTtsZXQgRWU9b2U9PT0iQXJyb3dSaWdodCJ8fG9lPT09IkFycm93RG93biI/MTotMTtpZihvZT09PSJBcnJvd0xlZnQifHxvZT09PSJBcnJvd1JpZ2h0Iil7bGV0IHJ0PUIubWF4Vz8/dGhpcy5jb2x1bW5zLUIueCx1ZT1NYXRoLm1heChCLm1pblc/PzEsTWF0aC5taW4ocnQsQi53K0VlKSk7eWU9aHModGhpcy53aWRnZXRzLEIuaWQse3g6Qi54LHk6Qi55LHc6dWUsaDpCLmh9LHRoaXMuY29sdW1ucyl9ZWxzZXtsZXQgcnQ9Qi5tYXhIPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdWU9TWF0aC5tYXgoQi5taW5IPz8xLE1hdGgubWluKHJ0LEIuaCtFZSkpO3llPWhzKHRoaXMud2lkZ2V0cyxCLmlkLHt4OkIueCx5OkIueSx3OkIudyxoOnVlfSx0aGlzLmNvbHVtbnMpfXllJiZ0aGlzLmNvbW1pdFBsYWNlbWVudCh5ZSxCLmlkLCJ3aWRnZXQtcmVzaXplIik7cmV0dXJufWxldCBuZT17QXJyb3dMZWZ0OntkeDotMSxkeTowfSxBcnJvd1JpZ2h0OntkeDoxLGR5OjB9LEFycm93VXA6e2R4OjAsZHk6LTF9LEFycm93RG93bjp7ZHg6MCxkeToxfX1bb2VdO2lmKCFuZSlyZXR1cm47VS5wcmV2ZW50RGVmYXVsdCgpO2xldCByZT1NYXRoLm1heCgwLE1hdGgubWluKHRoaXMuY29sdW1ucy1CLncsQi54K25lLmR4KSksZ2U9TWF0aC5tYXgoMCxCLnkrbmUuZHkpO3llPWhzKHRoaXMud2lkZ2V0cyxCLmlkLHt4OnJlLHk6Z2V9LHRoaXMuY29sdW1ucykseWUmJnRoaXMuY29tbWl0UGxhY2VtZW50KHllLEIuaWQsIndpZGdldC1tb3ZlIil9aGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoVSxCKXtVLnByZXZlbnREZWZhdWx0KCksVS5zdG9wUHJvcGFnYXRpb24oKSxHT3Qoe3dpZGdldDpCLGhvc3Q6dGhpcyxldmVudDpVfSl9Y29tbWl0UGxhY2VtZW50KFUsQixvZSl7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMud2lkZ2V0cz1VLndpZGdldHM7bGV0IHZlPXRoaXMud2lkZ2V0cy5maW5kKHllPT55ZS5pZD09PUIpO3ZlJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KG9lLHtkZXRhaWw6e3dpZGdldDp2ZSxkaXNwbGFjZWQ6VS5tb3ZlZFdpZGdldHMuZmlsdGVyKHllPT55ZSE9PUIpLHN3YXBwZWRXaXRoOlUuc3dhcHBlZFdpdGh9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9cmVtb3ZlV2lkZ2V0KFUpe2xldCBCPXRoaXMud2lkZ2V0cy5maW5kKG9lPT5vZS5pZD09PVUpO0ImJih0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihvZT0+b2UuaWQhPT1VKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ3aWRnZXQtcmVtb3ZlIix7ZGV0YWlsOnt3aWRnZXQ6Qn0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9dXBkYXRlV2lkZ2V0KFUsQil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAob2U9Pm9lLmlkPT09VT97Li4ub2UsLi4uQn06b2UpfWdldExheW91dCgpe3JldHVybiB0aGlzLndpZGdldHMubWFwKCh7aWQ6VSx4OkIseTpvZSx3OnZlLGg6eWV9KT0+KHtpZDpVLHg6Qix5Om9lLHc6dmUsaDp5ZX0pKX1zZXRMYXlvdXQoVSl7dGhpcy53aWRnZXRzPVVPdCh0aGlzLndpZGdldHMsVSl9bG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSExfXVubG9ja0dyaWQoKXt0aGlzLmVkaXRhYmxlPSEwfWFkZFdpZGdldChVLEI9ITEpe2xldCBvZT17Li4uVX07aWYoQnx8b2UuYXV0b1Bvc2l0aW9uKXtsZXQgdmU9ZU5lKHRoaXMud2lkZ2V0cyxvZS53LG9lLmgsdGhpcy5jb2x1bW5zKTtvZS54PXZlLngsb2UueT12ZS55fXRoaXMud2lkZ2V0cz1bLi4udGhpcy53aWRnZXRzLG9lXX1jb21wYWN0KFU9InZlcnRpY2FsIil7bGV0IEI9dGhpcy53aWRnZXRzLm1hcChvZT0+KHsuLi5vZX0pKTtWT3QoQixVKSx0aGlzLndpZGdldHM9Qn1hcHBseUJyZWFrcG9pbnRMYXlvdXQoVSl7dGhpcy5hY3RpdmVCcmVha3BvaW50PVU7bGV0IEI9dGhpcy5sYXlvdXRzPy5bVV07QiYmdGhpcy5zZXRMYXlvdXQoQil9bm90aWZ5TGF5b3V0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibGF5b3V0LWNoYW5nZSIse2RldGFpbDp7bGF5b3V0OnRoaXMuZ2V0TGF5b3V0KCl9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9ZW5zdXJlTWV0cmljcygpe3JldHVybiB0aGlzLm1ldHJpY3N8fHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm1ldHJpY3N9Y29tcHV0ZU1ldHJpY3MoKXtpZighdGhpcy5pc0Nvbm5lY3RlZClyZXR1cm47bGV0IFU9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmNvbnRhaW5lckJvdW5kcz1VO2xldCBCPUpFZSh0aGlzLm1hcmdpbik7dGhpcy5yZXNvbHZlZE1hcmdpbnM9Qix0aGlzLm1ldHJpY3M9SE90KFUud2lkdGgsdGhpcy5jb2x1bW5zLEIsdGhpcy5jZWxsSGVpZ2h0LHRoaXMuY2VsbEhlaWdodFVuaXQpfW9ic2VydmVSZXNpemUoKXt0aGlzLnJlc2l6ZU9ic2VydmVyfHwodGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmNvbXB1dGVNZXRyaWNzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcykpfWRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpe3RoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMH1yZWxlYXNlUG9pbnRlckV2ZW50cygpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZURyYWdNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlRHJhZ0VuZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUmVzaXplTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZVJlc2l6ZUVuZCl9cHhUb1BlcmNlbnQoVSxCKXtyZXR1cm4gQj9OdW1iZXIoKFUvQioxMDApLnRvRml4ZWQoNCkpOjB9Y29tcHV0ZVdpZGdldFJlY3QoVSxCLG9lKXtsZXQgdmU9Qi5jZWxsV2lkdGhQeCx5ZT1CLmNlbGxIZWlnaHRQeCwkZT1VLngqKHZlK29lLmhvcml6b250YWwpK29lLmhvcml6b250YWwsbmU9VS55Kih5ZStvZS52ZXJ0aWNhbCkrb2UudmVydGljYWwscmU9VS53KnZlK01hdGgubWF4KDAsVS53LTEpKm9lLmhvcml6b250YWwsZ2U9VS5oKnllK01hdGgubWF4KDAsVS5oLTEpKm9lLnZlcnRpY2FsO3JldHVybntsZWZ0OiRlLHRvcDpuZSx3aWR0aDpyZSxoZWlnaHQ6Z2V9fXN0YXRpY3tIdChyLGEpfX07cmV0dXJuIE9lPXJ9KSgpO2ZlKCk7ZnVuY3Rpb24gWU90KCl7cmV0dXJuIE1gCiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIxIj5UaGlzIGlzIGEgSDEgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMiI+VGhpcyBpcyBhIEgyIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjMiPlRoaXMgaXMgYSBIMyBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI0Ij5UaGlzIGlzIGEgSDQgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNSI+VGhpcyBpcyBhIEg1IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjYiPlRoaXMgaXMgYSBINiBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJociI+VGhpcyBpcyBhbiBociBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+VGhpcyBpcyBhbiBociBzbWFsbCBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgYH1mZSgpO0JlKCk7dmFyIFpPdD1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LHROZT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sTW4xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1oZWFkaW5nIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W107dmFyIGY9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sWk90KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGV2ZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnU9PiJsZXZlbCJpbiB1LGdldDp1PT51LmxldmVsLHNldDoodSxkKT0+e3UubGV2ZWw9ZH19LG1ldGFkYXRhOmN9LHMsbCksWk90KG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZj1yPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89WU90OyNlPXROZSh0aGlzLHMsIjEiKTtnZXQgbGV2ZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGV2ZWwoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogSGVhZGluZyBzdHlsZXMgKi8KICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgICAgICAgbWFyZ2luOiAxNnB4IDAgOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICBoMSB7IGZvbnQtc2l6ZTogMzJweDsgZm9udC1mYW1pbHk6ICR7T0l0fTsgbGV0dGVyLXNwYWNpbmc6IDAuMDI1ZW07fQogICAgICBoMiB7IGZvbnQtc2l6ZTogMjhweDsgfQogICAgICBoMyB7IGZvbnQtc2l6ZTogMjRweDsgfQogICAgICBoNCB7IGZvbnQtc2l6ZTogMjBweDsgfQogICAgICBoNSB7IGZvbnQtc2l6ZTogMTZweDsgfQogICAgICBoNiB7IGZvbnQtc2l6ZTogMTRweDsgfQogICAgICAvKiBIb3Jpem9udGFsIHJ1bGUgc3R5bGUgaGVhZGluZyAqLwogICAgICAuaGVhZGluZy1ociB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICAgIC8qIEZhZGUgbGluZXMgdG93YXJkIGFuZCBhd2F5IGZyb20gdGV4dCBmb3IgaHIgc3R5bGUgKi8KICAgICAgLmhlYWRpbmctaHI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICAvKiBmYWRlIGluIHRvd2FyZCBjZW50ZXIgKi8KICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgibGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgI2NjYykiLCJsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50LCAjMzMzKSIpfTsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICB9CiAgICAgIC5oZWFkaW5nLWhyOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICAvKiBmYWRlIG91dCBhd2F5IGZyb20gY2VudGVyICovCiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoImxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2NjYywgdHJhbnNwYXJlbnQpIiwibGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMzMzLCB0cmFuc3BhcmVudCkiKX07CiAgICAgICAgbWFyZ2luOiAwIDhweDsKICAgICAgfQogICAgICAvKiBTbWFsbCBociB2YXJpYW50IHdpdGggcmVkdWNlZCBtYXJnaW5zICovCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGwgewogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmJlZm9yZSwKICAgICAgLmhlYWRpbmctaHIuaGVhZGluZy1oci1zbWFsbDo6YWZ0ZXIgewogICAgICAgIG1hcmdpbjogMCA4cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3N3aXRjaCh0aGlzLmxldmVsKXtjYXNlIjEiOnJldHVybiBNYDxoMT48c2xvdD48L3Nsb3Q+PC9oMT5gO2Nhc2UiMiI6cmV0dXJuIE1gPGgyPjxzbG90Pjwvc2xvdD48L2gyPmA7Y2FzZSIzIjpyZXR1cm4gTWA8aDM+PHNsb3Q+PC9zbG90PjwvaDM+YDtjYXNlIjQiOnJldHVybiBNYDxoND48c2xvdD48L3Nsb3Q+PC9oND5gO2Nhc2UiNSI6cmV0dXJuIE1gPGg1PjxzbG90Pjwvc2xvdD48L2g1PmA7Y2FzZSI2IjpyZXR1cm4gTWA8aDY+PHNsb3Q+PC9zbG90PjwvaDY+YDtjYXNlImhyIjpyZXR1cm4gTWA8ZGl2IGNsYXNzPSJoZWFkaW5nLWhyIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDtjYXNlImhyLXNtYWxsIjpyZXR1cm4gTWA8ZGl2IGNsYXNzPSJoZWFkaW5nLWhyIGhlYWRpbmctaHItc21hbGwiPjxzbG90Pjwvc2xvdD48L2Rpdj5gO2RlZmF1bHQ6cmV0dXJuIE1gPGgxPjxzbG90Pjwvc2xvdD48L2gxPmB9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0TmUodGhpcyxsKX1zdGF0aWN7dE5lKHIsYSl9fTtyZXR1cm4gZj1yfSkoKTtmZSgpO3ZhciBYT3Q9KCk9Pk1gCiAgPGRlZXMtaGludD48L2RlZXMtaGludD4KYDtmZSgpO1N0KCk7QmUoKTt2YXIgUU90PWZ1bmN0aW9uKHQsZSxhLHIsaSxvKXtmdW5jdGlvbiBzKHYpe2lmKHYhPT12b2lkIDAmJnR5cGVvZiB2IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHZ9Zm9yKHZhciBsPXIua2luZCxmPWw9PT0iZ2V0dGVyIj8iZ2V0IjpsPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P3Iuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCx1PWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxyLm5hbWUpOnt9KSxkLGg9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgYj17fTtmb3IodmFyIHggaW4gciliW3hdPXg9PT0iYWNjZXNzIj97fTpyW3hdO2Zvcih2YXIgeCBpbiByLmFjY2VzcyliLmFjY2Vzc1t4XT1yLmFjY2Vzc1t4XTtiLmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHYpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7by5wdXNoKHModnx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShsPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtmXSxiKTtpZihsPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPXMobS5nZXQpKSYmKHUuZ2V0PWQpLChkPXMobS5zZXQpKSYmKHUuc2V0PWQpLChkPXMobS5pbml0KSkmJmkudW5zaGlmdChkKX1lbHNlKGQ9cyhtKSkmJihsPT09ImZpZWxkIj9pLnVuc2hpZnQoZCk6dVtmXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxyLm5hbWUsdSksaD0hMH0sYU5lPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSx6bjE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLWhpbnQiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXTt2YXIgZj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpTdHJpbmd9KV0sUU90KHRoaXMsbnVsbCxvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+InR5cGUiaW4gdSxnZXQ6dT0+dS50eXBlLHNldDoodSxkKT0+e3UudHlwZT1kfX0sbWV0YWRhdGE6Y30scyxsKSxRT3QobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxmPXI9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1YT3Q7I2U9YU5lKHRoaXMscywiaW5mbyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoYyl7dGhpcy4jZT1jfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxhTmUodGhpcyxsKSxjMS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYCA8ZGl2IGNsYXNzPSJtYWluYm94Ij48L2Rpdj4gYH1zdGF0aWN7YU5lKHIsYSl9fTtyZXR1cm4gZj1yfSkoKTtGdCgpO2ZlKCk7RnQoKTtCZSgpO3ZhciBfaj1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LGZjPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxrbjE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLW1vYmlsZW5hdmlnYXRpb24iKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXTt2YXIgYj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpTdHJpbmd9KV0sZj1bRCh7dHlwZTpBcnJheX0pXSxkPVtsZSgpXSxfaih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJoZWFkaW5nImluIG0sZ2V0Om09Pm0uaGVhZGluZyxzZXQ6KG0sdik9PnttLmhlYWRpbmc9dn19LG1ldGFkYXRhOnh9LHMsbCksX2oodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJtZW51SXRlbXMiaW4gbSxnZXQ6bT0+bS5tZW51SXRlbXMsc2V0OihtLHYpPT57bS5tZW51SXRlbXM9dn19LG1ldGFkYXRhOnh9LGMsdSksX2oodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2JpbGVOYXZaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJtb2JpbGVOYXZaSW5kZXgiaW4gbSxnZXQ6bT0+bS5tb2JpbGVOYXZaSW5kZXgsc2V0OihtLHYpPT57bS5tb2JpbGVOYXZaSW5kZXg9dn19LG1ldGFkYXRhOnh9LGgsZyksX2oobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6eH0sbnVsbCxhKSxiPXI9ZS52YWx1ZSx4JiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnh9KX1zdGF0aWMgZGVtbz0oKT0+TWAKICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2IuY3JlYXRlQW5kU2hvdyhbe25hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXQtZGFzaGJvYXJkIixhY3Rpb246YXN5bmMgeD0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBkYXNoYm9hcmQiKSxudWxsKX0se25hbWU6IlByb2ZpbGUiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOmFzeW5jIHg9Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gcHJvZmlsZSIpLG51bGwpfSx7bmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjphc3luYyB4PT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIHNldHRpbmdzIiksbnVsbCl9LHtkaXZpZGVyOiEwfSx7bmFtZToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwLWNpcmNsZSIsYWN0aW9uOmFzeW5jIHg9Pihjb25zb2xlLmxvZygiU2hvdyBoZWxwIiksbnVsbCl9LHtuYW1lOiJTaWduIE91dCIsaWNvbk5hbWU6Imx1Y2lkZTpsb2ctb3V0IixhY3Rpb246YXN5bmMgeD0+KGNvbnNvbGUubG9nKCJTaWduIG91dCIpLG51bGwpfV0pfX0+T3BlbiBNb2JpbGUgTmF2aWdhdGlvbjwvZGVlcy1idXR0b24+CiAgYDtzdGF0aWMgc2luZ2xldG9uUmVmO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KHgpe3JldHVybiB0aGlzLnNpbmdsZXRvblJlZnx8KHRoaXMuc2luZ2xldG9uUmVmPW5ldyBiLGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMuc2luZ2xldG9uUmVmKSxhd2FpdCB0aGlzLnNpbmdsZXRvblJlZi5pbml0KCkpLHRoaXMuc2luZ2xldG9uUmVmLm1lbnVJdGVtcz14LGF3YWl0IHRoaXMuc2luZ2xldG9uUmVmLnJlYWR5RGVmZXJyZWQucHJvbWlzZSx0aGlzLnNpbmdsZXRvblJlZi5zaG93KCksdGhpcy5zaW5nbGV0b25SZWZ9I2U9ZmModGhpcyxzLCJNZW51Iik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyh4KXt0aGlzLiNlPXh9I3Q9KGZjKHRoaXMsbCksZmModGhpcyxjLFtdKSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiN0fXNldCBtZW51SXRlbXMoeCl7dGhpcy4jdD14fSNhPShmYyh0aGlzLHUpLGZjKHRoaXMsaCwxZTMpKTtnZXQgbW9iaWxlTmF2WkluZGV4KCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1vYmlsZU5hdlpJbmRleCh4KXt0aGlzLiNhPXh9cmVhZHlEZWZlcnJlZD0oZmModGhpcyxnKSxzdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpKTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9YXN5bmMgaW5pdCgpe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKX1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgIH0KCiAgICAgIC5tYWluIHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6ICR7cC5iZFRoZW1lKCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkiLCItMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMyksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5tYWluLnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgbWFyZ2luOiA4cHggMTZweDsKICAgICAgfQoKICAgICAgLyogTW9iaWxlIHJlc3BvbnNpdmVuZXNzICovCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkgewogICAgICAgIC5tYWluIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwdnc7CiAgICAgICAgICB3aWR0aDogODV2dzsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIEFuaW1hdGlvbiBmb3IgbWVudSBpdGVtcyAqLwogICAgICBAa2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1haW4uc2hvdyAubWVudUl0ZW0gewogICAgICAgIGFuaW1hdGlvbjogc2xpZGVJblJpZ2h0IDAuM3MgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLWl0ZW0taW5kZXgsIDApICogMC4wNXMpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2QxZDVkYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBNYAogICAgICA8c3R5bGU+CiAgICAgICAgLm1haW4gewogICAgICAgICAgLS16LWluZGV4OiAke3RoaXMubW9iaWxlTmF2WkluZGV4fTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW4iPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8aDIgY2xhc3M9ImhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvaDI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5tYXAoKHgsbSk9PiJkaXZpZGVyImluIHgmJnguZGl2aWRlcj9NYDxkaXYgY2xhc3M9Im1lbnVJdGVtLWRpdmlkZXIiPjwvZGl2PmA6TWAKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ibWVudUl0ZW0iCiAgICAgICAgICAgICAgICBzdHlsZT0iLS1pdGVtLWluZGV4OiAke219IgogICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5oaWRlKCkseC5hY3Rpb24odGhpcyl9fSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke3guaWNvbk5hbWU/TWAKICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke3guaWNvbk5hbWV9IHNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudUl0ZW0tdGV4dCI+JHt4Lm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXdpbmRvd0xheWVyO2FzeW5jIHNob3coKXtsZXQgeD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxtPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbiIpO3RoaXMud2luZG93TGF5ZXI/KGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMud2luZG93TGF5ZXIpLGF3YWl0IHRoaXMud2luZG93TGF5ZXIuc2hvdygpKToodGhpcy53aW5kb3dMYXllcj1hd2FpdCBLYS5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmhpZGUoKX0pKSx0aGlzLm1vYmlsZU5hdlpJbmRleD1zMS5nZXROZXh0WkluZGV4KCksczEucmVnaXN0ZXIodGhpcyx0aGlzLm1vYmlsZU5hdlpJbmRleCksYXdhaXQgeC5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwKSxtLmNsYXNzTGlzdC5hZGQoInNob3ciKX1hc3luYyBoaWRlKCl7bGV0IHg9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluIikuY2xhc3NMaXN0LnJlbW92ZSgic2hvdyIpLHMxLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHMxLnVucmVnaXN0ZXIodGhpcyksdGhpcy53aW5kb3dMYXllciYmYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCl9c3RhdGlje2ZjKHIsYSl9fTtyZXR1cm4gYj1yfSkoKTtmZSgpO3ZhciBLT3Q9KCk9Pk1gCiAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxNnB4OyI+CiAgICA8IS0tIFNtYWxsIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjUgcGFnZXMsIHN0YXJ0aW5nIGF0IDE6PC9zcGFuPgogICAgICA8ZGVlcy1wYWdpbmF0aW9uCiAgICAgICAgLnRvdGFsPSR7NX0KICAgICAgICAucGFnZT0kezF9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7dD0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIsdC5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgoKICAgIDwhLS0gTGFyZ2VyIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjE1IHBhZ2VzLCBzdGFydGluZyBhdCA4Ojwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezE1fQogICAgICAgIC5wYWdlPSR7OH0KICAgICAgICBAcGFnZS1jaGFuZ2U9JHt0PT5jb25zb2xlLmxvZygiUGFnZSBjaGFuZ2VkIHRvIix0LmRldGFpbC5wYWdlKX0KICAgICAgPjwvZGVlcy1wYWdpbmF0aW9uPgogICAgPC9kaXY+CiAgPC9kaXY+CmA7ZmUoKTtCZSgpO3ZhciByTmU9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxWST1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sU24xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1wYWdpbmF0aW9uIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6TnVtYmVyLHJlZmxlY3Q6ITB9KV0sZj1bRCh7dHlwZTpOdW1iZXIscmVmbGVjdDohMH0pXSxyTmUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4icGFnZSJpbiBnLGdldDpnPT5nLnBhZ2Usc2V0OihnLGIpPT57Zy5wYWdlPWJ9fSxtZXRhZGF0YTpofSxzLGwpLHJOZSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRvdGFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4idG90YWwiaW4gZyxnZXQ6Zz0+Zy50b3RhbCxzZXQ6KGcsYik9PntnLnRvdGFsPWJ9fSxtZXRhZGF0YTpofSxjLHUpLHJOZShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpofSxudWxsLGEpLGQ9cj1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPUtPdDsjZT1WSSh0aGlzLHMsMSk7Z2V0IHBhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGFnZShoKXt0aGlzLiNlPWh9I3Q9KFZJKHRoaXMsbCksVkkodGhpcyxjLDEpKTtnZXQgdG90YWwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdG90YWwoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBtYXJnaW46IDAgMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlZWUiLCIjNDQ0Iil9OwogICAgICB9CiAgICAgIGJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiI2FhYSIsIiM2NjYiKX07CiAgICAgIH0KICAgICAgYnV0dG9uLmN1cnJlbnQgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIHNwYW4uZWxsaXBzaXMgewogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQogICAgYF07Z2V0IHBhZ2VzKCl7bGV0IGg9W10sZz10aGlzLnRvdGFsLGI9dGhpcy5wYWdlO2lmKGc8PTcpZm9yKGxldCB4PTE7eDw9Zzt4KyspaC5wdXNoKHgpO2Vsc2V7aC5wdXNoKDEpLGI+NCYmaC5wdXNoKCIuLi4iKTtsZXQgeD1NYXRoLm1heCgyLGItMiksbT1NYXRoLm1pbihnLTEsYisyKTtmb3IobGV0IHY9eDt2PD1tO3YrKyloLnB1c2godik7YjxnLTMmJmgucHVzaCgiLi4uIiksaC5wdXNoKGcpfXJldHVybiBofXJlbmRlcigpe3JldHVybiBNYAogICAgICA8YnV0dG9uCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZSh0aGlzLnBhZ2UtMSl9CiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5wYWdlPD0xfQogICAgICAgIGFyaWEtbGFiZWw9IlByZXZpb3VzIHBhZ2UiCiAgICAgID4KICAgICAgICDigLkKICAgICAgPC9idXR0b24+CiAgICAgICR7dGhpcy5wYWdlcy5tYXAoaD0+aD09PSIuLi4iP01gPHNwYW4gY2xhc3M9ImVsbGlwc2lzIj7igKY8L3NwYW4+YDpNYAogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSIke2g9PT10aGlzLnBhZ2U/ImN1cnJlbnQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UoaCl9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtoPT09dGhpcy5wYWdlfQogICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iUGFnZSAke2h9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7aH0KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZSsxKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U+PXRoaXMudG90YWx9CiAgICAgICAgYXJpYS1sYWJlbD0iTmV4dCBwYWdlIgogICAgICA+CiAgICAgICAg4oC6CiAgICAgIDwvYnV0dG9uPgogICAgYH1jaGFuZ2VQYWdlKGgpe2g8MXx8aD50aGlzLnRvdGFsfHxoPT09dGhpcy5wYWdlfHwodGhpcy5wYWdlPWgsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicGFnZS1jaGFuZ2UiLHtkZXRhaWw6e3BhZ2U6dGhpcy5wYWdlfSxidWJibGVzOiEwfSkpKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksVkkodGhpcyx1KX1zdGF0aWN7VkkocixhKX19O3JldHVybiBkPXJ9KSgpO2ZlKCk7dmFyIEpPdD0oKT0+TWAKICAgIDxkZWVzLXByb2dyZXNzYmFyCiAgICAgIC5wZXJjZW50YWdlPSR7NTB9CiAgICA+PC9kZWVzLXByb2dyZXNzYmFyPgogIGA7ZmUoKTtTdCgpO0JlKCk7dmFyIGVCdD1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LGlOZT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sQ24xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1wcm9ncmVzc2JhciIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdO3ZhciBmPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOk51bWJlcn0pXSxlQnQodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwZXJjZW50YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4icGVyY2VudGFnZSJpbiB1LGdldDp1PT51LnBlcmNlbnRhZ2Usc2V0Oih1LGQpPT57dS5wZXJjZW50YWdlPWR9fSxtZXRhZGF0YTpjfSxzLGwpLGVCdChudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGY9cj1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPUpPdDsjZT1pTmUodGhpcyxzLDApO2dldCBwZXJjZW50YWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBlcmNlbnRhZ2UoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZShHbC50ZXh0LFBhLnRleHQpfTsKICAgICAgfQogICAgICAucHJvZ3Jlc3NCYXJDb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZWVlZWViIiwiIzQ0NCIpfTsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMC41cHggc29saWQgJHtwLmJkVGhlbWUoIm5vbmUiLCIjNTU1Iil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXJGaWxsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZShQYS5ibHVlQWN0aXZlLEdsLmJsdWVBY3RpdmUpfTsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAtMC41cHg7CiAgICAgICAgdHJhbnNpdGlvbjogMC4ycyB3aWR0aDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgd2lkdGg6IDBweDsKICAgICAgICBib3JkZXItdG9wOiAwLjUgc29saWQgJHtwLmJkVGhlbWUoIm5vbmUiLCIjMzk4ZmZmIil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NUZXh0IHsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NCYXJDb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzQmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzQmFyRmlsbCI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc1RleHQiPgogICAgICAgICAgICAke3RoaXMucGVyY2VudGFnZX0lCiAgICAgICAgICA8ZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKGMpe3N1cGVyLmZpcnN0VXBkYXRlZChjKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLnVwZGF0ZVBlcmNlbnRhZ2UoKX0pfWFzeW5jIHVwZGF0ZVBlcmNlbnRhZ2UoKXtsZXQgYz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnByb2dyZXNzQmFyRmlsbCIpO2Muc3R5bGUud2lkdGg9YCR7dGhpcy5wZXJjZW50YWdlfSVgfXVwZGF0ZWQoKXt0aGlzLnVwZGF0ZVBlcmNlbnRhZ2UoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksaU5lKHRoaXMsbCl9c3RhdGlje2lOZShyLGEpfX07cmV0dXJuIGY9cn0pKCk7ZmUoKTt2YXIgdEJ0PSgpPT5NYAogICAgPHN0eWxlPgogICAgICAuZGVtb1dyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAKICAgICAgICBiYWNrZ3JvdW5kOiAjODg4ODg4OwogICAgICB9CiAgICAgIC5sb2dzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHdpZHRoOiA2MDBweDsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CiAgICAgIC5sb2dzIGRpdiB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgICAgPGRlZXMtc2VhcmNoYmFyCiAgICAgICAgQHNlYXJjaC1jaGFuZ2VkPSR7YT0+e2xldCBpPWEudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjY2hhbmdlZCIpO2kmJihpLnRleHRDb250ZW50PWBzZWFyY2gtY2hhbmdlZDogJHthLmRldGFpbC52YWx1ZX1gKX19CiAgICAgICAgQHNlYXJjaC1zdWJtaXQ9JHthPT57bGV0IGk9YS50YXJnZXQuY2xvc2VzdCgiLmRlbW9XcmFwcGVyIik/LnF1ZXJ5U2VsZWN0b3IoIiNzdWJtaXR0ZWQiKTtpJiYoaS50ZXh0Q29udGVudD1gc2VhcmNoLXN1Ym1pdDogJHthLmRldGFpbC52YWx1ZX1gKX19CiAgICAgID48L2RlZXMtc2VhcmNoYmFyPgogICAgICA8ZGl2IGNsYXNzPSJsb2dzIj4KICAgICAgICA8ZGl2IGlkPSJjaGFuZ2VkIj5zZWFyY2gtY2hhbmdlZDo8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJzdWJtaXR0ZWQiPnNlYXJjaC1zdWJtaXQ6PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYDtmZSgpO0JlKCk7dmFyIGFCdD1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LG9OZT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sTG4xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy1zZWFyY2hiYXIiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXTt2YXIgZj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCgpXSxhQnQodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4iZmlsdGVycyJpbiB1LGdldDp1PT51LmZpbHRlcnMsc2V0Oih1LGQpPT57dS5maWx0ZXJzPWR9fSxtZXRhZGF0YTpjfSxzLGwpLGFCdChudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGY9cj1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPXRCdDtzdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBEZWVzIFNhbnM7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlZWVlZWIiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAuc2VhcmNoYm94Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYxNSIpfTsKICAgICAgICAtLWJveEhlaWdodDogNjBweDsKICAgICAgICBoZWlnaHQ6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE0MHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uIHsKICAgICAgICAtLWJ1dHRvblBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2VlZWVlYiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ib3hIZWlnaHQpIC0gKHZhcigtLWJ1dHRvblBhZGRpbmcpICogMikpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSA7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMsIGJhY2tncm91bmQgMC4xczsKICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvblBhZGRpbmcpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZShHbC5ibHVlLFBhLmJsdWUpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbjphY3RpdmUgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKEdsLmJsdWVBY3RpdmUsUGEuYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXJzIHsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07I2U9b05lKHRoaXMscyxbXSk7Z2V0IGZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZmlsdGVycyhjKXt0aGlzLiNlPWN9c2VhcmNoSW5wdXQ9b05lKHRoaXMsbCk7c2VhcmNoQnV0dG9uO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Q29udGFpbmVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IllvdXIgU2tpbGxzIChlLmcuIFR5cGVTY3JpcHQsIFJ1c3QsIFByb2plY3RtYW5hZ2VtZW50KSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hCdXR0b24iPlNlYXJjaCAtPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmZpbHRlcnMubGVuZ3RoPjA/TWAKICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXJzIj4KICAgICAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+RmlsdGVyczwvZGVlcy1oZWFkaW5nPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIC5sYWJlbD0keyJsb2NhdGlvbiJ9PjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kaXY+ICAKICAgICAgYDpNYGB9CiAgICBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNoYW5nZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9KSx0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGM9PntjLmtleT09PSJFbnRlciImJnRoaXMuX2Rpc3BhdGNoU3VibWl0KCl9KSx0aGlzLnNlYXJjaEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuX2Rpc3BhdGNoU3VibWl0KCkpfV9kaXNwYXRjaFN1Ym1pdCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1zdWJtaXQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9c3RhdGlje29OZShyLGEpfX07cmV0dXJuIGY9cn0pKCk7ZmUoKTt2YXIgckJ0PSgpPT5NYAogICAgPHN0eWxlPgogICAgICAucmVmMSB7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJyZWYxIj48L2Rpdj4KICAgIDxkZWVzLXNwZWVjaGJ1YmJsZSAudGV4dD0ke2AKICAgICAgKipUaGlzIGlzIGEgbG9uZ2VyIG1hcmtkb3duIHRleHQgdGhhdCAgY2FuIGJlIHVzZWQgdGhlIHdyaXRlKiogIAogICAgICBhIGxvbmdlciBkZXNjcmlwdGlvbiBhYm91dCB3aGF0cyBnb2luZyBvbiB0aGUgYXBwICAKICAKICAgICAgKipUaGlzIGlzIGEgc3ViaGVhZGVyKioKICAgICAgYW5kIGFub3RoZXIgdGV4dAogICAgCiAgICBgfT48L2RlZXMtc3BlZWNoYnViYmxlPgogIGA7ZmUoKTtCZSgpO3ZhciB2NT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LHByPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxUbjE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLXNwZWVjaGJ1YmJsZSIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdO3ZhciBFPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOk9iamVjdH0pXSxmPVtEKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGQ9W0Qoe3R5cGU6Qm9vbGVhbn0pXSxiPVtEKHt0eXBlOkJvb2xlYW59KV0sdj1bRCh7dHlwZTpTdHJpbmd9KV0sdjUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWZmZWRFbGVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4icmVmZmVkRWxlbWVudCJpbiB6LGdldDp6PT56LnJlZmZlZEVsZW1lbnQsc2V0Oih6LFApPT57ei5yZWZmZWRFbGVtZW50PVB9fSxtZXRhZGF0YTpDfSxzLGwpLHY1KHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InRleHQiaW4geixnZXQ6ej0+ei50ZXh0LHNldDooeixQKT0+e3oudGV4dD1QfX0sbWV0YWRhdGE6Q30sYyx1KSx2NSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJ3YXZlImluIHosZ2V0Ono9Pnoud2F2ZSxzZXQ6KHosUCk9Pnt6LndhdmU9UH19LG1ldGFkYXRhOkN9LGgsZyksdjUodGhpcyxudWxsLGIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYW5pZmVzdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ibWFuaWZlc3RlZCJpbiB6LGdldDp6PT56Lm1hbmlmZXN0ZWQsc2V0Oih6LFApPT57ei5tYW5pZmVzdGVkPVB9fSxtZXRhZGF0YTpDfSx4LG0pLHY1KHRoaXMsbnVsbCx2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic3RhdHVzImluIHosZ2V0Ono9Pnouc3RhdHVzLHNldDooeixQKT0+e3ouc3RhdHVzPVB9fSxtZXRhZGF0YTpDfSx5LHcpLHY1KG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOkN9LG51bGwsYSksRT1yPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89ckJ0O3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KEMseil7bGV0IFA9YXdhaXQgS2EuY3JlYXRlQW5kU2hvdyh7Ymx1cjohMX0pLF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1zcGVlY2hidWJibGUiKTtyZXR1cm4gXy53aW5kb3dMYXllcj1QLF8ucmVmZmVkRWxlbWVudD1DLF8udGV4dD16LF8ubWFuaWZlc3RlZD0hMCxQLmFwcGVuZENoaWxkKF8pLFAuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsUC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi53aW5kb3dPdmVybGF5Iikuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsX30jZT1wcih0aGlzLHMsdm9pZCAwKTtnZXQgcmVmZmVkRWxlbWVudCgpe3JldHVybiB0aGlzLiNlfXNldCByZWZmZWRFbGVtZW50KEMpe3RoaXMuI2U9Q30jdD0ocHIodGhpcyxsKSxwcih0aGlzLGMsdm9pZCAwKSk7Z2V0IHRleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGV4dChDKXt0aGlzLiN0PUN9I2E9KHByKHRoaXMsdSkscHIodGhpcyxoLCExKSk7Z2V0IHdhdmUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgd2F2ZShDKXt0aGlzLiNhPUN9I3I9KHByKHRoaXMsZykscHIodGhpcyx4LCExKSk7Z2V0IG1hbmlmZXN0ZWQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWFuaWZlc3RlZChDKXt0aGlzLiNyPUN9I2k9KHByKHRoaXMsbSkscHIodGhpcyx5LCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNpfXNldCBzdGF0dXMoQyl7dGhpcy4jaT1DfXdpbmRvd0xheWVyPXByKHRoaXMsdyk7Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7CiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMikpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgIH0KCiAgICAgIC5hcnJvdyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZiIsIiMzMzMiKX07CiAgICAgICAgaGVpZ2h0OiAxNXB4OwogICAgICAgIHdpZHRoOiAxNXB4OwogICAgICAgIGxlZnQ6IDJweDsKICAgICAgICB0b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAuc3BlZWNoYnViYmxlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZiIsIiMzMzMiKX07CiAgICAgICAgcGFkZGluZzogMHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBtaW4td2lkdGg6IDI0MHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC53YXZlIHsKICAgICAgICBhbmltYXRpb24tbmFtZTogd2F2ZS1hbmltYXRpb247IC8qIFJlZmVycyB0byB0aGUgbmFtZSBvZiB5b3VyIEBrZXlmcmFtZXMgZWxlbWVudCBiZWxvdyAqLwogICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMi41czsgLyogQ2hhbmdlIHRvIHNwZWVkIHVwIG9yIHNsb3cgZG93biAqLwogICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyAvKiBOZXZlciBzdG9wIHdhdmluZyA6KSAqLwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDcwJSA3MCU7IC8qIFBpdm90IGFyb3VuZCB0aGUgYm90dG9tLWxlZnQgcGFsbSAqLwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyB3YXZlLWFuaW1hdGlvbiB7CiAgICAgICAgMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfQogICAgICAgIDEwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNGRlZyk7CiAgICAgICAgfSAvKiBUaGUgZm9sbG93aW5nIGZpdmUgdmFsdWVzIGNhbiBiZSBwbGF5ZWQgd2l0aCB0byBtYWtlIHRoZSB3YXZpbmcgbW9yZSBvciBsZXNzIGV4dHJlbWUgKi8KICAgICAgICAyMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLThkZWcpOwogICAgICAgIH0KICAgICAgICAzMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTRkZWcpOwogICAgICAgIH0KICAgICAgICA0MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTRkZWcpOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpOwogICAgICAgIH0KICAgICAgICA2MCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfSAvKiBSZXNldCBmb3IgdGhlIGxhc3QgaGFsZiB0byBwYXVzZSAqLwogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgJHt0aGlzLm1hbmlmZXN0ZWQ/TWAKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGlja30+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXJyb3ciPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwZWVjaGJ1YmJsZSI+CiAgICAgICAgICAgICAgICAke3RoaXMud2F2ZT9NYDxzcGFuIGNsYXNzPSJ3YXZlIj7wn5GLPC9zcGFuPmA6TWBgfQogICAgICAgICAgICAgICAgJHtFYS5yZXNvbHZlKHRoaXMuZ2V0SHRtbCgpKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOk1gYH0KICAgIGB9YXN5bmMgaGFuZGxlQ2xpY2soKXtjb25zb2xlLmxvZygic3BlZWNoYnViYmxlIGdvdCBjbGlja2VkLiIpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMucmVmZmVkRWxlbWVudHx8KHRoaXMucmVmZmVkRWxlbWVudD10aGlzLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpLHRoaXMubWFuaWZlc3RlZClhd2FpdCB0aGlzLnVwZGF0ZVBvc2l0aW9uKCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluY29udGFpbmVyIikuc3R5bGUub3BhY2l0eT0iMSI7ZWxzZXtsZXQgQzt0aGlzLnJlZmZlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsYXN5bmMoKT0+e0M9YXdhaXQgRS5jcmVhdGVBbmRTaG93KHRoaXMucmVmZmVkRWxlbWVudCx0aGlzLnRleHQpfSksdGhpcy5yZWZmZWRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCgpPT57Qy5kZXN0cm95KCl9KX19YXN5bmMgdXBkYXRlUG9zaXRpb24oKXtsZXQgQz10aGlzLnJlZmZlZEVsZW1lbnQsej1DLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuc3R5bGUucG9zaXRpb249ImZpeGVkIix0aGlzLnN0eWxlLnRvcD1gJHt6LnRvcC0xM31weGAsdGhpcy5zdHlsZS5sZWZ0PWAke3oubGVmdCtDLmNsaWVudFdpZHRoKzR9cHhgLHoucmlnaHQ+MjUwJiYodGhpcy5zdHlsZS53aWR0aD0iMjUwcHgiKX1hc3luYyBnZXRIdG1sKCl7aWYoIXRoaXMudGV4dClyZXR1cm4iIjtsZXQgQz1zdC5wbHVnaW5zLnNtYXJ0c3RyaW5nLm5vcm1hbGl6ZS5zdGFuZGFyZCh0aGlzLnRleHQpLHo9YXdhaXQgc3QucGx1Z2lucy5zbWFydG1hcmtkb3duLlNtYXJ0TWFya2Rvd24uZWFzeU1hcmtkb3duVG9IdG1sKEMpO3JldHVybiBWcSh6KX1hc3luYyBzaG93KCl7fWFzeW5jIGRlc3Ryb3koKXt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1zdGF0aWN7cHIocixhKX19O3JldHVybiBFPXJ9KSgpO2ZlKCk7U3QoKTtCZSgpO3ZhciBBaj1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LHVjPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxfbjE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLXNwaW5uZXIiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXTt2YXIgYj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpOdW1iZXJ9KV0sZj1bRCh7dHlwZTpTdHJpbmd9KV0sZD1bRCgpXSxBaih0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJzaXplImluIG0sZ2V0Om09Pm0uc2l6ZSxzZXQ6KG0sdik9PnttLnNpemU9dn19LG1ldGFkYXRhOnh9LHMsbCksQWoodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibnciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJibnciaW4gbSxnZXQ6bT0+bS5ibncsc2V0OihtLHYpPT57bS5ibnc9dn19LG1ldGFkYXRhOnh9LGMsdSksQWoodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJzdGF0dXMiaW4gbSxnZXQ6bT0+bS5zdGF0dXMsc2V0OihtLHYpPT57bS5zdGF0dXM9dn19LG1ldGFkYXRhOnh9LGgsZyksQWoobnVsbCxlPXt2YWx1ZTpyfSx0LHtraW5kOiJjbGFzcyIsbmFtZTpyLm5hbWUsbWV0YWRhdGE6eH0sbnVsbCxhKSxiPXI9ZS52YWx1ZSx4JiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnh9KX1zdGF0aWMgZGVtbz0oKT0+TWAKICAgIDxkZWVzLXNwaW5uZXI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIHN0YXR1cz0ic3VjY2VzcyI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIHN0YXR1cz0iZXJyb3IiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzaXplPSR7NjR9IHN0YXR1cz0ic3VjY2VzcyI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIC5zaXplPSR7NjR9IHN0YXR1cz0iZXJyb3IiPjwvZGVlcy1zcGlubmVyPgogIGA7I2U9dWModGhpcyxzLDIwKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKHgpe3RoaXMuI2U9eH0jdD0odWModGhpcyxsKSx1Yyh0aGlzLGMsITEpKTtnZXQgYm53KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJudyh4KXt0aGlzLiN0PXh9I2E9KHVjKHRoaXMsdSksdWModGhpcyxoLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNhfXNldCBzdGF0dXMoeCl7dGhpcy4jYT14fWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx1Yyh0aGlzLGcpfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAjbG9hZGluZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogIzhiYzM0YTAwOwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBub25lOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBub25lOwogICAgICB9CgogICAgICAjbG9hZGluZy5lcnJvciB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPHN0eWxlPgogICAgICAgICNsb2FkaW5nIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKHRoaXMuYm53PyIjMzMzIjoiIzhiYzM0YSIsdGhpcy5ibnc/IiNmZmYiOiIjOGJjMzRhIil9OwogICAgICAgICAgCiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLmVycm9yIHsKICAgICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSh0aGlzLmJudz8iIzMzMyI6IiNlNjRhMTkiLHRoaXMuYm53PyIjZmZmIjoiI2U2NGExOSIpfTsKICAgICAgICB9CiAgICAgICAgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSIke3RoaXMuc3RhdHVzfSIgaWQ9ImxvYWRpbmciPgogICAgICAgICR7KCgpPT57aWYodGhpcy5zdGF0dXM9PT0ic3VjY2VzcyIpcmV0dXJuIE1gPGRlZXMtaWNvbiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGVYKDElKSB0cmFuc2xhdGVZKDMlKTsiIC5pY29uPSR7ImZhOmNpcmNsZS1jaGVjayJ9PjwvZGVlcy1pY29uPmA7aWYodGhpcy5zdGF0dXM9PT0iZXJyb3IiKXJldHVybiBNYDxkZWVzLWljb24gLmljb249JHsiZmE6Y2lyY2xlLXhtYXJrIn0+PC9kZWVzLWljb24+YH0pKCl9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7dWMocixhKX19O3JldHVybiBiPXJ9KSgpO2ZlKCk7dmFyIGlCdD0oKT0+TWAKICA8ZGVlcy1zdGVwcGVyCiAgICAuc3RlcHM9JHtbe3RpdGxlOiJBY2NvdW50IFNldHVwIixjb250ZW50Ok1gCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iZW1haWwiIGxhYmVsPSJXb3JrIEVtYWlsIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InBhc3N3b3JkIiBsYWJlbD0iQ3JlYXRlIFBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgYCx2YWxpZGF0aW9uRnVuYzphc3luYyh0LGUpPT57ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PnQuZ29OZXh0KCkse29uY2U6ITB9KX19LHt0aXRsZToiUHJvZmlsZSBEZXRhaWxzIixjb250ZW50Ok1gCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iZmlyc3ROYW1lIiBsYWJlbD0iRmlyc3QgTmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJsYXN0TmFtZSIgbGFiZWw9Ikxhc3QgTmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgYCx2YWxpZGF0aW9uRnVuYzphc3luYyh0LGUpPT57ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PnQuZ29OZXh0KCkse29uY2U6ITB9KX19LHt0aXRsZToiQ29udGFjdCBJbmZvcm1hdGlvbiIsY29udGVudDpNYAogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUga2V5PSJwaG9uZSIgbGFiZWw9Ik1vYmlsZSBOdW1iZXIiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImNvbXBhbnkiIGxhYmVsPSJDb21wYW55Ij48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICBgLHZhbGlkYXRpb25GdW5jOmFzeW5jKHQsZSk9PntlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoKT0+dC5nb05leHQoKSx7b25jZTohMH0pfX0se3RpdGxlOiJUZWFtIFNpemUiLGNvbnRlbnQ6TWAKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgICAga2V5PSJ0ZWFtU2l6ZSIKICAgICAgICAgICAgICBsYWJlbD0iSG93IGJpZyBpcyB5b3VyIHRlYW0/IgogICAgICAgICAgICAgIC5vcHRpb25zPSR7W3tsYWJlbDoiMS01Iix2YWx1ZToiMS01In0se2xhYmVsOiI2LTIwIix2YWx1ZToiNi0yMCJ9LHtsYWJlbDoiMjEtNTAiLHZhbHVlOiIyMS01MCJ9LHtsYWJlbDoiNTErIix2YWx1ZToiNTErIn1dfQogICAgICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgYCx2YWxpZGF0aW9uRnVuYzphc3luYyh0LGUpPT57ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PnQuZ29OZXh0KCkse29uY2U6ITB9KX19LHt0aXRsZToiR29hbHMiLGNvbnRlbnQ6TWAKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgICAga2V5PSJnb2FsIgogICAgICAgICAgICAgIGxhYmVsPSJNYWluIG9iamVjdGl2ZSIKICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7bGFiZWw6Ik9uYm9hcmRpbmciLHZhbHVlOiJvbmJvYXJkaW5nIn0se2xhYmVsOiJBbmFseXRpY3MiLHZhbHVlOiJhbmFseXRpY3MifSx7bGFiZWw6IkF1dG9tYXRpb24iLHZhbHVlOiJhdXRvbWF0aW9uIn1dfQogICAgICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgYCx2YWxpZGF0aW9uRnVuYzphc3luYyh0LGUpPT57ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PnQuZ29OZXh0KCkse29uY2U6ITB9KX19LHt0aXRsZToiQnJhbmQgUHJlZmVyZW5jZXMiLGNvbnRlbnQ6TWAKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJicmFuZENvbG9yIiBsYWJlbD0iUHJpbWFyeSBicmFuZCBjb2xvciI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJ0b25lIiBsYWJlbD0iUHJlZmVycmVkIHRvbmUgKGUuZy4gZnJpZW5kbHksIGZvcm1hbCkiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmModCxlKT0+e2UucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT50LmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IkludGVncmF0aW9ucyIsY29udGVudDpNYAogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIGtleT0iaW50ZWdyYXRpb25zIgogICAgICAgICAgICAgIGxhYmVsPSJJbnRlZ3JhdGlvbnMgaW4gdXNlIgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJBZGQgaW50ZWdyYXRpb24iCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICBgLHZhbGlkYXRpb25GdW5jOmFzeW5jKHQsZSk9PntlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoKT0+dC5nb05leHQoKSx7b25jZTohMH0pfX0se3RpdGxlOiJSZXZpZXcgJiBMYXVuY2giLGNvbnRlbnQ6TWAKICAgICAgICAgIDxkZWVzLXBhbmVsPgogICAgICAgICAgICA8cD5BbG1vc3QgdGhlcmUhIFJldmlldyB5b3VyIHNlbGVjdGlvbnMgYW5kIGxhdW5jaCB3aGVuZXZlciB5b3UncmUgcmVhZHkuPC9wPgogICAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIGB9XX0KICA+PC9kZWVzLXN0ZXBwZXI+CmA7ZmUoKTtTdCgpO0JlKCk7dmFyIHNOZT1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LFVJPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxBbjE9KCgpPT57bGV0IHQ9W2NlKCJkZWVzLXN0ZXBwZXIiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpBcnJheX0pXSxmPVtEKHt0eXBlOk9iamVjdH0pXSxzTmUodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGVwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InN0ZXBzImluIGcsZ2V0Omc9Pmcuc3RlcHMsc2V0OihnLGIpPT57Zy5zdGVwcz1ifX0sbWV0YWRhdGE6aH0scyxsKSxzTmUodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFN0ZXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJzZWxlY3RlZFN0ZXAiaW4gZyxnZXQ6Zz0+Zy5zZWxlY3RlZFN0ZXAsc2V0OihnLGIpPT57Zy5zZWxlY3RlZFN0ZXA9Yn19LG1ldGFkYXRhOmh9LGMsdSksc05lKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOmh9LG51bGwsYSksZD1yPWUudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89aUJ0OyNlPVVJKHRoaXMscyxbXSk7Z2V0IHN0ZXBzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0ZXBzKGgpe3RoaXMuI2U9aH0jdD0oVUkodGhpcyxsKSxVSSh0aGlzLGMsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkU3RlcCgpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFN0ZXAoaCl7dGhpcy4jdD1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CiAgICAgIC5zdGVwcGVyQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5zdGVwIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSksIGJveC1zaGFkb3cgMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSksIGZpbHRlciAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgYm9yZGVyIDAuN3MgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpOwogICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMwZjBmMTEiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlMmU4ZjAiLCIjMjcyNzI5Iil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzBmMTcyYSIsIiNmNWY1ZjUiKX07CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDAuNTUpIHNhdHVyYXRlKDAuODUpOwogICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc3RlcC5zZWxlY3RlZCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMSkgc2F0dXJhdGUoMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IGF1dG87CiAgICAgIH0KCiAgICAgIC5zdGVwLmhpZGRlblN0ZXAgewogICAgICAgIGZpbHRlcjogb3BhY2l0eSgwKTsKICAgICAgfQoKICAgICAgLnN0ZXAuZW50cmFuY2UgewogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1cyBlYXNlLCBib3gtc2hhZG93IDAuMzVzIGVhc2UsIGZpbHRlciAwLjM1cyBlYXNlLCBib3JkZXIgMC4zNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnN0ZXAuZW50cmFuY2UuaGlkZGVuU3RlcCB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpOwogICAgICB9CgogICAgICAuc3RlcDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDB2aDsKICAgICAgfQoKICAgICAgLnN0ZXAgLnN0ZXBDb3VudGVyIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2NDc0OGIiLCIjYTFhMWFhIil9OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEycHg7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgcGFkZGluZzogNnB4IDE0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNSkiLCJyZ2JhKDYzLCA2MywgNzAsIDAuNDUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNykiLCJyZ2JhKDYzLCA2MywgNzAsIDAuNikiKX07CiAgICAgIH0KCiAgICAgIC5zdGVwIC5nb0JhY2sgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEycHg7CiAgICAgICAgbGVmdDogMTJweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCJyZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOSkiLCJyZ2JhKDYzLCA2MywgNzAsIDAuODUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuODUpIil9OwogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzQ3NTU2OSIsIiNkNGQ0ZDgiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlciAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zdGVwIC5nb0JhY2s6aG92ZXIgewogICAgICAgIGNvbG9yOiAke3AuYmRUaGVtZSgiIzBmMTcyYSIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke3AuYmRUaGVtZShQYS5ibHVlLFBhLmJsdWUpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgicmdiYSgyMjYsIDIzMiwgMjQwLCAwLjk1KSIsInJnYmEoNjMsIDYzLCA3MCwgMC43KSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwIC5nb0JhY2s6YWN0aXZlIHsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwZjE3MmEiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtwLmJkVGhlbWUoUGEuYmx1ZUFjdGl2ZSxQYS5ibHVlQWN0aXZlKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoInJnYmEoMjI2LCAyMzIsIDI0MCwgMC44NSkiLCJyZ2JhKDYzLCA2MywgNzAsIDAuNikiKX07CiAgICAgIH0KCiAgICAgIC5zdGVwIC5nb0JhY2sgc3BhbiB7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5zdGVwIC5nb0JhY2s6aG92ZXIgc3BhbiB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpOwogICAgICB9CgogICAgICAuc3RlcCAudGl0bGUgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nLXRvcDogNjRweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICB9CgogICAgICAuc3RlcCAuY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9InN0ZXBwZXJDb250YWluZXIiPgogICAgICAgICR7dGhpcy5zdGVwcy5tYXAoaD0+TWA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9InN0ZXAgJHtoPT09dGhpcy5zZWxlY3RlZFN0ZXA/InNlbGVjdGVkIjpudWxsfSAke3RoaXMuZ2V0SW5kZXhPZlN0ZXAoaCk+dGhpcy5nZXRJbmRleE9mU3RlcCh0aGlzLnNlbGVjdGVkU3RlcCk/ImhpZGRlblN0ZXAiOiIifSAke3RoaXMuZ2V0SW5kZXhPZlN0ZXAoaCk9PT0wPyJlbnRyYW5jZSI6IiJ9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHt0aGlzLmdldEluZGV4T2ZTdGVwKGgpPjA/TWA8ZGl2IGNsYXNzPSJnb0JhY2siIEBjbGljaz0ke3RoaXMuZ29CYWNrfT48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IEludGVyIj48LTwvc3Bhbj4gZ28gdG8gcHJldmlvdXMgc3RlcDwvZGl2PmA6IiJ9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RlcENvdW50ZXIiPgogICAgICAgICAgICAgICAgU3RlcCAke3RoaXMuc3RlcHMuZmluZEluZGV4KGc9Pmc9PT1oKSsxfSBvZgogICAgICAgICAgICAgICAgJHt0aGlzLnN0ZXBzLmxlbmd0aH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+JHtoLnRpdGxlfTwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPiR7aC5jb250ZW50fTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4gYCl9CiAgICAgIDwvZGl2PgogICAgYH1nZXRJbmRleE9mU3RlcD0oVUkodGhpcyx1KSxoPT50aGlzLnN0ZXBzLmZpbmRJbmRleChnPT5oPT09ZykpO2FzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGF3YWl0IHRoaXMuZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnNlbGVjdGVkU3RlcD10aGlzLnN0ZXBzWzBdLHRoaXMuc2V0U2Nyb2xsU3RhdHVzKCksYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDM1MCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwLmVudHJhbmNlIik/LmNsYXNzTGlzdC5yZW1vdmUoImVudHJhbmNlIil9YXN5bmMgdXBkYXRlZCgpe3RoaXMuc2V0U2Nyb2xsU3RhdHVzKCl9c2Nyb2xsZXI7YXN5bmMgc2V0U2Nyb2xsU3RhdHVzKCl7bGV0IGg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zdGVwcGVyQ29udGFpbmVyIiksZz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXAiKSxiPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VsZWN0ZWQiKTtpZighYilyZXR1cm47aC5zdHlsZS5wYWRkaW5nVG9wfHwoaC5zdHlsZS5wYWRkaW5nVG9wPWAke2gub2Zmc2V0SGVpZ2h0LzItYi5vZmZzZXRIZWlnaHQvMn1weGApLGNvbnNvbGUubG9nKCJTZXR0aW5nIHNjcm9sbCBzdGF0dXMiKSxjb25zb2xlLmxvZyhiKTtsZXQgeD1iLm9mZnNldFRvcC1oLm9mZnNldEhlaWdodC8yK2Iub2Zmc2V0SGVpZ2h0LzI7Y29uc29sZS5sb2coeCk7bGV0IG09YXdhaXQgQzIuc2V0dXBEb21Ub29scygpO3RoaXMuc2Nyb2xsZXJ8fCh0aGlzLnNjcm9sbGVyPW5ldyBBdC5Td2VldFNjcm9sbCh7dmVydGljYWw6ITAsaG9yaXpvbnRhbDohMSxlYXNpbmc6ImVhc2VJbk91dEV4cG8iLGR1cmF0aW9uOjcwMH0saCkpLCF0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZCYmdGhpcy5zZWxlY3RlZFN0ZXAudmFsaWRhdGlvbkZ1bmMmJih0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcix0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMCxhd2FpdCB0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuYyh0aGlzLGIsdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLnNpZ25hbCkpLHRoaXMuc2Nyb2xsZXIudG8oeCl9YXN5bmMgZ29CYWNrKCl7bGV0IGg9dGhpcy5zdGVwcy5maW5kSW5kZXgoeD0+eD09PXRoaXMuc2VsZWN0ZWRTdGVwKTtpZihoPD0wKXJldHVybjt0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO2xldCBnPXRoaXMuc3RlcHNbaF07Zy52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMTtsZXQgYj10aGlzLnN0ZXBzW2gtMV07Yi52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMSx0aGlzLnNlbGVjdGVkU3RlcD1iLGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGF3YWl0IHRoaXMuZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigxMDApLHRoaXMuc2VsZWN0ZWRTdGVwLm9uUmV0dXJuVG9TdGVwRnVuYz8uKHRoaXMsdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZCIpKX1nb05leHQoKXtsZXQgaD10aGlzLnN0ZXBzLmZpbmRJbmRleCh4PT54PT09dGhpcy5zZWxlY3RlZFN0ZXApO2lmKGg8MHx8aD49dGhpcy5zdGVwcy5sZW5ndGgtMSlyZXR1cm47dGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyJiZ0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtsZXQgZz10aGlzLnN0ZXBzW2hdO2cudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITE7bGV0IGI9dGhpcy5zdGVwc1toKzFdO2IudmFsaWRhdGlvbkZ1bmNDYWxsZWQ9ITEsdGhpcy5zZWxlY3RlZFN0ZXA9Yn1zdGF0aWN7VUkocixhKX19O3JldHVybiBkPXJ9KSgpO2ZlKCk7dmFyIG9CdD0oKT0+TWAKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDsKICAgICAgfQoKICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM2NjYiLCIjYWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQoKICAgICAgLnRoZW1lLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMTZweDsKICAgICAgICByaWdodDogMTZweDsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1idXR0b24gY2xhc3M9InRoZW1lLXRvZ2dsZSIgQGNsaWNrZWQ9JHsoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiYnJpZ2h0Iil9fT5Ub2dnbGUgVGhlbWU8L2RlZXMtYnV0dG9uPgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRvYXN0IFR5cGVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBEaWZmZXJlbnQgdG9hc3QgdHlwZXMgZm9yIHZhcmlvdXMgbm90aWZpY2F0aW9uIHNjZW5hcmlvcy4gQ2xpY2sgYW55IGJ1dHRvbiB0byBzaG93IGEgdG9hc3QuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57T3QuaW5mbygiVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIG1lc3NhZ2UiKX19PkluZm8gVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiIEBjbGlja2VkPSR7KCk9PntPdC5zdWNjZXNzKCJPcGVyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEiKX19PlN1Y2Nlc3MgVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e090Lndhcm5pbmcoIlBsZWFzZSByZXZpZXcgYmVmb3JlIHByb2NlZWRpbmciKX19Pldhcm5pbmcgVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e090LmVycm9yKCJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIil9fT5FcnJvciBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRvYXN0IFBvc2l0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgVG9hc3RzIGNhbiBhcHBlYXIgaW4gZGlmZmVyZW50IHBvc2l0aW9ucyBvbiB0aGUgc2NyZWVuLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e090LnNob3coe21lc3NhZ2U6IlRvcCBSaWdodCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1yaWdodCJ9KX19PlRvcCBSaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57T3Quc2hvdyh7bWVzc2FnZToiVG9wIExlZnQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJ0b3AtbGVmdCJ9KX19PlRvcCBMZWZ0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntPdC5zaG93KHttZXNzYWdlOiJCb3R0b20gUmlnaHQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tcmlnaHQifSl9fT5Cb3R0b20gUmlnaHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e090LnNob3coe21lc3NhZ2U6IkJvdHRvbSBMZWZ0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoiYm90dG9tLWxlZnQifSl9fT5Cb3R0b20gTGVmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57T3Quc2hvdyh7bWVzc2FnZToiVG9wIENlbnRlciBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1jZW50ZXIifSl9fT5Ub3AgQ2VudGVyPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntPdC5zaG93KHttZXNzYWdlOiJCb3R0b20gQ2VudGVyIFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoiYm90dG9tLWNlbnRlciJ9KX19PkJvdHRvbSBDZW50ZXI8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5EdXJhdGlvbiBPcHRpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDb250cm9sIGhvdyBsb25nIHRvYXN0cyBzdGF5IHZpc2libGUuIER1cmF0aW9uIGluIG1pbGxpc2Vjb25kcy4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntPdC5zaG93KHttZXNzYWdlOiJRdWljayB0b2FzdCAoMSBzZWNvbmQpIix0eXBlOiJpbmZvIixkdXJhdGlvbjoxZTN9KX19PjEgU2Vjb25kPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntPdC5zaG93KHttZXNzYWdlOiJTdGFuZGFyZCB0b2FzdCAoMyBzZWNvbmRzKSIsdHlwZToiaW5mbyIsZHVyYXRpb246M2UzfSl9fT4zIFNlY29uZHMgKERlZmF1bHQpPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntPdC5zaG93KHttZXNzYWdlOiJMb25nIHRvYXN0ICg1IHNlY29uZHMpIix0eXBlOiJpbmZvIixkdXJhdGlvbjo1ZTN9KX19PjUgU2Vjb25kczwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57T3Quc2hvdyh7bWVzc2FnZToiTWFudWFsIGRpc21pc3Mgb25seSAoY2xpY2sgdG8gY2xvc2UpIix0eXBlOiJ3YXJuaW5nIixkdXJhdGlvbjowfSl9fT5ObyBBdXRvLURpc21pc3M8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NdWx0aXBsZSBUb2FzdHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIE11bHRpcGxlIHRvYXN0cyBzdGFjayBhdXRvbWF0aWNhbGx5LiBUaGV5IG1haW50YWluIHRoZWlyIG9yZGVyIGFuZCBhbmltYXRlIHNtb290aGx5LgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e090LmluZm8oIkZpcnN0IG5vdGlmaWNhdGlvbiIpLHNldFRpbWVvdXQoKCk9Pk90LnN1Y2Nlc3MoIlNlY29uZCBub3RpZmljYXRpb24iKSwyMDApLHNldFRpbWVvdXQoKCk9Pk90Lndhcm5pbmcoIlRoaXJkIG5vdGlmaWNhdGlvbiIpLDQwMCksc2V0VGltZW91dCgoKT0+T3QuZXJyb3IoIkZvdXJ0aCBub3RpZmljYXRpb24iKSw2MDApfX0+U2hvdyBNdWx0aXBsZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57Zm9yKGxldCB0PTE7dDw9NTt0Kyspc2V0VGltZW91dCgoKT0+e090LnNob3coe21lc3NhZ2U6YE5vdGlmaWNhdGlvbiAjJHt0fWAsdHlwZTp0JTI9PT0wPyJzdWNjZXNzIjoiaW5mbyIsZHVyYXRpb246MmUzK3QqNTAwfSl9LHQqMTAwKX19PlJhcGlkIEZpcmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5SZWFsLVdvcmxkIEV4YW1wbGVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDb21tb24gdXNlIGNhc2VzIGZvciB0b2FzdCBub3RpZmljYXRpb25zIGluIGFwcGxpY2F0aW9ucy4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7YXN5bmMoKT0+e2xldCB0PWF3YWl0IE90LnNob3coe21lc3NhZ2U6IlNhdmluZyBjaGFuZ2VzLi4uIix0eXBlOiJpbmZvIixkdXJhdGlvbjowfSk7c2V0VGltZW91dCgoKT0+e3QuZGlzbWlzcygpLE90LnN1Y2Nlc3MoIkNoYW5nZXMgc2F2ZWQgc3VjY2Vzc2Z1bGx5ISIpfSwyZTMpfX0+U2F2ZSBPcGVyYXRpb248L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e090LmVycm9yKCJGYWlsZWQgdG8gY29ubmVjdCB0byBzZXJ2ZXIuIFBsZWFzZSBjaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24uIil9fT5OZXR3b3JrIEVycm9yPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntPdC53YXJuaW5nKCJZb3VyIHNlc3Npb24gd2lsbCBleHBpcmUgaW4gNSBtaW51dGVzIil9fT5TZXNzaW9uIFdhcm5pbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e090LnN1Y2Nlc3MoIkZpbGUgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5ISIpfX0+VXBsb2FkIENvbXBsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UHJvZ3JhbW1hdGljIENvbnRyb2w8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIEFkdmFuY2VkIGNvbnRyb2wgb3ZlciB0b2FzdCBiZWhhdmlvci4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7YXN5bmMoKT0+e2xldCB0PWF3YWl0IE90LnNob3coe21lc3NhZ2U6IlRoaXMgdG9hc3QgY2FuIGJlIGRpc21pc3NlZCBwcm9ncmFtbWF0aWNhbGx5Iix0eXBlOiJpbmZvIixkdXJhdGlvbjowfSk7c2V0VGltZW91dCgoKT0+e3QuZGlzbWlzcygpLE90LnN1Y2Nlc3MoIlRvYXN0IGRpc21pc3NlZCBhZnRlciAyIHNlY29uZHMiKX0sMmUzKX19PlByb2dyYW1tYXRpYyBEaXNtaXNzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntPdC5pbmZvKCJJbmZvIG1lc3NhZ2UiLDJlMyksc2V0VGltZW91dCgoKT0+T3Quc3VjY2VzcygiU3VjY2VzcyBtZXNzYWdlIiwyZTMpLDUwMCksc2V0VGltZW91dCgoKT0+T3Qud2FybmluZygiV2FybmluZyBtZXNzYWdlIiwyZTMpLDFlMyksc2V0VGltZW91dCgoKT0+T3QuZXJyb3IoIkVycm9yIG1lc3NhZ2UiLDJlMyksMTUwMCl9fT5Db252ZW5pZW5jZSBNZXRob2RzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgO2ZlKCk7U3QoKTtCZSgpO3ZhciBqST1mdW5jdGlvbih0LGUsYSxyLGksbyl7ZnVuY3Rpb24gcyh2KXtpZih2IT09dm9pZCAwJiZ0eXBlb2YgdiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB2fWZvcih2YXIgbD1yLmtpbmQsZj1sPT09ImdldHRlciI/ImdldCI6bD09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9yLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwsdT1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsci5uYW1lKTp7fSksZCxoPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIGI9e307Zm9yKHZhciB4IGluIHIpYlt4XT14PT09ImFjY2VzcyI/e306clt4XTtmb3IodmFyIHggaW4gci5hY2Nlc3MpYi5hY2Nlc3NbeF09ci5hY2Nlc3NbeF07Yi5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih2KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO28ucHVzaChzKHZ8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobD09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbZl0sYik7aWYobD09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1zKG0uZ2V0KSkmJih1LmdldD1kKSwoZD1zKG0uc2V0KSkmJih1LnNldD1kKSwoZD1zKG0uaW5pdCkpJiZpLnVuc2hpZnQoZCl9ZWxzZShkPXMobSkpJiYobD09PSJmaWVsZCI/aS51bnNoaWZ0KGQpOnVbZl09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsci5uYW1lLHUpLGg9ITB9LHJvPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yLGk9MDtpPGUubGVuZ3RoO2krKylhPXI/ZVtpXS5jYWxsKHQsYSk6ZVtpXS5jYWxsKHQpO3JldHVybiByP2E6dm9pZCAwfSxPdD0oKCk9PntsZXQgdD1bY2UoImRlZXMtdG9hc3QiKV0sZSxhPVtdLHIsaT1wZSxvLHM9W10sbD1bXSxmLGM9W10sdT1bXSxkLGg9W10sZz1bXSxiLHg9W10sbT1bXTt2YXIgdj1jbGFzcyBleHRlbmRzIGl7c3RhdGlje3I9dGhpc31zdGF0aWN7bGV0IHk9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoaVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bz1bRCh7dHlwZTpTdHJpbmd9KV0sZj1bRCh7dHlwZTpTdHJpbmd9KV0sZD1bRCh7dHlwZTpOdW1iZXJ9KV0sYj1bRCh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sakkodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXNzYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4ibWVzc2FnZSJpbiB3LGdldDp3PT53Lm1lc3NhZ2Usc2V0Oih3LEUpPT57dy5tZXNzYWdlPUV9fSxtZXRhZGF0YTp5fSxzLGwpLGpJKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dz0+InR5cGUiaW4gdyxnZXQ6dz0+dy50eXBlLHNldDoodyxFKT0+e3cudHlwZT1FfX0sbWV0YWRhdGE6eX0sYyx1KSxqSSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4iZHVyYXRpb24iaW4gdyxnZXQ6dz0+dy5kdXJhdGlvbixzZXQ6KHcsRSk9Pnt3LmR1cmF0aW9uPUV9fSxtZXRhZGF0YTp5fSxoLGcpLGpJKHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4iaXNWaXNpYmxlImluIHcsZ2V0Onc9PncuaXNWaXNpYmxlLHNldDoodyxFKT0+e3cuaXNWaXNpYmxlPUV9fSxtZXRhZGF0YTp5fSx4LG0pLGpJKG51bGwsZT17dmFsdWU6cn0sdCx7a2luZDoiY2xhc3MiLG5hbWU6ci5uYW1lLG1ldGFkYXRhOnl9LG51bGwsYSksdj1yPWUudmFsdWUseSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp5fSl9c3RhdGljIGRlbW89b0J0O3N0YXRpYyB0b2FzdENvbnRhaW5lcnM9bmV3IE1hcDtzdGF0aWMgZ2V0T3JDcmVhdGVDb250YWluZXIoeSl7aWYoIXRoaXMudG9hc3RDb250YWluZXJzLmhhcyh5KSl7bGV0IHc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7c3dpdGNoKHcuY2xhc3NOYW1lPWB0b2FzdC1jb250YWluZXIgdG9hc3QtY29udGFpbmVyLSR7eX1gLHcuc3R5bGUuY3NzVGV4dD1gCiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHotaW5kZXg6ICR7WDEub3ZlcmxheS50b2FzdH07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIGAseSl7Y2FzZSJ0b3AtcmlnaHQiOncuc3R5bGUudG9wPSIwIix3LnN0eWxlLnJpZ2h0PSIwIjticmVhaztjYXNlInRvcC1sZWZ0Ijp3LnN0eWxlLnRvcD0iMCIsdy5zdHlsZS5sZWZ0PSIwIjticmVhaztjYXNlImJvdHRvbS1yaWdodCI6dy5zdHlsZS5ib3R0b209IjAiLHcuc3R5bGUucmlnaHQ9IjAiO2JyZWFrO2Nhc2UiYm90dG9tLWxlZnQiOncuc3R5bGUuYm90dG9tPSIwIix3LnN0eWxlLmxlZnQ9IjAiO2JyZWFrO2Nhc2UidG9wLWNlbnRlciI6dy5zdHlsZS50b3A9IjAiLHcuc3R5bGUubGVmdD0iNTAlIix3LnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtNTAlKSI7YnJlYWs7Y2FzZSJib3R0b20tY2VudGVyIjp3LnN0eWxlLmJvdHRvbT0iMCIsdy5zdHlsZS5sZWZ0PSI1MCUiLHcuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKC01MCUpIjticmVha31kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHcpLHRoaXMudG9hc3RDb250YWluZXJzLnNldCh5LHcpfXJldHVybiB0aGlzLnRvYXN0Q29udGFpbmVycy5nZXQoeSl9c3RhdGljIGFzeW5jIHNob3coeSl7bGV0IHc9dHlwZW9mIHk9PSJzdHJpbmciP3ttZXNzYWdlOnl9OnksRT1uZXcgdjtyZXR1cm4gRS5tZXNzYWdlPXcubWVzc2FnZSxFLnR5cGU9dy50eXBlfHwiaW5mbyIsRS5kdXJhdGlvbj13LmR1cmF0aW9ufHwzZTMsdGhpcy5nZXRPckNyZWF0ZUNvbnRhaW5lcih3LnBvc2l0aW9ufHwidG9wLXJpZ2h0IikuYXBwZW5kQ2hpbGQoRSksYXdhaXQgRS51cGRhdGVDb21wbGV0ZSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntFLmlzVmlzaWJsZT0hMH0pLEUuZHVyYXRpb24+MCYmc2V0VGltZW91dCgoKT0+e0UuZGlzbWlzcygpfSxFLmR1cmF0aW9uKSxFfXN0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KHkpe3JldHVybiB0aGlzLnNob3coeSl9c3RhdGljIGluZm8oeSx3KXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOnksdHlwZToiaW5mbyIsZHVyYXRpb246d30pfXN0YXRpYyBzdWNjZXNzKHksdyl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTp5LHR5cGU6InN1Y2Nlc3MiLGR1cmF0aW9uOnd9KX1zdGF0aWMgd2FybmluZyh5LHcpe3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6eSx0eXBlOiJ3YXJuaW5nIixkdXJhdGlvbjp3fSl9c3RhdGljIGVycm9yKHksdyl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTp5LHR5cGU6ImVycm9yIixkdXJhdGlvbjp3fSl9I2U9cm8odGhpcyxzLCIiKTtnZXQgbWVzc2FnZSgpe3JldHVybiB0aGlzLiNlfXNldCBtZXNzYWdlKHkpe3RoaXMuI2U9eX0jdD0ocm8odGhpcyxsKSxybyh0aGlzLGMsImluZm8iKSk7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdHlwZSh5KXt0aGlzLiN0PXl9I2E9KHJvKHRoaXMsdSkscm8odGhpcyxoLDNlMykpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBkdXJhdGlvbih5KXt0aGlzLiNhPXl9I3I9KHJvKHRoaXMsZykscm8odGhpcyx4LCExKSk7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNyfXNldCBpc1Zpc2libGUoeSl7dGhpcy4jcj15fWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxybyh0aGlzLG0pLGMxLnNldHVwKCl9c3RhdGljIHN0eWxlcz1beGUscC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICA6aG9zdChbaXN2aXNpYmxlXSkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICB9CgogICAgICAudG9hc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZiIsIiMyMjIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtwLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggJHtwLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4xKSIsInJnYmEoMCwwLDAsMC4zKSIpfTsKICAgICAgICBtaW4td2lkdGg6IDMwMHB4OwogICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAudG9hc3Q6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgIH0KCiAgICAgIC5pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuaWNvbiBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmNsb3NlIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC5jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNsb3NlIHN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsKICAgICAgfQoKICAgICAgLyogVHlwZS1zcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW3R5cGU9ImluZm8iXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjMDA4NGZmOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0ic3VjY2VzcyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICMyMmM1NWU7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJ3YXJuaW5nIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2Y1OWUwYjsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9ImVycm9yIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogI2VmNDQ0NDsKICAgICAgfQoKICAgICAgLyogUHJvZ3Jlc3MgYmFyICovCiAgICAgIC5wcm9ncmVzcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDsKICAgICAgICBhbmltYXRpb246IHByb2dyZXNzIGxpbmVhciBmb3J3YXJkczsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwcm9ncmVzcyB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgeT17aW5mbzpNYDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTEtMTFhMSAxIDAgMTAtMiAwdjJIN2ExIDEgMCAxMDAgMmgydjJhMSAxIDAgMTAyIDB2LTJoMmExIDEgMCAxMDAtMmgtMlY3eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsc3VjY2VzczpNYDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTMuNzA3LTkuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDkgMTAuNTg2IDcuNzA3IDkuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDIgMmExIDEgMCAwMDEuNDE0IDBsNC00eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmAsd2FybmluZzpNYDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTguMjU3IDMuMDk5Yy43NjUtMS4zNiAyLjcyMi0xLjM2IDMuNDg2IDBsNS41OCA5LjkyYy43NSAxLjMzNC0uMjEzIDIuOTgtMS43NDIgMi45OEg0LjQyYy0xLjUzIDAtMi40OTMtMS42NDYtMS43NDMtMi45OGw1LjU4LTkuOTJ6TTExIDEzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLTEtOGExIDEgMCAwMC0xIDF2M2ExIDEgMCAwMDIgMFY2YTEgMSAwIDAwLTEtMXoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLGVycm9yOk1gPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNOC43MDcgNy4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRMOC41ODYgMTBsLTEuMjkzIDEuMjkzYTEgMSAwIDEwMS40MTQgMS40MTRMMTAgMTEuNDE0bDEuMjkzIDEuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRMMTEuNDE0IDEwbDEuMjkzLTEuMjkzYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDEwIDguNTg2IDguNzA3IDcuMjkzeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICAgIDwvc3ZnPmB9O3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJ0b2FzdCIgQGNsaWNrPSR7dGhpcy5kaXNtaXNzfT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uIj4KICAgICAgICAgICR7eVt0aGlzLnR5cGVdfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPiR7dGhpcy5tZXNzYWdlfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNsb3NlIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8cGF0aCBkPSJNNC42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAwIDEgMC0uNzA4eiIvPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLmR1cmF0aW9uPjA/TWAKICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIiBzdHlsZT0iYW5pbWF0aW9uLWR1cmF0aW9uOiAke3RoaXMuZHVyYXRpb259bXMiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGRpc21pc3MoKXt0aGlzLmlzVmlzaWJsZT0hMSxhd2FpdCBuZXcgUHJvbWlzZSh3PT5zZXRUaW1lb3V0KHcsMzAwKSksdGhpcy5yZW1vdmUoKTtsZXQgeT10aGlzLnBhcmVudEVsZW1lbnQ7aWYoeSYmeS5jaGlsZHJlbi5sZW5ndGg9PT0wKXt5LnJlbW92ZSgpO2ZvcihsZXRbdyxFXW9mIHYudG9hc3RDb250YWluZXJzLmVudHJpZXMoKSlpZihFPT09eSl7di50b2FzdENvbnRhaW5lcnMuZGVsZXRlKHcpO2JyZWFrfX19Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZXRBdHRyaWJ1dGUoInR5cGUiLHRoaXMudHlwZSl9c3RhdGlje3JvKHIsYSl9fTtyZXR1cm4gdj1yfSkoKTtmZSgpO3ZhciBzQnQ9YXN5bmMoKT0+e2xldCB0PWF3YWl0IG5OZS5jcmVhdGVBbmRTaG93KCk7c2V0VGltZW91dChhc3luYygpPT57YXdhaXQgdC5kZXN0cm95KCl9LDFlNCl9O2ZlKCk7ZmUoKTtCZSgpO3ZhciBsTmU9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxXST1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sbk5lPSgoKT0+e2xldCB0PVtjZSgiZGVlcy11cGRhdGVyIildLGUsYT1bXSxyLGk9cGUsbyxzPVtdLGw9W10sZixjPVtdLHU9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBpe3N0YXRpY3tyPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGlbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO289W0Qoe3R5cGU6U3RyaW5nfSldLGY9W0Qoe3R5cGU6U3RyaW5nfSldLGxOZSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWZXJzaW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iY3VycmVudFZlcnNpb24iaW4gZyxnZXQ6Zz0+Zy5jdXJyZW50VmVyc2lvbixzZXQ6KGcsYik9PntnLmN1cnJlbnRWZXJzaW9uPWJ9fSxtZXRhZGF0YTpofSxzLGwpLGxOZSh0aGlzLG51bGwsZix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVwZGF0ZWRWZXJzaW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4idXBkYXRlZFZlcnNpb24iaW4gZyxnZXQ6Zz0+Zy51cGRhdGVkVmVyc2lvbixzZXQ6KGcsYik9PntnLnVwZGF0ZWRWZXJzaW9uPWJ9fSxtZXRhZGF0YTpofSxjLHUpLGxOZShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpofSxudWxsLGEpLGQ9cj1lLnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPXNCdDtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdygpe2xldCBoPW5ldyBkO3JldHVybiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGgpLGh9I2U9V0kodGhpcyxzLHZvaWQgMCk7Z2V0IGN1cnJlbnRWZXJzaW9uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRWZXJzaW9uKGgpe3RoaXMuI2U9aH0jdD0oV0kodGhpcyxsKSxXSSh0aGlzLGMsdm9pZCAwKSk7Z2V0IHVwZGF0ZWRWZXJzaW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHVwZGF0ZWRWZXJzaW9uKGgpe3RoaXMuI3Q9aH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksV0kodGhpcyx1KSxzdC5lbGVtZW50QmFzaWMuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVt4ZSxwLmRlZmF1bHRTdHlsZXMsdGVgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiNlZWVlZWIiLCIjMjIyIil9OwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3AuYmRUaGVtZSgiI2VlZWVlYiIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nQ29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDBweCA0MHB4OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgbWFyZ2luOiBub25lOwogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC5idXR0b25Db250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MCUgNTAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPGRlZXMtd2luZG93bGF5ZXIKICAgICAgICBAY2xpY2tlZD0iJHt0aGlzLndpbmRvd0xheWVyQ2xpY2tlZH0iCiAgICAgICAgLm9wdGlvbnM9JHt7Ymx1cjohMH19CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbENvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nQ29udGFpbmVyIj4KICAgICAgICAgICAgPGRlZXMtc3Bpbm5lciAuc2l6ZT0kezYwfT48L2RlZXMtc3Bpbm5lcj4KICAgICAgICAgICAgPGgxPlVwZGF0aW5nIHRoZSBhcHBsaWNhdGlvbi4uLjwvaDE+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzIj4KICAgICAgICAgICAgPGRlZXMtcHJvZ3Jlc3NiYXIgLnByb2dyZXNzPSR7LjV9PjwvZGVlcy1wcm9ncmVzc2Jhcj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uQ29udGFpbmVyIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk1vcmUgaW5mbzwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DaGFuZ2Vsb2c8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+IDwvZGVlcy13aW5kb3dsYXllcgogICAgICA+PgogICAgYH1hc3luYyBkZXN0cm95KCl7dGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpfXdpbmRvd0xheWVyQ2xpY2tlZCgpe31zdGF0aWN7V0kocixhKX19O3JldHVybiBkPXJ9KSgpO2ZlKCk7dmFyIG5CdD0oKT0+TWAKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7cC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgfQoKICAgIC50b2tlbi1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICBnYXA6IDE2cHg7CiAgICB9CgogICAgLnRva2VuLWl0ZW0gewogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgcGFkZGluZzogMTZweDsKICAgIH0KCiAgICAudG9rZW4tbmFtZSB7CiAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgfQoKICAgIC50b2tlbi12YWx1ZSB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7cC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc3BhY2luZy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICBnYXA6IDhweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5zcGFjaW5nLWJveCB7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgfQoKICAgIC5yYWRpdXMtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMTZweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5yYWRpdXMtYm94IHsKICAgICAgd2lkdGg6IDYwcHg7CiAgICAgIGhlaWdodDogNjBweDsKICAgICAgYmFja2dyb3VuZDogJHtwLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnNoYWRvdy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnNoYWRvdy1ib3ggewogICAgICB3aWR0aDogMTAwcHg7CiAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7cC5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHtwLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgfQoKICAgIC5oZWlnaHQtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMTZweDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLmhlaWdodC1ib3ggewogICAgICBiYWNrZ3JvdW5kOiAke3AuYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIHdpZHRoOiAxMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy10aGVtZT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U3BhY2luZyBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXNwYWNpbmcteHMgdGhyb3VnaCAtLWRlZXMtc3BhY2luZy0zeGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXhzKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnhzICg0cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1zbSk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5zbSAoOHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy1tZCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWQgKDEycHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1sZyk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5sZyAoMTZweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXhsKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnhsICgyNHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4yeGwgKDMycHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy0zeGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy0zeGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjN4bCAoNDhweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkJvcmRlciBSYWRpdXMgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1yYWRpdXMteHMgdGhyb3VnaCAtLWRlZXMtcmFkaXVzLWZ1bGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMteHMpOyI+eHM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1zbSk7Ij5zbTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjZweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtbGcpOyI+bGc8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+OHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14bCk7Ij54bDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4xMnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1mdWxsKTsiPmZ1bGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+OTk5cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNoYWRvdyBFbGV2YXRpb24gU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1zaGFkb3cteHMgdGhyb3VnaCAtLWRlZXMtc2hhZG93LWxnCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LXhzKTsiPnhzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPm1pbmltYWw8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnN1YnRsZTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWVkaXVtPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5wcm9taW5lbnQ8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNvbnRyb2wgSGVpZ2h0IFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtY29udHJvbC1oZWlnaHQtc20gdGhyb3VnaCAtLWRlZXMtY29udHJvbC1oZWlnaHQteGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjMycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4zNnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtbGcpOyI+bGc8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NDBweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXhsKTsiPnhsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjQ4cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlRyYW5zaXRpb24gRHVyYXRpb25zPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtdHJhbnNpdGlvbi1mYXN0IHRocm91Z2ggLS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tZmFzdDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4xczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tZGVmYXVsdDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4xNXM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLXNsb3c8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tdmFsdWUiPjAuMnM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLXNsb3dlcjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4zczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLXRoZW1lPgogIDwvZGl2PgpgO2ZlKCk7QmUoKTt2YXIgeTU9ZnVuY3Rpb24odCxlLGEscixpLG8pe2Z1bmN0aW9uIHModil7aWYodiE9PXZvaWQgMCYmdHlwZW9mIHYhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4gdn1mb3IodmFyIGw9ci5raW5kLGY9bD09PSJnZXR0ZXIiPyJnZXQiOmw9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/ci5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHU9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLHIubmFtZSk6e30pLGQsaD0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciBiPXt9O2Zvcih2YXIgeCBpbiByKWJbeF09eD09PSJhY2Nlc3MiP3t9OnJbeF07Zm9yKHZhciB4IGluIHIuYWNjZXNzKWIuYWNjZXNzW3hdPXIuYWNjZXNzW3hdO2IuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24odil7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtvLnB1c2gocyh2fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKGw9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2ZdLGIpO2lmKGw9PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9cyhtLmdldCkpJiYodS5nZXQ9ZCksKGQ9cyhtLnNldCkpJiYodS5zZXQ9ZCksKGQ9cyhtLmluaXQpKSYmaS51bnNoaWZ0KGQpfWVsc2UoZD1zKG0pKSYmKGw9PT0iZmllbGQiP2kudW5zaGlmdChkKTp1W2ZdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLHIubmFtZSx1KSxoPSEwfSxocj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGg+MixpPTA7aTxlLmxlbmd0aDtpKyspYT1yP2VbaV0uY2FsbCh0LGEpOmVbaV0uY2FsbCh0KTtyZXR1cm4gcj9hOnZvaWQgMH0sJG4xPSgoKT0+e2xldCB0PVtjZSgiZGVlcy10aGVtZSIpXSxlLGE9W10scixpPXBlLG8scz1bXSxsPVtdLGYsYz1bXSx1PVtdLGQsaD1bXSxnPVtdLGIseD1bXSxtPVtdLHYseT1bXSx3PVtdO3ZhciBFPWNsYXNzIGV4dGVuZHMgaXtzdGF0aWN7cj10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShpW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtvPVtEKHt0eXBlOk9iamVjdH0pXSxmPVtEKHt0eXBlOk9iamVjdH0pXSxkPVtEKHt0eXBlOk9iamVjdH0pXSxiPVtEKHt0eXBlOk9iamVjdH0pXSx2PVtEKHt0eXBlOk9iamVjdH0pXSx5NSh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNwYWNpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJjdXN0b21TcGFjaW5nImluIHosZ2V0Ono9PnouY3VzdG9tU3BhY2luZyxzZXQ6KHosUCk9Pnt6LmN1c3RvbVNwYWNpbmc9UH19LG1ldGFkYXRhOkN9LHMsbCkseTUodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21SYWRpdXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJjdXN0b21SYWRpdXMiaW4geixnZXQ6ej0+ei5jdXN0b21SYWRpdXMsc2V0Oih6LFApPT57ei5jdXN0b21SYWRpdXM9UH19LG1ldGFkYXRhOkN9LGMsdSkseTUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21TaGFkb3dzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iY3VzdG9tU2hhZG93cyJpbiB6LGdldDp6PT56LmN1c3RvbVNoYWRvd3Msc2V0Oih6LFApPT57ei5jdXN0b21TaGFkb3dzPVB9fSxtZXRhZGF0YTpDfSxoLGcpLHk1KHRoaXMsbnVsbCxiLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tVHJhbnNpdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJjdXN0b21UcmFuc2l0aW9ucyJpbiB6LGdldDp6PT56LmN1c3RvbVRyYW5zaXRpb25zLHNldDooeixQKT0+e3ouY3VzdG9tVHJhbnNpdGlvbnM9UH19LG1ldGFkYXRhOkN9LHgsbSkseTUodGhpcyxudWxsLHYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21Db250cm9sSGVpZ2h0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImN1c3RvbUNvbnRyb2xIZWlnaHRzImluIHosZ2V0Ono9PnouY3VzdG9tQ29udHJvbEhlaWdodHMsc2V0Oih6LFApPT57ei5jdXN0b21Db250cm9sSGVpZ2h0cz1QfX0sbWV0YWRhdGE6Q30seSx3KSx5NShudWxsLGU9e3ZhbHVlOnJ9LHQse2tpbmQ6ImNsYXNzIixuYW1lOnIubmFtZSxtZXRhZGF0YTpDfSxudWxsLGEpLEU9cj1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPW5CdDsjZT1ocih0aGlzLHMsbnVsbCk7Z2V0IGN1c3RvbVNwYWNpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VzdG9tU3BhY2luZyhDKXt0aGlzLiNlPUN9I3Q9KGhyKHRoaXMsbCksaHIodGhpcyxjLG51bGwpKTtnZXQgY3VzdG9tUmFkaXVzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1c3RvbVJhZGl1cyhDKXt0aGlzLiN0PUN9I2E9KGhyKHRoaXMsdSksaHIodGhpcyxoLG51bGwpKTtnZXQgY3VzdG9tU2hhZG93cygpe3JldHVybiB0aGlzLiNhfXNldCBjdXN0b21TaGFkb3dzKEMpe3RoaXMuI2E9Q30jcj0oaHIodGhpcyxnKSxocih0aGlzLHgsbnVsbCkpO2dldCBjdXN0b21UcmFuc2l0aW9ucygpe3JldHVybiB0aGlzLiNyfXNldCBjdXN0b21UcmFuc2l0aW9ucyhDKXt0aGlzLiNyPUN9I2k9KGhyKHRoaXMsbSksaHIodGhpcyx5LG51bGwpKTtnZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY3VzdG9tQ29udHJvbEhlaWdodHMoQyl7dGhpcy4jaT1DfXN0YXRpYyBzdHlsZXM9W3hlLHAuZGVmYXVsdFN0eWxlcyx0ZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gTWAKICAgICAgPHN0eWxlPgogICAgICAgICR7dGhpcy5nZW5lcmF0ZUN1c3RvbVN0eWxlcygpfQogICAgICA8L3N0eWxlPgogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWdlbmVyYXRlQ3VzdG9tU3R5bGVzKCl7bGV0IEM9WyI6aG9zdCB7Il07aWYodGhpcy5jdXN0b21TcGFjaW5nKWZvcihsZXRbeixQXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tU3BhY2luZykpUCYmQy5wdXNoKGAgIC0tZGVlcy1zcGFjaW5nLSR7en06ICR7UH07YCk7aWYodGhpcy5jdXN0b21SYWRpdXMpZm9yKGxldFt6LFBdb2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21SYWRpdXMpKVAmJkMucHVzaChgICAtLWRlZXMtcmFkaXVzLSR7en06ICR7UH07YCk7aWYodGhpcy5jdXN0b21TaGFkb3dzKWZvcihsZXRbeixQXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tU2hhZG93cykpUCYmQy5wdXNoKGAgIC0tZGVlcy1zaGFkb3ctJHt6fTogJHtQfTtgKTtpZih0aGlzLmN1c3RvbVRyYW5zaXRpb25zKXtmb3IobGV0W3osUF1vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVRyYW5zaXRpb25zKSlpZihQKXtsZXQgXz16PT09ImRlZmF1bHQiPyJkZWZhdWx0Ijp6O0MucHVzaChgICAtLWRlZXMtdHJhbnNpdGlvbi0ke199OiAke1B9O2ApfX1pZih0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzKWZvcihsZXRbeixQXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpKVAmJkMucHVzaChgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtJHt6fTogJHtQfTtgKTtyZXR1cm4gQy5wdXNoKCJ9IiksQy5qb2luKGAKYCl9c2V0U3BhY2luZyhDLHope3RoaXMuY3VzdG9tU3BhY2luZz17Li4udGhpcy5jdXN0b21TcGFjaW5nLFtDXTp6fX1zZXRSYWRpdXMoQyx6KXt0aGlzLmN1c3RvbVJhZGl1cz17Li4udGhpcy5jdXN0b21SYWRpdXMsW0NdOnp9fXNldFNoYWRvdyhDLHope3RoaXMuY3VzdG9tU2hhZG93cz17Li4udGhpcy5jdXN0b21TaGFkb3dzLFtDXTp6fX1zZXRUcmFuc2l0aW9uKEMseil7dGhpcy5jdXN0b21UcmFuc2l0aW9ucz17Li4udGhpcy5jdXN0b21UcmFuc2l0aW9ucyxbQ106en19c2V0Q29udHJvbEhlaWdodChDLHope3RoaXMuY3VzdG9tQ29udHJvbEhlaWdodHM9ey4uLnRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMsW0NdOnp9fWdldFRoZW1lKCl7cmV0dXJue2NvbG9yczpBbi5jb2xvcnMsc3BhY2luZzp7Li4uQW4uc3BhY2luZywuLi50aGlzLmN1c3RvbVNwYWNpbmd9LHJhZGl1czp7Li4uQW4ucmFkaXVzLC4uLnRoaXMuY3VzdG9tUmFkaXVzfSxzaGFkb3dzOnsuLi5Bbi5zaGFkb3dzLC4uLnRoaXMuY3VzdG9tU2hhZG93c30sdHJhbnNpdGlvbnM6ey4uLkFuLnRyYW5zaXRpb25zLC4uLnRoaXMuY3VzdG9tVHJhbnNpdGlvbnN9LGNvbnRyb2xIZWlnaHRzOnsuLi5Bbi5jb250cm9sSGVpZ2h0cywuLi50aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzfX19cmVzZXRUb0RlZmF1bHRzKCl7dGhpcy5jdXN0b21TcGFjaW5nPW51bGwsdGhpcy5jdXN0b21SYWRpdXM9bnVsbCx0aGlzLmN1c3RvbVNoYWRvd3M9bnVsbCx0aGlzLmN1c3RvbVRyYW5zaXRpb25zPW51bGwsdGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz1udWxsfWFwcGx5VGhlbWUoQyl7Qy5zcGFjaW5nJiYodGhpcy5jdXN0b21TcGFjaW5nPUMuc3BhY2luZyksQy5yYWRpdXMmJih0aGlzLmN1c3RvbVJhZGl1cz1DLnJhZGl1cyksQy5zaGFkb3dzJiYodGhpcy5jdXN0b21TaGFkb3dzPUMuc2hhZG93cyksQy50cmFuc2l0aW9ucyYmKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnM9Qy50cmFuc2l0aW9ucyksQy5jb250cm9sSGVpZ2h0cyYmKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHM9Qy5jb250cm9sSGVpZ2h0cyl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGhyKHRoaXMsdyl9c3RhdGlje2hyKHIsYSl9fTtyZXR1cm4gRT1yfSkoKTtCZSgpO21qKCk7ZmUoKTt2YXIgbEJ0LGNCdCxkQnQsZkJ0LHVCdCxwQnQsVzIsY05lLGROZSxmTmUsdU5lO3BCdD1bY2UoIm9wZW5jZG4tbWFpbnBhZ2UiKV07dmFyIFFyPWNsYXNzIGV4dGVuZHModUJ0PXBlLGZCdD1bRCh7dHlwZTpTdHJpbmd9KV0sZEJ0PVtEKHt0eXBlOlN0cmluZ30pXSxjQnQ9W0Qoe3R5cGU6QXJyYXl9KV0sbEJ0PVtsZSgpXSx1QnQpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTtKMSh0aGlzLGNOZSxEdChXMiw4LHRoaXMsIjEuMC4wIikpLER0KFcyLDExLHRoaXMpO0oxKHRoaXMsZE5lLER0KFcyLDEyLHRoaXMsInByb2QiKSksRHQoVzIsMTUsdGhpcyk7SjEodGhpcyxmTmUsRHQoVzIsMTYsdGhpcyxbXSkpLER0KFcyLDE5LHRoaXMpO0oxKHRoaXMsdU5lLER0KFcyLDIwLHRoaXMsImhvbWUiKSksRHQoVzIsMjMsdGhpcyl9cmVuZGVyKCl7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvLWljb24iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBhY2thZ2UifSAuaWNvblNpemU9JHsyNH0+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9nby10ZXh0Ij5vcGVuY2RuPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8cCBjbGFzcz0idGFnbGluZSI+U2VydmUgZmlsZXMgZGlyZWN0bHkgZnJvbSBucG0gcGFja2FnZXM8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgICAgPGRpdiBjbGFzcz0idXNhZ2UtYm94Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNhZ2UtdGl0bGUiPlJlcXVlc3QgZmlsZXMgdXNpbmc6PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzYWdlLWNvZGUiPi9Ac2NvcGUvcGFja2FnZS9wYXRoL3RvL2ZpbGUuanM/dmVyc2lvbj0xLjAuMDwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLm1vZGU9PT0iZGV2Ij9NYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtYnV0dG9ucyI+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImhpZ2hsaWdodGVkIiBAY2xpY2s9JHsoKT0+d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9wZWVrLyJ9PgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Zm9sZGVyLW9wZW4ifSAuaWNvblNpemU9JHsxNn0gc2xvdD0iaWNvbkxlZnQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgQnJvd3NlIFBhY2thZ2VzCiAgICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PndpbmRvdy5sb2NhdGlvbi5ocmVmPSIvcmVhZG1lLyJ9PgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Ym9vay1vcGVuIn0gLmljb25TaXplPSR7MTZ9IHNsb3Q9Imljb25MZWZ0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb24KICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgJHt0aGlzLmFsbG93ZWRQYWNrYWdlcy5sZW5ndGg+MD9NYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWNrYWdlcy1zZWN0aW9uIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWNrYWdlcy10aXRsZSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpib3hlcyJ9IC5pY29uU2l6ZT0kezE2fT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIEF2YWlsYWJsZSBQYWNrYWdlcwogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhY2thZ2VzLWxpc3QiPgogICAgICAgICAgICAgICAgJHt0aGlzLmFsbG93ZWRQYWNrYWdlcy5tYXAoYT0+TWAKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhY2thZ2UtdGFnIiBAY2xpY2s9JHsoKT0+d2luZG93LmxvY2F0aW9uLmhyZWY9YC9wZWVrLyR7YX1gfT4KICAgICAgICAgICAgICAgICAgICAke2F9CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6TWAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBhY2thZ2UteCJ9IC5pY29uU2l6ZT0kezQ4fSBzdHlsZT0ib3BhY2l0eTogMC41OyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHA+Tm8gcGFja2FnZXMgY29uZmlndXJlZDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXIiPgogICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMnB4OyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzdGF0dXMtZG90Ij48L3NwYW4+CiAgICAgICAgICAgICAgT25saW5lCiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZlcnNpb24iPnYke3RoaXMudmVyc2lvbn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtb2RlLWJhZGdlICR7dGhpcy5tb2RlfSI+JHt0aGlzLm1vZGV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItcmlnaHQiPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3Rhc2sudmMiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iZm9vdGVyLWxpbmsiPlRhc2sgVmVudHVyZSBDYXBpdGFsPC9hPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O1cyPVhJKHVCdCksY05lPW5ldyBXZWFrTWFwLGROZT1uZXcgV2Vha01hcCxmTmU9bmV3IFdlYWtNYXAsdU5lPW5ldyBXZWFrTWFwLEkxKFcyLDQsInZlcnNpb24iLGZCdCxRcixjTmUpLEkxKFcyLDQsIm1vZGUiLGRCdCxRcixkTmUpLEkxKFcyLDQsImFsbG93ZWRQYWNrYWdlcyIsY0J0LFFyLGZOZSksSTEoVzIsNCwiY3VycmVudFZpZXciLGxCdCxRcix1TmUpLFFyPUkxKFcyLDAsIk9wZW5jZG5NYWlucGFnZSIscEJ0LFFyKSxRSShRciwic3R5bGVzIixbdGVgCiAgICAgIDpob3N0IHsKICAgICAgICAtLWJhY2tncm91bmQ6ICMwOTA5MGI7CiAgICAgICAgLS1mb3JlZ3JvdW5kOiAjZmFmYWZhOwogICAgICAgIC0tY2FyZDogIzA5MDkwYjsKICAgICAgICAtLWNhcmQtZm9yZWdyb3VuZDogI2ZhZmFmYTsKICAgICAgICAtLW11dGVkOiAjMjcyNzJhOwogICAgICAgIC0tbXV0ZWQtZm9yZWdyb3VuZDogI2ExYTFhYTsKICAgICAgICAtLWJvcmRlcjogIzI3MjcyYTsKICAgICAgICAtLWlucHV0OiAjMjcyNzJhOwogICAgICAgIC0tcHJpbWFyeTogI2ZhZmFmYTsKICAgICAgICAtLXByaW1hcnktZm9yZWdyb3VuZDogIzE4MTgxYjsKICAgICAgICAtLXNlY29uZGFyeTogIzI3MjcyYTsKICAgICAgICAtLXNlY29uZGFyeS1mb3JlZ3JvdW5kOiAjZmFmYWZhOwogICAgICAgIC0tYWNjZW50OiAjMjcyNzJhOwogICAgICAgIC0tYWNjZW50LWZvcmVncm91bmQ6ICNmYWZhZmE7CiAgICAgICAgLS1yaW5nOiAjZDRkNGQ4OwogICAgICAgIC0tcmFkaXVzOiAwLjVyZW07CgogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQpOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjsKICAgICAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCk7CiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgcGFkZGluZzogNjBweCAyNHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7CiAgICAgIH0KCiAgICAgIC5sb2dvIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTRweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAubG9nby1pY29uIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9yZWdyb3VuZCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5sb2dvLWljb24gZGVlcy1pY29uIHsKICAgICAgICAtLWRlZXMtaWNvbi1jb2xvcjogdmFyKC0tYmFja2dyb3VuZCk7CiAgICAgIH0KCiAgICAgIC5sb2dvLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMzZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1mb3JlZ3JvdW5kKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsKICAgICAgfQoKICAgICAgLnRhZ2xpbmUgewogICAgICAgIGNvbG9yOiB2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLmNhcmQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNhcmQpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICB9CgogICAgICAudXNhZ2UtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tdXRlZCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgICAgICBwYWRkaW5nOiAyMHB4IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICAgICAgfQoKICAgICAgLnVzYWdlLXRpdGxlIHsKICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAudXNhZ2UtY29kZSB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ0ZpcmEgQ29kZScsICdGaXJhIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCk7CiAgICAgICAgcGFkZGluZzogMTRweCAxOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgICAgIH0KCiAgICAgIC5uYXYtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CgogICAgICAubmF2LWJ1dHRvbnMgZGVlcy1idXR0b24gewogICAgICAgIC0tZGVlcy1idXR0b24td2lkdGg6IGF1dG87CiAgICAgIH0KCiAgICAgIC5wYWNrYWdlcy1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYWNrYWdlcy10aXRsZSB7CiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFja2FnZXMtbGlzdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYWNrYWdlLXRhZyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5KTsKICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7CiAgICAgICAgcGFkZGluZzogOHB4IDE0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnBhY2thZ2UtdGFnOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQpOwogICAgICAgIGNvbG9yOiB2YXIoLS1mb3JlZ3JvdW5kKTsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXJpbmcpOwogICAgICB9CgogICAgICAuZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmctdG9wOiAzMnB4OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTsKICAgICAgfQoKICAgICAgLnN0YXR1cyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjb2xvcjogIzIyYzU1ZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnN0YXR1cy1kb3QgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogIzIyYzU1ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBwdWxzZSAycyBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBwdWxzZSB7CiAgICAgICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAxOyB9CiAgICAgICAgNTAlIHsgb3BhY2l0eTogMC41OyB9CiAgICAgIH0KCiAgICAgIC52ZXJzaW9uIHsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgLm1vZGUtYmFkZ2UgewogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICB9CgogICAgICAubW9kZS1iYWRnZS5kZXYgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMSk7CiAgICAgICAgY29sb3I6ICMyMmM1NWU7CiAgICAgIH0KCiAgICAgIC5tb2RlLWJhZGdlLnByb2QgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSk7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC5mb290ZXItcmlnaHQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5mb290ZXItbGluayB7CiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmZvb3Rlci1saW5rOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCk7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CiAgICBgXSksRHQoVzIsMSxRcik7ZmUoKTt2YXIgaEJ0LG1CdCxnQnQseEJ0LGJCdCx2QnQseUJ0LHdCdCxNQnQsekJ0LGtCdCxTQnQsQ0J0LFR0LHBOZSxoTmUsbU5lLGdOZSx4TmUsYk5lLHZOZSx5TmUsd05lLE1OZSx6TmU7Q0J0PVtjZSgib3BlbmNkbi1wZWVrcGFnZSIpXTt2YXIgZDI9Y2xhc3MgZXh0ZW5kcyhTQnQ9cGUsa0J0PVtEKHt0eXBlOlN0cmluZ30pXSx6QnQ9W0Qoe3R5cGU6U3RyaW5nfSldLE1CdD1bRCh7dHlwZTpBcnJheX0pXSx3QnQ9W2xlKCldLHlCdD1bbGUoKV0sdkJ0PVtsZSgpXSxiQnQ9W2xlKCldLHhCdD1bbGUoKV0sZ0J0PVtsZSgpXSxtQnQ9W2xlKCldLGhCdD1bbGUoKV0sU0J0KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyk7SjEodGhpcyxwTmUsRHQoVHQsOCx0aGlzLCIiKSksRHQoVHQsMTEsdGhpcyk7SjEodGhpcyxoTmUsRHQoVHQsMTIsdGhpcywiIikpLER0KFR0LDE1LHRoaXMpO0oxKHRoaXMsbU5lLER0KFR0LDE2LHRoaXMsW10pKSxEdChUdCwxOSx0aGlzKTtKMSh0aGlzLGdOZSxEdChUdCwyMCx0aGlzLFtdKSksRHQoVHQsMjMsdGhpcyk7SjEodGhpcyx4TmUsRHQoVHQsMjQsdGhpcyxbXSkpLER0KFR0LDI3LHRoaXMpO0oxKHRoaXMsYk5lLER0KFR0LDI4LHRoaXMsbnVsbCkpLER0KFR0LDMxLHRoaXMpO0oxKHRoaXMsdk5lLER0KFR0LDMyLHRoaXMsIiIpKSxEdChUdCwzNSx0aGlzKTtKMSh0aGlzLHlOZSxEdChUdCwzNix0aGlzLCExKSksRHQoVHQsMzksdGhpcyk7SjEodGhpcyx3TmUsRHQoVHQsNDAsdGhpcywiIikpLER0KFR0LDQzLHRoaXMpO0oxKHRoaXMsTU5lLER0KFR0LDQ0LHRoaXMsW10pKSxEdChUdCw0Nyx0aGlzKTtKMSh0aGlzLHpOZSxEdChUdCw0OCx0aGlzLG5ldyBTZXQpKSxEdChUdCw1MSx0aGlzKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7bGV0IGE9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO2lmKGEuc3RhcnRzV2l0aCgiL3BlZWsvIikmJmEubGVuZ3RoPjYpe2xldCByPWEuc2xpY2UoNikuc3BsaXQoIi8iKTtyWzBdPy5zdGFydHNXaXRoKCJAIikmJnJbMV0mJih0aGlzLnBhY2thZ2VOYW1lPWAke3JbMF19LyR7clsxXX1gLGF3YWl0IHRoaXMubG9hZFBhY2thZ2VGaWxlcygpKX19YXN5bmMgbG9hZFBhY2thZ2VGaWxlcygpe2lmKHRoaXMucGFja2FnZU5hbWUpe3RoaXMubG9hZGluZz0hMDt0cnl7bGV0IGE9YXdhaXQgZmV0Y2goYC9hcGkvZmlsZXMvJHt0aGlzLnBhY2thZ2VOYW1lfT92ZXJzaW9uPSR7dGhpcy52ZXJzaW9ufWApO2lmKGEub2spe2xldCByPWF3YWl0IGEuanNvbigpO3RoaXMuZmlsZXM9ci5maWxlc3x8W10sdGhpcy5hdmFpbGFibGVWZXJzaW9ucz1yLnZlcnNpb25zfHxbXSx0aGlzLmZpbGVUcmVlPXRoaXMuYnVpbGRGaWxlVHJlZSh0aGlzLmZpbGVzKX19Y2F0Y2goYSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgcGFja2FnZSBmaWxlczoiLGEpfXRoaXMubG9hZGluZz0hMX19YnVpbGRGaWxlVHJlZShhKXtsZXQgcj1bXTtmb3IobGV0IG8gb2YgYSl7bGV0IHM9by5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKSxsPXIsZj0iIjtmb3IobGV0IGM9MDtjPHMubGVuZ3RoO2MrKyl7bGV0IHU9c1tjXTtmKz0iLyIrdTtsZXQgZD1jPT09cy5sZW5ndGgtMSxoPWwuZmluZChnPT5nLm5hbWU9PT11KTtofHwoaD17bmFtZTp1LHBhdGg6Zixpc0ZpbGU6ZCxjaGlsZHJlbjpkP3ZvaWQgMDpbXX0sbC5wdXNoKGgpKSwhZCYmaC5jaGlsZHJlbiYmKGw9aC5jaGlsZHJlbil9fWxldCBpPW89PntvLnNvcnQoKHMsbCk9PnMuaXNGaWxlJiYhbC5pc0ZpbGU/MTohcy5pc0ZpbGUmJmwuaXNGaWxlPy0xOnMubmFtZS5sb2NhbGVDb21wYXJlKGwubmFtZSkpO2ZvcihsZXQgcyBvZiBvKXMuY2hpbGRyZW4mJmkocy5jaGlsZHJlbil9O3JldHVybiBpKHIpLHJ9dG9nZ2xlRm9sZGVyKGEpe2xldCByPW5ldyBTZXQodGhpcy5leHBhbmRlZEZvbGRlcnMpO3IuaGFzKGEpP3IuZGVsZXRlKGEpOnIuYWRkKGEpLHRoaXMuZXhwYW5kZWRGb2xkZXJzPXJ9YXN5bmMgc2VsZWN0RmlsZShhKXt0aGlzLnNlbGVjdGVkRmlsZT1hLHRoaXMubG9hZGluZz0hMDt0cnl7bGV0IHI9YC8ke3RoaXMucGFja2FnZU5hbWV9JHthfT92ZXJzaW9uPSR7dGhpcy52ZXJzaW9ufWAsaT1hd2FpdCBmZXRjaChyKTt0aGlzLmZpbGVDb250ZW50PWF3YWl0IGkudGV4dCgpfWNhdGNoe3RoaXMuZmlsZUNvbnRlbnQ9IkZhaWxlZCB0byBsb2FkIGZpbGUifXRoaXMubG9hZGluZz0hMX1uYXZpZ2F0ZVRvUGFja2FnZShhKXt3aW5kb3cubG9jYXRpb24uaHJlZj1gL3BlZWsvJHthfWB9Z2V0IGZpbHRlcmVkUGFja2FnZXMoKXtpZighdGhpcy5zZWFyY2hRdWVyeSlyZXR1cm4gdGhpcy5hbGxvd2VkUGFja2FnZXM7bGV0IGE9dGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpO3JldHVybiB0aGlzLmFsbG93ZWRQYWNrYWdlcy5maWx0ZXIocj0+ci50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGEpKX1yZW5kZXJUcmVlTm9kZShhKXtpZihhLmlzRmlsZSlyZXR1cm4gTWAKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0idHJlZS1maWxlICR7dGhpcy5zZWxlY3RlZEZpbGU9PT1hLnBhdGg/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0RmlsZShhLnBhdGgpfQogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmZpbGUifSAuaWNvblNpemU9JHsxNH0+PC9kZWVzLWljb24+CiAgICAgICAgICAke2EubmFtZX0KICAgICAgICA8L2Rpdj4KICAgICAgYDtsZXQgcj10aGlzLmV4cGFuZGVkRm9sZGVycy5oYXMoYS5wYXRoKTtyZXR1cm4gTWAKICAgICAgPGRpdiBjbGFzcz0idHJlZS1mb2xkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1oZWFkZXIiIEBjbGljaz0keygpPT50aGlzLnRvZ2dsZUZvbGRlcihhLnBhdGgpfT4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtyPyJsdWNpZGU6Zm9sZGVyLW9wZW4iOiJsdWNpZGU6Zm9sZGVyIn0gLmljb25TaXplPSR7MTR9PjwvZGVlcy1pY29uPgogICAgICAgICAgJHthLm5hbWV9CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9sZGVyLWNoZXZyb24gJHtyPyJvcGVuIjoiIn0iPuKWtjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3ImJmEuY2hpbGRyZW4/TWAKICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1jaGlsZHJlbiI+CiAgICAgICAgICAgICR7YS5jaGlsZHJlbi5tYXAoaT0+dGhpcy5yZW5kZXJUcmVlTm9kZShpKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGFja2FnZUxpc3QoKXtsZXQgYT10aGlzLmZpbHRlcmVkUGFja2FnZXM7cmV0dXJuIE1gCiAgICAgIDxkaXYgY2xhc3M9InBhY2thZ2UtbGlzdC1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1sb2dvIiBAY2xpY2s9JHsoKT0+d2luZG93LmxvY2F0aW9uLmhyZWY9Ii8ifT4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBhY2thZ2UifSAuaWNvblNpemU9JHsyNH0+PC9kZWVzLWljb24+CiAgICAgICAgICBvcGVuY2RuCiAgICAgICAgPC9kaXY+CgogICAgICAgIDxoMSBjbGFzcz0icGFnZS10aXRsZSIgc3R5bGU9Im1hcmdpbi10b3A6IDMycHg7Ij5Ccm93c2UgUGFja2FnZXM8L2gxPgoKICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2gtYm94Ij4KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InNlYXJjaC1pY29uIiAuaWNvbj0keyJsdWNpZGU6c2VhcmNoIn0gLmljb25TaXplPSR7MTZ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaW5wdXQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggcGFja2FnZXMuLi4iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VhcmNoUXVlcnl9CiAgICAgICAgICAgIEBpbnB1dD0ke3I9PnRoaXMuc2VhcmNoUXVlcnk9ci50YXJnZXQudmFsdWV9CiAgICAgICAgICAvPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwYWNrYWdlLWNvdW50Ij4KICAgICAgICAgICR7YS5sZW5ndGg9PT10aGlzLmFsbG93ZWRQYWNrYWdlcy5sZW5ndGg/YCR7dGhpcy5hbGxvd2VkUGFja2FnZXMubGVuZ3RofSBwYWNrYWdlJHt0aGlzLmFsbG93ZWRQYWNrYWdlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXZhaWxhYmxlYDpgJHthLmxlbmd0aH0gb2YgJHt0aGlzLmFsbG93ZWRQYWNrYWdlcy5sZW5ndGh9IHBhY2thZ2VzYH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHthLmxlbmd0aD4wP01gCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWNrYWdlLWxpc3QiPgogICAgICAgICAgICAke2EubWFwKHI9Pk1gCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFja2FnZS1saW5rIiBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZVRvUGFja2FnZShyKX0+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpwYWNrYWdlIn0gLmljb25TaXplPSR7MTZ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgJHtyfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6TWAKICAgICAgICAgIDxkaXYgY2xhc3M9Im5vLXJlc3VsdHMiPk5vIHBhY2thZ2VzIGZvdW5kIG1hdGNoaW5nIHlvdXIgc2VhcmNoLjwvZGl2PgogICAgICAgIGB9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWxlQnJvd3Nlcigpe3JldHVybiBNYAogICAgICA8ZGl2IGNsYXNzPSJhcHAiPgogICAgICAgIDxoZWFkZXIgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItbG9nbyIgQGNsaWNrPSR7KCk9PndpbmRvdy5sb2NhdGlvbi5ocmVmPSIvIn0+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBhY2thZ2UifSAuaWNvblNpemU9JHsyMH0+PC9kZWVzLWljb24+CiAgICAgICAgICAgIG9wZW5jZG4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9ImhlYWRlci1zZXAiPi88L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGVyLXBhY2thZ2UiPiR7dGhpcy5wYWNrYWdlTmFtZX08L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGVyLXZlcnNpb24iPiR7dGhpcy52ZXJzaW9ufHwibGF0ZXN0In08L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc3BhY2VyIj48L2Rpdj4KICAgICAgICAgICR7dGhpcy5hdmFpbGFibGVWZXJzaW9ucy5sZW5ndGg+MD9NYAogICAgICAgICAgICA8c2VsZWN0CiAgICAgICAgICAgICAgY2xhc3M9InZlcnNpb24tc2VsZWN0IgogICAgICAgICAgICAgIEBjaGFuZ2U9JHthPT57dGhpcy52ZXJzaW9uPWEudGFyZ2V0LnZhbHVlLHRoaXMubG9hZFBhY2thZ2VGaWxlcygpfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiI+bGF0ZXN0PC9vcHRpb24+CiAgICAgICAgICAgICAgJHt0aGlzLmF2YWlsYWJsZVZlcnNpb25zLm1hcChhPT5NYAogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ke2F9ID9zZWxlY3RlZD0ke2E9PT10aGlzLnZlcnNpb259PiR7YX08L29wdGlvbj4KICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICBgOiIifQogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT53aW5kb3cubG9jYXRpb24uaHJlZj0iL3BlZWsvIn0+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmFycm93LWxlZnQifSAuaWNvblNpemU9JHsxNH0gc2xvdD0iaWNvbkxlZnQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBBbGwgUGFja2FnZXMKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9oZWFkZXI+CgogICAgICAgIDxkaXYgY2xhc3M9Im1haW4iPgogICAgICAgICAgPGFzaWRlIGNsYXNzPSJzaWRlYmFyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXIiPkZpbGVzICgke3RoaXMuZmlsZXMubGVuZ3RofSk8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS10cmVlIj4KICAgICAgICAgICAgICAke3RoaXMuZmlsZVRyZWUubWFwKGE9PnRoaXMucmVuZGVyVHJlZU5vZGUoYSkpfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvYXNpZGU+CgogICAgICAgICAgPG1haW4gY2xhc3M9ImNvbnRlbnQiPgogICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWRGaWxlP01gCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1wYXRoIj4KICAgICAgICAgICAgICAgICAgPHNwYW4+JHt0aGlzLnNlbGVjdGVkRmlsZX08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e2xldCBhPWAvJHt0aGlzLnBhY2thZ2VOYW1lfSR7dGhpcy5zZWxlY3RlZEZpbGV9P3ZlcnNpb249JHt0aGlzLnZlcnNpb259YDt3aW5kb3cub3BlbihhLCJfYmxhbmsiKX19PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmV4dGVybmFsLWxpbmsifSAuaWNvblNpemU9JHsxNH0gc2xvdD0iaWNvbkxlZnQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIFJhdwogICAgICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS12aWV3ZXIiPgogICAgICAgICAgICAgICAgJHt0aGlzLmxvYWRpbmc/TWAKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgICAgICAgIDxkZWVzLXNwaW5uZXI+PC9kZWVzLXNwaW5uZXI+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDpNYAogICAgICAgICAgICAgICAgICA8cHJlPiR7dGhpcy5maWxlQ29udGVudH08L3ByZT4KICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6TWAKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpmaWxlLXRleHQifSAuaWNvblNpemU9JHs0OH0gc3R5bGU9Im9wYWNpdHk6IDAuNTsiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdj5TZWxlY3QgYSBmaWxlIHRvIHZpZXcgaXRzIGNvbnRlbnRzPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L21haW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXIoKXtyZXR1cm4gdGhpcy5wYWNrYWdlTmFtZT90aGlzLnJlbmRlckZpbGVCcm93c2VyKCk6dGhpcy5yZW5kZXJQYWNrYWdlTGlzdCgpfX07VHQ9WEkoU0J0KSxwTmU9bmV3IFdlYWtNYXAsaE5lPW5ldyBXZWFrTWFwLG1OZT1uZXcgV2Vha01hcCxnTmU9bmV3IFdlYWtNYXAseE5lPW5ldyBXZWFrTWFwLGJOZT1uZXcgV2Vha01hcCx2TmU9bmV3IFdlYWtNYXAseU5lPW5ldyBXZWFrTWFwLHdOZT1uZXcgV2Vha01hcCxNTmU9bmV3IFdlYWtNYXAsek5lPW5ldyBXZWFrTWFwLEkxKFR0LDQsInBhY2thZ2VOYW1lIixrQnQsZDIscE5lKSxJMShUdCw0LCJ2ZXJzaW9uIix6QnQsZDIsaE5lKSxJMShUdCw0LCJhbGxvd2VkUGFja2FnZXMiLE1CdCxkMixtTmUpLEkxKFR0LDQsImZpbGVzIix3QnQsZDIsZ05lKSxJMShUdCw0LCJmaWxlVHJlZSIseUJ0LGQyLHhOZSksSTEoVHQsNCwic2VsZWN0ZWRGaWxlIix2QnQsZDIsYk5lKSxJMShUdCw0LCJmaWxlQ29udGVudCIsYkJ0LGQyLHZOZSksSTEoVHQsNCwibG9hZGluZyIseEJ0LGQyLHlOZSksSTEoVHQsNCwic2VhcmNoUXVlcnkiLGdCdCxkMix3TmUpLEkxKFR0LDQsImF2YWlsYWJsZVZlcnNpb25zIixtQnQsZDIsTU5lKSxJMShUdCw0LCJleHBhbmRlZEZvbGRlcnMiLGhCdCxkMix6TmUpLGQyPUkxKFR0LDAsIk9wZW5jZG5QZWVrcGFnZSIsQ0J0LGQyKSxRSShkMiwic3R5bGVzIixbcC5kZWZhdWx0U3R5bGVzLHRlYAogICAgICA6aG9zdCB7CiAgICAgICAgLS1iYWNrZ3JvdW5kOiAjMDkwOTBiOwogICAgICAgIC0tZm9yZWdyb3VuZDogI2ZhZmFmYTsKICAgICAgICAtLW11dGVkOiAjMjcyNzJhOwogICAgICAgIC0tbXV0ZWQtZm9yZWdyb3VuZDogI2ExYTFhYTsKICAgICAgICAtLWJvcmRlcjogIzI3MjcyYTsKICAgICAgICAtLXByaW1hcnk6ICNmYWZhZmE7CiAgICAgICAgLS1wcmltYXJ5LWZvcmVncm91bmQ6ICMxODE4MWI7CiAgICAgICAgLS1zZWNvbmRhcnk6ICMyNzI3MmE7CiAgICAgICAgLS1yaW5nOiAjZDRkNGQ4OwoKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQpOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjsKICAgICAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCk7CiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5hcHAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICAgICAgfQoKICAgICAgLmhlYWRlci1sb2dvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItbG9nbzpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpOwogICAgICB9CgogICAgICAuaGVhZGVyLXNlcCB7CiAgICAgICAgY29sb3I6IHZhcigtLWJvcmRlcik7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItcGFja2FnZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCk7CiAgICAgIH0KCiAgICAgIC5oZWFkZXItdmVyc2lvbiB7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbXV0ZWQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpOwogICAgICB9CgogICAgICAuaGVhZGVyLXNwYWNlciB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnZlcnNpb24tc2VsZWN0IHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tdXRlZCk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzOwogICAgICB9CgogICAgICAudmVyc2lvbi1zZWxlY3Q6aG92ZXIsCiAgICAgIC52ZXJzaW9uLXNlbGVjdDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yaW5nKTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAvKiBNYWluIENvbnRlbnQgKi8KICAgICAgLm1haW4gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAvKiBTaWRlYmFyICovCiAgICAgIC5zaWRlYmFyIHsKICAgICAgICB3aWR0aDogMzAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiB2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgICAgIH0KCiAgICAgIC5maWxlLXRyZWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLyogVHJlZSBJdGVtcyAqLwogICAgICAudHJlZS1mb2xkZXIgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuZm9sZGVyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXM7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItY2hldnJvbiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXM7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItY2hldnJvbi5vcGVuIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7CiAgICAgIH0KCiAgICAgIC5mb2xkZXItY2hpbGRyZW4gewogICAgICAgIHBhZGRpbmctbGVmdDogMTZweDsKICAgICAgfQoKICAgICAgLnRyZWUtZmlsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgfQoKICAgICAgLnRyZWUtZmlsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbXV0ZWQpOwogICAgICAgIGNvbG9yOiB2YXIoLS1mb3JlZ3JvdW5kKTsKICAgICAgfQoKICAgICAgLnRyZWUtZmlsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvcmVncm91bmQpOwogICAgICB9CgogICAgICAvKiBDb250ZW50IEFyZWEgKi8KICAgICAgLmNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCk7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LXBhdGggewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQtcGF0aCBzcGFuIHsKICAgICAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCk7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWFjdGlvbnMgewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIENvZGUgVmlld2VyICovCiAgICAgIC5jb2RlLXZpZXdlciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTsKICAgICAgfQoKICAgICAgLmNvZGUtdmlld2VyIHByZSB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpOwogICAgICB9CgogICAgICAvKiBFbXB0eSBTdGF0ZSAqLwogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLyogUGFja2FnZSBMaXN0IFZpZXcgKi8KICAgICAgLnBhY2thZ2UtbGlzdC1jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgcGFkZGluZzogNjBweCAyNHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAucGFnZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHggMTRweCA0NHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW11dGVkKTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCk7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzOwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXJpbmcpOwogICAgICB9CgogICAgICAuc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpOwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxNHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7CiAgICAgIH0KCiAgICAgIC5wYWNrYWdlLWNvdW50IHsKICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5wYWNrYWdlLWxpc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnBhY2thZ2UtbGluayB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbXV0ZWQpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1mb3JlZ3JvdW5kKTsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgICB9CgogICAgICAucGFja2FnZS1saW5rOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5KTsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpOwogICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvcmVncm91bmQpOwogICAgICB9CgogICAgICAubm8tcmVzdWx0cyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciAqLwogICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICB9CiAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW11dGVkKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KICAgICAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzNmM2Y0NjsKICAgICAgfQogICAgYF0pLER0KFR0LDEsZDIpO2V4cG9ydHtRciBhcyBPcGVuY2RuTWFpbnBhZ2UsZDIgYXMgT3BlbmNkblBlZWtwYWdlfTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCkBsaXQvcmVhY3RpdmUtZWxlbWVudC9jc3MtdGFnLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCkBsaXQvcmVhY3RpdmUtZWxlbWVudC9yZWFjdGl2ZS1lbGVtZW50LmpzOgpsaXQtaHRtbC9saXQtaHRtbC5qczoKbGl0LWVsZW1lbnQvbGl0LWVsZW1lbnQuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3Byb3BlcnR5LmpzOgpsaXQtaHRtbC9kaXJlY3RpdmUuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvdW5zYWZlLWh0bWwuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2N1c3RvbS1lbGVtZW50LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9zdGF0ZS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvZXZlbnQtb3B0aW9ucy5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvYmFzZS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnkuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFsbC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXN5bmMuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzc2lnbmVkLW5vZGVzLmpzOgpsaXQtaHRtbC9hc3luYy1kaXJlY3RpdmUuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvdW50aWwuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvYXN5bmMtcmVwbGFjZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9hc3luYy1hcHBlbmQuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvcmVwZWF0LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCmxpdC1odG1sL2lzLXNlcnZlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIyIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpzd2VldC1zY3JvbGwvc3dlZXQtc2Nyb2xsLmpzOgogICgqISBAcHJlc2VydmUgc3dlZXQtc2Nyb2xsIHY0LjAuMCAtIHRzdXlvc2hpd2FkYSB8IE1JVCBMaWNlbnNlICopCiAgKCohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCiAgICAgIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCiAgICAgIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgCiAgICAgIFRISVMgQ09ERSBJUyBQUk9WSURFRCBPTiBBTiAqQVMgSVMqIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICAgICAgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBBTlkgSU1QTElFRAogICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLAogICAgICBNRVJDSEFOVEFCTElUWSBPUiBOT04tSU5GUklOR0VNRU5ULgogIAogICAgICBTZWUgdGhlIEFwYWNoZSBWZXJzaW9uIDIuMCBMaWNlbnNlIGZvciBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMKICAgICAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqKQoKbGl0LWh0bWwvc3RhdGljLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmUtaGVscGVycy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIwIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1lbGVtZW50cy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9wcml2YXRlLWFzeW5jLWhlbHBlcnMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMva2V5ZWQuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtYnJhbmRzLXN2Zy1pY29ucy9pbmRleC5tanM6CkBmb3J0YXdlc29tZS9mcmVlLXJlZ3VsYXItc3ZnLWljb25zL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zL2luZGV4Lm1qczoKICAoKiEKICAgKiBGb250IEF3ZXNvbWUgRnJlZSA3LjEuMCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbQogICAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpCiAgICogQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuCiAgICopCgpsdWNpZGUvZGlzdC9lc20vZGVmYXVsdEF0dHJpYnV0ZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9jcmVhdGVFbGVtZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vcmVwbGFjZUVsZW1lbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hLWFycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYS1sYXJnZS1zbWFsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FjY2Vzc2liaWxpdHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hY3Rpdml0eS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fpci12ZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxhcm0tY2xvY2stY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9haXJwbGF5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxhcm0tY2xvY2stbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1jbG9jay1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1jbG9jay1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxhcm0tY2xvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGFybS1zbW9rZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsYnVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tY2VudGVyLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1jZW50ZXItdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1lbmQtaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWVuZC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1jZW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtc3RhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LWNlbnRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtanVzdGlmeS1lbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktc3RhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1ob3Jpem9udGFsLXNwYWNlLWFyb3VuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLWhvcml6b250YWwtc3BhY2UtYmV0d2Vlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXN0YXJ0LWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi1zdGFydC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtY2VudGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZS1lbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLXN0YXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1jZW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1qdXN0aWZ5LWVuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FsaWduLXZlcnRpY2FsLWp1c3RpZnktc3RhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1zcGFjZS1hcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbGlnbi12ZXJ0aWNhbC1zcGFjZS1iZXR3ZWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1idWxhbmNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1wZXJzYW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW1wZXJzYW5kcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FtcGhvcmEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbmNob3IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbmdyeS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fubm95ZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hbnRlbm5hLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYW52aWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcGVydHVyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwcC13aW5kb3ctbWFjLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXBwLXdpbmRvdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FwcGxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS1yZXN0b3JlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FybWNoYWlyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWRvd24tZGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLWxlZnQtZGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctYmlnLXJpZ2h0LWRhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1iaWctcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1iaWctdXAtZGFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWJpZy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tMC0xLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi0xLTAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLWEtei5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tZnJvbS1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tdG8tZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi1uYXJyb3ctd2lkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tdG8tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWRvd24tdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLXdpZGUtbmFycm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctZG93bi16LWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LWxlZnQtZnJvbS1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC10by1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LWZyb20tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy1yaWdodC10by1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC0wLTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC0xLTAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1hLXouanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtZnJvbS1kb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1mcm9tLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3ctdXAtbmFycm93LXdpZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXRvLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC13aWRlLW5hcnJvdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXotYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXJyb3dzLXVwLWZyb20tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2FzdGVyaXNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXQtc2lnbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F0b20uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9hdWRpby1saW5lcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2F3YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYXVkaW8td2F2ZWZvcm0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9heGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9heGlzLTNkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFieS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhY2twYWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1jZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1kb2xsYXItc2lnbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLWV1cm8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1pbmRpYW4tcnVwZWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1pbmZvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtamFwYW5lc2UteWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1wZXJjZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXBvdW5kLXN0ZXJsaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFkZ2UtcXVlc3Rpb24tbWFyay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXJ1c3NpYW4tcnVibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS1zd2lzcy1mcmFuYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXR1cmtpc2gtbGlyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZGdlLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWRnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhZ2dhZ2UtY2xhaW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYWxsb29uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuYW5hLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmFuZGFnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jhbmtub3RlLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5rbm90ZS1hcnJvdy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jhbmtub3RlLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYW5rbm90ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhcmNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXJyZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXNlbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdGguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LWNoYXJnaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0dGVyeS1mdWxsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmF0dGVyeS1sb3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iYXR0ZXJ5LW1lZGl1bS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnktd2FybmluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JhdHRlcnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWFrZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWFuLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWQtZG91YmxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVkLXNpbmdsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZWYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWVyLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JlbGwtZWxlY3RyaWMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmVsbC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLXJpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iZWxsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmV0d2Vlbi1ob3Jpem9udGFsLWVuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JldHdlZW4taG9yaXpvbnRhbC1zdGFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JldHdlZW4tdmVydGljYWwtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmV0d2Vlbi12ZXJ0aWNhbC1zdGFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpY2Vwcy1mbGV4ZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaWtlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmluYXJ5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmlvaGF6YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmlub2N1bGFycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpcmRob3VzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JpcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9iaXRjb2luLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmxlbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibGluZHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibG9ja3MuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibHVldG9vdGgtY29ubmVjdGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYmx1ZXRvb3RoLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JsdWV0b290aC1zZWFyY2hpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ibHVldG9vdGguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib2xkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9sdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvbWIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1hLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1hbGVydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stYXVkaW8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1jb3B5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWhlYWRwaG9uZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWhlYXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1rZXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLWltYWdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1sb2NrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1tYXJrZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1vcGVuLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9vay1vcGVuLXRleHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLW9wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stdGV4dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2stdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXR5cGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXVwLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXVzZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9va21hcmstY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvb2ttYXJrLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29rbWFyay14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYm9va21hcmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib29tLWJveC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvdC1tZXNzYWdlLXNxdWFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JvdC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ib3R0bGUtd2luZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Jvdy1hcnJvdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JveC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JveGVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJhY2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJhY2tldHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmFpbi1jaXJjdWl0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJhaW4tY29nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJhaW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmljay13YWxsLWZpcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmljay13YWxsLXNoaWVsZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWNrLXdhbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmllZmNhc2UtYnVzaW5lc3MuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icmllZmNhc2UtY29udmV5b3ItYmVsdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JyaWVmY2FzZS1tZWRpY2FsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpZWZjYXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnJpbmctdG8tZnJvbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9icnVzaC1jbGVhbmluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2JydXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvYnViYmxlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1Zy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9idWctcGxheS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1Zy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1aWxkaW5nLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9idWlsZGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1cy1mcm9udC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2J1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhYmxlLWNhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhYmxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FrZS1zbGljZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nha2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxjdWxhdG9yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItMS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1hcnJvdy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWNoZWNrLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWNsb2NrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXItZGF5cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLWZvbGQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1oZWFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLW1pbnVzLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXBsdXMtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci1yYW5nZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbGVuZGFyLXN5bmMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci14LTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhci14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FsZW5kYXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYWxlbmRhcnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYW1lcmEtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FtZXJhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FuZHktY2FuZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbmR5LW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhbmR5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FubmFiaXMtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FubmFiaXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXB0aW9ucy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXB0aW9ucy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhci1mcm9udC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhci10YXhpLWZyb250LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FyYXZhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NhcmQtc2ltLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2Fycm90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzZS1sb3dlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhc2Utc2Vuc2l0aXZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzZS11cHBlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nhc3NldHRlLXRhcGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jYXN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2FzdGxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2F0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2N0di5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWFyZWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXItYmlnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtYmFyLWRlY3JlYXNpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1iYXItaW5jcmVhc2luZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWJhci1zdGFja2VkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtYmFyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtY2FuZGxlc3RpY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jb2x1bW4tYmlnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtY29sdW1uLWRlY3JlYXNpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1jb2x1bW4taW5jcmVhc2luZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LWNvbHVtbi1zdGFja2VkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtY29sdW1uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtZ2FudHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbmV0d29yay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LW5vLWF4ZXMtY29sdW1uLWRlY3JlYXNpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1pbmNyZWFzaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1uby1heGVzLWNvbWJpbmVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hhcnQtbm8tYXhlcy1nYW50dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LXBpZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoYXJ0LXNjYXR0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGFydC1zcGxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVjay1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZWNrLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZWYtaGF0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlcnJ5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3MtYmlzaG9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hlc3Mta2luZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLWtuaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXNzLXBhd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVzcy1xdWVlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tZmlyc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGVzcy1yb29rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1sYXN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1kb3duLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLWxlZnQtcmlnaHQtZWxsaXBzaXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1sZWZ0LXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2hldnJvbnMtbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLXJpZ2h0LWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NoZXZyb25zLXVwLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaGV2cm9ucy11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NodXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpZ2FyZXR0ZS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaHJvbWl1bS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpZ2FyZXR0ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hbGVydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFycm93LWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LWRvd24tbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtZG93bi1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtdXAtbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtdXAtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYXJyb3ctcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtYXJyb3ctdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hlY2stYmlnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWNoZXZyb24tZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGV2cm9uLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtY2hldnJvbi1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1jaGV2cm9uLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kaXZpZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZG9sbGFyLXNpZ24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZG90LWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1kb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZWxsaXBzaXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZXF1YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtZmFkaW5nLWFycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWZhZGluZy1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWdhdWdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wYXJraW5nLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wYXJraW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBhdXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBlcmNlbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcGlsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1wbGF5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBvdW5kLXN0ZXJsaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcG93ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtcXVlc3Rpb24tbWFyay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1zbGFzaC0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXNsYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXNtYWxsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXN0YXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUtc3RvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS11c2VyLXJvdW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2lyY2xlLXVzZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXJjbGUteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmNsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NpcmN1aXQtYm9hcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jaXRydXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGFwcGVyYm9hcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtY2xvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQtY29weS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1saXN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXBhc3RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXBlbi1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xpcGJvYXJkLXR5cGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbGlwYm9hcmQteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NsaXBib2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0xMC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTExLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stMTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stMy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay01LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stNi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLTcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay04LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stOS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stYXJyb3ctZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb2NrLWFycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2stY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1mYWRpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9jay1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG9zZWQtY2FwdGlvbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtYmFja3VwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1kb3dubG9hZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLWRyaXp6bGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1mb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1oYWlsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtbGlnaHRuaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtbW9vbi1yYWluLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtbW9vbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXJhaW4td2luZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nsb3VkLXJhaW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1zbm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtc3VuLXJhaW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1zdW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZC1zeW5jLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQtdXBsb2FkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY2xvdWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG91ZHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbG92ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jbHViLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29kZS14bWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29kZXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvZGVzYW5kYm94LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29mZmVlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29pbnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb2x1bW5zLTMtY29nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29sdW1ucy0zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29sdW1ucy00LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29tYmluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbW1hbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb21wYXNzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29tcG9uZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29tcHV0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb25jaWVyZ2UtYmVsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb25zdHJ1Y3Rpb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb250YWN0LXJvdW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29udGFjdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbnRhaW5lci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvbnRyYXN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29va2llLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29va2luZy1wb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5LWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHktcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NvcHktc2xhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weS14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29weWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3B5cmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItZG93bi1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1kb3duLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItbGVmdC1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLWxlZnQtdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jb3JuZXItcmlnaHQtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci1yaWdodC11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nvcm5lci11cC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY29ybmVyLXVwLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3B1LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3JlYXRpdmUtY29tbW9ucy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2NyZWRpdC1jYXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3JvaXNzYW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3JvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Nyb3NzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3Jvc3NoYWlyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3Jvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jdWJvaWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9jdXAtc29kYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2N1cnJlbmN5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvY3lsaW5kZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kYW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kYXRhYmFzZS1iYWNrdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kYXRhYmFzZS16YXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kYXRhYmFzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RlY2ltYWxzLWFycm93LWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kZWNpbWFscy1hcnJvdy1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RlbGV0ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rlc3NlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtZXRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RpYW1vbmQtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtb25kLXBlcmNlbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtb25kLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWNlLTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWFtb25kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZS0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZS0zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZS01LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZS02LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZS00LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGljZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaWZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlzYy0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlzYy0zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZGlzYy1hbGJ1bS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rpc2MuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kaXZpZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kbmEtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RuYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RvbGxhci1zaWduLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZG9udXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb29yLWNsb3NlZC1sb2NrZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kb29yLWNsb3NlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rvb3Itb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Rvd25sb2FkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJhZnRpbmctY29tcGFzcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2RyYW1hLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJpYmJibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcmlsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Ryb25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJvcGxldC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcm9wbGV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJvcGxldHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9kcnVtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHJ1bXN0aWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZHVtYmJlbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lYXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWFydGgtbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VhcnRoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZWNsaXBzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VnZy1mcmllZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VnZy1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lZ2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9lbGxpcHNpcy12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VsbGlwc2lzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXF1YWwtYXBwcm94aW1hdGVseS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VxdWFsLW5vdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VyYXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2VxdWFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXRoZXJuZXQtcG9ydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V1cm8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ldi1jaGFyZ2VyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXh0ZXJuYWwtbGluay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V4cGFuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2V5ZS1jbG9zZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9leWUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZXllLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmFjdG9yeS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZhY2Vib29rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmFzdC1mb3J3YXJkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmVhdGhlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZlbmNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmVycmlzLXdoZWVsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlnbWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWFyY2hpdmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWF4aXMtM2QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWJhZGdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1icmFjZXMtY29ybmVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1ib3guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWJyYWNlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtY29sdW1uLWluY3JlYXNpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNoYXJ0LWNvbHVtbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY2hhcnQtcGllLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jaGVjay1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1jbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtY29kZS1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtZGlmZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtZGlnaXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWV4Y2xhbWF0aW9uLXBvaW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1oZWFkcGhvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWhlYXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1pbWFnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtaW5wdXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLWtleS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtbWludXMtY29ybmVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1tdXNpYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLW91dHB1dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGVuLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGxheS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcXVlc3Rpb24tbWFyay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtcGx1cy1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNjYW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNlYXJjaC1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc2lnbmFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS1zcHJlYWRzaGVldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc2xpZGVycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtc3RhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXN5bWxpbmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXRlcm1pbmFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS10eXBlLWNvcm5lci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdHlwZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXVzZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlLXZvbHVtZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUtdmlkZW8tY2FtZXJhLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlsZS14LWNvcm5lci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maWxlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZpbG0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maW5nZXJwcmludC1wYXR0ZXJuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlyZS1leHRpbmd1aXNoZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9maXNoLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2gtc3ltYm9sLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmlzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zpc2hpbmctaG9vay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYWctb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhZy10cmlhbmdsZS1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhZy10cmlhbmdsZS1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYW1lLWtpbmRsaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYW1lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhc2hsaWdodC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFzaGxpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZmxhc2stY29uaWNhbC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGFzay1yb3VuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsYXNrLWNvbmljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGlwLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbGlwLWhvcml6b250YWwtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsaXAtdmVydGljYWwtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZsaXAtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mbG93ZXItMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zsb3dlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvY3VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZC1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1hcmNoaXZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWNsb2NrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWNsb3NlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1jb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1kb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1naXQtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1naXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItaGVhcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItaW5wdXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXIta2FuYmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLWtleS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1sb2NrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLW9wZW4tZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLW9wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItb3V0cHV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXJvb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItc2VhcmNoLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXN5bWxpbmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXItc3luYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvbGRlci10cmVlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9sZGVyLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mb2xkZXJzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9vdHByaW50cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvcmtsaWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZm9ybS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZvcndhcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mcmFtZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ZyYW1lci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Zyb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZnVlbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Z1bGxzY3JlZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9mdW5uZWwtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2Z1bm5lbC14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZnVubmVsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FsbGVyeS1ob3Jpem9udGFsLWVuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktdGh1bWJuYWlscy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbGxlcnktdmVydGljYWwtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2FsbGVyeS12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbWVwYWQtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dhbWVwYWQtZGlyZWN0aW9uYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYW1lcGFkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2F1Z2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nYXZlbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dlbS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dlb3JnaWFuLWxhcmkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naG9zdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtYnJhbmNoLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWJyYW5jaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1icmFuY2gtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1jb21taXQtaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1jb21taXQtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtY29tcGFyZS1hcnJvd3MuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtY29tcGFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1mb3JrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LWdyYXBoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LW1lcmdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1hcnJvdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtY2xvc2VkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUtYXJyb3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWNyZWF0ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtZHJhZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0aHViLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2l0bGFiLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2xhc3Mtd2F0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9nbGFzc2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ2xvYmUtbG9jay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dsb2JlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ29hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dwdS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyYWR1YXRpb24tY2FwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JhcGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlkLTJ4Mi1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtMngyLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlkLTJ4Mi14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpZC0yeDIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncmlkLTN4Mi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaWQtM3gzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpcC1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvZ3JpcC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2dyaXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ncm91cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2d1aXRhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbWJ1cmdlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbW1lci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtY29pbnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLWZpc3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLWdyYWIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kLWhlYXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1oZWxwaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZC1tZXRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQtcGxhdHRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYW5kYmFnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFuZHNoYWtlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1kcml2ZS1kb3dubG9hZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhcmQtZHJpdmUtdXBsb2FkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1oYXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGFyZC1kcml2ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hhdC1nbGFzc2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGF6ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGRtaS1wb3J0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy0xLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy0zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy00LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy01LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy02LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYWRwaG9uZS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFkcGhvbmVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhZHNldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlYXJ0LWNyYWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtaGFuZHNoYWtlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGVhcnQtcHVsc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWF0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZWFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hlbGljb3B0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oZXhhZ29uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaGlnaGxpZ2h0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9oaXN0b3J5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG9wLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvc3BpdGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG90ZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3VyZ2xhc3MuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3VzZS1oZWFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLXBsdWcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ob3VzZS1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaG91c2Utd2lmaS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2hvdXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaWNlLWNyZWFtLWJvd2wuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pY2UtY3JlYW0tY29uZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2lkLWNhcmQtbGFueWFyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2lkLWNhcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbWFnZS1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UtcGxheS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2UtdXBzY2FsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2ltYWdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1hZ2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW1wb3J0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW5ib3guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbmRpYW4tcnVwZWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbmZpbml0eS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2luZm8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9pbnNwZWN0aW9uLXBhbmVsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaW5zdGFncmFtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaXRhbGljLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvaXRlcmF0aW9uLWNjdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2l0ZXJhdGlvbi1jdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2phcGFuZXNlLXllbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2pveXN0aWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMva2FuYmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMva2F5YWsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXktcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXktc3F1YXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMva2V5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMva2V5Ym9hcmQtbXVzaWMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXlib2FyZC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9rZXlib2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbXAtY2VpbGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbXAtZGVzay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbXAtZmxvb3IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW1wLXdhbGwtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbXAtd2FsbC11cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW5kLXBsb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYW5kbWFyay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhbmd1YWdlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhcHRvcC1taW5pbWFsLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGFwdG9wLW1pbmltYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXB0b3AuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXNzby1zZWxlY3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXNzby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xhdWdoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5ZXJzLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXllcnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXllcnMtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1kYXNoYm9hcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtZ3JpZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xheW91dC1saXN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5b3V0LXBhbmVsLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sYXlvdXQtcGFuZWwtdG9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGF5b3V0LXRlbXBsYXRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVhZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xlYWZ5LWdyZWVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGVjdGVybi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpYnJhcnktYmlnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlicmFyeS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpZmUtYnVveS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpZ2F0dXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlnaHRidWxiLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpZ2h0YnVsYi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpbmUtc3F1aWdnbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saW5rLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saW5rLTItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGluay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpbmtlZGluLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtY2hlY2tzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1jaGV2cm9ucy1kb3duLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1jaGV2cm9ucy11cC1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1jb2xsYXBzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1maWx0ZXItcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtZmlsdGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1pbmRlbnQtZGVjcmVhc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LWluZGVudC1pbmNyZWFzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LW11c2ljLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1vcmRlcmVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1yZXN0YXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC1zdGFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtdG9kby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtdHJlZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xpc3QtdmlkZW8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9saXN0LXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2FkZXItY2lyY2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbGlzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvYWRlci1waW53aGVlbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvYWRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2F0ZS1maXhlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2F0ZS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NhdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2NrLWtleWhvbGUtb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2sta2V5aG9sZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2stb3Blbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2ctaW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9sb2ctb3V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbG9ncy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL2xvbGxpcG9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbHVnZ2FnZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hZ25ldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWwtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1vcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1xdWVzdGlvbi1tYXJrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbC1zZWFyY2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLXdhcm5pbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYWlsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFpbGJveC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21haWxzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1jaGVjay1pbnNpZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1ob3VzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tbWludXMtaW5zaWRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4tb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGluLXBsdXMtaW5zaWRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBpbi14LWluc2lkZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4teC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcC1waW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAtcGlubmVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWFwLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXJzLXN0cm9rZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21hcnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tYXJ0aW5pLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWF4aW1pemUtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21heGltaXplLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVnYXBob25lLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lZ2FwaG9uZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lZGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVtb3J5LXN0aWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVyZ2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZW51LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtY29kZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLWhlYXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtbW9yZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS1xdWVzdGlvbi1tYXJrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUtcmVwbHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLWNpcmNsZS13YXJuaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1jaXJjbGUteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2UtY2lyY2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtY29kZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLWRpZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1kb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1oZWFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLWxvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1tb3JlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXF1b3RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUtcmVwbHkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS1zaGFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLXRleHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tZXNzYWdlLXNxdWFyZS13YXJuaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21lc3NhZ2Utc3F1YXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWVzc2FnZXMtc3F1YXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWljLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pYy12b2NhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pY3JvY2hpcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pY3Jvc2NvcGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWNyb3dhdmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWxlc3RvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taWxrLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21pbGsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taW5pbWl6ZS0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbWluaW1pemUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLWNsb3VkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3Itb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9uaXRvci1wYXVzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItcGxheS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3Itc21hcnRwaG9uZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3Itc3BlYWtlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3Itc3RvcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vbml0b3ItdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb25pdG9yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9vbi1zdGFyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW90b3JiaWtlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW9vbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdW50YWluLXNub3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VudGFpbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLXBvaW50ZXItMi1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1wb2ludGVyLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1wb2ludGVyLWJhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdXNlLXBvaW50ZXItY2xpY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3VzZS1wb2ludGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW91c2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLTNkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1kaWFnb25hbC0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1kaWFnb25hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtZG93bi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1kb3duLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1ob3Jpem9udGFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtdXAtbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUtdXAtcmlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tb3ZlLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbW92ZS12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL21vdmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tdXNpYy0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbXVzaWMtMy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL211c2ljLTQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9tdXNpYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25hdmlnYXRpb24tMi1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uYXZpZ2F0aW9uLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uYXZpZ2F0aW9uLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25hdmlnYXRpb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uZXdzcGFwZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9uZXR3b3JrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbmZjLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm9uLWJpbmFyeS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVib29rLXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL25vdGVib29rLXRhYnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlYm9vay10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZWJvb2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ub3RlcGFkLXRleHQtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbm90ZXBhZC10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvbnV0LW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL251dC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29jdGFnb24tYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vY3RhZ29uLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb2N0YWdvbi1wYXVzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29jdGFnb24teC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29jdGFnb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9vbWVnYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29wdGlvbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL29yYml0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvb3JpZ2FtaS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhY2thZ2UtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS1vcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFja2FnZS1zZWFyY2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWNrYWdlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFpbnQtYnVja2V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFpbnQtcm9sbGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFpbnRicnVzaC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhaW50YnJ1c2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYWxldHRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZGEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1ib3R0b20tY2xvc2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1ib3R0b20tZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtYm90dG9tLW9wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1ib3R0b20uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0LWNsb3NlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtbGVmdC1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0LW9wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1sZWZ0LXJpZ2h0LWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1yaWdodC1jbG9zZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXJpZ2h0LWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXJpZ2h0LW9wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYW5lbC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1ib3R0b20tZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtdG9wLWNsb3NlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtdG9wLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVsLXRvcC1vcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWxzLWxlZnQtYm90dG9tLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWwtdG9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGFuZWxzLXJpZ2h0LWJvdHRvbS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhbmVscy10b3AtbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcGVyY2xpcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcmtpbmctbWV0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wYXJlbnRoZXNlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhcnR5LXBvcHBlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BhdXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGF3LXByaW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGMtY2FzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Blbi1saW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVuLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Blbi10b29sLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVuY2lsLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZW5jaWwtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVuY2lsLXJ1bGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVuY2lsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVudGFnb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wZXJjZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGVyc29uLXN0YW5kaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhpbGlwcGluZS1wZXNvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtZm9yd2FyZGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtY2FsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Bob25lLWluY29taW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtbWlzc2VkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGhvbmUtb3V0Z29pbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waG9uZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlhbm8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWNrYXhlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGljdHVyZS1pbi1waWN0dXJlLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWN0dXJlLWluLXBpY3R1cmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWdneS1iYW5rLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlsY3Jvdy1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlsY3Jvdy1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpbGNyb3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waWxsLWJvdHRsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9waW4tb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGluLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGlwZXR0ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BpenphLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcGxhbmUtbGFuZGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsYW5lLXRha2VvZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbGFuZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsYXkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbHVnLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbHVnLXphcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BsdWcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9ja2V0LWtuaWZlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9ja2V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9kY2FzdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvaW50ZXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG9pbnRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvcGNvcm4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wb3BzaWNsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3BvdW5kLXN0ZXJsaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG93ZXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcG93ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wcmVzZW50YXRpb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9wcmludGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHJpbnRlci1jaGVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Byb2plY3Rvci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Byb3BvcnRpb25zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHV6emxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcHlyYW1pZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3FyLWNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9xdW90ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhYmJpdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGFyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFkaWF0aW9uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFkaWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGlvLXJlY2VpdmVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFkaW8tdG93ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yYWRpby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhZGl1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhaWwtc3ltYm9sLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmFpbmJvdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JhdGlvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1jZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1ldXJvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC1pbmRpYW4tcnVwZWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LWphcGFuZXNlLXllbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY2VpcHQtcG91bmQtc3RlcmxpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LXJ1c3NpYW4tcnVibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LXN3aXNzLWZyYW5jLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjZWlwdC10dXJraXNoLWxpcmEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWNlaXB0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLWNpcmNsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3RhbmdsZS1lbGxpcHNpcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlY3RhbmdsZS1nb2dnbGVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVjdGFuZ2xlLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWN0YW5nbGUtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWN5Y2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVkby0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVkby1kb3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWRvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVmcmVzaC1jY3ctZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVmcmVzaC1jY3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWZyZXNoLWN3LW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY3cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWZyaWdlcmF0b3IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZWdleC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlbW92ZS1mb3JtYXR0aW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwZWF0LTEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yZXBlYXQtMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGVhdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGxhY2UtYWxsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmVwbGFjZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGx5LWFsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JlcGx5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmV3aW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcmliYm9uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9ja2V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9ja2luZy1jaGFpci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvbGxlci1jb2FzdGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm9zZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS0zZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS1jY3cta2V5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm90YXRlLWNjdy1zcXVhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9yb3RhdGUtY2N3LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm90YXRlLWN3LXNxdWFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdGF0ZS1jdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3JvdXRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm91dGUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm91dGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy0zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcm93cy00LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcnNzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvcnVsZXItZGltZW5zaW9uLWxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9ydWxlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3J1c3NpYW4tcnVibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYWlsYm9hdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhbGFkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2FuZHdpY2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYXRlbGxpdGUtZGlzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdGVsbGl0ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdWRpLXJpeWFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2F2ZS1hbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zYXZlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NhdmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY2FsZS0zZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYWxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2NhbGluZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tZXllLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1iYXJjb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1mYWNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi1oZWFydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tbGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tcXItY29kZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjYW4tc2VhcmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjaG9vbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjaXNzb3JzLWxpbmUtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Npc3NvcnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zY29vdGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2NyZWVuLXNoYXJlLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NjcmVlbi1zaGFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Njcm9sbC10ZXh0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2Nyb2xsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLWFsZXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VhcmNoLWNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gtc2xhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZWFyY2gteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlbmQtaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlY3Rpb24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZW5kLXRvLWJhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VwYXJhdG9yLWhvcml6b250YWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXBhcmF0b3ItdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXJ2ZXItY29nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VydmVyLWNyYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2VydmVyLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NlcnZlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NldHRpbmdzLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zZXR0aW5ncy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoYXBlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoYXJlLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGFyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoZWV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hlbGwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtYmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWVsbGlwc2lzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLWhhbGYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQtcXVlc3Rpb24tbWFyay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaWVsZC11c2VyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpZWxkLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGllbGQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaGlwLXdoZWVsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hpcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NoaXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hvcHBpbmctYmFnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hvcHBpbmctYmFza2V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hvcHBpbmctY2FydC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3ZlbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nob3dlci1oZWFkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2hyZWRkZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaHJpbXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaHJpbmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaHJ1Yi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NodWZmbGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwtaGlnaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ21hLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lnbmFsLWxvdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25hbC1tZWRpdW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zaWduYWwtemVyby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25hdHVyZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25wb3N0LWJpZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NpZ25wb3N0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2lyZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9za2lwLWJhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9za3VsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NraXAtZm9yd2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NsYWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc2xhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbGljZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NsaWRlcnMtaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NsaWRlcnMtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbWFydHBob25lLWNoYXJnaW5nLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc21hcnRwaG9uZS1uZmMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbWFydHBob25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc21pbGUtcGx1cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NtaWxlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc25haWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zbm93Zmxha2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zb2FwLWRpc3BlbnNlci1kcm9wbGV0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc29mYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NvbGFyLXBhbmVsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc291cC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwYWNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BhZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGFya2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BhcmtsZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGVha2VyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BlZWNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BlbGwtY2hlY2stMi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NwZWxsLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BsaW5lLXBvaW50ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcGxpdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Nwb29sLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3BvdGxpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3ByYXktY2FuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Byb3V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFjdGl2aXR5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LWRvd24tbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1kb3duLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtYXJyb3ctbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtZG93bi1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC1kb3duLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1hcnJvdy11cC1sZWZ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXVwLXJpZ2h0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWFzdGVyaXNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWJvdHRvbS1kYXNoZWQtc2Npc3NvcnMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hhcnQtZ2FudHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hlY2stYmlnLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNoZXZyb24tZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGV2cm9uLWxlZnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtY2hldnJvbi1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1jaGV2cm9uLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWNvZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLWJvdHRvbS1jb2RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC1ib3R0b20uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZGFzaGVkLWthbmJhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQtbW91c2UtcG9pbnRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kYXNoZWQtdG9wLXNvbGlkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWRhc2hlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1kaXZpZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtZG90LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWVxdWFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWZ1bmN0aW9uLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLWthbmJhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1saWJyYXJ5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtbWVudS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1taW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1tb3VzZS1wb2ludGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBhcmtpbmctb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBhcmtpbmcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGVuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBhdXNlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBlcmNlbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcGlsY3Jvdy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1wbGF5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcG93ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtcmFkaWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zY2lzc29ycy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1yb3VuZC1jb3JuZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc2lnbWEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc2xhc2guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3BsaXQtaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zcGxpdC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zcXVhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3RhY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtc3Rhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS1zdG9wLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXRlcm1pbmFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXVzZXItcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmUtdXNlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWFyZS14LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlcy1leGNsdWRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlcy1pbnRlcnNlY3QuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zcXVhcmVzLXN1YnRyYWN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1aXJjbGUtZGFzaGVkLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1YXJlcy11bml0ZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3NxdWlyY2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3F1aXJyZWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdGFtcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0YXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Rhci1oYWxmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Rhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0ZXAtYmFjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0ZXAtZm9yd2FyZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0ZXRob3Njb3BlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RpY2tlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0b25lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3RpY2t5LW5vdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdG9yZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0cmV0Y2gtaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N0cmV0Y2gtdmVydGljYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdHJpa2V0aHJvdWdoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3Vic2NyaXB0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VuLWRpbS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bi1tZWRpdW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zdW4tbW9vbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bi1zbm93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3VucmlzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1bnNldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N1cGVyc2NyaXB0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvc3dhdGNoLWJvb2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zd2lzcy1mcmFuYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3aXRjaC1jYW1lcmEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy9zd29yZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N3b3Jkcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3N5cmluZ2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS0yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtY2VsbHMtbWVyZ2UuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1jZWxscy1zcGxpdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLW9mLWNvbnRlbnRzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUtY29sdW1ucy1zcGxpdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxlLXByb3BlcnRpZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZS1yb3dzLXNwbGl0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWJsZXQtc21hcnRwaG9uZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhYmxldHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWdzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFsbHktMS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbGx5LTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YWxseS0zLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFsbHktNC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RhbGx5LTUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90YW5nZW50LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGFyZ2V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVsZXNjb3BlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVudC10cmVlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVudC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rlc3QtdHViZS1kaWFnb25hbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rlcm1pbmFsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVzdC10dWJlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGVzdC10dWJlcy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtYWxpZ24tY2VudGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1hbGlnbi1lbmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWFsaWduLWp1c3RpZnkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWFsaWduLXN0YXJ0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGV4dC1jdXJzb3ItaW5wdXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWN1cnNvci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtcXVvdGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LWluaXRpYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90ZXh0LXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtc2VsZWN0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGhlYXRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RleHQtd3JhcC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RoZXJtb21ldGVyLXNub3dmbGFrZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RoZXJtb21ldGVyLXN1bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RoZXJtb21ldGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGh1bWJzLWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aHVtYnMtdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQtY2hlY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQtbWludXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQtcGVyY2VudC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpY2tldC1wbHVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0LXNsYXNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0LXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90aWNrZXRzLXBsYW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGlja2V0cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RpbWVyLXJlc2V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGltZXItb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdGltZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b2dnbGUtbGVmdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvZ2dsZS1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RvaWxldC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvb2wtY2FzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvb2xib3guanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3JuYWRvLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdG9ydXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3VjaHBhZC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3VjaHBhZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3Rvd2VyLWNvbnRyb2wuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90b3ktYnJpY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFmZmljLWNvbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFjdG9yLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhaW4tZnJvbnQtdHVubmVsLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJhaW4tZnJvbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFpbi10cmFjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYW0tZnJvbnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFuc2dlbmRlci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyYXNoLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmFzaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZWUtZGVjaWR1b3VzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZS1wYWxtLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZS1waW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVsbG8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmVuZGluZy1kb3duLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJlbmRpbmctdXAtZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyZW5kaW5nLXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJpYW5nbGUtYWxlcnQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmlhbmdsZS1kYXNoZWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cmlhbmdsZS1yaWdodC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3RyaWFuZ2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJvcGh5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdHJ1Y2stZWxlY3RyaWMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90cnVjay5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cmtpc2gtbGlyYS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cm50YWJsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R1cnRsZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R2LW1pbmltYWwtcGxheS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R2LW1pbmltYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90di5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R3aXRjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3R3aXR0ZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90eXBlLW91dGxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy90eXBlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW1icmVsbGEtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW1icmVsbGEuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmRlcmxpbmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmRvLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmRvLWRvdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZG8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmZvbGQtaG9yaXpvbnRhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZm9sZC12ZXJ0aWNhbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VuZ3JvdXAuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bml2ZXJzaXR5LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdW5saW5rLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bmxpbmsuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91bnBsdWcuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2IuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91cGxvYWQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLWxvY2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLWNoZWNrLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1jb2cuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLW1pbnVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXNlci1yb3VuZC1wZW4uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXBsdXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItcm91bmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXJvdW5kLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2VyLXNlYXJjaC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXItc3Rhci5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXIteC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy91c2Vycy1yb3VuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3VzZXJzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXRlbnNpbHMtY3Jvc3NlZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3V0ZW5zaWxzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmFuLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdXRpbGl0eS1wb2xlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmFyaWFibGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92YXVsdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlY3Rvci1zcXVhcmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92ZWdhbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlbmV0aWFuLW1hc2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92ZW51cy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZlbnVzLWFuZC1tYXJzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlicmF0ZS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWJyYXRlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlkZW8tb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdmlkZW8uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2ljZW1haWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWRlb3RhcGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92aWV3LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sbGV5YmFsbC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3ZvbHVtZS0xLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sdW1lLTIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvdm9sdW1lLXguanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b2x1bWUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy92b3RlLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FsbGV0LW1pbmltYWwuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxsZXQtY2FyZHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxsZXQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YWxscGFwZXIuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YW5kLXNwYXJrbGVzLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2FuZC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhcmVob3VzZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhc2hpbmctbWFjaGluZS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdGNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtYXJyb3ctZG93bi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dhdmVzLWFycm93LXVwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMtbGFkZGVyLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2F2ZXMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93YXlwb2ludHMuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWJjYW0uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWJob29rLW9mZi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dlYmhvb2suanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWlnaHQtdGlsZGUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93ZWlnaHQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aGVhdC1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aGVhdC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dob2xlLXdvcmQuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLWNvZy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktbG93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2lmaS1oaWdoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2lmaS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aWZpLXBlbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktc3luYy5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmktemVyby5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dpZmkuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aW5kLWFycm93LWRvd24uanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aW5kLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd2luZS1vZmYuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy93aW5lLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd29ybS5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3dvcmtmbG93LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvd3JlbmNoLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMveC5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3lvdXR1YmUuanM6Cmx1Y2lkZS9kaXN0L2VzbS9pY29ucy96YXAtb2ZmLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvemFwLmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnMvem9vbS1pbi5qczoKbHVjaWRlL2Rpc3QvZXNtL2ljb25zL3pvb20tb3V0LmpzOgpsdWNpZGUvZGlzdC9lc20vaWNvbnNBbmRBbGlhc2VzLmpzOgpsdWNpZGUvZGlzdC9lc20vbHVjaWRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlIGx1Y2lkZSB2MC41NjIuMCAtIElTQwogICAqCiAgICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAgICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAgICopCgppYmFudG9vbHMvanNuZXh0L2liYW50b29scy5qczoKICAoKiEKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBTYcWhYSBKb3ZhbmnEhwogICAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDIuMCBvciB0aGUgTUlUIGxpY2Vuc2UsCiAgICogYXQgeW91ciBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCiAgICogZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KICAgKiBTUERYLUZpbGVDb3B5cmlnaHRUZXh0OiBTYcWhYSBKb3ZhbmnEhwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgb3IgTVBMLzIuMAogICAqKQogICgqKgogICAqIFZhbGlkYXRpb24sIGV4dHJhY3Rpb24gYW5kIGNyZWF0aW9uIG9mIElCQU4sIEJCQU4sIEJJQy9TV0lGVCBudW1iZXJzIHBsdXMgc29tZSBvdGhlciBoZWxwZnVsIHN0dWZmCiAgICogQHBhY2thZ2UgRG9jdW1lbnRhdGlvbgogICAqIEBhdXRob3IgU2HFoWEgSm92YW5pxIcKICAgKiBAbW9kdWxlIGliYW50b29scwogICAqIEB2ZXJzaW9uIDQuNS4xCiAgICogQGxpY2Vuc2UgTUlUIG9yIE1QTC0yLjAKICAgKiBAcHJlZmVycmVkCiAgICopCiovCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1bmRsZS5qcy5tYXAK', contentType: 'application/javascript' }], ['/bundle.js.map', { base64: 'ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BsaXQrcmVhY3RpdmUtZWxlbWVudEAyLjEuMi9ub2RlX21vZHVsZXMvQGxpdC9yZWFjdGl2ZS1lbGVtZW50L3NyYy9jc3MtdGFnLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AbGl0K3JlYWN0aXZlLWVsZW1lbnRAMi4xLjIvbm9kZV9tb2R1bGVzL0BsaXQvcmVhY3RpdmUtZWxlbWVudC9zcmMvcmVhY3RpdmUtZWxlbWVudC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0LWh0bWxAMy4zLjIvbm9kZV9tb2R1bGVzL2xpdC1odG1sL3NyYy9saXQtaHRtbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0LWVsZW1lbnRANC4yLjIvbm9kZV9tb2R1bGVzL2xpdC1lbGVtZW50L3NyYy9saXQtZWxlbWVudC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0LWh0bWxAMy4zLjIvbm9kZV9tb2R1bGVzL2xpdC1odG1sL3NyYy9pcy1zZXJ2ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2xpdEAzLjMuMi9ub2RlX21vZHVsZXMvbGl0L2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2Nrcytpc291bmlxdWVAMS4wLjUvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL2lzb3VuaXF1ZS90cy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRwcm9taXNlQDQuMi4zL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHByb21pc2UvdHMvc21hcnRwcm9taXNlLmNsYXNzZXMuZGVmZXJyZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0cHJvbWlzZUA0LjIuMy9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlL3RzL3NtYXJ0cHJvbWlzZS5jbGFzc2VzLmN1bXVsYXRpdmVkZWZlcnJlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRwcm9taXNlQDQuMi4zL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHByb21pc2UvdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0cnhAMy4wLjEwL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHJ4L3RzL3NtYXJ0cngucGx1Z2lucy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdHNsaWJAMi44LjEvbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5tanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3V0aWwvaXNGdW5jdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvdXRpbC9jcmVhdGVFcnJvckNsYXNzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL1Vuc3Vic2NyaXB0aW9uRXJyb3IudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3V0aWwvYXJyUmVtb3ZlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9TdWJzY3JpcHRpb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL2NvbmZpZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVyL3RpbWVvdXRQcm92aWRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvdXRpbC9yZXBvcnRVbmhhbmRsZWRFcnJvci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvdXRpbC9ub29wLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9Ob3RpZmljYXRpb25GYWN0b3JpZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3V0aWwvZXJyb3JDb250ZXh0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9TdWJzY3JpYmVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9zeW1ib2wvb2JzZXJ2YWJsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvdXRpbC9pZGVudGl0eS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvdXRpbC9waXBlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9PYnNlcnZhYmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL2xpZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9PcGVyYXRvclN1YnNjcmliZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9yZWZDb3VudC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9Db25uZWN0YWJsZU9ic2VydmFibGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3NjaGVkdWxlci9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9zY2hlZHVsZXIvYW5pbWF0aW9uRnJhbWVQcm92aWRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9kb20vYW5pbWF0aW9uRnJhbWVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL09iamVjdFVuc3Vic2NyaWJlZEVycm9yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9TdWJqZWN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3NjaGVkdWxlci9kYXRlVGltZXN0YW1wUHJvdmlkZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL1JlcGxheVN1YmplY3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL0FzeW5jU3ViamVjdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVyL0FjdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVyL2ludGVydmFsUHJvdmlkZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3NjaGVkdWxlci9Bc3luY0FjdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvdXRpbC9JbW1lZGlhdGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3NjaGVkdWxlci9pbW1lZGlhdGVQcm92aWRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVyL0FzYXBBY3Rpb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL1NjaGVkdWxlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVyL0FzeW5jU2NoZWR1bGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9zY2hlZHVsZXIvQXNhcFNjaGVkdWxlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVyL2FzYXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3NjaGVkdWxlci9hc3luYy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVyL1F1ZXVlQWN0aW9uLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9zY2hlZHVsZXIvUXVldWVTY2hlZHVsZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3NjaGVkdWxlci9xdWV1ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVyL0FuaW1hdGlvbkZyYW1lQWN0aW9uLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9zY2hlZHVsZXIvQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3NjaGVkdWxlci9hbmltYXRpb25GcmFtZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVyL1ZpcnR1YWxUaW1lU2NoZWR1bGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL2VtcHR5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL2lzU2NoZWR1bGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL2FyZ3MudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3V0aWwvaXNBcnJheUxpa2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3V0aWwvaXNQcm9taXNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL2lzSW50ZXJvcE9ic2VydmFibGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3V0aWwvaXNBc3luY0l0ZXJhYmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL3Rocm93VW5vYnNlcnZhYmxlRXJyb3IudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3N5bWJvbC9pdGVyYXRvci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvdXRpbC9pc0l0ZXJhYmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL2lzUmVhZGFibGVTdHJlYW1MaWtlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL2lubmVyRnJvbS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvdXRpbC9leGVjdXRlU2NoZWR1bGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9vYnNlcnZlT24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9zdWJzY3JpYmVPbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlT2JzZXJ2YWJsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUHJvbWlzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlQXJyYXkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3NjaGVkdWxlZC9zY2hlZHVsZUl0ZXJhYmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVBc3luY0l0ZXJhYmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3NjaGVkdWxlZC9zY2hlZHVsZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29ic2VydmFibGUvZnJvbS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9vZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb2JzZXJ2YWJsZS90aHJvd0Vycm9yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9Ob3RpZmljYXRpb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3V0aWwvaXNPYnNlcnZhYmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL0VtcHR5RXJyb3IudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL2xhc3RWYWx1ZUZyb20udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL2ZpcnN0VmFsdWVGcm9tLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL0FyZ3VtZW50T3V0T2ZSYW5nZUVycm9yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL05vdEZvdW5kRXJyb3IudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL3V0aWwvU2VxdWVuY2VFcnJvci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvdXRpbC9pc0RhdGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy90aW1lb3V0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvbWFwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC91dGlsL21hcE9uZU9yTWFueUFyZ3MudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29ic2VydmFibGUvYmluZENhbGxiYWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL2JpbmROb2RlQ2FsbGJhY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29ic2VydmFibGUvY29tYmluZUxhdGVzdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlSW50ZXJuYWxzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VNYXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZUFsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdEFsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb25jYXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29ic2VydmFibGUvZGVmZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29ic2VydmFibGUvY29ubmVjdGFibGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29ic2VydmFibGUvZm9ya0pvaW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21FdmVudFBhdHRlcm4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29ic2VydmFibGUvaWlmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL3RpbWVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL2ludGVydmFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL21lcmdlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL25ldmVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL29uRXJyb3JSZXN1bWVOZXh0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL3BhaXJzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvZmlsdGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL3BhcnRpdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9yYWNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL3JhbmdlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vYnNlcnZhYmxlL3VzaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC90eXBlcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2F1ZGl0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvYXVkaXRUaW1lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyQ291bnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJUaW1lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyV2hlbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2NhdGNoRXJyb3IudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9yZWR1Y2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy90b0FycmF5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvY29tYmluZUxhdGVzdEFsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVBbGwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRNYXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRNYXBUby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2Nvbm5lY3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9jb3VudC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlYm91bmNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2VUaW1lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVmYXVsdElmRW1wdHkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy90YWtlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvaWdub3JlRWxlbWVudHMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9tYXBUby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlbGF5V2hlbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlbGF5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVtYXRlcmlhbGl6ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2Rpc3RpbmN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3RVbnRpbENoYW5nZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm93SWZFbXB0eS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2VsZW1lbnRBdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2V2ZXJ5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhoYXVzdE1hcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2V4aGF1c3RBbGwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhwYW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvZmluYWxpemUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9maW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvZmluZEluZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvZmlyc3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9ncm91cEJ5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvaXNFbXB0eS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2xhc3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9tYXRlcmlhbGl6ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL21heC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZsYXRNYXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZU1hcFRvLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VTY2FuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvbWluLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvbXVsdGljYXN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvcGFpcndpc2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9wbHVjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9wdWJsaXNoQmVoYXZpb3IudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9wdWJsaXNoTGFzdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hSZXBsYXkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9yZXBlYXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9yZXBlYXRXaGVuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvcmV0cnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9yZXRyeVdoZW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9zYW1wbGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9zYW1wbGVUaW1lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvc2Nhbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3NlcXVlbmNlRXF1YWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9zaGFyZVJlcGxheS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3NpbmdsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9za2lwTGFzdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBVbnRpbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBXaGlsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3N0YXJ0V2l0aC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaE1hcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaEFsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaE1hcFRvLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoU2Nhbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VVbnRpbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VXaGlsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3RhcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm90dGxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGVUaW1lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZUludGVydmFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZW91dFdpdGgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy90aW1lc3RhbXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dUaW1lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yeGpzQDcuOC4yL25vZGVfbW9kdWxlcy9yeGpzL3NyYy9pbnRlcm5hbC9vcGVyYXRvcnMvd2luZG93V2hlbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW50ZXJuYWwvb3BlcmF0b3JzL3ppcEFsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcnhqc0A3LjguMi9ub2RlX21vZHVsZXMvcnhqcy9zcmMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL2ludGVybmFsL29wZXJhdG9ycy9wYXJ0aXRpb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3J4anNANy44LjIvbm9kZV9tb2R1bGVzL3J4anMvc3JjL29wZXJhdG9ycy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRyeEAzLjAuMTAvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0cngvdHMvc21hcnRyeC5wbHVnaW5zLnJ4anMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0cnhAMy4wLjEwL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHJ4L3RzL3NtYXJ0cnguY2xhc3Nlcy5vYnNlcnZhYmxlbWFwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHJ4QDMuMC4xMC9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRyeC90cy9zbWFydHJ4LmNsYXNzZXMub2JzZXJ2YWJsZWludGFrZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRyeEAzLjAuMTAvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0cngvdHMvc21hcnRyeC5mdW5jdGlvbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0cnhAMy4wLjEwL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHJ4L3RzL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AbGl0K3JlYWN0aXZlLWVsZW1lbnRAMi4xLjIvbm9kZV9tb2R1bGVzL0BsaXQvcmVhY3RpdmUtZWxlbWVudC9zcmMvZGVjb3JhdG9ycy9wcm9wZXJ0eS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0QDMuMy4yL25vZGVfbW9kdWxlcy9saXQvZGVjb3JhdG9ycy9wcm9wZXJ0eS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1kb210b29sc0AyLjMuNy9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scy9kaXN0X3RzL2RvbXRvb2xzLmNvbG9ycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRkZWxheUAzLjAuNS9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRkZWxheS90cy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGFwaS5nbG9iYWwrdHlwZWRyZXF1ZXN0LWludGVyZmFjZXNAMy4wLjE5L25vZGVfbW9kdWxlcy9AYXBpLmdsb2JhbC90eXBlZHJlcXVlc3QtaW50ZXJmYWNlcy9kaXN0X3RzL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9lc2NhcGUtc3RyaW5nLXJlZ2V4cEA1LjAuMC9ub2RlX21vZHVsZXMvZXNjYXBlLXN0cmluZy1yZWdleHAvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21hdGNoZXJANS4wLjAvbm9kZV9tb2R1bGVzL21hdGNoZXIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0bWF0Y2hAMi4wLjAvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0bWF0Y2gvdHMvc21hcnRtYXRjaC5wbHVnaW5zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydG1hdGNoQDIuMC4wL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydG1hdGNoL3RzL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9jcm9uZXJAOS4xLjAvbm9kZV9tb2R1bGVzL2Nyb25lci9kaXN0L2Nyb25lci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2NvbnN0YW50cy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2NvbnN0cnVjdEZyb20uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy90b0RhdGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9hZGREYXlzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvYWRkTW9udGhzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvYWRkLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNTYXR1cmRheS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzU3VuZGF5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNXZWVrZW5kLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvYWRkQnVzaW5lc3NEYXlzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvYWRkTWlsbGlzZWNvbmRzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvYWRkSG91cnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9fbGliL2RlZmF1bHRPcHRpb25zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZldlZWsuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdGFydE9mSVNPV2Vlay5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldElTT1dlZWtZZWFyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9ub3JtYWxpemVEYXRlcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3N0YXJ0T2ZEYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5DYWxlbmRhckRheXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdGFydE9mSVNPV2Vla1llYXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zZXRJU09XZWVrWWVhci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZElTT1dlZWtZZWFycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZE1pbnV0ZXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9hZGRRdWFydGVycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZFNlY29uZHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9hZGRXZWVrcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2FkZFllYXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmcuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9tYXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9taW4uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9jbGFtcC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2Nsb3Nlc3RJbmRleFRvLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvY2xvc2VzdFRvLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvY29tcGFyZUFzYy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2NvbXBhcmVEZXNjLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvY29uc3RydWN0Tm93LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGF5c1RvV2Vla3MuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1NhbWVEYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0RhdGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1ZhbGlkLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrWWVhcnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXRRdWFydGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2RpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluRGF5cy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL19saWIvZ2V0Um91bmRpbmdNZXRob2QuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5Ib3Vycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3N1YklTT1dlZWtZZWFycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2RpZmZlcmVuY2VJbklTT1dlZWtZZWFycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2RpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2RpZmZlcmVuY2VJbk1pbnV0ZXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lbmRPZkRheS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VuZE9mTW9udGguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0xhc3REYXlPZk1vbnRoLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluTW9udGhzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluUXVhcnRlcnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5TZWNvbmRzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZGlmZmVyZW5jZUluV2Vla3MuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9kaWZmZXJlbmNlSW5ZZWFycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL19saWIvbm9ybWFsaXplSW50ZXJ2YWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lYWNoRGF5T2ZJbnRlcnZhbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VhY2hIb3VyT2ZJbnRlcnZhbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VhY2hNaW51dGVPZkludGVydmFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZWFjaE1vbnRoT2ZJbnRlcnZhbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3N0YXJ0T2ZRdWFydGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZWFjaFF1YXJ0ZXJPZkludGVydmFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZWFjaFdlZWtPZkludGVydmFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZWFjaFdlZWtlbmRPZkludGVydmFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZk1vbnRoLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZWFjaFdlZWtlbmRPZk1vbnRoLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZW5kT2ZZZWFyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZlllYXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lYWNoV2Vla2VuZE9mWWVhci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VhY2hZZWFyT2ZJbnRlcnZhbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VuZE9mRGVjYWRlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZW5kT2ZIb3VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZW5kT2ZXZWVrLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZW5kT2ZJU09XZWVrLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZW5kT2ZJU09XZWVrWWVhci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VuZE9mTWludXRlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZW5kT2ZRdWFydGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZW5kT2ZTZWNvbmQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lbmRPZlRvZGF5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZW5kT2ZUb21vcnJvdy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VuZE9mWWVzdGVyZGF5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbG9jYWxlL2VuLVVTL19saWIvZm9ybWF0RGlzdGFuY2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9sb2NhbGUvX2xpYi9idWlsZEZvcm1hdExvbmdGbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9lbi1VUy9fbGliL2Zvcm1hdExvbmcuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9sb2NhbGUvZW4tVVMvX2xpYi9mb3JtYXRSZWxhdGl2ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9fbGliL2J1aWxkTG9jYWxpemVGbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9lbi1VUy9fbGliL2xvY2FsaXplLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbG9jYWxlL19saWIvYnVpbGRNYXRjaEZuLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbG9jYWxlL19saWIvYnVpbGRNYXRjaFBhdHRlcm5Gbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9lbi1VUy9fbGliL21hdGNoLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbG9jYWxlL2VuLVVTLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9kZWZhdWx0TG9jYWxlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZ2V0RGF5T2ZZZWFyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZ2V0SVNPV2Vlay5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldFdlZWtZZWFyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZldlZWtZZWFyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZ2V0V2Vlay5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL19saWIvYWRkTGVhZGluZ1plcm9zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9mb3JtYXQvbGlnaHRGb3JtYXR0ZXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9mb3JtYXQvZm9ybWF0dGVycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL19saWIvZm9ybWF0L2xvbmdGb3JtYXR0ZXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9wcm90ZWN0ZWRUb2tlbnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9mb3JtYXQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9mb3JtYXREaXN0YW5jZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2Zvcm1hdERpc3RhbmNlU3RyaWN0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZm9ybWF0RGlzdGFuY2VUb05vdy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2Zvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9mb3JtYXREdXJhdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2Zvcm1hdElTTy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2Zvcm1hdElTTzkwNzUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9mb3JtYXRJU09EdXJhdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2Zvcm1hdFJGQzMzMzkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9mb3JtYXRSRkM3MjMxLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZm9ybWF0UmVsYXRpdmUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9mcm9tVW5peFRpbWUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXREYXRlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZ2V0RGF5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZ2V0RGF5c0luTW9udGguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0xlYXBZZWFyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZ2V0RGF5c0luWWVhci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldERlY2FkZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldERlZmF1bHRPcHRpb25zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZ2V0SG91cnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXRJU09EYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXRJU09XZWVrc0luWWVhci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldE1pbGxpc2Vjb25kcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldE1pbnV0ZXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXRNb250aC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldE92ZXJsYXBwaW5nRGF5c0luSW50ZXJ2YWxzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZ2V0U2Vjb25kcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldFRpbWUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXRVbml4VGltZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldFdlZWtPZk1vbnRoLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbGFzdERheU9mTW9udGguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXRXZWVrc0luTW9udGguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXRZZWFyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaG91cnNUb01pbGxpc2Vjb25kcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2hvdXJzVG9NaW51dGVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaG91cnNUb1NlY29uZHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pbnRlcnZhbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2ludGVydmFsVG9EdXJhdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2ludGxGb3JtYXQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pbnRsRm9ybWF0RGlzdGFuY2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0FmdGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNCZWZvcmUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0VxdWFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNFeGlzdHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0ZpcnN0RGF5T2ZNb250aC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzRnJpZGF5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNGdXR1cmUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy90cmFuc3Bvc2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL1NldHRlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvUGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcGFyc2UvX2xpYi9wYXJzZXJzL0VyYVBhcnNlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvY29uc3RhbnRzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcGFyc2UvX2xpYi91dGlscy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvcGFyc2Vycy9ZZWFyUGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcGFyc2UvX2xpYi9wYXJzZXJzL0xvY2FsV2Vla1llYXJQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvSVNPV2Vla1llYXJQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvRXh0ZW5kZWRZZWFyUGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcGFyc2UvX2xpYi9wYXJzZXJzL1F1YXJ0ZXJQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvU3RhbmRBbG9uZVF1YXJ0ZXJQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvTW9udGhQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvU3RhbmRBbG9uZU1vbnRoUGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc2V0V2Vlay5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvcGFyc2Vycy9Mb2NhbFdlZWtQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zZXRJU09XZWVrLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcGFyc2UvX2xpYi9wYXJzZXJzL0lTT1dlZWtQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvRGF0ZVBhcnNlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvcGFyc2Vycy9EYXlPZlllYXJQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zZXREYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvRGF5UGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcGFyc2UvX2xpYi9wYXJzZXJzL0xvY2FsRGF5UGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcGFyc2UvX2xpYi9wYXJzZXJzL1N0YW5kQWxvbmVMb2NhbERheVBhcnNlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3NldElTT0RheS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvcGFyc2Vycy9JU09EYXlQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvQU1QTVBhcnNlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvcGFyc2Vycy9BTVBNTWlkbmlnaHRQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvRGF5UGVyaW9kUGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcGFyc2UvX2xpYi9wYXJzZXJzL0hvdXIxdG8xMlBhcnNlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvcGFyc2Vycy9Ib3VyMHRvMjNQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvSG91cjBUbzExUGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcGFyc2UvX2xpYi9wYXJzZXJzL0hvdXIxVG8yNFBhcnNlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvcGFyc2Vycy9NaW51dGVQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvU2Vjb25kUGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcGFyc2UvX2xpYi9wYXJzZXJzL0ZyYWN0aW9uT2ZTZWNvbmRQYXJzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZS9fbGliL3BhcnNlcnMvSVNPVGltZXpvbmVXaXRoWlBhcnNlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvcGFyc2Vycy9JU09UaW1lem9uZVBhcnNlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvcGFyc2Vycy9UaW1lc3RhbXBTZWNvbmRzUGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcGFyc2UvX2xpYi9wYXJzZXJzL1RpbWVzdGFtcE1pbGxpc2Vjb25kc1BhcnNlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlL19saWIvcGFyc2Vycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNNYXRjaC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzTW9uZGF5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNQYXN0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZkhvdXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1NhbWVIb3VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNTYW1lV2Vlay5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzU2FtZUlTT1dlZWsuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1NhbWVJU09XZWVrWWVhci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3N0YXJ0T2ZNaW51dGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1NhbWVNaW51dGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1NhbWVNb250aC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzU2FtZVF1YXJ0ZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdGFydE9mU2Vjb25kLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNTYW1lU2Vjb25kLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNTYW1lWWVhci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzVGhpc0hvdXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1RoaXNJU09XZWVrLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNUaGlzTWludXRlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNUaGlzTW9udGguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1RoaXNRdWFydGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNUaGlzU2Vjb25kLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNUaGlzV2Vlay5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzVGhpc1llYXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1RodXJzZGF5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNUb2RheS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzVG9tb3Jyb3cuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1R1ZXNkYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1dlZG5lc2RheS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzV2l0aGluSW50ZXJ2YWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdWJEYXlzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaXNZZXN0ZXJkYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9sYXN0RGF5T2ZEZWNhZGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9sYXN0RGF5T2ZXZWVrLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbGFzdERheU9mSVNPV2Vlay5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xhc3REYXlPZklTT1dlZWtZZWFyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbGFzdERheU9mUXVhcnRlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xhc3REYXlPZlllYXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9saWdodEZvcm1hdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL21pbGxpc2Vjb25kcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL21pbGxpc2Vjb25kc1RvSG91cnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9taWxsaXNlY29uZHNUb01pbnV0ZXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9taWxsaXNlY29uZHNUb1NlY29uZHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9taW51dGVzVG9Ib3Vycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL21pbnV0ZXNUb01pbGxpc2Vjb25kcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL21pbnV0ZXNUb1NlY29uZHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9tb250aHNUb1F1YXJ0ZXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbW9udGhzVG9ZZWFycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL25leHREYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9uZXh0RnJpZGF5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbmV4dE1vbmRheS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL25leHRTYXR1cmRheS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL25leHRTdW5kYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9uZXh0VGh1cnNkYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9uZXh0VHVlc2RheS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL25leHRXZWRuZXNkYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wYXJzZUlTTy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3BhcnNlSlNPTi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3ByZXZpb3VzRGF5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcHJldmlvdXNGcmlkYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wcmV2aW91c01vbmRheS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3ByZXZpb3VzU2F0dXJkYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wcmV2aW91c1N1bmRheS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3ByZXZpb3VzVGh1cnNkYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wcmV2aW91c1R1ZXNkYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9wcmV2aW91c1dlZG5lc2RheS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3F1YXJ0ZXJzVG9Nb250aHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9xdWFydGVyc1RvWWVhcnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9yb3VuZFRvTmVhcmVzdEhvdXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvcm91bmRUb05lYXJlc3RNaW51dGVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc2Vjb25kc1RvSG91cnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zZWNvbmRzVG9NaWxsaXNlY29uZHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zZWNvbmRzVG9NaW51dGVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc2V0TW9udGguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zZXQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zZXREYXRlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc2V0RGF5T2ZZZWFyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc2V0RGVmYXVsdE9wdGlvbnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zZXRIb3Vycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3NldE1pbGxpc2Vjb25kcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3NldE1pbnV0ZXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zZXRRdWFydGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc2V0U2Vjb25kcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3NldFdlZWtZZWFyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc2V0WWVhci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3N0YXJ0T2ZEZWNhZGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdGFydE9mVG9kYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdGFydE9mVG9tb3Jyb3cuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdGFydE9mWWVzdGVyZGF5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3ViTW9udGhzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3ViLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3ViQnVzaW5lc3NEYXlzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3ViSG91cnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdWJNaWxsaXNlY29uZHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdWJNaW51dGVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3ViUXVhcnRlcnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdWJTZWNvbmRzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3ViV2Vla3MuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy9zdWJZZWFycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF0ZS1mbnNANC4xLjAvbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3dlZWtzVG9EYXlzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMveWVhcnNUb0RheXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RhdGUtZm5zQDQuMS4wL25vZGVfbW9kdWxlcy9kYXRlLWZucy95ZWFyc1RvTW9udGhzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMveWVhcnNUb1F1YXJ0ZXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9kYXRlLWZuc0A0LjEuMC9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2RheWpzQDEuMTEuMTkvbm9kZV9tb2R1bGVzL2RheWpzL2RheWpzLm1pbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGF5anNAMS4xMS4xOS9ub2RlX21vZHVsZXMvZGF5anMvcGx1Z2luL2lzVG9kYXkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3BhcnNlLW1zQDQuMC4wL25vZGVfbW9kdWxlcy9wYXJzZS1tcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcHJldHR5LW1zQDkuMy4wL25vZGVfbW9kdWxlcy9wcmV0dHktbXMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0dGltZUA0LjEuMS9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnR0aW1lL3RzL3NtYXJ0dGltZS5wbHVnaW5zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHRpbWVANC4xLjEvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0dGltZS90cy9zbWFydHRpbWUuY2xhc3Nlcy5jcm9ucGFyc2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHRpbWVANC4xLjEvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0dGltZS90cy9zbWFydHRpbWUuY2xhc3Nlcy5jcm9uam9iLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHRpbWVANC4xLjEvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0dGltZS90cy9zbWFydHRpbWUudW5pdHMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0dGltZUA0LjEuMS9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnR0aW1lL3RzL3NtYXJ0dGltZS5jbGFzc2VzLmNyb25tYW5hZ2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHRpbWVANC4xLjEvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0dGltZS90cy9zbWFydHRpbWUuY2xhc3Nlcy5leHRlbmRlZGRhdGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0dGltZUA0LjEuMS9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnR0aW1lL3RzL3NtYXJ0dGltZS5jbGFzc2VzLmhydG1lYXN1cmVtZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHRpbWVANC4xLjEvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0dGltZS90cy9zbWFydHRpbWUuY2xhc3Nlcy5pbnRlcnZhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnR0aW1lQDQuMS4xL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHRpbWUvdHMvc21hcnR0aW1lLmNsYXNzZXMudGltZXN0YW1wLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHRpbWVANC4xLjEvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0dGltZS90cy9zbWFydHRpbWUuY2xhc3Nlcy50aW1lci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnR0aW1lQDQuMS4xL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHRpbWUvdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N5bWJvbC10cmVlQDMuMi40L25vZGVfbW9kdWxlcy9zeW1ib2wtdHJlZS9saWIvU3ltYm9sVHJlZU5vZGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N5bWJvbC10cmVlQDMuMi40L25vZGVfbW9kdWxlcy9zeW1ib2wtdHJlZS9saWIvVHJlZVBvc2l0aW9uLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9zeW1ib2wtdHJlZUAzLjIuNC9ub2RlX21vZHVsZXMvc3ltYm9sLXRyZWUvbGliL1RyZWVJdGVyYXRvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vc3ltYm9sLXRyZWVAMy4yLjQvbm9kZV9tb2R1bGVzL3N5bWJvbC10cmVlL2xpYi9TeW1ib2xUcmVlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytsaWtANi4yLjIvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL2xpay90cy9jbGFzc2VzLnBsdWdpbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK2xpa0A2LjIuMi9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3MvbGlrL3RzL2NsYXNzZXMuYXN5bmNleGVjdXRpb25zdGFjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3MrbGlrQDYuMi4yL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9saWsvdHMvY2xhc3Nlcy5iYWNrcHJlc3N1cmVkYXJyYXkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK2xpa0A2LjIuMi9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3MvbGlrL3RzL2NsYXNzZXMuZmFzdG1hcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3MrbGlrQDYuMi4yL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9saWsvdHMvY2xhc3Nlcy5vYmplY3RtYXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK2xpa0A2LjIuMi9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3MvbGlrL3RzL2NsYXNzZXMuaW50ZXJlc3RtYXAuaW50ZXJlc3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK2xpa0A2LjIuMi9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3MvbGlrL3RzL2NsYXNzZXMuaW50ZXJlc3RtYXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK2xpa0A2LjIuMi9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3MvbGlrL3RzL2NsYXNzZXMubGltaXRlZGFycmF5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytsaWtANi4yLjIvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL2xpay90cy9jbGFzc2VzLmxvb3B0cmFja2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytsaWtANi4yLjIvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL2xpay90cy9jbGFzc2VzLnN0cmluZ21hcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3MrbGlrQDYuMi4yL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9saWsvdHMvY2xhc3Nlcy50aW1lZGFnZ3JlZ2F0b3IudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK2xpa0A2LjIuMi9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3MvbGlrL3RzL2NsYXNzZXMudHJlZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3MrbGlrQDYuMi4yL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9saWsvdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3VpbnQ4YXJyYXktZXh0cmFzQDEuNS4wL25vZGVfbW9kdWxlcy91aW50OGFycmF5LWV4dHJhcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRidWZmZXJAMy4wLjUvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0YnVmZmVyL3RzL3NtYXJ0YnVmZmVyLnBsdWdpbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0YnVmZmVyQDMuMC41L25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydGJ1ZmZlci90cy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRndWFyZEAzLjEuMC9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRndWFyZC90cy9zbWFydGd1YXJkLnBsdWdpbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0Z3VhcmRAMy4xLjAvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0Z3VhcmQvdHMvY2xhc3Nlcy5ndWFyZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRndWFyZEAzLjEuMC9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRndWFyZC90cy9jbGFzc2VzLmd1YXJkZXJyb3IudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0Z3VhcmRAMy4xLjAvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0Z3VhcmQvdHMvY2xhc3Nlcy5ndWFyZHNldC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRndWFyZEAzLjEuMC9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRndWFyZC90cy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRlbnZANS4wLjEzL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydGVudi90cy9zbWFydGVudi5wbHVnaW5zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydGVudkA1LjAuMTMvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0ZW52L3RzL2ludGVyZmFjZXMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0ZW52QDUuMC4xMy9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRlbnYvdHMvc21hcnRlbnYuY2xhc3Nlcy5zbWFydGVudi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRlbnZANS4wLjEzL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydGVudi90cy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRzdHJpbmdANC4xLjAvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0c3RyaW5nL3RzL3NtYXJ0c3RyaW5nLnBsdWdpbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0c3RyaW5nQDQuMS4wL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHN0cmluZy90cy9zbWFydHN0cmluZy5jcmVhdGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0c3RyaW5nQDQuMS4wL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHN0cmluZy90cy9zbWFydHN0cmluZy5kb2NrZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0c3RyaW5nQDQuMS4wL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHN0cmluZy90cy9zbWFydHN0cmluZy5pbmRlbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0c3RyaW5nQDQuMS4wL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHN0cmluZy90cy9zbWFydHN0cmluZy5ub3JtYWxpemUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0c3RyaW5nQDQuMS4wL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHN0cmluZy90cy9zbWFydHN0cmluZy5iYXNlNjQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0c3RyaW5nQDQuMS4wL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHN0cmluZy90cy9zbWFydHN0cmluZy50eXBlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHN0cmluZ0A0LjEuMC9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRzdHJpbmcvdHMvc21hcnRzdHJpbmcuZG9tYWluLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHN0cmluZ0A0LjEuMC9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRzdHJpbmcvdHMvc21hcnRzdHJpbmcuZ2l0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHN0cmluZ0A0LjEuMC9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRzdHJpbmcvdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2xvZGFzaC5jbG9uZWRlZXBANC41LjAvbm9kZV9tb2R1bGVzL2xvZGFzaC5jbG9uZWRlZXAvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Zhc3QtanNvbi1zdGFibGUtc3RyaW5naWZ5QDIuMS4wL25vZGVfbW9kdWxlcy9mYXN0LWpzb24tc3RhYmxlLXN0cmluZ2lmeS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRqc29uQDUuMi4wL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydGpzb24vdHMvc21hcnRqc29uLnBsdWdpbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0anNvbkA1LjIuMC9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRqc29uL3RzL2J1ZmZlcmhhbmRsaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydGpzb25ANS4yLjAvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0anNvbi90cy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRlbXBmaXgraWRiQDguMC4zL25vZGVfbW9kdWxlcy9AdGVtcGZpeC9pZGIvYnVpbGQvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3dlYnN0b3JlQDIuMC4yMC9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvd2Vic3RvcmUvdHMvd2Vic3RvcmUucGx1Z2lucy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrd2Vic3RvcmVAMi4wLjIwL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy93ZWJzdG9yZS90cy93ZWJzdG9yZS5jbGFzc2VzLndlYnN0b3JlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2Nrcyt3ZWJzdG9yZUAyLjAuMjAvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3dlYnN0b3JlL3RzL3dlYnN0b3JlLmNsYXNzZXMudHlwZWRyZXF1ZXN0Y2FjaGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3dlYnN0b3JlQDIuMC4yMC9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvd2Vic3RvcmUvdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3dlYnJlcXVlc3RAMy4wLjM3L25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy93ZWJyZXF1ZXN0L3RzL3dlYnJlcXVlc3QucGx1Z2lucy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrd2VicmVxdWVzdEAzLjAuMzcvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3dlYnJlcXVlc3QvdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BhcGkuZ2xvYmFsK3R5cGVkcmVxdWVzdEAzLjIuNS9ub2RlX21vZHVsZXMvQGFwaS5nbG9iYWwvdHlwZWRyZXF1ZXN0L3RzL3BsdWdpbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BhcGkuZ2xvYmFsK3R5cGVkcmVxdWVzdEAzLjIuNS9ub2RlX21vZHVsZXMvQGFwaS5nbG9iYWwvdHlwZWRyZXF1ZXN0L3RzL2NsYXNzZXMudHlwZWRyZXNwb25zZWVycm9yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AYXBpLmdsb2JhbCt0eXBlZHJlcXVlc3RAMy4yLjUvbm9kZV9tb2R1bGVzL0BhcGkuZ2xvYmFsL3R5cGVkcmVxdWVzdC90cy9jbGFzc2VzLnR5cGVkdG9vbHMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BhcGkuZ2xvYmFsK3R5cGVkcmVxdWVzdEAzLjIuNS9ub2RlX21vZHVsZXMvQGFwaS5nbG9iYWwvdHlwZWRyZXF1ZXN0L3RzL2NsYXNzZXMudHlwZWRoYW5kbGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AYXBpLmdsb2JhbCt0eXBlZHJlcXVlc3RAMy4yLjUvbm9kZV9tb2R1bGVzL0BhcGkuZ2xvYmFsL3R5cGVkcmVxdWVzdC90cy9jbGFzc2VzLnR5cGVkcm91dGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AYXBpLmdsb2JhbCt0eXBlZHJlcXVlc3RAMy4yLjUvbm9kZV9tb2R1bGVzL0BhcGkuZ2xvYmFsL3R5cGVkcmVxdWVzdC90cy9jbGFzc2VzLnZpcnR1YWxzdHJlYW0udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BhcGkuZ2xvYmFsK3R5cGVkcmVxdWVzdEAzLjIuNS9ub2RlX21vZHVsZXMvQGFwaS5nbG9iYWwvdHlwZWRyZXF1ZXN0L3RzL2NsYXNzZXMudHlwZWR0YXJnZXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BhcGkuZ2xvYmFsK3R5cGVkcmVxdWVzdEAzLjIuNS9ub2RlX21vZHVsZXMvQGFwaS5nbG9iYWwvdHlwZWRyZXF1ZXN0L3RzL2NsYXNzZXMudHlwZWRyZXF1ZXN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AYXBpLmdsb2JhbCt0eXBlZHJlcXVlc3RAMy4yLjUvbm9kZV9tb2R1bGVzL0BhcGkuZ2xvYmFsL3R5cGVkcmVxdWVzdC90cy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vYnJvYWRjYXN0LWNoYW5uZWxANy4yLjAvbm9kZV9tb2R1bGVzL2Jyb2FkY2FzdC1jaGFubmVsL2Rpc3QvZXNicm93c2VyL3V0aWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Jyb2FkY2FzdC1jaGFubmVsQDcuMi4wL25vZGVfbW9kdWxlcy9icm9hZGNhc3QtY2hhbm5lbC9kaXN0L2VzYnJvd3Nlci9tZXRob2RzL25hdGl2ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vb2JsaXZpb3VzLXNldEAyLjAuMC9ub2RlX21vZHVsZXMvb2JsaXZpb3VzLXNldC9zcmMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Jyb2FkY2FzdC1jaGFubmVsQDcuMi4wL25vZGVfbW9kdWxlcy9icm9hZGNhc3QtY2hhbm5lbC9kaXN0L2VzYnJvd3Nlci9vcHRpb25zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9icm9hZGNhc3QtY2hhbm5lbEA3LjIuMC9ub2RlX21vZHVsZXMvYnJvYWRjYXN0LWNoYW5uZWwvZGlzdC9lc2Jyb3dzZXIvbWV0aG9kcy9pbmRleGVkLWRiLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9icm9hZGNhc3QtY2hhbm5lbEA3LjIuMC9ub2RlX21vZHVsZXMvYnJvYWRjYXN0LWNoYW5uZWwvZGlzdC9lc2Jyb3dzZXIvbWV0aG9kcy9sb2NhbHN0b3JhZ2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Jyb2FkY2FzdC1jaGFubmVsQDcuMi4wL25vZGVfbW9kdWxlcy9icm9hZGNhc3QtY2hhbm5lbC9kaXN0L2VzYnJvd3Nlci9tZXRob2RzL3NpbXVsYXRlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9icm9hZGNhc3QtY2hhbm5lbEA3LjIuMC9ub2RlX21vZHVsZXMvYnJvYWRjYXN0LWNoYW5uZWwvZGlzdC9lc2Jyb3dzZXIvbWV0aG9kLWNob29zZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Jyb2FkY2FzdC1jaGFubmVsQDcuMi4wL25vZGVfbW9kdWxlcy9icm9hZGNhc3QtY2hhbm5lbC9kaXN0L2VzYnJvd3Nlci9icm9hZGNhc3QtY2hhbm5lbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdW5sb2FkQDIuNC4xL25vZGVfbW9kdWxlcy91bmxvYWQvZGlzdC9lcy9icm93c2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS91bmxvYWRAMi40LjEvbm9kZV9tb2R1bGVzL3VubG9hZC9kaXN0L2VzL25vZGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3VubG9hZEAyLjQuMS9ub2RlX21vZHVsZXMvdW5sb2FkL2Rpc3QvZXMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Jyb2FkY2FzdC1jaGFubmVsQDcuMi4wL25vZGVfbW9kdWxlcy9icm9hZGNhc3QtY2hhbm5lbC9kaXN0L2VzYnJvd3Nlci9sZWFkZXItZWxlY3Rpb24tdXRpbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vYnJvYWRjYXN0LWNoYW5uZWxANy4yLjAvbm9kZV9tb2R1bGVzL2Jyb2FkY2FzdC1jaGFubmVsL2Rpc3QvZXNicm93c2VyL2xlYWRlci1lbGVjdGlvbi13ZWItbG9jay5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vYnJvYWRjYXN0LWNoYW5uZWxANy4yLjAvbm9kZV9tb2R1bGVzL2Jyb2FkY2FzdC1jaGFubmVsL2Rpc3QvZXNicm93c2VyL2xlYWRlci1lbGVjdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vYnJvYWRjYXN0LWNoYW5uZWxANy4yLjAvbm9kZV9tb2R1bGVzL2Jyb2FkY2FzdC1jaGFubmVsL2Rpc3QvZXNicm93c2VyL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNvbW1zQDEuMC4zMC9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jb21tcy90cy9kZWVzLWNvbW1zLnBsdWdpbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY29tbXNAMS4wLjMwL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNvbW1zL3RzL2RlZXMtY29tbXMuY2xhc3Nlcy5kZWVzY29tbXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY29tbXNAMS4wLjMwL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNvbW1zL3RzL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9qcy15YW1sQDMuMTQuMi9ub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9jb21tb24uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2pzLXlhbWxAMy4xNC4yL25vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL2V4Y2VwdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvbWFyay5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9qcy15YW1sQDMuMTQuMi9ub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL3N0ci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9zZXEuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2pzLXlhbWxAMy4xNC4yL25vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvbWFwLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9qcy15YW1sQDMuMTQuMi9ub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9zY2hlbWEvZmFpbHNhZmUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2pzLXlhbWxAMy4xNC4yL25vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvbnVsbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9ib29sLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9qcy15YW1sQDMuMTQuMi9ub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL2ludC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9mbG9hdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hL2pzb24uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2pzLXlhbWxAMy4xNC4yL25vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3NjaGVtYS9jb3JlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9qcy15YW1sQDMuMTQuMi9ub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL3RpbWVzdGFtcC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9tZXJnZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9iaW5hcnkuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2pzLXlhbWxAMy4xNC4yL25vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvb21hcC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9wYWlycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9zZXQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2pzLXlhbWxAMy4xNC4yL25vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X3NhZmUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2pzLXlhbWxAMy4xNC4yL25vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvanMvdW5kZWZpbmVkLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9qcy15YW1sQDMuMTQuMi9ub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL2pzL3JlZ2V4cC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9qcy9mdW5jdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hL2RlZmF1bHRfZnVsbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vanMteWFtbEAzLjE0LjIvbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvbG9hZGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9qcy15YW1sQDMuMTQuMi9ub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9kdW1wZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2pzLXlhbWxAMy4xNC4yL25vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9qcy15YW1sQDMuMTQuMi9ub2RlX21vZHVsZXMvanMteWFtbC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnR5YW1sQDIuMC41L25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHlhbWwvdHMvc21hcnR5YW1sLnBsdWdpbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0eWFtbEAyLjAuNS9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnR5YW1sL3RzL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9iYWlsQDIuMC4yL25vZGVfbW9kdWxlcy9iYWlsL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9leHRlbmRAMy4wLjIvbm9kZV9tb2R1bGVzL2V4dGVuZC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGV2bG9wQDEuMS4wL25vZGVfbW9kdWxlcy9kZXZsb3AvbGliL2RlZmF1bHQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2lzLXBsYWluLW9iakA0LjEuMC9ub2RlX21vZHVsZXMvaXMtcGxhaW4tb2JqL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS90cm91Z2hAMi4yLjAvbm9kZV9tb2R1bGVzL3Ryb3VnaC9saWIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3Ryb3VnaEAyLjIuMC9ub2RlX21vZHVsZXMvdHJvdWdoL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS91bmlzdC11dGlsLXN0cmluZ2lmeS1wb3NpdGlvbkA0LjAuMC9ub2RlX21vZHVsZXMvdW5pc3QtdXRpbC1zdHJpbmdpZnktcG9zaXRpb24vbGliL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS91bmlzdC11dGlsLXN0cmluZ2lmeS1wb3NpdGlvbkA0LjAuMC9ub2RlX21vZHVsZXMvdW5pc3QtdXRpbC1zdHJpbmdpZnktcG9zaXRpb24vaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3ZmaWxlLW1lc3NhZ2VANC4wLjMvbm9kZV9tb2R1bGVzL3ZmaWxlLW1lc3NhZ2UvbGliL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS92ZmlsZS1tZXNzYWdlQDQuMC4zL25vZGVfbW9kdWxlcy92ZmlsZS1tZXNzYWdlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS92ZmlsZUA2LjAuMy9ub2RlX21vZHVsZXMvdmZpbGUvbGliL21pbnBhdGguYnJvd3Nlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdmZpbGVANi4wLjMvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wcm9jLmJyb3dzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3ZmaWxlQDYuMC4zL25vZGVfbW9kdWxlcy92ZmlsZS9saWIvbWludXJsLnNoYXJlZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdmZpbGVANi4wLjMvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuYnJvd3Nlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdmZpbGVANi4wLjMvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdmZpbGVANi4wLjMvbm9kZV9tb2R1bGVzL3ZmaWxlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS91bmlmaWVkQDExLjAuNS9ub2RlX21vZHVsZXMvdW5pZmllZC9saWIvY2FsbGFibGUtaW5zdGFuY2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3VuaWZpZWRAMTEuMC41L25vZGVfbW9kdWxlcy91bmlmaWVkL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdW5pZmllZEAxMS4wLjUvbm9kZV9tb2R1bGVzL3VuaWZpZWQvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Njb3VudEAyLjAuMS9ub2RlX21vZHVsZXMvY2NvdW50L2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstdXRpbC1jaGFyYWN0ZXJAMi4xLjEvbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWNoYXJhY3Rlci9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdW5pc3QtdXRpbC1pc0A2LjAuMS9ub2RlX21vZHVsZXMvdW5pc3QtdXRpbC1pcy9saWIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3VuaXN0LXV0aWwtaXNANi4wLjEvbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtaXMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50c0A2LjAuMi9ub2RlX21vZHVsZXMvdW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzL2xpYi9jb2xvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzQDYuMC4yL25vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS91bmlzdC11dGlsLXZpc2l0LXBhcmVudHNANi4wLjIvbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC1maW5kLWFuZC1yZXBsYWNlQDMuMC4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLWZpbmQtYW5kLXJlcGxhY2UvbGliL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLWZpbmQtYW5kLXJlcGxhY2VAMy4wLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZmluZC1hbmQtcmVwbGFjZS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC1nZm0tYXV0b2xpbmstbGl0ZXJhbEAyLjAuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1nZm0tYXV0b2xpbmstbGl0ZXJhbC9saWIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtZ2ZtLWF1dG9saW5rLWxpdGVyYWxAMi4wLjEvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLWF1dG9saW5rLWxpdGVyYWwvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay11dGlsLW5vcm1hbGl6ZS1pZGVudGlmaWVyQDIuMC4xL25vZGVfbW9kdWxlcy9taWNyb21hcmstdXRpbC1ub3JtYWxpemUtaWRlbnRpZmllci9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC1nZm0tZm9vdG5vdGVAMi4xLjAvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLWZvb3Rub3RlL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC1nZm0tZm9vdG5vdGVAMi4xLjAvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLWZvb3Rub3RlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLWdmbS1zdHJpa2V0aHJvdWdoQDIuMC4wL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLWdmbS1zdHJpa2V0aHJvdWdoL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC1nZm0tc3RyaWtldGhyb3VnaEAyLjAuMC9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1nZm0tc3RyaWtldGhyb3VnaC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWFya2Rvd24tdGFibGVAMy4wLjQvbm9kZV9tb2R1bGVzL21hcmtkb3duLXRhYmxlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS96d2l0Y2hAMi4wLjQvbm9kZV9tb2R1bGVzL3p3aXRjaC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvY29uZmlndXJlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi9oYW5kbGUvYmxvY2txdW90ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9wYXR0ZXJuLWluLXNjb3BlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi9oYW5kbGUvYnJlYWsuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2xvbmdlc3Qtc3RyZWFrQDMuMS4wL25vZGVfbW9kdWxlcy9sb25nZXN0LXN0cmVhay9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9mb3JtYXQtY29kZS1hcy1pbmRlbnRlZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9jaGVjay1mZW5jZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2NvZGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stcXVvdGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9kZWZpbml0aW9uLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL2NoZWNrLWVtcGhhc2lzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL2VuY29kZS1jaGFyYWN0ZXItcmVmZXJlbmNlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstdXRpbC1jbGFzc2lmeS1jaGFyYWN0ZXJAMi4wLjEvbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWNsYXNzaWZ5LWNoYXJhY3Rlci9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9lbmNvZGUtaW5mby5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2VtcGhhc2lzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS91bmlzdC11dGlsLXZpc2l0QDUuMC4wL25vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0L2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdW5pc3QtdXRpbC12aXNpdEA1LjAuMC9ub2RlX21vZHVsZXMvdW5pc3QtdXRpbC12aXNpdC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1zdHJpbmdANC4wLjAvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tc3RyaW5nL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1zdHJpbmdANC4wLjAvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tc3RyaW5nL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL2Zvcm1hdC1oZWFkaW5nLWFzLXNldGV4dC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2hlYWRpbmcuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9odG1sLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi9oYW5kbGUvaW1hZ2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9pbWFnZS1yZWZlcmVuY2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9pbmxpbmUtY29kZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9mb3JtYXQtbGluay1hcy1hdXRvbGluay5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL2xpbmsuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9saW5rLXJlZmVyZW5jZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9jaGVjay1idWxsZXQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY2hlY2stYnVsbGV0LW90aGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL2NoZWNrLWJ1bGxldC1vcmRlcmVkLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL2NoZWNrLXJ1bGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9saXN0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL2NoZWNrLWxpc3QtaXRlbS1pbmRlbnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9saXN0LWl0ZW0uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9wYXJhZ3JhcGguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtcGhyYXNpbmdANC4xLjAvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtcGhyYXNpbmcvbGliL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXBocmFzaW5nQDQuMS4wL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXBocmFzaW5nL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi9oYW5kbGUvcm9vdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9jaGVjay1zdHJvbmcuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS9zdHJvbmcuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2hhbmRsZS90ZXh0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL2NoZWNrLXJ1bGUtcmVwZXRpdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvaGFuZGxlL3RoZW1hdGljLWJyZWFrLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi9oYW5kbGUvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL2pvaW4uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3Vuc2FmZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZGVjb2RlLW5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VAMS4yLjAvbm9kZV9tb2R1bGVzL2RlY29kZS1uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlL2luZGV4LmRvbS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLXV0aWwtZGVjb2RlLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZUAyLjAuMi9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtZGVjb2RlLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLXV0aWwtZGVjb2RlLXN0cmluZ0AyLjAuMS9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtZGVjb2RlLXN0cmluZy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9hc3NvY2lhdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9jb21waWxlLXBhdHRlcm4uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8tbWFya2Rvd25AMi4xLjIvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8tbWFya2Rvd24vbGliL3V0aWwvY29udGFpbmVyLXBocmFzaW5nLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL2NvbnRhaW5lci1mbG93LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL2luZGVudC1saW5lcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9saWIvdXRpbC9zYWZlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi91dGlsL3RyYWNrLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLW1hcmtkb3duQDIuMS4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1tYXJrZG93bkAyLjEuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1tYXJrZG93bi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC1nZm0tdGFibGVAMi4wLjAvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLXRhYmxlL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC1nZm0tdGFibGVAMi4wLjAvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZ2ZtLXRhYmxlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLWdmbS10YXNrLWxpc3QtaXRlbUAyLjAuMC9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1nZm0tdGFzay1saXN0LWl0ZW0vbGliL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLWdmbS10YXNrLWxpc3QtaXRlbUAyLjAuMC9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1nZm0tdGFzay1saXN0LWl0ZW0vaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtZ2ZtQDMuMS4wL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLWdmbS9saWIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtZ2ZtQDMuMS4wL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLWdmbS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLXV0aWwtY2h1bmtlZEAyLjAuMS9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtY2h1bmtlZC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLXV0aWwtY29tYmluZS1leHRlbnNpb25zQDIuMC4xL25vZGVfbW9kdWxlcy9taWNyb21hcmstdXRpbC1jb21iaW5lLWV4dGVuc2lvbnMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWF1dG9saW5rLWxpdGVyYWxAMi4xLjAvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWF1dG9saW5rLWxpdGVyYWwvbGliL3N5bnRheC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLXV0aWwtZW5jb2RlQDIuMC4xL25vZGVfbW9kdWxlcy9taWNyb21hcmstdXRpbC1lbmNvZGUvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaUAyLjAuMS9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtc2FuaXRpemUtdXJpL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS1hdXRvbGluay1saXRlcmFsQDIuMS4wL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS1hdXRvbGluay1saXRlcmFsL2xpYi9odG1sLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS1hdXRvbGluay1saXRlcmFsQDIuMS4wL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS1hdXRvbGluay1saXRlcmFsL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstdXRpbC1yZXNvbHZlLWFsbEAyLjAuMS9ub2RlX21vZHVsZXMvbWljcm9tYXJrLXV0aWwtcmVzb2x2ZS1hbGwvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmtAMi4wLjMvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2F0dGVudGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWNvcmUtY29tbW9ubWFya0AyLjAuMy9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvYXV0b2xpbmsuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1mYWN0b3J5LXNwYWNlQDIuMC4xL25vZGVfbW9kdWxlcy9taWNyb21hcmstZmFjdG9yeS1zcGFjZS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWNvcmUtY29tbW9ubWFya0AyLjAuMy9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvYmxhbmstbGluZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWNvcmUtY29tbW9ubWFya0AyLjAuMy9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvYmxvY2stcXVvdGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmtAMi4wLjMvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2NoYXJhY3Rlci1lc2NhcGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmtAMi4wLjMvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2NoYXJhY3Rlci1yZWZlcmVuY2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmtAMi4wLjMvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2NvZGUtZmVuY2VkLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstY29yZS1jb21tb25tYXJrQDIuMC4zL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9jb2RlLWluZGVudGVkLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstY29yZS1jb21tb25tYXJrQDIuMC4zL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9jb2RlLXRleHQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay11dGlsLXN1YnRva2VuaXplQDIuMS4wL25vZGVfbW9kdWxlcy9taWNyb21hcmstdXRpbC1zdWJ0b2tlbml6ZS9saWIvc3BsaWNlLWJ1ZmZlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLXV0aWwtc3VidG9rZW5pemVAMi4xLjAvbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLXN1YnRva2VuaXplL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstY29yZS1jb21tb25tYXJrQDIuMC4zL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9jb250ZW50LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstZmFjdG9yeS1kZXN0aW5hdGlvbkAyLjAuMS9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWZhY3RvcnktZGVzdGluYXRpb24vaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1mYWN0b3J5LWxhYmVsQDIuMC4xL25vZGVfbW9kdWxlcy9taWNyb21hcmstZmFjdG9yeS1sYWJlbC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWZhY3RvcnktdGl0bGVAMi4wLjEvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1mYWN0b3J5LXRpdGxlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstZmFjdG9yeS13aGl0ZXNwYWNlQDIuMC4xL25vZGVfbW9kdWxlcy9taWNyb21hcmstZmFjdG9yeS13aGl0ZXNwYWNlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstY29yZS1jb21tb25tYXJrQDIuMC4zL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9kZWZpbml0aW9uLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstY29yZS1jb21tb25tYXJrQDIuMC4zL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9oYXJkLWJyZWFrLWVzY2FwZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWNvcmUtY29tbW9ubWFya0AyLjAuMy9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvaGVhZGluZy1hdHguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay11dGlsLWh0bWwtdGFnLW5hbWVAMi4wLjEvbm9kZV9tb2R1bGVzL21pY3JvbWFyay11dGlsLWh0bWwtdGFnLW5hbWUvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmtAMi4wLjMvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2h0bWwtZmxvdy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWNvcmUtY29tbW9ubWFya0AyLjAuMy9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvaHRtbC10ZXh0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstY29yZS1jb21tb25tYXJrQDIuMC4zL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9sYWJlbC1lbmQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmtAMi4wLjMvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2xhYmVsLXN0YXJ0LWltYWdlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstY29yZS1jb21tb25tYXJrQDIuMC4zL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9sYWJlbC1zdGFydC1saW5rLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstY29yZS1jb21tb25tYXJrQDIuMC4zL25vZGVfbW9kdWxlcy9taWNyb21hcmstY29yZS1jb21tb25tYXJrL2xpYi9saW5lLWVuZGluZy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWNvcmUtY29tbW9ubWFya0AyLjAuMy9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWNvcmUtY29tbW9ubWFyay9saWIvdGhlbWF0aWMtYnJlYWsuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmtAMi4wLjMvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL2xpc3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmtAMi4wLjMvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvbGliL3NldGV4dC11bmRlcmxpbmUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmtAMi4wLjMvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWZvb3Rub3RlQDIuMS4wL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS1mb290bm90ZS9saWIvc3ludGF4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS1mb290bm90ZUAyLjEuMC9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGUvbGliL2h0bWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWZvb3Rub3RlQDIuMS4wL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS1mb290bm90ZS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tc3RyaWtldGhyb3VnaEAyLjEuMC9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tc3RyaWtldGhyb3VnaC9saWIvaHRtbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tc3RyaWtldGhyb3VnaEAyLjEuMC9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tc3RyaWtldGhyb3VnaC9saWIvc3ludGF4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS1zdHJpa2V0aHJvdWdoQDIuMS4wL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS1zdHJpa2V0aHJvdWdoL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YWJsZUAyLjEuMS9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFibGUvbGliL2h0bWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhYmxlQDIuMS4xL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YWJsZS9saWIvZWRpdC1tYXAuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhYmxlQDIuMS4xL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YWJsZS9saWIvaW5mZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhYmxlQDIuMS4xL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YWJsZS9saWIvc3ludGF4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YWJsZUAyLjEuMS9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFibGUvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhZ2ZpbHRlckAyLjAuMC9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFnZmlsdGVyL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFnZmlsdGVyQDIuMC4wL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YWdmaWx0ZXIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhc2stbGlzdC1pdGVtQDIuMS4wL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YXNrLWxpc3QtaXRlbS9saWIvaHRtbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFzay1saXN0LWl0ZW1AMi4xLjAvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhc2stbGlzdC1pdGVtL2xpYi9zeW50YXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhc2stbGlzdC1pdGVtQDIuMS4wL25vZGVfbW9kdWxlcy9taWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YXNrLWxpc3QtaXRlbS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWV4dGVuc2lvbi1nZm1AMy4wLjAvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZ2ZtL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yZW1hcmstZ2ZtQDQuMC4xL25vZGVfbW9kdWxlcy9yZW1hcmstZ2ZtL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcmVtYXJrLWdmbUA0LjAuMS9ub2RlX21vZHVsZXMvcmVtYXJrLWdmbS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrQDQuMC4yL25vZGVfbW9kdWxlcy9taWNyb21hcmsvbGliL2NvbXBpbGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFya0A0LjAuMi9ub2RlX21vZHVsZXMvbWljcm9tYXJrL2xpYi9pbml0aWFsaXplL2NvbnRlbnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFya0A0LjAuMi9ub2RlX21vZHVsZXMvbWljcm9tYXJrL2xpYi9pbml0aWFsaXplL2RvY3VtZW50LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmtANC4wLjIvbm9kZV9tb2R1bGVzL21pY3JvbWFyay9saWIvaW5pdGlhbGl6ZS9mbG93LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmtANC4wLjIvbm9kZV9tb2R1bGVzL21pY3JvbWFyay9saWIvaW5pdGlhbGl6ZS90ZXh0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmtANC4wLjIvbm9kZV9tb2R1bGVzL21pY3JvbWFyay9saWIvY29uc3RydWN0cy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrQDQuMC4yL25vZGVfbW9kdWxlcy9taWNyb21hcmsvbGliL2NyZWF0ZS10b2tlbml6ZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFya0A0LjAuMi9ub2RlX21vZHVsZXMvbWljcm9tYXJrL2xpYi9wYXJzZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrQDQuMC4yL25vZGVfbW9kdWxlcy9taWNyb21hcmsvbGliL3Bvc3Rwcm9jZXNzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9taWNyb21hcmtANC4wLjIvbm9kZV9tb2R1bGVzL21pY3JvbWFyay9saWIvcHJlcHJvY2Vzcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrQDQuMC4yL25vZGVfbW9kdWxlcy9taWNyb21hcmsvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bkAyLjAuMi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duQDIuMC4yL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLWZyb20tbWFya2Rvd24vaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3JlbWFyay1wYXJzZUAxMS4wLjAvbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3JlbWFyay1wYXJzZUAxMS4wLjAvbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vZm9ybWF0QDAuMi4yL25vZGVfbW9kdWxlcy9mb3JtYXQvZm9ybWF0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9mYXVsdEAyLjAuMS9ub2RlX21vZHVsZXMvZmF1bHQvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1leHRlbnNpb24tZnJvbnRtYXR0ZXJAMi4wLjAvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZnJvbnRtYXR0ZXIvbGliL3RvLW1hdHRlcnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21pY3JvbWFyay1leHRlbnNpb24tZnJvbnRtYXR0ZXJAMi4wLjAvbm9kZV9tb2R1bGVzL21pY3JvbWFyay1leHRlbnNpb24tZnJvbnRtYXR0ZXIvbGliL3N5bnRheC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWV4dGVuc2lvbi1mcm9udG1hdHRlckAyLjAuMC9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1mcm9udG1hdHRlci9saWIvaHRtbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWljcm9tYXJrLWV4dGVuc2lvbi1mcm9udG1hdHRlckAyLjAuMC9ub2RlX21vZHVsZXMvbWljcm9tYXJrLWV4dGVuc2lvbi1mcm9udG1hdHRlci9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC1mcm9udG1hdHRlckAyLjAuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1mcm9udG1hdHRlci9saWIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtZnJvbnRtYXR0ZXJAMi4wLjEvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtZnJvbnRtYXR0ZXIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3JlbWFyay1mcm9udG1hdHRlckA1LjAuMC9ub2RlX21vZHVsZXMvcmVtYXJrLWZyb250bWF0dGVyL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcmVtYXJrLWZyb250bWF0dGVyQDUuMC4wL25vZGVfbW9kdWxlcy9yZW1hcmstZnJvbnRtYXR0ZXIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B1bmdhcCtzdHJ1Y3R1cmVkLWNsb25lQDEuMy4wL25vZGVfbW9kdWxlcy9AdW5nYXAvc3RydWN0dXJlZC1jbG9uZS9lc20vdHlwZXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B1bmdhcCtzdHJ1Y3R1cmVkLWNsb25lQDEuMy4wL25vZGVfbW9kdWxlcy9AdW5nYXAvc3RydWN0dXJlZC1jbG9uZS9lc20vZGVzZXJpYWxpemUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B1bmdhcCtzdHJ1Y3R1cmVkLWNsb25lQDEuMy4wL25vZGVfbW9kdWxlcy9AdW5nYXAvc3RydWN0dXJlZC1jbG9uZS9lc20vc2VyaWFsaXplLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdW5nYXArc3RydWN0dXJlZC1jbG9uZUAxLjMuMC9ub2RlX21vZHVsZXMvQHVuZ2FwL3N0cnVjdHVyZWQtY2xvbmUvZXNtL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS91bmlzdC11dGlsLXBvc2l0aW9uQDUuMC4wL25vZGVfbW9kdWxlcy91bmlzdC11dGlsLXBvc2l0aW9uL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdW5pc3QtdXRpbC1wb3NpdGlvbkA1LjAuMC9ub2RlX21vZHVsZXMvdW5pc3QtdXRpbC1wb3NpdGlvbi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vaGFzdC11dGlsLXNhbml0aXplQDUuMC4yL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtc2FuaXRpemUvbGliL3NjaGVtYS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vaGFzdC11dGlsLXNhbml0aXplQDUuMC4yL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtc2FuaXRpemUvbGliL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9oYXN0LXV0aWwtc2FuaXRpemVANS4wLjIvbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1zYW5pdGl6ZS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9ibG9ja3F1b3RlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2JyZWFrLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2NvZGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8taGFzdEAxMy4yLjEvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvZGVsZXRlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2VtcGhhc2lzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2Zvb3Rub3RlLXJlZmVyZW5jZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9oZWFkaW5nLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2h0bWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8taGFzdEAxMy4yLjEvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvcmV2ZXJ0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2ltYWdlLXJlZmVyZW5jZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9pbWFnZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9pbmxpbmUtY29kZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9saW5rLXJlZmVyZW5jZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9saW5rLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2xpc3QtaXRlbS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9saXN0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL3BhcmFncmFwaC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9yb290LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL3N0cm9uZy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy90YWJsZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy90YWJsZS1yb3cuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL21kYXN0LXV0aWwtdG8taGFzdEAxMy4yLjEvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvdGFibGUtY2VsbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdHJpbS1saW5lc0AzLjAuMS9ub2RlX21vZHVsZXMvdHJpbS1saW5lcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy90ZXh0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL3RoZW1hdGljLWJyZWFrLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9tZGFzdC11dGlsLXRvLWhhc3RAMTMuMi4xL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2Zvb3Rlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9zdGF0ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbWRhc3QtdXRpbC10by1oYXN0QDEzLjIuMS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9odG1sLXZvaWQtZWxlbWVudHNAMy4wLjAvbm9kZV9tb2R1bGVzL2h0bWwtdm9pZC1lbGVtZW50cy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcHJvcGVydHktaW5mb3JtYXRpb25ANy4xLjAvbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3NjaGVtYS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcHJvcGVydHktaW5mb3JtYXRpb25ANy4xLjAvbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL21lcmdlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9wcm9wZXJ0eS1pbmZvcm1hdGlvbkA3LjEuMC9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL25vcm1hbGl6ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcHJvcGVydHktaW5mb3JtYXRpb25ANy4xLjAvbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2luZm8uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3Byb3BlcnR5LWluZm9ybWF0aW9uQDcuMS4wL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC90eXBlcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcHJvcGVydHktaW5mb3JtYXRpb25ANy4xLjAvbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2RlZmluZWQtaW5mby5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcHJvcGVydHktaW5mb3JtYXRpb25ANy4xLjAvbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2NyZWF0ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcHJvcGVydHktaW5mb3JtYXRpb25ANy4xLjAvbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9hcmlhLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9wcm9wZXJ0eS1pbmZvcm1hdGlvbkA3LjEuMC9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvY2FzZS1zZW5zaXRpdmUtdHJhbnNmb3JtLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9wcm9wZXJ0eS1pbmZvcm1hdGlvbkA3LjEuMC9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvY2FzZS1pbnNlbnNpdGl2ZS10cmFuc2Zvcm0uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3Byb3BlcnR5LWluZm9ybWF0aW9uQDcuMS4wL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaHRtbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcHJvcGVydHktaW5mb3JtYXRpb25ANy4xLjAvbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9zdmcuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3Byb3BlcnR5LWluZm9ybWF0aW9uQDcuMS4wL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveGxpbmsuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3Byb3BlcnR5LWluZm9ybWF0aW9uQDcuMS4wL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sbnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3Byb3BlcnR5LWluZm9ybWF0aW9uQDcuMS4wL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9wcm9wZXJ0eS1pbmZvcm1hdGlvbkA3LjEuMC9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL2hhc3QtdG8tcmVhY3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3Byb3BlcnR5LWluZm9ybWF0aW9uQDcuMS4wL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvZmluZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcHJvcGVydHktaW5mb3JtYXRpb25ANy4xLjAvbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHJpbmdpZnktZW50aXRpZXNANC4wLjQvbm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvY29yZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vc3RyaW5naWZ5LWVudGl0aWVzQDQuMC40L25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvdG8taGV4YWRlY2ltYWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0cmluZ2lmeS1lbnRpdGllc0A0LjAuNC9ub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi91dGlsL3RvLWRlY2ltYWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3lAMy4wLjAvbm9kZV9tb2R1bGVzL2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3kvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NoYXJhY3Rlci1lbnRpdGllcy1odG1sNEAyLjEuMC9ub2RlX21vZHVsZXMvY2hhcmFjdGVyLWVudGl0aWVzLWh0bWw0L2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHJpbmdpZnktZW50aXRpZXNANC4wLjQvbm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvY29uc3RhbnQvZGFuZ2Vyb3VzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHJpbmdpZnktZW50aXRpZXNANC4wLjQvbm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvdXRpbC90by1uYW1lZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vc3RyaW5naWZ5LWVudGl0aWVzQDQuMC40L25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvZm9ybWF0LXNtYXJ0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHJpbmdpZnktZW50aXRpZXNANC4wLjQvbm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvdXRpbC9mb3JtYXQtYmFzaWMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0cmluZ2lmeS1lbnRpdGllc0A0LjAuNC9ub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vc3RyaW5naWZ5LWVudGl0aWVzQDQuMC40L25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2hhc3QtdXRpbC10by1odG1sQDkuMC41L25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2NvbW1lbnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2hhc3QtdXRpbC10by1odG1sQDkuMC41L25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2RvY3R5cGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbW1hLXNlcGFyYXRlZC10b2tlbnNAMi4wLjMvbm9kZV9tb2R1bGVzL2NvbW1hLXNlcGFyYXRlZC10b2tlbnMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3NwYWNlLXNlcGFyYXRlZC10b2tlbnNAMi4wLjIvbm9kZV9tb2R1bGVzL3NwYWNlLXNlcGFyYXRlZC10b2tlbnMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2hhc3QtdXRpbC13aGl0ZXNwYWNlQDMuMC4wL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtd2hpdGVzcGFjZS9saWIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2hhc3QtdXRpbC13aGl0ZXNwYWNlQDMuMC4wL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtd2hpdGVzcGFjZS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vaGFzdC11dGlsLXRvLWh0bWxAOS4wLjUvbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9vbWlzc2lvbi91dGlsL3NpYmxpbmdzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9oYXN0LXV0aWwtdG8taHRtbEA5LjAuNS9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL29taXNzaW9uLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9oYXN0LXV0aWwtdG8taHRtbEA5LjAuNS9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL2Nsb3NpbmcuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2hhc3QtdXRpbC10by1odG1sQDkuMC41L25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vb3BlbmluZy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vaGFzdC11dGlsLXRvLWh0bWxAOS4wLjUvbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZWxlbWVudC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vaGFzdC11dGlsLXRvLWh0bWxAOS4wLjUvbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvdGV4dC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vaGFzdC11dGlsLXRvLWh0bWxAOS4wLjUvbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvcmF3LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9oYXN0LXV0aWwtdG8taHRtbEA5LjAuNS9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS9yb290LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9oYXN0LXV0aWwtdG8taHRtbEA5LjAuNS9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vaGFzdC11dGlsLXRvLWh0bWxAOS4wLjUvbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vaGFzdC11dGlsLXRvLWh0bWxAOS4wLjUvbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yZW1hcmstaHRtbEAxNi4wLjEvbm9kZV9tb2R1bGVzL3JlbWFyay1odG1sL2xpYi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcmVtYXJrLWh0bWxAMTYuMC4xL25vZGVfbW9kdWxlcy9yZW1hcmstaHRtbC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vcmVtYXJrLXN0cmluZ2lmeUAxMS4wLjAvbm9kZV9tb2R1bGVzL3JlbWFyay1zdHJpbmdpZnkvbGliL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9yZW1hcmstc3RyaW5naWZ5QDExLjAuMC9ub2RlX21vZHVsZXMvcmVtYXJrLXN0cmluZ2lmeS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vdHVybmRvd25ANy4yLjIvbm9kZV9tb2R1bGVzL3R1cm5kb3duL2xpYi90dXJuZG93bi5icm93c2VyLmVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS90dXJuZG93bi1wbHVnaW4tZ2ZtQDEuMC4yL25vZGVfbW9kdWxlcy90dXJuZG93bi1wbHVnaW4tZ2ZtL2xpYi90dXJuZG93bi1wbHVnaW4tZ2ZtLmVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydG1hcmtkb3duQDMuMC4zL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydG1hcmtkb3duL3RzL3NtYXJ0bWFya2Rvd24ucGx1Z2lucy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRtYXJrZG93bkAzLjAuMy9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRtYXJrZG93bi90cy9zbWFydG1hcmtkb3duLmNsYXNzZXMubWRwYXJzZWRyZXN1bHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0bWFya2Rvd25AMy4wLjMvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0bWFya2Rvd24vdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3BhdGgtdG8tcmVnZXhwQDguMy4wL25vZGVfbW9kdWxlcy9wYXRoLXRvLXJlZ2V4cC9zcmMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0cm91dGVyQDEuMy4zL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHJvdXRlci90cy9zbWFydHJvdXRlci5wbHVnaW5zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHJvdXRlckAxLjMuMy9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRyb3V0ZXIvdHMvc21hcnRyb3V0ZXIuY2xhc3Nlcy5xdWVyeXBhcmFtcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRyb3V0ZXJAMS4zLjMvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0cm91dGVyL3RzL3NtYXJ0cm91dGVyLmNsYXNzZXMuc21hcnRyb3V0ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0cm91dGVyQDEuMy4zL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHJvdXRlci90cy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRoYXNoQDMuMi42L25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydGhhc2gvdHNfd2ViL3BsdWdpbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0aGFzaEAzLjIuNi9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRoYXNoL3RzX3dlYi9zaGEyNTYuZmFsbGJhY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0aGFzaEAzLjIuNi9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRoYXNoL3RzX3dlYi9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnRzdGF0ZUAyLjAuMjcvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0c3RhdGUvdHMvc21hcnRzdGF0ZS5wbHVnaW5zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHN0YXRlQDIuMC4yNy9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRzdGF0ZS90cy9zbWFydHN0YXRlLmNsYXNzZXMuc3RhdGVhY3Rpb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0c3RhdGVAMi4wLjI3L25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHN0YXRlL3RzL3NtYXJ0c3RhdGUuY2xhc3Nlcy5zdGF0ZXBhcnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0c3RhdGVAMi4wLjI3L25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHN0YXRlL3RzL3NtYXJ0c3RhdGUuY2xhc3Nlcy5zbWFydHN0YXRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytzbWFydHN0YXRlQDIuMC4yNy9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvc21hcnRzdGF0ZS90cy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnR1cmxAMy4xLjAvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0dXJsL2Rpc3RfdHMvc21hcnR1cmwucGx1Z2lucy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrc21hcnR1cmxAMy4xLjAvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3NtYXJ0dXJsL3RzL3NtYXJ0dXJsLmNsYXNzZXMuc21hcnR1cmwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3NtYXJ0dXJsQDMuMS4wL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9zbWFydHVybC90cy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2hyb2NrcytzbWFydHByb21pc2VANC4wLjIvbm9kZV9tb2R1bGVzL0BwdXNocm9ja3Mvc21hcnRwcm9taXNlL3RzL3NtYXJ0cHJvbWlzZS5jbGFzc2VzLmRlZmVycmVkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaHJvY2tzK3NtYXJ0cHJvbWlzZUA0LjAuMi9ub2RlX21vZHVsZXMvQHB1c2hyb2Nrcy9zbWFydHByb21pc2UvdHMvc21hcnRwcm9taXNlLmNsYXNzZXMuY3VtdWxhdGl2ZWRlZmVycmVkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaHJvY2tzK3NtYXJ0cHJvbWlzZUA0LjAuMi9ub2RlX21vZHVsZXMvQHB1c2hyb2Nrcy9zbWFydHByb21pc2UvdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNocm9ja3Mrc21hcnRkZWxheUAzLjAuMS9ub2RlX21vZHVsZXMvQHB1c2hyb2Nrcy9zbWFydGRlbGF5L3RzL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvYnVzaW5lc3MvYWRkcmVzcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy90cy9idXNpbmVzcy9jb21wYW55LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL2J1c2luZXNzL2NvbnRhY3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvZmluYW5jZS9jaGVja2luZ2FjY291bnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvZGlzdF90cy9maW5hbmNlL2N1cnJlbmN5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL2ZpbmFuY2UvZXhwZW5zZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy90cy9maW5hbmNlL2ludm9pY2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvZGlzdF90cy9maW5hbmNlL3BheW1lbnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvZGlzdF90cy9maW5hbmNlL3RyYW5zYWN0aW9uLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL2ZpbmFuY2UvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvYnVzaW5lc3Mvam9iLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvZGF0YWJhc2UvbW9uZ29kZXNjcmlwdG9yLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvZGF0YWJhc2Uvb2JqZWN0YWN0aW9uLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvZGF0YWJhc2Uvb2JqZWN0c3RhdHVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvZGF0YWJhc2Uvd3JhcHBlZGRhdGEuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvZGF0YWJhc2UvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvYnVzaW5lc3MvbGV0dGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvYnVzaW5lc3MvcGRmLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL2J1c2luZXNzL3BlcnNvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy9kaXN0X3RzL2J1c2luZXNzL3Byb2plY3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvYnVzaW5lc3MvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvZGlzdF90cy9jb2RlL2NvbW1pdGluZm8uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvZGlzdF90cy9jb2RlL3N0YXR1c29iamVjdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy90cy9jb2RlL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvY29udGFpbmVyL2NvbnRhaW5lci5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy9kaXN0X3RzL2NvbnRhaW5lci92b2x1bWVtb3VudC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy90cy9jb250YWluZXIvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvY29udGVudC9hcnRpY2xlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL2NvbnRlbnQvYXV0aG9yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL2NvbnRlbnQvZG9jdW1lbnRhdGlvbnNldC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy90cy9jb250ZW50L2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvZ2VuZXJhbC9kYXRlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvZ2VuZXJhbC90aW1lLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL2dlbmVyYWwvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvZGlzdF90cy9uZXR3b3JrL2NlcnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvbmV0d29yay9jbmFtZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy9kaXN0X3RzL25ldHdvcmsvZGV2aWNlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvbmV0d29yay9kbnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvZGlzdF90cy9uZXR3b3JrL2Ruc2NoYWxsZW5nZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy9kaXN0X3RzL25ldHdvcmsvZG9tYWluZGVsZWdhdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy9kaXN0X3RzL25ldHdvcmsvand0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvbmV0d29yay9uZXR3b3Jrbm9kZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy9kaXN0X3RzL25ldHdvcmsvcmVxdWVzdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy9kaXN0X3RzL25ldHdvcmsvcmV2ZXJzZXByb3h5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvbmV0d29yay9zc2guanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvbmV0d29yay9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy90cy9zYWFzL3Byb2R1Y3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvc2Fhcy9zdWJzY3JpcHRpb25wbGFuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL3NhYXMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvZGlzdF90cy9zdG9yYWdlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvd2Vic2l0ZS9saW5rLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL2Rpc3RfdHMvd2Vic2l0ZS9tZW51aXRlbS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A0LjQuNC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy9kaXN0X3RzL3dlYnNpdGUvbGlua2Jsb2NrLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDQuNC40L25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL3dlYnNpdGUvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvZGlzdF90cy90eXBlZmVzdC5vd24uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NANC40LjQvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3dlYnNldHVwQDMuMC4xOS9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvd2Vic2V0dXAvdHMvd2Vic2V0dXAucGx1Z2lucy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrd2Vic2V0dXBAMy4wLjE5L25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy93ZWJzZXR1cC90cy9pbnRlcmZhY2VzL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2Nrcyt3ZWJzZXR1cEAzLjAuMTkvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3dlYnNldHVwL3RzL3dlYnNldHVwLmNsYXNzZXMudGFnLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2Nrcyt3ZWJzZXR1cEAzLjAuMTkvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3dlYnNldHVwL3RzL3dlYnNldHVwLmNsYXNzZXMudGFnLmpzb25sZHRhZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrd2Vic2V0dXBAMy4wLjE5L25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy93ZWJzZXR1cC90cy93ZWJzZXR1cC5jbGFzc2VzLnRhZy5vcGVuZ3JhcGh0YWcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3dlYnNldHVwQDMuMC4xOS9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvd2Vic2V0dXAvdHMvd2Vic2V0dXAuY2xhc3Nlcy50YWdsZXZlbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrd2Vic2V0dXBAMy4wLjE5L25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy93ZWJzZXR1cC90cy93ZWJzZXR1cC5jbGFzc2VzLnRhZy5tZXRhdGFnLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2Nrcyt3ZWJzZXR1cEAzLjAuMTkvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3dlYnNldHVwL3RzL3dlYnNldHVwLmNsYXNzZXMudGFnbWFuYWdlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3Mrd2Vic2V0dXBAMy4wLjE5L25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy93ZWJzZXR1cC90cy93ZWJzZXR1cC5jbGFzc2VzLndlYnNldHVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2Nrcyt3ZWJzZXR1cEAzLjAuMTkvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL3dlYnNldHVwL3RzL3dlYnNldHVwLmNsYXNzZXMudGl0bGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK3dlYnNldHVwQDMuMC4xOS9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3Mvd2Vic2V0dXAvdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BwdXNoLnJvY2tzK2xpa0A2LjIuMi9ub2RlX21vZHVsZXMvQHB1c2gucm9ja3MvbGlrL3RzL2xpay5wbHVnaW5zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AcHVzaC5yb2NrcytsaWtANi4yLjIvbm9kZV9tb2R1bGVzL0BwdXNoLnJvY2tzL2xpay90cy9saWsuZmFzdG1hcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3MrbGlrQDYuMi4yL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9saWsvdHMvbGlrLm9iamVjdG1hcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHB1c2gucm9ja3MrbGlrQDYuMi4yL25vZGVfbW9kdWxlcy9AcHVzaC5yb2Nrcy9saWsvdHMvbGlrLnN0cmluZ21hcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRlbXBmaXgrbGVuaXNAMS4zLjE3L25vZGVfbW9kdWxlcy9AdGVtcGZpeC9sZW5pcy9wYWNrYWdlLmpzb24iLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0ZW1wZml4K2xlbmlzQDEuMy4xNy9ub2RlX21vZHVsZXMvQHRlbXBmaXgvbGVuaXMvcGFja2FnZXMvY29yZS9zcmMvbWF0aHMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0ZW1wZml4K2xlbmlzQDEuMy4xNy9ub2RlX21vZHVsZXMvQHRlbXBmaXgvbGVuaXMvcGFja2FnZXMvY29yZS9zcmMvYW5pbWF0ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRlbXBmaXgrbGVuaXNAMS4zLjE3L25vZGVfbW9kdWxlcy9AdGVtcGZpeC9sZW5pcy9wYWNrYWdlcy9jb3JlL3NyYy9kZWJvdW5jZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRlbXBmaXgrbGVuaXNAMS4zLjE3L25vZGVfbW9kdWxlcy9AdGVtcGZpeC9sZW5pcy9wYWNrYWdlcy9jb3JlL3NyYy9kaW1lbnNpb25zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdGVtcGZpeCtsZW5pc0AxLjMuMTcvbm9kZV9tb2R1bGVzL0B0ZW1wZml4L2xlbmlzL3BhY2thZ2VzL2NvcmUvc3JjL2VtaXR0ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0ZW1wZml4K2xlbmlzQDEuMy4xNy9ub2RlX21vZHVsZXMvQHRlbXBmaXgvbGVuaXMvcGFja2FnZXMvY29yZS9zcmMvdmlydHVhbC1zY3JvbGwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0ZW1wZml4K2xlbmlzQDEuMy4xNy9ub2RlX21vZHVsZXMvQHRlbXBmaXgvbGVuaXMvcGFja2FnZXMvY29yZS9zcmMvbGVuaXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N3ZWV0LXNjcm9sbEA0LjAuMC9ub2RlX21vZHVsZXMvc3dlZXQtc2Nyb2xsL3N3ZWV0LXNjcm9sbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1kb210b29sc0AyLjMuNy9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scy90cy9kb210b29scy5wbHVnaW5zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWRvbXRvb2xzQDIuMy43L25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzL3RzL2RvbXRvb2xzLmNzcy5icmVha3BvaW50cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1kb210b29sc0AyLjMuNy9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scy90cy9kb210b29scy5jbGFzc2VzLnNjcm9sbGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWRvbXRvb2xzQDIuMy43L25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzL3RzL2RvbXRvb2xzLmNsYXNzZXMudGhlbWVtYW5hZ2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWRvbXRvb2xzQDIuMy43L25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzL3RzL2RvbXRvb2xzLmNsYXNzZXMua2V5Ym9hcmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtZG9tdG9vbHNAMi4zLjcvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMvdHMvZG9tdG9vbHMuY2xhc3Nlcy5kb210b29scy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1kb210b29sc0AyLjMuNy9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scy90cy9kb210b29scy5jc3MuYmFzZXN0eWxlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1kb210b29sc0AyLjMuNy9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scy90cy9kb210b29scy5lbGVtZW50YmFzaWMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtZG9tdG9vbHNAMi4zLjcvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMvdHMvZG9tdG9vbHMuY3NzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWRvbXRvb2xzQDIuMy43L25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzL3RzL2RvbXRvb2xzLnBsdWdpbmV4cG9ydHMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtZG9tdG9vbHNAMi4zLjcvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMvdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtZWxlbWVudEAyLjEuNS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50L3RzL3BsdWdpbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtZWxlbWVudEAyLjEuNS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50L3RzL2NsYXNzZXMuY3NzbWFuYWdlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0LWh0bWxAMy4zLjIvbm9kZV9tb2R1bGVzL2xpdC1odG1sL3NyYy9zdGF0aWMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2xpdEAzLjMuMi9ub2RlX21vZHVsZXMvbGl0L3N0YXRpYy1odG1sLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9saXQtaHRtbEAzLjMuMi9ub2RlX21vZHVsZXMvbGl0LWh0bWwvc3JjL2RpcmVjdGl2ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0LWh0bWxAMy4zLjIvbm9kZV9tb2R1bGVzL2xpdC1odG1sL3NyYy9kaXJlY3RpdmVzL3Vuc2FmZS1odG1sLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9saXRAMy4zLjIvbm9kZV9tb2R1bGVzL2xpdC9kaXJlY3RpdmVzL3Vuc2FmZS1odG1sLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AbGl0K3JlYWN0aXZlLWVsZW1lbnRAMi4xLjIvbm9kZV9tb2R1bGVzL0BsaXQvcmVhY3RpdmUtZWxlbWVudC9zcmMvZGVjb3JhdG9ycy9jdXN0b20tZWxlbWVudC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0QDMuMy4yL25vZGVfbW9kdWxlcy9saXQvZGVjb3JhdG9ycy9jdXN0b20tZWxlbWVudC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGxpdCtyZWFjdGl2ZS1lbGVtZW50QDIuMS4yL25vZGVfbW9kdWxlcy9AbGl0L3JlYWN0aXZlLWVsZW1lbnQvc3JjL2RlY29yYXRvcnMvc3RhdGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BsaXQrcmVhY3RpdmUtZWxlbWVudEAyLjEuMi9ub2RlX21vZHVsZXMvQGxpdC9yZWFjdGl2ZS1lbGVtZW50L3NyYy9kZWNvcmF0b3JzL2V2ZW50LW9wdGlvbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BsaXQrcmVhY3RpdmUtZWxlbWVudEAyLjEuMi9ub2RlX21vZHVsZXMvQGxpdC9yZWFjdGl2ZS1lbGVtZW50L3NyYy9kZWNvcmF0b3JzL2Jhc2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BsaXQrcmVhY3RpdmUtZWxlbWVudEAyLjEuMi9ub2RlX21vZHVsZXMvQGxpdC9yZWFjdGl2ZS1lbGVtZW50L3NyYy9kZWNvcmF0b3JzL3F1ZXJ5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AbGl0K3JlYWN0aXZlLWVsZW1lbnRAMi4xLjIvbm9kZV9tb2R1bGVzL0BsaXQvcmVhY3RpdmUtZWxlbWVudC9zcmMvZGVjb3JhdG9ycy9xdWVyeS1hbGwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BsaXQrcmVhY3RpdmUtZWxlbWVudEAyLjEuMi9ub2RlX21vZHVsZXMvQGxpdC9yZWFjdGl2ZS1lbGVtZW50L3NyYy9kZWNvcmF0b3JzL3F1ZXJ5LWFzeW5jLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AbGl0K3JlYWN0aXZlLWVsZW1lbnRAMi4xLjIvbm9kZV9tb2R1bGVzL0BsaXQvcmVhY3RpdmUtZWxlbWVudC9zcmMvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1lbGVtZW50cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGxpdCtyZWFjdGl2ZS1lbGVtZW50QDIuMS4yL25vZGVfbW9kdWxlcy9AbGl0L3JlYWN0aXZlLWVsZW1lbnQvc3JjL2RlY29yYXRvcnMvcXVlcnktYXNzaWduZWQtbm9kZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2xpdEAzLjMuMi9ub2RlX21vZHVsZXMvbGl0L2RlY29yYXRvcnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtZWxlbWVudEAyLjEuNS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50L3RzL2NsYXNzZXMuZGVlcy1lbGVtZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9saXQtaHRtbEAzLjMuMi9ub2RlX21vZHVsZXMvbGl0LWh0bWwvc3JjL2RpcmVjdGl2ZS1oZWxwZXJzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9saXQtaHRtbEAzLjMuMi9ub2RlX21vZHVsZXMvbGl0LWh0bWwvc3JjL2FzeW5jLWRpcmVjdGl2ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0QDMuMy4yL25vZGVfbW9kdWxlcy9saXQvYXN5bmMtZGlyZWN0aXZlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWVsZW1lbnRAMi4xLjUvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudC90cy9kaXJlY3RpdmVzL2NsYXNzZXMucmVzb2x2ZWRpcmVjdGl2ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1lbGVtZW50QDIuMS41L25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQvdHMvZGlyZWN0aXZlcy9jbGFzc2VzLnN1YnNjcmliZWRpcmVjdGl2ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1lbGVtZW50QDIuMS41L25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQvdHMvZGlyZWN0aXZlcy9jbGFzc2VzLnN1YnNjcmliZXdpdGh0ZW1wbGF0ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0LWh0bWxAMy4zLjIvbm9kZV9tb2R1bGVzL2xpdC1odG1sL3NyYy9kaXJlY3RpdmVzL3ByaXZhdGUtYXN5bmMtaGVscGVycy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0LWh0bWxAMy4zLjIvbm9kZV9tb2R1bGVzL2xpdC1odG1sL3NyYy9kaXJlY3RpdmVzL3VudGlsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9saXRAMy4zLjIvbm9kZV9tb2R1bGVzL2xpdC9kaXJlY3RpdmVzL3VudGlsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9saXQtaHRtbEAzLjMuMi9ub2RlX21vZHVsZXMvbGl0LWh0bWwvc3JjL2RpcmVjdGl2ZXMvYXN5bmMtcmVwbGFjZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0LWh0bWxAMy4zLjIvbm9kZV9tb2R1bGVzL2xpdC1odG1sL3NyYy9kaXJlY3RpdmVzL2FzeW5jLWFwcGVuZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0QDMuMy4yL25vZGVfbW9kdWxlcy9saXQvZGlyZWN0aXZlcy9hc3luYy1hcHBlbmQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2xpdC1odG1sQDMuMy4yL25vZGVfbW9kdWxlcy9saXQtaHRtbC9zcmMvZGlyZWN0aXZlcy9rZXllZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0QDMuMy4yL25vZGVfbW9kdWxlcy9saXQvZGlyZWN0aXZlcy9rZXllZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0LWh0bWxAMy4zLjIvbm9kZV9tb2R1bGVzL2xpdC1odG1sL3NyYy9kaXJlY3RpdmVzL3JlcGVhdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbGl0QDMuMy4yL25vZGVfbW9kdWxlcy9saXQvZGlyZWN0aXZlcy9yZXBlYXQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtZWxlbWVudEAyLjEuNS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50L3RzL2RpcmVjdGl2ZXMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtZWxlbWVudEAyLjEuNS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50L3RzL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwdGhlbWUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0Bmb3J0YXdlc29tZStmb250YXdlc29tZS1zdmctY29yZUA3LjEuMC9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlL2luZGV4Lm1qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGZvcnRhd2Vzb21lK2ZyZWUtYnJhbmRzLXN2Zy1pY29uc0A3LjEuMC9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZyZWUtYnJhbmRzLXN2Zy1pY29ucy9pbmRleC5tanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0Bmb3J0YXdlc29tZStmcmVlLXJlZ3VsYXItc3ZnLWljb25zQDcuMS4wL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvZnJlZS1yZWd1bGFyLXN2Zy1pY29ucy9pbmRleC5tanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0Bmb3J0YXdlc29tZStmcmVlLXNvbGlkLXN2Zy1pY29uc0A3LjEuMC9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zL2luZGV4Lm1qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvZGVmYXVsdEF0dHJpYnV0ZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2NyZWF0ZUVsZW1lbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL3JlcGxhY2VFbGVtZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hLWFycm93LWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2EtYXJyb3ctdXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2EtbGFyZ2Utc21hbGwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FjY2Vzc2liaWxpdHkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FjdGl2aXR5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9haXItdmVudC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYWxhcm0tY2xvY2stY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FpcnBsYXkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FsYXJtLWNsb2NrLW1pbnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hbGFybS1jbG9jay1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FsYXJtLWNsb2NrLXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FsYXJtLWNsb2NrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hbGFybS1zbW9rZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYWxidW0udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FsaWduLWNlbnRlci1ob3Jpem9udGFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hbGlnbi1jZW50ZXItdmVydGljYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FsaWduLWVuZC1ob3Jpem9udGFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hbGlnbi1lbmQtdmVydGljYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1jZW50ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1zdGFydC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1kaXN0cmlidXRlLWVuZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LWNlbnRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LWVuZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LXN0YXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hbGlnbi1ob3Jpem9udGFsLXNwYWNlLWFyb3VuZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1zcGFjZS1iZXR3ZWVuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hbGlnbi1zdGFydC1ob3Jpem9udGFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hbGlnbi1zdGFydC12ZXJ0aWNhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZS1jZW50ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtZW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLXN0YXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hbGlnbi12ZXJ0aWNhbC1qdXN0aWZ5LWNlbnRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1lbmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FsaWduLXZlcnRpY2FsLWp1c3RpZnktc3RhcnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FsaWduLXZlcnRpY2FsLXNwYWNlLWFyb3VuZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYWxpZ24tdmVydGljYWwtc3BhY2UtYmV0d2Vlbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYW1idWxhbmNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hbXBlcnNhbmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FtcGVyc2FuZHMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FtcGhvcmEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FuY2hvci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYW5ncnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fubm95ZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FudGVubmEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FudmlsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hcGVydHVyZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXBwLXdpbmRvdy1tYWMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FwcC13aW5kb3cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FwcGxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hcmNoaXZlLXJlc3RvcmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FyY2hpdmUteC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJjaGl2ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJtY2hhaXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWJpZy1kb3duLWRhc2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWJpZy1kb3duLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hcnJvdy1iaWctbGVmdC1kYXNoLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hcnJvdy1iaWctbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctYmlnLXJpZ2h0LWRhc2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWJpZy1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctYmlnLXVwLWRhc2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWJpZy11cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctZG93bi0wLTEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWRvd24tMS0wLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hcnJvdy1kb3duLWEtei50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctZG93bi1mcm9tLWxpbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWRvd24tbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctZG93bi1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctZG93bi10by1kb3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWRvd24tbmFycm93LXdpZGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWRvd24tdG8tbGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctZG93bi11cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctZG93bi13aWRlLW5hcnJvdy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctZG93bi16LWEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWxlZnQtcmlnaHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWxlZnQtZnJvbS1saW5lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hcnJvdy1sZWZ0LXRvLWxpbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LWxlZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LXJpZ2h0LWZyb20tbGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctcmlnaHQtbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctcmlnaHQtdG8tbGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctcmlnaHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LXVwLTAtMS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctdXAtMS0wLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hcnJvdy11cC1hLXoudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LXVwLWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LXVwLWZyb20tZG90LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hcnJvdy11cC1mcm9tLWxpbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LXVwLWxlZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LXVwLW5hcnJvdy13aWRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hcnJvdy11cC1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctdXAtdG8tbGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctdXAtd2lkZS1uYXJyb3cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93LXVwLXotYS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXJyb3ctdXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Fycm93cy11cC1mcm9tLWxpbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2FzdGVyaXNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hdC1zaWduLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hdG9tLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9hdWRpby1saW5lcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYXdhcmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2F1ZGlvLXdhdmVmb3JtLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9heGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2F4aXMtM2QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JhYnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JhY2twYWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYWRnZS1hbGVydC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmFkZ2UtY2VudC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmFkZ2UtY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JhZGdlLWRvbGxhci1zaWduLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYWRnZS1ldXJvLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYWRnZS1pbmRpYW4tcnVwZWUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JhZGdlLWluZm8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JhZGdlLWphcGFuZXNlLXllbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmFkZ2UtbWludXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JhZGdlLXBlcmNlbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JhZGdlLXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JhZGdlLXBvdW5kLXN0ZXJsaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYWRnZS1xdWVzdGlvbi1tYXJrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYWRnZS1ydXNzaWFuLXJ1YmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYWRnZS1zd2lzcy1mcmFuYy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmFkZ2UtdHVya2lzaC1saXJhLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYWRnZS14LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYWRnZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmFnZ2FnZS1jbGFpbS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmFsbG9vbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmFuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYW5hbmEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JhbmRhZ2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jhbmtub3RlLWFycm93LWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jhbmtub3RlLWFycm93LXVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYW5rbm90ZS14LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYW5rbm90ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmFyY29kZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmFycmVsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYXNlbGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmF0aC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmF0dGVyeS1jaGFyZ2luZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmF0dGVyeS1mdWxsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYXR0ZXJ5LWxvdy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmF0dGVyeS1wbHVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYXR0ZXJ5LW1lZGl1bS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmF0dGVyeS13YXJuaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iYXR0ZXJ5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iZWFrZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JlYW4tb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iZWFuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iZWQtZG91YmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iZWQtc2luZ2xlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JlZWYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JlZXItb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iZWVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iZWxsLWRvdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmVsbC1lbGVjdHJpYy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmVsbC1taW51cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmVsbC1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JlbGwtcGx1cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmVsbC1yaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iZWxsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iZXR3ZWVuLWhvcml6b250YWwtZW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iZXR3ZWVuLWhvcml6b250YWwtc3RhcnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JldHdlZW4tdmVydGljYWwtZW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iZXR3ZWVuLXZlcnRpY2FsLXN0YXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iaWNlcHMtZmxleGVkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iaWtlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iaW5hcnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jpb2hhemFyZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmlub2N1bGFycy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmlyZGhvdXNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iaXJkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9iaXRjb2luLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ibGVuZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYmxpbmRzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ibG9ja3MudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JsdWV0b290aC1jb25uZWN0ZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JsdWV0b290aC1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JsdWV0b290aC1zZWFyY2hpbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JsdWV0b290aC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9sZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9sdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9tYi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9uZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9vay1hLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib29rLWFsZXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib29rLWF1ZGlvLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib29rLWNoZWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib29rLWNvcHkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvb2stZGFzaGVkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib29rLWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvb2staGVhZHBob25lcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9vay1oZWFydC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9vay1rZXkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvb2staW1hZ2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvb2stbG9jay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9vay1tYXJrZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvb2stbWludXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvb2stb3Blbi1jaGVjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9vay1vcGVuLXRleHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvb2stb3Blbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9vay1wbHVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib29rLXNlYXJjaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9vay10ZXh0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib29rLXVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib29rLXR5cGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvb2stdXAtMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9vay11c2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib29rLXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvb2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvb2ttYXJrLWNoZWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib29rbWFyay1taW51cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9va21hcmstcGx1cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9va21hcmsteC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm9va21hcmsudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvb20tYm94LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib3QtbWVzc2FnZS1zcXVhcmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JvdC1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JvdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm90dGxlLXdpbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Jvdy1hcnJvdy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYm94LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ib3hlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnJhY2VzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9icmFja2V0cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnJhaW4tY2lyY3VpdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnJhaW4tY29nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9icmFpbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnJpY2std2FsbC1maXJlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9icmljay13YWxsLXNoaWVsZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnJpY2std2FsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnJpZWZjYXNlLWJ1c2luZXNzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9icmllZmNhc2UtY29udmV5b3ItYmVsdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnJpZWZjYXNlLW1lZGljYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JyaWVmY2FzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnJpbmctdG8tZnJvbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2JydXNoLWNsZWFuaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9icnVzaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnViYmxlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnVnLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnVnLXBsYXkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2J1Zy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnVpbGRpbmctMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnVpbGRpbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2J1cy1mcm9udC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvYnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYWJsZS1jYXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhYmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYWtlLXNsaWNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYWtlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYWxjdWxhdG9yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYWxlbmRhci0xLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYWxlbmRhci1hcnJvdy1kb3duLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYWxlbmRhci1hcnJvdy11cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2FsZW5kYXItY2hlY2stMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2FsZW5kYXItY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhbGVuZGFyLWNvZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2FsZW5kYXItY2xvY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhbGVuZGFyLWRheXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhbGVuZGFyLWZvbGQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhbGVuZGFyLWhlYXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYWxlbmRhci1taW51cy0yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYWxlbmRhci1taW51cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2FsZW5kYXItb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYWxlbmRhci1wbHVzLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhbGVuZGFyLXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhbGVuZGFyLXJhbmdlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYWxlbmRhci1zZWFyY2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhbGVuZGFyLXN5bmMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhbGVuZGFyLXgtMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2FsZW5kYXIteC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2FsZW5kYXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhbGVuZGFycy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2FtZXJhLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2FtZXJhLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYW5keS1jYW5lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYW5keS1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhbmR5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYW5uYWJpcy1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nhbm5hYmlzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYXB0aW9ucy1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhcHRpb25zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYXItZnJvbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nhci10YXhpLWZyb250LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhcmF2YW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhcmQtc2ltLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYXJyb3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nhc2UtbG93ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nhc2Utc2Vuc2l0aXZlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYXNlLXVwcGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYXNzZXR0ZS10YXBlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYXN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jYXN0bGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NhdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2N0di50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtYXJlYS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtYmFyLWJpZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtYmFyLWRlY3JlYXNpbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NoYXJ0LWJhci1pbmNyZWFzaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaGFydC1iYXItc3RhY2tlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtYmFyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaGFydC1jYW5kbGVzdGljay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtY29sdW1uLWJpZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtY29sdW1uLWRlY3JlYXNpbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NoYXJ0LWNvbHVtbi1pbmNyZWFzaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaGFydC1jb2x1bW4tc3RhY2tlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtY29sdW1uLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaGFydC1nYW50dC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtbGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtbmV0d29yay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4tZGVjcmVhc2luZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4taW5jcmVhc2luZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NoYXJ0LW5vLWF4ZXMtY29tYmluZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NoYXJ0LW5vLWF4ZXMtZ2FudHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NoYXJ0LXBpZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtc2NhdHRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hhcnQtc3BsaW5lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaGVjay1jaGVjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hlY2stbGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NoZWYtaGF0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaGVycnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NoZXNzLWJpc2hvcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hlc3Mta2luZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hlc3Mta25pZ2h0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaGVzcy1wYXduLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaGVzcy1xdWVlbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hldnJvbi1kb3duLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaGV2cm9uLWZpcnN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaGVzcy1yb29rLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaGV2cm9uLWxhc3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NoZXZyb24tbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hldnJvbi1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hldnJvbi11cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hldnJvbnMtZG93bi11cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hldnJvbnMtZG93bi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hldnJvbnMtbGVmdC1yaWdodC1lbGxpcHNpcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hldnJvbnMtbGVmdC1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hldnJvbnMtbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hldnJvbnMtcmlnaHQtbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2hldnJvbnMtcmlnaHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NoZXZyb25zLXVwLWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NoZXZyb25zLXVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaHVyY2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpZ2FyZXR0ZS1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nocm9taXVtLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaWdhcmV0dGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1hbGVydC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLWFycm93LWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1hcnJvdy1sZWZ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LWRvd24tbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLWFycm93LW91dC1kb3duLXJpZ2h0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LXVwLWxlZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1hcnJvdy1vdXQtdXAtcmlnaHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1hcnJvdy1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLWFycm93LXVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1jaGVjay1iaWcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1jaGV2cm9uLWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1jaGV2cm9uLWxlZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1jaGV2cm9uLXJpZ2h0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtY2hldnJvbi11cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLWRhc2hlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLWRpdmlkZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLWRvbGxhci1zaWduLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtZG90LWRhc2hlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLWRvdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLWVsbGlwc2lzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtZXF1YWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1mYWRpbmctYXJyb3ctdXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1mYWRpbmctcGx1cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLWdhdWdlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtbWludXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1wYXJraW5nLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLXBhcmtpbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1wYXVzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLXBlcmNlbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1waWxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtcGxheS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLXBvdW5kLXN0ZXJsaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtcGx1cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLXBvd2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtcXVlc3Rpb24tbWFyay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLXNsYXNoLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS1zbGFzaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLXNtYWxsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtc3Rhci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLXN0b3AudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS11c2VyLXJvdW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jaXJjbGUtdXNlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY2xlLXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NpcmNsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2lyY3VpdC1ib2FyZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2l0cnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbGFwcGVyYm9hcmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NsaXBib2FyZC1jaGVjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xpcGJvYXJkLWNsb2NrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbGlwYm9hcmQtY29weS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xpcGJvYXJkLWxpc3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NsaXBib2FyZC1taW51cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xpcGJvYXJkLXBhc3RlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbGlwYm9hcmQtcGVuLWxpbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NsaXBib2FyZC1wZW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NsaXBib2FyZC1wbHVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbGlwYm9hcmQtdHlwZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xpcGJvYXJkLXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NsaXBib2FyZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stMS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stMTAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nsb2NrLTExLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG9jay0xMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stMy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stNC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stNS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stNi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stNy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stOC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stOS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stYWxlcnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nsb2NrLWFycm93LWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nsb2NrLWFycm93LXVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG9jay1jaGVjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvY2stZmFkaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG9jay1wbHVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG9jay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvc2VkLWNhcHRpb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nsb3VkLWFsZXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG91ZC1iYWNrdXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nsb3VkLWNoZWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG91ZC1jb2cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nsb3VkLWRvd25sb2FkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG91ZC1kcml6emxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG91ZC1mb2cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nsb3VkLWhhaWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nsb3VkLWxpZ2h0bmluZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvdWQtbW9vbi1yYWluLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG91ZC1tb29uLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG91ZC1yYWluLXdpbmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nsb3VkLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvdWQtcmFpbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvdWQtc25vdy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvdWQtc3VuLXJhaW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nsb3VkLXN1bi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvdWQtc3luYy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvdWQtdXBsb2FkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG91ZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY2xvdWR5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jbG92ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NsdWIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NvZGUteG1sLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb2RlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb2RlcGVuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb2Rlc2FuZGJveC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY29mZmVlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb2lucy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY29nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb2x1bW5zLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NvbHVtbnMtMy1jb2cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NvbHVtbnMtMy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY29sdW1ucy00LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb21iaW5lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb21tYW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb21wYXNzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb21wb25lbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NvbXB1dGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb25jaWVyZ2UtYmVsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY29uZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY29uc3RydWN0aW9uLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb250YWN0LXJvdW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb250YWN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb250YWluZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NvbnRyYXN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb29raWUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nvb2tpbmctcG90LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb3B5LWNoZWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb3B5LW1pbnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb3B5LXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NvcHktc2xhc2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NvcHkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NvcHkteC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY29weWxlZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NvcHlyaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY29ybmVyLWRvd24tcmlnaHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nvcm5lci1kb3duLWxlZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nvcm5lci1sZWZ0LWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nvcm5lci1sZWZ0LXVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb3JuZXItcmlnaHQtZG93bi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY29ybmVyLXJpZ2h0LXVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jb3JuZXItdXAtbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY29ybmVyLXVwLXJpZ2h0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jcHUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NyZWF0aXZlLWNvbW1vbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2NyZWRpdC1jYXJkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jcm9pc3NhbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nyb3AudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nyb3NzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jcm9zc2hhaXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Nyb3duLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jdWJvaWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2N1cC1zb2RhLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9jdXJyZW5jeS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvY3lsaW5kZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2RhbS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZGF0YWJhc2UtYmFja3VwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kYXRhYmFzZS16YXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2RhdGFiYXNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kZWNpbWFscy1hcnJvdy1sZWZ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kZWNpbWFscy1hcnJvdy1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZGVsZXRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kZXNzZXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kaWFtZXRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZGlhbW9uZC1taW51cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZGlhbW9uZC1wZXJjZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kaWFtb25kLXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2RpY2UtMS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZGlhbW9uZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZGljZS0yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kaWNlLTMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2RpY2UtNS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZGljZS02LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kaWNlLTQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2RpY2VzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kaWZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kaXNjLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Rpc2MtMy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZGlzYy1hbGJ1bS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZGlzYy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZGl2aWRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kbmEtb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kb2NrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kbmEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2RvZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZG9sbGFyLXNpZ24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2RvbnV0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kb29yLWNsb3NlZC1sb2NrZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Rvb3ItY2xvc2VkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kb3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Rvb3Itb3Blbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZG93bmxvYWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2RyYWZ0aW5nLWNvbXBhc3MudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2RyYW1hLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kcmliYmJsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZHJpbGwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Ryb25lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9kcm9wbGV0LW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZHJvcGxldC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZHJvcGxldHMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2RydW0udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2RydW1zdGljay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZHVtYmJlbGwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Vhci1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Vhci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZWFydGgtbG9jay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZWFydGgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2VjbGlwc2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2VnZy1mcmllZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZWdnLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZWdnLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9lbGxpcHNpcy12ZXJ0aWNhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZWxsaXBzaXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2VxdWFsLWFwcHJveGltYXRlbHkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2VxdWFsLW5vdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZXJhc2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9lcXVhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZXRoZXJuZXQtcG9ydC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZXVyby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZXYtY2hhcmdlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZXh0ZXJuYWwtbGluay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZXhwYW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9leWUtY2xvc2VkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9leWUtb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9leWUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZhY3RvcnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZhY2Vib29rLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mYW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Zhc3QtZm9yd2FyZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmVhdGhlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmVuY2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZlcnJpcy13aGVlbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlnbWEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtYXJjaGl2ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1heGlzLTNkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLWJhZGdlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLWJyYWNlcy1jb3JuZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtYm94LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLWJyYWNlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1jaGFydC1jb2x1bW4taW5jcmVhc2luZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1jaGFydC1jb2x1bW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtY2hhcnQtbGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1jaGFydC1waWUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtY2hlY2stY29ybmVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLWNoZWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLWNsb2NrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLWNvZGUtY29ybmVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLWNvZGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtY29nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLWRpZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtZGlnaXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtZG93bi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1leGNsYW1hdGlvbi1wb2ludC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1oZWFkcGhvbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtaGVhcnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtaW1hZ2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtaW5wdXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUta2V5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLWxvY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtbWludXMtY29ybmVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLW11c2ljLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLW1pbnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLW91dHB1dC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1wZW4tbGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1wZW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtcGxheS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1wbHVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLXF1ZXN0aW9uLW1hcmsudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtcGx1cy1jb3JuZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtc2Nhbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1zZWFyY2gtY29ybmVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLXNlYXJjaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1zaWduYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtc3ByZWFkc2hlZXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtc2xpZGVycy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1zdGFjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS1zeW1saW5rLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLXRlcm1pbmFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLXRleHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtdHlwZS1jb3JuZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUtdHlwZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS11cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS11c2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maWxlLXZvbHVtZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS12aWRlby1jYW1lcmEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUteC1jb3JuZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbGUteC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlsZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbG0udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpbmdlcnByaW50LXBhdHRlcm4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZpcmUtZXh0aW5ndWlzaGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9maXNoLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmlzaC1zeW1ib2wudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Zpc2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Zpc2hpbmctaG9vay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmxhZy1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZsYWctdHJpYW5nbGUtbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmxhZy10cmlhbmdsZS1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmxhbWUta2luZGxpbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZsYWcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZsYW1lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mbGFzaGxpZ2h0LW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmxhc2hsaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZmxhc2stY29uaWNhbC1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZsYXNrLXJvdW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mbGFzay1jb25pY2FsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mbGlwLWhvcml6b250YWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZsaXAtaG9yaXpvbnRhbC0yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mbGlwLXZlcnRpY2FsLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZsaXAtdmVydGljYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Zsb3dlci0yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mbG93ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvY3VzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkLWhvcml6b250YWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvbGQtdmVydGljYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvbGRlci1hcmNoaXZlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXItY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvbGRlci1jbG9jay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZm9sZGVyLWNsb3NlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZm9sZGVyLWNvZGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvbGRlci1jb2cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvbGRlci1kb3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvbGRlci1kb3duLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXItZ2l0LTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvbGRlci1naXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvbGRlci1oZWFydC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZm9sZGVyLWlucHV0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXIta2FuYmFuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXIta2V5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXItbG9jay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZm9sZGVyLW1pbnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXItb3Blbi1kb3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvbGRlci1vcGVuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXItb3V0cHV0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXItcGVuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXItcGx1cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZm9sZGVyLXJvb3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvbGRlci1zZWFyY2gtMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZm9sZGVyLXNlYXJjaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZm9sZGVyLXN5bWxpbmsudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZvbGRlci1zeW5jLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXItdHJlZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZm9sZGVyLXVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXIteC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZm9sZGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb2xkZXJzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb290cHJpbnRzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mb3JrbGlmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZm9ybS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZm9yd2FyZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZnJhbWUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ZyYW1lci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZnJvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Z1ZWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Z1bGxzY3JlZW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2Z1bm5lbC1wbHVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9mdW5uZWwteC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZnVubmVsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9nYWxsZXJ5LWhvcml6b250YWwtZW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9nYWxsZXJ5LWhvcml6b250YWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dhbGxlcnktdGh1bWJuYWlscy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ2FsbGVyeS12ZXJ0aWNhbC1lbmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dhbGxlcnktdmVydGljYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dhbWVwYWQtMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ2FtZXBhZC1kaXJlY3Rpb25hbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ2FtZXBhZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ2F1Z2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dhdmVsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9nZW0udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dlb3JnaWFuLWxhcmkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dob3N0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9naWZ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9naXQtYnJhbmNoLW1pbnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9naXQtYnJhbmNoLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9naXQtYnJhbmNoLXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dpdC1jb21taXQtaG9yaXpvbnRhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ2l0LWNvbW1pdC12ZXJ0aWNhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ2l0LWNvbXBhcmUtYXJyb3dzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9naXQtY29tcGFyZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ2l0LWZvcmsudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dpdC1ncmFwaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ2l0LW1lcmdlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWFycm93LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWNsb3NlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUtYXJyb3cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtY3JlYXRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWRyYWZ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9naXRodWIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dpdGxhYi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ2xhc3Mtd2F0ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dsYXNzZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dsb2JlLWxvY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dsb2JlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9nb2FsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ncHUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dyYWR1YXRpb24tY2FwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ncmFwZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ3JpZC0yeDItY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dyaWQtMngyLXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dyaWQtMngyLXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dyaWQtMngyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ncmlkLTN4Mi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ3JpZC0zeDMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2dyaXAtaG9yaXpvbnRhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ3JpcC12ZXJ0aWNhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ3JpcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ3JvdXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hhbS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvZ3VpdGFyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oYW1idXJnZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hhbW1lci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaGFuZC1jb2lucy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaGFuZC1maXN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oYW5kLWdyYWIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hhbmQtaGVhcnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hhbmQtaGVscGluZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaGFuZC1tZXRhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaGFuZC1wbGF0dGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oYW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oYW5kYmFnLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oYW5kc2hha2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hhcmQtZHJpdmUtZG93bmxvYWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hhcmQtZHJpdmUtdXBsb2FkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oYXJkLWhhdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaGFzaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaGFyZC1kcml2ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaGF0LWdsYXNzZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hhemUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oZG1pLXBvcnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hlYWRpbmctMS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaGVhZGluZy0zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oZWFkaW5nLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hlYWRpbmctNC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaGVhZGluZy01LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oZWFkaW5nLTYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hlYWRpbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hlYWRwaG9uZS1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hlYWRwaG9uZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hlYWRzZXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hlYXJ0LWNyYWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oZWFydC1oYW5kc2hha2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hlYXJ0LW1pbnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oZWFydC1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hlYXJ0LXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hlYXJ0LXB1bHNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oZWF0ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hlYXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oZWxpY29wdGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oZXhhZ29uLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9oaWdobGlnaHRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaGlzdG9yeS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaG9wLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ob3Atb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ob3NwaXRhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaG90ZWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hvdXJnbGFzcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaG91c2UtaGVhcnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hvdXNlLXBsdWcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hvdXNlLXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hvdXNlLXdpZmkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2hvdXNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9pY2UtY3JlYW0tYm93bC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaWNlLWNyZWFtLWNvbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2lkLWNhcmQtbGFueWFyZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaWQtY2FyZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaW1hZ2UtZG93bi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaW1hZ2UtbWludXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ltYWdlLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaW1hZ2UtcGx1cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaW1hZ2UtcGxheS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaW1hZ2UtdXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ltYWdlLXVwc2NhbGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ltYWdlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9pbWFnZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2ltcG9ydC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaW5ib3gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2luZGlhbi1ydXBlZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaW5maW5pdHkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2luZm8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2luc3BlY3Rpb24tcGFuZWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2luc3RhZ3JhbS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvaXRhbGljLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9pdGVyYXRpb24tY2N3LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9pdGVyYXRpb24tY3cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2phcGFuZXNlLXllbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvam95c3RpY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2thbmJhbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMva2F5YWsudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2tleS1yb3VuZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMva2V5LXNxdWFyZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMva2V5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9rZXlib2FyZC1tdXNpYy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMva2V5Ym9hcmQtb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9rZXlib2FyZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGFtcC1jZWlsaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9sYW1wLWRlc2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xhbXAtZmxvb3IudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xhbXAtd2FsbC1kb3duLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9sYW1wLXdhbGwtdXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xhbXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xhbmQtcGxvdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGFuZG1hcmsudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xhbmd1YWdlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGFwdG9wLW1pbmltYWwtY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xhcHRvcC1taW5pbWFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9sYXB0b3AudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xhc3NvLXNlbGVjdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGFzc28udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xhdWdoLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9sYXllcnMtMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGF5ZXJzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9sYXllcnMtcGx1cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGF5b3V0LWRhc2hib2FyZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGF5b3V0LWdyaWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xheW91dC1saXN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9sYXlvdXQtcGFuZWwtbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGF5b3V0LXBhbmVsLXRvcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGF5b3V0LXRlbXBsYXRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9sZWFmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9sZWFmeS1ncmVlbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGVjdGVybi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlicmFyeS1iaWcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xpYnJhcnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xpZmUtYnVveS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlnYXR1cmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xpZ2h0YnVsYi1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xpZ2h0YnVsYi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGluZS1zcXVpZ2dsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGluay0yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9saW5rLTItb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9saW5rLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9saW5rZWRpbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlzdC1jaGVjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlzdC1jaGVja3MudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xpc3QtY2hldnJvbnMtZG93bi11cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlzdC1jaGV2cm9ucy11cC1kb3duLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9saXN0LWNvbGxhcHNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9saXN0LWVuZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlzdC1maWx0ZXItcGx1cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlzdC1maWx0ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xpc3QtaW5kZW50LWRlY3JlYXNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9saXN0LWluZGVudC1pbmNyZWFzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlzdC1taW51cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlzdC1tdXNpYy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlzdC1vcmRlcmVkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9saXN0LXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xpc3QtcmVzdGFydC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlzdC1zdGFydC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlzdC10b2RvLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9saXN0LXRyZWUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xpc3QtdmlkZW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xpc3QteC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbG9hZGVyLWNpcmNsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbGlzdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbG9hZGVyLXBpbndoZWVsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9sb2FkZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xvY2F0ZS1maXhlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbG9jYXRlLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbG9jYXRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9sb2NrLWtleWhvbGUtb3Blbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbG9jay1rZXlob2xlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9sb2NrLW9wZW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xvY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2xvZy1pbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbG9nLW91dC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbG9ncy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbG9sbGlwb3AudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL2x1Z2dhZ2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21hZ25ldC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWFpbC1jaGVjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWFpbC1taW51cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWFpbC1vcGVuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYWlsLXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21haWwtcXVlc3Rpb24tbWFyay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWFpbC1zZWFyY2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21haWwtd2FybmluZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWFpbC14LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYWlsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYWlsYm94LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYWlscy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWFwLW1pbnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYXAtcGluLWNoZWNrLWluc2lkZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWFwLXBpbi1jaGVjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWFwLXBpbi1ob3VzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWFwLXBpbi1taW51cy1pbnNpZGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21hcC1waW4tbWludXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21hcC1waW4tb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYXAtcGluLXBlbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWFwLXBpbi1wbHVzLWluc2lkZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWFwLXBpbi1wbHVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYXAtcGluLXgtaW5zaWRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYXAtcGluLXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21hcC1waW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21hcC1waW5uZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21hcC1wbHVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21hcnMtc3Ryb2tlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYXJzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYXJ0aW5pLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYXhpbWl6ZS0yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tYXhpbWl6ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWVnYXBob25lLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWVnYXBob25lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZWRhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWVoLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZW1vcnktc3RpY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lcmdlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZW51LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLWNpcmNsZS1jb2RlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLWNpcmNsZS1kYXNoZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lc3NhZ2UtY2lyY2xlLWhlYXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLWNpcmNsZS1tb3JlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLWNpcmNsZS1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lc3NhZ2UtY2lyY2xlLXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lc3NhZ2UtY2lyY2xlLXF1ZXN0aW9uLW1hcmsudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lc3NhZ2UtY2lyY2xlLXJlcGx5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLWNpcmNsZS13YXJuaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLWNpcmNsZS14LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLWNpcmNsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWVzc2FnZS1zcXVhcmUtY29kZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWVzc2FnZS1zcXVhcmUtZGFzaGVkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLXNxdWFyZS1kaWZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLXNxdWFyZS1kb3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lc3NhZ2Utc3F1YXJlLWhlYXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLXNxdWFyZS1sb2NrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLXNxdWFyZS1tb3JlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLXNxdWFyZS1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lc3NhZ2Utc3F1YXJlLXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lc3NhZ2Utc3F1YXJlLXF1b3RlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlLXNxdWFyZS1yZXBseS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWVzc2FnZS1zcXVhcmUtc2hhcmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lc3NhZ2Utc3F1YXJlLXRleHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lc3NhZ2Utc3F1YXJlLXdhcm5pbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lc3NhZ2Utc3F1YXJlLXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21lc3NhZ2Utc3F1YXJlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tZXNzYWdlcy1zcXVhcmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21pYy1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21pYy12b2NhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWljLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9taWNyb2NoaXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21pY3Jvc2NvcGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21pY3Jvd2F2ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWlsZXN0b25lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9taWxrLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWlsay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWluaW1pemUtMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbWluaW1pemUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21pbnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb25pdG9yLWNoZWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb25pdG9yLWNsb3VkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb25pdG9yLWNvZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW9uaXRvci1kb3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21vbml0b3ItZG93bi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW9uaXRvci1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21vbml0b3ItcGF1c2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21vbml0b3ItcGxheS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW9uaXRvci1zbWFydHBob25lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb25pdG9yLXNwZWFrZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21vbml0b3Itc3RvcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW9uaXRvci11cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW9uaXRvci14LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb25pdG9yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb29uLXN0YXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21vdG9yYmlrZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW9vbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW91bnRhaW4tc25vdy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW91bnRhaW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21vdXNlLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW91c2UtcG9pbnRlci0yLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW91c2UtcG9pbnRlci0yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb3VzZS1wb2ludGVyLWJhbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW91c2UtcG9pbnRlci1jbGljay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW91c2UtcG9pbnRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW91c2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21vdmUtM2QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21vdmUtZGlhZ29uYWwtMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW92ZS1kaWFnb25hbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW92ZS1kb3duLWxlZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21vdmUtZG93bi1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW92ZS1kb3duLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb3ZlLWxlZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL21vdmUtaG9yaXpvbnRhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW92ZS1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbW92ZS11cC1sZWZ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb3ZlLXVwLXJpZ2h0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb3ZlLXVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb3ZlLXZlcnRpY2FsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tb3ZlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tdXNpYy0yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tdXNpYy0zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tdXNpYy00LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9tdXNpYy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbmF2aWdhdGlvbi0yLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbmF2aWdhdGlvbi0yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9uYXZpZ2F0aW9uLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbmF2aWdhdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbmV3c3BhcGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9uZXR3b3JrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9uZmMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL25vbi1iaW5hcnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL25vdGVib29rLXBlbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbm90ZWJvb2stdGFicy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbm90ZWJvb2stdGV4dC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbm90ZWJvb2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL25vdGVwYWQtdGV4dC1kYXNoZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL25vdGVwYWQtdGV4dC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbnV0LW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvbnV0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9vY3RhZ29uLWFsZXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9vY3RhZ29uLW1pbnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9vY3RhZ29uLXBhdXNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9vY3RhZ29uLXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL29jdGFnb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL29tZWdhLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9vcHRpb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL29yYml0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9vcmlnYW1pLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYWNrYWdlLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhY2thZ2UtY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhY2thZ2UtbWludXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhY2thZ2Utb3Blbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFja2FnZS1wbHVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYWNrYWdlLXNlYXJjaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFja2FnZS14LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYWNrYWdlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYWludC1idWNrZXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhaW50LXJvbGxlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFpbnRicnVzaC12ZXJ0aWNhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFpbnRicnVzaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFsZXR0ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFuZGEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhbmVsLWJvdHRvbS1jbG9zZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFuZWwtYm90dG9tLWRhc2hlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFuZWwtYm90dG9tLW9wZW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhbmVsLWJvdHRvbS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFuZWwtbGVmdC1jbG9zZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFuZWwtbGVmdC1kYXNoZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhbmVsLWxlZnQtb3Blbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFuZWwtbGVmdC1yaWdodC1kYXNoZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhbmVsLWxlZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhbmVsLXJpZ2h0LWNsb3NlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYW5lbC1yaWdodC1kYXNoZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhbmVsLXJpZ2h0LW9wZW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhbmVsLXJpZ2h0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYW5lbC10b3AtYm90dG9tLWRhc2hlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFuZWwtdG9wLWNsb3NlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYW5lbC10b3AtZGFzaGVkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYW5lbC10b3Atb3Blbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFuZWxzLWxlZnQtYm90dG9tLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYW5lbC10b3AudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhbmVscy1yaWdodC1ib3R0b20udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BhbmVscy10b3AtbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFwZXJjbGlwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYXJraW5nLW1ldGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYXJlbnRoZXNlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGFydHktcG9wcGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYXVzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGF3LXByaW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wYy1jYXNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wZW4tbGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGVuLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGVuLXRvb2wudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Blbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGVuY2lsLWxpbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BlbmNpbC1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BlbmNpbC1ydWxlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGVuY2lsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wZW50YWdvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGVyY2VudC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGVyc29uLXN0YW5kaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9waGlsaXBwaW5lLXBlc28udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Bob25lLWZvcndhcmRlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGhvbmUtY2FsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGhvbmUtaW5jb21pbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Bob25lLW1pc3NlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGhvbmUtb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9waG9uZS1vdXRnb2luZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGhvbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BpLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9waWFuby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGlja2F4ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGljdHVyZS1pbi1waWN0dXJlLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BpY3R1cmUtaW4tcGljdHVyZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGlnZ3ktYmFuay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGlsY3Jvdy1sZWZ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9waWxjcm93LXJpZ2h0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9waWxjcm93LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9waWxsLWJvdHRsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGlsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGluLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGluLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9waXBldHRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9waXp6YS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGxhbmUtbGFuZGluZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGxhbmUtdGFrZW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGxhbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BsYXkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BsdWctMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcGx1Zy16YXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BsdWcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BvY2tldC1rbmlmZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcG9ja2V0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wb2RjYXN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wb2ludGVyLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcG9pbnRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcG9wY29ybi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcG9wc2ljbGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3BvdW5kLXN0ZXJsaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wb3dlci1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Bvd2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9wcmVzZW50YXRpb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3ByaW50ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3ByaW50ZXItY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Byb2plY3Rvci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcHJvcG9ydGlvbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3B1enpsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcHlyYW1pZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcXItY29kZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcXVvdGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JhYmJpdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmFkYXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JhZGlhdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmFkaWNhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmFkaW8tcmVjZWl2ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JhZGlvLXRvd2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yYWRpby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmFkaXVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yYWlsLXN5bWJvbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmFpbmJvdy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmF0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yYXRpby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmVjZWlwdC1jZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWNlaXB0LWV1cm8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JlY2VpcHQtaW5kaWFuLXJ1cGVlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWNlaXB0LWphcGFuZXNlLXllbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmVjZWlwdC1wb3VuZC1zdGVybGluZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmVjZWlwdC1ydXNzaWFuLXJ1YmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWNlaXB0LXN3aXNzLWZyYW5jLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWNlaXB0LXRleHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JlY2VpcHQtdHVya2lzaC1saXJhLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWNlaXB0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWN0YW5nbGUtY2lyY2xlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWN0YW5nbGUtZWxsaXBzaXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JlY3RhbmdsZS1nb2dnbGVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWN0YW5nbGUtaG9yaXpvbnRhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmVjdGFuZ2xlLXZlcnRpY2FsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWN5Y2xlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWRvLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JlZG8tZG90LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWRvLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWZyZXNoLWNjdy1kb3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JlZnJlc2gtY2N3LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWZyZXNoLWN3LW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmVmcmVzaC1jdy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmVmcmlnZXJhdG9yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZWdleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmVtb3ZlLWZvcm1hdHRpbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JlcGVhdC0xLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZXBlYXQtMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmVwZWF0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZXBsYWNlLWFsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmVwbGFjZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmVwbHktYWxsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yZXBseS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcmV3aW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yaWJib24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JvY2tldC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcm9ja2luZy1jaGFpci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcm9sbGVyLWNvYXN0ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Jvc2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JvdGF0ZS0zZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcm90YXRlLWNjdy1rZXkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JvdGF0ZS1jY3ctc3F1YXJlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yb3RhdGUtY2N3LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yb3RhdGUtY3ctc3F1YXJlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yb3RhdGUtY3cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JvdXRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yb3V0ZS1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3JvdXRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcm93cy0yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9yb3dzLTMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Jvd3MtNC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcnNzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9ydWxlci1kaW1lbnNpb24tbGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvcnVsZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3J1c3NpYW4tcnVibGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NhaWxib2F0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zYWxhZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2FuZHdpY2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NhdGVsbGl0ZS1kaXNoLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zYXRlbGxpdGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NhdWRpLXJpeWFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zYXZlLWFsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2F2ZS1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NhdmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NjYWxlLTNkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zY2FsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2NhbGluZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2Nhbi1leWUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NjYW4tYmFyY29kZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2Nhbi1mYWNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zY2FuLWhlYXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zY2FuLWxpbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NjYW4tcXItY29kZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2Nhbi1zZWFyY2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NjYW4tdGV4dC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2Nhbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2Nob29sLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zY2lzc29ycy1saW5lLWRhc2hlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2Npc3NvcnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Njb290ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NjcmVlbi1zaGFyZS1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NjcmVlbi1zaGFyZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2Nyb2xsLXRleHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Njcm9sbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2VhcmNoLWFsZXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zZWFyY2gtY29kZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2VhcmNoLWNoZWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zZWFyY2gtc2xhc2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NlYXJjaC14LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zZWFyY2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NlbmQtaG9yaXpvbnRhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2VjdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2VuZC10by1iYWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zZW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zZXBhcmF0b3ItaG9yaXpvbnRhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2VwYXJhdG9yLXZlcnRpY2FsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zZXJ2ZXItY29nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zZXJ2ZXItY3Jhc2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NlcnZlci1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NlcnZlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2V0dGluZ3MtMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2V0dGluZ3MudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NoYXBlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hhcmUtMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hhcmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NoZWV0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaGVsbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hpZWxkLWFsZXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaGllbGQtYmFuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaGllbGQtY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NoaWVsZC1lbGxpcHNpcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hpZWxkLWhhbGYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NoaWVsZC1taW51cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hpZWxkLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hpZWxkLXBsdXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NoaWVsZC1xdWVzdGlvbi1tYXJrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaGllbGQtdXNlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hpZWxkLXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NoaWVsZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hpcC13aGVlbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hpcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hpcnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Nob3BwaW5nLWJhZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hvcHBpbmctYmFza2V0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaG9wcGluZy1jYXJ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaG92ZWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Nob3dlci1oZWFkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaHJlZGRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2hyaW1wLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaHJpbmsudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NocnViLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaHVmZmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaWduYWwtaGlnaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2lnbWEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NpZ25hbC1sb3cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NpZ25hbC1tZWRpdW0udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NpZ25hbC16ZXJvLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaWduYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NpZ25hdHVyZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2lnbnBvc3QtYmlnLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zaWducG9zdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2lyZW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NraXAtYmFjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2t1bGwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NraXAtZm9yd2FyZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2xhY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NsYXNoLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zbGljZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc2xpZGVycy1ob3Jpem9udGFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zbGlkZXJzLXZlcnRpY2FsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zbWFydHBob25lLWNoYXJnaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zbWFydHBob25lLW5mYy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc21hcnRwaG9uZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc21pbGUtcGx1cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc21pbGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NuYWlsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zbm93Zmxha2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NvYXAtZGlzcGVuc2VyLWRyb3BsZXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NvZmEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NvbGFyLXBhbmVsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zb3VwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcGFjZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3BhZGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NwYXJrbGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NwYXJrbGVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcGVha2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcGVlY2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NwZWxsLWNoZWNrLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NwZWxsLWNoZWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcGxpbmUtcG9pbnRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3BsaW5lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcGxpdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3Bvb2wudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Nwb3RsaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3ByYXktY2FuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcHJvdXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1hY3Rpdml0eS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWFycm93LWRvd24tbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWFycm93LWRvd24tcmlnaHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1hcnJvdy1kb3duLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtYXJyb3ctbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWFycm93LW91dC1kb3duLWxlZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtZG93bi1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1sZWZ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LXVwLXJpZ2h0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtYXJyb3ctcmlnaHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1hcnJvdy11cC1sZWZ0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtYXJyb3ctdXAtcmlnaHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1hcnJvdy11cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWFzdGVyaXNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtYm90dG9tLWRhc2hlZC1zY2lzc29ycy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWNoYXJ0LWdhbnR0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1jaGVjay1iaWcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1jaGV2cm9uLWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1jaGV2cm9uLWxlZnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1jaGV2cm9uLXJpZ2h0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtY2hldnJvbi11cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWNvZGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1kYXNoZWQtYm90dG9tLWNvZGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1kYXNoZWQtYm90dG9tLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtZGFzaGVkLWthbmJhbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWRhc2hlZC1tb3VzZS1wb2ludGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtZGFzaGVkLXRvcC1zb2xpZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWRhc2hlZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWRpdmlkZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWRvdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLWVxdWFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtZnVuY3Rpb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1rYW5iYW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1saWJyYXJ5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtbS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLW1lbnUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1taW51cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLW1vdXNlLXBvaW50ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1wYXJraW5nLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLXBhcmtpbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1wZW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1wYXVzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLXBlcmNlbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1waS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLXBpbGNyb3cudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1wbGF5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtcGx1cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLXBvd2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtcmFkaWNhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLXNjaXNzb3JzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtcm91bmQtY29ybmVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtc2lnbWEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1zbGFzaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLXNwbGl0LWhvcml6b250YWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS1zcGxpdC12ZXJ0aWNhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLXNxdWFyZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLXN0YWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUtc3Rhci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLXN0b3AudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS10ZXJtaW5hbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLXVzZXItcm91bmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZS11c2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmUteC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3F1YXJlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmVzLWV4Y2x1ZGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZXMtaW50ZXJzZWN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVhcmVzLXN1YnRyYWN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVpcmNsZS1kYXNoZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWFyZXMtdW5pdGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3NxdWlyY2xlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zcXVpcnJlbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3RhbXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3N0YXItb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zdGFyLWhhbGYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3N0YXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3N0ZXAtYmFjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3RlcC1mb3J3YXJkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zdGV0aG9zY29wZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3RpY2tlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3RvbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3N0aWNreS1ub3RlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zdG9yZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3RyZXRjaC1ob3Jpem9udGFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zdHJldGNoLXZlcnRpY2FsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zdHJpa2V0aHJvdWdoLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zdWJzY3JpcHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3N1bi1kaW0udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3N1bi1tZWRpdW0udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3N1bi1tb29uLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zdW4tc25vdy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3VuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zdW5yaXNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zdW5zZXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3N1cGVyc2NyaXB0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zd2F0Y2gtYm9vay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvc3dpc3MtZnJhbmMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3N3aXRjaC1jYW1lcmEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3N3b3JkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy9zd29yZHMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3N5cmluZ2UudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhYmxlLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhYmxlLWNlbGxzLW1lcmdlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90YWJsZS1jZWxscy1zcGxpdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGFibGUtb2YtY29udGVudHMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhYmxlLWNvbHVtbnMtc3BsaXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhYmxlLXByb3BlcnRpZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhYmxlLXJvd3Mtc3BsaXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhYmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90YWJsZXQtc21hcnRwaG9uZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGFibGV0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90YWJsZXRzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90YWcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhZ3MudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhbGx5LTEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhbGx5LTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhbGx5LTMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhbGx5LTQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhbGx5LTUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhbmdlbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RhcmdldC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGVsZXNjb3BlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90ZW50LXRyZWUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RlbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Rlc3QtdHViZS1kaWFnb25hbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGVybWluYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Rlc3QtdHViZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGVzdC10dWJlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGV4dC1hbGlnbi1jZW50ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RleHQtYWxpZ24tZW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90ZXh0LWFsaWduLWp1c3RpZnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RleHQtYWxpZ24tc3RhcnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RleHQtY3Vyc29yLWlucHV0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90ZXh0LWN1cnNvci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGV4dC1xdW90ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGV4dC1pbml0aWFsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90ZXh0LXNlYXJjaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGV4dC1zZWxlY3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RoZWF0ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RleHQtd3JhcC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGhlcm1vbWV0ZXItc25vd2ZsYWtlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90aGVybW9tZXRlci1zdW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RoZXJtb21ldGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90aHVtYnMtZG93bi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGh1bWJzLXVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90aWNrZXQtY2hlY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RpY2tldC1taW51cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdGlja2V0LXBlcmNlbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RpY2tldC1wbHVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90aWNrZXQtc2xhc2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RpY2tldC14LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90aWNrZXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RpY2tldHMtcGxhbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RpY2tldHMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RpbWVyLXJlc2V0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90aW1lci1vZmYudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RpbWVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90b2dnbGUtbGVmdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdG9nZ2xlLXJpZ2h0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90b2lsZXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Rvb2wtY2FzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdG9vbGJveC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdG9ybmFkby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdG9ydXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RvdWNocGFkLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdG91Y2hwYWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Rvd2VyLWNvbnRyb2wudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RveS1icmljay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdHJhZmZpYy1jb25lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90cmFjdG9yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90cmFpbi1mcm9udC10dW5uZWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RyYWluLWZyb250LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90cmFpbi10cmFjay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdHJhbS1mcm9udC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdHJhbnNnZW5kZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RyYXNoLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RyYXNoLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90cmVlLWRlY2lkdW91cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdHJlZS1wYWxtLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90cmVlLXBpbmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RyZWVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90cmVsbG8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RyZW5kaW5nLWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RyZW5kaW5nLXVwLWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RyZW5kaW5nLXVwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90cmlhbmdsZS1hbGVydC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdHJpYW5nbGUtZGFzaGVkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90cmlhbmdsZS1yaWdodC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdHJpYW5nbGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3Ryb3BoeS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdHJ1Y2stZWxlY3RyaWMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3RydWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90dXJraXNoLWxpcmEudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3R1cm50YWJsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdHVydGxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90di1taW5pbWFsLXBsYXkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3R2LW1pbmltYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3R2LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy90d2l0Y2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3R3aXR0ZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3R5cGUtb3V0bGluZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdHlwZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdW1icmVsbGEtb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91bWJyZWxsYS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdW5kZXJsaW5lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91bmRvLTIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3VuZG8tZG90LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91bmRvLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91bmZvbGQtaG9yaXpvbnRhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdW5mb2xkLXZlcnRpY2FsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91bmdyb3VwLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91bml2ZXJzaXR5LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91bmxpbmstMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdW5saW5rLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91bnBsdWcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3VzYi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdXBsb2FkLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91c2VyLWNoZWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91c2VyLWNvZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdXNlci1sb2NrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91c2VyLW1pbnVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91c2VyLXBlbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdXNlci1wbHVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91c2VyLXJvdW5kLWNoZWNrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91c2VyLXJvdW5kLWNvZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdXNlci1yb3VuZC1taW51cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdXNlci1yb3VuZC1wZW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3VzZXItcm91bmQtcGx1cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdXNlci1yb3VuZC1zZWFyY2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3VzZXItcm91bmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3VzZXItcm91bmQteC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdXNlci1zZWFyY2gudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3VzZXItc3Rhci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdXNlci14LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91c2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy91c2Vycy1yb3VuZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdXNlcnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3V0ZW5zaWxzLWNyb3NzZWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3V0ZW5zaWxzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy92YW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3V0aWxpdHktcG9sZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdmFyaWFibGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3ZhdWx0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy92ZWN0b3Itc3F1YXJlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy92ZWdhbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdmVuZXRpYW4tbWFzay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdmVudXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3ZlbnVzLWFuZC1tYXJzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy92aWJyYXRlLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdmlicmF0ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdmlkZW8tb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy92aWRlby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdm9pY2VtYWlsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy92aWRlb3RhcGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3ZpZXcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3ZvbGxleWJhbGwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3ZvbHVtZS0xLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy92b2x1bWUtMi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdm9sdW1lLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdm9sdW1lLXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3ZvbHVtZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvdm90ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2FsbGV0LW1pbmltYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3dhbGxldC1jYXJkcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2FsbGV0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy93YWxscGFwZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3dhbmQtc3BhcmtsZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3dhbmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3dhcmVob3VzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2FzaGluZy1tYWNoaW5lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy93YXRjaC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2F2ZXMtYXJyb3ctZG93bi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2F2ZXMtYXJyb3ctdXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3dhdmVzLWxhZGRlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2F2ZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3dheXBvaW50cy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2ViY2FtLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy93ZWJob29rLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2ViaG9vay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2VpZ2h0LXRpbGRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy93ZWlnaHQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3doZWF0LW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2hlYXQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3dob2xlLXdvcmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3dpZmktY29nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy93aWZpLWxvdy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2lmaS1oaWdoLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy93aWZpLW9mZi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2lmaS1wZW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3dpZmktc3luYy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd2lmaS16ZXJvLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy93aWZpLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy93aW5kLWFycm93LWRvd24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3dpbmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3dpbmUtb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy93aW5lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy93b3JtLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy93b3JrZmxvdy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvaWNvbnMvd3JlbmNoLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy94LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy95b3V0dWJlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy96YXAtb2ZmLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL3NyYy9pY29ucy96YXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3pvb20taW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2x1Y2lkZUAwLjU2Mi4wL25vZGVfbW9kdWxlcy9sdWNpZGUvc3JjL2ljb25zL3pvb20tb3V0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9sdWNpZGVAMC41NjIuMC9ub2RlX21vZHVsZXMvbHVjaWRlL2Rpc3QvZXNtL2ljb25zQW5kQWxpYXNlcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vbHVjaWRlQDAuNTYyLjAvbm9kZV9tb2R1bGVzL2x1Y2lkZS9zcmMvbHVjaWRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtaWNvbi9kZWVzLWljb24uZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLWljb24vZGVlcy1pY29uLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL3NlcnZpY2VzL3ZlcnNpb25zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL3NlcnZpY2VzL0RlZXNTZXJ2aWNlTGliTG9hZGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL3NlcnZpY2VzL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvZGlzdF90c193ZWIvZWxlbWVudHMvMDBncm91cC1ydW50aW1lL2ludGVyZmFjZXMvSUV4ZWN1dGlvbkVudmlyb25tZW50LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtcnVudGltZS9pbnRlcmZhY2VzL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdGVtcGZpeCt3ZWJjb250YWluZXJfX2FwaUAxLjYuMS9ub2RlX21vZHVsZXMvQHRlbXBmaXgvd2ViY29udGFpbmVyX19hcGkvZGlzdC9pbnRlcm5hbC9jb25zdGFudHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0ZW1wZml4K3dlYmNvbnRhaW5lcl9fYXBpQDEuNi4xL25vZGVfbW9kdWxlcy9AdGVtcGZpeC93ZWJjb250YWluZXJfX2FwaS9kaXN0L2ludGVybmFsL1R5cGVkRXZlbnRUYXJnZXQuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0ZW1wZml4K3dlYmNvbnRhaW5lcl9fYXBpQDEuNi4xL25vZGVfbW9kdWxlcy9AdGVtcGZpeC93ZWJjb250YWluZXJfX2FwaS9kaXN0L2ludGVybmFsL3Rva2Vucy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRlbXBmaXgrd2ViY29udGFpbmVyX19hcGlAMS42LjEvbm9kZV9tb2R1bGVzL0B0ZW1wZml4L3dlYmNvbnRhaW5lcl9fYXBpL2Rpc3QvaW50ZXJuYWwvaWZyYW1lLXVybC5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRlbXBmaXgrd2ViY29udGFpbmVyX19hcGlAMS42LjEvbm9kZV9tb2R1bGVzL0B0ZW1wZml4L3dlYmNvbnRhaW5lcl9fYXBpL2Rpc3QvaW50ZXJuYWwvY29kZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRlbXBmaXgrd2ViY29udGFpbmVyX19hcGlAMS42LjEvbm9kZV9tb2R1bGVzL0B0ZW1wZml4L3dlYmNvbnRhaW5lcl9fYXBpL2Rpc3QvaW50ZXJuYWwvcmVzZXQtcHJvbWlzZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRlbXBmaXgrd2ViY29udGFpbmVyX19hcGlAMS42LjEvbm9kZV9tb2R1bGVzL0B0ZW1wZml4L3dlYmNvbnRhaW5lcl9fYXBpL2Rpc3QvaW50ZXJuYWwvYXV0aC1zdGF0ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRlbXBmaXgrd2ViY29udGFpbmVyX19hcGlAMS42LjEvbm9kZV9tb2R1bGVzL0B0ZW1wZml4L3dlYmNvbnRhaW5lcl9fYXBpL2Rpc3QvcHJldmlldy1tZXNzYWdlLXR5cGVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdGVtcGZpeCt3ZWJjb250YWluZXJfX2FwaUAxLjYuMS9ub2RlX21vZHVsZXMvQHRlbXBmaXgvd2ViY29udGFpbmVyX19hcGkvZGlzdC92ZW5kb3IvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0ZW1wZml4K3dlYmNvbnRhaW5lcl9fYXBpQDEuNi4xL25vZGVfbW9kdWxlcy9AdGVtcGZpeC93ZWJjb250YWluZXJfX2FwaS9kaXN0L3V0aWxzL3JlbG9hZC1wcmV2aWV3LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdGVtcGZpeCt3ZWJjb250YWluZXJfX2FwaUAxLjYuMS9ub2RlX21vZHVsZXMvQHRlbXBmaXgvd2ViY29udGFpbmVyX19hcGkvZGlzdC91dGlscy9pcy1wcmV2aWV3LW1lc3NhZ2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0ZW1wZml4K3dlYmNvbnRhaW5lcl9fYXBpQDEuNi4xL25vZGVfbW9kdWxlcy9AdGVtcGZpeC93ZWJjb250YWluZXJfX2FwaS9kaXN0L3V0aWxzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdGVtcGZpeCt3ZWJjb250YWluZXJfX2FwaUAxLjYuMS9ub2RlX21vZHVsZXMvQHRlbXBmaXgvd2ViY29udGFpbmVyX19hcGkvZGlzdC91dGlscy9udWxsLXByb3RvdHlwZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRlbXBmaXgrd2ViY29udGFpbmVyX19hcGlAMS42LjEvbm9kZV9tb2R1bGVzL0B0ZW1wZml4L3dlYmNvbnRhaW5lcl9fYXBpL2Rpc3QvdXRpbHMvZmlsZS1zeXN0ZW0uanMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0ZW1wZml4K3dlYmNvbnRhaW5lcl9fYXBpQDEuNi4xL25vZGVfbW9kdWxlcy9AdGVtcGZpeC93ZWJjb250YWluZXJfX2FwaS9kaXN0L2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtcnVudGltZS9lbnZpcm9ubWVudHMvV2ViQ29udGFpbmVyRW52aXJvbm1lbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1ydW50aW1lL2Vudmlyb25tZW50cy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXJ1bnRpbWUvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1hY3Rpb25iYXIvZGVlcy1hY3Rpb25iYXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC13b3Jrc3BhY2UvZGVlcy13b3Jrc3BhY2UtdGVybWluYWwvdGVybWluYWwtdGFiLW1hbmFnZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC13b3Jrc3BhY2UvZGVlcy13b3Jrc3BhY2UtdGVybWluYWwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDB6aW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NAOS4zLjAvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NAOS4zLjAvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvYnVzaW5lc3MvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NAOS4zLjAvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvZGF0YWJhc2UvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NAOS4zLjAvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvZmluYW5jZS9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A5LjMuMC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy90cy9jb2RlL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDkuMy4wL25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL2NvbnRhaW5lci9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A5LjMuMC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy90cy9kZXNjcmlwdG9ycy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A5LjMuMC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy90cy9jb250ZW50L2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDkuMy4wL25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL2dlbmVyYWwvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NAOS4zLjAvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvdHMvbmV0d29yay9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQHRzY2xhc3MrdHNjbGFzc0A5LjMuMC9ub2RlX21vZHVsZXMvQHRzY2xhc3MvdHNjbGFzcy90cy9uZXR3b3JrL2NuYW1lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDkuMy4wL25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL3NhYXMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0B0c2NsYXNzK3RzY2xhc3NAOS4zLjAvbm9kZV9tb2R1bGVzL0B0c2NsYXNzL3RzY2xhc3MvZGlzdF90cy9zdG9yYWdlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AdHNjbGFzcyt0c2NsYXNzQDkuMy4wL25vZGVfbW9kdWxlcy9AdHNjbGFzcy90c2NsYXNzL3RzL3dlYnNpdGUvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBwbHVnaW5zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtY29udGV4dG1lbnUvZGVlcy1jb250ZXh0bWVudS5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtd2luZG93bGF5ZXIvZGVlcy13aW5kb3dsYXllci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLWNvbnRleHRtZW51L2RlZXMtY29udGV4dG1lbnUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtd2NjdG9vbHNAMi4wLjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtd2NjdG9vbHMvdHNfZGVtb3Rvb2xzL2RlbW90b29scy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWFwcHVpL2RlZXMtYXBwdWktYWN0aXZpdHlsb2cvZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtYXBwdWkvZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy9kZWVzLWFwcHVpLWFjdGl2aXR5bG9nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtYXBwdWkvZGVlcy1hcHB1aS1hcHBiYXIvZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWFwcHVpL2RlZXMtYXBwdWktYXBwYmFyL3N0eWxlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWFwcHVpL2RlZXMtYXBwdWktYXBwYmFyL3RlbXBsYXRlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtd2luZG93Y29udHJvbHMvZGVlcy13aW5kb3djb250cm9scy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWFwcHVpL2RlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duL2RlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtYXBwdWkvZGVlcy1hcHB1aS1hcHBiYXIvY29tcG9uZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtYXBwdWkvZGVlcy1hcHB1aS1ib3R0b21iYXIvZGVlcy1hcHB1aS1ib3R0b21iYXIuZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWFwcHVpL2RlZXMtYXBwdWktYm90dG9tYmFyL2RlZXMtYXBwdWktYm90dG9tYmFyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtYXBwdWkvZGVlcy1hcHB1aS9kZWVzLWFwcHVpLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1hcHB1aS9kZWVzLWFwcHVpL3ZpZXcucmVnaXN0cnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1hcHB1aS9kZWVzLWFwcHVpLW1haW5tZW51L2RlZXMtYXBwdWktbWFpbm1lbnUuZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWFwcHVpL2RlZXMtYXBwdWktbWFpbm1lbnUvZGVlcy1hcHB1aS1tYWlubWVudS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWFwcHVpL2RlZXMtYXBwdWktc2Vjb25kYXJ5bWVudS9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUuZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWFwcHVpL2RlZXMtYXBwdWktc2Vjb25kYXJ5bWVudS9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1hcHB1aS9kZWVzLWFwcHVpLXRhYnMvZGVlcy1hcHB1aS10YWJzLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1hcHB1aS9kZWVzLWFwcHVpLXRhYnMvZGVlcy1hcHB1aS10YWJzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtYXBwdWkvZGVlcy1hcHB1aS1tYWluY29udGVudC9kZWVzLWFwcHVpLW1haW5jb250ZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtYXBwdWkvZGVlcy1hcHB1aS9kZWVzLWFwcHVpLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtcGFuZWwvZGVlcy1wYW5lbC5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZm9udHMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1wYW5lbC9kZWVzLXBhbmVsLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1iYXNlL2RlZXMtaW5wdXQtYmFzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtY2hlY2tib3gvZGVlcy1pbnB1dC1jaGVja2JveC5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1jaGVja2JveC9kZWVzLWlucHV0LWNoZWNrYm94LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwY29sb3JzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtbW9kYWwvZGVlcy1tb2RhbC5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtbW9kYWwvZGVlcy1tb2RhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLWxhYmVsL2RlZXMtbGFiZWwuZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLWxhYmVsL2RlZXMtbGFiZWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC13b3Jrc3BhY2UvZGVlcy13b3Jrc3BhY2UtbW9uYWNvL3ZlcnNpb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC13b3Jrc3BhY2UvZGVlcy13b3Jrc3BhY2UtbW9uYWNvL2RlZXMtd29ya3NwYWNlLW1vbmFjby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtY29kZS9kZWVzLWlucHV0LWNvZGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LWRhdGVwaWNrZXIvZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtZGF0ZXBpY2tlci9zdHlsZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LWRhdGVwaWNrZXIvdGVtcGxhdGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LWRhdGVwaWNrZXIvY29tcG9uZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC10ZXh0L2RlZXMtaW5wdXQtdGV4dC5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC10ZXh0L2RlZXMtaW5wdXQtdGV4dC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkL2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQuZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkL2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1yYWRpb2dyb3VwL2RlZXMtaW5wdXQtcmFkaW9ncm91cC5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1yYWRpb2dyb3VwL2RlZXMtaW5wdXQtcmFkaW9ncm91cC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWZvcm0vZGVlcy1mb3JtLXN1Ym1pdC9kZWVzLWZvcm0tc3VibWl0LmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1mb3JtL2RlZXMtZm9ybS1zdWJtaXQvZGVlcy1mb3JtLXN1Ym1pdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtZHJvcGRvd24vZGVlcy1pbnB1dC1kcm9wZG93bi5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1kcm9wZG93bi9kZWVzLWlucHV0LWRyb3Bkb3duLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1maWxldXBsb2FkL2RlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LWZpbGV1cGxvYWQvc3R5bGVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1maWxldXBsb2FkL2NvbXBvbmVudC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vaWJhbnRvb2xzQDQuNS4xL25vZGVfbW9kdWxlcy9pYmFudG9vbHMvanNuZXh0L2liYW50b29scy5qcyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtaWJhbi9kZWVzLWlucHV0LWliYW4uZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtaWJhbi9kZWVzLWlucHV0LWliYW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlL2RlZXMtaW5wdXQtbXVsdGl0b2dnbGUuZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGUvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtcGhvbmUvZGVlcy1pbnB1dC1waG9uZS5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1waG9uZS9kZWVzLWlucHV0LXBob25lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC10eXBlbGlzdC9kZWVzLWlucHV0LXR5cGVsaXN0LmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXR5cGVsaXN0L2RlZXMtaW5wdXQtdHlwZWxpc3QudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy10YWJsZS9kZWVzLXRhYmxlLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy10YWJsZS9zdHlsZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy10YWJsZS9kYXRhLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtdGFibGUvbHVjZW5lLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtdGFibGUvZGVlcy10YWJsZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWZvcm0vZGVlcy1mb3JtL2RlZXMtZm9ybS5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtZm9ybS9kZWVzLWZvcm0vZGVlcy1mb3JtLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtYnV0dG9uL2RlZXMtYnV0dG9uL2RlZXMtYnV0dG9uLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1idXR0b24vZGVlcy1idXR0b24vZGVlcy1idXR0b24udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1idXR0b24vZGVlcy1idXR0b24tZXhpdC9kZWVzLWJ1dHRvbi1leGl0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtYnV0dG9uL2RlZXMtYnV0dG9uLWdyb3VwL2RlZXMtYnV0dG9uLWdyb3VwLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1idXR0b24vZGVlcy1idXR0b24tZ3JvdXAvZGVlcy1idXR0b24tZ3JvdXAudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1jaGFydC9kZWVzLWNoYXJ0LWFyZWEvZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWNoYXJ0L2RlZXMtY2hhcnQtYXJlYS9zdHlsZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1jaGFydC9kZWVzLWNoYXJ0LWFyZWEvdGVtcGxhdGUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1jaGFydC9kZWVzLWNoYXJ0LWFyZWEvY29tcG9uZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtY2hhcnQvZGVlcy1jaGFydC1sb2cvZGVlcy1jaGFydC1sb2cuZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWNoYXJ0L2RlZXMtY2hhcnQtbG9nL2RlZXMtY2hhcnQtbG9nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtZGF0YXZpZXcvZGVlcy1kYXRhdmlldy1jb2RlYm94L2RlZXMtZGF0YXZpZXctY29kZWJveC5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtZGF0YXZpZXcvZGVlcy1kYXRhdmlldy1jb2RlYm94L2RlZXMtZGF0YXZpZXctY29kZWJveC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWRhdGF2aWV3L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0LmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1kYXRhdmlldy9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS1maWxldHJlZS9kZWVzLXdvcmtzcGFjZS1maWxldHJlZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC13b3Jrc3BhY2UvZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyL2RlZXMtd29ya3NwYWNlLWJvdHRvbWJhci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS90eXBlc2NyaXB0LWludGVsbGlzZW5zZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvci9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bi9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldC5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtd29ya3NwYWNlL2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1saXN0L2RlZXMtaW5wdXQtbGlzdC5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1saXN0L2RlZXMtaW5wdXQtbGlzdC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtcmljaHRleHQvZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtcmljaHRleHQvc3R5bGVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1yaWNodGV4dC90ZW1wbGF0ZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtcmljaHRleHQvY29tcG9uZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC10YWdzL2RlZXMtaW5wdXQtdGFncy5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC10YWdzL2RlZXMtaW5wdXQtdGFncy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC13eXNpd3lnL3d5c2l3eWcuc2hvcnRjdXRzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC13eXNpd3lnL2RlZXMtc2xhc2gtbWVudS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy93eXNpd3lnLnNlbGVjdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy93eXNpd3lnLmZvcm1hdHRpbmcudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXd5c2l3eWcvZGVlcy1mb3JtYXR0aW5nLW1lbnUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXd5c2l3eWcvd3lzaXd5Zy5pbnRlcmZhY2VzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC13eXNpd3lnL3d5c2l3eWcuY29uc3RhbnRzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC13eXNpd3lnL3d5c2l3eWcuc3R5bGVzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC13eXNpd3lnL3d5c2l3eWcuY29udmVydGVycy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy93eXNpd3lnLmJsb2Nrcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy93eXNpd3lnLmJsb2Nrb3BlcmF0aW9ucy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy9ibG9ja3MvYmxvY2suYmFzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy9ibG9ja3MvYmxvY2sucmVnaXN0cnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXd5c2l3eWcvYmxvY2tzL3RleHQvcGFyYWdyYXBoLmJsb2NrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC13eXNpd3lnL2Jsb2Nrcy90ZXh0L2hlYWRpbmcuYmxvY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXd5c2l3eWcvYmxvY2tzL3RleHQvcXVvdGUuYmxvY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXd5c2l3eWcvYmxvY2tzL3RleHQvY29kZS5ibG9jay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy9ibG9ja3MvdGV4dC9saXN0LmJsb2NrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC13eXNpd3lnL2Jsb2Nrcy9tZWRpYS9pbWFnZS5ibG9jay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy9ibG9ja3MvbWVkaWEveW91dHViZS5ibG9jay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy9ibG9ja3MvbWVkaWEvYXR0YWNobWVudC5ibG9jay50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy9ibG9ja3MvY29udGVudC9kaXZpZGVyLmJsb2NrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC13eXNpd3lnL2Jsb2Nrcy9jb250ZW50L21hcmtkb3duLmJsb2NrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC13eXNpd3lnL2Jsb2Nrcy9jb250ZW50L2h0bWwuYmxvY2sudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXd5c2l3eWcvd3lzaXd5Zy5ibG9ja3JlZ2lzdHJhdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy93eXNpd3lnLm1vZGFsbWFuYWdlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy93eXNpd3lnLmlucHV0aGFuZGxlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy93eXNpd3lnLmtleWJvYXJkaGFuZGxlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy93eXNpd3lnLmRyYWdkcm9waGFuZGxlci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy93eXNpd3lnLmhpc3RvcnkudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXd5c2l3eWcvZGVlcy13eXNpd3lnLWJsb2NrLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC13eXNpd3lnL2RlZXMtaW5wdXQtd3lzaXd5Zy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L3Byb2ZpbGVwaWN0dXJlL3Byb2ZpbGVwaWN0dXJlLmNyb3BwZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9wcm9maWxlcGljdHVyZS9wcm9maWxlcGljdHVyZS5tb2RhbC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L3Byb2ZpbGVwaWN0dXJlL2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUuZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L3Byb2ZpbGVwaWN0dXJlL2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1wZGYvZGVlcy1wZGYvY29tcG9uZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtcGRmL2RlZXMtcGRmLXNoYXJlZC9QZGZNYW5hZ2VyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtcGRmL2RlZXMtcGRmLXNoYXJlZC9DYW52YXNQb29sLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtcGRmL2RlZXMtcGRmLXNoYXJlZC91dGlscy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXBkZi9kZWVzLXBkZi1wcmV2aWV3L3N0eWxlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXBkZi9kZWVzLXBkZi1wcmV2aWV3L2RlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1wZGYvZGVlcy1wZGYtcHJldmlldy9jb21wb25lbnQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1wZGYvZGVlcy1wZGYtdmlld2VyL3N0eWxlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXBkZi9kZWVzLXBkZi12aWV3ZXIvZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXBkZi9kZWVzLXBkZi12aWV3ZXIvY29tcG9uZW50LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtc3RhdHNncmlkL2RlZXMtc3RhdHNncmlkLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1zdGF0c2dyaWQvZGVlcy1zdGF0c2dyaWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1zaW1wbGUvZGVlcy1zaW1wbGUtYXBwZGFzaC9kZWVzLXNpbXBsZS1hcHBkYXNoLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1zaW1wbGUvZGVlcy1zaW1wbGUtYXBwZGFzaC9kZWVzLXNpbXBsZS1hcHBkYXNoLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtc2ltcGxlL2RlZXMtc2ltcGxlLWxvZ2luL2RlZXMtc2ltcGxlLWxvZ2luLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvMDBncm91cC1zaW1wbGUvZGVlcy1zaW1wbGUtbG9naW4vZGVlcy1zaW1wbGUtbG9naW4udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1hY3Rpb25iYXIvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1iYWRnZS9kZWVzLWJhZGdlLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1iYWRnZS9kZWVzLWJhZGdlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtY2hpcHMvZGVlcy1jaGlwcy5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtY2hpcHMvZGVlcy1jaGlwcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLWRhc2hib2FyZGdyaWQvZGVlcy1kYXNoYm9hcmRncmlkLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1kYXNoYm9hcmRncmlkL3N0eWxlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLWRhc2hib2FyZGdyaWQvbGF5b3V0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtZGFzaGJvYXJkZ3JpZC9pbnRlcmFjdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLWRhc2hib2FyZGdyaWQvY29udGV4dG1lbnUudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1kYXNoYm9hcmRncmlkL2RlZXMtZGFzaGJvYXJkZ3JpZC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLWhlYWRpbmcvZGVlcy1oZWFkaW5nLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1oZWFkaW5nL2RlZXMtaGVhZGluZy50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLWhpbnQvZGVlcy1oaW50LmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1oaW50L2RlZXMtaGludC50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLWljb24vaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1tb2JpbGVuYXZpZ2F0aW9uL2RlZXMtbW9iaWxlbmF2aWdhdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLXBhZ2luYXRpb24vZGVlcy1wYWdpbmF0aW9uLmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1wYWdpbmF0aW9uL2RlZXMtcGFnaW5hdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLXByb2dyZXNzYmFyL2RlZXMtcHJvZ3Jlc3NiYXIuZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLXByb2dyZXNzYmFyL2RlZXMtcHJvZ3Jlc3NiYXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1zZWFyY2hiYXIvZGVlcy1zZWFyY2hiYXIuZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLXNlYXJjaGJhci9kZWVzLXNlYXJjaGJhci50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLXNwZWVjaGJ1YmJsZS9kZWVzLXNwZWVjaGJ1YmJsZS5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtc3BlZWNoYnViYmxlL2RlZXMtc3BlZWNoYnViYmxlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtc3Bpbm5lci9kZWVzLXNwaW5uZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy1zdGVwcGVyL2RlZXMtc3RlcHBlci5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtc3RlcHBlci9kZWVzLXN0ZXBwZXIudHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy10b2FzdC9kZWVzLXRvYXN0LmRlbW8udHMiLCAiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL0BkZXNpZ24uZXN0YXRlK2RlZXMtY2F0YWxvZ0AzLjMyLjBfQHRpcHRhcCtwbUAyLjI3LjEvbm9kZV9tb2R1bGVzL0BkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZy90c193ZWIvZWxlbWVudHMvZGVlcy10b2FzdC9kZWVzLXRvYXN0LnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtdXBkYXRlci9kZWVzLXVwZGF0ZXIuZGVtby50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9kZWVzLXVwZGF0ZXIvZGVlcy11cGRhdGVyLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtdGhlbWUvZGVlcy10aGVtZS5kZW1vLnRzIiwgIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9AZGVzaWduLmVzdGF0ZStkZWVzLWNhdGFsb2dAMy4zMi4wX0B0aXB0YXArcG1AMi4yNy4xL25vZGVfbW9kdWxlcy9AZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cvdHNfd2ViL2VsZW1lbnRzL2RlZXMtdGhlbWUvZGVlcy10aGVtZS50cyIsICIuLi9ub2RlX21vZHVsZXMvLnBucG0vQGRlc2lnbi5lc3RhdGUrZGVlcy1jYXRhbG9nQDMuMzIuMF9AdGlwdGFwK3BtQDIuMjcuMS9ub2RlX21vZHVsZXMvQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nL3RzX3dlYi9lbGVtZW50cy9pbmRleC50cyIsICIuLi90c193ZWIvZWxlbWVudHMvb3BlbmNkbi1tYWlucGFnZS50cyIsICIuLi90c193ZWIvZWxlbWVudHMvb3BlbmNkbi1wZWVrcGFnZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5cbmNvbnN0IE5PREVfTU9ERSA9IGZhbHNlO1xuXG4vLyBBbGxvd3MgbWluaWZpZXJzIHRvIHJlbmFtZSByZWZlcmVuY2VzIHRvIGdsb2JhbFRoaXNcbmNvbnN0IGdsb2JhbCA9IGdsb2JhbFRoaXM7XG5cbi8qKlxuICogV2hldGhlciB0aGUgY3VycmVudCBicm93c2VyIHN1cHBvcnRzIGBhZG9wdGVkU3R5bGVTaGVldHNgLlxuICovXG5leHBvcnQgY29uc3Qgc3VwcG9ydHNBZG9wdGluZ1N0eWxlU2hlZXRzOiBib29sZWFuID1cbiAgZ2xvYmFsLlNoYWRvd1Jvb3QgJiZcbiAgKGdsb2JhbC5TaGFkeUNTUyA9PT0gdW5kZWZpbmVkIHx8IGdsb2JhbC5TaGFkeUNTUy5uYXRpdmVTaGFkb3cpICYmXG4gICdhZG9wdGVkU3R5bGVTaGVldHMnIGluIERvY3VtZW50LnByb3RvdHlwZSAmJlxuICAncmVwbGFjZScgaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGU7XG5cbi8qKlxuICogQSBDU1NSZXN1bHQgb3IgbmF0aXZlIENTU1N0eWxlU2hlZXQuXG4gKlxuICogSW4gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IGNvbnN0cnVjdGlibGUgQ1NTIHN0eWxlIHNoZWV0cywgQ1NTU3R5bGVTaGVldFxuICogb2JqZWN0IGNhbiBiZSB1c2VkIGZvciBzdHlsaW5nIGFsb25nIHNpZGUgQ1NTUmVzdWx0IGZyb20gdGhlIGBjc3NgXG4gKiB0ZW1wbGF0ZSB0YWcuXG4gKi9cbmV4cG9ydCB0eXBlIENTU1Jlc3VsdE9yTmF0aXZlID0gQ1NTUmVzdWx0IHwgQ1NTU3R5bGVTaGVldDtcblxuZXhwb3J0IHR5cGUgQ1NTUmVzdWx0QXJyYXkgPSBBcnJheTxDU1NSZXN1bHRPck5hdGl2ZSB8IENTU1Jlc3VsdEFycmF5PjtcblxuLyoqXG4gKiBBIHNpbmdsZSBDU1NSZXN1bHQsIENTU1N0eWxlU2hlZXQsIG9yIGFuIGFycmF5IG9yIG5lc3RlZCBhcnJheXMgb2YgdGhvc2UuXG4gKi9cbmV4cG9ydCB0eXBlIENTU1Jlc3VsdEdyb3VwID0gQ1NTUmVzdWx0T3JOYXRpdmUgfCBDU1NSZXN1bHRBcnJheTtcblxuY29uc3QgY29uc3RydWN0aW9uVG9rZW4gPSBTeW1ib2woKTtcblxuY29uc3QgY3NzVGFnQ2FjaGUgPSBuZXcgV2Vha01hcDxUZW1wbGF0ZVN0cmluZ3NBcnJheSwgQ1NTU3R5bGVTaGVldD4oKTtcblxuLyoqXG4gKiBBIGNvbnRhaW5lciBmb3IgYSBzdHJpbmcgb2YgQ1NTIHRleHQsIHRoYXQgbWF5IGJlIHVzZWQgdG8gY3JlYXRlIGEgQ1NTU3R5bGVTaGVldC5cbiAqXG4gKiBDU1NSZXN1bHQgaXMgdGhlIHJldHVybiB2YWx1ZSBvZiBgY3NzYC10YWdnZWQgdGVtcGxhdGUgbGl0ZXJhbHMgYW5kXG4gKiBgdW5zYWZlQ1NTKClgLiBJbiBvcmRlciB0byBlbnN1cmUgdGhhdCBDU1NSZXN1bHRzIGFyZSBvbmx5IGNyZWF0ZWQgdmlhIHRoZVxuICogYGNzc2AgdGFnIGFuZCBgdW5zYWZlQ1NTKClgLCBDU1NSZXN1bHQgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGRpcmVjdGx5LlxuICovXG5leHBvcnQgY2xhc3MgQ1NTUmVzdWx0IHtcbiAgLy8gVGhpcyBwcm9wZXJ0eSBuZWVkcyB0byByZW1haW4gdW5taW5pZmllZC5cbiAgWydfJGNzc1Jlc3VsdCQnXSA9IHRydWU7XG4gIHJlYWRvbmx5IGNzc1RleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfc3R5bGVTaGVldD86IENTU1N0eWxlU2hlZXQ7XG4gIHByaXZhdGUgX3N0cmluZ3M6IFRlbXBsYXRlU3RyaW5nc0FycmF5IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgY3NzVGV4dDogc3RyaW5nLFxuICAgIHN0cmluZ3M6IFRlbXBsYXRlU3RyaW5nc0FycmF5IHwgdW5kZWZpbmVkLFxuICAgIHNhZmVUb2tlbjogc3ltYm9sXG4gICkge1xuICAgIGlmIChzYWZlVG9rZW4gIT09IGNvbnN0cnVjdGlvblRva2VuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLidcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY3NzVGV4dCA9IGNzc1RleHQ7XG4gICAgdGhpcy5fc3RyaW5ncyA9IHN0cmluZ3M7XG4gIH1cblxuICAvLyBUaGlzIGlzIGEgZ2V0dGVyIHNvIHRoYXQgaXQncyBsYXp5LiBJbiBwcmFjdGljZSwgdGhpcyBtZWFucyBzdHlsZXNoZWV0c1xuICAvLyBhcmUgbm90IGNyZWF0ZWQgdW50aWwgdGhlIGZpcnN0IGVsZW1lbnQgaW5zdGFuY2UgaXMgbWFkZS5cbiAgZ2V0IHN0eWxlU2hlZXQoKTogQ1NTU3R5bGVTaGVldCB8IHVuZGVmaW5lZCB7XG4gICAgLy8gSWYgYHN1cHBvcnRzQWRvcHRpbmdTdHlsZVNoZWV0c2AgaXMgdHJ1ZSB0aGVuIHdlIGFzc3VtZSBDU1NTdHlsZVNoZWV0IGlzXG4gICAgLy8gY29uc3RydWN0YWJsZS5cbiAgICBsZXQgc3R5bGVTaGVldCA9IHRoaXMuX3N0eWxlU2hlZXQ7XG4gICAgY29uc3Qgc3RyaW5ncyA9IHRoaXMuX3N0cmluZ3M7XG4gICAgaWYgKHN1cHBvcnRzQWRvcHRpbmdTdHlsZVNoZWV0cyAmJiBzdHlsZVNoZWV0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGNhY2hlYWJsZSA9IHN0cmluZ3MgIT09IHVuZGVmaW5lZCAmJiBzdHJpbmdzLmxlbmd0aCA9PT0gMTtcbiAgICAgIGlmIChjYWNoZWFibGUpIHtcbiAgICAgICAgc3R5bGVTaGVldCA9IGNzc1RhZ0NhY2hlLmdldChzdHJpbmdzKTtcbiAgICAgIH1cbiAgICAgIGlmIChzdHlsZVNoZWV0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgKHRoaXMuX3N0eWxlU2hlZXQgPSBzdHlsZVNoZWV0ID0gbmV3IENTU1N0eWxlU2hlZXQoKSkucmVwbGFjZVN5bmMoXG4gICAgICAgICAgdGhpcy5jc3NUZXh0XG4gICAgICAgICk7XG4gICAgICAgIGlmIChjYWNoZWFibGUpIHtcbiAgICAgICAgICBjc3NUYWdDYWNoZS5zZXQoc3RyaW5ncywgc3R5bGVTaGVldCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlU2hlZXQ7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNzc1RleHQ7XG4gIH1cbn1cblxudHlwZSBDb25zdHJ1Y3RhYmxlQ1NTUmVzdWx0ID0gQ1NTUmVzdWx0ICYge1xuICBuZXcgKFxuICAgIGNzc1RleHQ6IHN0cmluZyxcbiAgICBzdHJpbmdzOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSB8IHVuZGVmaW5lZCxcbiAgICBzYWZlVG9rZW46IHN5bWJvbFxuICApOiBDU1NSZXN1bHQ7XG59O1xuXG5jb25zdCB0ZXh0RnJvbUNTU1Jlc3VsdCA9ICh2YWx1ZTogQ1NTUmVzdWx0R3JvdXAgfCBudW1iZXIpID0+IHtcbiAgLy8gVGhpcyBwcm9wZXJ0eSBuZWVkcyB0byByZW1haW4gdW5taW5pZmllZC5cbiAgaWYgKCh2YWx1ZSBhcyBDU1NSZXN1bHQpWydfJGNzc1Jlc3VsdCQnXSA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiAodmFsdWUgYXMgQ1NTUmVzdWx0KS5jc3NUZXh0O1xuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiBgICtcbiAgICAgICAgYCR7dmFsdWV9LiBVc2UgJ3Vuc2FmZUNTUycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dCB0YWtlIGNhcmUgYCArXG4gICAgICAgIGB0byBlbnN1cmUgcGFnZSBzZWN1cml0eS5gXG4gICAgKTtcbiAgfVxufTtcblxuLyoqXG4gKiBXcmFwIGEgdmFsdWUgZm9yIGludGVycG9sYXRpb24gaW4gYSB7QGxpbmtjb2RlIGNzc30gdGFnZ2VkIHRlbXBsYXRlIGxpdGVyYWwuXG4gKlxuICogVGhpcyBpcyB1bnNhZmUgYmVjYXVzZSB1bnRydXN0ZWQgQ1NTIHRleHQgY2FuIGJlIHVzZWQgdG8gcGhvbmUgaG9tZVxuICogb3IgZXhmaWx0cmF0ZSBkYXRhIHRvIGFuIGF0dGFja2VyIGNvbnRyb2xsZWQgc2l0ZS4gVGFrZSBjYXJlIHRvIG9ubHkgdXNlXG4gKiB0aGlzIHdpdGggdHJ1c3RlZCBpbnB1dC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVuc2FmZUNTUyA9ICh2YWx1ZTogdW5rbm93bikgPT5cbiAgbmV3IChDU1NSZXN1bHQgYXMgQ29uc3RydWN0YWJsZUNTU1Jlc3VsdCkoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogU3RyaW5nKHZhbHVlKSxcbiAgICB1bmRlZmluZWQsXG4gICAgY29uc3RydWN0aW9uVG9rZW5cbiAgKTtcblxuLyoqXG4gKiBBIHRlbXBsYXRlIGxpdGVyYWwgdGFnIHdoaWNoIGNhbiBiZSB1c2VkIHdpdGggTGl0RWxlbWVudCdzXG4gKiB7QGxpbmtjb2RlIExpdEVsZW1lbnQuc3R5bGVzfSBwcm9wZXJ0eSB0byBzZXQgZWxlbWVudCBzdHlsZXMuXG4gKlxuICogRm9yIHNlY3VyaXR5IHJlYXNvbnMsIG9ubHkgbGl0ZXJhbCBzdHJpbmcgdmFsdWVzIGFuZCBudW1iZXIgbWF5IGJlIHVzZWQgaW5cbiAqIGVtYmVkZGVkIGV4cHJlc3Npb25zLiBUbyBpbmNvcnBvcmF0ZSBub24tbGl0ZXJhbCB2YWx1ZXMge0BsaW5rY29kZSB1bnNhZmVDU1N9XG4gKiBtYXkgYmUgdXNlZCBpbnNpZGUgYW4gZXhwcmVzc2lvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGNzcyA9IChcbiAgc3RyaW5nczogVGVtcGxhdGVTdHJpbmdzQXJyYXksXG4gIC4uLnZhbHVlczogKENTU1Jlc3VsdEdyb3VwIHwgbnVtYmVyKVtdXG4pOiBDU1NSZXN1bHQgPT4ge1xuICBjb25zdCBjc3NUZXh0ID1cbiAgICBzdHJpbmdzLmxlbmd0aCA9PT0gMVxuICAgICAgPyBzdHJpbmdzWzBdXG4gICAgICA6IHZhbHVlcy5yZWR1Y2UoXG4gICAgICAgICAgKGFjYywgdiwgaWR4KSA9PiBhY2MgKyB0ZXh0RnJvbUNTU1Jlc3VsdCh2KSArIHN0cmluZ3NbaWR4ICsgMV0sXG4gICAgICAgICAgc3RyaW5nc1swXVxuICAgICAgICApO1xuICByZXR1cm4gbmV3IChDU1NSZXN1bHQgYXMgQ29uc3RydWN0YWJsZUNTU1Jlc3VsdCkoXG4gICAgY3NzVGV4dCxcbiAgICBzdHJpbmdzLFxuICAgIGNvbnN0cnVjdGlvblRva2VuXG4gICk7XG59O1xuXG4vKipcbiAqIEFwcGxpZXMgdGhlIGdpdmVuIHN0eWxlcyB0byBhIGBzaGFkb3dSb290YC4gV2hlbiBTaGFkb3cgRE9NIGlzXG4gKiBhdmFpbGFibGUgYnV0IGBhZG9wdGVkU3R5bGVTaGVldHNgIGlzIG5vdCwgc3R5bGVzIGFyZSBhcHBlbmRlZCB0byB0aGVcbiAqIGBzaGFkb3dSb290YCB0byBbbWltaWMgdGhlIG5hdGl2ZSBmZWF0dXJlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvU2hhZG93Um9vdC9hZG9wdGVkU3R5bGVTaGVldHMpLlxuICogTm90ZSwgd2hlbiBzaGltbWluZyBpcyB1c2VkLCBhbnkgc3R5bGVzIHRoYXQgYXJlIHN1YnNlcXVlbnRseSBwbGFjZWQgaW50b1xuICogdGhlIHNoYWRvd1Jvb3Qgc2hvdWxkIGJlIHBsYWNlZCAqYmVmb3JlKiBhbnkgc2hpbW1lZCBhZG9wdGVkIHN0eWxlcy4gVGhpc1xuICogd2lsbCBtYXRjaCBzcGVjIGJlaGF2aW9yIHRoYXQgZ2l2ZXMgYWRvcHRlZCBzaGVldHMgcHJlY2VkZW5jZSBvdmVyIHN0eWxlcyBpblxuICogc2hhZG93Um9vdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGFkb3B0U3R5bGVzID0gKFxuICByZW5kZXJSb290OiBTaGFkb3dSb290LFxuICBzdHlsZXM6IEFycmF5PENTU1Jlc3VsdE9yTmF0aXZlPlxuKSA9PiB7XG4gIGlmIChzdXBwb3J0c0Fkb3B0aW5nU3R5bGVTaGVldHMpIHtcbiAgICAocmVuZGVyUm9vdCBhcyBTaGFkb3dSb290KS5hZG9wdGVkU3R5bGVTaGVldHMgPSBzdHlsZXMubWFwKChzKSA9PlxuICAgICAgcyBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQgPyBzIDogcy5zdHlsZVNoZWV0IVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgZm9yIChjb25zdCBzIG9mIHN0eWxlcykge1xuICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIGNvbnN0IG5vbmNlID0gKGdsb2JhbCBhcyBhbnkpWydsaXROb25jZSddO1xuICAgICAgaWYgKG5vbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKCdub25jZScsIG5vbmNlKTtcbiAgICAgIH1cbiAgICAgIHN0eWxlLnRleHRDb250ZW50ID0gKHMgYXMgQ1NTUmVzdWx0KS5jc3NUZXh0O1xuICAgICAgcmVuZGVyUm9vdC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBjc3NSZXN1bHRGcm9tU3R5bGVTaGVldCA9IChzaGVldDogQ1NTU3R5bGVTaGVldCkgPT4ge1xuICBsZXQgY3NzVGV4dCA9ICcnO1xuICBmb3IgKGNvbnN0IHJ1bGUgb2Ygc2hlZXQuY3NzUnVsZXMpIHtcbiAgICBjc3NUZXh0ICs9IHJ1bGUuY3NzVGV4dDtcbiAgfVxuICByZXR1cm4gdW5zYWZlQ1NTKGNzc1RleHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbXBhdGlibGVTdHlsZSA9XG4gIHN1cHBvcnRzQWRvcHRpbmdTdHlsZVNoZWV0cyB8fFxuICAoTk9ERV9NT0RFICYmIGdsb2JhbC5DU1NTdHlsZVNoZWV0ID09PSB1bmRlZmluZWQpXG4gICAgPyAoczogQ1NTUmVzdWx0T3JOYXRpdmUpID0+IHNcbiAgICA6IChzOiBDU1NSZXN1bHRPck5hdGl2ZSkgPT5cbiAgICAgICAgcyBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQgPyBjc3NSZXN1bHRGcm9tU3R5bGVTaGVldChzKSA6IHM7XG4iLCAiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5cbi8qKlxuICogVXNlIHRoaXMgbW9kdWxlIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSB5b3VyIG93biBiYXNlIGNsYXNzIGV4dGVuZGluZ1xuICoge0BsaW5rIFJlYWN0aXZlRWxlbWVudH0uXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqL1xuXG5pbXBvcnQge1xuICBnZXRDb21wYXRpYmxlU3R5bGUsXG4gIGFkb3B0U3R5bGVzLFxuICBDU1NSZXN1bHRHcm91cCxcbiAgQ1NTUmVzdWx0T3JOYXRpdmUsXG59IGZyb20gJy4vY3NzLXRhZy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFJlYWN0aXZlQ29udHJvbGxlcixcbiAgUmVhY3RpdmVDb250cm9sbGVySG9zdCxcbn0gZnJvbSAnLi9yZWFjdGl2ZS1jb250cm9sbGVyLmpzJztcblxuLy8gSW4gdGhlIE5vZGUgYnVpbGQsIHRoaXMgaW1wb3J0IHdpbGwgYmUgaW5qZWN0ZWQgYnkgUm9sbHVwOlxuLy8gaW1wb3J0IHtIVE1MRWxlbWVudCwgY3VzdG9tRWxlbWVudHN9IGZyb20gJ0BsaXQtbGFicy9zc3ItZG9tLXNoaW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2Nzcy10YWcuanMnO1xuZXhwb3J0IHR5cGUge1xuICBSZWFjdGl2ZUNvbnRyb2xsZXIsXG4gIFJlYWN0aXZlQ29udHJvbGxlckhvc3QsXG59IGZyb20gJy4vcmVhY3RpdmUtY29udHJvbGxlci5qcyc7XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgYHJlYWRvbmx5YCBtb2RpZmllciBmcm9tIHByb3BlcnRpZXMgaW4gdGhlIHVuaW9uIEsuXG4gKlxuICogVGhpcyBpcyBhIHNhZmVyIHdheSB0byBjYXN0IGEgdmFsdWUgdG8gYSB0eXBlIHdpdGggYSBtdXRhYmxlIHZlcnNpb24gb2YgYVxuICogcmVhZG9ubHkgZmllbGQsIHRoYW4gY2FzdGluZyB0byBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgZmllbGQgcmUtZGVjbGFyZWRcbiAqIGJlY2F1c2UgaXQgcHJlc2VydmVzIHRoZSB0eXBlIG9mIGFsbCB0aGUgZmllbGRzIGFuZCB3YXJucyBvbiB0eXBvcy5cbiAqL1xudHlwZSBNdXRhYmxlPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IE9taXQ8VCwgSz4gJiB7XG4gIC1yZWFkb25seSBbUCBpbiBrZXlvZiBQaWNrPFQsIEs+XTogUCBleHRlbmRzIEsgPyBUW1BdIDogbmV2ZXI7XG59O1xuXG4vLyBUT0RPIChqdXN0aW5mYWduYW5pKTogQWRkIGBoYXNPd25gIGhlcmUgd2hlbiB3ZSBzaGlwIEVTMjAyMlxuY29uc3Qge1xuICBpcyxcbiAgZGVmaW5lUHJvcGVydHksXG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcixcbiAgZ2V0T3duUHJvcGVydHlOYW1lcyxcbiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzLFxuICBnZXRQcm90b3R5cGVPZixcbn0gPSBPYmplY3Q7XG5cbmNvbnN0IE5PREVfTU9ERSA9IGZhbHNlO1xuXG4vLyBMZXRzIGEgbWluaWZpZXIgcmVwbGFjZSBnbG9iYWxUaGlzIHJlZmVyZW5jZXMgd2l0aCBhIG1pbmlmaWVkIG5hbWVcbmNvbnN0IGdsb2JhbCA9IGdsb2JhbFRoaXM7XG5cbmlmIChOT0RFX01PREUpIHtcbiAgZ2xvYmFsLmN1c3RvbUVsZW1lbnRzID8/PSBjdXN0b21FbGVtZW50cztcbn1cblxuY29uc3QgREVWX01PREUgPSB0cnVlO1xuXG5sZXQgaXNzdWVXYXJuaW5nOiAoY29kZTogc3RyaW5nLCB3YXJuaW5nOiBzdHJpbmcpID0+IHZvaWQ7XG5cbmNvbnN0IHRydXN0ZWRUeXBlcyA9IChnbG9iYWwgYXMgdW5rbm93biBhcyB7dHJ1c3RlZFR5cGVzPzoge2VtcHR5U2NyaXB0OiAnJ319KVxuICAudHJ1c3RlZFR5cGVzO1xuXG4vLyBUZW1wb3Jhcnkgd29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9jcmJ1Zy5jb20vOTkzMjY4XG4vLyBDdXJyZW50bHksIGFueSBhdHRyaWJ1dGUgc3RhcnRpbmcgd2l0aCBcIm9uXCIgaXMgY29uc2lkZXJlZCB0byBiZSBhXG4vLyBUcnVzdGVkU2NyaXB0IHNvdXJjZS4gU3VjaCBib29sZWFuIGF0dHJpYnV0ZXMgbXVzdCBiZSBzZXQgdG8gdGhlIGVxdWl2YWxlbnRcbi8vIHRydXN0ZWQgZW1wdHlTY3JpcHQgdmFsdWUuXG5jb25zdCBlbXB0eVN0cmluZ0ZvckJvb2xlYW5BdHRyaWJ1dGUgPSB0cnVzdGVkVHlwZXNcbiAgPyAodHJ1c3RlZFR5cGVzLmVtcHR5U2NyaXB0IGFzIHVua25vd24gYXMgJycpXG4gIDogJyc7XG5cbmNvbnN0IHBvbHlmaWxsU3VwcG9ydCA9IERFVl9NT0RFXG4gID8gZ2xvYmFsLnJlYWN0aXZlRWxlbWVudFBvbHlmaWxsU3VwcG9ydERldk1vZGVcbiAgOiBnbG9iYWwucmVhY3RpdmVFbGVtZW50UG9seWZpbGxTdXBwb3J0O1xuXG5pZiAoREVWX01PREUpIHtcbiAgLy8gRW5zdXJlIHdhcm5pbmdzIGFyZSBpc3N1ZWQgb25seSAxeCwgZXZlbiBpZiBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBMaXRcbiAgLy8gYXJlIGxvYWRlZC5cbiAgZ2xvYmFsLmxpdElzc3VlZFdhcm5pbmdzID8/PSBuZXcgU2V0KCk7XG5cbiAgLyoqXG4gICAqIElzc3VlIGEgd2FybmluZyBpZiB3ZSBoYXZlbid0IGFscmVhZHksIGJhc2VkIGVpdGhlciBvbiBgY29kZWAgb3IgYHdhcm5pbmdgLlxuICAgKiBXYXJuaW5ncyBhcmUgZGlzYWJsZWQgYXV0b21hdGljYWxseSBvbmx5IGJ5IGB3YXJuaW5nYDsgZGlzYWJsaW5nIHZpYSBgY29kZWBcbiAgICogY2FuIGJlIGRvbmUgYnkgdXNlcnMuXG4gICAqL1xuICBpc3N1ZVdhcm5pbmcgPSAoY29kZTogc3RyaW5nLCB3YXJuaW5nOiBzdHJpbmcpID0+IHtcbiAgICB3YXJuaW5nICs9IGAgU2VlIGh0dHBzOi8vbGl0LmRldi9tc2cvJHtjb2RlfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgIGlmIChcbiAgICAgICFnbG9iYWwubGl0SXNzdWVkV2FybmluZ3MhLmhhcyh3YXJuaW5nKSAmJlxuICAgICAgIWdsb2JhbC5saXRJc3N1ZWRXYXJuaW5ncyEuaGFzKGNvZGUpXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICBnbG9iYWwubGl0SXNzdWVkV2FybmluZ3MhLmFkZCh3YXJuaW5nKTtcbiAgICB9XG4gIH07XG5cbiAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgIGlzc3VlV2FybmluZyhcbiAgICAgICdkZXYtbW9kZScsXG4gICAgICBgTGl0IGlzIGluIGRldiBtb2RlLiBOb3QgcmVjb21tZW5kZWQgZm9yIHByb2R1Y3Rpb24hYFxuICAgICk7XG5cbiAgICAvLyBJc3N1ZSBwb2x5ZmlsbCBzdXBwb3J0IHdhcm5pbmcuXG4gICAgaWYgKGdsb2JhbC5TaGFkeURPTT8uaW5Vc2UgJiYgcG9seWZpbGxTdXBwb3J0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlzc3VlV2FybmluZyhcbiAgICAgICAgJ3BvbHlmaWxsLXN1cHBvcnQtbWlzc2luZycsXG4gICAgICAgIGBTaGFkb3cgRE9NIGlzIGJlaW5nIHBvbHlmaWxsZWQgdmlhIFxcYFNoYWR5RE9NXFxgIGJ1dCBgICtcbiAgICAgICAgICBgdGhlIFxcYHBvbHlmaWxsLXN1cHBvcnRcXGAgbW9kdWxlIGhhcyBub3QgYmVlbiBsb2FkZWQuYFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnRhaW5zIHR5cGVzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIHVuc3RhYmxlIGRlYnVnIEFQSS5cbiAqXG4gKiBFdmVyeXRoaW5nIGluIHRoaXMgQVBJIGlzIG5vdCBzdGFibGUgYW5kIG1heSBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLFxuICogZXZlbiBvbiBwYXRjaCByZWxlYXNlcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2VcbmV4cG9ydCBuYW1lc3BhY2UgUmVhY3RpdmVVbnN0YWJsZSB7XG4gIC8qKlxuICAgKiBXaGVuIExpdCBpcyBydW5uaW5nIGluIGRldiBtb2RlIGFuZCBgd2luZG93LmVtaXRMaXREZWJ1Z0xvZ0V2ZW50c2AgaXMgdHJ1ZSxcbiAgICogd2Ugd2lsbCBlbWl0ICdsaXQtZGVidWcnIGV2ZW50cyB0byB3aW5kb3csIHdpdGggbGl2ZSBkZXRhaWxzIGFib3V0IHRoZSB1cGRhdGUgYW5kIHJlbmRlclxuICAgKiBsaWZlY3ljbGUuIFRoZXNlIGNhbiBiZSB1c2VmdWwgZm9yIHdyaXRpbmcgZGVidWcgdG9vbGluZyBhbmQgdmlzdWFsaXphdGlvbnMuXG4gICAqXG4gICAqIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHJ1bm5pbmcgd2l0aCB3aW5kb3cuZW1pdExpdERlYnVnTG9nRXZlbnRzIGhhcyBwZXJmb3JtYW5jZSBvdmVyaGVhZCxcbiAgICogbWFraW5nIGNlcnRhaW4gb3BlcmF0aW9ucyB0aGF0IGFyZSBub3JtYWxseSB2ZXJ5IGNoZWFwIChsaWtlIGEgbm8tb3AgcmVuZGVyKSBtdWNoIHNsb3dlcixcbiAgICogYmVjYXVzZSB3ZSBtdXN0IGNvcHkgZGF0YSBhbmQgZGlzcGF0Y2ggZXZlbnRzLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2VcbiAgZXhwb3J0IG5hbWVzcGFjZSBEZWJ1Z0xvZyB7XG4gICAgZXhwb3J0IHR5cGUgRW50cnkgPSBVcGRhdGU7XG4gICAgZXhwb3J0IGludGVyZmFjZSBVcGRhdGUge1xuICAgICAga2luZDogJ3VwZGF0ZSc7XG4gICAgfVxuICB9XG59XG5cbmludGVyZmFjZSBEZWJ1Z0xvZ2dpbmdXaW5kb3cge1xuICAvLyBFdmVuIGluIGRldiBtb2RlLCB3ZSBnZW5lcmFsbHkgZG9uJ3Qgd2FudCB0byBlbWl0IHRoZXNlIGV2ZW50cywgYXMgdGhhdCdzXG4gIC8vIGFub3RoZXIgbGV2ZWwgb2YgY29zdCwgc28gb25seSBlbWl0IHRoZW0gd2hlbiBERVZfTU9ERSBpcyB0cnVlIF9hbmRfIHdoZW5cbiAgLy8gd2luZG93LmVtaXRMaXREZWJ1Z0V2ZW50cyBpcyB0cnVlLlxuICBlbWl0TGl0RGVidWdMb2dFdmVudHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFVzZWZ1bCBmb3IgdmlzdWFsaXppbmcgYW5kIGxvZ2dpbmcgaW5zaWdodHMgaW50byB3aGF0IHRoZSBMaXQgdGVtcGxhdGUgc3lzdGVtIGlzIGRvaW5nLlxuICpcbiAqIENvbXBpbGVkIG91dCBvZiBwcm9kIG1vZGUgYnVpbGRzLlxuICovXG5jb25zdCBkZWJ1Z0xvZ0V2ZW50ID0gREVWX01PREVcbiAgPyAoZXZlbnQ6IFJlYWN0aXZlVW5zdGFibGUuRGVidWdMb2cuRW50cnkpID0+IHtcbiAgICAgIGNvbnN0IHNob3VsZEVtaXQgPSAoZ2xvYmFsIGFzIHVua25vd24gYXMgRGVidWdMb2dnaW5nV2luZG93KVxuICAgICAgICAuZW1pdExpdERlYnVnTG9nRXZlbnRzO1xuICAgICAgaWYgKCFzaG91bGRFbWl0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGdsb2JhbC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQ8UmVhY3RpdmVVbnN0YWJsZS5EZWJ1Z0xvZy5FbnRyeT4oJ2xpdC1kZWJ1ZycsIHtcbiAgICAgICAgICBkZXRhaWw6IGV2ZW50LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIDogdW5kZWZpbmVkO1xuXG4vKlxuICogV2hlbiB1c2luZyBDbG9zdXJlIENvbXBpbGVyLCBKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KHByb3BlcnR5LCBvYmplY3QpIGlzXG4gKiByZXBsYWNlZCBhdCBjb21waWxlIHRpbWUgYnkgdGhlIG11bmdlZCBuYW1lIGZvciBvYmplY3RbcHJvcGVydHldLiBXZSBjYW5ub3RcbiAqIGFsaWFzIHRoaXMgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG8gdXNlIGEgc21hbGwgc2hpbSB0aGF0IGhhcyB0aGUgc2FtZVxuICogYmVoYXZpb3Igd2hlbiBub3QgY29tcGlsaW5nLlxuICovXG4vKkBfX0lOTElORV9fKi9cbmNvbnN0IEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkgPSA8UCBleHRlbmRzIFByb3BlcnR5S2V5PihcbiAgcHJvcDogUCxcbiAgX29iajogdW5rbm93blxuKTogUCA9PiBwcm9wO1xuXG4vKipcbiAqIENvbnZlcnRzIHByb3BlcnR5IHZhbHVlcyB0byBhbmQgZnJvbSBhdHRyaWJ1dGUgdmFsdWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXhBdHRyaWJ1dGVDb252ZXJ0ZXI8VHlwZSA9IHVua25vd24sIFR5cGVIaW50ID0gdW5rbm93bj4ge1xuICAvKipcbiAgICogQ2FsbGVkIHRvIGNvbnZlcnQgYW4gYXR0cmlidXRlIHZhbHVlIHRvIGEgcHJvcGVydHlcbiAgICogdmFsdWUuXG4gICAqL1xuICBmcm9tQXR0cmlidXRlPyh2YWx1ZTogc3RyaW5nIHwgbnVsbCwgdHlwZT86IFR5cGVIaW50KTogVHlwZTtcblxuICAvKipcbiAgICogQ2FsbGVkIHRvIGNvbnZlcnQgYSBwcm9wZXJ0eSB2YWx1ZSB0byBhbiBhdHRyaWJ1dGVcbiAgICogdmFsdWUuXG4gICAqXG4gICAqIEl0IHJldHVybnMgdW5rbm93biBpbnN0ZWFkIG9mIHN0cmluZywgdG8gYmUgY29tcGF0aWJsZSB3aXRoXG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL3RydXN0ZWQtdHlwZXMgKGFuZCBzaW1pbGFyIGVmZm9ydHMpLlxuICAgKi9cbiAgdG9BdHRyaWJ1dGU/KHZhbHVlOiBUeXBlLCB0eXBlPzogVHlwZUhpbnQpOiB1bmtub3duO1xufVxuXG50eXBlIEF0dHJpYnV0ZUNvbnZlcnRlcjxUeXBlID0gdW5rbm93biwgVHlwZUhpbnQgPSB1bmtub3duPiA9XG4gIHwgQ29tcGxleEF0dHJpYnV0ZUNvbnZlcnRlcjxUeXBlPlxuICB8ICgodmFsdWU6IHN0cmluZyB8IG51bGwsIHR5cGU/OiBUeXBlSGludCkgPT4gVHlwZSk7XG5cbi8qKlxuICogRGVmaW5lcyBvcHRpb25zIGZvciBhIHByb3BlcnR5IGFjY2Vzc29yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5RGVjbGFyYXRpb248VHlwZSA9IHVua25vd24sIFR5cGVIaW50ID0gdW5rbm93bj4ge1xuICAvKipcbiAgICogV2hlbiBzZXQgdG8gYHRydWVgLCBpbmRpY2F0ZXMgdGhlIHByb3BlcnR5IGlzIGludGVybmFsIHByaXZhdGUgc3RhdGUuIFRoZVxuICAgKiBwcm9wZXJ0eSBzaG91bGQgbm90IGJlIHNldCBieSB1c2Vycy4gV2hlbiB1c2luZyBUeXBlU2NyaXB0LCB0aGlzIHByb3BlcnR5XG4gICAqIHNob3VsZCBiZSBtYXJrZWQgYXMgYHByaXZhdGVgIG9yIGBwcm90ZWN0ZWRgLCBhbmQgaXQgaXMgYWxzbyBhIGNvbW1vblxuICAgKiBwcmFjdGljZSB0byB1c2UgYSBsZWFkaW5nIGBfYCBpbiB0aGUgbmFtZS4gVGhlIHByb3BlcnR5IGlzIG5vdCBhZGRlZCB0b1xuICAgKiBgb2JzZXJ2ZWRBdHRyaWJ1dGVzYC5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGhvdyBhbmQgd2hldGhlciB0aGUgcHJvcGVydHkgYmVjb21lcyBhbiBvYnNlcnZlZCBhdHRyaWJ1dGUuXG4gICAqIElmIHRoZSB2YWx1ZSBpcyBgZmFsc2VgLCB0aGUgcHJvcGVydHkgaXMgbm90IGFkZGVkIHRvIGBvYnNlcnZlZEF0dHJpYnV0ZXNgLlxuICAgKiBJZiB0cnVlIG9yIGFic2VudCwgdGhlIGxvd2VyY2FzZWQgcHJvcGVydHkgbmFtZSBpcyBvYnNlcnZlZCAoZS5nLiBgZm9vQmFyYFxuICAgKiBiZWNvbWVzIGBmb29iYXJgKS4gSWYgYSBzdHJpbmcsIHRoZSBzdHJpbmcgdmFsdWUgaXMgb2JzZXJ2ZWQgKGUuZ1xuICAgKiBgYXR0cmlidXRlOiAnZm9vLWJhcidgKS5cbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZT86IGJvb2xlYW4gfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgdHlwZSBvZiB0aGUgcHJvcGVydHkuIFRoaXMgaXMgdXNlZCBvbmx5IGFzIGEgaGludCBmb3IgdGhlXG4gICAqIGBjb252ZXJ0ZXJgIHRvIGRldGVybWluZSBob3cgdG8gY29udmVydCB0aGUgYXR0cmlidXRlXG4gICAqIHRvL2Zyb20gYSBwcm9wZXJ0eS5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU/OiBUeXBlSGludDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGhvdyB0byBjb252ZXJ0IHRoZSBhdHRyaWJ1dGUgdG8vZnJvbSBhIHByb3BlcnR5LiBJZiB0aGlzIHZhbHVlXG4gICAqIGlzIGEgZnVuY3Rpb24sIGl0IGlzIHVzZWQgdG8gY29udmVydCB0aGUgYXR0cmlidXRlIHZhbHVlIGEgdGhlIHByb3BlcnR5XG4gICAqIHZhbHVlLiBJZiBpdCdzIGFuIG9iamVjdCwgaXQgY2FuIGhhdmUga2V5cyBmb3IgYGZyb21BdHRyaWJ1dGVgIGFuZFxuICAgKiBgdG9BdHRyaWJ1dGVgLiBJZiBubyBgdG9BdHRyaWJ1dGVgIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGFuZFxuICAgKiBgcmVmbGVjdGAgaXMgc2V0IHRvIGB0cnVlYCwgdGhlIHByb3BlcnR5IHZhbHVlIGlzIHNldCBkaXJlY3RseSB0byB0aGVcbiAgICogYXR0cmlidXRlLiBBIGRlZmF1bHQgYGNvbnZlcnRlcmAgaXMgdXNlZCBpZiBub25lIGlzIHByb3ZpZGVkOyBpdCBzdXBwb3J0c1xuICAgKiBgQm9vbGVhbmAsIGBTdHJpbmdgLCBgTnVtYmVyYCwgYE9iamVjdGAsIGFuZCBgQXJyYXlgLiBOb3RlLFxuICAgKiB3aGVuIGEgcHJvcGVydHkgY2hhbmdlcyBhbmQgdGhlIGNvbnZlcnRlciBpcyB1c2VkIHRvIHVwZGF0ZSB0aGUgYXR0cmlidXRlLFxuICAgKiB0aGUgcHJvcGVydHkgaXMgbmV2ZXIgdXBkYXRlZCBhZ2FpbiBhcyBhIHJlc3VsdCBvZiB0aGUgYXR0cmlidXRlIGNoYW5naW5nLFxuICAgKiBhbmQgdmljZSB2ZXJzYS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnZlcnRlcj86IEF0dHJpYnV0ZUNvbnZlcnRlcjxUeXBlLCBUeXBlSGludD47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgcHJvcGVydHkgc2hvdWxkIHJlZmxlY3QgdG8gYW4gYXR0cmlidXRlLlxuICAgKiBJZiBgdHJ1ZWAsIHdoZW4gdGhlIHByb3BlcnR5IGlzIHNldCwgdGhlIGF0dHJpYnV0ZSBpcyBzZXQgdXNpbmcgdGhlXG4gICAqIGF0dHJpYnV0ZSBuYW1lIGRldGVybWluZWQgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBmb3IgdGhlIGBhdHRyaWJ1dGVgXG4gICAqIHByb3BlcnR5IG9wdGlvbiBhbmQgdGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBjb252ZXJ0ZWQgdXNpbmcgdGhlIHJ1bGVzXG4gICAqIGZyb20gdGhlIGBjb252ZXJ0ZXJgIHByb3BlcnR5IG9wdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHJlZmxlY3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgaW5kaWNhdGVzIGlmIGEgcHJvcGVydHkgc2hvdWxkIGJlIGNvbnNpZGVyZWQgY2hhbmdlZCB3aGVuXG4gICAqIGl0IGlzIHNldC4gVGhlIGZ1bmN0aW9uIHNob3VsZCB0YWtlIHRoZSBgbmV3VmFsdWVgIGFuZCBgb2xkVmFsdWVgIGFuZFxuICAgKiByZXR1cm4gYHRydWVgIGlmIGFuIHVwZGF0ZSBzaG91bGQgYmUgcmVxdWVzdGVkLlxuICAgKi9cbiAgaGFzQ2hhbmdlZD8odmFsdWU6IFR5cGUsIG9sZFZhbHVlOiBUeXBlKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgYW4gYWNjZXNzb3Igd2lsbCBiZSBjcmVhdGVkIGZvciB0aGlzIHByb3BlcnR5LiBCeVxuICAgKiBkZWZhdWx0LCBhbiBhY2Nlc3NvciB3aWxsIGJlIGdlbmVyYXRlZCBmb3IgdGhpcyBwcm9wZXJ0eSB0aGF0IHJlcXVlc3RzIGFuXG4gICAqIHVwZGF0ZSB3aGVuIHNldC4gSWYgdGhpcyBmbGFnIGlzIGB0cnVlYCwgbm8gYWNjZXNzb3Igd2lsbCBiZSBjcmVhdGVkLCBhbmRcbiAgICogaXQgd2lsbCBiZSB0aGUgdXNlcidzIHJlc3BvbnNpYmlsaXR5IHRvIGNhbGxcbiAgICogYHRoaXMucmVxdWVzdFVwZGF0ZShwcm9wZXJ0eU5hbWUsIG9sZFZhbHVlKWAgdG8gcmVxdWVzdCBhbiB1cGRhdGUgd2hlblxuICAgKiB0aGUgcHJvcGVydHkgY2hhbmdlcy5cbiAgICovXG4gIHJlYWRvbmx5IG5vQWNjZXNzb3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgcHJvcGVydHkgaXMgd3JhcHBpbmcgYWNjZXNzb3JzLiBUaGlzIGlzIHNldCBieSBgQHByb3BlcnR5YFxuICAgKiB0byBjb250cm9sIHRoZSBpbml0aWFsIHZhbHVlIGNoYW5nZSBhbmQgcmVmbGVjdGlvbiBsb2dpYy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICB3cmFwcGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIHVzZXMgdGhlIGluaXRpYWwgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGFzIHRoZSBkZWZhdWx0IHZhbHVlLFxuICAgKiB3aGljaCBjaGFuZ2VzIGhvdyBhdHRyaWJ1dGVzIGFyZSBoYW5kbGVkOlxuICAgKiAgLSBUaGUgaW5pdGlhbCB2YWx1ZSBkb2VzICpub3QqIHJlZmxlY3QsIGV2ZW4gaWYgdGhlIGByZWZsZWN0YCBvcHRpb24gaXMgYHRydWVgLlxuICAgKiAgICBTdWJzZXF1ZW50IGNoYW5nZXMgdG8gdGhlIHByb3BlcnR5IHdpbGwgcmVmbGVjdCwgZXZlbiBpZiB0aGV5IGFyZSBlcXVhbCB0byB0aGVcbiAgICogICAgIGRlZmF1bHQgdmFsdWUuXG4gICAqICAtIFdoZW4gdGhlIGF0dHJpYnV0ZSBpcyByZW1vdmVkLCB0aGUgcHJvcGVydHkgaXMgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlXG4gICAqICAtIFRoZSBpbml0aWFsIHZhbHVlIHdpbGwgbm90IHRyaWdnZXIgYW4gb2xkIHZhbHVlIGluIHRoZSBgY2hhbmdlZFByb3BlcnRpZXNgIG1hcFxuICAgKiAgICBhcmd1bWVudCB0byB1cGRhdGUgbGlmZWN5Y2xlIG1ldGhvZHMuXG4gICAqXG4gICAqIFdoZW4gc2V0LCBwcm9wZXJ0aWVzIG11c3QgYmUgaW5pdGlhbGl6ZWQsIGVpdGhlciB3aXRoIGEgZmllbGQgaW5pdGlhbGl6ZXIsIG9yIGFuXG4gICAqIGFzc2lnbm1lbnQgaW4gdGhlIGNvbnN0cnVjdG9yLiBOb3QgaW5pdGlhbGl6aW5nIHRoZSBwcm9wZXJ0eSBtYXkgbGVhZCB0b1xuICAgKiBpbXByb3BlciBoYW5kbGluZyBvZiBzdWJzZXF1ZW50IHByb3BlcnR5IGFzc2lnbm1lbnRzLlxuICAgKlxuICAgKiBXaGlsZSB0aGlzIGJlaGF2aW9yIGlzIG9wdC1pbiwgbW9zdCBwcm9wZXJ0aWVzIHRoYXQgcmVmbGVjdCB0byBhdHRyaWJ1dGVzIHNob3VsZFxuICAgKiB1c2UgYHVzZURlZmF1bHQ6IHRydWVgIHNvIHRoYXQgdGhlaXIgaW5pdGlhbCB2YWx1ZXMgZG8gbm90IHJlZmxlY3QuXG4gICAqL1xuICB1c2VEZWZhdWx0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYXAgb2YgcHJvcGVydGllcyB0byBQcm9wZXJ0eURlY2xhcmF0aW9uIG9wdGlvbnMuIEZvciBlYWNoIHByb3BlcnR5IGFuXG4gKiBhY2Nlc3NvciBpcyBtYWRlLCBhbmQgdGhlIHByb3BlcnR5IGlzIHByb2Nlc3NlZCBhY2NvcmRpbmcgdG8gdGhlXG4gKiBQcm9wZXJ0eURlY2xhcmF0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlEZWNsYXJhdGlvbnMge1xuICByZWFkb25seSBba2V5OiBzdHJpbmddOiBQcm9wZXJ0eURlY2xhcmF0aW9uO1xufVxuXG50eXBlIFByb3BlcnR5RGVjbGFyYXRpb25NYXAgPSBNYXA8UHJvcGVydHlLZXksIFByb3BlcnR5RGVjbGFyYXRpb24+O1xuXG50eXBlIEF0dHJpYnV0ZU1hcCA9IE1hcDxzdHJpbmcsIFByb3BlcnR5S2V5PjtcblxuLyoqXG4gKiBBIE1hcCBvZiBwcm9wZXJ0eSBrZXlzIHRvIHZhbHVlcy5cbiAqXG4gKiBUYWtlcyBhbiBvcHRpb25hbCB0eXBlIHBhcmFtZXRlciBULCB3aGljaCB3aGVuIHNwZWNpZmllZCBhcyBhIG5vbi1hbnksXG4gKiBub24tdW5rbm93biB0eXBlLCB3aWxsIG1ha2UgdGhlIE1hcCBtb3JlIHN0cm9uZ2x5LXR5cGVkLCBhc3NvY2lhdGluZyB0aGUgbWFwXG4gKiBrZXlzIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyB2YWx1ZSB0eXBlIG9uIFQuXG4gKlxuICogVXNlIGBQcm9wZXJ0eVZhbHVlczx0aGlzPmAgd2hlbiBvdmVycmlkaW5nIFJlYWN0aXZlRWxlbWVudC51cGRhdGUoKSBhbmRcbiAqIG90aGVyIGxpZmVjeWNsZSBtZXRob2RzIGluIG9yZGVyIHRvIGdldCBzdHJvbmdlciB0eXBlLWNoZWNraW5nIG9uIGtleXNcbiAqIGFuZCB2YWx1ZXMuXG4gKi9cbi8vIFRoaXMgdHlwZSBpcyBjb25kaXRpb25hbCBzbyB0aGF0IGlmIHRoZSBwYXJhbWV0ZXIgVCBpcyBub3Qgc3BlY2lmaWVkLCBvclxuLy8gaXMgYGFueWAsIHRoZSB0eXBlIHdpbGwgaW5jbHVkZSBgTWFwPFByb3BlcnR5S2V5LCB1bmtub3duPmAuIFNpbmNlIFQgaXMgbm90XG4vLyBnaXZlbiBpbiB0aGUgdXNlcyBvZiBQcm9wZXJ0eVZhbHVlcyBpbiB0aGlzIGZpbGUsIGFsbCB1c2VzIGhlcmUgZmFsbGJhY2sgdG9cbi8vIG1lYW5pbmcgYE1hcDxQcm9wZXJ0eUtleSwgdW5rbm93bj5gLCBidXQgaWYgYSBkZXZlbG9wZXIgdXNlc1xuLy8gYFByb3BlcnR5VmFsdWVzPHRoaXM+YCAob3IgYW55IG90aGVyIHZhbHVlIGZvciBUKSB0aGV5IHdpbGwgZ2V0IGFcbi8vIHN0cm9uZ2x5LXR5cGVkIE1hcCB0eXBlLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCB0eXBlIFByb3BlcnR5VmFsdWVzPFQgPSBhbnk+ID0gVCBleHRlbmRzIG9iamVjdFxuICA/IFByb3BlcnR5VmFsdWVNYXA8VD5cbiAgOiBNYXA8UHJvcGVydHlLZXksIHVua25vd24+O1xuXG4vKipcbiAqIERvIG5vdCB1c2UsIGluc3RlYWQgcHJlZmVyIHtAbGlua2NvZGUgUHJvcGVydHlWYWx1ZXN9LlxuICovXG4vLyBUaGlzIHR5cGUgbXVzdCBiZSBleHBvcnRlZCBzdWNoIHRoYXQgSmF2YVNjcmlwdCBnZW5lcmF0ZWQgYnkgdGhlIEdvb2dsZVxuLy8gQ2xvc3VyZSBDb21waWxlciBjYW4gaW1wb3J0IGEgdHlwZSByZWZlcmVuY2UuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5VmFsdWVNYXA8VD4gZXh0ZW5kcyBNYXA8UHJvcGVydHlLZXksIHVua25vd24+IHtcbiAgZ2V0PEsgZXh0ZW5kcyBrZXlvZiBUPihrOiBLKTogVFtLXSB8IHVuZGVmaW5lZDtcbiAgc2V0PEsgZXh0ZW5kcyBrZXlvZiBUPihrZXk6IEssIHZhbHVlOiBUW0tdKTogdGhpcztcbiAgaGFzPEsgZXh0ZW5kcyBrZXlvZiBUPihrOiBLKTogYm9vbGVhbjtcbiAgZGVsZXRlPEsgZXh0ZW5kcyBrZXlvZiBUPihrOiBLKTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb252ZXJ0ZXI6IENvbXBsZXhBdHRyaWJ1dGVDb252ZXJ0ZXIgPSB7XG4gIHRvQXR0cmlidXRlKHZhbHVlOiB1bmtub3duLCB0eXBlPzogdW5rbm93bik6IHVua25vd24ge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBCb29sZWFuOlxuICAgICAgICB2YWx1ZSA9IHZhbHVlID8gZW1wdHlTdHJpbmdGb3JCb29sZWFuQXR0cmlidXRlIDogbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE9iamVjdDpcbiAgICAgIGNhc2UgQXJyYXk6XG4gICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAgcGFzcyB0aGlzIHRocm91Z2hcbiAgICAgICAgLy8gdG8gYWxsb3cgcmVtb3Zpbmcvbm8gY2hhbmdlIGJlaGF2aW9yLlxuICAgICAgICB2YWx1ZSA9IHZhbHVlID09IG51bGwgPyB2YWx1ZSA6IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfSxcblxuICBmcm9tQXR0cmlidXRlKHZhbHVlOiBzdHJpbmcgfCBudWxsLCB0eXBlPzogdW5rbm93bikge1xuICAgIGxldCBmcm9tVmFsdWU6IHVua25vd24gPSB2YWx1ZTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgQm9vbGVhbjpcbiAgICAgICAgZnJvbVZhbHVlID0gdmFsdWUgIT09IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBOdW1iZXI6XG4gICAgICAgIGZyb21WYWx1ZSA9IHZhbHVlID09PSBudWxsID8gbnVsbCA6IE51bWJlcih2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBPYmplY3Q6XG4gICAgICBjYXNlIEFycmF5OlxuICAgICAgICAvLyBEbyAqbm90KiBnZW5lcmF0ZSBleGNlcHRpb24gd2hlbiBpbnZhbGlkIEpTT04gaXMgc2V0IGFzIGVsZW1lbnRzXG4gICAgICAgIC8vIGRvbid0IG5vcm1hbGx5IGNvbXBsYWluIG9uIGJlaW5nIG1pcy1jb25maWd1cmVkLlxuICAgICAgICAvLyBUT0RPKHNvcnZlbGwpOiBEbyBnZW5lcmF0ZSBleGNlcHRpb24gaW4gKmRldiBtb2RlKi5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBBc3NlcnQgdG8gYWRoZXJlIHRvIEJhemVsJ3MgXCJtdXN0IHR5cGUgYXNzZXJ0IEpTT04gcGFyc2VcIiBydWxlLlxuICAgICAgICAgIGZyb21WYWx1ZSA9IEpTT04ucGFyc2UodmFsdWUhKSBhcyB1bmtub3duO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgZnJvbVZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGZyb21WYWx1ZTtcbiAgfSxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzQ2hhbmdlZCB7XG4gICh2YWx1ZTogdW5rbm93biwgb2xkOiB1bmtub3duKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRydWUgaWYgYHZhbHVlYCBpcyBkaWZmZXJlbnQgZnJvbSBgb2xkVmFsdWVgLlxuICogVGhpcyBtZXRob2QgaXMgdXNlZCBhcyB0aGUgZGVmYXVsdCBmb3IgYSBwcm9wZXJ0eSdzIGBoYXNDaGFuZ2VkYCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vdEVxdWFsOiBIYXNDaGFuZ2VkID0gKHZhbHVlOiB1bmtub3duLCBvbGQ6IHVua25vd24pOiBib29sZWFuID0+XG4gICFpcyh2YWx1ZSwgb2xkKTtcblxuY29uc3QgZGVmYXVsdFByb3BlcnR5RGVjbGFyYXRpb246IFByb3BlcnR5RGVjbGFyYXRpb24gPSB7XG4gIGF0dHJpYnV0ZTogdHJ1ZSxcbiAgdHlwZTogU3RyaW5nLFxuICBjb252ZXJ0ZXI6IGRlZmF1bHRDb252ZXJ0ZXIsXG4gIHJlZmxlY3Q6IGZhbHNlLFxuICB1c2VEZWZhdWx0OiBmYWxzZSxcbiAgaGFzQ2hhbmdlZDogbm90RXF1YWwsXG59O1xuXG4vKipcbiAqIEEgc3RyaW5nIHJlcHJlc2VudGluZyBvbmUgb2YgdGhlIHN1cHBvcnRlZCBkZXYgbW9kZSB3YXJuaW5nIGNhdGVnb3JpZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFdhcm5pbmdLaW5kID1cbiAgfCAnY2hhbmdlLWluLXVwZGF0ZSdcbiAgfCAnbWlncmF0aW9uJ1xuICB8ICdhc3luYy1wZXJmb3JtLXVwZGF0ZSc7XG5cbmV4cG9ydCB0eXBlIEluaXRpYWxpemVyID0gKGVsZW1lbnQ6IFJlYWN0aXZlRWxlbWVudCkgPT4gdm9pZDtcblxuLy8gVGVtcG9yYXJ5LCB1bnRpbCBnb29nbGUzIGlzIG9uIFR5cGVTY3JpcHQgNS4yXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBTeW1ib2xDb25zdHJ1Y3RvciB7XG4gICAgcmVhZG9ubHkgbWV0YWRhdGE6IHVuaXF1ZSBzeW1ib2w7XG4gIH1cbn1cblxuLy8gRW5zdXJlIG1ldGFkYXRhIGlzIGVuYWJsZWQuIFR5cGVTY3JpcHQgZG9lcyBub3QgcG9seWZpbGxcbi8vIFN5bWJvbC5tZXRhZGF0YSwgc28gd2UgbXVzdCBlbnN1cmUgdGhhdCBpdCBleGlzdHMuXG4oU3ltYm9sIGFzIHttZXRhZGF0YTogc3ltYm9sfSkubWV0YWRhdGEgPz89IFN5bWJvbCgnbWV0YWRhdGEnKTtcblxuZGVjbGFyZSBnbG9iYWwge1xuICAvLyBUaGlzIGlzIHB1YmxpYyBnbG9iYWwgQVBJLCBkbyBub3QgY2hhbmdlIVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG4gIHZhciBsaXRQcm9wZXJ0eU1ldGFkYXRhOiBXZWFrTWFwPFxuICAgIG9iamVjdCxcbiAgICBNYXA8UHJvcGVydHlLZXksIFByb3BlcnR5RGVjbGFyYXRpb24+XG4gID47XG59XG5cbi8vIE1hcCBmcm9tIGEgY2xhc3MncyBtZXRhZGF0YSBvYmplY3QgdG8gcHJvcGVydHkgb3B0aW9uc1xuLy8gTm90ZSB0aGF0IHdlIG11c3QgdXNlIG51bGxpc2gtY29hbGVzY2luZyBhc3NpZ25tZW50IHNvIHRoYXQgd2Ugb25seSB1c2Ugb25lXG4vLyBtYXAgZXZlbiBpZiB3ZSBsb2FkIG11bHRpcGxlIHZlcnNpb24gb2YgdGhpcyBtb2R1bGUuXG5nbG9iYWwubGl0UHJvcGVydHlNZXRhZGF0YSA/Pz0gbmV3IFdlYWtNYXA8XG4gIG9iamVjdCxcbiAgTWFwPFByb3BlcnR5S2V5LCBQcm9wZXJ0eURlY2xhcmF0aW9uPlxuPigpO1xuXG4vKipcbiAqIEJhc2UgZWxlbWVudCBjbGFzcyB3aGljaCBtYW5hZ2VzIGVsZW1lbnQgcHJvcGVydGllcyBhbmQgYXR0cmlidXRlcy4gV2hlblxuICogcHJvcGVydGllcyBjaGFuZ2UsIHRoZSBgdXBkYXRlYCBtZXRob2QgaXMgYXN5bmNocm9ub3VzbHkgY2FsbGVkLiBUaGlzIG1ldGhvZFxuICogc2hvdWxkIGJlIHN1cHBsaWVkIGJ5IHN1YmNsYXNzZXMgdG8gcmVuZGVyIHVwZGF0ZXMgYXMgZGVzaXJlZC5cbiAqIEBub0luaGVyaXREb2NcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlYWN0aXZlRWxlbWVudFxuICAvLyBJbiB0aGUgTm9kZSBidWlsZCwgdGhpcyBgZXh0ZW5kc2AgY2xhdXNlIHdpbGwgYmUgc3Vic3RpdHV0ZWQgd2l0aFxuICAvLyBgKGdsb2JhbFRoaXMuSFRNTEVsZW1lbnQgPz8gSFRNTEVsZW1lbnQpYC5cbiAgLy9cbiAgLy8gVGhpcyB3YXksIHdlIHdpbGwgZmlyc3QgcHJlZmVyIGFueSBnbG9iYWwgYEhUTUxFbGVtZW50YCBwb2x5ZmlsbCB0aGF0IHRoZVxuICAvLyB1c2VyIGhhcyBhc3NpZ25lZCwgYW5kIHRoZW4gZmFsbCBiYWNrIHRvIHRoZSBgSFRNTEVsZW1lbnRgIHNoaW0gd2hpY2ggaGFzXG4gIC8vIGJlZW4gaW1wb3J0ZWQgKHNlZSBub3RlIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlIGFib3V0IGhvdyB0aGlzIGltcG9ydCBpc1xuICAvLyBnZW5lcmF0ZWQgYnkgUm9sbHVwKS4gTm90ZSB0aGF0IHRoZSBgSFRNTEVsZW1lbnRgIHZhcmlhYmxlIGhhcyBiZWVuXG4gIC8vIHNoYWRvd2VkIGJ5IHRoaXMgaW1wb3J0LCBzbyBpdCBubyBsb25nZXIgcmVmZXJzIHRvIHRoZSBnbG9iYWwuXG4gIGV4dGVuZHMgSFRNTEVsZW1lbnRcbiAgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0XG57XG4gIC8vIE5vdGU6IHRoZXNlIGFyZSBwYXRjaGVkIGluIG9ubHkgaW4gREVWX01PREUuXG4gIC8qKlxuICAgKiBSZWFkIG9yIHNldCBhbGwgdGhlIGVuYWJsZWQgd2FybmluZyBjYXRlZ29yaWVzIGZvciB0aGlzIGNsYXNzLlxuICAgKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIG9ubHkgdXNlZCBpbiBkZXZlbG9wbWVudCBidWlsZHMuXG4gICAqXG4gICAqIEBub2NvbGxhcHNlXG4gICAqIEBjYXRlZ29yeSBkZXYtbW9kZVxuICAgKi9cbiAgc3RhdGljIGVuYWJsZWRXYXJuaW5ncz86IFdhcm5pbmdLaW5kW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB0aGUgZ2l2ZW4gd2FybmluZyBjYXRlZ29yeSBmb3IgdGhpcyBjbGFzcy5cbiAgICpcbiAgICogVGhpcyBtZXRob2Qgb25seSBleGlzdHMgaW4gZGV2ZWxvcG1lbnQgYnVpbGRzLCBzbyBpdCBzaG91bGQgYmUgYWNjZXNzZWRcbiAgICogd2l0aCBhIGd1YXJkIGxpa2U6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIEVuYWJsZSBmb3IgYWxsIFJlYWN0aXZlRWxlbWVudCBzdWJjbGFzc2VzXG4gICAqIFJlYWN0aXZlRWxlbWVudC5lbmFibGVXYXJuaW5nPy4oJ21pZ3JhdGlvbicpO1xuICAgKlxuICAgKiAvLyBFbmFibGUgZm9yIG9ubHkgTXlFbGVtZW50IGFuZCBzdWJjbGFzc2VzXG4gICAqIE15RWxlbWVudC5lbmFibGVXYXJuaW5nPy4oJ21pZ3JhdGlvbicpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQG5vY29sbGFwc2VcbiAgICogQGNhdGVnb3J5IGRldi1tb2RlXG4gICAqL1xuICBzdGF0aWMgZW5hYmxlV2FybmluZz86ICh3YXJuaW5nS2luZDogV2FybmluZ0tpbmQpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIGdpdmVuIHdhcm5pbmcgY2F0ZWdvcnkgZm9yIHRoaXMgY2xhc3MuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIG9ubHkgZXhpc3RzIGluIGRldmVsb3BtZW50IGJ1aWxkcywgc28gaXQgc2hvdWxkIGJlIGFjY2Vzc2VkXG4gICAqIHdpdGggYSBndWFyZCBsaWtlOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBEaXNhYmxlIGZvciBhbGwgUmVhY3RpdmVFbGVtZW50IHN1YmNsYXNzZXNcbiAgICogUmVhY3RpdmVFbGVtZW50LmRpc2FibGVXYXJuaW5nPy4oJ21pZ3JhdGlvbicpO1xuICAgKlxuICAgKiAvLyBEaXNhYmxlIGZvciBvbmx5IE15RWxlbWVudCBhbmQgc3ViY2xhc3Nlc1xuICAgKiBNeUVsZW1lbnQuZGlzYWJsZVdhcm5pbmc/LignbWlncmF0aW9uJyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAbm9jb2xsYXBzZVxuICAgKiBAY2F0ZWdvcnkgZGV2LW1vZGVcbiAgICovXG4gIHN0YXRpYyBkaXNhYmxlV2FybmluZz86ICh3YXJuaW5nS2luZDogV2FybmluZ0tpbmQpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gaW5pdGlhbGl6ZXIgZnVuY3Rpb24gdG8gdGhlIGNsYXNzIHRoYXQgaXMgY2FsbGVkIGR1cmluZyBpbnN0YW5jZVxuICAgKiBjb25zdHJ1Y3Rpb24uXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZnVsIGZvciBjb2RlIHRoYXQgcnVucyBhZ2FpbnN0IGEgYFJlYWN0aXZlRWxlbWVudGBcbiAgICogc3ViY2xhc3MsIHN1Y2ggYXMgYSBkZWNvcmF0b3IsIHRoYXQgbmVlZHMgdG8gZG8gd29yayBmb3IgZWFjaFxuICAgKiBpbnN0YW5jZSwgc3VjaCBhcyBzZXR0aW5nIHVwIGEgYFJlYWN0aXZlQ29udHJvbGxlcmAuXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIGNvbnN0IG15RGVjb3JhdG9yID0gKHRhcmdldDogdHlwZW9mIFJlYWN0aXZlRWxlbWVudCwga2V5OiBzdHJpbmcpID0+IHtcbiAgICogICB0YXJnZXQuYWRkSW5pdGlhbGl6ZXIoKGluc3RhbmNlOiBSZWFjdGl2ZUVsZW1lbnQpID0+IHtcbiAgICogICAgIC8vIFRoaXMgaXMgcnVuIGR1cmluZyBjb25zdHJ1Y3Rpb24gb2YgdGhlIGVsZW1lbnRcbiAgICogICAgIG5ldyBNeUNvbnRyb2xsZXIoaW5zdGFuY2UpO1xuICAgKiAgIH0pO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBEZWNvcmF0aW5nIGEgZmllbGQgd2lsbCB0aGVuIGNhdXNlIGVhY2ggaW5zdGFuY2UgdG8gcnVuIGFuIGluaXRpYWxpemVyXG4gICAqIHRoYXQgYWRkcyBhIGNvbnRyb2xsZXI6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIGNsYXNzIE15RWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICAgKiAgIEBteURlY29yYXRvciBmb287XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEluaXRpYWxpemVycyBhcmUgc3RvcmVkIHBlci1jb25zdHJ1Y3Rvci4gQWRkaW5nIGFuIGluaXRpYWxpemVyIHRvIGFcbiAgICogc3ViY2xhc3MgZG9lcyBub3QgYWRkIGl0IHRvIGEgc3VwZXJjbGFzcy4gU2luY2UgaW5pdGlhbGl6ZXJzIGFyZSBydW4gaW5cbiAgICogY29uc3RydWN0b3JzLCBpbml0aWFsaXplcnMgd2lsbCBydW4gaW4gb3JkZXIgb2YgdGhlIGNsYXNzIGhpZXJhcmNoeSxcbiAgICogc3RhcnRpbmcgd2l0aCBzdXBlcmNsYXNzZXMgYW5kIHByb2dyZXNzaW5nIHRvIHRoZSBpbnN0YW5jZSdzIGNsYXNzLlxuICAgKlxuICAgKiBAbm9jb2xsYXBzZVxuICAgKi9cbiAgc3RhdGljIGFkZEluaXRpYWxpemVyKGluaXRpYWxpemVyOiBJbml0aWFsaXplcikge1xuICAgIHRoaXMuX19wcmVwYXJlKCk7XG4gICAgKHRoaXMuX2luaXRpYWxpemVycyA/Pz0gW10pLnB1c2goaW5pdGlhbGl6ZXIpO1xuICB9XG5cbiAgc3RhdGljIF9pbml0aWFsaXplcnM/OiBJbml0aWFsaXplcltdO1xuXG4gIC8qXG4gICAqIER1ZSB0byBjbG9zdXJlIGNvbXBpbGVyIEVTNiBjb21waWxhdGlvbiBidWdzLCBAbm9jb2xsYXBzZSBpcyByZXF1aXJlZCBvblxuICAgKiBhbGwgc3RhdGljIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgd2l0aCBpbml0aWFsaXplcnMuICBSZWZlcmVuY2U6XG4gICAqIC0gaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9jbG9zdXJlLWNvbXBpbGVyL2lzc3Vlcy8xNzc2XG4gICAqL1xuXG4gIC8qKlxuICAgKiBNYXBzIGF0dHJpYnV0ZSBuYW1lcyB0byBwcm9wZXJ0aWVzOyBmb3IgZXhhbXBsZSBgZm9vYmFyYCBhdHRyaWJ1dGUgdG9cbiAgICogYGZvb0JhcmAgcHJvcGVydHkuIENyZWF0ZWQgbGF6aWx5IG9uIHVzZXIgc3ViY2xhc3NlcyB3aGVuIGZpbmFsaXppbmcgdGhlXG4gICAqIGNsYXNzLlxuICAgKiBAbm9jb2xsYXBzZVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX19hdHRyaWJ1dGVUb1Byb3BlcnR5TWFwOiBBdHRyaWJ1dGVNYXA7XG5cbiAgLyoqXG4gICAqIE1hcmtzIGNsYXNzIGFzIGhhdmluZyBiZWVuIGZpbmFsaXplZCwgd2hpY2ggaW5jbHVkZXMgY3JlYXRpbmcgcHJvcGVydGllc1xuICAgKiBmcm9tIGBzdGF0aWMgcHJvcGVydGllc2AsIGJ1dCBkb2VzICpub3QqIGluY2x1ZGUgYWxsIHByb3BlcnRpZXMgY3JlYXRlZFxuICAgKiBmcm9tIGRlY29yYXRvcnMuXG4gICAqIEBub2NvbGxhcHNlXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsaXplZDogdHJ1ZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogTWVtb2l6ZWQgbGlzdCBvZiBhbGwgZWxlbWVudCBwcm9wZXJ0aWVzLCBpbmNsdWRpbmcgYW55IHN1cGVyY2xhc3NcbiAgICogcHJvcGVydGllcy4gQ3JlYXRlZCBsYXppbHkgb24gdXNlciBzdWJjbGFzc2VzIHdoZW4gZmluYWxpemluZyB0aGUgY2xhc3MuXG4gICAqXG4gICAqIEBub2NvbGxhcHNlXG4gICAqIEBjYXRlZ29yeSBwcm9wZXJ0aWVzXG4gICAqL1xuICBzdGF0aWMgZWxlbWVudFByb3BlcnRpZXM6IFByb3BlcnR5RGVjbGFyYXRpb25NYXA7XG5cbiAgLyoqXG4gICAqIFVzZXItc3VwcGxpZWQgb2JqZWN0IHRoYXQgbWFwcyBwcm9wZXJ0eSBuYW1lcyB0byBgUHJvcGVydHlEZWNsYXJhdGlvbmBcbiAgICogb2JqZWN0cyBjb250YWluaW5nIG9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHJlYWN0aXZlIHByb3BlcnRpZXMuIFdoZW5cbiAgICogYSByZWFjdGl2ZSBwcm9wZXJ0eSBpcyBzZXQgdGhlIGVsZW1lbnQgd2lsbCB1cGRhdGUgYW5kIHJlbmRlci5cbiAgICpcbiAgICogQnkgZGVmYXVsdCBwcm9wZXJ0aWVzIGFyZSBwdWJsaWMgZmllbGRzLCBhbmQgYXMgc3VjaCwgdGhleSBzaG91bGQgYmVcbiAgICogY29uc2lkZXJlZCBhcyBwcmltYXJpbHkgc2V0dGFibGUgYnkgZWxlbWVudCB1c2VycywgZWl0aGVyIHZpYSBhdHRyaWJ1dGUgb3JcbiAgICogdGhlIHByb3BlcnR5IGl0c2VsZi5cbiAgICpcbiAgICogR2VuZXJhbGx5LCBwcm9wZXJ0aWVzIHRoYXQgYXJlIGNoYW5nZWQgYnkgdGhlIGVsZW1lbnQgc2hvdWxkIGJlIHByaXZhdGUgb3JcbiAgICogcHJvdGVjdGVkIGZpZWxkcyBhbmQgc2hvdWxkIHVzZSB0aGUgYHN0YXRlOiB0cnVlYCBvcHRpb24uIFByb3BlcnRpZXNcbiAgICogbWFya2VkIGFzIGBzdGF0ZWAgZG8gbm90IHJlZmxlY3QgZnJvbSB0aGUgY29ycmVzcG9uZGluZyBhdHRyaWJ1dGVcbiAgICpcbiAgICogSG93ZXZlciwgc29tZXRpbWVzIGVsZW1lbnQgY29kZSBkb2VzIG5lZWQgdG8gc2V0IGEgcHVibGljIHByb3BlcnR5LiBUaGlzXG4gICAqIHNob3VsZCB0eXBpY2FsbHkgb25seSBiZSBkb25lIGluIHJlc3BvbnNlIHRvIHVzZXIgaW50ZXJhY3Rpb24sIGFuZCBhbiBldmVudFxuICAgKiBzaG91bGQgYmUgZmlyZWQgaW5mb3JtaW5nIHRoZSB1c2VyOyBmb3IgZXhhbXBsZSwgYSBjaGVja2JveCBzZXRzIGl0c1xuICAgKiBgY2hlY2tlZGAgcHJvcGVydHkgd2hlbiBjbGlja2VkIGFuZCBmaXJlcyBhIGBjaGFuZ2VkYCBldmVudC4gTXV0YXRpbmdcbiAgICogcHVibGljIHByb3BlcnRpZXMgc2hvdWxkIHR5cGljYWxseSBub3QgYmUgZG9uZSBmb3Igbm9uLXByaW1pdGl2ZSAob2JqZWN0IG9yXG4gICAqIGFycmF5KSBwcm9wZXJ0aWVzLiBJbiBvdGhlciBjYXNlcyB3aGVuIGFuIGVsZW1lbnQgbmVlZHMgdG8gbWFuYWdlIHN0YXRlLCBhXG4gICAqIHByaXZhdGUgcHJvcGVydHkgc2V0IHdpdGggdGhlIGBzdGF0ZTogdHJ1ZWAgb3B0aW9uIHNob3VsZCBiZSB1c2VkLiBXaGVuXG4gICAqIG5lZWRlZCwgc3RhdGUgcHJvcGVydGllcyBjYW4gYmUgaW5pdGlhbGl6ZWQgdmlhIHB1YmxpYyBwcm9wZXJ0aWVzIHRvXG4gICAqIGZhY2lsaXRhdGUgY29tcGxleCBpbnRlcmFjdGlvbnMuXG4gICAqIEBub2NvbGxhcHNlXG4gICAqIEBjYXRlZ29yeSBwcm9wZXJ0aWVzXG4gICAqL1xuICBzdGF0aWMgcHJvcGVydGllczogUHJvcGVydHlEZWNsYXJhdGlvbnM7XG5cbiAgLyoqXG4gICAqIE1lbW9pemVkIGxpc3Qgb2YgYWxsIGVsZW1lbnQgc3R5bGVzLlxuICAgKiBDcmVhdGVkIGxhemlseSBvbiB1c2VyIHN1YmNsYXNzZXMgd2hlbiBmaW5hbGl6aW5nIHRoZSBjbGFzcy5cbiAgICogQG5vY29sbGFwc2VcbiAgICogQGNhdGVnb3J5IHN0eWxlc1xuICAgKi9cbiAgc3RhdGljIGVsZW1lbnRTdHlsZXM6IEFycmF5PENTU1Jlc3VsdE9yTmF0aXZlPiA9IFtdO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBzdHlsZXMgdG8gYXBwbHkgdG8gdGhlIGVsZW1lbnQuIFRoZSBzdHlsZXMgc2hvdWxkIGJlIGRlZmluZWRcbiAgICogdXNpbmcgdGhlIHtAbGlua2NvZGUgY3NzfSB0YWcgZnVuY3Rpb24sIHZpYSBjb25zdHJ1Y3RpYmxlIHN0eWxlc2hlZXRzLCBvclxuICAgKiBpbXBvcnRlZCBmcm9tIG5hdGl2ZSBDU1MgbW9kdWxlIHNjcmlwdHMuXG4gICAqXG4gICAqIE5vdGUgb24gQ29udGVudCBTZWN1cml0eSBQb2xpY3k6XG4gICAqXG4gICAqIEVsZW1lbnQgc3R5bGVzIGFyZSBpbXBsZW1lbnRlZCB3aXRoIGA8c3R5bGU+YCB0YWdzIHdoZW4gdGhlIGJyb3dzZXIgZG9lc24ndFxuICAgKiBzdXBwb3J0IGFkb3B0ZWQgU3R5bGVTaGVldHMuIFRvIHVzZSBzdWNoIGA8c3R5bGU+YCB0YWdzIHdpdGggdGhlIHN0eWxlLXNyY1xuICAgKiBDU1AgZGlyZWN0aXZlLCB0aGUgc3R5bGUtc3JjIHZhbHVlIG11c3QgZWl0aGVyIGluY2x1ZGUgJ3Vuc2FmZS1pbmxpbmUnIG9yXG4gICAqIGBub25jZS08YmFzZTY0LXZhbHVlPmAgd2l0aCBgPGJhc2U2NC12YWx1ZT5gIHJlcGxhY2VkIGJlIGEgc2VydmVyLWdlbmVyYXRlZFxuICAgKiBub25jZS5cbiAgICpcbiAgICogVG8gcHJvdmlkZSBhIG5vbmNlIHRvIHVzZSBvbiBnZW5lcmF0ZWQgYDxzdHlsZT5gIGVsZW1lbnRzLCBzZXRcbiAgICogYHdpbmRvdy5saXROb25jZWAgdG8gYSBzZXJ2ZXItZ2VuZXJhdGVkIG5vbmNlIGluIHlvdXIgcGFnZSdzIEhUTUwsIGJlZm9yZVxuICAgKiBsb2FkaW5nIGFwcGxpY2F0aW9uIGNvZGU6XG4gICAqXG4gICAqIGBgYGh0bWxcbiAgICogPHNjcmlwdD5cbiAgICogICAvLyBHZW5lcmF0ZWQgYW5kIHVuaXF1ZSBwZXIgcmVxdWVzdDpcbiAgICogICB3aW5kb3cubGl0Tm9uY2UgPSAnYTFiMmMzZDQnO1xuICAgKiA8L3NjcmlwdD5cbiAgICogYGBgXG4gICAqIEBub2NvbGxhcHNlXG4gICAqIEBjYXRlZ29yeSBzdHlsZXNcbiAgICovXG4gIHN0YXRpYyBzdHlsZXM/OiBDU1NSZXN1bHRHcm91cDtcblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgYXR0cmlidXRlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSByZWdpc3RlcmVkIHByb3BlcnRpZXMuXG4gICAqIEBub2NvbGxhcHNlXG4gICAqIEBjYXRlZ29yeSBhdHRyaWJ1dGVzXG4gICAqL1xuICBzdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpIHtcbiAgICAvLyBFbnN1cmUgd2UndmUgY3JlYXRlZCBhbGwgcHJvcGVydGllc1xuICAgIHRoaXMuZmluYWxpemUoKTtcbiAgICAvLyB0aGlzLl9fYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcCBpcyBvbmx5IHVuZGVmaW5lZCBhZnRlciBmaW5hbGl6ZSgpIGluXG4gICAgLy8gUmVhY3RpdmVFbGVtZW50IGl0c2VsZi4gUmVhY3RpdmVFbGVtZW50Lm9ic2VydmVkQXR0cmlidXRlcyBpcyBvbmx5XG4gICAgLy8gYWNjZXNzZWQgd2l0aCBSZWFjdGl2ZUVsZW1lbnQgYXMgdGhlIHJlY2VpdmVyIHdoZW4gYSBzdWJjbGFzcyBvciBtaXhpblxuICAgIC8vIGNhbGxzIHN1cGVyLm9ic2VydmVkQXR0cmlidXRlc1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLl9fYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcCAmJiBbLi4udGhpcy5fX2F0dHJpYnV0ZVRvUHJvcGVydHlNYXAua2V5cygpXVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9faW5zdGFuY2VQcm9wZXJ0aWVzPzogUHJvcGVydHlWYWx1ZXMgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwcm9wZXJ0eSBhY2Nlc3NvciBvbiB0aGUgZWxlbWVudCBwcm90b3R5cGUgaWYgb25lIGRvZXMgbm90IGV4aXN0XG4gICAqIGFuZCBzdG9yZXMgYSB7QGxpbmtjb2RlIFByb3BlcnR5RGVjbGFyYXRpb259IGZvciB0aGUgcHJvcGVydHkgd2l0aCB0aGVcbiAgICogZ2l2ZW4gb3B0aW9ucy4gVGhlIHByb3BlcnR5IHNldHRlciBjYWxscyB0aGUgcHJvcGVydHkncyBgaGFzQ2hhbmdlZGBcbiAgICogcHJvcGVydHkgb3B0aW9uIG9yIHVzZXMgYSBzdHJpY3QgaWRlbnRpdHkgY2hlY2sgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90XG4gICAqIHRvIHJlcXVlc3QgYW4gdXBkYXRlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgb3ZlcnJpZGRlbiB0byBjdXN0b21pemUgcHJvcGVydGllczsgaG93ZXZlcixcbiAgICogd2hlbiBkb2luZyBzbywgaXQncyBpbXBvcnRhbnQgdG8gY2FsbCBgc3VwZXIuY3JlYXRlUHJvcGVydHlgIHRvIGVuc3VyZVxuICAgKiB0aGUgcHJvcGVydHkgaXMgc2V0dXAgY29ycmVjdGx5LiBUaGlzIG1ldGhvZCBjYWxsc1xuICAgKiBgZ2V0UHJvcGVydHlEZXNjcmlwdG9yYCBpbnRlcm5hbGx5IHRvIGdldCBhIGRlc2NyaXB0b3IgdG8gaW5zdGFsbC5cbiAgICogVG8gY3VzdG9taXplIHdoYXQgcHJvcGVydGllcyBkbyB3aGVuIHRoZXkgYXJlIGdldCBvciBzZXQsIG92ZXJyaWRlXG4gICAqIGBnZXRQcm9wZXJ0eURlc2NyaXB0b3JgLiBUbyBjdXN0b21pemUgdGhlIG9wdGlvbnMgZm9yIGEgcHJvcGVydHksXG4gICAqIGltcGxlbWVudCBgY3JlYXRlUHJvcGVydHlgIGxpa2UgdGhpczpcbiAgICpcbiAgICogYGBgdHNcbiAgICogc3RhdGljIGNyZWF0ZVByb3BlcnR5KG5hbWUsIG9wdGlvbnMpIHtcbiAgICogICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7bXlPcHRpb246IHRydWV9KTtcbiAgICogICBzdXBlci5jcmVhdGVQcm9wZXJ0eShuYW1lLCBvcHRpb25zKTtcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogQG5vY29sbGFwc2VcbiAgICogQGNhdGVnb3J5IHByb3BlcnRpZXNcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVQcm9wZXJ0eShcbiAgICBuYW1lOiBQcm9wZXJ0eUtleSxcbiAgICBvcHRpb25zOiBQcm9wZXJ0eURlY2xhcmF0aW9uID0gZGVmYXVsdFByb3BlcnR5RGVjbGFyYXRpb25cbiAgKSB7XG4gICAgLy8gSWYgdGhpcyBpcyBhIHN0YXRlIHByb3BlcnR5LCBmb3JjZSB0aGUgYXR0cmlidXRlIHRvIGZhbHNlLlxuICAgIGlmIChvcHRpb25zLnN0YXRlKSB7XG4gICAgICAob3B0aW9ucyBhcyBNdXRhYmxlPFByb3BlcnR5RGVjbGFyYXRpb24sICdhdHRyaWJ1dGUnPikuYXR0cmlidXRlID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuX19wcmVwYXJlKCk7XG4gICAgLy8gV2hldGhlciB0aGlzIHByb3BlcnR5IGlzIHdyYXBwaW5nIGFjY2Vzc29ycy5cbiAgICAvLyBIZWxwcyBjb250cm9sIHRoZSBpbml0aWFsIHZhbHVlIGNoYW5nZSBhbmQgcmVmbGVjdGlvbiBsb2dpYy5cbiAgICBpZiAodGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgIG9wdGlvbnMgPSBPYmplY3QuY3JlYXRlKG9wdGlvbnMpO1xuICAgICAgb3B0aW9ucy53cmFwcGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5lbGVtZW50UHJvcGVydGllcy5zZXQobmFtZSwgb3B0aW9ucyk7XG4gICAgaWYgKCFvcHRpb25zLm5vQWNjZXNzb3IpIHtcbiAgICAgIGNvbnN0IGtleSA9IERFVl9NT0RFXG4gICAgICAgID8gLy8gVXNlIFN5bWJvbC5mb3IgaW4gZGV2IG1vZGUgdG8gbWFrZSBpdCBlYXNpZXIgdG8gbWFpbnRhaW4gc3RhdGVcbiAgICAgICAgICAvLyB3aGVuIGRvaW5nIEhNUi5cbiAgICAgICAgICBTeW1ib2wuZm9yKGAke1N0cmluZyhuYW1lKX0gKEBwcm9wZXJ0eSgpIGNhY2hlKWApXG4gICAgICAgIDogU3ltYm9sKCk7XG4gICAgICBjb25zdCBkZXNjcmlwdG9yID0gdGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IobmFtZSwga2V5LCBvcHRpb25zKTtcbiAgICAgIGlmIChkZXNjcmlwdG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGVmaW5lUHJvcGVydHkodGhpcy5wcm90b3R5cGUsIG5hbWUsIGRlc2NyaXB0b3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcHJvcGVydHkgZGVzY3JpcHRvciB0byBiZSBkZWZpbmVkIG9uIHRoZSBnaXZlbiBuYW1lZCBwcm9wZXJ0eS5cbiAgICogSWYgbm8gZGVzY3JpcHRvciBpcyByZXR1cm5lZCwgdGhlIHByb3BlcnR5IHdpbGwgbm90IGJlY29tZSBhbiBhY2Nlc3Nvci5cbiAgICogRm9yIGV4YW1wbGUsXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIGNsYXNzIE15RWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICAgKiAgIHN0YXRpYyBnZXRQcm9wZXJ0eURlc2NyaXB0b3IobmFtZSwga2V5LCBvcHRpb25zKSB7XG4gICAqICAgICBjb25zdCBkZWZhdWx0RGVzY3JpcHRvciA9XG4gICAqICAgICAgICAgc3VwZXIuZ2V0UHJvcGVydHlEZXNjcmlwdG9yKG5hbWUsIGtleSwgb3B0aW9ucyk7XG4gICAqICAgICBjb25zdCBzZXR0ZXIgPSBkZWZhdWx0RGVzY3JpcHRvci5zZXQ7XG4gICAqICAgICByZXR1cm4ge1xuICAgKiAgICAgICBnZXQ6IGRlZmF1bHREZXNjcmlwdG9yLmdldCxcbiAgICogICAgICAgc2V0KHZhbHVlKSB7XG4gICAqICAgICAgICAgc2V0dGVyLmNhbGwodGhpcywgdmFsdWUpO1xuICAgKiAgICAgICAgIC8vIGN1c3RvbSBhY3Rpb24uXG4gICAqICAgICAgIH0sXG4gICAqICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICogICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgKiAgICAgfVxuICAgKiAgIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogQG5vY29sbGFwc2VcbiAgICogQGNhdGVnb3J5IHByb3BlcnRpZXNcbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKFxuICAgIG5hbWU6IFByb3BlcnR5S2V5LFxuICAgIGtleTogc3RyaW5nIHwgc3ltYm9sLFxuICAgIG9wdGlvbnM6IFByb3BlcnR5RGVjbGFyYXRpb25cbiAgKTogUHJvcGVydHlEZXNjcmlwdG9yIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB7Z2V0LCBzZXR9ID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMucHJvdG90eXBlLCBuYW1lKSA/PyB7XG4gICAgICBnZXQodGhpczogUmVhY3RpdmVFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzW2tleSBhcyBrZXlvZiB0eXBlb2YgdGhpc107XG4gICAgICB9LFxuICAgICAgc2V0KHRoaXM6IFJlYWN0aXZlRWxlbWVudCwgdjogdW5rbm93bikge1xuICAgICAgICAodGhpcyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcgfCBzeW1ib2wsIHVua25vd24+KVtrZXldID0gdjtcbiAgICAgIH0sXG4gICAgfTtcbiAgICBpZiAoREVWX01PREUgJiYgZ2V0ID09IG51bGwpIHtcbiAgICAgIGlmICgndmFsdWUnIGluIChnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcy5wcm90b3R5cGUsIG5hbWUpID8/IHt9KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEZpZWxkICR7SlNPTi5zdHJpbmdpZnkoU3RyaW5nKG5hbWUpKX0gb24gYCArXG4gICAgICAgICAgICBgJHt0aGlzLm5hbWV9IHdhcyBkZWNsYXJlZCBhcyBhIHJlYWN0aXZlIHByb3BlcnR5IGAgK1xuICAgICAgICAgICAgYGJ1dCBpdCdzIGFjdHVhbGx5IGRlY2xhcmVkIGFzIGEgdmFsdWUgb24gdGhlIHByb3RvdHlwZS4gYCArXG4gICAgICAgICAgICBgVXN1YWxseSB0aGlzIGlzIGR1ZSB0byB1c2luZyBAcHJvcGVydHkgb3IgQHN0YXRlIG9uIGEgbWV0aG9kLmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlzc3VlV2FybmluZyhcbiAgICAgICAgJ3JlYWN0aXZlLXByb3BlcnR5LXdpdGhvdXQtZ2V0dGVyJyxcbiAgICAgICAgYEZpZWxkICR7SlNPTi5zdHJpbmdpZnkoU3RyaW5nKG5hbWUpKX0gb24gYCArXG4gICAgICAgICAgYCR7dGhpcy5uYW1lfSB3YXMgZGVjbGFyZWQgYXMgYSByZWFjdGl2ZSBwcm9wZXJ0eSBgICtcbiAgICAgICAgICBgYnV0IGl0IGRvZXMgbm90IGhhdmUgYSBnZXR0ZXIuIFRoaXMgd2lsbCBiZSBhbiBlcnJvciBpbiBhIGAgK1xuICAgICAgICAgIGBmdXR1cmUgdmVyc2lvbiBvZiBMaXQuYFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldCxcbiAgICAgIHNldCh0aGlzOiBSZWFjdGl2ZUVsZW1lbnQsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gZ2V0Py5jYWxsKHRoaXMpO1xuICAgICAgICBzZXQ/LmNhbGwodGhpcywgdmFsdWUpO1xuICAgICAgICB0aGlzLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgICAgfSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwcm9wZXJ0eSBvcHRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gcHJvcGVydHkuXG4gICAqIFRoZXNlIG9wdGlvbnMgYXJlIGRlZmluZWQgd2l0aCBhIGBQcm9wZXJ0eURlY2xhcmF0aW9uYCB2aWEgdGhlIGBwcm9wZXJ0aWVzYFxuICAgKiBvYmplY3Qgb3IgdGhlIGBAcHJvcGVydHlgIGRlY29yYXRvciBhbmQgYXJlIHJlZ2lzdGVyZWQgaW5cbiAgICogYGNyZWF0ZVByb3BlcnR5KC4uLilgLlxuICAgKlxuICAgKiBOb3RlLCB0aGlzIG1ldGhvZCBzaG91bGQgYmUgY29uc2lkZXJlZCBcImZpbmFsXCIgYW5kIG5vdCBvdmVycmlkZGVuLiBUb1xuICAgKiBjdXN0b21pemUgdGhlIG9wdGlvbnMgZm9yIGEgZ2l2ZW4gcHJvcGVydHksIG92ZXJyaWRlXG4gICAqIHtAbGlua2NvZGUgY3JlYXRlUHJvcGVydHl9LlxuICAgKlxuICAgKiBAbm9jb2xsYXBzZVxuICAgKiBAZmluYWxcbiAgICogQGNhdGVnb3J5IHByb3BlcnRpZXNcbiAgICovXG4gIHN0YXRpYyBnZXRQcm9wZXJ0eU9wdGlvbnMobmFtZTogUHJvcGVydHlLZXkpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UHJvcGVydGllcy5nZXQobmFtZSkgPz8gZGVmYXVsdFByb3BlcnR5RGVjbGFyYXRpb247XG4gIH1cblxuICAvLyBUZW1wb3JhcnksIHVudGlsIGdvb2dsZTMgaXMgb24gVHlwZVNjcmlwdCA1LjJcbiAgZGVjbGFyZSBzdGF0aWMgW1N5bWJvbC5tZXRhZGF0YV06IG9iamVjdCAmIFJlY29yZDxQcm9wZXJ0eUtleSwgdW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHN0YXRpYyBvd24gcHJvcGVydGllcyBvZiB0aGUgY2xhc3MgdXNlZCBpbiBib29ra2VlcGluZ1xuICAgKiBmb3IgZWxlbWVudCBwcm9wZXJ0aWVzLCBpbml0aWFsaXplcnMsIGV0Yy5cbiAgICpcbiAgICogQ2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBieSBjb2RlIHRoYXQgbmVlZHMgdG8gZW5zdXJlIHRoZXNlXG4gICAqIHByb3BlcnRpZXMgZXhpc3QgYmVmb3JlIHVzaW5nIHRoZW0uXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGVuc3VyZXMgdGhlIHN1cGVyY2xhc3MgaXMgZmluYWxpemVkIHNvIHRoYXQgaW5oZXJpdGVkXG4gICAqIHByb3BlcnR5IG1ldGFkYXRhIGNhbiBiZSBjb3BpZWQgZG93bi5cbiAgICogQG5vY29sbGFwc2VcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIF9fcHJlcGFyZSgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoJ2VsZW1lbnRQcm9wZXJ0aWVzJywgdGhpcykpXG4gICAgKSB7XG4gICAgICAvLyBBbHJlYWR5IHByZXBhcmVkXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIEZpbmFsaXplIGFueSBzdXBlcmNsYXNzZXNcbiAgICBjb25zdCBzdXBlckN0b3IgPSBnZXRQcm90b3R5cGVPZih0aGlzKSBhcyB0eXBlb2YgUmVhY3RpdmVFbGVtZW50O1xuICAgIHN1cGVyQ3Rvci5maW5hbGl6ZSgpO1xuXG4gICAgLy8gQ3JlYXRlIG93biBzZXQgb2YgaW5pdGlhbGl6ZXJzIGZvciB0aGlzIGNsYXNzIGlmIGFueSBleGlzdCBvbiB0aGVcbiAgICAvLyBzdXBlcmNsYXNzIGFuZCBjb3B5IHRoZW0gZG93bi4gTm90ZSwgZm9yIGEgc21hbGwgcGVyZiBib29zdCwgYXZvaWRcbiAgICAvLyBjcmVhdGluZyBpbml0aWFsaXplcnMgdW5sZXNzIG5lZWRlZC5cbiAgICBpZiAoc3VwZXJDdG9yLl9pbml0aWFsaXplcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5faW5pdGlhbGl6ZXJzID0gWy4uLnN1cGVyQ3Rvci5faW5pdGlhbGl6ZXJzXTtcbiAgICB9XG4gICAgLy8gSW5pdGlhbGl6ZSBlbGVtZW50UHJvcGVydGllcyBmcm9tIHRoZSBzdXBlcmNsYXNzXG4gICAgdGhpcy5lbGVtZW50UHJvcGVydGllcyA9IG5ldyBNYXAoc3VwZXJDdG9yLmVsZW1lbnRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5pc2hlcyBzZXR0aW5nIHVwIHRoZSBjbGFzcyBzbyB0aGF0IGl0J3MgcmVhZHkgdG8gYmUgcmVnaXN0ZXJlZFxuICAgKiBhcyBhIGN1c3RvbSBlbGVtZW50IGFuZCBpbnN0YW50aWF0ZWQuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSB0aGUgUmVhY3RpdmVFbGVtZW50Lm9ic2VydmVkQXR0cmlidXRlcyBnZXR0ZXIuXG4gICAqIElmIHlvdSBvdmVycmlkZSB0aGUgb2JzZXJ2ZWRBdHRyaWJ1dGVzIGdldHRlciwgeW91IG11c3QgZWl0aGVyIGNhbGxcbiAgICogc3VwZXIub2JzZXJ2ZWRBdHRyaWJ1dGVzIHRvIHRyaWdnZXIgZmluYWxpemF0aW9uLCBvciBjYWxsIGZpbmFsaXplKClcbiAgICogeW91cnNlbGYuXG4gICAqXG4gICAqIEBub2NvbGxhcHNlXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsaXplKCkge1xuICAgIGlmICh0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoJ2ZpbmFsaXplZCcsIHRoaXMpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpbmFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5fX3ByZXBhcmUoKTtcblxuICAgIC8vIENyZWF0ZSBwcm9wZXJ0aWVzIGZyb20gdGhlIHN0YXRpYyBwcm9wZXJ0aWVzIGJsb2NrOlxuICAgIGlmICh0aGlzLmhhc093blByb3BlcnR5KEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoJ3Byb3BlcnRpZXMnLCB0aGlzKSkpIHtcbiAgICAgIGNvbnN0IHByb3BzID0gdGhpcy5wcm9wZXJ0aWVzO1xuICAgICAgY29uc3QgcHJvcEtleXMgPSBbXG4gICAgICAgIC4uLmdldE93blByb3BlcnR5TmFtZXMocHJvcHMpLFxuICAgICAgICAuLi5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocHJvcHMpLFxuICAgICAgXSBhcyBBcnJheTxrZXlvZiB0eXBlb2YgcHJvcHM+O1xuICAgICAgZm9yIChjb25zdCBwIG9mIHByb3BLZXlzKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlUHJvcGVydHkocCwgcHJvcHNbcF0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENyZWF0ZSBwcm9wZXJ0aWVzIGZyb20gc3RhbmRhcmQgZGVjb3JhdG9yIG1ldGFkYXRhOlxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpc1tTeW1ib2wubWV0YWRhdGFdO1xuICAgIGlmIChtZXRhZGF0YSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IGxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KG1ldGFkYXRhKTtcbiAgICAgIGlmIChwcm9wZXJ0aWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBbcCwgb3B0aW9uc10gb2YgcHJvcGVydGllcykge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFByb3BlcnRpZXMuc2V0KHAsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBhdHRyaWJ1dGUtdG8tcHJvcGVydHkgbWFwXG4gICAgdGhpcy5fX2F0dHJpYnV0ZVRvUHJvcGVydHlNYXAgPSBuZXcgTWFwKCk7XG4gICAgZm9yIChjb25zdCBbcCwgb3B0aW9uc10gb2YgdGhpcy5lbGVtZW50UHJvcGVydGllcykge1xuICAgICAgY29uc3QgYXR0ciA9IHRoaXMuX19hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkocCwgb3B0aW9ucyk7XG4gICAgICBpZiAoYXR0ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX19hdHRyaWJ1dGVUb1Byb3BlcnR5TWFwLnNldChhdHRyLCBwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVsZW1lbnRTdHlsZXMgPSB0aGlzLmZpbmFsaXplU3R5bGVzKHRoaXMuc3R5bGVzKTtcblxuICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgaWYgKHRoaXMuaGFzT3duUHJvcGVydHkoJ2NyZWF0ZVByb3BlcnR5JykpIHtcbiAgICAgICAgaXNzdWVXYXJuaW5nKFxuICAgICAgICAgICduby1vdmVycmlkZS1jcmVhdGUtcHJvcGVydHknLFxuICAgICAgICAgICdPdmVycmlkaW5nIFJlYWN0aXZlRWxlbWVudC5jcmVhdGVQcm9wZXJ0eSgpIGlzIGRlcHJlY2F0ZWQuICcgK1xuICAgICAgICAgICAgJ1RoZSBvdmVycmlkZSB3aWxsIG5vdCBiZSBjYWxsZWQgd2l0aCBzdGFuZGFyZCBkZWNvcmF0b3JzJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaGFzT3duUHJvcGVydHkoJ2dldFByb3BlcnR5RGVzY3JpcHRvcicpKSB7XG4gICAgICAgIGlzc3VlV2FybmluZyhcbiAgICAgICAgICAnbm8tb3ZlcnJpZGUtZ2V0LXByb3BlcnR5LWRlc2NyaXB0b3InLFxuICAgICAgICAgICdPdmVycmlkaW5nIFJlYWN0aXZlRWxlbWVudC5nZXRQcm9wZXJ0eURlc2NyaXB0b3IoKSBpcyBkZXByZWNhdGVkLiAnICtcbiAgICAgICAgICAgICdUaGUgb3ZlcnJpZGUgd2lsbCBub3QgYmUgY2FsbGVkIHdpdGggc3RhbmRhcmQgZGVjb3JhdG9ycydcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3B0aW9ucyB1c2VkIHdoZW4gY2FsbGluZyBgYXR0YWNoU2hhZG93YC4gU2V0IHRoaXMgcHJvcGVydHkgdG8gY3VzdG9taXplXG4gICAqIHRoZSBvcHRpb25zIGZvciB0aGUgc2hhZG93Um9vdDsgZm9yIGV4YW1wbGUsIHRvIGNyZWF0ZSBhIGNsb3NlZFxuICAgKiBzaGFkb3dSb290OiBge21vZGU6ICdjbG9zZWQnfWAuXG4gICAqXG4gICAqIE5vdGUsIHRoZXNlIG9wdGlvbnMgYXJlIHVzZWQgaW4gYGNyZWF0ZVJlbmRlclJvb3RgLiBJZiB0aGlzIG1ldGhvZFxuICAgKiBpcyBjdXN0b21pemVkLCBvcHRpb25zIHNob3VsZCBiZSByZXNwZWN0ZWQgaWYgcG9zc2libGUuXG4gICAqIEBub2NvbGxhcHNlXG4gICAqIEBjYXRlZ29yeSByZW5kZXJpbmdcbiAgICovXG4gIHN0YXRpYyBzaGFkb3dSb290T3B0aW9uczogU2hhZG93Um9vdEluaXQgPSB7bW9kZTogJ29wZW4nfTtcblxuICAvKipcbiAgICogVGFrZXMgdGhlIHN0eWxlcyB0aGUgdXNlciBzdXBwbGllZCB2aWEgdGhlIGBzdGF0aWMgc3R5bGVzYCBwcm9wZXJ0eSBhbmRcbiAgICogcmV0dXJucyB0aGUgYXJyYXkgb2Ygc3R5bGVzIHRvIGFwcGx5IHRvIHRoZSBlbGVtZW50LlxuICAgKiBPdmVycmlkZSB0aGlzIG1ldGhvZCB0byBpbnRlZ3JhdGUgaW50byBhIHN0eWxlIG1hbmFnZW1lbnQgc3lzdGVtLlxuICAgKlxuICAgKiBTdHlsZXMgYXJlIGRlZHVwbGljYXRlZCBwcmVzZXJ2aW5nIHRoZSBfbGFzdF8gaW5zdGFuY2UgaW4gdGhlIGxpc3QuIFRoaXNcbiAgICogaXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gdG8gYXZvaWQgZHVwbGljYXRlZCBzdHlsZXMgdGhhdCBjYW4gb2NjdXJcbiAgICogZXNwZWNpYWxseSB3aGVuIGNvbXBvc2luZyB2aWEgc3ViY2xhc3NpbmcuIFRoZSBsYXN0IGl0ZW0gaXMga2VwdCB0byB0cnlcbiAgICogdG8gcHJlc2VydmUgdGhlIGNhc2NhZGUgb3JkZXIgd2l0aCB0aGUgYXNzdW1wdGlvbiB0aGF0IGl0J3MgbW9zdCBpbXBvcnRhbnRcbiAgICogdGhhdCBsYXN0IGFkZGVkIHN0eWxlcyBvdmVycmlkZSBwcmV2aW91cyBzdHlsZXMuXG4gICAqXG4gICAqIEBub2NvbGxhcHNlXG4gICAqIEBjYXRlZ29yeSBzdHlsZXNcbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgZmluYWxpemVTdHlsZXMoXG4gICAgc3R5bGVzPzogQ1NTUmVzdWx0R3JvdXBcbiAgKTogQXJyYXk8Q1NTUmVzdWx0T3JOYXRpdmU+IHtcbiAgICBjb25zdCBlbGVtZW50U3R5bGVzID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc3R5bGVzKSkge1xuICAgICAgLy8gRGVkdXBlIHRoZSBmbGF0dGVuZWQgYXJyYXkgaW4gcmV2ZXJzZSBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgbGFzdCBpdGVtcy5cbiAgICAgIC8vIENhc3RpbmcgdG8gQXJyYXk8dW5rbm93bj4gd29ya3MgYXJvdW5kIFRTIGVycm9yIHRoYXRcbiAgICAgIC8vIGFwcGVhcnMgdG8gY29tZSBmcm9tIHRyeWluZyB0byBmbGF0dGVuIGEgdHlwZSBDU1NSZXN1bHRBcnJheS5cbiAgICAgIGNvbnN0IHNldCA9IG5ldyBTZXQoKHN0eWxlcyBhcyBBcnJheTx1bmtub3duPikuZmxhdChJbmZpbml0eSkucmV2ZXJzZSgpKTtcbiAgICAgIC8vIFRoZW4gcHJlc2VydmUgb3JpZ2luYWwgb3JkZXIgYnkgYWRkaW5nIHRoZSBzZXQgaXRlbXMgaW4gcmV2ZXJzZSBvcmRlci5cbiAgICAgIGZvciAoY29uc3QgcyBvZiBzZXQpIHtcbiAgICAgICAgZWxlbWVudFN0eWxlcy51bnNoaWZ0KGdldENvbXBhdGlibGVTdHlsZShzIGFzIENTU1Jlc3VsdE9yTmF0aXZlKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdHlsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZWxlbWVudFN0eWxlcy5wdXNoKGdldENvbXBhdGlibGVTdHlsZShzdHlsZXMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGVsZW1lbnRTdHlsZXM7XG4gIH1cblxuICAvKipcbiAgICogTm9kZSBvciBTaGFkb3dSb290IGludG8gd2hpY2ggZWxlbWVudCBET00gc2hvdWxkIGJlIHJlbmRlcmVkLiBEZWZhdWx0c1xuICAgKiB0byBhbiBvcGVuIHNoYWRvd1Jvb3QuXG4gICAqIEBjYXRlZ29yeSByZW5kZXJpbmdcbiAgICovXG4gIHJlYWRvbmx5IHJlbmRlclJvb3QhOiBIVE1MRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQ7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHByb3BlcnR5IG5hbWUgZm9yIHRoZSBnaXZlbiBhdHRyaWJ1dGUgYG5hbWVgLlxuICAgKiBAbm9jb2xsYXBzZVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX19hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkoXG4gICAgbmFtZTogUHJvcGVydHlLZXksXG4gICAgb3B0aW9uczogUHJvcGVydHlEZWNsYXJhdGlvblxuICApIHtcbiAgICBjb25zdCBhdHRyaWJ1dGUgPSBvcHRpb25zLmF0dHJpYnV0ZTtcbiAgICByZXR1cm4gYXR0cmlidXRlID09PSBmYWxzZVxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogdHlwZW9mIGF0dHJpYnV0ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBhdHRyaWJ1dGVcbiAgICAgICAgOiB0eXBlb2YgbmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IG5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gSW5pdGlhbGl6ZSB0byBhbiB1bnJlc29sdmVkIFByb21pc2Ugc28gd2UgY2FuIG1ha2Ugc3VyZSB0aGUgZWxlbWVudCBoYXNcbiAgLy8gY29ubmVjdGVkIGJlZm9yZSBmaXJzdCB1cGRhdGUuXG4gIHByaXZhdGUgX191cGRhdGVQcm9taXNlITogUHJvbWlzZTxib29sZWFuPjtcblxuICAvKipcbiAgICogVHJ1ZSBpZiB0aGVyZSBpcyBhIHBlbmRpbmcgdXBkYXRlIGFzIGEgcmVzdWx0IG9mIGNhbGxpbmcgYHJlcXVlc3RVcGRhdGUoKWAuXG4gICAqIFNob3VsZCBvbmx5IGJlIHJlYWQuXG4gICAqIEBjYXRlZ29yeSB1cGRhdGVzXG4gICAqL1xuICBpc1VwZGF0ZVBlbmRpbmcgPSBmYWxzZTtcblxuICAvKipcbiAgICogSXMgc2V0IHRvIGB0cnVlYCBhZnRlciB0aGUgZmlyc3QgdXBkYXRlLiBUaGUgZWxlbWVudCBjb2RlIGNhbm5vdCBhc3N1bWVcbiAgICogdGhhdCBgcmVuZGVyUm9vdGAgZXhpc3RzIGJlZm9yZSB0aGUgZWxlbWVudCBgaGFzVXBkYXRlZGAuXG4gICAqIEBjYXRlZ29yeSB1cGRhdGVzXG4gICAqL1xuICBoYXNVcGRhdGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE1hcCB3aXRoIGtleXMgZm9yIGFueSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0XG4gICAqIHVwZGF0ZSBjeWNsZSB3aXRoIHByZXZpb3VzIHZhbHVlcy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfJGNoYW5nZWRQcm9wZXJ0aWVzITogUHJvcGVydHlWYWx1ZXM7XG5cbiAgLyoqXG4gICAqIFJlY29yZHMgcHJvcGVydHkgZGVmYXVsdCB2YWx1ZXMgd2hlbiB0aGVcbiAgICogYHVzZURlZmF1bHRgIG9wdGlvbiBpcyB1c2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBfX2RlZmF1bHRWYWx1ZXM/OiBNYXA8UHJvcGVydHlLZXksIHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRoYXQgc2hvdWxkIGJlIHJlZmxlY3RlZCB3aGVuIHVwZGF0ZWQuXG4gICAqL1xuICBwcml2YXRlIF9fcmVmbGVjdGluZ1Byb3BlcnRpZXM/OiBTZXQ8UHJvcGVydHlLZXk+O1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIGN1cnJlbnRseSByZWZsZWN0aW5nIHByb3BlcnR5XG4gICAqL1xuICBwcml2YXRlIF9fcmVmbGVjdGluZ1Byb3BlcnR5OiBQcm9wZXJ0eUtleSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTZXQgb2YgY29udHJvbGxlcnMuXG4gICAqL1xuICBwcml2YXRlIF9fY29udHJvbGxlcnM/OiBTZXQ8UmVhY3RpdmVDb250cm9sbGVyPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX19pbml0aWFsaXplKCk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgb25seSBvdmVycmlkZSBwb2ludCBmb3IgY3VzdG9taXppbmcgd29yayBkb25lIHdoZW4gZWxlbWVudHNcbiAgICogYXJlIGNvbnN0cnVjdGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBfX2luaXRpYWxpemUoKSB7XG4gICAgdGhpcy5fX3VwZGF0ZVByb21pc2UgPSBuZXcgUHJvbWlzZTxib29sZWFuPihcbiAgICAgIChyZXMpID0+ICh0aGlzLmVuYWJsZVVwZGF0aW5nID0gcmVzKVxuICAgICk7XG4gICAgdGhpcy5fJGNoYW5nZWRQcm9wZXJ0aWVzID0gbmV3IE1hcCgpO1xuICAgIC8vIFRoaXMgZW5xdWV1ZXMgYSBtaWNyb3Rhc2sgdGhhdCBtdXN0IHJ1biBiZWZvcmUgdGhlIGZpcnN0IHVwZGF0ZSwgc28gaXRcbiAgICAvLyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgcmVxdWVzdFVwZGF0ZSgpXG4gICAgdGhpcy5fX3NhdmVJbnN0YW5jZVByb3BlcnRpZXMoKTtcbiAgICAvLyBlbnN1cmVzIGZpcnN0IHVwZGF0ZSB3aWxsIGJlIGNhdWdodCBieSBhbiBlYXJseSBhY2Nlc3Mgb2ZcbiAgICAvLyBgdXBkYXRlQ29tcGxldGVgXG4gICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgKHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudCkuX2luaXRpYWxpemVycz8uZm9yRWFjaCgoaSkgPT5cbiAgICAgIGkodGhpcylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGBSZWFjdGl2ZUNvbnRyb2xsZXJgIHRvIHBhcnRpY2lwYXRlIGluIHRoZSBlbGVtZW50J3MgcmVhY3RpdmVcbiAgICogdXBkYXRlIGN5Y2xlLiBUaGUgZWxlbWVudCBhdXRvbWF0aWNhbGx5IGNhbGxzIGludG8gYW55IHJlZ2lzdGVyZWRcbiAgICogY29udHJvbGxlcnMgZHVyaW5nIGl0cyBsaWZlY3ljbGUgY2FsbGJhY2tzLlxuICAgKlxuICAgKiBJZiB0aGUgZWxlbWVudCBpcyBjb25uZWN0ZWQgd2hlbiBgYWRkQ29udHJvbGxlcigpYCBpcyBjYWxsZWQsIHRoZVxuICAgKiBjb250cm9sbGVyJ3MgYGhvc3RDb25uZWN0ZWQoKWAgY2FsbGJhY2sgd2lsbCBiZSBpbW1lZGlhdGVseSBjYWxsZWQuXG4gICAqIEBjYXRlZ29yeSBjb250cm9sbGVyc1xuICAgKi9cbiAgYWRkQ29udHJvbGxlcihjb250cm9sbGVyOiBSZWFjdGl2ZUNvbnRyb2xsZXIpIHtcbiAgICAodGhpcy5fX2NvbnRyb2xsZXJzID8/PSBuZXcgU2V0KCkpLmFkZChjb250cm9sbGVyKTtcbiAgICAvLyBJZiBhIGNvbnRyb2xsZXIgaXMgYWRkZWQgYWZ0ZXIgdGhlIGVsZW1lbnQgaGFzIGJlZW4gY29ubmVjdGVkLFxuICAgIC8vIGNhbGwgaG9zdENvbm5lY3RlZC4gTm90ZSwgcmUtdXNpbmcgZXhpc3RlbmNlIG9mIGByZW5kZXJSb290YCBoZXJlXG4gICAgLy8gKHdoaWNoIGlzIHNldCBpbiBjb25uZWN0ZWRDYWxsYmFjaykgdG8gYXZvaWQgdGhlIG5lZWQgdG8gdHJhY2sgYVxuICAgIC8vIGZpcnN0IGNvbm5lY3RlZCBzdGF0ZS5cbiAgICBpZiAodGhpcy5yZW5kZXJSb290ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgY29udHJvbGxlci5ob3N0Q29ubmVjdGVkPy4oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGBSZWFjdGl2ZUNvbnRyb2xsZXJgIGZyb20gdGhlIGVsZW1lbnQuXG4gICAqIEBjYXRlZ29yeSBjb250cm9sbGVyc1xuICAgKi9cbiAgcmVtb3ZlQ29udHJvbGxlcihjb250cm9sbGVyOiBSZWFjdGl2ZUNvbnRyb2xsZXIpIHtcbiAgICB0aGlzLl9fY29udHJvbGxlcnM/LmRlbGV0ZShjb250cm9sbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXhlcyBhbnkgcHJvcGVydGllcyBzZXQgb24gdGhlIGluc3RhbmNlIGJlZm9yZSB1cGdyYWRlIHRpbWUuXG4gICAqIE90aGVyd2lzZSB0aGVzZSB3b3VsZCBzaGFkb3cgdGhlIGFjY2Vzc29yIGFuZCBicmVhayB0aGVzZSBwcm9wZXJ0aWVzLlxuICAgKiBUaGUgcHJvcGVydGllcyBhcmUgc3RvcmVkIGluIGEgTWFwIHdoaWNoIGlzIHBsYXllZCBiYWNrIGFmdGVyIHRoZVxuICAgKiBjb25zdHJ1Y3RvciBydW5zLlxuICAgKi9cbiAgcHJpdmF0ZSBfX3NhdmVJbnN0YW5jZVByb3BlcnRpZXMoKSB7XG4gICAgY29uc3QgaW5zdGFuY2VQcm9wZXJ0aWVzID0gbmV3IE1hcDxQcm9wZXJ0eUtleSwgdW5rbm93bj4oKTtcbiAgICBjb25zdCBlbGVtZW50UHJvcGVydGllcyA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBSZWFjdGl2ZUVsZW1lbnQpXG4gICAgICAuZWxlbWVudFByb3BlcnRpZXM7XG4gICAgZm9yIChjb25zdCBwIG9mIGVsZW1lbnRQcm9wZXJ0aWVzLmtleXMoKSBhcyBJdGVyYWJsZUl0ZXJhdG9yPGtleW9mIHRoaXM+KSB7XG4gICAgICBpZiAodGhpcy5oYXNPd25Qcm9wZXJ0eShwKSkge1xuICAgICAgICBpbnN0YW5jZVByb3BlcnRpZXMuc2V0KHAsIHRoaXNbcF0pO1xuICAgICAgICBkZWxldGUgdGhpc1twXTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGluc3RhbmNlUHJvcGVydGllcy5zaXplID4gMCkge1xuICAgICAgdGhpcy5fX2luc3RhbmNlUHJvcGVydGllcyA9IGluc3RhbmNlUHJvcGVydGllcztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbm9kZSBpbnRvIHdoaWNoIHRoZSBlbGVtZW50IHNob3VsZCByZW5kZXIgYW5kIGJ5IGRlZmF1bHRcbiAgICogY3JlYXRlcyBhbmQgcmV0dXJucyBhbiBvcGVuIHNoYWRvd1Jvb3QuIEltcGxlbWVudCB0byBjdXN0b21pemUgd2hlcmUgdGhlXG4gICAqIGVsZW1lbnQncyBET00gaXMgcmVuZGVyZWQuIEZvciBleGFtcGxlLCB0byByZW5kZXIgaW50byB0aGUgZWxlbWVudCdzXG4gICAqIGNoaWxkTm9kZXMsIHJldHVybiBgdGhpc2AuXG4gICAqXG4gICAqIEByZXR1cm4gUmV0dXJucyBhIG5vZGUgaW50byB3aGljaCB0byByZW5kZXIuXG4gICAqIEBjYXRlZ29yeSByZW5kZXJpbmdcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZW5kZXJSb290KCk6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCB7XG4gICAgY29uc3QgcmVuZGVyUm9vdCA9XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QgPz9cbiAgICAgIHRoaXMuYXR0YWNoU2hhZG93KFxuICAgICAgICAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgUmVhY3RpdmVFbGVtZW50KS5zaGFkb3dSb290T3B0aW9uc1xuICAgICAgKTtcbiAgICBhZG9wdFN0eWxlcyhcbiAgICAgIHJlbmRlclJvb3QsXG4gICAgICAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgUmVhY3RpdmVFbGVtZW50KS5lbGVtZW50U3R5bGVzXG4gICAgKTtcbiAgICByZXR1cm4gcmVuZGVyUm9vdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBmaXJzdCBjb25uZWN0aW9uLCBjcmVhdGVzIHRoZSBlbGVtZW50J3MgcmVuZGVyUm9vdCwgc2V0cyB1cFxuICAgKiBlbGVtZW50IHN0eWxpbmcsIGFuZCBlbmFibGVzIHVwZGF0aW5nLlxuICAgKiBAY2F0ZWdvcnkgbGlmZWN5Y2xlXG4gICAqL1xuICBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAvLyBDcmVhdGUgcmVuZGVyUm9vdCBiZWZvcmUgY29udHJvbGxlcnMgYGhvc3RDb25uZWN0ZWRgXG4gICAgKHRoaXMgYXMgTXV0YWJsZTx0eXBlb2YgdGhpcywgJ3JlbmRlclJvb3QnPikucmVuZGVyUm9vdCA/Pz1cbiAgICAgIHRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpO1xuICAgIHRoaXMuZW5hYmxlVXBkYXRpbmcodHJ1ZSk7XG4gICAgdGhpcy5fX2NvbnRyb2xsZXJzPy5mb3JFYWNoKChjKSA9PiBjLmhvc3RDb25uZWN0ZWQ/LigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RlLCB0aGlzIG1ldGhvZCBzaG91bGQgYmUgY29uc2lkZXJlZCBmaW5hbCBhbmQgbm90IG92ZXJyaWRkZW4uIEl0IGlzXG4gICAqIG92ZXJyaWRkZW4gb24gdGhlIGVsZW1lbnQgaW5zdGFuY2Ugd2l0aCBhIGZ1bmN0aW9uIHRoYXQgdHJpZ2dlcnMgdGhlIGZpcnN0XG4gICAqIHVwZGF0ZS5cbiAgICogQGNhdGVnb3J5IHVwZGF0ZXNcbiAgICovXG4gIHByb3RlY3RlZCBlbmFibGVVcGRhdGluZyhfcmVxdWVzdGVkVXBkYXRlOiBib29sZWFuKSB7fVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgZm9yIGBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpYCBpbiBleHRlbnNpb25zIHdoaWxlXG4gICAqIHJlc2VydmluZyB0aGUgcG9zc2liaWxpdHkgb2YgbWFraW5nIG5vbi1icmVha2luZyBmZWF0dXJlIGFkZGl0aW9uc1xuICAgKiB3aGVuIGRpc2Nvbm5lY3RpbmcgYXQgc29tZSBwb2ludCBpbiB0aGUgZnV0dXJlLlxuICAgKiBAY2F0ZWdvcnkgbGlmZWN5Y2xlXG4gICAqL1xuICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICB0aGlzLl9fY29udHJvbGxlcnM/LmZvckVhY2goKGMpID0+IGMuaG9zdERpc2Nvbm5lY3RlZD8uKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bmNocm9uaXplcyBwcm9wZXJ0eSB2YWx1ZXMgd2hlbiBhdHRyaWJ1dGVzIGNoYW5nZS5cbiAgICpcbiAgICogU3BlY2lmaWNhbGx5LCB3aGVuIGFuIGF0dHJpYnV0ZSBpcyBzZXQsIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGlzIHNldC5cbiAgICogWW91IHNob3VsZCByYXJlbHkgbmVlZCB0byBpbXBsZW1lbnQgdGhpcyBjYWxsYmFjay4gSWYgdGhpcyBtZXRob2QgaXNcbiAgICogb3ZlcnJpZGRlbiwgYHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBfb2xkLCB2YWx1ZSlgIG11c3QgYmVcbiAgICogY2FsbGVkLlxuICAgKlxuICAgKiBTZWUgW3Jlc3BvbmRpbmcgdG8gYXR0cmlidXRlIGNoYW5nZXNdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XZWJfY29tcG9uZW50cy9Vc2luZ19jdXN0b21fZWxlbWVudHMjcmVzcG9uZGluZ190b19hdHRyaWJ1dGVfY2hhbmdlcylcbiAgICogb24gTUROIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrYC5cbiAgICogQGNhdGVnb3J5IGF0dHJpYnV0ZXNcbiAgICovXG4gIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgX29sZDogc3RyaW5nIHwgbnVsbCxcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbFxuICApIHtcbiAgICB0aGlzLl8kYXR0cmlidXRlVG9Qcm9wZXJ0eShuYW1lLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9fcHJvcGVydHlUb0F0dHJpYnV0ZShuYW1lOiBQcm9wZXJ0eUtleSwgdmFsdWU6IHVua25vd24pIHtcbiAgICBjb25zdCBlbGVtUHJvcGVydGllczogUHJvcGVydHlEZWNsYXJhdGlvbk1hcCA9IChcbiAgICAgIHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudFxuICAgICkuZWxlbWVudFByb3BlcnRpZXM7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGVsZW1Qcm9wZXJ0aWVzLmdldChuYW1lKSE7XG4gICAgY29uc3QgYXR0ciA9IChcbiAgICAgIHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudFxuICAgICkuX19hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkobmFtZSwgb3B0aW9ucyk7XG4gICAgaWYgKGF0dHIgIT09IHVuZGVmaW5lZCAmJiBvcHRpb25zLnJlZmxlY3QgPT09IHRydWUpIHtcbiAgICAgIGNvbnN0IGNvbnZlcnRlciA9XG4gICAgICAgIChvcHRpb25zLmNvbnZlcnRlciBhcyBDb21wbGV4QXR0cmlidXRlQ29udmVydGVyKT8udG9BdHRyaWJ1dGUgIT09XG4gICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgID8gKG9wdGlvbnMuY29udmVydGVyIGFzIENvbXBsZXhBdHRyaWJ1dGVDb252ZXJ0ZXIpXG4gICAgICAgICAgOiBkZWZhdWx0Q29udmVydGVyO1xuICAgICAgY29uc3QgYXR0clZhbHVlID0gY29udmVydGVyLnRvQXR0cmlidXRlISh2YWx1ZSwgb3B0aW9ucy50eXBlKTtcbiAgICAgIGlmIChcbiAgICAgICAgREVWX01PREUgJiZcbiAgICAgICAgKHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudCkuZW5hYmxlZFdhcm5pbmdzIS5pbmNsdWRlcyhcbiAgICAgICAgICAnbWlncmF0aW9uJ1xuICAgICAgICApICYmXG4gICAgICAgIGF0dHJWYWx1ZSA9PT0gdW5kZWZpbmVkXG4gICAgICApIHtcbiAgICAgICAgaXNzdWVXYXJuaW5nKFxuICAgICAgICAgICd1bmRlZmluZWQtYXR0cmlidXRlLXZhbHVlJyxcbiAgICAgICAgICBgVGhlIGF0dHJpYnV0ZSB2YWx1ZSBmb3IgdGhlICR7bmFtZSBhcyBzdHJpbmd9IHByb3BlcnR5IGlzIGAgK1xuICAgICAgICAgICAgYHVuZGVmaW5lZCBvbiBlbGVtZW50ICR7dGhpcy5sb2NhbE5hbWV9LiBUaGUgYXR0cmlidXRlIHdpbGwgYmUgYCArXG4gICAgICAgICAgICBgcmVtb3ZlZCwgYnV0IGluIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIFxcYFJlYWN0aXZlRWxlbWVudFxcYCwgYCArXG4gICAgICAgICAgICBgdGhlIGF0dHJpYnV0ZSB3b3VsZCBub3QgaGF2ZSBjaGFuZ2VkLmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIFRyYWNrIGlmIHRoZSBwcm9wZXJ0eSBpcyBiZWluZyByZWZsZWN0ZWQgdG8gYXZvaWRcbiAgICAgIC8vIHNldHRpbmcgdGhlIHByb3BlcnR5IGFnYWluIHZpYSBgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrYC4gTm90ZTpcbiAgICAgIC8vIDEuIHRoaXMgdGFrZXMgYWR2YW50YWdlIG9mIHRoZSBmYWN0IHRoYXQgdGhlIGNhbGxiYWNrIGlzIHN5bmNocm9ub3VzLlxuICAgICAgLy8gMi4gd2lsbCBiZWhhdmUgaW5jb3JyZWN0bHkgaWYgbXVsdGlwbGUgYXR0cmlidXRlcyBhcmUgaW4gdGhlIHJlYWN0aW9uXG4gICAgICAvLyBzdGFjayBhdCB0aW1lIG9mIGNhbGxpbmcuIEhvd2V2ZXIsIHNpbmNlIHdlIHByb2Nlc3MgYXR0cmlidXRlc1xuICAgICAgLy8gaW4gYHVwZGF0ZWAgdGhpcyBzaG91bGQgbm90IGJlIHBvc3NpYmxlIChvciBhbiBleHRyZW1lIGNvcm5lciBjYXNlXG4gICAgICAvLyB0aGF0IHdlJ2QgbGlrZSB0byBkaXNjb3ZlcikuXG4gICAgICAvLyBtYXJrIHN0YXRlIHJlZmxlY3RpbmdcbiAgICAgIHRoaXMuX19yZWZsZWN0aW5nUHJvcGVydHkgPSBuYW1lO1xuICAgICAgaWYgKGF0dHJWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKGF0dHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoYXR0ciwgYXR0clZhbHVlIGFzIHN0cmluZyk7XG4gICAgICB9XG4gICAgICAvLyBtYXJrIHN0YXRlIG5vdCByZWZsZWN0aW5nXG4gICAgICB0aGlzLl9fcmVmbGVjdGluZ1Byb3BlcnR5ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIF8kYXR0cmlidXRlVG9Qcm9wZXJ0eShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgY29uc3QgY3RvciA9IHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudDtcbiAgICAvLyBOb3RlLCBoaW50IHRoaXMgYXMgYW4gYEF0dHJpYnV0ZU1hcGAgc28gY2xvc3VyZSBjbGVhcmx5IHVuZGVyc3RhbmRzXG4gICAgLy8gdGhlIHR5cGU7IGl0IGhhcyBpc3N1ZXMgd2l0aCB0cmFja2luZyB0eXBlcyB0aHJvdWdoIHN0YXRpY3NcbiAgICBjb25zdCBwcm9wTmFtZSA9IChjdG9yLl9fYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcCBhcyBBdHRyaWJ1dGVNYXApLmdldChuYW1lKTtcbiAgICAvLyBVc2UgdHJhY2tpbmcgaW5mbyB0byBhdm9pZCByZWZsZWN0aW5nIGEgcHJvcGVydHkgdmFsdWUgdG8gYW4gYXR0cmlidXRlXG4gICAgLy8gaWYgaXQgd2FzIGp1c3Qgc2V0IGJlY2F1c2UgdGhlIGF0dHJpYnV0ZSBjaGFuZ2VkLlxuICAgIGlmIChwcm9wTmFtZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX19yZWZsZWN0aW5nUHJvcGVydHkgIT09IHByb3BOYW1lKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gY3Rvci5nZXRQcm9wZXJ0eU9wdGlvbnMocHJvcE5hbWUpO1xuICAgICAgY29uc3QgY29udmVydGVyID1cbiAgICAgICAgdHlwZW9mIG9wdGlvbnMuY29udmVydGVyID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgPyB7ZnJvbUF0dHJpYnV0ZTogb3B0aW9ucy5jb252ZXJ0ZXJ9XG4gICAgICAgICAgOiBvcHRpb25zLmNvbnZlcnRlcj8uZnJvbUF0dHJpYnV0ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IG9wdGlvbnMuY29udmVydGVyXG4gICAgICAgICAgICA6IGRlZmF1bHRDb252ZXJ0ZXI7XG4gICAgICAvLyBtYXJrIHN0YXRlIHJlZmxlY3RpbmdcbiAgICAgIHRoaXMuX19yZWZsZWN0aW5nUHJvcGVydHkgPSBwcm9wTmFtZTtcbiAgICAgIGNvbnN0IGNvbnZlcnRlZFZhbHVlID0gY29udmVydGVyLmZyb21BdHRyaWJ1dGUhKHZhbHVlLCBvcHRpb25zLnR5cGUpO1xuICAgICAgdGhpc1twcm9wTmFtZSBhcyBrZXlvZiB0aGlzXSA9XG4gICAgICAgIGNvbnZlcnRlZFZhbHVlID8/XG4gICAgICAgIHRoaXMuX19kZWZhdWx0VmFsdWVzPy5nZXQocHJvcE5hbWUpID8/XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIChjb252ZXJ0ZWRWYWx1ZSBhcyBhbnkpO1xuICAgICAgLy8gbWFyayBzdGF0ZSBub3QgcmVmbGVjdGluZ1xuICAgICAgdGhpcy5fX3JlZmxlY3RpbmdQcm9wZXJ0eSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIGFuIHVwZGF0ZSB3aGljaCBpcyBwcm9jZXNzZWQgYXN5bmNocm9ub3VzbHkuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZFxuICAgKiB3aGVuIGFuIGVsZW1lbnQgc2hvdWxkIHVwZGF0ZSBiYXNlZCBvbiBzb21lIHN0YXRlIG5vdCB0cmlnZ2VyZWQgYnkgc2V0dGluZ1xuICAgKiBhIHJlYWN0aXZlIHByb3BlcnR5LiBJbiB0aGlzIGNhc2UsIHBhc3Mgbm8gYXJndW1lbnRzLiBJdCBzaG91bGQgYWxzbyBiZVxuICAgKiBjYWxsZWQgd2hlbiBtYW51YWxseSBpbXBsZW1lbnRpbmcgYSBwcm9wZXJ0eSBzZXR0ZXIuIEluIHRoaXMgY2FzZSwgcGFzcyB0aGVcbiAgICogcHJvcGVydHkgYG5hbWVgIGFuZCBgb2xkVmFsdWVgIHRvIGVuc3VyZSB0aGF0IGFueSBjb25maWd1cmVkIHByb3BlcnR5XG4gICAqIG9wdGlvbnMgYXJlIGhvbm9yZWQuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIG5hbWUgb2YgcmVxdWVzdGluZyBwcm9wZXJ0eVxuICAgKiBAcGFyYW0gb2xkVmFsdWUgb2xkIHZhbHVlIG9mIHJlcXVlc3RpbmcgcHJvcGVydHlcbiAgICogQHBhcmFtIG9wdGlvbnMgcHJvcGVydHkgb3B0aW9ucyB0byB1c2UgaW5zdGVhZCBvZiB0aGUgcHJldmlvdXNseVxuICAgKiAgICAgY29uZmlndXJlZCBvcHRpb25zXG4gICAqIEBwYXJhbSB1c2VOZXdWYWx1ZSBpZiB0cnVlLCB0aGUgbmV3VmFsdWUgYXJndW1lbnQgaXMgdXNlZCBpbnN0ZWFkIG9mXG4gICAqICAgICByZWFkaW5nIHRoZSBwcm9wZXJ0eSB2YWx1ZS4gVGhpcyBpcyBpbXBvcnRhbnQgdG8gdXNlIGlmIHRoZSByZWFjdGl2ZVxuICAgKiAgICAgcHJvcGVydHkgaXMgYSBzdGFuZGFyZCBwcml2YXRlIGFjY2Vzc29yLCBhcyBvcHBvc2VkIHRvIGEgcGxhaW5cbiAgICogICAgIHByb3BlcnR5LCBzaW5jZSBwcml2YXRlIG1lbWJlcnMgY2FuJ3QgYmUgZHluYW1pY2FsbHkgcmVhZCBieSBuYW1lLlxuICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuIFRoaXMgaXMgb25seSB1c2VkIGlmXG4gICAqICAgICBgdXNlTmV3VmFsdWVgIGlzIHRydWUuXG4gICAqIEBjYXRlZ29yeSB1cGRhdGVzXG4gICAqL1xuICByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICAgdXNlTmV3VmFsdWUgPSBmYWxzZSxcbiAgICBuZXdWYWx1ZT86IHVua25vd25cbiAgKTogdm9pZCB7XG4gICAgLy8gSWYgd2UgaGF2ZSBhIHByb3BlcnR5IGtleSwgcGVyZm9ybSBwcm9wZXJ0eSB1cGRhdGUgc3RlcHMuXG4gICAgaWYgKG5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKERFVl9NT0RFICYmIChuYW1lIGFzIHVua25vd24pIGluc3RhbmNlb2YgRXZlbnQpIHtcbiAgICAgICAgaXNzdWVXYXJuaW5nKFxuICAgICAgICAgIGBgLFxuICAgICAgICAgIGBUaGUgcmVxdWVzdFVwZGF0ZSgpIG1ldGhvZCB3YXMgY2FsbGVkIHdpdGggYW4gRXZlbnQgYXMgdGhlIHByb3BlcnR5IG5hbWUuIFRoaXMgaXMgcHJvYmFibHkgYSBtaXN0YWtlIGNhdXNlZCBieSBiaW5kaW5nIHRoaXMucmVxdWVzdFVwZGF0ZSBhcyBhbiBldmVudCBsaXN0ZW5lci4gSW5zdGVhZCBiaW5kIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGNhbGwgaXQgd2l0aCBubyBhcmd1bWVudHM6ICgpID0+IHRoaXMucmVxdWVzdFVwZGF0ZSgpYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgY3RvciA9IHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudDtcbiAgICAgIGlmICh1c2VOZXdWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgbmV3VmFsdWUgPSB0aGlzW25hbWUgYXMga2V5b2YgdGhpc107XG4gICAgICB9XG4gICAgICBvcHRpb25zID8/PSBjdG9yLmdldFByb3BlcnR5T3B0aW9ucyhuYW1lKTtcbiAgICAgIGNvbnN0IGNoYW5nZWQgPVxuICAgICAgICAob3B0aW9ucy5oYXNDaGFuZ2VkID8/IG5vdEVxdWFsKShuZXdWYWx1ZSwgb2xkVmFsdWUpIHx8XG4gICAgICAgIC8vIFdoZW4gdGhlcmUgaXMgbm8gY2hhbmdlLCBjaGVjayBhIGNvcm5lciBjYXNlIHRoYXQgY2FuIG9jY3VyIHdoZW5cbiAgICAgICAgLy8gMS4gdGhlcmUncyBhIGluaXRpYWwgdmFsdWUgd2hpY2ggd2FzIG5vdCByZWZsZWN0ZWRcbiAgICAgICAgLy8gMi4gdGhlIHByb3BlcnR5IGlzIHN1YnNlcXVlbnRseSBzZXQgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAgLy8gRm9yIGV4YW1wbGUsIGBwcm9wOiB7dXNlRGVmYXVsdDogdHJ1ZSwgcmVmbGVjdDogdHJ1ZX1gXG4gICAgICAgIC8vIGFuZCBlbC5wcm9wID0gJ2ZvbycuIFRoaXMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSBjaGFuZ2UgaWYgdGhlXG4gICAgICAgIC8vIGF0dHJpYnV0ZSBpcyBub3Qgc2V0IGJlY2F1c2Ugd2Ugd2lsbCBub3cgcmVmbGVjdCB0aGUgcHJvcGVydHkgdG8gdGhlIGF0dHJpYnV0ZS5cbiAgICAgICAgKG9wdGlvbnMudXNlRGVmYXVsdCAmJlxuICAgICAgICAgIG9wdGlvbnMucmVmbGVjdCAmJlxuICAgICAgICAgIG5ld1ZhbHVlID09PSB0aGlzLl9fZGVmYXVsdFZhbHVlcz8uZ2V0KG5hbWUpICYmXG4gICAgICAgICAgIXRoaXMuaGFzQXR0cmlidXRlKGN0b3IuX19hdHRyaWJ1dGVOYW1lRm9yUHJvcGVydHkobmFtZSwgb3B0aW9ucykhKSk7XG4gICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICB0aGlzLl8kY2hhbmdlUHJvcGVydHkobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQWJvcnQgdGhlIHJlcXVlc3QgaWYgdGhlIHByb3BlcnR5IHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBjaGFuZ2VkLlxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmlzVXBkYXRlUGVuZGluZyA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuX191cGRhdGVQcm9taXNlID0gdGhpcy5fX2VucXVldWVVcGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfJGNoYW5nZVByb3BlcnR5KFxuICAgIG5hbWU6IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlOiB1bmtub3duLFxuICAgIHt1c2VEZWZhdWx0LCByZWZsZWN0LCB3cmFwcGVkfTogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgICBpbml0aWFsaXplVmFsdWU/OiB1bmtub3duXG4gICkge1xuICAgIC8vIFJlY29yZCBkZWZhdWx0IHZhbHVlIHdoZW4gdXNlRGVmYXVsdCBpcyB1c2VkLiBUaGlzIGFsbG93cyB1cyB0b1xuICAgIC8vIHJlc3RvcmUgdGhpcyB2YWx1ZSB3aGVuIHRoZSBhdHRyaWJ1dGUgaXMgcmVtb3ZlZC5cbiAgICBpZiAodXNlRGVmYXVsdCAmJiAhKHRoaXMuX19kZWZhdWx0VmFsdWVzID8/PSBuZXcgTWFwKCkpLmhhcyhuYW1lKSkge1xuICAgICAgdGhpcy5fX2RlZmF1bHRWYWx1ZXMuc2V0KFxuICAgICAgICBuYW1lLFxuICAgICAgICBpbml0aWFsaXplVmFsdWUgPz8gb2xkVmFsdWUgPz8gdGhpc1tuYW1lIGFzIGtleW9mIHRoaXNdXG4gICAgICApO1xuICAgICAgLy8gaWYgdGhpcyBpcyBub3Qgd3JhcHBpbmcgYW4gYWNjZXNzb3IsIGl0IG11c3QgYmUgYW4gaW5pdGlhbCBzZXR0aW5nXG4gICAgICAvLyBhbmQgaW4gdGhpcyBjYXNlIHdlIGRvIG5vdCB3YW50IHRvIHJlY29yZCB0aGUgY2hhbmdlIG9yIHJlZmxlY3QuXG4gICAgICBpZiAod3JhcHBlZCAhPT0gdHJ1ZSB8fCBpbml0aWFsaXplVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFRPRE8gKGp1c3RpbmZhZ25hbmkpOiBDcmVhdGUgYSBiZW5jaG1hcmsgb2YgTWFwLmhhcygpICsgTWFwLnNldChcbiAgICAvLyB2cyBqdXN0IE1hcC5zZXQoKVxuICAgIGlmICghdGhpcy5fJGNoYW5nZWRQcm9wZXJ0aWVzLmhhcyhuYW1lKSkge1xuICAgICAgLy8gT24gdGhlIGluaXRpYWwgY2hhbmdlLCB0aGUgb2xkIHZhbHVlIHNob3VsZCBiZSBgdW5kZWZpbmVkYCwgZXhjZXB0XG4gICAgICAvLyB3aXRoIGB1c2VEZWZhdWx0YFxuICAgICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQgJiYgIXVzZURlZmF1bHQpIHtcbiAgICAgICAgb2xkVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB0aGlzLl8kY2hhbmdlZFByb3BlcnRpZXMuc2V0KG5hbWUsIG9sZFZhbHVlKTtcbiAgICB9XG4gICAgLy8gQWRkIHRvIHJlZmxlY3RpbmcgcHJvcGVydGllcyBzZXQuXG4gICAgLy8gTm90ZSwgaXQncyBpbXBvcnRhbnQgdGhhdCBldmVyeSBjaGFuZ2UgaGFzIGEgY2hhbmNlIHRvIGFkZCB0aGVcbiAgICAvLyBwcm9wZXJ0eSB0byBgX19yZWZsZWN0aW5nUHJvcGVydGllc2AuIFRoaXMgZW5zdXJlcyBzZXR0aW5nXG4gICAgLy8gYXR0cmlidXRlICsgcHJvcGVydHkgcmVmbGVjdHMgY29ycmVjdGx5LlxuICAgIGlmIChyZWZsZWN0ID09PSB0cnVlICYmIHRoaXMuX19yZWZsZWN0aW5nUHJvcGVydHkgIT09IG5hbWUpIHtcbiAgICAgICh0aGlzLl9fcmVmbGVjdGluZ1Byb3BlcnRpZXMgPz89IG5ldyBTZXQ8UHJvcGVydHlLZXk+KCkpLmFkZChuYW1lKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCB0aGUgZWxlbWVudCB0byBhc3luY2hyb25vdXNseSB1cGRhdGUuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIF9fZW5xdWV1ZVVwZGF0ZSgpIHtcbiAgICB0aGlzLmlzVXBkYXRlUGVuZGluZyA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEVuc3VyZSBhbnkgcHJldmlvdXMgdXBkYXRlIGhhcyByZXNvbHZlZCBiZWZvcmUgdXBkYXRpbmcuXG4gICAgICAvLyBUaGlzIGBhd2FpdGAgYWxzbyBlbnN1cmVzIHRoYXQgcHJvcGVydHkgY2hhbmdlcyBhcmUgYmF0Y2hlZC5cbiAgICAgIGF3YWl0IHRoaXMuX191cGRhdGVQcm9taXNlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIFJlZmlyZSBhbnkgcHJldmlvdXMgZXJyb3JzIGFzeW5jIHNvIHRoZXkgZG8gbm90IGRpc3J1cHQgdGhlIHVwZGF0ZVxuICAgICAgLy8gY3ljbGUuIEVycm9ycyBhcmUgcmVmaXJlZCBzbyBkZXZlbG9wZXJzIGhhdmUgYSBjaGFuY2UgdG8gb2JzZXJ2ZVxuICAgICAgLy8gdGhlbSwgYW5kIHRoaXMgY2FuIGJlIGRvbmUgYnkgaW1wbGVtZW50aW5nXG4gICAgICAvLyBgd2luZG93Lm9udW5oYW5kbGVkcmVqZWN0aW9uYC5cbiAgICAgIFByb21pc2UucmVqZWN0KGUpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnNjaGVkdWxlVXBkYXRlKCk7XG4gICAgLy8gSWYgYHNjaGVkdWxlVXBkYXRlYCByZXR1cm5zIGEgUHJvbWlzZSwgd2UgYXdhaXQgaXQuIFRoaXMgaXMgZG9uZSB0b1xuICAgIC8vIGVuYWJsZSBjb29yZGluYXRpbmcgdXBkYXRlcyB3aXRoIGEgc2NoZWR1bGVyLiBOb3RlLCB0aGUgcmVzdWx0IGlzXG4gICAgLy8gY2hlY2tlZCB0byBhdm9pZCBkZWxheWluZyBhbiBhZGRpdGlvbmFsIG1pY3JvdGFzayB1bmxlc3Mgd2UgbmVlZCB0by5cbiAgICBpZiAocmVzdWx0ICE9IG51bGwpIHtcbiAgICAgIGF3YWl0IHJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuICF0aGlzLmlzVXBkYXRlUGVuZGluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBTY2hlZHVsZXMgYW4gZWxlbWVudCB1cGRhdGUuIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gY2hhbmdlIHRoZVxuICAgKiB0aW1pbmcgb2YgdXBkYXRlcyBieSByZXR1cm5pbmcgYSBQcm9taXNlLiBUaGUgdXBkYXRlIHdpbGwgYXdhaXQgdGhlXG4gICAqIHJldHVybmVkIFByb21pc2UsIGFuZCB5b3Ugc2hvdWxkIHJlc29sdmUgdGhlIFByb21pc2UgdG8gYWxsb3cgdGhlIHVwZGF0ZVxuICAgKiB0byBwcm9jZWVkLiBJZiB0aGlzIG1ldGhvZCBpcyBvdmVycmlkZGVuLCBgc3VwZXIuc2NoZWR1bGVVcGRhdGUoKWBcbiAgICogbXVzdCBiZSBjYWxsZWQuXG4gICAqXG4gICAqIEZvciBpbnN0YW5jZSwgdG8gc2NoZWR1bGUgdXBkYXRlcyB0byBvY2N1ciBqdXN0IGJlZm9yZSB0aGUgbmV4dCBmcmFtZTpcbiAgICpcbiAgICogYGBgdHNcbiAgICogb3ZlcnJpZGUgcHJvdGVjdGVkIGFzeW5jIHNjaGVkdWxlVXBkYXRlKCk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgKiAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gcmVzb2x2ZSgpKSk7XG4gICAqICAgc3VwZXIuc2NoZWR1bGVVcGRhdGUoKTtcbiAgICogfVxuICAgKiBgYGBcbiAgICogQGNhdGVnb3J5IHVwZGF0ZXNcbiAgICovXG4gIHByb3RlY3RlZCBzY2hlZHVsZVVwZGF0ZSgpOiB2b2lkIHwgUHJvbWlzZTx1bmtub3duPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5wZXJmb3JtVXBkYXRlKCk7XG4gICAgaWYgKFxuICAgICAgREVWX01PREUgJiZcbiAgICAgICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBSZWFjdGl2ZUVsZW1lbnQpLmVuYWJsZWRXYXJuaW5ncyEuaW5jbHVkZXMoXG4gICAgICAgICdhc3luYy1wZXJmb3JtLXVwZGF0ZSdcbiAgICAgICkgJiZcbiAgICAgIHR5cGVvZiAocmVzdWx0IGFzIHVua25vd24gYXMgUHJvbWlzZTx1bmtub3duPiB8IHVuZGVmaW5lZCk/LnRoZW4gPT09XG4gICAgICAgICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIGlzc3VlV2FybmluZyhcbiAgICAgICAgJ2FzeW5jLXBlcmZvcm0tdXBkYXRlJyxcbiAgICAgICAgYEVsZW1lbnQgJHt0aGlzLmxvY2FsTmFtZX0gcmV0dXJuZWQgYSBQcm9taXNlIGZyb20gcGVyZm9ybVVwZGF0ZSgpLiBgICtcbiAgICAgICAgICBgVGhpcyBiZWhhdmlvciBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgYCArXG4gICAgICAgICAgYHZlcnNpb24gb2YgUmVhY3RpdmVFbGVtZW50LmBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgYW4gZWxlbWVudCB1cGRhdGUuIE5vdGUsIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gZHVyaW5nIHRoZVxuICAgKiB1cGRhdGUsIGBmaXJzdFVwZGF0ZWRgIGFuZCBgdXBkYXRlZGAgd2lsbCBub3QgYmUgY2FsbGVkLlxuICAgKlxuICAgKiBDYWxsIGBwZXJmb3JtVXBkYXRlKClgIHRvIGltbWVkaWF0ZWx5IHByb2Nlc3MgYSBwZW5kaW5nIHVwZGF0ZS4gVGhpcyBzaG91bGRcbiAgICogZ2VuZXJhbGx5IG5vdCBiZSBuZWVkZWQsIGJ1dCBpdCBjYW4gYmUgZG9uZSBpbiByYXJlIGNhc2VzIHdoZW4geW91IG5lZWQgdG9cbiAgICogdXBkYXRlIHN5bmNocm9ub3VzbHkuXG4gICAqXG4gICAqIEBjYXRlZ29yeSB1cGRhdGVzXG4gICAqL1xuICBwcm90ZWN0ZWQgcGVyZm9ybVVwZGF0ZSgpOiB2b2lkIHtcbiAgICAvLyBBYm9ydCBhbnkgdXBkYXRlIGlmIG9uZSBpcyBub3QgcGVuZGluZyB3aGVuIHRoaXMgaXMgY2FsbGVkLlxuICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiBgcGVyZm9ybVVwZGF0ZWAgaXMgY2FsbGVkIGVhcmx5IHRvIFwiZmx1c2hcIlxuICAgIC8vIHRoZSB1cGRhdGUuXG4gICAgaWYgKCF0aGlzLmlzVXBkYXRlUGVuZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkZWJ1Z0xvZ0V2ZW50Py4oe2tpbmQ6ICd1cGRhdGUnfSk7XG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIC8vIENyZWF0ZSByZW5kZXJSb290IGJlZm9yZSBmaXJzdCB1cGRhdGUuIFRoaXMgb2NjdXJzIGluIGBjb25uZWN0ZWRDYWxsYmFja2BcbiAgICAgIC8vIGJ1dCBpcyBkb25lIGhlcmUgdG8gc3VwcG9ydCBvdXQgb2YgdHJlZSBjYWxscyB0byBgZW5hYmxlVXBkYXRpbmdgL2BwZXJmb3JtVXBkYXRlYC5cbiAgICAgICh0aGlzIGFzIE11dGFibGU8dHlwZW9mIHRoaXMsICdyZW5kZXJSb290Jz4pLnJlbmRlclJvb3QgPz89XG4gICAgICAgIHRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpO1xuICAgICAgaWYgKERFVl9NT0RFKSB7XG4gICAgICAgIC8vIFByb2R1Y2Ugd2FybmluZyBpZiBhbnkgcmVhY3RpdmUgcHJvcGVydGllcyBvbiB0aGUgcHJvdG90eXBlIGFyZVxuICAgICAgICAvLyBzaGFkb3dlZCBieSBjbGFzcyBmaWVsZHMuIEluc3RhbmNlIGZpZWxkcyBzZXQgYmVmb3JlIHVwZ3JhZGUgYXJlXG4gICAgICAgIC8vIGRlbGV0ZWQgYnkgdGhpcyBwb2ludCwgc28gYW55IG93biBwcm9wZXJ0eSBpcyBjYXVzZWQgYnkgY2xhc3MgZmllbGRcbiAgICAgICAgLy8gaW5pdGlhbGl6YXRpb24gaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAgICBjb25zdCBjdG9yID0gdGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgUmVhY3RpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBzaGFkb3dlZFByb3BlcnRpZXMgPSBbLi4uY3Rvci5lbGVtZW50UHJvcGVydGllcy5rZXlzKCldLmZpbHRlcihcbiAgICAgICAgICAocCkgPT4gdGhpcy5oYXNPd25Qcm9wZXJ0eShwKSAmJiBwIGluIGdldFByb3RvdHlwZU9mKHRoaXMpXG4gICAgICAgICk7XG4gICAgICAgIGlmIChzaGFkb3dlZFByb3BlcnRpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBvbiBlbGVtZW50ICR7dGhpcy5sb2NhbE5hbWV9IHdpbGwgbm90IGAgK1xuICAgICAgICAgICAgICBgdHJpZ2dlciB1cGRhdGVzIGFzIGV4cGVjdGVkIGJlY2F1c2UgdGhleSBhcmUgc2V0IHVzaW5nIGNsYXNzIGAgK1xuICAgICAgICAgICAgICBgZmllbGRzOiAke3NoYWRvd2VkUHJvcGVydGllcy5qb2luKCcsICcpfS4gYCArXG4gICAgICAgICAgICAgIGBOYXRpdmUgY2xhc3MgZmllbGRzIGFuZCBzb21lIGNvbXBpbGVkIG91dHB1dCB3aWxsIG92ZXJ3cml0ZSBgICtcbiAgICAgICAgICAgICAgYGFjY2Vzc29ycyB1c2VkIGZvciBkZXRlY3RpbmcgY2hhbmdlcy4gU2VlIGAgK1xuICAgICAgICAgICAgICBgaHR0cHM6Ly9saXQuZGV2L21zZy9jbGFzcy1maWVsZC1zaGFkb3dpbmcgYCArXG4gICAgICAgICAgICAgIGBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gTWl4aW4gaW5zdGFuY2UgcHJvcGVydGllcyBvbmNlLCBpZiB0aGV5IGV4aXN0LlxuICAgICAgaWYgKHRoaXMuX19pbnN0YW5jZVByb3BlcnRpZXMpIHtcbiAgICAgICAgLy8gVE9ETyAoanVzdGluZmFnbmFuaSk6IHNob3VsZCB3ZSB1c2UgdGhlIHN0b3JlZCB2YWx1ZT8gQ291bGQgYSBuZXcgdmFsdWVcbiAgICAgICAgLy8gaGF2ZSBiZWVuIHNldCBzaW5jZSB3ZSBzdG9yZWQgdGhlIG93biBwcm9wZXJ0eSB2YWx1ZT9cbiAgICAgICAgZm9yIChjb25zdCBbcCwgdmFsdWVdIG9mIHRoaXMuX19pbnN0YW5jZVByb3BlcnRpZXMpIHtcbiAgICAgICAgICB0aGlzW3AgYXMga2V5b2YgdGhpc10gPSB2YWx1ZSBhcyB0aGlzW2tleW9mIHRoaXNdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX19pbnN0YW5jZVByb3BlcnRpZXMgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICAvLyBUcmlnZ2VyIGluaXRpYWwgdmFsdWUgcmVmbGVjdGlvbiBhbmQgcG9wdWxhdGUgdGhlIGluaXRpYWxcbiAgICAgIC8vIGBjaGFuZ2VkUHJvcGVydGllc2AgbWFwLCBidXQgb25seSBmb3IgdGhlIGNhc2Ugb2YgcHJvcGVydGllcyBjcmVhdGVkXG4gICAgICAvLyB2aWEgYGNyZWF0ZVByb3BlcnR5YCBvbiBhY2Nlc3NvcnMsIHdoaWNoIHdpbGwgbm90IGhhdmUgYWxyZWFkeVxuICAgICAgLy8gcG9wdWxhdGVkIHRoZSBgY2hhbmdlZFByb3BlcnRpZXNgIG1hcCBzaW5jZSB0aGV5IGFyZSBub3Qgc2V0LlxuICAgICAgLy8gV2UgY2FuJ3Qga25vdyBpZiB0aGVzZSBhY2Nlc3NvcnMgaGFkIGluaXRpYWxpemVycywgc28gd2UganVzdCBzZXRcbiAgICAgIC8vIHRoZW0gYW55d2F5IC0gYSBkaWZmZXJlbmNlIGZyb20gZXhwZXJpbWVudGFsIGRlY29yYXRvcnMgb24gZmllbGRzIGFuZFxuICAgICAgLy8gc3RhbmRhcmQgZGVjb3JhdG9ycyBvbiBhdXRvLWFjY2Vzc29ycy5cbiAgICAgIC8vIEZvciBjb250ZXh0IHNlZTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9saXQvbGl0L3B1bGwvNDE4MyNpc3N1ZWNvbW1lbnQtMTcxMTk1OTYzNVxuICAgICAgY29uc3QgZWxlbWVudFByb3BlcnRpZXMgPSAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgUmVhY3RpdmVFbGVtZW50KVxuICAgICAgICAuZWxlbWVudFByb3BlcnRpZXM7XG4gICAgICBpZiAoZWxlbWVudFByb3BlcnRpZXMuc2l6ZSA+IDApIHtcbiAgICAgICAgZm9yIChjb25zdCBbcCwgb3B0aW9uc10gb2YgZWxlbWVudFByb3BlcnRpZXMpIHtcbiAgICAgICAgICBjb25zdCB7d3JhcHBlZH0gPSBvcHRpb25zO1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpc1twIGFzIGtleW9mIHRoaXNdO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHdyYXBwZWQgPT09IHRydWUgJiZcbiAgICAgICAgICAgICF0aGlzLl8kY2hhbmdlZFByb3BlcnRpZXMuaGFzKHApICYmXG4gICAgICAgICAgICB2YWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl8kY2hhbmdlUHJvcGVydHkocCwgdW5kZWZpbmVkLCBvcHRpb25zLCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBzaG91bGRVcGRhdGUgPSBmYWxzZTtcbiAgICBjb25zdCBjaGFuZ2VkUHJvcGVydGllcyA9IHRoaXMuXyRjaGFuZ2VkUHJvcGVydGllcztcbiAgICB0cnkge1xuICAgICAgc2hvdWxkVXBkYXRlID0gdGhpcy5zaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgICAgaWYgKHNob3VsZFVwZGF0ZSkge1xuICAgICAgICB0aGlzLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgICAgICB0aGlzLl9fY29udHJvbGxlcnM/LmZvckVhY2goKGMpID0+IGMuaG9zdFVwZGF0ZT8uKCkpO1xuICAgICAgICB0aGlzLnVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9fbWFya1VwZGF0ZWQoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBQcmV2ZW50IGBmaXJzdFVwZGF0ZWRgIGFuZCBgdXBkYXRlZGAgZnJvbSBydW5uaW5nIHdoZW4gdGhlcmUncyBhblxuICAgICAgLy8gdXBkYXRlIGV4Y2VwdGlvbi5cbiAgICAgIHNob3VsZFVwZGF0ZSA9IGZhbHNlO1xuICAgICAgLy8gRW5zdXJlIGVsZW1lbnQgY2FuIGFjY2VwdCBhZGRpdGlvbmFsIHVwZGF0ZXMgYWZ0ZXIgYW4gZXhjZXB0aW9uLlxuICAgICAgdGhpcy5fX21hcmtVcGRhdGVkKCk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICAvLyBUaGUgdXBkYXRlIGlzIG5vIGxvbmdlciBjb25zaWRlcmVkIHBlbmRpbmcgYW5kIGZ1cnRoZXIgdXBkYXRlcyBhcmUgbm93IGFsbG93ZWQuXG4gICAgaWYgKHNob3VsZFVwZGF0ZSkge1xuICAgICAgdGhpcy5fJGRpZFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEludm9rZWQgYmVmb3JlIGB1cGRhdGUoKWAgdG8gY29tcHV0ZSB2YWx1ZXMgbmVlZGVkIGR1cmluZyB0aGUgdXBkYXRlLlxuICAgKlxuICAgKiBJbXBsZW1lbnQgYHdpbGxVcGRhdGVgIHRvIGNvbXB1dGUgcHJvcGVydHkgdmFsdWVzIHRoYXQgZGVwZW5kIG9uIG90aGVyXG4gICAqIHByb3BlcnRpZXMgYW5kIGFyZSB1c2VkIGluIHRoZSByZXN0IG9mIHRoZSB1cGRhdGUgcHJvY2Vzcy5cbiAgICpcbiAgICogYGBgdHNcbiAgICogd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcykge1xuICAgKiAgIC8vIG9ubHkgbmVlZCB0byBjaGVjayBjaGFuZ2VkIHByb3BlcnRpZXMgZm9yIGFuIGV4cGVuc2l2ZSBjb21wdXRhdGlvbi5cbiAgICogICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdmaXJzdE5hbWUnKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xhc3ROYW1lJykpIHtcbiAgICogICAgIHRoaXMuc2hhID0gY29tcHV0ZVNIQShgJHt0aGlzLmZpcnN0TmFtZX0gJHt0aGlzLmxhc3ROYW1lfWApO1xuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKiByZW5kZXIoKSB7XG4gICAqICAgcmV0dXJuIGh0bWxgU0hBOiAke3RoaXMuc2hhfWA7XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEBjYXRlZ29yeSB1cGRhdGVzXG4gICAqL1xuICBwcm90ZWN0ZWQgd2lsbFVwZGF0ZShfY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzKTogdm9pZCB7fVxuXG4gIC8vIE5vdGUsIHRoaXMgaXMgYW4gb3ZlcnJpZGUgcG9pbnQgZm9yIHBvbHlmaWxsLXN1cHBvcnQuXG4gIC8vIEBpbnRlcm5hbFxuICBfJGRpZFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXMpIHtcbiAgICB0aGlzLl9fY29udHJvbGxlcnM/LmZvckVhY2goKGMpID0+IGMuaG9zdFVwZGF0ZWQ/LigpKTtcbiAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5oYXNVcGRhdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBpZiAoXG4gICAgICBERVZfTU9ERSAmJlxuICAgICAgdGhpcy5pc1VwZGF0ZVBlbmRpbmcgJiZcbiAgICAgICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBSZWFjdGl2ZUVsZW1lbnQpLmVuYWJsZWRXYXJuaW5ncyEuaW5jbHVkZXMoXG4gICAgICAgICdjaGFuZ2UtaW4tdXBkYXRlJ1xuICAgICAgKVxuICAgICkge1xuICAgICAgaXNzdWVXYXJuaW5nKFxuICAgICAgICAnY2hhbmdlLWluLXVwZGF0ZScsXG4gICAgICAgIGBFbGVtZW50ICR7dGhpcy5sb2NhbE5hbWV9IHNjaGVkdWxlZCBhbiB1cGRhdGUgYCArXG4gICAgICAgICAgYChnZW5lcmFsbHkgYmVjYXVzZSBhIHByb3BlcnR5IHdhcyBzZXQpIGAgK1xuICAgICAgICAgIGBhZnRlciBhbiB1cGRhdGUgY29tcGxldGVkLCBjYXVzaW5nIGEgbmV3IHVwZGF0ZSB0byBiZSBzY2hlZHVsZWQuIGAgK1xuICAgICAgICAgIGBUaGlzIGlzIGluZWZmaWNpZW50IGFuZCBzaG91bGQgYmUgYXZvaWRlZCB1bmxlc3MgdGhlIG5leHQgdXBkYXRlIGAgK1xuICAgICAgICAgIGBjYW4gb25seSBiZSBzY2hlZHVsZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiB0aGUgcHJldmlvdXMgdXBkYXRlLmBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfX21hcmtVcGRhdGVkKCkge1xuICAgIHRoaXMuXyRjaGFuZ2VkUHJvcGVydGllcyA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLmlzVXBkYXRlUGVuZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZWxlbWVudCBoYXMgY29tcGxldGVkIHVwZGF0aW5nLlxuICAgKiBUaGUgUHJvbWlzZSB2YWx1ZSBpcyBhIGJvb2xlYW4gdGhhdCBpcyBgdHJ1ZWAgaWYgdGhlIGVsZW1lbnQgY29tcGxldGVkIHRoZVxuICAgKiB1cGRhdGUgd2l0aG91dCB0cmlnZ2VyaW5nIGFub3RoZXIgdXBkYXRlLiBUaGUgUHJvbWlzZSByZXN1bHQgaXMgYGZhbHNlYCBpZlxuICAgKiBhIHByb3BlcnR5IHdhcyBzZXQgaW5zaWRlIGB1cGRhdGVkKClgLiBJZiB0aGUgUHJvbWlzZSBpcyByZWplY3RlZCwgYW5cbiAgICogZXhjZXB0aW9uIHdhcyB0aHJvd24gZHVyaW5nIHRoZSB1cGRhdGUuXG4gICAqXG4gICAqIFRvIGF3YWl0IGFkZGl0aW9uYWwgYXN5bmNocm9ub3VzIHdvcmssIG92ZXJyaWRlIHRoZSBgZ2V0VXBkYXRlQ29tcGxldGVgXG4gICAqIG1ldGhvZC4gRm9yIGV4YW1wbGUsIGl0IGlzIHNvbWV0aW1lcyB1c2VmdWwgdG8gYXdhaXQgYSByZW5kZXJlZCBlbGVtZW50XG4gICAqIGJlZm9yZSBmdWxmaWxsaW5nIHRoaXMgUHJvbWlzZS4gVG8gZG8gdGhpcywgZmlyc3QgYXdhaXRcbiAgICogYHN1cGVyLmdldFVwZGF0ZUNvbXBsZXRlKClgLCB0aGVuIGFueSBzdWJzZXF1ZW50IHN0YXRlLlxuICAgKlxuICAgKiBAcmV0dXJuIEEgcHJvbWlzZSBvZiBhIGJvb2xlYW4gdGhhdCByZXNvbHZlcyB0byB0cnVlIGlmIHRoZSB1cGRhdGUgY29tcGxldGVkXG4gICAqICAgICB3aXRob3V0IHRyaWdnZXJpbmcgYW5vdGhlciB1cGRhdGUuXG4gICAqIEBjYXRlZ29yeSB1cGRhdGVzXG4gICAqL1xuICBnZXQgdXBkYXRlQ29tcGxldGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZSBwb2ludCBmb3IgdGhlIGB1cGRhdGVDb21wbGV0ZWAgcHJvbWlzZS5cbiAgICpcbiAgICogSXQgaXMgbm90IHNhZmUgdG8gb3ZlcnJpZGUgdGhlIGB1cGRhdGVDb21wbGV0ZWAgZ2V0dGVyIGRpcmVjdGx5IGR1ZSB0byBhXG4gICAqIGxpbWl0YXRpb24gaW4gVHlwZVNjcmlwdCB3aGljaCBtZWFucyBpdCBpcyBub3QgcG9zc2libGUgdG8gY2FsbCBhXG4gICAqIHN1cGVyY2xhc3MgZ2V0dGVyIChlLmcuIGBzdXBlci51cGRhdGVDb21wbGV0ZS50aGVuKC4uLilgKSB3aGVuIHRoZSB0YXJnZXRcbiAgICogbGFuZ3VhZ2UgaXMgRVM1IChodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzMzOCkuXG4gICAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBvdmVycmlkZGVuIGluc3RlYWQuIEZvciBleGFtcGxlOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBjbGFzcyBNeUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgICogICBvdmVycmlkZSBhc3luYyBnZXRVcGRhdGVDb21wbGV0ZSgpIHtcbiAgICogICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN1cGVyLmdldFVwZGF0ZUNvbXBsZXRlKCk7XG4gICAqICAgICBhd2FpdCB0aGlzLl9teUNoaWxkLnVwZGF0ZUNvbXBsZXRlO1xuICAgKiAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEByZXR1cm4gQSBwcm9taXNlIG9mIGEgYm9vbGVhbiB0aGF0IHJlc29sdmVzIHRvIHRydWUgaWYgdGhlIHVwZGF0ZSBjb21wbGV0ZWRcbiAgICogICAgIHdpdGhvdXQgdHJpZ2dlcmluZyBhbm90aGVyIHVwZGF0ZS5cbiAgICogQGNhdGVnb3J5IHVwZGF0ZXNcbiAgICovXG4gIHByb3RlY3RlZCBnZXRVcGRhdGVDb21wbGV0ZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fX3VwZGF0ZVByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogQ29udHJvbHMgd2hldGhlciBvciBub3QgYHVwZGF0ZSgpYCBzaG91bGQgYmUgY2FsbGVkIHdoZW4gdGhlIGVsZW1lbnQgcmVxdWVzdHNcbiAgICogYW4gdXBkYXRlLiBCeSBkZWZhdWx0LCB0aGlzIG1ldGhvZCBhbHdheXMgcmV0dXJucyBgdHJ1ZWAsIGJ1dCB0aGlzIGNhbiBiZVxuICAgKiBjdXN0b21pemVkIHRvIGNvbnRyb2wgd2hlbiB0byB1cGRhdGUuXG4gICAqXG4gICAqIEBwYXJhbSBfY2hhbmdlZFByb3BlcnRpZXMgTWFwIG9mIGNoYW5nZWQgcHJvcGVydGllcyB3aXRoIG9sZCB2YWx1ZXNcbiAgICogQGNhdGVnb3J5IHVwZGF0ZXNcbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRVcGRhdGUoX2NoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGVsZW1lbnQuIFRoaXMgbWV0aG9kIHJlZmxlY3RzIHByb3BlcnR5IHZhbHVlcyB0byBhdHRyaWJ1dGVzLlxuICAgKiBJdCBjYW4gYmUgb3ZlcnJpZGRlbiB0byByZW5kZXIgYW5kIGtlZXAgdXBkYXRlZCBlbGVtZW50IERPTS5cbiAgICogU2V0dGluZyBwcm9wZXJ0aWVzIGluc2lkZSB0aGlzIG1ldGhvZCB3aWxsICpub3QqIHRyaWdnZXJcbiAgICogYW5vdGhlciB1cGRhdGUuXG4gICAqXG4gICAqIEBwYXJhbSBfY2hhbmdlZFByb3BlcnRpZXMgTWFwIG9mIGNoYW5nZWQgcHJvcGVydGllcyB3aXRoIG9sZCB2YWx1ZXNcbiAgICogQGNhdGVnb3J5IHVwZGF0ZXNcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGUoX2NoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcykge1xuICAgIC8vIFRoZSBmb3JFYWNoKCkgZXhwcmVzc2lvbiB3aWxsIG9ubHkgcnVuIHdoZW4gX19yZWZsZWN0aW5nUHJvcGVydGllcyBpc1xuICAgIC8vIGRlZmluZWQsIGFuZCBpdCByZXR1cm5zIHVuZGVmaW5lZCwgc2V0dGluZyBfX3JlZmxlY3RpbmdQcm9wZXJ0aWVzIHRvXG4gICAgLy8gdW5kZWZpbmVkXG4gICAgdGhpcy5fX3JlZmxlY3RpbmdQcm9wZXJ0aWVzICYmPSB0aGlzLl9fcmVmbGVjdGluZ1Byb3BlcnRpZXMuZm9yRWFjaCgocCkgPT5cbiAgICAgIHRoaXMuX19wcm9wZXJ0eVRvQXR0cmlidXRlKHAsIHRoaXNbcCBhcyBrZXlvZiB0aGlzXSlcbiAgICApIGFzIHVuZGVmaW5lZDtcbiAgICB0aGlzLl9fbWFya1VwZGF0ZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2VkIHdoZW5ldmVyIHRoZSBlbGVtZW50IGlzIHVwZGF0ZWQuIEltcGxlbWVudCB0byBwZXJmb3JtXG4gICAqIHBvc3QtdXBkYXRpbmcgdGFza3MgdmlhIERPTSBBUElzLCBmb3IgZXhhbXBsZSwgZm9jdXNpbmcgYW4gZWxlbWVudC5cbiAgICpcbiAgICogU2V0dGluZyBwcm9wZXJ0aWVzIGluc2lkZSB0aGlzIG1ldGhvZCB3aWxsIHRyaWdnZXIgdGhlIGVsZW1lbnQgdG8gdXBkYXRlXG4gICAqIGFnYWluIGFmdGVyIHRoaXMgdXBkYXRlIGN5Y2xlIGNvbXBsZXRlcy5cbiAgICpcbiAgICogQHBhcmFtIF9jaGFuZ2VkUHJvcGVydGllcyBNYXAgb2YgY2hhbmdlZCBwcm9wZXJ0aWVzIHdpdGggb2xkIHZhbHVlc1xuICAgKiBAY2F0ZWdvcnkgdXBkYXRlc1xuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZWQoX2NoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcykge31cblxuICAvKipcbiAgICogSW52b2tlZCB3aGVuIHRoZSBlbGVtZW50IGlzIGZpcnN0IHVwZGF0ZWQuIEltcGxlbWVudCB0byBwZXJmb3JtIG9uZSB0aW1lXG4gICAqIHdvcmsgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgdXBkYXRlLlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBmaXJzdFVwZGF0ZWQoKSB7XG4gICAqICAgdGhpcy5yZW5kZXJSb290LmdldEVsZW1lbnRCeUlkKCdteS10ZXh0LWFyZWEnKS5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBTZXR0aW5nIHByb3BlcnRpZXMgaW5zaWRlIHRoaXMgbWV0aG9kIHdpbGwgdHJpZ2dlciB0aGUgZWxlbWVudCB0byB1cGRhdGVcbiAgICogYWdhaW4gYWZ0ZXIgdGhpcyB1cGRhdGUgY3ljbGUgY29tcGxldGVzLlxuICAgKlxuICAgKiBAcGFyYW0gX2NoYW5nZWRQcm9wZXJ0aWVzIE1hcCBvZiBjaGFuZ2VkIHByb3BlcnRpZXMgd2l0aCBvbGQgdmFsdWVzXG4gICAqIEBjYXRlZ29yeSB1cGRhdGVzXG4gICAqL1xuICBwcm90ZWN0ZWQgZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXMpIHt9XG59XG4vLyBBc3NpZ25lZCBoZXJlIHRvIHdvcmsgYXJvdW5kIGEganNjb21waWxlciBidWcgd2l0aCBzdGF0aWMgZmllbGRzXG4vLyB3aGVuIGNvbXBpbGluZyB0byBFUzUuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2Nsb3N1cmUtY29tcGlsZXIvaXNzdWVzLzMxNzdcbihSZWFjdGl2ZUVsZW1lbnQgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbXG4gIEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoJ2VsZW1lbnRQcm9wZXJ0aWVzJywgUmVhY3RpdmVFbGVtZW50KVxuXSA9IG5ldyBNYXAoKTtcbihSZWFjdGl2ZUVsZW1lbnQgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbXG4gIEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkoJ2ZpbmFsaXplZCcsIFJlYWN0aXZlRWxlbWVudClcbl0gPSBuZXcgTWFwKCk7XG5cbi8vIEFwcGx5IHBvbHlmaWxscyBpZiBhdmFpbGFibGVcbnBvbHlmaWxsU3VwcG9ydD8uKHtSZWFjdGl2ZUVsZW1lbnR9KTtcblxuLy8gRGV2IG1vZGUgd2FybmluZ3MuLi5cbmlmIChERVZfTU9ERSkge1xuICAvLyBEZWZhdWx0IHdhcm5pbmcgc2V0LlxuICBSZWFjdGl2ZUVsZW1lbnQuZW5hYmxlZFdhcm5pbmdzID0gW1xuICAgICdjaGFuZ2UtaW4tdXBkYXRlJyxcbiAgICAnYXN5bmMtcGVyZm9ybS11cGRhdGUnLFxuICBdO1xuICBjb25zdCBlbnN1cmVPd25XYXJuaW5ncyA9IGZ1bmN0aW9uIChjdG9yOiB0eXBlb2YgUmVhY3RpdmVFbGVtZW50KSB7XG4gICAgaWYgKFxuICAgICAgIWN0b3IuaGFzT3duUHJvcGVydHkoSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSgnZW5hYmxlZFdhcm5pbmdzJywgY3RvcikpXG4gICAgKSB7XG4gICAgICBjdG9yLmVuYWJsZWRXYXJuaW5ncyA9IGN0b3IuZW5hYmxlZFdhcm5pbmdzIS5zbGljZSgpO1xuICAgIH1cbiAgfTtcbiAgUmVhY3RpdmVFbGVtZW50LmVuYWJsZVdhcm5pbmcgPSBmdW5jdGlvbiAoXG4gICAgdGhpczogdHlwZW9mIFJlYWN0aXZlRWxlbWVudCxcbiAgICB3YXJuaW5nOiBXYXJuaW5nS2luZFxuICApIHtcbiAgICBlbnN1cmVPd25XYXJuaW5ncyh0aGlzKTtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZFdhcm5pbmdzIS5pbmNsdWRlcyh3YXJuaW5nKSkge1xuICAgICAgdGhpcy5lbmFibGVkV2FybmluZ3MhLnB1c2god2FybmluZyk7XG4gICAgfVxuICB9O1xuICBSZWFjdGl2ZUVsZW1lbnQuZGlzYWJsZVdhcm5pbmcgPSBmdW5jdGlvbiAoXG4gICAgdGhpczogdHlwZW9mIFJlYWN0aXZlRWxlbWVudCxcbiAgICB3YXJuaW5nOiBXYXJuaW5nS2luZFxuICApIHtcbiAgICBlbnN1cmVPd25XYXJuaW5ncyh0aGlzKTtcbiAgICBjb25zdCBpID0gdGhpcy5lbmFibGVkV2FybmluZ3MhLmluZGV4T2Yod2FybmluZyk7XG4gICAgaWYgKGkgPj0gMCkge1xuICAgICAgdGhpcy5lbmFibGVkV2FybmluZ3MhLnNwbGljZShpLCAxKTtcbiAgICB9XG4gIH07XG59XG5cbi8vIElNUE9SVEFOVDogZG8gbm90IGNoYW5nZSB0aGUgcHJvcGVydHkgbmFtZSBvciB0aGUgYXNzaWdubWVudCBleHByZXNzaW9uLlxuLy8gVGhpcyBsaW5lIHdpbGwgYmUgdXNlZCBpbiByZWdleGVzIHRvIHNlYXJjaCBmb3IgUmVhY3RpdmVFbGVtZW50IHVzYWdlLlxuKGdsb2JhbC5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucyA/Pz0gW10pLnB1c2goJzIuMS4yJyk7XG5pZiAoREVWX01PREUgJiYgZ2xvYmFsLnJlYWN0aXZlRWxlbWVudFZlcnNpb25zLmxlbmd0aCA+IDEpIHtcbiAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgIGlzc3VlV2FybmluZyEoXG4gICAgICAnbXVsdGlwbGUtdmVyc2lvbnMnLFxuICAgICAgYE11bHRpcGxlIHZlcnNpb25zIG9mIExpdCBsb2FkZWQuIExvYWRpbmcgbXVsdGlwbGUgdmVyc2lvbnMgYCArXG4gICAgICAgIGBpcyBub3QgcmVjb21tZW5kZWQuYFxuICAgICk7XG4gIH0pO1xufVxuIiwgIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2VcbiAqL1xuXG4vLyBJTVBPUlRBTlQ6IHRoZXNlIGltcG9ydHMgbXVzdCBiZSB0eXBlLW9ubHlcbmltcG9ydCB0eXBlIHtEaXJlY3RpdmUsIERpcmVjdGl2ZVJlc3VsdCwgUGFydEluZm99IGZyb20gJy4vZGlyZWN0aXZlLmpzJztcbmltcG9ydCB0eXBlIHtUcnVzdGVkSFRNTCwgVHJ1c3RlZFR5cGVzV2luZG93fSBmcm9tICd0cnVzdGVkLXR5cGVzL2xpYi9pbmRleC5qcyc7XG5cbmNvbnN0IERFVl9NT0RFID0gdHJ1ZTtcbmNvbnN0IEVOQUJMRV9FWFRSQV9TRUNVUklUWV9IT09LUyA9IHRydWU7XG5jb25zdCBFTkFCTEVfU0hBRFlET01fTk9QQVRDSCA9IHRydWU7XG5jb25zdCBOT0RFX01PREUgPSBmYWxzZTtcblxuLy8gQWxsb3dzIG1pbmlmaWVycyB0byByZW5hbWUgcmVmZXJlbmNlcyB0byBnbG9iYWxUaGlzXG5jb25zdCBnbG9iYWwgPSBnbG9iYWxUaGlzO1xuXG4vKipcbiAqIENvbnRhaW5zIHR5cGVzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIHVuc3RhYmxlIGRlYnVnIEFQSS5cbiAqXG4gKiBFdmVyeXRoaW5nIGluIHRoaXMgQVBJIGlzIG5vdCBzdGFibGUgYW5kIG1heSBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLFxuICogZXZlbiBvbiBwYXRjaCByZWxlYXNlcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2VcbmV4cG9ydCBuYW1lc3BhY2UgTGl0VW5zdGFibGUge1xuICAvKipcbiAgICogV2hlbiBMaXQgaXMgcnVubmluZyBpbiBkZXYgbW9kZSBhbmQgYHdpbmRvdy5lbWl0TGl0RGVidWdMb2dFdmVudHNgIGlzIHRydWUsXG4gICAqIHdlIHdpbGwgZW1pdCAnbGl0LWRlYnVnJyBldmVudHMgdG8gd2luZG93LCB3aXRoIGxpdmUgZGV0YWlscyBhYm91dCB0aGUgdXBkYXRlIGFuZCByZW5kZXJcbiAgICogbGlmZWN5Y2xlLiBUaGVzZSBjYW4gYmUgdXNlZnVsIGZvciB3cml0aW5nIGRlYnVnIHRvb2xpbmcgYW5kIHZpc3VhbGl6YXRpb25zLlxuICAgKlxuICAgKiBQbGVhc2UgYmUgYXdhcmUgdGhhdCBydW5uaW5nIHdpdGggd2luZG93LmVtaXRMaXREZWJ1Z0xvZ0V2ZW50cyBoYXMgcGVyZm9ybWFuY2Ugb3ZlcmhlYWQsXG4gICAqIG1ha2luZyBjZXJ0YWluIG9wZXJhdGlvbnMgdGhhdCBhcmUgbm9ybWFsbHkgdmVyeSBjaGVhcCAobGlrZSBhIG5vLW9wIHJlbmRlcikgbXVjaCBzbG93ZXIsXG4gICAqIGJlY2F1c2Ugd2UgbXVzdCBjb3B5IGRhdGEgYW5kIGRpc3BhdGNoIGV2ZW50cy5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIGV4cG9ydCBuYW1lc3BhY2UgRGVidWdMb2cge1xuICAgIGV4cG9ydCB0eXBlIEVudHJ5ID1cbiAgICAgIHwgVGVtcGxhdGVQcmVwXG4gICAgICB8IFRlbXBsYXRlSW5zdGFudGlhdGVkXG4gICAgICB8IFRlbXBsYXRlSW5zdGFudGlhdGVkQW5kVXBkYXRlZFxuICAgICAgfCBUZW1wbGF0ZVVwZGF0aW5nXG4gICAgICB8IEJlZ2luUmVuZGVyXG4gICAgICB8IEVuZFJlbmRlclxuICAgICAgfCBDb21taXRQYXJ0RW50cnlcbiAgICAgIHwgU2V0UGFydFZhbHVlO1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVQcmVwIHtcbiAgICAgIGtpbmQ6ICd0ZW1wbGF0ZSBwcmVwJztcbiAgICAgIHRlbXBsYXRlOiBUZW1wbGF0ZTtcbiAgICAgIHN0cmluZ3M6IFRlbXBsYXRlU3RyaW5nc0FycmF5O1xuICAgICAgY2xvbmFibGVUZW1wbGF0ZTogSFRNTFRlbXBsYXRlRWxlbWVudDtcbiAgICAgIHBhcnRzOiBUZW1wbGF0ZVBhcnRbXTtcbiAgICB9XG4gICAgZXhwb3J0IGludGVyZmFjZSBCZWdpblJlbmRlciB7XG4gICAgICBraW5kOiAnYmVnaW4gcmVuZGVyJztcbiAgICAgIGlkOiBudW1iZXI7XG4gICAgICB2YWx1ZTogdW5rbm93bjtcbiAgICAgIGNvbnRhaW5lcjogUmVuZGVyUm9vdE5vZGU7XG4gICAgICBvcHRpb25zOiBSZW5kZXJPcHRpb25zIHwgdW5kZWZpbmVkO1xuICAgICAgcGFydDogQ2hpbGRQYXJ0IHwgdW5kZWZpbmVkO1xuICAgIH1cbiAgICBleHBvcnQgaW50ZXJmYWNlIEVuZFJlbmRlciB7XG4gICAgICBraW5kOiAnZW5kIHJlbmRlcic7XG4gICAgICBpZDogbnVtYmVyO1xuICAgICAgdmFsdWU6IHVua25vd247XG4gICAgICBjb250YWluZXI6IFJlbmRlclJvb3ROb2RlO1xuICAgICAgb3B0aW9uczogUmVuZGVyT3B0aW9ucyB8IHVuZGVmaW5lZDtcbiAgICAgIHBhcnQ6IENoaWxkUGFydDtcbiAgICB9XG4gICAgZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUluc3RhbnRpYXRlZCB7XG4gICAgICBraW5kOiAndGVtcGxhdGUgaW5zdGFudGlhdGVkJztcbiAgICAgIHRlbXBsYXRlOiBUZW1wbGF0ZSB8IENvbXBpbGVkVGVtcGxhdGU7XG4gICAgICBpbnN0YW5jZTogVGVtcGxhdGVJbnN0YW5jZTtcbiAgICAgIG9wdGlvbnM6IFJlbmRlck9wdGlvbnMgfCB1bmRlZmluZWQ7XG4gICAgICBmcmFnbWVudDogTm9kZTtcbiAgICAgIHBhcnRzOiBBcnJheTxQYXJ0IHwgdW5kZWZpbmVkPjtcbiAgICAgIHZhbHVlczogdW5rbm93bltdO1xuICAgIH1cbiAgICBleHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlSW5zdGFudGlhdGVkQW5kVXBkYXRlZCB7XG4gICAgICBraW5kOiAndGVtcGxhdGUgaW5zdGFudGlhdGVkIGFuZCB1cGRhdGVkJztcbiAgICAgIHRlbXBsYXRlOiBUZW1wbGF0ZSB8IENvbXBpbGVkVGVtcGxhdGU7XG4gICAgICBpbnN0YW5jZTogVGVtcGxhdGVJbnN0YW5jZTtcbiAgICAgIG9wdGlvbnM6IFJlbmRlck9wdGlvbnMgfCB1bmRlZmluZWQ7XG4gICAgICBmcmFnbWVudDogTm9kZTtcbiAgICAgIHBhcnRzOiBBcnJheTxQYXJ0IHwgdW5kZWZpbmVkPjtcbiAgICAgIHZhbHVlczogdW5rbm93bltdO1xuICAgIH1cbiAgICBleHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlVXBkYXRpbmcge1xuICAgICAga2luZDogJ3RlbXBsYXRlIHVwZGF0aW5nJztcbiAgICAgIHRlbXBsYXRlOiBUZW1wbGF0ZSB8IENvbXBpbGVkVGVtcGxhdGU7XG4gICAgICBpbnN0YW5jZTogVGVtcGxhdGVJbnN0YW5jZTtcbiAgICAgIG9wdGlvbnM6IFJlbmRlck9wdGlvbnMgfCB1bmRlZmluZWQ7XG4gICAgICBwYXJ0czogQXJyYXk8UGFydCB8IHVuZGVmaW5lZD47XG4gICAgICB2YWx1ZXM6IHVua25vd25bXTtcbiAgICB9XG4gICAgZXhwb3J0IGludGVyZmFjZSBTZXRQYXJ0VmFsdWUge1xuICAgICAga2luZDogJ3NldCBwYXJ0JztcbiAgICAgIHBhcnQ6IFBhcnQ7XG4gICAgICB2YWx1ZTogdW5rbm93bjtcbiAgICAgIHZhbHVlSW5kZXg6IG51bWJlcjtcbiAgICAgIHZhbHVlczogdW5rbm93bltdO1xuICAgICAgdGVtcGxhdGVJbnN0YW5jZTogVGVtcGxhdGVJbnN0YW5jZTtcbiAgICB9XG5cbiAgICBleHBvcnQgdHlwZSBDb21taXRQYXJ0RW50cnkgPVxuICAgICAgfCBDb21taXROb3RoaW5nVG9DaGlsZEVudHJ5XG4gICAgICB8IENvbW1pdFRleHRcbiAgICAgIHwgQ29tbWl0Tm9kZVxuICAgICAgfCBDb21taXRBdHRyaWJ1dGVcbiAgICAgIHwgQ29tbWl0UHJvcGVydHlcbiAgICAgIHwgQ29tbWl0Qm9vbGVhbkF0dHJpYnV0ZVxuICAgICAgfCBDb21taXRFdmVudExpc3RlbmVyXG4gICAgICB8IENvbW1pdFRvRWxlbWVudEJpbmRpbmc7XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIENvbW1pdE5vdGhpbmdUb0NoaWxkRW50cnkge1xuICAgICAga2luZDogJ2NvbW1pdCBub3RoaW5nIHRvIGNoaWxkJztcbiAgICAgIHN0YXJ0OiBDaGlsZE5vZGU7XG4gICAgICBlbmQ6IENoaWxkTm9kZSB8IG51bGw7XG4gICAgICBwYXJlbnQ6IERpc2Nvbm5lY3RhYmxlIHwgdW5kZWZpbmVkO1xuICAgICAgb3B0aW9uczogUmVuZGVyT3B0aW9ucyB8IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIENvbW1pdFRleHQge1xuICAgICAga2luZDogJ2NvbW1pdCB0ZXh0JztcbiAgICAgIG5vZGU6IFRleHQ7XG4gICAgICB2YWx1ZTogdW5rbm93bjtcbiAgICAgIG9wdGlvbnM6IFJlbmRlck9wdGlvbnMgfCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBDb21taXROb2RlIHtcbiAgICAgIGtpbmQ6ICdjb21taXQgbm9kZSc7XG4gICAgICBzdGFydDogTm9kZTtcbiAgICAgIHBhcmVudDogRGlzY29ubmVjdGFibGUgfCB1bmRlZmluZWQ7XG4gICAgICB2YWx1ZTogTm9kZTtcbiAgICAgIG9wdGlvbnM6IFJlbmRlck9wdGlvbnMgfCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBDb21taXRBdHRyaWJ1dGUge1xuICAgICAga2luZDogJ2NvbW1pdCBhdHRyaWJ1dGUnO1xuICAgICAgZWxlbWVudDogRWxlbWVudDtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIHZhbHVlOiB1bmtub3duO1xuICAgICAgb3B0aW9uczogUmVuZGVyT3B0aW9ucyB8IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIENvbW1pdFByb3BlcnR5IHtcbiAgICAgIGtpbmQ6ICdjb21taXQgcHJvcGVydHknO1xuICAgICAgZWxlbWVudDogRWxlbWVudDtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIHZhbHVlOiB1bmtub3duO1xuICAgICAgb3B0aW9uczogUmVuZGVyT3B0aW9ucyB8IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIENvbW1pdEJvb2xlYW5BdHRyaWJ1dGUge1xuICAgICAga2luZDogJ2NvbW1pdCBib29sZWFuIGF0dHJpYnV0ZSc7XG4gICAgICBlbGVtZW50OiBFbGVtZW50O1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgdmFsdWU6IGJvb2xlYW47XG4gICAgICBvcHRpb25zOiBSZW5kZXJPcHRpb25zIHwgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgQ29tbWl0RXZlbnRMaXN0ZW5lciB7XG4gICAgICBraW5kOiAnY29tbWl0IGV2ZW50IGxpc3RlbmVyJztcbiAgICAgIGVsZW1lbnQ6IEVsZW1lbnQ7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICB2YWx1ZTogdW5rbm93bjtcbiAgICAgIG9sZExpc3RlbmVyOiB1bmtub3duO1xuICAgICAgb3B0aW9uczogUmVuZGVyT3B0aW9ucyB8IHVuZGVmaW5lZDtcbiAgICAgIC8vIFRydWUgaWYgd2UncmUgcmVtb3ZpbmcgdGhlIG9sZCBldmVudCBsaXN0ZW5lciAoZS5nLiBiZWNhdXNlIHNldHRpbmdzIGNoYW5nZWQsIG9yIHZhbHVlIGlzIG5vdGhpbmcpXG4gICAgICByZW1vdmVMaXN0ZW5lcjogYm9vbGVhbjtcbiAgICAgIC8vIFRydWUgaWYgd2UncmUgYWRkaW5nIGEgbmV3IGV2ZW50IGxpc3RlbmVyIChlLmcuIGJlY2F1c2UgZmlyc3QgcmVuZGVyLCBvciBzZXR0aW5ncyBjaGFuZ2VkKVxuICAgICAgYWRkTGlzdGVuZXI6IGJvb2xlYW47XG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBDb21taXRUb0VsZW1lbnRCaW5kaW5nIHtcbiAgICAgIGtpbmQ6ICdjb21taXQgdG8gZWxlbWVudCBiaW5kaW5nJztcbiAgICAgIGVsZW1lbnQ6IEVsZW1lbnQ7XG4gICAgICB2YWx1ZTogdW5rbm93bjtcbiAgICAgIG9wdGlvbnM6IFJlbmRlck9wdGlvbnMgfCB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG5cbmludGVyZmFjZSBEZWJ1Z0xvZ2dpbmdXaW5kb3cge1xuICAvLyBFdmVuIGluIGRldiBtb2RlLCB3ZSBnZW5lcmFsbHkgZG9uJ3Qgd2FudCB0byBlbWl0IHRoZXNlIGV2ZW50cywgYXMgdGhhdCdzXG4gIC8vIGFub3RoZXIgbGV2ZWwgb2YgY29zdCwgc28gb25seSBlbWl0IHRoZW0gd2hlbiBERVZfTU9ERSBpcyB0cnVlIF9hbmRfIHdoZW5cbiAgLy8gd2luZG93LmVtaXRMaXREZWJ1Z0V2ZW50cyBpcyB0cnVlLlxuICBlbWl0TGl0RGVidWdMb2dFdmVudHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFVzZWZ1bCBmb3IgdmlzdWFsaXppbmcgYW5kIGxvZ2dpbmcgaW5zaWdodHMgaW50byB3aGF0IHRoZSBMaXQgdGVtcGxhdGUgc3lzdGVtIGlzIGRvaW5nLlxuICpcbiAqIENvbXBpbGVkIG91dCBvZiBwcm9kIG1vZGUgYnVpbGRzLlxuICovXG5jb25zdCBkZWJ1Z0xvZ0V2ZW50ID0gREVWX01PREVcbiAgPyAoZXZlbnQ6IExpdFVuc3RhYmxlLkRlYnVnTG9nLkVudHJ5KSA9PiB7XG4gICAgICBjb25zdCBzaG91bGRFbWl0ID0gKGdsb2JhbCBhcyB1bmtub3duIGFzIERlYnVnTG9nZ2luZ1dpbmRvdylcbiAgICAgICAgLmVtaXRMaXREZWJ1Z0xvZ0V2ZW50cztcbiAgICAgIGlmICghc2hvdWxkRW1pdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBnbG9iYWwuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50PExpdFVuc3RhYmxlLkRlYnVnTG9nLkVudHJ5PignbGl0LWRlYnVnJywge1xuICAgICAgICAgIGRldGFpbDogZXZlbnQsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgOiB1bmRlZmluZWQ7XG4vLyBVc2VkIGZvciBjb25uZWN0aW5nIGJlZ2luUmVuZGVyIGFuZCBlbmRSZW5kZXIgZXZlbnRzIHdoZW4gdGhlcmUgYXJlIG5lc3RlZFxuLy8gcmVuZGVycyB3aGVuIGVycm9ycyBhcmUgdGhyb3duIHByZXZlbnRpbmcgYW4gZW5kUmVuZGVyIGV2ZW50IGZyb20gYmVpbmdcbi8vIGNhbGxlZC5cbmxldCBkZWJ1Z0xvZ1JlbmRlcklkID0gMDtcblxubGV0IGlzc3VlV2FybmluZzogKGNvZGU6IHN0cmluZywgd2FybmluZzogc3RyaW5nKSA9PiB2b2lkO1xuXG5pZiAoREVWX01PREUpIHtcbiAgZ2xvYmFsLmxpdElzc3VlZFdhcm5pbmdzID8/PSBuZXcgU2V0KCk7XG5cbiAgLyoqXG4gICAqIElzc3VlIGEgd2FybmluZyBpZiB3ZSBoYXZlbid0IGFscmVhZHksIGJhc2VkIGVpdGhlciBvbiBgY29kZWAgb3IgYHdhcm5pbmdgLlxuICAgKiBXYXJuaW5ncyBhcmUgZGlzYWJsZWQgYXV0b21hdGljYWxseSBvbmx5IGJ5IGB3YXJuaW5nYDsgZGlzYWJsaW5nIHZpYSBgY29kZWBcbiAgICogY2FuIGJlIGRvbmUgYnkgdXNlcnMuXG4gICAqL1xuICBpc3N1ZVdhcm5pbmcgPSAoY29kZTogc3RyaW5nLCB3YXJuaW5nOiBzdHJpbmcpID0+IHtcbiAgICB3YXJuaW5nICs9IGNvZGVcbiAgICAgID8gYCBTZWUgaHR0cHM6Ly9saXQuZGV2L21zZy8ke2NvZGV9IGZvciBtb3JlIGluZm9ybWF0aW9uLmBcbiAgICAgIDogJyc7XG4gICAgaWYgKFxuICAgICAgIWdsb2JhbC5saXRJc3N1ZWRXYXJuaW5ncyEuaGFzKHdhcm5pbmcpICYmXG4gICAgICAhZ2xvYmFsLmxpdElzc3VlZFdhcm5pbmdzIS5oYXMoY29kZSlcbiAgICApIHtcbiAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgIGdsb2JhbC5saXRJc3N1ZWRXYXJuaW5ncyEuYWRkKHdhcm5pbmcpO1xuICAgIH1cbiAgfTtcblxuICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgaXNzdWVXYXJuaW5nKFxuICAgICAgJ2Rldi1tb2RlJyxcbiAgICAgIGBMaXQgaXMgaW4gZGV2IG1vZGUuIE5vdCByZWNvbW1lbmRlZCBmb3IgcHJvZHVjdGlvbiFgXG4gICAgKTtcbiAgfSk7XG59XG5cbmNvbnN0IHdyYXAgPVxuICBFTkFCTEVfU0hBRFlET01fTk9QQVRDSCAmJlxuICBnbG9iYWwuU2hhZHlET00/LmluVXNlICYmXG4gIGdsb2JhbC5TaGFkeURPTT8ubm9QYXRjaCA9PT0gdHJ1ZVxuICAgID8gKGdsb2JhbC5TaGFkeURPTSEud3JhcCBhcyA8VCBleHRlbmRzIE5vZGU+KG5vZGU6IFQpID0+IFQpXG4gICAgOiA8VCBleHRlbmRzIE5vZGU+KG5vZGU6IFQpID0+IG5vZGU7XG5cbmNvbnN0IHRydXN0ZWRUeXBlcyA9IChnbG9iYWwgYXMgdW5rbm93biBhcyBUcnVzdGVkVHlwZXNXaW5kb3cpLnRydXN0ZWRUeXBlcztcblxuLyoqXG4gKiBPdXIgVHJ1c3RlZFR5cGVQb2xpY3kgZm9yIEhUTUwgd2hpY2ggaXMgZGVjbGFyZWQgdXNpbmcgdGhlIGh0bWwgdGVtcGxhdGVcbiAqIHRhZyBmdW5jdGlvbi5cbiAqXG4gKiBUaGF0IEhUTUwgaXMgYSBkZXZlbG9wZXItYXV0aG9yZWQgY29uc3RhbnQsIGFuZCBpcyBwYXJzZWQgd2l0aCBpbm5lckhUTUxcbiAqIGJlZm9yZSBhbnkgdW50cnVzdGVkIGV4cHJlc3Npb25zIGhhdmUgYmVlbiBtaXhlZCBpbi4gVGhlcmVmb3IgaXQgaXNcbiAqIGNvbnNpZGVyZWQgc2FmZSBieSBjb25zdHJ1Y3Rpb24uXG4gKi9cbmNvbnN0IHBvbGljeSA9IHRydXN0ZWRUeXBlc1xuICA/IHRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koJ2xpdC1odG1sJywge1xuICAgICAgY3JlYXRlSFRNTDogKHMpID0+IHMsXG4gICAgfSlcbiAgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogVXNlZCB0byBzYW5pdGl6ZSBhbnkgdmFsdWUgYmVmb3JlIGl0IGlzIHdyaXR0ZW4gaW50byB0aGUgRE9NLiBUaGlzIGNhbiBiZVxuICogdXNlZCB0byBpbXBsZW1lbnQgYSBzZWN1cml0eSBwb2xpY3kgb2YgYWxsb3dlZCBhbmQgZGlzYWxsb3dlZCB2YWx1ZXMgaW5cbiAqIG9yZGVyIHRvIHByZXZlbnQgWFNTIGF0dGFja3MuXG4gKlxuICogT25lIHdheSBvZiB1c2luZyB0aGlzIGNhbGxiYWNrIHdvdWxkIGJlIHRvIGNoZWNrIGF0dHJpYnV0ZXMgYW5kIHByb3BlcnRpZXNcbiAqIGFnYWluc3QgYSBsaXN0IG9mIGhpZ2ggcmlzayBmaWVsZHMsIGFuZCByZXF1aXJlIHRoYXQgdmFsdWVzIHdyaXR0ZW4gdG8gc3VjaFxuICogZmllbGRzIGJlIGluc3RhbmNlcyBvZiBhIGNsYXNzIHdoaWNoIGlzIHNhZmUgYnkgY29uc3RydWN0aW9uLiBDbG9zdXJlJ3MgU2FmZVxuICogSFRNTCBUeXBlcyBpcyBvbmUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyB0ZWNobmlxdWUgKFxuICogaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9zYWZlLWh0bWwtdHlwZXMvYmxvYi9tYXN0ZXIvZG9jL3NhZmVodG1sLXR5cGVzLm1kKS5cbiAqIFRoZSBUcnVzdGVkVHlwZXMgcG9seWZpbGwgaW4gQVBJLW9ubHkgbW9kZSBjb3VsZCBhbHNvIGJlIHVzZWQgYXMgYSBiYXNpc1xuICogZm9yIHRoaXMgdGVjaG5pcXVlIChodHRwczovL2dpdGh1Yi5jb20vV0lDRy90cnVzdGVkLXR5cGVzKS5cbiAqXG4gKiBAcGFyYW0gbm9kZSBUaGUgSFRNTCBub2RlICh1c3VhbGx5IGVpdGhlciBhICN0ZXh0IG5vZGUgb3IgYW4gRWxlbWVudCkgdGhhdFxuICogICAgIGlzIGJlaW5nIHdyaXR0ZW4gdG8uIE5vdGUgdGhhdCB0aGlzIGlzIGp1c3QgYW4gZXhlbXBsYXIgbm9kZSwgdGhlIHdyaXRlXG4gKiAgICAgbWF5IHRha2UgcGxhY2UgYWdhaW5zdCBhbm90aGVyIGluc3RhbmNlIG9mIHRoZSBzYW1lIGNsYXNzIG9mIG5vZGUuXG4gKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiBhbiBhdHRyaWJ1dGUgb3IgcHJvcGVydHkgKGZvciBleGFtcGxlLCAnaHJlZicpLlxuICogQHBhcmFtIHR5cGUgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHdyaXRlIHRoYXQncyBhYm91dCB0byBiZSBwZXJmb3JtZWQgd2lsbFxuICogICAgIGJlIHRvIGEgcHJvcGVydHkgb3IgYSBub2RlLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBzYW5pdGl6ZSB0aGlzIGNsYXNzIG9mIHdyaXRlcy5cbiAqL1xuZXhwb3J0IHR5cGUgU2FuaXRpemVyRmFjdG9yeSA9IChcbiAgbm9kZTogTm9kZSxcbiAgbmFtZTogc3RyaW5nLFxuICB0eXBlOiAncHJvcGVydHknIHwgJ2F0dHJpYnV0ZSdcbikgPT4gVmFsdWVTYW5pdGl6ZXI7XG5cbi8qKlxuICogQSBmdW5jdGlvbiB3aGljaCBjYW4gc2FuaXRpemUgdmFsdWVzIHRoYXQgd2lsbCBiZSB3cml0dGVuIHRvIGEgc3BlY2lmaWMga2luZFxuICogb2YgRE9NIHNpbmsuXG4gKlxuICogU2VlIFNhbml0aXplckZhY3RvcnkuXG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBzYW5pdGl6ZS4gV2lsbCBiZSB0aGUgYWN0dWFsIHZhbHVlIHBhc3NlZCBpbnRvXG4gKiAgICAgdGhlIGxpdC1odG1sIHRlbXBsYXRlIGxpdGVyYWwsIHNvIHRoaXMgY291bGQgYmUgb2YgYW55IHR5cGUuXG4gKiBAcmV0dXJuIFRoZSB2YWx1ZSB0byB3cml0ZSB0byB0aGUgRE9NLiBVc3VhbGx5IHRoZSBzYW1lIGFzIHRoZSBpbnB1dCB2YWx1ZSxcbiAqICAgICB1bmxlc3Mgc2FuaXRpemF0aW9uIGlzIG5lZWRlZC5cbiAqL1xuZXhwb3J0IHR5cGUgVmFsdWVTYW5pdGl6ZXIgPSAodmFsdWU6IHVua25vd24pID0+IHVua25vd247XG5cbmNvbnN0IGlkZW50aXR5RnVuY3Rpb246IFZhbHVlU2FuaXRpemVyID0gKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZTtcbmNvbnN0IG5vb3BTYW5pdGl6ZXI6IFNhbml0aXplckZhY3RvcnkgPSAoXG4gIF9ub2RlOiBOb2RlLFxuICBfbmFtZTogc3RyaW5nLFxuICBfdHlwZTogJ3Byb3BlcnR5JyB8ICdhdHRyaWJ1dGUnXG4pID0+IGlkZW50aXR5RnVuY3Rpb247XG5cbi8qKiBTZXRzIHRoZSBnbG9iYWwgc2FuaXRpemVyIGZhY3RvcnkuICovXG5jb25zdCBzZXRTYW5pdGl6ZXIgPSAobmV3U2FuaXRpemVyOiBTYW5pdGl6ZXJGYWN0b3J5KSA9PiB7XG4gIGlmICghRU5BQkxFX0VYVFJBX1NFQ1VSSVRZX0hPT0tTKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChzYW5pdGl6ZXJGYWN0b3J5SW50ZXJuYWwgIT09IG5vb3BTYW5pdGl6ZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIG92ZXJ3cml0ZSBleGlzdGluZyBsaXQtaHRtbCBzZWN1cml0eSBwb2xpY3kuYCArXG4gICAgICAgIGAgc2V0U2FuaXRpemVET01WYWx1ZUZhY3Rvcnkgc2hvdWxkIGJlIGNhbGxlZCBhdCBtb3N0IG9uY2UuYFxuICAgICk7XG4gIH1cbiAgc2FuaXRpemVyRmFjdG9yeUludGVybmFsID0gbmV3U2FuaXRpemVyO1xufTtcblxuLyoqXG4gKiBPbmx5IHVzZWQgaW4gaW50ZXJuYWwgdGVzdHMsIG5vdCBhIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkuXG4gKi9cbmNvbnN0IF90ZXN0T25seUNsZWFyU2FuaXRpemVyRmFjdG9yeURvTm90Q2FsbE9yRWxzZSA9ICgpID0+IHtcbiAgc2FuaXRpemVyRmFjdG9yeUludGVybmFsID0gbm9vcFNhbml0aXplcjtcbn07XG5cbmNvbnN0IGNyZWF0ZVNhbml0aXplcjogU2FuaXRpemVyRmFjdG9yeSA9IChub2RlLCBuYW1lLCB0eXBlKSA9PiB7XG4gIHJldHVybiBzYW5pdGl6ZXJGYWN0b3J5SW50ZXJuYWwobm9kZSwgbmFtZSwgdHlwZSk7XG59O1xuXG4vLyBBZGRlZCB0byBhbiBhdHRyaWJ1dGUgbmFtZSB0byBtYXJrIHRoZSBhdHRyaWJ1dGUgYXMgYm91bmQgc28gd2UgY2FuIGZpbmRcbi8vIGl0IGVhc2lseS5cbmNvbnN0IGJvdW5kQXR0cmlidXRlU3VmZml4ID0gJyRsaXQkJztcblxuLy8gVGhpcyBtYXJrZXIgaXMgdXNlZCBpbiBtYW55IHN5bnRhY3RpYyBwb3NpdGlvbnMgaW4gSFRNTCwgc28gaXQgbXVzdCBiZVxuLy8gYSB2YWxpZCBlbGVtZW50IG5hbWUgYW5kIGF0dHJpYnV0ZSBuYW1lLiBXZSBkb24ndCBzdXBwb3J0IGR5bmFtaWMgbmFtZXMgKHlldClcbi8vIGJ1dCB0aGlzIGF0IGxlYXN0IGVuc3VyZXMgdGhhdCB0aGUgcGFyc2UgdHJlZSBpcyBjbG9zZXIgdG8gdGhlIHRlbXBsYXRlXG4vLyBpbnRlbnRpb24uXG5jb25zdCBtYXJrZXIgPSBgbGl0JCR7TWF0aC5yYW5kb20oKS50b0ZpeGVkKDkpLnNsaWNlKDIpfSRgO1xuXG4vLyBTdHJpbmcgdXNlZCB0byB0ZWxsIGlmIGEgY29tbWVudCBpcyBhIG1hcmtlciBjb21tZW50XG5jb25zdCBtYXJrZXJNYXRjaCA9ICc/JyArIG1hcmtlcjtcblxuLy8gVGV4dCB1c2VkIHRvIGluc2VydCBhIGNvbW1lbnQgbWFya2VyIG5vZGUuIFdlIHVzZSBwcm9jZXNzaW5nIGluc3RydWN0aW9uXG4vLyBzeW50YXggYmVjYXVzZSBpdCdzIHNsaWdodGx5IHNtYWxsZXIsIGJ1dCBwYXJzZXMgYXMgYSBjb21tZW50IG5vZGUuXG5jb25zdCBub2RlTWFya2VyID0gYDwke21hcmtlck1hdGNofT5gO1xuXG5jb25zdCBkID1cbiAgTk9ERV9NT0RFICYmIGdsb2JhbC5kb2N1bWVudCA9PT0gdW5kZWZpbmVkXG4gICAgPyAoe1xuICAgICAgICBjcmVhdGVUcmVlV2Fsa2VyKCkge1xuICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgdW5rbm93biBhcyBEb2N1bWVudClcbiAgICA6IGRvY3VtZW50O1xuXG4vLyBDcmVhdGVzIGEgZHluYW1pYyBtYXJrZXIuIFdlIG5ldmVyIGhhdmUgdG8gc2VhcmNoIGZvciB0aGVzZSBpbiB0aGUgRE9NLlxuY29uc3QgY3JlYXRlTWFya2VyID0gKCkgPT4gZC5jcmVhdGVDb21tZW50KCcnKTtcblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdHlwZW9mLW9wZXJhdG9yXG50eXBlIFByaW1pdGl2ZSA9IG51bGwgfCB1bmRlZmluZWQgfCBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgc3ltYm9sIHwgYmlnaW50O1xuY29uc3QgaXNQcmltaXRpdmUgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBQcmltaXRpdmUgPT5cbiAgdmFsdWUgPT09IG51bGwgfHwgKHR5cGVvZiB2YWx1ZSAhPSAnb2JqZWN0JyAmJiB0eXBlb2YgdmFsdWUgIT0gJ2Z1bmN0aW9uJyk7XG5jb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcbmNvbnN0IGlzSXRlcmFibGUgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBJdGVyYWJsZTx1bmtub3duPiA9PlxuICBpc0FycmF5KHZhbHVlKSB8fFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICB0eXBlb2YgKHZhbHVlIGFzIGFueSk/LltTeW1ib2wuaXRlcmF0b3JdID09PSAnZnVuY3Rpb24nO1xuXG5jb25zdCBTUEFDRV9DSEFSID0gYFsgXFx0XFxuXFxmXFxyXWA7XG5jb25zdCBBVFRSX1ZBTFVFX0NIQVIgPSBgW14gXFx0XFxuXFxmXFxyXCInXFxgPD49XWA7XG5jb25zdCBOQU1FX0NIQVIgPSBgW15cXFxcc1wiJz49L11gO1xuXG4vLyBUaGVzZSByZWdleGVzIHJlcHJlc2VudCB0aGUgZml2ZSBwYXJzaW5nIHN0YXRlcyB0aGF0IHdlIGNhcmUgYWJvdXQgaW4gdGhlXG4vLyBUZW1wbGF0ZSdzIEhUTUwgc2Nhbm5lci4gVGhleSBtYXRjaCB0aGUgKmVuZCogb2YgdGhlIHN0YXRlIHRoZXkncmUgbmFtZWRcbi8vIGFmdGVyLlxuLy8gRGVwZW5kaW5nIG9uIHRoZSBtYXRjaCwgd2UgdHJhbnNpdGlvbiB0byBhIG5ldyBzdGF0ZS4gSWYgdGhlcmUncyBubyBtYXRjaCxcbi8vIHdlIHN0YXkgaW4gdGhlIHNhbWUgc3RhdGUuXG4vLyBOb3RlIHRoYXQgdGhlIHJlZ2V4ZXMgYXJlIHN0YXRlZnVsLiBXZSB1dGlsaXplIGxhc3RJbmRleCBhbmQgc3luYyBpdFxuLy8gYWNyb3NzIHRoZSBtdWx0aXBsZSByZWdleGVzIHVzZWQuIEluIGFkZGl0aW9uIHRvIHRoZSBmaXZlIHJlZ2V4ZXMgYmVsb3dcbi8vIHdlIGFsc28gZHluYW1pY2FsbHkgY3JlYXRlIGEgcmVnZXggdG8gZmluZCB0aGUgbWF0Y2hpbmcgZW5kIHRhZ3MgZm9yIHJhd1xuLy8gdGV4dCBlbGVtZW50cy5cblxuLyoqXG4gKiBFbmQgb2YgdGV4dCBpczogYDxgIGZvbGxvd2VkIGJ5OlxuICogICAoY29tbWVudCBzdGFydCkgb3IgKHRhZykgb3IgKGR5bmFtaWMgdGFnIGJpbmRpbmcpXG4gKi9cbmNvbnN0IHRleHRFbmRSZWdleCA9IC88KD86KCEtLXxcXC9bXmEtekEtWl0pfChcXC8/W2EtekEtWl1bXj5cXHNdKil8KFxcLz8kKSkvZztcbmNvbnN0IENPTU1FTlRfU1RBUlQgPSAxO1xuY29uc3QgVEFHX05BTUUgPSAyO1xuY29uc3QgRFlOQU1JQ19UQUdfTkFNRSA9IDM7XG5cbmNvbnN0IGNvbW1lbnRFbmRSZWdleCA9IC8tLT4vZztcbi8qKlxuICogQ29tbWVudHMgbm90IHN0YXJ0ZWQgd2l0aCA8IS0tLCBsaWtlIDwveywgY2FuIGJlIGVuZGVkIGJ5IGEgc2luZ2xlIGA+YFxuICovXG5jb25zdCBjb21tZW50MkVuZFJlZ2V4ID0gLz4vZztcblxuLyoqXG4gKiBUaGUgdGFnRW5kIHJlZ2V4IG1hdGNoZXMgdGhlIGVuZCBvZiB0aGUgXCJpbnNpZGUgYW4gb3BlbmluZ1wiIHRhZyBzeW50YXhcbiAqIHBvc2l0aW9uLiBJdCBlaXRoZXIgbWF0Y2hlcyBhIGA+YCwgYW4gYXR0cmlidXRlLWxpa2Ugc2VxdWVuY2UsIG9yIHRoZSBlbmRcbiAqIG9mIHRoZSBzdHJpbmcgYWZ0ZXIgYSBzcGFjZSAoYXR0cmlidXRlLW5hbWUgcG9zaXRpb24gZW5kaW5nKS5cbiAqXG4gKiBTZWUgYXR0cmlidXRlcyBpbiB0aGUgSFRNTCBzcGVjOlxuICogaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L3N5bnRheC5odG1sI2VsZW1lbnRzLWF0dHJpYnV0ZXNcbiAqXG4gKiBcIiBcXHRcXG5cXGZcXHJcIiBhcmUgSFRNTCBzcGFjZSBjaGFyYWN0ZXJzOlxuICogaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI2FzY2lpLXdoaXRlc3BhY2VcbiAqXG4gKiBTbyBhbiBhdHRyaWJ1dGUgaXM6XG4gKiAgKiBUaGUgbmFtZTogYW55IGNoYXJhY3RlciBleGNlcHQgYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciwgKFwiKSwgKCcpLCBcIj5cIixcbiAqICAgIFwiPVwiLCBvciBcIi9cIi4gTm90ZTogdGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgSFRNTCBzcGVjIHdoaWNoIGFsc28gZXhjbHVkZXMgY29udHJvbCBjaGFyYWN0ZXJzLlxuICogICogRm9sbG93ZWQgYnkgemVybyBvciBtb3JlIHNwYWNlIGNoYXJhY3RlcnNcbiAqICAqIEZvbGxvd2VkIGJ5IFwiPVwiXG4gKiAgKiBGb2xsb3dlZCBieSB6ZXJvIG9yIG1vcmUgc3BhY2UgY2hhcmFjdGVyc1xuICogICogRm9sbG93ZWQgYnk6XG4gKiAgICAqIEFueSBjaGFyYWN0ZXIgZXhjZXB0IHNwYWNlLCAoJyksIChcIiksIFwiPFwiLCBcIj5cIiwgXCI9XCIsIChgKSwgb3JcbiAqICAgICogKFwiKSB0aGVuIGFueSBub24tKFwiKSwgb3JcbiAqICAgICogKCcpIHRoZW4gYW55IG5vbi0oJylcbiAqL1xuY29uc3QgdGFnRW5kUmVnZXggPSBuZXcgUmVnRXhwKFxuICBgPnwke1NQQUNFX0NIQVJ9KD86KCR7TkFNRV9DSEFSfSspKCR7U1BBQ0VfQ0hBUn0qPSR7U1BBQ0VfQ0hBUn0qKD86JHtBVFRSX1ZBTFVFX0NIQVJ9fChcInwnKXwpKXwkKWAsXG4gICdnJ1xuKTtcbmNvbnN0IEVOVElSRV9NQVRDSCA9IDA7XG5jb25zdCBBVFRSSUJVVEVfTkFNRSA9IDE7XG5jb25zdCBTUEFDRVNfQU5EX0VRVUFMUyA9IDI7XG5jb25zdCBRVU9URV9DSEFSID0gMztcblxuY29uc3Qgc2luZ2xlUXVvdGVBdHRyRW5kUmVnZXggPSAvJy9nO1xuY29uc3QgZG91YmxlUXVvdGVBdHRyRW5kUmVnZXggPSAvXCIvZztcbi8qKlxuICogTWF0Y2hlcyB0aGUgcmF3IHRleHQgZWxlbWVudHMuXG4gKlxuICogQ29tbWVudHMgYXJlIG5vdCBwYXJzZWQgd2l0aGluIHJhdyB0ZXh0IGVsZW1lbnRzLCBzbyB3ZSBuZWVkIHRvIHNlYXJjaCB0aGVpclxuICogdGV4dCBjb250ZW50IGZvciBtYXJrZXIgc3RyaW5ncy5cbiAqL1xuY29uc3QgcmF3VGV4dEVsZW1lbnQgPSAvXig/OnNjcmlwdHxzdHlsZXx0ZXh0YXJlYXx0aXRsZSkkL2k7XG5cbi8qKiBUZW1wbGF0ZVJlc3VsdCB0eXBlcyAqL1xuY29uc3QgSFRNTF9SRVNVTFQgPSAxO1xuY29uc3QgU1ZHX1JFU1VMVCA9IDI7XG5jb25zdCBNQVRITUxfUkVTVUxUID0gMztcblxudHlwZSBSZXN1bHRUeXBlID0gdHlwZW9mIEhUTUxfUkVTVUxUIHwgdHlwZW9mIFNWR19SRVNVTFQgfCB0eXBlb2YgTUFUSE1MX1JFU1VMVDtcblxuLy8gVGVtcGxhdGVQYXJ0IHR5cGVzXG4vLyBJTVBPUlRBTlQ6IHRoZXNlIG11c3QgbWF0Y2ggdGhlIHZhbHVlcyBpbiBQYXJ0VHlwZVxuY29uc3QgQVRUUklCVVRFX1BBUlQgPSAxO1xuY29uc3QgQ0hJTERfUEFSVCA9IDI7XG5jb25zdCBQUk9QRVJUWV9QQVJUID0gMztcbmNvbnN0IEJPT0xFQU5fQVRUUklCVVRFX1BBUlQgPSA0O1xuY29uc3QgRVZFTlRfUEFSVCA9IDU7XG5jb25zdCBFTEVNRU5UX1BBUlQgPSA2O1xuY29uc3QgQ09NTUVOVF9QQVJUID0gNztcblxuLyoqXG4gKiBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIHRlbXBsYXRlIHRhZyBmdW5jdGlvbnMsIHtAbGlua2NvZGUgaHRtbH0gYW5kXG4gKiB7QGxpbmtjb2RlIHN2Z30gd2hlbiBpdCBoYXNuJ3QgYmVlbiBjb21waWxlZCBieSBAbGl0LWxhYnMvY29tcGlsZXIuXG4gKlxuICogQSBgVGVtcGxhdGVSZXN1bHRgIG9iamVjdCBob2xkcyBhbGwgdGhlIGluZm9ybWF0aW9uIGFib3V0IGEgdGVtcGxhdGVcbiAqIGV4cHJlc3Npb24gcmVxdWlyZWQgdG8gcmVuZGVyIGl0OiB0aGUgdGVtcGxhdGUgc3RyaW5ncywgZXhwcmVzc2lvbiB2YWx1ZXMsXG4gKiBhbmQgdHlwZSBvZiB0ZW1wbGF0ZSAoaHRtbCBvciBzdmcpLlxuICpcbiAqIGBUZW1wbGF0ZVJlc3VsdGAgb2JqZWN0cyBkbyBub3QgY3JlYXRlIGFueSBET00gb24gdGhlaXIgb3duLiBUbyBjcmVhdGUgb3JcbiAqIHVwZGF0ZSBET00geW91IG5lZWQgdG8gcmVuZGVyIHRoZSBgVGVtcGxhdGVSZXN1bHRgLiBTZWVcbiAqIFtSZW5kZXJpbmddKGh0dHBzOi8vbGl0LmRldi9kb2NzL2NvbXBvbmVudHMvcmVuZGVyaW5nKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKi9cbmV4cG9ydCB0eXBlIFVuY29tcGlsZWRUZW1wbGF0ZVJlc3VsdDxUIGV4dGVuZHMgUmVzdWx0VHlwZSA9IFJlc3VsdFR5cGU+ID0ge1xuICAvLyBUaGlzIHByb3BlcnR5IG5lZWRzIHRvIHJlbWFpbiB1bm1pbmlmaWVkLlxuICBbJ18kbGl0VHlwZSQnXTogVDtcbiAgc3RyaW5nczogVGVtcGxhdGVTdHJpbmdzQXJyYXk7XG4gIHZhbHVlczogdW5rbm93bltdO1xufTtcblxuLyoqXG4gKiBUaGlzIGlzIGEgdGVtcGxhdGUgcmVzdWx0IHRoYXQgbWF5IGJlIGVpdGhlciB1bmNvbXBpbGVkIG9yIGNvbXBpbGVkLlxuICpcbiAqIEluIHRoZSBmdXR1cmUsIFRlbXBsYXRlUmVzdWx0IHdpbGwgYmUgdGhpcyB0eXBlLiBJZiB5b3Ugd2FudCB0byBleHBsaWNpdGx5XG4gKiBub3RlIHRoYXQgYSB0ZW1wbGF0ZSByZXN1bHQgaXMgcG90ZW50aWFsbHkgY29tcGlsZWQsIHlvdSBjYW4gcmVmZXJlbmNlIHRoaXNcbiAqIHR5cGUgYW5kIGl0IHdpbGwgY29udGludWUgdG8gYmVoYXZlIHRoZSBzYW1lIHRocm91Z2ggdGhlIG5leHQgbWFqb3IgdmVyc2lvblxuICogb2YgTGl0LiBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIGNvZGUgdGhhdCB3YW50cyB0byBwcmVwYXJlIGZvciB0aGUgbmV4dFxuICogbWFqb3IgdmVyc2lvbiBvZiBMaXQuXG4gKi9cbmV4cG9ydCB0eXBlIE1heWJlQ29tcGlsZWRUZW1wbGF0ZVJlc3VsdDxUIGV4dGVuZHMgUmVzdWx0VHlwZSA9IFJlc3VsdFR5cGU+ID1cbiAgfCBVbmNvbXBpbGVkVGVtcGxhdGVSZXN1bHQ8VD5cbiAgfCBDb21waWxlZFRlbXBsYXRlUmVzdWx0O1xuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgdGVtcGxhdGUgdGFnIGZ1bmN0aW9ucywge0BsaW5rY29kZSBodG1sfSBhbmRcbiAqIHtAbGlua2NvZGUgc3ZnfS5cbiAqXG4gKiBBIGBUZW1wbGF0ZVJlc3VsdGAgb2JqZWN0IGhvbGRzIGFsbCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSB0ZW1wbGF0ZVxuICogZXhwcmVzc2lvbiByZXF1aXJlZCB0byByZW5kZXIgaXQ6IHRoZSB0ZW1wbGF0ZSBzdHJpbmdzLCBleHByZXNzaW9uIHZhbHVlcyxcbiAqIGFuZCB0eXBlIG9mIHRlbXBsYXRlIChodG1sIG9yIHN2ZykuXG4gKlxuICogYFRlbXBsYXRlUmVzdWx0YCBvYmplY3RzIGRvIG5vdCBjcmVhdGUgYW55IERPTSBvbiB0aGVpciBvd24uIFRvIGNyZWF0ZSBvclxuICogdXBkYXRlIERPTSB5b3UgbmVlZCB0byByZW5kZXIgdGhlIGBUZW1wbGF0ZVJlc3VsdGAuIFNlZVxuICogW1JlbmRlcmluZ10oaHR0cHM6Ly9saXQuZGV2L2RvY3MvY29tcG9uZW50cy9yZW5kZXJpbmcpIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEluIExpdCA0LCB0aGlzIHR5cGUgd2lsbCBiZSBhbiBhbGlhcyBvZlxuICogTWF5YmVDb21waWxlZFRlbXBsYXRlUmVzdWx0LCBzbyB0aGF0IGNvZGUgd2lsbCBnZXQgdHlwZSBlcnJvcnMgaWYgaXQgYXNzdW1lc1xuICogdGhhdCBMaXQgdGVtcGxhdGVzIGFyZSBub3QgY29tcGlsZWQuIFdoZW4gZGVsaWJlcmF0ZWx5IHdvcmtpbmcgd2l0aCBvbmx5XG4gKiBvbmUsIHVzZSBlaXRoZXIge0BsaW5rY29kZSBDb21waWxlZFRlbXBsYXRlUmVzdWx0fSBvclxuICoge0BsaW5rY29kZSBVbmNvbXBpbGVkVGVtcGxhdGVSZXN1bHR9IGV4cGxpY2l0bHkuXG4gKi9cbmV4cG9ydCB0eXBlIFRlbXBsYXRlUmVzdWx0PFQgZXh0ZW5kcyBSZXN1bHRUeXBlID0gUmVzdWx0VHlwZT4gPVxuICBVbmNvbXBpbGVkVGVtcGxhdGVSZXN1bHQ8VD47XG5cbmV4cG9ydCB0eXBlIEhUTUxUZW1wbGF0ZVJlc3VsdCA9IFRlbXBsYXRlUmVzdWx0PHR5cGVvZiBIVE1MX1JFU1VMVD47XG5cbmV4cG9ydCB0eXBlIFNWR1RlbXBsYXRlUmVzdWx0ID0gVGVtcGxhdGVSZXN1bHQ8dHlwZW9mIFNWR19SRVNVTFQ+O1xuXG5leHBvcnQgdHlwZSBNYXRoTUxUZW1wbGF0ZVJlc3VsdCA9IFRlbXBsYXRlUmVzdWx0PHR5cGVvZiBNQVRITUxfUkVTVUxUPjtcblxuLyoqXG4gKiBBIFRlbXBsYXRlUmVzdWx0IHRoYXQgaGFzIGJlZW4gY29tcGlsZWQgYnkgQGxpdC1sYWJzL2NvbXBpbGVyLCBza2lwcGluZyB0aGVcbiAqIHByZXBhcmUgc3RlcC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21waWxlZFRlbXBsYXRlUmVzdWx0IHtcbiAgLy8gVGhpcyBpcyBhIGZhY3RvcnkgaW4gb3JkZXIgdG8gbWFrZSB0ZW1wbGF0ZSBpbml0aWFsaXphdGlvbiBsYXp5XG4gIC8vIGFuZCBhbGxvdyBTaGFkeVJlbmRlck9wdGlvbnMgc2NvcGUgdG8gYmUgcGFzc2VkIGluLlxuICAvLyBUaGlzIHByb3BlcnR5IG5lZWRzIHRvIHJlbWFpbiB1bm1pbmlmaWVkLlxuICBbJ18kbGl0VHlwZSQnXTogQ29tcGlsZWRUZW1wbGF0ZTtcbiAgdmFsdWVzOiB1bmtub3duW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGlsZWRUZW1wbGF0ZSBleHRlbmRzIE9taXQ8VGVtcGxhdGUsICdlbCc+IHtcbiAgLy8gZWwgaXMgb3ZlcnJpZGRlbiB0byBiZSBvcHRpb25hbC4gV2UgaW5pdGlhbGl6ZSBpdCBvbiBmaXJzdCByZW5kZXJcbiAgZWw/OiBIVE1MVGVtcGxhdGVFbGVtZW50O1xuXG4gIC8vIFRoZSBwcmVwYXJlZCBIVE1MIHN0cmluZyB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBlbGVtZW50IGZyb20uXG4gIC8vIFRoZSB0eXBlIGlzIGEgVGVtcGxhdGVTdHJpbmdzQXJyYXkgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIHZhbHVlIGNhbWUgZnJvbVxuICAvLyBzb3VyY2UgY29kZSwgcHJldmVudGluZyBhIEpTT04gaW5qZWN0aW9uIGF0dGFjay5cbiAgaDogVGVtcGxhdGVTdHJpbmdzQXJyYXk7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgdGVtcGxhdGUgbGl0ZXJhbCB0YWcgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgVGVtcGxhdGVSZXN1bHQgd2l0aFxuICogdGhlIGdpdmVuIHJlc3VsdCB0eXBlLlxuICovXG5jb25zdCB0YWcgPVxuICA8VCBleHRlbmRzIFJlc3VsdFR5cGU+KHR5cGU6IFQpID0+XG4gIChzdHJpbmdzOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSwgLi4udmFsdWVzOiB1bmtub3duW10pOiBUZW1wbGF0ZVJlc3VsdDxUPiA9PiB7XG4gICAgLy8gV2FybiBhZ2FpbnN0IHRlbXBsYXRlcyBvY3RhbCBlc2NhcGUgc2VxdWVuY2VzXG4gICAgLy8gV2UgZG8gdGhpcyBoZXJlIHJhdGhlciB0aGFuIGluIHJlbmRlciBzbyB0aGF0IHRoZSB3YXJuaW5nIGlzIGNsb3NlciB0byB0aGVcbiAgICAvLyB0ZW1wbGF0ZSBkZWZpbml0aW9uLlxuICAgIGlmIChERVZfTU9ERSAmJiBzdHJpbmdzLnNvbWUoKHMpID0+IHMgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1NvbWUgdGVtcGxhdGUgc3RyaW5ncyBhcmUgdW5kZWZpbmVkLlxcbicgK1xuICAgICAgICAgICdUaGlzIGlzIHByb2JhYmx5IGNhdXNlZCBieSBpbGxlZ2FsIG9jdGFsIGVzY2FwZSBzZXF1ZW5jZXMuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKERFVl9NT0RFKSB7XG4gICAgICAvLyBJbXBvcnQgc3RhdGljLWh0bWwuanMgcmVzdWx0cyBpbiBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2hpY2ggZzMgZG9lc24ndFxuICAgICAgLy8gaGFuZGxlLiBJbnN0ZWFkIHdlIGtub3cgdGhhdCBzdGF0aWMgdmFsdWVzIG11c3QgaGF2ZSB0aGUgZmllbGRcbiAgICAgIC8vIGBfJGxpdFN0YXRpYyRgLlxuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZXMuc29tZSgodmFsKSA9PiAodmFsIGFzIHtfJGxpdFN0YXRpYyQ6IHVua25vd259KT8uWydfJGxpdFN0YXRpYyQnXSlcbiAgICAgICkge1xuICAgICAgICBpc3N1ZVdhcm5pbmcoXG4gICAgICAgICAgJycsXG4gICAgICAgICAgYFN0YXRpYyB2YWx1ZXMgJ2xpdGVyYWwnIG9yICd1bnNhZmVTdGF0aWMnIGNhbm5vdCBiZSB1c2VkIGFzIHZhbHVlcyB0byBub24tc3RhdGljIHRlbXBsYXRlcy5cXG5gICtcbiAgICAgICAgICAgIGBQbGVhc2UgdXNlIHRoZSBzdGF0aWMgJ2h0bWwnIHRhZyBmdW5jdGlvbi4gU2VlIGh0dHBzOi8vbGl0LmRldi9kb2NzL3RlbXBsYXRlcy9leHByZXNzaW9ucy8jc3RhdGljLWV4cHJlc3Npb25zYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgLy8gVGhpcyBwcm9wZXJ0eSBuZWVkcyB0byByZW1haW4gdW5taW5pZmllZC5cbiAgICAgIFsnXyRsaXRUeXBlJCddOiB0eXBlLFxuICAgICAgc3RyaW5ncyxcbiAgICAgIHZhbHVlcyxcbiAgICB9O1xuICB9O1xuXG4vKipcbiAqIEludGVycHJldHMgYSB0ZW1wbGF0ZSBsaXRlcmFsIGFzIGFuIEhUTUwgdGVtcGxhdGUgdGhhdCBjYW4gZWZmaWNpZW50bHlcbiAqIHJlbmRlciB0byBhbmQgdXBkYXRlIGEgY29udGFpbmVyLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBoZWFkZXIgPSAodGl0bGU6IHN0cmluZykgPT4gaHRtbGA8aDE+JHt0aXRsZX08L2gxPmA7XG4gKiBgYGBcbiAqXG4gKiBUaGUgYGh0bWxgIHRhZyByZXR1cm5zIGEgZGVzY3JpcHRpb24gb2YgdGhlIERPTSB0byByZW5kZXIgYXMgYSB2YWx1ZS4gSXQgaXNcbiAqIGxhenksIG1lYW5pbmcgbm8gd29yayBpcyBkb25lIHVudGlsIHRoZSB0ZW1wbGF0ZSBpcyByZW5kZXJlZC4gV2hlbiByZW5kZXJpbmcsXG4gKiBpZiBhIHRlbXBsYXRlIGNvbWVzIGZyb20gdGhlIHNhbWUgZXhwcmVzc2lvbiBhcyBhIHByZXZpb3VzbHkgcmVuZGVyZWQgcmVzdWx0LFxuICogaXQncyBlZmZpY2llbnRseSB1cGRhdGVkIGluc3RlYWQgb2YgcmVwbGFjZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBodG1sID0gdGFnKEhUTUxfUkVTVUxUKTtcblxuLyoqXG4gKiBJbnRlcnByZXRzIGEgdGVtcGxhdGUgbGl0ZXJhbCBhcyBhbiBTVkcgZnJhZ21lbnQgdGhhdCBjYW4gZWZmaWNpZW50bHkgcmVuZGVyXG4gKiB0byBhbmQgdXBkYXRlIGEgY29udGFpbmVyLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCByZWN0ID0gc3ZnYDxyZWN0IHdpZHRoPVwiMTBcIiBoZWlnaHQ9XCIxMFwiPjwvcmVjdD5gO1xuICpcbiAqIGNvbnN0IG15SW1hZ2UgPSBodG1sYFxuICogICA8c3ZnIHZpZXdCb3g9XCIwIDAgMTAgMTBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gKiAgICAgJHtyZWN0fVxuICogICA8L3N2Zz5gO1xuICogYGBgXG4gKlxuICogVGhlIGBzdmdgICp0YWcgZnVuY3Rpb24qIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIFNWRyBmcmFnbWVudHMsIG9yIGVsZW1lbnRzXG4gKiB0aGF0IHdvdWxkIGJlIGNvbnRhaW5lZCAqKmluc2lkZSoqIGFuIGA8c3ZnPmAgSFRNTCBlbGVtZW50LiBBIGNvbW1vbiBlcnJvciBpc1xuICogcGxhY2luZyBhbiBgPHN2Zz5gICplbGVtZW50KiBpbiBhIHRlbXBsYXRlIHRhZ2dlZCB3aXRoIHRoZSBgc3ZnYCB0YWdcbiAqIGZ1bmN0aW9uLiBUaGUgYDxzdmc+YCBlbGVtZW50IGlzIGFuIEhUTUwgZWxlbWVudCBhbmQgc2hvdWxkIGJlIHVzZWQgd2l0aGluIGFcbiAqIHRlbXBsYXRlIHRhZ2dlZCB3aXRoIHRoZSB7QGxpbmtjb2RlIGh0bWx9IHRhZyBmdW5jdGlvbi5cbiAqXG4gKiBJbiBMaXRFbGVtZW50IHVzYWdlLCBpdCdzIGludmFsaWQgdG8gcmV0dXJuIGFuIFNWRyBmcmFnbWVudCBmcm9tIHRoZVxuICogYHJlbmRlcigpYCBtZXRob2QsIGFzIHRoZSBTVkcgZnJhZ21lbnQgd2lsbCBiZSBjb250YWluZWQgd2l0aGluIHRoZSBlbGVtZW50J3NcbiAqIHNoYWRvdyByb290IGFuZCB0aHVzIG5vdCBiZSBwcm9wZXJseSBjb250YWluZWQgd2l0aGluIGFuIGA8c3ZnPmAgSFRNTFxuICogZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IHN2ZyA9IHRhZyhTVkdfUkVTVUxUKTtcblxuLyoqXG4gKiBJbnRlcnByZXRzIGEgdGVtcGxhdGUgbGl0ZXJhbCBhcyBNYXRoTUwgZnJhZ21lbnQgdGhhdCBjYW4gZWZmaWNpZW50bHkgcmVuZGVyXG4gKiB0byBhbmQgdXBkYXRlIGEgY29udGFpbmVyLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBudW0gPSBtYXRobWxgPG1uPjE8L21uPmA7XG4gKlxuICogY29uc3QgZXEgPSBodG1sYFxuICogICA8bWF0aD5cbiAqICAgICAke251bX1cbiAqICAgPC9tYXRoPmA7XG4gKiBgYGBcbiAqXG4gKiBUaGUgYG1hdGhtbGAgKnRhZyBmdW5jdGlvbiogc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgTWF0aE1MIGZyYWdtZW50cywgb3JcbiAqIGVsZW1lbnRzIHRoYXQgd291bGQgYmUgY29udGFpbmVkICoqaW5zaWRlKiogYSBgPG1hdGg+YCBIVE1MIGVsZW1lbnQuIEEgY29tbW9uXG4gKiBlcnJvciBpcyBwbGFjaW5nIGEgYDxtYXRoPmAgKmVsZW1lbnQqIGluIGEgdGVtcGxhdGUgdGFnZ2VkIHdpdGggdGhlIGBtYXRobWxgXG4gKiB0YWcgZnVuY3Rpb24uIFRoZSBgPG1hdGg+YCBlbGVtZW50IGlzIGFuIEhUTUwgZWxlbWVudCBhbmQgc2hvdWxkIGJlIHVzZWRcbiAqIHdpdGhpbiBhIHRlbXBsYXRlIHRhZ2dlZCB3aXRoIHRoZSB7QGxpbmtjb2RlIGh0bWx9IHRhZyBmdW5jdGlvbi5cbiAqXG4gKiBJbiBMaXRFbGVtZW50IHVzYWdlLCBpdCdzIGludmFsaWQgdG8gcmV0dXJuIGFuIE1hdGhNTCBmcmFnbWVudCBmcm9tIHRoZVxuICogYHJlbmRlcigpYCBtZXRob2QsIGFzIHRoZSBNYXRoTUwgZnJhZ21lbnQgd2lsbCBiZSBjb250YWluZWQgd2l0aGluIHRoZVxuICogZWxlbWVudCdzIHNoYWRvdyByb290IGFuZCB0aHVzIG5vdCBiZSBwcm9wZXJseSBjb250YWluZWQgd2l0aGluIGEgYDxtYXRoPmBcbiAqIEhUTUwgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IG1hdGhtbCA9IHRhZyhNQVRITUxfUkVTVUxUKTtcblxuLyoqXG4gKiBBIHNlbnRpbmVsIHZhbHVlIHRoYXQgc2lnbmFscyB0aGF0IGEgdmFsdWUgd2FzIGhhbmRsZWQgYnkgYSBkaXJlY3RpdmUgYW5kXG4gKiBzaG91bGQgbm90IGJlIHdyaXR0ZW4gdG8gdGhlIERPTS5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vQ2hhbmdlID0gU3ltYm9sLmZvcignbGl0LW5vQ2hhbmdlJyk7XG5cbi8qKlxuICogQSBzZW50aW5lbCB2YWx1ZSB0aGF0IHNpZ25hbHMgYSBDaGlsZFBhcnQgdG8gZnVsbHkgY2xlYXIgaXRzIGNvbnRlbnQuXG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IGJ1dHRvbiA9IGh0bWxgJHtcbiAqICB1c2VyLmlzQWRtaW5cbiAqICAgID8gaHRtbGA8YnV0dG9uPkRFTEVURTwvYnV0dG9uPmBcbiAqICAgIDogbm90aGluZ1xuICogfWA7XG4gKiBgYGBcbiAqXG4gKiBQcmVmZXIgdXNpbmcgYG5vdGhpbmdgIG92ZXIgb3RoZXIgZmFsc3kgdmFsdWVzIGFzIGl0IHByb3ZpZGVzIGEgY29uc2lzdGVudFxuICogYmVoYXZpb3IgYmV0d2VlbiB2YXJpb3VzIGV4cHJlc3Npb24gYmluZGluZyBjb250ZXh0cy5cbiAqXG4gKiBJbiBjaGlsZCBleHByZXNzaW9ucywgYHVuZGVmaW5lZGAsIGBudWxsYCwgYCcnYCwgYW5kIGBub3RoaW5nYCBhbGwgYmVoYXZlIHRoZVxuICogc2FtZSBhbmQgcmVuZGVyIG5vIG5vZGVzLiBJbiBhdHRyaWJ1dGUgZXhwcmVzc2lvbnMsIGBub3RoaW5nYCBfcmVtb3Zlc18gdGhlXG4gKiBhdHRyaWJ1dGUsIHdoaWxlIGB1bmRlZmluZWRgIGFuZCBgbnVsbGAgd2lsbCByZW5kZXIgYW4gZW1wdHkgc3RyaW5nLiBJblxuICogcHJvcGVydHkgZXhwcmVzc2lvbnMgYG5vdGhpbmdgIGJlY29tZXMgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBjb25zdCBub3RoaW5nID0gU3ltYm9sLmZvcignbGl0LW5vdGhpbmcnKTtcblxuLyoqXG4gKiBUaGUgY2FjaGUgb2YgcHJlcGFyZWQgdGVtcGxhdGVzLCBrZXllZCBieSB0aGUgdGFnZ2VkIFRlbXBsYXRlU3RyaW5nc0FycmF5XG4gKiBhbmQgX25vdF8gYWNjb3VudGluZyBmb3IgdGhlIHNwZWNpZmljIHRlbXBsYXRlIHRhZyB1c2VkLiBUaGlzIG1lYW5zIHRoYXRcbiAqIHRlbXBsYXRlIHRhZ3MgY2Fubm90IGJlIGR5bmFtaWMgLSB0aGV5IG11c3Qgc3RhdGljYWxseSBiZSBvbmUgb2YgaHRtbCwgc3ZnLFxuICogb3IgYXR0ci4gVGhpcyByZXN0cmljdGlvbiBzaW1wbGlmaWVzIHRoZSBjYWNoZSBsb29rdXAsIHdoaWNoIGlzIG9uIHRoZSBob3RcbiAqIHBhdGggZm9yIHJlbmRlcmluZy5cbiAqL1xuY29uc3QgdGVtcGxhdGVDYWNoZSA9IG5ldyBXZWFrTWFwPFRlbXBsYXRlU3RyaW5nc0FycmF5LCBUZW1wbGF0ZT4oKTtcblxuLyoqXG4gKiBPYmplY3Qgc3BlY2lmeWluZyBvcHRpb25zIGZvciBjb250cm9sbGluZyBsaXQtaHRtbCByZW5kZXJpbmcuIE5vdGUgdGhhdFxuICogd2hpbGUgYHJlbmRlcmAgbWF5IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBgY29udGFpbmVyYCAoYW5kXG4gKiBgcmVuZGVyQmVmb3JlYCByZWZlcmVuY2Ugbm9kZSkgdG8gZWZmaWNpZW50bHkgdXBkYXRlIHRoZSByZW5kZXJlZCBjb250ZW50LFxuICogb25seSB0aGUgb3B0aW9ucyBwYXNzZWQgaW4gZHVyaW5nIHRoZSBmaXJzdCByZW5kZXIgYXJlIHJlc3BlY3RlZCBkdXJpbmdcbiAqIHRoZSBsaWZldGltZSBvZiByZW5kZXJzIHRvIHRoYXQgdW5pcXVlIGBjb250YWluZXJgICsgYHJlbmRlckJlZm9yZWBcbiAqIGNvbWJpbmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlck9wdGlvbnMge1xuICAvKipcbiAgICogQW4gb2JqZWN0IHRvIHVzZSBhcyB0aGUgYHRoaXNgIHZhbHVlIGZvciBldmVudCBsaXN0ZW5lcnMuIEl0J3Mgb2Z0ZW5cbiAgICogdXNlZnVsIHRvIHNldCB0aGlzIHRvIHRoZSBob3N0IGNvbXBvbmVudCByZW5kZXJpbmcgYSB0ZW1wbGF0ZS5cbiAgICovXG4gIGhvc3Q/OiBvYmplY3Q7XG4gIC8qKlxuICAgKiBBIERPTSBub2RlIGJlZm9yZSB3aGljaCB0byByZW5kZXIgY29udGVudCBpbiB0aGUgY29udGFpbmVyLlxuICAgKi9cbiAgcmVuZGVyQmVmb3JlPzogQ2hpbGROb2RlIHwgbnVsbDtcbiAgLyoqXG4gICAqIE5vZGUgdXNlZCBmb3IgY2xvbmluZyB0aGUgdGVtcGxhdGUgKGBpbXBvcnROb2RlYCB3aWxsIGJlIGNhbGxlZCBvbiB0aGlzXG4gICAqIG5vZGUpLiBUaGlzIGNvbnRyb2xzIHRoZSBgb3duZXJEb2N1bWVudGAgb2YgdGhlIHJlbmRlcmVkIERPTSwgYWxvbmcgd2l0aFxuICAgKiBhbnkgaW5oZXJpdGVkIGNvbnRleHQuIERlZmF1bHRzIHRvIHRoZSBnbG9iYWwgYGRvY3VtZW50YC5cbiAgICovXG4gIGNyZWF0aW9uU2NvcGU/OiB7aW1wb3J0Tm9kZShub2RlOiBOb2RlLCBkZWVwPzogYm9vbGVhbik6IE5vZGV9O1xuICAvKipcbiAgICogVGhlIGluaXRpYWwgY29ubmVjdGVkIHN0YXRlIGZvciB0aGUgdG9wLWxldmVsIHBhcnQgYmVpbmcgcmVuZGVyZWQuIElmIG5vXG4gICAqIGBpc0Nvbm5lY3RlZGAgb3B0aW9uIGlzIHNldCwgYEFzeW5jRGlyZWN0aXZlYHMgd2lsbCBiZSBjb25uZWN0ZWQgYnlcbiAgICogZGVmYXVsdC4gU2V0IHRvIGBmYWxzZWAgaWYgdGhlIGluaXRpYWwgcmVuZGVyIG9jY3VycyBpbiBhIGRpc2Nvbm5lY3RlZCB0cmVlXG4gICAqIGFuZCBgQXN5bmNEaXJlY3RpdmVgcyBzaG91bGQgc2VlIGBpc0Nvbm5lY3RlZCA9PT0gZmFsc2VgIGZvciB0aGVpciBpbml0aWFsXG4gICAqIHJlbmRlci4gVGhlIGBwYXJ0LnNldENvbm5lY3RlZCgpYCBtZXRob2QgbXVzdCBiZSB1c2VkIHN1YnNlcXVlbnQgdG8gaW5pdGlhbFxuICAgKiByZW5kZXIgdG8gY2hhbmdlIHRoZSBjb25uZWN0ZWQgc3RhdGUgb2YgdGhlIHBhcnQuXG4gICAqL1xuICBpc0Nvbm5lY3RlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIHJvb3QgRE9NIG5vZGUgZm9yIHJlbmRlcmluZy5cbiAqL1xuZXhwb3J0IHR5cGUgUmVuZGVyUm9vdE5vZGUgPSBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50O1xuXG5jb25zdCB3YWxrZXIgPSBkLmNyZWF0ZVRyZWVXYWxrZXIoXG4gIGQsXG4gIDEyOSAvKiBOb2RlRmlsdGVyLlNIT1dfe0VMRU1FTlR8Q09NTUVOVH0gKi9cbik7XG5cbmxldCBzYW5pdGl6ZXJGYWN0b3J5SW50ZXJuYWw6IFNhbml0aXplckZhY3RvcnkgPSBub29wU2FuaXRpemVyO1xuXG4vL1xuLy8gQ2xhc3NlcyBvbmx5IGJlbG93IGhlcmUsIGNvbnN0IHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBvbmx5IGFib3ZlIGhlcmUuLi5cbi8vXG4vLyBLZWVwaW5nIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBhbmQgY2xhc3NlcyB0b2dldGhlciBpbXByb3ZlcyBtaW5pZmljYXRpb24uXG4vLyBJbnRlcmZhY2VzIGFuZCB0eXBlIGFsaWFzZXMgY2FuIGJlIGludGVybGVhdmVkIGZyZWVseS5cbi8vXG5cbi8vIFR5cGUgZm9yIGNsYXNzZXMgdGhhdCBoYXZlIGEgYF9kaXJlY3RpdmVgIG9yIGBfZGlyZWN0aXZlc1tdYCBmaWVsZCwgdXNlZCBieVxuLy8gYHJlc29sdmVEaXJlY3RpdmVgXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGl2ZVBhcmVudCB7XG4gIF8kcGFyZW50PzogRGlyZWN0aXZlUGFyZW50O1xuICBfJGlzQ29ubmVjdGVkOiBib29sZWFuO1xuICBfX2RpcmVjdGl2ZT86IERpcmVjdGl2ZTtcbiAgX19kaXJlY3RpdmVzPzogQXJyYXk8RGlyZWN0aXZlIHwgdW5kZWZpbmVkPjtcbn1cblxuZnVuY3Rpb24gdHJ1c3RGcm9tVGVtcGxhdGVTdHJpbmcoXG4gIHRzYTogVGVtcGxhdGVTdHJpbmdzQXJyYXksXG4gIHN0cmluZ0Zyb21UU0E6IHN0cmluZ1xuKTogVHJ1c3RlZEhUTUwge1xuICAvLyBBIHNlY3VyaXR5IGNoZWNrIHRvIHByZXZlbnQgc3Bvb2Zpbmcgb2YgTGl0IHRlbXBsYXRlIHJlc3VsdHMuXG4gIC8vIEluIHRoZSBmdXR1cmUsIHdlIG1heSBiZSBhYmxlIHRvIHJlcGxhY2UgdGhpcyB3aXRoIEFycmF5LmlzVGVtcGxhdGVPYmplY3QsXG4gIC8vIHRob3VnaCB3ZSBtaWdodCBuZWVkIHRvIG1ha2UgdGhhdCBjaGVjayBpbnNpZGUgb2YgdGhlIGh0bWwgYW5kIHN2Z1xuICAvLyBmdW5jdGlvbnMsIGJlY2F1c2UgcHJlY29tcGlsZWQgdGVtcGxhdGVzIGRvbid0IGNvbWUgaW4gYXNcbiAgLy8gVGVtcGxhdGVTdHJpbmdBcnJheSBvYmplY3RzLlxuICBpZiAoIWlzQXJyYXkodHNhKSB8fCAhdHNhLmhhc093blByb3BlcnR5KCdyYXcnKSkge1xuICAgIGxldCBtZXNzYWdlID0gJ2ludmFsaWQgdGVtcGxhdGUgc3RyaW5ncyBhcnJheSc7XG4gICAgaWYgKERFVl9NT0RFKSB7XG4gICAgICBtZXNzYWdlID0gYFxuICAgICAgICAgIEludGVybmFsIEVycm9yOiBleHBlY3RlZCB0ZW1wbGF0ZSBzdHJpbmdzIHRvIGJlIGFuIGFycmF5XG4gICAgICAgICAgd2l0aCBhICdyYXcnIGZpZWxkLiBGYWtpbmcgYSB0ZW1wbGF0ZSBzdHJpbmdzIGFycmF5IGJ5XG4gICAgICAgICAgY2FsbGluZyBodG1sIG9yIHN2ZyBsaWtlIGFuIG9yZGluYXJ5IGZ1bmN0aW9uIGlzIGVmZmVjdGl2ZWx5XG4gICAgICAgICAgdGhlIHNhbWUgYXMgY2FsbGluZyB1bnNhZmVIdG1sIGFuZCBjYW4gbGVhZCB0byBtYWpvciBzZWN1cml0eVxuICAgICAgICAgIGlzc3VlcywgZS5nLiBvcGVuaW5nIHlvdXIgY29kZSB1cCB0byBYU1MgYXR0YWNrcy5cbiAgICAgICAgICBJZiB5b3UncmUgdXNpbmcgdGhlIGh0bWwgb3Igc3ZnIHRhZ2dlZCB0ZW1wbGF0ZSBmdW5jdGlvbnMgbm9ybWFsbHlcbiAgICAgICAgICBhbmQgc3RpbGwgc2VlaW5nIHRoaXMgZXJyb3IsIHBsZWFzZSBmaWxlIGEgYnVnIGF0XG4gICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2xpdC9saXQvaXNzdWVzL25ldz90ZW1wbGF0ZT1idWdfcmVwb3J0Lm1kXG4gICAgICAgICAgYW5kIGluY2x1ZGUgaW5mb3JtYXRpb24gYWJvdXQgeW91ciBidWlsZCB0b29saW5nLCBpZiBhbnkuXG4gICAgICAgIGBcbiAgICAgICAgLnRyaW0oKVxuICAgICAgICAucmVwbGFjZSgvXFxuICovZywgJ1xcbicpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH1cbiAgcmV0dXJuIHBvbGljeSAhPT0gdW5kZWZpbmVkXG4gICAgPyBwb2xpY3kuY3JlYXRlSFRNTChzdHJpbmdGcm9tVFNBKVxuICAgIDogKHN0cmluZ0Zyb21UU0EgYXMgdW5rbm93biBhcyBUcnVzdGVkSFRNTCk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBIVE1MIHN0cmluZyBmb3IgdGhlIGdpdmVuIFRlbXBsYXRlU3RyaW5nc0FycmF5IGFuZCByZXN1bHQgdHlwZVxuICogKEhUTUwgb3IgU1ZHKSwgYWxvbmcgd2l0aCB0aGUgY2FzZS1zZW5zaXRpdmUgYm91bmQgYXR0cmlidXRlIG5hbWVzIGluXG4gKiB0ZW1wbGF0ZSBvcmRlci4gVGhlIEhUTUwgY29udGFpbnMgY29tbWVudCBtYXJrZXJzIGRlbm90aW5nIHRoZSBgQ2hpbGRQYXJ0YHNcbiAqIGFuZCBzdWZmaXhlcyBvbiBib3VuZCBhdHRyaWJ1dGVzIGRlbm90aW5nIHRoZSBgQXR0cmlidXRlUGFydHNgLlxuICpcbiAqIEBwYXJhbSBzdHJpbmdzIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXlcbiAqIEBwYXJhbSB0eXBlIEhUTUwgb3IgU1ZHXG4gKiBAcmV0dXJuIEFycmF5IGNvbnRhaW5pbmcgYFtodG1sLCBhdHRyTmFtZXNdYCAoYXJyYXkgcmV0dXJuZWQgZm9yIHRlcnNlbmVzcyxcbiAqICAgICB0byBhdm9pZCBvYmplY3QgZmllbGRzIHNpbmNlIHRoaXMgY29kZSBpcyBzaGFyZWQgd2l0aCBub24tbWluaWZpZWQgU1NSXG4gKiAgICAgY29kZSlcbiAqL1xuY29uc3QgZ2V0VGVtcGxhdGVIdG1sID0gKFxuICBzdHJpbmdzOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSxcbiAgdHlwZTogUmVzdWx0VHlwZVxuKTogW1RydXN0ZWRIVE1MLCBBcnJheTxzdHJpbmc+XSA9PiB7XG4gIC8vIEluc2VydCBtYWtlcnMgaW50byB0aGUgdGVtcGxhdGUgSFRNTCB0byByZXByZXNlbnQgdGhlIHBvc2l0aW9uIG9mXG4gIC8vIGJpbmRpbmdzLiBUaGUgZm9sbG93aW5nIGNvZGUgc2NhbnMgdGhlIHRlbXBsYXRlIHN0cmluZ3MgdG8gZGV0ZXJtaW5lIHRoZVxuICAvLyBzeW50YWN0aWMgcG9zaXRpb24gb2YgdGhlIGJpbmRpbmdzLiBUaGV5IGNhbiBiZSBpbiB0ZXh0IHBvc2l0aW9uLCB3aGVyZVxuICAvLyB3ZSBpbnNlcnQgYW4gSFRNTCBjb21tZW50LCBhdHRyaWJ1dGUgdmFsdWUgcG9zaXRpb24sIHdoZXJlIHdlIGluc2VydCBhXG4gIC8vIHNlbnRpbmVsIHN0cmluZyBhbmQgcmUtd3JpdGUgdGhlIGF0dHJpYnV0ZSBuYW1lLCBvciBpbnNpZGUgYSB0YWcgd2hlcmVcbiAgLy8gd2UgaW5zZXJ0IHRoZSBzZW50aW5lbCBzdHJpbmcuXG4gIGNvbnN0IGwgPSBzdHJpbmdzLmxlbmd0aCAtIDE7XG4gIC8vIFN0b3JlcyB0aGUgY2FzZS1zZW5zaXRpdmUgYm91bmQgYXR0cmlidXRlIG5hbWVzIGluIHRoZSBvcmRlciBvZiB0aGVpclxuICAvLyBwYXJ0cy4gRWxlbWVudFBhcnRzIGFyZSBhbHNvIHJlZmxlY3RlZCBpbiB0aGlzIGFycmF5IGFzIHVuZGVmaW5lZFxuICAvLyByYXRoZXIgdGhhbiBhIHN0cmluZywgdG8gZGlzYW1iaWd1YXRlIGZyb20gYXR0cmlidXRlIGJpbmRpbmdzLlxuICBjb25zdCBhdHRyTmFtZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgbGV0IGh0bWwgPVxuICAgIHR5cGUgPT09IFNWR19SRVNVTFQgPyAnPHN2Zz4nIDogdHlwZSA9PT0gTUFUSE1MX1JFU1VMVCA/ICc8bWF0aD4nIDogJyc7XG5cbiAgLy8gV2hlbiB3ZSdyZSBpbnNpZGUgYSByYXcgdGV4dCB0YWcgKG5vdCBpdCdzIHRleHQgY29udGVudCksIHRoZSByZWdleFxuICAvLyB3aWxsIHN0aWxsIGJlIHRhZ1JlZ2V4IHNvIHdlIGNhbiBmaW5kIGF0dHJpYnV0ZXMsIGJ1dCB3aWxsIHN3aXRjaCB0b1xuICAvLyB0aGlzIHJlZ2V4IHdoZW4gdGhlIHRhZyBlbmRzLlxuICBsZXQgcmF3VGV4dEVuZFJlZ2V4OiBSZWdFeHAgfCB1bmRlZmluZWQ7XG5cbiAgLy8gVGhlIGN1cnJlbnQgcGFyc2luZyBzdGF0ZSwgcmVwcmVzZW50ZWQgYXMgYSByZWZlcmVuY2UgdG8gb25lIG9mIHRoZVxuICAvLyByZWdleGVzXG4gIGxldCByZWdleCA9IHRleHRFbmRSZWdleDtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGw7IGkrKykge1xuICAgIGNvbnN0IHMgPSBzdHJpbmdzW2ldO1xuICAgIC8vIFRoZSBpbmRleCBvZiB0aGUgZW5kIG9mIHRoZSBsYXN0IGF0dHJpYnV0ZSBuYW1lLiBXaGVuIHRoaXMgaXNcbiAgICAvLyBwb3NpdGl2ZSBhdCBlbmQgb2YgYSBzdHJpbmcsIGl0IG1lYW5zIHdlJ3JlIGluIGFuIGF0dHJpYnV0ZSB2YWx1ZVxuICAgIC8vIHBvc2l0aW9uIGFuZCBuZWVkIHRvIHJld3JpdGUgdGhlIGF0dHJpYnV0ZSBuYW1lLlxuICAgIC8vIFdlIGFsc28gdXNlIGEgc3BlY2lhbCB2YWx1ZSBvZiAtMiB0byBpbmRpY2F0ZSB0aGF0IHdlIGVuY291bnRlcmVkXG4gICAgLy8gdGhlIGVuZCBvZiBhIHN0cmluZyBpbiBhdHRyaWJ1dGUgbmFtZSBwb3NpdGlvbi5cbiAgICBsZXQgYXR0ck5hbWVFbmRJbmRleCA9IC0xO1xuICAgIGxldCBhdHRyTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBsYXN0SW5kZXggPSAwO1xuICAgIGxldCBtYXRjaCE6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGw7XG5cbiAgICAvLyBUaGUgY29uZGl0aW9ucyBpbiB0aGlzIGxvb3AgaGFuZGxlIHRoZSBjdXJyZW50IHBhcnNlIHN0YXRlLCBhbmQgdGhlXG4gICAgLy8gYXNzaWdubWVudHMgdG8gdGhlIGByZWdleGAgdmFyaWFibGUgYXJlIHRoZSBzdGF0ZSB0cmFuc2l0aW9ucy5cbiAgICB3aGlsZSAobGFzdEluZGV4IDwgcy5sZW5ndGgpIHtcbiAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBzdGFydCBzZWFyY2hpbmcgZnJvbSB3aGVyZSB3ZSBwcmV2aW91c2x5IGxlZnQgb2ZmXG4gICAgICByZWdleC5sYXN0SW5kZXggPSBsYXN0SW5kZXg7XG4gICAgICBtYXRjaCA9IHJlZ2V4LmV4ZWMocyk7XG4gICAgICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBsYXN0SW5kZXggPSByZWdleC5sYXN0SW5kZXg7XG4gICAgICBpZiAocmVnZXggPT09IHRleHRFbmRSZWdleCkge1xuICAgICAgICBpZiAobWF0Y2hbQ09NTUVOVF9TVEFSVF0gPT09ICchLS0nKSB7XG4gICAgICAgICAgcmVnZXggPSBjb21tZW50RW5kUmVnZXg7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2hbQ09NTUVOVF9TVEFSVF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIFdlIHN0YXJ0ZWQgYSB3ZWlyZCBjb21tZW50LCBsaWtlIDwve1xuICAgICAgICAgIHJlZ2V4ID0gY29tbWVudDJFbmRSZWdleDtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaFtUQUdfTkFNRV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmIChyYXdUZXh0RWxlbWVudC50ZXN0KG1hdGNoW1RBR19OQU1FXSkpIHtcbiAgICAgICAgICAgIC8vIFJlY29yZCBpZiB3ZSBlbmNvdW50ZXIgYSByYXctdGV4dCBlbGVtZW50LiBXZSdsbCBzd2l0Y2ggdG9cbiAgICAgICAgICAgIC8vIHRoaXMgcmVnZXggYXQgdGhlIGVuZCBvZiB0aGUgdGFnLlxuICAgICAgICAgICAgcmF3VGV4dEVuZFJlZ2V4ID0gbmV3IFJlZ0V4cChgPC8ke21hdGNoW1RBR19OQU1FXX1gLCAnZycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZWdleCA9IHRhZ0VuZFJlZ2V4O1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoW0RZTkFNSUNfVEFHX05BTUVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoREVWX01PREUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgJ0JpbmRpbmdzIGluIHRhZyBuYW1lcyBhcmUgbm90IHN1cHBvcnRlZC4gUGxlYXNlIHVzZSBzdGF0aWMgdGVtcGxhdGVzIGluc3RlYWQuICcgK1xuICAgICAgICAgICAgICAgICdTZWUgaHR0cHM6Ly9saXQuZGV2L2RvY3MvdGVtcGxhdGVzL2V4cHJlc3Npb25zLyNzdGF0aWMtZXhwcmVzc2lvbnMnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZWdleCA9IHRhZ0VuZFJlZ2V4O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHJlZ2V4ID09PSB0YWdFbmRSZWdleCkge1xuICAgICAgICBpZiAobWF0Y2hbRU5USVJFX01BVENIXSA9PT0gJz4nKSB7XG4gICAgICAgICAgLy8gRW5kIG9mIGEgdGFnLiBJZiB3ZSBoYWQgc3RhcnRlZCBhIHJhdy10ZXh0IGVsZW1lbnQsIHVzZSB0aGF0XG4gICAgICAgICAgLy8gcmVnZXhcbiAgICAgICAgICByZWdleCA9IHJhd1RleHRFbmRSZWdleCA/PyB0ZXh0RW5kUmVnZXg7XG4gICAgICAgICAgLy8gV2UgbWF5IGJlIGVuZGluZyBhbiB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUsIHNvIG1ha2Ugc3VyZSB3ZVxuICAgICAgICAgIC8vIGNsZWFyIGFueSBwZW5kaW5nIGF0dHJOYW1lRW5kSW5kZXhcbiAgICAgICAgICBhdHRyTmFtZUVuZEluZGV4ID0gLTE7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2hbQVRUUklCVVRFX05BTUVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBBdHRyaWJ1dGUgbmFtZSBwb3NpdGlvblxuICAgICAgICAgIGF0dHJOYW1lRW5kSW5kZXggPSAtMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhdHRyTmFtZUVuZEluZGV4ID0gcmVnZXgubGFzdEluZGV4IC0gbWF0Y2hbU1BBQ0VTX0FORF9FUVVBTFNdLmxlbmd0aDtcbiAgICAgICAgICBhdHRyTmFtZSA9IG1hdGNoW0FUVFJJQlVURV9OQU1FXTtcbiAgICAgICAgICByZWdleCA9XG4gICAgICAgICAgICBtYXRjaFtRVU9URV9DSEFSXSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgID8gdGFnRW5kUmVnZXhcbiAgICAgICAgICAgICAgOiBtYXRjaFtRVU9URV9DSEFSXSA9PT0gJ1wiJ1xuICAgICAgICAgICAgICAgID8gZG91YmxlUXVvdGVBdHRyRW5kUmVnZXhcbiAgICAgICAgICAgICAgICA6IHNpbmdsZVF1b3RlQXR0ckVuZFJlZ2V4O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICByZWdleCA9PT0gZG91YmxlUXVvdGVBdHRyRW5kUmVnZXggfHxcbiAgICAgICAgcmVnZXggPT09IHNpbmdsZVF1b3RlQXR0ckVuZFJlZ2V4XG4gICAgICApIHtcbiAgICAgICAgcmVnZXggPSB0YWdFbmRSZWdleDtcbiAgICAgIH0gZWxzZSBpZiAocmVnZXggPT09IGNvbW1lbnRFbmRSZWdleCB8fCByZWdleCA9PT0gY29tbWVudDJFbmRSZWdleCkge1xuICAgICAgICByZWdleCA9IHRleHRFbmRSZWdleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vdCBvbmUgb2YgdGhlIGZpdmUgc3RhdGUgcmVnZXhlcywgc28gaXQgbXVzdCBiZSB0aGUgZHluYW1pY2FsbHlcbiAgICAgICAgLy8gY3JlYXRlZCByYXcgdGV4dCByZWdleCBhbmQgd2UncmUgYXQgdGhlIGNsb3NlIG9mIHRoYXQgZWxlbWVudC5cbiAgICAgICAgcmVnZXggPSB0YWdFbmRSZWdleDtcbiAgICAgICAgcmF3VGV4dEVuZFJlZ2V4ID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSBhIGF0dHJOYW1lRW5kSW5kZXgsIHdoaWNoIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZFxuICAgICAgLy8gcmV3cml0ZSB0aGUgYXR0cmlidXRlIG5hbWUsIGFzc2VydCB0aGF0IHdlJ3JlIGluIGEgdmFsaWQgYXR0cmlidXRlXG4gICAgICAvLyBwb3NpdGlvbiAtIGVpdGhlciBpbiBhIHRhZywgb3IgYSBxdW90ZWQgYXR0cmlidXRlIHZhbHVlLlxuICAgICAgY29uc29sZS5hc3NlcnQoXG4gICAgICAgIGF0dHJOYW1lRW5kSW5kZXggPT09IC0xIHx8XG4gICAgICAgICAgcmVnZXggPT09IHRhZ0VuZFJlZ2V4IHx8XG4gICAgICAgICAgcmVnZXggPT09IHNpbmdsZVF1b3RlQXR0ckVuZFJlZ2V4IHx8XG4gICAgICAgICAgcmVnZXggPT09IGRvdWJsZVF1b3RlQXR0ckVuZFJlZ2V4LFxuICAgICAgICAndW5leHBlY3RlZCBwYXJzZSBzdGF0ZSBCJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBXZSBoYXZlIGZvdXIgY2FzZXM6XG4gICAgLy8gIDEuIFdlJ3JlIGluIHRleHQgcG9zaXRpb24sIGFuZCBub3QgaW4gYSByYXcgdGV4dCBlbGVtZW50XG4gICAgLy8gICAgIChyZWdleCA9PT0gdGV4dEVuZFJlZ2V4KTogaW5zZXJ0IGEgY29tbWVudCBtYXJrZXIuXG4gICAgLy8gIDIuIFdlIGhhdmUgYSBub24tbmVnYXRpdmUgYXR0ck5hbWVFbmRJbmRleCB3aGljaCBtZWFucyB3ZSBuZWVkIHRvXG4gICAgLy8gICAgIHJld3JpdGUgdGhlIGF0dHJpYnV0ZSBuYW1lIHRvIGFkZCBhIGJvdW5kIGF0dHJpYnV0ZSBzdWZmaXguXG4gICAgLy8gIDMuIFdlJ3JlIGF0IHRoZSBub24tZmlyc3QgYmluZGluZyBpbiBhIG11bHRpLWJpbmRpbmcgYXR0cmlidXRlLCB1c2UgYVxuICAgIC8vICAgICBwbGFpbiBtYXJrZXIuXG4gICAgLy8gIDQuIFdlJ3JlIHNvbWV3aGVyZSBlbHNlIGluc2lkZSB0aGUgdGFnLiBJZiB3ZSdyZSBpbiBhdHRyaWJ1dGUgbmFtZVxuICAgIC8vICAgICBwb3NpdGlvbiAoYXR0ck5hbWVFbmRJbmRleCA9PT0gLTIpLCBhZGQgYSBzZXF1ZW50aWFsIHN1ZmZpeCB0b1xuICAgIC8vICAgICBnZW5lcmF0ZSBhIHVuaXF1ZSBhdHRyaWJ1dGUgbmFtZS5cblxuICAgIC8vIERldGVjdCBhIGJpbmRpbmcgbmV4dCB0byBzZWxmLWNsb3NpbmcgdGFnIGVuZCBhbmQgaW5zZXJ0IGEgc3BhY2UgdG9cbiAgICAvLyBzZXBhcmF0ZSB0aGUgbWFya2VyIGZyb20gdGhlIHRhZyBlbmQ6XG4gICAgY29uc3QgZW5kID1cbiAgICAgIHJlZ2V4ID09PSB0YWdFbmRSZWdleCAmJiBzdHJpbmdzW2kgKyAxXS5zdGFydHNXaXRoKCcvPicpID8gJyAnIDogJyc7XG4gICAgaHRtbCArPVxuICAgICAgcmVnZXggPT09IHRleHRFbmRSZWdleFxuICAgICAgICA/IHMgKyBub2RlTWFya2VyXG4gICAgICAgIDogYXR0ck5hbWVFbmRJbmRleCA+PSAwXG4gICAgICAgICAgPyAoYXR0ck5hbWVzLnB1c2goYXR0ck5hbWUhKSxcbiAgICAgICAgICAgIHMuc2xpY2UoMCwgYXR0ck5hbWVFbmRJbmRleCkgK1xuICAgICAgICAgICAgICBib3VuZEF0dHJpYnV0ZVN1ZmZpeCArXG4gICAgICAgICAgICAgIHMuc2xpY2UoYXR0ck5hbWVFbmRJbmRleCkpICtcbiAgICAgICAgICAgIG1hcmtlciArXG4gICAgICAgICAgICBlbmRcbiAgICAgICAgICA6IHMgKyBtYXJrZXIgKyAoYXR0ck5hbWVFbmRJbmRleCA9PT0gLTIgPyBpIDogZW5kKTtcbiAgfVxuXG4gIGNvbnN0IGh0bWxSZXN1bHQ6IHN0cmluZyB8IFRydXN0ZWRIVE1MID1cbiAgICBodG1sICtcbiAgICAoc3RyaW5nc1tsXSB8fCAnPD8+JykgK1xuICAgICh0eXBlID09PSBTVkdfUkVTVUxUID8gJzwvc3ZnPicgOiB0eXBlID09PSBNQVRITUxfUkVTVUxUID8gJzwvbWF0aD4nIDogJycpO1xuXG4gIC8vIFJldHVybmVkIGFzIGFuIGFycmF5IGZvciB0ZXJzZW5lc3NcbiAgcmV0dXJuIFt0cnVzdEZyb21UZW1wbGF0ZVN0cmluZyhzdHJpbmdzLCBodG1sUmVzdWx0KSwgYXR0ck5hbWVzXTtcbn07XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCB0eXBlIHtUZW1wbGF0ZX07XG5jbGFzcyBUZW1wbGF0ZSB7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZWwhOiBIVE1MVGVtcGxhdGVFbGVtZW50O1xuXG4gIHBhcnRzOiBBcnJheTxUZW1wbGF0ZVBhcnQ+ID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gVGhpcyBwcm9wZXJ0eSBuZWVkcyB0byByZW1haW4gdW5taW5pZmllZC5cbiAgICB7c3RyaW5ncywgWydfJGxpdFR5cGUkJ106IHR5cGV9OiBVbmNvbXBpbGVkVGVtcGxhdGVSZXN1bHQsXG4gICAgb3B0aW9ucz86IFJlbmRlck9wdGlvbnNcbiAgKSB7XG4gICAgbGV0IG5vZGU6IE5vZGUgfCBudWxsO1xuICAgIGxldCBub2RlSW5kZXggPSAwO1xuICAgIGxldCBhdHRyTmFtZUluZGV4ID0gMDtcbiAgICBjb25zdCBwYXJ0Q291bnQgPSBzdHJpbmdzLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgcGFydHMgPSB0aGlzLnBhcnRzO1xuXG4gICAgLy8gQ3JlYXRlIHRlbXBsYXRlIGVsZW1lbnRcbiAgICBjb25zdCBbaHRtbCwgYXR0ck5hbWVzXSA9IGdldFRlbXBsYXRlSHRtbChzdHJpbmdzLCB0eXBlKTtcbiAgICB0aGlzLmVsID0gVGVtcGxhdGUuY3JlYXRlRWxlbWVudChodG1sLCBvcHRpb25zKTtcbiAgICB3YWxrZXIuY3VycmVudE5vZGUgPSB0aGlzLmVsLmNvbnRlbnQ7XG5cbiAgICAvLyBSZS1wYXJlbnQgU1ZHIG9yIE1hdGhNTCBub2RlcyBpbnRvIHRlbXBsYXRlIHJvb3RcbiAgICBpZiAodHlwZSA9PT0gU1ZHX1JFU1VMVCB8fCB0eXBlID09PSBNQVRITUxfUkVTVUxUKSB7XG4gICAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5lbC5jb250ZW50LmZpcnN0Q2hpbGQhO1xuICAgICAgd3JhcHBlci5yZXBsYWNlV2l0aCguLi53cmFwcGVyLmNoaWxkTm9kZXMpO1xuICAgIH1cblxuICAgIC8vIFdhbGsgdGhlIHRlbXBsYXRlIHRvIGZpbmQgYmluZGluZyBtYXJrZXJzIGFuZCBjcmVhdGUgVGVtcGxhdGVQYXJ0c1xuICAgIHdoaWxlICgobm9kZSA9IHdhbGtlci5uZXh0Tm9kZSgpKSAhPT0gbnVsbCAmJiBwYXJ0cy5sZW5ndGggPCBwYXJ0Q291bnQpIHtcbiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSAxKSB7XG4gICAgICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgICAgIGNvbnN0IHRhZyA9IChub2RlIGFzIEVsZW1lbnQpLmxvY2FsTmFtZTtcbiAgICAgICAgICAvLyBXYXJuIGlmIGB0ZXh0YXJlYWAgaW5jbHVkZXMgYW4gZXhwcmVzc2lvbiBhbmQgdGhyb3cgaWYgYHRlbXBsYXRlYFxuICAgICAgICAgIC8vIGRvZXMgc2luY2UgdGhlc2UgYXJlIG5vdCBzdXBwb3J0ZWQuIFdlIGRvIHRoaXMgYnkgY2hlY2tpbmdcbiAgICAgICAgICAvLyBpbm5lckhUTUwgZm9yIGFueXRoaW5nIHRoYXQgbG9va3MgbGlrZSBhIG1hcmtlci4gVGhpcyBjYXRjaGVzXG4gICAgICAgICAgLy8gY2FzZXMgbGlrZSBiaW5kaW5ncyBpbiB0ZXh0YXJlYSB0aGVyZSBtYXJrZXJzIHR1cm4gaW50byB0ZXh0IG5vZGVzLlxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIC9eKD86dGV4dGFyZWF8dGVtcGxhdGUpJC9pIS50ZXN0KHRhZykgJiZcbiAgICAgICAgICAgIChub2RlIGFzIEVsZW1lbnQpLmlubmVySFRNTC5pbmNsdWRlcyhtYXJrZXIpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBtID1cbiAgICAgICAgICAgICAgYEV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkIGluc2lkZSBcXGAke3RhZ31cXGAgYCArXG4gICAgICAgICAgICAgIGBlbGVtZW50cy4gU2VlIGh0dHBzOi8vbGl0LmRldi9tc2cvZXhwcmVzc2lvbi1pbi0ke3RhZ30gZm9yIG1vcmUgYCArXG4gICAgICAgICAgICAgIGBpbmZvcm1hdGlvbi5gO1xuICAgICAgICAgICAgaWYgKHRhZyA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobSk7XG4gICAgICAgICAgICB9IGVsc2UgaXNzdWVXYXJuaW5nKCcnLCBtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gVE9ETyAoanVzdGluZmFnbmFuaSk6IGZvciBhdHRlbXB0ZWQgZHluYW1pYyB0YWcgbmFtZXMsIHdlIGRvbid0XG4gICAgICAgIC8vIGluY3JlbWVudCB0aGUgYmluZGluZ0luZGV4LCBhbmQgaXQnbGwgYmUgb2ZmIGJ5IDEgaW4gdGhlIGVsZW1lbnRcbiAgICAgICAgLy8gYW5kIG9mZiBieSB0d28gYWZ0ZXIgaXQuXG4gICAgICAgIGlmICgobm9kZSBhcyBFbGVtZW50KS5oYXNBdHRyaWJ1dGVzKCkpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgKG5vZGUgYXMgRWxlbWVudCkuZ2V0QXR0cmlidXRlTmFtZXMoKSkge1xuICAgICAgICAgICAgaWYgKG5hbWUuZW5kc1dpdGgoYm91bmRBdHRyaWJ1dGVTdWZmaXgpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlYWxOYW1lID0gYXR0ck5hbWVzW2F0dHJOYW1lSW5kZXgrK107XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKG5vZGUgYXMgRWxlbWVudCkuZ2V0QXR0cmlidXRlKG5hbWUpITtcbiAgICAgICAgICAgICAgY29uc3Qgc3RhdGljcyA9IHZhbHVlLnNwbGl0KG1hcmtlcik7XG4gICAgICAgICAgICAgIGNvbnN0IG0gPSAvKFsuP0BdKT8oLiopLy5leGVjKHJlYWxOYW1lKSE7XG4gICAgICAgICAgICAgIHBhcnRzLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6IEFUVFJJQlVURV9QQVJULFxuICAgICAgICAgICAgICAgIGluZGV4OiBub2RlSW5kZXgsXG4gICAgICAgICAgICAgICAgbmFtZTogbVsyXSxcbiAgICAgICAgICAgICAgICBzdHJpbmdzOiBzdGF0aWNzLFxuICAgICAgICAgICAgICAgIGN0b3I6XG4gICAgICAgICAgICAgICAgICBtWzFdID09PSAnLidcbiAgICAgICAgICAgICAgICAgICAgPyBQcm9wZXJ0eVBhcnRcbiAgICAgICAgICAgICAgICAgICAgOiBtWzFdID09PSAnPydcbiAgICAgICAgICAgICAgICAgICAgICA/IEJvb2xlYW5BdHRyaWJ1dGVQYXJ0XG4gICAgICAgICAgICAgICAgICAgICAgOiBtWzFdID09PSAnQCdcbiAgICAgICAgICAgICAgICAgICAgICAgID8gRXZlbnRQYXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IEF0dHJpYnV0ZVBhcnQsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAobm9kZSBhcyBFbGVtZW50KS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUuc3RhcnRzV2l0aChtYXJrZXIpKSB7XG4gICAgICAgICAgICAgIHBhcnRzLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6IEVMRU1FTlRfUEFSVCxcbiAgICAgICAgICAgICAgICBpbmRleDogbm9kZUluZGV4LFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgKG5vZGUgYXMgRWxlbWVudCkucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBUT0RPIChqdXN0aW5mYWduYW5pKTogYmVuY2htYXJrIHRoZSByZWdleCBhZ2FpbnN0IHRlc3RpbmcgZm9yIGVhY2hcbiAgICAgICAgLy8gb2YgdGhlIDMgcmF3IHRleHQgZWxlbWVudCBuYW1lcy5cbiAgICAgICAgaWYgKHJhd1RleHRFbGVtZW50LnRlc3QoKG5vZGUgYXMgRWxlbWVudCkudGFnTmFtZSkpIHtcbiAgICAgICAgICAvLyBGb3IgcmF3IHRleHQgZWxlbWVudHMgd2UgbmVlZCB0byBzcGxpdCB0aGUgdGV4dCBjb250ZW50IG9uXG4gICAgICAgICAgLy8gbWFya2VycywgY3JlYXRlIGEgVGV4dCBub2RlIGZvciBlYWNoIHNlZ21lbnQsIGFuZCBjcmVhdGVcbiAgICAgICAgICAvLyBhIFRlbXBsYXRlUGFydCBmb3IgZWFjaCBtYXJrZXIuXG4gICAgICAgICAgY29uc3Qgc3RyaW5ncyA9IChub2RlIGFzIEVsZW1lbnQpLnRleHRDb250ZW50IS5zcGxpdChtYXJrZXIpO1xuICAgICAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHN0cmluZ3MubGVuZ3RoIC0gMTtcbiAgICAgICAgICBpZiAobGFzdEluZGV4ID4gMCkge1xuICAgICAgICAgICAgKG5vZGUgYXMgRWxlbWVudCkudGV4dENvbnRlbnQgPSB0cnVzdGVkVHlwZXNcbiAgICAgICAgICAgICAgPyAodHJ1c3RlZFR5cGVzLmVtcHR5U2NyaXB0IGFzIHVua25vd24gYXMgJycpXG4gICAgICAgICAgICAgIDogJyc7XG4gICAgICAgICAgICAvLyBHZW5lcmF0ZSBhIG5ldyB0ZXh0IG5vZGUgZm9yIGVhY2ggbGl0ZXJhbCBzZWN0aW9uXG4gICAgICAgICAgICAvLyBUaGVzZSBub2RlcyBhcmUgYWxzbyB1c2VkIGFzIHRoZSBtYXJrZXJzIGZvciBjaGlsZCBwYXJ0c1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYXN0SW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAobm9kZSBhcyBFbGVtZW50KS5hcHBlbmQoc3RyaW5nc1tpXSwgY3JlYXRlTWFya2VyKCkpO1xuICAgICAgICAgICAgICAvLyBXYWxrIHBhc3QgdGhlIG1hcmtlciBub2RlIHdlIGp1c3QgYWRkZWRcbiAgICAgICAgICAgICAgd2Fsa2VyLm5leHROb2RlKCk7XG4gICAgICAgICAgICAgIHBhcnRzLnB1c2goe3R5cGU6IENISUxEX1BBUlQsIGluZGV4OiArK25vZGVJbmRleH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gTm90ZSBiZWNhdXNlIHRoaXMgbWFya2VyIGlzIGFkZGVkIGFmdGVyIHRoZSB3YWxrZXIncyBjdXJyZW50XG4gICAgICAgICAgICAvLyBub2RlLCBpdCB3aWxsIGJlIHdhbGtlZCB0byBpbiB0aGUgb3V0ZXIgbG9vcCAoYW5kIGlnbm9yZWQpLCBzb1xuICAgICAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBhZGp1c3Qgbm9kZUluZGV4IGhlcmVcbiAgICAgICAgICAgIChub2RlIGFzIEVsZW1lbnQpLmFwcGVuZChzdHJpbmdzW2xhc3RJbmRleF0sIGNyZWF0ZU1hcmtlcigpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobm9kZS5ub2RlVHlwZSA9PT0gOCkge1xuICAgICAgICBjb25zdCBkYXRhID0gKG5vZGUgYXMgQ29tbWVudCkuZGF0YTtcbiAgICAgICAgaWYgKGRhdGEgPT09IG1hcmtlck1hdGNoKSB7XG4gICAgICAgICAgcGFydHMucHVzaCh7dHlwZTogQ0hJTERfUEFSVCwgaW5kZXg6IG5vZGVJbmRleH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBpID0gLTE7XG4gICAgICAgICAgd2hpbGUgKChpID0gKG5vZGUgYXMgQ29tbWVudCkuZGF0YS5pbmRleE9mKG1hcmtlciwgaSArIDEpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIC8vIENvbW1lbnQgbm9kZSBoYXMgYSBiaW5kaW5nIG1hcmtlciBpbnNpZGUsIG1ha2UgYW4gaW5hY3RpdmUgcGFydFxuICAgICAgICAgICAgLy8gVGhlIGJpbmRpbmcgd29uJ3Qgd29yaywgYnV0IHN1YnNlcXVlbnQgYmluZGluZ3Mgd2lsbFxuICAgICAgICAgICAgcGFydHMucHVzaCh7dHlwZTogQ09NTUVOVF9QQVJULCBpbmRleDogbm9kZUluZGV4fSk7XG4gICAgICAgICAgICAvLyBNb3ZlIHRvIHRoZSBlbmQgb2YgdGhlIG1hdGNoXG4gICAgICAgICAgICBpICs9IG1hcmtlci5sZW5ndGggLSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbm9kZUluZGV4Kys7XG4gICAgfVxuXG4gICAgaWYgKERFVl9NT0RFKSB7XG4gICAgICAvLyBJZiB0aGVyZSB3YXMgYSBkdXBsaWNhdGUgYXR0cmlidXRlIG9uIGEgdGFnLCB0aGVuIHdoZW4gdGhlIHRhZyBpc1xuICAgICAgLy8gcGFyc2VkIGludG8gYW4gZWxlbWVudCB0aGUgYXR0cmlidXRlIGdldHMgZGUtZHVwbGljYXRlZC4gV2UgY2FuIGRldGVjdFxuICAgICAgLy8gdGhpcyBtaXNtYXRjaCBpZiB3ZSBoYXZlbid0IHByZWNpc2VseSBjb25zdW1lZCBldmVyeSBhdHRyaWJ1dGUgbmFtZVxuICAgICAgLy8gd2hlbiBwcmVwYXJpbmcgdGhlIHRlbXBsYXRlLiBUaGlzIHdvcmtzIGJlY2F1c2UgYGF0dHJOYW1lc2AgaXMgYnVpbHRcbiAgICAgIC8vIGZyb20gdGhlIHRlbXBsYXRlIHN0cmluZyBhbmQgYGF0dHJOYW1lSW5kZXhgIGNvbWVzIGZyb20gcHJvY2Vzc2luZyB0aGVcbiAgICAgIC8vIHJlc3VsdGluZyBET00uXG4gICAgICBpZiAoYXR0ck5hbWVzLmxlbmd0aCAhPT0gYXR0ck5hbWVJbmRleCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYERldGVjdGVkIGR1cGxpY2F0ZSBhdHRyaWJ1dGUgYmluZGluZ3MuIFRoaXMgb2NjdXJzIGlmIHlvdXIgdGVtcGxhdGUgYCArXG4gICAgICAgICAgICBgaGFzIGR1cGxpY2F0ZSBhdHRyaWJ1dGVzIG9uIGFuIGVsZW1lbnQgdGFnLiBGb3IgZXhhbXBsZSBgICtcbiAgICAgICAgICAgIGBcIjxpbnB1dCA/ZGlzYWJsZWQ9XFwke3RydWV9ID9kaXNhYmxlZD1cXCR7ZmFsc2V9PlwiIGNvbnRhaW5zIGEgYCArXG4gICAgICAgICAgICBgZHVwbGljYXRlIFwiZGlzYWJsZWRcIiBhdHRyaWJ1dGUuIFRoZSBlcnJvciB3YXMgZGV0ZWN0ZWQgaW4gYCArXG4gICAgICAgICAgICBgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZTogXFxuYCArXG4gICAgICAgICAgICAnYCcgK1xuICAgICAgICAgICAgc3RyaW5ncy5qb2luKCckey4uLn0nKSArXG4gICAgICAgICAgICAnYCdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXZSBjb3VsZCBzZXQgd2Fsa2VyLmN1cnJlbnROb2RlIHRvIGFub3RoZXIgbm9kZSBoZXJlIHRvIHByZXZlbnQgYSBtZW1vcnlcbiAgICAvLyBsZWFrLCBidXQgZXZlcnkgdGltZSB3ZSBwcmVwYXJlIGEgdGVtcGxhdGUsIHdlIGltbWVkaWF0ZWx5IHJlbmRlciBpdFxuICAgIC8vIGFuZCByZS11c2UgdGhlIHdhbGtlciBpbiBuZXcgVGVtcGxhdGVJbnN0YW5jZS5fY2xvbmUoKS5cbiAgICBkZWJ1Z0xvZ0V2ZW50ICYmXG4gICAgICBkZWJ1Z0xvZ0V2ZW50KHtcbiAgICAgICAga2luZDogJ3RlbXBsYXRlIHByZXAnLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcyxcbiAgICAgICAgY2xvbmFibGVUZW1wbGF0ZTogdGhpcy5lbCxcbiAgICAgICAgcGFydHM6IHRoaXMucGFydHMsXG4gICAgICAgIHN0cmluZ3MsXG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIE92ZXJyaWRkZW4gdmlhIGBsaXRIdG1sUG9seWZpbGxTdXBwb3J0YCB0byBwcm92aWRlIHBsYXRmb3JtIHN1cHBvcnQuXG4gIC8qKiBAbm9jb2xsYXBzZSAqL1xuICBzdGF0aWMgY3JlYXRlRWxlbWVudChodG1sOiBUcnVzdGVkSFRNTCwgX29wdGlvbnM/OiBSZW5kZXJPcHRpb25zKSB7XG4gICAgY29uc3QgZWwgPSBkLmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG4gICAgZWwuaW5uZXJIVE1MID0gaHRtbCBhcyB1bmtub3duIGFzIHN0cmluZztcbiAgICByZXR1cm4gZWw7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXNjb25uZWN0YWJsZSB7XG4gIF8kcGFyZW50PzogRGlzY29ubmVjdGFibGU7XG4gIF8kZGlzY29ubmVjdGFibGVDaGlsZHJlbj86IFNldDxEaXNjb25uZWN0YWJsZT47XG4gIC8vIFJhdGhlciB0aGFuIGhvbGQgY29ubmVjdGlvbiBzdGF0ZSBvbiBpbnN0YW5jZXMsIERpc2Nvbm5lY3RhYmxlcyByZWN1cnNpdmVseVxuICAvLyBmZXRjaCB0aGUgY29ubmVjdGlvbiBzdGF0ZSBmcm9tIHRoZSBSb290UGFydCB0aGV5IGFyZSBjb25uZWN0ZWQgaW4gdmlhXG4gIC8vIGdldHRlcnMgdXAgdGhlIERpc2Nvbm5lY3RhYmxlIHRyZWUgdmlhIF8kcGFyZW50IHJlZmVyZW5jZXMuIFRoaXMgcHVzaGVzIHRoZVxuICAvLyBjb3N0IG9mIHRyYWNraW5nIHRoZSBpc0Nvbm5lY3RlZCBzdGF0ZSB0byBgQXN5bmNEaXJlY3RpdmVzYCwgYW5kIGF2b2lkc1xuICAvLyBuZWVkaW5nIHRvIHBhc3MgYWxsIERpc2Nvbm5lY3RhYmxlcyAocGFydHMsIHRlbXBsYXRlIGluc3RhbmNlcywgYW5kXG4gIC8vIGRpcmVjdGl2ZXMpIHRoZWlyIGNvbm5lY3Rpb24gc3RhdGUgZWFjaCB0aW1lIGl0IGNoYW5nZXMsIHdoaWNoIHdvdWxkIGJlXG4gIC8vIGNvc3RseSBmb3IgdHJlZXMgdGhhdCBoYXZlIG5vIEFzeW5jRGlyZWN0aXZlcy5cbiAgXyRpc0Nvbm5lY3RlZDogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZURpcmVjdGl2ZShcbiAgcGFydDogQ2hpbGRQYXJ0IHwgQXR0cmlidXRlUGFydCB8IEVsZW1lbnRQYXJ0LFxuICB2YWx1ZTogdW5rbm93bixcbiAgcGFyZW50OiBEaXJlY3RpdmVQYXJlbnQgPSBwYXJ0LFxuICBhdHRyaWJ1dGVJbmRleD86IG51bWJlclxuKTogdW5rbm93biB7XG4gIC8vIEJhaWwgZWFybHkgaWYgdGhlIHZhbHVlIGlzIGV4cGxpY2l0bHkgbm9DaGFuZ2UuIE5vdGUsIHRoaXMgbWVhbnMgYW55XG4gIC8vIG5lc3RlZCBkaXJlY3RpdmUgaXMgc3RpbGwgYXR0YWNoZWQgYW5kIGlzIG5vdCBydW4uXG4gIGlmICh2YWx1ZSA9PT0gbm9DaGFuZ2UpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgbGV0IGN1cnJlbnREaXJlY3RpdmUgPVxuICAgIGF0dHJpYnV0ZUluZGV4ICE9PSB1bmRlZmluZWRcbiAgICAgID8gKHBhcmVudCBhcyBBdHRyaWJ1dGVQYXJ0KS5fX2RpcmVjdGl2ZXM/LlthdHRyaWJ1dGVJbmRleF1cbiAgICAgIDogKHBhcmVudCBhcyBDaGlsZFBhcnQgfCBFbGVtZW50UGFydCB8IERpcmVjdGl2ZSkuX19kaXJlY3RpdmU7XG4gIGNvbnN0IG5leHREaXJlY3RpdmVDb25zdHJ1Y3RvciA9IGlzUHJpbWl0aXZlKHZhbHVlKVxuICAgID8gdW5kZWZpbmVkXG4gICAgOiAvLyBUaGlzIHByb3BlcnR5IG5lZWRzIHRvIHJlbWFpbiB1bm1pbmlmaWVkLlxuICAgICAgKHZhbHVlIGFzIERpcmVjdGl2ZVJlc3VsdClbJ18kbGl0RGlyZWN0aXZlJCddO1xuICBpZiAoY3VycmVudERpcmVjdGl2ZT8uY29uc3RydWN0b3IgIT09IG5leHREaXJlY3RpdmVDb25zdHJ1Y3Rvcikge1xuICAgIC8vIFRoaXMgcHJvcGVydHkgbmVlZHMgdG8gcmVtYWluIHVubWluaWZpZWQuXG4gICAgY3VycmVudERpcmVjdGl2ZT8uWydfJG5vdGlmeURpcmVjdGl2ZUNvbm5lY3Rpb25DaGFuZ2VkJ10/LihmYWxzZSk7XG4gICAgaWYgKG5leHREaXJlY3RpdmVDb25zdHJ1Y3RvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjdXJyZW50RGlyZWN0aXZlID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50RGlyZWN0aXZlID0gbmV3IG5leHREaXJlY3RpdmVDb25zdHJ1Y3RvcihwYXJ0IGFzIFBhcnRJbmZvKTtcbiAgICAgIGN1cnJlbnREaXJlY3RpdmUuXyRpbml0aWFsaXplKHBhcnQsIHBhcmVudCwgYXR0cmlidXRlSW5kZXgpO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgKChwYXJlbnQgYXMgQXR0cmlidXRlUGFydCkuX19kaXJlY3RpdmVzID8/PSBbXSlbYXR0cmlidXRlSW5kZXhdID1cbiAgICAgICAgY3VycmVudERpcmVjdGl2ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgKHBhcmVudCBhcyBDaGlsZFBhcnQgfCBEaXJlY3RpdmUpLl9fZGlyZWN0aXZlID0gY3VycmVudERpcmVjdGl2ZTtcbiAgICB9XG4gIH1cbiAgaWYgKGN1cnJlbnREaXJlY3RpdmUgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhbHVlID0gcmVzb2x2ZURpcmVjdGl2ZShcbiAgICAgIHBhcnQsXG4gICAgICBjdXJyZW50RGlyZWN0aXZlLl8kcmVzb2x2ZShwYXJ0LCAodmFsdWUgYXMgRGlyZWN0aXZlUmVzdWx0KS52YWx1ZXMpLFxuICAgICAgY3VycmVudERpcmVjdGl2ZSxcbiAgICAgIGF0dHJpYnV0ZUluZGV4XG4gICAgKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCB0eXBlIHtUZW1wbGF0ZUluc3RhbmNlfTtcbi8qKlxuICogQW4gdXBkYXRlYWJsZSBpbnN0YW5jZSBvZiBhIFRlbXBsYXRlLiBIb2xkcyByZWZlcmVuY2VzIHRvIHRoZSBQYXJ0cyB1c2VkIHRvXG4gKiB1cGRhdGUgdGhlIHRlbXBsYXRlIGluc3RhbmNlLlxuICovXG5jbGFzcyBUZW1wbGF0ZUluc3RhbmNlIGltcGxlbWVudHMgRGlzY29ubmVjdGFibGUge1xuICBfJHRlbXBsYXRlOiBUZW1wbGF0ZTtcbiAgXyRwYXJ0czogQXJyYXk8UGFydCB8IHVuZGVmaW5lZD4gPSBbXTtcblxuICAvKiogQGludGVybmFsICovXG4gIF8kcGFyZW50OiBDaGlsZFBhcnQ7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgXyRkaXNjb25uZWN0YWJsZUNoaWxkcmVuPzogU2V0PERpc2Nvbm5lY3RhYmxlPiA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcih0ZW1wbGF0ZTogVGVtcGxhdGUsIHBhcmVudDogQ2hpbGRQYXJ0KSB7XG4gICAgdGhpcy5fJHRlbXBsYXRlID0gdGVtcGxhdGU7XG4gICAgdGhpcy5fJHBhcmVudCA9IHBhcmVudDtcbiAgfVxuXG4gIC8vIENhbGxlZCBieSBDaGlsZFBhcnQgcGFyZW50Tm9kZSBnZXR0ZXJcbiAgZ2V0IHBhcmVudE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuXyRwYXJlbnQucGFyZW50Tm9kZTtcbiAgfVxuXG4gIC8vIFNlZSBjb21tZW50IGluIERpc2Nvbm5lY3RhYmxlIGludGVyZmFjZSBmb3Igd2h5IHRoaXMgaXMgYSBnZXR0ZXJcbiAgZ2V0IF8kaXNDb25uZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuXyRwYXJlbnQuXyRpc0Nvbm5lY3RlZDtcbiAgfVxuXG4gIC8vIFRoaXMgbWV0aG9kIGlzIHNlcGFyYXRlIGZyb20gdGhlIGNvbnN0cnVjdG9yIGJlY2F1c2Ugd2UgbmVlZCB0byByZXR1cm4gYVxuICAvLyBEb2N1bWVudEZyYWdtZW50IGFuZCB3ZSBkb24ndCB3YW50IHRvIGhvbGQgb250byBpdCB3aXRoIGFuIGluc3RhbmNlIGZpZWxkLlxuICBfY2xvbmUob3B0aW9uczogUmVuZGVyT3B0aW9ucyB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGVsOiB7Y29udGVudH0sXG4gICAgICBwYXJ0czogcGFydHMsXG4gICAgfSA9IHRoaXMuXyR0ZW1wbGF0ZTtcbiAgICBjb25zdCBmcmFnbWVudCA9IChvcHRpb25zPy5jcmVhdGlvblNjb3BlID8/IGQpLmltcG9ydE5vZGUoY29udGVudCwgdHJ1ZSk7XG4gICAgd2Fsa2VyLmN1cnJlbnROb2RlID0gZnJhZ21lbnQ7XG5cbiAgICBsZXQgbm9kZSA9IHdhbGtlci5uZXh0Tm9kZSgpITtcbiAgICBsZXQgbm9kZUluZGV4ID0gMDtcbiAgICBsZXQgcGFydEluZGV4ID0gMDtcbiAgICBsZXQgdGVtcGxhdGVQYXJ0ID0gcGFydHNbMF07XG5cbiAgICB3aGlsZSAodGVtcGxhdGVQYXJ0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChub2RlSW5kZXggPT09IHRlbXBsYXRlUGFydC5pbmRleCkge1xuICAgICAgICBsZXQgcGFydDogUGFydCB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRlbXBsYXRlUGFydC50eXBlID09PSBDSElMRF9QQVJUKSB7XG4gICAgICAgICAgcGFydCA9IG5ldyBDaGlsZFBhcnQoXG4gICAgICAgICAgICBub2RlIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgbm9kZS5uZXh0U2libGluZyxcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBvcHRpb25zXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0ZW1wbGF0ZVBhcnQudHlwZSA9PT0gQVRUUklCVVRFX1BBUlQpIHtcbiAgICAgICAgICBwYXJ0ID0gbmV3IHRlbXBsYXRlUGFydC5jdG9yKFxuICAgICAgICAgICAgbm9kZSBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIHRlbXBsYXRlUGFydC5uYW1lLFxuICAgICAgICAgICAgdGVtcGxhdGVQYXJ0LnN0cmluZ3MsXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgb3B0aW9uc1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAodGVtcGxhdGVQYXJ0LnR5cGUgPT09IEVMRU1FTlRfUEFSVCkge1xuICAgICAgICAgIHBhcnQgPSBuZXcgRWxlbWVudFBhcnQobm9kZSBhcyBIVE1MRWxlbWVudCwgdGhpcywgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fJHBhcnRzLnB1c2gocGFydCk7XG4gICAgICAgIHRlbXBsYXRlUGFydCA9IHBhcnRzWysrcGFydEluZGV4XTtcbiAgICAgIH1cbiAgICAgIGlmIChub2RlSW5kZXggIT09IHRlbXBsYXRlUGFydD8uaW5kZXgpIHtcbiAgICAgICAgbm9kZSA9IHdhbGtlci5uZXh0Tm9kZSgpITtcbiAgICAgICAgbm9kZUluZGV4Kys7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFdlIG5lZWQgdG8gc2V0IHRoZSBjdXJyZW50Tm9kZSBhd2F5IGZyb20gdGhlIGNsb25lZCB0cmVlIHNvIHRoYXQgd2VcbiAgICAvLyBkb24ndCBob2xkIG9udG8gdGhlIHRyZWUgZXZlbiBpZiB0aGUgdHJlZSBpcyBkZXRhY2hlZCBhbmQgc2hvdWxkIGJlXG4gICAgLy8gZnJlZWQuXG4gICAgd2Fsa2VyLmN1cnJlbnROb2RlID0gZDtcbiAgICByZXR1cm4gZnJhZ21lbnQ7XG4gIH1cblxuICBfdXBkYXRlKHZhbHVlczogQXJyYXk8dW5rbm93bj4pIHtcbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBwYXJ0IG9mIHRoaXMuXyRwYXJ0cykge1xuICAgICAgaWYgKHBhcnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkZWJ1Z0xvZ0V2ZW50ICYmXG4gICAgICAgICAgZGVidWdMb2dFdmVudCh7XG4gICAgICAgICAgICBraW5kOiAnc2V0IHBhcnQnLFxuICAgICAgICAgICAgcGFydCxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZXNbaV0sXG4gICAgICAgICAgICB2YWx1ZUluZGV4OiBpLFxuICAgICAgICAgICAgdmFsdWVzLFxuICAgICAgICAgICAgdGVtcGxhdGVJbnN0YW5jZTogdGhpcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgaWYgKChwYXJ0IGFzIEF0dHJpYnV0ZVBhcnQpLnN0cmluZ3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIChwYXJ0IGFzIEF0dHJpYnV0ZVBhcnQpLl8kc2V0VmFsdWUodmFsdWVzLCBwYXJ0IGFzIEF0dHJpYnV0ZVBhcnQsIGkpO1xuICAgICAgICAgIC8vIFRoZSBudW1iZXIgb2YgdmFsdWVzIHRoZSBwYXJ0IGNvbnN1bWVzIGlzIHBhcnQuc3RyaW5ncy5sZW5ndGggLSAxXG4gICAgICAgICAgLy8gc2luY2UgdmFsdWVzIGFyZSBpbiBiZXR3ZWVuIHRlbXBsYXRlIHNwYW5zLiBXZSBpbmNyZW1lbnQgaSBieSAxXG4gICAgICAgICAgLy8gbGF0ZXIgaW4gdGhlIGxvb3AsIHNvIGluY3JlbWVudCBpdCBieSBwYXJ0LnN0cmluZ3MubGVuZ3RoIC0gMiBoZXJlXG4gICAgICAgICAgaSArPSAocGFydCBhcyBBdHRyaWJ1dGVQYXJ0KS5zdHJpbmdzIS5sZW5ndGggLSAyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhcnQuXyRzZXRWYWx1ZSh2YWx1ZXNbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpKys7XG4gICAgfVxuICB9XG59XG5cbi8qXG4gKiBQYXJ0c1xuICovXG50eXBlIEF0dHJpYnV0ZVRlbXBsYXRlUGFydCA9IHtcbiAgcmVhZG9ubHkgdHlwZTogdHlwZW9mIEFUVFJJQlVURV9QQVJUO1xuICByZWFkb25seSBpbmRleDogbnVtYmVyO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGN0b3I6IHR5cGVvZiBBdHRyaWJ1dGVQYXJ0O1xuICByZWFkb25seSBzdHJpbmdzOiBSZWFkb25seUFycmF5PHN0cmluZz47XG59O1xudHlwZSBDaGlsZFRlbXBsYXRlUGFydCA9IHtcbiAgcmVhZG9ubHkgdHlwZTogdHlwZW9mIENISUxEX1BBUlQ7XG4gIHJlYWRvbmx5IGluZGV4OiBudW1iZXI7XG59O1xudHlwZSBFbGVtZW50VGVtcGxhdGVQYXJ0ID0ge1xuICByZWFkb25seSB0eXBlOiB0eXBlb2YgRUxFTUVOVF9QQVJUO1xuICByZWFkb25seSBpbmRleDogbnVtYmVyO1xufTtcbnR5cGUgQ29tbWVudFRlbXBsYXRlUGFydCA9IHtcbiAgcmVhZG9ubHkgdHlwZTogdHlwZW9mIENPTU1FTlRfUEFSVDtcbiAgcmVhZG9ubHkgaW5kZXg6IG51bWJlcjtcbn07XG5cbi8qKlxuICogQSBUZW1wbGF0ZVBhcnQgcmVwcmVzZW50cyBhIGR5bmFtaWMgcGFydCBpbiBhIHRlbXBsYXRlLCBiZWZvcmUgdGhlIHRlbXBsYXRlXG4gKiBpcyBpbnN0YW50aWF0ZWQuIFdoZW4gYSB0ZW1wbGF0ZSBpcyBpbnN0YW50aWF0ZWQgUGFydHMgYXJlIGNyZWF0ZWQgZnJvbVxuICogVGVtcGxhdGVQYXJ0cy5cbiAqL1xudHlwZSBUZW1wbGF0ZVBhcnQgPVxuICB8IENoaWxkVGVtcGxhdGVQYXJ0XG4gIHwgQXR0cmlidXRlVGVtcGxhdGVQYXJ0XG4gIHwgRWxlbWVudFRlbXBsYXRlUGFydFxuICB8IENvbW1lbnRUZW1wbGF0ZVBhcnQ7XG5cbmV4cG9ydCB0eXBlIFBhcnQgPVxuICB8IENoaWxkUGFydFxuICB8IEF0dHJpYnV0ZVBhcnRcbiAgfCBQcm9wZXJ0eVBhcnRcbiAgfCBCb29sZWFuQXR0cmlidXRlUGFydFxuICB8IEVsZW1lbnRQYXJ0XG4gIHwgRXZlbnRQYXJ0O1xuXG5leHBvcnQgdHlwZSB7Q2hpbGRQYXJ0fTtcbmNsYXNzIENoaWxkUGFydCBpbXBsZW1lbnRzIERpc2Nvbm5lY3RhYmxlIHtcbiAgcmVhZG9ubHkgdHlwZSA9IENISUxEX1BBUlQ7XG4gIHJlYWRvbmx5IG9wdGlvbnM6IFJlbmRlck9wdGlvbnMgfCB1bmRlZmluZWQ7XG4gIF8kY29tbWl0dGVkVmFsdWU6IHVua25vd24gPSBub3RoaW5nO1xuICAvKiogQGludGVybmFsICovXG4gIF9fZGlyZWN0aXZlPzogRGlyZWN0aXZlO1xuICAvKiogQGludGVybmFsICovXG4gIF8kc3RhcnROb2RlOiBDaGlsZE5vZGU7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgXyRlbmROb2RlOiBDaGlsZE5vZGUgfCBudWxsO1xuICBwcml2YXRlIF90ZXh0U2FuaXRpemVyOiBWYWx1ZVNhbml0aXplciB8IHVuZGVmaW5lZDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfJHBhcmVudDogRGlzY29ubmVjdGFibGUgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBDb25uZWN0aW9uIHN0YXRlIGZvciBSb290UGFydHMgb25seSAoaS5lLiBDaGlsZFBhcnQgd2l0aG91dCBfJHBhcmVudFxuICAgKiByZXR1cm5lZCBmcm9tIHRvcC1sZXZlbCBgcmVuZGVyYCkuIFRoaXMgZmllbGQgaXMgdW51c2VkIG90aGVyd2lzZS4gVGhlXG4gICAqIGludGVudGlvbiB3b3VsZCBiZSBjbGVhcmVyIGlmIHdlIG1hZGUgYFJvb3RQYXJ0YCBhIHN1YmNsYXNzIG9mIGBDaGlsZFBhcnRgXG4gICAqIHdpdGggdGhpcyBmaWVsZCAoYW5kIGEgZGlmZmVyZW50IF8kaXNDb25uZWN0ZWQgZ2V0dGVyKSwgYnV0IHRoZSBzdWJjbGFzc1xuICAgKiBjYXVzZWQgYSBwZXJmIHJlZ3Jlc3Npb24sIHBvc3NpYmx5IGR1ZSB0byBtYWtpbmcgY2FsbCBzaXRlcyBwb2x5bW9ycGhpYy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBfX2lzQ29ubmVjdGVkOiBib29sZWFuO1xuXG4gIC8vIFNlZSBjb21tZW50IGluIERpc2Nvbm5lY3RhYmxlIGludGVyZmFjZSBmb3Igd2h5IHRoaXMgaXMgYSBnZXR0ZXJcbiAgZ2V0IF8kaXNDb25uZWN0ZWQoKSB7XG4gICAgLy8gQ2hpbGRQYXJ0cyB0aGF0IGFyZSBub3QgYXQgdGhlIHJvb3Qgc2hvdWxkIGFsd2F5cyBiZSBjcmVhdGVkIHdpdGggYVxuICAgIC8vIHBhcmVudDsgb25seSBSb290Q2hpbGROb2RlJ3Mgd29uJ3QsIHNvIHRoZXkgcmV0dXJuIHRoZSBsb2NhbCBpc0Nvbm5lY3RlZFxuICAgIC8vIHN0YXRlXG4gICAgcmV0dXJuIHRoaXMuXyRwYXJlbnQ/Ll8kaXNDb25uZWN0ZWQgPz8gdGhpcy5fX2lzQ29ubmVjdGVkO1xuICB9XG5cbiAgLy8gVGhlIGZvbGxvd2luZyBmaWVsZHMgd2lsbCBiZSBwYXRjaGVkIG9udG8gQ2hpbGRQYXJ0cyB3aGVuIHJlcXVpcmVkIGJ5XG4gIC8vIEFzeW5jRGlyZWN0aXZlXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgXyRkaXNjb25uZWN0YWJsZUNoaWxkcmVuPzogU2V0PERpc2Nvbm5lY3RhYmxlPiA9IHVuZGVmaW5lZDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfJG5vdGlmeUNvbm5lY3Rpb25DaGFuZ2VkPyhcbiAgICBpc0Nvbm5lY3RlZDogYm9vbGVhbixcbiAgICByZW1vdmVGcm9tUGFyZW50PzogYm9vbGVhbixcbiAgICBmcm9tPzogbnVtYmVyXG4gICk6IHZvaWQ7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgXyRyZXBhcmVudERpc2Nvbm5lY3RhYmxlcz8ocGFyZW50OiBEaXNjb25uZWN0YWJsZSk6IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RhcnROb2RlOiBDaGlsZE5vZGUsXG4gICAgZW5kTm9kZTogQ2hpbGROb2RlIHwgbnVsbCxcbiAgICBwYXJlbnQ6IFRlbXBsYXRlSW5zdGFuY2UgfCBDaGlsZFBhcnQgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9uczogUmVuZGVyT3B0aW9ucyB8IHVuZGVmaW5lZFxuICApIHtcbiAgICB0aGlzLl8kc3RhcnROb2RlID0gc3RhcnROb2RlO1xuICAgIHRoaXMuXyRlbmROb2RlID0gZW5kTm9kZTtcbiAgICB0aGlzLl8kcGFyZW50ID0gcGFyZW50O1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgLy8gTm90ZSBfX2lzQ29ubmVjdGVkIGlzIG9ubHkgZXZlciBhY2Nlc3NlZCBvbiBSb290UGFydHMgKGkuZS4gd2hlbiB0aGVyZSBpc1xuICAgIC8vIG5vIF8kcGFyZW50KTsgdGhlIHZhbHVlIG9uIGEgbm9uLXJvb3QtcGFydCBpcyBcImRvbid0IGNhcmVcIiwgYnV0IGNoZWNraW5nXG4gICAgLy8gZm9yIHBhcmVudCB3b3VsZCBiZSBtb3JlIGNvZGVcbiAgICB0aGlzLl9faXNDb25uZWN0ZWQgPSBvcHRpb25zPy5pc0Nvbm5lY3RlZCA/PyB0cnVlO1xuICAgIGlmIChFTkFCTEVfRVhUUkFfU0VDVVJJVFlfSE9PS1MpIHtcbiAgICAgIC8vIEV4cGxpY2l0bHkgaW5pdGlhbGl6ZSBmb3IgY29uc2lzdGVudCBjbGFzcyBzaGFwZS5cbiAgICAgIHRoaXMuX3RleHRTYW5pdGl6ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJlbnQgbm9kZSBpbnRvIHdoaWNoIHRoZSBwYXJ0IHJlbmRlcnMgaXRzIGNvbnRlbnQuXG4gICAqXG4gICAqIEEgQ2hpbGRQYXJ0J3MgY29udGVudCBjb25zaXN0cyBvZiBhIHJhbmdlIG9mIGFkamFjZW50IGNoaWxkIG5vZGVzIG9mXG4gICAqIGAucGFyZW50Tm9kZWAsIHBvc3NpYmx5IGJvcmRlcmVkIGJ5ICdtYXJrZXIgbm9kZXMnIChgLnN0YXJ0Tm9kZWAgYW5kXG4gICAqIGAuZW5kTm9kZWApLlxuICAgKlxuICAgKiAtIElmIGJvdGggYC5zdGFydE5vZGVgIGFuZCBgLmVuZE5vZGVgIGFyZSBub24tbnVsbCwgdGhlbiB0aGUgcGFydCdzIGNvbnRlbnRcbiAgICogY29uc2lzdHMgb2YgYWxsIHNpYmxpbmdzIGJldHdlZW4gYC5zdGFydE5vZGVgIGFuZCBgLmVuZE5vZGVgLCBleGNsdXNpdmVseS5cbiAgICpcbiAgICogLSBJZiBgLnN0YXJ0Tm9kZWAgaXMgbm9uLW51bGwgYnV0IGAuZW5kTm9kZWAgaXMgbnVsbCwgdGhlbiB0aGUgcGFydCdzXG4gICAqIGNvbnRlbnQgY29uc2lzdHMgb2YgYWxsIHNpYmxpbmdzIGZvbGxvd2luZyBgLnN0YXJ0Tm9kZWAsIHVwIHRvIGFuZFxuICAgKiBpbmNsdWRpbmcgdGhlIGxhc3QgY2hpbGQgb2YgYC5wYXJlbnROb2RlYC4gSWYgYC5lbmROb2RlYCBpcyBub24tbnVsbCwgdGhlblxuICAgKiBgLnN0YXJ0Tm9kZWAgd2lsbCBhbHdheXMgYmUgbm9uLW51bGwuXG4gICAqXG4gICAqIC0gSWYgYm90aCBgLmVuZE5vZGVgIGFuZCBgLnN0YXJ0Tm9kZWAgYXJlIG51bGwsIHRoZW4gdGhlIHBhcnQncyBjb250ZW50XG4gICAqIGNvbnNpc3RzIG9mIGFsbCBjaGlsZCBub2RlcyBvZiBgLnBhcmVudE5vZGVgLlxuICAgKi9cbiAgZ2V0IHBhcmVudE5vZGUoKTogTm9kZSB7XG4gICAgbGV0IHBhcmVudE5vZGU6IE5vZGUgPSB3cmFwKHRoaXMuXyRzdGFydE5vZGUpLnBhcmVudE5vZGUhO1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuXyRwYXJlbnQ7XG4gICAgaWYgKFxuICAgICAgcGFyZW50ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHBhcmVudE5vZGU/Lm5vZGVUeXBlID09PSAxMSAvKiBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UICovXG4gICAgKSB7XG4gICAgICAvLyBJZiB0aGUgcGFyZW50Tm9kZSBpcyBhIERvY3VtZW50RnJhZ21lbnQsIGl0IG1heSBiZSBiZWNhdXNlIHRoZSBET00gaXNcbiAgICAgIC8vIHN0aWxsIGluIHRoZSBjbG9uZWQgZnJhZ21lbnQgZHVyaW5nIGluaXRpYWwgcmVuZGVyOyBpZiBzbywgZ2V0IHRoZSByZWFsXG4gICAgICAvLyBwYXJlbnROb2RlIHRoZSBwYXJ0IHdpbGwgYmUgY29tbWl0dGVkIGludG8gYnkgYXNraW5nIHRoZSBwYXJlbnQuXG4gICAgICBwYXJlbnROb2RlID0gKHBhcmVudCBhcyBDaGlsZFBhcnQgfCBUZW1wbGF0ZUluc3RhbmNlKS5wYXJlbnROb2RlO1xuICAgIH1cbiAgICByZXR1cm4gcGFyZW50Tm9kZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFydCdzIGxlYWRpbmcgbWFya2VyIG5vZGUsIGlmIGFueS4gU2VlIGAucGFyZW50Tm9kZWAgZm9yIG1vcmVcbiAgICogaW5mb3JtYXRpb24uXG4gICAqL1xuICBnZXQgc3RhcnROb2RlKCk6IE5vZGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fJHN0YXJ0Tm9kZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFydCdzIHRyYWlsaW5nIG1hcmtlciBub2RlLCBpZiBhbnkuIFNlZSBgLnBhcmVudE5vZGVgIGZvciBtb3JlXG4gICAqIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgZ2V0IGVuZE5vZGUoKTogTm9kZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl8kZW5kTm9kZTtcbiAgfVxuXG4gIF8kc2V0VmFsdWUodmFsdWU6IHVua25vd24sIGRpcmVjdGl2ZVBhcmVudDogRGlyZWN0aXZlUGFyZW50ID0gdGhpcyk6IHZvaWQge1xuICAgIGlmIChERVZfTU9ERSAmJiB0aGlzLnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoaXMgXFxgQ2hpbGRQYXJ0XFxgIGhhcyBubyBcXGBwYXJlbnROb2RlXFxgIGFuZCB0aGVyZWZvcmUgY2Fubm90IGFjY2VwdCBhIHZhbHVlLiBUaGlzIGxpa2VseSBtZWFucyB0aGUgZWxlbWVudCBjb250YWluaW5nIHRoZSBwYXJ0IHdhcyBtYW5pcHVsYXRlZCBpbiBhbiB1bnN1cHBvcnRlZCB3YXkgb3V0c2lkZSBvZiBMaXQncyBjb250cm9sIHN1Y2ggdGhhdCB0aGUgcGFydCdzIG1hcmtlciBub2RlcyB3ZXJlIGVqZWN0ZWQgZnJvbSBET00uIEZvciBleGFtcGxlLCBzZXR0aW5nIHRoZSBlbGVtZW50J3MgXFxgaW5uZXJIVE1MXFxgIG9yIFxcYHRleHRDb250ZW50XFxgIGNhbiBkbyB0aGlzLmBcbiAgICAgICk7XG4gICAgfVxuICAgIHZhbHVlID0gcmVzb2x2ZURpcmVjdGl2ZSh0aGlzLCB2YWx1ZSwgZGlyZWN0aXZlUGFyZW50KTtcbiAgICBpZiAoaXNQcmltaXRpdmUodmFsdWUpKSB7XG4gICAgICAvLyBOb24tcmVuZGVyaW5nIGNoaWxkIHZhbHVlcy4gSXQncyBpbXBvcnRhbnQgdGhhdCB0aGVzZSBkbyBub3QgcmVuZGVyXG4gICAgICAvLyBlbXB0eSB0ZXh0IG5vZGVzIHRvIGF2b2lkIGlzc3VlcyB3aXRoIHByZXZlbnRpbmcgZGVmYXVsdCA8c2xvdD5cbiAgICAgIC8vIGZhbGxiYWNrIGNvbnRlbnQuXG4gICAgICBpZiAodmFsdWUgPT09IG5vdGhpbmcgfHwgdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgaWYgKHRoaXMuXyRjb21taXR0ZWRWYWx1ZSAhPT0gbm90aGluZykge1xuICAgICAgICAgIGRlYnVnTG9nRXZlbnQgJiZcbiAgICAgICAgICAgIGRlYnVnTG9nRXZlbnQoe1xuICAgICAgICAgICAgICBraW5kOiAnY29tbWl0IG5vdGhpbmcgdG8gY2hpbGQnLFxuICAgICAgICAgICAgICBzdGFydDogdGhpcy5fJHN0YXJ0Tm9kZSxcbiAgICAgICAgICAgICAgZW5kOiB0aGlzLl8kZW5kTm9kZSxcbiAgICAgICAgICAgICAgcGFyZW50OiB0aGlzLl8kcGFyZW50LFxuICAgICAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLl8kY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl8kY29tbWl0dGVkVmFsdWUgPSBub3RoaW5nO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gdGhpcy5fJGNvbW1pdHRlZFZhbHVlICYmIHZhbHVlICE9PSBub0NoYW5nZSkge1xuICAgICAgICB0aGlzLl9jb21taXRUZXh0KHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIC8vIFRoaXMgcHJvcGVydHkgbmVlZHMgdG8gcmVtYWluIHVubWluaWZpZWQuXG4gICAgfSBlbHNlIGlmICgodmFsdWUgYXMgVGVtcGxhdGVSZXN1bHQpWydfJGxpdFR5cGUkJ10gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fY29tbWl0VGVtcGxhdGVSZXN1bHQodmFsdWUgYXMgVGVtcGxhdGVSZXN1bHQpO1xuICAgIH0gZWxzZSBpZiAoKHZhbHVlIGFzIE5vZGUpLm5vZGVUeXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChERVZfTU9ERSAmJiB0aGlzLm9wdGlvbnM/Lmhvc3QgPT09IHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2NvbW1pdFRleHQoXG4gICAgICAgICAgYFtwcm9iYWJsZSBtaXN0YWtlOiByZW5kZXJlZCBhIHRlbXBsYXRlJ3MgaG9zdCBpbiBpdHNlbGYgYCArXG4gICAgICAgICAgICBgKGNvbW1vbmx5IGNhdXNlZCBieSB3cml0aW5nIFxcJHt0aGlzfSBpbiBhIHRlbXBsYXRlXWBcbiAgICAgICAgKTtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVuZGVyIHRoZSB0ZW1wbGF0ZSBob3N0YCxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBgaW5zaWRlIGl0c2VsZi4gVGhpcyBpcyBhbG1vc3QgYWx3YXlzIGEgbWlzdGFrZSwgYW5kIGluIGRldiBtb2RlIGAsXG4gICAgICAgICAgYHdlIHJlbmRlciBzb21lIHdhcm5pbmcgdGV4dC4gSW4gcHJvZHVjdGlvbiBob3dldmVyLCB3ZSdsbCBgLFxuICAgICAgICAgIGByZW5kZXIgaXQsIHdoaWNoIHdpbGwgdXN1YWxseSByZXN1bHQgaW4gYW4gZXJyb3IsIGFuZCBzb21ldGltZXMgYCxcbiAgICAgICAgICBgaW4gdGhlIGVsZW1lbnQgZGlzYXBwZWFyaW5nIGZyb20gdGhlIERPTS5gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NvbW1pdE5vZGUodmFsdWUgYXMgTm9kZSk7XG4gICAgfSBlbHNlIGlmIChpc0l0ZXJhYmxlKHZhbHVlKSkge1xuICAgICAgdGhpcy5fY29tbWl0SXRlcmFibGUodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGYWxsYmFjaywgd2lsbCByZW5kZXIgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvblxuICAgICAgdGhpcy5fY29tbWl0VGV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5zZXJ0PFQgZXh0ZW5kcyBOb2RlPihub2RlOiBUKSB7XG4gICAgcmV0dXJuIHdyYXAod3JhcCh0aGlzLl8kc3RhcnROb2RlKS5wYXJlbnROb2RlISkuaW5zZXJ0QmVmb3JlKFxuICAgICAgbm9kZSxcbiAgICAgIHRoaXMuXyRlbmROb2RlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbW1pdE5vZGUodmFsdWU6IE5vZGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fJGNvbW1pdHRlZFZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5fJGNsZWFyKCk7XG4gICAgICBpZiAoXG4gICAgICAgIEVOQUJMRV9FWFRSQV9TRUNVUklUWV9IT09LUyAmJlxuICAgICAgICBzYW5pdGl6ZXJGYWN0b3J5SW50ZXJuYWwgIT09IG5vb3BTYW5pdGl6ZXJcbiAgICAgICkge1xuICAgICAgICBjb25zdCBwYXJlbnROb2RlTmFtZSA9IHRoaXMuXyRzdGFydE5vZGUucGFyZW50Tm9kZT8ubm9kZU5hbWU7XG4gICAgICAgIGlmIChwYXJlbnROb2RlTmFtZSA9PT0gJ1NUWUxFJyB8fCBwYXJlbnROb2RlTmFtZSA9PT0gJ1NDUklQVCcpIHtcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9ICdGb3JiaWRkZW4nO1xuICAgICAgICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgICAgICAgaWYgKHBhcmVudE5vZGVOYW1lID09PSAnU1RZTEUnKSB7XG4gICAgICAgICAgICAgIG1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgIGBMaXQgZG9lcyBub3Qgc3VwcG9ydCBiaW5kaW5nIGluc2lkZSBzdHlsZSBub2Rlcy4gYCArXG4gICAgICAgICAgICAgICAgYFRoaXMgaXMgYSBzZWN1cml0eSByaXNrLCBhcyBzdHlsZSBpbmplY3Rpb24gYXR0YWNrcyBjYW4gYCArXG4gICAgICAgICAgICAgICAgYGV4ZmlsdHJhdGUgZGF0YSBhbmQgc3Bvb2YgVUlzLiBgICtcbiAgICAgICAgICAgICAgICBgQ29uc2lkZXIgaW5zdGVhZCB1c2luZyBjc3NcXGAuLi5cXGAgbGl0ZXJhbHMgYCArXG4gICAgICAgICAgICAgICAgYHRvIGNvbXBvc2Ugc3R5bGVzLCBhbmQgZG8gZHluYW1pYyBzdHlsaW5nIHdpdGggYCArXG4gICAgICAgICAgICAgICAgYGNzcyBjdXN0b20gcHJvcGVydGllcywgOjpwYXJ0cywgPHNsb3Q+cywgYCArXG4gICAgICAgICAgICAgICAgYGFuZCBieSBtdXRhdGluZyB0aGUgRE9NIHJhdGhlciB0aGFuIHN0eWxlc2hlZXRzLmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBtZXNzYWdlID1cbiAgICAgICAgICAgICAgICBgTGl0IGRvZXMgbm90IHN1cHBvcnQgYmluZGluZyBpbnNpZGUgc2NyaXB0IG5vZGVzLiBgICtcbiAgICAgICAgICAgICAgICBgVGhpcyBpcyBhIHNlY3VyaXR5IHJpc2ssIGFzIGl0IGNvdWxkIGFsbG93IGFyYml0cmFyeSBgICtcbiAgICAgICAgICAgICAgICBgY29kZSBleGVjdXRpb24uYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBkZWJ1Z0xvZ0V2ZW50ICYmXG4gICAgICAgIGRlYnVnTG9nRXZlbnQoe1xuICAgICAgICAgIGtpbmQ6ICdjb21taXQgbm9kZScsXG4gICAgICAgICAgc3RhcnQ6IHRoaXMuXyRzdGFydE5vZGUsXG4gICAgICAgICAgcGFyZW50OiB0aGlzLl8kcGFyZW50LFxuICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5fJGNvbW1pdHRlZFZhbHVlID0gdGhpcy5faW5zZXJ0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jb21taXRUZXh0KHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgLy8gSWYgdGhlIGNvbW1pdHRlZCB2YWx1ZSBpcyBhIHByaW1pdGl2ZSBpdCBtZWFucyB3ZSBjYWxsZWQgX2NvbW1pdFRleHQgb25cbiAgICAvLyB0aGUgcHJldmlvdXMgcmVuZGVyLCBhbmQgd2Uga25vdyB0aGF0IHRoaXMuXyRzdGFydE5vZGUubmV4dFNpYmxpbmcgaXMgYVxuICAgIC8vIFRleHQgbm9kZS4gV2UgY2FuIG5vdyBqdXN0IHJlcGxhY2UgdGhlIHRleHQgY29udGVudCAoLmRhdGEpIG9mIHRoZSBub2RlLlxuICAgIGlmIChcbiAgICAgIHRoaXMuXyRjb21taXR0ZWRWYWx1ZSAhPT0gbm90aGluZyAmJlxuICAgICAgaXNQcmltaXRpdmUodGhpcy5fJGNvbW1pdHRlZFZhbHVlKVxuICAgICkge1xuICAgICAgY29uc3Qgbm9kZSA9IHdyYXAodGhpcy5fJHN0YXJ0Tm9kZSkubmV4dFNpYmxpbmcgYXMgVGV4dDtcbiAgICAgIGlmIChFTkFCTEVfRVhUUkFfU0VDVVJJVFlfSE9PS1MpIHtcbiAgICAgICAgaWYgKHRoaXMuX3RleHRTYW5pdGl6ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuX3RleHRTYW5pdGl6ZXIgPSBjcmVhdGVTYW5pdGl6ZXIobm9kZSwgJ2RhdGEnLCAncHJvcGVydHknKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IHRoaXMuX3RleHRTYW5pdGl6ZXIodmFsdWUpO1xuICAgICAgfVxuICAgICAgZGVidWdMb2dFdmVudCAmJlxuICAgICAgICBkZWJ1Z0xvZ0V2ZW50KHtcbiAgICAgICAgICBraW5kOiAnY29tbWl0IHRleHQnLFxuICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgICB9KTtcbiAgICAgIChub2RlIGFzIFRleHQpLmRhdGEgPSB2YWx1ZSBhcyBzdHJpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChFTkFCTEVfRVhUUkFfU0VDVVJJVFlfSE9PS1MpIHtcbiAgICAgICAgY29uc3QgdGV4dE5vZGUgPSBkLmNyZWF0ZVRleHROb2RlKCcnKTtcbiAgICAgICAgdGhpcy5fY29tbWl0Tm9kZSh0ZXh0Tm9kZSk7XG4gICAgICAgIC8vIFdoZW4gc2V0dGluZyB0ZXh0IGNvbnRlbnQsIGZvciBzZWN1cml0eSBwdXJwb3NlcyBpdCBtYXR0ZXJzIGEgbG90XG4gICAgICAgIC8vIHdoYXQgdGhlIHBhcmVudCBpcy4gRm9yIGV4YW1wbGUsIDxzdHlsZT4gYW5kIDxzY3JpcHQ+IG5lZWQgdG8gYmVcbiAgICAgICAgLy8gaGFuZGxlZCB3aXRoIGNhcmUsIHdoaWxlIDxzcGFuPiBkb2VzIG5vdC4gU28gZmlyc3Qgd2UgbmVlZCB0byBwdXQgYVxuICAgICAgICAvLyB0ZXh0IG5vZGUgaW50byB0aGUgZG9jdW1lbnQsIHRoZW4gd2UgY2FuIHNhbml0aXplIGl0cyBjb250ZW50LlxuICAgICAgICBpZiAodGhpcy5fdGV4dFNhbml0aXplciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5fdGV4dFNhbml0aXplciA9IGNyZWF0ZVNhbml0aXplcih0ZXh0Tm9kZSwgJ2RhdGEnLCAncHJvcGVydHknKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IHRoaXMuX3RleHRTYW5pdGl6ZXIodmFsdWUpO1xuICAgICAgICBkZWJ1Z0xvZ0V2ZW50ICYmXG4gICAgICAgICAgZGVidWdMb2dFdmVudCh7XG4gICAgICAgICAgICBraW5kOiAnY29tbWl0IHRleHQnLFxuICAgICAgICAgICAgbm9kZTogdGV4dE5vZGUsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgdGV4dE5vZGUuZGF0YSA9IHZhbHVlIGFzIHN0cmluZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2NvbW1pdE5vZGUoZC5jcmVhdGVUZXh0Tm9kZSh2YWx1ZSBhcyBzdHJpbmcpKTtcbiAgICAgICAgZGVidWdMb2dFdmVudCAmJlxuICAgICAgICAgIGRlYnVnTG9nRXZlbnQoe1xuICAgICAgICAgICAga2luZDogJ2NvbW1pdCB0ZXh0JyxcbiAgICAgICAgICAgIG5vZGU6IHdyYXAodGhpcy5fJHN0YXJ0Tm9kZSkubmV4dFNpYmxpbmcgYXMgVGV4dCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl8kY29tbWl0dGVkVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbW1pdFRlbXBsYXRlUmVzdWx0KFxuICAgIHJlc3VsdDogVGVtcGxhdGVSZXN1bHQgfCBDb21waWxlZFRlbXBsYXRlUmVzdWx0XG4gICk6IHZvaWQge1xuICAgIC8vIFRoaXMgcHJvcGVydHkgbmVlZHMgdG8gcmVtYWluIHVubWluaWZpZWQuXG4gICAgY29uc3Qge3ZhbHVlcywgWydfJGxpdFR5cGUkJ106IHR5cGV9ID0gcmVzdWx0O1xuICAgIC8vIElmICRsaXRUeXBlJCBpcyBhIG51bWJlciwgcmVzdWx0IGlzIGEgcGxhaW4gVGVtcGxhdGVSZXN1bHQgYW5kIHdlIGdldFxuICAgIC8vIHRoZSB0ZW1wbGF0ZSBmcm9tIHRoZSB0ZW1wbGF0ZSBjYWNoZS4gSWYgbm90LCByZXN1bHQgaXMgYVxuICAgIC8vIENvbXBpbGVkVGVtcGxhdGVSZXN1bHQgYW5kIF8kbGl0VHlwZSQgaXMgYSBDb21waWxlZFRlbXBsYXRlIGFuZCB3ZSBuZWVkXG4gICAgLy8gdG8gY3JlYXRlIHRoZSA8dGVtcGxhdGU+IGVsZW1lbnQgdGhlIGZpcnN0IHRpbWUgd2Ugc2VlIGl0LlxuICAgIGNvbnN0IHRlbXBsYXRlOiBUZW1wbGF0ZSB8IENvbXBpbGVkVGVtcGxhdGUgPVxuICAgICAgdHlwZW9mIHR5cGUgPT09ICdudW1iZXInXG4gICAgICAgID8gdGhpcy5fJGdldFRlbXBsYXRlKHJlc3VsdCBhcyBVbmNvbXBpbGVkVGVtcGxhdGVSZXN1bHQpXG4gICAgICAgIDogKHR5cGUuZWwgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgKHR5cGUuZWwgPSBUZW1wbGF0ZS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICB0cnVzdEZyb21UZW1wbGF0ZVN0cmluZyh0eXBlLmgsIHR5cGUuaFswXSksXG4gICAgICAgICAgICAgIHRoaXMub3B0aW9uc1xuICAgICAgICAgICAgKSksXG4gICAgICAgICAgdHlwZSk7XG5cbiAgICBpZiAoKHRoaXMuXyRjb21taXR0ZWRWYWx1ZSBhcyBUZW1wbGF0ZUluc3RhbmNlKT8uXyR0ZW1wbGF0ZSA9PT0gdGVtcGxhdGUpIHtcbiAgICAgIGRlYnVnTG9nRXZlbnQgJiZcbiAgICAgICAgZGVidWdMb2dFdmVudCh7XG4gICAgICAgICAga2luZDogJ3RlbXBsYXRlIHVwZGF0aW5nJyxcbiAgICAgICAgICB0ZW1wbGF0ZSxcbiAgICAgICAgICBpbnN0YW5jZTogdGhpcy5fJGNvbW1pdHRlZFZhbHVlIGFzIFRlbXBsYXRlSW5zdGFuY2UsXG4gICAgICAgICAgcGFydHM6ICh0aGlzLl8kY29tbWl0dGVkVmFsdWUgYXMgVGVtcGxhdGVJbnN0YW5jZSkuXyRwYXJ0cyxcbiAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgdmFsdWVzLFxuICAgICAgICB9KTtcbiAgICAgICh0aGlzLl8kY29tbWl0dGVkVmFsdWUgYXMgVGVtcGxhdGVJbnN0YW5jZSkuX3VwZGF0ZSh2YWx1ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBUZW1wbGF0ZUluc3RhbmNlKHRlbXBsYXRlIGFzIFRlbXBsYXRlLCB0aGlzKTtcbiAgICAgIGNvbnN0IGZyYWdtZW50ID0gaW5zdGFuY2UuX2Nsb25lKHRoaXMub3B0aW9ucyk7XG4gICAgICBkZWJ1Z0xvZ0V2ZW50ICYmXG4gICAgICAgIGRlYnVnTG9nRXZlbnQoe1xuICAgICAgICAgIGtpbmQ6ICd0ZW1wbGF0ZSBpbnN0YW50aWF0ZWQnLFxuICAgICAgICAgIHRlbXBsYXRlLFxuICAgICAgICAgIGluc3RhbmNlLFxuICAgICAgICAgIHBhcnRzOiBpbnN0YW5jZS5fJHBhcnRzLFxuICAgICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgICBmcmFnbWVudCxcbiAgICAgICAgICB2YWx1ZXMsXG4gICAgICAgIH0pO1xuICAgICAgaW5zdGFuY2UuX3VwZGF0ZSh2YWx1ZXMpO1xuICAgICAgZGVidWdMb2dFdmVudCAmJlxuICAgICAgICBkZWJ1Z0xvZ0V2ZW50KHtcbiAgICAgICAgICBraW5kOiAndGVtcGxhdGUgaW5zdGFudGlhdGVkIGFuZCB1cGRhdGVkJyxcbiAgICAgICAgICB0ZW1wbGF0ZSxcbiAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICBwYXJ0czogaW5zdGFuY2UuXyRwYXJ0cyxcbiAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgZnJhZ21lbnQsXG4gICAgICAgICAgdmFsdWVzLFxuICAgICAgICB9KTtcbiAgICAgIHRoaXMuX2NvbW1pdE5vZGUoZnJhZ21lbnQpO1xuICAgICAgdGhpcy5fJGNvbW1pdHRlZFZhbHVlID0gaW5zdGFuY2U7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcnJpZGRlbiB2aWEgYGxpdEh0bWxQb2x5ZmlsbFN1cHBvcnRgIHRvIHByb3ZpZGUgcGxhdGZvcm0gc3VwcG9ydC5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfJGdldFRlbXBsYXRlKHJlc3VsdDogVW5jb21waWxlZFRlbXBsYXRlUmVzdWx0KSB7XG4gICAgbGV0IHRlbXBsYXRlID0gdGVtcGxhdGVDYWNoZS5nZXQocmVzdWx0LnN0cmluZ3MpO1xuICAgIGlmICh0ZW1wbGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0ZW1wbGF0ZUNhY2hlLnNldChyZXN1bHQuc3RyaW5ncywgKHRlbXBsYXRlID0gbmV3IFRlbXBsYXRlKHJlc3VsdCkpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tbWl0SXRlcmFibGUodmFsdWU6IEl0ZXJhYmxlPHVua25vd24+KTogdm9pZCB7XG4gICAgLy8gRm9yIGFuIEl0ZXJhYmxlLCB3ZSBjcmVhdGUgYSBuZXcgSW5zdGFuY2VQYXJ0IHBlciBpdGVtLCB0aGVuIHNldCBpdHNcbiAgICAvLyB2YWx1ZSB0byB0aGUgaXRlbS4gVGhpcyBpcyBhIGxpdHRsZSBiaXQgb2Ygb3ZlcmhlYWQgZm9yIGV2ZXJ5IGl0ZW0gaW5cbiAgICAvLyBhbiBJdGVyYWJsZSwgYnV0IGl0IGxldHMgdXMgcmVjdXJzZSBlYXNpbHkgYW5kIGVmZmljaWVudGx5IHVwZGF0ZSBBcnJheXNcbiAgICAvLyBvZiBUZW1wbGF0ZVJlc3VsdHMgdGhhdCB3aWxsIGJlIGNvbW1vbmx5IHJldHVybmVkIGZyb20gZXhwcmVzc2lvbnMgbGlrZTpcbiAgICAvLyBhcnJheS5tYXAoKGkpID0+IGh0bWxgJHtpfWApLCBieSByZXVzaW5nIGV4aXN0aW5nIFRlbXBsYXRlSW5zdGFuY2VzLlxuXG4gICAgLy8gSWYgdmFsdWUgaXMgYW4gYXJyYXksIHRoZW4gdGhlIHByZXZpb3VzIHJlbmRlciB3YXMgb2YgYW5cbiAgICAvLyBpdGVyYWJsZSBhbmQgdmFsdWUgd2lsbCBjb250YWluIHRoZSBDaGlsZFBhcnRzIGZyb20gdGhlIHByZXZpb3VzXG4gICAgLy8gcmVuZGVyLiBJZiB2YWx1ZSBpcyBub3QgYW4gYXJyYXksIGNsZWFyIHRoaXMgcGFydCBhbmQgbWFrZSBhIG5ld1xuICAgIC8vIGFycmF5IGZvciBDaGlsZFBhcnRzLlxuICAgIGlmICghaXNBcnJheSh0aGlzLl8kY29tbWl0dGVkVmFsdWUpKSB7XG4gICAgICB0aGlzLl8kY29tbWl0dGVkVmFsdWUgPSBbXTtcbiAgICAgIHRoaXMuXyRjbGVhcigpO1xuICAgIH1cblxuICAgIC8vIExldHMgdXMga2VlcCB0cmFjayBvZiBob3cgbWFueSBpdGVtcyB3ZSBzdGFtcGVkIHNvIHdlIGNhbiBjbGVhciBsZWZ0b3ZlclxuICAgIC8vIGl0ZW1zIGZyb20gYSBwcmV2aW91cyByZW5kZXJcbiAgICBjb25zdCBpdGVtUGFydHMgPSB0aGlzLl8kY29tbWl0dGVkVmFsdWUgYXMgQ2hpbGRQYXJ0W107XG4gICAgbGV0IHBhcnRJbmRleCA9IDA7XG4gICAgbGV0IGl0ZW1QYXJ0OiBDaGlsZFBhcnQgfCB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgIGlmIChwYXJ0SW5kZXggPT09IGl0ZW1QYXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgLy8gSWYgbm8gZXhpc3RpbmcgcGFydCwgY3JlYXRlIGEgbmV3IG9uZVxuICAgICAgICAvLyBUT0RPIChqdXN0aW5mYWduYW5pKTogdGVzdCBwZXJmIGltcGFjdCBvZiBhbHdheXMgY3JlYXRpbmcgdHdvIHBhcnRzXG4gICAgICAgIC8vIGluc3RlYWQgb2Ygc2hhcmluZyBwYXJ0cyBiZXR3ZWVuIG5vZGVzXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9saXQvbGl0L2lzc3Vlcy8xMjY2XG4gICAgICAgIGl0ZW1QYXJ0cy5wdXNoKFxuICAgICAgICAgIChpdGVtUGFydCA9IG5ldyBDaGlsZFBhcnQoXG4gICAgICAgICAgICB0aGlzLl9pbnNlcnQoY3JlYXRlTWFya2VyKCkpLFxuICAgICAgICAgICAgdGhpcy5faW5zZXJ0KGNyZWF0ZU1hcmtlcigpKSxcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNcbiAgICAgICAgICApKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmV1c2UgYW4gZXhpc3RpbmcgcGFydFxuICAgICAgICBpdGVtUGFydCA9IGl0ZW1QYXJ0c1twYXJ0SW5kZXhdO1xuICAgICAgfVxuICAgICAgaXRlbVBhcnQuXyRzZXRWYWx1ZShpdGVtKTtcbiAgICAgIHBhcnRJbmRleCsrO1xuICAgIH1cblxuICAgIGlmIChwYXJ0SW5kZXggPCBpdGVtUGFydHMubGVuZ3RoKSB7XG4gICAgICAvLyBpdGVtUGFydHMgYWx3YXlzIGhhdmUgZW5kIG5vZGVzXG4gICAgICB0aGlzLl8kY2xlYXIoXG4gICAgICAgIGl0ZW1QYXJ0ICYmIHdyYXAoaXRlbVBhcnQuXyRlbmROb2RlISkubmV4dFNpYmxpbmcsXG4gICAgICAgIHBhcnRJbmRleFxuICAgICAgKTtcbiAgICAgIC8vIFRydW5jYXRlIHRoZSBwYXJ0cyBhcnJheSBzbyBfdmFsdWUgcmVmbGVjdHMgdGhlIGN1cnJlbnQgc3RhdGVcbiAgICAgIGl0ZW1QYXJ0cy5sZW5ndGggPSBwYXJ0SW5kZXg7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIG5vZGVzIGNvbnRhaW5lZCB3aXRoaW4gdGhpcyBQYXJ0IGZyb20gdGhlIERPTS5cbiAgICpcbiAgICogQHBhcmFtIHN0YXJ0IFN0YXJ0IG5vZGUgdG8gY2xlYXIgZnJvbSwgZm9yIGNsZWFyaW5nIGEgc3Vic2V0IG9mIHRoZSBwYXJ0J3NcbiAgICogICAgIERPTSAodXNlZCB3aGVuIHRydW5jYXRpbmcgaXRlcmFibGVzKVxuICAgKiBAcGFyYW0gZnJvbSAgV2hlbiBgc3RhcnRgIGlzIHNwZWNpZmllZCwgdGhlIGluZGV4IHdpdGhpbiB0aGUgaXRlcmFibGUgZnJvbVxuICAgKiAgICAgd2hpY2ggQ2hpbGRQYXJ0cyBhcmUgYmVpbmcgcmVtb3ZlZCwgdXNlZCBmb3IgZGlzY29ubmVjdGluZyBkaXJlY3RpdmVzXG4gICAqICAgICBpbiB0aG9zZSBQYXJ0cy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfJGNsZWFyKFxuICAgIHN0YXJ0OiBDaGlsZE5vZGUgfCBudWxsID0gd3JhcCh0aGlzLl8kc3RhcnROb2RlKS5uZXh0U2libGluZyxcbiAgICBmcm9tPzogbnVtYmVyXG4gICkge1xuICAgIHRoaXMuXyRub3RpZnlDb25uZWN0aW9uQ2hhbmdlZD8uKGZhbHNlLCB0cnVlLCBmcm9tKTtcbiAgICB3aGlsZSAoc3RhcnQgIT09IHRoaXMuXyRlbmROb2RlKSB7XG4gICAgICAvLyBUaGUgbm9uLW51bGwgYXNzZXJ0aW9uIGlzIHNhZmUgYmVjYXVzZSBpZiBfJHN0YXJ0Tm9kZS5uZXh0U2libGluZyBpc1xuICAgICAgLy8gbnVsbCwgdGhlbiBfJGVuZE5vZGUgaXMgYWxzbyBudWxsLCBhbmQgd2Ugd291bGQgbm90IGhhdmUgZW50ZXJlZCB0aGlzXG4gICAgICAvLyBsb29wLlxuICAgICAgY29uc3QgbiA9IHdyYXAoc3RhcnQhKS5uZXh0U2libGluZztcbiAgICAgIHdyYXAoc3RhcnQhKS5yZW1vdmUoKTtcbiAgICAgIHN0YXJ0ID0gbjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50YXRpb24gb2YgUm9vdFBhcnQncyBgaXNDb25uZWN0ZWRgLiBOb3RlIHRoYXQgdGhpcyBtZXRob2RcbiAgICogc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIGBSb290UGFydGBzICh0aGUgYENoaWxkUGFydGAgcmV0dXJuZWQgZnJvbSBhXG4gICAqIHRvcC1sZXZlbCBgcmVuZGVyKClgIGNhbGwpLiBJdCBoYXMgbm8gZWZmZWN0IG9uIG5vbi1yb290IENoaWxkUGFydHMuXG4gICAqIEBwYXJhbSBpc0Nvbm5lY3RlZCBXaGV0aGVyIHRvIHNldFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNldENvbm5lY3RlZChpc0Nvbm5lY3RlZDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl8kcGFyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX19pc0Nvbm5lY3RlZCA9IGlzQ29ubmVjdGVkO1xuICAgICAgdGhpcy5fJG5vdGlmeUNvbm5lY3Rpb25DaGFuZ2VkPy4oaXNDb25uZWN0ZWQpO1xuICAgIH0gZWxzZSBpZiAoREVWX01PREUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3BhcnQuc2V0Q29ubmVjdGVkKCkgbWF5IG9ubHkgYmUgY2FsbGVkIG9uIGEgJyArXG4gICAgICAgICAgJ1Jvb3RQYXJ0IHJldHVybmVkIGZyb20gcmVuZGVyKCkuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBIHRvcC1sZXZlbCBgQ2hpbGRQYXJ0YCByZXR1cm5lZCBmcm9tIGByZW5kZXJgIHRoYXQgbWFuYWdlcyB0aGUgY29ubmVjdGVkXG4gKiBzdGF0ZSBvZiBgQXN5bmNEaXJlY3RpdmVgcyBjcmVhdGVkIHRocm91Z2hvdXQgdGhlIHRyZWUgYmVsb3cgaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9vdFBhcnQgZXh0ZW5kcyBDaGlsZFBhcnQge1xuICAvKipcbiAgICogU2V0cyB0aGUgY29ubmVjdGlvbiBzdGF0ZSBmb3IgYEFzeW5jRGlyZWN0aXZlYHMgY29udGFpbmVkIHdpdGhpbiB0aGlzIHJvb3RcbiAgICogQ2hpbGRQYXJ0LlxuICAgKlxuICAgKiBsaXQtaHRtbCBkb2VzIG5vdCBhdXRvbWF0aWNhbGx5IG1vbml0b3IgdGhlIGNvbm5lY3RlZG5lc3Mgb2YgRE9NIHJlbmRlcmVkO1xuICAgKiBhcyBzdWNoLCBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlciB0byBgcmVuZGVyYCB0byBlbnN1cmUgdGhhdFxuICAgKiBgcGFydC5zZXRDb25uZWN0ZWQoZmFsc2UpYCBpcyBjYWxsZWQgYmVmb3JlIHRoZSBwYXJ0IG9iamVjdCBpcyBwb3RlbnRpYWxseVxuICAgKiBkaXNjYXJkZWQsIHRvIGVuc3VyZSB0aGF0IGBBc3luY0RpcmVjdGl2ZWBzIGhhdmUgYSBjaGFuY2UgdG8gZGlzcG9zZSBvZlxuICAgKiBhbnkgcmVzb3VyY2VzIGJlaW5nIGhlbGQuIElmIGEgYFJvb3RQYXJ0YCB0aGF0IHdhcyBwcmV2aW91c2x5XG4gICAqIGRpc2Nvbm5lY3RlZCBpcyBzdWJzZXF1ZW50bHkgcmUtY29ubmVjdGVkIChhbmQgaXRzIGBBc3luY0RpcmVjdGl2ZWBzIHNob3VsZFxuICAgKiByZS1jb25uZWN0KSwgYHNldENvbm5lY3RlZCh0cnVlKWAgc2hvdWxkIGJlIGNhbGxlZC5cbiAgICpcbiAgICogQHBhcmFtIGlzQ29ubmVjdGVkIFdoZXRoZXIgZGlyZWN0aXZlcyB3aXRoaW4gdGhpcyB0cmVlIHNob3VsZCBiZSBjb25uZWN0ZWRcbiAgICogb3Igbm90XG4gICAqL1xuICBzZXRDb25uZWN0ZWQoaXNDb25uZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSB7QXR0cmlidXRlUGFydH07XG5jbGFzcyBBdHRyaWJ1dGVQYXJ0IGltcGxlbWVudHMgRGlzY29ubmVjdGFibGUge1xuICByZWFkb25seSB0eXBlOlxuICAgIHwgdHlwZW9mIEFUVFJJQlVURV9QQVJUXG4gICAgfCB0eXBlb2YgUFJPUEVSVFlfUEFSVFxuICAgIHwgdHlwZW9mIEJPT0xFQU5fQVRUUklCVVRFX1BBUlRcbiAgICB8IHR5cGVvZiBFVkVOVF9QQVJUID0gQVRUUklCVVRFX1BBUlQ7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9wdGlvbnM6IFJlbmRlck9wdGlvbnMgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIElmIHRoaXMgYXR0cmlidXRlIHBhcnQgcmVwcmVzZW50cyBhbiBpbnRlcnBvbGF0aW9uLCB0aGlzIGNvbnRhaW5zIHRoZVxuICAgKiBzdGF0aWMgc3RyaW5ncyBvZiB0aGUgaW50ZXJwb2xhdGlvbi4gRm9yIHNpbmdsZS12YWx1ZSwgY29tcGxldGUgYmluZGluZ3MsXG4gICAqIHRoaXMgaXMgdW5kZWZpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaW5ncz86IFJlYWRvbmx5QXJyYXk8c3RyaW5nPjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfJGNvbW1pdHRlZFZhbHVlOiB1bmtub3duIHwgQXJyYXk8dW5rbm93bj4gPSBub3RoaW5nO1xuICAvKiogQGludGVybmFsICovXG4gIF9fZGlyZWN0aXZlcz86IEFycmF5PERpcmVjdGl2ZSB8IHVuZGVmaW5lZD47XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgXyRwYXJlbnQ6IERpc2Nvbm5lY3RhYmxlO1xuICAvKiogQGludGVybmFsICovXG4gIF8kZGlzY29ubmVjdGFibGVDaGlsZHJlbj86IFNldDxEaXNjb25uZWN0YWJsZT4gPSB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIF9zYW5pdGl6ZXI6IFZhbHVlU2FuaXRpemVyIHwgdW5kZWZpbmVkO1xuXG4gIGdldCB0YWdOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZTtcbiAgfVxuXG4gIC8vIFNlZSBjb21tZW50IGluIERpc2Nvbm5lY3RhYmxlIGludGVyZmFjZSBmb3Igd2h5IHRoaXMgaXMgYSBnZXR0ZXJcbiAgZ2V0IF8kaXNDb25uZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuXyRwYXJlbnQuXyRpc0Nvbm5lY3RlZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBzdHJpbmdzOiBSZWFkb25seUFycmF5PHN0cmluZz4sXG4gICAgcGFyZW50OiBEaXNjb25uZWN0YWJsZSxcbiAgICBvcHRpb25zOiBSZW5kZXJPcHRpb25zIHwgdW5kZWZpbmVkXG4gICkge1xuICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLl8kcGFyZW50ID0gcGFyZW50O1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgaWYgKHN0cmluZ3MubGVuZ3RoID4gMiB8fCBzdHJpbmdzWzBdICE9PSAnJyB8fCBzdHJpbmdzWzFdICE9PSAnJykge1xuICAgICAgdGhpcy5fJGNvbW1pdHRlZFZhbHVlID0gbmV3IEFycmF5KHN0cmluZ3MubGVuZ3RoIC0gMSkuZmlsbChuZXcgU3RyaW5nKCkpO1xuICAgICAgdGhpcy5zdHJpbmdzID0gc3RyaW5ncztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fJGNvbW1pdHRlZFZhbHVlID0gbm90aGluZztcbiAgICB9XG4gICAgaWYgKEVOQUJMRV9FWFRSQV9TRUNVUklUWV9IT09LUykge1xuICAgICAgdGhpcy5fc2FuaXRpemVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGlzIHBhcnQgYnkgcmVzb2x2aW5nIHRoZSB2YWx1ZSBmcm9tIHBvc3NpYmx5IG11bHRpcGxlXG4gICAqIHZhbHVlcyBhbmQgc3RhdGljIHN0cmluZ3MgYW5kIGNvbW1pdHRpbmcgaXQgdG8gdGhlIERPTS5cbiAgICogSWYgdGhpcyBwYXJ0IGlzIHNpbmdsZS12YWx1ZWQsIGB0aGlzLl9zdHJpbmdzYCB3aWxsIGJlIHVuZGVmaW5lZCwgYW5kIHRoZVxuICAgKiBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgd2l0aCBhIHNpbmdsZSB2YWx1ZSBhcmd1bWVudC4gSWYgdGhpcyBwYXJ0IGlzXG4gICAqIG11bHRpLXZhbHVlLCBgdGhpcy5fc3RyaW5nc2Agd2lsbCBiZSBkZWZpbmVkLCBhbmQgdGhlIG1ldGhvZCBpcyBjYWxsZWRcbiAgICogd2l0aCB0aGUgdmFsdWUgYXJyYXkgb2YgdGhlIHBhcnQncyBvd25pbmcgVGVtcGxhdGVJbnN0YW5jZSwgYW5kIGFuIG9mZnNldFxuICAgKiBpbnRvIHRoZSB2YWx1ZSBhcnJheSBmcm9tIHdoaWNoIHRoZSB2YWx1ZXMgc2hvdWxkIGJlIHJlYWQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIG92ZXJsb2FkZWQgdGhpcyB3YXkgdG8gZWxpbWluYXRlIHNob3J0LWxpdmVkIGFycmF5IHNsaWNlc1xuICAgKiBvZiB0aGUgdGVtcGxhdGUgaW5zdGFuY2UgdmFsdWVzLCBhbmQgYWxsb3cgYSBmYXN0LXBhdGggZm9yIHNpbmdsZS12YWx1ZWRcbiAgICogcGFydHMuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgcGFydCB2YWx1ZSwgb3IgYW4gYXJyYXkgb2YgdmFsdWVzIGZvciBtdWx0aS12YWx1ZWQgcGFydHNcbiAgICogQHBhcmFtIHZhbHVlSW5kZXggdGhlIGluZGV4IHRvIHN0YXJ0IHJlYWRpbmcgdmFsdWVzIGZyb20uIGB1bmRlZmluZWRgIGZvclxuICAgKiAgIHNpbmdsZS12YWx1ZWQgcGFydHNcbiAgICogQHBhcmFtIG5vQ29tbWl0IGNhdXNlcyB0aGUgcGFydCB0byBub3QgY29tbWl0IGl0cyB2YWx1ZSB0byB0aGUgRE9NLiBVc2VkXG4gICAqICAgaW4gaHlkcmF0aW9uIHRvIHByaW1lIGF0dHJpYnV0ZSBwYXJ0cyB3aXRoIHRoZWlyIGZpcnN0LXJlbmRlcmVkIHZhbHVlLFxuICAgKiAgIGJ1dCBub3Qgc2V0IHRoZSBhdHRyaWJ1dGUsIGFuZCBpbiBTU1IgdG8gbm8tb3AgdGhlIERPTSBvcGVyYXRpb24gYW5kXG4gICAqICAgY2FwdHVyZSB0aGUgdmFsdWUgZm9yIHNlcmlhbGl6YXRpb24uXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgXyRzZXRWYWx1ZShcbiAgICB2YWx1ZTogdW5rbm93biB8IEFycmF5PHVua25vd24+LFxuICAgIGRpcmVjdGl2ZVBhcmVudDogRGlyZWN0aXZlUGFyZW50ID0gdGhpcyxcbiAgICB2YWx1ZUluZGV4PzogbnVtYmVyLFxuICAgIG5vQ29tbWl0PzogYm9vbGVhblxuICApIHtcbiAgICBjb25zdCBzdHJpbmdzID0gdGhpcy5zdHJpbmdzO1xuXG4gICAgLy8gV2hldGhlciBhbnkgb2YgdGhlIHZhbHVlcyBoYXMgY2hhbmdlZCwgZm9yIGRpcnR5LWNoZWNraW5nXG4gICAgbGV0IGNoYW5nZSA9IGZhbHNlO1xuXG4gICAgaWYgKHN0cmluZ3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gU2luZ2xlLXZhbHVlIGJpbmRpbmcgY2FzZVxuICAgICAgdmFsdWUgPSByZXNvbHZlRGlyZWN0aXZlKHRoaXMsIHZhbHVlLCBkaXJlY3RpdmVQYXJlbnQsIDApO1xuICAgICAgY2hhbmdlID1cbiAgICAgICAgIWlzUHJpbWl0aXZlKHZhbHVlKSB8fFxuICAgICAgICAodmFsdWUgIT09IHRoaXMuXyRjb21taXR0ZWRWYWx1ZSAmJiB2YWx1ZSAhPT0gbm9DaGFuZ2UpO1xuICAgICAgaWYgKGNoYW5nZSkge1xuICAgICAgICB0aGlzLl8kY29tbWl0dGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSW50ZXJwb2xhdGlvbiBjYXNlXG4gICAgICBjb25zdCB2YWx1ZXMgPSB2YWx1ZSBhcyBBcnJheTx1bmtub3duPjtcbiAgICAgIHZhbHVlID0gc3RyaW5nc1swXTtcblxuICAgICAgbGV0IGksIHY7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgc3RyaW5ncy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgdiA9IHJlc29sdmVEaXJlY3RpdmUodGhpcywgdmFsdWVzW3ZhbHVlSW5kZXghICsgaV0sIGRpcmVjdGl2ZVBhcmVudCwgaSk7XG5cbiAgICAgICAgaWYgKHYgPT09IG5vQ2hhbmdlKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIHVzZXItcHJvdmlkZWQgdmFsdWUgaXMgYG5vQ2hhbmdlYCwgdXNlIHRoZSBwcmV2aW91cyB2YWx1ZVxuICAgICAgICAgIHYgPSAodGhpcy5fJGNvbW1pdHRlZFZhbHVlIGFzIEFycmF5PHVua25vd24+KVtpXTtcbiAgICAgICAgfVxuICAgICAgICBjaGFuZ2UgfHw9XG4gICAgICAgICAgIWlzUHJpbWl0aXZlKHYpIHx8IHYgIT09ICh0aGlzLl8kY29tbWl0dGVkVmFsdWUgYXMgQXJyYXk8dW5rbm93bj4pW2ldO1xuICAgICAgICBpZiAodiA9PT0gbm90aGluZykge1xuICAgICAgICAgIHZhbHVlID0gbm90aGluZztcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gbm90aGluZykge1xuICAgICAgICAgIHZhbHVlICs9ICh2ID8/ICcnKSArIHN0cmluZ3NbaSArIDFdO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdlIGFsd2F5cyByZWNvcmQgZWFjaCB2YWx1ZSwgZXZlbiBpZiBvbmUgaXMgYG5vdGhpbmdgLCBmb3IgZnV0dXJlXG4gICAgICAgIC8vIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICAgICh0aGlzLl8kY29tbWl0dGVkVmFsdWUgYXMgQXJyYXk8dW5rbm93bj4pW2ldID0gdjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZSAmJiAhbm9Db21taXQpIHtcbiAgICAgIHRoaXMuX2NvbW1pdFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIF9jb21taXRWYWx1ZSh2YWx1ZTogdW5rbm93bikge1xuICAgIGlmICh2YWx1ZSA9PT0gbm90aGluZykge1xuICAgICAgKHdyYXAodGhpcy5lbGVtZW50KSBhcyBFbGVtZW50KS5yZW1vdmVBdHRyaWJ1dGUodGhpcy5uYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKEVOQUJMRV9FWFRSQV9TRUNVUklUWV9IT09LUykge1xuICAgICAgICBpZiAodGhpcy5fc2FuaXRpemVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLl9zYW5pdGl6ZXIgPSBzYW5pdGl6ZXJGYWN0b3J5SW50ZXJuYWwoXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICB0aGlzLm5hbWUsXG4gICAgICAgICAgICAnYXR0cmlidXRlJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSB0aGlzLl9zYW5pdGl6ZXIodmFsdWUgPz8gJycpO1xuICAgICAgfVxuICAgICAgZGVidWdMb2dFdmVudCAmJlxuICAgICAgICBkZWJ1Z0xvZ0V2ZW50KHtcbiAgICAgICAgICBraW5kOiAnY29tbWl0IGF0dHJpYnV0ZScsXG4gICAgICAgICAgZWxlbWVudDogdGhpcy5lbGVtZW50LFxuICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgKHdyYXAodGhpcy5lbGVtZW50KSBhcyBFbGVtZW50KS5zZXRBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgKHZhbHVlID8/ICcnKSBhcyBzdHJpbmdcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB0eXBlIHtQcm9wZXJ0eVBhcnR9O1xuY2xhc3MgUHJvcGVydHlQYXJ0IGV4dGVuZHMgQXR0cmlidXRlUGFydCB7XG4gIG92ZXJyaWRlIHJlYWRvbmx5IHR5cGUgPSBQUk9QRVJUWV9QQVJUO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb3ZlcnJpZGUgX2NvbW1pdFZhbHVlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgaWYgKEVOQUJMRV9FWFRSQV9TRUNVUklUWV9IT09LUykge1xuICAgICAgaWYgKHRoaXMuX3Nhbml0aXplciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3Nhbml0aXplciA9IHNhbml0aXplckZhY3RvcnlJbnRlcm5hbChcbiAgICAgICAgICB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICAgICdwcm9wZXJ0eSdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHZhbHVlID0gdGhpcy5fc2FuaXRpemVyKHZhbHVlKTtcbiAgICB9XG4gICAgZGVidWdMb2dFdmVudCAmJlxuICAgICAgZGVidWdMb2dFdmVudCh7XG4gICAgICAgIGtpbmQ6ICdjb21taXQgcHJvcGVydHknLFxuICAgICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnQsXG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgKHRoaXMuZWxlbWVudCBhcyBhbnkpW3RoaXMubmFtZV0gPSB2YWx1ZSA9PT0gbm90aGluZyA/IHVuZGVmaW5lZCA6IHZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIHtCb29sZWFuQXR0cmlidXRlUGFydH07XG5jbGFzcyBCb29sZWFuQXR0cmlidXRlUGFydCBleHRlbmRzIEF0dHJpYnV0ZVBhcnQge1xuICBvdmVycmlkZSByZWFkb25seSB0eXBlID0gQk9PTEVBTl9BVFRSSUJVVEVfUEFSVDtcblxuICAvKiogQGludGVybmFsICovXG4gIG92ZXJyaWRlIF9jb21taXRWYWx1ZSh2YWx1ZTogdW5rbm93bikge1xuICAgIGRlYnVnTG9nRXZlbnQgJiZcbiAgICAgIGRlYnVnTG9nRXZlbnQoe1xuICAgICAgICBraW5kOiAnY29tbWl0IGJvb2xlYW4gYXR0cmlidXRlJyxcbiAgICAgICAgZWxlbWVudDogdGhpcy5lbGVtZW50LFxuICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgIHZhbHVlOiAhISh2YWx1ZSAmJiB2YWx1ZSAhPT0gbm90aGluZyksXG4gICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgICh3cmFwKHRoaXMuZWxlbWVudCkgYXMgRWxlbWVudCkudG9nZ2xlQXR0cmlidXRlKFxuICAgICAgdGhpcy5uYW1lLFxuICAgICAgISF2YWx1ZSAmJiB2YWx1ZSAhPT0gbm90aGluZ1xuICAgICk7XG4gIH1cbn1cblxudHlwZSBFdmVudExpc3RlbmVyV2l0aE9wdGlvbnMgPSBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0ICZcbiAgUGFydGlhbDxBZGRFdmVudExpc3RlbmVyT3B0aW9ucz47XG5cbi8qKlxuICogQW4gQXR0cmlidXRlUGFydCB0aGF0IG1hbmFnZXMgYW4gZXZlbnQgbGlzdGVuZXIgdmlhIGFkZC9yZW1vdmVFdmVudExpc3RlbmVyLlxuICpcbiAqIFRoaXMgcGFydCB3b3JrcyBieSBhZGRpbmcgaXRzZWxmIGFzIHRoZSBldmVudCBsaXN0ZW5lciBvbiBhbiBlbGVtZW50LCB0aGVuXG4gKiBkZWxlZ2F0aW5nIHRvIHRoZSB2YWx1ZSBwYXNzZWQgdG8gaXQuIFRoaXMgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvXG4gKiBhZGQvcmVtb3ZlRXZlbnRMaXN0ZW5lciBpZiB0aGUgbGlzdGVuZXIgY2hhbmdlcyBmcmVxdWVudGx5LCBzdWNoIGFzIHdoZW4gYW5cbiAqIGlubGluZSBmdW5jdGlvbiBpcyB1c2VkIGFzIGEgbGlzdGVuZXIuXG4gKlxuICogQmVjYXVzZSBldmVudCBvcHRpb25zIGFyZSBwYXNzZWQgd2hlbiBhZGRpbmcgbGlzdGVuZXJzLCB3ZSBtdXN0IHRha2UgY2FzZVxuICogdG8gYWRkIGFuZCByZW1vdmUgdGhlIHBhcnQgYXMgYSBsaXN0ZW5lciB3aGVuIHRoZSBldmVudCBvcHRpb25zIGNoYW5nZS5cbiAqL1xuZXhwb3J0IHR5cGUge0V2ZW50UGFydH07XG5jbGFzcyBFdmVudFBhcnQgZXh0ZW5kcyBBdHRyaWJ1dGVQYXJ0IHtcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgdHlwZSA9IEVWRU5UX1BBUlQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHN0cmluZ3M6IFJlYWRvbmx5QXJyYXk8c3RyaW5nPixcbiAgICBwYXJlbnQ6IERpc2Nvbm5lY3RhYmxlLFxuICAgIG9wdGlvbnM6IFJlbmRlck9wdGlvbnMgfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgbmFtZSwgc3RyaW5ncywgcGFyZW50LCBvcHRpb25zKTtcblxuICAgIGlmIChERVZfTU9ERSAmJiB0aGlzLnN0cmluZ3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQSBcXGA8JHtlbGVtZW50LmxvY2FsTmFtZX0+XFxgIGhhcyBhIFxcYEAke25hbWV9PS4uLlxcYCBsaXN0ZW5lciB3aXRoIGAgK1xuICAgICAgICAgICdpbnZhbGlkIGNvbnRlbnQuIEV2ZW50IGxpc3RlbmVycyBpbiB0ZW1wbGF0ZXMgbXVzdCBoYXZlIGV4YWN0bHkgJyArXG4gICAgICAgICAgJ29uZSBleHByZXNzaW9uIGFuZCBubyBzdXJyb3VuZGluZyB0ZXh0LidcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gRXZlbnRQYXJ0IGRvZXMgbm90IHVzZSB0aGUgYmFzZSBfJHNldFZhbHVlL19yZXNvbHZlVmFsdWUgaW1wbGVtZW50YXRpb25cbiAgLy8gc2luY2UgdGhlIGRpcnR5IGNoZWNraW5nIGlzIG1vcmUgY29tcGxleFxuICAvKiogQGludGVybmFsICovXG4gIG92ZXJyaWRlIF8kc2V0VmFsdWUoXG4gICAgbmV3TGlzdGVuZXI6IHVua25vd24sXG4gICAgZGlyZWN0aXZlUGFyZW50OiBEaXJlY3RpdmVQYXJlbnQgPSB0aGlzXG4gICkge1xuICAgIG5ld0xpc3RlbmVyID1cbiAgICAgIHJlc29sdmVEaXJlY3RpdmUodGhpcywgbmV3TGlzdGVuZXIsIGRpcmVjdGl2ZVBhcmVudCwgMCkgPz8gbm90aGluZztcbiAgICBpZiAobmV3TGlzdGVuZXIgPT09IG5vQ2hhbmdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG9sZExpc3RlbmVyID0gdGhpcy5fJGNvbW1pdHRlZFZhbHVlO1xuXG4gICAgLy8gSWYgdGhlIG5ldyB2YWx1ZSBpcyBub3RoaW5nIG9yIGFueSBvcHRpb25zIGNoYW5nZSB3ZSBoYXZlIHRvIHJlbW92ZSB0aGVcbiAgICAvLyBwYXJ0IGFzIGEgbGlzdGVuZXIuXG4gICAgY29uc3Qgc2hvdWxkUmVtb3ZlTGlzdGVuZXIgPVxuICAgICAgKG5ld0xpc3RlbmVyID09PSBub3RoaW5nICYmIG9sZExpc3RlbmVyICE9PSBub3RoaW5nKSB8fFxuICAgICAgKG5ld0xpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucykuY2FwdHVyZSAhPT1cbiAgICAgICAgKG9sZExpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucykuY2FwdHVyZSB8fFxuICAgICAgKG5ld0xpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucykub25jZSAhPT1cbiAgICAgICAgKG9sZExpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucykub25jZSB8fFxuICAgICAgKG5ld0xpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucykucGFzc2l2ZSAhPT1cbiAgICAgICAgKG9sZExpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucykucGFzc2l2ZTtcblxuICAgIC8vIElmIHRoZSBuZXcgdmFsdWUgaXMgbm90IG5vdGhpbmcgYW5kIHdlIHJlbW92ZWQgdGhlIGxpc3RlbmVyLCB3ZSBoYXZlXG4gICAgLy8gdG8gYWRkIHRoZSBwYXJ0IGFzIGEgbGlzdGVuZXIuXG4gICAgY29uc3Qgc2hvdWxkQWRkTGlzdGVuZXIgPVxuICAgICAgbmV3TGlzdGVuZXIgIT09IG5vdGhpbmcgJiZcbiAgICAgIChvbGRMaXN0ZW5lciA9PT0gbm90aGluZyB8fCBzaG91bGRSZW1vdmVMaXN0ZW5lcik7XG5cbiAgICBkZWJ1Z0xvZ0V2ZW50ICYmXG4gICAgICBkZWJ1Z0xvZ0V2ZW50KHtcbiAgICAgICAga2luZDogJ2NvbW1pdCBldmVudCBsaXN0ZW5lcicsXG4gICAgICAgIGVsZW1lbnQ6IHRoaXMuZWxlbWVudCxcbiAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICB2YWx1ZTogbmV3TGlzdGVuZXIsXG4gICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgcmVtb3ZlTGlzdGVuZXI6IHNob3VsZFJlbW92ZUxpc3RlbmVyLFxuICAgICAgICBhZGRMaXN0ZW5lcjogc2hvdWxkQWRkTGlzdGVuZXIsXG4gICAgICAgIG9sZExpc3RlbmVyLFxuICAgICAgfSk7XG4gICAgaWYgKHNob3VsZFJlbW92ZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICB0aGlzLFxuICAgICAgICBvbGRMaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyV2l0aE9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChzaG91bGRBZGRMaXN0ZW5lcikge1xuICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgdGhpcyxcbiAgICAgICAgbmV3TGlzdGVuZXIgYXMgRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLl8kY29tbWl0dGVkVmFsdWUgPSBuZXdMaXN0ZW5lcjtcbiAgfVxuXG4gIGhhbmRsZUV2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fJGNvbW1pdHRlZFZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLl8kY29tbWl0dGVkVmFsdWUuY2FsbCh0aGlzLm9wdGlvbnM/Lmhvc3QgPz8gdGhpcy5lbGVtZW50LCBldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICh0aGlzLl8kY29tbWl0dGVkVmFsdWUgYXMgRXZlbnRMaXN0ZW5lck9iamVjdCkuaGFuZGxlRXZlbnQoZXZlbnQpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSB7RWxlbWVudFBhcnR9O1xuY2xhc3MgRWxlbWVudFBhcnQgaW1wbGVtZW50cyBEaXNjb25uZWN0YWJsZSB7XG4gIHJlYWRvbmx5IHR5cGUgPSBFTEVNRU5UX1BBUlQ7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfX2RpcmVjdGl2ZT86IERpcmVjdGl2ZTtcblxuICAvLyBUaGlzIGlzIHRvIGVuc3VyZSB0aGF0IGV2ZXJ5IFBhcnQgaGFzIGEgXyRjb21taXR0ZWRWYWx1ZVxuICBfJGNvbW1pdHRlZFZhbHVlOiB1bmRlZmluZWQ7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfJHBhcmVudCE6IERpc2Nvbm5lY3RhYmxlO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgXyRkaXNjb25uZWN0YWJsZUNoaWxkcmVuPzogU2V0PERpc2Nvbm5lY3RhYmxlPiA9IHVuZGVmaW5lZDtcblxuICBvcHRpb25zOiBSZW5kZXJPcHRpb25zIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50LFxuICAgIHBhcmVudDogRGlzY29ubmVjdGFibGUsXG4gICAgb3B0aW9uczogUmVuZGVyT3B0aW9ucyB8IHVuZGVmaW5lZFxuICApIHtcbiAgICB0aGlzLl8kcGFyZW50ID0gcGFyZW50O1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICAvLyBTZWUgY29tbWVudCBpbiBEaXNjb25uZWN0YWJsZSBpbnRlcmZhY2UgZm9yIHdoeSB0aGlzIGlzIGEgZ2V0dGVyXG4gIGdldCBfJGlzQ29ubmVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl8kcGFyZW50Ll8kaXNDb25uZWN0ZWQ7XG4gIH1cblxuICBfJHNldFZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgZGVidWdMb2dFdmVudCAmJlxuICAgICAgZGVidWdMb2dFdmVudCh7XG4gICAgICAgIGtpbmQ6ICdjb21taXQgdG8gZWxlbWVudCBiaW5kaW5nJyxcbiAgICAgICAgZWxlbWVudDogdGhpcy5lbGVtZW50LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgfSk7XG4gICAgcmVzb2x2ZURpcmVjdGl2ZSh0aGlzLCB2YWx1ZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBFTkQgVVNFUlMgU0hPVUxEIE5PVCBSRUxZIE9OIFRISVMgT0JKRUNULlxuICpcbiAqIFByaXZhdGUgZXhwb3J0cyBmb3IgdXNlIGJ5IG90aGVyIExpdCBwYWNrYWdlcywgbm90IGludGVuZGVkIGZvciB1c2UgYnlcbiAqIGV4dGVybmFsIHVzZXJzLlxuICpcbiAqIFdlIGN1cnJlbnRseSBkbyBub3QgbWFrZSBhIG1hbmdsZWQgcm9sbHVwIGJ1aWxkIG9mIHRoZSBsaXQtc3NyIGNvZGUuIEluIG9yZGVyXG4gKiB0byBrZWVwIGEgbnVtYmVyIG9mIChvdGhlcndpc2UgcHJpdmF0ZSkgdG9wLWxldmVsIGV4cG9ydHMgbWFuZ2xlZCBpbiB0aGVcbiAqIGNsaWVudCBzaWRlIGNvZGUsIHdlIGV4cG9ydCBhIF8kTEggb2JqZWN0IGNvbnRhaW5pbmcgdGhvc2UgbWVtYmVycyAob3JcbiAqIGhlbHBlciBtZXRob2RzIGZvciBhY2Nlc3NpbmcgcHJpdmF0ZSBmaWVsZHMgb2YgdGhvc2UgbWVtYmVycyksIGFuZCB0aGVuXG4gKiByZS1leHBvcnQgdGhlbSBmb3IgdXNlIGluIGxpdC1zc3IuIFRoaXMga2VlcHMgbGl0LXNzciBhZ25vc3RpYyB0byB3aGV0aGVyIHRoZVxuICogY2xpZW50LXNpZGUgY29kZSBpcyBiZWluZyB1c2VkIGluIGBkZXZgIG1vZGUgb3IgYHByb2RgIG1vZGUuXG4gKlxuICogVGhpcyBoYXMgYSB1bmlxdWUgbmFtZSwgdG8gZGlzYW1iaWd1YXRlIGl0IGZyb20gcHJpdmF0ZSBleHBvcnRzIGluXG4gKiBsaXQtZWxlbWVudCwgd2hpY2ggcmUtZXhwb3J0cyBhbGwgb2YgbGl0LWh0bWwuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IF8kTEggPSB7XG4gIC8vIFVzZWQgaW4gbGl0LXNzclxuICBfYm91bmRBdHRyaWJ1dGVTdWZmaXg6IGJvdW5kQXR0cmlidXRlU3VmZml4LFxuICBfbWFya2VyOiBtYXJrZXIsXG4gIF9tYXJrZXJNYXRjaDogbWFya2VyTWF0Y2gsXG4gIF9IVE1MX1JFU1VMVDogSFRNTF9SRVNVTFQsXG4gIF9nZXRUZW1wbGF0ZUh0bWw6IGdldFRlbXBsYXRlSHRtbCxcbiAgLy8gVXNlZCBpbiB0ZXN0cyBhbmQgcHJpdmF0ZS1zc3Itc3VwcG9ydFxuICBfVGVtcGxhdGVJbnN0YW5jZTogVGVtcGxhdGVJbnN0YW5jZSxcbiAgX2lzSXRlcmFibGU6IGlzSXRlcmFibGUsXG4gIF9yZXNvbHZlRGlyZWN0aXZlOiByZXNvbHZlRGlyZWN0aXZlLFxuICBfQ2hpbGRQYXJ0OiBDaGlsZFBhcnQsXG4gIF9BdHRyaWJ1dGVQYXJ0OiBBdHRyaWJ1dGVQYXJ0LFxuICBfQm9vbGVhbkF0dHJpYnV0ZVBhcnQ6IEJvb2xlYW5BdHRyaWJ1dGVQYXJ0LFxuICBfRXZlbnRQYXJ0OiBFdmVudFBhcnQsXG4gIF9Qcm9wZXJ0eVBhcnQ6IFByb3BlcnR5UGFydCxcbiAgX0VsZW1lbnRQYXJ0OiBFbGVtZW50UGFydCxcbn07XG5cbi8vIEFwcGx5IHBvbHlmaWxscyBpZiBhdmFpbGFibGVcbmNvbnN0IHBvbHlmaWxsU3VwcG9ydCA9IERFVl9NT0RFXG4gID8gZ2xvYmFsLmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnREZXZNb2RlXG4gIDogZ2xvYmFsLmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQ7XG5wb2x5ZmlsbFN1cHBvcnQ/LihUZW1wbGF0ZSwgQ2hpbGRQYXJ0KTtcblxuLy8gSU1QT1JUQU5UOiBkbyBub3QgY2hhbmdlIHRoZSBwcm9wZXJ0eSBuYW1lIG9yIHRoZSBhc3NpZ25tZW50IGV4cHJlc3Npb24uXG4vLyBUaGlzIGxpbmUgd2lsbCBiZSB1c2VkIGluIHJlZ2V4ZXMgdG8gc2VhcmNoIGZvciBsaXQtaHRtbCB1c2FnZS5cbihnbG9iYWwubGl0SHRtbFZlcnNpb25zID8/PSBbXSkucHVzaCgnMy4zLjInKTtcbmlmIChERVZfTU9ERSAmJiBnbG9iYWwubGl0SHRtbFZlcnNpb25zLmxlbmd0aCA+IDEpIHtcbiAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgIGlzc3VlV2FybmluZyEoXG4gICAgICAnbXVsdGlwbGUtdmVyc2lvbnMnLFxuICAgICAgYE11bHRpcGxlIHZlcnNpb25zIG9mIExpdCBsb2FkZWQuIGAgK1xuICAgICAgICBgTG9hZGluZyBtdWx0aXBsZSB2ZXJzaW9ucyBpcyBub3QgcmVjb21tZW5kZWQuYFxuICAgICk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSB2YWx1ZSwgdXN1YWxseSBhIGxpdC1odG1sIFRlbXBsYXRlUmVzdWx0LCB0byB0aGUgY29udGFpbmVyLlxuICpcbiAqIFRoaXMgZXhhbXBsZSByZW5kZXJzIHRoZSB0ZXh0IFwiSGVsbG8sIFpvZSFcIiBpbnNpZGUgYSBwYXJhZ3JhcGggdGFnLCBhcHBlbmRpbmdcbiAqIGl0IHRvIHRoZSBjb250YWluZXIgYGRvY3VtZW50LmJvZHlgLlxuICpcbiAqIGBgYGpzXG4gKiBpbXBvcnQge2h0bWwsIHJlbmRlcn0gZnJvbSAnbGl0JztcbiAqXG4gKiBjb25zdCBuYW1lID0gXCJab2VcIjtcbiAqIHJlbmRlcihodG1sYDxwPkhlbGxvLCAke25hbWV9ITwvcD5gLCBkb2N1bWVudC5ib2R5KTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB2YWx1ZSBBbnkgW3JlbmRlcmFibGVcbiAqICAgdmFsdWVdKGh0dHBzOi8vbGl0LmRldi9kb2NzL3RlbXBsYXRlcy9leHByZXNzaW9ucy8jY2hpbGQtZXhwcmVzc2lvbnMpLFxuICogICB0eXBpY2FsbHkgYSB7QGxpbmtjb2RlIFRlbXBsYXRlUmVzdWx0fSBjcmVhdGVkIGJ5IGV2YWx1YXRpbmcgYSB0ZW1wbGF0ZSB0YWdcbiAqICAgbGlrZSB7QGxpbmtjb2RlIGh0bWx9IG9yIHtAbGlua2NvZGUgc3ZnfS5cbiAqIEBwYXJhbSBjb250YWluZXIgQSBET00gY29udGFpbmVyIHRvIHJlbmRlciB0by4gVGhlIGZpcnN0IHJlbmRlciB3aWxsIGFwcGVuZFxuICogICB0aGUgcmVuZGVyZWQgdmFsdWUgdG8gdGhlIGNvbnRhaW5lciwgYW5kIHN1YnNlcXVlbnQgcmVuZGVycyB3aWxsXG4gKiAgIGVmZmljaWVudGx5IHVwZGF0ZSB0aGUgcmVuZGVyZWQgdmFsdWUgaWYgdGhlIHNhbWUgcmVzdWx0IHR5cGUgd2FzXG4gKiAgIHByZXZpb3VzbHkgcmVuZGVyZWQgdGhlcmUuXG4gKiBAcGFyYW0gb3B0aW9ucyBTZWUge0BsaW5rY29kZSBSZW5kZXJPcHRpb25zfSBmb3Igb3B0aW9ucyBkb2N1bWVudGF0aW9uLlxuICogQHNlZVxuICoge0BsaW5rIGh0dHBzOi8vbGl0LmRldi9kb2NzL2xpYnJhcmllcy9zdGFuZGFsb25lLXRlbXBsYXRlcy8jcmVuZGVyaW5nLWxpdC1odG1sLXRlbXBsYXRlc3wgUmVuZGVyaW5nIExpdCBIVE1MIFRlbXBsYXRlc31cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlciA9IChcbiAgdmFsdWU6IHVua25vd24sXG4gIGNvbnRhaW5lcjogUmVuZGVyUm9vdE5vZGUsXG4gIG9wdGlvbnM/OiBSZW5kZXJPcHRpb25zXG4pOiBSb290UGFydCA9PiB7XG4gIGlmIChERVZfTU9ERSAmJiBjb250YWluZXIgPT0gbnVsbCkge1xuICAgIC8vIEdpdmUgYSBjbGVhcmVyIGVycm9yIG1lc3NhZ2UgdGhhblxuICAgIC8vICAgICBVbmNhdWdodCBUeXBlRXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgbnVsbCAocmVhZGluZ1xuICAgIC8vICAgICAnXyRsaXRQYXJ0JCcpXG4gICAgLy8gd2hpY2ggcmVhZHMgbGlrZSBhbiBpbnRlcm5hbCBMaXQgZXJyb3IuXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIGNvbnRhaW5lciB0byByZW5kZXIgaW50byBtYXkgbm90IGJlICR7Y29udGFpbmVyfWApO1xuICB9XG4gIGNvbnN0IHJlbmRlcklkID0gREVWX01PREUgPyBkZWJ1Z0xvZ1JlbmRlcklkKysgOiAwO1xuICBjb25zdCBwYXJ0T3duZXJOb2RlID0gb3B0aW9ucz8ucmVuZGVyQmVmb3JlID8/IGNvbnRhaW5lcjtcbiAgLy8gVGhpcyBwcm9wZXJ0eSBuZWVkcyB0byByZW1haW4gdW5taW5pZmllZC5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgbGV0IHBhcnQ6IENoaWxkUGFydCA9IChwYXJ0T3duZXJOb2RlIGFzIGFueSlbJ18kbGl0UGFydCQnXTtcbiAgZGVidWdMb2dFdmVudCAmJlxuICAgIGRlYnVnTG9nRXZlbnQoe1xuICAgICAga2luZDogJ2JlZ2luIHJlbmRlcicsXG4gICAgICBpZDogcmVuZGVySWQsXG4gICAgICB2YWx1ZSxcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIG9wdGlvbnMsXG4gICAgICBwYXJ0LFxuICAgIH0pO1xuICBpZiAocGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZW5kTm9kZSA9IG9wdGlvbnM/LnJlbmRlckJlZm9yZSA/PyBudWxsO1xuICAgIC8vIFRoaXMgcHJvcGVydHkgbmVlZHMgdG8gcmVtYWluIHVubWluaWZpZWQuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAocGFydE93bmVyTm9kZSBhcyBhbnkpWydfJGxpdFBhcnQkJ10gPSBwYXJ0ID0gbmV3IENoaWxkUGFydChcbiAgICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoY3JlYXRlTWFya2VyKCksIGVuZE5vZGUpLFxuICAgICAgZW5kTm9kZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIG9wdGlvbnMgPz8ge31cbiAgICApO1xuICB9XG4gIHBhcnQuXyRzZXRWYWx1ZSh2YWx1ZSk7XG4gIGRlYnVnTG9nRXZlbnQgJiZcbiAgICBkZWJ1Z0xvZ0V2ZW50KHtcbiAgICAgIGtpbmQ6ICdlbmQgcmVuZGVyJyxcbiAgICAgIGlkOiByZW5kZXJJZCxcbiAgICAgIHZhbHVlLFxuICAgICAgY29udGFpbmVyLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHBhcnQsXG4gICAgfSk7XG4gIHJldHVybiBwYXJ0IGFzIFJvb3RQYXJ0O1xufTtcblxuaWYgKEVOQUJMRV9FWFRSQV9TRUNVUklUWV9IT09LUykge1xuICByZW5kZXIuc2V0U2FuaXRpemVyID0gc2V0U2FuaXRpemVyO1xuICByZW5kZXIuY3JlYXRlU2FuaXRpemVyID0gY3JlYXRlU2FuaXRpemVyO1xuICBpZiAoREVWX01PREUpIHtcbiAgICByZW5kZXIuX3Rlc3RPbmx5Q2xlYXJTYW5pdGl6ZXJGYWN0b3J5RG9Ob3RDYWxsT3JFbHNlID1cbiAgICAgIF90ZXN0T25seUNsZWFyU2FuaXRpemVyRmFjdG9yeURvTm90Q2FsbE9yRWxzZTtcbiAgfVxufVxuIiwgIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2VcbiAqL1xuXG4vKipcbiAqIFRoZSBtYWluIExpdEVsZW1lbnQgbW9kdWxlLCB3aGljaCBkZWZpbmVzIHRoZSB7QGxpbmtjb2RlIExpdEVsZW1lbnR9IGJhc2VcbiAqIGNsYXNzIGFuZCByZWxhdGVkIEFQSXMuXG4gKlxuICogTGl0RWxlbWVudCBjb21wb25lbnRzIGNhbiBkZWZpbmUgYSB0ZW1wbGF0ZSBhbmQgYSBzZXQgb2Ygb2JzZXJ2ZWRcbiAqIHByb3BlcnRpZXMuIENoYW5naW5nIGFuIG9ic2VydmVkIHByb3BlcnR5IHRyaWdnZXJzIGEgcmUtcmVuZGVyIG9mIHRoZVxuICogZWxlbWVudC5cbiAqXG4gKiBJbXBvcnQge0BsaW5rY29kZSBMaXRFbGVtZW50fSBhbmQge0BsaW5rY29kZSBodG1sfSBmcm9tIHRoaXMgbW9kdWxlIHRvXG4gKiBjcmVhdGUgYSBjb21wb25lbnQ6XG4gKlxuICogIGBgYGpzXG4gKiBpbXBvcnQge0xpdEVsZW1lbnQsIGh0bWx9IGZyb20gJ2xpdC1lbGVtZW50JztcbiAqXG4gKiBjbGFzcyBNeUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAqXG4gKiAgIC8vIERlY2xhcmUgb2JzZXJ2ZWQgcHJvcGVydGllc1xuICogICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gKiAgICAgcmV0dXJuIHtcbiAqICAgICAgIGFkamVjdGl2ZToge31cbiAqICAgICB9XG4gKiAgIH1cbiAqXG4gKiAgIGNvbnN0cnVjdG9yKCkge1xuICogICAgIHRoaXMuYWRqZWN0aXZlID0gJ2F3ZXNvbWUnO1xuICogICB9XG4gKlxuICogICAvLyBEZWZpbmUgdGhlIGVsZW1lbnQncyB0ZW1wbGF0ZVxuICogICByZW5kZXIoKSB7XG4gKiAgICAgcmV0dXJuIGh0bWxgPHA+eW91ciAke2FkamVjdGl2ZX0gdGVtcGxhdGUgaGVyZTwvcD5gO1xuICogICB9XG4gKiB9XG4gKlxuICogY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdteS1lbGVtZW50JywgTXlFbGVtZW50KTtcbiAqIGBgYFxuICpcbiAqIGBMaXRFbGVtZW50YCBleHRlbmRzIHtAbGlua2NvZGUgUmVhY3RpdmVFbGVtZW50fSBhbmQgYWRkcyBsaXQtaHRtbFxuICogdGVtcGxhdGluZy4gVGhlIGBSZWFjdGl2ZUVsZW1lbnRgIGNsYXNzIGlzIHByb3ZpZGVkIGZvciB1c2VycyB0aGF0IHdhbnQgdG9cbiAqIGJ1aWxkIHRoZWlyIG93biBjdXN0b20gZWxlbWVudCBiYXNlIGNsYXNzZXMgdGhhdCBkb24ndCB1c2UgbGl0LWh0bWwuXG4gKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKi9cbmltcG9ydCB7UHJvcGVydHlWYWx1ZXMsIFJlYWN0aXZlRWxlbWVudH0gZnJvbSAnQGxpdC9yZWFjdGl2ZS1lbGVtZW50JztcbmltcG9ydCB7cmVuZGVyLCBSZW5kZXJPcHRpb25zLCBub0NoYW5nZSwgUm9vdFBhcnR9IGZyb20gJ2xpdC1odG1sJztcbmV4cG9ydCAqIGZyb20gJ0BsaXQvcmVhY3RpdmUtZWxlbWVudCc7XG5leHBvcnQgKiBmcm9tICdsaXQtaHRtbCc7XG5cbmltcG9ydCB7TGl0VW5zdGFibGV9IGZyb20gJ2xpdC1odG1sJztcbmltcG9ydCB7UmVhY3RpdmVVbnN0YWJsZX0gZnJvbSAnQGxpdC9yZWFjdGl2ZS1lbGVtZW50JztcblxuLyoqXG4gKiBDb250YWlucyB0eXBlcyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSB1bnN0YWJsZSBkZWJ1ZyBBUEkuXG4gKlxuICogRXZlcnl0aGluZyBpbiB0aGlzIEFQSSBpcyBub3Qgc3RhYmxlIGFuZCBtYXkgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZSxcbiAqIGV2ZW4gb24gcGF0Y2ggcmVsZWFzZXMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG5leHBvcnQgbmFtZXNwYWNlIFVuc3RhYmxlIHtcbiAgLyoqXG4gICAqIFdoZW4gTGl0IGlzIHJ1bm5pbmcgaW4gZGV2IG1vZGUgYW5kIGB3aW5kb3cuZW1pdExpdERlYnVnTG9nRXZlbnRzYCBpcyB0cnVlLFxuICAgKiB3ZSB3aWxsIGVtaXQgJ2xpdC1kZWJ1ZycgZXZlbnRzIHRvIHdpbmRvdywgd2l0aCBsaXZlIGRldGFpbHMgYWJvdXQgdGhlIHVwZGF0ZSBhbmQgcmVuZGVyXG4gICAqIGxpZmVjeWNsZS4gVGhlc2UgY2FuIGJlIHVzZWZ1bCBmb3Igd3JpdGluZyBkZWJ1ZyB0b29saW5nIGFuZCB2aXN1YWxpemF0aW9ucy5cbiAgICpcbiAgICogUGxlYXNlIGJlIGF3YXJlIHRoYXQgcnVubmluZyB3aXRoIHdpbmRvdy5lbWl0TGl0RGVidWdMb2dFdmVudHMgaGFzIHBlcmZvcm1hbmNlIG92ZXJoZWFkLFxuICAgKiBtYWtpbmcgY2VydGFpbiBvcGVyYXRpb25zIHRoYXQgYXJlIG5vcm1hbGx5IHZlcnkgY2hlYXAgKGxpa2UgYSBuby1vcCByZW5kZXIpIG11Y2ggc2xvd2VyLFxuICAgKiBiZWNhdXNlIHdlIG11c3QgY29weSBkYXRhIGFuZCBkaXNwYXRjaCBldmVudHMuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuICBleHBvcnQgbmFtZXNwYWNlIERlYnVnTG9nIHtcbiAgICBleHBvcnQgdHlwZSBFbnRyeSA9XG4gICAgICB8IExpdFVuc3RhYmxlLkRlYnVnTG9nLkVudHJ5XG4gICAgICB8IFJlYWN0aXZlVW5zdGFibGUuRGVidWdMb2cuRW50cnk7XG4gIH1cbn1cbi8qXG4gKiBXaGVuIHVzaW5nIENsb3N1cmUgQ29tcGlsZXIsIEpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkocHJvcGVydHksIG9iamVjdCkgaXNcbiAqIHJlcGxhY2VkIGF0IGNvbXBpbGUgdGltZSBieSB0aGUgbXVuZ2VkIG5hbWUgZm9yIG9iamVjdFtwcm9wZXJ0eV0uIFdlIGNhbm5vdFxuICogYWxpYXMgdGhpcyBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0byB1c2UgYSBzbWFsbCBzaGltIHRoYXQgaGFzIHRoZSBzYW1lXG4gKiBiZWhhdmlvciB3aGVuIG5vdCBjb21waWxpbmcuXG4gKi9cbi8qQF9fSU5MSU5FX18qL1xuY29uc3QgSlNDb21waWxlcl9yZW5hbWVQcm9wZXJ0eSA9IDxQIGV4dGVuZHMgUHJvcGVydHlLZXk+KFxuICBwcm9wOiBQLFxuICBfb2JqOiB1bmtub3duXG4pOiBQID0+IHByb3A7XG5cbmNvbnN0IERFVl9NT0RFID0gdHJ1ZTtcbi8vIEFsbG93cyBtaW5pZmllcnMgdG8gcmVuYW1lIHJlZmVyZW5jZXMgdG8gZ2xvYmFsVGhpc1xuY29uc3QgZ2xvYmFsID0gZ2xvYmFsVGhpcztcblxubGV0IGlzc3VlV2FybmluZzogKGNvZGU6IHN0cmluZywgd2FybmluZzogc3RyaW5nKSA9PiB2b2lkO1xuXG5pZiAoREVWX01PREUpIHtcbiAgLy8gRW5zdXJlIHdhcm5pbmdzIGFyZSBpc3N1ZWQgb25seSAxeCwgZXZlbiBpZiBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBMaXRcbiAgLy8gYXJlIGxvYWRlZC5cbiAgZ2xvYmFsLmxpdElzc3VlZFdhcm5pbmdzID8/PSBuZXcgU2V0KCk7XG5cbiAgLyoqXG4gICAqIElzc3VlIGEgd2FybmluZyBpZiB3ZSBoYXZlbid0IGFscmVhZHksIGJhc2VkIGVpdGhlciBvbiBgY29kZWAgb3IgYHdhcm5pbmdgLlxuICAgKiBXYXJuaW5ncyBhcmUgZGlzYWJsZWQgYXV0b21hdGljYWxseSBvbmx5IGJ5IGB3YXJuaW5nYDsgZGlzYWJsaW5nIHZpYSBgY29kZWBcbiAgICogY2FuIGJlIGRvbmUgYnkgdXNlcnMuXG4gICAqL1xuICBpc3N1ZVdhcm5pbmcgPSAoY29kZTogc3RyaW5nLCB3YXJuaW5nOiBzdHJpbmcpID0+IHtcbiAgICB3YXJuaW5nICs9IGAgU2VlIGh0dHBzOi8vbGl0LmRldi9tc2cvJHtjb2RlfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgIGlmIChcbiAgICAgICFnbG9iYWwubGl0SXNzdWVkV2FybmluZ3MhLmhhcyh3YXJuaW5nKSAmJlxuICAgICAgIWdsb2JhbC5saXRJc3N1ZWRXYXJuaW5ncyEuaGFzKGNvZGUpXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4od2FybmluZyk7XG4gICAgICBnbG9iYWwubGl0SXNzdWVkV2FybmluZ3MhLmFkZCh3YXJuaW5nKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogQmFzZSBlbGVtZW50IGNsYXNzIHRoYXQgbWFuYWdlcyBlbGVtZW50IHByb3BlcnRpZXMgYW5kIGF0dHJpYnV0ZXMsIGFuZFxuICogcmVuZGVycyBhIGxpdC1odG1sIHRlbXBsYXRlLlxuICpcbiAqIFRvIGRlZmluZSBhIGNvbXBvbmVudCwgc3ViY2xhc3MgYExpdEVsZW1lbnRgIGFuZCBpbXBsZW1lbnQgYVxuICogYHJlbmRlcmAgbWV0aG9kIHRvIHByb3ZpZGUgdGhlIGNvbXBvbmVudCdzIHRlbXBsYXRlLiBEZWZpbmUgcHJvcGVydGllc1xuICogdXNpbmcgdGhlIHtAbGlua2NvZGUgTGl0RWxlbWVudC5wcm9wZXJ0aWVzIHByb3BlcnRpZXN9IHByb3BlcnR5IG9yIHRoZVxuICoge0BsaW5rY29kZSBwcm9wZXJ0eX0gZGVjb3JhdG9yLlxuICovXG5leHBvcnQgY2xhc3MgTGl0RWxlbWVudCBleHRlbmRzIFJlYWN0aXZlRWxlbWVudCB7XG4gIC8vIFRoaXMgcHJvcGVydHkgbmVlZHMgdG8gcmVtYWluIHVubWluaWZpZWQuXG4gIHN0YXRpYyBbJ18kbGl0RWxlbWVudCQnXSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBjYXRlZ29yeSByZW5kZXJpbmdcbiAgICovXG4gIHJlYWRvbmx5IHJlbmRlck9wdGlvbnM6IFJlbmRlck9wdGlvbnMgPSB7aG9zdDogdGhpc307XG5cbiAgcHJpdmF0ZSBfX2NoaWxkUGFydDogUm9vdFBhcnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBjYXRlZ29yeSByZW5kZXJpbmdcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBjcmVhdGVSZW5kZXJSb290KCkge1xuICAgIGNvbnN0IHJlbmRlclJvb3QgPSBzdXBlci5jcmVhdGVSZW5kZXJSb290KCk7XG4gICAgLy8gV2hlbiBhZG9wdGVkU3R5bGVTaGVldHMgYXJlIHNoaW1tZWQsIHRoZXkgYXJlIGluc2VydGVkIGludG8gdGhlXG4gICAgLy8gc2hhZG93Um9vdCBieSBjcmVhdGVSZW5kZXJSb290LiBBZGp1c3QgdGhlIHJlbmRlckJlZm9yZSBub2RlIHNvIHRoYXRcbiAgICAvLyBhbnkgc3R5bGVzIGluIExpdCBjb250ZW50IHJlbmRlciBiZWZvcmUgYWRvcHRlZFN0eWxlU2hlZXRzLiBUaGlzIGlzXG4gICAgLy8gaW1wb3J0YW50IHNvIHRoYXQgYWRvcHRlZFN0eWxlU2hlZXRzIGhhdmUgcHJlY2VkZW5jZSBvdmVyIHN0eWxlcyBpblxuICAgIC8vIHRoZSBzaGFkb3dSb290LlxuICAgIHRoaXMucmVuZGVyT3B0aW9ucy5yZW5kZXJCZWZvcmUgPz89IHJlbmRlclJvb3QhLmZpcnN0Q2hpbGQgYXMgQ2hpbGROb2RlO1xuICAgIHJldHVybiByZW5kZXJSb290O1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGVsZW1lbnQuIFRoaXMgbWV0aG9kIHJlZmxlY3RzIHByb3BlcnR5IHZhbHVlcyB0byBhdHRyaWJ1dGVzXG4gICAqIGFuZCBjYWxscyBgcmVuZGVyYCB0byByZW5kZXIgRE9NIHZpYSBsaXQtaHRtbC4gU2V0dGluZyBwcm9wZXJ0aWVzIGluc2lkZVxuICAgKiB0aGlzIG1ldGhvZCB3aWxsICpub3QqIHRyaWdnZXIgYW5vdGhlciB1cGRhdGUuXG4gICAqIEBwYXJhbSBjaGFuZ2VkUHJvcGVydGllcyBNYXAgb2YgY2hhbmdlZCBwcm9wZXJ0aWVzIHdpdGggb2xkIHZhbHVlc1xuICAgKiBAY2F0ZWdvcnkgdXBkYXRlc1xuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXMpIHtcbiAgICAvLyBTZXR0aW5nIHByb3BlcnRpZXMgaW4gYHJlbmRlcmAgc2hvdWxkIG5vdCB0cmlnZ2VyIGFuIHVwZGF0ZS4gU2luY2VcbiAgICAvLyB1cGRhdGVzIGFyZSBhbGxvd2VkIGFmdGVyIHN1cGVyLnVwZGF0ZSwgaXQncyBpbXBvcnRhbnQgdG8gY2FsbCBgcmVuZGVyYFxuICAgIC8vIGJlZm9yZSB0aGF0LlxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5yZW5kZXIoKTtcbiAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5yZW5kZXJPcHRpb25zLmlzQ29ubmVjdGVkID0gdGhpcy5pc0Nvbm5lY3RlZDtcbiAgICB9XG4gICAgc3VwZXIudXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLl9fY2hpbGRQYXJ0ID0gcmVuZGVyKHZhbHVlLCB0aGlzLnJlbmRlclJvb3QsIHRoaXMucmVuZGVyT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogSW52b2tlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgYWRkZWQgdG8gdGhlIGRvY3VtZW50J3MgRE9NLlxuICAgKlxuICAgKiBJbiBgY29ubmVjdGVkQ2FsbGJhY2soKWAgeW91IHNob3VsZCBzZXR1cCB0YXNrcyB0aGF0IHNob3VsZCBvbmx5IG9jY3VyIHdoZW5cbiAgICogdGhlIGVsZW1lbnQgaXMgY29ubmVjdGVkIHRvIHRoZSBkb2N1bWVudC4gVGhlIG1vc3QgY29tbW9uIG9mIHRoZXNlIGlzXG4gICAqIGFkZGluZyBldmVudCBsaXN0ZW5lcnMgdG8gbm9kZXMgZXh0ZXJuYWwgdG8gdGhlIGVsZW1lbnQsIGxpa2UgYSBrZXlkb3duXG4gICAqIGV2ZW50IGhhbmRsZXIgYWRkZWQgdG8gdGhlIHdpbmRvdy5cbiAgICpcbiAgICogYGBgdHNcbiAgICogY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAqICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICogICBhZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5faGFuZGxlS2V5ZG93bik7XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIFR5cGljYWxseSwgYW55dGhpbmcgZG9uZSBpbiBgY29ubmVjdGVkQ2FsbGJhY2soKWAgc2hvdWxkIGJlIHVuZG9uZSB3aGVuIHRoZVxuICAgKiBlbGVtZW50IGlzIGRpc2Nvbm5lY3RlZCwgaW4gYGRpc2Nvbm5lY3RlZENhbGxiYWNrKClgLlxuICAgKlxuICAgKiBAY2F0ZWdvcnkgbGlmZWN5Y2xlXG4gICAqL1xuICBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX19jaGlsZFBhcnQ/LnNldENvbm5lY3RlZCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2VkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyByZW1vdmVkIGZyb20gdGhlIGRvY3VtZW50J3MgRE9NLlxuICAgKlxuICAgKiBUaGlzIGNhbGxiYWNrIGlzIHRoZSBtYWluIHNpZ25hbCB0byB0aGUgZWxlbWVudCB0aGF0IGl0IG1heSBubyBsb25nZXIgYmVcbiAgICogdXNlZC4gYGRpc2Nvbm5lY3RlZENhbGxiYWNrKClgIHNob3VsZCBlbnN1cmUgdGhhdCBub3RoaW5nIGlzIGhvbGRpbmcgYVxuICAgKiByZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgKHN1Y2ggYXMgZXZlbnQgbGlzdGVuZXJzIGFkZGVkIHRvIG5vZGVzIGV4dGVybmFsXG4gICAqIHRvIHRoZSBlbGVtZW50KSwgc28gdGhhdCBpdCBpcyBmcmVlIHRvIGJlIGdhcmJhZ2UgY29sbGVjdGVkLlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICogICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgKiAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5faGFuZGxlS2V5ZG93bik7XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEFuIGVsZW1lbnQgbWF5IGJlIHJlLWNvbm5lY3RlZCBhZnRlciBiZWluZyBkaXNjb25uZWN0ZWQuXG4gICAqXG4gICAqIEBjYXRlZ29yeSBsaWZlY3ljbGVcbiAgICovXG4gIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fX2NoaWxkUGFydD8uc2V0Q29ubmVjdGVkKGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2VkIG9uIGVhY2ggdXBkYXRlIHRvIHBlcmZvcm0gcmVuZGVyaW5nIHRhc2tzLiBUaGlzIG1ldGhvZCBtYXkgcmV0dXJuXG4gICAqIGFueSB2YWx1ZSByZW5kZXJhYmxlIGJ5IGxpdC1odG1sJ3MgYENoaWxkUGFydGAgLSB0eXBpY2FsbHkgYVxuICAgKiBgVGVtcGxhdGVSZXN1bHRgLiBTZXR0aW5nIHByb3BlcnRpZXMgaW5zaWRlIHRoaXMgbWV0aG9kIHdpbGwgKm5vdCogdHJpZ2dlclxuICAgKiB0aGUgZWxlbWVudCB0byB1cGRhdGUuXG4gICAqIEBjYXRlZ29yeSByZW5kZXJpbmdcbiAgICovXG4gIHByb3RlY3RlZCByZW5kZXIoKTogdW5rbm93biB7XG4gICAgcmV0dXJuIG5vQ2hhbmdlO1xuICB9XG59XG5cbi8qKlxuICogRW5zdXJlIHRoaXMgY2xhc3MgaXMgbWFya2VkIGFzIGBmaW5hbGl6ZWRgIGFzIGFuIG9wdGltaXphdGlvbiBlbnN1cmluZ1xuICogaXQgd2lsbCBub3QgbmVlZGxlc3NseSB0cnkgdG8gYGZpbmFsaXplYC5cbiAqXG4gKiBOb3RlIHRoaXMgcHJvcGVydHkgbmFtZSBpcyBhIHN0cmluZyB0byBwcmV2ZW50IGJyZWFraW5nIENsb3N1cmUgSlMgQ29tcGlsZXJcbiAqIG9wdGltaXphdGlvbnMuIFNlZSBAbGl0L3JlYWN0aXZlLWVsZW1lbnQgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKi9cbihMaXRFbGVtZW50IGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW1xuICBKU0NvbXBpbGVyX3JlbmFtZVByb3BlcnR5KCdmaW5hbGl6ZWQnLCBMaXRFbGVtZW50KVxuXSA9IHRydWU7XG5cbi8vIEluc3RhbGwgaHlkcmF0aW9uIGlmIGF2YWlsYWJsZVxuZ2xvYmFsLmxpdEVsZW1lbnRIeWRyYXRlU3VwcG9ydD8uKHtMaXRFbGVtZW50fSk7XG5cbi8vIEFwcGx5IHBvbHlmaWxscyBpZiBhdmFpbGFibGVcbmNvbnN0IHBvbHlmaWxsU3VwcG9ydCA9IERFVl9NT0RFXG4gID8gZ2xvYmFsLmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnREZXZNb2RlXG4gIDogZ2xvYmFsLmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7XG5wb2x5ZmlsbFN1cHBvcnQ/Lih7TGl0RWxlbWVudH0pO1xuXG4vKipcbiAqIEVORCBVU0VSUyBTSE9VTEQgTk9UIFJFTFkgT04gVEhJUyBPQkpFQ1QuXG4gKlxuICogUHJpdmF0ZSBleHBvcnRzIGZvciB1c2UgYnkgb3RoZXIgTGl0IHBhY2thZ2VzLCBub3QgaW50ZW5kZWQgZm9yIHVzZSBieVxuICogZXh0ZXJuYWwgdXNlcnMuXG4gKlxuICogV2UgY3VycmVudGx5IGRvIG5vdCBtYWtlIGEgbWFuZ2xlZCByb2xsdXAgYnVpbGQgb2YgdGhlIGxpdC1zc3IgY29kZS4gSW4gb3JkZXJcbiAqIHRvIGtlZXAgYSBudW1iZXIgb2YgKG90aGVyd2lzZSBwcml2YXRlKSB0b3AtbGV2ZWwgZXhwb3J0cyAgbWFuZ2xlZCBpbiB0aGVcbiAqIGNsaWVudCBzaWRlIGNvZGUsIHdlIGV4cG9ydCBhIF8kTEUgb2JqZWN0IGNvbnRhaW5pbmcgdGhvc2UgbWVtYmVycyAob3JcbiAqIGhlbHBlciBtZXRob2RzIGZvciBhY2Nlc3NpbmcgcHJpdmF0ZSBmaWVsZHMgb2YgdGhvc2UgbWVtYmVycyksIGFuZCB0aGVuXG4gKiByZS1leHBvcnQgdGhlbSBmb3IgdXNlIGluIGxpdC1zc3IuIFRoaXMga2VlcHMgbGl0LXNzciBhZ25vc3RpYyB0byB3aGV0aGVyIHRoZVxuICogY2xpZW50LXNpZGUgY29kZSBpcyBiZWluZyB1c2VkIGluIGBkZXZgIG1vZGUgb3IgYHByb2RgIG1vZGUuXG4gKlxuICogVGhpcyBoYXMgYSB1bmlxdWUgbmFtZSwgdG8gZGlzYW1iaWd1YXRlIGl0IGZyb20gcHJpdmF0ZSBleHBvcnRzIGluXG4gKiBsaXQtaHRtbCwgc2luY2UgdGhpcyBtb2R1bGUgcmUtZXhwb3J0cyBhbGwgb2YgbGl0LWh0bWwuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IF8kTEUgPSB7XG4gIF8kYXR0cmlidXRlVG9Qcm9wZXJ0eTogKFxuICAgIGVsOiBMaXRFbGVtZW50LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbFxuICApID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAoZWwgYXMgYW55KS5fJGF0dHJpYnV0ZVRvUHJvcGVydHkobmFtZSwgdmFsdWUpO1xuICB9LFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgXyRjaGFuZ2VkUHJvcGVydGllczogKGVsOiBMaXRFbGVtZW50KSA9PiAoZWwgYXMgYW55KS5fJGNoYW5nZWRQcm9wZXJ0aWVzLFxufTtcblxuLy8gSU1QT1JUQU5UOiBkbyBub3QgY2hhbmdlIHRoZSBwcm9wZXJ0eSBuYW1lIG9yIHRoZSBhc3NpZ25tZW50IGV4cHJlc3Npb24uXG4vLyBUaGlzIGxpbmUgd2lsbCBiZSB1c2VkIGluIHJlZ2V4ZXMgdG8gc2VhcmNoIGZvciBMaXRFbGVtZW50IHVzYWdlLlxuKGdsb2JhbC5saXRFbGVtZW50VmVyc2lvbnMgPz89IFtdKS5wdXNoKCc0LjIuMicpO1xuaWYgKERFVl9NT0RFICYmIGdsb2JhbC5saXRFbGVtZW50VmVyc2lvbnMubGVuZ3RoID4gMSkge1xuICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgaXNzdWVXYXJuaW5nIShcbiAgICAgICdtdWx0aXBsZS12ZXJzaW9ucycsXG4gICAgICBgTXVsdGlwbGUgdmVyc2lvbnMgb2YgTGl0IGxvYWRlZC4gTG9hZGluZyBtdWx0aXBsZSB2ZXJzaW9ucyBgICtcbiAgICAgICAgYGlzIG5vdCByZWNvbW1lbmRlZC5gXG4gICAgKTtcbiAgfSk7XG59XG4iLCAiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjIgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5cbi8qKlxuICogQGZpbGVvdmVydmlld1xuICpcbiAqIFRoaXMgZmlsZSBleHBvcnRzIGEgYm9vbGVhbiBjb25zdCB3aG9zZSB2YWx1ZSB3aWxsIGRlcGVuZCBvbiB3aGF0IGVudmlyb25tZW50XG4gKiB0aGUgbW9kdWxlIGlzIGJlaW5nIGltcG9ydGVkIGZyb20uXG4gKi9cblxuY29uc3QgTk9ERV9NT0RFID0gZmFsc2U7XG5cbi8qKlxuICogQSBib29sZWFuIHRoYXQgd2lsbCBiZSBgdHJ1ZWAgaW4gc2VydmVyIGVudmlyb25tZW50cyBsaWtlIE5vZGUsIGFuZCBgZmFsc2VgXG4gKiBpbiBicm93c2VyIGVudmlyb25tZW50cy4gTm90ZSB0aGF0IHlvdXIgc2VydmVyIGVudmlyb25tZW50IG9yIHRvb2xjaGFpbiBtdXN0XG4gKiBzdXBwb3J0IHRoZSBgXCJub2RlXCJgIGV4cG9ydCBjb25kaXRpb24gZm9yIHRoaXMgdG8gYmUgYHRydWVgLlxuICpcbiAqIFRoaXMgY2FuIGJlIHVzZWQgd2hlbiBhdXRob3JpbmcgY29tcG9uZW50cyB0byBjaGFuZ2UgYmVoYXZpb3IgYmFzZWQgb25cbiAqIHdoZXRoZXIgb3Igbm90IHRoZSBjb21wb25lbnQgaXMgZXhlY3V0aW5nIGluIGFuIFNTUiBjb250ZXh0LlxuICovXG5leHBvcnQgY29uc3QgaXNTZXJ2ZXIgPSBOT0RFX01PREU7XG4iLCAiaW1wb3J0XCJAbGl0L3JlYWN0aXZlLWVsZW1lbnRcIjtpbXBvcnRcImxpdC1odG1sXCI7ZXhwb3J0KmZyb21cImxpdC1lbGVtZW50L2xpdC1lbGVtZW50LmpzXCI7ZXhwb3J0KmZyb21cImxpdC1odG1sL2lzLXNlcnZlci5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwXG4iLCAiZXhwb3J0IGNvbnN0IHVuaSA9IChwcmVmaXg6IHN0cmluZyA9ICd1bmknKSA9PiB7XG4gIHJldHVybiBgJHtwcmVmaXh9XyR7YHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLCAoYykgPT4ge1xuICAgIGNvbnN0IHIgPSAoTWF0aC5yYW5kb20oKSAqIDE2KSB8IDA7XG4gICAgY29uc3QgdiA9IGMgPT09ICd4JyA/IHIgOiAociAmIDB4MykgfCAweDg7XG4gICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xuICB9KX1gO1xufTtcbiIsICJleHBvcnQgaW50ZXJmYWNlIElSZXNvbHZlPFQ+IHtcbiAgKHZhbHVlPzogVCB8IFByb21pc2VMaWtlPFQ+KTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVqZWN0IHtcbiAgKHJlYXNvbj86IGFueSk6IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIFREZWZlcnJlZFN0YXR1cyA9ICdwZW5kaW5nJyB8ICdmdWxmaWxsZWQnIHwgJ3JlamVjdGVkJztcblxuZXhwb3J0IGNsYXNzIERlZmVycmVkPFQ+IHtcbiAgcHVibGljIHByb21pc2U6IFByb21pc2U8VD47XG4gIHB1YmxpYyByZXNvbHZlOiBJUmVzb2x2ZTxUPjtcbiAgcHVibGljIHJlamVjdDogSVJlamVjdDtcbiAgcHVibGljIHN0YXR1czogVERlZmVycmVkU3RhdHVzO1xuICBwdWJsaWMgY2xhaW1lZCA9IGZhbHNlO1xuICBwdWJsaWMgY2xhaW0oKSB7XG4gICAgaWYgKHRoaXMuY2xhaW1lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZWZlcnJlZCBhbHJlYWR5IGNsYWltZWQnKTtcbiAgICB9XG4gICAgdGhpcy5jbGFpbWVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydGVkQXQ6IG51bWJlcjtcbiAgcHVibGljIHN0b3BwZWRBdDogbnVtYmVyO1xuICBwdWJsaWMgZ2V0IGR1cmF0aW9uKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuc3RvcHBlZEF0KSB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9wcGVkQXQgLSB0aGlzLnN0YXJ0ZWRBdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIERhdGUubm93KCkgLSB0aGlzLnN0YXJ0ZWRBdDtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnByb21pc2UgPSBuZXcgUHJvbWlzZTxUPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLnJlc29sdmUgPSAodmFsdWVBcmc6IFQgfCBQcm9taXNlTGlrZTxUPikgPT4ge1xuICAgICAgICB0aGlzLnN0YXR1cyA9ICdmdWxmaWxsZWQnO1xuICAgICAgICB0aGlzLnN0b3BwZWRBdCA9IERhdGUubm93KCk7XG4gICAgICAgIHJlc29sdmUodmFsdWVBcmcpO1xuICAgICAgfTtcbiAgICAgIHRoaXMucmVqZWN0ID0gKHJlYXNvbjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gJ3JlamVjdGVkJztcbiAgICAgICAgdGhpcy5zdG9wcGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICByZWplY3QocmVhc29uKTtcbiAgICAgIH07XG4gICAgICB0aGlzLnN0YXJ0ZWRBdCA9IERhdGUubm93KCk7XG4gICAgICB0aGlzLnN0YXR1cyA9ICdwZW5kaW5nJztcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmZXIgPSA8VD4oKSA9PiB7XG4gIHJldHVybiBuZXcgRGVmZXJyZWQ8VD4oKTtcbn07IiwgImltcG9ydCB7IGRlZmVyIH0gZnJvbSBcIi4vc21hcnRwcm9taXNlLmNsYXNzZXMuZGVmZXJyZWQuanNcIjtcblxuZXhwb3J0IGNsYXNzIEN1bXVsYXRpdmVEZWZlcnJlZCB7XG4gIHByaXZhdGUgYWNjdW11bGF0ZWRQcm9taXNlczogUHJvbWlzZTxhbnk+W10gPSBbXTtcbiAgcHJpdmF0ZSBkZWZlcnJlZCA9IGRlZmVyKCk7XG4gIHB1YmxpYyBwcm9taXNlID0gdGhpcy5kZWZlcnJlZC5wcm9taXNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgd2hpbGUgKHRoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHBvcHBlZFByb21pc2UgPSB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTtcbiAgICAgICAgYXdhaXQgcG9wcGVkUHJvbWlzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHVibGljIHN1YkRlZmVyKCkge1xuICAgIGNvbnN0IGRvbmUgPSBkZWZlcigpO1xuICAgIHRoaXMuYWRkUHJvbWlzZShkb25lLnByb21pc2UpO1xuICAgIHJldHVybiBkb25lO1xuICB9XG5cbiAgcHVibGljIGFkZFByb21pc2UocHJvbWlzZUFyZzogUHJvbWlzZTxhbnk+KSB7XG4gICAgdGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnB1c2gocHJvbWlzZUFyZyk7XG4gIH1cbn1cblxuXG5leHBvcnQgY29uc3QgY3VtdWxhdGl2ZURlZmVyID0gKCkgPT4ge1xuICByZXR1cm4gbmV3IEN1bXVsYXRpdmVEZWZlcnJlZCgpO1xufSIsICJpbXBvcnQgeyBkZWZlciB9IGZyb20gJy4vc21hcnRwcm9taXNlLmNsYXNzZXMuZGVmZXJyZWQuanMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0cHJvbWlzZS5jbGFzc2VzLmN1bXVsYXRpdmVkZWZlcnJlZC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0cHJvbWlzZS5jbGFzc2VzLmRlZmVycmVkLmpzJztcblxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgcmVzb2x2ZWQgcHJvbWlzZSBmb3IgdGhlIHByb3ZpZGVkIHZhbHVlLlxuICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZWRQcm9taXNlID0gPFQ+KHZhbHVlPzogVCk6IFByb21pc2U8VD4gPT4ge1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZhbHVlKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyByZWplY3RlZCBwcm9taXNlIGZvciB0aGUgcHJvdmlkZWQgcmVhc29uLlxuICovXG5leHBvcnQgY29uc3QgcmVqZWN0ZWRQcm9taXNlID0gKGVycikgPT4ge1xuICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyKTtcbn07XG5cbmludGVyZmFjZSBJQXN5bmNGdW5jdGlvbjxUPiB7XG4gIChzb21lQXJnOiBUKTogUHJvbWlzZTxUPjtcbn1cblxuLyoqXG4gKiBhY2NlcHRzIGFuIGFycmF5IG9mIGlucHV0cyBhbmQgYSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdGhlIGlucHV0LlxuICogcnVucyBhbGwgaXRlbXMgd2l0aCB0aGUgZnVuY3Rpb24gYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcnJheSB3aGVuIGFsbCBpdGVtcyBoYXZlIHJ1blxuICogQHBhcmFtIGlucHV0QXJnXG4gKiBAcGFyYW0gZnVuY3Rpb25BcmdcbiAqL1xuZXhwb3J0IGNvbnN0IG1hcCA9IGFzeW5jIDxUPihpbnB1dEFyZzogVFtdLCBmdW5jdGlvbkFyZzogSUFzeW5jRnVuY3Rpb248VD4pID0+IHtcbiAgY29uc3QgcHJvbWlzZUFycmF5OiBQcm9taXNlPGFueT5bXSA9IFtdO1xuICBjb25zdCByZXN1bHRBcnJheSA9IFtdO1xuICBmb3IgKGNvbnN0IGl0ZW0gb2YgaW5wdXRBcmcpIHtcbiAgICBjb25zdCBwcm9taXNlOiBQcm9taXNlPGFueT4gPSBmdW5jdGlvbkFyZyhpdGVtKTtcbiAgICBwcm9taXNlQXJyYXkucHVzaChwcm9taXNlKTtcbiAgICBwcm9taXNlLnRoZW4oKHgpID0+IHtcbiAgICAgIHJlc3VsdEFycmF5LnB1c2goeCk7XG4gICAgfSk7XG4gIH1cbiAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZUFycmF5KTtcbiAgcmV0dXJuIHJlc3VsdEFycmF5O1xufTtcblxuZXhwb3J0IGNvbnN0IHRpbWVvdXRXcmFwID0gYXN5bmMgPFQgPSBhbnk+KFxuICBwcm9taXNlQXJnOiBQcm9taXNlPFQ+LFxuICB0aW1lb3V0SW5Nc0FyZzogbnVtYmVyLFxuICByZWplY3RBcmcgPSB0cnVlXG4pID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPFQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChyZWplY3RBcmcpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcigndGltZW91dCcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICB9XG4gICAgfSwgdGltZW91dEluTXNBcmcpO1xuICAgIHByb21pc2VBcmcudGhlbihyZXNvbHZlLCByZWplY3QpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aW1lb3V0QW5kQ29udGludWUgPSBhc3luYyA8VCA9IGFueT4oXG4gIHByb21pc2VBcmc6IFByb21pc2U8VD4sXG4gIHRpbWVvdXRJbk1zQXJnID0gNjAwMDBcbikgPT4ge1xuICByZXR1cm4gdGltZW91dFdyYXAocHJvbWlzZUFyZywgdGltZW91dEluTXNBcmcsIGZhbHNlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFRydWVPckZhbHNlID0gYXN5bmMgKHByb21pc2VzQXJnOiBQcm9taXNlPGJvb2xlYW4+W10pID0+IHtcbiAgY29uc3QgZG9uZSA9IGRlZmVyPGJvb2xlYW4+KCk7XG4gIGZvciAoY29uc3QgcHJvbWlzZUFyZyBvZiBwcm9taXNlc0FyZykge1xuICAgIHByb21pc2VBcmcudGhlbigocmVzdWx0QXJnKSA9PiB7XG4gICAgICBpZiAocmVzdWx0QXJnID09PSB0cnVlKSB7XG4gICAgICAgIGRvbmUucmVzb2x2ZSh0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBQcm9taXNlLmFsbChwcm9taXNlc0FyZykudGhlbigoKSA9PiB7XG4gICAgZG9uZS5yZXNvbHZlKGZhbHNlKTtcbiAgfSk7XG4gIHJldHVybiBkb25lLnByb21pc2U7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgTm9kZS5qcy1zdHlsZSBjYWxsYmFjay1iYXNlZCBmdW5jdGlvbiBpbnRvIGEgUHJvbWlzZS5cbiAqIEBwYXJhbSBmbiBUaGUgZnVuY3Rpb24gdGhhdCBleHBlY3RzIGEgY2FsbGJhY2suXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uIG9yIHJlamVjdHMgd2l0aCBhbiBlcnJvci5cbiAqL1xuZXhwb3J0IGNvbnN0IGZyb21DYWxsYmFjayA9IDxUPihcbiAgZm46IChjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgcmVzdWx0PzogVCkgPT4gdm9pZCkgPT4gdm9pZFxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgZm4oKGVyciwgcmVzdWx0KSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJlamVjdChlcnIpOyAvLyBSZWplY3QgdGhlIHByb21pc2Ugd2l0aCB0aGUgZXJyb3JcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUocmVzdWx0IGFzIFQpOyAvLyBSZXNvbHZlIHRoZSBwcm9taXNlIHdpdGggdGhlIHJlc3VsdFxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG4iLCAiaW1wb3J0ICogYXMgc21hcnRwcm9taXNlIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSc7XG5cbmV4cG9ydCB7IHNtYXJ0cHJvbWlzZSB9O1xuIiwgIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxuXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cblxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XG4gIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XG4gIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG59XG5cbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcbiAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcbiAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0O1xuICB9XG4gIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcbiAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICB0W3BdID0gc1twXTtcbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICB9XG4gIHJldHVybiB0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2VzRGVjb3JhdGUoY3RvciwgZGVzY3JpcHRvckluLCBkZWNvcmF0b3JzLCBjb250ZXh0SW4sIGluaXRpYWxpemVycywgZXh0cmFJbml0aWFsaXplcnMpIHtcbiAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRnVuY3Rpb24gZXhwZWN0ZWRcIik7IHJldHVybiBmOyB9XG4gIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XG4gIHZhciB0YXJnZXQgPSAhZGVzY3JpcHRvckluICYmIGN0b3IgPyBjb250ZXh0SW5bXCJzdGF0aWNcIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsO1xuICB2YXIgZGVzY3JpcHRvciA9IGRlc2NyaXB0b3JJbiB8fCAodGFyZ2V0ID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGNvbnRleHRJbi5uYW1lKSA6IHt9KTtcbiAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcbiAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBjb250ZXh0ID0ge307XG4gICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcbiAgICAgIGZvciAodmFyIHAgaW4gY29udGV4dEluLmFjY2VzcykgY29udGV4dC5hY2Nlc3NbcF0gPSBjb250ZXh0SW4uYWNjZXNzW3BdO1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkXCIpOyBleHRyYUluaXRpYWxpemVycy5wdXNoKGFjY2VwdChmIHx8IG51bGwpKTsgfTtcbiAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xuICAgICAgaWYgKGtpbmQgPT09IFwiYWNjZXNzb3JcIikge1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xuICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87XG4gICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LnNldCkpIGRlc2NyaXB0b3Iuc2V0ID0gXztcbiAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoXyA9IGFjY2VwdChyZXN1bHQpKSB7XG4gICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XG4gICAgICAgICAgZWxzZSBkZXNjcmlwdG9yW2tleV0gPSBfO1xuICAgICAgfVxuICB9XG4gIGlmICh0YXJnZXQpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGNvbnRleHRJbi5uYW1lLCBkZXNjcmlwdG9yKTtcbiAgZG9uZSA9IHRydWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19ydW5Jbml0aWFsaXplcnModGhpc0FyZywgaW5pdGlhbGl6ZXJzLCB2YWx1ZSkge1xuICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbml0aWFsaXplcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbHVlID0gdXNlVmFsdWUgPyBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnLCB2YWx1ZSkgOiBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnKTtcbiAgfVxuICByZXR1cm4gdXNlVmFsdWUgPyB2YWx1ZSA6IHZvaWQgMDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3Byb3BLZXkoeCkge1xuICByZXR1cm4gdHlwZW9mIHggPT09IFwic3ltYm9sXCIgPyB4IDogXCJcIi5jb25jYXQoeCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19zZXRGdW5jdGlvbk5hbWUoZiwgbmFtZSwgcHJlZml4KSB7XG4gIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCBcIm5hbWVcIiwgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiBwcmVmaXggPyBcIlwiLmNvbmNhdChwcmVmaXgsIFwiIFwiLCBuYW1lKSA6IG5hbWUgfSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xuICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xuICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gIH1cbn1cblxuZXhwb3J0IHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gIH1cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIG9bazJdID0gbVtrXTtcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcbiAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xuICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwO1xuICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcbiAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XG4gICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xuICAgICAgfVxuICB9O1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xuICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghbSkgcmV0dXJuIG87XG4gIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICB0cnkge1xuICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XG4gIH1cbiAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XG4gIGZpbmFsbHkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICB9XG4gIHJldHVybiBhcjtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XG4gIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxuICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xuICByZXR1cm4gYXI7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xuICBmb3IgKHZhciBzID0gMCwgaSA9IDAsIGlsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsOyBpKyspIHMgKz0gYXJndW1lbnRzW2ldLmxlbmd0aDtcbiAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxuICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXG4gICAgICAgICAgcltrXSA9IGFbal07XG4gIHJldHVybiByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheSh0bywgZnJvbSwgcGFjaykge1xuICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xuICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xuICAgICAgfVxuICB9XG4gIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XG4gIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcbiAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcbiAgcmV0dXJuIGkgPSBPYmplY3QuY3JlYXRlKCh0eXBlb2YgQXN5bmNJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gQXN5bmNJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiLCBhd2FpdFJldHVybiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcbiAgZnVuY3Rpb24gYXdhaXRSZXR1cm4oZikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGYsIHJlamVjdCk7IH07IH1cbiAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlmIChnW25dKSB7IGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IGlmIChmKSBpW25dID0gZihpW25dKTsgfSB9XG4gIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cbiAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyB9XG4gIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cbiAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxuICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcbiAgdmFyIGksIHA7XG4gIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XG4gIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpW25dID0gb1tuXSA/IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IGZhbHNlIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcbiAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSwgaTtcbiAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xuICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XG4gIGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIGQsIHYpIHsgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odikgeyByZXNvbHZlKHsgdmFsdWU6IHYsIGRvbmU6IGQgfSk7IH0sIHJlamVjdCk7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fbWFrZVRlbXBsYXRlT2JqZWN0KGNvb2tlZCwgcmF3KSB7XG4gIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gIHJldHVybiBjb29rZWQ7XG59O1xuXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59O1xuXG52YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHtcbiAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIChvKSB7XG4gICAgdmFyIGFyID0gW107XG4gICAgZm9yICh2YXIgayBpbiBvKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIGspKSBhclthci5sZW5ndGhdID0gaztcbiAgICByZXR1cm4gYXI7XG4gIH07XG4gIHJldHVybiBvd25LZXlzKG8pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcbiAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09IFwiZGVmYXVsdFwiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pO1xuICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xuICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcbiAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xuICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XG4gIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcbiAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oc3RhdGUsIHJlY2VpdmVyKSB7XG4gIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xuICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hZGREaXNwb3NhYmxlUmVzb3VyY2UoZW52LCB2YWx1ZSwgYXN5bmMpIHtcbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDApIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkLlwiKTtcbiAgICB2YXIgZGlzcG9zZSwgaW5uZXI7XG4gICAgaWYgKGFzeW5jKSB7XG4gICAgICBpZiAoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcbiAgICB9XG4gICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xuICAgICAgaWYgKCFTeW1ib2wuZGlzcG9zZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5kaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuZGlzcG9zZV07XG4gICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xuICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xuICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XG4gIH1cbiAgZWxzZSBpZiAoYXN5bmMpIHtcbiAgICBlbnYuc3RhY2sucHVzaCh7IGFzeW5jOiB0cnVlIH0pO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxudmFyIF9TdXBwcmVzc2VkRXJyb3IgPSB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcbiAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19kaXNwb3NlUmVzb3VyY2VzKGVudikge1xuICBmdW5jdGlvbiBmYWlsKGUpIHtcbiAgICBlbnYuZXJyb3IgPSBlbnYuaGFzRXJyb3IgPyBuZXcgX1N1cHByZXNzZWRFcnJvcihlLCBlbnYuZXJyb3IsIFwiQW4gZXJyb3Igd2FzIHN1cHByZXNzZWQgZHVyaW5nIGRpc3Bvc2FsLlwiKSA6IGU7XG4gICAgZW52Lmhhc0Vycm9yID0gdHJ1ZTtcbiAgfVxuICB2YXIgciwgcyA9IDA7XG4gIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgd2hpbGUgKHIgPSBlbnYuc3RhY2sucG9wKCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghci5hc3luYyAmJiBzID09PSAxKSByZXR1cm4gcyA9IDAsIGVudi5zdGFjay5wdXNoKHIpLCBQcm9taXNlLnJlc29sdmUoKS50aGVuKG5leHQpO1xuICAgICAgICBpZiAoci5kaXNwb3NlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO1xuICAgICAgICAgIGlmIChyLmFzeW5jKSByZXR1cm4gcyB8PSAyLCBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBzIHw9IDE7XG4gICAgICB9XG4gICAgICBjYXRjaCAoZSkge1xuICAgICAgICBmYWlsKGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocyA9PT0gMSkgcmV0dXJuIGVudi5oYXNFcnJvciA/IFByb21pc2UucmVqZWN0KGVudi5lcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XG4gIH1cbiAgcmV0dXJuIG5leHQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uKHBhdGgsIHByZXNlcnZlSnN4KSB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcLlxcLj9cXC8vLnRlc3QocGF0aCkpIHtcbiAgICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL1xcLih0c3gpJHwoKD86XFwuZCk/KSgoPzpcXC5bXi4vXSs/KT8pXFwuKFtjbV0/KXRzJC9pLCBmdW5jdGlvbiAobSwgdHN4LCBkLCBleHQsIGNtKSB7XG4gICAgICAgICAgcmV0dXJuIHRzeCA/IHByZXNlcnZlSnN4ID8gXCIuanN4XCIgOiBcIi5qc1wiIDogZCAmJiAoIWV4dCB8fCAhY20pID8gbSA6IChkICsgZXh0ICsgXCIuXCIgKyBjbS50b0xvd2VyQ2FzZSgpICsgXCJqc1wiKTtcbiAgICAgIH0pO1xuICB9XG4gIHJldHVybiBwYXRoO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIF9fZXh0ZW5kcyxcbiAgX19hc3NpZ24sXG4gIF9fcmVzdCxcbiAgX19kZWNvcmF0ZSxcbiAgX19wYXJhbSxcbiAgX19lc0RlY29yYXRlLFxuICBfX3J1bkluaXRpYWxpemVycyxcbiAgX19wcm9wS2V5LFxuICBfX3NldEZ1bmN0aW9uTmFtZSxcbiAgX19tZXRhZGF0YSxcbiAgX19hd2FpdGVyLFxuICBfX2dlbmVyYXRvcixcbiAgX19jcmVhdGVCaW5kaW5nLFxuICBfX2V4cG9ydFN0YXIsXG4gIF9fdmFsdWVzLFxuICBfX3JlYWQsXG4gIF9fc3ByZWFkLFxuICBfX3NwcmVhZEFycmF5cyxcbiAgX19zcHJlYWRBcnJheSxcbiAgX19hd2FpdCxcbiAgX19hc3luY0dlbmVyYXRvcixcbiAgX19hc3luY0RlbGVnYXRvcixcbiAgX19hc3luY1ZhbHVlcyxcbiAgX19tYWtlVGVtcGxhdGVPYmplY3QsXG4gIF9faW1wb3J0U3RhcixcbiAgX19pbXBvcnREZWZhdWx0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4sXG4gIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlLFxuICBfX2Rpc3Bvc2VSZXNvdXJjZXMsXG4gIF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uLFxufTtcbiIsICIvKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgZnVuY3Rpb24uXG4gKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyAoLi4uYXJnczogYW55W10pID0+IGFueSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbic7XG59XG4iLCAiLyoqXG4gKiBVc2VkIHRvIGNyZWF0ZSBFcnJvciBzdWJjbGFzc2VzIHVudGlsIHRoZSBjb21tdW5pdHkgbW92ZXMgYXdheSBmcm9tIEVTNS5cbiAqXG4gKiBUaGlzIGlzIGJlY2F1c2UgY29tcGlsaW5nIGZyb20gVHlwZVNjcmlwdCBkb3duIHRvIEVTNSBoYXMgaXNzdWVzIHdpdGggc3ViY2xhc3NpbmcgRXJyb3JzXG4gKiBhcyB3ZWxsIGFzIG90aGVyIGJ1aWx0LWluIHR5cGVzOiBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzEyMTIzXG4gKlxuICogQHBhcmFtIGNyZWF0ZUltcGwgQSBmYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSB0aGUgYWN0dWFsIGNvbnN0cnVjdG9yIGltcGxlbWVudGF0aW9uLiBUaGUgcmV0dXJuZWRcbiAqIGZ1bmN0aW9uIHNob3VsZCBiZSBhIG5hbWVkIGZ1bmN0aW9uIHRoYXQgY2FsbHMgYF9zdXBlcmAgaW50ZXJuYWxseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVycm9yQ2xhc3M8VD4oY3JlYXRlSW1wbDogKF9zdXBlcjogYW55KSA9PiBhbnkpOiBUIHtcbiAgY29uc3QgX3N1cGVyID0gKGluc3RhbmNlOiBhbnkpID0+IHtcbiAgICBFcnJvci5jYWxsKGluc3RhbmNlKTtcbiAgICBpbnN0YW5jZS5zdGFjayA9IG5ldyBFcnJvcigpLnN0YWNrO1xuICB9O1xuXG4gIGNvbnN0IGN0b3JGdW5jID0gY3JlYXRlSW1wbChfc3VwZXIpO1xuICBjdG9yRnVuYy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7XG4gIGN0b3JGdW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JGdW5jO1xuICByZXR1cm4gY3RvckZ1bmM7XG59XG4iLCAiaW1wb3J0IHsgY3JlYXRlRXJyb3JDbGFzcyB9IGZyb20gJy4vY3JlYXRlRXJyb3JDbGFzcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5zdWJzY3JpcHRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcmVhZG9ubHkgZXJyb3JzOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbnN1YnNjcmlwdGlvbkVycm9yQ3RvciB7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuIERvIG5vdCBjb25zdHJ1Y3QgZXJyb3IgaW5zdGFuY2VzLlxuICAgKiBDYW5ub3QgYmUgdGFnZ2VkIGFzIGludGVybmFsOiBodHRwczovL2dpdGh1Yi5jb20vUmVhY3RpdmVYL3J4anMvaXNzdWVzLzYyNjlcbiAgICovXG4gIG5ldyAoZXJyb3JzOiBhbnlbXSk6IFVuc3Vic2NyaXB0aW9uRXJyb3I7XG59XG5cbi8qKlxuICogQW4gZXJyb3IgdGhyb3duIHdoZW4gb25lIG9yIG1vcmUgZXJyb3JzIGhhdmUgb2NjdXJyZWQgZHVyaW5nIHRoZVxuICogYHVuc3Vic2NyaWJlYCBvZiBhIHtAbGluayBTdWJzY3JpcHRpb259LlxuICovXG5leHBvcnQgY29uc3QgVW5zdWJzY3JpcHRpb25FcnJvcjogVW5zdWJzY3JpcHRpb25FcnJvckN0b3IgPSBjcmVhdGVFcnJvckNsYXNzKFxuICAoX3N1cGVyKSA9PlxuICAgIGZ1bmN0aW9uIFVuc3Vic2NyaXB0aW9uRXJyb3JJbXBsKHRoaXM6IGFueSwgZXJyb3JzOiAoRXJyb3IgfCBzdHJpbmcpW10pIHtcbiAgICAgIF9zdXBlcih0aGlzKTtcbiAgICAgIHRoaXMubWVzc2FnZSA9IGVycm9yc1xuICAgICAgICA/IGAke2Vycm9ycy5sZW5ndGh9IGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246XG4ke2Vycm9ycy5tYXAoKGVyciwgaSkgPT4gYCR7aSArIDF9KSAke2Vyci50b1N0cmluZygpfWApLmpvaW4oJ1xcbiAgJyl9YFxuICAgICAgICA6ICcnO1xuICAgICAgdGhpcy5uYW1lID0gJ1Vuc3Vic2NyaXB0aW9uRXJyb3InO1xuICAgICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7XG4gICAgfVxuKTtcbiIsICIvKipcbiAqIFJlbW92ZXMgYW4gaXRlbSBmcm9tIGFuIGFycmF5LCBtdXRhdGluZyBpdC5cbiAqIEBwYXJhbSBhcnIgVGhlIGFycmF5IHRvIHJlbW92ZSB0aGUgaXRlbSBmcm9tXG4gKiBAcGFyYW0gaXRlbSBUaGUgaXRlbSB0byByZW1vdmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFyclJlbW92ZTxUPihhcnI6IFRbXSB8IHVuZGVmaW5lZCB8IG51bGwsIGl0ZW06IFQpIHtcbiAgaWYgKGFycikge1xuICAgIGNvbnN0IGluZGV4ID0gYXJyLmluZGV4T2YoaXRlbSk7XG4gICAgMCA8PSBpbmRleCAmJiBhcnIuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL3V0aWwvaXNGdW5jdGlvbic7XG5pbXBvcnQgeyBVbnN1YnNjcmlwdGlvbkVycm9yIH0gZnJvbSAnLi91dGlsL1Vuc3Vic2NyaXB0aW9uRXJyb3InO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uTGlrZSwgVGVhcmRvd25Mb2dpYywgVW5zdWJzY3JpYmFibGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGFyclJlbW92ZSB9IGZyb20gJy4vdXRpbC9hcnJSZW1vdmUnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBkaXNwb3NhYmxlIHJlc291cmNlLCBzdWNoIGFzIHRoZSBleGVjdXRpb24gb2YgYW4gT2JzZXJ2YWJsZS4gQVxuICogU3Vic2NyaXB0aW9uIGhhcyBvbmUgaW1wb3J0YW50IG1ldGhvZCwgYHVuc3Vic2NyaWJlYCwgdGhhdCB0YWtlcyBubyBhcmd1bWVudFxuICogYW5kIGp1c3QgZGlzcG9zZXMgdGhlIHJlc291cmNlIGhlbGQgYnkgdGhlIHN1YnNjcmlwdGlvbi5cbiAqXG4gKiBBZGRpdGlvbmFsbHksIHN1YnNjcmlwdGlvbnMgbWF5IGJlIGdyb3VwZWQgdG9nZXRoZXIgdGhyb3VnaCB0aGUgYGFkZCgpYFxuICogbWV0aG9kLCB3aGljaCB3aWxsIGF0dGFjaCBhIGNoaWxkIFN1YnNjcmlwdGlvbiB0byB0aGUgY3VycmVudCBTdWJzY3JpcHRpb24uXG4gKiBXaGVuIGEgU3Vic2NyaXB0aW9uIGlzIHVuc3Vic2NyaWJlZCwgYWxsIGl0cyBjaGlsZHJlbiAoYW5kIGl0cyBncmFuZGNoaWxkcmVuKVxuICogd2lsbCBiZSB1bnN1YnNjcmliZWQgYXMgd2VsbC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvbkxpa2Uge1xuICBwdWJsaWMgc3RhdGljIEVNUFRZID0gKCgpID0+IHtcbiAgICBjb25zdCBlbXB0eSA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBlbXB0eS5jbG9zZWQgPSB0cnVlO1xuICAgIHJldHVybiBlbXB0eTtcbiAgfSkoKTtcblxuICAvKipcbiAgICogQSBmbGFnIHRvIGluZGljYXRlIHdoZXRoZXIgdGhpcyBTdWJzY3JpcHRpb24gaGFzIGFscmVhZHkgYmVlbiB1bnN1YnNjcmliZWQuXG4gICAqL1xuICBwdWJsaWMgY2xvc2VkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfcGFyZW50YWdlOiBTdWJzY3JpcHRpb25bXSB8IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiByZWdpc3RlcmVkIGZpbmFsaXplcnMgdG8gZXhlY3V0ZSB1cG9uIHVuc3Vic2NyaXB0aW9uLiBBZGRpbmcgYW5kIHJlbW92aW5nIGZyb20gdGhpc1xuICAgKiBsaXN0IG9jY3VycyBpbiB0aGUge0BsaW5rICNhZGR9IGFuZCB7QGxpbmsgI3JlbW92ZX0gbWV0aG9kcy5cbiAgICovXG4gIHByaXZhdGUgX2ZpbmFsaXplcnM6IEV4Y2x1ZGU8VGVhcmRvd25Mb2dpYywgdm9pZD5bXSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gaW5pdGlhbFRlYXJkb3duIEEgZnVuY3Rpb24gZXhlY3V0ZWQgZmlyc3QgYXMgcGFydCBvZiB0aGUgZmluYWxpemF0aW9uXG4gICAqIHByb2Nlc3MgdGhhdCBpcyBraWNrZWQgb2ZmIHdoZW4ge0BsaW5rICN1bnN1YnNjcmliZX0gaXMgY2FsbGVkLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbml0aWFsVGVhcmRvd24/OiAoKSA9PiB2b2lkKSB7fVxuXG4gIC8qKlxuICAgKiBEaXNwb3NlcyB0aGUgcmVzb3VyY2VzIGhlbGQgYnkgdGhlIHN1YnNjcmlwdGlvbi4gTWF5LCBmb3IgaW5zdGFuY2UsIGNhbmNlbFxuICAgKiBhbiBvbmdvaW5nIE9ic2VydmFibGUgZXhlY3V0aW9uIG9yIGNhbmNlbCBhbnkgb3RoZXIgdHlwZSBvZiB3b3JrIHRoYXRcbiAgICogc3RhcnRlZCB3aGVuIHRoZSBTdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQuXG4gICAqL1xuICB1bnN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICBsZXQgZXJyb3JzOiBhbnlbXSB8IHVuZGVmaW5lZDtcblxuICAgIGlmICghdGhpcy5jbG9zZWQpIHtcbiAgICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcblxuICAgICAgLy8gUmVtb3ZlIHRoaXMgZnJvbSBpdCdzIHBhcmVudHMuXG4gICAgICBjb25zdCB7IF9wYXJlbnRhZ2UgfSA9IHRoaXM7XG4gICAgICBpZiAoX3BhcmVudGFnZSkge1xuICAgICAgICB0aGlzLl9wYXJlbnRhZ2UgPSBudWxsO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShfcGFyZW50YWdlKSkge1xuICAgICAgICAgIGZvciAoY29uc3QgcGFyZW50IG9mIF9wYXJlbnRhZ2UpIHtcbiAgICAgICAgICAgIHBhcmVudC5yZW1vdmUodGhpcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF9wYXJlbnRhZ2UucmVtb3ZlKHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgaW5pdGlhbFRlYXJkb3duOiBpbml0aWFsRmluYWxpemVyIH0gPSB0aGlzO1xuICAgICAgaWYgKGlzRnVuY3Rpb24oaW5pdGlhbEZpbmFsaXplcikpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpbml0aWFsRmluYWxpemVyKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBlcnJvcnMgPSBlIGluc3RhbmNlb2YgVW5zdWJzY3JpcHRpb25FcnJvciA/IGUuZXJyb3JzIDogW2VdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgX2ZpbmFsaXplcnMgfSA9IHRoaXM7XG4gICAgICBpZiAoX2ZpbmFsaXplcnMpIHtcbiAgICAgICAgdGhpcy5fZmluYWxpemVycyA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgZmluYWxpemVyIG9mIF9maW5hbGl6ZXJzKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGV4ZWNGaW5hbGl6ZXIoZmluYWxpemVyKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGVycm9ycyA9IGVycm9ycyA/PyBbXTtcbiAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBVbnN1YnNjcmlwdGlvbkVycm9yKSB7XG4gICAgICAgICAgICAgIGVycm9ycyA9IFsuLi5lcnJvcnMsIC4uLmVyci5lcnJvcnNdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZXJyb3JzLnB1c2goZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGVycm9ycykge1xuICAgICAgICB0aHJvdyBuZXcgVW5zdWJzY3JpcHRpb25FcnJvcihlcnJvcnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgZmluYWxpemVyIHRvIHRoaXMgc3Vic2NyaXB0aW9uLCBzbyB0aGF0IGZpbmFsaXphdGlvbiB3aWxsIGJlIHVuc3Vic2NyaWJlZC9jYWxsZWRcbiAgICogd2hlbiB0aGlzIHN1YnNjcmlwdGlvbiBpcyB1bnN1YnNjcmliZWQuIElmIHRoaXMgc3Vic2NyaXB0aW9uIGlzIGFscmVhZHkge0BsaW5rICNjbG9zZWR9LFxuICAgKiBiZWNhdXNlIGl0IGhhcyBhbHJlYWR5IGJlZW4gdW5zdWJzY3JpYmVkLCB0aGVuIHdoYXRldmVyIGZpbmFsaXplciBpcyBwYXNzZWQgdG8gaXRcbiAgICogd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGV4ZWN1dGVkICh1bmxlc3MgdGhlIGZpbmFsaXplciBpdHNlbGYgaXMgYWxzbyBhIGNsb3NlZCBzdWJzY3JpcHRpb24pLlxuICAgKlxuICAgKiBDbG9zZWQgU3Vic2NyaXB0aW9ucyBjYW5ub3QgYmUgYWRkZWQgYXMgZmluYWxpemVycyB0byBhbnkgc3Vic2NyaXB0aW9uLiBBZGRpbmcgYSBjbG9zZWRcbiAgICogc3Vic2NyaXB0aW9uIHRvIGEgYW55IHN1YnNjcmlwdGlvbiB3aWxsIHJlc3VsdCBpbiBubyBvcGVyYXRpb24uIChBIG5vb3ApLlxuICAgKlxuICAgKiBBZGRpbmcgYSBzdWJzY3JpcHRpb24gdG8gaXRzZWxmLCBvciBhZGRpbmcgYG51bGxgIG9yIGB1bmRlZmluZWRgIHdpbGwgbm90IHBlcmZvcm0gYW55XG4gICAqIG9wZXJhdGlvbiBhdCBhbGwuIChBIG5vb3ApLlxuICAgKlxuICAgKiBgU3Vic2NyaXB0aW9uYCBpbnN0YW5jZXMgdGhhdCBhcmUgYWRkZWQgdG8gdGhpcyBpbnN0YW5jZSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZW1zZWx2ZXNcbiAgICogaWYgdGhleSBhcmUgdW5zdWJzY3JpYmVkLiBGdW5jdGlvbnMgYW5kIHtAbGluayBVbnN1YnNjcmliYWJsZX0gb2JqZWN0cyB0aGF0IHlvdSB3aXNoIHRvIHJlbW92ZVxuICAgKiB3aWxsIG5lZWQgdG8gYmUgcmVtb3ZlZCBtYW51YWxseSB3aXRoIHtAbGluayAjcmVtb3ZlfVxuICAgKlxuICAgKiBAcGFyYW0gdGVhcmRvd24gVGhlIGZpbmFsaXphdGlvbiBsb2dpYyB0byBhZGQgdG8gdGhpcyBzdWJzY3JpcHRpb24uXG4gICAqL1xuICBhZGQodGVhcmRvd246IFRlYXJkb3duTG9naWMpOiB2b2lkIHtcbiAgICAvLyBPbmx5IGFkZCB0aGUgZmluYWxpemVyIGlmIGl0J3Mgbm90IHVuZGVmaW5lZFxuICAgIC8vIGFuZCBkb24ndCBhZGQgYSBzdWJzY3JpcHRpb24gdG8gaXRzZWxmLlxuICAgIGlmICh0ZWFyZG93biAmJiB0ZWFyZG93biAhPT0gdGhpcykge1xuICAgICAgaWYgKHRoaXMuY2xvc2VkKSB7XG4gICAgICAgIC8vIElmIHRoaXMgc3Vic2NyaXB0aW9uIGlzIGFscmVhZHkgY2xvc2VkLFxuICAgICAgICAvLyBleGVjdXRlIHdoYXRldmVyIGZpbmFsaXplciBpcyBoYW5kZWQgdG8gaXQgYXV0b21hdGljYWxseS5cbiAgICAgICAgZXhlY0ZpbmFsaXplcih0ZWFyZG93bik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGVhcmRvd24gaW5zdGFuY2VvZiBTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAvLyBXZSBkb24ndCBhZGQgY2xvc2VkIHN1YnNjcmlwdGlvbnMsIGFuZCB3ZSBkb24ndCBhZGQgdGhlIHNhbWUgc3Vic2NyaXB0aW9uXG4gICAgICAgICAgLy8gdHdpY2UuIFN1YnNjcmlwdGlvbiB1bnN1YnNjcmliZSBpcyBpZGVtcG90ZW50LlxuICAgICAgICAgIGlmICh0ZWFyZG93bi5jbG9zZWQgfHwgdGVhcmRvd24uX2hhc1BhcmVudCh0aGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0ZWFyZG93bi5fYWRkUGFyZW50KHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgICh0aGlzLl9maW5hbGl6ZXJzID0gdGhpcy5fZmluYWxpemVycyA/PyBbXSkucHVzaCh0ZWFyZG93bik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB0byBzZWUgaWYgYSB0aGlzIHN1YnNjcmlwdGlvbiBhbHJlYWR5IGhhcyBhIHBhcnRpY3VsYXIgcGFyZW50LlxuICAgKiBUaGlzIHdpbGwgc2lnbmFsIHRoYXQgdGhpcyBzdWJzY3JpcHRpb24gaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgcGFyZW50IGluIHF1ZXN0aW9uLlxuICAgKiBAcGFyYW0gcGFyZW50IHRoZSBwYXJlbnQgdG8gY2hlY2sgZm9yXG4gICAqL1xuICBwcml2YXRlIF9oYXNQYXJlbnQocGFyZW50OiBTdWJzY3JpcHRpb24pIHtcbiAgICBjb25zdCB7IF9wYXJlbnRhZ2UgfSA9IHRoaXM7XG4gICAgcmV0dXJuIF9wYXJlbnRhZ2UgPT09IHBhcmVudCB8fCAoQXJyYXkuaXNBcnJheShfcGFyZW50YWdlKSAmJiBfcGFyZW50YWdlLmluY2x1ZGVzKHBhcmVudCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBwYXJlbnQgdG8gdGhpcyBzdWJzY3JpcHRpb24gc28gaXQgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgcGFyZW50IGlmIGl0XG4gICAqIHVuc3Vic2NyaWJlcyBvbiBpdCdzIG93bi5cbiAgICpcbiAgICogTk9URTogVEhJUyBBU1NVTUVTIFRIQVQge0BsaW5rIF9oYXNQYXJlbnR9IEhBUyBBTFJFQURZIEJFRU4gQ0hFQ0tFRC5cbiAgICogQHBhcmFtIHBhcmVudCBUaGUgcGFyZW50IHN1YnNjcmlwdGlvbiB0byBhZGRcbiAgICovXG4gIHByaXZhdGUgX2FkZFBhcmVudChwYXJlbnQ6IFN1YnNjcmlwdGlvbikge1xuICAgIGNvbnN0IHsgX3BhcmVudGFnZSB9ID0gdGhpcztcbiAgICB0aGlzLl9wYXJlbnRhZ2UgPSBBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpID8gKF9wYXJlbnRhZ2UucHVzaChwYXJlbnQpLCBfcGFyZW50YWdlKSA6IF9wYXJlbnRhZ2UgPyBbX3BhcmVudGFnZSwgcGFyZW50XSA6IHBhcmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgb24gYSBjaGlsZCB3aGVuIGl0IGlzIHJlbW92ZWQgdmlhIHtAbGluayAjcmVtb3ZlfS5cbiAgICogQHBhcmFtIHBhcmVudCBUaGUgcGFyZW50IHRvIHJlbW92ZVxuICAgKi9cbiAgcHJpdmF0ZSBfcmVtb3ZlUGFyZW50KHBhcmVudDogU3Vic2NyaXB0aW9uKSB7XG4gICAgY29uc3QgeyBfcGFyZW50YWdlIH0gPSB0aGlzO1xuICAgIGlmIChfcGFyZW50YWdlID09PSBwYXJlbnQpIHtcbiAgICAgIHRoaXMuX3BhcmVudGFnZSA9IG51bGw7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpKSB7XG4gICAgICBhcnJSZW1vdmUoX3BhcmVudGFnZSwgcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGZpbmFsaXplciBmcm9tIHRoaXMgc3Vic2NyaXB0aW9uIHRoYXQgd2FzIHByZXZpb3VzbHkgYWRkZWQgd2l0aCB0aGUge0BsaW5rICNhZGR9IG1ldGhvZC5cbiAgICpcbiAgICogTm90ZSB0aGF0IGBTdWJzY3JpcHRpb25gIGluc3RhbmNlcywgd2hlbiB1bnN1YnNjcmliZWQsIHdpbGwgYXV0b21hdGljYWxseSByZW1vdmUgdGhlbXNlbHZlc1xuICAgKiBmcm9tIGV2ZXJ5IG90aGVyIGBTdWJzY3JpcHRpb25gIHRoZXkgaGF2ZSBiZWVuIGFkZGVkIHRvLiBUaGlzIG1lYW5zIHRoYXQgdXNpbmcgdGhlIGByZW1vdmVgIG1ldGhvZFxuICAgKiBpcyBub3QgYSBjb21tb24gdGhpbmcgYW5kIHNob3VsZCBiZSB1c2VkIHRob3VnaHRmdWxseS5cbiAgICpcbiAgICogSWYgeW91IGFkZCB0aGUgc2FtZSBmaW5hbGl6ZXIgaW5zdGFuY2Ugb2YgYSBmdW5jdGlvbiBvciBhbiB1bnN1YnNjcmliYWJsZSBvYmplY3QgdG8gYSBgU3Vic2NyaXB0aW9uYCBpbnN0YW5jZVxuICAgKiBtb3JlIHRoYW4gb25jZSwgeW91IHdpbGwgbmVlZCB0byBjYWxsIGByZW1vdmVgIHRoZSBzYW1lIG51bWJlciBvZiB0aW1lcyB0byByZW1vdmUgYWxsIGluc3RhbmNlcy5cbiAgICpcbiAgICogQWxsIGZpbmFsaXplciBpbnN0YW5jZXMgYXJlIHJlbW92ZWQgdG8gZnJlZSB1cCBtZW1vcnkgdXBvbiB1bnN1YnNjcmlwdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHRlYXJkb3duIFRoZSBmaW5hbGl6ZXIgdG8gcmVtb3ZlIGZyb20gdGhpcyBzdWJzY3JpcHRpb25cbiAgICovXG4gIHJlbW92ZSh0ZWFyZG93bjogRXhjbHVkZTxUZWFyZG93bkxvZ2ljLCB2b2lkPik6IHZvaWQge1xuICAgIGNvbnN0IHsgX2ZpbmFsaXplcnMgfSA9IHRoaXM7XG4gICAgX2ZpbmFsaXplcnMgJiYgYXJyUmVtb3ZlKF9maW5hbGl6ZXJzLCB0ZWFyZG93bik7XG5cbiAgICBpZiAodGVhcmRvd24gaW5zdGFuY2VvZiBTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRlYXJkb3duLl9yZW1vdmVQYXJlbnQodGhpcyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9TVUJTQ1JJUFRJT04gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N1YnNjcmlwdGlvbih2YWx1ZTogYW55KTogdmFsdWUgaXMgU3Vic2NyaXB0aW9uIHtcbiAgcmV0dXJuIChcbiAgICB2YWx1ZSBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbiB8fFxuICAgICh2YWx1ZSAmJiAnY2xvc2VkJyBpbiB2YWx1ZSAmJiBpc0Z1bmN0aW9uKHZhbHVlLnJlbW92ZSkgJiYgaXNGdW5jdGlvbih2YWx1ZS5hZGQpICYmIGlzRnVuY3Rpb24odmFsdWUudW5zdWJzY3JpYmUpKVxuICApO1xufVxuXG5mdW5jdGlvbiBleGVjRmluYWxpemVyKGZpbmFsaXplcjogVW5zdWJzY3JpYmFibGUgfCAoKCkgPT4gdm9pZCkpIHtcbiAgaWYgKGlzRnVuY3Rpb24oZmluYWxpemVyKSkge1xuICAgIGZpbmFsaXplcigpO1xuICB9IGVsc2Uge1xuICAgIGZpbmFsaXplci51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgU3Vic2NyaWJlciB9IGZyb20gJy4vU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlTm90aWZpY2F0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogVGhlIHtAbGluayBHbG9iYWxDb25maWd9IG9iamVjdCBmb3IgUnhKUy4gSXQgaXMgdXNlZCB0byBjb25maWd1cmUgdGhpbmdzXG4gKiBsaWtlIGhvdyB0byByZWFjdCBvbiB1bmhhbmRsZWQgZXJyb3JzLlxuICovXG5leHBvcnQgY29uc3QgY29uZmlnOiBHbG9iYWxDb25maWcgPSB7XG4gIG9uVW5oYW5kbGVkRXJyb3I6IG51bGwsXG4gIG9uU3RvcHBlZE5vdGlmaWNhdGlvbjogbnVsbCxcbiAgUHJvbWlzZTogdW5kZWZpbmVkLFxuICB1c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nOiBmYWxzZSxcbiAgdXNlRGVwcmVjYXRlZE5leHRDb250ZXh0OiBmYWxzZSxcbn07XG5cbi8qKlxuICogVGhlIGdsb2JhbCBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgUnhKUywgdXNlZCB0byBjb25maWd1cmUgdGhpbmdzXG4gKiBsaWtlIGhvdyB0byByZWFjdCBvbiB1bmhhbmRsZWQgZXJyb3JzLiBBY2Nlc3NpYmxlIHZpYSB7QGxpbmsgY29uZmlnfVxuICogb2JqZWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbENvbmZpZyB7XG4gIC8qKlxuICAgKiBBIHJlZ2lzdHJhdGlvbiBwb2ludCBmb3IgdW5oYW5kbGVkIGVycm9ycyBmcm9tIFJ4SlMuIFRoZXNlIGFyZSBlcnJvcnMgdGhhdFxuICAgKiBjYW5ub3Qgd2VyZSBub3QgaGFuZGxlZCBieSBjb25zdW1pbmcgY29kZSBpbiB0aGUgdXN1YWwgc3Vic2NyaXB0aW9uIHBhdGguIEZvclxuICAgKiBleGFtcGxlLCBpZiB5b3UgaGF2ZSB0aGlzIGNvbmZpZ3VyZWQsIGFuZCB5b3Ugc3Vic2NyaWJlIHRvIGFuIG9ic2VydmFibGUgd2l0aG91dFxuICAgKiBwcm92aWRpbmcgYW4gZXJyb3IgaGFuZGxlciwgZXJyb3JzIGZyb20gdGhhdCBzdWJzY3JpcHRpb24gd2lsbCBlbmQgdXAgaGVyZS4gVGhpc1xuICAgKiB3aWxsIF9hbHdheXNfIGJlIGNhbGxlZCBhc3luY2hyb25vdXNseSBvbiBhbm90aGVyIGpvYiBpbiB0aGUgcnVudGltZS4gVGhpcyBpcyBiZWNhdXNlXG4gICAqIHdlIGRvIG5vdCB3YW50IGVycm9ycyB0aHJvd24gaW4gdGhpcyB1c2VyLWNvbmZpZ3VyZWQgaGFuZGxlciB0byBpbnRlcmZlcmUgd2l0aCB0aGVcbiAgICogYmVoYXZpb3Igb2YgdGhlIGxpYnJhcnkuXG4gICAqL1xuICBvblVuaGFuZGxlZEVycm9yOiAoKGVycjogYW55KSA9PiB2b2lkKSB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEEgcmVnaXN0cmF0aW9uIHBvaW50IGZvciBub3RpZmljYXRpb25zIHRoYXQgY2Fubm90IGJlIHNlbnQgdG8gc3Vic2NyaWJlcnMgYmVjYXVzZSB0aGV5XG4gICAqIGhhdmUgY29tcGxldGVkLCBlcnJvcmVkIG9yIGhhdmUgYmVlbiBleHBsaWNpdGx5IHVuc3Vic2NyaWJlZC4gQnkgZGVmYXVsdCwgbmV4dCwgY29tcGxldGVcbiAgICogYW5kIGVycm9yIG5vdGlmaWNhdGlvbnMgc2VudCB0byBzdG9wcGVkIHN1YnNjcmliZXJzIGFyZSBub29wcy4gSG93ZXZlciwgc29tZXRpbWVzIGNhbGxlcnNcbiAgICogbWlnaHQgd2FudCBhIGRpZmZlcmVudCBiZWhhdmlvci4gRm9yIGV4YW1wbGUsIHdpdGggc291cmNlcyB0aGF0IGF0dGVtcHQgdG8gcmVwb3J0IGVycm9yc1xuICAgKiB0byBzdG9wcGVkIHN1YnNjcmliZXJzLCBhIGNhbGxlciBjYW4gY29uZmlndXJlIFJ4SlMgdG8gdGhyb3cgYW4gdW5oYW5kbGVkIGVycm9yIGluc3RlYWQuXG4gICAqIFRoaXMgd2lsbCBfYWx3YXlzXyBiZSBjYWxsZWQgYXN5bmNocm9ub3VzbHkgb24gYW5vdGhlciBqb2IgaW4gdGhlIHJ1bnRpbWUuIFRoaXMgaXMgYmVjYXVzZVxuICAgKiB3ZSBkbyBub3Qgd2FudCBlcnJvcnMgdGhyb3duIGluIHRoaXMgdXNlci1jb25maWd1cmVkIGhhbmRsZXIgdG8gaW50ZXJmZXJlIHdpdGggdGhlXG4gICAqIGJlaGF2aW9yIG9mIHRoZSBsaWJyYXJ5LlxuICAgKi9cbiAgb25TdG9wcGVkTm90aWZpY2F0aW9uOiAoKG5vdGlmaWNhdGlvbjogT2JzZXJ2YWJsZU5vdGlmaWNhdGlvbjxhbnk+LCBzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPGFueT4pID0+IHZvaWQpIHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIHByb21pc2UgY29uc3RydWN0b3IgdXNlZCBieSBkZWZhdWx0IGZvciB7QGxpbmsgT2JzZXJ2YWJsZSN0b1Byb21pc2UgdG9Qcm9taXNlfSBhbmQge0BsaW5rIE9ic2VydmFibGUjZm9yRWFjaCBmb3JFYWNofVxuICAgKiBtZXRob2RzLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBBcyBvZiB2ZXJzaW9uIDgsIFJ4SlMgd2lsbCBubyBsb25nZXIgc3VwcG9ydCB0aGlzIHNvcnQgb2YgaW5qZWN0aW9uIG9mIGFcbiAgICogUHJvbWlzZSBjb25zdHJ1Y3Rvci4gSWYgeW91IG5lZWQgYSBQcm9taXNlIGltcGxlbWVudGF0aW9uIG90aGVyIHRoYW4gbmF0aXZlIHByb21pc2VzLFxuICAgKiBwbGVhc2UgcG9seWZpbGwvcGF0Y2ggUHJvbWlzZSBhcyB5b3Ugc2VlIGFwcHJvcHJpYXRlLiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguXG4gICAqL1xuICBQcm9taXNlPzogUHJvbWlzZUNvbnN0cnVjdG9yTGlrZTtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgdHVybnMgb24gc3luY2hyb25vdXMgZXJyb3IgcmV0aHJvd2luZywgd2hpY2ggaXMgYSBkZXByZWNhdGVkIGJlaGF2aW9yXG4gICAqIGluIHY2IGFuZCBoaWdoZXIuIFRoaXMgYmVoYXZpb3IgZW5hYmxlcyBiYWQgcGF0dGVybnMgbGlrZSB3cmFwcGluZyBhIHN1YnNjcmliZVxuICAgKiBjYWxsIGluIGEgdHJ5L2NhdGNoIGJsb2NrLiBJdCBhbHNvIGVuYWJsZXMgcHJvZHVjZXIgaW50ZXJmZXJlbmNlLCBhIG5hc3R5IGJ1Z1xuICAgKiB3aGVyZSBhIG11bHRpY2FzdCBjYW4gYmUgYnJva2VuIGZvciBhbGwgb2JzZXJ2ZXJzIGJ5IGEgZG93bnN0cmVhbSBjb25zdW1lciB3aXRoXG4gICAqIGFuIHVuaGFuZGxlZCBlcnJvci4gRE8gTk9UIFVTRSBUSElTIEZMQUcgVU5MRVNTIElUJ1MgTkVFREVEIFRPIEJVWSBUSU1FXG4gICAqIEZPUiBNSUdSQVRJT04gUkVBU09OUy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgQXMgb2YgdmVyc2lvbiA4LCBSeEpTIHdpbGwgbm8gbG9uZ2VyIHN1cHBvcnQgc3luY2hyb25vdXMgdGhyb3dpbmdcbiAgICogb2YgdW5oYW5kbGVkIGVycm9ycy4gQWxsIGVycm9ycyB3aWxsIGJlIHRocm93biBvbiBhIHNlcGFyYXRlIGNhbGwgc3RhY2sgdG8gcHJldmVudCBiYWRcbiAgICogYmVoYXZpb3JzIGRlc2NyaWJlZCBhYm92ZS4gV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICAgKi9cbiAgdXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgZW5hYmxlcyBhbiBhcy1vZi15ZXQgdW5kb2N1bWVudGVkIGZlYXR1cmUgZnJvbSB2NTogVGhlIGFiaWxpdHkgdG8gYWNjZXNzXG4gICAqIGB1bnN1YnNjcmliZSgpYCB2aWEgYHRoaXNgIGNvbnRleHQgaW4gYG5leHRgIGZ1bmN0aW9ucyBjcmVhdGVkIGluIG9ic2VydmVycyBwYXNzZWRcbiAgICogdG8gYHN1YnNjcmliZWAuXG4gICAqXG4gICAqIFRoaXMgaXMgYmVpbmcgcmVtb3ZlZCBiZWNhdXNlIHRoZSBwZXJmb3JtYW5jZSB3YXMgc2V2ZXJlbHkgcHJvYmxlbWF0aWMsIGFuZCBpdCBjb3VsZCBhbHNvIGNhdXNlXG4gICAqIGlzc3VlcyB3aGVuIHR5cGVzIG90aGVyIHRoYW4gUE9KT3MgYXJlIHBhc3NlZCB0byBzdWJzY3JpYmUgYXMgc3Vic2NyaWJlcnMsIGFzIHRoZXkgd2lsbCBsaWtlbHkgaGF2ZVxuICAgKiB0aGVpciBgdGhpc2AgY29udGV4dCBvdmVyd3JpdHRlbi5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgQXMgb2YgdmVyc2lvbiA4LCBSeEpTIHdpbGwgbm8gbG9uZ2VyIHN1cHBvcnQgYWx0ZXJpbmcgdGhlXG4gICAqIGNvbnRleHQgb2YgbmV4dCBmdW5jdGlvbnMgcHJvdmlkZWQgYXMgcGFydCBvZiBhbiBvYnNlcnZlciB0byBTdWJzY3JpYmUuIEluc3RlYWQsXG4gICAqIHlvdSB3aWxsIGhhdmUgYWNjZXNzIHRvIGEgc3Vic2NyaXB0aW9uIG9yIGEgc2lnbmFsIG9yIHRva2VuIHRoYXQgd2lsbCBhbGxvdyB5b3UgdG8gZG8gdGhpbmdzIGxpa2VcbiAgICogdW5zdWJzY3JpYmUgYW5kIHRlc3QgY2xvc2VkIHN0YXR1cy4gV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICAgKi9cbiAgdXNlRGVwcmVjYXRlZE5leHRDb250ZXh0OiBib29sZWFuO1xufVxuIiwgImltcG9ydCB0eXBlIHsgVGltZXJIYW5kbGUgfSBmcm9tICcuL3RpbWVySGFuZGxlJztcbnR5cGUgU2V0VGltZW91dEZ1bmN0aW9uID0gKGhhbmRsZXI6ICgpID0+IHZvaWQsIHRpbWVvdXQ/OiBudW1iZXIsIC4uLmFyZ3M6IGFueVtdKSA9PiBUaW1lckhhbmRsZTtcbnR5cGUgQ2xlYXJUaW1lb3V0RnVuY3Rpb24gPSAoaGFuZGxlOiBUaW1lckhhbmRsZSkgPT4gdm9pZDtcblxuaW50ZXJmYWNlIFRpbWVvdXRQcm92aWRlciB7XG4gIHNldFRpbWVvdXQ6IFNldFRpbWVvdXRGdW5jdGlvbjtcbiAgY2xlYXJUaW1lb3V0OiBDbGVhclRpbWVvdXRGdW5jdGlvbjtcbiAgZGVsZWdhdGU6XG4gICAgfCB7XG4gICAgICAgIHNldFRpbWVvdXQ6IFNldFRpbWVvdXRGdW5jdGlvbjtcbiAgICAgICAgY2xlYXJUaW1lb3V0OiBDbGVhclRpbWVvdXRGdW5jdGlvbjtcbiAgICAgIH1cbiAgICB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGNvbnN0IHRpbWVvdXRQcm92aWRlcjogVGltZW91dFByb3ZpZGVyID0ge1xuICAvLyBXaGVuIGFjY2Vzc2luZyB0aGUgZGVsZWdhdGUsIHVzZSB0aGUgdmFyaWFibGUgcmF0aGVyIHRoYW4gYHRoaXNgIHNvIHRoYXRcbiAgLy8gdGhlIGZ1bmN0aW9ucyBjYW4gYmUgY2FsbGVkIHdpdGhvdXQgYmVpbmcgYm91bmQgdG8gdGhlIHByb3ZpZGVyLlxuICBzZXRUaW1lb3V0KGhhbmRsZXI6ICgpID0+IHZvaWQsIHRpbWVvdXQ/OiBudW1iZXIsIC4uLmFyZ3MpIHtcbiAgICBjb25zdCB7IGRlbGVnYXRlIH0gPSB0aW1lb3V0UHJvdmlkZXI7XG4gICAgaWYgKGRlbGVnYXRlPy5zZXRUaW1lb3V0KSB7XG4gICAgICByZXR1cm4gZGVsZWdhdGUuc2V0VGltZW91dChoYW5kbGVyLCB0aW1lb3V0LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgcmV0dXJuIHNldFRpbWVvdXQoaGFuZGxlciwgdGltZW91dCwgLi4uYXJncyk7XG4gIH0sXG4gIGNsZWFyVGltZW91dChoYW5kbGUpIHtcbiAgICBjb25zdCB7IGRlbGVnYXRlIH0gPSB0aW1lb3V0UHJvdmlkZXI7XG4gICAgcmV0dXJuIChkZWxlZ2F0ZT8uY2xlYXJUaW1lb3V0IHx8IGNsZWFyVGltZW91dCkoaGFuZGxlIGFzIGFueSk7XG4gIH0sXG4gIGRlbGVnYXRlOiB1bmRlZmluZWQsXG59O1xuIiwgImltcG9ydCB7IGNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyB0aW1lb3V0UHJvdmlkZXIgfSBmcm9tICcuLi9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyJztcblxuLyoqXG4gKiBIYW5kbGVzIGFuIGVycm9yIG9uIGFub3RoZXIgam9iIGVpdGhlciB3aXRoIHRoZSB1c2VyLWNvbmZpZ3VyZWQge0BsaW5rIG9uVW5oYW5kbGVkRXJyb3J9LFxuICogb3IgYnkgdGhyb3dpbmcgaXQgb24gdGhhdCBuZXcgam9iIHNvIGl0IGNhbiBiZSBwaWNrZWQgdXAgYnkgYHdpbmRvdy5vbmVycm9yYCwgYHByb2Nlc3Mub24oJ2Vycm9yJylgLCBldGMuXG4gKlxuICogVGhpcyBzaG91bGQgYmUgY2FsbGVkIHdoZW5ldmVyIHRoZXJlIGlzIGFuIGVycm9yIHRoYXQgaXMgb3V0LW9mLWJhbmQgd2l0aCB0aGUgc3Vic2NyaXB0aW9uXG4gKiBvciB3aGVuIGFuIGVycm9yIGhpdHMgYSB0ZXJtaW5hbCBib3VuZGFyeSBvZiB0aGUgc3Vic2NyaXB0aW9uIGFuZCBubyBlcnJvciBoYW5kbGVyIHdhcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0gZXJyIHRoZSBlcnJvciB0byByZXBvcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcG9ydFVuaGFuZGxlZEVycm9yKGVycjogYW55KSB7XG4gIHRpbWVvdXRQcm92aWRlci5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICBjb25zdCB7IG9uVW5oYW5kbGVkRXJyb3IgfSA9IGNvbmZpZztcbiAgICBpZiAob25VbmhhbmRsZWRFcnJvcikge1xuICAgICAgLy8gRXhlY3V0ZSB0aGUgdXNlci1jb25maWd1cmVkIGVycm9yIGhhbmRsZXIuXG4gICAgICBvblVuaGFuZGxlZEVycm9yKGVycik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRocm93IHNvIGl0IGlzIHBpY2tlZCB1cCBieSB0aGUgcnVudGltZSdzIHVuY2F1Z2h0IGVycm9yIG1lY2hhbmlzbS5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH0pO1xufVxuIiwgIi8qIHRzbGludDpkaXNhYmxlOm5vLWVtcHR5ICovXG5leHBvcnQgZnVuY3Rpb24gbm9vcCgpIHsgfVxuIiwgImltcG9ydCB7IENvbXBsZXRlTm90aWZpY2F0aW9uLCBOZXh0Tm90aWZpY2F0aW9uLCBFcnJvck5vdGlmaWNhdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEEgY29tcGxldGlvbiBvYmplY3Qgb3B0aW1pemVkIGZvciBtZW1vcnkgdXNlIGFuZCBjcmVhdGVkIHRvIGJlIHRoZVxuICogc2FtZSBcInNoYXBlXCIgYXMgb3RoZXIgbm90aWZpY2F0aW9ucyBpbiB2OC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgQ09NUExFVEVfTk9USUZJQ0FUSU9OID0gKCgpID0+IGNyZWF0ZU5vdGlmaWNhdGlvbignQycsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSBhcyBDb21wbGV0ZU5vdGlmaWNhdGlvbikoKTtcblxuLyoqXG4gKiBJbnRlcm5hbCB1c2Ugb25seS4gQ3JlYXRlcyBhbiBvcHRpbWl6ZWQgZXJyb3Igbm90aWZpY2F0aW9uIHRoYXQgaXMgdGhlIHNhbWUgXCJzaGFwZVwiXG4gKiBhcyBvdGhlciBub3RpZmljYXRpb25zLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlcnJvck5vdGlmaWNhdGlvbihlcnJvcjogYW55KTogRXJyb3JOb3RpZmljYXRpb24ge1xuICByZXR1cm4gY3JlYXRlTm90aWZpY2F0aW9uKCdFJywgdW5kZWZpbmVkLCBlcnJvcikgYXMgYW55O1xufVxuXG4vKipcbiAqIEludGVybmFsIHVzZSBvbmx5LiBDcmVhdGVzIGFuIG9wdGltaXplZCBuZXh0IG5vdGlmaWNhdGlvbiB0aGF0IGlzIHRoZSBzYW1lIFwic2hhcGVcIlxuICogYXMgb3RoZXIgbm90aWZpY2F0aW9ucy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gbmV4dE5vdGlmaWNhdGlvbjxUPih2YWx1ZTogVCkge1xuICByZXR1cm4gY3JlYXRlTm90aWZpY2F0aW9uKCdOJywgdmFsdWUsIHVuZGVmaW5lZCkgYXMgTmV4dE5vdGlmaWNhdGlvbjxUPjtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQgYWxsIG5vdGlmaWNhdGlvbnMgY3JlYXRlZCBpbnRlcm5hbGx5IGhhdmUgdGhlIHNhbWUgXCJzaGFwZVwiIGluIHY4LlxuICpcbiAqIFRPRE86IFRoaXMgaXMgb25seSBleHBvcnRlZCB0byBzdXBwb3J0IGEgY3JhenkgbGVnYWN5IHRlc3QgaW4gYGdyb3VwQnlgLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOb3RpZmljYXRpb24oa2luZDogJ04nIHwgJ0UnIHwgJ0MnLCB2YWx1ZTogYW55LCBlcnJvcjogYW55KSB7XG4gIHJldHVybiB7XG4gICAga2luZCxcbiAgICB2YWx1ZSxcbiAgICBlcnJvcixcbiAgfTtcbn1cbiIsICJpbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuXG5sZXQgY29udGV4dDogeyBlcnJvclRocm93bjogYm9vbGVhbjsgZXJyb3I6IGFueSB9IHwgbnVsbCA9IG51bGw7XG5cbi8qKlxuICogSGFuZGxlcyBkZWFsaW5nIHdpdGggZXJyb3JzIGZvciBzdXBlci1ncm9zcyBtb2RlLiBDcmVhdGVzIGEgY29udGV4dCwgaW4gd2hpY2hcbiAqIGFueSBzeW5jaHJvbm91c2x5IHRocm93biBlcnJvcnMgd2lsbCBiZSBwYXNzZWQgdG8ge0BsaW5rIGNhcHR1cmVFcnJvcn0uIFdoaWNoXG4gKiB3aWxsIHJlY29yZCB0aGUgZXJyb3Igc3VjaCB0aGF0IGl0IHdpbGwgYmUgcmV0aHJvd24gYWZ0ZXIgdGhlIGNhbGwgYmFjayBpcyBjb21wbGV0ZS5cbiAqIFRPRE86IFJlbW92ZSBpbiB2OFxuICogQHBhcmFtIGNiIEFuIGltbWVkaWF0ZWx5IGV4ZWN1dGVkIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXJyb3JDb250ZXh0KGNiOiAoKSA9PiB2b2lkKSB7XG4gIGlmIChjb25maWcudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZykge1xuICAgIGNvbnN0IGlzUm9vdCA9ICFjb250ZXh0O1xuICAgIGlmIChpc1Jvb3QpIHtcbiAgICAgIGNvbnRleHQgPSB7IGVycm9yVGhyb3duOiBmYWxzZSwgZXJyb3I6IG51bGwgfTtcbiAgICB9XG4gICAgY2IoKTtcbiAgICBpZiAoaXNSb290KSB7XG4gICAgICBjb25zdCB7IGVycm9yVGhyb3duLCBlcnJvciB9ID0gY29udGV4dCE7XG4gICAgICBjb250ZXh0ID0gbnVsbDtcbiAgICAgIGlmIChlcnJvclRocm93bikge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBpcyB0aGUgZ2VuZXJhbCBub24tZGVwcmVjYXRlZCBwYXRoIGZvciBldmVyeW9uZSB0aGF0XG4gICAgLy8gaXNuJ3QgY3JhenkgZW5vdWdoIHRvIHVzZSBzdXBlci1ncm9zcyBtb2RlICh1c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKVxuICAgIGNiKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDYXB0dXJlcyBlcnJvcnMgb25seSBpbiBzdXBlci1ncm9zcyBtb2RlLlxuICogQHBhcmFtIGVyciB0aGUgZXJyb3IgdG8gY2FwdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FwdHVyZUVycm9yKGVycjogYW55KSB7XG4gIGlmIChjb25maWcudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyAmJiBjb250ZXh0KSB7XG4gICAgY29udGV4dC5lcnJvclRocm93biA9IHRydWU7XG4gICAgY29udGV4dC5lcnJvciA9IGVycjtcbiAgfVxufVxuIiwgImltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL3V0aWwvaXNGdW5jdGlvbic7XG5pbXBvcnQgeyBPYnNlcnZlciwgT2JzZXJ2YWJsZU5vdGlmaWNhdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaXNTdWJzY3JpcHRpb24sIFN1YnNjcmlwdGlvbiB9IGZyb20gJy4vU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IHJlcG9ydFVuaGFuZGxlZEVycm9yIH0gZnJvbSAnLi91dGlsL3JlcG9ydFVuaGFuZGxlZEVycm9yJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL3V0aWwvbm9vcCc7XG5pbXBvcnQgeyBuZXh0Tm90aWZpY2F0aW9uLCBlcnJvck5vdGlmaWNhdGlvbiwgQ09NUExFVEVfTk9USUZJQ0FUSU9OIH0gZnJvbSAnLi9Ob3RpZmljYXRpb25GYWN0b3JpZXMnO1xuaW1wb3J0IHsgdGltZW91dFByb3ZpZGVyIH0gZnJvbSAnLi9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyJztcbmltcG9ydCB7IGNhcHR1cmVFcnJvciB9IGZyb20gJy4vdXRpbC9lcnJvckNvbnRleHQnO1xuXG4vKipcbiAqIEltcGxlbWVudHMgdGhlIHtAbGluayBPYnNlcnZlcn0gaW50ZXJmYWNlIGFuZCBleHRlbmRzIHRoZVxuICoge0BsaW5rIFN1YnNjcmlwdGlvbn0gY2xhc3MuIFdoaWxlIHRoZSB7QGxpbmsgT2JzZXJ2ZXJ9IGlzIHRoZSBwdWJsaWMgQVBJIGZvclxuICogY29uc3VtaW5nIHRoZSB2YWx1ZXMgb2YgYW4ge0BsaW5rIE9ic2VydmFibGV9LCBhbGwgT2JzZXJ2ZXJzIGdldCBjb252ZXJ0ZWQgdG9cbiAqIGEgU3Vic2NyaWJlciwgaW4gb3JkZXIgdG8gcHJvdmlkZSBTdWJzY3JpcHRpb24tbGlrZSBjYXBhYmlsaXRpZXMgc3VjaCBhc1xuICogYHVuc3Vic2NyaWJlYC4gU3Vic2NyaWJlciBpcyBhIGNvbW1vbiB0eXBlIGluIFJ4SlMsIGFuZCBjcnVjaWFsIGZvclxuICogaW1wbGVtZW50aW5nIG9wZXJhdG9ycywgYnV0IGl0IGlzIHJhcmVseSB1c2VkIGFzIGEgcHVibGljIEFQSS5cbiAqL1xuZXhwb3J0IGNsYXNzIFN1YnNjcmliZXI8VD4gZXh0ZW5kcyBTdWJzY3JpcHRpb24gaW1wbGVtZW50cyBPYnNlcnZlcjxUPiB7XG4gIC8qKlxuICAgKiBBIHN0YXRpYyBmYWN0b3J5IGZvciBhIFN1YnNjcmliZXIsIGdpdmVuIGEgKHBvdGVudGlhbGx5IHBhcnRpYWwpIGRlZmluaXRpb25cbiAgICogb2YgYW4gT2JzZXJ2ZXIuXG4gICAqIEBwYXJhbSBuZXh0IFRoZSBgbmV4dGAgY2FsbGJhY2sgb2YgYW4gT2JzZXJ2ZXIuXG4gICAqIEBwYXJhbSBlcnJvciBUaGUgYGVycm9yYCBjYWxsYmFjayBvZiBhblxuICAgKiBPYnNlcnZlci5cbiAgICogQHBhcmFtIGNvbXBsZXRlIFRoZSBgY29tcGxldGVgIGNhbGxiYWNrIG9mIGFuXG4gICAqIE9ic2VydmVyLlxuICAgKiBAcmV0dXJuIEEgU3Vic2NyaWJlciB3cmFwcGluZyB0aGUgKHBhcnRpYWxseSBkZWZpbmVkKVxuICAgKiBPYnNlcnZlciByZXByZXNlbnRlZCBieSB0aGUgZ2l2ZW4gYXJndW1lbnRzLlxuICAgKiBAZGVwcmVjYXRlZCBEbyBub3QgdXNlLiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguIFRoZXJlIGlzIG5vIHJlcGxhY2VtZW50IGZvciB0aGlzXG4gICAqIG1ldGhvZCwgYW5kIHRoZXJlIGlzIG5vIHJlYXNvbiB0byBiZSBjcmVhdGluZyBpbnN0YW5jZXMgb2YgYFN1YnNjcmliZXJgIGRpcmVjdGx5LlxuICAgKiBJZiB5b3UgaGF2ZSBhIHNwZWNpZmljIHVzZSBjYXNlLCBwbGVhc2UgZmlsZSBhbiBpc3N1ZS5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGU8VD4obmV4dD86ICh4PzogVCkgPT4gdm9pZCwgZXJyb3I/OiAoZT86IGFueSkgPT4gdm9pZCwgY29tcGxldGU/OiAoKSA9PiB2b2lkKTogU3Vic2NyaWJlcjxUPiB7XG4gICAgcmV0dXJuIG5ldyBTYWZlU3Vic2NyaWJlcihuZXh0LCBlcnJvciwgY29tcGxldGUpO1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkIEludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbCwgZG8gbm90IHVzZSBkaXJlY3RseS4gV2lsbCBiZSBtYWRlIGludGVybmFsIGluIHY4LiAqL1xuICBwcm90ZWN0ZWQgaXNTdG9wcGVkOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBAZGVwcmVjYXRlZCBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIGRvIG5vdCB1c2UgZGlyZWN0bHkuIFdpbGwgYmUgbWFkZSBpbnRlcm5hbCBpbiB2OC4gKi9cbiAgcHJvdGVjdGVkIGRlc3RpbmF0aW9uOiBTdWJzY3JpYmVyPGFueT4gfCBPYnNlcnZlcjxhbnk+OyAvLyB0aGlzIGBhbnlgIGlzIHRoZSBlc2NhcGUgaGF0Y2ggdG8gZXJhc2UgZXh0cmEgdHlwZSBwYXJhbSAoZS5nLiBSKVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIGRvIG5vdCB1c2UgZGlyZWN0bHkuIFdpbGwgYmUgbWFkZSBpbnRlcm5hbCBpbiB2OC5cbiAgICogVGhlcmUgaXMgbm8gcmVhc29uIHRvIGRpcmVjdGx5IGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBTdWJzY3JpYmVyLiBUaGlzIHR5cGUgaXMgZXhwb3J0ZWQgZm9yIHR5cGluZ3MgcmVhc29ucy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRlc3RpbmF0aW9uPzogU3Vic2NyaWJlcjxhbnk+IHwgT2JzZXJ2ZXI8YW55Pikge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKGRlc3RpbmF0aW9uKSB7XG4gICAgICB0aGlzLmRlc3RpbmF0aW9uID0gZGVzdGluYXRpb247XG4gICAgICAvLyBBdXRvbWF0aWNhbGx5IGNoYWluIHN1YnNjcmlwdGlvbnMgdG9nZXRoZXIgaGVyZS5cbiAgICAgIC8vIGlmIGRlc3RpbmF0aW9uIGlzIGEgU3Vic2NyaXB0aW9uLCB0aGVuIGl0IGlzIGEgU3Vic2NyaWJlci5cbiAgICAgIGlmIChpc1N1YnNjcmlwdGlvbihkZXN0aW5hdGlvbikpIHtcbiAgICAgICAgZGVzdGluYXRpb24uYWRkKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlc3RpbmF0aW9uID0gRU1QVFlfT0JTRVJWRVI7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB7QGxpbmsgT2JzZXJ2ZXJ9IGNhbGxiYWNrIHRvIHJlY2VpdmUgbm90aWZpY2F0aW9ucyBvZiB0eXBlIGBuZXh0YCBmcm9tXG4gICAqIHRoZSBPYnNlcnZhYmxlLCB3aXRoIGEgdmFsdWUuIFRoZSBPYnNlcnZhYmxlIG1heSBjYWxsIHRoaXMgbWV0aG9kIDAgb3IgbW9yZVxuICAgKiB0aW1lcy5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBgbmV4dGAgdmFsdWUuXG4gICAqL1xuICBuZXh0KHZhbHVlOiBUKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTdG9wcGVkKSB7XG4gICAgICBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKG5leHROb3RpZmljYXRpb24odmFsdWUpLCB0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbmV4dCh2YWx1ZSEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUge0BsaW5rIE9ic2VydmVyfSBjYWxsYmFjayB0byByZWNlaXZlIG5vdGlmaWNhdGlvbnMgb2YgdHlwZSBgZXJyb3JgIGZyb21cbiAgICogdGhlIE9ic2VydmFibGUsIHdpdGggYW4gYXR0YWNoZWQgYEVycm9yYC4gTm90aWZpZXMgdGhlIE9ic2VydmVyIHRoYXRcbiAgICogdGhlIE9ic2VydmFibGUgaGFzIGV4cGVyaWVuY2VkIGFuIGVycm9yIGNvbmRpdGlvbi5cbiAgICogQHBhcmFtIGVyciBUaGUgYGVycm9yYCBleGNlcHRpb24uXG4gICAqL1xuICBlcnJvcihlcnI/OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1N0b3BwZWQpIHtcbiAgICAgIGhhbmRsZVN0b3BwZWROb3RpZmljYXRpb24oZXJyb3JOb3RpZmljYXRpb24oZXJyKSwgdGhpcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2Vycm9yKGVycik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB7QGxpbmsgT2JzZXJ2ZXJ9IGNhbGxiYWNrIHRvIHJlY2VpdmUgYSB2YWx1ZWxlc3Mgbm90aWZpY2F0aW9uIG9mIHR5cGVcbiAgICogYGNvbXBsZXRlYCBmcm9tIHRoZSBPYnNlcnZhYmxlLiBOb3RpZmllcyB0aGUgT2JzZXJ2ZXIgdGhhdCB0aGUgT2JzZXJ2YWJsZVxuICAgKiBoYXMgZmluaXNoZWQgc2VuZGluZyBwdXNoLWJhc2VkIG5vdGlmaWNhdGlvbnMuXG4gICAqL1xuICBjb21wbGV0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1N0b3BwZWQpIHtcbiAgICAgIGhhbmRsZVN0b3BwZWROb3RpZmljYXRpb24oQ09NUExFVEVfTk9USUZJQ0FUSU9OLCB0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc1N0b3BwZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fY29tcGxldGUoKTtcbiAgICB9XG4gIH1cblxuICB1bnN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2xvc2VkKSB7XG4gICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7XG4gICAgICBzdXBlci51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5kZXN0aW5hdGlvbiA9IG51bGwhO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfbmV4dCh2YWx1ZTogVCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdGluYXRpb24ubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2Vycm9yKGVycjogYW55KTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuZGVzdGluYXRpb24uZXJyb3IoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfY29tcGxldGUoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgYmluZCBpcyBjYXB0dXJlZCBoZXJlIGJlY2F1c2Ugd2Ugd2FudCB0byBiZSBhYmxlIHRvIGhhdmVcbiAqIGNvbXBhdGliaWxpdHkgd2l0aCBtb25vaWQgbGlicmFyaWVzIHRoYXQgdGVuZCB0byB1c2UgYSBtZXRob2QgbmFtZWRcbiAqIGBiaW5kYC4gSW4gcGFydGljdWxhciwgYSBsaWJyYXJ5IGNhbGxlZCBNb25pbyByZXF1aXJlcyB0aGlzLlxuICovXG5jb25zdCBfYmluZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO1xuXG5mdW5jdGlvbiBiaW5kPEZuIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+KGZuOiBGbiwgdGhpc0FyZzogYW55KTogRm4ge1xuICByZXR1cm4gX2JpbmQuY2FsbChmbiwgdGhpc0FyZyk7XG59XG5cbi8qKlxuICogSW50ZXJuYWwgb3B0aW1pemF0aW9uIG9ubHksIERPIE5PVCBFWFBPU0UuXG4gKiBAaW50ZXJuYWxcbiAqL1xuY2xhc3MgQ29uc3VtZXJPYnNlcnZlcjxUPiBpbXBsZW1lbnRzIE9ic2VydmVyPFQ+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJ0aWFsT2JzZXJ2ZXI6IFBhcnRpYWw8T2JzZXJ2ZXI8VD4+KSB7fVxuXG4gIG5leHQodmFsdWU6IFQpOiB2b2lkIHtcbiAgICBjb25zdCB7IHBhcnRpYWxPYnNlcnZlciB9ID0gdGhpcztcbiAgICBpZiAocGFydGlhbE9ic2VydmVyLm5leHQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHBhcnRpYWxPYnNlcnZlci5uZXh0KHZhbHVlKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhhbmRsZVVuaGFuZGxlZEVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBlcnJvcihlcnI6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHsgcGFydGlhbE9ic2VydmVyIH0gPSB0aGlzO1xuICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHBhcnRpYWxPYnNlcnZlci5lcnJvcihlcnIpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBsZXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgcGFydGlhbE9ic2VydmVyIH0gPSB0aGlzO1xuICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIuY29tcGxldGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHBhcnRpYWxPYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2FmZVN1YnNjcmliZXI8VD4gZXh0ZW5kcyBTdWJzY3JpYmVyPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgb2JzZXJ2ZXJPck5leHQ/OiBQYXJ0aWFsPE9ic2VydmVyPFQ+PiB8ICgodmFsdWU6IFQpID0+IHZvaWQpIHwgbnVsbCxcbiAgICBlcnJvcj86ICgoZT86IGFueSkgPT4gdm9pZCkgfCBudWxsLFxuICAgIGNvbXBsZXRlPzogKCgpID0+IHZvaWQpIHwgbnVsbFxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbGV0IHBhcnRpYWxPYnNlcnZlcjogUGFydGlhbDxPYnNlcnZlcjxUPj47XG4gICAgaWYgKGlzRnVuY3Rpb24ob2JzZXJ2ZXJPck5leHQpIHx8ICFvYnNlcnZlck9yTmV4dCkge1xuICAgICAgLy8gVGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgZnVuY3Rpb24sIG5vdCBhbiBvYnNlcnZlci4gVGhlIG5leHRcbiAgICAgIC8vIHR3byBhcmd1bWVudHMgKmNvdWxkKiBiZSBvYnNlcnZlcnMsIG9yIHRoZXkgY291bGQgYmUgZW1wdHkuXG4gICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSB7XG4gICAgICAgIG5leHQ6IChvYnNlcnZlck9yTmV4dCA/PyB1bmRlZmluZWQpIGFzICgodmFsdWU6IFQpID0+IHZvaWQpIHwgdW5kZWZpbmVkLFxuICAgICAgICBlcnJvcjogZXJyb3IgPz8gdW5kZWZpbmVkLFxuICAgICAgICBjb21wbGV0ZTogY29tcGxldGUgPz8gdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgcGFydGlhbCBvYnNlcnZlci5cbiAgICAgIGxldCBjb250ZXh0OiBhbnk7XG4gICAgICBpZiAodGhpcyAmJiBjb25maWcudXNlRGVwcmVjYXRlZE5leHRDb250ZXh0KSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYSBkZXByZWNhdGVkIHBhdGggdGhhdCBtYWRlIGB0aGlzLnVuc3Vic2NyaWJlKClgIGF2YWlsYWJsZSBpblxuICAgICAgICAvLyBuZXh0IGhhbmRsZXIgZnVuY3Rpb25zIHBhc3NlZCB0byBzdWJzY3JpYmUuIFRoaXMgb25seSBleGlzdHMgYmVoaW5kIGEgZmxhZ1xuICAgICAgICAvLyBub3csIGFzIGl0IGlzICp2ZXJ5KiBzbG93LlxuICAgICAgICBjb250ZXh0ID0gT2JqZWN0LmNyZWF0ZShvYnNlcnZlck9yTmV4dCk7XG4gICAgICAgIGNvbnRleHQudW5zdWJzY3JpYmUgPSAoKSA9PiB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHBhcnRpYWxPYnNlcnZlciA9IHtcbiAgICAgICAgICBuZXh0OiBvYnNlcnZlck9yTmV4dC5uZXh0ICYmIGJpbmQob2JzZXJ2ZXJPck5leHQubmV4dCwgY29udGV4dCksXG4gICAgICAgICAgZXJyb3I6IG9ic2VydmVyT3JOZXh0LmVycm9yICYmIGJpbmQob2JzZXJ2ZXJPck5leHQuZXJyb3IsIGNvbnRleHQpLFxuICAgICAgICAgIGNvbXBsZXRlOiBvYnNlcnZlck9yTmV4dC5jb21wbGV0ZSAmJiBiaW5kKG9ic2VydmVyT3JOZXh0LmNvbXBsZXRlLCBjb250ZXh0KSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoZSBcIm5vcm1hbFwiIHBhdGguIEp1c3QgdXNlIHRoZSBwYXJ0aWFsIG9ic2VydmVyIGRpcmVjdGx5LlxuICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSBvYnNlcnZlck9yTmV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcmFwIHRoZSBwYXJ0aWFsIG9ic2VydmVyIHRvIGVuc3VyZSBpdCdzIGEgZnVsbCBvYnNlcnZlciwgYW5kXG4gICAgLy8gbWFrZSBzdXJlIHByb3BlciBlcnJvciBoYW5kbGluZyBpcyBhY2NvdW50ZWQgZm9yLlxuICAgIHRoaXMuZGVzdGluYXRpb24gPSBuZXcgQ29uc3VtZXJPYnNlcnZlcihwYXJ0aWFsT2JzZXJ2ZXIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVVuaGFuZGxlZEVycm9yKGVycm9yOiBhbnkpIHtcbiAgaWYgKGNvbmZpZy51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKSB7XG4gICAgY2FwdHVyZUVycm9yKGVycm9yKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBJZGVhbCBwYXRoLCB3ZSByZXBvcnQgdGhpcyBhcyBhbiB1bmhhbmRsZWQgZXJyb3IsXG4gICAgLy8gd2hpY2ggaXMgdGhyb3duIG9uIGEgbmV3IGNhbGwgc3RhY2suXG4gICAgcmVwb3J0VW5oYW5kbGVkRXJyb3IoZXJyb3IpO1xuICB9XG59XG5cbi8qKlxuICogQW4gZXJyb3IgaGFuZGxlciB1c2VkIHdoZW4gbm8gZXJyb3IgaGFuZGxlciB3YXMgc3VwcGxpZWRcbiAqIHRvIHRoZSBTYWZlU3Vic2NyaWJlciAtLSBtZWFuaW5nIG5vIGVycm9yIGhhbmRsZXIgd2FzIHN1cHBsaWVkXG4gKiBkbyB0aGUgYHN1YnNjcmliZWAgY2FsbCBvbiBvdXIgb2JzZXJ2YWJsZS5cbiAqIEBwYXJhbSBlcnIgVGhlIGVycm9yIHRvIGhhbmRsZVxuICovXG5mdW5jdGlvbiBkZWZhdWx0RXJyb3JIYW5kbGVyKGVycjogYW55KSB7XG4gIHRocm93IGVycjtcbn1cblxuLyoqXG4gKiBBIGhhbmRsZXIgZm9yIG5vdGlmaWNhdGlvbnMgdGhhdCBjYW5ub3QgYmUgc2VudCB0byBhIHN0b3BwZWQgc3Vic2NyaWJlci5cbiAqIEBwYXJhbSBub3RpZmljYXRpb24gVGhlIG5vdGlmaWNhdGlvbiBiZWluZyBzZW50LlxuICogQHBhcmFtIHN1YnNjcmliZXIgVGhlIHN0b3BwZWQgc3Vic2NyaWJlci5cbiAqL1xuZnVuY3Rpb24gaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE9ic2VydmFibGVOb3RpZmljYXRpb248YW55Piwgc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxhbnk+KSB7XG4gIGNvbnN0IHsgb25TdG9wcGVkTm90aWZpY2F0aW9uIH0gPSBjb25maWc7XG4gIG9uU3RvcHBlZE5vdGlmaWNhdGlvbiAmJiB0aW1lb3V0UHJvdmlkZXIuc2V0VGltZW91dCgoKSA9PiBvblN0b3BwZWROb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBzdWJzY3JpYmVyKSk7XG59XG5cbi8qKlxuICogVGhlIG9ic2VydmVyIHVzZWQgYXMgYSBzdHViIGZvciBzdWJzY3JpcHRpb25zIHdoZXJlIHRoZSB1c2VyIGRpZCBub3RcbiAqIHBhc3MgYW55IGFyZ3VtZW50cyB0byBgc3Vic2NyaWJlYC4gQ29tZXMgd2l0aCB0aGUgZGVmYXVsdCBlcnJvciBoYW5kbGluZ1xuICogYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBjb25zdCBFTVBUWV9PQlNFUlZFUjogUmVhZG9ubHk8T2JzZXJ2ZXI8YW55Pj4gJiB7IGNsb3NlZDogdHJ1ZSB9ID0ge1xuICBjbG9zZWQ6IHRydWUsXG4gIG5leHQ6IG5vb3AsXG4gIGVycm9yOiBkZWZhdWx0RXJyb3JIYW5kbGVyLFxuICBjb21wbGV0ZTogbm9vcCxcbn07XG4iLCAiLyoqXG4gKiBTeW1ib2wub2JzZXJ2YWJsZSBvciBhIHN0cmluZyBcIkBAb2JzZXJ2YWJsZVwiLiBVc2VkIGZvciBpbnRlcm9wXG4gKlxuICogQGRlcHJlY2F0ZWQgV2Ugd2lsbCBubyBsb25nZXIgYmUgZXhwb3J0aW5nIHRoaXMgc3ltYm9sIGluIHVwY29taW5nIHZlcnNpb25zIG9mIFJ4SlMuXG4gKiBJbnN0ZWFkIHBvbHlmaWxsIGFuZCB1c2UgU3ltYm9sLm9ic2VydmFibGUgZGlyZWN0bHkgKm9yKiB1c2UgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc3ltYm9sLW9ic2VydmFibGVcbiAqL1xuZXhwb3J0IGNvbnN0IG9ic2VydmFibGU6IHN0cmluZyB8IHN5bWJvbCA9ICgoKSA9PiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wub2JzZXJ2YWJsZSkgfHwgJ0BAb2JzZXJ2YWJsZScpKCk7XG4iLCAiLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHRha2VzIG9uZSBwYXJhbWV0ZXIgYW5kIGp1c3QgcmV0dXJucyBpdC4gU2ltcGx5IHB1dCxcbiAqIHRoaXMgaXMgbGlrZSBgPFQ+KHg6IFQpOiBUID0+IHhgLlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogVGhpcyBpcyB1c2VmdWwgaW4gc29tZSBjYXNlcyB3aGVuIHVzaW5nIHRoaW5ncyBsaWtlIGBtZXJnZU1hcGBcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIHRha2UsIG1hcCwgcmFuZ2UsIG1lcmdlTWFwLCBpZGVudGl0eSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHNvdXJjZSQgPSBpbnRlcnZhbCgxMDAwKS5waXBlKHRha2UoNSkpO1xuICpcbiAqIGNvbnN0IHJlc3VsdCQgPSBzb3VyY2UkLnBpcGUoXG4gKiAgIG1hcChpID0+IHJhbmdlKGkpKSxcbiAqICAgbWVyZ2VNYXAoaWRlbnRpdHkpIC8vIHNhbWUgYXMgbWVyZ2VNYXAoeCA9PiB4KVxuICogKTtcbiAqXG4gKiByZXN1bHQkLnN1YnNjcmliZSh7XG4gKiAgIG5leHQ6IGNvbnNvbGUubG9nXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIE9yIHdoZW4geW91IHdhbnQgdG8gc2VsZWN0aXZlbHkgYXBwbHkgYW4gb3BlcmF0b3JcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIHRha2UsIGlkZW50aXR5IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgc2hvdWxkTGltaXQgPSAoKSA9PiBNYXRoLnJhbmRvbSgpIDwgMC41O1xuICpcbiAqIGNvbnN0IHNvdXJjZSQgPSBpbnRlcnZhbCgxMDAwKTtcbiAqXG4gKiBjb25zdCByZXN1bHQkID0gc291cmNlJC5waXBlKHNob3VsZExpbWl0KCkgPyB0YWtlKDUpIDogaWRlbnRpdHkpO1xuICpcbiAqIHJlc3VsdCQuc3Vic2NyaWJlKHtcbiAqICAgbmV4dDogY29uc29sZS5sb2dcbiAqIH0pO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHggQW55IHZhbHVlIHRoYXQgaXMgcmV0dXJuZWQgYnkgdGhpcyBmdW5jdGlvblxuICogQHJldHVybnMgVGhlIHZhbHVlIHBhc3NlZCBhcyB0aGUgZmlyc3QgcGFyYW1ldGVyIHRvIHRoaXMgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlkZW50aXR5PFQ+KHg6IFQpOiBUIHtcbiAgcmV0dXJuIHg7XG59XG4iLCAiaW1wb3J0IHsgaWRlbnRpdHkgfSBmcm9tICcuL2lkZW50aXR5JztcbmltcG9ydCB7IFVuYXJ5RnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwaXBlKCk6IHR5cGVvZiBpZGVudGl0eTtcbmV4cG9ydCBmdW5jdGlvbiBwaXBlPFQsIEE+KGZuMTogVW5hcnlGdW5jdGlvbjxULCBBPik6IFVuYXJ5RnVuY3Rpb248VCwgQT47XG5leHBvcnQgZnVuY3Rpb24gcGlwZTxULCBBLCBCPihmbjE6IFVuYXJ5RnVuY3Rpb248VCwgQT4sIGZuMjogVW5hcnlGdW5jdGlvbjxBLCBCPik6IFVuYXJ5RnVuY3Rpb248VCwgQj47XG5leHBvcnQgZnVuY3Rpb24gcGlwZTxULCBBLCBCLCBDPihmbjE6IFVuYXJ5RnVuY3Rpb248VCwgQT4sIGZuMjogVW5hcnlGdW5jdGlvbjxBLCBCPiwgZm4zOiBVbmFyeUZ1bmN0aW9uPEIsIEM+KTogVW5hcnlGdW5jdGlvbjxULCBDPjtcbmV4cG9ydCBmdW5jdGlvbiBwaXBlPFQsIEEsIEIsIEMsIEQ+KFxuICBmbjE6IFVuYXJ5RnVuY3Rpb248VCwgQT4sXG4gIGZuMjogVW5hcnlGdW5jdGlvbjxBLCBCPixcbiAgZm4zOiBVbmFyeUZ1bmN0aW9uPEIsIEM+LFxuICBmbjQ6IFVuYXJ5RnVuY3Rpb248QywgRD5cbik6IFVuYXJ5RnVuY3Rpb248VCwgRD47XG5leHBvcnQgZnVuY3Rpb24gcGlwZTxULCBBLCBCLCBDLCBELCBFPihcbiAgZm4xOiBVbmFyeUZ1bmN0aW9uPFQsIEE+LFxuICBmbjI6IFVuYXJ5RnVuY3Rpb248QSwgQj4sXG4gIGZuMzogVW5hcnlGdW5jdGlvbjxCLCBDPixcbiAgZm40OiBVbmFyeUZ1bmN0aW9uPEMsIEQ+LFxuICBmbjU6IFVuYXJ5RnVuY3Rpb248RCwgRT5cbik6IFVuYXJ5RnVuY3Rpb248VCwgRT47XG5leHBvcnQgZnVuY3Rpb24gcGlwZTxULCBBLCBCLCBDLCBELCBFLCBGPihcbiAgZm4xOiBVbmFyeUZ1bmN0aW9uPFQsIEE+LFxuICBmbjI6IFVuYXJ5RnVuY3Rpb248QSwgQj4sXG4gIGZuMzogVW5hcnlGdW5jdGlvbjxCLCBDPixcbiAgZm40OiBVbmFyeUZ1bmN0aW9uPEMsIEQ+LFxuICBmbjU6IFVuYXJ5RnVuY3Rpb248RCwgRT4sXG4gIGZuNjogVW5hcnlGdW5jdGlvbjxFLCBGPlxuKTogVW5hcnlGdW5jdGlvbjxULCBGPjtcbmV4cG9ydCBmdW5jdGlvbiBwaXBlPFQsIEEsIEIsIEMsIEQsIEUsIEYsIEc+KFxuICBmbjE6IFVuYXJ5RnVuY3Rpb248VCwgQT4sXG4gIGZuMjogVW5hcnlGdW5jdGlvbjxBLCBCPixcbiAgZm4zOiBVbmFyeUZ1bmN0aW9uPEIsIEM+LFxuICBmbjQ6IFVuYXJ5RnVuY3Rpb248QywgRD4sXG4gIGZuNTogVW5hcnlGdW5jdGlvbjxELCBFPixcbiAgZm42OiBVbmFyeUZ1bmN0aW9uPEUsIEY+LFxuICBmbjc6IFVuYXJ5RnVuY3Rpb248RiwgRz5cbik6IFVuYXJ5RnVuY3Rpb248VCwgRz47XG5leHBvcnQgZnVuY3Rpb24gcGlwZTxULCBBLCBCLCBDLCBELCBFLCBGLCBHLCBIPihcbiAgZm4xOiBVbmFyeUZ1bmN0aW9uPFQsIEE+LFxuICBmbjI6IFVuYXJ5RnVuY3Rpb248QSwgQj4sXG4gIGZuMzogVW5hcnlGdW5jdGlvbjxCLCBDPixcbiAgZm40OiBVbmFyeUZ1bmN0aW9uPEMsIEQ+LFxuICBmbjU6IFVuYXJ5RnVuY3Rpb248RCwgRT4sXG4gIGZuNjogVW5hcnlGdW5jdGlvbjxFLCBGPixcbiAgZm43OiBVbmFyeUZ1bmN0aW9uPEYsIEc+LFxuICBmbjg6IFVuYXJ5RnVuY3Rpb248RywgSD5cbik6IFVuYXJ5RnVuY3Rpb248VCwgSD47XG5leHBvcnQgZnVuY3Rpb24gcGlwZTxULCBBLCBCLCBDLCBELCBFLCBGLCBHLCBILCBJPihcbiAgZm4xOiBVbmFyeUZ1bmN0aW9uPFQsIEE+LFxuICBmbjI6IFVuYXJ5RnVuY3Rpb248QSwgQj4sXG4gIGZuMzogVW5hcnlGdW5jdGlvbjxCLCBDPixcbiAgZm40OiBVbmFyeUZ1bmN0aW9uPEMsIEQ+LFxuICBmbjU6IFVuYXJ5RnVuY3Rpb248RCwgRT4sXG4gIGZuNjogVW5hcnlGdW5jdGlvbjxFLCBGPixcbiAgZm43OiBVbmFyeUZ1bmN0aW9uPEYsIEc+LFxuICBmbjg6IFVuYXJ5RnVuY3Rpb248RywgSD4sXG4gIGZuOTogVW5hcnlGdW5jdGlvbjxILCBJPlxuKTogVW5hcnlGdW5jdGlvbjxULCBJPjtcbmV4cG9ydCBmdW5jdGlvbiBwaXBlPFQsIEEsIEIsIEMsIEQsIEUsIEYsIEcsIEgsIEk+KFxuICBmbjE6IFVuYXJ5RnVuY3Rpb248VCwgQT4sXG4gIGZuMjogVW5hcnlGdW5jdGlvbjxBLCBCPixcbiAgZm4zOiBVbmFyeUZ1bmN0aW9uPEIsIEM+LFxuICBmbjQ6IFVuYXJ5RnVuY3Rpb248QywgRD4sXG4gIGZuNTogVW5hcnlGdW5jdGlvbjxELCBFPixcbiAgZm42OiBVbmFyeUZ1bmN0aW9uPEUsIEY+LFxuICBmbjc6IFVuYXJ5RnVuY3Rpb248RiwgRz4sXG4gIGZuODogVW5hcnlGdW5jdGlvbjxHLCBIPixcbiAgZm45OiBVbmFyeUZ1bmN0aW9uPEgsIEk+LFxuICAuLi5mbnM6IFVuYXJ5RnVuY3Rpb248YW55LCBhbnk+W11cbik6IFVuYXJ5RnVuY3Rpb248VCwgdW5rbm93bj47XG5cbi8qKlxuICogcGlwZSgpIGNhbiBiZSBjYWxsZWQgb24gb25lIG9yIG1vcmUgZnVuY3Rpb25zLCBlYWNoIG9mIHdoaWNoIGNhbiB0YWtlIG9uZSBhcmd1bWVudCAoXCJVbmFyeUZ1bmN0aW9uXCIpXG4gKiBhbmQgdXNlcyBpdCB0byByZXR1cm4gYSB2YWx1ZS5cbiAqIEl0IHJldHVybnMgYSBmdW5jdGlvbiB0aGF0IHRha2VzIG9uZSBhcmd1bWVudCwgcGFzc2VzIGl0IHRvIHRoZSBmaXJzdCBVbmFyeUZ1bmN0aW9uLCBhbmQgdGhlblxuICogcGFzc2VzIHRoZSByZXN1bHQgdG8gdGhlIG5leHQgb25lLCBwYXNzZXMgdGhhdCByZXN1bHQgdG8gdGhlIG5leHQgb25lLCBhbmQgc28gb24uICBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBpcGUoLi4uZm5zOiBBcnJheTxVbmFyeUZ1bmN0aW9uPGFueSwgYW55Pj4pOiBVbmFyeUZ1bmN0aW9uPGFueSwgYW55PiB7XG4gIHJldHVybiBwaXBlRnJvbUFycmF5KGZucyk7XG59XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCBmdW5jdGlvbiBwaXBlRnJvbUFycmF5PFQsIFI+KGZuczogQXJyYXk8VW5hcnlGdW5jdGlvbjxULCBSPj4pOiBVbmFyeUZ1bmN0aW9uPFQsIFI+IHtcbiAgaWYgKGZucy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gaWRlbnRpdHkgYXMgVW5hcnlGdW5jdGlvbjxhbnksIGFueT47XG4gIH1cblxuICBpZiAoZm5zLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBmbnNbMF07XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gcGlwZWQoaW5wdXQ6IFQpOiBSIHtcbiAgICByZXR1cm4gZm5zLnJlZHVjZSgocHJldjogYW55LCBmbjogVW5hcnlGdW5jdGlvbjxULCBSPikgPT4gZm4ocHJldiksIGlucHV0IGFzIGFueSk7XG4gIH07XG59XG4iLCAiaW1wb3J0IHsgT3BlcmF0b3IgfSBmcm9tICcuL09wZXJhdG9yJztcbmltcG9ydCB7IFNhZmVTdWJzY3JpYmVyLCBTdWJzY3JpYmVyIH0gZnJvbSAnLi9TdWJzY3JpYmVyJztcbmltcG9ydCB7IGlzU3Vic2NyaXB0aW9uLCBTdWJzY3JpcHRpb24gfSBmcm9tICcuL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBUZWFyZG93bkxvZ2ljLCBPcGVyYXRvckZ1bmN0aW9uLCBTdWJzY3JpYmFibGUsIE9ic2VydmVyIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBvYnNlcnZhYmxlIGFzIFN5bWJvbF9vYnNlcnZhYmxlIH0gZnJvbSAnLi9zeW1ib2wvb2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBwaXBlRnJvbUFycmF5IH0gZnJvbSAnLi91dGlsL3BpcGUnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4vdXRpbC9pc0Z1bmN0aW9uJztcbmltcG9ydCB7IGVycm9yQ29udGV4dCB9IGZyb20gJy4vdXRpbC9lcnJvckNvbnRleHQnO1xuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYW55IHNldCBvZiB2YWx1ZXMgb3ZlciBhbnkgYW1vdW50IG9mIHRpbWUuIFRoaXMgaXMgdGhlIG1vc3QgYmFzaWMgYnVpbGRpbmcgYmxvY2tcbiAqIG9mIFJ4SlMuXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmxlPFQ+IGltcGxlbWVudHMgU3Vic2NyaWJhYmxlPFQ+IHtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIEludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbCwgZG8gbm90IHVzZSBkaXJlY3RseS4gV2lsbCBiZSBtYWRlIGludGVybmFsIGluIHY4LlxuICAgKi9cbiAgc291cmNlOiBPYnNlcnZhYmxlPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIEludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbCwgZG8gbm90IHVzZSBkaXJlY3RseS4gV2lsbCBiZSBtYWRlIGludGVybmFsIGluIHY4LlxuICAgKi9cbiAgb3BlcmF0b3I6IE9wZXJhdG9yPGFueSwgVD4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBzdWJzY3JpYmUgVGhlIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIE9ic2VydmFibGUgaXNcbiAgICogaW5pdGlhbGx5IHN1YnNjcmliZWQgdG8uIFRoaXMgZnVuY3Rpb24gaXMgZ2l2ZW4gYSBTdWJzY3JpYmVyLCB0byB3aGljaCBuZXcgdmFsdWVzXG4gICAqIGNhbiBiZSBgbmV4dGBlZCwgb3IgYW4gYGVycm9yYCBtZXRob2QgY2FuIGJlIGNhbGxlZCB0byByYWlzZSBhbiBlcnJvciwgb3JcbiAgICogYGNvbXBsZXRlYCBjYW4gYmUgY2FsbGVkIHRvIG5vdGlmeSBvZiBhIHN1Y2Nlc3NmdWwgY29tcGxldGlvbi5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHN1YnNjcmliZT86ICh0aGlzOiBPYnNlcnZhYmxlPFQ+LCBzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFQ+KSA9PiBUZWFyZG93bkxvZ2ljKSB7XG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgdGhpcy5fc3Vic2NyaWJlID0gc3Vic2NyaWJlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhBQ0s6IFNpbmNlIFR5cGVTY3JpcHQgaW5oZXJpdHMgc3RhdGljIHByb3BlcnRpZXMgdG9vLCB3ZSBoYXZlIHRvXG4gIC8vIGZpZ2h0IGFnYWluc3QgVHlwZVNjcmlwdCBoZXJlIHNvIFN1YmplY3QgY2FuIGhhdmUgYSBkaWZmZXJlbnQgc3RhdGljIGNyZWF0ZSBzaWduYXR1cmVcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgT2JzZXJ2YWJsZSBieSBjYWxsaW5nIHRoZSBPYnNlcnZhYmxlIGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBzdWJzY3JpYmUgdGhlIHN1YnNjcmliZXIgZnVuY3Rpb24gdG8gYmUgcGFzc2VkIHRvIHRoZSBPYnNlcnZhYmxlIGNvbnN0cnVjdG9yXG4gICAqIEByZXR1cm4gQSBuZXcgb2JzZXJ2YWJsZS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBuZXcgT2JzZXJ2YWJsZSgpYCBpbnN0ZWFkLiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlOiAoLi4uYXJnczogYW55W10pID0+IGFueSA9IDxUPihzdWJzY3JpYmU/OiAoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPikgPT4gVGVhcmRvd25Mb2dpYykgPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPihzdWJzY3JpYmUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IE9ic2VydmFibGUsIHdpdGggdGhpcyBPYnNlcnZhYmxlIGluc3RhbmNlIGFzIHRoZSBzb3VyY2UsIGFuZCB0aGUgcGFzc2VkXG4gICAqIG9wZXJhdG9yIGRlZmluZWQgYXMgdGhlIG5ldyBvYnNlcnZhYmxlJ3Mgb3BlcmF0b3IuXG4gICAqIEBwYXJhbSBvcGVyYXRvciB0aGUgb3BlcmF0b3IgZGVmaW5pbmcgdGhlIG9wZXJhdGlvbiB0byB0YWtlIG9uIHRoZSBvYnNlcnZhYmxlXG4gICAqIEByZXR1cm4gQSBuZXcgb2JzZXJ2YWJsZSB3aXRoIHRoZSBPcGVyYXRvciBhcHBsaWVkLlxuICAgKiBAZGVwcmVjYXRlZCBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIGRvIG5vdCB1c2UgZGlyZWN0bHkuIFdpbGwgYmUgbWFkZSBpbnRlcm5hbCBpbiB2OC5cbiAgICogSWYgeW91IGhhdmUgaW1wbGVtZW50ZWQgYW4gb3BlcmF0b3IgdXNpbmcgYGxpZnRgLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSBjcmVhdGUgYW5cbiAgICogb3BlcmF0b3IgYnkgc2ltcGx5IHJldHVybmluZyBgbmV3IE9ic2VydmFibGUoKWAgZGlyZWN0bHkuIFNlZSBcIkNyZWF0aW5nIG5ldyBvcGVyYXRvcnMgZnJvbVxuICAgKiBzY3JhdGNoXCIgc2VjdGlvbiBoZXJlOiBodHRwczovL3J4anMuZGV2L2d1aWRlL29wZXJhdG9yc1xuICAgKi9cbiAgbGlmdDxSPihvcGVyYXRvcj86IE9wZXJhdG9yPFQsIFI+KTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgY29uc3Qgb2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPFI+KCk7XG4gICAgb2JzZXJ2YWJsZS5zb3VyY2UgPSB0aGlzO1xuICAgIG9ic2VydmFibGUub3BlcmF0b3IgPSBvcGVyYXRvcjtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZTtcbiAgfVxuXG4gIHN1YnNjcmliZShvYnNlcnZlck9yTmV4dD86IFBhcnRpYWw8T2JzZXJ2ZXI8VD4+IHwgKCh2YWx1ZTogVCkgPT4gdm9pZCkpOiBTdWJzY3JpcHRpb247XG4gIC8qKiBAZGVwcmVjYXRlZCBJbnN0ZWFkIG9mIHBhc3Npbmcgc2VwYXJhdGUgY2FsbGJhY2sgYXJndW1lbnRzLCB1c2UgYW4gb2JzZXJ2ZXIgYXJndW1lbnQuIFNpZ25hdHVyZXMgdGFraW5nIHNlcGFyYXRlIGNhbGxiYWNrIGFyZ3VtZW50cyB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL3N1YnNjcmliZS1hcmd1bWVudHMgKi9cbiAgc3Vic2NyaWJlKG5leHQ/OiAoKHZhbHVlOiBUKSA9PiB2b2lkKSB8IG51bGwsIGVycm9yPzogKChlcnJvcjogYW55KSA9PiB2b2lkKSB8IG51bGwsIGNvbXBsZXRlPzogKCgpID0+IHZvaWQpIHwgbnVsbCk6IFN1YnNjcmlwdGlvbjtcbiAgLyoqXG4gICAqIEludm9rZXMgYW4gZXhlY3V0aW9uIG9mIGFuIE9ic2VydmFibGUgYW5kIHJlZ2lzdGVycyBPYnNlcnZlciBoYW5kbGVycyBmb3Igbm90aWZpY2F0aW9ucyBpdCB3aWxsIGVtaXQuXG4gICAqXG4gICAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5Vc2UgaXQgd2hlbiB5b3UgaGF2ZSBhbGwgdGhlc2UgT2JzZXJ2YWJsZXMsIGJ1dCBzdGlsbCBub3RoaW5nIGlzIGhhcHBlbmluZy48L3NwYW4+XG4gICAqXG4gICAqIGBzdWJzY3JpYmVgIGlzIG5vdCBhIHJlZ3VsYXIgb3BlcmF0b3IsIGJ1dCBhIG1ldGhvZCB0aGF0IGNhbGxzIE9ic2VydmFibGUncyBpbnRlcm5hbCBgc3Vic2NyaWJlYCBmdW5jdGlvbi4gSXRcbiAgICogbWlnaHQgYmUgZm9yIGV4YW1wbGUgYSBmdW5jdGlvbiB0aGF0IHlvdSBwYXNzZWQgdG8gT2JzZXJ2YWJsZSdzIGNvbnN0cnVjdG9yLCBidXQgbW9zdCBvZiB0aGUgdGltZSBpdCBpc1xuICAgKiBhIGxpYnJhcnkgaW1wbGVtZW50YXRpb24sIHdoaWNoIGRlZmluZXMgd2hhdCB3aWxsIGJlIGVtaXR0ZWQgYnkgYW4gT2JzZXJ2YWJsZSwgYW5kIHdoZW4gaXQgYmUgd2lsbCBlbWl0dGVkLiBUaGlzIG1lYW5zXG4gICAqIHRoYXQgY2FsbGluZyBgc3Vic2NyaWJlYCBpcyBhY3R1YWxseSB0aGUgbW9tZW50IHdoZW4gT2JzZXJ2YWJsZSBzdGFydHMgaXRzIHdvcmssIG5vdCB3aGVuIGl0IGlzIGNyZWF0ZWQsIGFzIGl0IGlzIG9mdGVuXG4gICAqIHRoZSB0aG91Z2h0LlxuICAgKlxuICAgKiBBcGFydCBmcm9tIHN0YXJ0aW5nIHRoZSBleGVjdXRpb24gb2YgYW4gT2JzZXJ2YWJsZSwgdGhpcyBtZXRob2QgYWxsb3dzIHlvdSB0byBsaXN0ZW4gZm9yIHZhbHVlc1xuICAgKiB0aGF0IGFuIE9ic2VydmFibGUgZW1pdHMsIGFzIHdlbGwgYXMgZm9yIHdoZW4gaXQgY29tcGxldGVzIG9yIGVycm9ycy4gWW91IGNhbiBhY2hpZXZlIHRoaXMgaW4gdHdvXG4gICAqIG9mIHRoZSBmb2xsb3dpbmcgd2F5cy5cbiAgICpcbiAgICogVGhlIGZpcnN0IHdheSBpcyBjcmVhdGluZyBhbiBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIHtAbGluayBPYnNlcnZlcn0gaW50ZXJmYWNlLiBJdCBzaG91bGQgaGF2ZSBtZXRob2RzXG4gICAqIGRlZmluZWQgYnkgdGhhdCBpbnRlcmZhY2UsIGJ1dCBub3RlIHRoYXQgaXQgc2hvdWxkIGJlIGp1c3QgYSByZWd1bGFyIEphdmFTY3JpcHQgb2JqZWN0LCB3aGljaCB5b3UgY2FuIGNyZWF0ZVxuICAgKiB5b3Vyc2VsZiBpbiBhbnkgd2F5IHlvdSB3YW50IChFUzYgY2xhc3MsIGNsYXNzaWMgZnVuY3Rpb24gY29uc3RydWN0b3IsIG9iamVjdCBsaXRlcmFsIGV0Yy4pLiBJbiBwYXJ0aWN1bGFyLCBkb1xuICAgKiBub3QgYXR0ZW1wdCB0byB1c2UgYW55IFJ4SlMgaW1wbGVtZW50YXRpb24gZGV0YWlscyB0byBjcmVhdGUgT2JzZXJ2ZXJzIC0geW91IGRvbid0IG5lZWQgdGhlbS4gUmVtZW1iZXIgYWxzb1xuICAgKiB0aGF0IHlvdXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgdG8gaW1wbGVtZW50IGFsbCBtZXRob2RzLiBJZiB5b3UgZmluZCB5b3Vyc2VsZiBjcmVhdGluZyBhIG1ldGhvZCB0aGF0IGRvZXNuJ3RcbiAgICogZG8gYW55dGhpbmcsIHlvdSBjYW4gc2ltcGx5IG9taXQgaXQuIE5vdGUgaG93ZXZlciwgaWYgdGhlIGBlcnJvcmAgbWV0aG9kIGlzIG5vdCBwcm92aWRlZCBhbmQgYW4gZXJyb3IgaGFwcGVucyxcbiAgICogaXQgd2lsbCBiZSB0aHJvd24gYXN5bmNocm9ub3VzbHkuIEVycm9ycyB0aHJvd24gYXN5bmNocm9ub3VzbHkgY2Fubm90IGJlIGNhdWdodCB1c2luZyBgdHJ5YC9gY2F0Y2hgLiBJbnN0ZWFkLFxuICAgKiB1c2UgdGhlIHtAbGluayBvblVuaGFuZGxlZEVycm9yfSBjb25maWd1cmF0aW9uIG9wdGlvbiBvciB1c2UgYSBydW50aW1lIGhhbmRsZXIgKGxpa2UgYHdpbmRvdy5vbmVycm9yYCBvclxuICAgKiBgcHJvY2Vzcy5vbignZXJyb3IpYCkgdG8gYmUgbm90aWZpZWQgb2YgdW5oYW5kbGVkIGVycm9ycy4gQmVjYXVzZSBvZiB0aGlzLCBpdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IHByb3ZpZGVcbiAgICogYW4gYGVycm9yYCBtZXRob2QgdG8gYXZvaWQgbWlzc2luZyB0aHJvd24gZXJyb3JzLlxuICAgKlxuICAgKiBUaGUgc2Vjb25kIHdheSBpcyB0byBnaXZlIHVwIG9uIE9ic2VydmVyIG9iamVjdCBhbHRvZ2V0aGVyIGFuZCBzaW1wbHkgcHJvdmlkZSBjYWxsYmFjayBmdW5jdGlvbnMgaW4gcGxhY2Ugb2YgaXRzIG1ldGhvZHMuXG4gICAqIFRoaXMgbWVhbnMgeW91IGNhbiBwcm92aWRlIHRocmVlIGZ1bmN0aW9ucyBhcyBhcmd1bWVudHMgdG8gYHN1YnNjcmliZWAsIHdoZXJlIHRoZSBmaXJzdCBmdW5jdGlvbiBpcyBlcXVpdmFsZW50XG4gICAqIG9mIGEgYG5leHRgIG1ldGhvZCwgdGhlIHNlY29uZCBvZiBhbiBgZXJyb3JgIG1ldGhvZCBhbmQgdGhlIHRoaXJkIG9mIGEgYGNvbXBsZXRlYCBtZXRob2QuIEp1c3QgYXMgaW4gY2FzZSBvZiBhbiBPYnNlcnZlcixcbiAgICogaWYgeW91IGRvIG5vdCBuZWVkIHRvIGxpc3RlbiBmb3Igc29tZXRoaW5nLCB5b3UgY2FuIG9taXQgYSBmdW5jdGlvbiBieSBwYXNzaW5nIGB1bmRlZmluZWRgIG9yIGBudWxsYCxcbiAgICogc2luY2UgYHN1YnNjcmliZWAgcmVjb2duaXplcyB0aGVzZSBmdW5jdGlvbnMgYnkgd2hlcmUgdGhleSB3ZXJlIHBsYWNlZCBpbiBmdW5jdGlvbiBjYWxsLiBXaGVuIGl0IGNvbWVzXG4gICAqIHRvIHRoZSBgZXJyb3JgIGZ1bmN0aW9uLCBhcyB3aXRoIGFuIE9ic2VydmVyLCBpZiBub3QgcHJvdmlkZWQsIGVycm9ycyBlbWl0dGVkIGJ5IGFuIE9ic2VydmFibGUgd2lsbCBiZSB0aHJvd24gYXN5bmNocm9ub3VzbHkuXG4gICAqXG4gICAqIFlvdSBjYW4sIGhvd2V2ZXIsIHN1YnNjcmliZSB3aXRoIG5vIHBhcmFtZXRlcnMgYXQgYWxsLiBUaGlzIG1heSBiZSB0aGUgY2FzZSB3aGVyZSB5b3UncmUgbm90IGludGVyZXN0ZWQgaW4gdGVybWluYWwgZXZlbnRzXG4gICAqIGFuZCB5b3UgYWxzbyBoYW5kbGVkIGVtaXNzaW9ucyBpbnRlcm5hbGx5IGJ5IHVzaW5nIG9wZXJhdG9ycyAoZS5nLiB1c2luZyBgdGFwYCkuXG4gICAqXG4gICAqIFdoaWNoZXZlciBzdHlsZSBvZiBjYWxsaW5nIGBzdWJzY3JpYmVgIHlvdSB1c2UsIGluIGJvdGggY2FzZXMgaXQgcmV0dXJucyBhIFN1YnNjcmlwdGlvbiBvYmplY3QuXG4gICAqIFRoaXMgb2JqZWN0IGFsbG93cyB5b3UgdG8gY2FsbCBgdW5zdWJzY3JpYmVgIG9uIGl0LCB3aGljaCBpbiB0dXJuIHdpbGwgc3RvcCB0aGUgd29yayB0aGF0IGFuIE9ic2VydmFibGUgZG9lcyBhbmQgd2lsbCBjbGVhblxuICAgKiB1cCBhbGwgcmVzb3VyY2VzIHRoYXQgYW4gT2JzZXJ2YWJsZSB1c2VkLiBOb3RlIHRoYXQgY2FuY2VsbGluZyBhIHN1YnNjcmlwdGlvbiB3aWxsIG5vdCBjYWxsIGBjb21wbGV0ZWAgY2FsbGJhY2tcbiAgICogcHJvdmlkZWQgdG8gYHN1YnNjcmliZWAgZnVuY3Rpb24sIHdoaWNoIGlzIHJlc2VydmVkIGZvciBhIHJlZ3VsYXIgY29tcGxldGlvbiBzaWduYWwgdGhhdCBjb21lcyBmcm9tIGFuIE9ic2VydmFibGUuXG4gICAqXG4gICAqIFJlbWVtYmVyIHRoYXQgY2FsbGJhY2tzIHByb3ZpZGVkIHRvIGBzdWJzY3JpYmVgIGFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSBjYWxsZWQgYXN5bmNocm9ub3VzbHkuXG4gICAqIEl0IGlzIGFuIE9ic2VydmFibGUgaXRzZWxmIHRoYXQgZGVjaWRlcyB3aGVuIHRoZXNlIGZ1bmN0aW9ucyB3aWxsIGJlIGNhbGxlZC4gRm9yIGV4YW1wbGUge0BsaW5rIG9mfVxuICAgKiBieSBkZWZhdWx0IGVtaXRzIGFsbCBpdHMgdmFsdWVzIHN5bmNocm9ub3VzbHkuIEFsd2F5cyBjaGVjayBkb2N1bWVudGF0aW9uIGZvciBob3cgZ2l2ZW4gT2JzZXJ2YWJsZVxuICAgKiB3aWxsIGJlaGF2ZSB3aGVuIHN1YnNjcmliZWQgYW5kIGlmIGl0cyBkZWZhdWx0IGJlaGF2aW9yIGNhbiBiZSBtb2RpZmllZCB3aXRoIGEgYHNjaGVkdWxlcmAuXG4gICAqXG4gICAqICMjIyMgRXhhbXBsZXNcbiAgICpcbiAgICogU3Vic2NyaWJlIHdpdGggYW4ge0BsaW5rIGd1aWRlL29ic2VydmVyIE9ic2VydmVyfVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBpbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuICAgKlxuICAgKiBjb25zdCBzdW1PYnNlcnZlciA9IHtcbiAgICogICBzdW06IDAsXG4gICAqICAgbmV4dCh2YWx1ZSkge1xuICAgKiAgICAgY29uc29sZS5sb2coJ0FkZGluZzogJyArIHZhbHVlKTtcbiAgICogICAgIHRoaXMuc3VtID0gdGhpcy5zdW0gKyB2YWx1ZTtcbiAgICogICB9LFxuICAgKiAgIGVycm9yKCkge1xuICAgKiAgICAgLy8gV2UgYWN0dWFsbHkgY291bGQganVzdCByZW1vdmUgdGhpcyBtZXRob2QsXG4gICAqICAgICAvLyBzaW5jZSB3ZSBkbyBub3QgcmVhbGx5IGNhcmUgYWJvdXQgZXJyb3JzIHJpZ2h0IG5vdy5cbiAgICogICB9LFxuICAgKiAgIGNvbXBsZXRlKCkge1xuICAgKiAgICAgY29uc29sZS5sb2coJ1N1bSBlcXVhbHM6ICcgKyB0aGlzLnN1bSk7XG4gICAqICAgfVxuICAgKiB9O1xuICAgKlxuICAgKiBvZigxLCAyLCAzKSAvLyBTeW5jaHJvbm91c2x5IGVtaXRzIDEsIDIsIDMgYW5kIHRoZW4gY29tcGxldGVzLlxuICAgKiAgIC5zdWJzY3JpYmUoc3VtT2JzZXJ2ZXIpO1xuICAgKlxuICAgKiAvLyBMb2dzOlxuICAgKiAvLyAnQWRkaW5nOiAxJ1xuICAgKiAvLyAnQWRkaW5nOiAyJ1xuICAgKiAvLyAnQWRkaW5nOiAzJ1xuICAgKiAvLyAnU3VtIGVxdWFsczogNidcbiAgICogYGBgXG4gICAqXG4gICAqIFN1YnNjcmliZSB3aXRoIGZ1bmN0aW9ucyAoe0BsaW5rIGRlcHJlY2F0aW9ucy9zdWJzY3JpYmUtYXJndW1lbnRzIGRlcHJlY2F0ZWR9KVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBpbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnXG4gICAqXG4gICAqIGxldCBzdW0gPSAwO1xuICAgKlxuICAgKiBvZigxLCAyLCAzKS5zdWJzY3JpYmUoXG4gICAqICAgdmFsdWUgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coJ0FkZGluZzogJyArIHZhbHVlKTtcbiAgICogICAgIHN1bSA9IHN1bSArIHZhbHVlO1xuICAgKiAgIH0sXG4gICAqICAgdW5kZWZpbmVkLFxuICAgKiAgICgpID0+IGNvbnNvbGUubG9nKCdTdW0gZXF1YWxzOiAnICsgc3VtKVxuICAgKiApO1xuICAgKlxuICAgKiAvLyBMb2dzOlxuICAgKiAvLyAnQWRkaW5nOiAxJ1xuICAgKiAvLyAnQWRkaW5nOiAyJ1xuICAgKiAvLyAnQWRkaW5nOiAzJ1xuICAgKiAvLyAnU3VtIGVxdWFsczogNidcbiAgICogYGBgXG4gICAqXG4gICAqIENhbmNlbCBhIHN1YnNjcmlwdGlvblxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBpbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuICAgKlxuICAgKiBjb25zdCBzdWJzY3JpcHRpb24gPSBpbnRlcnZhbCgxMDAwKS5zdWJzY3JpYmUoe1xuICAgKiAgIG5leHQobnVtKSB7XG4gICAqICAgICBjb25zb2xlLmxvZyhudW0pXG4gICAqICAgfSxcbiAgICogICBjb21wbGV0ZSgpIHtcbiAgICogICAgIC8vIFdpbGwgbm90IGJlIGNhbGxlZCwgZXZlbiB3aGVuIGNhbmNlbGxpbmcgc3Vic2NyaXB0aW9uLlxuICAgKiAgICAgY29uc29sZS5sb2coJ2NvbXBsZXRlZCEnKTtcbiAgICogICB9XG4gICAqIH0pO1xuICAgKlxuICAgKiBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICogICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICogICBjb25zb2xlLmxvZygndW5zdWJzY3JpYmVkIScpO1xuICAgKiB9LCAyNTAwKTtcbiAgICpcbiAgICogLy8gTG9nczpcbiAgICogLy8gMCBhZnRlciAxc1xuICAgKiAvLyAxIGFmdGVyIDJzXG4gICAqIC8vICd1bnN1YnNjcmliZWQhJyBhZnRlciAyLjVzXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gb2JzZXJ2ZXJPck5leHQgRWl0aGVyIGFuIHtAbGluayBPYnNlcnZlcn0gd2l0aCBzb21lIG9yIGFsbCBjYWxsYmFjayBtZXRob2RzLFxuICAgKiBvciB0aGUgYG5leHRgIGhhbmRsZXIgdGhhdCBpcyBjYWxsZWQgZm9yIGVhY2ggdmFsdWUgZW1pdHRlZCBmcm9tIHRoZSBzdWJzY3JpYmVkIE9ic2VydmFibGUuXG4gICAqIEBwYXJhbSBlcnJvciBBIGhhbmRsZXIgZm9yIGEgdGVybWluYWwgZXZlbnQgcmVzdWx0aW5nIGZyb20gYW4gZXJyb3IuIElmIG5vIGVycm9yIGhhbmRsZXIgaXMgcHJvdmlkZWQsXG4gICAqIHRoZSBlcnJvciB3aWxsIGJlIHRocm93biBhc3luY2hyb25vdXNseSBhcyB1bmhhbmRsZWQuXG4gICAqIEBwYXJhbSBjb21wbGV0ZSBBIGhhbmRsZXIgZm9yIGEgdGVybWluYWwgZXZlbnQgcmVzdWx0aW5nIGZyb20gc3VjY2Vzc2Z1bCBjb21wbGV0aW9uLlxuICAgKiBAcmV0dXJuIEEgc3Vic2NyaXB0aW9uIHJlZmVyZW5jZSB0byB0aGUgcmVnaXN0ZXJlZCBoYW5kbGVycy5cbiAgICovXG4gIHN1YnNjcmliZShcbiAgICBvYnNlcnZlck9yTmV4dD86IFBhcnRpYWw8T2JzZXJ2ZXI8VD4+IHwgKCh2YWx1ZTogVCkgPT4gdm9pZCkgfCBudWxsLFxuICAgIGVycm9yPzogKChlcnJvcjogYW55KSA9PiB2b2lkKSB8IG51bGwsXG4gICAgY29tcGxldGU/OiAoKCkgPT4gdm9pZCkgfCBudWxsXG4gICk6IFN1YnNjcmlwdGlvbiB7XG4gICAgY29uc3Qgc3Vic2NyaWJlciA9IGlzU3Vic2NyaWJlcihvYnNlcnZlck9yTmV4dCkgPyBvYnNlcnZlck9yTmV4dCA6IG5ldyBTYWZlU3Vic2NyaWJlcihvYnNlcnZlck9yTmV4dCwgZXJyb3IsIGNvbXBsZXRlKTtcblxuICAgIGVycm9yQ29udGV4dCgoKSA9PiB7XG4gICAgICBjb25zdCB7IG9wZXJhdG9yLCBzb3VyY2UgfSA9IHRoaXM7XG4gICAgICBzdWJzY3JpYmVyLmFkZChcbiAgICAgICAgb3BlcmF0b3JcbiAgICAgICAgICA/IC8vIFdlJ3JlIGRlYWxpbmcgd2l0aCBhIHN1YnNjcmlwdGlvbiBpbiB0aGVcbiAgICAgICAgICAgIC8vIG9wZXJhdG9yIGNoYWluIHRvIG9uZSBvZiBvdXIgbGlmdGVkIG9wZXJhdG9ycy5cbiAgICAgICAgICAgIG9wZXJhdG9yLmNhbGwoc3Vic2NyaWJlciwgc291cmNlKVxuICAgICAgICAgIDogc291cmNlXG4gICAgICAgICAgPyAvLyBJZiBgc291cmNlYCBoYXMgYSB2YWx1ZSwgYnV0IGBvcGVyYXRvcmAgZG9lcyBub3QsIHNvbWV0aGluZyB0aGF0XG4gICAgICAgICAgICAvLyBoYWQgaW50aW1hdGUga25vd2xlZGdlIG9mIG91ciBBUEksIGxpa2Ugb3VyIGBTdWJqZWN0YCwgbXVzdCBoYXZlXG4gICAgICAgICAgICAvLyBzZXQgaXQuIFdlJ3JlIGdvaW5nIHRvIGp1c3QgY2FsbCBgX3N1YnNjcmliZWAgZGlyZWN0bHkuXG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpYmUoc3Vic2NyaWJlcilcbiAgICAgICAgICA6IC8vIEluIGFsbCBvdGhlciBjYXNlcywgd2UncmUgbGlrZWx5IHdyYXBwaW5nIGEgdXNlci1wcm92aWRlZCBpbml0aWFsaXplclxuICAgICAgICAgICAgLy8gZnVuY3Rpb24sIHNvIHdlIG5lZWQgdG8gY2F0Y2ggZXJyb3JzIGFuZCBoYW5kbGUgdGhlbSBhcHByb3ByaWF0ZWx5LlxuICAgICAgICAgICAgdGhpcy5fdHJ5U3Vic2NyaWJlKHN1YnNjcmliZXIpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN1YnNjcmliZXI7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBfdHJ5U3Vic2NyaWJlKHNpbms6IFN1YnNjcmliZXI8VD4pOiBUZWFyZG93bkxvZ2ljIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuX3N1YnNjcmliZShzaW5rKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gcmV0dXJuIGFueXRoaW5nIGluIHRoaXMgY2FzZSxcbiAgICAgIC8vIGJlY2F1c2UgaXQncyBqdXN0IGdvaW5nIHRvIHRyeSB0byBgYWRkKClgIHRvIGEgc3Vic2NyaXB0aW9uXG4gICAgICAvLyBhYm92ZS5cbiAgICAgIHNpbmsuZXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBhcyBhIE5PTi1DQU5DRUxMQUJMRSBtZWFucyBvZiBzdWJzY3JpYmluZyB0byBhbiBvYnNlcnZhYmxlLCBmb3IgdXNlIHdpdGhcbiAgICogQVBJcyB0aGF0IGV4cGVjdCBwcm9taXNlcywgbGlrZSBgYXN5bmMvYXdhaXRgLiBZb3UgY2Fubm90IHVuc3Vic2NyaWJlIGZyb20gdGhpcy5cbiAgICpcbiAgICogKipXQVJOSU5HKio6IE9ubHkgdXNlIHRoaXMgd2l0aCBvYnNlcnZhYmxlcyB5b3UgKmtub3cqIHdpbGwgY29tcGxldGUuIElmIHRoZSBzb3VyY2VcbiAgICogb2JzZXJ2YWJsZSBkb2VzIG5vdCBjb21wbGV0ZSwgeW91IHdpbGwgZW5kIHVwIHdpdGggYSBwcm9taXNlIHRoYXQgaXMgaHVuZyB1cCwgYW5kXG4gICAqIHBvdGVudGlhbGx5IGFsbCBvZiB0aGUgc3RhdGUgb2YgYW4gYXN5bmMgZnVuY3Rpb24gaGFuZ2luZyBvdXQgaW4gbWVtb3J5LiBUbyBhdm9pZFxuICAgKiB0aGlzIHNpdHVhdGlvbiwgbG9vayBpbnRvIGFkZGluZyBzb21ldGhpbmcgbGlrZSB7QGxpbmsgdGltZW91dH0sIHtAbGluayB0YWtlfSxcbiAgICoge0BsaW5rIHRha2VXaGlsZX0sIG9yIHtAbGluayB0YWtlVW50aWx9IGFtb25nc3Qgb3RoZXJzLlxuICAgKlxuICAgKiAjIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBgdHNcbiAgICogaW1wb3J0IHsgaW50ZXJ2YWwsIHRha2UgfSBmcm9tICdyeGpzJztcbiAgICpcbiAgICogY29uc3Qgc291cmNlJCA9IGludGVydmFsKDEwMDApLnBpcGUodGFrZSg0KSk7XG4gICAqXG4gICAqIGFzeW5jIGZ1bmN0aW9uIGdldFRvdGFsKCkge1xuICAgKiAgIGxldCB0b3RhbCA9IDA7XG4gICAqXG4gICAqICAgYXdhaXQgc291cmNlJC5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICogICAgIHRvdGFsICs9IHZhbHVlO1xuICAgKiAgICAgY29uc29sZS5sb2coJ29ic2VydmFibGUgLT4gJyArIHZhbHVlKTtcbiAgICogICB9KTtcbiAgICpcbiAgICogICByZXR1cm4gdG90YWw7XG4gICAqIH1cbiAgICpcbiAgICogZ2V0VG90YWwoKS50aGVuKFxuICAgKiAgIHRvdGFsID0+IGNvbnNvbGUubG9nKCdUb3RhbDogJyArIHRvdGFsKVxuICAgKiApO1xuICAgKlxuICAgKiAvLyBFeHBlY3RlZDpcbiAgICogLy8gJ29ic2VydmFibGUgLT4gMCdcbiAgICogLy8gJ29ic2VydmFibGUgLT4gMSdcbiAgICogLy8gJ29ic2VydmFibGUgLT4gMidcbiAgICogLy8gJ29ic2VydmFibGUgLT4gMydcbiAgICogLy8gJ1RvdGFsOiA2J1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIG5leHQgQSBoYW5kbGVyIGZvciBlYWNoIHZhbHVlIGVtaXR0ZWQgYnkgdGhlIG9ic2VydmFibGUuXG4gICAqIEByZXR1cm4gQSBwcm9taXNlIHRoYXQgZWl0aGVyIHJlc29sdmVzIG9uIG9ic2VydmFibGUgY29tcGxldGlvbiBvclxuICAgKiByZWplY3RzIHdpdGggdGhlIGhhbmRsZWQgZXJyb3IuXG4gICAqL1xuICBmb3JFYWNoKG5leHQ6ICh2YWx1ZTogVCkgPT4gdm9pZCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBuZXh0IGEgaGFuZGxlciBmb3IgZWFjaCB2YWx1ZSBlbWl0dGVkIGJ5IHRoZSBvYnNlcnZhYmxlXG4gICAqIEBwYXJhbSBwcm9taXNlQ3RvciBhIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIHVzZWQgdG8gaW5zdGFudGlhdGUgdGhlIFByb21pc2VcbiAgICogQHJldHVybiBhIHByb21pc2UgdGhhdCBlaXRoZXIgcmVzb2x2ZXMgb24gb2JzZXJ2YWJsZSBjb21wbGV0aW9uIG9yXG4gICAqICByZWplY3RzIHdpdGggdGhlIGhhbmRsZWQgZXJyb3JcbiAgICogQGRlcHJlY2F0ZWQgUGFzc2luZyBhIFByb21pc2UgY29uc3RydWN0b3Igd2lsbCBubyBsb25nZXIgYmUgYXZhaWxhYmxlXG4gICAqIGluIHVwY29taW5nIHZlcnNpb25zIG9mIFJ4SlMuIFRoaXMgaXMgYmVjYXVzZSBpdCBhZGRzIHdlaWdodCB0byB0aGUgbGlicmFyeSwgZm9yIHZlcnlcbiAgICogbGl0dGxlIGJlbmVmaXQuIElmIHlvdSBuZWVkIHRoaXMgZnVuY3Rpb25hbGl0eSwgaXQgaXMgcmVjb21tZW5kZWQgdGhhdCB5b3UgZWl0aGVyXG4gICAqIHBvbHlmaWxsIFByb21pc2UsIG9yIHlvdSBjcmVhdGUgYW4gYWRhcHRlciB0byBjb252ZXJ0IHRoZSByZXR1cm5lZCBuYXRpdmUgcHJvbWlzZVxuICAgKiB0byB3aGF0ZXZlciBwcm9taXNlIGltcGxlbWVudGF0aW9uIHlvdSB3YW50ZWQuIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAgICovXG4gIGZvckVhY2gobmV4dDogKHZhbHVlOiBUKSA9PiB2b2lkLCBwcm9taXNlQ3RvcjogUHJvbWlzZUNvbnN0cnVjdG9yTGlrZSk6IFByb21pc2U8dm9pZD47XG5cbiAgZm9yRWFjaChuZXh0OiAodmFsdWU6IFQpID0+IHZvaWQsIHByb21pc2VDdG9yPzogUHJvbWlzZUNvbnN0cnVjdG9yTGlrZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHByb21pc2VDdG9yID0gZ2V0UHJvbWlzZUN0b3IocHJvbWlzZUN0b3IpO1xuXG4gICAgcmV0dXJuIG5ldyBwcm9taXNlQ3Rvcjx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBzdWJzY3JpYmVyID0gbmV3IFNhZmVTdWJzY3JpYmVyPFQ+KHtcbiAgICAgICAgbmV4dDogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIG5leHQodmFsdWUpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogcmVqZWN0LFxuICAgICAgICBjb21wbGV0ZTogcmVzb2x2ZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gICAgfSkgYXMgUHJvbWlzZTx2b2lkPjtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIF9zdWJzY3JpYmUoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxhbnk+KTogVGVhcmRvd25Mb2dpYyB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlPy5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gIH1cblxuICAvKipcbiAgICogQW4gaW50ZXJvcCBwb2ludCBkZWZpbmVkIGJ5IHRoZSBlczctb2JzZXJ2YWJsZSBzcGVjIGh0dHBzOi8vZ2l0aHViLmNvbS96ZW5wYXJzaW5nL2VzLW9ic2VydmFibGVcbiAgICogQHJldHVybiBUaGlzIGluc3RhbmNlIG9mIHRoZSBvYnNlcnZhYmxlLlxuICAgKi9cbiAgW1N5bWJvbF9vYnNlcnZhYmxlXSgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aCAqL1xuICBwaXBlKCk6IE9ic2VydmFibGU8VD47XG4gIHBpcGU8QT4ob3AxOiBPcGVyYXRvckZ1bmN0aW9uPFQsIEE+KTogT2JzZXJ2YWJsZTxBPjtcbiAgcGlwZTxBLCBCPihvcDE6IE9wZXJhdG9yRnVuY3Rpb248VCwgQT4sIG9wMjogT3BlcmF0b3JGdW5jdGlvbjxBLCBCPik6IE9ic2VydmFibGU8Qj47XG4gIHBpcGU8QSwgQiwgQz4ob3AxOiBPcGVyYXRvckZ1bmN0aW9uPFQsIEE+LCBvcDI6IE9wZXJhdG9yRnVuY3Rpb248QSwgQj4sIG9wMzogT3BlcmF0b3JGdW5jdGlvbjxCLCBDPik6IE9ic2VydmFibGU8Qz47XG4gIHBpcGU8QSwgQiwgQywgRD4oXG4gICAgb3AxOiBPcGVyYXRvckZ1bmN0aW9uPFQsIEE+LFxuICAgIG9wMjogT3BlcmF0b3JGdW5jdGlvbjxBLCBCPixcbiAgICBvcDM6IE9wZXJhdG9yRnVuY3Rpb248QiwgQz4sXG4gICAgb3A0OiBPcGVyYXRvckZ1bmN0aW9uPEMsIEQ+XG4gICk6IE9ic2VydmFibGU8RD47XG4gIHBpcGU8QSwgQiwgQywgRCwgRT4oXG4gICAgb3AxOiBPcGVyYXRvckZ1bmN0aW9uPFQsIEE+LFxuICAgIG9wMjogT3BlcmF0b3JGdW5jdGlvbjxBLCBCPixcbiAgICBvcDM6IE9wZXJhdG9yRnVuY3Rpb248QiwgQz4sXG4gICAgb3A0OiBPcGVyYXRvckZ1bmN0aW9uPEMsIEQ+LFxuICAgIG9wNTogT3BlcmF0b3JGdW5jdGlvbjxELCBFPlxuICApOiBPYnNlcnZhYmxlPEU+O1xuICBwaXBlPEEsIEIsIEMsIEQsIEUsIEY+KFxuICAgIG9wMTogT3BlcmF0b3JGdW5jdGlvbjxULCBBPixcbiAgICBvcDI6IE9wZXJhdG9yRnVuY3Rpb248QSwgQj4sXG4gICAgb3AzOiBPcGVyYXRvckZ1bmN0aW9uPEIsIEM+LFxuICAgIG9wNDogT3BlcmF0b3JGdW5jdGlvbjxDLCBEPixcbiAgICBvcDU6IE9wZXJhdG9yRnVuY3Rpb248RCwgRT4sXG4gICAgb3A2OiBPcGVyYXRvckZ1bmN0aW9uPEUsIEY+XG4gICk6IE9ic2VydmFibGU8Rj47XG4gIHBpcGU8QSwgQiwgQywgRCwgRSwgRiwgRz4oXG4gICAgb3AxOiBPcGVyYXRvckZ1bmN0aW9uPFQsIEE+LFxuICAgIG9wMjogT3BlcmF0b3JGdW5jdGlvbjxBLCBCPixcbiAgICBvcDM6IE9wZXJhdG9yRnVuY3Rpb248QiwgQz4sXG4gICAgb3A0OiBPcGVyYXRvckZ1bmN0aW9uPEMsIEQ+LFxuICAgIG9wNTogT3BlcmF0b3JGdW5jdGlvbjxELCBFPixcbiAgICBvcDY6IE9wZXJhdG9yRnVuY3Rpb248RSwgRj4sXG4gICAgb3A3OiBPcGVyYXRvckZ1bmN0aW9uPEYsIEc+XG4gICk6IE9ic2VydmFibGU8Rz47XG4gIHBpcGU8QSwgQiwgQywgRCwgRSwgRiwgRywgSD4oXG4gICAgb3AxOiBPcGVyYXRvckZ1bmN0aW9uPFQsIEE+LFxuICAgIG9wMjogT3BlcmF0b3JGdW5jdGlvbjxBLCBCPixcbiAgICBvcDM6IE9wZXJhdG9yRnVuY3Rpb248QiwgQz4sXG4gICAgb3A0OiBPcGVyYXRvckZ1bmN0aW9uPEMsIEQ+LFxuICAgIG9wNTogT3BlcmF0b3JGdW5jdGlvbjxELCBFPixcbiAgICBvcDY6IE9wZXJhdG9yRnVuY3Rpb248RSwgRj4sXG4gICAgb3A3OiBPcGVyYXRvckZ1bmN0aW9uPEYsIEc+LFxuICAgIG9wODogT3BlcmF0b3JGdW5jdGlvbjxHLCBIPlxuICApOiBPYnNlcnZhYmxlPEg+O1xuICBwaXBlPEEsIEIsIEMsIEQsIEUsIEYsIEcsIEgsIEk+KFxuICAgIG9wMTogT3BlcmF0b3JGdW5jdGlvbjxULCBBPixcbiAgICBvcDI6IE9wZXJhdG9yRnVuY3Rpb248QSwgQj4sXG4gICAgb3AzOiBPcGVyYXRvckZ1bmN0aW9uPEIsIEM+LFxuICAgIG9wNDogT3BlcmF0b3JGdW5jdGlvbjxDLCBEPixcbiAgICBvcDU6IE9wZXJhdG9yRnVuY3Rpb248RCwgRT4sXG4gICAgb3A2OiBPcGVyYXRvckZ1bmN0aW9uPEUsIEY+LFxuICAgIG9wNzogT3BlcmF0b3JGdW5jdGlvbjxGLCBHPixcbiAgICBvcDg6IE9wZXJhdG9yRnVuY3Rpb248RywgSD4sXG4gICAgb3A5OiBPcGVyYXRvckZ1bmN0aW9uPEgsIEk+XG4gICk6IE9ic2VydmFibGU8ST47XG4gIHBpcGU8QSwgQiwgQywgRCwgRSwgRiwgRywgSCwgST4oXG4gICAgb3AxOiBPcGVyYXRvckZ1bmN0aW9uPFQsIEE+LFxuICAgIG9wMjogT3BlcmF0b3JGdW5jdGlvbjxBLCBCPixcbiAgICBvcDM6IE9wZXJhdG9yRnVuY3Rpb248QiwgQz4sXG4gICAgb3A0OiBPcGVyYXRvckZ1bmN0aW9uPEMsIEQ+LFxuICAgIG9wNTogT3BlcmF0b3JGdW5jdGlvbjxELCBFPixcbiAgICBvcDY6IE9wZXJhdG9yRnVuY3Rpb248RSwgRj4sXG4gICAgb3A3OiBPcGVyYXRvckZ1bmN0aW9uPEYsIEc+LFxuICAgIG9wODogT3BlcmF0b3JGdW5jdGlvbjxHLCBIPixcbiAgICBvcDk6IE9wZXJhdG9yRnVuY3Rpb248SCwgST4sXG4gICAgLi4ub3BlcmF0aW9uczogT3BlcmF0b3JGdW5jdGlvbjxhbnksIGFueT5bXVxuICApOiBPYnNlcnZhYmxlPHVua25vd24+O1xuICAvKiB0c2xpbnQ6ZW5hYmxlOm1heC1saW5lLWxlbmd0aCAqL1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHN0aXRjaCB0b2dldGhlciBmdW5jdGlvbmFsIG9wZXJhdG9ycyBpbnRvIGEgY2hhaW4uXG4gICAqXG4gICAqICMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBgdHNcbiAgICogaW1wb3J0IHsgaW50ZXJ2YWwsIGZpbHRlciwgbWFwLCBzY2FuIH0gZnJvbSAncnhqcyc7XG4gICAqXG4gICAqIGludGVydmFsKDEwMDApXG4gICAqICAgLnBpcGUoXG4gICAqICAgICBmaWx0ZXIoeCA9PiB4ICUgMiA9PT0gMCksXG4gICAqICAgICBtYXAoeCA9PiB4ICsgeCksXG4gICAqICAgICBzY2FuKChhY2MsIHgpID0+IGFjYyArIHgpXG4gICAqICAgKVxuICAgKiAgIC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmV0dXJuIFRoZSBPYnNlcnZhYmxlIHJlc3VsdCBvZiBhbGwgdGhlIG9wZXJhdG9ycyBoYXZpbmcgYmVlbiBjYWxsZWRcbiAgICogaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBwYXNzZWQgaW4uXG4gICAqL1xuICBwaXBlKC4uLm9wZXJhdGlvbnM6IE9wZXJhdG9yRnVuY3Rpb248YW55LCBhbnk+W10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBwaXBlRnJvbUFycmF5KG9wZXJhdGlvbnMpKHRoaXMpO1xuICB9XG5cbiAgLyogdHNsaW50OmRpc2FibGU6bWF4LWxpbmUtbGVuZ3RoICovXG4gIC8qKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCB3aXRoIHtAbGluayBmaXJzdFZhbHVlRnJvbX0gYW5kIHtAbGluayBsYXN0VmFsdWVGcm9tfS4gV2lsbCBiZSByZW1vdmVkIGluIHY4LiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy90by1wcm9taXNlICovXG4gIHRvUHJvbWlzZSgpOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+O1xuICAvKiogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgd2l0aCB7QGxpbmsgZmlyc3RWYWx1ZUZyb219IGFuZCB7QGxpbmsgbGFzdFZhbHVlRnJvbX0uIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvdG8tcHJvbWlzZSAqL1xuICB0b1Byb21pc2UoUHJvbWlzZUN0b3I6IHR5cGVvZiBQcm9taXNlKTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPjtcbiAgLyoqIEBkZXByZWNhdGVkIFJlcGxhY2VkIHdpdGgge0BsaW5rIGZpcnN0VmFsdWVGcm9tfSBhbmQge0BsaW5rIGxhc3RWYWx1ZUZyb219LiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL3RvLXByb21pc2UgKi9cbiAgdG9Qcm9taXNlKFByb21pc2VDdG9yOiBQcm9taXNlQ29uc3RydWN0b3JMaWtlKTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPjtcbiAgLyogdHNsaW50OmVuYWJsZTptYXgtbGluZS1sZW5ndGggKi9cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIHRoaXMgT2JzZXJ2YWJsZSBhbmQgZ2V0IGEgUHJvbWlzZSByZXNvbHZpbmcgb25cbiAgICogYGNvbXBsZXRlYCB3aXRoIHRoZSBsYXN0IGVtaXNzaW9uIChpZiBhbnkpLlxuICAgKlxuICAgKiAqKldBUk5JTkcqKjogT25seSB1c2UgdGhpcyB3aXRoIG9ic2VydmFibGVzIHlvdSAqa25vdyogd2lsbCBjb21wbGV0ZS4gSWYgdGhlIHNvdXJjZVxuICAgKiBvYnNlcnZhYmxlIGRvZXMgbm90IGNvbXBsZXRlLCB5b3Ugd2lsbCBlbmQgdXAgd2l0aCBhIHByb21pc2UgdGhhdCBpcyBodW5nIHVwLCBhbmRcbiAgICogcG90ZW50aWFsbHkgYWxsIG9mIHRoZSBzdGF0ZSBvZiBhbiBhc3luYyBmdW5jdGlvbiBoYW5naW5nIG91dCBpbiBtZW1vcnkuIFRvIGF2b2lkXG4gICAqIHRoaXMgc2l0dWF0aW9uLCBsb29rIGludG8gYWRkaW5nIHNvbWV0aGluZyBsaWtlIHtAbGluayB0aW1lb3V0fSwge0BsaW5rIHRha2V9LFxuICAgKiB7QGxpbmsgdGFrZVdoaWxlfSwgb3Ige0BsaW5rIHRha2VVbnRpbH0gYW1vbmdzdCBvdGhlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBbcHJvbWlzZUN0b3JdIGEgY29uc3RydWN0b3IgZnVuY3Rpb24gdXNlZCB0byBpbnN0YW50aWF0ZVxuICAgKiB0aGUgUHJvbWlzZVxuICAgKiBAcmV0dXJuIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGxhc3QgdmFsdWUgZW1pdCwgb3JcbiAgICogcmVqZWN0cyBvbiBhbiBlcnJvci4gSWYgdGhlcmUgd2VyZSBubyBlbWlzc2lvbnMsIFByb21pc2VcbiAgICogcmVzb2x2ZXMgd2l0aCB1bmRlZmluZWQuXG4gICAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIHdpdGgge0BsaW5rIGZpcnN0VmFsdWVGcm9tfSBhbmQge0BsaW5rIGxhc3RWYWx1ZUZyb219LiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL3RvLXByb21pc2VcbiAgICovXG4gIHRvUHJvbWlzZShwcm9taXNlQ3Rvcj86IFByb21pc2VDb25zdHJ1Y3Rvckxpa2UpOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBwcm9taXNlQ3RvciA9IGdldFByb21pc2VDdG9yKHByb21pc2VDdG9yKTtcblxuICAgIHJldHVybiBuZXcgcHJvbWlzZUN0b3IoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgbGV0IHZhbHVlOiBUIHwgdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdWJzY3JpYmUoXG4gICAgICAgICh4OiBUKSA9PiAodmFsdWUgPSB4KSxcbiAgICAgICAgKGVycjogYW55KSA9PiByZWplY3QoZXJyKSxcbiAgICAgICAgKCkgPT4gcmVzb2x2ZSh2YWx1ZSlcbiAgICAgICk7XG4gICAgfSkgYXMgUHJvbWlzZTxUIHwgdW5kZWZpbmVkPjtcbiAgfVxufVxuXG4vKipcbiAqIERlY2lkZXMgYmV0d2VlbiBhIHBhc3NlZCBwcm9taXNlIGNvbnN0cnVjdG9yIGZyb20gY29uc3VtaW5nIGNvZGUsXG4gKiBBIGRlZmF1bHQgY29uZmlndXJlZCBwcm9taXNlIGNvbnN0cnVjdG9yLCBhbmQgdGhlIG5hdGl2ZSBwcm9taXNlXG4gKiBjb25zdHJ1Y3RvciBhbmQgcmV0dXJucyBpdC4gSWYgbm90aGluZyBjYW4gYmUgZm91bmQsIGl0IHdpbGwgdGhyb3dcbiAqIGFuIGVycm9yLlxuICogQHBhcmFtIHByb21pc2VDdG9yIFRoZSBvcHRpb25hbCBwcm9taXNlIGNvbnN0cnVjdG9yIHRvIHBhc3NlZCBieSBjb25zdW1pbmcgY29kZVxuICovXG5mdW5jdGlvbiBnZXRQcm9taXNlQ3Rvcihwcm9taXNlQ3RvcjogUHJvbWlzZUNvbnN0cnVjdG9yTGlrZSB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gcHJvbWlzZUN0b3IgPz8gY29uZmlnLlByb21pc2UgPz8gUHJvbWlzZTtcbn1cblxuZnVuY3Rpb24gaXNPYnNlcnZlcjxUPih2YWx1ZTogYW55KTogdmFsdWUgaXMgT2JzZXJ2ZXI8VD4ge1xuICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbih2YWx1ZS5uZXh0KSAmJiBpc0Z1bmN0aW9uKHZhbHVlLmVycm9yKSAmJiBpc0Z1bmN0aW9uKHZhbHVlLmNvbXBsZXRlKTtcbn1cblxuZnVuY3Rpb24gaXNTdWJzY3JpYmVyPFQ+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBTdWJzY3JpYmVyPFQ+IHtcbiAgcmV0dXJuICh2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIFN1YnNjcmliZXIpIHx8IChpc09ic2VydmVyKHZhbHVlKSAmJiBpc1N1YnNjcmlwdGlvbih2YWx1ZSkpO1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IFN1YnNjcmliZXIgfSBmcm9tICcuLi9TdWJzY3JpYmVyJztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi9pc0Z1bmN0aW9uJztcblxuLyoqXG4gKiBVc2VkIHRvIGRldGVybWluZSBpZiBhbiBvYmplY3QgaXMgYW4gT2JzZXJ2YWJsZSB3aXRoIGEgbGlmdCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0xpZnQoc291cmNlOiBhbnkpOiBzb3VyY2UgaXMgeyBsaWZ0OiBJbnN0YW5jZVR5cGU8dHlwZW9mIE9ic2VydmFibGU+WydsaWZ0J10gfSB7XG4gIHJldHVybiBpc0Z1bmN0aW9uKHNvdXJjZT8ubGlmdCk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBgT3BlcmF0b3JGdW5jdGlvbmAuIFVzZWQgdG8gZGVmaW5lIG9wZXJhdG9ycyB0aHJvdWdob3V0IHRoZSBsaWJyYXJ5IGluIGEgY29uY2lzZSB3YXkuXG4gKiBAcGFyYW0gaW5pdCBUaGUgbG9naWMgdG8gY29ubmVjdCB0aGUgbGlmdGVkU291cmNlIHRvIHRoZSBzdWJzY3JpYmVyIGF0IHRoZSBtb21lbnQgb2Ygc3Vic2NyaXB0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb3BlcmF0ZTxULCBSPihcbiAgaW5pdDogKGxpZnRlZFNvdXJjZTogT2JzZXJ2YWJsZTxUPiwgc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxSPikgPT4gKCgpID0+IHZvaWQpIHwgdm9pZFxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBSPiB7XG4gIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiB7XG4gICAgaWYgKGhhc0xpZnQoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHNvdXJjZS5saWZ0KGZ1bmN0aW9uICh0aGlzOiBTdWJzY3JpYmVyPFI+LCBsaWZ0ZWRTb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gaW5pdChsaWZ0ZWRTb3VyY2UsIHRoaXMpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICB0aGlzLmVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmFibGUgdG8gbGlmdCB1bmtub3duIE9ic2VydmFibGUgdHlwZScpO1xuICB9O1xufVxuIiwgImltcG9ydCB7IFN1YnNjcmliZXIgfSBmcm9tICcuLi9TdWJzY3JpYmVyJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIGFuIGBPcGVyYXRvclN1YnNjcmliZXJgLlxuICogQHBhcmFtIGRlc3RpbmF0aW9uIFRoZSBkb3duc3RyZWFtIHN1YnNjcmliZXIuXG4gKiBAcGFyYW0gb25OZXh0IEhhbmRsZXMgbmV4dCB2YWx1ZXMsIG9ubHkgY2FsbGVkIGlmIHRoaXMgc3Vic2NyaWJlciBpcyBub3Qgc3RvcHBlZCBvciBjbG9zZWQuIEFueVxuICogZXJyb3IgdGhhdCBvY2N1cnMgaW4gdGhpcyBmdW5jdGlvbiBpcyBjYXVnaHQgYW5kIHNlbnQgdG8gdGhlIGBlcnJvcmAgbWV0aG9kIG9mIHRoaXMgc3Vic2NyaWJlci5cbiAqIEBwYXJhbSBvbkVycm9yIEhhbmRsZXMgZXJyb3JzIGZyb20gdGhlIHN1YnNjcmlwdGlvbiwgYW55IGVycm9ycyB0aGF0IG9jY3VyIGluIHRoaXMgaGFuZGxlciBhcmUgY2F1Z2h0XG4gKiBhbmQgc2VuZCB0byB0aGUgYGRlc3RpbmF0aW9uYCBlcnJvciBoYW5kbGVyLlxuICogQHBhcmFtIG9uQ29tcGxldGUgSGFuZGxlcyBjb21wbGV0aW9uIG5vdGlmaWNhdGlvbiBmcm9tIHRoZSBzdWJzY3JpcHRpb24uIEFueSBlcnJvcnMgdGhhdCBvY2N1ciBpblxuICogdGhpcyBoYW5kbGVyIGFyZSBzZW50IHRvIHRoZSBgZGVzdGluYXRpb25gIGVycm9yIGhhbmRsZXIuXG4gKiBAcGFyYW0gb25GaW5hbGl6ZSBBZGRpdGlvbmFsIHRlYXJkb3duIGxvZ2ljIGhlcmUuIFRoaXMgd2lsbCBvbmx5IGJlIGNhbGxlZCBvbiB0ZWFyZG93biBpZiB0aGVcbiAqIHN1YnNjcmliZXIgaXRzZWxmIGlzIG5vdCBhbHJlYWR5IGNsb3NlZC4gVGhpcyBpcyBjYWxsZWQgYWZ0ZXIgYWxsIG90aGVyIHRlYXJkb3duIGxvZ2ljIGlzIGV4ZWN1dGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyPFQ+KFxuICBkZXN0aW5hdGlvbjogU3Vic2NyaWJlcjxhbnk+LFxuICBvbk5leHQ/OiAodmFsdWU6IFQpID0+IHZvaWQsXG4gIG9uQ29tcGxldGU/OiAoKSA9PiB2b2lkLFxuICBvbkVycm9yPzogKGVycjogYW55KSA9PiB2b2lkLFxuICBvbkZpbmFsaXplPzogKCkgPT4gdm9pZFxuKTogU3Vic2NyaWJlcjxUPiB7XG4gIHJldHVybiBuZXcgT3BlcmF0b3JTdWJzY3JpYmVyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUpO1xufVxuXG4vKipcbiAqIEEgZ2VuZXJpYyBoZWxwZXIgZm9yIGFsbG93aW5nIG9wZXJhdG9ycyB0byBiZSBjcmVhdGVkIHdpdGggYSBTdWJzY3JpYmVyIGFuZFxuICogdXNlIGNsb3N1cmVzIHRvIGNhcHR1cmUgbmVjZXNzYXJ5IHN0YXRlIGZyb20gdGhlIG9wZXJhdG9yIGZ1bmN0aW9uIGl0c2VsZi5cbiAqL1xuZXhwb3J0IGNsYXNzIE9wZXJhdG9yU3Vic2NyaWJlcjxUPiBleHRlbmRzIFN1YnNjcmliZXI8VD4ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBhbiBgT3BlcmF0b3JTdWJzY3JpYmVyYC5cbiAgICogQHBhcmFtIGRlc3RpbmF0aW9uIFRoZSBkb3duc3RyZWFtIHN1YnNjcmliZXIuXG4gICAqIEBwYXJhbSBvbk5leHQgSGFuZGxlcyBuZXh0IHZhbHVlcywgb25seSBjYWxsZWQgaWYgdGhpcyBzdWJzY3JpYmVyIGlzIG5vdCBzdG9wcGVkIG9yIGNsb3NlZC4gQW55XG4gICAqIGVycm9yIHRoYXQgb2NjdXJzIGluIHRoaXMgZnVuY3Rpb24gaXMgY2F1Z2h0IGFuZCBzZW50IHRvIHRoZSBgZXJyb3JgIG1ldGhvZCBvZiB0aGlzIHN1YnNjcmliZXIuXG4gICAqIEBwYXJhbSBvbkVycm9yIEhhbmRsZXMgZXJyb3JzIGZyb20gdGhlIHN1YnNjcmlwdGlvbiwgYW55IGVycm9ycyB0aGF0IG9jY3VyIGluIHRoaXMgaGFuZGxlciBhcmUgY2F1Z2h0XG4gICAqIGFuZCBzZW5kIHRvIHRoZSBgZGVzdGluYXRpb25gIGVycm9yIGhhbmRsZXIuXG4gICAqIEBwYXJhbSBvbkNvbXBsZXRlIEhhbmRsZXMgY29tcGxldGlvbiBub3RpZmljYXRpb24gZnJvbSB0aGUgc3Vic2NyaXB0aW9uLiBBbnkgZXJyb3JzIHRoYXQgb2NjdXIgaW5cbiAgICogdGhpcyBoYW5kbGVyIGFyZSBzZW50IHRvIHRoZSBgZGVzdGluYXRpb25gIGVycm9yIGhhbmRsZXIuXG4gICAqIEBwYXJhbSBvbkZpbmFsaXplIEFkZGl0aW9uYWwgZmluYWxpemF0aW9uIGxvZ2ljIGhlcmUuIFRoaXMgd2lsbCBvbmx5IGJlIGNhbGxlZCBvbiBmaW5hbGl6YXRpb24gaWYgdGhlXG4gICAqIHN1YnNjcmliZXIgaXRzZWxmIGlzIG5vdCBhbHJlYWR5IGNsb3NlZC4gVGhpcyBpcyBjYWxsZWQgYWZ0ZXIgYWxsIG90aGVyIGZpbmFsaXphdGlvbiBsb2dpYyBpcyBleGVjdXRlZC5cbiAgICogQHBhcmFtIHNob3VsZFVuc3Vic2NyaWJlIEFuIG9wdGlvbmFsIGNoZWNrIHRvIHNlZSBpZiBhbiB1bnN1YnNjcmliZSBjYWxsIHNob3VsZCB0cnVseSB1bnN1YnNjcmliZS5cbiAgICogTk9URTogVGhpcyBjdXJyZW50bHkgKipPTkxZKiogZXhpc3RzIHRvIHN1cHBvcnQgdGhlIHN0cmFuZ2UgYmVoYXZpb3Igb2Yge0BsaW5rIGdyb3VwQnl9LCB3aGVyZSB1bnN1YnNjcmlwdGlvblxuICAgKiB0byB0aGUgcmVzdWx0aW5nIG9ic2VydmFibGUgZG9lcyBub3QgYWN0dWFsbHkgZGlzY29ubmVjdCBmcm9tIHRoZSBzb3VyY2UgaWYgdGhlcmUgYXJlIGFjdGl2ZSBzdWJzY3JpcHRpb25zXG4gICAqIHRvIGFueSBncm91cGVkIG9ic2VydmFibGUuIChETyBOT1QgRVhQT1NFIE9SIFVTRSBFWFRFUk5BTExZISEhKVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgZGVzdGluYXRpb246IFN1YnNjcmliZXI8YW55PixcbiAgICBvbk5leHQ/OiAodmFsdWU6IFQpID0+IHZvaWQsXG4gICAgb25Db21wbGV0ZT86ICgpID0+IHZvaWQsXG4gICAgb25FcnJvcj86IChlcnI6IGFueSkgPT4gdm9pZCxcbiAgICBwcml2YXRlIG9uRmluYWxpemU/OiAoKSA9PiB2b2lkLFxuICAgIHByaXZhdGUgc2hvdWxkVW5zdWJzY3JpYmU/OiAoKSA9PiBib29sZWFuXG4gICkge1xuICAgIC8vIEl0J3MgaW1wb3J0YW50IC0gZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgLSB0aGF0IGFsbCBvZiB0aGlzIGNsYXNzJ3NcbiAgICAvLyBtZW1iZXJzIGFyZSBpbml0aWFsaXplZCBhbmQgdGhhdCB0aGV5IGFyZSBhbHdheXMgaW5pdGlhbGl6ZWQgaW4gdGhlIHNhbWVcbiAgICAvLyBvcmRlci4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IGFsbCBPcGVyYXRvclN1YnNjcmliZXIgaW5zdGFuY2VzIGhhdmUgdGhlXG4gICAgLy8gc2FtZSBoaWRkZW4gY2xhc3MgaW4gVjguIFRoaXMsIGluIHR1cm4sIHdpbGwgaGVscCBrZWVwIHRoZSBudW1iZXIgb2ZcbiAgICAvLyBoaWRkZW4gY2xhc3NlcyBpbnZvbHZlZCBpbiBwcm9wZXJ0eSBhY2Nlc3NlcyB3aXRoaW4gdGhlIGJhc2UgY2xhc3MgYXNcbiAgICAvLyBsb3cgYXMgcG9zc2libGUuIElmIHRoZSBudW1iZXIgb2YgaGlkZGVuIGNsYXNzZXMgaW52b2x2ZWQgZXhjZWVkcyBmb3VyLFxuICAgIC8vIHRoZSBwcm9wZXJ0eSBhY2Nlc3NlcyB3aWxsIGJlY29tZSBtZWdhbW9ycGhpYyBhbmQgcGVyZm9ybWFuY2UgcGVuYWx0aWVzXG4gICAgLy8gd2lsbCBiZSBpbmN1cnJlZCAtIGkuZS4gaW5saW5lIGNhY2hlcyB3b24ndCBiZSB1c2VkLlxuICAgIC8vXG4gICAgLy8gVGhlIHJlYXNvbnMgZm9yIGVuc3VyaW5nIGFsbCBpbnN0YW5jZXMgaGF2ZSB0aGUgc2FtZSBoaWRkZW4gY2xhc3MgYXJlXG4gICAgLy8gZnVydGhlciBkaXNjdXNzZWQgaW4gdGhpcyBibG9nIHBvc3QgZnJvbSBCZW5lZGlrdCBNZXVyZXI6XG4gICAgLy8gaHR0cHM6Ly9iZW5lZGlrdG1ldXJlci5kZS8yMDE4LzAzLzIzL2ltcGFjdC1vZi1wb2x5bW9ycGhpc20tb24tY29tcG9uZW50LWJhc2VkLWZyYW1ld29ya3MtbGlrZS1yZWFjdC9cbiAgICBzdXBlcihkZXN0aW5hdGlvbik7XG4gICAgdGhpcy5fbmV4dCA9IG9uTmV4dFxuICAgICAgPyBmdW5jdGlvbiAodGhpczogT3BlcmF0b3JTdWJzY3JpYmVyPFQ+LCB2YWx1ZTogVCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBvbk5leHQodmFsdWUpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgZGVzdGluYXRpb24uZXJyb3IoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDogc3VwZXIuX25leHQ7XG4gICAgdGhpcy5fZXJyb3IgPSBvbkVycm9yXG4gICAgICA/IGZ1bmN0aW9uICh0aGlzOiBPcGVyYXRvclN1YnNjcmliZXI8VD4sIGVycjogYW55KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIG9uRXJyb3IoZXJyKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIFNlbmQgYW55IGVycm9ycyB0aGF0IG9jY3VyIGRvd24gc3RyZWFtLlxuICAgICAgICAgICAgZGVzdGluYXRpb24uZXJyb3IoZXJyKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgLy8gRW5zdXJlIGZpbmFsaXphdGlvbi5cbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDogc3VwZXIuX2Vycm9yO1xuICAgIHRoaXMuX2NvbXBsZXRlID0gb25Db21wbGV0ZVxuICAgICAgPyBmdW5jdGlvbiAodGhpczogT3BlcmF0b3JTdWJzY3JpYmVyPFQ+KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIFNlbmQgYW55IGVycm9ycyB0aGF0IG9jY3VyIGRvd24gc3RyZWFtLlxuICAgICAgICAgICAgZGVzdGluYXRpb24uZXJyb3IoZXJyKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgLy8gRW5zdXJlIGZpbmFsaXphdGlvbi5cbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDogc3VwZXIuX2NvbXBsZXRlO1xuICB9XG5cbiAgdW5zdWJzY3JpYmUoKSB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFVuc3Vic2NyaWJlIHx8IHRoaXMuc2hvdWxkVW5zdWJzY3JpYmUoKSkge1xuICAgICAgY29uc3QgeyBjbG9zZWQgfSA9IHRoaXM7XG4gICAgICBzdXBlci51bnN1YnNjcmliZSgpO1xuICAgICAgLy8gRXhlY3V0ZSBhZGRpdGlvbmFsIHRlYXJkb3duIGlmIHdlIGhhdmUgYW55IGFuZCB3ZSBkaWRuJ3QgYWxyZWFkeSBkbyBzby5cbiAgICAgICFjbG9zZWQgJiYgdGhpcy5vbkZpbmFsaXplPy4oKTtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBDb25uZWN0YWJsZU9ic2VydmFibGUgfSBmcm9tICcuLi9vYnNlcnZhYmxlL0Nvbm5lY3RhYmxlT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICcuLi9TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5cbi8qKlxuICogTWFrZSBhIHtAbGluayBDb25uZWN0YWJsZU9ic2VydmFibGV9IGJlaGF2ZSBsaWtlIGEgb3JkaW5hcnkgb2JzZXJ2YWJsZSBhbmQgYXV0b21hdGVzIHRoZSB3YXlcbiAqIHlvdSBjYW4gY29ubmVjdCB0byBpdC5cbiAqXG4gKiBJbnRlcm5hbGx5IGl0IGNvdW50cyB0aGUgc3Vic2NyaXB0aW9ucyB0byB0aGUgb2JzZXJ2YWJsZSBhbmQgc3Vic2NyaWJlcyAob25seSBvbmNlKSB0byB0aGUgc291cmNlIGlmXG4gKiB0aGUgbnVtYmVyIG9mIHN1YnNjcmlwdGlvbnMgaXMgbGFyZ2VyIHRoYW4gMC4gSWYgdGhlIG51bWJlciBvZiBzdWJzY3JpcHRpb25zIGlzIHNtYWxsZXIgdGhhbiAxLCBpdFxuICogdW5zdWJzY3JpYmVzIGZyb20gdGhlIHNvdXJjZS4gVGhpcyB3YXkgeW91IGNhbiBtYWtlIHN1cmUgdGhhdCBldmVyeXRoaW5nIGJlZm9yZSB0aGUgKnB1Ymxpc2hlZCpcbiAqIHJlZkNvdW50IGhhcyBvbmx5IGEgc2luZ2xlIHN1YnNjcmlwdGlvbiBpbmRlcGVuZGVudGx5IG9mIHRoZSBudW1iZXIgb2Ygc3Vic2NyaWJlcnMgdG8gdGhlIHRhcmdldFxuICogb2JzZXJ2YWJsZS5cbiAqXG4gKiBOb3RlIHRoYXQgdXNpbmcgdGhlIHtAbGluayBzaGFyZX0gb3BlcmF0b3IgaXMgZXhhY3RseSB0aGUgc2FtZSBhcyB1c2luZyB0aGUgYG11bHRpY2FzdCgoKSA9PiBuZXcgU3ViamVjdCgpKWAgb3BlcmF0b3JcbiAqIChtYWtpbmcgdGhlIG9ic2VydmFibGUgaG90KSBhbmQgdGhlICpyZWZDb3VudCogb3BlcmF0b3IgaW4gYSBzZXF1ZW5jZS5cbiAqXG4gKiAhW10ocmVmQ291bnQucG5nKVxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBJbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUgdGhlcmUgYXJlIHR3byBpbnRlcnZhbHMgdHVybmVkIGludG8gY29ubmVjdGFibGUgb2JzZXJ2YWJsZXNcbiAqIGJ5IHVzaW5nIHRoZSAqcHVibGlzaCogb3BlcmF0b3IuIFRoZSBmaXJzdCBvbmUgdXNlcyB0aGUgKnJlZkNvdW50KiBvcGVyYXRvciwgdGhlXG4gKiBzZWNvbmQgb25lIGRvZXMgbm90IHVzZSBpdC4gWW91IHdpbGwgbm90aWNlIHRoYXQgYSBjb25uZWN0YWJsZSBvYnNlcnZhYmxlIGRvZXMgbm90aGluZ1xuICogdW50aWwgeW91IGNhbGwgaXRzIGNvbm5lY3QgZnVuY3Rpb24uXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCB0YXAsIHB1Ymxpc2gsIHJlZkNvdW50IH0gZnJvbSAncnhqcyc7XG4gKlxuICogLy8gVHVybiB0aGUgaW50ZXJ2YWwgb2JzZXJ2YWJsZSBpbnRvIGEgQ29ubmVjdGFibGVPYnNlcnZhYmxlIChob3QpXG4gKiBjb25zdCByZWZDb3VudEludGVydmFsID0gaW50ZXJ2YWwoNDAwKS5waXBlKFxuICogICB0YXAobnVtID0+IGNvbnNvbGUubG9nKGByZWZDb3VudCAkeyBudW0gfWApKSxcbiAqICAgcHVibGlzaCgpLFxuICogICByZWZDb3VudCgpXG4gKiApO1xuICpcbiAqIGNvbnN0IHB1Ymxpc2hlZEludGVydmFsID0gaW50ZXJ2YWwoNDAwKS5waXBlKFxuICogICB0YXAobnVtID0+IGNvbnNvbGUubG9nKGBwdWJsaXNoICR7IG51bSB9YCkpLFxuICogICBwdWJsaXNoKClcbiAqICk7XG4gKlxuICogcmVmQ291bnRJbnRlcnZhbC5zdWJzY3JpYmUoKTtcbiAqIHJlZkNvdW50SW50ZXJ2YWwuc3Vic2NyaWJlKCk7XG4gKiAvLyAncmVmQ291bnQgMCcgLS0tLS0+ICdyZWZDb3VudCAxJyAtLS0tLT4gZXRjXG4gKiAvLyBBbGwgc3Vic2NyaXB0aW9ucyB3aWxsIHJlY2VpdmUgdGhlIHNhbWUgdmFsdWUgYW5kIHRoZSB0YXAgKGFuZFxuICogLy8gZXZlcnkgb3RoZXIgb3BlcmF0b3IpIGJlZm9yZSB0aGUgYHB1Ymxpc2hgIG9wZXJhdG9yIHdpbGwgYmUgZXhlY3V0ZWRcbiAqIC8vIG9ubHkgb25jZSBwZXIgZXZlbnQgaW5kZXBlbmRlbnRseSBvZiB0aGUgbnVtYmVyIG9mIHN1YnNjcmlwdGlvbnMuXG4gKlxuICogcHVibGlzaGVkSW50ZXJ2YWwuc3Vic2NyaWJlKCk7XG4gKiAvLyBOb3RoaW5nIGhhcHBlbnMgdW50aWwgeW91IGNhbGwgLmNvbm5lY3QoKSBvbiB0aGUgb2JzZXJ2YWJsZS5cbiAqIGBgYFxuICpcbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGF1dG9tYXRlcyB0aGUgY29ubmVjdGlvblxuICogdG8gQ29ubmVjdGFibGVPYnNlcnZhYmxlLlxuICogQHNlZSB7QGxpbmsgQ29ubmVjdGFibGVPYnNlcnZhYmxlfVxuICogQHNlZSB7QGxpbmsgc2hhcmV9XG4gKiBAc2VlIHtAbGluayBwdWJsaXNofVxuICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgd2l0aCB0aGUge0BsaW5rIHNoYXJlfSBvcGVyYXRvci4gSG93IGBzaGFyZWAgaXMgdXNlZFxuICogd2lsbCBkZXBlbmQgb24gdGhlIGNvbm5lY3RhYmxlIG9ic2VydmFibGUgeW91IGNyZWF0ZWQganVzdCBwcmlvciB0byB0aGVcbiAqIGByZWZDb3VudGAgb3BlcmF0b3IuXG4gKiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9tdWx0aWNhc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZkNvdW50PFQ+KCk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBsZXQgY29ubmVjdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICAoc291cmNlIGFzIGFueSkuX3JlZkNvdW50Kys7XG5cbiAgICBjb25zdCByZWZDb3VudGVyID0gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsICgpID0+IHtcbiAgICAgIGlmICghc291cmNlIHx8IChzb3VyY2UgYXMgYW55KS5fcmVmQ291bnQgPD0gMCB8fCAwIDwgLS0oc291cmNlIGFzIGFueSkuX3JlZkNvdW50KSB7XG4gICAgICAgIGNvbm5lY3Rpb24gPSBudWxsO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vL1xuICAgICAgLy8gQ29tcGFyZSB0aGUgbG9jYWwgUmVmQ291bnRTdWJzY3JpYmVyJ3MgY29ubmVjdGlvbiBTdWJzY3JpcHRpb24gdG8gdGhlXG4gICAgICAvLyBjb25uZWN0aW9uIFN1YnNjcmlwdGlvbiBvbiB0aGUgc2hhcmVkIENvbm5lY3RhYmxlT2JzZXJ2YWJsZS4gSW4gY2FzZXNcbiAgICAgIC8vIHdoZXJlIHRoZSBDb25uZWN0YWJsZU9ic2VydmFibGUgc291cmNlIHN5bmNocm9ub3VzbHkgZW1pdHMgdmFsdWVzLCBhbmRcbiAgICAgIC8vIHRoZSBSZWZDb3VudFN1YnNjcmliZXIncyBkb3duc3RyZWFtIE9ic2VydmVycyBzeW5jaHJvbm91c2x5IHVuc3Vic2NyaWJlLFxuICAgICAgLy8gZXhlY3V0aW9uIGNvbnRpbnVlcyB0byBoZXJlIGJlZm9yZSB0aGUgUmVmQ291bnRPcGVyYXRvciBoYXMgYSBjaGFuY2UgdG9cbiAgICAgIC8vIHN1cHBseSB0aGUgUmVmQ291bnRTdWJzY3JpYmVyIHdpdGggdGhlIHNoYXJlZCBjb25uZWN0aW9uIFN1YnNjcmlwdGlvbi5cbiAgICAgIC8vIEZvciBleGFtcGxlOlxuICAgICAgLy8gYGBgXG4gICAgICAvLyByYW5nZSgwLCAxMCkucGlwZShcbiAgICAgIC8vICAgcHVibGlzaCgpLFxuICAgICAgLy8gICByZWZDb3VudCgpLFxuICAgICAgLy8gICB0YWtlKDUpLFxuICAgICAgLy8gKVxuICAgICAgLy8gLnN1YnNjcmliZSgpO1xuICAgICAgLy8gYGBgXG4gICAgICAvLyBJbiBvcmRlciB0byBhY2NvdW50IGZvciB0aGlzIGNhc2UsIFJlZkNvdW50U3Vic2NyaWJlciBzaG91bGQgb25seSBkaXNwb3NlXG4gICAgICAvLyB0aGUgQ29ubmVjdGFibGVPYnNlcnZhYmxlJ3Mgc2hhcmVkIGNvbm5lY3Rpb24gU3Vic2NyaXB0aW9uIGlmIHRoZVxuICAgICAgLy8gY29ubmVjdGlvbiBTdWJzY3JpcHRpb24gZXhpc3RzLCAqYW5kKiBlaXRoZXI6XG4gICAgICAvLyAgIGEuIFJlZkNvdW50U3Vic2NyaWJlciBkb2Vzbid0IGhhdmUgYSByZWZlcmVuY2UgdG8gdGhlIHNoYXJlZCBjb25uZWN0aW9uXG4gICAgICAvLyAgICAgIFN1YnNjcmlwdGlvbiB5ZXQsIG9yLFxuICAgICAgLy8gICBiLiBSZWZDb3VudFN1YnNjcmliZXIncyBjb25uZWN0aW9uIFN1YnNjcmlwdGlvbiByZWZlcmVuY2UgaXMgaWRlbnRpY2FsXG4gICAgICAvLyAgICAgIHRvIHRoZSBzaGFyZWQgY29ubmVjdGlvbiBTdWJzY3JpcHRpb25cbiAgICAgIC8vL1xuXG4gICAgICBjb25zdCBzaGFyZWRDb25uZWN0aW9uID0gKHNvdXJjZSBhcyBhbnkpLl9jb25uZWN0aW9uO1xuICAgICAgY29uc3QgY29ubiA9IGNvbm5lY3Rpb247XG4gICAgICBjb25uZWN0aW9uID0gbnVsbDtcblxuICAgICAgaWYgKHNoYXJlZENvbm5lY3Rpb24gJiYgKCFjb25uIHx8IHNoYXJlZENvbm5lY3Rpb24gPT09IGNvbm4pKSB7XG4gICAgICAgIHNoYXJlZENvbm5lY3Rpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cblxuICAgICAgc3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuXG4gICAgc291cmNlLnN1YnNjcmliZShyZWZDb3VudGVyKTtcblxuICAgIGlmICghcmVmQ291bnRlci5jbG9zZWQpIHtcbiAgICAgIGNvbm5lY3Rpb24gPSAoc291cmNlIGFzIENvbm5lY3RhYmxlT2JzZXJ2YWJsZTxUPikuY29ubmVjdCgpO1xuICAgIH1cbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJy4uL1N1YmplY3QnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgU3Vic2NyaWJlciB9IGZyb20gJy4uL1N1YnNjcmliZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IHJlZkNvdW50IGFzIGhpZ2hlck9yZGVyUmVmQ291bnQgfSBmcm9tICcuLi9vcGVyYXRvcnMvcmVmQ291bnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi4vb3BlcmF0b3JzL09wZXJhdG9yU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBoYXNMaWZ0IH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcblxuLyoqXG4gKiBAY2xhc3MgQ29ubmVjdGFibGVPYnNlcnZhYmxlPFQ+XG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSB7QGxpbmsgY29ubmVjdGFibGV9IHRvIGNyZWF0ZSBhIGNvbm5lY3RhYmxlIG9ic2VydmFibGUuXG4gKiBJZiB5b3UgYXJlIHVzaW5nIHRoZSBgcmVmQ291bnRgIG1ldGhvZCBvZiBgQ29ubmVjdGFibGVPYnNlcnZhYmxlYCwgdXNlIHRoZSB7QGxpbmsgc2hhcmV9IG9wZXJhdG9yXG4gKiBpbnN0ZWFkLlxuICogRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvbXVsdGljYXN0aW5nXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25uZWN0YWJsZU9ic2VydmFibGU8VD4gZXh0ZW5kcyBPYnNlcnZhYmxlPFQ+IHtcbiAgcHJvdGVjdGVkIF9zdWJqZWN0OiBTdWJqZWN0PFQ+IHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBfcmVmQ291bnQ6IG51bWJlciA9IDA7XG4gIHByb3RlY3RlZCBfY29ubmVjdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYnNlcnZhYmxlXG4gICAqIEBwYXJhbSBzdWJqZWN0RmFjdG9yeSBUaGUgZmFjdG9yeSB0aGF0IGNyZWF0ZXMgdGhlIHN1YmplY3QgdXNlZCBpbnRlcm5hbGx5LlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSB7QGxpbmsgY29ubmVjdGFibGV9IHRvIGNyZWF0ZSBhIGNvbm5lY3RhYmxlIG9ic2VydmFibGUuXG4gICAqIGBuZXcgQ29ubmVjdGFibGVPYnNlcnZhYmxlKHNvdXJjZSwgZmFjdG9yeSlgIGlzIGVxdWl2YWxlbnQgdG9cbiAgICogYGNvbm5lY3RhYmxlKHNvdXJjZSwgeyBjb25uZWN0b3I6IGZhY3RvcnkgfSlgLlxuICAgKiBXaGVuIHRoZSBgcmVmQ291bnQoKWAgbWV0aG9kIGlzIG5lZWRlZCwgdGhlIHtAbGluayBzaGFyZX0gb3BlcmF0b3Igc2hvdWxkIGJlIHVzZWQgaW5zdGVhZDpcbiAgICogYG5ldyBDb25uZWN0YWJsZU9ic2VydmFibGUoc291cmNlLCBmYWN0b3J5KS5yZWZDb3VudCgpYCBpcyBlcXVpdmFsZW50IHRvXG4gICAqIGBzb3VyY2UucGlwZShzaGFyZSh7IGNvbm5lY3RvcjogZmFjdG9yeSB9KSlgLlxuICAgKiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9tdWx0aWNhc3RpbmdcbiAgICovXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzb3VyY2U6IE9ic2VydmFibGU8VD4sIHByb3RlY3RlZCBzdWJqZWN0RmFjdG9yeTogKCkgPT4gU3ViamVjdDxUPikge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gSWYgd2UgaGF2ZSBsaWZ0LCBtb25rZXkgcGF0Y2ggdGhhdCBoZXJlLiBUaGlzIGlzIGRvbmUgc28gY3VzdG9tIG9ic2VydmFibGVcbiAgICAvLyB0eXBlcyB3aWxsIGNvbXBvc2UgdGhyb3VnaCBtdWx0aWNhc3QuIE90aGVyd2lzZSB0aGUgcmVzdWx0aW5nIG9ic2VydmFibGUgd291bGRcbiAgICAvLyBzaW1wbHkgYmUgYW4gaW5zdGFuY2Ugb2YgYENvbm5lY3RhYmxlT2JzZXJ2YWJsZWAuXG4gICAgaWYgKGhhc0xpZnQoc291cmNlKSkge1xuICAgICAgdGhpcy5saWZ0ID0gc291cmNlLmxpZnQ7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgX3N1YnNjcmliZShzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFQ+KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3ViamVjdCgpLnN1YnNjcmliZShzdWJzY3JpYmVyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRTdWJqZWN0KCk6IFN1YmplY3Q8VD4ge1xuICAgIGNvbnN0IHN1YmplY3QgPSB0aGlzLl9zdWJqZWN0O1xuICAgIGlmICghc3ViamVjdCB8fCBzdWJqZWN0LmlzU3RvcHBlZCkge1xuICAgICAgdGhpcy5fc3ViamVjdCA9IHRoaXMuc3ViamVjdEZhY3RvcnkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3N1YmplY3QhO1xuICB9XG5cbiAgcHJvdGVjdGVkIF90ZWFyZG93bigpIHtcbiAgICB0aGlzLl9yZWZDb3VudCA9IDA7XG4gICAgY29uc3QgeyBfY29ubmVjdGlvbiB9ID0gdGhpcztcbiAgICB0aGlzLl9zdWJqZWN0ID0gdGhpcy5fY29ubmVjdGlvbiA9IG51bGw7XG4gICAgX2Nvbm5lY3Rpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQge0BsaW5rIENvbm5lY3RhYmxlT2JzZXJ2YWJsZX0gd2lsbCBiZSByZW1vdmVkIGluIHY4LiBVc2Uge0BsaW5rIGNvbm5lY3RhYmxlfSBpbnN0ZWFkLlxuICAgKiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9tdWx0aWNhc3RpbmdcbiAgICovXG4gIGNvbm5lY3QoKTogU3Vic2NyaXB0aW9uIHtcbiAgICBsZXQgY29ubmVjdGlvbiA9IHRoaXMuX2Nvbm5lY3Rpb247XG4gICAgaWYgKCFjb25uZWN0aW9uKSB7XG4gICAgICBjb25uZWN0aW9uID0gdGhpcy5fY29ubmVjdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICAgIGNvbnN0IHN1YmplY3QgPSB0aGlzLmdldFN1YmplY3QoKTtcbiAgICAgIGNvbm5lY3Rpb24uYWRkKFxuICAgICAgICB0aGlzLnNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICAgICAgc3ViamVjdCBhcyBhbnksXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX3RlYXJkb3duKCk7XG4gICAgICAgICAgICAgIHN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX3RlYXJkb3duKCk7XG4gICAgICAgICAgICAgIHN1YmplY3QuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB0aGlzLl90ZWFyZG93bigpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgICBpZiAoY29ubmVjdGlvbi5jbG9zZWQpIHtcbiAgICAgICAgdGhpcy5fY29ubmVjdGlvbiA9IG51bGw7XG4gICAgICAgIGNvbm5lY3Rpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb25uZWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHtAbGluayBDb25uZWN0YWJsZU9ic2VydmFibGV9IHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVXNlIHRoZSB7QGxpbmsgc2hhcmV9IG9wZXJhdG9yIGluc3RlYWQuXG4gICAqIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL211bHRpY2FzdGluZ1xuICAgKi9cbiAgcmVmQ291bnQoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIGhpZ2hlck9yZGVyUmVmQ291bnQoKSh0aGlzKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG59XG4iLCAiaW1wb3J0IHsgVGltZXN0YW1wUHJvdmlkZXIgfSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBQZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyIGV4dGVuZHMgVGltZXN0YW1wUHJvdmlkZXIge1xuICBkZWxlZ2F0ZTogVGltZXN0YW1wUHJvdmlkZXIgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBwZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyOiBQZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyID0ge1xuICBub3coKSB7XG4gICAgLy8gVXNlIHRoZSB2YXJpYWJsZSByYXRoZXIgdGhhbiBgdGhpc2Agc28gdGhhdCB0aGUgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZFxuICAgIC8vIHdpdGhvdXQgYmVpbmcgYm91bmQgdG8gdGhlIHByb3ZpZGVyLlxuICAgIHJldHVybiAocGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlci5kZWxlZ2F0ZSB8fCBwZXJmb3JtYW5jZSkubm93KCk7XG4gIH0sXG4gIGRlbGVnYXRlOiB1bmRlZmluZWQsXG59O1xuIiwgImltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG5cbmludGVyZmFjZSBBbmltYXRpb25GcmFtZVByb3ZpZGVyIHtcbiAgc2NoZWR1bGUoY2FsbGJhY2s6IEZyYW1lUmVxdWVzdENhbGxiYWNrKTogU3Vic2NyaXB0aW9uO1xuICByZXF1ZXN0QW5pbWF0aW9uRnJhbWU6IHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU7XG4gIGNhbmNlbEFuaW1hdGlvbkZyYW1lOiB0eXBlb2YgY2FuY2VsQW5pbWF0aW9uRnJhbWU7XG4gIGRlbGVnYXRlOlxuICAgIHwge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWU6IHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lOiB0eXBlb2YgY2FuY2VsQW5pbWF0aW9uRnJhbWU7XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBhbmltYXRpb25GcmFtZVByb3ZpZGVyOiBBbmltYXRpb25GcmFtZVByb3ZpZGVyID0ge1xuICAvLyBXaGVuIGFjY2Vzc2luZyB0aGUgZGVsZWdhdGUsIHVzZSB0aGUgdmFyaWFibGUgcmF0aGVyIHRoYW4gYHRoaXNgIHNvIHRoYXRcbiAgLy8gdGhlIGZ1bmN0aW9ucyBjYW4gYmUgY2FsbGVkIHdpdGhvdXQgYmVpbmcgYm91bmQgdG8gdGhlIHByb3ZpZGVyLlxuICBzY2hlZHVsZShjYWxsYmFjaykge1xuICAgIGxldCByZXF1ZXN0ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lO1xuICAgIGxldCBjYW5jZWw6IHR5cGVvZiBjYW5jZWxBbmltYXRpb25GcmFtZSB8IHVuZGVmaW5lZCA9IGNhbmNlbEFuaW1hdGlvbkZyYW1lO1xuICAgIGNvbnN0IHsgZGVsZWdhdGUgfSA9IGFuaW1hdGlvbkZyYW1lUHJvdmlkZXI7XG4gICAgaWYgKGRlbGVnYXRlKSB7XG4gICAgICByZXF1ZXN0ID0gZGVsZWdhdGUucmVxdWVzdEFuaW1hdGlvbkZyYW1lO1xuICAgICAgY2FuY2VsID0gZGVsZWdhdGUuY2FuY2VsQW5pbWF0aW9uRnJhbWU7XG4gICAgfVxuICAgIGNvbnN0IGhhbmRsZSA9IHJlcXVlc3QoKHRpbWVzdGFtcCkgPT4ge1xuICAgICAgLy8gQ2xlYXIgdGhlIGNhbmNlbCBmdW5jdGlvbi4gVGhlIHJlcXVlc3QgaGFzIGJlZW4gZnVsZmlsbGVkLCBzb1xuICAgICAgLy8gYXR0ZW1wdGluZyB0byBjYW5jZWwgdGhlIHJlcXVlc3QgdXBvbiB1bnN1YnNjcmlwdGlvbiB3b3VsZCBiZVxuICAgICAgLy8gcG9pbnRsZXNzLlxuICAgICAgY2FuY2VsID0gdW5kZWZpbmVkO1xuICAgICAgY2FsbGJhY2sodGltZXN0YW1wKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbigoKSA9PiBjYW5jZWw/LihoYW5kbGUpKTtcbiAgfSxcbiAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKC4uLmFyZ3MpIHtcbiAgICBjb25zdCB7IGRlbGVnYXRlIH0gPSBhbmltYXRpb25GcmFtZVByb3ZpZGVyO1xuICAgIHJldHVybiAoZGVsZWdhdGU/LnJlcXVlc3RBbmltYXRpb25GcmFtZSB8fCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUpKC4uLmFyZ3MpO1xuICB9LFxuICBjYW5jZWxBbmltYXRpb25GcmFtZSguLi5hcmdzKSB7XG4gICAgY29uc3QgeyBkZWxlZ2F0ZSB9ID0gYW5pbWF0aW9uRnJhbWVQcm92aWRlcjtcbiAgICByZXR1cm4gKGRlbGVnYXRlPy5jYW5jZWxBbmltYXRpb25GcmFtZSB8fCBjYW5jZWxBbmltYXRpb25GcmFtZSkoLi4uYXJncyk7XG4gIH0sXG4gIGRlbGVnYXRlOiB1bmRlZmluZWQsXG59O1xuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi8uLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IFRpbWVzdGFtcFByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgcGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlciB9IGZyb20gJy4uLy4uL3NjaGVkdWxlci9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyJztcbmltcG9ydCB7IGFuaW1hdGlvbkZyYW1lUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9zY2hlZHVsZXIvYW5pbWF0aW9uRnJhbWVQcm92aWRlcic7XG5cbi8qKlxuICogQW4gb2JzZXJ2YWJsZSBvZiBhbmltYXRpb24gZnJhbWVzXG4gKlxuICogRW1pdHMgdGhlIGFtb3VudCBvZiB0aW1lIGVsYXBzZWQgc2luY2Ugc3Vic2NyaXB0aW9uIGFuZCB0aGUgdGltZXN0YW1wIG9uIGVhY2ggYW5pbWF0aW9uIGZyYW1lLlxuICogRGVmYXVsdHMgdG8gbWlsbGlzZWNvbmRzIHByb3ZpZGVkIHRvIHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUncyBjYWxsYmFjay4gRG9lcyBub3QgZW5kIG9uIGl0cyBvd24uXG4gKlxuICogRXZlcnkgc3Vic2NyaXB0aW9uIHdpbGwgc3RhcnQgYSBzZXBhcmF0ZSBhbmltYXRpb24gbG9vcC4gU2luY2UgYW5pbWF0aW9uIGZyYW1lcyBhcmUgYWx3YXlzIHNjaGVkdWxlZFxuICogYnkgdGhlIGJyb3dzZXIgdG8gb2NjdXIgZGlyZWN0bHkgYmVmb3JlIGEgcmVwYWludCwgc2NoZWR1bGluZyBtb3JlIHRoYW4gb25lIGFuaW1hdGlvbiBmcmFtZSBzeW5jaHJvbm91c2x5XG4gKiBzaG91bGQgbm90IGJlIG11Y2ggZGlmZmVyZW50IG9yIGhhdmUgbW9yZSBvdmVyaGVhZCB0aGFuIGxvb3Bpbmcgb3ZlciBhbiBhcnJheSBvZiBldmVudHMgZHVyaW5nXG4gKiBhIHNpbmdsZSBhbmltYXRpb24gZnJhbWUuIEhvd2V2ZXIsIGlmIGZvciBzb21lIHJlYXNvbiB0aGUgZGV2ZWxvcGVyIHdvdWxkIGxpa2UgdG8gZW5zdXJlIHRoZVxuICogZXhlY3V0aW9uIG9mIGFuaW1hdGlvbi1yZWxhdGVkIGhhbmRsZXJzIGFyZSBhbGwgZXhlY3V0ZWQgZHVyaW5nIHRoZSBzYW1lIHRhc2sgYnkgdGhlIGVuZ2luZSxcbiAqIHRoZSBgc2hhcmVgIG9wZXJhdG9yIGNhbiBiZSB1c2VkLlxuICpcbiAqIFRoaXMgaXMgdXNlZnVsIGZvciBzZXR0aW5nIHVwIGFuaW1hdGlvbnMgd2l0aCBSeEpTLlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogVHdlZW5pbmcgYSBkaXYgdG8gbW92ZSBpdCBvbiB0aGUgc2NyZWVuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGFuaW1hdGlvbkZyYW1lcywgbWFwLCB0YWtlV2hpbGUsIGVuZFdpdGggfSBmcm9tICdyeGpzJztcbiAqXG4gKiBmdW5jdGlvbiB0d2VlbihzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlciwgZHVyYXRpb246IG51bWJlcikge1xuICogICBjb25zdCBkaWZmID0gZW5kIC0gc3RhcnQ7XG4gKiAgIHJldHVybiBhbmltYXRpb25GcmFtZXMoKS5waXBlKFxuICogICAgIC8vIEZpZ3VyZSBvdXQgd2hhdCBwZXJjZW50YWdlIG9mIHRpbWUgaGFzIHBhc3NlZFxuICogICAgIG1hcCgoeyBlbGFwc2VkIH0pID0+IGVsYXBzZWQgLyBkdXJhdGlvbiksXG4gKiAgICAgLy8gVGFrZSB0aGUgdmVjdG9yIHdoaWxlIGxlc3MgdGhhbiAxMDAlXG4gKiAgICAgdGFrZVdoaWxlKHYgPT4gdiA8IDEpLFxuICogICAgIC8vIEZpbmlzaCB3aXRoIDEwMCVcbiAqICAgICBlbmRXaXRoKDEpLFxuICogICAgIC8vIENhbGN1bGF0ZSB0aGUgZGlzdGFuY2UgdHJhdmVsZWQgYmV0d2VlbiBzdGFydCBhbmQgZW5kXG4gKiAgICAgbWFwKHYgPT4gdiAqIGRpZmYgKyBzdGFydClcbiAqICAgKTtcbiAqIH1cbiAqXG4gKiAvLyBTZXR1cCBhIGRpdiBmb3IgdXMgdG8gbW92ZSBhcm91bmRcbiAqIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO1xuICogZGl2LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAqIGRpdi5zdHlsZS53aWR0aCA9ICc0MHB4JztcbiAqIGRpdi5zdHlsZS5oZWlnaHQgPSAnNDBweCc7XG4gKiBkaXYuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ2xpbWUnO1xuICogZGl2LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKSc7XG4gKlxuICogdHdlZW4oMTAsIDIwMCwgNDAwMCkuc3Vic2NyaWJlKHggPT4ge1xuICogICBkaXYuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7IHggfXB4LCAwLCAwKWA7XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIFByb3ZpZGluZyBhIGN1c3RvbSB0aW1lc3RhbXAgcHJvdmlkZXJcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgYW5pbWF0aW9uRnJhbWVzLCBUaW1lc3RhbXBQcm92aWRlciB9IGZyb20gJ3J4anMnO1xuICpcbiAqIC8vIEEgY3VzdG9tIHRpbWVzdGFtcCBwcm92aWRlclxuICogbGV0IG5vdyA9IDA7XG4gKiBjb25zdCBjdXN0b21UU1Byb3ZpZGVyOiBUaW1lc3RhbXBQcm92aWRlciA9IHtcbiAqICAgbm93KCkgeyByZXR1cm4gbm93Kys7IH1cbiAqIH07XG4gKlxuICogY29uc3Qgc291cmNlJCA9IGFuaW1hdGlvbkZyYW1lcyhjdXN0b21UU1Byb3ZpZGVyKTtcbiAqXG4gKiAvLyBMb2cgaW5jcmVhc2luZyBudW1iZXJzIDAuLi4xLi4uMi4uLiBvbiBldmVyeSBhbmltYXRpb24gZnJhbWUuXG4gKiBzb3VyY2UkLnN1YnNjcmliZSgoeyBlbGFwc2VkIH0pID0+IGNvbnNvbGUubG9nKGVsYXBzZWQpKTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB0aW1lc3RhbXBQcm92aWRlciBBbiBvYmplY3Qgd2l0aCBhIGBub3dgIG1ldGhvZCB0aGF0IHByb3ZpZGVzIGEgbnVtZXJpYyB0aW1lc3RhbXBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFuaW1hdGlvbkZyYW1lcyh0aW1lc3RhbXBQcm92aWRlcj86IFRpbWVzdGFtcFByb3ZpZGVyKSB7XG4gIHJldHVybiB0aW1lc3RhbXBQcm92aWRlciA/IGFuaW1hdGlvbkZyYW1lc0ZhY3RvcnkodGltZXN0YW1wUHJvdmlkZXIpIDogREVGQVVMVF9BTklNQVRJT05fRlJBTUVTO1xufVxuXG4vKipcbiAqIERvZXMgdGhlIHdvcmsgb2YgY3JlYXRpbmcgdGhlIG9ic2VydmFibGUgZm9yIGBhbmltYXRpb25GcmFtZXNgLlxuICogQHBhcmFtIHRpbWVzdGFtcFByb3ZpZGVyIFRoZSB0aW1lc3RhbXAgcHJvdmlkZXIgdG8gdXNlIHRvIGNyZWF0ZSB0aGUgb2JzZXJ2YWJsZVxuICovXG5mdW5jdGlvbiBhbmltYXRpb25GcmFtZXNGYWN0b3J5KHRpbWVzdGFtcFByb3ZpZGVyPzogVGltZXN0YW1wUHJvdmlkZXIpIHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHsgdGltZXN0YW1wOiBudW1iZXI7IGVsYXBzZWQ6IG51bWJlciB9Pigoc3Vic2NyaWJlcikgPT4ge1xuICAgIC8vIElmIG5vIHRpbWVzdGFtcCBwcm92aWRlciBpcyBzcGVjaWZpZWQsIHVzZSBwZXJmb3JtYW5jZS5ub3coKSAtIGFzIGl0XG4gICAgLy8gd2lsbCByZXR1cm4gdGltZXN0YW1wcyAnY29tcGF0aWJsZScgd2l0aCB0aG9zZSBwYXNzZWQgdG8gdGhlIHJ1blxuICAgIC8vIGNhbGxiYWNrIGFuZCB3b24ndCBiZSBhZmZlY3RlZCBieSBOVFAgYWRqdXN0bWVudHMsIGV0Yy5cbiAgICBjb25zdCBwcm92aWRlciA9IHRpbWVzdGFtcFByb3ZpZGVyIHx8IHBlcmZvcm1hbmNlVGltZXN0YW1wUHJvdmlkZXI7XG5cbiAgICAvLyBDYXB0dXJlIHRoZSBzdGFydCB0aW1lIHVwb24gc3Vic2NyaXB0aW9uLCBhcyB0aGUgcnVuIGNhbGxiYWNrIGNhbiByZW1haW5cbiAgICAvLyBxdWV1ZWQgZm9yIGEgY29uc2lkZXJhYmxlIHBlcmlvZCBvZiB0aW1lIGFuZCB0aGUgZWxhcHNlZCB0aW1lIHNob3VsZFxuICAgIC8vIHJlcHJlc2VudCB0aGUgdGltZSBlbGFwc2VkIHNpbmNlIHN1YnNjcmlwdGlvbiAtIG5vdCB0aGUgdGltZSBzaW5jZSB0aGVcbiAgICAvLyBmaXJzdCByZW5kZXJlZCBhbmltYXRpb24gZnJhbWUuXG4gICAgY29uc3Qgc3RhcnQgPSBwcm92aWRlci5ub3coKTtcblxuICAgIGxldCBpZCA9IDA7XG4gICAgY29uc3QgcnVuID0gKCkgPT4ge1xuICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkge1xuICAgICAgICBpZCA9IGFuaW1hdGlvbkZyYW1lUHJvdmlkZXIucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCh0aW1lc3RhbXA6IERPTUhpZ2hSZXNUaW1lU3RhbXAgfCBudW1iZXIpID0+IHtcbiAgICAgICAgICBpZCA9IDA7XG4gICAgICAgICAgLy8gVXNlIHRoZSBwcm92aWRlcidzIHRpbWVzdGFtcCB0byBjYWxjdWxhdGUgdGhlIGVsYXBzZWQgdGltZS4gTm90ZSB0aGF0XG4gICAgICAgICAgLy8gdGhpcyBtZWFucyAtIGlmIHRoZSBjYWxsZXIgaGFzbid0IHBhc3NlZCBhIHByb3ZpZGVyIC0gdGhhdFxuICAgICAgICAgIC8vIHBlcmZvcm1hbmNlLm5vdygpIHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSB0aW1lc3RhbXAgdGhhdCB3YXNcbiAgICAgICAgICAvLyBwYXNzZWQgdG8gdGhlIHJ1biBjYWxsYmFjay4gVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyB0aGF0IHRoZSB0aW1lc3RhbXBcbiAgICAgICAgICAvLyBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIGNhbiBiZSBlYXJsaWVyIHRoYW4gdGhlIHN0YXJ0IHRpbWUsIGFzIGl0XG4gICAgICAgICAgLy8gcmVwcmVzZW50cyB0aGUgdGltZSBhdCB3aGljaCB0aGUgYnJvd3NlciBkZWNpZGVkIGl0IHdvdWxkIHJlbmRlciBhbnlcbiAgICAgICAgICAvLyBxdWV1ZWQgZnJhbWVzIC0gYW5kIHRoYXQgdGltZSBjYW4gYmUgZWFybGllciB0aGUgY2FwdHVyZWQgc3RhcnQgdGltZS5cbiAgICAgICAgICBjb25zdCBub3cgPSBwcm92aWRlci5ub3coKTtcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoe1xuICAgICAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXBQcm92aWRlciA/IG5vdyA6IHRpbWVzdGFtcCxcbiAgICAgICAgICAgIGVsYXBzZWQ6IG5vdyAtIHN0YXJ0LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJ1bigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcnVuKCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIGFuaW1hdGlvbkZyYW1lUHJvdmlkZXIuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpO1xuICAgICAgfVxuICAgIH07XG4gIH0pO1xufVxuXG4vKipcbiAqIEluIHRoZSBjb21tb24gY2FzZSwgd2hlcmUgdGhlIHRpbWVzdGFtcCBwcm92aWRlZCBieSB0aGUgckFGIEFQSSBpcyB1c2VkLFxuICogd2UgdXNlIHRoaXMgc2hhcmVkIG9ic2VydmFibGUgdG8gcmVkdWNlIG92ZXJoZWFkLlxuICovXG5jb25zdCBERUZBVUxUX0FOSU1BVElPTl9GUkFNRVMgPSBhbmltYXRpb25GcmFtZXNGYWN0b3J5KCk7XG4iLCAiaW1wb3J0IHsgY3JlYXRlRXJyb3JDbGFzcyB9IGZyb20gJy4vY3JlYXRlRXJyb3JDbGFzcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yQ3RvciB7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuIERvIG5vdCBjb25zdHJ1Y3QgZXJyb3IgaW5zdGFuY2VzLlxuICAgKiBDYW5ub3QgYmUgdGFnZ2VkIGFzIGludGVybmFsOiBodHRwczovL2dpdGh1Yi5jb20vUmVhY3RpdmVYL3J4anMvaXNzdWVzLzYyNjlcbiAgICovXG4gIG5ldyAoKTogT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3I7XG59XG5cbi8qKlxuICogQW4gZXJyb3IgdGhyb3duIHdoZW4gYW4gYWN0aW9uIGlzIGludmFsaWQgYmVjYXVzZSB0aGUgb2JqZWN0IGhhcyBiZWVuXG4gKiB1bnN1YnNjcmliZWQuXG4gKlxuICogQHNlZSB7QGxpbmsgU3ViamVjdH1cbiAqIEBzZWUge0BsaW5rIEJlaGF2aW9yU3ViamVjdH1cbiAqXG4gKiBAY2xhc3MgT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3JcbiAqL1xuZXhwb3J0IGNvbnN0IE9iamVjdFVuc3Vic2NyaWJlZEVycm9yOiBPYmplY3RVbnN1YnNjcmliZWRFcnJvckN0b3IgPSBjcmVhdGVFcnJvckNsYXNzKFxuICAoX3N1cGVyKSA9PlxuICAgIGZ1bmN0aW9uIE9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCh0aGlzOiBhbnkpIHtcbiAgICAgIF9zdXBlcih0aGlzKTtcbiAgICAgIHRoaXMubmFtZSA9ICdPYmplY3RVbnN1YnNjcmliZWRFcnJvcic7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSAnb2JqZWN0IHVuc3Vic2NyaWJlZCc7XG4gICAgfVxuKTtcbiIsICJpbXBvcnQgeyBPcGVyYXRvciB9IGZyb20gJy4vT3BlcmF0b3InO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAnLi9TdWJzY3JpYmVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgRU1QVFlfU1VCU0NSSVBUSU9OIH0gZnJvbSAnLi9TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgT2JzZXJ2ZXIsIFN1YnNjcmlwdGlvbkxpa2UsIFRlYXJkb3duTG9naWMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IE9iamVjdFVuc3Vic2NyaWJlZEVycm9yIH0gZnJvbSAnLi91dGlsL09iamVjdFVuc3Vic2NyaWJlZEVycm9yJztcbmltcG9ydCB7IGFyclJlbW92ZSB9IGZyb20gJy4vdXRpbC9hcnJSZW1vdmUnO1xuaW1wb3J0IHsgZXJyb3JDb250ZXh0IH0gZnJvbSAnLi91dGlsL2Vycm9yQ29udGV4dCc7XG5cbi8qKlxuICogQSBTdWJqZWN0IGlzIGEgc3BlY2lhbCB0eXBlIG9mIE9ic2VydmFibGUgdGhhdCBhbGxvd3MgdmFsdWVzIHRvIGJlXG4gKiBtdWx0aWNhc3RlZCB0byBtYW55IE9ic2VydmVycy4gU3ViamVjdHMgYXJlIGxpa2UgRXZlbnRFbWl0dGVycy5cbiAqXG4gKiBFdmVyeSBTdWJqZWN0IGlzIGFuIE9ic2VydmFibGUgYW5kIGFuIE9ic2VydmVyLiBZb3UgY2FuIHN1YnNjcmliZSB0byBhXG4gKiBTdWJqZWN0LCBhbmQgeW91IGNhbiBjYWxsIG5leHQgdG8gZmVlZCB2YWx1ZXMgYXMgd2VsbCBhcyBlcnJvciBhbmQgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdWJqZWN0PFQ+IGV4dGVuZHMgT2JzZXJ2YWJsZTxUPiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvbkxpa2Uge1xuICBjbG9zZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIGN1cnJlbnRPYnNlcnZlcnM6IE9ic2VydmVyPFQ+W10gfCBudWxsID0gbnVsbDtcblxuICAvKiogQGRlcHJlY2F0ZWQgSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLCBkbyBub3QgdXNlIGRpcmVjdGx5LiBXaWxsIGJlIG1hZGUgaW50ZXJuYWwgaW4gdjguICovXG4gIG9ic2VydmVyczogT2JzZXJ2ZXI8VD5bXSA9IFtdO1xuICAvKiogQGRlcHJlY2F0ZWQgSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLCBkbyBub3QgdXNlIGRpcmVjdGx5LiBXaWxsIGJlIG1hZGUgaW50ZXJuYWwgaW4gdjguICovXG4gIGlzU3RvcHBlZCA9IGZhbHNlO1xuICAvKiogQGRlcHJlY2F0ZWQgSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLCBkbyBub3QgdXNlIGRpcmVjdGx5LiBXaWxsIGJlIG1hZGUgaW50ZXJuYWwgaW4gdjguICovXG4gIGhhc0Vycm9yID0gZmFsc2U7XG4gIC8qKiBAZGVwcmVjYXRlZCBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIGRvIG5vdCB1c2UgZGlyZWN0bHkuIFdpbGwgYmUgbWFkZSBpbnRlcm5hbCBpbiB2OC4gKi9cbiAgdGhyb3duRXJyb3I6IGFueSA9IG51bGw7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBcInN1YmplY3RcIiBieSBiYXNpY2FsbHkgZ2x1aW5nIGFuIG9ic2VydmVyIHRvIGFuIG9ic2VydmFibGUuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFJlY29tbWVuZGVkIHlvdSBkbyBub3QgdXNlLiBXaWxsIGJlIHJlbW92ZWQgYXQgc29tZSBwb2ludCBpbiB0aGUgZnV0dXJlLiBQbGFucyBmb3IgcmVwbGFjZW1lbnQgc3RpbGwgdW5kZXIgZGlzY3Vzc2lvbi5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGU6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55ID0gPFQ+KGRlc3RpbmF0aW9uOiBPYnNlcnZlcjxUPiwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KTogQW5vbnltb3VzU3ViamVjdDxUPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBBbm9ueW1vdXNTdWJqZWN0PFQ+KGRlc3RpbmF0aW9uLCBzb3VyY2UpO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIE5PVEU6IFRoaXMgbXVzdCBiZSBoZXJlIHRvIG9ic2N1cmUgT2JzZXJ2YWJsZSdzIGNvbnN0cnVjdG9yLlxuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLCBkbyBub3QgdXNlIGRpcmVjdGx5LiBXaWxsIGJlIG1hZGUgaW50ZXJuYWwgaW4gdjguICovXG4gIGxpZnQ8Uj4ob3BlcmF0b3I6IE9wZXJhdG9yPFQsIFI+KTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgY29uc3Qgc3ViamVjdCA9IG5ldyBBbm9ueW1vdXNTdWJqZWN0KHRoaXMsIHRoaXMpO1xuICAgIHN1YmplY3Qub3BlcmF0b3IgPSBvcGVyYXRvciBhcyBhbnk7XG4gICAgcmV0dXJuIHN1YmplY3QgYXMgYW55O1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgX3Rocm93SWZDbG9zZWQoKSB7XG4gICAgaWYgKHRoaXMuY2xvc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IoKTtcbiAgICB9XG4gIH1cblxuICBuZXh0KHZhbHVlOiBUKSB7XG4gICAgZXJyb3JDb250ZXh0KCgpID0+IHtcbiAgICAgIHRoaXMuX3Rocm93SWZDbG9zZWQoKTtcbiAgICAgIGlmICghdGhpcy5pc1N0b3BwZWQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRPYnNlcnZlcnMpIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBBcnJheS5mcm9tKHRoaXMub2JzZXJ2ZXJzKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG9ic2VydmVyIG9mIHRoaXMuY3VycmVudE9ic2VydmVycykge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBlcnJvcihlcnI6IGFueSkge1xuICAgIGVycm9yQ29udGV4dCgoKSA9PiB7XG4gICAgICB0aGlzLl90aHJvd0lmQ2xvc2VkKCk7XG4gICAgICBpZiAoIXRoaXMuaXNTdG9wcGVkKSB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSB0aGlzLmlzU3RvcHBlZCA9IHRydWU7XG4gICAgICAgIHRoaXMudGhyb3duRXJyb3IgPSBlcnI7XG4gICAgICAgIGNvbnN0IHsgb2JzZXJ2ZXJzIH0gPSB0aGlzO1xuICAgICAgICB3aGlsZSAob2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgIG9ic2VydmVycy5zaGlmdCgpIS5lcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICBlcnJvckNvbnRleHQoKCkgPT4ge1xuICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpO1xuICAgICAgaWYgKCF0aGlzLmlzU3RvcHBlZCkge1xuICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHsgb2JzZXJ2ZXJzIH0gPSB0aGlzO1xuICAgICAgICB3aGlsZSAob2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgIG9ic2VydmVycy5zaGlmdCgpIS5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1bnN1YnNjcmliZSgpIHtcbiAgICB0aGlzLmlzU3RvcHBlZCA9IHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICB0aGlzLm9ic2VydmVycyA9IHRoaXMuY3VycmVudE9ic2VydmVycyA9IG51bGwhO1xuICB9XG5cbiAgZ2V0IG9ic2VydmVkKCkge1xuICAgIHJldHVybiB0aGlzLm9ic2VydmVycz8ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIF90cnlTdWJzY3JpYmUoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPik6IFRlYXJkb3duTG9naWMge1xuICAgIHRoaXMuX3Rocm93SWZDbG9zZWQoKTtcbiAgICByZXR1cm4gc3VwZXIuX3RyeVN1YnNjcmliZShzdWJzY3JpYmVyKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIF9zdWJzY3JpYmUoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPik6IFN1YnNjcmlwdGlvbiB7XG4gICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpO1xuICAgIHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMoc3Vic2NyaWJlcik7XG4gICAgcmV0dXJuIHRoaXMuX2lubmVyU3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgX2lubmVyU3Vic2NyaWJlKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8YW55Pikge1xuICAgIGNvbnN0IHsgaGFzRXJyb3IsIGlzU3RvcHBlZCwgb2JzZXJ2ZXJzIH0gPSB0aGlzO1xuICAgIGlmIChoYXNFcnJvciB8fCBpc1N0b3BwZWQpIHtcbiAgICAgIHJldHVybiBFTVBUWV9TVUJTQ1JJUFRJT047XG4gICAgfVxuICAgIHRoaXMuY3VycmVudE9ic2VydmVycyA9IG51bGw7XG4gICAgb2JzZXJ2ZXJzLnB1c2goc3Vic2NyaWJlcik7XG4gICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb24oKCkgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gbnVsbDtcbiAgICAgIGFyclJlbW92ZShvYnNlcnZlcnMsIHN1YnNjcmliZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgX2NoZWNrRmluYWxpemVkU3RhdHVzZXMoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxhbnk+KSB7XG4gICAgY29uc3QgeyBoYXNFcnJvciwgdGhyb3duRXJyb3IsIGlzU3RvcHBlZCB9ID0gdGhpcztcbiAgICBpZiAoaGFzRXJyb3IpIHtcbiAgICAgIHN1YnNjcmliZXIuZXJyb3IodGhyb3duRXJyb3IpO1xuICAgIH0gZWxzZSBpZiAoaXNTdG9wcGVkKSB7XG4gICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgT2JzZXJ2YWJsZSB3aXRoIHRoaXMgU3ViamVjdCBhcyB0aGUgc291cmNlLiBZb3UgY2FuIGRvIHRoaXNcbiAgICogdG8gY3JlYXRlIGN1c3RvbSBPYnNlcnZlci1zaWRlIGxvZ2ljIG9mIHRoZSBTdWJqZWN0IGFuZCBjb25jZWFsIGl0IGZyb21cbiAgICogY29kZSB0aGF0IHVzZXMgdGhlIE9ic2VydmFibGUuXG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZSB0aGF0IHRoaXMgU3ViamVjdCBjYXN0cyB0by5cbiAgICovXG4gIGFzT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCBvYnNlcnZhYmxlOiBhbnkgPSBuZXcgT2JzZXJ2YWJsZTxUPigpO1xuICAgIG9ic2VydmFibGUuc291cmNlID0gdGhpcztcbiAgICByZXR1cm4gb2JzZXJ2YWJsZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQW5vbnltb3VzU3ViamVjdDxUPiBleHRlbmRzIFN1YmplY3Q8VD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogQGRlcHJlY2F0ZWQgSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLCBkbyBub3QgdXNlIGRpcmVjdGx5LiBXaWxsIGJlIG1hZGUgaW50ZXJuYWwgaW4gdjguICovXG4gICAgcHVibGljIGRlc3RpbmF0aW9uPzogT2JzZXJ2ZXI8VD4sXG4gICAgc291cmNlPzogT2JzZXJ2YWJsZTxUPlxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICB9XG5cbiAgbmV4dCh2YWx1ZTogVCkge1xuICAgIHRoaXMuZGVzdGluYXRpb24/Lm5leHQ/Lih2YWx1ZSk7XG4gIH1cblxuICBlcnJvcihlcnI6IGFueSkge1xuICAgIHRoaXMuZGVzdGluYXRpb24/LmVycm9yPy4oZXJyKTtcbiAgfVxuXG4gIGNvbXBsZXRlKCkge1xuICAgIHRoaXMuZGVzdGluYXRpb24/LmNvbXBsZXRlPy4oKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIF9zdWJzY3JpYmUoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPik6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlPy5zdWJzY3JpYmUoc3Vic2NyaWJlcikgPz8gRU1QVFlfU1VCU0NSSVBUSU9OO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJy4vU3ViamVjdCc7XG5pbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAnLi9TdWJzY3JpYmVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4vU3Vic2NyaXB0aW9uJztcblxuLyoqXG4gKiBBIHZhcmlhbnQgb2YgU3ViamVjdCB0aGF0IHJlcXVpcmVzIGFuIGluaXRpYWwgdmFsdWUgYW5kIGVtaXRzIGl0cyBjdXJyZW50XG4gKiB2YWx1ZSB3aGVuZXZlciBpdCBpcyBzdWJzY3JpYmVkIHRvLlxuICovXG5leHBvcnQgY2xhc3MgQmVoYXZpb3JTdWJqZWN0PFQ+IGV4dGVuZHMgU3ViamVjdDxUPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3ZhbHVlOiBUKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgX3N1YnNjcmliZShzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFQ+KTogU3Vic2NyaXB0aW9uIHtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBzdXBlci5fc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICAgICFzdWJzY3JpcHRpb24uY2xvc2VkICYmIHN1YnNjcmliZXIubmV4dCh0aGlzLl92YWx1ZSk7XG4gICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIGdldFZhbHVlKCk6IFQge1xuICAgIGNvbnN0IHsgaGFzRXJyb3IsIHRocm93bkVycm9yLCBfdmFsdWUgfSA9IHRoaXM7XG4gICAgaWYgKGhhc0Vycm9yKSB7XG4gICAgICB0aHJvdyB0aHJvd25FcnJvcjtcbiAgICB9XG4gICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpO1xuICAgIHJldHVybiBfdmFsdWU7XG4gIH1cblxuICBuZXh0KHZhbHVlOiBUKTogdm9pZCB7XG4gICAgc3VwZXIubmV4dCgodGhpcy5fdmFsdWUgPSB2YWx1ZSkpO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgVGltZXN0YW1wUHJvdmlkZXIgfSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBEYXRlVGltZXN0YW1wUHJvdmlkZXIgZXh0ZW5kcyBUaW1lc3RhbXBQcm92aWRlciB7XG4gIGRlbGVnYXRlOiBUaW1lc3RhbXBQcm92aWRlciB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGNvbnN0IGRhdGVUaW1lc3RhbXBQcm92aWRlcjogRGF0ZVRpbWVzdGFtcFByb3ZpZGVyID0ge1xuICBub3coKSB7XG4gICAgLy8gVXNlIHRoZSB2YXJpYWJsZSByYXRoZXIgdGhhbiBgdGhpc2Agc28gdGhhdCB0aGUgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZFxuICAgIC8vIHdpdGhvdXQgYmVpbmcgYm91bmQgdG8gdGhlIHByb3ZpZGVyLlxuICAgIHJldHVybiAoZGF0ZVRpbWVzdGFtcFByb3ZpZGVyLmRlbGVnYXRlIHx8IERhdGUpLm5vdygpO1xuICB9LFxuICBkZWxlZ2F0ZTogdW5kZWZpbmVkLFxufTtcbiIsICJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAnLi9TdWJqZWN0JztcbmltcG9ydCB7IFRpbWVzdGFtcFByb3ZpZGVyIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAnLi9TdWJzY3JpYmVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4vU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IGRhdGVUaW1lc3RhbXBQcm92aWRlciB9IGZyb20gJy4vc2NoZWR1bGVyL2RhdGVUaW1lc3RhbXBQcm92aWRlcic7XG5cbi8qKlxuICogQSB2YXJpYW50IG9mIHtAbGluayBTdWJqZWN0fSB0aGF0IFwicmVwbGF5c1wiIG9sZCB2YWx1ZXMgdG8gbmV3IHN1YnNjcmliZXJzIGJ5IGVtaXR0aW5nIHRoZW0gd2hlbiB0aGV5IGZpcnN0IHN1YnNjcmliZS5cbiAqXG4gKiBgUmVwbGF5U3ViamVjdGAgaGFzIGFuIGludGVybmFsIGJ1ZmZlciB0aGF0IHdpbGwgc3RvcmUgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIHZhbHVlcyB0aGF0IGl0IGhhcyBvYnNlcnZlZC4gTGlrZSBgU3ViamVjdGAsXG4gKiBgUmVwbGF5U3ViamVjdGAgXCJvYnNlcnZlc1wiIHZhbHVlcyBieSBoYXZpbmcgdGhlbSBwYXNzZWQgdG8gaXRzIGBuZXh0YCBtZXRob2QuIFdoZW4gaXQgb2JzZXJ2ZXMgYSB2YWx1ZSwgaXQgd2lsbCBzdG9yZSB0aGF0XG4gKiB2YWx1ZSBmb3IgYSB0aW1lIGRldGVybWluZWQgYnkgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGBSZXBsYXlTdWJqZWN0YCwgYXMgcGFzc2VkIHRvIGl0cyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBXaGVuIGEgbmV3IHN1YnNjcmliZXIgc3Vic2NyaWJlcyB0byB0aGUgYFJlcGxheVN1YmplY3RgIGluc3RhbmNlLCBpdCB3aWxsIHN5bmNocm9ub3VzbHkgZW1pdCBhbGwgdmFsdWVzIGluIGl0cyBidWZmZXIgaW5cbiAqIGEgRmlyc3QtSW4tRmlyc3QtT3V0IChGSUZPKSBtYW5uZXIuIFRoZSBgUmVwbGF5U3ViamVjdGAgd2lsbCBhbHNvIGNvbXBsZXRlLCBpZiBpdCBoYXMgb2JzZXJ2ZWQgY29tcGxldGlvbjsgYW5kIGl0IHdpbGxcbiAqIGVycm9yIGlmIGl0IGhhcyBvYnNlcnZlZCBhbiBlcnJvci5cbiAqXG4gKiBUaGVyZSBhcmUgdHdvIG1haW4gY29uZmlndXJhdGlvbiBpdGVtcyB0byBiZSBjb25jZXJuZWQgd2l0aDpcbiAqXG4gKiAxLiBgYnVmZmVyU2l6ZWAgLSBUaGlzIHdpbGwgZGV0ZXJtaW5lIGhvdyBtYW55IGl0ZW1zIGFyZSBzdG9yZWQgaW4gdGhlIGJ1ZmZlciwgZGVmYXVsdHMgdG8gaW5maW5pdGUuXG4gKiAyLiBgd2luZG93VGltZWAgLSBUaGUgYW1vdW50IG9mIHRpbWUgdG8gaG9sZCBhIHZhbHVlIGluIHRoZSBidWZmZXIgYmVmb3JlIHJlbW92aW5nIGl0IGZyb20gdGhlIGJ1ZmZlci5cbiAqXG4gKiBCb3RoIGNvbmZpZ3VyYXRpb25zIG1heSBleGlzdCBzaW11bHRhbmVvdXNseS4gU28gaWYgeW91IHdvdWxkIGxpa2UgdG8gYnVmZmVyIGEgbWF4aW11bSBvZiAzIHZhbHVlcywgYXMgbG9uZyBhcyB0aGUgdmFsdWVzXG4gKiBhcmUgbGVzcyB0aGFuIDIgc2Vjb25kcyBvbGQsIHlvdSBjb3VsZCBkbyBzbyB3aXRoIGEgYG5ldyBSZXBsYXlTdWJqZWN0KDMsIDIwMDApYC5cbiAqXG4gKiAjIyMgRGlmZmVyZW5jZXMgd2l0aCBCZWhhdmlvclN1YmplY3RcbiAqXG4gKiBgQmVoYXZpb3JTdWJqZWN0YCBpcyBzaW1pbGFyIHRvIGBuZXcgUmVwbGF5U3ViamVjdCgxKWAsIHdpdGggYSBjb3VwbGUgb2YgZXhjZXB0aW9uczpcbiAqXG4gKiAxLiBgQmVoYXZpb3JTdWJqZWN0YCBjb21lcyBcInByaW1lZFwiIHdpdGggYSBzaW5nbGUgdmFsdWUgdXBvbiBjb25zdHJ1Y3Rpb24uXG4gKiAyLiBgUmVwbGF5U3ViamVjdGAgd2lsbCByZXBsYXkgdmFsdWVzLCBldmVuIGFmdGVyIG9ic2VydmluZyBhbiBlcnJvciwgd2hlcmUgYEJlaGF2aW9yU3ViamVjdGAgd2lsbCBub3QuXG4gKlxuICogQHNlZSB7QGxpbmsgU3ViamVjdH1cbiAqIEBzZWUge0BsaW5rIEJlaGF2aW9yU3ViamVjdH1cbiAqIEBzZWUge0BsaW5rIHNoYXJlUmVwbGF5fVxuICovXG5leHBvcnQgY2xhc3MgUmVwbGF5U3ViamVjdDxUPiBleHRlbmRzIFN1YmplY3Q8VD4ge1xuICBwcml2YXRlIF9idWZmZXI6IChUIHwgbnVtYmVyKVtdID0gW107XG4gIHByaXZhdGUgX2luZmluaXRlVGltZVdpbmRvdyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBfYnVmZmVyU2l6ZSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHRvIHJlcGxheSBvbiBzdWJzY3JpcHRpb25cbiAgICogQHBhcmFtIF93aW5kb3dUaW1lIFRoZSBhbW91bnQgb2YgdGltZSB0aGUgYnVmZmVyZWQgaXRlbXMgd2lsbCBzdGF5IGJ1ZmZlcmVkXG4gICAqIEBwYXJhbSBfdGltZXN0YW1wUHJvdmlkZXIgQW4gb2JqZWN0IHdpdGggYSBgbm93KClgIG1ldGhvZCB0aGF0IHByb3ZpZGVzIHRoZSBjdXJyZW50IHRpbWVzdGFtcC4gVGhpcyBpcyB1c2VkIHRvXG4gICAqIGNhbGN1bGF0ZSB0aGUgYW1vdW50IG9mIHRpbWUgc29tZXRoaW5nIGhhcyBiZWVuIGJ1ZmZlcmVkLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfYnVmZmVyU2l6ZSA9IEluZmluaXR5LFxuICAgIHByaXZhdGUgX3dpbmRvd1RpbWUgPSBJbmZpbml0eSxcbiAgICBwcml2YXRlIF90aW1lc3RhbXBQcm92aWRlcjogVGltZXN0YW1wUHJvdmlkZXIgPSBkYXRlVGltZXN0YW1wUHJvdmlkZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9pbmZpbml0ZVRpbWVXaW5kb3cgPSBfd2luZG93VGltZSA9PT0gSW5maW5pdHk7XG4gICAgdGhpcy5fYnVmZmVyU2l6ZSA9IE1hdGgubWF4KDEsIF9idWZmZXJTaXplKTtcbiAgICB0aGlzLl93aW5kb3dUaW1lID0gTWF0aC5tYXgoMSwgX3dpbmRvd1RpbWUpO1xuICB9XG5cbiAgbmV4dCh2YWx1ZTogVCk6IHZvaWQge1xuICAgIGNvbnN0IHsgaXNTdG9wcGVkLCBfYnVmZmVyLCBfaW5maW5pdGVUaW1lV2luZG93LCBfdGltZXN0YW1wUHJvdmlkZXIsIF93aW5kb3dUaW1lIH0gPSB0aGlzO1xuICAgIGlmICghaXNTdG9wcGVkKSB7XG4gICAgICBfYnVmZmVyLnB1c2godmFsdWUpO1xuICAgICAgIV9pbmZpbml0ZVRpbWVXaW5kb3cgJiYgX2J1ZmZlci5wdXNoKF90aW1lc3RhbXBQcm92aWRlci5ub3coKSArIF93aW5kb3dUaW1lKTtcbiAgICB9XG4gICAgdGhpcy5fdHJpbUJ1ZmZlcigpO1xuICAgIHN1cGVyLm5leHQodmFsdWUpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgX3N1YnNjcmliZShzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFQ+KTogU3Vic2NyaXB0aW9uIHtcbiAgICB0aGlzLl90aHJvd0lmQ2xvc2VkKCk7XG4gICAgdGhpcy5fdHJpbUJ1ZmZlcigpO1xuXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5faW5uZXJTdWJzY3JpYmUoc3Vic2NyaWJlcik7XG5cbiAgICBjb25zdCB7IF9pbmZpbml0ZVRpbWVXaW5kb3csIF9idWZmZXIgfSA9IHRoaXM7XG4gICAgLy8gV2UgdXNlIGEgY29weSBoZXJlLCBzbyByZWVudHJhbnQgY29kZSBkb2VzIG5vdCBtdXRhdGUgb3VyIGFycmF5IHdoaWxlIHdlJ3JlXG4gICAgLy8gZW1pdHRpbmcgaXQgdG8gYSBuZXcgc3Vic2NyaWJlci5cbiAgICBjb25zdCBjb3B5ID0gX2J1ZmZlci5zbGljZSgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29weS5sZW5ndGggJiYgIXN1YnNjcmliZXIuY2xvc2VkOyBpICs9IF9pbmZpbml0ZVRpbWVXaW5kb3cgPyAxIDogMikge1xuICAgICAgc3Vic2NyaWJlci5uZXh0KGNvcHlbaV0gYXMgVCk7XG4gICAgfVxuXG4gICAgdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyhzdWJzY3JpYmVyKTtcblxuICAgIHJldHVybiBzdWJzY3JpcHRpb247XG4gIH1cblxuICBwcml2YXRlIF90cmltQnVmZmVyKCkge1xuICAgIGNvbnN0IHsgX2J1ZmZlclNpemUsIF90aW1lc3RhbXBQcm92aWRlciwgX2J1ZmZlciwgX2luZmluaXRlVGltZVdpbmRvdyB9ID0gdGhpcztcbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGFuIGluZmluaXRlIGJ1ZmZlciBzaXplLCBhbmQgd2UncmUgb3ZlciB0aGUgbGVuZ3RoLFxuICAgIC8vIHVzZSBzcGxpY2UgdG8gdHJ1bmNhdGUgdGhlIG9sZCBidWZmZXIgdmFsdWVzIG9mZi4gTm90ZSB0aGF0IHdlIGhhdmUgdG9cbiAgICAvLyBkb3VibGUgdGhlIHNpemUgZm9yIGluc3RhbmNlcyB3aGVyZSB3ZSdyZSBub3QgdXNpbmcgYW4gaW5maW5pdGUgdGltZSB3aW5kb3dcbiAgICAvLyBiZWNhdXNlIHdlJ3JlIHN0b3JpbmcgdGhlIHZhbHVlcyBhbmQgdGhlIHRpbWVzdGFtcHMgaW4gdGhlIHNhbWUgYXJyYXkuXG4gICAgY29uc3QgYWRqdXN0ZWRCdWZmZXJTaXplID0gKF9pbmZpbml0ZVRpbWVXaW5kb3cgPyAxIDogMikgKiBfYnVmZmVyU2l6ZTtcbiAgICBfYnVmZmVyU2l6ZSA8IEluZmluaXR5ICYmIGFkanVzdGVkQnVmZmVyU2l6ZSA8IF9idWZmZXIubGVuZ3RoICYmIF9idWZmZXIuc3BsaWNlKDAsIF9idWZmZXIubGVuZ3RoIC0gYWRqdXN0ZWRCdWZmZXJTaXplKTtcblxuICAgIC8vIE5vdywgaWYgd2UncmUgbm90IGluIGFuIGluZmluaXRlIHRpbWUgd2luZG93LCByZW1vdmUgYWxsIHZhbHVlcyB3aGVyZSB0aGUgdGltZSBpc1xuICAgIC8vIG9sZGVyIHRoYW4gd2hhdCBpcyBhbGxvd2VkLlxuICAgIGlmICghX2luZmluaXRlVGltZVdpbmRvdykge1xuICAgICAgY29uc3Qgbm93ID0gX3RpbWVzdGFtcFByb3ZpZGVyLm5vdygpO1xuICAgICAgbGV0IGxhc3QgPSAwO1xuICAgICAgLy8gU2VhcmNoIHRoZSBhcnJheSBmb3IgdGhlIGZpcnN0IHRpbWVzdGFtcCB0aGF0IGlzbid0IGV4cGlyZWQgYW5kXG4gICAgICAvLyB0cnVuY2F0ZSB0aGUgYnVmZmVyIHVwIHRvIHRoYXQgcG9pbnQuXG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8IF9idWZmZXIubGVuZ3RoICYmIChfYnVmZmVyW2ldIGFzIG51bWJlcikgPD0gbm93OyBpICs9IDIpIHtcbiAgICAgICAgbGFzdCA9IGk7XG4gICAgICB9XG4gICAgICBsYXN0ICYmIF9idWZmZXIuc3BsaWNlKDAsIGxhc3QgKyAxKTtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAnLi9TdWJqZWN0JztcbmltcG9ydCB7IFN1YnNjcmliZXIgfSBmcm9tICcuL1N1YnNjcmliZXInO1xuXG4vKipcbiAqIEEgdmFyaWFudCBvZiBTdWJqZWN0IHRoYXQgb25seSBlbWl0cyBhIHZhbHVlIHdoZW4gaXQgY29tcGxldGVzLiBJdCB3aWxsIGVtaXRcbiAqIGl0cyBsYXRlc3QgdmFsdWUgdG8gYWxsIGl0cyBvYnNlcnZlcnMgb24gY29tcGxldGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzeW5jU3ViamVjdDxUPiBleHRlbmRzIFN1YmplY3Q8VD4ge1xuICBwcml2YXRlIF92YWx1ZTogVCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9oYXNWYWx1ZSA9IGZhbHNlO1xuICBwcml2YXRlIF9pc0NvbXBsZXRlID0gZmFsc2U7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgX2NoZWNrRmluYWxpemVkU3RhdHVzZXMoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPikge1xuICAgIGNvbnN0IHsgaGFzRXJyb3IsIF9oYXNWYWx1ZSwgX3ZhbHVlLCB0aHJvd25FcnJvciwgaXNTdG9wcGVkLCBfaXNDb21wbGV0ZSB9ID0gdGhpcztcbiAgICBpZiAoaGFzRXJyb3IpIHtcbiAgICAgIHN1YnNjcmliZXIuZXJyb3IodGhyb3duRXJyb3IpO1xuICAgIH0gZWxzZSBpZiAoaXNTdG9wcGVkIHx8IF9pc0NvbXBsZXRlKSB7XG4gICAgICBfaGFzVmFsdWUgJiYgc3Vic2NyaWJlci5uZXh0KF92YWx1ZSEpO1xuICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5leHQodmFsdWU6IFQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNTdG9wcGVkKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5faGFzVmFsdWUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBsZXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgX2hhc1ZhbHVlLCBfdmFsdWUsIF9pc0NvbXBsZXRlIH0gPSB0aGlzO1xuICAgIGlmICghX2lzQ29tcGxldGUpIHtcbiAgICAgIHRoaXMuX2lzQ29tcGxldGUgPSB0cnVlO1xuICAgICAgX2hhc1ZhbHVlICYmIHN1cGVyLm5leHQoX3ZhbHVlISk7XG4gICAgICBzdXBlci5jb21wbGV0ZSgpO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7IFNjaGVkdWxlciB9IGZyb20gJy4uL1NjaGVkdWxlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICcuLi9TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgU2NoZWR1bGVyQWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEEgdW5pdCBvZiB3b3JrIHRvIGJlIGV4ZWN1dGVkIGluIGEgYHNjaGVkdWxlcmAuIEFuIGFjdGlvbiBpcyB0eXBpY2FsbHlcbiAqIGNyZWF0ZWQgZnJvbSB3aXRoaW4gYSB7QGxpbmsgU2NoZWR1bGVyTGlrZX0gYW5kIGFuIFJ4SlMgdXNlciBkb2VzIG5vdCBuZWVkIHRvIGNvbmNlcm5cbiAqIHRoZW1zZWx2ZXMgYWJvdXQgY3JlYXRpbmcgYW5kIG1hbmlwdWxhdGluZyBhbiBBY3Rpb24uXG4gKlxuICogYGBgdHNcbiAqIGNsYXNzIEFjdGlvbjxUPiBleHRlbmRzIFN1YnNjcmlwdGlvbiB7XG4gKiAgIG5ldyAoc2NoZWR1bGVyOiBTY2hlZHVsZXIsIHdvcms6IChzdGF0ZT86IFQpID0+IHZvaWQpO1xuICogICBzY2hlZHVsZShzdGF0ZT86IFQsIGRlbGF5OiBudW1iZXIgPSAwKTogU3Vic2NyaXB0aW9uO1xuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb248VD4gZXh0ZW5kcyBTdWJzY3JpcHRpb24ge1xuICBjb25zdHJ1Y3RvcihzY2hlZHVsZXI6IFNjaGVkdWxlciwgd29yazogKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxUPiwgc3RhdGU/OiBUKSA9PiB2b2lkKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICAvKipcbiAgICogU2NoZWR1bGVzIHRoaXMgYWN0aW9uIG9uIGl0cyBwYXJlbnQge0BsaW5rIFNjaGVkdWxlckxpa2V9IGZvciBleGVjdXRpb24uIE1heSBiZSBwYXNzZWRcbiAgICogc29tZSBjb250ZXh0IG9iamVjdCwgYHN0YXRlYC4gTWF5IGhhcHBlbiBhdCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUsXG4gICAqIGFjY29yZGluZyB0byB0aGUgYGRlbGF5YCBwYXJhbWV0ZXIsIGlmIHNwZWNpZmllZC5cbiAgICogQHBhcmFtIHN0YXRlIFNvbWUgY29udGV4dHVhbCBkYXRhIHRoYXQgdGhlIGB3b3JrYCBmdW5jdGlvbiB1c2VzIHdoZW4gY2FsbGVkIGJ5IHRoZVxuICAgKiBTY2hlZHVsZXIuXG4gICAqIEBwYXJhbSBkZWxheSBUaW1lIHRvIHdhaXQgYmVmb3JlIGV4ZWN1dGluZyB0aGUgd29yaywgd2hlcmUgdGhlIHRpbWUgdW5pdCBpcyBpbXBsaWNpdFxuICAgKiBhbmQgZGVmaW5lZCBieSB0aGUgU2NoZWR1bGVyLlxuICAgKiBAcmV0dXJuIEEgc3Vic2NyaXB0aW9uIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gdW5zdWJzY3JpYmUgdGhlIHNjaGVkdWxlZCB3b3JrLlxuICAgKi9cbiAgcHVibGljIHNjaGVkdWxlKHN0YXRlPzogVCwgZGVsYXk6IG51bWJlciA9IDApOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBUaW1lckhhbmRsZSB9IGZyb20gJy4vdGltZXJIYW5kbGUnO1xudHlwZSBTZXRJbnRlcnZhbEZ1bmN0aW9uID0gKGhhbmRsZXI6ICgpID0+IHZvaWQsIHRpbWVvdXQ/OiBudW1iZXIsIC4uLmFyZ3M6IGFueVtdKSA9PiBUaW1lckhhbmRsZTtcbnR5cGUgQ2xlYXJJbnRlcnZhbEZ1bmN0aW9uID0gKGhhbmRsZTogVGltZXJIYW5kbGUpID0+IHZvaWQ7XG5cbmludGVyZmFjZSBJbnRlcnZhbFByb3ZpZGVyIHtcbiAgc2V0SW50ZXJ2YWw6IFNldEludGVydmFsRnVuY3Rpb247XG4gIGNsZWFySW50ZXJ2YWw6IENsZWFySW50ZXJ2YWxGdW5jdGlvbjtcbiAgZGVsZWdhdGU6XG4gICAgfCB7XG4gICAgICAgIHNldEludGVydmFsOiBTZXRJbnRlcnZhbEZ1bmN0aW9uO1xuICAgICAgICBjbGVhckludGVydmFsOiBDbGVhckludGVydmFsRnVuY3Rpb247XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBpbnRlcnZhbFByb3ZpZGVyOiBJbnRlcnZhbFByb3ZpZGVyID0ge1xuICAvLyBXaGVuIGFjY2Vzc2luZyB0aGUgZGVsZWdhdGUsIHVzZSB0aGUgdmFyaWFibGUgcmF0aGVyIHRoYW4gYHRoaXNgIHNvIHRoYXRcbiAgLy8gdGhlIGZ1bmN0aW9ucyBjYW4gYmUgY2FsbGVkIHdpdGhvdXQgYmVpbmcgYm91bmQgdG8gdGhlIHByb3ZpZGVyLlxuICBzZXRJbnRlcnZhbChoYW5kbGVyOiAoKSA9PiB2b2lkLCB0aW1lb3V0PzogbnVtYmVyLCAuLi5hcmdzKSB7XG4gICAgY29uc3QgeyBkZWxlZ2F0ZSB9ID0gaW50ZXJ2YWxQcm92aWRlcjtcbiAgICBpZiAoZGVsZWdhdGU/LnNldEludGVydmFsKSB7XG4gICAgICByZXR1cm4gZGVsZWdhdGUuc2V0SW50ZXJ2YWwoaGFuZGxlciwgdGltZW91dCwgLi4uYXJncyk7XG4gICAgfVxuICAgIHJldHVybiBzZXRJbnRlcnZhbChoYW5kbGVyLCB0aW1lb3V0LCAuLi5hcmdzKTtcbiAgfSxcbiAgY2xlYXJJbnRlcnZhbChoYW5kbGUpIHtcbiAgICBjb25zdCB7IGRlbGVnYXRlIH0gPSBpbnRlcnZhbFByb3ZpZGVyO1xuICAgIHJldHVybiAoZGVsZWdhdGU/LmNsZWFySW50ZXJ2YWwgfHwgY2xlYXJJbnRlcnZhbCkoaGFuZGxlIGFzIGFueSk7XG4gIH0sXG4gIGRlbGVnYXRlOiB1bmRlZmluZWQsXG59O1xuIiwgImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vQWN0aW9uJztcbmltcG9ydCB7IFNjaGVkdWxlckFjdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBBc3luY1NjaGVkdWxlciB9IGZyb20gJy4vQXN5bmNTY2hlZHVsZXInO1xuaW1wb3J0IHsgaW50ZXJ2YWxQcm92aWRlciB9IGZyb20gJy4vaW50ZXJ2YWxQcm92aWRlcic7XG5pbXBvcnQgeyBhcnJSZW1vdmUgfSBmcm9tICcuLi91dGlsL2FyclJlbW92ZSc7XG5pbXBvcnQgeyBUaW1lckhhbmRsZSB9IGZyb20gJy4vdGltZXJIYW5kbGUnO1xuXG5leHBvcnQgY2xhc3MgQXN5bmNBY3Rpb248VD4gZXh0ZW5kcyBBY3Rpb248VD4ge1xuICBwdWJsaWMgaWQ6IFRpbWVySGFuZGxlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc3RhdGU/OiBUO1xuICAvLyBAdHMtaWdub3JlOiBQcm9wZXJ0eSBoYXMgbm8gaW5pdGlhbGl6ZXIgYW5kIGlzIG5vdCBkZWZpbml0ZWx5IGFzc2lnbmVkXG4gIHB1YmxpYyBkZWxheTogbnVtYmVyO1xuICBwcm90ZWN0ZWQgcGVuZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzY2hlZHVsZXI6IEFzeW5jU2NoZWR1bGVyLCBwcm90ZWN0ZWQgd29yazogKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxUPiwgc3RhdGU/OiBUKSA9PiB2b2lkKSB7XG4gICAgc3VwZXIoc2NoZWR1bGVyLCB3b3JrKTtcbiAgfVxuXG4gIHB1YmxpYyBzY2hlZHVsZShzdGF0ZT86IFQsIGRlbGF5OiBudW1iZXIgPSAwKTogU3Vic2NyaXB0aW9uIHtcbiAgICBpZiAodGhpcy5jbG9zZWQpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8vIEFsd2F5cyByZXBsYWNlIHRoZSBjdXJyZW50IHN0YXRlIHdpdGggdGhlIG5ldyBzdGF0ZS5cbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG5cbiAgICBjb25zdCBpZCA9IHRoaXMuaWQ7XG4gICAgY29uc3Qgc2NoZWR1bGVyID0gdGhpcy5zY2hlZHVsZXI7XG5cbiAgICAvL1xuICAgIC8vIEltcG9ydGFudCBpbXBsZW1lbnRhdGlvbiBub3RlOlxuICAgIC8vXG4gICAgLy8gQWN0aW9ucyBvbmx5IGV4ZWN1dGUgb25jZSBieSBkZWZhdWx0LCB1bmxlc3MgcmVzY2hlZHVsZWQgZnJvbSB3aXRoaW4gdGhlXG4gICAgLy8gc2NoZWR1bGVkIGNhbGxiYWNrLiBUaGlzIGFsbG93cyB1cyB0byBpbXBsZW1lbnQgc2luZ2xlIGFuZCByZXBlYXRcbiAgICAvLyBhY3Rpb25zIHZpYSB0aGUgc2FtZSBjb2RlIHBhdGgsIHdpdGhvdXQgYWRkaW5nIEFQSSBzdXJmYWNlIGFyZWEsIGFzIHdlbGxcbiAgICAvLyBhcyBtaW1pYyB0cmFkaXRpb25hbCByZWN1cnNpb24gYnV0IGFjcm9zcyBhc3luY2hyb25vdXMgYm91bmRhcmllcy5cbiAgICAvL1xuICAgIC8vIEhvd2V2ZXIsIEpTIHJ1bnRpbWVzIGFuZCB0aW1lcnMgZGlzdGluZ3Vpc2ggYmV0d2VlbiBpbnRlcnZhbHMgYWNoaWV2ZWQgYnlcbiAgICAvLyBzZXJpYWwgYHNldFRpbWVvdXRgIGNhbGxzIHZzLiBhIHNpbmdsZSBgc2V0SW50ZXJ2YWxgIGNhbGwuIEFuIGludGVydmFsIG9mXG4gICAgLy8gc2VyaWFsIGBzZXRUaW1lb3V0YCBjYWxscyBjYW4gYmUgaW5kaXZpZHVhbGx5IGRlbGF5ZWQsIHdoaWNoIGRlbGF5c1xuICAgIC8vIHNjaGVkdWxpbmcgdGhlIG5leHQgYHNldFRpbWVvdXRgLCBhbmQgc28gb24uIGBzZXRJbnRlcnZhbGAgYXR0ZW1wdHMgdG9cbiAgICAvLyBndWFyYW50ZWUgdGhlIGludGVydmFsIGNhbGxiYWNrIHdpbGwgYmUgaW52b2tlZCBtb3JlIHByZWNpc2VseSB0byB0aGVcbiAgICAvLyBpbnRlcnZhbCBwZXJpb2QsIHJlZ2FyZGxlc3Mgb2YgbG9hZC5cbiAgICAvL1xuICAgIC8vIFRoZXJlZm9yZSwgd2UgdXNlIGBzZXRJbnRlcnZhbGAgdG8gc2NoZWR1bGUgc2luZ2xlIGFuZCByZXBlYXQgYWN0aW9ucy5cbiAgICAvLyBJZiB0aGUgYWN0aW9uIHJlc2NoZWR1bGVzIGl0c2VsZiB3aXRoIHRoZSBzYW1lIGRlbGF5LCB0aGUgaW50ZXJ2YWwgaXMgbm90XG4gICAgLy8gY2FuY2VsZWQuIElmIHRoZSBhY3Rpb24gZG9lc24ndCByZXNjaGVkdWxlLCBvciByZXNjaGVkdWxlcyB3aXRoIGFcbiAgICAvLyBkaWZmZXJlbnQgZGVsYXksIHRoZSBpbnRlcnZhbCB3aWxsIGJlIGNhbmNlbGVkIGFmdGVyIHNjaGVkdWxlZCBjYWxsYmFja1xuICAgIC8vIGV4ZWN1dGlvbi5cbiAgICAvL1xuICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICB0aGlzLmlkID0gdGhpcy5yZWN5Y2xlQXN5bmNJZChzY2hlZHVsZXIsIGlkLCBkZWxheSk7XG4gICAgfVxuXG4gICAgLy8gU2V0IHRoZSBwZW5kaW5nIGZsYWcgaW5kaWNhdGluZyB0aGF0IHRoaXMgYWN0aW9uIGhhcyBiZWVuIHNjaGVkdWxlZCwgb3JcbiAgICAvLyBoYXMgcmVjdXJzaXZlbHkgcmVzY2hlZHVsZWQgaXRzZWxmLlxuICAgIHRoaXMucGVuZGluZyA9IHRydWU7XG5cbiAgICB0aGlzLmRlbGF5ID0gZGVsYXk7XG4gICAgLy8gSWYgdGhpcyBhY3Rpb24gaGFzIGFscmVhZHkgYW4gYXN5bmMgSWQsIGRvbid0IHJlcXVlc3QgYSBuZXcgb25lLlxuICAgIHRoaXMuaWQgPSB0aGlzLmlkID8/IHRoaXMucmVxdWVzdEFzeW5jSWQoc2NoZWR1bGVyLCB0aGlzLmlkLCBkZWxheSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3RlY3RlZCByZXF1ZXN0QXN5bmNJZChzY2hlZHVsZXI6IEFzeW5jU2NoZWR1bGVyLCBfaWQ/OiBUaW1lckhhbmRsZSwgZGVsYXk6IG51bWJlciA9IDApOiBUaW1lckhhbmRsZSB7XG4gICAgcmV0dXJuIGludGVydmFsUHJvdmlkZXIuc2V0SW50ZXJ2YWwoc2NoZWR1bGVyLmZsdXNoLmJpbmQoc2NoZWR1bGVyLCB0aGlzKSwgZGVsYXkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlY3ljbGVBc3luY0lkKF9zY2hlZHVsZXI6IEFzeW5jU2NoZWR1bGVyLCBpZD86IFRpbWVySGFuZGxlLCBkZWxheTogbnVtYmVyIHwgbnVsbCA9IDApOiBUaW1lckhhbmRsZSB8IHVuZGVmaW5lZCB7XG4gICAgLy8gSWYgdGhpcyBhY3Rpb24gaXMgcmVzY2hlZHVsZWQgd2l0aCB0aGUgc2FtZSBkZWxheSB0aW1lLCBkb24ndCBjbGVhciB0aGUgaW50ZXJ2YWwgaWQuXG4gICAgaWYgKGRlbGF5ICE9IG51bGwgJiYgdGhpcy5kZWxheSA9PT0gZGVsYXkgJiYgdGhpcy5wZW5kaW5nID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIGlkO1xuICAgIH1cbiAgICAvLyBPdGhlcndpc2UsIGlmIHRoZSBhY3Rpb24ncyBkZWxheSB0aW1lIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjdXJyZW50IGRlbGF5LFxuICAgIC8vIG9yIHRoZSBhY3Rpb24gaGFzIGJlZW4gcmVzY2hlZHVsZWQgYmVmb3JlIGl0J3MgZXhlY3V0ZWQsIGNsZWFyIHRoZSBpbnRlcnZhbCBpZFxuICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICBpbnRlcnZhbFByb3ZpZGVyLmNsZWFySW50ZXJ2YWwoaWQpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogSW1tZWRpYXRlbHkgZXhlY3V0ZXMgdGhpcyBhY3Rpb24gYW5kIHRoZSBgd29ya2AgaXQgY29udGFpbnMuXG4gICAqL1xuICBwdWJsaWMgZXhlY3V0ZShzdGF0ZTogVCwgZGVsYXk6IG51bWJlcik6IGFueSB7XG4gICAgaWYgKHRoaXMuY2xvc2VkKSB7XG4gICAgICByZXR1cm4gbmV3IEVycm9yKCdleGVjdXRpbmcgYSBjYW5jZWxsZWQgYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5wZW5kaW5nID0gZmFsc2U7XG4gICAgY29uc3QgZXJyb3IgPSB0aGlzLl9leGVjdXRlKHN0YXRlLCBkZWxheSk7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICByZXR1cm4gZXJyb3I7XG4gICAgfSBlbHNlIGlmICh0aGlzLnBlbmRpbmcgPT09IGZhbHNlICYmIHRoaXMuaWQgIT0gbnVsbCkge1xuICAgICAgLy8gRGVxdWV1ZSBpZiB0aGUgYWN0aW9uIGRpZG4ndCByZXNjaGVkdWxlIGl0c2VsZi4gRG9uJ3QgY2FsbFxuICAgICAgLy8gdW5zdWJzY3JpYmUoKSwgYmVjYXVzZSB0aGUgYWN0aW9uIGNvdWxkIHJlc2NoZWR1bGUgbGF0ZXIuXG4gICAgICAvLyBGb3IgZXhhbXBsZTpcbiAgICAgIC8vIGBgYFxuICAgICAgLy8gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uIGRvV29yayhjb3VudGVyKSB7XG4gICAgICAvLyAgIC8qIC4uLiBJJ20gYSBidXN5IHdvcmtlciBiZWUgLi4uICovXG4gICAgICAvLyAgIHZhciBvcmlnaW5hbEFjdGlvbiA9IHRoaXM7XG4gICAgICAvLyAgIC8qIHdhaXQgMTAwbXMgYmVmb3JlIHJlc2NoZWR1bGluZyB0aGUgYWN0aW9uICovXG4gICAgICAvLyAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgLy8gICAgIG9yaWdpbmFsQWN0aW9uLnNjaGVkdWxlKGNvdW50ZXIgKyAxKTtcbiAgICAgIC8vICAgfSwgMTAwKTtcbiAgICAgIC8vIH0sIDEwMDApO1xuICAgICAgLy8gYGBgXG4gICAgICB0aGlzLmlkID0gdGhpcy5yZWN5Y2xlQXN5bmNJZCh0aGlzLnNjaGVkdWxlciwgdGhpcy5pZCwgbnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9leGVjdXRlKHN0YXRlOiBULCBfZGVsYXk6IG51bWJlcik6IGFueSB7XG4gICAgbGV0IGVycm9yZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBsZXQgZXJyb3JWYWx1ZTogYW55O1xuICAgIHRyeSB7XG4gICAgICB0aGlzLndvcmsoc3RhdGUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGVycm9yZWQgPSB0cnVlO1xuICAgICAgLy8gSEFDSzogU2luY2UgY29kZSBlbHNld2hlcmUgaXMgcmVseWluZyBvbiB0aGUgXCJ0cnV0aGluZXNzXCIgb2YgdGhlXG4gICAgICAvLyByZXR1cm4gaGVyZSwgd2UgY2FuJ3QgaGF2ZSBpdCByZXR1cm4gXCJcIiBvciAwIG9yIGZhbHNlLlxuICAgICAgLy8gVE9ETzogQ2xlYW4gdGhpcyB1cCB3aGVuIHdlIHJlZmFjdG9yIHNjaGVkdWxlcnMgbWlkLXZlcnNpb24tOCBvciBzby5cbiAgICAgIGVycm9yVmFsdWUgPSBlID8gZSA6IG5ldyBFcnJvcignU2NoZWR1bGVkIGFjdGlvbiB0aHJldyBmYWxzeSBlcnJvcicpO1xuICAgIH1cbiAgICBpZiAoZXJyb3JlZCkge1xuICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgcmV0dXJuIGVycm9yVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgdW5zdWJzY3JpYmUoKSB7XG4gICAgaWYgKCF0aGlzLmNsb3NlZCkge1xuICAgICAgY29uc3QgeyBpZCwgc2NoZWR1bGVyIH0gPSB0aGlzO1xuICAgICAgY29uc3QgeyBhY3Rpb25zIH0gPSBzY2hlZHVsZXI7XG5cbiAgICAgIHRoaXMud29yayA9IHRoaXMuc3RhdGUgPSB0aGlzLnNjaGVkdWxlciA9IG51bGwhO1xuICAgICAgdGhpcy5wZW5kaW5nID0gZmFsc2U7XG5cbiAgICAgIGFyclJlbW92ZShhY3Rpb25zLCB0aGlzKTtcbiAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuaWQgPSB0aGlzLnJlY3ljbGVBc3luY0lkKHNjaGVkdWxlciwgaWQsIG51bGwpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRlbGF5ID0gbnVsbCE7XG4gICAgICBzdXBlci51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIiwgImxldCBuZXh0SGFuZGxlID0gMTtcbi8vIFRoZSBwcm9taXNlIG5lZWRzIHRvIGJlIGNyZWF0ZWQgbGF6aWx5IG90aGVyd2lzZSBpdCB3b24ndCBiZSBwYXRjaGVkIGJ5IFpvbmVzXG5sZXQgcmVzb2x2ZWQ6IFByb21pc2U8YW55PjtcbmNvbnN0IGFjdGl2ZUhhbmRsZXM6IHsgW2tleTogbnVtYmVyXTogYW55IH0gPSB7fTtcblxuLyoqXG4gKiBGaW5kcyB0aGUgaGFuZGxlIGluIHRoZSBsaXN0IG9mIGFjdGl2ZSBoYW5kbGVzLCBhbmQgcmVtb3ZlcyBpdC5cbiAqIFJldHVybnMgYHRydWVgIGlmIGZvdW5kLCBgZmFsc2VgIG90aGVyd2lzZS4gVXNlZCBib3RoIHRvIGNsZWFyXG4gKiBJbW1lZGlhdGUgc2NoZWR1bGVkIHRhc2tzLCBhbmQgdG8gaWRlbnRpZnkgaWYgYSB0YXNrIHNob3VsZCBiZSBzY2hlZHVsZWQuXG4gKi9cbmZ1bmN0aW9uIGZpbmRBbmRDbGVhckhhbmRsZShoYW5kbGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICBpZiAoaGFuZGxlIGluIGFjdGl2ZUhhbmRsZXMpIHtcbiAgICBkZWxldGUgYWN0aXZlSGFuZGxlc1toYW5kbGVdO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb25zIHRvIHNjaGVkdWxlIGFuZCB1bnNjaGVkdWxlIG1pY3JvdGFza3MuXG4gKi9cbmV4cG9ydCBjb25zdCBJbW1lZGlhdGUgPSB7XG4gIHNldEltbWVkaWF0ZShjYjogKCkgPT4gdm9pZCk6IG51bWJlciB7XG4gICAgY29uc3QgaGFuZGxlID0gbmV4dEhhbmRsZSsrO1xuICAgIGFjdGl2ZUhhbmRsZXNbaGFuZGxlXSA9IHRydWU7XG4gICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgcmVzb2x2ZWQgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG4gICAgcmVzb2x2ZWQudGhlbigoKSA9PiBmaW5kQW5kQ2xlYXJIYW5kbGUoaGFuZGxlKSAmJiBjYigpKTtcbiAgICByZXR1cm4gaGFuZGxlO1xuICB9LFxuXG4gIGNsZWFySW1tZWRpYXRlKGhhbmRsZTogbnVtYmVyKTogdm9pZCB7XG4gICAgZmluZEFuZENsZWFySGFuZGxlKGhhbmRsZSk7XG4gIH0sXG59O1xuXG4vKipcbiAqIFVzZWQgZm9yIGludGVybmFsIHRlc3RpbmcgcHVycG9zZXMgb25seS4gRG8gbm90IGV4cG9ydCBmcm9tIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBUZXN0VG9vbHMgPSB7XG4gIHBlbmRpbmcoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGFjdGl2ZUhhbmRsZXMpLmxlbmd0aDtcbiAgfVxufTtcbiIsICJpbXBvcnQgeyBJbW1lZGlhdGUgfSBmcm9tICcuLi91dGlsL0ltbWVkaWF0ZSc7XG5pbXBvcnQgdHlwZSB7IFRpbWVySGFuZGxlIH0gZnJvbSAnLi90aW1lckhhbmRsZSc7XG5jb25zdCB7IHNldEltbWVkaWF0ZSwgY2xlYXJJbW1lZGlhdGUgfSA9IEltbWVkaWF0ZTtcblxudHlwZSBTZXRJbW1lZGlhdGVGdW5jdGlvbiA9IChoYW5kbGVyOiAoKSA9PiB2b2lkLCAuLi5hcmdzOiBhbnlbXSkgPT4gVGltZXJIYW5kbGU7XG50eXBlIENsZWFySW1tZWRpYXRlRnVuY3Rpb24gPSAoaGFuZGxlOiBUaW1lckhhbmRsZSkgPT4gdm9pZDtcblxuaW50ZXJmYWNlIEltbWVkaWF0ZVByb3ZpZGVyIHtcbiAgc2V0SW1tZWRpYXRlOiBTZXRJbW1lZGlhdGVGdW5jdGlvbjtcbiAgY2xlYXJJbW1lZGlhdGU6IENsZWFySW1tZWRpYXRlRnVuY3Rpb247XG4gIGRlbGVnYXRlOlxuICAgIHwge1xuICAgICAgICBzZXRJbW1lZGlhdGU6IFNldEltbWVkaWF0ZUZ1bmN0aW9uO1xuICAgICAgICBjbGVhckltbWVkaWF0ZTogQ2xlYXJJbW1lZGlhdGVGdW5jdGlvbjtcbiAgICAgIH1cbiAgICB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGNvbnN0IGltbWVkaWF0ZVByb3ZpZGVyOiBJbW1lZGlhdGVQcm92aWRlciA9IHtcbiAgLy8gV2hlbiBhY2Nlc3NpbmcgdGhlIGRlbGVnYXRlLCB1c2UgdGhlIHZhcmlhYmxlIHJhdGhlciB0aGFuIGB0aGlzYCBzbyB0aGF0XG4gIC8vIHRoZSBmdW5jdGlvbnMgY2FuIGJlIGNhbGxlZCB3aXRob3V0IGJlaW5nIGJvdW5kIHRvIHRoZSBwcm92aWRlci5cbiAgc2V0SW1tZWRpYXRlKC4uLmFyZ3MpIHtcbiAgICBjb25zdCB7IGRlbGVnYXRlIH0gPSBpbW1lZGlhdGVQcm92aWRlcjtcbiAgICByZXR1cm4gKGRlbGVnYXRlPy5zZXRJbW1lZGlhdGUgfHwgc2V0SW1tZWRpYXRlKSguLi5hcmdzKTtcbiAgfSxcbiAgY2xlYXJJbW1lZGlhdGUoaGFuZGxlKSB7XG4gICAgY29uc3QgeyBkZWxlZ2F0ZSB9ID0gaW1tZWRpYXRlUHJvdmlkZXI7XG4gICAgcmV0dXJuIChkZWxlZ2F0ZT8uY2xlYXJJbW1lZGlhdGUgfHwgY2xlYXJJbW1lZGlhdGUpKGhhbmRsZSBhcyBhbnkpO1xuICB9LFxuICBkZWxlZ2F0ZTogdW5kZWZpbmVkLFxufTtcbiIsICJpbXBvcnQgeyBBc3luY0FjdGlvbiB9IGZyb20gJy4vQXN5bmNBY3Rpb24nO1xuaW1wb3J0IHsgQXNhcFNjaGVkdWxlciB9IGZyb20gJy4vQXNhcFNjaGVkdWxlcic7XG5pbXBvcnQgeyBTY2hlZHVsZXJBY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpbW1lZGlhdGVQcm92aWRlciB9IGZyb20gJy4vaW1tZWRpYXRlUHJvdmlkZXInO1xuaW1wb3J0IHsgVGltZXJIYW5kbGUgfSBmcm9tICcuL3RpbWVySGFuZGxlJztcblxuZXhwb3J0IGNsYXNzIEFzYXBBY3Rpb248VD4gZXh0ZW5kcyBBc3luY0FjdGlvbjxUPiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzY2hlZHVsZXI6IEFzYXBTY2hlZHVsZXIsIHByb3RlY3RlZCB3b3JrOiAodGhpczogU2NoZWR1bGVyQWN0aW9uPFQ+LCBzdGF0ZT86IFQpID0+IHZvaWQpIHtcbiAgICBzdXBlcihzY2hlZHVsZXIsIHdvcmspO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlcXVlc3RBc3luY0lkKHNjaGVkdWxlcjogQXNhcFNjaGVkdWxlciwgaWQ/OiBUaW1lckhhbmRsZSwgZGVsYXk6IG51bWJlciA9IDApOiBUaW1lckhhbmRsZSB7XG4gICAgLy8gSWYgZGVsYXkgaXMgZ3JlYXRlciB0aGFuIDAsIHJlcXVlc3QgYXMgYW4gYXN5bmMgYWN0aW9uLlxuICAgIGlmIChkZWxheSAhPT0gbnVsbCAmJiBkZWxheSA+IDApIHtcbiAgICAgIHJldHVybiBzdXBlci5yZXF1ZXN0QXN5bmNJZChzY2hlZHVsZXIsIGlkLCBkZWxheSk7XG4gICAgfVxuICAgIC8vIFB1c2ggdGhlIGFjdGlvbiB0byB0aGUgZW5kIG9mIHRoZSBzY2hlZHVsZXIgcXVldWUuXG4gICAgc2NoZWR1bGVyLmFjdGlvbnMucHVzaCh0aGlzKTtcbiAgICAvLyBJZiBhIG1pY3JvdGFzayBoYXMgYWxyZWFkeSBiZWVuIHNjaGVkdWxlZCwgZG9uJ3Qgc2NoZWR1bGUgYW5vdGhlclxuICAgIC8vIG9uZS4gSWYgYSBtaWNyb3Rhc2sgaGFzbid0IGJlZW4gc2NoZWR1bGVkIHlldCwgc2NoZWR1bGUgb25lIG5vdy4gUmV0dXJuXG4gICAgLy8gdGhlIGN1cnJlbnQgc2NoZWR1bGVkIG1pY3JvdGFzayBpZC5cbiAgICByZXR1cm4gc2NoZWR1bGVyLl9zY2hlZHVsZWQgfHwgKHNjaGVkdWxlci5fc2NoZWR1bGVkID0gaW1tZWRpYXRlUHJvdmlkZXIuc2V0SW1tZWRpYXRlKHNjaGVkdWxlci5mbHVzaC5iaW5kKHNjaGVkdWxlciwgdW5kZWZpbmVkKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlY3ljbGVBc3luY0lkKHNjaGVkdWxlcjogQXNhcFNjaGVkdWxlciwgaWQ/OiBUaW1lckhhbmRsZSwgZGVsYXk6IG51bWJlciA9IDApOiBUaW1lckhhbmRsZSB8IHVuZGVmaW5lZCB7XG4gICAgLy8gSWYgZGVsYXkgZXhpc3RzIGFuZCBpcyBncmVhdGVyIHRoYW4gMCwgb3IgaWYgdGhlIGRlbGF5IGlzIG51bGwgKHRoZVxuICAgIC8vIGFjdGlvbiB3YXNuJ3QgcmVzY2hlZHVsZWQpIGJ1dCB3YXMgb3JpZ2luYWxseSBzY2hlZHVsZWQgYXMgYW4gYXN5bmNcbiAgICAvLyBhY3Rpb24sIHRoZW4gcmVjeWNsZSBhcyBhbiBhc3luYyBhY3Rpb24uXG4gICAgaWYgKGRlbGF5ICE9IG51bGwgPyBkZWxheSA+IDAgOiB0aGlzLmRlbGF5ID4gMCkge1xuICAgICAgcmV0dXJuIHN1cGVyLnJlY3ljbGVBc3luY0lkKHNjaGVkdWxlciwgaWQsIGRlbGF5KTtcbiAgICB9XG4gICAgLy8gSWYgdGhlIHNjaGVkdWxlciBxdWV1ZSBoYXMgbm8gcmVtYWluaW5nIGFjdGlvbnMgd2l0aCB0aGUgc2FtZSBhc3luYyBpZCxcbiAgICAvLyBjYW5jZWwgdGhlIHJlcXVlc3RlZCBtaWNyb3Rhc2sgYW5kIHNldCB0aGUgc2NoZWR1bGVkIGZsYWcgdG8gdW5kZWZpbmVkXG4gICAgLy8gc28gdGhlIG5leHQgQXNhcEFjdGlvbiB3aWxsIHJlcXVlc3QgaXRzIG93bi5cbiAgICBjb25zdCB7IGFjdGlvbnMgfSA9IHNjaGVkdWxlcjtcbiAgICBpZiAoaWQgIT0gbnVsbCAmJiBhY3Rpb25zW2FjdGlvbnMubGVuZ3RoIC0gMV0/LmlkICE9PSBpZCkge1xuICAgICAgaW1tZWRpYXRlUHJvdmlkZXIuY2xlYXJJbW1lZGlhdGUoaWQpO1xuICAgICAgaWYgKHNjaGVkdWxlci5fc2NoZWR1bGVkID09PSBpZCkge1xuICAgICAgICBzY2hlZHVsZXIuX3NjaGVkdWxlZCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUmV0dXJuIHVuZGVmaW5lZCBzbyB0aGUgYWN0aW9uIGtub3dzIHRvIHJlcXVlc3QgYSBuZXcgYXN5bmMgaWQgaWYgaXQncyByZXNjaGVkdWxlZC5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9zY2hlZHVsZXIvQWN0aW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4vU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IFNjaGVkdWxlckxpa2UsIFNjaGVkdWxlckFjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgZGF0ZVRpbWVzdGFtcFByb3ZpZGVyIH0gZnJvbSAnLi9zY2hlZHVsZXIvZGF0ZVRpbWVzdGFtcFByb3ZpZGVyJztcblxuLyoqXG4gKiBBbiBleGVjdXRpb24gY29udGV4dCBhbmQgYSBkYXRhIHN0cnVjdHVyZSB0byBvcmRlciB0YXNrcyBhbmQgc2NoZWR1bGUgdGhlaXJcbiAqIGV4ZWN1dGlvbi4gUHJvdmlkZXMgYSBub3Rpb24gb2YgKHBvdGVudGlhbGx5IHZpcnR1YWwpIHRpbWUsIHRocm91Z2ggdGhlXG4gKiBgbm93KClgIGdldHRlciBtZXRob2QuXG4gKlxuICogRWFjaCB1bml0IG9mIHdvcmsgaW4gYSBTY2hlZHVsZXIgaXMgY2FsbGVkIGFuIGBBY3Rpb25gLlxuICpcbiAqIGBgYHRzXG4gKiBjbGFzcyBTY2hlZHVsZXIge1xuICogICBub3coKTogbnVtYmVyO1xuICogICBzY2hlZHVsZSh3b3JrLCBkZWxheT8sIHN0YXRlPyk6IFN1YnNjcmlwdGlvbjtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBkZXByZWNhdGVkIFNjaGVkdWxlciBpcyBhbiBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgUnhKUywgYW5kXG4gKiBzaG91bGQgbm90IGJlIHVzZWQgZGlyZWN0bHkuIFJhdGhlciwgY3JlYXRlIHlvdXIgb3duIGNsYXNzIGFuZCBpbXBsZW1lbnRcbiAqIHtAbGluayBTY2hlZHVsZXJMaWtlfS4gV2lsbCBiZSBtYWRlIGludGVybmFsIGluIHY4LlxuICovXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVyIGltcGxlbWVudHMgU2NoZWR1bGVyTGlrZSB7XG4gIHB1YmxpYyBzdGF0aWMgbm93OiAoKSA9PiBudW1iZXIgPSBkYXRlVGltZXN0YW1wUHJvdmlkZXIubm93O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2NoZWR1bGVyQWN0aW9uQ3RvcjogdHlwZW9mIEFjdGlvbiwgbm93OiAoKSA9PiBudW1iZXIgPSBTY2hlZHVsZXIubm93KSB7XG4gICAgdGhpcy5ub3cgPSBub3c7XG4gIH1cblxuICAvKipcbiAgICogQSBnZXR0ZXIgbWV0aG9kIHRoYXQgcmV0dXJucyBhIG51bWJlciByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgdGltZVxuICAgKiAoYXQgdGhlIHRpbWUgdGhpcyBmdW5jdGlvbiB3YXMgY2FsbGVkKSBhY2NvcmRpbmcgdG8gdGhlIHNjaGVkdWxlcidzIG93blxuICAgKiBpbnRlcm5hbCBjbG9jay5cbiAgICogQHJldHVybiBBIG51bWJlciB0aGF0IHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgdGltZS4gTWF5IG9yIG1heSBub3RcbiAgICogaGF2ZSBhIHJlbGF0aW9uIHRvIHdhbGwtY2xvY2sgdGltZS4gTWF5IG9yIG1heSBub3QgcmVmZXIgdG8gYSB0aW1lIHVuaXRcbiAgICogKGUuZy4gbWlsbGlzZWNvbmRzKS5cbiAgICovXG4gIHB1YmxpYyBub3c6ICgpID0+IG51bWJlcjtcblxuICAvKipcbiAgICogU2NoZWR1bGVzIGEgZnVuY3Rpb24sIGB3b3JrYCwgZm9yIGV4ZWN1dGlvbi4gTWF5IGhhcHBlbiBhdCBzb21lIHBvaW50IGluXG4gICAqIHRoZSBmdXR1cmUsIGFjY29yZGluZyB0byB0aGUgYGRlbGF5YCBwYXJhbWV0ZXIsIGlmIHNwZWNpZmllZC4gTWF5IGJlIHBhc3NlZFxuICAgKiBzb21lIGNvbnRleHQgb2JqZWN0LCBgc3RhdGVgLCB3aGljaCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgYHdvcmtgIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBUaGUgZ2l2ZW4gYXJndW1lbnRzIHdpbGwgYmUgcHJvY2Vzc2VkIGFuIHN0b3JlZCBhcyBhbiBBY3Rpb24gb2JqZWN0IGluIGFcbiAgICogcXVldWUgb2YgYWN0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHdvcmsgQSBmdW5jdGlvbiByZXByZXNlbnRpbmcgYSB0YXNrLCBvciBzb21lIHVuaXQgb2Ygd29yayB0byBiZVxuICAgKiBleGVjdXRlZCBieSB0aGUgU2NoZWR1bGVyLlxuICAgKiBAcGFyYW0gZGVsYXkgVGltZSB0byB3YWl0IGJlZm9yZSBleGVjdXRpbmcgdGhlIHdvcmssIHdoZXJlIHRoZSB0aW1lIHVuaXQgaXNcbiAgICogaW1wbGljaXQgYW5kIGRlZmluZWQgYnkgdGhlIFNjaGVkdWxlciBpdHNlbGYuXG4gICAqIEBwYXJhbSBzdGF0ZSBTb21lIGNvbnRleHR1YWwgZGF0YSB0aGF0IHRoZSBgd29ya2AgZnVuY3Rpb24gdXNlcyB3aGVuIGNhbGxlZFxuICAgKiBieSB0aGUgU2NoZWR1bGVyLlxuICAgKiBAcmV0dXJuIEEgc3Vic2NyaXB0aW9uIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gdW5zdWJzY3JpYmUgdGhlIHNjaGVkdWxlZCB3b3JrLlxuICAgKi9cbiAgcHVibGljIHNjaGVkdWxlPFQ+KHdvcms6ICh0aGlzOiBTY2hlZHVsZXJBY3Rpb248VD4sIHN0YXRlPzogVCkgPT4gdm9pZCwgZGVsYXk6IG51bWJlciA9IDAsIHN0YXRlPzogVCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIG5ldyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3I8VD4odGhpcywgd29yaykuc2NoZWR1bGUoc3RhdGUsIGRlbGF5KTtcbiAgfVxufVxuIiwgImltcG9ydCB7IFNjaGVkdWxlciB9IGZyb20gJy4uL1NjaGVkdWxlcic7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL0FjdGlvbic7XG5pbXBvcnQgeyBBc3luY0FjdGlvbiB9IGZyb20gJy4vQXN5bmNBY3Rpb24nO1xuaW1wb3J0IHsgVGltZXJIYW5kbGUgfSBmcm9tICcuL3RpbWVySGFuZGxlJztcblxuZXhwb3J0IGNsYXNzIEFzeW5jU2NoZWR1bGVyIGV4dGVuZHMgU2NoZWR1bGVyIHtcbiAgcHVibGljIGFjdGlvbnM6IEFycmF5PEFzeW5jQWN0aW9uPGFueT4+ID0gW107XG4gIC8qKlxuICAgKiBBIGZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgU2NoZWR1bGVyIGlzIGN1cnJlbnRseSBleGVjdXRpbmcgYSBiYXRjaCBvZlxuICAgKiBxdWV1ZWQgYWN0aW9ucy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX2FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAvKipcbiAgICogQW4gaW50ZXJuYWwgSUQgdXNlZCB0byB0cmFjayB0aGUgbGF0ZXN0IGFzeW5jaHJvbm91cyB0YXNrIHN1Y2ggYXMgdGhvc2VcbiAgICogY29taW5nIGZyb20gYHNldFRpbWVvdXRgLCBgc2V0SW50ZXJ2YWxgLCBgcmVxdWVzdEFuaW1hdGlvbkZyYW1lYCwgYW5kXG4gICAqIG90aGVycy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3NjaGVkdWxlZDogVGltZXJIYW5kbGUgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoU2NoZWR1bGVyQWN0aW9uOiB0eXBlb2YgQWN0aW9uLCBub3c6ICgpID0+IG51bWJlciA9IFNjaGVkdWxlci5ub3cpIHtcbiAgICBzdXBlcihTY2hlZHVsZXJBY3Rpb24sIG5vdyk7XG4gIH1cblxuICBwdWJsaWMgZmx1c2goYWN0aW9uOiBBc3luY0FjdGlvbjxhbnk+KTogdm9pZCB7XG4gICAgY29uc3QgeyBhY3Rpb25zIH0gPSB0aGlzO1xuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZSkge1xuICAgICAgYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGVycm9yOiBhbnk7XG4gICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTtcblxuICAgIGRvIHtcbiAgICAgIGlmICgoZXJyb3IgPSBhY3Rpb24uZXhlY3V0ZShhY3Rpb24uc3RhdGUsIGFjdGlvbi5kZWxheSkpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gd2hpbGUgKChhY3Rpb24gPSBhY3Rpb25zLnNoaWZ0KCkhKSk7IC8vIGV4aGF1c3QgdGhlIHNjaGVkdWxlciBxdWV1ZVxuXG4gICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHdoaWxlICgoYWN0aW9uID0gYWN0aW9ucy5zaGlmdCgpISkpIHtcbiAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBBc3luY0FjdGlvbiB9IGZyb20gJy4vQXN5bmNBY3Rpb24nO1xuaW1wb3J0IHsgQXN5bmNTY2hlZHVsZXIgfSBmcm9tICcuL0FzeW5jU2NoZWR1bGVyJztcblxuZXhwb3J0IGNsYXNzIEFzYXBTY2hlZHVsZXIgZXh0ZW5kcyBBc3luY1NjaGVkdWxlciB7XG4gIHB1YmxpYyBmbHVzaChhY3Rpb24/OiBBc3luY0FjdGlvbjxhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTtcbiAgICAvLyBUaGUgYXN5bmMgaWQgdGhhdCBlZmZlY3RzIGEgY2FsbCB0byBmbHVzaCBpcyBzdG9yZWQgaW4gX3NjaGVkdWxlZC5cbiAgICAvLyBCZWZvcmUgZXhlY3V0aW5nIGFuIGFjdGlvbiwgaXQncyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIGFjdGlvbidzIGFzeW5jXG4gICAgLy8gaWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQncyBzdXBwb3NlZCB0byBiZSBleGVjdXRlZCBpbiB0aGUgY3VycmVudFxuICAgIC8vIGZsdXNoLlxuICAgIC8vIFByZXZpb3VzIGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCB1c2VkIGEgY291bnQgdG8gZGV0ZXJtaW5lIHRoaXMsXG4gICAgLy8gYnV0IHRoYXQgd2FzIHVuc291bmQsIGFzIGFjdGlvbnMgdGhhdCBhcmUgdW5zdWJzY3JpYmVkIC0gaS5lLiBjYW5jZWxsZWQgLVxuICAgIC8vIGFyZSByZW1vdmVkIGZyb20gdGhlIGFjdGlvbnMgYXJyYXkgYW5kIHRoYXQgY2FuIHNoaWZ0IGFjdGlvbnMgdGhhdCBhcmVcbiAgICAvLyBzY2hlZHVsZWQgdG8gYmUgZXhlY3V0ZWQgaW4gYSBzdWJzZXF1ZW50IGZsdXNoIGludG8gcG9zaXRpb25zIGF0IHdoaWNoXG4gICAgLy8gdGhleSBhcmUgZXhlY3V0ZWQgd2l0aGluIHRoZSBjdXJyZW50IGZsdXNoLlxuICAgIGNvbnN0IGZsdXNoSWQgPSB0aGlzLl9zY2hlZHVsZWQ7XG4gICAgdGhpcy5fc2NoZWR1bGVkID0gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgeyBhY3Rpb25zIH0gPSB0aGlzO1xuICAgIGxldCBlcnJvcjogYW55O1xuICAgIGFjdGlvbiA9IGFjdGlvbiB8fCBhY3Rpb25zLnNoaWZ0KCkhO1xuXG4gICAgZG8ge1xuICAgICAgaWYgKChlcnJvciA9IGFjdGlvbi5leGVjdXRlKGFjdGlvbi5zdGF0ZSwgYWN0aW9uLmRlbGF5KSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5pZCA9PT0gZmx1c2hJZCAmJiBhY3Rpb25zLnNoaWZ0KCkpO1xuXG4gICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHdoaWxlICgoYWN0aW9uID0gYWN0aW9uc1swXSkgJiYgYWN0aW9uLmlkID09PSBmbHVzaElkICYmIGFjdGlvbnMuc2hpZnQoKSkge1xuICAgICAgICBhY3Rpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7IEFzYXBBY3Rpb24gfSBmcm9tICcuL0FzYXBBY3Rpb24nO1xuaW1wb3J0IHsgQXNhcFNjaGVkdWxlciB9IGZyb20gJy4vQXNhcFNjaGVkdWxlcic7XG5cbi8qKlxuICpcbiAqIEFzYXAgU2NoZWR1bGVyXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPlBlcmZvcm0gdGFzayBhcyBmYXN0IGFzIGl0IGNhbiBiZSBwZXJmb3JtZWQgYXN5bmNocm9ub3VzbHk8L3NwYW4+XG4gKlxuICogYGFzYXBgIHNjaGVkdWxlciBiZWhhdmVzIHRoZSBzYW1lIGFzIHtAbGluayBhc3luY1NjaGVkdWxlcn0gc2NoZWR1bGVyIHdoZW4geW91IHVzZSBpdCB0byBkZWxheSB0YXNrXG4gKiBpbiB0aW1lLiBJZiBob3dldmVyIHlvdSBzZXQgZGVsYXkgdG8gYDBgLCBgYXNhcGAgd2lsbCB3YWl0IGZvciBjdXJyZW50IHN5bmNocm9ub3VzbHkgZXhlY3V0aW5nXG4gKiBjb2RlIHRvIGVuZCBhbmQgdGhlbiBpdCB3aWxsIHRyeSB0byBleGVjdXRlIGdpdmVuIHRhc2sgYXMgZmFzdCBhcyBwb3NzaWJsZS5cbiAqXG4gKiBgYXNhcGAgc2NoZWR1bGVyIHdpbGwgZG8gaXRzIGJlc3QgdG8gbWluaW1pemUgdGltZSBiZXR3ZWVuIGVuZCBvZiBjdXJyZW50bHkgZXhlY3V0aW5nIGNvZGVcbiAqIGFuZCBzdGFydCBvZiBzY2hlZHVsZWQgdGFzay4gVGhpcyBtYWtlcyBpdCBiZXN0IGNhbmRpZGF0ZSBmb3IgcGVyZm9ybWluZyBzbyBjYWxsZWQgXCJkZWZlcnJpbmdcIi5cbiAqIFRyYWRpdGlvbmFsbHkgdGhpcyB3YXMgYWNoaWV2ZWQgYnkgY2FsbGluZyBgc2V0VGltZW91dChkZWZlcnJlZFRhc2ssIDApYCwgYnV0IHRoYXQgdGVjaG5pcXVlIGludm9sdmVzXG4gKiBzb21lIChhbHRob3VnaCBtaW5pbWFsKSB1bndhbnRlZCBkZWxheS5cbiAqXG4gKiBOb3RlIHRoYXQgdXNpbmcgYGFzYXBgIHNjaGVkdWxlciBkb2VzIG5vdCBuZWNlc3NhcmlseSBtZWFuIHRoYXQgeW91ciB0YXNrIHdpbGwgYmUgZmlyc3QgdG8gcHJvY2Vzc1xuICogYWZ0ZXIgY3VycmVudGx5IGV4ZWN1dGluZyBjb2RlLiBJbiBwYXJ0aWN1bGFyLCBpZiBzb21lIHRhc2sgd2FzIGFsc28gc2NoZWR1bGVkIHdpdGggYGFzYXBgIGJlZm9yZSxcbiAqIHRoYXQgdGFzayB3aWxsIGV4ZWN1dGUgZmlyc3QuIFRoYXQgYmVpbmcgc2FpZCwgaWYgeW91IG5lZWQgdG8gc2NoZWR1bGUgdGFzayBhc3luY2hyb25vdXNseSwgYnV0XG4gKiBhcyBzb29uIGFzIHBvc3NpYmxlLCBgYXNhcGAgc2NoZWR1bGVyIGlzIHlvdXIgYmVzdCBiZXQuXG4gKlxuICogIyMgRXhhbXBsZVxuICogQ29tcGFyZSBhc3luYyBhbmQgYXNhcCBzY2hlZHVsZXI8XG4gKiBgYGB0c1xuICogaW1wb3J0IHsgYXNhcFNjaGVkdWxlciwgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBhc3luY1NjaGVkdWxlci5zY2hlZHVsZSgoKSA9PiBjb25zb2xlLmxvZygnYXN5bmMnKSk7IC8vIHNjaGVkdWxpbmcgJ2FzeW5jJyBmaXJzdC4uLlxuICogYXNhcFNjaGVkdWxlci5zY2hlZHVsZSgoKSA9PiBjb25zb2xlLmxvZygnYXNhcCcpKTtcbiAqXG4gKiAvLyBMb2dzOlxuICogLy8gXCJhc2FwXCJcbiAqIC8vIFwiYXN5bmNcIlxuICogLy8gLi4uIGJ1dCAnYXNhcCcgZ29lcyBmaXJzdCFcbiAqIGBgYFxuICovXG5cbmV4cG9ydCBjb25zdCBhc2FwU2NoZWR1bGVyID0gbmV3IEFzYXBTY2hlZHVsZXIoQXNhcEFjdGlvbik7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgUmVuYW1lZCB0byB7QGxpbmsgYXNhcFNjaGVkdWxlcn0uIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAqL1xuZXhwb3J0IGNvbnN0IGFzYXAgPSBhc2FwU2NoZWR1bGVyO1xuIiwgImltcG9ydCB7IEFzeW5jQWN0aW9uIH0gZnJvbSAnLi9Bc3luY0FjdGlvbic7XG5pbXBvcnQgeyBBc3luY1NjaGVkdWxlciB9IGZyb20gJy4vQXN5bmNTY2hlZHVsZXInO1xuXG4vKipcbiAqXG4gKiBBc3luYyBTY2hlZHVsZXJcbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+U2NoZWR1bGUgdGFzayBhcyBpZiB5b3UgdXNlZCBzZXRUaW1lb3V0KHRhc2ssIGR1cmF0aW9uKTwvc3Bhbj5cbiAqXG4gKiBgYXN5bmNgIHNjaGVkdWxlciBzY2hlZHVsZXMgdGFza3MgYXN5bmNocm9ub3VzbHksIGJ5IHB1dHRpbmcgdGhlbSBvbiB0aGUgSmF2YVNjcmlwdFxuICogZXZlbnQgbG9vcCBxdWV1ZS4gSXQgaXMgYmVzdCB1c2VkIHRvIGRlbGF5IHRhc2tzIGluIHRpbWUgb3IgdG8gc2NoZWR1bGUgdGFza3MgcmVwZWF0aW5nXG4gKiBpbiBpbnRlcnZhbHMuXG4gKlxuICogSWYgeW91IGp1c3Qgd2FudCB0byBcImRlZmVyXCIgdGFzaywgdGhhdCBpcyB0byBwZXJmb3JtIGl0IHJpZ2h0IGFmdGVyIGN1cnJlbnRseVxuICogZXhlY3V0aW5nIHN5bmNocm9ub3VzIGNvZGUgZW5kcyAoY29tbW9ubHkgYWNoaWV2ZWQgYnkgYHNldFRpbWVvdXQoZGVmZXJyZWRUYXNrLCAwKWApLFxuICogYmV0dGVyIGNob2ljZSB3aWxsIGJlIHRoZSB7QGxpbmsgYXNhcFNjaGVkdWxlcn0gc2NoZWR1bGVyLlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKiBVc2UgYXN5bmMgc2NoZWR1bGVyIHRvIGRlbGF5IHRhc2tcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBhc3luY1NjaGVkdWxlciB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHRhc2sgPSAoKSA9PiBjb25zb2xlLmxvZygnaXQgd29ya3MhJyk7XG4gKlxuICogYXN5bmNTY2hlZHVsZXIuc2NoZWR1bGUodGFzaywgMjAwMCk7XG4gKlxuICogLy8gQWZ0ZXIgMiBzZWNvbmRzIGxvZ3M6XG4gKiAvLyBcIml0IHdvcmtzIVwiXG4gKiBgYGBcbiAqXG4gKiBVc2UgYXN5bmMgc2NoZWR1bGVyIHRvIHJlcGVhdCB0YXNrIGluIGludGVydmFsc1xuICogYGBgdHNcbiAqIGltcG9ydCB7IGFzeW5jU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG4gKlxuICogZnVuY3Rpb24gdGFzayhzdGF0ZSkge1xuICogICBjb25zb2xlLmxvZyhzdGF0ZSk7XG4gKiAgIHRoaXMuc2NoZWR1bGUoc3RhdGUgKyAxLCAxMDAwKTsgLy8gYHRoaXNgIHJlZmVyZW5jZXMgY3VycmVudGx5IGV4ZWN1dGluZyBBY3Rpb24sXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggd2UgcmVzY2hlZHVsZSB3aXRoIG5ldyBzdGF0ZSBhbmQgZGVsYXlcbiAqIH1cbiAqXG4gKiBhc3luY1NjaGVkdWxlci5zY2hlZHVsZSh0YXNrLCAzMDAwLCAwKTtcbiAqXG4gKiAvLyBMb2dzOlxuICogLy8gMCBhZnRlciAzc1xuICogLy8gMSBhZnRlciA0c1xuICogLy8gMiBhZnRlciA1c1xuICogLy8gMyBhZnRlciA2c1xuICogYGBgXG4gKi9cblxuZXhwb3J0IGNvbnN0IGFzeW5jU2NoZWR1bGVyID0gbmV3IEFzeW5jU2NoZWR1bGVyKEFzeW5jQWN0aW9uKTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIHtAbGluayBhc3luY1NjaGVkdWxlcn0uIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAqL1xuZXhwb3J0IGNvbnN0IGFzeW5jID0gYXN5bmNTY2hlZHVsZXI7XG4iLCAiaW1wb3J0IHsgQXN5bmNBY3Rpb24gfSBmcm9tICcuL0FzeW5jQWN0aW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBRdWV1ZVNjaGVkdWxlciB9IGZyb20gJy4vUXVldWVTY2hlZHVsZXInO1xuaW1wb3J0IHsgU2NoZWR1bGVyQWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgVGltZXJIYW5kbGUgfSBmcm9tICcuL3RpbWVySGFuZGxlJztcblxuZXhwb3J0IGNsYXNzIFF1ZXVlQWN0aW9uPFQ+IGV4dGVuZHMgQXN5bmNBY3Rpb248VD4ge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2NoZWR1bGVyOiBRdWV1ZVNjaGVkdWxlciwgcHJvdGVjdGVkIHdvcms6ICh0aGlzOiBTY2hlZHVsZXJBY3Rpb248VD4sIHN0YXRlPzogVCkgPT4gdm9pZCkge1xuICAgIHN1cGVyKHNjaGVkdWxlciwgd29yayk7XG4gIH1cblxuICBwdWJsaWMgc2NoZWR1bGUoc3RhdGU/OiBULCBkZWxheTogbnVtYmVyID0gMCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgaWYgKGRlbGF5ID4gMCkge1xuICAgICAgcmV0dXJuIHN1cGVyLnNjaGVkdWxlKHN0YXRlLCBkZWxheSk7XG4gICAgfVxuICAgIHRoaXMuZGVsYXkgPSBkZWxheTtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5zY2hlZHVsZXIuZmx1c2godGhpcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZXhlY3V0ZShzdGF0ZTogVCwgZGVsYXk6IG51bWJlcik6IGFueSB7XG4gICAgcmV0dXJuIGRlbGF5ID4gMCB8fCB0aGlzLmNsb3NlZCA/IHN1cGVyLmV4ZWN1dGUoc3RhdGUsIGRlbGF5KSA6IHRoaXMuX2V4ZWN1dGUoc3RhdGUsIGRlbGF5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXF1ZXN0QXN5bmNJZChzY2hlZHVsZXI6IFF1ZXVlU2NoZWR1bGVyLCBpZD86IFRpbWVySGFuZGxlLCBkZWxheTogbnVtYmVyID0gMCk6IFRpbWVySGFuZGxlIHtcbiAgICAvLyBJZiBkZWxheSBleGlzdHMgYW5kIGlzIGdyZWF0ZXIgdGhhbiAwLCBvciBpZiB0aGUgZGVsYXkgaXMgbnVsbCAodGhlXG4gICAgLy8gYWN0aW9uIHdhc24ndCByZXNjaGVkdWxlZCkgYnV0IHdhcyBvcmlnaW5hbGx5IHNjaGVkdWxlZCBhcyBhbiBhc3luY1xuICAgIC8vIGFjdGlvbiwgdGhlbiByZWN5Y2xlIGFzIGFuIGFzeW5jIGFjdGlvbi5cblxuICAgIGlmICgoZGVsYXkgIT0gbnVsbCAmJiBkZWxheSA+IDApIHx8IChkZWxheSA9PSBudWxsICYmIHRoaXMuZGVsYXkgPiAwKSkge1xuICAgICAgcmV0dXJuIHN1cGVyLnJlcXVlc3RBc3luY0lkKHNjaGVkdWxlciwgaWQsIGRlbGF5KTtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UgZmx1c2ggdGhlIHNjaGVkdWxlciBzdGFydGluZyB3aXRoIHRoaXMgYWN0aW9uLlxuICAgIHNjaGVkdWxlci5mbHVzaCh0aGlzKTtcblxuICAgIC8vIEhBQ0s6IEluIHRoZSBwYXN0LCB0aGlzIHdhcyByZXR1cm5pbmcgYHZvaWRgLiBIb3dldmVyLCBgdm9pZGAgaXNuJ3QgYSB2YWxpZFxuICAgIC8vIGBUaW1lckhhbmRsZWAsIGFuZCBnZW5lcmFsbHkgdGhlIHJldHVybiB2YWx1ZSBoZXJlIGlzbid0IHJlYWxseSB1c2VkLiBTbyB0aGVcbiAgICAvLyBjb21wcm9taXNlIGlzIHRvIHJldHVybiBgMGAgd2hpY2ggaXMgYm90aCBcImZhbHN5XCIgYW5kIGEgdmFsaWQgYFRpbWVySGFuZGxlYCxcbiAgICAvLyBhcyBvcHBvc2VkIHRvIHJlZmFjdG9yaW5nIGV2ZXJ5IG90aGVyIGluc3RhbmNlbyBvZiBgcmVxdWVzdEFzeW5jSWRgLlxuICAgIHJldHVybiAwO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgQXN5bmNTY2hlZHVsZXIgfSBmcm9tICcuL0FzeW5jU2NoZWR1bGVyJztcblxuZXhwb3J0IGNsYXNzIFF1ZXVlU2NoZWR1bGVyIGV4dGVuZHMgQXN5bmNTY2hlZHVsZXIge1xufVxuIiwgImltcG9ydCB7IFF1ZXVlQWN0aW9uIH0gZnJvbSAnLi9RdWV1ZUFjdGlvbic7XG5pbXBvcnQgeyBRdWV1ZVNjaGVkdWxlciB9IGZyb20gJy4vUXVldWVTY2hlZHVsZXInO1xuXG4vKipcbiAqXG4gKiBRdWV1ZSBTY2hlZHVsZXJcbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+UHV0IGV2ZXJ5IG5leHQgdGFzayBvbiBhIHF1ZXVlLCBpbnN0ZWFkIG9mIGV4ZWN1dGluZyBpdCBpbW1lZGlhdGVseTwvc3Bhbj5cbiAqXG4gKiBgcXVldWVgIHNjaGVkdWxlciwgd2hlbiB1c2VkIHdpdGggZGVsYXksIGJlaGF2ZXMgdGhlIHNhbWUgYXMge0BsaW5rIGFzeW5jU2NoZWR1bGVyfSBzY2hlZHVsZXIuXG4gKlxuICogV2hlbiB1c2VkIHdpdGhvdXQgZGVsYXksIGl0IHNjaGVkdWxlcyBnaXZlbiB0YXNrIHN5bmNocm9ub3VzbHkgLSBleGVjdXRlcyBpdCByaWdodCB3aGVuXG4gKiBpdCBpcyBzY2hlZHVsZWQuIEhvd2V2ZXIgd2hlbiBjYWxsZWQgcmVjdXJzaXZlbHksIHRoYXQgaXMgd2hlbiBpbnNpZGUgdGhlIHNjaGVkdWxlZCB0YXNrLFxuICogYW5vdGhlciB0YXNrIGlzIHNjaGVkdWxlZCB3aXRoIHF1ZXVlIHNjaGVkdWxlciwgaW5zdGVhZCBvZiBleGVjdXRpbmcgaW1tZWRpYXRlbHkgYXMgd2VsbCxcbiAqIHRoYXQgdGFzayB3aWxsIGJlIHB1dCBvbiBhIHF1ZXVlIGFuZCB3YWl0IGZvciBjdXJyZW50IG9uZSB0byBmaW5pc2guXG4gKlxuICogVGhpcyBtZWFucyB0aGF0IHdoZW4geW91IGV4ZWN1dGUgdGFzayB3aXRoIGBxdWV1ZWAgc2NoZWR1bGVyLCB5b3UgYXJlIHN1cmUgaXQgd2lsbCBlbmRcbiAqIGJlZm9yZSBhbnkgb3RoZXIgdGFzayBzY2hlZHVsZWQgd2l0aCB0aGF0IHNjaGVkdWxlciB3aWxsIHN0YXJ0LlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKiBTY2hlZHVsZSByZWN1cnNpdmVseSBmaXJzdCwgdGhlbiBkbyBzb21ldGhpbmdcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBxdWV1ZVNjaGVkdWxlciB9IGZyb20gJ3J4anMnO1xuICpcbiAqIHF1ZXVlU2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHtcbiAqICAgcXVldWVTY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4gY29uc29sZS5sb2coJ3NlY29uZCcpKTsgLy8gd2lsbCBub3QgaGFwcGVuIG5vdywgYnV0IHdpbGwgYmUgcHV0IG9uIGEgcXVldWVcbiAqXG4gKiAgIGNvbnNvbGUubG9nKCdmaXJzdCcpO1xuICogfSk7XG4gKlxuICogLy8gTG9nczpcbiAqIC8vIFwiZmlyc3RcIlxuICogLy8gXCJzZWNvbmRcIlxuICogYGBgXG4gKlxuICogUmVzY2hlZHVsZSBpdHNlbGYgcmVjdXJzaXZlbHlcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBxdWV1ZVNjaGVkdWxlciB9IGZyb20gJ3J4anMnO1xuICpcbiAqIHF1ZXVlU2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKHN0YXRlKSB7XG4gKiAgIGlmIChzdGF0ZSAhPT0gMCkge1xuICogICAgIGNvbnNvbGUubG9nKCdiZWZvcmUnLCBzdGF0ZSk7XG4gKiAgICAgdGhpcy5zY2hlZHVsZShzdGF0ZSAtIDEpOyAvLyBgdGhpc2AgcmVmZXJlbmNlcyBjdXJyZW50bHkgZXhlY3V0aW5nIEFjdGlvbixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIHdlIHJlc2NoZWR1bGUgd2l0aCBuZXcgc3RhdGVcbiAqICAgICBjb25zb2xlLmxvZygnYWZ0ZXInLCBzdGF0ZSk7XG4gKiAgIH1cbiAqIH0sIDAsIDMpO1xuICpcbiAqIC8vIEluIHNjaGVkdWxlciB0aGF0IHJ1bnMgcmVjdXJzaXZlbHksIHlvdSB3b3VsZCBleHBlY3Q6XG4gKiAvLyBcImJlZm9yZVwiLCAzXG4gKiAvLyBcImJlZm9yZVwiLCAyXG4gKiAvLyBcImJlZm9yZVwiLCAxXG4gKiAvLyBcImFmdGVyXCIsIDFcbiAqIC8vIFwiYWZ0ZXJcIiwgMlxuICogLy8gXCJhZnRlclwiLCAzXG4gKlxuICogLy8gQnV0IHdpdGggcXVldWUgaXQgbG9nczpcbiAqIC8vIFwiYmVmb3JlXCIsIDNcbiAqIC8vIFwiYWZ0ZXJcIiwgM1xuICogLy8gXCJiZWZvcmVcIiwgMlxuICogLy8gXCJhZnRlclwiLCAyXG4gKiAvLyBcImJlZm9yZVwiLCAxXG4gKiAvLyBcImFmdGVyXCIsIDFcbiAqIGBgYFxuICovXG5cbmV4cG9ydCBjb25zdCBxdWV1ZVNjaGVkdWxlciA9IG5ldyBRdWV1ZVNjaGVkdWxlcihRdWV1ZUFjdGlvbik7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgUmVuYW1lZCB0byB7QGxpbmsgcXVldWVTY2hlZHVsZXJ9LiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguXG4gKi9cbmV4cG9ydCBjb25zdCBxdWV1ZSA9IHF1ZXVlU2NoZWR1bGVyO1xuIiwgImltcG9ydCB7IEFzeW5jQWN0aW9uIH0gZnJvbSAnLi9Bc3luY0FjdGlvbic7XG5pbXBvcnQgeyBBbmltYXRpb25GcmFtZVNjaGVkdWxlciB9IGZyb20gJy4vQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXInO1xuaW1wb3J0IHsgU2NoZWR1bGVyQWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgYW5pbWF0aW9uRnJhbWVQcm92aWRlciB9IGZyb20gJy4vYW5pbWF0aW9uRnJhbWVQcm92aWRlcic7XG5pbXBvcnQgeyBUaW1lckhhbmRsZSB9IGZyb20gJy4vdGltZXJIYW5kbGUnO1xuXG5leHBvcnQgY2xhc3MgQW5pbWF0aW9uRnJhbWVBY3Rpb248VD4gZXh0ZW5kcyBBc3luY0FjdGlvbjxUPiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzY2hlZHVsZXI6IEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCBwcm90ZWN0ZWQgd29yazogKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxUPiwgc3RhdGU/OiBUKSA9PiB2b2lkKSB7XG4gICAgc3VwZXIoc2NoZWR1bGVyLCB3b3JrKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXF1ZXN0QXN5bmNJZChzY2hlZHVsZXI6IEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCBpZD86IFRpbWVySGFuZGxlLCBkZWxheTogbnVtYmVyID0gMCk6IFRpbWVySGFuZGxlIHtcbiAgICAvLyBJZiBkZWxheSBpcyBncmVhdGVyIHRoYW4gMCwgcmVxdWVzdCBhcyBhbiBhc3luYyBhY3Rpb24uXG4gICAgaWYgKGRlbGF5ICE9PSBudWxsICYmIGRlbGF5ID4gMCkge1xuICAgICAgcmV0dXJuIHN1cGVyLnJlcXVlc3RBc3luY0lkKHNjaGVkdWxlciwgaWQsIGRlbGF5KTtcbiAgICB9XG4gICAgLy8gUHVzaCB0aGUgYWN0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIHNjaGVkdWxlciBxdWV1ZS5cbiAgICBzY2hlZHVsZXIuYWN0aW9ucy5wdXNoKHRoaXMpO1xuICAgIC8vIElmIGFuIGFuaW1hdGlvbiBmcmFtZSBoYXMgYWxyZWFkeSBiZWVuIHJlcXVlc3RlZCwgZG9uJ3QgcmVxdWVzdCBhbm90aGVyXG4gICAgLy8gb25lLiBJZiBhbiBhbmltYXRpb24gZnJhbWUgaGFzbid0IGJlZW4gcmVxdWVzdGVkIHlldCwgcmVxdWVzdCBvbmUuIFJldHVyblxuICAgIC8vIHRoZSBjdXJyZW50IGFuaW1hdGlvbiBmcmFtZSByZXF1ZXN0IGlkLlxuICAgIHJldHVybiBzY2hlZHVsZXIuX3NjaGVkdWxlZCB8fCAoc2NoZWR1bGVyLl9zY2hlZHVsZWQgPSBhbmltYXRpb25GcmFtZVByb3ZpZGVyLnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiBzY2hlZHVsZXIuZmx1c2godW5kZWZpbmVkKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlY3ljbGVBc3luY0lkKHNjaGVkdWxlcjogQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIGlkPzogVGltZXJIYW5kbGUsIGRlbGF5OiBudW1iZXIgPSAwKTogVGltZXJIYW5kbGUgfCB1bmRlZmluZWQge1xuICAgIC8vIElmIGRlbGF5IGV4aXN0cyBhbmQgaXMgZ3JlYXRlciB0aGFuIDAsIG9yIGlmIHRoZSBkZWxheSBpcyBudWxsICh0aGVcbiAgICAvLyBhY3Rpb24gd2Fzbid0IHJlc2NoZWR1bGVkKSBidXQgd2FzIG9yaWdpbmFsbHkgc2NoZWR1bGVkIGFzIGFuIGFzeW5jXG4gICAgLy8gYWN0aW9uLCB0aGVuIHJlY3ljbGUgYXMgYW4gYXN5bmMgYWN0aW9uLlxuICAgIGlmIChkZWxheSAhPSBudWxsID8gZGVsYXkgPiAwIDogdGhpcy5kZWxheSA+IDApIHtcbiAgICAgIHJldHVybiBzdXBlci5yZWN5Y2xlQXN5bmNJZChzY2hlZHVsZXIsIGlkLCBkZWxheSk7XG4gICAgfVxuICAgIC8vIElmIHRoZSBzY2hlZHVsZXIgcXVldWUgaGFzIG5vIHJlbWFpbmluZyBhY3Rpb25zIHdpdGggdGhlIHNhbWUgYXN5bmMgaWQsXG4gICAgLy8gY2FuY2VsIHRoZSByZXF1ZXN0ZWQgYW5pbWF0aW9uIGZyYW1lIGFuZCBzZXQgdGhlIHNjaGVkdWxlZCBmbGFnIHRvXG4gICAgLy8gdW5kZWZpbmVkIHNvIHRoZSBuZXh0IEFuaW1hdGlvbkZyYW1lQWN0aW9uIHdpbGwgcmVxdWVzdCBpdHMgb3duLlxuICAgIGNvbnN0IHsgYWN0aW9ucyB9ID0gc2NoZWR1bGVyO1xuICAgIGlmIChpZCAhPSBudWxsICYmIGlkID09PSBzY2hlZHVsZXIuX3NjaGVkdWxlZCAmJiBhY3Rpb25zW2FjdGlvbnMubGVuZ3RoIC0gMV0/LmlkICE9PSBpZCkge1xuICAgICAgYW5pbWF0aW9uRnJhbWVQcm92aWRlci5jYW5jZWxBbmltYXRpb25GcmFtZShpZCBhcyBudW1iZXIpO1xuICAgICAgc2NoZWR1bGVyLl9zY2hlZHVsZWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8vIFJldHVybiB1bmRlZmluZWQgc28gdGhlIGFjdGlvbiBrbm93cyB0byByZXF1ZXN0IGEgbmV3IGFzeW5jIGlkIGlmIGl0J3MgcmVzY2hlZHVsZWQuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIiwgImltcG9ydCB7IEFzeW5jQWN0aW9uIH0gZnJvbSAnLi9Bc3luY0FjdGlvbic7XG5pbXBvcnQgeyBBc3luY1NjaGVkdWxlciB9IGZyb20gJy4vQXN5bmNTY2hlZHVsZXInO1xuXG5leHBvcnQgY2xhc3MgQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIgZXh0ZW5kcyBBc3luY1NjaGVkdWxlciB7XG4gIHB1YmxpYyBmbHVzaChhY3Rpb24/OiBBc3luY0FjdGlvbjxhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTtcbiAgICAvLyBUaGUgYXN5bmMgaWQgdGhhdCBlZmZlY3RzIGEgY2FsbCB0byBmbHVzaCBpcyBzdG9yZWQgaW4gX3NjaGVkdWxlZC5cbiAgICAvLyBCZWZvcmUgZXhlY3V0aW5nIGFuIGFjdGlvbiwgaXQncyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIGFjdGlvbidzIGFzeW5jXG4gICAgLy8gaWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQncyBzdXBwb3NlZCB0byBiZSBleGVjdXRlZCBpbiB0aGUgY3VycmVudFxuICAgIC8vIGZsdXNoLlxuICAgIC8vIFByZXZpb3VzIGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCB1c2VkIGEgY291bnQgdG8gZGV0ZXJtaW5lIHRoaXMsXG4gICAgLy8gYnV0IHRoYXQgd2FzIHVuc291bmQsIGFzIGFjdGlvbnMgdGhhdCBhcmUgdW5zdWJzY3JpYmVkIC0gaS5lLiBjYW5jZWxsZWQgLVxuICAgIC8vIGFyZSByZW1vdmVkIGZyb20gdGhlIGFjdGlvbnMgYXJyYXkgYW5kIHRoYXQgY2FuIHNoaWZ0IGFjdGlvbnMgdGhhdCBhcmVcbiAgICAvLyBzY2hlZHVsZWQgdG8gYmUgZXhlY3V0ZWQgaW4gYSBzdWJzZXF1ZW50IGZsdXNoIGludG8gcG9zaXRpb25zIGF0IHdoaWNoXG4gICAgLy8gdGhleSBhcmUgZXhlY3V0ZWQgd2l0aGluIHRoZSBjdXJyZW50IGZsdXNoLlxuICAgIGxldCBmbHVzaElkO1xuICAgIGlmIChhY3Rpb24pIHtcbiAgICAgIGZsdXNoSWQgPSBhY3Rpb24uaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsdXNoSWQgPSB0aGlzLl9zY2hlZHVsZWQ7XG4gICAgICB0aGlzLl9zY2hlZHVsZWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgeyBhY3Rpb25zIH0gPSB0aGlzO1xuICAgIGxldCBlcnJvcjogYW55O1xuICAgIGFjdGlvbiA9IGFjdGlvbiB8fCBhY3Rpb25zLnNoaWZ0KCkhO1xuXG4gICAgZG8ge1xuICAgICAgaWYgKChlcnJvciA9IGFjdGlvbi5leGVjdXRlKGFjdGlvbi5zdGF0ZSwgYWN0aW9uLmRlbGF5KSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5pZCA9PT0gZmx1c2hJZCAmJiBhY3Rpb25zLnNoaWZ0KCkpO1xuXG4gICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHdoaWxlICgoYWN0aW9uID0gYWN0aW9uc1swXSkgJiYgYWN0aW9uLmlkID09PSBmbHVzaElkICYmIGFjdGlvbnMuc2hpZnQoKSkge1xuICAgICAgICBhY3Rpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7IEFuaW1hdGlvbkZyYW1lQWN0aW9uIH0gZnJvbSAnLi9BbmltYXRpb25GcmFtZUFjdGlvbic7XG5pbXBvcnQgeyBBbmltYXRpb25GcmFtZVNjaGVkdWxlciB9IGZyb20gJy4vQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXInO1xuXG4vKipcbiAqXG4gKiBBbmltYXRpb24gRnJhbWUgU2NoZWR1bGVyXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPlBlcmZvcm0gdGFzayB3aGVuIGB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lYCB3b3VsZCBmaXJlPC9zcGFuPlxuICpcbiAqIFdoZW4gYGFuaW1hdGlvbkZyYW1lYCBzY2hlZHVsZXIgaXMgdXNlZCB3aXRoIGRlbGF5LCBpdCB3aWxsIGZhbGwgYmFjayB0byB7QGxpbmsgYXN5bmNTY2hlZHVsZXJ9IHNjaGVkdWxlclxuICogYmVoYXZpb3VyLlxuICpcbiAqIFdpdGhvdXQgZGVsYXksIGBhbmltYXRpb25GcmFtZWAgc2NoZWR1bGVyIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBzbW9vdGggYnJvd3NlciBhbmltYXRpb25zLlxuICogSXQgbWFrZXMgc3VyZSBzY2hlZHVsZWQgdGFzayB3aWxsIGhhcHBlbiBqdXN0IGJlZm9yZSBuZXh0IGJyb3dzZXIgY29udGVudCByZXBhaW50LFxuICogdGh1cyBwZXJmb3JtaW5nIGFuaW1hdGlvbnMgYXMgZWZmaWNpZW50bHkgYXMgcG9zc2libGUuXG4gKlxuICogIyMgRXhhbXBsZVxuICogU2NoZWR1bGUgZGl2IGhlaWdodCBhbmltYXRpb25cbiAqIGBgYHRzXG4gKiAvLyBodG1sOiA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZDogIzBmZjtcIj48L2Rpdj5cbiAqIGltcG9ydCB7IGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgZGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7XG4gKlxuICogYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIuc2NoZWR1bGUoZnVuY3Rpb24oaGVpZ2h0KSB7XG4gKiAgIGRpdi5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyBcInB4XCI7XG4gKlxuICogICB0aGlzLnNjaGVkdWxlKGhlaWdodCArIDEpOyAgLy8gYHRoaXNgIHJlZmVyZW5jZXMgY3VycmVudGx5IGV4ZWN1dGluZyBBY3Rpb24sXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCB3ZSByZXNjaGVkdWxlIHdpdGggbmV3IHN0YXRlXG4gKiB9LCAwLCAwKTtcbiAqXG4gKiAvLyBZb3Ugd2lsbCBzZWUgYSBkaXYgZWxlbWVudCBncm93aW5nIGluIGhlaWdodFxuICogYGBgXG4gKi9cblxuZXhwb3J0IGNvbnN0IGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyID0gbmV3IEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKEFuaW1hdGlvbkZyYW1lQWN0aW9uKTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIHtAbGluayBhbmltYXRpb25GcmFtZVNjaGVkdWxlcn0uIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAqL1xuZXhwb3J0IGNvbnN0IGFuaW1hdGlvbkZyYW1lID0gYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXI7XG4iLCAiaW1wb3J0IHsgQXN5bmNBY3Rpb24gfSBmcm9tICcuL0FzeW5jQWN0aW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBBc3luY1NjaGVkdWxlciB9IGZyb20gJy4vQXN5bmNTY2hlZHVsZXInO1xuaW1wb3J0IHsgU2NoZWR1bGVyQWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgVGltZXJIYW5kbGUgfSBmcm9tICcuL3RpbWVySGFuZGxlJztcblxuZXhwb3J0IGNsYXNzIFZpcnR1YWxUaW1lU2NoZWR1bGVyIGV4dGVuZHMgQXN5bmNTY2hlZHVsZXIge1xuICAvKiogQGRlcHJlY2F0ZWQgTm90IHVzZWQgaW4gVmlydHVhbFRpbWVTY2hlZHVsZXIgZGlyZWN0bHkuIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gKi9cbiAgc3RhdGljIGZyYW1lVGltZUZhY3RvciA9IDEwO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBmcmFtZSBmb3IgdGhlIHN0YXRlIG9mIHRoZSB2aXJ0dWFsIHNjaGVkdWxlciBpbnN0YW5jZS4gVGhlIGRpZmZlcmVuY2VcbiAgICogYmV0d2VlbiB0d28gXCJmcmFtZXNcIiBpcyBzeW5vbnltb3VzIHdpdGggdGhlIHBhc3NhZ2Ugb2YgXCJ2aXJ0dWFsIHRpbWUgdW5pdHNcIi4gU28gaWZcbiAgICogeW91IHJlY29yZCBgc2NoZWR1bGVyLmZyYW1lYCB0byBiZSBgMWAsIHRoZW4gbGF0ZXIsIG9ic2VydmUgYHNjaGVkdWxlci5mcmFtZWAgdG8gYmUgYXQgYDExYCxcbiAgICogdGhhdCBtZWFucyBgMTBgIHZpcnR1YWwgdGltZSB1bml0cyBoYXZlIHBhc3NlZC5cbiAgICovXG4gIHB1YmxpYyBmcmFtZTogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogVXNlZCBpbnRlcm5hbGx5IHRvIGV4YW1pbmUgdGhlIGN1cnJlbnQgdmlydHVhbCBhY3Rpb24gaW5kZXggYmVpbmcgcHJvY2Vzc2VkLlxuICAgKiBAZGVwcmVjYXRlZCBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIGRvIG5vdCB1c2UgZGlyZWN0bHkuIFdpbGwgYmUgbWFkZSBpbnRlcm5hbCBpbiB2OC5cbiAgICovXG4gIHB1YmxpYyBpbmRleDogbnVtYmVyID0gLTE7XG5cbiAgLyoqXG4gICAqIFRoaXMgY3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBhIGBWaXJ0dWFsVGltZVNjaGVkdWxlcmAuIEV4cGVydHMgb25seS4gVGhlIHNpZ25hdHVyZSBvZlxuICAgKiB0aGlzIGNvbnN0cnVjdG9yIGlzIGxpa2VseSB0byBjaGFuZ2UgaW4gdGhlIGxvbmcgcnVuLlxuICAgKlxuICAgKiBAcGFyYW0gc2NoZWR1bGVyQWN0aW9uQ3RvciBUaGUgdHlwZSBvZiBBY3Rpb24gdG8gaW5pdGlhbGl6ZSB3aGVuIGluaXRpYWxpemluZyBhY3Rpb25zIGR1cmluZyBzY2hlZHVsaW5nLlxuICAgKiBAcGFyYW0gbWF4RnJhbWVzIFRoZSBtYXhpbXVtIG51bWJlciBvZiBmcmFtZXMgdG8gcHJvY2VzcyBiZWZvcmUgc3RvcHBpbmcuIFVzZWQgdG8gcHJldmVudCBlbmRsZXNzIGZsdXNoIGN5Y2xlcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjaGVkdWxlckFjdGlvbkN0b3I6IHR5cGVvZiBBc3luY0FjdGlvbiA9IFZpcnR1YWxBY3Rpb24gYXMgYW55LCBwdWJsaWMgbWF4RnJhbWVzOiBudW1iZXIgPSBJbmZpbml0eSkge1xuICAgIHN1cGVyKHNjaGVkdWxlckFjdGlvbkN0b3IsICgpID0+IHRoaXMuZnJhbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb21wdCB0aGUgU2NoZWR1bGVyIHRvIGV4ZWN1dGUgYWxsIG9mIGl0cyBxdWV1ZWQgYWN0aW9ucywgdGhlcmVmb3JlXG4gICAqIGNsZWFyaW5nIGl0cyBxdWV1ZS5cbiAgICovXG4gIHB1YmxpYyBmbHVzaCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGFjdGlvbnMsIG1heEZyYW1lcyB9ID0gdGhpcztcbiAgICBsZXQgZXJyb3I6IGFueTtcbiAgICBsZXQgYWN0aW9uOiBBc3luY0FjdGlvbjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgd2hpbGUgKChhY3Rpb24gPSBhY3Rpb25zWzBdKSAmJiBhY3Rpb24uZGVsYXkgPD0gbWF4RnJhbWVzKSB7XG4gICAgICBhY3Rpb25zLnNoaWZ0KCk7XG4gICAgICB0aGlzLmZyYW1lID0gYWN0aW9uLmRlbGF5O1xuXG4gICAgICBpZiAoKGVycm9yID0gYWN0aW9uLmV4ZWN1dGUoYWN0aW9uLnN0YXRlLCBhY3Rpb24uZGVsYXkpKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHdoaWxlICgoYWN0aW9uID0gYWN0aW9ucy5zaGlmdCgpKSkge1xuICAgICAgICBhY3Rpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVmlydHVhbEFjdGlvbjxUPiBleHRlbmRzIEFzeW5jQWN0aW9uPFQ+IHtcbiAgcHJvdGVjdGVkIGFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHNjaGVkdWxlcjogVmlydHVhbFRpbWVTY2hlZHVsZXIsXG4gICAgcHJvdGVjdGVkIHdvcms6ICh0aGlzOiBTY2hlZHVsZXJBY3Rpb248VD4sIHN0YXRlPzogVCkgPT4gdm9pZCxcbiAgICBwcm90ZWN0ZWQgaW5kZXg6IG51bWJlciA9IChzY2hlZHVsZXIuaW5kZXggKz0gMSlcbiAgKSB7XG4gICAgc3VwZXIoc2NoZWR1bGVyLCB3b3JrKTtcbiAgICB0aGlzLmluZGV4ID0gc2NoZWR1bGVyLmluZGV4ID0gaW5kZXg7XG4gIH1cblxuICBwdWJsaWMgc2NoZWR1bGUoc3RhdGU/OiBULCBkZWxheTogbnVtYmVyID0gMCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgaWYgKE51bWJlci5pc0Zpbml0ZShkZWxheSkpIHtcbiAgICAgIGlmICghdGhpcy5pZCkge1xuICAgICAgICByZXR1cm4gc3VwZXIuc2NoZWR1bGUoc3RhdGUsIGRlbGF5KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgICAvLyBJZiBhbiBhY3Rpb24gaXMgcmVzY2hlZHVsZWQsIHdlIHNhdmUgYWxsb2NhdGlvbnMgYnkgbXV0YXRpbmcgaXRzIHN0YXRlLFxuICAgICAgLy8gcHVzaGluZyBpdCB0byB0aGUgZW5kIG9mIHRoZSBzY2hlZHVsZXIgcXVldWUsIGFuZCByZWN5Y2xpbmcgdGhlIGFjdGlvbi5cbiAgICAgIC8vIEJ1dCBzaW5jZSB0aGUgVmlydHVhbFRpbWVTY2hlZHVsZXIgaXMgdXNlZCBmb3IgdGVzdGluZywgVmlydHVhbEFjdGlvbnNcbiAgICAgIC8vIG11c3QgYmUgaW1tdXRhYmxlIHNvIHRoZXkgY2FuIGJlIGluc3BlY3RlZCBsYXRlci5cbiAgICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBWaXJ0dWFsQWN0aW9uKHRoaXMuc2NoZWR1bGVyLCB0aGlzLndvcmspO1xuICAgICAgdGhpcy5hZGQoYWN0aW9uKTtcbiAgICAgIHJldHVybiBhY3Rpb24uc2NoZWR1bGUoc3RhdGUsIGRlbGF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgc29tZW9uZSBzY2hlZHVsZXMgc29tZXRoaW5nIHdpdGggSW5maW5pdHksIGl0J2xsIG5ldmVyIGhhcHBlbi4gU28gd2VcbiAgICAgIC8vIGRvbid0IGV2ZW4gc2NoZWR1bGUgaXQuXG4gICAgICByZXR1cm4gU3Vic2NyaXB0aW9uLkVNUFRZO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZXF1ZXN0QXN5bmNJZChzY2hlZHVsZXI6IFZpcnR1YWxUaW1lU2NoZWR1bGVyLCBpZD86IGFueSwgZGVsYXk6IG51bWJlciA9IDApOiBUaW1lckhhbmRsZSB7XG4gICAgdGhpcy5kZWxheSA9IHNjaGVkdWxlci5mcmFtZSArIGRlbGF5O1xuICAgIGNvbnN0IHsgYWN0aW9ucyB9ID0gc2NoZWR1bGVyO1xuICAgIGFjdGlvbnMucHVzaCh0aGlzKTtcbiAgICAoYWN0aW9ucyBhcyBBcnJheTxWaXJ0dWFsQWN0aW9uPFQ+Pikuc29ydChWaXJ0dWFsQWN0aW9uLnNvcnRBY3Rpb25zKTtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWN5Y2xlQXN5bmNJZChzY2hlZHVsZXI6IFZpcnR1YWxUaW1lU2NoZWR1bGVyLCBpZD86IGFueSwgZGVsYXk6IG51bWJlciA9IDApOiBUaW1lckhhbmRsZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfZXhlY3V0ZShzdGF0ZTogVCwgZGVsYXk6IG51bWJlcik6IGFueSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gc3VwZXIuX2V4ZWN1dGUoc3RhdGUsIGRlbGF5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBzb3J0QWN0aW9uczxUPihhOiBWaXJ0dWFsQWN0aW9uPFQ+LCBiOiBWaXJ0dWFsQWN0aW9uPFQ+KSB7XG4gICAgaWYgKGEuZGVsYXkgPT09IGIuZGVsYXkpIHtcbiAgICAgIGlmIChhLmluZGV4ID09PSBiLmluZGV4KSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSBlbHNlIGlmIChhLmluZGV4ID4gYi5pbmRleCkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGEuZGVsYXkgPiBiLmRlbGF5KSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IFNjaGVkdWxlckxpa2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQSBzaW1wbGUgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIG5vIGl0ZW1zIHRvIHRoZSBPYnNlcnZlciBhbmQgaW1tZWRpYXRlbHlcbiAqIGVtaXRzIGEgY29tcGxldGUgbm90aWZpY2F0aW9uLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5KdXN0IGVtaXRzICdjb21wbGV0ZScsIGFuZCBub3RoaW5nIGVsc2UuPC9zcGFuPlxuICpcbiAqICFbXShlbXB0eS5wbmcpXG4gKlxuICogQSBzaW1wbGUgT2JzZXJ2YWJsZSB0aGF0IG9ubHkgZW1pdHMgdGhlIGNvbXBsZXRlIG5vdGlmaWNhdGlvbi4gSXQgY2FuIGJlIHVzZWRcbiAqIGZvciBjb21wb3Npbmcgd2l0aCBvdGhlciBPYnNlcnZhYmxlcywgc3VjaCBhcyBpbiBhIHtAbGluayBtZXJnZU1hcH0uXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBMb2cgY29tcGxldGUgbm90aWZpY2F0aW9uXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IEVNUFRZIH0gZnJvbSAncnhqcyc7XG4gKlxuICogRU1QVFkuc3Vic2NyaWJlKHtcbiAqICAgbmV4dDogKCkgPT4gY29uc29sZS5sb2coJ05leHQnKSxcbiAqICAgY29tcGxldGU6ICgpID0+IGNvbnNvbGUubG9nKCdDb21wbGV0ZSEnKVxuICogfSk7XG4gKlxuICogLy8gT3V0cHV0c1xuICogLy8gQ29tcGxldGUhXG4gKiBgYGBcbiAqXG4gKiBFbWl0IHRoZSBudW1iZXIgNywgdGhlbiBjb21wbGV0ZVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBFTVBUWSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgcmVzdWx0ID0gRU1QVFkucGlwZShzdGFydFdpdGgoNykpO1xuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqXG4gKiAvLyBPdXRwdXRzXG4gKiAvLyA3XG4gKiBgYGBcbiAqXG4gKiBNYXAgYW5kIGZsYXR0ZW4gb25seSBvZGQgbnVtYmVycyB0byB0aGUgc2VxdWVuY2UgYCdhJ2AsIGAnYidgLCBgJ2MnYFxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBpbnRlcnZhbCwgbWVyZ2VNYXAsIG9mLCBFTVBUWSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGludGVydmFsJCA9IGludGVydmFsKDEwMDApO1xuICogY29uc3QgcmVzdWx0ID0gaW50ZXJ2YWwkLnBpcGUoXG4gKiAgIG1lcmdlTWFwKHggPT4geCAlIDIgPT09IDEgPyBvZignYScsICdiJywgJ2MnKSA6IEVNUFRZKSxcbiAqICk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIFJlc3VsdHMgaW4gdGhlIGZvbGxvd2luZyB0byB0aGUgY29uc29sZTpcbiAqIC8vIHggaXMgZXF1YWwgdG8gdGhlIGNvdW50IG9uIHRoZSBpbnRlcnZhbCwgZS5nLiAoMCwgMSwgMiwgMywgLi4uKVxuICogLy8geCB3aWxsIG9jY3VyIGV2ZXJ5IDEwMDBtc1xuICogLy8gaWYgeCAlIDIgaXMgZXF1YWwgdG8gMSwgcHJpbnQgYSwgYiwgYyAoZWFjaCBvbiBpdHMgb3duKVxuICogLy8gaWYgeCAlIDIgaXMgbm90IGVxdWFsIHRvIDEsIG5vdGhpbmcgd2lsbCBiZSBvdXRwdXRcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIE9ic2VydmFibGV9XG4gKiBAc2VlIHtAbGluayBORVZFUn1cbiAqIEBzZWUge0BsaW5rIG9mfVxuICogQHNlZSB7QGxpbmsgdGhyb3dFcnJvcn1cbiAqL1xuZXhwb3J0IGNvbnN0IEVNUFRZID0gbmV3IE9ic2VydmFibGU8bmV2ZXI+KChzdWJzY3JpYmVyKSA9PiBzdWJzY3JpYmVyLmNvbXBsZXRlKCkpO1xuXG4vKipcbiAqIEBwYXJhbSBzY2hlZHVsZXIgQSB7QGxpbmsgU2NoZWR1bGVyTGlrZX0gdG8gdXNlIGZvciBzY2hlZHVsaW5nXG4gKiB0aGUgZW1pc3Npb24gb2YgdGhlIGNvbXBsZXRlIG5vdGlmaWNhdGlvbi5cbiAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIHdpdGggdGhlIHtAbGluayBFTVBUWX0gY29uc3RhbnQgb3Ige0BsaW5rIHNjaGVkdWxlZH0gKGUuZy4gYHNjaGVkdWxlZChbXSwgc2NoZWR1bGVyKWApLiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbXB0eShzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKSB7XG4gIHJldHVybiBzY2hlZHVsZXIgPyBlbXB0eVNjaGVkdWxlZChzY2hlZHVsZXIpIDogRU1QVFk7XG59XG5cbmZ1bmN0aW9uIGVtcHR5U2NoZWR1bGVkKHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSkge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGU8bmV2ZXI+KChzdWJzY3JpYmVyKSA9PiBzY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4gc3Vic2NyaWJlci5jb21wbGV0ZSgpKSk7XG59XG4iLCAiaW1wb3J0IHsgU2NoZWR1bGVyTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL2lzRnVuY3Rpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNTY2hlZHVsZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIFNjaGVkdWxlckxpa2Uge1xuICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbih2YWx1ZS5zY2hlZHVsZSk7XG59XG4iLCAiaW1wb3J0IHsgU2NoZWR1bGVyTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL2lzRnVuY3Rpb24nO1xuaW1wb3J0IHsgaXNTY2hlZHVsZXIgfSBmcm9tICcuL2lzU2NoZWR1bGVyJztcblxuZnVuY3Rpb24gbGFzdDxUPihhcnI6IFRbXSk6IFQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gYXJyW2Fyci5sZW5ndGggLSAxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvcFJlc3VsdFNlbGVjdG9yKGFyZ3M6IGFueVtdKTogKCguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24pIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGlzRnVuY3Rpb24obGFzdChhcmdzKSkgPyBhcmdzLnBvcCgpIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9wU2NoZWR1bGVyKGFyZ3M6IGFueVtdKTogU2NoZWR1bGVyTGlrZSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpc1NjaGVkdWxlcihsYXN0KGFyZ3MpKSA/IGFyZ3MucG9wKCkgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3BOdW1iZXIoYXJnczogYW55W10sIGRlZmF1bHRWYWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHR5cGVvZiBsYXN0KGFyZ3MpID09PSAnbnVtYmVyJyA/IGFyZ3MucG9wKCkhIDogZGVmYXVsdFZhbHVlO1xufVxuIiwgImV4cG9ydCBjb25zdCBpc0FycmF5TGlrZSA9ICg8VD4oeDogYW55KTogeCBpcyBBcnJheUxpa2U8VD4gPT4geCAmJiB0eXBlb2YgeC5sZW5ndGggPT09ICdudW1iZXInICYmIHR5cGVvZiB4ICE9PSAnZnVuY3Rpb24nKTsiLCAiaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gXCIuL2lzRnVuY3Rpb25cIjtcblxuLyoqXG4gKiBUZXN0cyB0byBzZWUgaWYgdGhlIG9iamVjdCBpcyBcInRoZW5uYWJsZVwiLlxuICogQHBhcmFtIHZhbHVlIHRoZSBvYmplY3QgdG8gdGVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9taXNlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQcm9taXNlTGlrZTxhbnk+IHtcbiAgcmV0dXJuIGlzRnVuY3Rpb24odmFsdWU/LnRoZW4pO1xufVxuIiwgImltcG9ydCB7IEludGVyb3BPYnNlcnZhYmxlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb2JzZXJ2YWJsZSBhcyBTeW1ib2xfb2JzZXJ2YWJsZSB9IGZyb20gJy4uL3N5bWJvbC9vYnNlcnZhYmxlJztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL2lzRnVuY3Rpb24nO1xuXG4vKiogSWRlbnRpZmllcyBhbiBpbnB1dCBhcyBiZWluZyBPYnNlcnZhYmxlIChidXQgbm90IG5lY2Vzc2FyeSBhbiBSeCBPYnNlcnZhYmxlKSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJvcE9ic2VydmFibGUoaW5wdXQ6IGFueSk6IGlucHV0IGlzIEludGVyb3BPYnNlcnZhYmxlPGFueT4ge1xuICByZXR1cm4gaXNGdW5jdGlvbihpbnB1dFtTeW1ib2xfb2JzZXJ2YWJsZV0pO1xufVxuIiwgImltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL2lzRnVuY3Rpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNBc3luY0l0ZXJhYmxlPFQ+KG9iajogYW55KTogb2JqIGlzIEFzeW5jSXRlcmFibGU8VD4ge1xuICByZXR1cm4gU3ltYm9sLmFzeW5jSXRlcmF0b3IgJiYgaXNGdW5jdGlvbihvYmo/LltTeW1ib2wuYXN5bmNJdGVyYXRvcl0pO1xufVxuIiwgIi8qKlxuICogQ3JlYXRlcyB0aGUgVHlwZUVycm9yIHRvIHRocm93IGlmIGFuIGludmFsaWQgb2JqZWN0IGlzIHBhc3NlZCB0byBgZnJvbWAgb3IgYHNjaGVkdWxlZGAuXG4gKiBAcGFyYW0gaW5wdXQgVGhlIG9iamVjdCB0aGF0IHdhcyBwYXNzZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbnZhbGlkT2JzZXJ2YWJsZVR5cGVFcnJvcihpbnB1dDogYW55KSB7XG4gIC8vIFRPRE86IFdlIHNob3VsZCBjcmVhdGUgZXJyb3IgY29kZXMgdGhhdCBjYW4gYmUgbG9va2VkIHVwLCBzbyB0aGlzIGNhbiBiZSBsZXNzIHZlcmJvc2UuXG4gIHJldHVybiBuZXcgVHlwZUVycm9yKFxuICAgIGBZb3UgcHJvdmlkZWQgJHtcbiAgICAgIGlucHV0ICE9PSBudWxsICYmIHR5cGVvZiBpbnB1dCA9PT0gJ29iamVjdCcgPyAnYW4gaW52YWxpZCBvYmplY3QnIDogYCcke2lucHV0fSdgXG4gICAgfSB3aGVyZSBhIHN0cmVhbSB3YXMgZXhwZWN0ZWQuIFlvdSBjYW4gcHJvdmlkZSBhbiBPYnNlcnZhYmxlLCBQcm9taXNlLCBSZWFkYWJsZVN0cmVhbSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLmBcbiAgKTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gZ2V0U3ltYm9sSXRlcmF0b3IoKTogc3ltYm9sIHtcbiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09ICdmdW5jdGlvbicgfHwgIVN5bWJvbC5pdGVyYXRvcikge1xuICAgIHJldHVybiAnQEBpdGVyYXRvcicgYXMgYW55O1xuICB9XG5cbiAgcmV0dXJuIFN5bWJvbC5pdGVyYXRvcjtcbn1cblxuZXhwb3J0IGNvbnN0IGl0ZXJhdG9yID0gZ2V0U3ltYm9sSXRlcmF0b3IoKTtcbiIsICJpbXBvcnQgeyBpdGVyYXRvciBhcyBTeW1ib2xfaXRlcmF0b3IgfSBmcm9tICcuLi9zeW1ib2wvaXRlcmF0b3InO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4vaXNGdW5jdGlvbic7XG5cbi8qKiBJZGVudGlmaWVzIGFuIGlucHV0IGFzIGJlaW5nIGFuIEl0ZXJhYmxlICovXG5leHBvcnQgZnVuY3Rpb24gaXNJdGVyYWJsZShpbnB1dDogYW55KTogaW5wdXQgaXMgSXRlcmFibGU8YW55PiB7XG4gIHJldHVybiBpc0Z1bmN0aW9uKGlucHV0Py5bU3ltYm9sX2l0ZXJhdG9yXSk7XG59XG4iLCAiaW1wb3J0IHsgUmVhZGFibGVTdHJlYW1MaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4vaXNGdW5jdGlvbic7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogcmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvcjxUPihyZWFkYWJsZVN0cmVhbTogUmVhZGFibGVTdHJlYW1MaWtlPFQ+KTogQXN5bmNHZW5lcmF0b3I8VD4ge1xuICBjb25zdCByZWFkZXIgPSByZWFkYWJsZVN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgdHJ5IHtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgeyB2YWx1ZSwgZG9uZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgIGlmIChkb25lKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHlpZWxkIHZhbHVlITtcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVhZGVyLnJlbGVhc2VMb2NrKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVhZGFibGVTdHJlYW1MaWtlPFQ+KG9iajogYW55KTogb2JqIGlzIFJlYWRhYmxlU3RyZWFtTGlrZTxUPiB7XG4gIC8vIFdlIGRvbid0IHdhbnQgdG8gdXNlIGluc3RhbmNlb2YgY2hlY2tzIGJlY2F1c2UgdGhleSB3b3VsZCByZXR1cm5cbiAgLy8gZmFsc2UgZm9yIGluc3RhbmNlcyBmcm9tIGFub3RoZXIgUmVhbG0sIGxpa2UgYW4gPGlmcmFtZT4uXG4gIHJldHVybiBpc0Z1bmN0aW9uKG9iaj8uZ2V0UmVhZGVyKTtcbn1cbiIsICJpbXBvcnQgeyBpc0FycmF5TGlrZSB9IGZyb20gJy4uL3V0aWwvaXNBcnJheUxpa2UnO1xuaW1wb3J0IHsgaXNQcm9taXNlIH0gZnJvbSAnLi4vdXRpbC9pc1Byb21pc2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0LCBPYnNlcnZlZFZhbHVlT2YsIFJlYWRhYmxlU3RyZWFtTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzSW50ZXJvcE9ic2VydmFibGUgfSBmcm9tICcuLi91dGlsL2lzSW50ZXJvcE9ic2VydmFibGUnO1xuaW1wb3J0IHsgaXNBc3luY0l0ZXJhYmxlIH0gZnJvbSAnLi4vdXRpbC9pc0FzeW5jSXRlcmFibGUnO1xuaW1wb3J0IHsgY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IgfSBmcm9tICcuLi91dGlsL3Rocm93VW5vYnNlcnZhYmxlRXJyb3InO1xuaW1wb3J0IHsgaXNJdGVyYWJsZSB9IGZyb20gJy4uL3V0aWwvaXNJdGVyYWJsZSc7XG5pbXBvcnQgeyBpc1JlYWRhYmxlU3RyZWFtTGlrZSwgcmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvciB9IGZyb20gJy4uL3V0aWwvaXNSZWFkYWJsZVN0cmVhbUxpa2UnO1xuaW1wb3J0IHsgU3Vic2NyaWJlciB9IGZyb20gJy4uL1N1YnNjcmliZXInO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWwvaXNGdW5jdGlvbic7XG5pbXBvcnQgeyByZXBvcnRVbmhhbmRsZWRFcnJvciB9IGZyb20gJy4uL3V0aWwvcmVwb3J0VW5oYW5kbGVkRXJyb3InO1xuaW1wb3J0IHsgb2JzZXJ2YWJsZSBhcyBTeW1ib2xfb2JzZXJ2YWJsZSB9IGZyb20gJy4uL3N5bWJvbC9vYnNlcnZhYmxlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlubmVyRnJvbTxPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PGFueT4+KGlucHV0OiBPKTogT2JzZXJ2YWJsZTxPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuZXhwb3J0IGZ1bmN0aW9uIGlubmVyRnJvbTxUPihpbnB1dDogT2JzZXJ2YWJsZUlucHV0PFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIGlmIChpbnB1dCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cbiAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICBpZiAoaXNJbnRlcm9wT2JzZXJ2YWJsZShpbnB1dCkpIHtcbiAgICAgIHJldHVybiBmcm9tSW50ZXJvcE9ic2VydmFibGUoaW5wdXQpO1xuICAgIH1cbiAgICBpZiAoaXNBcnJheUxpa2UoaW5wdXQpKSB7XG4gICAgICByZXR1cm4gZnJvbUFycmF5TGlrZShpbnB1dCk7XG4gICAgfVxuICAgIGlmIChpc1Byb21pc2UoaW5wdXQpKSB7XG4gICAgICByZXR1cm4gZnJvbVByb21pc2UoaW5wdXQpO1xuICAgIH1cbiAgICBpZiAoaXNBc3luY0l0ZXJhYmxlKGlucHV0KSkge1xuICAgICAgcmV0dXJuIGZyb21Bc3luY0l0ZXJhYmxlKGlucHV0KTtcbiAgICB9XG4gICAgaWYgKGlzSXRlcmFibGUoaW5wdXQpKSB7XG4gICAgICByZXR1cm4gZnJvbUl0ZXJhYmxlKGlucHV0KTtcbiAgICB9XG4gICAgaWYgKGlzUmVhZGFibGVTdHJlYW1MaWtlKGlucHV0KSkge1xuICAgICAgcmV0dXJuIGZyb21SZWFkYWJsZVN0cmVhbUxpa2UoaW5wdXQpO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IGNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yKGlucHV0KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIFJ4SlMgT2JzZXJ2YWJsZSBmcm9tIGFuIG9iamVjdCB0aGF0IGltcGxlbWVudHMgYFN5bWJvbC5vYnNlcnZhYmxlYC5cbiAqIEBwYXJhbSBvYmogQW4gb2JqZWN0IHRoYXQgcHJvcGVybHkgaW1wbGVtZW50cyBgU3ltYm9sLm9ic2VydmFibGVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbUludGVyb3BPYnNlcnZhYmxlPFQ+KG9iajogYW55KSB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPikgPT4ge1xuICAgIGNvbnN0IG9icyA9IG9ialtTeW1ib2xfb2JzZXJ2YWJsZV0oKTtcbiAgICBpZiAoaXNGdW5jdGlvbihvYnMuc3Vic2NyaWJlKSkge1xuICAgICAgcmV0dXJuIG9icy5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gICAgfVxuICAgIC8vIFNob3VsZCBiZSBjYXVnaHQgYnkgb2JzZXJ2YWJsZSBzdWJzY3JpYmUgZnVuY3Rpb24gZXJyb3IgaGFuZGxpbmcuXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignUHJvdmlkZWQgb2JqZWN0IGRvZXMgbm90IGNvcnJlY3RseSBpbXBsZW1lbnQgU3ltYm9sLm9ic2VydmFibGUnKTtcbiAgfSk7XG59XG5cbi8qKlxuICogU3luY2hyb25vdXNseSBlbWl0cyB0aGUgdmFsdWVzIG9mIGFuIGFycmF5IGxpa2UgYW5kIGNvbXBsZXRlcy5cbiAqIFRoaXMgaXMgZXhwb3J0ZWQgYmVjYXVzZSB0aGVyZSBhcmUgY3JlYXRpb24gZnVuY3Rpb25zIGFuZCBvcGVyYXRvcnMgdGhhdCBuZWVkIHRvXG4gKiBtYWtlIGRpcmVjdCB1c2Ugb2YgdGhlIHNhbWUgbG9naWMsIGFuZCB0aGVyZSdzIG5vIHJlYXNvbiB0byBtYWtlIHRoZW0gcnVuIHRocm91Z2hcbiAqIGBmcm9tYCBjb25kaXRpb25hbHMgYmVjYXVzZSB3ZSAqa25vdyogdGhleSdyZSBkZWFsaW5nIHdpdGggYW4gYXJyYXkuXG4gKiBAcGFyYW0gYXJyYXkgVGhlIGFycmF5IHRvIGVtaXQgdmFsdWVzIGZyb21cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21BcnJheUxpa2U8VD4oYXJyYXk6IEFycmF5TGlrZTxUPikge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8VD4pID0+IHtcbiAgICAvLyBMb29wIG92ZXIgdGhlIGFycmF5IGFuZCBlbWl0IGVhY2ggdmFsdWUuIE5vdGUgdHdvIHRoaW5ncyBoZXJlOlxuICAgIC8vIDEuIFdlJ3JlIG1ha2luZyBzdXJlIHRoYXQgdGhlIHN1YnNjcmliZXIgaXMgbm90IGNsb3NlZCBvbiBlYWNoIGxvb3AuXG4gICAgLy8gICAgVGhpcyBpcyBzbyB3ZSBkb24ndCBjb250aW51ZSBsb29waW5nIG92ZXIgYSB2ZXJ5IGxhcmdlIGFycmF5IGFmdGVyXG4gICAgLy8gICAgc29tZXRoaW5nIGxpa2UgYSBgdGFrZWAsIGB0YWtlV2hpbGVgLCBvciBvdGhlciBzeW5jaHJvbm91cyB1bnN1YnNjcmlwdGlvblxuICAgIC8vICAgIGhhcyBhbHJlYWR5IHVuc3Vic2NyaWJlZC5cbiAgICAvLyAyLiBJbiB0aGlzIGZvcm0sIHJlZW50cmFudCBjb2RlIGNhbiBhbHRlciB0aGF0IGFycmF5IHdlJ3JlIGxvb3Bpbmcgb3Zlci5cbiAgICAvLyAgICBUaGlzIGlzIGEga25vd24gaXNzdWUsIGJ1dCBjb25zaWRlcmVkIGFuIGVkZ2UgY2FzZS4gVGhlIGFsdGVybmF0aXZlIHdvdWxkXG4gICAgLy8gICAgYmUgdG8gY29weSB0aGUgYXJyYXkgYmVmb3JlIGV4ZWN1dGluZyB0aGUgbG9vcCwgYnV0IHRoaXMgaGFzXG4gICAgLy8gICAgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25zLlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoICYmICFzdWJzY3JpYmVyLmNsb3NlZDsgaSsrKSB7XG4gICAgICBzdWJzY3JpYmVyLm5leHQoYXJyYXlbaV0pO1xuICAgIH1cbiAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbVByb21pc2U8VD4ocHJvbWlzZTogUHJvbWlzZUxpa2U8VD4pIHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFQ+KSA9PiB7XG4gICAgcHJvbWlzZVxuICAgICAgLnRoZW4oXG4gICAgICAgICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGlmICghc3Vic2NyaWJlci5jbG9zZWQpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyOiBhbnkpID0+IHN1YnNjcmliZXIuZXJyb3IoZXJyKVxuICAgICAgKVxuICAgICAgLnRoZW4obnVsbCwgcmVwb3J0VW5oYW5kbGVkRXJyb3IpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21JdGVyYWJsZTxUPihpdGVyYWJsZTogSXRlcmFibGU8VD4pIHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFQ+KSA9PiB7XG4gICAgZm9yIChjb25zdCB2YWx1ZSBvZiBpdGVyYWJsZSkge1xuICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgIGlmIChzdWJzY3JpYmVyLmNsb3NlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQXN5bmNJdGVyYWJsZTxUPihhc3luY0l0ZXJhYmxlOiBBc3luY0l0ZXJhYmxlPFQ+KSB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPikgPT4ge1xuICAgIHByb2Nlc3MoYXN5bmNJdGVyYWJsZSwgc3Vic2NyaWJlcikuY2F0Y2goKGVycikgPT4gc3Vic2NyaWJlci5lcnJvcihlcnIpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tUmVhZGFibGVTdHJlYW1MaWtlPFQ+KHJlYWRhYmxlU3RyZWFtOiBSZWFkYWJsZVN0cmVhbUxpa2U8VD4pIHtcbiAgcmV0dXJuIGZyb21Bc3luY0l0ZXJhYmxlKHJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IocmVhZGFibGVTdHJlYW0pKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJvY2VzczxUPihhc3luY0l0ZXJhYmxlOiBBc3luY0l0ZXJhYmxlPFQ+LCBzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFQ+KSB7XG4gIGZvciBhd2FpdCAoY29uc3QgdmFsdWUgb2YgYXN5bmNJdGVyYWJsZSkge1xuICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7XG4gICAgLy8gQSBzaWRlLWVmZmVjdCBtYXkgaGF2ZSBjbG9zZWQgb3VyIHN1YnNjcmliZXIsXG4gICAgLy8gY2hlY2sgYmVmb3JlIHRoZSBuZXh0IGl0ZXJhdGlvbi5cbiAgICBpZiAoc3Vic2NyaWJlci5jbG9zZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xufVxuIiwgImltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBTY2hlZHVsZXJBY3Rpb24sIFNjaGVkdWxlckxpa2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBleGVjdXRlU2NoZWR1bGUoXG4gIHBhcmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uLFxuICBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UsXG4gIHdvcms6ICgpID0+IHZvaWQsXG4gIGRlbGF5OiBudW1iZXIsXG4gIHJlcGVhdDogdHJ1ZVxuKTogdm9pZDtcbmV4cG9ydCBmdW5jdGlvbiBleGVjdXRlU2NoZWR1bGUoXG4gIHBhcmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uLFxuICBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UsXG4gIHdvcms6ICgpID0+IHZvaWQsXG4gIGRlbGF5PzogbnVtYmVyLFxuICByZXBlYXQ/OiBmYWxzZVxuKTogU3Vic2NyaXB0aW9uO1xuXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0ZVNjaGVkdWxlKFxuICBwYXJlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbixcbiAgc2NoZWR1bGVyOiBTY2hlZHVsZXJMaWtlLFxuICB3b3JrOiAoKSA9PiB2b2lkLFxuICBkZWxheSA9IDAsXG4gIHJlcGVhdCA9IGZhbHNlXG4pOiBTdWJzY3JpcHRpb24gfCB2b2lkIHtcbiAgY29uc3Qgc2NoZWR1bGVTdWJzY3JpcHRpb24gPSBzY2hlZHVsZXIuc2NoZWR1bGUoZnVuY3Rpb24gKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxhbnk+KSB7XG4gICAgd29yaygpO1xuICAgIGlmIChyZXBlYXQpIHtcbiAgICAgIHBhcmVudFN1YnNjcmlwdGlvbi5hZGQodGhpcy5zY2hlZHVsZShudWxsLCBkZWxheSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9LCBkZWxheSk7XG5cbiAgcGFyZW50U3Vic2NyaXB0aW9uLmFkZChzY2hlZHVsZVN1YnNjcmlwdGlvbik7XG5cbiAgaWYgKCFyZXBlYXQpIHtcbiAgICAvLyBCZWNhdXNlIHVzZXItbGFuZCBzY2hlZHVsZXIgaW1wbGVtZW50YXRpb25zIGFyZSB1bmxpa2VseSB0byBwcm9wZXJseSByZXVzZVxuICAgIC8vIEFjdGlvbnMgZm9yIHJlcGVhdCBzY2hlZHVsaW5nLCB3ZSBjYW4ndCB0cnVzdCB0aGF0IHRoZSByZXR1cm5lZCBzdWJzY3JpcHRpb25cbiAgICAvLyB3aWxsIGNvbnRyb2wgcmVwZWF0IHN1YnNjcmlwdGlvbiBzY2VuYXJpb3MuIFNvIHdlJ3JlIHRyeWluZyB0byBhdm9pZCB1c2luZyB0aGVtXG4gICAgLy8gaW5jb3JyZWN0bHkgd2l0aGluIHRoaXMgbGlicmFyeS5cbiAgICByZXR1cm4gc2NoZWR1bGVTdWJzY3JpcHRpb247XG4gIH1cbn1cbiIsICIvKiogQHByZXR0aWVyICovXG5pbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIFNjaGVkdWxlckxpa2UgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBleGVjdXRlU2NoZWR1bGUgfSBmcm9tICcuLi91dGlsL2V4ZWN1dGVTY2hlZHVsZSc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuLyoqXG4gKiBSZS1lbWl0cyBhbGwgbm90aWZpY2F0aW9ucyBmcm9tIHNvdXJjZSBPYnNlcnZhYmxlIHdpdGggc3BlY2lmaWVkIHNjaGVkdWxlci5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+RW5zdXJlIGEgc3BlY2lmaWMgc2NoZWR1bGVyIGlzIHVzZWQsIGZyb20gb3V0c2lkZSBvZiBhbiBPYnNlcnZhYmxlLjwvc3Bhbj5cbiAqXG4gKiBgb2JzZXJ2ZU9uYCBpcyBhbiBvcGVyYXRvciB0aGF0IGFjY2VwdHMgYSBzY2hlZHVsZXIgYXMgYSBmaXJzdCBwYXJhbWV0ZXIsIHdoaWNoIHdpbGwgYmUgdXNlZCB0byByZXNjaGVkdWxlXG4gKiBub3RpZmljYXRpb25zIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLiBJdCBtaWdodCBiZSB1c2VmdWwsIGlmIHlvdSBkbyBub3QgaGF2ZSBjb250cm9sIG92ZXJcbiAqIGludGVybmFsIHNjaGVkdWxlciBvZiBhIGdpdmVuIE9ic2VydmFibGUsIGJ1dCB3YW50IHRvIGNvbnRyb2wgd2hlbiBpdHMgdmFsdWVzIGFyZSBlbWl0dGVkIG5ldmVydGhlbGVzcy5cbiAqXG4gKiBSZXR1cm5lZCBPYnNlcnZhYmxlIGVtaXRzIHRoZSBzYW1lIG5vdGlmaWNhdGlvbnMgKG5leHRlZCB2YWx1ZXMsIGNvbXBsZXRlIGFuZCBlcnJvciBldmVudHMpIGFzIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSxcbiAqIGJ1dCByZXNjaGVkdWxlZCB3aXRoIHByb3ZpZGVkIHNjaGVkdWxlci4gTm90ZSB0aGF0IHRoaXMgZG9lc24ndCBtZWFuIHRoYXQgc291cmNlIE9ic2VydmFibGVzIGludGVybmFsXG4gKiBzY2hlZHVsZXIgd2lsbCBiZSByZXBsYWNlZCBpbiBhbnkgd2F5LiBPcmlnaW5hbCBzY2hlZHVsZXIgc3RpbGwgd2lsbCBiZSB1c2VkLCBidXQgd2hlbiB0aGUgc291cmNlIE9ic2VydmFibGUgZW1pdHNcbiAqIG5vdGlmaWNhdGlvbiwgaXQgd2lsbCBiZSBpbW1lZGlhdGVseSBzY2hlZHVsZWQgYWdhaW4gLSB0aGlzIHRpbWUgd2l0aCBzY2hlZHVsZXIgcGFzc2VkIHRvIGBvYnNlcnZlT25gLlxuICogQW4gYW50aS1wYXR0ZXJuIHdvdWxkIGJlIGNhbGxpbmcgYG9ic2VydmVPbmAgb24gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGxvdHMgb2YgdmFsdWVzIHN5bmNocm9ub3VzbHksIHRvIHNwbGl0XG4gKiB0aGF0IGVtaXNzaW9ucyBpbnRvIGFzeW5jaHJvbm91cyBjaHVua3MuIEZvciB0aGlzIHRvIGhhcHBlbiwgc2NoZWR1bGVyIHdvdWxkIGhhdmUgdG8gYmUgcGFzc2VkIGludG8gdGhlIHNvdXJjZVxuICogT2JzZXJ2YWJsZSBkaXJlY3RseSAodXN1YWxseSBpbnRvIHRoZSBvcGVyYXRvciB0aGF0IGNyZWF0ZXMgaXQpLiBgb2JzZXJ2ZU9uYCBzaW1wbHkgZGVsYXlzIG5vdGlmaWNhdGlvbnMgYVxuICogbGl0dGxlIGJpdCBtb3JlLCB0byBlbnN1cmUgdGhhdCB0aGV5IGFyZSBlbWl0dGVkIGF0IGV4cGVjdGVkIG1vbWVudHMuXG4gKlxuICogQXMgYSBtYXR0ZXIgb2YgZmFjdCwgYG9ic2VydmVPbmAgYWNjZXB0cyBzZWNvbmQgcGFyYW1ldGVyLCB3aGljaCBzcGVjaWZpZXMgaW4gbWlsbGlzZWNvbmRzIHdpdGggd2hhdCBkZWxheSBub3RpZmljYXRpb25zXG4gKiB3aWxsIGJlIGVtaXR0ZWQuIFRoZSBtYWluIGRpZmZlcmVuY2UgYmV0d2VlbiB7QGxpbmsgZGVsYXl9IG9wZXJhdG9yIGFuZCBgb2JzZXJ2ZU9uYCBpcyB0aGF0IGBvYnNlcnZlT25gXG4gKiB3aWxsIGRlbGF5IGFsbCBub3RpZmljYXRpb25zIC0gaW5jbHVkaW5nIGVycm9yIG5vdGlmaWNhdGlvbnMgLSB3aGlsZSBgZGVsYXlgIHdpbGwgcGFzcyB0aHJvdWdoIGVycm9yXG4gKiBmcm9tIHNvdXJjZSBPYnNlcnZhYmxlIGltbWVkaWF0ZWx5IHdoZW4gaXQgaXMgZW1pdHRlZC4gSW4gZ2VuZXJhbCBpdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdG8gdXNlIGBkZWxheWAgb3BlcmF0b3JcbiAqIGZvciBhbnkga2luZCBvZiBkZWxheWluZyBvZiB2YWx1ZXMgaW4gdGhlIHN0cmVhbSwgd2hpbGUgdXNpbmcgYG9ic2VydmVPbmAgdG8gc3BlY2lmeSB3aGljaCBzY2hlZHVsZXIgc2hvdWxkIGJlIHVzZWRcbiAqIGZvciBub3RpZmljYXRpb24gZW1pc3Npb25zIGluIGdlbmVyYWwuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIEVuc3VyZSB2YWx1ZXMgaW4gc3Vic2NyaWJlIGFyZSBjYWxsZWQganVzdCBiZWZvcmUgYnJvd3NlciByZXBhaW50XG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCBvYnNlcnZlT24sIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgc29tZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICogc29tZURpdi5zdHlsZS5jc3NUZXh0ID0gJ3dpZHRoOiAyMDBweDtiYWNrZ3JvdW5kOiAjMDljJztcbiAqIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc29tZURpdik7XG4gKiBjb25zdCBpbnRlcnZhbHMgPSBpbnRlcnZhbCgxMCk7ICAgICAgLy8gSW50ZXJ2YWxzIGFyZSBzY2hlZHVsZWRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aXRoIGFzeW5jIHNjaGVkdWxlciBieSBkZWZhdWx0Li4uXG4gKiBpbnRlcnZhbHMucGlwZShcbiAqICAgb2JzZXJ2ZU9uKGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSAvLyAuLi5idXQgd2Ugd2lsbCBvYnNlcnZlIG9uIGFuaW1hdGlvbkZyYW1lXG4gKiApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2NoZWR1bGVyIHRvIGVuc3VyZSBzbW9vdGggYW5pbWF0aW9uLlxuICogLnN1YnNjcmliZSh2YWwgPT4ge1xuICogICBzb21lRGl2LnN0eWxlLmhlaWdodCA9IHZhbCArICdweCc7XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGRlbGF5fVxuICpcbiAqIEBwYXJhbSBzY2hlZHVsZXIgU2NoZWR1bGVyIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHJlc2NoZWR1bGUgbm90aWZpY2F0aW9ucyBmcm9tIHNvdXJjZSBPYnNlcnZhYmxlLlxuICogQHBhcmFtIGRlbGF5IE51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhhdCBzdGF0ZXMgd2l0aCB3aGF0IGRlbGF5IGV2ZXJ5IG5vdGlmaWNhdGlvbiBzaG91bGQgYmUgcmVzY2hlZHVsZWQuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2FtZVxuICogbm90aWZpY2F0aW9ucyBhcyB0aGUgc291cmNlIE9ic2VydmFibGUsIGJ1dCB3aXRoIHByb3ZpZGVkIHNjaGVkdWxlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmVPbjxUPihzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UsIGRlbGF5ID0gMCk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAodmFsdWUpID0+IGV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsICgpID0+IHN1YnNjcmliZXIubmV4dCh2YWx1ZSksIGRlbGF5KSxcbiAgICAgICAgKCkgPT4gZXhlY3V0ZVNjaGVkdWxlKHN1YnNjcmliZXIsIHNjaGVkdWxlciwgKCkgPT4gc3Vic2NyaWJlci5jb21wbGV0ZSgpLCBkZWxheSksXG4gICAgICAgIChlcnIpID0+IGV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsICgpID0+IHN1YnNjcmliZXIuZXJyb3IoZXJyKSwgZGVsYXkpXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5cbi8qKlxuICogQXN5bmNocm9ub3VzbHkgc3Vic2NyaWJlcyBPYnNlcnZlcnMgdG8gdGhpcyBPYnNlcnZhYmxlIG9uIHRoZSBzcGVjaWZpZWQge0BsaW5rIFNjaGVkdWxlckxpa2V9LlxuICpcbiAqIFdpdGggYHN1YnNjcmliZU9uYCB5b3UgY2FuIGRlY2lkZSB3aGF0IHR5cGUgb2Ygc2NoZWR1bGVyIGEgc3BlY2lmaWMgT2JzZXJ2YWJsZSB3aWxsIGJlIHVzaW5nIHdoZW4gaXQgaXMgc3Vic2NyaWJlZCB0by5cbiAqXG4gKiBTY2hlZHVsZXJzIGNvbnRyb2wgdGhlIHNwZWVkIGFuZCBvcmRlciBvZiBlbWlzc2lvbnMgdG8gb2JzZXJ2ZXJzIGZyb20gYW4gT2JzZXJ2YWJsZSBzdHJlYW0uXG4gKlxuICogIVtdKHN1YnNjcmliZU9uLnBuZylcbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogR2l2ZW4gdGhlIGZvbGxvd2luZyBjb2RlOlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBvZiwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBhID0gb2YoMSwgMiwgMyk7XG4gKiBjb25zdCBiID0gb2YoNCwgNSwgNik7XG4gKlxuICogbWVyZ2UoYSwgYikuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTtcbiAqXG4gKiAvLyBPdXRwdXRzXG4gKiAvLyAxXG4gKiAvLyAyXG4gKiAvLyAzXG4gKiAvLyA0XG4gKiAvLyA1XG4gKiAvLyA2XG4gKiBgYGBcbiAqXG4gKiBCb3RoIE9ic2VydmFibGUgYGFgIGFuZCBgYmAgd2lsbCBlbWl0IHRoZWlyIHZhbHVlcyBkaXJlY3RseSBhbmQgc3luY2hyb25vdXNseSBvbmNlIHRoZXkgYXJlIHN1YnNjcmliZWQgdG8uXG4gKlxuICogSWYgd2UgaW5zdGVhZCB1c2UgdGhlIGBzdWJzY3JpYmVPbmAgb3BlcmF0b3IgZGVjbGFyaW5nIHRoYXQgd2Ugd2FudCB0byB1c2UgdGhlIHtAbGluayBhc3luY1NjaGVkdWxlcn0gZm9yIHZhbHVlcyBlbWl0dGVkIGJ5IE9ic2VydmFibGUgYGFgOlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBvZiwgc3Vic2NyaWJlT24sIGFzeW5jU2NoZWR1bGVyLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGEgPSBvZigxLCAyLCAzKS5waXBlKHN1YnNjcmliZU9uKGFzeW5jU2NoZWR1bGVyKSk7XG4gKiBjb25zdCBiID0gb2YoNCwgNSwgNik7XG4gKlxuICogbWVyZ2UoYSwgYikuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTtcbiAqXG4gKiAvLyBPdXRwdXRzXG4gKiAvLyA0XG4gKiAvLyA1XG4gKiAvLyA2XG4gKiAvLyAxXG4gKiAvLyAyXG4gKiAvLyAzXG4gKiBgYGBcbiAqXG4gKiBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgT2JzZXJ2YWJsZSBgYmAgZW1pdHMgaXRzIHZhbHVlcyBkaXJlY3RseSBhbmQgc3luY2hyb25vdXNseSBsaWtlIGJlZm9yZVxuICogYnV0IHRoZSBlbWlzc2lvbnMgZnJvbSBgYWAgYXJlIHNjaGVkdWxlZCBvbiB0aGUgZXZlbnQgbG9vcCBiZWNhdXNlIHdlIGFyZSBub3cgdXNpbmcgdGhlIHtAbGluayBhc3luY1NjaGVkdWxlcn0gZm9yIHRoYXQgc3BlY2lmaWMgT2JzZXJ2YWJsZS5cbiAqXG4gKiBAcGFyYW0gc2NoZWR1bGVyIFRoZSB7QGxpbmsgU2NoZWR1bGVyTGlrZX0gdG8gcGVyZm9ybSBzdWJzY3JpcHRpb24gYWN0aW9ucyBvbi5cbiAqIEBwYXJhbSBkZWxheSBBIGRlbGF5IHRvIHBhc3MgdG8gdGhlIHNjaGVkdWxlciB0byBkZWxheSBzdWJzY3JpcHRpb25zXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgbW9kaWZpZWQgc28gdGhhdCBpdHNcbiAqIHN1YnNjcmlwdGlvbnMgaGFwcGVuIG9uIHRoZSBzcGVjaWZpZWQge0BsaW5rIFNjaGVkdWxlckxpa2V9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3Vic2NyaWJlT248VD4oc2NoZWR1bGVyOiBTY2hlZHVsZXJMaWtlLCBkZWxheTogbnVtYmVyID0gMCk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBzdWJzY3JpYmVyLmFkZChzY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4gc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKSwgZGVsYXkpKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgaW5uZXJGcm9tIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9pbm5lckZyb20nO1xuaW1wb3J0IHsgb2JzZXJ2ZU9uIH0gZnJvbSAnLi4vb3BlcmF0b3JzL29ic2VydmVPbic7XG5pbXBvcnQgeyBzdWJzY3JpYmVPbiB9IGZyb20gJy4uL29wZXJhdG9ycy9zdWJzY3JpYmVPbic7XG5pbXBvcnQgeyBJbnRlcm9wT2JzZXJ2YWJsZSwgU2NoZWR1bGVyTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNjaGVkdWxlT2JzZXJ2YWJsZTxUPihpbnB1dDogSW50ZXJvcE9ic2VydmFibGU8VD4sIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSkge1xuICByZXR1cm4gaW5uZXJGcm9tKGlucHV0KS5waXBlKHN1YnNjcmliZU9uKHNjaGVkdWxlciksIG9ic2VydmVPbihzY2hlZHVsZXIpKTtcbn1cbiIsICJpbXBvcnQgeyBpbm5lckZyb20gfSBmcm9tICcuLi9vYnNlcnZhYmxlL2lubmVyRnJvbSc7XG5pbXBvcnQgeyBvYnNlcnZlT24gfSBmcm9tICcuLi9vcGVyYXRvcnMvb2JzZXJ2ZU9uJztcbmltcG9ydCB7IHN1YnNjcmliZU9uIH0gZnJvbSAnLi4vb3BlcmF0b3JzL3N1YnNjcmliZU9uJztcbmltcG9ydCB7IFNjaGVkdWxlckxpa2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzY2hlZHVsZVByb21pc2U8VD4oaW5wdXQ6IFByb21pc2VMaWtlPFQ+LCBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UpIHtcbiAgcmV0dXJuIGlubmVyRnJvbShpbnB1dCkucGlwZShzdWJzY3JpYmVPbihzY2hlZHVsZXIpLCBvYnNlcnZlT24oc2NoZWR1bGVyKSk7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgU2NoZWR1bGVyTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNjaGVkdWxlQXJyYXk8VD4oaW5wdXQ6IEFycmF5TGlrZTxUPiwgc2NoZWR1bGVyOiBTY2hlZHVsZXJMaWtlKSB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPigoc3Vic2NyaWJlcikgPT4ge1xuICAgIC8vIFRoZSBjdXJyZW50IGFycmF5IGluZGV4LlxuICAgIGxldCBpID0gMDtcbiAgICAvLyBTdGFydCBpdGVyYXRpbmcgb3ZlciB0aGUgYXJyYXkgbGlrZSBvbiBhIHNjaGVkdWxlLlxuICAgIHJldHVybiBzY2hlZHVsZXIuc2NoZWR1bGUoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKGkgPT09IGlucHV0Lmxlbmd0aCkge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGhpdCB0aGUgZW5kIG9mIHRoZSBhcnJheSBsaWtlIGluIHRoZVxuICAgICAgICAvLyBwcmV2aW91cyBqb2IsIHdlIGNhbiBjb21wbGV0ZS5cbiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlIGxldCdzIG5leHQgdGhlIHZhbHVlIGF0IHRoZSBjdXJyZW50IGluZGV4LFxuICAgICAgICAvLyB0aGVuIGluY3JlbWVudCBvdXIgaW5kZXguXG4gICAgICAgIHN1YnNjcmliZXIubmV4dChpbnB1dFtpKytdKTtcbiAgICAgICAgLy8gSWYgdGhlIGxhc3QgZW1pc3Npb24gZGlkbid0IGNhdXNlIHVzIHRvIGNsb3NlIHRoZSBzdWJzY3JpYmVyXG4gICAgICAgIC8vICh2aWEgdGFrZSBvciBzb21lIHNpZGUgZWZmZWN0KSwgcmVzY2hlZHVsZSB0aGUgam9iIGFuZCB3ZSdsbFxuICAgICAgICAvLyBtYWtlIGFub3RoZXIgcGFzcy5cbiAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkge1xuICAgICAgICAgIHRoaXMuc2NoZWR1bGUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBTY2hlZHVsZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXRlcmF0b3IgYXMgU3ltYm9sX2l0ZXJhdG9yIH0gZnJvbSAnLi4vc3ltYm9sL2l0ZXJhdG9yJztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuLi91dGlsL2lzRnVuY3Rpb24nO1xuaW1wb3J0IHsgZXhlY3V0ZVNjaGVkdWxlIH0gZnJvbSAnLi4vdXRpbC9leGVjdXRlU2NoZWR1bGUnO1xuXG4vKipcbiAqIFVzZWQgaW4ge0BsaW5rIHNjaGVkdWxlZH0gdG8gY3JlYXRlIGFuIG9ic2VydmFibGUgZnJvbSBhbiBJdGVyYWJsZS5cbiAqIEBwYXJhbSBpbnB1dCBUaGUgaXRlcmFibGUgdG8gY3JlYXRlIGFuIG9ic2VydmFibGUgZnJvbVxuICogQHBhcmFtIHNjaGVkdWxlciBUaGUgc2NoZWR1bGVyIHRvIHVzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NoZWR1bGVJdGVyYWJsZTxUPihpbnB1dDogSXRlcmFibGU8VD4sIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSkge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4oKHN1YnNjcmliZXIpID0+IHtcbiAgICBsZXQgaXRlcmF0b3I6IEl0ZXJhdG9yPFQsIFQ+O1xuXG4gICAgLy8gU2NoZWR1bGUgdGhlIGluaXRpYWwgY3JlYXRpb24gb2YgdGhlIGl0ZXJhdG9yIGZyb21cbiAgICAvLyB0aGUgaXRlcmFibGUuIFRoaXMgaXMgc28gdGhlIGNvZGUgaW4gdGhlIGl0ZXJhYmxlIGlzXG4gICAgLy8gbm90IGNhbGxlZCB1bnRpbCB0aGUgc2NoZWR1bGVkIGpvYiBmaXJlcy5cbiAgICBleGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCAoKSA9PiB7XG4gICAgICAvLyBDcmVhdGUgdGhlIGl0ZXJhdG9yLlxuICAgICAgaXRlcmF0b3IgPSAoaW5wdXQgYXMgYW55KVtTeW1ib2xfaXRlcmF0b3JdKCk7XG5cbiAgICAgIGV4ZWN1dGVTY2hlZHVsZShcbiAgICAgICAgc3Vic2NyaWJlcixcbiAgICAgICAgc2NoZWR1bGVyLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgbGV0IHZhbHVlOiBUO1xuICAgICAgICAgIGxldCBkb25lOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBQdWxsIHRoZSB2YWx1ZSBvdXQgb2YgdGhlIGl0ZXJhdG9yXG4gICAgICAgICAgICAoeyB2YWx1ZSwgZG9uZSB9ID0gaXRlcmF0b3IubmV4dCgpKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIFdlIGdvdCBhbiBlcnJvciB3aGlsZSBwdWxsaW5nIGZyb20gdGhlIGl0ZXJhdG9yXG4gICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgICAgIC8vIElmIGl0IGlzIFwiZG9uZVwiIHdlIGp1c3QgY29tcGxldGUuIFRoaXMgbWltaWNzIHRoZVxuICAgICAgICAgICAgLy8gYmVoYXZpb3Igb2YgSmF2YVNjcmlwdCdzIGBmb3IuLm9mYCBjb25zdW1wdGlvbiBvZlxuICAgICAgICAgICAgLy8gaXRlcmFibGVzLCB3aGljaCB3aWxsIG5vdCBlbWl0IHRoZSB2YWx1ZSBmcm9tIGFuIGl0ZXJhdG9yXG4gICAgICAgICAgICAvLyByZXN1bHQgb2YgYHsgZG9uZTogdHJ1ZTogdmFsdWU6ICdoZXJlJyB9YC5cbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVGhlIGl0ZXJhYmxlIGlzIG5vdCBkb25lLCBlbWl0IHRoZSB2YWx1ZS5cbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAwLFxuICAgICAgICB0cnVlXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgLy8gRHVyaW5nIGZpbmFsaXphdGlvbiwgaWYgd2Ugc2VlIHRoaXMgaXRlcmF0b3IgaGFzIGEgYHJldHVybmAgbWV0aG9kLFxuICAgIC8vIHRoZW4gd2Uga25vdyBpdCBpcyBhIEdlbmVyYXRvciwgYW5kIG5vdCBqdXN0IGFuIEl0ZXJhdG9yLiBTbyB3ZSBjYWxsXG4gICAgLy8gdGhlIGByZXR1cm4oKWAgZnVuY3Rpb24uIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCBhbnkgYGZpbmFsbHkgeyB9YCBibG9ja3NcbiAgICAvLyBpbnNpZGUgb2YgdGhlIGdlbmVyYXRvciB3ZSBjYW4gaGl0IHdpbGwgYmUgaGl0IHByb3Blcmx5LlxuICAgIHJldHVybiAoKSA9PiBpc0Z1bmN0aW9uKGl0ZXJhdG9yPy5yZXR1cm4pICYmIGl0ZXJhdG9yLnJldHVybigpO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBTY2hlZHVsZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgZXhlY3V0ZVNjaGVkdWxlIH0gZnJvbSAnLi4vdXRpbC9leGVjdXRlU2NoZWR1bGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2NoZWR1bGVBc3luY0l0ZXJhYmxlPFQ+KGlucHV0OiBBc3luY0l0ZXJhYmxlPFQ+LCBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UpIHtcbiAgaWYgKCFpbnB1dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSXRlcmFibGUgY2Fubm90IGJlIG51bGwnKTtcbiAgfVxuICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4oKHN1YnNjcmliZXIpID0+IHtcbiAgICBleGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCAoKSA9PiB7XG4gICAgICBjb25zdCBpdGVyYXRvciA9IGlucHV0W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO1xuICAgICAgZXhlY3V0ZVNjaGVkdWxlKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICBzY2hlZHVsZXIsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpdGVyYXRvci5uZXh0KCkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0LmRvbmUpIHtcbiAgICAgICAgICAgICAgLy8gVGhpcyB3aWxsIHJlbW92ZSB0aGUgc3Vic2NyaXB0aW9ucyBmcm9tXG4gICAgICAgICAgICAgIC8vIHRoZSBwYXJlbnQgc3Vic2NyaXB0aW9uLlxuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQocmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgMCxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgU2NoZWR1bGVyTGlrZSwgUmVhZGFibGVTdHJlYW1MaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgc2NoZWR1bGVBc3luY0l0ZXJhYmxlIH0gZnJvbSAnLi9zY2hlZHVsZUFzeW5jSXRlcmFibGUnO1xuaW1wb3J0IHsgcmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvciB9IGZyb20gJy4uL3V0aWwvaXNSZWFkYWJsZVN0cmVhbUxpa2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2U8VD4oaW5wdXQ6IFJlYWRhYmxlU3RyZWFtTGlrZTxUPiwgc2NoZWR1bGVyOiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBzY2hlZHVsZUFzeW5jSXRlcmFibGUocmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvcihpbnB1dCksIHNjaGVkdWxlcik7XG59XG4iLCAiaW1wb3J0IHsgc2NoZWR1bGVPYnNlcnZhYmxlIH0gZnJvbSAnLi9zY2hlZHVsZU9ic2VydmFibGUnO1xuaW1wb3J0IHsgc2NoZWR1bGVQcm9taXNlIH0gZnJvbSAnLi9zY2hlZHVsZVByb21pc2UnO1xuaW1wb3J0IHsgc2NoZWR1bGVBcnJheSB9IGZyb20gJy4vc2NoZWR1bGVBcnJheSc7XG5pbXBvcnQgeyBzY2hlZHVsZUl0ZXJhYmxlIH0gZnJvbSAnLi9zY2hlZHVsZUl0ZXJhYmxlJztcbmltcG9ydCB7IHNjaGVkdWxlQXN5bmNJdGVyYWJsZSB9IGZyb20gJy4vc2NoZWR1bGVBc3luY0l0ZXJhYmxlJztcbmltcG9ydCB7IGlzSW50ZXJvcE9ic2VydmFibGUgfSBmcm9tICcuLi91dGlsL2lzSW50ZXJvcE9ic2VydmFibGUnO1xuaW1wb3J0IHsgaXNQcm9taXNlIH0gZnJvbSAnLi4vdXRpbC9pc1Byb21pc2UnO1xuaW1wb3J0IHsgaXNBcnJheUxpa2UgfSBmcm9tICcuLi91dGlsL2lzQXJyYXlMaWtlJztcbmltcG9ydCB7IGlzSXRlcmFibGUgfSBmcm9tICcuLi91dGlsL2lzSXRlcmFibGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0LCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgaXNBc3luY0l0ZXJhYmxlIH0gZnJvbSAnLi4vdXRpbC9pc0FzeW5jSXRlcmFibGUnO1xuaW1wb3J0IHsgY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IgfSBmcm9tICcuLi91dGlsL3Rocm93VW5vYnNlcnZhYmxlRXJyb3InO1xuaW1wb3J0IHsgaXNSZWFkYWJsZVN0cmVhbUxpa2UgfSBmcm9tICcuLi91dGlsL2lzUmVhZGFibGVTdHJlYW1MaWtlJztcbmltcG9ydCB7IHNjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlIH0gZnJvbSAnLi9zY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZSc7XG5cbi8qKlxuICogQ29udmVydHMgZnJvbSBhIGNvbW1vbiB7QGxpbmsgT2JzZXJ2YWJsZUlucHV0fSB0eXBlIHRvIGFuIG9ic2VydmFibGUgd2hlcmUgc3Vic2NyaXB0aW9uIGFuZCBlbWlzc2lvbnNcbiAqIGFyZSBzY2hlZHVsZWQgb24gdGhlIHByb3ZpZGVkIHNjaGVkdWxlci5cbiAqXG4gKiBAc2VlIHtAbGluayBmcm9tfVxuICogQHNlZSB7QGxpbmsgb2Z9XG4gKlxuICogQHBhcmFtIGlucHV0IFRoZSBvYnNlcnZhYmxlLCBhcnJheSwgcHJvbWlzZSwgaXRlcmFibGUsIGV0YyB5b3Ugd291bGQgbGlrZSB0byBzY2hlZHVsZVxuICogQHBhcmFtIHNjaGVkdWxlciBUaGUgc2NoZWR1bGVyIHRvIHVzZSB0byBzY2hlZHVsZSB0aGUgc3Vic2NyaXB0aW9uIGFuZCBlbWlzc2lvbnMgZnJvbVxuICogdGhlIHJldHVybmVkIG9ic2VydmFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY2hlZHVsZWQ8VD4oaW5wdXQ6IE9ic2VydmFibGVJbnB1dDxUPiwgc2NoZWR1bGVyOiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTxUPiB7XG4gIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgaWYgKGlzSW50ZXJvcE9ic2VydmFibGUoaW5wdXQpKSB7XG4gICAgICByZXR1cm4gc2NoZWR1bGVPYnNlcnZhYmxlKGlucHV0LCBzY2hlZHVsZXIpO1xuICAgIH1cbiAgICBpZiAoaXNBcnJheUxpa2UoaW5wdXQpKSB7XG4gICAgICByZXR1cm4gc2NoZWR1bGVBcnJheShpbnB1dCwgc2NoZWR1bGVyKTtcbiAgICB9XG4gICAgaWYgKGlzUHJvbWlzZShpbnB1dCkpIHtcbiAgICAgIHJldHVybiBzY2hlZHVsZVByb21pc2UoaW5wdXQsIHNjaGVkdWxlcik7XG4gICAgfVxuICAgIGlmIChpc0FzeW5jSXRlcmFibGUoaW5wdXQpKSB7XG4gICAgICByZXR1cm4gc2NoZWR1bGVBc3luY0l0ZXJhYmxlKGlucHV0LCBzY2hlZHVsZXIpO1xuICAgIH1cbiAgICBpZiAoaXNJdGVyYWJsZShpbnB1dCkpIHtcbiAgICAgIHJldHVybiBzY2hlZHVsZUl0ZXJhYmxlKGlucHV0LCBzY2hlZHVsZXIpO1xuICAgIH1cbiAgICBpZiAoaXNSZWFkYWJsZVN0cmVhbUxpa2UoaW5wdXQpKSB7XG4gICAgICByZXR1cm4gc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UoaW5wdXQsIHNjaGVkdWxlcik7XG4gICAgfVxuICB9XG4gIHRocm93IGNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yKGlucHV0KTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQsIFNjaGVkdWxlckxpa2UsIE9ic2VydmVkVmFsdWVPZiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHNjaGVkdWxlZCB9IGZyb20gJy4uL3NjaGVkdWxlZC9zY2hlZHVsZWQnO1xuaW1wb3J0IHsgaW5uZXJGcm9tIH0gZnJvbSAnLi9pbm5lckZyb20nO1xuXG5leHBvcnQgZnVuY3Rpb24gZnJvbTxPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PGFueT4+KGlucHV0OiBPKTogT2JzZXJ2YWJsZTxPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuLyoqIEBkZXByZWNhdGVkIFRoZSBgc2NoZWR1bGVyYCBwYXJhbWV0ZXIgd2lsbCBiZSByZW1vdmVkIGluIHY4LiBVc2UgYHNjaGVkdWxlZGAuIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL3NjaGVkdWxlci1hcmd1bWVudCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb208TyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihpbnB1dDogTywgc2NoZWR1bGVyOiBTY2hlZHVsZXJMaWtlIHwgdW5kZWZpbmVkKTogT2JzZXJ2YWJsZTxPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gT2JzZXJ2YWJsZSBmcm9tIGFuIEFycmF5LCBhbiBhcnJheS1saWtlIG9iamVjdCwgYSBQcm9taXNlLCBhbiBpdGVyYWJsZSBvYmplY3QsIG9yIGFuIE9ic2VydmFibGUtbGlrZSBvYmplY3QuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkNvbnZlcnRzIGFsbW9zdCBhbnl0aGluZyB0byBhbiBPYnNlcnZhYmxlLjwvc3Bhbj5cbiAqXG4gKiAhW10oZnJvbS5wbmcpXG4gKlxuICogYGZyb21gIGNvbnZlcnRzIHZhcmlvdXMgb3RoZXIgb2JqZWN0cyBhbmQgZGF0YSB0eXBlcyBpbnRvIE9ic2VydmFibGVzLiBJdCBhbHNvIGNvbnZlcnRzIGEgUHJvbWlzZSwgYW4gYXJyYXktbGlrZSwgb3IgYW5cbiAqIDxhIGhyZWY9XCJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9JdGVyYXRpb25fcHJvdG9jb2xzI2l0ZXJhYmxlXCIgdGFyZ2V0PVwiX2JsYW5rXCI+aXRlcmFibGU8L2E+XG4gKiBvYmplY3QgaW50byBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGl0ZW1zIGluIHRoYXQgcHJvbWlzZSwgYXJyYXksIG9yIGl0ZXJhYmxlLiBBIFN0cmluZywgaW4gdGhpcyBjb250ZXh0LCBpcyB0cmVhdGVkXG4gKiBhcyBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzLiBPYnNlcnZhYmxlLWxpa2Ugb2JqZWN0cyAoY29udGFpbnMgYSBmdW5jdGlvbiBuYW1lZCB3aXRoIHRoZSBFUzIwMTUgU3ltYm9sIGZvciBPYnNlcnZhYmxlKSBjYW4gYWxzbyBiZVxuICogY29udmVydGVkIHRocm91Z2ggdGhpcyBvcGVyYXRvci5cbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIENvbnZlcnRzIGFuIGFycmF5IHRvIGFuIE9ic2VydmFibGVcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGFycmF5ID0gWzEwLCAyMCwgMzBdO1xuICogY29uc3QgcmVzdWx0ID0gZnJvbShhcnJheSk7XG4gKlxuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqXG4gKiAvLyBMb2dzOlxuICogLy8gMTBcbiAqIC8vIDIwXG4gKiAvLyAzMFxuICogYGBgXG4gKlxuICogQ29udmVydCBhbiBpbmZpbml0ZSBpdGVyYWJsZSAoZnJvbSBhIGdlbmVyYXRvcikgdG8gYW4gT2JzZXJ2YWJsZVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tLCB0YWtlIH0gZnJvbSAncnhqcyc7XG4gKlxuICogZnVuY3Rpb24qIGdlbmVyYXRlRG91YmxlcyhzZWVkKSB7XG4gKiAgICBsZXQgaSA9IHNlZWQ7XG4gKiAgICB3aGlsZSAodHJ1ZSkge1xuICogICAgICB5aWVsZCBpO1xuICogICAgICBpID0gMiAqIGk7IC8vIGRvdWJsZSBpdFxuICogICAgfVxuICogfVxuICpcbiAqIGNvbnN0IGl0ZXJhdG9yID0gZ2VuZXJhdGVEb3VibGVzKDMpO1xuICogY29uc3QgcmVzdWx0ID0gZnJvbShpdGVyYXRvcikucGlwZSh0YWtlKDEwKSk7XG4gKlxuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqXG4gKiAvLyBMb2dzOlxuICogLy8gM1xuICogLy8gNlxuICogLy8gMTJcbiAqIC8vIDI0XG4gKiAvLyA0OFxuICogLy8gOTZcbiAqIC8vIDE5MlxuICogLy8gMzg0XG4gKiAvLyA3NjhcbiAqIC8vIDE1MzZcbiAqIGBgYFxuICpcbiAqIFdpdGggYGFzeW5jU2NoZWR1bGVyYFxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tLCBhc3luY1NjaGVkdWxlciB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnNvbGUubG9nKCdzdGFydCcpO1xuICpcbiAqIGNvbnN0IGFycmF5ID0gWzEwLCAyMCwgMzBdO1xuICogY29uc3QgcmVzdWx0ID0gZnJvbShhcnJheSwgYXN5bmNTY2hlZHVsZXIpO1xuICpcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKlxuICogY29uc29sZS5sb2coJ2VuZCcpO1xuICpcbiAqIC8vIExvZ3M6XG4gKiAvLyAnc3RhcnQnXG4gKiAvLyAnZW5kJ1xuICogLy8gMTBcbiAqIC8vIDIwXG4gKiAvLyAzMFxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgZnJvbUV2ZW50fVxuICogQHNlZSB7QGxpbmsgZnJvbUV2ZW50UGF0dGVybn1cbiAqXG4gKiBAcGFyYW0gaW5wdXQgQSBzdWJzY3JpcHRpb24gb2JqZWN0LCBhIFByb21pc2UsIGFuIE9ic2VydmFibGUtbGlrZSxcbiAqIGFuIEFycmF5LCBhbiBpdGVyYWJsZSwgb3IgYW4gYXJyYXktbGlrZSBvYmplY3QgdG8gYmUgY29udmVydGVkLlxuICogQHBhcmFtIHNjaGVkdWxlciBBbiBvcHRpb25hbCB7QGxpbmsgU2NoZWR1bGVyTGlrZX0gb24gd2hpY2ggdG8gc2NoZWR1bGUgdGhlIGVtaXNzaW9uIG9mIHZhbHVlcy5cbiAqIEByZXR1cm4gQW4gT2JzZXJ2YWJsZSBjb252ZXJ0ZWQgZnJvbSB7QGxpbmsgT2JzZXJ2YWJsZUlucHV0fS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb208VD4oaW5wdXQ6IE9ic2VydmFibGVJbnB1dDxUPiwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSk6IE9ic2VydmFibGU8VD4ge1xuICByZXR1cm4gc2NoZWR1bGVyID8gc2NoZWR1bGVkKGlucHV0LCBzY2hlZHVsZXIpIDogaW5uZXJGcm9tKGlucHV0KTtcbn1cbiIsICJpbXBvcnQgeyBTY2hlZHVsZXJMaWtlLCBWYWx1ZUZyb21BcnJheSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IHBvcFNjaGVkdWxlciB9IGZyb20gJy4uL3V0aWwvYXJncyc7XG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAnLi9mcm9tJztcblxuLy8gRGV2cyBhcmUgbW9yZSBsaWtlbHkgdG8gcGFzcyBudWxsIG9yIHVuZGVmaW5lZCB0aGFuIHRoZXkgYXJlIGEgc2NoZWR1bGVyXG4vLyB3aXRob3V0IGFjY29tcGFueWluZyB2YWx1ZXMuIFRvIG1ha2UgdGhpbmdzIGVhc2llciBmb3IgKG5hdWdodHkpIGRldnMgd2hvXG4vLyB1c2UgdGhlIGBzdHJpY3ROdWxsQ2hlY2tzOiBmYWxzZWAgVHlwZVNjcmlwdCBjb21waWxlciBvcHRpb24sIHRoZXNlXG4vLyBvdmVybG9hZHMgd2l0aCBleHBsaWNpdCBudWxsIGFuZCB1bmRlZmluZWQgdmFsdWVzIGFyZSBpbmNsdWRlZC5cblxuZXhwb3J0IGZ1bmN0aW9uIG9mKHZhbHVlOiBudWxsKTogT2JzZXJ2YWJsZTxudWxsPjtcbmV4cG9ydCBmdW5jdGlvbiBvZih2YWx1ZTogdW5kZWZpbmVkKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+O1xuXG4vKiogQGRlcHJlY2F0ZWQgVGhlIGBzY2hlZHVsZXJgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSBgc2NoZWR1bGVkYC4gRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvc2NoZWR1bGVyLWFyZ3VtZW50ICovXG5leHBvcnQgZnVuY3Rpb24gb2Yoc2NoZWR1bGVyOiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTxuZXZlcj47XG4vKiogQGRlcHJlY2F0ZWQgVGhlIGBzY2hlZHVsZXJgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSBgc2NoZWR1bGVkYC4gRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvc2NoZWR1bGVyLWFyZ3VtZW50ICovXG5leHBvcnQgZnVuY3Rpb24gb2Y8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4oLi4udmFsdWVzQW5kU2NoZWR1bGVyOiBbLi4uQSwgU2NoZWR1bGVyTGlrZV0pOiBPYnNlcnZhYmxlPFZhbHVlRnJvbUFycmF5PEE+PjtcblxuZXhwb3J0IGZ1bmN0aW9uIG9mKCk6IE9ic2VydmFibGU8bmV2ZXI+O1xuLyoqIEBkZXByZWNhdGVkIERvIG5vdCBzcGVjaWZ5IGV4cGxpY2l0IHR5cGUgcGFyYW1ldGVycy4gU2lnbmF0dXJlcyB3aXRoIHR5cGUgcGFyYW1ldGVycyB0aGF0IGNhbm5vdCBiZSBpbmZlcnJlZCB3aWxsIGJlIHJlbW92ZWQgaW4gdjguICovXG5leHBvcnQgZnVuY3Rpb24gb2Y8VD4oKTogT2JzZXJ2YWJsZTxUPjtcbmV4cG9ydCBmdW5jdGlvbiBvZjxUPih2YWx1ZTogVCk6IE9ic2VydmFibGU8VD47XG5leHBvcnQgZnVuY3Rpb24gb2Y8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4oLi4udmFsdWVzOiBBKTogT2JzZXJ2YWJsZTxWYWx1ZUZyb21BcnJheTxBPj47XG5cbi8qKlxuICogQ29udmVydHMgdGhlIGFyZ3VtZW50cyB0byBhbiBvYnNlcnZhYmxlIHNlcXVlbmNlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5FYWNoIGFyZ3VtZW50IGJlY29tZXMgYSBgbmV4dGAgbm90aWZpY2F0aW9uLjwvc3Bhbj5cbiAqXG4gKiAhW10ob2YucG5nKVxuICpcbiAqIFVubGlrZSB7QGxpbmsgZnJvbX0sIGl0IGRvZXMgbm90IGRvIGFueSBmbGF0dGVuaW5nIGFuZCBlbWl0cyBlYWNoIGFyZ3VtZW50IGluIHdob2xlXG4gKiBhcyBhIHNlcGFyYXRlIGBuZXh0YCBub3RpZmljYXRpb24uXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBFbWl0IHRoZSB2YWx1ZXMgYDEwLCAyMCwgMzBgXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG4gKlxuICogb2YoMTAsIDIwLCAzMClcbiAqICAgLnN1YnNjcmliZSh7XG4gKiAgICAgbmV4dDogdmFsdWUgPT4gY29uc29sZS5sb2coJ25leHQ6JywgdmFsdWUpLFxuICogICAgIGVycm9yOiBlcnIgPT4gY29uc29sZS5sb2coJ2Vycm9yOicsIGVyciksXG4gKiAgICAgY29tcGxldGU6ICgpID0+IGNvbnNvbGUubG9nKCd0aGUgZW5kJyksXG4gKiAgIH0pO1xuICpcbiAqIC8vIE91dHB1dHNcbiAqIC8vIG5leHQ6IDEwXG4gKiAvLyBuZXh0OiAyMFxuICogLy8gbmV4dDogMzBcbiAqIC8vIHRoZSBlbmRcbiAqIGBgYFxuICpcbiAqIEVtaXQgdGhlIGFycmF5IGBbMSwgMiwgM11gXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG4gKlxuICogb2YoWzEsIDIsIDNdKVxuICogICAuc3Vic2NyaWJlKHtcbiAqICAgICBuZXh0OiB2YWx1ZSA9PiBjb25zb2xlLmxvZygnbmV4dDonLCB2YWx1ZSksXG4gKiAgICAgZXJyb3I6IGVyciA9PiBjb25zb2xlLmxvZygnZXJyb3I6JywgZXJyKSxcbiAqICAgICBjb21wbGV0ZTogKCkgPT4gY29uc29sZS5sb2coJ3RoZSBlbmQnKSxcbiAqICAgfSk7XG4gKlxuICogLy8gT3V0cHV0c1xuICogLy8gbmV4dDogWzEsIDIsIDNdXG4gKiAvLyB0aGUgZW5kXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBmcm9tfVxuICogQHNlZSB7QGxpbmsgcmFuZ2V9XG4gKlxuICogQHBhcmFtIGFyZ3MgQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhcmd1bWVudHMgeW91IHdhbnQgdG8gYmUgZW1pdHRlZC5cbiAqIEByZXR1cm4gQW4gT2JzZXJ2YWJsZSB0aGF0IHN5bmNocm9ub3VzbHkgZW1pdHMgdGhlIGFyZ3VtZW50cyBkZXNjcmliZWRcbiAqIGFib3ZlIGFuZCB0aGVuIGltbWVkaWF0ZWx5IGNvbXBsZXRlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9mPFQ+KC4uLmFyZ3M6IEFycmF5PFQgfCBTY2hlZHVsZXJMaWtlPik6IE9ic2VydmFibGU8VD4ge1xuICBjb25zdCBzY2hlZHVsZXIgPSBwb3BTY2hlZHVsZXIoYXJncyk7XG4gIHJldHVybiBmcm9tKGFyZ3MgYXMgVFtdLCBzY2hlZHVsZXIpO1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IFN1YnNjcmliZXIgfSBmcm9tICcuLi9TdWJzY3JpYmVyJztcbmltcG9ydCB7IFNjaGVkdWxlckxpa2UgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vdXRpbC9pc0Z1bmN0aW9uJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIG9ic2VydmFibGUgdGhhdCB3aWxsIGNyZWF0ZSBhbiBlcnJvciBpbnN0YW5jZSBhbmQgcHVzaCBpdCB0byB0aGUgY29uc3VtZXIgYXMgYW4gZXJyb3JcbiAqIGltbWVkaWF0ZWx5IHVwb24gc3Vic2NyaXB0aW9uLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5KdXN0IGVycm9ycyBhbmQgZG9lcyBub3RoaW5nIGVsc2U8L3NwYW4+XG4gKlxuICogIVtdKHRocm93LnBuZylcbiAqXG4gKiBUaGlzIGNyZWF0aW9uIGZ1bmN0aW9uIGlzIHVzZWZ1bCBmb3IgY3JlYXRpbmcgYW4gb2JzZXJ2YWJsZSB0aGF0IHdpbGwgY3JlYXRlIGFuIGVycm9yIGFuZCBlcnJvciBldmVyeVxuICogdGltZSBpdCBpcyBzdWJzY3JpYmVkIHRvLiBHZW5lcmFsbHksIGluc2lkZSBvZiBtb3N0IG9wZXJhdG9ycyB3aGVuIHlvdSBtaWdodCB3YW50IHRvIHJldHVybiBhbiBlcnJvcmVkXG4gKiBvYnNlcnZhYmxlLCB0aGlzIGlzIHVubmVjZXNzYXJ5LiBJbiBtb3N0IGNhc2VzLCBzdWNoIGFzIGluIHRoZSBpbm5lciByZXR1cm4gb2Yge0BsaW5rIGNvbmNhdE1hcH0sXG4gKiB7QGxpbmsgbWVyZ2VNYXB9LCB7QGxpbmsgZGVmZXJ9LCBhbmQgbWFueSBvdGhlcnMsIHlvdSBjYW4gc2ltcGx5IHRocm93IHRoZSBlcnJvciwgYW5kIFJ4SlMgd2lsbCBwaWNrXG4gKiB0aGF0IHVwIGFuZCBub3RpZnkgdGhlIGNvbnN1bWVyIG9mIHRoZSBlcnJvci5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogQ3JlYXRlIGEgc2ltcGxlIG9ic2VydmFibGUgdGhhdCB3aWxsIGNyZWF0ZSBhIG5ldyBlcnJvciB3aXRoIGEgdGltZXN0YW1wIGFuZCBsb2cgaXRcbiAqIGFuZCB0aGUgbWVzc2FnZSBldmVyeSB0aW1lIHlvdSBzdWJzY3JpYmUgdG8gaXRcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGxldCBlcnJvckNvdW50ID0gMDtcbiAqXG4gKiBjb25zdCBlcnJvcldpdGhUaW1lc3RhbXAkID0gdGhyb3dFcnJvcigoKSA9PiB7XG4gKiAgIGNvbnN0IGVycm9yOiBhbnkgPSBuZXcgRXJyb3IoYFRoaXMgaXMgZXJyb3IgbnVtYmVyICR7ICsrZXJyb3JDb3VudCB9YCk7XG4gKiAgIGVycm9yLnRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gKiAgIHJldHVybiBlcnJvcjtcbiAqIH0pO1xuICpcbiAqIGVycm9yV2l0aFRpbWVzdGFtcCQuc3Vic2NyaWJlKHtcbiAqICAgZXJyb3I6IGVyciA9PiBjb25zb2xlLmxvZyhlcnIudGltZXN0YW1wLCBlcnIubWVzc2FnZSlcbiAqIH0pO1xuICpcbiAqIGVycm9yV2l0aFRpbWVzdGFtcCQuc3Vic2NyaWJlKHtcbiAqICAgZXJyb3I6IGVyciA9PiBjb25zb2xlLmxvZyhlcnIudGltZXN0YW1wLCBlcnIubWVzc2FnZSlcbiAqIH0pO1xuICpcbiAqIC8vIExvZ3MgdGhlIHRpbWVzdGFtcCBhbmQgYSBuZXcgZXJyb3IgbWVzc2FnZSBmb3IgZWFjaCBzdWJzY3JpcHRpb25cbiAqIGBgYFxuICpcbiAqICMjIyBVbm5lY2Vzc2FyeSB1c2FnZVxuICpcbiAqIFVzaW5nIGB0aHJvd0Vycm9yYCBpbnNpZGUgb2YgYW4gb3BlcmF0b3Igb3IgY3JlYXRpb24gZnVuY3Rpb25cbiAqIHdpdGggYSBjYWxsYmFjaywgaXMgdXN1YWxseSBub3QgbmVjZXNzYXJ5XG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBjb25jYXRNYXAsIHRpbWVyLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgZGVsYXlzJCA9IG9mKDEwMDAsIDIwMDAsIEluZmluaXR5LCAzMDAwKTtcbiAqXG4gKiBkZWxheXMkLnBpcGUoXG4gKiAgIGNvbmNhdE1hcChtcyA9PiB7XG4gKiAgICAgaWYgKG1zIDwgMTAwMDApIHtcbiAqICAgICAgIHJldHVybiB0aW1lcihtcyk7XG4gKiAgICAgfSBlbHNlIHtcbiAqICAgICAgIC8vIFRoaXMgaXMgcHJvYmFibHkgb3ZlcmtpbGwuXG4gKiAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoYEludmFsaWQgdGltZSAkeyBtcyB9YCkpO1xuICogICAgIH1cbiAqICAgfSlcbiAqIClcbiAqIC5zdWJzY3JpYmUoe1xuICogICBuZXh0OiBjb25zb2xlLmxvZyxcbiAqICAgZXJyb3I6IGNvbnNvbGUuZXJyb3JcbiAqIH0pO1xuICogYGBgXG4gKlxuICogWW91IGNhbiBqdXN0IHRocm93IHRoZSBlcnJvciBpbnN0ZWFkXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBjb25jYXRNYXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgZGVsYXlzJCA9IG9mKDEwMDAsIDIwMDAsIEluZmluaXR5LCAzMDAwKTtcbiAqXG4gKiBkZWxheXMkLnBpcGUoXG4gKiAgIGNvbmNhdE1hcChtcyA9PiB7XG4gKiAgICAgaWYgKG1zIDwgMTAwMDApIHtcbiAqICAgICAgIHJldHVybiB0aW1lcihtcyk7XG4gKiAgICAgfSBlbHNlIHtcbiAqICAgICAgIC8vIENsZWFuZXIgYW5kIGVhc2llciB0byByZWFkIGZvciBtb3N0IGZvbGtzLlxuICogICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRpbWUgJHsgbXMgfWApO1xuICogICAgIH1cbiAqICAgfSlcbiAqIClcbiAqIC5zdWJzY3JpYmUoe1xuICogICBuZXh0OiBjb25zb2xlLmxvZyxcbiAqICAgZXJyb3I6IGNvbnNvbGUuZXJyb3JcbiAqIH0pO1xuICogYGBgXG4gKlxuICogQHBhcmFtIGVycm9yRmFjdG9yeSBBIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCB3aWxsIGNyZWF0ZSB0aGUgZXJyb3IgaW5zdGFuY2UgdGhhdCBpcyBwdXNoZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0Vycm9yKGVycm9yRmFjdG9yeTogKCkgPT4gYW55KTogT2JzZXJ2YWJsZTxuZXZlcj47XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgd2lsbCBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgZXJyb3IgaW1tZWRpYXRlbHkgdXBvbiBzdWJzY3JpcHRpb24uXG4gKlxuICogQHBhcmFtIGVycm9yIFRoZSBlcnJvciBpbnN0YW5jZSB0byBlbWl0XG4gKiBAZGVwcmVjYXRlZCBTdXBwb3J0IGZvciBwYXNzaW5nIGFuIGVycm9yIHZhbHVlIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gSW5zdGVhZCwgcGFzcyBhIGZhY3RvcnkgZnVuY3Rpb24gdG8gYHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCd0ZXN0JykpYC4gVGhpcyBpc1xuICogYmVjYXVzZSBpdCB3aWxsIGNyZWF0ZSB0aGUgZXJyb3IgYXQgdGhlIG1vbWVudCBpdCBzaG91bGQgYmUgY3JlYXRlZCBhbmQgY2FwdHVyZSBhIG1vcmUgYXBwcm9wcmlhdGUgc3RhY2sgdHJhY2UuIElmXG4gKiBmb3Igc29tZSByZWFzb24geW91IG5lZWQgdG8gY3JlYXRlIHRoZSBlcnJvciBhaGVhZCBvZiB0aW1lLCB5b3UgY2FuIHN0aWxsIGRvIHRoYXQ6IGBjb25zdCBlcnIgPSBuZXcgRXJyb3IoJ3Rlc3QnKTsgdGhyb3dFcnJvcigoKSA9PiBlcnIpO2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0Vycm9yKGVycm9yOiBhbnkpOiBPYnNlcnZhYmxlPG5ldmVyPjtcblxuLyoqXG4gKiBOb3RpZmllcyB0aGUgY29uc3VtZXIgb2YgYW4gZXJyb3IgdXNpbmcgYSBnaXZlbiBzY2hlZHVsZXIgYnkgc2NoZWR1bGluZyBpdCBhdCBkZWxheSBgMGAgdXBvbiBzdWJzY3JpcHRpb24uXG4gKlxuICogQHBhcmFtIGVycm9yT3JFcnJvckZhY3RvcnkgQW4gZXJyb3IgaW5zdGFuY2Ugb3IgZXJyb3IgZmFjdG9yeVxuICogQHBhcmFtIHNjaGVkdWxlciBBIHNjaGVkdWxlciB0byB1c2UgdG8gc2NoZWR1bGUgdGhlIGVycm9yIG5vdGlmaWNhdGlvblxuICogQGRlcHJlY2F0ZWQgVGhlIGBzY2hlZHVsZXJgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguXG4gKiBVc2UgYHRocm93RXJyb3JgIGluIGNvbWJpbmF0aW9uIHdpdGgge0BsaW5rIG9ic2VydmVPbn06IGB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcigndGVzdCcpKS5waXBlKG9ic2VydmVPbihzY2hlZHVsZXIpKTtgLlxuICogRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvc2NoZWR1bGVyLWFyZ3VtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0Vycm9yKGVycm9yT3JFcnJvckZhY3Rvcnk6IGFueSwgc2NoZWR1bGVyOiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTxuZXZlcj47XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0Vycm9yKGVycm9yT3JFcnJvckZhY3Rvcnk6IGFueSwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSk6IE9ic2VydmFibGU8bmV2ZXI+IHtcbiAgY29uc3QgZXJyb3JGYWN0b3J5ID0gaXNGdW5jdGlvbihlcnJvck9yRXJyb3JGYWN0b3J5KSA/IGVycm9yT3JFcnJvckZhY3RvcnkgOiAoKSA9PiBlcnJvck9yRXJyb3JGYWN0b3J5O1xuICBjb25zdCBpbml0ID0gKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8bmV2ZXI+KSA9PiBzdWJzY3JpYmVyLmVycm9yKGVycm9yRmFjdG9yeSgpKTtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKHNjaGVkdWxlciA/IChzdWJzY3JpYmVyKSA9PiBzY2hlZHVsZXIuc2NoZWR1bGUoaW5pdCBhcyBhbnksIDAsIHN1YnNjcmliZXIpIDogaW5pdCk7XG59XG4iLCAiaW1wb3J0IHsgUGFydGlhbE9ic2VydmVyLCBPYnNlcnZhYmxlTm90aWZpY2F0aW9uLCBDb21wbGV0ZU5vdGlmaWNhdGlvbiwgTmV4dE5vdGlmaWNhdGlvbiwgRXJyb3JOb3RpZmljYXRpb24gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuL09ic2VydmFibGUnO1xuaW1wb3J0IHsgRU1QVFkgfSBmcm9tICcuL29ic2VydmFibGUvZW1wdHknO1xuaW1wb3J0IHsgb2YgfSBmcm9tICcuL29ic2VydmFibGUvb2YnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gJy4vb2JzZXJ2YWJsZS90aHJvd0Vycm9yJztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL3V0aWwvaXNGdW5jdGlvbic7XG5cbi8vIFRPRE86IFdoZW4gdGhpcyBlbnVtIGlzIHJlbW92ZWQsIHJlcGxhY2UgaXQgd2l0aCBhIHR5cGUgYWxpYXMuIFNlZSAjNDU1Ni5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGEgc3RyaW5nIGxpdGVyYWwgaW5zdGVhZC4gYE5vdGlmaWNhdGlvbktpbmRgIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBhIHR5cGUgYWxpYXMgaW4gdjguXG4gKiBJdCB3aWxsIG5vdCBiZSByZXBsYWNlZCB3aXRoIGEgY29uc3QgZW51bSBhcyB0aG9zZSBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCBpc29sYXRlZCBtb2R1bGVzLlxuICovXG5leHBvcnQgZW51bSBOb3RpZmljYXRpb25LaW5kIHtcbiAgTkVYVCA9ICdOJyxcbiAgRVJST1IgPSAnRScsXG4gIENPTVBMRVRFID0gJ0MnLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBwdXNoLWJhc2VkIGV2ZW50IG9yIHZhbHVlIHRoYXQgYW4ge0BsaW5rIE9ic2VydmFibGV9IGNhbiBlbWl0LlxuICogVGhpcyBjbGFzcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBvcGVyYXRvcnMgdGhhdCBtYW5hZ2Ugbm90aWZpY2F0aW9ucyxcbiAqIGxpa2Uge0BsaW5rIG1hdGVyaWFsaXplfSwge0BsaW5rIGRlbWF0ZXJpYWxpemV9LCB7QGxpbmsgb2JzZXJ2ZU9ufSwgYW5kXG4gKiBvdGhlcnMuIEJlc2lkZXMgd3JhcHBpbmcgdGhlIGFjdHVhbCBkZWxpdmVyZWQgdmFsdWUsIGl0IGFsc28gYW5ub3RhdGVzIGl0XG4gKiB3aXRoIG1ldGFkYXRhIG9mLCBmb3IgaW5zdGFuY2UsIHdoYXQgdHlwZSBvZiBwdXNoIG1lc3NhZ2UgaXQgaXMgKGBuZXh0YCxcbiAqIGBlcnJvcmAsIG9yIGBjb21wbGV0ZWApLlxuICpcbiAqIEBzZWUge0BsaW5rIG1hdGVyaWFsaXplfVxuICogQHNlZSB7QGxpbmsgZGVtYXRlcmlhbGl6ZX1cbiAqIEBzZWUge0BsaW5rIG9ic2VydmVPbn1cbiAqIEBkZXByZWNhdGVkIEl0IGlzIE5PVCByZWNvbW1lbmRlZCB0byBjcmVhdGUgaW5zdGFuY2VzIG9mIGBOb3RpZmljYXRpb25gIGRpcmVjdGx5LlxuICogUmF0aGVyLCB0cnkgdG8gY3JlYXRlIFBPSk9zIG1hdGNoaW5nIHRoZSBzaWduYXR1cmUgb3V0bGluZWQgaW4ge0BsaW5rIE9ic2VydmFibGVOb3RpZmljYXRpb259LlxuICogRm9yIGV4YW1wbGU6IGB7IGtpbmQ6ICdOJywgdmFsdWU6IDEgfWAsIGB7IGtpbmQ6ICdFJywgZXJyb3I6IG5ldyBFcnJvcignYmFkJykgfWAsIG9yIGB7IGtpbmQ6ICdDJyB9YC5cbiAqIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbjxUPiB7XG4gIC8qKlxuICAgKiBBIHZhbHVlIHNpZ25pZnlpbmcgdGhhdCB0aGUgbm90aWZpY2F0aW9uIHdpbGwgXCJuZXh0XCIgaWYgb2JzZXJ2ZWQuIEluIHRydXRoLFxuICAgKiBUaGlzIGlzIHJlYWxseSBzeW5vbnltb3VzIHdpdGgganVzdCBjaGVja2luZyBga2luZCA9PT0gXCJOXCJgLlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gdjguIEluc3RlYWQsIGp1c3QgY2hlY2sgdG8gc2VlIGlmIHRoZSB2YWx1ZSBvZiBga2luZGAgaXMgYFwiTlwiYC5cbiAgICovXG4gIHJlYWRvbmx5IGhhc1ZhbHVlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgXCJOZXh0XCIgbm90aWZpY2F0aW9uIG9iamVjdC5cbiAgICogQHBhcmFtIGtpbmQgQWx3YXlzIGAnTidgXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gbm90aWZ5IHdpdGggaWYgb2JzZXJ2ZWQuXG4gICAqIEBkZXByZWNhdGVkIEludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4gVXNlIHtAbGluayBOb3RpZmljYXRpb24jY3JlYXRlTmV4dCBjcmVhdGVOZXh0fSBpbnN0ZWFkLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioa2luZDogJ04nLCB2YWx1ZT86IFQpO1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBcIkVycm9yXCIgbm90aWZpY2F0aW9uIG9iamVjdC5cbiAgICogQHBhcmFtIGtpbmQgQWx3YXlzIGAnRSdgXG4gICAqIEBwYXJhbSB2YWx1ZSBBbHdheXMgYHVuZGVmaW5lZGBcbiAgICogQHBhcmFtIGVycm9yIFRoZSBlcnJvciB0byBub3RpZnkgd2l0aCBpZiBvYnNlcnZlZC5cbiAgICogQGRlcHJlY2F0ZWQgSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLiBVc2Uge0BsaW5rIE5vdGlmaWNhdGlvbiNjcmVhdGVFcnJvciBjcmVhdGVFcnJvcn0gaW5zdGVhZC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGtpbmQ6ICdFJywgdmFsdWU6IHVuZGVmaW5lZCwgZXJyb3I6IGFueSk7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgXCJjb21wbGV0aW9uXCIgbm90aWZpY2F0aW9uIG9iamVjdC5cbiAgICogQHBhcmFtIGtpbmQgQWx3YXlzIGAnQydgXG4gICAqIEBkZXByZWNhdGVkIEludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4gVXNlIHtAbGluayBOb3RpZmljYXRpb24jY3JlYXRlQ29tcGxldGUgY3JlYXRlQ29tcGxldGV9IGluc3RlYWQuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihraW5kOiAnQycpO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkga2luZDogJ04nIHwgJ0UnIHwgJ0MnLCBwdWJsaWMgcmVhZG9ubHkgdmFsdWU/OiBULCBwdWJsaWMgcmVhZG9ubHkgZXJyb3I/OiBhbnkpIHtcbiAgICB0aGlzLmhhc1ZhbHVlID0ga2luZCA9PT0gJ04nO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBhcHByb3ByaWF0ZSBoYW5kbGVyIG9uIGEgcGFzc2VkIGBvYnNlcnZlcmAgZ2l2ZW4gdGhlIGBraW5kYCBvZiBub3RpZmljYXRpb24uXG4gICAqIElmIHRoZSBoYW5kbGVyIGlzIG1pc3NpbmcgaXQgd2lsbCBkbyBub3RoaW5nLiBFdmVuIGlmIHRoZSBub3RpZmljYXRpb24gaXMgYW4gZXJyb3IsIGlmXG4gICAqIHRoZXJlIGlzIG5vIGVycm9yIGhhbmRsZXIgb24gdGhlIG9ic2VydmVyLCBhbiBlcnJvciB3aWxsIG5vdCBiZSB0aHJvd24sIGl0IHdpbGwgbm9vcC5cbiAgICogQHBhcmFtIG9ic2VydmVyIFRoZSBvYnNlcnZlciB0byBub3RpZnkuXG4gICAqL1xuICBvYnNlcnZlKG9ic2VydmVyOiBQYXJ0aWFsT2JzZXJ2ZXI8VD4pOiB2b2lkIHtcbiAgICByZXR1cm4gb2JzZXJ2ZU5vdGlmaWNhdGlvbih0aGlzIGFzIE9ic2VydmFibGVOb3RpZmljYXRpb248VD4sIG9ic2VydmVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIG5vdGlmaWNhdGlvbiBvbiB0aGUgYXBwcm9wcmlhdGUgaGFuZGxlciBmcm9tIGEgbGlzdCBwcm92aWRlZC5cbiAgICogSWYgYSBoYW5kbGVyIGlzIG1pc3NpbmcgZm9yIHRoZSBraW5kIG9mIG5vdGlmaWNhdGlvbiwgbm90aGluZyBpcyBjYWxsZWRcbiAgICogYW5kIG5vIGVycm9yIGlzIHRocm93biwgaXQgd2lsbCBiZSBhIG5vb3AuXG4gICAqIEBwYXJhbSBuZXh0IEEgbmV4dCBoYW5kbGVyXG4gICAqIEBwYXJhbSBlcnJvciBBbiBlcnJvciBoYW5kbGVyXG4gICAqIEBwYXJhbSBjb21wbGV0ZSBBIGNvbXBsZXRlIGhhbmRsZXJcbiAgICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgd2l0aCB7QGxpbmsgTm90aWZpY2F0aW9uI29ic2VydmUgb2JzZXJ2ZX0uIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAgICovXG4gIGRvKG5leHQ6ICh2YWx1ZTogVCkgPT4gdm9pZCwgZXJyb3I6IChlcnI6IGFueSkgPT4gdm9pZCwgY29tcGxldGU6ICgpID0+IHZvaWQpOiB2b2lkO1xuICAvKipcbiAgICogRXhlY3V0ZXMgYSBub3RpZmljYXRpb24gb24gdGhlIGFwcHJvcHJpYXRlIGhhbmRsZXIgZnJvbSBhIGxpc3QgcHJvdmlkZWQuXG4gICAqIElmIGEgaGFuZGxlciBpcyBtaXNzaW5nIGZvciB0aGUga2luZCBvZiBub3RpZmljYXRpb24sIG5vdGhpbmcgaXMgY2FsbGVkXG4gICAqIGFuZCBubyBlcnJvciBpcyB0aHJvd24sIGl0IHdpbGwgYmUgYSBub29wLlxuICAgKiBAcGFyYW0gbmV4dCBBIG5leHQgaGFuZGxlclxuICAgKiBAcGFyYW0gZXJyb3IgQW4gZXJyb3IgaGFuZGxlclxuICAgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCB3aXRoIHtAbGluayBOb3RpZmljYXRpb24jb2JzZXJ2ZSBvYnNlcnZlfS4gV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICAgKi9cbiAgZG8obmV4dDogKHZhbHVlOiBUKSA9PiB2b2lkLCBlcnJvcjogKGVycjogYW55KSA9PiB2b2lkKTogdm9pZDtcbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBuZXh0IGhhbmRsZXIgaWYgdGhlIE5vdGlmaWNhdGlvbiBpcyBvZiBga2luZGAgYFwiTlwiYC4gT3RoZXJ3aXNlXG4gICAqIHRoaXMgd2lsbCBub3QgZXJyb3IsIGFuZCBpdCB3aWxsIGJlIGEgbm9vcC5cbiAgICogQHBhcmFtIG5leHQgVGhlIG5leHQgaGFuZGxlclxuICAgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCB3aXRoIHtAbGluayBOb3RpZmljYXRpb24jb2JzZXJ2ZSBvYnNlcnZlfS4gV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICAgKi9cbiAgZG8obmV4dDogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZDtcbiAgZG8obmV4dEhhbmRsZXI6ICh2YWx1ZTogVCkgPT4gdm9pZCwgZXJyb3JIYW5kbGVyPzogKGVycjogYW55KSA9PiB2b2lkLCBjb21wbGV0ZUhhbmRsZXI/OiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgY29uc3QgeyBraW5kLCB2YWx1ZSwgZXJyb3IgfSA9IHRoaXM7XG4gICAgcmV0dXJuIGtpbmQgPT09ICdOJyA/IG5leHRIYW5kbGVyPy4odmFsdWUhKSA6IGtpbmQgPT09ICdFJyA/IGVycm9ySGFuZGxlcj8uKGVycm9yKSA6IGNvbXBsZXRlSGFuZGxlcj8uKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgYSBub3RpZmljYXRpb24gb24gdGhlIGFwcHJvcHJpYXRlIGhhbmRsZXIgZnJvbSBhIGxpc3QgcHJvdmlkZWQuXG4gICAqIElmIGEgaGFuZGxlciBpcyBtaXNzaW5nIGZvciB0aGUga2luZCBvZiBub3RpZmljYXRpb24sIG5vdGhpbmcgaXMgY2FsbGVkXG4gICAqIGFuZCBubyBlcnJvciBpcyB0aHJvd24sIGl0IHdpbGwgYmUgYSBub29wLlxuICAgKiBAcGFyYW0gbmV4dCBBIG5leHQgaGFuZGxlclxuICAgKiBAcGFyYW0gZXJyb3IgQW4gZXJyb3IgaGFuZGxlclxuICAgKiBAcGFyYW0gY29tcGxldGUgQSBjb21wbGV0ZSBoYW5kbGVyXG4gICAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIHdpdGgge0BsaW5rIE5vdGlmaWNhdGlvbiNvYnNlcnZlIG9ic2VydmV9LiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguXG4gICAqL1xuICBhY2NlcHQobmV4dDogKHZhbHVlOiBUKSA9PiB2b2lkLCBlcnJvcjogKGVycjogYW55KSA9PiB2b2lkLCBjb21wbGV0ZTogKCkgPT4gdm9pZCk6IHZvaWQ7XG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIG5vdGlmaWNhdGlvbiBvbiB0aGUgYXBwcm9wcmlhdGUgaGFuZGxlciBmcm9tIGEgbGlzdCBwcm92aWRlZC5cbiAgICogSWYgYSBoYW5kbGVyIGlzIG1pc3NpbmcgZm9yIHRoZSBraW5kIG9mIG5vdGlmaWNhdGlvbiwgbm90aGluZyBpcyBjYWxsZWRcbiAgICogYW5kIG5vIGVycm9yIGlzIHRocm93biwgaXQgd2lsbCBiZSBhIG5vb3AuXG4gICAqIEBwYXJhbSBuZXh0IEEgbmV4dCBoYW5kbGVyXG4gICAqIEBwYXJhbSBlcnJvciBBbiBlcnJvciBoYW5kbGVyXG4gICAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIHdpdGgge0BsaW5rIE5vdGlmaWNhdGlvbiNvYnNlcnZlIG9ic2VydmV9LiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguXG4gICAqL1xuICBhY2NlcHQobmV4dDogKHZhbHVlOiBUKSA9PiB2b2lkLCBlcnJvcjogKGVycjogYW55KSA9PiB2b2lkKTogdm9pZDtcbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBuZXh0IGhhbmRsZXIgaWYgdGhlIE5vdGlmaWNhdGlvbiBpcyBvZiBga2luZGAgYFwiTlwiYC4gT3RoZXJ3aXNlXG4gICAqIHRoaXMgd2lsbCBub3QgZXJyb3IsIGFuZCBpdCB3aWxsIGJlIGEgbm9vcC5cbiAgICogQHBhcmFtIG5leHQgVGhlIG5leHQgaGFuZGxlclxuICAgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCB3aXRoIHtAbGluayBOb3RpZmljYXRpb24jb2JzZXJ2ZSBvYnNlcnZlfS4gV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICAgKi9cbiAgYWNjZXB0KG5leHQ6ICh2YWx1ZTogVCkgPT4gdm9pZCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBhcHByb3ByaWF0ZSBoYW5kbGVyIG9uIGEgcGFzc2VkIGBvYnNlcnZlcmAgZ2l2ZW4gdGhlIGBraW5kYCBvZiBub3RpZmljYXRpb24uXG4gICAqIElmIHRoZSBoYW5kbGVyIGlzIG1pc3NpbmcgaXQgd2lsbCBkbyBub3RoaW5nLiBFdmVuIGlmIHRoZSBub3RpZmljYXRpb24gaXMgYW4gZXJyb3IsIGlmXG4gICAqIHRoZXJlIGlzIG5vIGVycm9yIGhhbmRsZXIgb24gdGhlIG9ic2VydmVyLCBhbiBlcnJvciB3aWxsIG5vdCBiZSB0aHJvd24sIGl0IHdpbGwgbm9vcC5cbiAgICogQHBhcmFtIG9ic2VydmVyIFRoZSBvYnNlcnZlciB0byBub3RpZnkuXG4gICAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIHdpdGgge0BsaW5rIE5vdGlmaWNhdGlvbiNvYnNlcnZlIG9ic2VydmV9LiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguXG4gICAqL1xuICBhY2NlcHQob2JzZXJ2ZXI6IFBhcnRpYWxPYnNlcnZlcjxUPik6IHZvaWQ7XG4gIGFjY2VwdChuZXh0T3JPYnNlcnZlcjogUGFydGlhbE9ic2VydmVyPFQ+IHwgKCh2YWx1ZTogVCkgPT4gdm9pZCksIGVycm9yPzogKGVycjogYW55KSA9PiB2b2lkLCBjb21wbGV0ZT86ICgpID0+IHZvaWQpIHtcbiAgICByZXR1cm4gaXNGdW5jdGlvbigobmV4dE9yT2JzZXJ2ZXIgYXMgYW55KT8ubmV4dClcbiAgICAgID8gdGhpcy5vYnNlcnZlKG5leHRPck9ic2VydmVyIGFzIFBhcnRpYWxPYnNlcnZlcjxUPilcbiAgICAgIDogdGhpcy5kbyhuZXh0T3JPYnNlcnZlciBhcyAodmFsdWU6IFQpID0+IHZvaWQsIGVycm9yIGFzIGFueSwgY29tcGxldGUgYXMgYW55KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc2ltcGxlIE9ic2VydmFibGUgdGhhdCBqdXN0IGRlbGl2ZXJzIHRoZSBub3RpZmljYXRpb24gcmVwcmVzZW50ZWRcbiAgICogYnkgdGhpcyBOb3RpZmljYXRpb24gaW5zdGFuY2UuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVG8gY29udmVydCBhIGBOb3RpZmljYXRpb25gIHRvIGFuIHtAbGluayBPYnNlcnZhYmxlfSxcbiAgICogdXNlIHtAbGluayBvZn0gYW5kIHtAbGluayBkZW1hdGVyaWFsaXplfTogYG9mKG5vdGlmaWNhdGlvbikucGlwZShkZW1hdGVyaWFsaXplKCkpYC5cbiAgICovXG4gIHRvT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCB7IGtpbmQsIHZhbHVlLCBlcnJvciB9ID0gdGhpcztcbiAgICAvLyBTZWxlY3QgdGhlIG9ic2VydmFibGUgdG8gcmV0dXJuIGJ5IGBraW5kYFxuICAgIGNvbnN0IHJlc3VsdCA9XG4gICAgICBraW5kID09PSAnTidcbiAgICAgICAgPyAvLyBOZXh0IGtpbmQuIFJldHVybiBhbiBvYnNlcnZhYmxlIG9mIHRoYXQgdmFsdWUuXG4gICAgICAgICAgb2YodmFsdWUhKVxuICAgICAgICA6IC8vXG4gICAgICAgIGtpbmQgPT09ICdFJ1xuICAgICAgICA/IC8vIEVycm9yIGtpbmQuIFJldHVybiBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGVycm9yLlxuICAgICAgICAgIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpXG4gICAgICAgIDogLy9cbiAgICAgICAga2luZCA9PT0gJ0MnXG4gICAgICAgID8gLy8gQ29tcGxldGlvbiBraW5kLiBLaW5kIGlzIFwiQ1wiLCByZXR1cm4gYW4gb2JzZXJ2YWJsZSB0aGF0IGp1c3QgY29tcGxldGVzLlxuICAgICAgICAgIEVNUFRZXG4gICAgICAgIDogLy8gVW5rbm93biBraW5kLCByZXR1cm4gZmFsc3ksIHNvIHdlIGVycm9yIGJlbG93LlxuICAgICAgICAgIDA7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIC8vIFRPRE86IGNvbnNpZGVyIHJlbW92aW5nIHRoaXMgY2hlY2suIFRoZSBvbmx5IHdheSB0byBjYXVzZSB0aGlzIHdvdWxkIGJlIHRvXG4gICAgICAvLyB1c2UgdGhlIE5vdGlmaWNhdGlvbiBjb25zdHJ1Y3RvciBkaXJlY3RseSBpbiBhIHdheSB0aGF0IGlzIG5vdCB0eXBlLXNhZmUuXG4gICAgICAvLyBhbmQgZGlyZWN0IHVzZSBvZiB0aGUgTm90aWZpY2F0aW9uIGNvbnN0cnVjdG9yIGlzIGRlcHJlY2F0ZWQuXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBVbmV4cGVjdGVkIG5vdGlmaWNhdGlvbiBraW5kICR7a2luZH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNvbXBsZXRlTm90aWZpY2F0aW9uID0gbmV3IE5vdGlmaWNhdGlvbignQycpIGFzIE5vdGlmaWNhdGlvbjxuZXZlcj4gJiBDb21wbGV0ZU5vdGlmaWNhdGlvbjtcbiAgLyoqXG4gICAqIEEgc2hvcnRjdXQgdG8gY3JlYXRlIGEgTm90aWZpY2F0aW9uIGluc3RhbmNlIG9mIHRoZSB0eXBlIGBuZXh0YCBmcm9tIGFcbiAgICogZ2l2ZW4gdmFsdWUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgYG5leHRgIHZhbHVlLlxuICAgKiBAcmV0dXJuIFRoZSBcIm5leHRcIiBOb3RpZmljYXRpb24gcmVwcmVzZW50aW5nIHRoZSBhcmd1bWVudC5cbiAgICogQGRlcHJlY2F0ZWQgSXQgaXMgTk9UIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBpbnN0YW5jZXMgb2YgYE5vdGlmaWNhdGlvbmAgZGlyZWN0bHkuXG4gICAqIFJhdGhlciwgdHJ5IHRvIGNyZWF0ZSBQT0pPcyBtYXRjaGluZyB0aGUgc2lnbmF0dXJlIG91dGxpbmVkIGluIHtAbGluayBPYnNlcnZhYmxlTm90aWZpY2F0aW9ufS5cbiAgICogRm9yIGV4YW1wbGU6IGB7IGtpbmQ6ICdOJywgdmFsdWU6IDEgfWAsIGB7IGtpbmQ6ICdFJywgZXJyb3I6IG5ldyBFcnJvcignYmFkJykgfWAsIG9yIGB7IGtpbmQ6ICdDJyB9YC5cbiAgICogV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZU5leHQ8VD4odmFsdWU6IFQpIHtcbiAgICByZXR1cm4gbmV3IE5vdGlmaWNhdGlvbignTicsIHZhbHVlKSBhcyBOb3RpZmljYXRpb248VD4gJiBOZXh0Tm90aWZpY2F0aW9uPFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc2hvcnRjdXQgdG8gY3JlYXRlIGEgTm90aWZpY2F0aW9uIGluc3RhbmNlIG9mIHRoZSB0eXBlIGBlcnJvcmAgZnJvbSBhXG4gICAqIGdpdmVuIGVycm9yLlxuICAgKiBAcGFyYW0gZXJyIFRoZSBgZXJyb3JgIGVycm9yLlxuICAgKiBAcmV0dXJuIFRoZSBcImVycm9yXCIgTm90aWZpY2F0aW9uIHJlcHJlc2VudGluZyB0aGUgYXJndW1lbnQuXG4gICAqIEBkZXByZWNhdGVkIEl0IGlzIE5PVCByZWNvbW1lbmRlZCB0byBjcmVhdGUgaW5zdGFuY2VzIG9mIGBOb3RpZmljYXRpb25gIGRpcmVjdGx5LlxuICAgKiBSYXRoZXIsIHRyeSB0byBjcmVhdGUgUE9KT3MgbWF0Y2hpbmcgdGhlIHNpZ25hdHVyZSBvdXRsaW5lZCBpbiB7QGxpbmsgT2JzZXJ2YWJsZU5vdGlmaWNhdGlvbn0uXG4gICAqIEZvciBleGFtcGxlOiBgeyBraW5kOiAnTicsIHZhbHVlOiAxIH1gLCBgeyBraW5kOiAnRScsIGVycm9yOiBuZXcgRXJyb3IoJ2JhZCcpIH1gLCBvciBgeyBraW5kOiAnQycgfWAuXG4gICAqIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVFcnJvcihlcnI/OiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IE5vdGlmaWNhdGlvbignRScsIHVuZGVmaW5lZCwgZXJyKSBhcyBOb3RpZmljYXRpb248bmV2ZXI+ICYgRXJyb3JOb3RpZmljYXRpb247XG4gIH1cblxuICAvKipcbiAgICogQSBzaG9ydGN1dCB0byBjcmVhdGUgYSBOb3RpZmljYXRpb24gaW5zdGFuY2Ugb2YgdGhlIHR5cGUgYGNvbXBsZXRlYC5cbiAgICogQHJldHVybiBUaGUgdmFsdWVsZXNzIFwiY29tcGxldGVcIiBOb3RpZmljYXRpb24uXG4gICAqIEBkZXByZWNhdGVkIEl0IGlzIE5PVCByZWNvbW1lbmRlZCB0byBjcmVhdGUgaW5zdGFuY2VzIG9mIGBOb3RpZmljYXRpb25gIGRpcmVjdGx5LlxuICAgKiBSYXRoZXIsIHRyeSB0byBjcmVhdGUgUE9KT3MgbWF0Y2hpbmcgdGhlIHNpZ25hdHVyZSBvdXRsaW5lZCBpbiB7QGxpbmsgT2JzZXJ2YWJsZU5vdGlmaWNhdGlvbn0uXG4gICAqIEZvciBleGFtcGxlOiBgeyBraW5kOiAnTicsIHZhbHVlOiAxIH1gLCBgeyBraW5kOiAnRScsIGVycm9yOiBuZXcgRXJyb3IoJ2JhZCcpIH1gLCBvciBgeyBraW5kOiAnQycgfWAuXG4gICAqIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVDb21wbGV0ZSgpOiBOb3RpZmljYXRpb248bmV2ZXI+ICYgQ29tcGxldGVOb3RpZmljYXRpb24ge1xuICAgIHJldHVybiBOb3RpZmljYXRpb24uY29tcGxldGVOb3RpZmljYXRpb247XG4gIH1cbn1cblxuLyoqXG4gKiBFeGVjdXRlcyB0aGUgYXBwcm9wcmlhdGUgaGFuZGxlciBvbiBhIHBhc3NlZCBgb2JzZXJ2ZXJgIGdpdmVuIHRoZSBga2luZGAgb2Ygbm90aWZpY2F0aW9uLlxuICogSWYgdGhlIGhhbmRsZXIgaXMgbWlzc2luZyBpdCB3aWxsIGRvIG5vdGhpbmcuIEV2ZW4gaWYgdGhlIG5vdGlmaWNhdGlvbiBpcyBhbiBlcnJvciwgaWZcbiAqIHRoZXJlIGlzIG5vIGVycm9yIGhhbmRsZXIgb24gdGhlIG9ic2VydmVyLCBhbiBlcnJvciB3aWxsIG5vdCBiZSB0aHJvd24sIGl0IHdpbGwgbm9vcC5cbiAqIEBwYXJhbSBub3RpZmljYXRpb24gVGhlIG5vdGlmaWNhdGlvbiBvYmplY3QgdG8gb2JzZXJ2ZS5cbiAqIEBwYXJhbSBvYnNlcnZlciBUaGUgb2JzZXJ2ZXIgdG8gbm90aWZ5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gb2JzZXJ2ZU5vdGlmaWNhdGlvbjxUPihub3RpZmljYXRpb246IE9ic2VydmFibGVOb3RpZmljYXRpb248VD4sIG9ic2VydmVyOiBQYXJ0aWFsT2JzZXJ2ZXI8VD4pIHtcbiAgY29uc3QgeyBraW5kLCB2YWx1ZSwgZXJyb3IgfSA9IG5vdGlmaWNhdGlvbiBhcyBhbnk7XG4gIGlmICh0eXBlb2Yga2luZCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIG5vdGlmaWNhdGlvbiwgbWlzc2luZyBcImtpbmRcIicpO1xuICB9XG4gIGtpbmQgPT09ICdOJyA/IG9ic2VydmVyLm5leHQ/Lih2YWx1ZSEpIDoga2luZCA9PT0gJ0UnID8gb2JzZXJ2ZXIuZXJyb3I/LihlcnJvcikgOiBvYnNlcnZlci5jb21wbGV0ZT8uKCk7XG59XG4iLCAiLyoqIHByZXR0aWVyICovXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi9pc0Z1bmN0aW9uJztcblxuLyoqXG4gKiBUZXN0cyB0byBzZWUgaWYgdGhlIG9iamVjdCBpcyBhbiBSeEpTIHtAbGluayBPYnNlcnZhYmxlfVxuICogQHBhcmFtIG9iaiB0aGUgb2JqZWN0IHRvIHRlc3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JzZXJ2YWJsZShvYmo6IGFueSk6IG9iaiBpcyBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgLy8gVGhlICEhIGlzIHRvIGVuc3VyZSB0aGF0IHRoaXMgcHVibGljbHkgZXhwb3NlZCBmdW5jdGlvbiByZXR1cm5zXG4gIC8vIGBmYWxzZWAgaWYgc29tZXRoaW5nIGxpa2UgYG51bGxgIG9yIGAwYCBpcyBwYXNzZWQuXG4gIHJldHVybiAhIW9iaiAmJiAob2JqIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSB8fCAoaXNGdW5jdGlvbihvYmoubGlmdCkgJiYgaXNGdW5jdGlvbihvYmouc3Vic2NyaWJlKSkpO1xufVxuIiwgImltcG9ydCB7IGNyZWF0ZUVycm9yQ2xhc3MgfSBmcm9tICcuL2NyZWF0ZUVycm9yQ2xhc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVtcHR5RXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEVtcHR5RXJyb3JDdG9yIHtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIEludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4gRG8gbm90IGNvbnN0cnVjdCBlcnJvciBpbnN0YW5jZXMuXG4gICAqIENhbm5vdCBiZSB0YWdnZWQgYXMgaW50ZXJuYWw6IGh0dHBzOi8vZ2l0aHViLmNvbS9SZWFjdGl2ZVgvcnhqcy9pc3N1ZXMvNjI2OVxuICAgKi9cbiAgbmV3ICgpOiBFbXB0eUVycm9yO1xufVxuXG4vKipcbiAqIEFuIGVycm9yIHRocm93biB3aGVuIGFuIE9ic2VydmFibGUgb3IgYSBzZXF1ZW5jZSB3YXMgcXVlcmllZCBidXQgaGFzIG5vXG4gKiBlbGVtZW50cy5cbiAqXG4gKiBAc2VlIHtAbGluayBmaXJzdH1cbiAqIEBzZWUge0BsaW5rIGxhc3R9XG4gKiBAc2VlIHtAbGluayBzaW5nbGV9XG4gKiBAc2VlIHtAbGluayBmaXJzdFZhbHVlRnJvbX1cbiAqIEBzZWUge0BsaW5rIGxhc3RWYWx1ZUZyb219XG4gKi9cbmV4cG9ydCBjb25zdCBFbXB0eUVycm9yOiBFbXB0eUVycm9yQ3RvciA9IGNyZWF0ZUVycm9yQ2xhc3MoXG4gIChfc3VwZXIpID0+XG4gICAgZnVuY3Rpb24gRW1wdHlFcnJvckltcGwodGhpczogYW55KSB7XG4gICAgICBfc3VwZXIodGhpcyk7XG4gICAgICB0aGlzLm5hbWUgPSAnRW1wdHlFcnJvcic7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSAnbm8gZWxlbWVudHMgaW4gc2VxdWVuY2UnO1xuICAgIH1cbik7XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBFbXB0eUVycm9yIH0gZnJvbSAnLi91dGlsL0VtcHR5RXJyb3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIExhc3RWYWx1ZUZyb21Db25maWc8VD4ge1xuICBkZWZhdWx0VmFsdWU6IFQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYXN0VmFsdWVGcm9tPFQsIEQ+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPiwgY29uZmlnOiBMYXN0VmFsdWVGcm9tQ29uZmlnPEQ+KTogUHJvbWlzZTxUIHwgRD47XG5leHBvcnQgZnVuY3Rpb24gbGFzdFZhbHVlRnJvbTxUPihzb3VyY2U6IE9ic2VydmFibGU8VD4pOiBQcm9taXNlPFQ+O1xuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9ic2VydmFibGUgdG8gYSBwcm9taXNlIGJ5IHN1YnNjcmliaW5nIHRvIHRoZSBvYnNlcnZhYmxlLFxuICogd2FpdGluZyBmb3IgaXQgdG8gY29tcGxldGUsIGFuZCByZXNvbHZpbmcgdGhlIHJldHVybmVkIHByb21pc2Ugd2l0aCB0aGVcbiAqIGxhc3QgdmFsdWUgZnJvbSB0aGUgb2JzZXJ2ZWQgc3RyZWFtLlxuICpcbiAqIElmIHRoZSBvYnNlcnZhYmxlIHN0cmVhbSBjb21wbGV0ZXMgYmVmb3JlIGFueSB2YWx1ZXMgd2VyZSBlbWl0dGVkLCB0aGVcbiAqIHJldHVybmVkIHByb21pc2Ugd2lsbCByZWplY3Qgd2l0aCB7QGxpbmsgRW1wdHlFcnJvcn0gb3Igd2lsbCByZXNvbHZlXG4gKiB3aXRoIHRoZSBkZWZhdWx0IHZhbHVlIGlmIGEgZGVmYXVsdCB3YXMgc3BlY2lmaWVkLlxuICpcbiAqIElmIHRoZSBvYnNlcnZhYmxlIHN0cmVhbSBlbWl0cyBhbiBlcnJvciwgdGhlIHJldHVybmVkIHByb21pc2Ugd2lsbCByZWplY3RcbiAqIHdpdGggdGhhdCBlcnJvci5cbiAqXG4gKiAqKldBUk5JTkcqKjogT25seSB1c2UgdGhpcyB3aXRoIG9ic2VydmFibGVzIHlvdSAqa25vdyogd2lsbCBjb21wbGV0ZS4gSWYgdGhlIHNvdXJjZVxuICogb2JzZXJ2YWJsZSBkb2VzIG5vdCBjb21wbGV0ZSwgeW91IHdpbGwgZW5kIHVwIHdpdGggYSBwcm9taXNlIHRoYXQgaXMgaHVuZyB1cCwgYW5kXG4gKiBwb3RlbnRpYWxseSBhbGwgb2YgdGhlIHN0YXRlIG9mIGFuIGFzeW5jIGZ1bmN0aW9uIGhhbmdpbmcgb3V0IGluIG1lbW9yeS4gVG8gYXZvaWRcbiAqIHRoaXMgc2l0dWF0aW9uLCBsb29rIGludG8gYWRkaW5nIHNvbWV0aGluZyBsaWtlIHtAbGluayB0aW1lb3V0fSwge0BsaW5rIHRha2V9LFxuICoge0BsaW5rIHRha2VXaGlsZX0sIG9yIHtAbGluayB0YWtlVW50aWx9IGFtb25nc3Qgb3RoZXJzLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBXYWl0IGZvciB0aGUgbGFzdCB2YWx1ZSBmcm9tIGEgc3RyZWFtIGFuZCBlbWl0IGl0IGZyb20gYSBwcm9taXNlIGluXG4gKiBhbiBhc3luYyBmdW5jdGlvblxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBpbnRlcnZhbCwgdGFrZSwgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUoKSB7XG4gKiAgIGNvbnN0IHNvdXJjZSQgPSBpbnRlcnZhbCgyMDAwKS5waXBlKHRha2UoMTApKTtcbiAqICAgY29uc3QgZmluYWxOdW1iZXIgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHNvdXJjZSQpO1xuICogICBjb25zb2xlLmxvZyhgVGhlIGZpbmFsIG51bWJlciBpcyAkeyBmaW5hbE51bWJlciB9YCk7XG4gKiB9XG4gKlxuICogZXhlY3V0ZSgpO1xuICpcbiAqIC8vIEV4cGVjdGVkIG91dHB1dDpcbiAqIC8vICdUaGUgZmluYWwgbnVtYmVyIGlzIDknXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBmaXJzdFZhbHVlRnJvbX1cbiAqXG4gKiBAcGFyYW0gc291cmNlIHRoZSBvYnNlcnZhYmxlIHRvIGNvbnZlcnQgdG8gYSBwcm9taXNlXG4gKiBAcGFyYW0gY29uZmlnIGEgY29uZmlndXJhdGlvbiBvYmplY3QgdG8gZGVmaW5lIHRoZSBgZGVmYXVsdFZhbHVlYCB0byB1c2UgaWYgdGhlIHNvdXJjZSBjb21wbGV0ZXMgd2l0aG91dCBlbWl0dGluZyBhIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYXN0VmFsdWVGcm9tPFQsIEQ+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPiwgY29uZmlnPzogTGFzdFZhbHVlRnJvbUNvbmZpZzxEPik6IFByb21pc2U8VCB8IEQ+IHtcbiAgY29uc3QgaGFzQ29uZmlnID0gdHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCc7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxUIHwgRD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGxldCBfaGFzVmFsdWUgPSBmYWxzZTtcbiAgICBsZXQgX3ZhbHVlOiBUO1xuICAgIHNvdXJjZS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHZhbHVlKSA9PiB7XG4gICAgICAgIF92YWx1ZSA9IHZhbHVlO1xuICAgICAgICBfaGFzVmFsdWUgPSB0cnVlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiByZWplY3QsXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICBpZiAoX2hhc1ZhbHVlKSB7XG4gICAgICAgICAgcmVzb2x2ZShfdmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKGhhc0NvbmZpZykge1xuICAgICAgICAgIHJlc29sdmUoY29uZmlnIS5kZWZhdWx0VmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChuZXcgRW1wdHlFcnJvcigpKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBFbXB0eUVycm9yIH0gZnJvbSAnLi91dGlsL0VtcHR5RXJyb3InO1xuaW1wb3J0IHsgU2FmZVN1YnNjcmliZXIgfSBmcm9tICcuL1N1YnNjcmliZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpcnN0VmFsdWVGcm9tQ29uZmlnPFQ+IHtcbiAgZGVmYXVsdFZhbHVlOiBUO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlyc3RWYWx1ZUZyb208VCwgRD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+LCBjb25maWc6IEZpcnN0VmFsdWVGcm9tQ29uZmlnPEQ+KTogUHJvbWlzZTxUIHwgRD47XG5leHBvcnQgZnVuY3Rpb24gZmlyc3RWYWx1ZUZyb208VD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KTogUHJvbWlzZTxUPjtcblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYnNlcnZhYmxlIHRvIGEgcHJvbWlzZSBieSBzdWJzY3JpYmluZyB0byB0aGUgb2JzZXJ2YWJsZSxcbiAqIGFuZCByZXR1cm5pbmcgYSBwcm9taXNlIHRoYXQgd2lsbCByZXNvbHZlIGFzIHNvb24gYXMgdGhlIGZpcnN0IHZhbHVlXG4gKiBhcnJpdmVzIGZyb20gdGhlIG9ic2VydmFibGUuIFRoZSBzdWJzY3JpcHRpb24gd2lsbCB0aGVuIGJlIGNsb3NlZC5cbiAqXG4gKiBJZiB0aGUgb2JzZXJ2YWJsZSBzdHJlYW0gY29tcGxldGVzIGJlZm9yZSBhbnkgdmFsdWVzIHdlcmUgZW1pdHRlZCwgdGhlXG4gKiByZXR1cm5lZCBwcm9taXNlIHdpbGwgcmVqZWN0IHdpdGgge0BsaW5rIEVtcHR5RXJyb3J9IG9yIHdpbGwgcmVzb2x2ZVxuICogd2l0aCB0aGUgZGVmYXVsdCB2YWx1ZSBpZiBhIGRlZmF1bHQgd2FzIHNwZWNpZmllZC5cbiAqXG4gKiBJZiB0aGUgb2JzZXJ2YWJsZSBzdHJlYW0gZW1pdHMgYW4gZXJyb3IsIHRoZSByZXR1cm5lZCBwcm9taXNlIHdpbGwgcmVqZWN0XG4gKiB3aXRoIHRoYXQgZXJyb3IuXG4gKlxuICogKipXQVJOSU5HKio6IE9ubHkgdXNlIHRoaXMgd2l0aCBvYnNlcnZhYmxlcyB5b3UgKmtub3cqIHdpbGwgZW1pdCBhdCBsZWFzdCBvbmUgdmFsdWUsXG4gKiAqT1IqIGNvbXBsZXRlLiBJZiB0aGUgc291cmNlIG9ic2VydmFibGUgZG9lcyBub3QgZW1pdCBvbmUgdmFsdWUgb3IgY29tcGxldGUsIHlvdSB3aWxsXG4gKiBlbmQgdXAgd2l0aCBhIHByb21pc2UgdGhhdCBpcyBodW5nIHVwLCBhbmQgcG90ZW50aWFsbHkgYWxsIG9mIHRoZSBzdGF0ZSBvZiBhblxuICogYXN5bmMgZnVuY3Rpb24gaGFuZ2luZyBvdXQgaW4gbWVtb3J5LiBUbyBhdm9pZCB0aGlzIHNpdHVhdGlvbiwgbG9vayBpbnRvIGFkZGluZ1xuICogc29tZXRoaW5nIGxpa2Uge0BsaW5rIHRpbWVvdXR9LCB7QGxpbmsgdGFrZX0sIHtAbGluayB0YWtlV2hpbGV9LCBvciB7QGxpbmsgdGFrZVVudGlsfVxuICogYW1vbmdzdCBvdGhlcnMuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIFdhaXQgZm9yIHRoZSBmaXJzdCB2YWx1ZSBmcm9tIGEgc3RyZWFtIGFuZCBlbWl0IGl0IGZyb20gYSBwcm9taXNlIGluXG4gKiBhbiBhc3luYyBmdW5jdGlvblxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBpbnRlcnZhbCwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbiAqXG4gKiBhc3luYyBmdW5jdGlvbiBleGVjdXRlKCkge1xuICogICBjb25zdCBzb3VyY2UkID0gaW50ZXJ2YWwoMjAwMCk7XG4gKiAgIGNvbnN0IGZpcnN0TnVtYmVyID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oc291cmNlJCk7XG4gKiAgIGNvbnNvbGUubG9nKGBUaGUgZmlyc3QgbnVtYmVyIGlzICR7IGZpcnN0TnVtYmVyIH1gKTtcbiAqIH1cbiAqXG4gKiBleGVjdXRlKCk7XG4gKlxuICogLy8gRXhwZWN0ZWQgb3V0cHV0OlxuICogLy8gJ1RoZSBmaXJzdCBudW1iZXIgaXMgMCdcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGxhc3RWYWx1ZUZyb219XG4gKlxuICogQHBhcmFtIHNvdXJjZSB0aGUgb2JzZXJ2YWJsZSB0byBjb252ZXJ0IHRvIGEgcHJvbWlzZVxuICogQHBhcmFtIGNvbmZpZyBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIGRlZmluZSB0aGUgYGRlZmF1bHRWYWx1ZWAgdG8gdXNlIGlmIHRoZSBzb3VyY2UgY29tcGxldGVzIHdpdGhvdXQgZW1pdHRpbmcgYSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlyc3RWYWx1ZUZyb208VCwgRD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+LCBjb25maWc/OiBGaXJzdFZhbHVlRnJvbUNvbmZpZzxEPik6IFByb21pc2U8VCB8IEQ+IHtcbiAgY29uc3QgaGFzQ29uZmlnID0gdHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCc7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxUIHwgRD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHN1YnNjcmliZXIgPSBuZXcgU2FmZVN1YnNjcmliZXI8VD4oe1xuICAgICAgbmV4dDogKHZhbHVlKSA9PiB7XG4gICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IHJlamVjdCxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIGlmIChoYXNDb25maWcpIHtcbiAgICAgICAgICByZXNvbHZlKGNvbmZpZyEuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QobmV3IEVtcHR5RXJyb3IoKSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gICAgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgY3JlYXRlRXJyb3JDbGFzcyB9IGZyb20gJy4vY3JlYXRlRXJyb3JDbGFzcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yQ3RvciB7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuIERvIG5vdCBjb25zdHJ1Y3QgZXJyb3IgaW5zdGFuY2VzLlxuICAgKiBDYW5ub3QgYmUgdGFnZ2VkIGFzIGludGVybmFsOiBodHRwczovL2dpdGh1Yi5jb20vUmVhY3RpdmVYL3J4anMvaXNzdWVzLzYyNjlcbiAgICovXG4gIG5ldyAoKTogQXJndW1lbnRPdXRPZlJhbmdlRXJyb3I7XG59XG5cbi8qKlxuICogQW4gZXJyb3IgdGhyb3duIHdoZW4gYW4gZWxlbWVudCB3YXMgcXVlcmllZCBhdCBhIGNlcnRhaW4gaW5kZXggb2YgYW5cbiAqIE9ic2VydmFibGUsIGJ1dCBubyBzdWNoIGluZGV4IG9yIHBvc2l0aW9uIGV4aXN0cyBpbiB0aGF0IHNlcXVlbmNlLlxuICpcbiAqIEBzZWUge0BsaW5rIGVsZW1lbnRBdH1cbiAqIEBzZWUge0BsaW5rIHRha2V9XG4gKiBAc2VlIHtAbGluayB0YWtlTGFzdH1cbiAqL1xuZXhwb3J0IGNvbnN0IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yOiBBcmd1bWVudE91dE9mUmFuZ2VFcnJvckN0b3IgPSBjcmVhdGVFcnJvckNsYXNzKFxuICAoX3N1cGVyKSA9PlxuICAgIGZ1bmN0aW9uIEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9ySW1wbCh0aGlzOiBhbnkpIHtcbiAgICAgIF9zdXBlcih0aGlzKTtcbiAgICAgIHRoaXMubmFtZSA9ICdBcmd1bWVudE91dE9mUmFuZ2VFcnJvcic7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSAnYXJndW1lbnQgb3V0IG9mIHJhbmdlJztcbiAgICB9XG4pO1xuIiwgImltcG9ydCB7IGNyZWF0ZUVycm9yQ2xhc3MgfSBmcm9tICcuL2NyZWF0ZUVycm9yQ2xhc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdEZvdW5kRXJyb3JDdG9yIHtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIEludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4gRG8gbm90IGNvbnN0cnVjdCBlcnJvciBpbnN0YW5jZXMuXG4gICAqIENhbm5vdCBiZSB0YWdnZWQgYXMgaW50ZXJuYWw6IGh0dHBzOi8vZ2l0aHViLmNvbS9SZWFjdGl2ZVgvcnhqcy9pc3N1ZXMvNjI2OVxuICAgKi9cbiAgbmV3IChtZXNzYWdlOiBzdHJpbmcpOiBOb3RGb3VuZEVycm9yO1xufVxuXG4vKipcbiAqIEFuIGVycm9yIHRocm93biB3aGVuIGEgdmFsdWUgb3IgdmFsdWVzIGFyZSBtaXNzaW5nIGZyb20gYW5cbiAqIG9ic2VydmFibGUgc2VxdWVuY2UuXG4gKlxuICogQHNlZSB7QGxpbmsgb3BlcmF0b3JzL3NpbmdsZX1cbiAqL1xuZXhwb3J0IGNvbnN0IE5vdEZvdW5kRXJyb3I6IE5vdEZvdW5kRXJyb3JDdG9yID0gY3JlYXRlRXJyb3JDbGFzcyhcbiAgKF9zdXBlcikgPT5cbiAgICBmdW5jdGlvbiBOb3RGb3VuZEVycm9ySW1wbCh0aGlzOiBhbnksIG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgX3N1cGVyKHRoaXMpO1xuICAgICAgdGhpcy5uYW1lID0gJ05vdEZvdW5kRXJyb3InO1xuICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB9XG4pO1xuIiwgImltcG9ydCB7IGNyZWF0ZUVycm9yQ2xhc3MgfSBmcm9tICcuL2NyZWF0ZUVycm9yQ2xhc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcXVlbmNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcXVlbmNlRXJyb3JDdG9yIHtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIEludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4gRG8gbm90IGNvbnN0cnVjdCBlcnJvciBpbnN0YW5jZXMuXG4gICAqIENhbm5vdCBiZSB0YWdnZWQgYXMgaW50ZXJuYWw6IGh0dHBzOi8vZ2l0aHViLmNvbS9SZWFjdGl2ZVgvcnhqcy9pc3N1ZXMvNjI2OVxuICAgKi9cbiAgbmV3IChtZXNzYWdlOiBzdHJpbmcpOiBTZXF1ZW5jZUVycm9yO1xufVxuXG4vKipcbiAqIEFuIGVycm9yIHRocm93biB3aGVuIHNvbWV0aGluZyBpcyB3cm9uZyB3aXRoIHRoZSBzZXF1ZW5jZSBvZlxuICogdmFsdWVzIGFycml2aW5nIG9uIHRoZSBvYnNlcnZhYmxlLlxuICpcbiAqIEBzZWUge0BsaW5rIG9wZXJhdG9ycy9zaW5nbGV9XG4gKi9cbmV4cG9ydCBjb25zdCBTZXF1ZW5jZUVycm9yOiBTZXF1ZW5jZUVycm9yQ3RvciA9IGNyZWF0ZUVycm9yQ2xhc3MoXG4gIChfc3VwZXIpID0+XG4gICAgZnVuY3Rpb24gU2VxdWVuY2VFcnJvckltcGwodGhpczogYW55LCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgIF9zdXBlcih0aGlzKTtcbiAgICAgIHRoaXMubmFtZSA9ICdTZXF1ZW5jZUVycm9yJztcbiAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgfVxuKTtcbiIsICIvKipcbiAqIENoZWNrcyB0byBzZWUgaWYgYSB2YWx1ZSBpcyBub3Qgb25seSBhIGBEYXRlYCBvYmplY3QsXG4gKiBidXQgYSAqdmFsaWQqIGBEYXRlYCBvYmplY3QgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGFcbiAqIG51bWJlci4gRm9yIGV4YW1wbGUsIGBuZXcgRGF0ZSgnYmxhaCcpYCBpcyBpbmRlZWQgYW5cbiAqIGBpbnN0YW5jZW9mIERhdGVgLCBob3dldmVyIGl0IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gYVxuICogbnVtYmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZERhdGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIERhdGUge1xuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTih2YWx1ZSBhcyBhbnkpO1xufVxuIiwgImltcG9ydCB7IGFzeW5jU2NoZWR1bGVyIH0gZnJvbSAnLi4vc2NoZWR1bGVyL2FzeW5jJztcbmltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgU2NoZWR1bGVyTGlrZSwgT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZUlucHV0LCBPYnNlcnZlZFZhbHVlT2YgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpc1ZhbGlkRGF0ZSB9IGZyb20gJy4uL3V0aWwvaXNEYXRlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4uL29ic2VydmFibGUvaW5uZXJGcm9tJztcbmltcG9ydCB7IGNyZWF0ZUVycm9yQ2xhc3MgfSBmcm9tICcuLi91dGlsL2NyZWF0ZUVycm9yQ2xhc3MnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuaW1wb3J0IHsgZXhlY3V0ZVNjaGVkdWxlIH0gZnJvbSAnLi4vdXRpbC9leGVjdXRlU2NoZWR1bGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVvdXRDb25maWc8VCwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDx1bmtub3duPiA9IE9ic2VydmFibGVJbnB1dDxUPiwgTSA9IHVua25vd24+IHtcbiAgLyoqXG4gICAqIFRoZSB0aW1lIGFsbG93ZWQgYmV0d2VlbiB2YWx1ZXMgZnJvbSB0aGUgc291cmNlIGJlZm9yZSB0aW1lb3V0IGlzIHRyaWdnZXJlZC5cbiAgICovXG4gIGVhY2g/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSByZWxhdGl2ZSB0aW1lIGFzIGEgYG51bWJlcmAgaW4gbWlsbGlzZWNvbmRzLCBvciBhIHNwZWNpZmljIHRpbWUgYXMgYSBgRGF0ZWAgb2JqZWN0LFxuICAgKiBieSB3aGljaCB0aGUgZmlyc3QgdmFsdWUgbXVzdCBhcnJpdmUgZnJvbSB0aGUgc291cmNlIGJlZm9yZSB0aW1lb3V0IGlzIHRyaWdnZXJlZC5cbiAgICovXG4gIGZpcnN0PzogbnVtYmVyIHwgRGF0ZTtcblxuICAvKipcbiAgICogVGhlIHNjaGVkdWxlciB0byB1c2Ugd2l0aCB0aW1lLXJlbGF0ZWQgb3BlcmF0aW9ucyB3aXRoaW4gdGhpcyBvcGVyYXRvci4gRGVmYXVsdHMgdG8ge0BsaW5rIGFzeW5jU2NoZWR1bGVyfVxuICAgKi9cbiAgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZTtcblxuICAvKipcbiAgICogQSBmYWN0b3J5IHVzZWQgdG8gY3JlYXRlIG9ic2VydmFibGUgdG8gc3dpdGNoIHRvIHdoZW4gdGltZW91dCBvY2N1cnMuIFByb3ZpZGVzXG4gICAqIGEge0BsaW5rIFRpbWVvdXRJbmZvfSBhYm91dCB0aGUgc291cmNlIG9ic2VydmFibGUncyBlbWlzc2lvbnMgYW5kIHdoYXQgZGVsYXkgb3JcbiAgICogZXhhY3QgdGltZSB0cmlnZ2VyZWQgdGhlIHRpbWVvdXQuXG4gICAqL1xuICB3aXRoPzogKGluZm86IFRpbWVvdXRJbmZvPFQsIE0+KSA9PiBPO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhZGRpdGlvbmFsIG1ldGFkYXRhIHlvdSBjYW4gcHJvdmlkZSB0byBjb2RlIHRoYXQgaGFuZGxlc1xuICAgKiB0aGUgdGltZW91dCwgd2lsbCBiZSBwcm92aWRlZCB0aHJvdWdoIHRoZSB7QGxpbmsgVGltZW91dEVycm9yfS5cbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBoZWxwIGlkZW50aWZ5IHRoZSBzb3VyY2Ugb2YgYSB0aW1lb3V0IG9yIHBhc3MgYWxvbmdcbiAgICogb3RoZXIgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgdGltZW91dC5cbiAgICovXG4gIG1ldGE/OiBNO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVvdXRJbmZvPFQsIE0gPSB1bmtub3duPiB7XG4gIC8qKiBPcHRpb25hbCBtZXRhZGF0YSB0aGF0IHdhcyBwcm92aWRlZCB0byB0aGUgdGltZW91dCBjb25maWd1cmF0aW9uLiAqL1xuICByZWFkb25seSBtZXRhOiBNO1xuICAvKiogVGhlIG51bWJlciBvZiBtZXNzYWdlcyBzZWVuIGJlZm9yZSB0aGUgdGltZW91dCAqL1xuICByZWFkb25seSBzZWVuOiBudW1iZXI7XG4gIC8qKiBUaGUgbGFzdCBtZXNzYWdlIHNlZW4gKi9cbiAgcmVhZG9ubHkgbGFzdFZhbHVlOiBUIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBBbiBlcnJvciBlbWl0dGVkIHdoZW4gYSB0aW1lb3V0IG9jY3Vycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaW1lb3V0RXJyb3I8VCA9IHVua25vd24sIE0gPSB1bmtub3duPiBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIFRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCB0byB0aGUgZXJyb3IgYnkgdGhlIHRpbWVvdXRcbiAgICogb3BlcmF0aW9uIHRoYXQgY3JlYXRlZCB0aGUgZXJyb3IuIFdpbGwgYmUgYG51bGxgIGlmXG4gICAqIHVzZWQgZGlyZWN0bHkgaW4gbm9uLVJ4SlMgY29kZSB3aXRoIGFuIGVtcHR5IGNvbnN0cnVjdG9yLlxuICAgKiAoTm90ZSB0aGF0IHVzaW5nIHRoaXMgY29uc3RydWN0b3IgZGlyZWN0bHkgaXMgbm90IHJlY29tbWVuZGVkLFxuICAgKiB5b3Ugc2hvdWxkIGNyZWF0ZSB5b3VyIG93biBlcnJvcnMpXG4gICAqL1xuICBpbmZvOiBUaW1lb3V0SW5mbzxULCBNPiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZW91dEVycm9yQ3RvciB7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuIERvIG5vdCBjb25zdHJ1Y3QgZXJyb3IgaW5zdGFuY2VzLlxuICAgKiBDYW5ub3QgYmUgdGFnZ2VkIGFzIGludGVybmFsOiBodHRwczovL2dpdGh1Yi5jb20vUmVhY3RpdmVYL3J4anMvaXNzdWVzLzYyNjlcbiAgICovXG4gIG5ldyA8VCA9IHVua25vd24sIE0gPSB1bmtub3duPihpbmZvPzogVGltZW91dEluZm88VCwgTT4pOiBUaW1lb3V0RXJyb3I8VCwgTT47XG59XG5cbi8qKlxuICogQW4gZXJyb3IgdGhyb3duIGJ5IHRoZSB7QGxpbmsgdGltZW91dH0gb3BlcmF0b3IuXG4gKlxuICogUHJvdmlkZWQgc28gdXNlcnMgY2FuIHVzZSBhcyBhIHR5cGUgYW5kIGRvIHF1YWxpdHkgY29tcGFyaXNvbnMuXG4gKiBXZSByZWNvbW1lbmQgeW91IGRvIG5vdCBzdWJjbGFzcyB0aGlzIG9yIGNyZWF0ZSBpbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBkaXJlY3RseS5cbiAqIElmIHlvdSBoYXZlIG5lZWQgb2YgYSBlcnJvciByZXByZXNlbnRpbmcgYSB0aW1lb3V0LCB5b3Ugc2hvdWxkXG4gKiBjcmVhdGUgeW91ciBvd24gZXJyb3IgY2xhc3MgYW5kIHVzZSB0aGF0LlxuICpcbiAqIEBzZWUge0BsaW5rIHRpbWVvdXR9XG4gKi9cbmV4cG9ydCBjb25zdCBUaW1lb3V0RXJyb3I6IFRpbWVvdXRFcnJvckN0b3IgPSBjcmVhdGVFcnJvckNsYXNzKFxuICAoX3N1cGVyKSA9PlxuICAgIGZ1bmN0aW9uIFRpbWVvdXRFcnJvckltcGwodGhpczogYW55LCBpbmZvOiBUaW1lb3V0SW5mbzxhbnk+IHwgbnVsbCA9IG51bGwpIHtcbiAgICAgIF9zdXBlcih0aGlzKTtcbiAgICAgIHRoaXMubWVzc2FnZSA9ICdUaW1lb3V0IGhhcyBvY2N1cnJlZCc7XG4gICAgICB0aGlzLm5hbWUgPSAnVGltZW91dEVycm9yJztcbiAgICAgIHRoaXMuaW5mbyA9IGluZm87XG4gICAgfVxuKTtcblxuLyoqXG4gKiBJZiBgd2l0aGAgaXMgcHJvdmlkZWQsIHRoaXMgd2lsbCByZXR1cm4gYW4gb2JzZXJ2YWJsZSB0aGF0IHdpbGwgc3dpdGNoIHRvIGEgZGlmZmVyZW50IG9ic2VydmFibGUgaWYgdGhlIHNvdXJjZVxuICogZG9lcyBub3QgcHVzaCB2YWx1ZXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgdGltZSBwYXJhbWV0ZXJzLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5UaGUgbW9zdCBmbGV4aWJsZSBvcHRpb24gZm9yIGNyZWF0aW5nIGEgdGltZW91dCBiZWhhdmlvci48L3NwYW4+XG4gKlxuICogVGhlIGZpcnN0IHRoaW5nIHRvIGtub3cgYWJvdXQgdGhlIGNvbmZpZ3VyYXRpb24gaXMgaWYgeW91IGRvIG5vdCBwcm92aWRlIGEgYHdpdGhgIHByb3BlcnR5IHRvIHRoZSBjb25maWd1cmF0aW9uLFxuICogd2hlbiB0aW1lb3V0IGNvbmRpdGlvbnMgYXJlIG1ldCwgdGhpcyBvcGVyYXRvciB3aWxsIGVtaXQgYSB7QGxpbmsgVGltZW91dEVycm9yfS4gT3RoZXJ3aXNlLCBpdCB3aWxsIHVzZSB0aGUgZmFjdG9yeVxuICogZnVuY3Rpb24gcHJvdmlkZWQgYnkgYHdpdGhgLCBhbmQgc3dpdGNoIHlvdXIgc3Vic2NyaXB0aW9uIHRvIHRoZSByZXN1bHQgb2YgdGhhdC4gVGltZW91dCBjb25kaXRpb25zIGFyZSBwcm92aWRlZCBieVxuICogdGhlIHNldHRpbmdzIGluIGBmaXJzdGAgYW5kIGBlYWNoYC5cbiAqXG4gKiBUaGUgYGZpcnN0YCBwcm9wZXJ0eSBjYW4gYmUgZWl0aGVyIGEgYERhdGVgIGZvciBhIHNwZWNpZmljIHRpbWUsIGEgYG51bWJlcmAgZm9yIGEgdGltZSBwZXJpb2QgcmVsYXRpdmUgdG8gdGhlXG4gKiBwb2ludCBvZiBzdWJzY3JpcHRpb24sIG9yIGl0IGNhbiBiZSBza2lwcGVkLiBUaGlzIHByb3BlcnR5IGlzIHRvIGNoZWNrIHRpbWVvdXQgY29uZGl0aW9ucyBmb3IgdGhlIGFycml2YWwgb2ZcbiAqIHRoZSBmaXJzdCB2YWx1ZSBmcm9tIHRoZSBzb3VyY2UgX29ubHlfLiBUaGUgdGltaW5ncyBvZiBhbGwgc3Vic2VxdWVudCB2YWx1ZXMgIGZyb20gdGhlIHNvdXJjZSB3aWxsIGJlIGNoZWNrZWRcbiAqIGFnYWluc3QgdGhlIHRpbWUgcGVyaW9kIHByb3ZpZGVkIGJ5IGBlYWNoYCwgaWYgaXQgd2FzIHByb3ZpZGVkLlxuICpcbiAqIFRoZSBgZWFjaGAgcHJvcGVydHkgY2FuIGJlIGVpdGhlciBhIGBudW1iZXJgIG9yIHNraXBwZWQuIElmIGEgdmFsdWUgZm9yIGBlYWNoYCBpcyBwcm92aWRlZCwgaXQgcmVwcmVzZW50cyB0aGUgYW1vdW50IG9mXG4gKiB0aW1lIHRoZSByZXN1bHRpbmcgb2JzZXJ2YWJsZSB3aWxsIHdhaXQgYmV0d2VlbiB0aGUgYXJyaXZhbCBvZiB2YWx1ZXMgZnJvbSB0aGUgc291cmNlIGJlZm9yZSB0aW1pbmcgb3V0LiBOb3RlIHRoYXQgaWZcbiAqIGBmaXJzdGAgaXMgX25vdF8gcHJvdmlkZWQsIHRoZSB2YWx1ZSBmcm9tIGBlYWNoYCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgdGltZW91dCBjb25kaXRpb25zIGZvciB0aGUgYXJyaXZhbCBvZiB0aGUgZmlyc3RcbiAqIHZhbHVlIGFuZCBhbGwgc3Vic2VxdWVudCB2YWx1ZXMuIElmIGBmaXJzdGAgX2lzXyBwcm92aWRlZCwgYGVhY2hgIHdpbGwgb25seSBiZSB1c2UgdG8gY2hlY2sgYWxsIHZhbHVlcyBhZnRlciB0aGUgZmlyc3QuXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBFbWl0IGEgY3VzdG9tIGVycm9yIGlmIHRoZXJlIGlzIHRvbyBtdWNoIHRpbWUgYmV0d2VlbiB2YWx1ZXNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIHRpbWVvdXQsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjbGFzcyBDdXN0b21UaW1lb3V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gKiAgIGNvbnN0cnVjdG9yKCkge1xuICogICAgIHN1cGVyKCdJdCB3YXMgdG9vIHNsb3cnKTtcbiAqICAgICB0aGlzLm5hbWUgPSAnQ3VzdG9tVGltZW91dEVycm9yJztcbiAqICAgfVxuICogfVxuICpcbiAqIGNvbnN0IHNsb3ckID0gaW50ZXJ2YWwoOTAwKTtcbiAqXG4gKiBzbG93JC5waXBlKFxuICogICB0aW1lb3V0KHtcbiAqICAgICBlYWNoOiAxMDAwLFxuICogICAgIHdpdGg6ICgpID0+IHRocm93RXJyb3IoKCkgPT4gbmV3IEN1c3RvbVRpbWVvdXRFcnJvcigpKVxuICogICB9KVxuICogKVxuICogLnN1YnNjcmliZSh7XG4gKiAgIGVycm9yOiBjb25zb2xlLmVycm9yXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIFN3aXRjaCB0byBhIGZhc3RlciBvYnNlcnZhYmxlIGlmIHlvdXIgc291cmNlIGlzIHNsb3cuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCB0aW1lb3V0IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgc2xvdyQgPSBpbnRlcnZhbCg5MDApO1xuICogY29uc3QgZmFzdCQgPSBpbnRlcnZhbCg1MDApO1xuICpcbiAqIHNsb3ckLnBpcGUoXG4gKiAgIHRpbWVvdXQoe1xuICogICAgIGVhY2g6IDEwMDAsXG4gKiAgICAgd2l0aDogKCkgPT4gZmFzdCQsXG4gKiAgIH0pXG4gKiApXG4gKiAuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTtcbiAqIGBgYFxuICogQHBhcmFtIGNvbmZpZyBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRpbWVvdXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aW1lb3V0PFQsIE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8dW5rbm93bj4sIE0gPSB1bmtub3duPihcbiAgY29uZmlnOiBUaW1lb3V0Q29uZmlnPFQsIE8sIE0+ICYgeyB3aXRoOiAoaW5mbzogVGltZW91dEluZm88VCwgTT4pID0+IE8gfVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUIHwgT2JzZXJ2ZWRWYWx1ZU9mPE8+PjtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCB3aWxsIGVycm9yIG9yIHN3aXRjaCB0byBhIGRpZmZlcmVudCBvYnNlcnZhYmxlIGlmIHRoZSBzb3VyY2UgZG9lcyBub3QgcHVzaCB2YWx1ZXNcbiAqIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUgcGFyYW1ldGVycy5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+VGhlIG1vc3QgZmxleGlibGUgb3B0aW9uIGZvciBjcmVhdGluZyBhIHRpbWVvdXQgYmVoYXZpb3IuPC9zcGFuPlxuICpcbiAqIFRoZSBmaXJzdCB0aGluZyB0byBrbm93IGFib3V0IHRoZSBjb25maWd1cmF0aW9uIGlzIGlmIHlvdSBkbyBub3QgcHJvdmlkZSBhIGB3aXRoYCBwcm9wZXJ0eSB0byB0aGUgY29uZmlndXJhdGlvbixcbiAqIHdoZW4gdGltZW91dCBjb25kaXRpb25zIGFyZSBtZXQsIHRoaXMgb3BlcmF0b3Igd2lsbCBlbWl0IGEge0BsaW5rIFRpbWVvdXRFcnJvcn0uIE90aGVyd2lzZSwgaXQgd2lsbCB1c2UgdGhlIGZhY3RvcnlcbiAqIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5IGB3aXRoYCwgYW5kIHN3aXRjaCB5b3VyIHN1YnNjcmlwdGlvbiB0byB0aGUgcmVzdWx0IG9mIHRoYXQuIFRpbWVvdXQgY29uZGl0aW9ucyBhcmUgcHJvdmlkZWQgYnlcbiAqIHRoZSBzZXR0aW5ncyBpbiBgZmlyc3RgIGFuZCBgZWFjaGAuXG4gKlxuICogVGhlIGBmaXJzdGAgcHJvcGVydHkgY2FuIGJlIGVpdGhlciBhIGBEYXRlYCBmb3IgYSBzcGVjaWZpYyB0aW1lLCBhIGBudW1iZXJgIGZvciBhIHRpbWUgcGVyaW9kIHJlbGF0aXZlIHRvIHRoZVxuICogcG9pbnQgb2Ygc3Vic2NyaXB0aW9uLCBvciBpdCBjYW4gYmUgc2tpcHBlZC4gVGhpcyBwcm9wZXJ0eSBpcyB0byBjaGVjayB0aW1lb3V0IGNvbmRpdGlvbnMgZm9yIHRoZSBhcnJpdmFsIG9mXG4gKiB0aGUgZmlyc3QgdmFsdWUgZnJvbSB0aGUgc291cmNlIF9vbmx5Xy4gVGhlIHRpbWluZ3Mgb2YgYWxsIHN1YnNlcXVlbnQgdmFsdWVzICBmcm9tIHRoZSBzb3VyY2Ugd2lsbCBiZSBjaGVja2VkXG4gKiBhZ2FpbnN0IHRoZSB0aW1lIHBlcmlvZCBwcm92aWRlZCBieSBgZWFjaGAsIGlmIGl0IHdhcyBwcm92aWRlZC5cbiAqXG4gKiBUaGUgYGVhY2hgIHByb3BlcnR5IGNhbiBiZSBlaXRoZXIgYSBgbnVtYmVyYCBvciBza2lwcGVkLiBJZiBhIHZhbHVlIGZvciBgZWFjaGAgaXMgcHJvdmlkZWQsIGl0IHJlcHJlc2VudHMgdGhlIGFtb3VudCBvZlxuICogdGltZSB0aGUgcmVzdWx0aW5nIG9ic2VydmFibGUgd2lsbCB3YWl0IGJldHdlZW4gdGhlIGFycml2YWwgb2YgdmFsdWVzIGZyb20gdGhlIHNvdXJjZSBiZWZvcmUgdGltaW5nIG91dC4gTm90ZSB0aGF0IGlmXG4gKiBgZmlyc3RgIGlzIF9ub3RfIHByb3ZpZGVkLCB0aGUgdmFsdWUgZnJvbSBgZWFjaGAgd2lsbCBiZSB1c2VkIHRvIGNoZWNrIHRpbWVvdXQgY29uZGl0aW9ucyBmb3IgdGhlIGFycml2YWwgb2YgdGhlIGZpcnN0XG4gKiB2YWx1ZSBhbmQgYWxsIHN1YnNlcXVlbnQgdmFsdWVzLiBJZiBgZmlyc3RgIF9pc18gcHJvdmlkZWQsIGBlYWNoYCB3aWxsIG9ubHkgYmUgdXNlIHRvIGNoZWNrIGFsbCB2YWx1ZXMgYWZ0ZXIgdGhlIGZpcnN0LlxuICpcbiAqICMjIyBIYW5kbGluZyBUaW1lb3V0RXJyb3JzXG4gKlxuICogSWYgbm8gYHdpdGhgIHByb3BlcnR5IHdhcyBwcm92aWRlZCwgc3Vic2NyaXB0aW9ucyB0byB0aGUgcmVzdWx0aW5nIG9ic2VydmFibGUgbWF5IGVtaXQgYW4gZXJyb3Igb2Yge0BsaW5rIFRpbWVvdXRFcnJvcn0uXG4gKiBUaGUgdGltZW91dCBlcnJvciBwcm92aWRlcyB1c2VmdWwgaW5mb3JtYXRpb24geW91IGNhbiBleGFtaW5lIHdoZW4geW91J3JlIGhhbmRsaW5nIHRoZSBlcnJvci4gVGhlIG1vc3QgY29tbW9uIHdheSB0byBoYW5kbGVcbiAqIHRoZSBlcnJvciB3b3VsZCBiZSB3aXRoIHtAbGluayBjYXRjaEVycm9yfSwgYWx0aG91Z2ggeW91IGNvdWxkIHVzZSB7QGxpbmsgdGFwfSBvciBqdXN0IHRoZSBlcnJvciBoYW5kbGVyIGluIHlvdXIgYHN1YnNjcmliZWAgY2FsbFxuICogZGlyZWN0bHksIGlmIHlvdXIgZXJyb3IgaGFuZGxpbmcgaXMgb25seSBhIHNpZGUgZWZmZWN0IChzdWNoIGFzIG5vdGlmeWluZyB0aGUgdXNlciwgb3IgbG9nZ2luZykuXG4gKlxuICogSW4gdGhpcyBjYXNlLCB5b3Ugd291bGQgY2hlY2sgdGhlIGVycm9yIGZvciBgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3JgIHRvIHZhbGlkYXRlIHRoYXQgdGhlIGVycm9yIHdhcyBpbmRlZWQgZnJvbSBgdGltZW91dGAsIGFuZFxuICogbm90IGZyb20gc29tZSBvdGhlciBzb3VyY2UuIElmIGl0J3Mgbm90IGZyb20gYHRpbWVvdXRgLCB5b3Ugc2hvdWxkIHByb2JhYmx5IHJldGhyb3cgaXQgaWYgeW91J3JlIGluIGEgYGNhdGNoRXJyb3JgLlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogRW1pdCBhIHtAbGluayBUaW1lb3V0RXJyb3J9IGlmIHRoZSBmaXJzdCB2YWx1ZSwgYW5kIF9vbmx5XyB0aGUgZmlyc3QgdmFsdWUsIGRvZXMgbm90IGFycml2ZSB3aXRoaW4gNSBzZWNvbmRzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCB0aW1lb3V0IH0gZnJvbSAncnhqcyc7XG4gKlxuICogLy8gQSByYW5kb20gaW50ZXJ2YWwgdGhhdCBsYXN0cyBiZXR3ZWVuIDAgYW5kIDEwIHNlY29uZHMgcGVyIHRpY2tcbiAqIGNvbnN0IHNvdXJjZSQgPSBpbnRlcnZhbChNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMF8wMDApKTtcbiAqXG4gKiBzb3VyY2UkLnBpcGUoXG4gKiAgIHRpbWVvdXQoeyBmaXJzdDogNV8wMDAgfSlcbiAqIClcbiAqIC5zdWJzY3JpYmUoe1xuICogICBuZXh0OiBjb25zb2xlLmxvZyxcbiAqICAgZXJyb3I6IGNvbnNvbGUuZXJyb3JcbiAqIH0pO1xuICogYGBgXG4gKlxuICogRW1pdCBhIHtAbGluayBUaW1lb3V0RXJyb3J9IGlmIHRoZSBzb3VyY2Ugd2FpdHMgbG9uZ2VyIHRoYW4gNSBzZWNvbmRzIGJldHdlZW4gYW55IHR3byB2YWx1ZXMgb3IgdGhlIGZpcnN0IHZhbHVlXG4gKiBhbmQgc3Vic2NyaXB0aW9uLlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyB0aW1lciwgdGltZW91dCwgZXhwYW5kIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgZ2V0UmFuZG9tVGltZSA9ICgpID0+IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwXzAwMCk7XG4gKlxuICogLy8gQW4gb2JzZXJ2YWJsZSB0aGF0IHdhaXRzIGEgcmFuZG9tIGFtb3VudCBvZiB0aW1lIGJldHdlZW4gZWFjaCBkZWxpdmVyZWQgdmFsdWVcbiAqIGNvbnN0IHNvdXJjZSQgPSB0aW1lcihnZXRSYW5kb21UaW1lKCkpXG4gKiAgIC5waXBlKGV4cGFuZCgoKSA9PiB0aW1lcihnZXRSYW5kb21UaW1lKCkpKSk7XG4gKlxuICogc291cmNlJFxuICogICAucGlwZSh0aW1lb3V0KHsgZWFjaDogNV8wMDAgfSkpXG4gKiAgIC5zdWJzY3JpYmUoe1xuICogICAgIG5leHQ6IGNvbnNvbGUubG9nLFxuICogICAgIGVycm9yOiBjb25zb2xlLmVycm9yXG4gKiAgIH0pO1xuICogYGBgXG4gKlxuICogRW1pdCBhIHtAbGluayBUaW1lb3V0RXJyb3J9IGlmIHRoZSBzb3VyY2UgZG9lcyBub3QgZW1pdCBiZWZvcmUgNyBzZWNvbmRzLCBfb3JfIGlmIHRoZSBzb3VyY2Ugd2FpdHMgbG9uZ2VyIHRoYW5cbiAqIDUgc2Vjb25kcyBiZXR3ZWVuIGFueSB0d28gdmFsdWVzIGFmdGVyIHRoZSBmaXJzdC5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgdGltZXIsIHRpbWVvdXQsIGV4cGFuZCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGdldFJhbmRvbVRpbWUgPSAoKSA9PiBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMF8wMDApO1xuICpcbiAqIC8vIEFuIG9ic2VydmFibGUgdGhhdCB3YWl0cyBhIHJhbmRvbSBhbW91bnQgb2YgdGltZSBiZXR3ZWVuIGVhY2ggZGVsaXZlcmVkIHZhbHVlXG4gKiBjb25zdCBzb3VyY2UkID0gdGltZXIoZ2V0UmFuZG9tVGltZSgpKVxuICogICAucGlwZShleHBhbmQoKCkgPT4gdGltZXIoZ2V0UmFuZG9tVGltZSgpKSkpO1xuICpcbiAqIHNvdXJjZSRcbiAqICAgLnBpcGUodGltZW91dCh7IGZpcnN0OiA3XzAwMCwgZWFjaDogNV8wMDAgfSkpXG4gKiAgIC5zdWJzY3JpYmUoe1xuICogICAgIG5leHQ6IGNvbnNvbGUubG9nLFxuICogICAgIGVycm9yOiBjb25zb2xlLmVycm9yXG4gKiAgIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aW1lb3V0PFQsIE0gPSB1bmtub3duPihjb25maWc6IE9taXQ8VGltZW91dENvbmZpZzxULCBhbnksIE0+LCAnd2l0aCc+KTogT3BlcmF0b3JGdW5jdGlvbjxULCBUPjtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCB3aWxsIGVycm9yIGlmIHRoZSBzb3VyY2UgZG9lcyBub3QgcHVzaCBpdHMgZmlyc3QgdmFsdWUgYmVmb3JlIHRoZSBzcGVjaWZpZWQgdGltZSBwYXNzZWQgYXMgYSBgRGF0ZWAuXG4gKiBUaGlzIGlzIGZ1bmN0aW9uYWxseSB0aGUgc2FtZSBhcyBgdGltZW91dCh7IGZpcnN0OiBzb21lRGF0ZSB9KWAuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkVycm9ycyBpZiB0aGUgZmlyc3QgdmFsdWUgZG9lc24ndCBzaG93IHVwIGJlZm9yZSB0aGUgZ2l2ZW4gZGF0ZSBhbmQgdGltZTwvc3Bhbj5cbiAqXG4gKiAhW10odGltZW91dC5wbmcpXG4gKlxuICogQHBhcmFtIGZpcnN0IFRoZSBkYXRlIHRvIGF0IHdoaWNoIHRoZSByZXN1bHRpbmcgb2JzZXJ2YWJsZSB3aWxsIHRpbWVvdXQgaWYgdGhlIHNvdXJjZSBvYnNlcnZhYmxlXG4gKiBkb2VzIG5vdCBlbWl0IGF0IGxlYXN0IG9uZSB2YWx1ZS5cbiAqIEBwYXJhbSBzY2hlZHVsZXIgVGhlIHNjaGVkdWxlciB0byB1c2UuIERlZmF1bHRzIHRvIHtAbGluayBhc3luY1NjaGVkdWxlcn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aW1lb3V0PFQ+KGZpcnN0OiBEYXRlLCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuXG4vKipcbiAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IHdpbGwgZXJyb3IgaWYgdGhlIHNvdXJjZSBkb2VzIG5vdCBwdXNoIGEgdmFsdWUgd2l0aGluIHRoZSBzcGVjaWZpZWQgdGltZSBpbiBtaWxsaXNlY29uZHMuXG4gKiBUaGlzIGlzIGZ1bmN0aW9uYWxseSB0aGUgc2FtZSBhcyBgdGltZW91dCh7IGVhY2g6IG1pbGxpc2Vjb25kcyB9KWAuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkVycm9ycyBpZiBpdCB3YWl0cyB0b28gbG9uZyBiZXR3ZWVuIGFueSB2YWx1ZTwvc3Bhbj5cbiAqXG4gKiAhW10odGltZW91dC5wbmcpXG4gKlxuICogQHBhcmFtIGVhY2ggVGhlIHRpbWUgYWxsb3dlZCBiZXR3ZWVuIGVhY2ggcHVzaGVkIHZhbHVlIGZyb20gdGhlIHNvdXJjZSBiZWZvcmUgdGhlIHJlc3VsdGluZyBvYnNlcnZhYmxlXG4gKiB3aWxsIHRpbWVvdXQuXG4gKiBAcGFyYW0gc2NoZWR1bGVyIFRoZSBzY2hlZHVsZXIgdG8gdXNlLiBEZWZhdWx0cyB0byB7QGxpbmsgYXN5bmNTY2hlZHVsZXJ9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGltZW91dDxUPihlYWNoOiBudW1iZXIsIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD47XG5cbi8qKlxuICpcbiAqIEVycm9ycyBpZiBPYnNlcnZhYmxlIGRvZXMgbm90IGVtaXQgYSB2YWx1ZSBpbiBnaXZlbiB0aW1lIHNwYW4uXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPlRpbWVvdXRzIG9uIE9ic2VydmFibGUgdGhhdCBkb2Vzbid0IGVtaXQgdmFsdWVzIGZhc3QgZW5vdWdoLjwvc3Bhbj5cbiAqXG4gKiAhW10odGltZW91dC5wbmcpXG4gKlxuICogQHNlZSB7QGxpbmsgdGltZW91dFdpdGh9XG4gKlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgbWlycm9ycyBiZWhhdmlvdXIgb2YgdGhlXG4gKiBzb3VyY2UgT2JzZXJ2YWJsZSwgdW5sZXNzIHRpbWVvdXQgaGFwcGVucyB3aGVuIGl0IHRocm93cyBhbiBlcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRpbWVvdXQ8VCwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+LCBNPihcbiAgY29uZmlnOiBudW1iZXIgfCBEYXRlIHwgVGltZW91dENvbmZpZzxULCBPLCBNPixcbiAgc2NoZWR1bGVyQXJnPzogU2NoZWR1bGVyTGlrZVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUIHwgT2JzZXJ2ZWRWYWx1ZU9mPE8+PiB7XG4gIC8vIEludGVudGlvbmFsbHkgdGVyc2UgY29kZS5cbiAgLy8gSWYgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgdmFsaWQgYERhdGVgLCB0aGVuIHdlIHVzZSBpdCBhcyB0aGUgYGZpcnN0YCBjb25maWcuXG4gIC8vIE90aGVyd2lzZSwgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgYG51bWJlcmAsIHRoZW4gd2UgdXNlIGl0IGFzIHRoZSBgZWFjaGAgY29uZmlnLlxuICAvLyBPdGhlcndpc2UsIGl0IGNhbiBiZSBhc3N1bWVkIHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QgaXRzZWxmLCBhbmRcbiAgLy8gd2UgZGVzdHJ1Y3R1cmUgdGhhdCBpbnRvIHdoYXQgd2UncmUgZ29pbmcgdG8gdXNlLCBzZXR0aW5nIGltcG9ydGFudCBkZWZhdWx0cyBhcyB3ZSBkby5cbiAgLy8gTk9URTogVGhlIGRlZmF1bHQgZm9yIGBzY2hlZHVsZXJgIHdpbGwgYmUgdGhlIGBzY2hlZHVsZXJgIGFyZ3VtZW50IGlmIGl0IGV4aXN0cywgb3JcbiAgLy8gaXQgd2lsbCBkZWZhdWx0IHRvIHRoZSBgYXN5bmNTY2hlZHVsZXJgLlxuICBjb25zdCB7XG4gICAgZmlyc3QsXG4gICAgZWFjaCxcbiAgICB3aXRoOiBfd2l0aCA9IHRpbWVvdXRFcnJvckZhY3RvcnksXG4gICAgc2NoZWR1bGVyID0gc2NoZWR1bGVyQXJnID8/IGFzeW5jU2NoZWR1bGVyLFxuICAgIG1ldGEgPSBudWxsISxcbiAgfSA9IChpc1ZhbGlkRGF0ZShjb25maWcpID8geyBmaXJzdDogY29uZmlnIH0gOiB0eXBlb2YgY29uZmlnID09PSAnbnVtYmVyJyA/IHsgZWFjaDogY29uZmlnIH0gOiBjb25maWcpIGFzIFRpbWVvdXRDb25maWc8VCwgTywgTT47XG5cbiAgaWYgKGZpcnN0ID09IG51bGwgJiYgZWFjaCA9PSBudWxsKSB7XG4gICAgLy8gRW5zdXJlIHRpbWVvdXQgd2FzIHByb3ZpZGVkIGF0IHJ1bnRpbWUuXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gdGltZW91dCBwcm92aWRlZC4nKTtcbiAgfVxuXG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICAvLyBUaGlzIHN1YnNjcmlwdGlvbiBlbmNhcHN1bGF0ZXMgb3VyIHN1YnNjcmlwdGlvbiB0byB0aGVcbiAgICAvLyBzb3VyY2UgZm9yIHRoaXMgb3BlcmF0b3IuIFdlJ3JlIGNhcHR1cmluZyBpdCBzZXBhcmF0ZWx5LFxuICAgIC8vIGJlY2F1c2UgaWYgdGhlcmUgaXMgYSBgd2l0aGAgb2JzZXJ2YWJsZSB0byBmYWlsIG92ZXIgdG8sXG4gICAgLy8gd2Ugd2FudCB0byB1bnN1YnNjcmliZSBmcm9tIG91ciBvcmlnaW5hbCBzdWJzY3JpcHRpb24sIGFuZFxuICAgIC8vIGhhbmQgb2YgdGhlIHN1YnNjcmlwdGlvbiB0byB0aGF0IG9uZS5cbiAgICBsZXQgb3JpZ2luYWxTb3VyY2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICAvLyBUaGUgc3Vic2NyaXB0aW9uIGZvciBvdXIgdGltZW91dCB0aW1lci4gVGhpcyBjaGFuZ2VzXG4gICAgLy8gZXZlcnkgdGltZSB3ZSBnZXQgYSBuZXcgdmFsdWUuXG4gICAgbGV0IHRpbWVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgLy8gQSBiaXQgb2Ygc3RhdGUgd2UgcGFzcyB0byBvdXIgd2l0aCBhbmQgZXJyb3IgZmFjdG9yaWVzIHRvXG4gICAgLy8gdGVsbCB3aGF0IHRoZSBsYXN0IHZhbHVlIHdlIHNhdyB3YXMuXG4gICAgbGV0IGxhc3RWYWx1ZTogVCB8IG51bGwgPSBudWxsO1xuICAgIC8vIEEgYml0IG9mIHN0YXRlIHdlIHBhc3MgdG8gdGhlIHdpdGggYW5kIGVycm9yIGZhY3RvcmllcyB0b1xuICAgIC8vIHRlbGwgaG93IG1hbnkgdmFsdWVzIHdlIGhhdmUgc2VlbiBzbyBmYXIuXG4gICAgbGV0IHNlZW4gPSAwO1xuICAgIGNvbnN0IHN0YXJ0VGltZXIgPSAoZGVsYXk6IG51bWJlcikgPT4ge1xuICAgICAgdGltZXJTdWJzY3JpcHRpb24gPSBleGVjdXRlU2NoZWR1bGUoXG4gICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgIHNjaGVkdWxlcixcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBvcmlnaW5hbFNvdXJjZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgaW5uZXJGcm9tKFxuICAgICAgICAgICAgICBfd2l0aCEoe1xuICAgICAgICAgICAgICAgIG1ldGEsXG4gICAgICAgICAgICAgICAgbGFzdFZhbHVlLFxuICAgICAgICAgICAgICAgIHNlZW4sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLnN1YnNjcmliZShzdWJzY3JpYmVyKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRlbGF5XG4gICAgICApO1xuICAgIH07XG5cbiAgICBvcmlnaW5hbFNvdXJjZVN1YnNjcmlwdGlvbiA9IHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICh2YWx1ZTogVCkgPT4ge1xuICAgICAgICAgIC8vIGNsZWFyIHRoZSB0aW1lciBzbyB3ZSBjYW4gZW1pdCBhbmQgc3RhcnQgYW5vdGhlciBvbmUuXG4gICAgICAgICAgdGltZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgc2VlbisrO1xuICAgICAgICAgIC8vIEVtaXRcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoKGxhc3RWYWx1ZSA9IHZhbHVlKSk7XG4gICAgICAgICAgLy8gbnVsbCB8IHVuZGVmaW5lZCBhcmUgYm90aCA8IDAuIFRoYW5rcywgSmF2YVNjcmlwdC5cbiAgICAgICAgICBlYWNoISA+IDAgJiYgc3RhcnRUaW1lcihlYWNoISk7XG4gICAgICAgIH0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aW1lclN1YnNjcmlwdGlvbj8uY2xvc2VkKSB7XG4gICAgICAgICAgICB0aW1lclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQmUgc3VyZSBub3QgdG8gaG9sZCB0aGUgbGFzdCB2YWx1ZSBpbiBtZW1vcnkgYWZ0ZXIgdW5zdWJzY3JpcHRpb25cbiAgICAgICAgICAvLyBpdCBjb3VsZCBiZSBxdWl0ZSBsYXJnZS5cbiAgICAgICAgICBsYXN0VmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIEludGVudGlvbmFsbHkgdGVyc2UgY29kZS5cbiAgICAvLyBJZiB3ZSd2ZSBgc2VlbmAgYSB2YWx1ZSwgdGhhdCBtZWFucyB0aGUgXCJmaXJzdFwiIGNsYXVzZSB3YXMgbWV0IGFscmVhZHksIGlmIGl0IGV4aXN0ZWQuXG4gICAgLy8gICBpdCBhbHNvIG1lYW5zIHRoYXQgYSB0aW1lciB3YXMgYWxyZWFkeSBzdGFydGVkIGZvciBcImVhY2hcIiAoaW4gdGhlIG5leHQgaGFuZGxlciBhYm92ZSkuXG4gICAgLy8gSWYgYGZpcnN0YCB3YXMgcHJvdmlkZWQsIGFuZCBpdCdzIGEgbnVtYmVyLCB0aGVuIHVzZSBpdC5cbiAgICAvLyBJZiBgZmlyc3RgIHdhcyBwcm92aWRlZCBhbmQgaXQncyBub3QgYSBudW1iZXIsIGl0J3MgYSBEYXRlLCBhbmQgd2UgZ2V0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gaXQgYW5kIFwibm93XCIuXG4gICAgLy8gSWYgYGZpcnN0YCB3YXMgbm90IHByb3ZpZGVkIGF0IGFsbCwgdGhlbiBvdXIgZmlyc3QgdGltZXIgd2lsbCBiZSB0aGUgdmFsdWUgZnJvbSBgZWFjaGAuXG4gICAgIXNlZW4gJiYgc3RhcnRUaW1lcihmaXJzdCAhPSBudWxsID8gKHR5cGVvZiBmaXJzdCA9PT0gJ251bWJlcicgPyBmaXJzdCA6ICtmaXJzdCAtIHNjaGVkdWxlciEubm93KCkpIDogZWFjaCEpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiB0byB1c2UgdG8gZW1pdCBhbiBlcnJvciB3aGVuIHRpbWVvdXQgb2NjdXJzIGFuZCBhIGB3aXRoYCBmdW5jdGlvblxuICogaXMgbm90IHNwZWNpZmllZC5cbiAqIEBwYXJhbSBpbmZvIFRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGltZW91dCB0byBwYXNzIGFsb25nIHRvIHRoZSBlcnJvclxuICovXG5mdW5jdGlvbiB0aW1lb3V0RXJyb3JGYWN0b3J5KGluZm86IFRpbWVvdXRJbmZvPGFueT4pOiBPYnNlcnZhYmxlPG5ldmVyPiB7XG4gIHRocm93IG5ldyBUaW1lb3V0RXJyb3IoaW5mbyk7XG59XG4iLCAiaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwPFQsIFI+KHByb2plY3Q6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gUik6IE9wZXJhdG9yRnVuY3Rpb248VCwgUj47XG4vKiogQGRlcHJlY2F0ZWQgVXNlIGEgY2xvc3VyZSBpbnN0ZWFkIG9mIGEgYHRoaXNBcmdgLiBTaWduYXR1cmVzIGFjY2VwdGluZyBhIGB0aGlzQXJnYCB3aWxsIGJlIHJlbW92ZWQgaW4gdjguICovXG5leHBvcnQgZnVuY3Rpb24gbWFwPFQsIFIsIEE+KHByb2plY3Q6ICh0aGlzOiBBLCB2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gUiwgdGhpc0FyZzogQSk6IE9wZXJhdG9yRnVuY3Rpb248VCwgUj47XG5cbi8qKlxuICogQXBwbGllcyBhIGdpdmVuIGBwcm9qZWN0YCBmdW5jdGlvbiB0byBlYWNoIHZhbHVlIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZVxuICogT2JzZXJ2YWJsZSwgYW5kIGVtaXRzIHRoZSByZXN1bHRpbmcgdmFsdWVzIGFzIGFuIE9ic2VydmFibGUuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkxpa2UgW0FycmF5LnByb3RvdHlwZS5tYXAoKV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvQXJyYXkvbWFwKSxcbiAqIGl0IHBhc3NlcyBlYWNoIHNvdXJjZSB2YWx1ZSB0aHJvdWdoIGEgdHJhbnNmb3JtYXRpb24gZnVuY3Rpb24gdG8gZ2V0XG4gKiBjb3JyZXNwb25kaW5nIG91dHB1dCB2YWx1ZXMuPC9zcGFuPlxuICpcbiAqICFbXShtYXAucG5nKVxuICpcbiAqIFNpbWlsYXIgdG8gdGhlIHdlbGwga25vd24gYEFycmF5LnByb3RvdHlwZS5tYXBgIGZ1bmN0aW9uLCB0aGlzIG9wZXJhdG9yXG4gKiBhcHBsaWVzIGEgcHJvamVjdGlvbiB0byBlYWNoIHZhbHVlIGFuZCBlbWl0cyB0aGF0IHByb2plY3Rpb24gaW4gdGhlIG91dHB1dFxuICogT2JzZXJ2YWJsZS5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogTWFwIGV2ZXJ5IGNsaWNrIHRvIHRoZSBgY2xpZW50WGAgcG9zaXRpb24gb2YgdGhhdCBjbGlja1xuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIG1hcCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudDxQb2ludGVyRXZlbnQ+KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHBvc2l0aW9ucyA9IGNsaWNrcy5waXBlKG1hcChldiA9PiBldi5jbGllbnRYKSk7XG4gKlxuICogcG9zaXRpb25zLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIG1hcFRvfVxuICogQHNlZSB7QGxpbmsgcGx1Y2t9XG4gKlxuICogQHBhcmFtIHByb2plY3QgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggYHZhbHVlYCBlbWl0dGVkIGJ5IHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUuIFRoZSBgaW5kZXhgIHBhcmFtZXRlciBpcyB0aGUgbnVtYmVyIGBpYCBmb3IgdGhlIGktdGggZW1pc3Npb25cbiAqIHRoYXQgaGFzIGhhcHBlbmVkIHNpbmNlIHRoZSBzdWJzY3JpcHRpb24sIHN0YXJ0aW5nIGZyb20gdGhlIG51bWJlciBgMGAuXG4gKiBAcGFyYW0gdGhpc0FyZyBBbiBvcHRpb25hbCBhcmd1bWVudCB0byBkZWZpbmUgd2hhdCBgdGhpc2AgaXMgaW4gdGhlXG4gKiBgcHJvamVjdGAgZnVuY3Rpb24uXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdmFsdWVzIGZyb20gdGhlXG4gKiBzb3VyY2UgT2JzZXJ2YWJsZSB0cmFuc2Zvcm1lZCBieSB0aGUgZ2l2ZW4gYHByb2plY3RgIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwPFQsIFI+KHByb2plY3Q6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gUiwgdGhpc0FyZz86IGFueSk6IE9wZXJhdG9yRnVuY3Rpb248VCwgUj4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgLy8gVGhlIGluZGV4IG9mIHRoZSB2YWx1ZSBmcm9tIHRoZSBzb3VyY2UuIFVzZWQgd2l0aCBwcm9qZWN0aW9uLlxuICAgIGxldCBpbmRleCA9IDA7XG4gICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBzb3VyY2UsIGFsbCBlcnJvcnMgYW5kIGNvbXBsZXRpb25zIGFyZSBzZW50IGFsb25nXG4gICAgLy8gdG8gdGhlIGNvbnN1bWVyLlxuICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgKHZhbHVlOiBUKSA9PiB7XG4gICAgICAgIC8vIENhbGwgdGhlIHByb2plY3Rpb24gZnVuY3Rpb24gd2l0aCB0aGUgYXBwcm9wcmlhdGUgdGhpcyBjb250ZXh0LFxuICAgICAgICAvLyBhbmQgc2VuZCB0aGUgcmVzdWx0aW5nIHZhbHVlIHRvIHRoZSBjb25zdW1lci5cbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHByb2plY3QuY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaW5kZXgrKykpO1xuICAgICAgfSlcbiAgICApO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwiLi4vb3BlcmF0b3JzL21hcFwiO1xuXG5jb25zdCB7IGlzQXJyYXkgfSA9IEFycmF5O1xuXG5mdW5jdGlvbiBjYWxsT3JBcHBseTxULCBSPihmbjogKCguLi52YWx1ZXM6IFRbXSkgPT4gUiksIGFyZ3M6IFR8VFtdKTogUiB7XG4gICAgcmV0dXJuIGlzQXJyYXkoYXJncykgPyBmbiguLi5hcmdzKSA6IGZuKGFyZ3MpO1xufVxuXG4vKipcbiAqIFVzZWQgaW4gc2V2ZXJhbCAtLSBtb3N0bHkgZGVwcmVjYXRlZCAtLSBzaXR1YXRpb25zIHdoZXJlIHdlIG5lZWQgdG8gXG4gKiBhcHBseSBhIGxpc3Qgb2YgYXJndW1lbnRzIG9yIGEgc2luZ2xlIGFyZ3VtZW50IHRvIGEgcmVzdWx0IHNlbGVjdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwT25lT3JNYW55QXJnczxULCBSPihmbjogKCguLi52YWx1ZXM6IFRbXSkgPT4gUikpOiBPcGVyYXRvckZ1bmN0aW9uPFR8VFtdLCBSPiB7XG4gICAgcmV0dXJuIG1hcChhcmdzID0+IGNhbGxPckFwcGx5KGZuLCBhcmdzKSlcbn0iLCAiLyogQHByZXR0aWVyICovXG5pbXBvcnQgeyBTY2hlZHVsZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgYmluZENhbGxiYWNrSW50ZXJuYWxzIH0gZnJvbSAnLi9iaW5kQ2FsbGJhY2tJbnRlcm5hbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYmluZENhbGxiYWNrKFxuICBjYWxsYmFja0Z1bmM6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCxcbiAgcmVzdWx0U2VsZWN0b3I6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55LFxuICBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlXG4pOiAoLi4uYXJnczogYW55W10pID0+IE9ic2VydmFibGU8YW55PjtcblxuLy8gYXJncyBpcyB0aGUgYXJndW1lbnRzIGFycmF5IGFuZCB3ZSBwdXNoIHRoZSBjYWxsYmFjayBvbiB0aGUgcmVzdCB0dXBsZSBzaW5jZSB0aGUgcmVzdCBwYXJhbWV0ZXIgbXVzdCBiZSBsYXN0IChvbmx5IGl0ZW0pIGluIGEgcGFyYW1ldGVyIGxpc3RcbmV4cG9ydCBmdW5jdGlvbiBiaW5kQ2FsbGJhY2s8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgUiBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4oXG4gIGNhbGxiYWNrRnVuYzogKC4uLmFyZ3M6IFsuLi5BLCAoLi4ucmVzOiBSKSA9PiB2b2lkXSkgPT4gdm9pZCxcbiAgc2NoZWR1bGVyTGlrZT86IFNjaGVkdWxlckxpa2Vcbik6ICguLi5hcmc6IEEpID0+IE9ic2VydmFibGU8UiBleHRlbmRzIFtdID8gdm9pZCA6IFIgZXh0ZW5kcyBbYW55XSA/IFJbMF0gOiBSPjtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIGNhbGxiYWNrIEFQSSB0byBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5HaXZlIGl0IGEgZnVuY3Rpb24gYGZgIG9mIHR5cGUgYGYoeCwgY2FsbGJhY2spYCBhbmRcbiAqIGl0IHdpbGwgcmV0dXJuIGEgZnVuY3Rpb24gYGdgIHRoYXQgd2hlbiBjYWxsZWQgYXMgYGcoeClgIHdpbGwgb3V0cHV0IGFuXG4gKiBPYnNlcnZhYmxlLjwvc3Bhbj5cbiAqXG4gKiBgYmluZENhbGxiYWNrYCBpcyBub3QgYW4gb3BlcmF0b3IgYmVjYXVzZSBpdHMgaW5wdXQgYW5kIG91dHB1dCBhcmUgbm90XG4gKiBPYnNlcnZhYmxlcy4gVGhlIGlucHV0IGlzIGEgZnVuY3Rpb24gYGZ1bmNgIHdpdGggc29tZSBwYXJhbWV0ZXJzLiBUaGVcbiAqIGxhc3QgcGFyYW1ldGVyIG11c3QgYmUgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGBmdW5jYCBjYWxscyB3aGVuIGl0IGlzXG4gKiBkb25lLlxuICpcbiAqIFRoZSBvdXRwdXQgb2YgYGJpbmRDYWxsYmFja2AgaXMgYSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBzYW1lIHBhcmFtZXRlcnNcbiAqIGFzIGBmdW5jYCwgZXhjZXB0IHRoZSBsYXN0IG9uZSAodGhlIGNhbGxiYWNrKS4gV2hlbiB0aGUgb3V0cHV0IGZ1bmN0aW9uXG4gKiBpcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgaXQgd2lsbCByZXR1cm4gYW4gT2JzZXJ2YWJsZS4gSWYgZnVuY3Rpb24gYGZ1bmNgXG4gKiBjYWxscyBpdHMgY2FsbGJhY2sgd2l0aCBvbmUgYXJndW1lbnQsIHRoZSBPYnNlcnZhYmxlIHdpbGwgZW1pdCB0aGF0IHZhbHVlLlxuICogSWYgb24gdGhlIG90aGVyIGhhbmQgdGhlIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIG11bHRpcGxlIHZhbHVlcyB0aGUgcmVzdWx0aW5nXG4gKiBPYnNlcnZhYmxlIHdpbGwgZW1pdCBhbiBhcnJheSB3aXRoIHNhaWQgdmFsdWVzIGFzIGFyZ3VtZW50cy5cbiAqXG4gKiBJdCBpcyAqKnZlcnkgaW1wb3J0YW50KiogdG8gcmVtZW1iZXIgdGhhdCBpbnB1dCBmdW5jdGlvbiBgZnVuY2AgaXMgbm90IGNhbGxlZFxuICogd2hlbiB0aGUgb3V0cHV0IGZ1bmN0aW9uIGlzLCBidXQgcmF0aGVyIHdoZW4gdGhlIE9ic2VydmFibGUgcmV0dXJuZWQgYnkgdGhlIG91dHB1dFxuICogZnVuY3Rpb24gaXMgc3Vic2NyaWJlZC4gVGhpcyBtZWFucyBpZiBgZnVuY2AgbWFrZXMgYW4gQUpBWCByZXF1ZXN0LCB0aGF0IHJlcXVlc3RcbiAqIHdpbGwgYmUgbWFkZSBldmVyeSB0aW1lIHNvbWVvbmUgc3Vic2NyaWJlcyB0byB0aGUgcmVzdWx0aW5nIE9ic2VydmFibGUsIGJ1dCBub3QgYmVmb3JlLlxuICpcbiAqIFRoZSBsYXN0IG9wdGlvbmFsIHBhcmFtZXRlciAtIGBzY2hlZHVsZXJgIC0gY2FuIGJlIHVzZWQgdG8gY29udHJvbCB3aGVuIHRoZSBjYWxsXG4gKiB0byBgZnVuY2AgaGFwcGVucyBhZnRlciBzb21lb25lIHN1YnNjcmliZXMgdG8gT2JzZXJ2YWJsZSwgYXMgd2VsbCBhcyB3aGVuIHJlc3VsdHNcbiAqIHBhc3NlZCB0byBjYWxsYmFjayB3aWxsIGJlIGVtaXR0ZWQuIEJ5IGRlZmF1bHQsIHRoZSBzdWJzY3JpcHRpb24gdG8gYW4gT2JzZXJ2YWJsZSBjYWxscyBgZnVuY2BcbiAqIHN5bmNocm9ub3VzbHksIGJ1dCB1c2luZyB7QGxpbmsgYXN5bmNTY2hlZHVsZXJ9IGFzIHRoZSBsYXN0IHBhcmFtZXRlciB3aWxsIGRlZmVyIHRoZSBjYWxsIHRvIGBmdW5jYCxcbiAqIGp1c3QgbGlrZSB3cmFwcGluZyB0aGUgY2FsbCBpbiBgc2V0VGltZW91dGAgd2l0aCBhIHRpbWVvdXQgb2YgYDBgIHdvdWxkLiBJZiB5b3Ugd2VyZSB0byB1c2UgdGhlIGFzeW5jIFNjaGVkdWxlclxuICogYW5kIGNhbGwgYHN1YnNjcmliZWAgb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlLCBhbGwgZnVuY3Rpb24gY2FsbHMgdGhhdCBhcmUgY3VycmVudGx5IGV4ZWN1dGluZ1xuICogd2lsbCBlbmQgYmVmb3JlIGBmdW5jYCBpcyBpbnZva2VkLlxuICpcbiAqIEJ5IGRlZmF1bHQsIHJlc3VsdHMgcGFzc2VkIHRvIHRoZSBjYWxsYmFjayBhcmUgZW1pdHRlZCBpbW1lZGlhdGVseSBhZnRlciBgZnVuY2AgaW52b2tlcyB0aGUgY2FsbGJhY2suXG4gKiBJbiBwYXJ0aWN1bGFyLCBpZiB0aGUgY2FsbGJhY2sgaXMgY2FsbGVkIHN5bmNocm9ub3VzbHksIHRoZW4gdGhlIHN1YnNjcmlwdGlvbiBvZiB0aGUgcmVzdWx0aW5nIE9ic2VydmFibGVcbiAqIHdpbGwgY2FsbCB0aGUgYG5leHRgIGZ1bmN0aW9uIHN5bmNocm9ub3VzbHkgYXMgd2VsbC4gIElmIHlvdSB3YW50IHRvIGRlZmVyIHRoYXQgY2FsbCxcbiAqIHlvdSBtYXkgdXNlIHtAbGluayBhc3luY1NjaGVkdWxlcn0ganVzdCBhcyBiZWZvcmUuICBUaGlzIG1lYW5zIHRoYXQgYnkgdXNpbmcgYFNjaGVkdWxlci5hc3luY2AgeW91IGNhblxuICogZW5zdXJlIHRoYXQgYGZ1bmNgIGFsd2F5cyBjYWxscyBpdHMgY2FsbGJhY2sgYXN5bmNocm9ub3VzbHksIHRodXMgYXZvaWRpbmcgdGVycmlmeWluZyBaYWxnby5cbiAqXG4gKiBOb3RlIHRoYXQgdGhlIE9ic2VydmFibGUgY3JlYXRlZCBieSB0aGUgb3V0cHV0IGZ1bmN0aW9uIHdpbGwgYWx3YXlzIGVtaXQgYSBzaW5nbGUgdmFsdWVcbiAqIGFuZCB0aGVuIGNvbXBsZXRlIGltbWVkaWF0ZWx5LiBJZiBgZnVuY2AgY2FsbHMgdGhlIGNhbGxiYWNrIG11bHRpcGxlIHRpbWVzLCB2YWx1ZXMgZnJvbSBzdWJzZXF1ZW50XG4gKiBjYWxscyB3aWxsIG5vdCBhcHBlYXIgaW4gdGhlIHN0cmVhbS4gSWYgeW91IG5lZWQgdG8gbGlzdGVuIGZvciBtdWx0aXBsZSBjYWxscyxcbiAqICB5b3UgcHJvYmFibHkgd2FudCB0byB1c2Uge0BsaW5rIGZyb21FdmVudH0gb3Ige0BsaW5rIGZyb21FdmVudFBhdHRlcm59IGluc3RlYWQuXG4gKlxuICogSWYgYGZ1bmNgIGRlcGVuZHMgb24gc29tZSBjb250ZXh0IChgdGhpc2AgcHJvcGVydHkpIGFuZCBpcyBub3QgYWxyZWFkeSBib3VuZCwgdGhlIGNvbnRleHQgb2YgYGZ1bmNgXG4gKiB3aWxsIGJlIHRoZSBjb250ZXh0IHRoYXQgdGhlIG91dHB1dCBmdW5jdGlvbiBoYXMgYXQgY2FsbCB0aW1lLiBJbiBwYXJ0aWN1bGFyLCBpZiBgZnVuY2BcbiAqIGlzIGNhbGxlZCBhcyBhIG1ldGhvZCBvZiBzb21lIG9iamVjdCBhbmQgaWYgYGZ1bmNgIGlzIG5vdCBhbHJlYWR5IGJvdW5kLCBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgY29udGV4dFxuICogaXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgY29udGV4dCBvZiB0aGUgb3V0cHV0IGZ1bmN0aW9uIGlzIHNldCB0byB0aGF0IG9iamVjdCBhcyB3ZWxsLlxuICpcbiAqIElmIHRoZSBpbnB1dCBmdW5jdGlvbiBjYWxscyBpdHMgY2FsbGJhY2sgaW4gdGhlIFwibm9kZSBzdHlsZVwiIChpLmUuIGZpcnN0IGFyZ3VtZW50IHRvIGNhbGxiYWNrIGlzXG4gKiBvcHRpb25hbCBlcnJvciBwYXJhbWV0ZXIgc2lnbmFsaW5nIHdoZXRoZXIgdGhlIGNhbGwgZmFpbGVkIG9yIG5vdCksIHtAbGluayBiaW5kTm9kZUNhbGxiYWNrfVxuICogcHJvdmlkZXMgY29udmVuaWVudCBlcnJvciBoYW5kbGluZyBhbmQgcHJvYmFibHkgaXMgYSBiZXR0ZXIgY2hvaWNlLlxuICogYGJpbmRDYWxsYmFja2Agd2lsbCB0cmVhdCBzdWNoIGZ1bmN0aW9ucyB0aGUgc2FtZSBhcyBhbnkgb3RoZXIgYW5kIGVycm9yIHBhcmFtZXRlcnNcbiAqICh3aGV0aGVyIHBhc3NlZCBvciBub3QpIHdpbGwgYWx3YXlzIGJlIGludGVycHJldGVkIGFzIHJlZ3VsYXIgY2FsbGJhY2sgYXJndW1lbnQuXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBDb252ZXJ0IGpRdWVyeSdzIGdldEpTT04gdG8gYW4gT2JzZXJ2YWJsZSBBUElcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgYmluZENhbGxiYWNrIH0gZnJvbSAncnhqcyc7XG4gKiBpbXBvcnQgKiBhcyBqUXVlcnkgZnJvbSAnanF1ZXJ5JztcbiAqXG4gKiAvLyBTdXBwb3NlIHdlIGhhdmUgalF1ZXJ5LmdldEpTT04oJy9teS91cmwnLCBjYWxsYmFjaylcbiAqIGNvbnN0IGdldEpTT05Bc09ic2VydmFibGUgPSBiaW5kQ2FsbGJhY2soalF1ZXJ5LmdldEpTT04pO1xuICogY29uc3QgcmVzdWx0ID0gZ2V0SlNPTkFzT2JzZXJ2YWJsZSgnL215L3VybCcpO1xuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpLCBlID0+IGNvbnNvbGUuZXJyb3IoZSkpO1xuICogYGBgXG4gKlxuICogUmVjZWl2ZSBhbiBhcnJheSBvZiBhcmd1bWVudHMgcGFzc2VkIHRvIGEgY2FsbGJhY2tcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgYmluZENhbGxiYWNrIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgc29tZUZ1bmN0aW9uID0gKG4sIHMsIGNiKSA9PiB7XG4gKiAgIGNiKG4sIHMsIHsgc29tZVByb3BlcnR5OiAnc29tZVZhbHVlJyB9KTtcbiAqIH07XG4gKlxuICogY29uc3QgYm91bmRTb21lRnVuY3Rpb24gPSBiaW5kQ2FsbGJhY2soc29tZUZ1bmN0aW9uKTtcbiAqIGJvdW5kU29tZUZ1bmN0aW9uKDUsICdzb21lIHN0cmluZycpLnN1YnNjcmliZSgodmFsdWVzKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKHZhbHVlcyk7IC8vIFs1LCAnc29tZSBzdHJpbmcnLCB7c29tZVByb3BlcnR5OiAnc29tZVZhbHVlJ31dXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIENvbXBhcmUgYmVoYXZpb3VyIHdpdGggYW5kIHdpdGhvdXQgYGFzeW5jU2NoZWR1bGVyYFxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBiaW5kQ2FsbGJhY2ssIGFzeW5jU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG4gKlxuICogZnVuY3Rpb24gaUNhbGxNeUNhbGxiYWNrU3luY2hyb25vdXNseShjYikge1xuICogICBjYigpO1xuICogfVxuICpcbiAqIGNvbnN0IGJvdW5kU3luY0ZuID0gYmluZENhbGxiYWNrKGlDYWxsTXlDYWxsYmFja1N5bmNocm9ub3VzbHkpO1xuICogY29uc3QgYm91bmRBc3luY0ZuID0gYmluZENhbGxiYWNrKGlDYWxsTXlDYWxsYmFja1N5bmNocm9ub3VzbHksIG51bGwsIGFzeW5jU2NoZWR1bGVyKTtcbiAqXG4gKiBib3VuZFN5bmNGbigpLnN1YnNjcmliZSgoKSA9PiBjb25zb2xlLmxvZygnSSB3YXMgc3luYyEnKSk7XG4gKiBib3VuZEFzeW5jRm4oKS5zdWJzY3JpYmUoKCkgPT4gY29uc29sZS5sb2coJ0kgd2FzIGFzeW5jIScpKTtcbiAqIGNvbnNvbGUubG9nKCdUaGlzIGhhcHBlbmVkLi4uJyk7XG4gKlxuICogLy8gTG9nczpcbiAqIC8vIEkgd2FzIHN5bmMhXG4gKiAvLyBUaGlzIGhhcHBlbmVkLi4uXG4gKiAvLyBJIHdhcyBhc3luYyFcbiAqIGBgYFxuICpcbiAqIFVzZSBgYmluZENhbGxiYWNrYCBvbiBhbiBvYmplY3QgbWV0aG9kXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGJpbmRDYWxsYmFjayB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGJvdW5kTWV0aG9kID0gYmluZENhbGxiYWNrKHNvbWVPYmplY3QubWV0aG9kV2l0aENhbGxiYWNrKTtcbiAqIGJvdW5kTWV0aG9kXG4gKiAgIC5jYWxsKHNvbWVPYmplY3QpIC8vIG1ha2Ugc3VyZSBtZXRob2RXaXRoQ2FsbGJhY2sgaGFzIGFjY2VzcyB0byBzb21lT2JqZWN0XG4gKiAgIC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBiaW5kTm9kZUNhbGxiYWNrfVxuICogQHNlZSB7QGxpbmsgZnJvbX1cbiAqXG4gKiBAcGFyYW0gY2FsbGJhY2tGdW5jIEEgZnVuY3Rpb24gd2l0aCBhIGNhbGxiYWNrIGFzIHRoZSBsYXN0IHBhcmFtZXRlci5cbiAqIEBwYXJhbSByZXN1bHRTZWxlY3RvciBBIG1hcHBpbmcgZnVuY3Rpb24gdXNlZCB0byB0cmFuc2Zvcm0gY2FsbGJhY2sgZXZlbnRzLlxuICogQHBhcmFtIHNjaGVkdWxlciBUaGUgc2NoZWR1bGVyIG9uIHdoaWNoIHRvIHNjaGVkdWxlIHRoZSBjYWxsYmFja3MuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgT2JzZXJ2YWJsZSB0aGF0IGRlbGl2ZXJzIHRoZSBzYW1lXG4gKiB2YWx1ZXMgdGhlIGNhbGxiYWNrIHdvdWxkIGRlbGl2ZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiaW5kQ2FsbGJhY2soXG4gIGNhbGxiYWNrRnVuYzogKC4uLmFyZ3M6IFsuLi5hbnlbXSwgKC4uLnJlczogYW55KSA9PiB2b2lkXSkgPT4gdm9pZCxcbiAgcmVzdWx0U2VsZWN0b3I/OiAoKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHwgU2NoZWR1bGVyTGlrZSxcbiAgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZVxuKTogKC4uLmFyZ3M6IGFueVtdKSA9PiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgcmV0dXJuIGJpbmRDYWxsYmFja0ludGVybmFscyhmYWxzZSwgY2FsbGJhY2tGdW5jLCByZXN1bHRTZWxlY3Rvciwgc2NoZWR1bGVyKTtcbn1cbiIsICIvKiBAcHJldHRpZXIgKi9cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IFNjaGVkdWxlckxpa2UgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBiaW5kQ2FsbGJhY2tJbnRlcm5hbHMgfSBmcm9tICcuL2JpbmRDYWxsYmFja0ludGVybmFscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBiaW5kTm9kZUNhbGxiYWNrKFxuICBjYWxsYmFja0Z1bmM6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCxcbiAgcmVzdWx0U2VsZWN0b3I6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55LFxuICBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlXG4pOiAoLi4uYXJnczogYW55W10pID0+IE9ic2VydmFibGU8YW55PjtcblxuLy8gYXJncyBpcyB0aGUgYXJndW1lbnRzIGFycmF5IGFuZCB3ZSBwdXNoIHRoZSBjYWxsYmFjayBvbiB0aGUgcmVzdCB0dXBsZSBzaW5jZSB0aGUgcmVzdCBwYXJhbWV0ZXIgbXVzdCBiZSBsYXN0IChvbmx5IGl0ZW0pIGluIGEgcGFyYW1ldGVyIGxpc3RcbmV4cG9ydCBmdW5jdGlvbiBiaW5kTm9kZUNhbGxiYWNrPEEgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10sIFIgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+KFxuICBjYWxsYmFja0Z1bmM6ICguLi5hcmdzOiBbLi4uQSwgKGVycjogYW55LCAuLi5yZXM6IFIpID0+IHZvaWRdKSA9PiB2b2lkLFxuICBzY2hlZHVsZXJMaWtlPzogU2NoZWR1bGVyTGlrZVxuKTogKC4uLmFyZzogQSkgPT4gT2JzZXJ2YWJsZTxSIGV4dGVuZHMgW10gPyB2b2lkIDogUiBleHRlbmRzIFthbnldID8gUlswXSA6IFI+O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgTm9kZS5qcy1zdHlsZSBjYWxsYmFjayBBUEkgdG8gYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW5cbiAqIE9ic2VydmFibGUuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkl0J3MganVzdCBsaWtlIHtAbGluayBiaW5kQ2FsbGJhY2t9LCBidXQgdGhlXG4gKiBjYWxsYmFjayBpcyBleHBlY3RlZCB0byBiZSBvZiB0eXBlIGBjYWxsYmFjayhlcnJvciwgcmVzdWx0KWAuPC9zcGFuPlxuICpcbiAqIGBiaW5kTm9kZUNhbGxiYWNrYCBpcyBub3QgYW4gb3BlcmF0b3IgYmVjYXVzZSBpdHMgaW5wdXQgYW5kIG91dHB1dCBhcmUgbm90XG4gKiBPYnNlcnZhYmxlcy4gVGhlIGlucHV0IGlzIGEgZnVuY3Rpb24gYGZ1bmNgIHdpdGggc29tZSBwYXJhbWV0ZXJzLCBidXQgdGhlXG4gKiBsYXN0IHBhcmFtZXRlciBtdXN0IGJlIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBgZnVuY2AgY2FsbHMgd2hlbiBpdCBpc1xuICogZG9uZS4gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIGZvbGxvdyBOb2RlLmpzIGNvbnZlbnRpb25zLFxuICogd2hlcmUgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBjYWxsYmFjayBpcyBhbiBlcnJvciBvYmplY3QsIHNpZ25hbGluZ1xuICogd2hldGhlciBjYWxsIHdhcyBzdWNjZXNzZnVsLiBJZiB0aGF0IG9iamVjdCBpcyBwYXNzZWQgdG8gY2FsbGJhY2ssIGl0IG1lYW5zXG4gKiBzb21ldGhpbmcgd2VudCB3cm9uZy5cbiAqXG4gKiBUaGUgb3V0cHV0IG9mIGBiaW5kTm9kZUNhbGxiYWNrYCBpcyBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdGhlIHNhbWVcbiAqIHBhcmFtZXRlcnMgYXMgYGZ1bmNgLCBleGNlcHQgdGhlIGxhc3Qgb25lICh0aGUgY2FsbGJhY2spLiBXaGVuIHRoZSBvdXRwdXRcbiAqIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIGFyZ3VtZW50cywgaXQgd2lsbCByZXR1cm4gYW4gT2JzZXJ2YWJsZS5cbiAqIElmIGBmdW5jYCBjYWxscyBpdHMgY2FsbGJhY2sgd2l0aCBlcnJvciBwYXJhbWV0ZXIgcHJlc2VudCwgT2JzZXJ2YWJsZSB3aWxsXG4gKiBlcnJvciB3aXRoIHRoYXQgdmFsdWUgYXMgd2VsbC4gSWYgZXJyb3IgcGFyYW1ldGVyIGlzIG5vdCBwYXNzZWQsIE9ic2VydmFibGUgd2lsbCBlbWl0XG4gKiBzZWNvbmQgcGFyYW1ldGVyLiBJZiB0aGVyZSBhcmUgbW9yZSBwYXJhbWV0ZXJzICh0aGlyZCBhbmQgc28gb24pLFxuICogT2JzZXJ2YWJsZSB3aWxsIGVtaXQgYW4gYXJyYXkgd2l0aCBhbGwgYXJndW1lbnRzLCBleGNlcHQgZmlyc3QgZXJyb3IgYXJndW1lbnQuXG4gKlxuICogTm90ZSB0aGF0IGBmdW5jYCB3aWxsIG5vdCBiZSBjYWxsZWQgYXQgdGhlIHNhbWUgdGltZSBvdXRwdXQgZnVuY3Rpb24gaXMsXG4gKiBidXQgcmF0aGVyIHdoZW5ldmVyIHJlc3VsdGluZyBPYnNlcnZhYmxlIGlzIHN1YnNjcmliZWQuIEJ5IGRlZmF1bHQgY2FsbCB0b1xuICogYGZ1bmNgIHdpbGwgaGFwcGVuIHN5bmNocm9ub3VzbHkgYWZ0ZXIgc3Vic2NyaXB0aW9uLCBidXQgdGhhdCBjYW4gYmUgY2hhbmdlZFxuICogd2l0aCBwcm9wZXIgYHNjaGVkdWxlcmAgcHJvdmlkZWQgYXMgb3B0aW9uYWwgdGhpcmQgcGFyYW1ldGVyLiB7QGxpbmsgU2NoZWR1bGVyTGlrZX1cbiAqIGNhbiBhbHNvIGNvbnRyb2wgd2hlbiB2YWx1ZXMgZnJvbSBjYWxsYmFjayB3aWxsIGJlIGVtaXR0ZWQgYnkgT2JzZXJ2YWJsZS5cbiAqIFRvIGZpbmQgb3V0IG1vcmUsIGNoZWNrIG91dCBkb2N1bWVudGF0aW9uIGZvciB7QGxpbmsgYmluZENhbGxiYWNrfSwgd2hlcmVcbiAqIHtAbGluayBTY2hlZHVsZXJMaWtlfSB3b3JrcyBleGFjdGx5IHRoZSBzYW1lLlxuICpcbiAqIEFzIGluIHtAbGluayBiaW5kQ2FsbGJhY2t9LCBjb250ZXh0IChgdGhpc2AgcHJvcGVydHkpIG9mIGlucHV0IGZ1bmN0aW9uIHdpbGwgYmUgc2V0IHRvIGNvbnRleHRcbiAqIG9mIHJldHVybmVkIGZ1bmN0aW9uLCB3aGVuIGl0IGlzIGNhbGxlZC5cbiAqXG4gKiBBZnRlciBPYnNlcnZhYmxlIGVtaXRzIHZhbHVlLCBpdCB3aWxsIGNvbXBsZXRlIGltbWVkaWF0ZWx5LiBUaGlzIG1lYW5zXG4gKiBldmVuIGlmIGBmdW5jYCBjYWxscyBjYWxsYmFjayBhZ2FpbiwgdmFsdWVzIGZyb20gc2Vjb25kIGFuZCBjb25zZWN1dGl2ZVxuICogY2FsbHMgd2lsbCBuZXZlciBhcHBlYXIgb24gdGhlIHN0cmVhbS4gSWYgeW91IG5lZWQgdG8gaGFuZGxlIGZ1bmN0aW9uc1xuICogdGhhdCBjYWxsIGNhbGxiYWNrcyBtdWx0aXBsZSB0aW1lcywgY2hlY2sgb3V0IHtAbGluayBmcm9tRXZlbnR9IG9yXG4gKiB7QGxpbmsgZnJvbUV2ZW50UGF0dGVybn0gaW5zdGVhZC5cbiAqXG4gKiBOb3RlIHRoYXQgYGJpbmROb2RlQ2FsbGJhY2tgIGNhbiBiZSB1c2VkIGluIG5vbi1Ob2RlLmpzIGVudmlyb25tZW50cyBhcyB3ZWxsLlxuICogXCJOb2RlLmpzLXN0eWxlXCIgY2FsbGJhY2tzIGFyZSBqdXN0IGEgY29udmVudGlvbiwgc28gaWYgeW91IHdyaXRlIGZvclxuICogYnJvd3NlcnMgb3IgYW55IG90aGVyIGVudmlyb25tZW50IGFuZCBBUEkgeW91IHVzZSBpbXBsZW1lbnRzIHRoYXQgY2FsbGJhY2sgc3R5bGUsXG4gKiBgYmluZE5vZGVDYWxsYmFja2AgY2FuIGJlIHNhZmVseSB1c2VkIG9uIHRoYXQgQVBJIGZ1bmN0aW9ucyBhcyB3ZWxsLlxuICpcbiAqIFJlbWVtYmVyIHRoYXQgRXJyb3Igb2JqZWN0IHBhc3NlZCB0byBjYWxsYmFjayBkb2VzIG5vdCBoYXZlIHRvIGJlIGFuIGluc3RhbmNlXG4gKiBvZiBKYXZhU2NyaXB0IGJ1aWx0LWluIGBFcnJvcmAgb2JqZWN0LiBJbiBmYWN0LCBpdCBkb2VzIG5vdCBldmVuIGhhdmUgdG8gYW4gb2JqZWN0LlxuICogRXJyb3IgcGFyYW1ldGVyIG9mIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIGludGVycHJldGVkIGFzIFwicHJlc2VudFwiLCB3aGVuIHZhbHVlXG4gKiBvZiB0aGF0IHBhcmFtZXRlciBpcyB0cnV0aHkuIEl0IGNvdWxkIGJlLCBmb3IgZXhhbXBsZSwgbm9uLXplcm8gbnVtYmVyLCBub24tZW1wdHlcbiAqIHN0cmluZyBvciBib29sZWFuIGB0cnVlYC4gSW4gYWxsIG9mIHRoZXNlIGNhc2VzIHJlc3VsdGluZyBPYnNlcnZhYmxlIHdvdWxkIGVycm9yXG4gKiB3aXRoIHRoYXQgdmFsdWUuIFRoaXMgbWVhbnMgdXN1YWxseSByZWd1bGFyIHN0eWxlIGNhbGxiYWNrcyB3aWxsIGZhaWwgdmVyeSBvZnRlbiB3aGVuXG4gKiBgYmluZE5vZGVDYWxsYmFja2AgaXMgdXNlZC4gSWYgeW91ciBPYnNlcnZhYmxlIGVycm9ycyBtdWNoIG1vcmUgb2Z0ZW4gdGhlbiB5b3VcbiAqIHdvdWxkIGV4cGVjdCwgY2hlY2sgaWYgY2FsbGJhY2sgcmVhbGx5IGlzIGNhbGxlZCBpbiBOb2RlLmpzLXN0eWxlIGFuZCwgaWYgbm90LFxuICogc3dpdGNoIHRvIHtAbGluayBiaW5kQ2FsbGJhY2t9IGluc3RlYWQuXG4gKlxuICogTm90ZSB0aGF0IGV2ZW4gaWYgZXJyb3IgcGFyYW1ldGVyIGlzIHRlY2huaWNhbGx5IHByZXNlbnQgaW4gY2FsbGJhY2ssIGJ1dCBpdHMgdmFsdWVcbiAqIGlzIGZhbHN5LCBpdCBzdGlsbCB3b24ndCBhcHBlYXIgaW4gYXJyYXkgZW1pdHRlZCBieSBPYnNlcnZhYmxlLlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogIFJlYWQgYSBmaWxlIGZyb20gdGhlIGZpbGVzeXN0ZW0gYW5kIGdldCB0aGUgZGF0YSBhcyBhbiBPYnNlcnZhYmxlXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbiAqIGNvbnN0IHJlYWRGaWxlQXNPYnNlcnZhYmxlID0gYmluZE5vZGVDYWxsYmFjayhmcy5yZWFkRmlsZSk7XG4gKiBjb25zdCByZXN1bHQgPSByZWFkRmlsZUFzT2JzZXJ2YWJsZSgnLi9yb2FkTmFtZXMudHh0JywgJ3V0ZjgnKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSwgZSA9PiBjb25zb2xlLmVycm9yKGUpKTtcbiAqIGBgYFxuICpcbiAqIFVzZSBvbiBmdW5jdGlvbiBjYWxsaW5nIGNhbGxiYWNrIHdpdGggbXVsdGlwbGUgYXJndW1lbnRzXG4gKlxuICogYGBgdHNcbiAqIHNvbWVGdW5jdGlvbigoZXJyLCBhLCBiKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKGVycik7IC8vIG51bGxcbiAqICAgY29uc29sZS5sb2coYSk7IC8vIDVcbiAqICAgY29uc29sZS5sb2coYik7IC8vIFwic29tZSBzdHJpbmdcIlxuICogfSk7XG4gKiBjb25zdCBib3VuZFNvbWVGdW5jdGlvbiA9IGJpbmROb2RlQ2FsbGJhY2soc29tZUZ1bmN0aW9uKTtcbiAqIGJvdW5kU29tZUZ1bmN0aW9uKClcbiAqIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICogICBjb25zb2xlLmxvZyh2YWx1ZSk7IC8vIFs1LCBcInNvbWUgc3RyaW5nXCJdXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIFVzZSBvbiBmdW5jdGlvbiBjYWxsaW5nIGNhbGxiYWNrIGluIHJlZ3VsYXIgc3R5bGVcbiAqXG4gKiBgYGB0c1xuICogc29tZUZ1bmN0aW9uKGEgPT4ge1xuICogICBjb25zb2xlLmxvZyhhKTsgLy8gNVxuICogfSk7XG4gKiBjb25zdCBib3VuZFNvbWVGdW5jdGlvbiA9IGJpbmROb2RlQ2FsbGJhY2soc29tZUZ1bmN0aW9uKTtcbiAqIGJvdW5kU29tZUZ1bmN0aW9uKClcbiAqIC5zdWJzY3JpYmUoXG4gKiAgIHZhbHVlID0+IHt9ICAgICAgICAgICAgIC8vIG5ldmVyIGdldHMgY2FsbGVkXG4gKiAgIGVyciA9PiBjb25zb2xlLmxvZyhlcnIpIC8vIDVcbiAqICk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBiaW5kQ2FsbGJhY2t9XG4gKiBAc2VlIHtAbGluayBmcm9tfVxuICpcbiAqIEBwYXJhbSBjYWxsYmFja0Z1bmMgRnVuY3Rpb24gd2l0aCBhIE5vZGUuanMtc3R5bGUgY2FsbGJhY2sgYXMgdGhlIGxhc3QgcGFyYW1ldGVyLlxuICogQHBhcmFtIHJlc3VsdFNlbGVjdG9yIEEgbWFwcGluZyBmdW5jdGlvbiB1c2VkIHRvIHRyYW5zZm9ybSBjYWxsYmFjayBldmVudHMuXG4gKiBAcGFyYW0gc2NoZWR1bGVyIFRoZSBzY2hlZHVsZXIgb24gd2hpY2ggdG8gc2NoZWR1bGUgdGhlIGNhbGxiYWNrcy5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIHRoZSBPYnNlcnZhYmxlIHRoYXQgZGVsaXZlcnMgdGhlIHNhbWUgdmFsdWVzIHRoZVxuICogTm9kZS5qcyBjYWxsYmFjayB3b3VsZCBkZWxpdmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYmluZE5vZGVDYWxsYmFjayhcbiAgY2FsbGJhY2tGdW5jOiAoLi4uYXJnczogWy4uLmFueVtdLCAoZXJyOiBhbnksIC4uLnJlczogYW55KSA9PiB2b2lkXSkgPT4gdm9pZCxcbiAgcmVzdWx0U2VsZWN0b3I/OiAoKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHwgU2NoZWR1bGVyTGlrZSxcbiAgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZVxuKTogKC4uLmFyZ3M6IGFueVtdKSA9PiBPYnNlcnZhYmxlPGFueT4ge1xuICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzKHRydWUsIGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcik7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0LCBTY2hlZHVsZXJMaWtlLCBPYnNlcnZlZFZhbHVlT2YsIE9ic2VydmFibGVJbnB1dFR1cGxlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgYXJnc0FyZ0FycmF5T3JPYmplY3QgfSBmcm9tICcuLi91dGlsL2FyZ3NBcmdBcnJheU9yT2JqZWN0JztcbmltcG9ydCB7IFN1YnNjcmliZXIgfSBmcm9tICcuLi9TdWJzY3JpYmVyJztcbmltcG9ydCB7IGZyb20gfSBmcm9tICcuL2Zyb20nO1xuaW1wb3J0IHsgaWRlbnRpdHkgfSBmcm9tICcuLi91dGlsL2lkZW50aXR5JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBtYXBPbmVPck1hbnlBcmdzIH0gZnJvbSAnLi4vdXRpbC9tYXBPbmVPck1hbnlBcmdzJztcbmltcG9ydCB7IHBvcFJlc3VsdFNlbGVjdG9yLCBwb3BTY2hlZHVsZXIgfSBmcm9tICcuLi91dGlsL2FyZ3MnO1xuaW1wb3J0IHsgY3JlYXRlT2JqZWN0IH0gZnJvbSAnLi4vdXRpbC9jcmVhdGVPYmplY3QnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi4vb3BlcmF0b3JzL09wZXJhdG9yU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBBbnlDYXRjaGVyIH0gZnJvbSAnLi4vQW55Q2F0Y2hlcic7XG5pbXBvcnQgeyBleGVjdXRlU2NoZWR1bGUgfSBmcm9tICcuLi91dGlsL2V4ZWN1dGVTY2hlZHVsZSc7XG5cbi8vIGNvbWJpbmVMYXRlc3QoYW55KVxuLy8gV2UgcHV0IHRoaXMgZmlyc3QgYmVjYXVzZSB3ZSBuZWVkIHRvIGNhdGNoIGNhc2VzIHdoZXJlIHRoZSB1c2VyIGhhcyBzdXBwbGllZFxuLy8gX2V4YWN0bHkgYGFueWBfIGFzIHRoZSBhcmd1bWVudC4gU2luY2UgYGFueWAgbGl0ZXJhbGx5IG1hdGNoZXMgX2FueXRoaW5nXyxcbi8vIHdlIGRvbid0IHdhbnQgaXQgdG8gcmFuZG9tbHkgaGl0IG9uZSBvZiB0aGUgb3RoZXIgdHlwZSBzaWduYXR1cmVzIGJlbG93LFxuLy8gYXMgd2UgaGF2ZSBubyBpZGVhIGF0IGJ1aWxkLXRpbWUgd2hhdCB0eXBlIHdlIHNob3VsZCBiZSByZXR1cm5pbmcgd2hlbiBnaXZlbiBhbiBhbnkuXG5cbi8qKlxuICogWW91IGhhdmUgcGFzc2VkIGBhbnlgIGhlcmUsIHdlIGNhbid0IGZpZ3VyZSBvdXQgaWYgaXQgaXNcbiAqIGFuIGFycmF5IG9yIGFuIG9iamVjdCwgc28geW91J3JlIGdldHRpbmcgYHVua25vd25gLiBVc2UgYmV0dGVyIHR5cGVzLlxuICogQHBhcmFtIGFyZyBTb21ldGhpbmcgdHlwZWQgYXMgYGFueWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3Q8VCBleHRlbmRzIEFueUNhdGNoZXI+KGFyZzogVCk6IE9ic2VydmFibGU8dW5rbm93bj47XG5cbi8vIGNvbWJpbmVMYXRlc3QoW2EsIGIsIGNdKVxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3Qoc291cmNlczogW10pOiBPYnNlcnZhYmxlPG5ldmVyPjtcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0PEEgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+KHNvdXJjZXM6IHJlYWRvbmx5IFsuLi5PYnNlcnZhYmxlSW5wdXRUdXBsZTxBPl0pOiBPYnNlcnZhYmxlPEE+O1xuLyoqIEBkZXByZWNhdGVkIFRoZSBgc2NoZWR1bGVyYCBwYXJhbWV0ZXIgd2lsbCBiZSByZW1vdmVkIGluIHY4LiBVc2UgYHNjaGVkdWxlZGAgYW5kIGBjb21iaW5lTGF0ZXN0QWxsYC4gRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvc2NoZWR1bGVyLWFyZ3VtZW50ICovXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUxhdGVzdDxBIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdLCBSPihcbiAgc291cmNlczogcmVhZG9ubHkgWy4uLk9ic2VydmFibGVJbnB1dFR1cGxlPEE+XSxcbiAgcmVzdWx0U2VsZWN0b3I6ICguLi52YWx1ZXM6IEEpID0+IFIsXG4gIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZVxuKTogT2JzZXJ2YWJsZTxSPjtcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0PEEgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10sIFI+KFxuICBzb3VyY2VzOiByZWFkb25seSBbLi4uT2JzZXJ2YWJsZUlucHV0VHVwbGU8QT5dLFxuICByZXN1bHRTZWxlY3RvcjogKC4uLnZhbHVlczogQSkgPT4gUlxuKTogT2JzZXJ2YWJsZTxSPjtcbi8qKiBAZGVwcmVjYXRlZCBUaGUgYHNjaGVkdWxlcmAgcGFyYW1ldGVyIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVXNlIGBzY2hlZHVsZWRgIGFuZCBgY29tYmluZUxhdGVzdEFsbGAuIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL3NjaGVkdWxlci1hcmd1bWVudCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3Q8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4oXG4gIHNvdXJjZXM6IHJlYWRvbmx5IFsuLi5PYnNlcnZhYmxlSW5wdXRUdXBsZTxBPl0sXG4gIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZVxuKTogT2JzZXJ2YWJsZTxBPjtcblxuLy8gY29tYmluZUxhdGVzdChhLCBiLCBjKVxuLyoqIEBkZXByZWNhdGVkIFBhc3MgYW4gYXJyYXkgb2Ygc291cmNlcyBpbnN0ZWFkLiBUaGUgcmVzdC1wYXJhbWV0ZXJzIHNpZ25hdHVyZSB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL2FycmF5LWFyZ3VtZW50ICovXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUxhdGVzdDxBIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiguLi5zb3VyY2VzOiBbLi4uT2JzZXJ2YWJsZUlucHV0VHVwbGU8QT5dKTogT2JzZXJ2YWJsZTxBPjtcbi8qKiBAZGVwcmVjYXRlZCBUaGUgYHNjaGVkdWxlcmAgcGFyYW1ldGVyIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVXNlIGBzY2hlZHVsZWRgIGFuZCBgY29tYmluZUxhdGVzdEFsbGAuIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL3NjaGVkdWxlci1hcmd1bWVudCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3Q8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgUj4oXG4gIC4uLnNvdXJjZXNBbmRSZXN1bHRTZWxlY3RvckFuZFNjaGVkdWxlcjogWy4uLk9ic2VydmFibGVJbnB1dFR1cGxlPEE+LCAoLi4udmFsdWVzOiBBKSA9PiBSLCBTY2hlZHVsZXJMaWtlXVxuKTogT2JzZXJ2YWJsZTxSPjtcbi8qKiBAZGVwcmVjYXRlZCBQYXNzIGFuIGFycmF5IG9mIHNvdXJjZXMgaW5zdGVhZC4gVGhlIHJlc3QtcGFyYW1ldGVycyBzaWduYXR1cmUgd2lsbCBiZSByZW1vdmVkIGluIHY4LiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9hcnJheS1hcmd1bWVudCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3Q8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgUj4oXG4gIC4uLnNvdXJjZXNBbmRSZXN1bHRTZWxlY3RvcjogWy4uLk9ic2VydmFibGVJbnB1dFR1cGxlPEE+LCAoLi4udmFsdWVzOiBBKSA9PiBSXVxuKTogT2JzZXJ2YWJsZTxSPjtcbi8qKiBAZGVwcmVjYXRlZCBUaGUgYHNjaGVkdWxlcmAgcGFyYW1ldGVyIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVXNlIGBzY2hlZHVsZWRgIGFuZCBgY29tYmluZUxhdGVzdEFsbGAuIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL3NjaGVkdWxlci1hcmd1bWVudCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3Q8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4oXG4gIC4uLnNvdXJjZXNBbmRTY2hlZHVsZXI6IFsuLi5PYnNlcnZhYmxlSW5wdXRUdXBsZTxBPiwgU2NoZWR1bGVyTGlrZV1cbik6IE9ic2VydmFibGU8QT47XG5cbi8vIGNvbWJpbmVMYXRlc3Qoe2EsIGIsIGN9KVxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3Qoc291cmNlc09iamVjdDogeyBbSyBpbiBhbnldOiBuZXZlciB9KTogT2JzZXJ2YWJsZTxuZXZlcj47XG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUxhdGVzdDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZUlucHV0PGFueT4+PihcbiAgc291cmNlc09iamVjdDogVFxuKTogT2JzZXJ2YWJsZTx7IFtLIGluIGtleW9mIFRdOiBPYnNlcnZlZFZhbHVlT2Y8VFtLXT4gfT47XG5cbi8qKlxuICogQ29tYmluZXMgbXVsdGlwbGUgT2JzZXJ2YWJsZXMgdG8gY3JlYXRlIGFuIE9ic2VydmFibGUgd2hvc2UgdmFsdWVzIGFyZVxuICogY2FsY3VsYXRlZCBmcm9tIHRoZSBsYXRlc3QgdmFsdWVzIG9mIGVhY2ggb2YgaXRzIGlucHV0IE9ic2VydmFibGVzLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5XaGVuZXZlciBhbnkgaW5wdXQgT2JzZXJ2YWJsZSBlbWl0cyBhIHZhbHVlLCBpdFxuICogY29tcHV0ZXMgYSBmb3JtdWxhIHVzaW5nIHRoZSBsYXRlc3QgdmFsdWVzIGZyb20gYWxsIHRoZSBpbnB1dHMsIHRoZW4gZW1pdHNcbiAqIHRoZSBvdXRwdXQgb2YgdGhhdCBmb3JtdWxhLjwvc3Bhbj5cbiAqXG4gKiAhW10oY29tYmluZUxhdGVzdC5wbmcpXG4gKlxuICogYGNvbWJpbmVMYXRlc3RgIGNvbWJpbmVzIHRoZSB2YWx1ZXMgZnJvbSBhbGwgdGhlIE9ic2VydmFibGVzIHBhc3NlZCBpbiB0aGVcbiAqIG9ic2VydmFibGVzIGFycmF5LiBUaGlzIGlzIGRvbmUgYnkgc3Vic2NyaWJpbmcgdG8gZWFjaCBPYnNlcnZhYmxlIGluIG9yZGVyIGFuZCxcbiAqIHdoZW5ldmVyIGFueSBPYnNlcnZhYmxlIGVtaXRzLCBjb2xsZWN0aW5nIGFuIGFycmF5IG9mIHRoZSBtb3N0IHJlY2VudFxuICogdmFsdWVzIGZyb20gZWFjaCBPYnNlcnZhYmxlLiBTbyBpZiB5b3UgcGFzcyBgbmAgT2JzZXJ2YWJsZXMgdG8gdGhpcyBvcGVyYXRvcixcbiAqIHRoZSByZXR1cm5lZCBPYnNlcnZhYmxlIHdpbGwgYWx3YXlzIGVtaXQgYW4gYXJyYXkgb2YgYG5gIHZhbHVlcywgaW4gYW4gb3JkZXJcbiAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG9yZGVyIG9mIHRoZSBwYXNzZWQgT2JzZXJ2YWJsZXMgKHRoZSB2YWx1ZSBmcm9tIHRoZSBmaXJzdCBPYnNlcnZhYmxlXG4gKiB3aWxsIGJlIGF0IGluZGV4IDAgb2YgdGhlIGFycmF5IGFuZCBzbyBvbikuXG4gKlxuICogU3RhdGljIHZlcnNpb24gb2YgYGNvbWJpbmVMYXRlc3RgIGFjY2VwdHMgYW4gYXJyYXkgb2YgT2JzZXJ2YWJsZXMuIE5vdGUgdGhhdCBhbiBhcnJheSBvZlxuICogT2JzZXJ2YWJsZXMgaXMgYSBnb29kIGNob2ljZSwgaWYgeW91IGRvbid0IGtub3cgYmVmb3JlaGFuZCBob3cgbWFueSBPYnNlcnZhYmxlc1xuICogeW91IHdpbGwgY29tYmluZS4gUGFzc2luZyBhbiBlbXB0eSBhcnJheSB3aWxsIHJlc3VsdCBpbiBhbiBPYnNlcnZhYmxlIHRoYXRcbiAqIGNvbXBsZXRlcyBpbW1lZGlhdGVseS5cbiAqXG4gKiBUbyBlbnN1cmUgdGhlIG91dHB1dCBhcnJheSBhbHdheXMgaGFzIHRoZSBzYW1lIGxlbmd0aCwgYGNvbWJpbmVMYXRlc3RgIHdpbGxcbiAqIGFjdHVhbGx5IHdhaXQgZm9yIGFsbCBpbnB1dCBPYnNlcnZhYmxlcyB0byBlbWl0IGF0IGxlYXN0IG9uY2UsXG4gKiBiZWZvcmUgaXQgc3RhcnRzIGVtaXR0aW5nIHJlc3VsdHMuIFRoaXMgbWVhbnMgaWYgc29tZSBPYnNlcnZhYmxlIGVtaXRzXG4gKiB2YWx1ZXMgYmVmb3JlIG90aGVyIE9ic2VydmFibGVzIHN0YXJ0ZWQgZW1pdHRpbmcsIGFsbCB0aGVzZSB2YWx1ZXMgYnV0IHRoZSBsYXN0XG4gKiB3aWxsIGJlIGxvc3QuIE9uIHRoZSBvdGhlciBoYW5kLCBpZiBzb21lIE9ic2VydmFibGUgZG9lcyBub3QgZW1pdCBhIHZhbHVlIGJ1dFxuICogY29tcGxldGVzLCByZXN1bHRpbmcgT2JzZXJ2YWJsZSB3aWxsIGNvbXBsZXRlIGF0IHRoZSBzYW1lIG1vbWVudCB3aXRob3V0XG4gKiBlbWl0dGluZyBhbnl0aGluZywgc2luY2UgaXQgd2lsbCBub3cgYmUgaW1wb3NzaWJsZSB0byBpbmNsdWRlIGEgdmFsdWUgZnJvbSB0aGVcbiAqIGNvbXBsZXRlZCBPYnNlcnZhYmxlIGluIHRoZSByZXN1bHRpbmcgYXJyYXkuIEFsc28sIGlmIHNvbWUgaW5wdXQgT2JzZXJ2YWJsZSBkb2VzXG4gKiBub3QgZW1pdCBhbnkgdmFsdWUgYW5kIG5ldmVyIGNvbXBsZXRlcywgYGNvbWJpbmVMYXRlc3RgIHdpbGwgYWxzbyBuZXZlciBlbWl0XG4gKiBhbmQgbmV2ZXIgY29tcGxldGUsIHNpbmNlLCBhZ2FpbiwgaXQgd2lsbCB3YWl0IGZvciBhbGwgc3RyZWFtcyB0byBlbWl0IHNvbWVcbiAqIHZhbHVlLlxuICpcbiAqIElmIGF0IGxlYXN0IG9uZSBPYnNlcnZhYmxlIHdhcyBwYXNzZWQgdG8gYGNvbWJpbmVMYXRlc3RgIGFuZCBhbGwgcGFzc2VkIE9ic2VydmFibGVzXG4gKiBlbWl0dGVkIHNvbWV0aGluZywgdGhlIHJlc3VsdGluZyBPYnNlcnZhYmxlIHdpbGwgY29tcGxldGUgd2hlbiBhbGwgY29tYmluZWRcbiAqIHN0cmVhbXMgY29tcGxldGUuIFNvIGV2ZW4gaWYgc29tZSBPYnNlcnZhYmxlIGNvbXBsZXRlcywgdGhlIHJlc3VsdCBvZlxuICogYGNvbWJpbmVMYXRlc3RgIHdpbGwgc3RpbGwgZW1pdCB2YWx1ZXMgd2hlbiBvdGhlciBPYnNlcnZhYmxlcyBkby4gSW4gY2FzZVxuICogb2YgYSBjb21wbGV0ZWQgT2JzZXJ2YWJsZSwgaXRzIHZhbHVlIGZyb20gbm93IG9uIHdpbGwgYWx3YXlzIGJlIHRoZSBsYXN0XG4gKiBlbWl0dGVkIHZhbHVlLiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgYW55IE9ic2VydmFibGUgZXJyb3JzLCBgY29tYmluZUxhdGVzdGBcbiAqIHdpbGwgZXJyb3IgaW1tZWRpYXRlbHkgYXMgd2VsbCwgYW5kIGFsbCBvdGhlciBPYnNlcnZhYmxlcyB3aWxsIGJlIHVuc3Vic2NyaWJlZC5cbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIENvbWJpbmUgdHdvIHRpbWVyIE9ic2VydmFibGVzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IHRpbWVyLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgZmlyc3RUaW1lciA9IHRpbWVyKDAsIDEwMDApOyAvLyBlbWl0IDAsIDEsIDIuLi4gYWZ0ZXIgZXZlcnkgc2Vjb25kLCBzdGFydGluZyBmcm9tIG5vd1xuICogY29uc3Qgc2Vjb25kVGltZXIgPSB0aW1lcig1MDAsIDEwMDApOyAvLyBlbWl0IDAsIDEsIDIuLi4gYWZ0ZXIgZXZlcnkgc2Vjb25kLCBzdGFydGluZyAwLDVzIGZyb20gbm93XG4gKiBjb25zdCBjb21iaW5lZFRpbWVycyA9IGNvbWJpbmVMYXRlc3QoW2ZpcnN0VGltZXIsIHNlY29uZFRpbWVyXSk7XG4gKiBjb21iaW5lZFRpbWVycy5zdWJzY3JpYmUodmFsdWUgPT4gY29uc29sZS5sb2codmFsdWUpKTtcbiAqIC8vIExvZ3NcbiAqIC8vIFswLCAwXSBhZnRlciAwLjVzXG4gKiAvLyBbMSwgMF0gYWZ0ZXIgMXNcbiAqIC8vIFsxLCAxXSBhZnRlciAxLjVzXG4gKiAvLyBbMiwgMV0gYWZ0ZXIgMnNcbiAqIGBgYFxuICpcbiAqIENvbWJpbmUgYSBkaWN0aW9uYXJ5IG9mIE9ic2VydmFibGVzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBkZWxheSwgc3RhcnRXaXRoLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgb2JzZXJ2YWJsZXMgPSB7XG4gKiAgIGE6IG9mKDEpLnBpcGUoZGVsYXkoMTAwMCksIHN0YXJ0V2l0aCgwKSksXG4gKiAgIGI6IG9mKDUpLnBpcGUoZGVsYXkoNTAwMCksIHN0YXJ0V2l0aCgwKSksXG4gKiAgIGM6IG9mKDEwKS5waXBlKGRlbGF5KDEwMDAwKSwgc3RhcnRXaXRoKDApKVxuICogfTtcbiAqIGNvbnN0IGNvbWJpbmVkID0gY29tYmluZUxhdGVzdChvYnNlcnZhYmxlcyk7XG4gKiBjb21iaW5lZC5zdWJzY3JpYmUodmFsdWUgPT4gY29uc29sZS5sb2codmFsdWUpKTtcbiAqIC8vIExvZ3NcbiAqIC8vIHsgYTogMCwgYjogMCwgYzogMCB9IGltbWVkaWF0ZWx5XG4gKiAvLyB7IGE6IDEsIGI6IDAsIGM6IDAgfSBhZnRlciAxc1xuICogLy8geyBhOiAxLCBiOiA1LCBjOiAwIH0gYWZ0ZXIgNXNcbiAqIC8vIHsgYTogMSwgYjogNSwgYzogMTAgfSBhZnRlciAxMHNcbiAqIGBgYFxuICpcbiAqIENvbWJpbmUgYW4gYXJyYXkgb2YgT2JzZXJ2YWJsZXNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIGRlbGF5LCBzdGFydFdpdGgsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBvYnNlcnZhYmxlcyA9IFsxLCA1LCAxMF0ubWFwKFxuICogICBuID0+IG9mKG4pLnBpcGUoXG4gKiAgICAgZGVsYXkobiAqIDEwMDApLCAvLyBlbWl0IDAgYW5kIHRoZW4gZW1pdCBuIGFmdGVyIG4gc2Vjb25kc1xuICogICAgIHN0YXJ0V2l0aCgwKVxuICogICApXG4gKiApO1xuICogY29uc3QgY29tYmluZWQgPSBjb21iaW5lTGF0ZXN0KG9ic2VydmFibGVzKTtcbiAqIGNvbWJpbmVkLnN1YnNjcmliZSh2YWx1ZSA9PiBjb25zb2xlLmxvZyh2YWx1ZSkpO1xuICogLy8gTG9nc1xuICogLy8gWzAsIDAsIDBdIGltbWVkaWF0ZWx5XG4gKiAvLyBbMSwgMCwgMF0gYWZ0ZXIgMXNcbiAqIC8vIFsxLCA1LCAwXSBhZnRlciA1c1xuICogLy8gWzEsIDUsIDEwXSBhZnRlciAxMHNcbiAqIGBgYFxuICpcbiAqIFVzZSBtYXAgb3BlcmF0b3IgdG8gZHluYW1pY2FsbHkgY2FsY3VsYXRlIHRoZSBCb2R5LU1hc3MgSW5kZXhcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIGNvbWJpbmVMYXRlc3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHdlaWdodCA9IG9mKDcwLCA3MiwgNzYsIDc5LCA3NSk7XG4gKiBjb25zdCBoZWlnaHQgPSBvZigxLjc2LCAxLjc3LCAxLjc4KTtcbiAqIGNvbnN0IGJtaSA9IGNvbWJpbmVMYXRlc3QoW3dlaWdodCwgaGVpZ2h0XSkucGlwZShcbiAqICAgbWFwKChbdywgaF0pID0+IHcgLyAoaCAqIGgpKSxcbiAqICk7XG4gKiBibWkuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coJ0JNSSBpcyAnICsgeCkpO1xuICpcbiAqIC8vIFdpdGggb3V0cHV0IHRvIGNvbnNvbGU6XG4gKiAvLyBCTUkgaXMgMjQuMjEyMjkzMzg4NDI5NzUzXG4gKiAvLyBCTUkgaXMgMjMuOTM5NDgwOTkyMDUyMDlcbiAqIC8vIEJNSSBpcyAyMy42NzEyNTM2Mjk1OTIyMjJcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGNvbWJpbmVMYXRlc3RBbGx9XG4gKiBAc2VlIHtAbGluayBtZXJnZX1cbiAqIEBzZWUge0BsaW5rIHdpdGhMYXRlc3RGcm9tfVxuICpcbiAqIEBwYXJhbSBhcmdzIEFueSBudW1iZXIgb2YgYE9ic2VydmFibGVJbnB1dGBzIHByb3ZpZGVkIGVpdGhlciBhcyBhbiBhcnJheSBvciBhcyBhbiBvYmplY3RcbiAqIHRvIGNvbWJpbmUgd2l0aCBlYWNoIG90aGVyLiBJZiB0aGUgbGFzdCBwYXJhbWV0ZXIgaXMgdGhlIGZ1bmN0aW9uLCBpdCB3aWxsIGJlIHVzZWQgdG8gcHJvamVjdCB0aGVcbiAqIHZhbHVlcyBmcm9tIHRoZSBjb21iaW5lZCBsYXRlc3QgdmFsdWVzIGludG8gYSBuZXcgdmFsdWUgb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlLlxuICogQHJldHVybiBBbiBPYnNlcnZhYmxlIG9mIHByb2plY3RlZCB2YWx1ZXMgZnJvbSB0aGUgbW9zdCByZWNlbnQgdmFsdWVzIGZyb20gZWFjaCBgT2JzZXJ2YWJsZUlucHV0YCxcbiAqIG9yIGFuIGFycmF5IG9mIHRoZSBtb3N0IHJlY2VudCB2YWx1ZXMgZnJvbSBlYWNoIGBPYnNlcnZhYmxlSW5wdXRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUxhdGVzdDxPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PGFueT4sIFI+KC4uLmFyZ3M6IGFueVtdKTogT2JzZXJ2YWJsZTxSPiB8IE9ic2VydmFibGU8T2JzZXJ2ZWRWYWx1ZU9mPE8+W10+IHtcbiAgY29uc3Qgc2NoZWR1bGVyID0gcG9wU2NoZWR1bGVyKGFyZ3MpO1xuICBjb25zdCByZXN1bHRTZWxlY3RvciA9IHBvcFJlc3VsdFNlbGVjdG9yKGFyZ3MpO1xuXG4gIGNvbnN0IHsgYXJnczogb2JzZXJ2YWJsZXMsIGtleXMgfSA9IGFyZ3NBcmdBcnJheU9yT2JqZWN0KGFyZ3MpO1xuXG4gIGlmIChvYnNlcnZhYmxlcy5sZW5ndGggPT09IDApIHtcbiAgICAvLyBJZiBubyBvYnNlcnZhYmxlcyBhcmUgcGFzc2VkLCBvciBzb21lb25lIGhhcyBwYXNzZWQgYW4gZW1wdHkgYXJyYXlcbiAgICAvLyBvZiBvYnNlcnZhYmxlcywgb3IgZXZlbiBhbiBlbXB0eSBvYmplY3QgUE9KTywgd2UgbmVlZCB0byBqdXN0XG4gICAgLy8gY29tcGxldGUgKEVNUFRZKSwgYnV0IHdlIGhhdmUgdG8gaG9ub3IgdGhlIHNjaGVkdWxlciBwcm92aWRlZCBpZiBhbnkuXG4gICAgcmV0dXJuIGZyb20oW10sIHNjaGVkdWxlciBhcyBhbnkpO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gbmV3IE9ic2VydmFibGU8T2JzZXJ2ZWRWYWx1ZU9mPE8+W10+KFxuICAgIGNvbWJpbmVMYXRlc3RJbml0KFxuICAgICAgb2JzZXJ2YWJsZXMgYXMgT2JzZXJ2YWJsZUlucHV0PE9ic2VydmVkVmFsdWVPZjxPPj5bXSxcbiAgICAgIHNjaGVkdWxlcixcbiAgICAgIGtleXNcbiAgICAgICAgPyAvLyBBIGhhbmRsZXIgZm9yIHNjcnViYmluZyB0aGUgYXJyYXkgb2YgYXJncyBpbnRvIGEgZGljdGlvbmFyeS5cbiAgICAgICAgICAodmFsdWVzKSA9PiBjcmVhdGVPYmplY3Qoa2V5cywgdmFsdWVzKVxuICAgICAgICA6IC8vIEEgcGFzc3Rocm91Z2ggdG8ganVzdCByZXR1cm4gdGhlIGFycmF5XG4gICAgICAgICAgaWRlbnRpdHlcbiAgICApXG4gICk7XG5cbiAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yID8gKHJlc3VsdC5waXBlKG1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSBhcyBPYnNlcnZhYmxlPFI+KSA6IHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3RJbml0KFxuICBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZUlucHV0PGFueT5bXSxcbiAgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSxcbiAgdmFsdWVUcmFuc2Zvcm06ICh2YWx1ZXM6IGFueVtdKSA9PiBhbnkgPSBpZGVudGl0eVxuKSB7XG4gIHJldHVybiAoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxhbnk+KSA9PiB7XG4gICAgLy8gVGhlIG91dGVyIHN1YnNjcmlwdGlvbi4gV2UncmUgY2FwdHVyaW5nIHRoaXMgaW4gYSBmdW5jdGlvblxuICAgIC8vIGJlY2F1c2Ugd2UgbWF5IGhhdmUgdG8gc2NoZWR1bGUgaXQuXG4gICAgbWF5YmVTY2hlZHVsZShcbiAgICAgIHNjaGVkdWxlcixcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBsZW5ndGggfSA9IG9ic2VydmFibGVzO1xuICAgICAgICAvLyBBIHN0b3JlIGZvciB0aGUgdmFsdWVzIGVhY2ggb2JzZXJ2YWJsZSBoYXMgZW1pdHRlZCBzbyBmYXIuIFdlIG1hdGNoIG9ic2VydmFibGUgdG8gdmFsdWUgb24gaW5kZXguXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG5ldyBBcnJheShsZW5ndGgpO1xuICAgICAgICAvLyBUaGUgbnVtYmVyIG9mIGN1cnJlbnRseSBhY3RpdmUgc3Vic2NyaXB0aW9ucywgYXMgdGhleSBjb21wbGV0ZSwgd2UgZGVjcmVtZW50IHRoaXMgbnVtYmVyIHRvIHNlZSBpZlxuICAgICAgICAvLyB3ZSBhcmUgYWxsIGRvbmUgY29tYmluaW5nIHZhbHVlcywgc28gd2UgY2FuIGNvbXBsZXRlIHRoZSByZXN1bHQuXG4gICAgICAgIGxldCBhY3RpdmUgPSBsZW5ndGg7XG4gICAgICAgIC8vIFRoZSBudW1iZXIgb2YgaW5uZXIgc291cmNlcyB0aGF0IHN0aWxsIGhhdmVuJ3QgZW1pdHRlZCB0aGUgZmlyc3QgdmFsdWVcbiAgICAgICAgLy8gV2UgbmVlZCB0byB0cmFjayB0aGlzIGJlY2F1c2UgYWxsIHNvdXJjZXMgbmVlZCB0byBlbWl0IG9uZSB2YWx1ZSBpbiBvcmRlclxuICAgICAgICAvLyB0byBzdGFydCBlbWl0dGluZyB2YWx1ZXMuXG4gICAgICAgIGxldCByZW1haW5pbmdGaXJzdFZhbHVlcyA9IGxlbmd0aDtcbiAgICAgICAgLy8gVGhlIGxvb3AgdG8ga2ljayBvZmYgc3Vic2NyaXB0aW9uLiBXZSdyZSBrZXlpbmcgZXZlcnl0aGluZyBvbiBpbmRleCBgaWAgdG8gcmVsYXRlIHRoZSBvYnNlcnZhYmxlcyBwYXNzZWRcbiAgICAgICAgLy8gaW4gdG8gdGhlIHNsb3QgaW4gdGhlIG91dHB1dCBhcnJheSBvciB0aGUga2V5IGluIHRoZSBhcnJheSBvZiBrZXlzIGluIHRoZSBvdXRwdXQgZGljdGlvbmFyeS5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgIG1heWJlU2NoZWR1bGUoXG4gICAgICAgICAgICBzY2hlZHVsZXIsXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGZyb20ob2JzZXJ2YWJsZXNbaV0sIHNjaGVkdWxlciBhcyBhbnkpO1xuICAgICAgICAgICAgICBsZXQgaGFzRmlyc3RWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICAgICAgICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB3ZSBnZXQgYSB2YWx1ZSwgcmVjb3JkIGl0IGluIG91ciBzZXQgb2YgdmFsdWVzLlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbaV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNGaXJzdFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBvdXIgZmlyc3QgdmFsdWUsIHJlY29yZCB0aGF0LlxuICAgICAgICAgICAgICAgICAgICAgIGhhc0ZpcnN0VmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZ0ZpcnN0VmFsdWVzLS07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZW1haW5pbmdGaXJzdFZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3JlIG5vdCB3YWl0aW5nIGZvciBhbnkgbW9yZVxuICAgICAgICAgICAgICAgICAgICAgIC8vIGZpcnN0IHZhbHVlcywgc28gd2UgY2FuIGVtaXQhXG4gICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlVHJhbnNmb3JtKHZhbHVlcy5zbGljZSgpKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghLS1hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IGNvbXBsZXRlIHRoZSByZXN1bHQgaWYgd2UgaGF2ZSBubyBtb3JlIGFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgIC8vIGlubmVyIG9ic2VydmFibGVzLlxuICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdWJzY3JpYmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHN1YnNjcmliZXJcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIEEgc21hbGwgdXRpbGl0eSB0byBoYW5kbGUgdGhlIGNvdXBsZSBvZiBsb2NhdGlvbnMgd2hlcmUgd2Ugd2FudCB0byBzY2hlZHVsZSBpZiBhIHNjaGVkdWxlciB3YXMgcHJvdmlkZWQsXG4gKiBidXQgd2UgZG9uJ3QgaWYgdGhlcmUgd2FzIG5vIHNjaGVkdWxlci5cbiAqL1xuZnVuY3Rpb24gbWF5YmVTY2hlZHVsZShzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UgfCB1bmRlZmluZWQsIGV4ZWN1dGU6ICgpID0+IHZvaWQsIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uKSB7XG4gIGlmIChzY2hlZHVsZXIpIHtcbiAgICBleGVjdXRlU2NoZWR1bGUoc3Vic2NyaXB0aW9uLCBzY2hlZHVsZXIsIGV4ZWN1dGUpO1xuICB9IGVsc2Uge1xuICAgIGV4ZWN1dGUoKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4uL29ic2VydmFibGUvaW5uZXJGcm9tJztcbmltcG9ydCB7IFN1YnNjcmliZXIgfSBmcm9tICcuLi9TdWJzY3JpYmVyJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCwgU2NoZWR1bGVyTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGV4ZWN1dGVTY2hlZHVsZSB9IGZyb20gJy4uL3V0aWwvZXhlY3V0ZVNjaGVkdWxlJztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuLyoqXG4gKiBBIHByb2Nlc3MgZW1ib2R5aW5nIHRoZSBnZW5lcmFsIFwibWVyZ2VcIiBzdHJhdGVneS4gVGhpcyBpcyB1c2VkIGluXG4gKiBgbWVyZ2VNYXBgIGFuZCBgbWVyZ2VTY2FuYCBiZWNhdXNlIHRoZSBsb2dpYyBpcyBvdGhlcndpc2UgbmVhcmx5IGlkZW50aWNhbC5cbiAqIEBwYXJhbSBzb3VyY2UgVGhlIG9yaWdpbmFsIHNvdXJjZSBvYnNlcnZhYmxlXG4gKiBAcGFyYW0gc3Vic2NyaWJlciBUaGUgY29uc3VtZXIgc3Vic2NyaWJlclxuICogQHBhcmFtIHByb2plY3QgVGhlIHByb2plY3Rpb24gZnVuY3Rpb24gdG8gZ2V0IG91ciBpbm5lciBzb3VyY2VzXG4gKiBAcGFyYW0gY29uY3VycmVudCBUaGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgaW5uZXIgc3Vic2NyaXB0aW9uc1xuICogQHBhcmFtIG9uQmVmb3JlTmV4dCBBZGRpdGlvbmFsIGxvZ2ljIHRvIGFwcGx5IGJlZm9yZSBuZXh0aW5nIHRvIG91ciBjb25zdW1lclxuICogQHBhcmFtIGV4cGFuZCBJZiBgdHJ1ZWAgdGhpcyB3aWxsIHBlcmZvcm0gYW4gXCJleHBhbmRcIiBzdHJhdGVneSwgd2hpY2ggZGlmZmVycyBvbmx5XG4gKiBpbiB0aGF0IGl0IHJlY3Vyc2VzLCBhbmQgdGhlIGlubmVyIHN1YnNjcmlwdGlvbiBtdXN0IGJlIHNjaGVkdWxlLWFibGUuXG4gKiBAcGFyYW0gaW5uZXJTdWJTY2hlZHVsZXIgQSBzY2hlZHVsZXIgdG8gdXNlIHRvIHNjaGVkdWxlIGlubmVyIHN1YnNjcmlwdGlvbnMsXG4gKiB0aGlzIGlzIHRvIHN1cHBvcnQgdGhlIGV4cGFuZCBzdHJhdGVneSwgbW9zdGx5LCBhbmQgc2hvdWxkIGJlIGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlSW50ZXJuYWxzPFQsIFI+KFxuICBzb3VyY2U6IE9ic2VydmFibGU8VD4sXG4gIHN1YnNjcmliZXI6IFN1YnNjcmliZXI8Uj4sXG4gIHByb2plY3Q6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gT2JzZXJ2YWJsZUlucHV0PFI+LFxuICBjb25jdXJyZW50OiBudW1iZXIsXG4gIG9uQmVmb3JlTmV4dD86IChpbm5lclZhbHVlOiBSKSA9PiB2b2lkLFxuICBleHBhbmQ/OiBib29sZWFuLFxuICBpbm5lclN1YlNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UsXG4gIGFkZGl0aW9uYWxGaW5hbGl6ZXI/OiAoKSA9PiB2b2lkXG4pIHtcbiAgLy8gQnVmZmVyZWQgdmFsdWVzLCBpbiB0aGUgZXZlbnQgb2YgZ29pbmcgb3ZlciBvdXIgY29uY3VycmVuY3kgbGltaXRcbiAgY29uc3QgYnVmZmVyOiBUW10gPSBbXTtcbiAgLy8gVGhlIG51bWJlciBvZiBhY3RpdmUgaW5uZXIgc3Vic2NyaXB0aW9ucy5cbiAgbGV0IGFjdGl2ZSA9IDA7XG4gIC8vIEFuIGluZGV4IHRvIHBhc3MgdG8gb3VyIGFjY3VtdWxhdG9yIGZ1bmN0aW9uXG4gIGxldCBpbmRleCA9IDA7XG4gIC8vIFdoZXRoZXIgb3Igbm90IHRoZSBvdXRlciBzb3VyY2UgaGFzIGNvbXBsZXRlZC5cbiAgbGV0IGlzQ29tcGxldGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ2hlY2tzIHRvIHNlZSBpZiB3ZSBjYW4gY29tcGxldGUgb3VyIHJlc3VsdCBvciBub3QuXG4gICAqL1xuICBjb25zdCBjaGVja0NvbXBsZXRlID0gKCkgPT4ge1xuICAgIC8vIElmIHRoZSBvdXRlciBoYXMgY29tcGxldGVkLCBhbmQgbm90aGluZyBpcyBsZWZ0IGluIHRoZSBidWZmZXIsXG4gICAgLy8gYW5kIHdlIGRvbid0IGhhdmUgYW55IGFjdGl2ZSBpbm5lciBzdWJzY3JpcHRpb25zLCB0aGVuIHdlIGNhblxuICAgIC8vIEVtaXQgdGhlIHN0YXRlIGFuZCBjb21wbGV0ZS5cbiAgICBpZiAoaXNDb21wbGV0ZSAmJiAhYnVmZmVyLmxlbmd0aCAmJiAhYWN0aXZlKSB7XG4gICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgfVxuICB9O1xuXG4gIC8vIElmIHdlJ3JlIHVuZGVyIG91ciBjb25jdXJyZW5jeSBsaW1pdCwganVzdCBzdGFydCB0aGUgaW5uZXIgc3Vic2NyaXB0aW9uLCBvdGhlcndpc2UgYnVmZmVyIGFuZCB3YWl0LlxuICBjb25zdCBvdXRlck5leHQgPSAodmFsdWU6IFQpID0+IChhY3RpdmUgPCBjb25jdXJyZW50ID8gZG9Jbm5lclN1Yih2YWx1ZSkgOiBidWZmZXIucHVzaCh2YWx1ZSkpO1xuXG4gIGNvbnN0IGRvSW5uZXJTdWIgPSAodmFsdWU6IFQpID0+IHtcbiAgICAvLyBJZiB3ZSdyZSBleHBhbmRpbmcsIHdlIG5lZWQgdG8gZW1pdCB0aGUgb3V0ZXIgdmFsdWVzIGFuZCB0aGUgaW5uZXIgdmFsdWVzXG4gICAgLy8gYXMgdGhlIGlubmVycyB3aWxsIFwiYmVjb21lIG91dGVyc1wiIGluIGEgd2F5IGFzIHRoZXkgYXJlIHJlY3Vyc2l2ZWx5IGZlZFxuICAgIC8vIGJhY2sgdG8gdGhlIHByb2plY3Rpb24gbWVjaGFuaXNtLlxuICAgIGV4cGFuZCAmJiBzdWJzY3JpYmVyLm5leHQodmFsdWUgYXMgYW55KTtcblxuICAgIC8vIEluY3JlbWVudCB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBzdWJzY3JpcHRpb25zIHNvIHdlIGNhbiB0cmFjayBpdFxuICAgIC8vIGFnYWluc3Qgb3VyIGNvbmN1cnJlbmN5IGxpbWl0IGxhdGVyLlxuICAgIGFjdGl2ZSsrO1xuXG4gICAgLy8gQSBmbGFnIHVzZWQgdG8gc2hvdyB0aGF0IHRoZSBpbm5lciBvYnNlcnZhYmxlIGNvbXBsZXRlZC5cbiAgICAvLyBUaGlzIGlzIGNoZWNrZWQgZHVyaW5nIGZpbmFsaXphdGlvbiB0byBzZWUgaWYgd2Ugc2hvdWxkXG4gICAgLy8gbW92ZSB0byB0aGUgbmV4dCBpdGVtIGluIHRoZSBidWZmZXIsIGlmIHRoZXJlIGlzIG9uLlxuICAgIGxldCBpbm5lckNvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAvLyBTdGFydCBvdXIgaW5uZXIgc3Vic2NyaXB0aW9uLlxuICAgIGlubmVyRnJvbShwcm9qZWN0KHZhbHVlLCBpbmRleCsrKSkuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAoaW5uZXJWYWx1ZSkgPT4ge1xuICAgICAgICAgIC8vIGBtZXJnZVNjYW5gIGhhcyBhZGRpdGlvbmFsIGhhbmRsaW5nIGhlcmUuIEZvciBleGFtcGxlXG4gICAgICAgICAgLy8gdGFraW5nIHRoZSBpbm5lciB2YWx1ZSBhbmQgdXBkYXRpbmcgc3RhdGUuXG4gICAgICAgICAgb25CZWZvcmVOZXh0Py4oaW5uZXJWYWx1ZSk7XG5cbiAgICAgICAgICBpZiAoZXhwYW5kKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSdyZSBleHBhbmRpbmcsIHRoZW4ganVzdCByZWN1cnNlIGJhY2sgdG8gb3VyIG91dGVyXG4gICAgICAgICAgICAvLyBoYW5kbGVyLiBJdCB3aWxsIGVtaXQgdGhlIHZhbHVlIGZpcnN0IHRoaW5nLlxuICAgICAgICAgICAgb3V0ZXJOZXh0KGlubmVyVmFsdWUgYXMgYW55KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBlbWl0IHRoZSBpbm5lciB2YWx1ZS5cbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChpbm5lclZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAvLyBGbGFnIHRoYXQgd2UgaGF2ZSBjb21wbGV0ZWQsIHNvIHdlIGtub3cgdG8gY2hlY2sgdGhlIGJ1ZmZlclxuICAgICAgICAgIC8vIGR1cmluZyBmaW5hbGl6YXRpb24uXG4gICAgICAgICAgaW5uZXJDb21wbGV0ZSA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIEVycm9ycyBhcmUgcGFzc2VkIHRvIHRoZSBkZXN0aW5hdGlvbi5cbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgLy8gRHVyaW5nIGZpbmFsaXphdGlvbiwgaWYgdGhlIGlubmVyIGNvbXBsZXRlZCAoaXQgd2Fzbid0IGVycm9yZWQgb3JcbiAgICAgICAgICAvLyBjYW5jZWxsZWQpLCB0aGVuIHdlIHdhbnQgdG8gdHJ5IHRoZSBuZXh0IGl0ZW0gaW4gdGhlIGJ1ZmZlciBpZlxuICAgICAgICAgIC8vIHRoZXJlIGlzIG9uZS5cbiAgICAgICAgICBpZiAoaW5uZXJDb21wbGV0ZSkge1xuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byB3cmFwIHRoaXMgaW4gYSB0cnkvY2F0Y2ggYmVjYXVzZSBpdCBoYXBwZW5zIGR1cmluZ1xuICAgICAgICAgICAgLy8gZmluYWxpemF0aW9uLCBwb3NzaWJseSBhc3luY2hyb25vdXNseSwgYW5kIHdlIHdhbnQgdG8gcGFzc1xuICAgICAgICAgICAgLy8gYW55IGVycm9ycyB0aGF0IGhhcHBlbiAobGlrZSBpbiBhIHByb2plY3Rpb24gZnVuY3Rpb24pIHRvXG4gICAgICAgICAgICAvLyB0aGUgb3V0ZXIgU3Vic2NyaWJlci5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIC8vIElOTkVSIFNPVVJDRSBDT01QTEVURVxuICAgICAgICAgICAgICAvLyBEZWNyZW1lbnQgdGhlIGFjdGl2ZSBjb3VudCB0byBlbnN1cmUgdGhhdCB0aGUgbmV4dCB0aW1lXG4gICAgICAgICAgICAgIC8vIHdlIHRyeSB0byBjYWxsIGBkb0lubmVyU3ViYCwgdGhlIG51bWJlciBpcyBhY2N1cmF0ZS5cbiAgICAgICAgICAgICAgYWN0aXZlLS07XG4gICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgbW9yZSB2YWx1ZXMgaW4gdGhlIGJ1ZmZlciwgdHJ5IHRvIHByb2Nlc3MgdGhvc2VcbiAgICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgY2FsbCB3aWxsIGluY3JlbWVudCBgYWN0aXZlYCBhaGVhZCBvZiB0aGVcbiAgICAgICAgICAgICAgLy8gbmV4dCBjb25kaXRpb25hbCwgaWYgdGhlcmUgd2VyZSBhbnkgbW9yZSBpbm5lciBzdWJzY3JpcHRpb25zXG4gICAgICAgICAgICAgIC8vIHRvIHN0YXJ0LlxuICAgICAgICAgICAgICB3aGlsZSAoYnVmZmVyLmxlbmd0aCAmJiBhY3RpdmUgPCBjb25jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyZWRWYWx1ZSA9IGJ1ZmZlci5zaGlmdCgpITtcbiAgICAgICAgICAgICAgICAvLyBQYXJ0aWN1bGFybHkgZm9yIGBleHBhbmRgLCB3ZSBuZWVkIHRvIGNoZWNrIHRvIHNlZSBpZiBhIHNjaGVkdWxlciB3YXMgcHJvdmlkZWRcbiAgICAgICAgICAgICAgICAvLyBmb3Igd2hlbiB3ZSB3YW50IHRvIHN0YXJ0IG91ciBpbm5lciBzdWJzY3JpcHRpb24uIE90aGVyd2lzZSwgd2UganVzdCBzdGFydFxuICAgICAgICAgICAgICAgIC8vIGFyZSBuZXh0IGlubmVyIHN1YnNjcmlwdGlvbi5cbiAgICAgICAgICAgICAgICBpZiAoaW5uZXJTdWJTY2hlZHVsZXIpIHtcbiAgICAgICAgICAgICAgICAgIGV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBpbm5lclN1YlNjaGVkdWxlciwgKCkgPT4gZG9Jbm5lclN1YihidWZmZXJlZFZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGRvSW5uZXJTdWIoYnVmZmVyZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gY29tcGxldGUsIGFuZCBjb21wbGV0ZSBpZiBzby5cbiAgICAgICAgICAgICAgY2hlY2tDb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9O1xuXG4gIC8vIFN1YnNjcmliZSB0byBvdXIgc291cmNlIG9ic2VydmFibGUuXG4gIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIG91dGVyTmV4dCwgKCkgPT4ge1xuICAgICAgLy8gT3V0ZXIgY29tcGxldGVkLCBtYWtlIGEgbm90ZSBvZiBpdCwgYW5kIGNoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gY29tcGxldGUgZXZlcnl0aGluZy5cbiAgICAgIGlzQ29tcGxldGUgPSB0cnVlO1xuICAgICAgY2hlY2tDb21wbGV0ZSgpO1xuICAgIH0pXG4gICk7XG5cbiAgLy8gQWRkaXRpb25hbCBmaW5hbGl6YXRpb24gKGZvciB3aGVuIHRoZSBkZXN0aW5hdGlvbiBpcyB0b3JuIGRvd24pLlxuICAvLyBPdGhlciBmaW5hbGl6YXRpb24gaXMgYWRkZWQgaW1wbGljaXRseSB2aWEgc3Vic2NyaXB0aW9uIGFib3ZlLlxuICByZXR1cm4gKCkgPT4ge1xuICAgIGFkZGl0aW9uYWxGaW5hbGl6ZXI/LigpO1xuICB9O1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGVJbnB1dCwgT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2ZWRWYWx1ZU9mIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAnLi9tYXAnO1xuaW1wb3J0IHsgaW5uZXJGcm9tIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9pbm5lckZyb20nO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBtZXJnZUludGVybmFscyB9IGZyb20gJy4vbWVyZ2VJbnRlcm5hbHMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWwvaXNGdW5jdGlvbic7XG5cbi8qIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aCAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlTWFwPFQsIE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8YW55Pj4oXG4gIHByb2plY3Q6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gTyxcbiAgY29uY3VycmVudD86IG51bWJlclxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuLyoqIEBkZXByZWNhdGVkIFRoZSBgcmVzdWx0U2VsZWN0b3JgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSBhbiBpbm5lciBgbWFwYCBpbnN0ZWFkLiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9yZXN1bHRTZWxlY3RvciAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlTWFwPFQsIE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8YW55Pj4oXG4gIHByb2plY3Q6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gTyxcbiAgcmVzdWx0U2VsZWN0b3I6IHVuZGVmaW5lZCxcbiAgY29uY3VycmVudD86IG51bWJlclxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuLyoqIEBkZXByZWNhdGVkIFRoZSBgcmVzdWx0U2VsZWN0b3JgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSBhbiBpbm5lciBgbWFwYCBpbnN0ZWFkLiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9yZXN1bHRTZWxlY3RvciAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlTWFwPFQsIFIsIE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8YW55Pj4oXG4gIHByb2plY3Q6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gTyxcbiAgcmVzdWx0U2VsZWN0b3I6IChvdXRlclZhbHVlOiBULCBpbm5lclZhbHVlOiBPYnNlcnZlZFZhbHVlT2Y8Tz4sIG91dGVySW5kZXg6IG51bWJlciwgaW5uZXJJbmRleDogbnVtYmVyKSA9PiBSLFxuICBjb25jdXJyZW50PzogbnVtYmVyXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFI+O1xuLyogdHNsaW50OmVuYWJsZTptYXgtbGluZS1sZW5ndGggKi9cblxuLyoqXG4gKiBQcm9qZWN0cyBlYWNoIHNvdXJjZSB2YWx1ZSB0byBhbiBPYnNlcnZhYmxlIHdoaWNoIGlzIG1lcmdlZCBpbiB0aGUgb3V0cHV0XG4gKiBPYnNlcnZhYmxlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5NYXBzIGVhY2ggdmFsdWUgdG8gYW4gT2JzZXJ2YWJsZSwgdGhlbiBmbGF0dGVucyBhbGwgb2ZcbiAqIHRoZXNlIGlubmVyIE9ic2VydmFibGVzIHVzaW5nIHtAbGluayBtZXJnZUFsbH0uPC9zcGFuPlxuICpcbiAqICFbXShtZXJnZU1hcC5wbmcpXG4gKlxuICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgaXRlbXMgYmFzZWQgb24gYXBwbHlpbmcgYSBmdW5jdGlvbiB0aGF0IHlvdVxuICogc3VwcGx5IHRvIGVhY2ggaXRlbSBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSwgd2hlcmUgdGhhdCBmdW5jdGlvblxuICogcmV0dXJucyBhbiBPYnNlcnZhYmxlLCBhbmQgdGhlbiBtZXJnaW5nIHRob3NlIHJlc3VsdGluZyBPYnNlcnZhYmxlcyBhbmRcbiAqIGVtaXR0aW5nIHRoZSByZXN1bHRzIG9mIHRoaXMgbWVyZ2VyLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBNYXAgYW5kIGZsYXR0ZW4gZWFjaCBsZXR0ZXIgdG8gYW4gT2JzZXJ2YWJsZSB0aWNraW5nIGV2ZXJ5IDEgc2Vjb25kXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBtZXJnZU1hcCwgaW50ZXJ2YWwsIG1hcCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGxldHRlcnMgPSBvZignYScsICdiJywgJ2MnKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGxldHRlcnMucGlwZShcbiAqICAgbWVyZ2VNYXAoeCA9PiBpbnRlcnZhbCgxMDAwKS5waXBlKG1hcChpID0+IHggKyBpKSkpXG4gKiApO1xuICpcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKlxuICogLy8gUmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nOlxuICogLy8gYTBcbiAqIC8vIGIwXG4gKiAvLyBjMFxuICogLy8gYTFcbiAqIC8vIGIxXG4gKiAvLyBjMVxuICogLy8gY29udGludWVzIHRvIGxpc3QgYSwgYiwgYyBldmVyeSBzZWNvbmQgd2l0aCByZXNwZWN0aXZlIGFzY2VuZGluZyBpbnRlZ2Vyc1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgY29uY2F0TWFwfVxuICogQHNlZSB7QGxpbmsgZXhoYXVzdE1hcH1cbiAqIEBzZWUge0BsaW5rIG1lcmdlfVxuICogQHNlZSB7QGxpbmsgbWVyZ2VBbGx9XG4gKiBAc2VlIHtAbGluayBtZXJnZU1hcFRvfVxuICogQHNlZSB7QGxpbmsgbWVyZ2VTY2FufVxuICogQHNlZSB7QGxpbmsgc3dpdGNoTWFwfVxuICpcbiAqIEBwYXJhbSBwcm9qZWN0IEEgZnVuY3Rpb24gdGhhdCwgd2hlbiBhcHBsaWVkIHRvIGFuIGl0ZW0gZW1pdHRlZCBieSB0aGUgc291cmNlXG4gKiBPYnNlcnZhYmxlLCByZXR1cm5zIGFuIE9ic2VydmFibGUuXG4gKiBAcGFyYW0gY29uY3VycmVudCBNYXhpbXVtIG51bWJlciBvZiBgT2JzZXJ2YWJsZUlucHV0YHMgYmVpbmcgc3Vic2NyaWJlZCB0byBjb25jdXJyZW50bHkuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mXG4gKiBhcHBseWluZyB0aGUgcHJvamVjdGlvbiBmdW5jdGlvbiAoYW5kIHRoZSBvcHRpb25hbCBkZXByZWNhdGVkXG4gKiBgcmVzdWx0U2VsZWN0b3JgKSB0byBlYWNoIGl0ZW0gZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUgYW5kIG1lcmdpbmdcbiAqIHRoZSByZXN1bHRzIG9mIHRoZSBPYnNlcnZhYmxlcyBvYnRhaW5lZCBmcm9tIHRoaXMgdHJhbnNmb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZU1hcDxULCBSLCBPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PGFueT4+KFxuICBwcm9qZWN0OiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IE8sXG4gIHJlc3VsdFNlbGVjdG9yPzogKChvdXRlclZhbHVlOiBULCBpbm5lclZhbHVlOiBPYnNlcnZlZFZhbHVlT2Y8Tz4sIG91dGVySW5kZXg6IG51bWJlciwgaW5uZXJJbmRleDogbnVtYmVyKSA9PiBSKSB8IG51bWJlcixcbiAgY29uY3VycmVudDogbnVtYmVyID0gSW5maW5pdHlcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgT2JzZXJ2ZWRWYWx1ZU9mPE8+IHwgUj4ge1xuICBpZiAoaXNGdW5jdGlvbihyZXN1bHRTZWxlY3RvcikpIHtcbiAgICAvLyBERVBSRUNBVEVEIFBBVEhcbiAgICByZXR1cm4gbWVyZ2VNYXAoKGEsIGkpID0+IG1hcCgoYjogYW55LCBpaTogbnVtYmVyKSA9PiByZXN1bHRTZWxlY3RvcihhLCBiLCBpLCBpaSkpKGlubmVyRnJvbShwcm9qZWN0KGEsIGkpKSksIGNvbmN1cnJlbnQpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiByZXN1bHRTZWxlY3RvciA9PT0gJ251bWJlcicpIHtcbiAgICBjb25jdXJyZW50ID0gcmVzdWx0U2VsZWN0b3I7XG4gIH1cblxuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiBtZXJnZUludGVybmFscyhzb3VyY2UsIHN1YnNjcmliZXIsIHByb2plY3QsIGNvbmN1cnJlbnQpKTtcbn1cbiIsICJpbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJy4vbWVyZ2VNYXAnO1xuaW1wb3J0IHsgaWRlbnRpdHkgfSBmcm9tICcuLi91dGlsL2lkZW50aXR5JztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGVJbnB1dCwgT2JzZXJ2ZWRWYWx1ZU9mIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgaGlnaGVyLW9yZGVyIE9ic2VydmFibGUgaW50byBhIGZpcnN0LW9yZGVyIE9ic2VydmFibGUgd2hpY2hcbiAqIGNvbmN1cnJlbnRseSBkZWxpdmVycyBhbGwgdmFsdWVzIHRoYXQgYXJlIGVtaXR0ZWQgb24gdGhlIGlubmVyIE9ic2VydmFibGVzLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5GbGF0dGVucyBhbiBPYnNlcnZhYmxlLW9mLU9ic2VydmFibGVzLjwvc3Bhbj5cbiAqXG4gKiAhW10obWVyZ2VBbGwucG5nKVxuICpcbiAqIGBtZXJnZUFsbGAgc3Vic2NyaWJlcyB0byBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgT2JzZXJ2YWJsZXMsIGFsc28ga25vd24gYXNcbiAqIGEgaGlnaGVyLW9yZGVyIE9ic2VydmFibGUuIEVhY2ggdGltZSBpdCBvYnNlcnZlcyBvbmUgb2YgdGhlc2UgZW1pdHRlZCBpbm5lclxuICogT2JzZXJ2YWJsZXMsIGl0IHN1YnNjcmliZXMgdG8gdGhhdCBhbmQgZGVsaXZlcnMgYWxsIHRoZSB2YWx1ZXMgZnJvbSB0aGVcbiAqIGlubmVyIE9ic2VydmFibGUgb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlLiBUaGUgb3V0cHV0IE9ic2VydmFibGUgb25seVxuICogY29tcGxldGVzIG9uY2UgYWxsIGlubmVyIE9ic2VydmFibGVzIGhhdmUgY29tcGxldGVkLiBBbnkgZXJyb3IgZGVsaXZlcmVkIGJ5XG4gKiBhIGlubmVyIE9ic2VydmFibGUgd2lsbCBiZSBpbW1lZGlhdGVseSBlbWl0dGVkIG9uIHRoZSBvdXRwdXQgT2JzZXJ2YWJsZS5cbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIFNwYXduIGEgbmV3IGludGVydmFsIE9ic2VydmFibGUgZm9yIGVhY2ggY2xpY2sgZXZlbnQsIGFuZCBibGVuZCB0aGVpciBvdXRwdXRzIGFzIG9uZSBPYnNlcnZhYmxlXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgbWFwLCBpbnRlcnZhbCwgbWVyZ2VBbGwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgaGlnaGVyT3JkZXIgPSBjbGlja3MucGlwZShtYXAoKCkgPT4gaW50ZXJ2YWwoMTAwMCkpKTtcbiAqIGNvbnN0IGZpcnN0T3JkZXIgPSBoaWdoZXJPcmRlci5waXBlKG1lcmdlQWxsKCkpO1xuICpcbiAqIGZpcnN0T3JkZXIuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogQ291bnQgZnJvbSAwIHRvIDkgZXZlcnkgc2Vjb25kIGZvciBlYWNoIGNsaWNrLCBidXQgb25seSBhbGxvdyAyIGNvbmN1cnJlbnQgdGltZXJzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgbWFwLCBpbnRlcnZhbCwgdGFrZSwgbWVyZ2VBbGwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgaGlnaGVyT3JkZXIgPSBjbGlja3MucGlwZShcbiAqICAgbWFwKCgpID0+IGludGVydmFsKDEwMDApLnBpcGUodGFrZSgxMCkpKVxuICogKTtcbiAqIGNvbnN0IGZpcnN0T3JkZXIgPSBoaWdoZXJPcmRlci5waXBlKG1lcmdlQWxsKDIpKTtcbiAqXG4gKiBmaXJzdE9yZGVyLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGNvbWJpbmVMYXRlc3RBbGx9XG4gKiBAc2VlIHtAbGluayBjb25jYXRBbGx9XG4gKiBAc2VlIHtAbGluayBleGhhdXN0QWxsfVxuICogQHNlZSB7QGxpbmsgbWVyZ2V9XG4gKiBAc2VlIHtAbGluayBtZXJnZU1hcH1cbiAqIEBzZWUge0BsaW5rIG1lcmdlTWFwVG99XG4gKiBAc2VlIHtAbGluayBtZXJnZVNjYW59XG4gKiBAc2VlIHtAbGluayBzd2l0Y2hBbGx9XG4gKiBAc2VlIHtAbGluayBzd2l0Y2hNYXB9XG4gKiBAc2VlIHtAbGluayB6aXBBbGx9XG4gKlxuICogQHBhcmFtIGNvbmN1cnJlbnQgTWF4aW11bSBudW1iZXIgb2YgaW5uZXIgT2JzZXJ2YWJsZXMgYmVpbmcgc3Vic2NyaWJlZCB0b1xuICogY29uY3VycmVudGx5LlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdmFsdWVzIGNvbWluZyBmcm9tXG4gKiBhbGwgdGhlIGlubmVyIE9ic2VydmFibGVzIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VBbGw8TyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+Pihjb25jdXJyZW50OiBudW1iZXIgPSBJbmZpbml0eSk6IE9wZXJhdG9yRnVuY3Rpb248TywgT2JzZXJ2ZWRWYWx1ZU9mPE8+PiB7XG4gIHJldHVybiBtZXJnZU1hcChpZGVudGl0eSwgY29uY3VycmVudCk7XG59XG4iLCAiaW1wb3J0IHsgbWVyZ2VBbGwgfSBmcm9tICcuL21lcmdlQWxsJztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGVJbnB1dCwgT2JzZXJ2ZWRWYWx1ZU9mIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgaGlnaGVyLW9yZGVyIE9ic2VydmFibGUgaW50byBhIGZpcnN0LW9yZGVyIE9ic2VydmFibGUgYnlcbiAqIGNvbmNhdGVuYXRpbmcgdGhlIGlubmVyIE9ic2VydmFibGVzIGluIG9yZGVyLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5GbGF0dGVucyBhbiBPYnNlcnZhYmxlLW9mLU9ic2VydmFibGVzIGJ5IHB1dHRpbmcgb25lXG4gKiBpbm5lciBPYnNlcnZhYmxlIGFmdGVyIHRoZSBvdGhlci48L3NwYW4+XG4gKlxuICogIVtdKGNvbmNhdEFsbC5zdmcpXG4gKlxuICogSm9pbnMgZXZlcnkgT2JzZXJ2YWJsZSBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgKGEgaGlnaGVyLW9yZGVyIE9ic2VydmFibGUpLCBpblxuICogYSBzZXJpYWwgZmFzaGlvbi4gSXQgc3Vic2NyaWJlcyB0byBlYWNoIGlubmVyIE9ic2VydmFibGUgb25seSBhZnRlciB0aGVcbiAqIHByZXZpb3VzIGlubmVyIE9ic2VydmFibGUgaGFzIGNvbXBsZXRlZCwgYW5kIG1lcmdlcyBhbGwgb2YgdGhlaXIgdmFsdWVzIGludG9cbiAqIHRoZSByZXR1cm5lZCBvYnNlcnZhYmxlLlxuICpcbiAqIF9fV2FybmluZzpfXyBJZiB0aGUgc291cmNlIE9ic2VydmFibGUgZW1pdHMgT2JzZXJ2YWJsZXMgcXVpY2tseSBhbmRcbiAqIGVuZGxlc3NseSwgYW5kIHRoZSBpbm5lciBPYnNlcnZhYmxlcyBpdCBlbWl0cyBnZW5lcmFsbHkgY29tcGxldGUgc2xvd2VyIHRoYW5cbiAqIHRoZSBzb3VyY2UgZW1pdHMsIHlvdSBjYW4gcnVuIGludG8gbWVtb3J5IGlzc3VlcyBhcyB0aGUgaW5jb21pbmcgT2JzZXJ2YWJsZXNcbiAqIGNvbGxlY3QgaW4gYW4gdW5ib3VuZGVkIGJ1ZmZlci5cbiAqXG4gKiBOb3RlOiBgY29uY2F0QWxsYCBpcyBlcXVpdmFsZW50IHRvIGBtZXJnZUFsbGAgd2l0aCBjb25jdXJyZW5jeSBwYXJhbWV0ZXIgc2V0XG4gKiB0byBgMWAuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIEZvciBlYWNoIGNsaWNrIGV2ZW50LCB0aWNrIGV2ZXJ5IHNlY29uZCBmcm9tIDAgdG8gMywgd2l0aCBubyBjb25jdXJyZW5jeVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIG1hcCwgaW50ZXJ2YWwsIHRha2UsIGNvbmNhdEFsbCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCBoaWdoZXJPcmRlciA9IGNsaWNrcy5waXBlKFxuICogICBtYXAoKCkgPT4gaW50ZXJ2YWwoMTAwMCkucGlwZSh0YWtlKDQpKSlcbiAqICk7XG4gKiBjb25zdCBmaXJzdE9yZGVyID0gaGlnaGVyT3JkZXIucGlwZShjb25jYXRBbGwoKSk7XG4gKiBmaXJzdE9yZGVyLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqXG4gKiAvLyBSZXN1bHRzIGluIHRoZSBmb2xsb3dpbmc6XG4gKiAvLyAocmVzdWx0cyBhcmUgbm90IGNvbmN1cnJlbnQpXG4gKiAvLyBGb3IgZXZlcnkgY2xpY2sgb24gdGhlIFwiZG9jdW1lbnRcIiBpdCB3aWxsIGVtaXQgdmFsdWVzIDAgdG8gMyBzcGFjZWRcbiAqIC8vIG9uIGEgMTAwMG1zIGludGVydmFsXG4gKiAvLyBvbmUgY2xpY2sgPSAxMDAwbXMtPiAwIC0xMDAwbXMtPiAxIC0xMDAwbXMtPiAyIC0xMDAwbXMtPiAzXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBjb21iaW5lTGF0ZXN0QWxsfVxuICogQHNlZSB7QGxpbmsgY29uY2F0fVxuICogQHNlZSB7QGxpbmsgY29uY2F0TWFwfVxuICogQHNlZSB7QGxpbmsgY29uY2F0TWFwVG99XG4gKiBAc2VlIHtAbGluayBleGhhdXN0QWxsfVxuICogQHNlZSB7QGxpbmsgbWVyZ2VBbGx9XG4gKiBAc2VlIHtAbGluayBzd2l0Y2hBbGx9XG4gKiBAc2VlIHtAbGluayBzd2l0Y2hNYXB9XG4gKiBAc2VlIHtAbGluayB6aXBBbGx9XG4gKlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHZhbHVlcyBmcm9tIGFsbCB0aGVcbiAqIGlubmVyIE9ic2VydmFibGVzIGNvbmNhdGVuYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbmNhdEFsbDxPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PGFueT4+KCk6IE9wZXJhdG9yRnVuY3Rpb248TywgT2JzZXJ2ZWRWYWx1ZU9mPE8+PiB7XG4gIHJldHVybiBtZXJnZUFsbCgxKTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXRUdXBsZSwgU2NoZWR1bGVyTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGNvbmNhdEFsbCB9IGZyb20gJy4uL29wZXJhdG9ycy9jb25jYXRBbGwnO1xuaW1wb3J0IHsgcG9wU2NoZWR1bGVyIH0gZnJvbSAnLi4vdXRpbC9hcmdzJztcbmltcG9ydCB7IGZyb20gfSBmcm9tICcuL2Zyb20nO1xuXG5leHBvcnQgZnVuY3Rpb24gY29uY2F0PFQgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+KC4uLmlucHV0czogWy4uLk9ic2VydmFibGVJbnB1dFR1cGxlPFQ+XSk6IE9ic2VydmFibGU8VFtudW1iZXJdPjtcbmV4cG9ydCBmdW5jdGlvbiBjb25jYXQ8VCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4oXG4gIC4uLmlucHV0c0FuZFNjaGVkdWxlcjogWy4uLk9ic2VydmFibGVJbnB1dFR1cGxlPFQ+LCBTY2hlZHVsZXJMaWtlXVxuKTogT2JzZXJ2YWJsZTxUW251bWJlcl0+O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gb3V0cHV0IE9ic2VydmFibGUgd2hpY2ggc2VxdWVudGlhbGx5IGVtaXRzIGFsbCB2YWx1ZXMgZnJvbSB0aGUgZmlyc3QgZ2l2ZW5cbiAqIE9ic2VydmFibGUgYW5kIHRoZW4gbW92ZXMgb24gdG8gdGhlIG5leHQuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkNvbmNhdGVuYXRlcyBtdWx0aXBsZSBPYnNlcnZhYmxlcyB0b2dldGhlciBieVxuICogc2VxdWVudGlhbGx5IGVtaXR0aW5nIHRoZWlyIHZhbHVlcywgb25lIE9ic2VydmFibGUgYWZ0ZXIgdGhlIG90aGVyLjwvc3Bhbj5cbiAqXG4gKiAhW10oY29uY2F0LnBuZylcbiAqXG4gKiBgY29uY2F0YCBqb2lucyBtdWx0aXBsZSBPYnNlcnZhYmxlcyB0b2dldGhlciwgYnkgc3Vic2NyaWJpbmcgdG8gdGhlbSBvbmUgYXQgYSB0aW1lIGFuZFxuICogbWVyZ2luZyB0aGVpciByZXN1bHRzIGludG8gdGhlIG91dHB1dCBPYnNlcnZhYmxlLiBZb3UgY2FuIHBhc3MgZWl0aGVyIGFuIGFycmF5IG9mXG4gKiBPYnNlcnZhYmxlcywgb3IgcHV0IHRoZW0gZGlyZWN0bHkgYXMgYXJndW1lbnRzLiBQYXNzaW5nIGFuIGVtcHR5IGFycmF5IHdpbGwgcmVzdWx0XG4gKiBpbiBPYnNlcnZhYmxlIHRoYXQgY29tcGxldGVzIGltbWVkaWF0ZWx5LlxuICpcbiAqIGBjb25jYXRgIHdpbGwgc3Vic2NyaWJlIHRvIGZpcnN0IGlucHV0IE9ic2VydmFibGUgYW5kIGVtaXQgYWxsIGl0cyB2YWx1ZXMsIHdpdGhvdXRcbiAqIGNoYW5naW5nIG9yIGFmZmVjdGluZyB0aGVtIGluIGFueSB3YXkuIFdoZW4gdGhhdCBPYnNlcnZhYmxlIGNvbXBsZXRlcywgaXQgd2lsbFxuICogc3Vic2NyaWJlIHRvIHRoZW4gbmV4dCBPYnNlcnZhYmxlIHBhc3NlZCBhbmQsIGFnYWluLCBlbWl0IGl0cyB2YWx1ZXMuIFRoaXMgd2lsbCBiZVxuICogcmVwZWF0ZWQsIHVudGlsIHRoZSBvcGVyYXRvciBydW5zIG91dCBvZiBPYnNlcnZhYmxlcy4gV2hlbiBsYXN0IGlucHV0IE9ic2VydmFibGUgY29tcGxldGVzLFxuICogYGNvbmNhdGAgd2lsbCBjb21wbGV0ZSBhcyB3ZWxsLiBBdCBhbnkgZ2l2ZW4gbW9tZW50IG9ubHkgb25lIE9ic2VydmFibGUgcGFzc2VkIHRvIG9wZXJhdG9yXG4gKiBlbWl0cyB2YWx1ZXMuIElmIHlvdSB3b3VsZCBsaWtlIHRvIGVtaXQgdmFsdWVzIGZyb20gcGFzc2VkIE9ic2VydmFibGVzIGNvbmN1cnJlbnRseSwgY2hlY2sgb3V0XG4gKiB7QGxpbmsgbWVyZ2V9IGluc3RlYWQsIGVzcGVjaWFsbHkgd2l0aCBvcHRpb25hbCBgY29uY3VycmVudGAgcGFyYW1ldGVyLiBBcyBhIG1hdHRlciBvZiBmYWN0LFxuICogYGNvbmNhdGAgaXMgYW4gZXF1aXZhbGVudCBvZiBgbWVyZ2VgIG9wZXJhdG9yIHdpdGggYGNvbmN1cnJlbnRgIHBhcmFtZXRlciBzZXQgdG8gYDFgLlxuICpcbiAqIE5vdGUgdGhhdCBpZiBzb21lIGlucHV0IE9ic2VydmFibGUgbmV2ZXIgY29tcGxldGVzLCBgY29uY2F0YCB3aWxsIGFsc28gbmV2ZXIgY29tcGxldGVcbiAqIGFuZCBPYnNlcnZhYmxlcyBmb2xsb3dpbmcgdGhlIG9uZSB0aGF0IGRpZCBub3QgY29tcGxldGUgd2lsbCBuZXZlciBiZSBzdWJzY3JpYmVkLiBPbiB0aGUgb3RoZXJcbiAqIGhhbmQsIGlmIHNvbWUgT2JzZXJ2YWJsZSBzaW1wbHkgY29tcGxldGVzIGltbWVkaWF0ZWx5IGFmdGVyIGl0IGlzIHN1YnNjcmliZWQsIGl0IHdpbGwgYmVcbiAqIGludmlzaWJsZSBmb3IgYGNvbmNhdGAsIHdoaWNoIHdpbGwganVzdCBtb3ZlIG9uIHRvIHRoZSBuZXh0IE9ic2VydmFibGUuXG4gKlxuICogSWYgYW55IE9ic2VydmFibGUgaW4gY2hhaW4gZXJyb3JzLCBpbnN0ZWFkIG9mIHBhc3NpbmcgY29udHJvbCB0byB0aGUgbmV4dCBPYnNlcnZhYmxlLFxuICogYGNvbmNhdGAgd2lsbCBlcnJvciBpbW1lZGlhdGVseSBhcyB3ZWxsLiBPYnNlcnZhYmxlcyB0aGF0IHdvdWxkIGJlIHN1YnNjcmliZWQgYWZ0ZXJcbiAqIHRoZSBvbmUgdGhhdCBlbWl0dGVkIGVycm9yLCBuZXZlciB3aWxsLlxuICpcbiAqIElmIHlvdSBwYXNzIHRvIGBjb25jYXRgIHRoZSBzYW1lIE9ic2VydmFibGUgbWFueSB0aW1lcywgaXRzIHN0cmVhbSBvZiB2YWx1ZXNcbiAqIHdpbGwgYmUgXCJyZXBsYXllZFwiIG9uIGV2ZXJ5IHN1YnNjcmlwdGlvbiwgd2hpY2ggbWVhbnMgeW91IGNhbiByZXBlYXQgZ2l2ZW4gT2JzZXJ2YWJsZVxuICogYXMgbWFueSB0aW1lcyBhcyB5b3UgbGlrZS4gSWYgcGFzc2luZyB0aGUgc2FtZSBPYnNlcnZhYmxlIHRvIGBjb25jYXRgIDEwMDAgdGltZXMgYmVjb21lcyB0ZWRpb3VzLFxuICogeW91IGNhbiBhbHdheXMgdXNlIHtAbGluayByZXBlYXR9LlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogQ29uY2F0ZW5hdGUgYSB0aW1lciBjb3VudGluZyBmcm9tIDAgdG8gMyB3aXRoIGEgc3luY2hyb25vdXMgc2VxdWVuY2UgZnJvbSAxIHRvIDEwXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCB0YWtlLCByYW5nZSwgY29uY2F0IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgdGltZXIgPSBpbnRlcnZhbCgxMDAwKS5waXBlKHRha2UoNCkpO1xuICogY29uc3Qgc2VxdWVuY2UgPSByYW5nZSgxLCAxMCk7XG4gKiBjb25zdCByZXN1bHQgPSBjb25jYXQodGltZXIsIHNlcXVlbmNlKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKlxuICogLy8gcmVzdWx0cyBpbjpcbiAqIC8vIDAgLTEwMDBtcy0+IDEgLTEwMDBtcy0+IDIgLTEwMDBtcy0+IDMgLWltbWVkaWF0ZS0+IDEgLi4uIDEwXG4gKiBgYGBcbiAqXG4gKiBDb25jYXRlbmF0ZSAzIE9ic2VydmFibGVzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCB0YWtlLCBjb25jYXQgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCB0aW1lcjEgPSBpbnRlcnZhbCgxMDAwKS5waXBlKHRha2UoMTApKTtcbiAqIGNvbnN0IHRpbWVyMiA9IGludGVydmFsKDIwMDApLnBpcGUodGFrZSg2KSk7XG4gKiBjb25zdCB0aW1lcjMgPSBpbnRlcnZhbCg1MDApLnBpcGUodGFrZSgxMCkpO1xuICpcbiAqIGNvbnN0IHJlc3VsdCA9IGNvbmNhdCh0aW1lcjEsIHRpbWVyMiwgdGltZXIzKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKlxuICogLy8gcmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nOlxuICogLy8gKFByaW50cyB0byBjb25zb2xlIHNlcXVlbnRpYWxseSlcbiAqIC8vIC0xMDAwbXMtPiAwIC0xMDAwbXMtPiAxIC0xMDAwbXMtPiAuLi4gOVxuICogLy8gLTIwMDBtcy0+IDAgLTIwMDBtcy0+IDEgLTIwMDBtcy0+IC4uLiA1XG4gKiAvLyAtNTAwbXMtPiAwIC01MDBtcy0+IDEgLTUwMG1zLT4gLi4uIDlcbiAqIGBgYFxuICpcbiAqIENvbmNhdGVuYXRlIHRoZSBzYW1lIE9ic2VydmFibGUgdG8gcmVwZWF0IGl0XG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCB0YWtlLCBjb25jYXQgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCB0aW1lciA9IGludGVydmFsKDEwMDApLnBpcGUodGFrZSgyKSk7XG4gKlxuICogY29uY2F0KHRpbWVyLCB0aW1lcikgLy8gY29uY2F0ZW5hdGluZyB0aGUgc2FtZSBPYnNlcnZhYmxlIVxuICogICAuc3Vic2NyaWJlKHtcbiAqICAgICBuZXh0OiB2YWx1ZSA9PiBjb25zb2xlLmxvZyh2YWx1ZSksXG4gKiAgICAgY29tcGxldGU6ICgpID0+IGNvbnNvbGUubG9nKCcuLi5hbmQgaXQgaXMgZG9uZSEnKVxuICogICB9KTtcbiAqXG4gKiAvLyBMb2dzOlxuICogLy8gMCBhZnRlciAxc1xuICogLy8gMSBhZnRlciAyc1xuICogLy8gMCBhZnRlciAzc1xuICogLy8gMSBhZnRlciA0c1xuICogLy8gJy4uLmFuZCBpdCBpcyBkb25lIScgYWxzbyBhZnRlciA0c1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgY29uY2F0QWxsfVxuICogQHNlZSB7QGxpbmsgY29uY2F0TWFwfVxuICogQHNlZSB7QGxpbmsgY29uY2F0TWFwVG99XG4gKiBAc2VlIHtAbGluayBzdGFydFdpdGh9XG4gKiBAc2VlIHtAbGluayBlbmRXaXRofVxuICpcbiAqIEBwYXJhbSBhcmdzIGBPYnNlcnZhYmxlSW5wdXRgcyB0byBjb25jYXRlbmF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbmNhdCguLi5hcmdzOiBhbnlbXSk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICByZXR1cm4gY29uY2F0QWxsKCkoZnJvbShhcmdzLCBwb3BTY2hlZHVsZXIoYXJncykpKTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBPYnNlcnZlZFZhbHVlT2YsIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4vaW5uZXJGcm9tJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIE9ic2VydmFibGUgdGhhdCwgb24gc3Vic2NyaWJlLCBjYWxscyBhbiBPYnNlcnZhYmxlIGZhY3RvcnkgdG9cbiAqIG1ha2UgYW4gT2JzZXJ2YWJsZSBmb3IgZWFjaCBuZXcgT2JzZXJ2ZXIuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkNyZWF0ZXMgdGhlIE9ic2VydmFibGUgbGF6aWx5LCB0aGF0IGlzLCBvbmx5IHdoZW4gaXRcbiAqIGlzIHN1YnNjcmliZWQuXG4gKiA8L3NwYW4+XG4gKlxuICogIVtdKGRlZmVyLnBuZylcbiAqXG4gKiBgZGVmZXJgIGFsbG93cyB5b3UgdG8gY3JlYXRlIGFuIE9ic2VydmFibGUgb25seSB3aGVuIHRoZSBPYnNlcnZlclxuICogc3Vic2NyaWJlcy4gSXQgd2FpdHMgdW50aWwgYW4gT2JzZXJ2ZXIgc3Vic2NyaWJlcyB0byBpdCwgY2FsbHMgdGhlIGdpdmVuXG4gKiBmYWN0b3J5IGZ1bmN0aW9uIHRvIGdldCBhbiBPYnNlcnZhYmxlIC0tIHdoZXJlIGEgZmFjdG9yeSBmdW5jdGlvbiB0eXBpY2FsbHlcbiAqIGdlbmVyYXRlcyBhIG5ldyBPYnNlcnZhYmxlIC0tIGFuZCBzdWJzY3JpYmVzIHRoZSBPYnNlcnZlciB0byB0aGlzIE9ic2VydmFibGUuXG4gKiBJbiBjYXNlIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIHJldHVybnMgYSBmYWxzeSB2YWx1ZSwgdGhlbiBFTVBUWSBpcyB1c2VkIGFzXG4gKiBPYnNlcnZhYmxlIGluc3RlYWQuIExhc3QgYnV0IG5vdCBsZWFzdCwgYW4gZXhjZXB0aW9uIGR1cmluZyB0aGUgZmFjdG9yeVxuICogZnVuY3Rpb24gY2FsbCBpcyB0cmFuc2ZlcnJlZCB0byB0aGUgT2JzZXJ2ZXIgYnkgY2FsbGluZyBgZXJyb3JgLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBTdWJzY3JpYmUgdG8gZWl0aGVyIGFuIE9ic2VydmFibGUgb2YgY2xpY2tzIG9yIGFuIE9ic2VydmFibGUgb2YgaW50ZXJ2YWwsIGF0IHJhbmRvbVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBkZWZlciwgZnJvbUV2ZW50LCBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGNsaWNrc09ySW50ZXJ2YWwgPSBkZWZlcigoKSA9PiB7XG4gKiAgIHJldHVybiBNYXRoLnJhbmRvbSgpID4gMC41XG4gKiAgICAgPyBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpXG4gKiAgICAgOiBpbnRlcnZhbCgxMDAwKTtcbiAqIH0pO1xuICogY2xpY2tzT3JJbnRlcnZhbC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKlxuICogLy8gUmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nIGJlaGF2aW9yOlxuICogLy8gSWYgdGhlIHJlc3VsdCBvZiBNYXRoLnJhbmRvbSgpIGlzIGdyZWF0ZXIgdGhhbiAwLjUgaXQgd2lsbCBsaXN0ZW5cbiAqIC8vIGZvciBjbGlja3MgYW55d2hlcmUgb24gdGhlIFwiZG9jdW1lbnRcIjsgd2hlbiBkb2N1bWVudCBpcyBjbGlja2VkIGl0XG4gKiAvLyB3aWxsIGxvZyBhIE1vdXNlRXZlbnQgb2JqZWN0IHRvIHRoZSBjb25zb2xlLiBJZiB0aGUgcmVzdWx0IGlzIGxlc3NcbiAqIC8vIHRoYW4gMC41IGl0IHdpbGwgZW1pdCBhc2NlbmRpbmcgbnVtYmVycywgb25lIGV2ZXJ5IHNlY29uZCgxMDAwbXMpLlxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgT2JzZXJ2YWJsZX1cbiAqXG4gKiBAcGFyYW0gb2JzZXJ2YWJsZUZhY3RvcnkgVGhlIE9ic2VydmFibGUgZmFjdG9yeSBmdW5jdGlvbiB0byBpbnZva2UgZm9yIGVhY2hcbiAqIE9ic2VydmVyIHRoYXQgc3Vic2NyaWJlcyB0byB0aGUgb3V0cHV0IE9ic2VydmFibGUuIE1heSBhbHNvIHJldHVybiBhbnlcbiAqIGBPYnNlcnZhYmxlSW5wdXRgLCB3aGljaCB3aWxsIGJlIGNvbnZlcnRlZCBvbiB0aGUgZmx5IHRvIGFuIE9ic2VydmFibGUuXG4gKiBAcmV0dXJuIEFuIE9ic2VydmFibGUgd2hvc2UgT2JzZXJ2ZXJzJyBzdWJzY3JpcHRpb25zIHRyaWdnZXIgYW4gaW52b2NhdGlvbiBvZiB0aGVcbiAqIGdpdmVuIE9ic2VydmFibGUgZmFjdG9yeSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmVyPFIgZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8YW55Pj4ob2JzZXJ2YWJsZUZhY3Rvcnk6ICgpID0+IFIpOiBPYnNlcnZhYmxlPE9ic2VydmVkVmFsdWVPZjxSPj4ge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGU8T2JzZXJ2ZWRWYWx1ZU9mPFI+Pigoc3Vic2NyaWJlcikgPT4ge1xuICAgIGlubmVyRnJvbShvYnNlcnZhYmxlRmFjdG9yeSgpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IENvbm5lY3RhYmxlLCBPYnNlcnZhYmxlSW5wdXQsIFN1YmplY3RMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJy4uL1N1YmplY3QnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IGRlZmVyIH0gZnJvbSAnLi9kZWZlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGFibGVDb25maWc8VD4ge1xuICAvKipcbiAgICogQSBmYWN0b3J5IGZ1bmN0aW9uIHVzZWQgdG8gY3JlYXRlIHRoZSBTdWJqZWN0IHRocm91Z2ggd2hpY2ggdGhlIHNvdXJjZVxuICAgKiBpcyBtdWx0aWNhc3QuIEJ5IGRlZmF1bHQgdGhpcyBjcmVhdGVzIGEge0BsaW5rIFN1YmplY3R9LlxuICAgKi9cbiAgY29ubmVjdG9yOiAoKSA9PiBTdWJqZWN0TGlrZTxUPjtcbiAgLyoqXG4gICAqIElmIHRydWUsIHRoZSByZXN1bHRpbmcgb2JzZXJ2YWJsZSB3aWxsIHJlc2V0IGludGVybmFsIHN0YXRlIHVwb24gZGlzY29ubmVjdGlvblxuICAgKiBhbmQgcmV0dXJuIHRvIGEgXCJjb2xkXCIgc3RhdGUuIFRoaXMgYWxsb3dzIHRoZSByZXN1bHRpbmcgb2JzZXJ2YWJsZSB0byBiZVxuICAgKiByZWNvbm5lY3RlZC5cbiAgICogSWYgZmFsc2UsIHVwb24gZGlzY29ubmVjdGlvbiwgdGhlIGNvbm5lY3Rpbmcgc3ViamVjdCB3aWxsIHJlbWFpbiB0aGVcbiAgICogY29ubmVjdGluZyBzdWJqZWN0LCBtZWFuaW5nIHRoZSByZXN1bHRpbmcgb2JzZXJ2YWJsZSB3aWxsIG5vdCBnbyBcImNvbGRcIiBhZ2FpbixcbiAgICogYW5kIHN1YnNlcXVlbnQgcmVwZWF0cyBvciByZXN1YnNjcmlwdGlvbnMgd2lsbCByZXN1YnNjcmliZSB0byB0aGF0IHNhbWUgc3ViamVjdC5cbiAgICovXG4gIHJlc2V0T25EaXNjb25uZWN0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciBgY29ubmVjdGFibGVgLlxuICovXG5jb25zdCBERUZBVUxUX0NPTkZJRzogQ29ubmVjdGFibGVDb25maWc8dW5rbm93bj4gPSB7XG4gIGNvbm5lY3RvcjogKCkgPT4gbmV3IFN1YmplY3Q8dW5rbm93bj4oKSxcbiAgcmVzZXRPbkRpc2Nvbm5lY3Q6IHRydWUsXG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gb2JzZXJ2YWJsZSB0aGF0IG11bHRpY2FzdHMgb25jZSBgY29ubmVjdCgpYCBpcyBjYWxsZWQgb24gaXQuXG4gKlxuICogQHBhcmFtIHNvdXJjZSBUaGUgb2JzZXJ2YWJsZSBzb3VyY2UgdG8gbWFrZSBjb25uZWN0YWJsZS5cbiAqIEBwYXJhbSBjb25maWcgVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBgY29ubmVjdGFibGVgLlxuICogQHJldHVybnMgQSBcImNvbm5lY3RhYmxlXCIgb2JzZXJ2YWJsZSwgdGhhdCBoYXMgYSBgY29ubmVjdCgpYCBtZXRob2QsIHRoYXQgeW91IG11c3QgY2FsbCB0b1xuICogY29ubmVjdCB0aGUgc291cmNlIHRvIGFsbCBjb25zdW1lcnMgdGhyb3VnaCB0aGUgc3ViamVjdCBwcm92aWRlZCBhcyB0aGUgY29ubmVjdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29ubmVjdGFibGU8VD4oc291cmNlOiBPYnNlcnZhYmxlSW5wdXQ8VD4sIGNvbmZpZzogQ29ubmVjdGFibGVDb25maWc8VD4gPSBERUZBVUxUX0NPTkZJRyk6IENvbm5lY3RhYmxlPFQ+IHtcbiAgLy8gVGhlIHN1YnNjcmlwdGlvbiByZXByZXNlbnRpbmcgdGhlIGNvbm5lY3Rpb24uXG4gIGxldCBjb25uZWN0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgY29uc3QgeyBjb25uZWN0b3IsIHJlc2V0T25EaXNjb25uZWN0ID0gdHJ1ZSB9ID0gY29uZmlnO1xuICBsZXQgc3ViamVjdCA9IGNvbm5lY3RvcigpO1xuXG4gIGNvbnN0IHJlc3VsdDogYW55ID0gbmV3IE9ic2VydmFibGU8VD4oKHN1YnNjcmliZXIpID0+IHtcbiAgICByZXR1cm4gc3ViamVjdC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gIH0pO1xuXG4gIC8vIERlZmluZSB0aGUgYGNvbm5lY3RgIGZ1bmN0aW9uLiBUaGlzIGlzIHdoYXQgdXNlcnMgbXVzdCBjYWxsXG4gIC8vIGluIG9yZGVyIHRvIFwiY29ubmVjdFwiIHRoZSBzb3VyY2UgdG8gdGhlIHN1YmplY3QgdGhhdCBpc1xuICAvLyBtdWx0aWNhc3RpbmcgaXQuXG4gIHJlc3VsdC5jb25uZWN0ID0gKCkgPT4ge1xuICAgIGlmICghY29ubmVjdGlvbiB8fCBjb25uZWN0aW9uLmNsb3NlZCkge1xuICAgICAgY29ubmVjdGlvbiA9IGRlZmVyKCgpID0+IHNvdXJjZSkuc3Vic2NyaWJlKHN1YmplY3QpO1xuICAgICAgaWYgKHJlc2V0T25EaXNjb25uZWN0KSB7XG4gICAgICAgIGNvbm5lY3Rpb24uYWRkKCgpID0+IChzdWJqZWN0ID0gY29ubmVjdG9yKCkpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbm5lY3Rpb247XG4gIH07XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBPYnNlcnZlZFZhbHVlT2YsIE9ic2VydmFibGVJbnB1dFR1cGxlLCBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBhcmdzQXJnQXJyYXlPck9iamVjdCB9IGZyb20gJy4uL3V0aWwvYXJnc0FyZ0FycmF5T3JPYmplY3QnO1xuaW1wb3J0IHsgaW5uZXJGcm9tIH0gZnJvbSAnLi9pbm5lckZyb20nO1xuaW1wb3J0IHsgcG9wUmVzdWx0U2VsZWN0b3IgfSBmcm9tICcuLi91dGlsL2FyZ3MnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi4vb3BlcmF0b3JzL09wZXJhdG9yU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBtYXBPbmVPck1hbnlBcmdzIH0gZnJvbSAnLi4vdXRpbC9tYXBPbmVPck1hbnlBcmdzJztcbmltcG9ydCB7IGNyZWF0ZU9iamVjdCB9IGZyb20gJy4uL3V0aWwvY3JlYXRlT2JqZWN0JztcbmltcG9ydCB7IEFueUNhdGNoZXIgfSBmcm9tICcuLi9BbnlDYXRjaGVyJztcblxuLy8gZm9ya0pvaW4oYW55KVxuLy8gV2UgcHV0IHRoaXMgZmlyc3QgYmVjYXVzZSB3ZSBuZWVkIHRvIGNhdGNoIGNhc2VzIHdoZXJlIHRoZSB1c2VyIGhhcyBzdXBwbGllZFxuLy8gX2V4YWN0bHkgYGFueWBfIGFzIHRoZSBhcmd1bWVudC4gU2luY2UgYGFueWAgbGl0ZXJhbGx5IG1hdGNoZXMgX2FueXRoaW5nXyxcbi8vIHdlIGRvbid0IHdhbnQgaXQgdG8gcmFuZG9tbHkgaGl0IG9uZSBvZiB0aGUgb3RoZXIgdHlwZSBzaWduYXR1cmVzIGJlbG93LFxuLy8gYXMgd2UgaGF2ZSBubyBpZGVhIGF0IGJ1aWxkLXRpbWUgd2hhdCB0eXBlIHdlIHNob3VsZCBiZSByZXR1cm5pbmcgd2hlbiBnaXZlbiBhbiBhbnkuXG5cbi8qKlxuICogWW91IGhhdmUgcGFzc2VkIGBhbnlgIGhlcmUsIHdlIGNhbid0IGZpZ3VyZSBvdXQgaWYgaXQgaXNcbiAqIGFuIGFycmF5IG9yIGFuIG9iamVjdCwgc28geW91J3JlIGdldHRpbmcgYHVua25vd25gLiBVc2UgYmV0dGVyIHR5cGVzLlxuICogQHBhcmFtIGFyZyBTb21ldGhpbmcgdHlwZWQgYXMgYGFueWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcmtKb2luPFQgZXh0ZW5kcyBBbnlDYXRjaGVyPihhcmc6IFQpOiBPYnNlcnZhYmxlPHVua25vd24+O1xuXG4vLyBmb3JrSm9pbihudWxsIHwgdW5kZWZpbmVkKVxuZXhwb3J0IGZ1bmN0aW9uIGZvcmtKb2luKHNjaGVkdWxlcjogbnVsbCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGU8bmV2ZXI+O1xuXG4vLyBmb3JrSm9pbihbYSwgYiwgY10pXG5leHBvcnQgZnVuY3Rpb24gZm9ya0pvaW4oc291cmNlczogcmVhZG9ubHkgW10pOiBPYnNlcnZhYmxlPG5ldmVyPjtcbmV4cG9ydCBmdW5jdGlvbiBmb3JrSm9pbjxBIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPihzb3VyY2VzOiByZWFkb25seSBbLi4uT2JzZXJ2YWJsZUlucHV0VHVwbGU8QT5dKTogT2JzZXJ2YWJsZTxBPjtcbmV4cG9ydCBmdW5jdGlvbiBmb3JrSm9pbjxBIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdLCBSPihcbiAgc291cmNlczogcmVhZG9ubHkgWy4uLk9ic2VydmFibGVJbnB1dFR1cGxlPEE+XSxcbiAgcmVzdWx0U2VsZWN0b3I6ICguLi52YWx1ZXM6IEEpID0+IFJcbik6IE9ic2VydmFibGU8Uj47XG5cbi8vIGZvcmtKb2luKGEsIGIsIGMpXG4vKiogQGRlcHJlY2F0ZWQgUGFzcyBhbiBhcnJheSBvZiBzb3VyY2VzIGluc3RlYWQuIFRoZSByZXN0LXBhcmFtZXRlcnMgc2lnbmF0dXJlIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvYXJyYXktYXJndW1lbnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JrSm9pbjxBIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiguLi5zb3VyY2VzOiBbLi4uT2JzZXJ2YWJsZUlucHV0VHVwbGU8QT5dKTogT2JzZXJ2YWJsZTxBPjtcbi8qKiBAZGVwcmVjYXRlZCBQYXNzIGFuIGFycmF5IG9mIHNvdXJjZXMgaW5zdGVhZC4gVGhlIHJlc3QtcGFyYW1ldGVycyBzaWduYXR1cmUgd2lsbCBiZSByZW1vdmVkIGluIHY4LiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9hcnJheS1hcmd1bWVudCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcmtKb2luPEEgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10sIFI+KFxuICAuLi5zb3VyY2VzQW5kUmVzdWx0U2VsZWN0b3I6IFsuLi5PYnNlcnZhYmxlSW5wdXRUdXBsZTxBPiwgKC4uLnZhbHVlczogQSkgPT4gUl1cbik6IE9ic2VydmFibGU8Uj47XG5cbi8vIGZvcmtKb2luKHthLCBiLCBjfSlcbmV4cG9ydCBmdW5jdGlvbiBmb3JrSm9pbihzb3VyY2VzT2JqZWN0OiB7IFtLIGluIGFueV06IG5ldmVyIH0pOiBPYnNlcnZhYmxlPG5ldmVyPjtcbmV4cG9ydCBmdW5jdGlvbiBmb3JrSm9pbjxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZUlucHV0PGFueT4+PihcbiAgc291cmNlc09iamVjdDogVFxuKTogT2JzZXJ2YWJsZTx7IFtLIGluIGtleW9mIFRdOiBPYnNlcnZlZFZhbHVlT2Y8VFtLXT4gfT47XG5cbi8qKlxuICogQWNjZXB0cyBhbiBgQXJyYXlgIG9mIHtAbGluayBPYnNlcnZhYmxlSW5wdXR9IG9yIGEgZGljdGlvbmFyeSBgT2JqZWN0YCBvZiB7QGxpbmsgT2JzZXJ2YWJsZUlucHV0fSBhbmQgcmV0dXJuc1xuICogYW4ge0BsaW5rIE9ic2VydmFibGV9IHRoYXQgZW1pdHMgZWl0aGVyIGFuIGFycmF5IG9mIHZhbHVlcyBpbiB0aGUgZXhhY3Qgc2FtZSBvcmRlciBhcyB0aGUgcGFzc2VkIGFycmF5LFxuICogb3IgYSBkaWN0aW9uYXJ5IG9mIHZhbHVlcyBpbiB0aGUgc2FtZSBzaGFwZSBhcyB0aGUgcGFzc2VkIGRpY3Rpb25hcnkuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPldhaXQgZm9yIE9ic2VydmFibGVzIHRvIGNvbXBsZXRlIGFuZCB0aGVuIGNvbWJpbmUgbGFzdCB2YWx1ZXMgdGhleSBlbWl0dGVkO1xuICogY29tcGxldGUgaW1tZWRpYXRlbHkgaWYgYW4gZW1wdHkgYXJyYXkgaXMgcGFzc2VkLjwvc3Bhbj5cbiAqXG4gKiAhW10oZm9ya0pvaW4ucG5nKVxuICpcbiAqIGBmb3JrSm9pbmAgaXMgYW4gb3BlcmF0b3IgdGhhdCB0YWtlcyBhbnkgbnVtYmVyIG9mIGlucHV0IG9ic2VydmFibGVzIHdoaWNoIGNhbiBiZSBwYXNzZWQgZWl0aGVyIGFzIGFuIGFycmF5XG4gKiBvciBhIGRpY3Rpb25hcnkgb2YgaW5wdXQgb2JzZXJ2YWJsZXMuIElmIG5vIGlucHV0IG9ic2VydmFibGVzIGFyZSBwcm92aWRlZCAoZS5nLiBhbiBlbXB0eSBhcnJheSBpcyBwYXNzZWQpLFxuICogdGhlbiB0aGUgcmVzdWx0aW5nIHN0cmVhbSB3aWxsIGNvbXBsZXRlIGltbWVkaWF0ZWx5LlxuICpcbiAqIGBmb3JrSm9pbmAgd2lsbCB3YWl0IGZvciBhbGwgcGFzc2VkIG9ic2VydmFibGVzIHRvIGVtaXQgYW5kIGNvbXBsZXRlIGFuZCB0aGVuIGl0IHdpbGwgZW1pdCBhbiBhcnJheSBvciBhbiBvYmplY3Qgd2l0aCBsYXN0XG4gKiB2YWx1ZXMgZnJvbSBjb3JyZXNwb25kaW5nIG9ic2VydmFibGVzLlxuICpcbiAqIElmIHlvdSBwYXNzIGFuIGFycmF5IG9mIGBuYCBvYnNlcnZhYmxlcyB0byB0aGUgb3BlcmF0b3IsIHRoZW4gdGhlIHJlc3VsdGluZ1xuICogYXJyYXkgd2lsbCBoYXZlIGBuYCB2YWx1ZXMsIHdoZXJlIHRoZSBmaXJzdCB2YWx1ZSBpcyB0aGUgbGFzdCBvbmUgZW1pdHRlZCBieSB0aGUgZmlyc3Qgb2JzZXJ2YWJsZSxcbiAqIHNlY29uZCB2YWx1ZSBpcyB0aGUgbGFzdCBvbmUgZW1pdHRlZCBieSB0aGUgc2Vjb25kIG9ic2VydmFibGUgYW5kIHNvIG9uLlxuICpcbiAqIElmIHlvdSBwYXNzIGEgZGljdGlvbmFyeSBvZiBvYnNlcnZhYmxlcyB0byB0aGUgb3BlcmF0b3IsIHRoZW4gdGhlIHJlc3VsdGluZ1xuICogb2JqZWN0cyB3aWxsIGhhdmUgdGhlIHNhbWUga2V5cyBhcyB0aGUgZGljdGlvbmFyeSBwYXNzZWQsIHdpdGggdGhlaXIgbGFzdCB2YWx1ZXMgdGhleSBoYXZlIGVtaXR0ZWRcbiAqIGxvY2F0ZWQgYXQgdGhlIGNvcnJlc3BvbmRpbmcga2V5LlxuICpcbiAqIFRoYXQgbWVhbnMgYGZvcmtKb2luYCB3aWxsIG5vdCBlbWl0IG1vcmUgdGhhbiBvbmNlIGFuZCBpdCB3aWxsIGNvbXBsZXRlIGFmdGVyIHRoYXQuIElmIHlvdSBuZWVkIHRvIGVtaXQgY29tYmluZWRcbiAqIHZhbHVlcyBub3Qgb25seSBhdCB0aGUgZW5kIG9mIHRoZSBsaWZlY3ljbGUgb2YgcGFzc2VkIG9ic2VydmFibGVzLCBidXQgYWxzbyB0aHJvdWdob3V0IGl0LCB0cnkgb3V0IHtAbGluayBjb21iaW5lTGF0ZXN0fVxuICogb3Ige0BsaW5rIHppcH0gaW5zdGVhZC5cbiAqXG4gKiBJbiBvcmRlciBmb3IgdGhlIHJlc3VsdGluZyBhcnJheSB0byBoYXZlIHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgbnVtYmVyIG9mIGlucHV0IG9ic2VydmFibGVzLCB3aGVuZXZlciBhbnkgb2ZcbiAqIHRoZSBnaXZlbiBvYnNlcnZhYmxlcyBjb21wbGV0ZXMgd2l0aG91dCBlbWl0dGluZyBhbnkgdmFsdWUsIGBmb3JrSm9pbmAgd2lsbCBjb21wbGV0ZSBhdCB0aGF0IG1vbWVudCBhcyB3ZWxsXG4gKiBhbmQgaXQgd2lsbCBub3QgZW1pdCBhbnl0aGluZyBlaXRoZXIsIGV2ZW4gaWYgaXQgYWxyZWFkeSBoYXMgc29tZSBsYXN0IHZhbHVlcyBmcm9tIG90aGVyIG9ic2VydmFibGVzLlxuICogQ29udmVyc2VseSwgaWYgdGhlcmUgaXMgYW4gb2JzZXJ2YWJsZSB0aGF0IG5ldmVyIGNvbXBsZXRlcywgYGZvcmtKb2luYCB3aWxsIG5ldmVyIGNvbXBsZXRlIGVpdGhlcixcbiAqIHVubGVzcyBhdCBhbnkgcG9pbnQgc29tZSBvdGhlciBvYnNlcnZhYmxlIGNvbXBsZXRlcyB3aXRob3V0IGVtaXR0aW5nIGEgdmFsdWUsIHdoaWNoIGJyaW5ncyB1cyBiYWNrIHRvXG4gKiB0aGUgcHJldmlvdXMgY2FzZS4gT3ZlcmFsbCwgaW4gb3JkZXIgZm9yIGBmb3JrSm9pbmAgdG8gZW1pdCBhIHZhbHVlLCBhbGwgZ2l2ZW4gb2JzZXJ2YWJsZXNcbiAqIGhhdmUgdG8gZW1pdCBzb21ldGhpbmcgYXQgbGVhc3Qgb25jZSBhbmQgY29tcGxldGUuXG4gKlxuICogSWYgYW55IGdpdmVuIG9ic2VydmFibGUgZXJyb3JzIGF0IHNvbWUgcG9pbnQsIGBmb3JrSm9pbmAgd2lsbCBlcnJvciBhcyB3ZWxsIGFuZCBpbW1lZGlhdGVseSB1bnN1YnNjcmliZVxuICogZnJvbSB0aGUgb3RoZXIgb2JzZXJ2YWJsZXMuXG4gKlxuICogT3B0aW9uYWxseSBgZm9ya0pvaW5gIGFjY2VwdHMgYSBgcmVzdWx0U2VsZWN0b3JgIGZ1bmN0aW9uLCB0aGF0IHdpbGwgYmUgY2FsbGVkIHdpdGggdmFsdWVzIHdoaWNoIG5vcm1hbGx5XG4gKiB3b3VsZCBsYW5kIGluIHRoZSBlbWl0dGVkIGFycmF5LiBXaGF0ZXZlciBpcyByZXR1cm5lZCBieSB0aGUgYHJlc3VsdFNlbGVjdG9yYCwgd2lsbCBhcHBlYXIgaW4gdGhlIG91dHB1dFxuICogb2JzZXJ2YWJsZSBpbnN0ZWFkLiBUaGlzIG1lYW5zIHRoYXQgdGhlIGRlZmF1bHQgYHJlc3VsdFNlbGVjdG9yYCBjYW4gYmUgdGhvdWdodCBvZiBhcyBhIGZ1bmN0aW9uIHRoYXQgdGFrZXNcbiAqIGFsbCBpdHMgYXJndW1lbnRzIGFuZCBwdXRzIHRoZW0gaW50byBhbiBhcnJheS4gTm90ZSB0aGF0IHRoZSBgcmVzdWx0U2VsZWN0b3JgIHdpbGwgYmUgY2FsbGVkIG9ubHlcbiAqIHdoZW4gYGZvcmtKb2luYCBpcyBzdXBwb3NlZCB0byBlbWl0IGEgcmVzdWx0LlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogVXNlIGBmb3JrSm9pbmAgd2l0aCBhIGRpY3Rpb25hcnkgb2Ygb2JzZXJ2YWJsZSBpbnB1dHNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZm9ya0pvaW4sIG9mLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IG9ic2VydmFibGUgPSBmb3JrSm9pbih7XG4gKiAgIGZvbzogb2YoMSwgMiwgMywgNCksXG4gKiAgIGJhcjogUHJvbWlzZS5yZXNvbHZlKDgpLFxuICogICBiYXo6IHRpbWVyKDQwMDApXG4gKiB9KTtcbiAqIG9ic2VydmFibGUuc3Vic2NyaWJlKHtcbiAqICBuZXh0OiB2YWx1ZSA9PiBjb25zb2xlLmxvZyh2YWx1ZSksXG4gKiAgY29tcGxldGU6ICgpID0+IGNvbnNvbGUubG9nKCdUaGlzIGlzIGhvdyBpdCBlbmRzIScpLFxuICogfSk7XG4gKlxuICogLy8gTG9nczpcbiAqIC8vIHsgZm9vOiA0LCBiYXI6IDgsIGJhejogMCB9IGFmdGVyIDQgc2Vjb25kc1xuICogLy8gJ1RoaXMgaXMgaG93IGl0IGVuZHMhJyBpbW1lZGlhdGVseSBhZnRlclxuICogYGBgXG4gKlxuICogVXNlIGBmb3JrSm9pbmAgd2l0aCBhbiBhcnJheSBvZiBvYnNlcnZhYmxlIGlucHV0c1xuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmb3JrSm9pbiwgb2YsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgb2JzZXJ2YWJsZSA9IGZvcmtKb2luKFtcbiAqICAgb2YoMSwgMiwgMywgNCksXG4gKiAgIFByb21pc2UucmVzb2x2ZSg4KSxcbiAqICAgdGltZXIoNDAwMClcbiAqIF0pO1xuICogb2JzZXJ2YWJsZS5zdWJzY3JpYmUoe1xuICogIG5leHQ6IHZhbHVlID0+IGNvbnNvbGUubG9nKHZhbHVlKSxcbiAqICBjb21wbGV0ZTogKCkgPT4gY29uc29sZS5sb2coJ1RoaXMgaXMgaG93IGl0IGVuZHMhJyksXG4gKiB9KTtcbiAqXG4gKiAvLyBMb2dzOlxuICogLy8gWzQsIDgsIDBdIGFmdGVyIDQgc2Vjb25kc1xuICogLy8gJ1RoaXMgaXMgaG93IGl0IGVuZHMhJyBpbW1lZGlhdGVseSBhZnRlclxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgY29tYmluZUxhdGVzdH1cbiAqIEBzZWUge0BsaW5rIHppcH1cbiAqXG4gKiBAcGFyYW0gYXJncyBBbnkgbnVtYmVyIG9mIGBPYnNlcnZhYmxlSW5wdXRgcyBwcm92aWRlZCBlaXRoZXIgYXMgYW4gYXJyYXksIGFzIGFuIG9iamVjdFxuICogb3IgYXMgYXJndW1lbnRzIHBhc3NlZCBkaXJlY3RseSB0byB0aGUgb3BlcmF0b3IuXG4gKiBAcmV0dXJuIE9ic2VydmFibGUgZW1pdHRpbmcgZWl0aGVyIGFuIGFycmF5IG9mIGxhc3QgdmFsdWVzIGVtaXR0ZWQgYnkgcGFzc2VkIE9ic2VydmFibGVzXG4gKiBvciB2YWx1ZSBmcm9tIHByb2plY3QgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JrSm9pbiguLi5hcmdzOiBhbnlbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gIGNvbnN0IHJlc3VsdFNlbGVjdG9yID0gcG9wUmVzdWx0U2VsZWN0b3IoYXJncyk7XG4gIGNvbnN0IHsgYXJnczogc291cmNlcywga2V5cyB9ID0gYXJnc0FyZ0FycmF5T3JPYmplY3QoYXJncyk7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgY29uc3QgeyBsZW5ndGggfSA9IHNvdXJjZXM7XG4gICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmFsdWVzID0gbmV3IEFycmF5KGxlbmd0aCk7XG4gICAgbGV0IHJlbWFpbmluZ0NvbXBsZXRpb25zID0gbGVuZ3RoO1xuICAgIGxldCByZW1haW5pbmdFbWlzc2lvbnMgPSBsZW5ndGg7XG4gICAgZm9yIChsZXQgc291cmNlSW5kZXggPSAwOyBzb3VyY2VJbmRleCA8IGxlbmd0aDsgc291cmNlSW5kZXgrKykge1xuICAgICAgbGV0IGhhc1ZhbHVlID0gZmFsc2U7XG4gICAgICBpbm5lckZyb20oc291cmNlc1tzb3VyY2VJbmRleF0pLnN1YnNjcmliZShcbiAgICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICAgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWhhc1ZhbHVlKSB7XG4gICAgICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgcmVtYWluaW5nRW1pc3Npb25zLS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YWx1ZXNbc291cmNlSW5kZXhdID0gdmFsdWU7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoKSA9PiByZW1haW5pbmdDb21wbGV0aW9ucy0tLFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlbWFpbmluZ0NvbXBsZXRpb25zIHx8ICFoYXNWYWx1ZSkge1xuICAgICAgICAgICAgICBpZiAoIXJlbWFpbmluZ0VtaXNzaW9ucykge1xuICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChrZXlzID8gY3JlYXRlT2JqZWN0KGtleXMsIHZhbHVlcykgOiB2YWx1ZXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yID8gcmVzdWx0LnBpcGUobWFwT25lT3JNYW55QXJncyhyZXN1bHRTZWxlY3RvcikpIDogcmVzdWx0O1xufVxuIiwgImltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4uL29ic2VydmFibGUvaW5uZXJGcm9tJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IG1lcmdlTWFwIH0gZnJvbSAnLi4vb3BlcmF0b3JzL21lcmdlTWFwJztcbmltcG9ydCB7IGlzQXJyYXlMaWtlIH0gZnJvbSAnLi4vdXRpbC9pc0FycmF5TGlrZSc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vdXRpbC9pc0Z1bmN0aW9uJztcbmltcG9ydCB7IG1hcE9uZU9yTWFueUFyZ3MgfSBmcm9tICcuLi91dGlsL21hcE9uZU9yTWFueUFyZ3MnO1xuXG4vLyBUaGVzZSBjb25zdGFudHMgYXJlIHVzZWQgdG8gY3JlYXRlIGhhbmRsZXIgcmVnaXN0cnkgZnVuY3Rpb25zIHVzaW5nIGFycmF5IG1hcHBpbmcgYmVsb3cuXG5jb25zdCBub2RlRXZlbnRFbWl0dGVyTWV0aG9kcyA9IFsnYWRkTGlzdGVuZXInLCAncmVtb3ZlTGlzdGVuZXInXSBhcyBjb25zdDtcbmNvbnN0IGV2ZW50VGFyZ2V0TWV0aG9kcyA9IFsnYWRkRXZlbnRMaXN0ZW5lcicsICdyZW1vdmVFdmVudExpc3RlbmVyJ10gYXMgY29uc3Q7XG5jb25zdCBqcXVlcnlNZXRob2RzID0gWydvbicsICdvZmYnXSBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBOb2RlU3R5bGVFdmVudEVtaXR0ZXIge1xuICBhZGRMaXN0ZW5lcihldmVudE5hbWU6IHN0cmluZyB8IHN5bWJvbCwgaGFuZGxlcjogTm9kZUV2ZW50SGFuZGxlcik6IHRoaXM7XG4gIHJlbW92ZUxpc3RlbmVyKGV2ZW50TmFtZTogc3RyaW5nIHwgc3ltYm9sLCBoYW5kbGVyOiBOb2RlRXZlbnRIYW5kbGVyKTogdGhpcztcbn1cblxuZXhwb3J0IHR5cGUgTm9kZUV2ZW50SGFuZGxlciA9ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcblxuLy8gRm9yIEFQSXMgdGhhdCBpbXBsZW1lbnQgYGFkZExpc3RlbmVyYCBhbmQgYHJlbW92ZUxpc3RlbmVyYCBtZXRob2RzIHRoYXQgbWF5XG4vLyBub3QgdXNlIHRoZSBzYW1lIGFyZ3VtZW50cyBvciByZXR1cm4gRXZlbnRFbWl0dGVyIHZhbHVlc1xuLy8gc3VjaCBhcyBSZWFjdCBOYXRpdmVcbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUNvbXBhdGlibGVFdmVudEVtaXR0ZXIge1xuICBhZGRMaXN0ZW5lcihldmVudE5hbWU6IHN0cmluZywgaGFuZGxlcjogTm9kZUV2ZW50SGFuZGxlcik6IHZvaWQgfCB7fTtcbiAgcmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lOiBzdHJpbmcsIGhhbmRsZXI6IE5vZGVFdmVudEhhbmRsZXIpOiB2b2lkIHwge307XG59XG5cbi8vIFVzZSBoYW5kbGVyIHR5cGVzIGxpa2UgdGhvc2UgaW4gQHR5cGVzL2pxdWVyeS4gU2VlOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0RlZmluaXRlbHlUeXBlZC9EZWZpbml0ZWx5VHlwZWQvYmxvYi84NDc3MzFiYTFkN2ZhNmRiNmI5MTFjMGU0M2FhMGFmZTU5NmU3NzIzL3R5cGVzL2pxdWVyeS9taXNjLmQudHMjTDYzOTVcbmV4cG9ydCBpbnRlcmZhY2UgSlF1ZXJ5U3R5bGVFdmVudEVtaXR0ZXI8VENvbnRleHQsIFQ+IHtcbiAgb24oZXZlbnROYW1lOiBzdHJpbmcsIGhhbmRsZXI6ICh0aGlzOiBUQ29udGV4dCwgdDogVCwgLi4uYXJnczogYW55W10pID0+IGFueSk6IHZvaWQ7XG4gIG9mZihldmVudE5hbWU6IHN0cmluZywgaGFuZGxlcjogKHRoaXM6IFRDb250ZXh0LCB0OiBULCAuLi5hcmdzOiBhbnlbXSkgPT4gYW55KTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudExpc3RlbmVyT2JqZWN0PEU+IHtcbiAgaGFuZGxlRXZlbnQoZXZ0OiBFKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYXNFdmVudFRhcmdldEFkZFJlbW92ZTxFPiB7XG4gIGFkZEV2ZW50TGlzdGVuZXIoXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIGxpc3RlbmVyOiAoKGV2dDogRSkgPT4gdm9pZCkgfCBFdmVudExpc3RlbmVyT2JqZWN0PEU+IHwgbnVsbCxcbiAgICBvcHRpb25zPzogYm9vbGVhbiB8IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zXG4gICk6IHZvaWQ7XG4gIHJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIGxpc3RlbmVyOiAoKGV2dDogRSkgPT4gdm9pZCkgfCBFdmVudExpc3RlbmVyT2JqZWN0PEU+IHwgbnVsbCxcbiAgICBvcHRpb25zPzogRXZlbnRMaXN0ZW5lck9wdGlvbnMgfCBib29sZWFuXG4gICk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRMaXN0ZW5lck9wdGlvbnMge1xuICBjYXB0dXJlPzogYm9vbGVhbjtcbiAgcGFzc2l2ZT86IGJvb2xlYW47XG4gIG9uY2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zIGV4dGVuZHMgRXZlbnRMaXN0ZW5lck9wdGlvbnMge1xuICBvbmNlPzogYm9vbGVhbjtcbiAgcGFzc2l2ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tRXZlbnQ8VD4odGFyZ2V0OiBIYXNFdmVudFRhcmdldEFkZFJlbW92ZTxUPiB8IEFycmF5TGlrZTxIYXNFdmVudFRhcmdldEFkZFJlbW92ZTxUPj4sIGV2ZW50TmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPjtcbmV4cG9ydCBmdW5jdGlvbiBmcm9tRXZlbnQ8VCwgUj4oXG4gIHRhcmdldDogSGFzRXZlbnRUYXJnZXRBZGRSZW1vdmU8VD4gfCBBcnJheUxpa2U8SGFzRXZlbnRUYXJnZXRBZGRSZW1vdmU8VD4+LFxuICBldmVudE5hbWU6IHN0cmluZyxcbiAgcmVzdWx0U2VsZWN0b3I6IChldmVudDogVCkgPT4gUlxuKTogT2JzZXJ2YWJsZTxSPjtcbmV4cG9ydCBmdW5jdGlvbiBmcm9tRXZlbnQ8VD4oXG4gIHRhcmdldDogSGFzRXZlbnRUYXJnZXRBZGRSZW1vdmU8VD4gfCBBcnJheUxpa2U8SGFzRXZlbnRUYXJnZXRBZGRSZW1vdmU8VD4+LFxuICBldmVudE5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogRXZlbnRMaXN0ZW5lck9wdGlvbnNcbik6IE9ic2VydmFibGU8VD47XG5leHBvcnQgZnVuY3Rpb24gZnJvbUV2ZW50PFQsIFI+KFxuICB0YXJnZXQ6IEhhc0V2ZW50VGFyZ2V0QWRkUmVtb3ZlPFQ+IHwgQXJyYXlMaWtlPEhhc0V2ZW50VGFyZ2V0QWRkUmVtb3ZlPFQ+PixcbiAgZXZlbnROYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IEV2ZW50TGlzdGVuZXJPcHRpb25zLFxuICByZXN1bHRTZWxlY3RvcjogKGV2ZW50OiBUKSA9PiBSXG4pOiBPYnNlcnZhYmxlPFI+O1xuXG5leHBvcnQgZnVuY3Rpb24gZnJvbUV2ZW50KHRhcmdldDogTm9kZVN0eWxlRXZlbnRFbWl0dGVyIHwgQXJyYXlMaWtlPE5vZGVTdHlsZUV2ZW50RW1pdHRlcj4sIGV2ZW50TmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx1bmtub3duPjtcbi8qKiBAZGVwcmVjYXRlZCBEbyBub3Qgc3BlY2lmeSBleHBsaWNpdCB0eXBlIHBhcmFtZXRlcnMuIFNpZ25hdHVyZXMgd2l0aCB0eXBlIHBhcmFtZXRlcnMgdGhhdCBjYW5ub3QgYmUgaW5mZXJyZWQgd2lsbCBiZSByZW1vdmVkIGluIHY4LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21FdmVudDxUPih0YXJnZXQ6IE5vZGVTdHlsZUV2ZW50RW1pdHRlciB8IEFycmF5TGlrZTxOb2RlU3R5bGVFdmVudEVtaXR0ZXI+LCBldmVudE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VD47XG5leHBvcnQgZnVuY3Rpb24gZnJvbUV2ZW50PFI+KFxuICB0YXJnZXQ6IE5vZGVTdHlsZUV2ZW50RW1pdHRlciB8IEFycmF5TGlrZTxOb2RlU3R5bGVFdmVudEVtaXR0ZXI+LFxuICBldmVudE5hbWU6IHN0cmluZyxcbiAgcmVzdWx0U2VsZWN0b3I6ICguLi5hcmdzOiBhbnlbXSkgPT4gUlxuKTogT2JzZXJ2YWJsZTxSPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21FdmVudChcbiAgdGFyZ2V0OiBOb2RlQ29tcGF0aWJsZUV2ZW50RW1pdHRlciB8IEFycmF5TGlrZTxOb2RlQ29tcGF0aWJsZUV2ZW50RW1pdHRlcj4sXG4gIGV2ZW50TmFtZTogc3RyaW5nXG4pOiBPYnNlcnZhYmxlPHVua25vd24+O1xuLyoqIEBkZXByZWNhdGVkIERvIG5vdCBzcGVjaWZ5IGV4cGxpY2l0IHR5cGUgcGFyYW1ldGVycy4gU2lnbmF0dXJlcyB3aXRoIHR5cGUgcGFyYW1ldGVycyB0aGF0IGNhbm5vdCBiZSBpbmZlcnJlZCB3aWxsIGJlIHJlbW92ZWQgaW4gdjguICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbUV2ZW50PFQ+KHRhcmdldDogTm9kZUNvbXBhdGlibGVFdmVudEVtaXR0ZXIgfCBBcnJheUxpa2U8Tm9kZUNvbXBhdGlibGVFdmVudEVtaXR0ZXI+LCBldmVudE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VD47XG5leHBvcnQgZnVuY3Rpb24gZnJvbUV2ZW50PFI+KFxuICB0YXJnZXQ6IE5vZGVDb21wYXRpYmxlRXZlbnRFbWl0dGVyIHwgQXJyYXlMaWtlPE5vZGVDb21wYXRpYmxlRXZlbnRFbWl0dGVyPixcbiAgZXZlbnROYW1lOiBzdHJpbmcsXG4gIHJlc3VsdFNlbGVjdG9yOiAoLi4uYXJnczogYW55W10pID0+IFJcbik6IE9ic2VydmFibGU8Uj47XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tRXZlbnQ8VD4oXG4gIHRhcmdldDogSlF1ZXJ5U3R5bGVFdmVudEVtaXR0ZXI8YW55LCBUPiB8IEFycmF5TGlrZTxKUXVlcnlTdHlsZUV2ZW50RW1pdHRlcjxhbnksIFQ+PixcbiAgZXZlbnROYW1lOiBzdHJpbmdcbik6IE9ic2VydmFibGU8VD47XG5leHBvcnQgZnVuY3Rpb24gZnJvbUV2ZW50PFQsIFI+KFxuICB0YXJnZXQ6IEpRdWVyeVN0eWxlRXZlbnRFbWl0dGVyPGFueSwgVD4gfCBBcnJheUxpa2U8SlF1ZXJ5U3R5bGVFdmVudEVtaXR0ZXI8YW55LCBUPj4sXG4gIGV2ZW50TmFtZTogc3RyaW5nLFxuICByZXN1bHRTZWxlY3RvcjogKHZhbHVlOiBULCAuLi5hcmdzOiBhbnlbXSkgPT4gUlxuKTogT2JzZXJ2YWJsZTxSPjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBldmVudHMgb2YgYSBzcGVjaWZpYyB0eXBlIGNvbWluZyBmcm9tIHRoZVxuICogZ2l2ZW4gZXZlbnQgdGFyZ2V0LlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5DcmVhdGVzIGFuIE9ic2VydmFibGUgZnJvbSBET00gZXZlbnRzLCBvciBOb2RlLmpzXG4gKiBFdmVudEVtaXR0ZXIgZXZlbnRzIG9yIG90aGVycy48L3NwYW4+XG4gKlxuICogIVtdKGZyb21FdmVudC5wbmcpXG4gKlxuICogYGZyb21FdmVudGAgYWNjZXB0cyBhcyBhIGZpcnN0IGFyZ3VtZW50IGV2ZW50IHRhcmdldCwgd2hpY2ggaXMgYW4gb2JqZWN0IHdpdGggbWV0aG9kc1xuICogZm9yIHJlZ2lzdGVyaW5nIGV2ZW50IGhhbmRsZXIgZnVuY3Rpb25zLiBBcyBhIHNlY29uZCBhcmd1bWVudCBpdCB0YWtlcyBzdHJpbmcgdGhhdCBpbmRpY2F0ZXNcbiAqIHR5cGUgb2YgZXZlbnQgd2Ugd2FudCB0byBsaXN0ZW4gZm9yLiBgZnJvbUV2ZW50YCBzdXBwb3J0cyBzZWxlY3RlZCB0eXBlcyBvZiBldmVudCB0YXJnZXRzLFxuICogd2hpY2ggYXJlIGRlc2NyaWJlZCBpbiBkZXRhaWwgYmVsb3cuIElmIHlvdXIgZXZlbnQgdGFyZ2V0IGRvZXMgbm90IG1hdGNoIGFueSBvZiB0aGUgb25lcyBsaXN0ZWQsXG4gKiB5b3Ugc2hvdWxkIHVzZSB7QGxpbmsgZnJvbUV2ZW50UGF0dGVybn0sIHdoaWNoIGNhbiBiZSB1c2VkIG9uIGFyYml0cmFyeSBBUElzLlxuICogV2hlbiBpdCBjb21lcyB0byBBUElzIHN1cHBvcnRlZCBieSBgZnJvbUV2ZW50YCwgdGhlaXIgbWV0aG9kcyBmb3IgYWRkaW5nIGFuZCByZW1vdmluZyBldmVudFxuICogaGFuZGxlciBmdW5jdGlvbnMgaGF2ZSBkaWZmZXJlbnQgbmFtZXMsIGJ1dCB0aGV5IGFsbCBhY2NlcHQgYSBzdHJpbmcgZGVzY3JpYmluZyBldmVudCB0eXBlXG4gKiBhbmQgZnVuY3Rpb24gaXRzZWxmLCB3aGljaCB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBzYWlkIGV2ZW50IGhhcHBlbnMuXG4gKlxuICogRXZlcnkgdGltZSByZXN1bHRpbmcgT2JzZXJ2YWJsZSBpcyBzdWJzY3JpYmVkLCBldmVudCBoYW5kbGVyIGZ1bmN0aW9uIHdpbGwgYmUgcmVnaXN0ZXJlZFxuICogdG8gZXZlbnQgdGFyZ2V0IG9uIGdpdmVuIGV2ZW50IHR5cGUuIFdoZW4gdGhhdCBldmVudCBmaXJlcywgdmFsdWVcbiAqIHBhc3NlZCBhcyBhIGZpcnN0IGFyZ3VtZW50IHRvIHJlZ2lzdGVyZWQgZnVuY3Rpb24gd2lsbCBiZSBlbWl0dGVkIGJ5IG91dHB1dCBPYnNlcnZhYmxlLlxuICogV2hlbiBPYnNlcnZhYmxlIGlzIHVuc3Vic2NyaWJlZCwgZnVuY3Rpb24gd2lsbCBiZSB1bnJlZ2lzdGVyZWQgZnJvbSBldmVudCB0YXJnZXQuXG4gKlxuICogTm90ZSB0aGF0IGlmIGV2ZW50IHRhcmdldCBjYWxscyByZWdpc3RlcmVkIGZ1bmN0aW9uIHdpdGggbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgc2Vjb25kXG4gKiBhbmQgZm9sbG93aW5nIGFyZ3VtZW50cyB3aWxsIG5vdCBhcHBlYXIgaW4gcmVzdWx0aW5nIHN0cmVhbS4gSW4gb3JkZXIgdG8gZ2V0IGFjY2VzcyB0byB0aGVtLFxuICogeW91IGNhbiBwYXNzIHRvIGBmcm9tRXZlbnRgIG9wdGlvbmFsIHByb2plY3QgZnVuY3Rpb24sIHdoaWNoIHdpbGwgYmUgY2FsbGVkIHdpdGggYWxsIGFyZ3VtZW50c1xuICogcGFzc2VkIHRvIGV2ZW50IGhhbmRsZXIuIE91dHB1dCBPYnNlcnZhYmxlIHdpbGwgdGhlbiBlbWl0IHZhbHVlIHJldHVybmVkIGJ5IHByb2plY3QgZnVuY3Rpb24sXG4gKiBpbnN0ZWFkIG9mIHRoZSB1c3VhbCB2YWx1ZS5cbiAqXG4gKiBSZW1lbWJlciB0aGF0IGV2ZW50IHRhcmdldHMgbGlzdGVkIGJlbG93IGFyZSBjaGVja2VkIHZpYSBkdWNrIHR5cGluZy4gSXQgbWVhbnMgdGhhdFxuICogbm8gbWF0dGVyIHdoYXQga2luZCBvZiBvYmplY3QgeW91IGhhdmUgYW5kIG5vIG1hdHRlciB3aGF0IGVudmlyb25tZW50IHlvdSB3b3JrIGluLFxuICogeW91IGNhbiBzYWZlbHkgdXNlIGBmcm9tRXZlbnRgIG9uIHRoYXQgb2JqZWN0IGlmIGl0IGV4cG9zZXMgZGVzY3JpYmVkIG1ldGhvZHMgKHByb3ZpZGVkXG4gKiBvZiBjb3Vyc2UgdGhleSBiZWhhdmUgYXMgd2FzIGRlc2NyaWJlZCBhYm92ZSkuIFNvIGZvciBleGFtcGxlIGlmIE5vZGUuanMgbGlicmFyeSBleHBvc2VzXG4gKiBldmVudCB0YXJnZXQgd2hpY2ggaGFzIHRoZSBzYW1lIG1ldGhvZCBuYW1lcyBhcyBET00gRXZlbnRUYXJnZXQsIGBmcm9tRXZlbnRgIGlzIHN0aWxsXG4gKiBhIGdvb2QgY2hvaWNlLlxuICpcbiAqIElmIHRoZSBBUEkgeW91IHVzZSBpcyBtb3JlIGNhbGxiYWNrIHRoZW4gZXZlbnQgaGFuZGxlciBvcmllbnRlZCAoc3Vic2NyaWJlZFxuICogY2FsbGJhY2sgZnVuY3Rpb24gZmlyZXMgb25seSBvbmNlIGFuZCB0aHVzIHRoZXJlIGlzIG5vIG5lZWQgdG8gbWFudWFsbHlcbiAqIHVucmVnaXN0ZXIgaXQpLCB5b3Ugc2hvdWxkIHVzZSB7QGxpbmsgYmluZENhbGxiYWNrfSBvciB7QGxpbmsgYmluZE5vZGVDYWxsYmFja31cbiAqIGluc3RlYWQuXG4gKlxuICogYGZyb21FdmVudGAgc3VwcG9ydHMgZm9sbG93aW5nIHR5cGVzIG9mIGV2ZW50IHRhcmdldHM6XG4gKlxuICogKipET00gRXZlbnRUYXJnZXQqKlxuICpcbiAqIFRoaXMgaXMgYW4gb2JqZWN0IHdpdGggYGFkZEV2ZW50TGlzdGVuZXJgIGFuZCBgcmVtb3ZlRXZlbnRMaXN0ZW5lcmAgbWV0aG9kcy5cbiAqXG4gKiBJbiB0aGUgYnJvd3NlciwgYGFkZEV2ZW50TGlzdGVuZXJgIGFjY2VwdHMgLSBhcGFydCBmcm9tIGV2ZW50IHR5cGUgc3RyaW5nIGFuZCBldmVudFxuICogaGFuZGxlciBmdW5jdGlvbiBhcmd1bWVudHMgLSBvcHRpb25hbCB0aGlyZCBwYXJhbWV0ZXIsIHdoaWNoIGlzIGVpdGhlciBhbiBvYmplY3Qgb3IgYm9vbGVhbixcbiAqIGJvdGggdXNlZCBmb3IgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGhvdyBhbmQgd2hlbiBwYXNzZWQgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQuIFdoZW5cbiAqIGBmcm9tRXZlbnRgIGlzIHVzZWQgd2l0aCBldmVudCB0YXJnZXQgb2YgdGhhdCB0eXBlLCB5b3UgY2FuIHByb3ZpZGUgdGhpcyB2YWx1ZXNcbiAqIGFzIHRoaXJkIHBhcmFtZXRlciBhcyB3ZWxsLlxuICpcbiAqICoqTm9kZS5qcyBFdmVudEVtaXR0ZXIqKlxuICpcbiAqIEFuIG9iamVjdCB3aXRoIGBhZGRMaXN0ZW5lcmAgYW5kIGByZW1vdmVMaXN0ZW5lcmAgbWV0aG9kcy5cbiAqXG4gKiAqKkpRdWVyeS1zdHlsZSBldmVudCB0YXJnZXQqKlxuICpcbiAqIEFuIG9iamVjdCB3aXRoIGBvbmAgYW5kIGBvZmZgIG1ldGhvZHNcbiAqXG4gKiAqKkRPTSBOb2RlTGlzdCoqXG4gKlxuICogTGlzdCBvZiBET00gTm9kZXMsIHJldHVybmVkIGZvciBleGFtcGxlIGJ5IGBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsYCBvciBgTm9kZS5jaGlsZE5vZGVzYC5cbiAqXG4gKiBBbHRob3VnaCB0aGlzIGNvbGxlY3Rpb24gaXMgbm90IGV2ZW50IHRhcmdldCBpbiBpdHNlbGYsIGBmcm9tRXZlbnRgIHdpbGwgaXRlcmF0ZSBvdmVyIGFsbCBOb2Rlc1xuICogaXQgY29udGFpbnMgYW5kIGluc3RhbGwgZXZlbnQgaGFuZGxlciBmdW5jdGlvbiBpbiBldmVyeSBvZiB0aGVtLiBXaGVuIHJldHVybmVkIE9ic2VydmFibGVcbiAqIGlzIHVuc3Vic2NyaWJlZCwgZnVuY3Rpb24gd2lsbCBiZSByZW1vdmVkIGZyb20gYWxsIE5vZGVzLlxuICpcbiAqICoqRE9NIEh0bWxDb2xsZWN0aW9uKipcbiAqXG4gKiBKdXN0IGFzIGluIGNhc2Ugb2YgTm9kZUxpc3QgaXQgaXMgYSBjb2xsZWN0aW9uIG9mIERPTSBub2Rlcy4gSGVyZSBhcyB3ZWxsIGV2ZW50IGhhbmRsZXIgZnVuY3Rpb24gaXNcbiAqIGluc3RhbGxlZCBhbmQgcmVtb3ZlZCBpbiBlYWNoIG9mIGVsZW1lbnRzLlxuICpcbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIEVtaXQgY2xpY2tzIGhhcHBlbmluZyBvbiB0aGUgRE9NIGRvY3VtZW50XG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjbGlja3Muc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIFJlc3VsdHMgaW46XG4gKiAvLyBNb3VzZUV2ZW50IG9iamVjdCBsb2dnZWQgdG8gY29uc29sZSBldmVyeSB0aW1lIGEgY2xpY2tcbiAqIC8vIG9jY3VycyBvbiB0aGUgZG9jdW1lbnQuXG4gKiBgYGBcbiAqXG4gKiBVc2UgYGFkZEV2ZW50TGlzdGVuZXJgIHdpdGggY2FwdHVyZSBvcHRpb25cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gKiBkaXYuc3R5bGUuY3NzVGV4dCA9ICd3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6ICMwOWM7JztcbiAqIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTtcbiAqXG4gKiAvLyBub3RlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRvIGFkZEV2ZW50TGlzdGVuZXJcbiAqIGNvbnN0IGNsaWNrc0luRG9jdW1lbnQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAqIGNvbnN0IGNsaWNrc0luRGl2ID0gZnJvbUV2ZW50KGRpdiwgJ2NsaWNrJyk7XG4gKlxuICogY2xpY2tzSW5Eb2N1bWVudC5zdWJzY3JpYmUoKCkgPT4gY29uc29sZS5sb2coJ2RvY3VtZW50JykpO1xuICogY2xpY2tzSW5EaXYuc3Vic2NyaWJlKCgpID0+IGNvbnNvbGUubG9nKCdkaXYnKSk7XG4gKlxuICogLy8gQnkgZGVmYXVsdCBldmVudHMgYnViYmxlIFVQIGluIERPTSB0cmVlLCBzbyBub3JtYWxseVxuICogLy8gd2hlbiB3ZSB3b3VsZCBjbGljayBvbiBkaXYgaW4gZG9jdW1lbnRcbiAqIC8vIFwiZGl2XCIgd291bGQgYmUgbG9nZ2VkIGZpcnN0IGFuZCB0aGVuIFwiZG9jdW1lbnRcIi5cbiAqIC8vIFNpbmNlIHdlIHNwZWNpZmllZCBvcHRpb25hbCBgY2FwdHVyZWAgb3B0aW9uLCBkb2N1bWVudFxuICogLy8gd2lsbCBjYXRjaCBldmVudCB3aGVuIGl0IGdvZXMgRE9XTiBET00gdHJlZSwgc28gY29uc29sZVxuICogLy8gd2lsbCBsb2cgXCJkb2N1bWVudFwiIGFuZCB0aGVuIFwiZGl2XCIuXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBiaW5kQ2FsbGJhY2t9XG4gKiBAc2VlIHtAbGluayBiaW5kTm9kZUNhbGxiYWNrfVxuICogQHNlZSB7QGxpbmsgZnJvbUV2ZW50UGF0dGVybn1cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IFRoZSBET00gRXZlbnRUYXJnZXQsIE5vZGUuanMgRXZlbnRFbWl0dGVyLCBKUXVlcnktbGlrZSBldmVudCB0YXJnZXQsXG4gKiBOb2RlTGlzdCBvciBIVE1MQ29sbGVjdGlvbiB0byBhdHRhY2ggdGhlIGV2ZW50IGhhbmRsZXIgdG8uXG4gKiBAcGFyYW0gZXZlbnROYW1lIFRoZSBldmVudCBuYW1lIG9mIGludGVyZXN0LCBiZWluZyBlbWl0dGVkIGJ5IHRoZSBgdGFyZ2V0YC5cbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgdG8gcGFzcyB0aHJvdWdoIHRvIHRoZSB1bmRlcmx5aW5nIGBhZGRMaXN0ZW5lcmAsXG4gKiBgYWRkRXZlbnRMaXN0ZW5lcmAgb3IgYG9uYCBmdW5jdGlvbnMuXG4gKiBAcGFyYW0gcmVzdWx0U2VsZWN0b3IgQSBtYXBwaW5nIGZ1bmN0aW9uIHVzZWQgdG8gdHJhbnNmb3JtIGV2ZW50cy4gSXQgdGFrZXMgdGhlXG4gKiBhcmd1bWVudHMgZnJvbSB0aGUgZXZlbnQgaGFuZGxlciBhbmQgc2hvdWxkIHJldHVybiBhIHNpbmdsZSB2YWx1ZS5cbiAqIEByZXR1cm4gQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyBldmVudHMgcmVnaXN0ZXJlZCB0aHJvdWdoIGB0YXJnZXRgJ3NcbiAqIGxpc3RlbmVyIGhhbmRsZXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbUV2ZW50PFQ+KFxuICB0YXJnZXQ6IGFueSxcbiAgZXZlbnROYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBFdmVudExpc3RlbmVyT3B0aW9ucyB8ICgoLi4uYXJnczogYW55W10pID0+IFQpLFxuICByZXN1bHRTZWxlY3Rvcj86ICguLi5hcmdzOiBhbnlbXSkgPT4gVFxuKTogT2JzZXJ2YWJsZTxUPiB7XG4gIGlmIChpc0Z1bmN0aW9uKG9wdGlvbnMpKSB7XG4gICAgcmVzdWx0U2VsZWN0b3IgPSBvcHRpb25zO1xuICAgIG9wdGlvbnMgPSB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7XG4gICAgcmV0dXJuIGZyb21FdmVudDxUPih0YXJnZXQsIGV2ZW50TmFtZSwgb3B0aW9ucyBhcyBFdmVudExpc3RlbmVyT3B0aW9ucykucGlwZShtYXBPbmVPck1hbnlBcmdzKHJlc3VsdFNlbGVjdG9yKSk7XG4gIH1cblxuICAvLyBGaWd1cmUgb3V0IG91ciBhZGQgYW5kIHJlbW92ZSBtZXRob2RzLiBJbiBvcmRlciB0byBkbyB0aGlzLFxuICAvLyB3ZSBhcmUgZ29pbmcgdG8gYW5hbHl6ZSB0aGUgdGFyZ2V0IGluIGEgcHJlZmVycmVkIG9yZGVyLCBpZlxuICAvLyB0aGUgdGFyZ2V0IG1hdGNoZXMgYSBnaXZlbiBzaWduYXR1cmUsIHdlIHRha2UgdGhlIHR3byBcImFkZFwiIGFuZCBcInJlbW92ZVwiXG4gIC8vIG1ldGhvZCBuYW1lcyBhbmQgYXBwbHkgdGhlbSB0byBhIG1hcCB0byBjcmVhdGUgb3Bwb3NpdGUgdmVyc2lvbnMgb2YgdGhlXG4gIC8vIHNhbWUgZnVuY3Rpb24uIFRoaXMgaXMgYmVjYXVzZSB0aGV5IGFsbCBvcGVyYXRlIGluIGR1cGxpY2F0ZSBwYWlycyxcbiAgLy8gYGFkZExpc3RlbmVyKG5hbWUsIGhhbmRsZXIpYCwgYHJlbW92ZUxpc3RlbmVyKG5hbWUsIGhhbmRsZXIpYCwgZm9yIGV4YW1wbGUuXG4gIC8vIFRoZSBjYWxsIG9ubHkgZGlmZmVycyBieSBtZXRob2QgbmFtZSwgYXMgdG8gd2hldGhlciBvciBub3QgeW91J3JlIGFkZGluZyBvciByZW1vdmluZy5cbiAgY29uc3QgW2FkZCwgcmVtb3ZlXSA9XG4gICAgLy8gSWYgaXQgaXMgYW4gRXZlbnRUYXJnZXQsIHdlIG5lZWQgdG8gdXNlIGEgc2xpZ2h0bHkgZGlmZmVyZW50IG1ldGhvZCB0aGFuIHRoZSBvdGhlciB0d28gcGF0dGVybnMuXG4gICAgaXNFdmVudFRhcmdldCh0YXJnZXQpXG4gICAgICA/IGV2ZW50VGFyZ2V0TWV0aG9kcy5tYXAoKG1ldGhvZE5hbWUpID0+IChoYW5kbGVyOiBhbnkpID0+IHRhcmdldFttZXRob2ROYW1lXShldmVudE5hbWUsIGhhbmRsZXIsIG9wdGlvbnMgYXMgRXZlbnRMaXN0ZW5lck9wdGlvbnMpKVxuICAgICAgOiAvLyBJbiBhbGwgb3RoZXIgY2FzZXMsIHRoZSBjYWxsIHBhdHRlcm4gaXMgaWRlbnRpY2FsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgbWV0aG9kIG5hbWVzLlxuICAgICAgaXNOb2RlU3R5bGVFdmVudEVtaXR0ZXIodGFyZ2V0KVxuICAgICAgPyBub2RlRXZlbnRFbWl0dGVyTWV0aG9kcy5tYXAodG9Db21tb25IYW5kbGVyUmVnaXN0cnkodGFyZ2V0LCBldmVudE5hbWUpKVxuICAgICAgOiBpc0pRdWVyeVN0eWxlRXZlbnRFbWl0dGVyKHRhcmdldClcbiAgICAgID8ganF1ZXJ5TWV0aG9kcy5tYXAodG9Db21tb25IYW5kbGVyUmVnaXN0cnkodGFyZ2V0LCBldmVudE5hbWUpKVxuICAgICAgOiBbXTtcblxuICAvLyBJZiBhZGQgaXMgZmFsc3ksIGl0J3MgYmVjYXVzZSB3ZSBkaWRuJ3QgbWF0Y2ggYSBwYXR0ZXJuIGFib3ZlLlxuICAvLyBDaGVjayB0byBzZWUgaWYgaXQgaXMgYW4gQXJyYXlMaWtlLCBiZWNhdXNlIGlmIGl0IGlzLCB3ZSB3YW50IHRvXG4gIC8vIHRyeSB0byBhcHBseSBmcm9tRXZlbnQgdG8gYWxsIG9mIGl0J3MgaXRlbXMuIFdlIGRvIHRoaXMgY2hlY2sgbGFzdCxcbiAgLy8gYmVjYXVzZSB0aGVyZSBhcmUgbWF5IGJlIHNvbWUgdHlwZXMgdGhhdCBhcmUgYm90aCBBcnJheUxpa2UgKmFuZCogaW1wbGVtZW50XG4gIC8vIGV2ZW50IHJlZ2lzdHJ5IHBvaW50cywgYW5kIHdlJ2QgcmF0aGVyIGRlbGVnYXRlIHRvIHRoYXQgd2hlbiBwb3NzaWJsZS5cbiAgaWYgKCFhZGQpIHtcbiAgICBpZiAoaXNBcnJheUxpa2UodGFyZ2V0KSkge1xuICAgICAgcmV0dXJuIG1lcmdlTWFwKChzdWJUYXJnZXQ6IGFueSkgPT4gZnJvbUV2ZW50KHN1YlRhcmdldCwgZXZlbnROYW1lLCBvcHRpb25zIGFzIEV2ZW50TGlzdGVuZXJPcHRpb25zKSkoXG4gICAgICAgIGlubmVyRnJvbSh0YXJnZXQpXG4gICAgICApIGFzIE9ic2VydmFibGU8VD47XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgYWRkIGlzIGZhbHN5IGFuZCB3ZSBtYWRlIGl0IGhlcmUsIGl0J3MgYmVjYXVzZSB3ZSBkaWRuJ3RcbiAgLy8gbWF0Y2ggYW55IHZhbGlkIHRhcmdldCBvYmplY3RzIGFib3ZlLlxuICBpZiAoIWFkZCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgZXZlbnQgdGFyZ2V0Jyk7XG4gIH1cblxuICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4oKHN1YnNjcmliZXIpID0+IHtcbiAgICAvLyBUaGUgaGFuZGxlciB3ZSBhcmUgZ29pbmcgdG8gcmVnaXN0ZXIuIEZvcndhcmRzIHRoZSBldmVudCBvYmplY3QsIGJ5IGl0c2VsZiwgb3JcbiAgICAvLyBhbiBhcnJheSBvZiBhcmd1bWVudHMgdG8gdGhlIGV2ZW50IGhhbmRsZXIsIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQsXG4gICAgLy8gdG8gdGhlIGNvbnN1bWVyLlxuICAgIGNvbnN0IGhhbmRsZXIgPSAoLi4uYXJnczogYW55W10pID0+IHN1YnNjcmliZXIubmV4dCgxIDwgYXJncy5sZW5ndGggPyBhcmdzIDogYXJnc1swXSk7XG4gICAgLy8gRG8gdGhlIHdvcmsgb2YgYWRkaW5nIHRoZSBoYW5kbGVyIHRvIHRoZSB0YXJnZXQuXG4gICAgYWRkKGhhbmRsZXIpO1xuICAgIC8vIFdoZW4gd2UgZmluYWxpemUsIHdlIHdhbnQgdG8gcmVtb3ZlIHRoZSBoYW5kbGVyIGFuZCBmcmVlIHVwIG1lbW9yeS5cbiAgICByZXR1cm4gKCkgPT4gcmVtb3ZlIShoYW5kbGVyKTtcbiAgfSk7XG59XG5cbi8qKlxuICogVXNlZCB0byBjcmVhdGUgYGFkZGAgYW5kIGByZW1vdmVgIGZ1bmN0aW9ucyB0byByZWdpc3RlciBhbmQgdW5yZWdpc3RlciBldmVudCBoYW5kbGVyc1xuICogZnJvbSBhIHRhcmdldCBpbiB0aGUgbW9zdCBjb21tb24gaGFuZGxlciBwYXR0ZXJuLCB3aGVyZSB0aGVyZSBhcmUgb25seSB0d28gYXJndW1lbnRzLlxuICogKGUuZy4gIGBvbihuYW1lLCBmbilgLCBgb2ZmKG5hbWUsIGZuKWAsIGBhZGRMaXN0ZW5lcihuYW1lLCBmbilgLCBvciBgcmVtb3ZlTGlzdGVuZXIobmFtZSwgZm4pYClcbiAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCB3ZSdyZSBjYWxsaW5nIG1ldGhvZHMgb25cbiAqIEBwYXJhbSBldmVudE5hbWUgVGhlIGV2ZW50IG5hbWUgZm9yIHRoZSBldmVudCB3ZSdyZSBjcmVhdGluZyByZWdpc3RlciBvciB1bnJlZ2lzdGVyIGZ1bmN0aW9ucyBmb3JcbiAqL1xuZnVuY3Rpb24gdG9Db21tb25IYW5kbGVyUmVnaXN0cnkodGFyZ2V0OiBhbnksIGV2ZW50TmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiAobWV0aG9kTmFtZTogc3RyaW5nKSA9PiAoaGFuZGxlcjogYW55KSA9PiB0YXJnZXRbbWV0aG9kTmFtZV0oZXZlbnROYW1lLCBoYW5kbGVyKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgdG8gc2VlIGlmIHRoZSB0YXJnZXQgaW1wbGVtZW50cyB0aGUgcmVxdWlyZWQgbm9kZS1zdHlsZSBFdmVudEVtaXR0ZXIgbWV0aG9kc1xuICogZm9yIGFkZGluZyBhbmQgcmVtb3ZpbmcgZXZlbnQgaGFuZGxlcnMuXG4gKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdG8gY2hlY2tcbiAqL1xuZnVuY3Rpb24gaXNOb2RlU3R5bGVFdmVudEVtaXR0ZXIodGFyZ2V0OiBhbnkpOiB0YXJnZXQgaXMgTm9kZVN0eWxlRXZlbnRFbWl0dGVyIHtcbiAgcmV0dXJuIGlzRnVuY3Rpb24odGFyZ2V0LmFkZExpc3RlbmVyKSAmJiBpc0Z1bmN0aW9uKHRhcmdldC5yZW1vdmVMaXN0ZW5lcik7XG59XG5cbi8qKlxuICogQ2hlY2tzIHRvIHNlZSBpZiB0aGUgdGFyZ2V0IGltcGxlbWVudHMgdGhlIHJlcXVpcmVkIGpRdWVyeS1zdHlsZSBFdmVudEVtaXR0ZXIgbWV0aG9kc1xuICogZm9yIGFkZGluZyBhbmQgcmVtb3ZpbmcgZXZlbnQgaGFuZGxlcnMuXG4gKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdG8gY2hlY2tcbiAqL1xuZnVuY3Rpb24gaXNKUXVlcnlTdHlsZUV2ZW50RW1pdHRlcih0YXJnZXQ6IGFueSk6IHRhcmdldCBpcyBKUXVlcnlTdHlsZUV2ZW50RW1pdHRlcjxhbnksIGFueT4ge1xuICByZXR1cm4gaXNGdW5jdGlvbih0YXJnZXQub24pICYmIGlzRnVuY3Rpb24odGFyZ2V0Lm9mZik7XG59XG5cbi8qKlxuICogQ2hlY2tzIHRvIHNlZSBpZiB0aGUgdGFyZ2V0IGltcGxlbWVudHMgdGhlIHJlcXVpcmVkIEV2ZW50VGFyZ2V0IG1ldGhvZHNcbiAqIGZvciBhZGRpbmcgYW5kIHJlbW92aW5nIGV2ZW50IGhhbmRsZXJzLlxuICogQHBhcmFtIHRhcmdldCB0aGUgb2JqZWN0IHRvIGNoZWNrXG4gKi9cbmZ1bmN0aW9uIGlzRXZlbnRUYXJnZXQodGFyZ2V0OiBhbnkpOiB0YXJnZXQgaXMgSGFzRXZlbnRUYXJnZXRBZGRSZW1vdmU8YW55PiB7XG4gIHJldHVybiBpc0Z1bmN0aW9uKHRhcmdldC5hZGRFdmVudExpc3RlbmVyKSAmJiBpc0Z1bmN0aW9uKHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vdXRpbC9pc0Z1bmN0aW9uJztcbmltcG9ydCB7IE5vZGVFdmVudEhhbmRsZXIgfSBmcm9tICcuL2Zyb21FdmVudCc7XG5pbXBvcnQgeyBtYXBPbmVPck1hbnlBcmdzIH0gZnJvbSAnLi4vdXRpbC9tYXBPbmVPck1hbnlBcmdzJztcblxuLyogdHNsaW50OmRpc2FibGU6bWF4LWxpbmUtbGVuZ3RoICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbUV2ZW50UGF0dGVybjxUPihcbiAgYWRkSGFuZGxlcjogKGhhbmRsZXI6IE5vZGVFdmVudEhhbmRsZXIpID0+IGFueSxcbiAgcmVtb3ZlSGFuZGxlcj86IChoYW5kbGVyOiBOb2RlRXZlbnRIYW5kbGVyLCBzaWduYWw/OiBhbnkpID0+IHZvaWRcbik6IE9ic2VydmFibGU8VD47XG5leHBvcnQgZnVuY3Rpb24gZnJvbUV2ZW50UGF0dGVybjxUPihcbiAgYWRkSGFuZGxlcjogKGhhbmRsZXI6IE5vZGVFdmVudEhhbmRsZXIpID0+IGFueSxcbiAgcmVtb3ZlSGFuZGxlcj86IChoYW5kbGVyOiBOb2RlRXZlbnRIYW5kbGVyLCBzaWduYWw/OiBhbnkpID0+IHZvaWQsXG4gIHJlc3VsdFNlbGVjdG9yPzogKC4uLmFyZ3M6IGFueVtdKSA9PiBUXG4pOiBPYnNlcnZhYmxlPFQ+O1xuLyogdHNsaW50OmVuYWJsZTptYXgtbGluZS1sZW5ndGggKi9cblxuLyoqXG4gKiBDcmVhdGVzIGFuIE9ic2VydmFibGUgZnJvbSBhbiBhcmJpdHJhcnkgQVBJIGZvciByZWdpc3RlcmluZyBldmVudCBoYW5kbGVycy5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+V2hlbiB0aGF0IG1ldGhvZCBmb3IgYWRkaW5nIGV2ZW50IGhhbmRsZXIgd2FzIHNvbWV0aGluZyB7QGxpbmsgZnJvbUV2ZW50fVxuICogd2FzIG5vdCBwcmVwYXJlZCBmb3IuPC9zcGFuPlxuICpcbiAqICFbXShmcm9tRXZlbnRQYXR0ZXJuLnBuZylcbiAqXG4gKiBgZnJvbUV2ZW50UGF0dGVybmAgYWxsb3dzIHlvdSB0byBjb252ZXJ0IGludG8gYW4gT2JzZXJ2YWJsZSBhbnkgQVBJIHRoYXQgc3VwcG9ydHMgcmVnaXN0ZXJpbmcgaGFuZGxlciBmdW5jdGlvbnNcbiAqIGZvciBldmVudHMuIEl0IGlzIHNpbWlsYXIgdG8ge0BsaW5rIGZyb21FdmVudH0sIGJ1dCBmYXJcbiAqIG1vcmUgZmxleGlibGUuIEluIGZhY3QsIGFsbCB1c2UgY2FzZXMgb2Yge0BsaW5rIGZyb21FdmVudH0gY291bGQgYmUgZWFzaWx5IGhhbmRsZWQgYnlcbiAqIGBmcm9tRXZlbnRQYXR0ZXJuYCAoYWx0aG91Z2ggaW4gc2xpZ2h0bHkgbW9yZSB2ZXJib3NlIHdheSkuXG4gKlxuICogVGhpcyBvcGVyYXRvciBhY2NlcHRzIGFzIGEgZmlyc3QgYXJndW1lbnQgYW4gYGFkZEhhbmRsZXJgIGZ1bmN0aW9uLCB3aGljaCB3aWxsIGJlIGluamVjdGVkIHdpdGhcbiAqIGhhbmRsZXIgcGFyYW1ldGVyLiBUaGF0IGhhbmRsZXIgaXMgYWN0dWFsbHkgYW4gZXZlbnQgaGFuZGxlciBmdW5jdGlvbiB0aGF0IHlvdSBub3cgY2FuIHBhc3NcbiAqIHRvIEFQSSBleHBlY3RpbmcgaXQuIGBhZGRIYW5kbGVyYCB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBPYnNlcnZhYmxlXG4gKiByZXR1cm5lZCBieSB0aGUgb3BlcmF0b3IgaXMgc3Vic2NyaWJlZCwgc28gcmVnaXN0ZXJpbmcgaGFuZGxlciBpbiBBUEkgd2lsbCBub3RcbiAqIG5lY2Vzc2FyaWx5IGhhcHBlbiB3aGVuIGBmcm9tRXZlbnRQYXR0ZXJuYCBpcyBjYWxsZWQuXG4gKlxuICogQWZ0ZXIgcmVnaXN0cmF0aW9uLCBldmVyeSB0aW1lIGFuIGV2ZW50IHRoYXQgd2UgbGlzdGVuIHRvIGhhcHBlbnMsXG4gKiBPYnNlcnZhYmxlIHJldHVybmVkIGJ5IGBmcm9tRXZlbnRQYXR0ZXJuYCB3aWxsIGVtaXQgdmFsdWUgdGhhdCBldmVudCBoYW5kbGVyXG4gKiBmdW5jdGlvbiB3YXMgY2FsbGVkIHdpdGguIE5vdGUgdGhhdCBpZiBldmVudCBoYW5kbGVyIHdhcyBjYWxsZWQgd2l0aCBtb3JlXG4gKiB0aGFuIG9uZSBhcmd1bWVudCwgc2Vjb25kIGFuZCBmb2xsb3dpbmcgYXJndW1lbnRzIHdpbGwgbm90IGFwcGVhciBpbiB0aGUgT2JzZXJ2YWJsZS5cbiAqXG4gKiBJZiBBUEkgeW91IGFyZSB1c2luZyBhbGxvd3MgdG8gdW5yZWdpc3RlciBldmVudCBoYW5kbGVycyBhcyB3ZWxsLCB5b3UgY2FuIHBhc3MgdG8gYGZyb21FdmVudFBhdHRlcm5gXG4gKiBhbm90aGVyIGZ1bmN0aW9uIC0gYHJlbW92ZUhhbmRsZXJgIC0gYXMgYSBzZWNvbmQgcGFyYW1ldGVyLiBJdCB3aWxsIGJlIGluamVjdGVkXG4gKiB3aXRoIHRoZSBzYW1lIGhhbmRsZXIgZnVuY3Rpb24gYXMgYmVmb3JlLCB3aGljaCBub3cgeW91IGNhbiB1c2UgdG8gdW5yZWdpc3RlclxuICogaXQgZnJvbSB0aGUgQVBJLiBgcmVtb3ZlSGFuZGxlcmAgd2lsbCBiZSBjYWxsZWQgd2hlbiBjb25zdW1lciBvZiByZXN1bHRpbmcgT2JzZXJ2YWJsZVxuICogdW5zdWJzY3JpYmVzIGZyb20gaXQuXG4gKlxuICogSW4gc29tZSBBUElzIHVucmVnaXN0ZXJpbmcgaXMgYWN0dWFsbHkgaGFuZGxlZCBkaWZmZXJlbnRseS4gTWV0aG9kIHJlZ2lzdGVyaW5nIGFuIGV2ZW50IGhhbmRsZXJcbiAqIHJldHVybnMgc29tZSBraW5kIG9mIHRva2VuLCB3aGljaCBpcyBsYXRlciB1c2VkIHRvIGlkZW50aWZ5IHdoaWNoIGZ1bmN0aW9uIHNob3VsZFxuICogYmUgdW5yZWdpc3RlcmVkIG9yIGl0IGl0c2VsZiBoYXMgbWV0aG9kIHRoYXQgdW5yZWdpc3RlcnMgZXZlbnQgaGFuZGxlci5cbiAqIElmIHRoYXQgaXMgdGhlIGNhc2Ugd2l0aCB5b3VyIEFQSSwgbWFrZSBzdXJlIHRva2VuIHJldHVybmVkXG4gKiBieSByZWdpc3RlcmluZyBtZXRob2QgaXMgcmV0dXJuZWQgYnkgYGFkZEhhbmRsZXJgLiBUaGVuIGl0IHdpbGwgYmUgcGFzc2VkXG4gKiBhcyBhIHNlY29uZCBhcmd1bWVudCB0byBgcmVtb3ZlSGFuZGxlcmAsIHdoZXJlIHlvdSB3aWxsIGJlIGFibGUgdG8gdXNlIGl0LlxuICpcbiAqIElmIHlvdSBuZWVkIGFjY2VzcyB0byBhbGwgZXZlbnQgaGFuZGxlciBwYXJhbWV0ZXJzIChub3Qgb25seSB0aGUgZmlyc3Qgb25lKSxcbiAqIG9yIHlvdSBuZWVkIHRvIHRyYW5zZm9ybSB0aGVtIGluIGFueSB3YXksIHlvdSBjYW4gY2FsbCBgZnJvbUV2ZW50UGF0dGVybmAgd2l0aCBvcHRpb25hbFxuICogdGhpcmQgcGFyYW1ldGVyIC0gcHJvamVjdCBmdW5jdGlvbiB3aGljaCB3aWxsIGFjY2VwdCBhbGwgYXJndW1lbnRzIHBhc3NlZCB0b1xuICogZXZlbnQgaGFuZGxlciB3aGVuIGl0IGlzIGNhbGxlZC4gV2hhdGV2ZXIgaXMgcmV0dXJuZWQgZnJvbSBwcm9qZWN0IGZ1bmN0aW9uIHdpbGwgYXBwZWFyIG9uXG4gKiByZXN1bHRpbmcgc3RyZWFtIGluc3RlYWQgb2YgdXN1YWwgZXZlbnQgaGFuZGxlcnMgZmlyc3QgYXJndW1lbnQuIFRoaXMgbWVhbnNcbiAqIHRoYXQgZGVmYXVsdCBwcm9qZWN0IGNhbiBiZSB0aG91Z2h0IG9mIGFzIGZ1bmN0aW9uIHRoYXQgdGFrZXMgaXRzIGZpcnN0IHBhcmFtZXRlclxuICogYW5kIGlnbm9yZXMgdGhlIHJlc3QuXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBFbWl0cyBjbGlja3MgaGFwcGVuaW5nIG9uIHRoZSBET00gZG9jdW1lbnRcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50UGF0dGVybiB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGZ1bmN0aW9uIGFkZENsaWNrSGFuZGxlcihoYW5kbGVyKSB7XG4gKiAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlcik7XG4gKiB9XG4gKlxuICogZnVuY3Rpb24gcmVtb3ZlQ2xpY2tIYW5kbGVyKGhhbmRsZXIpIHtcbiAqICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVyKTtcbiAqIH1cbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnRQYXR0ZXJuKFxuICogICBhZGRDbGlja0hhbmRsZXIsXG4gKiAgIHJlbW92ZUNsaWNrSGFuZGxlclxuICogKTtcbiAqIGNsaWNrcy5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKlxuICogLy8gV2hlbmV2ZXIgeW91IGNsaWNrIGFueXdoZXJlIGluIHRoZSBicm93c2VyLCBET00gTW91c2VFdmVudFxuICogLy8gb2JqZWN0IHdpbGwgYmUgbG9nZ2VkLlxuICogYGBgXG4gKlxuICogVXNlIHdpdGggQVBJIHRoYXQgcmV0dXJucyBjYW5jZWxsYXRpb24gdG9rZW5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50UGF0dGVybiB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHRva2VuID0gc29tZUFQSS5yZWdpc3RlckV2ZW50SGFuZGxlcihmdW5jdGlvbigpIHt9KTtcbiAqIHNvbWVBUEkudW5yZWdpc3RlckV2ZW50SGFuZGxlcih0b2tlbik7IC8vIHRoaXMgQVBJcyBjYW5jZWxsYXRpb24gbWV0aG9kIGFjY2VwdHNcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBoYW5kbGVyIGl0c2VsZiwgYnV0IHNwZWNpYWwgdG9rZW4uXG4gKlxuICogY29uc3Qgc29tZUFQSU9ic2VydmFibGUgPSBmcm9tRXZlbnRQYXR0ZXJuKFxuICogICBmdW5jdGlvbihoYW5kbGVyKSB7IHJldHVybiBzb21lQVBJLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGhhbmRsZXIpOyB9LCAvLyBOb3RlIHRoYXQgd2UgcmV0dXJuIHRoZSB0b2tlbiBoZXJlLi4uXG4gKiAgIGZ1bmN0aW9uKGhhbmRsZXIsIHRva2VuKSB7IHNvbWVBUEkudW5yZWdpc3RlckV2ZW50SGFuZGxlcih0b2tlbik7IH0gIC8vIC4uLnRvIHRoZW4gdXNlIGl0IGhlcmUuXG4gKiApO1xuICogYGBgXG4gKlxuICogVXNlIHdpdGggcHJvamVjdCBmdW5jdGlvblxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnRQYXR0ZXJuIH0gZnJvbSAncnhqcyc7XG4gKlxuICogc29tZUFQSS5yZWdpc3RlckV2ZW50SGFuZGxlcigoZXZlbnRUeXBlLCBldmVudE1lc3NhZ2UpID0+IHtcbiAqICAgY29uc29sZS5sb2coZXZlbnRUeXBlLCBldmVudE1lc3NhZ2UpOyAvLyBMb2dzICdFVkVOVF9UWVBFJyAnRVZFTlRfTUVTU0FHRScgdG8gY29uc29sZS5cbiAqIH0pO1xuICpcbiAqIGNvbnN0IHNvbWVBUElPYnNlcnZhYmxlID0gZnJvbUV2ZW50UGF0dGVybihcbiAqICAgaGFuZGxlciA9PiBzb21lQVBJLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKGhhbmRsZXIpLFxuICogICBoYW5kbGVyID0+IHNvbWVBUEkudW5yZWdpc3RlckV2ZW50SGFuZGxlcihoYW5kbGVyKVxuICogICAoZXZlbnRUeXBlLCBldmVudE1lc3NhZ2UpID0+IGV2ZW50VHlwZSArICcgLS0tICcgKyBldmVudE1lc3NhZ2UgLy8gd2l0aG91dCB0aGF0IGZ1bmN0aW9uIG9ubHkgJ0VWRU5UX1RZUEUnXG4gKiApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3b3VsZCBiZSBlbWl0dGVkIGJ5IHRoZSBPYnNlcnZhYmxlXG4gKlxuICogc29tZUFQSU9ic2VydmFibGUuc3Vic2NyaWJlKHZhbHVlID0+IGNvbnNvbGUubG9nKHZhbHVlKSk7XG4gKlxuICogLy8gTG9nczpcbiAqIC8vICdFVkVOVF9UWVBFIC0tLSBFVkVOVF9NRVNTQUdFJ1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgZnJvbUV2ZW50fVxuICogQHNlZSB7QGxpbmsgYmluZENhbGxiYWNrfVxuICogQHNlZSB7QGxpbmsgYmluZE5vZGVDYWxsYmFja31cbiAqXG4gKiBAcGFyYW0gYWRkSGFuZGxlciBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBgaGFuZGxlcmAgZnVuY3Rpb24gYXMgYXJndW1lbnQgYW5kIGF0dGFjaGVzIGl0XG4gKiBzb21laG93IHRvIHRoZSBhY3R1YWwgc291cmNlIG9mIGV2ZW50cy5cbiAqIEBwYXJhbSByZW1vdmVIYW5kbGVyIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIGBoYW5kbGVyYCBmdW5jdGlvbiBhcyBhbiBhcmd1bWVudCBhbmQgcmVtb3Zlc1xuICogaXQgZnJvbSB0aGUgZXZlbnQgc291cmNlLiBJZiBgYWRkSGFuZGxlcmAgcmV0dXJucyBzb21lIGtpbmQgb2YgdG9rZW4sIGByZW1vdmVIYW5kbGVyYCBmdW5jdGlvblxuICogd2lsbCBoYXZlIGl0IGFzIGEgc2Vjb25kIHBhcmFtZXRlci5cbiAqIEBwYXJhbSByZXN1bHRTZWxlY3RvciBBIGZ1bmN0aW9uIHRvIHRyYW5zZm9ybSByZXN1bHRzLiBJdCB0YWtlcyB0aGUgYXJndW1lbnRzIGZyb20gdGhlIGV2ZW50XG4gKiBoYW5kbGVyIGFuZCBzaG91bGQgcmV0dXJuIGEgc2luZ2xlIHZhbHVlLlxuICogQHJldHVybiBPYnNlcnZhYmxlIHdoaWNoLCB3aGVuIGFuIGV2ZW50IGhhcHBlbnMsIGVtaXRzIGZpcnN0IHBhcmFtZXRlciBwYXNzZWQgdG8gcmVnaXN0ZXJlZFxuICogZXZlbnQgaGFuZGxlci4gQWx0ZXJuYXRpdmVseSBpdCBlbWl0cyB3aGF0ZXZlciBwcm9qZWN0IGZ1bmN0aW9uIHJldHVybnMgYXQgdGhhdCBtb21lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tRXZlbnRQYXR0ZXJuPFQ+KFxuICBhZGRIYW5kbGVyOiAoaGFuZGxlcjogTm9kZUV2ZW50SGFuZGxlcikgPT4gYW55LFxuICByZW1vdmVIYW5kbGVyPzogKGhhbmRsZXI6IE5vZGVFdmVudEhhbmRsZXIsIHNpZ25hbD86IGFueSkgPT4gdm9pZCxcbiAgcmVzdWx0U2VsZWN0b3I/OiAoLi4uYXJnczogYW55W10pID0+IFRcbik6IE9ic2VydmFibGU8VCB8IFRbXT4ge1xuICBpZiAocmVzdWx0U2VsZWN0b3IpIHtcbiAgICByZXR1cm4gZnJvbUV2ZW50UGF0dGVybjxUPihhZGRIYW5kbGVyLCByZW1vdmVIYW5kbGVyKS5waXBlKG1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUIHwgVFtdPigoc3Vic2NyaWJlcikgPT4ge1xuICAgIGNvbnN0IGhhbmRsZXIgPSAoLi4uZTogVFtdKSA9PiBzdWJzY3JpYmVyLm5leHQoZS5sZW5ndGggPT09IDEgPyBlWzBdIDogZSk7XG4gICAgY29uc3QgcmV0VmFsdWUgPSBhZGRIYW5kbGVyKGhhbmRsZXIpO1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKHJlbW92ZUhhbmRsZXIpID8gKCkgPT4gcmVtb3ZlSGFuZGxlcihoYW5kbGVyLCByZXRWYWx1ZSkgOiB1bmRlZmluZWQ7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IGRlZmVyIH0gZnJvbSAnLi9kZWZlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQ2hlY2tzIGEgYm9vbGVhbiBhdCBzdWJzY3JpcHRpb24gdGltZSwgYW5kIGNob29zZXMgYmV0d2VlbiBvbmUgb2YgdHdvIG9ic2VydmFibGUgc291cmNlc1xuICpcbiAqIGBpaWZgIGV4cGVjdHMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBib29sZWFuICh0aGUgYGNvbmRpdGlvbmAgZnVuY3Rpb24pLCBhbmQgdHdvIHNvdXJjZXMsXG4gKiB0aGUgYHRydWVSZXN1bHRgIGFuZCB0aGUgYGZhbHNlUmVzdWx0YCwgYW5kIHJldHVybnMgYW4gT2JzZXJ2YWJsZS5cbiAqXG4gKiBBdCB0aGUgbW9tZW50IG9mIHN1YnNjcmlwdGlvbiwgdGhlIGBjb25kaXRpb25gIGZ1bmN0aW9uIGlzIGNhbGxlZC4gSWYgdGhlIHJlc3VsdCBpcyBgdHJ1ZWAsIHRoZVxuICogc3Vic2NyaXB0aW9uIHdpbGwgYmUgdG8gdGhlIHNvdXJjZSBwYXNzZWQgYXMgdGhlIGB0cnVlUmVzdWx0YCwgb3RoZXJ3aXNlLCB0aGUgc3Vic2NyaXB0aW9uIHdpbGwgYmVcbiAqIHRvIHRoZSBzb3VyY2UgcGFzc2VkIGFzIHRoZSBgZmFsc2VSZXN1bHRgLlxuICpcbiAqIElmIHlvdSBuZWVkIHRvIGNoZWNrIG1vcmUgdGhhbiB0d28gb3B0aW9ucyB0byBjaG9vc2UgYmV0d2VlbiBtb3JlIHRoYW4gb25lIG9ic2VydmFibGUsIGhhdmUgYSBsb29rIGF0IHRoZSB7QGxpbmsgZGVmZXJ9IGNyZWF0aW9uIG1ldGhvZC5cbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIENoYW5nZSBhdCBydW50aW1lIHdoaWNoIE9ic2VydmFibGUgd2lsbCBiZSBzdWJzY3JpYmVkXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGlpZiwgb2YgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBsZXQgc3Vic2NyaWJlVG9GaXJzdDtcbiAqIGNvbnN0IGZpcnN0T3JTZWNvbmQgPSBpaWYoXG4gKiAgICgpID0+IHN1YnNjcmliZVRvRmlyc3QsXG4gKiAgIG9mKCdmaXJzdCcpLFxuICogICBvZignc2Vjb25kJylcbiAqICk7XG4gKlxuICogc3Vic2NyaWJlVG9GaXJzdCA9IHRydWU7XG4gKiBmaXJzdE9yU2Vjb25kLnN1YnNjcmliZSh2YWx1ZSA9PiBjb25zb2xlLmxvZyh2YWx1ZSkpO1xuICpcbiAqIC8vIExvZ3M6XG4gKiAvLyAnZmlyc3QnXG4gKlxuICogc3Vic2NyaWJlVG9GaXJzdCA9IGZhbHNlO1xuICogZmlyc3RPclNlY29uZC5zdWJzY3JpYmUodmFsdWUgPT4gY29uc29sZS5sb2codmFsdWUpKTtcbiAqXG4gKiAvLyBMb2dzOlxuICogLy8gJ3NlY29uZCdcbiAqIGBgYFxuICpcbiAqIENvbnRyb2wgYWNjZXNzIHRvIGFuIE9ic2VydmFibGVcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaWlmLCBvZiwgRU1QVFkgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBsZXQgYWNjZXNzR3JhbnRlZDtcbiAqIGNvbnN0IG9ic2VydmFibGVJZllvdUhhdmVBY2Nlc3MgPSBpaWYoXG4gKiAgICgpID0+IGFjY2Vzc0dyYW50ZWQsXG4gKiAgIG9mKCdJdCBzZWVtcyB5b3UgaGF2ZSBhbiBhY2Nlc3MuLi4nKSxcbiAqICAgRU1QVFlcbiAqICk7XG4gKlxuICogYWNjZXNzR3JhbnRlZCA9IHRydWU7XG4gKiBvYnNlcnZhYmxlSWZZb3VIYXZlQWNjZXNzLnN1YnNjcmliZSh7XG4gKiAgIG5leHQ6IHZhbHVlID0+IGNvbnNvbGUubG9nKHZhbHVlKSxcbiAqICAgY29tcGxldGU6ICgpID0+IGNvbnNvbGUubG9nKCdUaGUgZW5kJylcbiAqIH0pO1xuICpcbiAqIC8vIExvZ3M6XG4gKiAvLyAnSXQgc2VlbXMgeW91IGhhdmUgYW4gYWNjZXNzLi4uJ1xuICogLy8gJ1RoZSBlbmQnXG4gKlxuICogYWNjZXNzR3JhbnRlZCA9IGZhbHNlO1xuICogb2JzZXJ2YWJsZUlmWW91SGF2ZUFjY2Vzcy5zdWJzY3JpYmUoe1xuICogICBuZXh0OiB2YWx1ZSA9PiBjb25zb2xlLmxvZyh2YWx1ZSksXG4gKiAgIGNvbXBsZXRlOiAoKSA9PiBjb25zb2xlLmxvZygnVGhlIGVuZCcpXG4gKiB9KTtcbiAqXG4gKiAvLyBMb2dzOlxuICogLy8gJ1RoZSBlbmQnXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBkZWZlcn1cbiAqXG4gKiBAcGFyYW0gY29uZGl0aW9uIENvbmRpdGlvbiB3aGljaCBPYnNlcnZhYmxlIHNob3VsZCBiZSBjaG9zZW4uXG4gKiBAcGFyYW0gdHJ1ZVJlc3VsdCBBbiBPYnNlcnZhYmxlIHRoYXQgd2lsbCBiZSBzdWJzY3JpYmVkIGlmIGNvbmRpdGlvbiBpcyB0cnVlLlxuICogQHBhcmFtIGZhbHNlUmVzdWx0IEFuIE9ic2VydmFibGUgdGhhdCB3aWxsIGJlIHN1YnNjcmliZWQgaWYgY29uZGl0aW9uIGlzIGZhbHNlLlxuICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgcHJveGllcyB0byBgdHJ1ZVJlc3VsdGAgb3IgYGZhbHNlUmVzdWx0YCwgZGVwZW5kaW5nIG9uIHRoZSByZXN1bHQgb2YgdGhlIGBjb25kaXRpb25gIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaWlmPFQsIEY+KGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbiwgdHJ1ZVJlc3VsdDogT2JzZXJ2YWJsZUlucHV0PFQ+LCBmYWxzZVJlc3VsdDogT2JzZXJ2YWJsZUlucHV0PEY+KTogT2JzZXJ2YWJsZTxUIHwgRj4ge1xuICByZXR1cm4gZGVmZXIoKCkgPT4gKGNvbmRpdGlvbigpID8gdHJ1ZVJlc3VsdCA6IGZhbHNlUmVzdWx0KSk7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgU2NoZWR1bGVyTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGFzeW5jIGFzIGFzeW5jU2NoZWR1bGVyIH0gZnJvbSAnLi4vc2NoZWR1bGVyL2FzeW5jJztcbmltcG9ydCB7IGlzU2NoZWR1bGVyIH0gZnJvbSAnLi4vdXRpbC9pc1NjaGVkdWxlcic7XG5pbXBvcnQgeyBpc1ZhbGlkRGF0ZSB9IGZyb20gJy4uL3V0aWwvaXNEYXRlJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIG9ic2VydmFibGUgdGhhdCB3aWxsIHdhaXQgZm9yIGEgc3BlY2lmaWVkIHRpbWUgcGVyaW9kLCBvciBleGFjdCBkYXRlLCBiZWZvcmVcbiAqIGVtaXR0aW5nIHRoZSBudW1iZXIgMC5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+VXNlZCB0byBlbWl0IGEgbm90aWZpY2F0aW9uIGFmdGVyIGEgZGVsYXkuPC9zcGFuPlxuICpcbiAqIFRoaXMgb2JzZXJ2YWJsZSBpcyB1c2VmdWwgZm9yIGNyZWF0aW5nIGRlbGF5cyBpbiBjb2RlLCBvciByYWNpbmcgYWdhaW5zdCBvdGhlciB2YWx1ZXNcbiAqIGZvciBhZC1ob2MgdGltZW91dHMuXG4gKlxuICogVGhlIGBkZWxheWAgaXMgc3BlY2lmaWVkIGJ5IGRlZmF1bHQgaW4gbWlsbGlzZWNvbmRzLCBob3dldmVyIHByb3ZpZGluZyBhIGN1c3RvbSBzY2hlZHVsZXIgY291bGRcbiAqIGNyZWF0ZSBhIGRpZmZlcmVudCBiZWhhdmlvci5cbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIFdhaXQgMyBzZWNvbmRzIGFuZCBzdGFydCBhbm90aGVyIG9ic2VydmFibGVcbiAqXG4gKiBZb3UgbWlnaHQgd2FudCB0byB1c2UgYHRpbWVyYCB0byBkZWxheSBzdWJzY3JpcHRpb24gdG8gYW5cbiAqIG9ic2VydmFibGUgYnkgYSBzZXQgYW1vdW50IG9mIHRpbWUuIEhlcmUgd2UgdXNlIGEgdGltZXIgd2l0aFxuICoge0BsaW5rIGNvbmNhdE1hcFRvfSBvciB7QGxpbmsgY29uY2F0TWFwfSBpbiBvcmRlciB0byB3YWl0XG4gKiBhIGZldyBzZWNvbmRzIGFuZCBzdGFydCBhIHN1YnNjcmlwdGlvbiB0byBhIHNvdXJjZS5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIHRpbWVyLCBjb25jYXRNYXAgfSBmcm9tICdyeGpzJztcbiAqXG4gKiAvLyBUaGlzIGNvdWxkIGJlIGFueSBvYnNlcnZhYmxlXG4gKiBjb25zdCBzb3VyY2UgPSBvZigxLCAyLCAzKTtcbiAqXG4gKiB0aW1lcigzMDAwKVxuICogICAucGlwZShjb25jYXRNYXAoKCkgPT4gc291cmNlKSlcbiAqICAgLnN1YnNjcmliZShjb25zb2xlLmxvZyk7XG4gKiBgYGBcbiAqXG4gKiBUYWtlIGFsbCB2YWx1ZXMgdW50aWwgdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IG1pbnV0ZVxuICpcbiAqIFVzaW5nIGEgYERhdGVgIGFzIHRoZSB0cmlnZ2VyIGZvciB0aGUgZmlyc3QgZW1pc3Npb24sIHlvdSBjYW5cbiAqIGRvIHRoaW5ncyBsaWtlIHdhaXQgdW50aWwgbWlkbmlnaHQgdG8gZmlyZSBhbiBldmVudCwgb3IgaW4gdGhpcyBjYXNlLFxuICogd2FpdCB1bnRpbCBhIG5ldyBtaW51dGUgc3RhcnRzIChjaG9zZW4gc28gdGhlIGV4YW1wbGUgd291bGRuJ3QgdGFrZVxuICogdG9vIGxvbmcgdG8gcnVuKSBpbiBvcmRlciB0byBzdG9wIHdhdGNoaW5nIGEgc3RyZWFtLiBMZXZlcmFnaW5nXG4gKiB7QGxpbmsgdGFrZVVudGlsfS5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIHRha2VVbnRpbCwgdGltZXIgfSBmcm9tICdyeGpzJztcbiAqXG4gKiAvLyBCdWlsZCBhIERhdGUgb2JqZWN0IHRoYXQgbWFya3MgdGhlXG4gKiAvLyBuZXh0IG1pbnV0ZS5cbiAqIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAqIGNvbnN0IHN0YXJ0T2ZOZXh0TWludXRlID0gbmV3IERhdGUoXG4gKiAgIGN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCksXG4gKiAgIGN1cnJlbnREYXRlLmdldE1vbnRoKCksXG4gKiAgIGN1cnJlbnREYXRlLmdldERhdGUoKSxcbiAqICAgY3VycmVudERhdGUuZ2V0SG91cnMoKSxcbiAqICAgY3VycmVudERhdGUuZ2V0TWludXRlcygpICsgMVxuICogKTtcbiAqXG4gKiAvLyBUaGlzIGNvdWxkIGJlIGFueSBvYnNlcnZhYmxlIHN0cmVhbVxuICogY29uc3Qgc291cmNlID0gaW50ZXJ2YWwoMTAwMCk7XG4gKlxuICogY29uc3QgcmVzdWx0ID0gc291cmNlLnBpcGUoXG4gKiAgIHRha2VVbnRpbCh0aW1lcihzdGFydE9mTmV4dE1pbnV0ZSkpXG4gKiApO1xuICpcbiAqIHJlc3VsdC5zdWJzY3JpYmUoY29uc29sZS5sb2cpO1xuICogYGBgXG4gKlxuICogIyMjIEtub3duIExpbWl0YXRpb25zXG4gKlxuICogLSBUaGUge0BsaW5rIGFzeW5jU2NoZWR1bGVyfSB1c2VzIGBzZXRUaW1lb3V0YCB3aGljaCBoYXMgbGltaXRhdGlvbnMgZm9yIGhvdyBmYXIgaW4gdGhlIGZ1dHVyZSBpdCBjYW4gYmUgc2NoZWR1bGVkLlxuICpcbiAqIC0gSWYgYSBgc2NoZWR1bGVyYCBpcyBwcm92aWRlZCB0aGF0IHJldHVybnMgYSB0aW1lc3RhbXAgb3RoZXIgdGhhbiBhbiBlcG9jaCBmcm9tIGBub3coKWAsIGFuZFxuICogYSBgRGF0ZWAgb2JqZWN0IGlzIHBhc3NlZCB0byB0aGUgYGR1ZVRpbWVgIGFyZ3VtZW50LCB0aGUgY2FsY3VsYXRpb24gZm9yIHdoZW4gdGhlIGZpcnN0IGVtaXNzaW9uXG4gKiBzaG91bGQgb2NjdXIgd2lsbCBiZSBpbmNvcnJlY3QuIEluIHRoaXMgY2FzZSwgaXQgd291bGQgYmUgYmVzdCB0byBkbyB5b3VyIG93biBjYWxjdWxhdGlvbnNcbiAqIGFoZWFkIG9mIHRpbWUsIGFuZCBwYXNzIGEgYG51bWJlcmAgaW4gYXMgdGhlIGBkdWVUaW1lYC5cbiAqXG4gKiBAcGFyYW0gZHVlIElmIGEgYG51bWJlcmAsIHRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgZW1pdHRpbmcuXG4gKiBJZiBhIGBEYXRlYCwgdGhlIGV4YWN0IHRpbWUgYXQgd2hpY2ggdG8gZW1pdC5cbiAqIEBwYXJhbSBzY2hlZHVsZXIgVGhlIHNjaGVkdWxlciB0byB1c2UgdG8gc2NoZWR1bGUgdGhlIGRlbGF5LiBEZWZhdWx0cyB0byB7QGxpbmsgYXN5bmNTY2hlZHVsZXJ9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGltZXIoZHVlOiBudW1iZXIgfCBEYXRlLCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTwwPjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIG9ic2VydmFibGUgdGhhdCBzdGFydHMgYW4gaW50ZXJ2YWwgYWZ0ZXIgYSBzcGVjaWZpZWQgZGVsYXksIGVtaXR0aW5nIGluY3JlbWVudGluZyBudW1iZXJzIC0tIHN0YXJ0aW5nIGF0IGAwYCAtLVxuICogb24gZWFjaCBpbnRlcnZhbCBhZnRlciB3b3Jkcy5cbiAqXG4gKiBUaGUgYGRlbGF5YCBhbmQgYGludGVydmFsRHVyYXRpb25gIGFyZSBzcGVjaWZpZWQgYnkgZGVmYXVsdCBpbiBtaWxsaXNlY29uZHMsIGhvd2V2ZXIgcHJvdmlkaW5nIGEgY3VzdG9tIHNjaGVkdWxlciBjb3VsZFxuICogY3JlYXRlIGEgZGlmZmVyZW50IGJlaGF2aW9yLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiAjIyMgU3RhcnQgYW4gaW50ZXJ2YWwgdGhhdCBzdGFydHMgcmlnaHQgYXdheVxuICpcbiAqIFNpbmNlIHtAbGluayBpbnRlcnZhbH0gd2FpdHMgZm9yIHRoZSBwYXNzZWQgZGVsYXkgYmVmb3JlIHN0YXJ0aW5nLFxuICogc29tZXRpbWVzIHRoYXQncyBub3QgaWRlYWwuIFlvdSBtYXkgd2FudCB0byBzdGFydCBhbiBpbnRlcnZhbCBpbW1lZGlhdGVseS5cbiAqIGB0aW1lcmAgd29ya3Mgd2VsbCBmb3IgdGhpcy4gSGVyZSB3ZSBoYXZlIGJvdGggc2lkZS1ieS1zaWRlIHNvIHlvdSBjYW5cbiAqIHNlZSB0aGVtIGluIGNvbXBhcmlzb24uXG4gKlxuICogTm90ZSB0aGF0IHRoaXMgb2JzZXJ2YWJsZSB3aWxsIG5ldmVyIGNvbXBsZXRlLlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyB0aW1lciwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiB0aW1lcigwLCAxMDAwKS5zdWJzY3JpYmUobiA9PiBjb25zb2xlLmxvZygndGltZXInLCBuKSk7XG4gKiBpbnRlcnZhbCgxMDAwKS5zdWJzY3JpYmUobiA9PiBjb25zb2xlLmxvZygnaW50ZXJ2YWwnLCBuKSk7XG4gKiBgYGBcbiAqXG4gKiAjIyMgS25vd24gTGltaXRhdGlvbnNcbiAqXG4gKiAtIFRoZSB7QGxpbmsgYXN5bmNTY2hlZHVsZXJ9IHVzZXMgYHNldFRpbWVvdXRgIHdoaWNoIGhhcyBsaW1pdGF0aW9ucyBmb3IgaG93IGZhciBpbiB0aGUgZnV0dXJlIGl0IGNhbiBiZSBzY2hlZHVsZWQuXG4gKlxuICogLSBJZiBhIGBzY2hlZHVsZXJgIGlzIHByb3ZpZGVkIHRoYXQgcmV0dXJucyBhIHRpbWVzdGFtcCBvdGhlciB0aGFuIGFuIGVwb2NoIGZyb20gYG5vdygpYCwgYW5kXG4gKiBhIGBEYXRlYCBvYmplY3QgaXMgcGFzc2VkIHRvIHRoZSBgZHVlVGltZWAgYXJndW1lbnQsIHRoZSBjYWxjdWxhdGlvbiBmb3Igd2hlbiB0aGUgZmlyc3QgZW1pc3Npb25cbiAqIHNob3VsZCBvY2N1ciB3aWxsIGJlIGluY29ycmVjdC4gSW4gdGhpcyBjYXNlLCBpdCB3b3VsZCBiZSBiZXN0IHRvIGRvIHlvdXIgb3duIGNhbGN1bGF0aW9uc1xuICogYWhlYWQgb2YgdGltZSwgYW5kIHBhc3MgYSBgbnVtYmVyYCBpbiBhcyB0aGUgYHN0YXJ0RHVlYC5cbiAqIEBwYXJhbSBzdGFydER1ZSBJZiBhIGBudW1iZXJgLCBpcyB0aGUgdGltZSB0byB3YWl0IGJlZm9yZSBzdGFydGluZyB0aGUgaW50ZXJ2YWwuXG4gKiBJZiBhIGBEYXRlYCwgaXMgdGhlIGV4YWN0IHRpbWUgYXQgd2hpY2ggdG8gc3RhcnQgdGhlIGludGVydmFsLlxuICogQHBhcmFtIGludGVydmFsRHVyYXRpb24gVGhlIGRlbGF5IGJldHdlZW4gZWFjaCB2YWx1ZSBlbWl0dGVkIGluIHRoZSBpbnRlcnZhbC4gUGFzc2luZyBhXG4gKiBuZWdhdGl2ZSBudW1iZXIgaGVyZSB3aWxsIHJlc3VsdCBpbiBpbW1lZGlhdGUgY29tcGxldGlvbiBhZnRlciB0aGUgZmlyc3QgdmFsdWUgaXMgZW1pdHRlZCwgYXMgdGhvdWdoXG4gKiBubyBgaW50ZXJ2YWxEdXJhdGlvbmAgd2FzIHBhc3NlZCBhdCBhbGwuXG4gKiBAcGFyYW0gc2NoZWR1bGVyIFRoZSBzY2hlZHVsZXIgdG8gdXNlIHRvIHNjaGVkdWxlIHRoZSBkZWxheS4gRGVmYXVsdHMgdG8ge0BsaW5rIGFzeW5jU2NoZWR1bGVyfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRpbWVyKHN0YXJ0RHVlOiBudW1iZXIgfCBEYXRlLCBpbnRlcnZhbER1cmF0aW9uOiBudW1iZXIsIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVGhlIHNpZ25hdHVyZSBhbGxvd2luZyBgdW5kZWZpbmVkYCB0byBiZSBwYXNzZWQgZm9yIGBpbnRlcnZhbER1cmF0aW9uYCB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSB0aGUgYHRpbWVyKGR1ZVRpbWUsIHNjaGVkdWxlcj8pYCBzaWduYXR1cmUgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRpbWVyKGR1ZVRpbWU6IG51bWJlciB8IERhdGUsIHVudXNlZDogdW5kZWZpbmVkLCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTwwPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVyKFxuICBkdWVUaW1lOiBudW1iZXIgfCBEYXRlID0gMCxcbiAgaW50ZXJ2YWxPclNjaGVkdWxlcj86IG51bWJlciB8IFNjaGVkdWxlckxpa2UsXG4gIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSA9IGFzeW5jU2NoZWR1bGVyXG4pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAvLyBTaW5jZSBuZWdhdGl2ZSBpbnRlcnZhbER1cmF0aW9uIGlzIHRyZWF0ZWQgYXMgdGhvdWdoIG5vXG4gIC8vIGludGVydmFsIHdhcyBzcGVjaWZpZWQgYXQgYWxsLCB3ZSBzdGFydCB3aXRoIGEgbmVnYXRpdmUgbnVtYmVyLlxuICBsZXQgaW50ZXJ2YWxEdXJhdGlvbiA9IC0xO1xuXG4gIGlmIChpbnRlcnZhbE9yU2NoZWR1bGVyICE9IG51bGwpIHtcbiAgICAvLyBJZiB3ZSBoYXZlIGEgc2Vjb25kIGFyZ3VtZW50LCBhbmQgaXQncyBhIHNjaGVkdWxlcixcbiAgICAvLyBvdmVycmlkZSB0aGUgc2NoZWR1bGVyIHdlIGhhZCBkZWZhdWx0ZWQuIE90aGVyd2lzZSxcbiAgICAvLyBpdCBtdXN0IGJlIGFuIGludGVydmFsLlxuICAgIGlmIChpc1NjaGVkdWxlcihpbnRlcnZhbE9yU2NoZWR1bGVyKSkge1xuICAgICAgc2NoZWR1bGVyID0gaW50ZXJ2YWxPclNjaGVkdWxlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgKmNvdWxkKiBiZSBuZWdhdGl2ZSwgaW4gd2hpY2ggY2FzZVxuICAgICAgLy8gaXQncyBsaWtlIG5vdCBwYXNzaW5nIGFuIGludGVydmFsRHVyYXRpb24gYXQgYWxsLlxuICAgICAgaW50ZXJ2YWxEdXJhdGlvbiA9IGludGVydmFsT3JTY2hlZHVsZXI7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgLy8gSWYgYSB2YWxpZCBkYXRlIGlzIHBhc3NlZCwgY2FsY3VsYXRlIGhvdyBsb25nIHRvIHdhaXQgYmVmb3JlXG4gICAgLy8gZXhlY3V0aW5nIHRoZSBmaXJzdCB2YWx1ZS4uLiBvdGhlcndpc2UsIGlmIGl0J3MgYSBudW1iZXIganVzdCBzY2hlZHVsZVxuICAgIC8vIHRoYXQgbWFueSBtaWxsaXNlY29uZHMgKG9yIHNjaGVkdWxlci1zcGVjaWZpZWQgdW5pdCBzaXplKSBpbiB0aGUgZnV0dXJlLlxuICAgIGxldCBkdWUgPSBpc1ZhbGlkRGF0ZShkdWVUaW1lKSA/ICtkdWVUaW1lIC0gc2NoZWR1bGVyIS5ub3coKSA6IGR1ZVRpbWU7XG5cbiAgICBpZiAoZHVlIDwgMCkge1xuICAgICAgLy8gRW5zdXJlIHdlIGRvbid0IHNjaGVkdWxlIGluIHRoZSBmdXR1cmUuXG4gICAgICBkdWUgPSAwO1xuICAgIH1cblxuICAgIC8vIFRoZSBpbmNyZW1lbnRpbmcgdmFsdWUgd2UgZW1pdC5cbiAgICBsZXQgbiA9IDA7XG5cbiAgICAvLyBTdGFydCB0aGUgdGltZXIuXG4gICAgcmV0dXJuIHNjaGVkdWxlci5zY2hlZHVsZShmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIXN1YnNjcmliZXIuY2xvc2VkKSB7XG4gICAgICAgIC8vIEVtaXQgdGhlIG5leHQgdmFsdWUgYW5kIGluY3JlbWVudC5cbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KG4rKyk7XG5cbiAgICAgICAgaWYgKDAgPD0gaW50ZXJ2YWxEdXJhdGlvbikge1xuICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBpbnRlcnZhbCBhZnRlciB0aGUgaW5pdGlhbCB0aW1lcixcbiAgICAgICAgICAvLyByZXNjaGVkdWxlIHdpdGggdGhlIHBlcmlvZC5cbiAgICAgICAgICB0aGlzLnNjaGVkdWxlKHVuZGVmaW5lZCwgaW50ZXJ2YWxEdXJhdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gV2UgZGlkbid0IGhhdmUgYW4gaW50ZXJ2YWwuIFNvIGp1c3QgY29tcGxldGUuXG4gICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgZHVlKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICcuLi9zY2hlZHVsZXIvYXN5bmMnO1xuaW1wb3J0IHsgU2NoZWR1bGVyTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHRpbWVyIH0gZnJvbSAnLi90aW1lcic7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgc2VxdWVudGlhbCBudW1iZXJzIGV2ZXJ5IHNwZWNpZmllZFxuICogaW50ZXJ2YWwgb2YgdGltZSwgb24gYSBzcGVjaWZpZWQge0BsaW5rIFNjaGVkdWxlckxpa2V9LlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5FbWl0cyBpbmNyZW1lbnRhbCBudW1iZXJzIHBlcmlvZGljYWxseSBpbiB0aW1lLjwvc3Bhbj5cbiAqXG4gKiAhW10oaW50ZXJ2YWwucG5nKVxuICpcbiAqIGBpbnRlcnZhbGAgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gaW5maW5pdGUgc2VxdWVuY2Ugb2ZcbiAqIGFzY2VuZGluZyBpbnRlZ2Vycywgd2l0aCBhIGNvbnN0YW50IGludGVydmFsIG9mIHRpbWUgb2YgeW91ciBjaG9vc2luZ1xuICogYmV0d2VlbiB0aG9zZSBlbWlzc2lvbnMuIFRoZSBmaXJzdCBlbWlzc2lvbiBpcyBub3Qgc2VudCBpbW1lZGlhdGVseSwgYnV0XG4gKiBvbmx5IGFmdGVyIHRoZSBmaXJzdCBwZXJpb2QgaGFzIHBhc3NlZC4gQnkgZGVmYXVsdCwgdGhpcyBvcGVyYXRvciB1c2VzIHRoZVxuICogYGFzeW5jYCB7QGxpbmsgU2NoZWR1bGVyTGlrZX0gdG8gcHJvdmlkZSBhIG5vdGlvbiBvZiB0aW1lLCBidXQgeW91IG1heSBwYXNzIGFueVxuICoge0BsaW5rIFNjaGVkdWxlckxpa2V9IHRvIGl0LlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBFbWl0cyBhc2NlbmRpbmcgbnVtYmVycywgb25lIGV2ZXJ5IHNlY29uZCAoMTAwMG1zKSB1cCB0byB0aGUgbnVtYmVyIDNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIHRha2UgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBudW1iZXJzID0gaW50ZXJ2YWwoMTAwMCk7XG4gKlxuICogY29uc3QgdGFrZUZvdXJOdW1iZXJzID0gbnVtYmVycy5waXBlKHRha2UoNCkpO1xuICpcbiAqIHRha2VGb3VyTnVtYmVycy5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZygnTmV4dDogJywgeCkpO1xuICpcbiAqIC8vIExvZ3M6XG4gKiAvLyBOZXh0OiAwXG4gKiAvLyBOZXh0OiAxXG4gKiAvLyBOZXh0OiAyXG4gKiAvLyBOZXh0OiAzXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayB0aW1lcn1cbiAqIEBzZWUge0BsaW5rIGRlbGF5fVxuICpcbiAqIEBwYXJhbSBwZXJpb2QgVGhlIGludGVydmFsIHNpemUgaW4gbWlsbGlzZWNvbmRzIChieSBkZWZhdWx0KSBvciB0aGUgdGltZSB1bml0IGRldGVybWluZWRcbiAqIGJ5IHRoZSBzY2hlZHVsZXIncyBjbG9jay5cbiAqIEBwYXJhbSBzY2hlZHVsZXIgVGhlIHtAbGluayBTY2hlZHVsZXJMaWtlfSB0byB1c2UgZm9yIHNjaGVkdWxpbmcgdGhlIGVtaXNzaW9uIG9mIHZhbHVlcyxcbiAqIGFuZCBwcm92aWRpbmcgYSBub3Rpb24gb2YgXCJ0aW1lXCIuXG4gKiBAcmV0dXJuIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBhIHNlcXVlbnRpYWwgbnVtYmVyIGVhY2ggdGltZSBpbnRlcnZhbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGludGVydmFsKHBlcmlvZCA9IDAsIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSA9IGFzeW5jU2NoZWR1bGVyKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgaWYgKHBlcmlvZCA8IDApIHtcbiAgICAvLyBXZSBjYW5ub3Qgc2NoZWR1bGUgYW4gaW50ZXJ2YWwgaW4gdGhlIHBhc3QuXG4gICAgcGVyaW9kID0gMDtcbiAgfVxuXG4gIHJldHVybiB0aW1lcihwZXJpb2QsIHBlcmlvZCwgc2NoZWR1bGVyKTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQsIE9ic2VydmFibGVJbnB1dFR1cGxlLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbWVyZ2VBbGwgfSBmcm9tICcuLi9vcGVyYXRvcnMvbWVyZ2VBbGwnO1xuaW1wb3J0IHsgaW5uZXJGcm9tIH0gZnJvbSAnLi9pbm5lckZyb20nO1xuaW1wb3J0IHsgRU1QVFkgfSBmcm9tICcuL2VtcHR5JztcbmltcG9ydCB7IHBvcE51bWJlciwgcG9wU2NoZWR1bGVyIH0gZnJvbSAnLi4vdXRpbC9hcmdzJztcbmltcG9ydCB7IGZyb20gfSBmcm9tICcuL2Zyb20nO1xuXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2U8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4oLi4uc291cmNlczogWy4uLk9ic2VydmFibGVJbnB1dFR1cGxlPEE+XSk6IE9ic2VydmFibGU8QVtudW1iZXJdPjtcbmV4cG9ydCBmdW5jdGlvbiBtZXJnZTxBIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiguLi5zb3VyY2VzQW5kQ29uY3VycmVuY3k6IFsuLi5PYnNlcnZhYmxlSW5wdXRUdXBsZTxBPiwgbnVtYmVyP10pOiBPYnNlcnZhYmxlPEFbbnVtYmVyXT47XG4vKiogQGRlcHJlY2F0ZWQgVGhlIGBzY2hlZHVsZXJgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSBgc2NoZWR1bGVkYCBhbmQgYG1lcmdlQWxsYC4gRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvc2NoZWR1bGVyLWFyZ3VtZW50ICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2U8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4oXG4gIC4uLnNvdXJjZXNBbmRTY2hlZHVsZXI6IFsuLi5PYnNlcnZhYmxlSW5wdXRUdXBsZTxBPiwgU2NoZWR1bGVyTGlrZT9dXG4pOiBPYnNlcnZhYmxlPEFbbnVtYmVyXT47XG4vKiogQGRlcHJlY2F0ZWQgVGhlIGBzY2hlZHVsZXJgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSBgc2NoZWR1bGVkYCBhbmQgYG1lcmdlQWxsYC4gRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvc2NoZWR1bGVyLWFyZ3VtZW50ICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2U8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4oXG4gIC4uLnNvdXJjZXNBbmRDb25jdXJyZW5jeUFuZFNjaGVkdWxlcjogWy4uLk9ic2VydmFibGVJbnB1dFR1cGxlPEE+LCBudW1iZXI/LCBTY2hlZHVsZXJMaWtlP11cbik6IE9ic2VydmFibGU8QVtudW1iZXJdPjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIG91dHB1dCBPYnNlcnZhYmxlIHdoaWNoIGNvbmN1cnJlbnRseSBlbWl0cyBhbGwgdmFsdWVzIGZyb20gZXZlcnlcbiAqIGdpdmVuIGlucHV0IE9ic2VydmFibGUuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkZsYXR0ZW5zIG11bHRpcGxlIE9ic2VydmFibGVzIHRvZ2V0aGVyIGJ5IGJsZW5kaW5nXG4gKiB0aGVpciB2YWx1ZXMgaW50byBvbmUgT2JzZXJ2YWJsZS48L3NwYW4+XG4gKlxuICogIVtdKG1lcmdlLnBuZylcbiAqXG4gKiBgbWVyZ2VgIHN1YnNjcmliZXMgdG8gZWFjaCBnaXZlbiBpbnB1dCBPYnNlcnZhYmxlIChhcyBhcmd1bWVudHMpLCBhbmQgc2ltcGx5XG4gKiBmb3J3YXJkcyAod2l0aG91dCBkb2luZyBhbnkgdHJhbnNmb3JtYXRpb24pIGFsbCB0aGUgdmFsdWVzIGZyb20gYWxsIHRoZSBpbnB1dFxuICogT2JzZXJ2YWJsZXMgdG8gdGhlIG91dHB1dCBPYnNlcnZhYmxlLiBUaGUgb3V0cHV0IE9ic2VydmFibGUgb25seSBjb21wbGV0ZXNcbiAqIG9uY2UgYWxsIGlucHV0IE9ic2VydmFibGVzIGhhdmUgY29tcGxldGVkLiBBbnkgZXJyb3IgZGVsaXZlcmVkIGJ5IGFuIGlucHV0XG4gKiBPYnNlcnZhYmxlIHdpbGwgYmUgaW1tZWRpYXRlbHkgZW1pdHRlZCBvbiB0aGUgb3V0cHV0IE9ic2VydmFibGUuXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBNZXJnZSB0b2dldGhlciB0d28gT2JzZXJ2YWJsZXM6IDFzIGludGVydmFsIGFuZCBjbGlja3NcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgbWVyZ2UsIGZyb21FdmVudCwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgdGltZXIgPSBpbnRlcnZhbCgxMDAwKTtcbiAqIGNvbnN0IGNsaWNrc09yVGltZXIgPSBtZXJnZShjbGlja3MsIHRpbWVyKTtcbiAqIGNsaWNrc09yVGltZXIuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIFJlc3VsdHMgaW4gdGhlIGZvbGxvd2luZzpcbiAqIC8vIHRpbWVyIHdpbGwgZW1pdCBhc2NlbmRpbmcgdmFsdWVzLCBvbmUgZXZlcnkgc2Vjb25kKDEwMDBtcykgdG8gY29uc29sZVxuICogLy8gY2xpY2tzIGxvZ3MgTW91c2VFdmVudHMgdG8gY29uc29sZSBldmVyeSB0aW1lIHRoZSBcImRvY3VtZW50XCIgaXMgY2xpY2tlZFxuICogLy8gU2luY2UgdGhlIHR3byBzdHJlYW1zIGFyZSBtZXJnZWQgeW91IHNlZSB0aGVzZSBoYXBwZW5pbmdcbiAqIC8vIGFzIHRoZXkgb2NjdXIuXG4gKiBgYGBcbiAqXG4gKiBNZXJnZSB0b2dldGhlciAzIE9ic2VydmFibGVzLCBidXQgcnVuIG9ubHkgMiBjb25jdXJyZW50bHlcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIHRha2UsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgdGltZXIxID0gaW50ZXJ2YWwoMTAwMCkucGlwZSh0YWtlKDEwKSk7XG4gKiBjb25zdCB0aW1lcjIgPSBpbnRlcnZhbCgyMDAwKS5waXBlKHRha2UoNikpO1xuICogY29uc3QgdGltZXIzID0gaW50ZXJ2YWwoNTAwKS5waXBlKHRha2UoMTApKTtcbiAqXG4gKiBjb25zdCBjb25jdXJyZW50ID0gMjsgLy8gdGhlIGFyZ3VtZW50XG4gKiBjb25zdCBtZXJnZWQgPSBtZXJnZSh0aW1lcjEsIHRpbWVyMiwgdGltZXIzLCBjb25jdXJyZW50KTtcbiAqIG1lcmdlZC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKlxuICogLy8gUmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nOlxuICogLy8gLSBGaXJzdCB0aW1lcjEgYW5kIHRpbWVyMiB3aWxsIHJ1biBjb25jdXJyZW50bHlcbiAqIC8vIC0gdGltZXIxIHdpbGwgZW1pdCBhIHZhbHVlIGV2ZXJ5IDEwMDBtcyBmb3IgMTAgaXRlcmF0aW9uc1xuICogLy8gLSB0aW1lcjIgd2lsbCBlbWl0IGEgdmFsdWUgZXZlcnkgMjAwMG1zIGZvciA2IGl0ZXJhdGlvbnNcbiAqIC8vIC0gYWZ0ZXIgdGltZXIxIGhpdHMgaXRzIG1heCBpdGVyYXRpb24sIHRpbWVyMiB3aWxsXG4gKiAvLyAgIGNvbnRpbnVlLCBhbmQgdGltZXIzIHdpbGwgc3RhcnQgdG8gcnVuIGNvbmN1cnJlbnRseSB3aXRoIHRpbWVyMlxuICogLy8gLSB3aGVuIHRpbWVyMiBoaXRzIGl0cyBtYXggaXRlcmF0aW9uIGl0IHRlcm1pbmF0ZXMsIGFuZFxuICogLy8gICB0aW1lcjMgd2lsbCBjb250aW51ZSB0byBlbWl0IGEgdmFsdWUgZXZlcnkgNTAwbXMgdW50aWwgaXQgaXMgY29tcGxldGVcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIG1lcmdlQWxsfVxuICogQHNlZSB7QGxpbmsgbWVyZ2VNYXB9XG4gKiBAc2VlIHtAbGluayBtZXJnZU1hcFRvfVxuICogQHNlZSB7QGxpbmsgbWVyZ2VTY2FufVxuICpcbiAqIEBwYXJhbSBhcmdzIGBPYnNlcnZhYmxlSW5wdXRgcyB0byBtZXJnZSB0b2dldGhlci4gSWYgdGhlIGxhc3QgcGFyYW1ldGVyXG4gKiBpcyBvZiB0eXBlIG51bWJlciwgYG1lcmdlYCB3aWxsIHVzZSBpdCB0byBsaW1pdCBudW1iZXIgb2YgY29uY3VycmVudGx5XG4gKiBzdWJzY3JpYmVkIGBPYnNlcnZhYmxlSW5wdXRgcy4gSWYgdGhlIGxhc3QgcGFyYW1ldGVyIGlzIHtAbGluayBTY2hlZHVsZXJMaWtlfSxcbiAqIGl0IHdpbGwgYmUgdXNlZCBmb3Igc2NoZWR1bGluZyB0aGUgZW1pc3Npb24gb2YgdmFsdWVzLlxuICogQHJldHVybiBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgaXRlbXMgdGhhdCBhcmUgdGhlIHJlc3VsdCBvZiBldmVyeSBpbnB1dCBPYnNlcnZhYmxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2UoLi4uYXJnczogKE9ic2VydmFibGVJbnB1dDx1bmtub3duPiB8IG51bWJlciB8IFNjaGVkdWxlckxpa2UpW10pOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgY29uc3Qgc2NoZWR1bGVyID0gcG9wU2NoZWR1bGVyKGFyZ3MpO1xuICBjb25zdCBjb25jdXJyZW50ID0gcG9wTnVtYmVyKGFyZ3MsIEluZmluaXR5KTtcbiAgY29uc3Qgc291cmNlcyA9IGFyZ3MgYXMgT2JzZXJ2YWJsZUlucHV0PHVua25vd24+W107XG4gIHJldHVybiAhc291cmNlcy5sZW5ndGhcbiAgICA/IC8vIE5vIHNvdXJjZSBwcm92aWRlZFxuICAgICAgRU1QVFlcbiAgICA6IHNvdXJjZXMubGVuZ3RoID09PSAxXG4gICAgPyAvLyBPbmUgc291cmNlPyBKdXN0IHJldHVybiBpdC5cbiAgICAgIGlubmVyRnJvbShzb3VyY2VzWzBdKVxuICAgIDogLy8gTWVyZ2UgYWxsIHNvdXJjZXNcbiAgICAgIG1lcmdlQWxsKGNvbmN1cnJlbnQpKGZyb20oc291cmNlcywgc2NoZWR1bGVyKSk7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL3V0aWwvbm9vcCc7XG5cbi8qKlxuICogQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIG5vIGl0ZW1zIHRvIHRoZSBPYnNlcnZlciBhbmQgbmV2ZXIgY29tcGxldGVzLlxuICpcbiAqICFbXShuZXZlci5wbmcpXG4gKlxuICogQSBzaW1wbGUgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIG5laXRoZXIgdmFsdWVzIG5vciBlcnJvcnMgbm9yIHRoZSBjb21wbGV0aW9uXG4gKiBub3RpZmljYXRpb24uIEl0IGNhbiBiZSB1c2VkIGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9yIGZvciBjb21wb3Npbmcgd2l0aCBvdGhlclxuICogT2JzZXJ2YWJsZXMuIFBsZWFzZSBub3RlIHRoYXQgYnkgbmV2ZXIgZW1pdHRpbmcgYSBjb21wbGV0ZSBub3RpZmljYXRpb24sIHRoaXNcbiAqIE9ic2VydmFibGUga2VlcHMgdGhlIHN1YnNjcmlwdGlvbiBmcm9tIGJlaW5nIGRpc3Bvc2VkIGF1dG9tYXRpY2FsbHkuXG4gKiBTdWJzY3JpcHRpb25zIG5lZWQgdG8gYmUgbWFudWFsbHkgZGlzcG9zZWQuXG4gKlxuICogIyMgIEV4YW1wbGVcbiAqXG4gKiBFbWl0IHRoZSBudW1iZXIgNywgdGhlbiBuZXZlciBlbWl0IGFueXRoaW5nIGVsc2UgKG5vdCBldmVuIGNvbXBsZXRlKVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBORVZFUiwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgaW5mbyA9ICgpID0+IGNvbnNvbGUubG9nKCdXaWxsIG5vdCBiZSBjYWxsZWQnKTtcbiAqXG4gKiBjb25zdCByZXN1bHQgPSBORVZFUi5waXBlKHN0YXJ0V2l0aCg3KSk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHtcbiAqICAgbmV4dDogeCA9PiBjb25zb2xlLmxvZyh4KSxcbiAqICAgZXJyb3I6IGluZm8sXG4gKiAgIGNvbXBsZXRlOiBpbmZvXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIE9ic2VydmFibGV9XG4gKiBAc2VlIHtAbGluayBFTVBUWX1cbiAqIEBzZWUge0BsaW5rIG9mfVxuICogQHNlZSB7QGxpbmsgdGhyb3dFcnJvcn1cbiAqL1xuZXhwb3J0IGNvbnN0IE5FVkVSID0gbmV3IE9ic2VydmFibGU8bmV2ZXI+KG5vb3ApO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIHdpdGggdGhlIHtAbGluayBORVZFUn0gY29uc3RhbnQuIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5ldmVyKCkge1xuICByZXR1cm4gTkVWRVI7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0VHVwbGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBhcmdzT3JBcmdBcnJheSB9IGZyb20gJy4uL3V0aWwvYXJnc09yQXJnQXJyYXknO1xuaW1wb3J0IHsgT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi4vb3BlcmF0b3JzL09wZXJhdG9yU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vdXRpbC9ub29wJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4vaW5uZXJGcm9tJztcblxuZXhwb3J0IGZ1bmN0aW9uIG9uRXJyb3JSZXN1bWVOZXh0PEEgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+KHNvdXJjZXM6IFsuLi5PYnNlcnZhYmxlSW5wdXRUdXBsZTxBPl0pOiBPYnNlcnZhYmxlPEFbbnVtYmVyXT47XG5leHBvcnQgZnVuY3Rpb24gb25FcnJvclJlc3VtZU5leHQ8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4oLi4uc291cmNlczogWy4uLk9ic2VydmFibGVJbnB1dFR1cGxlPEE+XSk6IE9ic2VydmFibGU8QVtudW1iZXJdPjtcblxuLyoqXG4gKiBXaGVuIGFueSBvZiB0aGUgcHJvdmlkZWQgT2JzZXJ2YWJsZSBlbWl0cyBhIGNvbXBsZXRlIG9yIGFuIGVycm9yIG5vdGlmaWNhdGlvbiwgaXQgaW1tZWRpYXRlbHkgc3Vic2NyaWJlcyB0byB0aGUgbmV4dCBvbmVcbiAqIHRoYXQgd2FzIHBhc3NlZC5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+RXhlY3V0ZSBzZXJpZXMgb2YgT2JzZXJ2YWJsZXMgbm8gbWF0dGVyIHdoYXQsIGV2ZW4gaWYgaXQgbWVhbnMgc3dhbGxvd2luZyBlcnJvcnMuPC9zcGFuPlxuICpcbiAqICFbXShvbkVycm9yUmVzdW1lTmV4dC5wbmcpXG4gKlxuICogYG9uRXJyb3JSZXN1bWVOZXh0YCB3aWxsIHN1YnNjcmliZSB0byBlYWNoIG9ic2VydmFibGUgc291cmNlIGl0IGlzIHByb3ZpZGVkLCBpbiBvcmRlci5cbiAqIElmIHRoZSBzb3VyY2UgaXQncyBzdWJzY3JpYmVkIHRvIGVtaXRzIGFuIGVycm9yIG9yIGNvbXBsZXRlcywgaXQgd2lsbCBtb3ZlIHRvIHRoZSBuZXh0IHNvdXJjZVxuICogd2l0aG91dCBlcnJvci5cbiAqXG4gKiBJZiBgb25FcnJvclJlc3VtZU5leHRgIGlzIHByb3ZpZGVkIG5vIGFyZ3VtZW50cywgb3IgYSBzaW5nbGUsIGVtcHR5IGFycmF5LCBpdCB3aWxsIHJldHVybiB7QGxpbmsgRU1QVFl9LlxuICpcbiAqIGBvbkVycm9yUmVzdW1lTmV4dGAgaXMgYmFzaWNhbGx5IHtAbGluayBjb25jYXR9LCBvbmx5IGl0IHdpbGwgY29udGludWUsIGV2ZW4gaWYgb25lIG9mIGl0c1xuICogc291cmNlcyBlbWl0cyBhbiBlcnJvci5cbiAqXG4gKiBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gd2F5IHRvIGhhbmRsZSBhbnkgZXJyb3JzIHRocm93biBieSBzb3VyY2VzIHZpYSB0aGUgcmVzdWx0IG9mXG4gKiBgb25FcnJvclJlc3VtZU5leHRgLiBJZiB5b3Ugd2FudCB0byBoYW5kbGUgZXJyb3JzIHRocm93biBpbiBhbnkgZ2l2ZW4gc291cmNlLCB5b3UgY2FuXG4gKiBhbHdheXMgdXNlIHRoZSB7QGxpbmsgY2F0Y2hFcnJvcn0gb3BlcmF0b3Igb24gdGhlbSBiZWZvcmUgcGFzc2luZyB0aGVtIGludG8gYG9uRXJyb3JSZXN1bWVOZXh0YC5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogU3Vic2NyaWJlIHRvIHRoZSBuZXh0IE9ic2VydmFibGUgYWZ0ZXIgbWFwIGZhaWxzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9uRXJyb3JSZXN1bWVOZXh0LCBvZiwgbWFwIH0gZnJvbSAncnhqcyc7XG4gKlxuICogb25FcnJvclJlc3VtZU5leHQoXG4gKiAgIG9mKDEsIDIsIDMsIDApLnBpcGUoXG4gKiAgICAgbWFwKHggPT4ge1xuICogICAgICAgaWYgKHggPT09IDApIHtcbiAqICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAqICAgICAgIH1cbiAqICAgICAgIHJldHVybiAxMCAvIHg7XG4gKiAgICAgfSlcbiAqICAgKSxcbiAqICAgb2YoMSwgMiwgMylcbiAqIClcbiAqIC5zdWJzY3JpYmUoe1xuICogICBuZXh0OiB2YWx1ZSA9PiBjb25zb2xlLmxvZyh2YWx1ZSksXG4gKiAgIGVycm9yOiBlcnIgPT4gY29uc29sZS5sb2coZXJyKSwgICAgIC8vIFdpbGwgbmV2ZXIgYmUgY2FsbGVkLlxuICogICBjb21wbGV0ZTogKCkgPT4gY29uc29sZS5sb2coJ2RvbmUnKVxuICogfSk7XG4gKlxuICogLy8gTG9nczpcbiAqIC8vIDEwXG4gKiAvLyA1XG4gKiAvLyAzLjMzMzMzMzMzMzMzMzMzMzVcbiAqIC8vIDFcbiAqIC8vIDJcbiAqIC8vIDNcbiAqIC8vICdkb25lJ1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgY29uY2F0fVxuICogQHNlZSB7QGxpbmsgY2F0Y2hFcnJvcn1cbiAqXG4gKiBAcGFyYW0gc291cmNlcyBgT2JzZXJ2YWJsZUlucHV0YHMgcGFzc2VkIGVpdGhlciBkaXJlY3RseSBvciBhcyBhbiBhcnJheS5cbiAqIEByZXR1cm4gQW4gT2JzZXJ2YWJsZSB0aGF0IGNvbmNhdGVuYXRlcyBhbGwgc291cmNlcywgb25lIGFmdGVyIHRoZSBvdGhlcixcbiAqIGlnbm9yaW5nIGFsbCBlcnJvcnMsIHN1Y2ggdGhhdCBhbnkgZXJyb3IgY2F1c2VzIGl0IHRvIG1vdmUgb24gdG8gdGhlIG5leHQgc291cmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb25FcnJvclJlc3VtZU5leHQ8QSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4oXG4gIC4uLnNvdXJjZXM6IFtbLi4uT2JzZXJ2YWJsZUlucHV0VHVwbGU8QT5dXSB8IFsuLi5PYnNlcnZhYmxlSW5wdXRUdXBsZTxBPl1cbik6IE9ic2VydmFibGU8QVtudW1iZXJdPiB7XG4gIGNvbnN0IG5leHRTb3VyY2VzOiBPYnNlcnZhYmxlSW5wdXRUdXBsZTxBPiA9IGFyZ3NPckFyZ0FycmF5KHNvdXJjZXMpIGFzIGFueTtcblxuICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICBsZXQgc291cmNlSW5kZXggPSAwO1xuICAgIGNvbnN0IHN1YnNjcmliZU5leHQgPSAoKSA9PiB7XG4gICAgICBpZiAoc291cmNlSW5kZXggPCBuZXh0U291cmNlcy5sZW5ndGgpIHtcbiAgICAgICAgbGV0IG5leHRTb3VyY2U6IE9ic2VydmFibGU8QVtudW1iZXJdPjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBuZXh0U291cmNlID0gaW5uZXJGcm9tKG5leHRTb3VyY2VzW3NvdXJjZUluZGV4KytdKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgc3Vic2NyaWJlTmV4dCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbm5lclN1YnNjcmliZXIgPSBuZXcgT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIHVuZGVmaW5lZCwgbm9vcCwgbm9vcCk7XG4gICAgICAgIG5leHRTb3VyY2Uuc3Vic2NyaWJlKGlubmVyU3Vic2NyaWJlcik7XG4gICAgICAgIGlubmVyU3Vic2NyaWJlci5hZGQoc3Vic2NyaWJlTmV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBzdWJzY3JpYmVOZXh0KCk7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IFNjaGVkdWxlckxpa2UgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAnLi9mcm9tJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYGZyb20oT2JqZWN0LmVudHJpZXMob2JqKSlgIGluc3RlYWQuIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhaXJzPFQ+KGFycjogcmVhZG9ubHkgVFtdLCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTxbc3RyaW5nLCBUXT47XG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgZnJvbShPYmplY3QuZW50cmllcyhvYmopKWAgaW5zdGVhZC4gV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFpcnM8TyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+PihvYmo6IE8sIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpOiBPYnNlcnZhYmxlPFtrZXlvZiBPLCBPW2tleW9mIE9dXT47XG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgZnJvbShPYmplY3QuZW50cmllcyhvYmopKWAgaW5zdGVhZC4gV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFpcnM8VD4oaXRlcmFibGU6IEl0ZXJhYmxlPFQ+LCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTxbc3RyaW5nLCBUXT47XG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgZnJvbShPYmplY3QuZW50cmllcyhvYmopKWAgaW5zdGVhZC4gV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFpcnMoXG4gIG46IG51bWJlciB8IGJpZ2ludCB8IGJvb2xlYW4gfCAoKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHwgc3ltYm9sLFxuICBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlXG4pOiBPYnNlcnZhYmxlPFtuZXZlciwgbmV2ZXJdPjtcblxuLyoqXG4gKiBDb252ZXJ0IGFuIG9iamVjdCBpbnRvIGFuIE9ic2VydmFibGUgb2YgYFtrZXksIHZhbHVlXWAgcGFpcnMuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPlR1cm4gZW50cmllcyBvZiBhbiBvYmplY3QgaW50byBhIHN0cmVhbS48L3NwYW4+XG4gKlxuICogIVtdKHBhaXJzLnBuZylcbiAqXG4gKiBgcGFpcnNgIHRha2VzIGFuIGFyYml0cmFyeSBvYmplY3QgYW5kIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFycmF5cy4gRWFjaFxuICogZW1pdHRlZCBhcnJheSBoYXMgZXhhY3RseSB0d28gZWxlbWVudHMgLSB0aGUgZmlyc3QgaXMgYSBrZXkgZnJvbSB0aGUgb2JqZWN0XG4gKiBhbmQgdGhlIHNlY29uZCBpcyBhIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhhdCBrZXkuIEtleXMgYXJlIGV4dHJhY3RlZCBmcm9tXG4gKiBhbiBvYmplY3QgdmlhIGBPYmplY3Qua2V5c2AgZnVuY3Rpb24sIHdoaWNoIG1lYW5zIHRoYXQgdGhleSB3aWxsIGJlIG9ubHlcbiAqIGVudW1lcmFibGUga2V5cyB0aGF0IGFyZSBwcmVzZW50IG9uIGFuIG9iamVjdCBkaXJlY3RseSAtIG5vdCBvbmVzIGluaGVyaXRlZFxuICogdmlhIHByb3RvdHlwZSBjaGFpbi5cbiAqXG4gKiBCeSBkZWZhdWx0LCB0aGVzZSBhcnJheXMgYXJlIGVtaXR0ZWQgc3luY2hyb25vdXNseS4gVG8gY2hhbmdlIHRoYXQgeW91IGNhblxuICogcGFzcyBhIHtAbGluayBTY2hlZHVsZXJMaWtlfSBhcyBhIHNlY29uZCBhcmd1bWVudCB0byBgcGFpcnNgLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3QgdG8gYW4gT2JzZXJ2YWJsZVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBwYWlycyB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IG9iaiA9IHtcbiAqICAgZm9vOiA0MixcbiAqICAgYmFyOiA1NixcbiAqICAgYmF6OiA3OFxuICogfTtcbiAqXG4gKiBwYWlycyhvYmopLnN1YnNjcmliZSh7XG4gKiAgIG5leHQ6IHZhbHVlID0+IGNvbnNvbGUubG9nKHZhbHVlKSxcbiAqICAgY29tcGxldGU6ICgpID0+IGNvbnNvbGUubG9nKCdDb21wbGV0ZSEnKVxuICogfSk7XG4gKlxuICogLy8gTG9nczpcbiAqIC8vIFsnZm9vJywgNDJdXG4gKiAvLyBbJ2JhcicsIDU2XVxuICogLy8gWydiYXonLCA3OF1cbiAqIC8vICdDb21wbGV0ZSEnXG4gKiBgYGBcbiAqXG4gKiAjIyMgT2JqZWN0LmVudHJpZXMgcmVxdWlyZWRcbiAqXG4gKiBJbiBJRSwgeW91IHdpbGwgbmVlZCB0byBwb2x5ZmlsbCBgT2JqZWN0LmVudHJpZXNgIGluIG9yZGVyIHRvIHVzZSB0aGlzLlxuICogW01ETiBoYXMgYSBwb2x5ZmlsbCBoZXJlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9PYmplY3QvZW50cmllcylcbiAqXG4gKiBAcGFyYW0gb2JqIFRoZSBvYmplY3QgdG8gaW5zcGVjdCBhbmQgdHVybiBpbnRvIGFuIE9ic2VydmFibGUgc2VxdWVuY2UuXG4gKiBAcGFyYW0gc2NoZWR1bGVyIEFuIG9wdGlvbmFsIElTY2hlZHVsZXIgdG8gc2NoZWR1bGUgd2hlbiByZXN1bHRpbmdcbiAqIE9ic2VydmFibGUgd2lsbCBlbWl0IHZhbHVlcy5cbiAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgc2VxdWVuY2Ugb2YgW2tleSwgdmFsdWVdIHBhaXJzIGZyb20gdGhlIG9iamVjdC5cbiAqIEBkZXByZWNhdGVkIFVzZSBgZnJvbShPYmplY3QuZW50cmllcyhvYmopKWAgaW5zdGVhZC4gV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFpcnMob2JqOiBhbnksIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpIHtcbiAgcmV0dXJuIGZyb20oT2JqZWN0LmVudHJpZXMob2JqKSwgc2NoZWR1bGVyIGFzIGFueSk7XG59XG4iLCAiaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiwgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBUcnV0aHlUeXBlc09mIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5cbi8qKiBAZGVwcmVjYXRlZCBVc2UgYSBjbG9zdXJlIGluc3RlYWQgb2YgYSBgdGhpc0FyZ2AuIFNpZ25hdHVyZXMgYWNjZXB0aW5nIGEgYHRoaXNBcmdgIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXI8VCwgUyBleHRlbmRzIFQsIEE+KHByZWRpY2F0ZTogKHRoaXM6IEEsIHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiB2YWx1ZSBpcyBTLCB0aGlzQXJnOiBBKTogT3BlcmF0b3JGdW5jdGlvbjxULCBTPjtcbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXI8VCwgUyBleHRlbmRzIFQ+KHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiB2YWx1ZSBpcyBTKTogT3BlcmF0b3JGdW5jdGlvbjxULCBTPjtcbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXI8VD4ocHJlZGljYXRlOiBCb29sZWFuQ29uc3RydWN0b3IpOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFRydXRoeVR5cGVzT2Y8VD4+O1xuLyoqIEBkZXByZWNhdGVkIFVzZSBhIGNsb3N1cmUgaW5zdGVhZCBvZiBhIGB0aGlzQXJnYC4gU2lnbmF0dXJlcyBhY2NlcHRpbmcgYSBgdGhpc0FyZ2Agd2lsbCBiZSByZW1vdmVkIGluIHY4LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcjxULCBBPihwcmVkaWNhdGU6ICh0aGlzOiBBLCB2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gYm9vbGVhbiwgdGhpc0FyZzogQSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPjtcbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXI8VD4ocHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD47XG5cbi8qKlxuICogRmlsdGVyIGl0ZW1zIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIGJ5IG9ubHkgZW1pdHRpbmcgdGhvc2UgdGhhdFxuICogc2F0aXNmeSBhIHNwZWNpZmllZCBwcmVkaWNhdGUuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkxpa2VcbiAqIFtBcnJheS5wcm90b3R5cGUuZmlsdGVyKCldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L2ZpbHRlciksXG4gKiBpdCBvbmx5IGVtaXRzIGEgdmFsdWUgZnJvbSB0aGUgc291cmNlIGlmIGl0IHBhc3NlcyBhIGNyaXRlcmlvbiBmdW5jdGlvbi48L3NwYW4+XG4gKlxuICogIVtdKGZpbHRlci5wbmcpXG4gKlxuICogU2ltaWxhciB0byB0aGUgd2VsbC1rbm93biBgQXJyYXkucHJvdG90eXBlLmZpbHRlcmAgbWV0aG9kLCB0aGlzIG9wZXJhdG9yXG4gKiB0YWtlcyB2YWx1ZXMgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUsIHBhc3NlcyB0aGVtIHRocm91Z2ggYSBgcHJlZGljYXRlYFxuICogZnVuY3Rpb24gYW5kIG9ubHkgZW1pdHMgdGhvc2UgdmFsdWVzIHRoYXQgeWllbGRlZCBgdHJ1ZWAuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIEVtaXQgb25seSBjbGljayBldmVudHMgd2hvc2UgdGFyZ2V0IHdhcyBhIERJViBlbGVtZW50XG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gKiBkaXYuc3R5bGUuY3NzVGV4dCA9ICd3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6ICMwOWM7JztcbiAqIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTtcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgY2xpY2tzT25EaXZzID0gY2xpY2tzLnBpcGUoZmlsdGVyKGV2ID0+ICg8SFRNTEVsZW1lbnQ+ZXYudGFyZ2V0KS50YWdOYW1lID09PSAnRElWJykpO1xuICogY2xpY2tzT25EaXZzLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGRpc3RpbmN0fVxuICogQHNlZSB7QGxpbmsgZGlzdGluY3RVbnRpbENoYW5nZWR9XG4gKiBAc2VlIHtAbGluayBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZH1cbiAqIEBzZWUge0BsaW5rIGlnbm9yZUVsZW1lbnRzfVxuICogQHNlZSB7QGxpbmsgcGFydGl0aW9ufVxuICogQHNlZSB7QGxpbmsgc2tpcH1cbiAqXG4gKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gdGhhdFxuICogZXZhbHVhdGVzIGVhY2ggdmFsdWUgZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUuIElmIGl0IHJldHVybnMgYHRydWVgLFxuICogdGhlIHZhbHVlIGlzIGVtaXR0ZWQsIGlmIGBmYWxzZWAgdGhlIHZhbHVlIGlzIG5vdCBwYXNzZWQgdG8gdGhlIG91dHB1dFxuICogT2JzZXJ2YWJsZS4gVGhlIGBpbmRleGAgcGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgYGlgIGZvciB0aGUgaS10aCBzb3VyY2VcbiAqIGVtaXNzaW9uIHRoYXQgaGFzIGhhcHBlbmVkIHNpbmNlIHRoZSBzdWJzY3JpcHRpb24sIHN0YXJ0aW5nIGZyb20gdGhlIG51bWJlclxuICogYDBgLlxuICogQHBhcmFtIHRoaXNBcmcgQW4gb3B0aW9uYWwgYXJndW1lbnQgdG8gZGV0ZXJtaW5lIHRoZSB2YWx1ZSBvZiBgdGhpc2BcbiAqIGluIHRoZSBgcHJlZGljYXRlYCBmdW5jdGlvbi5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGl0ZW1zIGZyb20gdGhlXG4gKiBzb3VyY2UgT2JzZXJ2YWJsZSB0aGF0IHNhdGlzZnkgdGhlIHNwZWNpZmllZCBgcHJlZGljYXRlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcjxUPihwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gYm9vbGVhbiwgdGhpc0FyZz86IGFueSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICAvLyBBbiBpbmRleCBwYXNzZWQgdG8gb3VyIHByZWRpY2F0ZSBmdW5jdGlvbiBvbiBlYWNoIGNhbGwuXG4gICAgbGV0IGluZGV4ID0gMDtcblxuICAgIC8vIFN1YnNjcmliZSB0byB0aGUgc291cmNlLCBhbGwgZXJyb3JzIGFuZCBjb21wbGV0aW9ucyBhcmVcbiAgICAvLyBmb3J3YXJkZWQgdG8gdGhlIGNvbnN1bWVyLlxuICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICAvLyBDYWxsIHRoZSBwcmVkaWNhdGUgd2l0aCB0aGUgYXBwcm9wcmlhdGUgYHRoaXNgIGNvbnRleHQsXG4gICAgICAvLyBpZiB0aGUgcHJlZGljYXRlIHJldHVybnMgYHRydWVgLCB0aGVuIHNlbmQgdGhlIHZhbHVlXG4gICAgICAvLyB0byB0aGUgY29uc3VtZXIuXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgKHZhbHVlKSA9PiBwcmVkaWNhdGUuY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaW5kZXgrKykgJiYgc3Vic2NyaWJlci5uZXh0KHZhbHVlKSlcbiAgICApO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBub3QgfSBmcm9tICcuLi91dGlsL25vdCc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICcuLi9vcGVyYXRvcnMvZmlsdGVyJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4vaW5uZXJGcm9tJztcblxuLyoqIEBkZXByZWNhdGVkIFVzZSBhIGNsb3N1cmUgaW5zdGVhZCBvZiBhIGB0aGlzQXJnYC4gU2lnbmF0dXJlcyBhY2NlcHRpbmcgYSBgdGhpc0FyZ2Agd2lsbCBiZSByZW1vdmVkIGluIHY4LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnRpdGlvbjxULCBVIGV4dGVuZHMgVCwgQT4oXG4gIHNvdXJjZTogT2JzZXJ2YWJsZUlucHV0PFQ+LFxuICBwcmVkaWNhdGU6ICh0aGlzOiBBLCB2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gdmFsdWUgaXMgVSxcbiAgdGhpc0FyZzogQVxuKTogW09ic2VydmFibGU8VT4sIE9ic2VydmFibGU8RXhjbHVkZTxULCBVPj5dO1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnRpdGlvbjxULCBVIGV4dGVuZHMgVD4oXG4gIHNvdXJjZTogT2JzZXJ2YWJsZUlucHV0PFQ+LFxuICBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gdmFsdWUgaXMgVVxuKTogW09ic2VydmFibGU8VT4sIE9ic2VydmFibGU8RXhjbHVkZTxULCBVPj5dO1xuXG4vKiogQGRlcHJlY2F0ZWQgVXNlIGEgY2xvc3VyZSBpbnN0ZWFkIG9mIGEgYHRoaXNBcmdgLiBTaWduYXR1cmVzIGFjY2VwdGluZyBhIGB0aGlzQXJnYCB3aWxsIGJlIHJlbW92ZWQgaW4gdjguICovXG5leHBvcnQgZnVuY3Rpb24gcGFydGl0aW9uPFQsIEE+KFxuICBzb3VyY2U6IE9ic2VydmFibGVJbnB1dDxUPixcbiAgcHJlZGljYXRlOiAodGhpczogQSwgdmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW4sXG4gIHRoaXNBcmc6IEFcbik6IFtPYnNlcnZhYmxlPFQ+LCBPYnNlcnZhYmxlPFQ+XTtcbmV4cG9ydCBmdW5jdGlvbiBwYXJ0aXRpb248VD4oc291cmNlOiBPYnNlcnZhYmxlSW5wdXQ8VD4sIHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiBib29sZWFuKTogW09ic2VydmFibGU8VD4sIE9ic2VydmFibGU8VD5dO1xuXG4vKipcbiAqIFNwbGl0cyB0aGUgc291cmNlIE9ic2VydmFibGUgaW50byB0d28sIG9uZSB3aXRoIHZhbHVlcyB0aGF0IHNhdGlzZnkgYVxuICogcHJlZGljYXRlLCBhbmQgYW5vdGhlciB3aXRoIHZhbHVlcyB0aGF0IGRvbid0IHNhdGlzZnkgdGhlIHByZWRpY2F0ZS5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+SXQncyBsaWtlIHtAbGluayBmaWx0ZXJ9LCBidXQgcmV0dXJucyB0d28gT2JzZXJ2YWJsZXM6XG4gKiBvbmUgbGlrZSB0aGUgb3V0cHV0IG9mIHtAbGluayBmaWx0ZXJ9LCBhbmQgdGhlIG90aGVyIHdpdGggdmFsdWVzIHRoYXQgZGlkIG5vdFxuICogcGFzcyB0aGUgY29uZGl0aW9uLjwvc3Bhbj5cbiAqXG4gKiAhW10ocGFydGl0aW9uLnBuZylcbiAqXG4gKiBgcGFydGl0aW9uYCBvdXRwdXRzIGFuIGFycmF5IHdpdGggdHdvIE9ic2VydmFibGVzIHRoYXQgcGFydGl0aW9uIHRoZSB2YWx1ZXNcbiAqIGZyb20gdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHRocm91Z2ggdGhlIGdpdmVuIGBwcmVkaWNhdGVgIGZ1bmN0aW9uLiBUaGUgZmlyc3RcbiAqIE9ic2VydmFibGUgaW4gdGhhdCBhcnJheSBlbWl0cyBzb3VyY2UgdmFsdWVzIGZvciB3aGljaCB0aGUgcHJlZGljYXRlIGFyZ3VtZW50XG4gKiByZXR1cm5zIHRydWUuIFRoZSBzZWNvbmQgT2JzZXJ2YWJsZSBlbWl0cyBzb3VyY2UgdmFsdWVzIGZvciB3aGljaCB0aGVcbiAqIHByZWRpY2F0ZSByZXR1cm5zIGZhbHNlLiBUaGUgZmlyc3QgYmVoYXZlcyBsaWtlIHtAbGluayBmaWx0ZXJ9IGFuZCB0aGUgc2Vjb25kXG4gKiBiZWhhdmVzIGxpa2Uge0BsaW5rIGZpbHRlcn0gd2l0aCB0aGUgcHJlZGljYXRlIG5lZ2F0ZWQuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIFBhcnRpdGlvbiBhIHNldCBvZiBudW1iZXJzIGludG8gb2RkcyBhbmQgZXZlbnMgb2JzZXJ2YWJsZXNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIHBhcnRpdGlvbiB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IG9ic2VydmFibGVWYWx1ZXMgPSBvZigxLCAyLCAzLCA0LCA1LCA2KTtcbiAqIGNvbnN0IFtldmVucyQsIG9kZHMkXSA9IHBhcnRpdGlvbihvYnNlcnZhYmxlVmFsdWVzLCB2YWx1ZSA9PiB2YWx1ZSAlIDIgPT09IDApO1xuICpcbiAqIG9kZHMkLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKCdvZGRzJywgeCkpO1xuICogZXZlbnMkLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKCdldmVucycsIHgpKTtcbiAqXG4gKiAvLyBMb2dzOlxuICogLy8gb2RkcyAxXG4gKiAvLyBvZGRzIDNcbiAqIC8vIG9kZHMgNVxuICogLy8gZXZlbnMgMlxuICogLy8gZXZlbnMgNFxuICogLy8gZXZlbnMgNlxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgZmlsdGVyfVxuICpcbiAqIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBgT2JzZXJ2YWJsZUlucHV0YCB0aGF0IHdpbGwgYmUgc3BsaXQgaW50byBhIHR1cGxlIG9mXG4gKiB0d28gT2JzZXJ2YWJsZSBlbGVtZW50cy5cbiAqIEBwYXJhbSBwcmVkaWNhdGUgQSBmdW5jdGlvbiB0aGF0IGV2YWx1YXRlcyBlYWNoIHZhbHVlIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZVxuICogT2JzZXJ2YWJsZS4gSWYgaXQgcmV0dXJucyBgdHJ1ZWAsIHRoZSB2YWx1ZSBpcyBlbWl0dGVkIG9uIHRoZSBmaXJzdCBPYnNlcnZhYmxlXG4gKiBpbiB0aGUgcmV0dXJuZWQgYXJyYXksIGlmIGBmYWxzZWAgdGhlIHZhbHVlIGlzIGVtaXR0ZWQgb24gdGhlIHNlY29uZCBPYnNlcnZhYmxlXG4gKiBpbiB0aGUgYXJyYXkuIFRoZSBgaW5kZXhgIHBhcmFtZXRlciBpcyB0aGUgbnVtYmVyIGBpYCBmb3IgdGhlIGktdGggc291cmNlXG4gKiBlbWlzc2lvbiB0aGF0IGhhcyBoYXBwZW5lZCBzaW5jZSB0aGUgc3Vic2NyaXB0aW9uLCBzdGFydGluZyBmcm9tIHRoZSBudW1iZXIgYDBgLlxuICogQHBhcmFtIHRoaXNBcmcgQW4gb3B0aW9uYWwgYXJndW1lbnQgdG8gZGV0ZXJtaW5lIHRoZSB2YWx1ZSBvZiBgdGhpc2AgaW4gdGhlXG4gKiBgcHJlZGljYXRlYCBmdW5jdGlvbi5cbiAqIEByZXR1cm4gQW4gYXJyYXkgd2l0aCB0d28gT2JzZXJ2YWJsZXM6IG9uZSB3aXRoIHZhbHVlcyB0aGF0IHBhc3NlZCB0aGVcbiAqIHByZWRpY2F0ZSwgYW5kIGFub3RoZXIgd2l0aCB2YWx1ZXMgdGhhdCBkaWQgbm90IHBhc3MgdGhlIHByZWRpY2F0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnRpdGlvbjxUPihcbiAgc291cmNlOiBPYnNlcnZhYmxlSW5wdXQ8VD4sXG4gIHByZWRpY2F0ZTogKHRoaXM6IGFueSwgdmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW4sXG4gIHRoaXNBcmc/OiBhbnlcbik6IFtPYnNlcnZhYmxlPFQ+LCBPYnNlcnZhYmxlPFQ+XSB7XG4gIHJldHVybiBbZmlsdGVyKHByZWRpY2F0ZSwgdGhpc0FyZykoaW5uZXJGcm9tKHNvdXJjZSkpLCBmaWx0ZXIobm90KHByZWRpY2F0ZSwgdGhpc0FyZykpKGlubmVyRnJvbShzb3VyY2UpKV0gYXMgW1xuICAgIE9ic2VydmFibGU8VD4sXG4gICAgT2JzZXJ2YWJsZTxUPlxuICBdO1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4vaW5uZXJGcm9tJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQsIE9ic2VydmFibGVJbnB1dFR1cGxlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgYXJnc09yQXJnQXJyYXkgfSBmcm9tICcuLi91dGlsL2FyZ3NPckFyZ0FycmF5JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4uL29wZXJhdG9ycy9PcGVyYXRvclN1YnNjcmliZXInO1xuaW1wb3J0IHsgU3Vic2NyaWJlciB9IGZyb20gJy4uL1N1YnNjcmliZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gcmFjZTxUIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPihpbnB1dHM6IFsuLi5PYnNlcnZhYmxlSW5wdXRUdXBsZTxUPl0pOiBPYnNlcnZhYmxlPFRbbnVtYmVyXT47XG5leHBvcnQgZnVuY3Rpb24gcmFjZTxUIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiguLi5pbnB1dHM6IFsuLi5PYnNlcnZhYmxlSW5wdXRUdXBsZTxUPl0pOiBPYnNlcnZhYmxlPFRbbnVtYmVyXT47XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgbWlycm9ycyB0aGUgZmlyc3Qgc291cmNlIG9ic2VydmFibGUgdG8gZW1pdCBhbiBpdGVtLlxuICpcbiAqICFbXShyYWNlLnBuZylcbiAqXG4gKiBgcmFjZWAgcmV0dXJucyBhbiBvYnNlcnZhYmxlLCB0aGF0IHdoZW4gc3Vic2NyaWJlZCB0bywgc3Vic2NyaWJlcyB0byBhbGwgc291cmNlIG9ic2VydmFibGVzIGltbWVkaWF0ZWx5LlxuICogQXMgc29vbiBhcyBvbmUgb2YgdGhlIHNvdXJjZSBvYnNlcnZhYmxlcyBlbWl0cyBhIHZhbHVlLCB0aGUgcmVzdWx0IHVuc3Vic2NyaWJlcyBmcm9tIHRoZSBvdGhlciBzb3VyY2VzLlxuICogVGhlIHJlc3VsdGluZyBvYnNlcnZhYmxlIHdpbGwgZm9yd2FyZCBhbGwgbm90aWZpY2F0aW9ucywgaW5jbHVkaW5nIGVycm9yIGFuZCBjb21wbGV0aW9uLCBmcm9tIHRoZSBcIndpbm5pbmdcIlxuICogc291cmNlIG9ic2VydmFibGUuXG4gKlxuICogSWYgb25lIG9mIHRoZSB1c2VkIHNvdXJjZSBvYnNlcnZhYmxlIHRocm93cyBhbiBlcnJvcnMgYmVmb3JlIGEgZmlyc3Qgbm90aWZpY2F0aW9uXG4gKiB0aGUgcmFjZSBvcGVyYXRvciB3aWxsIGFsc28gdGhyb3cgYW4gZXJyb3IsIG5vIG1hdHRlciBpZiBhbm90aGVyIHNvdXJjZSBvYnNlcnZhYmxlXG4gKiBjb3VsZCBwb3RlbnRpYWxseSB3aW4gdGhlIHJhY2UuXG4gKlxuICogYHJhY2VgIGNhbiBiZSB1c2VmdWwgZm9yIHNlbGVjdGluZyB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgZmFzdGVzdCBuZXR3b3JrIGNvbm5lY3Rpb24gZm9yXG4gKiBIVFRQIG9yIFdlYlNvY2tldHMuIGByYWNlYCBjYW4gYWxzbyBiZSB1c2VmdWwgZm9yIHN3aXRjaGluZyBvYnNlcnZhYmxlIGNvbnRleHQgYmFzZWQgb24gdXNlclxuICogaW5wdXQuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIFN1YnNjcmliZXMgdG8gdGhlIG9ic2VydmFibGUgdGhhdCB3YXMgdGhlIGZpcnN0IHRvIHN0YXJ0IGVtaXR0aW5nLlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBpbnRlcnZhbCwgbWFwLCByYWNlIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgb2JzMSA9IGludGVydmFsKDcwMDApLnBpcGUobWFwKCgpID0+ICdzbG93IG9uZScpKTtcbiAqIGNvbnN0IG9iczIgPSBpbnRlcnZhbCgzMDAwKS5waXBlKG1hcCgoKSA9PiAnZmFzdCBvbmUnKSk7XG4gKiBjb25zdCBvYnMzID0gaW50ZXJ2YWwoNTAwMCkucGlwZShtYXAoKCkgPT4gJ21lZGl1bSBvbmUnKSk7XG4gKlxuICogcmFjZShvYnMxLCBvYnMyLCBvYnMzKVxuICogICAuc3Vic2NyaWJlKHdpbm5lciA9PiBjb25zb2xlLmxvZyh3aW5uZXIpKTtcbiAqXG4gKiAvLyBPdXRwdXRzXG4gKiAvLyBhIHNlcmllcyBvZiAnZmFzdCBvbmUnXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gc291cmNlcyBVc2VkIHRvIHJhY2UgZm9yIHdoaWNoIGBPYnNlcnZhYmxlSW5wdXRgIGVtaXRzIGZpcnN0LlxuICogQHJldHVybiBBbiBPYnNlcnZhYmxlIHRoYXQgbWlycm9ycyB0aGUgb3V0cHV0IG9mIHRoZSBmaXJzdCBPYnNlcnZhYmxlIHRvIGVtaXQgYW4gaXRlbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhY2U8VD4oLi4uc291cmNlczogKE9ic2VydmFibGVJbnB1dDxUPiB8IE9ic2VydmFibGVJbnB1dDxUPltdKVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgc291cmNlcyA9IGFyZ3NPckFyZ0FycmF5KHNvdXJjZXMpO1xuICAvLyBJZiBvbmx5IG9uZSBzb3VyY2Ugd2FzIHBhc3NlZCwganVzdCByZXR1cm4gaXQuIE90aGVyd2lzZSByZXR1cm4gdGhlIHJhY2UuXG4gIHJldHVybiBzb3VyY2VzLmxlbmd0aCA9PT0gMSA/IGlubmVyRnJvbShzb3VyY2VzWzBdIGFzIE9ic2VydmFibGVJbnB1dDxUPikgOiBuZXcgT2JzZXJ2YWJsZTxUPihyYWNlSW5pdChzb3VyY2VzIGFzIE9ic2VydmFibGVJbnB1dDxUPltdKSk7XG59XG5cbi8qKlxuICogQW4gb2JzZXJ2YWJsZSBpbml0aWFsaXplciBmdW5jdGlvbiBmb3IgYm90aCB0aGUgc3RhdGljIHZlcnNpb24gYW5kIHRoZVxuICogb3BlcmF0b3IgdmVyc2lvbiBvZiByYWNlLlxuICogQHBhcmFtIHNvdXJjZXMgVGhlIHNvdXJjZXMgdG8gcmFjZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmFjZUluaXQ8VD4oc291cmNlczogT2JzZXJ2YWJsZUlucHV0PFQ+W10pIHtcbiAgcmV0dXJuIChzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFQ+KSA9PiB7XG4gICAgbGV0IHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gYWxsIG9mIHRoZSBzb3VyY2VzLiBOb3RlIHRoYXQgd2UgYXJlIGNoZWNraW5nIGBzdWJzY3JpcHRpb25zYCBoZXJlXG4gICAgLy8gSXMgaXMgYW4gYXJyYXkgb2YgYWxsIGFjdGl2ZWx5IFwicmFjaW5nXCIgc3Vic2NyaXB0aW9ucywgYW5kIGl0IGlzIGBudWxsYCBhZnRlciB0aGVcbiAgICAvLyByYWNlIGhhcyBiZWVuIHdvbi4gU28sIGlmIHdlIGhhdmUgcmFjZXIgdGhhdCBzeW5jaHJvbm91c2x5IFwid2luc1wiLCB0aGlzIGxvb3Agd2lsbFxuICAgIC8vIHN0b3AgYmVmb3JlIGl0IHN1YnNjcmliZXMgdG8gYW55IG1vcmUuXG4gICAgZm9yIChsZXQgaSA9IDA7IHN1YnNjcmlwdGlvbnMgJiYgIXN1YnNjcmliZXIuY2xvc2VkICYmIGkgPCBzb3VyY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBzdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIGlubmVyRnJvbShzb3VyY2VzW2ldIGFzIE9ic2VydmFibGVJbnB1dDxUPikuc3Vic2NyaWJlKFxuICAgICAgICAgIGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCAodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgIC8vIFdlJ3JlIHN0aWxsIHJhY2luZywgYnV0IHdlIHdvbiEgU28gdW5zdWJzY3JpYmVcbiAgICAgICAgICAgICAgLy8gYWxsIG90aGVyIHN1YnNjcmlwdGlvbnMgdGhhdCB3ZSBoYXZlLCBleGNlcHQgdGhpcyBvbmUuXG4gICAgICAgICAgICAgIGZvciAobGV0IHMgPSAwOyBzIDwgc3Vic2NyaXB0aW9ucy5sZW5ndGg7IHMrKykge1xuICAgICAgICAgICAgICAgIHMgIT09IGkgJiYgc3Vic2NyaXB0aW9uc1tzXS51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMgPSBudWxsITtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iLCAiaW1wb3J0IHsgU2NoZWR1bGVyTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IEVNUFRZIH0gZnJvbSAnLi9lbXB0eSc7XG5cbmV4cG9ydCBmdW5jdGlvbiByYW5nZShzdGFydDogbnVtYmVyLCBjb3VudD86IG51bWJlcik6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBUaGUgYHNjaGVkdWxlcmAgcGFyYW1ldGVyIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVXNlIGByYW5nZShzdGFydCwgY291bnQpLnBpcGUob2JzZXJ2ZU9uKHNjaGVkdWxlcikpYCBpbnN0ZWFkLiBEZXRhaWxzOiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9zY2hlZHVsZXItYXJndW1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhbmdlKHN0YXJ0OiBudW1iZXIsIGNvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSk6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBhIHNlcXVlbmNlIG9mIG51bWJlcnMgd2l0aGluIGEgc3BlY2lmaWVkXG4gKiByYW5nZS5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+RW1pdHMgYSBzZXF1ZW5jZSBvZiBudW1iZXJzIGluIGEgcmFuZ2UuPC9zcGFuPlxuICpcbiAqICFbXShyYW5nZS5wbmcpXG4gKlxuICogYHJhbmdlYCBvcGVyYXRvciBlbWl0cyBhIHJhbmdlIG9mIHNlcXVlbnRpYWwgaW50ZWdlcnMsIGluIG9yZGVyLCB3aGVyZSB5b3VcbiAqIHNlbGVjdCB0aGUgYHN0YXJ0YCBvZiB0aGUgcmFuZ2UgYW5kIGl0cyBgbGVuZ3RoYC4gQnkgZGVmYXVsdCwgdXNlcyBub1xuICoge0BsaW5rIFNjaGVkdWxlckxpa2V9IGFuZCBqdXN0IGRlbGl2ZXJzIHRoZSBub3RpZmljYXRpb25zIHN5bmNocm9ub3VzbHksIGJ1dCBtYXkgdXNlXG4gKiBhbiBvcHRpb25hbCB7QGxpbmsgU2NoZWR1bGVyTGlrZX0gdG8gcmVndWxhdGUgdGhvc2UgZGVsaXZlcmllcy5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogUHJvZHVjZSBhIHJhbmdlIG9mIG51bWJlcnNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgcmFuZ2UgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBudW1iZXJzID0gcmFuZ2UoMSwgMyk7XG4gKlxuICogbnVtYmVycy5zdWJzY3JpYmUoe1xuICogICBuZXh0OiB2YWx1ZSA9PiBjb25zb2xlLmxvZyh2YWx1ZSksXG4gKiAgIGNvbXBsZXRlOiAoKSA9PiBjb25zb2xlLmxvZygnQ29tcGxldGUhJylcbiAqIH0pO1xuICpcbiAqIC8vIExvZ3M6XG4gKiAvLyAxXG4gKiAvLyAyXG4gKiAvLyAzXG4gKiAvLyAnQ29tcGxldGUhJ1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgdGltZXJ9XG4gKiBAc2VlIHtAbGluayBpbnRlcnZhbH1cbiAqXG4gKiBAcGFyYW0gc3RhcnQgVGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBpbnRlZ2VyIGluIHRoZSBzZXF1ZW5jZS5cbiAqIEBwYXJhbSBjb3VudCBUaGUgbnVtYmVyIG9mIHNlcXVlbnRpYWwgaW50ZWdlcnMgdG8gZ2VuZXJhdGUuXG4gKiBAcGFyYW0gc2NoZWR1bGVyIEEge0BsaW5rIFNjaGVkdWxlckxpa2V9IHRvIHVzZSBmb3Igc2NoZWR1bGluZyB0aGUgZW1pc3Npb25zXG4gKiBvZiB0aGUgbm90aWZpY2F0aW9ucy5cbiAqIEByZXR1cm4gQW4gT2JzZXJ2YWJsZSBvZiBudW1iZXJzIHRoYXQgZW1pdHMgYSBmaW5pdGUgcmFuZ2Ugb2Ygc2VxdWVudGlhbCBpbnRlZ2Vycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhbmdlKHN0YXJ0OiBudW1iZXIsIGNvdW50PzogbnVtYmVyLCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgaWYgKGNvdW50ID09IG51bGwpIHtcbiAgICAvLyBJZiBvbmUgYXJndW1lbnQgd2FzIHBhc3NlZCwgaXQncyB0aGUgY291bnQsIG5vdCB0aGUgc3RhcnQuXG4gICAgY291bnQgPSBzdGFydDtcbiAgICBzdGFydCA9IDA7XG4gIH1cblxuICBpZiAoY291bnQgPD0gMCkge1xuICAgIC8vIE5vIGNvdW50PyBXZSdyZSBnb2luZyBub3doZXJlLiBSZXR1cm4gRU1QVFkuXG4gICAgcmV0dXJuIEVNUFRZO1xuICB9XG5cbiAgLy8gV2hlcmUgdGhlIHJhbmdlIHNob3VsZCBzdG9wLlxuICBjb25zdCBlbmQgPSBjb3VudCArIHN0YXJ0O1xuXG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZShcbiAgICBzY2hlZHVsZXJcbiAgICAgID8gLy8gVGhlIGRlcHJlY2F0ZWQgc2NoZWR1bGVkIHBhdGguXG4gICAgICAgIChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAgICAgbGV0IG4gPSBzdGFydDtcbiAgICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChuIDwgZW5kKSB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChuKyspO1xuICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIDogLy8gU3RhbmRhcmQgc3luY2hyb25vdXMgcmFuZ2UuXG4gICAgICAgIChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAgICAgbGV0IG4gPSBzdGFydDtcbiAgICAgICAgICB3aGlsZSAobiA8IGVuZCAmJiAhc3Vic2NyaWJlci5jbG9zZWQpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChuKyspO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgKTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBVbnN1YnNjcmliYWJsZSwgT2JzZXJ2YWJsZUlucHV0LCBPYnNlcnZlZFZhbHVlT2YgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpbm5lckZyb20gfSBmcm9tICcuL2lubmVyRnJvbSc7XG5pbXBvcnQgeyBFTVBUWSB9IGZyb20gJy4vZW1wdHknO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gT2JzZXJ2YWJsZSB0aGF0IHVzZXMgYSByZXNvdXJjZSB3aGljaCB3aWxsIGJlIGRpc3Bvc2VkIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIE9ic2VydmFibGUuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPlVzZSBpdCB3aGVuIHlvdSBjYXRjaCB5b3Vyc2VsZiBjbGVhbmluZyB1cCBhZnRlciBhbiBPYnNlcnZhYmxlLjwvc3Bhbj5cbiAqXG4gKiBgdXNpbmdgIGlzIGEgZmFjdG9yeSBvcGVyYXRvciwgd2hpY2ggYWNjZXB0cyB0d28gZnVuY3Rpb25zLiBGaXJzdCBmdW5jdGlvbiByZXR1cm5zIGEgZGlzcG9zYWJsZSByZXNvdXJjZS5cbiAqIEl0IGNhbiBiZSBhbiBhcmJpdHJhcnkgb2JqZWN0IHRoYXQgaW1wbGVtZW50cyBgdW5zdWJzY3JpYmVgIG1ldGhvZC4gU2Vjb25kIGZ1bmN0aW9uIHdpbGwgYmUgaW5qZWN0ZWQgd2l0aFxuICogdGhhdCBvYmplY3QgYW5kIHNob3VsZCByZXR1cm4gYW4gT2JzZXJ2YWJsZS4gVGhhdCBPYnNlcnZhYmxlIGNhbiB1c2UgcmVzb3VyY2Ugb2JqZWN0IGR1cmluZyBpdHMgZXhlY3V0aW9uLlxuICogQm90aCBmdW5jdGlvbnMgcGFzc2VkIHRvIGB1c2luZ2Agd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSBzb21lb25lIHN1YnNjcmliZXMgLSBuZWl0aGVyIGFuIE9ic2VydmFibGUgbm9yXG4gKiByZXNvdXJjZSBvYmplY3Qgd2lsbCBiZSBzaGFyZWQgaW4gYW55IHdheSBiZXR3ZWVuIHN1YnNjcmlwdGlvbnMuXG4gKlxuICogV2hlbiBPYnNlcnZhYmxlIHJldHVybmVkIGJ5IGB1c2luZ2AgaXMgc3Vic2NyaWJlZCwgT2JzZXJ2YWJsZSByZXR1cm5lZCBmcm9tIHRoZSBzZWNvbmQgZnVuY3Rpb24gd2lsbCBiZSBzdWJzY3JpYmVkXG4gKiBhcyB3ZWxsLiBBbGwgaXRzIG5vdGlmaWNhdGlvbnMgKG5leHRlZCB2YWx1ZXMsIGNvbXBsZXRpb24gYW5kIGVycm9yIGV2ZW50cykgd2lsbCBiZSBlbWl0dGVkIHVuY2hhbmdlZCBieSB0aGUgb3V0cHV0XG4gKiBPYnNlcnZhYmxlLiBJZiBob3dldmVyIHNvbWVvbmUgdW5zdWJzY3JpYmVzIGZyb20gdGhlIE9ic2VydmFibGUgb3Igc291cmNlIE9ic2VydmFibGUgY29tcGxldGVzIG9yIGVycm9ycyBieSBpdHNlbGYsXG4gKiB0aGUgYHVuc3Vic2NyaWJlYCBtZXRob2Qgb24gcmVzb3VyY2Ugb2JqZWN0IHdpbGwgYmUgY2FsbGVkLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGRvIGFueSBuZWNlc3NhcnkgY2xlYW4gdXAsIHdoaWNoXG4gKiBvdGhlcndpc2Ugd291bGQgaGF2ZSB0byBiZSBoYW5kbGVkIGJ5IGhhbmQuIE5vdGUgdGhhdCBjb21wbGV0ZSBvciBlcnJvciBub3RpZmljYXRpb25zIGFyZSBub3QgZW1pdHRlZCB3aGVuIHNvbWVvbmVcbiAqIGNhbmNlbHMgc3Vic2NyaXB0aW9uIHRvIGFuIE9ic2VydmFibGUgdmlhIGB1bnN1YnNjcmliZWAsIHNvIGB1c2luZ2AgY2FuIGJlIHVzZWQgYXMgYSBob29rLCBhbGxvd2luZyB5b3UgdG8gbWFrZVxuICogc3VyZSB0aGF0IGFsbCByZXNvdXJjZXMgd2hpY2ggbmVlZCB0byBleGlzdCBkdXJpbmcgYW4gT2JzZXJ2YWJsZSBleGVjdXRpb24gd2lsbCBiZSBkaXNwb3NlZCBhdCBhcHByb3ByaWF0ZSB0aW1lLlxuICpcbiAqIEBzZWUge0BsaW5rIGRlZmVyfVxuICpcbiAqIEBwYXJhbSByZXNvdXJjZUZhY3RvcnkgQSBmdW5jdGlvbiB3aGljaCBjcmVhdGVzIGFueSByZXNvdXJjZSBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIGB1bnN1YnNjcmliZWAgbWV0aG9kLlxuICogQHBhcmFtIG9ic2VydmFibGVGYWN0b3J5IEEgZnVuY3Rpb24gd2hpY2ggY3JlYXRlcyBhbiBPYnNlcnZhYmxlLCB0aGF0IGNhbiB1c2UgaW5qZWN0ZWQgcmVzb3VyY2Ugb2JqZWN0LlxuICogQHJldHVybiBBbiBPYnNlcnZhYmxlIHRoYXQgYmVoYXZlcyB0aGUgc2FtZSBhcyBPYnNlcnZhYmxlIHJldHVybmVkIGJ5IGBvYnNlcnZhYmxlRmFjdG9yeWAsIGJ1dFxuICogd2hpY2ggLSB3aGVuIGNvbXBsZXRlZCwgZXJyb3JlZCBvciB1bnN1YnNjcmliZWQgLSB3aWxsIGFsc28gY2FsbCBgdW5zdWJzY3JpYmVgIG9uIGNyZWF0ZWQgcmVzb3VyY2Ugb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNpbmc8VCBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihcbiAgcmVzb3VyY2VGYWN0b3J5OiAoKSA9PiBVbnN1YnNjcmliYWJsZSB8IHZvaWQsXG4gIG9ic2VydmFibGVGYWN0b3J5OiAocmVzb3VyY2U6IFVuc3Vic2NyaWJhYmxlIHwgdm9pZCkgPT4gVCB8IHZvaWRcbik6IE9ic2VydmFibGU8T2JzZXJ2ZWRWYWx1ZU9mPFQ+PiB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxPYnNlcnZlZFZhbHVlT2Y8VD4+KChzdWJzY3JpYmVyKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2UgPSByZXNvdXJjZUZhY3RvcnkoKTtcbiAgICBjb25zdCByZXN1bHQgPSBvYnNlcnZhYmxlRmFjdG9yeShyZXNvdXJjZSk7XG4gICAgY29uc3Qgc291cmNlID0gcmVzdWx0ID8gaW5uZXJGcm9tKHJlc3VsdCkgOiBFTVBUWTtcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAvLyBOT1RFOiBPcHRpb25hbCBjaGFpbmluZyBkaWQgbm90IHdvcmsgaGVyZS5cbiAgICAgIC8vIFJlbGF0ZWQgVFMgSXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvNDA4MThcbiAgICAgIGlmIChyZXNvdXJjZSkge1xuICAgICAgICByZXNvdXJjZS51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH07XG4gIH0pO1xufVxuIiwgImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXR5cGVzLmpzLm1hcCIsICJpbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAnLi4vU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL3R5cGVzJztcblxuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBpbm5lckZyb20gfSBmcm9tICcuLi9vYnNlcnZhYmxlL2lubmVyRnJvbSc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5cbi8qKlxuICogSWdub3JlcyBzb3VyY2UgdmFsdWVzIGZvciBhIGR1cmF0aW9uIGRldGVybWluZWQgYnkgYW5vdGhlciBPYnNlcnZhYmxlLCB0aGVuXG4gKiBlbWl0cyB0aGUgbW9zdCByZWNlbnQgdmFsdWUgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUsIHRoZW4gcmVwZWF0cyB0aGlzXG4gKiBwcm9jZXNzLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5JdCdzIGxpa2Uge0BsaW5rIGF1ZGl0VGltZX0sIGJ1dCB0aGUgc2lsZW5jaW5nXG4gKiBkdXJhdGlvbiBpcyBkZXRlcm1pbmVkIGJ5IGEgc2Vjb25kIE9ic2VydmFibGUuPC9zcGFuPlxuICpcbiAqICFbXShhdWRpdC5zdmcpXG4gKlxuICogYGF1ZGl0YCBpcyBzaW1pbGFyIHRvIGB0aHJvdHRsZWAsIGJ1dCBlbWl0cyB0aGUgbGFzdCB2YWx1ZSBmcm9tIHRoZSBzaWxlbmNlZFxuICogdGltZSB3aW5kb3csIGluc3RlYWQgb2YgdGhlIGZpcnN0IHZhbHVlLiBgYXVkaXRgIGVtaXRzIHRoZSBtb3N0IHJlY2VudCB2YWx1ZVxuICogZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUgb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlIGFzIHNvb24gYXMgaXRzIGludGVybmFsXG4gKiB0aW1lciBiZWNvbWVzIGRpc2FibGVkLCBhbmQgaWdub3JlcyBzb3VyY2UgdmFsdWVzIHdoaWxlIHRoZSB0aW1lciBpcyBlbmFibGVkLlxuICogSW5pdGlhbGx5LCB0aGUgdGltZXIgaXMgZGlzYWJsZWQuIEFzIHNvb24gYXMgdGhlIGZpcnN0IHNvdXJjZSB2YWx1ZSBhcnJpdmVzLFxuICogdGhlIHRpbWVyIGlzIGVuYWJsZWQgYnkgY2FsbGluZyB0aGUgYGR1cmF0aW9uU2VsZWN0b3JgIGZ1bmN0aW9uIHdpdGggdGhlXG4gKiBzb3VyY2UgdmFsdWUsIHdoaWNoIHJldHVybnMgdGhlIFwiZHVyYXRpb25cIiBPYnNlcnZhYmxlLiBXaGVuIHRoZSBkdXJhdGlvblxuICogT2JzZXJ2YWJsZSBlbWl0cyBhIHZhbHVlLCB0aGUgdGltZXIgaXMgZGlzYWJsZWQsIHRoZW4gdGhlIG1vc3RcbiAqIHJlY2VudCBzb3VyY2UgdmFsdWUgaXMgZW1pdHRlZCBvbiB0aGUgb3V0cHV0IE9ic2VydmFibGUsIGFuZCB0aGlzIHByb2Nlc3NcbiAqIHJlcGVhdHMgZm9yIHRoZSBuZXh0IHNvdXJjZSB2YWx1ZS5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogRW1pdCBjbGlja3MgYXQgYSByYXRlIG9mIGF0IG1vc3Qgb25lIGNsaWNrIHBlciBzZWNvbmRcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBhdWRpdCwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgcmVzdWx0ID0gY2xpY2tzLnBpcGUoYXVkaXQoZXYgPT4gaW50ZXJ2YWwoMTAwMCkpKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBhdWRpdFRpbWV9XG4gKiBAc2VlIHtAbGluayBkZWJvdW5jZX1cbiAqIEBzZWUge0BsaW5rIGRlbGF5V2hlbn1cbiAqIEBzZWUge0BsaW5rIHNhbXBsZX1cbiAqIEBzZWUge0BsaW5rIHRocm90dGxlfVxuICpcbiAqIEBwYXJhbSBkdXJhdGlvblNlbGVjdG9yIEEgZnVuY3Rpb25cbiAqIHRoYXQgcmVjZWl2ZXMgYSB2YWx1ZSBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSwgZm9yIGNvbXB1dGluZyB0aGUgc2lsZW5jaW5nXG4gKiBkdXJhdGlvbiwgcmV0dXJuZWQgYXMgYW4gT2JzZXJ2YWJsZSBvciBhIFByb21pc2UuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBwZXJmb3JtcyByYXRlLWxpbWl0aW5nIG9mXG4gKiBlbWlzc2lvbnMgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdWRpdDxUPihkdXJhdGlvblNlbGVjdG9yOiAodmFsdWU6IFQpID0+IE9ic2VydmFibGVJbnB1dDxhbnk+KTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIGxldCBoYXNWYWx1ZSA9IGZhbHNlO1xuICAgIGxldCBsYXN0VmFsdWU6IFQgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgZHVyYXRpb25TdWJzY3JpYmVyOiBTdWJzY3JpYmVyPGFueT4gfCBudWxsID0gbnVsbDtcbiAgICBsZXQgaXNDb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgZW5kRHVyYXRpb24gPSAoKSA9PiB7XG4gICAgICBkdXJhdGlvblN1YnNjcmliZXI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICBkdXJhdGlvblN1YnNjcmliZXIgPSBudWxsO1xuICAgICAgaWYgKGhhc1ZhbHVlKSB7XG4gICAgICAgIGhhc1ZhbHVlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbGFzdFZhbHVlITtcbiAgICAgICAgbGFzdFZhbHVlID0gbnVsbDtcbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGlzQ29tcGxldGUgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgIH07XG5cbiAgICBjb25zdCBjbGVhbnVwRHVyYXRpb24gPSAoKSA9PiB7XG4gICAgICBkdXJhdGlvblN1YnNjcmliZXIgPSBudWxsO1xuICAgICAgaXNDb21wbGV0ZSAmJiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgfTtcblxuICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICBsYXN0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICBpZiAoIWR1cmF0aW9uU3Vic2NyaWJlcikge1xuICAgICAgICAgICAgaW5uZXJGcm9tKGR1cmF0aW9uU2VsZWN0b3IodmFsdWUpKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIChkdXJhdGlvblN1YnNjcmliZXIgPSBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZW5kRHVyYXRpb24sIGNsZWFudXBEdXJhdGlvbikpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGlzQ29tcGxldGUgPSB0cnVlO1xuICAgICAgICAgICghaGFzVmFsdWUgfHwgIWR1cmF0aW9uU3Vic2NyaWJlciB8fCBkdXJhdGlvblN1YnNjcmliZXIuY2xvc2VkKSAmJiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBhc3luY1NjaGVkdWxlciB9IGZyb20gJy4uL3NjaGVkdWxlci9hc3luYyc7XG5pbXBvcnQgeyBhdWRpdCB9IGZyb20gJy4vYXVkaXQnO1xuaW1wb3J0IHsgdGltZXIgfSBmcm9tICcuLi9vYnNlcnZhYmxlL3RpbWVyJztcbmltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgU2NoZWR1bGVyTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBJZ25vcmVzIHNvdXJjZSB2YWx1ZXMgZm9yIGBkdXJhdGlvbmAgbWlsbGlzZWNvbmRzLCB0aGVuIGVtaXRzIHRoZSBtb3N0IHJlY2VudFxuICogdmFsdWUgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUsIHRoZW4gcmVwZWF0cyB0aGlzIHByb2Nlc3MuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPldoZW4gaXQgc2VlcyBhIHNvdXJjZSB2YWx1ZSwgaXQgaWdub3JlcyB0aGF0IHBsdXNcbiAqIHRoZSBuZXh0IG9uZXMgZm9yIGBkdXJhdGlvbmAgbWlsbGlzZWNvbmRzLCBhbmQgdGhlbiBpdCBlbWl0cyB0aGUgbW9zdCByZWNlbnRcbiAqIHZhbHVlIGZyb20gdGhlIHNvdXJjZS48L3NwYW4+XG4gKlxuICogIVtdKGF1ZGl0VGltZS5wbmcpXG4gKlxuICogYGF1ZGl0VGltZWAgaXMgc2ltaWxhciB0byBgdGhyb3R0bGVUaW1lYCwgYnV0IGVtaXRzIHRoZSBsYXN0IHZhbHVlIGZyb20gdGhlXG4gKiBzaWxlbmNlZCB0aW1lIHdpbmRvdywgaW5zdGVhZCBvZiB0aGUgZmlyc3QgdmFsdWUuIGBhdWRpdFRpbWVgIGVtaXRzIHRoZSBtb3N0XG4gKiByZWNlbnQgdmFsdWUgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUgb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlIGFzIHNvb24gYXNcbiAqIGl0cyBpbnRlcm5hbCB0aW1lciBiZWNvbWVzIGRpc2FibGVkLCBhbmQgaWdub3JlcyBzb3VyY2UgdmFsdWVzIHdoaWxlIHRoZVxuICogdGltZXIgaXMgZW5hYmxlZC4gSW5pdGlhbGx5LCB0aGUgdGltZXIgaXMgZGlzYWJsZWQuIEFzIHNvb24gYXMgdGhlIGZpcnN0XG4gKiBzb3VyY2UgdmFsdWUgYXJyaXZlcywgdGhlIHRpbWVyIGlzIGVuYWJsZWQuIEFmdGVyIGBkdXJhdGlvbmAgbWlsbGlzZWNvbmRzIChvclxuICogdGhlIHRpbWUgdW5pdCBkZXRlcm1pbmVkIGludGVybmFsbHkgYnkgdGhlIG9wdGlvbmFsIGBzY2hlZHVsZXJgKSBoYXMgcGFzc2VkLFxuICogdGhlIHRpbWVyIGlzIGRpc2FibGVkLCB0aGVuIHRoZSBtb3N0IHJlY2VudCBzb3VyY2UgdmFsdWUgaXMgZW1pdHRlZCBvbiB0aGVcbiAqIG91dHB1dCBPYnNlcnZhYmxlLCBhbmQgdGhpcyBwcm9jZXNzIHJlcGVhdHMgZm9yIHRoZSBuZXh0IHNvdXJjZSB2YWx1ZS5cbiAqIE9wdGlvbmFsbHkgdGFrZXMgYSB7QGxpbmsgU2NoZWR1bGVyTGlrZX0gZm9yIG1hbmFnaW5nIHRpbWVycy5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogRW1pdCBjbGlja3MgYXQgYSByYXRlIG9mIGF0IG1vc3Qgb25lIGNsaWNrIHBlciBzZWNvbmRcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBhdWRpdFRpbWUgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgcmVzdWx0ID0gY2xpY2tzLnBpcGUoYXVkaXRUaW1lKDEwMDApKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBhdWRpdH1cbiAqIEBzZWUge0BsaW5rIGRlYm91bmNlVGltZX1cbiAqIEBzZWUge0BsaW5rIGRlbGF5fVxuICogQHNlZSB7QGxpbmsgc2FtcGxlVGltZX1cbiAqIEBzZWUge0BsaW5rIHRocm90dGxlVGltZX1cbiAqXG4gKiBAcGFyYW0gZHVyYXRpb24gVGltZSB0byB3YWl0IGJlZm9yZSBlbWl0dGluZyB0aGUgbW9zdCByZWNlbnQgc291cmNlIHZhbHVlLFxuICogbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzIG9yIHRoZSB0aW1lIHVuaXQgZGV0ZXJtaW5lZCBpbnRlcm5hbGx5IGJ5IHRoZVxuICogb3B0aW9uYWwgYHNjaGVkdWxlcmAuXG4gKiBAcGFyYW0gc2NoZWR1bGVyIFRoZSB7QGxpbmsgU2NoZWR1bGVyTGlrZX0gdG8gdXNlIGZvciBtYW5hZ2luZyB0aGUgdGltZXJzXG4gKiB0aGF0IGhhbmRsZSB0aGUgcmF0ZS1saW1pdGluZyBiZWhhdmlvci5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IHBlcmZvcm1zIHJhdGUtbGltaXRpbmcgb2ZcbiAqIGVtaXNzaW9ucyBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF1ZGl0VGltZTxUPihkdXJhdGlvbjogbnVtYmVyLCBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UgPSBhc3luY1NjaGVkdWxlcik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBhdWRpdCgoKSA9PiB0aW1lcihkdXJhdGlvbiwgc2NoZWR1bGVyKSk7XG59XG4iLCAiaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vdXRpbC9ub29wJztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4uL29ic2VydmFibGUvaW5uZXJGcm9tJztcblxuLyoqXG4gKiBCdWZmZXJzIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB2YWx1ZXMgdW50aWwgYGNsb3NpbmdOb3RpZmllcmAgZW1pdHMuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkNvbGxlY3RzIHZhbHVlcyBmcm9tIHRoZSBwYXN0IGFzIGFuIGFycmF5LCBhbmQgZW1pdHNcbiAqIHRoYXQgYXJyYXkgb25seSB3aGVuIGFub3RoZXIgT2JzZXJ2YWJsZSBlbWl0cy48L3NwYW4+XG4gKlxuICogIVtdKGJ1ZmZlci5wbmcpXG4gKlxuICogQnVmZmVycyB0aGUgaW5jb21pbmcgT2JzZXJ2YWJsZSB2YWx1ZXMgdW50aWwgdGhlIGdpdmVuIGBjbG9zaW5nTm90aWZpZXJgXG4gKiBgT2JzZXJ2YWJsZUlucHV0YCAodGhhdCBpbnRlcm5hbGx5IGdldHMgY29udmVydGVkIHRvIGFuIE9ic2VydmFibGUpXG4gKiBlbWl0cyBhIHZhbHVlLCBhdCB3aGljaCBwb2ludCBpdCBlbWl0cyB0aGUgYnVmZmVyIG9uIHRoZSBvdXRwdXRcbiAqIE9ic2VydmFibGUgYW5kIHN0YXJ0cyBhIG5ldyBidWZmZXIgaW50ZXJuYWxseSwgYXdhaXRpbmcgdGhlIG5leHQgdGltZVxuICogYGNsb3NpbmdOb3RpZmllcmAgZW1pdHMuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIE9uIGV2ZXJ5IGNsaWNrLCBlbWl0IGFycmF5IG9mIG1vc3QgcmVjZW50IGludGVydmFsIGV2ZW50c1xuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIGludGVydmFsLCBidWZmZXIgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgaW50ZXJ2YWxFdmVudHMgPSBpbnRlcnZhbCgxMDAwKTtcbiAqIGNvbnN0IGJ1ZmZlcmVkID0gaW50ZXJ2YWxFdmVudHMucGlwZShidWZmZXIoY2xpY2tzKSk7XG4gKiBidWZmZXJlZC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBidWZmZXJDb3VudH1cbiAqIEBzZWUge0BsaW5rIGJ1ZmZlclRpbWV9XG4gKiBAc2VlIHtAbGluayBidWZmZXJUb2dnbGV9XG4gKiBAc2VlIHtAbGluayBidWZmZXJXaGVufVxuICogQHNlZSB7QGxpbmsgd2luZG93fVxuICpcbiAqIEBwYXJhbSBjbG9zaW5nTm90aWZpZXIgQW4gYE9ic2VydmFibGVJbnB1dGAgdGhhdCBzaWduYWxzIHRoZVxuICogYnVmZmVyIHRvIGJlIGVtaXR0ZWQgb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIG9mIGJ1ZmZlcnMsIHdoaWNoIGFyZSBhcnJheXNcbiAqIG9mIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlcjxUPihjbG9zaW5nTm90aWZpZXI6IE9ic2VydmFibGVJbnB1dDxhbnk+KTogT3BlcmF0b3JGdW5jdGlvbjxULCBUW10+IHtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIC8vIFRoZSBjdXJyZW50IGJ1ZmZlcmVkIHZhbHVlcy5cbiAgICBsZXQgY3VycmVudEJ1ZmZlcjogVFtdID0gW107XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gb3VyIHNvdXJjZS5cbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAodmFsdWUpID0+IGN1cnJlbnRCdWZmZXIucHVzaCh2YWx1ZSksXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoY3VycmVudEJ1ZmZlcik7XG4gICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIFN1YnNjcmliZSB0byB0aGUgY2xvc2luZyBub3RpZmllci5cbiAgICBpbm5lckZyb20oY2xvc2luZ05vdGlmaWVyKS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAvLyBTdGFydCBhIG5ldyBidWZmZXIgYW5kIGVtaXQgdGhlIHByZXZpb3VzIG9uZS5cbiAgICAgICAgICBjb25zdCBiID0gY3VycmVudEJ1ZmZlcjtcbiAgICAgICAgICBjdXJyZW50QnVmZmVyID0gW107XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGIpO1xuICAgICAgICB9LFxuICAgICAgICBub29wXG4gICAgICApXG4gICAgKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAvLyBFbnN1cmUgYnVmZmVyZWQgdmFsdWVzIGFyZSByZWxlYXNlZCBvbiBmaW5hbGl6YXRpb24uXG4gICAgICBjdXJyZW50QnVmZmVyID0gbnVsbCE7XG4gICAgfTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuaW1wb3J0IHsgYXJyUmVtb3ZlIH0gZnJvbSAnLi4vdXRpbC9hcnJSZW1vdmUnO1xuXG4vKipcbiAqIEJ1ZmZlcnMgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHZhbHVlcyB1bnRpbCB0aGUgc2l6ZSBoaXRzIHRoZSBtYXhpbXVtXG4gKiBgYnVmZmVyU2l6ZWAgZ2l2ZW4uXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkNvbGxlY3RzIHZhbHVlcyBmcm9tIHRoZSBwYXN0IGFzIGFuIGFycmF5LCBhbmQgZW1pdHNcbiAqIHRoYXQgYXJyYXkgb25seSB3aGVuIGl0cyBzaXplIHJlYWNoZXMgYGJ1ZmZlclNpemVgLjwvc3Bhbj5cbiAqXG4gKiAhW10oYnVmZmVyQ291bnQucG5nKVxuICpcbiAqIEJ1ZmZlcnMgYSBudW1iZXIgb2YgdmFsdWVzIGZyb20gdGhlIHNvdXJjZSBPYnNlcnZhYmxlIGJ5IGBidWZmZXJTaXplYCB0aGVuXG4gKiBlbWl0cyB0aGUgYnVmZmVyIGFuZCBjbGVhcnMgaXQsIGFuZCBzdGFydHMgYSBuZXcgYnVmZmVyIGVhY2hcbiAqIGBzdGFydEJ1ZmZlckV2ZXJ5YCB2YWx1ZXMuIElmIGBzdGFydEJ1ZmZlckV2ZXJ5YCBpcyBub3QgcHJvdmlkZWQgb3IgaXNcbiAqIGBudWxsYCwgdGhlbiBuZXcgYnVmZmVycyBhcmUgc3RhcnRlZCBpbW1lZGlhdGVseSBhdCB0aGUgc3RhcnQgb2YgdGhlIHNvdXJjZVxuICogYW5kIHdoZW4gZWFjaCBidWZmZXIgY2xvc2VzIGFuZCBpcyBlbWl0dGVkLlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogRW1pdCB0aGUgbGFzdCB0d28gY2xpY2sgZXZlbnRzIGFzIGFuIGFycmF5XG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgYnVmZmVyQ291bnQgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgYnVmZmVyZWQgPSBjbGlja3MucGlwZShidWZmZXJDb3VudCgyKSk7XG4gKiBidWZmZXJlZC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBPbiBldmVyeSBjbGljaywgZW1pdCB0aGUgbGFzdCB0d28gY2xpY2sgZXZlbnRzIGFzIGFuIGFycmF5XG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgYnVmZmVyQ291bnQgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgYnVmZmVyZWQgPSBjbGlja3MucGlwZShidWZmZXJDb3VudCgyLCAxKSk7XG4gKiBidWZmZXJlZC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBidWZmZXJ9XG4gKiBAc2VlIHtAbGluayBidWZmZXJUaW1lfVxuICogQHNlZSB7QGxpbmsgYnVmZmVyVG9nZ2xlfVxuICogQHNlZSB7QGxpbmsgYnVmZmVyV2hlbn1cbiAqIEBzZWUge0BsaW5rIHBhaXJ3aXNlfVxuICogQHNlZSB7QGxpbmsgd2luZG93Q291bnR9XG4gKlxuICogQHBhcmFtIGJ1ZmZlclNpemUgVGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgYnVmZmVyIGVtaXR0ZWQuXG4gKiBAcGFyYW0gc3RhcnRCdWZmZXJFdmVyeSBJbnRlcnZhbCBhdCB3aGljaCB0byBzdGFydCBhIG5ldyBidWZmZXIuXG4gKiBGb3IgZXhhbXBsZSBpZiBgc3RhcnRCdWZmZXJFdmVyeWAgaXMgYDJgLCB0aGVuIGEgbmV3IGJ1ZmZlciB3aWxsIGJlIHN0YXJ0ZWRcbiAqIG9uIGV2ZXJ5IG90aGVyIHZhbHVlIGZyb20gdGhlIHNvdXJjZS4gQSBuZXcgYnVmZmVyIGlzIHN0YXJ0ZWQgYXQgdGhlXG4gKiBiZWdpbm5pbmcgb2YgdGhlIHNvdXJjZSBieSBkZWZhdWx0LlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIG9mIGFycmF5cyBvZiBidWZmZXJlZCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWZmZXJDb3VudDxUPihidWZmZXJTaXplOiBudW1iZXIsIHN0YXJ0QnVmZmVyRXZlcnk6IG51bWJlciB8IG51bGwgPSBudWxsKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUW10+IHtcbiAgLy8gSWYgbm8gYHN0YXJ0QnVmZmVyRXZlcnlgIHZhbHVlIHdhcyBzdXBwbGllZCwgdGhlbiB3ZSdyZVxuICAvLyBvcGVuaW5nIGFuZCBjbG9zaW5nIG9uIHRoZSBidWZmZXJTaXplIGl0c2VsZi5cbiAgc3RhcnRCdWZmZXJFdmVyeSA9IHN0YXJ0QnVmZmVyRXZlcnkgPz8gYnVmZmVyU2l6ZTtcblxuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgbGV0IGJ1ZmZlcnM6IFRbXVtdID0gW107XG4gICAgbGV0IGNvdW50ID0gMDtcblxuICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGxldCB0b0VtaXQ6IFRbXVtdIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgd2UgbmVlZCB0byBzdGFydCBhIGJ1ZmZlci5cbiAgICAgICAgICAvLyBUaGlzIHdpbGwgc3RhcnQgb25lIGF0IHRoZSBmaXJzdCB2YWx1ZSwgYW5kIHRoZW5cbiAgICAgICAgICAvLyBhIG5ldyBvbmUgZXZlcnkgTiBhZnRlciB0aGF0LlxuICAgICAgICAgIGlmIChjb3VudCsrICUgc3RhcnRCdWZmZXJFdmVyeSEgPT09IDApIHtcbiAgICAgICAgICAgIGJ1ZmZlcnMucHVzaChbXSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUHVzaCBvdXIgdmFsdWUgaW50byBvdXIgYWN0aXZlIGJ1ZmZlcnMuXG4gICAgICAgICAgZm9yIChjb25zdCBidWZmZXIgb2YgYnVmZmVycykge1xuICAgICAgICAgICAgYnVmZmVyLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHdlJ3JlIG92ZXIgdGhlIGJ1ZmZlclNpemVcbiAgICAgICAgICAgIC8vIGlmIHdlIGFyZSwgcmVjb3JkIGl0IHNvIHdlIGNhbiBlbWl0IGl0IGxhdGVyLlxuICAgICAgICAgICAgLy8gSWYgd2UgZW1pdHRlZCBpdCBub3cgYW5kIHJlbW92ZWQgaXQsIGl0IHdvdWxkXG4gICAgICAgICAgICAvLyBtdXRhdGUgdGhlIGBidWZmZXJzYCBhcnJheSB3aGlsZSB3ZSdyZSBsb29waW5nXG4gICAgICAgICAgICAvLyBvdmVyIGl0LlxuICAgICAgICAgICAgaWYgKGJ1ZmZlclNpemUgPD0gYnVmZmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0b0VtaXQgPSB0b0VtaXQgPz8gW107XG4gICAgICAgICAgICAgIHRvRW1pdC5wdXNoKGJ1ZmZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRvRW1pdCkge1xuICAgICAgICAgICAgLy8gV2UgaGF2ZSBmb3VuZCBzb21lIGJ1ZmZlcnMgdGhhdCBhcmUgb3ZlciB0aGVcbiAgICAgICAgICAgIC8vIGBidWZmZXJTaXplYC4gRW1pdCB0aGVtLCBhbmQgcmVtb3ZlIHRoZW0gZnJvbSBvdXJcbiAgICAgICAgICAgIC8vIGJ1ZmZlcnMgbGlzdC5cbiAgICAgICAgICAgIGZvciAoY29uc3QgYnVmZmVyIG9mIHRvRW1pdCkge1xuICAgICAgICAgICAgICBhcnJSZW1vdmUoYnVmZmVycywgYnVmZmVyKTtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgLy8gV2hlbiB0aGUgc291cmNlIGNvbXBsZXRlcywgZW1pdCBhbGwgb2Ygb3VyXG4gICAgICAgICAgLy8gYWN0aXZlIGJ1ZmZlcnMuXG4gICAgICAgICAgZm9yIChjb25zdCBidWZmZXIgb2YgYnVmZmVycykge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gUGFzcyBhbGwgZXJyb3JzIHRocm91Z2ggdG8gY29uc3VtZXIuXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIC8vIENsZWFuIHVwIG91ciBtZW1vcnkgd2hlbiB3ZSBmaW5hbGl6ZVxuICAgICAgICAgIGJ1ZmZlcnMgPSBudWxsITtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBhcnJSZW1vdmUgfSBmcm9tICcuLi91dGlsL2FyclJlbW92ZSc7XG5pbXBvcnQgeyBhc3luY1NjaGVkdWxlciB9IGZyb20gJy4uL3NjaGVkdWxlci9hc3luYyc7XG5pbXBvcnQgeyBwb3BTY2hlZHVsZXIgfSBmcm9tICcuLi91dGlsL2FyZ3MnO1xuaW1wb3J0IHsgZXhlY3V0ZVNjaGVkdWxlIH0gZnJvbSAnLi4vdXRpbC9leGVjdXRlU2NoZWR1bGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVmZmVyVGltZTxUPihidWZmZXJUaW1lU3BhbjogbnVtYmVyLCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUW10+O1xuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlclRpbWU8VD4oXG4gIGJ1ZmZlclRpbWVTcGFuOiBudW1iZXIsXG4gIGJ1ZmZlckNyZWF0aW9uSW50ZXJ2YWw6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2Vcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgVFtdPjtcbmV4cG9ydCBmdW5jdGlvbiBidWZmZXJUaW1lPFQ+KFxuICBidWZmZXJUaW1lU3BhbjogbnVtYmVyLFxuICBidWZmZXJDcmVhdGlvbkludGVydmFsOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBtYXhCdWZmZXJTaXplOiBudW1iZXIsXG4gIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2Vcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgVFtdPjtcblxuLyoqXG4gKiBCdWZmZXJzIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB2YWx1ZXMgZm9yIGEgc3BlY2lmaWMgdGltZSBwZXJpb2QuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkNvbGxlY3RzIHZhbHVlcyBmcm9tIHRoZSBwYXN0IGFzIGFuIGFycmF5LCBhbmQgZW1pdHNcbiAqIHRob3NlIGFycmF5cyBwZXJpb2RpY2FsbHkgaW4gdGltZS48L3NwYW4+XG4gKlxuICogIVtdKGJ1ZmZlclRpbWUucG5nKVxuICpcbiAqIEJ1ZmZlcnMgdmFsdWVzIGZyb20gdGhlIHNvdXJjZSBmb3IgYSBzcGVjaWZpYyB0aW1lIGR1cmF0aW9uIGBidWZmZXJUaW1lU3BhbmAuXG4gKiBVbmxlc3MgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IGBidWZmZXJDcmVhdGlvbkludGVydmFsYCBpcyBnaXZlbiwgaXQgZW1pdHMgYW5kXG4gKiByZXNldHMgdGhlIGJ1ZmZlciBldmVyeSBgYnVmZmVyVGltZVNwYW5gIG1pbGxpc2Vjb25kcy4gSWZcbiAqIGBidWZmZXJDcmVhdGlvbkludGVydmFsYCBpcyBnaXZlbiwgdGhpcyBvcGVyYXRvciBvcGVucyB0aGUgYnVmZmVyIGV2ZXJ5XG4gKiBgYnVmZmVyQ3JlYXRpb25JbnRlcnZhbGAgbWlsbGlzZWNvbmRzIGFuZCBjbG9zZXMgKGVtaXRzIGFuZCByZXNldHMpIHRoZVxuICogYnVmZmVyIGV2ZXJ5IGBidWZmZXJUaW1lU3BhbmAgbWlsbGlzZWNvbmRzLiBXaGVuIHRoZSBvcHRpb25hbCBhcmd1bWVudFxuICogYG1heEJ1ZmZlclNpemVgIGlzIHNwZWNpZmllZCwgdGhlIGJ1ZmZlciB3aWxsIGJlIGNsb3NlZCBlaXRoZXIgYWZ0ZXJcbiAqIGBidWZmZXJUaW1lU3BhbmAgbWlsbGlzZWNvbmRzIG9yIHdoZW4gaXQgY29udGFpbnMgYG1heEJ1ZmZlclNpemVgIGVsZW1lbnRzLlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogRXZlcnkgc2Vjb25kLCBlbWl0IGFuIGFycmF5IG9mIHRoZSByZWNlbnQgY2xpY2sgZXZlbnRzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgYnVmZmVyVGltZSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCBidWZmZXJlZCA9IGNsaWNrcy5waXBlKGJ1ZmZlclRpbWUoMTAwMCkpO1xuICogYnVmZmVyZWQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogRXZlcnkgNSBzZWNvbmRzLCBlbWl0IHRoZSBjbGljayBldmVudHMgZnJvbSB0aGUgbmV4dCAyIHNlY29uZHNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBidWZmZXJUaW1lIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IGJ1ZmZlcmVkID0gY2xpY2tzLnBpcGUoYnVmZmVyVGltZSgyMDAwLCA1MDAwKSk7XG4gKiBidWZmZXJlZC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBidWZmZXJ9XG4gKiBAc2VlIHtAbGluayBidWZmZXJDb3VudH1cbiAqIEBzZWUge0BsaW5rIGJ1ZmZlclRvZ2dsZX1cbiAqIEBzZWUge0BsaW5rIGJ1ZmZlcldoZW59XG4gKiBAc2VlIHtAbGluayB3aW5kb3dUaW1lfVxuICpcbiAqIEBwYXJhbSBidWZmZXJUaW1lU3BhbiBUaGUgYW1vdW50IG9mIHRpbWUgdG8gZmlsbCBlYWNoIGJ1ZmZlciBhcnJheS5cbiAqIEBwYXJhbSBvdGhlckFyZ3MgT3RoZXIgY29uZmlndXJhdGlvbiBhcmd1bWVudHMgc3VjaCBhczpcbiAqIC0gYGJ1ZmZlckNyZWF0aW9uSW50ZXJ2YWxgIC0gdGhlIGludGVydmFsIGF0IHdoaWNoIHRvIHN0YXJ0IG5ldyBidWZmZXJzO1xuICogLSBgbWF4QnVmZmVyU2l6ZWAgLSB0aGUgbWF4aW11bSBidWZmZXIgc2l6ZTtcbiAqIC0gYHNjaGVkdWxlcmAgLSB0aGUgc2NoZWR1bGVyIG9uIHdoaWNoIHRvIHNjaGVkdWxlIHRoZSBpbnRlcnZhbHMgdGhhdCBkZXRlcm1pbmUgYnVmZmVyIGJvdW5kYXJpZXMuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgb2YgYXJyYXlzIG9mIGJ1ZmZlcmVkIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlclRpbWU8VD4oYnVmZmVyVGltZVNwYW46IG51bWJlciwgLi4ub3RoZXJBcmdzOiBhbnlbXSk6IE9wZXJhdG9yRnVuY3Rpb248VCwgVFtdPiB7XG4gIGNvbnN0IHNjaGVkdWxlciA9IHBvcFNjaGVkdWxlcihvdGhlckFyZ3MpID8/IGFzeW5jU2NoZWR1bGVyO1xuICBjb25zdCBidWZmZXJDcmVhdGlvbkludGVydmFsID0gKG90aGVyQXJnc1swXSBhcyBudW1iZXIpID8/IG51bGw7XG4gIGNvbnN0IG1heEJ1ZmZlclNpemUgPSAob3RoZXJBcmdzWzFdIGFzIG51bWJlcikgfHwgSW5maW5pdHk7XG5cbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIC8vIFRoZSBhY3RpdmUgYnVmZmVycywgdGhlaXIgcmVsYXRlZCBzdWJzY3JpcHRpb25zLCBhbmQgcmVtb3ZhbCBmdW5jdGlvbnMuXG4gICAgbGV0IGJ1ZmZlclJlY29yZHM6IHsgYnVmZmVyOiBUW107IHN1YnM6IFN1YnNjcmlwdGlvbiB9W10gfCBudWxsID0gW107XG4gICAgLy8gSWYgdHJ1ZSwgaXQgbWVhbnMgdGhhdCBldmVyeSB0aW1lIHdlIGVtaXQgYSBidWZmZXIsIHdlIHdhbnQgdG8gc3RhcnQgYSBuZXcgYnVmZmVyXG4gICAgLy8gdGhpcyBpcyBvbmx5IHJlYWxseSB1c2VkIGZvciB3aGVuICpqdXN0KiB0aGUgYnVmZmVyIHRpbWUgc3BhbiBpcyBwYXNzZWQuXG4gICAgbGV0IHJlc3RhcnRPbkVtaXQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIERvZXMgdGhlIHdvcmsgb2YgZW1pdHRpbmcgdGhlIGJ1ZmZlciBmcm9tIHRoZSByZWNvcmQsIGVuc3VyaW5nIHRoYXQgdGhlXG4gICAgICogcmVjb3JkIGlzIHJlbW92ZWQgYmVmb3JlIHRoZSBlbWlzc2lvbiBzbyByZWVudHJhbnQgY29kZSAoZnJvbSBzb21lIGN1c3RvbSBzY2hlZHVsaW5nLCBwZXJoYXBzKVxuICAgICAqIGRvZXMgbm90IGFsdGVyIHRoZSBidWZmZXIuIEFsc28gY2hlY2tzIHRvIHNlZSBpZiBhIG5ldyBidWZmZXIgbmVlZHMgdG8gYmUgc3RhcnRlZFxuICAgICAqIGFmdGVyIHRoZSBlbWl0LlxuICAgICAqL1xuICAgIGNvbnN0IGVtaXQgPSAocmVjb3JkOiB7IGJ1ZmZlcjogVFtdOyBzdWJzOiBTdWJzY3JpcHRpb24gfSkgPT4ge1xuICAgICAgY29uc3QgeyBidWZmZXIsIHN1YnMgfSA9IHJlY29yZDtcbiAgICAgIHN1YnMudW5zdWJzY3JpYmUoKTtcbiAgICAgIGFyclJlbW92ZShidWZmZXJSZWNvcmRzLCByZWNvcmQpO1xuICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7XG4gICAgICByZXN0YXJ0T25FbWl0ICYmIHN0YXJ0QnVmZmVyKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENhbGxlZCBldmVyeSB0aW1lIHdlIHN0YXJ0IGEgbmV3IGJ1ZmZlci4gVGhpcyBkb2VzXG4gICAgICogdGhlIHdvcmsgb2Ygc2NoZWR1bGluZyBhIGpvYiBhdCB0aGUgcmVxdWVzdGVkIGJ1ZmZlclRpbWVTcGFuXG4gICAgICogdGhhdCB3aWxsIGVtaXQgdGhlIGJ1ZmZlciAoaWYgaXQncyBub3QgdW5zdWJzY3JpYmVkIGJlZm9yZSB0aGVuKS5cbiAgICAgKi9cbiAgICBjb25zdCBzdGFydEJ1ZmZlciA9ICgpID0+IHtcbiAgICAgIGlmIChidWZmZXJSZWNvcmRzKSB7XG4gICAgICAgIGNvbnN0IHN1YnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIHN1YnNjcmliZXIuYWRkKHN1YnMpO1xuICAgICAgICBjb25zdCBidWZmZXI6IFRbXSA9IFtdO1xuICAgICAgICBjb25zdCByZWNvcmQgPSB7XG4gICAgICAgICAgYnVmZmVyLFxuICAgICAgICAgIHN1YnMsXG4gICAgICAgIH07XG4gICAgICAgIGJ1ZmZlclJlY29yZHMucHVzaChyZWNvcmQpO1xuICAgICAgICBleGVjdXRlU2NoZWR1bGUoc3Vicywgc2NoZWR1bGVyLCAoKSA9PiBlbWl0KHJlY29yZCksIGJ1ZmZlclRpbWVTcGFuKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKGJ1ZmZlckNyZWF0aW9uSW50ZXJ2YWwgIT09IG51bGwgJiYgYnVmZmVyQ3JlYXRpb25JbnRlcnZhbCA+PSAwKSB7XG4gICAgICAvLyBUaGUgdXNlciBwYXNzZWQgYm90aCBhIGJ1ZmZlclRpbWVTcGFuIChyZXF1aXJlZCksIGFuZCBhIGNyZWF0aW9uIGludGVydmFsXG4gICAgICAvLyBUaGF0IG1lYW5zIHdlIG5lZWQgdG8gc3RhcnQgbmV3IGJ1ZmZlcnMgb24gdGhlIGludGVydmFsLCBhbmQgdGhvc2UgYnVmZmVycyBuZWVkXG4gICAgICAvLyB0byB3YWl0IHRoZSByZXF1aXJlZCB0aW1lIHNwYW4gYmVmb3JlIGVtaXR0aW5nLlxuICAgICAgZXhlY3V0ZVNjaGVkdWxlKHN1YnNjcmliZXIsIHNjaGVkdWxlciwgc3RhcnRCdWZmZXIsIGJ1ZmZlckNyZWF0aW9uSW50ZXJ2YWwsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN0YXJ0T25FbWl0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBzdGFydEJ1ZmZlcigpO1xuXG4gICAgY29uc3QgYnVmZmVyVGltZVN1YnNjcmliZXIgPSBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICBzdWJzY3JpYmVyLFxuICAgICAgKHZhbHVlOiBUKSA9PiB7XG4gICAgICAgIC8vIENvcHkgdGhlIHJlY29yZHMsIHNvIGlmIHdlIG5lZWQgdG8gcmVtb3ZlIG9uZSB3ZVxuICAgICAgICAvLyBkb24ndCBtdXRhdGUgdGhlIGFycmF5LiBJdCdzIGhhcmQsIGJ1dCBub3QgaW1wb3NzaWJsZSB0b1xuICAgICAgICAvLyBzZXQgdXAgYSBidWZmZXIgdGltZSB0aGF0IGNvdWxkIG11dGF0ZSB0aGUgYXJyYXkgYW5kXG4gICAgICAgIC8vIGNhdXNlIGlzc3VlcyBoZXJlLlxuICAgICAgICBjb25zdCByZWNvcmRzQ29weSA9IGJ1ZmZlclJlY29yZHMhLnNsaWNlKCk7XG4gICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHNDb3B5KSB7XG4gICAgICAgICAgLy8gTG9vcCBvdmVyIGFsbCBidWZmZXJzIGFuZFxuICAgICAgICAgIGNvbnN0IHsgYnVmZmVyIH0gPSByZWNvcmQ7XG4gICAgICAgICAgYnVmZmVyLnB1c2godmFsdWUpO1xuICAgICAgICAgIC8vIElmIHRoZSBidWZmZXIgaXMgb3ZlciB0aGUgbWF4IHNpemUsIHdlIG5lZWQgdG8gZW1pdCBpdC5cbiAgICAgICAgICBtYXhCdWZmZXJTaXplIDw9IGJ1ZmZlci5sZW5ndGggJiYgZW1pdChyZWNvcmQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICAvLyBUaGUgc291cmNlIGNvbXBsZXRlZCwgZW1pdCBhbGwgb2YgdGhlIGFjdGl2ZVxuICAgICAgICAvLyBidWZmZXJzIHdlIGhhdmUgYmVmb3JlIHdlIGNvbXBsZXRlLlxuICAgICAgICB3aGlsZSAoYnVmZmVyUmVjb3Jkcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlclJlY29yZHMuc2hpZnQoKSEuYnVmZmVyKTtcbiAgICAgICAgfVxuICAgICAgICBidWZmZXJUaW1lU3Vic2NyaWJlcj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9LFxuICAgICAgLy8gUGFzcyBhbGwgZXJyb3JzIHRocm91Z2ggdG8gY29uc3VtZXIuXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAvLyBDbGVhbiB1cFxuICAgICAgKCkgPT4gKGJ1ZmZlclJlY29yZHMgPSBudWxsKVxuICAgICk7XG5cbiAgICBzb3VyY2Uuc3Vic2NyaWJlKGJ1ZmZlclRpbWVTdWJzY3JpYmVyKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgU3Vic2NyaWJlciB9IGZyb20gJy4uL1N1YnNjcmliZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0LCBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vdXRpbC9ub29wJztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4uL29ic2VydmFibGUvaW5uZXJGcm9tJztcblxuLyoqXG4gKiBCdWZmZXJzIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB2YWx1ZXMsIHVzaW5nIGEgZmFjdG9yeSBmdW5jdGlvbiBvZiBjbG9zaW5nXG4gKiBPYnNlcnZhYmxlcyB0byBkZXRlcm1pbmUgd2hlbiB0byBjbG9zZSwgZW1pdCwgYW5kIHJlc2V0IHRoZSBidWZmZXIuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkNvbGxlY3RzIHZhbHVlcyBmcm9tIHRoZSBwYXN0IGFzIGFuIGFycmF5LiBXaGVuIGl0XG4gKiBzdGFydHMgY29sbGVjdGluZyB2YWx1ZXMsIGl0IGNhbGxzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdFxuICogdGVsbHMgd2hlbiB0byBjbG9zZSB0aGUgYnVmZmVyIGFuZCByZXN0YXJ0IGNvbGxlY3RpbmcuPC9zcGFuPlxuICpcbiAqICFbXShidWZmZXJXaGVuLnN2ZylcbiAqXG4gKiBPcGVucyBhIGJ1ZmZlciBpbW1lZGlhdGVseSwgdGhlbiBjbG9zZXMgdGhlIGJ1ZmZlciB3aGVuIHRoZSBvYnNlcnZhYmxlXG4gKiByZXR1cm5lZCBieSBjYWxsaW5nIGBjbG9zaW5nU2VsZWN0b3JgIGZ1bmN0aW9uIGVtaXRzIGEgdmFsdWUuIFdoZW4gaXQgY2xvc2VzXG4gKiB0aGUgYnVmZmVyLCBpdCBpbW1lZGlhdGVseSBvcGVucyBhIG5ldyBidWZmZXIgYW5kIHJlcGVhdHMgdGhlIHByb2Nlc3MuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIEVtaXQgYW4gYXJyYXkgb2YgdGhlIGxhc3QgY2xpY2tzIGV2ZXJ5IFsxLTVdIHJhbmRvbSBzZWNvbmRzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgYnVmZmVyV2hlbiwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgYnVmZmVyZWQgPSBjbGlja3MucGlwZShcbiAqICAgYnVmZmVyV2hlbigoKSA9PiBpbnRlcnZhbCgxMDAwICsgTWF0aC5yYW5kb20oKSAqIDQwMDApKVxuICogKTtcbiAqIGJ1ZmZlcmVkLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGJ1ZmZlcn1cbiAqIEBzZWUge0BsaW5rIGJ1ZmZlckNvdW50fVxuICogQHNlZSB7QGxpbmsgYnVmZmVyVGltZX1cbiAqIEBzZWUge0BsaW5rIGJ1ZmZlclRvZ2dsZX1cbiAqIEBzZWUge0BsaW5rIHdpbmRvd1doZW59XG4gKlxuICogQHBhcmFtIGNsb3NpbmdTZWxlY3RvciBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgbm8gYXJndW1lbnRzIGFuZCByZXR1cm5zIGFuXG4gKiBPYnNlcnZhYmxlIHRoYXQgc2lnbmFscyBidWZmZXIgY2xvc3VyZS5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSBvZiBhcnJheXMgb2YgYnVmZmVyZWQgdmFsdWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVmZmVyV2hlbjxUPihjbG9zaW5nU2VsZWN0b3I6ICgpID0+IE9ic2VydmFibGVJbnB1dDxhbnk+KTogT3BlcmF0b3JGdW5jdGlvbjxULCBUW10+IHtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIC8vIFRoZSBidWZmZXIgd2Uga2VlcCBhbmQgZW1pdC5cbiAgICBsZXQgYnVmZmVyOiBUW10gfCBudWxsID0gbnVsbDtcbiAgICAvLyBBIHJlZmVyZW5jZSB0byB0aGUgc3Vic2NyaWJlciB1c2VkIHRvIHN1YnNjcmliZSB0b1xuICAgIC8vIHRoZSBjbG9zaW5nIG5vdGlmaWVyLiBXZSBuZWVkIHRvIGhvbGQgdGhpcyBzbyB3ZSBjYW5cbiAgICAvLyBlbmQgdGhlIHN1YnNjcmlwdGlvbiBhZnRlciB0aGUgZmlyc3Qgbm90aWZpY2F0aW9uLlxuICAgIGxldCBjbG9zaW5nU3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPiB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gRW5kcyB0aGUgcHJldmlvdXMgY2xvc2luZyBub3RpZmllciBzdWJzY3JpcHRpb24sIHNvIGl0XG4gICAgLy8gdGVybWluYXRlcyBhZnRlciB0aGUgZmlyc3QgZW1pc3Npb24sIHRoZW4gZW1pdHNcbiAgICAvLyB0aGUgY3VycmVudCBidWZmZXIgIGlmIHRoZXJlIGlzIG9uZSwgc3RhcnRzIGEgbmV3IGJ1ZmZlciwgYW5kIHN0YXJ0cyBhXG4gICAgLy8gbmV3IGNsb3Npbmcgbm90aWZpZXIuXG4gICAgY29uc3Qgb3BlbkJ1ZmZlciA9ICgpID0+IHtcbiAgICAgIC8vIE1ha2Ugc3VyZSB0byBmaW5hbGl6ZSB0aGUgY2xvc2luZyBzdWJzY3JpcHRpb24sIHdlIG9ubHkgY2FyZWRcbiAgICAgIC8vIGFib3V0IG9uZSBub3RpZmljYXRpb24uXG4gICAgICBjbG9zaW5nU3Vic2NyaWJlcj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIC8vIGVtaXQgdGhlIGJ1ZmZlciBpZiB3ZSBoYXZlIG9uZSwgYW5kIHN0YXJ0IGEgbmV3IGJ1ZmZlci5cbiAgICAgIGNvbnN0IGIgPSBidWZmZXI7XG4gICAgICBidWZmZXIgPSBbXTtcbiAgICAgIGIgJiYgc3Vic2NyaWJlci5uZXh0KGIpO1xuXG4gICAgICAvLyBHZXQgYSBuZXcgY2xvc2luZyBub3RpZmllciBhbmQgc3Vic2NyaWJlIHRvIGl0LlxuICAgICAgaW5uZXJGcm9tKGNsb3NpbmdTZWxlY3RvcigpKS5zdWJzY3JpYmUoKGNsb3NpbmdTdWJzY3JpYmVyID0gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIG9wZW5CdWZmZXIsIG5vb3ApKSk7XG4gICAgfTtcblxuICAgIC8vIFN0YXJ0IHRoZSBmaXJzdCBidWZmZXIuXG4gICAgb3BlbkJ1ZmZlcigpO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIG91ciBzb3VyY2UuXG4gICAgc291cmNlLnN1YnNjcmliZShcbiAgICAgIGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihcbiAgICAgICAgc3Vic2NyaWJlcixcbiAgICAgICAgLy8gQWRkIGV2ZXJ5IG5ldyB2YWx1ZSB0byB0aGUgY3VycmVudCBidWZmZXIuXG4gICAgICAgICh2YWx1ZSkgPT4gYnVmZmVyPy5wdXNoKHZhbHVlKSxcbiAgICAgICAgLy8gV2hlbiB3ZSBjb21wbGV0ZSwgZW1pdCB0aGUgYnVmZmVyIGlmIHdlIGhhdmUgb25lLFxuICAgICAgICAvLyB0aGVuIGNvbXBsZXRlIHRoZSByZXN1bHQuXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBidWZmZXIgJiYgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7XG4gICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9LFxuICAgICAgICAvLyBQYXNzIGFsbCBlcnJvcnMgdGhyb3VnaCB0byBjb25zdW1lci5cbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAvLyBSZWxlYXNlIG1lbW9yeSBvbiBmaW5hbGl6YXRpb25cbiAgICAgICAgKCkgPT4gKGJ1ZmZlciA9IGNsb3NpbmdTdWJzY3JpYmVyID0gbnVsbCEpXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQsIE9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmVkVmFsdWVPZiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBpbm5lckZyb20gfSBmcm9tICcuLi9vYnNlcnZhYmxlL2lubmVyRnJvbSc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcblxuZXhwb3J0IGZ1bmN0aW9uIGNhdGNoRXJyb3I8VCwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihcbiAgc2VsZWN0b3I6IChlcnI6IGFueSwgY2F1Z2h0OiBPYnNlcnZhYmxlPFQ+KSA9PiBPXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFQgfCBPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuXG4vKipcbiAqIENhdGNoZXMgZXJyb3JzIG9uIHRoZSBvYnNlcnZhYmxlIHRvIGJlIGhhbmRsZWQgYnkgcmV0dXJuaW5nIGEgbmV3IG9ic2VydmFibGUgb3IgdGhyb3dpbmcgYW4gZXJyb3IuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPlxuICogSXQgb25seSBsaXN0ZW5zIHRvIHRoZSBlcnJvciBjaGFubmVsIGFuZCBpZ25vcmVzIG5vdGlmaWNhdGlvbnMuXG4gKiBIYW5kbGVzIGVycm9ycyBmcm9tIHRoZSBzb3VyY2Ugb2JzZXJ2YWJsZSwgYW5kIG1hcHMgdGhlbSB0byBhIG5ldyBvYnNlcnZhYmxlLlxuICogVGhlIGVycm9yIG1heSBhbHNvIGJlIHJldGhyb3duLCBvciBhIG5ldyBlcnJvciBjYW4gYmUgdGhyb3duIHRvIGVtaXQgYW4gZXJyb3IgZnJvbSB0aGUgcmVzdWx0LlxuICogPC9zcGFuPlxuICpcbiAqICFbXShjYXRjaC5wbmcpXG4gKlxuICogVGhpcyBvcGVyYXRvciBoYW5kbGVzIGVycm9ycywgYnV0IGZvcndhcmRzIGFsb25nIGFsbCBvdGhlciBldmVudHMgdG8gdGhlIHJlc3VsdGluZyBvYnNlcnZhYmxlLlxuICogSWYgdGhlIHNvdXJjZSBvYnNlcnZhYmxlIHRlcm1pbmF0ZXMgd2l0aCBhbiBlcnJvciwgaXQgd2lsbCBtYXAgdGhhdCBlcnJvciB0byBhIG5ldyBvYnNlcnZhYmxlLFxuICogc3Vic2NyaWJlIHRvIGl0LCBhbmQgZm9yd2FyZCBhbGwgb2YgaXRzIGV2ZW50cyB0byB0aGUgcmVzdWx0aW5nIG9ic2VydmFibGUuXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBDb250aW51ZSB3aXRoIGEgZGlmZmVyZW50IE9ic2VydmFibGUgd2hlbiB0aGVyZSdzIGFuIGVycm9yXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBvZigxLCAyLCAzLCA0LCA1KVxuICogICAucGlwZShcbiAqICAgICBtYXAobiA9PiB7XG4gKiAgICAgICBpZiAobiA9PT0gNCkge1xuICogICAgICAgICB0aHJvdyAnZm91ciEnO1xuICogICAgICAgfVxuICogICAgICAgcmV0dXJuIG47XG4gKiAgICAgfSksXG4gKiAgICAgY2F0Y2hFcnJvcihlcnIgPT4gb2YoJ0knLCAnSUknLCAnSUlJJywgJ0lWJywgJ1YnKSlcbiAqICAgKVxuICogICAuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogICAvLyAxLCAyLCAzLCBJLCBJSSwgSUlJLCBJViwgVlxuICogYGBgXG4gKlxuICogUmV0cnkgdGhlIGNhdWdodCBzb3VyY2UgT2JzZXJ2YWJsZSBhZ2FpbiBpbiBjYXNlIG9mIGVycm9yLCBzaW1pbGFyIHRvIGByZXRyeSgpYCBvcGVyYXRvclxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBvZiwgbWFwLCBjYXRjaEVycm9yLCB0YWtlIH0gZnJvbSAncnhqcyc7XG4gKlxuICogb2YoMSwgMiwgMywgNCwgNSlcbiAqICAgLnBpcGUoXG4gKiAgICAgbWFwKG4gPT4ge1xuICogICAgICAgaWYgKG4gPT09IDQpIHtcbiAqICAgICAgICAgdGhyb3cgJ2ZvdXIhJztcbiAqICAgICAgIH1cbiAqICAgICAgIHJldHVybiBuO1xuICogICAgIH0pLFxuICogICAgIGNhdGNoRXJyb3IoKGVyciwgY2F1Z2h0KSA9PiBjYXVnaHQpLFxuICogICAgIHRha2UoMzApXG4gKiAgIClcbiAqICAgLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqICAgLy8gMSwgMiwgMywgMSwgMiwgMywgLi4uXG4gKiBgYGBcbiAqXG4gKiBUaHJvdyBhIG5ldyBlcnJvciB3aGVuIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB0aHJvd3MgYW4gZXJyb3JcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMnO1xuICpcbiAqIG9mKDEsIDIsIDMsIDQsIDUpXG4gKiAgIC5waXBlKFxuICogICAgIG1hcChuID0+IHtcbiAqICAgICAgIGlmIChuID09PSA0KSB7XG4gKiAgICAgICAgIHRocm93ICdmb3VyISc7XG4gKiAgICAgICB9XG4gKiAgICAgICByZXR1cm4gbjtcbiAqICAgICB9KSxcbiAqICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gKiAgICAgICB0aHJvdyAnZXJyb3IgaW4gc291cmNlLiBEZXRhaWxzOiAnICsgZXJyO1xuICogICAgIH0pXG4gKiAgIClcbiAqICAgLnN1YnNjcmliZSh7XG4gKiAgICAgbmV4dDogeCA9PiBjb25zb2xlLmxvZyh4KSxcbiAqICAgICBlcnJvcjogZXJyID0+IGNvbnNvbGUubG9nKGVycilcbiAqICAgfSk7XG4gKiAgIC8vIDEsIDIsIDMsIGVycm9yIGluIHNvdXJjZS4gRGV0YWlsczogZm91ciFcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIG9uRXJyb3JSZXN1bWVOZXh0fVxuICogQHNlZSB7QGxpbmsgcmVwZWF0fVxuICogQHNlZSB7QGxpbmsgcmVwZWF0V2hlbn1cbiAqIEBzZWUge0BsaW5rIHJldHJ5IH1cbiAqIEBzZWUge0BsaW5rIHJldHJ5V2hlbn1cbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3IgQSBmdW5jdGlvbiB0aGF0IHRha2VzIGFzIGFyZ3VtZW50cyBgZXJyYCwgd2hpY2ggaXMgdGhlIGVycm9yLCBhbmQgYGNhdWdodGAsIHdoaWNoXG4gKiBpcyB0aGUgc291cmNlIG9ic2VydmFibGUsIGluIGNhc2UgeW91J2QgbGlrZSB0byBcInJldHJ5XCIgdGhhdCBvYnNlcnZhYmxlIGJ5IHJldHVybmluZyBpdCBhZ2Fpbi5cbiAqIFdoYXRldmVyIG9ic2VydmFibGUgaXMgcmV0dXJuZWQgYnkgdGhlIGBzZWxlY3RvcmAgd2lsbCBiZSB1c2VkIHRvIGNvbnRpbnVlIHRoZSBvYnNlcnZhYmxlIGNoYWluLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgb3JpZ2luYXRlcyBmcm9tIGVpdGhlclxuICogdGhlIHNvdXJjZSBvciB0aGUgT2JzZXJ2YWJsZSByZXR1cm5lZCBieSB0aGUgYHNlbGVjdG9yYCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhdGNoRXJyb3I8VCwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihcbiAgc2VsZWN0b3I6IChlcnI6IGFueSwgY2F1Z2h0OiBPYnNlcnZhYmxlPFQ+KSA9PiBPXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFQgfCBPYnNlcnZlZFZhbHVlT2Y8Tz4+IHtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIGxldCBpbm5lclN1YjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHN5bmNVbnN1YiA9IGZhbHNlO1xuICAgIGxldCBoYW5kbGVkUmVzdWx0OiBPYnNlcnZhYmxlPE9ic2VydmVkVmFsdWVPZjxPPj47XG5cbiAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIChlcnIpID0+IHtcbiAgICAgICAgaGFuZGxlZFJlc3VsdCA9IGlubmVyRnJvbShzZWxlY3RvcihlcnIsIGNhdGNoRXJyb3Ioc2VsZWN0b3IpKHNvdXJjZSkpKTtcbiAgICAgICAgaWYgKGlubmVyU3ViKSB7XG4gICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBpbm5lclN1YiA9IG51bGw7XG4gICAgICAgICAgaGFuZGxlZFJlc3VsdC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBhbiBpbm5lclN1YiB5ZXQsIHRoYXQgbWVhbnMgdGhlIGVycm9yIHdhcyBzeW5jaHJvbm91c1xuICAgICAgICAgIC8vIGJlY2F1c2UgdGhlIHN1YnNjcmliZSBjYWxsIGhhc24ndCByZXR1cm5lZCB5ZXQuXG4gICAgICAgICAgc3luY1Vuc3ViID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHN5bmNVbnN1Yikge1xuICAgICAgLy8gV2UgaGF2ZSBhIHN5bmNocm9ub3VzIGVycm9yLCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0b1xuICAgICAgLy8gZmluYWxpemUgcmlnaHQgYXdheS4gVGhpcyBlbnN1cmVzIHRoYXQgY2FsbGJhY2tzIGluIHRoZSBgZmluYWxpemVgIG9wZXJhdG9yIGFyZSBjYWxsZWRcbiAgICAgIC8vIGF0IHRoZSByaWdodCB0aW1lLCBhbmQgdGhhdCBmaW5hbGl6YXRpb24gb2NjdXJzIGF0IHRoZSBleHBlY3RlZFxuICAgICAgLy8gdGltZSBiZXR3ZWVuIHRoZSBzb3VyY2UgZXJyb3IgYW5kIHRoZSBzdWJzY3JpcHRpb24gdG8gdGhlXG4gICAgICAvLyBuZXh0IG9ic2VydmFibGUuXG4gICAgICBpbm5lclN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgaW5uZXJTdWIgPSBudWxsO1xuICAgICAgaGFuZGxlZFJlc3VsdCEuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICAgIH1cbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgc2NhbkludGVybmFscyB9IGZyb20gJy4vc2NhbkludGVybmFscyc7XG5pbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2U8ViwgQSA9IFY+KGFjY3VtdWxhdG9yOiAoYWNjOiBBIHwgViwgdmFsdWU6IFYsIGluZGV4OiBudW1iZXIpID0+IEEpOiBPcGVyYXRvckZ1bmN0aW9uPFYsIFYgfCBBPjtcbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2U8ViwgQT4oYWNjdW11bGF0b3I6IChhY2M6IEEsIHZhbHVlOiBWLCBpbmRleDogbnVtYmVyKSA9PiBBLCBzZWVkOiBBKTogT3BlcmF0b3JGdW5jdGlvbjxWLCBBPjtcbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2U8ViwgQSwgUyA9IEE+KGFjY3VtdWxhdG9yOiAoYWNjOiBBIHwgUywgdmFsdWU6IFYsIGluZGV4OiBudW1iZXIpID0+IEEsIHNlZWQ6IFMpOiBPcGVyYXRvckZ1bmN0aW9uPFYsIEE+O1xuXG4vKipcbiAqIEFwcGxpZXMgYW4gYWNjdW11bGF0b3IgZnVuY3Rpb24gb3ZlciB0aGUgc291cmNlIE9ic2VydmFibGUsIGFuZCByZXR1cm5zIHRoZVxuICogYWNjdW11bGF0ZWQgcmVzdWx0IHdoZW4gdGhlIHNvdXJjZSBjb21wbGV0ZXMsIGdpdmVuIGFuIG9wdGlvbmFsIHNlZWQgdmFsdWUuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkNvbWJpbmVzIHRvZ2V0aGVyIGFsbCB2YWx1ZXMgZW1pdHRlZCBvbiB0aGUgc291cmNlLFxuICogdXNpbmcgYW4gYWNjdW11bGF0b3IgZnVuY3Rpb24gdGhhdCBrbm93cyBob3cgdG8gam9pbiBhIG5ldyBzb3VyY2UgdmFsdWUgaW50b1xuICogdGhlIGFjY3VtdWxhdGlvbiBmcm9tIHRoZSBwYXN0Ljwvc3Bhbj5cbiAqXG4gKiAhW10ocmVkdWNlLnBuZylcbiAqXG4gKiBMaWtlXG4gKiBbQXJyYXkucHJvdG90eXBlLnJlZHVjZSgpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9yZWR1Y2UpLFxuICogYHJlZHVjZWAgYXBwbGllcyBhbiBgYWNjdW11bGF0b3JgIGZ1bmN0aW9uIGFnYWluc3QgYW4gYWNjdW11bGF0aW9uIGFuZCBlYWNoXG4gKiB2YWx1ZSBvZiB0aGUgc291cmNlIE9ic2VydmFibGUgKGZyb20gdGhlIHBhc3QpIHRvIHJlZHVjZSBpdCB0byBhIHNpbmdsZVxuICogdmFsdWUsIGVtaXR0ZWQgb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlLiBOb3RlIHRoYXQgYHJlZHVjZWAgd2lsbCBvbmx5IGVtaXRcbiAqIG9uZSB2YWx1ZSwgb25seSB3aGVuIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBjb21wbGV0ZXMuIEl0IGlzIGVxdWl2YWxlbnQgdG9cbiAqIGFwcGx5aW5nIG9wZXJhdG9yIHtAbGluayBzY2FufSBmb2xsb3dlZCBieSBvcGVyYXRvciB7QGxpbmsgbGFzdH0uXG4gKlxuICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgYXBwbGllcyBhIHNwZWNpZmllZCBgYWNjdW11bGF0b3JgIGZ1bmN0aW9uIHRvIGVhY2hcbiAqIGl0ZW0gZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUuIElmIGEgYHNlZWRgIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlblxuICogdGhhdCB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoZSBhY2N1bXVsYXRvci4gSWYgbm8gc2VlZFxuICogdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGUgZmlyc3QgaXRlbSBvZiB0aGUgc291cmNlIGlzIHVzZWQgYXMgdGhlIHNlZWQuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIENvdW50IHRoZSBudW1iZXIgb2YgY2xpY2sgZXZlbnRzIHRoYXQgaGFwcGVuZWQgaW4gNSBzZWNvbmRzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgdGFrZVVudGlsLCBpbnRlcnZhbCwgbWFwLCByZWR1Y2UgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3NJbkZpdmVTZWNvbmRzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKVxuICogICAucGlwZSh0YWtlVW50aWwoaW50ZXJ2YWwoNTAwMCkpKTtcbiAqXG4gKiBjb25zdCBvbmVzID0gY2xpY2tzSW5GaXZlU2Vjb25kcy5waXBlKG1hcCgoKSA9PiAxKSk7XG4gKiBjb25zdCBzZWVkID0gMDtcbiAqIGNvbnN0IGNvdW50ID0gb25lcy5waXBlKHJlZHVjZSgoYWNjLCBvbmUpID0+IGFjYyArIG9uZSwgc2VlZCkpO1xuICpcbiAqIGNvdW50LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGNvdW50fVxuICogQHNlZSB7QGxpbmsgZXhwYW5kfVxuICogQHNlZSB7QGxpbmsgbWVyZ2VTY2FufVxuICogQHNlZSB7QGxpbmsgc2Nhbn1cbiAqXG4gKiBAcGFyYW0gYWNjdW11bGF0b3IgVGhlIGFjY3VtdWxhdG9yIGZ1bmN0aW9uIGNhbGxlZCBvbiBlYWNoIHNvdXJjZSB2YWx1ZS5cbiAqIEBwYXJhbSBzZWVkIFRoZSBpbml0aWFsIGFjY3VtdWxhdGlvbiB2YWx1ZS5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgc2luZ2xlIHZhbHVlIHRoYXRcbiAqIGlzIHRoZSByZXN1bHQgb2YgYWNjdW11bGF0aW5nIHRoZSB2YWx1ZXMgZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2U8ViwgQT4oYWNjdW11bGF0b3I6IChhY2M6IFYgfCBBLCB2YWx1ZTogViwgaW5kZXg6IG51bWJlcikgPT4gQSwgc2VlZD86IGFueSk6IE9wZXJhdG9yRnVuY3Rpb248ViwgViB8IEE+IHtcbiAgcmV0dXJuIG9wZXJhdGUoc2NhbkludGVybmFscyhhY2N1bXVsYXRvciwgc2VlZCwgYXJndW1lbnRzLmxlbmd0aCA+PSAyLCBmYWxzZSwgdHJ1ZSkpO1xufVxuIiwgImltcG9ydCB7IHJlZHVjZSB9IGZyb20gJy4vcmVkdWNlJztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcblxuY29uc3QgYXJyUmVkdWNlciA9IChhcnI6IGFueVtdLCB2YWx1ZTogYW55KSA9PiAoYXJyLnB1c2godmFsdWUpLCBhcnIpO1xuXG4vKipcbiAqIENvbGxlY3RzIGFsbCBzb3VyY2UgZW1pc3Npb25zIGFuZCBlbWl0cyB0aGVtIGFzIGFuIGFycmF5IHdoZW4gdGhlIHNvdXJjZSBjb21wbGV0ZXMuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkdldCBhbGwgdmFsdWVzIGluc2lkZSBhbiBhcnJheSB3aGVuIHRoZSBzb3VyY2UgY29tcGxldGVzPC9zcGFuPlxuICpcbiAqICFbXSh0b0FycmF5LnBuZylcbiAqXG4gKiBgdG9BcnJheWAgd2lsbCB3YWl0IHVudGlsIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBjb21wbGV0ZXMgYmVmb3JlIGVtaXR0aW5nXG4gKiB0aGUgYXJyYXkgY29udGFpbmluZyBhbGwgZW1pc3Npb25zLiBXaGVuIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBlcnJvcnMgbm9cbiAqIGFycmF5IHdpbGwgYmUgZW1pdHRlZC5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCB0YWtlLCB0b0FycmF5IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgc291cmNlID0gaW50ZXJ2YWwoMTAwMCk7XG4gKiBjb25zdCBleGFtcGxlID0gc291cmNlLnBpcGUoXG4gKiAgIHRha2UoMTApLFxuICogICB0b0FycmF5KClcbiAqICk7XG4gKlxuICogZXhhbXBsZS5zdWJzY3JpYmUodmFsdWUgPT4gY29uc29sZS5sb2codmFsdWUpKTtcbiAqXG4gKiAvLyBvdXRwdXQ6IFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5XVxuICogYGBgXG4gKlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2YgaXRlbXNcbiAqIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHdoZW4gc291cmNlIGNvbXBsZXRlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQXJyYXk8VD4oKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUW10+IHtcbiAgLy8gQmVjYXVzZSBhcnJheXMgYXJlIG11dGFibGUsIGFuZCB3ZSdyZSBtdXRhdGluZyB0aGUgYXJyYXkgaW4gdGhpc1xuICAvLyByZWR1Y2VyIHByb2Nlc3MsIHdlIGhhdmUgdG8gZW5jYXBzdWxhdGUgdGhlIGNyZWF0aW9uIG9mIHRoZSBpbml0aWFsXG4gIC8vIGFycmF5IHdpdGhpbiB0aGlzIGBvcGVyYXRlYCBmdW5jdGlvbi5cbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIHJlZHVjZShhcnJSZWR1Y2VyLCBbXSBhcyBUW10pKHNvdXJjZSkuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9jb21iaW5lTGF0ZXN0JztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGpvaW5BbGxJbnRlcm5hbHMgfSBmcm9tICcuL2pvaW5BbGxJbnRlcm5hbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUxhdGVzdEFsbDxUPigpOiBPcGVyYXRvckZ1bmN0aW9uPE9ic2VydmFibGVJbnB1dDxUPiwgVFtdPjtcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0QWxsPFQ+KCk6IE9wZXJhdG9yRnVuY3Rpb248YW55LCBUW10+O1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3RBbGw8VCwgUj4ocHJvamVjdDogKC4uLnZhbHVlczogVFtdKSA9PiBSKTogT3BlcmF0b3JGdW5jdGlvbjxPYnNlcnZhYmxlSW5wdXQ8VD4sIFI+O1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3RBbGw8Uj4ocHJvamVjdDogKC4uLnZhbHVlczogQXJyYXk8YW55PikgPT4gUik6IE9wZXJhdG9yRnVuY3Rpb248YW55LCBSPjtcblxuLyoqXG4gKiBGbGF0dGVucyBhbiBPYnNlcnZhYmxlLW9mLU9ic2VydmFibGVzIGJ5IGFwcGx5aW5nIHtAbGluayBjb21iaW5lTGF0ZXN0fSB3aGVuIHRoZSBPYnNlcnZhYmxlLW9mLU9ic2VydmFibGVzIGNvbXBsZXRlcy5cbiAqXG4gKiBgY29tYmluZUxhdGVzdEFsbGAgdGFrZXMgYW4gT2JzZXJ2YWJsZSBvZiBPYnNlcnZhYmxlcywgYW5kIGNvbGxlY3RzIGFsbCBPYnNlcnZhYmxlcyBmcm9tIGl0LiBPbmNlIHRoZSBvdXRlciBPYnNlcnZhYmxlIGNvbXBsZXRlcyxcbiAqIGl0IHN1YnNjcmliZXMgdG8gYWxsIGNvbGxlY3RlZCBPYnNlcnZhYmxlcyBhbmQgY29tYmluZXMgdGhlaXIgdmFsdWVzIHVzaW5nIHRoZSB7QGxpbmsgY29tYmluZUxhdGVzdH0gc3RyYXRlZ3ksIHN1Y2ggdGhhdDpcbiAqXG4gKiAqIEV2ZXJ5IHRpbWUgYW4gaW5uZXIgT2JzZXJ2YWJsZSBlbWl0cywgdGhlIG91dHB1dCBPYnNlcnZhYmxlIGVtaXRzXG4gKiAqIFdoZW4gdGhlIHJldHVybmVkIG9ic2VydmFibGUgZW1pdHMsIGl0IGVtaXRzIGFsbCBvZiB0aGUgbGF0ZXN0IHZhbHVlcyBieTpcbiAqICAgICogSWYgYSBgcHJvamVjdGAgZnVuY3Rpb24gaXMgcHJvdmlkZWQsIGl0IGlzIGNhbGxlZCB3aXRoIGVhY2ggcmVjZW50IHZhbHVlIGZyb20gZWFjaCBpbm5lciBPYnNlcnZhYmxlIGluIHdoYXRldmVyIG9yZGVyIHRoZXlcbiAqICAgICAgYXJyaXZlZCwgYW5kIHRoZSByZXN1bHQgb2YgdGhlIGBwcm9qZWN0YCBmdW5jdGlvbiBpcyB3aGF0IGlzIGVtaXR0ZWQgYnkgdGhlIG91dHB1dCBPYnNlcnZhYmxlLlxuICogICAgKiBJZiB0aGVyZSBpcyBubyBgcHJvamVjdGAgZnVuY3Rpb24sIGFuIGFycmF5IG9mIGFsbCB0aGUgbW9zdCByZWNlbnQgdmFsdWVzIGlzIGVtaXR0ZWQgYnkgdGhlIG91dHB1dCBPYnNlcnZhYmxlLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBNYXAgdHdvIGNsaWNrIGV2ZW50cyB0byBhIGZpbml0ZSBpbnRlcnZhbCBPYnNlcnZhYmxlLCB0aGVuIGFwcGx5IGBjb21iaW5lTGF0ZXN0QWxsYFxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIG1hcCwgaW50ZXJ2YWwsIHRha2UsIGNvbWJpbmVMYXRlc3RBbGwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgaGlnaGVyT3JkZXIgPSBjbGlja3MucGlwZShcbiAqICAgbWFwKCgpID0+IGludGVydmFsKE1hdGgucmFuZG9tKCkgKiAyMDAwKS5waXBlKHRha2UoMykpKSxcbiAqICAgdGFrZSgyKVxuICogKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGhpZ2hlck9yZGVyLnBpcGUoY29tYmluZUxhdGVzdEFsbCgpKTtcbiAqXG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgY29tYmluZUxhdGVzdH1cbiAqIEBzZWUge0BsaW5rIGNvbWJpbmVMYXRlc3RXaXRofVxuICogQHNlZSB7QGxpbmsgbWVyZ2VBbGx9XG4gKlxuICogQHBhcmFtIHByb2plY3Qgb3B0aW9uYWwgZnVuY3Rpb24gdG8gbWFwIHRoZSBtb3N0IHJlY2VudCB2YWx1ZXMgZnJvbSBlYWNoIGlubmVyIE9ic2VydmFibGUgaW50byBhIG5ldyByZXN1bHQuXG4gKiBUYWtlcyBlYWNoIG9mIHRoZSBtb3N0IHJlY2VudCB2YWx1ZXMgZnJvbSBlYWNoIGNvbGxlY3RlZCBpbm5lciBPYnNlcnZhYmxlIGFzIGFyZ3VtZW50cywgaW4gb3JkZXIuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBmbGF0dGVucyBPYnNlcnZhYmxlc1xuICogZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0QWxsPFI+KHByb2plY3Q/OiAoLi4udmFsdWVzOiBBcnJheTxhbnk+KSA9PiBSKSB7XG4gIHJldHVybiBqb2luQWxsSW50ZXJuYWxzKGNvbWJpbmVMYXRlc3QsIHByb2plY3QpO1xufVxuIiwgImltcG9ydCB7IGNvbWJpbmVMYXRlc3RBbGwgfSBmcm9tICcuL2NvbWJpbmVMYXRlc3RBbGwnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8ge0BsaW5rIGNvbWJpbmVMYXRlc3RBbGx9LiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguXG4gKi9cbmV4cG9ydCBjb25zdCBjb21iaW5lQWxsID0gY29tYmluZUxhdGVzdEFsbDtcbiIsICJpbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJy4vbWVyZ2VNYXAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0LCBPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZlZFZhbHVlT2YgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vdXRpbC9pc0Z1bmN0aW9uJztcblxuLyogdHNsaW50OmRpc2FibGU6bWF4LWxpbmUtbGVuZ3RoICovXG5leHBvcnQgZnVuY3Rpb24gY29uY2F0TWFwPFQsIE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8YW55Pj4oXG4gIHByb2plY3Q6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gT1xuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuLyoqIEBkZXByZWNhdGVkIFRoZSBgcmVzdWx0U2VsZWN0b3JgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSBhbiBpbm5lciBgbWFwYCBpbnN0ZWFkLiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9yZXN1bHRTZWxlY3RvciAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbmNhdE1hcDxULCBPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PGFueT4+KFxuICBwcm9qZWN0OiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IE8sXG4gIHJlc3VsdFNlbGVjdG9yOiB1bmRlZmluZWRcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgT2JzZXJ2ZWRWYWx1ZU9mPE8+Pjtcbi8qKiBAZGVwcmVjYXRlZCBUaGUgYHJlc3VsdFNlbGVjdG9yYCBwYXJhbWV0ZXIgd2lsbCBiZSByZW1vdmVkIGluIHY4LiBVc2UgYW4gaW5uZXIgYG1hcGAgaW5zdGVhZC4gRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvcmVzdWx0U2VsZWN0b3IgKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25jYXRNYXA8VCwgUiwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihcbiAgcHJvamVjdDogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiBPLFxuICByZXN1bHRTZWxlY3RvcjogKG91dGVyVmFsdWU6IFQsIGlubmVyVmFsdWU6IE9ic2VydmVkVmFsdWVPZjxPPiwgb3V0ZXJJbmRleDogbnVtYmVyLCBpbm5lckluZGV4OiBudW1iZXIpID0+IFJcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgUj47XG4vKiB0c2xpbnQ6ZW5hYmxlOm1heC1saW5lLWxlbmd0aCAqL1xuXG4vKipcbiAqIFByb2plY3RzIGVhY2ggc291cmNlIHZhbHVlIHRvIGFuIE9ic2VydmFibGUgd2hpY2ggaXMgbWVyZ2VkIGluIHRoZSBvdXRwdXRcbiAqIE9ic2VydmFibGUsIGluIGEgc2VyaWFsaXplZCBmYXNoaW9uIHdhaXRpbmcgZm9yIGVhY2ggb25lIHRvIGNvbXBsZXRlIGJlZm9yZVxuICogbWVyZ2luZyB0aGUgbmV4dC5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+TWFwcyBlYWNoIHZhbHVlIHRvIGFuIE9ic2VydmFibGUsIHRoZW4gZmxhdHRlbnMgYWxsIG9mXG4gKiB0aGVzZSBpbm5lciBPYnNlcnZhYmxlcyB1c2luZyB7QGxpbmsgY29uY2F0QWxsfS48L3NwYW4+XG4gKlxuICogIVtdKGNvbmNhdE1hcC5wbmcpXG4gKlxuICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgaXRlbXMgYmFzZWQgb24gYXBwbHlpbmcgYSBmdW5jdGlvbiB0aGF0IHlvdVxuICogc3VwcGx5IHRvIGVhY2ggaXRlbSBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSwgd2hlcmUgdGhhdCBmdW5jdGlvblxuICogcmV0dXJucyBhbiAoc28tY2FsbGVkIFwiaW5uZXJcIikgT2JzZXJ2YWJsZS4gRWFjaCBuZXcgaW5uZXIgT2JzZXJ2YWJsZSBpc1xuICogY29uY2F0ZW5hdGVkIHdpdGggdGhlIHByZXZpb3VzIGlubmVyIE9ic2VydmFibGUuXG4gKlxuICogX19XYXJuaW5nOl9fIGlmIHNvdXJjZSB2YWx1ZXMgYXJyaXZlIGVuZGxlc3NseSBhbmQgZmFzdGVyIHRoYW4gdGhlaXJcbiAqIGNvcnJlc3BvbmRpbmcgaW5uZXIgT2JzZXJ2YWJsZXMgY2FuIGNvbXBsZXRlLCBpdCB3aWxsIHJlc3VsdCBpbiBtZW1vcnkgaXNzdWVzXG4gKiBhcyBpbm5lciBPYnNlcnZhYmxlcyBhbWFzcyBpbiBhbiB1bmJvdW5kZWQgYnVmZmVyIHdhaXRpbmcgZm9yIHRoZWlyIHR1cm4gdG9cbiAqIGJlIHN1YnNjcmliZWQgdG8uXG4gKlxuICogTm90ZTogYGNvbmNhdE1hcGAgaXMgZXF1aXZhbGVudCB0byBgbWVyZ2VNYXBgIHdpdGggY29uY3VycmVuY3kgcGFyYW1ldGVyIHNldFxuICogdG8gYDFgLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBGb3IgZWFjaCBjbGljayBldmVudCwgdGljayBldmVyeSBzZWNvbmQgZnJvbSAwIHRvIDMsIHdpdGggbm8gY29uY3VycmVuY3lcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBjb25jYXRNYXAsIGludGVydmFsLCB0YWtlIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGNsaWNrcy5waXBlKFxuICogICBjb25jYXRNYXAoZXYgPT4gaW50ZXJ2YWwoMTAwMCkucGlwZSh0YWtlKDQpKSlcbiAqICk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIFJlc3VsdHMgaW4gdGhlIGZvbGxvd2luZzpcbiAqIC8vIChyZXN1bHRzIGFyZSBub3QgY29uY3VycmVudClcbiAqIC8vIEZvciBldmVyeSBjbGljayBvbiB0aGUgXCJkb2N1bWVudFwiIGl0IHdpbGwgZW1pdCB2YWx1ZXMgMCB0byAzIHNwYWNlZFxuICogLy8gb24gYSAxMDAwbXMgaW50ZXJ2YWxcbiAqIC8vIG9uZSBjbGljayA9IDEwMDBtcy0+IDAgLTEwMDBtcy0+IDEgLTEwMDBtcy0+IDIgLTEwMDBtcy0+IDNcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGNvbmNhdH1cbiAqIEBzZWUge0BsaW5rIGNvbmNhdEFsbH1cbiAqIEBzZWUge0BsaW5rIGNvbmNhdE1hcFRvfVxuICogQHNlZSB7QGxpbmsgZXhoYXVzdE1hcH1cbiAqIEBzZWUge0BsaW5rIG1lcmdlTWFwfVxuICogQHNlZSB7QGxpbmsgc3dpdGNoTWFwfVxuICpcbiAqIEBwYXJhbSBwcm9qZWN0IEEgZnVuY3Rpb24gdGhhdCwgd2hlbiBhcHBsaWVkIHRvIGFuIGl0ZW0gZW1pdHRlZCBieSB0aGUgc291cmNlXG4gKiBPYnNlcnZhYmxlLCByZXR1cm5zIGFuIE9ic2VydmFibGUuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mXG4gKiBhcHBseWluZyB0aGUgcHJvamVjdGlvbiBmdW5jdGlvbiAoYW5kIHRoZSBvcHRpb25hbCBkZXByZWNhdGVkXG4gKiBgcmVzdWx0U2VsZWN0b3JgKSB0byBlYWNoIGl0ZW0gZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUgYW5kIHRha2luZ1xuICogdmFsdWVzIGZyb20gZWFjaCBwcm9qZWN0ZWQgaW5uZXIgT2JzZXJ2YWJsZSBzZXF1ZW50aWFsbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25jYXRNYXA8VCwgUiwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihcbiAgcHJvamVjdDogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiBPLFxuICByZXN1bHRTZWxlY3Rvcj86IChvdXRlclZhbHVlOiBULCBpbm5lclZhbHVlOiBPYnNlcnZlZFZhbHVlT2Y8Tz4sIG91dGVySW5kZXg6IG51bWJlciwgaW5uZXJJbmRleDogbnVtYmVyKSA9PiBSXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIE9ic2VydmVkVmFsdWVPZjxPPiB8IFI+IHtcbiAgcmV0dXJuIGlzRnVuY3Rpb24ocmVzdWx0U2VsZWN0b3IpID8gbWVyZ2VNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IsIDEpIDogbWVyZ2VNYXAocHJvamVjdCwgMSk7XG59XG4iLCAiaW1wb3J0IHsgY29uY2F0TWFwIH0gZnJvbSAnLi9jb25jYXRNYXAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0LCBPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZlZFZhbHVlT2YgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vdXRpbC9pc0Z1bmN0aW9uJztcblxuLyoqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OS4gVXNlIHtAbGluayBjb25jYXRNYXB9IGluc3RlYWQ6IGBjb25jYXRNYXAoKCkgPT4gcmVzdWx0KWAgKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25jYXRNYXBUbzxPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PHVua25vd24+PihvYnNlcnZhYmxlOiBPKTogT3BlcmF0b3JGdW5jdGlvbjx1bmtub3duLCBPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuLyoqIEBkZXByZWNhdGVkIFRoZSBgcmVzdWx0U2VsZWN0b3JgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSBhbiBpbm5lciBgbWFwYCBpbnN0ZWFkLiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9yZXN1bHRTZWxlY3RvciAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbmNhdE1hcFRvPE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8dW5rbm93bj4+KFxuICBvYnNlcnZhYmxlOiBPLFxuICByZXN1bHRTZWxlY3RvcjogdW5kZWZpbmVkXG4pOiBPcGVyYXRvckZ1bmN0aW9uPHVua25vd24sIE9ic2VydmVkVmFsdWVPZjxPPj47XG4vKiogQGRlcHJlY2F0ZWQgVGhlIGByZXN1bHRTZWxlY3RvcmAgcGFyYW1ldGVyIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVXNlIGFuIGlubmVyIGBtYXBgIGluc3RlYWQuIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL3Jlc3VsdFNlbGVjdG9yICovXG5leHBvcnQgZnVuY3Rpb24gY29uY2F0TWFwVG88VCwgUiwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDx1bmtub3duPj4oXG4gIG9ic2VydmFibGU6IE8sXG4gIHJlc3VsdFNlbGVjdG9yOiAob3V0ZXJWYWx1ZTogVCwgaW5uZXJWYWx1ZTogT2JzZXJ2ZWRWYWx1ZU9mPE8+LCBvdXRlckluZGV4OiBudW1iZXIsIGlubmVySW5kZXg6IG51bWJlcikgPT4gUlxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBSPjtcblxuLyoqXG4gKiBQcm9qZWN0cyBlYWNoIHNvdXJjZSB2YWx1ZSB0byB0aGUgc2FtZSBPYnNlcnZhYmxlIHdoaWNoIGlzIG1lcmdlZCBtdWx0aXBsZVxuICogdGltZXMgaW4gYSBzZXJpYWxpemVkIGZhc2hpb24gb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5JdCdzIGxpa2Uge0BsaW5rIGNvbmNhdE1hcH0sIGJ1dCBtYXBzIGVhY2ggdmFsdWVcbiAqIGFsd2F5cyB0byB0aGUgc2FtZSBpbm5lciBPYnNlcnZhYmxlLjwvc3Bhbj5cbiAqXG4gKiAhW10oY29uY2F0TWFwVG8ucG5nKVxuICpcbiAqIE1hcHMgZWFjaCBzb3VyY2UgdmFsdWUgdG8gdGhlIGdpdmVuIE9ic2VydmFibGUgYGlubmVyT2JzZXJ2YWJsZWAgcmVnYXJkbGVzc1xuICogb2YgdGhlIHNvdXJjZSB2YWx1ZSwgYW5kIHRoZW4gZmxhdHRlbnMgdGhvc2UgcmVzdWx0aW5nIE9ic2VydmFibGVzIGludG8gb25lXG4gKiBzaW5nbGUgT2JzZXJ2YWJsZSwgd2hpY2ggaXMgdGhlIG91dHB1dCBPYnNlcnZhYmxlLiBFYWNoIG5ldyBgaW5uZXJPYnNlcnZhYmxlYFxuICogaW5zdGFuY2UgZW1pdHRlZCBvbiB0aGUgb3V0cHV0IE9ic2VydmFibGUgaXMgY29uY2F0ZW5hdGVkIHdpdGggdGhlIHByZXZpb3VzXG4gKiBgaW5uZXJPYnNlcnZhYmxlYCBpbnN0YW5jZS5cbiAqXG4gKiBfX1dhcm5pbmc6X18gaWYgc291cmNlIHZhbHVlcyBhcnJpdmUgZW5kbGVzc2x5IGFuZCBmYXN0ZXIgdGhhbiB0aGVpclxuICogY29ycmVzcG9uZGluZyBpbm5lciBPYnNlcnZhYmxlcyBjYW4gY29tcGxldGUsIGl0IHdpbGwgcmVzdWx0IGluIG1lbW9yeSBpc3N1ZXNcbiAqIGFzIGlubmVyIE9ic2VydmFibGVzIGFtYXNzIGluIGFuIHVuYm91bmRlZCBidWZmZXIgd2FpdGluZyBmb3IgdGhlaXIgdHVybiB0b1xuICogYmUgc3Vic2NyaWJlZCB0by5cbiAqXG4gKiBOb3RlOiBgY29uY2F0TWFwVG9gIGlzIGVxdWl2YWxlbnQgdG8gYG1lcmdlTWFwVG9gIHdpdGggY29uY3VycmVuY3kgcGFyYW1ldGVyXG4gKiBzZXQgdG8gYDFgLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBGb3IgZWFjaCBjbGljayBldmVudCwgdGljayBldmVyeSBzZWNvbmQgZnJvbSAwIHRvIDMsIHdpdGggbm8gY29uY3VycmVuY3lcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBjb25jYXRNYXBUbywgaW50ZXJ2YWwsIHRha2UgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgcmVzdWx0ID0gY2xpY2tzLnBpcGUoXG4gKiAgIGNvbmNhdE1hcFRvKGludGVydmFsKDEwMDApLnBpcGUodGFrZSg0KSkpXG4gKiApO1xuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqXG4gKiAvLyBSZXN1bHRzIGluIHRoZSBmb2xsb3dpbmc6XG4gKiAvLyAocmVzdWx0cyBhcmUgbm90IGNvbmN1cnJlbnQpXG4gKiAvLyBGb3IgZXZlcnkgY2xpY2sgb24gdGhlIFwiZG9jdW1lbnRcIiBpdCB3aWxsIGVtaXQgdmFsdWVzIDAgdG8gMyBzcGFjZWRcbiAqIC8vIG9uIGEgMTAwMG1zIGludGVydmFsXG4gKiAvLyBvbmUgY2xpY2sgPSAxMDAwbXMtPiAwIC0xMDAwbXMtPiAxIC0xMDAwbXMtPiAyIC0xMDAwbXMtPiAzXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBjb25jYXR9XG4gKiBAc2VlIHtAbGluayBjb25jYXRBbGx9XG4gKiBAc2VlIHtAbGluayBjb25jYXRNYXB9XG4gKiBAc2VlIHtAbGluayBtZXJnZU1hcFRvfVxuICogQHNlZSB7QGxpbmsgc3dpdGNoTWFwVG99XG4gKlxuICogQHBhcmFtIGlubmVyT2JzZXJ2YWJsZSBBbiBgT2JzZXJ2YWJsZUlucHV0YCB0byByZXBsYWNlIGVhY2ggdmFsdWUgZnJvbSB0aGVcbiAqIHNvdXJjZSBPYnNlcnZhYmxlLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIG9mIHZhbHVlcyBtZXJnZWQgdG9nZXRoZXIgYnlcbiAqIGpvaW5pbmcgdGhlIHBhc3NlZCBPYnNlcnZhYmxlIHdpdGggaXRzZWxmLCBvbmUgYWZ0ZXIgdGhlIG90aGVyLCBmb3IgZWFjaFxuICogdmFsdWUgZW1pdHRlZCBmcm9tIHRoZSBzb3VyY2UuXG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gdjkuIFVzZSB7QGxpbmsgY29uY2F0TWFwfSBpbnN0ZWFkOiBgY29uY2F0TWFwKCgpID0+IHJlc3VsdClgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25jYXRNYXBUbzxULCBSLCBPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PHVua25vd24+PihcbiAgaW5uZXJPYnNlcnZhYmxlOiBPLFxuICByZXN1bHRTZWxlY3Rvcj86IChvdXRlclZhbHVlOiBULCBpbm5lclZhbHVlOiBPYnNlcnZlZFZhbHVlT2Y8Tz4sIG91dGVySW5kZXg6IG51bWJlciwgaW5uZXJJbmRleDogbnVtYmVyKSA9PiBSXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIE9ic2VydmVkVmFsdWVPZjxPPiB8IFI+IHtcbiAgcmV0dXJuIGlzRnVuY3Rpb24ocmVzdWx0U2VsZWN0b3IpID8gY29uY2F0TWFwKCgpID0+IGlubmVyT2JzZXJ2YWJsZSwgcmVzdWx0U2VsZWN0b3IpIDogY29uY2F0TWFwKCgpID0+IGlubmVyT2JzZXJ2YWJsZSk7XG59XG4iLCAiaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZUlucHV0LCBPYnNlcnZlZFZhbHVlT2YsIFN1YmplY3RMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJy4uL1N1YmplY3QnO1xuaW1wb3J0IHsgaW5uZXJGcm9tIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9pbm5lckZyb20nO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBmcm9tU3Vic2NyaWJhYmxlIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9mcm9tU3Vic2NyaWJhYmxlJztcblxuLyoqXG4gKiBBbiBvYmplY3QgdXNlZCB0byBjb25maWd1cmUge0BsaW5rIGNvbm5lY3R9IG9wZXJhdG9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RDb25maWc8VD4ge1xuICAvKipcbiAgICogQSBmYWN0b3J5IGZ1bmN0aW9uIHVzZWQgdG8gY3JlYXRlIHRoZSBTdWJqZWN0IHRocm91Z2ggd2hpY2ggdGhlIHNvdXJjZVxuICAgKiBpcyBtdWx0aWNhc3QuIEJ5IGRlZmF1bHQsIHRoaXMgY3JlYXRlcyBhIHtAbGluayBTdWJqZWN0fS5cbiAgICovXG4gIGNvbm5lY3RvcjogKCkgPT4gU3ViamVjdExpa2U8VD47XG59XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgYGNvbm5lY3RgLlxuICovXG5jb25zdCBERUZBVUxUX0NPTkZJRzogQ29ubmVjdENvbmZpZzx1bmtub3duPiA9IHtcbiAgY29ubmVjdG9yOiAoKSA9PiBuZXcgU3ViamVjdDx1bmtub3duPigpLFxufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIG9ic2VydmFibGUgYnkgbXVsdGljYXN0aW5nIHRoZSBzb3VyY2Ugd2l0aGluIGEgZnVuY3Rpb24gdGhhdFxuICogYWxsb3dzIHRoZSBkZXZlbG9wZXIgdG8gZGVmaW5lIHRoZSB1c2FnZSBvZiB0aGUgbXVsdGljYXN0IHByaW9yIHRvIGNvbm5lY3Rpb24uXG4gKlxuICogVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGlmIHRoZSBvYnNlcnZhYmxlIHNvdXJjZSB5b3Ugd2lzaCB0byBtdWx0aWNhc3QgY291bGRcbiAqIGJlIHN5bmNocm9ub3VzIG9yIGFzeW5jaHJvbm91cy4gVGhpcyBzZXRzIGl0IGFwYXJ0IGZyb20ge0BsaW5rIHNoYXJlfSwgd2hpY2gsIGluIHRoZVxuICogY2FzZSBvZiB0b3RhbGx5IHN5bmNocm9ub3VzIHNvdXJjZXMgd2lsbCBmYWlsIHRvIHNoYXJlIGEgc2luZ2xlIHN1YnNjcmlwdGlvbiB3aXRoXG4gKiBtdWx0aXBsZSBjb25zdW1lcnMsIGFzIGJ5IHRoZSB0aW1lIHRoZSBzdWJzY3JpcHRpb24gdG8gdGhlIHJlc3VsdCBvZiB7QGxpbmsgc2hhcmV9XG4gKiBoYXMgcmV0dXJuZWQsIGlmIHRoZSBzb3VyY2UgaXMgc3luY2hyb25vdXMgaXRzIGludGVybmFsIHJlZmVyZW5jZSBjb3VudCB3aWxsIGp1bXAgZnJvbVxuICogMCB0byAxIGJhY2sgdG8gMCBhbmQgcmVzZXQuXG4gKlxuICogVG8gdXNlIGBjb25uZWN0YCwgeW91IHByb3ZpZGUgYSBgc2VsZWN0b3JgIGZ1bmN0aW9uIHRoYXQgd2lsbCBnaXZlIHlvdVxuICogYSBtdWx0aWNhc3Qgb2JzZXJ2YWJsZSB0aGF0IGlzIG5vdCB5ZXQgY29ubmVjdGVkLiBZb3UgdGhlbiB1c2UgdGhhdCBtdWx0aWNhc3Qgb2JzZXJ2YWJsZVxuICogdG8gY3JlYXRlIGEgcmVzdWx0aW5nIG9ic2VydmFibGUgdGhhdCwgd2hlbiBzdWJzY3JpYmVkLCB3aWxsIHNldCB1cCB5b3VyIG11bHRpY2FzdC4gVGhpcyBpc1xuICogZ2VuZXJhbGx5LCBidXQgbm90IGFsd2F5cywgYWNjb21wbGlzaGVkIHdpdGgge0BsaW5rIG1lcmdlfS5cbiAqXG4gKiBOb3RlIHRoYXQgdXNpbmcgYSB7QGxpbmsgdGFrZVVudGlsfSBpbnNpZGUgb2YgYGNvbm5lY3RgJ3MgYHNlbGVjdG9yYCBfbWlnaHRfIG1lYW4geW91IHdlcmUgbG9va2luZ1xuICogdG8gdXNlIHRoZSB7QGxpbmsgdGFrZVdoaWxlfSBvcGVyYXRvciBpbnN0ZWFkLlxuICpcbiAqIFdoZW4geW91IHN1YnNjcmliZSB0byB0aGUgcmVzdWx0IG9mIGBjb25uZWN0YCwgdGhlIGBzZWxlY3RvcmAgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQuIEFmdGVyXG4gKiB0aGUgYHNlbGVjdG9yYCBmdW5jdGlvbiByZXR1cm5zLCB0aGUgb2JzZXJ2YWJsZSBpdCByZXR1cm5zIHdpbGwgYmUgc3Vic2NyaWJlZCB0bywgX3RoZW5fIHRoZVxuICogbXVsdGljYXN0IHdpbGwgYmUgY29ubmVjdGVkIHRvIHRoZSBzb3VyY2UuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIFNoYXJpbmcgYSB0b3RhbGx5IHN5bmNocm9ub3VzIG9ic2VydmFibGVcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIHRhcCwgY29ubmVjdCwgbWVyZ2UsIG1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgc291cmNlJCA9IG9mKDEsIDIsIDMsIDQsIDUpLnBpcGUoXG4gKiAgIHRhcCh7XG4gKiAgICAgc3Vic2NyaWJlOiAoKSA9PiBjb25zb2xlLmxvZygnc3Vic2NyaXB0aW9uIHN0YXJ0ZWQnKSxcbiAqICAgICBuZXh0OiBuID0+IGNvbnNvbGUubG9nKGBzb3VyY2UgZW1pdHRlZCAkeyBuIH1gKVxuICogICB9KVxuICogKTtcbiAqXG4gKiBzb3VyY2UkLnBpcGUoXG4gKiAgIC8vIE5vdGljZSBpbiBoZXJlIHdlJ3JlIG1lcmdpbmcgMyBzdWJzY3JpcHRpb25zIHRvIGBzaGFyZWQkYC5cbiAqICAgY29ubmVjdChzaGFyZWQkID0+IG1lcmdlKFxuICogICAgIHNoYXJlZCQucGlwZShtYXAobiA9PiBgYWxsICR7IG4gfWApKSxcbiAqICAgICBzaGFyZWQkLnBpcGUoZmlsdGVyKG4gPT4gbiAlIDIgPT09IDApLCBtYXAobiA9PiBgZXZlbiAkeyBuIH1gKSksXG4gKiAgICAgc2hhcmVkJC5waXBlKGZpbHRlcihuID0+IG4gJSAyID09PSAxKSwgbWFwKG4gPT4gYG9kZCAkeyBuIH1gKSlcbiAqICAgKSlcbiAqIClcbiAqIC5zdWJzY3JpYmUoY29uc29sZS5sb2cpO1xuICpcbiAqIC8vIEV4cGVjdGVkIG91dHB1dDogKG5vdGljZSBvbmx5IG9uZSBzdWJzY3JpcHRpb24pXG4gKiAnc3Vic2NyaXB0aW9uIHN0YXJ0ZWQnXG4gKiAnc291cmNlIGVtaXR0ZWQgMSdcbiAqICdhbGwgMSdcbiAqICdvZGQgMSdcbiAqICdzb3VyY2UgZW1pdHRlZCAyJ1xuICogJ2FsbCAyJ1xuICogJ2V2ZW4gMidcbiAqICdzb3VyY2UgZW1pdHRlZCAzJ1xuICogJ2FsbCAzJ1xuICogJ29kZCAzJ1xuICogJ3NvdXJjZSBlbWl0dGVkIDQnXG4gKiAnYWxsIDQnXG4gKiAnZXZlbiA0J1xuICogJ3NvdXJjZSBlbWl0dGVkIDUnXG4gKiAnYWxsIDUnXG4gKiAnb2RkIDUnXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3IgQSBmdW5jdGlvbiB1c2VkIHRvIHNldCB1cCB0aGUgbXVsdGljYXN0LiBHaXZlcyB5b3UgYSBtdWx0aWNhc3Qgb2JzZXJ2YWJsZVxuICogdGhhdCBpcyBub3QgeWV0IGNvbm5lY3RlZC4gV2l0aCB0aGF0LCB5b3UncmUgZXhwZWN0ZWQgdG8gY3JlYXRlIGFuZCByZXR1cm5cbiAqIGFuZCBPYnNlcnZhYmxlLCB0aGF0IHdoZW4gc3Vic2NyaWJlZCB0bywgd2lsbCB1dGlsaXplIHRoZSBtdWx0aWNhc3Qgb2JzZXJ2YWJsZS5cbiAqIEFmdGVyIHRoaXMgZnVuY3Rpb24gaXMgZXhlY3V0ZWQgLS0gYW5kIGl0cyByZXR1cm4gdmFsdWUgc3Vic2NyaWJlZCB0byAtLSB0aGVcbiAqIG9wZXJhdG9yIHdpbGwgc3Vic2NyaWJlIHRvIHRoZSBzb3VyY2UsIGFuZCB0aGUgY29ubmVjdGlvbiB3aWxsIGJlIG1hZGUuXG4gKiBAcGFyYW0gY29uZmlnIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgYGNvbm5lY3RgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29ubmVjdDxULCBPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PHVua25vd24+PihcbiAgc2VsZWN0b3I6IChzaGFyZWQ6IE9ic2VydmFibGU8VD4pID0+IE8sXG4gIGNvbmZpZzogQ29ubmVjdENvbmZpZzxUPiA9IERFRkFVTFRfQ09ORklHXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIE9ic2VydmVkVmFsdWVPZjxPPj4ge1xuICBjb25zdCB7IGNvbm5lY3RvciB9ID0gY29uZmlnO1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgY29uc3Qgc3ViamVjdCA9IGNvbm5lY3RvcigpO1xuICAgIGlubmVyRnJvbShzZWxlY3Rvcihmcm9tU3Vic2NyaWJhYmxlKHN1YmplY3QpKSkuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICAgIHN1YnNjcmliZXIuYWRkKHNvdXJjZS5zdWJzY3JpYmUoc3ViamVjdCkpO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgcmVkdWNlIH0gZnJvbSAnLi9yZWR1Y2UnO1xuXG4vKipcbiAqIENvdW50cyB0aGUgbnVtYmVyIG9mIGVtaXNzaW9ucyBvbiB0aGUgc291cmNlIGFuZCBlbWl0cyB0aGF0IG51bWJlciB3aGVuIHRoZVxuICogc291cmNlIGNvbXBsZXRlcy5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+VGVsbHMgaG93IG1hbnkgdmFsdWVzIHdlcmUgZW1pdHRlZCwgd2hlbiB0aGUgc291cmNlXG4gKiBjb21wbGV0ZXMuPC9zcGFuPlxuICpcbiAqICFbXShjb3VudC5wbmcpXG4gKlxuICogYGNvdW50YCB0cmFuc2Zvcm1zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB2YWx1ZXMgaW50byBhbiBPYnNlcnZhYmxlIHRoYXRcbiAqIGVtaXRzIGEgc2luZ2xlIHZhbHVlIHRoYXQgcmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHZhbHVlcyBlbWl0dGVkIGJ5IHRoZVxuICogc291cmNlIE9ic2VydmFibGUuIElmIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB0ZXJtaW5hdGVzIHdpdGggYW4gZXJyb3IsIGBjb3VudGBcbiAqIHdpbGwgcGFzcyB0aGlzIGVycm9yIG5vdGlmaWNhdGlvbiBhbG9uZyB3aXRob3V0IGVtaXR0aW5nIGEgdmFsdWUgZmlyc3QuIElmXG4gKiB0aGUgc291cmNlIE9ic2VydmFibGUgZG9lcyBub3QgdGVybWluYXRlIGF0IGFsbCwgYGNvdW50YCB3aWxsIG5laXRoZXIgZW1pdFxuICogYSB2YWx1ZSBub3IgdGVybWluYXRlLiBUaGlzIG9wZXJhdG9yIHRha2VzIGFuIG9wdGlvbmFsIGBwcmVkaWNhdGVgIGZ1bmN0aW9uXG4gKiBhcyBhcmd1bWVudCwgaW4gd2hpY2ggY2FzZSB0aGUgb3V0cHV0IGVtaXNzaW9uIHdpbGwgcmVwcmVzZW50IHRoZSBudW1iZXIgb2ZcbiAqIHNvdXJjZSB2YWx1ZXMgdGhhdCBtYXRjaGVkIGB0cnVlYCB3aXRoIHRoZSBgcHJlZGljYXRlYC5cbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIENvdW50cyBob3cgbWFueSBzZWNvbmRzIGhhdmUgcGFzc2VkIGJlZm9yZSB0aGUgZmlyc3QgY2xpY2sgaGFwcGVuZWRcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIGZyb21FdmVudCwgdGFrZVVudGlsLCBjb3VudCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHNlY29uZHMgPSBpbnRlcnZhbCgxMDAwKTtcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCBzZWNvbmRzQmVmb3JlQ2xpY2sgPSBzZWNvbmRzLnBpcGUodGFrZVVudGlsKGNsaWNrcykpO1xuICogY29uc3QgcmVzdWx0ID0gc2Vjb25kc0JlZm9yZUNsaWNrLnBpcGUoY291bnQoKSk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogQ291bnRzIGhvdyBtYW55IG9kZCBudW1iZXJzIGFyZSB0aGVyZSBiZXR3ZWVuIDEgYW5kIDdcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgcmFuZ2UsIGNvdW50IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgbnVtYmVycyA9IHJhbmdlKDEsIDcpO1xuICogY29uc3QgcmVzdWx0ID0gbnVtYmVycy5waXBlKGNvdW50KGkgPT4gaSAlIDIgPT09IDEpKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiAvLyBSZXN1bHRzIGluOlxuICogLy8gNFxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgbWF4fVxuICogQHNlZSB7QGxpbmsgbWlufVxuICogQHNlZSB7QGxpbmsgcmVkdWNlfVxuICpcbiAqIEBwYXJhbSBwcmVkaWNhdGUgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgdG8gYW5hbHl6ZSB0aGUgdmFsdWUgYW5kIHRoZSBpbmRleCBhbmRcbiAqIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0byBpbmNyZW1lbnQgdGhlIGNvdW50LiBSZXR1cm4gYHRydWVgIHRvIGluY3JlbWVudCB0aGUgY291bnQsXG4gKiBhbmQgcmV0dXJuIGBmYWxzZWAgdG8ga2VlcCB0aGUgY291bnQgdGhlIHNhbWUuXG4gKiBJZiB0aGUgcHJlZGljYXRlIGlzIG5vdCBwcm92aWRlZCwgZXZlcnkgdmFsdWUgd2lsbCBiZSBjb3VudGVkLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgb25lIG51bWJlciB0aGF0XG4gKiByZXByZXNlbnRzIHRoZSBjb3VudCBvZiBlbWlzc2lvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3VudDxUPihwcmVkaWNhdGU/OiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIG51bWJlcj4ge1xuICByZXR1cm4gcmVkdWNlKCh0b3RhbCwgdmFsdWUsIGkpID0+ICghcHJlZGljYXRlIHx8IHByZWRpY2F0ZSh2YWx1ZSwgaSkgPyB0b3RhbCArIDEgOiB0b3RhbCksIDApO1xufVxuIiwgImltcG9ydCB7IFN1YnNjcmliZXIgfSBmcm9tICcuLi9TdWJzY3JpYmVyJztcbmltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vdXRpbC9ub29wJztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4uL29ic2VydmFibGUvaW5uZXJGcm9tJztcblxuLyoqXG4gKiBFbWl0cyBhIG5vdGlmaWNhdGlvbiBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBvbmx5IGFmdGVyIGEgcGFydGljdWxhciB0aW1lIHNwYW5cbiAqIGRldGVybWluZWQgYnkgYW5vdGhlciBPYnNlcnZhYmxlIGhhcyBwYXNzZWQgd2l0aG91dCBhbm90aGVyIHNvdXJjZSBlbWlzc2lvbi5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+SXQncyBsaWtlIHtAbGluayBkZWJvdW5jZVRpbWV9LCBidXQgdGhlIHRpbWUgc3BhbiBvZlxuICogZW1pc3Npb24gc2lsZW5jZSBpcyBkZXRlcm1pbmVkIGJ5IGEgc2Vjb25kIE9ic2VydmFibGUuPC9zcGFuPlxuICpcbiAqICFbXShkZWJvdW5jZS5zdmcpXG4gKlxuICogYGRlYm91bmNlYCBkZWxheXMgbm90aWZpY2F0aW9ucyBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSwgYnV0IGRyb3BzIHByZXZpb3VzXG4gKiBwZW5kaW5nIGRlbGF5ZWQgZW1pc3Npb25zIGlmIGEgbmV3IG5vdGlmaWNhdGlvbiBhcnJpdmVzIG9uIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZS5cbiAqIFRoaXMgb3BlcmF0b3Iga2VlcHMgdHJhY2sgb2YgdGhlIG1vc3QgcmVjZW50IG5vdGlmaWNhdGlvbiBmcm9tIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUsIGFuZCBzcGF3bnMgYSBkdXJhdGlvbiBPYnNlcnZhYmxlIGJ5IGNhbGxpbmcgdGhlXG4gKiBgZHVyYXRpb25TZWxlY3RvcmAgZnVuY3Rpb24uIFRoZSBub3RpZmljYXRpb24gaXMgZW1pdHRlZCBvbmx5IHdoZW4gdGhlIGR1cmF0aW9uXG4gKiBPYnNlcnZhYmxlIGVtaXRzIGEgbmV4dCBub3RpZmljYXRpb24sIGFuZCBpZiBubyBvdGhlciBub3RpZmljYXRpb24gd2FzIGVtaXR0ZWQgb25cbiAqIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBzaW5jZSB0aGUgZHVyYXRpb24gT2JzZXJ2YWJsZSB3YXMgc3Bhd25lZC4gSWYgYSBuZXdcbiAqIG5vdGlmaWNhdGlvbiBhcHBlYXJzIGJlZm9yZSB0aGUgZHVyYXRpb24gT2JzZXJ2YWJsZSBlbWl0cywgdGhlIHByZXZpb3VzIG5vdGlmaWNhdGlvbiB3aWxsXG4gKiBub3QgYmUgZW1pdHRlZCBhbmQgYSBuZXcgZHVyYXRpb24gaXMgc2NoZWR1bGVkIGZyb20gYGR1cmF0aW9uU2VsZWN0b3JgIGlzIHNjaGVkdWxlZC5cbiAqIElmIHRoZSBjb21wbGV0aW5nIGV2ZW50IGhhcHBlbnMgZHVyaW5nIHRoZSBzY2hlZHVsZWQgZHVyYXRpb24gdGhlIGxhc3QgY2FjaGVkIG5vdGlmaWNhdGlvblxuICogaXMgZW1pdHRlZCBiZWZvcmUgdGhlIGNvbXBsZXRpb24gZXZlbnQgaXMgZm9yd2FyZGVkIHRvIHRoZSBvdXRwdXQgb2JzZXJ2YWJsZS5cbiAqIElmIHRoZSBlcnJvciBldmVudCBoYXBwZW5zIGR1cmluZyB0aGUgc2NoZWR1bGVkIGR1cmF0aW9uIG9yIGFmdGVyIGl0IG9ubHkgdGhlIGVycm9yIGV2ZW50IGlzXG4gKiBmb3J3YXJkZWQgdG8gdGhlIG91dHB1dCBvYnNlcnZhYmxlLiBUaGUgY2FjaGUgbm90aWZpY2F0aW9uIGlzIG5vdCBlbWl0dGVkIGluIHRoaXMgY2FzZS5cbiAqXG4gKiBMaWtlIHtAbGluayBkZWJvdW5jZVRpbWV9LCB0aGlzIGlzIGEgcmF0ZS1saW1pdGluZyBvcGVyYXRvciwgYW5kIGFsc28gYVxuICogZGVsYXktbGlrZSBvcGVyYXRvciBzaW5jZSBvdXRwdXQgZW1pc3Npb25zIGRvIG5vdCBuZWNlc3NhcmlseSBvY2N1ciBhdCB0aGVcbiAqIHNhbWUgdGltZSBhcyB0aGV5IGRpZCBvbiB0aGUgc291cmNlIE9ic2VydmFibGUuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIEVtaXQgdGhlIG1vc3QgcmVjZW50IGNsaWNrIGFmdGVyIGEgYnVyc3Qgb2YgY2xpY2tzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgc2NhbiwgZGVib3VuY2UsIGludGVydmFsIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGNsaWNrcy5waXBlKFxuICogICBzY2FuKGkgPT4gKytpLCAxKSxcbiAqICAgZGVib3VuY2UoaSA9PiBpbnRlcnZhbCgyMDAgKiBpKSlcbiAqICk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgYXVkaXR9XG4gKiBAc2VlIHtAbGluayBhdWRpdFRpbWV9XG4gKiBAc2VlIHtAbGluayBkZWJvdW5jZVRpbWV9XG4gKiBAc2VlIHtAbGluayBkZWxheX1cbiAqIEBzZWUge0BsaW5rIHNhbXBsZX1cbiAqIEBzZWUge0BsaW5rIHNhbXBsZVRpbWV9XG4gKiBAc2VlIHtAbGluayB0aHJvdHRsZX1cbiAqIEBzZWUge0BsaW5rIHRocm90dGxlVGltZX1cbiAqXG4gKiBAcGFyYW0gZHVyYXRpb25TZWxlY3RvciBBIGZ1bmN0aW9uXG4gKiB0aGF0IHJlY2VpdmVzIGEgdmFsdWUgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUsIGZvciBjb21wdXRpbmcgdGhlIHRpbWVvdXRcbiAqIGR1cmF0aW9uIGZvciBlYWNoIHNvdXJjZSB2YWx1ZSwgcmV0dXJuZWQgYXMgYW4gT2JzZXJ2YWJsZSBvciBhIFByb21pc2UuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBkZWxheXMgdGhlIGVtaXNzaW9ucyBvZlxuICogdGhlIHNvdXJjZSBPYnNlcnZhYmxlIGJ5IHRoZSBzcGVjaWZpZWQgZHVyYXRpb24gT2JzZXJ2YWJsZSByZXR1cm5lZCBieVxuICogYGR1cmF0aW9uU2VsZWN0b3JgLCBhbmQgbWF5IGRyb3Agc29tZSB2YWx1ZXMgaWYgdGhleSBvY2N1ciB0b28gZnJlcXVlbnRseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlYm91bmNlPFQ+KGR1cmF0aW9uU2VsZWN0b3I6ICh2YWx1ZTogVCkgPT4gT2JzZXJ2YWJsZUlucHV0PGFueT4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgbGV0IGhhc1ZhbHVlID0gZmFsc2U7XG4gICAgbGV0IGxhc3RWYWx1ZTogVCB8IG51bGwgPSBudWxsO1xuICAgIC8vIFRoZSBzdWJzY3JpYmVyL3N1YnNjcmlwdGlvbiBmb3IgdGhlIGN1cnJlbnQgZGVib3VuY2UsIGlmIHRoZXJlIGlzIG9uZS5cbiAgICBsZXQgZHVyYXRpb25TdWJzY3JpYmVyOiBTdWJzY3JpYmVyPGFueT4gfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0IGVtaXQgPSAoKSA9PiB7XG4gICAgICAvLyBVbnN1YnNjcmliZSBhbnkgY3VycmVudCBkZWJvdW5jZSBzdWJzY3JpcHRpb24gd2UgaGF2ZSxcbiAgICAgIC8vIHdlIG9ubHkgY2FyZWQgYWJvdXQgdGhlIGZpcnN0IG5vdGlmaWNhdGlvbiBmcm9tIGl0LCBhbmQgd2VcbiAgICAgIC8vIHdhbnQgdG8gY2xlYW4gdGhhdCBzdWJzY3JpcHRpb24gdXAgYXMgc29vbiBhcyBwb3NzaWJsZS5cbiAgICAgIGR1cmF0aW9uU3Vic2NyaWJlcj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7XG4gICAgICBpZiAoaGFzVmFsdWUpIHtcbiAgICAgICAgLy8gV2UgaGF2ZSBhIHZhbHVlISBGcmVlIHVwIG1lbW9yeSBmaXJzdCwgdGhlbiBlbWl0IHRoZSB2YWx1ZS5cbiAgICAgICAgaGFzVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBsYXN0VmFsdWUhO1xuICAgICAgICBsYXN0VmFsdWUgPSBudWxsO1xuICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAodmFsdWU6IFQpID0+IHtcbiAgICAgICAgICAvLyBDYW5jZWwgYW55IHBlbmRpbmcgZGVib3VuY2UgZHVyYXRpb24uIFdlIGRvbid0XG4gICAgICAgICAgLy8gbmVlZCB0byBudWxsIGl0IG91dCBoZXJlIHlldCB0aG8sIGJlY2F1c2Ugd2UncmUganVzdCBnb2luZ1xuICAgICAgICAgIC8vIHRvIGNyZWF0ZSBhbm90aGVyIG9uZSBpbiBhIGZldyBsaW5lcy5cbiAgICAgICAgICBkdXJhdGlvblN1YnNjcmliZXI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgaGFzVmFsdWUgPSB0cnVlO1xuICAgICAgICAgIGxhc3RWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIC8vIENhcHR1cmUgb3VyIGR1cmF0aW9uIHN1YnNjcmliZXIsIHNvIHdlIGNhbiB1bnN1YnNjcmliZSBpdCB3aGVuIHdlJ3JlIG5vdGlmaWVkXG4gICAgICAgICAgLy8gYW5kIHdlJ3JlIGdvaW5nIHRvIGVtaXQgdGhlIHZhbHVlLlxuICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbWl0LCBub29wKTtcbiAgICAgICAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIGR1cmF0aW9uLlxuICAgICAgICAgIGlubmVyRnJvbShkdXJhdGlvblNlbGVjdG9yKHZhbHVlKSkuc3Vic2NyaWJlKGR1cmF0aW9uU3Vic2NyaWJlcik7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAvLyBTb3VyY2UgY29tcGxldGVkLlxuICAgICAgICAgIC8vIEVtaXQgYW55IHBlbmRpbmcgZGVib3VuY2VkIHZhbHVlcyB0aGVuIGNvbXBsZXRlXG4gICAgICAgICAgZW1pdCgpO1xuICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gUGFzcyBhbGwgZXJyb3JzIHRocm91Z2ggdG8gY29uc3VtZXJcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgLy8gRmluYWxpemF0aW9uLlxuICAgICAgICAgIGxhc3RWYWx1ZSA9IGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBhc3luY1NjaGVkdWxlciB9IGZyb20gJy4uL3NjaGVkdWxlci9hc3luYyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICcuLi9TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBTY2hlZHVsZXJBY3Rpb24sIFNjaGVkdWxlckxpa2UgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuLyoqXG4gKiBFbWl0cyBhIG5vdGlmaWNhdGlvbiBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBvbmx5IGFmdGVyIGEgcGFydGljdWxhciB0aW1lIHNwYW5cbiAqIGhhcyBwYXNzZWQgd2l0aG91dCBhbm90aGVyIHNvdXJjZSBlbWlzc2lvbi5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+SXQncyBsaWtlIHtAbGluayBkZWxheX0sIGJ1dCBwYXNzZXMgb25seSB0aGUgbW9zdFxuICogcmVjZW50IG5vdGlmaWNhdGlvbiBmcm9tIGVhY2ggYnVyc3Qgb2YgZW1pc3Npb25zLjwvc3Bhbj5cbiAqXG4gKiAhW10oZGVib3VuY2VUaW1lLnBuZylcbiAqXG4gKiBgZGVib3VuY2VUaW1lYCBkZWxheXMgbm90aWZpY2F0aW9ucyBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSwgYnV0IGRyb3BzXG4gKiBwcmV2aW91cyBwZW5kaW5nIGRlbGF5ZWQgZW1pc3Npb25zIGlmIGEgbmV3IG5vdGlmaWNhdGlvbiBhcnJpdmVzIG9uIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUuIFRoaXMgb3BlcmF0b3Iga2VlcHMgdHJhY2sgb2YgdGhlIG1vc3QgcmVjZW50IG5vdGlmaWNhdGlvbiBmcm9tIHRoZVxuICogc291cmNlIE9ic2VydmFibGUsIGFuZCBlbWl0cyB0aGF0IG9ubHkgd2hlbiBgZHVlVGltZWAgaGFzIHBhc3NlZFxuICogd2l0aG91dCBhbnkgb3RoZXIgbm90aWZpY2F0aW9uIGFwcGVhcmluZyBvbiB0aGUgc291cmNlIE9ic2VydmFibGUuIElmIGEgbmV3IHZhbHVlXG4gKiBhcHBlYXJzIGJlZm9yZSBgZHVlVGltZWAgc2lsZW5jZSBvY2N1cnMsIHRoZSBwcmV2aW91cyBub3RpZmljYXRpb24gd2lsbCBiZSBkcm9wcGVkXG4gKiBhbmQgd2lsbCBub3QgYmUgZW1pdHRlZCBhbmQgYSBuZXcgYGR1ZVRpbWVgIGlzIHNjaGVkdWxlZC5cbiAqIElmIHRoZSBjb21wbGV0aW5nIGV2ZW50IGhhcHBlbnMgZHVyaW5nIGBkdWVUaW1lYCB0aGUgbGFzdCBjYWNoZWQgbm90aWZpY2F0aW9uXG4gKiBpcyBlbWl0dGVkIGJlZm9yZSB0aGUgY29tcGxldGlvbiBldmVudCBpcyBmb3J3YXJkZWQgdG8gdGhlIG91dHB1dCBvYnNlcnZhYmxlLlxuICogSWYgdGhlIGVycm9yIGV2ZW50IGhhcHBlbnMgZHVyaW5nIGBkdWVUaW1lYCBvciBhZnRlciBpdCBvbmx5IHRoZSBlcnJvciBldmVudCBpc1xuICogZm9yd2FyZGVkIHRvIHRoZSBvdXRwdXQgb2JzZXJ2YWJsZS4gVGhlIGNhY2hlIG5vdGlmaWNhdGlvbiBpcyBub3QgZW1pdHRlZCBpbiB0aGlzIGNhc2UuXG4gKlxuICogVGhpcyBpcyBhIHJhdGUtbGltaXRpbmcgb3BlcmF0b3IsIGJlY2F1c2UgaXQgaXMgaW1wb3NzaWJsZSBmb3IgbW9yZSB0aGFuIG9uZVxuICogbm90aWZpY2F0aW9uIHRvIGJlIGVtaXR0ZWQgaW4gYW55IHRpbWUgd2luZG93IG9mIGR1cmF0aW9uIGBkdWVUaW1lYCwgYnV0IGl0IGlzIGFsc29cbiAqIGEgZGVsYXktbGlrZSBvcGVyYXRvciBzaW5jZSBvdXRwdXQgZW1pc3Npb25zIGRvIG5vdCBvY2N1ciBhdCB0aGUgc2FtZSB0aW1lIGFzXG4gKiB0aGV5IGRpZCBvbiB0aGUgc291cmNlIE9ic2VydmFibGUuIE9wdGlvbmFsbHkgdGFrZXMgYSB7QGxpbmsgU2NoZWR1bGVyTGlrZX0gZm9yXG4gKiBtYW5hZ2luZyB0aW1lcnMuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIEVtaXQgdGhlIG1vc3QgcmVjZW50IGNsaWNrIGFmdGVyIGEgYnVyc3Qgb2YgY2xpY2tzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGNsaWNrcy5waXBlKGRlYm91bmNlVGltZSgxMDAwKSk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgYXVkaXR9XG4gKiBAc2VlIHtAbGluayBhdWRpdFRpbWV9XG4gKiBAc2VlIHtAbGluayBkZWJvdW5jZX1cbiAqIEBzZWUge0BsaW5rIHNhbXBsZX1cbiAqIEBzZWUge0BsaW5rIHNhbXBsZVRpbWV9XG4gKiBAc2VlIHtAbGluayB0aHJvdHRsZX1cbiAqIEBzZWUge0BsaW5rIHRocm90dGxlVGltZX1cbiAqXG4gKiBAcGFyYW0gZHVlVGltZSBUaGUgdGltZW91dCBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMgKG9yIHRoZSB0aW1lIHVuaXQgZGV0ZXJtaW5lZFxuICogaW50ZXJuYWxseSBieSB0aGUgb3B0aW9uYWwgYHNjaGVkdWxlcmApIGZvciB0aGUgd2luZG93IG9mIHRpbWUgcmVxdWlyZWQgdG8gd2FpdFxuICogZm9yIGVtaXNzaW9uIHNpbGVuY2UgYmVmb3JlIGVtaXR0aW5nIHRoZSBtb3N0IHJlY2VudCBzb3VyY2UgdmFsdWUuXG4gKiBAcGFyYW0gc2NoZWR1bGVyIFRoZSB7QGxpbmsgU2NoZWR1bGVyTGlrZX0gdG8gdXNlIGZvciBtYW5hZ2luZyB0aGUgdGltZXJzIHRoYXRcbiAqIGhhbmRsZSB0aGUgdGltZW91dCBmb3IgZWFjaCB2YWx1ZS5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGRlbGF5cyB0aGUgZW1pc3Npb25zIG9mXG4gKiB0aGUgc291cmNlIE9ic2VydmFibGUgYnkgdGhlIHNwZWNpZmllZCBgZHVlVGltZWAsIGFuZCBtYXkgZHJvcCBzb21lIHZhbHVlc1xuICogaWYgdGhleSBvY2N1ciB0b28gZnJlcXVlbnRseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlYm91bmNlVGltZTxUPihkdWVUaW1lOiBudW1iZXIsIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSA9IGFzeW5jU2NoZWR1bGVyKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIGxldCBhY3RpdmVUYXNrOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgICBsZXQgbGFzdFZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGxhc3RUaW1lOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0IGVtaXQgPSAoKSA9PiB7XG4gICAgICBpZiAoYWN0aXZlVGFzaykge1xuICAgICAgICAvLyBXZSBoYXZlIGEgdmFsdWUhIEZyZWUgdXAgbWVtb3J5IGZpcnN0LCB0aGVuIGVtaXQgdGhlIHZhbHVlLlxuICAgICAgICBhY3RpdmVUYXNrLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGFjdGl2ZVRhc2sgPSBudWxsO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGxhc3RWYWx1ZSE7XG4gICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7XG4gICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBmdW5jdGlvbiBlbWl0V2hlbklkbGUodGhpczogU2NoZWR1bGVyQWN0aW9uPHVua25vd24+KSB7XG4gICAgICAvLyBUaGlzIGlzIGNhbGxlZCBgZHVlVGltZWAgYWZ0ZXIgdGhlIGZpcnN0IHZhbHVlXG4gICAgICAvLyBidXQgd2UgbWlnaHQgaGF2ZSByZWNlaXZlZCBuZXcgdmFsdWVzIGR1cmluZyB0aGlzIHdpbmRvdyFcblxuICAgICAgY29uc3QgdGFyZ2V0VGltZSA9IGxhc3RUaW1lISArIGR1ZVRpbWU7XG4gICAgICBjb25zdCBub3cgPSBzY2hlZHVsZXIubm93KCk7XG4gICAgICBpZiAobm93IDwgdGFyZ2V0VGltZSkge1xuICAgICAgICAvLyBPbiB0aGF0IGNhc2UsIHJlLXNjaGVkdWxlIHRvIHRoZSBuZXcgdGFyZ2V0XG4gICAgICAgIGFjdGl2ZVRhc2sgPSB0aGlzLnNjaGVkdWxlKHVuZGVmaW5lZCwgdGFyZ2V0VGltZSAtIG5vdyk7XG4gICAgICAgIHN1YnNjcmliZXIuYWRkKGFjdGl2ZVRhc2spO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGVtaXQoKTtcbiAgICB9XG5cbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAodmFsdWU6IFQpID0+IHtcbiAgICAgICAgICBsYXN0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICBsYXN0VGltZSA9IHNjaGVkdWxlci5ub3coKTtcblxuICAgICAgICAgIC8vIE9ubHkgc2V0IHVwIGEgdGFzayBpZiBpdCdzIG5vdCBhbHJlYWR5IHVwXG4gICAgICAgICAgaWYgKCFhY3RpdmVUYXNrKSB7XG4gICAgICAgICAgICBhY3RpdmVUYXNrID0gc2NoZWR1bGVyLnNjaGVkdWxlKGVtaXRXaGVuSWRsZSwgZHVlVGltZSk7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmFkZChhY3RpdmVUYXNrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAvLyBTb3VyY2UgY29tcGxldGVkLlxuICAgICAgICAgIC8vIEVtaXQgYW55IHBlbmRpbmcgZGVib3VuY2VkIHZhbHVlcyB0aGVuIGNvbXBsZXRlXG4gICAgICAgICAgZW1pdCgpO1xuICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gUGFzcyBhbGwgZXJyb3JzIHRocm91Z2ggdG8gY29uc3VtZXIuXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIC8vIEZpbmFsaXphdGlvbi5cbiAgICAgICAgICBsYXN0VmFsdWUgPSBhY3RpdmVUYXNrID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuLyoqXG4gKiBFbWl0cyBhIGdpdmVuIHZhbHVlIGlmIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBjb21wbGV0ZXMgd2l0aG91dCBlbWl0dGluZyBhbnlcbiAqIGBuZXh0YCB2YWx1ZSwgb3RoZXJ3aXNlIG1pcnJvcnMgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5JZiB0aGUgc291cmNlIE9ic2VydmFibGUgdHVybnMgb3V0IHRvIGJlIGVtcHR5LCB0aGVuXG4gKiB0aGlzIG9wZXJhdG9yIHdpbGwgZW1pdCBhIGRlZmF1bHQgdmFsdWUuPC9zcGFuPlxuICpcbiAqICFbXShkZWZhdWx0SWZFbXB0eS5wbmcpXG4gKlxuICogYGRlZmF1bHRJZkVtcHR5YCBlbWl0cyB0aGUgdmFsdWVzIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIG9yIGFcbiAqIHNwZWNpZmllZCBkZWZhdWx0IHZhbHVlIGlmIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBpcyBlbXB0eSAoY29tcGxldGVzIHdpdGhvdXRcbiAqIGhhdmluZyBlbWl0dGVkIGFueSBgbmV4dGAgdmFsdWUpLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBJZiBubyBjbGlja3MgaGFwcGVuIGluIDUgc2Vjb25kcywgdGhlbiBlbWl0ICdubyBjbGlja3MnXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgdGFrZVVudGlsLCBpbnRlcnZhbCwgZGVmYXVsdElmRW1wdHkgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgY2xpY2tzQmVmb3JlRml2ZSA9IGNsaWNrcy5waXBlKHRha2VVbnRpbChpbnRlcnZhbCg1MDAwKSkpO1xuICogY29uc3QgcmVzdWx0ID0gY2xpY2tzQmVmb3JlRml2ZS5waXBlKGRlZmF1bHRJZkVtcHR5KCdubyBjbGlja3MnKSk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgZW1wdHl9XG4gKiBAc2VlIHtAbGluayBsYXN0fVxuICpcbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgVGhlIGRlZmF1bHQgdmFsdWUgdXNlZCBpZiB0aGUgc291cmNlXG4gKiBPYnNlcnZhYmxlIGlzIGVtcHR5LlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgZWl0aGVyIHRoZVxuICogc3BlY2lmaWVkIGBkZWZhdWx0VmFsdWVgIGlmIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBlbWl0cyBubyBpdGVtcywgb3IgdGhlXG4gKiB2YWx1ZXMgZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0SWZFbXB0eTxULCBSPihkZWZhdWx0VmFsdWU6IFIpOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFQgfCBSPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBsZXQgaGFzVmFsdWUgPSBmYWxzZTtcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGlmICghaGFzVmFsdWUpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChkZWZhdWx0VmFsdWUhKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgRU1QVFkgfSBmcm9tICcuLi9vYnNlcnZhYmxlL2VtcHR5JztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuXG4vKipcbiAqIEVtaXRzIG9ubHkgdGhlIGZpcnN0IGBjb3VudGAgdmFsdWVzIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5UYWtlcyB0aGUgZmlyc3QgYGNvdW50YCB2YWx1ZXMgZnJvbSB0aGUgc291cmNlLCB0aGVuXG4gKiBjb21wbGV0ZXMuPC9zcGFuPlxuICpcbiAqICFbXSh0YWtlLnBuZylcbiAqXG4gKiBgdGFrZWAgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgb25seSB0aGUgZmlyc3QgYGNvdW50YCB2YWx1ZXMgZW1pdHRlZFxuICogYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLiBJZiB0aGUgc291cmNlIGVtaXRzIGZld2VyIHRoYW4gYGNvdW50YCB2YWx1ZXMgdGhlblxuICogYWxsIG9mIGl0cyB2YWx1ZXMgYXJlIGVtaXR0ZWQuIEFmdGVyIHRoYXQsIGl0IGNvbXBsZXRlcywgcmVnYXJkbGVzcyBpZiB0aGVcbiAqIHNvdXJjZSBjb21wbGV0ZXMuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIFRha2UgdGhlIGZpcnN0IDUgc2Vjb25kcyBvZiBhbiBpbmZpbml0ZSAxLXNlY29uZCBpbnRlcnZhbCBPYnNlcnZhYmxlXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCB0YWtlIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgaW50ZXJ2YWxDb3VudCA9IGludGVydmFsKDEwMDApO1xuICogY29uc3QgdGFrZUZpdmUgPSBpbnRlcnZhbENvdW50LnBpcGUodGFrZSg1KSk7XG4gKiB0YWtlRml2ZS5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKlxuICogLy8gTG9nczpcbiAqIC8vIDBcbiAqIC8vIDFcbiAqIC8vIDJcbiAqIC8vIDNcbiAqIC8vIDRcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIHRha2VMYXN0fVxuICogQHNlZSB7QGxpbmsgdGFrZVVudGlsfVxuICogQHNlZSB7QGxpbmsgdGFrZVdoaWxlfVxuICogQHNlZSB7QGxpbmsgc2tpcH1cbiAqXG4gKiBAcGFyYW0gY291bnQgVGhlIG1heGltdW0gbnVtYmVyIG9mIGBuZXh0YCB2YWx1ZXMgdG8gZW1pdC5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIG9ubHkgdGhlIGZpcnN0XG4gKiBgY291bnRgIHZhbHVlcyBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSwgb3IgYWxsIG9mIHRoZSB2YWx1ZXMgZnJvbVxuICogdGhlIHNvdXJjZSBpZiB0aGUgc291cmNlIGVtaXRzIGZld2VyIHRoYW4gYGNvdW50YCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0YWtlPFQ+KGNvdW50OiBudW1iZXIpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gY291bnQgPD0gMFxuICAgID8gLy8gSWYgd2UgYXJlIHRha2luZyBubyB2YWx1ZXMsIHRoYXQncyBlbXB0eS5cbiAgICAgICgpID0+IEVNUFRZXG4gICAgOiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICAgICAgbGV0IHNlZW4gPSAwO1xuICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgICAgIGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCAodmFsdWUpID0+IHtcbiAgICAgICAgICAgIC8vIEluY3JlbWVudCB0aGUgbnVtYmVyIG9mIHZhbHVlcyB3ZSBoYXZlIHNlZW4sXG4gICAgICAgICAgICAvLyB0aGVuIGNoZWNrIGl0IGFnYWluc3QgdGhlIGFsbG93ZWQgY291bnQgdG8gc2VlXG4gICAgICAgICAgICAvLyBpZiB3ZSBhcmUgc3RpbGwgbGV0dGluZyB2YWx1ZXMgdGhyb3VnaC5cbiAgICAgICAgICAgIGlmICgrK3NlZW4gPD0gY291bnQpIHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBtZXQgb3IgcGFzc2VkIG91ciBhbGxvd2VkIGNvdW50LFxuICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGNvbXBsZXRlLiBXZSBoYXZlIHRvIGRvIDw9IGhlcmUsXG4gICAgICAgICAgICAgIC8vIGJlY2F1c2UgcmUtZW50cmFudCBjb2RlIHdpbGwgaW5jcmVtZW50IGBzZWVuYCB0d2ljZS5cbiAgICAgICAgICAgICAgaWYgKGNvdW50IDw9IHNlZW4pIHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG59XG4iLCAiaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL3V0aWwvbm9vcCc7XG5cbi8qKlxuICogSWdub3JlcyBhbGwgaXRlbXMgZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUgYW5kIG9ubHkgcGFzc2VzIGNhbGxzIG9mIGBjb21wbGV0ZWAgb3IgYGVycm9yYC5cbiAqXG4gKiAhW10oaWdub3JlRWxlbWVudHMucG5nKVxuICpcbiAqIFRoZSBgaWdub3JlRWxlbWVudHNgIG9wZXJhdG9yIHN1cHByZXNzZXMgYWxsIGl0ZW1zIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLFxuICogYnV0IGFsbG93cyBpdHMgdGVybWluYXRpb24gbm90aWZpY2F0aW9uIChlaXRoZXIgYGVycm9yYCBvciBgY29tcGxldGVgKSB0byBwYXNzIHRocm91Z2ggdW5jaGFuZ2VkLlxuICpcbiAqIElmIHlvdSBkbyBub3QgY2FyZSBhYm91dCB0aGUgaXRlbXMgYmVpbmcgZW1pdHRlZCBieSBhbiBPYnNlcnZhYmxlLCBidXQgeW91IGRvIHdhbnQgdG8gYmUgbm90aWZpZWRcbiAqIHdoZW4gaXQgY29tcGxldGVzIG9yIHdoZW4gaXQgdGVybWluYXRlcyB3aXRoIGFuIGVycm9yLCB5b3UgY2FuIGFwcGx5IHRoZSBgaWdub3JlRWxlbWVudHNgIG9wZXJhdG9yXG4gKiB0byB0aGUgT2JzZXJ2YWJsZSwgd2hpY2ggd2lsbCBlbnN1cmUgdGhhdCBpdCB3aWxsIG5ldmVyIGNhbGwgaXRzIG9ic2VydmVyc1x1MjAxOSBgbmV4dGAgaGFuZGxlcnMuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIElnbm9yZSBhbGwgYG5leHRgIGVtaXNzaW9ucyBmcm9tIHRoZSBzb3VyY2VcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIGlnbm9yZUVsZW1lbnRzIH0gZnJvbSAncnhqcyc7XG4gKlxuICogb2YoJ3lvdScsICd0YWxraW5nJywgJ3RvJywgJ21lJylcbiAqICAgLnBpcGUoaWdub3JlRWxlbWVudHMoKSlcbiAqICAgLnN1YnNjcmliZSh7XG4gKiAgICAgbmV4dDogd29yZCA9PiBjb25zb2xlLmxvZyh3b3JkKSxcbiAqICAgICBlcnJvcjogZXJyID0+IGNvbnNvbGUubG9nKCdlcnJvcjonLCBlcnIpLFxuICogICAgIGNvbXBsZXRlOiAoKSA9PiBjb25zb2xlLmxvZygndGhlIGVuZCcpLFxuICogICB9KTtcbiAqXG4gKiAvLyByZXN1bHQ6XG4gKiAvLyAndGhlIGVuZCdcbiAqIGBgYFxuICpcbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gZW1wdHkgT2JzZXJ2YWJsZSB0aGF0IG9ubHkgY2FsbHNcbiAqIGBjb21wbGV0ZWAgb3IgYGVycm9yYCwgYmFzZWQgb24gd2hpY2ggb25lIGlzIGNhbGxlZCBieSB0aGUgc291cmNlXG4gKiBPYnNlcnZhYmxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaWdub3JlRWxlbWVudHMoKTogT3BlcmF0b3JGdW5jdGlvbjx1bmtub3duLCBuZXZlcj4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgc291cmNlLnN1YnNjcmliZShjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgbm9vcCkpO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAnLi9tYXAnO1xuXG4vKiogQGRlcHJlY2F0ZWQgVG8gYmUgcmVtb3ZlZCBpbiB2OS4gVXNlIHtAbGluayBtYXB9IGluc3RlYWQ6IGBtYXAoKCkgPT4gdmFsdWUpYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBUbzxSPih2YWx1ZTogUik6IE9wZXJhdG9yRnVuY3Rpb248dW5rbm93biwgUj47XG4vKipcbiAqIEBkZXByZWNhdGVkIERvIG5vdCBzcGVjaWZ5IGV4cGxpY2l0IHR5cGUgcGFyYW1ldGVycy4gU2lnbmF0dXJlcyB3aXRoIHR5cGUgcGFyYW1ldGVyc1xuICogdGhhdCBjYW5ub3QgYmUgaW5mZXJyZWQgd2lsbCBiZSByZW1vdmVkIGluIHY4LiBgbWFwVG9gIGl0c2VsZiB3aWxsIGJlIHJlbW92ZWQgaW4gdjksXG4gKiB1c2Uge0BsaW5rIG1hcH0gaW5zdGVhZDogYG1hcCgoKSA9PiB2YWx1ZSlgLlxuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBUbzxULCBSPih2YWx1ZTogUik6IE9wZXJhdG9yRnVuY3Rpb248VCwgUj47XG5cbi8qKlxuICogRW1pdHMgdGhlIGdpdmVuIGNvbnN0YW50IHZhbHVlIG9uIHRoZSBvdXRwdXQgT2JzZXJ2YWJsZSBldmVyeSB0aW1lIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUgZW1pdHMgYSB2YWx1ZS5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+TGlrZSB7QGxpbmsgbWFwfSwgYnV0IGl0IG1hcHMgZXZlcnkgc291cmNlIHZhbHVlIHRvXG4gKiB0aGUgc2FtZSBvdXRwdXQgdmFsdWUgZXZlcnkgdGltZS48L3NwYW4+XG4gKlxuICogIVtdKG1hcFRvLnBuZylcbiAqXG4gKiBUYWtlcyBhIGNvbnN0YW50IGB2YWx1ZWAgYXMgYXJndW1lbnQsIGFuZCBlbWl0cyB0aGF0IHdoZW5ldmVyIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUgZW1pdHMgYSB2YWx1ZS4gSW4gb3RoZXIgd29yZHMsIGlnbm9yZXMgdGhlIGFjdHVhbCBzb3VyY2UgdmFsdWUsXG4gKiBhbmQgc2ltcGx5IHVzZXMgdGhlIGVtaXNzaW9uIG1vbWVudCB0byBrbm93IHdoZW4gdG8gZW1pdCB0aGUgZ2l2ZW4gYHZhbHVlYC5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogTWFwIGV2ZXJ5IGNsaWNrIHRvIHRoZSBzdHJpbmcgYCdIaSdgXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgbWFwVG8gfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgZ3JlZXRpbmdzID0gY2xpY2tzLnBpcGUobWFwVG8oJ0hpJykpO1xuICpcbiAqIGdyZWV0aW5ncy5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBtYXB9XG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBtYXAgZWFjaCBzb3VyY2UgdmFsdWUgdG8uXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZ2l2ZW4gYHZhbHVlYFxuICogZXZlcnkgdGltZSB0aGUgc291cmNlIE9ic2VydmFibGUgZW1pdHMuXG4gKiBAZGVwcmVjYXRlZCBUbyBiZSByZW1vdmVkIGluIHY5LiBVc2Uge0BsaW5rIG1hcH0gaW5zdGVhZDogYG1hcCgoKSA9PiB2YWx1ZSlgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwVG88Uj4odmFsdWU6IFIpOiBPcGVyYXRvckZ1bmN0aW9uPHVua25vd24sIFI+IHtcbiAgcmV0dXJuIG1hcCgoKSA9PiB2YWx1ZSk7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBjb25jYXQgfSBmcm9tICcuLi9vYnNlcnZhYmxlL2NvbmNhdCc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAnLi90YWtlJztcbmltcG9ydCB7IGlnbm9yZUVsZW1lbnRzIH0gZnJvbSAnLi9pZ25vcmVFbGVtZW50cyc7XG5pbXBvcnQgeyBtYXBUbyB9IGZyb20gJy4vbWFwVG8nO1xuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICcuL21lcmdlTWFwJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4uL29ic2VydmFibGUvaW5uZXJGcm9tJztcblxuLyoqIEBkZXByZWNhdGVkIFRoZSBgc3Vic2NyaXB0aW9uRGVsYXlgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguICovXG5leHBvcnQgZnVuY3Rpb24gZGVsYXlXaGVuPFQ+KFxuICBkZWxheUR1cmF0aW9uU2VsZWN0b3I6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gT2JzZXJ2YWJsZUlucHV0PGFueT4sXG4gIHN1YnNjcmlwdGlvbkRlbGF5OiBPYnNlcnZhYmxlPGFueT5cbik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPjtcbmV4cG9ydCBmdW5jdGlvbiBkZWxheVdoZW48VD4oZGVsYXlEdXJhdGlvblNlbGVjdG9yOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IE9ic2VydmFibGVJbnB1dDxhbnk+KTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuXG4vKipcbiAqIERlbGF5cyB0aGUgZW1pc3Npb24gb2YgaXRlbXMgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUgYnkgYSBnaXZlbiB0aW1lIHNwYW5cbiAqIGRldGVybWluZWQgYnkgdGhlIGVtaXNzaW9ucyBvZiBhbm90aGVyIE9ic2VydmFibGUuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkl0J3MgbGlrZSB7QGxpbmsgZGVsYXl9LCBidXQgdGhlIHRpbWUgc3BhbiBvZiB0aGVcbiAqIGRlbGF5IGR1cmF0aW9uIGlzIGRldGVybWluZWQgYnkgYSBzZWNvbmQgT2JzZXJ2YWJsZS48L3NwYW4+XG4gKlxuICogIVtdKGRlbGF5V2hlbi5wbmcpXG4gKlxuICogYGRlbGF5V2hlbmAgb3BlcmF0b3Igc2hpZnRzIGVhY2ggZW1pdHRlZCB2YWx1ZSBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBieVxuICogYSB0aW1lIHNwYW4gZGV0ZXJtaW5lZCBieSBhbm90aGVyIE9ic2VydmFibGUuIFdoZW4gdGhlIHNvdXJjZSBlbWl0cyBhIHZhbHVlLFxuICogdGhlIGBkZWxheUR1cmF0aW9uU2VsZWN0b3JgIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIHRoZSB2YWx1ZSBlbWl0dGVkIGZyb21cbiAqIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlIGBkZWxheUR1cmF0aW9uU2VsZWN0b3JgLlxuICogVGhlIGBkZWxheUR1cmF0aW9uU2VsZWN0b3JgIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYW4ge0BsaW5rIE9ic2VydmFibGVJbnB1dH0sXG4gKiB0aGF0IGlzIGludGVybmFsbHkgY29udmVydGVkIHRvIGFuIE9ic2VydmFibGUgdGhhdCBpcyBjYWxsZWQgdGhlIFwiZHVyYXRpb25cIlxuICogT2JzZXJ2YWJsZS5cbiAqXG4gKiBUaGUgc291cmNlIHZhbHVlIGlzIGVtaXR0ZWQgb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlIG9ubHkgd2hlbiB0aGUgXCJkdXJhdGlvblwiXG4gKiBPYnNlcnZhYmxlIGVtaXRzICh7QGxpbmsgZ3VpZGUvZ2xvc3NhcnktYW5kLXNlbWFudGljcyNuZXh0IG5leHR9cykgYW55IHZhbHVlLlxuICogVXBvbiB0aGF0LCB0aGUgXCJkdXJhdGlvblwiIE9ic2VydmFibGUgZ2V0cyB1bnN1YnNjcmliZWQuXG4gKlxuICogQmVmb3JlIFJ4SlMgVjcsIHRoZSB7QGxpbmsgZ3VpZGUvZ2xvc3NhcnktYW5kLXNlbWFudGljcyNjb21wbGV0ZSBjb21wbGV0aW9ufVxuICogb2YgdGhlIFwiZHVyYXRpb25cIiBPYnNlcnZhYmxlIHdvdWxkIGhhdmUgYmVlbiB0cmlnZ2VyaW5nIHRoZSBlbWlzc2lvbiBvZiB0aGVcbiAqIHNvdXJjZSB2YWx1ZSB0byB0aGUgb3V0cHV0IE9ic2VydmFibGUsIGJ1dCB3aXRoIFJ4SlMgVjcsIHRoaXMgaXMgbm90IHRoZSBjYXNlXG4gKiBhbnltb3JlLlxuICpcbiAqIE9ubHkgbmV4dCBub3RpZmljYXRpb25zIChmcm9tIHRoZSBcImR1cmF0aW9uXCIgT2JzZXJ2YWJsZSkgdHJpZ2dlciB2YWx1ZXMgZnJvbVxuICogdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHRvIGJlIHBhc3NlZCB0byB0aGUgb3V0cHV0IE9ic2VydmFibGUuIElmIHRoZSBcImR1cmF0aW9uXCJcbiAqIE9ic2VydmFibGUgb25seSBlbWl0cyB0aGUgY29tcGxldGUgbm90aWZpY2F0aW9uICh3aXRob3V0IG5leHQpLCB0aGUgdmFsdWVcbiAqIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHdpbGwgbmV2ZXIgZ2V0IHRvIHRoZSBvdXRwdXQgT2JzZXJ2YWJsZSAtIGl0XG4gKiB3aWxsIGJlIHN3YWxsb3dlZC4gSWYgdGhlIFwiZHVyYXRpb25cIiBPYnNlcnZhYmxlIGVycm9ycywgdGhlIGVycm9yIHdpbGwgYmVcbiAqIHByb3BhZ2F0ZWQgdG8gdGhlIG91dHB1dCBPYnNlcnZhYmxlLlxuICpcbiAqIE9wdGlvbmFsbHksIGBkZWxheVdoZW5gIHRha2VzIGEgc2Vjb25kIGFyZ3VtZW50LCBgc3Vic2NyaXB0aW9uRGVsYXlgLCB3aGljaFxuICogaXMgYW4gT2JzZXJ2YWJsZS4gV2hlbiBgc3Vic2NyaXB0aW9uRGVsYXlgIGVtaXRzIGl0cyBmaXJzdCB2YWx1ZSBvclxuICogY29tcGxldGVzLCB0aGUgc291cmNlIE9ic2VydmFibGUgaXMgc3Vic2NyaWJlZCB0byBhbmQgc3RhcnRzIGJlaGF2aW5nIGxpa2VcbiAqIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgcGFyYWdyYXBoLiBJZiBgc3Vic2NyaXB0aW9uRGVsYXlgIGlzIG5vdCBwcm92aWRlZCxcbiAqIGBkZWxheVdoZW5gIHdpbGwgc3Vic2NyaWJlIHRvIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBhcyBzb29uIGFzIHRoZSBvdXRwdXRcbiAqIE9ic2VydmFibGUgaXMgc3Vic2NyaWJlZC5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogRGVsYXkgZWFjaCBjbGljayBieSBhIHJhbmRvbSBhbW91bnQgb2YgdGltZSwgYmV0d2VlbiAwIGFuZCA1IHNlY29uZHNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBkZWxheVdoZW4sIGludGVydmFsIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IGRlbGF5ZWRDbGlja3MgPSBjbGlja3MucGlwZShcbiAqICAgZGVsYXlXaGVuKCgpID0+IGludGVydmFsKE1hdGgucmFuZG9tKCkgKiA1MDAwKSlcbiAqICk7XG4gKiBkZWxheWVkQ2xpY2tzLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGRlbGF5fVxuICogQHNlZSB7QGxpbmsgdGhyb3R0bGV9XG4gKiBAc2VlIHtAbGluayB0aHJvdHRsZVRpbWV9XG4gKiBAc2VlIHtAbGluayBkZWJvdW5jZX1cbiAqIEBzZWUge0BsaW5rIGRlYm91bmNlVGltZX1cbiAqIEBzZWUge0BsaW5rIHNhbXBsZX1cbiAqIEBzZWUge0BsaW5rIHNhbXBsZVRpbWV9XG4gKiBAc2VlIHtAbGluayBhdWRpdH1cbiAqIEBzZWUge0BsaW5rIGF1ZGl0VGltZX1cbiAqXG4gKiBAcGFyYW0gZGVsYXlEdXJhdGlvblNlbGVjdG9yIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGBPYnNlcnZhYmxlSW5wdXRgIGZvclxuICogZWFjaCBgdmFsdWVgIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLCB3aGljaCBpcyB0aGVuIHVzZWQgdG8gZGVsYXkgdGhlXG4gKiBlbWlzc2lvbiBvZiB0aGF0IGB2YWx1ZWAgb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlIHVudGlsIHRoZSBgT2JzZXJ2YWJsZUlucHV0YFxuICogcmV0dXJuZWQgZnJvbSB0aGlzIGZ1bmN0aW9uIGVtaXRzIGEgbmV4dCB2YWx1ZS4gV2hlbiBjYWxsZWQsIGJlc2lkZSBgdmFsdWVgLFxuICogdGhpcyBmdW5jdGlvbiByZWNlaXZlcyBhIHplcm8tYmFzZWQgYGluZGV4YCBvZiB0aGUgZW1pc3Npb24gb3JkZXIuXG4gKiBAcGFyYW0gc3Vic2NyaXB0aW9uRGVsYXkgQW4gT2JzZXJ2YWJsZSB0aGF0IHRyaWdnZXJzIHRoZSBzdWJzY3JpcHRpb24gdG8gdGhlXG4gKiBzb3VyY2UgT2JzZXJ2YWJsZSBvbmNlIGl0IGVtaXRzIGFueSB2YWx1ZS5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGRlbGF5cyB0aGUgZW1pc3Npb25zIG9mXG4gKiB0aGUgc291cmNlIE9ic2VydmFibGUgYnkgYW4gYW1vdW50IG9mIHRpbWUgc3BlY2lmaWVkIGJ5IHRoZSBPYnNlcnZhYmxlXG4gKiByZXR1cm5lZCBieSBgZGVsYXlEdXJhdGlvblNlbGVjdG9yYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5V2hlbjxUPihcbiAgZGVsYXlEdXJhdGlvblNlbGVjdG9yOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IE9ic2VydmFibGVJbnB1dDxhbnk+LFxuICBzdWJzY3JpcHRpb25EZWxheT86IE9ic2VydmFibGU8YW55PlxuKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgaWYgKHN1YnNjcmlwdGlvbkRlbGF5KSB7XG4gICAgLy8gREVQUkVDQVRFRCBQQVRIXG4gICAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+XG4gICAgICBjb25jYXQoc3Vic2NyaXB0aW9uRGVsYXkucGlwZSh0YWtlKDEpLCBpZ25vcmVFbGVtZW50cygpKSwgc291cmNlLnBpcGUoZGVsYXlXaGVuKGRlbGF5RHVyYXRpb25TZWxlY3RvcikpKTtcbiAgfVxuXG4gIHJldHVybiBtZXJnZU1hcCgodmFsdWUsIGluZGV4KSA9PiBpbm5lckZyb20oZGVsYXlEdXJhdGlvblNlbGVjdG9yKHZhbHVlLCBpbmRleCkpLnBpcGUodGFrZSgxKSwgbWFwVG8odmFsdWUpKSk7XG59XG4iLCAiaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICcuLi9zY2hlZHVsZXIvYXN5bmMnO1xuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZGVsYXlXaGVuIH0gZnJvbSAnLi9kZWxheVdoZW4nO1xuaW1wb3J0IHsgdGltZXIgfSBmcm9tICcuLi9vYnNlcnZhYmxlL3RpbWVyJztcblxuLyoqXG4gKiBEZWxheXMgdGhlIGVtaXNzaW9uIG9mIGl0ZW1zIGZyb20gdGhlIHNvdXJjZSBPYnNlcnZhYmxlIGJ5IGEgZ2l2ZW4gdGltZW91dCBvclxuICogdW50aWwgYSBnaXZlbiBEYXRlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5UaW1lIHNoaWZ0cyBlYWNoIGl0ZW0gYnkgc29tZSBzcGVjaWZpZWQgYW1vdW50IG9mXG4gKiBtaWxsaXNlY29uZHMuPC9zcGFuPlxuICpcbiAqICFbXShkZWxheS5zdmcpXG4gKlxuICogSWYgdGhlIGRlbGF5IGFyZ3VtZW50IGlzIGEgTnVtYmVyLCB0aGlzIG9wZXJhdG9yIHRpbWUgc2hpZnRzIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUgYnkgdGhhdCBhbW91bnQgb2YgdGltZSBleHByZXNzZWQgaW4gbWlsbGlzZWNvbmRzLiBUaGUgcmVsYXRpdmVcbiAqIHRpbWUgaW50ZXJ2YWxzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgcHJlc2VydmVkLlxuICpcbiAqIElmIHRoZSBkZWxheSBhcmd1bWVudCBpcyBhIERhdGUsIHRoaXMgb3BlcmF0b3IgdGltZSBzaGlmdHMgdGhlIHN0YXJ0IG9mIHRoZVxuICogT2JzZXJ2YWJsZSBleGVjdXRpb24gdW50aWwgdGhlIGdpdmVuIGRhdGUgb2NjdXJzLlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogRGVsYXkgZWFjaCBjbGljayBieSBvbmUgc2Vjb25kXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgZGVsYXkgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgZGVsYXllZENsaWNrcyA9IGNsaWNrcy5waXBlKGRlbGF5KDEwMDApKTsgLy8gZWFjaCBjbGljayBlbWl0dGVkIGFmdGVyIDEgc2Vjb25kXG4gKiBkZWxheWVkQ2xpY2tzLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIERlbGF5IGFsbCBjbGlja3MgdW50aWwgYSBmdXR1cmUgZGF0ZSBoYXBwZW5zXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgZGVsYXkgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCdNYXJjaCAxNSwgMjA1MCAxMjowMDowMCcpOyAvLyBpbiB0aGUgZnV0dXJlXG4gKiBjb25zdCBkZWxheWVkQ2xpY2tzID0gY2xpY2tzLnBpcGUoZGVsYXkoZGF0ZSkpOyAvLyBjbGljayBlbWl0dGVkIG9ubHkgYWZ0ZXIgdGhhdCBkYXRlXG4gKiBkZWxheWVkQ2xpY2tzLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGRlbGF5V2hlbn1cbiAqIEBzZWUge0BsaW5rIHRocm90dGxlfVxuICogQHNlZSB7QGxpbmsgdGhyb3R0bGVUaW1lfVxuICogQHNlZSB7QGxpbmsgZGVib3VuY2V9XG4gKiBAc2VlIHtAbGluayBkZWJvdW5jZVRpbWV9XG4gKiBAc2VlIHtAbGluayBzYW1wbGV9XG4gKiBAc2VlIHtAbGluayBzYW1wbGVUaW1lfVxuICogQHNlZSB7QGxpbmsgYXVkaXR9XG4gKiBAc2VlIHtAbGluayBhdWRpdFRpbWV9XG4gKlxuICogQHBhcmFtIGR1ZSBUaGUgZGVsYXkgZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzIChhIGBudW1iZXJgKSBvciBhIGBEYXRlYCB1bnRpbFxuICogd2hpY2ggdGhlIGVtaXNzaW9uIG9mIHRoZSBzb3VyY2UgaXRlbXMgaXMgZGVsYXllZC5cbiAqIEBwYXJhbSBzY2hlZHVsZXIgVGhlIHtAbGluayBTY2hlZHVsZXJMaWtlfSB0byB1c2UgZm9yIG1hbmFnaW5nIHRoZSB0aW1lcnNcbiAqIHRoYXQgaGFuZGxlIHRoZSB0aW1lLXNoaWZ0IGZvciBlYWNoIGl0ZW0uXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBkZWxheXMgdGhlIGVtaXNzaW9ucyBvZlxuICogdGhlIHNvdXJjZSBPYnNlcnZhYmxlIGJ5IHRoZSBzcGVjaWZpZWQgdGltZW91dCBvciBEYXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVsYXk8VD4oZHVlOiBudW1iZXIgfCBEYXRlLCBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UgPSBhc3luY1NjaGVkdWxlcik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIGNvbnN0IGR1cmF0aW9uID0gdGltZXIoZHVlLCBzY2hlZHVsZXIpO1xuICByZXR1cm4gZGVsYXlXaGVuKCgpID0+IGR1cmF0aW9uKTtcbn1cbiIsICJpbXBvcnQgeyBvYnNlcnZlTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vTm90aWZpY2F0aW9uJztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGVOb3RpZmljYXRpb24sIFZhbHVlRnJvbU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuXG4vKipcbiAqIENvbnZlcnRzIGFuIE9ic2VydmFibGUgb2Yge0BsaW5rIE9ic2VydmFibGVOb3RpZmljYXRpb259IG9iamVjdHMgaW50byB0aGUgZW1pc3Npb25zXG4gKiB0aGF0IHRoZXkgcmVwcmVzZW50LlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5VbndyYXBzIHtAbGluayBPYnNlcnZhYmxlTm90aWZpY2F0aW9ufSBvYmplY3RzIGFzIGFjdHVhbCBgbmV4dGAsXG4gKiBgZXJyb3JgIGFuZCBgY29tcGxldGVgIGVtaXNzaW9ucy4gVGhlIG9wcG9zaXRlIG9mIHtAbGluayBtYXRlcmlhbGl6ZX0uPC9zcGFuPlxuICpcbiAqICFbXShkZW1hdGVyaWFsaXplLnBuZylcbiAqXG4gKiBgZGVtYXRlcmlhbGl6ZWAgaXMgYXNzdW1lZCB0byBvcGVyYXRlIGFuIE9ic2VydmFibGUgdGhhdCBvbmx5IGVtaXRzXG4gKiB7QGxpbmsgT2JzZXJ2YWJsZU5vdGlmaWNhdGlvbn0gb2JqZWN0cyBhcyBgbmV4dGAgZW1pc3Npb25zLCBhbmQgZG9lcyBub3QgZW1pdCBhbnlcbiAqIGBlcnJvcmAuIFN1Y2ggT2JzZXJ2YWJsZSBpcyB0aGUgb3V0cHV0IG9mIGEgYG1hdGVyaWFsaXplYCBvcGVyYXRpb24uIFRob3NlXG4gKiBub3RpZmljYXRpb25zIGFyZSB0aGVuIHVud3JhcHBlZCB1c2luZyB0aGUgbWV0YWRhdGEgdGhleSBjb250YWluLCBhbmQgZW1pdHRlZFxuICogYXMgYG5leHRgLCBgZXJyb3JgLCBhbmQgYGNvbXBsZXRlYCBvbiB0aGUgb3V0cHV0IE9ic2VydmFibGUuXG4gKlxuICogVXNlIHRoaXMgb3BlcmF0b3IgaW4gY29uanVuY3Rpb24gd2l0aCB7QGxpbmsgbWF0ZXJpYWxpemV9LlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBDb252ZXJ0IGFuIE9ic2VydmFibGUgb2YgTm90aWZpY2F0aW9ucyB0byBhbiBhY3R1YWwgT2JzZXJ2YWJsZVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBOZXh0Tm90aWZpY2F0aW9uLCBFcnJvck5vdGlmaWNhdGlvbiwgb2YsIGRlbWF0ZXJpYWxpemUgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBub3RpZkE6IE5leHROb3RpZmljYXRpb248c3RyaW5nPiA9IHsga2luZDogJ04nLCB2YWx1ZTogJ0EnIH07XG4gKiBjb25zdCBub3RpZkI6IE5leHROb3RpZmljYXRpb248c3RyaW5nPiA9IHsga2luZDogJ04nLCB2YWx1ZTogJ0InIH07XG4gKiBjb25zdCBub3RpZkU6IEVycm9yTm90aWZpY2F0aW9uID0geyBraW5kOiAnRScsIGVycm9yOiBuZXcgVHlwZUVycm9yKCd4LnRvVXBwZXJDYXNlIGlzIG5vdCBhIGZ1bmN0aW9uJykgfTtcbiAqXG4gKiBjb25zdCBtYXRlcmlhbGl6ZWQgPSBvZihub3RpZkEsIG5vdGlmQiwgbm90aWZFKTtcbiAqXG4gKiBjb25zdCB1cHBlckNhc2UgPSBtYXRlcmlhbGl6ZWQucGlwZShkZW1hdGVyaWFsaXplKCkpO1xuICogdXBwZXJDYXNlLnN1YnNjcmliZSh7XG4gKiAgIG5leHQ6IHggPT4gY29uc29sZS5sb2coeCksXG4gKiAgIGVycm9yOiBlID0+IGNvbnNvbGUuZXJyb3IoZSlcbiAqIH0pO1xuICpcbiAqIC8vIFJlc3VsdHMgaW46XG4gKiAvLyBBXG4gKiAvLyBCXG4gKiAvLyBUeXBlRXJyb3I6IHgudG9VcHBlckNhc2UgaXMgbm90IGEgZnVuY3Rpb25cbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIG1hdGVyaWFsaXplfVxuICpcbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGl0ZW1zIGFuZFxuICogbm90aWZpY2F0aW9ucyBlbWJlZGRlZCBpbiBOb3RpZmljYXRpb24gb2JqZWN0cyBlbWl0dGVkIGJ5IHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZW1hdGVyaWFsaXplPE4gZXh0ZW5kcyBPYnNlcnZhYmxlTm90aWZpY2F0aW9uPGFueT4+KCk6IE9wZXJhdG9yRnVuY3Rpb248TiwgVmFsdWVGcm9tTm90aWZpY2F0aW9uPE4+PiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCAobm90aWZpY2F0aW9uKSA9PiBvYnNlcnZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgc3Vic2NyaWJlcikpKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi91dGlsL25vb3AnO1xuaW1wb3J0IHsgaW5uZXJGcm9tIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9pbm5lckZyb20nO1xuXG4vKipcbiAqIFJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFsbCBpdGVtcyBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB0aGF0IGFyZSBkaXN0aW5jdCBieSBjb21wYXJpc29uIGZyb20gcHJldmlvdXMgaXRlbXMuXG4gKlxuICogSWYgYSBga2V5U2VsZWN0b3JgIGZ1bmN0aW9uIGlzIHByb3ZpZGVkLCB0aGVuIGl0IHdpbGwgcHJvamVjdCBlYWNoIHZhbHVlIGZyb20gdGhlIHNvdXJjZSBvYnNlcnZhYmxlIGludG8gYSBuZXcgdmFsdWUgdGhhdCBpdCB3aWxsXG4gKiBjaGVjayBmb3IgZXF1YWxpdHkgd2l0aCBwcmV2aW91c2x5IHByb2plY3RlZCB2YWx1ZXMuIElmIHRoZSBga2V5U2VsZWN0b3JgIGZ1bmN0aW9uIGlzIG5vdCBwcm92aWRlZCwgaXQgd2lsbCB1c2UgZWFjaCB2YWx1ZSBmcm9tIHRoZVxuICogc291cmNlIG9ic2VydmFibGUgZGlyZWN0bHkgd2l0aCBhbiBlcXVhbGl0eSBjaGVjayBhZ2FpbnN0IHByZXZpb3VzIHZhbHVlcy5cbiAqXG4gKiBJbiBKYXZhU2NyaXB0IHJ1bnRpbWVzIHRoYXQgc3VwcG9ydCBgU2V0YCwgdGhpcyBvcGVyYXRvciB3aWxsIHVzZSBhIGBTZXRgIHRvIGltcHJvdmUgcGVyZm9ybWFuY2Ugb2YgdGhlIGRpc3RpbmN0IHZhbHVlIGNoZWNraW5nLlxuICpcbiAqIEluIG90aGVyIHJ1bnRpbWVzLCB0aGlzIG9wZXJhdG9yIHdpbGwgdXNlIGEgbWluaW1hbCBpbXBsZW1lbnRhdGlvbiBvZiBgU2V0YCB0aGF0IHJlbGllcyBvbiBhbiBgQXJyYXlgIGFuZCBgaW5kZXhPZmAgdW5kZXIgdGhlXG4gKiBob29kLCBzbyBwZXJmb3JtYW5jZSB3aWxsIGRlZ3JhZGUgYXMgbW9yZSB2YWx1ZXMgYXJlIGNoZWNrZWQgZm9yIGRpc3RpbmN0aW9uLiBFdmVuIGluIG5ld2VyIGJyb3dzZXJzLCBhIGxvbmctcnVubmluZyBgZGlzdGluY3RgXG4gKiB1c2UgbWlnaHQgcmVzdWx0IGluIG1lbW9yeSBsZWFrcy4gVG8gaGVscCBhbGxldmlhdGUgdGhpcyBpbiBzb21lIHNjZW5hcmlvcywgYW4gb3B0aW9uYWwgYGZsdXNoZXNgIHBhcmFtZXRlciBpcyBhbHNvIHByb3ZpZGVkIHNvXG4gKiB0aGF0IHRoZSBpbnRlcm5hbCBgU2V0YCBjYW4gYmUgXCJmbHVzaGVkXCIsIGJhc2ljYWxseSBjbGVhcmluZyBpdCBvZiB2YWx1ZXMuXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBBIHNpbXBsZSBleGFtcGxlIHdpdGggbnVtYmVyc1xuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBvZiwgZGlzdGluY3QgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBvZigxLCAxLCAyLCAyLCAyLCAxLCAyLCAzLCA0LCAzLCAyLCAxKVxuICogICAucGlwZShkaXN0aW5jdCgpKVxuICogICAuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIE91dHB1dHNcbiAqIC8vIDFcbiAqIC8vIDJcbiAqIC8vIDNcbiAqIC8vIDRcbiAqIGBgYFxuICpcbiAqIEFuIGV4YW1wbGUgdXNpbmcgdGhlIGBrZXlTZWxlY3RvcmAgZnVuY3Rpb25cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIGRpc3RpbmN0IH0gZnJvbSAncnhqcyc7XG4gKlxuICogb2YoXG4gKiAgIHsgYWdlOiA0LCBuYW1lOiAnRm9vJ30sXG4gKiAgIHsgYWdlOiA3LCBuYW1lOiAnQmFyJ30sXG4gKiAgIHsgYWdlOiA1LCBuYW1lOiAnRm9vJ31cbiAqIClcbiAqIC5waXBlKGRpc3RpbmN0KCh7IG5hbWUgfSkgPT4gbmFtZSkpXG4gKiAuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIE91dHB1dHNcbiAqIC8vIHsgYWdlOiA0LCBuYW1lOiAnRm9vJyB9XG4gKiAvLyB7IGFnZTogNywgbmFtZTogJ0JhcicgfVxuICogYGBgXG4gKiBAc2VlIHtAbGluayBkaXN0aW5jdFVudGlsQ2hhbmdlZH1cbiAqIEBzZWUge0BsaW5rIGRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkfVxuICpcbiAqIEBwYXJhbSBrZXlTZWxlY3RvciBPcHRpb25hbCBgZnVuY3Rpb25gIHRvIHNlbGVjdCB3aGljaCB2YWx1ZSB5b3Ugd2FudCB0byBjaGVjayBhcyBkaXN0aW5jdC5cbiAqIEBwYXJhbSBmbHVzaGVzIE9wdGlvbmFsIGBPYnNlcnZhYmxlSW5wdXRgIGZvciBmbHVzaGluZyB0aGUgaW50ZXJuYWwgSGFzaFNldCBvZiB0aGUgb3BlcmF0b3IuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBpdGVtcyBmcm9tIHRoZVxuICogc291cmNlIE9ic2VydmFibGUgd2l0aCBkaXN0aW5jdCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXN0aW5jdDxULCBLPihrZXlTZWxlY3Rvcj86ICh2YWx1ZTogVCkgPT4gSywgZmx1c2hlcz86IE9ic2VydmFibGVJbnB1dDxhbnk+KTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIGNvbnN0IGRpc3RpbmN0S2V5cyA9IG5ldyBTZXQoKTtcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsICh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBrZXlTZWxlY3RvciA/IGtleVNlbGVjdG9yKHZhbHVlKSA6IHZhbHVlO1xuICAgICAgICBpZiAoIWRpc3RpbmN0S2V5cy5oYXMoa2V5KSkge1xuICAgICAgICAgIGRpc3RpbmN0S2V5cy5hZGQoa2V5KTtcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBmbHVzaGVzICYmIGlubmVyRnJvbShmbHVzaGVzKS5zdWJzY3JpYmUoY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsICgpID0+IGRpc3RpbmN0S2V5cy5jbGVhcigpLCBub29wKSk7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlkZW50aXR5IH0gZnJvbSAnLi4vdXRpbC9pZGVudGl0eSc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3RpbmN0VW50aWxDaGFuZ2VkPFQ+KGNvbXBhcmF0b3I/OiAocHJldmlvdXM6IFQsIGN1cnJlbnQ6IFQpID0+IGJvb2xlYW4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD47XG5leHBvcnQgZnVuY3Rpb24gZGlzdGluY3RVbnRpbENoYW5nZWQ8VCwgSz4oXG4gIGNvbXBhcmF0b3I6IChwcmV2aW91czogSywgY3VycmVudDogSykgPT4gYm9vbGVhbixcbiAga2V5U2VsZWN0b3I6ICh2YWx1ZTogVCkgPT4gS1xuKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuXG4vKipcbiAqIFJldHVybnMgYSByZXN1bHQge0BsaW5rIE9ic2VydmFibGV9IHRoYXQgZW1pdHMgYWxsIHZhbHVlcyBwdXNoZWQgYnkgdGhlIHNvdXJjZSBvYnNlcnZhYmxlIGlmIHRoZXlcbiAqIGFyZSBkaXN0aW5jdCBpbiBjb21wYXJpc29uIHRvIHRoZSBsYXN0IHZhbHVlIHRoZSByZXN1bHQgb2JzZXJ2YWJsZSBlbWl0dGVkLlxuICpcbiAqIFdoZW4gcHJvdmlkZWQgd2l0aG91dCBwYXJhbWV0ZXJzIG9yIHdpdGggdGhlIGZpcnN0IHBhcmFtZXRlciAoYHtAbGluayBkaXN0aW5jdFVudGlsQ2hhbmdlZCNjb21wYXJhdG9yIGNvbXBhcmF0b3J9YCksXG4gKiBpdCBiZWhhdmVzIGxpa2UgdGhpczpcbiAqXG4gKiAxLiBJdCB3aWxsIGFsd2F5cyBlbWl0IHRoZSBmaXJzdCB2YWx1ZSBmcm9tIHRoZSBzb3VyY2UuXG4gKiAyLiBGb3IgYWxsIHN1YnNlcXVlbnQgdmFsdWVzIHB1c2hlZCBieSB0aGUgc291cmNlLCB0aGV5IHdpbGwgYmUgY29tcGFyZWQgdG8gdGhlIHByZXZpb3VzbHkgZW1pdHRlZCB2YWx1ZXNcbiAqICAgIHVzaW5nIHRoZSBwcm92aWRlZCBgY29tcGFyYXRvcmAgb3IgYW4gYD09PWAgZXF1YWxpdHkgY2hlY2suXG4gKiAzLiBJZiB0aGUgdmFsdWUgcHVzaGVkIGJ5IHRoZSBzb3VyY2UgaXMgZGV0ZXJtaW5lZCB0byBiZSB1bmVxdWFsIGJ5IHRoaXMgY2hlY2ssIHRoYXQgdmFsdWUgaXMgZW1pdHRlZCBhbmRcbiAqICAgIGJlY29tZXMgdGhlIG5ldyBcInByZXZpb3VzbHkgZW1pdHRlZCB2YWx1ZVwiIGludGVybmFsbHkuXG4gKlxuICogV2hlbiB0aGUgc2Vjb25kIHBhcmFtZXRlciAoYHtAbGluayBkaXN0aW5jdFVudGlsQ2hhbmdlZCNrZXlTZWxlY3RvciBrZXlTZWxlY3Rvcn1gKSBpcyBwcm92aWRlZCwgdGhlIGJlaGF2aW9yXG4gKiBjaGFuZ2VzOlxuICpcbiAqIDEuIEl0IHdpbGwgYWx3YXlzIGVtaXQgdGhlIGZpcnN0IHZhbHVlIGZyb20gdGhlIHNvdXJjZS5cbiAqIDIuIFRoZSBga2V5U2VsZWN0b3JgIHdpbGwgYmUgcnVuIGFnYWluc3QgYWxsIHZhbHVlcywgaW5jbHVkaW5nIHRoZSBmaXJzdCB2YWx1ZS5cbiAqIDMuIEZvciBhbGwgdmFsdWVzIGFmdGVyIHRoZSBmaXJzdCwgdGhlIHNlbGVjdGVkIGtleSB3aWxsIGJlIGNvbXBhcmVkIGFnYWluc3QgdGhlIGtleSBzZWxlY3RlZCBmcm9tXG4gKiAgICB0aGUgcHJldmlvdXNseSBlbWl0dGVkIHZhbHVlIHVzaW5nIHRoZSBgY29tcGFyYXRvcmAuXG4gKiA0LiBJZiB0aGUga2V5cyBhcmUgZGV0ZXJtaW5lZCB0byBiZSB1bmVxdWFsIGJ5IHRoaXMgY2hlY2ssIHRoZSB2YWx1ZSAobm90IHRoZSBrZXkpLCBpcyBlbWl0dGVkXG4gKiAgICBhbmQgdGhlIHNlbGVjdGVkIGtleSBmcm9tIHRoYXQgdmFsdWUgaXMgc2F2ZWQgZm9yIGZ1dHVyZSBjb21wYXJpc29ucyBhZ2FpbnN0IG90aGVyIGtleXMuXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBBIHZlcnkgYmFzaWMgZXhhbXBsZSB3aXRoIG5vIGB7QGxpbmsgZGlzdGluY3RVbnRpbENoYW5nZWQjY29tcGFyYXRvciBjb21wYXJhdG9yfWAuIE5vdGUgdGhhdCBgMWAgaXMgZW1pdHRlZCBtb3JlIHRoYW4gb25jZSxcbiAqIGJlY2F1c2UgaXQncyBkaXN0aW5jdCBpbiBjb21wYXJpc29uIHRvIHRoZSBfcHJldmlvdXNseSBlbWl0dGVkXyB2YWx1ZSxcbiAqIG5vdCBpbiBjb21wYXJpc29uIHRvIF9hbGwgb3RoZXIgZW1pdHRlZCB2YWx1ZXNfLlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBvZiwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBvZigxLCAxLCAxLCAyLCAyLCAyLCAxLCAxLCAzLCAzKVxuICogICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICogICAuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTtcbiAqIC8vIExvZ3M6IDEsIDIsIDEsIDNcbiAqIGBgYFxuICpcbiAqIFdpdGggYSBge0BsaW5rIGRpc3RpbmN0VW50aWxDaGFuZ2VkI2NvbXBhcmF0b3IgY29tcGFyYXRvcn1gLCB5b3UgY2FuIGRvIGN1c3RvbSBjb21wYXJpc29ucy4gTGV0J3Mgc2F5XG4gKiB5b3Ugb25seSB3YW50IHRvIGVtaXQgYSB2YWx1ZSB3aGVuIGFsbCBvZiBpdHMgY29tcG9uZW50cyBoYXZlXG4gKiBjaGFuZ2VkOlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBvZiwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCB0b3RhbGx5RGlmZmVyZW50QnVpbGRzJCA9IG9mKFxuICogICB7IGVuZ2luZVZlcnNpb246ICcxLjEuMCcsIHRyYW5zbWlzc2lvblZlcnNpb246ICcxLjIuMCcgfSxcbiAqICAgeyBlbmdpbmVWZXJzaW9uOiAnMS4xLjAnLCB0cmFuc21pc3Npb25WZXJzaW9uOiAnMS40LjAnIH0sXG4gKiAgIHsgZW5naW5lVmVyc2lvbjogJzEuMy4wJywgdHJhbnNtaXNzaW9uVmVyc2lvbjogJzEuNC4wJyB9LFxuICogICB7IGVuZ2luZVZlcnNpb246ICcxLjMuMCcsIHRyYW5zbWlzc2lvblZlcnNpb246ICcxLjUuMCcgfSxcbiAqICAgeyBlbmdpbmVWZXJzaW9uOiAnMi4wLjAnLCB0cmFuc21pc3Npb25WZXJzaW9uOiAnMS41LjAnIH1cbiAqICkucGlwZShcbiAqICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnIpID0+IHtcbiAqICAgICByZXR1cm4gKFxuICogICAgICAgcHJldi5lbmdpbmVWZXJzaW9uID09PSBjdXJyLmVuZ2luZVZlcnNpb24gfHxcbiAqICAgICAgIHByZXYudHJhbnNtaXNzaW9uVmVyc2lvbiA9PT0gY3Vyci50cmFuc21pc3Npb25WZXJzaW9uXG4gKiAgICAgKTtcbiAqICAgfSlcbiAqICk7XG4gKlxuICogdG90YWxseURpZmZlcmVudEJ1aWxkcyQuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTtcbiAqXG4gKiAvLyBMb2dzOlxuICogLy8geyBlbmdpbmVWZXJzaW9uOiAnMS4xLjAnLCB0cmFuc21pc3Npb25WZXJzaW9uOiAnMS4yLjAnIH1cbiAqIC8vIHsgZW5naW5lVmVyc2lvbjogJzEuMy4wJywgdHJhbnNtaXNzaW9uVmVyc2lvbjogJzEuNC4wJyB9XG4gKiAvLyB7IGVuZ2luZVZlcnNpb246ICcyLjAuMCcsIHRyYW5zbWlzc2lvblZlcnNpb246ICcxLjUuMCcgfVxuICogYGBgXG4gKlxuICogWW91IGNhbiBhbHNvIHByb3ZpZGUgYSBjdXN0b20gYHtAbGluayBkaXN0aW5jdFVudGlsQ2hhbmdlZCNjb21wYXJhdG9yIGNvbXBhcmF0b3J9YCB0byBjaGVjayB0aGF0IGVtaXR0ZWRcbiAqIGNoYW5nZXMgYXJlIG9ubHkgaW4gb25lIGRpcmVjdGlvbi4gTGV0J3Mgc2F5IHlvdSBvbmx5IHdhbnQgdG8gZ2V0XG4gKiB0aGUgbmV4dCByZWNvcmQgdGVtcGVyYXR1cmU6XG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHRlbXBzJCA9IG9mKDMwLCAzMSwgMjAsIDM0LCAzMywgMjksIDM1LCAyMCk7XG4gKlxuICogY29uc3QgcmVjb3JkSGlnaHMkID0gdGVtcHMkLnBpcGUoXG4gKiAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2SGlnaCwgdGVtcCkgPT4ge1xuICogICAgIC8vIElmIHRoZSBjdXJyZW50IHRlbXAgaXMgbGVzcyB0aGFuXG4gKiAgICAgLy8gb3IgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIHJlY29yZCxcbiAqICAgICAvLyB0aGUgcmVjb3JkIGhhc24ndCBjaGFuZ2VkLlxuICogICAgIHJldHVybiB0ZW1wIDw9IHByZXZIaWdoO1xuICogICB9KVxuICogKTtcbiAqXG4gKiByZWNvcmRIaWdocyQuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTtcbiAqIC8vIExvZ3M6IDMwLCAzMSwgMzQsIDM1XG4gKiBgYGBcbiAqXG4gKiBTZWxlY3RpbmcgdXBkYXRlIGV2ZW50cyBvbmx5IHdoZW4gdGhlIGB1cGRhdGVkQnlgIGZpZWxkIHNob3dzXG4gKiB0aGUgYWNjb3VudCBjaGFuZ2VkIGhhbmRzLlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBvZiwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcbiAqXG4gKiAvLyBBIHN0cmVhbSBvZiB1cGRhdGVzIHRvIGEgZ2l2ZW4gYWNjb3VudFxuICogY29uc3QgYWNjb3VudFVwZGF0ZXMkID0gb2YoXG4gKiAgIHsgdXBkYXRlZEJ5OiAnYmxlc2gnLCBkYXRhOiBbXSB9LFxuICogICB7IHVwZGF0ZWRCeTogJ2JsZXNoJywgZGF0YTogW10gfSxcbiAqICAgeyB1cGRhdGVkQnk6ICduY2phbWllc29uJywgZGF0YTogW10gfSxcbiAqICAgeyB1cGRhdGVkQnk6ICduY2phbWllc29uJywgZGF0YTogW10gfSxcbiAqICAgeyB1cGRhdGVkQnk6ICdibGVzaCcsIGRhdGE6IFtdIH1cbiAqICk7XG4gKlxuICogLy8gV2Ugb25seSB3YW50IHRoZSBldmVudHMgd2hlcmUgaXQgY2hhbmdlZCBoYW5kc1xuICogY29uc3QgY2hhbmdlZEhhbmRzJCA9IGFjY291bnRVcGRhdGVzJC5waXBlKFxuICogICBkaXN0aW5jdFVudGlsQ2hhbmdlZCh1bmRlZmluZWQsIHVwZGF0ZSA9PiB1cGRhdGUudXBkYXRlZEJ5KVxuICogKTtcbiAqXG4gKiBjaGFuZ2VkSGFuZHMkLnN1YnNjcmliZShjb25zb2xlLmxvZyk7XG4gKiAvLyBMb2dzOlxuICogLy8geyB1cGRhdGVkQnk6ICdibGVzaCcsIGRhdGE6IEFycmF5WzBdIH1cbiAqIC8vIHsgdXBkYXRlZEJ5OiAnbmNqYW1pZXNvbicsIGRhdGE6IEFycmF5WzBdIH1cbiAqIC8vIHsgdXBkYXRlZEJ5OiAnYmxlc2gnLCBkYXRhOiBBcnJheVswXSB9XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBkaXN0aW5jdH1cbiAqIEBzZWUge0BsaW5rIGRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkfVxuICpcbiAqIEBwYXJhbSBjb21wYXJhdG9yIEEgZnVuY3Rpb24gdXNlZCB0byBjb21wYXJlIHRoZSBwcmV2aW91cyBhbmQgY3VycmVudCBrZXlzIGZvclxuICogZXF1YWxpdHkuIERlZmF1bHRzIHRvIGEgYD09PWAgY2hlY2suXG4gKiBAcGFyYW0ga2V5U2VsZWN0b3IgVXNlZCB0byBzZWxlY3QgYSBrZXkgdmFsdWUgdG8gYmUgcGFzc2VkIHRvIHRoZSBgY29tcGFyYXRvcmAuXG4gKlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgaXRlbXMgZnJvbSB0aGVcbiAqIHNvdXJjZSBPYnNlcnZhYmxlIHdpdGggZGlzdGluY3QgdmFsdWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlzdGluY3RVbnRpbENoYW5nZWQ8VCwgSz4oXG4gIGNvbXBhcmF0b3I/OiAocHJldmlvdXM6IEssIGN1cnJlbnQ6IEspID0+IGJvb2xlYW4sXG4gIGtleVNlbGVjdG9yOiAodmFsdWU6IFQpID0+IEsgPSBpZGVudGl0eSBhcyAodmFsdWU6IFQpID0+IEtcbik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIC8vIFdlJ3ZlIGJlZW4gYWxsb3dpbmcgYG51bGxgIGRvIGJlIHBhc3NlZCBhcyB0aGUgYGNvbXBhcmVgLCBzbyB3ZSBjYW4ndCBkb1xuICAvLyBhIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBwYXJhbWV0ZXIsIGJlY2F1c2UgdGhhdCB3aWxsIG9ubHkgd29ya1xuICAvLyBmb3IgYHVuZGVmaW5lZGAuXG4gIGNvbXBhcmF0b3IgPSBjb21wYXJhdG9yID8/IGRlZmF1bHRDb21wYXJlO1xuXG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICAvLyBUaGUgcHJldmlvdXMga2V5LCB1c2VkIHRvIGNvbXBhcmUgYWdhaW5zdCBrZXlzIHNlbGVjdGVkXG4gICAgLy8gZnJvbSBuZXcgYXJyaXZhbHMgdG8gZGV0ZXJtaW5lIFwiZGlzdGluY3RpdmVuZXNzXCIuXG4gICAgbGV0IHByZXZpb3VzS2V5OiBLO1xuICAgIC8vIFdoZXRoZXIgb3Igbm90IHRoaXMgaXMgdGhlIGZpcnN0IHZhbHVlIHdlJ3ZlIGdvdHRlbi5cbiAgICBsZXQgZmlyc3QgPSB0cnVlO1xuXG4gICAgc291cmNlLnN1YnNjcmliZShcbiAgICAgIGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCAodmFsdWUpID0+IHtcbiAgICAgICAgLy8gV2UgYWx3YXlzIGNhbGwgdGhlIGtleSBzZWxlY3Rvci5cbiAgICAgICAgY29uc3QgY3VycmVudEtleSA9IGtleVNlbGVjdG9yKHZhbHVlKTtcblxuICAgICAgICAvLyBJZiBpdCdzIHRoZSBmaXJzdCB2YWx1ZSwgd2UgYWx3YXlzIGVtaXQgaXQuXG4gICAgICAgIC8vIE90aGVyd2lzZSwgd2UgY29tcGFyZSB0aGlzIGtleSB0byB0aGUgcHJldmlvdXMga2V5LCBhbmRcbiAgICAgICAgLy8gaWYgdGhlIGNvbXBhcmVyIHJldHVybnMgZmFsc2UsIHdlIGVtaXQuXG4gICAgICAgIGlmIChmaXJzdCB8fCAhY29tcGFyYXRvciEocHJldmlvdXNLZXksIGN1cnJlbnRLZXkpKSB7XG4gICAgICAgICAgLy8gVXBkYXRlIG91ciBzdGF0ZSAqYmVmb3JlKiB3ZSBlbWl0IHRoZSB2YWx1ZVxuICAgICAgICAgIC8vIGFzIGVtaXNzaW9uIGNhbiBiZSB0aGUgc291cmNlIG9mIHJlLWVudHJhbnQgY29kZVxuICAgICAgICAgIC8vIGluIGZ1bmN0aW9uYWwgbGlicmFyaWVzIGxpa2UgdGhpcy4gV2Ugb25seSByZWFsbHlcbiAgICAgICAgICAvLyBuZWVkIHRvIGRvIHRoaXMgaWYgaXQncyB0aGUgZmlyc3QgdmFsdWUsIG9yIGlmIHRoZVxuICAgICAgICAgIC8vIGtleSB3ZSdyZSB0cmFja2luZyBpbiBwcmV2aW91cyBuZWVkcyB0byBjaGFuZ2UuXG4gICAgICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICAgICAgICBwcmV2aW91c0tleSA9IGN1cnJlbnRLZXk7XG5cbiAgICAgICAgICAvLyBFbWl0IHRoZSB2YWx1ZSFcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0Q29tcGFyZShhOiBhbnksIGI6IGFueSkge1xuICByZXR1cm4gYSA9PT0gYjtcbn1cbiIsICJpbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJy4vZGlzdGluY3RVbnRpbENoYW5nZWQnO1xuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGlzdGluY3RVbnRpbEtleUNoYW5nZWQ8VD4oa2V5OiBrZXlvZiBUKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPihrZXk6IEssIGNvbXBhcmU6ICh4OiBUW0tdLCB5OiBUW0tdKSA9PiBib29sZWFuKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuXG4vKipcbiAqIFJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFsbCBpdGVtcyBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB0aGF0XG4gKiBhcmUgZGlzdGluY3QgYnkgY29tcGFyaXNvbiBmcm9tIHRoZSBwcmV2aW91cyBpdGVtLCB1c2luZyBhIHByb3BlcnR5IGFjY2Vzc2VkIGJ5XG4gKiB1c2luZyB0aGUga2V5IHByb3ZpZGVkIHRvIGNoZWNrIGlmIHRoZSB0d28gaXRlbXMgYXJlIGRpc3RpbmN0LlxuICpcbiAqIElmIGEgY29tcGFyYXRvciBmdW5jdGlvbiBpcyBwcm92aWRlZCwgdGhlbiBpdCB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBpdGVtIHRvXG4gKiB0ZXN0IGZvciB3aGV0aGVyIHRoYXQgdmFsdWUgc2hvdWxkIGJlIGVtaXR0ZWQgb3Igbm90LlxuICpcbiAqIElmIGEgY29tcGFyYXRvciBmdW5jdGlvbiBpcyBub3QgcHJvdmlkZWQsIGFuIGVxdWFsaXR5IGNoZWNrIGlzIHVzZWQgYnkgZGVmYXVsdC5cbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIEFuIGV4YW1wbGUgY29tcGFyaW5nIHRoZSBuYW1lIG9mIHBlcnNvbnNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIGRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG4gKlxuICogb2YoXG4gKiAgIHsgYWdlOiA0LCBuYW1lOiAnRm9vJyB9LFxuICogICB7IGFnZTogNywgbmFtZTogJ0JhcicgfSxcbiAqICAgeyBhZ2U6IDUsIG5hbWU6ICdGb28nIH0sXG4gKiAgIHsgYWdlOiA2LCBuYW1lOiAnRm9vJyB9XG4gKiApLnBpcGUoXG4gKiAgIGRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkKCduYW1lJylcbiAqIClcbiAqIC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKlxuICogLy8gZGlzcGxheXM6XG4gKiAvLyB7IGFnZTogNCwgbmFtZTogJ0ZvbycgfVxuICogLy8geyBhZ2U6IDcsIG5hbWU6ICdCYXInIH1cbiAqIC8vIHsgYWdlOiA1LCBuYW1lOiAnRm9vJyB9XG4gKiBgYGBcbiAqXG4gKiBBbiBleGFtcGxlIGNvbXBhcmluZyB0aGUgZmlyc3QgbGV0dGVycyBvZiB0aGUgbmFtZVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBvZiwgZGlzdGluY3RVbnRpbEtleUNoYW5nZWQgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBvZihcbiAqICAgeyBhZ2U6IDQsIG5hbWU6ICdGb28xJyB9LFxuICogICB7IGFnZTogNywgbmFtZTogJ0JhcicgfSxcbiAqICAgeyBhZ2U6IDUsIG5hbWU6ICdGb28yJyB9LFxuICogICB7IGFnZTogNiwgbmFtZTogJ0ZvbzMnIH1cbiAqICkucGlwZShcbiAqICAgZGlzdGluY3RVbnRpbEtleUNoYW5nZWQoJ25hbWUnLCAoeCwgeSkgPT4geC5zdWJzdHJpbmcoMCwgMykgPT09IHkuc3Vic3RyaW5nKDAsIDMpKVxuICogKVxuICogLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqXG4gKiAvLyBkaXNwbGF5czpcbiAqIC8vIHsgYWdlOiA0LCBuYW1lOiAnRm9vMScgfVxuICogLy8geyBhZ2U6IDcsIG5hbWU6ICdCYXInIH1cbiAqIC8vIHsgYWdlOiA1LCBuYW1lOiAnRm9vMicgfVxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgZGlzdGluY3R9XG4gKiBAc2VlIHtAbGluayBkaXN0aW5jdFVudGlsQ2hhbmdlZH1cbiAqXG4gKiBAcGFyYW0ga2V5IFN0cmluZyBrZXkgZm9yIG9iamVjdCBwcm9wZXJ0eSBsb29rdXAgb24gZWFjaCBpdGVtLlxuICogQHBhcmFtIGNvbXBhcmUgT3B0aW9uYWwgY29tcGFyaXNvbiBmdW5jdGlvbiBjYWxsZWQgdG8gdGVzdCBpZiBhbiBpdGVtIGlzIGRpc3RpbmN0XG4gKiBmcm9tIHRoZSBwcmV2aW91cyBpdGVtIGluIHRoZSBzb3VyY2UuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBpdGVtcyBmcm9tIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUgd2l0aCBkaXN0aW5jdCB2YWx1ZXMgYmFzZWQgb24gdGhlIGtleSBzcGVjaWZpZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZDxULCBLIGV4dGVuZHMga2V5b2YgVD4oXG4gIGtleTogSyxcbiAgY29tcGFyZT86ICh4OiBUW0tdLCB5OiBUW0tdKSA9PiBib29sZWFuXG4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gZGlzdGluY3RVbnRpbENoYW5nZWQoKHg6IFQsIHk6IFQpID0+IChjb21wYXJlID8gY29tcGFyZSh4W2tleV0sIHlba2V5XSkgOiB4W2tleV0gPT09IHlba2V5XSkpO1xufVxuIiwgImltcG9ydCB7IEVtcHR5RXJyb3IgfSBmcm9tICcuLi91dGlsL0VtcHR5RXJyb3InO1xuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5cbi8qKlxuICogSWYgdGhlIHNvdXJjZSBvYnNlcnZhYmxlIGNvbXBsZXRlcyB3aXRob3V0IGVtaXR0aW5nIGEgdmFsdWUsIGl0IHdpbGwgZW1pdFxuICogYW4gZXJyb3IuIFRoZSBlcnJvciB3aWxsIGJlIGNyZWF0ZWQgYXQgdGhhdCB0aW1lIGJ5IHRoZSBvcHRpb25hbFxuICogYGVycm9yRmFjdG9yeWAgYXJndW1lbnQsIG90aGVyd2lzZSwgdGhlIGVycm9yIHdpbGwgYmUge0BsaW5rIEVtcHR5RXJyb3J9LlxuICpcbiAqICFbXSh0aHJvd0lmRW1wdHkucG5nKVxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBUaHJvdyBhbiBlcnJvciBpZiB0aGUgZG9jdW1lbnQgd2Fzbid0IGNsaWNrZWQgd2l0aGluIDEgc2Vjb25kXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgdGFrZVVudGlsLCB0aW1lciwgdGhyb3dJZkVtcHR5IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2skID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqXG4gKiBjbGljayQucGlwZShcbiAqICAgdGFrZVVudGlsKHRpbWVyKDEwMDApKSxcbiAqICAgdGhyb3dJZkVtcHR5KCgpID0+IG5ldyBFcnJvcignVGhlIGRvY3VtZW50IHdhcyBub3QgY2xpY2tlZCB3aXRoaW4gMSBzZWNvbmQnKSlcbiAqIClcbiAqIC5zdWJzY3JpYmUoe1xuICogICBuZXh0KCkge1xuICogICAgY29uc29sZS5sb2coJ1RoZSBkb2N1bWVudCB3YXMgY2xpY2tlZCcpO1xuICogICB9LFxuICogICBlcnJvcihlcnIpIHtcbiAqICAgICBjb25zb2xlLmVycm9yKGVyci5tZXNzYWdlKTtcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gZXJyb3JGYWN0b3J5IEEgZmFjdG9yeSBmdW5jdGlvbiBjYWxsZWQgdG8gcHJvZHVjZSB0aGVcbiAqIGVycm9yIHRvIGJlIHRocm93biB3aGVuIHRoZSBzb3VyY2Ugb2JzZXJ2YWJsZSBjb21wbGV0ZXMgd2l0aG91dCBlbWl0dGluZyBhXG4gKiB2YWx1ZS5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IHRocm93cyBhbiBlcnJvciBpZiB0aGVcbiAqIHNvdXJjZSBPYnNlcnZhYmxlIGNvbXBsZXRlZCB3aXRob3V0IGVtaXR0aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dJZkVtcHR5PFQ+KGVycm9yRmFjdG9yeTogKCkgPT4gYW55ID0gZGVmYXVsdEVycm9yRmFjdG9yeSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBsZXQgaGFzVmFsdWUgPSBmYWxzZTtcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4gKGhhc1ZhbHVlID8gc3Vic2NyaWJlci5jb21wbGV0ZSgpIDogc3Vic2NyaWJlci5lcnJvcihlcnJvckZhY3RvcnkoKSkpXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRFcnJvckZhY3RvcnkoKSB7XG4gIHJldHVybiBuZXcgRW1wdHlFcnJvcigpO1xufVxuIiwgImltcG9ydCB7IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yIH0gZnJvbSAnLi4vdXRpbC9Bcmd1bWVudE91dE9mUmFuZ2VFcnJvcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAnLi9maWx0ZXInO1xuaW1wb3J0IHsgdGhyb3dJZkVtcHR5IH0gZnJvbSAnLi90aHJvd0lmRW1wdHknO1xuaW1wb3J0IHsgZGVmYXVsdElmRW1wdHkgfSBmcm9tICcuL2RlZmF1bHRJZkVtcHR5JztcbmltcG9ydCB7IHRha2UgfSBmcm9tICcuL3Rha2UnO1xuXG4vKipcbiAqIEVtaXRzIHRoZSBzaW5nbGUgdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBgaW5kZXhgIGluIGEgc2VxdWVuY2Ugb2YgZW1pc3Npb25zXG4gKiBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZS5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+RW1pdHMgb25seSB0aGUgaS10aCB2YWx1ZSwgdGhlbiBjb21wbGV0ZXMuPC9zcGFuPlxuICpcbiAqICFbXShlbGVtZW50QXQucG5nKVxuICpcbiAqIGBlbGVtZW50QXRgIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBpdGVtIGF0IHRoZSBzcGVjaWZpZWRcbiAqIGBpbmRleGAgaW4gdGhlIHNvdXJjZSBPYnNlcnZhYmxlLCBvciBhIGRlZmF1bHQgdmFsdWUgaWYgdGhhdCBgaW5kZXhgIGlzIG91dFxuICogb2YgcmFuZ2UgYW5kIHRoZSBgZGVmYXVsdGAgYXJndW1lbnQgaXMgcHJvdmlkZWQuIElmIHRoZSBgZGVmYXVsdGAgYXJndW1lbnQgaXNcbiAqIG5vdCBnaXZlbiBhbmQgdGhlIGBpbmRleGAgaXMgb3V0IG9mIHJhbmdlLCB0aGUgb3V0cHV0IE9ic2VydmFibGUgd2lsbCBlbWl0IGFuXG4gKiBgQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JgIGVycm9yLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBFbWl0IG9ubHkgdGhlIHRoaXJkIGNsaWNrIGV2ZW50XG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgZWxlbWVudEF0IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGNsaWNrcy5waXBlKGVsZW1lbnRBdCgyKSk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIFJlc3VsdHMgaW46XG4gKiAvLyBjbGljayAxID0gbm90aGluZ1xuICogLy8gY2xpY2sgMiA9IG5vdGhpbmdcbiAqIC8vIGNsaWNrIDMgPSBNb3VzZUV2ZW50IG9iamVjdCBsb2dnZWQgdG8gY29uc29sZVxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgZmlyc3R9XG4gKiBAc2VlIHtAbGluayBsYXN0fVxuICogQHNlZSB7QGxpbmsgc2tpcH1cbiAqIEBzZWUge0BsaW5rIHNpbmdsZX1cbiAqIEBzZWUge0BsaW5rIHRha2V9XG4gKlxuICogQHRocm93cyB7QXJndW1lbnRPdXRPZlJhbmdlRXJyb3J9IFdoZW4gdXNpbmcgYGVsZW1lbnRBdChpKWAsIGl0IGRlbGl2ZXJzIGFuXG4gKiBgQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JgIHRvIHRoZSBPYnNlcnZlcidzIGBlcnJvcmAgY2FsbGJhY2sgaWYgYGkgPCAwYCBvciB0aGVcbiAqIE9ic2VydmFibGUgaGFzIGNvbXBsZXRlZCBiZWZvcmUgZW1pdHRpbmcgdGhlIGktdGggYG5leHRgIG5vdGlmaWNhdGlvbi5cbiAqXG4gKiBAcGFyYW0gaW5kZXggSXMgdGhlIG51bWJlciBgaWAgZm9yIHRoZSBpLXRoIHNvdXJjZSBlbWlzc2lvbiB0aGF0IGhhcyBoYXBwZW5lZFxuICogc2luY2UgdGhlIHN1YnNjcmlwdGlvbiwgc3RhcnRpbmcgZnJvbSB0aGUgbnVtYmVyIGAwYC5cbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgVGhlIGRlZmF1bHQgdmFsdWUgcmV0dXJuZWQgZm9yIG1pc3NpbmcgaW5kaWNlcy5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgc2luZ2xlIGl0ZW0sIGlmXG4gKiBpdCBpcyBmb3VuZC4gT3RoZXJ3aXNlLCBpdCB3aWxsIGVtaXQgdGhlIGRlZmF1bHQgdmFsdWUgaWYgZ2l2ZW4uIElmIG5vdCwgaXRcbiAqIGVtaXRzIGFuIGVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWxlbWVudEF0PFQsIEQgPSBUPihpbmRleDogbnVtYmVyLCBkZWZhdWx0VmFsdWU/OiBEKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUIHwgRD4ge1xuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgdGhyb3cgbmV3IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yKCk7XG4gIH1cbiAgY29uc3QgaGFzRGVmYXVsdFZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA+PSAyO1xuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT5cbiAgICBzb3VyY2UucGlwZShcbiAgICAgIGZpbHRlcigodiwgaSkgPT4gaSA9PT0gaW5kZXgpLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIGhhc0RlZmF1bHRWYWx1ZSA/IGRlZmF1bHRJZkVtcHR5KGRlZmF1bHRWYWx1ZSEpIDogdGhyb3dJZkVtcHR5KCgpID0+IG5ldyBBcmd1bWVudE91dE9mUmFuZ2VFcnJvcigpKVxuICAgICk7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgRmFsc3ksIE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5PFQ+KHByZWRpY2F0ZTogQm9vbGVhbkNvbnN0cnVjdG9yKTogT3BlcmF0b3JGdW5jdGlvbjxULCBFeGNsdWRlPFQsIEZhbHN5PiBleHRlbmRzIG5ldmVyID8gZmFsc2UgOiBib29sZWFuPjtcbi8qKiBAZGVwcmVjYXRlZCBVc2UgYSBjbG9zdXJlIGluc3RlYWQgb2YgYSBgdGhpc0FyZ2AuIFNpZ25hdHVyZXMgYWNjZXB0aW5nIGEgYHRoaXNBcmdgIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmVyeTxUPihcbiAgcHJlZGljYXRlOiBCb29sZWFuQ29uc3RydWN0b3IsXG4gIHRoaXNBcmc6IGFueVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBFeGNsdWRlPFQsIEZhbHN5PiBleHRlbmRzIG5ldmVyID8gZmFsc2UgOiBib29sZWFuPjtcbi8qKiBAZGVwcmVjYXRlZCBVc2UgYSBjbG9zdXJlIGluc3RlYWQgb2YgYSBgdGhpc0FyZ2AuIFNpZ25hdHVyZXMgYWNjZXB0aW5nIGEgYHRoaXNBcmdgIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmVyeTxULCBBPihcbiAgcHJlZGljYXRlOiAodGhpczogQSwgdmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gYm9vbGVhbixcbiAgdGhpc0FyZzogQVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBib29sZWFuPjtcbmV4cG9ydCBmdW5jdGlvbiBldmVyeTxUPihwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBib29sZWFuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBib29sZWFuPjtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGV0aGVyIG9yIG5vdCBldmVyeSBpdGVtIG9mIHRoZSBzb3VyY2Ugc2F0aXNmaWVzIHRoZSBjb25kaXRpb24gc3BlY2lmaWVkLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5JZiBhbGwgdmFsdWVzIHBhc3MgcHJlZGljYXRlIGJlZm9yZSB0aGUgc291cmNlIGNvbXBsZXRlcywgZW1pdHMgdHJ1ZSBiZWZvcmUgY29tcGxldGlvbixcbiAqIG90aGVyd2lzZSBlbWl0IGZhbHNlLCB0aGVuIGNvbXBsZXRlLjwvc3Bhbj5cbiAqXG4gKiAhW10oZXZlcnkucG5nKVxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBBIHNpbXBsZSBleGFtcGxlIGVtaXR0aW5nIHRydWUgaWYgYWxsIGVsZW1lbnRzIGFyZSBsZXNzIHRoYW4gNSwgZmFsc2Ugb3RoZXJ3aXNlXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBldmVyeSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIG9mKDEsIDIsIDMsIDQsIDUsIDYpXG4gKiAgIC5waXBlKGV2ZXJ5KHggPT4geCA8IDUpKVxuICogICAuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpOyAvLyAtPiBmYWxzZVxuICogYGBgXG4gKlxuICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIGZvciBkZXRlcm1pbmluZyBpZiBhbiBpdGVtIG1lZXRzIGEgc3BlY2lmaWVkIGNvbmRpdGlvbi5cbiAqIEBwYXJhbSB0aGlzQXJnIE9wdGlvbmFsIG9iamVjdCB0byB1c2UgZm9yIGB0aGlzYCBpbiB0aGUgY2FsbGJhY2suXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgb2YgYm9vbGVhbnMgdGhhdCBkZXRlcm1pbmVzIGlmXG4gKiBhbGwgaXRlbXMgb2YgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIG1lZXQgdGhlIGNvbmRpdGlvbiBzcGVjaWZpZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmVyeTxUPihcbiAgcHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gYm9vbGVhbixcbiAgdGhpc0FyZz86IGFueVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBib29sZWFuPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGlmICghcHJlZGljYXRlLmNhbGwodGhpc0FyZywgdmFsdWUsIGluZGV4KyssIHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHRydWUpO1xuICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IFN1YnNjcmliZXIgfSBmcm9tICcuLi9TdWJzY3JpYmVyJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCwgT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2ZWRWYWx1ZU9mIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAnLi9tYXAnO1xuaW1wb3J0IHsgaW5uZXJGcm9tIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9pbm5lckZyb20nO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5cbi8qIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4aGF1c3RNYXA8VCwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihcbiAgcHJvamVjdDogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiBPXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIE9ic2VydmVkVmFsdWVPZjxPPj47XG4vKiogQGRlcHJlY2F0ZWQgVGhlIGByZXN1bHRTZWxlY3RvcmAgcGFyYW1ldGVyIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVXNlIGFuIGlubmVyIGBtYXBgIGluc3RlYWQuIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL3Jlc3VsdFNlbGVjdG9yICovXG5leHBvcnQgZnVuY3Rpb24gZXhoYXVzdE1hcDxULCBPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PGFueT4+KFxuICBwcm9qZWN0OiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IE8sXG4gIHJlc3VsdFNlbGVjdG9yOiB1bmRlZmluZWRcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgT2JzZXJ2ZWRWYWx1ZU9mPE8+Pjtcbi8qKiBAZGVwcmVjYXRlZCBUaGUgYHJlc3VsdFNlbGVjdG9yYCBwYXJhbWV0ZXIgd2lsbCBiZSByZW1vdmVkIGluIHY4LiBVc2UgYW4gaW5uZXIgYG1hcGAgaW5zdGVhZC4gRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvcmVzdWx0U2VsZWN0b3IgKi9cbmV4cG9ydCBmdW5jdGlvbiBleGhhdXN0TWFwPFQsIEksIFI+KFxuICBwcm9qZWN0OiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IE9ic2VydmFibGVJbnB1dDxJPixcbiAgcmVzdWx0U2VsZWN0b3I6IChvdXRlclZhbHVlOiBULCBpbm5lclZhbHVlOiBJLCBvdXRlckluZGV4OiBudW1iZXIsIGlubmVySW5kZXg6IG51bWJlcikgPT4gUlxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBSPjtcbi8qIHRzbGludDplbmFibGU6bWF4LWxpbmUtbGVuZ3RoICovXG5cbi8qKlxuICogUHJvamVjdHMgZWFjaCBzb3VyY2UgdmFsdWUgdG8gYW4gT2JzZXJ2YWJsZSB3aGljaCBpcyBtZXJnZWQgaW4gdGhlIG91dHB1dFxuICogT2JzZXJ2YWJsZSBvbmx5IGlmIHRoZSBwcmV2aW91cyBwcm9qZWN0ZWQgT2JzZXJ2YWJsZSBoYXMgY29tcGxldGVkLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5NYXBzIGVhY2ggdmFsdWUgdG8gYW4gT2JzZXJ2YWJsZSwgdGhlbiBmbGF0dGVucyBhbGwgb2ZcbiAqIHRoZXNlIGlubmVyIE9ic2VydmFibGVzIHVzaW5nIHtAbGluayBleGhhdXN0QWxsfS48L3NwYW4+XG4gKlxuICogIVtdKGV4aGF1c3RNYXAucG5nKVxuICpcbiAqIFJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGl0ZW1zIGJhc2VkIG9uIGFwcGx5aW5nIGEgZnVuY3Rpb24gdGhhdCB5b3VcbiAqIHN1cHBseSB0byBlYWNoIGl0ZW0gZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUsIHdoZXJlIHRoYXQgZnVuY3Rpb25cbiAqIHJldHVybnMgYW4gKHNvLWNhbGxlZCBcImlubmVyXCIpIE9ic2VydmFibGUuIFdoZW4gaXQgcHJvamVjdHMgYSBzb3VyY2UgdmFsdWUgdG9cbiAqIGFuIE9ic2VydmFibGUsIHRoZSBvdXRwdXQgT2JzZXJ2YWJsZSBiZWdpbnMgZW1pdHRpbmcgdGhlIGl0ZW1zIGVtaXR0ZWQgYnlcbiAqIHRoYXQgcHJvamVjdGVkIE9ic2VydmFibGUuIEhvd2V2ZXIsIGBleGhhdXN0TWFwYCBpZ25vcmVzIGV2ZXJ5IG5ldyBwcm9qZWN0ZWRcbiAqIE9ic2VydmFibGUgaWYgdGhlIHByZXZpb3VzIHByb2plY3RlZCBPYnNlcnZhYmxlIGhhcyBub3QgeWV0IGNvbXBsZXRlZC4gT25jZVxuICogdGhhdCBvbmUgY29tcGxldGVzLCBpdCB3aWxsIGFjY2VwdCBhbmQgZmxhdHRlbiB0aGUgbmV4dCBwcm9qZWN0ZWQgT2JzZXJ2YWJsZVxuICogYW5kIHJlcGVhdCB0aGlzIHByb2Nlc3MuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIFJ1biBhIGZpbml0ZSB0aW1lciBmb3IgZWFjaCBjbGljaywgb25seSBpZiB0aGVyZSBpcyBubyBjdXJyZW50bHkgYWN0aXZlIHRpbWVyXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgZXhoYXVzdE1hcCwgaW50ZXJ2YWwsIHRha2UgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgcmVzdWx0ID0gY2xpY2tzLnBpcGUoXG4gKiAgIGV4aGF1c3RNYXAoKCkgPT4gaW50ZXJ2YWwoMTAwMCkucGlwZSh0YWtlKDUpKSlcbiAqICk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgY29uY2F0TWFwfVxuICogQHNlZSB7QGxpbmsgZXhoYXVzdH1cbiAqIEBzZWUge0BsaW5rIG1lcmdlTWFwfVxuICogQHNlZSB7QGxpbmsgc3dpdGNoTWFwfVxuICpcbiAqIEBwYXJhbSBwcm9qZWN0IEEgZnVuY3Rpb24gdGhhdCwgd2hlbiBhcHBsaWVkIHRvIGFuIGl0ZW0gZW1pdHRlZCBieSB0aGUgc291cmNlXG4gKiBPYnNlcnZhYmxlLCByZXR1cm5zIGFuIE9ic2VydmFibGUuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgY29udGFpbmluZyBwcm9qZWN0ZWRcbiAqIE9ic2VydmFibGVzIG9mIGVhY2ggaXRlbSBvZiB0aGUgc291cmNlLCBpZ25vcmluZyBwcm9qZWN0ZWQgT2JzZXJ2YWJsZXMgdGhhdFxuICogc3RhcnQgYmVmb3JlIHRoZWlyIHByZWNlZGluZyBPYnNlcnZhYmxlIGhhcyBjb21wbGV0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGhhdXN0TWFwPFQsIFIsIE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8YW55Pj4oXG4gIHByb2plY3Q6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gTyxcbiAgcmVzdWx0U2VsZWN0b3I/OiAob3V0ZXJWYWx1ZTogVCwgaW5uZXJWYWx1ZTogT2JzZXJ2ZWRWYWx1ZU9mPE8+LCBvdXRlckluZGV4OiBudW1iZXIsIGlubmVySW5kZXg6IG51bWJlcikgPT4gUlxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZlZFZhbHVlT2Y8Tz4gfCBSPiB7XG4gIGlmIChyZXN1bHRTZWxlY3Rvcikge1xuICAgIC8vIERFUFJFQ0FURUQgUEFUSFxuICAgIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PlxuICAgICAgc291cmNlLnBpcGUoZXhoYXVzdE1hcCgoYSwgaSkgPT4gaW5uZXJGcm9tKHByb2plY3QoYSwgaSkpLnBpcGUobWFwKChiOiBhbnksIGlpOiBhbnkpID0+IHJlc3VsdFNlbGVjdG9yKGEsIGIsIGksIGlpKSkpKSk7XG4gIH1cbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgbGV0IGlubmVyU3ViOiBTdWJzY3JpYmVyPFQ+IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGlzQ29tcGxldGUgPSBmYWxzZTtcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAob3V0ZXJWYWx1ZSkgPT4ge1xuICAgICAgICAgIGlmICghaW5uZXJTdWIpIHtcbiAgICAgICAgICAgIGlubmVyU3ViID0gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIHVuZGVmaW5lZCwgKCkgPT4ge1xuICAgICAgICAgICAgICBpbm5lclN1YiA9IG51bGw7XG4gICAgICAgICAgICAgIGlzQ29tcGxldGUgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpbm5lckZyb20ocHJvamVjdChvdXRlclZhbHVlLCBpbmRleCsrKSkuc3Vic2NyaWJlKGlubmVyU3ViKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpc0NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAhaW5uZXJTdWIgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZUlucHV0LCBPYnNlcnZlZFZhbHVlT2YgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBleGhhdXN0TWFwIH0gZnJvbSAnLi9leGhhdXN0TWFwJztcbmltcG9ydCB7IGlkZW50aXR5IH0gZnJvbSAnLi4vdXRpbC9pZGVudGl0eSc7XG5cbi8qKlxuICogQ29udmVydHMgYSBoaWdoZXItb3JkZXIgT2JzZXJ2YWJsZSBpbnRvIGEgZmlyc3Qtb3JkZXIgT2JzZXJ2YWJsZSBieSBkcm9wcGluZ1xuICogaW5uZXIgT2JzZXJ2YWJsZXMgd2hpbGUgdGhlIHByZXZpb3VzIGlubmVyIE9ic2VydmFibGUgaGFzIG5vdCB5ZXQgY29tcGxldGVkLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5GbGF0dGVucyBhbiBPYnNlcnZhYmxlLW9mLU9ic2VydmFibGVzIGJ5IGRyb3BwaW5nIHRoZVxuICogbmV4dCBpbm5lciBPYnNlcnZhYmxlcyB3aGlsZSB0aGUgY3VycmVudCBpbm5lciBpcyBzdGlsbCBleGVjdXRpbmcuPC9zcGFuPlxuICpcbiAqICFbXShleGhhdXN0QWxsLnN2ZylcbiAqXG4gKiBgZXhoYXVzdEFsbGAgc3Vic2NyaWJlcyB0byBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgT2JzZXJ2YWJsZXMsIGFsc28ga25vd24gYXMgYVxuICogaGlnaGVyLW9yZGVyIE9ic2VydmFibGUuIEVhY2ggdGltZSBpdCBvYnNlcnZlcyBvbmUgb2YgdGhlc2UgZW1pdHRlZCBpbm5lclxuICogT2JzZXJ2YWJsZXMsIHRoZSBvdXRwdXQgT2JzZXJ2YWJsZSBiZWdpbnMgZW1pdHRpbmcgdGhlIGl0ZW1zIGVtaXR0ZWQgYnkgdGhhdFxuICogaW5uZXIgT2JzZXJ2YWJsZS4gU28gZmFyLCBpdCBiZWhhdmVzIGxpa2Uge0BsaW5rIG1lcmdlQWxsfS4gSG93ZXZlcixcbiAqIGBleGhhdXN0QWxsYCBpZ25vcmVzIGV2ZXJ5IG5ldyBpbm5lciBPYnNlcnZhYmxlIGlmIHRoZSBwcmV2aW91cyBPYnNlcnZhYmxlIGhhc1xuICogbm90IHlldCBjb21wbGV0ZWQuIE9uY2UgdGhhdCBvbmUgY29tcGxldGVzLCBpdCB3aWxsIGFjY2VwdCBhbmQgZmxhdHRlbiB0aGVcbiAqIG5leHQgaW5uZXIgT2JzZXJ2YWJsZSBhbmQgcmVwZWF0IHRoaXMgcHJvY2Vzcy5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogUnVuIGEgZmluaXRlIHRpbWVyIGZvciBlYWNoIGNsaWNrLCBvbmx5IGlmIHRoZXJlIGlzIG5vIGN1cnJlbnRseSBhY3RpdmUgdGltZXJcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBtYXAsIGludGVydmFsLCB0YWtlLCBleGhhdXN0QWxsIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IGhpZ2hlck9yZGVyID0gY2xpY2tzLnBpcGUoXG4gKiAgIG1hcCgoKSA9PiBpbnRlcnZhbCgxMDAwKS5waXBlKHRha2UoNSkpKVxuICogKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGhpZ2hlck9yZGVyLnBpcGUoZXhoYXVzdEFsbCgpKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBjb21iaW5lTGF0ZXN0QWxsfVxuICogQHNlZSB7QGxpbmsgY29uY2F0QWxsfVxuICogQHNlZSB7QGxpbmsgc3dpdGNoQWxsfVxuICogQHNlZSB7QGxpbmsgc3dpdGNoTWFwfVxuICogQHNlZSB7QGxpbmsgbWVyZ2VBbGx9XG4gKiBAc2VlIHtAbGluayBleGhhdXN0TWFwfVxuICogQHNlZSB7QGxpbmsgemlwQWxsfVxuICpcbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IHRha2VzIGEgc291cmNlIG9mXG4gKiBPYnNlcnZhYmxlcyBhbmQgcHJvcGFnYXRlcyB0aGUgZmlyc3QgT2JzZXJ2YWJsZSBleGNsdXNpdmVseSB1bnRpbCBpdFxuICogY29tcGxldGVzIGJlZm9yZSBzdWJzY3JpYmluZyB0byB0aGUgbmV4dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4aGF1c3RBbGw8TyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PigpOiBPcGVyYXRvckZ1bmN0aW9uPE8sIE9ic2VydmVkVmFsdWVPZjxPPj4ge1xuICByZXR1cm4gZXhoYXVzdE1hcChpZGVudGl0eSk7XG59XG4iLCAiaW1wb3J0IHsgZXhoYXVzdEFsbCB9IGZyb20gJy4vZXhoYXVzdEFsbCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgUmVuYW1lZCB0byB7QGxpbmsgZXhoYXVzdEFsbH0uIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAqL1xuZXhwb3J0IGNvbnN0IGV4aGF1c3QgPSBleGhhdXN0QWxsO1xuIiwgImltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGVJbnB1dCwgT2JzZXJ2ZWRWYWx1ZU9mLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBtZXJnZUludGVybmFscyB9IGZyb20gJy4vbWVyZ2VJbnRlcm5hbHMnO1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBhbmQ8VCwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDx1bmtub3duPj4oXG4gIHByb2plY3Q6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gTyxcbiAgY29uY3VycmVudD86IG51bWJlcixcbiAgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBUaGUgYHNjaGVkdWxlcmAgcGFyYW1ldGVyIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gSWYgeW91IG5lZWQgdG8gc2NoZWR1bGUgdGhlIGlubmVyIHN1YnNjcmlwdGlvbixcbiAqIHVzZSBgc3Vic2NyaWJlT25gIHdpdGhpbiB0aGUgcHJvamVjdGlvbiBmdW5jdGlvbjogYGV4cGFuZCgodmFsdWUpID0+IGZuKHZhbHVlKS5waXBlKHN1YnNjcmliZU9uKHNjaGVkdWxlcikpKWAuXG4gKiBEZXRhaWxzOiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9zY2hlZHVsZXItYXJndW1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cGFuZDxULCBPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PHVua25vd24+PihcbiAgcHJvamVjdDogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiBPLFxuICBjb25jdXJyZW50OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuLyogdHNsaW50OmVuYWJsZTptYXgtbGluZS1sZW5ndGggKi9cblxuLyoqXG4gKiBSZWN1cnNpdmVseSBwcm9qZWN0cyBlYWNoIHNvdXJjZSB2YWx1ZSB0byBhbiBPYnNlcnZhYmxlIHdoaWNoIGlzIG1lcmdlZCBpblxuICogdGhlIG91dHB1dCBPYnNlcnZhYmxlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5JdCdzIHNpbWlsYXIgdG8ge0BsaW5rIG1lcmdlTWFwfSwgYnV0IGFwcGxpZXMgdGhlXG4gKiBwcm9qZWN0aW9uIGZ1bmN0aW9uIHRvIGV2ZXJ5IHNvdXJjZSB2YWx1ZSBhcyB3ZWxsIGFzIGV2ZXJ5IG91dHB1dCB2YWx1ZS5cbiAqIEl0J3MgcmVjdXJzaXZlLjwvc3Bhbj5cbiAqXG4gKiAhW10oZXhwYW5kLnBuZylcbiAqXG4gKiBSZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBpdGVtcyBiYXNlZCBvbiBhcHBseWluZyBhIGZ1bmN0aW9uIHRoYXQgeW91XG4gKiBzdXBwbHkgdG8gZWFjaCBpdGVtIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLCB3aGVyZSB0aGF0IGZ1bmN0aW9uXG4gKiByZXR1cm5zIGFuIE9ic2VydmFibGUsIGFuZCB0aGVuIG1lcmdpbmcgdGhvc2UgcmVzdWx0aW5nIE9ic2VydmFibGVzIGFuZFxuICogZW1pdHRpbmcgdGhlIHJlc3VsdHMgb2YgdGhpcyBtZXJnZXIuICpFeHBhbmQqIHdpbGwgcmUtZW1pdCBvbiB0aGUgb3V0cHV0XG4gKiBPYnNlcnZhYmxlIGV2ZXJ5IHNvdXJjZSB2YWx1ZS4gVGhlbiwgZWFjaCBvdXRwdXQgdmFsdWUgaXMgZ2l2ZW4gdG8gdGhlXG4gKiBgcHJvamVjdGAgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBpbm5lciBPYnNlcnZhYmxlIHRvIGJlIG1lcmdlZCBvbiB0aGVcbiAqIG91dHB1dCBPYnNlcnZhYmxlLiBUaG9zZSBvdXRwdXQgdmFsdWVzIHJlc3VsdGluZyBmcm9tIHRoZSBwcm9qZWN0aW9uIGFyZSBhbHNvXG4gKiBnaXZlbiB0byB0aGUgYHByb2plY3RgIGZ1bmN0aW9uIHRvIHByb2R1Y2UgbmV3IG91dHB1dCB2YWx1ZXMuIFRoaXMgaXMgaG93XG4gKiAqZXhwYW5kKiBiZWhhdmVzIHJlY3Vyc2l2ZWx5LlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBTdGFydCBlbWl0dGluZyB0aGUgcG93ZXJzIG9mIHR3byBvbiBldmVyeSBjbGljaywgYXQgbW9zdCAxMCBvZiB0aGVtXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgbWFwLCBleHBhbmQsIG9mLCBkZWxheSwgdGFrZSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCBwb3dlcnNPZlR3byA9IGNsaWNrcy5waXBlKFxuICogICBtYXAoKCkgPT4gMSksXG4gKiAgIGV4cGFuZCh4ID0+IG9mKDIgKiB4KS5waXBlKGRlbGF5KDEwMDApKSksXG4gKiAgIHRha2UoMTApXG4gKiApO1xuICogcG93ZXJzT2ZUd28uc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgbWVyZ2VNYXB9XG4gKiBAc2VlIHtAbGluayBtZXJnZVNjYW59XG4gKlxuICogQHBhcmFtIHByb2plY3QgQSBmdW5jdGlvbiB0aGF0LCB3aGVuIGFwcGxpZWQgdG8gYW4gaXRlbSBlbWl0dGVkIGJ5IHRoZSBzb3VyY2VcbiAqIG9yIHRoZSBvdXRwdXQgT2JzZXJ2YWJsZSwgcmV0dXJucyBhbiBPYnNlcnZhYmxlLlxuICogQHBhcmFtIGNvbmN1cnJlbnQgTWF4aW11bSBudW1iZXIgb2YgaW5wdXQgT2JzZXJ2YWJsZXMgYmVpbmcgc3Vic2NyaWJlZCB0b1xuICogY29uY3VycmVudGx5LlxuICogQHBhcmFtIHNjaGVkdWxlciBUaGUge0BsaW5rIFNjaGVkdWxlckxpa2V9IHRvIHVzZSBmb3Igc3Vic2NyaWJpbmcgdG9cbiAqIGVhY2ggcHJvamVjdGVkIGlubmVyIE9ic2VydmFibGUuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc291cmNlIHZhbHVlc1xuICogYW5kIGFsc28gcmVzdWx0IG9mIGFwcGx5aW5nIHRoZSBwcm9qZWN0aW9uIGZ1bmN0aW9uIHRvIGVhY2ggdmFsdWUgZW1pdHRlZCBvblxuICogdGhlIG91dHB1dCBPYnNlcnZhYmxlIGFuZCBtZXJnaW5nIHRoZSByZXN1bHRzIG9mIHRoZSBPYnNlcnZhYmxlcyBvYnRhaW5lZFxuICogZnJvbSB0aGlzIHRyYW5zZm9ybWF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhwYW5kPFQsIE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8dW5rbm93bj4+KFxuICBwcm9qZWN0OiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IE8sXG4gIGNvbmN1cnJlbnQgPSBJbmZpbml0eSxcbiAgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZlZFZhbHVlT2Y8Tz4+IHtcbiAgY29uY3VycmVudCA9IChjb25jdXJyZW50IHx8IDApIDwgMSA/IEluZmluaXR5IDogY29uY3VycmVudDtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT5cbiAgICBtZXJnZUludGVybmFscyhcbiAgICAgIC8vIEdlbmVyYWwgbWVyZ2UgcGFyYW1zXG4gICAgICBzb3VyY2UsXG4gICAgICBzdWJzY3JpYmVyLFxuICAgICAgcHJvamVjdCxcbiAgICAgIGNvbmN1cnJlbnQsXG5cbiAgICAgIC8vIG9uQmVmb3JlTmV4dFxuICAgICAgdW5kZWZpbmVkLFxuXG4gICAgICAvLyBFeHBhbmQtc3BlY2lmaWNcbiAgICAgIHRydWUsIC8vIFVzZSBleHBhbmQgcGF0aFxuICAgICAgc2NoZWR1bGVyIC8vIElubmVyIHN1YnNjcmlwdGlvbiBzY2hlZHVsZXJcbiAgICApXG4gICk7XG59XG4iLCAiaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5cbi8qKlxuICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgbWlycm9ycyB0aGUgc291cmNlIE9ic2VydmFibGUsIGJ1dCB3aWxsIGNhbGwgYSBzcGVjaWZpZWQgZnVuY3Rpb24gd2hlblxuICogdGhlIHNvdXJjZSB0ZXJtaW5hdGVzIG9uIGNvbXBsZXRlIG9yIGVycm9yLlxuICogVGhlIHNwZWNpZmllZCBmdW5jdGlvbiB3aWxsIGFsc28gYmUgY2FsbGVkIHdoZW4gdGhlIHN1YnNjcmliZXIgZXhwbGljaXRseSB1bnN1YnNjcmliZXMuXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBFeGVjdXRlIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gdGhlIG9ic2VydmFibGUgY29tcGxldGVzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCB0YWtlLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIC8vIGVtaXQgdmFsdWUgaW4gc2VxdWVuY2UgZXZlcnkgMSBzZWNvbmRcbiAqIGNvbnN0IHNvdXJjZSA9IGludGVydmFsKDEwMDApO1xuICogY29uc3QgZXhhbXBsZSA9IHNvdXJjZS5waXBlKFxuICogICB0YWtlKDUpLCAvL3Rha2Ugb25seSB0aGUgZmlyc3QgNSB2YWx1ZXNcbiAqICAgZmluYWxpemUoKCkgPT4gY29uc29sZS5sb2coJ1NlcXVlbmNlIGNvbXBsZXRlJykpIC8vIEV4ZWN1dGUgd2hlbiB0aGUgb2JzZXJ2YWJsZSBjb21wbGV0ZXNcbiAqICk7XG4gKiBjb25zdCBzdWJzY3JpYmUgPSBleGFtcGxlLnN1YnNjcmliZSh2YWwgPT4gY29uc29sZS5sb2codmFsKSk7XG4gKlxuICogLy8gcmVzdWx0czpcbiAqIC8vIDBcbiAqIC8vIDFcbiAqIC8vIDJcbiAqIC8vIDNcbiAqIC8vIDRcbiAqIC8vICdTZXF1ZW5jZSBjb21wbGV0ZSdcbiAqIGBgYFxuICpcbiAqIEV4ZWN1dGUgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiB0aGUgc3Vic2NyaWJlciBleHBsaWNpdGx5IHVuc3Vic2NyaWJlc1xuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBpbnRlcnZhbCwgZmluYWxpemUsIHRhcCwgbm9vcCwgdGltZXIgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBzb3VyY2UgPSBpbnRlcnZhbCgxMDApLnBpcGUoXG4gKiAgIGZpbmFsaXplKCgpID0+IGNvbnNvbGUubG9nKCdbZmluYWxpemVdIENhbGxlZCcpKSxcbiAqICAgdGFwKHtcbiAqICAgICBuZXh0OiAoKSA9PiBjb25zb2xlLmxvZygnW25leHRdIENhbGxlZCcpLFxuICogICAgIGVycm9yOiAoKSA9PiBjb25zb2xlLmxvZygnW2Vycm9yXSBOb3QgY2FsbGVkJyksXG4gKiAgICAgY29tcGxldGU6ICgpID0+IGNvbnNvbGUubG9nKCdbdGFwIGNvbXBsZXRlXSBOb3QgY2FsbGVkJylcbiAqICAgfSlcbiAqICk7XG4gKlxuICogY29uc3Qgc3ViID0gc291cmNlLnN1YnNjcmliZSh7XG4gKiAgIG5leHQ6IHggPT4gY29uc29sZS5sb2coeCksXG4gKiAgIGVycm9yOiBub29wLFxuICogICBjb21wbGV0ZTogKCkgPT4gY29uc29sZS5sb2coJ1tjb21wbGV0ZV0gTm90IGNhbGxlZCcpXG4gKiB9KTtcbiAqXG4gKiB0aW1lcigxNTApLnN1YnNjcmliZSgoKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gKlxuICogLy8gcmVzdWx0czpcbiAqIC8vICdbbmV4dF0gQ2FsbGVkJ1xuICogLy8gMFxuICogLy8gJ1tmaW5hbGl6ZV0gQ2FsbGVkJ1xuICogYGBgXG4gKlxuICogQHBhcmFtIGNhbGxiYWNrIEZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHNvdXJjZSB0ZXJtaW5hdGVzLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgbWlycm9ycyB0aGUgc291cmNlLCBidXRcbiAqIHdpbGwgY2FsbCB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIG9uIHRlcm1pbmF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluYWxpemU8VD4oY2FsbGJhY2s6ICgpID0+IHZvaWQpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgLy8gVE9ETzogVGhpcyB0cnkvZmluYWxseSB3YXMgb25seSBhZGRlZCBmb3IgYHVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmdgLlxuICAgIC8vIFJFTU9WRSBUSElTIFdIRU4gVEhBVCBIT1QgR0FSQkFHRSBJUyBSRU1PVkVEIElOIFY4LlxuICAgIHRyeSB7XG4gICAgICBzb3VyY2Uuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzdWJzY3JpYmVyLmFkZChjYWxsYmFjayk7XG4gICAgfVxuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAnLi4vU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uLCBUcnV0aHlUeXBlc09mIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kPFQ+KHByZWRpY2F0ZTogQm9vbGVhbkNvbnN0cnVjdG9yKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUcnV0aHlUeXBlc09mPFQ+Pjtcbi8qKiBAZGVwcmVjYXRlZCBVc2UgYSBjbG9zdXJlIGluc3RlYWQgb2YgYSBgdGhpc0FyZ2AuIFNpZ25hdHVyZXMgYWNjZXB0aW5nIGEgYHRoaXNBcmdgIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kPFQsIFMgZXh0ZW5kcyBULCBBPihcbiAgcHJlZGljYXRlOiAodGhpczogQSwgdmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gdmFsdWUgaXMgUyxcbiAgdGhpc0FyZzogQVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBTIHwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBmaW5kPFQsIFMgZXh0ZW5kcyBUPihcbiAgcHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gdmFsdWUgaXMgU1xuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBTIHwgdW5kZWZpbmVkPjtcbi8qKiBAZGVwcmVjYXRlZCBVc2UgYSBjbG9zdXJlIGluc3RlYWQgb2YgYSBgdGhpc0FyZ2AuIFNpZ25hdHVyZXMgYWNjZXB0aW5nIGEgYHRoaXNBcmdgIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kPFQsIEE+KFxuICBwcmVkaWNhdGU6ICh0aGlzOiBBLCB2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBib29sZWFuLFxuICB0aGlzQXJnOiBBXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFQgfCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmQ8VD4ocHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gYm9vbGVhbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgVCB8IHVuZGVmaW5lZD47XG4vKipcbiAqIEVtaXRzIG9ubHkgdGhlIGZpcnN0IHZhbHVlIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHRoYXQgbWVldHMgc29tZVxuICogY29uZGl0aW9uLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5GaW5kcyB0aGUgZmlyc3QgdmFsdWUgdGhhdCBwYXNzZXMgc29tZSB0ZXN0IGFuZCBlbWl0c1xuICogdGhhdC48L3NwYW4+XG4gKlxuICogIVtdKGZpbmQucG5nKVxuICpcbiAqIGBmaW5kYCBzZWFyY2hlcyBmb3IgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHRoYXQgbWF0Y2hlcyB0aGVcbiAqIHNwZWNpZmllZCBjb25kaXRpb24gZW1ib2RpZWQgYnkgdGhlIGBwcmVkaWNhdGVgLCBhbmQgcmV0dXJucyB0aGUgZmlyc3RcbiAqIG9jY3VycmVuY2UgaW4gdGhlIHNvdXJjZS4gVW5saWtlIHtAbGluayBmaXJzdH0sIHRoZSBgcHJlZGljYXRlYCBpcyByZXF1aXJlZFxuICogaW4gYGZpbmRgLCBhbmQgZG9lcyBub3QgZW1pdCBhbiBlcnJvciBpZiBhIHZhbGlkIHZhbHVlIGlzIG5vdCBmb3VuZFxuICogKGVtaXRzIGB1bmRlZmluZWRgIGluc3RlYWQpLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBGaW5kIGFuZCBlbWl0IHRoZSBmaXJzdCBjbGljayB0aGF0IGhhcHBlbnMgb24gYSBESVYgZWxlbWVudFxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIGZpbmQgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAqIGRpdi5zdHlsZS5jc3NUZXh0ID0gJ3dpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZDogIzA5YzsnO1xuICogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCByZXN1bHQgPSBjbGlja3MucGlwZShmaW5kKGV2ID0+ICg8SFRNTEVsZW1lbnQ+ZXYudGFyZ2V0KS50YWdOYW1lID09PSAnRElWJykpO1xuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGZpbHRlcn1cbiAqIEBzZWUge0BsaW5rIGZpcnN0fVxuICogQHNlZSB7QGxpbmsgZmluZEluZGV4fVxuICogQHNlZSB7QGxpbmsgdGFrZX1cbiAqXG4gKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggZWFjaCBpdGVtIHRvIHRlc3QgZm9yIGNvbmRpdGlvbiBtYXRjaGluZy5cbiAqIEBwYXJhbSB0aGlzQXJnIEFuIG9wdGlvbmFsIGFyZ3VtZW50IHRvIGRldGVybWluZSB0aGUgdmFsdWUgb2YgYHRoaXNgIGluIHRoZVxuICogYHByZWRpY2F0ZWAgZnVuY3Rpb24uXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZmlyc3QgaXRlbSB0aGF0XG4gKiBtYXRjaGVzIHRoZSBjb25kaXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kPFQ+KFxuICBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBib29sZWFuLFxuICB0aGlzQXJnPzogYW55XG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFQgfCB1bmRlZmluZWQ+IHtcbiAgcmV0dXJuIG9wZXJhdGUoY3JlYXRlRmluZChwcmVkaWNhdGUsIHRoaXNBcmcsICd2YWx1ZScpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZpbmQ8VD4oXG4gIHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IGJvb2xlYW4sXG4gIHRoaXNBcmc6IGFueSxcbiAgZW1pdDogJ3ZhbHVlJyB8ICdpbmRleCdcbikge1xuICBjb25zdCBmaW5kSW5kZXggPSBlbWl0ID09PSAnaW5kZXgnO1xuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPiwgc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxhbnk+KSA9PiB7XG4gICAgbGV0IGluZGV4ID0gMDtcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBpID0gaW5kZXgrKztcbiAgICAgICAgICBpZiAocHJlZGljYXRlLmNhbGwodGhpc0FyZywgdmFsdWUsIGksIHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmaW5kSW5kZXggPyBpIDogdmFsdWUpO1xuICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmaW5kSW5kZXggPyAtMSA6IHVuZGVmaW5lZCk7XG4gICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBGYWxzeSwgT3BlcmF0b3JGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlRmluZCB9IGZyb20gJy4vZmluZCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5kZXg8VD4ocHJlZGljYXRlOiBCb29sZWFuQ29uc3RydWN0b3IpOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFQgZXh0ZW5kcyBGYWxzeSA/IC0xIDogbnVtYmVyPjtcbi8qKiBAZGVwcmVjYXRlZCBVc2UgYSBjbG9zdXJlIGluc3RlYWQgb2YgYSBgdGhpc0FyZ2AuIFNpZ25hdHVyZXMgYWNjZXB0aW5nIGEgYHRoaXNBcmdgIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5kZXg8VD4ocHJlZGljYXRlOiBCb29sZWFuQ29uc3RydWN0b3IsIHRoaXNBcmc6IGFueSk6IE9wZXJhdG9yRnVuY3Rpb248VCwgVCBleHRlbmRzIEZhbHN5ID8gLTEgOiBudW1iZXI+O1xuLyoqIEBkZXByZWNhdGVkIFVzZSBhIGNsb3N1cmUgaW5zdGVhZCBvZiBhIGB0aGlzQXJnYC4gU2lnbmF0dXJlcyBhY2NlcHRpbmcgYSBgdGhpc0FyZ2Agd2lsbCBiZSByZW1vdmVkIGluIHY4LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRJbmRleDxULCBBPihcbiAgcHJlZGljYXRlOiAodGhpczogQSwgdmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gYm9vbGVhbixcbiAgdGhpc0FyZzogQVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBudW1iZXI+O1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRJbmRleDxUPihwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBib29sZWFuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBudW1iZXI+O1xuXG4vKipcbiAqIEVtaXRzIG9ubHkgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCB2YWx1ZSBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB0aGF0XG4gKiBtZWV0cyBzb21lIGNvbmRpdGlvbi5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+SXQncyBsaWtlIHtAbGluayBmaW5kfSwgYnV0IGVtaXRzIHRoZSBpbmRleCBvZiB0aGVcbiAqIGZvdW5kIHZhbHVlLCBub3QgdGhlIHZhbHVlIGl0c2VsZi48L3NwYW4+XG4gKlxuICogIVtdKGZpbmRJbmRleC5wbmcpXG4gKlxuICogYGZpbmRJbmRleGAgc2VhcmNoZXMgZm9yIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB0aGF0IG1hdGNoZXNcbiAqIHRoZSBzcGVjaWZpZWQgY29uZGl0aW9uIGVtYm9kaWVkIGJ5IHRoZSBgcHJlZGljYXRlYCwgYW5kIHJldHVybnMgdGhlXG4gKiAoemVyby1iYXNlZCkgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2UgaW4gdGhlIHNvdXJjZS4gVW5saWtlXG4gKiB7QGxpbmsgZmlyc3R9LCB0aGUgYHByZWRpY2F0ZWAgaXMgcmVxdWlyZWQgaW4gYGZpbmRJbmRleGAsIGFuZCBkb2VzIG5vdCBlbWl0XG4gKiBhbiBlcnJvciBpZiBhIHZhbGlkIHZhbHVlIGlzIG5vdCBmb3VuZC5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogRW1pdCB0aGUgaW5kZXggb2YgZmlyc3QgY2xpY2sgdGhhdCBoYXBwZW5zIG9uIGEgRElWIGVsZW1lbnRcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBmaW5kSW5kZXggfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAqIGRpdi5zdHlsZS5jc3NUZXh0ID0gJ3dpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZDogIzA5YzsnO1xuICogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCByZXN1bHQgPSBjbGlja3MucGlwZShmaW5kSW5kZXgoZXYgPT4gKDxIVE1MRWxlbWVudD5ldi50YXJnZXQpLnRhZ05hbWUgPT09ICdESVYnKSk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgZmlsdGVyfVxuICogQHNlZSB7QGxpbmsgZmluZH1cbiAqIEBzZWUge0BsaW5rIGZpcnN0fVxuICogQHNlZSB7QGxpbmsgdGFrZX1cbiAqXG4gKiBAcGFyYW0gcHJlZGljYXRlIEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggZWFjaCBpdGVtIHRvIHRlc3QgZm9yIGNvbmRpdGlvbiBtYXRjaGluZy5cbiAqIEBwYXJhbSB0aGlzQXJnIEFuIG9wdGlvbmFsIGFyZ3VtZW50IHRvIGRldGVybWluZSB0aGUgdmFsdWUgb2YgYHRoaXNgIGluIHRoZVxuICogYHByZWRpY2F0ZWAgZnVuY3Rpb24uXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgaW5kZXggb2YgdGhlXG4gKiBmaXJzdCBpdGVtIHRoYXQgbWF0Y2hlcyB0aGUgY29uZGl0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEluZGV4PFQ+KFxuICBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBib29sZWFuLFxuICB0aGlzQXJnPzogYW55XG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIG51bWJlcj4ge1xuICByZXR1cm4gb3BlcmF0ZShjcmVhdGVGaW5kKHByZWRpY2F0ZSwgdGhpc0FyZywgJ2luZGV4JykpO1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IEVtcHR5RXJyb3IgfSBmcm9tICcuLi91dGlsL0VtcHR5RXJyb3InO1xuaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiwgVHJ1dGh5VHlwZXNPZiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJy4vZmlsdGVyJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICcuL3Rha2UnO1xuaW1wb3J0IHsgZGVmYXVsdElmRW1wdHkgfSBmcm9tICcuL2RlZmF1bHRJZkVtcHR5JztcbmltcG9ydCB7IHRocm93SWZFbXB0eSB9IGZyb20gJy4vdGhyb3dJZkVtcHR5JztcbmltcG9ydCB7IGlkZW50aXR5IH0gZnJvbSAnLi4vdXRpbC9pZGVudGl0eSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdDxULCBEID0gVD4ocHJlZGljYXRlPzogbnVsbCwgZGVmYXVsdFZhbHVlPzogRCk6IE9wZXJhdG9yRnVuY3Rpb248VCwgVCB8IEQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0PFQ+KHByZWRpY2F0ZTogQm9vbGVhbkNvbnN0cnVjdG9yKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUcnV0aHlUeXBlc09mPFQ+PjtcbmV4cG9ydCBmdW5jdGlvbiBmaXJzdDxULCBEPihwcmVkaWNhdGU6IEJvb2xlYW5Db25zdHJ1Y3RvciwgZGVmYXVsdFZhbHVlOiBEKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUcnV0aHlUeXBlc09mPFQ+IHwgRD47XG5leHBvcnQgZnVuY3Rpb24gZmlyc3Q8VCwgUyBleHRlbmRzIFQ+KFxuICBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiB2YWx1ZSBpcyBTLFxuICBkZWZhdWx0VmFsdWU/OiBTXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFM+O1xuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0PFQsIFMgZXh0ZW5kcyBULCBEPihcbiAgcHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gdmFsdWUgaXMgUyxcbiAgZGVmYXVsdFZhbHVlOiBEXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFMgfCBEPjtcbmV4cG9ydCBmdW5jdGlvbiBmaXJzdDxULCBEID0gVD4oXG4gIHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IGJvb2xlYW4sXG4gIGRlZmF1bHRWYWx1ZT86IERcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgVCB8IEQ+O1xuXG4vKipcbiAqIEVtaXRzIG9ubHkgdGhlIGZpcnN0IHZhbHVlIChvciB0aGUgZmlyc3QgdmFsdWUgdGhhdCBtZWV0cyBzb21lIGNvbmRpdGlvbilcbiAqIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5FbWl0cyBvbmx5IHRoZSBmaXJzdCB2YWx1ZS4gT3IgZW1pdHMgb25seSB0aGUgZmlyc3RcbiAqIHZhbHVlIHRoYXQgcGFzc2VzIHNvbWUgdGVzdC48L3NwYW4+XG4gKlxuICogIVtdKGZpcnN0LnBuZylcbiAqXG4gKiBJZiBjYWxsZWQgd2l0aCBubyBhcmd1bWVudHMsIGBmaXJzdGAgZW1pdHMgdGhlIGZpcnN0IHZhbHVlIG9mIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUsIHRoZW4gY29tcGxldGVzLiBJZiBjYWxsZWQgd2l0aCBhIGBwcmVkaWNhdGVgIGZ1bmN0aW9uLCBgZmlyc3RgXG4gKiBlbWl0cyB0aGUgZmlyc3QgdmFsdWUgb2YgdGhlIHNvdXJjZSB0aGF0IG1hdGNoZXMgdGhlIHNwZWNpZmllZCBjb25kaXRpb24uIEVtaXRzIGFuIGVycm9yXG4gKiBub3RpZmljYXRpb24gaWYgYGRlZmF1bHRWYWx1ZWAgd2FzIG5vdCBwcm92aWRlZCBhbmQgYSBtYXRjaGluZyBlbGVtZW50IGlzIG5vdCBmb3VuZC5cbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIEVtaXQgb25seSB0aGUgZmlyc3QgY2xpY2sgdGhhdCBoYXBwZW5zIG9uIHRoZSBET01cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBmaXJzdCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCByZXN1bHQgPSBjbGlja3MucGlwZShmaXJzdCgpKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBFbWl0cyB0aGUgZmlyc3QgY2xpY2sgdGhhdCBoYXBwZW5zIG9uIGEgRElWXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgZmlyc3QgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAqIGRpdi5zdHlsZS5jc3NUZXh0ID0gJ3dpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZDogIzA5YzsnO1xuICogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCByZXN1bHQgPSBjbGlja3MucGlwZShmaXJzdChldiA9PiAoPEhUTUxFbGVtZW50PmV2LnRhcmdldCkudGFnTmFtZSA9PT0gJ0RJVicpKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBmaWx0ZXJ9XG4gKiBAc2VlIHtAbGluayBmaW5kfVxuICogQHNlZSB7QGxpbmsgdGFrZX1cbiAqIEBzZWUge0BsaW5rIGxhc3R9XG4gKlxuICogQHRocm93cyB7RW1wdHlFcnJvcn0gRGVsaXZlcnMgYW4gYEVtcHR5RXJyb3JgIHRvIHRoZSBPYnNlcnZlcidzIGBlcnJvcmBcbiAqIGNhbGxiYWNrIGlmIHRoZSBPYnNlcnZhYmxlIGNvbXBsZXRlcyBiZWZvcmUgYW55IGBuZXh0YCBub3RpZmljYXRpb24gd2FzIHNlbnQuXG4gKiBUaGlzIGlzIGhvdyBgZmlyc3QoKWAgaXMgZGlmZmVyZW50IGZyb20gYHRha2UoMSlgIHdoaWNoIGNvbXBsZXRlcyBpbnN0ZWFkLlxuICpcbiAqIEBwYXJhbSBwcmVkaWNhdGUgQW4gb3B0aW9uYWwgZnVuY3Rpb24gY2FsbGVkIHdpdGggZWFjaCBpdGVtIHRvIHRlc3QgZm9yIGNvbmRpdGlvblxuICogbWF0Y2hpbmcuXG4gKiBAcGFyYW0gZGVmYXVsdFZhbHVlIFRoZSBkZWZhdWx0IHZhbHVlIGVtaXR0ZWQgaW4gY2FzZSBubyB2YWxpZCB2YWx1ZSB3YXMgZm91bmQgb25cbiAqIHRoZSBzb3VyY2UuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZmlyc3QgaXRlbSB0aGF0XG4gKiBtYXRjaGVzIHRoZSBjb25kaXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdDxULCBEPihcbiAgcHJlZGljYXRlPzogKCh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRlZmF1bHRWYWx1ZT86IERcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgVCB8IEQ+IHtcbiAgY29uc3QgaGFzRGVmYXVsdFZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA+PSAyO1xuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT5cbiAgICBzb3VyY2UucGlwZShcbiAgICAgIHByZWRpY2F0ZSA/IGZpbHRlcigodiwgaSkgPT4gcHJlZGljYXRlKHYsIGksIHNvdXJjZSkpIDogaWRlbnRpdHksXG4gICAgICB0YWtlKDEpLFxuICAgICAgaGFzRGVmYXVsdFZhbHVlID8gZGVmYXVsdElmRW1wdHkoZGVmYXVsdFZhbHVlISkgOiB0aHJvd0lmRW1wdHkoKCkgPT4gbmV3IEVtcHR5RXJyb3IoKSlcbiAgICApO1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4uL29ic2VydmFibGUvaW5uZXJGcm9tJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICcuLi9TdWJqZWN0JztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCwgT2JzZXJ2ZXIsIE9wZXJhdG9yRnVuY3Rpb24sIFN1YmplY3RMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIsIE9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuZXhwb3J0IGludGVyZmFjZSBCYXNpY0dyb3VwQnlPcHRpb25zPEssIFQ+IHtcbiAgZWxlbWVudD86IHVuZGVmaW5lZDtcbiAgZHVyYXRpb24/OiAoZ3JvdXBlZDogR3JvdXBlZE9ic2VydmFibGU8SywgVD4pID0+IE9ic2VydmFibGVJbnB1dDxhbnk+O1xuICBjb25uZWN0b3I/OiAoKSA9PiBTdWJqZWN0TGlrZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cEJ5T3B0aW9uc1dpdGhFbGVtZW50PEssIEUsIFQ+IHtcbiAgZWxlbWVudDogKHZhbHVlOiBUKSA9PiBFO1xuICBkdXJhdGlvbj86IChncm91cGVkOiBHcm91cGVkT2JzZXJ2YWJsZTxLLCBFPikgPT4gT2JzZXJ2YWJsZUlucHV0PGFueT47XG4gIGNvbm5lY3Rvcj86ICgpID0+IFN1YmplY3RMaWtlPEU+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBCeTxULCBLPihrZXk6ICh2YWx1ZTogVCkgPT4gSywgb3B0aW9uczogQmFzaWNHcm91cEJ5T3B0aW9uczxLLCBUPik6IE9wZXJhdG9yRnVuY3Rpb248VCwgR3JvdXBlZE9ic2VydmFibGU8SywgVD4+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBCeTxULCBLLCBFPihcbiAga2V5OiAodmFsdWU6IFQpID0+IEssXG4gIG9wdGlvbnM6IEdyb3VwQnlPcHRpb25zV2l0aEVsZW1lbnQ8SywgRSwgVD5cbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgR3JvdXBlZE9ic2VydmFibGU8SywgRT4+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBCeTxULCBLIGV4dGVuZHMgVD4oXG4gIGtleTogKHZhbHVlOiBUKSA9PiB2YWx1ZSBpcyBLXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIEdyb3VwZWRPYnNlcnZhYmxlPHRydWUsIEs+IHwgR3JvdXBlZE9ic2VydmFibGU8ZmFsc2UsIEV4Y2x1ZGU8VCwgSz4+PjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwQnk8VCwgSz4oa2V5OiAodmFsdWU6IFQpID0+IEspOiBPcGVyYXRvckZ1bmN0aW9uPFQsIEdyb3VwZWRPYnNlcnZhYmxlPEssIFQ+PjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgdGhlIG9wdGlvbnMgcGFyYW1ldGVyIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncm91cEJ5PFQsIEs+KFxuICBrZXk6ICh2YWx1ZTogVCkgPT4gSyxcbiAgZWxlbWVudDogdm9pZCxcbiAgZHVyYXRpb246IChncm91cGVkOiBHcm91cGVkT2JzZXJ2YWJsZTxLLCBUPikgPT4gT2JzZXJ2YWJsZTxhbnk+XG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIEdyb3VwZWRPYnNlcnZhYmxlPEssIFQ+PjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgdGhlIG9wdGlvbnMgcGFyYW1ldGVyIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncm91cEJ5PFQsIEssIFI+KFxuICBrZXk6ICh2YWx1ZTogVCkgPT4gSyxcbiAgZWxlbWVudD86ICh2YWx1ZTogVCkgPT4gUixcbiAgZHVyYXRpb24/OiAoZ3JvdXBlZDogR3JvdXBlZE9ic2VydmFibGU8SywgUj4pID0+IE9ic2VydmFibGU8YW55PlxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBHcm91cGVkT2JzZXJ2YWJsZTxLLCBSPj47XG5cbi8qKlxuICogR3JvdXBzIHRoZSBpdGVtcyBlbWl0dGVkIGJ5IGFuIE9ic2VydmFibGUgYWNjb3JkaW5nIHRvIGEgc3BlY2lmaWVkIGNyaXRlcmlvbixcbiAqIGFuZCBlbWl0cyB0aGVzZSBncm91cGVkIGl0ZW1zIGFzIGBHcm91cGVkT2JzZXJ2YWJsZXNgLCBvbmVcbiAqIHtAbGluayBHcm91cGVkT2JzZXJ2YWJsZX0gcGVyIGdyb3VwLlxuICpcbiAqICFbXShncm91cEJ5LnBuZylcbiAqXG4gKiBXaGVuIHRoZSBPYnNlcnZhYmxlIGVtaXRzIGFuIGl0ZW0sIGEga2V5IGlzIGNvbXB1dGVkIGZvciB0aGlzIGl0ZW0gd2l0aCB0aGUga2V5IGZ1bmN0aW9uLlxuICpcbiAqIElmIGEge0BsaW5rIEdyb3VwZWRPYnNlcnZhYmxlfSBmb3IgdGhpcyBrZXkgZXhpc3RzLCB0aGlzIHtAbGluayBHcm91cGVkT2JzZXJ2YWJsZX0gZW1pdHMuIE90aGVyd2lzZSwgYSBuZXdcbiAqIHtAbGluayBHcm91cGVkT2JzZXJ2YWJsZX0gZm9yIHRoaXMga2V5IGlzIGNyZWF0ZWQgYW5kIGVtaXRzLlxuICpcbiAqIEEge0BsaW5rIEdyb3VwZWRPYnNlcnZhYmxlfSByZXByZXNlbnRzIHZhbHVlcyBiZWxvbmdpbmcgdG8gdGhlIHNhbWUgZ3JvdXAgcmVwcmVzZW50ZWQgYnkgYSBjb21tb24ga2V5LiBUaGUgY29tbW9uXG4gKiBrZXkgaXMgYXZhaWxhYmxlIGFzIHRoZSBga2V5YCBmaWVsZCBvZiBhIHtAbGluayBHcm91cGVkT2JzZXJ2YWJsZX0gaW5zdGFuY2UuXG4gKlxuICogVGhlIGVsZW1lbnRzIGVtaXR0ZWQgYnkge0BsaW5rIEdyb3VwZWRPYnNlcnZhYmxlfXMgYXJlIGJ5IGRlZmF1bHQgdGhlIGl0ZW1zIGVtaXR0ZWQgYnkgdGhlIE9ic2VydmFibGUsIG9yIGVsZW1lbnRzXG4gKiByZXR1cm5lZCBieSB0aGUgZWxlbWVudCBmdW5jdGlvbi5cbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIEdyb3VwIG9iamVjdHMgYnkgYGlkYCBhbmQgcmV0dXJuIGFzIGFycmF5XG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBncm91cEJ5LCBtZXJnZU1hcCwgcmVkdWNlIH0gZnJvbSAncnhqcyc7XG4gKlxuICogb2YoXG4gKiAgIHsgaWQ6IDEsIG5hbWU6ICdKYXZhU2NyaXB0JyB9LFxuICogICB7IGlkOiAyLCBuYW1lOiAnUGFyY2VsJyB9LFxuICogICB7IGlkOiAyLCBuYW1lOiAnd2VicGFjaycgfSxcbiAqICAgeyBpZDogMSwgbmFtZTogJ1R5cGVTY3JpcHQnIH0sXG4gKiAgIHsgaWQ6IDMsIG5hbWU6ICdUU0xpbnQnIH1cbiAqICkucGlwZShcbiAqICAgZ3JvdXBCeShwID0+IHAuaWQpLFxuICogICBtZXJnZU1hcChncm91cCQgPT4gZ3JvdXAkLnBpcGUocmVkdWNlKChhY2MsIGN1cikgPT4gWy4uLmFjYywgY3VyXSwgW10pKSlcbiAqIClcbiAqIC5zdWJzY3JpYmUocCA9PiBjb25zb2xlLmxvZyhwKSk7XG4gKlxuICogLy8gZGlzcGxheXM6XG4gKiAvLyBbeyBpZDogMSwgbmFtZTogJ0phdmFTY3JpcHQnIH0sIHsgaWQ6IDEsIG5hbWU6ICdUeXBlU2NyaXB0J31dXG4gKiAvLyBbeyBpZDogMiwgbmFtZTogJ1BhcmNlbCcgfSwgeyBpZDogMiwgbmFtZTogJ3dlYnBhY2snfV1cbiAqIC8vIFt7IGlkOiAzLCBuYW1lOiAnVFNMaW50JyB9XVxuICogYGBgXG4gKlxuICogUGl2b3QgZGF0YSBvbiB0aGUgYGlkYCBmaWVsZFxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBvZiwgZ3JvdXBCeSwgbWVyZ2VNYXAsIHJlZHVjZSwgbWFwIH0gZnJvbSAncnhqcyc7XG4gKlxuICogb2YoXG4gKiAgIHsgaWQ6IDEsIG5hbWU6ICdKYXZhU2NyaXB0JyB9LFxuICogICB7IGlkOiAyLCBuYW1lOiAnUGFyY2VsJyB9LFxuICogICB7IGlkOiAyLCBuYW1lOiAnd2VicGFjaycgfSxcbiAqICAgeyBpZDogMSwgbmFtZTogJ1R5cGVTY3JpcHQnIH0sXG4gKiAgIHsgaWQ6IDMsIG5hbWU6ICdUU0xpbnQnIH1cbiAqICkucGlwZShcbiAqICAgZ3JvdXBCeShwID0+IHAuaWQsIHsgZWxlbWVudDogcCA9PiBwLm5hbWUgfSksXG4gKiAgIG1lcmdlTWFwKGdyb3VwJCA9PiBncm91cCQucGlwZShyZWR1Y2UoKGFjYywgY3VyKSA9PiBbLi4uYWNjLCBjdXJdLCBbYCR7IGdyb3VwJC5rZXkgfWBdKSkpLFxuICogICBtYXAoYXJyID0+ICh7IGlkOiBwYXJzZUludChhcnJbMF0sIDEwKSwgdmFsdWVzOiBhcnIuc2xpY2UoMSkgfSkpXG4gKiApXG4gKiAuc3Vic2NyaWJlKHAgPT4gY29uc29sZS5sb2cocCkpO1xuICpcbiAqIC8vIGRpc3BsYXlzOlxuICogLy8geyBpZDogMSwgdmFsdWVzOiBbICdKYXZhU2NyaXB0JywgJ1R5cGVTY3JpcHQnIF0gfVxuICogLy8geyBpZDogMiwgdmFsdWVzOiBbICdQYXJjZWwnLCAnd2VicGFjaycgXSB9XG4gKiAvLyB7IGlkOiAzLCB2YWx1ZXM6IFsgJ1RTTGludCcgXSB9XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ga2V5IEEgZnVuY3Rpb24gdGhhdCBleHRyYWN0cyB0aGUga2V5XG4gKiBmb3IgZWFjaCBpdGVtLlxuICogQHBhcmFtIGVsZW1lbnQgQSBmdW5jdGlvbiB0aGF0IGV4dHJhY3RzIHRoZVxuICogcmV0dXJuIGVsZW1lbnQgZm9yIGVhY2ggaXRlbS5cbiAqIEBwYXJhbSBkdXJhdGlvblxuICogQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0byBkZXRlcm1pbmUgaG93IGxvbmcgZWFjaCBncm91cCBzaG91bGRcbiAqIGV4aXN0LlxuICogQHBhcmFtIGNvbm5lY3RvciBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhblxuICogaW50ZXJtZWRpYXRlIFN1YmplY3QgdGhyb3VnaCB3aGljaCBncm91cGVkIGVsZW1lbnRzIGFyZSBlbWl0dGVkLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgR3JvdXBlZE9ic2VydmFibGVzLFxuICogZWFjaCBvZiB3aGljaCBjb3JyZXNwb25kcyB0byBhIHVuaXF1ZSBrZXkgdmFsdWUgYW5kIGVhY2ggb2Ygd2hpY2ggZW1pdHNcbiAqIHRob3NlIGl0ZW1zIGZyb20gdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHRoYXQgc2hhcmUgdGhhdCBrZXkgdmFsdWUuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBvcHRpb25zIHBhcmFtZXRlciBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBCeTxULCBLLCBSPihcbiAga2V5OiAodmFsdWU6IFQpID0+IEssXG4gIGVsZW1lbnQ/OiAodmFsdWU6IFQpID0+IFIsXG4gIGR1cmF0aW9uPzogKGdyb3VwZWQ6IEdyb3VwZWRPYnNlcnZhYmxlPEssIFI+KSA9PiBPYnNlcnZhYmxlPGFueT4sXG4gIGNvbm5lY3Rvcj86ICgpID0+IFN1YmplY3Q8Uj5cbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgR3JvdXBlZE9ic2VydmFibGU8SywgUj4+O1xuXG4vLyBJbXBsXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBCeTxULCBLLCBSPihcbiAga2V5U2VsZWN0b3I6ICh2YWx1ZTogVCkgPT4gSyxcbiAgZWxlbWVudE9yT3B0aW9ucz86ICgodmFsdWU6IGFueSkgPT4gYW55KSB8IHZvaWQgfCBCYXNpY0dyb3VwQnlPcHRpb25zPEssIFQ+IHwgR3JvdXBCeU9wdGlvbnNXaXRoRWxlbWVudDxLLCBSLCBUPixcbiAgZHVyYXRpb24/OiAoZ3JvdXBlZDogR3JvdXBlZE9ic2VydmFibGU8YW55LCBhbnk+KSA9PiBPYnNlcnZhYmxlSW5wdXQ8YW55PixcbiAgY29ubmVjdG9yPzogKCkgPT4gU3ViamVjdExpa2U8YW55PlxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBHcm91cGVkT2JzZXJ2YWJsZTxLLCBSPj4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgbGV0IGVsZW1lbnQ6ICgodmFsdWU6IGFueSkgPT4gYW55KSB8IHZvaWQ7XG4gICAgaWYgKCFlbGVtZW50T3JPcHRpb25zIHx8IHR5cGVvZiBlbGVtZW50T3JPcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlbGVtZW50ID0gZWxlbWVudE9yT3B0aW9ucyBhcyAoKHZhbHVlOiBhbnkpID0+IGFueSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICh7IGR1cmF0aW9uLCBlbGVtZW50LCBjb25uZWN0b3IgfSA9IGVsZW1lbnRPck9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8vIEEgbG9va3VwIGZvciB0aGUgZ3JvdXBzIHRoYXQgd2UgaGF2ZSBzbyBmYXIuXG4gICAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxLLCBTdWJqZWN0TGlrZTxhbnk+PigpO1xuXG4gICAgLy8gVXNlZCBmb3Igbm90aWZ5aW5nIGFsbCBncm91cHMgYW5kIHRoZSBzdWJzY3JpYmVyIGluIHRoZSBzYW1lIHdheS5cbiAgICBjb25zdCBub3RpZnkgPSAoY2I6IChncm91cDogT2JzZXJ2ZXI8YW55PikgPT4gdm9pZCkgPT4ge1xuICAgICAgZ3JvdXBzLmZvckVhY2goY2IpO1xuICAgICAgY2Ioc3Vic2NyaWJlcik7XG4gICAgfTtcblxuICAgIC8vIFVzZWQgdG8gaGFuZGxlIGVycm9ycyBmcm9tIHRoZSBzb3VyY2UsIEFORCBlcnJvcnMgdGhhdCBvY2N1ciBkdXJpbmcgdGhlXG4gICAgLy8gbmV4dCBjYWxsIGZyb20gdGhlIHNvdXJjZS5cbiAgICBjb25zdCBoYW5kbGVFcnJvciA9IChlcnI6IGFueSkgPT4gbm90aWZ5KChjb25zdW1lcikgPT4gY29uc3VtZXIuZXJyb3IoZXJyKSk7XG5cbiAgICAvLyBUaGUgbnVtYmVyIG9mIGFjdGl2ZWx5IHN1YnNjcmliZWQgZ3JvdXBzXG4gICAgbGV0IGFjdGl2ZUdyb3VwcyA9IDA7XG5cbiAgICAvLyBXaGV0aGVyIG9yIG5vdCB0ZWFyZG93biB3YXMgYXR0ZW1wdGVkIG9uIHRoaXMgc3Vic2NyaXB0aW9uLlxuICAgIGxldCB0ZWFyZG93bkF0dGVtcHRlZCA9IGZhbHNlO1xuXG4gICAgLy8gQ2FwdHVyaW5nIGEgcmVmZXJlbmNlIHRvIHRoaXMsIGJlY2F1c2Ugd2UgbmVlZCBhIGhhbmRsZSB0byBpdFxuICAgIC8vIGluIGBjcmVhdGVHcm91cGVkT2JzZXJ2YWJsZWAgYmVsb3cuIFRoaXMgaXMgd2hhdCB3ZSB1c2UgdG9cbiAgICAvLyBzdWJzY3JpYmUgdG8gb3VyIHNvdXJjZSBvYnNlcnZhYmxlLiBUaGlzIHNvbWV0aW1lcyBuZWVkcyB0byBiZSB1bnN1YnNjcmliZWRcbiAgICAvLyBvdXQtb2YtYmFuZCB3aXRoIG91ciBgc3Vic2NyaWJlcmAgd2hpY2ggaXMgdGhlIGRvd25zdHJlYW0gc3Vic2NyaWJlciwgb3IgZGVzdGluYXRpb24sXG4gICAgLy8gaW4gY2FzZXMgd2hlcmUgYSB1c2VyIHVuc3Vic2NyaWJlcyBmcm9tIHRoZSBtYWluIHJlc3VsdGluZyBzdWJzY3JpcHRpb24sIGJ1dFxuICAgIC8vIHN0aWxsIGhhcyBncm91cHMgZnJvbSB0aGlzIHN1YnNjcmlwdGlvbiBzdWJzY3JpYmVkIGFuZCB3b3VsZCBleHBlY3QgdmFsdWVzIGZyb20gaXRcbiAgICAvLyBDb25zaWRlcjogIGBzb3VyY2UucGlwZShncm91cEJ5KGZuKSwgdGFrZSgyKSlgLlxuICAgIGNvbnN0IGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyID0gbmV3IE9wZXJhdG9yU3Vic2NyaWJlcihcbiAgICAgIHN1YnNjcmliZXIsXG4gICAgICAodmFsdWU6IFQpID0+IHtcbiAgICAgICAgLy8gQmVjYXVzZSB3ZSBoYXZlIHRvIG5vdGlmeSBhbGwgZ3JvdXBzIG9mIGFueSBlcnJvcnMgdGhhdCBvY2N1ciBpbiBoZXJlLFxuICAgICAgICAvLyB3ZSBoYXZlIHRvIGFkZCBvdXIgb3duIHRyeS9jYXRjaCB0byBlbnN1cmUgdGhhdCB0aG9zZSBlcnJvcnMgYXJlIHByb3BhZ2F0ZWQuXG4gICAgICAgIC8vIE9wZXJhdG9yU3Vic2NyaWJlciB3aWxsIG9ubHkgc2VuZCB0aGUgZXJyb3IgdG8gdGhlIG1haW4gc3Vic2NyaWJlci5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBrZXkgPSBrZXlTZWxlY3Rvcih2YWx1ZSk7XG5cbiAgICAgICAgICBsZXQgZ3JvdXAgPSBncm91cHMuZ2V0KGtleSk7XG4gICAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgICAgLy8gQ3JlYXRlIG91ciBncm91cCBzdWJqZWN0XG4gICAgICAgICAgICBncm91cHMuc2V0KGtleSwgKGdyb3VwID0gY29ubmVjdG9yID8gY29ubmVjdG9yKCkgOiBuZXcgU3ViamVjdDxhbnk+KCkpKTtcblxuICAgICAgICAgICAgLy8gRW1pdCB0aGUgZ3JvdXBlZCBvYnNlcnZhYmxlLiBOb3RlIHRoYXQgd2UgY2FuJ3QgZG8gYSBzaW1wbGUgYGFzT2JzZXJ2YWJsZSgpYCBoZXJlLFxuICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGUgZ3JvdXBlZCBvYnNlcnZhYmxlIGhhcyBzcGVjaWFsIHNlbWFudGljcyBhcm91bmQgcmVmZXJlbmNlIGNvdW50aW5nXG4gICAgICAgICAgICAvLyB0byBlbnN1cmUgd2UgZG9uJ3Qgc2V2ZXIgb3VyIGNvbm5lY3Rpb24gdG8gdGhlIHNvdXJjZSBwcmVtYXR1cmVseS5cbiAgICAgICAgICAgIGNvbnN0IGdyb3VwZWQgPSBjcmVhdGVHcm91cGVkT2JzZXJ2YWJsZShrZXksIGdyb3VwKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChncm91cGVkKTtcblxuICAgICAgICAgICAgaWYgKGR1cmF0aW9uKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGR1cmF0aW9uU3Vic2NyaWJlciA9IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihcbiAgICAgICAgICAgICAgICAvLyBQcm92aWRpbmcgdGhlIGdyb3VwIGhlcmUgZW5zdXJlcyB0aGF0IGl0IGlzIGRpc3Bvc2VkIG9mIC0tIHZpYSBgdW5zdWJzY3JpYmVgIC0tXG4gICAgICAgICAgICAgICAgLy8gd2hlbiB0aGUgZHVyYXRpb24gc3Vic2NyaXB0aW9uIGlzIHRvcm4gZG93bi4gVGhhdCBpcyBpbXBvcnRhbnQsIGJlY2F1c2UgdGhlblxuICAgICAgICAgICAgICAgIC8vIGlmIHNvbWVvbmUgaG9sZHMgYSBoYW5kbGUgdG8gdGhlIGdyb3VwZWQgb2JzZXJ2YWJsZSBhbmQgdHJpZXMgdG8gc3Vic2NyaWJlIHRvIGl0XG4gICAgICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHNvdXJjZSBoYXMgYmVlbiBzZXZlcmVkLCB0aGV5IHdpbGwgZ2V0IGFuXG4gICAgICAgICAgICAgICAgLy8gYE9iamVjdFVuc3Vic2NyaWJlZEVycm9yYCBhbmQga25vdyB0aGV5IGNhbid0IHBvc3NpYmx5IGdldCBhbnkgbm90aWZpY2F0aW9ucy5cbiAgICAgICAgICAgICAgICBncm91cCBhcyBhbnksXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gT3VyIGR1cmF0aW9uIG5vdGlmaWVkISBXZSBjYW4gY29tcGxldGUgdGhlIGdyb3VwLlxuICAgICAgICAgICAgICAgICAgLy8gVGhlIGdyb3VwIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBtYXAgaW4gdGhlIGZpbmFsaXphdGlvbiBwaGFzZS5cbiAgICAgICAgICAgICAgICAgIGdyb3VwIS5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgLy8gQ29tcGxldGlvbnMgYXJlIGFsc28gc2VudCB0byB0aGUgZ3JvdXAsIGJ1dCBqdXN0IHRoZSBncm91cC5cbiAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgLy8gRXJyb3JzIG9uIHRoZSBkdXJhdGlvbiBzdWJzY3JpYmVyIGFyZSBzZW50IHRvIHRoZSBncm91cFxuICAgICAgICAgICAgICAgIC8vIGJ1dCBvbmx5IHRoZSBncm91cC4gVGhleSBhcmUgbm90IHNlbnQgdG8gdGhlIG1haW4gc3Vic2NyaXB0aW9uLlxuICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAvLyBGaW5hbGl6YXRpb246IFJlbW92ZSB0aGlzIGdyb3VwIGZyb20gb3VyIG1hcC5cbiAgICAgICAgICAgICAgICAoKSA9PiBncm91cHMuZGVsZXRlKGtleSlcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAvLyBTdGFydCBvdXIgZHVyYXRpb24gbm90aWZpZXIuXG4gICAgICAgICAgICAgIGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyLmFkZChpbm5lckZyb20oZHVyYXRpb24oZ3JvdXBlZCkpLnN1YnNjcmliZShkdXJhdGlvblN1YnNjcmliZXIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTZW5kIHRoZSB2YWx1ZSB0byBvdXIgZ3JvdXAuXG4gICAgICAgICAgZ3JvdXAubmV4dChlbGVtZW50ID8gZWxlbWVudCh2YWx1ZSkgOiB2YWx1ZSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBTb3VyY2UgY29tcGxldGVzLlxuICAgICAgKCkgPT4gbm90aWZ5KChjb25zdW1lcikgPT4gY29uc3VtZXIuY29tcGxldGUoKSksXG4gICAgICAvLyBFcnJvciBmcm9tIHRoZSBzb3VyY2UuXG4gICAgICBoYW5kbGVFcnJvcixcbiAgICAgIC8vIEZyZWUgdXAgbWVtb3J5LlxuICAgICAgLy8gV2hlbiB0aGUgc291cmNlIHN1YnNjcmlwdGlvbiBpcyBfZmluYWxseV8gdG9ybiBkb3duLCByZWxlYXNlIHRoZSBzdWJqZWN0cyBhbmQga2V5c1xuICAgICAgLy8gaW4gb3VyIGdyb3VwcyBNYXAsIHRoZXkgbWF5IGJlIHF1aXRlIGxhcmdlIGFuZCB3ZSBkb24ndCB3YW50IHRvIGtlZXAgdGhlbSBhcm91bmQgaWYgd2VcbiAgICAgIC8vIGRvbid0IGhhdmUgdG8uXG4gICAgICAoKSA9PiBncm91cHMuY2xlYXIoKSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGVhcmRvd25BdHRlbXB0ZWQgPSB0cnVlO1xuICAgICAgICAvLyBXZSBvbmx5IGtpbGwgb3VyIHN1YnNjcmlwdGlvbiB0byB0aGUgc291cmNlIGlmIHdlIGhhdmVcbiAgICAgICAgLy8gbm8gYWN0aXZlIGdyb3Vwcy4gQXMgc3RhdGVkIGFib3ZlLCBjb25zaWRlciB0aGlzIHNjZW5hcmlvOlxuICAgICAgICAvLyBzb3VyY2UkLnBpcGUoZ3JvdXBCeShmbiksIHRha2UoMikpLlxuICAgICAgICByZXR1cm4gYWN0aXZlR3JvdXBzID09PSAwO1xuICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIHNvdXJjZVxuICAgIHNvdXJjZS5zdWJzY3JpYmUoZ3JvdXBCeVNvdXJjZVN1YnNjcmliZXIpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgYWN0dWFsIGdyb3VwZWQgb2JzZXJ2YWJsZSByZXR1cm5lZC5cbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgb2YgdGhlIGdyb3VwXG4gICAgICogQHBhcmFtIGdyb3VwU3ViamVjdCBUaGUgc3ViamVjdCB0aGF0IGZ1ZWxzIHRoZSBncm91cFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUdyb3VwZWRPYnNlcnZhYmxlKGtleTogSywgZ3JvdXBTdWJqZWN0OiBTdWJqZWN0TGlrZTxhbnk+KSB7XG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9IG5ldyBPYnNlcnZhYmxlPFQ+KChncm91cFN1YnNjcmliZXIpID0+IHtcbiAgICAgICAgYWN0aXZlR3JvdXBzKys7XG4gICAgICAgIGNvbnN0IGlubmVyU3ViID0gZ3JvdXBTdWJqZWN0LnN1YnNjcmliZShncm91cFN1YnNjcmliZXIpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgLy8gV2UgY2FuIGtpbGwgdGhlIHN1YnNjcmlwdGlvbiB0byBvdXIgc291cmNlIGlmIHdlIG5vdyBoYXZlIG5vIG1vcmVcbiAgICAgICAgICAvLyBhY3RpdmUgZ3JvdXBzIHN1YnNjcmliZWQsIGFuZCBhIGZpbmFsaXphdGlvbiB3YXMgYWxyZWFkeSBhdHRlbXB0ZWQgb25cbiAgICAgICAgICAvLyB0aGUgc291cmNlLlxuICAgICAgICAgIC0tYWN0aXZlR3JvdXBzID09PSAwICYmIHRlYXJkb3duQXR0ZW1wdGVkICYmIGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIHJlc3VsdC5rZXkgPSBrZXk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQW4gb2JzZXJ2YWJsZSBvZiB2YWx1ZXMgdGhhdCBpcyB0aGUgZW1pdHRlZCBieSB0aGUgcmVzdWx0IG9mIGEge0BsaW5rIGdyb3VwQnl9IG9wZXJhdG9yLFxuICogY29udGFpbnMgYSBga2V5YCBwcm9wZXJ0eSBmb3IgdGhlIGdyb3VwaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwZWRPYnNlcnZhYmxlPEssIFQ+IGV4dGVuZHMgT2JzZXJ2YWJsZTxUPiB7XG4gIC8qKlxuICAgKiBUaGUga2V5IHZhbHVlIGZvciB0aGUgZ3JvdXBlZCBub3RpZmljYXRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBLO1xufVxuIiwgImltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuLyoqXG4gKiBFbWl0cyBgZmFsc2VgIGlmIHRoZSBpbnB1dCBPYnNlcnZhYmxlIGVtaXRzIGFueSB2YWx1ZXMsIG9yIGVtaXRzIGB0cnVlYCBpZiB0aGVcbiAqIGlucHV0IE9ic2VydmFibGUgY29tcGxldGVzIHdpdGhvdXQgZW1pdHRpbmcgYW55IHZhbHVlcy5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+VGVsbHMgd2hldGhlciBhbnkgdmFsdWVzIGFyZSBlbWl0dGVkIGJ5IGFuIE9ic2VydmFibGUuPC9zcGFuPlxuICpcbiAqICFbXShpc0VtcHR5LnBuZylcbiAqXG4gKiBgaXNFbXB0eWAgdHJhbnNmb3JtcyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdmFsdWVzIGludG8gYW4gT2JzZXJ2YWJsZSB0aGF0XG4gKiBlbWl0cyBhIHNpbmdsZSBib29sZWFuIHZhbHVlIHJlcHJlc2VudGluZyB3aGV0aGVyIG9yIG5vdCBhbnkgdmFsdWVzIHdlcmVcbiAqIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLiBBcyBzb29uIGFzIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBlbWl0cyBhXG4gKiB2YWx1ZSwgYGlzRW1wdHlgIHdpbGwgZW1pdCBhIGBmYWxzZWAgYW5kIGNvbXBsZXRlLiAgSWYgdGhlIHNvdXJjZSBPYnNlcnZhYmxlXG4gKiBjb21wbGV0ZXMgaGF2aW5nIG5vdCBlbWl0dGVkIGFueXRoaW5nLCBgaXNFbXB0eWAgd2lsbCBlbWl0IGEgYHRydWVgIGFuZFxuICogY29tcGxldGUuXG4gKlxuICogQSBzaW1pbGFyIGVmZmVjdCBjb3VsZCBiZSBhY2hpZXZlZCB3aXRoIHtAbGluayBjb3VudH0sIGJ1dCBgaXNFbXB0eWAgY2FuIGVtaXRcbiAqIGEgYGZhbHNlYCB2YWx1ZSBzb29uZXIuXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBFbWl0IGBmYWxzZWAgZm9yIGEgbm9uLWVtcHR5IE9ic2VydmFibGVcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgU3ViamVjdCwgaXNFbXB0eSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHNvdXJjZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAqIGNvbnN0IHJlc3VsdCA9IHNvdXJjZS5waXBlKGlzRW1wdHkoKSk7XG4gKlxuICogc291cmNlLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKlxuICogc291cmNlLm5leHQoJ2EnKTtcbiAqIHNvdXJjZS5uZXh0KCdiJyk7XG4gKiBzb3VyY2UubmV4dCgnYycpO1xuICogc291cmNlLmNvbXBsZXRlKCk7XG4gKlxuICogLy8gT3V0cHV0c1xuICogLy8gJ2EnXG4gKiAvLyBmYWxzZVxuICogLy8gJ2InXG4gKiAvLyAnYydcbiAqIGBgYFxuICpcbiAqIEVtaXQgYHRydWVgIGZvciBhbiBlbXB0eSBPYnNlcnZhYmxlXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IEVNUFRZLCBpc0VtcHR5IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgcmVzdWx0ID0gRU1QVFkucGlwZShpc0VtcHR5KCkpO1xuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqXG4gKiAvLyBPdXRwdXRzXG4gKiAvLyB0cnVlXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBjb3VudH1cbiAqIEBzZWUge0BsaW5rIEVNUFRZfVxuICpcbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGJvb2xlYW4gdmFsdWVcbiAqIGluZGljYXRpbmcgd2hldGhlciB0aGUgc291cmNlIE9ic2VydmFibGUgd2FzIGVtcHR5IG9yIG5vdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHk8VD4oKTogT3BlcmF0b3JGdW5jdGlvbjxULCBib29sZWFuPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGZhbHNlKTtcbiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodHJ1ZSk7XG4gICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgRW1wdHlFcnJvciB9IGZyb20gJy4uL3V0aWwvRW1wdHlFcnJvcic7XG5pbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uLCBUcnV0aHlUeXBlc09mIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAnLi9maWx0ZXInO1xuaW1wb3J0IHsgdGFrZUxhc3QgfSBmcm9tICcuL3Rha2VMYXN0JztcbmltcG9ydCB7IHRocm93SWZFbXB0eSB9IGZyb20gJy4vdGhyb3dJZkVtcHR5JztcbmltcG9ydCB7IGRlZmF1bHRJZkVtcHR5IH0gZnJvbSAnLi9kZWZhdWx0SWZFbXB0eSc7XG5pbXBvcnQgeyBpZGVudGl0eSB9IGZyb20gJy4uL3V0aWwvaWRlbnRpdHknO1xuXG5leHBvcnQgZnVuY3Rpb24gbGFzdDxUPihwcmVkaWNhdGU6IEJvb2xlYW5Db25zdHJ1Y3Rvcik6IE9wZXJhdG9yRnVuY3Rpb248VCwgVHJ1dGh5VHlwZXNPZjxUPj47XG5leHBvcnQgZnVuY3Rpb24gbGFzdDxULCBEPihwcmVkaWNhdGU6IEJvb2xlYW5Db25zdHJ1Y3RvciwgZGVmYXVsdFZhbHVlOiBEKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUcnV0aHlUeXBlc09mPFQ+IHwgRD47XG5leHBvcnQgZnVuY3Rpb24gbGFzdDxULCBEID0gVD4ocHJlZGljYXRlPzogbnVsbCwgZGVmYXVsdFZhbHVlPzogRCk6IE9wZXJhdG9yRnVuY3Rpb248VCwgVCB8IEQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGxhc3Q8VCwgUyBleHRlbmRzIFQ+KFxuICBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiB2YWx1ZSBpcyBTLFxuICBkZWZhdWx0VmFsdWU/OiBTXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFM+O1xuZXhwb3J0IGZ1bmN0aW9uIGxhc3Q8VCwgRCA9IFQ+KFxuICBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBib29sZWFuLFxuICBkZWZhdWx0VmFsdWU/OiBEXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFQgfCBEPjtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBvbmx5IHRoZSBsYXN0IGl0ZW0gZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUuXG4gKiBJdCBvcHRpb25hbGx5IHRha2VzIGEgcHJlZGljYXRlIGZ1bmN0aW9uIGFzIGEgcGFyYW1ldGVyLCBpbiB3aGljaCBjYXNlLCByYXRoZXIgdGhhbiBlbWl0dGluZ1xuICogdGhlIGxhc3QgaXRlbSBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSwgdGhlIHJlc3VsdGluZyBPYnNlcnZhYmxlIHdpbGwgZW1pdCB0aGUgbGFzdCBpdGVtXG4gKiBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB0aGF0IHNhdGlzZmllcyB0aGUgcHJlZGljYXRlLlxuICpcbiAqICFbXShsYXN0LnBuZylcbiAqXG4gKiBJdCB3aWxsIGVtaXQgYW4gZXJyb3Igbm90aWZpY2F0aW9uIGlmIHRoZSBzb3VyY2UgY29tcGxldGVzIHdpdGhvdXQgbm90aWZpY2F0aW9uIG9yIG9uZSB0aGF0IG1hdGNoZXNcbiAqIHRoZSBwcmVkaWNhdGUuIEl0IHJldHVybnMgdGhlIGxhc3QgdmFsdWUgb3IgaWYgYSBwcmVkaWNhdGUgaXMgcHJvdmlkZWQgbGFzdCB2YWx1ZSB0aGF0IG1hdGNoZXMgdGhlXG4gKiBwcmVkaWNhdGUuIEl0IHJldHVybnMgdGhlIGdpdmVuIGRlZmF1bHQgdmFsdWUgaWYgbm8gbm90aWZpY2F0aW9uIGlzIGVtaXR0ZWQgb3IgbWF0Y2hlcyB0aGUgcHJlZGljYXRlLlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogTGFzdCBhbHBoYWJldCBmcm9tIHRoZSBzZXF1ZW5jZVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tLCBsYXN0IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgc291cmNlID0gZnJvbShbJ3gnLCAneScsICd6J10pO1xuICogY29uc3QgcmVzdWx0ID0gc291cmNlLnBpcGUobGFzdCgpKTtcbiAqXG4gKiByZXN1bHQuc3Vic2NyaWJlKHZhbHVlID0+IGNvbnNvbGUubG9nKGBMYXN0IGFscGhhYmV0OiAkeyB2YWx1ZSB9YCkpO1xuICpcbiAqIC8vIE91dHB1dHNcbiAqIC8vIExhc3QgYWxwaGFiZXQ6IHpcbiAqIGBgYFxuICpcbiAqIERlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdmFsdWUgaW4gdGhlIHByZWRpY2F0ZSBpcyBub3QgbWF0Y2hlZFxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tLCBsYXN0IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgc291cmNlID0gZnJvbShbJ3gnLCAneScsICd6J10pO1xuICogY29uc3QgcmVzdWx0ID0gc291cmNlLnBpcGUobGFzdChjaGFyID0+IGNoYXIgPT09ICdhJywgJ25vdCBmb3VuZCcpKTtcbiAqXG4gKiByZXN1bHQuc3Vic2NyaWJlKHZhbHVlID0+IGNvbnNvbGUubG9nKGAnYScgaXMgJHsgdmFsdWUgfS5gKSk7XG4gKlxuICogLy8gT3V0cHV0c1xuICogLy8gJ2EnIGlzIG5vdCBmb3VuZC5cbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIHNraXB9XG4gKiBAc2VlIHtAbGluayBza2lwVW50aWx9XG4gKiBAc2VlIHtAbGluayBza2lwTGFzdH1cbiAqIEBzZWUge0BsaW5rIHNraXBXaGlsZX1cbiAqIEBzZWUge0BsaW5rIGZpcnN0fVxuICpcbiAqIEB0aHJvd3Mge0VtcHR5RXJyb3J9IERlbGl2ZXJzIGFuIGBFbXB0eUVycm9yYCB0byB0aGUgT2JzZXJ2ZXIncyBgZXJyb3JgXG4gKiBjYWxsYmFjayBpZiB0aGUgT2JzZXJ2YWJsZSBjb21wbGV0ZXMgYmVmb3JlIGFueSBgbmV4dGAgbm90aWZpY2F0aW9uIHdhcyBzZW50LlxuICpcbiAqIEBwYXJhbSBwcmVkaWNhdGUgVGhlIGNvbmRpdGlvbiBhbnkgc291cmNlIGVtaXR0ZWQgaXRlbSBoYXMgdG8gc2F0aXNmeS5cbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgQW4gb3B0aW9uYWwgZGVmYXVsdCB2YWx1ZSB0byBwcm92aWRlIGlmIGxhc3QgYHByZWRpY2F0ZWBcbiAqIGlzbid0IG1ldCBvciBubyB2YWx1ZXMgd2VyZSBlbWl0dGVkLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgb25seSB0aGUgbGFzdCBpdGVtXG4gKiBzYXRpc2Z5aW5nIHRoZSBnaXZlbiBjb25kaXRpb24gZnJvbSB0aGUgc291cmNlLCBvciBhbiBlcnJvciBub3RpZmljYXRpb25cbiAqIHdpdGggYW4gYEVtcHR5RXJyb3JgIG9iamVjdCBpZiBubyBzdWNoIGl0ZW1zIGFyZSBlbWl0dGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbGFzdDxULCBEPihcbiAgcHJlZGljYXRlPzogKCh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBib29sZWFuKSB8IG51bGwsXG4gIGRlZmF1bHRWYWx1ZT86IERcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgVCB8IEQ+IHtcbiAgY29uc3QgaGFzRGVmYXVsdFZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA+PSAyO1xuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT5cbiAgICBzb3VyY2UucGlwZShcbiAgICAgIHByZWRpY2F0ZSA/IGZpbHRlcigodiwgaSkgPT4gcHJlZGljYXRlKHYsIGksIHNvdXJjZSkpIDogaWRlbnRpdHksXG4gICAgICB0YWtlTGFzdCgxKSxcbiAgICAgIGhhc0RlZmF1bHRWYWx1ZSA/IGRlZmF1bHRJZkVtcHR5KGRlZmF1bHRWYWx1ZSEpIDogdGhyb3dJZkVtcHR5KCgpID0+IG5ldyBFbXB0eUVycm9yKCkpXG4gICAgKTtcbn1cbiIsICJpbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuLi9Ob3RpZmljYXRpb24nO1xuaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYWxsIG9mIHRoZSBub3RpZmljYXRpb25zIGZyb20gdGhlIHNvdXJjZSBPYnNlcnZhYmxlIGFzIGBuZXh0YFxuICogZW1pc3Npb25zIG1hcmtlZCB3aXRoIHRoZWlyIG9yaWdpbmFsIHR5cGVzIHdpdGhpbiB7QGxpbmsgTm90aWZpY2F0aW9ufVxuICogb2JqZWN0cy5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+V3JhcHMgYG5leHRgLCBgZXJyb3JgIGFuZCBgY29tcGxldGVgIGVtaXNzaW9ucyBpblxuICoge0BsaW5rIE5vdGlmaWNhdGlvbn0gb2JqZWN0cywgZW1pdHRlZCBhcyBgbmV4dGAgb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlLlxuICogPC9zcGFuPlxuICpcbiAqICFbXShtYXRlcmlhbGl6ZS5wbmcpXG4gKlxuICogYG1hdGVyaWFsaXplYCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBhIGBuZXh0YCBub3RpZmljYXRpb24gZm9yIGVhY2hcbiAqIGBuZXh0YCwgYGVycm9yYCwgb3IgYGNvbXBsZXRlYCBlbWlzc2lvbiBvZiB0aGUgc291cmNlIE9ic2VydmFibGUuIFdoZW4gdGhlXG4gKiBzb3VyY2UgT2JzZXJ2YWJsZSBlbWl0cyBgY29tcGxldGVgLCB0aGUgb3V0cHV0IE9ic2VydmFibGUgd2lsbCBlbWl0IGBuZXh0YCBhc1xuICogYSBOb3RpZmljYXRpb24gb2YgdHlwZSBcImNvbXBsZXRlXCIsIGFuZCB0aGVuIGl0IHdpbGwgZW1pdCBgY29tcGxldGVgIGFzIHdlbGwuXG4gKiBXaGVuIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBlbWl0cyBgZXJyb3JgLCB0aGUgb3V0cHV0IHdpbGwgZW1pdCBgbmV4dGAgYXMgYVxuICogTm90aWZpY2F0aW9uIG9mIHR5cGUgXCJlcnJvclwiLCBhbmQgdGhlbiBgY29tcGxldGVgLlxuICpcbiAqIFRoaXMgb3BlcmF0b3IgaXMgdXNlZnVsIGZvciBwcm9kdWNpbmcgbWV0YWRhdGEgb2YgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLCB0b1xuICogYmUgY29uc3VtZWQgYXMgYG5leHRgIGVtaXNzaW9ucy4gVXNlIGl0IGluIGNvbmp1bmN0aW9uIHdpdGhcbiAqIHtAbGluayBkZW1hdGVyaWFsaXplfS5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogQ29udmVydCBhIGZhdWx0eSBPYnNlcnZhYmxlIHRvIGFuIE9ic2VydmFibGUgb2YgTm90aWZpY2F0aW9uc1xuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBvZiwgbWF0ZXJpYWxpemUsIG1hcCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGxldHRlcnMgPSBvZignYScsICdiJywgMTMsICdkJyk7XG4gKiBjb25zdCB1cHBlckNhc2UgPSBsZXR0ZXJzLnBpcGUobWFwKCh4OiBhbnkpID0+IHgudG9VcHBlckNhc2UoKSkpO1xuICogY29uc3QgbWF0ZXJpYWxpemVkID0gdXBwZXJDYXNlLnBpcGUobWF0ZXJpYWxpemUoKSk7XG4gKlxuICogbWF0ZXJpYWxpemVkLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqXG4gKiAvLyBSZXN1bHRzIGluIHRoZSBmb2xsb3dpbmc6XG4gKiAvLyAtIE5vdGlmaWNhdGlvbiB7IGtpbmQ6ICdOJywgdmFsdWU6ICdBJywgZXJyb3I6IHVuZGVmaW5lZCwgaGFzVmFsdWU6IHRydWUgfVxuICogLy8gLSBOb3RpZmljYXRpb24geyBraW5kOiAnTicsIHZhbHVlOiAnQicsIGVycm9yOiB1bmRlZmluZWQsIGhhc1ZhbHVlOiB0cnVlIH1cbiAqIC8vIC0gTm90aWZpY2F0aW9uIHsga2luZDogJ0UnLCB2YWx1ZTogdW5kZWZpbmVkLCBlcnJvcjogVHlwZUVycm9yIHsgbWVzc2FnZTogeC50b1VwcGVyQ2FzZSBpcyBub3QgYSBmdW5jdGlvbiB9LCBoYXNWYWx1ZTogZmFsc2UgfVxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgTm90aWZpY2F0aW9ufVxuICogQHNlZSB7QGxpbmsgZGVtYXRlcmlhbGl6ZX1cbiAqXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0c1xuICoge0BsaW5rIE5vdGlmaWNhdGlvbn0gb2JqZWN0cyB0aGF0IHdyYXAgdGhlIG9yaWdpbmFsIGVtaXNzaW9ucyBmcm9tIHRoZVxuICogc291cmNlIE9ic2VydmFibGUgd2l0aCBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGVyaWFsaXplPFQ+KCk6IE9wZXJhdG9yRnVuY3Rpb248VCwgTm90aWZpY2F0aW9uPFQ+ICYgT2JzZXJ2YWJsZU5vdGlmaWNhdGlvbjxUPj4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgc291cmNlLnN1YnNjcmliZShcbiAgICAgIGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihcbiAgICAgICAgc3Vic2NyaWJlcixcbiAgICAgICAgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KE5vdGlmaWNhdGlvbi5jcmVhdGVOZXh0KHZhbHVlKSk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoTm90aWZpY2F0aW9uLmNyZWF0ZUNvbXBsZXRlKCkpO1xuICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHN1YnNjcmliZXIubmV4dChOb3RpZmljYXRpb24uY3JlYXRlRXJyb3IoZXJyKSk7XG4gICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgcmVkdWNlIH0gZnJvbSAnLi9yZWR1Y2UnO1xuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWwvaXNGdW5jdGlvbic7XG5cbi8qKlxuICogVGhlIGBtYXhgIG9wZXJhdG9yIG9wZXJhdGVzIG9uIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBudW1iZXJzIChvciBpdGVtcyB0aGF0XG4gKiBjYW4gYmUgY29tcGFyZWQgd2l0aCBhIHByb3ZpZGVkIGZ1bmN0aW9uKSwgYW5kIHdoZW4gc291cmNlIE9ic2VydmFibGUgY29tcGxldGVzXG4gKiBpdCBlbWl0cyBhIHNpbmdsZSBpdGVtOiB0aGUgaXRlbSB3aXRoIHRoZSBsYXJnZXN0IHZhbHVlLlxuICpcbiAqICFbXShtYXgucG5nKVxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogR2V0IHRoZSBtYXhpbWFsIHZhbHVlIG9mIGEgc2VyaWVzIG9mIG51bWJlcnNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIG1heCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIG9mKDUsIDQsIDcsIDIsIDgpXG4gKiAgIC5waXBlKG1heCgpKVxuICogICAuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIE91dHB1dHNcbiAqIC8vIDhcbiAqIGBgYFxuICpcbiAqIFVzZSBhIGNvbXBhcmVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgbWF4aW1hbCBpdGVtXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBtYXggfSBmcm9tICdyeGpzJztcbiAqXG4gKiBvZihcbiAqICAgeyBhZ2U6IDcsIG5hbWU6ICdGb28nIH0sXG4gKiAgIHsgYWdlOiA1LCBuYW1lOiAnQmFyJyB9LFxuICogICB7IGFnZTogOSwgbmFtZTogJ0JlZXInIH1cbiAqICkucGlwZShcbiAqICAgbWF4KChhLCBiKSA9PiBhLmFnZSA8IGIuYWdlID8gLTEgOiAxKVxuICogKVxuICogLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgubmFtZSkpO1xuICpcbiAqIC8vIE91dHB1dHNcbiAqIC8vICdCZWVyJ1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgbWlufVxuICpcbiAqIEBwYXJhbSBjb21wYXJlciBPcHRpb25hbCBjb21wYXJlciBmdW5jdGlvbiB0aGF0IGl0IHdpbGwgdXNlIGluc3RlYWQgb2YgaXRzXG4gKiBkZWZhdWx0IHRvIGNvbXBhcmUgdGhlIHZhbHVlIG9mIHR3byBpdGVtcy5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGl0ZW0gd2l0aCB0aGVcbiAqIGxhcmdlc3QgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXg8VD4oY29tcGFyZXI/OiAoeDogVCwgeTogVCkgPT4gbnVtYmVyKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIHJlZHVjZShpc0Z1bmN0aW9uKGNvbXBhcmVyKSA/ICh4LCB5KSA9PiAoY29tcGFyZXIoeCwgeSkgPiAwID8geCA6IHkpIDogKHgsIHkpID0+ICh4ID4geSA/IHggOiB5KSk7XG59XG4iLCAiaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICcuL21lcmdlTWFwJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIHtAbGluayBtZXJnZU1hcH0uIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC5cbiAqL1xuZXhwb3J0IGNvbnN0IGZsYXRNYXAgPSBtZXJnZU1hcDtcbiIsICJpbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZlZFZhbHVlT2YsIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG1lcmdlTWFwIH0gZnJvbSAnLi9tZXJnZU1hcCc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vdXRpbC9pc0Z1bmN0aW9uJztcblxuLyoqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OS4gVXNlIHtAbGluayBtZXJnZU1hcH0gaW5zdGVhZDogYG1lcmdlTWFwKCgpID0+IHJlc3VsdClgICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VNYXBUbzxPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PHVua25vd24+PihcbiAgaW5uZXJPYnNlcnZhYmxlOiBPLFxuICBjb25jdXJyZW50PzogbnVtYmVyXG4pOiBPcGVyYXRvckZ1bmN0aW9uPHVua25vd24sIE9ic2VydmVkVmFsdWVPZjxPPj47XG4vKipcbiAqIEBkZXByZWNhdGVkIFRoZSBgcmVzdWx0U2VsZWN0b3JgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSBhbiBpbm5lciBgbWFwYCBpbnN0ZWFkLlxuICogRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvcmVzdWx0U2VsZWN0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlTWFwVG88VCwgUiwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDx1bmtub3duPj4oXG4gIGlubmVyT2JzZXJ2YWJsZTogTyxcbiAgcmVzdWx0U2VsZWN0b3I6IChvdXRlclZhbHVlOiBULCBpbm5lclZhbHVlOiBPYnNlcnZlZFZhbHVlT2Y8Tz4sIG91dGVySW5kZXg6IG51bWJlciwgaW5uZXJJbmRleDogbnVtYmVyKSA9PiBSLFxuICBjb25jdXJyZW50PzogbnVtYmVyXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFI+O1xuLyogdHNsaW50OmVuYWJsZTptYXgtbGluZS1sZW5ndGggKi9cblxuLyoqXG4gKiBQcm9qZWN0cyBlYWNoIHNvdXJjZSB2YWx1ZSB0byB0aGUgc2FtZSBPYnNlcnZhYmxlIHdoaWNoIGlzIG1lcmdlZCBtdWx0aXBsZVxuICogdGltZXMgaW4gdGhlIG91dHB1dCBPYnNlcnZhYmxlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5JdCdzIGxpa2Uge0BsaW5rIG1lcmdlTWFwfSwgYnV0IG1hcHMgZWFjaCB2YWx1ZSBhbHdheXNcbiAqIHRvIHRoZSBzYW1lIGlubmVyIE9ic2VydmFibGUuPC9zcGFuPlxuICpcbiAqICFbXShtZXJnZU1hcFRvLnBuZylcbiAqXG4gKiBNYXBzIGVhY2ggc291cmNlIHZhbHVlIHRvIHRoZSBnaXZlbiBPYnNlcnZhYmxlIGBpbm5lck9ic2VydmFibGVgIHJlZ2FyZGxlc3NcbiAqIG9mIHRoZSBzb3VyY2UgdmFsdWUsIGFuZCB0aGVuIG1lcmdlcyB0aG9zZSByZXN1bHRpbmcgT2JzZXJ2YWJsZXMgaW50byBvbmVcbiAqIHNpbmdsZSBPYnNlcnZhYmxlLCB3aGljaCBpcyB0aGUgb3V0cHV0IE9ic2VydmFibGUuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIEZvciBlYWNoIGNsaWNrIGV2ZW50LCBzdGFydCBhbiBpbnRlcnZhbCBPYnNlcnZhYmxlIHRpY2tpbmcgZXZlcnkgMSBzZWNvbmRcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZU1hcFRvLCBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCByZXN1bHQgPSBjbGlja3MucGlwZShtZXJnZU1hcFRvKGludGVydmFsKDEwMDApKSk7XG4gKlxuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGNvbmNhdE1hcFRvfVxuICogQHNlZSB7QGxpbmsgbWVyZ2V9XG4gKiBAc2VlIHtAbGluayBtZXJnZUFsbH1cbiAqIEBzZWUge0BsaW5rIG1lcmdlTWFwfVxuICogQHNlZSB7QGxpbmsgbWVyZ2VTY2FufVxuICogQHNlZSB7QGxpbmsgc3dpdGNoTWFwVG99XG4gKlxuICogQHBhcmFtIGlubmVyT2JzZXJ2YWJsZSBBbiBgT2JzZXJ2YWJsZUlucHV0YCB0byByZXBsYWNlIGVhY2ggdmFsdWUgZnJvbSB0aGVcbiAqIHNvdXJjZSBPYnNlcnZhYmxlLlxuICogQHBhcmFtIGNvbmN1cnJlbnQgTWF4aW11bSBudW1iZXIgb2YgaW5wdXQgT2JzZXJ2YWJsZXMgYmVpbmcgc3Vic2NyaWJlZCB0b1xuICogY29uY3VycmVudGx5LlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgaXRlbXMgZnJvbSB0aGVcbiAqIGdpdmVuIGBpbm5lck9ic2VydmFibGVgLlxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIGluIHY5LiBVc2Uge0BsaW5rIG1lcmdlTWFwfSBpbnN0ZWFkOiBgbWVyZ2VNYXAoKCkgPT4gcmVzdWx0KWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlTWFwVG88VCwgUiwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDx1bmtub3duPj4oXG4gIGlubmVyT2JzZXJ2YWJsZTogTyxcbiAgcmVzdWx0U2VsZWN0b3I/OiAoKG91dGVyVmFsdWU6IFQsIGlubmVyVmFsdWU6IE9ic2VydmVkVmFsdWVPZjxPPiwgb3V0ZXJJbmRleDogbnVtYmVyLCBpbm5lckluZGV4OiBudW1iZXIpID0+IFIpIHwgbnVtYmVyLFxuICBjb25jdXJyZW50OiBudW1iZXIgPSBJbmZpbml0eVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZlZFZhbHVlT2Y8Tz4gfCBSPiB7XG4gIGlmIChpc0Z1bmN0aW9uKHJlc3VsdFNlbGVjdG9yKSkge1xuICAgIHJldHVybiBtZXJnZU1hcCgoKSA9PiBpbm5lck9ic2VydmFibGUsIHJlc3VsdFNlbGVjdG9yLCBjb25jdXJyZW50KTtcbiAgfVxuICBpZiAodHlwZW9mIHJlc3VsdFNlbGVjdG9yID09PSAnbnVtYmVyJykge1xuICAgIGNvbmN1cnJlbnQgPSByZXN1bHRTZWxlY3RvcjtcbiAgfVxuICByZXR1cm4gbWVyZ2VNYXAoKCkgPT4gaW5uZXJPYnNlcnZhYmxlLCBjb25jdXJyZW50KTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQsIE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IG1lcmdlSW50ZXJuYWxzIH0gZnJvbSAnLi9tZXJnZUludGVybmFscyc7XG5cbi8qKlxuICogQXBwbGllcyBhbiBhY2N1bXVsYXRvciBmdW5jdGlvbiBvdmVyIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB3aGVyZSB0aGVcbiAqIGFjY3VtdWxhdG9yIGZ1bmN0aW9uIGl0c2VsZiByZXR1cm5zIGFuIE9ic2VydmFibGUsIHRoZW4gZWFjaCBpbnRlcm1lZGlhdGVcbiAqIE9ic2VydmFibGUgcmV0dXJuZWQgaXMgbWVyZ2VkIGludG8gdGhlIG91dHB1dCBPYnNlcnZhYmxlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5JdCdzIGxpa2Uge0BsaW5rIHNjYW59LCBidXQgdGhlIE9ic2VydmFibGVzIHJldHVybmVkXG4gKiBieSB0aGUgYWNjdW11bGF0b3IgYXJlIG1lcmdlZCBpbnRvIHRoZSBvdXRlciBPYnNlcnZhYmxlLjwvc3Bhbj5cbiAqXG4gKiBUaGUgZmlyc3QgcGFyYW1ldGVyIG9mIHRoZSBgbWVyZ2VTY2FuYCBpcyBhbiBgYWNjdW11bGF0b3JgIGZ1bmN0aW9uIHdoaWNoIGlzXG4gKiBiZWluZyBjYWxsZWQgZXZlcnkgdGltZSB0aGUgc291cmNlIE9ic2VydmFibGUgZW1pdHMgYSB2YWx1ZS4gYG1lcmdlU2NhbmAgd2lsbFxuICogc3Vic2NyaWJlIHRvIHRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUgYGFjY3VtdWxhdG9yYCBmdW5jdGlvbiBhbmQgd2lsbCBlbWl0XG4gKiB2YWx1ZXMgdG8gdGhlIHN1YnNjcmliZXIgZW1pdHRlZCBieSBpbm5lciBPYnNlcnZhYmxlLlxuICpcbiAqIFRoZSBgYWNjdW11bGF0b3JgIGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZCB3aXRoIHRocmVlIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGl0OlxuICogYGFjY2AsIGB2YWx1ZWAgYW5kIGBpbmRleGAuIFRoZSBgYWNjYCBwYXJhbWV0ZXIgaXMgdXNlZCBhcyB0aGUgc3RhdGUgcGFyYW1ldGVyXG4gKiB3aG9zZSB2YWx1ZSBpcyBpbml0aWFsbHkgc2V0IHRvIHRoZSBgc2VlZGAgcGFyYW1ldGVyICh0aGUgc2Vjb25kIHBhcmFtZXRlclxuICogcGFzc2VkIHRvIHRoZSBgbWVyZ2VTY2FuYCBvcGVyYXRvcikuXG4gKlxuICogYG1lcmdlU2NhbmAgaW50ZXJuYWxseSBrZWVwcyB0aGUgdmFsdWUgb2YgdGhlIGBhY2NgIHBhcmFtZXRlcjogYXMgbG9uZyBhcyB0aGVcbiAqIHNvdXJjZSBPYnNlcnZhYmxlIGVtaXRzIHdpdGhvdXQgaW5uZXIgT2JzZXJ2YWJsZSBlbWl0dGluZywgdGhlIGBhY2NgIHdpbGwgYmVcbiAqIHNldCB0byBgc2VlZGAuIFRoZSBuZXh0IHRpbWUgdGhlIGlubmVyIE9ic2VydmFibGUgZW1pdHMgYSB2YWx1ZSwgYG1lcmdlU2NhbmBcbiAqIHdpbGwgaW50ZXJuYWxseSByZW1lbWJlciBpdCBhbmQgaXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGBhY2N1bXVsYXRvcmBcbiAqIGZ1bmN0aW9uIGFzIGBhY2NgIHBhcmFtZXRlciB0aGUgbmV4dCB0aW1lIHNvdXJjZSBlbWl0cy5cbiAqXG4gKiBUaGUgYHZhbHVlYCBwYXJhbWV0ZXIgb2YgdGhlIGBhY2N1bXVsYXRvcmAgZnVuY3Rpb24gaXMgdGhlIHZhbHVlIGVtaXR0ZWQgYnkgdGhlXG4gKiBzb3VyY2UgT2JzZXJ2YWJsZSwgd2hpbGUgdGhlIGBpbmRleGAgaXMgYSBudW1iZXIgd2hpY2ggcmVwcmVzZW50IHRoZSBvcmRlciBvZiB0aGVcbiAqIGN1cnJlbnQgZW1pc3Npb24gYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLiBJdCBzdGFydHMgd2l0aCAwLlxuICpcbiAqIFRoZSBsYXN0IHBhcmFtZXRlciB0byB0aGUgYG1lcmdlU2NhbmAgaXMgdGhlIGBjb25jdXJyZW50YCB2YWx1ZSB3aGljaCBkZWZhdWx0c1xuICogdG8gSW5maW5pdHkuIEl0IHJlcHJlc2VudHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGlubmVyIE9ic2VydmFibGUgc3Vic2NyaXB0aW9uc1xuICogYXQgYSB0aW1lLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBDb3VudCB0aGUgbnVtYmVyIG9mIGNsaWNrIGV2ZW50c1xuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIG1hcCwgbWVyZ2VTY2FuLCBvZiB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGNsaWNrJCA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCBvbmUkID0gY2xpY2skLnBpcGUobWFwKCgpID0+IDEpKTtcbiAqIGNvbnN0IHNlZWQgPSAwO1xuICogY29uc3QgY291bnQkID0gb25lJC5waXBlKFxuICogICBtZXJnZVNjYW4oKGFjYywgb25lKSA9PiBvZihhY2MgKyBvbmUpLCBzZWVkKVxuICogKTtcbiAqXG4gKiBjb3VudCQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIFJlc3VsdHM6XG4gKiAvLyAxXG4gKiAvLyAyXG4gKiAvLyAzXG4gKiAvLyA0XG4gKiAvLyAuLi5hbmQgc28gb24gZm9yIGVhY2ggY2xpY2tcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIHNjYW59XG4gKiBAc2VlIHtAbGluayBzd2l0Y2hTY2FufVxuICpcbiAqIEBwYXJhbSBhY2N1bXVsYXRvciBUaGUgYWNjdW11bGF0b3IgZnVuY3Rpb24gY2FsbGVkIG9uIGVhY2ggc291cmNlIHZhbHVlLlxuICogQHBhcmFtIHNlZWQgVGhlIGluaXRpYWwgYWNjdW11bGF0aW9uIHZhbHVlLlxuICogQHBhcmFtIGNvbmN1cnJlbnQgTWF4aW11bSBudW1iZXIgb2YgaW5wdXQgT2JzZXJ2YWJsZXMgYmVpbmcgc3Vic2NyaWJlZCB0b1xuICogY29uY3VycmVudGx5LlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIG9mIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZVNjYW48VCwgUj4oXG4gIGFjY3VtdWxhdG9yOiAoYWNjOiBSLCB2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gT2JzZXJ2YWJsZUlucHV0PFI+LFxuICBzZWVkOiBSLFxuICBjb25jdXJyZW50ID0gSW5maW5pdHlcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgUj4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgLy8gVGhlIGFjY3VtdWxhdGVkIHN0YXRlLlxuICAgIGxldCBzdGF0ZSA9IHNlZWQ7XG5cbiAgICByZXR1cm4gbWVyZ2VJbnRlcm5hbHMoXG4gICAgICBzb3VyY2UsXG4gICAgICBzdWJzY3JpYmVyLFxuICAgICAgKHZhbHVlLCBpbmRleCkgPT4gYWNjdW11bGF0b3Ioc3RhdGUsIHZhbHVlLCBpbmRleCksXG4gICAgICBjb25jdXJyZW50LFxuICAgICAgKHZhbHVlKSA9PiB7XG4gICAgICAgIHN0YXRlID0gdmFsdWU7XG4gICAgICB9LFxuICAgICAgZmFsc2UsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAoKSA9PiAoc3RhdGUgPSBudWxsISlcbiAgICApO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyByZWR1Y2UgfSBmcm9tICcuL3JlZHVjZSc7XG5pbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vdXRpbC9pc0Z1bmN0aW9uJztcblxuLyoqXG4gKiBUaGUgYG1pbmAgb3BlcmF0b3Igb3BlcmF0ZXMgb24gYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIG51bWJlcnMgKG9yIGl0ZW1zIHRoYXRcbiAqIGNhbiBiZSBjb21wYXJlZCB3aXRoIGEgcHJvdmlkZWQgZnVuY3Rpb24pLCBhbmQgd2hlbiBzb3VyY2UgT2JzZXJ2YWJsZSBjb21wbGV0ZXNcbiAqIGl0IGVtaXRzIGEgc2luZ2xlIGl0ZW06IHRoZSBpdGVtIHdpdGggdGhlIHNtYWxsZXN0IHZhbHVlLlxuICpcbiAqICFbXShtaW4ucG5nKVxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogR2V0IHRoZSBtaW5pbWFsIHZhbHVlIG9mIGEgc2VyaWVzIG9mIG51bWJlcnNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIG1pbiB9IGZyb20gJ3J4anMnO1xuICpcbiAqIG9mKDUsIDQsIDcsIDIsIDgpXG4gKiAgIC5waXBlKG1pbigpKVxuICogICAuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIE91dHB1dHNcbiAqIC8vIDJcbiAqIGBgYFxuICpcbiAqIFVzZSBhIGNvbXBhcmVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgbWluaW1hbCBpdGVtXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBtaW4gfSBmcm9tICdyeGpzJztcbiAqXG4gKiBvZihcbiAqICAgeyBhZ2U6IDcsIG5hbWU6ICdGb28nIH0sXG4gKiAgIHsgYWdlOiA1LCBuYW1lOiAnQmFyJyB9LFxuICogICB7IGFnZTogOSwgbmFtZTogJ0JlZXInIH1cbiAqICkucGlwZShcbiAqICAgbWluKChhLCBiKSA9PiBhLmFnZSA8IGIuYWdlID8gLTEgOiAxKVxuICogKVxuICogLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgubmFtZSkpO1xuICpcbiAqIC8vIE91dHB1dHNcbiAqIC8vICdCYXInXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBtYXh9XG4gKlxuICogQHBhcmFtIGNvbXBhcmVyIE9wdGlvbmFsIGNvbXBhcmVyIGZ1bmN0aW9uIHRoYXQgaXQgd2lsbCB1c2UgaW5zdGVhZCBvZiBpdHNcbiAqIGRlZmF1bHQgdG8gY29tcGFyZSB0aGUgdmFsdWUgb2YgdHdvIGl0ZW1zLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgaXRlbSB3aXRoIHRoZVxuICogc21hbGxlc3QgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaW48VD4oY29tcGFyZXI/OiAoeDogVCwgeTogVCkgPT4gbnVtYmVyKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIHJlZHVjZShpc0Z1bmN0aW9uKGNvbXBhcmVyKSA/ICh4LCB5KSA9PiAoY29tcGFyZXIoeCwgeSkgPCAwID8geCA6IHkpIDogKHgsIHkpID0+ICh4IDwgeSA/IHggOiB5KSk7XG59XG4iLCAiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJy4uL1N1YmplY3QnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgQ29ubmVjdGFibGVPYnNlcnZhYmxlIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9Db25uZWN0YWJsZU9ic2VydmFibGUnO1xuaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiwgVW5hcnlGdW5jdGlvbiwgT2JzZXJ2ZWRWYWx1ZU9mLCBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vdXRpbC9pc0Z1bmN0aW9uJztcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICcuL2Nvbm5lY3QnO1xuXG4vKipcbiAqIEFuIG9wZXJhdG9yIHRoYXQgY3JlYXRlcyBhIHtAbGluayBDb25uZWN0YWJsZU9ic2VydmFibGV9LCB0aGF0IHdoZW4gY29ubmVjdGVkLFxuICogd2l0aCB0aGUgYGNvbm5lY3RgIG1ldGhvZCwgd2lsbCB1c2UgdGhlIHByb3ZpZGVkIHN1YmplY3QgdG8gbXVsdGljYXN0IHRoZSB2YWx1ZXNcbiAqIGZyb20gdGhlIHNvdXJjZSB0byBhbGwgY29uc3VtZXJzLlxuICpcbiAqIEBwYXJhbSBzdWJqZWN0IFRoZSBzdWJqZWN0IHRvIG11bHRpY2FzdCB0aHJvdWdoLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHtAbGluayBDb25uZWN0YWJsZU9ic2VydmFibGV9XG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gdjguIFRvIGNyZWF0ZSBhIGNvbm5lY3RhYmxlIG9ic2VydmFibGUsIHVzZSB7QGxpbmsgY29ubmVjdGFibGV9LlxuICogSWYgeW91J3JlIHVzaW5nIHtAbGluayByZWZDb3VudH0gYWZ0ZXIgYG11bHRpY2FzdGAsIHVzZSB0aGUge0BsaW5rIHNoYXJlfSBvcGVyYXRvciBpbnN0ZWFkLlxuICogYG11bHRpY2FzdChzdWJqZWN0KSwgcmVmQ291bnQoKWAgaXMgZXF1aXZhbGVudCB0b1xuICogYHNoYXJlKHsgY29ubmVjdG9yOiAoKSA9PiBzdWJqZWN0LCByZXNldE9uRXJyb3I6IGZhbHNlLCByZXNldE9uQ29tcGxldGU6IGZhbHNlLCByZXNldE9uUmVmQ291bnRaZXJvOiBmYWxzZSB9KWAuXG4gKiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9tdWx0aWNhc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG11bHRpY2FzdDxUPihzdWJqZWN0OiBTdWJqZWN0PFQ+KTogVW5hcnlGdW5jdGlvbjxPYnNlcnZhYmxlPFQ+LCBDb25uZWN0YWJsZU9ic2VydmFibGU8VD4+O1xuXG4vKipcbiAqIEJlY2F1c2UgdGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHRoZSB7QGxpbmsgY29ubmVjdH0gb3BlcmF0b3IsIGFuZCB3YXMgb3RoZXJ3aXNlIHBvb3JseSBkb2N1bWVudGVkLFxuICogcmF0aGVyIHRoYW4gZHVwbGljYXRlIHRoZSBlZmZvcnQgb2YgZG9jdW1lbnRpbmcgdGhlIHNhbWUgYmVoYXZpb3IsIHBsZWFzZSBzZWUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlXG4gKiB7QGxpbmsgY29ubmVjdH0gb3BlcmF0b3IuXG4gKlxuICogQHBhcmFtIHN1YmplY3QgVGhlIHN1YmplY3QgdXNlZCB0byBtdWx0aWNhc3QuXG4gKiBAcGFyYW0gc2VsZWN0b3IgQSBzZXR1cCBmdW5jdGlvbiB0byBzZXR1cCB0aGUgbXVsdGljYXN0XG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCBtaXJyb3JzIHRoZSBvYnNlcnZhYmxlIHJldHVybmVkIGJ5IHRoZSBzZWxlY3Rvci5cbiAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVXNlIHRoZSB7QGxpbmsgY29ubmVjdH0gb3BlcmF0b3IgaW5zdGVhZC5cbiAqIGBtdWx0aWNhc3Qoc3ViamVjdCwgc2VsZWN0b3IpYCBpcyBlcXVpdmFsZW50IHRvXG4gKiBgY29ubmVjdChzZWxlY3RvciwgeyBjb25uZWN0b3I6ICgpID0+IHN1YmplY3QgfSlgLlxuICogRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvbXVsdGljYXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtdWx0aWNhc3Q8VCwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihcbiAgc3ViamVjdDogU3ViamVjdDxUPixcbiAgc2VsZWN0b3I6IChzaGFyZWQ6IE9ic2VydmFibGU8VD4pID0+IE9cbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgT2JzZXJ2ZWRWYWx1ZU9mPE8+PjtcblxuLyoqXG4gKiBBbiBvcGVyYXRvciB0aGF0IGNyZWF0ZXMgYSB7QGxpbmsgQ29ubmVjdGFibGVPYnNlcnZhYmxlfSwgdGhhdCB3aGVuIGNvbm5lY3RlZCxcbiAqIHdpdGggdGhlIGBjb25uZWN0YCBtZXRob2QsIHdpbGwgdXNlIHRoZSBwcm92aWRlZCBzdWJqZWN0IHRvIG11bHRpY2FzdCB0aGUgdmFsdWVzXG4gKiBmcm9tIHRoZSBzb3VyY2UgdG8gYWxsIGNvbnN1bWVycy5cbiAqXG4gKiBAcGFyYW0gc3ViamVjdEZhY3RvcnkgQSBmYWN0b3J5IHRoYXQgd2lsbCBiZSBjYWxsZWQgdG8gY3JlYXRlIHRoZSBzdWJqZWN0LiBQYXNzaW5nIGEgZnVuY3Rpb24gaGVyZVxuICogd2lsbCBjYXVzZSB0aGUgdW5kZXJseWluZyBzdWJqZWN0IHRvIGJlIFwicmVzZXRcIiBvbiBlcnJvciwgY29tcGxldGlvbiwgb3IgcmVmQ291bnRlZCB1bnN1YnNjcmlwdGlvbiBvZlxuICogdGhlIHNvdXJjZS5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSB7QGxpbmsgQ29ubmVjdGFibGVPYnNlcnZhYmxlfVxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIGluIHY4LiBUbyBjcmVhdGUgYSBjb25uZWN0YWJsZSBvYnNlcnZhYmxlLCB1c2Uge0BsaW5rIGNvbm5lY3RhYmxlfS5cbiAqIElmIHlvdSdyZSB1c2luZyB7QGxpbmsgcmVmQ291bnR9IGFmdGVyIGBtdWx0aWNhc3RgLCB1c2UgdGhlIHtAbGluayBzaGFyZX0gb3BlcmF0b3IgaW5zdGVhZC5cbiAqIGBtdWx0aWNhc3QoKCkgPT4gbmV3IEJlaGF2aW9yU3ViamVjdCgndGVzdCcpKSwgcmVmQ291bnQoKWAgaXMgZXF1aXZhbGVudCB0b1xuICogYHNoYXJlKHsgY29ubmVjdG9yOiAoKSA9PiBuZXcgQmVoYXZpb3JTdWJqZWN0KCd0ZXN0JykgfSlgLlxuICogRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvbXVsdGljYXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtdWx0aWNhc3Q8VD4oc3ViamVjdEZhY3Rvcnk6ICgpID0+IFN1YmplY3Q8VD4pOiBVbmFyeUZ1bmN0aW9uPE9ic2VydmFibGU8VD4sIENvbm5lY3RhYmxlT2JzZXJ2YWJsZTxUPj47XG5cbi8qKlxuICogQmVjYXVzZSB0aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdGhlIHtAbGluayBjb25uZWN0fSBvcGVyYXRvciwgYW5kIHdhcyBvdGhlcndpc2UgcG9vcmx5IGRvY3VtZW50ZWQsXG4gKiByYXRoZXIgdGhhbiBkdXBsaWNhdGUgdGhlIGVmZm9ydCBvZiBkb2N1bWVudGluZyB0aGUgc2FtZSBiZWhhdmlvciwgcGxlYXNlIHNlZSBkb2N1bWVudGF0aW9uIGZvciB0aGVcbiAqIHtAbGluayBjb25uZWN0fSBvcGVyYXRvci5cbiAqXG4gKiBAcGFyYW0gc3ViamVjdEZhY3RvcnkgQSBmYWN0b3J5IHRoYXQgY3JlYXRlcyB0aGUgc3ViamVjdCB1c2VkIHRvIG11bHRpY2FzdC5cbiAqIEBwYXJhbSBzZWxlY3RvciBBIGZ1bmN0aW9uIHRvIHNldHVwIHRoZSBtdWx0aWNhc3QgYW5kIHNlbGVjdCB0aGUgb3V0cHV0LlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgbWlycm9ycyB0aGUgb2JzZXJ2YWJsZSByZXR1cm5lZCBieSB0aGUgc2VsZWN0b3IuXG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSB0aGUge0BsaW5rIGNvbm5lY3R9IG9wZXJhdG9yIGluc3RlYWQuXG4gKiBgbXVsdGljYXN0KHN1YmplY3RGYWN0b3J5LCBzZWxlY3RvcilgIGlzIGVxdWl2YWxlbnQgdG9cbiAqIGBjb25uZWN0KHNlbGVjdG9yLCB7IGNvbm5lY3Rvcjogc3ViamVjdEZhY3RvcnkgfSlgLlxuICogRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvbXVsdGljYXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtdWx0aWNhc3Q8VCwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihcbiAgc3ViamVjdEZhY3Rvcnk6ICgpID0+IFN1YmplY3Q8VD4sXG4gIHNlbGVjdG9yOiAoc2hhcmVkOiBPYnNlcnZhYmxlPFQ+KSA9PiBPXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIE9ic2VydmVkVmFsdWVPZjxPPj47XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIGluIHY4LiBVc2UgdGhlIHtAbGluayBjb25uZWN0YWJsZX0gb2JzZXJ2YWJsZSwgdGhlIHtAbGluayBjb25uZWN0fSBvcGVyYXRvciBvciB0aGVcbiAqIHtAbGluayBzaGFyZX0gb3BlcmF0b3IgaW5zdGVhZC4gU2VlIHRoZSBvdmVybG9hZHMgYmVsb3cgZm9yIGVxdWl2YWxlbnQgcmVwbGFjZW1lbnQgZXhhbXBsZXMgb2YgdGhpcyBvcGVyYXRvcidzXG4gKiBiZWhhdmlvcnMuXG4gKiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9tdWx0aWNhc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG11bHRpY2FzdDxULCBSPihcbiAgc3ViamVjdE9yU3ViamVjdEZhY3Rvcnk6IFN1YmplY3Q8VD4gfCAoKCkgPT4gU3ViamVjdDxUPiksXG4gIHNlbGVjdG9yPzogKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gT2JzZXJ2YWJsZTxSPlxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBSPiB7XG4gIGNvbnN0IHN1YmplY3RGYWN0b3J5ID0gaXNGdW5jdGlvbihzdWJqZWN0T3JTdWJqZWN0RmFjdG9yeSkgPyBzdWJqZWN0T3JTdWJqZWN0RmFjdG9yeSA6ICgpID0+IHN1YmplY3RPclN1YmplY3RGYWN0b3J5O1xuXG4gIGlmIChpc0Z1bmN0aW9uKHNlbGVjdG9yKSkge1xuICAgIC8vIElmIGEgc2VsZWN0b3IgZnVuY3Rpb24gaXMgcHJvdmlkZWQsIHRoZW4gd2UncmUgYSBcIm5vcm1hbFwiIG9wZXJhdG9yIHRoYXQgaXNuJ3RcbiAgICAvLyBnb2luZyB0byByZXR1cm4gYSBDb25uZWN0YWJsZU9ic2VydmFibGUuIFdlIGNhbiB1c2UgYGNvbm5lY3RgIHRvIGRvIHdoYXQgd2VcbiAgICAvLyBuZWVkIHRvIGRvLlxuICAgIHJldHVybiBjb25uZWN0KHNlbGVjdG9yLCB7XG4gICAgICBjb25uZWN0b3I6IHN1YmplY3RGYWN0b3J5LFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IG5ldyBDb25uZWN0YWJsZU9ic2VydmFibGU8YW55Pihzb3VyY2UsIHN1YmplY3RGYWN0b3J5KTtcbn1cbiIsICJpbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5cbi8qKlxuICogR3JvdXBzIHBhaXJzIG9mIGNvbnNlY3V0aXZlIGVtaXNzaW9ucyB0b2dldGhlciBhbmQgZW1pdHMgdGhlbSBhcyBhbiBhcnJheSBvZlxuICogdHdvIHZhbHVlcy5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+UHV0cyB0aGUgY3VycmVudCB2YWx1ZSBhbmQgcHJldmlvdXMgdmFsdWUgdG9nZXRoZXIgYXNcbiAqIGFuIGFycmF5LCBhbmQgZW1pdHMgdGhhdC48L3NwYW4+XG4gKlxuICogIVtdKHBhaXJ3aXNlLnBuZylcbiAqXG4gKiBUaGUgTnRoIGVtaXNzaW9uIGZyb20gdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHdpbGwgY2F1c2UgdGhlIG91dHB1dCBPYnNlcnZhYmxlXG4gKiB0byBlbWl0IGFuIGFycmF5IFsoTi0xKXRoLCBOdGhdIG9mIHRoZSBwcmV2aW91cyBhbmQgdGhlIGN1cnJlbnQgdmFsdWUsIGFzIGFcbiAqIHBhaXIuIEZvciB0aGlzIHJlYXNvbiwgYHBhaXJ3aXNlYCBlbWl0cyBvbiB0aGUgc2Vjb25kIGFuZCBzdWJzZXF1ZW50XG4gKiBlbWlzc2lvbnMgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUsIGJ1dCBub3Qgb24gdGhlIGZpcnN0IGVtaXNzaW9uLCBiZWNhdXNlXG4gKiB0aGVyZSBpcyBubyBwcmV2aW91cyB2YWx1ZSBpbiB0aGF0IGNhc2UuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIE9uIGV2ZXJ5IGNsaWNrIChzdGFydGluZyBmcm9tIHRoZSBzZWNvbmQpLCBlbWl0IHRoZSByZWxhdGl2ZSBkaXN0YW5jZSB0byB0aGUgcHJldmlvdXMgY2xpY2tcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBwYWlyd2lzZSwgbWFwIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50PFBvaW50ZXJFdmVudD4oZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgcGFpcnMgPSBjbGlja3MucGlwZShwYWlyd2lzZSgpKTtcbiAqIGNvbnN0IGRpc3RhbmNlID0gcGFpcnMucGlwZShcbiAqICAgbWFwKChbZmlyc3QsIHNlY29uZF0pID0+IHtcbiAqICAgICBjb25zdCB4MCA9IGZpcnN0LmNsaWVudFg7XG4gKiAgICAgY29uc3QgeTAgPSBmaXJzdC5jbGllbnRZO1xuICogICAgIGNvbnN0IHgxID0gc2Vjb25kLmNsaWVudFg7XG4gKiAgICAgY29uc3QgeTEgPSBzZWNvbmQuY2xpZW50WTtcbiAqICAgICByZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHgwIC0geDEsIDIpICsgTWF0aC5wb3coeTAgLSB5MSwgMikpO1xuICogICB9KVxuICogKTtcbiAqXG4gKiBkaXN0YW5jZS5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBidWZmZXJ9XG4gKiBAc2VlIHtAbGluayBidWZmZXJDb3VudH1cbiAqXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgb2YgcGFpcnMgKGFzIGFycmF5cykgb2ZcbiAqIGNvbnNlY3V0aXZlIHZhbHVlcyBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhaXJ3aXNlPFQ+KCk6IE9wZXJhdG9yRnVuY3Rpb248VCwgW1QsIFRdPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBsZXQgcHJldjogVDtcbiAgICBsZXQgaGFzUHJldiA9IGZhbHNlO1xuICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHAgPSBwcmV2O1xuICAgICAgICBwcmV2ID0gdmFsdWU7XG4gICAgICAgIGhhc1ByZXYgJiYgc3Vic2NyaWJlci5uZXh0KFtwLCB2YWx1ZV0pO1xuICAgICAgICBoYXNQcmV2ID0gdHJ1ZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgbWFwIH0gZnJvbSAnLi9tYXAnO1xuaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcblxuLyogdHNsaW50OmRpc2FibGU6bWF4LWxpbmUtbGVuZ3RoICovXG4vKiogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBtYXB9IGFuZCBvcHRpb25hbCBjaGFpbmluZzogYHBsdWNrKCdmb28nLCAnYmFyJylgIGlzIGBtYXAoeCA9PiB4Py5mb28/LmJhcilgLiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguICovXG5leHBvcnQgZnVuY3Rpb24gcGx1Y2s8VCwgSzEgZXh0ZW5kcyBrZXlvZiBUPihrMTogSzEpOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFRbSzFdPjtcbi8qKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIG1hcH0gYW5kIG9wdGlvbmFsIGNoYWluaW5nOiBgcGx1Y2soJ2ZvbycsICdiYXInKWAgaXMgYG1hcCh4ID0+IHg/LmZvbz8uYmFyKWAuIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwbHVjazxULCBLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0+KGsxOiBLMSwgazI6IEsyKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUW0sxXVtLMl0+O1xuLyoqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgbWFwfSBhbmQgb3B0aW9uYWwgY2hhaW5pbmc6IGBwbHVjaygnZm9vJywgJ2JhcicpYCBpcyBgbWFwKHggPT4geD8uZm9vPy5iYXIpYC4gV2lsbCBiZSByZW1vdmVkIGluIHY4LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBsdWNrPFQsIEsxIGV4dGVuZHMga2V5b2YgVCwgSzIgZXh0ZW5kcyBrZXlvZiBUW0sxXSwgSzMgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl0+KFxuICBrMTogSzEsXG4gIGsyOiBLMixcbiAgazM6IEszXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFRbSzFdW0syXVtLM10+O1xuLyoqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgbWFwfSBhbmQgb3B0aW9uYWwgY2hhaW5pbmc6IGBwbHVjaygnZm9vJywgJ2JhcicpYCBpcyBgbWFwKHggPT4geD8uZm9vPy5iYXIpYC4gV2lsbCBiZSByZW1vdmVkIGluIHY4LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBsdWNrPFQsIEsxIGV4dGVuZHMga2V5b2YgVCwgSzIgZXh0ZW5kcyBrZXlvZiBUW0sxXSwgSzMgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl0sIEs0IGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdW0szXT4oXG4gIGsxOiBLMSxcbiAgazI6IEsyLFxuICBrMzogSzMsXG4gIGs0OiBLNFxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUW0sxXVtLMl1bSzNdW0s0XT47XG4vKiogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBtYXB9IGFuZCBvcHRpb25hbCBjaGFpbmluZzogYHBsdWNrKCdmb28nLCAnYmFyJylgIGlzIGBtYXAoeCA9PiB4Py5mb28/LmJhcilgLiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguICovXG5leHBvcnQgZnVuY3Rpb24gcGx1Y2s8XG4gIFQsXG4gIEsxIGV4dGVuZHMga2V5b2YgVCxcbiAgSzIgZXh0ZW5kcyBrZXlvZiBUW0sxXSxcbiAgSzMgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl0sXG4gIEs0IGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdW0szXSxcbiAgSzUgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl1bSzNdW0s0XVxuPihrMTogSzEsIGsyOiBLMiwgazM6IEszLCBrNDogSzQsIGs1OiBLNSk6IE9wZXJhdG9yRnVuY3Rpb248VCwgVFtLMV1bSzJdW0szXVtLNF1bSzVdPjtcbi8qKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIG1hcH0gYW5kIG9wdGlvbmFsIGNoYWluaW5nOiBgcGx1Y2soJ2ZvbycsICdiYXInKWAgaXMgYG1hcCh4ID0+IHg/LmZvbz8uYmFyKWAuIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwbHVjazxcbiAgVCxcbiAgSzEgZXh0ZW5kcyBrZXlvZiBULFxuICBLMiBleHRlbmRzIGtleW9mIFRbSzFdLFxuICBLMyBleHRlbmRzIGtleW9mIFRbSzFdW0syXSxcbiAgSzQgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl1bSzNdLFxuICBLNSBleHRlbmRzIGtleW9mIFRbSzFdW0syXVtLM11bSzRdLFxuICBLNiBleHRlbmRzIGtleW9mIFRbSzFdW0syXVtLM11bSzRdW0s1XVxuPihrMTogSzEsIGsyOiBLMiwgazM6IEszLCBrNDogSzQsIGs1OiBLNSwgazY6IEs2KTogT3BlcmF0b3JGdW5jdGlvbjxULCBUW0sxXVtLMl1bSzNdW0s0XVtLNV1bSzZdPjtcbi8qKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIG1hcH0gYW5kIG9wdGlvbmFsIGNoYWluaW5nOiBgcGx1Y2soJ2ZvbycsICdiYXInKWAgaXMgYG1hcCh4ID0+IHg/LmZvbz8uYmFyKWAuIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwbHVjazxcbiAgVCxcbiAgSzEgZXh0ZW5kcyBrZXlvZiBULFxuICBLMiBleHRlbmRzIGtleW9mIFRbSzFdLFxuICBLMyBleHRlbmRzIGtleW9mIFRbSzFdW0syXSxcbiAgSzQgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl1bSzNdLFxuICBLNSBleHRlbmRzIGtleW9mIFRbSzFdW0syXVtLM11bSzRdLFxuICBLNiBleHRlbmRzIGtleW9mIFRbSzFdW0syXVtLM11bSzRdW0s1XVxuPihrMTogSzEsIGsyOiBLMiwgazM6IEszLCBrNDogSzQsIGs1OiBLNSwgazY6IEs2LCAuLi5yZXN0OiBzdHJpbmdbXSk6IE9wZXJhdG9yRnVuY3Rpb248VCwgdW5rbm93bj47XG4vKiogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBtYXB9IGFuZCBvcHRpb25hbCBjaGFpbmluZzogYHBsdWNrKCdmb28nLCAnYmFyJylgIGlzIGBtYXAoeCA9PiB4Py5mb28/LmJhcilgLiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguICovXG5leHBvcnQgZnVuY3Rpb24gcGx1Y2s8VD4oLi4ucHJvcGVydGllczogc3RyaW5nW10pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIHVua25vd24+O1xuLyogdHNsaW50OmVuYWJsZTptYXgtbGluZS1sZW5ndGggKi9cblxuLyoqXG4gKiBNYXBzIGVhY2ggc291cmNlIHZhbHVlIHRvIGl0cyBzcGVjaWZpZWQgbmVzdGVkIHByb3BlcnR5LlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5MaWtlIHtAbGluayBtYXB9LCBidXQgbWVhbnQgb25seSBmb3IgcGlja2luZyBvbmUgb2ZcbiAqIHRoZSBuZXN0ZWQgcHJvcGVydGllcyBvZiBldmVyeSBlbWl0dGVkIHZhbHVlLjwvc3Bhbj5cbiAqXG4gKiAhW10ocGx1Y2sucG5nKVxuICpcbiAqIEdpdmVuIGEgbGlzdCBvZiBzdHJpbmdzIG9yIG51bWJlcnMgZGVzY3JpYmluZyBhIHBhdGggdG8gYSBwcm9wZXJ0eSwgcmV0cmlldmVzXG4gKiB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpZWQgbmVzdGVkIHByb3BlcnR5IGZyb20gYWxsIHZhbHVlcyBpbiB0aGUgc291cmNlXG4gKiBPYnNlcnZhYmxlLiBJZiBhIHByb3BlcnR5IGNhbid0IGJlIHJlc29sdmVkLCBpdCB3aWxsIHJldHVybiBgdW5kZWZpbmVkYCBmb3JcbiAqIHRoYXQgdmFsdWUuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIE1hcCBldmVyeSBjbGljayB0byB0aGUgdGFnTmFtZSBvZiB0aGUgY2xpY2tlZCB0YXJnZXQgZWxlbWVudFxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIHBsdWNrIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHRhZ05hbWVzID0gY2xpY2tzLnBpcGUocGx1Y2soJ3RhcmdldCcsICd0YWdOYW1lJykpO1xuICpcbiAqIHRhZ05hbWVzLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIG1hcH1cbiAqXG4gKiBAcGFyYW0gcHJvcGVydGllcyBUaGUgbmVzdGVkIHByb3BlcnRpZXMgdG8gcGx1Y2sgZnJvbSBlYWNoIHNvdXJjZVxuICogdmFsdWUuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgb2YgcHJvcGVydHkgdmFsdWVzIGZyb20gdGhlXG4gKiBzb3VyY2UgdmFsdWVzLlxuICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBtYXB9IGFuZCBvcHRpb25hbCBjaGFpbmluZzogYHBsdWNrKCdmb28nLCAnYmFyJylgIGlzIGBtYXAoeCA9PiB4Py5mb28/LmJhcilgLiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwbHVjazxULCBSPiguLi5wcm9wZXJ0aWVzOiBBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2w+KTogT3BlcmF0b3JGdW5jdGlvbjxULCBSPiB7XG4gIGNvbnN0IGxlbmd0aCA9IHByb3BlcnRpZXMubGVuZ3RoO1xuICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdsaXN0IG9mIHByb3BlcnRpZXMgY2Fubm90IGJlIGVtcHR5LicpO1xuICB9XG4gIHJldHVybiBtYXAoKHgpID0+IHtcbiAgICBsZXQgY3VycmVudFByb3A6IGFueSA9IHg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcCA9IGN1cnJlbnRQcm9wPy5bcHJvcGVydGllc1tpXV07XG4gICAgICBpZiAodHlwZW9mIHAgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGN1cnJlbnRQcm9wID0gcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50UHJvcDtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJy4uL1N1YmplY3QnO1xuaW1wb3J0IHsgbXVsdGljYXN0IH0gZnJvbSAnLi9tdWx0aWNhc3QnO1xuaW1wb3J0IHsgQ29ubmVjdGFibGVPYnNlcnZhYmxlIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9Db25uZWN0YWJsZU9ic2VydmFibGUnO1xuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPcGVyYXRvckZ1bmN0aW9uLCBVbmFyeUZ1bmN0aW9uLCBPYnNlcnZhYmxlSW5wdXQsIE9ic2VydmVkVmFsdWVPZiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICcuL2Nvbm5lY3QnO1xuXG4vKipcbiAqIFJldHVybnMgYSBjb25uZWN0YWJsZSBvYnNlcnZhYmxlIHRoYXQsIHdoZW4gY29ubmVjdGVkLCB3aWxsIG11bHRpY2FzdFxuICogYWxsIHZhbHVlcyB0aHJvdWdoIGEgc2luZ2xlIHVuZGVybHlpbmcge0BsaW5rIFN1YmplY3R9IGluc3RhbmNlLlxuICpcbiAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVG8gY3JlYXRlIGEgY29ubmVjdGFibGUgb2JzZXJ2YWJsZSwgdXNlIHtAbGluayBjb25uZWN0YWJsZX0uXG4gKiBgc291cmNlLnBpcGUocHVibGlzaCgpKWAgaXMgZXF1aXZhbGVudCB0b1xuICogYGNvbm5lY3RhYmxlKHNvdXJjZSwgeyBjb25uZWN0b3I6ICgpID0+IG5ldyBTdWJqZWN0KCksIHJlc2V0T25EaXNjb25uZWN0OiBmYWxzZSB9KWAuXG4gKiBJZiB5b3UncmUgdXNpbmcge0BsaW5rIHJlZkNvdW50fSBhZnRlciBgcHVibGlzaGAsIHVzZSB7QGxpbmsgc2hhcmV9IG9wZXJhdG9yIGluc3RlYWQuXG4gKiBgc291cmNlLnBpcGUocHVibGlzaCgpLCByZWZDb3VudCgpKWAgaXMgZXF1aXZhbGVudCB0b1xuICogYHNvdXJjZS5waXBlKHNoYXJlKHsgcmVzZXRPbkVycm9yOiBmYWxzZSwgcmVzZXRPbkNvbXBsZXRlOiBmYWxzZSwgcmVzZXRPblJlZkNvdW50WmVybzogZmFsc2UgfSkpYC5cbiAqIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL211bHRpY2FzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHVibGlzaDxUPigpOiBVbmFyeUZ1bmN0aW9uPE9ic2VydmFibGU8VD4sIENvbm5lY3RhYmxlT2JzZXJ2YWJsZTxUPj47XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYnNlcnZhYmxlLCB0aGF0IHdoZW4gc3Vic2NyaWJlZCB0bywgY3JlYXRlcyBhbiB1bmRlcmx5aW5nIHtAbGluayBTdWJqZWN0fSxcbiAqIHByb3ZpZGVzIGFuIG9ic2VydmFibGUgdmlldyBvZiBpdCB0byBhIGBzZWxlY3RvcmAgZnVuY3Rpb24sIHRha2VzIHRoZSBvYnNlcnZhYmxlIHJlc3VsdCBvZlxuICogdGhhdCBzZWxlY3RvciBmdW5jdGlvbiBhbmQgc3Vic2NyaWJlcyB0byBpdCwgc2VuZGluZyBpdHMgdmFsdWVzIHRvIHRoZSBjb25zdW1lciwgX3RoZW5fIGNvbm5lY3RzXG4gKiB0aGUgc3ViamVjdCB0byB0aGUgb3JpZ2luYWwgc291cmNlLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciBBIGZ1bmN0aW9uIHVzZWQgdG8gc2V0dXAgbXVsdGljYXN0aW5nIHByaW9yIHRvIGF1dG9tYXRpYyBjb25uZWN0aW9uLlxuICpcbiAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVXNlIHRoZSB7QGxpbmsgY29ubmVjdH0gb3BlcmF0b3IgaW5zdGVhZC5cbiAqIGBwdWJsaXNoKHNlbGVjdG9yKWAgaXMgZXF1aXZhbGVudCB0byBgY29ubmVjdChzZWxlY3RvcilgLlxuICogRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvbXVsdGljYXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwdWJsaXNoPFQsIE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8YW55Pj4oc2VsZWN0b3I6IChzaGFyZWQ6IE9ic2VydmFibGU8VD4pID0+IE8pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIE9ic2VydmVkVmFsdWVPZjxPPj47XG5cbi8qKlxuICogUmV0dXJucyBhIENvbm5lY3RhYmxlT2JzZXJ2YWJsZSwgd2hpY2ggaXMgYSB2YXJpZXR5IG9mIE9ic2VydmFibGUgdGhhdCB3YWl0cyB1bnRpbCBpdHMgY29ubmVjdCBtZXRob2QgaXMgY2FsbGVkXG4gKiBiZWZvcmUgaXQgYmVnaW5zIGVtaXR0aW5nIGl0ZW1zIHRvIHRob3NlIE9ic2VydmVycyB0aGF0IGhhdmUgc3Vic2NyaWJlZCB0byBpdC5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+TWFrZXMgYSBjb2xkIE9ic2VydmFibGUgaG90PC9zcGFuPlxuICpcbiAqICFbXShwdWJsaXNoLnBuZylcbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIE1ha2UgYHNvdXJjZSRgIGhvdCBieSBhcHBseWluZyBgcHVibGlzaGAgb3BlcmF0b3IsIHRoZW4gbWVyZ2UgZWFjaCBpbm5lciBvYnNlcnZhYmxlIGludG8gYSBzaW5nbGUgb25lXG4gKiBhbmQgc3Vic2NyaWJlXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IHppcCwgaW50ZXJ2YWwsIG9mLCBtYXAsIHB1Ymxpc2gsIG1lcmdlLCB0YXAgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBzb3VyY2UkID0gemlwKGludGVydmFsKDIwMDApLCBvZigxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5KSlcbiAqICAgLnBpcGUobWFwKChbLCBudW1iZXJdKSA9PiBudW1iZXIpKTtcbiAqXG4gKiBzb3VyY2UkXG4gKiAgIC5waXBlKFxuICogICAgIHB1Ymxpc2gobXVsdGljYXN0ZWQkID0+XG4gKiAgICAgICBtZXJnZShcbiAqICAgICAgICAgbXVsdGljYXN0ZWQkLnBpcGUodGFwKHggPT4gY29uc29sZS5sb2coJ1N0cmVhbSAxOicsIHgpKSksXG4gKiAgICAgICAgIG11bHRpY2FzdGVkJC5waXBlKHRhcCh4ID0+IGNvbnNvbGUubG9nKCdTdHJlYW0gMjonLCB4KSkpLFxuICogICAgICAgICBtdWx0aWNhc3RlZCQucGlwZSh0YXAoeCA9PiBjb25zb2xlLmxvZygnU3RyZWFtIDM6JywgeCkpKVxuICogICAgICAgKVxuICogICAgIClcbiAqICAgKVxuICogICAuc3Vic2NyaWJlKCk7XG4gKlxuICogLy8gUmVzdWx0cyBldmVyeSB0d28gc2Vjb25kc1xuICogLy8gU3RyZWFtIDE6IDFcbiAqIC8vIFN0cmVhbSAyOiAxXG4gKiAvLyBTdHJlYW0gMzogMVxuICogLy8gLi4uXG4gKiAvLyBTdHJlYW0gMTogOVxuICogLy8gU3RyZWFtIDI6IDlcbiAqIC8vIFN0cmVhbSAzOiA5XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBwdWJsaXNoTGFzdH1cbiAqIEBzZWUge0BsaW5rIHB1Ymxpc2hSZXBsYXl9XG4gKiBAc2VlIHtAbGluayBwdWJsaXNoQmVoYXZpb3J9XG4gKlxuICogQHBhcmFtIHNlbGVjdG9yIE9wdGlvbmFsIHNlbGVjdG9yIGZ1bmN0aW9uIHdoaWNoIGNhbiB1c2UgdGhlIG11bHRpY2FzdGVkIHNvdXJjZSBzZXF1ZW5jZSBhcyBtYW55IHRpbWVzXG4gKiBhcyBuZWVkZWQsIHdpdGhvdXQgY2F1c2luZyBtdWx0aXBsZSBzdWJzY3JpcHRpb25zIHRvIHRoZSBzb3VyY2Ugc2VxdWVuY2UuXG4gKiBTdWJzY3JpYmVycyB0byB0aGUgZ2l2ZW4gc291cmNlIHdpbGwgcmVjZWl2ZSBhbGwgbm90aWZpY2F0aW9ucyBvZiB0aGUgc291cmNlIGZyb20gdGhlIHRpbWUgb2YgdGhlIHN1YnNjcmlwdGlvbiBvbi5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBDb25uZWN0YWJsZU9ic2VydmFibGUgdGhhdCB1cG9uIGNvbm5lY3Rpb25cbiAqIGNhdXNlcyB0aGUgc291cmNlIE9ic2VydmFibGUgdG8gZW1pdCBpdGVtcyB0byBpdHMgT2JzZXJ2ZXJzLlxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIGluIHY4LiBVc2UgdGhlIHtAbGluayBjb25uZWN0YWJsZX0gb2JzZXJ2YWJsZSwgdGhlIHtAbGluayBjb25uZWN0fSBvcGVyYXRvciBvciB0aGVcbiAqIHtAbGluayBzaGFyZX0gb3BlcmF0b3IgaW5zdGVhZC4gU2VlIHRoZSBvdmVybG9hZHMgYmVsb3cgZm9yIGVxdWl2YWxlbnQgcmVwbGFjZW1lbnQgZXhhbXBsZXMgb2YgdGhpcyBvcGVyYXRvcidzXG4gKiBiZWhhdmlvcnMuXG4gKiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9tdWx0aWNhc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHB1Ymxpc2g8VCwgUj4oc2VsZWN0b3I/OiBPcGVyYXRvckZ1bmN0aW9uPFQsIFI+KTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHwgT3BlcmF0b3JGdW5jdGlvbjxULCBSPiB7XG4gIHJldHVybiBzZWxlY3RvciA/IChzb3VyY2UpID0+IGNvbm5lY3Qoc2VsZWN0b3IpKHNvdXJjZSkgOiAoc291cmNlKSA9PiBtdWx0aWNhc3QobmV3IFN1YmplY3Q8VD4oKSkoc291cmNlKTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICcuLi9CZWhhdmlvclN1YmplY3QnO1xuaW1wb3J0IHsgQ29ubmVjdGFibGVPYnNlcnZhYmxlIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9Db25uZWN0YWJsZU9ic2VydmFibGUnO1xuaW1wb3J0IHsgVW5hcnlGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBDcmVhdGVzIGEge0BsaW5rIENvbm5lY3RhYmxlT2JzZXJ2YWJsZX0gdGhhdCB1dGlsaXplcyBhIHtAbGluayBCZWhhdmlvclN1YmplY3R9LlxuICpcbiAqIEBwYXJhbSBpbml0aWFsVmFsdWUgVGhlIGluaXRpYWwgdmFsdWUgcGFzc2VkIHRvIHRoZSB7QGxpbmsgQmVoYXZpb3JTdWJqZWN0fS5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSB7QGxpbmsgQ29ubmVjdGFibGVPYnNlcnZhYmxlfVxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIGluIHY4LiBUbyBjcmVhdGUgYSBjb25uZWN0YWJsZSBvYnNlcnZhYmxlIHRoYXQgdXNlcyBhXG4gKiB7QGxpbmsgQmVoYXZpb3JTdWJqZWN0fSB1bmRlciB0aGUgaG9vZCwgdXNlIHtAbGluayBjb25uZWN0YWJsZX0uXG4gKiBgc291cmNlLnBpcGUocHVibGlzaEJlaGF2aW9yKGluaXRWYWx1ZSkpYCBpcyBlcXVpdmFsZW50IHRvXG4gKiBgY29ubmVjdGFibGUoc291cmNlLCB7IGNvbm5lY3RvcjogKCkgPT4gbmV3IEJlaGF2aW9yU3ViamVjdChpbml0VmFsdWUpLCByZXNldE9uRGlzY29ubmVjdDogZmFsc2UgfSlgLlxuICogSWYgeW91J3JlIHVzaW5nIHtAbGluayByZWZDb3VudH0gYWZ0ZXIgYHB1Ymxpc2hCZWhhdmlvcmAsIHVzZSB0aGUge0BsaW5rIHNoYXJlfSBvcGVyYXRvciBpbnN0ZWFkLlxuICogYHNvdXJjZS5waXBlKHB1Ymxpc2hCZWhhdmlvcihpbml0VmFsdWUpLCByZWZDb3VudCgpKWAgaXMgZXF1aXZhbGVudCB0b1xuICogYHNvdXJjZS5waXBlKHNoYXJlKHsgY29ubmVjdG9yOiAoKSA9PiBuZXcgQmVoYXZpb3JTdWJqZWN0KGluaXRWYWx1ZSksIHJlc2V0T25FcnJvcjogZmFsc2UsIHJlc2V0T25Db21wbGV0ZTogZmFsc2UsIHJlc2V0T25SZWZDb3VudFplcm86IGZhbHNlICB9KSlgLlxuICogRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvbXVsdGljYXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwdWJsaXNoQmVoYXZpb3I8VD4oaW5pdGlhbFZhbHVlOiBUKTogVW5hcnlGdW5jdGlvbjxPYnNlcnZhYmxlPFQ+LCBDb25uZWN0YWJsZU9ic2VydmFibGU8VD4+IHtcbiAgLy8gTm90ZSB0aGF0IHRoaXMgaGFzICpuZXZlciogc3VwcG9ydGVkIHRoZSBzZWxlY3RvciBmdW5jdGlvbi5cbiAgcmV0dXJuIChzb3VyY2UpID0+IHtcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUPihpbml0aWFsVmFsdWUpO1xuICAgIHJldHVybiBuZXcgQ29ubmVjdGFibGVPYnNlcnZhYmxlKHNvdXJjZSwgKCkgPT4gc3ViamVjdCk7XG4gIH07XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgQXN5bmNTdWJqZWN0IH0gZnJvbSAnLi4vQXN5bmNTdWJqZWN0JztcbmltcG9ydCB7IENvbm5lY3RhYmxlT2JzZXJ2YWJsZSB9IGZyb20gJy4uL29ic2VydmFibGUvQ29ubmVjdGFibGVPYnNlcnZhYmxlJztcbmltcG9ydCB7IFVuYXJ5RnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogUmV0dXJucyBhIGNvbm5lY3RhYmxlIG9ic2VydmFibGUgc2VxdWVuY2UgdGhhdCBzaGFyZXMgYSBzaW5nbGUgc3Vic2NyaXB0aW9uIHRvIHRoZVxuICogdW5kZXJseWluZyBzZXF1ZW5jZSBjb250YWluaW5nIG9ubHkgdGhlIGxhc3Qgbm90aWZpY2F0aW9uLlxuICpcbiAqICFbXShwdWJsaXNoTGFzdC5wbmcpXG4gKlxuICogU2ltaWxhciB0byB7QGxpbmsgcHVibGlzaH0sIGJ1dCBpdCB3YWl0cyB1bnRpbCB0aGUgc291cmNlIG9ic2VydmFibGUgY29tcGxldGVzIGFuZCBzdG9yZXNcbiAqIHRoZSBsYXN0IGVtaXR0ZWQgdmFsdWUuXG4gKiBTaW1pbGFybHkgdG8ge0BsaW5rIHB1Ymxpc2hSZXBsYXl9IGFuZCB7QGxpbmsgcHVibGlzaEJlaGF2aW9yfSwgdGhpcyBrZWVwcyBzdG9yaW5nIHRoZSBsYXN0XG4gKiB2YWx1ZSBldmVuIGlmIGl0IGhhcyBubyBtb3JlIHN1YnNjcmliZXJzLiBJZiBzdWJzZXF1ZW50IHN1YnNjcmlwdGlvbnMgaGFwcGVuLCB0aGV5IHdpbGxcbiAqIGltbWVkaWF0ZWx5IGdldCB0aGF0IGxhc3Qgc3RvcmVkIHZhbHVlIGFuZCBjb21wbGV0ZS5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbm5lY3RhYmxlT2JzZXJ2YWJsZSwgaW50ZXJ2YWwsIHB1Ymxpc2hMYXN0LCB0YXAsIHRha2UgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjb25uZWN0YWJsZSA9IDxDb25uZWN0YWJsZU9ic2VydmFibGU8bnVtYmVyPj5pbnRlcnZhbCgxMDAwKVxuICogICAucGlwZShcbiAqICAgICB0YXAoeCA9PiBjb25zb2xlLmxvZygnc2lkZSBlZmZlY3QnLCB4KSksXG4gKiAgICAgdGFrZSgzKSxcbiAqICAgICBwdWJsaXNoTGFzdCgpXG4gKiAgICk7XG4gKlxuICogY29ubmVjdGFibGUuc3Vic2NyaWJlKHtcbiAqICAgbmV4dDogeCA9PiBjb25zb2xlLmxvZygnU3ViLiBBJywgeCksXG4gKiAgIGVycm9yOiBlcnIgPT4gY29uc29sZS5sb2coJ1N1Yi4gQSBFcnJvcicsIGVyciksXG4gKiAgIGNvbXBsZXRlOiAoKSA9PiBjb25zb2xlLmxvZygnU3ViLiBBIENvbXBsZXRlJylcbiAqIH0pO1xuICpcbiAqIGNvbm5lY3RhYmxlLnN1YnNjcmliZSh7XG4gKiAgIG5leHQ6IHggPT4gY29uc29sZS5sb2coJ1N1Yi4gQicsIHgpLFxuICogICBlcnJvcjogZXJyID0+IGNvbnNvbGUubG9nKCdTdWIuIEIgRXJyb3InLCBlcnIpLFxuICogICBjb21wbGV0ZTogKCkgPT4gY29uc29sZS5sb2coJ1N1Yi4gQiBDb21wbGV0ZScpXG4gKiB9KTtcbiAqXG4gKiBjb25uZWN0YWJsZS5jb25uZWN0KCk7XG4gKlxuICogLy8gUmVzdWx0czpcbiAqIC8vICdzaWRlIGVmZmVjdCAwJyAgIC0gYWZ0ZXIgb25lIHNlY29uZFxuICogLy8gJ3NpZGUgZWZmZWN0IDEnICAgLSBhZnRlciB0d28gc2Vjb25kc1xuICogLy8gJ3NpZGUgZWZmZWN0IDInICAgLSBhZnRlciB0aHJlZSBzZWNvbmRzXG4gKiAvLyAnU3ViLiBBIDInICAgICAgICAtIGltbWVkaWF0ZWx5IGFmdGVyICdzaWRlIGVmZmVjdCAyJ1xuICogLy8gJ1N1Yi4gQiAyJ1xuICogLy8gJ1N1Yi4gQSBDb21wbGV0ZSdcbiAqIC8vICdTdWIuIEIgQ29tcGxldGUnXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBDb25uZWN0YWJsZU9ic2VydmFibGV9XG4gKiBAc2VlIHtAbGluayBwdWJsaXNofVxuICogQHNlZSB7QGxpbmsgcHVibGlzaFJlcGxheX1cbiAqIEBzZWUge0BsaW5rIHB1Ymxpc2hCZWhhdmlvcn1cbiAqXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBlbGVtZW50cyBvZiBhXG4gKiBzZXF1ZW5jZSBwcm9kdWNlZCBieSBtdWx0aWNhc3RpbmcgdGhlIHNvdXJjZSBzZXF1ZW5jZS5cbiAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVG8gY3JlYXRlIGEgY29ubmVjdGFibGUgb2JzZXJ2YWJsZSB3aXRoIGFuXG4gKiB7QGxpbmsgQXN5bmNTdWJqZWN0fSB1bmRlciB0aGUgaG9vZCwgdXNlIHtAbGluayBjb25uZWN0YWJsZX0uXG4gKiBgc291cmNlLnBpcGUocHVibGlzaExhc3QoKSlgIGlzIGVxdWl2YWxlbnQgdG9cbiAqIGBjb25uZWN0YWJsZShzb3VyY2UsIHsgY29ubmVjdG9yOiAoKSA9PiBuZXcgQXN5bmNTdWJqZWN0KCksIHJlc2V0T25EaXNjb25uZWN0OiBmYWxzZSB9KWAuXG4gKiBJZiB5b3UncmUgdXNpbmcge0BsaW5rIHJlZkNvdW50fSBhZnRlciBgcHVibGlzaExhc3RgLCB1c2UgdGhlIHtAbGluayBzaGFyZX0gb3BlcmF0b3IgaW5zdGVhZC5cbiAqIGBzb3VyY2UucGlwZShwdWJsaXNoTGFzdCgpLCByZWZDb3VudCgpKWAgaXMgZXF1aXZhbGVudCB0b1xuICogYHNvdXJjZS5waXBlKHNoYXJlKHsgY29ubmVjdG9yOiAoKSA9PiBuZXcgQXN5bmNTdWJqZWN0KCksIHJlc2V0T25FcnJvcjogZmFsc2UsIHJlc2V0T25Db21wbGV0ZTogZmFsc2UsIHJlc2V0T25SZWZDb3VudFplcm86IGZhbHNlIH0pKWAuXG4gKiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9tdWx0aWNhc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHB1Ymxpc2hMYXN0PFQ+KCk6IFVuYXJ5RnVuY3Rpb248T2JzZXJ2YWJsZTxUPiwgQ29ubmVjdGFibGVPYnNlcnZhYmxlPFQ+PiB7XG4gIC8vIE5vdGUgdGhhdCB0aGlzIGhhcyAqbmV2ZXIqIHN1cHBvcnRlZCBhIHNlbGVjdG9yIGZ1bmN0aW9uIGxpa2UgYHB1Ymxpc2hgIGFuZCBgcHVibGlzaFJlcGxheWAuXG4gIHJldHVybiAoc291cmNlKSA9PiB7XG4gICAgY29uc3Qgc3ViamVjdCA9IG5ldyBBc3luY1N1YmplY3Q8VD4oKTtcbiAgICByZXR1cm4gbmV3IENvbm5lY3RhYmxlT2JzZXJ2YWJsZShzb3VyY2UsICgpID0+IHN1YmplY3QpO1xuICB9O1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICcuLi9SZXBsYXlTdWJqZWN0JztcbmltcG9ydCB7IG11bHRpY2FzdCB9IGZyb20gJy4vbXVsdGljYXN0JztcbmltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT3BlcmF0b3JGdW5jdGlvbiwgVGltZXN0YW1wUHJvdmlkZXIsIE9ic2VydmFibGVJbnB1dCwgT2JzZXJ2ZWRWYWx1ZU9mIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWwvaXNGdW5jdGlvbic7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHtAbGluayBDb25uZWN0YWJsZU9ic2VydmFibGV9IHRoYXQgdXNlcyBhIHtAbGluayBSZXBsYXlTdWJqZWN0fVxuICogaW50ZXJuYWxseS5cbiAqXG4gKiBAcGFyYW0gYnVmZmVyU2l6ZSBUaGUgYnVmZmVyIHNpemUgZm9yIHRoZSB1bmRlcmx5aW5nIHtAbGluayBSZXBsYXlTdWJqZWN0fS5cbiAqIEBwYXJhbSB3aW5kb3dUaW1lIFRoZSB3aW5kb3cgdGltZSBmb3IgdGhlIHVuZGVybHlpbmcge0BsaW5rIFJlcGxheVN1YmplY3R9LlxuICogQHBhcmFtIHRpbWVzdGFtcFByb3ZpZGVyIFRoZSB0aW1lc3RhbXAgcHJvdmlkZXIgZm9yIHRoZSB1bmRlcmx5aW5nIHtAbGluayBSZXBsYXlTdWJqZWN0fS5cbiAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVG8gY3JlYXRlIGEgY29ubmVjdGFibGUgb2JzZXJ2YWJsZSB0aGF0IHVzZXMgYVxuICoge0BsaW5rIFJlcGxheVN1YmplY3R9IHVuZGVyIHRoZSBob29kLCB1c2Uge0BsaW5rIGNvbm5lY3RhYmxlfS5cbiAqIGBzb3VyY2UucGlwZShwdWJsaXNoUmVwbGF5KHNpemUsIHRpbWUsIHNjaGVkdWxlcikpYCBpcyBlcXVpdmFsZW50IHRvXG4gKiBgY29ubmVjdGFibGUoc291cmNlLCB7IGNvbm5lY3RvcjogKCkgPT4gbmV3IFJlcGxheVN1YmplY3Qoc2l6ZSwgdGltZSwgc2NoZWR1bGVyKSwgcmVzZXRPbkRpc2Nvbm5lY3Q6IGZhbHNlIH0pYC5cbiAqIElmIHlvdSdyZSB1c2luZyB7QGxpbmsgcmVmQ291bnR9IGFmdGVyIGBwdWJsaXNoUmVwbGF5YCwgdXNlIHRoZSB7QGxpbmsgc2hhcmV9IG9wZXJhdG9yIGluc3RlYWQuXG4gKiBgcHVibGlzaFJlcGxheShzaXplLCB0aW1lLCBzY2hlZHVsZXIpLCByZWZDb3VudCgpYCBpcyBlcXVpdmFsZW50IHRvXG4gKiBgc2hhcmUoeyBjb25uZWN0b3I6ICgpID0+IG5ldyBSZXBsYXlTdWJqZWN0KHNpemUsIHRpbWUsIHNjaGVkdWxlciksIHJlc2V0T25FcnJvcjogZmFsc2UsIHJlc2V0T25Db21wbGV0ZTogZmFsc2UsIHJlc2V0T25SZWZDb3VudFplcm86IGZhbHNlIH0pYC5cbiAqIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL211bHRpY2FzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHVibGlzaFJlcGxheTxUPihcbiAgYnVmZmVyU2l6ZT86IG51bWJlcixcbiAgd2luZG93VGltZT86IG51bWJlcixcbiAgdGltZXN0YW1wUHJvdmlkZXI/OiBUaW1lc3RhbXBQcm92aWRlclxuKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gb2JzZXJ2YWJsZSwgdGhhdCB3aGVuIHN1YnNjcmliZWQgdG8sIHdpbGwgY3JlYXRlIGEge0BsaW5rIFJlcGxheVN1YmplY3R9LFxuICogYW5kIHBhc3MgYW4gb2JzZXJ2YWJsZSBmcm9tIGl0ICh1c2luZyBbYXNPYnNlcnZhYmxlXShhcGkvaW5kZXgvY2xhc3MvU3ViamVjdCNhc09ic2VydmFibGUpKSB0b1xuICogdGhlIGBzZWxlY3RvcmAgZnVuY3Rpb24sIHdoaWNoIHRoZW4gcmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgaXMgc3Vic2NyaWJlZCB0byBiZWZvcmVcbiAqIFwiY29ubmVjdGluZ1wiIHRoZSBzb3VyY2UgdG8gdGhlIGludGVybmFsIGBSZXBsYXlTdWJqZWN0YC5cbiAqXG4gKiBTaW5jZSB0aGlzIGlzIGRlcHJlY2F0ZWQsIGZvciBhZGRpdGlvbmFsIGRldGFpbHMgc2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB7QGxpbmsgY29ubmVjdH0uXG4gKlxuICogQHBhcmFtIGJ1ZmZlclNpemUgVGhlIGJ1ZmZlciBzaXplIGZvciB0aGUgdW5kZXJseWluZyB7QGxpbmsgUmVwbGF5U3ViamVjdH0uXG4gKiBAcGFyYW0gd2luZG93VGltZSBUaGUgd2luZG93IHRpbWUgZm9yIHRoZSB1bmRlcmx5aW5nIHtAbGluayBSZXBsYXlTdWJqZWN0fS5cbiAqIEBwYXJhbSBzZWxlY3RvciBBIGZ1bmN0aW9uIHVzZWQgdG8gc2V0dXAgdGhlIG11bHRpY2FzdC5cbiAqIEBwYXJhbSB0aW1lc3RhbXBQcm92aWRlciBUaGUgdGltZXN0YW1wIHByb3ZpZGVyIGZvciB0aGUgdW5kZXJseWluZyB7QGxpbmsgUmVwbGF5U3ViamVjdH0uXG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSB0aGUge0BsaW5rIGNvbm5lY3R9IG9wZXJhdG9yIGluc3RlYWQuXG4gKiBgc291cmNlLnBpcGUocHVibGlzaFJlcGxheShzaXplLCB3aW5kb3csIHNlbGVjdG9yLCBzY2hlZHVsZXIpKWAgaXMgZXF1aXZhbGVudCB0b1xuICogYHNvdXJjZS5waXBlKGNvbm5lY3Qoc2VsZWN0b3IsIHsgY29ubmVjdG9yOiAoKSA9PiBuZXcgUmVwbGF5U3ViamVjdChzaXplLCB3aW5kb3csIHNjaGVkdWxlcikgfSkpYC5cbiAqIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL211bHRpY2FzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHVibGlzaFJlcGxheTxULCBPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PGFueT4+KFxuICBidWZmZXJTaXplOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gIHdpbmRvd1RpbWU6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgc2VsZWN0b3I6IChzaGFyZWQ6IE9ic2VydmFibGU8VD4pID0+IE8sXG4gIHRpbWVzdGFtcFByb3ZpZGVyPzogVGltZXN0YW1wUHJvdmlkZXJcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgT2JzZXJ2ZWRWYWx1ZU9mPE8+PjtcblxuLyoqXG4gKiBDcmVhdGVzIGEge0BsaW5rIENvbm5lY3RhYmxlT2JzZXJ2YWJsZX0gdGhhdCB1c2VzIGEge0BsaW5rIFJlcGxheVN1YmplY3R9XG4gKiBpbnRlcm5hbGx5LlxuICpcbiAqIEBwYXJhbSBidWZmZXJTaXplIFRoZSBidWZmZXIgc2l6ZSBmb3IgdGhlIHVuZGVybHlpbmcge0BsaW5rIFJlcGxheVN1YmplY3R9LlxuICogQHBhcmFtIHdpbmRvd1RpbWUgVGhlIHdpbmRvdyB0aW1lIGZvciB0aGUgdW5kZXJseWluZyB7QGxpbmsgUmVwbGF5U3ViamVjdH0uXG4gKiBAcGFyYW0gc2VsZWN0b3IgUGFzc2luZyBgdW5kZWZpbmVkYCBoZXJlIGRldGVybWluZXMgdGhhdCB0aGlzIG9wZXJhdG9yIHdpbGwgcmV0dXJuIGEge0BsaW5rIENvbm5lY3RhYmxlT2JzZXJ2YWJsZX0uXG4gKiBAcGFyYW0gdGltZXN0YW1wUHJvdmlkZXIgVGhlIHRpbWVzdGFtcCBwcm92aWRlciBmb3IgdGhlIHVuZGVybHlpbmcge0BsaW5rIFJlcGxheVN1YmplY3R9LlxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIGluIHY4LiBUbyBjcmVhdGUgYSBjb25uZWN0YWJsZSBvYnNlcnZhYmxlIHRoYXQgdXNlcyBhXG4gKiB7QGxpbmsgUmVwbGF5U3ViamVjdH0gdW5kZXIgdGhlIGhvb2QsIHVzZSB7QGxpbmsgY29ubmVjdGFibGV9LlxuICogYHNvdXJjZS5waXBlKHB1Ymxpc2hSZXBsYXkoc2l6ZSwgdGltZSwgc2NoZWR1bGVyKSlgIGlzIGVxdWl2YWxlbnQgdG9cbiAqIGBjb25uZWN0YWJsZShzb3VyY2UsIHsgY29ubmVjdG9yOiAoKSA9PiBuZXcgUmVwbGF5U3ViamVjdChzaXplLCB0aW1lLCBzY2hlZHVsZXIpLCByZXNldE9uRGlzY29ubmVjdDogZmFsc2UgfSlgLlxuICogSWYgeW91J3JlIHVzaW5nIHtAbGluayByZWZDb3VudH0gYWZ0ZXIgYHB1Ymxpc2hSZXBsYXlgLCB1c2UgdGhlIHtAbGluayBzaGFyZX0gb3BlcmF0b3IgaW5zdGVhZC5cbiAqIGBwdWJsaXNoUmVwbGF5KHNpemUsIHRpbWUsIHNjaGVkdWxlciksIHJlZkNvdW50KClgIGlzIGVxdWl2YWxlbnQgdG9cbiAqIGBzaGFyZSh7IGNvbm5lY3RvcjogKCkgPT4gbmV3IFJlcGxheVN1YmplY3Qoc2l6ZSwgdGltZSwgc2NoZWR1bGVyKSwgcmVzZXRPbkVycm9yOiBmYWxzZSwgcmVzZXRPbkNvbXBsZXRlOiBmYWxzZSwgcmVzZXRPblJlZkNvdW50WmVybzogZmFsc2UgfSlgLlxuICogRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvbXVsdGljYXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwdWJsaXNoUmVwbGF5PFQsIE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8YW55Pj4oXG4gIGJ1ZmZlclNpemU6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgd2luZG93VGltZTogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBzZWxlY3RvcjogdW5kZWZpbmVkLFxuICB0aW1lc3RhbXBQcm92aWRlcjogVGltZXN0YW1wUHJvdmlkZXJcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgT2JzZXJ2ZWRWYWx1ZU9mPE8+PjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSB0aGUge0BsaW5rIGNvbm5lY3RhYmxlfSBvYnNlcnZhYmxlLCB0aGUge0BsaW5rIGNvbm5lY3R9IG9wZXJhdG9yIG9yIHRoZVxuICoge0BsaW5rIHNoYXJlfSBvcGVyYXRvciBpbnN0ZWFkLiBTZWUgdGhlIG92ZXJsb2FkcyBiZWxvdyBmb3IgZXF1aXZhbGVudCByZXBsYWNlbWVudCBleGFtcGxlcyBvZiB0aGlzIG9wZXJhdG9yJ3NcbiAqIGJlaGF2aW9ycy5cbiAqIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL211bHRpY2FzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHVibGlzaFJlcGxheTxULCBSPihcbiAgYnVmZmVyU2l6ZT86IG51bWJlcixcbiAgd2luZG93VGltZT86IG51bWJlcixcbiAgc2VsZWN0b3JPclNjaGVkdWxlcj86IFRpbWVzdGFtcFByb3ZpZGVyIHwgT3BlcmF0b3JGdW5jdGlvbjxULCBSPixcbiAgdGltZXN0YW1wUHJvdmlkZXI/OiBUaW1lc3RhbXBQcm92aWRlclxuKSB7XG4gIGlmIChzZWxlY3Rvck9yU2NoZWR1bGVyICYmICFpc0Z1bmN0aW9uKHNlbGVjdG9yT3JTY2hlZHVsZXIpKSB7XG4gICAgdGltZXN0YW1wUHJvdmlkZXIgPSBzZWxlY3Rvck9yU2NoZWR1bGVyO1xuICB9XG4gIGNvbnN0IHNlbGVjdG9yID0gaXNGdW5jdGlvbihzZWxlY3Rvck9yU2NoZWR1bGVyKSA/IHNlbGVjdG9yT3JTY2hlZHVsZXIgOiB1bmRlZmluZWQ7XG4gIC8vIE5vdGUsIHdlJ3JlIHBhc3NpbmcgYHNlbGVjdG9yIWAgaGVyZSwgYmVjYXVzZSBhdCBydW50aW1lLCBgdW5kZWZpbmVkYCBpcyBhbiBhY2NlcHRhYmxlIGFyZ3VtZW50XG4gIC8vIGJ1dCBpdCBtYWtlcyBvdXIgVHlwZVNjcmlwdCBzaWduYXR1cmUgZm9yIGBtdWx0aWNhc3RgIHVuaGFwcHkgKGFzIGl0IHNob3VsZCwgYmVjYXVzZSBpdCdzIGdyb3NzKS5cbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IG11bHRpY2FzdChuZXcgUmVwbGF5U3ViamVjdDxUPihidWZmZXJTaXplLCB3aW5kb3dUaW1lLCB0aW1lc3RhbXBQcm92aWRlciksIHNlbGVjdG9yISkoc291cmNlKTtcbn1cbiIsICJpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICcuLi9TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgRU1QVFkgfSBmcm9tICcuLi9vYnNlcnZhYmxlL2VtcHR5JztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBpbm5lckZyb20gfSBmcm9tICcuLi9vYnNlcnZhYmxlL2lubmVyRnJvbSc7XG5pbXBvcnQgeyB0aW1lciB9IGZyb20gJy4uL29ic2VydmFibGUvdGltZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcGVhdENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgc291cmNlLiBEZWZhdWx0cyB0byBgSW5maW5pdHlgLlxuICAgKi9cbiAgY291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElmIGEgYG51bWJlcmAsIHdpbGwgZGVsYXkgdGhlIHJlcGVhdCBvZiB0aGUgc291cmNlIGJ5IHRoYXQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy5cbiAgICogSWYgYSBmdW5jdGlvbiwgaXQgd2lsbCBwcm92aWRlIHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIHNvdXJjZSBoYXMgYmVlbiBzdWJzY3JpYmVkIHRvLFxuICAgKiBhbmQgdGhlIHJldHVybiB2YWx1ZSBzaG91bGQgYmUgYSB2YWxpZCBvYnNlcnZhYmxlIGlucHV0IHRoYXQgd2lsbCBub3RpZnkgd2hlbiB0aGUgc291cmNlXG4gICAqIHNob3VsZCBiZSByZXBlYXRlZC4gSWYgdGhlIG5vdGlmaWVyIG9ic2VydmFibGUgaXMgZW1wdHksIHRoZSByZXN1bHQgd2lsbCBjb21wbGV0ZS5cbiAgICovXG4gIGRlbGF5PzogbnVtYmVyIHwgKChjb3VudDogbnVtYmVyKSA9PiBPYnNlcnZhYmxlSW5wdXQ8YW55Pik7XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgd2lsbCByZXN1YnNjcmliZSB0byB0aGUgc291cmNlIHN0cmVhbSB3aGVuIHRoZSBzb3VyY2Ugc3RyZWFtIGNvbXBsZXRlcy5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+UmVwZWF0cyBhbGwgdmFsdWVzIGVtaXR0ZWQgb24gdGhlIHNvdXJjZS4gSXQncyBsaWtlIHtAbGluayByZXRyeX0sIGJ1dCBmb3Igbm9uIGVycm9yIGNhc2VzLjwvc3Bhbj5cbiAqXG4gKiAhW10ocmVwZWF0LnBuZylcbiAqXG4gKiBSZXBlYXQgd2lsbCBvdXRwdXQgdmFsdWVzIGZyb20gYSBzb3VyY2UgdW50aWwgdGhlIHNvdXJjZSBjb21wbGV0ZXMsIHRoZW4gaXQgd2lsbCByZXN1YnNjcmliZSB0byB0aGVcbiAqIHNvdXJjZSBhIHNwZWNpZmllZCBudW1iZXIgb2YgdGltZXMsIHdpdGggYSBzcGVjaWZpZWQgZGVsYXkuIFJlcGVhdCBjYW4gYmUgcGFydGljdWxhcmx5IHVzZWZ1bCBpblxuICogY29tYmluYXRpb24gd2l0aCBjbG9zaW5nIG9wZXJhdG9ycyBsaWtlIHtAbGluayB0YWtlfSwge0BsaW5rIHRha2VVbnRpbH0sIHtAbGluayBmaXJzdH0sIG9yIHtAbGluayB0YWtlV2hpbGV9LFxuICogYXMgaXQgY2FuIGJlIHVzZWQgdG8gcmVzdGFydCBhIHNvdXJjZSBhZ2FpbiBmcm9tIHNjcmF0Y2guXG4gKlxuICogUmVwZWF0IGlzIHZlcnkgc2ltaWxhciB0byB7QGxpbmsgcmV0cnl9LCB3aGVyZSB7QGxpbmsgcmV0cnl9IHdpbGwgcmVzdWJzY3JpYmUgdG8gdGhlIHNvdXJjZSBpbiB0aGUgZXJyb3IgY2FzZSwgYnV0XG4gKiBgcmVwZWF0YCB3aWxsIHJlc3Vic2NyaWJlIGlmIHRoZSBzb3VyY2UgY29tcGxldGVzLlxuICpcbiAqIE5vdGUgdGhhdCBgcmVwZWF0YCB3aWxsIF9ub3RfIGNhdGNoIGVycm9ycy4gVXNlIHtAbGluayByZXRyeX0gZm9yIHRoYXQuXG4gKlxuICogLSBgcmVwZWF0KDApYCByZXR1cm5zIGFuIGVtcHR5IG9ic2VydmFibGVcbiAqIC0gYHJlcGVhdCgpYCB3aWxsIHJlcGVhdCBmb3JldmVyXG4gKiAtIGByZXBlYXQoeyBkZWxheTogMjAwIH0pYCB3aWxsIHJlcGVhdCBmb3JldmVyLCB3aXRoIGEgZGVsYXkgb2YgMjAwbXMgYmV0d2VlbiByZXBldGl0aW9ucy5cbiAqIC0gYHJlcGVhdCh7IGNvdW50OiAyLCBkZWxheTogNDAwIH0pYCB3aWxsIHJlcGVhdCB0d2ljZSwgd2l0aCBhIGRlbGF5IG9mIDQwMG1zIGJldHdlZW4gcmVwZXRpdGlvbnMuXG4gKiAtIGByZXBlYXQoeyBkZWxheTogKGNvdW50KSA9PiB0aW1lcihjb3VudCAqIDEwMDApIH0pYCB3aWxsIHJlcGVhdCBmb3JldmVyLCBidXQgd2lsbCBoYXZlIGEgZGVsYXkgdGhhdCBncm93cyBieSBvbmUgc2Vjb25kIGZvciBlYWNoIHJlcGV0aXRpb24uXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIFJlcGVhdCBhIG1lc3NhZ2Ugc3RyZWFtXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCByZXBlYXQgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBzb3VyY2UgPSBvZignUmVwZWF0IG1lc3NhZ2UnKTtcbiAqIGNvbnN0IHJlc3VsdCA9IHNvdXJjZS5waXBlKHJlcGVhdCgzKSk7XG4gKlxuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqXG4gKiAvLyBSZXN1bHRzXG4gKiAvLyAnUmVwZWF0IG1lc3NhZ2UnXG4gKiAvLyAnUmVwZWF0IG1lc3NhZ2UnXG4gKiAvLyAnUmVwZWF0IG1lc3NhZ2UnXG4gKiBgYGBcbiAqXG4gKiBSZXBlYXQgMyB2YWx1ZXMsIDIgdGltZXNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIHRha2UsIHJlcGVhdCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHNvdXJjZSA9IGludGVydmFsKDEwMDApO1xuICogY29uc3QgcmVzdWx0ID0gc291cmNlLnBpcGUodGFrZSgzKSwgcmVwZWF0KDIpKTtcbiAqXG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIFJlc3VsdHMgZXZlcnkgc2Vjb25kXG4gKiAvLyAwXG4gKiAvLyAxXG4gKiAvLyAyXG4gKiAvLyAwXG4gKiAvLyAxXG4gKiAvLyAyXG4gKiBgYGBcbiAqXG4gKiBEZWZpbmluZyB0d28gY29tcGxleCByZXBlYXRzIHdpdGggZGVsYXlzIG9uIHRoZSBzYW1lIHNvdXJjZS5cbiAqIE5vdGUgdGhhdCB0aGUgc2Vjb25kIHJlcGVhdCBjYW5ub3QgYmUgY2FsbGVkIHVudGlsIHRoZSBmaXJzdFxuICogcmVwZWF0IGFzIGV4aGF1c3RlZCBpdCdzIGNvdW50LlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBkZWZlciwgb2YsIHJlcGVhdCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHNvdXJjZSA9IGRlZmVyKCgpID0+IHtcbiAqICAgIHJldHVybiBvZihgSGVsbG8sIGl0IGlzICR7bmV3IERhdGUoKX1gKVxuICogfSk7XG4gKlxuICogc291cmNlLnBpcGUoXG4gKiAgICAvLyBSZXBlYXQgMyB0aW1lcyB3aXRoIGEgZGVsYXkgb2YgMSBzZWNvbmQgYmV0d2VlbiByZXBldGl0aW9uc1xuICogICAgcmVwZWF0KHtcbiAqICAgICAgY291bnQ6IDMsXG4gKiAgICAgIGRlbGF5OiAxMDAwLFxuICogICAgfSksXG4gKlxuICogICAgLy8gKlRoZW4qIHJlcGVhdCBmb3JldmVyLCBidXQgd2l0aCBhbiBleHBvbmVudGlhbCBzdGVwLWJhY2tcbiAqICAgIC8vIG1heGluZyBvdXQgYXQgMSBtaW51dGUuXG4gKiAgICByZXBlYXQoe1xuICogICAgICBkZWxheTogKGNvdW50KSA9PiB0aW1lcihNYXRoLm1pbig2MDAwMCwgMiBeIGNvdW50ICogMTAwMCkpXG4gKiAgICB9KVxuICogKVxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgcmVwZWF0V2hlbn1cbiAqIEBzZWUge0BsaW5rIHJldHJ5fVxuICpcbiAqIEBwYXJhbSBjb3VudE9yQ29uZmlnIEVpdGhlciB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBpdGVtcyBhcmUgcmVwZWF0ZWRcbiAqIChhIGNvdW50IG9mIDAgd2lsbCB5aWVsZCBhbiBlbXB0eSBPYnNlcnZhYmxlKSBvciBhIHtAbGluayBSZXBlYXRDb25maWd9IG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcGVhdDxUPihjb3VudE9yQ29uZmlnPzogbnVtYmVyIHwgUmVwZWF0Q29uZmlnKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgbGV0IGNvdW50ID0gSW5maW5pdHk7XG4gIGxldCBkZWxheTogUmVwZWF0Q29uZmlnWydkZWxheSddO1xuXG4gIGlmIChjb3VudE9yQ29uZmlnICE9IG51bGwpIHtcbiAgICBpZiAodHlwZW9mIGNvdW50T3JDb25maWcgPT09ICdvYmplY3QnKSB7XG4gICAgICAoeyBjb3VudCA9IEluZmluaXR5LCBkZWxheSB9ID0gY291bnRPckNvbmZpZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvdW50ID0gY291bnRPckNvbmZpZztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY291bnQgPD0gMFxuICAgID8gKCkgPT4gRU1QVFlcbiAgICA6IG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICBsZXQgc29GYXIgPSAwO1xuICAgICAgICBsZXQgc291cmNlU3ViOiBTdWJzY3JpcHRpb24gfCBudWxsO1xuXG4gICAgICAgIGNvbnN0IHJlc3Vic2NyaWJlID0gKCkgPT4ge1xuICAgICAgICAgIHNvdXJjZVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBzb3VyY2VTdWIgPSBudWxsO1xuICAgICAgICAgIGlmIChkZWxheSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBub3RpZmllciA9IHR5cGVvZiBkZWxheSA9PT0gJ251bWJlcicgPyB0aW1lcihkZWxheSkgOiBpbm5lckZyb20oZGVsYXkoc29GYXIpKTtcbiAgICAgICAgICAgIGNvbnN0IG5vdGlmaWVyU3Vic2NyaWJlciA9IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCAoKSA9PiB7XG4gICAgICAgICAgICAgIG5vdGlmaWVyU3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICBzdWJzY3JpYmVUb1NvdXJjZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBub3RpZmllci5zdWJzY3JpYmUobm90aWZpZXJTdWJzY3JpYmVyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3Vic2NyaWJlVG9Tb3VyY2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaWJlVG9Tb3VyY2UgPSAoKSA9PiB7XG4gICAgICAgICAgbGV0IHN5bmNVbnN1YiA9IGZhbHNlO1xuICAgICAgICAgIHNvdXJjZVN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICAgICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdW5kZWZpbmVkLCAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICgrK3NvRmFyIDwgY291bnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlU3ViKSB7XG4gICAgICAgICAgICAgICAgICByZXN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzeW5jVW5zdWIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChzeW5jVW5zdWIpIHtcbiAgICAgICAgICAgIHJlc3Vic2NyaWJlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHN1YnNjcmliZVRvU291cmNlKCk7XG4gICAgICB9KTtcbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBpbm5lckZyb20gfSBmcm9tICcuLi9vYnNlcnZhYmxlL2lubmVyRnJvbSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAnLi4vU3ViamVjdCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICcuLi9TdWJzY3JpcHRpb24nO1xuXG5pbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuXG4vKipcbiAqIFJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IG1pcnJvcnMgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBhIGBjb21wbGV0ZWAuIElmIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUgY2FsbHMgYGNvbXBsZXRlYCwgdGhpcyBtZXRob2Qgd2lsbCBlbWl0IHRvIHRoZSBPYnNlcnZhYmxlIHJldHVybmVkIGZyb20gYG5vdGlmaWVyYC4gSWYgdGhhdCBPYnNlcnZhYmxlXG4gKiBjYWxscyBgY29tcGxldGVgIG9yIGBlcnJvcmAsIHRoZW4gdGhpcyBtZXRob2Qgd2lsbCBjYWxsIGBjb21wbGV0ZWAgb3IgYGVycm9yYCBvbiB0aGUgY2hpbGQgc3Vic2NyaXB0aW9uLiBPdGhlcndpc2VcbiAqIHRoaXMgbWV0aG9kIHdpbGwgcmVzdWJzY3JpYmUgdG8gdGhlIHNvdXJjZSBPYnNlcnZhYmxlLlxuICpcbiAqICFbXShyZXBlYXRXaGVuLnBuZylcbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogUmVwZWF0IGEgbWVzc2FnZSBzdHJlYW0gb24gY2xpY2tcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIGZyb21FdmVudCwgcmVwZWF0V2hlbiB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHNvdXJjZSA9IG9mKCdSZXBlYXQgbWVzc2FnZScpO1xuICogY29uc3QgZG9jdW1lbnRDbGljayQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICpcbiAqIGNvbnN0IHJlc3VsdCA9IHNvdXJjZS5waXBlKHJlcGVhdFdoZW4oKCkgPT4gZG9jdW1lbnRDbGljayQpKTtcbiAqXG4gKiByZXN1bHQuc3Vic2NyaWJlKGRhdGEgPT4gY29uc29sZS5sb2coZGF0YSkpXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayByZXBlYXR9XG4gKiBAc2VlIHtAbGluayByZXRyeX1cbiAqIEBzZWUge0BsaW5rIHJldHJ5V2hlbn1cbiAqXG4gKiBAcGFyYW0gbm90aWZpZXIgRnVuY3Rpb24gdGhhdCByZWNlaXZlcyBhbiBPYnNlcnZhYmxlIG9mIG5vdGlmaWNhdGlvbnMgd2l0aFxuICogd2hpY2ggYSB1c2VyIGNhbiBgY29tcGxldGVgIG9yIGBlcnJvcmAsIGFib3J0aW5nIHRoZSByZXBldGl0aW9uLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgbWlycm9ycyB0aGUgc291cmNlXG4gKiBPYnNlcnZhYmxlIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBhIGBjb21wbGV0ZWAuXG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gdjkgb3IgdjEwLiBVc2Uge0BsaW5rIHJlcGVhdH0ncyB7QGxpbmsgUmVwZWF0Q29uZmlnI2RlbGF5IGRlbGF5fSBvcHRpb24gaW5zdGVhZC5cbiAqIEluc3RlYWQgb2YgYHJlcGVhdFdoZW4oKCkgPT4gbm90aWZ5JClgLCB1c2U6IGByZXBlYXQoeyBkZWxheTogKCkgPT4gbm90aWZ5JCB9KWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBlYXRXaGVuPFQ+KG5vdGlmaWVyOiAobm90aWZpY2F0aW9uczogT2JzZXJ2YWJsZTx2b2lkPikgPT4gT2JzZXJ2YWJsZUlucHV0PGFueT4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgbGV0IGlubmVyU3ViOiBTdWJzY3JpcHRpb24gfCBudWxsO1xuICAgIGxldCBzeW5jUmVzdWIgPSBmYWxzZTtcbiAgICBsZXQgY29tcGxldGlvbnMkOiBTdWJqZWN0PHZvaWQ+O1xuICAgIGxldCBpc05vdGlmaWVyQ29tcGxldGUgPSBmYWxzZTtcbiAgICBsZXQgaXNNYWluQ29tcGxldGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB0byBzZWUgaWYgd2UgY2FuIGNvbXBsZXRlIHRoZSByZXN1bHQsIGNvbXBsZXRlcyBpdCwgYW5kIHJldHVybnMgYHRydWVgIGlmIGl0IHdhcyBjb21wbGV0ZWQuXG4gICAgICovXG4gICAgY29uc3QgY2hlY2tDb21wbGV0ZSA9ICgpID0+IGlzTWFpbkNvbXBsZXRlICYmIGlzTm90aWZpZXJDb21wbGV0ZSAmJiAoc3Vic2NyaWJlci5jb21wbGV0ZSgpLCB0cnVlKTtcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBzdWJqZWN0IHRvIHNlbmQgZXJyb3JzIHRocm91Z2guIElmIGl0IGRvZXNuJ3QgZXhpc3QsXG4gICAgICogd2Uga25vdyB3ZSBuZWVkIHRvIHNldHVwIHRoZSBub3RpZmllci5cbiAgICAgKi9cbiAgICBjb25zdCBnZXRDb21wbGV0aW9uU3ViamVjdCA9ICgpID0+IHtcbiAgICAgIGlmICghY29tcGxldGlvbnMkKSB7XG4gICAgICAgIGNvbXBsZXRpb25zJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGNhbGwgdG8gYG5vdGlmaWVyYCB0aHJvd3MsIGl0IHdpbGwgYmUgY2F1Z2h0IGJ5IHRoZSBPcGVyYXRvclN1YnNjcmliZXJcbiAgICAgICAgLy8gSW4gdGhlIG1haW4gc3Vic2NyaXB0aW9uIC0tIGluIGBzdWJzY3JpYmVGb3JSZXBlYXRXaGVuYC5cbiAgICAgICAgaW5uZXJGcm9tKG5vdGlmaWVyKGNvbXBsZXRpb25zJCkpLnN1YnNjcmliZShcbiAgICAgICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaW5uZXJTdWIpIHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVGb3JSZXBlYXRXaGVuKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhbiBpbm5lclN1YiB5ZXQsIHRoYXQncyBiZWNhdXNlIHRoZSBpbm5lciBzdWJzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAvLyBjYWxsIGhhc24ndCBldmVuIHJldHVybmVkIHlldC4gV2UndmUgYXJyaXZlZCBoZXJlIHN5bmNocm9ub3VzbHkuXG4gICAgICAgICAgICAgICAgLy8gU28gd2UgZmxhZyB0aGF0IHdlIHdhbnQgdG8gcmVzdWIsIHN1Y2ggdGhhdCB3ZSBjYW4gZW5zdXJlIGZpbmFsaXphdGlvblxuICAgICAgICAgICAgICAgIC8vIGhhcHBlbnMgYmVmb3JlIHdlIHJlc3Vic2NyaWJlLlxuICAgICAgICAgICAgICAgIHN5bmNSZXN1YiA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgIGlzTm90aWZpZXJDb21wbGV0ZSA9IHRydWU7XG4gICAgICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29tcGxldGlvbnMkO1xuICAgIH07XG5cbiAgICBjb25zdCBzdWJzY3JpYmVGb3JSZXBlYXRXaGVuID0gKCkgPT4ge1xuICAgICAgaXNNYWluQ29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaW5uZXJTdWIgPSBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdW5kZWZpbmVkLCAoKSA9PiB7XG4gICAgICAgICAgaXNNYWluQ29tcGxldGUgPSB0cnVlO1xuICAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB3ZSBhcmUgY29tcGxldGUsIGFuZCBjb21wbGV0ZSBpZiBzby5cbiAgICAgICAgICAvLyBJZiB3ZSBhcmUgbm90IGNvbXBsZXRlLiBHZXQgdGhlIHN1YmplY3QuIFRoaXMgY2FsbHMgdGhlIGBub3RpZmllcmAgZnVuY3Rpb24uXG4gICAgICAgICAgLy8gSWYgdGhhdCBmdW5jdGlvbiBmYWlscywgaXQgd2lsbCB0aHJvdyBhbmQgYC5uZXh0KClgIHdpbGwgbm90IGJlIHJlYWNoZWQgb24gdGhpc1xuICAgICAgICAgIC8vIGxpbmUuIFRoZSB0aHJvd24gZXJyb3IgaXMgY2F1Z2h0IGJ5IHRoZSBfY29tcGxldGUgaGFuZGxlciBpbiB0aGlzXG4gICAgICAgICAgLy8gYE9wZXJhdG9yU3Vic2NyaWJlcmAgYW5kIGhhbmRsZWQgYXBwcm9wcmlhdGVseS5cbiAgICAgICAgICAhY2hlY2tDb21wbGV0ZSgpICYmIGdldENvbXBsZXRpb25TdWJqZWN0KCkubmV4dCgpO1xuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgaWYgKHN5bmNSZXN1Yikge1xuICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgaW5uZXIgc3Vic2NyaXB0aW9uIGlzIHRvcm4gZG93biBiZWZvcmVcbiAgICAgICAgLy8gbW92aW5nIG9uIHRvIHRoZSBuZXh0IHN1YnNjcmlwdGlvbiBpbiB0aGUgc3luY2hyb25vdXMgY2FzZS5cbiAgICAgICAgLy8gSWYgd2UgZG9uJ3QgZG8gdGhpcyBoZXJlLCBhbGwgaW5uZXIgc3Vic2NyaXB0aW9ucyB3aWxsIG5vdCBiZVxuICAgICAgICAvLyB0b3JuIGRvd24gdW50aWwgdGhlIGVudGlyZSBvYnNlcnZhYmxlIGlzIGRvbmUuXG4gICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byBudWxsIHRoaXMgb3V0LiBOb3Qgb25seSB0byBmcmVlIHVwIG1lbW9yeSwgYnV0XG4gICAgICAgIC8vIHRvIG1ha2Ugc3VyZSBjb2RlIGFib3ZlIGtub3dzIHdlIGFyZSBpbiBhIHN1YnNjcmliaW5nIHN0YXRlIHRvXG4gICAgICAgIC8vIGhhbmRsZSBzeW5jaHJvbm91cyByZXN1YnNjcmlwdGlvbi5cbiAgICAgICAgaW5uZXJTdWIgPSBudWxsO1xuICAgICAgICAvLyBXZSBtYXkgbmVlZCB0byBkbyB0aGlzIG11bHRpcGxlIHRpbWVzLCBzbyByZXNldCB0aGUgZmxhZ3MuXG4gICAgICAgIHN5bmNSZXN1YiA9IGZhbHNlO1xuICAgICAgICAvLyBSZXN1YnNjcmliZVxuICAgICAgICBzdWJzY3JpYmVGb3JSZXBlYXRXaGVuKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIFN0YXJ0IHRoZSBzdWJzY3JpcHRpb25cbiAgICBzdWJzY3JpYmVGb3JSZXBlYXRXaGVuKCk7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICcuLi9TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuaW1wb3J0IHsgaWRlbnRpdHkgfSBmcm9tICcuLi91dGlsL2lkZW50aXR5JztcbmltcG9ydCB7IHRpbWVyIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS90aW1lcic7XG5pbXBvcnQgeyBpbm5lckZyb20gfSBmcm9tICcuLi9vYnNlcnZhYmxlL2lubmVyRnJvbSc7XG5cbi8qKlxuICogVGhlIHtAbGluayByZXRyeX0gb3BlcmF0b3IgY29uZmlndXJhdGlvbiBvYmplY3QuIGByZXRyeWAgZWl0aGVyIGFjY2VwdHMgYSBgbnVtYmVyYFxuICogb3IgYW4gb2JqZWN0IGRlc2NyaWJlZCBieSB0aGlzIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeUNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgdG8gcmV0cnkuIElmIGBjb3VudGAgaXMgb21pdHRlZCwgYHJldHJ5YCB3aWxsIHRyeSB0b1xuICAgKiByZXN1YnNjcmliZSBvbiBlcnJvcnMgaW5maW5pdGUgbnVtYmVyIG9mIHRpbWVzLlxuICAgKi9cbiAgY291bnQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheSBiZWZvcmUgcmV0cnlpbmcsIE9SIGEgZnVuY3Rpb24gdG9cbiAgICogcmV0dXJuIGEgbm90aWZpZXIgZm9yIGRlbGF5aW5nLiBJZiBhIGZ1bmN0aW9uIGlzIGdpdmVuLCB0aGF0IGZ1bmN0aW9uIHNob3VsZFxuICAgKiByZXR1cm4gYSBub3RpZmllciB0aGF0LCB3aGVuIGl0IGVtaXRzIHdpbGwgcmV0cnkgdGhlIHNvdXJjZS4gSWYgdGhlIG5vdGlmaWVyXG4gICAqIGNvbXBsZXRlcyBfd2l0aG91dF8gZW1pdHRpbmcsIHRoZSByZXN1bHRpbmcgb2JzZXJ2YWJsZSB3aWxsIGNvbXBsZXRlIHdpdGhvdXQgZXJyb3IsXG4gICAqIGlmIHRoZSBub3RpZmllciBlcnJvcnMsIHRoZSBlcnJvciB3aWxsIGJlIHB1c2hlZCB0byB0aGUgcmVzdWx0LlxuICAgKi9cbiAgZGVsYXk/OiBudW1iZXIgfCAoKGVycm9yOiBhbnksIHJldHJ5Q291bnQ6IG51bWJlcikgPT4gT2JzZXJ2YWJsZUlucHV0PGFueT4pO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gcmVzZXQgdGhlIHJldHJ5IGNvdW50ZXIgd2hlbiB0aGUgcmV0cmllZCBzdWJzY3JpcHRpb25cbiAgICogZW1pdHMgaXRzIGZpcnN0IHZhbHVlLlxuICAgKi9cbiAgcmVzZXRPblN1Y2Nlc3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmV0cnk8VD4oY291bnQ/OiBudW1iZXIpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD47XG5leHBvcnQgZnVuY3Rpb24gcmV0cnk8VD4oY29uZmlnOiBSZXRyeUNvbmZpZyk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPjtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBtaXJyb3JzIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB3aXRoIHRoZSBleGNlcHRpb24gb2YgYW4gYGVycm9yYC5cbiAqXG4gKiBJZiB0aGUgc291cmNlIE9ic2VydmFibGUgY2FsbHMgYGVycm9yYCwgdGhpcyBtZXRob2Qgd2lsbCByZXN1YnNjcmliZSB0byB0aGUgc291cmNlIE9ic2VydmFibGUgZm9yIGEgbWF4aW11bSBvZlxuICogYGNvdW50YCByZXN1YnNjcmlwdGlvbnMgcmF0aGVyIHRoYW4gcHJvcGFnYXRpbmcgdGhlIGBlcnJvcmAgY2FsbC5cbiAqXG4gKiAhW10ocmV0cnkucG5nKVxuICpcbiAqIFRoZSBudW1iZXIgb2YgcmV0cmllcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBgY291bnRgIHBhcmFtZXRlci4gSXQgY2FuIGJlIHNldCBlaXRoZXIgYnkgcGFzc2luZyBhIG51bWJlciB0b1xuICogYHJldHJ5YCBmdW5jdGlvbiBvciBieSBzZXR0aW5nIGBjb3VudGAgcHJvcGVydHkgd2hlbiBgcmV0cnlgIGlzIGNvbmZpZ3VyZWQgdXNpbmcge0BsaW5rIFJldHJ5Q29uZmlnfS4gSWZcbiAqIGBjb3VudGAgaXMgb21pdHRlZCwgYHJldHJ5YCB3aWxsIHRyeSB0byByZXN1YnNjcmliZSBvbiBlcnJvcnMgaW5maW5pdGUgbnVtYmVyIG9mIHRpbWVzLlxuICpcbiAqIEFueSBhbmQgYWxsIGl0ZW1zIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHdpbGwgYmUgZW1pdHRlZCBieSB0aGUgcmVzdWx0aW5nIE9ic2VydmFibGUsIGV2ZW4gdGhvc2VcbiAqIGVtaXR0ZWQgZHVyaW5nIGZhaWxlZCBzdWJzY3JpcHRpb25zLiBGb3IgZXhhbXBsZSwgaWYgYW4gT2JzZXJ2YWJsZSBmYWlscyBhdCBmaXJzdCBidXQgZW1pdHMgYFsxLCAyXWAgdGhlblxuICogc3VjY2VlZHMgdGhlIHNlY29uZCB0aW1lIGFuZCBlbWl0czogYFsxLCAyLCAzLCA0LCA1LCBjb21wbGV0ZV1gIHRoZW4gdGhlIGNvbXBsZXRlIHN0cmVhbSBvZiBlbWlzc2lvbnMgYW5kXG4gKiBub3RpZmljYXRpb25zIHdvdWxkIGJlOiBgWzEsIDIsIDEsIDIsIDMsIDQsIDUsIGNvbXBsZXRlXWAuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBpbnRlcnZhbCwgbWVyZ2VNYXAsIHRocm93RXJyb3IsIG9mLCByZXRyeSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHNvdXJjZSA9IGludGVydmFsKDEwMDApO1xuICogY29uc3QgcmVzdWx0ID0gc291cmNlLnBpcGUoXG4gKiAgIG1lcmdlTWFwKHZhbCA9PiB2YWwgPiA1ID8gdGhyb3dFcnJvcigoKSA9PiAnRXJyb3IhJykgOiBvZih2YWwpKSxcbiAqICAgcmV0cnkoMikgLy8gcmV0cnkgMiB0aW1lcyBvbiBlcnJvclxuICogKTtcbiAqXG4gKiByZXN1bHQuc3Vic2NyaWJlKHtcbiAqICAgbmV4dDogdmFsdWUgPT4gY29uc29sZS5sb2codmFsdWUpLFxuICogICBlcnJvcjogZXJyID0+IGNvbnNvbGUubG9nKGAkeyBlcnIgfTogUmV0cmllZCAyIHRpbWVzIHRoZW4gcXVpdCFgKVxuICogfSk7XG4gKlxuICogLy8gT3V0cHV0OlxuICogLy8gMC4uMS4uMi4uMy4uNC4uNS4uXG4gKiAvLyAwLi4xLi4yLi4zLi40Li41Li5cbiAqIC8vIDAuLjEuLjIuLjMuLjQuLjUuLlxuICogLy8gJ0Vycm9yITogUmV0cmllZCAyIHRpbWVzIHRoZW4gcXVpdCEnXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayByZXRyeVdoZW59XG4gKlxuICogQHBhcmFtIGNvbmZpZ09yQ291bnQgRWl0aGVyIG51bWJlciBvZiByZXRyeSBhdHRlbXB0cyBiZWZvcmUgZmFpbGluZyBvciBhXG4gKiB7QGxpbmsgUmV0cnlDb25maWd9IG9iamVjdC5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IHdpbGwgcmVzdWJzY3JpYmUgdG8gdGhlXG4gKiBzb3VyY2Ugc3RyZWFtIHdoZW4gdGhlIHNvdXJjZSBzdHJlYW0gZXJyb3JzLCBhdCBtb3N0IGBjb3VudGAgdGltZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXRyeTxUPihjb25maWdPckNvdW50OiBudW1iZXIgfCBSZXRyeUNvbmZpZyA9IEluZmluaXR5KTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgbGV0IGNvbmZpZzogUmV0cnlDb25maWc7XG4gIGlmIChjb25maWdPckNvdW50ICYmIHR5cGVvZiBjb25maWdPckNvdW50ID09PSAnb2JqZWN0Jykge1xuICAgIGNvbmZpZyA9IGNvbmZpZ09yQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgY29uZmlnID0ge1xuICAgICAgY291bnQ6IGNvbmZpZ09yQ291bnQgYXMgbnVtYmVyLFxuICAgIH07XG4gIH1cbiAgY29uc3QgeyBjb3VudCA9IEluZmluaXR5LCBkZWxheSwgcmVzZXRPblN1Y2Nlc3M6IHJlc2V0T25TdWNjZXNzID0gZmFsc2UgfSA9IGNvbmZpZztcblxuICByZXR1cm4gY291bnQgPD0gMFxuICAgID8gaWRlbnRpdHlcbiAgICA6IG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICBsZXQgc29GYXIgPSAwO1xuICAgICAgICBsZXQgaW5uZXJTdWI6IFN1YnNjcmlwdGlvbiB8IG51bGw7XG4gICAgICAgIGNvbnN0IHN1YnNjcmliZUZvclJldHJ5ID0gKCkgPT4ge1xuICAgICAgICAgIGxldCBzeW5jVW5zdWIgPSBmYWxzZTtcbiAgICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICAgICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICAgICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICAgICAgICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIElmIHdlJ3JlIHJlc2V0dGluZyBvbiBzdWNjZXNzXG4gICAgICAgICAgICAgICAgaWYgKHJlc2V0T25TdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICBzb0ZhciA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC8vIENvbXBsZXRpb25zIGFyZSBwYXNzZWQgdGhyb3VnaCB0byBjb25zdW1lci5cbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNvRmFyKysgPCBjb3VudCkge1xuICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIHN0aWxsIHVuZGVyIG91ciByZXRyeSBjb3VudFxuICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWIgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbm5lclN1Yikge1xuICAgICAgICAgICAgICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUZvclJldHJ5KCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgc3luY1Vuc3ViID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgaWYgKGRlbGF5ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHVzZXIgc3BlY2lmaWVkIGEgcmV0cnkgZGVsYXkuXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZXkgZ2F2ZSB1cyBhIG51bWJlciwgdXNlIGEgdGltZXIsIG90aGVyd2lzZSwgaXQncyBhIGZ1bmN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgd2UncmUgZ29pbmcgdG8gY2FsbCBpdCB0byBnZXQgYSBub3RpZmllci5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm90aWZpZXIgPSB0eXBlb2YgZGVsYXkgPT09ICdudW1iZXInID8gdGltZXIoZGVsYXkpIDogaW5uZXJGcm9tKGRlbGF5KGVyciwgc29GYXIpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm90aWZpZXJTdWJzY3JpYmVyID0gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWZ0ZXIgd2UgZ2V0IHRoZSBmaXJzdCBub3RpZmljYXRpb24sIHdlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnN1YnNjcmliZSBmcm9tIHRoZSBub3RpZmllciwgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGFueW1vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB3ZSByZXN1YnNjcmliZSB0byB0aGUgc291cmNlLlxuICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpZXJTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1YigpO1xuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG5vdGlmaWVyIGNvbXBsZXRlZCB3aXRob3V0IGVtaXR0aW5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGF1dGhvciBpcyB0ZWxsaW5nIHVzIHRoZXkgd2FudCB0byBjb21wbGV0ZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWVyLnN1YnNjcmliZShub3RpZmllclN1YnNjcmliZXIpO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgd2FzIG5vIG5vdGlmaWVyIGdpdmVuLiBKdXN0IHJlc3ViIGltbWVkaWF0ZWx5LlxuICAgICAgICAgICAgICAgICAgICByZXN1YigpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAvLyBXZSdyZSBwYXN0IG91ciBtYXhpbXVtIG51bWJlciBvZiByZXRyaWVzLlxuICAgICAgICAgICAgICAgICAgLy8gSnVzdCBzZW5kIGFsb25nIHRoZSBlcnJvci5cbiAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChzeW5jVW5zdWIpIHtcbiAgICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICBpbm5lclN1YiA9IG51bGw7XG4gICAgICAgICAgICBzdWJzY3JpYmVGb3JSZXRyeSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgc3Vic2NyaWJlRm9yUmV0cnkoKTtcbiAgICAgIH0pO1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4uL29ic2VydmFibGUvaW5uZXJGcm9tJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICcuLi9TdWJqZWN0JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG5cbmltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5cbi8qKlxuICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgbWlycm9ycyB0aGUgc291cmNlIE9ic2VydmFibGUgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIGFuIGBlcnJvcmAuIElmIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZVxuICogY2FsbHMgYGVycm9yYCwgdGhpcyBtZXRob2Qgd2lsbCBlbWl0IHRoZSBUaHJvd2FibGUgdGhhdCBjYXVzZWQgdGhlIGVycm9yIHRvIHRoZSBgT2JzZXJ2YWJsZUlucHV0YCByZXR1cm5lZCBmcm9tIGBub3RpZmllcmAuXG4gKiBJZiB0aGF0IE9ic2VydmFibGUgY2FsbHMgYGNvbXBsZXRlYCBvciBgZXJyb3JgIHRoZW4gdGhpcyBtZXRob2Qgd2lsbCBjYWxsIGBjb21wbGV0ZWAgb3IgYGVycm9yYCBvbiB0aGUgY2hpbGRcbiAqIHN1YnNjcmlwdGlvbi4gT3RoZXJ3aXNlIHRoaXMgbWV0aG9kIHdpbGwgcmVzdWJzY3JpYmUgdG8gdGhlIHNvdXJjZSBPYnNlcnZhYmxlLlxuICpcbiAqICFbXShyZXRyeVdoZW4ucG5nKVxuICpcbiAqIFJldHJ5IGFuIG9ic2VydmFibGUgc2VxdWVuY2Ugb24gZXJyb3IgYmFzZWQgb24gY3VzdG9tIGNyaXRlcmlhLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIG1hcCwgcmV0cnlXaGVuLCB0YXAsIGRlbGF5V2hlbiwgdGltZXIgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBzb3VyY2UgPSBpbnRlcnZhbCgxMDAwKTtcbiAqIGNvbnN0IHJlc3VsdCA9IHNvdXJjZS5waXBlKFxuICogICBtYXAodmFsdWUgPT4ge1xuICogICAgIGlmICh2YWx1ZSA+IDUpIHtcbiAqICAgICAgIC8vIGVycm9yIHdpbGwgYmUgcGlja2VkIHVwIGJ5IHJldHJ5V2hlblxuICogICAgICAgdGhyb3cgdmFsdWU7XG4gKiAgICAgfVxuICogICAgIHJldHVybiB2YWx1ZTtcbiAqICAgfSksXG4gKiAgIHJldHJ5V2hlbihlcnJvcnMgPT5cbiAqICAgICBlcnJvcnMucGlwZShcbiAqICAgICAgIC8vIGxvZyBlcnJvciBtZXNzYWdlXG4gKiAgICAgICB0YXAodmFsdWUgPT4gY29uc29sZS5sb2coYFZhbHVlICR7IHZhbHVlIH0gd2FzIHRvbyBoaWdoIWApKSxcbiAqICAgICAgIC8vIHJlc3RhcnQgaW4gNSBzZWNvbmRzXG4gKiAgICAgICBkZWxheVdoZW4odmFsdWUgPT4gdGltZXIodmFsdWUgKiAxMDAwKSlcbiAqICAgICApXG4gKiAgIClcbiAqICk7XG4gKlxuICogcmVzdWx0LnN1YnNjcmliZSh2YWx1ZSA9PiBjb25zb2xlLmxvZyh2YWx1ZSkpO1xuICpcbiAqIC8vIHJlc3VsdHM6XG4gKiAvLyAwXG4gKiAvLyAxXG4gKiAvLyAyXG4gKiAvLyAzXG4gKiAvLyA0XG4gKiAvLyA1XG4gKiAvLyAnVmFsdWUgNiB3YXMgdG9vIGhpZ2ghJ1xuICogLy8gLSBXYWl0IDUgc2Vjb25kcyB0aGVuIHJlcGVhdFxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgcmV0cnl9XG4gKlxuICogQHBhcmFtIG5vdGlmaWVyIEZ1bmN0aW9uIHRoYXQgcmVjZWl2ZXMgYW4gT2JzZXJ2YWJsZSBvZiBub3RpZmljYXRpb25zIHdpdGggd2hpY2ggYVxuICogdXNlciBjYW4gYGNvbXBsZXRlYCBvciBgZXJyb3JgLCBhYm9ydGluZyB0aGUgcmV0cnkuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBtaXJyb3JzIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIGFuIGBlcnJvcmAuXG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gdjkgb3IgdjEwLCB1c2Uge0BsaW5rIHJldHJ5fSdzIGBkZWxheWAgb3B0aW9uIGluc3RlYWQuXG4gKiBXaWxsIGJlIHJlbW92ZWQgaW4gdjkgb3IgdjEwLiBVc2Uge0BsaW5rIHJldHJ5fSdzIHtAbGluayBSZXRyeUNvbmZpZyNkZWxheSBkZWxheX0gb3B0aW9uIGluc3RlYWQuXG4gKiBJbnN0ZWFkIG9mIGByZXRyeVdoZW4oKCkgPT4gbm90aWZ5JClgLCB1c2U6IGByZXRyeSh7IGRlbGF5OiAoKSA9PiBub3RpZnkkIH0pYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJldHJ5V2hlbjxUPihub3RpZmllcjogKGVycm9yczogT2JzZXJ2YWJsZTxhbnk+KSA9PiBPYnNlcnZhYmxlSW5wdXQ8YW55Pik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBsZXQgaW5uZXJTdWI6IFN1YnNjcmlwdGlvbiB8IG51bGw7XG4gICAgbGV0IHN5bmNSZXN1YiA9IGZhbHNlO1xuICAgIGxldCBlcnJvcnMkOiBTdWJqZWN0PGFueT47XG5cbiAgICBjb25zdCBzdWJzY3JpYmVGb3JSZXRyeVdoZW4gPSAoKSA9PiB7XG4gICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICAgIGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgKGVycikgPT4ge1xuICAgICAgICAgIGlmICghZXJyb3JzJCkge1xuICAgICAgICAgICAgZXJyb3JzJCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgICAgICAgICBpbm5lckZyb20obm90aWZpZXIoZXJyb3JzJCkpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsICgpID0+XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhbiBpbm5lclN1YiwgdGhpcyB3YXMgYW4gYXN5bmNocm9ub3VzIGNhbGwsIGtpY2sgb2ZmIHRoZSByZXRyeS5cbiAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGlmIHdlIGRvbid0IGhhdmUgYW4gaW5uZXJTdWIgeWV0LCB0aGF0J3MgYmVjYXVzZSB0aGUgaW5uZXIgc3Vic2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgLy8gY2FsbCBoYXNuJ3QgZXZlbiByZXR1cm5lZCB5ZXQuIFdlJ3ZlIGFycml2ZWQgaGVyZSBzeW5jaHJvbm91c2x5LlxuICAgICAgICAgICAgICAgIC8vIFNvIHdlIGZsYWcgdGhhdCB3ZSB3YW50IHRvIHJlc3ViLCBzdWNoIHRoYXQgd2UgY2FuIGVuc3VyZSBmaW5hbGl6YXRpb25cbiAgICAgICAgICAgICAgICAvLyBoYXBwZW5zIGJlZm9yZSB3ZSByZXN1YnNjcmliZS5cbiAgICAgICAgICAgICAgICBpbm5lclN1YiA/IHN1YnNjcmliZUZvclJldHJ5V2hlbigpIDogKHN5bmNSZXN1YiA9IHRydWUpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlcnJvcnMkKSB7XG4gICAgICAgICAgICAvLyBXZSBoYXZlIHNldCB1cCB0aGUgbm90aWZpZXIgd2l0aG91dCBlcnJvci5cbiAgICAgICAgICAgIGVycm9ycyQubmV4dChlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIGlmIChzeW5jUmVzdWIpIHtcbiAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIGlubmVyIHN1YnNjcmlwdGlvbiBpcyB0b3JuIGRvd24gYmVmb3JlXG4gICAgICAgIC8vIG1vdmluZyBvbiB0byB0aGUgbmV4dCBzdWJzY3JpcHRpb24gaW4gdGhlIHN5bmNocm9ub3VzIGNhc2UuXG4gICAgICAgIC8vIElmIHdlIGRvbid0IGRvIHRoaXMgaGVyZSwgYWxsIGlubmVyIHN1YnNjcmlwdGlvbnMgd2lsbCBub3QgYmVcbiAgICAgICAgLy8gdG9ybiBkb3duIHVudGlsIHRoZSBlbnRpcmUgb2JzZXJ2YWJsZSBpcyBkb25lLlxuICAgICAgICBpbm5lclN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICBpbm5lclN1YiA9IG51bGw7XG4gICAgICAgIC8vIFdlIG1heSBuZWVkIHRvIGRvIHRoaXMgbXVsdGlwbGUgdGltZXMsIHNvIHJlc2V0IHRoZSBmbGFnLlxuICAgICAgICBzeW5jUmVzdWIgPSBmYWxzZTtcbiAgICAgICAgLy8gUmVzdWJzY3JpYmVcbiAgICAgICAgc3Vic2NyaWJlRm9yUmV0cnlXaGVuKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIFN0YXJ0IHRoZSBzdWJzY3JpcHRpb25cbiAgICBzdWJzY3JpYmVGb3JSZXRyeVdoZW4oKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgaW5uZXJGcm9tIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9pbm5lckZyb20nO1xuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi91dGlsL25vb3AnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuXG4vKipcbiAqIEVtaXRzIHRoZSBtb3N0IHJlY2VudGx5IGVtaXR0ZWQgdmFsdWUgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUgd2hlbmV2ZXJcbiAqIGFub3RoZXIgT2JzZXJ2YWJsZSwgdGhlIGBub3RpZmllcmAsIGVtaXRzLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5JdCdzIGxpa2Uge0BsaW5rIHNhbXBsZVRpbWV9LCBidXQgc2FtcGxlcyB3aGVuZXZlclxuICogdGhlIGBub3RpZmllcmAgYE9ic2VydmFibGVJbnB1dGAgZW1pdHMgc29tZXRoaW5nLjwvc3Bhbj5cbiAqXG4gKiAhW10oc2FtcGxlLnBuZylcbiAqXG4gKiBXaGVuZXZlciB0aGUgYG5vdGlmaWVyYCBgT2JzZXJ2YWJsZUlucHV0YCBlbWl0cyBhIHZhbHVlLCBgc2FtcGxlYFxuICogbG9va3MgYXQgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIGFuZCBlbWl0cyB3aGljaGV2ZXIgdmFsdWUgaXQgaGFzIG1vc3QgcmVjZW50bHlcbiAqIGVtaXR0ZWQgc2luY2UgdGhlIHByZXZpb3VzIHNhbXBsaW5nLCB1bmxlc3MgdGhlIHNvdXJjZSBoYXMgbm90IGVtaXR0ZWRcbiAqIGFueXRoaW5nIHNpbmNlIHRoZSBwcmV2aW91cyBzYW1wbGluZy4gVGhlIGBub3RpZmllcmAgaXMgc3Vic2NyaWJlZCB0byBhcyBzb29uXG4gKiBhcyB0aGUgb3V0cHV0IE9ic2VydmFibGUgaXMgc3Vic2NyaWJlZC5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogT24gZXZlcnkgY2xpY2ssIHNhbXBsZSB0aGUgbW9zdCByZWNlbnQgYHNlY29uZHNgIHRpbWVyXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgaW50ZXJ2YWwsIHNhbXBsZSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHNlY29uZHMgPSBpbnRlcnZhbCgxMDAwKTtcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCByZXN1bHQgPSBzZWNvbmRzLnBpcGUoc2FtcGxlKGNsaWNrcykpO1xuICpcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBhdWRpdH1cbiAqIEBzZWUge0BsaW5rIGRlYm91bmNlfVxuICogQHNlZSB7QGxpbmsgc2FtcGxlVGltZX1cbiAqIEBzZWUge0BsaW5rIHRocm90dGxlfVxuICpcbiAqIEBwYXJhbSBub3RpZmllciBUaGUgYE9ic2VydmFibGVJbnB1dGAgdG8gdXNlIGZvciBzYW1wbGluZyB0aGVcbiAqIHNvdXJjZSBPYnNlcnZhYmxlLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdHMgb2ZcbiAqIHNhbXBsaW5nIHRoZSB2YWx1ZXMgZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUgd2hlbmV2ZXIgdGhlIG5vdGlmaWVyXG4gKiBPYnNlcnZhYmxlIGVtaXRzIHZhbHVlIG9yIGNvbXBsZXRlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbXBsZTxUPihub3RpZmllcjogT2JzZXJ2YWJsZUlucHV0PGFueT4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgbGV0IGhhc1ZhbHVlID0gZmFsc2U7XG4gICAgbGV0IGxhc3RWYWx1ZTogVCB8IG51bGwgPSBudWxsO1xuICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgKHZhbHVlKSA9PiB7XG4gICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTtcbiAgICAgICAgbGFzdFZhbHVlID0gdmFsdWU7XG4gICAgICB9KVxuICAgICk7XG4gICAgaW5uZXJGcm9tKG5vdGlmaWVyKS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAoaGFzVmFsdWUpIHtcbiAgICAgICAgICAgIGhhc1ZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGxhc3RWYWx1ZSE7XG4gICAgICAgICAgICBsYXN0VmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG5vb3BcbiAgICAgIClcbiAgICApO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBhc3luY1NjaGVkdWxlciB9IGZyb20gJy4uL3NjaGVkdWxlci9hc3luYyc7XG5pbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIFNjaGVkdWxlckxpa2UgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBzYW1wbGUgfSBmcm9tICcuL3NhbXBsZSc7XG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJy4uL29ic2VydmFibGUvaW50ZXJ2YWwnO1xuXG4vKipcbiAqIEVtaXRzIHRoZSBtb3N0IHJlY2VudGx5IGVtaXR0ZWQgdmFsdWUgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUgd2l0aGluXG4gKiBwZXJpb2RpYyB0aW1lIGludGVydmFscy5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+U2FtcGxlcyB0aGUgc291cmNlIE9ic2VydmFibGUgYXQgcGVyaW9kaWMgdGltZVxuICogaW50ZXJ2YWxzLCBlbWl0dGluZyB3aGF0IGl0IHNhbXBsZXMuPC9zcGFuPlxuICpcbiAqICFbXShzYW1wbGVUaW1lLnBuZylcbiAqXG4gKiBgc2FtcGxlVGltZWAgcGVyaW9kaWNhbGx5IGxvb2tzIGF0IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBhbmQgZW1pdHMgd2hpY2hldmVyXG4gKiB2YWx1ZSBpdCBoYXMgbW9zdCByZWNlbnRseSBlbWl0dGVkIHNpbmNlIHRoZSBwcmV2aW91cyBzYW1wbGluZywgdW5sZXNzIHRoZVxuICogc291cmNlIGhhcyBub3QgZW1pdHRlZCBhbnl0aGluZyBzaW5jZSB0aGUgcHJldmlvdXMgc2FtcGxpbmcuIFRoZSBzYW1wbGluZ1xuICogaGFwcGVucyBwZXJpb2RpY2FsbHkgaW4gdGltZSBldmVyeSBgcGVyaW9kYCBtaWxsaXNlY29uZHMgKG9yIHRoZSB0aW1lIHVuaXRcbiAqIGRlZmluZWQgYnkgdGhlIG9wdGlvbmFsIGBzY2hlZHVsZXJgIGFyZ3VtZW50KS4gVGhlIHNhbXBsaW5nIHN0YXJ0cyBhcyBzb29uIGFzXG4gKiB0aGUgb3V0cHV0IE9ic2VydmFibGUgaXMgc3Vic2NyaWJlZC5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogRXZlcnkgc2Vjb25kLCBlbWl0IHRoZSBtb3N0IHJlY2VudCBjbGljayBhdCBtb3N0IG9uY2VcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBzYW1wbGVUaW1lIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGNsaWNrcy5waXBlKHNhbXBsZVRpbWUoMTAwMCkpO1xuICpcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBhdWRpdFRpbWV9XG4gKiBAc2VlIHtAbGluayBkZWJvdW5jZVRpbWV9XG4gKiBAc2VlIHtAbGluayBkZWxheX1cbiAqIEBzZWUge0BsaW5rIHNhbXBsZX1cbiAqIEBzZWUge0BsaW5rIHRocm90dGxlVGltZX1cbiAqXG4gKiBAcGFyYW0gcGVyaW9kIFRoZSBzYW1wbGluZyBwZXJpb2QgZXhwcmVzc2VkIGluIG1pbGxpc2Vjb25kcyBvciB0aGUgdGltZSB1bml0XG4gKiBkZXRlcm1pbmVkIGludGVybmFsbHkgYnkgdGhlIG9wdGlvbmFsIGBzY2hlZHVsZXJgLlxuICogQHBhcmFtIHNjaGVkdWxlciBUaGUge0BsaW5rIFNjaGVkdWxlckxpa2V9IHRvIHVzZSBmb3IgbWFuYWdpbmcgdGhlIHRpbWVyc1xuICogdGhhdCBoYW5kbGUgdGhlIHNhbXBsaW5nLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdHMgb2ZcbiAqIHNhbXBsaW5nIHRoZSB2YWx1ZXMgZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUgYXQgdGhlIHNwZWNpZmllZCB0aW1lXG4gKiBpbnRlcnZhbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbXBsZVRpbWU8VD4ocGVyaW9kOiBudW1iZXIsIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSA9IGFzeW5jU2NoZWR1bGVyKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIHNhbXBsZShpbnRlcnZhbChwZXJpb2QsIHNjaGVkdWxlcikpO1xufVxuIiwgImltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IHNjYW5JbnRlcm5hbHMgfSBmcm9tICcuL3NjYW5JbnRlcm5hbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2NhbjxWLCBBID0gVj4oYWNjdW11bGF0b3I6IChhY2M6IEEgfCBWLCB2YWx1ZTogViwgaW5kZXg6IG51bWJlcikgPT4gQSk6IE9wZXJhdG9yRnVuY3Rpb248ViwgViB8IEE+O1xuZXhwb3J0IGZ1bmN0aW9uIHNjYW48ViwgQT4oYWNjdW11bGF0b3I6IChhY2M6IEEsIHZhbHVlOiBWLCBpbmRleDogbnVtYmVyKSA9PiBBLCBzZWVkOiBBKTogT3BlcmF0b3JGdW5jdGlvbjxWLCBBPjtcbmV4cG9ydCBmdW5jdGlvbiBzY2FuPFYsIEEsIFM+KGFjY3VtdWxhdG9yOiAoYWNjOiBBIHwgUywgdmFsdWU6IFYsIGluZGV4OiBudW1iZXIpID0+IEEsIHNlZWQ6IFMpOiBPcGVyYXRvckZ1bmN0aW9uPFYsIEE+O1xuXG4vLyBUT0RPOiBsaW5rIHRvIGEgXCJyZWR1eCBwYXR0ZXJuXCIgc2VjdGlvbiBpbiB0aGUgZ3VpZGUgKGxvY2F0aW9uIFRCRClcblxuLyoqXG4gKiBVc2VmdWwgZm9yIGVuY2Fwc3VsYXRpbmcgYW5kIG1hbmFnaW5nIHN0YXRlLiBBcHBsaWVzIGFuIGFjY3VtdWxhdG9yIChvciBcInJlZHVjZXIgZnVuY3Rpb25cIilcbiAqIHRvIGVhY2ggdmFsdWUgZnJvbSB0aGUgc291cmNlIGFmdGVyIGFuIGluaXRpYWwgc3RhdGUgaXMgZXN0YWJsaXNoZWQgLS0gZWl0aGVyIHZpYVxuICogYSBgc2VlZGAgdmFsdWUgKHNlY29uZCBhcmd1bWVudCksIG9yIGZyb20gdGhlIGZpcnN0IHZhbHVlIGZyb20gdGhlIHNvdXJjZS5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+SXQncyBsaWtlIHtAbGluayByZWR1Y2V9LCBidXQgZW1pdHMgdGhlIGN1cnJlbnRcbiAqIGFjY3VtdWxhdGlvbiBzdGF0ZSBhZnRlciBlYWNoIHVwZGF0ZTwvc3Bhbj5cbiAqXG4gKiAhW10oc2Nhbi5wbmcpXG4gKlxuICogVGhpcyBvcGVyYXRvciBtYWludGFpbnMgYW4gaW50ZXJuYWwgc3RhdGUgYW5kIGVtaXRzIGl0IGFmdGVyIHByb2Nlc3NpbmcgZWFjaCB2YWx1ZSBhcyBmb2xsb3dzOlxuICpcbiAqIDEuIEZpcnN0IHZhbHVlIGFycml2ZXNcbiAqICAgLSBJZiBhIGBzZWVkYCB2YWx1ZSB3YXMgc3VwcGxpZWQgKGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gYHNjYW5gKSwgbGV0IGBzdGF0ZSA9IHNlZWRgIGFuZCBgdmFsdWUgPSBmaXJzdFZhbHVlYC5cbiAqICAgLSBJZiBOTyBgc2VlZGAgdmFsdWUgd2FzIHN1cHBsaWVkIChubyBzZWNvbmQgYXJndW1lbnQpLCBsZXQgYHN0YXRlID0gZmlyc3RWYWx1ZWAgYW5kIGdvIHRvIDMuXG4gKiAyLiBMZXQgYHN0YXRlID0gYWNjdW11bGF0b3Ioc3RhdGUsIHZhbHVlKWAuXG4gKiAgIC0gSWYgYW4gZXJyb3IgaXMgdGhyb3duIGJ5IGBhY2N1bXVsYXRvcmAsIG5vdGlmeSB0aGUgY29uc3VtZXIgb2YgYW4gZXJyb3IuIFRoZSBwcm9jZXNzIGVuZHMuXG4gKiAzLiBFbWl0IGBzdGF0ZWAuXG4gKiA0LiBOZXh0IHZhbHVlIGFycml2ZXMsIGxldCBgdmFsdWUgPSBuZXh0VmFsdWVgLCBnbyB0byAyLlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogQW4gYXZlcmFnZSBvZiBwcmV2aW91cyBudW1iZXJzLiBUaGlzIGV4YW1wbGUgc2hvd3MgaG93XG4gKiBub3QgcHJvdmlkaW5nIGEgYHNlZWRgIGNhbiBwcmltZSB0aGUgc3RyZWFtIHdpdGggdGhlXG4gKiBmaXJzdCB2YWx1ZSBmcm9tIHRoZSBzb3VyY2UuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBzY2FuLCBtYXAgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBudW1iZXJzJCA9IG9mKDEsIDIsIDMpO1xuICpcbiAqIG51bWJlcnMkXG4gKiAgIC5waXBlKFxuICogICAgIC8vIEdldCB0aGUgc3VtIG9mIHRoZSBudW1iZXJzIGNvbWluZyBpbi5cbiAqICAgICBzY2FuKCh0b3RhbCwgbikgPT4gdG90YWwgKyBuKSxcbiAqICAgICAvLyBHZXQgdGhlIGF2ZXJhZ2UgYnkgZGl2aWRpbmcgdGhlIHN1bSBieSB0aGUgdG90YWwgbnVtYmVyXG4gKiAgICAgLy8gcmVjZWl2ZWQgc28gZmFyICh3aGljaCBpcyAxIG1vcmUgdGhhbiB0aGUgemVyby1iYXNlZCBpbmRleCkuXG4gKiAgICAgbWFwKChzdW0sIGluZGV4KSA9PiBzdW0gLyAoaW5kZXggKyAxKSlcbiAqICAgKVxuICogICAuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTtcbiAqIGBgYFxuICpcbiAqIFRoZSBGaWJvbmFjY2kgc2VxdWVuY2UuIFRoaXMgZXhhbXBsZSBzaG93cyBob3cgeW91IGNhbiB1c2VcbiAqIGEgc2VlZCB0byBwcmltZSBhY2N1bXVsYXRpb24gcHJvY2Vzcy4gQWxzby4uLiB5b3Uga25vdy4uLiBGaWJvbmFjY2kuXG4gKiBTbyBpbXBvcnRhbnQgdG8gbGlrZSwgY29tcHV0ZXJzIGFuZCBzdHVmZiB0aGF0IGl0cyB3aGl0ZWJvYXJkZWRcbiAqIGluIGpvYiBpbnRlcnZpZXdzLiBOb3cgeW91IGNhbiBzaG93IHRoZW0gdGhlIFJ4IHZlcnNpb24hIChQbGVhc2UgZG9uJ3QsIGhhaGEpXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCBzY2FuLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGZpcnN0VHdvRmlicyA9IFswLCAxXTtcbiAqIC8vIEFuIGVuZGxlc3Mgc3RyZWFtIG9mIEZpYm9uYWNjaSBudW1iZXJzLlxuICogY29uc3QgZmlib25hY2NpJCA9IGludGVydmFsKDEwMDApLnBpcGUoXG4gKiAgIC8vIFNjYW4gdG8gZ2V0IHRoZSBmaWJvbmFjY2kgbnVtYmVycyAoYWZ0ZXIgMCwgMSlcbiAqICAgc2NhbigoW2EsIGJdKSA9PiBbYiwgYSArIGJdLCBmaXJzdFR3b0ZpYnMpLFxuICogICAvLyBHZXQgdGhlIHNlY29uZCBudW1iZXIgaW4gdGhlIHR1cGxlLCBpdCdzIHRoZSBvbmUgeW91IGNhbGN1bGF0ZWRcbiAqICAgbWFwKChbLCBuXSkgPT4gbiksXG4gKiAgIC8vIFN0YXJ0IHdpdGggb3VyIGZpcnN0IHR3byBkaWdpdHMgOilcbiAqICAgc3RhcnRXaXRoKC4uLmZpcnN0VHdvRmlicylcbiAqICk7XG4gKlxuICogZmlib25hY2NpJC5zdWJzY3JpYmUoY29uc29sZS5sb2cpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgZXhwYW5kfVxuICogQHNlZSB7QGxpbmsgbWVyZ2VTY2FufVxuICogQHNlZSB7QGxpbmsgcmVkdWNlfVxuICogQHNlZSB7QGxpbmsgc3dpdGNoU2Nhbn1cbiAqXG4gKiBAcGFyYW0gYWNjdW11bGF0b3IgQSBcInJlZHVjZXIgZnVuY3Rpb25cIi4gVGhpcyB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCB2YWx1ZSBhZnRlciBhbiBpbml0aWFsIHN0YXRlIGlzXG4gKiBhY3F1aXJlZC5cbiAqIEBwYXJhbSBzZWVkIFRoZSBpbml0aWFsIHN0YXRlLiBJZiB0aGlzIGlzIG5vdCBwcm92aWRlZCwgdGhlIGZpcnN0IHZhbHVlIGZyb20gdGhlIHNvdXJjZSB3aWxsXG4gKiBiZSB1c2VkIGFzIHRoZSBpbml0aWFsIHN0YXRlLCBhbmQgZW1pdHRlZCB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhlIGFjY3VtdWxhdG9yLiBBbGwgc3Vic2VxdWVudCB2YWx1ZXNcbiAqIHdpbGwgYmUgcHJvY2Vzc2VkIGJ5IHRoZSBhY2N1bXVsYXRvciBmdW5jdGlvbi4gSWYgdGhpcyBpcyBwcm92aWRlZCwgYWxsIHZhbHVlcyB3aWxsIGdvIHRocm91Z2hcbiAqIHRoZSBhY2N1bXVsYXRvciBmdW5jdGlvbi5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSBvZiB0aGUgYWNjdW11bGF0ZWQgdmFsdWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NhbjxWLCBBLCBTPihhY2N1bXVsYXRvcjogKGFjYzogViB8IEEgfCBTLCB2YWx1ZTogViwgaW5kZXg6IG51bWJlcikgPT4gQSwgc2VlZD86IFMpOiBPcGVyYXRvckZ1bmN0aW9uPFYsIFYgfCBBPiB7XG4gIC8vIHByb3ZpZGluZyBhIHNlZWQgb2YgYHVuZGVmaW5lZGAgKnNob3VsZCogYmUgdmFsaWQgYW5kIHRyaWdnZXJcbiAgLy8gaGFzU2VlZCEgc28gZG9uJ3QgdXNlIGBzZWVkICE9PSB1bmRlZmluZWRgIGNoZWNrcyFcbiAgLy8gRm9yIHRoaXMgcmVhc29uLCB3ZSBoYXZlIHRvIGNoZWNrIGl0IGhlcmUgYXQgdGhlIG9yaWdpbmFsIGNhbGwgc2l0ZVxuICAvLyBvdGhlcndpc2UgaW5zaWRlIE9wZXJhdG9yL1N1YnNjcmliZXIgd2Ugd29uJ3Qga25vdyBpZiBgdW5kZWZpbmVkYFxuICAvLyBtZWFucyB0aGV5IGRpZG4ndCBwcm92aWRlIGFueXRoaW5nIG9yIGlmIHRoZXkgbGl0ZXJhbGx5IHByb3ZpZGVkIGB1bmRlZmluZWRgXG4gIHJldHVybiBvcGVyYXRlKHNjYW5JbnRlcm5hbHMoYWNjdW11bGF0b3IsIHNlZWQgYXMgUywgYXJndW1lbnRzLmxlbmd0aCA+PSAyLCB0cnVlKSk7XG59XG4iLCAiaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBpbm5lckZyb20gfSBmcm9tICcuLi9vYnNlcnZhYmxlL2lubmVyRnJvbSc7XG5cbi8qKlxuICogQ29tcGFyZXMgYWxsIHZhbHVlcyBvZiB0d28gb2JzZXJ2YWJsZXMgaW4gc2VxdWVuY2UgdXNpbmcgYW4gb3B0aW9uYWwgY29tcGFyYXRvciBmdW5jdGlvblxuICogYW5kIHJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiBhIHNpbmdsZSBib29sZWFuIHZhbHVlIHJlcHJlc2VudGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgdHdvIHNlcXVlbmNlc1xuICogYXJlIGVxdWFsLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5DaGVja3MgdG8gc2VlIG9mIGFsbCB2YWx1ZXMgZW1pdHRlZCBieSBib3RoIG9ic2VydmFibGVzIGFyZSBlcXVhbCwgaW4gb3JkZXIuPC9zcGFuPlxuICpcbiAqICFbXShzZXF1ZW5jZUVxdWFsLnBuZylcbiAqXG4gKiBgc2VxdWVuY2VFcXVhbGAgc3Vic2NyaWJlcyB0byBzb3VyY2Ugb2JzZXJ2YWJsZSBhbmQgYGNvbXBhcmVUb2AgYE9ic2VydmFibGVJbnB1dGAgKHRoYXQgaW50ZXJuYWxseVxuICogZ2V0cyBjb252ZXJ0ZWQgdG8gYW4gb2JzZXJ2YWJsZSkgYW5kIGJ1ZmZlcnMgaW5jb21pbmcgdmFsdWVzIGZyb20gZWFjaCBvYnNlcnZhYmxlLiBXaGVuZXZlciBlaXRoZXJcbiAqIG9ic2VydmFibGUgZW1pdHMgYSB2YWx1ZSwgdGhlIHZhbHVlIGlzIGJ1ZmZlcmVkIGFuZCB0aGUgYnVmZmVycyBhcmUgc2hpZnRlZCBhbmQgY29tcGFyZWQgZnJvbSB0aGUgYm90dG9tXG4gKiB1cDsgSWYgYW55IHZhbHVlIHBhaXIgZG9lc24ndCBtYXRjaCwgdGhlIHJldHVybmVkIG9ic2VydmFibGUgd2lsbCBlbWl0IGBmYWxzZWAgYW5kIGNvbXBsZXRlLiBJZiBvbmUgb2YgdGhlXG4gKiBvYnNlcnZhYmxlcyBjb21wbGV0ZXMsIHRoZSBvcGVyYXRvciB3aWxsIHdhaXQgZm9yIHRoZSBvdGhlciBvYnNlcnZhYmxlIHRvIGNvbXBsZXRlOyBJZiB0aGUgb3RoZXJcbiAqIG9ic2VydmFibGUgZW1pdHMgYmVmb3JlIGNvbXBsZXRpbmcsIHRoZSByZXR1cm5lZCBvYnNlcnZhYmxlIHdpbGwgZW1pdCBgZmFsc2VgIGFuZCBjb21wbGV0ZS4gSWYgb25lIG9ic2VydmFibGUgbmV2ZXJcbiAqIGNvbXBsZXRlcyBvciBlbWl0cyBhZnRlciB0aGUgb3RoZXIgY29tcGxldGVzLCB0aGUgcmV0dXJuZWQgb2JzZXJ2YWJsZSB3aWxsIG5ldmVyIGNvbXBsZXRlLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBGaWd1cmUgb3V0IGlmIHRoZSBLb25hbWkgY29kZSBtYXRjaGVzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb20sIGZyb21FdmVudCwgbWFwLCBidWZmZXJDb3VudCwgbWVyZ2VNYXAsIHNlcXVlbmNlRXF1YWwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjb2RlcyA9IGZyb20oW1xuICogICAnQXJyb3dVcCcsXG4gKiAgICdBcnJvd1VwJyxcbiAqICAgJ0Fycm93RG93bicsXG4gKiAgICdBcnJvd0Rvd24nLFxuICogICAnQXJyb3dMZWZ0JyxcbiAqICAgJ0Fycm93UmlnaHQnLFxuICogICAnQXJyb3dMZWZ0JyxcbiAqICAgJ0Fycm93UmlnaHQnLFxuICogICAnS2V5QicsXG4gKiAgICdLZXlBJyxcbiAqICAgJ0VudGVyJywgLy8gbm8gc3RhcnQga2V5LCBjbGVhcmx5LlxuICogXSk7XG4gKlxuICogY29uc3Qga2V5cyA9IGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2tleXVwJykucGlwZShtYXAoZSA9PiBlLmNvZGUpKTtcbiAqIGNvbnN0IG1hdGNoZXMgPSBrZXlzLnBpcGUoXG4gKiAgIGJ1ZmZlckNvdW50KDExLCAxKSxcbiAqICAgbWVyZ2VNYXAobGFzdDExID0+IGZyb20obGFzdDExKS5waXBlKHNlcXVlbmNlRXF1YWwoY29kZXMpKSlcbiAqICk7XG4gKiBtYXRjaGVzLnN1YnNjcmliZShtYXRjaGVkID0+IGNvbnNvbGUubG9nKCdTdWNjZXNzZnVsIGNoZWF0IGF0IENvbnRyYT8gJywgbWF0Y2hlZCkpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgY29tYmluZUxhdGVzdH1cbiAqIEBzZWUge0BsaW5rIHppcH1cbiAqIEBzZWUge0BsaW5rIHdpdGhMYXRlc3RGcm9tfVxuICpcbiAqIEBwYXJhbSBjb21wYXJlVG8gVGhlIGBPYnNlcnZhYmxlSW5wdXRgIHNlcXVlbmNlIHRvIGNvbXBhcmUgdGhlIHNvdXJjZSBzZXF1ZW5jZSB0by5cbiAqIEBwYXJhbSBjb21wYXJhdG9yIEFuIG9wdGlvbmFsIGZ1bmN0aW9uIHRvIGNvbXBhcmUgZWFjaCB2YWx1ZSBwYWlyLlxuICpcbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgc2luZ2xlIGJvb2xlYW5cbiAqIHZhbHVlIHJlcHJlc2VudGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgdmFsdWVzIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZVxuICogT2JzZXJ2YWJsZSBhbmQgcHJvdmlkZWQgYE9ic2VydmFibGVJbnB1dGAgd2VyZSBlcXVhbCBpbiBzZXF1ZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcXVlbmNlRXF1YWw8VD4oXG4gIGNvbXBhcmVUbzogT2JzZXJ2YWJsZUlucHV0PFQ+LFxuICBjb21wYXJhdG9yOiAoYTogVCwgYjogVCkgPT4gYm9vbGVhbiA9IChhLCBiKSA9PiBhID09PSBiXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIGJvb2xlYW4+IHtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIC8vIFRoZSBzdGF0ZSBmb3IgdGhlIHNvdXJjZSBvYnNlcnZhYmxlXG4gICAgY29uc3QgYVN0YXRlID0gY3JlYXRlU3RhdGU8VD4oKTtcbiAgICAvLyBUaGUgc3RhdGUgZm9yIHRoZSBjb21wYXJlVG8gb2JzZXJ2YWJsZTtcbiAgICBjb25zdCBiU3RhdGUgPSBjcmVhdGVTdGF0ZTxUPigpO1xuXG4gICAgLyoqIEEgdXRpbGl0eSB0byBlbWl0IGFuZCBjb21wbGV0ZSAqL1xuICAgIGNvbnN0IGVtaXQgPSAoaXNFcXVhbDogYm9vbGVhbikgPT4ge1xuICAgICAgc3Vic2NyaWJlci5uZXh0KGlzRXF1YWwpO1xuICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc3Vic2NyaWJlciB0aGF0IHN1YnNjcmliZXMgdG8gb25lIG9mIHRoZSBzb3VyY2VzLCBhbmQgY29tcGFyZXMgaXRzIGNvbGxlY3RlZFxuICAgICAqIHN0YXRlIC0tIGBzZWxmU3RhdGVgIC0tIHRvIHRoZSBvdGhlciBzb3VyY2UncyBjb2xsZWN0ZWQgc3RhdGUgLS0gYG90aGVyU3RhdGVgLiBUaGlzXG4gICAgICogaXMgdXNlZCBmb3IgYm90aCBzdHJlYW1zLlxuICAgICAqL1xuICAgIGNvbnN0IGNyZWF0ZVN1YnNjcmliZXIgPSAoc2VsZlN0YXRlOiBTZXF1ZW5jZVN0YXRlPFQ+LCBvdGhlclN0YXRlOiBTZXF1ZW5jZVN0YXRlPFQ+KSA9PiB7XG4gICAgICBjb25zdCBzZXF1ZW5jZUVxdWFsU3Vic2NyaWJlciA9IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihcbiAgICAgICAgc3Vic2NyaWJlcixcbiAgICAgICAgKGE6IFQpID0+IHtcbiAgICAgICAgICBjb25zdCB7IGJ1ZmZlciwgY29tcGxldGUgfSA9IG90aGVyU3RhdGU7XG4gICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gdmFsdWVzIGluIHRoZSBvdGhlciBidWZmZXJcbiAgICAgICAgICAgIC8vIGFuZCB0aGUgb3RoZXIgc3RyZWFtIGlzIGNvbXBsZXRlLCB3ZSBrbm93XG4gICAgICAgICAgICAvLyB0aGlzIGlzbid0IGEgbWF0Y2gsIGJlY2F1c2Ugd2UgZ290IG9uZSBtb3JlIHZhbHVlLlxuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBwdXNoIG9udG8gb3VyIGJ1ZmZlciwgc28gd2hlbiB0aGUgb3RoZXJcbiAgICAgICAgICAgIC8vIHN0cmVhbSBlbWl0cywgaXQgY2FuIHB1bGwgdGhpcyB2YWx1ZSBvZmYgb3VyIGJ1ZmZlciBhbmQgY2hlY2sgaXRcbiAgICAgICAgICAgIC8vIGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lLlxuICAgICAgICAgICAgY29tcGxldGUgPyBlbWl0KGZhbHNlKSA6IHNlbGZTdGF0ZS5idWZmZXIucHVzaChhKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSWYgdGhlIG90aGVyIHN0cmVhbSAqZG9lcyogaGF2ZSB2YWx1ZXMgaW4gaXRzIGJ1ZmZlcixcbiAgICAgICAgICAgIC8vIHB1bGwgdGhlIG9sZGVzdCBvbmUgb2ZmIHNvIHdlIGNhbiBjb21wYXJlIGl0IHRvIHdoYXQgd2VcbiAgICAgICAgICAgIC8vIGp1c3QgZ290LiBJZiBpdCB3YXNuJ3QgYSBtYXRjaCwgZW1pdCBgZmFsc2VgIGFuZCBjb21wbGV0ZS5cbiAgICAgICAgICAgICFjb21wYXJhdG9yKGEsIGJ1ZmZlci5zaGlmdCgpISkgJiYgZW1pdChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgLy8gT3Igb2JzZXJ2YWJsZSBjb21wbGV0ZWRcbiAgICAgICAgICBzZWxmU3RhdGUuY29tcGxldGUgPSB0cnVlO1xuICAgICAgICAgIGNvbnN0IHsgY29tcGxldGUsIGJ1ZmZlciB9ID0gb3RoZXJTdGF0ZTtcbiAgICAgICAgICAvLyBJZiB0aGUgb3RoZXIgb2JzZXJ2YWJsZSBpcyBhbHNvIGNvbXBsZXRlLCBhbmQgdGhlcmUnc1xuICAgICAgICAgIC8vIHN0aWxsIHN0dWZmIGxlZnQgaW4gdGhlaXIgYnVmZmVyLCBpdCBkb2Vzbid0IG1hdGNoLCBpZiB0aGVpclxuICAgICAgICAgIC8vIGJ1ZmZlciBpcyBlbXB0eSwgdGhlbiBpdCBkb2VzIG1hdGNoLiBUaGlzIGlzIGJlY2F1c2Ugd2UgY2FuJ3RcbiAgICAgICAgICAvLyBwb3NzaWJseSBnZXQgbW9yZSB2YWx1ZXMgaGVyZSBhbnltb3JlLlxuICAgICAgICAgIGNvbXBsZXRlICYmIGVtaXQoYnVmZmVyLmxlbmd0aCA9PT0gMCk7XG4gICAgICAgICAgLy8gQmUgc3VyZSB0byBjbGVhbiB1cCBvdXIgc3RyZWFtIGFzIHNvb24gYXMgcG9zc2libGUgaWYgd2UgY2FuLlxuICAgICAgICAgIHNlcXVlbmNlRXF1YWxTdWJzY3JpYmVyPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gc2VxdWVuY2VFcXVhbFN1YnNjcmliZXI7XG4gICAgfTtcblxuICAgIC8vIFN1YnNjcmliZSB0byBlYWNoIHNvdXJjZS5cbiAgICBzb3VyY2Uuc3Vic2NyaWJlKGNyZWF0ZVN1YnNjcmliZXIoYVN0YXRlLCBiU3RhdGUpKTtcbiAgICBpbm5lckZyb20oY29tcGFyZVRvKS5zdWJzY3JpYmUoY3JlYXRlU3Vic2NyaWJlcihiU3RhdGUsIGFTdGF0ZSkpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBBIHNpbXBsZSBzdHJ1Y3R1cmUgZm9yIHRoZSBkYXRhIHVzZWQgdG8gdGVzdCBlYWNoIHNlcXVlbmNlXG4gKi9cbmludGVyZmFjZSBTZXF1ZW5jZVN0YXRlPFQ+IHtcbiAgLyoqIEEgdGVtcG9yYXJ5IHN0b3JlIGZvciBhcnJpdmVkIHZhbHVlcyBiZWZvcmUgdGhleSBhcmUgY2hlY2tlZCAqL1xuICBidWZmZXI6IFRbXTtcbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRoZSBzZXF1ZW5jZSBzb3VyY2UgaGFzIGNvbXBsZXRlZC4gKi9cbiAgY29tcGxldGU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHNpbXBsZSBzdHJ1Y3R1cmUgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudFxuICogZGF0YSB1c2VkIHRvIHRlc3QgZWFjaCBzZXF1ZW5jZS5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3RhdGU8VD4oKTogU2VxdWVuY2VTdGF0ZTxUPiB7XG4gIHJldHVybiB7XG4gICAgYnVmZmVyOiBbXSxcbiAgICBjb21wbGV0ZTogZmFsc2UsXG4gIH07XG59XG4iLCAiaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJy4uL1JlcGxheVN1YmplY3QnO1xuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgc2hhcmUgfSBmcm9tICcuL3NoYXJlJztcblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZVJlcGxheUNvbmZpZyB7XG4gIGJ1ZmZlclNpemU/OiBudW1iZXI7XG4gIHdpbmRvd1RpbWU/OiBudW1iZXI7XG4gIHJlZkNvdW50OiBib29sZWFuO1xuICBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hhcmVSZXBsYXk8VD4oY29uZmlnOiBTaGFyZVJlcGxheUNvbmZpZyk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPjtcbmV4cG9ydCBmdW5jdGlvbiBzaGFyZVJlcGxheTxUPihidWZmZXJTaXplPzogbnVtYmVyLCB3aW5kb3dUaW1lPzogbnVtYmVyLCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuXG4vKipcbiAqIFNoYXJlIHNvdXJjZSBhbmQgcmVwbGF5IHNwZWNpZmllZCBudW1iZXIgb2YgZW1pc3Npb25zIG9uIHN1YnNjcmlwdGlvbi5cbiAqXG4gKiBUaGlzIG9wZXJhdG9yIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgYHJlcGxheWAgdGhhdCBjb25uZWN0cyB0byBhIHNvdXJjZSBvYnNlcnZhYmxlXG4gKiBhbmQgbXVsdGljYXN0cyB0aHJvdWdoIGEgYFJlcGxheVN1YmplY3RgIGNvbnN0cnVjdGVkIHdpdGggdGhlIHNwZWNpZmllZCBhcmd1bWVudHMuXG4gKiBBIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQgc291cmNlIHdpbGwgc3RheSBjYWNoZWQgaW4gdGhlIGBzaGFyZVJlcGxheWBlZCBvYnNlcnZhYmxlIGZvcmV2ZXIsXG4gKiBidXQgYW4gZXJyb3JlZCBzb3VyY2UgY2FuIGJlIHJldHJpZWQuXG4gKlxuICogIyMgV2h5IHVzZSBgc2hhcmVSZXBsYXlgP1xuICpcbiAqIFlvdSBnZW5lcmFsbHkgd2FudCB0byB1c2UgYHNoYXJlUmVwbGF5YCB3aGVuIHlvdSBoYXZlIHNpZGUtZWZmZWN0cyBvciB0YXhpbmcgY29tcHV0YXRpb25zXG4gKiB0aGF0IHlvdSBkbyBub3Qgd2lzaCB0byBiZSBleGVjdXRlZCBhbW9uZ3N0IG11bHRpcGxlIHN1YnNjcmliZXJzLlxuICogSXQgbWF5IGFsc28gYmUgdmFsdWFibGUgaW4gc2l0dWF0aW9ucyB3aGVyZSB5b3Uga25vdyB5b3Ugd2lsbCBoYXZlIGxhdGUgc3Vic2NyaWJlcnMgdG9cbiAqIGEgc3RyZWFtIHRoYXQgbmVlZCBhY2Nlc3MgdG8gcHJldmlvdXNseSBlbWl0dGVkIHZhbHVlcy5cbiAqIFRoaXMgYWJpbGl0eSB0byByZXBsYXkgdmFsdWVzIG9uIHN1YnNjcmlwdGlvbiBpcyB3aGF0IGRpZmZlcmVudGlhdGVzIHtAbGluayBzaGFyZX0gYW5kIGBzaGFyZVJlcGxheWAuXG4gKlxuICogIyMgUmVmZXJlbmNlIGNvdW50aW5nXG4gKlxuICogQnkgZGVmYXVsdCBgc2hhcmVSZXBsYXlgIHdpbGwgdXNlIGByZWZDb3VudGAgb2YgZmFsc2UsIG1lYW5pbmcgdGhhdCBpdCB3aWxsIF9ub3RfIHVuc3Vic2NyaWJlIHRoZVxuICogc291cmNlIHdoZW4gdGhlIHJlZmVyZW5jZSBjb3VudGVyIGRyb3BzIHRvIHplcm8sIGkuZS4gdGhlIGlubmVyIGBSZXBsYXlTdWJqZWN0YCB3aWxsIF9ub3RfIGJlIHVuc3Vic2NyaWJlZFxuICogKGFuZCBwb3RlbnRpYWxseSBydW4gZm9yIGV2ZXIpLlxuICogVGhpcyBpcyB0aGUgZGVmYXVsdCBhcyBpdCBpcyBleHBlY3RlZCB0aGF0IGBzaGFyZVJlcGxheWAgaXMgb2Z0ZW4gdXNlZCB0byBrZWVwIGFyb3VuZCBleHBlbnNpdmUgdG8gc2V0dXBcbiAqIG9ic2VydmFibGVzIHdoaWNoIHdlIHdhbnQgdG8ga2VlcCBydW5uaW5nIGluc3RlYWQgb2YgaGF2aW5nIHRvIGRvIHRoZSBleHBlbnNpdmUgc2V0dXAgYWdhaW4uXG4gKlxuICogQXMgb2YgUlhKUyB2ZXJzaW9uIDYuNC4wIGEgbmV3IG92ZXJsb2FkIHNpZ25hdHVyZSB3YXMgYWRkZWQgdG8gYWxsb3cgZm9yIG1hbnVhbCBjb250cm9sIG92ZXIgd2hhdFxuICogaGFwcGVucyB3aGVuIHRoZSBvcGVyYXRvcnMgaW50ZXJuYWwgcmVmZXJlbmNlIGNvdW50ZXIgZHJvcHMgdG8gemVyby5cbiAqIElmIGByZWZDb3VudGAgaXMgdHJ1ZSwgdGhlIHNvdXJjZSB3aWxsIGJlIHVuc3Vic2NyaWJlZCBmcm9tIG9uY2UgdGhlIHJlZmVyZW5jZSBjb3VudCBkcm9wcyB0byB6ZXJvLCBpLmUuXG4gKiB0aGUgaW5uZXIgYFJlcGxheVN1YmplY3RgIHdpbGwgYmUgdW5zdWJzY3JpYmVkLiBBbGwgbmV3IHN1YnNjcmliZXJzIHdpbGwgcmVjZWl2ZSB2YWx1ZSBlbWlzc2lvbnMgZnJvbSBhXG4gKiBuZXcgYFJlcGxheVN1YmplY3RgIHdoaWNoIGluIHR1cm4gd2lsbCBjYXVzZSBhIG5ldyBzdWJzY3JpcHRpb24gdG8gdGhlIHNvdXJjZSBvYnNlcnZhYmxlLlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogRXhhbXBsZSB3aXRoIGEgdGhpcmQgc3Vic2NyaWJlciBjb21pbmcgbGF0ZSB0byB0aGUgcGFydHlcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIHRha2UsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgc2hhcmVkJCA9IGludGVydmFsKDIwMDApLnBpcGUoXG4gKiAgIHRha2UoNiksXG4gKiAgIHNoYXJlUmVwbGF5KDMpXG4gKiApO1xuICpcbiAqIHNoYXJlZCQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coJ3N1YiBBOiAnLCB4KSk7XG4gKiBzaGFyZWQkLnN1YnNjcmliZSh5ID0+IGNvbnNvbGUubG9nKCdzdWIgQjogJywgeSkpO1xuICpcbiAqIHNldFRpbWVvdXQoKCkgPT4ge1xuICogICBzaGFyZWQkLnN1YnNjcmliZSh5ID0+IGNvbnNvbGUubG9nKCdzdWIgQzogJywgeSkpO1xuICogfSwgMTEwMDApO1xuICpcbiAqIC8vIExvZ3M6XG4gKiAvLyAoYWZ0ZXIgfjIwMDAgbXMpXG4gKiAvLyBzdWIgQTogMFxuICogLy8gc3ViIEI6IDBcbiAqIC8vIChhZnRlciB+NDAwMCBtcylcbiAqIC8vIHN1YiBBOiAxXG4gKiAvLyBzdWIgQjogMVxuICogLy8gKGFmdGVyIH42MDAwIG1zKVxuICogLy8gc3ViIEE6IDJcbiAqIC8vIHN1YiBCOiAyXG4gKiAvLyAoYWZ0ZXIgfjgwMDAgbXMpXG4gKiAvLyBzdWIgQTogM1xuICogLy8gc3ViIEI6IDNcbiAqIC8vIChhZnRlciB+MTAwMDAgbXMpXG4gKiAvLyBzdWIgQTogNFxuICogLy8gc3ViIEI6IDRcbiAqIC8vIChhZnRlciB+MTEwMDAgbXMsIHN1YiBDIGdldHMgdGhlIGxhc3QgMyB2YWx1ZXMpXG4gKiAvLyBzdWIgQzogMlxuICogLy8gc3ViIEM6IDNcbiAqIC8vIHN1YiBDOiA0XG4gKiAvLyAoYWZ0ZXIgfjEyMDAwIG1zKVxuICogLy8gc3ViIEE6IDVcbiAqIC8vIHN1YiBCOiA1XG4gKiAvLyBzdWIgQzogNVxuICogYGBgXG4gKlxuICogRXhhbXBsZSBmb3IgYHJlZkNvdW50YCB1c2FnZVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBPYnNlcnZhYmxlLCB0YXAsIGludGVydmFsLCBzaGFyZVJlcGxheSwgdGFrZSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGxvZyA9IDxUPihuYW1lOiBzdHJpbmcsIHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gc291cmNlLnBpcGUoXG4gKiAgIHRhcCh7XG4gKiAgICAgc3Vic2NyaWJlOiAoKSA9PiBjb25zb2xlLmxvZyhgJHsgbmFtZSB9OiBzdWJzY3JpYmVkYCksXG4gKiAgICAgbmV4dDogdmFsdWUgPT4gY29uc29sZS5sb2coYCR7IG5hbWUgfTogJHsgdmFsdWUgfWApLFxuICogICAgIGNvbXBsZXRlOiAoKSA9PiBjb25zb2xlLmxvZyhgJHsgbmFtZSB9OiBjb21wbGV0ZWRgKSxcbiAqICAgICBmaW5hbGl6ZTogKCkgPT4gY29uc29sZS5sb2coYCR7IG5hbWUgfTogdW5zdWJzY3JpYmVkYClcbiAqICAgfSlcbiAqICk7XG4gKlxuICogY29uc3Qgb2JzJCA9IGxvZygnc291cmNlJywgaW50ZXJ2YWwoMTAwMCkpO1xuICpcbiAqIGNvbnN0IHNoYXJlZCQgPSBsb2coJ3NoYXJlZCcsIG9icyQucGlwZShcbiAqICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAqICAgdGFrZSgyKVxuICogKSk7XG4gKlxuICogc2hhcmVkJC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZygnc3ViIEE6ICcsIHgpKTtcbiAqIHNoYXJlZCQuc3Vic2NyaWJlKHkgPT4gY29uc29sZS5sb2coJ3N1YiBCOiAnLCB5KSk7XG4gKlxuICogLy8gUFJJTlRTOlxuICogLy8gc2hhcmVkOiBzdWJzY3JpYmVkIDwtLSByZWZlcmVuY2UgY291bnQgPSAxXG4gKiAvLyBzb3VyY2U6IHN1YnNjcmliZWRcbiAqIC8vIHNoYXJlZDogc3Vic2NyaWJlZCA8LS0gcmVmZXJlbmNlIGNvdW50ID0gMlxuICogLy8gc291cmNlOiAwXG4gKiAvLyBzaGFyZWQ6IDBcbiAqIC8vIHN1YiBBOiAwXG4gKiAvLyBzaGFyZWQ6IDBcbiAqIC8vIHN1YiBCOiAwXG4gKiAvLyBzb3VyY2U6IDFcbiAqIC8vIHNoYXJlZDogMVxuICogLy8gc3ViIEE6IDFcbiAqIC8vIHNoYXJlZDogY29tcGxldGVkIDwtLSB0YWtlKDIpIGNvbXBsZXRlcyB0aGUgc3Vic2NyaXB0aW9uIGZvciBzdWIgQVxuICogLy8gc2hhcmVkOiB1bnN1YnNjcmliZWQgPC0tIHJlZmVyZW5jZSBjb3VudCA9IDFcbiAqIC8vIHNoYXJlZDogMVxuICogLy8gc3ViIEI6IDFcbiAqIC8vIHNoYXJlZDogY29tcGxldGVkIDwtLSB0YWtlKDIpIGNvbXBsZXRlcyB0aGUgc3Vic2NyaXB0aW9uIGZvciBzdWIgQlxuICogLy8gc2hhcmVkOiB1bnN1YnNjcmliZWQgPC0tIHJlZmVyZW5jZSBjb3VudCA9IDBcbiAqIC8vIHNvdXJjZTogdW5zdWJzY3JpYmVkIDwtLSByZXBsYXlTdWJqZWN0IHVuc3Vic2NyaWJlcyBmcm9tIHNvdXJjZSBvYnNlcnZhYmxlIGJlY2F1c2UgdGhlIHJlZmVyZW5jZSBjb3VudCBkcm9wcGVkIHRvIDAgYW5kIHJlZkNvdW50IGlzIHRydWVcbiAqXG4gKiAvLyBJbiBjYXNlIG9mIHJlZkNvdW50IGJlaW5nIGZhbHNlLCB0aGUgdW5zdWJzY3JpYmUgaXMgbmV2ZXIgY2FsbGVkIG9uIHRoZSBzb3VyY2UgYW5kIHRoZSBzb3VyY2Ugd291bGQga2VlcCBvbiBlbWl0dGluZywgZXZlbiBpZiBubyBzdWJzY3JpYmVyc1xuICogLy8gYXJlIGxpc3RlbmluZy5cbiAqIC8vIHNvdXJjZTogMlxuICogLy8gc291cmNlOiAzXG4gKiAvLyBzb3VyY2U6IDRcbiAqIC8vIC4uLlxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgcHVibGlzaH1cbiAqIEBzZWUge0BsaW5rIHNoYXJlfVxuICogQHNlZSB7QGxpbmsgcHVibGlzaFJlcGxheX1cbiAqXG4gKiBAcGFyYW0gY29uZmlnT3JCdWZmZXJTaXplIE1heGltdW0gZWxlbWVudCBjb3VudCBvZiB0aGUgcmVwbGF5IGJ1ZmZlciBvciB7QGxpbmsgU2hhcmVSZXBsYXlDb25maWcgY29uZmlndXJhdGlvbn1cbiAqIG9iamVjdC5cbiAqIEBwYXJhbSB3aW5kb3dUaW1lIE1heGltdW0gdGltZSBsZW5ndGggb2YgdGhlIHJlcGxheSBidWZmZXIgaW4gbWlsbGlzZWNvbmRzLlxuICogQHBhcmFtIHNjaGVkdWxlciBTY2hlZHVsZXIgd2hlcmUgY29ubmVjdGVkIG9ic2VydmVycyB3aXRoaW4gdGhlIHNlbGVjdG9yIGZ1bmN0aW9uXG4gKiB3aWxsIGJlIGludm9rZWQgb24uXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgc2VxdWVuY2UgdGhhdCBjb250YWlucyB0aGVcbiAqIGVsZW1lbnRzIG9mIGEgc2VxdWVuY2UgcHJvZHVjZWQgYnkgbXVsdGljYXN0aW5nIHRoZSBzb3VyY2Ugc2VxdWVuY2Ugd2l0aGluIGFcbiAqIHNlbGVjdG9yIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hhcmVSZXBsYXk8VD4oXG4gIGNvbmZpZ09yQnVmZmVyU2l6ZT86IFNoYXJlUmVwbGF5Q29uZmlnIHwgbnVtYmVyLFxuICB3aW5kb3dUaW1lPzogbnVtYmVyLFxuICBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlXG4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICBsZXQgYnVmZmVyU2l6ZTogbnVtYmVyO1xuICBsZXQgcmVmQ291bnQgPSBmYWxzZTtcbiAgaWYgKGNvbmZpZ09yQnVmZmVyU2l6ZSAmJiB0eXBlb2YgY29uZmlnT3JCdWZmZXJTaXplID09PSAnb2JqZWN0Jykge1xuICAgICh7IGJ1ZmZlclNpemUgPSBJbmZpbml0eSwgd2luZG93VGltZSA9IEluZmluaXR5LCByZWZDb3VudCA9IGZhbHNlLCBzY2hlZHVsZXIgfSA9IGNvbmZpZ09yQnVmZmVyU2l6ZSk7XG4gIH0gZWxzZSB7XG4gICAgYnVmZmVyU2l6ZSA9IChjb25maWdPckJ1ZmZlclNpemUgPz8gSW5maW5pdHkpIGFzIG51bWJlcjtcbiAgfVxuICByZXR1cm4gc2hhcmU8VD4oe1xuICAgIGNvbm5lY3RvcjogKCkgPT4gbmV3IFJlcGxheVN1YmplY3QoYnVmZmVyU2l6ZSwgd2luZG93VGltZSwgc2NoZWR1bGVyKSxcbiAgICByZXNldE9uRXJyb3I6IHRydWUsXG4gICAgcmVzZXRPbkNvbXBsZXRlOiBmYWxzZSxcbiAgICByZXNldE9uUmVmQ291bnRaZXJvOiByZWZDb3VudCxcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgRW1wdHlFcnJvciB9IGZyb20gJy4uL3V0aWwvRW1wdHlFcnJvcic7XG5cbmltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT3BlcmF0b3JGdW5jdGlvbiwgVHJ1dGh5VHlwZXNPZiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFNlcXVlbmNlRXJyb3IgfSBmcm9tICcuLi91dGlsL1NlcXVlbmNlRXJyb3InO1xuaW1wb3J0IHsgTm90Rm91bmRFcnJvciB9IGZyb20gJy4uL3V0aWwvTm90Rm91bmRFcnJvcic7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNpbmdsZTxUPihwcmVkaWNhdGU6IEJvb2xlYW5Db25zdHJ1Y3Rvcik6IE9wZXJhdG9yRnVuY3Rpb248VCwgVHJ1dGh5VHlwZXNPZjxUPj47XG5leHBvcnQgZnVuY3Rpb24gc2luZ2xlPFQ+KHByZWRpY2F0ZT86ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBib29sZWFuKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuXG4vKipcbiAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IGFzc2VydHMgdGhhdCBvbmx5IG9uZSB2YWx1ZSBpc1xuICogZW1pdHRlZCBmcm9tIHRoZSBvYnNlcnZhYmxlIHRoYXQgbWF0Y2hlcyB0aGUgcHJlZGljYXRlLiBJZiBub1xuICogcHJlZGljYXRlIGlzIHByb3ZpZGVkLCB0aGVuIGl0IHdpbGwgYXNzZXJ0IHRoYXQgdGhlIG9ic2VydmFibGVcbiAqIG9ubHkgZW1pdHMgb25lIHZhbHVlLlxuICpcbiAqIElmIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBkaWQgbm90IGVtaXQgYG5leHRgIGJlZm9yZSBjb21wbGV0aW9uLCBpdFxuICogd2lsbCBlbWl0IGFuIHtAbGluayBFbXB0eUVycm9yfSB0byB0aGUgT2JzZXJ2ZXIncyBgZXJyb3JgIGNhbGxiYWNrLlxuICpcbiAqIEluIHRoZSBldmVudCB0aGF0IHR3byB2YWx1ZXMgYXJlIGZvdW5kIHRoYXQgbWF0Y2ggdGhlIHByZWRpY2F0ZSxcbiAqIG9yIHdoZW4gdGhlcmUgYXJlIHR3byB2YWx1ZXMgZW1pdHRlZCBhbmQgbm8gcHJlZGljYXRlLCBpdCB3aWxsXG4gKiBlbWl0IGEge0BsaW5rIFNlcXVlbmNlRXJyb3J9IHRvIHRoZSBPYnNlcnZlcidzIGBlcnJvcmAgY2FsbGJhY2suXG4gKlxuICogSW4gdGhlIGV2ZW50IHRoYXQgbm8gdmFsdWVzIG1hdGNoIHRoZSBwcmVkaWNhdGUsIGlmIG9uZSBpcyBwcm92aWRlZCxcbiAqIGl0IHdpbGwgZW1pdCBhIHtAbGluayBOb3RGb3VuZEVycm9yfSB0byB0aGUgT2JzZXJ2ZXIncyBgZXJyb3JgIGNhbGxiYWNrLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBFeHBlY3Qgb25seSBgbmFtZWAgYmVnaW5uaW5nIHdpdGggYCdCJ2BcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIHNpbmdsZSB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHNvdXJjZTEgPSBvZihcbiAqICB7IG5hbWU6ICdCZW4nIH0sXG4gKiAgeyBuYW1lOiAnVHJhY3knIH0sXG4gKiAgeyBuYW1lOiAnTGFuZXknIH0sXG4gKiAgeyBuYW1lOiAnTGlseScgfVxuICogKTtcbiAqXG4gKiBzb3VyY2UxXG4gKiAgIC5waXBlKHNpbmdsZSh4ID0+IHgubmFtZS5zdGFydHNXaXRoKCdCJykpKVxuICogICAuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogLy8gRW1pdHMgJ0JlbidcbiAqXG4gKlxuICogY29uc3Qgc291cmNlMiA9IG9mKFxuICogIHsgbmFtZTogJ0JlbicgfSxcbiAqICB7IG5hbWU6ICdUcmFjeScgfSxcbiAqICB7IG5hbWU6ICdCcmFkbGV5JyB9LFxuICogIHsgbmFtZTogJ0xpbmNvbG4nIH1cbiAqICk7XG4gKlxuICogc291cmNlMlxuICogICAucGlwZShzaW5nbGUoeCA9PiB4Lm5hbWUuc3RhcnRzV2l0aCgnQicpKSlcbiAqICAgLnN1YnNjcmliZSh7IGVycm9yOiBlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpIH0pO1xuICogLy8gRXJyb3IgZW1pdHRlZDogU2VxdWVuY2VFcnJvcignVG9vIG1hbnkgdmFsdWVzIG1hdGNoJylcbiAqXG4gKlxuICogY29uc3Qgc291cmNlMyA9IG9mKFxuICogIHsgbmFtZTogJ0xhbmV5JyB9LFxuICogIHsgbmFtZTogJ1RyYWN5JyB9LFxuICogIHsgbmFtZTogJ0xpbHknIH0sXG4gKiAgeyBuYW1lOiAnTGluY29sbicgfVxuICogKTtcbiAqXG4gKiBzb3VyY2UzXG4gKiAgIC5waXBlKHNpbmdsZSh4ID0+IHgubmFtZS5zdGFydHNXaXRoKCdCJykpKVxuICogICAuc3Vic2NyaWJlKHsgZXJyb3I6IGVyciA9PiBjb25zb2xlLmVycm9yKGVycikgfSk7XG4gKiAvLyBFcnJvciBlbWl0dGVkOiBOb3RGb3VuZEVycm9yKCdObyB2YWx1ZXMgbWF0Y2gnKVxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgZmlyc3R9XG4gKiBAc2VlIHtAbGluayBmaW5kfVxuICogQHNlZSB7QGxpbmsgZmluZEluZGV4fVxuICogQHNlZSB7QGxpbmsgZWxlbWVudEF0fVxuICpcbiAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IERlbGl2ZXJzIGEgYE5vdEZvdW5kRXJyb3JgIHRvIHRoZSBPYnNlcnZlcidzIGBlcnJvcmBcbiAqIGNhbGxiYWNrIGlmIHRoZSBPYnNlcnZhYmxlIGNvbXBsZXRlcyBiZWZvcmUgYW55IGBuZXh0YCBub3RpZmljYXRpb24gd2FzIHNlbnQuXG4gKiBAdGhyb3dzIHtTZXF1ZW5jZUVycm9yfSBEZWxpdmVycyBhIGBTZXF1ZW5jZUVycm9yYCBpZiBtb3JlIHRoYW4gb25lIHZhbHVlIGlzXG4gKiBlbWl0dGVkIHRoYXQgbWF0Y2hlcyB0aGUgcHJvdmlkZWQgcHJlZGljYXRlLiBJZiBubyBwcmVkaWNhdGUgaXMgcHJvdmlkZWQsIGl0XG4gKiB3aWxsIGRlbGl2ZXIgYSBgU2VxdWVuY2VFcnJvcmAgaWYgbW9yZSB0aGFuIG9uZSB2YWx1ZSBjb21lcyBmcm9tIHRoZSBzb3VyY2UuXG4gKiBAdGhyb3dzIHtFbXB0eUVycm9yfSBEZWxpdmVycyBhbiBgRW1wdHlFcnJvcmAgaWYgbm8gdmFsdWVzIHdlcmUgYG5leHRgZWQgcHJpb3JcbiAqIHRvIGNvbXBsZXRpb24uXG4gKlxuICogQHBhcmFtIHByZWRpY2F0ZSBBIHByZWRpY2F0ZSBmdW5jdGlvbiB0byBldmFsdWF0ZSBpdGVtcyBlbWl0dGVkIGJ5IHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2luZ2xlIGl0ZW1cbiAqIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHRoYXQgbWF0Y2hlcyB0aGUgcHJlZGljYXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2luZ2xlPFQ+KHByZWRpY2F0ZT86ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBib29sZWFuKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIGxldCBoYXNWYWx1ZSA9IGZhbHNlO1xuICAgIGxldCBzaW5nbGVWYWx1ZTogVDtcbiAgICBsZXQgc2VlblZhbHVlID0gZmFsc2U7XG4gICAgbGV0IGluZGV4ID0gMDtcbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgICBzZWVuVmFsdWUgPSB0cnVlO1xuICAgICAgICAgIGlmICghcHJlZGljYXRlIHx8IHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgrKywgc291cmNlKSkge1xuICAgICAgICAgICAgaGFzVmFsdWUgJiYgc3Vic2NyaWJlci5lcnJvcihuZXcgU2VxdWVuY2VFcnJvcignVG9vIG1hbnkgbWF0Y2hpbmcgdmFsdWVzJykpO1xuICAgICAgICAgICAgaGFzVmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgc2luZ2xlVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAoaGFzVmFsdWUpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChzaW5nbGVWYWx1ZSk7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3Ioc2VlblZhbHVlID8gbmV3IE5vdEZvdW5kRXJyb3IoJ05vIG1hdGNoaW5nIHZhbHVlcycpIDogbmV3IEVtcHR5RXJyb3IoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAnLi9maWx0ZXInO1xuXG4vKipcbiAqIFJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IHNraXBzIHRoZSBmaXJzdCBgY291bnRgIGl0ZW1zIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLlxuICpcbiAqICFbXShza2lwLnBuZylcbiAqXG4gKiBTa2lwcyB0aGUgdmFsdWVzIHVudGlsIHRoZSBzZW50IG5vdGlmaWNhdGlvbnMgYXJlIGVxdWFsIG9yIGxlc3MgdGhhbiBwcm92aWRlZCBza2lwIGNvdW50LiBJdCByYWlzZXNcbiAqIGFuIGVycm9yIGlmIHNraXAgY291bnQgaXMgZXF1YWwgb3IgbW9yZSB0aGFuIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGVtaXRzIGFuZCBzb3VyY2UgcmFpc2VzIGFuIGVycm9yLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBTa2lwIHRoZSB2YWx1ZXMgYmVmb3JlIHRoZSBlbWlzc2lvblxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBpbnRlcnZhbCwgc2tpcCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIC8vIGVtaXQgZXZlcnkgaGFsZiBzZWNvbmRcbiAqIGNvbnN0IHNvdXJjZSA9IGludGVydmFsKDUwMCk7XG4gKiAvLyBza2lwIHRoZSBmaXJzdCAxMCBlbWl0dGVkIHZhbHVlc1xuICogY29uc3QgcmVzdWx0ID0gc291cmNlLnBpcGUoc2tpcCgxMCkpO1xuICpcbiAqIHJlc3VsdC5zdWJzY3JpYmUodmFsdWUgPT4gY29uc29sZS5sb2codmFsdWUpKTtcbiAqIC8vIG91dHB1dDogMTAuLi4xMS4uLjEyLi4uMTMuLi5cbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGxhc3R9XG4gKiBAc2VlIHtAbGluayBza2lwV2hpbGV9XG4gKiBAc2VlIHtAbGluayBza2lwVW50aWx9XG4gKiBAc2VlIHtAbGluayBza2lwTGFzdH1cbiAqXG4gKiBAcGFyYW0gY291bnQgVGhlIG51bWJlciBvZiB0aW1lcywgaXRlbXMgZW1pdHRlZCBieSBzb3VyY2UgT2JzZXJ2YWJsZSBzaG91bGQgYmUgc2tpcHBlZC5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IHNraXBzIHRoZSBmaXJzdCBgY291bnRgXG4gKiB2YWx1ZXMgZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBza2lwPFQ+KGNvdW50OiBudW1iZXIpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gZmlsdGVyKChfLCBpbmRleCkgPT4gY291bnQgPD0gaW5kZXgpO1xufVxuIiwgImltcG9ydCB7IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlkZW50aXR5IH0gZnJvbSAnLi4vdXRpbC9pZGVudGl0eSc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuLyoqXG4gKiBTa2lwIGEgc3BlY2lmaWVkIG51bWJlciBvZiB2YWx1ZXMgYmVmb3JlIHRoZSBjb21wbGV0aW9uIG9mIGFuIG9ic2VydmFibGUuXG4gKlxuICogIVtdKHNraXBMYXN0LnBuZylcbiAqXG4gKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCB3aWxsIGVtaXQgdmFsdWVzIGFzIHNvb24gYXMgaXQgY2FuLCBnaXZlbiBhIG51bWJlciBvZlxuICogc2tpcHBlZCB2YWx1ZXMuIEZvciBleGFtcGxlLCBpZiB5b3UgYHNraXBMYXN0KDMpYCBvbiBhIHNvdXJjZSwgd2hlbiB0aGUgc291cmNlXG4gKiBlbWl0cyBpdHMgZm91cnRoIHZhbHVlLCB0aGUgZmlyc3QgdmFsdWUgdGhlIHNvdXJjZSBlbWl0dGVkIHdpbGwgZmluYWxseSBiZSBlbWl0dGVkXG4gKiBmcm9tIHRoZSByZXR1cm5lZCBvYnNlcnZhYmxlLCBhcyBpdCBpcyBubyBsb25nZXIgcGFydCBvZiB3aGF0IG5lZWRzIHRvIGJlIHNraXBwZWQuXG4gKlxuICogQWxsIHZhbHVlcyBlbWl0dGVkIGJ5IHRoZSByZXN1bHQgb2YgYHNraXBMYXN0KE4pYCB3aWxsIGJlIGRlbGF5ZWQgYnkgYE5gIGVtaXNzaW9ucyxcbiAqIGFzIGVhY2ggdmFsdWUgaXMgaGVsZCBpbiBhIGJ1ZmZlciB1bnRpbCBlbm91Z2ggdmFsdWVzIGhhdmUgYmVlbiBlbWl0dGVkIHRoYXQgdGhhdFxuICogdGhlIGJ1ZmZlcmVkIHZhbHVlIG1heSBmaW5hbGx5IGJlIHNlbnQgdG8gdGhlIGNvbnN1bWVyLlxuICpcbiAqIEFmdGVyIHN1YnNjcmliaW5nLCB1bnN1YnNjcmliaW5nIHdpbGwgbm90IHJlc3VsdCBpbiB0aGUgZW1pc3Npb24gb2YgdGhlIGJ1ZmZlcmVkXG4gKiBza2lwcGVkIHZhbHVlcy5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogU2tpcCB0aGUgbGFzdCAyIHZhbHVlcyBvZiBhbiBvYnNlcnZhYmxlIHdpdGggbWFueSB2YWx1ZXNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIHNraXBMYXN0IH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgbnVtYmVycyA9IG9mKDEsIDIsIDMsIDQsIDUpO1xuICogY29uc3Qgc2tpcExhc3RUd28gPSBudW1iZXJzLnBpcGUoc2tpcExhc3QoMikpO1xuICogc2tpcExhc3RUd28uc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIFJlc3VsdHMgaW46XG4gKiAvLyAxIDIgM1xuICogLy8gKDQgYW5kIDUgYXJlIHNraXBwZWQpXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBza2lwfVxuICogQHNlZSB7QGxpbmsgc2tpcFVudGlsfVxuICogQHNlZSB7QGxpbmsgc2tpcFdoaWxlfVxuICogQHNlZSB7QGxpbmsgdGFrZX1cbiAqXG4gKiBAcGFyYW0gc2tpcENvdW50IE51bWJlciBvZiBlbGVtZW50cyB0byBza2lwIGZyb20gdGhlIGVuZCBvZiB0aGUgc291cmNlIE9ic2VydmFibGUuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBza2lwcyB0aGUgbGFzdCBgY291bnRgXG4gKiB2YWx1ZXMgZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBza2lwTGFzdDxUPihza2lwQ291bnQ6IG51bWJlcik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBza2lwQ291bnQgPD0gMFxuICAgID8gLy8gRm9yIHNraXBDb3VudHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHplcm8sIHdlIGFyZSBqdXN0IG1pcnJvcmluZyB0aGUgc291cmNlLlxuICAgICAgaWRlbnRpdHlcbiAgICA6IG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICAvLyBBIHJpbmcgYnVmZmVyIHRvIGhvbGQgdGhlIHZhbHVlcyB3aGlsZSB3ZSB3YWl0IHRvIHNlZVxuICAgICAgICAvLyBpZiB3ZSBjYW4gZW1pdCBpdCBvciBpdCdzIHBhcnQgb2YgdGhlIFwic2tpcHBlZFwiIGxhc3QgdmFsdWVzLlxuICAgICAgICAvLyBOb3RlIHRoYXQgaXQgaXMgdGhlIF9zYW1lIHNpemVfIGFzIHRoZSBza2lwIGNvdW50LlxuICAgICAgICBsZXQgcmluZzogVFtdID0gbmV3IEFycmF5KHNraXBDb3VudCk7XG4gICAgICAgIC8vIFRoZSBudW1iZXIgb2YgdmFsdWVzIHNlZW4gc28gZmFyLiBUaGlzIGlzIHVzZWQgdG8gZ2V0XG4gICAgICAgIC8vIHRoZSBpbmRleCBvZiB0aGUgY3VycmVudCB2YWx1ZSB3aGVuIGl0IGFycml2ZXMuXG4gICAgICAgIGxldCBzZWVuID0gMDtcbiAgICAgICAgc291cmNlLnN1YnNjcmliZShcbiAgICAgICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAvLyBHZXQgdGhlIGluZGV4IG9mIHRoZSB2YWx1ZSB3ZSBoYXZlIHJpZ2h0IG5vd1xuICAgICAgICAgICAgLy8gcmVsYXRpdmUgdG8gYWxsIG90aGVyIHZhbHVlcyB3ZSd2ZSBzZWVuLCB0aGVuXG4gICAgICAgICAgICAvLyBpbmNyZW1lbnQgYHNlZW5gLiBUaGlzIGVuc3VyZXMgd2UndmUgbW92ZWQgdG9cbiAgICAgICAgICAgIC8vIHRoZSBuZXh0IHNsb3QgaW4gb3VyIHJpbmcgYnVmZmVyLlxuICAgICAgICAgICAgY29uc3QgdmFsdWVJbmRleCA9IHNlZW4rKztcbiAgICAgICAgICAgIGlmICh2YWx1ZUluZGV4IDwgc2tpcENvdW50KSB7XG4gICAgICAgICAgICAgIC8vIElmIHdlIGhhdmVuJ3Qgc2VlbiBlbm91Z2ggdmFsdWVzIHRvIGZpbGwgb3VyIGJ1ZmZlciB5ZXQsXG4gICAgICAgICAgICAgIC8vIFRoZW4gd2UgYXJlbid0IHRvIGEgbnVtYmVyIG9mIHNlZW4gdmFsdWVzIHdoZXJlIHdlIGNhblxuICAgICAgICAgICAgICAvLyBlbWl0IGFueXRoaW5nLCBzbyBsZXQncyBqdXN0IHN0YXJ0IGJ5IGZpbGxpbmcgdGhlIHJpbmcgYnVmZmVyLlxuICAgICAgICAgICAgICByaW5nW3ZhbHVlSW5kZXhdID0gdmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBXZSBhcmUgdHJhdmVyc2luZyBvdmVyIHRoZSByaW5nIGFycmF5IGluIHN1Y2hcbiAgICAgICAgICAgICAgLy8gYSB3YXkgdGhhdCB3aGVuIHdlIGdldCB0byB0aGUgZW5kLCB3ZSBsb29wIGJhY2tcbiAgICAgICAgICAgICAgLy8gYW5kIGdvIHRvIHRoZSBzdGFydC5cbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB2YWx1ZUluZGV4ICUgc2tpcENvdW50O1xuICAgICAgICAgICAgICAvLyBQdWxsIHRoZSBvbGRlc3QgdmFsdWUgb3V0IHNvIHdlIGNhbiBlbWl0IGl0LFxuICAgICAgICAgICAgICAvLyBhbmQgc3R1ZmYgdGhlIG5ldyB2YWx1ZSBpbiBpdCdzIHBsYWNlLlxuICAgICAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHJpbmdbaW5kZXhdO1xuICAgICAgICAgICAgICByaW5nW2luZGV4XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAvLyBFbWl0IHRoZSBvbGQgdmFsdWUuIEl0IGlzIGltcG9ydGFudCB0aGF0IHRoaXMgaGFwcGVuc1xuICAgICAgICAgICAgICAvLyBhZnRlciB3ZSBzd2FwIHRoZSB2YWx1ZSBpbiB0aGUgYnVmZmVyLCBpZiBpdCBoYXBwZW5zXG4gICAgICAgICAgICAgIC8vIGJlZm9yZSB3ZSBzd2FwIHRoZSB2YWx1ZSBpbiB0aGUgYnVmZmVyLCB0aGVuIGEgc3luY2hyb25vdXNcbiAgICAgICAgICAgICAgLy8gc291cmNlIGNhbiBnZXQgdGhlIGJ1ZmZlciBvdXQgb2Ygd2hhY2suXG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChvbGRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgIC8vIFJlbGVhc2Ugb3VyIHZhbHVlcyBpbiBtZW1vcnlcbiAgICAgICAgICByaW5nID0gbnVsbCE7XG4gICAgICAgIH07XG4gICAgICB9KTtcbn1cbiIsICJpbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuaW1wb3J0IHsgaW5uZXJGcm9tIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9pbm5lckZyb20nO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL3V0aWwvbm9vcCc7XG5cbi8qKlxuICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgc2tpcHMgaXRlbXMgZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUgdW50aWwgYSBzZWNvbmQgT2JzZXJ2YWJsZSBlbWl0cyBhbiBpdGVtLlxuICpcbiAqIFRoZSBgc2tpcFVudGlsYCBvcGVyYXRvciBjYXVzZXMgdGhlIG9ic2VydmFibGUgc3RyZWFtIHRvIHNraXAgdGhlIGVtaXNzaW9uIG9mIHZhbHVlcyB1bnRpbCB0aGUgcGFzc2VkIGluIG9ic2VydmFibGVcbiAqIGVtaXRzIHRoZSBmaXJzdCB2YWx1ZS4gVGhpcyBjYW4gYmUgcGFydGljdWxhcmx5IHVzZWZ1bCBpbiBjb21iaW5hdGlvbiB3aXRoIHVzZXIgaW50ZXJhY3Rpb25zLCByZXNwb25zZXMgb2YgSFRUUFxuICogcmVxdWVzdHMgb3Igd2FpdGluZyBmb3Igc3BlY2lmaWMgdGltZXMgdG8gcGFzcyBieS5cbiAqXG4gKiAhW10oc2tpcFVudGlsLnBuZylcbiAqXG4gKiBJbnRlcm5hbGx5LCB0aGUgYHNraXBVbnRpbGAgb3BlcmF0b3Igc3Vic2NyaWJlcyB0byB0aGUgcGFzc2VkIGluIGBub3RpZmllcmAgYE9ic2VydmFibGVJbnB1dGAgKHdoaWNoIGdldHMgY29udmVydGVkXG4gKiB0byBhbiBPYnNlcnZhYmxlKSBpbiBvcmRlciB0byByZWNvZ25pemUgdGhlIGVtaXNzaW9uIG9mIGl0cyBmaXJzdCB2YWx1ZS4gV2hlbiBgbm90aWZpZXJgIGVtaXRzIG5leHQsIHRoZSBvcGVyYXRvclxuICogdW5zdWJzY3JpYmVzIGZyb20gaXQgYW5kIHN0YXJ0cyBlbWl0dGluZyB0aGUgdmFsdWVzIG9mIHRoZSAqc291cmNlKiBvYnNlcnZhYmxlIHVudGlsIGl0IGNvbXBsZXRlcyBvciBlcnJvcnMuIEl0XG4gKiB3aWxsIG5ldmVyIGxldCB0aGUgKnNvdXJjZSogb2JzZXJ2YWJsZSBlbWl0IGFueSB2YWx1ZXMgaWYgdGhlIGBub3RpZmllcmAgY29tcGxldGVzIG9yIHRocm93cyBhbiBlcnJvciB3aXRob3V0XG4gKiBlbWl0dGluZyBhIHZhbHVlIGJlZm9yZS5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCBhbGwgZW1pdHRlZCB2YWx1ZXMgb2YgdGhlIGludGVydmFsIG9ic2VydmFibGUgYXJlIHNraXBwZWQgdW50aWwgdGhlIHVzZXIgY2xpY2tzIGFueXdoZXJlXG4gKiB3aXRoaW4gdGhlIHBhZ2VcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIGZyb21FdmVudCwgc2tpcFVudGlsIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgaW50ZXJ2YWxPYnNlcnZhYmxlID0gaW50ZXJ2YWwoMTAwMCk7XG4gKiBjb25zdCBjbGljayA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKlxuICogY29uc3QgZW1pdEFmdGVyQ2xpY2sgPSBpbnRlcnZhbE9ic2VydmFibGUucGlwZShcbiAqICAgc2tpcFVudGlsKGNsaWNrKVxuICogKTtcbiAqIC8vIGNsaWNrZWQgYXQgNC42cy4gb3V0cHV0OiA1Li4uNi4uLjcuLi44Li4uLi4uLi4gb3JcbiAqIC8vIGNsaWNrZWQgYXQgNy4zcy4gb3V0cHV0OiA4Li4uOS4uLjEwLi4xMS4uLi4uLi5cbiAqIGVtaXRBZnRlckNsaWNrLnN1YnNjcmliZSh2YWx1ZSA9PiBjb25zb2xlLmxvZyh2YWx1ZSkpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgbGFzdH1cbiAqIEBzZWUge0BsaW5rIHNraXB9XG4gKiBAc2VlIHtAbGluayBza2lwV2hpbGV9XG4gKiBAc2VlIHtAbGluayBza2lwTGFzdH1cbiAqXG4gKiBAcGFyYW0gbm90aWZpZXIgQW4gYE9ic2VydmFibGVJbnB1dGAgdGhhdCBoYXMgdG8gZW1pdCBhbiBpdGVtIGJlZm9yZSB0aGUgc291cmNlIE9ic2VydmFibGUgZWxlbWVudHMgYmVnaW4gdG9cbiAqIGJlIG1pcnJvcmVkIGJ5IHRoZSByZXN1bHRpbmcgT2JzZXJ2YWJsZS5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IHNraXBzIGl0ZW1zIGZyb20gdGhlXG4gKiBzb3VyY2UgT2JzZXJ2YWJsZSB1bnRpbCB0aGUgYG5vdGlmaWVyYCBPYnNlcnZhYmxlIGVtaXRzIGFuIGl0ZW0sIHRoZW4gZW1pdHMgdGhlXG4gKiByZW1haW5pbmcgaXRlbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBza2lwVW50aWw8VD4obm90aWZpZXI6IE9ic2VydmFibGVJbnB1dDxhbnk+KTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIGxldCB0YWtpbmcgPSBmYWxzZTtcblxuICAgIGNvbnN0IHNraXBTdWJzY3JpYmVyID0gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgc3Vic2NyaWJlcixcbiAgICAgICgpID0+IHtcbiAgICAgICAgc2tpcFN1YnNjcmliZXI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRha2luZyA9IHRydWU7XG4gICAgICB9LFxuICAgICAgbm9vcFxuICAgICk7XG5cbiAgICBpbm5lckZyb20obm90aWZpZXIpLnN1YnNjcmliZShza2lwU3Vic2NyaWJlcik7XG5cbiAgICBzb3VyY2Uuc3Vic2NyaWJlKGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCAodmFsdWUpID0+IHRha2luZyAmJiBzdWJzY3JpYmVyLm5leHQodmFsdWUpKSk7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IEZhbHN5LCBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNraXBXaGlsZTxUPihwcmVkaWNhdGU6IEJvb2xlYW5Db25zdHJ1Y3Rvcik6IE9wZXJhdG9yRnVuY3Rpb248VCwgRXh0cmFjdDxULCBGYWxzeT4gZXh0ZW5kcyBuZXZlciA/IG5ldmVyIDogVD47XG5leHBvcnQgZnVuY3Rpb24gc2tpcFdoaWxlPFQ+KHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiB0cnVlKTogT3BlcmF0b3JGdW5jdGlvbjxULCBuZXZlcj47XG5leHBvcnQgZnVuY3Rpb24gc2tpcFdoaWxlPFQ+KHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiBib29sZWFuKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuXG4vKipcbiAqIFJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IHNraXBzIGFsbCBpdGVtcyBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBhcyBsb25nIGFzIGEgc3BlY2lmaWVkIGNvbmRpdGlvbiBob2xkc1xuICogdHJ1ZSwgYnV0IGVtaXRzIGFsbCBmdXJ0aGVyIHNvdXJjZSBpdGVtcyBhcyBzb29uIGFzIHRoZSBjb25kaXRpb24gYmVjb21lcyBmYWxzZS5cbiAqXG4gKiAhW10oc2tpcFdoaWxlLnBuZylcbiAqXG4gKiBTa2lwcyBhbGwgdGhlIG5vdGlmaWNhdGlvbnMgd2l0aCBhIHRydXRoeSBwcmVkaWNhdGUuIEl0IHdpbGwgbm90IHNraXAgdGhlIG5vdGlmaWNhdGlvbnMgd2hlbiB0aGUgcHJlZGljYXRlIGlzIGZhbHN5LlxuICogSXQgY2FuIGFsc28gYmUgc2tpcHBlZCB1c2luZyBpbmRleC4gT25jZSB0aGUgcHJlZGljYXRlIGlzIHRydWUsIGl0IHdpbGwgbm90IGJlIGNhbGxlZCBhZ2Fpbi5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogU2tpcCBzb21lIHN1cGVyIGhlcm9lc1xuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tLCBza2lwV2hpbGUgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBzb3VyY2UgPSBmcm9tKFsnR3JlZW4gQXJyb3cnLCAnU3VwZXJNYW4nLCAnRmxhc2gnLCAnU3VwZXJHaXJsJywgJ0JsYWNrIENhbmFyeSddKVxuICogLy8gU2tpcCB0aGUgaGVyb2VzIHVudGlsIFN1cGVyR2lybFxuICogY29uc3QgZXhhbXBsZSA9IHNvdXJjZS5waXBlKHNraXBXaGlsZShoZXJvID0+IGhlcm8gIT09ICdTdXBlckdpcmwnKSk7XG4gKiAvLyBvdXRwdXQ6IFN1cGVyR2lybCwgQmxhY2sgQ2FuYXJ5XG4gKiBleGFtcGxlLnN1YnNjcmliZShmZW1hbGVIZXJvID0+IGNvbnNvbGUubG9nKGZlbWFsZUhlcm8pKTtcbiAqIGBgYFxuICpcbiAqIFNraXAgdmFsdWVzIGZyb20gdGhlIGFycmF5IHVudGlsIGluZGV4IDVcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbSwgc2tpcFdoaWxlIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgc291cmNlID0gZnJvbShbMSwgMiwgMywgNCwgNSwgNiwgNywgOSwgMTBdKTtcbiAqIGNvbnN0IGV4YW1wbGUgPSBzb3VyY2UucGlwZShza2lwV2hpbGUoKF8sIGkpID0+IGkgIT09IDUpKTtcbiAqIC8vIG91dHB1dDogNiwgNywgOSwgMTBcbiAqIGV4YW1wbGUuc3Vic2NyaWJlKHZhbHVlID0+IGNvbnNvbGUubG9nKHZhbHVlKSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBsYXN0fVxuICogQHNlZSB7QGxpbmsgc2tpcH1cbiAqIEBzZWUge0BsaW5rIHNraXBVbnRpbH1cbiAqIEBzZWUge0BsaW5rIHNraXBMYXN0fVxuICpcbiAqIEBwYXJhbSBwcmVkaWNhdGUgQSBmdW5jdGlvbiB0byB0ZXN0IGVhY2ggaXRlbSBlbWl0dGVkIGZyb20gdGhlIHNvdXJjZSBPYnNlcnZhYmxlLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgYmVnaW5zIGVtaXR0aW5nIGl0ZW1zXG4gKiBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB3aGVuIHRoZSBzcGVjaWZpZWQgcHJlZGljYXRlIGJlY29tZXMgZmFsc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBza2lwV2hpbGU8VD4ocHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgbGV0IHRha2luZyA9IGZhbHNlO1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgc291cmNlLnN1YnNjcmliZShcbiAgICAgIGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCAodmFsdWUpID0+ICh0YWtpbmcgfHwgKHRha2luZyA9ICFwcmVkaWNhdGUodmFsdWUsIGluZGV4KyspKSkgJiYgc3Vic2NyaWJlci5uZXh0KHZhbHVlKSlcbiAgICApO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBjb25jYXQgfSBmcm9tICcuLi9vYnNlcnZhYmxlL2NvbmNhdCc7XG5pbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uLCBTY2hlZHVsZXJMaWtlLCBWYWx1ZUZyb21BcnJheSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHBvcFNjaGVkdWxlciB9IGZyb20gJy4uL3V0aWwvYXJncyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcblxuLy8gRGV2cyBhcmUgbW9yZSBsaWtlbHkgdG8gcGFzcyBudWxsIG9yIHVuZGVmaW5lZCB0aGFuIHRoZXkgYXJlIGEgc2NoZWR1bGVyXG4vLyB3aXRob3V0IGFjY29tcGFueWluZyB2YWx1ZXMuIFRvIG1ha2UgdGhpbmdzIGVhc2llciBmb3IgKG5hdWdodHkpIGRldnMgd2hvXG4vLyB1c2UgdGhlIGBzdHJpY3ROdWxsQ2hlY2tzOiBmYWxzZWAgVHlwZVNjcmlwdCBjb21waWxlciBvcHRpb24sIHRoZXNlXG4vLyBvdmVybG9hZHMgd2l0aCBleHBsaWNpdCBudWxsIGFuZCB1bmRlZmluZWQgdmFsdWVzIGFyZSBpbmNsdWRlZC5cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0V2l0aDxUPih2YWx1ZTogbnVsbCk6IE9wZXJhdG9yRnVuY3Rpb248VCwgVCB8IG51bGw+O1xuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0V2l0aDxUPih2YWx1ZTogdW5kZWZpbmVkKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUIHwgdW5kZWZpbmVkPjtcblxuLyoqIEBkZXByZWNhdGVkIFRoZSBgc2NoZWR1bGVyYCBwYXJhbWV0ZXIgd2lsbCBiZSByZW1vdmVkIGluIHY4LiBVc2UgYHNjaGVkdWxlZGAgYW5kIGBjb25jYXRBbGxgLiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9zY2hlZHVsZXItYXJndW1lbnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydFdpdGg8VCwgQSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSA9IFRbXT4oXG4gIC4uLnZhbHVlc0FuZFNjaGVkdWxlcjogWy4uLkEsIFNjaGVkdWxlckxpa2VdXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFQgfCBWYWx1ZUZyb21BcnJheTxBPj47XG5leHBvcnQgZnVuY3Rpb24gc3RhcnRXaXRoPFQsIEEgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10gPSBUW10+KC4uLnZhbHVlczogQSk6IE9wZXJhdG9yRnVuY3Rpb248VCwgVCB8IFZhbHVlRnJvbUFycmF5PEE+PjtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCwgYXQgdGhlIG1vbWVudCBvZiBzdWJzY3JpcHRpb24sIHdpbGwgc3luY2hyb25vdXNseSBlbWl0IGFsbFxuICogdmFsdWVzIHByb3ZpZGVkIHRvIHRoaXMgb3BlcmF0b3IsIHRoZW4gc3Vic2NyaWJlIHRvIHRoZSBzb3VyY2UgYW5kIG1pcnJvciBhbGwgb2YgaXRzIGVtaXNzaW9uc1xuICogdG8gc3Vic2NyaWJlcnMuXG4gKlxuICogVGhpcyBpcyBhIHVzZWZ1bCB3YXkgdG8ga25vdyB3aGVuIHN1YnNjcmlwdGlvbiBoYXMgb2NjdXJyZWQgb24gYW4gZXhpc3Rpbmcgb2JzZXJ2YWJsZS5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+Rmlyc3QgZW1pdHMgaXRzIGFyZ3VtZW50cyBpbiBvcmRlciwgYW5kIHRoZW4gYW55XG4gKiBlbWlzc2lvbnMgZnJvbSB0aGUgc291cmNlLjwvc3Bhbj5cbiAqXG4gKiAhW10oc3RhcnRXaXRoLnBuZylcbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIEVtaXQgYSB2YWx1ZSB3aGVuIGEgdGltZXIgc3RhcnRzLlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyB0aW1lciwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbiAqXG4gKiB0aW1lcigxMDAwKVxuICogICAucGlwZShcbiAqICAgICBtYXAoKCkgPT4gJ3RpbWVyIGVtaXQnKSxcbiAqICAgICBzdGFydFdpdGgoJ3RpbWVyIHN0YXJ0JylcbiAqICAgKVxuICogICAuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICpcbiAqIC8vIHJlc3VsdHM6XG4gKiAvLyAndGltZXIgc3RhcnQnXG4gKiAvLyAndGltZXIgZW1pdCdcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB2YWx1ZXMgSXRlbXMgeW91IHdhbnQgdGhlIG1vZGlmaWVkIE9ic2VydmFibGUgdG8gZW1pdCBmaXJzdC5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IHN5bmNocm9ub3VzbHkgZW1pdHNcbiAqIHByb3ZpZGVkIHZhbHVlcyBiZWZvcmUgc3Vic2NyaWJpbmcgdG8gdGhlIHNvdXJjZSBPYnNlcnZhYmxlLlxuICpcbiAqIEBzZWUge0BsaW5rIGVuZFdpdGh9XG4gKiBAc2VlIHtAbGluayBmaW5hbGl6ZX1cbiAqIEBzZWUge0BsaW5rIGNvbmNhdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0V2l0aDxULCBEPiguLi52YWx1ZXM6IERbXSk6IE9wZXJhdG9yRnVuY3Rpb248VCwgVCB8IEQ+IHtcbiAgY29uc3Qgc2NoZWR1bGVyID0gcG9wU2NoZWR1bGVyKHZhbHVlcyk7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICAvLyBIZXJlIHdlIGNhbid0IHBhc3MgYHVuZGVmaW5lZGAgYXMgYSBzY2hlZHVsZXIsIGJlY2F1c2UgaWYgd2UgZGlkLCB0aGVcbiAgICAvLyBjb2RlIGluc2lkZSBvZiBgY29uY2F0YCB3b3VsZCBiZSBjb25mdXNlZCBieSB0aGUgYHVuZGVmaW5lZGAsIGFuZCB0cmVhdCBpdFxuICAgIC8vIGxpa2UgYW4gaW52YWxpZCBvYnNlcnZhYmxlLiBTbyB3ZSBoYXZlIHRvIHNwbGl0IGl0IHR3byBkaWZmZXJlbnQgd2F5cy5cbiAgICAoc2NoZWR1bGVyID8gY29uY2F0KHZhbHVlcywgc291cmNlLCBzY2hlZHVsZXIpIDogY29uY2F0KHZhbHVlcywgc291cmNlKSkuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAnLi4vU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQsIE9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmVkVmFsdWVPZiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4uL29ic2VydmFibGUvaW5uZXJGcm9tJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hNYXA8VCwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihcbiAgcHJvamVjdDogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiBPXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIE9ic2VydmVkVmFsdWVPZjxPPj47XG4vKiogQGRlcHJlY2F0ZWQgVGhlIGByZXN1bHRTZWxlY3RvcmAgcGFyYW1ldGVyIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVXNlIGFuIGlubmVyIGBtYXBgIGluc3RlYWQuIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL3Jlc3VsdFNlbGVjdG9yICovXG5leHBvcnQgZnVuY3Rpb24gc3dpdGNoTWFwPFQsIE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8YW55Pj4oXG4gIHByb2plY3Q6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gTyxcbiAgcmVzdWx0U2VsZWN0b3I6IHVuZGVmaW5lZFxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuLyoqIEBkZXByZWNhdGVkIFRoZSBgcmVzdWx0U2VsZWN0b3JgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSBhbiBpbm5lciBgbWFwYCBpbnN0ZWFkLiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9yZXN1bHRTZWxlY3RvciAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN3aXRjaE1hcDxULCBSLCBPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PGFueT4+KFxuICBwcm9qZWN0OiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IE8sXG4gIHJlc3VsdFNlbGVjdG9yOiAob3V0ZXJWYWx1ZTogVCwgaW5uZXJWYWx1ZTogT2JzZXJ2ZWRWYWx1ZU9mPE8+LCBvdXRlckluZGV4OiBudW1iZXIsIGlubmVySW5kZXg6IG51bWJlcikgPT4gUlxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBSPjtcbi8qIHRzbGludDplbmFibGU6bWF4LWxpbmUtbGVuZ3RoICovXG5cbi8qKlxuICogUHJvamVjdHMgZWFjaCBzb3VyY2UgdmFsdWUgdG8gYW4gT2JzZXJ2YWJsZSB3aGljaCBpcyBtZXJnZWQgaW4gdGhlIG91dHB1dFxuICogT2JzZXJ2YWJsZSwgZW1pdHRpbmcgdmFsdWVzIG9ubHkgZnJvbSB0aGUgbW9zdCByZWNlbnRseSBwcm9qZWN0ZWQgT2JzZXJ2YWJsZS5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+TWFwcyBlYWNoIHZhbHVlIHRvIGFuIE9ic2VydmFibGUsIHRoZW4gZmxhdHRlbnMgYWxsIG9mXG4gKiB0aGVzZSBpbm5lciBPYnNlcnZhYmxlcyB1c2luZyB7QGxpbmsgc3dpdGNoQWxsfS48L3NwYW4+XG4gKlxuICogIVtdKHN3aXRjaE1hcC5wbmcpXG4gKlxuICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgaXRlbXMgYmFzZWQgb24gYXBwbHlpbmcgYSBmdW5jdGlvbiB0aGF0IHlvdVxuICogc3VwcGx5IHRvIGVhY2ggaXRlbSBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSwgd2hlcmUgdGhhdCBmdW5jdGlvblxuICogcmV0dXJucyBhbiAoc28tY2FsbGVkIFwiaW5uZXJcIikgT2JzZXJ2YWJsZS4gRWFjaCB0aW1lIGl0IG9ic2VydmVzIG9uZSBvZiB0aGVzZVxuICogaW5uZXIgT2JzZXJ2YWJsZXMsIHRoZSBvdXRwdXQgT2JzZXJ2YWJsZSBiZWdpbnMgZW1pdHRpbmcgdGhlIGl0ZW1zIGVtaXR0ZWQgYnlcbiAqIHRoYXQgaW5uZXIgT2JzZXJ2YWJsZS4gV2hlbiBhIG5ldyBpbm5lciBPYnNlcnZhYmxlIGlzIGVtaXR0ZWQsIGBzd2l0Y2hNYXBgXG4gKiBzdG9wcyBlbWl0dGluZyBpdGVtcyBmcm9tIHRoZSBlYXJsaWVyLWVtaXR0ZWQgaW5uZXIgT2JzZXJ2YWJsZSBhbmQgYmVnaW5zXG4gKiBlbWl0dGluZyBpdGVtcyBmcm9tIHRoZSBuZXcgb25lLiBJdCBjb250aW51ZXMgdG8gYmVoYXZlIGxpa2UgdGhpcyBmb3JcbiAqIHN1YnNlcXVlbnQgaW5uZXIgT2JzZXJ2YWJsZXMuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIEdlbmVyYXRlIG5ldyBPYnNlcnZhYmxlIGFjY29yZGluZyB0byBzb3VyY2UgT2JzZXJ2YWJsZSB2YWx1ZXNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IHN3aXRjaGVkID0gb2YoMSwgMiwgMykucGlwZShzd2l0Y2hNYXAoeCA9PiBvZih4LCB4ICoqIDIsIHggKiogMykpKTtcbiAqIHN3aXRjaGVkLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIC8vIG91dHB1dHNcbiAqIC8vIDFcbiAqIC8vIDFcbiAqIC8vIDFcbiAqIC8vIDJcbiAqIC8vIDRcbiAqIC8vIDhcbiAqIC8vIDNcbiAqIC8vIDlcbiAqIC8vIDI3XG4gKiBgYGBcbiAqXG4gKiBSZXN0YXJ0IGFuIGludGVydmFsIE9ic2VydmFibGUgb24gZXZlcnkgY2xpY2sgZXZlbnRcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBzd2l0Y2hNYXAsIGludGVydmFsIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGNsaWNrcy5waXBlKHN3aXRjaE1hcCgoKSA9PiBpbnRlcnZhbCgxMDAwKSkpO1xuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGNvbmNhdE1hcH1cbiAqIEBzZWUge0BsaW5rIGV4aGF1c3RNYXB9XG4gKiBAc2VlIHtAbGluayBtZXJnZU1hcH1cbiAqIEBzZWUge0BsaW5rIHN3aXRjaEFsbH1cbiAqIEBzZWUge0BsaW5rIHN3aXRjaE1hcFRvfVxuICpcbiAqIEBwYXJhbSBwcm9qZWN0IEEgZnVuY3Rpb24gdGhhdCwgd2hlbiBhcHBsaWVkIHRvIGFuIGl0ZW0gZW1pdHRlZCBieSB0aGUgc291cmNlXG4gKiBPYnNlcnZhYmxlLCByZXR1cm5zIGFuIE9ic2VydmFibGUuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mXG4gKiBhcHBseWluZyB0aGUgcHJvamVjdGlvbiBmdW5jdGlvbiAoYW5kIHRoZSBvcHRpb25hbCBkZXByZWNhdGVkXG4gKiBgcmVzdWx0U2VsZWN0b3JgKSB0byBlYWNoIGl0ZW0gZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUgYW5kIHRha2luZ1xuICogb25seSB0aGUgdmFsdWVzIGZyb20gdGhlIG1vc3QgcmVjZW50bHkgcHJvamVjdGVkIGlubmVyIE9ic2VydmFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hNYXA8VCwgUiwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihcbiAgcHJvamVjdDogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiBPLFxuICByZXN1bHRTZWxlY3Rvcj86IChvdXRlclZhbHVlOiBULCBpbm5lclZhbHVlOiBPYnNlcnZlZFZhbHVlT2Y8Tz4sIG91dGVySW5kZXg6IG51bWJlciwgaW5uZXJJbmRleDogbnVtYmVyKSA9PiBSXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIE9ic2VydmVkVmFsdWVPZjxPPiB8IFI+IHtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIGxldCBpbm5lclN1YnNjcmliZXI6IFN1YnNjcmliZXI8T2JzZXJ2ZWRWYWx1ZU9mPE8+PiB8IG51bGwgPSBudWxsO1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgLy8gV2hldGhlciBvciBub3QgdGhlIHNvdXJjZSBzdWJzY3JpcHRpb24gaGFzIGNvbXBsZXRlZFxuICAgIGxldCBpc0NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAvLyBXZSBvbmx5IGNvbXBsZXRlIHRoZSByZXN1bHQgaWYgdGhlIHNvdXJjZSBpcyBjb21wbGV0ZSBBTkQgd2UgZG9uJ3QgaGF2ZSBhbiBhY3RpdmUgaW5uZXIgc3Vic2NyaXB0aW9uLlxuICAgIC8vIFRoaXMgaXMgY2FsbGVkIGJvdGggd2hlbiB0aGUgc291cmNlIGNvbXBsZXRlcyBhbmQgd2hlbiB0aGUgaW5uZXJzIGNvbXBsZXRlLlxuICAgIGNvbnN0IGNoZWNrQ29tcGxldGUgPSAoKSA9PiBpc0NvbXBsZXRlICYmICFpbm5lclN1YnNjcmliZXIgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuXG4gICAgc291cmNlLnN1YnNjcmliZShcbiAgICAgIGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihcbiAgICAgICAgc3Vic2NyaWJlcixcbiAgICAgICAgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgLy8gQ2FuY2VsIHRoZSBwcmV2aW91cyBpbm5lciBzdWJzY3JpcHRpb24gaWYgdGhlcmUgd2FzIG9uZVxuICAgICAgICAgIGlubmVyU3Vic2NyaWJlcj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBsZXQgaW5uZXJJbmRleCA9IDA7XG4gICAgICAgICAgY29uc3Qgb3V0ZXJJbmRleCA9IGluZGV4Kys7XG4gICAgICAgICAgLy8gU3RhcnQgdGhlIG5leHQgaW5uZXIgc3Vic2NyaXB0aW9uXG4gICAgICAgICAgaW5uZXJGcm9tKHByb2plY3QodmFsdWUsIG91dGVySW5kZXgpKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoaW5uZXJTdWJzY3JpYmVyID0gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAgICAgICAvLyBXaGVuIHdlIGdldCBhIG5ldyBpbm5lciB2YWx1ZSwgbmV4dCBpdCB0aHJvdWdoLiBOb3RlIHRoYXQgdGhpcyBpc1xuICAgICAgICAgICAgICAvLyBoYW5kbGluZyB0aGUgZGVwcmVjYXRlIHJlc3VsdCBzZWxlY3RvciBoZXJlLiBUaGlzIGlzIGJlY2F1c2Ugd2l0aCB0aGlzIGFyY2hpdGVjdHVyZVxuICAgICAgICAgICAgICAvLyBpdCBlbmRzIHVwIGJlaW5nIHNtYWxsZXIgdGhhbiB1c2luZyB0aGUgbWFwIG9wZXJhdG9yLlxuICAgICAgICAgICAgICAoaW5uZXJWYWx1ZSkgPT4gc3Vic2NyaWJlci5uZXh0KHJlc3VsdFNlbGVjdG9yID8gcmVzdWx0U2VsZWN0b3IodmFsdWUsIGlubmVyVmFsdWUsIG91dGVySW5kZXgsIGlubmVySW5kZXgrKykgOiBpbm5lclZhbHVlKSxcbiAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBpbm5lciBoYXMgY29tcGxldGVkLiBOdWxsIG91dCB0aGUgaW5uZXIgc3Vic2NyaWJlciB0b1xuICAgICAgICAgICAgICAgIC8vIGZyZWUgdXAgbWVtb3J5IGFuZCB0byBzaWduYWwgdGhhdCB3ZSBoYXZlIG5vIGlubmVyIHN1YnNjcmlwdGlvblxuICAgICAgICAgICAgICAgIC8vIGN1cnJlbnRseS5cbiAgICAgICAgICAgICAgICBpbm5lclN1YnNjcmliZXIgPSBudWxsITtcbiAgICAgICAgICAgICAgICBjaGVja0NvbXBsZXRlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGlzQ29tcGxldGUgPSB0cnVlO1xuICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGVJbnB1dCwgT2JzZXJ2ZWRWYWx1ZU9mIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAnLi9zd2l0Y2hNYXAnO1xuaW1wb3J0IHsgaWRlbnRpdHkgfSBmcm9tICcuLi91dGlsL2lkZW50aXR5JztcblxuLyoqXG4gKiBDb252ZXJ0cyBhIGhpZ2hlci1vcmRlciBPYnNlcnZhYmxlIGludG8gYSBmaXJzdC1vcmRlciBPYnNlcnZhYmxlXG4gKiBwcm9kdWNpbmcgdmFsdWVzIG9ubHkgZnJvbSB0aGUgbW9zdCByZWNlbnQgb2JzZXJ2YWJsZSBzZXF1ZW5jZVxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5GbGF0dGVucyBhbiBPYnNlcnZhYmxlLW9mLU9ic2VydmFibGVzLjwvc3Bhbj5cbiAqXG4gKiAhW10oc3dpdGNoQWxsLnBuZylcbiAqXG4gKiBgc3dpdGNoQWxsYCBzdWJzY3JpYmVzIHRvIGEgc291cmNlIHRoYXQgaXMgYW4gb2JzZXJ2YWJsZSBvZiBvYnNlcnZhYmxlcywgYWxzbyBrbm93biBhcyBhXG4gKiBcImhpZ2hlci1vcmRlciBvYnNlcnZhYmxlXCIgKG9yIGBPYnNlcnZhYmxlPE9ic2VydmFibGU8VD4+YCkuIEl0IHN1YnNjcmliZXMgdG8gdGhlIG1vc3QgcmVjZW50bHlcbiAqIHByb3ZpZGVkIFwiaW5uZXIgb2JzZXJ2YWJsZVwiIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSwgdW5zdWJzY3JpYmluZyBmcm9tIGFueSBwcmV2aW91c2x5IHN1YnNjcmliZWRcbiAqIHRvIGlubmVyIG9ic2VydmFibGUsIHN1Y2ggdGhhdCBvbmx5IHRoZSBtb3N0IHJlY2VudCBpbm5lciBvYnNlcnZhYmxlIG1heSBiZSBzdWJzY3JpYmVkIHRvIGF0XG4gKiBhbnkgcG9pbnQgaW4gdGltZS4gVGhlIHJlc3VsdGluZyBvYnNlcnZhYmxlIHJldHVybmVkIGJ5IGBzd2l0Y2hBbGxgIHdpbGwgb25seSBjb21wbGV0ZSBpZiB0aGVcbiAqIHNvdXJjZSBvYnNlcnZhYmxlIGNvbXBsZXRlcywgKmFuZCogYW55IGN1cnJlbnRseSBzdWJzY3JpYmVkIHRvIGlubmVyIG9ic2VydmFibGUgYWxzbyBoYXMgY29tcGxldGVkLFxuICogaWYgdGhlcmUgYXJlIGFueS5cbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIFNwYXduIGEgbmV3IGludGVydmFsIG9ic2VydmFibGUgZm9yIGVhY2ggY2xpY2sgZXZlbnQsIGJ1dCBmb3IgZXZlcnkgbmV3XG4gKiBjbGljaywgY2FuY2VsIHRoZSBwcmV2aW91cyBpbnRlcnZhbCBhbmQgc3Vic2NyaWJlIHRvIHRoZSBuZXcgb25lXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgdGFwLCBtYXAsIGludGVydmFsLCBzd2l0Y2hBbGwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpLnBpcGUodGFwKCgpID0+IGNvbnNvbGUubG9nKCdjbGljaycpKSk7XG4gKiBjb25zdCBzb3VyY2UgPSBjbGlja3MucGlwZShtYXAoKCkgPT4gaW50ZXJ2YWwoMTAwMCkpKTtcbiAqXG4gKiBzb3VyY2VcbiAqICAgLnBpcGUoc3dpdGNoQWxsKCkpXG4gKiAgIC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKlxuICogLy8gT3V0cHV0XG4gKiAvLyBjbGlja1xuICogLy8gMFxuICogLy8gMVxuICogLy8gMlxuICogLy8gM1xuICogLy8gLi4uXG4gKiAvLyBjbGlja1xuICogLy8gMFxuICogLy8gMVxuICogLy8gMlxuICogLy8gLi4uXG4gKiAvLyBjbGlja1xuICogLy8gLi4uXG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBjb21iaW5lTGF0ZXN0QWxsfVxuICogQHNlZSB7QGxpbmsgY29uY2F0QWxsfVxuICogQHNlZSB7QGxpbmsgZXhoYXVzdEFsbH1cbiAqIEBzZWUge0BsaW5rIHN3aXRjaE1hcH1cbiAqIEBzZWUge0BsaW5rIHN3aXRjaE1hcFRvfVxuICogQHNlZSB7QGxpbmsgbWVyZ2VBbGx9XG4gKlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgY29udmVydHMgYSBoaWdoZXItb3JkZXJcbiAqIE9ic2VydmFibGUgaW50byBhIGZpcnN0LW9yZGVyIE9ic2VydmFibGUgcHJvZHVjaW5nIHZhbHVlcyBvbmx5IGZyb20gdGhlIG1vc3RcbiAqIHJlY2VudCBPYnNlcnZhYmxlIHNlcXVlbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3dpdGNoQWxsPE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8YW55Pj4oKTogT3BlcmF0b3JGdW5jdGlvbjxPLCBPYnNlcnZlZFZhbHVlT2Y8Tz4+IHtcbiAgcmV0dXJuIHN3aXRjaE1hcChpZGVudGl0eSk7XG59XG4iLCAiaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAnLi9zd2l0Y2hNYXAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0LCBPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZlZFZhbHVlT2YgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vdXRpbC9pc0Z1bmN0aW9uJztcblxuLyoqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiB2OS4gVXNlIHtAbGluayBzd2l0Y2hNYXB9IGluc3RlYWQ6IGBzd2l0Y2hNYXAoKCkgPT4gcmVzdWx0KWAgKi9cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hNYXBUbzxPIGV4dGVuZHMgT2JzZXJ2YWJsZUlucHV0PHVua25vd24+PihvYnNlcnZhYmxlOiBPKTogT3BlcmF0b3JGdW5jdGlvbjx1bmtub3duLCBPYnNlcnZlZFZhbHVlT2Y8Tz4+O1xuLyoqIEBkZXByZWNhdGVkIFRoZSBgcmVzdWx0U2VsZWN0b3JgIHBhcmFtZXRlciB3aWxsIGJlIHJlbW92ZWQgaW4gdjguIFVzZSBhbiBpbm5lciBgbWFwYCBpbnN0ZWFkLiBEZXRhaWxzOiBodHRwczovL3J4anMuZGV2L2RlcHJlY2F0aW9ucy9yZXN1bHRTZWxlY3RvciAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN3aXRjaE1hcFRvPE8gZXh0ZW5kcyBPYnNlcnZhYmxlSW5wdXQ8dW5rbm93bj4+KFxuICBvYnNlcnZhYmxlOiBPLFxuICByZXN1bHRTZWxlY3RvcjogdW5kZWZpbmVkXG4pOiBPcGVyYXRvckZ1bmN0aW9uPHVua25vd24sIE9ic2VydmVkVmFsdWVPZjxPPj47XG4vKiogQGRlcHJlY2F0ZWQgVGhlIGByZXN1bHRTZWxlY3RvcmAgcGFyYW1ldGVyIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gVXNlIGFuIGlubmVyIGBtYXBgIGluc3RlYWQuIERldGFpbHM6IGh0dHBzOi8vcnhqcy5kZXYvZGVwcmVjYXRpb25zL3Jlc3VsdFNlbGVjdG9yICovXG5leHBvcnQgZnVuY3Rpb24gc3dpdGNoTWFwVG88VCwgUiwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDx1bmtub3duPj4oXG4gIG9ic2VydmFibGU6IE8sXG4gIHJlc3VsdFNlbGVjdG9yOiAob3V0ZXJWYWx1ZTogVCwgaW5uZXJWYWx1ZTogT2JzZXJ2ZWRWYWx1ZU9mPE8+LCBvdXRlckluZGV4OiBudW1iZXIsIGlubmVySW5kZXg6IG51bWJlcikgPT4gUlxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBSPjtcblxuLyoqXG4gKiBQcm9qZWN0cyBlYWNoIHNvdXJjZSB2YWx1ZSB0byB0aGUgc2FtZSBPYnNlcnZhYmxlIHdoaWNoIGlzIGZsYXR0ZW5lZCBtdWx0aXBsZVxuICogdGltZXMgd2l0aCB7QGxpbmsgc3dpdGNoTWFwfSBpbiB0aGUgb3V0cHV0IE9ic2VydmFibGUuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkl0J3MgbGlrZSB7QGxpbmsgc3dpdGNoTWFwfSwgYnV0IG1hcHMgZWFjaCB2YWx1ZVxuICogYWx3YXlzIHRvIHRoZSBzYW1lIGlubmVyIE9ic2VydmFibGUuPC9zcGFuPlxuICpcbiAqICFbXShzd2l0Y2hNYXBUby5wbmcpXG4gKlxuICogTWFwcyBlYWNoIHNvdXJjZSB2YWx1ZSB0byB0aGUgZ2l2ZW4gT2JzZXJ2YWJsZSBgaW5uZXJPYnNlcnZhYmxlYCByZWdhcmRsZXNzXG4gKiBvZiB0aGUgc291cmNlIHZhbHVlLCBhbmQgdGhlbiBmbGF0dGVucyB0aG9zZSByZXN1bHRpbmcgT2JzZXJ2YWJsZXMgaW50byBvbmVcbiAqIHNpbmdsZSBPYnNlcnZhYmxlLCB3aGljaCBpcyB0aGUgb3V0cHV0IE9ic2VydmFibGUuIFRoZSBvdXRwdXQgT2JzZXJ2YWJsZXNcbiAqIGVtaXRzIHZhbHVlcyBvbmx5IGZyb20gdGhlIG1vc3QgcmVjZW50bHkgZW1pdHRlZCBpbnN0YW5jZSBvZlxuICogYGlubmVyT2JzZXJ2YWJsZWAuXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIFJlc3RhcnQgYW4gaW50ZXJ2YWwgT2JzZXJ2YWJsZSBvbiBldmVyeSBjbGljayBldmVudFxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIHN3aXRjaE1hcFRvLCBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCByZXN1bHQgPSBjbGlja3MucGlwZShzd2l0Y2hNYXBUbyhpbnRlcnZhbCgxMDAwKSkpO1xuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGNvbmNhdE1hcFRvfVxuICogQHNlZSB7QGxpbmsgc3dpdGNoQWxsfVxuICogQHNlZSB7QGxpbmsgc3dpdGNoTWFwfVxuICogQHNlZSB7QGxpbmsgbWVyZ2VNYXBUb31cbiAqXG4gKiBAcGFyYW0gaW5uZXJPYnNlcnZhYmxlIEFuIGBPYnNlcnZhYmxlSW5wdXRgIHRvIHJlcGxhY2UgZWFjaCB2YWx1ZSBmcm9tIHRoZVxuICogc291cmNlIE9ic2VydmFibGUuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBpdGVtcyBmcm9tIHRoZVxuICogZ2l2ZW4gYGlubmVyT2JzZXJ2YWJsZWAgKGFuZCBvcHRpb25hbGx5IHRyYW5zZm9ybWVkIHRocm91Z2ggdGhlIGRlcHJlY2F0ZWRcbiAqIGByZXN1bHRTZWxlY3RvcmApIGV2ZXJ5IHRpbWUgYSB2YWx1ZSBpcyBlbWl0dGVkIG9uIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSxcbiAqIGFuZCB0YWtpbmcgb25seSB0aGUgdmFsdWVzIGZyb20gdGhlIG1vc3QgcmVjZW50bHkgcHJvamVjdGVkIGlubmVyXG4gKiBPYnNlcnZhYmxlLlxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIGluIHY5LiBVc2Uge0BsaW5rIHN3aXRjaE1hcH0gaW5zdGVhZDogYHN3aXRjaE1hcCgoKSA9PiByZXN1bHQpYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3dpdGNoTWFwVG88VCwgUiwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDx1bmtub3duPj4oXG4gIGlubmVyT2JzZXJ2YWJsZTogTyxcbiAgcmVzdWx0U2VsZWN0b3I/OiAob3V0ZXJWYWx1ZTogVCwgaW5uZXJWYWx1ZTogT2JzZXJ2ZWRWYWx1ZU9mPE8+LCBvdXRlckluZGV4OiBudW1iZXIsIGlubmVySW5kZXg6IG51bWJlcikgPT4gUlxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZlZFZhbHVlT2Y8Tz4gfCBSPiB7XG4gIHJldHVybiBpc0Z1bmN0aW9uKHJlc3VsdFNlbGVjdG9yKSA/IHN3aXRjaE1hcCgoKSA9PiBpbm5lck9ic2VydmFibGUsIHJlc3VsdFNlbGVjdG9yKSA6IHN3aXRjaE1hcCgoKSA9PiBpbm5lck9ic2VydmFibGUpO1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGVJbnB1dCwgT2JzZXJ2ZWRWYWx1ZU9mLCBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAnLi9zd2l0Y2hNYXAnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5cbi8vIFRPRE86IEdlbmVyYXRlIGEgbWFyYmxlIGRpYWdyYW0gZm9yIHRoZXNlIGRvY3MuXG5cbi8qKlxuICogQXBwbGllcyBhbiBhY2N1bXVsYXRvciBmdW5jdGlvbiBvdmVyIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB3aGVyZSB0aGVcbiAqIGFjY3VtdWxhdG9yIGZ1bmN0aW9uIGl0c2VsZiByZXR1cm5zIGFuIE9ic2VydmFibGUsIGVtaXR0aW5nIHZhbHVlc1xuICogb25seSBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IHJldHVybmVkIE9ic2VydmFibGUuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkl0J3MgbGlrZSB7QGxpbmsgbWVyZ2VTY2FufSwgYnV0IG9ubHkgdGhlIG1vc3QgcmVjZW50XG4gKiBPYnNlcnZhYmxlIHJldHVybmVkIGJ5IHRoZSBhY2N1bXVsYXRvciBpcyBtZXJnZWQgaW50byB0aGUgb3V0ZXIgT2JzZXJ2YWJsZS48L3NwYW4+XG4gKlxuICogQHNlZSB7QGxpbmsgc2Nhbn1cbiAqIEBzZWUge0BsaW5rIG1lcmdlU2Nhbn1cbiAqIEBzZWUge0BsaW5rIHN3aXRjaE1hcH1cbiAqXG4gKiBAcGFyYW0gYWNjdW11bGF0b3JcbiAqIFRoZSBhY2N1bXVsYXRvciBmdW5jdGlvbiBjYWxsZWQgb24gZWFjaCBzb3VyY2UgdmFsdWUuXG4gKiBAcGFyYW0gc2VlZCBUaGUgaW5pdGlhbCBhY2N1bXVsYXRpb24gdmFsdWUuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9ic2VydmFibGUgb2YgdGhlIGFjY3VtdWxhdGVkIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN3aXRjaFNjYW48VCwgUiwgTyBleHRlbmRzIE9ic2VydmFibGVJbnB1dDxhbnk+PihcbiAgYWNjdW11bGF0b3I6IChhY2M6IFIsIHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiBPLFxuICBzZWVkOiBSXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIE9ic2VydmVkVmFsdWVPZjxPPj4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgLy8gVGhlIHN0YXRlIHdlIHdpbGwga2VlcCB1cCB0byBkYXRlIHRvIHBhc3MgaW50byBvdXJcbiAgICAvLyBhY2N1bXVsYXRvciBmdW5jdGlvbiBhdCBlYWNoIG5ldyB2YWx1ZSBmcm9tIHRoZSBzb3VyY2UuXG4gICAgbGV0IHN0YXRlID0gc2VlZDtcblxuICAgIC8vIFVzZSBgc3dpdGNoTWFwYCBvbiBvdXIgYHNvdXJjZWAgdG8gZG8gdGhlIHdvcmsgb2YgY3JlYXRpbmdcbiAgICAvLyB0aGlzIG9wZXJhdG9yLiBOb3RlIHRoZSBiYWNrd2FyZHMgb3JkZXIgaGVyZSBvZiBgc3dpdGNoTWFwKCkoc291cmNlKWBcbiAgICAvLyB0byBhdm9pZCBuZWVkaW5nIHRvIHVzZSBgcGlwZWAgdW5uZWNlc3NhcmlseVxuICAgIHN3aXRjaE1hcChcbiAgICAgIC8vIE9uIGVhY2ggdmFsdWUgZnJvbSB0aGUgc291cmNlLCBjYWxsIHRoZSBhY2N1bXVsYXRvciB3aXRoXG4gICAgICAvLyBvdXIgcHJldmlvdXMgc3RhdGUsIHRoZSB2YWx1ZSBhbmQgdGhlIGluZGV4LlxuICAgICAgKHZhbHVlOiBULCBpbmRleCkgPT4gYWNjdW11bGF0b3Ioc3RhdGUsIHZhbHVlLCBpbmRleCksXG4gICAgICAvLyBVc2luZyB0aGUgZGVwcmVjYXRlZCByZXN1bHQgc2VsZWN0b3IgaGVyZSBhcyBhIGRpcnR5IHRyaWNrXG4gICAgICAvLyB0byB1cGRhdGUgb3VyIHN0YXRlIHdpdGggdGhlIGZsYXR0ZW5lZCB2YWx1ZS5cbiAgICAgIChfLCBpbm5lclZhbHVlKSA9PiAoKHN0YXRlID0gaW5uZXJWYWx1ZSksIGlubmVyVmFsdWUpXG4gICAgKShzb3VyY2UpLnN1YnNjcmliZShzdWJzY3JpYmVyKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAvLyBSZWxlYXNlIHN0YXRlIG9uIGZpbmFsaXphdGlvblxuICAgICAgc3RhdGUgPSBudWxsITtcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuaW1wb3J0IHsgaW5uZXJGcm9tIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9pbm5lckZyb20nO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL3V0aWwvbm9vcCc7XG5cbi8qKlxuICogRW1pdHMgdGhlIHZhbHVlcyBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB1bnRpbCBhIGBub3RpZmllcmBcbiAqIE9ic2VydmFibGUgZW1pdHMgYSB2YWx1ZS5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+TGV0cyB2YWx1ZXMgcGFzcyB1bnRpbCBhIHNlY29uZCBPYnNlcnZhYmxlLFxuICogYG5vdGlmaWVyYCwgZW1pdHMgYSB2YWx1ZS4gVGhlbiwgaXQgY29tcGxldGVzLjwvc3Bhbj5cbiAqXG4gKiAhW10odGFrZVVudGlsLnBuZylcbiAqXG4gKiBgdGFrZVVudGlsYCBzdWJzY3JpYmVzIGFuZCBiZWdpbnMgbWlycm9yaW5nIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZS4gSXQgYWxzb1xuICogbW9uaXRvcnMgYSBzZWNvbmQgT2JzZXJ2YWJsZSwgYG5vdGlmaWVyYCB0aGF0IHlvdSBwcm92aWRlLiBJZiB0aGUgYG5vdGlmaWVyYFxuICogZW1pdHMgYSB2YWx1ZSwgdGhlIG91dHB1dCBPYnNlcnZhYmxlIHN0b3BzIG1pcnJvcmluZyB0aGUgc291cmNlIE9ic2VydmFibGVcbiAqIGFuZCBjb21wbGV0ZXMuIElmIHRoZSBgbm90aWZpZXJgIGRvZXNuJ3QgZW1pdCBhbnkgdmFsdWUgYW5kIGNvbXBsZXRlc1xuICogdGhlbiBgdGFrZVVudGlsYCB3aWxsIHBhc3MgYWxsIHZhbHVlcy5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogVGljayBldmVyeSBzZWNvbmQgdW50aWwgdGhlIGZpcnN0IGNsaWNrIGhhcHBlbnNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgaW50ZXJ2YWwsIGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3Qgc291cmNlID0gaW50ZXJ2YWwoMTAwMCk7XG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgcmVzdWx0ID0gc291cmNlLnBpcGUodGFrZVVudGlsKGNsaWNrcykpO1xuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIHRha2V9XG4gKiBAc2VlIHtAbGluayB0YWtlTGFzdH1cbiAqIEBzZWUge0BsaW5rIHRha2VXaGlsZX1cbiAqIEBzZWUge0BsaW5rIHNraXB9XG4gKlxuICogQHBhcmFtIG5vdGlmaWVyIFRoZSBgT2JzZXJ2YWJsZUlucHV0YCB3aG9zZSBmaXJzdCBlbWl0dGVkIHZhbHVlIHdpbGwgY2F1c2UgdGhlIG91dHB1dFxuICogT2JzZXJ2YWJsZSBvZiBgdGFrZVVudGlsYCB0byBzdG9wIGVtaXR0aW5nIHZhbHVlcyBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZS5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB2YWx1ZXMgZnJvbSB0aGVcbiAqIHNvdXJjZSBPYnNlcnZhYmxlIHVudGlsIGBub3RpZmllcmAgZW1pdHMgaXRzIGZpcnN0IHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGFrZVVudGlsPFQ+KG5vdGlmaWVyOiBPYnNlcnZhYmxlSW5wdXQ8YW55Pik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBpbm5lckZyb20obm90aWZpZXIpLnN1YnNjcmliZShjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgKCkgPT4gc3Vic2NyaWJlci5jb21wbGV0ZSgpLCBub29wKSk7XG4gICAgIXN1YnNjcmliZXIuY2xvc2VkICYmIHNvdXJjZS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgVHJ1dGh5VHlwZXNPZiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gdGFrZVdoaWxlPFQ+KHByZWRpY2F0ZTogQm9vbGVhbkNvbnN0cnVjdG9yLCBpbmNsdXNpdmU6IHRydWUpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD47XG5leHBvcnQgZnVuY3Rpb24gdGFrZVdoaWxlPFQ+KHByZWRpY2F0ZTogQm9vbGVhbkNvbnN0cnVjdG9yLCBpbmNsdXNpdmU6IGZhbHNlKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUcnV0aHlUeXBlc09mPFQ+PjtcbmV4cG9ydCBmdW5jdGlvbiB0YWtlV2hpbGU8VD4ocHJlZGljYXRlOiBCb29sZWFuQ29uc3RydWN0b3IpOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFRydXRoeVR5cGVzT2Y8VD4+O1xuZXhwb3J0IGZ1bmN0aW9uIHRha2VXaGlsZTxULCBTIGV4dGVuZHMgVD4ocHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IHZhbHVlIGlzIFMpOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFM+O1xuZXhwb3J0IGZ1bmN0aW9uIHRha2VXaGlsZTxULCBTIGV4dGVuZHMgVD4ocHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IHZhbHVlIGlzIFMsIGluY2x1c2l2ZTogZmFsc2UpOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFM+O1xuZXhwb3J0IGZ1bmN0aW9uIHRha2VXaGlsZTxUPihwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gYm9vbGVhbiwgaW5jbHVzaXZlPzogYm9vbGVhbik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPjtcblxuLyoqXG4gKiBFbWl0cyB2YWx1ZXMgZW1pdHRlZCBieSB0aGUgc291cmNlIE9ic2VydmFibGUgc28gbG9uZyBhcyBlYWNoIHZhbHVlIHNhdGlzZmllc1xuICogdGhlIGdpdmVuIGBwcmVkaWNhdGVgLCBhbmQgdGhlbiBjb21wbGV0ZXMgYXMgc29vbiBhcyB0aGlzIGBwcmVkaWNhdGVgIGlzIG5vdFxuICogc2F0aXNmaWVkLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5UYWtlcyB2YWx1ZXMgZnJvbSB0aGUgc291cmNlIG9ubHkgd2hpbGUgdGhleSBwYXNzIHRoZVxuICogY29uZGl0aW9uIGdpdmVuLiBXaGVuIHRoZSBmaXJzdCB2YWx1ZSBkb2VzIG5vdCBzYXRpc2Z5LCBpdCBjb21wbGV0ZXMuPC9zcGFuPlxuICpcbiAqICFbXSh0YWtlV2hpbGUucG5nKVxuICpcbiAqIGB0YWtlV2hpbGVgIHN1YnNjcmliZXMgYW5kIGJlZ2lucyBtaXJyb3JpbmcgdGhlIHNvdXJjZSBPYnNlcnZhYmxlLiBFYWNoIHZhbHVlXG4gKiBlbWl0dGVkIG9uIHRoZSBzb3VyY2UgaXMgZ2l2ZW4gdG8gdGhlIGBwcmVkaWNhdGVgIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYVxuICogYm9vbGVhbiwgcmVwcmVzZW50aW5nIGEgY29uZGl0aW9uIHRvIGJlIHNhdGlzZmllZCBieSB0aGUgc291cmNlIHZhbHVlcy4gVGhlXG4gKiBvdXRwdXQgT2JzZXJ2YWJsZSBlbWl0cyB0aGUgc291cmNlIHZhbHVlcyB1bnRpbCBzdWNoIHRpbWUgYXMgdGhlIGBwcmVkaWNhdGVgXG4gKiByZXR1cm5zIGZhbHNlLCBhdCB3aGljaCBwb2ludCBgdGFrZVdoaWxlYCBzdG9wcyBtaXJyb3JpbmcgdGhlIHNvdXJjZVxuICogT2JzZXJ2YWJsZSBhbmQgY29tcGxldGVzIHRoZSBvdXRwdXQgT2JzZXJ2YWJsZS5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogRW1pdCBjbGljayBldmVudHMgb25seSB3aGlsZSB0aGUgY2xpZW50WCBwcm9wZXJ0eSBpcyBncmVhdGVyIHRoYW4gMjAwXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50PFBvaW50ZXJFdmVudD4oZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgcmVzdWx0ID0gY2xpY2tzLnBpcGUodGFrZVdoaWxlKGV2ID0+IGV2LmNsaWVudFggPiAyMDApKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayB0YWtlfVxuICogQHNlZSB7QGxpbmsgdGFrZUxhc3R9XG4gKiBAc2VlIHtAbGluayB0YWtlVW50aWx9XG4gKiBAc2VlIHtAbGluayBza2lwfVxuICpcbiAqIEBwYXJhbSBwcmVkaWNhdGUgQSBmdW5jdGlvbiB0aGF0IGV2YWx1YXRlcyBhIHZhbHVlIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZVxuICogT2JzZXJ2YWJsZSBhbmQgcmV0dXJucyBhIGJvb2xlYW4uIEFsc28gdGFrZXMgdGhlICh6ZXJvLWJhc2VkKSBpbmRleCBhcyB0aGVcbiAqIHNlY29uZCBhcmd1bWVudC5cbiAqIEBwYXJhbSBpbmNsdXNpdmUgV2hlbiBzZXQgdG8gYHRydWVgIHRoZSB2YWx1ZSB0aGF0IGNhdXNlZCBgcHJlZGljYXRlYCB0b1xuICogcmV0dXJuIGBmYWxzZWAgd2lsbCBhbHNvIGJlIGVtaXR0ZWQuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB2YWx1ZXMgZnJvbSB0aGVcbiAqIHNvdXJjZSBPYnNlcnZhYmxlIHNvIGxvbmcgYXMgZWFjaCB2YWx1ZSBzYXRpc2ZpZXMgdGhlIGNvbmRpdGlvbiBkZWZpbmVkIGJ5XG4gKiB0aGUgYHByZWRpY2F0ZWAsIHRoZW4gY29tcGxldGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGFrZVdoaWxlPFQ+KHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyKSA9PiBib29sZWFuLCBpbmNsdXNpdmUgPSBmYWxzZSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBvcGVyYXRlKChzb3VyY2UsIHN1YnNjcmliZXIpID0+IHtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgrKyk7XG4gICAgICAgIChyZXN1bHQgfHwgaW5jbHVzaXZlKSAmJiBzdWJzY3JpYmVyLm5leHQodmFsdWUpO1xuICAgICAgICAhcmVzdWx0ICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZlciB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuLi91dGlsL2lzRnVuY3Rpb24nO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBpZGVudGl0eSB9IGZyb20gJy4uL3V0aWwvaWRlbnRpdHknO1xuXG4vKipcbiAqIEFuIGV4dGVuc2lvbiB0byB0aGUge0BsaW5rIE9ic2VydmVyfSBpbnRlcmZhY2UgdXNlZCBvbmx5IGJ5IHRoZSB7QGxpbmsgdGFwfSBvcGVyYXRvci5cbiAqXG4gKiBJdCBwcm92aWRlcyBhIHVzZWZ1bCBzZXQgb2YgY2FsbGJhY2tzIGEgdXNlciBjYW4gcmVnaXN0ZXIgdG8gZG8gc2lkZS1lZmZlY3RzIGluXG4gKiBjYXNlcyBvdGhlciB0aGFuIHdoYXQgdGhlIHVzdWFsIHtAbGluayBPYnNlcnZlcn0gY2FsbGJhY2tzIGFyZVxuICogKHtAbGluayBndWlkZS9nbG9zc2FyeS1hbmQtc2VtYW50aWNzI25leHQgbmV4dH0sXG4gKiB7QGxpbmsgZ3VpZGUvZ2xvc3NhcnktYW5kLXNlbWFudGljcyNlcnJvciBlcnJvcn0gYW5kL29yXG4gKiB7QGxpbmsgZ3VpZGUvZ2xvc3NhcnktYW5kLXNlbWFudGljcyNjb21wbGV0ZSBjb21wbGV0ZX0pLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCBzd2l0Y2hNYXAsIHRhcCwgaW50ZXJ2YWwsIHRha2UgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBzb3VyY2UkID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHJlc3VsdCQgPSBzb3VyY2UkLnBpcGUoXG4gKiAgIHN3aXRjaE1hcCgoXywgaSkgPT4gaSAlIDIgPT09IDBcbiAqICAgICA/IGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNlbW92ZScpLnBpcGUoXG4gKiAgICAgICAgIHRhcCh7XG4gKiAgICAgICAgICAgc3Vic2NyaWJlOiAoKSA9PiBjb25zb2xlLmxvZygnU3Vic2NyaWJlZCB0byB0aGUgbW91c2UgbW92ZSBldmVudHMgYWZ0ZXIgY2xpY2sgIycgKyBpKSxcbiAqICAgICAgICAgICB1bnN1YnNjcmliZTogKCkgPT4gY29uc29sZS5sb2coJ01vdXNlIG1vdmUgZXZlbnRzICMnICsgaSArICcgdW5zdWJzY3JpYmVkJyksXG4gKiAgICAgICAgICAgZmluYWxpemU6ICgpID0+IGNvbnNvbGUubG9nKCdNb3VzZSBtb3ZlIGV2ZW50cyAjJyArIGkgKyAnIGZpbmFsaXplZCcpXG4gKiAgICAgICAgIH0pXG4gKiAgICAgICApXG4gKiAgICAgOiBpbnRlcnZhbCgxXzAwMCkucGlwZShcbiAqICAgICAgICAgdGFrZSg1KSxcbiAqICAgICAgICAgdGFwKHtcbiAqICAgICAgICAgICBzdWJzY3JpYmU6ICgpID0+IGNvbnNvbGUubG9nKCdTdWJzY3JpYmVkIHRvIHRoZSAxLXNlY29uZCBpbnRlcnZhbCBldmVudHMgYWZ0ZXIgY2xpY2sgIycgKyBpKSxcbiAqICAgICAgICAgICB1bnN1YnNjcmliZTogKCkgPT4gY29uc29sZS5sb2coJzEtc2Vjb25kIGludGVydmFsIGV2ZW50cyAjJyArIGkgKyAnIHVuc3Vic2NyaWJlZCcpLFxuICogICAgICAgICAgIGZpbmFsaXplOiAoKSA9PiBjb25zb2xlLmxvZygnMS1zZWNvbmQgaW50ZXJ2YWwgZXZlbnRzICMnICsgaSArICcgZmluYWxpemVkJylcbiAqICAgICAgICAgfSlcbiAqICAgICAgIClcbiAqICAgKVxuICogKTtcbiAqXG4gKiBjb25zdCBzdWJzY3JpcHRpb24gPSByZXN1bHQkLnN1YnNjcmliZSh7XG4gKiAgIG5leHQ6IGNvbnNvbGUubG9nXG4gKiB9KTtcbiAqXG4gKiBzZXRUaW1lb3V0KCgpID0+IHtcbiAqICAgY29uc29sZS5sb2coJ1Vuc3Vic2NyaWJlIGFmdGVyIDYwIHNlY29uZHMnKTtcbiAqICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gKiB9LCA2MF8wMDApO1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFwT2JzZXJ2ZXI8VD4gZXh0ZW5kcyBPYnNlcnZlcjxUPiB7XG4gIC8qKlxuICAgKiBUaGUgY2FsbGJhY2sgdGhhdCBgdGFwYCBvcGVyYXRvciBpbnZva2VzIGF0IHRoZSBtb21lbnQgd2hlbiB0aGUgc291cmNlIE9ic2VydmFibGVcbiAgICogZ2V0cyBzdWJzY3JpYmVkIHRvLlxuICAgKi9cbiAgc3Vic2NyaWJlOiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogVGhlIGNhbGxiYWNrIHRoYXQgYHRhcGAgb3BlcmF0b3IgaW52b2tlcyB3aGVuIGFuIGV4cGxpY2l0XG4gICAqIHtAbGluayBndWlkZS9nbG9zc2FyeS1hbmQtc2VtYW50aWNzI3Vuc3Vic2NyaXB0aW9uIHVuc3Vic2NyaWJlfSBoYXBwZW5zLiBJdCB3b24ndCBnZXQgaW52b2tlZCBvblxuICAgKiBgZXJyb3JgIG9yIGBjb21wbGV0ZWAgZXZlbnRzLlxuICAgKi9cbiAgdW5zdWJzY3JpYmU6ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBUaGUgY2FsbGJhY2sgdGhhdCBgdGFwYCBvcGVyYXRvciBpbnZva2VzIHdoZW4gYW55IGtpbmQgb2ZcbiAgICoge0BsaW5rIGd1aWRlL2dsb3NzYXJ5LWFuZC1zZW1hbnRpY3MjZmluYWxpemF0aW9uIGZpbmFsaXphdGlvbn0gaGFwcGVucyAtIGVpdGhlciB3aGVuXG4gICAqIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBgZXJyb3JgcyBvciBgY29tcGxldGVgcyBvciB3aGVuIGl0IGdldHMgZXhwbGljaXRseSB1bnN1YnNjcmliZWRcbiAgICogYnkgdGhlIHVzZXIuIFRoZXJlIGlzIG5vIGRpZmZlcmVuY2UgaW4gdXNpbmcgdGhpcyBjYWxsYmFjayBvciB0aGUge0BsaW5rIGZpbmFsaXplfVxuICAgKiBvcGVyYXRvciwgYnV0IGlmIHlvdSdyZSBhbHJlYWR5IHVzaW5nIGB0YXBgIG9wZXJhdG9yLCB5b3UgY2FuIHVzZSB0aGlzIGNhbGxiYWNrXG4gICAqIGluc3RlYWQuIFlvdSdkIGdldCB0aGUgc2FtZSByZXN1bHQgaW4gZWl0aGVyIGNhc2UuXG4gICAqL1xuICBmaW5hbGl6ZTogKCkgPT4gdm9pZDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0YXA8VD4ob2JzZXJ2ZXJPck5leHQ/OiBQYXJ0aWFsPFRhcE9ic2VydmVyPFQ+PiB8ICgodmFsdWU6IFQpID0+IHZvaWQpKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+O1xuLyoqIEBkZXByZWNhdGVkIEluc3RlYWQgb2YgcGFzc2luZyBzZXBhcmF0ZSBjYWxsYmFjayBhcmd1bWVudHMsIHVzZSBhbiBvYnNlcnZlciBhcmd1bWVudC4gU2lnbmF0dXJlcyB0YWtpbmcgc2VwYXJhdGUgY2FsbGJhY2sgYXJndW1lbnRzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2OC4gRGV0YWlsczogaHR0cHM6Ly9yeGpzLmRldi9kZXByZWNhdGlvbnMvc3Vic2NyaWJlLWFyZ3VtZW50cyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhcDxUPihcbiAgbmV4dD86ICgodmFsdWU6IFQpID0+IHZvaWQpIHwgbnVsbCxcbiAgZXJyb3I/OiAoKGVycm9yOiBhbnkpID0+IHZvaWQpIHwgbnVsbCxcbiAgY29tcGxldGU/OiAoKCkgPT4gdm9pZCkgfCBudWxsXG4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD47XG5cbi8qKlxuICogVXNlZCB0byBwZXJmb3JtIHNpZGUtZWZmZWN0cyBmb3Igbm90aWZpY2F0aW9ucyBmcm9tIHRoZSBzb3VyY2Ugb2JzZXJ2YWJsZVxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5Vc2VkIHdoZW4geW91IHdhbnQgdG8gYWZmZWN0IG91dHNpZGUgc3RhdGUgd2l0aCBhIG5vdGlmaWNhdGlvbiB3aXRob3V0IGFsdGVyaW5nIHRoZSBub3RpZmljYXRpb248L3NwYW4+XG4gKlxuICogIVtdKHRhcC5wbmcpXG4gKlxuICogVGFwIGlzIGRlc2lnbmVkIHRvIGFsbG93IHRoZSBkZXZlbG9wZXIgYSBkZXNpZ25hdGVkIHBsYWNlIHRvIHBlcmZvcm0gc2lkZSBlZmZlY3RzLiBXaGlsZSB5b3UgX2NvdWxkXyBwZXJmb3JtIHNpZGUtZWZmZWN0c1xuICogaW5zaWRlIG9mIGEgYG1hcGAgb3IgYSBgbWVyZ2VNYXBgLCB0aGF0IHdvdWxkIG1ha2UgdGhlaXIgbWFwcGluZyBmdW5jdGlvbnMgaW1wdXJlLCB3aGljaCBpc24ndCBhbHdheXMgYSBiaWcgZGVhbCwgYnV0IHdpbGxcbiAqIG1ha2UgaXQgc28geW91IGNhbid0IGRvIHRoaW5ncyBsaWtlIG1lbW9pemUgdGhvc2UgZnVuY3Rpb25zLiBUaGUgYHRhcGAgb3BlcmF0b3IgaXMgZGVzaWduZWQgc29sZWx5IGZvciBzdWNoIHNpZGUtZWZmZWN0cyB0b1xuICogaGVscCB5b3UgcmVtb3ZlIHNpZGUtZWZmZWN0cyBmcm9tIG90aGVyIG9wZXJhdGlvbnMuXG4gKlxuICogRm9yIGFueSBub3RpZmljYXRpb24sIG5leHQsIGVycm9yLCBvciBjb21wbGV0ZSwgYHRhcGAgd2lsbCBjYWxsIHRoZSBhcHByb3ByaWF0ZSBjYWxsYmFjayB5b3UgaGF2ZSBwcm92aWRlZCB0byBpdCwgdmlhIGEgZnVuY3Rpb25cbiAqIHJlZmVyZW5jZSwgb3IgYSBwYXJ0aWFsIG9ic2VydmVyLCB0aGVuIHBhc3MgdGhhdCBub3RpZmljYXRpb24gZG93biB0aGUgc3RyZWFtLlxuICpcbiAqIFRoZSBvYnNlcnZhYmxlIHJldHVybmVkIGJ5IGB0YXBgIGlzIGFuIGV4YWN0IG1pcnJvciBvZiB0aGUgc291cmNlLCB3aXRoIG9uZSBleGNlcHRpb246IEFueSBlcnJvciB0aGF0IG9jY3VycyAtLSBzeW5jaHJvbm91c2x5IC0tIGluIGEgaGFuZGxlclxuICogcHJvdmlkZWQgdG8gYHRhcGAgd2lsbCBiZSBlbWl0dGVkIGFzIGFuIGVycm9yIGZyb20gdGhlIHJldHVybmVkIG9ic2VydmFibGUuXG4gKlxuICogPiBCZSBjYXJlZnVsISBZb3UgY2FuIG11dGF0ZSBvYmplY3RzIGFzIHRoZXkgcGFzcyB0aHJvdWdoIHRoZSBgdGFwYCBvcGVyYXRvcidzIGhhbmRsZXJzLlxuICpcbiAqIFRoZSBtb3N0IGNvbW1vbiB1c2Ugb2YgYHRhcGAgaXMgYWN0dWFsbHkgZm9yIGRlYnVnZ2luZy4gWW91IGNhbiBwbGFjZSBhIGB0YXAoY29uc29sZS5sb2cpYCBhbnl3aGVyZVxuICogaW4geW91ciBvYnNlcnZhYmxlIGBwaXBlYCwgbG9nIG91dCB0aGUgbm90aWZpY2F0aW9ucyBhcyB0aGV5IGFyZSBlbWl0dGVkIGJ5IHRoZSBzb3VyY2UgcmV0dXJuZWQgYnkgdGhlIHByZXZpb3VzXG4gKiBvcGVyYXRpb24uXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiBDaGVjayBhIHJhbmRvbSBudW1iZXIgYmVmb3JlIGl0IGlzIGhhbmRsZWQuIEJlbG93IGlzIGFuIG9ic2VydmFibGUgdGhhdCB3aWxsIHVzZSBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLFxuICogYW5kIGVtaXQgYCdiaWcnYCBvciBgJ3NtYWxsJ2AgZGVwZW5kaW5nIG9uIHRoZSBzaXplIG9mIHRoYXQgbnVtYmVyLiBCdXQgd2Ugd2FudGVkIHRvIGxvZyB3aGF0IHRoZSBvcmlnaW5hbCBudW1iZXJcbiAqIHdhcywgc28gd2UgaGF2ZSBhZGRlZCBhIGB0YXAoY29uc29sZS5sb2cpYC5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgb2YsIHRhcCwgbWFwIH0gZnJvbSAncnhqcyc7XG4gKlxuICogb2YoTWF0aC5yYW5kb20oKSkucGlwZShcbiAqICAgdGFwKGNvbnNvbGUubG9nKSxcbiAqICAgbWFwKG4gPT4gbiA+IDAuNSA/ICdiaWcnIDogJ3NtYWxsJylcbiAqICkuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTtcbiAqIGBgYFxuICpcbiAqIFVzaW5nIGB0YXBgIHRvIGFuYWx5emUgYSB2YWx1ZSBhbmQgZm9yY2UgYW4gZXJyb3IuIEJlbG93IGlzIGFuIG9ic2VydmFibGUgd2hlcmUgaW4gb3VyIHN5c3RlbSB3ZSBvbmx5XG4gKiB3YW50IHRvIGVtaXQgbnVtYmVycyAzIG9yIGxlc3Mgd2UgZ2V0IGZyb20gYW5vdGhlciBzb3VyY2UuIFdlIGNhbiBmb3JjZSBvdXIgb2JzZXJ2YWJsZSB0byBlcnJvclxuICogdXNpbmcgYHRhcGAuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCB0YXAgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBzb3VyY2UgPSBvZigxLCAyLCAzLCA0LCA1KTtcbiAqXG4gKiBzb3VyY2UucGlwZShcbiAqICAgdGFwKG4gPT4ge1xuICogICAgIGlmIChuID4gMykge1xuICogICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgVmFsdWUgJHsgbiB9IGlzIGdyZWF0ZXIgdGhhbiAzYCk7XG4gKiAgICAgfVxuICogICB9KVxuICogKVxuICogLnN1YnNjcmliZSh7IG5leHQ6IGNvbnNvbGUubG9nLCBlcnJvcjogZXJyID0+IGNvbnNvbGUubG9nKGVyci5tZXNzYWdlKSB9KTtcbiAqIGBgYFxuICpcbiAqIFdlIHdhbnQgdG8ga25vdyB3aGVuIGFuIG9ic2VydmFibGUgY29tcGxldGVzIGJlZm9yZSBtb3Zpbmcgb24gdG8gdGhlIG5leHQgb2JzZXJ2YWJsZS4gVGhlIHN5c3RlbVxuICogYmVsb3cgd2lsbCBlbWl0IGEgcmFuZG9tIHNlcmllcyBvZiBgJ1gnYCBjaGFyYWN0ZXJzIGZyb20gMyBkaWZmZXJlbnQgb2JzZXJ2YWJsZXMgaW4gc2VxdWVuY2UuIFRoZVxuICogb25seSB3YXkgd2Uga25vdyB3aGVuIG9uZSBvYnNlcnZhYmxlIGNvbXBsZXRlcyBhbmQgbW92ZXMgdG8gdGhlIG5leHQgb25lLCBpbiB0aGlzIGNhc2UsIGlzIGJlY2F1c2VcbiAqIHdlIGhhdmUgYWRkZWQgYSBgdGFwYCB3aXRoIHRoZSBzaWRlIGVmZmVjdCBvZiBsb2dnaW5nIHRvIGNvbnNvbGUuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IG9mLCBjb25jYXRNYXAsIGludGVydmFsLCB0YWtlLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIG9mKDEsIDIsIDMpLnBpcGUoXG4gKiAgIGNvbmNhdE1hcChuID0+IGludGVydmFsKDEwMDApLnBpcGUoXG4gKiAgICAgdGFrZShNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMCkpLFxuICogICAgIG1hcCgoKSA9PiAnWCcpLFxuICogICAgIHRhcCh7IGNvbXBsZXRlOiAoKSA9PiBjb25zb2xlLmxvZyhgRG9uZSB3aXRoICR7IG4gfWApIH0pXG4gKiAgICkpXG4gKiApXG4gKiAuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGZpbmFsaXplfVxuICogQHNlZSB7QGxpbmsgVGFwT2JzZXJ2ZXJ9XG4gKlxuICogQHBhcmFtIG9ic2VydmVyT3JOZXh0IEEgbmV4dCBoYW5kbGVyIG9yIHBhcnRpYWwgb2JzZXJ2ZXJcbiAqIEBwYXJhbSBlcnJvciBBbiBlcnJvciBoYW5kbGVyXG4gKiBAcGFyYW0gY29tcGxldGUgQSBjb21wbGV0aW9uIGhhbmRsZXJcbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSBpZGVudGljYWwgdG8gdGhlIHNvdXJjZSwgYnV0XG4gKiBydW5zIHRoZSBzcGVjaWZpZWQgT2JzZXJ2ZXIgb3IgY2FsbGJhY2socykgZm9yIGVhY2ggaXRlbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhcDxUPihcbiAgb2JzZXJ2ZXJPck5leHQ/OiBQYXJ0aWFsPFRhcE9ic2VydmVyPFQ+PiB8ICgodmFsdWU6IFQpID0+IHZvaWQpIHwgbnVsbCxcbiAgZXJyb3I/OiAoKGU6IGFueSkgPT4gdm9pZCkgfCBudWxsLFxuICBjb21wbGV0ZT86ICgoKSA9PiB2b2lkKSB8IG51bGxcbik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIC8vIFdlIGhhdmUgdG8gY2hlY2sgdG8gc2VlIG5vdCBvbmx5IGlmIG5leHQgaXMgYSBmdW5jdGlvbixcbiAgLy8gYnV0IGlmIGVycm9yIG9yIGNvbXBsZXRlIHdlcmUgcGFzc2VkLiBUaGlzIGlzIGJlY2F1c2Ugc29tZW9uZVxuICAvLyBjb3VsZCB0ZWNobmljYWxseSBjYWxsIHRhcCBsaWtlIGB0YXAobnVsbCwgZm4pYCBvciBgdGFwKG51bGwsIG51bGwsIGZuKWAuXG4gIGNvbnN0IHRhcE9ic2VydmVyID1cbiAgICBpc0Z1bmN0aW9uKG9ic2VydmVyT3JOZXh0KSB8fCBlcnJvciB8fCBjb21wbGV0ZVxuICAgICAgPyAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW9iamVjdC1saXRlcmFsLXR5cGUtYXNzZXJ0aW9uXG4gICAgICAgICh7IG5leHQ6IG9ic2VydmVyT3JOZXh0IGFzIEV4Y2x1ZGU8dHlwZW9mIG9ic2VydmVyT3JOZXh0LCBQYXJ0aWFsPFRhcE9ic2VydmVyPFQ+Pj4sIGVycm9yLCBjb21wbGV0ZSB9IGFzIFBhcnRpYWw8VGFwT2JzZXJ2ZXI8VD4+KVxuICAgICAgOiBvYnNlcnZlck9yTmV4dDtcblxuICByZXR1cm4gdGFwT2JzZXJ2ZXJcbiAgICA/IG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICB0YXBPYnNlcnZlci5zdWJzY3JpYmU/LigpO1xuICAgICAgICBsZXQgaXNVbnN1YiA9IHRydWU7XG4gICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICAgICAgc3Vic2NyaWJlcixcbiAgICAgICAgICAgICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICB0YXBPYnNlcnZlci5uZXh0Py4odmFsdWUpO1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgaXNVbnN1YiA9IGZhbHNlO1xuICAgICAgICAgICAgICB0YXBPYnNlcnZlci5jb21wbGV0ZT8uKCk7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGlzVW5zdWIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGFwT2JzZXJ2ZXIuZXJyb3I/LihlcnIpO1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaXNVbnN1Yikge1xuICAgICAgICAgICAgICAgIHRhcE9ic2VydmVyLnVuc3Vic2NyaWJlPy4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0YXBPYnNlcnZlci5maW5hbGl6ZT8uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICA6IC8vIFRhcCB3YXMgY2FsbGVkIHdpdGggbm8gdmFsaWQgdGFwIG9ic2VydmVyIG9yIGhhbmRsZXJcbiAgICAgIC8vIChlLmcuIGB0YXAobnVsbCwgbnVsbCwgbnVsbClgIG9yIGB0YXAobnVsbClgIG9yIGB0YXAoKWApXG4gICAgICAvLyBzbyB3ZSdyZSBnb2luZyB0byBqdXN0IG1pcnJvciB0aGUgc291cmNlLlxuICAgICAgaWRlbnRpdHk7XG59XG4iLCAiaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vU3Vic2NyaXB0aW9uJztcblxuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcbmltcG9ydCB7IGlubmVyRnJvbSB9IGZyb20gJy4uL29ic2VydmFibGUvaW5uZXJGcm9tJztcblxuLyoqXG4gKiBBbiBvYmplY3QgaW50ZXJmYWNlIHVzZWQgYnkge0BsaW5rIHRocm90dGxlfSBvciB7QGxpbmsgdGhyb3R0bGVUaW1lfSB0aGF0IGVuc3VyZVxuICogY29uZmlndXJhdGlvbiBvcHRpb25zIG9mIHRoZXNlIG9wZXJhdG9ycy5cbiAqXG4gKiBAc2VlIHtAbGluayB0aHJvdHRsZX1cbiAqIEBzZWUge0BsaW5rIHRocm90dGxlVGltZX1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaHJvdHRsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSByZXN1bHRpbmcgT2JzZXJ2YWJsZSB3aWxsIGVtaXQgdGhlIGZpcnN0IHZhbHVlIGZyb20gdGhlIHNvdXJjZVxuICAgKiBPYnNlcnZhYmxlIGF0IHRoZSAqKnN0YXJ0Kiogb2YgdGhlIFwidGhyb3R0bGluZ1wiIHByb2Nlc3MgKHdoZW4gc3RhcnRpbmcgYW5cbiAgICogaW50ZXJuYWwgdGltZXIgdGhhdCBwcmV2ZW50cyBvdGhlciBlbWlzc2lvbnMgZnJvbSB0aGUgc291cmNlIHRvIHBhc3MgdGhyb3VnaCkuXG4gICAqIElmIGBmYWxzZWAsIGl0IHdpbGwgbm90IGVtaXQgdGhlIGZpcnN0IHZhbHVlIGZyb20gdGhlIHNvdXJjZSBPYnNlcnZhYmxlIGF0IHRoZVxuICAgKiBzdGFydCBvZiB0aGUgXCJ0aHJvdHRsaW5nXCIgcHJvY2Vzcy5cbiAgICpcbiAgICogSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0bzogYHRydWVgLlxuICAgKi9cbiAgbGVhZGluZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSByZXN1bHRpbmcgT2JzZXJ2YWJsZSB3aWxsIGVtaXQgdGhlIGxhc3QgdmFsdWUgZnJvbSB0aGUgc291cmNlXG4gICAqIE9ic2VydmFibGUgYXQgdGhlICoqZW5kKiogb2YgdGhlIFwidGhyb3R0bGluZ1wiIHByb2Nlc3MgKHdoZW4gZW5kaW5nIGFuIGludGVybmFsXG4gICAqIHRpbWVyIHRoYXQgcHJldmVudHMgb3RoZXIgZW1pc3Npb25zIGZyb20gdGhlIHNvdXJjZSB0byBwYXNzIHRocm91Z2gpLlxuICAgKiBJZiBgZmFsc2VgLCBpdCB3aWxsIG5vdCBlbWl0IHRoZSBsYXN0IHZhbHVlIGZyb20gdGhlIHNvdXJjZSBPYnNlcnZhYmxlIGF0IHRoZVxuICAgKiBlbmQgb2YgdGhlIFwidGhyb3R0bGluZ1wiIHByb2Nlc3MuXG4gICAqXG4gICAqIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdHMgdG86IGBmYWxzZWAuXG4gICAqL1xuICB0cmFpbGluZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW1pdHMgYSB2YWx1ZSBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSwgdGhlbiBpZ25vcmVzIHN1YnNlcXVlbnQgc291cmNlXG4gKiB2YWx1ZXMgZm9yIGEgZHVyYXRpb24gZGV0ZXJtaW5lZCBieSBhbm90aGVyIE9ic2VydmFibGUsIHRoZW4gcmVwZWF0cyB0aGlzXG4gKiBwcm9jZXNzLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5JdCdzIGxpa2Uge0BsaW5rIHRocm90dGxlVGltZX0sIGJ1dCB0aGUgc2lsZW5jaW5nXG4gKiBkdXJhdGlvbiBpcyBkZXRlcm1pbmVkIGJ5IGEgc2Vjb25kIE9ic2VydmFibGUuPC9zcGFuPlxuICpcbiAqICFbXSh0aHJvdHRsZS5zdmcpXG4gKlxuICogYHRocm90dGxlYCBlbWl0cyB0aGUgc291cmNlIE9ic2VydmFibGUgdmFsdWVzIG9uIHRoZSBvdXRwdXQgT2JzZXJ2YWJsZVxuICogd2hlbiBpdHMgaW50ZXJuYWwgdGltZXIgaXMgZGlzYWJsZWQsIGFuZCBpZ25vcmVzIHNvdXJjZSB2YWx1ZXMgd2hlbiB0aGUgdGltZXJcbiAqIGlzIGVuYWJsZWQuIEluaXRpYWxseSwgdGhlIHRpbWVyIGlzIGRpc2FibGVkLiBBcyBzb29uIGFzIHRoZSBmaXJzdCBzb3VyY2VcbiAqIHZhbHVlIGFycml2ZXMsIGl0IGlzIGZvcndhcmRlZCB0byB0aGUgb3V0cHV0IE9ic2VydmFibGUsIGFuZCB0aGVuIHRoZSB0aW1lclxuICogaXMgZW5hYmxlZCBieSBjYWxsaW5nIHRoZSBgZHVyYXRpb25TZWxlY3RvcmAgZnVuY3Rpb24gd2l0aCB0aGUgc291cmNlIHZhbHVlLFxuICogd2hpY2ggcmV0dXJucyB0aGUgXCJkdXJhdGlvblwiIE9ic2VydmFibGUuIFdoZW4gdGhlIGR1cmF0aW9uIE9ic2VydmFibGUgZW1pdHMgYVxuICogdmFsdWUsIHRoZSB0aW1lciBpcyBkaXNhYmxlZCwgYW5kIHRoaXMgcHJvY2VzcyByZXBlYXRzIGZvciB0aGVcbiAqIG5leHQgc291cmNlIHZhbHVlLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBFbWl0IGNsaWNrcyBhdCBhIHJhdGUgb2YgYXQgbW9zdCBvbmUgY2xpY2sgcGVyIHNlY29uZFxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIHRocm90dGxlLCBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCByZXN1bHQgPSBjbGlja3MucGlwZSh0aHJvdHRsZSgoKSA9PiBpbnRlcnZhbCgxMDAwKSkpO1xuICpcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBhdWRpdH1cbiAqIEBzZWUge0BsaW5rIGRlYm91bmNlfVxuICogQHNlZSB7QGxpbmsgZGVsYXlXaGVufVxuICogQHNlZSB7QGxpbmsgc2FtcGxlfVxuICogQHNlZSB7QGxpbmsgdGhyb3R0bGVUaW1lfVxuICpcbiAqIEBwYXJhbSBkdXJhdGlvblNlbGVjdG9yIEEgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyBhIHZhbHVlIGZyb20gdGhlIHNvdXJjZVxuICogT2JzZXJ2YWJsZSwgZm9yIGNvbXB1dGluZyB0aGUgc2lsZW5jaW5nIGR1cmF0aW9uIGZvciBlYWNoIHNvdXJjZSB2YWx1ZSxcbiAqIHJldHVybmVkIGFzIGFuIGBPYnNlcnZhYmxlSW5wdXRgLlxuICogQHBhcmFtIGNvbmZpZyBBIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIGRlZmluZSBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2BcbiAqIGJlaGF2aW9yLiBEZWZhdWx0cyB0byBgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogZmFsc2UgfWAuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBwZXJmb3JtcyB0aGUgdGhyb3R0bGVcbiAqIG9wZXJhdGlvbiB0byBsaW1pdCB0aGUgcmF0ZSBvZiBlbWlzc2lvbnMgZnJvbSB0aGUgc291cmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3R0bGU8VD4oZHVyYXRpb25TZWxlY3RvcjogKHZhbHVlOiBUKSA9PiBPYnNlcnZhYmxlSW5wdXQ8YW55PiwgY29uZmlnPzogVGhyb3R0bGVDb25maWcpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgY29uc3QgeyBsZWFkaW5nID0gdHJ1ZSwgdHJhaWxpbmcgPSBmYWxzZSB9ID0gY29uZmlnID8/IHt9O1xuICAgIGxldCBoYXNWYWx1ZSA9IGZhbHNlO1xuICAgIGxldCBzZW5kVmFsdWU6IFQgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgdGhyb3R0bGVkOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgICBsZXQgaXNDb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgZW5kVGhyb3R0bGluZyA9ICgpID0+IHtcbiAgICAgIHRocm90dGxlZD8udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRocm90dGxlZCA9IG51bGw7XG4gICAgICBpZiAodHJhaWxpbmcpIHtcbiAgICAgICAgc2VuZCgpO1xuICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgY2xlYW51cFRocm90dGxpbmcgPSAoKSA9PiB7XG4gICAgICB0aHJvdHRsZWQgPSBudWxsO1xuICAgICAgaXNDb21wbGV0ZSAmJiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXJ0VGhyb3R0bGUgPSAodmFsdWU6IFQpID0+XG4gICAgICAodGhyb3R0bGVkID0gaW5uZXJGcm9tKGR1cmF0aW9uU2VsZWN0b3IodmFsdWUpKS5zdWJzY3JpYmUoY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGVuZFRocm90dGxpbmcsIGNsZWFudXBUaHJvdHRsaW5nKSkpO1xuXG4gICAgY29uc3Qgc2VuZCA9ICgpID0+IHtcbiAgICAgIGlmIChoYXNWYWx1ZSkge1xuICAgICAgICAvLyBFbnN1cmUgd2UgY2xlYXIgb3V0IG91ciB2YWx1ZSBhbmQgaGFzVmFsdWUgZmxhZ1xuICAgICAgICAvLyBiZWZvcmUgd2UgZW1pdCwgb3RoZXJ3aXNlIHJlZW50cmFudCBjb2RlIGNhbiBjYXVzZVxuICAgICAgICAvLyBpc3N1ZXMgaGVyZS5cbiAgICAgICAgaGFzVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBzZW5kVmFsdWUhO1xuICAgICAgICBzZW5kVmFsdWUgPSBudWxsO1xuICAgICAgICAvLyBFbWl0IHRoZSB2YWx1ZS5cbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgIWlzQ29tcGxldGUgJiYgc3RhcnRUaHJvdHRsZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgIC8vIFJlZ2FyZGluZyB0aGUgcHJlc2VuY2Ugb2YgdGhyb3R0bGVkLmNsb3NlZCBpbiB0aGUgZm9sbG93aW5nXG4gICAgICAgIC8vIGNvbmRpdGlvbnMsIGlmIGEgc3luY2hyb25vdXMgZHVyYXRpb24gc2VsZWN0b3IgaXMgc3BlY2lmaWVkIC0gd2VpcmQsXG4gICAgICAgIC8vIGJ1dCBsZWdhbCAtIGFuIGFscmVhZHktY2xvc2VkIHN1YnNjcmlwdGlvbiB3aWxsIGJlIGFzc2lnbmVkIHRvXG4gICAgICAgIC8vIHRocm90dGxlZCwgc28gdGhlIHN1YnNjcmlwdGlvbidzIGNsb3NlZCBwcm9wZXJ0eSBuZWVkcyB0byBiZSBjaGVja2VkLFxuICAgICAgICAvLyB0b28uXG4gICAgICAgICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICBzZW5kVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAhKHRocm90dGxlZCAmJiAhdGhyb3R0bGVkLmNsb3NlZCkgJiYgKGxlYWRpbmcgPyBzZW5kKCkgOiBzdGFydFRocm90dGxlKHZhbHVlKSk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpc0NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAhKHRyYWlsaW5nICYmIGhhc1ZhbHVlICYmIHRocm90dGxlZCAmJiAhdGhyb3R0bGVkLmNsb3NlZCkgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICcuLi9zY2hlZHVsZXIvYXN5bmMnO1xuaW1wb3J0IHsgdGhyb3R0bGUsIFRocm90dGxlQ29uZmlnIH0gZnJvbSAnLi90aHJvdHRsZSc7XG5pbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIFNjaGVkdWxlckxpa2UgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyB0aW1lciB9IGZyb20gJy4uL29ic2VydmFibGUvdGltZXInO1xuXG4vKipcbiAqIEVtaXRzIGEgdmFsdWUgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUsIHRoZW4gaWdub3JlcyBzdWJzZXF1ZW50IHNvdXJjZVxuICogdmFsdWVzIGZvciBgZHVyYXRpb25gIG1pbGxpc2Vjb25kcywgdGhlbiByZXBlYXRzIHRoaXMgcHJvY2Vzcy5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+TGV0cyBhIHZhbHVlIHBhc3MsIHRoZW4gaWdub3JlcyBzb3VyY2UgdmFsdWVzIGZvciB0aGVcbiAqIG5leHQgYGR1cmF0aW9uYCBtaWxsaXNlY29uZHMuPC9zcGFuPlxuICpcbiAqICFbXSh0aHJvdHRsZVRpbWUucG5nKVxuICpcbiAqIGB0aHJvdHRsZVRpbWVgIGVtaXRzIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB2YWx1ZXMgb24gdGhlIG91dHB1dCBPYnNlcnZhYmxlXG4gKiB3aGVuIGl0cyBpbnRlcm5hbCB0aW1lciBpcyBkaXNhYmxlZCwgYW5kIGlnbm9yZXMgc291cmNlIHZhbHVlcyB3aGVuIHRoZSB0aW1lclxuICogaXMgZW5hYmxlZC4gSW5pdGlhbGx5LCB0aGUgdGltZXIgaXMgZGlzYWJsZWQuIEFzIHNvb24gYXMgdGhlIGZpcnN0IHNvdXJjZVxuICogdmFsdWUgYXJyaXZlcywgaXQgaXMgZm9yd2FyZGVkIHRvIHRoZSBvdXRwdXQgT2JzZXJ2YWJsZSwgYW5kIHRoZW4gdGhlIHRpbWVyXG4gKiBpcyBlbmFibGVkLiBBZnRlciBgZHVyYXRpb25gIG1pbGxpc2Vjb25kcyAob3IgdGhlIHRpbWUgdW5pdCBkZXRlcm1pbmVkXG4gKiBpbnRlcm5hbGx5IGJ5IHRoZSBvcHRpb25hbCBgc2NoZWR1bGVyYCkgaGFzIHBhc3NlZCwgdGhlIHRpbWVyIGlzIGRpc2FibGVkLFxuICogYW5kIHRoaXMgcHJvY2VzcyByZXBlYXRzIGZvciB0aGUgbmV4dCBzb3VyY2UgdmFsdWUuIE9wdGlvbmFsbHkgdGFrZXMgYVxuICoge0BsaW5rIFNjaGVkdWxlckxpa2V9IGZvciBtYW5hZ2luZyB0aW1lcnMuXG4gKlxuICogIyMgRXhhbXBsZXNcbiAqXG4gKiAjIyMgTGltaXQgY2xpY2sgcmF0ZVxuICpcbiAqIEVtaXQgY2xpY2tzIGF0IGEgcmF0ZSBvZiBhdCBtb3N0IG9uZSBjbGljayBwZXIgc2Vjb25kXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGNsaWNrcy5waXBlKHRocm90dGxlVGltZSgxMDAwKSk7XG4gKlxuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGF1ZGl0VGltZX1cbiAqIEBzZWUge0BsaW5rIGRlYm91bmNlVGltZX1cbiAqIEBzZWUge0BsaW5rIGRlbGF5fVxuICogQHNlZSB7QGxpbmsgc2FtcGxlVGltZX1cbiAqIEBzZWUge0BsaW5rIHRocm90dGxlfVxuICpcbiAqIEBwYXJhbSBkdXJhdGlvbiBUaW1lIHRvIHdhaXQgYmVmb3JlIGVtaXR0aW5nIGFub3RoZXIgdmFsdWUgYWZ0ZXJcbiAqIGVtaXR0aW5nIHRoZSBsYXN0IHZhbHVlLCBtZWFzdXJlZCBpbiBtaWxsaXNlY29uZHMgb3IgdGhlIHRpbWUgdW5pdCBkZXRlcm1pbmVkXG4gKiBpbnRlcm5hbGx5IGJ5IHRoZSBvcHRpb25hbCBgc2NoZWR1bGVyYC5cbiAqIEBwYXJhbSBzY2hlZHVsZXIgVGhlIHtAbGluayBTY2hlZHVsZXJMaWtlfSB0byB1c2UgZm9yXG4gKiBtYW5hZ2luZyB0aGUgdGltZXJzIHRoYXQgaGFuZGxlIHRoZSB0aHJvdHRsaW5nLiBEZWZhdWx0cyB0byB7QGxpbmsgYXN5bmNTY2hlZHVsZXJ9LlxuICogQHBhcmFtIGNvbmZpZyBBIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIGRlZmluZSBgbGVhZGluZ2AgYW5kXG4gKiBgdHJhaWxpbmdgIGJlaGF2aW9yLiBEZWZhdWx0cyB0byBgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogZmFsc2UgfWAuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBwZXJmb3JtcyB0aGUgdGhyb3R0bGVcbiAqIG9wZXJhdGlvbiB0byBsaW1pdCB0aGUgcmF0ZSBvZiBlbWlzc2lvbnMgZnJvbSB0aGUgc291cmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3R0bGVUaW1lPFQ+KFxuICBkdXJhdGlvbjogbnVtYmVyLFxuICBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UgPSBhc3luY1NjaGVkdWxlcixcbiAgY29uZmlnPzogVGhyb3R0bGVDb25maWdcbik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIGNvbnN0IGR1cmF0aW9uJCA9IHRpbWVyKGR1cmF0aW9uLCBzY2hlZHVsZXIpO1xuICByZXR1cm4gdGhyb3R0bGUoKCkgPT4gZHVyYXRpb24kLCBjb25maWcpO1xufVxuIiwgImltcG9ydCB7IGFzeW5jU2NoZWR1bGVyIH0gZnJvbSAnLi4vc2NoZWR1bGVyL2FzeW5jJztcbmltcG9ydCB7IFNjaGVkdWxlckxpa2UsIE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBvcGVyYXRlIH0gZnJvbSAnLi4vdXRpbC9saWZ0JztcbmltcG9ydCB7IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciB9IGZyb20gJy4vT3BlcmF0b3JTdWJzY3JpYmVyJztcblxuLyoqXG4gKiBFbWl0cyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCB2YWx1ZSwgYW5kIHRoZSB0aW1lIHRoYXQgaGFzXG4gKiBwYXNzZWQgYmV0d2VlbiBlbWl0dGluZyB0aGUgY3VycmVudCB2YWx1ZSBhbmQgdGhlIHByZXZpb3VzIHZhbHVlLCB3aGljaCBpc1xuICogY2FsY3VsYXRlZCBieSB1c2luZyB0aGUgcHJvdmlkZWQgYHNjaGVkdWxlcmAncyBgbm93KClgIG1ldGhvZCB0byByZXRyaWV2ZVxuICogdGhlIGN1cnJlbnQgdGltZSBhdCBlYWNoIGVtaXNzaW9uLCB0aGVuIGNhbGN1bGF0aW5nIHRoZSBkaWZmZXJlbmNlLiBUaGUgYHNjaGVkdWxlcmBcbiAqIGRlZmF1bHRzIHRvIHtAbGluayBhc3luY1NjaGVkdWxlcn0sIHNvIGJ5IGRlZmF1bHQsIHRoZSBgaW50ZXJ2YWxgIHdpbGwgYmUgaW5cbiAqIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+Q29udmVydCBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgaXRlbXMgaW50byBvbmUgdGhhdFxuICogZW1pdHMgaW5kaWNhdGlvbnMgb2YgdGhlIGFtb3VudCBvZiB0aW1lIGVsYXBzZWQgYmV0d2VlbiB0aG9zZSBlbWlzc2lvbnMuPC9zcGFuPlxuICpcbiAqICFbXSh0aW1lSW50ZXJ2YWwucG5nKVxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBFbWl0IGludGVydmFsIGJldHdlZW4gY3VycmVudCB2YWx1ZSB3aXRoIHRoZSBsYXN0IHZhbHVlXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCB0aW1lSW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBzZWNvbmRzID0gaW50ZXJ2YWwoMTAwMCk7XG4gKlxuICogc2Vjb25kc1xuICogICAucGlwZSh0aW1lSW50ZXJ2YWwoKSlcbiAqICAgLnN1YnNjcmliZSh2YWx1ZSA9PiBjb25zb2xlLmxvZyh2YWx1ZSkpO1xuICpcbiAqIC8vIE5PVEU6IFRoZSB2YWx1ZXMgd2lsbCBuZXZlciBiZSB0aGlzIHByZWNpc2UsXG4gKiAvLyBpbnRlcnZhbHMgY3JlYXRlZCB3aXRoIGBpbnRlcnZhbGAgb3IgYHNldEludGVydmFsYFxuICogLy8gYXJlIG5vbi1kZXRlcm1pbmlzdGljLlxuICpcbiAqIC8vIHsgdmFsdWU6IDAsIGludGVydmFsOiAxMDAwIH1cbiAqIC8vIHsgdmFsdWU6IDEsIGludGVydmFsOiAxMDAwIH1cbiAqIC8vIHsgdmFsdWU6IDIsIGludGVydmFsOiAxMDAwIH1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBzY2hlZHVsZXIgU2NoZWR1bGVyIHVzZWQgdG8gZ2V0IHRoZSBjdXJyZW50IHRpbWUuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBpbmZvcm1hdGlvbiBhYm91dFxuICogdmFsdWUgYW5kIGludGVydmFsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGltZUludGVydmFsPFQ+KHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSA9IGFzeW5jU2NoZWR1bGVyKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUaW1lSW50ZXJ2YWw8VD4+IHtcbiAgcmV0dXJuIG9wZXJhdGUoKHNvdXJjZSwgc3Vic2NyaWJlcikgPT4ge1xuICAgIGxldCBsYXN0ID0gc2NoZWR1bGVyLm5vdygpO1xuICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vdyA9IHNjaGVkdWxlci5ub3coKTtcbiAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBub3cgLSBsYXN0O1xuICAgICAgICBsYXN0ID0gbm93O1xuICAgICAgICBzdWJzY3JpYmVyLm5leHQobmV3IFRpbWVJbnRlcnZhbCh2YWx1ZSwgaW50ZXJ2YWwpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfSk7XG59XG5cbi8vIFRPRE8oYmVubGVzaCk6IG1ha2UgdGhpcyBhbiBpbnRlcmZhY2UsIGV4cG9ydCB0aGUgaW50ZXJmYWNlLCBidXQgbm90IHRoZSBpbXBsZW1lbnRlZCBjbGFzcyxcbi8vIHRoZXJlJ3Mgbm8gcmVhc29uIHVzZXJzIHNob3VsZCBiZSBtYW51YWxseSBjcmVhdGluZyB0aGlzIHR5cGUuXG5cbmV4cG9ydCBjbGFzcyBUaW1lSW50ZXJ2YWw8VD4ge1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLCBkbyBub3QgY29uc3RydWN0IGRpcmVjdGx5LiBXaWxsIGJlIG1hZGUgYW4gaW50ZXJmYWNlIGluIHY4LlxuICAgKi9cbiAgY29uc3RydWN0b3IocHVibGljIHZhbHVlOiBULCBwdWJsaWMgaW50ZXJ2YWw6IG51bWJlcikge31cbn1cbiIsICJpbXBvcnQgeyBhc3luYyB9IGZyb20gJy4uL3NjaGVkdWxlci9hc3luYyc7XG5pbXBvcnQgeyBpc1ZhbGlkRGF0ZSB9IGZyb20gJy4uL3V0aWwvaXNEYXRlJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCwgT3BlcmF0b3JGdW5jdGlvbiwgU2NoZWR1bGVyTGlrZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHRpbWVvdXQgfSBmcm9tICcuL3RpbWVvdXQnO1xuXG4vKiogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgd2l0aCB7QGxpbmsgdGltZW91dH0uIEluc3RlYWQgb2YgYHRpbWVvdXRXaXRoKHNvbWVEYXRlLCBhJCwgc2NoZWR1bGVyKWAsIHVzZSB0aGUgY29uZmlndXJhdGlvbiBvYmplY3RcbiAqIGB0aW1lb3V0KHsgZmlyc3Q6IHNvbWVEYXRlLCB3aXRoOiAoKSA9PiBhJCwgc2NoZWR1bGVyIH0pYC4gV2lsbCBiZSByZW1vdmVkIGluIHY4LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRpbWVvdXRXaXRoPFQsIFI+KGR1ZUJ5OiBEYXRlLCBzd2l0Y2hUbzogT2JzZXJ2YWJsZUlucHV0PFI+LCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUIHwgUj47XG4vKiogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgd2l0aCB7QGxpbmsgdGltZW91dH0uIEluc3RlYWQgb2YgYHRpbWVvdXRXaXRoKDEwMCwgYSQsIHNjaGVkdWxlcilgLCB1c2UgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gKiAgYHRpbWVvdXQoeyBlYWNoOiAxMDAsIHdpdGg6ICgpID0+IGEkLCBzY2hlZHVsZXIgfSlgLiBXaWxsIGJlIHJlbW92ZWQgaW4gdjguICovXG5leHBvcnQgZnVuY3Rpb24gdGltZW91dFdpdGg8VCwgUj4od2FpdEZvcjogbnVtYmVyLCBzd2l0Y2hUbzogT2JzZXJ2YWJsZUlucHV0PFI+LCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUIHwgUj47XG5cbi8qKlxuICogV2hlbiB0aGUgcGFzc2VkIHRpbWVzcGFuIGVsYXBzZXMgYmVmb3JlIHRoZSBzb3VyY2UgZW1pdHMgYW55IGdpdmVuIHZhbHVlLCBpdCB3aWxsIHVuc3Vic2NyaWJlIGZyb20gdGhlIHNvdXJjZSxcbiAqIGFuZCBzd2l0Y2ggdGhlIHN1YnNjcmlwdGlvbiB0byBhbm90aGVyIG9ic2VydmFibGUuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPlVzZWQgdG8gc3dpdGNoIHRvIGEgZGlmZmVyZW50IG9ic2VydmFibGUgaWYgeW91ciBzb3VyY2UgaXMgYmVpbmcgc2xvdy48L3NwYW4+XG4gKlxuICogVXNlZnVsIGluIGNhc2VzIHdoZXJlOlxuICpcbiAqIC0gWW91IHdhbnQgdG8gc3dpdGNoIHRvIGEgZGlmZmVyZW50IHNvdXJjZSB0aGF0IG1heSBiZSBmYXN0ZXIuXG4gKiAtIFlvdSB3YW50IHRvIG5vdGlmeSBhIHVzZXIgdGhhdCB0aGUgZGF0YSBzdHJlYW0gaXMgc2xvdy5cbiAqIC0gWW91IHdhbnQgdG8gZW1pdCBhIGN1c3RvbSBlcnJvciByYXRoZXIgdGhhbiB0aGUge0BsaW5rIFRpbWVvdXRFcnJvcn0gZW1pdHRlZFxuICogICBieSB0aGUgZGVmYXVsdCB1c2FnZSBvZiB7QGxpbmsgdGltZW91dH0uXG4gKlxuICogSWYgdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBwYXNzZWQgYXMgRGF0ZSBhbmQgdGhlIHRpbWUgb2YgdGhlIERhdGUgYXJyaXZlcyBiZWZvcmUgdGhlIGZpcnN0IHZhbHVlIGFycml2ZXMgZnJvbSB0aGUgc291cmNlLFxuICogaXQgd2lsbCB1bnN1YnNjcmliZSBmcm9tIHRoZSBzb3VyY2UgYW5kIHN3aXRjaCB0aGUgc3Vic2NyaXB0aW9uIHRvIGFub3RoZXIgb2JzZXJ2YWJsZS5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+VXNlIERhdGUgb2JqZWN0IHRvIHN3aXRjaCB0byBhIGRpZmZlcmVudCBvYnNlcnZhYmxlIGlmIHRoZSBmaXJzdCB2YWx1ZSBkb2Vzbid0IGFycml2ZSBieSBhIHNwZWNpZmljIHRpbWUuPC9zcGFuPlxuICpcbiAqIENhbiBiZSB1c2VkIHRvIHNldCBhIHRpbWVvdXQgb25seSBmb3IgdGhlIGZpcnN0IHZhbHVlLCBob3dldmVyIGl0J3MgcmVjb21tZW5kZWQgdG8gdXNlIHRoZSB7QGxpbmsgdGltZW91dH0gb3BlcmF0b3Igd2l0aFxuICogdGhlIGBmaXJzdGAgY29uZmlndXJhdGlvbiB0byBnZXQgdGhlIHNhbWUgZWZmZWN0LlxuICpcbiAqICMjIEV4YW1wbGVzXG4gKlxuICogRmFsbGJhY2sgdG8gYSBmYXN0ZXIgb2JzZXJ2YWJsZVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBpbnRlcnZhbCwgdGltZW91dFdpdGggfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBzbG93JCA9IGludGVydmFsKDEwMDApO1xuICogY29uc3QgZmFzdGVyJCA9IGludGVydmFsKDUwMCk7XG4gKlxuICogc2xvdyRcbiAqICAgLnBpcGUodGltZW91dFdpdGgoOTAwLCBmYXN0ZXIkKSlcbiAqICAgLnN1YnNjcmliZShjb25zb2xlLmxvZyk7XG4gKiBgYGBcbiAqXG4gKiBFbWl0IHlvdXIgb3duIGN1c3RvbSB0aW1lb3V0IGVycm9yXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGludGVydmFsLCB0aW1lb3V0V2l0aCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuICpcbiAqIGNsYXNzIEN1c3RvbVRpbWVvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAqICAgY29uc3RydWN0b3IoKSB7XG4gKiAgICAgc3VwZXIoJ0l0IHdhcyB0b28gc2xvdycpO1xuICogICAgIHRoaXMubmFtZSA9ICdDdXN0b21UaW1lb3V0RXJyb3InO1xuICogICB9XG4gKiB9XG4gKlxuICogY29uc3Qgc2xvdyQgPSBpbnRlcnZhbCgxMDAwKTtcbiAqXG4gKiBzbG93JFxuICogICAucGlwZSh0aW1lb3V0V2l0aCg5MDAsIHRocm93RXJyb3IoKCkgPT4gbmV3IEN1c3RvbVRpbWVvdXRFcnJvcigpKSkpXG4gKiAgIC5zdWJzY3JpYmUoe1xuICogICAgIGVycm9yOiBlcnIgPT4gY29uc29sZS5lcnJvcihlcnIubWVzc2FnZSlcbiAqICAgfSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayB0aW1lb3V0fVxuICpcbiAqIEBwYXJhbSBkdWUgV2hlbiBwYXNzZWQgYSBudW1iZXIsIHVzZWQgYXMgdGhlIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgYWxsb3dlZCBiZXR3ZWVuIGVhY2ggdmFsdWUgZnJvbSB0aGUgc291cmNlIGJlZm9yZSB0aW1lb3V0XG4gKiBpcyB0cmlnZ2VyZWQuIFdoZW4gcGFzc2VkIGEgRGF0ZSwgdXNlZCBhcyB0aGUgZXhhY3QgdGltZSBhdCB3aGljaCB0aGUgdGltZW91dCB3aWxsIGJlIHRyaWdnZXJlZCBpZiB0aGUgZmlyc3QgdmFsdWUgZG9lcyBub3QgYXJyaXZlLlxuICogQHBhcmFtIHdpdGhPYnNlcnZhYmxlIFRoZSBvYnNlcnZhYmxlIHRvIHN3aXRjaCB0byB3aGVuIHRpbWVvdXQgb2NjdXJzLlxuICogQHBhcmFtIHNjaGVkdWxlciBUaGUgc2NoZWR1bGVyIHRvIHVzZSB3aXRoIHRpbWUtcmVsYXRlZCBvcGVyYXRpb25zIHdpdGhpbiB0aGlzIG9wZXJhdG9yLiBEZWZhdWx0cyB0byB7QGxpbmsgYXN5bmNTY2hlZHVsZXJ9XG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBtaXJyb3JzIGJlaGF2aW91ciBvZiB0aGVcbiAqIHNvdXJjZSBPYnNlcnZhYmxlLCB1bmxlc3MgdGltZW91dCBoYXBwZW5zIHdoZW4gaXQgc3RhcnRzIGVtaXR0aW5nIHZhbHVlc1xuICogZnJvbSB0aGUgYE9ic2VydmFibGVJbnB1dGAgcGFzc2VkIGFzIGEgc2Vjb25kIHBhcmFtZXRlci5cbiAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIHdpdGgge0BsaW5rIHRpbWVvdXR9LiBJbnN0ZWFkIG9mIGB0aW1lb3V0V2l0aCgxMDAsIGEkLCBzY2hlZHVsZXIpYCwgdXNlIHtAbGluayB0aW1lb3V0fSB3aXRoIHRoZSBjb25maWd1cmF0aW9uXG4gKiBvYmplY3Q6IGB0aW1lb3V0KHsgZWFjaDogMTAwLCB3aXRoOiAoKSA9PiBhJCwgc2NoZWR1bGVyIH0pYC4gSW5zdGVhZCBvZiBgdGltZW91dFdpdGgoc29tZURhdGUsIGEkLCBzY2hlZHVsZXIpYCwgdXNlIHtAbGluayB0aW1lb3V0fVxuICogd2l0aCB0aGUgY29uZmlndXJhdGlvbiBvYmplY3Q6IGB0aW1lb3V0KHsgZmlyc3Q6IHNvbWVEYXRlLCB3aXRoOiAoKSA9PiBhJCwgc2NoZWR1bGVyIH0pYC4gV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGltZW91dFdpdGg8VCwgUj4oXG4gIGR1ZTogbnVtYmVyIHwgRGF0ZSxcbiAgd2l0aE9ic2VydmFibGU6IE9ic2VydmFibGVJbnB1dDxSPixcbiAgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUIHwgUj4ge1xuICBsZXQgZmlyc3Q6IG51bWJlciB8IERhdGUgfCB1bmRlZmluZWQ7XG4gIGxldCBlYWNoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIGxldCBfd2l0aDogKCkgPT4gT2JzZXJ2YWJsZUlucHV0PFI+O1xuICBzY2hlZHVsZXIgPSBzY2hlZHVsZXIgPz8gYXN5bmM7XG5cbiAgaWYgKGlzVmFsaWREYXRlKGR1ZSkpIHtcbiAgICBmaXJzdCA9IGR1ZTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZHVlID09PSAnbnVtYmVyJykge1xuICAgIGVhY2ggPSBkdWU7XG4gIH1cblxuICBpZiAod2l0aE9ic2VydmFibGUpIHtcbiAgICBfd2l0aCA9ICgpID0+IHdpdGhPYnNlcnZhYmxlO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG9ic2VydmFibGUgcHJvdmlkZWQgdG8gc3dpdGNoIHRvJyk7XG4gIH1cblxuICBpZiAoZmlyc3QgPT0gbnVsbCAmJiBlYWNoID09IG51bGwpIHtcbiAgICAvLyBFbnN1cmUgdGltZW91dCB3YXMgcHJvdmlkZWQgYXQgcnVudGltZS5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdObyB0aW1lb3V0IHByb3ZpZGVkLicpO1xuICB9XG5cbiAgcmV0dXJuIHRpbWVvdXQ8VCwgT2JzZXJ2YWJsZUlucHV0PFI+Pih7XG4gICAgZmlyc3QsXG4gICAgZWFjaCxcbiAgICBzY2hlZHVsZXIsXG4gICAgd2l0aDogX3dpdGgsXG4gIH0pO1xufVxuIiwgImltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIFRpbWVzdGFtcFByb3ZpZGVyLCBUaW1lc3RhbXAgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBkYXRlVGltZXN0YW1wUHJvdmlkZXIgfSBmcm9tICcuLi9zY2hlZHVsZXIvZGF0ZVRpbWVzdGFtcFByb3ZpZGVyJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJy4vbWFwJztcblxuLyoqXG4gKiBBdHRhY2hlcyBhIHRpbWVzdGFtcCB0byBlYWNoIGl0ZW0gZW1pdHRlZCBieSBhbiBvYnNlcnZhYmxlIGluZGljYXRpbmcgd2hlbiBpdCB3YXMgZW1pdHRlZFxuICpcbiAqIFRoZSBgdGltZXN0YW1wYCBvcGVyYXRvciBtYXBzIHRoZSAqc291cmNlKiBvYnNlcnZhYmxlIHN0cmVhbSB0byBhbiBvYmplY3Qgb2YgdHlwZVxuICogYHt2YWx1ZTogVCwgdGltZXN0YW1wOiBSfWAuIFRoZSBwcm9wZXJ0aWVzIGFyZSBnZW5lcmljYWxseSB0eXBlZC4gVGhlIGB2YWx1ZWAgcHJvcGVydHkgY29udGFpbnMgdGhlIHZhbHVlXG4gKiBhbmQgdHlwZSBvZiB0aGUgKnNvdXJjZSogb2JzZXJ2YWJsZS4gVGhlIGB0aW1lc3RhbXBgIGlzIGdlbmVyYXRlZCBieSB0aGUgc2NoZWR1bGVycyBgbm93YCBmdW5jdGlvbi4gQnlcbiAqIGRlZmF1bHQsIGl0IHVzZXMgdGhlIGBhc3luY1NjaGVkdWxlcmAgd2hpY2ggc2ltcGx5IHJldHVybnMgYERhdGUubm93KClgIChtaWxsaXNlY29uZHMgc2luY2UgMTk3MC8wMS8wMVxuICogMDA6MDA6MDA6MDAwKSBhbmQgdGhlcmVmb3JlIGlzIG9mIHR5cGUgYG51bWJlcmAuXG4gKlxuICogIVtdKHRpbWVzdGFtcC5wbmcpXG4gKlxuICogIyMgRXhhbXBsZVxuICpcbiAqIEluIHRoaXMgZXhhbXBsZSB0aGVyZSBpcyBhIHRpbWVzdGFtcCBhdHRhY2hlZCB0byB0aGUgZG9jdW1lbnQncyBjbGljayBldmVudHNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCB0aW1lc3RhbXAgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja1dpdGhUaW1lc3RhbXAgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpLnBpcGUoXG4gKiAgIHRpbWVzdGFtcCgpXG4gKiApO1xuICpcbiAqIC8vIEVtaXRzIGRhdGEgb2YgdHlwZSB7IHZhbHVlOiBQb2ludGVyRXZlbnQsIHRpbWVzdGFtcDogbnVtYmVyIH1cbiAqIGNsaWNrV2l0aFRpbWVzdGFtcC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKGRhdGEpO1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gdGltZXN0YW1wUHJvdmlkZXIgQW4gb2JqZWN0IHdpdGggYSBgbm93KClgIG1ldGhvZCB1c2VkIHRvIGdldCB0aGUgY3VycmVudCB0aW1lc3RhbXAuXG4gKiBAcmV0dXJuIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIE9ic2VydmFibGUgdGhhdCBhdHRhY2hlcyBhIHRpbWVzdGFtcCB0b1xuICogZWFjaCBpdGVtIGVtaXR0ZWQgYnkgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIGluZGljYXRpbmcgd2hlbiBpdCB3YXMgZW1pdHRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRpbWVzdGFtcDxUPih0aW1lc3RhbXBQcm92aWRlcjogVGltZXN0YW1wUHJvdmlkZXIgPSBkYXRlVGltZXN0YW1wUHJvdmlkZXIpOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFRpbWVzdGFtcDxUPj4ge1xuICByZXR1cm4gbWFwKCh2YWx1ZTogVCkgPT4gKHsgdmFsdWUsIHRpbWVzdGFtcDogdGltZXN0YW1wUHJvdmlkZXIubm93KCkgfSkpO1xufVxuIiwgImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IE9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICcuLi9TdWJqZWN0JztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL3V0aWwvbm9vcCc7XG5pbXBvcnQgeyBpbm5lckZyb20gfSBmcm9tICcuLi9vYnNlcnZhYmxlL2lubmVyRnJvbSc7XG5cbi8qKlxuICogQnJhbmNoIG91dCB0aGUgc291cmNlIE9ic2VydmFibGUgdmFsdWVzIGFzIGEgbmVzdGVkIE9ic2VydmFibGUgd2hlbmV2ZXJcbiAqIGB3aW5kb3dCb3VuZGFyaWVzYCBlbWl0cy5cbiAqXG4gKiA8c3BhbiBjbGFzcz1cImluZm9ybWFsXCI+SXQncyBsaWtlIHtAbGluayBidWZmZXJ9LCBidXQgZW1pdHMgYSBuZXN0ZWQgT2JzZXJ2YWJsZVxuICogaW5zdGVhZCBvZiBhbiBhcnJheS48L3NwYW4+XG4gKlxuICogIVtdKHdpbmRvdy5wbmcpXG4gKlxuICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2luZG93cyBvZiBpdGVtcyBpdCBjb2xsZWN0cyBmcm9tIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUuIFRoZSBvdXRwdXQgT2JzZXJ2YWJsZSBlbWl0cyBjb25uZWN0ZWQsIG5vbi1vdmVybGFwcGluZ1xuICogd2luZG93cy4gSXQgZW1pdHMgdGhlIGN1cnJlbnQgd2luZG93IGFuZCBvcGVucyBhIG5ldyBvbmUgd2hlbmV2ZXIgdGhlXG4gKiBgd2luZG93Qm91bmRhcmllc2AgZW1pdHMgYW4gaXRlbS4gYHdpbmRvd0JvdW5kYXJpZXNgIGNhbiBiZSBhbnkgdHlwZSB0aGF0XG4gKiBgT2JzZXJ2YWJsZUlucHV0YCBhY2NlcHRzLiBJdCBpbnRlcm5hbGx5IGdldHMgY29udmVydGVkIHRvIGFuIE9ic2VydmFibGUuXG4gKiBCZWNhdXNlIGVhY2ggd2luZG93IGlzIGFuIE9ic2VydmFibGUsIHRoZSBvdXRwdXQgaXMgYSBoaWdoZXItb3JkZXIgT2JzZXJ2YWJsZS5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogSW4gZXZlcnkgd2luZG93IG9mIDEgc2Vjb25kIGVhY2gsIGVtaXQgYXQgbW9zdCAyIGNsaWNrIGV2ZW50c1xuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIGludGVydmFsLCB3aW5kb3csIG1hcCwgdGFrZSwgbWVyZ2VBbGwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3Qgc2VjID0gaW50ZXJ2YWwoMTAwMCk7XG4gKiBjb25zdCByZXN1bHQgPSBjbGlja3MucGlwZShcbiAqICAgd2luZG93KHNlYyksXG4gKiAgIG1hcCh3aW4gPT4gd2luLnBpcGUodGFrZSgyKSkpLCAvLyB0YWtlIGF0IG1vc3QgMiBlbWlzc2lvbnMgZnJvbSBlYWNoIHdpbmRvd1xuICogICBtZXJnZUFsbCgpICAgICAgICAgICAgICAgICAgICAgLy8gZmxhdHRlbiB0aGUgT2JzZXJ2YWJsZS1vZi1PYnNlcnZhYmxlc1xuICogKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayB3aW5kb3dDb3VudH1cbiAqIEBzZWUge0BsaW5rIHdpbmRvd1RpbWV9XG4gKiBAc2VlIHtAbGluayB3aW5kb3dUb2dnbGV9XG4gKiBAc2VlIHtAbGluayB3aW5kb3dXaGVufVxuICogQHNlZSB7QGxpbmsgYnVmZmVyfVxuICpcbiAqIEBwYXJhbSB3aW5kb3dCb3VuZGFyaWVzIEFuIGBPYnNlcnZhYmxlSW5wdXRgIHRoYXQgY29tcGxldGVzIHRoZVxuICogcHJldmlvdXMgd2luZG93IGFuZCBzdGFydHMgYSBuZXcgd2luZG93LlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIG9mIHdpbmRvd3MsIHdoaWNoIGFyZVxuICogT2JzZXJ2YWJsZXMgZW1pdHRpbmcgdmFsdWVzIG9mIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpbmRvdzxUPih3aW5kb3dCb3VuZGFyaWVzOiBPYnNlcnZhYmxlSW5wdXQ8YW55Pik6IE9wZXJhdG9yRnVuY3Rpb248VCwgT2JzZXJ2YWJsZTxUPj4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgbGV0IHdpbmRvd1N1YmplY3Q6IFN1YmplY3Q8VD4gPSBuZXcgU3ViamVjdDxUPigpO1xuXG4gICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd1N1YmplY3QuYXNPYnNlcnZhYmxlKCkpO1xuXG4gICAgY29uc3QgZXJyb3JIYW5kbGVyID0gKGVycjogYW55KSA9PiB7XG4gICAgICB3aW5kb3dTdWJqZWN0LmVycm9yKGVycik7XG4gICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7XG4gICAgfTtcblxuICAgIC8vIFN1YnNjcmliZSB0byBvdXIgc291cmNlXG4gICAgc291cmNlLnN1YnNjcmliZShcbiAgICAgIGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihcbiAgICAgICAgc3Vic2NyaWJlcixcbiAgICAgICAgKHZhbHVlKSA9PiB3aW5kb3dTdWJqZWN0Py5uZXh0KHZhbHVlKSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHdpbmRvd1N1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9ySGFuZGxlclxuICAgICAgKVxuICAgICk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIHdpbmRvdyBib3VuZGFyaWVzLlxuICAgIGlubmVyRnJvbSh3aW5kb3dCb3VuZGFyaWVzKS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB3aW5kb3dTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KCh3aW5kb3dTdWJqZWN0ID0gbmV3IFN1YmplY3QoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBub29wLFxuICAgICAgICBlcnJvckhhbmRsZXJcbiAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIC8vIFVuc3Vic2NyaWJpbmcgdGhlIHN1YmplY3QgZW5zdXJlcyB0aGF0IGFueW9uZSB3aG8gaGFzIGNhcHR1cmVkXG4gICAgICAvLyBhIHJlZmVyZW5jZSB0byB0aGlzIHdpbmRvdyB0aGF0IHRyaWVzIHRvIHVzZSBpdCBhZnRlciBpdCBjYW5cbiAgICAgIC8vIG5vIGxvbmdlciBnZXQgdmFsdWVzIGZyb20gdGhlIHNvdXJjZSB3aWxsIGdldCBhbiBPYmplY3RVbnN1YnNjcmliZWRFcnJvci5cbiAgICAgIHdpbmRvd1N1YmplY3Q/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB3aW5kb3dTdWJqZWN0ID0gbnVsbCE7XG4gICAgfTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJy4uL1N1YmplY3QnO1xuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICcuLi9zY2hlZHVsZXIvYXN5bmMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IE9ic2VydmVyLCBPcGVyYXRvckZ1bmN0aW9uLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBhcnJSZW1vdmUgfSBmcm9tICcuLi91dGlsL2FyclJlbW92ZSc7XG5pbXBvcnQgeyBwb3BTY2hlZHVsZXIgfSBmcm9tICcuLi91dGlsL2FyZ3MnO1xuaW1wb3J0IHsgZXhlY3V0ZVNjaGVkdWxlIH0gZnJvbSAnLi4vdXRpbC9leGVjdXRlU2NoZWR1bGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gd2luZG93VGltZTxUPih3aW5kb3dUaW1lU3BhbjogbnVtYmVyLCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZhYmxlPFQ+PjtcbmV4cG9ydCBmdW5jdGlvbiB3aW5kb3dUaW1lPFQ+KFxuICB3aW5kb3dUaW1lU3BhbjogbnVtYmVyLFxuICB3aW5kb3dDcmVhdGlvbkludGVydmFsOiBudW1iZXIsXG4gIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2Vcbik6IE9wZXJhdG9yRnVuY3Rpb248VCwgT2JzZXJ2YWJsZTxUPj47XG5leHBvcnQgZnVuY3Rpb24gd2luZG93VGltZTxUPihcbiAgd2luZG93VGltZVNwYW46IG51bWJlcixcbiAgd2luZG93Q3JlYXRpb25JbnRlcnZhbDogbnVtYmVyIHwgbnVsbCB8IHZvaWQsXG4gIG1heFdpbmRvd1NpemU6IG51bWJlcixcbiAgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZVxuKTogT3BlcmF0b3JGdW5jdGlvbjxULCBPYnNlcnZhYmxlPFQ+PjtcblxuLyoqXG4gKiBCcmFuY2ggb3V0IHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB2YWx1ZXMgYXMgYSBuZXN0ZWQgT2JzZXJ2YWJsZSBwZXJpb2RpY2FsbHlcbiAqIGluIHRpbWUuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkl0J3MgbGlrZSB7QGxpbmsgYnVmZmVyVGltZX0sIGJ1dCBlbWl0cyBhIG5lc3RlZFxuICogT2JzZXJ2YWJsZSBpbnN0ZWFkIG9mIGFuIGFycmF5Ljwvc3Bhbj5cbiAqXG4gKiAhW10od2luZG93VGltZS5wbmcpXG4gKlxuICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2luZG93cyBvZiBpdGVtcyBpdCBjb2xsZWN0cyBmcm9tIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUuIFRoZSBvdXRwdXQgT2JzZXJ2YWJsZSBzdGFydHMgYSBuZXcgd2luZG93IHBlcmlvZGljYWxseSwgYXNcbiAqIGRldGVybWluZWQgYnkgdGhlIGB3aW5kb3dDcmVhdGlvbkludGVydmFsYCBhcmd1bWVudC4gSXQgZW1pdHMgZWFjaCB3aW5kb3dcbiAqIGFmdGVyIGEgZml4ZWQgdGltZXNwYW4sIHNwZWNpZmllZCBieSB0aGUgYHdpbmRvd1RpbWVTcGFuYCBhcmd1bWVudC4gV2hlbiB0aGVcbiAqIHNvdXJjZSBPYnNlcnZhYmxlIGNvbXBsZXRlcyBvciBlbmNvdW50ZXJzIGFuIGVycm9yLCB0aGUgb3V0cHV0IE9ic2VydmFibGVcbiAqIGVtaXRzIHRoZSBjdXJyZW50IHdpbmRvdyBhbmQgcHJvcGFnYXRlcyB0aGUgbm90aWZpY2F0aW9uIGZyb20gdGhlIHNvdXJjZVxuICogT2JzZXJ2YWJsZS4gSWYgYHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWxgIGlzIG5vdCBwcm92aWRlZCwgdGhlIG91dHB1dFxuICogT2JzZXJ2YWJsZSBzdGFydHMgYSBuZXcgd2luZG93IHdoZW4gdGhlIHByZXZpb3VzIHdpbmRvdyBvZiBkdXJhdGlvblxuICogYHdpbmRvd1RpbWVTcGFuYCBjb21wbGV0ZXMuIElmIGBtYXhXaW5kb3dDb3VudGAgaXMgcHJvdmlkZWQsIGVhY2ggd2luZG93XG4gKiB3aWxsIGVtaXQgYXQgbW9zdCBmaXhlZCBudW1iZXIgb2YgdmFsdWVzLiBXaW5kb3cgd2lsbCBjb21wbGV0ZSBpbW1lZGlhdGVseVxuICogYWZ0ZXIgZW1pdHRpbmcgbGFzdCB2YWx1ZSBhbmQgbmV4dCBvbmUgc3RpbGwgd2lsbCBvcGVuIGFzIHNwZWNpZmllZCBieVxuICogYHdpbmRvd1RpbWVTcGFuYCBhbmQgYHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWxgIGFyZ3VtZW50cy5cbiAqXG4gKiAjIyBFeGFtcGxlc1xuICpcbiAqIEluIGV2ZXJ5IHdpbmRvdyBvZiAxIHNlY29uZCBlYWNoLCBlbWl0IGF0IG1vc3QgMiBjbGljayBldmVudHNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgZnJvbUV2ZW50LCB3aW5kb3dUaW1lLCBtYXAsIHRha2UsIG1lcmdlQWxsIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGNsaWNrcy5waXBlKFxuICogICB3aW5kb3dUaW1lKDEwMDApLFxuICogICBtYXAod2luID0+IHdpbi5waXBlKHRha2UoMikpKSwgLy8gdGFrZSBhdCBtb3N0IDIgZW1pc3Npb25zIGZyb20gZWFjaCB3aW5kb3dcbiAqICAgbWVyZ2VBbGwoKSAgICAgICAgICAgICAgICAgICAgIC8vIGZsYXR0ZW4gdGhlIE9ic2VydmFibGUtb2YtT2JzZXJ2YWJsZXNcbiAqICk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogRXZlcnkgNSBzZWNvbmRzIHN0YXJ0IGEgd2luZG93IDEgc2Vjb25kIGxvbmcsIGFuZCBlbWl0IGF0IG1vc3QgMiBjbGljayBldmVudHMgcGVyIHdpbmRvd1xuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIHdpbmRvd1RpbWUsIG1hcCwgdGFrZSwgbWVyZ2VBbGwgfSBmcm9tICdyeGpzJztcbiAqXG4gKiBjb25zdCBjbGlja3MgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpO1xuICogY29uc3QgcmVzdWx0ID0gY2xpY2tzLnBpcGUoXG4gKiAgIHdpbmRvd1RpbWUoMTAwMCwgNTAwMCksXG4gKiAgIG1hcCh3aW4gPT4gd2luLnBpcGUodGFrZSgyKSkpLCAvLyB0YWtlIGF0IG1vc3QgMiBlbWlzc2lvbnMgZnJvbSBlYWNoIHdpbmRvd1xuICogICBtZXJnZUFsbCgpICAgICAgICAgICAgICAgICAgICAgLy8gZmxhdHRlbiB0aGUgT2JzZXJ2YWJsZS1vZi1PYnNlcnZhYmxlc1xuICogKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqXG4gKiBTYW1lIGFzIGV4YW1wbGUgYWJvdmUgYnV0IHdpdGggYG1heFdpbmRvd0NvdW50YCBpbnN0ZWFkIG9mIGB0YWtlYFxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIHdpbmRvd1RpbWUsIG1lcmdlQWxsIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGNsaWNrcy5waXBlKFxuICogICB3aW5kb3dUaW1lKDEwMDAsIDUwMDAsIDIpLCAvLyB0YWtlIGF0IG1vc3QgMiBlbWlzc2lvbnMgZnJvbSBlYWNoIHdpbmRvd1xuICogICBtZXJnZUFsbCgpICAgICAgICAgICAgICAgICAvLyBmbGF0dGVuIHRoZSBPYnNlcnZhYmxlLW9mLU9ic2VydmFibGVzXG4gKiApO1xuICogcmVzdWx0LnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKHgpKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIHdpbmRvd31cbiAqIEBzZWUge0BsaW5rIHdpbmRvd0NvdW50fVxuICogQHNlZSB7QGxpbmsgd2luZG93VG9nZ2xlfVxuICogQHNlZSB7QGxpbmsgd2luZG93V2hlbn1cbiAqIEBzZWUge0BsaW5rIGJ1ZmZlclRpbWV9XG4gKlxuICogQHBhcmFtIHdpbmRvd1RpbWVTcGFuIFRoZSBhbW91bnQgb2YgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCB0byBmaWxsIGVhY2ggd2luZG93LlxuICogQHBhcmFtIHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWwgVGhlIGludGVydmFsIGF0IHdoaWNoIHRvIHN0YXJ0IG5ld1xuICogd2luZG93cy5cbiAqIEBwYXJhbSBtYXhXaW5kb3dTaXplIE1heCBudW1iZXIgb2ZcbiAqIHZhbHVlcyBlYWNoIHdpbmRvdyBjYW4gZW1pdCBiZWZvcmUgY29tcGxldGlvbi5cbiAqIEBwYXJhbSBzY2hlZHVsZXIgVGhlIHNjaGVkdWxlciBvbiB3aGljaCB0byBzY2hlZHVsZSB0aGVcbiAqIGludGVydmFscyB0aGF0IGRldGVybWluZSB3aW5kb3cgYm91bmRhcmllcy5cbiAqIEByZXR1cm4gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSBvZiB3aW5kb3dzLCB3aGljaCBpbiB0dXJuIGFyZVxuICogT2JzZXJ2YWJsZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aW5kb3dUaW1lPFQ+KHdpbmRvd1RpbWVTcGFuOiBudW1iZXIsIC4uLm90aGVyQXJnczogYW55W10pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIE9ic2VydmFibGU8VD4+IHtcbiAgY29uc3Qgc2NoZWR1bGVyID0gcG9wU2NoZWR1bGVyKG90aGVyQXJncykgPz8gYXN5bmNTY2hlZHVsZXI7XG4gIGNvbnN0IHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWwgPSAob3RoZXJBcmdzWzBdIGFzIG51bWJlcikgPz8gbnVsbDtcbiAgY29uc3QgbWF4V2luZG93U2l6ZSA9IChvdGhlckFyZ3NbMV0gYXMgbnVtYmVyKSB8fCBJbmZpbml0eTtcblxuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgLy8gVGhlIGFjdGl2ZSB3aW5kb3dzLCB0aGVpciByZWxhdGVkIHN1YnNjcmlwdGlvbnMsIGFuZCByZW1vdmFsIGZ1bmN0aW9ucy5cbiAgICBsZXQgd2luZG93UmVjb3JkczogV2luZG93UmVjb3JkPFQ+W10gfCBudWxsID0gW107XG4gICAgLy8gSWYgdHJ1ZSwgaXQgbWVhbnMgdGhhdCBldmVyeSB0aW1lIHdlIGNsb3NlIGEgd2luZG93LCB3ZSB3YW50IHRvIHN0YXJ0IGEgbmV3IHdpbmRvdy5cbiAgICAvLyBUaGlzIGlzIG9ubHkgcmVhbGx5IHVzZWQgZm9yIHdoZW4gKmp1c3QqIHRoZSB0aW1lIHNwYW4gaXMgcGFzc2VkLlxuICAgIGxldCByZXN0YXJ0T25DbG9zZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgY2xvc2VXaW5kb3cgPSAocmVjb3JkOiB7IHdpbmRvdzogU3ViamVjdDxUPjsgc3ViczogU3Vic2NyaXB0aW9uIH0pID0+IHtcbiAgICAgIGNvbnN0IHsgd2luZG93LCBzdWJzIH0gPSByZWNvcmQ7XG4gICAgICB3aW5kb3cuY29tcGxldGUoKTtcbiAgICAgIHN1YnMudW5zdWJzY3JpYmUoKTtcbiAgICAgIGFyclJlbW92ZSh3aW5kb3dSZWNvcmRzLCByZWNvcmQpO1xuICAgICAgcmVzdGFydE9uQ2xvc2UgJiYgc3RhcnRXaW5kb3coKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIGV2ZXJ5IHRpbWUgd2Ugc3RhcnQgYSBuZXcgd2luZG93LiBUaGlzIGFsc28gZG9lc1xuICAgICAqIHRoZSB3b3JrIG9mIHNjaGVkdWxpbmcgdGhlIGpvYiB0byBjbG9zZSB0aGUgd2luZG93LlxuICAgICAqL1xuICAgIGNvbnN0IHN0YXJ0V2luZG93ID0gKCkgPT4ge1xuICAgICAgaWYgKHdpbmRvd1JlY29yZHMpIHtcbiAgICAgICAgY29uc3Qgc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgc3Vic2NyaWJlci5hZGQoc3Vicyk7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IG5ldyBTdWJqZWN0PFQ+KCk7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHtcbiAgICAgICAgICB3aW5kb3csXG4gICAgICAgICAgc3VicyxcbiAgICAgICAgICBzZWVuOiAwLFxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3dSZWNvcmRzLnB1c2gocmVjb3JkKTtcbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvdy5hc09ic2VydmFibGUoKSk7XG4gICAgICAgIGV4ZWN1dGVTY2hlZHVsZShzdWJzLCBzY2hlZHVsZXIsICgpID0+IGNsb3NlV2luZG93KHJlY29yZCksIHdpbmRvd1RpbWVTcGFuKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWwgIT09IG51bGwgJiYgd2luZG93Q3JlYXRpb25JbnRlcnZhbCA+PSAwKSB7XG4gICAgICAvLyBUaGUgdXNlciBwYXNzZWQgYm90aCBhIHdpbmRvd1RpbWVTcGFuIChyZXF1aXJlZCksIGFuZCBhIGNyZWF0aW9uIGludGVydmFsXG4gICAgICAvLyBUaGF0IG1lYW5zIHdlIG5lZWQgdG8gc3RhcnQgbmV3IHdpbmRvdyBvbiB0aGUgaW50ZXJ2YWwsIGFuZCB0aG9zZSB3aW5kb3dzIG5lZWRcbiAgICAgIC8vIHRvIHdhaXQgdGhlIHJlcXVpcmVkIHRpbWUgc3BhbiBiZWZvcmUgY29tcGxldGluZy5cbiAgICAgIGV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIHN0YXJ0V2luZG93LCB3aW5kb3dDcmVhdGlvbkludGVydmFsLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdGFydE9uQ2xvc2UgPSB0cnVlO1xuICAgIH1cblxuICAgIHN0YXJ0V2luZG93KCk7XG5cbiAgICAvKipcbiAgICAgKiBXZSBuZWVkIHRvIGxvb3Agb3ZlciBhIGNvcHkgb2YgdGhlIHdpbmRvdyByZWNvcmRzIHNldmVyYWwgdGltZXMgaW4gdGhpcyBvcGVyYXRvci5cbiAgICAgKiBUaGlzIGlzIHRvIHNhdmUgYnl0ZXMgb3ZlciB0aGUgd2lyZSBtb3JlIHRoYW4gYW55dGhpbmcuXG4gICAgICogVGhlIHJlYXNvbiB3ZSBjb3B5IHRoZSBhcnJheSBpcyB0aGF0IHJlZW50cmFudCBjb2RlIGNvdWxkIG11dGF0ZSB0aGUgYXJyYXkgd2hpbGVcbiAgICAgKiB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIgaXQuXG4gICAgICovXG4gICAgY29uc3QgbG9vcCA9IChjYjogKHJlY29yZDogV2luZG93UmVjb3JkPFQ+KSA9PiB2b2lkKSA9PiB3aW5kb3dSZWNvcmRzIS5zbGljZSgpLmZvckVhY2goY2IpO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBub3RpZnkgYWxsIG9mIHRoZSB3aW5kb3dzIGFuZCB0aGUgc3Vic2NyaWJlciBpbiB0aGUgc2FtZSB3YXlcbiAgICAgKiBpbiB0aGUgZXJyb3IgYW5kIGNvbXBsZXRlIGhhbmRsZXJzLlxuICAgICAqL1xuICAgIGNvbnN0IHRlcm1pbmF0ZSA9IChjYjogKGNvbnN1bWVyOiBPYnNlcnZlcjxhbnk+KSA9PiB2b2lkKSA9PiB7XG4gICAgICBsb29wKCh7IHdpbmRvdyB9KSA9PiBjYih3aW5kb3cpKTtcbiAgICAgIGNiKHN1YnNjcmliZXIpO1xuICAgICAgc3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xuICAgIH07XG5cbiAgICBzb3VyY2Uuc3Vic2NyaWJlKFxuICAgICAgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKFxuICAgICAgICBzdWJzY3JpYmVyLFxuICAgICAgICAodmFsdWU6IFQpID0+IHtcbiAgICAgICAgICAvLyBOb3RpZnkgYWxsIHdpbmRvd3Mgb2YgdGhlIHZhbHVlLlxuICAgICAgICAgIGxvb3AoKHJlY29yZCkgPT4ge1xuICAgICAgICAgICAgcmVjb3JkLndpbmRvdy5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgIC8vIElmIHRoZSB3aW5kb3cgaXMgb3ZlciB0aGUgbWF4IHNpemUsIHdlIG5lZWQgdG8gY2xvc2UgaXQuXG4gICAgICAgICAgICBtYXhXaW5kb3dTaXplIDw9ICsrcmVjb3JkLnNlZW4gJiYgY2xvc2VXaW5kb3cocmVjb3JkKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gQ29tcGxldGUgdGhlIHdpbmRvd3MgYW5kIHRoZSBkb3duc3RyZWFtIHN1YnNjcmliZXIgYW5kIGNsZWFuIHVwLlxuICAgICAgICAoKSA9PiB0ZXJtaW5hdGUoKGNvbnN1bWVyKSA9PiBjb25zdW1lci5jb21wbGV0ZSgpKSxcbiAgICAgICAgLy8gTm90aWZ5IHRoZSB3aW5kb3dzIGFuZCB0aGUgZG93bnN0cmVhbSBzdWJzY3JpYmVyIG9mIHRoZSBlcnJvciBhbmQgY2xlYW4gdXAuXG4gICAgICAgIChlcnIpID0+IHRlcm1pbmF0ZSgoY29uc3VtZXIpID0+IGNvbnN1bWVyLmVycm9yKGVycikpXG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIEFkZGl0aW9uYWwgZmluYWxpemF0aW9uLiBUaGlzIHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlXG4gICAgLy8gZGVzdGluYXRpb24gdGVhcnMgZG93bi4gT3RoZXIgZmluYWxpemF0aW9ucyBhcmUgcmVnaXN0ZXJlZCBpbXBsaWNpdGx5XG4gICAgLy8gYWJvdmUgdmlhIHN1YnNjcmlwdGlvbi5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIGJ1ZmZlciBpcyByZWxlYXNlZC5cbiAgICAgIHdpbmRvd1JlY29yZHMgPSBudWxsITtcbiAgICB9O1xuICB9KTtcbn1cblxuaW50ZXJmYWNlIFdpbmRvd1JlY29yZDxUPiB7XG4gIHNlZW46IG51bWJlcjtcbiAgd2luZG93OiBTdWJqZWN0PFQ+O1xuICBzdWJzOiBTdWJzY3JpcHRpb247XG59XG4iLCAiaW1wb3J0IHsgU3Vic2NyaWJlciB9IGZyb20gJy4uL1N1YnNjcmliZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL09ic2VydmFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJy4uL1N1YmplY3QnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0LCBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgb3BlcmF0ZSB9IGZyb20gJy4uL3V0aWwvbGlmdCc7XG5pbXBvcnQgeyBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgfSBmcm9tICcuL09wZXJhdG9yU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBpbm5lckZyb20gfSBmcm9tICcuLi9vYnNlcnZhYmxlL2lubmVyRnJvbSc7XG5cbi8qKlxuICogQnJhbmNoIG91dCB0aGUgc291cmNlIE9ic2VydmFibGUgdmFsdWVzIGFzIGEgbmVzdGVkIE9ic2VydmFibGUgdXNpbmcgYVxuICogZmFjdG9yeSBmdW5jdGlvbiBvZiBjbG9zaW5nIE9ic2VydmFibGVzIHRvIGRldGVybWluZSB3aGVuIHRvIHN0YXJ0IGEgbmV3XG4gKiB3aW5kb3cuXG4gKlxuICogPHNwYW4gY2xhc3M9XCJpbmZvcm1hbFwiPkl0J3MgbGlrZSB7QGxpbmsgYnVmZmVyV2hlbn0sIGJ1dCBlbWl0cyBhIG5lc3RlZFxuICogT2JzZXJ2YWJsZSBpbnN0ZWFkIG9mIGFuIGFycmF5Ljwvc3Bhbj5cbiAqXG4gKiAhW10od2luZG93V2hlbi5wbmcpXG4gKlxuICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2luZG93cyBvZiBpdGVtcyBpdCBjb2xsZWN0cyBmcm9tIHRoZSBzb3VyY2VcbiAqIE9ic2VydmFibGUuIFRoZSBvdXRwdXQgT2JzZXJ2YWJsZSBlbWl0cyBjb25uZWN0ZWQsIG5vbi1vdmVybGFwcGluZyB3aW5kb3dzLlxuICogSXQgZW1pdHMgdGhlIGN1cnJlbnQgd2luZG93IGFuZCBvcGVucyBhIG5ldyBvbmUgd2hlbmV2ZXIgdGhlIE9ic2VydmFibGVcbiAqIHByb2R1Y2VkIGJ5IHRoZSBzcGVjaWZpZWQgYGNsb3NpbmdTZWxlY3RvcmAgZnVuY3Rpb24gZW1pdHMgYW4gaXRlbS4gVGhlIGZpcnN0XG4gKiB3aW5kb3cgaXMgb3BlbmVkIGltbWVkaWF0ZWx5IHdoZW4gc3Vic2NyaWJpbmcgdG8gdGhlIG91dHB1dCBPYnNlcnZhYmxlLlxuICpcbiAqICMjIEV4YW1wbGVcbiAqXG4gKiBFbWl0IG9ubHkgdGhlIGZpcnN0IHR3byBjbGlja3MgZXZlbnRzIGluIGV2ZXJ5IHdpbmRvdyBvZiBbMS01XSByYW5kb20gc2Vjb25kc1xuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBmcm9tRXZlbnQsIHdpbmRvd1doZW4sIGludGVydmFsLCBtYXAsIHRha2UsIG1lcmdlQWxsIH0gZnJvbSAncnhqcyc7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IHJlc3VsdCA9IGNsaWNrcy5waXBlKFxuICogICB3aW5kb3dXaGVuKCgpID0+IGludGVydmFsKDEwMDAgKyBNYXRoLnJhbmRvbSgpICogNDAwMCkpLFxuICogICBtYXAod2luID0+IHdpbi5waXBlKHRha2UoMikpKSwgLy8gdGFrZSBhdCBtb3N0IDIgZW1pc3Npb25zIGZyb20gZWFjaCB3aW5kb3dcbiAqICAgbWVyZ2VBbGwoKSAgICAgICAgICAgICAgICAgICAgIC8vIGZsYXR0ZW4gdGhlIE9ic2VydmFibGUtb2YtT2JzZXJ2YWJsZXNcbiAqICk7XG4gKiByZXN1bHQuc3Vic2NyaWJlKHggPT4gY29uc29sZS5sb2coeCkpO1xuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgd2luZG93fVxuICogQHNlZSB7QGxpbmsgd2luZG93Q291bnR9XG4gKiBAc2VlIHtAbGluayB3aW5kb3dUaW1lfVxuICogQHNlZSB7QGxpbmsgd2luZG93VG9nZ2xlfVxuICogQHNlZSB7QGxpbmsgYnVmZmVyV2hlbn1cbiAqXG4gKiBAcGFyYW0gY2xvc2luZ1NlbGVjdG9yIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBubyBhcmd1bWVudHMgYW5kIHJldHVybnMgYW5cbiAqIHtAbGluayBPYnNlcnZhYmxlSW5wdXR9ICh0aGF0IGdldHMgY29udmVydGVkIHRvIE9ic2VydmFibGUpIHRoYXQgc2lnbmFsc1xuICogKG9uIGVpdGhlciBgbmV4dGAgb3IgYGNvbXBsZXRlYCkgd2hlbiB0byBjbG9zZSB0aGUgcHJldmlvdXMgd2luZG93IGFuZFxuICogc3RhcnQgYSBuZXcgb25lLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIG9mIHdpbmRvd3MsIHdoaWNoIGluIHR1cm4gYXJlXG4gKiBPYnNlcnZhYmxlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpbmRvd1doZW48VD4oY2xvc2luZ1NlbGVjdG9yOiAoKSA9PiBPYnNlcnZhYmxlSW5wdXQ8YW55Pik6IE9wZXJhdG9yRnVuY3Rpb248VCwgT2JzZXJ2YWJsZTxUPj4ge1xuICByZXR1cm4gb3BlcmF0ZSgoc291cmNlLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgbGV0IHdpbmRvdzogU3ViamVjdDxUPiB8IG51bGw7XG4gICAgbGV0IGNsb3NpbmdTdWJzY3JpYmVyOiBTdWJzY3JpYmVyPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHdlIGdldCBhbiBlcnJvciwgd2UgaGF2ZSB0byBub3RpZnkgYm90aCB0aGVcbiAgICAgKiBkZXN0aW5hdGlvbiBzdWJzY3JpYmVyIGFuZCB0aGUgd2luZG93LlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUVycm9yID0gKGVycjogYW55KSA9PiB7XG4gICAgICB3aW5kb3chLmVycm9yKGVycik7XG4gICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENhbGxlZCBldmVyeSB0aW1lIHdlIG5lZWQgdG8gb3BlbiBhIHdpbmRvdy5cbiAgICAgKiBSZWN1cnNpdmUsIGFzIGl0IHdpbGwgc3RhcnQgdGhlIGNsb3Npbmcgbm90aWZpZXIsIHdoaWNoXG4gICAgICogaW5ldml0YWJseSAqc2hvdWxkKiBjYWxsIG9wZW5XaW5kb3cgLS0gYnV0IG1heSBub3QgaWZcbiAgICAgKiBpdCBpcyBhIFwibmV2ZXJcIiBvYnNlcnZhYmxlLlxuICAgICAqL1xuICAgIGNvbnN0IG9wZW5XaW5kb3cgPSAoKSA9PiB7XG4gICAgICAvLyBXZSBuZWVkIHRvIGNsZWFuIHVwIG91ciBjbG9zaW5nIHN1YnNjcmlwdGlvbixcbiAgICAgIC8vIHdlIG9ubHkgY2FyZWQgYWJvdXQgdGhlIGZpcnN0IG5leHQgb3IgY29tcGxldGUgbm90aWZpY2F0aW9uLlxuICAgICAgY2xvc2luZ1N1YnNjcmliZXI/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgIC8vIENsb3NlIG91ciB3aW5kb3cgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9uZS5cbiAgICAgIHdpbmRvdz8uY29tcGxldGUoKTtcblxuICAgICAgLy8gU3RhcnQgdGhlIG5ldyB3aW5kb3cuXG4gICAgICB3aW5kb3cgPSBuZXcgU3ViamVjdDxUPigpO1xuICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvdy5hc09ic2VydmFibGUoKSk7XG5cbiAgICAgIC8vIEdldCBvdXIgY2xvc2luZyBub3RpZmllci5cbiAgICAgIGxldCBjbG9zaW5nTm90aWZpZXI6IE9ic2VydmFibGU8YW55PjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNsb3NpbmdOb3RpZmllciA9IGlubmVyRnJvbShjbG9zaW5nU2VsZWN0b3IoKSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIGNsb3Npbmcgbm90aWZpZXIsIGJlIHN1cmVcbiAgICAgIC8vIHRvIGNhcHR1cmUgdGhlIHN1YnNjcmliZXIgKGFrYSBTdWJzY3JpcHRpb24pXG4gICAgICAvLyBzbyB3ZSBjYW4gY2xlYW4gaXQgdXAgd2hlbiB3ZSBjbG9zZSB0aGUgd2luZG93XG4gICAgICAvLyBhbmQgb3BlbiBhIG5ldyBvbmUuXG4gICAgICBjbG9zaW5nTm90aWZpZXIuc3Vic2NyaWJlKChjbG9zaW5nU3Vic2NyaWJlciA9IGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBvcGVuV2luZG93LCBvcGVuV2luZG93LCBoYW5kbGVFcnJvcikpKTtcbiAgICB9O1xuXG4gICAgLy8gU3RhcnQgdGhlIGZpcnN0IHdpbmRvdy5cbiAgICBvcGVuV2luZG93KCk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIHNvdXJjZVxuICAgIHNvdXJjZS5zdWJzY3JpYmUoXG4gICAgICBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoXG4gICAgICAgIHN1YnNjcmliZXIsXG4gICAgICAgICh2YWx1ZSkgPT4gd2luZG93IS5uZXh0KHZhbHVlKSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIC8vIFRoZSBzb3VyY2UgY29tcGxldGVkLCBjbG9zZSB0aGUgd2luZG93IGFuZCBjb21wbGV0ZS5cbiAgICAgICAgICB3aW5kb3chLmNvbXBsZXRlKCk7XG4gICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9LFxuICAgICAgICBoYW5kbGVFcnJvcixcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIC8vIEJlIHN1cmUgdG8gY2xlYW4gdXAgb3VyIGNsb3Npbmcgc3Vic2NyaXB0aW9uXG4gICAgICAgICAgLy8gd2hlbiB0aGlzIHRlYXJzIGRvd24uXG4gICAgICAgICAgY2xvc2luZ1N1YnNjcmliZXI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgd2luZG93ID0gbnVsbCE7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyB6aXAgfSBmcm9tICcuLi9vYnNlcnZhYmxlL3ppcCc7XG5pbXBvcnQgeyBqb2luQWxsSW50ZXJuYWxzIH0gZnJvbSAnLi9qb2luQWxsSW50ZXJuYWxzJztcblxuLyoqXG4gKiBDb2xsZWN0cyBhbGwgb2JzZXJ2YWJsZSBpbm5lciBzb3VyY2VzIGZyb20gdGhlIHNvdXJjZSwgb25jZSB0aGUgc291cmNlIGNvbXBsZXRlcyxcbiAqIGl0IHdpbGwgc3Vic2NyaWJlIHRvIGFsbCBpbm5lciBzb3VyY2VzLCBjb21iaW5pbmcgdGhlaXIgdmFsdWVzIGJ5IGluZGV4IGFuZCBlbWl0dGluZ1xuICogdGhlbS5cbiAqXG4gKiBAc2VlIHtAbGluayB6aXBXaXRofVxuICogQHNlZSB7QGxpbmsgemlwfVxuICovXG5leHBvcnQgZnVuY3Rpb24gemlwQWxsPFQ+KCk6IE9wZXJhdG9yRnVuY3Rpb248T2JzZXJ2YWJsZUlucHV0PFQ+LCBUW10+O1xuZXhwb3J0IGZ1bmN0aW9uIHppcEFsbDxUPigpOiBPcGVyYXRvckZ1bmN0aW9uPGFueSwgVFtdPjtcbmV4cG9ydCBmdW5jdGlvbiB6aXBBbGw8VCwgUj4ocHJvamVjdDogKC4uLnZhbHVlczogVFtdKSA9PiBSKTogT3BlcmF0b3JGdW5jdGlvbjxPYnNlcnZhYmxlSW5wdXQ8VD4sIFI+O1xuZXhwb3J0IGZ1bmN0aW9uIHppcEFsbDxSPihwcm9qZWN0OiAoLi4udmFsdWVzOiBBcnJheTxhbnk+KSA9PiBSKTogT3BlcmF0b3JGdW5jdGlvbjxhbnksIFI+O1xuXG5leHBvcnQgZnVuY3Rpb24gemlwQWxsPFQsIFI+KHByb2plY3Q/OiAoLi4udmFsdWVzOiBUW10pID0+IFIpIHtcbiAgcmV0dXJuIGpvaW5BbGxJbnRlcm5hbHMoemlwLCBwcm9qZWN0KTtcbn1cbiIsICIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIZXJlIHdlIG5lZWQgdG8gcmVmZXJlbmNlIG91ciBvdGhlciBkZWVwIGltcG9ydHNcbi8vIHNvIFZTIGNvZGUgd2lsbCBmaWd1cmUgb3V0IHdoZXJlIHRoZXkgYXJlXG4vLyBzZWUgY29udmVyc2F0aW9uIGhlcmU6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzQzMDM0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vIHRzbGludDpkaXNhYmxlOiBuby1yZWZlcmVuY2Vcbi8vIEl0J3MgdGVtcHRpbmcgdG8gYWRkIHJlZmVyZW5jZXMgdG8gYWxsIG9mIHRoZSBkZWVwLWltcG9ydCBsb2NhdGlvbnMsIGJ1dFxuLy8gYWRkaW5nIHJlZmVyZW5jZXMgdG8gdGhvc2UgdGhhdCByZXF1aXJlIERPTSB0eXBlcyBicmVha3MgTm9kZSBwcm9qZWN0cy5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuL29wZXJhdG9ycy9pbmRleC50c1wiIC8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi90ZXN0aW5nL2luZGV4LnRzXCIgLz5cbi8vIHRzbGludDplbmFibGU6IG5vLXJlZmVyZW5jZVxuXG4vKiBPYnNlcnZhYmxlICovXG5leHBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi9pbnRlcm5hbC9PYnNlcnZhYmxlJztcbmV4cG9ydCB7IENvbm5lY3RhYmxlT2JzZXJ2YWJsZSB9IGZyb20gJy4vaW50ZXJuYWwvb2JzZXJ2YWJsZS9Db25uZWN0YWJsZU9ic2VydmFibGUnO1xuZXhwb3J0IHsgR3JvdXBlZE9ic2VydmFibGUgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9ncm91cEJ5JztcbmV4cG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi9pbnRlcm5hbC9PcGVyYXRvcic7XG5leHBvcnQgeyBvYnNlcnZhYmxlIH0gZnJvbSAnLi9pbnRlcm5hbC9zeW1ib2wvb2JzZXJ2YWJsZSc7XG5leHBvcnQgeyBhbmltYXRpb25GcmFtZXMgfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvZG9tL2FuaW1hdGlvbkZyYW1lcyc7XG5cbi8qIFN1YmplY3RzICovXG5leHBvcnQgeyBTdWJqZWN0IH0gZnJvbSAnLi9pbnRlcm5hbC9TdWJqZWN0JztcbmV4cG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJy4vaW50ZXJuYWwvQmVoYXZpb3JTdWJqZWN0JztcbmV4cG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICcuL2ludGVybmFsL1JlcGxheVN1YmplY3QnO1xuZXhwb3J0IHsgQXN5bmNTdWJqZWN0IH0gZnJvbSAnLi9pbnRlcm5hbC9Bc3luY1N1YmplY3QnO1xuXG4vKiBTY2hlZHVsZXJzICovXG5leHBvcnQgeyBhc2FwLCBhc2FwU2NoZWR1bGVyIH0gZnJvbSAnLi9pbnRlcm5hbC9zY2hlZHVsZXIvYXNhcCc7XG5leHBvcnQgeyBhc3luYywgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICcuL2ludGVybmFsL3NjaGVkdWxlci9hc3luYyc7XG5leHBvcnQgeyBxdWV1ZSwgcXVldWVTY2hlZHVsZXIgfSBmcm9tICcuL2ludGVybmFsL3NjaGVkdWxlci9xdWV1ZSc7XG5leHBvcnQgeyBhbmltYXRpb25GcmFtZSwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIgfSBmcm9tICcuL2ludGVybmFsL3NjaGVkdWxlci9hbmltYXRpb25GcmFtZSc7XG5leHBvcnQgeyBWaXJ0dWFsVGltZVNjaGVkdWxlciwgVmlydHVhbEFjdGlvbiB9IGZyb20gJy4vaW50ZXJuYWwvc2NoZWR1bGVyL1ZpcnR1YWxUaW1lU2NoZWR1bGVyJztcbmV4cG9ydCB7IFNjaGVkdWxlciB9IGZyb20gJy4vaW50ZXJuYWwvU2NoZWR1bGVyJztcblxuLyogU3Vic2NyaXB0aW9uICovXG5leHBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICcuL2ludGVybmFsL1N1YnNjcmlwdGlvbic7XG5leHBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAnLi9pbnRlcm5hbC9TdWJzY3JpYmVyJztcblxuLyogTm90aWZpY2F0aW9uICovXG5leHBvcnQgeyBOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvbktpbmQgfSBmcm9tICcuL2ludGVybmFsL05vdGlmaWNhdGlvbic7XG5cbi8qIFV0aWxzICovXG5leHBvcnQgeyBwaXBlIH0gZnJvbSAnLi9pbnRlcm5hbC91dGlsL3BpcGUnO1xuZXhwb3J0IHsgbm9vcCB9IGZyb20gJy4vaW50ZXJuYWwvdXRpbC9ub29wJztcbmV4cG9ydCB7IGlkZW50aXR5IH0gZnJvbSAnLi9pbnRlcm5hbC91dGlsL2lkZW50aXR5JztcbmV4cG9ydCB7IGlzT2JzZXJ2YWJsZSB9IGZyb20gJy4vaW50ZXJuYWwvdXRpbC9pc09ic2VydmFibGUnO1xuXG4vKiBQcm9taXNlIENvbnZlcnNpb24gKi9cbmV4cG9ydCB7IGxhc3RWYWx1ZUZyb20gfSBmcm9tICcuL2ludGVybmFsL2xhc3RWYWx1ZUZyb20nO1xuZXhwb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICcuL2ludGVybmFsL2ZpcnN0VmFsdWVGcm9tJztcblxuLyogRXJyb3IgdHlwZXMgKi9cbmV4cG9ydCB7IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yIH0gZnJvbSAnLi9pbnRlcm5hbC91dGlsL0FyZ3VtZW50T3V0T2ZSYW5nZUVycm9yJztcbmV4cG9ydCB7IEVtcHR5RXJyb3IgfSBmcm9tICcuL2ludGVybmFsL3V0aWwvRW1wdHlFcnJvcic7XG5leHBvcnQgeyBOb3RGb3VuZEVycm9yIH0gZnJvbSAnLi9pbnRlcm5hbC91dGlsL05vdEZvdW5kRXJyb3InO1xuZXhwb3J0IHsgT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IgfSBmcm9tICcuL2ludGVybmFsL3V0aWwvT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3InO1xuZXhwb3J0IHsgU2VxdWVuY2VFcnJvciB9IGZyb20gJy4vaW50ZXJuYWwvdXRpbC9TZXF1ZW5jZUVycm9yJztcbmV4cG9ydCB7IFRpbWVvdXRFcnJvciB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVvdXQnO1xuZXhwb3J0IHsgVW5zdWJzY3JpcHRpb25FcnJvciB9IGZyb20gJy4vaW50ZXJuYWwvdXRpbC9VbnN1YnNjcmlwdGlvbkVycm9yJztcblxuLyogU3RhdGljIG9ic2VydmFibGUgY3JlYXRpb24gZXhwb3J0cyAqL1xuZXhwb3J0IHsgYmluZENhbGxiYWNrIH0gZnJvbSAnLi9pbnRlcm5hbC9vYnNlcnZhYmxlL2JpbmRDYWxsYmFjayc7XG5leHBvcnQgeyBiaW5kTm9kZUNhbGxiYWNrIH0gZnJvbSAnLi9pbnRlcm5hbC9vYnNlcnZhYmxlL2JpbmROb2RlQ2FsbGJhY2snO1xuZXhwb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJy4vaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb21iaW5lTGF0ZXN0JztcbmV4cG9ydCB7IGNvbmNhdCB9IGZyb20gJy4vaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb25jYXQnO1xuZXhwb3J0IHsgY29ubmVjdGFibGUgfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvY29ubmVjdGFibGUnO1xuZXhwb3J0IHsgZGVmZXIgfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvZGVmZXInO1xuZXhwb3J0IHsgZW1wdHkgfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvZW1wdHknO1xuZXhwb3J0IHsgZm9ya0pvaW4gfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvZm9ya0pvaW4nO1xuZXhwb3J0IHsgZnJvbSB9IGZyb20gJy4vaW50ZXJuYWwvb2JzZXJ2YWJsZS9mcm9tJztcbmV4cG9ydCB7IGZyb21FdmVudCB9IGZyb20gJy4vaW50ZXJuYWwvb2JzZXJ2YWJsZS9mcm9tRXZlbnQnO1xuZXhwb3J0IHsgZnJvbUV2ZW50UGF0dGVybiB9IGZyb20gJy4vaW50ZXJuYWwvb2JzZXJ2YWJsZS9mcm9tRXZlbnRQYXR0ZXJuJztcbmV4cG9ydCB7IGdlbmVyYXRlIH0gZnJvbSAnLi9pbnRlcm5hbC9vYnNlcnZhYmxlL2dlbmVyYXRlJztcbmV4cG9ydCB7IGlpZiB9IGZyb20gJy4vaW50ZXJuYWwvb2JzZXJ2YWJsZS9paWYnO1xuZXhwb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvaW50ZXJ2YWwnO1xuZXhwb3J0IHsgbWVyZ2UgfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvbWVyZ2UnO1xuZXhwb3J0IHsgbmV2ZXIgfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvbmV2ZXInO1xuZXhwb3J0IHsgb2YgfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvb2YnO1xuZXhwb3J0IHsgb25FcnJvclJlc3VtZU5leHQgfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvb25FcnJvclJlc3VtZU5leHQnO1xuZXhwb3J0IHsgcGFpcnMgfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvcGFpcnMnO1xuZXhwb3J0IHsgcGFydGl0aW9uIH0gZnJvbSAnLi9pbnRlcm5hbC9vYnNlcnZhYmxlL3BhcnRpdGlvbic7XG5leHBvcnQgeyByYWNlIH0gZnJvbSAnLi9pbnRlcm5hbC9vYnNlcnZhYmxlL3JhY2UnO1xuZXhwb3J0IHsgcmFuZ2UgfSBmcm9tICcuL2ludGVybmFsL29ic2VydmFibGUvcmFuZ2UnO1xuZXhwb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gJy4vaW50ZXJuYWwvb2JzZXJ2YWJsZS90aHJvd0Vycm9yJztcbmV4cG9ydCB7IHRpbWVyIH0gZnJvbSAnLi9pbnRlcm5hbC9vYnNlcnZhYmxlL3RpbWVyJztcbmV4cG9ydCB7IHVzaW5nIH0gZnJvbSAnLi9pbnRlcm5hbC9vYnNlcnZhYmxlL3VzaW5nJztcbmV4cG9ydCB7IHppcCB9IGZyb20gJy4vaW50ZXJuYWwvb2JzZXJ2YWJsZS96aXAnO1xuZXhwb3J0IHsgc2NoZWR1bGVkIH0gZnJvbSAnLi9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVkJztcblxuLyogQ29uc3RhbnRzICovXG5leHBvcnQgeyBFTVBUWSB9IGZyb20gJy4vaW50ZXJuYWwvb2JzZXJ2YWJsZS9lbXB0eSc7XG5leHBvcnQgeyBORVZFUiB9IGZyb20gJy4vaW50ZXJuYWwvb2JzZXJ2YWJsZS9uZXZlcic7XG5cbi8qIFR5cGVzICovXG5leHBvcnQgKiBmcm9tICcuL2ludGVybmFsL3R5cGVzJztcblxuLyogQ29uZmlnICovXG5leHBvcnQgeyBjb25maWcsIEdsb2JhbENvbmZpZyB9IGZyb20gJy4vaW50ZXJuYWwvY29uZmlnJztcblxuLyogT3BlcmF0b3JzICovXG5leHBvcnQgeyBhdWRpdCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2F1ZGl0JztcbmV4cG9ydCB7IGF1ZGl0VGltZSB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2F1ZGl0VGltZSc7XG5leHBvcnQgeyBidWZmZXIgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXInO1xuZXhwb3J0IHsgYnVmZmVyQ291bnQgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJDb3VudCc7XG5leHBvcnQgeyBidWZmZXJUaW1lIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyVGltZSc7XG5leHBvcnQgeyBidWZmZXJUb2dnbGUgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJUb2dnbGUnO1xuZXhwb3J0IHsgYnVmZmVyV2hlbiB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlcldoZW4nO1xuZXhwb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2NhdGNoRXJyb3InO1xuZXhwb3J0IHsgY29tYmluZUFsbCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVBbGwnO1xuZXhwb3J0IHsgY29tYmluZUxhdGVzdEFsbCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVMYXRlc3RBbGwnO1xuZXhwb3J0IHsgY29tYmluZUxhdGVzdFdpdGggfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0V2l0aCc7XG5leHBvcnQgeyBjb25jYXRBbGwgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRBbGwnO1xuZXhwb3J0IHsgY29uY2F0TWFwIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvY29uY2F0TWFwJztcbmV4cG9ydCB7IGNvbmNhdE1hcFRvIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvY29uY2F0TWFwVG8nO1xuZXhwb3J0IHsgY29uY2F0V2l0aCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdFdpdGgnO1xuZXhwb3J0IHsgY29ubmVjdCwgQ29ubmVjdENvbmZpZyB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2Nvbm5lY3QnO1xuZXhwb3J0IHsgY291bnQgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9jb3VudCc7XG5leHBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2RlYm91bmNlJztcbmV4cG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2RlYm91bmNlVGltZSc7XG5leHBvcnQgeyBkZWZhdWx0SWZFbXB0eSB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2RlZmF1bHRJZkVtcHR5JztcbmV4cG9ydCB7IGRlbGF5IH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvZGVsYXknO1xuZXhwb3J0IHsgZGVsYXlXaGVuIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvZGVsYXlXaGVuJztcbmV4cG9ydCB7IGRlbWF0ZXJpYWxpemUgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9kZW1hdGVyaWFsaXplJztcbmV4cG9ydCB7IGRpc3RpbmN0IH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3QnO1xuZXhwb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9kaXN0aW5jdFVudGlsQ2hhbmdlZCc7XG5leHBvcnQgeyBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2Rpc3RpbmN0VW50aWxLZXlDaGFuZ2VkJztcbmV4cG9ydCB7IGVsZW1lbnRBdCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2VsZW1lbnRBdCc7XG5leHBvcnQgeyBlbmRXaXRoIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvZW5kV2l0aCc7XG5leHBvcnQgeyBldmVyeSB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2V2ZXJ5JztcbmV4cG9ydCB7IGV4aGF1c3QgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0JztcbmV4cG9ydCB7IGV4aGF1c3RBbGwgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0QWxsJztcbmV4cG9ydCB7IGV4aGF1c3RNYXAgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0TWFwJztcbmV4cG9ydCB7IGV4cGFuZCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2V4cGFuZCc7XG5leHBvcnQgeyBmaWx0ZXIgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9maWx0ZXInO1xuZXhwb3J0IHsgZmluYWxpemUgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9maW5hbGl6ZSc7XG5leHBvcnQgeyBmaW5kIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvZmluZCc7XG5leHBvcnQgeyBmaW5kSW5kZXggfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9maW5kSW5kZXgnO1xuZXhwb3J0IHsgZmlyc3QgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9maXJzdCc7XG5leHBvcnQgeyBncm91cEJ5LCBCYXNpY0dyb3VwQnlPcHRpb25zLCBHcm91cEJ5T3B0aW9uc1dpdGhFbGVtZW50IH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvZ3JvdXBCeSc7XG5leHBvcnQgeyBpZ25vcmVFbGVtZW50cyB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2lnbm9yZUVsZW1lbnRzJztcbmV4cG9ydCB7IGlzRW1wdHkgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9pc0VtcHR5JztcbmV4cG9ydCB7IGxhc3QgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9sYXN0JztcbmV4cG9ydCB7IG1hcCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL21hcCc7XG5leHBvcnQgeyBtYXBUbyB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL21hcFRvJztcbmV4cG9ydCB7IG1hdGVyaWFsaXplIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvbWF0ZXJpYWxpemUnO1xuZXhwb3J0IHsgbWF4IH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvbWF4JztcbmV4cG9ydCB7IG1lcmdlQWxsIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VBbGwnO1xuZXhwb3J0IHsgZmxhdE1hcCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL2ZsYXRNYXAnO1xuZXhwb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZU1hcCc7XG5leHBvcnQgeyBtZXJnZU1hcFRvIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VNYXBUbyc7XG5leHBvcnQgeyBtZXJnZVNjYW4gfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZVNjYW4nO1xuZXhwb3J0IHsgbWVyZ2VXaXRoIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VXaXRoJztcbmV4cG9ydCB7IG1pbiB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL21pbic7XG5leHBvcnQgeyBtdWx0aWNhc3QgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9tdWx0aWNhc3QnO1xuZXhwb3J0IHsgb2JzZXJ2ZU9uIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvb2JzZXJ2ZU9uJztcbmV4cG9ydCB7IG9uRXJyb3JSZXN1bWVOZXh0V2l0aCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL29uRXJyb3JSZXN1bWVOZXh0V2l0aCc7XG5leHBvcnQgeyBwYWlyd2lzZSB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3BhaXJ3aXNlJztcbmV4cG9ydCB7IHBsdWNrIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvcGx1Y2snO1xuZXhwb3J0IHsgcHVibGlzaCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2gnO1xuZXhwb3J0IHsgcHVibGlzaEJlaGF2aW9yIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaEJlaGF2aW9yJztcbmV4cG9ydCB7IHB1Ymxpc2hMYXN0IH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaExhc3QnO1xuZXhwb3J0IHsgcHVibGlzaFJlcGxheSB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hSZXBsYXknO1xuZXhwb3J0IHsgcmFjZVdpdGggfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9yYWNlV2l0aCc7XG5leHBvcnQgeyByZWR1Y2UgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9yZWR1Y2UnO1xuZXhwb3J0IHsgcmVwZWF0LCBSZXBlYXRDb25maWcgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9yZXBlYXQnO1xuZXhwb3J0IHsgcmVwZWF0V2hlbiB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdFdoZW4nO1xuZXhwb3J0IHsgcmV0cnksIFJldHJ5Q29uZmlnIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvcmV0cnknO1xuZXhwb3J0IHsgcmV0cnlXaGVuIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvcmV0cnlXaGVuJztcbmV4cG9ydCB7IHJlZkNvdW50IH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvcmVmQ291bnQnO1xuZXhwb3J0IHsgc2FtcGxlIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlJztcbmV4cG9ydCB7IHNhbXBsZVRpbWUgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9zYW1wbGVUaW1lJztcbmV4cG9ydCB7IHNjYW4gfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9zY2FuJztcbmV4cG9ydCB7IHNlcXVlbmNlRXF1YWwgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9zZXF1ZW5jZUVxdWFsJztcbmV4cG9ydCB7IHNoYXJlLCBTaGFyZUNvbmZpZyB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3NoYXJlJztcbmV4cG9ydCB7IHNoYXJlUmVwbGF5LCBTaGFyZVJlcGxheUNvbmZpZyB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3NoYXJlUmVwbGF5JztcbmV4cG9ydCB7IHNpbmdsZSB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3NpbmdsZSc7XG5leHBvcnQgeyBza2lwIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvc2tpcCc7XG5leHBvcnQgeyBza2lwTGFzdCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBMYXN0JztcbmV4cG9ydCB7IHNraXBVbnRpbCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBVbnRpbCc7XG5leHBvcnQgeyBza2lwV2hpbGUgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9za2lwV2hpbGUnO1xuZXhwb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvc3RhcnRXaXRoJztcbmV4cG9ydCB7IHN1YnNjcmliZU9uIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvc3Vic2NyaWJlT24nO1xuZXhwb3J0IHsgc3dpdGNoQWxsIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoQWxsJztcbmV4cG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaE1hcCc7XG5leHBvcnQgeyBzd2l0Y2hNYXBUbyB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaE1hcFRvJztcbmV4cG9ydCB7IHN3aXRjaFNjYW4gfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hTY2FuJztcbmV4cG9ydCB7IHRha2UgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy90YWtlJztcbmV4cG9ydCB7IHRha2VMYXN0IH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZUxhc3QnO1xuZXhwb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZVVudGlsJztcbmV4cG9ydCB7IHRha2VXaGlsZSB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VXaGlsZSc7XG5leHBvcnQgeyB0YXAsIFRhcE9ic2VydmVyIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvdGFwJztcbmV4cG9ydCB7IHRocm90dGxlLCBUaHJvdHRsZUNvbmZpZyB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm90dGxlJztcbmV4cG9ydCB7IHRocm90dGxlVGltZSB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm90dGxlVGltZSc7XG5leHBvcnQgeyB0aHJvd0lmRW1wdHkgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy90aHJvd0lmRW1wdHknO1xuZXhwb3J0IHsgdGltZUludGVydmFsIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZUludGVydmFsJztcbmV4cG9ydCB7IHRpbWVvdXQsIFRpbWVvdXRDb25maWcsIFRpbWVvdXRJbmZvIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZW91dCc7XG5leHBvcnQgeyB0aW1lb3V0V2l0aCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVvdXRXaXRoJztcbmV4cG9ydCB7IHRpbWVzdGFtcCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVzdGFtcCc7XG5leHBvcnQgeyB0b0FycmF5IH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvdG9BcnJheSc7XG5leHBvcnQgeyB3aW5kb3cgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3cnO1xuZXhwb3J0IHsgd2luZG93Q291bnQgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dDb3VudCc7XG5leHBvcnQgeyB3aW5kb3dUaW1lIH0gZnJvbSAnLi9pbnRlcm5hbC9vcGVyYXRvcnMvd2luZG93VGltZSc7XG5leHBvcnQgeyB3aW5kb3dUb2dnbGUgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dUb2dnbGUnO1xuZXhwb3J0IHsgd2luZG93V2hlbiB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1doZW4nO1xuZXhwb3J0IHsgd2l0aExhdGVzdEZyb20gfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy93aXRoTGF0ZXN0RnJvbSc7XG5leHBvcnQgeyB6aXBBbGwgfSBmcm9tICcuL2ludGVybmFsL29wZXJhdG9ycy96aXBBbGwnO1xuZXhwb3J0IHsgemlwV2l0aCB9IGZyb20gJy4vaW50ZXJuYWwvb3BlcmF0b3JzL3ppcFdpdGgnO1xuIiwgImltcG9ydCB7IG5vdCB9IGZyb20gJy4uL3V0aWwvbm90JztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJy4vZmlsdGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9PYnNlcnZhYmxlJztcbmltcG9ydCB7IFVuYXJ5RnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogU3BsaXRzIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBpbnRvIHR3bywgb25lIHdpdGggdmFsdWVzIHRoYXQgc2F0aXNmeSBhXG4gKiBwcmVkaWNhdGUsIGFuZCBhbm90aGVyIHdpdGggdmFsdWVzIHRoYXQgZG9uJ3Qgc2F0aXNmeSB0aGUgcHJlZGljYXRlLlxuICpcbiAqIDxzcGFuIGNsYXNzPVwiaW5mb3JtYWxcIj5JdCdzIGxpa2Uge0BsaW5rIGZpbHRlcn0sIGJ1dCByZXR1cm5zIHR3byBPYnNlcnZhYmxlczpcbiAqIG9uZSBsaWtlIHRoZSBvdXRwdXQgb2Yge0BsaW5rIGZpbHRlcn0sIGFuZCB0aGUgb3RoZXIgd2l0aCB2YWx1ZXMgdGhhdCBkaWQgbm90XG4gKiBwYXNzIHRoZSBjb25kaXRpb24uPC9zcGFuPlxuICpcbiAqICFbXShwYXJ0aXRpb24ucG5nKVxuICpcbiAqIGBwYXJ0aXRpb25gIG91dHB1dHMgYW4gYXJyYXkgd2l0aCB0d28gT2JzZXJ2YWJsZXMgdGhhdCBwYXJ0aXRpb24gdGhlIHZhbHVlc1xuICogZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUgdGhyb3VnaCB0aGUgZ2l2ZW4gYHByZWRpY2F0ZWAgZnVuY3Rpb24uIFRoZSBmaXJzdFxuICogT2JzZXJ2YWJsZSBpbiB0aGF0IGFycmF5IGVtaXRzIHNvdXJjZSB2YWx1ZXMgZm9yIHdoaWNoIHRoZSBwcmVkaWNhdGUgYXJndW1lbnRcbiAqIHJldHVybnMgdHJ1ZS4gVGhlIHNlY29uZCBPYnNlcnZhYmxlIGVtaXRzIHNvdXJjZSB2YWx1ZXMgZm9yIHdoaWNoIHRoZVxuICogcHJlZGljYXRlIHJldHVybnMgZmFsc2UuIFRoZSBmaXJzdCBiZWhhdmVzIGxpa2Uge0BsaW5rIGZpbHRlcn0gYW5kIHRoZSBzZWNvbmRcbiAqIGJlaGF2ZXMgbGlrZSB7QGxpbmsgZmlsdGVyfSB3aXRoIHRoZSBwcmVkaWNhdGUgbmVnYXRlZC5cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICogUGFydGl0aW9uIGNsaWNrIGV2ZW50cyBpbnRvIHRob3NlIG9uIERJViBlbGVtZW50cyBhbmQgdGhvc2UgZWxzZXdoZXJlXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuICogaW1wb3J0IHsgcGFydGl0aW9uIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuICpcbiAqIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICogZGl2LnN0eWxlLmNzc1RleHQgPSAnd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kOiAjMDljOyc7XG4gKiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XG4gKlxuICogY29uc3QgY2xpY2tzID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKTtcbiAqIGNvbnN0IFtjbGlja3NPbkRpdnMsIGNsaWNrc0Vsc2V3aGVyZV0gPSBjbGlja3MucGlwZShwYXJ0aXRpb24oZXYgPT4gKDxIVE1MRWxlbWVudD5ldi50YXJnZXQpLnRhZ05hbWUgPT09ICdESVYnKSk7XG4gKlxuICogY2xpY2tzT25EaXZzLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKCdESVYgY2xpY2tlZDogJywgeCkpO1xuICogY2xpY2tzRWxzZXdoZXJlLnN1YnNjcmliZSh4ID0+IGNvbnNvbGUubG9nKCdPdGhlciBjbGlja2VkOiAnLCB4KSk7XG4gKiBgYGBcbiAqXG4gKiBAc2VlIHtAbGluayBmaWx0ZXJ9XG4gKlxuICogQHBhcmFtIHByZWRpY2F0ZSBBIGZ1bmN0aW9uIHRoYXQgZXZhbHVhdGVzIGVhY2ggdmFsdWUgZW1pdHRlZCBieSB0aGUgc291cmNlXG4gKiBPYnNlcnZhYmxlLiBJZiBpdCByZXR1cm5zIGB0cnVlYCwgdGhlIHZhbHVlIGlzIGVtaXR0ZWQgb24gdGhlIGZpcnN0IE9ic2VydmFibGVcbiAqIGluIHRoZSByZXR1cm5lZCBhcnJheSwgaWYgYGZhbHNlYCB0aGUgdmFsdWUgaXMgZW1pdHRlZCBvbiB0aGUgc2Vjb25kIE9ic2VydmFibGVcbiAqIGluIHRoZSBhcnJheS4gVGhlIGBpbmRleGAgcGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgYGlgIGZvciB0aGUgaS10aCBzb3VyY2VcbiAqIGVtaXNzaW9uIHRoYXQgaGFzIGhhcHBlbmVkIHNpbmNlIHRoZSBzdWJzY3JpcHRpb24sIHN0YXJ0aW5nIGZyb20gdGhlIG51bWJlciBgMGAuXG4gKiBAcGFyYW0gdGhpc0FyZyBBbiBvcHRpb25hbCBhcmd1bWVudCB0byBkZXRlcm1pbmUgdGhlIHZhbHVlIG9mIGB0aGlzYCBpbiB0aGVcbiAqIGBwcmVkaWNhdGVgIGZ1bmN0aW9uLlxuICogQHJldHVybiBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBhcnJheSB3aXRoIHR3byBPYnNlcnZhYmxlczogb25lIHdpdGhcbiAqIHZhbHVlcyB0aGF0IHBhc3NlZCB0aGUgcHJlZGljYXRlLCBhbmQgYW5vdGhlciB3aXRoIHZhbHVlcyB0aGF0IGRpZCBub3QgcGFzc1xuICogdGhlIHByZWRpY2F0ZS5cbiAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIHdpdGggdGhlIHtAbGluayBwYXJ0aXRpb259IHN0YXRpYyBjcmVhdGlvbiBmdW5jdGlvbi4gV2lsbCBiZSByZW1vdmVkIGluIHY4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFydGl0aW9uPFQ+KFxuICBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gYm9vbGVhbixcbiAgdGhpc0FyZz86IGFueVxuKTogVW5hcnlGdW5jdGlvbjxPYnNlcnZhYmxlPFQ+LCBbT2JzZXJ2YWJsZTxUPiwgT2JzZXJ2YWJsZTxUPl0+IHtcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+XG4gICAgW2ZpbHRlcihwcmVkaWNhdGUsIHRoaXNBcmcpKHNvdXJjZSksIGZpbHRlcihub3QocHJlZGljYXRlLCB0aGlzQXJnKSkoc291cmNlKV0gYXMgW09ic2VydmFibGU8VD4sIE9ic2VydmFibGU8VD5dO1xufVxuIiwgIi8qIE9wZXJhdG9yIGV4cG9ydHMgKi9cbmV4cG9ydCB7IGF1ZGl0IH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2F1ZGl0JztcbmV4cG9ydCB7IGF1ZGl0VGltZSB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9hdWRpdFRpbWUnO1xuZXhwb3J0IHsgYnVmZmVyIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlcic7XG5leHBvcnQgeyBidWZmZXJDb3VudCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJDb3VudCc7XG5leHBvcnQgeyBidWZmZXJUaW1lIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlclRpbWUnO1xuZXhwb3J0IHsgYnVmZmVyVG9nZ2xlIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlclRvZ2dsZSc7XG5leHBvcnQgeyBidWZmZXJXaGVuIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlcldoZW4nO1xuZXhwb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9jYXRjaEVycm9yJztcbmV4cG9ydCB7IGNvbWJpbmVBbGwgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvY29tYmluZUFsbCc7XG5leHBvcnQgeyBjb21iaW5lTGF0ZXN0QWxsIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVMYXRlc3RBbGwnO1xuZXhwb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0JztcbmV4cG9ydCB7IGNvbWJpbmVMYXRlc3RXaXRoIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVMYXRlc3RXaXRoJztcbmV4cG9ydCB7IGNvbmNhdCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXQnO1xuZXhwb3J0IHsgY29uY2F0QWxsIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdEFsbCc7XG5leHBvcnQgeyBjb25jYXRNYXAgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvY29uY2F0TWFwJztcbmV4cG9ydCB7IGNvbmNhdE1hcFRvIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcFRvJztcbmV4cG9ydCB7IGNvbmNhdFdpdGggfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvY29uY2F0V2l0aCc7XG5leHBvcnQgeyBjb25uZWN0LCBDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2Nvbm5lY3QnO1xuZXhwb3J0IHsgY291bnQgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvY291bnQnO1xuZXhwb3J0IHsgZGVib3VuY2UgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2UnO1xuZXhwb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2RlYm91bmNlVGltZSc7XG5leHBvcnQgeyBkZWZhdWx0SWZFbXB0eSB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9kZWZhdWx0SWZFbXB0eSc7XG5leHBvcnQgeyBkZWxheSB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9kZWxheSc7XG5leHBvcnQgeyBkZWxheVdoZW4gfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvZGVsYXlXaGVuJztcbmV4cG9ydCB7IGRlbWF0ZXJpYWxpemUgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvZGVtYXRlcmlhbGl6ZSc7XG5leHBvcnQgeyBkaXN0aW5jdCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9kaXN0aW5jdCc7XG5leHBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9kaXN0aW5jdFVudGlsQ2hhbmdlZCc7XG5leHBvcnQgeyBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCc7XG5leHBvcnQgeyBlbGVtZW50QXQgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvZWxlbWVudEF0JztcbmV4cG9ydCB7IGVuZFdpdGggfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvZW5kV2l0aCc7XG5leHBvcnQgeyBldmVyeSB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9ldmVyeSc7XG5leHBvcnQgeyBleGhhdXN0IH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2V4aGF1c3QnO1xuZXhwb3J0IHsgZXhoYXVzdEFsbCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0QWxsJztcbmV4cG9ydCB7IGV4aGF1c3RNYXAgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvZXhoYXVzdE1hcCc7XG5leHBvcnQgeyBleHBhbmQgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvZXhwYW5kJztcbmV4cG9ydCB7IGZpbHRlciB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9maWx0ZXInO1xuZXhwb3J0IHsgZmluYWxpemUgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvZmluYWxpemUnO1xuZXhwb3J0IHsgZmluZCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9maW5kJztcbmV4cG9ydCB7IGZpbmRJbmRleCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9maW5kSW5kZXgnO1xuZXhwb3J0IHsgZmlyc3QgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvZmlyc3QnO1xuZXhwb3J0IHsgZ3JvdXBCeSwgQmFzaWNHcm91cEJ5T3B0aW9ucywgR3JvdXBCeU9wdGlvbnNXaXRoRWxlbWVudCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9ncm91cEJ5JztcbmV4cG9ydCB7IGlnbm9yZUVsZW1lbnRzIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2lnbm9yZUVsZW1lbnRzJztcbmV4cG9ydCB7IGlzRW1wdHkgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvaXNFbXB0eSc7XG5leHBvcnQgeyBsYXN0IH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL2xhc3QnO1xuZXhwb3J0IHsgbWFwIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL21hcCc7XG5leHBvcnQgeyBtYXBUbyB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9tYXBUbyc7XG5leHBvcnQgeyBtYXRlcmlhbGl6ZSB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9tYXRlcmlhbGl6ZSc7XG5leHBvcnQgeyBtYXggfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvbWF4JztcbmV4cG9ydCB7IG1lcmdlIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlJztcbmV4cG9ydCB7IG1lcmdlQWxsIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlQWxsJztcbmV4cG9ydCB7IGZsYXRNYXAgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvZmxhdE1hcCc7XG5leHBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZU1hcCc7XG5leHBvcnQgeyBtZXJnZU1hcFRvIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlTWFwVG8nO1xuZXhwb3J0IHsgbWVyZ2VTY2FuIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlU2Nhbic7XG5leHBvcnQgeyBtZXJnZVdpdGggfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VXaXRoJztcbmV4cG9ydCB7IG1pbiB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9taW4nO1xuZXhwb3J0IHsgbXVsdGljYXN0IH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL211bHRpY2FzdCc7XG5leHBvcnQgeyBvYnNlcnZlT24gfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvb2JzZXJ2ZU9uJztcbmV4cG9ydCB7IG9uRXJyb3JSZXN1bWVOZXh0IH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL29uRXJyb3JSZXN1bWVOZXh0V2l0aCc7XG5leHBvcnQgeyBwYWlyd2lzZSB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9wYWlyd2lzZSc7XG5leHBvcnQgeyBwYXJ0aXRpb24gfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvcGFydGl0aW9uJztcbmV4cG9ydCB7IHBsdWNrIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3BsdWNrJztcbmV4cG9ydCB7IHB1Ymxpc2ggfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaCc7XG5leHBvcnQgeyBwdWJsaXNoQmVoYXZpb3IgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaEJlaGF2aW9yJztcbmV4cG9ydCB7IHB1Ymxpc2hMYXN0IH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hMYXN0JztcbmV4cG9ydCB7IHB1Ymxpc2hSZXBsYXkgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaFJlcGxheSc7XG5leHBvcnQgeyByYWNlIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3JhY2UnO1xuZXhwb3J0IHsgcmFjZVdpdGggfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvcmFjZVdpdGgnO1xuZXhwb3J0IHsgcmVkdWNlIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3JlZHVjZSc7XG5leHBvcnQgeyByZXBlYXQsIFJlcGVhdENvbmZpZyB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9yZXBlYXQnO1xuZXhwb3J0IHsgcmVwZWF0V2hlbiB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9yZXBlYXRXaGVuJztcbmV4cG9ydCB7IHJldHJ5LCBSZXRyeUNvbmZpZyB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9yZXRyeSc7XG5leHBvcnQgeyByZXRyeVdoZW4gfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvcmV0cnlXaGVuJztcbmV4cG9ydCB7IHJlZkNvdW50IH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3JlZkNvdW50JztcbmV4cG9ydCB7IHNhbXBsZSB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9zYW1wbGUnO1xuZXhwb3J0IHsgc2FtcGxlVGltZSB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9zYW1wbGVUaW1lJztcbmV4cG9ydCB7IHNjYW4gfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvc2Nhbic7XG5leHBvcnQgeyBzZXF1ZW5jZUVxdWFsIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3NlcXVlbmNlRXF1YWwnO1xuZXhwb3J0IHsgc2hhcmUsIFNoYXJlQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3NoYXJlJztcbmV4cG9ydCB7IHNoYXJlUmVwbGF5LCBTaGFyZVJlcGxheUNvbmZpZyB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9zaGFyZVJlcGxheSc7XG5leHBvcnQgeyBzaW5nbGUgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvc2luZ2xlJztcbmV4cG9ydCB7IHNraXAgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvc2tpcCc7XG5leHBvcnQgeyBza2lwTGFzdCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9za2lwTGFzdCc7XG5leHBvcnQgeyBza2lwVW50aWwgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvc2tpcFVudGlsJztcbmV4cG9ydCB7IHNraXBXaGlsZSB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9za2lwV2hpbGUnO1xuZXhwb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3N0YXJ0V2l0aCc7XG5leHBvcnQgeyBzdWJzY3JpYmVPbiB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9zdWJzY3JpYmVPbic7XG5leHBvcnQgeyBzd2l0Y2hBbGwgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoQWxsJztcbmV4cG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hNYXAnO1xuZXhwb3J0IHsgc3dpdGNoTWFwVG8gfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoTWFwVG8nO1xuZXhwb3J0IHsgc3dpdGNoU2NhbiB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hTY2FuJztcbmV4cG9ydCB7IHRha2UgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZSc7XG5leHBvcnQgeyB0YWtlTGFzdCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy90YWtlTGFzdCc7XG5leHBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZVVudGlsJztcbmV4cG9ydCB7IHRha2VXaGlsZSB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy90YWtlV2hpbGUnO1xuZXhwb3J0IHsgdGFwLCBUYXBPYnNlcnZlciB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy90YXAnO1xuZXhwb3J0IHsgdGhyb3R0bGUsIFRocm90dGxlQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm90dGxlJztcbmV4cG9ydCB7IHRocm90dGxlVGltZSB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy90aHJvdHRsZVRpbWUnO1xuZXhwb3J0IHsgdGhyb3dJZkVtcHR5IH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm93SWZFbXB0eSc7XG5leHBvcnQgeyB0aW1lSW50ZXJ2YWwgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZUludGVydmFsJztcbmV4cG9ydCB7IHRpbWVvdXQsIFRpbWVvdXRDb25maWcsIFRpbWVvdXRJbmZvIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVvdXQnO1xuZXhwb3J0IHsgdGltZW91dFdpdGggfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZW91dFdpdGgnO1xuZXhwb3J0IHsgdGltZXN0YW1wIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVzdGFtcCc7XG5leHBvcnQgeyB0b0FycmF5IH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3RvQXJyYXknO1xuZXhwb3J0IHsgd2luZG93IH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvdyc7XG5leHBvcnQgeyB3aW5kb3dDb3VudCB9IGZyb20gJy4uL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dDb3VudCc7XG5leHBvcnQgeyB3aW5kb3dUaW1lIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RpbWUnO1xuZXhwb3J0IHsgd2luZG93VG9nZ2xlIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RvZ2dsZSc7XG5leHBvcnQgeyB3aW5kb3dXaGVuIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1doZW4nO1xuZXhwb3J0IHsgd2l0aExhdGVzdEZyb20gfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvd2l0aExhdGVzdEZyb20nO1xuZXhwb3J0IHsgemlwIH0gZnJvbSAnLi4vaW50ZXJuYWwvb3BlcmF0b3JzL3ppcCc7XG5leHBvcnQgeyB6aXBBbGwgfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvemlwQWxsJztcbmV4cG9ydCB7IHppcFdpdGggfSBmcm9tICcuLi9pbnRlcm5hbC9vcGVyYXRvcnMvemlwV2l0aCc7XG4iLCAiLy8gdGhpcyBmaWxlIGlzIGludGVuZGVkIHRvIGtlZXAgdGhlIGJ1bmRsZSBzaXplIGRvd25cblxuZXhwb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZnJvbUV2ZW50LCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIHsgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgYnVmZmVyLFxuICBidWZmZXJDb3VudCxcbiAgYnVmZmVyVGltZSxcbiAgZGVib3VuY2UsXG4gIGRlYm91bmNlVGltZSxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHN0YXJ0V2l0aCxcbiAgdGFrZVVudGlsLFxuICB0aHJvdHRsZVRpbWUsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IG9wcyA9IHtcbiAgYnVmZmVyLFxuICBidWZmZXJDb3VudCxcbiAgYnVmZmVyVGltZSxcbiAgZGVib3VuY2UsXG4gIGRlYm91bmNlVGltZSxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHN0YXJ0V2l0aCxcbiAgdGFrZVVudGlsLFxuICB0aHJvdHRsZVRpbWUsXG59O1xuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydHJ4LnBsdWdpbnMuanMnO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICcuL3NtYXJ0cngucGx1Z2lucy5yeGpzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJRXZlbnRFbWl0dGVyPFQgPSBhbnk+IHtcbiAgb246IChldmVudE5hbWVBcmc6IHN0cmluZywgZXZlbnRIYW5kbGVyQXJnOiAoZXZlbnRQYXlsb2FkOiBUKSA9PiBhbnkpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogYnVuZGxlcyBhbiBvYnNlcnZhYmxlIHdpdGggYW4gZW1pdHRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIElPYnNlcnZhYmxlRXZlbnRCdW5kbGU8VD4ge1xuICBzdWJqZWN0OiByeGpzLlN1YmplY3Q8YW55PjtcbiAgZXZlbnRSZWY6IFQ7XG4gIGV2ZW50OiBzdHJpbmc7XG59XG5cbi8qKlxuICogbWFuYWdlcyBvYnNlcnZhYmxlcyBieSBtYWtpbmcgc3VyZSB0aGF0IG9ubHkgb25lIG9ic2VydmFibGUgaXMgcmVnc2l0ZXJlZCBwZXIgZXZlbnRcbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmFibGVtYXAge1xuICBwdWJsaWMgb2JzZXJ2YWJsZUV2ZW50RW1pdHRlckJ1bmRsZUFycmF5ID0gbmV3IEFycmF5PFxuICAgIElPYnNlcnZhYmxlRXZlbnRCdW5kbGU8SUV2ZW50RW1pdHRlcjx1bmtub3duPj5cbiAgPigpO1xuICBwdWJsaWMgb2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkgPSBuZXcgQXJyYXk8SU9ic2VydmFibGVFdmVudEJ1bmRsZTxFdmVudFRhcmdldD4+KCk7XG5cbiAgLyoqXG4gICAqIGNyZWF0ZXMgYSBob3Qgc3ViamVjdCBpZiBub3QgeWV0IHJlZ2lzdGVyZWQgZm9yIHRoZSBldmVudC5cbiAgICogSW4gY2FzZSBldmVudCBoYXMgYmVlbiByZWdpc3RlcmVkIGJlZm9yZSB0aGUgc2FtZSBvYnNlcnZhYmxlIGlzIHJldHVybmVkLlxuICAgKi9cbiAgcHVibGljIGdldFN1YmplY3RGb3JFbWl0dGVyRXZlbnQ8VD4oXG4gICAgZW1pdHRlckFyZzogSUV2ZW50RW1pdHRlcjxUPixcbiAgICBldmVudEFyZzogc3RyaW5nLFxuICApOiByeGpzLlN1YmplY3Q8VD4ge1xuICAgIGNvbnN0IGV4aXN0aW5nQnVuZGxlID0gdGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXkuZmluZCgoYnVuZGxlQXJnKSA9PiB7XG4gICAgICByZXR1cm4gYnVuZGxlQXJnLmV2ZW50UmVmID09PSBlbWl0dGVyQXJnICYmIGJ1bmRsZUFyZy5ldmVudCA9PT0gZXZlbnRBcmc7XG4gICAgfSk7XG4gICAgaWYgKGV4aXN0aW5nQnVuZGxlKSB7XG4gICAgICByZXR1cm4gZXhpc3RpbmdCdW5kbGUuc3ViamVjdDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZW1pdHRlck9ic2VydmFibGUgPSByeGpzLmZyb21FdmVudDxUPihlbWl0dGVyQXJnIGFzIGFueSwgZXZlbnRBcmcpO1xuICAgICAgY29uc3QgZW1pdHRlclN1YmplY3QgPSBuZXcgcnhqcy5TdWJqZWN0KCk7XG4gICAgICBlbWl0dGVyT2JzZXJ2YWJsZS5zdWJzY3JpYmUoZW1pdHRlclN1YmplY3QpO1xuICAgICAgY29uc3QgbmV3QnVuZGxlOiBJT2JzZXJ2YWJsZUV2ZW50QnVuZGxlPElFdmVudEVtaXR0ZXI+ID0ge1xuICAgICAgICBzdWJqZWN0OiBlbWl0dGVyU3ViamVjdCxcbiAgICAgICAgZXZlbnRSZWY6IGVtaXR0ZXJBcmcsXG4gICAgICAgIGV2ZW50OiBldmVudEFyZyxcbiAgICAgIH07XG4gICAgICB0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5wdXNoKG5ld0J1bmRsZSk7XG4gICAgICByZXR1cm4gbmV3QnVuZGxlLnN1YmplY3Q7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFN1YmplY3RGb3JFdmVudFRhcmdldDxUPihcbiAgICBldmVudFRhcmdldEFyZzogRXZlbnRUYXJnZXQsXG4gICAgZXZlbnROYW1lQXJnOiBzdHJpbmcsXG4gICk6IHJ4anMuU3ViamVjdDxUPiB7XG4gICAgY29uc3QgZXhpc3RpbmdCdW5kbGUgPSB0aGlzLm9ic2VydmFibGVFdmVudFRhcmdldEJ1bmRsZUFycmF5LmZpbmQoKGJ1bmRsZUFyZykgPT4ge1xuICAgICAgcmV0dXJuIGJ1bmRsZUFyZy5ldmVudFJlZiA9PT0gZXZlbnRUYXJnZXRBcmcgJiYgYnVuZGxlQXJnLmV2ZW50ID09PSBldmVudE5hbWVBcmc7XG4gICAgfSk7XG4gICAgaWYgKGV4aXN0aW5nQnVuZGxlKSB7XG4gICAgICByZXR1cm4gZXhpc3RpbmdCdW5kbGUuc3ViamVjdDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZW1pdHRlclN1YmplY3QgPSBuZXcgcnhqcy5TdWJqZWN0KCk7XG4gICAgICBjb25zdCBuZXdCdW5kbGU6IElPYnNlcnZhYmxlRXZlbnRCdW5kbGU8RXZlbnRUYXJnZXQ+ID0ge1xuICAgICAgICBzdWJqZWN0OiBlbWl0dGVyU3ViamVjdCxcbiAgICAgICAgZXZlbnRSZWY6IGV2ZW50VGFyZ2V0QXJnLFxuICAgICAgICBldmVudDogZXZlbnROYW1lQXJnLFxuICAgICAgfTtcbiAgICAgIHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkucHVzaChuZXdCdW5kbGUpO1xuICAgICAgcmV0dXJuIG5ld0J1bmRsZS5zdWJqZWN0O1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydHJ4LnBsdWdpbnMuanMnO1xuXG5pbXBvcnQgKiBhcyByeGpzIGZyb20gJy4vc21hcnRyeC5wbHVnaW5zLnJ4anMuanMnO1xuXG4vKipcbiAqIE9ic2VydmFibGVJbnRha2VcbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmFibGVJbnRha2U8VD4ge1xuICBwdWJsaWMgb2JzZXJ2YWJsZTogcnhqcy5PYnNlcnZhYmxlPFQ+O1xuICBwdWJsaWMgY29tcGxldGVkOiBQcm9taXNlPHZvaWQ+O1xuICBwcml2YXRlIGNvbXBsZXRlZERlZmZlcmVkOiBwbHVnaW5zLnNtYXJ0cHJvbWlzZS5EZWZlcnJlZDx2b2lkPjtcbiAgcHJpdmF0ZSBvYnNlcnZhYmxlRnVuY3Rpb25zOiBhbnkgPSB7XG4gICAgbmV4dDogKHBheWxvYWRBcmc6IFQpID0+IHtcbiAgICAgIC8vIG5vdGhpbmdcbiAgICB9LFxuICAgIGNvbXBsZXRlOiAocGF5bG9hZEFyZzogVCkgPT4ge1xuICAgICAgLy8gbm90aGluZ1xuICAgIH0sXG4gIH07XG4gIHByaXZhdGUgZ2VuZXJhdG9yOiBHZW5lcmF0b3I8VD4gPSBudWxsO1xuICBwcml2YXRlIGJ1ZmZlcmVkID0gZmFsc2U7XG4gIHByaXZhdGUgcGF5bG9hZEJ1ZmZlcjogYW55W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm9ic2VydmFibGUgPSBuZXcgcnhqcy5PYnNlcnZhYmxlKChvYnNlcnZlckFyZzogcnhqcy5PYnNlcnZlcjxhbnk+KSA9PiB7XG4gICAgICB0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMubmV4dCA9ICguLi5hcmdzOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIG9ic2VydmVyQXJnLm5leHQoYXJncyk7XG4gICAgICB9O1xuICAgICAgdGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmNvbXBsZXRlZERlZmZlcmVkLnJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuIG9ic2VydmVyQXJnLmNvbXBsZXRlKCk7XG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRoaXMuY29tcGxldGVkRGVmZmVyZWQgPSBwbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO1xuICAgIHRoaXMuY29tcGxldGVkID0gdGhpcy5jb21wbGV0ZWREZWZmZXJlZC5wcm9taXNlO1xuICB9XG5cbiAgcHVibGljIHNldE9ic2VydmFibGUob2JzZXJ2YWJsZUZ1bmM6IHJ4anMuT2JzZXJ2YWJsZTxhbnk+KSB7XG4gICAgdGhpcy5vYnNlcnZhYmxlID0gb2JzZXJ2YWJsZUZ1bmM7XG4gIH1cblxuICBwdWJsaWMgcHVzaChwYXlsb2FkQXJnOiBUKSB7XG4gICAgaWYgKHRoaXMuYnVmZmVyZWQpIHtcbiAgICAgIHRoaXMucGF5bG9hZEJ1ZmZlci5wdXNoKHBheWxvYWRBcmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmludGVybmFsUHVzaChwYXlsb2FkQXJnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogcHVzaGVzIG1hbnkgcGF5bG9hZHMgYXMgYXJyYXlcbiAgICogQHBhcmFtIHBheWxvYWRBcmdBcnJheVxuICAgKi9cbiAgcHVibGljIHB1c2hNYW55KHBheWxvYWRBcmdBcnJheTogVFtdKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHBheWxvYWRBcmdBcnJheSkge1xuICAgICAgdGhpcy5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBzZXRzIGEgZ2VuZXJhdG9yIHRvIHF1ZXJ5IHRoZSBuZXh0IHB1c2hlZCB2YWx1ZVxuICAgKiBAcGFyYW0gZ2VuZXJhdG9yQXJnXG4gICAqL1xuICBwdWJsaWMgc2V0R2VuZXJhdG9yKGdlbmVyYXRvckFyZzogR2VuZXJhdG9yPFQ+KSB7XG4gICAgdGhpcy5nZW5lcmF0b3IgPSBnZW5lcmF0b3JBcmc7XG4gIH1cblxuICBwdWJsaWMgbWFrZUJ1ZmZlcmVkKCkge1xuICAgIHRoaXMuYnVmZmVyZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZSguLi5hcmdzOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5vYnNlcnZhYmxlLnN1YnNjcmliZSguLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXF1ZXN0IHRoZSBuZXh0IHZhbHVlcyBpbiB0aGUgcXVhbnRpdHkgc3BlY2lmaWVkXG4gICAqIEBwYXJhbSBob3dNYW55QXJnIGlmIGEgZ2VuZXJhdG9yIGlzIHNldCwgb2YgYSBidWZmZXIgZXhpc3RzLCB0aGlzIGFsbG93cyByZXRyaWV2aW5nIHZhbHVlc1xuICAgKi9cbiAgcHVibGljIHJlcXVlc3QoaG93TWFueUFyZzogbnVtYmVyKSB7XG4gICAgaWYgKGhvd01hbnlBcmcgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT09IGhvd01hbnlBcmc7IGkrKykge1xuICAgICAgICBpZiAodGhpcy5wYXlsb2FkQnVmZmVyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmludGVybmFsUHVzaCh0aGlzLnBheWxvYWRCdWZmZXIuc2hpZnQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgbmV4dFBheWxvYWQgPSB0aGlzLmdlbmVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbFB1c2gobmV4dFBheWxvYWQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHNpZ25hbHMgdGhlIGNvbXBsZXRpb24gb2YgdGhpcyBvYnNlcnZhYmxlXG4gICAqL1xuICBwdWJsaWMgc2lnbmFsQ29tcGxldGUoKSB7XG4gICAgdGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGludGVybmFsUHVzaChwYXlsb2FkQXJnOiBUKSB7XG4gICAgdGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLm5leHQocGF5bG9hZEFyZyk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7IFJlYWRhYmxlIH0gZnJvbSAnc3RyZWFtJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21TdHJlYW1XaXRoQmFja3ByZXNzdXJlPFQ+KHN0cmVhbTogUmVhZGFibGUpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFQ+KChzdWJzY3JpYmVyKSA9PiB7XG4gICAgY29uc3QgcGF1c2VTdHJlYW0gPSAoKSA9PiBzdHJlYW0ucGF1c2UoKTtcbiAgICBjb25zdCByZXN1bWVTdHJlYW0gPSAoKSA9PiBwcm9jZXNzLm5leHRUaWNrKCgpID0+IHN0cmVhbS5yZXN1bWUoKSk7XG5cbiAgICAvLyBIYW5kbGVyIGZvciBlYWNoIHBpZWNlIG9mIGRhdGFcbiAgICBjb25zdCBvbkRhdGEgPSAoZGF0YTogVCkgPT4ge1xuICAgICAgLy8gUGF1c2UgdGhlIHN0cmVhbSB0byBhcHBseSBiYWNrcHJlc3N1cmVcbiAgICAgIHBhdXNlU3RyZWFtKCk7XG4gICAgICAvLyBFbWl0IGRhdGEgYW5kIHJlc3VtZSB0aGUgc3RyZWFtIGlmIHRoZSBzdWJzY3JpYmVyIGlzIHJlYWR5XG4gICAgICBzdWJzY3JpYmVyLm5leHQoZGF0YSk7XG4gICAgICByZXN1bWVTdHJlYW0oKTtcbiAgICB9O1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHN0cmVhbSBldmVudHNcbiAgICBzdHJlYW0ub24oJ2RhdGEnLCBvbkRhdGEpO1xuICAgIHN0cmVhbS5vbignZXJyb3InLCAoZXJyb3IpID0+IHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpKTtcbiAgICBzdHJlYW0ub24oJ2VuZCcsICgpID0+IHN1YnNjcmliZXIuY29tcGxldGUoKSk7XG4gICAgc3RyZWFtLm9uKCdjbG9zZScsICgpID0+IHN1YnNjcmliZXIuY29tcGxldGUoKSk7XG5cbiAgICAvLyBJZiB0aGUgc3Vic2NyaWJlciB1bnN1YnNjcmliZXMsIGNsZWFuIHVwIHRoZSBzdHJlYW0gbGlzdGVuZXJzXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHN0cmVhbS5yZW1vdmVMaXN0ZW5lcignZGF0YScsIG9uRGF0YSk7XG4gICAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgc3Vic2NyaWJlci5lcnJvcik7XG4gICAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoJ2VuZCcsIHN1YnNjcmliZXIuY29tcGxldGUpO1xuICAgICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKCdjbG9zZScsIHN1YnNjcmliZXIuY29tcGxldGUpO1xuICAgIH07XG4gIH0pO1xufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydHJ4LnBsdWdpbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zbWFydHJ4LmNsYXNzZXMub2JzZXJ2YWJsZW1hcC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0cnguY2xhc3Nlcy5vYnNlcnZhYmxlaW50YWtlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc21hcnRyeC5mdW5jdGlvbnMuanMnO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICcuL3NtYXJ0cngucGx1Z2lucy5yeGpzLmpzJztcbmV4cG9ydCB7IHJ4anMgfTtcbiIsICIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gKi9cblxuLypcbiAqIElNUE9SVEFOVDogRm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0c2lja2xlIGFuZCB0aGUgQ2xvc3VyZSBKUyBjb21waWxlciwgYWxsXG4gKiBwcm9wZXJ0eSBkZWNvcmF0b3JzIChidXQgbm90IGNsYXNzIGRlY29yYXRvcnMpIGluIHRoaXMgZmlsZSB0aGF0IGhhdmVcbiAqIGFuIEBFeHBvcnREZWNvcmF0ZWRJdGVtcyBhbm5vdGF0aW9uIG11c3QgYmUgZGVmaW5lZCBhcyBhIHJlZ3VsYXIgZnVuY3Rpb24sXG4gKiBub3QgYW4gYXJyb3cgZnVuY3Rpb24uXG4gKi9cblxuaW1wb3J0IHtcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFJlYWN0aXZlRWxlbWVudCxcbiAgZGVmYXVsdENvbnZlcnRlcixcbiAgbm90RXF1YWwsXG59IGZyb20gJy4uL3JlYWN0aXZlLWVsZW1lbnQuanMnO1xuaW1wb3J0IHR5cGUge0ludGVyZmFjZX0gZnJvbSAnLi9iYXNlLmpzJztcblxuY29uc3QgREVWX01PREUgPSB0cnVlO1xuXG5sZXQgaXNzdWVXYXJuaW5nOiAoY29kZTogc3RyaW5nLCB3YXJuaW5nOiBzdHJpbmcpID0+IHZvaWQ7XG5cbmlmIChERVZfTU9ERSkge1xuICAvLyBFbnN1cmUgd2FybmluZ3MgYXJlIGlzc3VlZCBvbmx5IDF4LCBldmVuIGlmIG11bHRpcGxlIHZlcnNpb25zIG9mIExpdFxuICAvLyBhcmUgbG9hZGVkLlxuICBnbG9iYWxUaGlzLmxpdElzc3VlZFdhcm5pbmdzID8/PSBuZXcgU2V0KCk7XG5cbiAgLyoqXG4gICAqIElzc3VlIGEgd2FybmluZyBpZiB3ZSBoYXZlbid0IGFscmVhZHksIGJhc2VkIGVpdGhlciBvbiBgY29kZWAgb3IgYHdhcm5pbmdgLlxuICAgKiBXYXJuaW5ncyBhcmUgZGlzYWJsZWQgYXV0b21hdGljYWxseSBvbmx5IGJ5IGB3YXJuaW5nYDsgZGlzYWJsaW5nIHZpYSBgY29kZWBcbiAgICogY2FuIGJlIGRvbmUgYnkgdXNlcnMuXG4gICAqL1xuICBpc3N1ZVdhcm5pbmcgPSAoY29kZTogc3RyaW5nLCB3YXJuaW5nOiBzdHJpbmcpID0+IHtcbiAgICB3YXJuaW5nICs9IGAgU2VlIGh0dHBzOi8vbGl0LmRldi9tc2cvJHtjb2RlfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgIGlmIChcbiAgICAgICFnbG9iYWxUaGlzLmxpdElzc3VlZFdhcm5pbmdzIS5oYXMod2FybmluZykgJiZcbiAgICAgICFnbG9iYWxUaGlzLmxpdElzc3VlZFdhcm5pbmdzIS5oYXMoY29kZSlcbiAgICApIHtcbiAgICAgIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbiAgICAgIGdsb2JhbFRoaXMubGl0SXNzdWVkV2FybmluZ3MhLmFkZCh3YXJuaW5nKTtcbiAgICB9XG4gIH07XG59XG5cbi8vIE92ZXJsb2FkcyBmb3IgcHJvcGVydHkgZGVjb3JhdG9yIHNvIHRoYXQgVHlwZVNjcmlwdCBjYW4gaW5mZXIgdGhlIGNvcnJlY3Rcbi8vIHJldHVybiB0eXBlIHdoZW4gYSBkZWNvcmF0b3IgaXMgdXNlZCBhcyBhbiBhY2Nlc3NvciBkZWNvcmF0b3Igb3IgYSBzZXR0ZXJcbi8vIGRlY29yYXRvci5cbmV4cG9ydCB0eXBlIFByb3BlcnR5RGVjb3JhdG9yID0ge1xuICAvLyBhY2Nlc3NvciBkZWNvcmF0b3Igc2lnbmF0dXJlXG4gIDxDIGV4dGVuZHMgSW50ZXJmYWNlPFJlYWN0aXZlRWxlbWVudD4sIFY+KFxuICAgIHRhcmdldDogQ2xhc3NBY2Nlc3NvckRlY29yYXRvclRhcmdldDxDLCBWPixcbiAgICBjb250ZXh0OiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yQ29udGV4dDxDLCBWPlxuICApOiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yUmVzdWx0PEMsIFY+O1xuXG4gIC8vIHNldHRlciBkZWNvcmF0b3Igc2lnbmF0dXJlXG4gIDxDIGV4dGVuZHMgSW50ZXJmYWNlPFJlYWN0aXZlRWxlbWVudD4sIFY+KFxuICAgIHRhcmdldDogKHZhbHVlOiBWKSA9PiB2b2lkLFxuICAgIGNvbnRleHQ6IENsYXNzU2V0dGVyRGVjb3JhdG9yQ29udGV4dDxDLCBWPlxuICApOiAodGhpczogQywgdmFsdWU6IFYpID0+IHZvaWQ7XG5cbiAgLy8gbGVnYWN5IGRlY29yYXRvciBzaWduYXR1cmVcbiAgKFxuICAgIHByb3RvT3JEZXNjcmlwdG9yOiBPYmplY3QsXG4gICAgbmFtZTogUHJvcGVydHlLZXksXG4gICAgZGVzY3JpcHRvcj86IFByb3BlcnR5RGVzY3JpcHRvclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICk6IGFueTtcbn07XG5cbmNvbnN0IGxlZ2FjeVByb3BlcnR5ID0gKFxuICBvcHRpb25zOiBQcm9wZXJ0eURlY2xhcmF0aW9uIHwgdW5kZWZpbmVkLFxuICBwcm90bzogT2JqZWN0LFxuICBuYW1lOiBQcm9wZXJ0eUtleVxuKSA9PiB7XG4gIGNvbnN0IGhhc093blByb3BlcnR5ID0gcHJvdG8uaGFzT3duUHJvcGVydHkobmFtZSk7XG4gIChwcm90by5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgUmVhY3RpdmVFbGVtZW50KS5jcmVhdGVQcm9wZXJ0eShuYW1lLCBvcHRpb25zKTtcbiAgLy8gRm9yIGFjY2Vzc29ycyAod2hpY2ggaGF2ZSBhIGRlc2NyaXB0b3Igb24gdGhlIHByb3RvdHlwZSkgd2UgbmVlZCB0b1xuICAvLyByZXR1cm4gYSBkZXNjcmlwdG9yLCBvdGhlcndpc2UgVHlwZVNjcmlwdCBvdmVyd3JpdGVzIHRoZSBkZXNjcmlwdG9yIHdlXG4gIC8vIGRlZmluZSBpbiBjcmVhdGVQcm9wZXJ0eSgpIHdpdGggdGhlIG9yaWdpbmFsIGRlc2NyaXB0b3IuIFdlIGRvbid0IGRvIHRoaXNcbiAgLy8gZm9yIGZpZWxkcywgd2hpY2ggZG9uJ3QgaGF2ZSBhIGRlc2NyaXB0b3IsIGJlY2F1c2UgdGhpcyBjb3VsZCBvdmVyd3JpdGVcbiAgLy8gZGVzY3JpcHRvciBkZWZpbmVkIGJ5IG90aGVyIGRlY29yYXRvcnMuXG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eVxuICAgID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwcm90bywgbmFtZSlcbiAgICA6IHVuZGVmaW5lZDtcbn07XG5cbi8vIFRoaXMgaXMgZHVwbGljYXRlZCBmcm9tIGEgc2ltaWxhciB2YXJpYWJsZSBpbiByZWFjdGl2ZS1lbGVtZW50LnRzLCBidXRcbi8vIGFjdHVhbGx5IG1ha2VzIHNlbnNlIHRvIGhhdmUgdGhpcyBkZWZhdWx0IGRlZmluZWQgd2l0aCB0aGUgZGVjb3JhdG9yLCBzb1xuLy8gdGhhdCBkaWZmZXJlbnQgZGVjb3JhdG9ycyBjb3VsZCBoYXZlIGRpZmZlcmVudCBkZWZhdWx0cy5cbmNvbnN0IGRlZmF1bHRQcm9wZXJ0eURlY2xhcmF0aW9uOiBQcm9wZXJ0eURlY2xhcmF0aW9uID0ge1xuICBhdHRyaWJ1dGU6IHRydWUsXG4gIHR5cGU6IFN0cmluZyxcbiAgY29udmVydGVyOiBkZWZhdWx0Q29udmVydGVyLFxuICByZWZsZWN0OiBmYWxzZSxcbiAgaGFzQ2hhbmdlZDogbm90RXF1YWwsXG59O1xuXG4vLyBUZW1wb3JhcnkgdHlwZSwgdW50aWwgZ29vZ2xlMyBpcyBvbiBUeXBlU2NyaXB0IDUuMlxudHlwZSBTdGFuZGFyZFByb3BlcnR5Q29udGV4dDxDLCBWPiA9IChcbiAgfCBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yQ29udGV4dDxDLCBWPlxuICB8IENsYXNzU2V0dGVyRGVjb3JhdG9yQ29udGV4dDxDLCBWPlxuKSAmIHttZXRhZGF0YTogb2JqZWN0fTtcblxuLyoqXG4gKiBXcmFwcyBhIGNsYXNzIGFjY2Vzc29yIG9yIHNldHRlciBzbyB0aGF0IGByZXF1ZXN0VXBkYXRlKClgIGlzIGNhbGxlZCB3aXRoIHRoZVxuICogcHJvcGVydHkgbmFtZSBhbmQgb2xkIHZhbHVlIHdoZW4gdGhlIGFjY2Vzc29yIGlzIHNldC5cbiAqL1xuZXhwb3J0IGNvbnN0IHN0YW5kYXJkUHJvcGVydHkgPSA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWPihcbiAgb3B0aW9uczogUHJvcGVydHlEZWNsYXJhdGlvbiA9IGRlZmF1bHRQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0YXJnZXQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4gfCAoKHZhbHVlOiBWKSA9PiB2b2lkKSxcbiAgY29udGV4dDogU3RhbmRhcmRQcm9wZXJ0eUNvbnRleHQ8QywgVj5cbik6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JSZXN1bHQ8QywgVj4gfCAoKHRoaXM6IEMsIHZhbHVlOiBWKSA9PiB2b2lkKSA9PiB7XG4gIGNvbnN0IHtraW5kLCBtZXRhZGF0YX0gPSBjb250ZXh0O1xuXG4gIGlmIChERVZfTU9ERSAmJiBtZXRhZGF0YSA9PSBudWxsKSB7XG4gICAgaXNzdWVXYXJuaW5nKFxuICAgICAgJ21pc3NpbmctY2xhc3MtbWV0YWRhdGEnLFxuICAgICAgYFRoZSBjbGFzcyAke3RhcmdldH0gaXMgbWlzc2luZyBkZWNvcmF0b3IgbWV0YWRhdGEuIFRoaXMgYCArXG4gICAgICAgIGBjb3VsZCBtZWFuIHRoYXQgeW91J3JlIHVzaW5nIGEgY29tcGlsZXIgdGhhdCBzdXBwb3J0cyBkZWNvcmF0b3JzIGAgK1xuICAgICAgICBgYnV0IGRvZXNuJ3Qgc3VwcG9ydCBkZWNvcmF0b3IgbWV0YWRhdGEsIHN1Y2ggYXMgVHlwZVNjcmlwdCA1LjEuIGAgK1xuICAgICAgICBgUGxlYXNlIHVwZGF0ZSB5b3VyIGNvbXBpbGVyLmBcbiAgICApO1xuICB9XG5cbiAgLy8gU3RvcmUgdGhlIHByb3BlcnR5IG9wdGlvbnNcbiAgbGV0IHByb3BlcnRpZXMgPSBnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KG1ldGFkYXRhKTtcbiAgaWYgKHByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgIGdsb2JhbFRoaXMubGl0UHJvcGVydHlNZXRhZGF0YS5zZXQobWV0YWRhdGEsIChwcm9wZXJ0aWVzID0gbmV3IE1hcCgpKSk7XG4gIH1cbiAgaWYgKGtpbmQgPT09ICdzZXR0ZXInKSB7XG4gICAgb3B0aW9ucyA9IE9iamVjdC5jcmVhdGUob3B0aW9ucyk7XG4gICAgb3B0aW9ucy53cmFwcGVkID0gdHJ1ZTtcbiAgfVxuICBwcm9wZXJ0aWVzLnNldChjb250ZXh0Lm5hbWUsIG9wdGlvbnMpO1xuXG4gIGlmIChraW5kID09PSAnYWNjZXNzb3InKSB7XG4gICAgLy8gU3RhbmRhcmQgZGVjb3JhdG9ycyBjYW5ub3QgZHluYW1pY2FsbHkgbW9kaWZ5IHRoZSBjbGFzcywgc28gd2UgY2FuJ3RcbiAgICAvLyByZXBsYWNlIGEgZmllbGQgd2l0aCBhY2Nlc3NvcnMuIFRoZSB1c2VyIG11c3QgdXNlIHRoZSBuZXcgYGFjY2Vzc29yYFxuICAgIC8vIGtleXdvcmQgaW5zdGVhZC5cbiAgICBjb25zdCB7bmFtZX0gPSBjb250ZXh0O1xuICAgIHJldHVybiB7XG4gICAgICBzZXQodGhpczogUmVhY3RpdmVFbGVtZW50LCB2OiBWKSB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gKFxuICAgICAgICAgIHRhcmdldCBhcyBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+XG4gICAgICAgICkuZ2V0LmNhbGwodGhpcyBhcyB1bmtub3duIGFzIEMpO1xuICAgICAgICAodGFyZ2V0IGFzIENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4pLnNldC5jYWxsKFxuICAgICAgICAgIHRoaXMgYXMgdW5rbm93biBhcyBDLFxuICAgICAgICAgIHZcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zLCB0cnVlLCB2KTtcbiAgICAgIH0sXG4gICAgICBpbml0KHRoaXM6IFJlYWN0aXZlRWxlbWVudCwgdjogVik6IFYge1xuICAgICAgICBpZiAodiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5fJGNoYW5nZVByb3BlcnR5KG5hbWUsIHVuZGVmaW5lZCwgb3B0aW9ucywgdik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHY7XG4gICAgICB9LFxuICAgIH0gYXMgdW5rbm93biBhcyBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yUmVzdWx0PEMsIFY+O1xuICB9IGVsc2UgaWYgKGtpbmQgPT09ICdzZXR0ZXInKSB7XG4gICAgY29uc3Qge25hbWV9ID0gY29udGV4dDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRoaXM6IFJlYWN0aXZlRWxlbWVudCwgdmFsdWU6IFYpIHtcbiAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpc1tuYW1lIGFzIGtleW9mIFJlYWN0aXZlRWxlbWVudF07XG4gICAgICAodGFyZ2V0IGFzICh2YWx1ZTogVikgPT4gdm9pZCkuY2FsbCh0aGlzLCB2YWx1ZSk7XG4gICAgICB0aGlzLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMsIHRydWUsIHZhbHVlKTtcbiAgICB9IGFzIHVua25vd24gYXMgKHRoaXM6IEMsIHZhbHVlOiBWKSA9PiB2b2lkO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZGVjb3JhdG9yIGxvY2F0aW9uOiAke2tpbmR9YCk7XG59O1xuXG4vKipcbiAqIEEgY2xhc3MgZmllbGQgb3IgYWNjZXNzb3IgZGVjb3JhdG9yIHdoaWNoIGNyZWF0ZXMgYSByZWFjdGl2ZSBwcm9wZXJ0eSB0aGF0XG4gKiByZWZsZWN0cyBhIGNvcnJlc3BvbmRpbmcgYXR0cmlidXRlIHZhbHVlLiBXaGVuIGEgZGVjb3JhdGVkIHByb3BlcnR5IGlzIHNldFxuICogdGhlIGVsZW1lbnQgd2lsbCB1cGRhdGUgYW5kIHJlbmRlci4gQSB7QGxpbmtjb2RlIFByb3BlcnR5RGVjbGFyYXRpb259IG1heVxuICogb3B0aW9uYWxseSBiZSBzdXBwbGllZCB0byBjb25maWd1cmUgcHJvcGVydHkgZmVhdHVyZXMuXG4gKlxuICogVGhpcyBkZWNvcmF0b3Igc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgcHVibGljIGZpZWxkcy4gQXMgcHVibGljIGZpZWxkcyxcbiAqIHByb3BlcnRpZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgcHJpbWFyaWx5IHNldHRhYmxlIGJ5IGVsZW1lbnQgdXNlcnMsXG4gKiBlaXRoZXIgdmlhIGF0dHJpYnV0ZSBvciB0aGUgcHJvcGVydHkgaXRzZWxmLlxuICpcbiAqIEdlbmVyYWxseSwgcHJvcGVydGllcyB0aGF0IGFyZSBjaGFuZ2VkIGJ5IHRoZSBlbGVtZW50IHNob3VsZCBiZSBwcml2YXRlIG9yXG4gKiBwcm90ZWN0ZWQgZmllbGRzIGFuZCBzaG91bGQgdXNlIHRoZSB7QGxpbmtjb2RlIHN0YXRlfSBkZWNvcmF0b3IuXG4gKlxuICogSG93ZXZlciwgc29tZXRpbWVzIGVsZW1lbnQgY29kZSBkb2VzIG5lZWQgdG8gc2V0IGEgcHVibGljIHByb3BlcnR5LiBUaGlzXG4gKiBzaG91bGQgdHlwaWNhbGx5IG9ubHkgYmUgZG9uZSBpbiByZXNwb25zZSB0byB1c2VyIGludGVyYWN0aW9uLCBhbmQgYW4gZXZlbnRcbiAqIHNob3VsZCBiZSBmaXJlZCBpbmZvcm1pbmcgdGhlIHVzZXI7IGZvciBleGFtcGxlLCBhIGNoZWNrYm94IHNldHMgaXRzXG4gKiBgY2hlY2tlZGAgcHJvcGVydHkgd2hlbiBjbGlja2VkIGFuZCBmaXJlcyBhIGBjaGFuZ2VkYCBldmVudC4gTXV0YXRpbmcgcHVibGljXG4gKiBwcm9wZXJ0aWVzIHNob3VsZCB0eXBpY2FsbHkgbm90IGJlIGRvbmUgZm9yIG5vbi1wcmltaXRpdmUgKG9iamVjdCBvciBhcnJheSlcbiAqIHByb3BlcnRpZXMuIEluIG90aGVyIGNhc2VzIHdoZW4gYW4gZWxlbWVudCBuZWVkcyB0byBtYW5hZ2Ugc3RhdGUsIGEgcHJpdmF0ZVxuICogcHJvcGVydHkgZGVjb3JhdGVkIHZpYSB0aGUge0BsaW5rY29kZSBzdGF0ZX0gZGVjb3JhdG9yIHNob3VsZCBiZSB1c2VkLiBXaGVuXG4gKiBuZWVkZWQsIHN0YXRlIHByb3BlcnRpZXMgY2FuIGJlIGluaXRpYWxpemVkIHZpYSBwdWJsaWMgcHJvcGVydGllcyB0b1xuICogZmFjaWxpdGF0ZSBjb21wbGV4IGludGVyYWN0aW9ucy5cbiAqXG4gKiBgYGB0c1xuICogY2xhc3MgTXlFbGVtZW50IHtcbiAqICAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICogICBjbGlja2VkID0gZmFsc2U7XG4gKiB9XG4gKiBgYGBcbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JcbiAqIEBFeHBvcnREZWNvcmF0ZWRJdGVtc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHkob3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIHJldHVybiA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWPihcbiAgICBwcm90b09yVGFyZ2V0OlxuICAgICAgfCBvYmplY3RcbiAgICAgIHwgQ2xhc3NBY2Nlc3NvckRlY29yYXRvclRhcmdldDxDLCBWPlxuICAgICAgfCAoKHZhbHVlOiBWKSA9PiB2b2lkKSxcbiAgICBuYW1lT3JDb250ZXh0OlxuICAgICAgfCBQcm9wZXJ0eUtleVxuICAgICAgfCBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yQ29udGV4dDxDLCBWPlxuICAgICAgfCBDbGFzc1NldHRlckRlY29yYXRvckNvbnRleHQ8QywgVj5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICApOiBhbnkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0eXBlb2YgbmFtZU9yQ29udGV4dCA9PT0gJ29iamVjdCdcbiAgICAgICAgPyBzdGFuZGFyZFByb3BlcnR5PEMsIFY+KFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIHByb3RvT3JUYXJnZXQgYXNcbiAgICAgICAgICAgICAgfCBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+XG4gICAgICAgICAgICAgIHwgKCh2YWx1ZTogVikgPT4gdm9pZCksXG4gICAgICAgICAgICBuYW1lT3JDb250ZXh0IGFzIFN0YW5kYXJkUHJvcGVydHlDb250ZXh0PEMsIFY+XG4gICAgICAgICAgKVxuICAgICAgICA6IGxlZ2FjeVByb3BlcnR5KFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIHByb3RvT3JUYXJnZXQgYXMgT2JqZWN0LFxuICAgICAgICAgICAgbmFtZU9yQ29udGV4dCBhcyBQcm9wZXJ0eUtleVxuICAgICAgICAgIClcbiAgICApIGFzIFByb3BlcnR5RGVjb3JhdG9yO1xuICB9O1xufVxuIiwgImV4cG9ydCpmcm9tXCJAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9wcm9wZXJ0eS5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJvcGVydHkuanMubWFwXG4iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkc5dGRHOXZiSE11WTI5c2IzSnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZkSE12Wkc5dGRHOXZiSE11WTI5c2IzSnpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUlpZlE9PSIsICJpbXBvcnQgKiBhcyBzbWFydHByb21pc2UgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlJztcblxuLyoqXG4gKiBkZWxheSBzb21ldGhpbmcsIHdvcmtzIGxpa2Ugc2V0VGltZW91dFxuICogQHBhcmFtIHRpbWVJbk1pbGxpc2Vjb25kQXJnXG4gKiBAcGFyYW0gcGFzc09uQXJnXG4gKi9cbmV4cG9ydCBsZXQgZGVsYXlGb3IgPSBhc3luYyA8VD4oXG4gIHRpbWVJbk1pbGxpc2Vjb25kQXJnOiBudW1iZXIsXG4gIHBhc3NPbkFyZz86IFQsXG4gIHVucmVmZWRBcmcgPSBmYWxzZVxuKSA9PiB7XG4gIGNvbnN0IHRpbWVvdXQgPSBuZXcgVGltZW91dCh0aW1lSW5NaWxsaXNlY29uZEFyZywgbnVsbCwgdW5yZWZlZEFyZyk7XG4gIGF3YWl0IHRpbWVvdXQucHJvbWlzZTtcbiAgcmV0dXJuIHBhc3NPbkFyZztcbn07XG5cbi8qKlxuICogZGVsYXkgZm9yIGEgcmFuZG9tIHRpbWVcbiAqL1xuZXhwb3J0IGxldCBkZWxheUZvclJhbmRvbSA9IGFzeW5jIDxUPihcbiAgdGltZU1pbkluTWlsbGlzZWNvbmRBcmc6IG51bWJlcixcbiAgdGltZU1heEluTWlsbGlzZWNvbmRBcmc6IG51bWJlcixcbiAgcGFzc09uQXJnPzogVCxcbiAgdW5yZWZlZEFyZyA9IGZhbHNlXG4pID0+IHtcbiAgYXdhaXQgZGVsYXlGb3IoXG4gICAgTWF0aC5yYW5kb20oKSAqICh0aW1lTWF4SW5NaWxsaXNlY29uZEFyZyAtIHRpbWVNaW5Jbk1pbGxpc2Vjb25kQXJnKSArIHRpbWVNaW5Jbk1pbGxpc2Vjb25kQXJnLFxuICAgIG51bGwsXG4gICAgdW5yZWZlZEFyZ1xuICApO1xuICByZXR1cm4gcGFzc09uQXJnO1xufTtcblxuZXhwb3J0IGNsYXNzIFRpbWVvdXQ8VD4ge1xuICBwcm9taXNlOiBQcm9taXNlPFQ+O1xuICBwcml2YXRlIF9kZWZlcnJlZDogc21hcnRwcm9taXNlLkRlZmVycmVkPFQ+O1xuICBwcml2YXRlIF90aW1lb3V0O1xuICBwcml2YXRlIF9jYW5jZWxsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIHRpbWVvdXRJbk1pbGxpczogbnVtYmVyO1xuICBwcml2YXRlIHN0YXJ0ZWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih0aW1lSW5NaWxsaXNlY29uZEFyZywgcGFzc09uPzogVCwgdW5yZWZlZEFyZyA9IGZhbHNlKSB7XG4gICAgdGhpcy50aW1lb3V0SW5NaWxsaXMgPSB0aW1lSW5NaWxsaXNlY29uZEFyZztcbiAgICB0aGlzLl9kZWZlcnJlZCA9IHNtYXJ0cHJvbWlzZS5kZWZlcjxUPigpO1xuICAgIHRoaXMucHJvbWlzZSA9IHRoaXMuX2RlZmVycmVkLnByb21pc2U7XG4gICAgdGhpcy5fdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9jYW5jZWxsZWQpIHtcbiAgICAgICAgdGhpcy5fZGVmZXJyZWQucmVzb2x2ZShwYXNzT24pO1xuICAgICAgfVxuICAgIH0sIHRpbWVJbk1pbGxpc2Vjb25kQXJnKTtcbiAgICB0aGlzLnN0YXJ0ZWQgPSBEYXRlLm5vdygpO1xuICAgIGlmICh1bnJlZmVkQXJnKSB7XG4gICAgICB0aGlzLm1ha2VVbnJlZmVkKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHVucmVmZmluZyBhIHRpbWVvdXQgY2F1c2VzIHRoZSBub2RlIHByb2Nlc3MgdG8gbm90IHdhaXQgZm9yIGNvbXBsZXRpb24gYmVmb3JlIGV4aXRcbiAgICovXG4gIHB1YmxpYyBtYWtlVW5yZWZlZCgpIHtcbiAgICB0aGlzLl90aW1lb3V0LnVucmVmKCk7XG4gIH1cblxuICAvKipcbiAgICogY2FuY2VscyB0aGUgdGltZXJcbiAgICovXG4gIHB1YmxpYyBjYW5jZWwoKSB7XG4gICAgdGhpcy5fY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGltZUxlZnQoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5zdGFydGVkICsgdGhpcy50aW1lb3V0SW5NaWxsaXMgLSBEYXRlLm5vdygpO1xuICAgIHJldHVybiByZXN1bHQgPiAwID8gcmVzdWx0IDogMDtcbiAgfVxufVxuIiwgImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTkwY3k5cGJtUmxlQzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pSW4wPSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBlc2NhcGVTdHJpbmdSZWdleHAoc3RyaW5nKSB7XG5cdGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJykge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGEgc3RyaW5nJyk7XG5cdH1cblxuXHQvLyBFc2NhcGUgY2hhcmFjdGVycyB3aXRoIHNwZWNpYWwgbWVhbmluZyBlaXRoZXIgaW5zaWRlIG9yIG91dHNpZGUgY2hhcmFjdGVyIHNldHMuXG5cdC8vIFVzZSBhIHNpbXBsZSBiYWNrc2xhc2ggZXNjYXBlIHdoZW4gaXRcdTIwMTlzIGFsd2F5cyB2YWxpZCwgYW5kIGEgYFxceG5uYCBlc2NhcGUgd2hlbiB0aGUgc2ltcGxlciBmb3JtIHdvdWxkIGJlIGRpc2FsbG93ZWQgYnkgVW5pY29kZSBwYXR0ZXJuc1x1MjAxOSBzdHJpY3RlciBncmFtbWFyLlxuXHRyZXR1cm4gc3RyaW5nXG5cdFx0LnJlcGxhY2UoL1t8XFxcXHt9KClbXFxdXiQrKj8uXS9nLCAnXFxcXCQmJylcblx0XHQucmVwbGFjZSgvLS9nLCAnXFxcXHgyZCcpO1xufVxuIiwgImltcG9ydCBlc2NhcGVTdHJpbmdSZWdleHAgZnJvbSAnZXNjYXBlLXN0cmluZy1yZWdleHAnO1xuXG5jb25zdCByZWdleHBDYWNoZSA9IG5ldyBNYXAoKTtcblxuY29uc3Qgc2FuaXRpemVBcnJheSA9IChpbnB1dCwgaW5wdXROYW1lKSA9PiB7XG5cdGlmICghQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcblx0XHRzd2l0Y2ggKHR5cGVvZiBpbnB1dCkge1xuXHRcdFx0Y2FzZSAnc3RyaW5nJzpcblx0XHRcdFx0aW5wdXQgPSBbaW5wdXRdO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ3VuZGVmaW5lZCc6XG5cdFx0XHRcdGlucHV0ID0gW107XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7aW5wdXROYW1lfScgdG8gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXksIGJ1dCBnb3QgYSB0eXBlIG9mICcke3R5cGVvZiBpbnB1dH0nYCk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGlucHV0LmZpbHRlcihzdHJpbmcgPT4ge1xuXHRcdGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJykge1xuXHRcdFx0aWYgKHR5cGVvZiBzdHJpbmcgPT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7aW5wdXROYW1lfScgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncywgYnV0IGZvdW5kIGEgdHlwZSBvZiAnJHt0eXBlb2Ygc3RyaW5nfScgaW4gdGhlIGFycmF5YCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0pO1xufTtcblxuY29uc3QgbWFrZVJlZ2V4cCA9IChwYXR0ZXJuLCBvcHRpb25zKSA9PiB7XG5cdG9wdGlvbnMgPSB7XG5cdFx0Y2FzZVNlbnNpdGl2ZTogZmFsc2UsXG5cdFx0Li4ub3B0aW9ucyxcblx0fTtcblxuXHRjb25zdCBjYWNoZUtleSA9IHBhdHRlcm4gKyBKU09OLnN0cmluZ2lmeShvcHRpb25zKTtcblxuXHRpZiAocmVnZXhwQ2FjaGUuaGFzKGNhY2hlS2V5KSkge1xuXHRcdHJldHVybiByZWdleHBDYWNoZS5nZXQoY2FjaGVLZXkpO1xuXHR9XG5cblx0Y29uc3QgbmVnYXRlZCA9IHBhdHRlcm5bMF0gPT09ICchJztcblxuXHRpZiAobmVnYXRlZCkge1xuXHRcdHBhdHRlcm4gPSBwYXR0ZXJuLnNsaWNlKDEpO1xuXHR9XG5cblx0cGF0dGVybiA9IGVzY2FwZVN0cmluZ1JlZ2V4cChwYXR0ZXJuKS5yZXBsYWNlKC9cXFxcXFwqL2csICdbXFxcXHNcXFxcU10qJyk7XG5cblx0Y29uc3QgcmVnZXhwID0gbmV3IFJlZ0V4cChgXiR7cGF0dGVybn0kYCwgb3B0aW9ucy5jYXNlU2Vuc2l0aXZlID8gJycgOiAnaScpO1xuXHRyZWdleHAubmVnYXRlZCA9IG5lZ2F0ZWQ7XG5cdHJlZ2V4cENhY2hlLnNldChjYWNoZUtleSwgcmVnZXhwKTtcblxuXHRyZXR1cm4gcmVnZXhwO1xufTtcblxuY29uc3QgYmFzZU1hdGNoZXIgPSAoaW5wdXRzLCBwYXR0ZXJucywgb3B0aW9ucywgZmlyc3RNYXRjaE9ubHkpID0+IHtcblx0aW5wdXRzID0gc2FuaXRpemVBcnJheShpbnB1dHMsICdpbnB1dHMnKTtcblx0cGF0dGVybnMgPSBzYW5pdGl6ZUFycmF5KHBhdHRlcm5zLCAncGF0dGVybnMnKTtcblxuXHRpZiAocGF0dGVybnMubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIFtdO1xuXHR9XG5cblx0cGF0dGVybnMgPSBwYXR0ZXJucy5tYXAocGF0dGVybiA9PiBtYWtlUmVnZXhwKHBhdHRlcm4sIG9wdGlvbnMpKTtcblxuXHRjb25zdCB7YWxsUGF0dGVybnN9ID0gb3B0aW9ucyB8fCB7fTtcblx0Y29uc3QgcmVzdWx0ID0gW107XG5cblx0Zm9yIChjb25zdCBpbnB1dCBvZiBpbnB1dHMpIHtcblx0XHQvLyBTdHJpbmcgaXMgaW5jbHVkZWQgb25seSBpZiBpdCBtYXRjaGVzIGF0IGxlYXN0IG9uZSBub24tbmVnYXRlZCBwYXR0ZXJuIHN1cHBsaWVkLlxuXHRcdC8vIE5vdGU6IHRoZSBgYWxsUGF0dGVybnNgIG9wdGlvbiByZXF1aXJlcyBldmVyeSBub24tbmVnYXRlZCBwYXR0ZXJuIHRvIGJlIG1hdGNoZWQgb25jZS5cblx0XHQvLyBNYXRjaGluZyBhIG5lZ2F0ZWQgcGF0dGVybiBleGNsdWRlcyB0aGUgc3RyaW5nLlxuXHRcdGxldCBtYXRjaGVzO1xuXHRcdGNvbnN0IGRpZEZpdCA9IFsuLi5wYXR0ZXJuc10uZmlsbChmYWxzZSk7XG5cblx0XHRmb3IgKGNvbnN0IFtpbmRleCwgcGF0dGVybl0gb2YgcGF0dGVybnMuZW50cmllcygpKSB7XG5cdFx0XHRpZiAocGF0dGVybi50ZXN0KGlucHV0KSkge1xuXHRcdFx0XHRkaWRGaXRbaW5kZXhdID0gdHJ1ZTtcblx0XHRcdFx0bWF0Y2hlcyA9ICFwYXR0ZXJuLm5lZ2F0ZWQ7XG5cblx0XHRcdFx0aWYgKCFtYXRjaGVzKSB7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoXG5cdFx0XHQhKFxuXHRcdFx0XHRtYXRjaGVzID09PSBmYWxzZVxuXHRcdFx0XHR8fCAobWF0Y2hlcyA9PT0gdW5kZWZpbmVkICYmIHBhdHRlcm5zLnNvbWUocGF0dGVybiA9PiAhcGF0dGVybi5uZWdhdGVkKSlcblx0XHRcdFx0fHwgKGFsbFBhdHRlcm5zICYmIGRpZEZpdC5zb21lKCh5ZXMsIGluZGV4KSA9PiAheWVzICYmICFwYXR0ZXJuc1tpbmRleF0ubmVnYXRlZCkpXG5cdFx0XHQpXG5cdFx0KSB7XG5cdFx0XHRyZXN1bHQucHVzaChpbnB1dCk7XG5cblx0XHRcdGlmIChmaXJzdE1hdGNoT25seSkge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoZXIoaW5wdXRzLCBwYXR0ZXJucywgb3B0aW9ucykge1xuXHRyZXR1cm4gYmFzZU1hdGNoZXIoaW5wdXRzLCBwYXR0ZXJucywgb3B0aW9ucywgZmFsc2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNNYXRjaChpbnB1dHMsIHBhdHRlcm5zLCBvcHRpb25zKSB7XG5cdHJldHVybiBiYXNlTWF0Y2hlcihpbnB1dHMsIHBhdHRlcm5zLCBvcHRpb25zLCB0cnVlKS5sZW5ndGggPiAwO1xufVxuIiwgIi8vIHRoaXJkIHBhcnR5IHNjb3BlXG5pbXBvcnQgKiBhcyBtYXRjaGVyIGZyb20gJ21hdGNoZXInO1xuXG5leHBvcnQgeyBtYXRjaGVyIH07XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0bWF0Y2gucGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBTbWFydE1hdGNoIHtcbiAgcHVibGljIHdpbGRjYXJkOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHdpbGRjYXJkQXJnOiBzdHJpbmcpIHtcbiAgICB0aGlzLndpbGRjYXJkID0gd2lsZGNhcmRBcmc7XG4gIH1cblxuICBwdWJsaWMgbWF0Y2gobWF0Y2hTdHJpbmdBcmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwbHVnaW5zLm1hdGNoZXIuaXNNYXRjaChtYXRjaFN0cmluZ0FyZywgdGhpcy53aWxkY2FyZCk7XG4gIH1cbn1cbiIsICJmdW5jdGlvbiBoKG4sdCxlLHIscyxpLGEsbCl7cmV0dXJuIGguZnJvbVRaKGgudHAobix0LGUscixzLGksYSksbCl9aC5mcm9tVFpJU089KG4sdCxlKT0+aC5mcm9tVFooayhuLHQpLGUpO2guZnJvbVRaPWZ1bmN0aW9uKG4sdCl7bGV0IGU9bmV3IERhdGUoRGF0ZS5VVEMobi55LG4ubS0xLG4uZCxuLmgsbi5pLG4ucykpLHI9RChuLnR6LGUpLHM9bmV3IERhdGUoZS5nZXRUaW1lKCktciksaT1EKG4udHoscyk7aWYoaS1yPT09MClyZXR1cm4gczt7bGV0IGE9bmV3IERhdGUoZS5nZXRUaW1lKCktaSksbD1EKG4udHosYSk7aWYobC1pPT09MClyZXR1cm4gYTtpZighdCYmbC1pPjApcmV0dXJuIGE7aWYodCl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpXCIpO3JldHVybiBzfX07aC50b1RaPWZ1bmN0aW9uKG4sdCl7bGV0IGU9bi50b0xvY2FsZVN0cmluZyhcImVuLVVTXCIse3RpbWVab25lOnR9KS5yZXBsYWNlKC9bXFx1MjAyZl0vLFwiIFwiKSxyPW5ldyBEYXRlKGUpO3JldHVybnt5OnIuZ2V0RnVsbFllYXIoKSxtOnIuZ2V0TW9udGgoKSsxLGQ6ci5nZXREYXRlKCksaDpyLmdldEhvdXJzKCksaTpyLmdldE1pbnV0ZXMoKSxzOnIuZ2V0U2Vjb25kcygpLHR6OnR9fTtoLnRwPShuLHQsZSxyLHMsaSxhKT0+KHt5Om4sbTp0LGQ6ZSxoOnIsaTpzLHM6aSx0ejphfSk7ZnVuY3Rpb24gRChuLHQ9bmV3IERhdGUpe2xldCBlPXQudG9Mb2NhbGVTdHJpbmcoXCJlbi1VU1wiLHt0aW1lWm9uZTpuLHRpbWVab25lTmFtZTpcInNob3J0T2Zmc2V0XCJ9KS5zcGxpdChcIiBcIikuc2xpY2UoLTEpWzBdLHI9dC50b0xvY2FsZVN0cmluZyhcImVuLVVTXCIpLnJlcGxhY2UoL1tcXHUyMDJmXS8sXCIgXCIpO3JldHVybiBEYXRlLnBhcnNlKGAke3J9IEdNVGApLURhdGUucGFyc2UoYCR7cn0gJHtlfWApfWZ1bmN0aW9uIGsobix0KXtsZXQgZT1uZXcgRGF0ZShEYXRlLnBhcnNlKG4pKTtpZihpc05hTihlKSl0aHJvdyBuZXcgRXJyb3IoXCJtaW5pdHo6IEludmFsaWQgSVNPODYwMSBwYXNzZWQgdG8gcGFyc2VyLlwiKTtsZXQgcj1uLnN1YnN0cmluZyg5KTtyZXR1cm4gbi5pbmNsdWRlcyhcIlpcIil8fHIuaW5jbHVkZXMoXCItXCIpfHxyLmluY2x1ZGVzKFwiK1wiKT9oLnRwKGUuZ2V0VVRDRnVsbFllYXIoKSxlLmdldFVUQ01vbnRoKCkrMSxlLmdldFVUQ0RhdGUoKSxlLmdldFVUQ0hvdXJzKCksZS5nZXRVVENNaW51dGVzKCksZS5nZXRVVENTZWNvbmRzKCksXCJFdGMvVVRDXCIpOmgudHAoZS5nZXRGdWxsWWVhcigpLGUuZ2V0TW9udGgoKSsxLGUuZ2V0RGF0ZSgpLGUuZ2V0SG91cnMoKSxlLmdldE1pbnV0ZXMoKSxlLmdldFNlY29uZHMoKSx0KX1oLm1pbml0ej1oO3ZhciBiPTMyLHA9MzF8Yix2PVsxLDIsNCw4LDE2XSxkPWNsYXNze3BhdHRlcm47dGltZXpvbmU7c2Vjb25kO21pbnV0ZTtob3VyO2RheTttb250aDtkYXlPZldlZWs7bGFzdERheU9mTW9udGg7c3RhckRPTTtzdGFyRE9XO2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5wYXR0ZXJuPXQsdGhpcy50aW1lem9uZT1lLHRoaXMuc2Vjb25kPUFycmF5KDYwKS5maWxsKDApLHRoaXMubWludXRlPUFycmF5KDYwKS5maWxsKDApLHRoaXMuaG91cj1BcnJheSgyNCkuZmlsbCgwKSx0aGlzLmRheT1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLm1vbnRoPUFycmF5KDEyKS5maWxsKDApLHRoaXMuZGF5T2ZXZWVrPUFycmF5KDcpLmZpbGwoMCksdGhpcy5sYXN0RGF5T2ZNb250aD0hMSx0aGlzLnN0YXJET009ITEsdGhpcy5zdGFyRE9XPSExLHRoaXMucGFyc2UoKX1wYXJzZSgpe2lmKCEodHlwZW9mIHRoaXMucGF0dGVybj09XCJzdHJpbmdcInx8dGhpcy5wYXR0ZXJuIGluc3RhbmNlb2YgU3RyaW5nKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ3JvblBhdHRlcm46IFBhdHRlcm4gaGFzIHRvIGJlIG9mIHR5cGUgc3RyaW5nLlwiKTt0aGlzLnBhdHRlcm4uaW5kZXhPZihcIkBcIik+PTAmJih0aGlzLnBhdHRlcm49dGhpcy5oYW5kbGVOaWNrbmFtZXModGhpcy5wYXR0ZXJuKS50cmltKCkpO2xldCB0PXRoaXMucGF0dGVybi5yZXBsYWNlKC9cXHMrL2csXCIgXCIpLnNwbGl0KFwiIFwiKTtpZih0Lmxlbmd0aDw1fHx0Lmxlbmd0aD42KXRocm93IG5ldyBUeXBlRXJyb3IoXCJDcm9uUGF0dGVybjogaW52YWxpZCBjb25maWd1cmF0aW9uIGZvcm1hdCAoJ1wiK3RoaXMucGF0dGVybitcIicpLCBleGFjdGx5IGZpdmUgb3Igc2l4IHNwYWNlIHNlcGFyYXRlZCBwYXJ0cyBhcmUgcmVxdWlyZWQuXCIpO2lmKHQubGVuZ3RoPT09NSYmdC51bnNoaWZ0KFwiMFwiKSx0WzNdLmluZGV4T2YoXCJMXCIpPj0wJiYodFszXT10WzNdLnJlcGxhY2UoXCJMXCIsXCJcIiksdGhpcy5sYXN0RGF5T2ZNb250aD0hMCksdFszXT09XCIqXCImJih0aGlzLnN0YXJET009ITApLHRbNF0ubGVuZ3RoPj0zJiYodFs0XT10aGlzLnJlcGxhY2VBbHBoYU1vbnRocyh0WzRdKSksdFs1XS5sZW5ndGg+PTMmJih0WzVdPXRoaXMucmVwbGFjZUFscGhhRGF5cyh0WzVdKSksdFs1XT09XCIqXCImJih0aGlzLnN0YXJET1c9ITApLHRoaXMucGF0dGVybi5pbmRleE9mKFwiP1wiKT49MCl7bGV0IGU9bmV3IGYobmV3IERhdGUsdGhpcy50aW1lem9uZSkuZ2V0RGF0ZSghMCk7dFswXT10WzBdLnJlcGxhY2UoXCI/XCIsZS5nZXRTZWNvbmRzKCkudG9TdHJpbmcoKSksdFsxXT10WzFdLnJlcGxhY2UoXCI/XCIsZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKSksdFsyXT10WzJdLnJlcGxhY2UoXCI/XCIsZS5nZXRIb3VycygpLnRvU3RyaW5nKCkpLHRoaXMuc3RhckRPTXx8KHRbM109dFszXS5yZXBsYWNlKFwiP1wiLGUuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkpKSx0WzRdPXRbNF0ucmVwbGFjZShcIj9cIiwoZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkpLHRoaXMuc3RhckRPV3x8KHRbNV09dFs1XS5yZXBsYWNlKFwiP1wiLGUuZ2V0RGF5KCkudG9TdHJpbmcoKSkpfXRoaXMudGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKHQpLHRoaXMucGFydFRvQXJyYXkoXCJzZWNvbmRcIix0WzBdLDAsMSksdGhpcy5wYXJ0VG9BcnJheShcIm1pbnV0ZVwiLHRbMV0sMCwxKSx0aGlzLnBhcnRUb0FycmF5KFwiaG91clwiLHRbMl0sMCwxKSx0aGlzLnBhcnRUb0FycmF5KFwiZGF5XCIsdFszXSwtMSwxKSx0aGlzLnBhcnRUb0FycmF5KFwibW9udGhcIix0WzRdLC0xLDEpLHRoaXMucGFydFRvQXJyYXkoXCJkYXlPZldlZWtcIix0WzVdLDAscCksdGhpcy5kYXlPZldlZWtbN10mJih0aGlzLmRheU9mV2Vla1swXT10aGlzLmRheU9mV2Vla1s3XSl9cGFydFRvQXJyYXkodCxlLHIscyl7bGV0IGk9dGhpc1t0XSxhPXQ9PT1cImRheVwiJiZ0aGlzLmxhc3REYXlPZk1vbnRoO2lmKGU9PT1cIlwiJiYhYSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgXCIrdCtcIiAoXCIrZStcIikgaXMgZW1wdHksIGNoZWNrIGZvciB0cmFpbGluZyBzcGFjZXMuXCIpO2lmKGU9PT1cIipcIilyZXR1cm4gaS5maWxsKHMpO2xldCBsPWUuc3BsaXQoXCIsXCIpO2lmKGwubGVuZ3RoPjEpZm9yKGxldCBvPTA7bzxsLmxlbmd0aDtvKyspdGhpcy5wYXJ0VG9BcnJheSh0LGxbb10scixzKTtlbHNlIGUuaW5kZXhPZihcIi1cIikhPT0tMSYmZS5pbmRleE9mKFwiL1wiKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcoZSx0LHIscyk6ZS5pbmRleE9mKFwiLVwiKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2UoZSx0LHIscyk6ZS5pbmRleE9mKFwiL1wiKSE9PS0xP3RoaXMuaGFuZGxlU3RlcHBpbmcoZSx0LHIscyk6ZSE9PVwiXCImJnRoaXMuaGFuZGxlTnVtYmVyKGUsdCxyLHMpfXRocm93QXRJbGxlZ2FsQ2hhcmFjdGVycyh0KXtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpZigoZT09PTU/L1teLyowLTksXFwtI0xdKy86L1teLyowLTksLV0rLykudGVzdCh0W2VdKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgXCIrZStcIiAoXCIrdFtlXStcIikgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLlwiKX1oYW5kbGVOdW1iZXIodCxlLHIscyl7bGV0IGk9dGhpcy5leHRyYWN0TnRoKHQsZSksYT1wYXJzZUludChpWzBdLDEwKStyO2lmKGlzTmFOKGEpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDcm9uUGF0dGVybjogXCIrZStcIiBpcyBub3QgYSBudW1iZXI6ICdcIit0K1wiJ1wiKTt0aGlzLnNldFBhcnQoZSxhLGlbMV18fHMpfXNldFBhcnQodCxlLHIpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcyx0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ3JvblBhdHRlcm46IEludmFsaWQgcGFydCBzcGVjaWZpZWQ6IFwiK3QpO2lmKHQ9PT1cImRheU9mV2Vla1wiKXtpZihlPT09NyYmKGU9MCksZTwwfHxlPjYpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgZGF5T2ZXZWVrOiBcIitlKTt0aGlzLnNldE50aFdlZWtkYXlPZk1vbnRoKGUscik7cmV0dXJufWlmKHQ9PT1cInNlY29uZFwifHx0PT09XCJtaW51dGVcIil7aWYoZTwwfHxlPj02MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciBcIit0K1wiOiBcIitlKX1lbHNlIGlmKHQ9PT1cImhvdXJcIil7aWYoZTwwfHxlPj0yNCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciBcIit0K1wiOiBcIitlKX1lbHNlIGlmKHQ9PT1cImRheVwiKXtpZihlPDB8fGU+PTMxKXRocm93IG5ldyBSYW5nZUVycm9yKFwiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yIFwiK3QrXCI6IFwiK2UpfWVsc2UgaWYodD09PVwibW9udGhcIiYmKGU8MHx8ZT49MTIpKXRocm93IG5ldyBSYW5nZUVycm9yKFwiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yIFwiK3QrXCI6IFwiK2UpO3RoaXNbdF1bZV09cn1oYW5kbGVSYW5nZVdpdGhTdGVwcGluZyh0LGUscixzKXtsZXQgaT10aGlzLmV4dHJhY3ROdGgodCxlKSxhPWlbMF0ubWF0Y2goL14oXFxkKyktKFxcZCspXFwvKFxcZCspJC8pO2lmKGE9PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHJhbmdlIHdpdGggc3RlcHBpbmc6ICdcIit0K1wiJ1wiKTtsZXRbLGwsbyx1XT1hLGM9cGFyc2VJbnQobCwxMCkrcix3PXBhcnNlSW50KG8sMTApK3IsQz1wYXJzZUludCh1LDEwKTtpZihpc05hTihjKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKVwiKTtpZihpc05hTih3KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKVwiKTtpZihpc05hTihDKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTilcIik7aWYoQz09PTApdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6IDBcIik7aWYoQz50aGlzW2VdLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHMgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHZhbHVlIG9mIHBhcnQgKFwiK3RoaXNbZV0ubGVuZ3RoK1wiKVwiKTtpZihjPncpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNyb25QYXR0ZXJuOiBGcm9tIHZhbHVlIGlzIGxhcmdlciB0aGFuIHRvIHZhbHVlOiAnXCIrdCtcIidcIik7Zm9yKGxldCBUPWM7VDw9dztUKz1DKXRoaXMuc2V0UGFydChlLFQsaVsxXXx8cyl9ZXh0cmFjdE50aCh0LGUpe2xldCByPXQscztpZihyLmluY2x1ZGVzKFwiI1wiKSl7aWYoZSE9PVwiZGF5T2ZXZWVrXCIpdGhyb3cgbmV3IEVycm9yKFwiQ3JvblBhdHRlcm46IG50aCAoIykgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkXCIpO3M9ci5zcGxpdChcIiNcIilbMV0scj1yLnNwbGl0KFwiI1wiKVswXX1yZXR1cm5bcixzXX1oYW5kbGVSYW5nZSh0LGUscixzKXtsZXQgaT10aGlzLmV4dHJhY3ROdGgodCxlKSxhPWlbMF0uc3BsaXQoXCItXCIpO2lmKGEubGVuZ3RoIT09Mil0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZTogJ1wiK3QrXCInXCIpO2xldCBsPXBhcnNlSW50KGFbMF0sMTApK3Isbz1wYXJzZUludChhWzFdLDEwKStyO2lmKGlzTmFOKGwpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIGxvd2VyIHJhbmdlIChOYU4pXCIpO2lmKGlzTmFOKG8pKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHVwcGVyIHJhbmdlIChOYU4pXCIpO2lmKGw+byl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ3JvblBhdHRlcm46IEZyb20gdmFsdWUgaXMgbGFyZ2VyIHRoYW4gdG8gdmFsdWU6ICdcIit0K1wiJ1wiKTtmb3IobGV0IHU9bDt1PD1vO3UrKyl0aGlzLnNldFBhcnQoZSx1LGlbMV18fHMpfWhhbmRsZVN0ZXBwaW5nKHQsZSxyLHMpe2xldCBpPXRoaXMuZXh0cmFjdE50aCh0LGUpLGE9aVswXS5zcGxpdChcIi9cIik7aWYoYS5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAnXCIrdCtcIidcIik7YVswXT09PVwiXCImJihhWzBdPVwiKlwiKTtsZXQgbD0wO2FbMF0hPT1cIipcIiYmKGw9cGFyc2VJbnQoYVswXSwxMCkrcik7bGV0IG89cGFyc2VJbnQoYVsxXSwxMCk7aWYoaXNOYU4obykpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6IChOYU4pXCIpO2lmKG89PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAwXCIpO2lmKG8+dGhpc1tlXS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIG1heCBzdGVwcyBmb3IgcGFydCBpcyAoXCIrdGhpc1tlXS5sZW5ndGgrXCIpXCIpO2ZvcihsZXQgdT1sO3U8dGhpc1tlXS5sZW5ndGg7dSs9byl0aGlzLnNldFBhcnQoZSx1LGlbMV18fHMpfXJlcGxhY2VBbHBoYURheXModCl7cmV0dXJuIHQucmVwbGFjZSgvLXN1bi9naSxcIi03XCIpLnJlcGxhY2UoL3N1bi9naSxcIjBcIikucmVwbGFjZSgvbW9uL2dpLFwiMVwiKS5yZXBsYWNlKC90dWUvZ2ksXCIyXCIpLnJlcGxhY2UoL3dlZC9naSxcIjNcIikucmVwbGFjZSgvdGh1L2dpLFwiNFwiKS5yZXBsYWNlKC9mcmkvZ2ksXCI1XCIpLnJlcGxhY2UoL3NhdC9naSxcIjZcIil9cmVwbGFjZUFscGhhTW9udGhzKHQpe3JldHVybiB0LnJlcGxhY2UoL2phbi9naSxcIjFcIikucmVwbGFjZSgvZmViL2dpLFwiMlwiKS5yZXBsYWNlKC9tYXIvZ2ksXCIzXCIpLnJlcGxhY2UoL2Fwci9naSxcIjRcIikucmVwbGFjZSgvbWF5L2dpLFwiNVwiKS5yZXBsYWNlKC9qdW4vZ2ksXCI2XCIpLnJlcGxhY2UoL2p1bC9naSxcIjdcIikucmVwbGFjZSgvYXVnL2dpLFwiOFwiKS5yZXBsYWNlKC9zZXAvZ2ksXCI5XCIpLnJlcGxhY2UoL29jdC9naSxcIjEwXCIpLnJlcGxhY2UoL25vdi9naSxcIjExXCIpLnJlcGxhY2UoL2RlYy9naSxcIjEyXCIpfWhhbmRsZU5pY2tuYW1lcyh0KXtsZXQgZT10LnRyaW0oKS50b0xvd2VyQ2FzZSgpO3JldHVybiBlPT09XCJAeWVhcmx5XCJ8fGU9PT1cIkBhbm51YWxseVwiP1wiMCAwIDEgMSAqXCI6ZT09PVwiQG1vbnRobHlcIj9cIjAgMCAxICogKlwiOmU9PT1cIkB3ZWVrbHlcIj9cIjAgMCAqICogMFwiOmU9PT1cIkBkYWlseVwiP1wiMCAwICogKiAqXCI6ZT09PVwiQGhvdXJseVwiP1wiMCAqICogKiAqXCI6dH1zZXROdGhXZWVrZGF5T2ZNb250aCh0LGUpe2lmKHR5cGVvZiBlIT1cIm51bWJlclwiJiZlPT09XCJMXCIpdGhpcy5kYXlPZldlZWtbdF09dGhpcy5kYXlPZldlZWtbdF18YjtlbHNlIGlmKGU9PT1wKXRoaXMuZGF5T2ZXZWVrW3RdPXA7ZWxzZSBpZihlPDYmJmU+MCl0aGlzLmRheU9mV2Vla1t0XT10aGlzLmRheU9mV2Vla1t0XXx2W2UtMV07ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uUGF0dGVybjogbnRoIHdlZWtkYXkgb3V0IG9mIHJhbmdlLCBzaG91bGQgYmUgMS01IG9yIEwuIFZhbHVlOiAke2V9LCBUeXBlOiAke3R5cGVvZiBlfWApfX07dmFyIE89WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxtPVtbXCJtb250aFwiLFwieWVhclwiLDBdLFtcImRheVwiLFwibW9udGhcIiwtMV0sW1wiaG91clwiLFwiZGF5XCIsMF0sW1wibWludXRlXCIsXCJob3VyXCIsMF0sW1wic2Vjb25kXCIsXCJtaW51dGVcIiwwXV0sZj1jbGFzcyBue3R6O21zO3NlY29uZDttaW51dGU7aG91cjtkYXk7bW9udGg7eWVhcjtjb25zdHJ1Y3Rvcih0LGUpe2lmKHRoaXMudHo9ZSx0JiZ0IGluc3RhbmNlb2YgRGF0ZSlpZighaXNOYU4odCkpdGhpcy5mcm9tRGF0ZSh0KTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDcm9uRGF0ZTogSW52YWxpZCBkYXRlIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvclwiKTtlbHNlIGlmKHQ9PT12b2lkIDApdGhpcy5mcm9tRGF0ZShuZXcgRGF0ZSk7ZWxzZSBpZih0JiZ0eXBlb2YgdD09XCJzdHJpbmdcIil0aGlzLmZyb21TdHJpbmcodCk7ZWxzZSBpZih0IGluc3RhbmNlb2Ygbil0aGlzLmZyb21Dcm9uRGF0ZSh0KTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDcm9uRGF0ZTogSW52YWxpZCB0eXBlIChcIit0eXBlb2YgdCtcIikgcGFzc2VkIHRvIENyb25EYXRlIGNvbnN0cnVjdG9yXCIpfWlzTnRoV2Vla2RheU9mTW9udGgodCxlLHIscyl7bGV0IGE9bmV3IERhdGUoRGF0ZS5VVEModCxlLHIpKS5nZXRVVENEYXkoKSxsPTA7Zm9yKGxldCBvPTE7bzw9cjtvKyspbmV3IERhdGUoRGF0ZS5VVEModCxlLG8pKS5nZXRVVENEYXkoKT09PWEmJmwrKztpZihzJnAmJnZbbC0xXSZzKXJldHVybiEwO2lmKHMmYil7bGV0IG89bmV3IERhdGUoRGF0ZS5VVEModCxlKzEsMCkpLmdldFVUQ0RhdGUoKTtmb3IobGV0IHU9cisxO3U8PW87dSsrKWlmKG5ldyBEYXRlKERhdGUuVVRDKHQsZSx1KSkuZ2V0VVRDRGF5KCk9PT1hKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZyb21EYXRlKHQpe2lmKHRoaXMudHohPT12b2lkIDApaWYodHlwZW9mIHRoaXMudHo9PVwibnVtYmVyXCIpdGhpcy5tcz10LmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPXQuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPXQuZ2V0VVRDTWludXRlcygpK3RoaXMudHosdGhpcy5ob3VyPXQuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT10LmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXQuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9dC5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKTtlbHNle2xldCBlPWgudG9UWih0LHRoaXMudHopO3RoaXMubXM9dC5nZXRNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1lLnMsdGhpcy5taW51dGU9ZS5pLHRoaXMuaG91cj1lLmgsdGhpcy5kYXk9ZS5kLHRoaXMubW9udGg9ZS5tLTEsdGhpcy55ZWFyPWUueX1lbHNlIHRoaXMubXM9dC5nZXRNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD10LmdldFNlY29uZHMoKSx0aGlzLm1pbnV0ZT10LmdldE1pbnV0ZXMoKSx0aGlzLmhvdXI9dC5nZXRIb3VycygpLHRoaXMuZGF5PXQuZ2V0RGF0ZSgpLHRoaXMubW9udGg9dC5nZXRNb250aCgpLHRoaXMueWVhcj10LmdldEZ1bGxZZWFyKCl9ZnJvbUNyb25EYXRlKHQpe3RoaXMudHo9dC50eix0aGlzLnllYXI9dC55ZWFyLHRoaXMubW9udGg9dC5tb250aCx0aGlzLmRheT10LmRheSx0aGlzLmhvdXI9dC5ob3VyLHRoaXMubWludXRlPXQubWludXRlLHRoaXMuc2Vjb25kPXQuc2Vjb25kLHRoaXMubXM9dC5tc31hcHBseSgpe2lmKHRoaXMubW9udGg+MTF8fHRoaXMuZGF5Pk9bdGhpcy5tb250aF18fHRoaXMuaG91cj41OXx8dGhpcy5taW51dGU+NTl8fHRoaXMuc2Vjb25kPjU5fHx0aGlzLmhvdXI8MHx8dGhpcy5taW51dGU8MHx8dGhpcy5zZWNvbmQ8MCl7bGV0IHQ9bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMubXMpKTtyZXR1cm4gdGhpcy5tcz10LmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPXQuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPXQuZ2V0VVRDTWludXRlcygpLHRoaXMuaG91cj10LmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9dC5nZXRVVENEYXRlKCksdGhpcy5tb250aD10LmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPXQuZ2V0VVRDRnVsbFllYXIoKSwhMH1lbHNlIHJldHVybiExfWZyb21TdHJpbmcodCl7aWYodHlwZW9mIHRoaXMudHo9PVwibnVtYmVyXCIpe2xldCBlPWguZnJvbVRaSVNPKHQpO3RoaXMubXM9ZS5nZXRVVENNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1lLmdldFVUQ1NlY29uZHMoKSx0aGlzLm1pbnV0ZT1lLmdldFVUQ01pbnV0ZXMoKSx0aGlzLmhvdXI9ZS5nZXRVVENIb3VycygpLHRoaXMuZGF5PWUuZ2V0VVRDRGF0ZSgpLHRoaXMubW9udGg9ZS5nZXRVVENNb250aCgpLHRoaXMueWVhcj1lLmdldFVUQ0Z1bGxZZWFyKCksdGhpcy5hcHBseSgpfWVsc2UgcmV0dXJuIHRoaXMuZnJvbURhdGUoaC5mcm9tVFpJU08odCx0aGlzLnR6KSl9ZmluZE5leHQodCxlLHIscyl7bGV0IGk9dGhpc1tlXSxhO3IubGFzdERheU9mTW9udGgmJih0aGlzLm1vbnRoIT09MT9hPU9bdGhpcy5tb250aF06YT1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCsxLDAsMCwwLDAsMCkpLmdldFVUQ0RhdGUoKSk7bGV0IGw9IXIuc3RhckRPVyYmZT09XCJkYXlcIj9uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCwxLDAsMCwwLDApKS5nZXRVVENEYXkoKTp2b2lkIDA7Zm9yKGxldCBvPXRoaXNbZV0rcztvPHJbZV0ubGVuZ3RoO28rKyl7bGV0IHU9cltlXVtvXTtpZihlPT09XCJkYXlcIiYmci5sYXN0RGF5T2ZNb250aCYmby1zPT1hJiYodT0xKSxlPT09XCJkYXlcIiYmIXIuc3RhckRPVyl7bGV0IGM9ci5kYXlPZldlZWtbKGwrKG8tcy0xKSklN107aWYoYyYmYyZwKWM9dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLG8tcyxjKT8xOjA7ZWxzZSBpZihjKXRocm93IG5ldyBFcnJvcihgQ3JvbkRhdGU6IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlayBlbmNvdW50ZXJlZC4gJHtjfWApO3QubGVnYWN5TW9kZSYmIXIuc3RhckRPTT91PXV8fGM6dT11JiZjfWlmKHUpcmV0dXJuIHRoaXNbZV09by1zLGkhPT10aGlzW2VdPzI6MX1yZXR1cm4gM31yZWN1cnNlKHQsZSxyKXtsZXQgcz10aGlzLmZpbmROZXh0KGUsbVtyXVswXSx0LG1bcl1bMl0pO2lmKHM+MSl7bGV0IGk9cisxO2Zvcig7aTxtLmxlbmd0aDspdGhpc1ttW2ldWzBdXT0tbVtpXVsyXSxpKys7aWYocz09PTMpcmV0dXJuIHRoaXNbbVtyXVsxXV0rKyx0aGlzW21bcl1bMF1dPS1tW3JdWzJdLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2UodCxlLDApO2lmKHRoaXMuYXBwbHkoKSlyZXR1cm4gdGhpcy5yZWN1cnNlKHQsZSxyLTEpfXJldHVybiByKz0xLHI+PW0ubGVuZ3RoP3RoaXM6dGhpcy55ZWFyPj0zZTM/bnVsbDp0aGlzLnJlY3Vyc2UodCxlLHIpfWluY3JlbWVudCh0LGUscil7cmV0dXJuIHRoaXMuc2Vjb25kKz1lLmludGVydmFsIT09dm9pZCAwJiZlLmludGVydmFsPjEmJnI/ZS5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlKHQsZSwwKX1nZXREYXRlKHQpe3JldHVybiB0fHx0aGlzLnR6PT09dm9pZCAwP25ldyBEYXRlKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLm1zKTp0eXBlb2YgdGhpcy50ej09XCJudW1iZXJcIj9uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUtdGhpcy50eix0aGlzLnNlY29uZCx0aGlzLm1zKSk6aC5mcm9tVFooaC50cCh0aGlzLnllYXIsdGhpcy5tb250aCsxLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLnR6KSwhMSl9Z2V0VGltZSgpe3JldHVybiB0aGlzLmdldERhdGUoITEpLmdldFRpbWUoKX19O2Z1bmN0aW9uIE4obil7aWYobj09PXZvaWQgMCYmKG49e30pLGRlbGV0ZSBuLm5hbWUsbi5sZWdhY3lNb2RlPW4ubGVnYWN5TW9kZT09PXZvaWQgMD8hMDpuLmxlZ2FjeU1vZGUsbi5wYXVzZWQ9bi5wYXVzZWQ9PT12b2lkIDA/ITE6bi5wYXVzZWQsbi5tYXhSdW5zPW4ubWF4UnVucz09PXZvaWQgMD8xLzA6bi5tYXhSdW5zLG4uY2F0Y2g9bi5jYXRjaD09PXZvaWQgMD8hMTpuLmNhdGNoLG4uaW50ZXJ2YWw9bi5pbnRlcnZhbD09PXZvaWQgMD8wOnBhcnNlSW50KG4uaW50ZXJ2YWwudG9TdHJpbmcoKSwxMCksbi51dGNPZmZzZXQ9bi51dGNPZmZzZXQ9PT12b2lkIDA/dm9pZCAwOnBhcnNlSW50KG4udXRjT2Zmc2V0LnRvU3RyaW5nKCksMTApLG4udW5yZWY9bi51bnJlZj09PXZvaWQgMD8hMTpuLnVucmVmLG4uc3RhcnRBdCYmKG4uc3RhcnRBdD1uZXcgZihuLnN0YXJ0QXQsbi50aW1lem9uZSkpLG4uc3RvcEF0JiYobi5zdG9wQXQ9bmV3IGYobi5zdG9wQXQsbi50aW1lem9uZSkpLG4uaW50ZXJ2YWwhPT1udWxsKXtpZihpc05hTihuLmludGVydmFsKSl0aHJvdyBuZXcgRXJyb3IoXCJDcm9uT3B0aW9uczogU3VwcGxpZWQgdmFsdWUgZm9yIGludGVydmFsIGlzIG5vdCBhIG51bWJlclwiKTtpZihuLmludGVydmFsPDApdGhyb3cgbmV3IEVycm9yKFwiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBjYW4gbm90IGJlIG5lZ2F0aXZlXCIpfWlmKG4udXRjT2Zmc2V0IT09dm9pZCAwKXtpZihpc05hTihuLnV0Y09mZnNldCkpdGhyb3cgbmV3IEVycm9yKFwiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciB1dGNPZmZzZXQsIHNob3VsZCBiZSBudW1iZXIgcmVwcmVzZW50aW5nIG1pbnV0ZXMgb2Zmc2V0IGZyb20gVVRDLlwiKTtpZihuLnV0Y09mZnNldDwtODcwfHxuLnV0Y09mZnNldD44NzApdGhyb3cgbmV3IEVycm9yKFwiQ3Jvbk9wdGlvbnM6IHV0Y09mZnNldCBvdXQgb2YgYm91bmRzLlwiKTtpZihuLnV0Y09mZnNldCE9PXZvaWQgMCYmbi50aW1lem9uZSl0aHJvdyBuZXcgRXJyb3IoXCJDcm9uT3B0aW9uczogQ29tYmluaW5nICd1dGNPZmZzZXQnIHdpdGggJ3RpbWV6b25lJyBpcyBub3QgYWxsb3dlZC5cIil9aWYobi51bnJlZiE9PSEwJiZuLnVucmVmIT09ITEpdGhyb3cgbmV3IEVycm9yKFwiQ3Jvbk9wdGlvbnM6IFVucmVmIHNob3VsZCBiZSBlaXRoZXIgdHJ1ZSwgZmFsc2Ugb3IgdW5kZWZpbmVkKGZhbHNlKS5cIik7cmV0dXJuIG59ZnVuY3Rpb24gZyhuKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pPT09XCJbb2JqZWN0IEZ1bmN0aW9uXVwifHx0eXBlb2Ygbj09XCJmdW5jdGlvblwifHxuIGluc3RhbmNlb2YgRnVuY3Rpb259ZnVuY3Rpb24gUyhuKXtyZXR1cm4gZyhuKX1mdW5jdGlvbiBQKG4pe3R5cGVvZiBEZW5vPFwidVwiJiZ0eXBlb2YgRGVuby51bnJlZlRpbWVyPFwidVwiP0Rlbm8udW5yZWZUaW1lcihuKTpuJiZ0eXBlb2Ygbi51bnJlZjxcInVcIiYmbi51bnJlZigpfXZhciBfPTMwKjFlMyx5PVtdLFI9Y2xhc3N7bmFtZTtvcHRpb25zO19zdGF0ZXM7Zm47Y29uc3RydWN0b3IodCxlLHIpe2xldCBzLGk7aWYoZyhlKSlpPWU7ZWxzZSBpZih0eXBlb2YgZT09XCJvYmplY3RcIilzPWU7ZWxzZSBpZihlIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihcIkNyb246IEludmFsaWQgYXJndW1lbnQgcGFzc2VkIGZvciBvcHRpb25zSW4uIFNob3VsZCBiZSBvbmUgb2YgZnVuY3Rpb24sIG9yIG9iamVjdCAob3B0aW9ucykuXCIpO2lmKGcocikpaT1yO2Vsc2UgaWYodHlwZW9mIHI9PVwib2JqZWN0XCIpcz1yO2Vsc2UgaWYociE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoXCJDcm9uOiBJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBmb3IgZnVuY0luLiBTaG91bGQgYmUgb25lIG9mIGZ1bmN0aW9uLCBvciBvYmplY3QgKG9wdGlvbnMpLlwiKTtpZih0aGlzLm5hbWU9cz8ubmFtZSx0aGlzLm9wdGlvbnM9TihzKSx0aGlzLl9zdGF0ZXM9e2tpbGw6ITEsYmxvY2tpbmc6ITEscHJldmlvdXNSdW46dm9pZCAwLGN1cnJlbnRSdW46dm9pZCAwLG9uY2U6dm9pZCAwLGN1cnJlbnRUaW1lb3V0OnZvaWQgMCxtYXhSdW5zOnM/cy5tYXhSdW5zOnZvaWQgMCxwYXVzZWQ6cz9zLnBhdXNlZDohMSxwYXR0ZXJuOm5ldyBkKFwiKiAqICogKiAqXCIpfSx0JiYodCBpbnN0YW5jZW9mIERhdGV8fHR5cGVvZiB0PT1cInN0cmluZ1wiJiZ0LmluZGV4T2YoXCI6XCIpPjApP3RoaXMuX3N0YXRlcy5vbmNlPW5ldyBmKHQsdGhpcy5vcHRpb25zLnRpbWV6b25lfHx0aGlzLm9wdGlvbnMudXRjT2Zmc2V0KTp0aGlzLl9zdGF0ZXMucGF0dGVybj1uZXcgZCh0LHRoaXMub3B0aW9ucy50aW1lem9uZSksdGhpcy5uYW1lKXtpZih5LmZpbmQobD0+bC5uYW1lPT09dGhpcy5uYW1lKSl0aHJvdyBuZXcgRXJyb3IoXCJDcm9uOiBUcmllZCB0byBpbml0aWFsaXplIG5ldyBuYW1lZCBqb2IgJ1wiK3RoaXMubmFtZStcIicsIGJ1dCBuYW1lIGFscmVhZHkgdGFrZW4uXCIpO3kucHVzaCh0aGlzKX1yZXR1cm4gaSE9PXZvaWQgMCYmUyhpKSYmKHRoaXMuZm49aSx0aGlzLnNjaGVkdWxlKCkpLHRoaXN9bmV4dFJ1bih0KXtsZXQgZT10aGlzLl9uZXh0KHQpO3JldHVybiBlP2UuZ2V0RGF0ZSghMSk6bnVsbH1uZXh0UnVucyh0LGUpe3RoaXMuX3N0YXRlcy5tYXhSdW5zIT09dm9pZCAwJiZ0PnRoaXMuX3N0YXRlcy5tYXhSdW5zJiYodD10aGlzLl9zdGF0ZXMubWF4UnVucyk7bGV0IHI9W10scz1lfHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bnx8dm9pZCAwO2Zvcig7dC0tJiYocz10aGlzLm5leHRSdW4ocykpOylyLnB1c2gocyk7cmV0dXJuIHJ9Z2V0UGF0dGVybigpe3JldHVybiB0aGlzLl9zdGF0ZXMucGF0dGVybj90aGlzLl9zdGF0ZXMucGF0dGVybi5wYXR0ZXJuOnZvaWQgMH1pc1J1bm5pbmcoKXtsZXQgdD10aGlzLm5leHRSdW4odGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pLGU9IXRoaXMuX3N0YXRlcy5wYXVzZWQscj10aGlzLmZuIT09dm9pZCAwLHM9IXRoaXMuX3N0YXRlcy5raWxsO3JldHVybiBlJiZyJiZzJiZ0IT09bnVsbH1pc1N0b3BwZWQoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmtpbGx9aXNCdXN5KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5ibG9ja2luZ31jdXJyZW50UnVuKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuP3RoaXMuX3N0YXRlcy5jdXJyZW50UnVuLmdldERhdGUoKTpudWxsfXByZXZpb3VzUnVuKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wcmV2aW91c1J1bj90aGlzLl9zdGF0ZXMucHJldmlvdXNSdW4uZ2V0RGF0ZSgpOm51bGx9bXNUb05leHQodCl7bGV0IGU9dGhpcy5fbmV4dCh0KTtyZXR1cm4gZT90IGluc3RhbmNlb2YgZnx8dCBpbnN0YW5jZW9mIERhdGU/ZS5nZXRUaW1lKCktdC5nZXRUaW1lKCk6ZS5nZXRUaW1lKCktbmV3IGYodCkuZ2V0VGltZSgpOm51bGx9c3RvcCgpe3RoaXMuX3N0YXRlcy5raWxsPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCk7bGV0IHQ9eS5pbmRleE9mKHRoaXMpO3Q+PTAmJnkuc3BsaWNlKHQsMSl9cGF1c2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMCwhdGhpcy5fc3RhdGVzLmtpbGx9cmVzdW1lKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wYXVzZWQ9ITEsIXRoaXMuX3N0YXRlcy5raWxsfXNjaGVkdWxlKHQpe2lmKHQmJnRoaXMuZm4pdGhyb3cgbmV3IEVycm9yKFwiQ3JvbjogSXQgaXMgbm90IGFsbG93ZWQgdG8gc2NoZWR1bGUgdHdvIGZ1bmN0aW9ucyB1c2luZyB0aGUgc2FtZSBDcm9uZXIgaW5zdGFuY2UuXCIpO3QmJih0aGlzLmZuPXQpO2xldCBlPXRoaXMubXNUb05leHQoKSxyPXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bik7cmV0dXJuIGU9PW51bGx8fGlzTmFOKGUpfHxyPT09bnVsbD90aGlzOihlPl8mJihlPV8pLHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dD1zZXRUaW1lb3V0KCgpPT50aGlzLl9jaGVja1RyaWdnZXIociksZSksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0JiZ0aGlzLm9wdGlvbnMudW5yZWYmJlAodGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0KSx0aGlzKX1hc3luYyBfdHJpZ2dlcih0KXtpZih0aGlzLl9zdGF0ZXMuYmxvY2tpbmc9ITAsdGhpcy5fc3RhdGVzLmN1cnJlbnRSdW49bmV3IGYodm9pZCAwLHRoaXMub3B0aW9ucy50aW1lem9uZXx8dGhpcy5vcHRpb25zLnV0Y09mZnNldCksdGhpcy5vcHRpb25zLmNhdGNoKXRyeXt0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWNhdGNoKGUpe2codGhpcy5vcHRpb25zLmNhdGNoKSYmdGhpcy5vcHRpb25zLmNhdGNoKGUsdGhpcyl9ZWxzZSB0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpO3RoaXMuX3N0YXRlcy5wcmV2aW91c1J1bj1uZXcgZih0LHRoaXMub3B0aW9ucy50aW1lem9uZXx8dGhpcy5vcHRpb25zLnV0Y09mZnNldCksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfWFzeW5jIHRyaWdnZXIoKXthd2FpdCB0aGlzLl90cmlnZ2VyKCl9cnVuc0xlZnQoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLm1heFJ1bnN9X2NoZWNrVHJpZ2dlcih0KXtsZXQgZT1uZXcgRGF0ZSxyPSF0aGlzLl9zdGF0ZXMucGF1c2VkJiZlLmdldFRpbWUoKT49dC5nZXRUaW1lKCkscz10aGlzLl9zdGF0ZXMuYmxvY2tpbmcmJnRoaXMub3B0aW9ucy5wcm90ZWN0O3ImJiFzPyh0aGlzLl9zdGF0ZXMubWF4UnVucyE9PXZvaWQgMCYmdGhpcy5fc3RhdGVzLm1heFJ1bnMtLSx0aGlzLl90cmlnZ2VyKCkpOnImJnMmJmcodGhpcy5vcHRpb25zLnByb3RlY3QpJiZzZXRUaW1lb3V0KCgpPT50aGlzLm9wdGlvbnMucHJvdGVjdCh0aGlzKSwwKSx0aGlzLnNjaGVkdWxlKCl9X25leHQodCl7bGV0IGU9ISEodHx8dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pLHI9ITE7IXQmJnRoaXMub3B0aW9ucy5zdGFydEF0JiZ0aGlzLm9wdGlvbnMuaW50ZXJ2YWwmJihbdCxlXT10aGlzLl9jYWxjdWxhdGVQcmV2aW91c1J1bih0LGUpLHI9IXQpLHQ9bmV3IGYodCx0aGlzLm9wdGlvbnMudGltZXpvbmV8fHRoaXMub3B0aW9ucy51dGNPZmZzZXQpLHRoaXMub3B0aW9ucy5zdGFydEF0JiZ0JiZ0LmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCkmJih0PXRoaXMub3B0aW9ucy5zdGFydEF0KTtsZXQgcz10aGlzLl9zdGF0ZXMub25jZXx8bmV3IGYodCx0aGlzLm9wdGlvbnMudGltZXpvbmV8fHRoaXMub3B0aW9ucy51dGNPZmZzZXQpO3JldHVybiFyJiZzIT09dGhpcy5fc3RhdGVzLm9uY2UmJihzPXMuaW5jcmVtZW50KHRoaXMuX3N0YXRlcy5wYXR0ZXJuLHRoaXMub3B0aW9ucyxlKSksdGhpcy5fc3RhdGVzLm9uY2UmJnRoaXMuX3N0YXRlcy5vbmNlLmdldFRpbWUoKTw9dC5nZXRUaW1lKCl8fHM9PT1udWxsfHx0aGlzLl9zdGF0ZXMubWF4UnVucyE9PXZvaWQgMCYmdGhpcy5fc3RhdGVzLm1heFJ1bnM8PTB8fHRoaXMuX3N0YXRlcy5raWxsfHx0aGlzLm9wdGlvbnMuc3RvcEF0JiZzLmdldFRpbWUoKT49dGhpcy5vcHRpb25zLnN0b3BBdC5nZXRUaW1lKCk/bnVsbDpzfV9jYWxjdWxhdGVQcmV2aW91c1J1bih0LGUpe2xldCByPW5ldyBmKHZvaWQgMCx0aGlzLm9wdGlvbnMudGltZXpvbmV8fHRoaXMub3B0aW9ucy51dGNPZmZzZXQpLHM9dDtpZih0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCk8PXIuZ2V0VGltZSgpKXtzPXRoaXMub3B0aW9ucy5zdGFydEF0O2xldCBpPXMuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7Zm9yKDtpPD1yLmdldFRpbWUoKTspcz1uZXcgZihzLHRoaXMub3B0aW9ucy50aW1lem9uZXx8dGhpcy5vcHRpb25zLnV0Y09mZnNldCkuaW5jcmVtZW50KHRoaXMuX3N0YXRlcy5wYXR0ZXJuLHRoaXMub3B0aW9ucywhMCksaT1zLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2U9ITB9cmV0dXJuIHM9PT1udWxsJiYocz12b2lkIDApLFtzLGVdfX07ZXhwb3J0e1IgYXMgQ3JvbixmIGFzIENyb25EYXRlLGQgYXMgQ3JvblBhdHRlcm4seSBhcyBzY2hlZHVsZWRKb2JzfTtcbiIsICIvKipcbiAqIEBtb2R1bGUgY29uc3RhbnRzXG4gKiBAc3VtbWFyeSBVc2VmdWwgY29uc3RhbnRzXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbGxlY3Rpb24gb2YgdXNlZnVsIGRhdGUgY29uc3RhbnRzLlxuICpcbiAqIFRoZSBjb25zdGFudHMgY291bGQgYmUgaW1wb3J0ZWQgZnJvbSBgZGF0ZS1mbnMvY29uc3RhbnRzYDpcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgbWF4VGltZSwgbWluVGltZSB9IGZyb20gXCIuL2NvbnN0YW50cy9kYXRlLWZucy9jb25zdGFudHNcIjtcbiAqXG4gKiBmdW5jdGlvbiBpc0FsbG93ZWRUaW1lKHRpbWUpIHtcbiAqICAgcmV0dXJuIHRpbWUgPD0gbWF4VGltZSAmJiB0aW1lID49IG1pblRpbWU7XG4gKiB9XG4gKiBgYGBcbiAqL1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgZGF5c0luV2Vla1xuICogQHN1bW1hcnkgRGF5cyBpbiAxIHdlZWsuXG4gKi9cbmV4cG9ydCBjb25zdCBkYXlzSW5XZWVrID0gNztcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIGRheXNJblllYXJcbiAqIEBzdW1tYXJ5IERheXMgaW4gMSB5ZWFyLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSG93IG1hbnkgZGF5cyBpbiBhIHllYXIuXG4gKlxuICogT25lIHllYXJzIGVxdWFscyAzNjUuMjQyNSBkYXlzIGFjY29yZGluZyB0byB0aGUgZm9ybXVsYTpcbiAqXG4gKiA+IExlYXAgeWVhciBvY2N1cnMgZXZlcnkgNCB5ZWFycywgZXhjZXB0IGZvciB5ZWFycyB0aGF0IGFyZSBkaXZpc2libGUgYnkgMTAwIGFuZCBub3QgZGl2aXNpYmxlIGJ5IDQwMC5cbiAqID4gMSBtZWFuIHllYXIgPSAoMzY1KzEvNC0xLzEwMCsxLzQwMCkgZGF5cyA9IDM2NS4yNDI1IGRheXNcbiAqL1xuZXhwb3J0IGNvbnN0IGRheXNJblllYXIgPSAzNjUuMjQyNTtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1heFRpbWVcbiAqIEBzdW1tYXJ5IE1heGltdW0gYWxsb3dlZCB0aW1lLlxuICpcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBtYXhUaW1lIH0gZnJvbSBcIi4vY29uc3RhbnRzL2RhdGUtZm5zL2NvbnN0YW50c1wiO1xuICpcbiAqIGNvbnN0IGlzVmFsaWQgPSA4NjQwMDAwMDAwMDAwMDAxIDw9IG1heFRpbWU7XG4gKiAvLz0+IGZhbHNlXG4gKlxuICogbmV3IERhdGUoODY0MDAwMDAwMDAwMDAwMSk7XG4gKiAvLz0+IEludmFsaWQgRGF0ZVxuICovXG5leHBvcnQgY29uc3QgbWF4VGltZSA9IE1hdGgucG93KDEwLCA4KSAqIDI0ICogNjAgKiA2MCAqIDEwMDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaW5UaW1lXG4gKiBAc3VtbWFyeSBNaW5pbXVtIGFsbG93ZWQgdGltZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgbWluVGltZSB9IGZyb20gXCIuL2NvbnN0YW50cy9kYXRlLWZucy9jb25zdGFudHNcIjtcbiAqXG4gKiBjb25zdCBpc1ZhbGlkID0gLTg2NDAwMDAwMDAwMDAwMDEgPj0gbWluVGltZTtcbiAqIC8vPT4gZmFsc2VcbiAqXG4gKiBuZXcgRGF0ZSgtODY0MDAwMDAwMDAwMDAwMSlcbiAqIC8vPT4gSW52YWxpZCBEYXRlXG4gKi9cbmV4cG9ydCBjb25zdCBtaW5UaW1lID0gLW1heFRpbWU7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaWxsaXNlY29uZHNJbldlZWtcbiAqIEBzdW1tYXJ5IE1pbGxpc2Vjb25kcyBpbiAxIHdlZWsuXG4gKi9cbmV4cG9ydCBjb25zdCBtaWxsaXNlY29uZHNJbldlZWsgPSA2MDQ4MDAwMDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaWxsaXNlY29uZHNJbkRheVxuICogQHN1bW1hcnkgTWlsbGlzZWNvbmRzIGluIDEgZGF5LlxuICovXG5leHBvcnQgY29uc3QgbWlsbGlzZWNvbmRzSW5EYXkgPSA4NjQwMDAwMDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1pbGxpc2Vjb25kc0luTWludXRlXG4gKiBAc3VtbWFyeSBNaWxsaXNlY29uZHMgaW4gMSBtaW51dGVcbiAqL1xuZXhwb3J0IGNvbnN0IG1pbGxpc2Vjb25kc0luTWludXRlID0gNjAwMDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaWxsaXNlY29uZHNJbkhvdXJcbiAqIEBzdW1tYXJ5IE1pbGxpc2Vjb25kcyBpbiAxIGhvdXJcbiAqL1xuZXhwb3J0IGNvbnN0IG1pbGxpc2Vjb25kc0luSG91ciA9IDM2MDAwMDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaWxsaXNlY29uZHNJblNlY29uZFxuICogQHN1bW1hcnkgTWlsbGlzZWNvbmRzIGluIDEgc2Vjb25kXG4gKi9cbmV4cG9ydCBjb25zdCBtaWxsaXNlY29uZHNJblNlY29uZCA9IDEwMDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaW51dGVzSW5ZZWFyXG4gKiBAc3VtbWFyeSBNaW51dGVzIGluIDEgeWVhci5cbiAqL1xuZXhwb3J0IGNvbnN0IG1pbnV0ZXNJblllYXIgPSA1MjU2MDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaW51dGVzSW5Nb250aFxuICogQHN1bW1hcnkgTWludXRlcyBpbiAxIG1vbnRoLlxuICovXG5leHBvcnQgY29uc3QgbWludXRlc0luTW9udGggPSA0MzIwMDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1pbnV0ZXNJbkRheVxuICogQHN1bW1hcnkgTWludXRlcyBpbiAxIGRheS5cbiAqL1xuZXhwb3J0IGNvbnN0IG1pbnV0ZXNJbkRheSA9IDE0NDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaW51dGVzSW5Ib3VyXG4gKiBAc3VtbWFyeSBNaW51dGVzIGluIDEgaG91ci5cbiAqL1xuZXhwb3J0IGNvbnN0IG1pbnV0ZXNJbkhvdXIgPSA2MDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1vbnRoc0luUXVhcnRlclxuICogQHN1bW1hcnkgTW9udGhzIGluIDEgcXVhcnRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IG1vbnRoc0luUXVhcnRlciA9IDM7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtb250aHNJblllYXJcbiAqIEBzdW1tYXJ5IE1vbnRocyBpbiAxIHllYXIuXG4gKi9cbmV4cG9ydCBjb25zdCBtb250aHNJblllYXIgPSAxMjtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIHF1YXJ0ZXJzSW5ZZWFyXG4gKiBAc3VtbWFyeSBRdWFydGVycyBpbiAxIHllYXJcbiAqL1xuZXhwb3J0IGNvbnN0IHF1YXJ0ZXJzSW5ZZWFyID0gNDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIHNlY29uZHNJbkhvdXJcbiAqIEBzdW1tYXJ5IFNlY29uZHMgaW4gMSBob3VyLlxuICovXG5leHBvcnQgY29uc3Qgc2Vjb25kc0luSG91ciA9IDM2MDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBzZWNvbmRzSW5NaW51dGVcbiAqIEBzdW1tYXJ5IFNlY29uZHMgaW4gMSBtaW51dGUuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWNvbmRzSW5NaW51dGUgPSA2MDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIHNlY29uZHNJbkRheVxuICogQHN1bW1hcnkgU2Vjb25kcyBpbiAxIGRheS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlY29uZHNJbkRheSA9IHNlY29uZHNJbkhvdXIgKiAyNDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIHNlY29uZHNJbldlZWtcbiAqIEBzdW1tYXJ5IFNlY29uZHMgaW4gMSB3ZWVrLlxuICovXG5leHBvcnQgY29uc3Qgc2Vjb25kc0luV2VlayA9IHNlY29uZHNJbkRheSAqIDc7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBzZWNvbmRzSW5ZZWFyXG4gKiBAc3VtbWFyeSBTZWNvbmRzIGluIDEgeWVhci5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlY29uZHNJblllYXIgPSBzZWNvbmRzSW5EYXkgKiBkYXlzSW5ZZWFyO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgc2Vjb25kc0luTW9udGhcbiAqIEBzdW1tYXJ5IFNlY29uZHMgaW4gMSBtb250aFxuICovXG5leHBvcnQgY29uc3Qgc2Vjb25kc0luTW9udGggPSBzZWNvbmRzSW5ZZWFyIC8gMTI7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBzZWNvbmRzSW5RdWFydGVyXG4gKiBAc3VtbWFyeSBTZWNvbmRzIGluIDEgcXVhcnRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlY29uZHNJblF1YXJ0ZXIgPSBzZWNvbmRzSW5Nb250aCAqIDM7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBjb25zdHJ1Y3RGcm9tU3ltYm9sXG4gKiBAc3VtbWFyeSBTeW1ib2wgZW5hYmxpbmcgRGF0ZSBleHRlbnNpb25zIHRvIGluaGVyaXQgcHJvcGVydGllcyBmcm9tIHRoZSByZWZlcmVuY2UgZGF0ZS5cbiAqXG4gKiBUaGUgc3ltYm9sIGlzIHVzZWQgdG8gZW5hYmxlIHRoZSBgY29uc3RydWN0RnJvbWAgZnVuY3Rpb24gdG8gY29uc3RydWN0IGEgZGF0ZVxuICogdXNpbmcgYSByZWZlcmVuY2UgZGF0ZSBhbmQgYSB2YWx1ZS4gSXQgYWxsb3dzIHRvIHRyYW5zZmVyIGV4dHJhIHByb3BlcnRpZXNcbiAqIGZyb20gdGhlIHJlZmVyZW5jZSBkYXRlIHRvIHRoZSBuZXcgZGF0ZS4gSXQncyB1c2VmdWwgZm9yIGV4dGVuc2lvbnMgbGlrZVxuICogW2BUWkRhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdHopIHRoYXQgYWNjZXB0IGEgdGltZSB6b25lIGFzXG4gKiBhIGNvbnN0cnVjdG9yIGFyZ3VtZW50LlxuICovXG5leHBvcnQgY29uc3QgY29uc3RydWN0RnJvbVN5bWJvbCA9IFN5bWJvbC5mb3IoXCJjb25zdHJ1Y3REYXRlRnJvbVwiKTtcbiIsICJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tU3ltYm9sIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgY29uc3RydWN0RnJvbVxuICogQGNhdGVnb3J5IEdlbmVyaWMgSGVscGVyc1xuICogQHN1bW1hcnkgQ29uc3RydWN0cyBhIGRhdGUgdXNpbmcgdGhlIHJlZmVyZW5jZSBkYXRlIGFuZCB0aGUgdmFsdWVcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RzIGEgbmV3IGRhdGUgdXNpbmcgdGhlIGNvbnN0cnVjdG9yIGZyb20gdGhlIHJlZmVyZW5jZVxuICogZGF0ZSBhbmQgdGhlIGdpdmVuIHZhbHVlLiBJdCBoZWxwcyB0byBidWlsZCBnZW5lcmljIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdFxuICogZGF0ZSBleHRlbnNpb25zLlxuICpcbiAqIEl0IGRlZmF1bHRzIHRvIGBEYXRlYCBpZiB0aGUgcGFzc2VkIHJlZmVyZW5jZSBkYXRlIGlzIGEgbnVtYmVyIG9yIGEgc3RyaW5nLlxuICpcbiAqIFN0YXJ0aW5nIGZyb20gdjMuNy4wLCBpdCBhbGxvd3MgdG8gY29uc3RydWN0IGEgZGF0ZSB1c2luZyBgW1N5bWJvbC5mb3IoXCJjb25zdHJ1Y3REYXRlRnJvbVwiKV1gXG4gKiBlbmFibGluZyB0byB0cmFuc2ZlciBleHRyYSBwcm9wZXJ0aWVzIGZyb20gdGhlIHJlZmVyZW5jZSBkYXRlIHRvIHRoZSBuZXcgZGF0ZS5cbiAqIEl0J3MgdXNlZnVsIGZvciBleHRlbnNpb25zIGxpa2UgW2BUWkRhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdHopXG4gKiB0aGF0IGFjY2VwdCBhIHRpbWUgem9uZSBhcyBhIGNvbnN0cnVjdG9yIGFyZ3VtZW50LlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIHJlZmVyZW5jZSBkYXRlIHRvIHRha2UgY29uc3RydWN0b3IgZnJvbVxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNyZWF0ZSB0aGUgZGF0ZVxuICpcbiAqIEByZXR1cm5zIERhdGUgaW5pdGlhbGl6ZWQgdXNpbmcgdGhlIGdpdmVuIGRhdGUgYW5kIHZhbHVlXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tL2RhdGUtZm5zXCI7XG4gKlxuICogLy8gQSBmdW5jdGlvbiB0aGF0IGNsb25lcyBhIGRhdGUgcHJlc2VydmluZyB0aGUgb3JpZ2luYWwgdHlwZVxuICogZnVuY3Rpb24gY2xvbmVEYXRlPERhdGVUeXBlIGV4dGVuZHMgRGF0ZT4oZGF0ZTogRGF0ZVR5cGUpOiBEYXRlVHlwZSB7XG4gKiAgIHJldHVybiBjb25zdHJ1Y3RGcm9tKFxuICogICAgIGRhdGUsIC8vIFVzZSBjb25zdHJ1Y3RvciBmcm9tIHRoZSBnaXZlbiBkYXRlXG4gKiAgICAgZGF0ZS5nZXRUaW1lKCkgLy8gVXNlIHRoZSBkYXRlIHZhbHVlIHRvIGNyZWF0ZSBhIG5ldyBkYXRlXG4gKiAgICk7XG4gKiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tKGRhdGUsIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgZGF0ZSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gZGF0ZSh2YWx1ZSk7XG5cbiAgaWYgKGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09IFwib2JqZWN0XCIgJiYgY29uc3RydWN0RnJvbVN5bWJvbCBpbiBkYXRlKVxuICAgIHJldHVybiBkYXRlW2NvbnN0cnVjdEZyb21TeW1ib2xdKHZhbHVlKTtcblxuICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHJldHVybiBuZXcgZGF0ZS5jb25zdHJ1Y3Rvcih2YWx1ZSk7XG5cbiAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBjb25zdHJ1Y3RGcm9tO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgdG9EYXRlXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgdGhlIGdpdmVuIGFyZ3VtZW50IHRvIGFuIGluc3RhbmNlIG9mIERhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IHRoZSBnaXZlbiBhcmd1bWVudCB0byBhbiBpbnN0YW5jZSBvZiBEYXRlLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBhbiBpbnN0YW5jZSBvZiBEYXRlLCB0aGUgZnVuY3Rpb24gcmV0dXJucyBpdHMgY2xvbmUuXG4gKlxuICogSWYgdGhlIGFyZ3VtZW50IGlzIGEgbnVtYmVyLCBpdCBpcyB0cmVhdGVkIGFzIGEgdGltZXN0YW1wLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBub25lIG9mIHRoZSBhYm92ZSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgSW52YWxpZCBEYXRlLlxuICpcbiAqIFN0YXJ0aW5nIGZyb20gdjMuNy4wLCBpdCBjbG9uZXMgYSBkYXRlIHVzaW5nIGBbU3ltYm9sLmZvcihcImNvbnN0cnVjdERhdGVGcm9tXCIpXWBcbiAqIGVuYWJsaW5nIHRvIHRyYW5zZmVyIGV4dHJhIHByb3BlcnRpZXMgZnJvbSB0aGUgcmVmZXJlbmNlIGRhdGUgdG8gdGhlIG5ldyBkYXRlLlxuICogSXQncyB1c2VmdWwgZm9yIGV4dGVuc2lvbnMgbGlrZSBbYFRaRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy90eilcbiAqIHRoYXQgYWNjZXB0IGEgdGltZSB6b25lIGFzIGEgY29uc3RydWN0b3IgYXJndW1lbnQuXG4gKlxuICogKipOb3RlKio6ICphbGwqIERhdGUgYXJndW1lbnRzIHBhc3NlZCB0byBhbnkgKmRhdGUtZm5zKiBmdW5jdGlvbiBpcyBwcm9jZXNzZWQgYnkgYHRvRGF0ZWAuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBhcmd1bWVudCAtIFRoZSB2YWx1ZSB0byBjb252ZXJ0XG4gKlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBkYXRlIGluIHRoZSBsb2NhbCB0aW1lIHpvbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ2xvbmUgdGhlIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSB0b0RhdGUobmV3IERhdGUoMjAxNCwgMSwgMTEsIDExLCAzMCwgMzApKVxuICogLy89PiBUdWUgRmViIDExIDIwMTQgMTE6MzA6MzBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCB0aGUgdGltZXN0YW1wIHRvIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSB0b0RhdGUoMTM5MjA5ODQzMDAwMClcbiAqIC8vPT4gVHVlIEZlYiAxMSAyMDE0IDExOjMwOjMwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUoYXJndW1lbnQsIGNvbnRleHQpIHtcbiAgLy8gW1RPRE9dIEdldCByaWQgb2YgYHRvRGF0ZWAgb3IgYGNvbnN0cnVjdEZyb21gP1xuICByZXR1cm4gY29uc3RydWN0RnJvbShjb250ZXh0IHx8IGFyZ3VtZW50LCBhcmd1bWVudCk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgdG9EYXRlO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZERheXN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBhZGREYXlzXG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBkYXlzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRheXMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgZGF5cyB0byBiZSBhZGRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBkYXlzIGFkZGVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFkZCAxMCBkYXlzIHRvIDEgU2VwdGVtYmVyIDIwMTQ6XG4gKiBjb25zdCByZXN1bHQgPSBhZGREYXlzKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCAxMClcbiAqIC8vPT4gVGh1IFNlcCAxMSAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGREYXlzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGlmIChpc05hTihhbW91bnQpKSByZXR1cm4gY29uc3RydWN0RnJvbShvcHRpb25zPy5pbiB8fCBkYXRlLCBOYU4pO1xuXG4gIC8vIElmIDAgZGF5cywgbm8tb3AgdG8gYXZvaWQgY2hhbmdpbmcgdGltZXMgaW4gdGhlIGhvdXIgYmVmb3JlIGVuZCBvZiBEU1RcbiAgaWYgKCFhbW91bnQpIHJldHVybiBfZGF0ZTtcblxuICBfZGF0ZS5zZXREYXRlKF9kYXRlLmdldERhdGUoKSArIGFtb3VudCk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBhZGREYXlzO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZE1vbnRoc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGFkZE1vbnRoc1xuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtb250aHMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbW9udGhzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIG1vbnRocyB0byBiZSBhZGRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgb2JqZWN0XG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIG1vbnRocyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgNSBtb250aHMgdG8gMSBTZXB0ZW1iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IGFkZE1vbnRocyhuZXcgRGF0ZSgyMDE0LCA4LCAxKSwgNSlcbiAqIC8vPT4gU3VuIEZlYiAwMSAyMDE1IDAwOjAwOjAwXG4gKlxuICogLy8gQWRkIG9uZSBtb250aCB0byAzMCBKYW51YXJ5IDIwMjM6XG4gKiBjb25zdCByZXN1bHQgPSBhZGRNb250aHMobmV3IERhdGUoMjAyMywgMCwgMzApLCAxKVxuICogLy89PiBUdWUgRmViIDI4IDIwMjMgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZE1vbnRocyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBpZiAoaXNOYU4oYW1vdW50KSkgcmV0dXJuIGNvbnN0cnVjdEZyb20ob3B0aW9ucz8uaW4gfHwgZGF0ZSwgTmFOKTtcbiAgaWYgKCFhbW91bnQpIHtcbiAgICAvLyBJZiAwIG1vbnRocywgbm8tb3AgdG8gYXZvaWQgY2hhbmdpbmcgdGltZXMgaW4gdGhlIGhvdXIgYmVmb3JlIGVuZCBvZiBEU1RcbiAgICByZXR1cm4gX2RhdGU7XG4gIH1cbiAgY29uc3QgZGF5T2ZNb250aCA9IF9kYXRlLmdldERhdGUoKTtcblxuICAvLyBUaGUgSlMgRGF0ZSBvYmplY3Qgc3VwcG9ydHMgZGF0ZSBtYXRoIGJ5IGFjY2VwdGluZyBvdXQtb2YtYm91bmRzIHZhbHVlcyBmb3JcbiAgLy8gbW9udGgsIGRheSwgZXRjLiBGb3IgZXhhbXBsZSwgbmV3IERhdGUoMjAyMCwgMCwgMCkgcmV0dXJucyAzMSBEZWMgMjAxOSBhbmRcbiAgLy8gbmV3IERhdGUoMjAyMCwgMTMsIDEpIHJldHVybnMgMSBGZWIgMjAyMS4gIFRoaXMgaXMgKmFsbW9zdCogdGhlIGJlaGF2aW9yIHdlXG4gIC8vIHdhbnQgZXhjZXB0IHRoYXQgZGF0ZXMgd2lsbCB3cmFwIGFyb3VuZCB0aGUgZW5kIG9mIGEgbW9udGgsIG1lYW5pbmcgdGhhdFxuICAvLyBuZXcgRGF0ZSgyMDIwLCAxMywgMzEpIHdpbGwgcmV0dXJuIDMgTWFyIDIwMjEgbm90IDI4IEZlYiAyMDIxIGFzIGRlc2lyZWQuIFNvXG4gIC8vIHdlJ2xsIGRlZmF1bHQgdG8gdGhlIGVuZCBvZiB0aGUgZGVzaXJlZCBtb250aCBieSBhZGRpbmcgMSB0byB0aGUgZGVzaXJlZFxuICAvLyBtb250aCBhbmQgdXNpbmcgYSBkYXRlIG9mIDAgdG8gYmFjayB1cCBvbmUgZGF5IHRvIHRoZSBlbmQgb2YgdGhlIGRlc2lyZWRcbiAgLy8gbW9udGguXG4gIGNvbnN0IGVuZE9mRGVzaXJlZE1vbnRoID0gY29uc3RydWN0RnJvbShvcHRpb25zPy5pbiB8fCBkYXRlLCBfZGF0ZS5nZXRUaW1lKCkpO1xuICBlbmRPZkRlc2lyZWRNb250aC5zZXRNb250aChfZGF0ZS5nZXRNb250aCgpICsgYW1vdW50ICsgMSwgMCk7XG4gIGNvbnN0IGRheXNJbk1vbnRoID0gZW5kT2ZEZXNpcmVkTW9udGguZ2V0RGF0ZSgpO1xuICBpZiAoZGF5T2ZNb250aCA+PSBkYXlzSW5Nb250aCkge1xuICAgIC8vIElmIHdlJ3JlIGFscmVhZHkgYXQgdGhlIGVuZCBvZiB0aGUgbW9udGgsIHRoZW4gdGhpcyBpcyB0aGUgY29ycmVjdCBkYXRlXG4gICAgLy8gYW5kIHdlJ3JlIGRvbmUuXG4gICAgcmV0dXJuIGVuZE9mRGVzaXJlZE1vbnRoO1xuICB9IGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSwgd2Ugbm93IGtub3cgdGhhdCBzZXR0aW5nIHRoZSBvcmlnaW5hbCBkYXktb2YtbW9udGggdmFsdWUgd29uJ3RcbiAgICAvLyBjYXVzZSBhbiBvdmVyZmxvdywgc28gc2V0IHRoZSBkZXNpcmVkIGRheS1vZi1tb250aC4gTm90ZSB0aGF0IHdlIGNhbid0XG4gICAgLy8ganVzdCBzZXQgdGhlIGRhdGUgb2YgYGVuZE9mRGVzaXJlZE1vbnRoYCBiZWNhdXNlIHRoYXQgb2JqZWN0IG1heSBoYXZlIGhhZFxuICAgIC8vIGl0cyB0aW1lIGNoYW5nZWQgaW4gdGhlIHVudXN1YWwgY2FzZSB3aGVyZSB3aGVyZSBhIERTVCB0cmFuc2l0aW9uIHdhcyBvblxuICAgIC8vIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGggYW5kIGl0cyBsb2NhbCB0aW1lIHdhcyBpbiB0aGUgaG91ciBza2lwcGVkIG9yXG4gICAgLy8gcmVwZWF0ZWQgbmV4dCB0byBhIERTVCB0cmFuc2l0aW9uLiAgU28gd2UgdXNlIGBkYXRlYCBpbnN0ZWFkIHdoaWNoIGlzXG4gICAgLy8gZ3VhcmFudGVlZCB0byBzdGlsbCBoYXZlIHRoZSBvcmlnaW5hbCB0aW1lLlxuICAgIF9kYXRlLnNldEZ1bGxZZWFyKFxuICAgICAgZW5kT2ZEZXNpcmVkTW9udGguZ2V0RnVsbFllYXIoKSxcbiAgICAgIGVuZE9mRGVzaXJlZE1vbnRoLmdldE1vbnRoKCksXG4gICAgICBkYXlPZk1vbnRoLFxuICAgICk7XG4gICAgcmV0dXJuIF9kYXRlO1xuICB9XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgYWRkTW9udGhzO1xuIiwgImltcG9ydCB7IGFkZERheXMgfSBmcm9tIFwiLi9hZGREYXlzLmpzXCI7XG5pbXBvcnQgeyBhZGRNb250aHMgfSBmcm9tIFwiLi9hZGRNb250aHMuanNcIjtcbmltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZH0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGFkZFxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCB5ZWFycywgbW9udGhzLCB3ZWVrcywgZGF5cywgaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgeWVhcnMsIG1vbnRocywgd2Vla3MsIGRheXMsIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB1c2luZyBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIGR1cmF0aW9uIC0gVGhlIG9iamVjdCB3aXRoIHllYXJzLCBtb250aHMsIHdlZWtzLCBkYXlzLCBob3VycywgbWludXRlcywgYW5kIHNlY29uZHMgdG8gYmUgYWRkZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgc2Vjb25kcyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgdGhlIGZvbGxvd2luZyBkdXJhdGlvbiB0byAxIFNlcHRlbWJlciAyMDE0LCAxMDoxOTo1MFxuICogY29uc3QgcmVzdWx0ID0gYWRkKG5ldyBEYXRlKDIwMTQsIDgsIDEsIDEwLCAxOSwgNTApLCB7XG4gKiAgIHllYXJzOiAyLFxuICogICBtb250aHM6IDksXG4gKiAgIHdlZWtzOiAxLFxuICogICBkYXlzOiA3LFxuICogICBob3VyczogNSxcbiAqICAgbWludXRlczogOSxcbiAqICAgc2Vjb25kczogMzAsXG4gKiB9KVxuICogLy89PiBUaHUgSnVuIDE1IDIwMTcgMTU6Mjk6MjBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZChkYXRlLCBkdXJhdGlvbiwgb3B0aW9ucykge1xuICBjb25zdCB7XG4gICAgeWVhcnMgPSAwLFxuICAgIG1vbnRocyA9IDAsXG4gICAgd2Vla3MgPSAwLFxuICAgIGRheXMgPSAwLFxuICAgIGhvdXJzID0gMCxcbiAgICBtaW51dGVzID0gMCxcbiAgICBzZWNvbmRzID0gMCxcbiAgfSA9IGR1cmF0aW9uO1xuXG4gIC8vIEFkZCB5ZWFycyBhbmQgbW9udGhzXG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgZGF0ZVdpdGhNb250aHMgPVxuICAgIG1vbnRocyB8fCB5ZWFycyA/IGFkZE1vbnRocyhfZGF0ZSwgbW9udGhzICsgeWVhcnMgKiAxMikgOiBfZGF0ZTtcblxuICAvLyBBZGQgd2Vla3MgYW5kIGRheXNcbiAgY29uc3QgZGF0ZVdpdGhEYXlzID1cbiAgICBkYXlzIHx8IHdlZWtzID8gYWRkRGF5cyhkYXRlV2l0aE1vbnRocywgZGF5cyArIHdlZWtzICogNykgOiBkYXRlV2l0aE1vbnRocztcblxuICAvLyBBZGQgZGF5cywgaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzXG4gIGNvbnN0IG1pbnV0ZXNUb0FkZCA9IG1pbnV0ZXMgKyBob3VycyAqIDYwO1xuICBjb25zdCBzZWNvbmRzVG9BZGQgPSBzZWNvbmRzICsgbWludXRlc1RvQWRkICogNjA7XG4gIGNvbnN0IG1zVG9BZGQgPSBzZWNvbmRzVG9BZGQgKiAxMDAwO1xuXG4gIHJldHVybiBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsICtkYXRlV2l0aERheXMgKyBtc1RvQWRkKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBhZGQ7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBpc1NhdHVyZGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgaXNTYXR1cmRheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIGRhdGUgU2F0dXJkYXk/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZ2l2ZW4gZGF0ZSBTYXR1cmRheT9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF0ZSBpcyBTYXR1cmRheVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAyNyBTZXB0ZW1iZXIgMjAxNCBTYXR1cmRheT9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzU2F0dXJkYXkobmV3IERhdGUoMjAxNCwgOCwgMjcpKVxuICogLy89PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NhdHVyZGF5KGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbikuZ2V0RGF5KCkgPT09IDY7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNTYXR1cmRheTtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGlzU3VuZGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgaXNTdW5kYXlcbiAqIEBjYXRlZ29yeSBXZWVrZGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiBkYXRlIFN1bmRheT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIElzIHRoZSBnaXZlbiBkYXRlIFN1bmRheT9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIFN1bmRheVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAyMSBTZXB0ZW1iZXIgMjAxNCBTdW5kYXk/XG4gKiBjb25zdCByZXN1bHQgPSBpc1N1bmRheShuZXcgRGF0ZSgyMDE0LCA4LCAyMSkpXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3VuZGF5KGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbikuZ2V0RGF5KCkgPT09IDA7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNTdW5kYXk7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBpc1dlZWtlbmR9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpc1dlZWtlbmRcbiAqIEBjYXRlZ29yeSBXZWVrZGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IERvZXMgdGhlIGdpdmVuIGRhdGUgZmFsbCBvbiBhIHdlZWtlbmQ/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBEb2VzIHRoZSBnaXZlbiBkYXRlIGZhbGwgb24gYSB3ZWVrZW5kPyBBIHdlZWtlbmQgaXMgZWl0aGVyIFNhdHVyZGF5IChgNmApIG9yIFN1bmRheSAoYDBgKS5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF0ZSBmYWxscyBvbiBhIHdlZWtlbmRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRG9lcyA1IE9jdG9iZXIgMjAxNCBmYWxsIG9uIGEgd2Vla2VuZD9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzV2Vla2VuZChuZXcgRGF0ZSgyMDE0LCA5LCA1KSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNXZWVrZW5kKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgZGF5ID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKS5nZXREYXkoKTtcbiAgcmV0dXJuIGRheSA9PT0gMCB8fCBkYXkgPT09IDY7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNXZWVrZW5kO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBpc1NhdHVyZGF5IH0gZnJvbSBcIi4vaXNTYXR1cmRheS5qc1wiO1xuaW1wb3J0IHsgaXNTdW5kYXkgfSBmcm9tIFwiLi9pc1N1bmRheS5qc1wiO1xuaW1wb3J0IHsgaXNXZWVrZW5kIH0gZnJvbSBcIi4vaXNXZWVrZW5kLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZEJ1c2luZXNzRGF5c30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGFkZEJ1c2luZXNzRGF5c1xuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYnVzaW5lc3MgZGF5cyAobW9uIC0gZnJpKSB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBidXNpbmVzcyBkYXlzIChtb24gLSBmcmkpIHRvIHRoZSBnaXZlbiBkYXRlLCBpZ25vcmluZyB3ZWVrZW5kcy5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0gYW1vdW50IC0gVGhlIGFtb3VudCBvZiBidXNpbmVzcyBkYXlzIHRvIGJlIGFkZGVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIGJ1c2luZXNzIGRheXMgYWRkZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQWRkIDEwIGJ1c2luZXNzIGRheXMgdG8gMSBTZXB0ZW1iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IGFkZEJ1c2luZXNzRGF5cyhuZXcgRGF0ZSgyMDE0LCA4LCAxKSwgMTApXG4gKiAvLz0+IE1vbiBTZXAgMTUgMjAxNCAwMDowMDowMCAoc2tpcHBlZCB3ZWVrZW5kIGRheXMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRCdXNpbmVzc0RheXMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3Qgc3RhcnRlZE9uV2Vla2VuZCA9IGlzV2Vla2VuZChfZGF0ZSwgb3B0aW9ucyk7XG5cbiAgaWYgKGlzTmFOKGFtb3VudCkpIHJldHVybiBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluLCBOYU4pO1xuXG4gIGNvbnN0IGhvdXJzID0gX2RhdGUuZ2V0SG91cnMoKTtcbiAgY29uc3Qgc2lnbiA9IGFtb3VudCA8IDAgPyAtMSA6IDE7XG4gIGNvbnN0IGZ1bGxXZWVrcyA9IE1hdGgudHJ1bmMoYW1vdW50IC8gNSk7XG5cbiAgX2RhdGUuc2V0RGF0ZShfZGF0ZS5nZXREYXRlKCkgKyBmdWxsV2Vla3MgKiA3KTtcblxuICAvLyBHZXQgcmVtYWluaW5nIGRheXMgbm90IHBhcnQgb2YgYSBmdWxsIHdlZWtcbiAgbGV0IHJlc3REYXlzID0gTWF0aC5hYnMoYW1vdW50ICUgNSk7XG5cbiAgLy8gTG9vcHMgb3ZlciByZW1haW5pbmcgZGF5c1xuICB3aGlsZSAocmVzdERheXMgPiAwKSB7XG4gICAgX2RhdGUuc2V0RGF0ZShfZGF0ZS5nZXREYXRlKCkgKyBzaWduKTtcbiAgICBpZiAoIWlzV2Vla2VuZChfZGF0ZSwgb3B0aW9ucykpIHJlc3REYXlzIC09IDE7XG4gIH1cblxuICAvLyBJZiB0aGUgZGF0ZSBpcyBhIHdlZWtlbmQgZGF5IGFuZCB3ZSByZWR1Y2UgYSBkaXZpZGFibGUgb2ZcbiAgLy8gNSBmcm9tIGl0LCB3ZSBsYW5kIG9uIGEgd2Vla2VuZCBkYXRlLlxuICAvLyBUbyBjb3VudGVyIHRoaXMsIHdlIGFkZCBkYXlzIGFjY29yZGluZ2x5IHRvIGxhbmQgb24gdGhlIG5leHQgYnVzaW5lc3MgZGF5XG4gIGlmIChzdGFydGVkT25XZWVrZW5kICYmIGlzV2Vla2VuZChfZGF0ZSwgb3B0aW9ucykgJiYgYW1vdW50ICE9PSAwKSB7XG4gICAgLy8gSWYgd2UncmUgcmVkdWNpbmcgZGF5cywgd2Ugd2FudCB0byBhZGQgZGF5cyB1bnRpbCB3ZSBsYW5kIG9uIGEgd2Vla2RheVxuICAgIC8vIElmIHdlJ3JlIGFkZGluZyBkYXlzIHdlIHdhbnQgdG8gcmVkdWNlIGRheXMgdW50aWwgd2UgbGFuZCBvbiBhIHdlZWtkYXlcbiAgICBpZiAoaXNTYXR1cmRheShfZGF0ZSwgb3B0aW9ucykpXG4gICAgICBfZGF0ZS5zZXREYXRlKF9kYXRlLmdldERhdGUoKSArIChzaWduIDwgMCA/IDIgOiAtMSkpO1xuICAgIGlmIChpc1N1bmRheShfZGF0ZSwgb3B0aW9ucykpXG4gICAgICBfZGF0ZS5zZXREYXRlKF9kYXRlLmdldERhdGUoKSArIChzaWduIDwgMCA/IDEgOiAtMikpO1xuICB9XG5cbiAgLy8gUmVzdG9yZSBob3VycyB0byBhdm9pZCBEU1QgbGFnXG4gIF9kYXRlLnNldEhvdXJzKGhvdXJzKTtcblxuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgYWRkQnVzaW5lc3NEYXlzO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZE1pbGxpc2Vjb25kc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGFkZE1pbGxpc2Vjb25kc1xuICogQGNhdGVnb3J5IE1pbGxpc2Vjb25kIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIG1pbGxpc2Vjb25kcyB0byBiZSBhZGRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgb2JqZWN0XG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIG1pbGxpc2Vjb25kcyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgNzUwIG1pbGxpc2Vjb25kcyB0byAxMCBKdWx5IDIwMTQgMTI6NDU6MzAuMDAwOlxuICogY29uc3QgcmVzdWx0ID0gYWRkTWlsbGlzZWNvbmRzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgNDUsIDMwLCAwKSwgNzUwKVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMTI6NDU6MzAuNzUwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRNaWxsaXNlY29uZHMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIHJldHVybiBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsICt0b0RhdGUoZGF0ZSkgKyBhbW91bnQpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGFkZE1pbGxpc2Vjb25kcztcbiIsICJpbXBvcnQgeyBhZGRNaWxsaXNlY29uZHMgfSBmcm9tIFwiLi9hZGRNaWxsaXNlY29uZHMuanNcIjtcbmltcG9ydCB7IG1pbGxpc2Vjb25kc0luSG91ciB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgYWRkSG91cnN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBhZGRIb3Vyc1xuICogQGNhdGVnb3J5IEhvdXIgSGVscGVyc1xuICogQHN1bW1hcnkgQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGhvdXJzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGhvdXJzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIGhvdXJzIHRvIGJlIGFkZGVkXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgaG91cnMgYWRkZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQWRkIDIgaG91cnMgdG8gMTAgSnVseSAyMDE0IDIzOjAwOjAwOlxuICogY29uc3QgcmVzdWx0ID0gYWRkSG91cnMobmV3IERhdGUoMjAxNCwgNiwgMTAsIDIzLCAwKSwgMilcbiAqIC8vPT4gRnJpIEp1bCAxMSAyMDE0IDAxOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRIb3VycyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGFkZE1pbGxpc2Vjb25kcyhkYXRlLCBhbW91bnQgKiBtaWxsaXNlY29uZHNJbkhvdXIsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGFkZEhvdXJzO1xuIiwgImxldCBkZWZhdWx0T3B0aW9ucyA9IHt9O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdE9wdGlvbnMoKSB7XG4gIHJldHVybiBkZWZhdWx0T3B0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldERlZmF1bHRPcHRpb25zKG5ld09wdGlvbnMpIHtcbiAgZGVmYXVsdE9wdGlvbnMgPSBuZXdPcHRpb25zO1xufVxuIiwgImltcG9ydCB7IGdldERlZmF1bHRPcHRpb25zIH0gZnJvbSBcIi4vX2xpYi9kZWZhdWx0T3B0aW9ucy5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdGFydE9mV2Vla30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN0YXJ0T2ZXZWVrXG4gKiBAY2F0ZWdvcnkgV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgc3RhcnQgb2YgYSB3ZWVrXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBzdGFydCBvZiBhIHdlZWsgZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdGFydE9mV2VlayhuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApKVxuICogLy89PiBTdW4gQXVnIDMxIDIwMTQgMDA6MDA6MDBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgdGhlIHdlZWsgc3RhcnRzIG9uIE1vbmRheSwgdGhlIHN0YXJ0IG9mIHRoZSB3ZWVrIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZldlZWsobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwKSwgeyB3ZWVrU3RhcnRzT246IDEgfSlcbiAqIC8vPT4gTW9uIFNlcCAwMSAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydE9mV2VlayhkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IGRlZmF1bHRPcHRpb25zID0gZ2V0RGVmYXVsdE9wdGlvbnMoKTtcbiAgY29uc3Qgd2Vla1N0YXJ0c09uID1cbiAgICBvcHRpb25zPy53ZWVrU3RhcnRzT24gPz9cbiAgICBvcHRpb25zPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbiA/P1xuICAgIGRlZmF1bHRPcHRpb25zLndlZWtTdGFydHNPbiA/P1xuICAgIGRlZmF1bHRPcHRpb25zLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uID8/XG4gICAgMDtcblxuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGNvbnN0IGRheSA9IF9kYXRlLmdldERheSgpO1xuICBjb25zdCBkaWZmID0gKGRheSA8IHdlZWtTdGFydHNPbiA/IDcgOiAwKSArIGRheSAtIHdlZWtTdGFydHNPbjtcblxuICBfZGF0ZS5zZXREYXRlKF9kYXRlLmdldERhdGUoKSAtIGRpZmYpO1xuICBfZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIF9kYXRlO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHN0YXJ0T2ZXZWVrO1xuIiwgImltcG9ydCB7IHN0YXJ0T2ZXZWVrIH0gZnJvbSBcIi4vc3RhcnRPZldlZWsuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHN0YXJ0T2ZJU09XZWVrfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3RhcnRPZklTT1dlZWtcbiAqIEBjYXRlZ29yeSBJU08gV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGFuIElTTyB3ZWVrIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgc3RhcnQgb2YgYW4gSVNPIHdlZWsgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiBJU08gd2Vlay1udW1iZXJpbmcgeWVhcjogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBzdGFydCBvZiBhbiBJU08gd2Vla1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgc3RhcnQgb2YgYW4gSVNPIHdlZWsgZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdGFydE9mSVNPV2VlayhuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApKVxuICogLy89PiBNb24gU2VwIDAxIDIwMTQgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0T2ZJU09XZWVrKGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIHN0YXJ0T2ZXZWVrKGRhdGUsIHsgLi4ub3B0aW9ucywgd2Vla1N0YXJ0c09uOiAxIH0pO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHN0YXJ0T2ZJU09XZWVrO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mSVNPV2VlayB9IGZyb20gXCIuL3N0YXJ0T2ZJU09XZWVrLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGdldElTT1dlZWtZZWFyfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZ2V0SVNPV2Vla1llYXJcbiAqIEBjYXRlZ29yeSBJU08gV2Vlay1OdW1iZXJpbmcgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBJU08gd2Vlay1udW1iZXJpbmcgeWVhciBvZiB0aGUgZ2l2ZW4gZGF0ZSxcbiAqIHdoaWNoIGFsd2F5cyBzdGFydHMgMyBkYXlzIGJlZm9yZSB0aGUgeWVhcidzIGZpcnN0IFRodXJzZGF5LlxuICpcbiAqIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBnaXZlbiBkYXRlXG4gKlxuICogQHJldHVybnMgVGhlIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIElTTy13ZWVrIG51bWJlcmluZyB5ZWFyIGlzIDIgSmFudWFyeSAyMDA1P1xuICogY29uc3QgcmVzdWx0ID0gZ2V0SVNPV2Vla1llYXIobmV3IERhdGUoMjAwNSwgMCwgMikpXG4gKiAvLz0+IDIwMDRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldElTT1dlZWtZZWFyKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBjb25zdCB5ZWFyID0gX2RhdGUuZ2V0RnVsbFllYXIoKTtcblxuICBjb25zdCBmb3VydGhPZkphbnVhcnlPZk5leHRZZWFyID0gY29uc3RydWN0RnJvbShfZGF0ZSwgMCk7XG4gIGZvdXJ0aE9mSmFudWFyeU9mTmV4dFllYXIuc2V0RnVsbFllYXIoeWVhciArIDEsIDAsIDQpO1xuICBmb3VydGhPZkphbnVhcnlPZk5leHRZZWFyLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICBjb25zdCBzdGFydE9mTmV4dFllYXIgPSBzdGFydE9mSVNPV2Vlayhmb3VydGhPZkphbnVhcnlPZk5leHRZZWFyKTtcblxuICBjb25zdCBmb3VydGhPZkphbnVhcnlPZlRoaXNZZWFyID0gY29uc3RydWN0RnJvbShfZGF0ZSwgMCk7XG4gIGZvdXJ0aE9mSmFudWFyeU9mVGhpc1llYXIuc2V0RnVsbFllYXIoeWVhciwgMCwgNCk7XG4gIGZvdXJ0aE9mSmFudWFyeU9mVGhpc1llYXIuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIGNvbnN0IHN0YXJ0T2ZUaGlzWWVhciA9IHN0YXJ0T2ZJU09XZWVrKGZvdXJ0aE9mSmFudWFyeU9mVGhpc1llYXIpO1xuXG4gIGlmIChfZGF0ZS5nZXRUaW1lKCkgPj0gc3RhcnRPZk5leHRZZWFyLmdldFRpbWUoKSkge1xuICAgIHJldHVybiB5ZWFyICsgMTtcbiAgfSBlbHNlIGlmIChfZGF0ZS5nZXRUaW1lKCkgPj0gc3RhcnRPZlRoaXNZZWFyLmdldFRpbWUoKSkge1xuICAgIHJldHVybiB5ZWFyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB5ZWFyIC0gMTtcbiAgfVxufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGdldElTT1dlZWtZZWFyO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBHb29nbGUgQ2hyb21lIGFzIG9mIDY3LjAuMzM5Ni44NyBpbnRyb2R1Y2VkIHRpbWV6b25lcyB3aXRoIG9mZnNldCB0aGF0IGluY2x1ZGVzIHNlY29uZHMuXG4gKiBUaGV5IHVzdWFsbHkgYXBwZWFyIGZvciBkYXRlcyB0aGF0IGRlbm90ZSB0aW1lIGJlZm9yZSB0aGUgdGltZXpvbmVzIHdlcmUgaW50cm9kdWNlZFxuICogKGUuZy4gZm9yICdFdXJvcGUvUHJhZ3VlJyB0aW1lem9uZSB0aGUgb2Zmc2V0IGlzIEdNVCswMDo1Nzo0NCBiZWZvcmUgMSBPY3RvYmVyIDE4OTFcbiAqIGFuZCBHTVQrMDE6MDA6MDAgYWZ0ZXIgdGhhdCBkYXRlKVxuICpcbiAqIERhdGUjZ2V0VGltZXpvbmVPZmZzZXQgcmV0dXJucyB0aGUgb2Zmc2V0IGluIG1pbnV0ZXMgYW5kIHdvdWxkIHJldHVybiA1NyBmb3IgdGhlIGV4YW1wbGUgYWJvdmUsXG4gKiB3aGljaCB3b3VsZCBsZWFkIHRvIGluY29ycmVjdCBjYWxjdWxhdGlvbnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSB0aW1lem9uZSBvZmZzZXQgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGFrZXMgc2Vjb25kcyBpbiBhY2NvdW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhkYXRlKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUpO1xuICBjb25zdCB1dGNEYXRlID0gbmV3IERhdGUoXG4gICAgRGF0ZS5VVEMoXG4gICAgICBfZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgX2RhdGUuZ2V0TW9udGgoKSxcbiAgICAgIF9kYXRlLmdldERhdGUoKSxcbiAgICAgIF9kYXRlLmdldEhvdXJzKCksXG4gICAgICBfZGF0ZS5nZXRNaW51dGVzKCksXG4gICAgICBfZGF0ZS5nZXRTZWNvbmRzKCksXG4gICAgICBfZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSxcbiAgICApLFxuICApO1xuICB1dGNEYXRlLnNldFVUQ0Z1bGxZZWFyKF9kYXRlLmdldEZ1bGxZZWFyKCkpO1xuICByZXR1cm4gK2RhdGUgLSArdXRjRGF0ZTtcbn1cbiIsICJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4uL2NvbnN0cnVjdEZyb20uanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZURhdGVzKGNvbnRleHQsIC4uLmRhdGVzKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZSA9IGNvbnN0cnVjdEZyb20uYmluZChcbiAgICBudWxsLFxuICAgIGNvbnRleHQgfHwgZGF0ZXMuZmluZCgoZGF0ZSkgPT4gdHlwZW9mIGRhdGUgPT09IFwib2JqZWN0XCIpLFxuICApO1xuICByZXR1cm4gZGF0ZXMubWFwKG5vcm1hbGl6ZSk7XG59XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdGFydE9mRGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3RhcnRPZkRheVxuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgZGF5IGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgc3RhcnQgb2YgYSBkYXkgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBzdGFydCBvZiBhIGRheVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgc3RhcnQgb2YgYSBkYXkgZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdGFydE9mRGF5KG5ldyBEYXRlKDIwMTQsIDgsIDIsIDExLCA1NSwgMCkpXG4gKiAvLz0+IFR1ZSBTZXAgMDIgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RhcnRPZkRheShkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgX2RhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdGFydE9mRGF5O1xuIiwgImltcG9ydCB7IGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMgfSBmcm9tIFwiLi9fbGliL2dldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVEYXRlcy5qc1wiO1xuaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5EYXkgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IHN0YXJ0T2ZEYXkgfSBmcm9tIFwiLi9zdGFydE9mRGF5LmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXNcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgZGF5cyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIGRheXMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuIFRoaXMgbWVhbnMgdGhhdCB0aGUgdGltZXMgYXJlIHJlbW92ZWRcbiAqIGZyb20gdGhlIGRhdGVzIGFuZCB0aGVuIHRoZSBkaWZmZXJlbmNlIGluIGRheXMgaXMgY2FsY3VsYXRlZC5cbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgb2JqZWN0XG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBjYWxlbmRhciBkYXlzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGNhbGVuZGFyIGRheXMgYXJlIGJldHdlZW5cbiAqIC8vIDIgSnVseSAyMDExIDIzOjAwOjAwIGFuZCAyIEp1bHkgMjAxMiAwMDowMDowMD9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhcbiAqICAgbmV3IERhdGUoMjAxMiwgNiwgMiwgMCwgMCksXG4gKiAgIG5ldyBEYXRlKDIwMTEsIDYsIDIsIDIzLCAwKVxuICogKVxuICogLy89PiAzNjZcbiAqIC8vIEhvdyBtYW55IGNhbGVuZGFyIGRheXMgYXJlIGJldHdlZW5cbiAqIC8vIDIgSnVseSAyMDExIDIzOjU5OjAwIGFuZCAzIEp1bHkgMjAxMSAwMDowMTowMD9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyhcbiAqICAgbmV3IERhdGUoMjAxMSwgNiwgMywgMCwgMSksXG4gKiAgIG5ldyBEYXRlKDIwMTEsIDYsIDIsIDIzLCA1OSlcbiAqIClcbiAqIC8vPT4gMVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGxhdGVyRGF0ZSwgZWFybGllckRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgW2xhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlX10gPSBub3JtYWxpemVEYXRlcyhcbiAgICBvcHRpb25zPy5pbixcbiAgICBsYXRlckRhdGUsXG4gICAgZWFybGllckRhdGUsXG4gICk7XG5cbiAgY29uc3QgbGF0ZXJTdGFydE9mRGF5ID0gc3RhcnRPZkRheShsYXRlckRhdGVfKTtcbiAgY29uc3QgZWFybGllclN0YXJ0T2ZEYXkgPSBzdGFydE9mRGF5KGVhcmxpZXJEYXRlXyk7XG5cbiAgY29uc3QgbGF0ZXJUaW1lc3RhbXAgPVxuICAgICtsYXRlclN0YXJ0T2ZEYXkgLSBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzKGxhdGVyU3RhcnRPZkRheSk7XG4gIGNvbnN0IGVhcmxpZXJUaW1lc3RhbXAgPVxuICAgICtlYXJsaWVyU3RhcnRPZkRheSAtIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMoZWFybGllclN0YXJ0T2ZEYXkpO1xuXG4gIC8vIFJvdW5kIHRoZSBudW1iZXIgb2YgZGF5cyB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIGJlY2F1c2UgdGhlIG51bWJlciBvZlxuICAvLyBtaWxsaXNlY29uZHMgaW4gYSBkYXkgaXMgbm90IGNvbnN0YW50IChlLmcuIGl0J3MgZGlmZmVyZW50IGluIHRoZSB3ZWVrIG9mXG4gIC8vIHRoZSBkYXlsaWdodCBzYXZpbmcgdGltZSBjbG9jayBzaGlmdCkuXG4gIHJldHVybiBNYXRoLnJvdW5kKChsYXRlclRpbWVzdGFtcCAtIGVhcmxpZXJUaW1lc3RhbXApIC8gbWlsbGlzZWNvbmRzSW5EYXkpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cztcbiIsICJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgZ2V0SVNPV2Vla1llYXIgfSBmcm9tIFwiLi9nZXRJU09XZWVrWWVhci5qc1wiO1xuaW1wb3J0IHsgc3RhcnRPZklTT1dlZWsgfSBmcm9tIFwiLi9zdGFydE9mSVNPV2Vlay5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc3RhcnRPZklTT1dlZWtZZWFyfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3RhcnRPZklTT1dlZWtZZWFyXG4gKiBAY2F0ZWdvcnkgSVNPIFdlZWstTnVtYmVyaW5nIFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBzdGFydCBvZiBhbiBJU08gd2Vlay1udW1iZXJpbmcgeWVhciBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGFuIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyLFxuICogd2hpY2ggYWx3YXlzIHN0YXJ0cyAzIGRheXMgYmVmb3JlIHRoZSB5ZWFyJ3MgZmlyc3QgVGh1cnNkYXkuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHN0YXJ0IG9mIGFuIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBzdGFydCBvZiBhbiBJU08gd2Vlay1udW1iZXJpbmcgeWVhciBmb3IgMiBKdWx5IDIwMDU6XG4gKiBjb25zdCByZXN1bHQgPSBzdGFydE9mSVNPV2Vla1llYXIobmV3IERhdGUoMjAwNSwgNiwgMikpXG4gKiAvLz0+IE1vbiBKYW4gMDMgMjAwNSAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RhcnRPZklTT1dlZWtZZWFyKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgeWVhciA9IGdldElTT1dlZWtZZWFyKGRhdGUsIG9wdGlvbnMpO1xuICBjb25zdCBmb3VydGhPZkphbnVhcnkgPSBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsIDApO1xuICBmb3VydGhPZkphbnVhcnkuc2V0RnVsbFllYXIoeWVhciwgMCwgNCk7XG4gIGZvdXJ0aE9mSmFudWFyeS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIHN0YXJ0T2ZJU09XZWVrKGZvdXJ0aE9mSmFudWFyeSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc3RhcnRPZklTT1dlZWtZZWFyO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5DYWxlbmRhckRheXMuanNcIjtcbmltcG9ydCB7IHN0YXJ0T2ZJU09XZWVrWWVhciB9IGZyb20gXCIuL3N0YXJ0T2ZJU09XZWVrWWVhci5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzZXRJU09XZWVrWWVhcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHNldElTT1dlZWtZZWFyXG4gKiBAY2F0ZWdvcnkgSVNPIFdlZWstTnVtYmVyaW5nIFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgU2V0IHRoZSBJU08gd2Vlay1udW1iZXJpbmcgeWVhciB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFNldCB0aGUgSVNPIHdlZWstbnVtYmVyaW5nIHllYXIgdG8gdGhlIGdpdmVuIGRhdGUsXG4gKiBzYXZpbmcgdGhlIHdlZWsgbnVtYmVyIGFuZCB0aGUgd2Vla2RheSBudW1iZXIuXG4gKlxuICogSVNPIHdlZWstbnVtYmVyaW5nIHllYXI6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB1c2luZyBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHdlZWtZZWFyIC0gVGhlIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyIG9mIHRoZSBuZXcgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyIHNldFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTZXQgSVNPIHdlZWstbnVtYmVyaW5nIHllYXIgMjAwNyB0byAyOSBEZWNlbWJlciAyMDA4OlxuICogY29uc3QgcmVzdWx0ID0gc2V0SVNPV2Vla1llYXIobmV3IERhdGUoMjAwOCwgMTEsIDI5KSwgMjAwNylcbiAqIC8vPT4gTW9uIEphbiAwMSAyMDA3IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRJU09XZWVrWWVhcihkYXRlLCB3ZWVrWWVhciwgb3B0aW9ucykge1xuICBsZXQgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBjb25zdCBkaWZmID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKFxuICAgIF9kYXRlLFxuICAgIHN0YXJ0T2ZJU09XZWVrWWVhcihfZGF0ZSwgb3B0aW9ucyksXG4gICk7XG4gIGNvbnN0IGZvdXJ0aE9mSmFudWFyeSA9IGNvbnN0cnVjdEZyb20ob3B0aW9ucz8uaW4gfHwgZGF0ZSwgMCk7XG4gIGZvdXJ0aE9mSmFudWFyeS5zZXRGdWxsWWVhcih3ZWVrWWVhciwgMCwgNCk7XG4gIGZvdXJ0aE9mSmFudWFyeS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgX2RhdGUgPSBzdGFydE9mSVNPV2Vla1llYXIoZm91cnRoT2ZKYW51YXJ5KTtcbiAgX2RhdGUuc2V0RGF0ZShfZGF0ZS5nZXREYXRlKCkgKyBkaWZmKTtcbiAgcmV0dXJuIF9kYXRlO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHNldElTT1dlZWtZZWFyO1xuIiwgImltcG9ydCB7IGdldElTT1dlZWtZZWFyIH0gZnJvbSBcIi4vZ2V0SVNPV2Vla1llYXIuanNcIjtcbmltcG9ydCB7IHNldElTT1dlZWtZZWFyIH0gZnJvbSBcIi4vc2V0SVNPV2Vla1llYXIuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZElTT1dlZWtZZWFyc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGFkZElTT1dlZWtZZWFyc1xuICogQGNhdGVnb3J5IElTTyBXZWVrLU51bWJlcmluZyBZZWFyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBJU08gd2Vlay1udW1iZXJpbmcgeWVhcnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgSVNPIHdlZWstbnVtYmVyaW5nIHllYXJzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFycyB0byBiZSBhZGRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBJU08gd2Vlay1udW1iZXJpbmcgeWVhcnMgYWRkZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQWRkIDUgSVNPIHdlZWstbnVtYmVyaW5nIHllYXJzIHRvIDIgSnVseSAyMDEwOlxuICogY29uc3QgcmVzdWx0ID0gYWRkSVNPV2Vla1llYXJzKG5ldyBEYXRlKDIwMTAsIDYsIDIpLCA1KVxuICogLy89PiBGcmkgSnVuIDI2IDIwMTUgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZElTT1dlZWtZZWFycyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIHNldElTT1dlZWtZZWFyKGRhdGUsIGdldElTT1dlZWtZZWFyKGRhdGUsIG9wdGlvbnMpICsgYW1vdW50LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBhZGRJU09XZWVrWWVhcnM7XG4iLCAiaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5NaW51dGUgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgYWRkTWludXRlc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGFkZE1pbnV0ZXNcbiAqIEBjYXRlZ29yeSBNaW51dGUgSGVscGVyc1xuICogQHN1bW1hcnkgQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbnV0ZXMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWludXRlcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0gYW1vdW50IC0gVGhlIGFtb3VudCBvZiBtaW51dGVzIHRvIGJlIGFkZGVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIG1pbnV0ZXMgYWRkZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQWRkIDMwIG1pbnV0ZXMgdG8gMTAgSnVseSAyMDE0IDEyOjAwOjAwOlxuICogY29uc3QgcmVzdWx0ID0gYWRkTWludXRlcyhuZXcgRGF0ZSgyMDE0LCA2LCAxMCwgMTIsIDApLCAzMClcbiAqIC8vPT4gVGh1IEp1bCAxMCAyMDE0IDEyOjMwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRNaW51dGVzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIF9kYXRlLnNldFRpbWUoX2RhdGUuZ2V0VGltZSgpICsgYW1vdW50ICogbWlsbGlzZWNvbmRzSW5NaW51dGUpO1xuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgYWRkTWludXRlcztcbiIsICJpbXBvcnQgeyBhZGRNb250aHMgfSBmcm9tIFwiLi9hZGRNb250aHMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZFF1YXJ0ZXJzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgYWRkUXVhcnRlcnNcbiAqIEBjYXRlZ29yeSBRdWFydGVyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB5ZWFyIHF1YXJ0ZXJzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHllYXIgcXVhcnRlcnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgcXVhcnRlcnMgdG8gYmUgYWRkZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgcXVhcnRlcnMgYWRkZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQWRkIDEgcXVhcnRlciB0byAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gYWRkUXVhcnRlcnMobmV3IERhdGUoMjAxNCwgOCwgMSksIDEpXG4gKiAvLz07IE1vbiBEZWMgMDEgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkUXVhcnRlcnMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIHJldHVybiBhZGRNb250aHMoZGF0ZSwgYW1vdW50ICogMywgb3B0aW9ucyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgYWRkUXVhcnRlcnM7XG4iLCAiaW1wb3J0IHsgYWRkTWlsbGlzZWNvbmRzIH0gZnJvbSBcIi4vYWRkTWlsbGlzZWNvbmRzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBhZGRTZWNvbmRzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgYWRkU2Vjb25kc1xuICogQGNhdGVnb3J5IFNlY29uZCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc2Vjb25kcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzZWNvbmRzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIHNlY29uZHMgdG8gYmUgYWRkZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgc2Vjb25kcyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgMzAgc2Vjb25kcyB0byAxMCBKdWx5IDIwMTQgMTI6NDU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBhZGRTZWNvbmRzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgNDUsIDApLCAzMClcbiAqIC8vPT4gVGh1IEp1bCAxMCAyMDE0IDEyOjQ1OjMwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRTZWNvbmRzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICByZXR1cm4gYWRkTWlsbGlzZWNvbmRzKGRhdGUsIGFtb3VudCAqIDEwMDAsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGFkZFNlY29uZHM7XG4iLCAiaW1wb3J0IHsgYWRkRGF5cyB9IGZyb20gXCIuL2FkZERheXMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGFkZFdlZWtzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgYWRkV2Vla3NcbiAqIEBjYXRlZ29yeSBXZWVrIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB3ZWVrcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB3ZWVrcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0gYW1vdW50IC0gVGhlIGFtb3VudCBvZiB3ZWVrcyB0byBiZSBhZGRlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSB3ZWVrcyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgNCB3ZWVrcyB0byAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gYWRkV2Vla3MobmV3IERhdGUoMjAxNCwgOCwgMSksIDQpXG4gKiAvLz0+IE1vbiBTZXAgMjkgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkV2Vla3MoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIHJldHVybiBhZGREYXlzKGRhdGUsIGFtb3VudCAqIDcsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGFkZFdlZWtzO1xuIiwgImltcG9ydCB7IGFkZE1vbnRocyB9IGZyb20gXCIuL2FkZE1vbnRocy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgYWRkWWVhcnN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBhZGRZZWFyc1xuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHllYXJzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHllYXJzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZS5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIHllYXJzIHRvIGJlIGFkZGVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSB5ZWFycyBhZGRlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgNSB5ZWFycyB0byAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gYWRkWWVhcnMobmV3IERhdGUoMjAxNCwgOCwgMSksIDUpXG4gKiAvLz0+IFN1biBTZXAgMDEgMjAxOSAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkWWVhcnMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIHJldHVybiBhZGRNb250aHMoZGF0ZSwgYW1vdW50ICogMTIsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGFkZFllYXJzO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmd9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBhcmVJbnRlcnZhbHNPdmVybGFwcGluZ1xuICogQGNhdGVnb3J5IEludGVydmFsIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiB0aW1lIGludGVydmFsIG92ZXJsYXBwaW5nIHdpdGggYW5vdGhlciB0aW1lIGludGVydmFsP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIHRpbWUgaW50ZXJ2YWwgb3ZlcmxhcHBpbmcgd2l0aCBhbm90aGVyIHRpbWUgaW50ZXJ2YWw/IEFkamFjZW50IGludGVydmFscyBkbyBub3QgY291bnQgYXMgb3ZlcmxhcHBpbmcgdW5sZXNzIGBpbmNsdXNpdmVgIGlzIHNldCB0byBgdHJ1ZWAuXG4gKlxuICogQHBhcmFtIGludGVydmFsTGVmdCAtIFRoZSBmaXJzdCBpbnRlcnZhbCB0byBjb21wYXJlLlxuICogQHBhcmFtIGludGVydmFsUmlnaHQgLSBUaGUgc2Vjb25kIGludGVydmFsIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgV2hldGhlciB0aGUgdGltZSBpbnRlcnZhbHMgYXJlIG92ZXJsYXBwaW5nXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciBvdmVybGFwcGluZyB0aW1lIGludGVydmFsczpcbiAqIGFyZUludGVydmFsc092ZXJsYXBwaW5nKFxuICogICB7IHN0YXJ0OiBuZXcgRGF0ZSgyMDE0LCAwLCAxMCksIGVuZDogbmV3IERhdGUoMjAxNCwgMCwgMjApIH0sXG4gKiAgIHsgc3RhcnQ6IG5ldyBEYXRlKDIwMTQsIDAsIDE3KSwgZW5kOiBuZXcgRGF0ZSgyMDE0LCAwLCAyMSkgfVxuICogKVxuICogLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciBub24tb3ZlcmxhcHBpbmcgdGltZSBpbnRlcnZhbHM6XG4gKiBhcmVJbnRlcnZhbHNPdmVybGFwcGluZyhcbiAqICAgeyBzdGFydDogbmV3IERhdGUoMjAxNCwgMCwgMTApLCBlbmQ6IG5ldyBEYXRlKDIwMTQsIDAsIDIwKSB9LFxuICogICB7IHN0YXJ0OiBuZXcgRGF0ZSgyMDE0LCAwLCAyMSksIGVuZDogbmV3IERhdGUoMjAxNCwgMCwgMjIpIH1cbiAqIClcbiAqIC8vPT4gZmFsc2VcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIGFkamFjZW50IHRpbWUgaW50ZXJ2YWxzOlxuICogYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmcoXG4gKiAgIHsgc3RhcnQ6IG5ldyBEYXRlKDIwMTQsIDAsIDEwKSwgZW5kOiBuZXcgRGF0ZSgyMDE0LCAwLCAyMCkgfSxcbiAqICAgeyBzdGFydDogbmV3IERhdGUoMjAxNCwgMCwgMjApLCBlbmQ6IG5ldyBEYXRlKDIwMTQsIDAsIDMwKSB9XG4gKiApXG4gKiAvLz0+IGZhbHNlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFVzaW5nIHRoZSBpbmNsdXNpdmUgb3B0aW9uOlxuICogYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmcoXG4gKiAgIHsgc3RhcnQ6IG5ldyBEYXRlKDIwMTQsIDAsIDEwKSwgZW5kOiBuZXcgRGF0ZSgyMDE0LCAwLCAyMCkgfSxcbiAqICAgeyBzdGFydDogbmV3IERhdGUoMjAxNCwgMCwgMjApLCBlbmQ6IG5ldyBEYXRlKDIwMTQsIDAsIDI0KSB9LFxuICogICB7IGluY2x1c2l2ZTogdHJ1ZSB9XG4gKiApXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFyZUludGVydmFsc092ZXJsYXBwaW5nKGludGVydmFsTGVmdCwgaW50ZXJ2YWxSaWdodCwgb3B0aW9ucykge1xuICBjb25zdCBbbGVmdFN0YXJ0VGltZSwgbGVmdEVuZFRpbWVdID0gW1xuICAgICt0b0RhdGUoaW50ZXJ2YWxMZWZ0LnN0YXJ0LCBvcHRpb25zPy5pbiksXG4gICAgK3RvRGF0ZShpbnRlcnZhbExlZnQuZW5kLCBvcHRpb25zPy5pbiksXG4gIF0uc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICBjb25zdCBbcmlnaHRTdGFydFRpbWUsIHJpZ2h0RW5kVGltZV0gPSBbXG4gICAgK3RvRGF0ZShpbnRlcnZhbFJpZ2h0LnN0YXJ0LCBvcHRpb25zPy5pbiksXG4gICAgK3RvRGF0ZShpbnRlcnZhbFJpZ2h0LmVuZCwgb3B0aW9ucz8uaW4pLFxuICBdLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcblxuICBpZiAob3B0aW9ucz8uaW5jbHVzaXZlKVxuICAgIHJldHVybiBsZWZ0U3RhcnRUaW1lIDw9IHJpZ2h0RW5kVGltZSAmJiByaWdodFN0YXJ0VGltZSA8PSBsZWZ0RW5kVGltZTtcblxuICByZXR1cm4gbGVmdFN0YXJ0VGltZSA8IHJpZ2h0RW5kVGltZSAmJiByaWdodFN0YXJ0VGltZSA8IGxlZnRFbmRUaW1lO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGFyZUludGVydmFsc092ZXJsYXBwaW5nO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIG1heH0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIG1heFxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGxhdGVzdCBvZiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGxhdGVzdCBvZiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlcyAtIFRoZSBkYXRlcyB0byBjb21wYXJlXG4gKlxuICogQHJldHVybnMgVGhlIGxhdGVzdCBvZiB0aGUgZGF0ZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hpY2ggb2YgdGhlc2UgZGF0ZXMgaXMgdGhlIGxhdGVzdD9cbiAqIGNvbnN0IHJlc3VsdCA9IG1heChbXG4gKiAgIG5ldyBEYXRlKDE5ODksIDYsIDEwKSxcbiAqICAgbmV3IERhdGUoMTk4NywgMSwgMTEpLFxuICogICBuZXcgRGF0ZSgxOTk1LCA2LCAyKSxcbiAqICAgbmV3IERhdGUoMTk5MCwgMCwgMSlcbiAqIF0pXG4gKiAvLz0+IFN1biBKdWwgMDIgMTk5NSAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF4KGRhdGVzLCBvcHRpb25zKSB7XG4gIGxldCByZXN1bHQ7XG4gIGxldCBjb250ZXh0ID0gb3B0aW9ucz8uaW47XG5cbiAgZGF0ZXMuZm9yRWFjaCgoZGF0ZSkgPT4ge1xuICAgIC8vIFVzZSB0aGUgZmlyc3QgZGF0ZSBvYmplY3QgYXMgdGhlIGNvbnRleHQgZnVuY3Rpb25cbiAgICBpZiAoIWNvbnRleHQgJiYgdHlwZW9mIGRhdGUgPT09IFwib2JqZWN0XCIpXG4gICAgICBjb250ZXh0ID0gY29uc3RydWN0RnJvbS5iaW5kKG51bGwsIGRhdGUpO1xuXG4gICAgY29uc3QgZGF0ZV8gPSB0b0RhdGUoZGF0ZSwgY29udGV4dCk7XG4gICAgaWYgKCFyZXN1bHQgfHwgcmVzdWx0IDwgZGF0ZV8gfHwgaXNOYU4oK2RhdGVfKSkgcmVzdWx0ID0gZGF0ZV87XG4gIH0pO1xuXG4gIHJldHVybiBjb25zdHJ1Y3RGcm9tKGNvbnRleHQsIHJlc3VsdCB8fCBOYU4pO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IG1heDtcbiIsICJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBtaW59IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBtaW5cbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJucyB0aGUgZWFybGllc3Qgb2YgdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJucyB0aGUgZWFybGllc3Qgb2YgdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZXMgLSBUaGUgZGF0ZXMgdG8gY29tcGFyZVxuICpcbiAqIEByZXR1cm5zIFRoZSBlYXJsaWVzdCBvZiB0aGUgZGF0ZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hpY2ggb2YgdGhlc2UgZGF0ZXMgaXMgdGhlIGVhcmxpZXN0P1xuICogY29uc3QgcmVzdWx0ID0gbWluKFtcbiAqICAgbmV3IERhdGUoMTk4OSwgNiwgMTApLFxuICogICBuZXcgRGF0ZSgxOTg3LCAxLCAxMSksXG4gKiAgIG5ldyBEYXRlKDE5OTUsIDYsIDIpLFxuICogICBuZXcgRGF0ZSgxOTkwLCAwLCAxKVxuICogXSlcbiAqIC8vPT4gV2VkIEZlYiAxMSAxOTg3IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaW4oZGF0ZXMsIG9wdGlvbnMpIHtcbiAgbGV0IHJlc3VsdDtcbiAgbGV0IGNvbnRleHQgPSBvcHRpb25zPy5pbjtcblxuICBkYXRlcy5mb3JFYWNoKChkYXRlKSA9PiB7XG4gICAgLy8gVXNlIHRoZSBmaXJzdCBkYXRlIG9iamVjdCBhcyB0aGUgY29udGV4dCBmdW5jdGlvblxuICAgIGlmICghY29udGV4dCAmJiB0eXBlb2YgZGF0ZSA9PT0gXCJvYmplY3RcIilcbiAgICAgIGNvbnRleHQgPSBjb25zdHJ1Y3RGcm9tLmJpbmQobnVsbCwgZGF0ZSk7XG5cbiAgICBjb25zdCBkYXRlXyA9IHRvRGF0ZShkYXRlLCBjb250ZXh0KTtcbiAgICBpZiAoIXJlc3VsdCB8fCByZXN1bHQgPiBkYXRlXyB8fCBpc05hTigrZGF0ZV8pKSByZXN1bHQgPSBkYXRlXztcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnN0cnVjdEZyb20oY29udGV4dCwgcmVzdWx0IHx8IE5hTik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgbWluO1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVEYXRlcy5qc1wiO1xuaW1wb3J0IHsgbWF4IH0gZnJvbSBcIi4vbWF4LmpzXCI7XG5pbXBvcnQgeyBtaW4gfSBmcm9tIFwiLi9taW4uanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGNsYW1wfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogVGhlIHtAbGluayBjbGFtcH0gZnVuY3Rpb24gcmVzdWx0IHR5cGUuIEl0IHJlc29sdmVzIHRoZSBwcm9wZXIgZGF0YSB0eXBlLlxuICogSXQgdXNlcyB0aGUgZmlyc3QgYXJndW1lbnQgZGF0ZSBvYmplY3QgdHlwZSwgc3RhcnRpbmcgZnJvbSB0aGUgZGF0ZSBhcmd1bWVudCxcbiAqIHRoZW4gdGhlIHN0YXJ0IGludGVydmFsIGRhdGUsIGFuZCBmaW5hbGx5IHRoZSBlbmQgaW50ZXJ2YWwgZGF0ZS4gSWZcbiAqIGEgY29udGV4dCBmdW5jdGlvbiBpcyBwYXNzZWQsIGl0IHVzZXMgdGhlIGNvbnRleHQgZnVuY3Rpb24gcmV0dXJuIHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBjbGFtcFxuICogQGNhdGVnb3J5IEludGVydmFsIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiBhIGRhdGUgYm91bmRlZCBieSB0aGUgc3RhcnQgYW5kIHRoZSBlbmQgb2YgdGhlIGdpdmVuIGludGVydmFsLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQ2xhbXBzIGEgZGF0ZSB0byB0aGUgbG93ZXIgYm91bmQgd2l0aCB0aGUgc3RhcnQgb2YgdGhlIGludGVydmFsIGFuZCB0aGUgdXBwZXJcbiAqIGJvdW5kIHdpdGggdGhlIGVuZCBvZiB0aGUgaW50ZXJ2YWwuXG4gKlxuICogLSBXaGVuIHRoZSBkYXRlIGlzIGxlc3MgdGhhbiB0aGUgc3RhcnQgb2YgdGhlIGludGVydmFsLCB0aGUgc3RhcnQgaXMgcmV0dXJuZWQuXG4gKiAtIFdoZW4gdGhlIGRhdGUgaXMgZ3JlYXRlciB0aGFuIHRoZSBlbmQgb2YgdGhlIGludGVydmFsLCB0aGUgZW5kIGlzIHJldHVybmVkLlxuICogLSBPdGhlcndpc2UgdGhlIGRhdGUgaXMgcmV0dXJuZWQuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIERhdGUgYXJndW1lbnQgdHlwZS5cbiAqIEB0eXBlUGFyYW0gSW50ZXJ2YWxUeXBlIC0gSW50ZXJ2YWwgYXJndW1lbnQgdHlwZS5cbiAqIEB0eXBlUGFyYW0gT3B0aW9ucyAtIE9wdGlvbnMgdHlwZS5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGJvdW5kZWRcbiAqIEBwYXJhbSBpbnRlcnZhbCAtIFRoZSBpbnRlcnZhbCB0byBib3VuZCB0b1xuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGRhdGUgYm91bmRlZCBieSB0aGUgc3RhcnQgYW5kIHRoZSBlbmQgb2YgdGhlIGludGVydmFsXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoYXQgaXMgTWFyIDIxLCAyMDIxIGJvdW5kZWQgdG8gYW4gaW50ZXJ2YWwgc3RhcnRpbmcgYXQgTWFyIDIyLCAyMDIxIGFuZCBlbmRpbmcgYXQgQXByIDAxLCAyMDIxXG4gKiBjb25zdCByZXN1bHQgPSBjbGFtcChuZXcgRGF0ZSgyMDIxLCAyLCAyMSksIHtcbiAqICAgc3RhcnQ6IG5ldyBEYXRlKDIwMjEsIDIsIDIyKSxcbiAqICAgZW5kOiBuZXcgRGF0ZSgyMDIxLCAzLCAxKSxcbiAqIH0pXG4gKiAvLz0+IE1vbiBNYXIgMjIgMjAyMSAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xhbXAoZGF0ZSwgaW50ZXJ2YWwsIG9wdGlvbnMpIHtcbiAgY29uc3QgW2RhdGVfLCBzdGFydCwgZW5kXSA9IG5vcm1hbGl6ZURhdGVzKFxuICAgIG9wdGlvbnM/LmluLFxuICAgIGRhdGUsXG4gICAgaW50ZXJ2YWwuc3RhcnQsXG4gICAgaW50ZXJ2YWwuZW5kLFxuICApO1xuXG4gIHJldHVybiBtaW4oW21heChbZGF0ZV8sIHN0YXJ0XSwgb3B0aW9ucyksIGVuZF0sIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGNsYW1wO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGNsb3Nlc3RJbmRleFRvXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiBhbiBpbmRleCBvZiB0aGUgY2xvc2VzdCBkYXRlIGZyb20gdGhlIGFycmF5IGNvbXBhcmluZyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiBhbiBpbmRleCBvZiB0aGUgY2xvc2VzdCBkYXRlIGZyb20gdGhlIGFycmF5IGNvbXBhcmluZyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAcGFyYW0gZGF0ZVRvQ29tcGFyZSAtIFRoZSBkYXRlIHRvIGNvbXBhcmUgd2l0aFxuICogQHBhcmFtIGRhdGVzIC0gVGhlIGFycmF5IHRvIHNlYXJjaFxuICpcbiAqIEByZXR1cm5zIEFuIGluZGV4IG9mIHRoZSBkYXRlIGNsb3Nlc3QgdG8gdGhlIGdpdmVuIGRhdGUgb3IgdW5kZWZpbmVkIGlmIG5vIHZhbGlkIHZhbHVlIGlzIGdpdmVuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIGRhdGUgaXMgY2xvc2VyIHRvIDYgU2VwdGVtYmVyIDIwMTU/XG4gKiBjb25zdCBkYXRlVG9Db21wYXJlID0gbmV3IERhdGUoMjAxNSwgOCwgNilcbiAqIGNvbnN0IGRhdGVzQXJyYXkgPSBbXG4gKiAgIG5ldyBEYXRlKDIwMTUsIDAsIDEpLFxuICogICBuZXcgRGF0ZSgyMDE2LCAwLCAxKSxcbiAqICAgbmV3IERhdGUoMjAxNywgMCwgMSlcbiAqIF1cbiAqIGNvbnN0IHJlc3VsdCA9IGNsb3Nlc3RJbmRleFRvKGRhdGVUb0NvbXBhcmUsIGRhdGVzQXJyYXkpXG4gKiAvLz0+IDFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsb3Nlc3RJbmRleFRvKGRhdGVUb0NvbXBhcmUsIGRhdGVzKSB7XG4gIC8vIFtUT0RPXSBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gcmV0dXJuIC0xIGhlcmUgcmF0aGVyIHRoYW4gdW5kZWZpbmVkLCBhcyB0aGlzXG4gIC8vIGlzIGhvdyBKUyBiZWhhdmVzLCBidXQgaXQgd291bGQgYmUgYSBicmVha2luZyBjaGFuZ2UsIHNvIHdlIG5lZWRcbiAgLy8gdG8gY29uc2lkZXIgaXQgZm9yIHY0LlxuICBjb25zdCB0aW1lVG9Db21wYXJlID0gK3RvRGF0ZShkYXRlVG9Db21wYXJlKTtcblxuICBpZiAoaXNOYU4odGltZVRvQ29tcGFyZSkpIHJldHVybiBOYU47XG5cbiAgbGV0IHJlc3VsdDtcbiAgbGV0IG1pbkRpc3RhbmNlO1xuICBkYXRlcy5mb3JFYWNoKChkYXRlLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGRhdGVfID0gdG9EYXRlKGRhdGUpO1xuXG4gICAgaWYgKGlzTmFOKCtkYXRlXykpIHtcbiAgICAgIHJlc3VsdCA9IE5hTjtcbiAgICAgIG1pbkRpc3RhbmNlID0gTmFOO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnModGltZVRvQ29tcGFyZSAtICtkYXRlXyk7XG4gICAgaWYgKHJlc3VsdCA9PSBudWxsIHx8IGRpc3RhbmNlIDwgbWluRGlzdGFuY2UpIHtcbiAgICAgIHJlc3VsdCA9IGluZGV4O1xuICAgICAgbWluRGlzdGFuY2UgPSBkaXN0YW5jZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgY2xvc2VzdEluZGV4VG87XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5pbXBvcnQgeyBjbG9zZXN0SW5kZXhUbyB9IGZyb20gXCIuL2Nsb3Nlc3RJbmRleFRvLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgY2xvc2VzdFRvfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogVGhlIHtAbGluayBjbG9zZXN0VG99IGZ1bmN0aW9uIHJlc3VsdCB0eXBlLiBJdCByZXNvbHZlcyB0aGUgcHJvcGVyIGRhdGEgdHlwZS5cbiAqIEl0IHVzZXMgdGhlIGZpcnN0IGFyZ3VtZW50IGRhdGUgb2JqZWN0IHR5cGUsIHN0YXJ0aW5nIGZyb20gdGhlIGRhdGUgYXJndW1lbnQsXG4gKiB0aGVuIHRoZSBzdGFydCBpbnRlcnZhbCBkYXRlLCBhbmQgZmluYWxseSB0aGUgZW5kIGludGVydmFsIGRhdGUuIElmXG4gKiBhIGNvbnRleHQgZnVuY3Rpb24gaXMgcGFzc2VkLCBpdCB1c2VzIHRoZSBjb250ZXh0IGZ1bmN0aW9uIHJldHVybiB0eXBlLlxuICovXG5cbi8qKlxuICogQG5hbWUgY2xvc2VzdFRvXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiBhIGRhdGUgZnJvbSB0aGUgYXJyYXkgY2xvc2VzdCB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiBhIGRhdGUgZnJvbSB0aGUgYXJyYXkgY2xvc2VzdCB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUb0NvbXBhcmUgLSBEYXRlIHRvIGNvbXBhcmUgYXJndW1lbnQgdHlwZS5cbiAqIEB0eXBlUGFyYW0gRGF0ZXNUeXBlIC0gRGF0ZXMgYXJyYXkgYXJndW1lbnQgdHlwZS5cbiAqIEB0eXBlUGFyYW0gT3B0aW9ucyAtIE9wdGlvbnMgdHlwZS5cbiAqXG4gKiBAcGFyYW0gZGF0ZVRvQ29tcGFyZSAtIFRoZSBkYXRlIHRvIGNvbXBhcmUgd2l0aFxuICogQHBhcmFtIGRhdGVzIC0gVGhlIGFycmF5IHRvIHNlYXJjaFxuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGZyb20gdGhlIGFycmF5IGNsb3Nlc3QgdG8gdGhlIGdpdmVuIGRhdGUgb3IgdW5kZWZpbmVkIGlmIG5vIHZhbGlkIHZhbHVlIGlzIGdpdmVuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIGRhdGUgaXMgY2xvc2VyIHRvIDYgU2VwdGVtYmVyIDIwMTU6IDEgSmFudWFyeSAyMDAwIG9yIDEgSmFudWFyeSAyMDMwP1xuICogY29uc3QgZGF0ZVRvQ29tcGFyZSA9IG5ldyBEYXRlKDIwMTUsIDgsIDYpXG4gKiBjb25zdCByZXN1bHQgPSBjbG9zZXN0VG8oZGF0ZVRvQ29tcGFyZSwgW1xuICogICBuZXcgRGF0ZSgyMDAwLCAwLCAxKSxcbiAqICAgbmV3IERhdGUoMjAzMCwgMCwgMSlcbiAqIF0pXG4gKiAvLz0+IFR1ZSBKYW4gMDEgMjAzMCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VzdFRvKGRhdGVUb0NvbXBhcmUsIGRhdGVzLCBvcHRpb25zKSB7XG4gIGNvbnN0IFtkYXRlVG9Db21wYXJlXywgLi4uZGF0ZXNfXSA9IG5vcm1hbGl6ZURhdGVzKFxuICAgIG9wdGlvbnM/LmluLFxuICAgIGRhdGVUb0NvbXBhcmUsXG4gICAgLi4uZGF0ZXMsXG4gICk7XG5cbiAgY29uc3QgaW5kZXggPSBjbG9zZXN0SW5kZXhUbyhkYXRlVG9Db21wYXJlXywgZGF0ZXNfKTtcblxuICBpZiAodHlwZW9mIGluZGV4ID09PSBcIm51bWJlclwiICYmIGlzTmFOKGluZGV4KSlcbiAgICByZXR1cm4gY29uc3RydWN0RnJvbShkYXRlVG9Db21wYXJlXywgTmFOKTtcblxuICBpZiAoaW5kZXggIT09IHVuZGVmaW5lZCkgcmV0dXJuIGRhdGVzX1tpbmRleF07XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgY2xvc2VzdFRvO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGNvbXBhcmVBc2NcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgQ29tcGFyZSB0aGUgdHdvIGRhdGVzIGFuZCByZXR1cm4gLTEsIDAgb3IgMS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbXBhcmUgdGhlIHR3byBkYXRlcyBhbmQgcmV0dXJuIDEgaWYgdGhlIGZpcnN0IGRhdGUgaXMgYWZ0ZXIgdGhlIHNlY29uZCxcbiAqIC0xIGlmIHRoZSBmaXJzdCBkYXRlIGlzIGJlZm9yZSB0aGUgc2Vjb25kIG9yIDAgaWYgZGF0ZXMgYXJlIGVxdWFsLlxuICpcbiAqIEBwYXJhbSBkYXRlTGVmdCAtIFRoZSBmaXJzdCBkYXRlIHRvIGNvbXBhcmVcbiAqIEBwYXJhbSBkYXRlUmlnaHQgLSBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZVxuICpcbiAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb25cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29tcGFyZSAxMSBGZWJydWFyeSAxOTg3IGFuZCAxMCBKdWx5IDE5ODk6XG4gKiBjb25zdCByZXN1bHQgPSBjb21wYXJlQXNjKG5ldyBEYXRlKDE5ODcsIDEsIDExKSwgbmV3IERhdGUoMTk4OSwgNiwgMTApKVxuICogLy89PiAtMVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTb3J0IHRoZSBhcnJheSBvZiBkYXRlczpcbiAqIGNvbnN0IHJlc3VsdCA9IFtcbiAqICAgbmV3IERhdGUoMTk5NSwgNiwgMiksXG4gKiAgIG5ldyBEYXRlKDE5ODcsIDEsIDExKSxcbiAqICAgbmV3IERhdGUoMTk4OSwgNiwgMTApXG4gKiBdLnNvcnQoY29tcGFyZUFzYylcbiAqIC8vPT4gW1xuICogLy8gICBXZWQgRmViIDExIDE5ODcgMDA6MDA6MDAsXG4gKiAvLyAgIE1vbiBKdWwgMTAgMTk4OSAwMDowMDowMCxcbiAqIC8vICAgU3VuIEp1bCAwMiAxOTk1IDAwOjAwOjAwXG4gKiAvLyBdXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlQXNjKGRhdGVMZWZ0LCBkYXRlUmlnaHQpIHtcbiAgY29uc3QgZGlmZiA9ICt0b0RhdGUoZGF0ZUxlZnQpIC0gK3RvRGF0ZShkYXRlUmlnaHQpO1xuXG4gIGlmIChkaWZmIDwgMCkgcmV0dXJuIC0xO1xuICBlbHNlIGlmIChkaWZmID4gMCkgcmV0dXJuIDE7XG5cbiAgLy8gUmV0dXJuIDAgaWYgZGlmZiBpcyAwOyByZXR1cm4gTmFOIGlmIGRpZmYgaXMgTmFOXG4gIHJldHVybiBkaWZmO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGNvbXBhcmVBc2M7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgY29tcGFyZURlc2NcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgQ29tcGFyZSB0aGUgdHdvIGRhdGVzIHJldmVyc2UgY2hyb25vbG9naWNhbGx5IGFuZCByZXR1cm4gLTEsIDAgb3IgMS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbXBhcmUgdGhlIHR3byBkYXRlcyBhbmQgcmV0dXJuIC0xIGlmIHRoZSBmaXJzdCBkYXRlIGlzIGFmdGVyIHRoZSBzZWNvbmQsXG4gKiAxIGlmIHRoZSBmaXJzdCBkYXRlIGlzIGJlZm9yZSB0aGUgc2Vjb25kIG9yIDAgaWYgZGF0ZXMgYXJlIGVxdWFsLlxuICpcbiAqIEBwYXJhbSBkYXRlTGVmdCAtIFRoZSBmaXJzdCBkYXRlIHRvIGNvbXBhcmVcbiAqIEBwYXJhbSBkYXRlUmlnaHQgLSBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZVxuICpcbiAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb25cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29tcGFyZSAxMSBGZWJydWFyeSAxOTg3IGFuZCAxMCBKdWx5IDE5ODkgcmV2ZXJzZSBjaHJvbm9sb2dpY2FsbHk6XG4gKiBjb25zdCByZXN1bHQgPSBjb21wYXJlRGVzYyhuZXcgRGF0ZSgxOTg3LCAxLCAxMSksIG5ldyBEYXRlKDE5ODksIDYsIDEwKSlcbiAqIC8vPT4gMVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTb3J0IHRoZSBhcnJheSBvZiBkYXRlcyBpbiByZXZlcnNlIGNocm9ub2xvZ2ljYWwgb3JkZXI6XG4gKiBjb25zdCByZXN1bHQgPSBbXG4gKiAgIG5ldyBEYXRlKDE5OTUsIDYsIDIpLFxuICogICBuZXcgRGF0ZSgxOTg3LCAxLCAxMSksXG4gKiAgIG5ldyBEYXRlKDE5ODksIDYsIDEwKVxuICogXS5zb3J0KGNvbXBhcmVEZXNjKVxuICogLy89PiBbXG4gKiAvLyAgIFN1biBKdWwgMDIgMTk5NSAwMDowMDowMCxcbiAqIC8vICAgTW9uIEp1bCAxMCAxOTg5IDAwOjAwOjAwLFxuICogLy8gICBXZWQgRmViIDExIDE5ODcgMDA6MDA6MDBcbiAqIC8vIF1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmVEZXNjKGRhdGVMZWZ0LCBkYXRlUmlnaHQpIHtcbiAgY29uc3QgZGlmZiA9ICt0b0RhdGUoZGF0ZUxlZnQpIC0gK3RvRGF0ZShkYXRlUmlnaHQpO1xuXG4gIGlmIChkaWZmID4gMCkgcmV0dXJuIC0xO1xuICBlbHNlIGlmIChkaWZmIDwgMCkgcmV0dXJuIDE7XG5cbiAgLy8gUmV0dXJuIDAgaWYgZGlmZiBpcyAwOyByZXR1cm4gTmFOIGlmIGRpZmYgaXMgTmFOXG4gIHJldHVybiBkaWZmO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGNvbXBhcmVEZXNjO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgY29uc3RydWN0Tm93XG4gKiBAY2F0ZWdvcnkgR2VuZXJpYyBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb25zdHJ1Y3RzIGEgbmV3IGN1cnJlbnQgZGF0ZSB1c2luZyB0aGUgcGFzc2VkIHZhbHVlIGNvbnN0cnVjdG9yLlxuICogQHB1cmUgZmFsc2VcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RzIGEgbmV3IGN1cnJlbnQgZGF0ZSB1c2luZyB0aGUgY29uc3RydWN0b3IgZnJvbVxuICogdGhlIHJlZmVyZW5jZSBkYXRlLiBJdCBoZWxwcyB0byBidWlsZCBnZW5lcmljIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBkYXRlXG4gKiBleHRlbnNpb25zIGFuZCB1c2UgdGhlIGN1cnJlbnQgZGF0ZS5cbiAqXG4gKiBJdCBkZWZhdWx0cyB0byBgRGF0ZWAgaWYgdGhlIHBhc3NlZCByZWZlcmVuY2UgZGF0ZSBpcyBhIG51bWJlciBvciBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSByZWZlcmVuY2UgZGF0ZSB0byB0YWtlIGNvbnN0cnVjdG9yIGZyb21cbiAqXG4gKiBAcmV0dXJucyBDdXJyZW50IGRhdGUgaW5pdGlhbGl6ZWQgdXNpbmcgdGhlIGdpdmVuIGRhdGUgY29uc3RydWN0b3JcbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgY29uc3RydWN0Tm93LCBpc1NhbWVEYXkgfSBmcm9tICdkYXRlLWZucydcbiAqXG4gKiBmdW5jdGlvbiBpc1RvZGF5PERhdGVUeXBlIGV4dGVuZHMgRGF0ZT4oXG4gKiAgIGRhdGU6IERhdGVBcmc8RGF0ZVR5cGU+LFxuICogKTogYm9vbGVhbiB7XG4gKiAgIC8vIElmIHdlIHdlcmUgdG8gdXNlIGBuZXcgRGF0ZSgpYCBkaXJlY3RseSwgdGhlIGZ1bmN0aW9uIHdvdWxkICBiZWhhdmVcbiAqICAgLy8gZGlmZmVyZW50bHkgaW4gZGlmZmVyZW50IHRpbWV6b25lcyBhbmQgcmV0dXJuIGZhbHNlIGZvciB0aGUgc2FtZSBkYXRlLlxuICogICByZXR1cm4gaXNTYW1lRGF5KGRhdGUsIGNvbnN0cnVjdE5vdyhkYXRlKSk7XG4gKiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3ROb3coZGF0ZSkge1xuICByZXR1cm4gY29uc3RydWN0RnJvbShkYXRlLCBEYXRlLm5vdygpKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBjb25zdHJ1Y3ROb3c7XG4iLCAiaW1wb3J0IHsgZGF5c0luV2VlayB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGRheXNUb1dlZWtzXG4gKiBAY2F0ZWdvcnkgQ29udmVyc2lvbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb252ZXJ0IGRheXMgdG8gd2Vla3MuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IGEgbnVtYmVyIG9mIGRheXMgdG8gYSBmdWxsIG51bWJlciBvZiB3ZWVrcy5cbiAqXG4gKiBAcGFyYW0gZGF5cyAtIFRoZSBudW1iZXIgb2YgZGF5cyB0byBiZSBjb252ZXJ0ZWRcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGRheXMgY29udmVydGVkIGluIHdlZWtzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgMTQgZGF5cyB0byB3ZWVrczpcbiAqIGNvbnN0IHJlc3VsdCA9IGRheXNUb1dlZWtzKDE0KVxuICogLy89PiAyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEl0IHVzZXMgdHJ1bmMgcm91bmRpbmc6XG4gKiBjb25zdCByZXN1bHQgPSBkYXlzVG9XZWVrcygxMylcbiAqIC8vPT4gMVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGF5c1RvV2Vla3MoZGF5cykge1xuICBjb25zdCByZXN1bHQgPSBNYXRoLnRydW5jKGRheXMgLyBkYXlzSW5XZWVrKTtcbiAgLy8gUHJldmVudCBuZWdhdGl2ZSB6ZXJvXG4gIHJldHVybiByZXN1bHQgPT09IDAgPyAwIDogcmVzdWx0O1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRheXNUb1dlZWtzO1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVEYXRlcy5qc1wiO1xuaW1wb3J0IHsgc3RhcnRPZkRheSB9IGZyb20gXCIuL3N0YXJ0T2ZEYXkuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGlzU2FtZURheX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGlzU2FtZURheVxuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBcmUgdGhlIGdpdmVuIGRhdGVzIGluIHRoZSBzYW1lIGRheSAoYW5kIHllYXIgYW5kIG1vbnRoKT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgZGF5IChhbmQgeWVhciBhbmQgbW9udGgpP1xuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgZmlyc3QgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIHNlY29uZCBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF0ZXMgYXJlIGluIHRoZSBzYW1lIGRheSAoYW5kIHllYXIgYW5kIG1vbnRoKVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgNCBTZXB0ZW1iZXIgMDY6MDA6MDAgYW5kIDQgU2VwdGVtYmVyIDE4OjAwOjAwIGluIHRoZSBzYW1lIGRheT9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzU2FtZURheShuZXcgRGF0ZSgyMDE0LCA4LCA0LCA2LCAwKSwgbmV3IERhdGUoMjAxNCwgOCwgNCwgMTgsIDApKVxuICogLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSA0IFNlcHRlbWJlciBhbmQgNCBPY3RvYmVyIGluIHRoZSBzYW1lIGRheT9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzU2FtZURheShuZXcgRGF0ZSgyMDE0LCA4LCA0KSwgbmV3IERhdGUoMjAxNCwgOSwgNCkpXG4gKiAvLz0+IGZhbHNlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSA0IFNlcHRlbWJlciwgMjAxNCBhbmQgNCBTZXB0ZW1iZXIsIDIwMTUgaW4gdGhlIHNhbWUgZGF5P1xuICogY29uc3QgcmVzdWx0ID0gaXNTYW1lRGF5KG5ldyBEYXRlKDIwMTQsIDgsIDQpLCBuZXcgRGF0ZSgyMDE1LCA4LCA0KSlcbiAqIC8vPT4gZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZURheShsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IFtkYXRlTGVmdF8sIGRhdGVSaWdodF9dID0gbm9ybWFsaXplRGF0ZXMoXG4gICAgb3B0aW9ucz8uaW4sXG4gICAgbGF0ZXJEYXRlLFxuICAgIGVhcmxpZXJEYXRlLFxuICApO1xuICByZXR1cm4gK3N0YXJ0T2ZEYXkoZGF0ZUxlZnRfKSA9PT0gK3N0YXJ0T2ZEYXkoZGF0ZVJpZ2h0Xyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNTYW1lRGF5O1xuIiwgIi8qKlxuICogQG5hbWUgaXNEYXRlXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiB2YWx1ZSBhIGRhdGU/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGFuIGluc3RhbmNlIG9mIERhdGUuIFRoZSBmdW5jdGlvbiB3b3JrcyBmb3IgZGF0ZXMgdHJhbnNmZXJyZWQgYWNyb3NzIGlmcmFtZXMuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrXG4gKlxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBkYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciBhIHZhbGlkIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSBpc0RhdGUobmV3IERhdGUoKSlcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3IgYW4gaW52YWxpZCBkYXRlOlxuICogY29uc3QgcmVzdWx0ID0gaXNEYXRlKG5ldyBEYXRlKE5hTikpXG4gKiAvLz0+IHRydWVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIHNvbWUgdmFsdWU6XG4gKiBjb25zdCByZXN1bHQgPSBpc0RhdGUoJzIwMTQtMDItMzEnKVxuICogLy89PiBmYWxzZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3IgYW4gb2JqZWN0OlxuICogY29uc3QgcmVzdWx0ID0gaXNEYXRlKHt9KVxuICogLy89PiBmYWxzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKHZhbHVlKSB7XG4gIHJldHVybiAoXG4gICAgdmFsdWUgaW5zdGFuY2VvZiBEYXRlIHx8XG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gXCJbb2JqZWN0IERhdGVdXCIpXG4gICk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNEYXRlO1xuIiwgImltcG9ydCB7IGlzRGF0ZSB9IGZyb20gXCIuL2lzRGF0ZS5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgaXNWYWxpZFxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZ2l2ZW4gZGF0ZSB2YWxpZD9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybnMgZmFsc2UgaWYgYXJndW1lbnQgaXMgSW52YWxpZCBEYXRlIGFuZCB0cnVlIG90aGVyd2lzZS5cbiAqIEFyZ3VtZW50IGlzIGNvbnZlcnRlZCB0byBEYXRlIHVzaW5nIGB0b0RhdGVgLiBTZWUgW3RvRGF0ZV0oaHR0cHM6Ly9kYXRlLWZucy5vcmcvZG9jcy90b0RhdGUpXG4gKiBJbnZhbGlkIERhdGUgaXMgYSBEYXRlLCB3aG9zZSB0aW1lIHZhbHVlIGlzIE5hTi5cbiAqXG4gKiBUaW1lIHZhbHVlIG9mIERhdGU6IGh0dHA6Ly9lczUuZ2l0aHViLmlvLyN4MTUuOS4xLjFcbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGNoZWNrXG4gKlxuICogQHJldHVybnMgVGhlIGRhdGUgaXMgdmFsaWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIHRoZSB2YWxpZCBkYXRlOlxuICogY29uc3QgcmVzdWx0ID0gaXNWYWxpZChuZXcgRGF0ZSgyMDE0LCAxLCAzMSkpXG4gKiAvLz0+IHRydWVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIHRoZSB2YWx1ZSwgY29udmVydGlibGUgaW50byBhIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSBpc1ZhbGlkKDEzOTM4MDQ4MDAwMDApXG4gKiAvLz0+IHRydWVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIHRoZSBpbnZhbGlkIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSBpc1ZhbGlkKG5ldyBEYXRlKCcnKSlcbiAqIC8vPT4gZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWQoZGF0ZSkge1xuICByZXR1cm4gISgoIWlzRGF0ZShkYXRlKSAmJiB0eXBlb2YgZGF0ZSAhPT0gXCJudW1iZXJcIikgfHwgaXNOYU4oK3RvRGF0ZShkYXRlKSkpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzVmFsaWQ7XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5pbXBvcnQgeyBhZGREYXlzIH0gZnJvbSBcIi4vYWRkRGF5cy5qc1wiO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzIH0gZnJvbSBcIi4vZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzLmpzXCI7XG5pbXBvcnQgeyBpc1NhbWVEYXkgfSBmcm9tIFwiLi9pc1NhbWVEYXkuanNcIjtcbmltcG9ydCB7IGlzVmFsaWQgfSBmcm9tIFwiLi9pc1ZhbGlkLmpzXCI7XG5pbXBvcnQgeyBpc1dlZWtlbmQgfSBmcm9tIFwiLi9pc1dlZWtlbmQuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGRpZmZlcmVuY2VJbkJ1c2luZXNzRGF5c30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbkJ1c2luZXNzRGF5c1xuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBidXNpbmVzcyBkYXlzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgYnVzaW5lc3MgZGF5IHBlcmlvZHMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKiBCdXNpbmVzcyBkYXlzIGJlaW5nIGRheXMgdGhhdCBhcmVuJ3QgaW4gdGhlIHdlZWtlbmQuXG4gKiBMaWtlIGBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXNgLCB0aGUgZnVuY3Rpb24gcmVtb3ZlcyB0aGUgdGltZXMgZnJvbVxuICogdGhlIGRhdGVzIGJlZm9yZSBjYWxjdWxhdGluZyB0aGUgZGlmZmVyZW5jZS5cbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgYnVzaW5lc3MgZGF5c1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIb3cgbWFueSBidXNpbmVzcyBkYXlzIGFyZSBiZXR3ZWVuXG4gKiAvLyAxMCBKYW51YXJ5IDIwMTQgYW5kIDIwIEp1bHkgMjAxND9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkJ1c2luZXNzRGF5cyhcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMjApLFxuICogICBuZXcgRGF0ZSgyMDE0LCAwLCAxMClcbiAqIClcbiAqIC8vPT4gMTM2XG4gKlxuICogLy8gSG93IG1hbnkgYnVzaW5lc3MgZGF5cyBhcmUgYmV0d2VlblxuICogLy8gMzAgTm92ZW1iZXIgMjAyMSBhbmQgMSBOb3ZlbWJlciAyMDIxP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzKFxuICogICBuZXcgRGF0ZSgyMDIxLCAxMCwgMzApLFxuICogICBuZXcgRGF0ZSgyMDIxLCAxMCwgMSlcbiAqIClcbiAqIC8vPT4gMjFcbiAqXG4gKiAvLyBIb3cgbWFueSBidXNpbmVzcyBkYXlzIGFyZSBiZXR3ZWVuXG4gKiAvLyAxIE5vdmVtYmVyIDIwMjEgYW5kIDEgRGVjZW1iZXIgMjAyMT9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkJ1c2luZXNzRGF5cyhcbiAqICAgbmV3IERhdGUoMjAyMSwgMTAsIDEpLFxuICogICBuZXcgRGF0ZSgyMDIxLCAxMSwgMSlcbiAqIClcbiAqIC8vPT4gLTIyXG4gKlxuICogLy8gSG93IG1hbnkgYnVzaW5lc3MgZGF5cyBhcmUgYmV0d2VlblxuICogLy8gMSBOb3ZlbWJlciAyMDIxIGFuZCAxIE5vdmVtYmVyIDIwMjEgP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzKFxuICogICBuZXcgRGF0ZSgyMDIxLCAxMCwgMSksXG4gKiAgIG5ldyBEYXRlKDIwMjEsIDEwLCAxKVxuICogKVxuICogLy89PiAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5CdXNpbmVzc0RheXMobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBbbGF0ZXJEYXRlXywgZWFybGllckRhdGVfXSA9IG5vcm1hbGl6ZURhdGVzKFxuICAgIG9wdGlvbnM/LmluLFxuICAgIGxhdGVyRGF0ZSxcbiAgICBlYXJsaWVyRGF0ZSxcbiAgKTtcblxuICBpZiAoIWlzVmFsaWQobGF0ZXJEYXRlXykgfHwgIWlzVmFsaWQoZWFybGllckRhdGVfKSkgcmV0dXJuIE5hTjtcblxuICBjb25zdCBkaWZmID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGxhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlXyk7XG4gIGNvbnN0IHNpZ24gPSBkaWZmIDwgMCA/IC0xIDogMTtcbiAgY29uc3Qgd2Vla3MgPSBNYXRoLnRydW5jKGRpZmYgLyA3KTtcblxuICBsZXQgcmVzdWx0ID0gd2Vla3MgKiA1O1xuICBsZXQgbW92aW5nRGF0ZSA9IGFkZERheXMoZWFybGllckRhdGVfLCB3ZWVrcyAqIDcpO1xuXG4gIC8vIHRoZSBsb29wIGJlbG93IHdpbGwgcnVuIGF0IG1vc3QgNiB0aW1lcyB0byBhY2NvdW50IGZvciB0aGUgcmVtYWluaW5nIGRheXMgdGhhdCBkb24ndCBtYWtldXAgYSBmdWxsIHdlZWtcbiAgd2hpbGUgKCFpc1NhbWVEYXkobGF0ZXJEYXRlXywgbW92aW5nRGF0ZSkpIHtcbiAgICAvLyBzaWduIGlzIHVzZWQgdG8gYWNjb3VudCBmb3IgYm90aCBuZWdhdGl2ZSBhbmQgcG9zaXRpdmUgZGlmZmVyZW5jZXNcbiAgICByZXN1bHQgKz0gaXNXZWVrZW5kKG1vdmluZ0RhdGUsIG9wdGlvbnMpID8gMCA6IHNpZ247XG4gICAgbW92aW5nRGF0ZSA9IGFkZERheXMobW92aW5nRGF0ZSwgc2lnbik7XG4gIH1cblxuICAvLyBQcmV2ZW50IG5lZ2F0aXZlIHplcm9cbiAgcmV0dXJuIHJlc3VsdCA9PT0gMCA/IDAgOiByZXN1bHQ7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzO1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVEYXRlcy5qc1wiO1xuaW1wb3J0IHsgZ2V0SVNPV2Vla1llYXIgfSBmcm9tIFwiLi9nZXRJU09XZWVrWWVhci5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrWWVhcnN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFyc1xuICogQGNhdGVnb3J5IElTTyBXZWVrLU51bWJlcmluZyBZZWFyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFycyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFycyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBJU08gd2Vlay1udW1iZXJpbmcgeWVhcjogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gKlxuICogQHBhcmFtIGxhdGVyRGF0ZSAtIFRoZSBsYXRlciBkYXRlXG4gKiBAcGFyYW0gZWFybGllckRhdGUgLSBUaGUgZWFybGllciBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGNhbGVuZGFyIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIb3cgbWFueSBjYWxlbmRhciBJU08gd2Vlay1udW1iZXJpbmcgeWVhcnMgYXJlIDEgSmFudWFyeSAyMDEwIGFuZCAxIEphbnVhcnkgMjAxMj9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzKFxuICogICBuZXcgRGF0ZSgyMDEyLCAwLCAxKSxcbiAqICAgbmV3IERhdGUoMjAxMCwgMCwgMSlcbiAqIClcbiAqIC8vPT4gMlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrWWVhcnMoXG4gIGxhdGVyRGF0ZSxcbiAgZWFybGllckRhdGUsXG4gIG9wdGlvbnMsXG4pIHtcbiAgY29uc3QgW2xhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlX10gPSBub3JtYWxpemVEYXRlcyhcbiAgICBvcHRpb25zPy5pbixcbiAgICBsYXRlckRhdGUsXG4gICAgZWFybGllckRhdGUsXG4gICk7XG4gIHJldHVybiAoXG4gICAgZ2V0SVNPV2Vla1llYXIobGF0ZXJEYXRlXywgb3B0aW9ucykgLSBnZXRJU09XZWVrWWVhcihlYXJsaWVyRGF0ZV8sIG9wdGlvbnMpXG4gICk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrWWVhcnM7XG4iLCAiaW1wb3J0IHsgZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyB9IGZyb20gXCIuL19saWIvZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcy5qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5pbXBvcnQgeyBtaWxsaXNlY29uZHNJbldlZWsgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IHN0YXJ0T2ZJU09XZWVrIH0gZnJvbSBcIi4vc3RhcnRPZklTT1dlZWsuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3N9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtzXG4gKiBAY2F0ZWdvcnkgSVNPIFdlZWsgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgSVNPIHdlZWtzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgSVNPIHdlZWtzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgY2FsZW5kYXIgSVNPIHdlZWtzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGNhbGVuZGFyIElTTyB3ZWVrcyBhcmUgYmV0d2VlbiA2IEp1bHkgMjAxNCBhbmQgMjEgSnVseSAyMDE0P1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrcyhcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMjEpLFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCA2KSxcbiAqICk7XG4gKiAvLz0+IDNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3MobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBbbGF0ZXJEYXRlXywgZWFybGllckRhdGVfXSA9IG5vcm1hbGl6ZURhdGVzKFxuICAgIG9wdGlvbnM/LmluLFxuICAgIGxhdGVyRGF0ZSxcbiAgICBlYXJsaWVyRGF0ZSxcbiAgKTtcblxuICBjb25zdCBzdGFydE9mSVNPV2Vla0xlZnQgPSBzdGFydE9mSVNPV2VlayhsYXRlckRhdGVfKTtcbiAgY29uc3Qgc3RhcnRPZklTT1dlZWtSaWdodCA9IHN0YXJ0T2ZJU09XZWVrKGVhcmxpZXJEYXRlXyk7XG5cbiAgY29uc3QgdGltZXN0YW1wTGVmdCA9XG4gICAgK3N0YXJ0T2ZJU09XZWVrTGVmdCAtIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMoc3RhcnRPZklTT1dlZWtMZWZ0KTtcbiAgY29uc3QgdGltZXN0YW1wUmlnaHQgPVxuICAgICtzdGFydE9mSVNPV2Vla1JpZ2h0IC0gZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhzdGFydE9mSVNPV2Vla1JpZ2h0KTtcblxuICAvLyBSb3VuZCB0aGUgbnVtYmVyIG9mIHdlZWtzIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgYmVjYXVzZSB0aGUgbnVtYmVyIG9mXG4gIC8vIG1pbGxpc2Vjb25kcyBpbiBhIHdlZWsgaXMgbm90IGNvbnN0YW50IChlLmcuIGl0J3MgZGlmZmVyZW50IGluIHRoZSB3ZWVrIG9mXG4gIC8vIHRoZSBkYXlsaWdodCBzYXZpbmcgdGltZSBjbG9jayBzaGlmdCkuXG4gIHJldHVybiBNYXRoLnJvdW5kKCh0aW1lc3RhbXBMZWZ0IC0gdGltZXN0YW1wUmlnaHQpIC8gbWlsbGlzZWNvbmRzSW5XZWVrKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtzO1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVEYXRlcy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRoc1xuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIG1vbnRocyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIG1vbnRocyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgY2FsZW5kYXIgbW9udGhzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGNhbGVuZGFyIG1vbnRocyBhcmUgYmV0d2VlbiAzMSBKYW51YXJ5IDIwMTQgYW5kIDEgU2VwdGVtYmVyIDIwMTQ/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyhcbiAqICAgbmV3IERhdGUoMjAxNCwgOCwgMSksXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDAsIDMxKVxuICogKVxuICogLy89PiA4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyhsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IFtsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV9dID0gbm9ybWFsaXplRGF0ZXMoXG4gICAgb3B0aW9ucz8uaW4sXG4gICAgbGF0ZXJEYXRlLFxuICAgIGVhcmxpZXJEYXRlLFxuICApO1xuXG4gIGNvbnN0IHllYXJzRGlmZiA9IGxhdGVyRGF0ZV8uZ2V0RnVsbFllYXIoKSAtIGVhcmxpZXJEYXRlXy5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBtb250aHNEaWZmID0gbGF0ZXJEYXRlXy5nZXRNb250aCgpIC0gZWFybGllckRhdGVfLmdldE1vbnRoKCk7XG5cbiAgcmV0dXJuIHllYXJzRGlmZiAqIDEyICsgbW9udGhzRGlmZjtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocztcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGdldFF1YXJ0ZXJ9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBnZXRRdWFydGVyXG4gKiBAY2F0ZWdvcnkgUXVhcnRlciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIHllYXIgcXVhcnRlciBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgeWVhciBxdWFydGVyIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGdpdmVuIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBxdWFydGVyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIHF1YXJ0ZXIgaXMgMiBKdWx5IDIwMTQ/XG4gKiBjb25zdCByZXN1bHQgPSBnZXRRdWFydGVyKG5ldyBEYXRlKDIwMTQsIDYsIDIpKTtcbiAqIC8vPT4gM1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UXVhcnRlcihkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgcXVhcnRlciA9IE1hdGgudHJ1bmMoX2RhdGUuZ2V0TW9udGgoKSAvIDMpICsgMTtcbiAgcmV0dXJuIHF1YXJ0ZXI7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZ2V0UXVhcnRlcjtcbiIsICJpbXBvcnQgeyBub3JtYWxpemVEYXRlcyB9IGZyb20gXCIuL19saWIvbm9ybWFsaXplRGF0ZXMuanNcIjtcbmltcG9ydCB7IGdldFF1YXJ0ZXIgfSBmcm9tIFwiLi9nZXRRdWFydGVyLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVyc1xuICogQGNhdGVnb3J5IFF1YXJ0ZXIgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgcXVhcnRlcnMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG51bWJlciBvZiBjYWxlbmRhciBxdWFydGVycyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgY2FsZW5kYXIgcXVhcnRlcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgY2FsZW5kYXIgcXVhcnRlcnMgYXJlIGJldHdlZW4gMzEgRGVjZW1iZXIgMjAxMyBhbmQgMiBKdWx5IDIwMTQ/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzKFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyKSxcbiAqICAgbmV3IERhdGUoMjAxMywgMTEsIDMxKVxuICogKVxuICogLy89PiAzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzKGxhdGVyRGF0ZSwgZWFybGllckRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgW2xhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlX10gPSBub3JtYWxpemVEYXRlcyhcbiAgICBvcHRpb25zPy5pbixcbiAgICBsYXRlckRhdGUsXG4gICAgZWFybGllckRhdGUsXG4gICk7XG5cbiAgY29uc3QgeWVhcnNEaWZmID0gbGF0ZXJEYXRlXy5nZXRGdWxsWWVhcigpIC0gZWFybGllckRhdGVfLmdldEZ1bGxZZWFyKCk7XG4gIGNvbnN0IHF1YXJ0ZXJzRGlmZiA9IGdldFF1YXJ0ZXIobGF0ZXJEYXRlXykgLSBnZXRRdWFydGVyKGVhcmxpZXJEYXRlXyk7XG5cbiAgcmV0dXJuIHllYXJzRGlmZiAqIDQgKyBxdWFydGVyc0RpZmY7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycztcbiIsICJpbXBvcnQgeyBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIH0gZnJvbSBcIi4vX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzLmpzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVEYXRlcyB9IGZyb20gXCIuL19saWIvbm9ybWFsaXplRGF0ZXMuanNcIjtcbmltcG9ydCB7IG1pbGxpc2Vjb25kc0luV2VlayB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgc3RhcnRPZldlZWsgfSBmcm9tIFwiLi9zdGFydE9mV2Vlay5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3NcbiAqIEBjYXRlZ29yeSBXZWVrIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIHdlZWtzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgd2Vla3MgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQHBhcmFtIGxhdGVyRGF0ZSAtIFRoZSBsYXRlciBkYXRlXG4gKiBAcGFyYW0gZWFybGllckRhdGUgLSBUaGUgZWFybGllciBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnMuXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBjYWxlbmRhciB3ZWVrc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIb3cgbWFueSBjYWxlbmRhciB3ZWVrcyBhcmUgYmV0d2VlbiA1IEp1bHkgMjAxNCBhbmQgMjAgSnVseSAyMDE0P1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyhcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMjApLFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCA1KVxuICogKVxuICogLy89PiAzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRoZSB3ZWVrIHN0YXJ0cyBvbiBNb25kYXksXG4gKiAvLyBob3cgbWFueSBjYWxlbmRhciB3ZWVrcyBhcmUgYmV0d2VlbiA1IEp1bHkgMjAxNCBhbmQgMjAgSnVseSAyMDE0P1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyhcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMjApLFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCA1KSxcbiAqICAgeyB3ZWVrU3RhcnRzT246IDEgfVxuICogKVxuICogLy89PiAyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzKGxhdGVyRGF0ZSwgZWFybGllckRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgW2xhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlX10gPSBub3JtYWxpemVEYXRlcyhcbiAgICBvcHRpb25zPy5pbixcbiAgICBsYXRlckRhdGUsXG4gICAgZWFybGllckRhdGUsXG4gICk7XG5cbiAgY29uc3QgbGF0ZXJTdGFydE9mV2VlayA9IHN0YXJ0T2ZXZWVrKGxhdGVyRGF0ZV8sIG9wdGlvbnMpO1xuICBjb25zdCBlYXJsaWVyU3RhcnRPZldlZWsgPSBzdGFydE9mV2VlayhlYXJsaWVyRGF0ZV8sIG9wdGlvbnMpO1xuXG4gIGNvbnN0IGxhdGVyVGltZXN0YW1wID1cbiAgICArbGF0ZXJTdGFydE9mV2VlayAtIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMobGF0ZXJTdGFydE9mV2Vlayk7XG4gIGNvbnN0IGVhcmxpZXJUaW1lc3RhbXAgPVxuICAgICtlYXJsaWVyU3RhcnRPZldlZWsgLSBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzKGVhcmxpZXJTdGFydE9mV2Vlayk7XG5cbiAgcmV0dXJuIE1hdGgucm91bmQoKGxhdGVyVGltZXN0YW1wIC0gZWFybGllclRpbWVzdGFtcCkgLyBtaWxsaXNlY29uZHNJbldlZWspO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3M7XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBkaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFyc1xuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgeWVhcnMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG51bWJlciBvZiBjYWxlbmRhciB5ZWFycyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGNhbGVuZGFyIHllYXJzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGNhbGVuZGFyIHllYXJzIGFyZSBiZXR3ZWVuIDMxIERlY2VtYmVyIDIwMTMgYW5kIDExIEZlYnJ1YXJ5IDIwMTU/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzKFxuICogICBuZXcgRGF0ZSgyMDE1LCAxLCAxMSksXG4gKiAgIG5ldyBEYXRlKDIwMTMsIDExLCAzMSlcbiAqICk7XG4gKiAvLz0+IDJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnMobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBbbGF0ZXJEYXRlXywgZWFybGllckRhdGVfXSA9IG5vcm1hbGl6ZURhdGVzKFxuICAgIG9wdGlvbnM/LmluLFxuICAgIGxhdGVyRGF0ZSxcbiAgICBlYXJsaWVyRGF0ZSxcbiAgKTtcbiAgcmV0dXJuIGxhdGVyRGF0ZV8uZ2V0RnVsbFllYXIoKSAtIGVhcmxpZXJEYXRlXy5nZXRGdWxsWWVhcigpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnM7XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5DYWxlbmRhckRheXMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGRpZmZlcmVuY2VJbkRheXN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5EYXlzXG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGZ1bGwgZGF5cyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGZ1bGwgZGF5IHBlcmlvZHMgYmV0d2VlbiB0d28gZGF0ZXMuIEZyYWN0aW9uYWwgZGF5cyBhcmVcbiAqIHRydW5jYXRlZCB0b3dhcmRzIHplcm8uXG4gKlxuICogT25lIFwiZnVsbCBkYXlcIiBpcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiBhIGxvY2FsIHRpbWUgaW4gb25lIGRheSB0byB0aGUgc2FtZVxuICogbG9jYWwgdGltZSBvbiB0aGUgbmV4dCBvciBwcmV2aW91cyBkYXkuIEEgZnVsbCBkYXkgY2FuIHNvbWV0aW1lcyBiZSBsZXNzIHRoYW5cbiAqIG9yIG1vcmUgdGhhbiAyNCBob3VycyBpZiBhIGRheWxpZ2h0IHNhdmluZ3MgY2hhbmdlIGhhcHBlbnMgYmV0d2VlbiB0d28gZGF0ZXMuXG4gKlxuICogVG8gaWdub3JlIERTVCBhbmQgb25seSBtZWFzdXJlIGV4YWN0IDI0LWhvdXIgcGVyaW9kcywgdXNlIHRoaXMgaW5zdGVhZDpcbiAqIGBNYXRoLnRydW5jKGRpZmZlcmVuY2VJbkhvdXJzKGRhdGVMZWZ0LCBkYXRlUmlnaHQpLzI0KXwwYC5cbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgZnVsbCBkYXlzIGFjY29yZGluZyB0byB0aGUgbG9jYWwgdGltZXpvbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgZnVsbCBkYXlzIGFyZSBiZXR3ZWVuXG4gKiAvLyAyIEp1bHkgMjAxMSAyMzowMDowMCBhbmQgMiBKdWx5IDIwMTIgMDA6MDA6MDA/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5EYXlzKFxuICogICBuZXcgRGF0ZSgyMDEyLCA2LCAyLCAwLCAwKSxcbiAqICAgbmV3IERhdGUoMjAxMSwgNiwgMiwgMjMsIDApXG4gKiApXG4gKiAvLz0+IDM2NVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIb3cgbWFueSBmdWxsIGRheXMgYXJlIGJldHdlZW5cbiAqIC8vIDIgSnVseSAyMDExIDIzOjU5OjAwIGFuZCAzIEp1bHkgMjAxMSAwMDowMTowMD9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbkRheXMoXG4gKiAgIG5ldyBEYXRlKDIwMTEsIDYsIDMsIDAsIDEpLFxuICogICBuZXcgRGF0ZSgyMDExLCA2LCAyLCAyMywgNTkpXG4gKiApXG4gKiAvLz0+IDBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgZnVsbCBkYXlzIGFyZSBiZXR3ZWVuXG4gKiAvLyAxIE1hcmNoIDIwMjAgMDowMCBhbmQgMSBKdW5lIDIwMjAgMDowMCA/XG4gKiAvLyBOb3RlOiBiZWNhdXNlIGxvY2FsIHRpbWUgaXMgdXNlZCwgdGhlXG4gKiAvLyByZXN1bHQgd2lsbCBhbHdheXMgYmUgOTIgZGF5cywgZXZlbiBpblxuICogLy8gdGltZSB6b25lcyB3aGVyZSBEU1Qgc3RhcnRzIGFuZCB0aGVcbiAqIC8vIHBlcmlvZCBoYXMgb25seSA5MioyNC0xIGhvdXJzLlxuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluRGF5cyhcbiAqICAgbmV3IERhdGUoMjAyMCwgNSwgMSksXG4gKiAgIG5ldyBEYXRlKDIwMjAsIDIsIDEpXG4gKiApXG4gKiAvLz0+IDkyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5EYXlzKGxhdGVyRGF0ZSwgZWFybGllckRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgW2xhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlX10gPSBub3JtYWxpemVEYXRlcyhcbiAgICBvcHRpb25zPy5pbixcbiAgICBsYXRlckRhdGUsXG4gICAgZWFybGllckRhdGUsXG4gICk7XG5cbiAgY29uc3Qgc2lnbiA9IGNvbXBhcmVMb2NhbEFzYyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICBjb25zdCBkaWZmZXJlbmNlID0gTWF0aC5hYnMoXG4gICAgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGxhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlXyksXG4gICk7XG5cbiAgbGF0ZXJEYXRlXy5zZXREYXRlKGxhdGVyRGF0ZV8uZ2V0RGF0ZSgpIC0gc2lnbiAqIGRpZmZlcmVuY2UpO1xuXG4gIC8vIE1hdGguYWJzKGRpZmYgaW4gZnVsbCBkYXlzIC0gZGlmZiBpbiBjYWxlbmRhciBkYXlzKSA9PT0gMSBpZiBsYXN0IGNhbGVuZGFyIGRheSBpcyBub3QgZnVsbFxuICAvLyBJZiBzbywgcmVzdWx0IG11c3QgYmUgZGVjcmVhc2VkIGJ5IDEgaW4gYWJzb2x1dGUgdmFsdWVcbiAgY29uc3QgaXNMYXN0RGF5Tm90RnVsbCA9IE51bWJlcihcbiAgICBjb21wYXJlTG9jYWxBc2MobGF0ZXJEYXRlXywgZWFybGllckRhdGVfKSA9PT0gLXNpZ24sXG4gICk7XG5cbiAgY29uc3QgcmVzdWx0ID0gc2lnbiAqIChkaWZmZXJlbmNlIC0gaXNMYXN0RGF5Tm90RnVsbCk7XG4gIC8vIFByZXZlbnQgbmVnYXRpdmUgemVyb1xuICByZXR1cm4gcmVzdWx0ID09PSAwID8gMCA6IHJlc3VsdDtcbn1cblxuLy8gTGlrZSBgY29tcGFyZUFzY2AgYnV0IHVzZXMgbG9jYWwgdGltZSBub3QgVVRDLCB3aGljaCBpcyBuZWVkZWRcbi8vIGZvciBhY2N1cmF0ZSBlcXVhbGl0eSBjb21wYXJpc29ucyBvZiBVVEMgdGltZXN0YW1wcyB0aGF0IGVuZCB1cFxuLy8gaGF2aW5nIHRoZSBzYW1lIHJlcHJlc2VudGF0aW9uIGluIGxvY2FsIHRpbWUsIGUuZy4gb25lIGhvdXIgYmVmb3JlXG4vLyBEU1QgZW5kcyB2cy4gdGhlIGluc3RhbnQgdGhhdCBEU1QgZW5kcy5cbmZ1bmN0aW9uIGNvbXBhcmVMb2NhbEFzYyhsYXRlckRhdGUsIGVhcmxpZXJEYXRlKSB7XG4gIGNvbnN0IGRpZmYgPVxuICAgIGxhdGVyRGF0ZS5nZXRGdWxsWWVhcigpIC0gZWFybGllckRhdGUuZ2V0RnVsbFllYXIoKSB8fFxuICAgIGxhdGVyRGF0ZS5nZXRNb250aCgpIC0gZWFybGllckRhdGUuZ2V0TW9udGgoKSB8fFxuICAgIGxhdGVyRGF0ZS5nZXREYXRlKCkgLSBlYXJsaWVyRGF0ZS5nZXREYXRlKCkgfHxcbiAgICBsYXRlckRhdGUuZ2V0SG91cnMoKSAtIGVhcmxpZXJEYXRlLmdldEhvdXJzKCkgfHxcbiAgICBsYXRlckRhdGUuZ2V0TWludXRlcygpIC0gZWFybGllckRhdGUuZ2V0TWludXRlcygpIHx8XG4gICAgbGF0ZXJEYXRlLmdldFNlY29uZHMoKSAtIGVhcmxpZXJEYXRlLmdldFNlY29uZHMoKSB8fFxuICAgIGxhdGVyRGF0ZS5nZXRNaWxsaXNlY29uZHMoKSAtIGVhcmxpZXJEYXRlLmdldE1pbGxpc2Vjb25kcygpO1xuXG4gIGlmIChkaWZmIDwgMCkgcmV0dXJuIC0xO1xuICBpZiAoZGlmZiA+IDApIHJldHVybiAxO1xuXG4gIC8vIFJldHVybiAwIGlmIGRpZmYgaXMgMDsgcmV0dXJuIE5hTiBpZiBkaWZmIGlzIE5hTlxuICByZXR1cm4gZGlmZjtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBkaWZmZXJlbmNlSW5EYXlzO1xuIiwgImV4cG9ydCBmdW5jdGlvbiBnZXRSb3VuZGluZ01ldGhvZChtZXRob2QpIHtcbiAgcmV0dXJuIChudW1iZXIpID0+IHtcbiAgICBjb25zdCByb3VuZCA9IG1ldGhvZCA/IE1hdGhbbWV0aG9kXSA6IE1hdGgudHJ1bmM7XG4gICAgY29uc3QgcmVzdWx0ID0gcm91bmQobnVtYmVyKTtcbiAgICAvLyBQcmV2ZW50IG5lZ2F0aXZlIHplcm9cbiAgICByZXR1cm4gcmVzdWx0ID09PSAwID8gMCA6IHJlc3VsdDtcbiAgfTtcbn1cbiIsICJpbXBvcnQgeyBnZXRSb3VuZGluZ01ldGhvZCB9IGZyb20gXCIuL19saWIvZ2V0Um91bmRpbmdNZXRob2QuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVEYXRlcy5qc1wiO1xuaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5Ib3VyIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBkaWZmZXJlbmNlSW5Ib3Vyc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbkhvdXJzXG4gKiBAY2F0ZWdvcnkgSG91ciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBob3VycyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGhvdXJzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgaG91cnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgaG91cnMgYXJlIGJldHdlZW4gMiBKdWx5IDIwMTQgMDY6NTA6MDAgYW5kIDIgSnVseSAyMDE0IDE5OjAwOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluSG91cnMoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIsIDE5LCAwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMiwgNiwgNTApXG4gKiApXG4gKiAvLz0+IDEyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5Ib3VycyhsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IFtsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV9dID0gbm9ybWFsaXplRGF0ZXMoXG4gICAgb3B0aW9ucz8uaW4sXG4gICAgbGF0ZXJEYXRlLFxuICAgIGVhcmxpZXJEYXRlLFxuICApO1xuICBjb25zdCBkaWZmID0gKCtsYXRlckRhdGVfIC0gK2VhcmxpZXJEYXRlXykgLyBtaWxsaXNlY29uZHNJbkhvdXI7XG4gIHJldHVybiBnZXRSb3VuZGluZ01ldGhvZChvcHRpb25zPy5yb3VuZGluZ01ldGhvZCkoZGlmZik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZGlmZmVyZW5jZUluSG91cnM7XG4iLCAiaW1wb3J0IHsgYWRkSVNPV2Vla1llYXJzIH0gZnJvbSBcIi4vYWRkSVNPV2Vla1llYXJzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdWJJU09XZWVrWWVhcnN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBzdWJJU09XZWVrWWVhcnNcbiAqIEBjYXRlZ29yeSBJU08gV2Vlay1OdW1iZXJpbmcgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBJU08gd2Vlay1udW1iZXJpbmcgeWVhcnMgZnJvbSB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFycyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0gYW1vdW50IC0gVGhlIGFtb3VudCBvZiBJU08gd2Vlay1udW1iZXJpbmcgeWVhcnMgdG8gYmUgc3VidHJhY3RlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgSVNPIHdlZWstbnVtYmVyaW5nIHllYXJzIHN1YnRyYWN0ZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3VidHJhY3QgNSBJU08gd2Vlay1udW1iZXJpbmcgeWVhcnMgZnJvbSAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gc3ViSVNPV2Vla1llYXJzKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCA1KVxuICogLy89PiBNb24gQXVnIDMxIDIwMDkgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1YklTT1dlZWtZZWFycyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGFkZElTT1dlZWtZZWFycyhkYXRlLCAtYW1vdW50LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdWJJU09XZWVrWWVhcnM7XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5pbXBvcnQgeyBjb21wYXJlQXNjIH0gZnJvbSBcIi4vY29tcGFyZUFzYy5qc1wiO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrWWVhcnMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFycy5qc1wiO1xuaW1wb3J0IHsgc3ViSVNPV2Vla1llYXJzIH0gZnJvbSBcIi4vc3ViSVNPV2Vla1llYXJzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnNcbiAqIEBjYXRlZ29yeSBJU08gV2Vlay1OdW1iZXJpbmcgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBmdWxsIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFycyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGZ1bGwgSVNPIHdlZWstbnVtYmVyaW5nIHllYXJzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGZ1bGwgSVNPIHdlZWstbnVtYmVyaW5nIHllYXJzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGZ1bGwgSVNPIHdlZWstbnVtYmVyaW5nIHllYXJzIGFyZSBiZXR3ZWVuIDEgSmFudWFyeSAyMDEwIGFuZCAxIEphbnVhcnkgMjAxMj9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbklTT1dlZWtZZWFycyhcbiAqICAgbmV3IERhdGUoMjAxMiwgMCwgMSksXG4gKiAgIG5ldyBEYXRlKDIwMTAsIDAsIDEpXG4gKiApXG4gKiAvLyA9PiAxXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnMobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBbbGF0ZXJEYXRlXywgZWFybGllckRhdGVfXSA9IG5vcm1hbGl6ZURhdGVzKFxuICAgIG9wdGlvbnM/LmluLFxuICAgIGxhdGVyRGF0ZSxcbiAgICBlYXJsaWVyRGF0ZSxcbiAgKTtcblxuICBjb25zdCBzaWduID0gY29tcGFyZUFzYyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICBjb25zdCBkaWZmID0gTWF0aC5hYnMoXG4gICAgZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrWWVhcnMobGF0ZXJEYXRlXywgZWFybGllckRhdGVfLCBvcHRpb25zKSxcbiAgKTtcblxuICBjb25zdCBhZGp1c3RlZERhdGUgPSBzdWJJU09XZWVrWWVhcnMobGF0ZXJEYXRlXywgc2lnbiAqIGRpZmYsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IGlzTGFzdElTT1dlZWtZZWFyTm90RnVsbCA9IE51bWJlcihcbiAgICBjb21wYXJlQXNjKGFkanVzdGVkRGF0ZSwgZWFybGllckRhdGVfKSA9PT0gLXNpZ24sXG4gICk7XG4gIGNvbnN0IHJlc3VsdCA9IHNpZ24gKiAoZGlmZiAtIGlzTGFzdElTT1dlZWtZZWFyTm90RnVsbCk7XG5cbiAgLy8gUHJldmVudCBuZWdhdGl2ZSB6ZXJvXG4gIHJldHVybiByZXN1bHQgPT09IDAgPyAwIDogcmVzdWx0O1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbklTT1dlZWtZZWFycztcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHNcbiAqIEBjYXRlZ29yeSBNaWxsaXNlY29uZCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQHBhcmFtIGxhdGVyRGF0ZSAtIFRoZSBsYXRlciBkYXRlXG4gKiBAcGFyYW0gZWFybGllckRhdGUgLSBUaGUgZWFybGllciBkYXRlXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgbWlsbGlzZWNvbmRzIGFyZSBiZXR3ZWVuXG4gKiAvLyAyIEp1bHkgMjAxNCAxMjozMDoyMC42MDAgYW5kIDIgSnVseSAyMDE0IDEyOjMwOjIxLjcwMD9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyhcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMiwgMTIsIDMwLCAyMSwgNzAwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMiwgMTIsIDMwLCAyMCwgNjAwKVxuICogKVxuICogLy89PiAxMTAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSkge1xuICByZXR1cm4gK3RvRGF0ZShsYXRlckRhdGUpIC0gK3RvRGF0ZShlYXJsaWVyRGF0ZSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzO1xuIiwgImltcG9ydCB7IGdldFJvdW5kaW5nTWV0aG9kIH0gZnJvbSBcIi4vX2xpYi9nZXRSb3VuZGluZ01ldGhvZC5qc1wiO1xuaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5NaW51dGUgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluTWludXRlc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbk1pbnV0ZXNcbiAqIEBjYXRlZ29yeSBNaW51dGUgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgbWludXRlcyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgc2lnbmVkIG51bWJlciBvZiBmdWxsIChyb3VuZGVkIHRvd2FyZHMgMCkgbWludXRlcyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAcGFyYW0gZGF0ZUxlZnQgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGRhdGVSaWdodCAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIG1pbnV0ZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgbWludXRlcyBhcmUgYmV0d2VlbiAyIEp1bHkgMjAxNCAxMjowNzo1OSBhbmQgMiBKdWx5IDIwMTQgMTI6MjA6MDA/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyLCAxMiwgMjAsIDApLFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyLCAxMiwgNywgNTkpXG4gKiApXG4gKiAvLz0+IDEyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IG1pbnV0ZXMgYXJlIGJldHdlZW4gMTA6MDE6NTkgYW5kIDEwOjAwOjAwXG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5NaW51dGVzKFxuICogICBuZXcgRGF0ZSgyMDAwLCAwLCAxLCAxMCwgMCwgMCksXG4gKiAgIG5ldyBEYXRlKDIwMDAsIDAsIDEsIDEwLCAxLCA1OSlcbiAqIClcbiAqIC8vPT4gLTFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZlcmVuY2VJbk1pbnV0ZXMoZGF0ZUxlZnQsIGRhdGVSaWdodCwgb3B0aW9ucykge1xuICBjb25zdCBkaWZmID1cbiAgICBkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMoZGF0ZUxlZnQsIGRhdGVSaWdodCkgLyBtaWxsaXNlY29uZHNJbk1pbnV0ZTtcbiAgcmV0dXJuIGdldFJvdW5kaW5nTWV0aG9kKG9wdGlvbnM/LnJvdW5kaW5nTWV0aG9kKShkaWZmKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBkaWZmZXJlbmNlSW5NaW51dGVzO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZW5kT2ZEYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBlbmRPZkRheVxuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGVuZCBvZiBhIGRheSBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGVuZCBvZiBhIGRheSBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZW5kIG9mIGEgZGF5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBlbmQgb2YgYSBkYXkgZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBlbmRPZkRheShuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApKVxuICogLy89PiBUdWUgU2VwIDAyIDIwMTQgMjM6NTk6NTkuOTk5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmRPZkRheShkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgX2RhdGUuc2V0SG91cnMoMjMsIDU5LCA1OSwgOTk5KTtcbiAgcmV0dXJuIF9kYXRlO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGVuZE9mRGF5O1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZW5kT2ZNb250aH0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGVuZE9mTW9udGhcbiAqIEBjYXRlZ29yeSBNb250aCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGVuZCBvZiBhIG1vbnRoIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgZW5kIG9mIGEgbW9udGggZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGVuZCBvZiBhIG1vbnRoXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBlbmQgb2YgYSBtb250aCBmb3IgMiBTZXB0ZW1iZXIgMjAxNCAxMTo1NTowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IGVuZE9mTW9udGgobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwKSlcbiAqIC8vPT4gVHVlIFNlcCAzMCAyMDE0IDIzOjU5OjU5Ljk5OVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5kT2ZNb250aChkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgbW9udGggPSBfZGF0ZS5nZXRNb250aCgpO1xuICBfZGF0ZS5zZXRGdWxsWWVhcihfZGF0ZS5nZXRGdWxsWWVhcigpLCBtb250aCArIDEsIDApO1xuICBfZGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZW5kT2ZNb250aDtcbiIsICJpbXBvcnQgeyBlbmRPZkRheSB9IGZyb20gXCIuL2VuZE9mRGF5LmpzXCI7XG5pbXBvcnQgeyBlbmRPZk1vbnRoIH0gZnJvbSBcIi4vZW5kT2ZNb250aC5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgaXNMYXN0RGF5T2ZNb250aFxuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiBkYXRlIHRoZSBsYXN0IGRheSBvZiBhIG1vbnRoP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIGRhdGUgdGhlIGxhc3QgZGF5IG9mIGEgbW9udGg/XG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGRhdGUgaXMgdGhlIGxhc3QgZGF5IG9mIGEgbW9udGhcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSXMgMjggRmVicnVhcnkgMjAxNCB0aGUgbGFzdCBkYXkgb2YgYSBtb250aD9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzTGFzdERheU9mTW9udGgobmV3IERhdGUoMjAxNCwgMSwgMjgpKVxuICogLy89PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0xhc3REYXlPZk1vbnRoKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICByZXR1cm4gK2VuZE9mRGF5KF9kYXRlLCBvcHRpb25zKSA9PT0gK2VuZE9mTW9udGgoX2RhdGUsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzTGFzdERheU9mTW9udGg7XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5pbXBvcnQgeyBjb21wYXJlQXNjIH0gZnJvbSBcIi4vY29tcGFyZUFzYy5qc1wiO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocy5qc1wiO1xuaW1wb3J0IHsgaXNMYXN0RGF5T2ZNb250aCB9IGZyb20gXCIuL2lzTGFzdERheU9mTW9udGguanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGRpZmZlcmVuY2VJbk1vbnRoc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbk1vbnRoc1xuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGZ1bGwgbW9udGhzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBmdWxsIG1vbnRoc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIb3cgbWFueSBmdWxsIG1vbnRocyBhcmUgYmV0d2VlbiAzMSBKYW51YXJ5IDIwMTQgYW5kIDEgU2VwdGVtYmVyIDIwMTQ/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5Nb250aHMobmV3IERhdGUoMjAxNCwgOCwgMSksIG5ldyBEYXRlKDIwMTQsIDAsIDMxKSlcbiAqIC8vPT4gN1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZmVyZW5jZUluTW9udGhzKGxhdGVyRGF0ZSwgZWFybGllckRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgW2xhdGVyRGF0ZV8sIHdvcmtpbmdMYXRlckRhdGUsIGVhcmxpZXJEYXRlX10gPSBub3JtYWxpemVEYXRlcyhcbiAgICBvcHRpb25zPy5pbixcbiAgICBsYXRlckRhdGUsXG4gICAgbGF0ZXJEYXRlLFxuICAgIGVhcmxpZXJEYXRlLFxuICApO1xuXG4gIGNvbnN0IHNpZ24gPSBjb21wYXJlQXNjKHdvcmtpbmdMYXRlckRhdGUsIGVhcmxpZXJEYXRlXyk7XG4gIGNvbnN0IGRpZmZlcmVuY2UgPSBNYXRoLmFicyhcbiAgICBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyh3b3JraW5nTGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZV8pLFxuICApO1xuXG4gIGlmIChkaWZmZXJlbmNlIDwgMSkgcmV0dXJuIDA7XG5cbiAgaWYgKHdvcmtpbmdMYXRlckRhdGUuZ2V0TW9udGgoKSA9PT0gMSAmJiB3b3JraW5nTGF0ZXJEYXRlLmdldERhdGUoKSA+IDI3KVxuICAgIHdvcmtpbmdMYXRlckRhdGUuc2V0RGF0ZSgzMCk7XG5cbiAgd29ya2luZ0xhdGVyRGF0ZS5zZXRNb250aCh3b3JraW5nTGF0ZXJEYXRlLmdldE1vbnRoKCkgLSBzaWduICogZGlmZmVyZW5jZSk7XG5cbiAgbGV0IGlzTGFzdE1vbnRoTm90RnVsbCA9IGNvbXBhcmVBc2Mod29ya2luZ0xhdGVyRGF0ZSwgZWFybGllckRhdGVfKSA9PT0gLXNpZ247XG5cbiAgaWYgKFxuICAgIGlzTGFzdERheU9mTW9udGgobGF0ZXJEYXRlXykgJiZcbiAgICBkaWZmZXJlbmNlID09PSAxICYmXG4gICAgY29tcGFyZUFzYyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pID09PSAxXG4gICkge1xuICAgIGlzTGFzdE1vbnRoTm90RnVsbCA9IGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gc2lnbiAqIChkaWZmZXJlbmNlIC0gK2lzTGFzdE1vbnRoTm90RnVsbCk7XG4gIHJldHVybiByZXN1bHQgPT09IDAgPyAwIDogcmVzdWx0O1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJbk1vbnRocztcbiIsICJpbXBvcnQgeyBnZXRSb3VuZGluZ01ldGhvZCB9IGZyb20gXCIuL19saWIvZ2V0Um91bmRpbmdNZXRob2QuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbk1vbnRocyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbk1vbnRocy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluUXVhcnRlcnN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5RdWFydGVyc1xuICogQGNhdGVnb3J5IFF1YXJ0ZXIgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgcXVhcnRlcnMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG51bWJlciBvZiBxdWFydGVycyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGZ1bGwgcXVhcnRlcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgZnVsbCBxdWFydGVycyBhcmUgYmV0d2VlbiAzMSBEZWNlbWJlciAyMDEzIGFuZCAyIEp1bHkgMjAxND9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJblF1YXJ0ZXJzKG5ldyBEYXRlKDIwMTQsIDYsIDIpLCBuZXcgRGF0ZSgyMDEzLCAxMSwgMzEpKVxuICogLy89PiAyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5RdWFydGVycyhsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IGRpZmYgPSBkaWZmZXJlbmNlSW5Nb250aHMobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSwgb3B0aW9ucykgLyAzO1xuICByZXR1cm4gZ2V0Um91bmRpbmdNZXRob2Qob3B0aW9ucz8ucm91bmRpbmdNZXRob2QpKGRpZmYpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJblF1YXJ0ZXJzO1xuIiwgImltcG9ydCB7IGdldFJvdW5kaW5nTWV0aG9kIH0gZnJvbSBcIi4vX2xpYi9nZXRSb3VuZGluZ01ldGhvZC5qc1wiO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzIH0gZnJvbSBcIi4vZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBkaWZmZXJlbmNlSW5TZWNvbmRzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZGlmZmVyZW5jZUluU2Vjb25kc1xuICogQGNhdGVnb3J5IFNlY29uZCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBzZWNvbmRzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGxhdGVyIGRhdGVcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBlYXJsaWVyIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIHNlY29uZHNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgc2Vjb25kcyBhcmUgYmV0d2VlblxuICogLy8gMiBKdWx5IDIwMTQgMTI6MzA6MDcuOTk5IGFuZCAyIEp1bHkgMjAxNCAxMjozMDoyMC4wMDA/XG4gKiBjb25zdCByZXN1bHQgPSBkaWZmZXJlbmNlSW5TZWNvbmRzKFxuICogICBuZXcgRGF0ZSgyMDE0LCA2LCAyLCAxMiwgMzAsIDIwLCAwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMiwgMTIsIDMwLCA3LCA5OTkpXG4gKiApXG4gKiAvLz0+IDEyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5TZWNvbmRzKGxhdGVyRGF0ZSwgZWFybGllckRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgZGlmZiA9IGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyhsYXRlckRhdGUsIGVhcmxpZXJEYXRlKSAvIDEwMDA7XG4gIHJldHVybiBnZXRSb3VuZGluZ01ldGhvZChvcHRpb25zPy5yb3VuZGluZ01ldGhvZCkoZGlmZik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZGlmZmVyZW5jZUluU2Vjb25kcztcbiIsICJpbXBvcnQgeyBnZXRSb3VuZGluZ01ldGhvZCB9IGZyb20gXCIuL19saWIvZ2V0Um91bmRpbmdNZXRob2QuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbkRheXMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5EYXlzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBkaWZmZXJlbmNlSW5XZWVrc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGRpZmZlcmVuY2VJbldlZWtzXG4gKiBAY2F0ZWdvcnkgV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBmdWxsIHdlZWtzIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgZnVsbCB3ZWVrcyBiZXR3ZWVuIHR3byBkYXRlcy4gRnJhY3Rpb25hbCB3ZWVrcyBhcmVcbiAqIHRydW5jYXRlZCB0b3dhcmRzIHplcm8gYnkgZGVmYXVsdC5cbiAqXG4gKiBPbmUgXCJmdWxsIHdlZWtcIiBpcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiBhIGxvY2FsIHRpbWUgaW4gb25lIGRheSB0byB0aGUgc2FtZVxuICogbG9jYWwgdGltZSA3IGRheXMgZWFybGllciBvciBsYXRlci4gQSBmdWxsIHdlZWsgY2FuIHNvbWV0aW1lcyBiZSBsZXNzIHRoYW5cbiAqIG9yIG1vcmUgdGhhbiA3KjI0IGhvdXJzIGlmIGEgZGF5bGlnaHQgc2F2aW5ncyBjaGFuZ2UgaGFwcGVucyBiZXR3ZWVuIHR3byBkYXRlcy5cbiAqXG4gKiBUbyBpZ25vcmUgRFNUIGFuZCBvbmx5IG1lYXN1cmUgZXhhY3QgNyoyNC1ob3VyIHBlcmlvZHMsIHVzZSB0aGlzIGluc3RlYWQ6XG4gKiBgTWF0aC50cnVuYyhkaWZmZXJlbmNlSW5Ib3VycyhkYXRlTGVmdCwgZGF0ZVJpZ2h0KS8oNyoyNCkpfDBgLlxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgbGF0ZXIgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGVhcmxpZXIgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBmdWxsIHdlZWtzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGZ1bGwgd2Vla3MgYXJlIGJldHdlZW4gNSBKdWx5IDIwMTQgYW5kIDIwIEp1bHkgMjAxND9cbiAqIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VJbldlZWtzKG5ldyBEYXRlKDIwMTQsIDYsIDIwKSwgbmV3IERhdGUoMjAxNCwgNiwgNSkpXG4gKiAvLz0+IDJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgZnVsbCB3ZWVrcyBhcmUgYmV0d2VlblxuICogLy8gMSBNYXJjaCAyMDIwIDA6MDAgYW5kIDYgSnVuZSAyMDIwIDA6MDAgP1xuICogLy8gTm90ZTogYmVjYXVzZSBsb2NhbCB0aW1lIGlzIHVzZWQsIHRoZVxuICogLy8gcmVzdWx0IHdpbGwgYWx3YXlzIGJlIDggd2Vla3MgKDU0IGRheXMpLFxuICogLy8gZXZlbiBpZiBEU1Qgc3RhcnRzIGFuZCB0aGUgcGVyaW9kIGhhc1xuICogLy8gb25seSA1NCoyNC0xIGhvdXJzLlxuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluV2Vla3MoXG4gKiAgIG5ldyBEYXRlKDIwMjAsIDUsIDEpLFxuICogICBuZXcgRGF0ZSgyMDIwLCAyLCA2KVxuICogKVxuICogLy89PiA4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5XZWVrcyhsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IGRpZmYgPSBkaWZmZXJlbmNlSW5EYXlzKGxhdGVyRGF0ZSwgZWFybGllckRhdGUsIG9wdGlvbnMpIC8gNztcbiAgcmV0dXJuIGdldFJvdW5kaW5nTWV0aG9kKG9wdGlvbnM/LnJvdW5kaW5nTWV0aG9kKShkaWZmKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBkaWZmZXJlbmNlSW5XZWVrcztcbiIsICJpbXBvcnQgeyBub3JtYWxpemVEYXRlcyB9IGZyb20gXCIuL19saWIvbm9ybWFsaXplRGF0ZXMuanNcIjtcbmltcG9ydCB7IGNvbXBhcmVBc2MgfSBmcm9tIFwiLi9jb21wYXJlQXNjLmpzXCI7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzIH0gZnJvbSBcIi4vZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZGlmZmVyZW5jZUluWWVhcnN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBkaWZmZXJlbmNlSW5ZZWFyc1xuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2YgZnVsbCB5ZWFycyBiZXR3ZWVuIHRoZSBnaXZlbiBkYXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGZ1bGwgeWVhcnMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gKlxuICogQHBhcmFtIGxhdGVyRGF0ZSAtIFRoZSBsYXRlciBkYXRlXG4gKiBAcGFyYW0gZWFybGllckRhdGUgLSBUaGUgZWFybGllciBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGZ1bGwgeWVhcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgZnVsbCB5ZWFycyBhcmUgYmV0d2VlbiAzMSBEZWNlbWJlciAyMDEzIGFuZCAxMSBGZWJydWFyeSAyMDE1P1xuICogY29uc3QgcmVzdWx0ID0gZGlmZmVyZW5jZUluWWVhcnMobmV3IERhdGUoMjAxNSwgMSwgMTEpLCBuZXcgRGF0ZSgyMDEzLCAxMSwgMzEpKVxuICogLy89PiAxXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlSW5ZZWFycyhsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IFtsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV9dID0gbm9ybWFsaXplRGF0ZXMoXG4gICAgb3B0aW9ucz8uaW4sXG4gICAgbGF0ZXJEYXRlLFxuICAgIGVhcmxpZXJEYXRlLFxuICApO1xuXG4gIC8vIC0xIGlmIHRoZSBsZWZ0IGRhdGUgaXMgZWFybGllciB0aGFuIHRoZSByaWdodCBkYXRlXG4gIC8vIDIwMjMtMTItMzEgLSAyMDI0LTAxLTAxID0gLTFcbiAgY29uc3Qgc2lnbiA9IGNvbXBhcmVBc2MobGF0ZXJEYXRlXywgZWFybGllckRhdGVfKTtcblxuICAvLyBGaXJzdCBjYWxjdWxhdGUgdGhlIGRpZmZlcmVuY2UgaW4gY2FsZW5kYXIgeWVhcnNcbiAgLy8gMjAyNC0wMS0wMSAtIDIwMjMtMTItMzEgPSAxIHllYXJcbiAgY29uc3QgZGlmZiA9IE1hdGguYWJzKGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnMobGF0ZXJEYXRlXywgZWFybGllckRhdGVfKSk7XG5cbiAgLy8gTm93IHdlIG5lZWQgdG8gY2FsY3VsYXRlIGlmIHRoZSBkaWZmZXJlbmNlIGlzIGZ1bGwuIFRvIGRvIHRoYXQgd2Ugc2V0XG4gIC8vIGJvdGggZGF0ZXMgdG8gdGhlIHNhbWUgeWVhciBhbmQgY2hlY2sgaWYgdGhlIGJvdGggZGF0ZSdzIG1vbnRoIGFuZCBkYXlcbiAgLy8gZm9ybSBhIGZ1bGwgeWVhci5cbiAgbGF0ZXJEYXRlXy5zZXRGdWxsWWVhcigxNTg0KTtcbiAgZWFybGllckRhdGVfLnNldEZ1bGxZZWFyKDE1ODQpO1xuXG4gIC8vIEZvciBpdCB0byBiZSB0cnVlLCB3aGVuIHRoZSBsYXRlciBkYXRlIGlzIGluZGVlZCBsYXRlciB0aGFuIHRoZSBlYXJsaWVyIGRhdGVcbiAgLy8gKDIwMjYtMDItMDEgLSAyMDIzLTEyLTEwID0gMyB5ZWFycyksIHRoZSBkaWZmZXJlbmNlIGlzIGZ1bGwgaWZcbiAgLy8gdGhlIG5vcm1hbGl6ZWQgbGF0ZXIgZGF0ZSBpcyBhbHNvIGxhdGVyIHRoYW4gdGhlIG5vcm1hbGl6ZWQgZWFybGllciBkYXRlLlxuICAvLyBJbiBvdXIgZXhhbXBsZSwgMTU4NC0wMi0wMSBpcyBlYXJsaWVyIHRoYW4gMTU4NC0xMi0xMCwgc28gdGhlIGRpZmZlcmVuY2VcbiAgLy8gaXMgcGFydGlhbCwgaGVuY2Ugd2UgbmVlZCB0byBzdWJ0cmFjdCAxIGZyb20gdGhlIGRpZmZlcmVuY2UgMyAtIDEgPSAyLlxuICBjb25zdCBwYXJ0aWFsID0gY29tcGFyZUFzYyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pID09PSAtc2lnbjtcblxuICBjb25zdCByZXN1bHQgPSBzaWduICogKGRpZmYgLSArcGFydGlhbCk7XG5cbiAgLy8gUHJldmVudCBuZWdhdGl2ZSB6ZXJvXG4gIHJldHVybiByZXN1bHQgPT09IDAgPyAwIDogcmVzdWx0O1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGRpZmZlcmVuY2VJblllYXJzO1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vbm9ybWFsaXplRGF0ZXMuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUludGVydmFsKGNvbnRleHQsIGludGVydmFsKSB7XG4gIGNvbnN0IFtzdGFydCwgZW5kXSA9IG5vcm1hbGl6ZURhdGVzKGNvbnRleHQsIGludGVydmFsLnN0YXJ0LCBpbnRlcnZhbC5lbmQpO1xuICByZXR1cm4geyBzdGFydCwgZW5kIH07XG59XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplSW50ZXJ2YWwgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZUludGVydmFsLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZWFjaERheU9mSW50ZXJ2YWx9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBUaGUge0BsaW5rIGVhY2hEYXlPZkludGVydmFsfSBmdW5jdGlvbiByZXN1bHQgdHlwZS4gSXQgcmVzb2x2ZXMgdGhlIHByb3BlciBkYXRhIHR5cGUuXG4gKiBJdCB1c2VzIHRoZSBmaXJzdCBhcmd1bWVudCBkYXRlIG9iamVjdCB0eXBlLCBzdGFydGluZyBmcm9tIHRoZSBkYXRlIGFyZ3VtZW50LFxuICogdGhlbiB0aGUgc3RhcnQgaW50ZXJ2YWwgZGF0ZSwgYW5kIGZpbmFsbHkgdGhlIGVuZCBpbnRlcnZhbCBkYXRlLiBJZlxuICogYSBjb250ZXh0IGZ1bmN0aW9uIGlzIHBhc3NlZCwgaXQgdXNlcyB0aGUgY29udGV4dCBmdW5jdGlvbiByZXR1cm4gdHlwZS5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGVhY2hEYXlPZkludGVydmFsXG4gKiBAY2F0ZWdvcnkgSW50ZXJ2YWwgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBhcnJheSBvZiBkYXRlcyB3aXRoaW4gdGhlIHNwZWNpZmllZCB0aW1lIGludGVydmFsLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBhcnJheSBvZiBkYXRlcyB3aXRoaW4gdGhlIHNwZWNpZmllZCB0aW1lIGludGVydmFsLlxuICpcbiAqIEB0eXBlUGFyYW0gSW50ZXJ2YWxUeXBlIC0gSW50ZXJ2YWwgdHlwZS5cbiAqIEB0eXBlUGFyYW0gT3B0aW9ucyAtIE9wdGlvbnMgdHlwZS5cbiAqXG4gKiBAcGFyYW0gaW50ZXJ2YWwgLSBUaGUgaW50ZXJ2YWwuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnMuXG4gKlxuICogQHJldHVybnMgVGhlIGFycmF5IHdpdGggc3RhcnRzIG9mIGRheXMgZnJvbSB0aGUgZGF5IG9mIHRoZSBpbnRlcnZhbCBzdGFydCB0byB0aGUgZGF5IG9mIHRoZSBpbnRlcnZhbCBlbmRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRWFjaCBkYXkgYmV0d2VlbiA2IE9jdG9iZXIgMjAxNCBhbmQgMTAgT2N0b2JlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gZWFjaERheU9mSW50ZXJ2YWwoe1xuICogICBzdGFydDogbmV3IERhdGUoMjAxNCwgOSwgNiksXG4gKiAgIGVuZDogbmV3IERhdGUoMjAxNCwgOSwgMTApXG4gKiB9KVxuICogLy89PiBbXG4gKiAvLyAgIE1vbiBPY3QgMDYgMjAxNCAwMDowMDowMCxcbiAqIC8vICAgVHVlIE9jdCAwNyAyMDE0IDAwOjAwOjAwLFxuICogLy8gICBXZWQgT2N0IDA4IDIwMTQgMDA6MDA6MDAsXG4gKiAvLyAgIFRodSBPY3QgMDkgMjAxNCAwMDowMDowMCxcbiAqIC8vICAgRnJpIE9jdCAxMCAyMDE0IDAwOjAwOjAwXG4gKiAvLyBdXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlYWNoRGF5T2ZJbnRlcnZhbChpbnRlcnZhbCwgb3B0aW9ucykge1xuICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IG5vcm1hbGl6ZUludGVydmFsKG9wdGlvbnM/LmluLCBpbnRlcnZhbCk7XG5cbiAgbGV0IHJldmVyc2VkID0gK3N0YXJ0ID4gK2VuZDtcbiAgY29uc3QgZW5kVGltZSA9IHJldmVyc2VkID8gK3N0YXJ0IDogK2VuZDtcbiAgY29uc3QgZGF0ZSA9IHJldmVyc2VkID8gZW5kIDogc3RhcnQ7XG4gIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG5cbiAgbGV0IHN0ZXAgPSBvcHRpb25zPy5zdGVwID8/IDE7XG4gIGlmICghc3RlcCkgcmV0dXJuIFtdO1xuICBpZiAoc3RlcCA8IDApIHtcbiAgICBzdGVwID0gLXN0ZXA7XG4gICAgcmV2ZXJzZWQgPSAhcmV2ZXJzZWQ7XG4gIH1cblxuICBjb25zdCBkYXRlcyA9IFtdO1xuXG4gIHdoaWxlICgrZGF0ZSA8PSBlbmRUaW1lKSB7XG4gICAgZGF0ZXMucHVzaChjb25zdHJ1Y3RGcm9tKHN0YXJ0LCBkYXRlKSk7XG4gICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgc3RlcCk7XG4gICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIHJldHVybiByZXZlcnNlZCA/IGRhdGVzLnJldmVyc2UoKSA6IGRhdGVzO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGVhY2hEYXlPZkludGVydmFsO1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZUludGVydmFsIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVJbnRlcnZhbC5qc1wiO1xuaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuL2NvbnN0cnVjdEZyb20uanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGVhY2hIb3VyT2ZJbnRlcnZhbH0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZWFjaEhvdXJPZkludGVydmFsfSBmdW5jdGlvbiByZXN1bHQgdHlwZS5cbiAqIFJlc29sdmVzIHRvIHRoZSBhcHByb3ByaWF0ZSBkYXRlIHR5cGUgYmFzZWQgb24gaW5wdXRzLlxuICovXG5cbi8qKlxuICogQG5hbWUgZWFjaEhvdXJPZkludGVydmFsXG4gKiBAY2F0ZWdvcnkgSW50ZXJ2YWwgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBhcnJheSBvZiBob3VycyB3aXRoaW4gdGhlIHNwZWNpZmllZCB0aW1lIGludGVydmFsLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBhcnJheSBvZiBob3VycyB3aXRoaW4gdGhlIHNwZWNpZmllZCB0aW1lIGludGVydmFsLlxuICpcbiAqIEB0eXBlUGFyYW0gSW50ZXJ2YWxUeXBlIC0gSW50ZXJ2YWwgdHlwZS5cbiAqIEB0eXBlUGFyYW0gT3B0aW9ucyAtIE9wdGlvbnMgdHlwZS5cbiAqXG4gKiBAcGFyYW0gaW50ZXJ2YWwgLSBUaGUgaW50ZXJ2YWwuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnMuXG4gKlxuICogQHJldHVybnMgVGhlIGFycmF5IHdpdGggc3RhcnRzIG9mIGhvdXJzIGZyb20gdGhlIGhvdXIgb2YgdGhlIGludGVydmFsIHN0YXJ0IHRvIHRoZSBob3VyIG9mIHRoZSBpbnRlcnZhbCBlbmRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRWFjaCBob3VyIGJldHdlZW4gNiBPY3RvYmVyIDIwMTQsIDEyOjAwIGFuZCA2IE9jdG9iZXIgMjAxNCwgMTU6MDBcbiAqIGNvbnN0IHJlc3VsdCA9IGVhY2hIb3VyT2ZJbnRlcnZhbCh7XG4gKiAgIHN0YXJ0OiBuZXcgRGF0ZSgyMDE0LCA5LCA2LCAxMiksXG4gKiAgIGVuZDogbmV3IERhdGUoMjAxNCwgOSwgNiwgMTUpXG4gKiB9KTtcbiAqIC8vPT4gW1xuICogLy8gICBNb24gT2N0IDA2IDIwMTQgMTI6MDA6MDAsXG4gKiAvLyAgIE1vbiBPY3QgMDYgMjAxNCAxMzowMDowMCxcbiAqIC8vICAgTW9uIE9jdCAwNiAyMDE0IDE0OjAwOjAwLFxuICogLy8gICBNb24gT2N0IDA2IDIwMTQgMTU6MDA6MDBcbiAqIC8vIF1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVhY2hIb3VyT2ZJbnRlcnZhbChpbnRlcnZhbCwgb3B0aW9ucykge1xuICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IG5vcm1hbGl6ZUludGVydmFsKG9wdGlvbnM/LmluLCBpbnRlcnZhbCk7XG5cbiAgbGV0IHJldmVyc2VkID0gK3N0YXJ0ID4gK2VuZDtcbiAgY29uc3QgZW5kVGltZSA9IHJldmVyc2VkID8gK3N0YXJ0IDogK2VuZDtcbiAgY29uc3QgZGF0ZSA9IHJldmVyc2VkID8gZW5kIDogc3RhcnQ7XG4gIGRhdGUuc2V0TWludXRlcygwLCAwLCAwKTtcblxuICBsZXQgc3RlcCA9IG9wdGlvbnM/LnN0ZXAgPz8gMTtcbiAgaWYgKCFzdGVwKSByZXR1cm4gW107XG4gIGlmIChzdGVwIDwgMCkge1xuICAgIHN0ZXAgPSAtc3RlcDtcbiAgICByZXZlcnNlZCA9ICFyZXZlcnNlZDtcbiAgfVxuXG4gIGNvbnN0IGRhdGVzID0gW107XG5cbiAgd2hpbGUgKCtkYXRlIDw9IGVuZFRpbWUpIHtcbiAgICBkYXRlcy5wdXNoKGNvbnN0cnVjdEZyb20oc3RhcnQsIGRhdGUpKTtcbiAgICBkYXRlLnNldEhvdXJzKGRhdGUuZ2V0SG91cnMoKSArIHN0ZXApO1xuICB9XG5cbiAgcmV0dXJuIHJldmVyc2VkID8gZGF0ZXMucmV2ZXJzZSgpIDogZGF0ZXM7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZWFjaEhvdXJPZkludGVydmFsO1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZUludGVydmFsIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVJbnRlcnZhbC5qc1wiO1xuaW1wb3J0IHsgYWRkTWludXRlcyB9IGZyb20gXCIuL2FkZE1pbnV0ZXMuanNcIjtcbmltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBlYWNoTWludXRlT2ZJbnRlcnZhbH0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZWFjaE1pbnV0ZU9mSW50ZXJ2YWx9IGZ1bmN0aW9uIHJlc3VsdCB0eXBlLiBJdCByZXNvbHZlcyB0aGUgcHJvcGVyIGRhdGEgdHlwZS5cbiAqIEl0IHVzZXMgdGhlIGZpcnN0IGFyZ3VtZW50IGRhdGUgb2JqZWN0IHR5cGUsIHN0YXJ0aW5nIGZyb20gdGhlIGRhdGUgYXJndW1lbnQsXG4gKiB0aGVuIHRoZSBzdGFydCBpbnRlcnZhbCBkYXRlLCBhbmQgZmluYWxseSB0aGUgZW5kIGludGVydmFsIGRhdGUuIElmXG4gKiBhIGNvbnRleHQgZnVuY3Rpb24gaXMgcGFzc2VkLCBpdCB1c2VzIHRoZSBjb250ZXh0IGZ1bmN0aW9uIHJldHVybiB0eXBlLlxuICovXG5cbi8qKlxuICogQG5hbWUgZWFjaE1pbnV0ZU9mSW50ZXJ2YWxcbiAqIEBjYXRlZ29yeSBJbnRlcnZhbCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGFycmF5IG9mIG1pbnV0ZXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgdGltZSBpbnRlcnZhbC5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybnMgdGhlIGFycmF5IG9mIG1pbnV0ZXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgdGltZSBpbnRlcnZhbC5cbiAqXG4gKiBAdHlwZVBhcmFtIEludGVydmFsVHlwZSAtIEludGVydmFsIHR5cGUuXG4gKiBAdHlwZVBhcmFtIE9wdGlvbnMgLSBPcHRpb25zIHR5cGUuXG4gKlxuICogQHBhcmFtIGludGVydmFsIC0gVGhlIGludGVydmFsLlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBhcnJheSB3aXRoIHN0YXJ0cyBvZiBtaW51dGVzIGZyb20gdGhlIG1pbnV0ZSBvZiB0aGUgaW50ZXJ2YWwgc3RhcnQgdG8gdGhlIG1pbnV0ZSBvZiB0aGUgaW50ZXJ2YWwgZW5kXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEVhY2ggbWludXRlIGJldHdlZW4gMTQgT2N0b2JlciAyMDIwLCAxMzowMCBhbmQgMTQgT2N0b2JlciAyMDIwLCAxMzowM1xuICogY29uc3QgcmVzdWx0ID0gZWFjaE1pbnV0ZU9mSW50ZXJ2YWwoe1xuICogICBzdGFydDogbmV3IERhdGUoMjAxNCwgOSwgMTQsIDEzKSxcbiAqICAgZW5kOiBuZXcgRGF0ZSgyMDE0LCA5LCAxNCwgMTMsIDMpXG4gKiB9KVxuICogLy89PiBbXG4gKiAvLyAgIFdlZCBPY3QgMTQgMjAxNCAxMzowMDowMCxcbiAqIC8vICAgV2VkIE9jdCAxNCAyMDE0IDEzOjAxOjAwLFxuICogLy8gICBXZWQgT2N0IDE0IDIwMTQgMTM6MDI6MDAsXG4gKiAvLyAgIFdlZCBPY3QgMTQgMjAxNCAxMzowMzowMFxuICogLy8gXVxuICovXG5leHBvcnQgZnVuY3Rpb24gZWFjaE1pbnV0ZU9mSW50ZXJ2YWwoaW50ZXJ2YWwsIG9wdGlvbnMpIHtcbiAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBub3JtYWxpemVJbnRlcnZhbChvcHRpb25zPy5pbiwgaW50ZXJ2YWwpO1xuICAvLyBTZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBtaW51dGVcbiAgc3RhcnQuc2V0U2Vjb25kcygwLCAwKTtcblxuICBsZXQgcmV2ZXJzZWQgPSArc3RhcnQgPiArZW5kO1xuICBjb25zdCBlbmRUaW1lID0gcmV2ZXJzZWQgPyArc3RhcnQgOiArZW5kO1xuICBsZXQgZGF0ZSA9IHJldmVyc2VkID8gZW5kIDogc3RhcnQ7XG5cbiAgbGV0IHN0ZXAgPSBvcHRpb25zPy5zdGVwID8/IDE7XG4gIGlmICghc3RlcCkgcmV0dXJuIFtdO1xuICBpZiAoc3RlcCA8IDApIHtcbiAgICBzdGVwID0gLXN0ZXA7XG4gICAgcmV2ZXJzZWQgPSAhcmV2ZXJzZWQ7XG4gIH1cblxuICBjb25zdCBkYXRlcyA9IFtdO1xuXG4gIHdoaWxlICgrZGF0ZSA8PSBlbmRUaW1lKSB7XG4gICAgZGF0ZXMucHVzaChjb25zdHJ1Y3RGcm9tKHN0YXJ0LCBkYXRlKSk7XG4gICAgZGF0ZSA9IGFkZE1pbnV0ZXMoZGF0ZSwgc3RlcCk7XG4gIH1cblxuICByZXR1cm4gcmV2ZXJzZWQgPyBkYXRlcy5yZXZlcnNlKCkgOiBkYXRlcztcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBlYWNoTWludXRlT2ZJbnRlcnZhbDtcbiIsICJpbXBvcnQgeyBub3JtYWxpemVJbnRlcnZhbCB9IGZyb20gXCIuL19saWIvbm9ybWFsaXplSW50ZXJ2YWwuanNcIjtcbmltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBlYWNoTW9udGhPZkludGVydmFsfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogVGhlIHtAbGluayBlYWNoTW9udGhPZkludGVydmFsfSBmdW5jdGlvbiByZXN1bHQgdHlwZS4gSXQgcmVzb2x2ZXMgdGhlIHByb3BlciBkYXRhIHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBlYWNoTW9udGhPZkludGVydmFsXG4gKiBAY2F0ZWdvcnkgSW50ZXJ2YWwgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBhcnJheSBvZiBtb250aHMgd2l0aGluIHRoZSBzcGVjaWZpZWQgdGltZSBpbnRlcnZhbC5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgYXJyYXkgb2YgbW9udGhzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUgaW50ZXJ2YWwuXG4gKlxuICogQHR5cGVQYXJhbSBJbnRlcnZhbFR5cGUgLSBJbnRlcnZhbCB0eXBlLlxuICogQHR5cGVQYXJhbSBPcHRpb25zIC0gT3B0aW9ucyB0eXBlLlxuICpcbiAqIEBwYXJhbSBpbnRlcnZhbCAtIFRoZSBpbnRlcnZhbC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYXJyYXkgd2l0aCBzdGFydHMgb2YgbW9udGhzIGZyb20gdGhlIG1vbnRoIG9mIHRoZSBpbnRlcnZhbCBzdGFydCB0byB0aGUgbW9udGggb2YgdGhlIGludGVydmFsIGVuZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFYWNoIG1vbnRoIGJldHdlZW4gNiBGZWJydWFyeSAyMDE0IGFuZCAxMCBBdWd1c3QgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IGVhY2hNb250aE9mSW50ZXJ2YWwoe1xuICogICBzdGFydDogbmV3IERhdGUoMjAxNCwgMSwgNiksXG4gKiAgIGVuZDogbmV3IERhdGUoMjAxNCwgNywgMTApXG4gKiB9KVxuICogLy89PiBbXG4gKiAvLyAgIFNhdCBGZWIgMDEgMjAxNCAwMDowMDowMCxcbiAqIC8vICAgU2F0IE1hciAwMSAyMDE0IDAwOjAwOjAwLFxuICogLy8gICBUdWUgQXByIDAxIDIwMTQgMDA6MDA6MDAsXG4gKiAvLyAgIFRodSBNYXkgMDEgMjAxNCAwMDowMDowMCxcbiAqIC8vICAgU3VuIEp1biAwMSAyMDE0IDAwOjAwOjAwLFxuICogLy8gICBUdWUgSnVsIDAxIDIwMTQgMDA6MDA6MDAsXG4gKiAvLyAgIEZyaSBBdWcgMDEgMjAxNCAwMDowMDowMFxuICogLy8gXVxuICovXG5leHBvcnQgZnVuY3Rpb24gZWFjaE1vbnRoT2ZJbnRlcnZhbChpbnRlcnZhbCwgb3B0aW9ucykge1xuICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IG5vcm1hbGl6ZUludGVydmFsKG9wdGlvbnM/LmluLCBpbnRlcnZhbCk7XG5cbiAgbGV0IHJldmVyc2VkID0gK3N0YXJ0ID4gK2VuZDtcbiAgY29uc3QgZW5kVGltZSA9IHJldmVyc2VkID8gK3N0YXJ0IDogK2VuZDtcbiAgY29uc3QgZGF0ZSA9IHJldmVyc2VkID8gZW5kIDogc3RhcnQ7XG4gIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIGRhdGUuc2V0RGF0ZSgxKTtcblxuICBsZXQgc3RlcCA9IG9wdGlvbnM/LnN0ZXAgPz8gMTtcbiAgaWYgKCFzdGVwKSByZXR1cm4gW107XG4gIGlmIChzdGVwIDwgMCkge1xuICAgIHN0ZXAgPSAtc3RlcDtcbiAgICByZXZlcnNlZCA9ICFyZXZlcnNlZDtcbiAgfVxuXG4gIGNvbnN0IGRhdGVzID0gW107XG5cbiAgd2hpbGUgKCtkYXRlIDw9IGVuZFRpbWUpIHtcbiAgICBkYXRlcy5wdXNoKGNvbnN0cnVjdEZyb20oc3RhcnQsIGRhdGUpKTtcbiAgICBkYXRlLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSArIHN0ZXApO1xuICB9XG5cbiAgcmV0dXJuIHJldmVyc2VkID8gZGF0ZXMucmV2ZXJzZSgpIDogZGF0ZXM7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZWFjaE1vbnRoT2ZJbnRlcnZhbDtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHN0YXJ0T2ZRdWFydGVyfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3RhcnRPZlF1YXJ0ZXJcbiAqIEBjYXRlZ29yeSBRdWFydGVyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgc3RhcnQgb2YgYSB5ZWFyIHF1YXJ0ZXIgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBzdGFydCBvZiBhIHllYXIgcXVhcnRlciBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHN0YXJ0IG9mIGEgcXVhcnRlclxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgc3RhcnQgb2YgYSBxdWFydGVyIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZlF1YXJ0ZXIobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwKSlcbiAqIC8vPT4gVHVlIEp1bCAwMSAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydE9mUXVhcnRlcihkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgY3VycmVudE1vbnRoID0gX2RhdGUuZ2V0TW9udGgoKTtcbiAgY29uc3QgbW9udGggPSBjdXJyZW50TW9udGggLSAoY3VycmVudE1vbnRoICUgMyk7XG4gIF9kYXRlLnNldE1vbnRoKG1vbnRoLCAxKTtcbiAgX2RhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdGFydE9mUXVhcnRlcjtcbiIsICJpbXBvcnQgeyBub3JtYWxpemVJbnRlcnZhbCB9IGZyb20gXCIuL19saWIvbm9ybWFsaXplSW50ZXJ2YWwuanNcIjtcbmltcG9ydCB7IGFkZFF1YXJ0ZXJzIH0gZnJvbSBcIi4vYWRkUXVhcnRlcnMuanNcIjtcbmltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mUXVhcnRlciB9IGZyb20gXCIuL3N0YXJ0T2ZRdWFydGVyLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBlYWNoUXVhcnRlck9mSW50ZXJ2YWx9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBUaGUge0BsaW5rIGVhY2hRdWFydGVyT2ZJbnRlcnZhbH0gZnVuY3Rpb24gcmVzdWx0IHR5cGUuIEl0IHJlc29sdmVzIHRoZSBwcm9wZXIgZGF0YSB0eXBlLlxuICogSXQgdXNlcyB0aGUgZmlyc3QgYXJndW1lbnQgZGF0ZSBvYmplY3QgdHlwZSwgc3RhcnRpbmcgZnJvbSB0aGUgZGF0ZSBhcmd1bWVudCxcbiAqIHRoZW4gdGhlIHN0YXJ0IGludGVydmFsIGRhdGUsIGFuZCBmaW5hbGx5IHRoZSBlbmQgaW50ZXJ2YWwgZGF0ZS4gSWZcbiAqIGEgY29udGV4dCBmdW5jdGlvbiBpcyBwYXNzZWQsIGl0IHVzZXMgdGhlIGNvbnRleHQgZnVuY3Rpb24gcmV0dXJuIHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBlYWNoUXVhcnRlck9mSW50ZXJ2YWxcbiAqIEBjYXRlZ29yeSBJbnRlcnZhbCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGFycmF5IG9mIHF1YXJ0ZXJzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUgaW50ZXJ2YWwuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGFycmF5IG9mIHF1YXJ0ZXJzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUgaW50ZXJ2YWwuXG4gKlxuICogQHR5cGVQYXJhbSBJbnRlcnZhbFR5cGUgLSBJbnRlcnZhbCB0eXBlLlxuICogQHR5cGVQYXJhbSBPcHRpb25zIC0gT3B0aW9ucyB0eXBlLlxuICpcbiAqIEBwYXJhbSBpbnRlcnZhbCAtIFRoZSBpbnRlcnZhbFxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGFycmF5IHdpdGggc3RhcnRzIG9mIHF1YXJ0ZXJzIGZyb20gdGhlIHF1YXJ0ZXIgb2YgdGhlIGludGVydmFsIHN0YXJ0IHRvIHRoZSBxdWFydGVyIG9mIHRoZSBpbnRlcnZhbCBlbmRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRWFjaCBxdWFydGVyIHdpdGhpbiBpbnRlcnZhbCA2IEZlYnJ1YXJ5IDIwMTQgLSAxMCBBdWd1c3QgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IGVhY2hRdWFydGVyT2ZJbnRlcnZhbCh7XG4gKiAgIHN0YXJ0OiBuZXcgRGF0ZSgyMDE0LCAxLCA2KSxcbiAqICAgZW5kOiBuZXcgRGF0ZSgyMDE0LCA3LCAxMCksXG4gKiB9KVxuICogLy89PiBbXG4gKiAvLyAgIFdlZCBKYW4gMDEgMjAxNCAwMDowMDowMCxcbiAqIC8vICAgVHVlIEFwciAwMSAyMDE0IDAwOjAwOjAwLFxuICogLy8gICBUdWUgSnVsIDAxIDIwMTQgMDA6MDA6MDAsXG4gKiAvLyBdXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlYWNoUXVhcnRlck9mSW50ZXJ2YWwoaW50ZXJ2YWwsIG9wdGlvbnMpIHtcbiAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBub3JtYWxpemVJbnRlcnZhbChvcHRpb25zPy5pbiwgaW50ZXJ2YWwpO1xuXG4gIGxldCByZXZlcnNlZCA9ICtzdGFydCA+ICtlbmQ7XG4gIGNvbnN0IGVuZFRpbWUgPSByZXZlcnNlZCA/ICtzdGFydE9mUXVhcnRlcihzdGFydCkgOiArc3RhcnRPZlF1YXJ0ZXIoZW5kKTtcbiAgbGV0IGRhdGUgPSByZXZlcnNlZCA/IHN0YXJ0T2ZRdWFydGVyKGVuZCkgOiBzdGFydE9mUXVhcnRlcihzdGFydCk7XG5cbiAgbGV0IHN0ZXAgPSBvcHRpb25zPy5zdGVwID8/IDE7XG4gIGlmICghc3RlcCkgcmV0dXJuIFtdO1xuICBpZiAoc3RlcCA8IDApIHtcbiAgICBzdGVwID0gLXN0ZXA7XG4gICAgcmV2ZXJzZWQgPSAhcmV2ZXJzZWQ7XG4gIH1cblxuICBjb25zdCBkYXRlcyA9IFtdO1xuXG4gIHdoaWxlICgrZGF0ZSA8PSBlbmRUaW1lKSB7XG4gICAgZGF0ZXMucHVzaChjb25zdHJ1Y3RGcm9tKHN0YXJ0LCBkYXRlKSk7XG4gICAgZGF0ZSA9IGFkZFF1YXJ0ZXJzKGRhdGUsIHN0ZXApO1xuICB9XG5cbiAgcmV0dXJuIHJldmVyc2VkID8gZGF0ZXMucmV2ZXJzZSgpIDogZGF0ZXM7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZWFjaFF1YXJ0ZXJPZkludGVydmFsO1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZUludGVydmFsIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVJbnRlcnZhbC5qc1wiO1xuaW1wb3J0IHsgYWRkV2Vla3MgfSBmcm9tIFwiLi9hZGRXZWVrcy5qc1wiO1xuaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuL2NvbnN0cnVjdEZyb20uanNcIjtcbmltcG9ydCB7IHN0YXJ0T2ZXZWVrIH0gZnJvbSBcIi4vc3RhcnRPZldlZWsuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGVhY2hXZWVrT2ZJbnRlcnZhbH0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZWFjaFdlZWtPZkludGVydmFsfSBmdW5jdGlvbiByZXN1bHQgdHlwZS4gSXQgcmVzb2x2ZXMgdGhlIHByb3BlciBkYXRhIHR5cGUuXG4gKiBJdCB1c2VzIHRoZSBmaXJzdCBhcmd1bWVudCBkYXRlIG9iamVjdCB0eXBlLCBzdGFydGluZyBmcm9tIHRoZSBpbnRlcnZhbCBzdGFydCBkYXRlLFxuICogdGhlbiB0aGUgZW5kIGludGVydmFsIGRhdGUuIElmIGEgY29udGV4dCBmdW5jdGlvbiBpcyBwYXNzZWQsIGl0IHVzZXMgdGhlIGNvbnRleHQgZnVuY3Rpb24gcmV0dXJuIHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBlYWNoV2Vla09mSW50ZXJ2YWxcbiAqIEBjYXRlZ29yeSBJbnRlcnZhbCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGFycmF5IG9mIHdlZWtzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUgaW50ZXJ2YWwuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGFycmF5IG9mIHdlZWtzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUgaW50ZXJ2YWwuXG4gKlxuICogQHBhcmFtIGludGVydmFsIC0gVGhlIGludGVydmFsLlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBhcnJheSB3aXRoIHN0YXJ0cyBvZiB3ZWVrcyBmcm9tIHRoZSB3ZWVrIG9mIHRoZSBpbnRlcnZhbCBzdGFydCB0byB0aGUgd2VlayBvZiB0aGUgaW50ZXJ2YWwgZW5kXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEVhY2ggd2VlayB3aXRoaW4gaW50ZXJ2YWwgNiBPY3RvYmVyIDIwMTQgLSAyMyBOb3ZlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gZWFjaFdlZWtPZkludGVydmFsKHtcbiAqICAgc3RhcnQ6IG5ldyBEYXRlKDIwMTQsIDksIDYpLFxuICogICBlbmQ6IG5ldyBEYXRlKDIwMTQsIDEwLCAyMylcbiAqIH0pXG4gKiAvLz0+IFtcbiAqIC8vICAgU3VuIE9jdCAwNSAyMDE0IDAwOjAwOjAwLFxuICogLy8gICBTdW4gT2N0IDEyIDIwMTQgMDA6MDA6MDAsXG4gKiAvLyAgIFN1biBPY3QgMTkgMjAxNCAwMDowMDowMCxcbiAqIC8vICAgU3VuIE9jdCAyNiAyMDE0IDAwOjAwOjAwLFxuICogLy8gICBTdW4gTm92IDAyIDIwMTQgMDA6MDA6MDAsXG4gKiAvLyAgIFN1biBOb3YgMDkgMjAxNCAwMDowMDowMCxcbiAqIC8vICAgU3VuIE5vdiAxNiAyMDE0IDAwOjAwOjAwLFxuICogLy8gICBTdW4gTm92IDIzIDIwMTQgMDA6MDA6MDBcbiAqIC8vIF1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVhY2hXZWVrT2ZJbnRlcnZhbChpbnRlcnZhbCwgb3B0aW9ucykge1xuICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IG5vcm1hbGl6ZUludGVydmFsKG9wdGlvbnM/LmluLCBpbnRlcnZhbCk7XG5cbiAgbGV0IHJldmVyc2VkID0gK3N0YXJ0ID4gK2VuZDtcbiAgY29uc3Qgc3RhcnREYXRlV2VlayA9IHJldmVyc2VkXG4gICAgPyBzdGFydE9mV2VlayhlbmQsIG9wdGlvbnMpXG4gICAgOiBzdGFydE9mV2VlayhzdGFydCwgb3B0aW9ucyk7XG4gIGNvbnN0IGVuZERhdGVXZWVrID0gcmV2ZXJzZWRcbiAgICA/IHN0YXJ0T2ZXZWVrKHN0YXJ0LCBvcHRpb25zKVxuICAgIDogc3RhcnRPZldlZWsoZW5kLCBvcHRpb25zKTtcblxuICBzdGFydERhdGVXZWVrLnNldEhvdXJzKDE1KTtcbiAgZW5kRGF0ZVdlZWsuc2V0SG91cnMoMTUpO1xuXG4gIGNvbnN0IGVuZFRpbWUgPSArZW5kRGF0ZVdlZWsuZ2V0VGltZSgpO1xuICBsZXQgY3VycmVudERhdGUgPSBzdGFydERhdGVXZWVrO1xuXG4gIGxldCBzdGVwID0gb3B0aW9ucz8uc3RlcCA/PyAxO1xuICBpZiAoIXN0ZXApIHJldHVybiBbXTtcbiAgaWYgKHN0ZXAgPCAwKSB7XG4gICAgc3RlcCA9IC1zdGVwO1xuICAgIHJldmVyc2VkID0gIXJldmVyc2VkO1xuICB9XG5cbiAgY29uc3QgZGF0ZXMgPSBbXTtcblxuICB3aGlsZSAoK2N1cnJlbnREYXRlIDw9IGVuZFRpbWUpIHtcbiAgICBjdXJyZW50RGF0ZS5zZXRIb3VycygwKTtcbiAgICBkYXRlcy5wdXNoKGNvbnN0cnVjdEZyb20oc3RhcnQsIGN1cnJlbnREYXRlKSk7XG4gICAgY3VycmVudERhdGUgPSBhZGRXZWVrcyhjdXJyZW50RGF0ZSwgc3RlcCk7XG4gICAgY3VycmVudERhdGUuc2V0SG91cnMoMTUpO1xuICB9XG5cbiAgcmV0dXJuIHJldmVyc2VkID8gZGF0ZXMucmV2ZXJzZSgpIDogZGF0ZXM7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZWFjaFdlZWtPZkludGVydmFsO1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZUludGVydmFsIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVJbnRlcnZhbC5qc1wiO1xuaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuL2NvbnN0cnVjdEZyb20uanNcIjtcbmltcG9ydCB7IGVhY2hEYXlPZkludGVydmFsIH0gZnJvbSBcIi4vZWFjaERheU9mSW50ZXJ2YWwuanNcIjtcbmltcG9ydCB7IGlzV2Vla2VuZCB9IGZyb20gXCIuL2lzV2Vla2VuZC5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZWFjaFdlZWtlbmRPZkludGVydmFsfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogVGhlIHtAbGluayBlYWNoV2Vla2VuZE9mSW50ZXJ2YWx9IGZ1bmN0aW9uIHJlc3VsdCB0eXBlLlxuICovXG5cbi8qKlxuICogQG5hbWUgZWFjaFdlZWtlbmRPZkludGVydmFsXG4gKiBAY2F0ZWdvcnkgSW50ZXJ2YWwgSGVscGVyc1xuICogQHN1bW1hcnkgTGlzdCBhbGwgdGhlIFNhdHVyZGF5cyBhbmQgU3VuZGF5cyBpbiB0aGUgZ2l2ZW4gZGF0ZSBpbnRlcnZhbC5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCBhbGwgdGhlIFNhdHVyZGF5cyBhbmQgU3VuZGF5cyBpbiB0aGUgZ2l2ZW4gZGF0ZSBpbnRlcnZhbC5cbiAqXG4gKiBAdHlwZVBhcmFtIEludGVydmFsVHlwZSAtIEludGVydmFsIHR5cGUuXG4gKiBAdHlwZVBhcmFtIE9wdGlvbnMgLSBPcHRpb25zIHR5cGUuXG4gKlxuICogQHBhcmFtIGludGVydmFsIC0gVGhlIGdpdmVuIGludGVydmFsXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBBbiBhcnJheSBjb250YWluaW5nIGFsbCB0aGUgU2F0dXJkYXlzIGFuZCBTdW5kYXlzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIExpc3RzIGFsbCBTYXR1cmRheXMgYW5kIFN1bmRheXMgaW4gdGhlIGdpdmVuIGRhdGUgaW50ZXJ2YWxcbiAqIGNvbnN0IHJlc3VsdCA9IGVhY2hXZWVrZW5kT2ZJbnRlcnZhbCh7XG4gKiAgIHN0YXJ0OiBuZXcgRGF0ZSgyMDE4LCA4LCAxNyksXG4gKiAgIGVuZDogbmV3IERhdGUoMjAxOCwgOCwgMzApXG4gKiB9KVxuICogLy89PiBbXG4gKiAvLyAgIFNhdCBTZXAgMjIgMjAxOCAwMDowMDowMCxcbiAqIC8vICAgU3VuIFNlcCAyMyAyMDE4IDAwOjAwOjAwLFxuICogLy8gICBTYXQgU2VwIDI5IDIwMTggMDA6MDA6MDAsXG4gKiAvLyAgIFN1biBTZXAgMzAgMjAxOCAwMDowMDowMFxuICogLy8gXVxuICovXG5leHBvcnQgZnVuY3Rpb24gZWFjaFdlZWtlbmRPZkludGVydmFsKGludGVydmFsLCBvcHRpb25zKSB7XG4gIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gbm9ybWFsaXplSW50ZXJ2YWwob3B0aW9ucz8uaW4sIGludGVydmFsKTtcbiAgY29uc3QgZGF0ZUludGVydmFsID0gZWFjaERheU9mSW50ZXJ2YWwoeyBzdGFydCwgZW5kIH0sIG9wdGlvbnMpO1xuICBjb25zdCB3ZWVrZW5kcyA9IFtdO1xuICBsZXQgaW5kZXggPSAwO1xuICB3aGlsZSAoaW5kZXggPCBkYXRlSW50ZXJ2YWwubGVuZ3RoKSB7XG4gICAgY29uc3QgZGF0ZSA9IGRhdGVJbnRlcnZhbFtpbmRleCsrXTtcbiAgICBpZiAoaXNXZWVrZW5kKGRhdGUpKSB3ZWVrZW5kcy5wdXNoKGNvbnN0cnVjdEZyb20oc3RhcnQsIGRhdGUpKTtcbiAgfVxuICByZXR1cm4gd2Vla2VuZHM7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZWFjaFdlZWtlbmRPZkludGVydmFsO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc3RhcnRPZk1vbnRofSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3RhcnRPZk1vbnRoXG4gKiBAY2F0ZWdvcnkgTW9udGggSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBzdGFydCBvZiBhIG1vbnRoIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgc3RhcnQgb2YgYSBtb250aCBmb3IgdGhlIGdpdmVuIGRhdGUuIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy5cbiAqIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsXG4gKiBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHN0YXJ0IG9mIGEgbW9udGhcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIHN0YXJ0IG9mIGEgbW9udGggZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdGFydE9mTW9udGgobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwKSlcbiAqIC8vPT4gTW9uIFNlcCAwMSAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydE9mTW9udGgoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIF9kYXRlLnNldERhdGUoMSk7XG4gIF9kYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc3RhcnRPZk1vbnRoO1xuIiwgImltcG9ydCB7IGVhY2hXZWVrZW5kT2ZJbnRlcnZhbCB9IGZyb20gXCIuL2VhY2hXZWVrZW5kT2ZJbnRlcnZhbC5qc1wiO1xuaW1wb3J0IHsgZW5kT2ZNb250aCB9IGZyb20gXCIuL2VuZE9mTW9udGguanNcIjtcbmltcG9ydCB7IHN0YXJ0T2ZNb250aCB9IGZyb20gXCIuL3N0YXJ0T2ZNb250aC5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZWFjaFdlZWtlbmRPZk1vbnRofSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZWFjaFdlZWtlbmRPZk1vbnRoXG4gKiBAY2F0ZWdvcnkgTW9udGggSGVscGVyc1xuICogQHN1bW1hcnkgTGlzdCBhbGwgdGhlIFNhdHVyZGF5cyBhbmQgU3VuZGF5cyBpbiB0aGUgZ2l2ZW4gbW9udGguXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgYWxsIHRoZSBTYXR1cmRheXMgYW5kIFN1bmRheXMgaW4gdGhlIGdpdmVuIG1vbnRoLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBnaXZlbiBtb250aFxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgQW4gYXJyYXkgY29udGFpbmluZyBhbGwgdGhlIFNhdHVyZGF5cyBhbmQgU3VuZGF5c1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBMaXN0cyBhbGwgU2F0dXJkYXlzIGFuZCBTdW5kYXlzIGluIHRoZSBnaXZlbiBtb250aFxuICogY29uc3QgcmVzdWx0ID0gZWFjaFdlZWtlbmRPZk1vbnRoKG5ldyBEYXRlKDIwMjIsIDEsIDEpKVxuICogLy89PiBbXG4gKiAvLyAgIFNhdCBGZWIgMDUgMjAyMiAwMDowMDowMCxcbiAqIC8vICAgU3VuIEZlYiAwNiAyMDIyIDAwOjAwOjAwLFxuICogLy8gICBTYXQgRmViIDEyIDIwMjIgMDA6MDA6MDAsXG4gKiAvLyAgIFN1biBGZWIgMTMgMjAyMiAwMDowMDowMCxcbiAqIC8vICAgU2F0IEZlYiAxOSAyMDIyIDAwOjAwOjAwLFxuICogLy8gICBTdW4gRmViIDIwIDIwMjIgMDA6MDA6MDAsXG4gKiAvLyAgIFNhdCBGZWIgMjYgMjAyMiAwMDowMDowMCxcbiAqIC8vICAgU3VuIEZlYiAyNyAyMDIyIDAwOjAwOjAwXG4gKiAvLyBdXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlYWNoV2Vla2VuZE9mTW9udGgoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBzdGFydCA9IHN0YXJ0T2ZNb250aChkYXRlLCBvcHRpb25zKTtcbiAgY29uc3QgZW5kID0gZW5kT2ZNb250aChkYXRlLCBvcHRpb25zKTtcbiAgcmV0dXJuIGVhY2hXZWVrZW5kT2ZJbnRlcnZhbCh7IHN0YXJ0LCBlbmQgfSwgb3B0aW9ucyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZWFjaFdlZWtlbmRPZk1vbnRoO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZW5kT2ZZZWFyfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZW5kT2ZZZWFyXG4gKiBAY2F0ZWdvcnkgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGVuZCBvZiBhIHllYXIgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBlbmQgb2YgYSB5ZWFyIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZW5kIG9mIGEgeWVhclxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgZW5kIG9mIGEgeWVhciBmb3IgMiBTZXB0ZW1iZXIgMjAxNCAxMTo1NTowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IGVuZE9mWWVhcihuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApKVxuICogLy89PiBXZWQgRGVjIDMxIDIwMTQgMjM6NTk6NTkuOTk5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmRPZlllYXIoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGNvbnN0IHllYXIgPSBfZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBfZGF0ZS5zZXRGdWxsWWVhcih5ZWFyICsgMSwgMCwgMCk7XG4gIF9kYXRlLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBlbmRPZlllYXI7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdGFydE9mWWVhcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN0YXJ0T2ZZZWFyXG4gKiBAY2F0ZWdvcnkgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgeWVhciBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgeWVhciBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHN0YXJ0IG9mIGEgeWVhclxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgc3RhcnQgb2YgYSB5ZWFyIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZlllYXIobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwMCkpXG4gKiAvLz0+IFdlZCBKYW4gMDEgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RhcnRPZlllYXIoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBkYXRlXyA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGRhdGVfLnNldEZ1bGxZZWFyKGRhdGVfLmdldEZ1bGxZZWFyKCksIDAsIDEpO1xuICBkYXRlXy5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGRhdGVfO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHN0YXJ0T2ZZZWFyO1xuIiwgImltcG9ydCB7IGVhY2hXZWVrZW5kT2ZJbnRlcnZhbCB9IGZyb20gXCIuL2VhY2hXZWVrZW5kT2ZJbnRlcnZhbC5qc1wiO1xuaW1wb3J0IHsgZW5kT2ZZZWFyIH0gZnJvbSBcIi4vZW5kT2ZZZWFyLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mWWVhciB9IGZyb20gXCIuL3N0YXJ0T2ZZZWFyLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBlYWNoV2Vla2VuZE9mWWVhcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGVhY2hXZWVrZW5kT2ZZZWFyXG4gKiBAY2F0ZWdvcnkgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBMaXN0IGFsbCB0aGUgU2F0dXJkYXlzIGFuZCBTdW5kYXlzIGluIHRoZSB5ZWFyLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IGFsbCB0aGUgU2F0dXJkYXlzIGFuZCBTdW5kYXlzIGluIHRoZSB5ZWFyLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBnaXZlbiB5ZWFyXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBBbiBhcnJheSBjb250YWluaW5nIGFsbCB0aGUgU2F0dXJkYXlzIGFuZCBTdW5kYXlzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIExpc3RzIGFsbCBTYXR1cmRheXMgYW5kIFN1bmRheXMgaW4gdGhlIHllYXJcbiAqIGNvbnN0IHJlc3VsdCA9IGVhY2hXZWVrZW5kT2ZZZWFyKG5ldyBEYXRlKDIwMjAsIDEsIDEpKVxuICogLy89PiBbXG4gKiAvLyAgIFNhdCBKYW4gMDMgMjAyMCAwMDowMDowMCxcbiAqIC8vICAgU3VuIEphbiAwNCAyMDIwIDAwOjAwOjAwLFxuICogLy8gICAuLi5cbiAqIC8vICAgU3VuIERlYyAyNyAyMDIwIDAwOjAwOjAwXG4gKiAvLyBdXG4gKiBdXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlYWNoV2Vla2VuZE9mWWVhcihkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IHN0YXJ0ID0gc3RhcnRPZlllYXIoZGF0ZSwgb3B0aW9ucyk7XG4gIGNvbnN0IGVuZCA9IGVuZE9mWWVhcihkYXRlLCBvcHRpb25zKTtcbiAgcmV0dXJuIGVhY2hXZWVrZW5kT2ZJbnRlcnZhbCh7IHN0YXJ0LCBlbmQgfSwgb3B0aW9ucyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZWFjaFdlZWtlbmRPZlllYXI7XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplSW50ZXJ2YWwgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZUludGVydmFsLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZWFjaFllYXJPZkludGVydmFsfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogVGhlIHtAbGluayBlYWNoWWVhck9mSW50ZXJ2YWx9IGZ1bmN0aW9uIHJlc3VsdCB0eXBlLiBJdCByZXNvbHZlcyB0aGUgcHJvcGVyIGRhdGEgdHlwZS5cbiAqIEl0IHVzZXMgdGhlIGZpcnN0IGFyZ3VtZW50IGRhdGUgb2JqZWN0IHR5cGUsIHN0YXJ0aW5nIGZyb20gdGhlIGRhdGUgYXJndW1lbnQsXG4gKiB0aGVuIHRoZSBzdGFydCBpbnRlcnZhbCBkYXRlLCBhbmQgZmluYWxseSB0aGUgZW5kIGludGVydmFsIGRhdGUuIElmXG4gKiBhIGNvbnRleHQgZnVuY3Rpb24gaXMgcGFzc2VkLCBpdCB1c2VzIHRoZSBjb250ZXh0IGZ1bmN0aW9uIHJldHVybiB0eXBlLlxuICovXG5cbi8qKlxuICogQG5hbWUgZWFjaFllYXJPZkludGVydmFsXG4gKiBAY2F0ZWdvcnkgSW50ZXJ2YWwgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBhcnJheSBvZiB5ZWFybHkgdGltZXN0YW1wcyB3aXRoaW4gdGhlIHNwZWNpZmllZCB0aW1lIGludGVydmFsLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBhcnJheSBvZiB5ZWFybHkgdGltZXN0YW1wcyB3aXRoaW4gdGhlIHNwZWNpZmllZCB0aW1lIGludGVydmFsLlxuICpcbiAqIEB0eXBlUGFyYW0gSW50ZXJ2YWxUeXBlIC0gSW50ZXJ2YWwgdHlwZS5cbiAqIEB0eXBlUGFyYW0gT3B0aW9ucyAtIE9wdGlvbnMgdHlwZS5cbiAqXG4gKiBAcGFyYW0gaW50ZXJ2YWwgLSBUaGUgaW50ZXJ2YWwuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnMuXG4gKlxuICogQHJldHVybnMgVGhlIGFycmF5IHdpdGggc3RhcnRzIG9mIHllYXJseSB0aW1lc3RhbXBzIGZyb20gdGhlIG1vbnRoIG9mIHRoZSBpbnRlcnZhbCBzdGFydCB0byB0aGUgbW9udGggb2YgdGhlIGludGVydmFsIGVuZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFYWNoIHllYXIgYmV0d2VlbiA2IEZlYnJ1YXJ5IDIwMTQgYW5kIDEwIEF1Z3VzdCAyMDE3OlxuICogY29uc3QgcmVzdWx0ID0gZWFjaFllYXJPZkludGVydmFsKHtcbiAqICAgc3RhcnQ6IG5ldyBEYXRlKDIwMTQsIDEsIDYpLFxuICogICBlbmQ6IG5ldyBEYXRlKDIwMTcsIDcsIDEwKVxuICogfSlcbiAqIC8vPT4gW1xuICogLy8gICBXZWQgSmFuIDAxIDIwMTQgMDA6MDA6MDAsXG4gKiAvLyAgIFRodSBKYW4gMDEgMjAxNSAwMDowMDowMCxcbiAqIC8vICAgRnJpIEphbiAwMSAyMDE2IDAwOjAwOjAwLFxuICogLy8gICBTdW4gSmFuIDAxIDIwMTcgMDA6MDA6MDBcbiAqIC8vIF1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVhY2hZZWFyT2ZJbnRlcnZhbChpbnRlcnZhbCwgb3B0aW9ucykge1xuICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IG5vcm1hbGl6ZUludGVydmFsKG9wdGlvbnM/LmluLCBpbnRlcnZhbCk7XG5cbiAgbGV0IHJldmVyc2VkID0gK3N0YXJ0ID4gK2VuZDtcbiAgY29uc3QgZW5kVGltZSA9IHJldmVyc2VkID8gK3N0YXJ0IDogK2VuZDtcbiAgY29uc3QgZGF0ZSA9IHJldmVyc2VkID8gZW5kIDogc3RhcnQ7XG4gIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIGRhdGUuc2V0TW9udGgoMCwgMSk7XG5cbiAgbGV0IHN0ZXAgPSBvcHRpb25zPy5zdGVwID8/IDE7XG4gIGlmICghc3RlcCkgcmV0dXJuIFtdO1xuICBpZiAoc3RlcCA8IDApIHtcbiAgICBzdGVwID0gLXN0ZXA7XG4gICAgcmV2ZXJzZWQgPSAhcmV2ZXJzZWQ7XG4gIH1cblxuICBjb25zdCBkYXRlcyA9IFtdO1xuXG4gIHdoaWxlICgrZGF0ZSA8PSBlbmRUaW1lKSB7XG4gICAgZGF0ZXMucHVzaChjb25zdHJ1Y3RGcm9tKHN0YXJ0LCBkYXRlKSk7XG4gICAgZGF0ZS5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCkgKyBzdGVwKTtcbiAgfVxuXG4gIHJldHVybiByZXZlcnNlZCA/IGRhdGVzLnJldmVyc2UoKSA6IGRhdGVzO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGVhY2hZZWFyT2ZJbnRlcnZhbDtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGVuZE9mRGVjYWRlfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZW5kT2ZEZWNhZGVcbiAqIEBjYXRlZ29yeSBEZWNhZGUgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBlbmQgb2YgYSBkZWNhZGUgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBlbmQgb2YgYSBkZWNhZGUgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZW5kIG9mIGEgZGVjYWRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBlbmQgb2YgYSBkZWNhZGUgZm9yIDEyIE1heSAxOTg0IDAwOjAwOjAwOlxuICogY29uc3QgcmVzdWx0ID0gZW5kT2ZEZWNhZGUobmV3IERhdGUoMTk4NCwgNCwgMTIsIDAwLCAwMCwgMDApKVxuICogLy89PiBEZWMgMzEgMTk4OSAyMzo1OTo1OS45OTlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuZE9mRGVjYWRlKGRhdGUsIG9wdGlvbnMpIHtcbiAgLy8gVE9ETzogU3dpdGNoIHRvIG1vcmUgdGVjaG5pY2FsIGRlZmluaXRpb24gaW4gb2YgZGVjYWRlcyB0aGF0IHN0YXJ0IHdpdGggMVxuICAvLyBlbmQgd2l0aCAwLiBJLmUuIDIwMDEtMjAxMCBpbnN0ZWFkIG9mIGN1cnJlbnQgMjAwMC0yMDA5LiBJdCdzIGEgYnJlYWtpbmdcbiAgLy8gY2hhbmdlLCBzbyBpdCBjYW4gb25seSBiZSBkb25lIGluIDQuMC5cbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBjb25zdCB5ZWFyID0gX2RhdGUuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgZGVjYWRlID0gOSArIE1hdGguZmxvb3IoeWVhciAvIDEwKSAqIDEwO1xuICBfZGF0ZS5zZXRGdWxsWWVhcihkZWNhZGUsIDExLCAzMSk7XG4gIF9kYXRlLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBlbmRPZkRlY2FkZTtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGVuZE9mSG91cn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGVuZE9mSG91clxuICogQGNhdGVnb3J5IEhvdXIgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBlbmQgb2YgYW4gaG91ciBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGVuZCBvZiBhbiBob3VyIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBlbmQgb2YgYW4gaG91clxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgZW5kIG9mIGFuIGhvdXIgZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBlbmRPZkhvdXIobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1KSlcbiAqIC8vPT4gVHVlIFNlcCAwMiAyMDE0IDExOjU5OjU5Ljk5OVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5kT2ZIb3VyKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBfZGF0ZS5zZXRNaW51dGVzKDU5LCA1OSwgOTk5KTtcbiAgcmV0dXJuIF9kYXRlO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGVuZE9mSG91cjtcbiIsICJpbXBvcnQgeyBnZXREZWZhdWx0T3B0aW9ucyB9IGZyb20gXCIuL19saWIvZGVmYXVsdE9wdGlvbnMuanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZW5kT2ZXZWVrfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZW5kT2ZXZWVrXG4gKiBAY2F0ZWdvcnkgV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGVuZCBvZiBhIHdlZWsgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBlbmQgb2YgYSB3ZWVrIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBlbmQgb2YgYSB3ZWVrXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBlbmQgb2YgYSB3ZWVrIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gZW5kT2ZXZWVrKG5ldyBEYXRlKDIwMTQsIDgsIDIsIDExLCA1NSwgMCkpXG4gKiAvLz0+IFNhdCBTZXAgMDYgMjAxNCAyMzo1OTo1OS45OTlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgdGhlIHdlZWsgc3RhcnRzIG9uIE1vbmRheSwgdGhlIGVuZCBvZiB0aGUgd2VlayBmb3IgMiBTZXB0ZW1iZXIgMjAxNCAxMTo1NTowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IGVuZE9mV2VlayhuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApLCB7IHdlZWtTdGFydHNPbjogMSB9KVxuICogLy89PiBTdW4gU2VwIDA3IDIwMTQgMjM6NTk6NTkuOTk5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmRPZldlZWsoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IGdldERlZmF1bHRPcHRpb25zKCk7XG4gIGNvbnN0IHdlZWtTdGFydHNPbiA9XG4gICAgb3B0aW9ucz8ud2Vla1N0YXJ0c09uID8/XG4gICAgb3B0aW9ucz8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24gPz9cbiAgICBkZWZhdWx0T3B0aW9ucy53ZWVrU3RhcnRzT24gPz9cbiAgICBkZWZhdWx0T3B0aW9ucy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbiA/P1xuICAgIDA7XG5cbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBjb25zdCBkYXkgPSBfZGF0ZS5nZXREYXkoKTtcbiAgY29uc3QgZGlmZiA9IChkYXkgPCB3ZWVrU3RhcnRzT24gPyAtNyA6IDApICsgNiAtIChkYXkgLSB3ZWVrU3RhcnRzT24pO1xuXG4gIF9kYXRlLnNldERhdGUoX2RhdGUuZ2V0RGF0ZSgpICsgZGlmZik7XG4gIF9kYXRlLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBlbmRPZldlZWs7XG4iLCAiaW1wb3J0IHsgZW5kT2ZXZWVrIH0gZnJvbSBcIi4vZW5kT2ZXZWVrLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBlbmRPZklTT1dlZWt9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBlbmRPZklTT1dlZWtcbiAqIEBjYXRlZ29yeSBJU08gV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGVuZCBvZiBhbiBJU08gd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGVuZCBvZiBhbiBJU08gd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGVuZCBvZiBhbiBJU08gd2Vla1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgZW5kIG9mIGFuIElTTyB3ZWVrIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gZW5kT2ZJU09XZWVrKG5ldyBEYXRlKDIwMTQsIDgsIDIsIDExLCA1NSwgMCkpXG4gKiAvLz0+IFN1biBTZXAgMDcgMjAxNCAyMzo1OTo1OS45OTlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuZE9mSVNPV2VlayhkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBlbmRPZldlZWsoZGF0ZSwgeyAuLi5vcHRpb25zLCB3ZWVrU3RhcnRzT246IDEgfSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZW5kT2ZJU09XZWVrO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBnZXRJU09XZWVrWWVhciB9IGZyb20gXCIuL2dldElTT1dlZWtZZWFyLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mSVNPV2VlayB9IGZyb20gXCIuL3N0YXJ0T2ZJU09XZWVrLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBlbmRPZklTT1dlZWtZZWFyfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZW5kT2ZJU09XZWVrWWVhclxuICogQGNhdGVnb3J5IElTTyBXZWVrLU51bWJlcmluZyBZZWFyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgZW5kIG9mIGFuIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgZW5kIG9mIGFuIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyLFxuICogd2hpY2ggYWx3YXlzIHN0YXJ0cyAzIGRheXMgYmVmb3JlIHRoZSB5ZWFyJ3MgZmlyc3QgVGh1cnNkYXkuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gQ29udGV4dERhdGUgLSBUaGUgYERhdGVgIHR5cGUgb2YgdGhlIGNvbnRleHQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBlbmQgb2YgYW4gSVNPIHdlZWstbnVtYmVyaW5nIHllYXJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIGVuZCBvZiBhbiBJU08gd2Vlay1udW1iZXJpbmcgeWVhciBmb3IgMiBKdWx5IDIwMDU6XG4gKiBjb25zdCByZXN1bHQgPSBlbmRPZklTT1dlZWtZZWFyKG5ldyBEYXRlKDIwMDUsIDYsIDIpKVxuICogLy89PiBTdW4gSmFuIDAxIDIwMDYgMjM6NTk6NTkuOTk5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmRPZklTT1dlZWtZZWFyKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgeWVhciA9IGdldElTT1dlZWtZZWFyKGRhdGUsIG9wdGlvbnMpO1xuICBjb25zdCBmb3VydGhPZkphbnVhcnlPZk5leHRZZWFyID0gY29uc3RydWN0RnJvbShvcHRpb25zPy5pbiB8fCBkYXRlLCAwKTtcbiAgZm91cnRoT2ZKYW51YXJ5T2ZOZXh0WWVhci5zZXRGdWxsWWVhcih5ZWFyICsgMSwgMCwgNCk7XG4gIGZvdXJ0aE9mSmFudWFyeU9mTmV4dFllYXIuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIGNvbnN0IF9kYXRlID0gc3RhcnRPZklTT1dlZWsoZm91cnRoT2ZKYW51YXJ5T2ZOZXh0WWVhciwgb3B0aW9ucyk7XG4gIF9kYXRlLnNldE1pbGxpc2Vjb25kcyhfZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSAtIDEpO1xuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZW5kT2ZJU09XZWVrWWVhcjtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGVuZE9mTWludXRlfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZW5kT2ZNaW51dGVcbiAqIEBjYXRlZ29yeSBNaW51dGUgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBlbmQgb2YgYSBtaW51dGUgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBlbmQgb2YgYSBtaW51dGUgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZSBvciB0aGUgcHJvdmlkZWQgY29udGV4dC5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGVuZCBvZiBhIG1pbnV0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgZW5kIG9mIGEgbWludXRlIGZvciAxIERlY2VtYmVyIDIwMTQgMjI6MTU6NDUuNDAwOlxuICogY29uc3QgcmVzdWx0ID0gZW5kT2ZNaW51dGUobmV3IERhdGUoMjAxNCwgMTEsIDEsIDIyLCAxNSwgNDUsIDQwMCkpXG4gKiAvLz0+IE1vbiBEZWMgMDEgMjAxNCAyMjoxNTo1OS45OTlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuZE9mTWludXRlKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBfZGF0ZS5zZXRTZWNvbmRzKDU5LCA5OTkpO1xuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZW5kT2ZNaW51dGU7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBlbmRPZlF1YXJ0ZXJ9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBlbmRPZlF1YXJ0ZXJcbiAqIEBjYXRlZ29yeSBRdWFydGVyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgZW5kIG9mIGEgeWVhciBxdWFydGVyIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgZW5kIG9mIGEgeWVhciBxdWFydGVyIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBlbmQgb2YgYSBxdWFydGVyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBlbmQgb2YgYSBxdWFydGVyIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gZW5kT2ZRdWFydGVyKG5ldyBEYXRlKDIwMTQsIDgsIDIsIDExLCA1NSwgMCkpXG4gKiAvLz0+IFR1ZSBTZXAgMzAgMjAxNCAyMzo1OTo1OS45OTlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuZE9mUXVhcnRlcihkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgY3VycmVudE1vbnRoID0gX2RhdGUuZ2V0TW9udGgoKTtcbiAgY29uc3QgbW9udGggPSBjdXJyZW50TW9udGggLSAoY3VycmVudE1vbnRoICUgMykgKyAzO1xuICBfZGF0ZS5zZXRNb250aChtb250aCwgMCk7XG4gIF9kYXRlLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBlbmRPZlF1YXJ0ZXI7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBlbmRPZlNlY29uZH0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGVuZE9mU2Vjb25kXG4gKiBAY2F0ZWdvcnkgU2Vjb25kIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgZW5kIG9mIGEgc2Vjb25kIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgZW5kIG9mIGEgc2Vjb25kIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUgaWYgbm8gYGluYCBvcHRpb24gaXMgc3BlY2lmaWVkLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZW5kIG9mIGEgc2Vjb25kXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBlbmQgb2YgYSBzZWNvbmQgZm9yIDEgRGVjZW1iZXIgMjAxNCAyMjoxNTo0NS40MDA6XG4gKiBjb25zdCByZXN1bHQgPSBlbmRPZlNlY29uZChuZXcgRGF0ZSgyMDE0LCAxMSwgMSwgMjIsIDE1LCA0NSwgNDAwKSlcbiAqIC8vPT4gTW9uIERlYyAwMSAyMDE0IDIyOjE1OjQ1Ljk5OVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5kT2ZTZWNvbmQoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIF9kYXRlLnNldE1pbGxpc2Vjb25kcyg5OTkpO1xuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZW5kT2ZTZWNvbmQ7XG4iLCAiaW1wb3J0IHsgZW5kT2ZEYXkgfSBmcm9tIFwiLi9lbmRPZkRheS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZW5kT2ZUb2RheX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGVuZE9mVG9kYXlcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBlbmQgb2YgdG9kYXkuXG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBlbmQgb2YgdG9kYXkuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZW5kIG9mIHRvZGF5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRvZGF5IGlzIDYgT2N0b2JlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gZW5kT2ZUb2RheSgpXG4gKiAvLz0+IE1vbiBPY3QgNiAyMDE0IDIzOjU5OjU5Ljk5OVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5kT2ZUb2RheShvcHRpb25zKSB7XG4gIHJldHVybiBlbmRPZkRheShEYXRlLm5vdygpLCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBlbmRPZlRvZGF5O1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdE5vdyB9IGZyb20gXCIuL2NvbnN0cnVjdE5vdy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZW5kT2ZUb21vcnJvd30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGVuZE9mVG9tb3Jyb3dcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBlbmQgb2YgdG9tb3Jyb3cuXG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBlbmQgb2YgdG9tb3Jyb3cuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnNcbiAqIEByZXR1cm5zIFRoZSBlbmQgb2YgdG9tb3Jyb3dcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgdG9kYXkgaXMgNiBPY3RvYmVyIDIwMTQ6XG4gKiBjb25zdCByZXN1bHQgPSBlbmRPZlRvbW9ycm93KClcbiAqIC8vPT4gVHVlIE9jdCA3IDIwMTQgMjM6NTk6NTkuOTk5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmRPZlRvbW9ycm93KG9wdGlvbnMpIHtcbiAgY29uc3Qgbm93ID0gY29uc3RydWN0Tm93KG9wdGlvbnM/LmluKTtcbiAgY29uc3QgeWVhciA9IG5vdy5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBtb250aCA9IG5vdy5nZXRNb250aCgpO1xuICBjb25zdCBkYXkgPSBub3cuZ2V0RGF0ZSgpO1xuXG4gIGNvbnN0IGRhdGUgPSBjb25zdHJ1Y3ROb3cob3B0aW9ucz8uaW4pO1xuICBkYXRlLnNldEZ1bGxZZWFyKHllYXIsIG1vbnRoLCBkYXkgKyAxKTtcbiAgZGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICByZXR1cm4gb3B0aW9ucz8uaW4gPyBvcHRpb25zLmluKGRhdGUpIDogZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBlbmRPZlRvbW9ycm93O1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3ROb3cgfSBmcm9tIFwiLi9jb25zdHJ1Y3ROb3cuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGVuZE9mWWVzdGVyZGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZW5kT2ZZZXN0ZXJkYXlcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBlbmQgb2YgeWVzdGVyZGF5LlxuICogQHB1cmUgZmFsc2VcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgZW5kIG9mIHllc3RlcmRheS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHJldHVybnMgVGhlIGVuZCBvZiB5ZXN0ZXJkYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgdG9kYXkgaXMgNiBPY3RvYmVyIDIwMTQ6XG4gKiBjb25zdCByZXN1bHQgPSBlbmRPZlllc3RlcmRheSgpXG4gKiAvLz0+IFN1biBPY3QgNSAyMDE0IDIzOjU5OjU5Ljk5OVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5kT2ZZZXN0ZXJkYXkob3B0aW9ucykge1xuICBjb25zdCBub3cgPSBjb25zdHJ1Y3ROb3cob3B0aW9ucz8uaW4pO1xuICBjb25zdCBkYXRlID0gY29uc3RydWN0RnJvbShvcHRpb25zPy5pbiwgMCk7XG4gIGRhdGUuc2V0RnVsbFllYXIobm93LmdldEZ1bGxZZWFyKCksIG5vdy5nZXRNb250aCgpLCBub3cuZ2V0RGF0ZSgpIC0gMSk7XG4gIGRhdGUuc2V0SG91cnMoMjMsIDU5LCA1OSwgOTk5KTtcbiAgcmV0dXJuIGRhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZW5kT2ZZZXN0ZXJkYXk7XG4iLCAiY29uc3QgZm9ybWF0RGlzdGFuY2VMb2NhbGUgPSB7XG4gIGxlc3NUaGFuWFNlY29uZHM6IHtcbiAgICBvbmU6IFwibGVzcyB0aGFuIGEgc2Vjb25kXCIsXG4gICAgb3RoZXI6IFwibGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzXCIsXG4gIH0sXG5cbiAgeFNlY29uZHM6IHtcbiAgICBvbmU6IFwiMSBzZWNvbmRcIixcbiAgICBvdGhlcjogXCJ7e2NvdW50fX0gc2Vjb25kc1wiLFxuICB9LFxuXG4gIGhhbGZBTWludXRlOiBcImhhbGYgYSBtaW51dGVcIixcblxuICBsZXNzVGhhblhNaW51dGVzOiB7XG4gICAgb25lOiBcImxlc3MgdGhhbiBhIG1pbnV0ZVwiLFxuICAgIG90aGVyOiBcImxlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlc1wiLFxuICB9LFxuXG4gIHhNaW51dGVzOiB7XG4gICAgb25lOiBcIjEgbWludXRlXCIsXG4gICAgb3RoZXI6IFwie3tjb3VudH19IG1pbnV0ZXNcIixcbiAgfSxcblxuICBhYm91dFhIb3Vyczoge1xuICAgIG9uZTogXCJhYm91dCAxIGhvdXJcIixcbiAgICBvdGhlcjogXCJhYm91dCB7e2NvdW50fX0gaG91cnNcIixcbiAgfSxcblxuICB4SG91cnM6IHtcbiAgICBvbmU6IFwiMSBob3VyXCIsXG4gICAgb3RoZXI6IFwie3tjb3VudH19IGhvdXJzXCIsXG4gIH0sXG5cbiAgeERheXM6IHtcbiAgICBvbmU6IFwiMSBkYXlcIixcbiAgICBvdGhlcjogXCJ7e2NvdW50fX0gZGF5c1wiLFxuICB9LFxuXG4gIGFib3V0WFdlZWtzOiB7XG4gICAgb25lOiBcImFib3V0IDEgd2Vla1wiLFxuICAgIG90aGVyOiBcImFib3V0IHt7Y291bnR9fSB3ZWVrc1wiLFxuICB9LFxuXG4gIHhXZWVrczoge1xuICAgIG9uZTogXCIxIHdlZWtcIixcbiAgICBvdGhlcjogXCJ7e2NvdW50fX0gd2Vla3NcIixcbiAgfSxcblxuICBhYm91dFhNb250aHM6IHtcbiAgICBvbmU6IFwiYWJvdXQgMSBtb250aFwiLFxuICAgIG90aGVyOiBcImFib3V0IHt7Y291bnR9fSBtb250aHNcIixcbiAgfSxcblxuICB4TW9udGhzOiB7XG4gICAgb25lOiBcIjEgbW9udGhcIixcbiAgICBvdGhlcjogXCJ7e2NvdW50fX0gbW9udGhzXCIsXG4gIH0sXG5cbiAgYWJvdXRYWWVhcnM6IHtcbiAgICBvbmU6IFwiYWJvdXQgMSB5ZWFyXCIsXG4gICAgb3RoZXI6IFwiYWJvdXQge3tjb3VudH19IHllYXJzXCIsXG4gIH0sXG5cbiAgeFllYXJzOiB7XG4gICAgb25lOiBcIjEgeWVhclwiLFxuICAgIG90aGVyOiBcInt7Y291bnR9fSB5ZWFyc1wiLFxuICB9LFxuXG4gIG92ZXJYWWVhcnM6IHtcbiAgICBvbmU6IFwib3ZlciAxIHllYXJcIixcbiAgICBvdGhlcjogXCJvdmVyIHt7Y291bnR9fSB5ZWFyc1wiLFxuICB9LFxuXG4gIGFsbW9zdFhZZWFyczoge1xuICAgIG9uZTogXCJhbG1vc3QgMSB5ZWFyXCIsXG4gICAgb3RoZXI6IFwiYWxtb3N0IHt7Y291bnR9fSB5ZWFyc1wiLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdERpc3RhbmNlID0gKHRva2VuLCBjb3VudCwgb3B0aW9ucykgPT4ge1xuICBsZXQgcmVzdWx0O1xuXG4gIGNvbnN0IHRva2VuVmFsdWUgPSBmb3JtYXREaXN0YW5jZUxvY2FsZVt0b2tlbl07XG4gIGlmICh0eXBlb2YgdG9rZW5WYWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJlc3VsdCA9IHRva2VuVmFsdWU7XG4gIH0gZWxzZSBpZiAoY291bnQgPT09IDEpIHtcbiAgICByZXN1bHQgPSB0b2tlblZhbHVlLm9uZTtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSB0b2tlblZhbHVlLm90aGVyLnJlcGxhY2UoXCJ7e2NvdW50fX1cIiwgY291bnQudG9TdHJpbmcoKSk7XG4gIH1cblxuICBpZiAob3B0aW9ucz8uYWRkU3VmZml4KSB7XG4gICAgaWYgKG9wdGlvbnMuY29tcGFyaXNvbiAmJiBvcHRpb25zLmNvbXBhcmlzb24gPiAwKSB7XG4gICAgICByZXR1cm4gXCJpbiBcIiArIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc3VsdCArIFwiIGFnb1wiO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwgImV4cG9ydCBmdW5jdGlvbiBidWlsZEZvcm1hdExvbmdGbihhcmdzKSB7XG4gIHJldHVybiAob3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgLy8gVE9ETzogUmVtb3ZlIFN0cmluZygpXG4gICAgY29uc3Qgd2lkdGggPSBvcHRpb25zLndpZHRoID8gU3RyaW5nKG9wdGlvbnMud2lkdGgpIDogYXJncy5kZWZhdWx0V2lkdGg7XG4gICAgY29uc3QgZm9ybWF0ID0gYXJncy5mb3JtYXRzW3dpZHRoXSB8fCBhcmdzLmZvcm1hdHNbYXJncy5kZWZhdWx0V2lkdGhdO1xuICAgIHJldHVybiBmb3JtYXQ7XG4gIH07XG59XG4iLCAiaW1wb3J0IHsgYnVpbGRGb3JtYXRMb25nRm4gfSBmcm9tIFwiLi4vLi4vX2xpYi9idWlsZEZvcm1hdExvbmdGbi5qc1wiO1xuXG5jb25zdCBkYXRlRm9ybWF0cyA9IHtcbiAgZnVsbDogXCJFRUVFLCBNTU1NIGRvLCB5XCIsXG4gIGxvbmc6IFwiTU1NTSBkbywgeVwiLFxuICBtZWRpdW06IFwiTU1NIGQsIHlcIixcbiAgc2hvcnQ6IFwiTU0vZGQveXl5eVwiLFxufTtcblxuY29uc3QgdGltZUZvcm1hdHMgPSB7XG4gIGZ1bGw6IFwiaDptbTpzcyBhIHp6enpcIixcbiAgbG9uZzogXCJoOm1tOnNzIGEgelwiLFxuICBtZWRpdW06IFwiaDptbTpzcyBhXCIsXG4gIHNob3J0OiBcImg6bW0gYVwiLFxufTtcblxuY29uc3QgZGF0ZVRpbWVGb3JtYXRzID0ge1xuICBmdWxsOiBcInt7ZGF0ZX19ICdhdCcge3t0aW1lfX1cIixcbiAgbG9uZzogXCJ7e2RhdGV9fSAnYXQnIHt7dGltZX19XCIsXG4gIG1lZGl1bTogXCJ7e2RhdGV9fSwge3t0aW1lfX1cIixcbiAgc2hvcnQ6IFwie3tkYXRlfX0sIHt7dGltZX19XCIsXG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0TG9uZyA9IHtcbiAgZGF0ZTogYnVpbGRGb3JtYXRMb25nRm4oe1xuICAgIGZvcm1hdHM6IGRhdGVGb3JtYXRzLFxuICAgIGRlZmF1bHRXaWR0aDogXCJmdWxsXCIsXG4gIH0pLFxuXG4gIHRpbWU6IGJ1aWxkRm9ybWF0TG9uZ0ZuKHtcbiAgICBmb3JtYXRzOiB0aW1lRm9ybWF0cyxcbiAgICBkZWZhdWx0V2lkdGg6IFwiZnVsbFwiLFxuICB9KSxcblxuICBkYXRlVGltZTogYnVpbGRGb3JtYXRMb25nRm4oe1xuICAgIGZvcm1hdHM6IGRhdGVUaW1lRm9ybWF0cyxcbiAgICBkZWZhdWx0V2lkdGg6IFwiZnVsbFwiLFxuICB9KSxcbn07XG4iLCAiY29uc3QgZm9ybWF0UmVsYXRpdmVMb2NhbGUgPSB7XG4gIGxhc3RXZWVrOiBcIidsYXN0JyBlZWVlICdhdCcgcFwiLFxuICB5ZXN0ZXJkYXk6IFwiJ3llc3RlcmRheSBhdCcgcFwiLFxuICB0b2RheTogXCIndG9kYXkgYXQnIHBcIixcbiAgdG9tb3Jyb3c6IFwiJ3RvbW9ycm93IGF0JyBwXCIsXG4gIG5leHRXZWVrOiBcImVlZWUgJ2F0JyBwXCIsXG4gIG90aGVyOiBcIlBcIixcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRSZWxhdGl2ZSA9ICh0b2tlbiwgX2RhdGUsIF9iYXNlRGF0ZSwgX29wdGlvbnMpID0+XG4gIGZvcm1hdFJlbGF0aXZlTG9jYWxlW3Rva2VuXTtcbiIsICIvKipcbiAqIFRoZSBsb2NhbGl6ZSBmdW5jdGlvbiBhcmd1bWVudCBjYWxsYmFjayB3aGljaCBhbGxvd3MgdG8gY29udmVydCByYXcgdmFsdWUgdG9cbiAqIHRoZSBhY3R1YWwgdHlwZS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY29udmVydFxuICpcbiAqIEByZXR1cm5zIFRoZSBjb252ZXJ0ZWQgdmFsdWVcbiAqL1xuXG4vKipcbiAqIFRoZSBtYXAgb2YgbG9jYWxpemVkIHZhbHVlcyBmb3IgZWFjaCB3aWR0aC5cbiAqL1xuXG4vKipcbiAqIFRoZSBpbmRleCB0eXBlIG9mIHRoZSBsb2NhbGUgdW5pdCB2YWx1ZS4gSXQgdHlwZXMgY29udmVyc2lvbiBvZiB1bml0cyBvZlxuICogdmFsdWVzIHRoYXQgZG9uJ3Qgc3RhcnQgYXQgMCAoaS5lLiBxdWFydGVycykuXG4gKi9cblxuLyoqXG4gKiBDb252ZXJ0cyB0aGUgdW5pdCB2YWx1ZSB0byB0aGUgdHVwbGUgb2YgdmFsdWVzLlxuICovXG5cbi8qKlxuICogVGhlIHR1cGxlIG9mIGxvY2FsaXplZCBlcmEgdmFsdWVzLiBUaGUgZmlyc3QgZWxlbWVudCByZXByZXNlbnRzIEJDLFxuICogdGhlIHNlY29uZCBlbGVtZW50IHJlcHJlc2VudHMgQUQuXG4gKi9cblxuLyoqXG4gKiBUaGUgdHVwbGUgb2YgbG9jYWxpemVkIHF1YXJ0ZXIgdmFsdWVzLiBUaGUgZmlyc3QgZWxlbWVudCByZXByZXNlbnRzIFExLlxuICovXG5cbi8qKlxuICogVGhlIHR1cGxlIG9mIGxvY2FsaXplZCBkYXkgdmFsdWVzLiBUaGUgZmlyc3QgZWxlbWVudCByZXByZXNlbnRzIFN1bmRheS5cbiAqL1xuXG4vKipcbiAqIFRoZSB0dXBsZSBvZiBsb2NhbGl6ZWQgbW9udGggdmFsdWVzLiBUaGUgZmlyc3QgZWxlbWVudCByZXByZXNlbnRzIEphbnVhcnkuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTG9jYWxpemVGbihhcmdzKSB7XG4gIHJldHVybiAodmFsdWUsIG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gb3B0aW9ucz8uY29udGV4dCA/IFN0cmluZyhvcHRpb25zLmNvbnRleHQpIDogXCJzdGFuZGFsb25lXCI7XG5cbiAgICBsZXQgdmFsdWVzQXJyYXk7XG4gICAgaWYgKGNvbnRleHQgPT09IFwiZm9ybWF0dGluZ1wiICYmIGFyZ3MuZm9ybWF0dGluZ1ZhbHVlcykge1xuICAgICAgY29uc3QgZGVmYXVsdFdpZHRoID0gYXJncy5kZWZhdWx0Rm9ybWF0dGluZ1dpZHRoIHx8IGFyZ3MuZGVmYXVsdFdpZHRoO1xuICAgICAgY29uc3Qgd2lkdGggPSBvcHRpb25zPy53aWR0aCA/IFN0cmluZyhvcHRpb25zLndpZHRoKSA6IGRlZmF1bHRXaWR0aDtcblxuICAgICAgdmFsdWVzQXJyYXkgPVxuICAgICAgICBhcmdzLmZvcm1hdHRpbmdWYWx1ZXNbd2lkdGhdIHx8IGFyZ3MuZm9ybWF0dGluZ1ZhbHVlc1tkZWZhdWx0V2lkdGhdO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkZWZhdWx0V2lkdGggPSBhcmdzLmRlZmF1bHRXaWR0aDtcbiAgICAgIGNvbnN0IHdpZHRoID0gb3B0aW9ucz8ud2lkdGggPyBTdHJpbmcob3B0aW9ucy53aWR0aCkgOiBhcmdzLmRlZmF1bHRXaWR0aDtcblxuICAgICAgdmFsdWVzQXJyYXkgPSBhcmdzLnZhbHVlc1t3aWR0aF0gfHwgYXJncy52YWx1ZXNbZGVmYXVsdFdpZHRoXTtcbiAgICB9XG4gICAgY29uc3QgaW5kZXggPSBhcmdzLmFyZ3VtZW50Q2FsbGJhY2sgPyBhcmdzLmFyZ3VtZW50Q2FsbGJhY2sodmFsdWUpIDogdmFsdWU7XG5cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gRm9yIHNvbWUgcmVhc29uIFR5cGVTY3JpcHQganVzdCBkb24ndCB3YW50IHRvIG1hdGNoIGl0LCBubyBtYXR0ZXIgaG93IGhhcmQgd2UgdHJ5LiBJIGNoYWxsZW5nZSB5b3UgdG8gdHJ5IHRvIHJlbW92ZSBpdCFcbiAgICByZXR1cm4gdmFsdWVzQXJyYXlbaW5kZXhdO1xuICB9O1xufVxuIiwgImltcG9ydCB7IGJ1aWxkTG9jYWxpemVGbiB9IGZyb20gXCIuLi8uLi9fbGliL2J1aWxkTG9jYWxpemVGbi5qc1wiO1xuXG5jb25zdCBlcmFWYWx1ZXMgPSB7XG4gIG5hcnJvdzogW1wiQlwiLCBcIkFcIl0sXG4gIGFiYnJldmlhdGVkOiBbXCJCQ1wiLCBcIkFEXCJdLFxuICB3aWRlOiBbXCJCZWZvcmUgQ2hyaXN0XCIsIFwiQW5ubyBEb21pbmlcIl0sXG59O1xuXG5jb25zdCBxdWFydGVyVmFsdWVzID0ge1xuICBuYXJyb3c6IFtcIjFcIiwgXCIyXCIsIFwiM1wiLCBcIjRcIl0sXG4gIGFiYnJldmlhdGVkOiBbXCJRMVwiLCBcIlEyXCIsIFwiUTNcIiwgXCJRNFwiXSxcbiAgd2lkZTogW1wiMXN0IHF1YXJ0ZXJcIiwgXCIybmQgcXVhcnRlclwiLCBcIjNyZCBxdWFydGVyXCIsIFwiNHRoIHF1YXJ0ZXJcIl0sXG59O1xuXG4vLyBOb3RlOiBpbiBFbmdsaXNoLCB0aGUgbmFtZXMgb2YgZGF5cyBvZiB0aGUgd2VlayBhbmQgbW9udGhzIGFyZSBjYXBpdGFsaXplZC5cbi8vIElmIHlvdSBhcmUgbWFraW5nIGEgbmV3IGxvY2FsZSBiYXNlZCBvbiB0aGlzIG9uZSwgY2hlY2sgaWYgdGhlIHNhbWUgaXMgdHJ1ZSBmb3IgdGhlIGxhbmd1YWdlIHlvdSdyZSB3b3JraW5nIG9uLlxuLy8gR2VuZXJhbGx5LCBmb3JtYXR0ZWQgZGF0ZXMgc2hvdWxkIGxvb2sgbGlrZSB0aGV5IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgc2VudGVuY2UsXG4vLyBlLmcuIGluIFNwYW5pc2ggbGFuZ3VhZ2UgdGhlIHdlZWtkYXlzIGFuZCBtb250aHMgc2hvdWxkIGJlIGluIHRoZSBsb3dlcmNhc2UuXG5jb25zdCBtb250aFZhbHVlcyA9IHtcbiAgbmFycm93OiBbXCJKXCIsIFwiRlwiLCBcIk1cIiwgXCJBXCIsIFwiTVwiLCBcIkpcIiwgXCJKXCIsIFwiQVwiLCBcIlNcIiwgXCJPXCIsIFwiTlwiLCBcIkRcIl0sXG4gIGFiYnJldmlhdGVkOiBbXG4gICAgXCJKYW5cIixcbiAgICBcIkZlYlwiLFxuICAgIFwiTWFyXCIsXG4gICAgXCJBcHJcIixcbiAgICBcIk1heVwiLFxuICAgIFwiSnVuXCIsXG4gICAgXCJKdWxcIixcbiAgICBcIkF1Z1wiLFxuICAgIFwiU2VwXCIsXG4gICAgXCJPY3RcIixcbiAgICBcIk5vdlwiLFxuICAgIFwiRGVjXCIsXG4gIF0sXG5cbiAgd2lkZTogW1xuICAgIFwiSmFudWFyeVwiLFxuICAgIFwiRmVicnVhcnlcIixcbiAgICBcIk1hcmNoXCIsXG4gICAgXCJBcHJpbFwiLFxuICAgIFwiTWF5XCIsXG4gICAgXCJKdW5lXCIsXG4gICAgXCJKdWx5XCIsXG4gICAgXCJBdWd1c3RcIixcbiAgICBcIlNlcHRlbWJlclwiLFxuICAgIFwiT2N0b2JlclwiLFxuICAgIFwiTm92ZW1iZXJcIixcbiAgICBcIkRlY2VtYmVyXCIsXG4gIF0sXG59O1xuXG5jb25zdCBkYXlWYWx1ZXMgPSB7XG4gIG5hcnJvdzogW1wiU1wiLCBcIk1cIiwgXCJUXCIsIFwiV1wiLCBcIlRcIiwgXCJGXCIsIFwiU1wiXSxcbiAgc2hvcnQ6IFtcIlN1XCIsIFwiTW9cIiwgXCJUdVwiLCBcIldlXCIsIFwiVGhcIiwgXCJGclwiLCBcIlNhXCJdLFxuICBhYmJyZXZpYXRlZDogW1wiU3VuXCIsIFwiTW9uXCIsIFwiVHVlXCIsIFwiV2VkXCIsIFwiVGh1XCIsIFwiRnJpXCIsIFwiU2F0XCJdLFxuICB3aWRlOiBbXG4gICAgXCJTdW5kYXlcIixcbiAgICBcIk1vbmRheVwiLFxuICAgIFwiVHVlc2RheVwiLFxuICAgIFwiV2VkbmVzZGF5XCIsXG4gICAgXCJUaHVyc2RheVwiLFxuICAgIFwiRnJpZGF5XCIsXG4gICAgXCJTYXR1cmRheVwiLFxuICBdLFxufTtcblxuY29uc3QgZGF5UGVyaW9kVmFsdWVzID0ge1xuICBuYXJyb3c6IHtcbiAgICBhbTogXCJhXCIsXG4gICAgcG06IFwicFwiLFxuICAgIG1pZG5pZ2h0OiBcIm1pXCIsXG4gICAgbm9vbjogXCJuXCIsXG4gICAgbW9ybmluZzogXCJtb3JuaW5nXCIsXG4gICAgYWZ0ZXJub29uOiBcImFmdGVybm9vblwiLFxuICAgIGV2ZW5pbmc6IFwiZXZlbmluZ1wiLFxuICAgIG5pZ2h0OiBcIm5pZ2h0XCIsXG4gIH0sXG4gIGFiYnJldmlhdGVkOiB7XG4gICAgYW06IFwiQU1cIixcbiAgICBwbTogXCJQTVwiLFxuICAgIG1pZG5pZ2h0OiBcIm1pZG5pZ2h0XCIsXG4gICAgbm9vbjogXCJub29uXCIsXG4gICAgbW9ybmluZzogXCJtb3JuaW5nXCIsXG4gICAgYWZ0ZXJub29uOiBcImFmdGVybm9vblwiLFxuICAgIGV2ZW5pbmc6IFwiZXZlbmluZ1wiLFxuICAgIG5pZ2h0OiBcIm5pZ2h0XCIsXG4gIH0sXG4gIHdpZGU6IHtcbiAgICBhbTogXCJhLm0uXCIsXG4gICAgcG06IFwicC5tLlwiLFxuICAgIG1pZG5pZ2h0OiBcIm1pZG5pZ2h0XCIsXG4gICAgbm9vbjogXCJub29uXCIsXG4gICAgbW9ybmluZzogXCJtb3JuaW5nXCIsXG4gICAgYWZ0ZXJub29uOiBcImFmdGVybm9vblwiLFxuICAgIGV2ZW5pbmc6IFwiZXZlbmluZ1wiLFxuICAgIG5pZ2h0OiBcIm5pZ2h0XCIsXG4gIH0sXG59O1xuXG5jb25zdCBmb3JtYXR0aW5nRGF5UGVyaW9kVmFsdWVzID0ge1xuICBuYXJyb3c6IHtcbiAgICBhbTogXCJhXCIsXG4gICAgcG06IFwicFwiLFxuICAgIG1pZG5pZ2h0OiBcIm1pXCIsXG4gICAgbm9vbjogXCJuXCIsXG4gICAgbW9ybmluZzogXCJpbiB0aGUgbW9ybmluZ1wiLFxuICAgIGFmdGVybm9vbjogXCJpbiB0aGUgYWZ0ZXJub29uXCIsXG4gICAgZXZlbmluZzogXCJpbiB0aGUgZXZlbmluZ1wiLFxuICAgIG5pZ2h0OiBcImF0IG5pZ2h0XCIsXG4gIH0sXG4gIGFiYnJldmlhdGVkOiB7XG4gICAgYW06IFwiQU1cIixcbiAgICBwbTogXCJQTVwiLFxuICAgIG1pZG5pZ2h0OiBcIm1pZG5pZ2h0XCIsXG4gICAgbm9vbjogXCJub29uXCIsXG4gICAgbW9ybmluZzogXCJpbiB0aGUgbW9ybmluZ1wiLFxuICAgIGFmdGVybm9vbjogXCJpbiB0aGUgYWZ0ZXJub29uXCIsXG4gICAgZXZlbmluZzogXCJpbiB0aGUgZXZlbmluZ1wiLFxuICAgIG5pZ2h0OiBcImF0IG5pZ2h0XCIsXG4gIH0sXG4gIHdpZGU6IHtcbiAgICBhbTogXCJhLm0uXCIsXG4gICAgcG06IFwicC5tLlwiLFxuICAgIG1pZG5pZ2h0OiBcIm1pZG5pZ2h0XCIsXG4gICAgbm9vbjogXCJub29uXCIsXG4gICAgbW9ybmluZzogXCJpbiB0aGUgbW9ybmluZ1wiLFxuICAgIGFmdGVybm9vbjogXCJpbiB0aGUgYWZ0ZXJub29uXCIsXG4gICAgZXZlbmluZzogXCJpbiB0aGUgZXZlbmluZ1wiLFxuICAgIG5pZ2h0OiBcImF0IG5pZ2h0XCIsXG4gIH0sXG59O1xuXG5jb25zdCBvcmRpbmFsTnVtYmVyID0gKGRpcnR5TnVtYmVyLCBfb3B0aW9ucykgPT4ge1xuICBjb25zdCBudW1iZXIgPSBOdW1iZXIoZGlydHlOdW1iZXIpO1xuXG4gIC8vIElmIG9yZGluYWwgbnVtYmVycyBkZXBlbmQgb24gY29udGV4dCwgZm9yIGV4YW1wbGUsXG4gIC8vIGlmIHRoZXkgYXJlIGRpZmZlcmVudCBmb3IgZGlmZmVyZW50IGdyYW1tYXRpY2FsIGdlbmRlcnMsXG4gIC8vIHVzZSBgb3B0aW9ucy51bml0YC5cbiAgLy9cbiAgLy8gYHVuaXRgIGNhbiBiZSAneWVhcicsICdxdWFydGVyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF0ZScsICdkYXlPZlllYXInLFxuICAvLyAnZGF5JywgJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCcuXG5cbiAgY29uc3QgcmVtMTAwID0gbnVtYmVyICUgMTAwO1xuICBpZiAocmVtMTAwID4gMjAgfHwgcmVtMTAwIDwgMTApIHtcbiAgICBzd2l0Y2ggKHJlbTEwMCAlIDEwKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiBudW1iZXIgKyBcInN0XCI7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHJldHVybiBudW1iZXIgKyBcIm5kXCI7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIHJldHVybiBudW1iZXIgKyBcInJkXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBudW1iZXIgKyBcInRoXCI7XG59O1xuXG5leHBvcnQgY29uc3QgbG9jYWxpemUgPSB7XG4gIG9yZGluYWxOdW1iZXIsXG5cbiAgZXJhOiBidWlsZExvY2FsaXplRm4oe1xuICAgIHZhbHVlczogZXJhVmFsdWVzLFxuICAgIGRlZmF1bHRXaWR0aDogXCJ3aWRlXCIsXG4gIH0pLFxuXG4gIHF1YXJ0ZXI6IGJ1aWxkTG9jYWxpemVGbih7XG4gICAgdmFsdWVzOiBxdWFydGVyVmFsdWVzLFxuICAgIGRlZmF1bHRXaWR0aDogXCJ3aWRlXCIsXG4gICAgYXJndW1lbnRDYWxsYmFjazogKHF1YXJ0ZXIpID0+IHF1YXJ0ZXIgLSAxLFxuICB9KSxcblxuICBtb250aDogYnVpbGRMb2NhbGl6ZUZuKHtcbiAgICB2YWx1ZXM6IG1vbnRoVmFsdWVzLFxuICAgIGRlZmF1bHRXaWR0aDogXCJ3aWRlXCIsXG4gIH0pLFxuXG4gIGRheTogYnVpbGRMb2NhbGl6ZUZuKHtcbiAgICB2YWx1ZXM6IGRheVZhbHVlcyxcbiAgICBkZWZhdWx0V2lkdGg6IFwid2lkZVwiLFxuICB9KSxcblxuICBkYXlQZXJpb2Q6IGJ1aWxkTG9jYWxpemVGbih7XG4gICAgdmFsdWVzOiBkYXlQZXJpb2RWYWx1ZXMsXG4gICAgZGVmYXVsdFdpZHRoOiBcIndpZGVcIixcbiAgICBmb3JtYXR0aW5nVmFsdWVzOiBmb3JtYXR0aW5nRGF5UGVyaW9kVmFsdWVzLFxuICAgIGRlZmF1bHRGb3JtYXR0aW5nV2lkdGg6IFwid2lkZVwiLFxuICB9KSxcbn07XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTWF0Y2hGbihhcmdzKSB7XG4gIHJldHVybiAoc3RyaW5nLCBvcHRpb25zID0ge30pID0+IHtcbiAgICBjb25zdCB3aWR0aCA9IG9wdGlvbnMud2lkdGg7XG5cbiAgICBjb25zdCBtYXRjaFBhdHRlcm4gPVxuICAgICAgKHdpZHRoICYmIGFyZ3MubWF0Y2hQYXR0ZXJuc1t3aWR0aF0pIHx8XG4gICAgICBhcmdzLm1hdGNoUGF0dGVybnNbYXJncy5kZWZhdWx0TWF0Y2hXaWR0aF07XG4gICAgY29uc3QgbWF0Y2hSZXN1bHQgPSBzdHJpbmcubWF0Y2gobWF0Y2hQYXR0ZXJuKTtcblxuICAgIGlmICghbWF0Y2hSZXN1bHQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBtYXRjaGVkU3RyaW5nID0gbWF0Y2hSZXN1bHRbMF07XG5cbiAgICBjb25zdCBwYXJzZVBhdHRlcm5zID1cbiAgICAgICh3aWR0aCAmJiBhcmdzLnBhcnNlUGF0dGVybnNbd2lkdGhdKSB8fFxuICAgICAgYXJncy5wYXJzZVBhdHRlcm5zW2FyZ3MuZGVmYXVsdFBhcnNlV2lkdGhdO1xuXG4gICAgY29uc3Qga2V5ID0gQXJyYXkuaXNBcnJheShwYXJzZVBhdHRlcm5zKVxuICAgICAgPyBmaW5kSW5kZXgocGFyc2VQYXR0ZXJucywgKHBhdHRlcm4pID0+IHBhdHRlcm4udGVzdChtYXRjaGVkU3RyaW5nKSlcbiAgICAgIDogLy8gW1RPRE9dIC0tIEkgY2hhbGxlbmdlIHlvdSB0byBmaXggdGhlIHR5cGVcbiAgICAgICAgZmluZEtleShwYXJzZVBhdHRlcm5zLCAocGF0dGVybikgPT4gcGF0dGVybi50ZXN0KG1hdGNoZWRTdHJpbmcpKTtcblxuICAgIGxldCB2YWx1ZTtcblxuICAgIHZhbHVlID0gYXJncy52YWx1ZUNhbGxiYWNrID8gYXJncy52YWx1ZUNhbGxiYWNrKGtleSkgOiBrZXk7XG4gICAgdmFsdWUgPSBvcHRpb25zLnZhbHVlQ2FsbGJhY2tcbiAgICAgID8gLy8gW1RPRE9dIC0tIEkgY2hhbGxlbmdlIHlvdSB0byBmaXggdGhlIHR5cGVcbiAgICAgICAgb3B0aW9ucy52YWx1ZUNhbGxiYWNrKHZhbHVlKVxuICAgICAgOiB2YWx1ZTtcblxuICAgIGNvbnN0IHJlc3QgPSBzdHJpbmcuc2xpY2UobWF0Y2hlZFN0cmluZy5sZW5ndGgpO1xuXG4gICAgcmV0dXJuIHsgdmFsdWUsIHJlc3QgfTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZmluZEtleShvYmplY3QsIHByZWRpY2F0ZSkge1xuICBmb3IgKGNvbnN0IGtleSBpbiBvYmplY3QpIHtcbiAgICBpZiAoXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpICYmXG4gICAgICBwcmVkaWNhdGUob2JqZWN0W2tleV0pXG4gICAgKSB7XG4gICAgICByZXR1cm4ga2V5O1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIHByZWRpY2F0ZSkge1xuICBmb3IgKGxldCBrZXkgPSAwOyBrZXkgPCBhcnJheS5sZW5ndGg7IGtleSsrKSB7XG4gICAgaWYgKHByZWRpY2F0ZShhcnJheVtrZXldKSkge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gYnVpbGRNYXRjaFBhdHRlcm5GbihhcmdzKSB7XG4gIHJldHVybiAoc3RyaW5nLCBvcHRpb25zID0ge30pID0+IHtcbiAgICBjb25zdCBtYXRjaFJlc3VsdCA9IHN0cmluZy5tYXRjaChhcmdzLm1hdGNoUGF0dGVybik7XG4gICAgaWYgKCFtYXRjaFJlc3VsdCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgbWF0Y2hlZFN0cmluZyA9IG1hdGNoUmVzdWx0WzBdO1xuXG4gICAgY29uc3QgcGFyc2VSZXN1bHQgPSBzdHJpbmcubWF0Y2goYXJncy5wYXJzZVBhdHRlcm4pO1xuICAgIGlmICghcGFyc2VSZXN1bHQpIHJldHVybiBudWxsO1xuICAgIGxldCB2YWx1ZSA9IGFyZ3MudmFsdWVDYWxsYmFja1xuICAgICAgPyBhcmdzLnZhbHVlQ2FsbGJhY2socGFyc2VSZXN1bHRbMF0pXG4gICAgICA6IHBhcnNlUmVzdWx0WzBdO1xuXG4gICAgLy8gW1RPRE9dIEkgY2hhbGxlbmdlIHlvdSB0byBmaXggdGhlIHR5cGVcbiAgICB2YWx1ZSA9IG9wdGlvbnMudmFsdWVDYWxsYmFjayA/IG9wdGlvbnMudmFsdWVDYWxsYmFjayh2YWx1ZSkgOiB2YWx1ZTtcblxuICAgIGNvbnN0IHJlc3QgPSBzdHJpbmcuc2xpY2UobWF0Y2hlZFN0cmluZy5sZW5ndGgpO1xuXG4gICAgcmV0dXJuIHsgdmFsdWUsIHJlc3QgfTtcbiAgfTtcbn1cbiIsICJpbXBvcnQgeyBidWlsZE1hdGNoRm4gfSBmcm9tIFwiLi4vLi4vX2xpYi9idWlsZE1hdGNoRm4uanNcIjtcbmltcG9ydCB7IGJ1aWxkTWF0Y2hQYXR0ZXJuRm4gfSBmcm9tIFwiLi4vLi4vX2xpYi9idWlsZE1hdGNoUGF0dGVybkZuLmpzXCI7XG5cbmNvbnN0IG1hdGNoT3JkaW5hbE51bWJlclBhdHRlcm4gPSAvXihcXGQrKSh0aHxzdHxuZHxyZCk/L2k7XG5jb25zdCBwYXJzZU9yZGluYWxOdW1iZXJQYXR0ZXJuID0gL1xcZCsvaTtcblxuY29uc3QgbWF0Y2hFcmFQYXR0ZXJucyA9IHtcbiAgbmFycm93OiAvXihifGEpL2ksXG4gIGFiYnJldmlhdGVkOiAvXihiXFwuP1xccz9jXFwuP3xiXFwuP1xccz9jXFwuP1xccz9lXFwuP3xhXFwuP1xccz9kXFwuP3xjXFwuP1xccz9lXFwuPykvaSxcbiAgd2lkZTogL14oYmVmb3JlIGNocmlzdHxiZWZvcmUgY29tbW9uIGVyYXxhbm5vIGRvbWluaXxjb21tb24gZXJhKS9pLFxufTtcbmNvbnN0IHBhcnNlRXJhUGF0dGVybnMgPSB7XG4gIGFueTogWy9eYi9pLCAvXihhfGMpL2ldLFxufTtcblxuY29uc3QgbWF0Y2hRdWFydGVyUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogL15bMTIzNF0vaSxcbiAgYWJicmV2aWF0ZWQ6IC9ecVsxMjM0XS9pLFxuICB3aWRlOiAvXlsxMjM0XSh0aHxzdHxuZHxyZCk/IHF1YXJ0ZXIvaSxcbn07XG5jb25zdCBwYXJzZVF1YXJ0ZXJQYXR0ZXJucyA9IHtcbiAgYW55OiBbLzEvaSwgLzIvaSwgLzMvaSwgLzQvaV0sXG59O1xuXG5jb25zdCBtYXRjaE1vbnRoUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogL15bamZtYXNvbmRdL2ksXG4gIGFiYnJldmlhdGVkOiAvXihqYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYykvaSxcbiAgd2lkZTogL14oamFudWFyeXxmZWJydWFyeXxtYXJjaHxhcHJpbHxtYXl8anVuZXxqdWx5fGF1Z3VzdHxzZXB0ZW1iZXJ8b2N0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaSxcbn07XG5jb25zdCBwYXJzZU1vbnRoUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogW1xuICAgIC9eai9pLFxuICAgIC9eZi9pLFxuICAgIC9ebS9pLFxuICAgIC9eYS9pLFxuICAgIC9ebS9pLFxuICAgIC9eai9pLFxuICAgIC9eai9pLFxuICAgIC9eYS9pLFxuICAgIC9ecy9pLFxuICAgIC9eby9pLFxuICAgIC9ebi9pLFxuICAgIC9eZC9pLFxuICBdLFxuXG4gIGFueTogW1xuICAgIC9eamEvaSxcbiAgICAvXmYvaSxcbiAgICAvXm1hci9pLFxuICAgIC9eYXAvaSxcbiAgICAvXm1heS9pLFxuICAgIC9eanVuL2ksXG4gICAgL15qdWwvaSxcbiAgICAvXmF1L2ksXG4gICAgL15zL2ksXG4gICAgL15vL2ksXG4gICAgL15uL2ksXG4gICAgL15kL2ksXG4gIF0sXG59O1xuXG5jb25zdCBtYXRjaERheVBhdHRlcm5zID0ge1xuICBuYXJyb3c6IC9eW3NtdHdmXS9pLFxuICBzaG9ydDogL14oc3V8bW98dHV8d2V8dGh8ZnJ8c2EpL2ksXG4gIGFiYnJldmlhdGVkOiAvXihzdW58bW9ufHR1ZXx3ZWR8dGh1fGZyaXxzYXQpL2ksXG4gIHdpZGU6IC9eKHN1bmRheXxtb25kYXl8dHVlc2RheXx3ZWRuZXNkYXl8dGh1cnNkYXl8ZnJpZGF5fHNhdHVyZGF5KS9pLFxufTtcbmNvbnN0IHBhcnNlRGF5UGF0dGVybnMgPSB7XG4gIG5hcnJvdzogWy9ecy9pLCAvXm0vaSwgL150L2ksIC9edy9pLCAvXnQvaSwgL15mL2ksIC9ecy9pXSxcbiAgYW55OiBbL15zdS9pLCAvXm0vaSwgL150dS9pLCAvXncvaSwgL150aC9pLCAvXmYvaSwgL15zYS9pXSxcbn07XG5cbmNvbnN0IG1hdGNoRGF5UGVyaW9kUGF0dGVybnMgPSB7XG4gIG5hcnJvdzogL14oYXxwfG1pfG58KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pLFxuICBhbnk6IC9eKFthcF1cXC4/XFxzP21cXC4/fG1pZG5pZ2h0fG5vb258KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pLFxufTtcbmNvbnN0IHBhcnNlRGF5UGVyaW9kUGF0dGVybnMgPSB7XG4gIGFueToge1xuICAgIGFtOiAvXmEvaSxcbiAgICBwbTogL15wL2ksXG4gICAgbWlkbmlnaHQ6IC9ebWkvaSxcbiAgICBub29uOiAvXm5vL2ksXG4gICAgbW9ybmluZzogL21vcm5pbmcvaSxcbiAgICBhZnRlcm5vb246IC9hZnRlcm5vb24vaSxcbiAgICBldmVuaW5nOiAvZXZlbmluZy9pLFxuICAgIG5pZ2h0OiAvbmlnaHQvaSxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBtYXRjaCA9IHtcbiAgb3JkaW5hbE51bWJlcjogYnVpbGRNYXRjaFBhdHRlcm5Gbih7XG4gICAgbWF0Y2hQYXR0ZXJuOiBtYXRjaE9yZGluYWxOdW1iZXJQYXR0ZXJuLFxuICAgIHBhcnNlUGF0dGVybjogcGFyc2VPcmRpbmFsTnVtYmVyUGF0dGVybixcbiAgICB2YWx1ZUNhbGxiYWNrOiAodmFsdWUpID0+IHBhcnNlSW50KHZhbHVlLCAxMCksXG4gIH0pLFxuXG4gIGVyYTogYnVpbGRNYXRjaEZuKHtcbiAgICBtYXRjaFBhdHRlcm5zOiBtYXRjaEVyYVBhdHRlcm5zLFxuICAgIGRlZmF1bHRNYXRjaFdpZHRoOiBcIndpZGVcIixcbiAgICBwYXJzZVBhdHRlcm5zOiBwYXJzZUVyYVBhdHRlcm5zLFxuICAgIGRlZmF1bHRQYXJzZVdpZHRoOiBcImFueVwiLFxuICB9KSxcblxuICBxdWFydGVyOiBidWlsZE1hdGNoRm4oe1xuICAgIG1hdGNoUGF0dGVybnM6IG1hdGNoUXVhcnRlclBhdHRlcm5zLFxuICAgIGRlZmF1bHRNYXRjaFdpZHRoOiBcIndpZGVcIixcbiAgICBwYXJzZVBhdHRlcm5zOiBwYXJzZVF1YXJ0ZXJQYXR0ZXJucyxcbiAgICBkZWZhdWx0UGFyc2VXaWR0aDogXCJhbnlcIixcbiAgICB2YWx1ZUNhbGxiYWNrOiAoaW5kZXgpID0+IGluZGV4ICsgMSxcbiAgfSksXG5cbiAgbW9udGg6IGJ1aWxkTWF0Y2hGbih7XG4gICAgbWF0Y2hQYXR0ZXJuczogbWF0Y2hNb250aFBhdHRlcm5zLFxuICAgIGRlZmF1bHRNYXRjaFdpZHRoOiBcIndpZGVcIixcbiAgICBwYXJzZVBhdHRlcm5zOiBwYXJzZU1vbnRoUGF0dGVybnMsXG4gICAgZGVmYXVsdFBhcnNlV2lkdGg6IFwiYW55XCIsXG4gIH0pLFxuXG4gIGRheTogYnVpbGRNYXRjaEZuKHtcbiAgICBtYXRjaFBhdHRlcm5zOiBtYXRjaERheVBhdHRlcm5zLFxuICAgIGRlZmF1bHRNYXRjaFdpZHRoOiBcIndpZGVcIixcbiAgICBwYXJzZVBhdHRlcm5zOiBwYXJzZURheVBhdHRlcm5zLFxuICAgIGRlZmF1bHRQYXJzZVdpZHRoOiBcImFueVwiLFxuICB9KSxcblxuICBkYXlQZXJpb2Q6IGJ1aWxkTWF0Y2hGbih7XG4gICAgbWF0Y2hQYXR0ZXJuczogbWF0Y2hEYXlQZXJpb2RQYXR0ZXJucyxcbiAgICBkZWZhdWx0TWF0Y2hXaWR0aDogXCJhbnlcIixcbiAgICBwYXJzZVBhdHRlcm5zOiBwYXJzZURheVBlcmlvZFBhdHRlcm5zLFxuICAgIGRlZmF1bHRQYXJzZVdpZHRoOiBcImFueVwiLFxuICB9KSxcbn07XG4iLCAiaW1wb3J0IHsgZm9ybWF0RGlzdGFuY2UgfSBmcm9tIFwiLi9lbi1VUy9fbGliL2Zvcm1hdERpc3RhbmNlLmpzXCI7XG5pbXBvcnQgeyBmb3JtYXRMb25nIH0gZnJvbSBcIi4vZW4tVVMvX2xpYi9mb3JtYXRMb25nLmpzXCI7XG5pbXBvcnQgeyBmb3JtYXRSZWxhdGl2ZSB9IGZyb20gXCIuL2VuLVVTL19saWIvZm9ybWF0UmVsYXRpdmUuanNcIjtcbmltcG9ydCB7IGxvY2FsaXplIH0gZnJvbSBcIi4vZW4tVVMvX2xpYi9sb2NhbGl6ZS5qc1wiO1xuaW1wb3J0IHsgbWF0Y2ggfSBmcm9tIFwiLi9lbi1VUy9fbGliL21hdGNoLmpzXCI7XG5cbi8qKlxuICogQGNhdGVnb3J5IExvY2FsZXNcbiAqIEBzdW1tYXJ5IEVuZ2xpc2ggbG9jYWxlIChVbml0ZWQgU3RhdGVzKS5cbiAqIEBsYW5ndWFnZSBFbmdsaXNoXG4gKiBAaXNvLTYzOS0yIGVuZ1xuICogQGF1dGhvciBTYXNoYSBLb3NzIFtAa29zc25vY29ycF0oaHR0cHM6Ly9naXRodWIuY29tL2tvc3Nub2NvcnApXG4gKiBAYXV0aG9yIExlc2hhIEtvc3MgW0BsZXNoYWtvc3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9sZXNoYWtvc3MpXG4gKi9cbmV4cG9ydCBjb25zdCBlblVTID0ge1xuICBjb2RlOiBcImVuLVVTXCIsXG4gIGZvcm1hdERpc3RhbmNlOiBmb3JtYXREaXN0YW5jZSxcbiAgZm9ybWF0TG9uZzogZm9ybWF0TG9uZyxcbiAgZm9ybWF0UmVsYXRpdmU6IGZvcm1hdFJlbGF0aXZlLFxuICBsb2NhbGl6ZTogbG9jYWxpemUsXG4gIG1hdGNoOiBtYXRjaCxcbiAgb3B0aW9uczoge1xuICAgIHdlZWtTdGFydHNPbjogMCAvKiBTdW5kYXkgKi8sXG4gICAgZmlyc3RXZWVrQ29udGFpbnNEYXRlOiAxLFxuICB9LFxufTtcblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBlblVTO1xuIiwgImV4cG9ydCB7IGVuVVMgYXMgZGVmYXVsdExvY2FsZSB9IGZyb20gXCIuLi9sb2NhbGUvZW4tVVMuanNcIjtcbiIsICJpbXBvcnQgeyBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5DYWxlbmRhckRheXMuanNcIjtcbmltcG9ydCB7IHN0YXJ0T2ZZZWFyIH0gZnJvbSBcIi4vc3RhcnRPZlllYXIuanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZ2V0RGF5T2ZZZWFyfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZ2V0RGF5T2ZZZWFyXG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgZGF5IG9mIHRoZSB5ZWFyIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBkYXkgb2YgdGhlIHllYXIgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXkgb2YgeWVhclxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGljaCBkYXkgb2YgdGhlIHllYXIgaXMgMiBKdWx5IDIwMTQ/XG4gKiBjb25zdCByZXN1bHQgPSBnZXREYXlPZlllYXIobmV3IERhdGUoMjAxNCwgNiwgMikpXG4gKiAvLz0+IDE4M1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF5T2ZZZWFyKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBjb25zdCBkaWZmID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKF9kYXRlLCBzdGFydE9mWWVhcihfZGF0ZSkpO1xuICBjb25zdCBkYXlPZlllYXIgPSBkaWZmICsgMTtcbiAgcmV0dXJuIGRheU9mWWVhcjtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBnZXREYXlPZlllYXI7XG4iLCAiaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5XZWVrIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mSVNPV2VlayB9IGZyb20gXCIuL3N0YXJ0T2ZJU09XZWVrLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mSVNPV2Vla1llYXIgfSBmcm9tIFwiLi9zdGFydE9mSVNPV2Vla1llYXIuanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZ2V0SVNPV2Vla30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGdldElTT1dlZWtcbiAqIEBjYXRlZ29yeSBJU08gV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIElTTyB3ZWVrIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBJU08gd2VlayBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBJU08gd2Vlay1udW1iZXJpbmcgeWVhcjogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBJU08gd2Vla1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGljaCB3ZWVrIG9mIHRoZSBJU08td2VlayBudW1iZXJpbmcgeWVhciBpcyAyIEphbnVhcnkgMjAwNT9cbiAqIGNvbnN0IHJlc3VsdCA9IGdldElTT1dlZWsobmV3IERhdGUoMjAwNSwgMCwgMikpXG4gKiAvLz0+IDUzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJU09XZWVrKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBjb25zdCBkaWZmID0gK3N0YXJ0T2ZJU09XZWVrKF9kYXRlKSAtICtzdGFydE9mSVNPV2Vla1llYXIoX2RhdGUpO1xuXG4gIC8vIFJvdW5kIHRoZSBudW1iZXIgb2Ygd2Vla3MgdG8gdGhlIG5lYXJlc3QgaW50ZWdlciBiZWNhdXNlIHRoZSBudW1iZXIgb2ZcbiAgLy8gbWlsbGlzZWNvbmRzIGluIGEgd2VlayBpcyBub3QgY29uc3RhbnQgKGUuZy4gaXQncyBkaWZmZXJlbnQgaW4gdGhlIHdlZWsgb2ZcbiAgLy8gdGhlIGRheWxpZ2h0IHNhdmluZyB0aW1lIGNsb2NrIHNoaWZ0KS5cbiAgcmV0dXJuIE1hdGgucm91bmQoZGlmZiAvIG1pbGxpc2Vjb25kc0luV2VlaykgKyAxO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGdldElTT1dlZWs7XG4iLCAiaW1wb3J0IHsgZ2V0RGVmYXVsdE9wdGlvbnMgfSBmcm9tIFwiLi9fbGliL2RlZmF1bHRPcHRpb25zLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgc3RhcnRPZldlZWsgfSBmcm9tIFwiLi9zdGFydE9mV2Vlay5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBnZXRXZWVrWWVhcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGdldFdlZWtZZWFyXG4gKiBAY2F0ZWdvcnkgV2Vlay1OdW1iZXJpbmcgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIGxvY2FsIHdlZWstbnVtYmVyaW5nIHllYXIgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIGxvY2FsIHdlZWstbnVtYmVyaW5nIHllYXIgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgZXhhY3QgY2FsY3VsYXRpb24gZGVwZW5kcyBvbiB0aGUgdmFsdWVzIG9mXG4gKiBgb3B0aW9ucy53ZWVrU3RhcnRzT25gICh3aGljaCBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaylcbiAqIGFuZCBgb3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGVgICh3aGljaCBpcyB0aGUgZGF5IG9mIEphbnVhcnksIHdoaWNoIGlzIGFsd2F5cyBpblxuICogdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHdlZWstbnVtYmVyaW5nIHllYXIpXG4gKlxuICogV2VlayBudW1iZXJpbmc6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dlZWsjVGhlX0lTT193ZWVrX2RhdGVfc3lzdGVtXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIHdlZWsgbnVtYmVyaW5nIHllYXIgaXMgMjYgRGVjZW1iZXIgMjAwNCB3aXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzP1xuICogY29uc3QgcmVzdWx0ID0gZ2V0V2Vla1llYXIobmV3IERhdGUoMjAwNCwgMTEsIDI2KSlcbiAqIC8vPT4gMjAwNVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGljaCB3ZWVrIG51bWJlcmluZyB5ZWFyIGlzIDI2IERlY2VtYmVyIDIwMDQgaWYgd2VlayBzdGFydHMgb24gU2F0dXJkYXk/XG4gKiBjb25zdCByZXN1bHQgPSBnZXRXZWVrWWVhcihuZXcgRGF0ZSgyMDA0LCAxMSwgMjYpLCB7IHdlZWtTdGFydHNPbjogNiB9KVxuICogLy89PiAyMDA0XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIHdlZWsgbnVtYmVyaW5nIHllYXIgaXMgMjYgRGVjZW1iZXIgMjAwNCBpZiB0aGUgZmlyc3Qgd2VlayBjb250YWlucyA0IEphbnVhcnk/XG4gKiBjb25zdCByZXN1bHQgPSBnZXRXZWVrWWVhcihuZXcgRGF0ZSgyMDA0LCAxMSwgMjYpLCB7IGZpcnN0V2Vla0NvbnRhaW5zRGF0ZTogNCB9KVxuICogLy89PiAyMDA0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRXZWVrWWVhcihkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgeWVhciA9IF9kYXRlLmdldEZ1bGxZZWFyKCk7XG5cbiAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBnZXREZWZhdWx0T3B0aW9ucygpO1xuICBjb25zdCBmaXJzdFdlZWtDb250YWluc0RhdGUgPVxuICAgIG9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA/P1xuICAgIG9wdGlvbnM/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlID8/XG4gICAgZGVmYXVsdE9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlID8/XG4gICAgZGVmYXVsdE9wdGlvbnMubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGUgPz9cbiAgICAxO1xuXG4gIGNvbnN0IGZpcnN0V2Vla09mTmV4dFllYXIgPSBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsIDApO1xuICBmaXJzdFdlZWtPZk5leHRZZWFyLnNldEZ1bGxZZWFyKHllYXIgKyAxLCAwLCBmaXJzdFdlZWtDb250YWluc0RhdGUpO1xuICBmaXJzdFdlZWtPZk5leHRZZWFyLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICBjb25zdCBzdGFydE9mTmV4dFllYXIgPSBzdGFydE9mV2VlayhmaXJzdFdlZWtPZk5leHRZZWFyLCBvcHRpb25zKTtcblxuICBjb25zdCBmaXJzdFdlZWtPZlRoaXNZZWFyID0gY29uc3RydWN0RnJvbShvcHRpb25zPy5pbiB8fCBkYXRlLCAwKTtcbiAgZmlyc3RXZWVrT2ZUaGlzWWVhci5zZXRGdWxsWWVhcih5ZWFyLCAwLCBmaXJzdFdlZWtDb250YWluc0RhdGUpO1xuICBmaXJzdFdlZWtPZlRoaXNZZWFyLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICBjb25zdCBzdGFydE9mVGhpc1llYXIgPSBzdGFydE9mV2VlayhmaXJzdFdlZWtPZlRoaXNZZWFyLCBvcHRpb25zKTtcblxuICBpZiAoK19kYXRlID49ICtzdGFydE9mTmV4dFllYXIpIHtcbiAgICByZXR1cm4geWVhciArIDE7XG4gIH0gZWxzZSBpZiAoK19kYXRlID49ICtzdGFydE9mVGhpc1llYXIpIHtcbiAgICByZXR1cm4geWVhcjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geWVhciAtIDE7XG4gIH1cbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBnZXRXZWVrWWVhcjtcbiIsICJpbXBvcnQgeyBnZXREZWZhdWx0T3B0aW9ucyB9IGZyb20gXCIuL19saWIvZGVmYXVsdE9wdGlvbnMuanNcIjtcbmltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBnZXRXZWVrWWVhciB9IGZyb20gXCIuL2dldFdlZWtZZWFyLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mV2VlayB9IGZyb20gXCIuL3N0YXJ0T2ZXZWVrLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdGFydE9mV2Vla1llYXJ9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBzdGFydE9mV2Vla1llYXJcbiAqIEBjYXRlZ29yeSBXZWVrLU51bWJlcmluZyBZZWFyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgc3RhcnQgb2YgYSBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgc3RhcnQgb2YgYSBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyLlxuICogVGhlIGV4YWN0IGNhbGN1bGF0aW9uIGRlcGVuZHMgb24gdGhlIHZhbHVlcyBvZlxuICogYG9wdGlvbnMud2Vla1N0YXJ0c09uYCAod2hpY2ggaXMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWspXG4gKiBhbmQgYG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlYCAod2hpY2ggaXMgdGhlIGRheSBvZiBKYW51YXJ5LCB3aGljaCBpcyBhbHdheXMgaW5cbiAqIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB3ZWVrLW51bWJlcmluZyB5ZWFyKVxuICpcbiAqIFdlZWsgbnVtYmVyaW5nOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9XZWVrI1RoZV9JU09fd2Vla19kYXRlX3N5c3RlbVxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZS5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgc3RhcnQgb2YgYSB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBzdGFydCBvZiBhbiBhIHdlZWstbnVtYmVyaW5nIHllYXIgZm9yIDIgSnVseSAyMDA1IHdpdGggZGVmYXVsdCBzZXR0aW5nczpcbiAqIGNvbnN0IHJlc3VsdCA9IHN0YXJ0T2ZXZWVrWWVhcihuZXcgRGF0ZSgyMDA1LCA2LCAyKSlcbiAqIC8vPT4gU3VuIERlYyAyNiAyMDA0IDAwOjAwOjAwXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBzdGFydCBvZiBhIHdlZWstbnVtYmVyaW5nIHllYXIgZm9yIDIgSnVseSAyMDA1XG4gKiAvLyBpZiBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB3ZWVrXG4gKiAvLyBhbmQgNCBKYW51YXJ5IGlzIGFsd2F5cyBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhcjpcbiAqIGNvbnN0IHJlc3VsdCA9IHN0YXJ0T2ZXZWVrWWVhcihuZXcgRGF0ZSgyMDA1LCA2LCAyKSwge1xuICogICB3ZWVrU3RhcnRzT246IDEsXG4gKiAgIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZTogNFxuICogfSlcbiAqIC8vPT4gTW9uIEphbiAwMyAyMDA1IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydE9mV2Vla1llYXIoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IGdldERlZmF1bHRPcHRpb25zKCk7XG4gIGNvbnN0IGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA9XG4gICAgb3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlID8/XG4gICAgb3B0aW9ucz8ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGUgPz9cbiAgICBkZWZhdWx0T3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGUgPz9cbiAgICBkZWZhdWx0T3B0aW9ucy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA/P1xuICAgIDE7XG5cbiAgY29uc3QgeWVhciA9IGdldFdlZWtZZWFyKGRhdGUsIG9wdGlvbnMpO1xuICBjb25zdCBmaXJzdFdlZWsgPSBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsIDApO1xuICBmaXJzdFdlZWsuc2V0RnVsbFllYXIoeWVhciwgMCwgZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgZmlyc3RXZWVrLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICBjb25zdCBfZGF0ZSA9IHN0YXJ0T2ZXZWVrKGZpcnN0V2Vlaywgb3B0aW9ucyk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdGFydE9mV2Vla1llYXI7XG4iLCAiaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5XZWVrIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mV2VlayB9IGZyb20gXCIuL3N0YXJ0T2ZXZWVrLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mV2Vla1llYXIgfSBmcm9tIFwiLi9zdGFydE9mV2Vla1llYXIuanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZ2V0V2Vla30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGdldFdlZWtcbiAqIEBjYXRlZ29yeSBXZWVrIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbG9jYWwgd2VlayBpbmRleCBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbG9jYWwgd2VlayBpbmRleCBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSBleGFjdCBjYWxjdWxhdGlvbiBkZXBlbmRzIG9uIHRoZSB2YWx1ZXMgb2ZcbiAqIGBvcHRpb25zLndlZWtTdGFydHNPbmAgKHdoaWNoIGlzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrKVxuICogYW5kIGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgKHdoaWNoIGlzIHRoZSBkYXkgb2YgSmFudWFyeSwgd2hpY2ggaXMgYWx3YXlzIGluXG4gKiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgd2Vlay1udW1iZXJpbmcgeWVhcilcbiAqXG4gKiBXZWVrIG51bWJlcmluZzogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2VlayNUaGVfSVNPX3dlZWtfZGF0ZV9zeXN0ZW1cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBnaXZlbiBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgd2Vla1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGljaCB3ZWVrIG9mIHRoZSBsb2NhbCB3ZWVrIG51bWJlcmluZyB5ZWFyIGlzIDIgSmFudWFyeSAyMDA1IHdpdGggZGVmYXVsdCBvcHRpb25zP1xuICogY29uc3QgcmVzdWx0ID0gZ2V0V2VlayhuZXcgRGF0ZSgyMDA1LCAwLCAyKSlcbiAqIC8vPT4gMlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGljaCB3ZWVrIG9mIHRoZSBsb2NhbCB3ZWVrIG51bWJlcmluZyB5ZWFyIGlzIDIgSmFudWFyeSAyMDA1LFxuICogLy8gaWYgTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWssXG4gKiAvLyBhbmQgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIgYWx3YXlzIGNvbnRhaW5zIDQgSmFudWFyeT9cbiAqIGNvbnN0IHJlc3VsdCA9IGdldFdlZWsobmV3IERhdGUoMjAwNSwgMCwgMiksIHtcbiAqICAgd2Vla1N0YXJ0c09uOiAxLFxuICogICBmaXJzdFdlZWtDb250YWluc0RhdGU6IDRcbiAqIH0pXG4gKiAvLz0+IDUzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRXZWVrKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBjb25zdCBkaWZmID0gK3N0YXJ0T2ZXZWVrKF9kYXRlLCBvcHRpb25zKSAtICtzdGFydE9mV2Vla1llYXIoX2RhdGUsIG9wdGlvbnMpO1xuXG4gIC8vIFJvdW5kIHRoZSBudW1iZXIgb2Ygd2Vla3MgdG8gdGhlIG5lYXJlc3QgaW50ZWdlciBiZWNhdXNlIHRoZSBudW1iZXIgb2ZcbiAgLy8gbWlsbGlzZWNvbmRzIGluIGEgd2VlayBpcyBub3QgY29uc3RhbnQgKGUuZy4gaXQncyBkaWZmZXJlbnQgaW4gdGhlIHdlZWsgb2ZcbiAgLy8gdGhlIGRheWxpZ2h0IHNhdmluZyB0aW1lIGNsb2NrIHNoaWZ0KS5cbiAgcmV0dXJuIE1hdGgucm91bmQoZGlmZiAvIG1pbGxpc2Vjb25kc0luV2VlaykgKyAxO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGdldFdlZWs7XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIGFkZExlYWRpbmdaZXJvcyhudW1iZXIsIHRhcmdldExlbmd0aCkge1xuICBjb25zdCBzaWduID0gbnVtYmVyIDwgMCA/IFwiLVwiIDogXCJcIjtcbiAgY29uc3Qgb3V0cHV0ID0gTWF0aC5hYnMobnVtYmVyKS50b1N0cmluZygpLnBhZFN0YXJ0KHRhcmdldExlbmd0aCwgXCIwXCIpO1xuICByZXR1cm4gc2lnbiArIG91dHB1dDtcbn1cbiIsICJpbXBvcnQgeyBhZGRMZWFkaW5nWmVyb3MgfSBmcm9tIFwiLi4vYWRkTGVhZGluZ1plcm9zLmpzXCI7XG5cbi8qXG4gKiB8ICAgICB8IFVuaXQgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFVuaXQgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8LS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8ICBhICB8IEFNLCBQTSAgICAgICAgICAgICAgICAgICAgICAgICB8ICBBKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBkICB8IERheSBvZiBtb250aCAgICAgICAgICAgICAgICAgICB8ICBEICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBoICB8IEhvdXIgWzEtMTJdICAgICAgICAgICAgICAgICAgICB8ICBIICB8IEhvdXIgWzAtMjNdICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBtICB8IE1pbnV0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICBNICB8IE1vbnRoICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICBzICB8IFNlY29uZCAgICAgICAgICAgICAgICAgICAgICAgICB8ICBTICB8IEZyYWN0aW9uIG9mIHNlY29uZCAgICAgICAgICAgICB8XG4gKiB8ICB5ICB8IFllYXIgKGFicykgICAgICAgICAgICAgICAgICAgICB8ICBZICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKlxuICogTGV0dGVycyBtYXJrZWQgYnkgKiBhcmUgbm90IGltcGxlbWVudGVkIGJ1dCByZXNlcnZlZCBieSBVbmljb2RlIHN0YW5kYXJkLlxuICovXG5cbmV4cG9ydCBjb25zdCBsaWdodEZvcm1hdHRlcnMgPSB7XG4gIC8vIFllYXJcbiAgeShkYXRlLCB0b2tlbikge1xuICAgIC8vIEZyb20gaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvdHIzNS0zMS90cjM1LWRhdGVzLmh0bWwjRGF0ZV9Gb3JtYXRfdG9rZW5zXG4gICAgLy8gfCBZZWFyICAgICB8ICAgICB5IHwgeXkgfCAgIHl5eSB8ICB5eXl5IHwgeXl5eXkgfFxuICAgIC8vIHwtLS0tLS0tLS0tfC0tLS0tLS18LS0tLXwtLS0tLS0tfC0tLS0tLS18LS0tLS0tLXxcbiAgICAvLyB8IEFEIDEgICAgIHwgICAgIDEgfCAwMSB8ICAgMDAxIHwgIDAwMDEgfCAwMDAwMSB8XG4gICAgLy8gfCBBRCAxMiAgICB8ICAgIDEyIHwgMTIgfCAgIDAxMiB8ICAwMDEyIHwgMDAwMTIgfFxuICAgIC8vIHwgQUQgMTIzICAgfCAgIDEyMyB8IDIzIHwgICAxMjMgfCAgMDEyMyB8IDAwMTIzIHxcbiAgICAvLyB8IEFEIDEyMzQgIHwgIDEyMzQgfCAzNCB8ICAxMjM0IHwgIDEyMzQgfCAwMTIzNCB8XG4gICAgLy8gfCBBRCAxMjM0NSB8IDEyMzQ1IHwgNDUgfCAxMjM0NSB8IDEyMzQ1IHwgMTIzNDUgfFxuXG4gICAgY29uc3Qgc2lnbmVkWWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAvLyBSZXR1cm5zIDEgZm9yIDEgQkMgKHdoaWNoIGlzIHllYXIgMCBpbiBKYXZhU2NyaXB0KVxuICAgIGNvbnN0IHllYXIgPSBzaWduZWRZZWFyID4gMCA/IHNpZ25lZFllYXIgOiAxIC0gc2lnbmVkWWVhcjtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHRva2VuID09PSBcInl5XCIgPyB5ZWFyICUgMTAwIDogeWVhciwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcblxuICAvLyBNb250aFxuICBNKGRhdGUsIHRva2VuKSB7XG4gICAgY29uc3QgbW9udGggPSBkYXRlLmdldE1vbnRoKCk7XG4gICAgcmV0dXJuIHRva2VuID09PSBcIk1cIiA/IFN0cmluZyhtb250aCArIDEpIDogYWRkTGVhZGluZ1plcm9zKG1vbnRoICsgMSwgMik7XG4gIH0sXG5cbiAgLy8gRGF5IG9mIHRoZSBtb250aFxuICBkKGRhdGUsIHRva2VuKSB7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhkYXRlLmdldERhdGUoKSwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcblxuICAvLyBBTSBvciBQTVxuICBhKGRhdGUsIHRva2VuKSB7XG4gICAgY29uc3QgZGF5UGVyaW9kRW51bVZhbHVlID0gZGF0ZS5nZXRIb3VycygpIC8gMTIgPj0gMSA/IFwicG1cIiA6IFwiYW1cIjtcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgXCJhXCI6XG4gICAgICBjYXNlIFwiYWFcIjpcbiAgICAgICAgcmV0dXJuIGRheVBlcmlvZEVudW1WYWx1ZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgY2FzZSBcImFhYVwiOlxuICAgICAgICByZXR1cm4gZGF5UGVyaW9kRW51bVZhbHVlO1xuICAgICAgY2FzZSBcImFhYWFhXCI6XG4gICAgICAgIHJldHVybiBkYXlQZXJpb2RFbnVtVmFsdWVbMF07XG4gICAgICBjYXNlIFwiYWFhYVwiOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGRheVBlcmlvZEVudW1WYWx1ZSA9PT0gXCJhbVwiID8gXCJhLm0uXCIgOiBcInAubS5cIjtcbiAgICB9XG4gIH0sXG5cbiAgLy8gSG91ciBbMS0xMl1cbiAgaChkYXRlLCB0b2tlbikge1xuICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MoZGF0ZS5nZXRIb3VycygpICUgMTIgfHwgMTIsIHRva2VuLmxlbmd0aCk7XG4gIH0sXG5cbiAgLy8gSG91ciBbMC0yM11cbiAgSChkYXRlLCB0b2tlbikge1xuICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MoZGF0ZS5nZXRIb3VycygpLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuXG4gIC8vIE1pbnV0ZVxuICBtKGRhdGUsIHRva2VuKSB7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhkYXRlLmdldE1pbnV0ZXMoKSwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcblxuICAvLyBTZWNvbmRcbiAgcyhkYXRlLCB0b2tlbikge1xuICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MoZGF0ZS5nZXRTZWNvbmRzKCksIHRva2VuLmxlbmd0aCk7XG4gIH0sXG5cbiAgLy8gRnJhY3Rpb24gb2Ygc2Vjb25kXG4gIFMoZGF0ZSwgdG9rZW4pIHtcbiAgICBjb25zdCBudW1iZXJPZkRpZ2l0cyA9IHRva2VuLmxlbmd0aDtcbiAgICBjb25zdCBtaWxsaXNlY29uZHMgPSBkYXRlLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIGNvbnN0IGZyYWN0aW9uYWxTZWNvbmRzID0gTWF0aC50cnVuYyhcbiAgICAgIG1pbGxpc2Vjb25kcyAqIE1hdGgucG93KDEwLCBudW1iZXJPZkRpZ2l0cyAtIDMpLFxuICAgICk7XG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhmcmFjdGlvbmFsU2Vjb25kcywgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcbn07XG4iLCAiaW1wb3J0IHsgZ2V0RGF5T2ZZZWFyIH0gZnJvbSBcIi4uLy4uL2dldERheU9mWWVhci5qc1wiO1xuaW1wb3J0IHsgZ2V0SVNPV2VlayB9IGZyb20gXCIuLi8uLi9nZXRJU09XZWVrLmpzXCI7XG5pbXBvcnQgeyBnZXRJU09XZWVrWWVhciB9IGZyb20gXCIuLi8uLi9nZXRJU09XZWVrWWVhci5qc1wiO1xuaW1wb3J0IHsgZ2V0V2VlayB9IGZyb20gXCIuLi8uLi9nZXRXZWVrLmpzXCI7XG5pbXBvcnQgeyBnZXRXZWVrWWVhciB9IGZyb20gXCIuLi8uLi9nZXRXZWVrWWVhci5qc1wiO1xuXG5pbXBvcnQgeyBhZGRMZWFkaW5nWmVyb3MgfSBmcm9tIFwiLi4vYWRkTGVhZGluZ1plcm9zLmpzXCI7XG5pbXBvcnQgeyBsaWdodEZvcm1hdHRlcnMgfSBmcm9tIFwiLi9saWdodEZvcm1hdHRlcnMuanNcIjtcblxuY29uc3QgZGF5UGVyaW9kRW51bSA9IHtcbiAgYW06IFwiYW1cIixcbiAgcG06IFwicG1cIixcbiAgbWlkbmlnaHQ6IFwibWlkbmlnaHRcIixcbiAgbm9vbjogXCJub29uXCIsXG4gIG1vcm5pbmc6IFwibW9ybmluZ1wiLFxuICBhZnRlcm5vb246IFwiYWZ0ZXJub29uXCIsXG4gIGV2ZW5pbmc6IFwiZXZlbmluZ1wiLFxuICBuaWdodDogXCJuaWdodFwiLFxufTtcblxuLypcbiAqIHwgICAgIHwgVW5pdCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgVW5pdCAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwtLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgIGEgIHwgQU0sIFBNICAgICAgICAgICAgICAgICAgICAgICAgIHwgIEEqIHwgTWlsbGlzZWNvbmRzIGluIGRheSAgICAgICAgICAgIHxcbiAqIHwgIGIgIHwgQU0sIFBNLCBub29uLCBtaWRuaWdodCAgICAgICAgIHwgIEIgIHwgRmxleGlibGUgZGF5IHBlcmlvZCAgICAgICAgICAgIHxcbiAqIHwgIGMgIHwgU3RhbmQtYWxvbmUgbG9jYWwgZGF5IG9mIHdlZWsgIHwgIEMqIHwgTG9jYWxpemVkIGhvdXIgdy8gZGF5IHBlcmlvZCAgIHxcbiAqIHwgIGQgIHwgRGF5IG9mIG1vbnRoICAgICAgICAgICAgICAgICAgIHwgIEQgIHwgRGF5IG9mIHllYXIgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIGUgIHwgTG9jYWwgZGF5IG9mIHdlZWsgICAgICAgICAgICAgIHwgIEUgIHwgRGF5IG9mIHdlZWsgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIGYgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIEYqIHwgRGF5IG9mIHdlZWsgaW4gbW9udGggICAgICAgICAgIHxcbiAqIHwgIGcqIHwgTW9kaWZpZWQgSnVsaWFuIGRheSAgICAgICAgICAgIHwgIEcgIHwgRXJhICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIGggIHwgSG91ciBbMS0xMl0gICAgICAgICAgICAgICAgICAgIHwgIEggIHwgSG91ciBbMC0yM10gICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIGkhIHwgSVNPIGRheSBvZiB3ZWVrICAgICAgICAgICAgICAgIHwgIEkhIHwgSVNPIHdlZWsgb2YgeWVhciAgICAgICAgICAgICAgIHxcbiAqIHwgIGoqIHwgTG9jYWxpemVkIGhvdXIgdy8gZGF5IHBlcmlvZCAgIHwgIEoqIHwgTG9jYWxpemVkIGhvdXIgdy9vIGRheSBwZXJpb2QgIHxcbiAqIHwgIGsgIHwgSG91ciBbMS0yNF0gICAgICAgICAgICAgICAgICAgIHwgIEsgIHwgSG91ciBbMC0xMV0gICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIGwqIHwgKGRlcHJlY2F0ZWQpICAgICAgICAgICAgICAgICAgIHwgIEwgIHwgU3RhbmQtYWxvbmUgbW9udGggICAgICAgICAgICAgIHxcbiAqIHwgIG0gIHwgTWludXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgIE0gIHwgTW9udGggICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIG4gIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIE4gIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIG8hIHwgT3JkaW5hbCBudW1iZXIgbW9kaWZpZXIgICAgICAgIHwgIE8gIHwgVGltZXpvbmUgKEdNVCkgICAgICAgICAgICAgICAgIHxcbiAqIHwgIHAhIHwgTG9uZyBsb2NhbGl6ZWQgdGltZSAgICAgICAgICAgIHwgIFAhIHwgTG9uZyBsb2NhbGl6ZWQgZGF0ZSAgICAgICAgICAgIHxcbiAqIHwgIHEgIHwgU3RhbmQtYWxvbmUgcXVhcnRlciAgICAgICAgICAgIHwgIFEgIHwgUXVhcnRlciAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIHIqIHwgUmVsYXRlZCBHcmVnb3JpYW4geWVhciAgICAgICAgIHwgIFIhIHwgSVNPIHdlZWstbnVtYmVyaW5nIHllYXIgICAgICAgIHxcbiAqIHwgIHMgIHwgU2Vjb25kICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFMgIHwgRnJhY3Rpb24gb2Ygc2Vjb25kICAgICAgICAgICAgIHxcbiAqIHwgIHQhIHwgU2Vjb25kcyB0aW1lc3RhbXAgICAgICAgICAgICAgIHwgIFQhIHwgTWlsbGlzZWNvbmRzIHRpbWVzdGFtcCAgICAgICAgIHxcbiAqIHwgIHUgIHwgRXh0ZW5kZWQgeWVhciAgICAgICAgICAgICAgICAgIHwgIFUqIHwgQ3ljbGljIHllYXIgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIHYqIHwgVGltZXpvbmUgKGdlbmVyaWMgbm9uLWxvY2F0LikgIHwgIFYqIHwgVGltZXpvbmUgKGxvY2F0aW9uKSAgICAgICAgICAgIHxcbiAqIHwgIHcgIHwgTG9jYWwgd2VlayBvZiB5ZWFyICAgICAgICAgICAgIHwgIFcqIHwgV2VlayBvZiBtb250aCAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIHggIHwgVGltZXpvbmUgKElTTy04NjAxIHcvbyBaKSAgICAgIHwgIFggIHwgVGltZXpvbmUgKElTTy04NjAxKSAgICAgICAgICAgIHxcbiAqIHwgIHkgIHwgWWVhciAoYWJzKSAgICAgICAgICAgICAgICAgICAgIHwgIFkgIHwgTG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhciAgICAgIHxcbiAqIHwgIHogIHwgVGltZXpvbmUgKHNwZWNpZmljIG5vbi1sb2NhdC4pIHwgIFoqIHwgVGltZXpvbmUgKGFsaWFzZXMpICAgICAgICAgICAgIHxcbiAqXG4gKiBMZXR0ZXJzIG1hcmtlZCBieSAqIGFyZSBub3QgaW1wbGVtZW50ZWQgYnV0IHJlc2VydmVkIGJ5IFVuaWNvZGUgc3RhbmRhcmQuXG4gKlxuICogTGV0dGVycyBtYXJrZWQgYnkgISBhcmUgbm9uLXN0YW5kYXJkLCBidXQgaW1wbGVtZW50ZWQgYnkgZGF0ZS1mbnM6XG4gKiAtIGBvYCBtb2RpZmllcyB0aGUgcHJldmlvdXMgdG9rZW4gdG8gdHVybiBpdCBpbnRvIGFuIG9yZGluYWwgKHNlZSBgZm9ybWF0YCBkb2NzKVxuICogLSBgaWAgaXMgSVNPIGRheSBvZiB3ZWVrLiBGb3IgYGlgIGFuZCBgaWlgIGlzIHJldHVybnMgbnVtZXJpYyBJU08gd2VlayBkYXlzLFxuICogICBpLmUuIDcgZm9yIFN1bmRheSwgMSBmb3IgTW9uZGF5LCBldGMuXG4gKiAtIGBJYCBpcyBJU08gd2VlayBvZiB5ZWFyLCBhcyBvcHBvc2VkIHRvIGB3YCB3aGljaCBpcyBsb2NhbCB3ZWVrIG9mIHllYXIuXG4gKiAtIGBSYCBpcyBJU08gd2Vlay1udW1iZXJpbmcgeWVhciwgYXMgb3Bwb3NlZCB0byBgWWAgd2hpY2ggaXMgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhci5cbiAqICAgYFJgIGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgSWAgYW5kIGBpYFxuICogICBmb3IgdW5pdmVyc2FsIElTTyB3ZWVrLW51bWJlcmluZyBkYXRlLCB3aGVyZWFzXG4gKiAgIGBZYCBpcyBzdXBwb3NlZCB0byBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYHdgIGFuZCBgZWBcbiAqICAgZm9yIHdlZWstbnVtYmVyaW5nIGRhdGUgc3BlY2lmaWMgdG8gdGhlIGxvY2FsZS5cbiAqIC0gYFBgIGlzIGxvbmcgbG9jYWxpemVkIGRhdGUgZm9ybWF0XG4gKiAtIGBwYCBpcyBsb25nIGxvY2FsaXplZCB0aW1lIGZvcm1hdFxuICovXG5cbmV4cG9ydCBjb25zdCBmb3JtYXR0ZXJzID0ge1xuICAvLyBFcmFcbiAgRzogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGNvbnN0IGVyYSA9IGRhdGUuZ2V0RnVsbFllYXIoKSA+IDAgPyAxIDogMDtcbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBBRCwgQkNcbiAgICAgIGNhc2UgXCJHXCI6XG4gICAgICBjYXNlIFwiR0dcIjpcbiAgICAgIGNhc2UgXCJHR0dcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmVyYShlcmEsIHsgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIiB9KTtcbiAgICAgIC8vIEEsIEJcbiAgICAgIGNhc2UgXCJHR0dHR1wiOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZXJhKGVyYSwgeyB3aWR0aDogXCJuYXJyb3dcIiB9KTtcbiAgICAgIC8vIEFubm8gRG9taW5pLCBCZWZvcmUgQ2hyaXN0XG4gICAgICBjYXNlIFwiR0dHR1wiOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmVyYShlcmEsIHsgd2lkdGg6IFwid2lkZVwiIH0pO1xuICAgIH1cbiAgfSxcblxuICAvLyBZZWFyXG4gIHk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICAvLyBPcmRpbmFsIG51bWJlclxuICAgIGlmICh0b2tlbiA9PT0gXCJ5b1wiKSB7XG4gICAgICBjb25zdCBzaWduZWRZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgLy8gUmV0dXJucyAxIGZvciAxIEJDICh3aGljaCBpcyB5ZWFyIDAgaW4gSmF2YVNjcmlwdClcbiAgICAgIGNvbnN0IHllYXIgPSBzaWduZWRZZWFyID4gMCA/IHNpZ25lZFllYXIgOiAxIC0gc2lnbmVkWWVhcjtcbiAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKHllYXIsIHsgdW5pdDogXCJ5ZWFyXCIgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpZ2h0Rm9ybWF0dGVycy55KGRhdGUsIHRva2VuKTtcbiAgfSxcblxuICAvLyBMb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gIFk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBzaWduZWRXZWVrWWVhciA9IGdldFdlZWtZZWFyKGRhdGUsIG9wdGlvbnMpO1xuICAgIC8vIFJldHVybnMgMSBmb3IgMSBCQyAod2hpY2ggaXMgeWVhciAwIGluIEphdmFTY3JpcHQpXG4gICAgY29uc3Qgd2Vla1llYXIgPSBzaWduZWRXZWVrWWVhciA+IDAgPyBzaWduZWRXZWVrWWVhciA6IDEgLSBzaWduZWRXZWVrWWVhcjtcblxuICAgIC8vIFR3byBkaWdpdCB5ZWFyXG4gICAgaWYgKHRva2VuID09PSBcIllZXCIpIHtcbiAgICAgIGNvbnN0IHR3b0RpZ2l0WWVhciA9IHdlZWtZZWFyICUgMTAwO1xuICAgICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyh0d29EaWdpdFllYXIsIDIpO1xuICAgIH1cblxuICAgIC8vIE9yZGluYWwgbnVtYmVyXG4gICAgaWYgKHRva2VuID09PSBcIllvXCIpIHtcbiAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKHdlZWtZZWFyLCB7IHVuaXQ6IFwieWVhclwiIH0pO1xuICAgIH1cblxuICAgIC8vIFBhZGRpbmdcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKHdlZWtZZWFyLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuXG4gIC8vIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gIFI6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbikge1xuICAgIGNvbnN0IGlzb1dlZWtZZWFyID0gZ2V0SVNPV2Vla1llYXIoZGF0ZSk7XG5cbiAgICAvLyBQYWRkaW5nXG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhpc29XZWVrWWVhciwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcblxuICAvLyBFeHRlbmRlZCB5ZWFyLiBUaGlzIGlzIGEgc2luZ2xlIG51bWJlciBkZXNpZ25hdGluZyB0aGUgeWVhciBvZiB0aGlzIGNhbGVuZGFyIHN5c3RlbS5cbiAgLy8gVGhlIG1haW4gZGlmZmVyZW5jZSBiZXR3ZWVuIGB5YCBhbmQgYHVgIGxvY2FsaXplcnMgYXJlIEIuQy4geWVhcnM6XG4gIC8vIHwgWWVhciB8IGB5YCB8IGB1YCB8XG4gIC8vIHwtLS0tLS18LS0tLS18LS0tLS18XG4gIC8vIHwgQUMgMSB8ICAgMSB8ICAgMSB8XG4gIC8vIHwgQkMgMSB8ICAgMSB8ICAgMCB8XG4gIC8vIHwgQkMgMiB8ICAgMiB8ICAtMSB8XG4gIC8vIEFsc28gYHl5YCBhbHdheXMgcmV0dXJucyB0aGUgbGFzdCB0d28gZGlnaXRzIG9mIGEgeWVhcixcbiAgLy8gd2hpbGUgYHV1YCBwYWRzIHNpbmdsZSBkaWdpdCB5ZWFycyB0byAyIGNoYXJhY3RlcnMgYW5kIHJldHVybnMgb3RoZXIgeWVhcnMgdW5jaGFuZ2VkLlxuICB1OiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4pIHtcbiAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MoeWVhciwgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcblxuICAvLyBRdWFydGVyXG4gIFE6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICBjb25zdCBxdWFydGVyID0gTWF0aC5jZWlsKChkYXRlLmdldE1vbnRoKCkgKyAxKSAvIDMpO1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDEsIDIsIDMsIDRcbiAgICAgIGNhc2UgXCJRXCI6XG4gICAgICAgIHJldHVybiBTdHJpbmcocXVhcnRlcik7XG4gICAgICAvLyAwMSwgMDIsIDAzLCAwNFxuICAgICAgY2FzZSBcIlFRXCI6XG4gICAgICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MocXVhcnRlciwgMik7XG4gICAgICAvLyAxc3QsIDJuZCwgM3JkLCA0dGhcbiAgICAgIGNhc2UgXCJRb1wiOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihxdWFydGVyLCB7IHVuaXQ6IFwicXVhcnRlclwiIH0pO1xuICAgICAgLy8gUTEsIFEyLCBRMywgUTRcbiAgICAgIGNhc2UgXCJRUVFcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLnF1YXJ0ZXIocXVhcnRlciwge1xuICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gMSwgMiwgMywgNCAobmFycm93IHF1YXJ0ZXI7IGNvdWxkIGJlIG5vdCBudW1lcmljYWwpXG4gICAgICBjYXNlIFwiUVFRUVFcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLnF1YXJ0ZXIocXVhcnRlciwge1xuICAgICAgICAgIHdpZHRoOiBcIm5hcnJvd1wiLFxuICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICB9KTtcbiAgICAgIC8vIDFzdCBxdWFydGVyLCAybmQgcXVhcnRlciwgLi4uXG4gICAgICBjYXNlIFwiUVFRUVwiOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLnF1YXJ0ZXIocXVhcnRlciwge1xuICAgICAgICAgIHdpZHRoOiBcIndpZGVcIixcbiAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgfSk7XG4gICAgfVxuICB9LFxuXG4gIC8vIFN0YW5kLWFsb25lIHF1YXJ0ZXJcbiAgcTogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGNvbnN0IHF1YXJ0ZXIgPSBNYXRoLmNlaWwoKGRhdGUuZ2V0TW9udGgoKSArIDEpIC8gMyk7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gMSwgMiwgMywgNFxuICAgICAgY2FzZSBcInFcIjpcbiAgICAgICAgcmV0dXJuIFN0cmluZyhxdWFydGVyKTtcbiAgICAgIC8vIDAxLCAwMiwgMDMsIDA0XG4gICAgICBjYXNlIFwicXFcIjpcbiAgICAgICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhxdWFydGVyLCAyKTtcbiAgICAgIC8vIDFzdCwgMm5kLCAzcmQsIDR0aFxuICAgICAgY2FzZSBcInFvXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKHF1YXJ0ZXIsIHsgdW5pdDogXCJxdWFydGVyXCIgfSk7XG4gICAgICAvLyBRMSwgUTIsIFEzLCBRNFxuICAgICAgY2FzZSBcInFxcVwiOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUucXVhcnRlcihxdWFydGVyLCB7XG4gICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICBjb250ZXh0OiBcInN0YW5kYWxvbmVcIixcbiAgICAgICAgfSk7XG4gICAgICAvLyAxLCAyLCAzLCA0IChuYXJyb3cgcXVhcnRlcjsgY291bGQgYmUgbm90IG51bWVyaWNhbClcbiAgICAgIGNhc2UgXCJxcXFxcVwiOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUucXVhcnRlcihxdWFydGVyLCB7XG4gICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgY29udGV4dDogXCJzdGFuZGFsb25lXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gMXN0IHF1YXJ0ZXIsIDJuZCBxdWFydGVyLCAuLi5cbiAgICAgIGNhc2UgXCJxcXFxXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUucXVhcnRlcihxdWFydGVyLCB7XG4gICAgICAgICAgd2lkdGg6IFwid2lkZVwiLFxuICAgICAgICAgIGNvbnRleHQ6IFwic3RhbmRhbG9uZVwiLFxuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gTW9udGhcbiAgTTogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRNb250aCgpO1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgXCJNXCI6XG4gICAgICBjYXNlIFwiTU1cIjpcbiAgICAgICAgcmV0dXJuIGxpZ2h0Rm9ybWF0dGVycy5NKGRhdGUsIHRva2VuKTtcbiAgICAgIC8vIDFzdCwgMm5kLCAuLi4sIDEydGhcbiAgICAgIGNhc2UgXCJNb1wiOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihtb250aCArIDEsIHsgdW5pdDogXCJtb250aFwiIH0pO1xuICAgICAgLy8gSmFuLCBGZWIsIC4uLiwgRGVjXG4gICAgICBjYXNlIFwiTU1NXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5tb250aChtb250aCwge1xuICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gSiwgRiwgLi4uLCBEXG4gICAgICBjYXNlIFwiTU1NTU1cIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLm1vbnRoKG1vbnRoLCB7XG4gICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gSmFudWFyeSwgRmVicnVhcnksIC4uLiwgRGVjZW1iZXJcbiAgICAgIGNhc2UgXCJNTU1NXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUubW9udGgobW9udGgsIHsgd2lkdGg6IFwid2lkZVwiLCBjb250ZXh0OiBcImZvcm1hdHRpbmdcIiB9KTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gU3RhbmQtYWxvbmUgbW9udGhcbiAgTDogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRNb250aCgpO1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDEsIDIsIC4uLiwgMTJcbiAgICAgIGNhc2UgXCJMXCI6XG4gICAgICAgIHJldHVybiBTdHJpbmcobW9udGggKyAxKTtcbiAgICAgIC8vIDAxLCAwMiwgLi4uLCAxMlxuICAgICAgY2FzZSBcIkxMXCI6XG4gICAgICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MobW9udGggKyAxLCAyKTtcbiAgICAgIC8vIDFzdCwgMm5kLCAuLi4sIDEydGhcbiAgICAgIGNhc2UgXCJMb1wiOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihtb250aCArIDEsIHsgdW5pdDogXCJtb250aFwiIH0pO1xuICAgICAgLy8gSmFuLCBGZWIsIC4uLiwgRGVjXG4gICAgICBjYXNlIFwiTExMXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5tb250aChtb250aCwge1xuICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgY29udGV4dDogXCJzdGFuZGFsb25lXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gSiwgRiwgLi4uLCBEXG4gICAgICBjYXNlIFwiTExMTExcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLm1vbnRoKG1vbnRoLCB7XG4gICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgY29udGV4dDogXCJzdGFuZGFsb25lXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gSmFudWFyeSwgRmVicnVhcnksIC4uLiwgRGVjZW1iZXJcbiAgICAgIGNhc2UgXCJMTExMXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUubW9udGgobW9udGgsIHsgd2lkdGg6IFwid2lkZVwiLCBjb250ZXh0OiBcInN0YW5kYWxvbmVcIiB9KTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gTG9jYWwgd2VlayBvZiB5ZWFyXG4gIHc6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB3ZWVrID0gZ2V0V2VlayhkYXRlLCBvcHRpb25zKTtcblxuICAgIGlmICh0b2tlbiA9PT0gXCJ3b1wiKSB7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcih3ZWVrLCB7IHVuaXQ6IFwid2Vla1wiIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3Mod2VlaywgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcblxuICAvLyBJU08gd2VlayBvZiB5ZWFyXG4gIEk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICBjb25zdCBpc29XZWVrID0gZ2V0SVNPV2VlayhkYXRlKTtcblxuICAgIGlmICh0b2tlbiA9PT0gXCJJb1wiKSB7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihpc29XZWVrLCB7IHVuaXQ6IFwid2Vla1wiIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MoaXNvV2VlaywgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcblxuICAvLyBEYXkgb2YgdGhlIG1vbnRoXG4gIGQ6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICBpZiAodG9rZW4gPT09IFwiZG9cIikge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoZGF0ZS5nZXREYXRlKCksIHsgdW5pdDogXCJkYXRlXCIgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpZ2h0Rm9ybWF0dGVycy5kKGRhdGUsIHRva2VuKTtcbiAgfSxcblxuICAvLyBEYXkgb2YgeWVhclxuICBEOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgY29uc3QgZGF5T2ZZZWFyID0gZ2V0RGF5T2ZZZWFyKGRhdGUpO1xuXG4gICAgaWYgKHRva2VuID09PSBcIkRvXCIpIHtcbiAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGRheU9mWWVhciwgeyB1bml0OiBcImRheU9mWWVhclwiIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MoZGF5T2ZZZWFyLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuXG4gIC8vIERheSBvZiB3ZWVrXG4gIEU6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICBjb25zdCBkYXlPZldlZWsgPSBkYXRlLmdldERheSgpO1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIFR1ZVxuICAgICAgY2FzZSBcIkVcIjpcbiAgICAgIGNhc2UgXCJFRVwiOlxuICAgICAgY2FzZSBcIkVFRVwiOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gVFxuICAgICAgY2FzZSBcIkVFRUVFXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gVHVcbiAgICAgIGNhc2UgXCJFRUVFRUVcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogXCJzaG9ydFwiLFxuICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICB9KTtcbiAgICAgIC8vIFR1ZXNkYXlcbiAgICAgIGNhc2UgXCJFRUVFXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiBcIndpZGVcIixcbiAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgfSk7XG4gICAgfVxuICB9LFxuXG4gIC8vIExvY2FsIGRheSBvZiB3ZWVrXG4gIGU6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBkYXlPZldlZWsgPSBkYXRlLmdldERheSgpO1xuICAgIGNvbnN0IGxvY2FsRGF5T2ZXZWVrID0gKGRheU9mV2VlayAtIG9wdGlvbnMud2Vla1N0YXJ0c09uICsgOCkgJSA3IHx8IDc7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gTnVtZXJpY2FsIHZhbHVlIChOdGggZGF5IG9mIHdlZWsgd2l0aCBjdXJyZW50IGxvY2FsZSBvciB3ZWVrU3RhcnRzT24pXG4gICAgICBjYXNlIFwiZVwiOlxuICAgICAgICByZXR1cm4gU3RyaW5nKGxvY2FsRGF5T2ZXZWVrKTtcbiAgICAgIC8vIFBhZGRlZCBudW1lcmljYWwgdmFsdWVcbiAgICAgIGNhc2UgXCJlZVwiOlxuICAgICAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGxvY2FsRGF5T2ZXZWVrLCAyKTtcbiAgICAgIC8vIDFzdCwgMm5kLCAuLi4sIDd0aFxuICAgICAgY2FzZSBcImVvXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGxvY2FsRGF5T2ZXZWVrLCB7IHVuaXQ6IFwiZGF5XCIgfSk7XG4gICAgICBjYXNlIFwiZWVlXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgfSk7XG4gICAgICAvLyBUXG4gICAgICBjYXNlIFwiZWVlZWVcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogXCJuYXJyb3dcIixcbiAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgfSk7XG4gICAgICAvLyBUdVxuICAgICAgY2FzZSBcImVlZWVlZVwiOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiBcInNob3J0XCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gVHVlc2RheVxuICAgICAgY2FzZSBcImVlZWVcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6IFwid2lkZVwiLFxuICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gU3RhbmQtYWxvbmUgbG9jYWwgZGF5IG9mIHdlZWtcbiAgYzogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IGRheU9mV2VlayA9IGRhdGUuZ2V0RGF5KCk7XG4gICAgY29uc3QgbG9jYWxEYXlPZldlZWsgPSAoZGF5T2ZXZWVrIC0gb3B0aW9ucy53ZWVrU3RhcnRzT24gKyA4KSAlIDcgfHwgNztcbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBOdW1lcmljYWwgdmFsdWUgKHNhbWUgYXMgaW4gYGVgKVxuICAgICAgY2FzZSBcImNcIjpcbiAgICAgICAgcmV0dXJuIFN0cmluZyhsb2NhbERheU9mV2Vlayk7XG4gICAgICAvLyBQYWRkZWQgbnVtZXJpY2FsIHZhbHVlXG4gICAgICBjYXNlIFwiY2NcIjpcbiAgICAgICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhsb2NhbERheU9mV2VlaywgdG9rZW4ubGVuZ3RoKTtcbiAgICAgIC8vIDFzdCwgMm5kLCAuLi4sIDd0aFxuICAgICAgY2FzZSBcImNvXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGxvY2FsRGF5T2ZXZWVrLCB7IHVuaXQ6IFwiZGF5XCIgfSk7XG4gICAgICBjYXNlIFwiY2NjXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICBjb250ZXh0OiBcInN0YW5kYWxvbmVcIixcbiAgICAgICAgfSk7XG4gICAgICAvLyBUXG4gICAgICBjYXNlIFwiY2NjY2NcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogXCJuYXJyb3dcIixcbiAgICAgICAgICBjb250ZXh0OiBcInN0YW5kYWxvbmVcIixcbiAgICAgICAgfSk7XG4gICAgICAvLyBUdVxuICAgICAgY2FzZSBcImNjY2NjY1wiOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiBcInNob3J0XCIsXG4gICAgICAgICAgY29udGV4dDogXCJzdGFuZGFsb25lXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gVHVlc2RheVxuICAgICAgY2FzZSBcImNjY2NcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6IFwid2lkZVwiLFxuICAgICAgICAgIGNvbnRleHQ6IFwic3RhbmRhbG9uZVwiLFxuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gSVNPIGRheSBvZiB3ZWVrXG4gIGk6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICBjb25zdCBkYXlPZldlZWsgPSBkYXRlLmdldERheSgpO1xuICAgIGNvbnN0IGlzb0RheU9mV2VlayA9IGRheU9mV2VlayA9PT0gMCA/IDcgOiBkYXlPZldlZWs7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gMlxuICAgICAgY2FzZSBcImlcIjpcbiAgICAgICAgcmV0dXJuIFN0cmluZyhpc29EYXlPZldlZWspO1xuICAgICAgLy8gMDJcbiAgICAgIGNhc2UgXCJpaVwiOlxuICAgICAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKGlzb0RheU9mV2VlaywgdG9rZW4ubGVuZ3RoKTtcbiAgICAgIC8vIDJuZFxuICAgICAgY2FzZSBcImlvXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGlzb0RheU9mV2VlaywgeyB1bml0OiBcImRheVwiIH0pO1xuICAgICAgLy8gVHVlXG4gICAgICBjYXNlIFwiaWlpXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgfSk7XG4gICAgICAvLyBUXG4gICAgICBjYXNlIFwiaWlpaWlcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheShkYXlPZldlZWssIHtcbiAgICAgICAgICB3aWR0aDogXCJuYXJyb3dcIixcbiAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgfSk7XG4gICAgICAvLyBUdVxuICAgICAgY2FzZSBcImlpaWlpaVwiOlxuICAgICAgICByZXR1cm4gbG9jYWxpemUuZGF5KGRheU9mV2Vlaywge1xuICAgICAgICAgIHdpZHRoOiBcInNob3J0XCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gVHVlc2RheVxuICAgICAgY2FzZSBcImlpaWlcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXkoZGF5T2ZXZWVrLCB7XG4gICAgICAgICAgd2lkdGg6IFwid2lkZVwiLFxuICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gQU0gb3IgUE1cbiAgYTogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRIb3VycygpO1xuICAgIGNvbnN0IGRheVBlcmlvZEVudW1WYWx1ZSA9IGhvdXJzIC8gMTIgPj0gMSA/IFwicG1cIiA6IFwiYW1cIjtcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgXCJhXCI6XG4gICAgICBjYXNlIFwiYWFcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheVBlcmlvZChkYXlQZXJpb2RFbnVtVmFsdWUsIHtcbiAgICAgICAgICB3aWR0aDogXCJhYmJyZXZpYXRlZFwiLFxuICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICB9KTtcbiAgICAgIGNhc2UgXCJhYWFcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplXG4gICAgICAgICAgLmRheVBlcmlvZChkYXlQZXJpb2RFbnVtVmFsdWUsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgICAgY2FzZSBcImFhYWFhXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgY2FzZSBcImFhYWFcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6IFwid2lkZVwiLFxuICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gQU0sIFBNLCBtaWRuaWdodCwgbm9vblxuICBiOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgY29uc3QgaG91cnMgPSBkYXRlLmdldEhvdXJzKCk7XG4gICAgbGV0IGRheVBlcmlvZEVudW1WYWx1ZTtcbiAgICBpZiAoaG91cnMgPT09IDEyKSB7XG4gICAgICBkYXlQZXJpb2RFbnVtVmFsdWUgPSBkYXlQZXJpb2RFbnVtLm5vb247XG4gICAgfSBlbHNlIGlmIChob3VycyA9PT0gMCkge1xuICAgICAgZGF5UGVyaW9kRW51bVZhbHVlID0gZGF5UGVyaW9kRW51bS5taWRuaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF5UGVyaW9kRW51bVZhbHVlID0gaG91cnMgLyAxMiA+PSAxID8gXCJwbVwiIDogXCJhbVwiO1xuICAgIH1cblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgXCJiXCI6XG4gICAgICBjYXNlIFwiYmJcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheVBlcmlvZChkYXlQZXJpb2RFbnVtVmFsdWUsIHtcbiAgICAgICAgICB3aWR0aDogXCJhYmJyZXZpYXRlZFwiLFxuICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICB9KTtcbiAgICAgIGNhc2UgXCJiYmJcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplXG4gICAgICAgICAgLmRheVBlcmlvZChkYXlQZXJpb2RFbnVtVmFsdWUsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgICAgY2FzZSBcImJiYmJiXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgY2FzZSBcImJiYmJcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6IFwid2lkZVwiLFxuICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICB9KTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gaW4gdGhlIG1vcm5pbmcsIGluIHRoZSBhZnRlcm5vb24sIGluIHRoZSBldmVuaW5nLCBhdCBuaWdodFxuICBCOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgY29uc3QgaG91cnMgPSBkYXRlLmdldEhvdXJzKCk7XG4gICAgbGV0IGRheVBlcmlvZEVudW1WYWx1ZTtcbiAgICBpZiAoaG91cnMgPj0gMTcpIHtcbiAgICAgIGRheVBlcmlvZEVudW1WYWx1ZSA9IGRheVBlcmlvZEVudW0uZXZlbmluZztcbiAgICB9IGVsc2UgaWYgKGhvdXJzID49IDEyKSB7XG4gICAgICBkYXlQZXJpb2RFbnVtVmFsdWUgPSBkYXlQZXJpb2RFbnVtLmFmdGVybm9vbjtcbiAgICB9IGVsc2UgaWYgKGhvdXJzID49IDQpIHtcbiAgICAgIGRheVBlcmlvZEVudW1WYWx1ZSA9IGRheVBlcmlvZEVudW0ubW9ybmluZztcbiAgICB9IGVsc2Uge1xuICAgICAgZGF5UGVyaW9kRW51bVZhbHVlID0gZGF5UGVyaW9kRW51bS5uaWdodDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlIFwiQlwiOlxuICAgICAgY2FzZSBcIkJCXCI6XG4gICAgICBjYXNlIFwiQkJCXCI6XG4gICAgICAgIHJldHVybiBsb2NhbGl6ZS5kYXlQZXJpb2QoZGF5UGVyaW9kRW51bVZhbHVlLCB7XG4gICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIFwiQkJCQkJcIjpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheVBlcmlvZChkYXlQZXJpb2RFbnVtVmFsdWUsIHtcbiAgICAgICAgICB3aWR0aDogXCJuYXJyb3dcIixcbiAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIFwiQkJCQlwiOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGxvY2FsaXplLmRheVBlcmlvZChkYXlQZXJpb2RFbnVtVmFsdWUsIHtcbiAgICAgICAgICB3aWR0aDogXCJ3aWRlXCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcblxuICAvLyBIb3VyIFsxLTEyXVxuICBoOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgaWYgKHRva2VuID09PSBcImhvXCIpIHtcbiAgICAgIGxldCBob3VycyA9IGRhdGUuZ2V0SG91cnMoKSAlIDEyO1xuICAgICAgaWYgKGhvdXJzID09PSAwKSBob3VycyA9IDEyO1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoaG91cnMsIHsgdW5pdDogXCJob3VyXCIgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpZ2h0Rm9ybWF0dGVycy5oKGRhdGUsIHRva2VuKTtcbiAgfSxcblxuICAvLyBIb3VyIFswLTIzXVxuICBIOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4sIGxvY2FsaXplKSB7XG4gICAgaWYgKHRva2VuID09PSBcIkhvXCIpIHtcbiAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGRhdGUuZ2V0SG91cnMoKSwgeyB1bml0OiBcImhvdXJcIiB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGlnaHRGb3JtYXR0ZXJzLkgoZGF0ZSwgdG9rZW4pO1xuICB9LFxuXG4gIC8vIEhvdXIgWzAtMTFdXG4gIEs6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0SG91cnMoKSAlIDEyO1xuXG4gICAgaWYgKHRva2VuID09PSBcIktvXCIpIHtcbiAgICAgIHJldHVybiBsb2NhbGl6ZS5vcmRpbmFsTnVtYmVyKGhvdXJzLCB7IHVuaXQ6IFwiaG91clwiIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3MoaG91cnMsIHRva2VuLmxlbmd0aCk7XG4gIH0sXG5cbiAgLy8gSG91ciBbMS0yNF1cbiAgazogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGxldCBob3VycyA9IGRhdGUuZ2V0SG91cnMoKTtcbiAgICBpZiAoaG91cnMgPT09IDApIGhvdXJzID0gMjQ7XG5cbiAgICBpZiAodG9rZW4gPT09IFwia29cIikge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoaG91cnMsIHsgdW5pdDogXCJob3VyXCIgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFkZExlYWRpbmdaZXJvcyhob3VycywgdG9rZW4ubGVuZ3RoKTtcbiAgfSxcblxuICAvLyBNaW51dGVcbiAgbTogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBsb2NhbGl6ZSkge1xuICAgIGlmICh0b2tlbiA9PT0gXCJtb1wiKSB7XG4gICAgICByZXR1cm4gbG9jYWxpemUub3JkaW5hbE51bWJlcihkYXRlLmdldE1pbnV0ZXMoKSwgeyB1bml0OiBcIm1pbnV0ZVwiIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsaWdodEZvcm1hdHRlcnMubShkYXRlLCB0b2tlbik7XG4gIH0sXG5cbiAgLy8gU2Vjb25kXG4gIHM6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgbG9jYWxpemUpIHtcbiAgICBpZiAodG9rZW4gPT09IFwic29cIikge1xuICAgICAgcmV0dXJuIGxvY2FsaXplLm9yZGluYWxOdW1iZXIoZGF0ZS5nZXRTZWNvbmRzKCksIHsgdW5pdDogXCJzZWNvbmRcIiB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGlnaHRGb3JtYXR0ZXJzLnMoZGF0ZSwgdG9rZW4pO1xuICB9LFxuXG4gIC8vIEZyYWN0aW9uIG9mIHNlY29uZFxuICBTOiBmdW5jdGlvbiAoZGF0ZSwgdG9rZW4pIHtcbiAgICByZXR1cm4gbGlnaHRGb3JtYXR0ZXJzLlMoZGF0ZSwgdG9rZW4pO1xuICB9LFxuXG4gIC8vIFRpbWV6b25lIChJU08tODYwMS4gSWYgb2Zmc2V0IGlzIDAsIG91dHB1dCBpcyBhbHdheXMgYCdaJ2ApXG4gIFg6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplKSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXQgPSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCk7XG5cbiAgICBpZiAodGltZXpvbmVPZmZzZXQgPT09IDApIHtcbiAgICAgIHJldHVybiBcIlpcIjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBIb3VycyBhbmQgb3B0aW9uYWwgbWludXRlc1xuICAgICAgY2FzZSBcIlhcIjpcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lV2l0aE9wdGlvbmFsTWludXRlcyh0aW1lem9uZU9mZnNldCk7XG5cbiAgICAgIC8vIEhvdXJzLCBtaW51dGVzIGFuZCBvcHRpb25hbCBzZWNvbmRzIHdpdGhvdXQgYDpgIGRlbGltaXRlclxuICAgICAgLy8gTm90ZTogbmVpdGhlciBJU08tODYwMSBub3IgSmF2YVNjcmlwdCBzdXBwb3J0cyBzZWNvbmRzIGluIHRpbWV6b25lIG9mZnNldHNcbiAgICAgIC8vIHNvIHRoaXMgdG9rZW4gYWx3YXlzIGhhcyB0aGUgc2FtZSBvdXRwdXQgYXMgYFhYYFxuICAgICAgY2FzZSBcIlhYWFhcIjpcbiAgICAgIGNhc2UgXCJYWFwiOiAvLyBIb3VycyBhbmQgbWludXRlcyB3aXRob3V0IGA6YCBkZWxpbWl0ZXJcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lKHRpbWV6b25lT2Zmc2V0KTtcblxuICAgICAgLy8gSG91cnMsIG1pbnV0ZXMgYW5kIG9wdGlvbmFsIHNlY29uZHMgd2l0aCBgOmAgZGVsaW1pdGVyXG4gICAgICAvLyBOb3RlOiBuZWl0aGVyIElTTy04NjAxIG5vciBKYXZhU2NyaXB0IHN1cHBvcnRzIHNlY29uZHMgaW4gdGltZXpvbmUgb2Zmc2V0c1xuICAgICAgLy8gc28gdGhpcyB0b2tlbiBhbHdheXMgaGFzIHRoZSBzYW1lIG91dHB1dCBhcyBgWFhYYFxuICAgICAgY2FzZSBcIlhYWFhYXCI6XG4gICAgICBjYXNlIFwiWFhYXCI6IC8vIEhvdXJzIGFuZCBtaW51dGVzIHdpdGggYDpgIGRlbGltaXRlclxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lKHRpbWV6b25lT2Zmc2V0LCBcIjpcIik7XG4gICAgfVxuICB9LFxuXG4gIC8vIFRpbWV6b25lIChJU08tODYwMS4gSWYgb2Zmc2V0IGlzIDAsIG91dHB1dCBpcyBgJyswMDowMCdgIG9yIGVxdWl2YWxlbnQpXG4gIHg6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplKSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXQgPSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCk7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBIb3VycyBhbmQgb3B0aW9uYWwgbWludXRlc1xuICAgICAgY2FzZSBcInhcIjpcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lV2l0aE9wdGlvbmFsTWludXRlcyh0aW1lem9uZU9mZnNldCk7XG5cbiAgICAgIC8vIEhvdXJzLCBtaW51dGVzIGFuZCBvcHRpb25hbCBzZWNvbmRzIHdpdGhvdXQgYDpgIGRlbGltaXRlclxuICAgICAgLy8gTm90ZTogbmVpdGhlciBJU08tODYwMSBub3IgSmF2YVNjcmlwdCBzdXBwb3J0cyBzZWNvbmRzIGluIHRpbWV6b25lIG9mZnNldHNcbiAgICAgIC8vIHNvIHRoaXMgdG9rZW4gYWx3YXlzIGhhcyB0aGUgc2FtZSBvdXRwdXQgYXMgYHh4YFxuICAgICAgY2FzZSBcInh4eHhcIjpcbiAgICAgIGNhc2UgXCJ4eFwiOiAvLyBIb3VycyBhbmQgbWludXRlcyB3aXRob3V0IGA6YCBkZWxpbWl0ZXJcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lKHRpbWV6b25lT2Zmc2V0KTtcblxuICAgICAgLy8gSG91cnMsIG1pbnV0ZXMgYW5kIG9wdGlvbmFsIHNlY29uZHMgd2l0aCBgOmAgZGVsaW1pdGVyXG4gICAgICAvLyBOb3RlOiBuZWl0aGVyIElTTy04NjAxIG5vciBKYXZhU2NyaXB0IHN1cHBvcnRzIHNlY29uZHMgaW4gdGltZXpvbmUgb2Zmc2V0c1xuICAgICAgLy8gc28gdGhpcyB0b2tlbiBhbHdheXMgaGFzIHRoZSBzYW1lIG91dHB1dCBhcyBgeHh4YFxuICAgICAgY2FzZSBcInh4eHh4XCI6XG4gICAgICBjYXNlIFwieHh4XCI6IC8vIEhvdXJzIGFuZCBtaW51dGVzIHdpdGggYDpgIGRlbGltaXRlclxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZvcm1hdFRpbWV6b25lKHRpbWV6b25lT2Zmc2V0LCBcIjpcIik7XG4gICAgfVxuICB9LFxuXG4gIC8vIFRpbWV6b25lIChHTVQpXG4gIE86IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplKSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXQgPSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCk7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBTaG9ydFxuICAgICAgY2FzZSBcIk9cIjpcbiAgICAgIGNhc2UgXCJPT1wiOlxuICAgICAgY2FzZSBcIk9PT1wiOlxuICAgICAgICByZXR1cm4gXCJHTVRcIiArIGZvcm1hdFRpbWV6b25lU2hvcnQodGltZXpvbmVPZmZzZXQsIFwiOlwiKTtcbiAgICAgIC8vIExvbmdcbiAgICAgIGNhc2UgXCJPT09PXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gXCJHTVRcIiArIGZvcm1hdFRpbWV6b25lKHRpbWV6b25lT2Zmc2V0LCBcIjpcIik7XG4gICAgfVxuICB9LFxuXG4gIC8vIFRpbWV6b25lIChzcGVjaWZpYyBub24tbG9jYXRpb24pXG4gIHo6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplKSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXQgPSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCk7XG5cbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBTaG9ydFxuICAgICAgY2FzZSBcInpcIjpcbiAgICAgIGNhc2UgXCJ6elwiOlxuICAgICAgY2FzZSBcInp6elwiOlxuICAgICAgICByZXR1cm4gXCJHTVRcIiArIGZvcm1hdFRpbWV6b25lU2hvcnQodGltZXpvbmVPZmZzZXQsIFwiOlwiKTtcbiAgICAgIC8vIExvbmdcbiAgICAgIGNhc2UgXCJ6enp6XCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gXCJHTVRcIiArIGZvcm1hdFRpbWV6b25lKHRpbWV6b25lT2Zmc2V0LCBcIjpcIik7XG4gICAgfVxuICB9LFxuXG4gIC8vIFNlY29uZHMgdGltZXN0YW1wXG4gIHQ6IGZ1bmN0aW9uIChkYXRlLCB0b2tlbiwgX2xvY2FsaXplKSB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gTWF0aC50cnVuYygrZGF0ZSAvIDEwMDApO1xuICAgIHJldHVybiBhZGRMZWFkaW5nWmVyb3ModGltZXN0YW1wLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxuXG4gIC8vIE1pbGxpc2Vjb25kcyB0aW1lc3RhbXBcbiAgVDogZnVuY3Rpb24gKGRhdGUsIHRva2VuLCBfbG9jYWxpemUpIHtcbiAgICByZXR1cm4gYWRkTGVhZGluZ1plcm9zKCtkYXRlLCB0b2tlbi5sZW5ndGgpO1xuICB9LFxufTtcblxuZnVuY3Rpb24gZm9ybWF0VGltZXpvbmVTaG9ydChvZmZzZXQsIGRlbGltaXRlciA9IFwiXCIpIHtcbiAgY29uc3Qgc2lnbiA9IG9mZnNldCA+IDAgPyBcIi1cIiA6IFwiK1wiO1xuICBjb25zdCBhYnNPZmZzZXQgPSBNYXRoLmFicyhvZmZzZXQpO1xuICBjb25zdCBob3VycyA9IE1hdGgudHJ1bmMoYWJzT2Zmc2V0IC8gNjApO1xuICBjb25zdCBtaW51dGVzID0gYWJzT2Zmc2V0ICUgNjA7XG4gIGlmIChtaW51dGVzID09PSAwKSB7XG4gICAgcmV0dXJuIHNpZ24gKyBTdHJpbmcoaG91cnMpO1xuICB9XG4gIHJldHVybiBzaWduICsgU3RyaW5nKGhvdXJzKSArIGRlbGltaXRlciArIGFkZExlYWRpbmdaZXJvcyhtaW51dGVzLCAyKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VGltZXpvbmVXaXRoT3B0aW9uYWxNaW51dGVzKG9mZnNldCwgZGVsaW1pdGVyKSB7XG4gIGlmIChvZmZzZXQgJSA2MCA9PT0gMCkge1xuICAgIGNvbnN0IHNpZ24gPSBvZmZzZXQgPiAwID8gXCItXCIgOiBcIitcIjtcbiAgICByZXR1cm4gc2lnbiArIGFkZExlYWRpbmdaZXJvcyhNYXRoLmFicyhvZmZzZXQpIC8gNjAsIDIpO1xuICB9XG4gIHJldHVybiBmb3JtYXRUaW1lem9uZShvZmZzZXQsIGRlbGltaXRlcik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFRpbWV6b25lKG9mZnNldCwgZGVsaW1pdGVyID0gXCJcIikge1xuICBjb25zdCBzaWduID0gb2Zmc2V0ID4gMCA/IFwiLVwiIDogXCIrXCI7XG4gIGNvbnN0IGFic09mZnNldCA9IE1hdGguYWJzKG9mZnNldCk7XG4gIGNvbnN0IGhvdXJzID0gYWRkTGVhZGluZ1plcm9zKE1hdGgudHJ1bmMoYWJzT2Zmc2V0IC8gNjApLCAyKTtcbiAgY29uc3QgbWludXRlcyA9IGFkZExlYWRpbmdaZXJvcyhhYnNPZmZzZXQgJSA2MCwgMik7XG4gIHJldHVybiBzaWduICsgaG91cnMgKyBkZWxpbWl0ZXIgKyBtaW51dGVzO1xufVxuIiwgImNvbnN0IGRhdGVMb25nRm9ybWF0dGVyID0gKHBhdHRlcm4sIGZvcm1hdExvbmcpID0+IHtcbiAgc3dpdGNoIChwYXR0ZXJuKSB7XG4gICAgY2FzZSBcIlBcIjpcbiAgICAgIHJldHVybiBmb3JtYXRMb25nLmRhdGUoeyB3aWR0aDogXCJzaG9ydFwiIH0pO1xuICAgIGNhc2UgXCJQUFwiOlxuICAgICAgcmV0dXJuIGZvcm1hdExvbmcuZGF0ZSh7IHdpZHRoOiBcIm1lZGl1bVwiIH0pO1xuICAgIGNhc2UgXCJQUFBcIjpcbiAgICAgIHJldHVybiBmb3JtYXRMb25nLmRhdGUoeyB3aWR0aDogXCJsb25nXCIgfSk7XG4gICAgY2FzZSBcIlBQUFBcIjpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZvcm1hdExvbmcuZGF0ZSh7IHdpZHRoOiBcImZ1bGxcIiB9KTtcbiAgfVxufTtcblxuY29uc3QgdGltZUxvbmdGb3JtYXR0ZXIgPSAocGF0dGVybiwgZm9ybWF0TG9uZykgPT4ge1xuICBzd2l0Y2ggKHBhdHRlcm4pIHtcbiAgICBjYXNlIFwicFwiOlxuICAgICAgcmV0dXJuIGZvcm1hdExvbmcudGltZSh7IHdpZHRoOiBcInNob3J0XCIgfSk7XG4gICAgY2FzZSBcInBwXCI6XG4gICAgICByZXR1cm4gZm9ybWF0TG9uZy50aW1lKHsgd2lkdGg6IFwibWVkaXVtXCIgfSk7XG4gICAgY2FzZSBcInBwcFwiOlxuICAgICAgcmV0dXJuIGZvcm1hdExvbmcudGltZSh7IHdpZHRoOiBcImxvbmdcIiB9KTtcbiAgICBjYXNlIFwicHBwcFwiOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZm9ybWF0TG9uZy50aW1lKHsgd2lkdGg6IFwiZnVsbFwiIH0pO1xuICB9XG59O1xuXG5jb25zdCBkYXRlVGltZUxvbmdGb3JtYXR0ZXIgPSAocGF0dGVybiwgZm9ybWF0TG9uZykgPT4ge1xuICBjb25zdCBtYXRjaFJlc3VsdCA9IHBhdHRlcm4ubWF0Y2goLyhQKykocCspPy8pIHx8IFtdO1xuICBjb25zdCBkYXRlUGF0dGVybiA9IG1hdGNoUmVzdWx0WzFdO1xuICBjb25zdCB0aW1lUGF0dGVybiA9IG1hdGNoUmVzdWx0WzJdO1xuXG4gIGlmICghdGltZVBhdHRlcm4pIHtcbiAgICByZXR1cm4gZGF0ZUxvbmdGb3JtYXR0ZXIocGF0dGVybiwgZm9ybWF0TG9uZyk7XG4gIH1cblxuICBsZXQgZGF0ZVRpbWVGb3JtYXQ7XG5cbiAgc3dpdGNoIChkYXRlUGF0dGVybikge1xuICAgIGNhc2UgXCJQXCI6XG4gICAgICBkYXRlVGltZUZvcm1hdCA9IGZvcm1hdExvbmcuZGF0ZVRpbWUoeyB3aWR0aDogXCJzaG9ydFwiIH0pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcIlBQXCI6XG4gICAgICBkYXRlVGltZUZvcm1hdCA9IGZvcm1hdExvbmcuZGF0ZVRpbWUoeyB3aWR0aDogXCJtZWRpdW1cIiB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJQUFBcIjpcbiAgICAgIGRhdGVUaW1lRm9ybWF0ID0gZm9ybWF0TG9uZy5kYXRlVGltZSh7IHdpZHRoOiBcImxvbmdcIiB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJQUFBQXCI6XG4gICAgZGVmYXVsdDpcbiAgICAgIGRhdGVUaW1lRm9ybWF0ID0gZm9ybWF0TG9uZy5kYXRlVGltZSh7IHdpZHRoOiBcImZ1bGxcIiB9KTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGRhdGVUaW1lRm9ybWF0XG4gICAgLnJlcGxhY2UoXCJ7e2RhdGV9fVwiLCBkYXRlTG9uZ0Zvcm1hdHRlcihkYXRlUGF0dGVybiwgZm9ybWF0TG9uZykpXG4gICAgLnJlcGxhY2UoXCJ7e3RpbWV9fVwiLCB0aW1lTG9uZ0Zvcm1hdHRlcih0aW1lUGF0dGVybiwgZm9ybWF0TG9uZykpO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvbmdGb3JtYXR0ZXJzID0ge1xuICBwOiB0aW1lTG9uZ0Zvcm1hdHRlcixcbiAgUDogZGF0ZVRpbWVMb25nRm9ybWF0dGVyLFxufTtcbiIsICJjb25zdCBkYXlPZlllYXJUb2tlblJFID0gL15EKyQvO1xuY29uc3Qgd2Vla1llYXJUb2tlblJFID0gL15ZKyQvO1xuXG5jb25zdCB0aHJvd1Rva2VucyA9IFtcIkRcIiwgXCJERFwiLCBcIllZXCIsIFwiWVlZWVwiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvdGVjdGVkRGF5T2ZZZWFyVG9rZW4odG9rZW4pIHtcbiAgcmV0dXJuIGRheU9mWWVhclRva2VuUkUudGVzdCh0b2tlbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4odG9rZW4pIHtcbiAgcmV0dXJuIHdlZWtZZWFyVG9rZW5SRS50ZXN0KHRva2VuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhcm5PclRocm93UHJvdGVjdGVkRXJyb3IodG9rZW4sIGZvcm1hdCwgaW5wdXQpIHtcbiAgY29uc3QgX21lc3NhZ2UgPSBtZXNzYWdlKHRva2VuLCBmb3JtYXQsIGlucHV0KTtcbiAgY29uc29sZS53YXJuKF9tZXNzYWdlKTtcbiAgaWYgKHRocm93VG9rZW5zLmluY2x1ZGVzKHRva2VuKSkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoX21lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiBtZXNzYWdlKHRva2VuLCBmb3JtYXQsIGlucHV0KSB7XG4gIGNvbnN0IHN1YmplY3QgPSB0b2tlblswXSA9PT0gXCJZXCIgPyBcInllYXJzXCIgOiBcImRheXMgb2YgdGhlIG1vbnRoXCI7XG4gIHJldHVybiBgVXNlIFxcYCR7dG9rZW4udG9Mb3dlckNhc2UoKX1cXGAgaW5zdGVhZCBvZiBcXGAke3Rva2VufVxcYCAoaW4gXFxgJHtmb3JtYXR9XFxgKSBmb3IgZm9ybWF0dGluZyAke3N1YmplY3R9IHRvIHRoZSBpbnB1dCBcXGAke2lucHV0fVxcYDsgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kYDtcbn1cbiIsICJpbXBvcnQgeyBkZWZhdWx0TG9jYWxlIH0gZnJvbSBcIi4vX2xpYi9kZWZhdWx0TG9jYWxlLmpzXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0T3B0aW9ucyB9IGZyb20gXCIuL19saWIvZGVmYXVsdE9wdGlvbnMuanNcIjtcbmltcG9ydCB7IGZvcm1hdHRlcnMgfSBmcm9tIFwiLi9fbGliL2Zvcm1hdC9mb3JtYXR0ZXJzLmpzXCI7XG5pbXBvcnQgeyBsb25nRm9ybWF0dGVycyB9IGZyb20gXCIuL19saWIvZm9ybWF0L2xvbmdGb3JtYXR0ZXJzLmpzXCI7XG5pbXBvcnQge1xuICBpc1Byb3RlY3RlZERheU9mWWVhclRva2VuLFxuICBpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4sXG4gIHdhcm5PclRocm93UHJvdGVjdGVkRXJyb3IsXG59IGZyb20gXCIuL19saWIvcHJvdGVjdGVkVG9rZW5zLmpzXCI7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSBcIi4vaXNWYWxpZC5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8vIFJleHBvcnRzIG9mIGludGVybmFsIGZvciBsaWJyYXJpZXMgdG8gdXNlLlxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzM2MzgjaXNzdWVjb21tZW50LTE4NzcwODI4NzRcbmV4cG9ydCB7IGZvcm1hdHRlcnMsIGxvbmdGb3JtYXR0ZXJzIH07XG5cbi8vIFRoaXMgUmVnRXhwIGNvbnNpc3RzIG9mIHRocmVlIHBhcnRzIHNlcGFyYXRlZCBieSBgfGA6XG4vLyAtIFt5WVFxTUx3SWREZWNpaEhLa21zXW8gbWF0Y2hlcyBhbnkgYXZhaWxhYmxlIG9yZGluYWwgbnVtYmVyIHRva2VuXG4vLyAgIChvbmUgb2YgdGhlIGNlcnRhaW4gbGV0dGVycyBmb2xsb3dlZCBieSBgb2ApXG4vLyAtIChcXHcpXFwxKiBtYXRjaGVzIGFueSBzZXF1ZW5jZXMgb2YgdGhlIHNhbWUgbGV0dGVyXG4vLyAtICcnIG1hdGNoZXMgdHdvIHF1b3RlIGNoYXJhY3RlcnMgaW4gYSByb3dcbi8vIC0gJygnJ3xbXiddKSsoJ3wkKSBtYXRjaGVzIGFueXRoaW5nIHN1cnJvdW5kZWQgYnkgdHdvIHF1b3RlIGNoYXJhY3RlcnMgKCcpLFxuLy8gICBleGNlcHQgYSBzaW5nbGUgcXVvdGUgc3ltYm9sLCB3aGljaCBlbmRzIHRoZSBzZXF1ZW5jZS5cbi8vICAgVHdvIHF1b3RlIGNoYXJhY3RlcnMgZG8gbm90IGVuZCB0aGUgc2VxdWVuY2UuXG4vLyAgIElmIHRoZXJlIGlzIG5vIG1hdGNoaW5nIHNpbmdsZSBxdW90ZVxuLy8gICB0aGVuIHRoZSBzZXF1ZW5jZSB3aWxsIGNvbnRpbnVlIHVudGlsIHRoZSBlbmQgb2YgdGhlIHN0cmluZy5cbi8vIC0gLiBtYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyIHVubWF0Y2hlZCBieSBwcmV2aW91cyBwYXJ0cyBvZiB0aGUgUmVnRXhwc1xuY29uc3QgZm9ybWF0dGluZ1Rva2Vuc1JlZ0V4cCA9XG4gIC9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcXHcpXFwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZztcblxuLy8gVGhpcyBSZWdFeHAgY2F0Y2hlcyBzeW1ib2xzIGVzY2FwZWQgYnkgcXVvdGVzLCBhbmQgYWxzb1xuLy8gc2VxdWVuY2VzIG9mIHN5bWJvbHMgUCwgcCwgYW5kIHRoZSBjb21iaW5hdGlvbnMgbGlrZSBgUFBQUFBQUHBwcHBwYFxuY29uc3QgbG9uZ0Zvcm1hdHRpbmdUb2tlbnNSZWdFeHAgPSAvUCtwK3xQK3xwK3wnJ3wnKCcnfFteJ10pKygnfCQpfC4vZztcblxuY29uc3QgZXNjYXBlZFN0cmluZ1JlZ0V4cCA9IC9eJyhbXl0qPyknPyQvO1xuY29uc3QgZG91YmxlUXVvdGVSZWdFeHAgPSAvJycvZztcbmNvbnN0IHVuZXNjYXBlZExhdGluQ2hhcmFjdGVyUmVnRXhwID0gL1thLXpBLVpdLztcblxuZXhwb3J0IHsgZm9ybWF0IGFzIGZvcm1hdERhdGUgfTtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGZvcm1hdH0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGZvcm1hdFxuICogQGFsaWFzIGZvcm1hdERhdGVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgRm9ybWF0IHRoZSBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBmb3JtYXR0ZWQgZGF0ZSBzdHJpbmcgaW4gdGhlIGdpdmVuIGZvcm1hdC4gVGhlIHJlc3VsdCBtYXkgdmFyeSBieSBsb2NhbGUuXG4gKlxuICogPiBcdTI2QTBcdUZFMEYgUGxlYXNlIG5vdGUgdGhhdCB0aGUgYGZvcm1hdGAgdG9rZW5zIGRpZmZlciBmcm9tIE1vbWVudC5qcyBhbmQgb3RoZXIgbGlicmFyaWVzLlxuICogPiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRcbiAqXG4gKiBUaGUgY2hhcmFjdGVycyB3cmFwcGVkIGJldHdlZW4gdHdvIHNpbmdsZSBxdW90ZXMgY2hhcmFjdGVycyAoJykgYXJlIGVzY2FwZWQuXG4gKiBUd28gc2luZ2xlIHF1b3RlcyBpbiBhIHJvdywgd2hldGhlciBpbnNpZGUgb3Igb3V0c2lkZSBhIHF1b3RlZCBzZXF1ZW5jZSwgcmVwcmVzZW50IGEgJ3JlYWwnIHNpbmdsZSBxdW90ZS5cbiAqIChzZWUgdGhlIGxhc3QgZXhhbXBsZSlcbiAqXG4gKiBGb3JtYXQgb2YgdGhlIHN0cmluZyBpcyBiYXNlZCBvbiBVbmljb2RlIFRlY2huaWNhbCBTdGFuZGFyZCAjMzU6XG4gKiBodHRwczovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvdHIzNS1kYXRlcy5odG1sI0RhdGVfRmllbGRfU3ltYm9sX1RhYmxlXG4gKiB3aXRoIGEgZmV3IGFkZGl0aW9ucyAoc2VlIG5vdGUgNyBiZWxvdyB0aGUgdGFibGUpLlxuICpcbiAqIEFjY2VwdGVkIHBhdHRlcm5zOlxuICogfCBVbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGF0dGVybiB8IFJlc3VsdCBleGFtcGxlcyAgICAgICAgICAgICAgICAgICB8IE5vdGVzIHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS18XG4gKiB8IEVyYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBHLi5HR0cgIHwgQUQsIEJDICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgR0dHRyAgICB8IEFubm8gRG9taW5pLCBCZWZvcmUgQ2hyaXN0ICAgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEdHR0dHICAgfCBBLCBCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IENhbGVuZGFyIHllYXIgICAgICAgICAgICAgICAgICAgfCB5ICAgICAgIHwgNDQsIDEsIDE5MDAsIDIwMTcgICAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgeW8gICAgICB8IDQ0dGgsIDFzdCwgMHRoLCAxN3RoICAgICAgICAgICAgICB8IDUsNyAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHl5ICAgICAgfCA0NCwgMDEsIDAwLCAxNyAgICAgICAgICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB5eXkgICAgIHwgMDQ0LCAwMDEsIDE5MDAsIDIwMTcgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgeXl5eSAgICB8IDAwNDQsIDAwMDEsIDE5MDAsIDIwMTcgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHl5eXl5ICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzLDUgICB8XG4gKiB8IExvY2FsIHdlZWstbnVtYmVyaW5nIHllYXIgICAgICAgfCBZICAgICAgIHwgNDQsIDEsIDE5MDAsIDIwMTcgICAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWW8gICAgICB8IDQ0dGgsIDFzdCwgMTkwMHRoLCAyMDE3dGggICAgICAgICB8IDUsNyAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFlZICAgICAgfCA0NCwgMDEsIDAwLCAxNyAgICAgICAgICAgICAgICAgICAgfCA1LDggICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBZWVkgICAgIHwgMDQ0LCAwMDEsIDE5MDAsIDIwMTcgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWVlZWSAgICB8IDAwNDQsIDAwMDEsIDE5MDAsIDIwMTcgICAgICAgICAgICB8IDUsOCAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFlZWVlZICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzLDUgICB8XG4gKiB8IElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyICAgICAgICAgfCBSICAgICAgIHwgLTQzLCAwLCAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgIHwgNSw3ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUlIgICAgICB8IC00MywgMDAsIDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICB8IDUsNyAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJSUiAgICAgfCAtMDQzLCAwMDAsIDAwMSwgMTkwMCwgMjAxNyAgICAgICAgfCA1LDcgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBSUlJSICAgIHwgLTAwNDMsIDAwMDAsIDAwMDEsIDE5MDAsIDIwMTcgICAgIHwgNSw3ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUlJSUlIgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMsNSw3IHxcbiAqIHwgRXh0ZW5kZWQgeWVhciAgICAgICAgICAgICAgICAgICB8IHUgICAgICAgfCAtNDMsIDAsIDEsIDE5MDAsIDIwMTcgICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB1dSAgICAgIHwgLTQzLCAwMSwgMTkwMCwgMjAxNyAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdXV1ICAgICB8IC0wNDMsIDAwMSwgMTkwMCwgMjAxNyAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHV1dXUgICAgfCAtMDA0MywgMDAwMSwgMTkwMCwgMjAxNyAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB1dXV1dSAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMyw1ICAgfFxuICogfCBRdWFydGVyIChmb3JtYXR0aW5nKSAgICAgICAgICAgIHwgUSAgICAgICB8IDEsIDIsIDMsIDQgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFFvICAgICAgfCAxc3QsIDJuZCwgM3JkLCA0dGggICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBRUSAgICAgIHwgMDEsIDAyLCAwMywgMDQgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUVFRICAgICB8IFExLCBRMiwgUTMsIFE0ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFFRUVEgICAgfCAxc3QgcXVhcnRlciwgMm5kIHF1YXJ0ZXIsIC4uLiAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBRUVFRUSAgIHwgMSwgMiwgMywgNCAgICAgICAgICAgICAgICAgICAgICAgIHwgNCAgICAgfFxuICogfCBRdWFydGVyIChzdGFuZC1hbG9uZSkgICAgICAgICAgIHwgcSAgICAgICB8IDEsIDIsIDMsIDQgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHFvICAgICAgfCAxc3QsIDJuZCwgM3JkLCA0dGggICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBxcSAgICAgIHwgMDEsIDAyLCAwMywgMDQgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcXFxICAgICB8IFExLCBRMiwgUTMsIFE0ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHFxcXEgICAgfCAxc3QgcXVhcnRlciwgMm5kIHF1YXJ0ZXIsIC4uLiAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBxcXFxcSAgIHwgMSwgMiwgMywgNCAgICAgICAgICAgICAgICAgICAgICAgIHwgNCAgICAgfFxuICogfCBNb250aCAoZm9ybWF0dGluZykgICAgICAgICAgICAgIHwgTSAgICAgICB8IDEsIDIsIC4uLiwgMTIgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vICAgICAgfCAxc3QsIDJuZCwgLi4uLCAxMnRoICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNTSAgICAgIHwgMDEsIDAyLCAuLi4sIDEyICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTU1NICAgICB8IEphbiwgRmViLCAuLi4sIERlYyAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1NTU0gICAgfCBKYW51YXJ5LCBGZWJydWFyeSwgLi4uLCBEZWNlbWJlciAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNTU1NTSAgIHwgSiwgRiwgLi4uLCBEICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBNb250aCAoc3RhbmQtYWxvbmUpICAgICAgICAgICAgIHwgTCAgICAgICB8IDEsIDIsIC4uLiwgMTIgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExvICAgICAgfCAxc3QsIDJuZCwgLi4uLCAxMnRoICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMTCAgICAgIHwgMDEsIDAyLCAuLi4sIDEyICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTExMICAgICB8IEphbiwgRmViLCAuLi4sIERlYyAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExMTEwgICAgfCBKYW51YXJ5LCBGZWJydWFyeSwgLi4uLCBEZWNlbWJlciAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMTExMTCAgIHwgSiwgRiwgLi4uLCBEICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBMb2NhbCB3ZWVrIG9mIHllYXIgICAgICAgICAgICAgIHwgdyAgICAgICB8IDEsIDIsIC4uLiwgNTMgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHdvICAgICAgfCAxc3QsIDJuZCwgLi4uLCA1M3RoICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB3dyAgICAgIHwgMDEsIDAyLCAuLi4sIDUzICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBJU08gd2VlayBvZiB5ZWFyICAgICAgICAgICAgICAgIHwgSSAgICAgICB8IDEsIDIsIC4uLiwgNTMgICAgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IElvICAgICAgfCAxc3QsIDJuZCwgLi4uLCA1M3RoICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBJSSAgICAgIHwgMDEsIDAyLCAuLi4sIDUzICAgICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCBEYXkgb2YgbW9udGggICAgICAgICAgICAgICAgICAgIHwgZCAgICAgICB8IDEsIDIsIC4uLiwgMzEgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGRvICAgICAgfCAxc3QsIDJuZCwgLi4uLCAzMXN0ICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkZCAgICAgIHwgMDEsIDAyLCAuLi4sIDMxICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBEYXkgb2YgeWVhciAgICAgICAgICAgICAgICAgICAgIHwgRCAgICAgICB8IDEsIDIsIC4uLiwgMzY1LCAzNjYgICAgICAgICAgICAgICB8IDkgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERvICAgICAgfCAxc3QsIDJuZCwgLi4uLCAzNjV0aCwgMzY2dGggICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBERCAgICAgIHwgMDEsIDAyLCAuLi4sIDM2NSwgMzY2ICAgICAgICAgICAgIHwgOSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgREREICAgICB8IDAwMSwgMDAyLCAuLi4sIDM2NSwgMzY2ICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEREREQgICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzICAgICB8XG4gKiB8IERheSBvZiB3ZWVrIChmb3JtYXR0aW5nKSAgICAgICAgfCBFLi5FRUUgIHwgTW9uLCBUdWUsIFdlZCwgLi4uLCBTdW4gICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRUVFRSAgICB8IE1vbmRheSwgVHVlc2RheSwgLi4uLCBTdW5kYXkgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEVFRUVFICAgfCBNLCBULCBXLCBULCBGLCBTLCBTICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFRUVFRUUgIHwgTW8sIFR1LCBXZSwgVGgsIEZyLCBTYSwgU3UgICAgICAgIHwgICAgICAgfFxuICogfCBJU08gZGF5IG9mIHdlZWsgKGZvcm1hdHRpbmcpICAgIHwgaSAgICAgICB8IDEsIDIsIDMsIC4uLiwgNyAgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGlvICAgICAgfCAxc3QsIDJuZCwgLi4uLCA3dGggICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpaSAgICAgIHwgMDEsIDAyLCAuLi4sIDA3ICAgICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaWlpICAgICB8IE1vbiwgVHVlLCBXZWQsIC4uLiwgU3VuICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGlpaWkgICAgfCBNb25kYXksIFR1ZXNkYXksIC4uLiwgU3VuZGF5ICAgICAgfCAyLDcgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpaWlpaSAgIHwgTSwgVCwgVywgVCwgRiwgUywgUyAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaWlpaWlpICB8IE1vLCBUdSwgV2UsIFRoLCBGciwgU2EsIFN1ICAgICAgICB8IDcgICAgIHxcbiAqIHwgTG9jYWwgZGF5IG9mIHdlZWsgKGZvcm1hdHRpbmcpICB8IGUgICAgICAgfCAyLCAzLCA0LCAuLi4sIDEgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBlbyAgICAgIHwgMm5kLCAzcmQsIC4uLiwgMXN0ICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZWUgICAgICB8IDAyLCAwMywgLi4uLCAwMSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGVlZSAgICAgfCBNb24sIFR1ZSwgV2VkLCAuLi4sIFN1biAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBlZWVlICAgIHwgTW9uZGF5LCBUdWVzZGF5LCAuLi4sIFN1bmRheSAgICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZWVlZWUgICB8IE0sIFQsIFcsIFQsIEYsIFMsIFMgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGVlZWVlZSAgfCBNbywgVHUsIFdlLCBUaCwgRnIsIFNhLCBTdSAgICAgICAgfCAgICAgICB8XG4gKiB8IExvY2FsIGRheSBvZiB3ZWVrIChzdGFuZC1hbG9uZSkgfCBjICAgICAgIHwgMiwgMywgNCwgLi4uLCAxICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY28gICAgICB8IDJuZCwgM3JkLCAuLi4sIDFzdCAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGNjICAgICAgfCAwMiwgMDMsIC4uLiwgMDEgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjY2MgICAgIHwgTW9uLCBUdWUsIFdlZCwgLi4uLCBTdW4gICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2NjYyAgICB8IE1vbmRheSwgVHVlc2RheSwgLi4uLCBTdW5kYXkgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGNjY2NjICAgfCBNLCBULCBXLCBULCBGLCBTLCBTICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjY2NjY2MgIHwgTW8sIFR1LCBXZSwgVGgsIEZyLCBTYSwgU3UgICAgICAgIHwgICAgICAgfFxuICogfCBBTSwgUE0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgYS4uYWEgICB8IEFNLCBQTSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFhYSAgICAgfCBhbSwgcG0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhYWFhICAgIHwgYS5tLiwgcC5tLiAgICAgICAgICAgICAgICAgICAgICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYWFhYWEgICB8IGEsIHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgQU0sIFBNLCBub29uLCBtaWRuaWdodCAgICAgICAgICB8IGIuLmJiICAgfCBBTSwgUE0sIG5vb24sIG1pZG5pZ2h0ICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBiYmIgICAgIHwgYW0sIHBtLCBub29uLCBtaWRuaWdodCAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYmJiYiAgICB8IGEubS4sIHAubS4sIG5vb24sIG1pZG5pZ2h0ICAgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGJiYmJiICAgfCBhLCBwLCBuLCBtaSAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEZsZXhpYmxlIGRheSBwZXJpb2QgICAgICAgICAgICAgfCBCLi5CQkIgIHwgYXQgbmlnaHQsIGluIHRoZSBtb3JuaW5nLCAuLi4gICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQkJCQiAgICB8IGF0IG5pZ2h0LCBpbiB0aGUgbW9ybmluZywgLi4uICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJCQkJCICAgfCBhdCBuaWdodCwgaW4gdGhlIG1vcm5pbmcsIC4uLiAgICAgfCAgICAgICB8XG4gKiB8IEhvdXIgWzEtMTJdICAgICAgICAgICAgICAgICAgICAgfCBoICAgICAgIHwgMSwgMiwgLi4uLCAxMSwgMTIgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaG8gICAgICB8IDFzdCwgMm5kLCAuLi4sIDExdGgsIDEydGggICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGhoICAgICAgfCAwMSwgMDIsIC4uLiwgMTEsIDEyICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEhvdXIgWzAtMjNdICAgICAgICAgICAgICAgICAgICAgfCBIICAgICAgIHwgMCwgMSwgMiwgLi4uLCAyMyAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgSG8gICAgICB8IDB0aCwgMXN0LCAybmQsIC4uLiwgMjNyZCAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEhIICAgICAgfCAwMCwgMDEsIDAyLCAuLi4sIDIzICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEhvdXIgWzAtMTFdICAgICAgICAgICAgICAgICAgICAgfCBLICAgICAgIHwgMSwgMiwgLi4uLCAxMSwgMCAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgS28gICAgICB8IDFzdCwgMm5kLCAuLi4sIDExdGgsIDB0aCAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEtLICAgICAgfCAwMSwgMDIsIC4uLiwgMTEsIDAwICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEhvdXIgWzEtMjRdICAgICAgICAgICAgICAgICAgICAgfCBrICAgICAgIHwgMjQsIDEsIDIsIC4uLiwgMjMgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwga28gICAgICB8IDI0dGgsIDFzdCwgMm5kLCAuLi4sIDIzcmQgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGtrICAgICAgfCAyNCwgMDEsIDAyLCAuLi4sIDIzICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IE1pbnV0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtICAgICAgIHwgMCwgMSwgLi4uLCA1OSAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbW8gICAgICB8IDB0aCwgMXN0LCAuLi4sIDU5dGggICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1tICAgICAgfCAwMCwgMDEsIC4uLiwgNTkgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IFNlY29uZCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzICAgICAgIHwgMCwgMSwgLi4uLCA1OSAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc28gICAgICB8IDB0aCwgMXN0LCAuLi4sIDU5dGggICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNzICAgICAgfCAwMCwgMDEsIC4uLiwgNTkgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEZyYWN0aW9uIG9mIHNlY29uZCAgICAgICAgICAgICAgfCBTICAgICAgIHwgMCwgMSwgLi4uLCA5ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU1MgICAgICB8IDAwLCAwMSwgLi4uLCA5OSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNTUyAgICAgfCAwMDAsIDAwMSwgLi4uLCA5OTkgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTU1NTICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMyAgICAgfFxuICogfCBUaW1lem9uZSAoSVNPLTg2MDEgdy8gWikgICAgICAgIHwgWCAgICAgICB8IC0wOCwgKzA1MzAsIFogICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFhYICAgICAgfCAtMDgwMCwgKzA1MzAsIFogICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBYWFggICAgIHwgLTA4OjAwLCArMDU6MzAsIFogICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWFhYWCAgICB8IC0wODAwLCArMDUzMCwgWiwgKzEyMzQ1NiAgICAgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFhYWFhYICAgfCAtMDg6MDAsICswNTozMCwgWiwgKzEyOjM0OjU2ICAgICAgfCAgICAgICB8XG4gKiB8IFRpbWV6b25lIChJU08tODYwMSB3L28gWikgICAgICAgfCB4ICAgICAgIHwgLTA4LCArMDUzMCwgKzAwICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgeHggICAgICB8IC0wODAwLCArMDUzMCwgKzAwMDAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHh4eCAgICAgfCAtMDg6MDAsICswNTozMCwgKzAwOjAwICAgICAgICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB4eHh4ICAgIHwgLTA4MDAsICswNTMwLCArMDAwMCwgKzEyMzQ1NiAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgeHh4eHggICB8IC0wODowMCwgKzA1OjMwLCArMDA6MDAsICsxMjozNDo1NiB8ICAgICAgIHxcbiAqIHwgVGltZXpvbmUgKEdNVCkgICAgICAgICAgICAgICAgICB8IE8uLi5PT08gfCBHTVQtOCwgR01UKzU6MzAsIEdNVCswICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBPT09PICAgIHwgR01ULTA4OjAwLCBHTVQrMDU6MzAsIEdNVCswMDowMCAgIHwgMiAgICAgfFxuICogfCBUaW1lem9uZSAoc3BlY2lmaWMgbm9uLWxvY2F0LikgIHwgei4uLnp6eiB8IEdNVC04LCBHTVQrNTozMCwgR01UKzAgICAgICAgICAgICB8IDYgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHp6enogICAgfCBHTVQtMDg6MDAsIEdNVCswNTozMCwgR01UKzAwOjAwICAgfCAyLDYgICB8XG4gKiB8IFNlY29uZHMgdGltZXN0YW1wICAgICAgICAgICAgICAgfCB0ICAgICAgIHwgNTEyOTY5NTIwICAgICAgICAgICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHQgICAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMsNyAgIHxcbiAqIHwgTWlsbGlzZWNvbmRzIHRpbWVzdGFtcCAgICAgICAgICB8IFQgICAgICAgfCA1MTI5Njk1MjA5MDAgICAgICAgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUVCAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMyw3ICAgfFxuICogfCBMb25nIGxvY2FsaXplZCBkYXRlICAgICAgICAgICAgIHwgUCAgICAgICB8IDA0LzI5LzE0NTMgICAgICAgICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBQICAgICAgfCBBcHIgMjksIDE0NTMgICAgICAgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQUFAgICAgIHwgQXByaWwgMjl0aCwgMTQ1MyAgICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUFBQUCAgICB8IEZyaWRheSwgQXByaWwgMjl0aCwgMTQ1MyAgICAgICAgICB8IDIsNyAgIHxcbiAqIHwgTG9uZyBsb2NhbGl6ZWQgdGltZSAgICAgICAgICAgICB8IHAgICAgICAgfCAxMjowMCBBTSAgICAgICAgICAgICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwcCAgICAgIHwgMTI6MDA6MDAgQU0gICAgICAgICAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcHBwICAgICB8IDEyOjAwOjAwIEFNIEdNVCsyICAgICAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBwcHAgICAgfCAxMjowMDowMCBBTSBHTVQrMDI6MDAgICAgICAgICAgICAgfCAyLDcgICB8XG4gKiB8IENvbWJpbmF0aW9uIG9mIGRhdGUgYW5kIHRpbWUgICAgfCBQcCAgICAgIHwgMDQvMjkvMTQ1MywgMTI6MDAgQU0gICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUFBwcCAgICB8IEFwciAyOSwgMTQ1MywgMTI6MDA6MDAgQU0gICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBQUHBwcCAgfCBBcHJpbCAyOXRoLCAxNDUzIGF0IC4uLiAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQUFBQcHBwcHwgRnJpZGF5LCBBcHJpbCAyOXRoLCAxNDUzIGF0IC4uLiAgIHwgMiw3ICAgfFxuICogTm90ZXM6XG4gKiAxLiBcIkZvcm1hdHRpbmdcIiB1bml0cyAoZS5nLiBmb3JtYXR0aW5nIHF1YXJ0ZXIpIGluIHRoZSBkZWZhdWx0IGVuLVVTIGxvY2FsZVxuICogICAgYXJlIHRoZSBzYW1lIGFzIFwic3RhbmQtYWxvbmVcIiB1bml0cywgYnV0IGFyZSBkaWZmZXJlbnQgaW4gc29tZSBsYW5ndWFnZXMuXG4gKiAgICBcIkZvcm1hdHRpbmdcIiB1bml0cyBhcmUgZGVjbGluZWQgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBvZiB0aGUgbGFuZ3VhZ2VcbiAqICAgIGluIHRoZSBjb250ZXh0IG9mIGEgZGF0ZS4gXCJTdGFuZC1hbG9uZVwiIHVuaXRzIGFyZSBhbHdheXMgbm9taW5hdGl2ZSBzaW5ndWxhcjpcbiAqXG4gKiAgICBgZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDEwLCA2KSwgJ2RvIExMTEwnLCB7bG9jYWxlOiBjc30pIC8vPT4gJzYuIGxpc3RvcGFkJ2BcbiAqXG4gKiAgICBgZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDEwLCA2KSwgJ2RvIE1NTU0nLCB7bG9jYWxlOiBjc30pIC8vPT4gJzYuIGxpc3RvcGFkdSdgXG4gKlxuICogMi4gQW55IHNlcXVlbmNlIG9mIHRoZSBpZGVudGljYWwgbGV0dGVycyBpcyBhIHBhdHRlcm4sIHVubGVzcyBpdCBpcyBlc2NhcGVkIGJ5XG4gKiAgICB0aGUgc2luZ2xlIHF1b3RlIGNoYXJhY3RlcnMgKHNlZSBiZWxvdykuXG4gKiAgICBJZiB0aGUgc2VxdWVuY2UgaXMgbG9uZ2VyIHRoYW4gbGlzdGVkIGluIHRhYmxlIChlLmcuIGBFRUVFRUVFRUVFRWApXG4gKiAgICB0aGUgb3V0cHV0IHdpbGwgYmUgdGhlIHNhbWUgYXMgZGVmYXVsdCBwYXR0ZXJuIGZvciB0aGlzIHVuaXQsIHVzdWFsbHlcbiAqICAgIHRoZSBsb25nZXN0IG9uZSAoaW4gY2FzZSBvZiBJU08gd2Vla2RheXMsIGBFRUVFYCkuIERlZmF1bHQgcGF0dGVybnMgZm9yIHVuaXRzXG4gKiAgICBhcmUgbWFya2VkIHdpdGggXCIyXCIgaW4gdGhlIGxhc3QgY29sdW1uIG9mIHRoZSB0YWJsZS5cbiAqXG4gKiAgICBgZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDEwLCA2KSwgJ01NTScpIC8vPT4gJ05vdidgXG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdNTU1NJykgLy89PiAnTm92ZW1iZXInYFxuICpcbiAqICAgIGBmb3JtYXQobmV3IERhdGUoMjAxNywgMTAsIDYpLCAnTU1NTU0nKSAvLz0+ICdOJ2BcbiAqXG4gKiAgICBgZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDEwLCA2KSwgJ01NTU1NTScpIC8vPT4gJ05vdmVtYmVyJ2BcbiAqXG4gKiAgICBgZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDEwLCA2KSwgJ01NTU1NTU0nKSAvLz0+ICdOb3ZlbWJlcidgXG4gKlxuICogMy4gU29tZSBwYXR0ZXJucyBjb3VsZCBiZSB1bmxpbWl0ZWQgbGVuZ3RoIChzdWNoIGFzIGB5eXl5eXl5eWApLlxuICogICAgVGhlIG91dHB1dCB3aWxsIGJlIHBhZGRlZCB3aXRoIHplcm9zIHRvIG1hdGNoIHRoZSBsZW5ndGggb2YgdGhlIHBhdHRlcm4uXG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICd5eXl5eXl5eScpIC8vPT4gJzAwMDAyMDE3J2BcbiAqXG4gKiA0LiBgUVFRUVFgIGFuZCBgcXFxcXFgIGNvdWxkIGJlIG5vdCBzdHJpY3RseSBudW1lcmljYWwgaW4gc29tZSBsb2NhbGVzLlxuICogICAgVGhlc2UgdG9rZW5zIHJlcHJlc2VudCB0aGUgc2hvcnRlc3QgZm9ybSBvZiB0aGUgcXVhcnRlci5cbiAqXG4gKiA1LiBUaGUgbWFpbiBkaWZmZXJlbmNlIGJldHdlZW4gYHlgIGFuZCBgdWAgcGF0dGVybnMgYXJlIEIuQy4geWVhcnM6XG4gKlxuICogICAgfCBZZWFyIHwgYHlgIHwgYHVgIHxcbiAqICAgIHwtLS0tLS18LS0tLS18LS0tLS18XG4gKiAgICB8IEFDIDEgfCAgIDEgfCAgIDEgfFxuICogICAgfCBCQyAxIHwgICAxIHwgICAwIHxcbiAqICAgIHwgQkMgMiB8ICAgMiB8ICAtMSB8XG4gKlxuICogICAgQWxzbyBgeXlgIGFsd2F5cyByZXR1cm5zIHRoZSBsYXN0IHR3byBkaWdpdHMgb2YgYSB5ZWFyLFxuICogICAgd2hpbGUgYHV1YCBwYWRzIHNpbmdsZSBkaWdpdCB5ZWFycyB0byAyIGNoYXJhY3RlcnMgYW5kIHJldHVybnMgb3RoZXIgeWVhcnMgdW5jaGFuZ2VkOlxuICpcbiAqICAgIHwgWWVhciB8IGB5eWAgfCBgdXVgIHxcbiAqICAgIHwtLS0tLS18LS0tLS0tfC0tLS0tLXxcbiAqICAgIHwgMSAgICB8ICAgMDEgfCAgIDAxIHxcbiAqICAgIHwgMTQgICB8ICAgMTQgfCAgIDE0IHxcbiAqICAgIHwgMzc2ICB8ICAgNzYgfCAgMzc2IHxcbiAqICAgIHwgMTQ1MyB8ICAgNTMgfCAxNDUzIHxcbiAqXG4gKiAgICBUaGUgc2FtZSBkaWZmZXJlbmNlIGlzIHRydWUgZm9yIGxvY2FsIGFuZCBJU08gd2Vlay1udW1iZXJpbmcgeWVhcnMgKGBZYCBhbmQgYFJgKSxcbiAqICAgIGV4Y2VwdCBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFycyBhcmUgZGVwZW5kZW50IG9uIGBvcHRpb25zLndlZWtTdGFydHNPbmBcbiAqICAgIGFuZCBgb3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGVgIChjb21wYXJlIFtnZXRJU09XZWVrWWVhcl0oaHR0cHM6Ly9kYXRlLWZucy5vcmcvZG9jcy9nZXRJU09XZWVrWWVhcilcbiAqICAgIGFuZCBbZ2V0V2Vla1llYXJdKGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvZ2V0V2Vla1llYXIpKS5cbiAqXG4gKiA2LiBTcGVjaWZpYyBub24tbG9jYXRpb24gdGltZXpvbmVzIGFyZSBjdXJyZW50bHkgdW5hdmFpbGFibGUgaW4gYGRhdGUtZm5zYCxcbiAqICAgIHNvIHJpZ2h0IG5vdyB0aGVzZSB0b2tlbnMgZmFsbCBiYWNrIHRvIEdNVCB0aW1lem9uZXMuXG4gKlxuICogNy4gVGhlc2UgcGF0dGVybnMgYXJlIG5vdCBpbiB0aGUgVW5pY29kZSBUZWNobmljYWwgU3RhbmRhcmQgIzM1OlxuICogICAgLSBgaWA6IElTTyBkYXkgb2Ygd2Vla1xuICogICAgLSBgSWA6IElTTyB3ZWVrIG9mIHllYXJcbiAqICAgIC0gYFJgOiBJU08gd2Vlay1udW1iZXJpbmcgeWVhclxuICogICAgLSBgdGA6IHNlY29uZHMgdGltZXN0YW1wXG4gKiAgICAtIGBUYDogbWlsbGlzZWNvbmRzIHRpbWVzdGFtcFxuICogICAgLSBgb2A6IG9yZGluYWwgbnVtYmVyIG1vZGlmaWVyXG4gKiAgICAtIGBQYDogbG9uZyBsb2NhbGl6ZWQgZGF0ZVxuICogICAgLSBgcGA6IGxvbmcgbG9jYWxpemVkIHRpbWVcbiAqXG4gKiA4LiBgWVlgIGFuZCBgWVlZWWAgdG9rZW5zIHJlcHJlc2VudCB3ZWVrLW51bWJlcmluZyB5ZWFycyBidXQgdGhleSBhcmUgb2Z0ZW4gY29uZnVzZWQgd2l0aCB5ZWFycy5cbiAqICAgIFlvdSBzaG91bGQgZW5hYmxlIGBvcHRpb25zLnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2Vuc2AgdG8gdXNlIHRoZW0uIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZFxuICpcbiAqIDkuIGBEYCBhbmQgYEREYCB0b2tlbnMgcmVwcmVzZW50IGRheXMgb2YgdGhlIHllYXIgYnV0IHRoZXkgYXJlIG9mdGVuIGNvbmZ1c2VkIHdpdGggZGF5cyBvZiB0aGUgbW9udGguXG4gKiAgICBZb3Ugc2hvdWxkIGVuYWJsZSBgb3B0aW9ucy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zYCB0byB1c2UgdGhlbS4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIGZvcm1hdCAtIFRoZSBzdHJpbmcgb2YgdG9rZW5zXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGRhdGUgc3RyaW5nXG4gKlxuICogQHRocm93cyBgZGF0ZWAgbXVzdCBub3QgYmUgSW52YWxpZCBEYXRlXG4gKiBAdGhyb3dzIGBvcHRpb25zLmxvY2FsZWAgbXVzdCBjb250YWluIGBsb2NhbGl6ZWAgcHJvcGVydHlcbiAqIEB0aHJvd3MgYG9wdGlvbnMubG9jYWxlYCBtdXN0IGNvbnRhaW4gYGZvcm1hdExvbmdgIHByb3BlcnR5XG4gKiBAdGhyb3dzIHVzZSBgeXl5eWAgaW5zdGVhZCBvZiBgWVlZWWAgZm9yIGZvcm1hdHRpbmcgeWVhcnMgdXNpbmcgW2Zvcm1hdCBwcm92aWRlZF0gdG8gdGhlIGlucHV0IFtpbnB1dCBwcm92aWRlZF07IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZFxuICogQHRocm93cyB1c2UgYHl5YCBpbnN0ZWFkIG9mIGBZWWAgZm9yIGZvcm1hdHRpbmcgeWVhcnMgdXNpbmcgW2Zvcm1hdCBwcm92aWRlZF0gdG8gdGhlIGlucHV0IFtpbnB1dCBwcm92aWRlZF07IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZFxuICogQHRocm93cyB1c2UgYGRgIGluc3RlYWQgb2YgYERgIGZvciBmb3JtYXR0aW5nIGRheXMgb2YgdGhlIG1vbnRoIHVzaW5nIFtmb3JtYXQgcHJvdmlkZWRdIHRvIHRoZSBpbnB1dCBbaW5wdXQgcHJvdmlkZWRdOyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRcbiAqIEB0aHJvd3MgdXNlIGBkZGAgaW5zdGVhZCBvZiBgRERgIGZvciBmb3JtYXR0aW5nIGRheXMgb2YgdGhlIG1vbnRoIHVzaW5nIFtmb3JtYXQgcHJvdmlkZWRdIHRvIHRoZSBpbnB1dCBbaW5wdXQgcHJvdmlkZWRdOyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRcbiAqIEB0aHJvd3MgZm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFJlcHJlc2VudCAxMSBGZWJydWFyeSAyMDE0IGluIG1pZGRsZS1lbmRpYW4gZm9ybWF0OlxuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0KG5ldyBEYXRlKDIwMTQsIDEsIDExKSwgJ01NL2RkL3l5eXknKVxuICogLy89PiAnMDIvMTEvMjAxNCdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDIgSnVseSAyMDE0IGluIEVzcGVyYW50bzpcbiAqIGltcG9ydCB7IGVvTG9jYWxlIH0gZnJvbSAnZGF0ZS1mbnMvbG9jYWxlL2VvJ1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0KG5ldyBEYXRlKDIwMTQsIDYsIDIpLCBcImRvICdkZScgTU1NTSB5eXl5XCIsIHtcbiAqICAgbG9jYWxlOiBlb0xvY2FsZVxuICogfSlcbiAqIC8vPT4gJzItYSBkZSBqdWxpbyAyMDE0J1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFc2NhcGUgc3RyaW5nIGJ5IHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJzOlxuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0KG5ldyBEYXRlKDIwMTQsIDYsIDIsIDE1KSwgXCJoICdvJydjbG9jaydcIilcbiAqIC8vPT4gXCIzIG8nY2xvY2tcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0KGRhdGUsIGZvcm1hdFN0ciwgb3B0aW9ucykge1xuICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IGdldERlZmF1bHRPcHRpb25zKCk7XG4gIGNvbnN0IGxvY2FsZSA9IG9wdGlvbnM/LmxvY2FsZSA/PyBkZWZhdWx0T3B0aW9ucy5sb2NhbGUgPz8gZGVmYXVsdExvY2FsZTtcblxuICBjb25zdCBmaXJzdFdlZWtDb250YWluc0RhdGUgPVxuICAgIG9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA/P1xuICAgIG9wdGlvbnM/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlID8/XG4gICAgZGVmYXVsdE9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlID8/XG4gICAgZGVmYXVsdE9wdGlvbnMubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGUgPz9cbiAgICAxO1xuXG4gIGNvbnN0IHdlZWtTdGFydHNPbiA9XG4gICAgb3B0aW9ucz8ud2Vla1N0YXJ0c09uID8/XG4gICAgb3B0aW9ucz8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24gPz9cbiAgICBkZWZhdWx0T3B0aW9ucy53ZWVrU3RhcnRzT24gPz9cbiAgICBkZWZhdWx0T3B0aW9ucy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbiA/P1xuICAgIDA7XG5cbiAgY29uc3Qgb3JpZ2luYWxEYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcblxuICBpZiAoIWlzVmFsaWQob3JpZ2luYWxEYXRlKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiSW52YWxpZCB0aW1lIHZhbHVlXCIpO1xuICB9XG5cbiAgbGV0IHBhcnRzID0gZm9ybWF0U3RyXG4gICAgLm1hdGNoKGxvbmdGb3JtYXR0aW5nVG9rZW5zUmVnRXhwKVxuICAgIC5tYXAoKHN1YnN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZmlyc3RDaGFyYWN0ZXIgPSBzdWJzdHJpbmdbMF07XG4gICAgICBpZiAoZmlyc3RDaGFyYWN0ZXIgPT09IFwicFwiIHx8IGZpcnN0Q2hhcmFjdGVyID09PSBcIlBcIikge1xuICAgICAgICBjb25zdCBsb25nRm9ybWF0dGVyID0gbG9uZ0Zvcm1hdHRlcnNbZmlyc3RDaGFyYWN0ZXJdO1xuICAgICAgICByZXR1cm4gbG9uZ0Zvcm1hdHRlcihzdWJzdHJpbmcsIGxvY2FsZS5mb3JtYXRMb25nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdWJzdHJpbmc7XG4gICAgfSlcbiAgICAuam9pbihcIlwiKVxuICAgIC5tYXRjaChmb3JtYXR0aW5nVG9rZW5zUmVnRXhwKVxuICAgIC5tYXAoKHN1YnN0cmluZykgPT4ge1xuICAgICAgLy8gUmVwbGFjZSB0d28gc2luZ2xlIHF1b3RlIGNoYXJhY3RlcnMgd2l0aCBvbmUgc2luZ2xlIHF1b3RlIGNoYXJhY3RlclxuICAgICAgaWYgKHN1YnN0cmluZyA9PT0gXCInJ1wiKSB7XG4gICAgICAgIHJldHVybiB7IGlzVG9rZW46IGZhbHNlLCB2YWx1ZTogXCInXCIgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlyc3RDaGFyYWN0ZXIgPSBzdWJzdHJpbmdbMF07XG4gICAgICBpZiAoZmlyc3RDaGFyYWN0ZXIgPT09IFwiJ1wiKSB7XG4gICAgICAgIHJldHVybiB7IGlzVG9rZW46IGZhbHNlLCB2YWx1ZTogY2xlYW5Fc2NhcGVkU3RyaW5nKHN1YnN0cmluZykgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZvcm1hdHRlcnNbZmlyc3RDaGFyYWN0ZXJdKSB7XG4gICAgICAgIHJldHVybiB7IGlzVG9rZW46IHRydWUsIHZhbHVlOiBzdWJzdHJpbmcgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpcnN0Q2hhcmFjdGVyLm1hdGNoKHVuZXNjYXBlZExhdGluQ2hhcmFjdGVyUmVnRXhwKSkge1xuICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcbiAgICAgICAgICBcIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgXCIgK1xuICAgICAgICAgICAgZmlyc3RDaGFyYWN0ZXIgK1xuICAgICAgICAgICAgXCJgXCIsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IGlzVG9rZW46IGZhbHNlLCB2YWx1ZTogc3Vic3RyaW5nIH07XG4gICAgfSk7XG5cbiAgLy8gaW52b2tlIGxvY2FsaXplIHByZXByb2Nlc3NvciAob25seSBmb3IgZnJlbmNoIGxvY2FsZXMgYXQgdGhlIG1vbWVudClcbiAgaWYgKGxvY2FsZS5sb2NhbGl6ZS5wcmVwcm9jZXNzb3IpIHtcbiAgICBwYXJ0cyA9IGxvY2FsZS5sb2NhbGl6ZS5wcmVwcm9jZXNzb3Iob3JpZ2luYWxEYXRlLCBwYXJ0cyk7XG4gIH1cblxuICBjb25zdCBmb3JtYXR0ZXJPcHRpb25zID0ge1xuICAgIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSxcbiAgICB3ZWVrU3RhcnRzT24sXG4gICAgbG9jYWxlLFxuICB9O1xuXG4gIHJldHVybiBwYXJ0c1xuICAgIC5tYXAoKHBhcnQpID0+IHtcbiAgICAgIGlmICghcGFydC5pc1Rva2VuKSByZXR1cm4gcGFydC52YWx1ZTtcblxuICAgICAgY29uc3QgdG9rZW4gPSBwYXJ0LnZhbHVlO1xuXG4gICAgICBpZiAoXG4gICAgICAgICghb3B0aW9ucz8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zICYmXG4gICAgICAgICAgaXNQcm90ZWN0ZWRXZWVrWWVhclRva2VuKHRva2VuKSkgfHxcbiAgICAgICAgKCFvcHRpb25zPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zICYmXG4gICAgICAgICAgaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbih0b2tlbikpXG4gICAgICApIHtcbiAgICAgICAgd2Fybk9yVGhyb3dQcm90ZWN0ZWRFcnJvcih0b2tlbiwgZm9ybWF0U3RyLCBTdHJpbmcoZGF0ZSkpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmb3JtYXR0ZXIgPSBmb3JtYXR0ZXJzW3Rva2VuWzBdXTtcbiAgICAgIHJldHVybiBmb3JtYXR0ZXIob3JpZ2luYWxEYXRlLCB0b2tlbiwgbG9jYWxlLmxvY2FsaXplLCBmb3JtYXR0ZXJPcHRpb25zKTtcbiAgICB9KVxuICAgIC5qb2luKFwiXCIpO1xufVxuXG5mdW5jdGlvbiBjbGVhbkVzY2FwZWRTdHJpbmcoaW5wdXQpIHtcbiAgY29uc3QgbWF0Y2hlZCA9IGlucHV0Lm1hdGNoKGVzY2FwZWRTdHJpbmdSZWdFeHApO1xuXG4gIGlmICghbWF0Y2hlZCkge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuXG4gIHJldHVybiBtYXRjaGVkWzFdLnJlcGxhY2UoZG91YmxlUXVvdGVSZWdFeHAsIFwiJ1wiKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBmb3JtYXQ7XG4iLCAiaW1wb3J0IHsgZGVmYXVsdExvY2FsZSB9IGZyb20gXCIuL19saWIvZGVmYXVsdExvY2FsZS5qc1wiO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdE9wdGlvbnMgfSBmcm9tIFwiLi9fbGliL2RlZmF1bHRPcHRpb25zLmpzXCI7XG5pbXBvcnQgeyBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIH0gZnJvbSBcIi4vX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzLmpzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVEYXRlcyB9IGZyb20gXCIuL19saWIvbm9ybWFsaXplRGF0ZXMuanNcIjtcbmltcG9ydCB7IGNvbXBhcmVBc2MgfSBmcm9tIFwiLi9jb21wYXJlQXNjLmpzXCI7XG5pbXBvcnQgeyBtaW51dGVzSW5EYXksIG1pbnV0ZXNJbk1vbnRoIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5Nb250aHMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5Nb250aHMuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJblNlY29uZHMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5TZWNvbmRzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBmb3JtYXREaXN0YW5jZX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGZvcm1hdERpc3RhbmNlXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMgaW4gd29yZHMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzIGluIHdvcmRzLlxuICpcbiAqIHwgRGlzdGFuY2UgYmV0d2VlbiBkYXRlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBSZXN1bHQgICAgICAgICAgICAgIHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgMCAuLi4gMzAgc2VjcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBsZXNzIHRoYW4gYSBtaW51dGUgIHxcbiAqIHwgMzAgc2VjcyAuLi4gMSBtaW4gMzAgc2VjcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxIG1pbnV0ZSAgICAgICAgICAgIHxcbiAqIHwgMSBtaW4gMzAgc2VjcyAuLi4gNDQgbWlucyAzMCBzZWNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbMi4uNDRdIG1pbnV0ZXMgICAgIHxcbiAqIHwgNDQgbWlucyAuLi4gMzAgc2VjcyAuLi4gODkgbWlucyAzMCBzZWNzICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhYm91dCAxIGhvdXIgICAgICAgIHxcbiAqIHwgODkgbWlucyAzMCBzZWNzIC4uLiAyMyBocnMgNTkgbWlucyAzMCBzZWNzICAgICAgICAgICAgICAgICAgICAgICAgfCBhYm91dCBbMi4uMjRdIGhvdXJzIHxcbiAqIHwgMjMgaHJzIDU5IG1pbnMgMzAgc2VjcyAuLi4gNDEgaHJzIDU5IG1pbnMgMzAgc2VjcyAgICAgICAgICAgICAgICAgfCAxIGRheSAgICAgICAgICAgICAgIHxcbiAqIHwgNDEgaHJzIDU5IG1pbnMgMzAgc2VjcyAuLi4gMjkgZGF5cyAyMyBocnMgNTkgbWlucyAzMCBzZWNzICAgICAgICAgfCBbMi4uMzBdIGRheXMgICAgICAgIHxcbiAqIHwgMjkgZGF5cyAyMyBocnMgNTkgbWlucyAzMCBzZWNzIC4uLiA0NCBkYXlzIDIzIGhycyA1OSBtaW5zIDMwIHNlY3MgfCBhYm91dCAxIG1vbnRoICAgICAgIHxcbiAqIHwgNDQgZGF5cyAyMyBocnMgNTkgbWlucyAzMCBzZWNzIC4uLiA1OSBkYXlzIDIzIGhycyA1OSBtaW5zIDMwIHNlY3MgfCBhYm91dCAyIG1vbnRocyAgICAgIHxcbiAqIHwgNTkgZGF5cyAyMyBocnMgNTkgbWlucyAzMCBzZWNzIC4uLiAxIHlyICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbMi4uMTJdIG1vbnRocyAgICAgIHxcbiAqIHwgMSB5ciAuLi4gMSB5ciAzIG1vbnRocyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhYm91dCAxIHllYXIgICAgICAgIHxcbiAqIHwgMSB5ciAzIG1vbnRocyAuLi4gMSB5ciA5IG1vbnRoIHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvdmVyIDEgeWVhciAgICAgICAgIHxcbiAqIHwgMSB5ciA5IG1vbnRocyAuLi4gMiB5cnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhbG1vc3QgMiB5ZWFycyAgICAgIHxcbiAqIHwgTiB5cnMgLi4uIE4geXJzIDMgbW9udGhzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhYm91dCBOIHllYXJzICAgICAgIHxcbiAqIHwgTiB5cnMgMyBtb250aHMgLi4uIE4geXJzIDkgbW9udGhzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvdmVyIE4geWVhcnMgICAgICAgIHxcbiAqIHwgTiB5cnMgOSBtb250aHMgLi4uIE4rMSB5cnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhbG1vc3QgTisxIHllYXJzICAgIHxcbiAqXG4gKiBXaXRoIGBvcHRpb25zLmluY2x1ZGVTZWNvbmRzID09IHRydWVgOlxuICogfCBEaXN0YW5jZSBiZXR3ZWVuIGRhdGVzIHwgUmVzdWx0ICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAwIHNlY3MgLi4uIDUgc2VjcyAgICAgIHwgbGVzcyB0aGFuIDUgc2Vjb25kcyAgfFxuICogfCA1IHNlY3MgLi4uIDEwIHNlY3MgICAgIHwgbGVzcyB0aGFuIDEwIHNlY29uZHMgfFxuICogfCAxMCBzZWNzIC4uLiAyMCBzZWNzICAgIHwgbGVzcyB0aGFuIDIwIHNlY29uZHMgfFxuICogfCAyMCBzZWNzIC4uLiA0MCBzZWNzICAgIHwgaGFsZiBhIG1pbnV0ZSAgICAgICAgfFxuICogfCA0MCBzZWNzIC4uLiA2MCBzZWNzICAgIHwgbGVzcyB0aGFuIGEgbWludXRlICAgfFxuICogfCA2MCBzZWNzIC4uLiA5MCBzZWNzICAgIHwgMSBtaW51dGUgICAgICAgICAgICAgfFxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGRhdGUgdG8gY29tcGFyZSB3aXRoXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGlzdGFuY2UgaW4gd29yZHNcbiAqXG4gKiBAdGhyb3dzIGBkYXRlYCBtdXN0IG5vdCBiZSBJbnZhbGlkIERhdGVcbiAqIEB0aHJvd3MgYGJhc2VEYXRlYCBtdXN0IG5vdCBiZSBJbnZhbGlkIERhdGVcbiAqIEB0aHJvd3MgYG9wdGlvbnMubG9jYWxlYCBtdXN0IGNvbnRhaW4gYGZvcm1hdERpc3RhbmNlYCBwcm9wZXJ0eVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGF0IGlzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIDIgSnVseSAyMDE0IGFuZCAxIEphbnVhcnkgMjAxNT9cbiAqIGNvbnN0IHJlc3VsdCA9IGZvcm1hdERpc3RhbmNlKG5ldyBEYXRlKDIwMTQsIDYsIDIpLCBuZXcgRGF0ZSgyMDE1LCAwLCAxKSlcbiAqIC8vPT4gJzYgbW9udGhzJ1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGF0IGlzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIDEgSmFudWFyeSAyMDE1IDAwOjAwOjE1XG4gKiAvLyBhbmQgMSBKYW51YXJ5IDIwMTUgMDA6MDA6MDAsIGluY2x1ZGluZyBzZWNvbmRzP1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0RGlzdGFuY2UoXG4gKiAgIG5ldyBEYXRlKDIwMTUsIDAsIDEsIDAsIDAsIDE1KSxcbiAqICAgbmV3IERhdGUoMjAxNSwgMCwgMSwgMCwgMCwgMCksXG4gKiAgIHsgaW5jbHVkZVNlY29uZHM6IHRydWUgfVxuICogKVxuICogLy89PiAnbGVzcyB0aGFuIDIwIHNlY29uZHMnXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoYXQgaXMgdGhlIGRpc3RhbmNlIGZyb20gMSBKYW51YXJ5IDIwMTZcbiAqIC8vIHRvIDEgSmFudWFyeSAyMDE1LCB3aXRoIGEgc3VmZml4P1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0RGlzdGFuY2UobmV3IERhdGUoMjAxNSwgMCwgMSksIG5ldyBEYXRlKDIwMTYsIDAsIDEpLCB7XG4gKiAgIGFkZFN1ZmZpeDogdHJ1ZVxuICogfSlcbiAqIC8vPT4gJ2Fib3V0IDEgeWVhciBhZ28nXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoYXQgaXMgdGhlIGRpc3RhbmNlIGJldHdlZW4gMSBBdWd1c3QgMjAxNiBhbmQgMSBKYW51YXJ5IDIwMTUgaW4gRXNwZXJhbnRvP1xuICogaW1wb3J0IHsgZW9Mb2NhbGUgfSBmcm9tICdkYXRlLWZucy9sb2NhbGUvZW8nXG4gKiBjb25zdCByZXN1bHQgPSBmb3JtYXREaXN0YW5jZShuZXcgRGF0ZSgyMDE2LCA3LCAxKSwgbmV3IERhdGUoMjAxNSwgMCwgMSksIHtcbiAqICAgbG9jYWxlOiBlb0xvY2FsZVxuICogfSlcbiAqIC8vPT4gJ3BsaSBvbCAxIGphcm8nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREaXN0YW5jZShsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IGRlZmF1bHRPcHRpb25zID0gZ2V0RGVmYXVsdE9wdGlvbnMoKTtcbiAgY29uc3QgbG9jYWxlID0gb3B0aW9ucz8ubG9jYWxlID8/IGRlZmF1bHRPcHRpb25zLmxvY2FsZSA/PyBkZWZhdWx0TG9jYWxlO1xuICBjb25zdCBtaW51dGVzSW5BbG1vc3RUd29EYXlzID0gMjUyMDtcblxuICBjb25zdCBjb21wYXJpc29uID0gY29tcGFyZUFzYyhsYXRlckRhdGUsIGVhcmxpZXJEYXRlKTtcblxuICBpZiAoaXNOYU4oY29tcGFyaXNvbikpIHRocm93IG5ldyBSYW5nZUVycm9yKFwiSW52YWxpZCB0aW1lIHZhbHVlXCIpO1xuXG4gIGNvbnN0IGxvY2FsaXplT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMsIHtcbiAgICBhZGRTdWZmaXg6IG9wdGlvbnM/LmFkZFN1ZmZpeCxcbiAgICBjb21wYXJpc29uOiBjb21wYXJpc29uLFxuICB9KTtcblxuICBjb25zdCBbbGF0ZXJEYXRlXywgZWFybGllckRhdGVfXSA9IG5vcm1hbGl6ZURhdGVzKFxuICAgIG9wdGlvbnM/LmluLFxuICAgIC4uLihjb21wYXJpc29uID4gMCA/IFtlYXJsaWVyRGF0ZSwgbGF0ZXJEYXRlXSA6IFtsYXRlckRhdGUsIGVhcmxpZXJEYXRlXSksXG4gICk7XG5cbiAgY29uc3Qgc2Vjb25kcyA9IGRpZmZlcmVuY2VJblNlY29uZHMoZWFybGllckRhdGVfLCBsYXRlckRhdGVfKTtcbiAgY29uc3Qgb2Zmc2V0SW5TZWNvbmRzID1cbiAgICAoZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhlYXJsaWVyRGF0ZV8pIC1cbiAgICAgIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMobGF0ZXJEYXRlXykpIC9cbiAgICAxMDAwO1xuICBjb25zdCBtaW51dGVzID0gTWF0aC5yb3VuZCgoc2Vjb25kcyAtIG9mZnNldEluU2Vjb25kcykgLyA2MCk7XG4gIGxldCBtb250aHM7XG5cbiAgLy8gMCB1cCB0byAyIG1pbnNcbiAgaWYgKG1pbnV0ZXMgPCAyKSB7XG4gICAgaWYgKG9wdGlvbnM/LmluY2x1ZGVTZWNvbmRzKSB7XG4gICAgICBpZiAoc2Vjb25kcyA8IDUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5mb3JtYXREaXN0YW5jZShcImxlc3NUaGFuWFNlY29uZHNcIiwgNSwgbG9jYWxpemVPcHRpb25zKTtcbiAgICAgIH0gZWxzZSBpZiAoc2Vjb25kcyA8IDEwKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuZm9ybWF0RGlzdGFuY2UoXCJsZXNzVGhhblhTZWNvbmRzXCIsIDEwLCBsb2NhbGl6ZU9wdGlvbnMpO1xuICAgICAgfSBlbHNlIGlmIChzZWNvbmRzIDwgMjApIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5mb3JtYXREaXN0YW5jZShcImxlc3NUaGFuWFNlY29uZHNcIiwgMjAsIGxvY2FsaXplT3B0aW9ucyk7XG4gICAgICB9IGVsc2UgaWYgKHNlY29uZHMgPCA0MCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLmZvcm1hdERpc3RhbmNlKFwiaGFsZkFNaW51dGVcIiwgMCwgbG9jYWxpemVPcHRpb25zKTtcbiAgICAgIH0gZWxzZSBpZiAoc2Vjb25kcyA8IDYwKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuZm9ybWF0RGlzdGFuY2UoXCJsZXNzVGhhblhNaW51dGVzXCIsIDEsIGxvY2FsaXplT3B0aW9ucyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbG9jYWxlLmZvcm1hdERpc3RhbmNlKFwieE1pbnV0ZXNcIiwgMSwgbG9jYWxpemVPcHRpb25zKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG1pbnV0ZXMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5mb3JtYXREaXN0YW5jZShcImxlc3NUaGFuWE1pbnV0ZXNcIiwgMSwgbG9jYWxpemVPcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuZm9ybWF0RGlzdGFuY2UoXCJ4TWludXRlc1wiLCBtaW51dGVzLCBsb2NhbGl6ZU9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIgbWlucyB1cCB0byAwLjc1IGhyc1xuICB9IGVsc2UgaWYgKG1pbnV0ZXMgPCA0NSkge1xuICAgIHJldHVybiBsb2NhbGUuZm9ybWF0RGlzdGFuY2UoXCJ4TWludXRlc1wiLCBtaW51dGVzLCBsb2NhbGl6ZU9wdGlvbnMpO1xuXG4gICAgLy8gMC43NSBocnMgdXAgdG8gMS41IGhyc1xuICB9IGVsc2UgaWYgKG1pbnV0ZXMgPCA5MCkge1xuICAgIHJldHVybiBsb2NhbGUuZm9ybWF0RGlzdGFuY2UoXCJhYm91dFhIb3Vyc1wiLCAxLCBsb2NhbGl6ZU9wdGlvbnMpO1xuXG4gICAgLy8gMS41IGhycyB1cCB0byAyNCBocnNcbiAgfSBlbHNlIGlmIChtaW51dGVzIDwgbWludXRlc0luRGF5KSB7XG4gICAgY29uc3QgaG91cnMgPSBNYXRoLnJvdW5kKG1pbnV0ZXMgLyA2MCk7XG4gICAgcmV0dXJuIGxvY2FsZS5mb3JtYXREaXN0YW5jZShcImFib3V0WEhvdXJzXCIsIGhvdXJzLCBsb2NhbGl6ZU9wdGlvbnMpO1xuXG4gICAgLy8gMSBkYXkgdXAgdG8gMS43NSBkYXlzXG4gIH0gZWxzZSBpZiAobWludXRlcyA8IG1pbnV0ZXNJbkFsbW9zdFR3b0RheXMpIHtcbiAgICByZXR1cm4gbG9jYWxlLmZvcm1hdERpc3RhbmNlKFwieERheXNcIiwgMSwgbG9jYWxpemVPcHRpb25zKTtcblxuICAgIC8vIDEuNzUgZGF5cyB1cCB0byAzMCBkYXlzXG4gIH0gZWxzZSBpZiAobWludXRlcyA8IG1pbnV0ZXNJbk1vbnRoKSB7XG4gICAgY29uc3QgZGF5cyA9IE1hdGgucm91bmQobWludXRlcyAvIG1pbnV0ZXNJbkRheSk7XG4gICAgcmV0dXJuIGxvY2FsZS5mb3JtYXREaXN0YW5jZShcInhEYXlzXCIsIGRheXMsIGxvY2FsaXplT3B0aW9ucyk7XG5cbiAgICAvLyAxIG1vbnRoIHVwIHRvIDIgbW9udGhzXG4gIH0gZWxzZSBpZiAobWludXRlcyA8IG1pbnV0ZXNJbk1vbnRoICogMikge1xuICAgIG1vbnRocyA9IE1hdGgucm91bmQobWludXRlcyAvIG1pbnV0ZXNJbk1vbnRoKTtcbiAgICByZXR1cm4gbG9jYWxlLmZvcm1hdERpc3RhbmNlKFwiYWJvdXRYTW9udGhzXCIsIG1vbnRocywgbG9jYWxpemVPcHRpb25zKTtcbiAgfVxuXG4gIG1vbnRocyA9IGRpZmZlcmVuY2VJbk1vbnRocyhlYXJsaWVyRGF0ZV8sIGxhdGVyRGF0ZV8pO1xuXG4gIC8vIDIgbW9udGhzIHVwIHRvIDEyIG1vbnRoc1xuICBpZiAobW9udGhzIDwgMTIpIHtcbiAgICBjb25zdCBuZWFyZXN0TW9udGggPSBNYXRoLnJvdW5kKG1pbnV0ZXMgLyBtaW51dGVzSW5Nb250aCk7XG4gICAgcmV0dXJuIGxvY2FsZS5mb3JtYXREaXN0YW5jZShcInhNb250aHNcIiwgbmVhcmVzdE1vbnRoLCBsb2NhbGl6ZU9wdGlvbnMpO1xuXG4gICAgLy8gMSB5ZWFyIHVwIHRvIG1heCBEYXRlXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbW9udGhzU2luY2VTdGFydE9mWWVhciA9IG1vbnRocyAlIDEyO1xuICAgIGNvbnN0IHllYXJzID0gTWF0aC50cnVuYyhtb250aHMgLyAxMik7XG5cbiAgICAvLyBOIHllYXJzIHVwIHRvIDEgeWVhcnMgMyBtb250aHNcbiAgICBpZiAobW9udGhzU2luY2VTdGFydE9mWWVhciA8IDMpIHtcbiAgICAgIHJldHVybiBsb2NhbGUuZm9ybWF0RGlzdGFuY2UoXCJhYm91dFhZZWFyc1wiLCB5ZWFycywgbG9jYWxpemVPcHRpb25zKTtcblxuICAgICAgLy8gTiB5ZWFycyAzIG1vbnRocyB1cCB0byBOIHllYXJzIDkgbW9udGhzXG4gICAgfSBlbHNlIGlmIChtb250aHNTaW5jZVN0YXJ0T2ZZZWFyIDwgOSkge1xuICAgICAgcmV0dXJuIGxvY2FsZS5mb3JtYXREaXN0YW5jZShcIm92ZXJYWWVhcnNcIiwgeWVhcnMsIGxvY2FsaXplT3B0aW9ucyk7XG5cbiAgICAgIC8vIE4geWVhcnMgOSBtb250aHMgdXAgdG8gTiB5ZWFyIDEyIG1vbnRoc1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbG9jYWxlLmZvcm1hdERpc3RhbmNlKFwiYWxtb3N0WFllYXJzXCIsIHllYXJzICsgMSwgbG9jYWxpemVPcHRpb25zKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBmb3JtYXREaXN0YW5jZTtcbiIsICJpbXBvcnQgeyBkZWZhdWx0TG9jYWxlIH0gZnJvbSBcIi4vX2xpYi9kZWZhdWx0TG9jYWxlLmpzXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0T3B0aW9ucyB9IGZyb20gXCIuL19saWIvZGVmYXVsdE9wdGlvbnMuanNcIjtcbmltcG9ydCB7IGdldFJvdW5kaW5nTWV0aG9kIH0gZnJvbSBcIi4vX2xpYi9nZXRSb3VuZGluZ01ldGhvZC5qc1wiO1xuaW1wb3J0IHsgZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyB9IGZyb20gXCIuL19saWIvZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcy5qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5pbXBvcnQgeyBjb21wYXJlQXNjIH0gZnJvbSBcIi4vY29tcGFyZUFzYy5qc1wiO1xuaW1wb3J0IHtcbiAgbWlsbGlzZWNvbmRzSW5NaW51dGUsXG4gIG1pbnV0ZXNJbkRheSxcbiAgbWludXRlc0luTW9udGgsXG4gIG1pbnV0ZXNJblllYXIsXG59IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZm9ybWF0RGlzdGFuY2VTdHJpY3R9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBUaGUgdW5pdCB1c2VkIHRvIGZvcm1hdCB0aGUgZGlzdGFuY2UgaW4ge0BsaW5rIGZvcm1hdERpc3RhbmNlU3RyaWN0fS5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGZvcm1hdERpc3RhbmNlU3RyaWN0XG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMgaW4gd29yZHMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIGdpdmVuIGRhdGVzIGluIHdvcmRzLCB1c2luZyBzdHJpY3QgdW5pdHMuXG4gKiBUaGlzIGlzIGxpa2UgYGZvcm1hdERpc3RhbmNlYCwgYnV0IGRvZXMgbm90IHVzZSBoZWxwZXJzIGxpa2UgJ2FsbW9zdCcsICdvdmVyJyxcbiAqICdsZXNzIHRoYW4nIGFuZCB0aGUgbGlrZS5cbiAqXG4gKiB8IERpc3RhbmNlIGJldHdlZW4gZGF0ZXMgfCBSZXN1bHQgICAgICAgICAgICAgIHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAwIC4uLiA1OSBzZWNzICAgICAgICAgIHwgWzAuLjU5XSBzZWNvbmRzICAgICB8XG4gKiB8IDEgLi4uIDU5IG1pbnMgICAgICAgICAgfCBbMS4uNTldIG1pbnV0ZXMgICAgIHxcbiAqIHwgMSAuLi4gMjMgaHJzICAgICAgICAgICB8IFsxLi4yM10gaG91cnMgICAgICAgfFxuICogfCAxIC4uLiAyOSBkYXlzICAgICAgICAgIHwgWzEuLjI5XSBkYXlzICAgICAgICB8XG4gKiB8IDEgLi4uIDExIG1vbnRocyAgICAgICAgfCBbMS4uMTFdIG1vbnRocyAgICAgIHxcbiAqIHwgMSAuLi4gTiB5ZWFycyAgICAgICAgICB8IFsxLi5OXSAgeWVhcnMgICAgICAgfFxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgZGF0ZVxuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIGRhdGUgdG8gY29tcGFyZSB3aXRoXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGlzdGFuY2UgaW4gd29yZHNcbiAqXG4gKiBAdGhyb3dzIGBkYXRlYCBtdXN0IG5vdCBiZSBJbnZhbGlkIERhdGVcbiAqIEB0aHJvd3MgYGJhc2VEYXRlYCBtdXN0IG5vdCBiZSBJbnZhbGlkIERhdGVcbiAqIEB0aHJvd3MgYG9wdGlvbnMudW5pdGAgbXVzdCBiZSAnc2Vjb25kJywgJ21pbnV0ZScsICdob3VyJywgJ2RheScsICdtb250aCcgb3IgJ3llYXInXG4gKiBAdGhyb3dzIGBvcHRpb25zLmxvY2FsZWAgbXVzdCBjb250YWluIGBmb3JtYXREaXN0YW5jZWAgcHJvcGVydHlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hhdCBpcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiAyIEp1bHkgMjAxNCBhbmQgMSBKYW51YXJ5IDIwMTU/XG4gKiBjb25zdCByZXN1bHQgPSBmb3JtYXREaXN0YW5jZVN0cmljdChuZXcgRGF0ZSgyMDE0LCA2LCAyKSwgbmV3IERhdGUoMjAxNSwgMCwgMikpXG4gKiAvLz0+ICc2IG1vbnRocydcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hhdCBpcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiAxIEphbnVhcnkgMjAxNSAwMDowMDoxNVxuICogLy8gYW5kIDEgSmFudWFyeSAyMDE1IDAwOjAwOjAwP1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0RGlzdGFuY2VTdHJpY3QoXG4gKiAgIG5ldyBEYXRlKDIwMTUsIDAsIDEsIDAsIDAsIDE1KSxcbiAqICAgbmV3IERhdGUoMjAxNSwgMCwgMSwgMCwgMCwgMClcbiAqIClcbiAqIC8vPT4gJzE1IHNlY29uZHMnXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoYXQgaXMgdGhlIGRpc3RhbmNlIGZyb20gMSBKYW51YXJ5IDIwMTZcbiAqIC8vIHRvIDEgSmFudWFyeSAyMDE1LCB3aXRoIGEgc3VmZml4P1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0RGlzdGFuY2VTdHJpY3QobmV3IERhdGUoMjAxNSwgMCwgMSksIG5ldyBEYXRlKDIwMTYsIDAsIDEpLCB7XG4gKiAgIGFkZFN1ZmZpeDogdHJ1ZVxuICogfSlcbiAqIC8vPT4gJzEgeWVhciBhZ28nXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoYXQgaXMgdGhlIGRpc3RhbmNlIGZyb20gMSBKYW51YXJ5IDIwMTZcbiAqIC8vIHRvIDEgSmFudWFyeSAyMDE1LCBpbiBtaW51dGVzP1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0RGlzdGFuY2VTdHJpY3QobmV3IERhdGUoMjAxNiwgMCwgMSksIG5ldyBEYXRlKDIwMTUsIDAsIDEpLCB7XG4gKiAgIHVuaXQ6ICdtaW51dGUnXG4gKiB9KVxuICogLy89PiAnNTI1NjAwIG1pbnV0ZXMnXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoYXQgaXMgdGhlIGRpc3RhbmNlIGZyb20gMSBKYW51YXJ5IDIwMTVcbiAqIC8vIHRvIDI4IEphbnVhcnkgMjAxNSwgaW4gbW9udGhzLCByb3VuZGVkIHVwP1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0RGlzdGFuY2VTdHJpY3QobmV3IERhdGUoMjAxNSwgMCwgMjgpLCBuZXcgRGF0ZSgyMDE1LCAwLCAxKSwge1xuICogICB1bml0OiAnbW9udGgnLFxuICogICByb3VuZGluZ01ldGhvZDogJ2NlaWwnXG4gKiB9KVxuICogLy89PiAnMSBtb250aCdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hhdCBpcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiAxIEF1Z3VzdCAyMDE2IGFuZCAxIEphbnVhcnkgMjAxNSBpbiBFc3BlcmFudG8/XG4gKiBpbXBvcnQgeyBlb0xvY2FsZSB9IGZyb20gJ2RhdGUtZm5zL2xvY2FsZS9lbydcbiAqIGNvbnN0IHJlc3VsdCA9IGZvcm1hdERpc3RhbmNlU3RyaWN0KG5ldyBEYXRlKDIwMTYsIDcsIDEpLCBuZXcgRGF0ZSgyMDE1LCAwLCAxKSwge1xuICogICBsb2NhbGU6IGVvTG9jYWxlXG4gKiB9KVxuICogLy89PiAnMSBqYXJvJ1xuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREaXN0YW5jZVN0cmljdChsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IGRlZmF1bHRPcHRpb25zID0gZ2V0RGVmYXVsdE9wdGlvbnMoKTtcbiAgY29uc3QgbG9jYWxlID0gb3B0aW9ucz8ubG9jYWxlID8/IGRlZmF1bHRPcHRpb25zLmxvY2FsZSA/PyBkZWZhdWx0TG9jYWxlO1xuXG4gIGNvbnN0IGNvbXBhcmlzb24gPSBjb21wYXJlQXNjKGxhdGVyRGF0ZSwgZWFybGllckRhdGUpO1xuXG4gIGlmIChpc05hTihjb21wYXJpc29uKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiSW52YWxpZCB0aW1lIHZhbHVlXCIpO1xuICB9XG5cbiAgY29uc3QgbG9jYWxpemVPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucywge1xuICAgIGFkZFN1ZmZpeDogb3B0aW9ucz8uYWRkU3VmZml4LFxuICAgIGNvbXBhcmlzb246IGNvbXBhcmlzb24sXG4gIH0pO1xuXG4gIGNvbnN0IFtsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV9dID0gbm9ybWFsaXplRGF0ZXMoXG4gICAgb3B0aW9ucz8uaW4sXG4gICAgLi4uKGNvbXBhcmlzb24gPiAwID8gW2VhcmxpZXJEYXRlLCBsYXRlckRhdGVdIDogW2xhdGVyRGF0ZSwgZWFybGllckRhdGVdKSxcbiAgKTtcblxuICBjb25zdCByb3VuZGluZ01ldGhvZCA9IGdldFJvdW5kaW5nTWV0aG9kKG9wdGlvbnM/LnJvdW5kaW5nTWV0aG9kID8/IFwicm91bmRcIik7XG5cbiAgY29uc3QgbWlsbGlzZWNvbmRzID0gZWFybGllckRhdGVfLmdldFRpbWUoKSAtIGxhdGVyRGF0ZV8uZ2V0VGltZSgpO1xuICBjb25zdCBtaW51dGVzID0gbWlsbGlzZWNvbmRzIC8gbWlsbGlzZWNvbmRzSW5NaW51dGU7XG5cbiAgY29uc3QgdGltZXpvbmVPZmZzZXQgPVxuICAgIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMoZWFybGllckRhdGVfKSAtXG4gICAgZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhsYXRlckRhdGVfKTtcblxuICAvLyBVc2UgRFNULW5vcm1hbGl6ZWQgZGlmZmVyZW5jZSBpbiBtaW51dGVzIGZvciB5ZWFycywgbW9udGhzIGFuZCBkYXlzO1xuICAvLyB1c2UgcmVndWxhciBkaWZmZXJlbmNlIGluIG1pbnV0ZXMgZm9yIGhvdXJzLCBtaW51dGVzIGFuZCBzZWNvbmRzLlxuICBjb25zdCBkc3ROb3JtYWxpemVkTWludXRlcyA9XG4gICAgKG1pbGxpc2Vjb25kcyAtIHRpbWV6b25lT2Zmc2V0KSAvIG1pbGxpc2Vjb25kc0luTWludXRlO1xuXG4gIGNvbnN0IGRlZmF1bHRVbml0ID0gb3B0aW9ucz8udW5pdDtcbiAgbGV0IHVuaXQ7XG4gIGlmICghZGVmYXVsdFVuaXQpIHtcbiAgICBpZiAobWludXRlcyA8IDEpIHtcbiAgICAgIHVuaXQgPSBcInNlY29uZFwiO1xuICAgIH0gZWxzZSBpZiAobWludXRlcyA8IDYwKSB7XG4gICAgICB1bml0ID0gXCJtaW51dGVcIjtcbiAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPCBtaW51dGVzSW5EYXkpIHtcbiAgICAgIHVuaXQgPSBcImhvdXJcIjtcbiAgICB9IGVsc2UgaWYgKGRzdE5vcm1hbGl6ZWRNaW51dGVzIDwgbWludXRlc0luTW9udGgpIHtcbiAgICAgIHVuaXQgPSBcImRheVwiO1xuICAgIH0gZWxzZSBpZiAoZHN0Tm9ybWFsaXplZE1pbnV0ZXMgPCBtaW51dGVzSW5ZZWFyKSB7XG4gICAgICB1bml0ID0gXCJtb250aFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICB1bml0ID0gXCJ5ZWFyXCI7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHVuaXQgPSBkZWZhdWx0VW5pdDtcbiAgfVxuXG4gIC8vIDAgdXAgdG8gNjAgc2Vjb25kc1xuICBpZiAodW5pdCA9PT0gXCJzZWNvbmRcIikge1xuICAgIGNvbnN0IHNlY29uZHMgPSByb3VuZGluZ01ldGhvZChtaWxsaXNlY29uZHMgLyAxMDAwKTtcbiAgICByZXR1cm4gbG9jYWxlLmZvcm1hdERpc3RhbmNlKFwieFNlY29uZHNcIiwgc2Vjb25kcywgbG9jYWxpemVPcHRpb25zKTtcblxuICAgIC8vIDEgdXAgdG8gNjAgbWluc1xuICB9IGVsc2UgaWYgKHVuaXQgPT09IFwibWludXRlXCIpIHtcbiAgICBjb25zdCByb3VuZGVkTWludXRlcyA9IHJvdW5kaW5nTWV0aG9kKG1pbnV0ZXMpO1xuICAgIHJldHVybiBsb2NhbGUuZm9ybWF0RGlzdGFuY2UoXCJ4TWludXRlc1wiLCByb3VuZGVkTWludXRlcywgbG9jYWxpemVPcHRpb25zKTtcblxuICAgIC8vIDEgdXAgdG8gMjQgaG91cnNcbiAgfSBlbHNlIGlmICh1bml0ID09PSBcImhvdXJcIikge1xuICAgIGNvbnN0IGhvdXJzID0gcm91bmRpbmdNZXRob2QobWludXRlcyAvIDYwKTtcbiAgICByZXR1cm4gbG9jYWxlLmZvcm1hdERpc3RhbmNlKFwieEhvdXJzXCIsIGhvdXJzLCBsb2NhbGl6ZU9wdGlvbnMpO1xuXG4gICAgLy8gMSB1cCB0byAzMCBkYXlzXG4gIH0gZWxzZSBpZiAodW5pdCA9PT0gXCJkYXlcIikge1xuICAgIGNvbnN0IGRheXMgPSByb3VuZGluZ01ldGhvZChkc3ROb3JtYWxpemVkTWludXRlcyAvIG1pbnV0ZXNJbkRheSk7XG4gICAgcmV0dXJuIGxvY2FsZS5mb3JtYXREaXN0YW5jZShcInhEYXlzXCIsIGRheXMsIGxvY2FsaXplT3B0aW9ucyk7XG5cbiAgICAvLyAxIHVwIHRvIDEyIG1vbnRoc1xuICB9IGVsc2UgaWYgKHVuaXQgPT09IFwibW9udGhcIikge1xuICAgIGNvbnN0IG1vbnRocyA9IHJvdW5kaW5nTWV0aG9kKGRzdE5vcm1hbGl6ZWRNaW51dGVzIC8gbWludXRlc0luTW9udGgpO1xuICAgIHJldHVybiBtb250aHMgPT09IDEyICYmIGRlZmF1bHRVbml0ICE9PSBcIm1vbnRoXCJcbiAgICAgID8gbG9jYWxlLmZvcm1hdERpc3RhbmNlKFwieFllYXJzXCIsIDEsIGxvY2FsaXplT3B0aW9ucylcbiAgICAgIDogbG9jYWxlLmZvcm1hdERpc3RhbmNlKFwieE1vbnRoc1wiLCBtb250aHMsIGxvY2FsaXplT3B0aW9ucyk7XG5cbiAgICAvLyAxIHllYXIgdXAgdG8gbWF4IERhdGVcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB5ZWFycyA9IHJvdW5kaW5nTWV0aG9kKGRzdE5vcm1hbGl6ZWRNaW51dGVzIC8gbWludXRlc0luWWVhcik7XG4gICAgcmV0dXJuIGxvY2FsZS5mb3JtYXREaXN0YW5jZShcInhZZWFyc1wiLCB5ZWFycywgbG9jYWxpemVPcHRpb25zKTtcbiAgfVxufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGZvcm1hdERpc3RhbmNlU3RyaWN0O1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdE5vdyB9IGZyb20gXCIuL2NvbnN0cnVjdE5vdy5qc1wiO1xuXG5pbXBvcnQgeyBmb3JtYXREaXN0YW5jZSB9IGZyb20gXCIuL2Zvcm1hdERpc3RhbmNlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBmb3JtYXREaXN0YW5jZVRvTm93fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZm9ybWF0RGlzdGFuY2VUb05vd1xuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIGdpdmVuIGRhdGUgYW5kIG5vdyBpbiB3b3Jkcy5cbiAqIEBwdXJlIGZhbHNlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIGdpdmVuIGRhdGUgYW5kIG5vdyBpbiB3b3Jkcy5cbiAqXG4gKiB8IERpc3RhbmNlIHRvIG5vdyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVzdWx0ICAgICAgICAgICAgICB8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8IDAgLi4uIDMwIHNlY3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbGVzcyB0aGFuIGEgbWludXRlICB8XG4gKiB8IDMwIHNlY3MgLi4uIDEgbWluIDMwIHNlY3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMSBtaW51dGUgICAgICAgICAgICB8XG4gKiB8IDEgbWluIDMwIHNlY3MgLi4uIDQ0IG1pbnMgMzAgc2VjcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzIuLjQ0XSBtaW51dGVzICAgICB8XG4gKiB8IDQ0IG1pbnMgLi4uIDMwIHNlY3MgLi4uIDg5IG1pbnMgMzAgc2VjcyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYWJvdXQgMSBob3VyICAgICAgICB8XG4gKiB8IDg5IG1pbnMgMzAgc2VjcyAuLi4gMjMgaHJzIDU5IG1pbnMgMzAgc2VjcyAgICAgICAgICAgICAgICAgICAgICAgIHwgYWJvdXQgWzIuLjI0XSBob3VycyB8XG4gKiB8IDIzIGhycyA1OSBtaW5zIDMwIHNlY3MgLi4uIDQxIGhycyA1OSBtaW5zIDMwIHNlY3MgICAgICAgICAgICAgICAgIHwgMSBkYXkgICAgICAgICAgICAgICB8XG4gKiB8IDQxIGhycyA1OSBtaW5zIDMwIHNlY3MgLi4uIDI5IGRheXMgMjMgaHJzIDU5IG1pbnMgMzAgc2VjcyAgICAgICAgIHwgWzIuLjMwXSBkYXlzICAgICAgICB8XG4gKiB8IDI5IGRheXMgMjMgaHJzIDU5IG1pbnMgMzAgc2VjcyAuLi4gNDQgZGF5cyAyMyBocnMgNTkgbWlucyAzMCBzZWNzIHwgYWJvdXQgMSBtb250aCAgICAgICB8XG4gKiB8IDQ0IGRheXMgMjMgaHJzIDU5IG1pbnMgMzAgc2VjcyAuLi4gNTkgZGF5cyAyMyBocnMgNTkgbWlucyAzMCBzZWNzIHwgYWJvdXQgMiBtb250aHMgICAgICB8XG4gKiB8IDU5IGRheXMgMjMgaHJzIDU5IG1pbnMgMzAgc2VjcyAuLi4gMSB5ciAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzIuLjEyXSBtb250aHMgICAgICB8XG4gKiB8IDEgeXIgLi4uIDEgeXIgMyBtb250aHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYWJvdXQgMSB5ZWFyICAgICAgICB8XG4gKiB8IDEgeXIgMyBtb250aHMgLi4uIDEgeXIgOSBtb250aCBzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3ZlciAxIHllYXIgICAgICAgICB8XG4gKiB8IDEgeXIgOSBtb250aHMgLi4uIDIgeXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYWxtb3N0IDIgeWVhcnMgICAgICB8XG4gKiB8IE4geXJzIC4uLiBOIHlycyAzIG1vbnRocyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYWJvdXQgTiB5ZWFycyAgICAgICB8XG4gKiB8IE4geXJzIDMgbW9udGhzIC4uLiBOIHlycyA5IG1vbnRocyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3ZlciBOIHllYXJzICAgICAgICB8XG4gKiB8IE4geXJzIDkgbW9udGhzIC4uLiBOKzEgeXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYWxtb3N0IE4rMSB5ZWFycyAgICB8XG4gKlxuICogV2l0aCBgb3B0aW9ucy5pbmNsdWRlU2Vjb25kcyA9PSB0cnVlYDpcbiAqIHwgRGlzdGFuY2UgdG8gbm93ICAgICB8IFJlc3VsdCAgICAgICAgICAgICAgIHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgMCBzZWNzIC4uLiA1IHNlY3MgICB8IGxlc3MgdGhhbiA1IHNlY29uZHMgIHxcbiAqIHwgNSBzZWNzIC4uLiAxMCBzZWNzICB8IGxlc3MgdGhhbiAxMCBzZWNvbmRzIHxcbiAqIHwgMTAgc2VjcyAuLi4gMjAgc2VjcyB8IGxlc3MgdGhhbiAyMCBzZWNvbmRzIHxcbiAqIHwgMjAgc2VjcyAuLi4gNDAgc2VjcyB8IGhhbGYgYSBtaW51dGUgICAgICAgIHxcbiAqIHwgNDAgc2VjcyAuLi4gNjAgc2VjcyB8IGxlc3MgdGhhbiBhIG1pbnV0ZSAgIHxcbiAqIHwgNjAgc2VjcyAuLi4gOTAgc2VjcyB8IDEgbWludXRlICAgICAgICAgICAgIHxcbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBnaXZlbiBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGRpc3RhbmNlIGluIHdvcmRzXG4gKlxuICogQHRocm93cyBgZGF0ZWAgbXVzdCBub3QgYmUgSW52YWxpZCBEYXRlXG4gKiBAdGhyb3dzIGBvcHRpb25zLmxvY2FsZWAgbXVzdCBjb250YWluIGBmb3JtYXREaXN0YW5jZWAgcHJvcGVydHlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgdG9kYXkgaXMgMSBKYW51YXJ5IDIwMTUsIHdoYXQgaXMgdGhlIGRpc3RhbmNlIHRvIDIgSnVseSAyMDE0P1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0RGlzdGFuY2VUb05vdyhcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMilcbiAqIClcbiAqIC8vPT4gJzYgbW9udGhzJ1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiBub3cgaXMgMSBKYW51YXJ5IDIwMTUgMDA6MDA6MDAsXG4gKiAvLyB3aGF0IGlzIHRoZSBkaXN0YW5jZSB0byAxIEphbnVhcnkgMjAxNSAwMDowMDoxNSwgaW5jbHVkaW5nIHNlY29uZHM/XG4gKiBjb25zdCByZXN1bHQgPSBmb3JtYXREaXN0YW5jZVRvTm93KFxuICogICBuZXcgRGF0ZSgyMDE1LCAwLCAxLCAwLCAwLCAxNSksXG4gKiAgIHtpbmNsdWRlU2Vjb25kczogdHJ1ZX1cbiAqIClcbiAqIC8vPT4gJ2xlc3MgdGhhbiAyMCBzZWNvbmRzJ1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0b2RheSBpcyAxIEphbnVhcnkgMjAxNSxcbiAqIC8vIHdoYXQgaXMgdGhlIGRpc3RhbmNlIHRvIDEgSmFudWFyeSAyMDE2LCB3aXRoIGEgc3VmZml4P1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0RGlzdGFuY2VUb05vdyhcbiAqICAgbmV3IERhdGUoMjAxNiwgMCwgMSksXG4gKiAgIHthZGRTdWZmaXg6IHRydWV9XG4gKiApXG4gKiAvLz0+ICdpbiBhYm91dCAxIHllYXInXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRvZGF5IGlzIDEgSmFudWFyeSAyMDE1LFxuICogLy8gd2hhdCBpcyB0aGUgZGlzdGFuY2UgdG8gMSBBdWd1c3QgMjAxNiBpbiBFc3BlcmFudG8/XG4gKiBjb25zdCBlb0xvY2FsZSA9IHJlcXVpcmUoJ2RhdGUtZm5zL2xvY2FsZS9lbycpXG4gKiBjb25zdCByZXN1bHQgPSBmb3JtYXREaXN0YW5jZVRvTm93KFxuICogICBuZXcgRGF0ZSgyMDE2LCA3LCAxKSxcbiAqICAge2xvY2FsZTogZW9Mb2NhbGV9XG4gKiApXG4gKiAvLz0+ICdwbGkgb2wgMSBqYXJvJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGlzdGFuY2VUb05vdyhkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBmb3JtYXREaXN0YW5jZShkYXRlLCBjb25zdHJ1Y3ROb3coZGF0ZSksIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGZvcm1hdERpc3RhbmNlVG9Ob3c7XG4iLCAiaW1wb3J0IHsgY29uc3RydWN0Tm93IH0gZnJvbSBcIi4vY29uc3RydWN0Tm93LmpzXCI7XG5cbmltcG9ydCB7IGZvcm1hdERpc3RhbmNlU3RyaWN0IH0gZnJvbSBcIi4vZm9ybWF0RGlzdGFuY2VTdHJpY3QuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3R9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBmb3JtYXREaXN0YW5jZVRvTm93U3RyaWN0XG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZSBhbmQgbm93IGluIHdvcmRzLlxuICogQHB1cmUgZmFsc2VcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMgaW4gd29yZHMsIHVzaW5nIHN0cmljdCB1bml0cy5cbiAqIFRoaXMgaXMgbGlrZSBgZm9ybWF0RGlzdGFuY2VgLCBidXQgZG9lcyBub3QgdXNlIGhlbHBlcnMgbGlrZSAnYWxtb3N0JywgJ292ZXInLFxuICogJ2xlc3MgdGhhbicgYW5kIHRoZSBsaWtlLlxuICpcbiAqIHwgRGlzdGFuY2UgYmV0d2VlbiBkYXRlcyB8IFJlc3VsdCAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8IDAgLi4uIDU5IHNlY3MgICAgICAgICAgfCBbMC4uNTldIHNlY29uZHMgICAgIHxcbiAqIHwgMSAuLi4gNTkgbWlucyAgICAgICAgICB8IFsxLi41OV0gbWludXRlcyAgICAgfFxuICogfCAxIC4uLiAyMyBocnMgICAgICAgICAgIHwgWzEuLjIzXSBob3VycyAgICAgICB8XG4gKiB8IDEgLi4uIDI5IGRheXMgICAgICAgICAgfCBbMS4uMjldIGRheXMgICAgICAgIHxcbiAqIHwgMSAuLi4gMTEgbW9udGhzICAgICAgICB8IFsxLi4xMV0gbW9udGhzICAgICAgfFxuICogfCAxIC4uLiBOIHllYXJzICAgICAgICAgIHwgWzEuLk5dICB5ZWFycyAgICAgICB8XG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBkaXN0YW5jZSBpbiB3b3Jkc1xuICpcbiAqIEB0aHJvd3MgYGRhdGVgIG11c3Qgbm90IGJlIEludmFsaWQgRGF0ZVxuICogQHRocm93cyBgb3B0aW9ucy5sb2NhbGVgIG11c3QgY29udGFpbiBgZm9ybWF0RGlzdGFuY2VgIHByb3BlcnR5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRvZGF5IGlzIDEgSmFudWFyeSAyMDE1LCB3aGF0IGlzIHRoZSBkaXN0YW5jZSB0byAyIEp1bHkgMjAxND9cbiAqIGNvbnN0IHJlc3VsdCA9IGZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3QoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDYsIDIpXG4gKiApXG4gKiAvLz0+ICc2IG1vbnRocydcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgbm93IGlzIDEgSmFudWFyeSAyMDE1IDAwOjAwOjAwLFxuICogLy8gd2hhdCBpcyB0aGUgZGlzdGFuY2UgdG8gMSBKYW51YXJ5IDIwMTUgMDA6MDA6MTUsIGluY2x1ZGluZyBzZWNvbmRzP1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdChcbiAqICAgbmV3IERhdGUoMjAxNSwgMCwgMSwgMCwgMCwgMTUpXG4gKiApXG4gKiAvLz0+ICcxNSBzZWNvbmRzJ1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0b2RheSBpcyAxIEphbnVhcnkgMjAxNSxcbiAqIC8vIHdoYXQgaXMgdGhlIGRpc3RhbmNlIHRvIDEgSmFudWFyeSAyMDE2LCB3aXRoIGEgc3VmZml4P1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdChcbiAqICAgbmV3IERhdGUoMjAxNiwgMCwgMSksXG4gKiAgIHthZGRTdWZmaXg6IHRydWV9XG4gKiApXG4gKiAvLz0+ICdpbiAxIHllYXInXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRvZGF5IGlzIDI4IEphbnVhcnkgMjAxNSxcbiAqIC8vIHdoYXQgaXMgdGhlIGRpc3RhbmNlIHRvIDEgSmFudWFyeSAyMDE1LCBpbiBtb250aHMsIHJvdW5kZWQgdXA/P1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdChuZXcgRGF0ZSgyMDE1LCAwLCAxKSwge1xuICogICB1bml0OiAnbW9udGgnLFxuICogICByb3VuZGluZ01ldGhvZDogJ2NlaWwnXG4gKiB9KVxuICogLy89PiAnMSBtb250aCdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgdG9kYXkgaXMgMSBKYW51YXJ5IDIwMTUsXG4gKiAvLyB3aGF0IGlzIHRoZSBkaXN0YW5jZSB0byAxIEphbnVhcnkgMjAxNiBpbiBFc3BlcmFudG8/XG4gKiBjb25zdCBlb0xvY2FsZSA9IHJlcXVpcmUoJ2RhdGUtZm5zL2xvY2FsZS9lbycpXG4gKiBjb25zdCByZXN1bHQgPSBmb3JtYXREaXN0YW5jZVRvTm93U3RyaWN0KFxuICogICBuZXcgRGF0ZSgyMDE2LCAwLCAxKSxcbiAqICAge2xvY2FsZTogZW9Mb2NhbGV9XG4gKiApXG4gKiAvLz0+ICcxIGphcm8nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREaXN0YW5jZVRvTm93U3RyaWN0KGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGZvcm1hdERpc3RhbmNlU3RyaWN0KGRhdGUsIGNvbnN0cnVjdE5vdyhkYXRlKSwgb3B0aW9ucyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdDtcbiIsICJpbXBvcnQgeyBkZWZhdWx0TG9jYWxlIH0gZnJvbSBcIi4vX2xpYi9kZWZhdWx0TG9jYWxlLmpzXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0T3B0aW9ucyB9IGZyb20gXCIuL19saWIvZGVmYXVsdE9wdGlvbnMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGZvcm1hdER1cmF0aW9ufSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbmNvbnN0IGRlZmF1bHRGb3JtYXQgPSBbXG4gIFwieWVhcnNcIixcbiAgXCJtb250aHNcIixcbiAgXCJ3ZWVrc1wiLFxuICBcImRheXNcIixcbiAgXCJob3Vyc1wiLFxuICBcIm1pbnV0ZXNcIixcbiAgXCJzZWNvbmRzXCIsXG5dO1xuXG4vKipcbiAqIEBuYW1lIGZvcm1hdER1cmF0aW9uXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEZvcm1hdHMgYSBkdXJhdGlvbiBpbiBodW1hbi1yZWFkYWJsZSBmb3JtYXRcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiBodW1hbi1yZWFkYWJsZSBkdXJhdGlvbiBzdHJpbmcgaS5lLiBcIjkgbW9udGhzIDIgZGF5c1wiXG4gKlxuICogQHBhcmFtIGR1cmF0aW9uIC0gVGhlIGR1cmF0aW9uIHRvIGZvcm1hdFxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgZGF0ZSBzdHJpbmdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9ybWF0IGZ1bGwgZHVyYXRpb25cbiAqIGZvcm1hdER1cmF0aW9uKHtcbiAqICAgeWVhcnM6IDIsXG4gKiAgIG1vbnRoczogOSxcbiAqICAgd2Vla3M6IDEsXG4gKiAgIGRheXM6IDcsXG4gKiAgIGhvdXJzOiA1LFxuICogICBtaW51dGVzOiA5LFxuICogICBzZWNvbmRzOiAzMFxuICogfSlcbiAqIC8vPT4gJzIgeWVhcnMgOSBtb250aHMgMSB3ZWVrIDcgZGF5cyA1IGhvdXJzIDkgbWludXRlcyAzMCBzZWNvbmRzJ1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3JtYXQgcGFydGlhbCBkdXJhdGlvblxuICogZm9ybWF0RHVyYXRpb24oeyBtb250aHM6IDksIGRheXM6IDIgfSlcbiAqIC8vPT4gJzkgbW9udGhzIDIgZGF5cydcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3VzdG9taXplIHRoZSBmb3JtYXRcbiAqIGZvcm1hdER1cmF0aW9uKFxuICogICB7XG4gKiAgICAgeWVhcnM6IDIsXG4gKiAgICAgbW9udGhzOiA5LFxuICogICAgIHdlZWtzOiAxLFxuICogICAgIGRheXM6IDcsXG4gKiAgICAgaG91cnM6IDUsXG4gKiAgICAgbWludXRlczogOSxcbiAqICAgICBzZWNvbmRzOiAzMFxuICogICB9LFxuICogICB7IGZvcm1hdDogWydtb250aHMnLCAnd2Vla3MnXSB9XG4gKiApID09PSAnOSBtb250aHMgMSB3ZWVrJ1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDdXN0b21pemUgdGhlIHplcm9zIHByZXNlbmNlXG4gKiBmb3JtYXREdXJhdGlvbih7IHllYXJzOiAwLCBtb250aHM6IDkgfSlcbiAqIC8vPT4gJzkgbW9udGhzJ1xuICogZm9ybWF0RHVyYXRpb24oeyB5ZWFyczogMCwgbW9udGhzOiA5IH0sIHsgemVybzogdHJ1ZSB9KVxuICogLy89PiAnMCB5ZWFycyA5IG1vbnRocydcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3VzdG9taXplIHRoZSBkZWxpbWl0ZXJcbiAqIGZvcm1hdER1cmF0aW9uKHsgeWVhcnM6IDIsIG1vbnRoczogOSwgd2Vla3M6IDMgfSwgeyBkZWxpbWl0ZXI6ICcsICcgfSlcbiAqIC8vPT4gJzIgeWVhcnMsIDkgbW9udGhzLCAzIHdlZWtzJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RHVyYXRpb24oZHVyYXRpb24sIG9wdGlvbnMpIHtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBnZXREZWZhdWx0T3B0aW9ucygpO1xuICBjb25zdCBsb2NhbGUgPSBvcHRpb25zPy5sb2NhbGUgPz8gZGVmYXVsdE9wdGlvbnMubG9jYWxlID8/IGRlZmF1bHRMb2NhbGU7XG4gIGNvbnN0IGZvcm1hdCA9IG9wdGlvbnM/LmZvcm1hdCA/PyBkZWZhdWx0Rm9ybWF0O1xuICBjb25zdCB6ZXJvID0gb3B0aW9ucz8uemVybyA/PyBmYWxzZTtcbiAgY29uc3QgZGVsaW1pdGVyID0gb3B0aW9ucz8uZGVsaW1pdGVyID8/IFwiIFwiO1xuXG4gIGlmICghbG9jYWxlLmZvcm1hdERpc3RhbmNlKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSBmb3JtYXRcbiAgICAucmVkdWNlKChhY2MsIHVuaXQpID0+IHtcbiAgICAgIGNvbnN0IHRva2VuID0gYHgke3VuaXQucmVwbGFjZSgvKF4uKS8sIChtKSA9PiBtLnRvVXBwZXJDYXNlKCkpfWA7XG4gICAgICBjb25zdCB2YWx1ZSA9IGR1cmF0aW9uW3VuaXRdO1xuICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgKHplcm8gfHwgZHVyYXRpb25bdW5pdF0pKSB7XG4gICAgICAgIHJldHVybiBhY2MuY29uY2F0KGxvY2FsZS5mb3JtYXREaXN0YW5jZSh0b2tlbiwgdmFsdWUpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pXG4gICAgLmpvaW4oZGVsaW1pdGVyKTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGZvcm1hdER1cmF0aW9uO1xuIiwgImltcG9ydCB7IGFkZExlYWRpbmdaZXJvcyB9IGZyb20gXCIuL19saWIvYWRkTGVhZGluZ1plcm9zLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGZvcm1hdElTT30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGZvcm1hdElTT1xuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBGb3JtYXQgdGhlIGRhdGUgYWNjb3JkaW5nIHRvIHRoZSBJU08gODYwMSBzdGFuZGFyZCAoaHR0cHM6Ly9zdXBwb3J0LnNhcy5jb20vZG9jdW1lbnRhdGlvbi9jZGwvZW4vbHJkaWN0LzY0MzE2L0hUTUwvZGVmYXVsdC92aWV3ZXIuaHRtI2EwMDMxNjk4MTQuaHRtKS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgZm9ybWF0dGVkIGRhdGUgc3RyaW5nIGluIElTTyA4NjAxIGZvcm1hdC4gT3B0aW9ucyBtYXkgYmUgcGFzc2VkIHRvIGNvbnRyb2wgdGhlIHBhcnRzIGFuZCBub3RhdGlvbnMgb2YgdGhlIGRhdGUuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgZGF0ZSBzdHJpbmcgKGluIGxvY2FsIHRpbWUgem9uZSlcbiAqXG4gKiBAdGhyb3dzIGBkYXRlYCBtdXN0IG5vdCBiZSBJbnZhbGlkIERhdGVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDE4IFNlcHRlbWJlciAyMDE5IGluIElTTyA4NjAxIGZvcm1hdCAobG9jYWwgdGltZSB6b25lIGlzIFVUQyk6XG4gKiBjb25zdCByZXN1bHQgPSBmb3JtYXRJU08obmV3IERhdGUoMjAxOSwgOCwgMTgsIDE5LCAwLCA1MikpXG4gKiAvLz0+ICcyMDE5LTA5LTE4VDE5OjAwOjUyWidcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDE4IFNlcHRlbWJlciAyMDE5IGluIElTTyA4NjAxLCBzaG9ydCBmb3JtYXQgKGxvY2FsIHRpbWUgem9uZSBpcyBVVEMpOlxuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0SVNPKG5ldyBEYXRlKDIwMTksIDgsIDE4LCAxOSwgMCwgNTIpLCB7IGZvcm1hdDogJ2Jhc2ljJyB9KVxuICogLy89PiAnMjAxOTA5MThUMTkwMDUyJ1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBSZXByZXNlbnQgMTggU2VwdGVtYmVyIDIwMTkgaW4gSVNPIDg2MDEgZm9ybWF0LCBkYXRlIG9ubHk6XG4gKiBjb25zdCByZXN1bHQgPSBmb3JtYXRJU08obmV3IERhdGUoMjAxOSwgOCwgMTgsIDE5LCAwLCA1MiksIHsgcmVwcmVzZW50YXRpb246ICdkYXRlJyB9KVxuICogLy89PiAnMjAxOS0wOS0xOCdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDE4IFNlcHRlbWJlciAyMDE5IGluIElTTyA4NjAxIGZvcm1hdCwgdGltZSBvbmx5IChsb2NhbCB0aW1lIHpvbmUgaXMgVVRDKTpcbiAqIGNvbnN0IHJlc3VsdCA9IGZvcm1hdElTTyhuZXcgRGF0ZSgyMDE5LCA4LCAxOCwgMTksIDAsIDUyKSwgeyByZXByZXNlbnRhdGlvbjogJ3RpbWUnIH0pXG4gKiAvLz0+ICcxOTowMDo1MlonXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRJU08oZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBkYXRlXyA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG5cbiAgaWYgKGlzTmFOKCtkYXRlXykpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkludmFsaWQgdGltZSB2YWx1ZVwiKTtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdCA9IG9wdGlvbnM/LmZvcm1hdCA/PyBcImV4dGVuZGVkXCI7XG4gIGNvbnN0IHJlcHJlc2VudGF0aW9uID0gb3B0aW9ucz8ucmVwcmVzZW50YXRpb24gPz8gXCJjb21wbGV0ZVwiO1xuXG4gIGxldCByZXN1bHQgPSBcIlwiO1xuICBsZXQgdHpPZmZzZXQgPSBcIlwiO1xuXG4gIGNvbnN0IGRhdGVEZWxpbWl0ZXIgPSBmb3JtYXQgPT09IFwiZXh0ZW5kZWRcIiA/IFwiLVwiIDogXCJcIjtcbiAgY29uc3QgdGltZURlbGltaXRlciA9IGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiID8gXCI6XCIgOiBcIlwiO1xuXG4gIC8vIFJlcHJlc2VudGF0aW9uIGlzIGVpdGhlciAnZGF0ZScgb3IgJ2NvbXBsZXRlJ1xuICBpZiAocmVwcmVzZW50YXRpb24gIT09IFwidGltZVwiKSB7XG4gICAgY29uc3QgZGF5ID0gYWRkTGVhZGluZ1plcm9zKGRhdGVfLmdldERhdGUoKSwgMik7XG4gICAgY29uc3QgbW9udGggPSBhZGRMZWFkaW5nWmVyb3MoZGF0ZV8uZ2V0TW9udGgoKSArIDEsIDIpO1xuICAgIGNvbnN0IHllYXIgPSBhZGRMZWFkaW5nWmVyb3MoZGF0ZV8uZ2V0RnVsbFllYXIoKSwgNCk7XG5cbiAgICAvLyB5eXl5TU1kZCBvciB5eXl5LU1NLWRkLlxuICAgIHJlc3VsdCA9IGAke3llYXJ9JHtkYXRlRGVsaW1pdGVyfSR7bW9udGh9JHtkYXRlRGVsaW1pdGVyfSR7ZGF5fWA7XG4gIH1cblxuICAvLyBSZXByZXNlbnRhdGlvbiBpcyBlaXRoZXIgJ3RpbWUnIG9yICdjb21wbGV0ZSdcbiAgaWYgKHJlcHJlc2VudGF0aW9uICE9PSBcImRhdGVcIikge1xuICAgIC8vIEFkZCB0aGUgdGltZXpvbmUuXG4gICAgY29uc3Qgb2Zmc2V0ID0gZGF0ZV8uZ2V0VGltZXpvbmVPZmZzZXQoKTtcblxuICAgIGlmIChvZmZzZXQgIT09IDApIHtcbiAgICAgIGNvbnN0IGFic29sdXRlT2Zmc2V0ID0gTWF0aC5hYnMob2Zmc2V0KTtcbiAgICAgIGNvbnN0IGhvdXJPZmZzZXQgPSBhZGRMZWFkaW5nWmVyb3MoTWF0aC50cnVuYyhhYnNvbHV0ZU9mZnNldCAvIDYwKSwgMik7XG4gICAgICBjb25zdCBtaW51dGVPZmZzZXQgPSBhZGRMZWFkaW5nWmVyb3MoYWJzb2x1dGVPZmZzZXQgJSA2MCwgMik7XG4gICAgICAvLyBJZiBsZXNzIHRoYW4gMCwgdGhlIHNpZ24gaXMgKywgYmVjYXVzZSBpdCBpcyBhaGVhZCBvZiB0aW1lLlxuICAgICAgY29uc3Qgc2lnbiA9IG9mZnNldCA8IDAgPyBcIitcIiA6IFwiLVwiO1xuXG4gICAgICB0ek9mZnNldCA9IGAke3NpZ259JHtob3VyT2Zmc2V0fToke21pbnV0ZU9mZnNldH1gO1xuICAgIH0gZWxzZSB7XG4gICAgICB0ek9mZnNldCA9IFwiWlwiO1xuICAgIH1cblxuICAgIGNvbnN0IGhvdXIgPSBhZGRMZWFkaW5nWmVyb3MoZGF0ZV8uZ2V0SG91cnMoKSwgMik7XG4gICAgY29uc3QgbWludXRlID0gYWRkTGVhZGluZ1plcm9zKGRhdGVfLmdldE1pbnV0ZXMoKSwgMik7XG4gICAgY29uc3Qgc2Vjb25kID0gYWRkTGVhZGluZ1plcm9zKGRhdGVfLmdldFNlY29uZHMoKSwgMik7XG5cbiAgICAvLyBJZiB0aGVyZSdzIGFsc28gZGF0ZSwgc2VwYXJhdGUgaXQgd2l0aCB0aW1lIHdpdGggJ1QnXG4gICAgY29uc3Qgc2VwYXJhdG9yID0gcmVzdWx0ID09PSBcIlwiID8gXCJcIiA6IFwiVFwiO1xuXG4gICAgLy8gQ3JlYXRlcyBhIHRpbWUgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgaG91ciwgbWludXRlLCBhbmQgc2Vjb25kLCBzZXBhcmF0ZWQgYnkgZGVsaW1pdGVycywgaWYgZGVmaW5lZC5cbiAgICBjb25zdCB0aW1lID0gW2hvdXIsIG1pbnV0ZSwgc2Vjb25kXS5qb2luKHRpbWVEZWxpbWl0ZXIpO1xuXG4gICAgLy8gSEhtbXNzIG9yIEhIOm1tOnNzLlxuICAgIHJlc3VsdCA9IGAke3Jlc3VsdH0ke3NlcGFyYXRvcn0ke3RpbWV9JHt0ek9mZnNldH1gO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBmb3JtYXRJU087XG4iLCAiaW1wb3J0IHsgYWRkTGVhZGluZ1plcm9zIH0gZnJvbSBcIi4vX2xpYi9hZGRMZWFkaW5nWmVyb3MuanNcIjtcbmltcG9ydCB7IGlzVmFsaWQgfSBmcm9tIFwiLi9pc1ZhbGlkLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGZvcm1hdElTTzkwNzV9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBmb3JtYXRJU085MDc1XG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEZvcm1hdCB0aGUgZGF0ZSBhY2NvcmRpbmcgdG8gdGhlIElTTyA5MDc1IHN0YW5kYXJkIChodHRwczovL2Rldi5teXNxbC5jb20vZG9jL3JlZm1hbi81LjcvZW4vZGF0ZS1hbmQtdGltZS1mdW5jdGlvbnMuaHRtbCNmdW5jdGlvbl9nZXQtZm9ybWF0KS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgZm9ybWF0dGVkIGRhdGUgc3RyaW5nIGluIElTTyA5MDc1IGZvcm1hdC4gT3B0aW9ucyBtYXkgYmUgcGFzc2VkIHRvIGNvbnRyb2wgdGhlIHBhcnRzIGFuZCBub3RhdGlvbnMgb2YgdGhlIGRhdGUuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgZGF0ZSBzdHJpbmdcbiAqXG4gKiBAdGhyb3dzIGBkYXRlYCBtdXN0IG5vdCBiZSBJbnZhbGlkIERhdGVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDE4IFNlcHRlbWJlciAyMDE5IGluIElTTyA5MDc1IGZvcm1hdDpcbiAqIGNvbnN0IHJlc3VsdCA9IGZvcm1hdElTTzkwNzUobmV3IERhdGUoMjAxOSwgOCwgMTgsIDE5LCAwLCA1MikpXG4gKiAvLz0+ICcyMDE5LTA5LTE4IDE5OjAwOjUyJ1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBSZXByZXNlbnQgMTggU2VwdGVtYmVyIDIwMTkgaW4gSVNPIDkwNzUsIHNob3J0IGZvcm1hdDpcbiAqIGNvbnN0IHJlc3VsdCA9IGZvcm1hdElTTzkwNzUobmV3IERhdGUoMjAxOSwgOCwgMTgsIDE5LCAwLCA1MiksIHsgZm9ybWF0OiAnYmFzaWMnIH0pXG4gKiAvLz0+ICcyMDE5MDkxOCAxOTAwNTInXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFJlcHJlc2VudCAxOCBTZXB0ZW1iZXIgMjAxOSBpbiBJU08gOTA3NSBmb3JtYXQsIGRhdGUgb25seTpcbiAqIGNvbnN0IHJlc3VsdCA9IGZvcm1hdElTTzkwNzUobmV3IERhdGUoMjAxOSwgOCwgMTgsIDE5LCAwLCA1MiksIHsgcmVwcmVzZW50YXRpb246ICdkYXRlJyB9KVxuICogLy89PiAnMjAxOS0wOS0xOCdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDE4IFNlcHRlbWJlciAyMDE5IGluIElTTyA5MDc1IGZvcm1hdCwgdGltZSBvbmx5OlxuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0SVNPOTA3NShuZXcgRGF0ZSgyMDE5LCA4LCAxOCwgMTksIDAsIDUyKSwgeyByZXByZXNlbnRhdGlvbjogJ3RpbWUnIH0pXG4gKiAvLz0+ICcxOTowMDo1MidcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdElTTzkwNzUoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBkYXRlXyA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG5cbiAgaWYgKCFpc1ZhbGlkKGRhdGVfKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiSW52YWxpZCB0aW1lIHZhbHVlXCIpO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucz8uZm9ybWF0ID8/IFwiZXh0ZW5kZWRcIjtcbiAgY29uc3QgcmVwcmVzZW50YXRpb24gPSBvcHRpb25zPy5yZXByZXNlbnRhdGlvbiA/PyBcImNvbXBsZXRlXCI7XG5cbiAgbGV0IHJlc3VsdCA9IFwiXCI7XG5cbiAgY29uc3QgZGF0ZURlbGltaXRlciA9IGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiID8gXCItXCIgOiBcIlwiO1xuICBjb25zdCB0aW1lRGVsaW1pdGVyID0gZm9ybWF0ID09PSBcImV4dGVuZGVkXCIgPyBcIjpcIiA6IFwiXCI7XG5cbiAgLy8gUmVwcmVzZW50YXRpb24gaXMgZWl0aGVyICdkYXRlJyBvciAnY29tcGxldGUnXG4gIGlmIChyZXByZXNlbnRhdGlvbiAhPT0gXCJ0aW1lXCIpIHtcbiAgICBjb25zdCBkYXkgPSBhZGRMZWFkaW5nWmVyb3MoZGF0ZV8uZ2V0RGF0ZSgpLCAyKTtcbiAgICBjb25zdCBtb250aCA9IGFkZExlYWRpbmdaZXJvcyhkYXRlXy5nZXRNb250aCgpICsgMSwgMik7XG4gICAgY29uc3QgeWVhciA9IGFkZExlYWRpbmdaZXJvcyhkYXRlXy5nZXRGdWxsWWVhcigpLCA0KTtcblxuICAgIC8vIHl5eXlNTWRkIG9yIHl5eXktTU0tZGQuXG4gICAgcmVzdWx0ID0gYCR7eWVhcn0ke2RhdGVEZWxpbWl0ZXJ9JHttb250aH0ke2RhdGVEZWxpbWl0ZXJ9JHtkYXl9YDtcbiAgfVxuXG4gIC8vIFJlcHJlc2VudGF0aW9uIGlzIGVpdGhlciAndGltZScgb3IgJ2NvbXBsZXRlJ1xuICBpZiAocmVwcmVzZW50YXRpb24gIT09IFwiZGF0ZVwiKSB7XG4gICAgY29uc3QgaG91ciA9IGFkZExlYWRpbmdaZXJvcyhkYXRlXy5nZXRIb3VycygpLCAyKTtcbiAgICBjb25zdCBtaW51dGUgPSBhZGRMZWFkaW5nWmVyb3MoZGF0ZV8uZ2V0TWludXRlcygpLCAyKTtcbiAgICBjb25zdCBzZWNvbmQgPSBhZGRMZWFkaW5nWmVyb3MoZGF0ZV8uZ2V0U2Vjb25kcygpLCAyKTtcblxuICAgIC8vIElmIHRoZXJlJ3MgYWxzbyBkYXRlLCBzZXBhcmF0ZSBpdCB3aXRoIHRpbWUgd2l0aCBhIHNwYWNlXG4gICAgY29uc3Qgc2VwYXJhdG9yID0gcmVzdWx0ID09PSBcIlwiID8gXCJcIiA6IFwiIFwiO1xuXG4gICAgLy8gSEhtbXNzIG9yIEhIOm1tOnNzLlxuICAgIHJlc3VsdCA9IGAke3Jlc3VsdH0ke3NlcGFyYXRvcn0ke2hvdXJ9JHt0aW1lRGVsaW1pdGVyfSR7bWludXRlfSR7dGltZURlbGltaXRlcn0ke3NlY29uZH1gO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBmb3JtYXRJU085MDc1O1xuIiwgIi8qKlxuICogQG5hbWUgZm9ybWF0SVNPRHVyYXRpb25cbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgRm9ybWF0IGEgZHVyYXRpb24gb2JqZWN0IGFjY29yZGluZyBhcyBJU08gODYwMSBkdXJhdGlvbiBzdHJpbmdcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEZvcm1hdCBhIGR1cmF0aW9uIG9iamVjdCBhY2NvcmRpbmcgdG8gdGhlIElTTyA4NjAxIGR1cmF0aW9uIHN0YW5kYXJkIChodHRwczovL3d3dy5kaWdpLmNvbS9yZXNvdXJjZXMvZG9jdW1lbnRhdGlvbi9kaWdpZG9jcy8vOTAwMDE0ODgtMTMvcmVmZXJlbmNlL3JfaXNvXzg2MDFfZHVyYXRpb25fZm9ybWF0Lmh0bSlcbiAqXG4gKiBAcGFyYW0gZHVyYXRpb24gLSBUaGUgZHVyYXRpb24gdG8gZm9ybWF0XG4gKlxuICogQHJldHVybnMgVGhlIElTTyA4NjAxIGR1cmF0aW9uIHN0cmluZ1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3JtYXQgdGhlIGdpdmVuIGR1cmF0aW9uIGFzIElTTyA4NjAxIHN0cmluZ1xuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0SVNPRHVyYXRpb24oe1xuICogICB5ZWFyczogMzksXG4gKiAgIG1vbnRoczogMixcbiAqICAgZGF5czogMjAsXG4gKiAgIGhvdXJzOiA3LFxuICogICBtaW51dGVzOiA1LFxuICogICBzZWNvbmRzOiAwXG4gKiB9KVxuICogLy89PiAnUDM5WTJNMjBEVDBIME0wUydcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdElTT0R1cmF0aW9uKGR1cmF0aW9uKSB7XG4gIGNvbnN0IHtcbiAgICB5ZWFycyA9IDAsXG4gICAgbW9udGhzID0gMCxcbiAgICBkYXlzID0gMCxcbiAgICBob3VycyA9IDAsXG4gICAgbWludXRlcyA9IDAsXG4gICAgc2Vjb25kcyA9IDAsXG4gIH0gPSBkdXJhdGlvbjtcblxuICByZXR1cm4gYFAke3llYXJzfVkke21vbnRoc31NJHtkYXlzfURUJHtob3Vyc31IJHttaW51dGVzfU0ke3NlY29uZHN9U2A7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0SVNPRHVyYXRpb247XG4iLCAiaW1wb3J0IHsgYWRkTGVhZGluZ1plcm9zIH0gZnJvbSBcIi4vX2xpYi9hZGRMZWFkaW5nWmVyb3MuanNcIjtcbmltcG9ydCB7IGlzVmFsaWQgfSBmcm9tIFwiLi9pc1ZhbGlkLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGZvcm1hdFJGQzMzMzl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBmb3JtYXRSRkMzMzM5XG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEZvcm1hdCB0aGUgZGF0ZSBhY2NvcmRpbmcgdG8gdGhlIFJGQyAzMzM5IHN0YW5kYXJkIChodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSNzZWN0aW9uLTUuNikuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlIHN0cmluZyBpbiBSRkMgMzMzOSBmb3JtYXQuIE9wdGlvbnMgbWF5IGJlIHBhc3NlZCB0byBjb250cm9sIHRoZSBwYXJ0cyBhbmQgbm90YXRpb25zIG9mIHRoZSBkYXRlLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGRhdGUgc3RyaW5nXG4gKlxuICogQHRocm93cyBgZGF0ZWAgbXVzdCBub3QgYmUgSW52YWxpZCBEYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFJlcHJlc2VudCAxOCBTZXB0ZW1iZXIgMjAxOSBpbiBSRkMgMzMzOSBmb3JtYXQ6XG4gKiBmb3JtYXRSRkMzMzM5KG5ldyBEYXRlKDIwMTksIDgsIDE4LCAxOSwgMCwgNTIpKVxuICogLy89PiAnMjAxOS0wOS0xOFQxOTowMDo1MlonXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFJlcHJlc2VudCAxOCBTZXB0ZW1iZXIgMjAxOSBpbiBSRkMgMzMzOSBmb3JtYXQsIDMgZGlnaXRzIG9mIHNlY29uZCBmcmFjdGlvblxuICogZm9ybWF0UkZDMzMzOShuZXcgRGF0ZSgyMDE5LCA4LCAxOCwgMTksIDAsIDUyLCAyMzQpLCB7XG4gKiAgIGZyYWN0aW9uRGlnaXRzOiAzXG4gKiB9KVxuICogLy89PiAnMjAxOS0wOS0xOFQxOTowMDo1Mi4yMzRaJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UkZDMzMzOShkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IGRhdGVfID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcblxuICBpZiAoIWlzVmFsaWQoZGF0ZV8pKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJJbnZhbGlkIHRpbWUgdmFsdWVcIik7XG4gIH1cblxuICBjb25zdCBmcmFjdGlvbkRpZ2l0cyA9IG9wdGlvbnM/LmZyYWN0aW9uRGlnaXRzID8/IDA7XG5cbiAgY29uc3QgZGF5ID0gYWRkTGVhZGluZ1plcm9zKGRhdGVfLmdldERhdGUoKSwgMik7XG4gIGNvbnN0IG1vbnRoID0gYWRkTGVhZGluZ1plcm9zKGRhdGVfLmdldE1vbnRoKCkgKyAxLCAyKTtcbiAgY29uc3QgeWVhciA9IGRhdGVfLmdldEZ1bGxZZWFyKCk7XG5cbiAgY29uc3QgaG91ciA9IGFkZExlYWRpbmdaZXJvcyhkYXRlXy5nZXRIb3VycygpLCAyKTtcbiAgY29uc3QgbWludXRlID0gYWRkTGVhZGluZ1plcm9zKGRhdGVfLmdldE1pbnV0ZXMoKSwgMik7XG4gIGNvbnN0IHNlY29uZCA9IGFkZExlYWRpbmdaZXJvcyhkYXRlXy5nZXRTZWNvbmRzKCksIDIpO1xuXG4gIGxldCBmcmFjdGlvbmFsU2Vjb25kID0gXCJcIjtcbiAgaWYgKGZyYWN0aW9uRGlnaXRzID4gMCkge1xuICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IGRhdGVfLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIGNvbnN0IGZyYWN0aW9uYWxTZWNvbmRzID0gTWF0aC50cnVuYyhcbiAgICAgIG1pbGxpc2Vjb25kcyAqIE1hdGgucG93KDEwLCBmcmFjdGlvbkRpZ2l0cyAtIDMpLFxuICAgICk7XG4gICAgZnJhY3Rpb25hbFNlY29uZCA9IFwiLlwiICsgYWRkTGVhZGluZ1plcm9zKGZyYWN0aW9uYWxTZWNvbmRzLCBmcmFjdGlvbkRpZ2l0cyk7XG4gIH1cblxuICBsZXQgb2Zmc2V0ID0gXCJcIjtcbiAgY29uc3QgdHpPZmZzZXQgPSBkYXRlXy5nZXRUaW1lem9uZU9mZnNldCgpO1xuXG4gIGlmICh0ek9mZnNldCAhPT0gMCkge1xuICAgIGNvbnN0IGFic29sdXRlT2Zmc2V0ID0gTWF0aC5hYnModHpPZmZzZXQpO1xuICAgIGNvbnN0IGhvdXJPZmZzZXQgPSBhZGRMZWFkaW5nWmVyb3MoTWF0aC50cnVuYyhhYnNvbHV0ZU9mZnNldCAvIDYwKSwgMik7XG4gICAgY29uc3QgbWludXRlT2Zmc2V0ID0gYWRkTGVhZGluZ1plcm9zKGFic29sdXRlT2Zmc2V0ICUgNjAsIDIpO1xuICAgIC8vIElmIGxlc3MgdGhhbiAwLCB0aGUgc2lnbiBpcyArLCBiZWNhdXNlIGl0IGlzIGFoZWFkIG9mIHRpbWUuXG4gICAgY29uc3Qgc2lnbiA9IHR6T2Zmc2V0IDwgMCA/IFwiK1wiIDogXCItXCI7XG5cbiAgICBvZmZzZXQgPSBgJHtzaWdufSR7aG91ck9mZnNldH06JHttaW51dGVPZmZzZXR9YDtcbiAgfSBlbHNlIHtcbiAgICBvZmZzZXQgPSBcIlpcIjtcbiAgfVxuXG4gIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1UJHtob3VyfToke21pbnV0ZX06JHtzZWNvbmR9JHtmcmFjdGlvbmFsU2Vjb25kfSR7b2Zmc2V0fWA7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0UkZDMzMzOTtcbiIsICJpbXBvcnQgeyBhZGRMZWFkaW5nWmVyb3MgfSBmcm9tIFwiLi9fbGliL2FkZExlYWRpbmdaZXJvcy5qc1wiO1xuaW1wb3J0IHsgaXNWYWxpZCB9IGZyb20gXCIuL2lzVmFsaWQuanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG5jb25zdCBkYXlzID0gW1wiU3VuXCIsIFwiTW9uXCIsIFwiVHVlXCIsIFwiV2VkXCIsIFwiVGh1XCIsIFwiRnJpXCIsIFwiU2F0XCJdO1xuXG5jb25zdCBtb250aHMgPSBbXG4gIFwiSmFuXCIsXG4gIFwiRmViXCIsXG4gIFwiTWFyXCIsXG4gIFwiQXByXCIsXG4gIFwiTWF5XCIsXG4gIFwiSnVuXCIsXG4gIFwiSnVsXCIsXG4gIFwiQXVnXCIsXG4gIFwiU2VwXCIsXG4gIFwiT2N0XCIsXG4gIFwiTm92XCIsXG4gIFwiRGVjXCIsXG5dO1xuXG4vKipcbiAqIEBuYW1lIGZvcm1hdFJGQzcyMzFcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgRm9ybWF0IHRoZSBkYXRlIGFjY29yZGluZyB0byB0aGUgUkZDIDcyMzEgc3RhbmRhcmQgKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNy4xLjEuMSkuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlIHN0cmluZyBpbiBSRkMgNzIzMSBmb3JtYXQuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYWx3YXlzIGJlIGluIFVUQyB0aW1lem9uZS5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW5hbCBkYXRlXG4gKlxuICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBkYXRlIHN0cmluZ1xuICpcbiAqIEB0aHJvd3MgYGRhdGVgIG11c3Qgbm90IGJlIEludmFsaWQgRGF0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBSZXByZXNlbnQgMTggU2VwdGVtYmVyIDIwMTkgaW4gUkZDIDcyMzEgZm9ybWF0OlxuICogY29uc3QgcmVzdWx0ID0gZm9ybWF0UkZDNzIzMShuZXcgRGF0ZSgyMDE5LCA4LCAxOCwgMTksIDAsIDUyKSlcbiAqIC8vPT4gJ1dlZCwgMTggU2VwIDIwMTkgMTk6MDA6NTIgR01UJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UkZDNzIzMShkYXRlKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUpO1xuXG4gIGlmICghaXNWYWxpZChfZGF0ZSkpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkludmFsaWQgdGltZSB2YWx1ZVwiKTtcbiAgfVxuXG4gIGNvbnN0IGRheU5hbWUgPSBkYXlzW19kYXRlLmdldFVUQ0RheSgpXTtcbiAgY29uc3QgZGF5T2ZNb250aCA9IGFkZExlYWRpbmdaZXJvcyhfZGF0ZS5nZXRVVENEYXRlKCksIDIpO1xuICBjb25zdCBtb250aE5hbWUgPSBtb250aHNbX2RhdGUuZ2V0VVRDTW9udGgoKV07XG4gIGNvbnN0IHllYXIgPSBfZGF0ZS5nZXRVVENGdWxsWWVhcigpO1xuXG4gIGNvbnN0IGhvdXIgPSBhZGRMZWFkaW5nWmVyb3MoX2RhdGUuZ2V0VVRDSG91cnMoKSwgMik7XG4gIGNvbnN0IG1pbnV0ZSA9IGFkZExlYWRpbmdaZXJvcyhfZGF0ZS5nZXRVVENNaW51dGVzKCksIDIpO1xuICBjb25zdCBzZWNvbmQgPSBhZGRMZWFkaW5nWmVyb3MoX2RhdGUuZ2V0VVRDU2Vjb25kcygpLCAyKTtcblxuICAvLyBSZXN1bHQgdmFyaWFibGVzLlxuICByZXR1cm4gYCR7ZGF5TmFtZX0sICR7ZGF5T2ZNb250aH0gJHttb250aE5hbWV9ICR7eWVhcn0gJHtob3VyfToke21pbnV0ZX06JHtzZWNvbmR9IEdNVGA7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0UkZDNzIzMTtcbiIsICJpbXBvcnQgeyBkZWZhdWx0TG9jYWxlIH0gZnJvbSBcIi4vX2xpYi9kZWZhdWx0TG9jYWxlLmpzXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0T3B0aW9ucyB9IGZyb20gXCIuL19saWIvZGVmYXVsdE9wdGlvbnMuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVEYXRlcy5qc1wiO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzIH0gZnJvbSBcIi4vZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzLmpzXCI7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwiLi9mb3JtYXQuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGZvcm1hdFJlbGF0aXZlfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZm9ybWF0UmVsYXRpdmVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgUmVwcmVzZW50IHRoZSBkYXRlIGluIHdvcmRzIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBiYXNlIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXByZXNlbnQgdGhlIGRhdGUgaW4gd29yZHMgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIGJhc2UgZGF0ZS5cbiAqXG4gKiB8IERpc3RhbmNlIHRvIHRoZSBiYXNlIGRhdGUgfCBSZXN1bHQgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCBQcmV2aW91cyA2IGRheXMgICAgICAgICAgIHwgbGFzdCBTdW5kYXkgYXQgMDQ6MzAgQU0gICB8XG4gKiB8IExhc3QgZGF5ICAgICAgICAgICAgICAgICAgfCB5ZXN0ZXJkYXkgYXQgMDQ6MzAgQU0gICAgIHxcbiAqIHwgU2FtZSBkYXkgICAgICAgICAgICAgICAgICB8IHRvZGF5IGF0IDA0OjMwIEFNICAgICAgICAgfFxuICogfCBOZXh0IGRheSAgICAgICAgICAgICAgICAgIHwgdG9tb3Jyb3cgYXQgMDQ6MzAgQU0gICAgICB8XG4gKiB8IE5leHQgNiBkYXlzICAgICAgICAgICAgICAgfCBTdW5kYXkgYXQgMDQ6MzAgQU0gICAgICAgIHxcbiAqIHwgT3RoZXIgICAgICAgICAgICAgICAgICAgICB8IDEyLzMxLzIwMTcgICAgICAgICAgICAgICAgfFxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gZm9ybWF0XG4gKiBAcGFyYW0gYmFzZURhdGUgLSBUaGUgZGF0ZSB0byBjb21wYXJlIHdpdGhcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGluIHdvcmRzXG4gKlxuICogQHRocm93cyBgZGF0ZWAgbXVzdCBub3QgYmUgSW52YWxpZCBEYXRlXG4gKiBAdGhyb3dzIGBiYXNlRGF0ZWAgbXVzdCBub3QgYmUgSW52YWxpZCBEYXRlXG4gKiBAdGhyb3dzIGBvcHRpb25zLmxvY2FsZWAgbXVzdCBjb250YWluIGBsb2NhbGl6ZWAgcHJvcGVydHlcbiAqIEB0aHJvd3MgYG9wdGlvbnMubG9jYWxlYCBtdXN0IGNvbnRhaW4gYGZvcm1hdExvbmdgIHByb3BlcnR5XG4gKiBAdGhyb3dzIGBvcHRpb25zLmxvY2FsZWAgbXVzdCBjb250YWluIGBmb3JtYXRSZWxhdGl2ZWAgcHJvcGVydHlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IHRoZSBkYXRlIG9mIDYgZGF5cyBhZ28gaW4gd29yZHMgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIGJhc2UgZGF0ZS4gSW4gdGhpcyBleGFtcGxlLCB0b2RheSBpcyBXZWRuZXNkYXlcbiAqIGNvbnN0IHJlc3VsdCA9IGZvcm1hdFJlbGF0aXZlKHN1YkRheXMobmV3IERhdGUoKSwgNiksIG5ldyBEYXRlKCkpXG4gKiAvLz0+IFwibGFzdCBUaHVyc2RheSBhdCAxMjo0NSBBTVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRSZWxhdGl2ZShkYXRlLCBiYXNlRGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBbZGF0ZV8sIGJhc2VEYXRlX10gPSBub3JtYWxpemVEYXRlcyhvcHRpb25zPy5pbiwgZGF0ZSwgYmFzZURhdGUpO1xuXG4gIGNvbnN0IGRlZmF1bHRPcHRpb25zID0gZ2V0RGVmYXVsdE9wdGlvbnMoKTtcbiAgY29uc3QgbG9jYWxlID0gb3B0aW9ucz8ubG9jYWxlID8/IGRlZmF1bHRPcHRpb25zLmxvY2FsZSA/PyBkZWZhdWx0TG9jYWxlO1xuICBjb25zdCB3ZWVrU3RhcnRzT24gPVxuICAgIG9wdGlvbnM/LndlZWtTdGFydHNPbiA/P1xuICAgIG9wdGlvbnM/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uID8/XG4gICAgZGVmYXVsdE9wdGlvbnMud2Vla1N0YXJ0c09uID8/XG4gICAgZGVmYXVsdE9wdGlvbnMubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24gPz9cbiAgICAwO1xuXG4gIGNvbnN0IGRpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMoZGF0ZV8sIGJhc2VEYXRlXyk7XG5cbiAgaWYgKGlzTmFOKGRpZmYpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJJbnZhbGlkIHRpbWUgdmFsdWVcIik7XG4gIH1cblxuICBsZXQgdG9rZW47XG4gIGlmIChkaWZmIDwgLTYpIHtcbiAgICB0b2tlbiA9IFwib3RoZXJcIjtcbiAgfSBlbHNlIGlmIChkaWZmIDwgLTEpIHtcbiAgICB0b2tlbiA9IFwibGFzdFdlZWtcIjtcbiAgfSBlbHNlIGlmIChkaWZmIDwgMCkge1xuICAgIHRva2VuID0gXCJ5ZXN0ZXJkYXlcIjtcbiAgfSBlbHNlIGlmIChkaWZmIDwgMSkge1xuICAgIHRva2VuID0gXCJ0b2RheVwiO1xuICB9IGVsc2UgaWYgKGRpZmYgPCAyKSB7XG4gICAgdG9rZW4gPSBcInRvbW9ycm93XCI7XG4gIH0gZWxzZSBpZiAoZGlmZiA8IDcpIHtcbiAgICB0b2tlbiA9IFwibmV4dFdlZWtcIjtcbiAgfSBlbHNlIHtcbiAgICB0b2tlbiA9IFwib3RoZXJcIjtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdFN0ciA9IGxvY2FsZS5mb3JtYXRSZWxhdGl2ZSh0b2tlbiwgZGF0ZV8sIGJhc2VEYXRlXywge1xuICAgIGxvY2FsZSxcbiAgICB3ZWVrU3RhcnRzT24sXG4gIH0pO1xuICByZXR1cm4gZm9ybWF0KGRhdGVfLCBmb3JtYXRTdHIsIHsgbG9jYWxlLCB3ZWVrU3RhcnRzT24gfSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZm9ybWF0UmVsYXRpdmU7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBmcm9tVW5peFRpbWV9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBmcm9tVW5peFRpbWVcbiAqIEBjYXRlZ29yeSBUaW1lc3RhbXAgSGVscGVyc1xuICogQHN1bW1hcnkgQ3JlYXRlIGEgZGF0ZSBmcm9tIGEgVW5peCB0aW1lc3RhbXAuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDcmVhdGUgYSBkYXRlIGZyb20gYSBVbml4IHRpbWVzdGFtcCAoaW4gc2Vjb25kcykuIERlY2ltYWwgdmFsdWVzIHdpbGwgYmUgZGlzY2FyZGVkLlxuICpcbiAqIEBwYXJhbSB1bml4VGltZSAtIFRoZSBnaXZlbiBVbml4IHRpbWVzdGFtcCAoaW4gc2Vjb25kcylcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy4gQWxsb3dzIHRvIHBhc3MgYSBjb250ZXh0LlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENyZWF0ZSB0aGUgZGF0ZSAyOSBGZWJydWFyeSAyMDEyIDExOjQ1OjA1OlxuICogY29uc3QgcmVzdWx0ID0gZnJvbVVuaXhUaW1lKDEzMzA1MTU5MDUpXG4gKiAvLz0+IFdlZCBGZWIgMjkgMjAxMiAxMTo0NTowNVxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVVuaXhUaW1lKHVuaXhUaW1lLCBvcHRpb25zKSB7XG4gIHJldHVybiB0b0RhdGUodW5peFRpbWUgKiAxMDAwLCBvcHRpb25zPy5pbik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZnJvbVVuaXhUaW1lO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZ2V0RGF0ZX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGdldERhdGVcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGdpdmVuIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF5IG9mIG1vbnRoXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIGRheSBvZiB0aGUgbW9udGggaXMgMjkgRmVicnVhcnkgMjAxMj9cbiAqIGNvbnN0IHJlc3VsdCA9IGdldERhdGUobmV3IERhdGUoMjAxMiwgMSwgMjkpKVxuICogLy89PiAyOVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZShkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pLmdldERhdGUoKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBnZXREYXRlO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZ2V0RGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZ2V0RGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGdpdmVuIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF5IG9mIHdlZWssIDAgcmVwcmVzZW50cyBTdW5kYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hpY2ggZGF5IG9mIHRoZSB3ZWVrIGlzIDI5IEZlYnJ1YXJ5IDIwMTI/XG4gKiBjb25zdCByZXN1bHQgPSBnZXREYXkobmV3IERhdGUoMjAxMiwgMSwgMjkpKVxuICogLy89PiAzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXkoZGF0ZSwgb3B0aW9ucykge1xuICByZXR1cm4gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKS5nZXREYXkoKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBnZXREYXk7XG4iLCAiaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuL2NvbnN0cnVjdEZyb20uanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZ2V0RGF5c0luTW9udGh9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBnZXREYXlzSW5Nb250aFxuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aCBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aCBvZiB0aGUgZ2l2ZW4gZGF0ZSwgY29uc2lkZXJpbmcgdGhlIGNvbnRleHQgaWYgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGhcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgZGF5cyBhcmUgaW4gRmVicnVhcnkgMjAwMD9cbiAqIGNvbnN0IHJlc3VsdCA9IGdldERheXNJbk1vbnRoKG5ldyBEYXRlKDIwMDAsIDEpKVxuICogLy89PiAyOVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF5c0luTW9udGgoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGNvbnN0IHllYXIgPSBfZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBtb250aEluZGV4ID0gX2RhdGUuZ2V0TW9udGgoKTtcbiAgY29uc3QgbGFzdERheU9mTW9udGggPSBjb25zdHJ1Y3RGcm9tKF9kYXRlLCAwKTtcbiAgbGFzdERheU9mTW9udGguc2V0RnVsbFllYXIoeWVhciwgbW9udGhJbmRleCArIDEsIDApO1xuICBsYXN0RGF5T2ZNb250aC5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGxhc3REYXlPZk1vbnRoLmdldERhdGUoKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBnZXREYXlzSW5Nb250aDtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBpc0xlYXBZZWFyXG4gKiBAY2F0ZWdvcnkgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZ2l2ZW4gZGF0ZSBpbiB0aGUgbGVhcCB5ZWFyP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIGRhdGUgaW4gdGhlIGxlYXAgeWVhcj9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIGluIHRoZSBsZWFwIHllYXJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSXMgMSBTZXB0ZW1iZXIgMjAxMiBpbiB0aGUgbGVhcCB5ZWFyP1xuICogY29uc3QgcmVzdWx0ID0gaXNMZWFwWWVhcihuZXcgRGF0ZSgyMDEyLCA4LCAxKSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNMZWFwWWVhcihkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgeWVhciA9IF9kYXRlLmdldEZ1bGxZZWFyKCk7XG4gIHJldHVybiB5ZWFyICUgNDAwID09PSAwIHx8ICh5ZWFyICUgNCA9PT0gMCAmJiB5ZWFyICUgMTAwICE9PSAwKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc0xlYXBZZWFyO1xuIiwgImltcG9ydCB7IGlzTGVhcFllYXIgfSBmcm9tIFwiLi9pc0xlYXBZZWFyLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGdldERheXNJblllYXJ9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBnZXREYXlzSW5ZZWFyXG4gKiBAY2F0ZWdvcnkgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgeWVhciBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSB5ZWFyIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGdpdmVuIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIHllYXJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSG93IG1hbnkgZGF5cyBhcmUgaW4gMjAxMj9cbiAqIGNvbnN0IHJlc3VsdCA9IGdldERheXNJblllYXIobmV3IERhdGUoMjAxMiwgMCwgMSkpXG4gKiAvLz0+IDM2NlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF5c0luWWVhcihkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgaWYgKE51bWJlci5pc05hTigrX2RhdGUpKSByZXR1cm4gTmFOO1xuICByZXR1cm4gaXNMZWFwWWVhcihfZGF0ZSkgPyAzNjYgOiAzNjU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZ2V0RGF5c0luWWVhcjtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGdldERlY2FkZX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGdldERlY2FkZVxuICogQGNhdGVnb3J5IERlY2FkZSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIGRlY2FkZSBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgZGVjYWRlIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGdpdmVuIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSB5ZWFyIG9mIGRlY2FkZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGljaCBkZWNhZGUgYmVsb25ncyAyNyBOb3ZlbWJlciAxOTQyP1xuICogY29uc3QgcmVzdWx0ID0gZ2V0RGVjYWRlKG5ldyBEYXRlKDE5NDIsIDEwLCAyNykpXG4gKiAvLz0+IDE5NDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlY2FkZShkYXRlLCBvcHRpb25zKSB7XG4gIC8vIFRPRE86IFN3aXRjaCB0byBtb3JlIHRlY2huaWNhbCBkZWZpbml0aW9uIGluIG9mIGRlY2FkZXMgdGhhdCBzdGFydCB3aXRoIDFcbiAgLy8gZW5kIHdpdGggMC4gSS5lLiAyMDAxLTIwMTAgaW5zdGVhZCBvZiBjdXJyZW50IDIwMDAtMjAwOS4gSXQncyBhIGJyZWFraW5nXG4gIC8vIGNoYW5nZSwgc28gaXQgY2FuIG9ubHkgYmUgZG9uZSBpbiA0LjAuXG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgeWVhciA9IF9kYXRlLmdldEZ1bGxZZWFyKCk7XG4gIGNvbnN0IGRlY2FkZSA9IE1hdGguZmxvb3IoeWVhciAvIDEwKSAqIDEwO1xuICByZXR1cm4gZGVjYWRlO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGdldERlY2FkZTtcbiIsICJpbXBvcnQgeyBnZXREZWZhdWx0T3B0aW9ucyBhcyBnZXRJbnRlcm5hbERlZmF1bHRPcHRpb25zIH0gZnJvbSBcIi4vX2xpYi9kZWZhdWx0T3B0aW9ucy5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGdldERlZmF1bHRPcHRpb25zXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCBkZWZhdWx0IG9wdGlvbnMuXG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJucyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBkZWZhdWx0cyBmb3JcbiAqIGBvcHRpb25zLmxvY2FsZWAsIGBvcHRpb25zLndlZWtTdGFydHNPbmAgYW5kIGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWBcbiAqIGFyZ3VtZW50cyBmb3IgYWxsIGZ1bmN0aW9ucy5cbiAqXG4gKiBZb3UgY2FuIGNoYW5nZSB0aGVzZSB3aXRoIFtzZXREZWZhdWx0T3B0aW9uc10oaHR0cHM6Ly9kYXRlLWZucy5vcmcvZG9jcy9zZXREZWZhdWx0T3B0aW9ucykuXG4gKlxuICogQHJldHVybnMgVGhlIGRlZmF1bHQgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCByZXN1bHQgPSBnZXREZWZhdWx0T3B0aW9ucygpXG4gKiAvLz0+IHt9XG4gKlxuICogQGV4YW1wbGVcbiAqIHNldERlZmF1bHRPcHRpb25zKHsgd2Vla1N0YXJzT246IDEsIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZTogNCB9KVxuICogY29uc3QgcmVzdWx0ID0gZ2V0RGVmYXVsdE9wdGlvbnMoKVxuICogLy89PiB7IHdlZWtTdGFyc09uOiAxLCBmaXJzdFdlZWtDb250YWluc0RhdGU6IDQgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdE9wdGlvbnMoKSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBnZXRJbnRlcm5hbERlZmF1bHRPcHRpb25zKCkpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGdldERlZmF1bHRPcHRpb25zO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZ2V0SG91cnN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBnZXRIb3Vyc1xuICogQGNhdGVnb3J5IEhvdXIgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBob3VycyBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgaG91cnMgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGhvdXJzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEdldCB0aGUgaG91cnMgb2YgMjkgRmVicnVhcnkgMjAxMiAxMTo0NTowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IGdldEhvdXJzKG5ldyBEYXRlKDIwMTIsIDEsIDI5LCAxMSwgNDUpKVxuICogLy89PiAxMVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG91cnMoZGF0ZSwgb3B0aW9ucykge1xuICByZXR1cm4gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKS5nZXRIb3VycygpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGdldEhvdXJzO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZ2V0SVNPRGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZ2V0SVNPRGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIGRheSBvZiB0aGUgSVNPIHdlZWsgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIGRheSBvZiB0aGUgSVNPIHdlZWsgb2YgdGhlIGdpdmVuIGRhdGUsXG4gKiB3aGljaCBpcyA3IGZvciBTdW5kYXksIDEgZm9yIE1vbmRheSBldGMuXG4gKlxuICogSVNPIHdlZWstbnVtYmVyaW5nIHllYXI6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGdpdmVuIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXkgb2YgSVNPIHdlZWtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hpY2ggZGF5IG9mIHRoZSBJU08gd2VlayBpcyAyNiBGZWJydWFyeSAyMDEyP1xuICogY29uc3QgcmVzdWx0ID0gZ2V0SVNPRGF5KG5ldyBEYXRlKDIwMTIsIDEsIDI2KSlcbiAqIC8vPT4gN1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SVNPRGF5KGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgZGF5ID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKS5nZXREYXkoKTtcbiAgcmV0dXJuIGRheSA9PT0gMCA/IDcgOiBkYXk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZ2V0SVNPRGF5O1xuIiwgImltcG9ydCB7IGFkZFdlZWtzIH0gZnJvbSBcIi4vYWRkV2Vla3MuanNcIjtcbmltcG9ydCB7IG1pbGxpc2Vjb25kc0luV2VlayB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgc3RhcnRPZklTT1dlZWtZZWFyIH0gZnJvbSBcIi4vc3RhcnRPZklTT1dlZWtZZWFyLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBnZXRJU09XZWVrc0luWWVhcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGdldElTT1dlZWtzSW5ZZWFyXG4gKiBAY2F0ZWdvcnkgSVNPIFdlZWstTnVtYmVyaW5nIFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgR2V0IHRoZSBudW1iZXIgb2Ygd2Vla3MgaW4gYW4gSVNPIHdlZWstbnVtYmVyaW5nIHllYXIgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG51bWJlciBvZiB3ZWVrcyBpbiBhbiBJU08gd2Vlay1udW1iZXJpbmcgeWVhciBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBJU08gd2Vlay1udW1iZXJpbmcgeWVhcjogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBJU08gd2Vla3MgaW4gYSB5ZWFyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IHdlZWtzIGFyZSBpbiBJU08gd2Vlay1udW1iZXJpbmcgeWVhciAyMDE1P1xuICogY29uc3QgcmVzdWx0ID0gZ2V0SVNPV2Vla3NJblllYXIobmV3IERhdGUoMjAxNSwgMSwgMTEpKVxuICogLy89PiA1M1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SVNPV2Vla3NJblllYXIoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCB0aGlzWWVhciA9IHN0YXJ0T2ZJU09XZWVrWWVhcihkYXRlLCBvcHRpb25zKTtcbiAgY29uc3QgbmV4dFllYXIgPSBzdGFydE9mSVNPV2Vla1llYXIoYWRkV2Vla3ModGhpc1llYXIsIDYwKSk7XG4gIGNvbnN0IGRpZmYgPSArbmV4dFllYXIgLSArdGhpc1llYXI7XG5cbiAgLy8gUm91bmQgdGhlIG51bWJlciBvZiB3ZWVrcyB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIGJlY2F1c2UgdGhlIG51bWJlciBvZlxuICAvLyBtaWxsaXNlY29uZHMgaW4gYSB3ZWVrIGlzIG5vdCBjb25zdGFudCAoZS5nLiBpdCdzIGRpZmZlcmVudCBpbiB0aGUgd2VlayBvZlxuICAvLyB0aGUgZGF5bGlnaHQgc2F2aW5nIHRpbWUgY2xvY2sgc2hpZnQpLlxuICByZXR1cm4gTWF0aC5yb3VuZChkaWZmIC8gbWlsbGlzZWNvbmRzSW5XZWVrKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBnZXRJU09XZWVrc0luWWVhcjtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBnZXRNaWxsaXNlY29uZHNcbiAqIEBjYXRlZ29yeSBNaWxsaXNlY29uZCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG1pbGxpc2Vjb25kcyBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbWlsbGlzZWNvbmRzIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGdpdmVuIGRhdGVcbiAqXG4gKiBAcmV0dXJucyBUaGUgbWlsbGlzZWNvbmRzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEdldCB0aGUgbWlsbGlzZWNvbmRzIG9mIDI5IEZlYnJ1YXJ5IDIwMTIgMTE6NDU6MDUuMTIzOlxuICogY29uc3QgcmVzdWx0ID0gZ2V0TWlsbGlzZWNvbmRzKG5ldyBEYXRlKDIwMTIsIDEsIDI5LCAxMSwgNDUsIDUsIDEyMykpXG4gKiAvLz0+IDEyM1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWlsbGlzZWNvbmRzKGRhdGUpIHtcbiAgcmV0dXJuIHRvRGF0ZShkYXRlKS5nZXRNaWxsaXNlY29uZHMoKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBnZXRNaWxsaXNlY29uZHM7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBnZXRNaW51dGVzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZ2V0TWludXRlc1xuICogQGNhdGVnb3J5IE1pbnV0ZSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG1pbnV0ZXMgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG1pbnV0ZXMgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZ2l2ZW4gZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBtaW51dGVzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEdldCB0aGUgbWludXRlcyBvZiAyOSBGZWJydWFyeSAyMDEyIDExOjQ1OjA1OlxuICogY29uc3QgcmVzdWx0ID0gZ2V0TWludXRlcyhuZXcgRGF0ZSgyMDEyLCAxLCAyOSwgMTEsIDQ1LCA1KSlcbiAqIC8vPT4gNDVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1pbnV0ZXMoZGF0ZSwgb3B0aW9ucykge1xuICByZXR1cm4gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKS5nZXRNaW51dGVzKCk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZ2V0TWludXRlcztcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGdldE1vbnRofSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZ2V0TW9udGhcbiAqIEBjYXRlZ29yeSBNb250aCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG1vbnRoIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBtb250aCBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBnaXZlbiBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbW9udGggaW5kZXggKDAtMTEpXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoaWNoIG1vbnRoIGlzIDI5IEZlYnJ1YXJ5IDIwMTI/XG4gKiBjb25zdCByZXN1bHQgPSBnZXRNb250aChuZXcgRGF0ZSgyMDEyLCAxLCAyOSkpXG4gKiAvLz0+IDFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbnRoKGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbikuZ2V0TW9udGgoKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBnZXRNb250aDtcbiIsICJpbXBvcnQgeyBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIH0gZnJvbSBcIi4vX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzLmpzXCI7XG5pbXBvcnQgeyBtaWxsaXNlY29uZHNJbkRheSB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgZ2V0T3ZlcmxhcHBpbmdEYXlzSW5JbnRlcnZhbHNcbiAqIEBjYXRlZ29yeSBJbnRlcnZhbCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBkYXlzIHRoYXQgb3ZlcmxhcCBpbiB0d28gdGltZSBpbnRlcnZhbHNcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgbnVtYmVyIG9mIGRheXMgdGhhdCBvdmVybGFwIGluIHR3byB0aW1lIGludGVydmFscy4gSXQgdXNlcyB0aGUgdGltZVxuICogYmV0d2VlbiBkYXRlcyB0byBjYWxjdWxhdGUgdGhlIG51bWJlciBvZiBkYXlzLCByb3VuZGluZyBpdCB1cCB0byBpbmNsdWRlXG4gKiBwYXJ0aWFsIGRheXMuXG4gKlxuICogVHdvIGVxdWFsIDAtbGVuZ3RoIGludGVydmFscyB3aWxsIHJlc3VsdCBpbiAwLiBUd28gZXF1YWwgMW1zIGludGVydmFscyB3aWxsXG4gKiByZXN1bHQgaW4gMS5cbiAqXG4gKiBAcGFyYW0gaW50ZXJ2YWxMZWZ0IC0gVGhlIGZpcnN0IGludGVydmFsIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0gaW50ZXJ2YWxSaWdodCAtIFRoZSBzZWNvbmQgaW50ZXJ2YWwgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgZGF5cyB0aGF0IG92ZXJsYXAgaW4gdHdvIHRpbWUgaW50ZXJ2YWxzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZvciBvdmVybGFwcGluZyB0aW1lIGludGVydmFscyBhZGRzIDEgZm9yIGVhY2ggc3RhcnRlZCBvdmVybGFwcGluZyBkYXk6XG4gKiBnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFscyhcbiAqICAgeyBzdGFydDogbmV3IERhdGUoMjAxNCwgMCwgMTApLCBlbmQ6IG5ldyBEYXRlKDIwMTQsIDAsIDIwKSB9LFxuICogICB7IHN0YXJ0OiBuZXcgRGF0ZSgyMDE0LCAwLCAxNyksIGVuZDogbmV3IERhdGUoMjAxNCwgMCwgMjEpIH1cbiAqIClcbiAqIC8vPT4gM1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3Igbm9uLW92ZXJsYXBwaW5nIHRpbWUgaW50ZXJ2YWxzIHJldHVybnMgMDpcbiAqIGdldE92ZXJsYXBwaW5nRGF5c0luSW50ZXJ2YWxzKFxuICogICB7IHN0YXJ0OiBuZXcgRGF0ZSgyMDE0LCAwLCAxMCksIGVuZDogbmV3IERhdGUoMjAxNCwgMCwgMjApIH0sXG4gKiAgIHsgc3RhcnQ6IG5ldyBEYXRlKDIwMTQsIDAsIDIxKSwgZW5kOiBuZXcgRGF0ZSgyMDE0LCAwLCAyMikgfVxuICogKVxuICogLy89PiAwXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE92ZXJsYXBwaW5nRGF5c0luSW50ZXJ2YWxzKGludGVydmFsTGVmdCwgaW50ZXJ2YWxSaWdodCkge1xuICBjb25zdCBbbGVmdFN0YXJ0LCBsZWZ0RW5kXSA9IFtcbiAgICArdG9EYXRlKGludGVydmFsTGVmdC5zdGFydCksXG4gICAgK3RvRGF0ZShpbnRlcnZhbExlZnQuZW5kKSxcbiAgXS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gIGNvbnN0IFtyaWdodFN0YXJ0LCByaWdodEVuZF0gPSBbXG4gICAgK3RvRGF0ZShpbnRlcnZhbFJpZ2h0LnN0YXJ0KSxcbiAgICArdG9EYXRlKGludGVydmFsUmlnaHQuZW5kKSxcbiAgXS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG5cbiAgLy8gUHJldmVudCBOYU4gcmVzdWx0IGlmIGludGVydmFscyBkb24ndCBvdmVybGFwIGF0IGFsbC5cbiAgY29uc3QgaXNPdmVybGFwcGluZyA9IGxlZnRTdGFydCA8IHJpZ2h0RW5kICYmIHJpZ2h0U3RhcnQgPCBsZWZ0RW5kO1xuICBpZiAoIWlzT3ZlcmxhcHBpbmcpIHJldHVybiAwO1xuXG4gIC8vIFJlbW92ZSB0aGUgdGltZXpvbmUgb2Zmc2V0IHRvIG5lZ2F0ZSB0aGUgRFNUIGVmZmVjdCBvbiBjYWxjdWxhdGlvbnMuXG4gIGNvbnN0IG92ZXJsYXBMZWZ0ID0gcmlnaHRTdGFydCA8IGxlZnRTdGFydCA/IGxlZnRTdGFydCA6IHJpZ2h0U3RhcnQ7XG4gIGNvbnN0IGxlZnQgPSBvdmVybGFwTGVmdCAtIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMob3ZlcmxhcExlZnQpO1xuICBjb25zdCBvdmVybGFwUmlnaHQgPSByaWdodEVuZCA+IGxlZnRFbmQgPyBsZWZ0RW5kIDogcmlnaHRFbmQ7XG4gIGNvbnN0IHJpZ2h0ID0gb3ZlcmxhcFJpZ2h0IC0gZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhvdmVybGFwUmlnaHQpO1xuXG4gIC8vIENlaWwgdGhlIG51bWJlciB0byBpbmNsdWRlIHBhcnRpYWwgZGF5cyB0b28uXG4gIHJldHVybiBNYXRoLmNlaWwoKHJpZ2h0IC0gbGVmdCkgLyBtaWxsaXNlY29uZHNJbkRheSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZ2V0T3ZlcmxhcHBpbmdEYXlzSW5JbnRlcnZhbHM7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgZ2V0U2Vjb25kc1xuICogQGNhdGVnb3J5IFNlY29uZCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIHNlY29uZHMgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIHNlY29uZHMgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZ2l2ZW4gZGF0ZVxuICpcbiAqIEByZXR1cm5zIFRoZSBzZWNvbmRzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEdldCB0aGUgc2Vjb25kcyBvZiAyOSBGZWJydWFyeSAyMDEyIDExOjQ1OjA1LjEyMzpcbiAqIGNvbnN0IHJlc3VsdCA9IGdldFNlY29uZHMobmV3IERhdGUoMjAxMiwgMSwgMjksIDExLCA0NSwgNSwgMTIzKSlcbiAqIC8vPT4gNVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2Vjb25kcyhkYXRlKSB7XG4gIHJldHVybiB0b0RhdGUoZGF0ZSkuZ2V0U2Vjb25kcygpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGdldFNlY29uZHM7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgZ2V0VGltZVxuICogQGNhdGVnb3J5IFRpbWVzdGFtcCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG1pbGxpc2Vjb25kcyB0aW1lc3RhbXAgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIG1pbGxpc2Vjb25kcyB0aW1lc3RhbXAgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZ2l2ZW4gZGF0ZVxuICpcbiAqIEByZXR1cm5zIFRoZSB0aW1lc3RhbXBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gR2V0IHRoZSB0aW1lc3RhbXAgb2YgMjkgRmVicnVhcnkgMjAxMiAxMTo0NTowNS4xMjM6XG4gKiBjb25zdCByZXN1bHQgPSBnZXRUaW1lKG5ldyBEYXRlKDIwMTIsIDEsIDI5LCAxMSwgNDUsIDUsIDEyMykpXG4gKiAvLz0+IDEzMzA1MTU5MDUxMjNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWUoZGF0ZSkge1xuICByZXR1cm4gK3RvRGF0ZShkYXRlKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBnZXRUaW1lO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGdldFVuaXhUaW1lXG4gKiBAY2F0ZWdvcnkgVGltZXN0YW1wIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgc2Vjb25kcyB0aW1lc3RhbXAgb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIHNlY29uZHMgdGltZXN0YW1wIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGdpdmVuIGRhdGVcbiAqXG4gKiBAcmV0dXJucyBUaGUgdGltZXN0YW1wXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEdldCB0aGUgdGltZXN0YW1wIG9mIDI5IEZlYnJ1YXJ5IDIwMTIgMTE6NDU6MDUgQ0VUOlxuICogY29uc3QgcmVzdWx0ID0gZ2V0VW5peFRpbWUobmV3IERhdGUoMjAxMiwgMSwgMjksIDExLCA0NSwgNSkpXG4gKiAvLz0+IDEzMzA1MTIzMDVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVuaXhUaW1lKGRhdGUpIHtcbiAgcmV0dXJuIE1hdGgudHJ1bmMoK3RvRGF0ZShkYXRlKSAvIDEwMDApO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGdldFVuaXhUaW1lO1xuIiwgImltcG9ydCB7IGdldERlZmF1bHRPcHRpb25zIH0gZnJvbSBcIi4vX2xpYi9kZWZhdWx0T3B0aW9ucy5qc1wiO1xuaW1wb3J0IHsgZ2V0RGF0ZSB9IGZyb20gXCIuL2dldERhdGUuanNcIjtcbmltcG9ydCB7IGdldERheSB9IGZyb20gXCIuL2dldERheS5qc1wiO1xuaW1wb3J0IHsgc3RhcnRPZk1vbnRoIH0gZnJvbSBcIi4vc3RhcnRPZk1vbnRoLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGdldFdlZWtPZk1vbnRofSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZ2V0V2Vla09mTW9udGhcbiAqIEBjYXRlZ29yeSBXZWVrIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgd2VlayBvZiB0aGUgbW9udGggb2YgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBHZXQgdGhlIHdlZWsgb2YgdGhlIG1vbnRoIG9mIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGdpdmVuIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgd2VlayBvZiBtb250aFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGljaCB3ZWVrIG9mIHRoZSBtb250aCBpcyA5IE5vdmVtYmVyIDIwMTc/XG4gKiBjb25zdCByZXN1bHQgPSBnZXRXZWVrT2ZNb250aChuZXcgRGF0ZSgyMDE3LCAxMCwgOSkpXG4gKiAvLz0+IDJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdlZWtPZk1vbnRoKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBnZXREZWZhdWx0T3B0aW9ucygpO1xuICBjb25zdCB3ZWVrU3RhcnRzT24gPVxuICAgIG9wdGlvbnM/LndlZWtTdGFydHNPbiA/P1xuICAgIG9wdGlvbnM/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uID8/XG4gICAgZGVmYXVsdE9wdGlvbnMud2Vla1N0YXJ0c09uID8/XG4gICAgZGVmYXVsdE9wdGlvbnMubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24gPz9cbiAgICAwO1xuXG4gIGNvbnN0IGN1cnJlbnREYXlPZk1vbnRoID0gZ2V0RGF0ZSh0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pKTtcbiAgaWYgKGlzTmFOKGN1cnJlbnREYXlPZk1vbnRoKSkgcmV0dXJuIE5hTjtcblxuICBjb25zdCBzdGFydFdlZWtEYXkgPSBnZXREYXkoc3RhcnRPZk1vbnRoKGRhdGUsIG9wdGlvbnMpKTtcblxuICBsZXQgbGFzdERheU9mRmlyc3RXZWVrID0gd2Vla1N0YXJ0c09uIC0gc3RhcnRXZWVrRGF5O1xuICBpZiAobGFzdERheU9mRmlyc3RXZWVrIDw9IDApIGxhc3REYXlPZkZpcnN0V2VlayArPSA3O1xuXG4gIGNvbnN0IHJlbWFpbmluZ0RheXNBZnRlckZpcnN0V2VlayA9IGN1cnJlbnREYXlPZk1vbnRoIC0gbGFzdERheU9mRmlyc3RXZWVrO1xuICByZXR1cm4gTWF0aC5jZWlsKHJlbWFpbmluZ0RheXNBZnRlckZpcnN0V2VlayAvIDcpICsgMTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBnZXRXZWVrT2ZNb250aDtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGxhc3REYXlPZk1vbnRofSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgbGFzdERheU9mTW9udGhcbiAqIEBjYXRlZ29yeSBNb250aCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGxhc3QgZGF5IG9mIGEgbW9udGggZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBsYXN0IGRheSBvZiBhIG1vbnRoIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBsYXN0IGRheSBvZiBhIG1vbnRoXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBsYXN0IGRheSBvZiBhIG1vbnRoIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gbGFzdERheU9mTW9udGgobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1LCAwKSlcbiAqIC8vPT4gVHVlIFNlcCAzMCAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYXN0RGF5T2ZNb250aChkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgbW9udGggPSBfZGF0ZS5nZXRNb250aCgpO1xuICBfZGF0ZS5zZXRGdWxsWWVhcihfZGF0ZS5nZXRGdWxsWWVhcigpLCBtb250aCArIDEsIDApO1xuICBfZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIHRvRGF0ZShfZGF0ZSwgb3B0aW9ucz8uaW4pO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGxhc3REYXlPZk1vbnRoO1xuIiwgImltcG9ydCB7IGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzLmpzXCI7XG5pbXBvcnQgeyBsYXN0RGF5T2ZNb250aCB9IGZyb20gXCIuL2xhc3REYXlPZk1vbnRoLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mTW9udGggfSBmcm9tIFwiLi9zdGFydE9mTW9udGguanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZ2V0V2Vla3NJbk1vbnRofSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgZ2V0V2Vla3NJbk1vbnRoXG4gKiBAY2F0ZWdvcnkgV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgdGhlIG51bWJlciBvZiBjYWxlbmRhciB3ZWVrcyBhIG1vbnRoIHNwYW5zLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogR2V0IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgd2Vla3MgdGhlIG1vbnRoIGluIHRoZSBnaXZlbiBkYXRlIHNwYW5zLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGdpdmVuIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGNhbGVuZGFyIHdlZWtzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhvdyBtYW55IGNhbGVuZGFyIHdlZWtzIGRvZXMgRmVicnVhcnkgMjAxNSBzcGFuP1xuICogY29uc3QgcmVzdWx0ID0gZ2V0V2Vla3NJbk1vbnRoKG5ldyBEYXRlKDIwMTUsIDEsIDgpKVxuICogLy89PiA0XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRoZSB3ZWVrIHN0YXJ0cyBvbiBNb25kYXksXG4gKiAvLyBob3cgbWFueSBjYWxlbmRhciB3ZWVrcyBkb2VzIEp1bHkgMjAxNyBzcGFuP1xuICogY29uc3QgcmVzdWx0ID0gZ2V0V2Vla3NJbk1vbnRoKG5ldyBEYXRlKDIwMTcsIDYsIDUpLCB7IHdlZWtTdGFydHNPbjogMSB9KVxuICogLy89PiA2XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRXZWVrc0luTW9udGgoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBjb250ZXh0RGF0ZSA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIHJldHVybiAoXG4gICAgZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyhcbiAgICAgIGxhc3REYXlPZk1vbnRoKGNvbnRleHREYXRlLCBvcHRpb25zKSxcbiAgICAgIHN0YXJ0T2ZNb250aChjb250ZXh0RGF0ZSwgb3B0aW9ucyksXG4gICAgICBvcHRpb25zLFxuICAgICkgKyAxXG4gICk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZ2V0V2Vla3NJbk1vbnRoO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgZ2V0WWVhcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGdldFllYXJcbiAqIEBjYXRlZ29yeSBZZWFyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCB0aGUgeWVhciBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEdldCB0aGUgeWVhciBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBnaXZlbiBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgeWVhclxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGljaCB5ZWFyIGlzIDIgSnVseSAyMDE0P1xuICogY29uc3QgcmVzdWx0ID0gZ2V0WWVhcihuZXcgRGF0ZSgyMDE0LCA2LCAyKSlcbiAqIC8vPT4gMjAxNFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0WWVhcihkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pLmdldEZ1bGxZZWFyKCk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgZ2V0WWVhcjtcbiIsICJpbXBvcnQgeyBtaWxsaXNlY29uZHNJbkhvdXIgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBob3Vyc1RvTWlsbGlzZWNvbmRzXG4gKiBAY2F0ZWdvcnkgIENvbnZlcnNpb24gSGVscGVyc1xuICogQHN1bW1hcnkgQ29udmVydCBob3VycyB0byBtaWxsaXNlY29uZHMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IGEgbnVtYmVyIG9mIGhvdXJzIHRvIGEgZnVsbCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwYXJhbSBob3VycyAtIG51bWJlciBvZiBob3VycyB0byBiZSBjb252ZXJ0ZWRcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGhvdXJzIGNvbnZlcnRlZCB0byBtaWxsaXNlY29uZHNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCAyIGhvdXJzIHRvIG1pbGxpc2Vjb25kczpcbiAqIGNvbnN0IHJlc3VsdCA9IGhvdXJzVG9NaWxsaXNlY29uZHMoMilcbiAqIC8vPT4gNzIwMDAwMFxuICovXG5leHBvcnQgZnVuY3Rpb24gaG91cnNUb01pbGxpc2Vjb25kcyhob3Vycykge1xuICByZXR1cm4gTWF0aC50cnVuYyhob3VycyAqIG1pbGxpc2Vjb25kc0luSG91cik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaG91cnNUb01pbGxpc2Vjb25kcztcbiIsICJpbXBvcnQgeyBtaW51dGVzSW5Ib3VyIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgaG91cnNUb01pbnV0ZXNcbiAqIEBjYXRlZ29yeSBDb252ZXJzaW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgaG91cnMgdG8gbWludXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgYSBudW1iZXIgb2YgaG91cnMgdG8gYSBmdWxsIG51bWJlciBvZiBtaW51dGVzLlxuICpcbiAqIEBwYXJhbSBob3VycyAtIG51bWJlciBvZiBob3VycyB0byBiZSBjb252ZXJ0ZWRcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGhvdXJzIGNvbnZlcnRlZCBpbiBtaW51dGVzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgMiBob3VycyB0byBtaW51dGVzOlxuICogY29uc3QgcmVzdWx0ID0gaG91cnNUb01pbnV0ZXMoMilcbiAqIC8vPT4gMTIwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBob3Vyc1RvTWludXRlcyhob3Vycykge1xuICByZXR1cm4gTWF0aC50cnVuYyhob3VycyAqIG1pbnV0ZXNJbkhvdXIpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGhvdXJzVG9NaW51dGVzO1xuIiwgImltcG9ydCB7IHNlY29uZHNJbkhvdXIgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBob3Vyc1RvU2Vjb25kc1xuICogQGNhdGVnb3J5IENvbnZlcnNpb24gSGVscGVyc1xuICogQHN1bW1hcnkgQ29udmVydCBob3VycyB0byBzZWNvbmRzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQ29udmVydCBhIG51bWJlciBvZiBob3VycyB0byBhIGZ1bGwgbnVtYmVyIG9mIHNlY29uZHMuXG4gKlxuICogQHBhcmFtIGhvdXJzIC0gVGhlIG51bWJlciBvZiBob3VycyB0byBiZSBjb252ZXJ0ZWRcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGhvdXJzIGNvbnZlcnRlZCBpbiBzZWNvbmRzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgMiBob3VycyB0byBzZWNvbmRzOlxuICogY29uc3QgcmVzdWx0ID0gaG91cnNUb1NlY29uZHMoMilcbiAqIC8vPT4gNzIwMFxuICovXG5leHBvcnQgZnVuY3Rpb24gaG91cnNUb1NlY29uZHMoaG91cnMpIHtcbiAgcmV0dXJuIE1hdGgudHJ1bmMoaG91cnMgKiBzZWNvbmRzSW5Ib3VyKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBob3Vyc1RvU2Vjb25kcztcbiIsICJpbXBvcnQgeyBub3JtYWxpemVEYXRlcyB9IGZyb20gXCIuL19saWIvbm9ybWFsaXplRGF0ZXMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGludGVydmFsfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogVGhlIHtAbGluayBpbnRlcnZhbH0gZnVuY3Rpb24gcmVzdWx0IHR5cGUuIEl0IHJlc29sdmVzIHRoZSBwcm9wZXIgZGF0YSB0eXBlLlxuICogSXQgdXNlcyB0aGUgZmlyc3QgYXJndW1lbnQgZGF0ZSBvYmplY3QgdHlwZSwgc3RhcnRpbmcgZnJvbSB0aGUgc3RhcnQgYXJndW1lbnQsXG4gKiB0aGVuIHRoZSBlbmQgaW50ZXJ2YWwgZGF0ZS4gSWYgYSBjb250ZXh0IGZ1bmN0aW9uIGlzIHBhc3NlZCwgaXQgdXNlcyB0aGUgY29udGV4dFxuICogZnVuY3Rpb24gcmV0dXJuIHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpbnRlcnZhbFxuICogQGNhdGVnb3J5IEludGVydmFsIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENyZWF0ZXMgYW4gaW50ZXJ2YWwgb2JqZWN0IGFuZCB2YWxpZGF0ZXMgaXRzIHZhbHVlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENyZWF0ZXMgYSBub3JtYWxpemVkIGludGVydmFsIG9iamVjdCBhbmQgdmFsaWRhdGVzIGl0cyB2YWx1ZXMuIElmIHRoZSBpbnRlcnZhbCBpcyBpbnZhbGlkLCBhbiBleGNlcHRpb24gaXMgdGhyb3duLlxuICpcbiAqIEB0eXBlUGFyYW0gU3RhcnREYXRlIC0gU3RhcnQgZGF0ZSB0eXBlLlxuICogQHR5cGVQYXJhbSBFbmREYXRlIC0gRW5kIGRhdGUgdHlwZS5cbiAqIEB0eXBlUGFyYW0gT3B0aW9ucyAtIE9wdGlvbnMgdHlwZS5cbiAqXG4gKiBAcGFyYW0gc3RhcnQgLSBUaGUgc3RhcnQgb2YgdGhlIGludGVydmFsLlxuICogQHBhcmFtIGVuZCAtIFRoZSBlbmQgb2YgdGhlIGludGVydmFsLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gKlxuICogQHRocm93cyBgU3RhcnQgZGF0ZSBpcyBpbnZhbGlkYCB3aGVuIGBzdGFydGAgaXMgaW52YWxpZC5cbiAqIEB0aHJvd3MgYEVuZCBkYXRlIGlzIGludmFsaWRgIHdoZW4gYGVuZGAgaXMgaW52YWxpZC5cbiAqIEB0aHJvd3MgYEVuZCBkYXRlIG11c3QgYmUgYWZ0ZXIgc3RhcnQgZGF0ZWAgd2hlbiBlbmQgaXMgYmVmb3JlIGBzdGFydGAgYW5kIGBvcHRpb25zLmFzc2VydFBvc2l0aXZlYCBpcyB0cnVlLlxuICpcbiAqIEByZXR1cm5zIFRoZSBub3JtYWxpemVkIGFuZCB2YWxpZGF0ZWQgaW50ZXJ2YWwgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJ2YWwoc3RhcnQsIGVuZCwgb3B0aW9ucykge1xuICBjb25zdCBbX3N0YXJ0LCBfZW5kXSA9IG5vcm1hbGl6ZURhdGVzKG9wdGlvbnM/LmluLCBzdGFydCwgZW5kKTtcblxuICBpZiAoaXNOYU4oK19zdGFydCkpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdGFydCBkYXRlIGlzIGludmFsaWRcIik7XG4gIGlmIChpc05hTigrX2VuZCkpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFbmQgZGF0ZSBpcyBpbnZhbGlkXCIpO1xuXG4gIGlmIChvcHRpb25zPy5hc3NlcnRQb3NpdGl2ZSAmJiArX3N0YXJ0ID4gK19lbmQpXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkVuZCBkYXRlIG11c3QgYmUgYWZ0ZXIgc3RhcnQgZGF0ZVwiKTtcblxuICByZXR1cm4geyBzdGFydDogX3N0YXJ0LCBlbmQ6IF9lbmQgfTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpbnRlcnZhbDtcbiIsICJpbXBvcnQgeyBub3JtYWxpemVJbnRlcnZhbCB9IGZyb20gXCIuL19saWIvbm9ybWFsaXplSW50ZXJ2YWwuanNcIjtcbmltcG9ydCB7IGFkZCB9IGZyb20gXCIuL2FkZC5qc1wiO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluRGF5cyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbkRheXMuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbkhvdXJzIH0gZnJvbSBcIi4vZGlmZmVyZW5jZUluSG91cnMuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbk1pbnV0ZXMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5NaW51dGVzLmpzXCI7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5Nb250aHMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5Nb250aHMuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJblNlY29uZHMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5TZWNvbmRzLmpzXCI7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5ZZWFycyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJblllYXJzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBpbnRlcnZhbFRvRHVyYXRpb259IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpbnRlcnZhbFRvRHVyYXRpb25cbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgQ29udmVydCBpbnRlcnZhbCB0byBkdXJhdGlvblxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQ29udmVydCBhbiBpbnRlcnZhbCBvYmplY3QgdG8gYSBkdXJhdGlvbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIGludGVydmFsIC0gVGhlIGludGVydmFsIHRvIGNvbnZlcnQgdG8gZHVyYXRpb25cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGNvbnRleHQgb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkdXJhdGlvbiBvYmplY3RcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gR2V0IHRoZSBkdXJhdGlvbiBiZXR3ZWVuIEphbnVhcnkgMTUsIDE5MjkgYW5kIEFwcmlsIDQsIDE5NjguXG4gKiBpbnRlcnZhbFRvRHVyYXRpb24oe1xuICogICBzdGFydDogbmV3IERhdGUoMTkyOSwgMCwgMTUsIDEyLCAwLCAwKSxcbiAqICAgZW5kOiBuZXcgRGF0ZSgxOTY4LCAzLCA0LCAxOSwgNSwgMClcbiAqIH0pO1xuICogLy89PiB7IHllYXJzOiAzOSwgbW9udGhzOiAyLCBkYXlzOiAyMCwgaG91cnM6IDcsIG1pbnV0ZXM6IDUsIHNlY29uZHM6IDAgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJ2YWxUb0R1cmF0aW9uKGludGVydmFsLCBvcHRpb25zKSB7XG4gIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gbm9ybWFsaXplSW50ZXJ2YWwob3B0aW9ucz8uaW4sIGludGVydmFsKTtcbiAgY29uc3QgZHVyYXRpb24gPSB7fTtcblxuICBjb25zdCB5ZWFycyA9IGRpZmZlcmVuY2VJblllYXJzKGVuZCwgc3RhcnQpO1xuICBpZiAoeWVhcnMpIGR1cmF0aW9uLnllYXJzID0geWVhcnM7XG5cbiAgY29uc3QgcmVtYWluaW5nTW9udGhzID0gYWRkKHN0YXJ0LCB7IHllYXJzOiBkdXJhdGlvbi55ZWFycyB9KTtcbiAgY29uc3QgbW9udGhzID0gZGlmZmVyZW5jZUluTW9udGhzKGVuZCwgcmVtYWluaW5nTW9udGhzKTtcbiAgaWYgKG1vbnRocykgZHVyYXRpb24ubW9udGhzID0gbW9udGhzO1xuXG4gIGNvbnN0IHJlbWFpbmluZ0RheXMgPSBhZGQocmVtYWluaW5nTW9udGhzLCB7IG1vbnRoczogZHVyYXRpb24ubW9udGhzIH0pO1xuICBjb25zdCBkYXlzID0gZGlmZmVyZW5jZUluRGF5cyhlbmQsIHJlbWFpbmluZ0RheXMpO1xuICBpZiAoZGF5cykgZHVyYXRpb24uZGF5cyA9IGRheXM7XG5cbiAgY29uc3QgcmVtYWluaW5nSG91cnMgPSBhZGQocmVtYWluaW5nRGF5cywgeyBkYXlzOiBkdXJhdGlvbi5kYXlzIH0pO1xuICBjb25zdCBob3VycyA9IGRpZmZlcmVuY2VJbkhvdXJzKGVuZCwgcmVtYWluaW5nSG91cnMpO1xuICBpZiAoaG91cnMpIGR1cmF0aW9uLmhvdXJzID0gaG91cnM7XG5cbiAgY29uc3QgcmVtYWluaW5nTWludXRlcyA9IGFkZChyZW1haW5pbmdIb3VycywgeyBob3VyczogZHVyYXRpb24uaG91cnMgfSk7XG4gIGNvbnN0IG1pbnV0ZXMgPSBkaWZmZXJlbmNlSW5NaW51dGVzKGVuZCwgcmVtYWluaW5nTWludXRlcyk7XG4gIGlmIChtaW51dGVzKSBkdXJhdGlvbi5taW51dGVzID0gbWludXRlcztcblxuICBjb25zdCByZW1haW5pbmdTZWNvbmRzID0gYWRkKHJlbWFpbmluZ01pbnV0ZXMsIHsgbWludXRlczogZHVyYXRpb24ubWludXRlcyB9KTtcbiAgY29uc3Qgc2Vjb25kcyA9IGRpZmZlcmVuY2VJblNlY29uZHMoZW5kLCByZW1haW5pbmdTZWNvbmRzKTtcbiAgaWYgKHNlY29uZHMpIGR1cmF0aW9uLnNlY29uZHMgPSBzZWNvbmRzO1xuXG4gIHJldHVybiBkdXJhdGlvbjtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpbnRlcnZhbFRvRHVyYXRpb247XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIGxvY2FsZSBzdHJpbmcgKHNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvSW50bCNsb2NhbGVzX2FyZ3VtZW50KS5cbiAqIEBkZXByZWNhdGVkXG4gKlxuICogW1RPRE9dIFJlbW92ZSBpbiB2NFxuICovXG5cbi8qKlxuICogVGhlIGZvcm1hdCBvcHRpb25zIChzZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwvRGF0ZVRpbWVGb3JtYXQvRGF0ZVRpbWVGb3JtYXQjb3B0aW9ucylcbiAqL1xuXG4vKipcbiAqIFRoZSBsb2NhbGUgb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGludGxGb3JtYXRcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgRm9ybWF0IHRoZSBkYXRlIHdpdGggSW50bC5EYXRlVGltZUZvcm1hdCAoaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvSW50bC9EYXRlVGltZUZvcm1hdCkuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlIHN0cmluZyBpbiB0aGUgZ2l2ZW4gZm9ybWF0LlxuICogVGhlIG1ldGhvZCB1c2VzIFtgSW50bC5EYXRlVGltZUZvcm1hdGBdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwvRGF0ZVRpbWVGb3JtYXQpIGluc2lkZS5cbiAqIGZvcm1hdE9wdGlvbnMgYXJlIHRoZSBzYW1lIGFzIFtgSW50bC5EYXRlVGltZUZvcm1hdGAgb3B0aW9uc10oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvSW50bC9EYXRlVGltZUZvcm1hdCN1c2luZ19vcHRpb25zKVxuICpcbiAqID4gXHUyNkEwXHVGRTBGIFBsZWFzZSBub3RlIHRoYXQgYmVmb3JlIE5vZGUgdmVyc2lvbiAxMy4wLjAsIG9ubHkgdGhlIGxvY2FsZSBkYXRhIGZvciBlbi1VUyBpcyBhdmFpbGFibGUgYnkgZGVmYXVsdC5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGZvcm1hdFxuICpcbiAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgZGF0ZSBzdHJpbmdcbiAqXG4gKiBAdGhyb3dzIGBkYXRlYCBtdXN0IG5vdCBiZSBJbnZhbGlkIERhdGVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDQgT2N0b2JlciAyMDE5IGluIG1pZGRsZS1lbmRpYW4gZm9ybWF0OlxuICogY29uc3QgcmVzdWx0ID0gaW50bEZvcm1hdChuZXcgRGF0ZSgyMDE5LCA5LCA0LCAxMiwgMzAsIDEzLCA0NTYpKVxuICogLy89PiAxMC80LzIwMTlcbiAqL1xuXG4vKipcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gZm9ybWF0XG4gKiBAcGFyYW0gbG9jYWxlT3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIGxvY2FsZVxuICpcbiAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgZGF0ZSBzdHJpbmdcbiAqXG4gKiBAdGhyb3dzIGBkYXRlYCBtdXN0IG5vdCBiZSBJbnZhbGlkIERhdGVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVwcmVzZW50IDQgT2N0b2JlciAyMDE5IGluIEtvcmVhbi5cbiAqIC8vIENvbnZlcnQgdGhlIGRhdGUgd2l0aCBsb2NhbGUncyBvcHRpb25zLlxuICogY29uc3QgcmVzdWx0ID0gaW50bEZvcm1hdChuZXcgRGF0ZSgyMDE5LCA5LCA0LCAxMiwgMzAsIDEzLCA0NTYpLCB7XG4gKiAgIGxvY2FsZTogJ2tvLUtSJyxcbiAqIH0pXG4gKiAvLz0+IDIwMTkuIDEwLiA0LlxuICovXG5cbi8qKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBmb3JtYXRcbiAqIEBwYXJhbSBmb3JtYXRPcHRpb25zIC0gVGhlIGZvcm1hdCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBkYXRlIHN0cmluZ1xuICpcbiAqIEB0aHJvd3MgYGRhdGVgIG11c3Qgbm90IGJlIEludmFsaWQgRGF0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBSZXByZXNlbnQgNCBPY3RvYmVyIDIwMTkuXG4gKiAvLyBDb252ZXJ0IHRoZSBkYXRlIHdpdGggZm9ybWF0J3Mgb3B0aW9ucy5cbiAqIGNvbnN0IHJlc3VsdCA9IGludGxGb3JtYXQuZGVmYXVsdChuZXcgRGF0ZSgyMDE5LCA5LCA0LCAxMiwgMzAsIDEzLCA0NTYpLCB7XG4gKiAgIHllYXI6ICdudW1lcmljJyxcbiAqICAgbW9udGg6ICdudW1lcmljJyxcbiAqICAgZGF5OiAnbnVtZXJpYycsXG4gKiAgIGhvdXI6ICdudW1lcmljJyxcbiAqIH0pXG4gKiAvLz0+IDEwLzQvMjAxOSwgMTIgUE1cbiAqL1xuXG4vKipcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gZm9ybWF0XG4gKiBAcGFyYW0gZm9ybWF0T3B0aW9ucyAtIFRoZSBmb3JtYXQgb3B0aW9uc1xuICogQHBhcmFtIGxvY2FsZU9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBsb2NhbGVcbiAqXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGRhdGUgc3RyaW5nXG4gKlxuICogQHRocm93cyBgZGF0ZWAgbXVzdCBub3QgYmUgSW52YWxpZCBEYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFJlcHJlc2VudCA0IE9jdG9iZXIgMjAxOSBpbiBHZXJtYW4uXG4gKiAvLyBDb252ZXJ0IHRoZSBkYXRlIHdpdGggZm9ybWF0J3Mgb3B0aW9ucyBhbmQgbG9jYWxlJ3Mgb3B0aW9ucy5cbiAqIGNvbnN0IHJlc3VsdCA9IGludGxGb3JtYXQobmV3IERhdGUoMjAxOSwgOSwgNCwgMTIsIDMwLCAxMywgNDU2KSwge1xuICogICB3ZWVrZGF5OiAnbG9uZycsXG4gKiAgIHllYXI6ICdudW1lcmljJyxcbiAqICAgbW9udGg6ICdsb25nJyxcbiAqICAgZGF5OiAnbnVtZXJpYycsXG4gKiB9LCB7XG4gKiAgIGxvY2FsZTogJ2RlLURFJyxcbiAqIH0pXG4gKiAvLz0+IEZyZWl0YWcsIDQuIE9rdG9iZXIgMjAxOVxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRsRm9ybWF0KGRhdGUsIGZvcm1hdE9yTG9jYWxlLCBsb2NhbGVPcHRpb25zKSB7XG4gIGxldCBmb3JtYXRPcHRpb25zO1xuXG4gIGlmIChpc0Zvcm1hdE9wdGlvbnMoZm9ybWF0T3JMb2NhbGUpKSB7XG4gICAgZm9ybWF0T3B0aW9ucyA9IGZvcm1hdE9yTG9jYWxlO1xuICB9IGVsc2Uge1xuICAgIGxvY2FsZU9wdGlvbnMgPSBmb3JtYXRPckxvY2FsZTtcbiAgfVxuXG4gIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGVPcHRpb25zPy5sb2NhbGUsIGZvcm1hdE9wdGlvbnMpLmZvcm1hdChcbiAgICB0b0RhdGUoZGF0ZSksXG4gICk7XG59XG5cbmZ1bmN0aW9uIGlzRm9ybWF0T3B0aW9ucyhvcHRzKSB7XG4gIHJldHVybiBvcHRzICE9PSB1bmRlZmluZWQgJiYgIShcImxvY2FsZVwiIGluIG9wdHMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGludGxGb3JtYXQ7XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5pbXBvcnQge1xuICBzZWNvbmRzSW5EYXksXG4gIHNlY29uZHNJbkhvdXIsXG4gIHNlY29uZHNJbk1pbnV0ZSxcbiAgc2Vjb25kc0luTW9udGgsXG4gIHNlY29uZHNJblF1YXJ0ZXIsXG4gIHNlY29uZHNJbldlZWssXG4gIHNlY29uZHNJblllYXIsXG59IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzIH0gZnJvbSBcIi4vZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzLmpzXCI7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzLmpzXCI7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzIH0gZnJvbSBcIi4vZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycy5qc1wiO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MuanNcIjtcbmltcG9ydCB7IGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnMgfSBmcm9tIFwiLi9kaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzLmpzXCI7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5Ib3VycyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJbkhvdXJzLmpzXCI7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5NaW51dGVzIH0gZnJvbSBcIi4vZGlmZmVyZW5jZUluTWludXRlcy5qc1wiO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluU2Vjb25kcyB9IGZyb20gXCIuL2RpZmZlcmVuY2VJblNlY29uZHMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGludGxGb3JtYXREaXN0YW5jZX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIFRoZSB1bml0IHVzZWQgdG8gZm9ybWF0IHRoZSBkaXN0YW5jZSBpbiB7QGxpbmsgaW50bEZvcm1hdERpc3RhbmNlfS5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGludGxGb3JtYXREaXN0YW5jZVxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBGb3JtYXRzIGRpc3RhbmNlIGJldHdlZW4gdHdvIGRhdGVzIGluIGEgaHVtYW4tcmVhZGFibGUgZm9ybWF0XG4gKiBAZGVzY3JpcHRpb25cbiAqIFRoZSBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIGRhdGVzIGFuZCBmb3JtYXRzIGl0IGFzIGEgaHVtYW4tcmVhZGFibGUgc3RyaW5nLlxuICpcbiAqIFRoZSBmdW5jdGlvbiB3aWxsIHBpY2sgdGhlIG1vc3QgYXBwcm9wcmlhdGUgdW5pdCBkZXBlbmRpbmcgb24gdGhlIGRpc3RhbmNlIGJldHdlZW4gZGF0ZXMuIEZvciBleGFtcGxlLCBpZiB0aGUgZGlzdGFuY2UgaXMgYSBmZXcgaG91cnMsIGl0IG1pZ2h0IHJldHVybiBgeCBob3Vyc2AuIElmIHRoZSBkaXN0YW5jZSBpcyBhIGZldyBtb250aHMsIGl0IG1pZ2h0IHJldHVybiBgeCBtb250aHNgLlxuICpcbiAqIFlvdSBjYW4gYWxzbyBzcGVjaWZ5IGEgdW5pdCB0byBmb3JjZSB1c2luZyBpdCByZWdhcmRsZXNzIG9mIHRoZSBkaXN0YW5jZSB0byBnZXQgYSByZXN1bHQgbGlrZSBgMTIzNDU2IGhvdXJzYC5cbiAqXG4gKiBTZWUgdGhlIHRhYmxlIGJlbG93IGZvciB0aGUgdW5pdCBwaWNraW5nIGxvZ2ljOlxuICpcbiAqIHwgRGlzdGFuY2UgYmV0d2VlbiBkYXRlcyB8IFJlc3VsdCAocGFzdCkgIHwgUmVzdWx0IChmdXR1cmUpIHxcbiAqIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHxcbiAqIHwgMCBzZWNvbmRzICAgICAgICAgICAgICB8IG5vdyAgICAgICAgICAgIHwgbm93ICAgICAgICAgICAgIHxcbiAqIHwgMS01OSBzZWNvbmRzICAgICAgICAgICB8IFggc2Vjb25kcyBhZ28gIHwgaW4gWCBzZWNvbmRzICAgIHxcbiAqIHwgMS01OSBtaW51dGVzICAgICAgICAgICB8IFggbWludXRlcyBhZ28gIHwgaW4gWCBtaW51dGVzICAgIHxcbiAqIHwgMS0yMyBob3VycyAgICAgICAgICAgICB8IFggaG91cnMgYWdvICAgIHwgaW4gWCBob3VycyAgICAgIHxcbiAqIHwgMSBkYXkgICAgICAgICAgICAgICAgICB8IHllc3RlcmRheSAgICAgIHwgdG9tb3Jyb3cgICAgICAgIHxcbiAqIHwgMi02IGRheXMgICAgICAgICAgICAgICB8IFggZGF5cyBhZ28gICAgIHwgaW4gWCBkYXlzICAgICAgIHxcbiAqIHwgNyBkYXlzICAgICAgICAgICAgICAgICB8IGxhc3Qgd2VlayAgICAgIHwgbmV4dCB3ZWVrICAgICAgIHxcbiAqIHwgOCBkYXlzLTEgbW9udGggICAgICAgICB8IFggd2Vla3MgYWdvICAgIHwgaW4gWCB3ZWVrcyAgICAgIHxcbiAqIHwgMSBtb250aCAgICAgICAgICAgICAgICB8IGxhc3QgbW9udGggICAgIHwgbmV4dCBtb250aCAgICAgIHxcbiAqIHwgMi0zIG1vbnRocyAgICAgICAgICAgICB8IFggbW9udGhzIGFnbyAgIHwgaW4gWCBtb250aHMgICAgIHxcbiAqIHwgMSBxdWFydGVyICAgICAgICAgICAgICB8IGxhc3QgcXVhcnRlciAgIHwgbmV4dCBxdWFydGVyICAgIHxcbiAqIHwgMi0zIHF1YXJ0ZXJzICAgICAgICAgICB8IFggcXVhcnRlcnMgYWdvIHwgaW4gWCBxdWFydGVycyAgIHxcbiAqIHwgMSB5ZWFyICAgICAgICAgICAgICAgICB8IGxhc3QgeWVhciAgICAgIHwgbmV4dCB5ZWFyICAgICAgIHxcbiAqIHwgMisgeWVhcnMgICAgICAgICAgICAgICB8IFggeWVhcnMgYWdvICAgIHwgaW4gWCB5ZWFycyAgICAgIHxcbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGRhdGVcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBkYXRlIHRvIGNvbXBhcmUgd2l0aC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqIFNlZSBNRE4gZm9yIGRldGFpbHMgW0xvY2FsZSBpZGVudGlmaWNhdGlvbiBhbmQgbmVnb3RpYXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwjbG9jYWxlX2lkZW50aWZpY2F0aW9uX2FuZF9uZWdvdGlhdGlvbilcbiAqIFRoZSBuYXJyb3cgb25lIGNvdWxkIGJlIHNpbWlsYXIgdG8gdGhlIHNob3J0IG9uZSBmb3Igc29tZSBsb2NhbGVzLlxuICpcbiAqIEByZXR1cm5zIFRoZSBkaXN0YW5jZSBpbiB3b3JkcyBhY2NvcmRpbmcgdG8gbGFuZ3VhZ2Utc2Vuc2l0aXZlIHJlbGF0aXZlIHRpbWUgZm9ybWF0dGluZy5cbiAqXG4gKiBAdGhyb3dzIGBkYXRlYCBtdXN0IG5vdCBiZSBJbnZhbGlkIERhdGVcbiAqIEB0aHJvd3MgYGJhc2VEYXRlYCBtdXN0IG5vdCBiZSBJbnZhbGlkIERhdGVcbiAqIEB0aHJvd3MgYG9wdGlvbnMudW5pdGAgbXVzdCBub3QgYmUgaW52YWxpZCBVbml0XG4gKiBAdGhyb3dzIGBvcHRpb25zLmxvY2FsZWAgbXVzdCBub3QgYmUgaW52YWxpZCBsb2NhbGVcbiAqIEB0aHJvd3MgYG9wdGlvbnMubG9jYWxlTWF0Y2hlcmAgbXVzdCBub3QgYmUgaW52YWxpZCBsb2NhbGVNYXRjaGVyXG4gKiBAdGhyb3dzIGBvcHRpb25zLm51bWVyaWNgIG11c3Qgbm90IGJlIGludmFsaWQgbnVtZXJpY1xuICogQHRocm93cyBgb3B0aW9ucy5zdHlsZWAgbXVzdCBub3QgYmUgaW52YWxpZCBzdHlsZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGF0IGlzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBkYXRlcyB3aGVuIHRoZSBmaXN0IGRhdGUgaXMgYWZ0ZXIgdGhlIHNlY29uZD9cbiAqIGludGxGb3JtYXREaXN0YW5jZShcbiAqICAgbmV3IERhdGUoMTk4NiwgMywgNCwgMTEsIDMwLCAwKSxcbiAqICAgbmV3IERhdGUoMTk4NiwgMywgNCwgMTAsIDMwLCAwKVxuICogKVxuICogLy89PiAnaW4gMSBob3VyJ1xuICpcbiAqIC8vIFdoYXQgaXMgdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIGRhdGVzIHdoZW4gdGhlIGZpc3QgZGF0ZSBpcyBiZWZvcmUgdGhlIHNlY29uZD9cbiAqIGludGxGb3JtYXREaXN0YW5jZShcbiAqICAgbmV3IERhdGUoMTk4NiwgMywgNCwgMTAsIDMwLCAwKSxcbiAqICAgbmV3IERhdGUoMTk4NiwgMywgNCwgMTEsIDMwLCAwKVxuICogKVxuICogLy89PiAnMSBob3VyIGFnbydcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVXNlIHRoZSB1bml0IG9wdGlvbiB0byBmb3JjZSB0aGUgZnVuY3Rpb24gdG8gb3V0cHV0IHRoZSByZXN1bHQgaW4gcXVhcnRlcnMuIFdpdGhvdXQgc2V0dGluZyBpdCwgdGhlIGV4YW1wbGUgd291bGQgcmV0dXJuIFwibmV4dCB5ZWFyXCJcbiAqIGludGxGb3JtYXREaXN0YW5jZShcbiAqICAgbmV3IERhdGUoMTk4NywgNiwgNCwgMTAsIDMwLCAwKSxcbiAqICAgbmV3IERhdGUoMTk4NiwgMywgNCwgMTAsIDMwLCAwKSxcbiAqICAgeyB1bml0OiAncXVhcnRlcicgfVxuICogKVxuICogLy89PiAnaW4gNSBxdWFydGVycydcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVXNlIHRoZSBsb2NhbGUgb3B0aW9uIHRvIGdldCB0aGUgcmVzdWx0IGluIFNwYW5pc2guIFdpdGhvdXQgc2V0dGluZyBpdCwgdGhlIGV4YW1wbGUgd291bGQgcmV0dXJuIFwiaW4gMSBob3VyXCIuXG4gKiBpbnRsRm9ybWF0RGlzdGFuY2UoXG4gKiAgIG5ldyBEYXRlKDE5ODYsIDMsIDQsIDExLCAzMCwgMCksXG4gKiAgIG5ldyBEYXRlKDE5ODYsIDMsIDQsIDEwLCAzMCwgMCksXG4gKiAgIHsgbG9jYWxlOiAnZXMnIH1cbiAqIClcbiAqIC8vPT4gJ2RlbnRybyBkZSAxIGhvcmEnXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFVzZSB0aGUgbnVtZXJpYyBvcHRpb24gdG8gZm9yY2UgdGhlIGZ1bmN0aW9uIHRvIHVzZSBudW1lcmljIHZhbHVlcy4gV2l0aG91dCBzZXR0aW5nIGl0LCB0aGUgZXhhbXBsZSB3b3VsZCByZXR1cm4gXCJ0b21vcnJvd1wiLlxuICogaW50bEZvcm1hdERpc3RhbmNlKFxuICogICBuZXcgRGF0ZSgxOTg2LCAzLCA1LCAxMSwgMzAsIDApLFxuICogICBuZXcgRGF0ZSgxOTg2LCAzLCA0LCAxMSwgMzAsIDApLFxuICogICB7IG51bWVyaWM6ICdhbHdheXMnIH1cbiAqIClcbiAqIC8vPT4gJ2luIDEgZGF5J1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBVc2UgdGhlIHN0eWxlIG9wdGlvbiB0byBmb3JjZSB0aGUgZnVuY3Rpb24gdG8gdXNlIHNob3J0IHZhbHVlcy4gV2l0aG91dCBzZXR0aW5nIGl0LCB0aGUgZXhhbXBsZSB3b3VsZCByZXR1cm4gXCJpbiAyIHllYXJzXCIuXG4gKiBpbnRsRm9ybWF0RGlzdGFuY2UoXG4gKiAgIG5ldyBEYXRlKDE5ODgsIDMsIDQsIDExLCAzMCwgMCksXG4gKiAgIG5ldyBEYXRlKDE5ODYsIDMsIDQsIDExLCAzMCwgMCksXG4gKiAgIHsgc3R5bGU6ICdzaG9ydCcgfVxuICogKVxuICogLy89PiAnaW4gMiB5cidcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGludGxGb3JtYXREaXN0YW5jZShsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGxldCB2YWx1ZSA9IDA7XG4gIGxldCB1bml0O1xuXG4gIGNvbnN0IFtsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV9dID0gbm9ybWFsaXplRGF0ZXMoXG4gICAgb3B0aW9ucz8uaW4sXG4gICAgbGF0ZXJEYXRlLFxuICAgIGVhcmxpZXJEYXRlLFxuICApO1xuXG4gIGlmICghb3B0aW9ucz8udW5pdCkge1xuICAgIC8vIEdldCB0aGUgdW5pdCBiYXNlZCBvbiBkaWZmSW5TZWNvbmRzIGNhbGN1bGF0aW9ucyBpZiBubyB1bml0IGlzIHNwZWNpZmllZFxuICAgIGNvbnN0IGRpZmZJblNlY29uZHMgPSBkaWZmZXJlbmNlSW5TZWNvbmRzKGxhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlXyk7IC8vIFRoZSBzbWFsbGVzdCB1bml0XG5cbiAgICBpZiAoTWF0aC5hYnMoZGlmZkluU2Vjb25kcykgPCBzZWNvbmRzSW5NaW51dGUpIHtcbiAgICAgIHZhbHVlID0gZGlmZmVyZW5jZUluU2Vjb25kcyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICAgICAgdW5pdCA9IFwic2Vjb25kXCI7XG4gICAgfSBlbHNlIGlmIChNYXRoLmFicyhkaWZmSW5TZWNvbmRzKSA8IHNlY29uZHNJbkhvdXIpIHtcbiAgICAgIHZhbHVlID0gZGlmZmVyZW5jZUluTWludXRlcyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICAgICAgdW5pdCA9IFwibWludXRlXCI7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIE1hdGguYWJzKGRpZmZJblNlY29uZHMpIDwgc2Vjb25kc0luRGF5ICYmXG4gICAgICBNYXRoLmFicyhkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMobGF0ZXJEYXRlXywgZWFybGllckRhdGVfKSkgPCAxXG4gICAgKSB7XG4gICAgICB2YWx1ZSA9IGRpZmZlcmVuY2VJbkhvdXJzKGxhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlXyk7XG4gICAgICB1bml0ID0gXCJob3VyXCI7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIE1hdGguYWJzKGRpZmZJblNlY29uZHMpIDwgc2Vjb25kc0luV2VlayAmJlxuICAgICAgKHZhbHVlID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGxhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlXykpICYmXG4gICAgICBNYXRoLmFicyh2YWx1ZSkgPCA3XG4gICAgKSB7XG4gICAgICB1bml0ID0gXCJkYXlcIjtcbiAgICB9IGVsc2UgaWYgKE1hdGguYWJzKGRpZmZJblNlY29uZHMpIDwgc2Vjb25kc0luTW9udGgpIHtcbiAgICAgIHZhbHVlID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICAgICAgdW5pdCA9IFwid2Vla1wiO1xuICAgIH0gZWxzZSBpZiAoTWF0aC5hYnMoZGlmZkluU2Vjb25kcykgPCBzZWNvbmRzSW5RdWFydGVyKSB7XG4gICAgICB2YWx1ZSA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzKGxhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlXyk7XG4gICAgICB1bml0ID0gXCJtb250aFwiO1xuICAgIH0gZWxzZSBpZiAoTWF0aC5hYnMoZGlmZkluU2Vjb25kcykgPCBzZWNvbmRzSW5ZZWFyKSB7XG4gICAgICBpZiAoZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pIDwgNCkge1xuICAgICAgICAvLyBUbyBmaWx0ZXIgb3V0IGNhc2VzIHRoYXQgYXJlIGxlc3MgdGhhbiBhIHllYXIgYnV0IG1hdGNoIDQgcXVhcnRlcnNcbiAgICAgICAgdmFsdWUgPSBkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzKGxhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlXyk7XG4gICAgICAgIHVuaXQgPSBcInF1YXJ0ZXJcIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICAgICAgICB1bml0ID0gXCJ5ZWFyXCI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICAgICAgdW5pdCA9IFwieWVhclwiO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBHZXQgdGhlIHZhbHVlIGlmIHVuaXQgaXMgc3BlY2lmaWVkXG4gICAgdW5pdCA9IG9wdGlvbnM/LnVuaXQ7XG4gICAgaWYgKHVuaXQgPT09IFwic2Vjb25kXCIpIHtcbiAgICAgIHZhbHVlID0gZGlmZmVyZW5jZUluU2Vjb25kcyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICAgIH0gZWxzZSBpZiAodW5pdCA9PT0gXCJtaW51dGVcIikge1xuICAgICAgdmFsdWUgPSBkaWZmZXJlbmNlSW5NaW51dGVzKGxhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlXyk7XG4gICAgfSBlbHNlIGlmICh1bml0ID09PSBcImhvdXJcIikge1xuICAgICAgdmFsdWUgPSBkaWZmZXJlbmNlSW5Ib3VycyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICAgIH0gZWxzZSBpZiAodW5pdCA9PT0gXCJkYXlcIikge1xuICAgICAgdmFsdWUgPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMobGF0ZXJEYXRlXywgZWFybGllckRhdGVfKTtcbiAgICB9IGVsc2UgaWYgKHVuaXQgPT09IFwid2Vla1wiKSB7XG4gICAgICB2YWx1ZSA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MobGF0ZXJEYXRlXywgZWFybGllckRhdGVfKTtcbiAgICB9IGVsc2UgaWYgKHVuaXQgPT09IFwibW9udGhcIikge1xuICAgICAgdmFsdWUgPSBkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICAgIH0gZWxzZSBpZiAodW5pdCA9PT0gXCJxdWFydGVyXCIpIHtcbiAgICAgIHZhbHVlID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICAgIH0gZWxzZSBpZiAodW5pdCA9PT0gXCJ5ZWFyXCIpIHtcbiAgICAgIHZhbHVlID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyhsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV8pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJ0ZiA9IG5ldyBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdChvcHRpb25zPy5sb2NhbGUsIHtcbiAgICBudW1lcmljOiBcImF1dG9cIixcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcblxuICByZXR1cm4gcnRmLmZvcm1hdCh2YWx1ZSwgdW5pdCk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaW50bEZvcm1hdERpc3RhbmNlO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGlzQWZ0ZXJcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGZpcnN0IGRhdGUgYWZ0ZXIgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZmlyc3QgZGF0ZSBhZnRlciB0aGUgc2Vjb25kIG9uZT9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRoYXQgc2hvdWxkIGJlIGFmdGVyIHRoZSBvdGhlciBvbmUgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSBkYXRlVG9Db21wYXJlIC0gVGhlIGRhdGUgdG8gY29tcGFyZSB3aXRoXG4gKlxuICogQHJldHVybnMgVGhlIGZpcnN0IGRhdGUgaXMgYWZ0ZXIgdGhlIHNlY29uZCBkYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElzIDEwIEp1bHkgMTk4OSBhZnRlciAxMSBGZWJydWFyeSAxOTg3P1xuICogY29uc3QgcmVzdWx0ID0gaXNBZnRlcihuZXcgRGF0ZSgxOTg5LCA2LCAxMCksIG5ldyBEYXRlKDE5ODcsIDEsIDExKSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBZnRlcihkYXRlLCBkYXRlVG9Db21wYXJlKSB7XG4gIHJldHVybiArdG9EYXRlKGRhdGUpID4gK3RvRGF0ZShkYXRlVG9Db21wYXJlKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc0FmdGVyO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGlzQmVmb3JlXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBmaXJzdCBkYXRlIGJlZm9yZSB0aGUgc2Vjb25kIG9uZT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIElzIHRoZSBmaXJzdCBkYXRlIGJlZm9yZSB0aGUgc2Vjb25kIG9uZT9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRoYXQgc2hvdWxkIGJlIGJlZm9yZSB0aGUgb3RoZXIgb25lIHRvIHJldHVybiB0cnVlXG4gKiBAcGFyYW0gZGF0ZVRvQ29tcGFyZSAtIFRoZSBkYXRlIHRvIGNvbXBhcmUgd2l0aFxuICpcbiAqIEByZXR1cm5zIFRoZSBmaXJzdCBkYXRlIGlzIGJlZm9yZSB0aGUgc2Vjb25kIGRhdGVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSXMgMTAgSnVseSAxOTg5IGJlZm9yZSAxMSBGZWJydWFyeSAxOTg3P1xuICogY29uc3QgcmVzdWx0ID0gaXNCZWZvcmUobmV3IERhdGUoMTk4OSwgNiwgMTApLCBuZXcgRGF0ZSgxOTg3LCAxLCAxMSkpXG4gKiAvLz0+IGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0JlZm9yZShkYXRlLCBkYXRlVG9Db21wYXJlKSB7XG4gIHJldHVybiArdG9EYXRlKGRhdGUpIDwgK3RvRGF0ZShkYXRlVG9Db21wYXJlKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc0JlZm9yZTtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBpc0VxdWFsXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgZXF1YWw/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBcmUgdGhlIGdpdmVuIGRhdGVzIGVxdWFsP1xuICpcbiAqIEBwYXJhbSBkYXRlTGVmdCAtIFRoZSBmaXJzdCBkYXRlIHRvIGNvbXBhcmVcbiAqIEBwYXJhbSBkYXRlUmlnaHQgLSBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZVxuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlcyBhcmUgZXF1YWxcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQXJlIDIgSnVseSAyMDE0IDA2OjMwOjQ1LjAwMCBhbmQgMiBKdWx5IDIwMTQgMDY6MzA6NDUuNTAwIGVxdWFsP1xuICogY29uc3QgcmVzdWx0ID0gaXNFcXVhbChcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMiwgNiwgMzAsIDQ1LCAwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgNiwgMiwgNiwgMzAsIDQ1LCA1MDApXG4gKiApXG4gKiAvLz0+IGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VxdWFsKGxlZnREYXRlLCByaWdodERhdGUpIHtcbiAgcmV0dXJuICt0b0RhdGUobGVmdERhdGUpID09PSArdG9EYXRlKHJpZ2h0RGF0ZSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNFcXVhbDtcbiIsICIvKipcbiAqIEBuYW1lIGlzRXhpc3RzXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiBkYXRlIGV4aXN0cz9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gYXJndW1lbnRzIGNvbnZlcnQgdG8gYW4gZXhpc3RpbmcgZGF0ZS5cbiAqXG4gKiBAcGFyYW0geWVhciAtIFRoZSB5ZWFyIG9mIHRoZSBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gbW9udGggLSBUaGUgbW9udGggb2YgdGhlIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBkYXkgLSBUaGUgZGF5IG9mIHRoZSBkYXRlIHRvIGNoZWNrXG4gKlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBkYXRlIGV4aXN0c1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3IgdGhlIHZhbGlkIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSBpc0V4aXN0cygyMDE4LCAwLCAzMSlcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3IgdGhlIGludmFsaWQgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzRXhpc3RzKDIwMTgsIDEsIDMxKVxuICogLy89PiBmYWxzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFeGlzdHMoeWVhciwgbW9udGgsIGRheSkge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRheSk7XG4gIHJldHVybiAoXG4gICAgZGF0ZS5nZXRGdWxsWWVhcigpID09PSB5ZWFyICYmXG4gICAgZGF0ZS5nZXRNb250aCgpID09PSBtb250aCAmJlxuICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBkYXlcbiAgKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc0V4aXN0cztcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGlzRmlyc3REYXlPZk1vbnRofSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgaXNGaXJzdERheU9mTW9udGhcbiAqIEBjYXRlZ29yeSBNb250aCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZ2l2ZW4gZGF0ZSB0aGUgZmlyc3QgZGF5IG9mIGEgbW9udGg/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZ2l2ZW4gZGF0ZSB0aGUgZmlyc3QgZGF5IG9mIGEgbW9udGg/XG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGRhdGUgaXMgdGhlIGZpcnN0IGRheSBvZiBhIG1vbnRoXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElzIDEgU2VwdGVtYmVyIDIwMTQgdGhlIGZpcnN0IGRheSBvZiBhIG1vbnRoP1xuICogY29uc3QgcmVzdWx0ID0gaXNGaXJzdERheU9mTW9udGgobmV3IERhdGUoMjAxNCwgOCwgMSkpXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRmlyc3REYXlPZk1vbnRoKGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbikuZ2V0RGF0ZSgpID09PSAxO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzRmlyc3REYXlPZk1vbnRoO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgaXNGcmlkYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpc0ZyaWRheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIGRhdGUgRnJpZGF5P1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIGRhdGUgRnJpZGF5P1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIEZyaWRheVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAyNiBTZXB0ZW1iZXIgMjAxNCBGcmlkYXk/XG4gKiBjb25zdCByZXN1bHQgPSBpc0ZyaWRheShuZXcgRGF0ZSgyMDE0LCA4LCAyNikpXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRnJpZGF5KGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbikuZ2V0RGF5KCkgPT09IDU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNGcmlkYXk7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgaXNGdXR1cmVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIGRhdGUgaW4gdGhlIGZ1dHVyZT9cbiAqIEBwdXJlIGZhbHNlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZ2l2ZW4gZGF0ZSBpbiB0aGUgZnV0dXJlP1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gY2hlY2tcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF0ZSBpcyBpbiB0aGUgZnV0dXJlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRvZGF5IGlzIDYgT2N0b2JlciAyMDE0LCBpcyAzMSBEZWNlbWJlciAyMDE0IGluIHRoZSBmdXR1cmU/XG4gKiBjb25zdCByZXN1bHQgPSBpc0Z1dHVyZShuZXcgRGF0ZSgyMDE0LCAxMSwgMzEpKVxuICogLy89PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1dHVyZShkYXRlKSB7XG4gIHJldHVybiArdG9EYXRlKGRhdGUpID4gRGF0ZS5ub3coKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc0Z1dHVyZTtcbiIsICJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIHRyYW5zcG9zZVxuICogQGNhdGVnb3J5IEdlbmVyaWMgSGVscGVyc1xuICogQHN1bW1hcnkgVHJhbnNwb3NlIHRoZSBkYXRlIHRvIHRoZSBnaXZlbiBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFRoZSBmdW5jdGlvbiB0cmFuc3Bvc2VzIHRoZSBkYXRlIHRvIHRoZSBnaXZlbiBjb25zdHJ1Y3Rvci4gSXQgaGVscHMgeW91XG4gKiB0byB0cmFuc3Bvc2UgdGhlIGRhdGUgaW4gdGhlIHN5c3RlbSB0aW1lIHpvbmUgdG8gc2F5IGBVVENEYXRlYCBvciBhbnkgb3RoZXJcbiAqIGRhdGUgZXh0ZW5zaW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gSW5wdXREYXRlIC0gVGhlIGlucHV0IGBEYXRlYCB0eXBlIGRlcml2ZWQgZnJvbSB0aGUgcGFzc2VkIGFyZ3VtZW50LlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSBkZXJpdmVkIGZyb20gdGhlIHBhc3NlZCBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIHVzZSB2YWx1ZXMgZnJvbVxuICogQHBhcmFtIGNvbnN0cnVjdG9yIC0gVGhlIGRhdGUgY29uc3RydWN0b3IgdG8gdXNlXG4gKlxuICogQHJldHVybnMgRGF0ZSB0cmFuc3Bvc2VkIHRvIHRoZSBnaXZlbiBjb25zdHJ1Y3RvclxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDcmVhdGUgSnVseSAxMCwgMjAyMiAwMDowMCBpbiBsb2NhbGUgdGltZSB6b25lXG4gKiBjb25zdCBkYXRlID0gbmV3IERhdGUoMjAyMiwgNiwgMTApXG4gKiAvLz0+ICdTdW4gSnVsIDEwIDIwMjIgMDA6MDA6MDAgR01UKzA4MDAgKFNpbmdhcG9yZSBTdGFuZGFyZCBUaW1lKSdcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVHJhbnNwb3NlIHRoZSBkYXRlIHRvIEp1bHkgMTAsIDIwMjIgMDA6MDAgaW4gVVRDXG4gKiB0cmFuc3Bvc2UoZGF0ZSwgVVRDRGF0ZSlcbiAqIC8vPT4gJ1N1biBKdWwgMTAgMjAyMiAwMDowMDowMCBHTVQrMDAwMCAoQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUpJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNwb3NlKGRhdGUsIGNvbnN0cnVjdG9yKSB7XG4gIGNvbnN0IGRhdGVfID0gaXNDb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcilcbiAgICA/IG5ldyBjb25zdHJ1Y3RvcigwKVxuICAgIDogY29uc3RydWN0RnJvbShjb25zdHJ1Y3RvciwgMCk7XG4gIGRhdGVfLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XG4gIGRhdGVfLnNldEhvdXJzKFxuICAgIGRhdGUuZ2V0SG91cnMoKSxcbiAgICBkYXRlLmdldE1pbnV0ZXMoKSxcbiAgICBkYXRlLmdldFNlY29uZHMoKSxcbiAgICBkYXRlLmdldE1pbGxpc2Vjb25kcygpLFxuICApO1xuICByZXR1cm4gZGF0ZV87XG59XG5cbmZ1bmN0aW9uIGlzQ29uc3RydWN0b3IoY29uc3RydWN0b3IpIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgY29uc3RydWN0b3IgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgIGNvbnN0cnVjdG9yLnByb3RvdHlwZT8uY29uc3RydWN0b3IgPT09IGNvbnN0cnVjdG9yXG4gICk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgdHJhbnNwb3NlO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi4vLi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgdHJhbnNwb3NlIH0gZnJvbSBcIi4uLy4uL3RyYW5zcG9zZS5qc1wiO1xuXG5jb25zdCBUSU1FWk9ORV9VTklUX1BSSU9SSVRZID0gMTA7XG5cbmV4cG9ydCBjbGFzcyBTZXR0ZXIge1xuICBzdWJQcmlvcml0eSA9IDA7XG5cbiAgdmFsaWRhdGUoX3V0Y0RhdGUsIF9vcHRpb25zKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFZhbHVlU2V0dGVyIGV4dGVuZHMgU2V0dGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgdmFsdWUsXG5cbiAgICB2YWxpZGF0ZVZhbHVlLFxuXG4gICAgc2V0VmFsdWUsXG5cbiAgICBwcmlvcml0eSxcbiAgICBzdWJQcmlvcml0eSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlID0gdmFsaWRhdGVWYWx1ZTtcbiAgICB0aGlzLnNldFZhbHVlID0gc2V0VmFsdWU7XG4gICAgdGhpcy5wcmlvcml0eSA9IHByaW9yaXR5O1xuICAgIGlmIChzdWJQcmlvcml0eSkge1xuICAgICAgdGhpcy5zdWJQcmlvcml0eSA9IHN1YlByaW9yaXR5O1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKGRhdGUsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVZhbHVlKGRhdGUsIHRoaXMudmFsdWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgc2V0KGRhdGUsIGZsYWdzLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuc2V0VmFsdWUoZGF0ZSwgZmxhZ3MsIHRoaXMudmFsdWUsIG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZXpvbmVTZXR0ZXIgZXh0ZW5kcyBTZXR0ZXIge1xuICBwcmlvcml0eSA9IFRJTUVaT05FX1VOSVRfUFJJT1JJVFk7XG4gIHN1YlByaW9yaXR5ID0gLTE7XG5cbiAgY29uc3RydWN0b3IoY29udGV4dCwgcmVmZXJlbmNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0IHx8ICgoZGF0ZSkgPT4gY29uc3RydWN0RnJvbShyZWZlcmVuY2UsIGRhdGUpKTtcbiAgfVxuXG4gIHNldChkYXRlLCBmbGFncykge1xuICAgIGlmIChmbGFncy50aW1lc3RhbXBJc1NldCkgcmV0dXJuIGRhdGU7XG4gICAgcmV0dXJuIGNvbnN0cnVjdEZyb20oZGF0ZSwgdHJhbnNwb3NlKGRhdGUsIHRoaXMuY29udGV4dCkpO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgVmFsdWVTZXR0ZXIgfSBmcm9tIFwiLi9TZXR0ZXIuanNcIjtcblxuZXhwb3J0IGNsYXNzIFBhcnNlciB7XG4gIHJ1bihkYXRlU3RyaW5nLCB0b2tlbiwgbWF0Y2gsIG9wdGlvbnMpIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnBhcnNlKGRhdGVTdHJpbmcsIHRva2VuLCBtYXRjaCwgb3B0aW9ucyk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzZXR0ZXI6IG5ldyBWYWx1ZVNldHRlcihcbiAgICAgICAgcmVzdWx0LnZhbHVlLFxuICAgICAgICB0aGlzLnZhbGlkYXRlLFxuICAgICAgICB0aGlzLnNldCxcbiAgICAgICAgdGhpcy5wcmlvcml0eSxcbiAgICAgICAgdGhpcy5zdWJQcmlvcml0eSxcbiAgICAgICksXG4gICAgICByZXN0OiByZXN1bHQucmVzdCxcbiAgICB9O1xuICB9XG5cbiAgdmFsaWRhdGUoX3V0Y0RhdGUsIF92YWx1ZSwgX29wdGlvbnMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCB7IFBhcnNlciB9IGZyb20gXCIuLi9QYXJzZXIuanNcIjtcblxuZXhwb3J0IGNsYXNzIEVyYVBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gMTQwO1xuXG4gIHBhcnNlKGRhdGVTdHJpbmcsIHRva2VuLCBtYXRjaCkge1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIEFELCBCQ1xuICAgICAgY2FzZSBcIkdcIjpcbiAgICAgIGNhc2UgXCJHR1wiOlxuICAgICAgY2FzZSBcIkdHR1wiOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1hdGNoLmVyYShkYXRlU3RyaW5nLCB7IHdpZHRoOiBcImFiYnJldmlhdGVkXCIgfSkgfHxcbiAgICAgICAgICBtYXRjaC5lcmEoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJuYXJyb3dcIiB9KVxuICAgICAgICApO1xuXG4gICAgICAvLyBBLCBCXG4gICAgICBjYXNlIFwiR0dHR0dcIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLmVyYShkYXRlU3RyaW5nLCB7IHdpZHRoOiBcIm5hcnJvd1wiIH0pO1xuICAgICAgLy8gQW5ubyBEb21pbmksIEJlZm9yZSBDaHJpc3RcbiAgICAgIGNhc2UgXCJHR0dHXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1hdGNoLmVyYShkYXRlU3RyaW5nLCB7IHdpZHRoOiBcIndpZGVcIiB9KSB8fFxuICAgICAgICAgIG1hdGNoLmVyYShkYXRlU3RyaW5nLCB7IHdpZHRoOiBcImFiYnJldmlhdGVkXCIgfSkgfHxcbiAgICAgICAgICBtYXRjaC5lcmEoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJuYXJyb3dcIiB9KVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHNldChkYXRlLCBmbGFncywgdmFsdWUpIHtcbiAgICBmbGFncy5lcmEgPSB2YWx1ZTtcbiAgICBkYXRlLnNldEZ1bGxZZWFyKHZhbHVlLCAwLCAxKTtcbiAgICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1wiUlwiLCBcInVcIiwgXCJ0XCIsIFwiVFwiXTtcbn1cbiIsICJleHBvcnQgY29uc3QgbnVtZXJpY1BhdHRlcm5zID0ge1xuICBtb250aDogL14oMVswLTJdfDA/XFxkKS8sIC8vIDAgdG8gMTJcbiAgZGF0ZTogL14oM1swLTFdfFswLTJdP1xcZCkvLCAvLyAwIHRvIDMxXG4gIGRheU9mWWVhcjogL14oMzZbMC02XXwzWzAtNV1cXGR8WzAtMl0/XFxkP1xcZCkvLCAvLyAwIHRvIDM2NlxuICB3ZWVrOiAvXig1WzAtM118WzAtNF0/XFxkKS8sIC8vIDAgdG8gNTNcbiAgaG91cjIzaDogL14oMlswLTNdfFswLTFdP1xcZCkvLCAvLyAwIHRvIDIzXG4gIGhvdXIyNGg6IC9eKDJbMC00XXxbMC0xXT9cXGQpLywgLy8gMCB0byAyNFxuICBob3VyMTFoOiAvXigxWzAtMV18MD9cXGQpLywgLy8gMCB0byAxMVxuICBob3VyMTJoOiAvXigxWzAtMl18MD9cXGQpLywgLy8gMCB0byAxMlxuICBtaW51dGU6IC9eWzAtNV0/XFxkLywgLy8gMCB0byA1OVxuICBzZWNvbmQ6IC9eWzAtNV0/XFxkLywgLy8gMCB0byA1OVxuXG4gIHNpbmdsZURpZ2l0OiAvXlxcZC8sIC8vIDAgdG8gOVxuICB0d29EaWdpdHM6IC9eXFxkezEsMn0vLCAvLyAwIHRvIDk5XG4gIHRocmVlRGlnaXRzOiAvXlxcZHsxLDN9LywgLy8gMCB0byA5OTlcbiAgZm91ckRpZ2l0czogL15cXGR7MSw0fS8sIC8vIDAgdG8gOTk5OVxuXG4gIGFueURpZ2l0c1NpZ25lZDogL14tP1xcZCsvLFxuICBzaW5nbGVEaWdpdFNpZ25lZDogL14tP1xcZC8sIC8vIDAgdG8gOSwgLTAgdG8gLTlcbiAgdHdvRGlnaXRzU2lnbmVkOiAvXi0/XFxkezEsMn0vLCAvLyAwIHRvIDk5LCAtMCB0byAtOTlcbiAgdGhyZWVEaWdpdHNTaWduZWQ6IC9eLT9cXGR7MSwzfS8sIC8vIDAgdG8gOTk5LCAtMCB0byAtOTk5XG4gIGZvdXJEaWdpdHNTaWduZWQ6IC9eLT9cXGR7MSw0fS8sIC8vIDAgdG8gOTk5OSwgLTAgdG8gLTk5OTlcbn07XG5cbmV4cG9ydCBjb25zdCB0aW1lem9uZVBhdHRlcm5zID0ge1xuICBiYXNpY09wdGlvbmFsTWludXRlczogL14oWystXSkoXFxkezJ9KShcXGR7Mn0pP3xaLyxcbiAgYmFzaWM6IC9eKFsrLV0pKFxcZHsyfSkoXFxkezJ9KXxaLyxcbiAgYmFzaWNPcHRpb25hbFNlY29uZHM6IC9eKFsrLV0pKFxcZHsyfSkoXFxkezJ9KSgoXFxkezJ9KSk/fFovLFxuICBleHRlbmRlZDogL14oWystXSkoXFxkezJ9KTooXFxkezJ9KXxaLyxcbiAgZXh0ZW5kZWRPcHRpb25hbFNlY29uZHM6IC9eKFsrLV0pKFxcZHsyfSk6KFxcZHsyfSkoOihcXGR7Mn0pKT98Wi8sXG59O1xuIiwgImltcG9ydCB7XG4gIG1pbGxpc2Vjb25kc0luSG91cixcbiAgbWlsbGlzZWNvbmRzSW5NaW51dGUsXG4gIG1pbGxpc2Vjb25kc0luU2Vjb25kLFxufSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzLmpzXCI7XG5cbmltcG9ydCB7IG51bWVyaWNQYXR0ZXJucyB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwVmFsdWUocGFyc2VGblJlc3VsdCwgbWFwRm4pIHtcbiAgaWYgKCFwYXJzZUZuUmVzdWx0KSB7XG4gICAgcmV0dXJuIHBhcnNlRm5SZXN1bHQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHZhbHVlOiBtYXBGbihwYXJzZUZuUmVzdWx0LnZhbHVlKSxcbiAgICByZXN0OiBwYXJzZUZuUmVzdWx0LnJlc3QsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU51bWVyaWNQYXR0ZXJuKHBhdHRlcm4sIGRhdGVTdHJpbmcpIHtcbiAgY29uc3QgbWF0Y2hSZXN1bHQgPSBkYXRlU3RyaW5nLm1hdGNoKHBhdHRlcm4pO1xuXG4gIGlmICghbWF0Y2hSZXN1bHQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdmFsdWU6IHBhcnNlSW50KG1hdGNoUmVzdWx0WzBdLCAxMCksXG4gICAgcmVzdDogZGF0ZVN0cmluZy5zbGljZShtYXRjaFJlc3VsdFswXS5sZW5ndGgpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lem9uZVBhdHRlcm4ocGF0dGVybiwgZGF0ZVN0cmluZykge1xuICBjb25zdCBtYXRjaFJlc3VsdCA9IGRhdGVTdHJpbmcubWF0Y2gocGF0dGVybik7XG5cbiAgaWYgKCFtYXRjaFJlc3VsdCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gSW5wdXQgaXMgJ1onXG4gIGlmIChtYXRjaFJlc3VsdFswXSA9PT0gXCJaXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IDAsXG4gICAgICByZXN0OiBkYXRlU3RyaW5nLnNsaWNlKDEpLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBzaWduID0gbWF0Y2hSZXN1bHRbMV0gPT09IFwiK1wiID8gMSA6IC0xO1xuICBjb25zdCBob3VycyA9IG1hdGNoUmVzdWx0WzJdID8gcGFyc2VJbnQobWF0Y2hSZXN1bHRbMl0sIDEwKSA6IDA7XG4gIGNvbnN0IG1pbnV0ZXMgPSBtYXRjaFJlc3VsdFszXSA/IHBhcnNlSW50KG1hdGNoUmVzdWx0WzNdLCAxMCkgOiAwO1xuICBjb25zdCBzZWNvbmRzID0gbWF0Y2hSZXN1bHRbNV0gPyBwYXJzZUludChtYXRjaFJlc3VsdFs1XSwgMTApIDogMDtcblxuICByZXR1cm4ge1xuICAgIHZhbHVlOlxuICAgICAgc2lnbiAqXG4gICAgICAoaG91cnMgKiBtaWxsaXNlY29uZHNJbkhvdXIgK1xuICAgICAgICBtaW51dGVzICogbWlsbGlzZWNvbmRzSW5NaW51dGUgK1xuICAgICAgICBzZWNvbmRzICogbWlsbGlzZWNvbmRzSW5TZWNvbmQpLFxuICAgIHJlc3Q6IGRhdGVTdHJpbmcuc2xpY2UobWF0Y2hSZXN1bHRbMF0ubGVuZ3RoKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQW55RGlnaXRzU2lnbmVkKGRhdGVTdHJpbmcpIHtcbiAgcmV0dXJuIHBhcnNlTnVtZXJpY1BhdHRlcm4obnVtZXJpY1BhdHRlcm5zLmFueURpZ2l0c1NpZ25lZCwgZGF0ZVN0cmluZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU5EaWdpdHMobiwgZGF0ZVN0cmluZykge1xuICBzd2l0Y2ggKG4pIHtcbiAgICBjYXNlIDE6XG4gICAgICByZXR1cm4gcGFyc2VOdW1lcmljUGF0dGVybihudW1lcmljUGF0dGVybnMuc2luZ2xlRGlnaXQsIGRhdGVTdHJpbmcpO1xuICAgIGNhc2UgMjpcbiAgICAgIHJldHVybiBwYXJzZU51bWVyaWNQYXR0ZXJuKG51bWVyaWNQYXR0ZXJucy50d29EaWdpdHMsIGRhdGVTdHJpbmcpO1xuICAgIGNhc2UgMzpcbiAgICAgIHJldHVybiBwYXJzZU51bWVyaWNQYXR0ZXJuKG51bWVyaWNQYXR0ZXJucy50aHJlZURpZ2l0cywgZGF0ZVN0cmluZyk7XG4gICAgY2FzZSA0OlxuICAgICAgcmV0dXJuIHBhcnNlTnVtZXJpY1BhdHRlcm4obnVtZXJpY1BhdHRlcm5zLmZvdXJEaWdpdHMsIGRhdGVTdHJpbmcpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gcGFyc2VOdW1lcmljUGF0dGVybihuZXcgUmVnRXhwKFwiXlxcXFxkezEsXCIgKyBuICsgXCJ9XCIpLCBkYXRlU3RyaW5nKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VORGlnaXRzU2lnbmVkKG4sIGRhdGVTdHJpbmcpIHtcbiAgc3dpdGNoIChuKSB7XG4gICAgY2FzZSAxOlxuICAgICAgcmV0dXJuIHBhcnNlTnVtZXJpY1BhdHRlcm4obnVtZXJpY1BhdHRlcm5zLnNpbmdsZURpZ2l0U2lnbmVkLCBkYXRlU3RyaW5nKTtcbiAgICBjYXNlIDI6XG4gICAgICByZXR1cm4gcGFyc2VOdW1lcmljUGF0dGVybihudW1lcmljUGF0dGVybnMudHdvRGlnaXRzU2lnbmVkLCBkYXRlU3RyaW5nKTtcbiAgICBjYXNlIDM6XG4gICAgICByZXR1cm4gcGFyc2VOdW1lcmljUGF0dGVybihudW1lcmljUGF0dGVybnMudGhyZWVEaWdpdHNTaWduZWQsIGRhdGVTdHJpbmcpO1xuICAgIGNhc2UgNDpcbiAgICAgIHJldHVybiBwYXJzZU51bWVyaWNQYXR0ZXJuKG51bWVyaWNQYXR0ZXJucy5mb3VyRGlnaXRzU2lnbmVkLCBkYXRlU3RyaW5nKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHBhcnNlTnVtZXJpY1BhdHRlcm4obmV3IFJlZ0V4cChcIl4tP1xcXFxkezEsXCIgKyBuICsgXCJ9XCIpLCBkYXRlU3RyaW5nKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF5UGVyaW9kRW51bVRvSG91cnMoZGF5UGVyaW9kKSB7XG4gIHN3aXRjaCAoZGF5UGVyaW9kKSB7XG4gICAgY2FzZSBcIm1vcm5pbmdcIjpcbiAgICAgIHJldHVybiA0O1xuICAgIGNhc2UgXCJldmVuaW5nXCI6XG4gICAgICByZXR1cm4gMTc7XG4gICAgY2FzZSBcInBtXCI6XG4gICAgY2FzZSBcIm5vb25cIjpcbiAgICBjYXNlIFwiYWZ0ZXJub29uXCI6XG4gICAgICByZXR1cm4gMTI7XG4gICAgY2FzZSBcImFtXCI6XG4gICAgY2FzZSBcIm1pZG5pZ2h0XCI6XG4gICAgY2FzZSBcIm5pZ2h0XCI6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAwO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVUd29EaWdpdFllYXIodHdvRGlnaXRZZWFyLCBjdXJyZW50WWVhcikge1xuICBjb25zdCBpc0NvbW1vbkVyYSA9IGN1cnJlbnRZZWFyID4gMDtcbiAgLy8gQWJzb2x1dGUgbnVtYmVyIG9mIHRoZSBjdXJyZW50IHllYXI6XG4gIC8vIDEgLT4gMSBBQ1xuICAvLyAwIC0+IDEgQkNcbiAgLy8gLTEgLT4gMiBCQ1xuICBjb25zdCBhYnNDdXJyZW50WWVhciA9IGlzQ29tbW9uRXJhID8gY3VycmVudFllYXIgOiAxIC0gY3VycmVudFllYXI7XG5cbiAgbGV0IHJlc3VsdDtcbiAgaWYgKGFic0N1cnJlbnRZZWFyIDw9IDUwKSB7XG4gICAgcmVzdWx0ID0gdHdvRGlnaXRZZWFyIHx8IDEwMDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCByYW5nZUVuZCA9IGFic0N1cnJlbnRZZWFyICsgNTA7XG4gICAgY29uc3QgcmFuZ2VFbmRDZW50dXJ5ID0gTWF0aC50cnVuYyhyYW5nZUVuZCAvIDEwMCkgKiAxMDA7XG4gICAgY29uc3QgaXNQcmV2aW91c0NlbnR1cnkgPSB0d29EaWdpdFllYXIgPj0gcmFuZ2VFbmQgJSAxMDA7XG4gICAgcmVzdWx0ID0gdHdvRGlnaXRZZWFyICsgcmFuZ2VFbmRDZW50dXJ5IC0gKGlzUHJldmlvdXNDZW50dXJ5ID8gMTAwIDogMCk7XG4gIH1cblxuICByZXR1cm4gaXNDb21tb25FcmEgPyByZXN1bHQgOiAxIC0gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMZWFwWWVhckluZGV4KHllYXIpIHtcbiAgcmV0dXJuIHllYXIgJSA0MDAgPT09IDAgfHwgKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDApO1xufVxuIiwgImltcG9ydCB7IFBhcnNlciB9IGZyb20gXCIuLi9QYXJzZXIuanNcIjtcblxuaW1wb3J0IHsgbWFwVmFsdWUsIG5vcm1hbGl6ZVR3b0RpZ2l0WWVhciwgcGFyc2VORGlnaXRzIH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbi8vIEZyb20gaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvdHIzNS0zMS90cjM1LWRhdGVzLmh0bWwjRGF0ZV9Gb3JtYXRfUGF0dGVybnNcbi8vIHwgWWVhciAgICAgfCAgICAgeSB8IHl5IHwgICB5eXkgfCAgeXl5eSB8IHl5eXl5IHxcbi8vIHwtLS0tLS0tLS0tfC0tLS0tLS18LS0tLXwtLS0tLS0tfC0tLS0tLS18LS0tLS0tLXxcbi8vIHwgQUQgMSAgICAgfCAgICAgMSB8IDAxIHwgICAwMDEgfCAgMDAwMSB8IDAwMDAxIHxcbi8vIHwgQUQgMTIgICAgfCAgICAxMiB8IDEyIHwgICAwMTIgfCAgMDAxMiB8IDAwMDEyIHxcbi8vIHwgQUQgMTIzICAgfCAgIDEyMyB8IDIzIHwgICAxMjMgfCAgMDEyMyB8IDAwMTIzIHxcbi8vIHwgQUQgMTIzNCAgfCAgMTIzNCB8IDM0IHwgIDEyMzQgfCAgMTIzNCB8IDAxMjM0IHxcbi8vIHwgQUQgMTIzNDUgfCAxMjM0NSB8IDQ1IHwgMTIzNDUgfCAxMjM0NSB8IDEyMzQ1IHxcbmV4cG9ydCBjbGFzcyBZZWFyUGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSAxMzA7XG4gIGluY29tcGF0aWJsZVRva2VucyA9IFtcIllcIiwgXCJSXCIsIFwidVwiLCBcIndcIiwgXCJJXCIsIFwiaVwiLCBcImVcIiwgXCJjXCIsIFwidFwiLCBcIlRcIl07XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4sIG1hdGNoKSB7XG4gICAgY29uc3QgdmFsdWVDYWxsYmFjayA9ICh5ZWFyKSA9PiAoe1xuICAgICAgeWVhcixcbiAgICAgIGlzVHdvRGlnaXRZZWFyOiB0b2tlbiA9PT0gXCJ5eVwiLFxuICAgIH0pO1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSBcInlcIjpcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlKHBhcnNlTkRpZ2l0cyg0LCBkYXRlU3RyaW5nKSwgdmFsdWVDYWxsYmFjayk7XG4gICAgICBjYXNlIFwieW9cIjpcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlKFxuICAgICAgICAgIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgdW5pdDogXCJ5ZWFyXCIsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgdmFsdWVDYWxsYmFjayxcbiAgICAgICAgKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBtYXBWYWx1ZShwYXJzZU5EaWdpdHModG9rZW4ubGVuZ3RoLCBkYXRlU3RyaW5nKSwgdmFsdWVDYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoX2RhdGUsIHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLmlzVHdvRGlnaXRZZWFyIHx8IHZhbHVlLnllYXIgPiAwO1xuICB9XG5cbiAgc2V0KGRhdGUsIGZsYWdzLCB2YWx1ZSkge1xuICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuXG4gICAgaWYgKHZhbHVlLmlzVHdvRGlnaXRZZWFyKSB7XG4gICAgICBjb25zdCBub3JtYWxpemVkVHdvRGlnaXRZZWFyID0gbm9ybWFsaXplVHdvRGlnaXRZZWFyKFxuICAgICAgICB2YWx1ZS55ZWFyLFxuICAgICAgICBjdXJyZW50WWVhcixcbiAgICAgICk7XG4gICAgICBkYXRlLnNldEZ1bGxZZWFyKG5vcm1hbGl6ZWRUd29EaWdpdFllYXIsIDAsIDEpO1xuICAgICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIGNvbnN0IHllYXIgPVxuICAgICAgIShcImVyYVwiIGluIGZsYWdzKSB8fCBmbGFncy5lcmEgPT09IDEgPyB2YWx1ZS55ZWFyIDogMSAtIHZhbHVlLnllYXI7XG4gICAgZGF0ZS5zZXRGdWxsWWVhcih5ZWFyLCAwLCAxKTtcbiAgICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgZ2V0V2Vla1llYXIgfSBmcm9tIFwiLi4vLi4vLi4vZ2V0V2Vla1llYXIuanNcIjtcblxuaW1wb3J0IHsgc3RhcnRPZldlZWsgfSBmcm9tIFwiLi4vLi4vLi4vc3RhcnRPZldlZWsuanNcIjtcbmltcG9ydCB7IFBhcnNlciB9IGZyb20gXCIuLi9QYXJzZXIuanNcIjtcblxuaW1wb3J0IHsgbWFwVmFsdWUsIG5vcm1hbGl6ZVR3b0RpZ2l0WWVhciwgcGFyc2VORGlnaXRzIH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbi8vIExvY2FsIHdlZWstbnVtYmVyaW5nIHllYXJcbmV4cG9ydCBjbGFzcyBMb2NhbFdlZWtZZWFyUGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSAxMzA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4sIG1hdGNoKSB7XG4gICAgY29uc3QgdmFsdWVDYWxsYmFjayA9ICh5ZWFyKSA9PiAoe1xuICAgICAgeWVhcixcbiAgICAgIGlzVHdvRGlnaXRZZWFyOiB0b2tlbiA9PT0gXCJZWVwiLFxuICAgIH0pO1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSBcIllcIjpcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlKHBhcnNlTkRpZ2l0cyg0LCBkYXRlU3RyaW5nKSwgdmFsdWVDYWxsYmFjayk7XG4gICAgICBjYXNlIFwiWW9cIjpcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlKFxuICAgICAgICAgIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgdW5pdDogXCJ5ZWFyXCIsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgdmFsdWVDYWxsYmFjayxcbiAgICAgICAgKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBtYXBWYWx1ZShwYXJzZU5EaWdpdHModG9rZW4ubGVuZ3RoLCBkYXRlU3RyaW5nKSwgdmFsdWVDYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoX2RhdGUsIHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLmlzVHdvRGlnaXRZZWFyIHx8IHZhbHVlLnllYXIgPiAwO1xuICB9XG5cbiAgc2V0KGRhdGUsIGZsYWdzLCB2YWx1ZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gZ2V0V2Vla1llYXIoZGF0ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAodmFsdWUuaXNUd29EaWdpdFllYXIpIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRUd29EaWdpdFllYXIgPSBub3JtYWxpemVUd29EaWdpdFllYXIoXG4gICAgICAgIHZhbHVlLnllYXIsXG4gICAgICAgIGN1cnJlbnRZZWFyLFxuICAgICAgKTtcbiAgICAgIGRhdGUuc2V0RnVsbFllYXIoXG4gICAgICAgIG5vcm1hbGl6ZWRUd29EaWdpdFllYXIsXG4gICAgICAgIDAsXG4gICAgICAgIG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlLFxuICAgICAgKTtcbiAgICAgIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgICByZXR1cm4gc3RhcnRPZldlZWsoZGF0ZSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY29uc3QgeWVhciA9XG4gICAgICAhKFwiZXJhXCIgaW4gZmxhZ3MpIHx8IGZsYWdzLmVyYSA9PT0gMSA/IHZhbHVlLnllYXIgOiAxIC0gdmFsdWUueWVhcjtcbiAgICBkYXRlLnNldEZ1bGxZZWFyKHllYXIsIDAsIG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlKTtcbiAgICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBzdGFydE9mV2VlayhkYXRlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGluY29tcGF0aWJsZVRva2VucyA9IFtcbiAgICBcInlcIixcbiAgICBcIlJcIixcbiAgICBcInVcIixcbiAgICBcIlFcIixcbiAgICBcInFcIixcbiAgICBcIk1cIixcbiAgICBcIkxcIixcbiAgICBcIklcIixcbiAgICBcImRcIixcbiAgICBcIkRcIixcbiAgICBcImlcIixcbiAgICBcInRcIixcbiAgICBcIlRcIixcbiAgXTtcbn1cbiIsICJpbXBvcnQgeyBzdGFydE9mSVNPV2VlayB9IGZyb20gXCIuLi8uLi8uLi9zdGFydE9mSVNPV2Vlay5qc1wiO1xuaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuLi8uLi8uLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbmltcG9ydCB7IHBhcnNlTkRpZ2l0c1NpZ25lZCB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG4vLyBJU08gd2Vlay1udW1iZXJpbmcgeWVhclxuZXhwb3J0IGNsYXNzIElTT1dlZWtZZWFyUGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSAxMzA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4gPT09IFwiUlwiKSB7XG4gICAgICByZXR1cm4gcGFyc2VORGlnaXRzU2lnbmVkKDQsIGRhdGVTdHJpbmcpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZU5EaWdpdHNTaWduZWQodG9rZW4ubGVuZ3RoLCBkYXRlU3RyaW5nKTtcbiAgfVxuXG4gIHNldChkYXRlLCBfZmxhZ3MsIHZhbHVlKSB7XG4gICAgY29uc3QgZmlyc3RXZWVrT2ZZZWFyID0gY29uc3RydWN0RnJvbShkYXRlLCAwKTtcbiAgICBmaXJzdFdlZWtPZlllYXIuc2V0RnVsbFllYXIodmFsdWUsIDAsIDQpO1xuICAgIGZpcnN0V2Vla09mWWVhci5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gc3RhcnRPZklTT1dlZWsoZmlyc3RXZWVrT2ZZZWFyKTtcbiAgfVxuXG4gIGluY29tcGF0aWJsZVRva2VucyA9IFtcbiAgICBcIkdcIixcbiAgICBcInlcIixcbiAgICBcIllcIixcbiAgICBcInVcIixcbiAgICBcIlFcIixcbiAgICBcInFcIixcbiAgICBcIk1cIixcbiAgICBcIkxcIixcbiAgICBcIndcIixcbiAgICBcImRcIixcbiAgICBcIkRcIixcbiAgICBcImVcIixcbiAgICBcImNcIixcbiAgICBcInRcIixcbiAgICBcIlRcIixcbiAgXTtcbn1cbiIsICJpbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbmltcG9ydCB7IHBhcnNlTkRpZ2l0c1NpZ25lZCB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgRXh0ZW5kZWRZZWFyUGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSAxMzA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4gPT09IFwidVwiKSB7XG4gICAgICByZXR1cm4gcGFyc2VORGlnaXRzU2lnbmVkKDQsIGRhdGVTdHJpbmcpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZU5EaWdpdHNTaWduZWQodG9rZW4ubGVuZ3RoLCBkYXRlU3RyaW5nKTtcbiAgfVxuXG4gIHNldChkYXRlLCBfZmxhZ3MsIHZhbHVlKSB7XG4gICAgZGF0ZS5zZXRGdWxsWWVhcih2YWx1ZSwgMCwgMSk7XG4gICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG4gIGluY29tcGF0aWJsZVRva2VucyA9IFtcIkdcIiwgXCJ5XCIsIFwiWVwiLCBcIlJcIiwgXCJ3XCIsIFwiSVwiLCBcImlcIiwgXCJlXCIsIFwiY1wiLCBcInRcIiwgXCJUXCJdO1xufVxuIiwgImltcG9ydCB7IFBhcnNlciB9IGZyb20gXCIuLi9QYXJzZXIuanNcIjtcblxuaW1wb3J0IHsgcGFyc2VORGlnaXRzIH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBRdWFydGVyUGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSAxMjA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4sIG1hdGNoKSB7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gMSwgMiwgMywgNFxuICAgICAgY2FzZSBcIlFcIjpcbiAgICAgIGNhc2UgXCJRUVwiOiAvLyAwMSwgMDIsIDAzLCAwNFxuICAgICAgICByZXR1cm4gcGFyc2VORGlnaXRzKHRva2VuLmxlbmd0aCwgZGF0ZVN0cmluZyk7XG4gICAgICAvLyAxc3QsIDJuZCwgM3JkLCA0dGhcbiAgICAgIGNhc2UgXCJRb1wiOlxuICAgICAgICByZXR1cm4gbWF0Y2gub3JkaW5hbE51bWJlcihkYXRlU3RyaW5nLCB7IHVuaXQ6IFwicXVhcnRlclwiIH0pO1xuICAgICAgLy8gUTEsIFEyLCBRMywgUTRcbiAgICAgIGNhc2UgXCJRUVFcIjpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaC5xdWFydGVyKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KSB8fFxuICAgICAgICAgIG1hdGNoLnF1YXJ0ZXIoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAvLyAxLCAyLCAzLCA0IChuYXJyb3cgcXVhcnRlcjsgY291bGQgYmUgbm90IG51bWVyaWNhbClcbiAgICAgIGNhc2UgXCJRUVFRUVwiOlxuICAgICAgICByZXR1cm4gbWF0Y2gucXVhcnRlcihkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gMXN0IHF1YXJ0ZXIsIDJuZCBxdWFydGVyLCAuLi5cbiAgICAgIGNhc2UgXCJRUVFRXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1hdGNoLnF1YXJ0ZXIoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwid2lkZVwiLFxuICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgfSkgfHxcbiAgICAgICAgICBtYXRjaC5xdWFydGVyKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KSB8fFxuICAgICAgICAgIG1hdGNoLnF1YXJ0ZXIoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKF9kYXRlLCB2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA+PSAxICYmIHZhbHVlIDw9IDQ7XG4gIH1cblxuICBzZXQoZGF0ZSwgX2ZsYWdzLCB2YWx1ZSkge1xuICAgIGRhdGUuc2V0TW9udGgoKHZhbHVlIC0gMSkgKiAzLCAxKTtcbiAgICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1xuICAgIFwiWVwiLFxuICAgIFwiUlwiLFxuICAgIFwicVwiLFxuICAgIFwiTVwiLFxuICAgIFwiTFwiLFxuICAgIFwid1wiLFxuICAgIFwiSVwiLFxuICAgIFwiZFwiLFxuICAgIFwiRFwiLFxuICAgIFwiaVwiLFxuICAgIFwiZVwiLFxuICAgIFwiY1wiLFxuICAgIFwidFwiLFxuICAgIFwiVFwiLFxuICBdO1xufVxuIiwgImltcG9ydCB7IFBhcnNlciB9IGZyb20gXCIuLi9QYXJzZXIuanNcIjtcblxuaW1wb3J0IHsgcGFyc2VORGlnaXRzIH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBTdGFuZEFsb25lUXVhcnRlclBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gMTIwO1xuXG4gIHBhcnNlKGRhdGVTdHJpbmcsIHRva2VuLCBtYXRjaCkge1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDEsIDIsIDMsIDRcbiAgICAgIGNhc2UgXCJxXCI6XG4gICAgICBjYXNlIFwicXFcIjogLy8gMDEsIDAyLCAwMywgMDRcbiAgICAgICAgcmV0dXJuIHBhcnNlTkRpZ2l0cyh0b2tlbi5sZW5ndGgsIGRhdGVTdHJpbmcpO1xuICAgICAgLy8gMXN0LCAybmQsIDNyZCwgNHRoXG4gICAgICBjYXNlIFwicW9cIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywgeyB1bml0OiBcInF1YXJ0ZXJcIiB9KTtcbiAgICAgIC8vIFExLCBRMiwgUTMsIFE0XG4gICAgICBjYXNlIFwicXFxXCI6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbWF0Y2gucXVhcnRlcihkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJhYmJyZXZpYXRlZFwiLFxuICAgICAgICAgICAgY29udGV4dDogXCJzdGFuZGFsb25lXCIsXG4gICAgICAgICAgfSkgfHxcbiAgICAgICAgICBtYXRjaC5xdWFydGVyKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcIm5hcnJvd1wiLFxuICAgICAgICAgICAgY29udGV4dDogXCJzdGFuZGFsb25lXCIsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgLy8gMSwgMiwgMywgNCAobmFycm93IHF1YXJ0ZXI7IGNvdWxkIGJlIG5vdCBudW1lcmljYWwpXG4gICAgICBjYXNlIFwicXFxcXFcIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLnF1YXJ0ZXIoZGF0ZVN0cmluZywge1xuICAgICAgICAgIHdpZHRoOiBcIm5hcnJvd1wiLFxuICAgICAgICAgIGNvbnRleHQ6IFwic3RhbmRhbG9uZVwiLFxuICAgICAgICB9KTtcbiAgICAgIC8vIDFzdCBxdWFydGVyLCAybmQgcXVhcnRlciwgLi4uXG4gICAgICBjYXNlIFwicXFxcVwiOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaC5xdWFydGVyKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcIndpZGVcIixcbiAgICAgICAgICAgIGNvbnRleHQ6IFwic3RhbmRhbG9uZVwiLFxuICAgICAgICAgIH0pIHx8XG4gICAgICAgICAgbWF0Y2gucXVhcnRlcihkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJhYmJyZXZpYXRlZFwiLFxuICAgICAgICAgICAgY29udGV4dDogXCJzdGFuZGFsb25lXCIsXG4gICAgICAgICAgfSkgfHxcbiAgICAgICAgICBtYXRjaC5xdWFydGVyKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcIm5hcnJvd1wiLFxuICAgICAgICAgICAgY29udGV4dDogXCJzdGFuZGFsb25lXCIsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShfZGF0ZSwgdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPj0gMSAmJiB2YWx1ZSA8PSA0O1xuICB9XG5cbiAgc2V0KGRhdGUsIF9mbGFncywgdmFsdWUpIHtcbiAgICBkYXRlLnNldE1vbnRoKCh2YWx1ZSAtIDEpICogMywgMSk7XG4gICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG4gIGluY29tcGF0aWJsZVRva2VucyA9IFtcbiAgICBcIllcIixcbiAgICBcIlJcIixcbiAgICBcIlFcIixcbiAgICBcIk1cIixcbiAgICBcIkxcIixcbiAgICBcIndcIixcbiAgICBcIklcIixcbiAgICBcImRcIixcbiAgICBcIkRcIixcbiAgICBcImlcIixcbiAgICBcImVcIixcbiAgICBcImNcIixcbiAgICBcInRcIixcbiAgICBcIlRcIixcbiAgXTtcbn1cbiIsICJpbXBvcnQgeyBudW1lcmljUGF0dGVybnMgfSBmcm9tIFwiLi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbmltcG9ydCB7IG1hcFZhbHVlLCBwYXJzZU5EaWdpdHMsIHBhcnNlTnVtZXJpY1BhdHRlcm4gfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIE1vbnRoUGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1xuICAgIFwiWVwiLFxuICAgIFwiUlwiLFxuICAgIFwicVwiLFxuICAgIFwiUVwiLFxuICAgIFwiTFwiLFxuICAgIFwid1wiLFxuICAgIFwiSVwiLFxuICAgIFwiRFwiLFxuICAgIFwiaVwiLFxuICAgIFwiZVwiLFxuICAgIFwiY1wiLFxuICAgIFwidFwiLFxuICAgIFwiVFwiLFxuICBdO1xuXG4gIHByaW9yaXR5ID0gMTEwO1xuXG4gIHBhcnNlKGRhdGVTdHJpbmcsIHRva2VuLCBtYXRjaCkge1xuICAgIGNvbnN0IHZhbHVlQ2FsbGJhY2sgPSAodmFsdWUpID0+IHZhbHVlIC0gMTtcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDEsIDIsIC4uLiwgMTJcbiAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgIHJldHVybiBtYXBWYWx1ZShcbiAgICAgICAgICBwYXJzZU51bWVyaWNQYXR0ZXJuKG51bWVyaWNQYXR0ZXJucy5tb250aCwgZGF0ZVN0cmluZyksXG4gICAgICAgICAgdmFsdWVDYWxsYmFjayxcbiAgICAgICAgKTtcbiAgICAgIC8vIDAxLCAwMiwgLi4uLCAxMlxuICAgICAgY2FzZSBcIk1NXCI6XG4gICAgICAgIHJldHVybiBtYXBWYWx1ZShwYXJzZU5EaWdpdHMoMiwgZGF0ZVN0cmluZyksIHZhbHVlQ2FsbGJhY2spO1xuICAgICAgLy8gMXN0LCAybmQsIC4uLiwgMTJ0aFxuICAgICAgY2FzZSBcIk1vXCI6XG4gICAgICAgIHJldHVybiBtYXBWYWx1ZShcbiAgICAgICAgICBtYXRjaC5vcmRpbmFsTnVtYmVyKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHVuaXQ6IFwibW9udGhcIixcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB2YWx1ZUNhbGxiYWNrLFxuICAgICAgICApO1xuICAgICAgLy8gSmFuLCBGZWIsIC4uLiwgRGVjXG4gICAgICBjYXNlIFwiTU1NXCI6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbWF0Y2gubW9udGgoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICAgIH0pIHx8XG4gICAgICAgICAgbWF0Y2gubW9udGgoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJuYXJyb3dcIiwgY29udGV4dDogXCJmb3JtYXR0aW5nXCIgfSlcbiAgICAgICAgKTtcblxuICAgICAgLy8gSiwgRiwgLi4uLCBEXG4gICAgICBjYXNlIFwiTU1NTU1cIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLm1vbnRoKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICB3aWR0aDogXCJuYXJyb3dcIixcbiAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgfSk7XG4gICAgICAvLyBKYW51YXJ5LCBGZWJydWFyeSwgLi4uLCBEZWNlbWJlclxuICAgICAgY2FzZSBcIk1NTU1cIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbWF0Y2gubW9udGgoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJ3aWRlXCIsIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiIH0pIHx8XG4gICAgICAgICAgbWF0Y2gubW9udGgoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICAgIH0pIHx8XG4gICAgICAgICAgbWF0Y2gubW9udGgoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJuYXJyb3dcIiwgY29udGV4dDogXCJmb3JtYXR0aW5nXCIgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShfZGF0ZSwgdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPj0gMCAmJiB2YWx1ZSA8PSAxMTtcbiAgfVxuXG4gIHNldChkYXRlLCBfZmxhZ3MsIHZhbHVlKSB7XG4gICAgZGF0ZS5zZXRNb250aCh2YWx1ZSwgMSk7XG4gICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxufVxuIiwgImltcG9ydCB7IG51bWVyaWNQYXR0ZXJucyB9IGZyb20gXCIuLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IFBhcnNlciB9IGZyb20gXCIuLi9QYXJzZXIuanNcIjtcblxuaW1wb3J0IHsgbWFwVmFsdWUsIHBhcnNlTkRpZ2l0cywgcGFyc2VOdW1lcmljUGF0dGVybiB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgU3RhbmRBbG9uZU1vbnRoUGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSAxMTA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4sIG1hdGNoKSB7XG4gICAgY29uc3QgdmFsdWVDYWxsYmFjayA9ICh2YWx1ZSkgPT4gdmFsdWUgLSAxO1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gMSwgMiwgLi4uLCAxMlxuICAgICAgY2FzZSBcIkxcIjpcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlKFxuICAgICAgICAgIHBhcnNlTnVtZXJpY1BhdHRlcm4obnVtZXJpY1BhdHRlcm5zLm1vbnRoLCBkYXRlU3RyaW5nKSxcbiAgICAgICAgICB2YWx1ZUNhbGxiYWNrLFxuICAgICAgICApO1xuICAgICAgLy8gMDEsIDAyLCAuLi4sIDEyXG4gICAgICBjYXNlIFwiTExcIjpcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlKHBhcnNlTkRpZ2l0cygyLCBkYXRlU3RyaW5nKSwgdmFsdWVDYWxsYmFjayk7XG4gICAgICAvLyAxc3QsIDJuZCwgLi4uLCAxMnRoXG4gICAgICBjYXNlIFwiTG9cIjpcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlKFxuICAgICAgICAgIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgdW5pdDogXCJtb250aFwiLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHZhbHVlQ2FsbGJhY2ssXG4gICAgICAgICk7XG4gICAgICAvLyBKYW4sIEZlYiwgLi4uLCBEZWNcbiAgICAgIGNhc2UgXCJMTExcIjpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaC5tb250aChkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJhYmJyZXZpYXRlZFwiLFxuICAgICAgICAgICAgY29udGV4dDogXCJzdGFuZGFsb25lXCIsXG4gICAgICAgICAgfSkgfHxcbiAgICAgICAgICBtYXRjaC5tb250aChkYXRlU3RyaW5nLCB7IHdpZHRoOiBcIm5hcnJvd1wiLCBjb250ZXh0OiBcInN0YW5kYWxvbmVcIiB9KVxuICAgICAgICApO1xuXG4gICAgICAvLyBKLCBGLCAuLi4sIERcbiAgICAgIGNhc2UgXCJMTExMTFwiOlxuICAgICAgICByZXR1cm4gbWF0Y2gubW9udGgoZGF0ZVN0cmluZywge1xuICAgICAgICAgIHdpZHRoOiBcIm5hcnJvd1wiLFxuICAgICAgICAgIGNvbnRleHQ6IFwic3RhbmRhbG9uZVwiLFxuICAgICAgICB9KTtcbiAgICAgIC8vIEphbnVhcnksIEZlYnJ1YXJ5LCAuLi4sIERlY2VtYmVyXG4gICAgICBjYXNlIFwiTExMTFwiOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaC5tb250aChkYXRlU3RyaW5nLCB7IHdpZHRoOiBcIndpZGVcIiwgY29udGV4dDogXCJzdGFuZGFsb25lXCIgfSkgfHxcbiAgICAgICAgICBtYXRjaC5tb250aChkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJhYmJyZXZpYXRlZFwiLFxuICAgICAgICAgICAgY29udGV4dDogXCJzdGFuZGFsb25lXCIsXG4gICAgICAgICAgfSkgfHxcbiAgICAgICAgICBtYXRjaC5tb250aChkYXRlU3RyaW5nLCB7IHdpZHRoOiBcIm5hcnJvd1wiLCBjb250ZXh0OiBcInN0YW5kYWxvbmVcIiB9KVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKF9kYXRlLCB2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA+PSAwICYmIHZhbHVlIDw9IDExO1xuICB9XG5cbiAgc2V0KGRhdGUsIF9mbGFncywgdmFsdWUpIHtcbiAgICBkYXRlLnNldE1vbnRoKHZhbHVlLCAxKTtcbiAgICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1xuICAgIFwiWVwiLFxuICAgIFwiUlwiLFxuICAgIFwicVwiLFxuICAgIFwiUVwiLFxuICAgIFwiTVwiLFxuICAgIFwid1wiLFxuICAgIFwiSVwiLFxuICAgIFwiRFwiLFxuICAgIFwiaVwiLFxuICAgIFwiZVwiLFxuICAgIFwiY1wiLFxuICAgIFwidFwiLFxuICAgIFwiVFwiLFxuICBdO1xufVxuIiwgImltcG9ydCB7IGdldFdlZWsgfSBmcm9tIFwiLi9nZXRXZWVrLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHNldFdlZWt9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBzZXRXZWVrXG4gKiBAY2F0ZWdvcnkgV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTZXQgdGhlIGxvY2FsIHdlZWsgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTZXQgdGhlIGxvY2FsIHdlZWsgdG8gdGhlIGdpdmVuIGRhdGUsIHNhdmluZyB0aGUgd2Vla2RheSBudW1iZXIuXG4gKiBUaGUgZXhhY3QgY2FsY3VsYXRpb24gZGVwZW5kcyBvbiB0aGUgdmFsdWVzIG9mXG4gKiBgb3B0aW9ucy53ZWVrU3RhcnRzT25gICh3aGljaCBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaylcbiAqIGFuZCBgb3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGVgICh3aGljaCBpcyB0aGUgZGF5IG9mIEphbnVhcnksIHdoaWNoIGlzIGFsd2F5cyBpblxuICogdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHdlZWstbnVtYmVyaW5nIHllYXIpXG4gKlxuICogV2VlayBudW1iZXJpbmc6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dlZWsjVGhlX0lTT193ZWVrX2RhdGVfc3lzdGVtXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHdlZWsgLSBUaGUgd2VlayBvZiB0aGUgbmV3IGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBsb2NhbCB3ZWVrIHNldFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTZXQgdGhlIDFzdCB3ZWVrIHRvIDIgSmFudWFyeSAyMDA1IHdpdGggZGVmYXVsdCBvcHRpb25zOlxuICogY29uc3QgcmVzdWx0ID0gc2V0V2VlayhuZXcgRGF0ZSgyMDA1LCAwLCAyKSwgMSlcbiAqIC8vPT4gU3VuIERlYyAyNiAyMDA0IDAwOjAwOjAwXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNldCB0aGUgMXN0IHdlZWsgdG8gMiBKYW51YXJ5IDIwMDUsXG4gKiAvLyBpZiBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayxcbiAqIC8vIGFuZCB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciBhbHdheXMgY29udGFpbnMgNCBKYW51YXJ5OlxuICogY29uc3QgcmVzdWx0ID0gc2V0V2VlayhuZXcgRGF0ZSgyMDA1LCAwLCAyKSwgMSwge1xuICogICB3ZWVrU3RhcnRzT246IDEsXG4gKiAgIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZTogNFxuICogfSlcbiAqIC8vPT4gU3VuIEphbiA0IDIwMDQgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFdlZWsoZGF0ZSwgd2Vlaywgb3B0aW9ucykge1xuICBjb25zdCBkYXRlXyA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGNvbnN0IGRpZmYgPSBnZXRXZWVrKGRhdGVfLCBvcHRpb25zKSAtIHdlZWs7XG4gIGRhdGVfLnNldERhdGUoZGF0ZV8uZ2V0RGF0ZSgpIC0gZGlmZiAqIDcpO1xuICByZXR1cm4gdG9EYXRlKGRhdGVfLCBvcHRpb25zPy5pbik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc2V0V2VlaztcbiIsICJpbXBvcnQgeyBzZXRXZWVrIH0gZnJvbSBcIi4uLy4uLy4uL3NldFdlZWsuanNcIjtcbmltcG9ydCB7IHN0YXJ0T2ZXZWVrIH0gZnJvbSBcIi4uLy4uLy4uL3N0YXJ0T2ZXZWVrLmpzXCI7XG5pbXBvcnQgeyBudW1lcmljUGF0dGVybnMgfSBmcm9tIFwiLi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbmltcG9ydCB7IHBhcnNlTkRpZ2l0cywgcGFyc2VOdW1lcmljUGF0dGVybiB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG4vLyBMb2NhbCB3ZWVrIG9mIHllYXJcbmV4cG9ydCBjbGFzcyBMb2NhbFdlZWtQYXJzZXIgZXh0ZW5kcyBQYXJzZXIge1xuICBwcmlvcml0eSA9IDEwMDtcblxuICBwYXJzZShkYXRlU3RyaW5nLCB0b2tlbiwgbWF0Y2gpIHtcbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlIFwid1wiOlxuICAgICAgICByZXR1cm4gcGFyc2VOdW1lcmljUGF0dGVybihudW1lcmljUGF0dGVybnMud2VlaywgZGF0ZVN0cmluZyk7XG4gICAgICBjYXNlIFwid29cIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywgeyB1bml0OiBcIndlZWtcIiB9KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwYXJzZU5EaWdpdHModG9rZW4ubGVuZ3RoLCBkYXRlU3RyaW5nKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShfZGF0ZSwgdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPj0gMSAmJiB2YWx1ZSA8PSA1MztcbiAgfVxuXG4gIHNldChkYXRlLCBfZmxhZ3MsIHZhbHVlLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIHN0YXJ0T2ZXZWVrKHNldFdlZWsoZGF0ZSwgdmFsdWUsIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgfVxuXG4gIGluY29tcGF0aWJsZVRva2VucyA9IFtcbiAgICBcInlcIixcbiAgICBcIlJcIixcbiAgICBcInVcIixcbiAgICBcInFcIixcbiAgICBcIlFcIixcbiAgICBcIk1cIixcbiAgICBcIkxcIixcbiAgICBcIklcIixcbiAgICBcImRcIixcbiAgICBcIkRcIixcbiAgICBcImlcIixcbiAgICBcInRcIixcbiAgICBcIlRcIixcbiAgXTtcbn1cbiIsICJpbXBvcnQgeyBnZXRJU09XZWVrIH0gZnJvbSBcIi4vZ2V0SVNPV2Vlay5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzZXRJU09XZWVrfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc2V0SVNPV2Vla1xuICogQGNhdGVnb3J5IElTTyBXZWVrIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFNldCB0aGUgSVNPIHdlZWsgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTZXQgdGhlIElTTyB3ZWVrIHRvIHRoZSBnaXZlbiBkYXRlLCBzYXZpbmcgdGhlIHdlZWtkYXkgbnVtYmVyLlxuICpcbiAqIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSBgRGF0ZWAgdHlwZSBvZiB0aGUgY29udGV4dCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSB3ZWVrIC0gVGhlIElTTyB3ZWVrIG9mIHRoZSBuZXcgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIElTTyB3ZWVrIHNldFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTZXQgdGhlIDUzcmQgSVNPIHdlZWsgdG8gNyBBdWd1c3QgMjAwNDpcbiAqIGNvbnN0IHJlc3VsdCA9IHNldElTT1dlZWsobmV3IERhdGUoMjAwNCwgNywgNyksIDUzKVxuICogLy89PiBTYXQgSmFuIDAxIDIwMDUgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldElTT1dlZWsoZGF0ZSwgd2Vlaywgb3B0aW9ucykge1xuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGNvbnN0IGRpZmYgPSBnZXRJU09XZWVrKF9kYXRlLCBvcHRpb25zKSAtIHdlZWs7XG4gIF9kYXRlLnNldERhdGUoX2RhdGUuZ2V0RGF0ZSgpIC0gZGlmZiAqIDcpO1xuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc2V0SVNPV2VlaztcbiIsICJpbXBvcnQgeyBzZXRJU09XZWVrIH0gZnJvbSBcIi4uLy4uLy4uL3NldElTT1dlZWsuanNcIjtcbmltcG9ydCB7IHN0YXJ0T2ZJU09XZWVrIH0gZnJvbSBcIi4uLy4uLy4uL3N0YXJ0T2ZJU09XZWVrLmpzXCI7XG5pbXBvcnQgeyBudW1lcmljUGF0dGVybnMgfSBmcm9tIFwiLi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbmltcG9ydCB7IHBhcnNlTkRpZ2l0cywgcGFyc2VOdW1lcmljUGF0dGVybiB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG4vLyBJU08gd2VlayBvZiB5ZWFyXG5leHBvcnQgY2xhc3MgSVNPV2Vla1BhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gMTAwO1xuXG4gIHBhcnNlKGRhdGVTdHJpbmcsIHRva2VuLCBtYXRjaCkge1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgXCJJXCI6XG4gICAgICAgIHJldHVybiBwYXJzZU51bWVyaWNQYXR0ZXJuKG51bWVyaWNQYXR0ZXJucy53ZWVrLCBkYXRlU3RyaW5nKTtcbiAgICAgIGNhc2UgXCJJb1wiOlxuICAgICAgICByZXR1cm4gbWF0Y2gub3JkaW5hbE51bWJlcihkYXRlU3RyaW5nLCB7IHVuaXQ6IFwid2Vla1wiIH0pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHBhcnNlTkRpZ2l0cyh0b2tlbi5sZW5ndGgsIGRhdGVTdHJpbmcpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKF9kYXRlLCB2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA+PSAxICYmIHZhbHVlIDw9IDUzO1xuICB9XG5cbiAgc2V0KGRhdGUsIF9mbGFncywgdmFsdWUpIHtcbiAgICByZXR1cm4gc3RhcnRPZklTT1dlZWsoc2V0SVNPV2VlayhkYXRlLCB2YWx1ZSkpO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1xuICAgIFwieVwiLFxuICAgIFwiWVwiLFxuICAgIFwidVwiLFxuICAgIFwicVwiLFxuICAgIFwiUVwiLFxuICAgIFwiTVwiLFxuICAgIFwiTFwiLFxuICAgIFwid1wiLFxuICAgIFwiZFwiLFxuICAgIFwiRFwiLFxuICAgIFwiZVwiLFxuICAgIFwiY1wiLFxuICAgIFwidFwiLFxuICAgIFwiVFwiLFxuICBdO1xufVxuIiwgImltcG9ydCB7IG51bWVyaWNQYXR0ZXJucyB9IGZyb20gXCIuLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IFBhcnNlciB9IGZyb20gXCIuLi9QYXJzZXIuanNcIjtcblxuaW1wb3J0IHtcbiAgaXNMZWFwWWVhckluZGV4LFxuICBwYXJzZU5EaWdpdHMsXG4gIHBhcnNlTnVtZXJpY1BhdHRlcm4sXG59IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG5jb25zdCBEQVlTX0lOX01PTlRIID0gWzMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xuY29uc3QgREFZU19JTl9NT05USF9MRUFQX1lFQVIgPSBbXG4gIDMxLCAyOSwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzEsXG5dO1xuXG4vLyBEYXkgb2YgdGhlIG1vbnRoXG5leHBvcnQgY2xhc3MgRGF0ZVBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gOTA7XG4gIHN1YlByaW9yaXR5ID0gMTtcblxuICBwYXJzZShkYXRlU3RyaW5nLCB0b2tlbiwgbWF0Y2gpIHtcbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlIFwiZFwiOlxuICAgICAgICByZXR1cm4gcGFyc2VOdW1lcmljUGF0dGVybihudW1lcmljUGF0dGVybnMuZGF0ZSwgZGF0ZVN0cmluZyk7XG4gICAgICBjYXNlIFwiZG9cIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywgeyB1bml0OiBcImRhdGVcIiB9KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwYXJzZU5EaWdpdHModG9rZW4ubGVuZ3RoLCBkYXRlU3RyaW5nKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShkYXRlLCB2YWx1ZSkge1xuICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgaXNMZWFwWWVhciA9IGlzTGVhcFllYXJJbmRleCh5ZWFyKTtcbiAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcbiAgICBpZiAoaXNMZWFwWWVhcikge1xuICAgICAgcmV0dXJuIHZhbHVlID49IDEgJiYgdmFsdWUgPD0gREFZU19JTl9NT05USF9MRUFQX1lFQVJbbW9udGhdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsdWUgPj0gMSAmJiB2YWx1ZSA8PSBEQVlTX0lOX01PTlRIW21vbnRoXTtcbiAgICB9XG4gIH1cblxuICBzZXQoZGF0ZSwgX2ZsYWdzLCB2YWx1ZSkge1xuICAgIGRhdGUuc2V0RGF0ZSh2YWx1ZSk7XG4gICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG4gIGluY29tcGF0aWJsZVRva2VucyA9IFtcbiAgICBcIllcIixcbiAgICBcIlJcIixcbiAgICBcInFcIixcbiAgICBcIlFcIixcbiAgICBcIndcIixcbiAgICBcIklcIixcbiAgICBcIkRcIixcbiAgICBcImlcIixcbiAgICBcImVcIixcbiAgICBcImNcIixcbiAgICBcInRcIixcbiAgICBcIlRcIixcbiAgXTtcbn1cbiIsICJpbXBvcnQgeyBudW1lcmljUGF0dGVybnMgfSBmcm9tIFwiLi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbmltcG9ydCB7XG4gIGlzTGVhcFllYXJJbmRleCxcbiAgcGFyc2VORGlnaXRzLFxuICBwYXJzZU51bWVyaWNQYXR0ZXJuLFxufSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIERheU9mWWVhclBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gOTA7XG5cbiAgc3VicHJpb3JpdHkgPSAxO1xuXG4gIHBhcnNlKGRhdGVTdHJpbmcsIHRva2VuLCBtYXRjaCkge1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgXCJEXCI6XG4gICAgICBjYXNlIFwiRERcIjpcbiAgICAgICAgcmV0dXJuIHBhcnNlTnVtZXJpY1BhdHRlcm4obnVtZXJpY1BhdHRlcm5zLmRheU9mWWVhciwgZGF0ZVN0cmluZyk7XG4gICAgICBjYXNlIFwiRG9cIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywgeyB1bml0OiBcImRhdGVcIiB9KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwYXJzZU5EaWdpdHModG9rZW4ubGVuZ3RoLCBkYXRlU3RyaW5nKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShkYXRlLCB2YWx1ZSkge1xuICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgaXNMZWFwWWVhciA9IGlzTGVhcFllYXJJbmRleCh5ZWFyKTtcbiAgICBpZiAoaXNMZWFwWWVhcikge1xuICAgICAgcmV0dXJuIHZhbHVlID49IDEgJiYgdmFsdWUgPD0gMzY2O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsdWUgPj0gMSAmJiB2YWx1ZSA8PSAzNjU7XG4gICAgfVxuICB9XG5cbiAgc2V0KGRhdGUsIF9mbGFncywgdmFsdWUpIHtcbiAgICBkYXRlLnNldE1vbnRoKDAsIHZhbHVlKTtcbiAgICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1xuICAgIFwiWVwiLFxuICAgIFwiUlwiLFxuICAgIFwicVwiLFxuICAgIFwiUVwiLFxuICAgIFwiTVwiLFxuICAgIFwiTFwiLFxuICAgIFwid1wiLFxuICAgIFwiSVwiLFxuICAgIFwiZFwiLFxuICAgIFwiRVwiLFxuICAgIFwiaVwiLFxuICAgIFwiZVwiLFxuICAgIFwiY1wiLFxuICAgIFwidFwiLFxuICAgIFwiVFwiLFxuICBdO1xufVxuIiwgImltcG9ydCB7IGdldERlZmF1bHRPcHRpb25zIH0gZnJvbSBcIi4vX2xpYi9kZWZhdWx0T3B0aW9ucy5qc1wiO1xuaW1wb3J0IHsgYWRkRGF5cyB9IGZyb20gXCIuL2FkZERheXMuanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc2V0RGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc2V0RGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTZXQgdGhlIGRheSBvZiB0aGUgd2VlayB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFNldCB0aGUgZGF5IG9mIHRoZSB3ZWVrIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBkYXkgLSBUaGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBuZXcgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBkYXkgb2YgdGhlIHdlZWsgc2V0XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNldCB3ZWVrIGRheSB0byBTdW5kYXksIHdpdGggdGhlIGRlZmF1bHQgd2Vla1N0YXJ0c09uIG9mIFN1bmRheTpcbiAqIGNvbnN0IHJlc3VsdCA9IHNldERheShuZXcgRGF0ZSgyMDE0LCA4LCAxKSwgMClcbiAqIC8vPT4gU3VuIEF1ZyAzMSAyMDE0IDAwOjAwOjAwXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNldCB3ZWVrIGRheSB0byBTdW5kYXksIHdpdGggYSB3ZWVrU3RhcnRzT24gb2YgTW9uZGF5OlxuICogY29uc3QgcmVzdWx0ID0gc2V0RGF5KG5ldyBEYXRlKDIwMTQsIDgsIDEpLCAwLCB7IHdlZWtTdGFydHNPbjogMSB9KVxuICogLy89PiBTdW4gU2VwIDA3IDIwMTQgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldERheShkYXRlLCBkYXksIG9wdGlvbnMpIHtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBnZXREZWZhdWx0T3B0aW9ucygpO1xuICBjb25zdCB3ZWVrU3RhcnRzT24gPVxuICAgIG9wdGlvbnM/LndlZWtTdGFydHNPbiA/P1xuICAgIG9wdGlvbnM/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uID8/XG4gICAgZGVmYXVsdE9wdGlvbnMud2Vla1N0YXJ0c09uID8/XG4gICAgZGVmYXVsdE9wdGlvbnMubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24gPz9cbiAgICAwO1xuXG4gIGNvbnN0IGRhdGVfID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgY3VycmVudERheSA9IGRhdGVfLmdldERheSgpO1xuXG4gIGNvbnN0IHJlbWFpbmRlciA9IGRheSAlIDc7XG4gIGNvbnN0IGRheUluZGV4ID0gKHJlbWFpbmRlciArIDcpICUgNztcblxuICBjb25zdCBkZWx0YSA9IDcgLSB3ZWVrU3RhcnRzT247XG4gIGNvbnN0IGRpZmYgPVxuICAgIGRheSA8IDAgfHwgZGF5ID4gNlxuICAgICAgPyBkYXkgLSAoKGN1cnJlbnREYXkgKyBkZWx0YSkgJSA3KVxuICAgICAgOiAoKGRheUluZGV4ICsgZGVsdGEpICUgNykgLSAoKGN1cnJlbnREYXkgKyBkZWx0YSkgJSA3KTtcbiAgcmV0dXJuIGFkZERheXMoZGF0ZV8sIGRpZmYsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHNldERheTtcbiIsICJpbXBvcnQgeyBzZXREYXkgfSBmcm9tIFwiLi4vLi4vLi4vc2V0RGF5LmpzXCI7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbi8vIERheSBvZiB3ZWVrXG5leHBvcnQgY2xhc3MgRGF5UGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSA5MDtcblxuICBwYXJzZShkYXRlU3RyaW5nLCB0b2tlbiwgbWF0Y2gpIHtcbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICAvLyBUdWVcbiAgICAgIGNhc2UgXCJFXCI6XG4gICAgICBjYXNlIFwiRUVcIjpcbiAgICAgIGNhc2UgXCJFRUVcIjpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICAgIH0pIHx8XG4gICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHsgd2lkdGg6IFwic2hvcnRcIiwgY29udGV4dDogXCJmb3JtYXR0aW5nXCIgfSkgfHxcbiAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJuYXJyb3dcIiwgY29udGV4dDogXCJmb3JtYXR0aW5nXCIgfSlcbiAgICAgICAgKTtcblxuICAgICAgLy8gVFxuICAgICAgY2FzZSBcIkVFRUVFXCI6XG4gICAgICAgIHJldHVybiBtYXRjaC5kYXkoZGF0ZVN0cmluZywge1xuICAgICAgICAgIHdpZHRoOiBcIm5hcnJvd1wiLFxuICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICB9KTtcbiAgICAgIC8vIFR1XG4gICAgICBjYXNlIFwiRUVFRUVFXCI6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHsgd2lkdGg6IFwic2hvcnRcIiwgY29udGV4dDogXCJmb3JtYXR0aW5nXCIgfSkgfHxcbiAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJuYXJyb3dcIiwgY29udGV4dDogXCJmb3JtYXR0aW5nXCIgfSlcbiAgICAgICAgKTtcblxuICAgICAgLy8gVHVlc2RheVxuICAgICAgY2FzZSBcIkVFRUVcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHsgd2lkdGg6IFwid2lkZVwiLCBjb250ZXh0OiBcImZvcm1hdHRpbmdcIiB9KSB8fFxuICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJhYmJyZXZpYXRlZFwiLFxuICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgfSkgfHxcbiAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJzaG9ydFwiLCBjb250ZXh0OiBcImZvcm1hdHRpbmdcIiB9KSB8fFxuICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7IHdpZHRoOiBcIm5hcnJvd1wiLCBjb250ZXh0OiBcImZvcm1hdHRpbmdcIiB9KVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKF9kYXRlLCB2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA+PSAwICYmIHZhbHVlIDw9IDY7XG4gIH1cblxuICBzZXQoZGF0ZSwgX2ZsYWdzLCB2YWx1ZSwgb3B0aW9ucykge1xuICAgIGRhdGUgPSBzZXREYXkoZGF0ZSwgdmFsdWUsIG9wdGlvbnMpO1xuICAgIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cblxuICBpbmNvbXBhdGlibGVUb2tlbnMgPSBbXCJEXCIsIFwiaVwiLCBcImVcIiwgXCJjXCIsIFwidFwiLCBcIlRcIl07XG59XG4iLCAiaW1wb3J0IHsgc2V0RGF5IH0gZnJvbSBcIi4uLy4uLy4uL3NldERheS5qc1wiO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSBcIi4uL1BhcnNlci5qc1wiO1xuXG5pbXBvcnQgeyBtYXBWYWx1ZSwgcGFyc2VORGlnaXRzIH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbi8vIExvY2FsIGRheSBvZiB3ZWVrXG5leHBvcnQgY2xhc3MgTG9jYWxEYXlQYXJzZXIgZXh0ZW5kcyBQYXJzZXIge1xuICBwcmlvcml0eSA9IDkwO1xuICBwYXJzZShkYXRlU3RyaW5nLCB0b2tlbiwgbWF0Y2gsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB2YWx1ZUNhbGxiYWNrID0gKHZhbHVlKSA9PiB7XG4gICAgICAvLyBXZSB3YW50IGhlcmUgZmxvb3IgaW5zdGVhZCBvZiB0cnVuYywgc28gd2UgZ2V0IC03IGZvciB2YWx1ZSAwIGluc3RlYWQgb2YgMFxuICAgICAgY29uc3Qgd2hvbGVXZWVrRGF5cyA9IE1hdGguZmxvb3IoKHZhbHVlIC0gMSkgLyA3KSAqIDc7XG4gICAgICByZXR1cm4gKCh2YWx1ZSArIG9wdGlvbnMud2Vla1N0YXJ0c09uICsgNikgJSA3KSArIHdob2xlV2Vla0RheXM7XG4gICAgfTtcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDNcbiAgICAgIGNhc2UgXCJlXCI6XG4gICAgICBjYXNlIFwiZWVcIjogLy8gMDNcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlKHBhcnNlTkRpZ2l0cyh0b2tlbi5sZW5ndGgsIGRhdGVTdHJpbmcpLCB2YWx1ZUNhbGxiYWNrKTtcbiAgICAgIC8vIDNyZFxuICAgICAgY2FzZSBcImVvXCI6XG4gICAgICAgIHJldHVybiBtYXBWYWx1ZShcbiAgICAgICAgICBtYXRjaC5vcmRpbmFsTnVtYmVyKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHVuaXQ6IFwiZGF5XCIsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgdmFsdWVDYWxsYmFjayxcbiAgICAgICAgKTtcbiAgICAgIC8vIFR1ZVxuICAgICAgY2FzZSBcImVlZVwiOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJhYmJyZXZpYXRlZFwiLFxuICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgfSkgfHxcbiAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJzaG9ydFwiLCBjb250ZXh0OiBcImZvcm1hdHRpbmdcIiB9KSB8fFxuICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7IHdpZHRoOiBcIm5hcnJvd1wiLCBjb250ZXh0OiBcImZvcm1hdHRpbmdcIiB9KVxuICAgICAgICApO1xuXG4gICAgICAvLyBUXG4gICAgICBjYXNlIFwiZWVlZWVcIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgLy8gVHVcbiAgICAgIGNhc2UgXCJlZWVlZWVcIjpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJzaG9ydFwiLCBjb250ZXh0OiBcImZvcm1hdHRpbmdcIiB9KSB8fFxuICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7IHdpZHRoOiBcIm5hcnJvd1wiLCBjb250ZXh0OiBcImZvcm1hdHRpbmdcIiB9KVxuICAgICAgICApO1xuXG4gICAgICAvLyBUdWVzZGF5XG4gICAgICBjYXNlIFwiZWVlZVwiOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJ3aWRlXCIsIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiIH0pIHx8XG4gICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KSB8fFxuICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7IHdpZHRoOiBcInNob3J0XCIsIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiIH0pIHx8XG4gICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHsgd2lkdGg6IFwibmFycm93XCIsIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiIH0pXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoX2RhdGUsIHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID49IDAgJiYgdmFsdWUgPD0gNjtcbiAgfVxuXG4gIHNldChkYXRlLCBfZmxhZ3MsIHZhbHVlLCBvcHRpb25zKSB7XG4gICAgZGF0ZSA9IHNldERheShkYXRlLCB2YWx1ZSwgb3B0aW9ucyk7XG4gICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG4gIGluY29tcGF0aWJsZVRva2VucyA9IFtcbiAgICBcInlcIixcbiAgICBcIlJcIixcbiAgICBcInVcIixcbiAgICBcInFcIixcbiAgICBcIlFcIixcbiAgICBcIk1cIixcbiAgICBcIkxcIixcbiAgICBcIklcIixcbiAgICBcImRcIixcbiAgICBcIkRcIixcbiAgICBcIkVcIixcbiAgICBcImlcIixcbiAgICBcImNcIixcbiAgICBcInRcIixcbiAgICBcIlRcIixcbiAgXTtcbn1cbiIsICJpbXBvcnQgeyBzZXREYXkgfSBmcm9tIFwiLi4vLi4vLi4vc2V0RGF5LmpzXCI7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbmltcG9ydCB7IG1hcFZhbHVlLCBwYXJzZU5EaWdpdHMgfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuLy8gU3RhbmQtYWxvbmUgbG9jYWwgZGF5IG9mIHdlZWtcbmV4cG9ydCBjbGFzcyBTdGFuZEFsb25lTG9jYWxEYXlQYXJzZXIgZXh0ZW5kcyBQYXJzZXIge1xuICBwcmlvcml0eSA9IDkwO1xuXG4gIHBhcnNlKGRhdGVTdHJpbmcsIHRva2VuLCBtYXRjaCwgb3B0aW9ucykge1xuICAgIGNvbnN0IHZhbHVlQ2FsbGJhY2sgPSAodmFsdWUpID0+IHtcbiAgICAgIC8vIFdlIHdhbnQgaGVyZSBmbG9vciBpbnN0ZWFkIG9mIHRydW5jLCBzbyB3ZSBnZXQgLTcgZm9yIHZhbHVlIDAgaW5zdGVhZCBvZiAwXG4gICAgICBjb25zdCB3aG9sZVdlZWtEYXlzID0gTWF0aC5mbG9vcigodmFsdWUgLSAxKSAvIDcpICogNztcbiAgICAgIHJldHVybiAoKHZhbHVlICsgb3B0aW9ucy53ZWVrU3RhcnRzT24gKyA2KSAlIDcpICsgd2hvbGVXZWVrRGF5cztcbiAgICB9O1xuXG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgLy8gM1xuICAgICAgY2FzZSBcImNcIjpcbiAgICAgIGNhc2UgXCJjY1wiOiAvLyAwM1xuICAgICAgICByZXR1cm4gbWFwVmFsdWUocGFyc2VORGlnaXRzKHRva2VuLmxlbmd0aCwgZGF0ZVN0cmluZyksIHZhbHVlQ2FsbGJhY2spO1xuICAgICAgLy8gM3JkXG4gICAgICBjYXNlIFwiY29cIjpcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlKFxuICAgICAgICAgIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgdW5pdDogXCJkYXlcIixcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB2YWx1ZUNhbGxiYWNrLFxuICAgICAgICApO1xuICAgICAgLy8gVHVlXG4gICAgICBjYXNlIFwiY2NjXCI6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcInN0YW5kYWxvbmVcIixcbiAgICAgICAgICB9KSB8fFxuICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7IHdpZHRoOiBcInNob3J0XCIsIGNvbnRleHQ6IFwic3RhbmRhbG9uZVwiIH0pIHx8XG4gICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHsgd2lkdGg6IFwibmFycm93XCIsIGNvbnRleHQ6IFwic3RhbmRhbG9uZVwiIH0pXG4gICAgICAgICk7XG5cbiAgICAgIC8vIFRcbiAgICAgIGNhc2UgXCJjY2NjY1wiOlxuICAgICAgICByZXR1cm4gbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICB3aWR0aDogXCJuYXJyb3dcIixcbiAgICAgICAgICBjb250ZXh0OiBcInN0YW5kYWxvbmVcIixcbiAgICAgICAgfSk7XG4gICAgICAvLyBUdVxuICAgICAgY2FzZSBcImNjY2NjY1wiOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7IHdpZHRoOiBcInNob3J0XCIsIGNvbnRleHQ6IFwic3RhbmRhbG9uZVwiIH0pIHx8XG4gICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHsgd2lkdGg6IFwibmFycm93XCIsIGNvbnRleHQ6IFwic3RhbmRhbG9uZVwiIH0pXG4gICAgICAgICk7XG5cbiAgICAgIC8vIFR1ZXNkYXlcbiAgICAgIGNhc2UgXCJjY2NjXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7IHdpZHRoOiBcIndpZGVcIiwgY29udGV4dDogXCJzdGFuZGFsb25lXCIgfSkgfHxcbiAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICAgIGNvbnRleHQ6IFwic3RhbmRhbG9uZVwiLFxuICAgICAgICAgIH0pIHx8XG4gICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHsgd2lkdGg6IFwic2hvcnRcIiwgY29udGV4dDogXCJzdGFuZGFsb25lXCIgfSkgfHxcbiAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywgeyB3aWR0aDogXCJuYXJyb3dcIiwgY29udGV4dDogXCJzdGFuZGFsb25lXCIgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShfZGF0ZSwgdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPj0gMCAmJiB2YWx1ZSA8PSA2O1xuICB9XG5cbiAgc2V0KGRhdGUsIF9mbGFncywgdmFsdWUsIG9wdGlvbnMpIHtcbiAgICBkYXRlID0gc2V0RGF5KGRhdGUsIHZhbHVlLCBvcHRpb25zKTtcbiAgICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1xuICAgIFwieVwiLFxuICAgIFwiUlwiLFxuICAgIFwidVwiLFxuICAgIFwicVwiLFxuICAgIFwiUVwiLFxuICAgIFwiTVwiLFxuICAgIFwiTFwiLFxuICAgIFwiSVwiLFxuICAgIFwiZFwiLFxuICAgIFwiRFwiLFxuICAgIFwiRVwiLFxuICAgIFwiaVwiLFxuICAgIFwiZVwiLFxuICAgIFwidFwiLFxuICAgIFwiVFwiLFxuICBdO1xufVxuIiwgImltcG9ydCB7IGFkZERheXMgfSBmcm9tIFwiLi9hZGREYXlzLmpzXCI7XG5pbXBvcnQgeyBnZXRJU09EYXkgfSBmcm9tIFwiLi9nZXRJU09EYXkuanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc2V0SVNPRGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc2V0SVNPRGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTZXQgdGhlIGRheSBvZiB0aGUgSVNPIHdlZWsgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTZXQgdGhlIGRheSBvZiB0aGUgSVNPIHdlZWsgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKiBJU08gd2VlayBzdGFydHMgd2l0aCBNb25kYXkuXG4gKiA3IGlzIHRoZSBpbmRleCBvZiBTdW5kYXksIDEgaXMgdGhlIGluZGV4IG9mIE1vbmRheSwgZXRjLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBkYXkgLSBUaGUgZGF5IG9mIHRoZSBJU08gd2VlayBvZiB0aGUgbmV3IGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBkYXkgb2YgdGhlIElTTyB3ZWVrIHNldFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTZXQgU3VuZGF5IHRvIDEgU2VwdGVtYmVyIDIwMTQ6XG4gKiBjb25zdCByZXN1bHQgPSBzZXRJU09EYXkobmV3IERhdGUoMjAxNCwgOCwgMSksIDcpXG4gKiAvLz0+IFN1biBTZXAgMDcgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0SVNPRGF5KGRhdGUsIGRheSwgb3B0aW9ucykge1xuICBjb25zdCBkYXRlXyA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGNvbnN0IGN1cnJlbnREYXkgPSBnZXRJU09EYXkoZGF0ZV8sIG9wdGlvbnMpO1xuICBjb25zdCBkaWZmID0gZGF5IC0gY3VycmVudERheTtcbiAgcmV0dXJuIGFkZERheXMoZGF0ZV8sIGRpZmYsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHNldElTT0RheTtcbiIsICJpbXBvcnQgeyBzZXRJU09EYXkgfSBmcm9tIFwiLi4vLi4vLi4vc2V0SVNPRGF5LmpzXCI7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbmltcG9ydCB7IG1hcFZhbHVlLCBwYXJzZU5EaWdpdHMgfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuLy8gSVNPIGRheSBvZiB3ZWVrXG5leHBvcnQgY2xhc3MgSVNPRGF5UGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSA5MDtcblxuICBwYXJzZShkYXRlU3RyaW5nLCB0b2tlbiwgbWF0Y2gpIHtcbiAgICBjb25zdCB2YWx1ZUNhbGxiYWNrID0gKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDc7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIC8vIDJcbiAgICAgIGNhc2UgXCJpXCI6XG4gICAgICBjYXNlIFwiaWlcIjogLy8gMDJcbiAgICAgICAgcmV0dXJuIHBhcnNlTkRpZ2l0cyh0b2tlbi5sZW5ndGgsIGRhdGVTdHJpbmcpO1xuICAgICAgLy8gMm5kXG4gICAgICBjYXNlIFwiaW9cIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywgeyB1bml0OiBcImRheVwiIH0pO1xuICAgICAgLy8gVHVlXG4gICAgICBjYXNlIFwiaWlpXCI6XG4gICAgICAgIHJldHVybiBtYXBWYWx1ZShcbiAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICAgIH0pIHx8XG4gICAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgICB3aWR0aDogXCJzaG9ydFwiLFxuICAgICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICAgIH0pIHx8XG4gICAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgICB3aWR0aDogXCJuYXJyb3dcIixcbiAgICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB2YWx1ZUNhbGxiYWNrLFxuICAgICAgICApO1xuICAgICAgLy8gVFxuICAgICAgY2FzZSBcImlpaWlpXCI6XG4gICAgICAgIHJldHVybiBtYXBWYWx1ZShcbiAgICAgICAgICBtYXRjaC5kYXkoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB2YWx1ZUNhbGxiYWNrLFxuICAgICAgICApO1xuICAgICAgLy8gVHVcbiAgICAgIGNhc2UgXCJpaWlpaWlcIjpcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlKFxuICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJzaG9ydFwiLFxuICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgfSkgfHxcbiAgICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICAgIHdpZHRoOiBcIm5hcnJvd1wiLFxuICAgICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIHZhbHVlQ2FsbGJhY2ssXG4gICAgICAgICk7XG4gICAgICAvLyBUdWVzZGF5XG4gICAgICBjYXNlIFwiaWlpaVwiOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlKFxuICAgICAgICAgIG1hdGNoLmRheShkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJ3aWRlXCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KSB8fFxuICAgICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgICB9KSB8fFxuICAgICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgICAgd2lkdGg6IFwic2hvcnRcIixcbiAgICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgICB9KSB8fFxuICAgICAgICAgICAgbWF0Y2guZGF5KGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgdmFsdWVDYWxsYmFjayxcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShfZGF0ZSwgdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPj0gMSAmJiB2YWx1ZSA8PSA3O1xuICB9XG5cbiAgc2V0KGRhdGUsIF9mbGFncywgdmFsdWUpIHtcbiAgICBkYXRlID0gc2V0SVNPRGF5KGRhdGUsIHZhbHVlKTtcbiAgICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1xuICAgIFwieVwiLFxuICAgIFwiWVwiLFxuICAgIFwidVwiLFxuICAgIFwicVwiLFxuICAgIFwiUVwiLFxuICAgIFwiTVwiLFxuICAgIFwiTFwiLFxuICAgIFwid1wiLFxuICAgIFwiZFwiLFxuICAgIFwiRFwiLFxuICAgIFwiRVwiLFxuICAgIFwiZVwiLFxuICAgIFwiY1wiLFxuICAgIFwidFwiLFxuICAgIFwiVFwiLFxuICBdO1xufVxuIiwgImltcG9ydCB7IFBhcnNlciB9IGZyb20gXCIuLi9QYXJzZXIuanNcIjtcblxuaW1wb3J0IHsgZGF5UGVyaW9kRW51bVRvSG91cnMgfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIEFNUE1QYXJzZXIgZXh0ZW5kcyBQYXJzZXIge1xuICBwcmlvcml0eSA9IDgwO1xuXG4gIHBhcnNlKGRhdGVTdHJpbmcsIHRva2VuLCBtYXRjaCkge1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgIGNhc2UgXCJhXCI6XG4gICAgICBjYXNlIFwiYWFcIjpcbiAgICAgIGNhc2UgXCJhYWFcIjpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaC5kYXlQZXJpb2QoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICAgIH0pIHx8XG4gICAgICAgICAgbWF0Y2guZGF5UGVyaW9kKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcIm5hcnJvd1wiLFxuICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgY2FzZSBcImFhYWFhXCI6XG4gICAgICAgIHJldHVybiBtYXRjaC5kYXlQZXJpb2QoZGF0ZVN0cmluZywge1xuICAgICAgICAgIHdpZHRoOiBcIm5hcnJvd1wiLFxuICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICB9KTtcbiAgICAgIGNhc2UgXCJhYWFhXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1hdGNoLmRheVBlcmlvZChkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJ3aWRlXCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KSB8fFxuICAgICAgICAgIG1hdGNoLmRheVBlcmlvZChkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJhYmJyZXZpYXRlZFwiLFxuICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgfSkgfHxcbiAgICAgICAgICBtYXRjaC5kYXlQZXJpb2QoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHNldChkYXRlLCBfZmxhZ3MsIHZhbHVlKSB7XG4gICAgZGF0ZS5zZXRIb3VycyhkYXlQZXJpb2RFbnVtVG9Ib3Vycyh2YWx1ZSksIDAsIDAsIDApO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1wiYlwiLCBcIkJcIiwgXCJIXCIsIFwia1wiLCBcInRcIiwgXCJUXCJdO1xufVxuIiwgImltcG9ydCB7IFBhcnNlciB9IGZyb20gXCIuLi9QYXJzZXIuanNcIjtcblxuaW1wb3J0IHsgZGF5UGVyaW9kRW51bVRvSG91cnMgfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIEFNUE1NaWRuaWdodFBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gODA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4sIG1hdGNoKSB7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSBcImJcIjpcbiAgICAgIGNhc2UgXCJiYlwiOlxuICAgICAgY2FzZSBcImJiYlwiOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1hdGNoLmRheVBlcmlvZChkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJhYmJyZXZpYXRlZFwiLFxuICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgfSkgfHxcbiAgICAgICAgICBtYXRjaC5kYXlQZXJpb2QoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICBjYXNlIFwiYmJiYmJcIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLmRheVBlcmlvZChkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgd2lkdGg6IFwibmFycm93XCIsXG4gICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgIH0pO1xuICAgICAgY2FzZSBcImJiYmJcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbWF0Y2guZGF5UGVyaW9kKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcIndpZGVcIixcbiAgICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICAgIH0pIHx8XG4gICAgICAgICAgbWF0Y2guZGF5UGVyaW9kKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KSB8fFxuICAgICAgICAgIG1hdGNoLmRheVBlcmlvZChkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJuYXJyb3dcIixcbiAgICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2V0KGRhdGUsIF9mbGFncywgdmFsdWUpIHtcbiAgICBkYXRlLnNldEhvdXJzKGRheVBlcmlvZEVudW1Ub0hvdXJzKHZhbHVlKSwgMCwgMCwgMCk7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cblxuICBpbmNvbXBhdGlibGVUb2tlbnMgPSBbXCJhXCIsIFwiQlwiLCBcIkhcIiwgXCJrXCIsIFwidFwiLCBcIlRcIl07XG59XG4iLCAiaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSBcIi4uL1BhcnNlci5qc1wiO1xuXG5pbXBvcnQgeyBkYXlQZXJpb2RFbnVtVG9Ib3VycyB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG4vLyBpbiB0aGUgbW9ybmluZywgaW4gdGhlIGFmdGVybm9vbiwgaW4gdGhlIGV2ZW5pbmcsIGF0IG5pZ2h0XG5leHBvcnQgY2xhc3MgRGF5UGVyaW9kUGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSA4MDtcblxuICBwYXJzZShkYXRlU3RyaW5nLCB0b2tlbiwgbWF0Y2gpIHtcbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlIFwiQlwiOlxuICAgICAgY2FzZSBcIkJCXCI6XG4gICAgICBjYXNlIFwiQkJCXCI6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbWF0Y2guZGF5UGVyaW9kKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcImFiYnJldmlhdGVkXCIsXG4gICAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgICB9KSB8fFxuICAgICAgICAgIG1hdGNoLmRheVBlcmlvZChkYXRlU3RyaW5nLCB7XG4gICAgICAgICAgICB3aWR0aDogXCJuYXJyb3dcIixcbiAgICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgIGNhc2UgXCJCQkJCQlwiOlxuICAgICAgICByZXR1cm4gbWF0Y2guZGF5UGVyaW9kKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICB3aWR0aDogXCJuYXJyb3dcIixcbiAgICAgICAgICBjb250ZXh0OiBcImZvcm1hdHRpbmdcIixcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIFwiQkJCQlwiOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaC5kYXlQZXJpb2QoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwid2lkZVwiLFxuICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgfSkgfHxcbiAgICAgICAgICBtYXRjaC5kYXlQZXJpb2QoZGF0ZVN0cmluZywge1xuICAgICAgICAgICAgd2lkdGg6IFwiYWJicmV2aWF0ZWRcIixcbiAgICAgICAgICAgIGNvbnRleHQ6IFwiZm9ybWF0dGluZ1wiLFxuICAgICAgICAgIH0pIHx8XG4gICAgICAgICAgbWF0Y2guZGF5UGVyaW9kKGRhdGVTdHJpbmcsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcIm5hcnJvd1wiLFxuICAgICAgICAgICAgY29udGV4dDogXCJmb3JtYXR0aW5nXCIsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzZXQoZGF0ZSwgX2ZsYWdzLCB2YWx1ZSkge1xuICAgIGRhdGUuc2V0SG91cnMoZGF5UGVyaW9kRW51bVRvSG91cnModmFsdWUpLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG4gIGluY29tcGF0aWJsZVRva2VucyA9IFtcImFcIiwgXCJiXCIsIFwidFwiLCBcIlRcIl07XG59XG4iLCAiaW1wb3J0IHsgbnVtZXJpY1BhdHRlcm5zIH0gZnJvbSBcIi4uL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSBcIi4uL1BhcnNlci5qc1wiO1xuXG5pbXBvcnQgeyBwYXJzZU5EaWdpdHMsIHBhcnNlTnVtZXJpY1BhdHRlcm4gfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIEhvdXIxdG8xMlBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gNzA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4sIG1hdGNoKSB7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSBcImhcIjpcbiAgICAgICAgcmV0dXJuIHBhcnNlTnVtZXJpY1BhdHRlcm4obnVtZXJpY1BhdHRlcm5zLmhvdXIxMmgsIGRhdGVTdHJpbmcpO1xuICAgICAgY2FzZSBcImhvXCI6XG4gICAgICAgIHJldHVybiBtYXRjaC5vcmRpbmFsTnVtYmVyKGRhdGVTdHJpbmcsIHsgdW5pdDogXCJob3VyXCIgfSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gcGFyc2VORGlnaXRzKHRva2VuLmxlbmd0aCwgZGF0ZVN0cmluZyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoX2RhdGUsIHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID49IDEgJiYgdmFsdWUgPD0gMTI7XG4gIH1cblxuICBzZXQoZGF0ZSwgX2ZsYWdzLCB2YWx1ZSkge1xuICAgIGNvbnN0IGlzUE0gPSBkYXRlLmdldEhvdXJzKCkgPj0gMTI7XG4gICAgaWYgKGlzUE0gJiYgdmFsdWUgPCAxMikge1xuICAgICAgZGF0ZS5zZXRIb3Vycyh2YWx1ZSArIDEyLCAwLCAwLCAwKTtcbiAgICB9IGVsc2UgaWYgKCFpc1BNICYmIHZhbHVlID09PSAxMikge1xuICAgICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0ZS5zZXRIb3Vycyh2YWx1ZSwgMCwgMCwgMCk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1wiSFwiLCBcIktcIiwgXCJrXCIsIFwidFwiLCBcIlRcIl07XG59XG4iLCAiaW1wb3J0IHsgbnVtZXJpY1BhdHRlcm5zIH0gZnJvbSBcIi4uL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSBcIi4uL1BhcnNlci5qc1wiO1xuXG5pbXBvcnQgeyBwYXJzZU5EaWdpdHMsIHBhcnNlTnVtZXJpY1BhdHRlcm4gfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIEhvdXIwdG8yM1BhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gNzA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4sIG1hdGNoKSB7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgcmV0dXJuIHBhcnNlTnVtZXJpY1BhdHRlcm4obnVtZXJpY1BhdHRlcm5zLmhvdXIyM2gsIGRhdGVTdHJpbmcpO1xuICAgICAgY2FzZSBcIkhvXCI6XG4gICAgICAgIHJldHVybiBtYXRjaC5vcmRpbmFsTnVtYmVyKGRhdGVTdHJpbmcsIHsgdW5pdDogXCJob3VyXCIgfSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gcGFyc2VORGlnaXRzKHRva2VuLmxlbmd0aCwgZGF0ZVN0cmluZyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoX2RhdGUsIHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlID49IDAgJiYgdmFsdWUgPD0gMjM7XG4gIH1cblxuICBzZXQoZGF0ZSwgX2ZsYWdzLCB2YWx1ZSkge1xuICAgIGRhdGUuc2V0SG91cnModmFsdWUsIDAsIDAsIDApO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1wiYVwiLCBcImJcIiwgXCJoXCIsIFwiS1wiLCBcImtcIiwgXCJ0XCIsIFwiVFwiXTtcbn1cbiIsICJpbXBvcnQgeyBudW1lcmljUGF0dGVybnMgfSBmcm9tIFwiLi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbmltcG9ydCB7IHBhcnNlTkRpZ2l0cywgcGFyc2VOdW1lcmljUGF0dGVybiB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgSG91cjBUbzExUGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSA3MDtcblxuICBwYXJzZShkYXRlU3RyaW5nLCB0b2tlbiwgbWF0Y2gpIHtcbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlIFwiS1wiOlxuICAgICAgICByZXR1cm4gcGFyc2VOdW1lcmljUGF0dGVybihudW1lcmljUGF0dGVybnMuaG91cjExaCwgZGF0ZVN0cmluZyk7XG4gICAgICBjYXNlIFwiS29cIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywgeyB1bml0OiBcImhvdXJcIiB9KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwYXJzZU5EaWdpdHModG9rZW4ubGVuZ3RoLCBkYXRlU3RyaW5nKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShfZGF0ZSwgdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPj0gMCAmJiB2YWx1ZSA8PSAxMTtcbiAgfVxuXG4gIHNldChkYXRlLCBfZmxhZ3MsIHZhbHVlKSB7XG4gICAgY29uc3QgaXNQTSA9IGRhdGUuZ2V0SG91cnMoKSA+PSAxMjtcbiAgICBpZiAoaXNQTSAmJiB2YWx1ZSA8IDEyKSB7XG4gICAgICBkYXRlLnNldEhvdXJzKHZhbHVlICsgMTIsIDAsIDAsIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRlLnNldEhvdXJzKHZhbHVlLCAwLCAwLCAwKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cblxuICBpbmNvbXBhdGlibGVUb2tlbnMgPSBbXCJoXCIsIFwiSFwiLCBcImtcIiwgXCJ0XCIsIFwiVFwiXTtcbn1cbiIsICJpbXBvcnQgeyBudW1lcmljUGF0dGVybnMgfSBmcm9tIFwiLi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbmltcG9ydCB7IHBhcnNlTkRpZ2l0cywgcGFyc2VOdW1lcmljUGF0dGVybiB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgSG91cjFUbzI0UGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSA3MDtcblxuICBwYXJzZShkYXRlU3RyaW5nLCB0b2tlbiwgbWF0Y2gpIHtcbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlIFwia1wiOlxuICAgICAgICByZXR1cm4gcGFyc2VOdW1lcmljUGF0dGVybihudW1lcmljUGF0dGVybnMuaG91cjI0aCwgZGF0ZVN0cmluZyk7XG4gICAgICBjYXNlIFwia29cIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywgeyB1bml0OiBcImhvdXJcIiB9KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwYXJzZU5EaWdpdHModG9rZW4ubGVuZ3RoLCBkYXRlU3RyaW5nKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShfZGF0ZSwgdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPj0gMSAmJiB2YWx1ZSA8PSAyNDtcbiAgfVxuXG4gIHNldChkYXRlLCBfZmxhZ3MsIHZhbHVlKSB7XG4gICAgY29uc3QgaG91cnMgPSB2YWx1ZSA8PSAyNCA/IHZhbHVlICUgMjQgOiB2YWx1ZTtcbiAgICBkYXRlLnNldEhvdXJzKGhvdXJzLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG4gIGluY29tcGF0aWJsZVRva2VucyA9IFtcImFcIiwgXCJiXCIsIFwiaFwiLCBcIkhcIiwgXCJLXCIsIFwidFwiLCBcIlRcIl07XG59XG4iLCAiaW1wb3J0IHsgbnVtZXJpY1BhdHRlcm5zIH0gZnJvbSBcIi4uL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSBcIi4uL1BhcnNlci5qc1wiO1xuXG5pbXBvcnQgeyBwYXJzZU5EaWdpdHMsIHBhcnNlTnVtZXJpY1BhdHRlcm4gfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIE1pbnV0ZVBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gNjA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4sIG1hdGNoKSB7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgcmV0dXJuIHBhcnNlTnVtZXJpY1BhdHRlcm4obnVtZXJpY1BhdHRlcm5zLm1pbnV0ZSwgZGF0ZVN0cmluZyk7XG4gICAgICBjYXNlIFwibW9cIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywgeyB1bml0OiBcIm1pbnV0ZVwiIH0pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHBhcnNlTkRpZ2l0cyh0b2tlbi5sZW5ndGgsIGRhdGVTdHJpbmcpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKF9kYXRlLCB2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA+PSAwICYmIHZhbHVlIDw9IDU5O1xuICB9XG5cbiAgc2V0KGRhdGUsIF9mbGFncywgdmFsdWUpIHtcbiAgICBkYXRlLnNldE1pbnV0ZXModmFsdWUsIDAsIDApO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1widFwiLCBcIlRcIl07XG59XG4iLCAiaW1wb3J0IHsgbnVtZXJpY1BhdHRlcm5zIH0gZnJvbSBcIi4uL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSBcIi4uL1BhcnNlci5qc1wiO1xuXG5pbXBvcnQgeyBwYXJzZU5EaWdpdHMsIHBhcnNlTnVtZXJpY1BhdHRlcm4gfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIFNlY29uZFBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gNTA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4sIG1hdGNoKSB7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSBcInNcIjpcbiAgICAgICAgcmV0dXJuIHBhcnNlTnVtZXJpY1BhdHRlcm4obnVtZXJpY1BhdHRlcm5zLnNlY29uZCwgZGF0ZVN0cmluZyk7XG4gICAgICBjYXNlIFwic29cIjpcbiAgICAgICAgcmV0dXJuIG1hdGNoLm9yZGluYWxOdW1iZXIoZGF0ZVN0cmluZywgeyB1bml0OiBcInNlY29uZFwiIH0pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHBhcnNlTkRpZ2l0cyh0b2tlbi5sZW5ndGgsIGRhdGVTdHJpbmcpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKF9kYXRlLCB2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA+PSAwICYmIHZhbHVlIDw9IDU5O1xuICB9XG5cbiAgc2V0KGRhdGUsIF9mbGFncywgdmFsdWUpIHtcbiAgICBkYXRlLnNldFNlY29uZHModmFsdWUsIDApO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1widFwiLCBcIlRcIl07XG59XG4iLCAiaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSBcIi4uL1BhcnNlci5qc1wiO1xuXG5pbXBvcnQgeyBtYXBWYWx1ZSwgcGFyc2VORGlnaXRzIH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBGcmFjdGlvbk9mU2Vjb25kUGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgcHJpb3JpdHkgPSAzMDtcblxuICBwYXJzZShkYXRlU3RyaW5nLCB0b2tlbikge1xuICAgIGNvbnN0IHZhbHVlQ2FsbGJhY2sgPSAodmFsdWUpID0+XG4gICAgICBNYXRoLnRydW5jKHZhbHVlICogTWF0aC5wb3coMTAsIC10b2tlbi5sZW5ndGggKyAzKSk7XG4gICAgcmV0dXJuIG1hcFZhbHVlKHBhcnNlTkRpZ2l0cyh0b2tlbi5sZW5ndGgsIGRhdGVTdHJpbmcpLCB2YWx1ZUNhbGxiYWNrKTtcbiAgfVxuXG4gIHNldChkYXRlLCBfZmxhZ3MsIHZhbHVlKSB7XG4gICAgZGF0ZS5zZXRNaWxsaXNlY29uZHModmFsdWUpO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1widFwiLCBcIlRcIl07XG59XG4iLCAiaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuLi8uLi8uLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIH0gZnJvbSBcIi4uLy4uLy4uL19saWIvZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcy5qc1wiO1xuaW1wb3J0IHsgdGltZXpvbmVQYXR0ZXJucyB9IGZyb20gXCIuLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IFBhcnNlciB9IGZyb20gXCIuLi9QYXJzZXIuanNcIjtcblxuaW1wb3J0IHsgcGFyc2VUaW1lem9uZVBhdHRlcm4gfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuLy8gVGltZXpvbmUgKElTTy04NjAxLiArMDA6MDAgaXMgYCdaJ2ApXG5leHBvcnQgY2xhc3MgSVNPVGltZXpvbmVXaXRoWlBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gMTA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlIFwiWFwiOlxuICAgICAgICByZXR1cm4gcGFyc2VUaW1lem9uZVBhdHRlcm4oXG4gICAgICAgICAgdGltZXpvbmVQYXR0ZXJucy5iYXNpY09wdGlvbmFsTWludXRlcyxcbiAgICAgICAgICBkYXRlU3RyaW5nLFxuICAgICAgICApO1xuICAgICAgY2FzZSBcIlhYXCI6XG4gICAgICAgIHJldHVybiBwYXJzZVRpbWV6b25lUGF0dGVybih0aW1lem9uZVBhdHRlcm5zLmJhc2ljLCBkYXRlU3RyaW5nKTtcbiAgICAgIGNhc2UgXCJYWFhYXCI6XG4gICAgICAgIHJldHVybiBwYXJzZVRpbWV6b25lUGF0dGVybihcbiAgICAgICAgICB0aW1lem9uZVBhdHRlcm5zLmJhc2ljT3B0aW9uYWxTZWNvbmRzLFxuICAgICAgICAgIGRhdGVTdHJpbmcsXG4gICAgICAgICk7XG4gICAgICBjYXNlIFwiWFhYWFhcIjpcbiAgICAgICAgcmV0dXJuIHBhcnNlVGltZXpvbmVQYXR0ZXJuKFxuICAgICAgICAgIHRpbWV6b25lUGF0dGVybnMuZXh0ZW5kZWRPcHRpb25hbFNlY29uZHMsXG4gICAgICAgICAgZGF0ZVN0cmluZyxcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgXCJYWFhcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwYXJzZVRpbWV6b25lUGF0dGVybih0aW1lem9uZVBhdHRlcm5zLmV4dGVuZGVkLCBkYXRlU3RyaW5nKTtcbiAgICB9XG4gIH1cblxuICBzZXQoZGF0ZSwgZmxhZ3MsIHZhbHVlKSB7XG4gICAgaWYgKGZsYWdzLnRpbWVzdGFtcElzU2V0KSByZXR1cm4gZGF0ZTtcbiAgICByZXR1cm4gY29uc3RydWN0RnJvbShcbiAgICAgIGRhdGUsXG4gICAgICBkYXRlLmdldFRpbWUoKSAtIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMoZGF0ZSkgLSB2YWx1ZSxcbiAgICApO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1widFwiLCBcIlRcIiwgXCJ4XCJdO1xufVxuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi4vLi4vLi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyB9IGZyb20gXCIuLi8uLi8uLi9fbGliL2dldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMuanNcIjtcbmltcG9ydCB7IHRpbWV6b25lUGF0dGVybnMgfSBmcm9tIFwiLi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tIFwiLi4vUGFyc2VyLmpzXCI7XG5cbmltcG9ydCB7IHBhcnNlVGltZXpvbmVQYXR0ZXJuIH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbi8vIFRpbWV6b25lIChJU08tODYwMSlcbmV4cG9ydCBjbGFzcyBJU09UaW1lem9uZVBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gMTA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZywgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuKSB7XG4gICAgICBjYXNlIFwieFwiOlxuICAgICAgICByZXR1cm4gcGFyc2VUaW1lem9uZVBhdHRlcm4oXG4gICAgICAgICAgdGltZXpvbmVQYXR0ZXJucy5iYXNpY09wdGlvbmFsTWludXRlcyxcbiAgICAgICAgICBkYXRlU3RyaW5nLFxuICAgICAgICApO1xuICAgICAgY2FzZSBcInh4XCI6XG4gICAgICAgIHJldHVybiBwYXJzZVRpbWV6b25lUGF0dGVybih0aW1lem9uZVBhdHRlcm5zLmJhc2ljLCBkYXRlU3RyaW5nKTtcbiAgICAgIGNhc2UgXCJ4eHh4XCI6XG4gICAgICAgIHJldHVybiBwYXJzZVRpbWV6b25lUGF0dGVybihcbiAgICAgICAgICB0aW1lem9uZVBhdHRlcm5zLmJhc2ljT3B0aW9uYWxTZWNvbmRzLFxuICAgICAgICAgIGRhdGVTdHJpbmcsXG4gICAgICAgICk7XG4gICAgICBjYXNlIFwieHh4eHhcIjpcbiAgICAgICAgcmV0dXJuIHBhcnNlVGltZXpvbmVQYXR0ZXJuKFxuICAgICAgICAgIHRpbWV6b25lUGF0dGVybnMuZXh0ZW5kZWRPcHRpb25hbFNlY29uZHMsXG4gICAgICAgICAgZGF0ZVN0cmluZyxcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgXCJ4eHhcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwYXJzZVRpbWV6b25lUGF0dGVybih0aW1lem9uZVBhdHRlcm5zLmV4dGVuZGVkLCBkYXRlU3RyaW5nKTtcbiAgICB9XG4gIH1cblxuICBzZXQoZGF0ZSwgZmxhZ3MsIHZhbHVlKSB7XG4gICAgaWYgKGZsYWdzLnRpbWVzdGFtcElzU2V0KSByZXR1cm4gZGF0ZTtcbiAgICByZXR1cm4gY29uc3RydWN0RnJvbShcbiAgICAgIGRhdGUsXG4gICAgICBkYXRlLmdldFRpbWUoKSAtIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMoZGF0ZSkgLSB2YWx1ZSxcbiAgICApO1xuICB9XG5cbiAgaW5jb21wYXRpYmxlVG9rZW5zID0gW1widFwiLCBcIlRcIiwgXCJYXCJdO1xufVxuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi4vLi4vLi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSBcIi4uL1BhcnNlci5qc1wiO1xuXG5pbXBvcnQgeyBwYXJzZUFueURpZ2l0c1NpZ25lZCB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgVGltZXN0YW1wU2Vjb25kc1BhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gNDA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZykge1xuICAgIHJldHVybiBwYXJzZUFueURpZ2l0c1NpZ25lZChkYXRlU3RyaW5nKTtcbiAgfVxuXG4gIHNldChkYXRlLCBfZmxhZ3MsIHZhbHVlKSB7XG4gICAgcmV0dXJuIFtjb25zdHJ1Y3RGcm9tKGRhdGUsIHZhbHVlICogMTAwMCksIHsgdGltZXN0YW1wSXNTZXQ6IHRydWUgfV07XG4gIH1cblxuICBpbmNvbXBhdGlibGVUb2tlbnMgPSBcIipcIjtcbn1cbiIsICJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4uLy4uLy4uL2NvbnN0cnVjdEZyb20uanNcIjtcbmltcG9ydCB7IFBhcnNlciB9IGZyb20gXCIuLi9QYXJzZXIuanNcIjtcblxuaW1wb3J0IHsgcGFyc2VBbnlEaWdpdHNTaWduZWQgfSBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIFRpbWVzdGFtcE1pbGxpc2Vjb25kc1BhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHByaW9yaXR5ID0gMjA7XG5cbiAgcGFyc2UoZGF0ZVN0cmluZykge1xuICAgIHJldHVybiBwYXJzZUFueURpZ2l0c1NpZ25lZChkYXRlU3RyaW5nKTtcbiAgfVxuXG4gIHNldChkYXRlLCBfZmxhZ3MsIHZhbHVlKSB7XG4gICAgcmV0dXJuIFtjb25zdHJ1Y3RGcm9tKGRhdGUsIHZhbHVlKSwgeyB0aW1lc3RhbXBJc1NldDogdHJ1ZSB9XTtcbiAgfVxuXG4gIGluY29tcGF0aWJsZVRva2VucyA9IFwiKlwiO1xufVxuIiwgImltcG9ydCB7IEVyYVBhcnNlciB9IGZyb20gXCIuL3BhcnNlcnMvRXJhUGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBZZWFyUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9ZZWFyUGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBMb2NhbFdlZWtZZWFyUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9Mb2NhbFdlZWtZZWFyUGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBJU09XZWVrWWVhclBhcnNlciB9IGZyb20gXCIuL3BhcnNlcnMvSVNPV2Vla1llYXJQYXJzZXIuanNcIjtcbmltcG9ydCB7IEV4dGVuZGVkWWVhclBhcnNlciB9IGZyb20gXCIuL3BhcnNlcnMvRXh0ZW5kZWRZZWFyUGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBRdWFydGVyUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9RdWFydGVyUGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBTdGFuZEFsb25lUXVhcnRlclBhcnNlciB9IGZyb20gXCIuL3BhcnNlcnMvU3RhbmRBbG9uZVF1YXJ0ZXJQYXJzZXIuanNcIjtcbmltcG9ydCB7IE1vbnRoUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9Nb250aFBhcnNlci5qc1wiO1xuaW1wb3J0IHsgU3RhbmRBbG9uZU1vbnRoUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9TdGFuZEFsb25lTW9udGhQYXJzZXIuanNcIjtcbmltcG9ydCB7IExvY2FsV2Vla1BhcnNlciB9IGZyb20gXCIuL3BhcnNlcnMvTG9jYWxXZWVrUGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBJU09XZWVrUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9JU09XZWVrUGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBEYXRlUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9EYXRlUGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBEYXlPZlllYXJQYXJzZXIgfSBmcm9tIFwiLi9wYXJzZXJzL0RheU9mWWVhclBhcnNlci5qc1wiO1xuaW1wb3J0IHsgRGF5UGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9EYXlQYXJzZXIuanNcIjtcbmltcG9ydCB7IExvY2FsRGF5UGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9Mb2NhbERheVBhcnNlci5qc1wiO1xuaW1wb3J0IHsgU3RhbmRBbG9uZUxvY2FsRGF5UGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9TdGFuZEFsb25lTG9jYWxEYXlQYXJzZXIuanNcIjtcbmltcG9ydCB7IElTT0RheVBhcnNlciB9IGZyb20gXCIuL3BhcnNlcnMvSVNPRGF5UGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBBTVBNUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9BTVBNUGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBBTVBNTWlkbmlnaHRQYXJzZXIgfSBmcm9tIFwiLi9wYXJzZXJzL0FNUE1NaWRuaWdodFBhcnNlci5qc1wiO1xuaW1wb3J0IHsgRGF5UGVyaW9kUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9EYXlQZXJpb2RQYXJzZXIuanNcIjtcbmltcG9ydCB7IEhvdXIxdG8xMlBhcnNlciB9IGZyb20gXCIuL3BhcnNlcnMvSG91cjF0bzEyUGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBIb3VyMHRvMjNQYXJzZXIgfSBmcm9tIFwiLi9wYXJzZXJzL0hvdXIwdG8yM1BhcnNlci5qc1wiO1xuaW1wb3J0IHsgSG91cjBUbzExUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9Ib3VyMFRvMTFQYXJzZXIuanNcIjtcbmltcG9ydCB7IEhvdXIxVG8yNFBhcnNlciB9IGZyb20gXCIuL3BhcnNlcnMvSG91cjFUbzI0UGFyc2VyLmpzXCI7XG5pbXBvcnQgeyBNaW51dGVQYXJzZXIgfSBmcm9tIFwiLi9wYXJzZXJzL01pbnV0ZVBhcnNlci5qc1wiO1xuaW1wb3J0IHsgU2Vjb25kUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9TZWNvbmRQYXJzZXIuanNcIjtcbmltcG9ydCB7IEZyYWN0aW9uT2ZTZWNvbmRQYXJzZXIgfSBmcm9tIFwiLi9wYXJzZXJzL0ZyYWN0aW9uT2ZTZWNvbmRQYXJzZXIuanNcIjtcbmltcG9ydCB7IElTT1RpbWV6b25lV2l0aFpQYXJzZXIgfSBmcm9tIFwiLi9wYXJzZXJzL0lTT1RpbWV6b25lV2l0aFpQYXJzZXIuanNcIjtcbmltcG9ydCB7IElTT1RpbWV6b25lUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9JU09UaW1lem9uZVBhcnNlci5qc1wiO1xuaW1wb3J0IHsgVGltZXN0YW1wU2Vjb25kc1BhcnNlciB9IGZyb20gXCIuL3BhcnNlcnMvVGltZXN0YW1wU2Vjb25kc1BhcnNlci5qc1wiO1xuaW1wb3J0IHsgVGltZXN0YW1wTWlsbGlzZWNvbmRzUGFyc2VyIH0gZnJvbSBcIi4vcGFyc2Vycy9UaW1lc3RhbXBNaWxsaXNlY29uZHNQYXJzZXIuanNcIjtcblxuLypcbiAqIHwgICAgIHwgVW5pdCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgVW5pdCAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwtLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgIGEgIHwgQU0sIFBNICAgICAgICAgICAgICAgICAgICAgICAgIHwgIEEqIHwgTWlsbGlzZWNvbmRzIGluIGRheSAgICAgICAgICAgIHxcbiAqIHwgIGIgIHwgQU0sIFBNLCBub29uLCBtaWRuaWdodCAgICAgICAgIHwgIEIgIHwgRmxleGlibGUgZGF5IHBlcmlvZCAgICAgICAgICAgIHxcbiAqIHwgIGMgIHwgU3RhbmQtYWxvbmUgbG9jYWwgZGF5IG9mIHdlZWsgIHwgIEMqIHwgTG9jYWxpemVkIGhvdXIgdy8gZGF5IHBlcmlvZCAgIHxcbiAqIHwgIGQgIHwgRGF5IG9mIG1vbnRoICAgICAgICAgICAgICAgICAgIHwgIEQgIHwgRGF5IG9mIHllYXIgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIGUgIHwgTG9jYWwgZGF5IG9mIHdlZWsgICAgICAgICAgICAgIHwgIEUgIHwgRGF5IG9mIHdlZWsgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIGYgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIEYqIHwgRGF5IG9mIHdlZWsgaW4gbW9udGggICAgICAgICAgIHxcbiAqIHwgIGcqIHwgTW9kaWZpZWQgSnVsaWFuIGRheSAgICAgICAgICAgIHwgIEcgIHwgRXJhICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIGggIHwgSG91ciBbMS0xMl0gICAgICAgICAgICAgICAgICAgIHwgIEggIHwgSG91ciBbMC0yM10gICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIGkhIHwgSVNPIGRheSBvZiB3ZWVrICAgICAgICAgICAgICAgIHwgIEkhIHwgSVNPIHdlZWsgb2YgeWVhciAgICAgICAgICAgICAgIHxcbiAqIHwgIGoqIHwgTG9jYWxpemVkIGhvdXIgdy8gZGF5IHBlcmlvZCAgIHwgIEoqIHwgTG9jYWxpemVkIGhvdXIgdy9vIGRheSBwZXJpb2QgIHxcbiAqIHwgIGsgIHwgSG91ciBbMS0yNF0gICAgICAgICAgICAgICAgICAgIHwgIEsgIHwgSG91ciBbMC0xMV0gICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIGwqIHwgKGRlcHJlY2F0ZWQpICAgICAgICAgICAgICAgICAgIHwgIEwgIHwgU3RhbmQtYWxvbmUgbW9udGggICAgICAgICAgICAgIHxcbiAqIHwgIG0gIHwgTWludXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgIE0gIHwgTW9udGggICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIG4gIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIE4gIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIG8hIHwgT3JkaW5hbCBudW1iZXIgbW9kaWZpZXIgICAgICAgIHwgIE8qIHwgVGltZXpvbmUgKEdNVCkgICAgICAgICAgICAgICAgIHxcbiAqIHwgIHAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIHEgIHwgU3RhbmQtYWxvbmUgcXVhcnRlciAgICAgICAgICAgIHwgIFEgIHwgUXVhcnRlciAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIHIqIHwgUmVsYXRlZCBHcmVnb3JpYW4geWVhciAgICAgICAgIHwgIFIhIHwgSVNPIHdlZWstbnVtYmVyaW5nIHllYXIgICAgICAgIHxcbiAqIHwgIHMgIHwgU2Vjb25kICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFMgIHwgRnJhY3Rpb24gb2Ygc2Vjb25kICAgICAgICAgICAgIHxcbiAqIHwgIHQhIHwgU2Vjb25kcyB0aW1lc3RhbXAgICAgICAgICAgICAgIHwgIFQhIHwgTWlsbGlzZWNvbmRzIHRpbWVzdGFtcCAgICAgICAgIHxcbiAqIHwgIHUgIHwgRXh0ZW5kZWQgeWVhciAgICAgICAgICAgICAgICAgIHwgIFUqIHwgQ3ljbGljIHllYXIgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIHYqIHwgVGltZXpvbmUgKGdlbmVyaWMgbm9uLWxvY2F0LikgIHwgIFYqIHwgVGltZXpvbmUgKGxvY2F0aW9uKSAgICAgICAgICAgIHxcbiAqIHwgIHcgIHwgTG9jYWwgd2VlayBvZiB5ZWFyICAgICAgICAgICAgIHwgIFcqIHwgV2VlayBvZiBtb250aCAgICAgICAgICAgICAgICAgIHxcbiAqIHwgIHggIHwgVGltZXpvbmUgKElTTy04NjAxIHcvbyBaKSAgICAgIHwgIFggIHwgVGltZXpvbmUgKElTTy04NjAxKSAgICAgICAgICAgIHxcbiAqIHwgIHkgIHwgWWVhciAoYWJzKSAgICAgICAgICAgICAgICAgICAgIHwgIFkgIHwgTG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhciAgICAgIHxcbiAqIHwgIHoqIHwgVGltZXpvbmUgKHNwZWNpZmljIG5vbi1sb2NhdC4pIHwgIFoqIHwgVGltZXpvbmUgKGFsaWFzZXMpICAgICAgICAgICAgIHxcbiAqXG4gKiBMZXR0ZXJzIG1hcmtlZCBieSAqIGFyZSBub3QgaW1wbGVtZW50ZWQgYnV0IHJlc2VydmVkIGJ5IFVuaWNvZGUgc3RhbmRhcmQuXG4gKlxuICogTGV0dGVycyBtYXJrZWQgYnkgISBhcmUgbm9uLXN0YW5kYXJkLCBidXQgaW1wbGVtZW50ZWQgYnkgZGF0ZS1mbnM6XG4gKiAtIGBvYCBtb2RpZmllcyB0aGUgcHJldmlvdXMgdG9rZW4gdG8gdHVybiBpdCBpbnRvIGFuIG9yZGluYWwgKHNlZSBgcGFyc2VgIGRvY3MpXG4gKiAtIGBpYCBpcyBJU08gZGF5IG9mIHdlZWsuIEZvciBgaWAgYW5kIGBpaWAgaXMgcmV0dXJucyBudW1lcmljIElTTyB3ZWVrIGRheXMsXG4gKiAgIGkuZS4gNyBmb3IgU3VuZGF5LCAxIGZvciBNb25kYXksIGV0Yy5cbiAqIC0gYElgIGlzIElTTyB3ZWVrIG9mIHllYXIsIGFzIG9wcG9zZWQgdG8gYHdgIHdoaWNoIGlzIGxvY2FsIHdlZWsgb2YgeWVhci5cbiAqIC0gYFJgIGlzIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyLCBhcyBvcHBvc2VkIHRvIGBZYCB3aGljaCBpcyBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyLlxuICogICBgUmAgaXMgc3VwcG9zZWQgdG8gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGBJYCBhbmQgYGlgXG4gKiAgIGZvciB1bml2ZXJzYWwgSVNPIHdlZWstbnVtYmVyaW5nIGRhdGUsIHdoZXJlYXNcbiAqICAgYFlgIGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgd2AgYW5kIGBlYFxuICogICBmb3Igd2Vlay1udW1iZXJpbmcgZGF0ZSBzcGVjaWZpYyB0byB0aGUgbG9jYWxlLlxuICovXG5leHBvcnQgY29uc3QgcGFyc2VycyA9IHtcbiAgRzogbmV3IEVyYVBhcnNlcigpLFxuICB5OiBuZXcgWWVhclBhcnNlcigpLFxuICBZOiBuZXcgTG9jYWxXZWVrWWVhclBhcnNlcigpLFxuICBSOiBuZXcgSVNPV2Vla1llYXJQYXJzZXIoKSxcbiAgdTogbmV3IEV4dGVuZGVkWWVhclBhcnNlcigpLFxuICBROiBuZXcgUXVhcnRlclBhcnNlcigpLFxuICBxOiBuZXcgU3RhbmRBbG9uZVF1YXJ0ZXJQYXJzZXIoKSxcbiAgTTogbmV3IE1vbnRoUGFyc2VyKCksXG4gIEw6IG5ldyBTdGFuZEFsb25lTW9udGhQYXJzZXIoKSxcbiAgdzogbmV3IExvY2FsV2Vla1BhcnNlcigpLFxuICBJOiBuZXcgSVNPV2Vla1BhcnNlcigpLFxuICBkOiBuZXcgRGF0ZVBhcnNlcigpLFxuICBEOiBuZXcgRGF5T2ZZZWFyUGFyc2VyKCksXG4gIEU6IG5ldyBEYXlQYXJzZXIoKSxcbiAgZTogbmV3IExvY2FsRGF5UGFyc2VyKCksXG4gIGM6IG5ldyBTdGFuZEFsb25lTG9jYWxEYXlQYXJzZXIoKSxcbiAgaTogbmV3IElTT0RheVBhcnNlcigpLFxuICBhOiBuZXcgQU1QTVBhcnNlcigpLFxuICBiOiBuZXcgQU1QTU1pZG5pZ2h0UGFyc2VyKCksXG4gIEI6IG5ldyBEYXlQZXJpb2RQYXJzZXIoKSxcbiAgaDogbmV3IEhvdXIxdG8xMlBhcnNlcigpLFxuICBIOiBuZXcgSG91cjB0bzIzUGFyc2VyKCksXG4gIEs6IG5ldyBIb3VyMFRvMTFQYXJzZXIoKSxcbiAgazogbmV3IEhvdXIxVG8yNFBhcnNlcigpLFxuICBtOiBuZXcgTWludXRlUGFyc2VyKCksXG4gIHM6IG5ldyBTZWNvbmRQYXJzZXIoKSxcbiAgUzogbmV3IEZyYWN0aW9uT2ZTZWNvbmRQYXJzZXIoKSxcbiAgWDogbmV3IElTT1RpbWV6b25lV2l0aFpQYXJzZXIoKSxcbiAgeDogbmV3IElTT1RpbWV6b25lUGFyc2VyKCksXG4gIHQ6IG5ldyBUaW1lc3RhbXBTZWNvbmRzUGFyc2VyKCksXG4gIFQ6IG5ldyBUaW1lc3RhbXBNaWxsaXNlY29uZHNQYXJzZXIoKSxcbn07XG4iLCAiaW1wb3J0IHsgZGVmYXVsdExvY2FsZSB9IGZyb20gXCIuL19saWIvZGVmYXVsdExvY2FsZS5qc1wiO1xuaW1wb3J0IHsgbG9uZ0Zvcm1hdHRlcnMgfSBmcm9tIFwiLi9fbGliL2Zvcm1hdC9sb25nRm9ybWF0dGVycy5qc1wiO1xuaW1wb3J0IHtcbiAgaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbixcbiAgaXNQcm90ZWN0ZWRXZWVrWWVhclRva2VuLFxuICB3YXJuT3JUaHJvd1Byb3RlY3RlZEVycm9yLFxufSBmcm9tIFwiLi9fbGliL3Byb3RlY3RlZFRva2Vucy5qc1wiO1xuaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuL2NvbnN0cnVjdEZyb20uanNcIjtcbmltcG9ydCB7IGdldERlZmF1bHRPcHRpb25zIH0gZnJvbSBcIi4vZ2V0RGVmYXVsdE9wdGlvbnMuanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG5pbXBvcnQgeyBEYXRlVGltZXpvbmVTZXR0ZXIgfSBmcm9tIFwiLi9wYXJzZS9fbGliL1NldHRlci5qc1wiO1xuaW1wb3J0IHsgcGFyc2VycyB9IGZyb20gXCIuL3BhcnNlL19saWIvcGFyc2Vycy5qc1wiO1xuXG4vLyBSZXhwb3J0cyBvZiBpbnRlcm5hbCBmb3IgbGlicmFyaWVzIHRvIHVzZS5cbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy8zNjM4I2lzc3VlY29tbWVudC0xODc3MDgyODc0XG5leHBvcnQgeyBsb25nRm9ybWF0dGVycywgcGFyc2VycyB9O1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgcGFyc2V9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLy8gVGhpcyBSZWdFeHAgY29uc2lzdHMgb2YgdGhyZWUgcGFydHMgc2VwYXJhdGVkIGJ5IGB8YDpcbi8vIC0gW3lZUXFNTHdJZERlY2loSEtrbXNdbyBtYXRjaGVzIGFueSBhdmFpbGFibGUgb3JkaW5hbCBudW1iZXIgdG9rZW5cbi8vICAgKG9uZSBvZiB0aGUgY2VydGFpbiBsZXR0ZXJzIGZvbGxvd2VkIGJ5IGBvYClcbi8vIC0gKFxcdylcXDEqIG1hdGNoZXMgYW55IHNlcXVlbmNlcyBvZiB0aGUgc2FtZSBsZXR0ZXJcbi8vIC0gJycgbWF0Y2hlcyB0d28gcXVvdGUgY2hhcmFjdGVycyBpbiBhIHJvd1xuLy8gLSAnKCcnfFteJ10pKygnfCQpIG1hdGNoZXMgYW55dGhpbmcgc3Vycm91bmRlZCBieSB0d28gcXVvdGUgY2hhcmFjdGVycyAoJyksXG4vLyAgIGV4Y2VwdCBhIHNpbmdsZSBxdW90ZSBzeW1ib2wsIHdoaWNoIGVuZHMgdGhlIHNlcXVlbmNlLlxuLy8gICBUd28gcXVvdGUgY2hhcmFjdGVycyBkbyBub3QgZW5kIHRoZSBzZXF1ZW5jZS5cbi8vICAgSWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgc2luZ2xlIHF1b3RlXG4vLyAgIHRoZW4gdGhlIHNlcXVlbmNlIHdpbGwgY29udGludWUgdW50aWwgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLlxuLy8gLSAuIG1hdGNoZXMgYW55IHNpbmdsZSBjaGFyYWN0ZXIgdW5tYXRjaGVkIGJ5IHByZXZpb3VzIHBhcnRzIG9mIHRoZSBSZWdFeHBzXG5jb25zdCBmb3JtYXR0aW5nVG9rZW5zUmVnRXhwID1cbiAgL1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFxcdylcXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nO1xuXG4vLyBUaGlzIFJlZ0V4cCBjYXRjaGVzIHN5bWJvbHMgZXNjYXBlZCBieSBxdW90ZXMsIGFuZCBhbHNvXG4vLyBzZXF1ZW5jZXMgb2Ygc3ltYm9scyBQLCBwLCBhbmQgdGhlIGNvbWJpbmF0aW9ucyBsaWtlIGBQUFBQUFBQcHBwcHBgXG5jb25zdCBsb25nRm9ybWF0dGluZ1Rva2Vuc1JlZ0V4cCA9IC9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nO1xuXG5jb25zdCBlc2NhcGVkU3RyaW5nUmVnRXhwID0gL14nKFteXSo/KSc/JC87XG5jb25zdCBkb3VibGVRdW90ZVJlZ0V4cCA9IC8nJy9nO1xuXG5jb25zdCBub3RXaGl0ZXNwYWNlUmVnRXhwID0gL1xcUy87XG5jb25zdCB1bmVzY2FwZWRMYXRpbkNoYXJhY3RlclJlZ0V4cCA9IC9bYS16QS1aXS87XG5cbi8qKlxuICogQG5hbWUgcGFyc2VcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgUGFyc2UgdGhlIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGRhdGUgcGFyc2VkIGZyb20gc3RyaW5nIHVzaW5nIHRoZSBnaXZlbiBmb3JtYXQgc3RyaW5nLlxuICpcbiAqID4gXHUyNkEwXHVGRTBGIFBsZWFzZSBub3RlIHRoYXQgdGhlIGBmb3JtYXRgIHRva2VucyBkaWZmZXIgZnJvbSBNb21lbnQuanMgYW5kIG90aGVyIGxpYnJhcmllcy5cbiAqID4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kXG4gKlxuICogVGhlIGNoYXJhY3RlcnMgaW4gdGhlIGZvcm1hdCBzdHJpbmcgd3JhcHBlZCBiZXR3ZWVuIHR3byBzaW5nbGUgcXVvdGVzIGNoYXJhY3RlcnMgKCcpIGFyZSBlc2NhcGVkLlxuICogVHdvIHNpbmdsZSBxdW90ZXMgaW4gYSByb3csIHdoZXRoZXIgaW5zaWRlIG9yIG91dHNpZGUgYSBxdW90ZWQgc2VxdWVuY2UsIHJlcHJlc2VudCBhICdyZWFsJyBzaW5nbGUgcXVvdGUuXG4gKlxuICogRm9ybWF0IG9mIHRoZSBmb3JtYXQgc3RyaW5nIGlzIGJhc2VkIG9uIFVuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkICMzNTpcbiAqIGh0dHBzOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS90cjM1LWRhdGVzLmh0bWwjRGF0ZV9GaWVsZF9TeW1ib2xfVGFibGVcbiAqIHdpdGggYSBmZXcgYWRkaXRpb25zIChzZWUgbm90ZSA1IGJlbG93IHRoZSB0YWJsZSkuXG4gKlxuICogTm90IGFsbCB0b2tlbnMgYXJlIGNvbXBhdGlibGUuIENvbWJpbmF0aW9ucyB0aGF0IGRvbid0IG1ha2Ugc2Vuc2Ugb3IgY291bGQgbGVhZCB0byBidWdzIGFyZSBwcm9oaWJpdGVkXG4gKiBhbmQgd2lsbCB0aHJvdyBgUmFuZ2VFcnJvcmAuIEZvciBleGFtcGxlIHVzYWdlIG9mIDI0LWhvdXIgZm9ybWF0IHRva2VuIHdpdGggQU0vUE0gdG9rZW4gd2lsbCB0aHJvdyBhbiBleGNlcHRpb246XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogcGFyc2UoJzIzIEFNJywgJ0hIIGEnLCBuZXcgRGF0ZSgpKVxuICogLy89PiBSYW5nZUVycm9yOiBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gYEhIYCBhbmQgYGFgIGF0IHRoZSBzYW1lIHRpbWVcbiAqIGBgYFxuICpcbiAqIFNlZSB0aGUgY29tcGF0aWJpbGl0eSB0YWJsZTogaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vc3ByZWFkc2hlZXRzL2QvZS8yUEFDWC0xdlFPUFUzeFVocGxsbDZkeW9NbVZVWEhLbF84Q1JEczZfdWVMbWV4M1NvcXdodW9sa3VOM08wNWw0cnF4NWgxZEtYOGViNDZVbC1DQ1NycS9wdWJodG1sP2dpZD0wJnNpbmdsZT10cnVlXG4gKlxuICogQWNjZXB0ZWQgZm9ybWF0IHN0cmluZyBwYXR0ZXJuczpcbiAqIHwgVW5pdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8UHJpb3J8IFBhdHRlcm4gfCBSZXN1bHQgZXhhbXBsZXMgICAgICAgICAgICAgICAgICAgfCBOb3RlcyB8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tfFxuICogfCBFcmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQwIHwgRy4uR0dHICB8IEFELCBCQyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IEdHR0cgICAgfCBBbm5vIERvbWluaSwgQmVmb3JlIENocmlzdCAgICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBHR0dHRyAgIHwgQSwgQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCBDYWxlbmRhciB5ZWFyICAgICAgICAgICAgICAgICAgIHwgMTMwIHwgeSAgICAgICB8IDQ0LCAxLCAxOTAwLCAyMDE3LCA5OTk5ICAgICAgICAgICB8IDQgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHlvICAgICAgfCA0NHRoLCAxc3QsIDE5MDB0aCwgOTk5OTk5OXRoICAgICAgfCA0LDUgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCB5eSAgICAgIHwgNDQsIDAxLCAwMCwgMTcgICAgICAgICAgICAgICAgICAgIHwgNCAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgeXl5ICAgICB8IDA0NCwgMDAxLCAxMjMsIDk5OSAgICAgICAgICAgICAgICB8IDQgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHl5eXkgICAgfCAwMDQ0LCAwMDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgfCA0ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCB5eXl5eSAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiw0ICAgfFxuICogfCBMb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyICAgICAgIHwgMTMwIHwgWSAgICAgICB8IDQ0LCAxLCAxOTAwLCAyMDE3LCA5MDAwICAgICAgICAgICB8IDQgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFlvICAgICAgfCA0NHRoLCAxc3QsIDE5MDB0aCwgOTk5OTk5OXRoICAgICAgfCA0LDUgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBZWSAgICAgIHwgNDQsIDAxLCAwMCwgMTcgICAgICAgICAgICAgICAgICAgIHwgNCw2ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgWVlZICAgICB8IDA0NCwgMDAxLCAxMjMsIDk5OSAgICAgICAgICAgICAgICB8IDQgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFlZWVkgICAgfCAwMDQ0LCAwMDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgfCA0LDYgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBZWVlZWSAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiw0ICAgfFxuICogfCBJU08gd2Vlay1udW1iZXJpbmcgeWVhciAgICAgICAgIHwgMTMwIHwgUiAgICAgICB8IC00MywgMSwgMTkwMCwgMjAxNywgOTk5OSwgLTk5OTkgICB8IDQsNSAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFJSICAgICAgfCAtNDMsIDAxLCAwMCwgMTcgICAgICAgICAgICAgICAgICAgfCA0LDUgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBSUlIgICAgIHwgLTA0MywgMDAxLCAxMjMsIDk5OSwgLTk5OSAgICAgICAgIHwgNCw1ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgUlJSUiAgICB8IC0wMDQzLCAwMDAxLCAyMDE3LCA5OTk5LCAtOTk5OSAgICB8IDQsNSAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFJSUlJSICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyLDQsNSB8XG4gKiB8IEV4dGVuZGVkIHllYXIgICAgICAgICAgICAgICAgICAgfCAxMzAgfCB1ICAgICAgIHwgLTQzLCAxLCAxOTAwLCAyMDE3LCA5OTk5LCAtOTk5ICAgIHwgNCAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgdXUgICAgICB8IC00MywgMDEsIDk5LCAtOTkgICAgICAgICAgICAgICAgICB8IDQgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHV1dSAgICAgfCAtMDQzLCAwMDEsIDEyMywgOTk5LCAtOTk5ICAgICAgICAgfCA0ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCB1dXV1ICAgIHwgLTAwNDMsIDAwMDEsIDIwMTcsIDk5OTksIC05OTk5ICAgIHwgNCAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgdXV1dXUgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIsNCAgIHxcbiAqIHwgUXVhcnRlciAoZm9ybWF0dGluZykgICAgICAgICAgICB8IDEyMCB8IFEgICAgICAgfCAxLCAyLCAzLCA0ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBRbyAgICAgIHwgMXN0LCAybmQsIDNyZCwgNHRoICAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgUVEgICAgICB8IDAxLCAwMiwgMDMsIDA0ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFFRUSAgICAgfCBRMSwgUTIsIFEzLCBRNCAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBRUVFRICAgIHwgMXN0IHF1YXJ0ZXIsIDJuZCBxdWFydGVyLCAuLi4gICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgUVFRUVEgICB8IDEsIDIsIDMsIDQgICAgICAgICAgICAgICAgICAgICAgICB8IDQgICAgIHxcbiAqIHwgUXVhcnRlciAoc3RhbmQtYWxvbmUpICAgICAgICAgICB8IDEyMCB8IHEgICAgICAgfCAxLCAyLCAzLCA0ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBxbyAgICAgIHwgMXN0LCAybmQsIDNyZCwgNHRoICAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgcXEgICAgICB8IDAxLCAwMiwgMDMsIDA0ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHFxcSAgICAgfCBRMSwgUTIsIFEzLCBRNCAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBxcXFxICAgIHwgMXN0IHF1YXJ0ZXIsIDJuZCBxdWFydGVyLCAuLi4gICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgcXFxcXEgICB8IDEsIDIsIDMsIDQgICAgICAgICAgICAgICAgICAgICAgICB8IDMgICAgIHxcbiAqIHwgTW9udGggKGZvcm1hdHRpbmcpICAgICAgICAgICAgICB8IDExMCB8IE0gICAgICAgfCAxLCAyLCAuLi4sIDEyICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBNbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMTJ0aCAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgTU0gICAgICB8IDAxLCAwMiwgLi4uLCAxMiAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IE1NTSAgICAgfCBKYW4sIEZlYiwgLi4uLCBEZWMgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBNTU1NICAgIHwgSmFudWFyeSwgRmVicnVhcnksIC4uLiwgRGVjZW1iZXIgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgTU1NTU0gICB8IEosIEYsIC4uLiwgRCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgTW9udGggKHN0YW5kLWFsb25lKSAgICAgICAgICAgICB8IDExMCB8IEwgICAgICAgfCAxLCAyLCAuLi4sIDEyICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBMbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMTJ0aCAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgTEwgICAgICB8IDAxLCAwMiwgLi4uLCAxMiAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IExMTCAgICAgfCBKYW4sIEZlYiwgLi4uLCBEZWMgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBMTExMICAgIHwgSmFudWFyeSwgRmVicnVhcnksIC4uLiwgRGVjZW1iZXIgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgTExMTEwgICB8IEosIEYsIC4uLiwgRCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgTG9jYWwgd2VlayBvZiB5ZWFyICAgICAgICAgICAgICB8IDEwMCB8IHcgICAgICAgfCAxLCAyLCAuLi4sIDUzICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCB3byAgICAgIHwgMXN0LCAybmQsIC4uLiwgNTN0aCAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgd3cgICAgICB8IDAxLCAwMiwgLi4uLCA1MyAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgSVNPIHdlZWsgb2YgeWVhciAgICAgICAgICAgICAgICB8IDEwMCB8IEkgICAgICAgfCAxLCAyLCAuLi4sIDUzICAgICAgICAgICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBJbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgNTN0aCAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgSUkgICAgICB8IDAxLCAwMiwgLi4uLCA1MyAgICAgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgRGF5IG9mIG1vbnRoICAgICAgICAgICAgICAgICAgICB8ICA5MCB8IGQgICAgICAgfCAxLCAyLCAuLi4sIDMxICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBkbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMzFzdCAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgZGQgICAgICB8IDAxLCAwMiwgLi4uLCAzMSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgRGF5IG9mIHllYXIgICAgICAgICAgICAgICAgICAgICB8ICA5MCB8IEQgICAgICAgfCAxLCAyLCAuLi4sIDM2NSwgMzY2ICAgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBEbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMzY1dGgsIDM2NnRoICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgREQgICAgICB8IDAxLCAwMiwgLi4uLCAzNjUsIDM2NiAgICAgICAgICAgICB8IDcgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IERERCAgICAgfCAwMDEsIDAwMiwgLi4uLCAzNjUsIDM2NiAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBEREREICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiAgICAgfFxuICogfCBEYXkgb2Ygd2VlayAoZm9ybWF0dGluZykgICAgICAgIHwgIDkwIHwgRS4uRUVFICB8IE1vbiwgVHVlLCBXZWQsIC4uLiwgU3VuICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IEVFRUUgICAgfCBNb25kYXksIFR1ZXNkYXksIC4uLiwgU3VuZGF5ICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBFRUVFRSAgIHwgTSwgVCwgVywgVCwgRiwgUywgUyAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgRUVFRUVFICB8IE1vLCBUdSwgV2UsIFRoLCBGciwgU2EsIFN1ICAgICAgICB8ICAgICAgIHxcbiAqIHwgSVNPIGRheSBvZiB3ZWVrIChmb3JtYXR0aW5nKSAgICB8ICA5MCB8IGkgICAgICAgfCAxLCAyLCAzLCAuLi4sIDcgICAgICAgICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBpbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgN3RoICAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgaWkgICAgICB8IDAxLCAwMiwgLi4uLCAwNyAgICAgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGlpaSAgICAgfCBNb24sIFR1ZSwgV2VkLCAuLi4sIFN1biAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBpaWlpICAgIHwgTW9uZGF5LCBUdWVzZGF5LCAuLi4sIFN1bmRheSAgICAgIHwgMiw1ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgaWlpaWkgICB8IE0sIFQsIFcsIFQsIEYsIFMsIFMgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGlpaWlpaSAgfCBNbywgVHUsIFdlLCBUaCwgRnIsIFNhLCBTdSAgICAgICAgfCA1ICAgICB8XG4gKiB8IExvY2FsIGRheSBvZiB3ZWVrIChmb3JtYXR0aW5nKSAgfCAgOTAgfCBlICAgICAgIHwgMiwgMywgNCwgLi4uLCAxICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgZW8gICAgICB8IDJuZCwgM3JkLCAuLi4sIDFzdCAgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGVlICAgICAgfCAwMiwgMDMsIC4uLiwgMDEgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBlZWUgICAgIHwgTW9uLCBUdWUsIFdlZCwgLi4uLCBTdW4gICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgZWVlZSAgICB8IE1vbmRheSwgVHVlc2RheSwgLi4uLCBTdW5kYXkgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGVlZWVlICAgfCBNLCBULCBXLCBULCBGLCBTLCBTICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBlZWVlZWUgIHwgTW8sIFR1LCBXZSwgVGgsIEZyLCBTYSwgU3UgICAgICAgIHwgICAgICAgfFxuICogfCBMb2NhbCBkYXkgb2Ygd2VlayAoc3RhbmQtYWxvbmUpIHwgIDkwIHwgYyAgICAgICB8IDIsIDMsIDQsIC4uLiwgMSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGNvICAgICAgfCAybmQsIDNyZCwgLi4uLCAxc3QgICAgICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBjYyAgICAgIHwgMDIsIDAzLCAuLi4sIDAxICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgY2NjICAgICB8IE1vbiwgVHVlLCBXZWQsIC4uLiwgU3VuICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGNjY2MgICAgfCBNb25kYXksIFR1ZXNkYXksIC4uLiwgU3VuZGF5ICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBjY2NjYyAgIHwgTSwgVCwgVywgVCwgRiwgUywgUyAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgY2NjY2NjICB8IE1vLCBUdSwgV2UsIFRoLCBGciwgU2EsIFN1ICAgICAgICB8ICAgICAgIHxcbiAqIHwgQU0sIFBNICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4MCB8IGEuLmFhYSAgfCBBTSwgUE0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBhYWFhICAgIHwgYS5tLiwgcC5tLiAgICAgICAgICAgICAgICAgICAgICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgYWFhYWEgICB8IGEsIHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgQU0sIFBNLCBub29uLCBtaWRuaWdodCAgICAgICAgICB8ICA4MCB8IGIuLmJiYiAgfCBBTSwgUE0sIG5vb24sIG1pZG5pZ2h0ICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBiYmJiICAgIHwgYS5tLiwgcC5tLiwgbm9vbiwgbWlkbmlnaHQgICAgICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgYmJiYmIgICB8IGEsIHAsIG4sIG1pICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgRmxleGlibGUgZGF5IHBlcmlvZCAgICAgICAgICAgICB8ICA4MCB8IEIuLkJCQiAgfCBhdCBuaWdodCwgaW4gdGhlIG1vcm5pbmcsIC4uLiAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBCQkJCICAgIHwgYXQgbmlnaHQsIGluIHRoZSBtb3JuaW5nLCAuLi4gICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgQkJCQkIgICB8IGF0IG5pZ2h0LCBpbiB0aGUgbW9ybmluZywgLi4uICAgICB8ICAgICAgIHxcbiAqIHwgSG91ciBbMS0xMl0gICAgICAgICAgICAgICAgICAgICB8ICA3MCB8IGggICAgICAgfCAxLCAyLCAuLi4sIDExLCAxMiAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBobyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMTF0aCwgMTJ0aCAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgaGggICAgICB8IDAxLCAwMiwgLi4uLCAxMSwgMTIgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgSG91ciBbMC0yM10gICAgICAgICAgICAgICAgICAgICB8ICA3MCB8IEggICAgICAgfCAwLCAxLCAyLCAuLi4sIDIzICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBIbyAgICAgIHwgMHRoLCAxc3QsIDJuZCwgLi4uLCAyM3JkICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgSEggICAgICB8IDAwLCAwMSwgMDIsIC4uLiwgMjMgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgSG91ciBbMC0xMV0gICAgICAgICAgICAgICAgICAgICB8ICA3MCB8IEsgICAgICAgfCAxLCAyLCAuLi4sIDExLCAwICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBLbyAgICAgIHwgMXN0LCAybmQsIC4uLiwgMTF0aCwgMHRoICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgS0sgICAgICB8IDAxLCAwMiwgLi4uLCAxMSwgMDAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgSG91ciBbMS0yNF0gICAgICAgICAgICAgICAgICAgICB8ICA3MCB8IGsgICAgICAgfCAyNCwgMSwgMiwgLi4uLCAyMyAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBrbyAgICAgIHwgMjR0aCwgMXN0LCAybmQsIC4uLiwgMjNyZCAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwga2sgICAgICB8IDI0LCAwMSwgMDIsIC4uLiwgMjMgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgTWludXRlICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2MCB8IG0gICAgICAgfCAwLCAxLCAuLi4sIDU5ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBtbyAgICAgIHwgMHRoLCAxc3QsIC4uLiwgNTl0aCAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgbW0gICAgICB8IDAwLCAwMSwgLi4uLCA1OSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgU2Vjb25kICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1MCB8IHMgICAgICAgfCAwLCAxLCAuLi4sIDU5ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBzbyAgICAgIHwgMHRoLCAxc3QsIC4uLiwgNTl0aCAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgc3MgICAgICB8IDAwLCAwMSwgLi4uLCA1OSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgU2Vjb25kcyB0aW1lc3RhbXAgICAgICAgICAgICAgICB8ICA0MCB8IHQgICAgICAgfCA1MTI5Njk1MjAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCB0dCAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiAgICAgfFxuICogfCBGcmFjdGlvbiBvZiBzZWNvbmQgICAgICAgICAgICAgIHwgIDMwIHwgUyAgICAgICB8IDAsIDEsIC4uLiwgOSAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFNTICAgICAgfCAwMCwgMDEsIC4uLiwgOTkgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBTU1MgICAgIHwgMDAwLCAwMDEsIC4uLiwgOTk5ICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgU1NTUyAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgICAgIHxcbiAqIHwgTWlsbGlzZWNvbmRzIHRpbWVzdGFtcCAgICAgICAgICB8ICAyMCB8IFQgICAgICAgfCA1MTI5Njk1MjA5MDAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBUVCAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiAgICAgfFxuICogfCBUaW1lem9uZSAoSVNPLTg2MDEgdy8gWikgICAgICAgIHwgIDEwIHwgWCAgICAgICB8IC0wOCwgKzA1MzAsIFogICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFhYICAgICAgfCAtMDgwMCwgKzA1MzAsIFogICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBYWFggICAgIHwgLTA4OjAwLCArMDU6MzAsIFogICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgWFhYWCAgICB8IC0wODAwLCArMDUzMCwgWiwgKzEyMzQ1NiAgICAgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFhYWFhYICAgfCAtMDg6MDAsICswNTozMCwgWiwgKzEyOjM0OjU2ICAgICAgfCAgICAgICB8XG4gKiB8IFRpbWV6b25lIChJU08tODYwMSB3L28gWikgICAgICAgfCAgMTAgfCB4ICAgICAgIHwgLTA4LCArMDUzMCwgKzAwICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgeHggICAgICB8IC0wODAwLCArMDUzMCwgKzAwMDAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHh4eCAgICAgfCAtMDg6MDAsICswNTozMCwgKzAwOjAwICAgICAgICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCB4eHh4ICAgIHwgLTA4MDAsICswNTMwLCArMDAwMCwgKzEyMzQ1NiAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgeHh4eHggICB8IC0wODowMCwgKzA1OjMwLCArMDA6MDAsICsxMjozNDo1NiB8ICAgICAgIHxcbiAqIHwgTG9uZyBsb2NhbGl6ZWQgZGF0ZSAgICAgICAgICAgICB8ICBOQSB8IFAgICAgICAgfCAwNS8yOS8xNDUzICAgICAgICAgICAgICAgICAgICAgICAgfCA1LDggICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBQUCAgICAgIHwgTWF5IDI5LCAxNDUzICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgUFBQICAgICB8IE1heSAyOXRoLCAxNDUzICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFBQUFAgICAgfCBTdW5kYXksIE1heSAyOXRoLCAxNDUzICAgICAgICAgICAgfCAyLDUsOCB8XG4gKiB8IExvbmcgbG9jYWxpemVkIHRpbWUgICAgICAgICAgICAgfCAgTkEgfCBwICAgICAgIHwgMTI6MDAgQU0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgNSw4ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgcHAgICAgICB8IDEyOjAwOjAwIEFNICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgQ29tYmluYXRpb24gb2YgZGF0ZSBhbmQgdGltZSAgICB8ICBOQSB8IFBwICAgICAgfCAwNS8yOS8xNDUzLCAxMjowMCBBTSAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBQUHBwICAgIHwgTWF5IDI5LCAxNDUzLCAxMjowMDowMCBBTSAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgUFBQcHAgICB8IE1heSAyOXRoLCAxNDUzIGF0IC4uLiAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFBQUFBwcCAgfCBTdW5kYXksIE1heSAyOXRoLCAxNDUzIGF0IC4uLiAgICAgfCAyLDUsOCB8XG4gKiBOb3RlczpcbiAqIDEuIFwiRm9ybWF0dGluZ1wiIHVuaXRzIChlLmcuIGZvcm1hdHRpbmcgcXVhcnRlcikgaW4gdGhlIGRlZmF1bHQgZW4tVVMgbG9jYWxlXG4gKiAgICBhcmUgdGhlIHNhbWUgYXMgXCJzdGFuZC1hbG9uZVwiIHVuaXRzLCBidXQgYXJlIGRpZmZlcmVudCBpbiBzb21lIGxhbmd1YWdlcy5cbiAqICAgIFwiRm9ybWF0dGluZ1wiIHVuaXRzIGFyZSBkZWNsaW5lZCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIHRoZSBsYW5ndWFnZVxuICogICAgaW4gdGhlIGNvbnRleHQgb2YgYSBkYXRlLiBcIlN0YW5kLWFsb25lXCIgdW5pdHMgYXJlIGFsd2F5cyBub21pbmF0aXZlIHNpbmd1bGFyLlxuICogICAgSW4gYGZvcm1hdGAgZnVuY3Rpb24sIHRoZXkgd2lsbCBwcm9kdWNlIGRpZmZlcmVudCByZXN1bHQ6XG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdkbyBMTExMJywge2xvY2FsZTogY3N9KSAvLz0+ICc2LiBsaXN0b3BhZCdgXG4gKlxuICogICAgYGZvcm1hdChuZXcgRGF0ZSgyMDE3LCAxMCwgNiksICdkbyBNTU1NJywge2xvY2FsZTogY3N9KSAvLz0+ICc2LiBsaXN0b3BhZHUnYFxuICpcbiAqICAgIGBwYXJzZWAgd2lsbCB0cnkgdG8gbWF0Y2ggYm90aCBmb3JtYXR0aW5nIGFuZCBzdGFuZC1hbG9uZSB1bml0cyBpbnRlcmNoYW5nZWFibHkuXG4gKlxuICogMi4gQW55IHNlcXVlbmNlIG9mIHRoZSBpZGVudGljYWwgbGV0dGVycyBpcyBhIHBhdHRlcm4sIHVubGVzcyBpdCBpcyBlc2NhcGVkIGJ5XG4gKiAgICB0aGUgc2luZ2xlIHF1b3RlIGNoYXJhY3RlcnMgKHNlZSBiZWxvdykuXG4gKiAgICBJZiB0aGUgc2VxdWVuY2UgaXMgbG9uZ2VyIHRoYW4gbGlzdGVkIGluIHRhYmxlOlxuICogICAgLSBmb3IgbnVtZXJpY2FsIHVuaXRzIChgeXl5eXl5eXlgKSBgcGFyc2VgIHdpbGwgdHJ5IHRvIG1hdGNoIGEgbnVtYmVyXG4gKiAgICAgIGFzIHdpZGUgYXMgdGhlIHNlcXVlbmNlXG4gKiAgICAtIGZvciB0ZXh0IHVuaXRzIChgTU1NTU1NTU1gKSBgcGFyc2VgIHdpbGwgdHJ5IHRvIG1hdGNoIHRoZSB3aWRlc3QgdmFyaWF0aW9uIG9mIHRoZSB1bml0LlxuICogICAgICBUaGVzZSB2YXJpYXRpb25zIGFyZSBtYXJrZWQgd2l0aCBcIjJcIiBpbiB0aGUgbGFzdCBjb2x1bW4gb2YgdGhlIHRhYmxlLlxuICpcbiAqIDMuIGBRUVFRUWAgYW5kIGBxcXFxcWAgY291bGQgYmUgbm90IHN0cmljdGx5IG51bWVyaWNhbCBpbiBzb21lIGxvY2FsZXMuXG4gKiAgICBUaGVzZSB0b2tlbnMgcmVwcmVzZW50IHRoZSBzaG9ydGVzdCBmb3JtIG9mIHRoZSBxdWFydGVyLlxuICpcbiAqIDQuIFRoZSBtYWluIGRpZmZlcmVuY2UgYmV0d2VlbiBgeWAgYW5kIGB1YCBwYXR0ZXJucyBhcmUgQi5DLiB5ZWFyczpcbiAqXG4gKiAgICB8IFllYXIgfCBgeWAgfCBgdWAgfFxuICogICAgfC0tLS0tLXwtLS0tLXwtLS0tLXxcbiAqICAgIHwgQUMgMSB8ICAgMSB8ICAgMSB8XG4gKiAgICB8IEJDIDEgfCAgIDEgfCAgIDAgfFxuICogICAgfCBCQyAyIHwgICAyIHwgIC0xIHxcbiAqXG4gKiAgICBBbHNvIGB5eWAgd2lsbCB0cnkgdG8gZ3Vlc3MgdGhlIGNlbnR1cnkgb2YgdHdvIGRpZ2l0IHllYXIgYnkgcHJveGltaXR5IHdpdGggYHJlZmVyZW5jZURhdGVgOlxuICpcbiAqICAgIGBwYXJzZSgnNTAnLCAneXknLCBuZXcgRGF0ZSgyMDE4LCAwLCAxKSkgLy89PiBTYXQgSmFuIDAxIDIwNTAgMDA6MDA6MDBgXG4gKlxuICogICAgYHBhcnNlKCc3NScsICd5eScsIG5ldyBEYXRlKDIwMTgsIDAsIDEpKSAvLz0+IFdlZCBKYW4gMDEgMTk3NSAwMDowMDowMGBcbiAqXG4gKiAgICB3aGlsZSBgdXVgIHdpbGwganVzdCBhc3NpZ24gdGhlIHllYXIgYXMgaXM6XG4gKlxuICogICAgYHBhcnNlKCc1MCcsICd1dScsIG5ldyBEYXRlKDIwMTgsIDAsIDEpKSAvLz0+IFNhdCBKYW4gMDEgMDA1MCAwMDowMDowMGBcbiAqXG4gKiAgICBgcGFyc2UoJzc1JywgJ3V1JywgbmV3IERhdGUoMjAxOCwgMCwgMSkpIC8vPT4gVHVlIEphbiAwMSAwMDc1IDAwOjAwOjAwYFxuICpcbiAqICAgIFRoZSBzYW1lIGRpZmZlcmVuY2UgaXMgdHJ1ZSBmb3IgbG9jYWwgYW5kIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFycyAoYFlgIGFuZCBgUmApLFxuICogICAgZXhjZXB0IGxvY2FsIHdlZWstbnVtYmVyaW5nIHllYXJzIGFyZSBkZXBlbmRlbnQgb24gYG9wdGlvbnMud2Vla1N0YXJ0c09uYFxuICogICAgYW5kIGBvcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZWAgKGNvbXBhcmUgW3NldElTT1dlZWtZZWFyXShodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL3NldElTT1dlZWtZZWFyKVxuICogICAgYW5kIFtzZXRXZWVrWWVhcl0oaHR0cHM6Ly9kYXRlLWZucy5vcmcvZG9jcy9zZXRXZWVrWWVhcikpLlxuICpcbiAqIDUuIFRoZXNlIHBhdHRlcm5zIGFyZSBub3QgaW4gdGhlIFVuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkICMzNTpcbiAqICAgIC0gYGlgOiBJU08gZGF5IG9mIHdlZWtcbiAqICAgIC0gYElgOiBJU08gd2VlayBvZiB5ZWFyXG4gKiAgICAtIGBSYDogSVNPIHdlZWstbnVtYmVyaW5nIHllYXJcbiAqICAgIC0gYG9gOiBvcmRpbmFsIG51bWJlciBtb2RpZmllclxuICogICAgLSBgUGA6IGxvbmcgbG9jYWxpemVkIGRhdGVcbiAqICAgIC0gYHBgOiBsb25nIGxvY2FsaXplZCB0aW1lXG4gKlxuICogNi4gYFlZYCBhbmQgYFlZWVlgIHRva2VucyByZXByZXNlbnQgd2Vlay1udW1iZXJpbmcgeWVhcnMgYnV0IHRoZXkgYXJlIG9mdGVuIGNvbmZ1c2VkIHdpdGggeWVhcnMuXG4gKiAgICBZb3Ugc2hvdWxkIGVuYWJsZSBgb3B0aW9ucy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnNgIHRvIHVzZSB0aGVtLiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRcbiAqXG4gKiA3LiBgRGAgYW5kIGBERGAgdG9rZW5zIHJlcHJlc2VudCBkYXlzIG9mIHRoZSB5ZWFyIGJ1dCB0aGV5IGFyZSBvZnRlbiBjb25mdXNlZCB3aXRoIGRheXMgb2YgdGhlIG1vbnRoLlxuICogICAgWW91IHNob3VsZCBlbmFibGUgYG9wdGlvbnMudXNlQWRkaXRpb25hbERheU9mWWVhclRva2Vuc2AgdG8gdXNlIHRoZW0uIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZFxuICpcbiAqIDguIGBQK2AgdG9rZW5zIGRvIG5vdCBoYXZlIGEgZGVmaW5lZCBwcmlvcml0eSBzaW5jZSB0aGV5IGFyZSBtZXJlbHkgYWxpYXNlcyB0byBvdGhlciB0b2tlbnMgYmFzZWRcbiAqICAgIG9uIHRoZSBnaXZlbiBsb2NhbGUuXG4gKlxuICogICAgdXNpbmcgYGVuLVVTYCBsb2NhbGU6IGBQYCA9PiBgTU0vZGQveXl5eWBcbiAqICAgIHVzaW5nIGBlbi1VU2AgbG9jYWxlOiBgcGAgPT4gYGhoOm1tIGFgXG4gKiAgICB1c2luZyBgcHQtQlJgIGxvY2FsZTogYFBgID0+IGBkZC9NTS95eXl5YFxuICogICAgdXNpbmcgYHB0LUJSYCBsb2NhbGU6IGBwYCA9PiBgSEg6bW1gXG4gKlxuICogVmFsdWVzIHdpbGwgYmUgYXNzaWduZWQgdG8gdGhlIGRhdGUgaW4gdGhlIGRlc2NlbmRpbmcgb3JkZXIgb2YgaXRzIHVuaXQncyBwcmlvcml0eS5cbiAqIFVuaXRzIG9mIGFuIGVxdWFsIHByaW9yaXR5IG92ZXJ3cml0ZSBlYWNoIG90aGVyIGluIHRoZSBvcmRlciBvZiBhcHBlYXJhbmNlLlxuICpcbiAqIElmIG5vIHZhbHVlcyBvZiBoaWdoZXIgcHJpb3JpdHkgYXJlIHBhcnNlZCAoZS5nLiB3aGVuIHBhcnNpbmcgc3RyaW5nICdKYW51YXJ5IDFzdCcgd2l0aG91dCBhIHllYXIpLFxuICogdGhlIHZhbHVlcyB3aWxsIGJlIHRha2VuIGZyb20gM3JkIGFyZ3VtZW50IGByZWZlcmVuY2VEYXRlYCB3aGljaCB3b3JrcyBhcyBhIGNvbnRleHQgb2YgcGFyc2luZy5cbiAqXG4gKiBgcmVmZXJlbmNlRGF0ZWAgbXVzdCBiZSBwYXNzZWQgZm9yIGNvcnJlY3Qgd29yayBvZiB0aGUgZnVuY3Rpb24uXG4gKiBJZiB5b3UncmUgbm90IHN1cmUgd2hpY2ggYHJlZmVyZW5jZURhdGVgIHRvIHN1cHBseSwgY3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIERhdGU6XG4gKiBgcGFyc2UoJzAyLzExLzIwMTQnLCAnTU0vZGQveXl5eScsIG5ldyBEYXRlKCkpYFxuICogSW4gdGhpcyBjYXNlIHBhcnNpbmcgd2lsbCBiZSBkb25lIGluIHRoZSBjb250ZXh0IG9mIHRoZSBjdXJyZW50IGRhdGUuXG4gKiBJZiBgcmVmZXJlbmNlRGF0ZWAgaXMgYEludmFsaWQgRGF0ZWAgb3IgYSB2YWx1ZSBub3QgY29udmVydGlibGUgdG8gdmFsaWQgYERhdGVgLFxuICogdGhlbiBgSW52YWxpZCBEYXRlYCB3aWxsIGJlIHJldHVybmVkLlxuICpcbiAqIFRoZSByZXN1bHQgbWF5IHZhcnkgYnkgbG9jYWxlLlxuICpcbiAqIElmIGBmb3JtYXRTdHJpbmdgIG1hdGNoZXMgd2l0aCBgZGF0ZVN0cmluZ2AgYnV0IGRvZXMgbm90IHByb3ZpZGVzIHRva2VucywgYHJlZmVyZW5jZURhdGVgIHdpbGwgYmUgcmV0dXJuZWQuXG4gKlxuICogSWYgcGFyc2luZyBmYWlsZWQsIGBJbnZhbGlkIERhdGVgIHdpbGwgYmUgcmV0dXJuZWQuXG4gKiBJbnZhbGlkIERhdGUgaXMgYSBEYXRlLCB3aG9zZSB0aW1lIHZhbHVlIGlzIE5hTi5cbiAqIFRpbWUgdmFsdWUgb2YgRGF0ZTogaHR0cDovL2VzNS5naXRodWIuaW8vI3gxNS45LjEuMVxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZVN0ciAtIFRoZSBzdHJpbmcgdG8gcGFyc2VcbiAqIEBwYXJhbSBmb3JtYXRTdHIgLSBUaGUgc3RyaW5nIG9mIHRva2Vuc1xuICogQHBhcmFtIHJlZmVyZW5jZURhdGUgLSBkZWZpbmVzIHZhbHVlcyBtaXNzaW5nIGZyb20gdGhlIHBhcnNlZCBkYXRlU3RyaW5nXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnMuXG4gKiAgIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZFxuICogICBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRcbiAqXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGRhdGVcbiAqXG4gKiBAdGhyb3dzIGBvcHRpb25zLmxvY2FsZWAgbXVzdCBjb250YWluIGBtYXRjaGAgcHJvcGVydHlcbiAqIEB0aHJvd3MgdXNlIGB5eXl5YCBpbnN0ZWFkIG9mIGBZWVlZYCBmb3IgZm9ybWF0dGluZyB5ZWFycyB1c2luZyBbZm9ybWF0IHByb3ZpZGVkXSB0byB0aGUgaW5wdXQgW2lucHV0IHByb3ZpZGVkXTsgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kXG4gKiBAdGhyb3dzIHVzZSBgeXlgIGluc3RlYWQgb2YgYFlZYCBmb3IgZm9ybWF0dGluZyB5ZWFycyB1c2luZyBbZm9ybWF0IHByb3ZpZGVkXSB0byB0aGUgaW5wdXQgW2lucHV0IHByb3ZpZGVkXTsgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kXG4gKiBAdGhyb3dzIHVzZSBgZGAgaW5zdGVhZCBvZiBgRGAgZm9yIGZvcm1hdHRpbmcgZGF5cyBvZiB0aGUgbW9udGggdXNpbmcgW2Zvcm1hdCBwcm92aWRlZF0gdG8gdGhlIGlucHV0IFtpbnB1dCBwcm92aWRlZF07IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZFxuICogQHRocm93cyB1c2UgYGRkYCBpbnN0ZWFkIG9mIGBERGAgZm9yIGZvcm1hdHRpbmcgZGF5cyBvZiB0aGUgbW9udGggdXNpbmcgW2Zvcm1hdCBwcm92aWRlZF0gdG8gdGhlIGlucHV0IFtpbnB1dCBwcm92aWRlZF07IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZFxuICogQHRocm93cyBmb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUGFyc2UgMTEgRmVicnVhcnkgMjAxNCBmcm9tIG1pZGRsZS1lbmRpYW4gZm9ybWF0OlxuICogdmFyIHJlc3VsdCA9IHBhcnNlKCcwMi8xMS8yMDE0JywgJ01NL2RkL3l5eXknLCBuZXcgRGF0ZSgpKVxuICogLy89PiBUdWUgRmViIDExIDIwMTQgMDA6MDA6MDBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUGFyc2UgMjh0aCBvZiBGZWJydWFyeSBpbiBFc3BlcmFudG8gbG9jYWxlIGluIHRoZSBjb250ZXh0IG9mIDIwMTAgeWVhcjpcbiAqIGltcG9ydCBlbyBmcm9tICdkYXRlLWZucy9sb2NhbGUvZW8nXG4gKiB2YXIgcmVzdWx0ID0gcGFyc2UoJzI4LWEgZGUgZmVicnVhcm8nLCBcImRvICdkZScgTU1NTVwiLCBuZXcgRGF0ZSgyMDEwLCAwLCAxKSwge1xuICogICBsb2NhbGU6IGVvXG4gKiB9KVxuICogLy89PiBTdW4gRmViIDI4IDIwMTAgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKGRhdGVTdHIsIGZvcm1hdFN0ciwgcmVmZXJlbmNlRGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBpbnZhbGlkRGF0ZSA9ICgpID0+IGNvbnN0cnVjdEZyb20ob3B0aW9ucz8uaW4gfHwgcmVmZXJlbmNlRGF0ZSwgTmFOKTtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBnZXREZWZhdWx0T3B0aW9ucygpO1xuICBjb25zdCBsb2NhbGUgPSBvcHRpb25zPy5sb2NhbGUgPz8gZGVmYXVsdE9wdGlvbnMubG9jYWxlID8/IGRlZmF1bHRMb2NhbGU7XG5cbiAgY29uc3QgZmlyc3RXZWVrQ29udGFpbnNEYXRlID1cbiAgICBvcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGUgPz9cbiAgICBvcHRpb25zPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA/P1xuICAgIGRlZmF1bHRPcHRpb25zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA/P1xuICAgIGRlZmF1bHRPcHRpb25zLmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlID8/XG4gICAgMTtcblxuICBjb25zdCB3ZWVrU3RhcnRzT24gPVxuICAgIG9wdGlvbnM/LndlZWtTdGFydHNPbiA/P1xuICAgIG9wdGlvbnM/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uID8/XG4gICAgZGVmYXVsdE9wdGlvbnMud2Vla1N0YXJ0c09uID8/XG4gICAgZGVmYXVsdE9wdGlvbnMubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24gPz9cbiAgICAwO1xuXG4gIGlmICghZm9ybWF0U3RyKVxuICAgIHJldHVybiBkYXRlU3RyID8gaW52YWxpZERhdGUoKSA6IHRvRGF0ZShyZWZlcmVuY2VEYXRlLCBvcHRpb25zPy5pbik7XG5cbiAgY29uc3Qgc3ViRm5PcHRpb25zID0ge1xuICAgIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSxcbiAgICB3ZWVrU3RhcnRzT24sXG4gICAgbG9jYWxlLFxuICB9O1xuXG4gIC8vIElmIHRpbWV6b25lIGlzbid0IHNwZWNpZmllZCwgaXQgd2lsbCB0cnkgdG8gdXNlIHRoZSBjb250ZXh0IG9yXG4gIC8vIHRoZSByZWZlcmVuY2UgZGF0ZSBhbmQgZmFsbGJhY2sgdG8gdGhlIHN5c3RlbSB0aW1lIHpvbmUuXG4gIGNvbnN0IHNldHRlcnMgPSBbbmV3IERhdGVUaW1lem9uZVNldHRlcihvcHRpb25zPy5pbiwgcmVmZXJlbmNlRGF0ZSldO1xuXG4gIGNvbnN0IHRva2VucyA9IGZvcm1hdFN0clxuICAgIC5tYXRjaChsb25nRm9ybWF0dGluZ1Rva2Vuc1JlZ0V4cClcbiAgICAubWFwKChzdWJzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGZpcnN0Q2hhcmFjdGVyID0gc3Vic3RyaW5nWzBdO1xuICAgICAgaWYgKGZpcnN0Q2hhcmFjdGVyIGluIGxvbmdGb3JtYXR0ZXJzKSB7XG4gICAgICAgIGNvbnN0IGxvbmdGb3JtYXR0ZXIgPSBsb25nRm9ybWF0dGVyc1tmaXJzdENoYXJhY3Rlcl07XG4gICAgICAgIHJldHVybiBsb25nRm9ybWF0dGVyKHN1YnN0cmluZywgbG9jYWxlLmZvcm1hdExvbmcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN1YnN0cmluZztcbiAgICB9KVxuICAgIC5qb2luKFwiXCIpXG4gICAgLm1hdGNoKGZvcm1hdHRpbmdUb2tlbnNSZWdFeHApO1xuXG4gIGNvbnN0IHVzZWRUb2tlbnMgPSBbXTtcblxuICBmb3IgKGxldCB0b2tlbiBvZiB0b2tlbnMpIHtcbiAgICBpZiAoXG4gICAgICAhb3B0aW9ucz8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zICYmXG4gICAgICBpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4odG9rZW4pXG4gICAgKSB7XG4gICAgICB3YXJuT3JUaHJvd1Byb3RlY3RlZEVycm9yKHRva2VuLCBmb3JtYXRTdHIsIGRhdGVTdHIpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAhb3B0aW9ucz8udXNlQWRkaXRpb25hbERheU9mWWVhclRva2VucyAmJlxuICAgICAgaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbih0b2tlbilcbiAgICApIHtcbiAgICAgIHdhcm5PclRocm93UHJvdGVjdGVkRXJyb3IodG9rZW4sIGZvcm1hdFN0ciwgZGF0ZVN0cik7XG4gICAgfVxuXG4gICAgY29uc3QgZmlyc3RDaGFyYWN0ZXIgPSB0b2tlblswXTtcbiAgICBjb25zdCBwYXJzZXIgPSBwYXJzZXJzW2ZpcnN0Q2hhcmFjdGVyXTtcbiAgICBpZiAocGFyc2VyKSB7XG4gICAgICBjb25zdCB7IGluY29tcGF0aWJsZVRva2VucyB9ID0gcGFyc2VyO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5jb21wYXRpYmxlVG9rZW5zKSkge1xuICAgICAgICBjb25zdCBpbmNvbXBhdGlibGVUb2tlbiA9IHVzZWRUb2tlbnMuZmluZChcbiAgICAgICAgICAodXNlZFRva2VuKSA9PlxuICAgICAgICAgICAgaW5jb21wYXRpYmxlVG9rZW5zLmluY2x1ZGVzKHVzZWRUb2tlbi50b2tlbikgfHxcbiAgICAgICAgICAgIHVzZWRUb2tlbi50b2tlbiA9PT0gZmlyc3RDaGFyYWN0ZXIsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChpbmNvbXBhdGlibGVUb2tlbikge1xuICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFxuICAgICAgICAgICAgYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcXGAke2luY29tcGF0aWJsZVRva2VuLmZ1bGxUb2tlbn1cXGAgYW5kIFxcYCR7dG9rZW59XFxgIGF0IHRoZSBzYW1lIHRpbWVgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocGFyc2VyLmluY29tcGF0aWJsZVRva2VucyA9PT0gXCIqXCIgJiYgdXNlZFRva2Vucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFxuICAgICAgICAgIGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXFxgJHt0b2tlbn1cXGAgYW5kIGFueSBvdGhlciB0b2tlbiBhdCB0aGUgc2FtZSB0aW1lYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdXNlZFRva2Vucy5wdXNoKHsgdG9rZW46IGZpcnN0Q2hhcmFjdGVyLCBmdWxsVG9rZW46IHRva2VuIH0pO1xuXG4gICAgICBjb25zdCBwYXJzZVJlc3VsdCA9IHBhcnNlci5ydW4oXG4gICAgICAgIGRhdGVTdHIsXG4gICAgICAgIHRva2VuLFxuICAgICAgICBsb2NhbGUubWF0Y2gsXG4gICAgICAgIHN1YkZuT3B0aW9ucyxcbiAgICAgICk7XG5cbiAgICAgIGlmICghcGFyc2VSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGludmFsaWREYXRlKCk7XG4gICAgICB9XG5cbiAgICAgIHNldHRlcnMucHVzaChwYXJzZVJlc3VsdC5zZXR0ZXIpO1xuXG4gICAgICBkYXRlU3RyID0gcGFyc2VSZXN1bHQucmVzdDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZpcnN0Q2hhcmFjdGVyLm1hdGNoKHVuZXNjYXBlZExhdGluQ2hhcmFjdGVyUmVnRXhwKSkge1xuICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcbiAgICAgICAgICBcIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgXCIgK1xuICAgICAgICAgICAgZmlyc3RDaGFyYWN0ZXIgK1xuICAgICAgICAgICAgXCJgXCIsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlcGxhY2UgdHdvIHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJzIHdpdGggb25lIHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJcbiAgICAgIGlmICh0b2tlbiA9PT0gXCInJ1wiKSB7XG4gICAgICAgIHRva2VuID0gXCInXCI7XG4gICAgICB9IGVsc2UgaWYgKGZpcnN0Q2hhcmFjdGVyID09PSBcIidcIikge1xuICAgICAgICB0b2tlbiA9IGNsZWFuRXNjYXBlZFN0cmluZyh0b2tlbik7XG4gICAgICB9XG5cbiAgICAgIC8vIEN1dCB0b2tlbiBmcm9tIHN0cmluZywgb3IsIGlmIHN0cmluZyBkb2Vzbid0IG1hdGNoIHRoZSB0b2tlbiwgcmV0dXJuIEludmFsaWQgRGF0ZVxuICAgICAgaWYgKGRhdGVTdHIuaW5kZXhPZih0b2tlbikgPT09IDApIHtcbiAgICAgICAgZGF0ZVN0ciA9IGRhdGVTdHIuc2xpY2UodG9rZW4ubGVuZ3RoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZhbGlkRGF0ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSByZW1haW5pbmcgaW5wdXQgY29udGFpbnMgc29tZXRoaW5nIG90aGVyIHRoYW4gd2hpdGVzcGFjZVxuICBpZiAoZGF0ZVN0ci5sZW5ndGggPiAwICYmIG5vdFdoaXRlc3BhY2VSZWdFeHAudGVzdChkYXRlU3RyKSkge1xuICAgIHJldHVybiBpbnZhbGlkRGF0ZSgpO1xuICB9XG5cbiAgY29uc3QgdW5pcXVlUHJpb3JpdHlTZXR0ZXJzID0gc2V0dGVyc1xuICAgIC5tYXAoKHNldHRlcikgPT4gc2V0dGVyLnByaW9yaXR5KVxuICAgIC5zb3J0KChhLCBiKSA9PiBiIC0gYSlcbiAgICAuZmlsdGVyKChwcmlvcml0eSwgaW5kZXgsIGFycmF5KSA9PiBhcnJheS5pbmRleE9mKHByaW9yaXR5KSA9PT0gaW5kZXgpXG4gICAgLm1hcCgocHJpb3JpdHkpID0+XG4gICAgICBzZXR0ZXJzXG4gICAgICAgIC5maWx0ZXIoKHNldHRlcikgPT4gc2V0dGVyLnByaW9yaXR5ID09PSBwcmlvcml0eSlcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIuc3ViUHJpb3JpdHkgLSBhLnN1YlByaW9yaXR5KSxcbiAgICApXG4gICAgLm1hcCgoc2V0dGVyQXJyYXkpID0+IHNldHRlckFycmF5WzBdKTtcblxuICBsZXQgZGF0ZSA9IHRvRGF0ZShyZWZlcmVuY2VEYXRlLCBvcHRpb25zPy5pbik7XG5cbiAgaWYgKGlzTmFOKCtkYXRlKSkgcmV0dXJuIGludmFsaWREYXRlKCk7XG5cbiAgY29uc3QgZmxhZ3MgPSB7fTtcbiAgZm9yIChjb25zdCBzZXR0ZXIgb2YgdW5pcXVlUHJpb3JpdHlTZXR0ZXJzKSB7XG4gICAgaWYgKCFzZXR0ZXIudmFsaWRhdGUoZGF0ZSwgc3ViRm5PcHRpb25zKSkge1xuICAgICAgcmV0dXJuIGludmFsaWREYXRlKCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gc2V0dGVyLnNldChkYXRlLCBmbGFncywgc3ViRm5PcHRpb25zKTtcbiAgICAvLyBSZXN1bHQgaXMgdHVwbGUgKGRhdGUsIGZsYWdzKVxuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAgIGRhdGUgPSByZXN1bHRbMF07XG4gICAgICBPYmplY3QuYXNzaWduKGZsYWdzLCByZXN1bHRbMV0pO1xuICAgICAgLy8gUmVzdWx0IGlzIGRhdGVcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0ZSA9IHJlc3VsdDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGF0ZTtcbn1cblxuZnVuY3Rpb24gY2xlYW5Fc2NhcGVkU3RyaW5nKGlucHV0KSB7XG4gIHJldHVybiBpbnB1dC5tYXRjaChlc2NhcGVkU3RyaW5nUmVnRXhwKVsxXS5yZXBsYWNlKGRvdWJsZVF1b3RlUmVnRXhwLCBcIidcIik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgcGFyc2U7XG4iLCAiaW1wb3J0IHsgaXNWYWxpZCB9IGZyb20gXCIuL2lzVmFsaWQuanNcIjtcbmltcG9ydCB7IHBhcnNlIH0gZnJvbSBcIi4vcGFyc2UuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGlzTWF0Y2h9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpc01hdGNoXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IHZhbGlkYXRlcyB0aGUgZGF0ZSBzdHJpbmcgYWdhaW5zdCBnaXZlbiBmb3JtYXRzXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHRydWUgaWYgZ2l2ZW4gZGF0ZSBpcyBzdHJpbmcgY29ycmVjdCBhZ2FpbnN0IHRoZSBnaXZlbiBmb3JtYXQgZWxzZVxuICogd2lsbCByZXR1cm4gZmFsc2UuXG4gKlxuICogPiBcdTI2QTBcdUZFMEYgUGxlYXNlIG5vdGUgdGhhdCB0aGUgYGZvcm1hdGAgdG9rZW5zIGRpZmZlciBmcm9tIE1vbWVudC5qcyBhbmQgb3RoZXIgbGlicmFyaWVzLlxuICogPiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRcbiAqXG4gKiBUaGUgY2hhcmFjdGVycyBpbiB0aGUgZm9ybWF0IHN0cmluZyB3cmFwcGVkIGJldHdlZW4gdHdvIHNpbmdsZSBxdW90ZXMgY2hhcmFjdGVycyAoJykgYXJlIGVzY2FwZWQuXG4gKiBUd28gc2luZ2xlIHF1b3RlcyBpbiBhIHJvdywgd2hldGhlciBpbnNpZGUgb3Igb3V0c2lkZSBhIHF1b3RlZCBzZXF1ZW5jZSwgcmVwcmVzZW50IGEgJ3JlYWwnIHNpbmdsZSBxdW90ZS5cbiAqXG4gKiBGb3JtYXQgb2YgdGhlIGZvcm1hdCBzdHJpbmcgaXMgYmFzZWQgb24gVW5pY29kZSBUZWNobmljYWwgU3RhbmRhcmQgIzM1OlxuICogaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjM1L3RyMzUtZGF0ZXMuaHRtbCNEYXRlX0ZpZWxkX1N5bWJvbF9UYWJsZVxuICogd2l0aCBhIGZldyBhZGRpdGlvbnMgKHNlZSBub3RlIDUgYmVsb3cgdGhlIHRhYmxlKS5cbiAqXG4gKiBOb3QgYWxsIHRva2VucyBhcmUgY29tcGF0aWJsZS4gQ29tYmluYXRpb25zIHRoYXQgZG9uJ3QgbWFrZSBzZW5zZSBvciBjb3VsZCBsZWFkIHRvIGJ1Z3MgYXJlIHByb2hpYml0ZWRcbiAqIGFuZCB3aWxsIHRocm93IGBSYW5nZUVycm9yYC4gRm9yIGV4YW1wbGUgdXNhZ2Ugb2YgMjQtaG91ciBmb3JtYXQgdG9rZW4gd2l0aCBBTS9QTSB0b2tlbiB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbjpcbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiBpc01hdGNoKCcyMyBBTScsICdISCBhJylcbiAqIC8vPT4gUmFuZ2VFcnJvcjogVGhlIGZvcm1hdCBzdHJpbmcgbXVzdG4ndCBjb250YWluIGBISGAgYW5kIGBhYCBhdCB0aGUgc2FtZSB0aW1lXG4gKiBgYGBcbiAqXG4gKiBTZWUgdGhlIGNvbXBhdGliaWxpdHkgdGFibGU6IGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kL2UvMlBBQ1gtMXZRT1BVM3hVaHBsbGw2ZHlvTW1WVVhIS2xfOENSRHM2X3VlTG1leDNTb3F3aHVvbGt1TjNPMDVsNHJxeDVoMWRLWDhlYjQ2VWwtQ0NTcnEvcHViaHRtbD9naWQ9MCZzaW5nbGU9dHJ1ZVxuICpcbiAqIEFjY2VwdGVkIGZvcm1hdCBzdHJpbmcgcGF0dGVybnM6XG4gKiB8IFVuaXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFByaW9yfCBQYXR0ZXJuIHwgUmVzdWx0IGV4YW1wbGVzICAgICAgICAgICAgICAgICAgIHwgTm90ZXMgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLXxcbiAqIHwgRXJhICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0MCB8IEcuLkdHRyAgfCBBRCwgQkMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBHR0dHICAgIHwgQW5ubyBEb21pbmksIEJlZm9yZSBDaHJpc3QgICAgICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgR0dHR0cgICB8IEEsIEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgQ2FsZW5kYXIgeWVhciAgICAgICAgICAgICAgICAgICB8IDEzMCB8IHkgICAgICAgfCA0NCwgMSwgMTkwMCwgMjAxNywgOTk5OSAgICAgICAgICAgfCA0ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCB5byAgICAgIHwgNDR0aCwgMXN0LCAxOTAwdGgsIDk5OTk5OTl0aCAgICAgIHwgNCw1ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgeXkgICAgICB8IDQ0LCAwMSwgMDAsIDE3ICAgICAgICAgICAgICAgICAgICB8IDQgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHl5eSAgICAgfCAwNDQsIDAwMSwgMTIzLCA5OTkgICAgICAgICAgICAgICAgfCA0ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCB5eXl5ICAgIHwgMDA0NCwgMDAwMSwgMTkwMCwgMjAxNyAgICAgICAgICAgIHwgNCAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgeXl5eXkgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIsNCAgIHxcbiAqIHwgTG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhciAgICAgICB8IDEzMCB8IFkgICAgICAgfCA0NCwgMSwgMTkwMCwgMjAxNywgOTAwMCAgICAgICAgICAgfCA0ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBZbyAgICAgIHwgNDR0aCwgMXN0LCAxOTAwdGgsIDk5OTk5OTl0aCAgICAgIHwgNCw1ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgWVkgICAgICB8IDQ0LCAwMSwgMDAsIDE3ICAgICAgICAgICAgICAgICAgICB8IDQsNiAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFlZWSAgICAgfCAwNDQsIDAwMSwgMTIzLCA5OTkgICAgICAgICAgICAgICAgfCA0ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBZWVlZICAgIHwgMDA0NCwgMDAwMSwgMTkwMCwgMjAxNyAgICAgICAgICAgIHwgNCw2ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgWVlZWVkgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIsNCAgIHxcbiAqIHwgSVNPIHdlZWstbnVtYmVyaW5nIHllYXIgICAgICAgICB8IDEzMCB8IFIgICAgICAgfCAtNDMsIDEsIDE5MDAsIDIwMTcsIDk5OTksIC05OTk5ICAgfCA0LDUgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBSUiAgICAgIHwgLTQzLCAwMSwgMDAsIDE3ICAgICAgICAgICAgICAgICAgIHwgNCw1ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgUlJSICAgICB8IC0wNDMsIDAwMSwgMTIzLCA5OTksIC05OTkgICAgICAgICB8IDQsNSAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFJSUlIgICAgfCAtMDA0MywgMDAwMSwgMjAxNywgOTk5OSwgLTk5OTkgICAgfCA0LDUgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBSUlJSUiAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiw0LDUgfFxuICogfCBFeHRlbmRlZCB5ZWFyICAgICAgICAgICAgICAgICAgIHwgMTMwIHwgdSAgICAgICB8IC00MywgMSwgMTkwMCwgMjAxNywgOTk5OSwgLTk5OSAgICB8IDQgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHV1ICAgICAgfCAtNDMsIDAxLCA5OSwgLTk5ICAgICAgICAgICAgICAgICAgfCA0ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCB1dXUgICAgIHwgLTA0MywgMDAxLCAxMjMsIDk5OSwgLTk5OSAgICAgICAgIHwgNCAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgdXV1dSAgICB8IC0wMDQzLCAwMDAxLCAyMDE3LCA5OTk5LCAtOTk5OSAgICB8IDQgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHV1dXV1ICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyLDQgICB8XG4gKiB8IFF1YXJ0ZXIgKGZvcm1hdHRpbmcpICAgICAgICAgICAgfCAxMjAgfCBRICAgICAgIHwgMSwgMiwgMywgNCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgUW8gICAgICB8IDFzdCwgMm5kLCAzcmQsIDR0aCAgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFFRICAgICAgfCAwMSwgMDIsIDAzLCAwNCAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBRUVEgICAgIHwgUTEsIFEyLCBRMywgUTQgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgUVFRUSAgICB8IDFzdCBxdWFydGVyLCAybmQgcXVhcnRlciwgLi4uICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFFRUVFRICAgfCAxLCAyLCAzLCA0ICAgICAgICAgICAgICAgICAgICAgICAgfCA0ICAgICB8XG4gKiB8IFF1YXJ0ZXIgKHN0YW5kLWFsb25lKSAgICAgICAgICAgfCAxMjAgfCBxICAgICAgIHwgMSwgMiwgMywgNCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgcW8gICAgICB8IDFzdCwgMm5kLCAzcmQsIDR0aCAgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHFxICAgICAgfCAwMSwgMDIsIDAzLCAwNCAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBxcXEgICAgIHwgUTEsIFEyLCBRMywgUTQgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgcXFxcSAgICB8IDFzdCBxdWFydGVyLCAybmQgcXVhcnRlciwgLi4uICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHFxcXFxICAgfCAxLCAyLCAzLCA0ICAgICAgICAgICAgICAgICAgICAgICAgfCAzICAgICB8XG4gKiB8IE1vbnRoIChmb3JtYXR0aW5nKSAgICAgICAgICAgICAgfCAxMTAgfCBNICAgICAgIHwgMSwgMiwgLi4uLCAxMiAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgTW8gICAgICB8IDFzdCwgMm5kLCAuLi4sIDEydGggICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IE1NICAgICAgfCAwMSwgMDIsIC4uLiwgMTIgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBNTU0gICAgIHwgSmFuLCBGZWIsIC4uLiwgRGVjICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgTU1NTSAgICB8IEphbnVhcnksIEZlYnJ1YXJ5LCAuLi4sIERlY2VtYmVyICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IE1NTU1NICAgfCBKLCBGLCAuLi4sIEQgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IE1vbnRoIChzdGFuZC1hbG9uZSkgICAgICAgICAgICAgfCAxMTAgfCBMICAgICAgIHwgMSwgMiwgLi4uLCAxMiAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgTG8gICAgICB8IDFzdCwgMm5kLCAuLi4sIDEydGggICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IExMICAgICAgfCAwMSwgMDIsIC4uLiwgMTIgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBMTEwgICAgIHwgSmFuLCBGZWIsIC4uLiwgRGVjICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgTExMTCAgICB8IEphbnVhcnksIEZlYnJ1YXJ5LCAuLi4sIERlY2VtYmVyICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IExMTExMICAgfCBKLCBGLCAuLi4sIEQgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IExvY2FsIHdlZWsgb2YgeWVhciAgICAgICAgICAgICAgfCAxMDAgfCB3ICAgICAgIHwgMSwgMiwgLi4uLCA1MyAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgd28gICAgICB8IDFzdCwgMm5kLCAuLi4sIDUzdGggICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHd3ICAgICAgfCAwMSwgMDIsIC4uLiwgNTMgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IElTTyB3ZWVrIG9mIHllYXIgICAgICAgICAgICAgICAgfCAxMDAgfCBJICAgICAgIHwgMSwgMiwgLi4uLCA1MyAgICAgICAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgSW8gICAgICB8IDFzdCwgMm5kLCAuLi4sIDUzdGggICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IElJICAgICAgfCAwMSwgMDIsIC4uLiwgNTMgICAgICAgICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8IERheSBvZiBtb250aCAgICAgICAgICAgICAgICAgICAgfCAgOTAgfCBkICAgICAgIHwgMSwgMiwgLi4uLCAzMSAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgZG8gICAgICB8IDFzdCwgMm5kLCAuLi4sIDMxc3QgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGRkICAgICAgfCAwMSwgMDIsIC4uLiwgMzEgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IERheSBvZiB5ZWFyICAgICAgICAgICAgICAgICAgICAgfCAgOTAgfCBEICAgICAgIHwgMSwgMiwgLi4uLCAzNjUsIDM2NiAgICAgICAgICAgICAgIHwgNyAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgRG8gICAgICB8IDFzdCwgMm5kLCAuLi4sIDM2NXRoLCAzNjZ0aCAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IEREICAgICAgfCAwMSwgMDIsIC4uLiwgMzY1LCAzNjYgICAgICAgICAgICAgfCA3ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBEREQgICAgIHwgMDAxLCAwMDIsIC4uLiwgMzY1LCAzNjYgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgRERERCAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgICAgIHxcbiAqIHwgRGF5IG9mIHdlZWsgKGZvcm1hdHRpbmcpICAgICAgICB8ICA5MCB8IEUuLkVFRSAgfCBNb24sIFR1ZSwgV2VkLCAuLi4sIFN1ICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBFRUVFICAgIHwgTW9uZGF5LCBUdWVzZGF5LCAuLi4sIFN1bmRheSAgICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgRUVFRUUgICB8IE0sIFQsIFcsIFQsIEYsIFMsIFMgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IEVFRUVFRSAgfCBNbywgVHUsIFdlLCBUaCwgRnIsIFNhLCBTdSAgICAgICAgfCAgICAgICB8XG4gKiB8IElTTyBkYXkgb2Ygd2VlayAoZm9ybWF0dGluZykgICAgfCAgOTAgfCBpICAgICAgIHwgMSwgMiwgMywgLi4uLCA3ICAgICAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgaW8gICAgICB8IDFzdCwgMm5kLCAuLi4sIDd0aCAgICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGlpICAgICAgfCAwMSwgMDIsIC4uLiwgMDcgICAgICAgICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBpaWkgICAgIHwgTW9uLCBUdWUsIFdlZCwgLi4uLCBTdSAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgaWlpaSAgICB8IE1vbmRheSwgVHVlc2RheSwgLi4uLCBTdW5kYXkgICAgICB8IDIsNSAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGlpaWlpICAgfCBNLCBULCBXLCBULCBGLCBTLCBTICAgICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBpaWlpaWkgIHwgTW8sIFR1LCBXZSwgVGgsIEZyLCBTYSwgU3UgICAgICAgIHwgNSAgICAgfFxuICogfCBMb2NhbCBkYXkgb2Ygd2VlayAoZm9ybWF0dGluZykgIHwgIDkwIHwgZSAgICAgICB8IDIsIDMsIDQsIC4uLiwgMSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGVvICAgICAgfCAybmQsIDNyZCwgLi4uLCAxc3QgICAgICAgICAgICAgICAgfCA1ICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBlZSAgICAgIHwgMDIsIDAzLCAuLi4sIDAxICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgZWVlICAgICB8IE1vbiwgVHVlLCBXZWQsIC4uLiwgU3UgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGVlZWUgICAgfCBNb25kYXksIFR1ZXNkYXksIC4uLiwgU3VuZGF5ICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBlZWVlZSAgIHwgTSwgVCwgVywgVCwgRiwgUywgUyAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgZWVlZWVlICB8IE1vLCBUdSwgV2UsIFRoLCBGciwgU2EsIFN1ICAgICAgICB8ICAgICAgIHxcbiAqIHwgTG9jYWwgZGF5IG9mIHdlZWsgKHN0YW5kLWFsb25lKSB8ICA5MCB8IGMgICAgICAgfCAyLCAzLCA0LCAuLi4sIDEgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBjbyAgICAgIHwgMm5kLCAzcmQsIC4uLiwgMXN0ICAgICAgICAgICAgICAgIHwgNSAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgY2MgICAgICB8IDAyLCAwMywgLi4uLCAwMSAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGNjYyAgICAgfCBNb24sIFR1ZSwgV2VkLCAuLi4sIFN1ICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBjY2NjICAgIHwgTW9uZGF5LCBUdWVzZGF5LCAuLi4sIFN1bmRheSAgICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgY2NjY2MgICB8IE0sIFQsIFcsIFQsIEYsIFMsIFMgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGNjY2NjYyAgfCBNbywgVHUsIFdlLCBUaCwgRnIsIFNhLCBTdSAgICAgICAgfCAgICAgICB8XG4gKiB8IEFNLCBQTSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgODAgfCBhLi5hYWEgIHwgQU0sIFBNICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgYWFhYSAgICB8IGEubS4sIHAubS4gICAgICAgICAgICAgICAgICAgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGFhYWFhICAgfCBhLCBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEFNLCBQTSwgbm9vbiwgbWlkbmlnaHQgICAgICAgICAgfCAgODAgfCBiLi5iYmIgIHwgQU0sIFBNLCBub29uLCBtaWRuaWdodCAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgYmJiYiAgICB8IGEubS4sIHAubS4sIG5vb24sIG1pZG5pZ2h0ICAgICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGJiYmJiICAgfCBhLCBwLCBuLCBtaSAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEZsZXhpYmxlIGRheSBwZXJpb2QgICAgICAgICAgICAgfCAgODAgfCBCLi5CQkIgIHwgYXQgbmlnaHQsIGluIHRoZSBtb3JuaW5nLCAuLi4gICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgQkJCQiAgICB8IGF0IG5pZ2h0LCBpbiB0aGUgbW9ybmluZywgLi4uICAgICB8IDIgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IEJCQkJCICAgfCBhdCBuaWdodCwgaW4gdGhlIG1vcm5pbmcsIC4uLiAgICAgfCAgICAgICB8XG4gKiB8IEhvdXIgWzEtMTJdICAgICAgICAgICAgICAgICAgICAgfCAgNzAgfCBoICAgICAgIHwgMSwgMiwgLi4uLCAxMSwgMTIgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgaG8gICAgICB8IDFzdCwgMm5kLCAuLi4sIDExdGgsIDEydGggICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGhoICAgICAgfCAwMSwgMDIsIC4uLiwgMTEsIDEyICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEhvdXIgWzAtMjNdICAgICAgICAgICAgICAgICAgICAgfCAgNzAgfCBIICAgICAgIHwgMCwgMSwgMiwgLi4uLCAyMyAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgSG8gICAgICB8IDB0aCwgMXN0LCAybmQsIC4uLiwgMjNyZCAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IEhIICAgICAgfCAwMCwgMDEsIDAyLCAuLi4sIDIzICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEhvdXIgWzAtMTFdICAgICAgICAgICAgICAgICAgICAgfCAgNzAgfCBLICAgICAgIHwgMSwgMiwgLi4uLCAxMSwgMCAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgS28gICAgICB8IDFzdCwgMm5kLCAuLi4sIDExdGgsIDB0aCAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IEtLICAgICAgfCAwMSwgMDIsIC4uLiwgMTEsIDAwICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IEhvdXIgWzEtMjRdICAgICAgICAgICAgICAgICAgICAgfCAgNzAgfCBrICAgICAgIHwgMjQsIDEsIDIsIC4uLiwgMjMgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwga28gICAgICB8IDI0dGgsIDFzdCwgMm5kLCAuLi4sIDIzcmQgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IGtrICAgICAgfCAyNCwgMDEsIDAyLCAuLi4sIDIzICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IE1pbnV0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjAgfCBtICAgICAgIHwgMCwgMSwgLi4uLCA1OSAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgbW8gICAgICB8IDB0aCwgMXN0LCAuLi4sIDU5dGggICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IG1tICAgICAgfCAwMCwgMDEsIC4uLiwgNTkgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IFNlY29uZCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTAgfCBzICAgICAgIHwgMCwgMSwgLi4uLCA1OSAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgc28gICAgICB8IDB0aCwgMXN0LCAuLi4sIDU5dGggICAgICAgICAgICAgICB8IDUgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHNzICAgICAgfCAwMCwgMDEsIC4uLiwgNTkgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IFNlY29uZHMgdGltZXN0YW1wICAgICAgICAgICAgICAgfCAgNDAgfCB0ICAgICAgIHwgNTEyOTY5NTIwICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgdHQgICAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgICAgIHxcbiAqIHwgRnJhY3Rpb24gb2Ygc2Vjb25kICAgICAgICAgICAgICB8ICAzMCB8IFMgICAgICAgfCAwLCAxLCAuLi4sIDkgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBTUyAgICAgIHwgMDAsIDAxLCAuLi4sIDk5ICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgU1NTICAgICB8IDAwMCwgMDAxLCAuLi4sIDk5OSAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFNTU1MgICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICAgICB8XG4gKiB8IE1pbGxpc2Vjb25kcyB0aW1lc3RhbXAgICAgICAgICAgfCAgMjAgfCBUICAgICAgIHwgNTEyOTY5NTIwOTAwICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgVFQgICAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgICAgIHxcbiAqIHwgVGltZXpvbmUgKElTTy04NjAxIHcvIFopICAgICAgICB8ICAxMCB8IFggICAgICAgfCAtMDgsICswNTMwLCBaICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBYWCAgICAgIHwgLTA4MDAsICswNTMwLCBaICAgICAgICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgWFhYICAgICB8IC0wODowMCwgKzA1OjMwLCBaICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFhYWFggICAgfCAtMDgwMCwgKzA1MzAsIFosICsxMjM0NTYgICAgICAgICAgfCAyICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBYWFhYWCAgIHwgLTA4OjAwLCArMDU6MzAsIFosICsxMjozNDo1NiAgICAgIHwgICAgICAgfFxuICogfCBUaW1lem9uZSAoSVNPLTg2MDEgdy9vIFopICAgICAgIHwgIDEwIHwgeCAgICAgICB8IC0wOCwgKzA1MzAsICswMCAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHh4ICAgICAgfCAtMDgwMCwgKzA1MzAsICswMDAwICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCB4eHggICAgIHwgLTA4OjAwLCArMDU6MzAsICswMDowMCAgICAgICAgICAgIHwgMiAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgeHh4eCAgICB8IC0wODAwLCArMDUzMCwgKzAwMDAsICsxMjM0NTYgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHh4eHh4ICAgfCAtMDg6MDAsICswNTozMCwgKzAwOjAwLCArMTI6MzQ6NTYgfCAgICAgICB8XG4gKiB8IExvbmcgbG9jYWxpemVkIGRhdGUgICAgICAgICAgICAgfCAgTkEgfCBQICAgICAgIHwgMDUvMjkvMTQ1MyAgICAgICAgICAgICAgICAgICAgICAgIHwgNSw4ICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgUFAgICAgICB8IE1heSAyOSwgMTQ1MyAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFBQUCAgICAgfCBNYXkgMjl0aCwgMTQ1MyAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBQUFBQICAgIHwgU3VuZGF5LCBNYXkgMjl0aCwgMTQ1MyAgICAgICAgICAgIHwgMiw1LDggfFxuICogfCBMb25nIGxvY2FsaXplZCB0aW1lICAgICAgICAgICAgIHwgIE5BIHwgcCAgICAgICB8IDEyOjAwIEFNICAgICAgICAgICAgICAgICAgICAgICAgICB8IDUsOCAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IHBwICAgICAgfCAxMjowMDowMCBBTSAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8IENvbWJpbmF0aW9uIG9mIGRhdGUgYW5kIHRpbWUgICAgfCAgTkEgfCBQcCAgICAgIHwgMDUvMjkvMTQ1MywgMTI6MDAgQU0gICAgICAgICAgICAgIHwgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgUFBwcCAgICB8IE1heSAyOSwgMTQ1MywgMTI6MDA6MDAgQU0gICAgICAgICB8ICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8IFBQUHBwICAgfCBNYXkgMjl0aCwgMTQ1MyBhdCAuLi4gICAgICAgICAgICAgfCAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCBQUFBQcHAgIHwgU3VuZGF5LCBNYXkgMjl0aCwgMTQ1MyBhdCAuLi4gICAgIHwgMiw1LDggfFxuICogTm90ZXM6XG4gKiAxLiBcIkZvcm1hdHRpbmdcIiB1bml0cyAoZS5nLiBmb3JtYXR0aW5nIHF1YXJ0ZXIpIGluIHRoZSBkZWZhdWx0IGVuLVVTIGxvY2FsZVxuICogICAgYXJlIHRoZSBzYW1lIGFzIFwic3RhbmQtYWxvbmVcIiB1bml0cywgYnV0IGFyZSBkaWZmZXJlbnQgaW4gc29tZSBsYW5ndWFnZXMuXG4gKiAgICBcIkZvcm1hdHRpbmdcIiB1bml0cyBhcmUgZGVjbGluZWQgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBvZiB0aGUgbGFuZ3VhZ2VcbiAqICAgIGluIHRoZSBjb250ZXh0IG9mIGEgZGF0ZS4gXCJTdGFuZC1hbG9uZVwiIHVuaXRzIGFyZSBhbHdheXMgbm9taW5hdGl2ZSBzaW5ndWxhci5cbiAqICAgIEluIGBmb3JtYXRgIGZ1bmN0aW9uLCB0aGV5IHdpbGwgcHJvZHVjZSBkaWZmZXJlbnQgcmVzdWx0OlxuICpcbiAqICAgIGBmb3JtYXQobmV3IERhdGUoMjAxNywgMTAsIDYpLCAnZG8gTExMTCcsIHtsb2NhbGU6IGNzfSkgLy89PiAnNi4gbGlzdG9wYWQnYFxuICpcbiAqICAgIGBmb3JtYXQobmV3IERhdGUoMjAxNywgMTAsIDYpLCAnZG8gTU1NTScsIHtsb2NhbGU6IGNzfSkgLy89PiAnNi4gbGlzdG9wYWR1J2BcbiAqXG4gKiAgICBgaXNNYXRjaGAgd2lsbCB0cnkgdG8gbWF0Y2ggYm90aCBmb3JtYXR0aW5nIGFuZCBzdGFuZC1hbG9uZSB1bml0cyBpbnRlcmNoYW5nZWFibHkuXG4gKlxuICogMi4gQW55IHNlcXVlbmNlIG9mIHRoZSBpZGVudGljYWwgbGV0dGVycyBpcyBhIHBhdHRlcm4sIHVubGVzcyBpdCBpcyBlc2NhcGVkIGJ5XG4gKiAgICB0aGUgc2luZ2xlIHF1b3RlIGNoYXJhY3RlcnMgKHNlZSBiZWxvdykuXG4gKiAgICBJZiB0aGUgc2VxdWVuY2UgaXMgbG9uZ2VyIHRoYW4gbGlzdGVkIGluIHRhYmxlOlxuICogICAgLSBmb3IgbnVtZXJpY2FsIHVuaXRzIChgeXl5eXl5eXlgKSBgaXNNYXRjaGAgd2lsbCB0cnkgdG8gbWF0Y2ggYSBudW1iZXJcbiAqICAgICAgYXMgd2lkZSBhcyB0aGUgc2VxdWVuY2VcbiAqICAgIC0gZm9yIHRleHQgdW5pdHMgKGBNTU1NTU1NTWApIGBpc01hdGNoYCB3aWxsIHRyeSB0byBtYXRjaCB0aGUgd2lkZXN0IHZhcmlhdGlvbiBvZiB0aGUgdW5pdC5cbiAqICAgICAgVGhlc2UgdmFyaWF0aW9ucyBhcmUgbWFya2VkIHdpdGggXCIyXCIgaW4gdGhlIGxhc3QgY29sdW1uIG9mIHRoZSB0YWJsZS5cbiAqXG4gKiAzLiBgUVFRUVFgIGFuZCBgcXFxcXFgIGNvdWxkIGJlIG5vdCBzdHJpY3RseSBudW1lcmljYWwgaW4gc29tZSBsb2NhbGVzLlxuICogICAgVGhlc2UgdG9rZW5zIHJlcHJlc2VudCB0aGUgc2hvcnRlc3QgZm9ybSBvZiB0aGUgcXVhcnRlci5cbiAqXG4gKiA0LiBUaGUgbWFpbiBkaWZmZXJlbmNlIGJldHdlZW4gYHlgIGFuZCBgdWAgcGF0dGVybnMgYXJlIEIuQy4geWVhcnM6XG4gKlxuICogICAgfCBZZWFyIHwgYHlgIHwgYHVgIHxcbiAqICAgIHwtLS0tLS18LS0tLS18LS0tLS18XG4gKiAgICB8IEFDIDEgfCAgIDEgfCAgIDEgfFxuICogICAgfCBCQyAxIHwgICAxIHwgICAwIHxcbiAqICAgIHwgQkMgMiB8ICAgMiB8ICAtMSB8XG4gKlxuICogICAgQWxzbyBgeXlgIHdpbGwgdHJ5IHRvIGd1ZXNzIHRoZSBjZW50dXJ5IG9mIHR3byBkaWdpdCB5ZWFyIGJ5IHByb3hpbWl0eSB3aXRoIGByZWZlcmVuY2VEYXRlYDpcbiAqXG4gKiAgICBgaXNNYXRjaCgnNTAnLCAneXknKSAvLz0+IHRydWVgXG4gKlxuICogICAgYGlzTWF0Y2goJzc1JywgJ3l5JykgLy89PiB0cnVlYFxuICpcbiAqICAgIHdoaWxlIGB1dWAgd2lsbCB1c2UgdGhlIHllYXIgYXMgaXM6XG4gKlxuICogICAgYGlzTWF0Y2goJzUwJywgJ3V1JykgLy89PiB0cnVlYFxuICpcbiAqICAgIGBpc01hdGNoKCc3NScsICd1dScpIC8vPT4gdHJ1ZWBcbiAqXG4gKiAgICBUaGUgc2FtZSBkaWZmZXJlbmNlIGlzIHRydWUgZm9yIGxvY2FsIGFuZCBJU08gd2Vlay1udW1iZXJpbmcgeWVhcnMgKGBZYCBhbmQgYFJgKSxcbiAqICAgIGV4Y2VwdCBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFycyBhcmUgZGVwZW5kZW50IG9uIGBvcHRpb25zLndlZWtTdGFydHNPbmBcbiAqICAgIGFuZCBgb3B0aW9ucy5maXJzdFdlZWtDb250YWluc0RhdGVgIChjb21wYXJlIFtzZXRJU09XZWVrWWVhcl0oaHR0cHM6Ly9kYXRlLWZucy5vcmcvZG9jcy9zZXRJU09XZWVrWWVhcilcbiAqICAgIGFuZCBbc2V0V2Vla1llYXJdKGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3Mvc2V0V2Vla1llYXIpKS5cbiAqXG4gKiA1LiBUaGVzZSBwYXR0ZXJucyBhcmUgbm90IGluIHRoZSBVbmljb2RlIFRlY2huaWNhbCBTdGFuZGFyZCAjMzU6XG4gKiAgICAtIGBpYDogSVNPIGRheSBvZiB3ZWVrXG4gKiAgICAtIGBJYDogSVNPIHdlZWsgb2YgeWVhclxuICogICAgLSBgUmA6IElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gKiAgICAtIGBvYDogb3JkaW5hbCBudW1iZXIgbW9kaWZpZXJcbiAqICAgIC0gYFBgOiBsb25nIGxvY2FsaXplZCBkYXRlXG4gKiAgICAtIGBwYDogbG9uZyBsb2NhbGl6ZWQgdGltZVxuICpcbiAqIDYuIGBZWWAgYW5kIGBZWVlZYCB0b2tlbnMgcmVwcmVzZW50IHdlZWstbnVtYmVyaW5nIHllYXJzIGJ1dCB0aGV5IGFyZSBvZnRlbiBjb25mdXNlZCB3aXRoIHllYXJzLlxuICogICAgWW91IHNob3VsZCBlbmFibGUgYG9wdGlvbnMudXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zYCB0byB1c2UgdGhlbS4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kXG4gKlxuICogNy4gYERgIGFuZCBgRERgIHRva2VucyByZXByZXNlbnQgZGF5cyBvZiB0aGUgeWVhciBidXQgdGhleSBhcmUgb2Z0ZW4gY29uZnVzZWQgd2l0aCBkYXlzIG9mIHRoZSBtb250aC5cbiAqICAgIFlvdSBzaG91bGQgZW5hYmxlIGBvcHRpb25zLnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnNgIHRvIHVzZSB0aGVtLiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRcbiAqXG4gKiA4LiBgUCtgIHRva2VucyBkbyBub3QgaGF2ZSBhIGRlZmluZWQgcHJpb3JpdHkgc2luY2UgdGhleSBhcmUgbWVyZWx5IGFsaWFzZXMgdG8gb3RoZXIgdG9rZW5zIGJhc2VkXG4gKiAgICBvbiB0aGUgZ2l2ZW4gbG9jYWxlLlxuICpcbiAqICAgIHVzaW5nIGBlbi1VU2AgbG9jYWxlOiBgUGAgPT4gYE1NL2RkL3l5eXlgXG4gKiAgICB1c2luZyBgZW4tVVNgIGxvY2FsZTogYHBgID0+IGBoaDptbSBhYFxuICogICAgdXNpbmcgYHB0LUJSYCBsb2NhbGU6IGBQYCA9PiBgZGQvTU0veXl5eWBcbiAqICAgIHVzaW5nIGBwdC1CUmAgbG9jYWxlOiBgcGAgPT4gYEhIOm1tYFxuICpcbiAqIFZhbHVlcyB3aWxsIGJlIGNoZWNrZWQgaW4gdGhlIGRlc2NlbmRpbmcgb3JkZXIgb2YgaXRzIHVuaXQncyBwcmlvcml0eS5cbiAqIFVuaXRzIG9mIGFuIGVxdWFsIHByaW9yaXR5IG92ZXJ3cml0ZSBlYWNoIG90aGVyIGluIHRoZSBvcmRlciBvZiBhcHBlYXJhbmNlLlxuICpcbiAqIElmIG5vIHZhbHVlcyBvZiBoaWdoZXIgcHJpb3JpdHkgYXJlIG1hdGNoZWQgKGUuZy4gd2hlbiBtYXRjaGluZyBzdHJpbmcgJ0phbnVhcnkgMXN0JyB3aXRob3V0IGEgeWVhciksXG4gKiB0aGUgdmFsdWVzIHdpbGwgYmUgdGFrZW4gZnJvbSB0b2RheSdzIHVzaW5nIGBuZXcgRGF0ZSgpYCBkYXRlIHdoaWNoIHdvcmtzIGFzIGEgY29udGV4dCBvZiBwYXJzaW5nLlxuICpcbiAqIFRoZSByZXN1bHQgbWF5IHZhcnkgYnkgbG9jYWxlLlxuICpcbiAqIElmIGBmb3JtYXRTdHJpbmdgIG1hdGNoZXMgd2l0aCBgZGF0ZVN0cmluZ2AgYnV0IGRvZXMgbm90IHByb3ZpZGVzIHRva2VucywgYHJlZmVyZW5jZURhdGVgIHdpbGwgYmUgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIGRhdGVTdHIgLSBUaGUgZGF0ZSBzdHJpbmcgdG8gdmVyaWZ5XG4gKiBAcGFyYW0gZm9ybWF0IC0gVGhlIHN0cmluZyBvZiB0b2tlbnNcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqICAgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kXG4gKiAgIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZFxuICpcbiAqIEByZXR1cm5zIElzIGZvcm1hdCBzdHJpbmcgYSBtYXRjaCBmb3IgZGF0ZSBzdHJpbmc/XG4gKlxuICogQHRocm93cyBgb3B0aW9ucy5sb2NhbGVgIG11c3QgY29udGFpbiBgbWF0Y2hgIHByb3BlcnR5XG4gKiBAdGhyb3dzIHVzZSBgeXl5eWAgaW5zdGVhZCBvZiBgWVlZWWAgZm9yIGZvcm1hdHRpbmcgeWVhcnM7IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZFxuICogQHRocm93cyB1c2UgYHl5YCBpbnN0ZWFkIG9mIGBZWWAgZm9yIGZvcm1hdHRpbmcgeWVhcnM7IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZFxuICogQHRocm93cyB1c2UgYGRgIGluc3RlYWQgb2YgYERgIGZvciBmb3JtYXR0aW5nIGRheXMgb2YgdGhlIG1vbnRoOyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRcbiAqIEB0aHJvd3MgdXNlIGBkZGAgaW5zdGVhZCBvZiBgRERgIGZvciBmb3JtYXR0aW5nIGRheXMgb2YgdGhlIG1vbnRoOyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VuaWNvZGVUb2tlbnMubWRcbiAqIEB0aHJvd3MgZm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIE1hdGNoIDExIEZlYnJ1YXJ5IDIwMTQgZnJvbSBtaWRkbGUtZW5kaWFuIGZvcm1hdDpcbiAqIGNvbnN0IHJlc3VsdCA9IGlzTWF0Y2goJzAyLzExLzIwMTQnLCAnTU0vZGQveXl5eScpXG4gKiAvLz0+IHRydWVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTWF0Y2ggMjh0aCBvZiBGZWJydWFyeSBpbiBFc3BlcmFudG8gbG9jYWxlIGluIHRoZSBjb250ZXh0IG9mIDIwMTAgeWVhcjpcbiAqIGltcG9ydCBlbyBmcm9tICdkYXRlLWZucy9sb2NhbGUvZW8nXG4gKiBjb25zdCByZXN1bHQgPSBpc01hdGNoKCcyOC1hIGRlIGZlYnJ1YXJvJywgXCJkbyAnZGUnIE1NTU1cIiwge1xuICogICBsb2NhbGU6IGVvXG4gKiB9KVxuICogLy89PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc01hdGNoKGRhdGVTdHIsIGZvcm1hdFN0ciwgb3B0aW9ucykge1xuICByZXR1cm4gaXNWYWxpZChwYXJzZShkYXRlU3RyLCBmb3JtYXRTdHIsIG5ldyBEYXRlKCksIG9wdGlvbnMpKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc01hdGNoO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgaXNNb25kYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpc01vbmRheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIGRhdGUgTW9uZGF5P1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIGRhdGUgTW9uZGF5P1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIE1vbmRheVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAyMiBTZXB0ZW1iZXIgMjAxNCBNb25kYXk/XG4gKiBjb25zdCByZXN1bHQgPSBpc01vbmRheShuZXcgRGF0ZSgyMDE0LCA4LCAyMikpXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTW9uZGF5KGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbikuZ2V0RGF5KCkgPT09IDE7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNNb25kYXk7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgaXNQYXN0XG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiBkYXRlIGluIHRoZSBwYXN0P1xuICogQHB1cmUgZmFsc2VcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIElzIHRoZSBnaXZlbiBkYXRlIGluIHRoZSBwYXN0P1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gY2hlY2tcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF0ZSBpcyBpbiB0aGUgcGFzdFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0b2RheSBpcyA2IE9jdG9iZXIgMjAxNCwgaXMgMiBKdWx5IDIwMTQgaW4gdGhlIHBhc3Q/XG4gKiBjb25zdCByZXN1bHQgPSBpc1Bhc3QobmV3IERhdGUoMjAxNCwgNiwgMikpXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGFzdChkYXRlKSB7XG4gIHJldHVybiArdG9EYXRlKGRhdGUpIDwgRGF0ZS5ub3coKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc1Bhc3Q7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdGFydE9mSG91cn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN0YXJ0T2ZIb3VyXG4gKiBAY2F0ZWdvcnkgSG91ciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGFuIGhvdXIgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBzdGFydCBvZiBhbiBob3VyIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBzdGFydCBvZiBhbiBob3VyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBzdGFydCBvZiBhbiBob3VyIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZkhvdXIobmV3IERhdGUoMjAxNCwgOCwgMiwgMTEsIDU1KSlcbiAqIC8vPT4gVHVlIFNlcCAwMiAyMDE0IDExOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydE9mSG91cihkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgX2RhdGUuc2V0TWludXRlcygwLCAwLCAwKTtcbiAgcmV0dXJuIF9kYXRlO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHN0YXJ0T2ZIb3VyO1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVEYXRlcy5qc1wiO1xuaW1wb3J0IHsgc3RhcnRPZkhvdXIgfSBmcm9tIFwiLi9zdGFydE9mSG91ci5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgaXNTYW1lSG91cn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGlzU2FtZUhvdXJcbiAqIEBjYXRlZ29yeSBIb3VyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgaG91ciAoYW5kIHNhbWUgZGF5KT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgaG91ciAoYW5kIHNhbWUgZGF5KT9cbiAqXG4gKiBAcGFyYW0gZGF0ZUxlZnQgLSBUaGUgZmlyc3QgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIGRhdGVSaWdodCAtIFRoZSBzZWNvbmQgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGRhdGVzIGFyZSBpbiB0aGUgc2FtZSBob3VyIChhbmQgc2FtZSBkYXkpXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSA0IFNlcHRlbWJlciAyMDE0IDA2OjAwOjAwIGFuZCA0IFNlcHRlbWJlciAwNjozMDowMCBpbiB0aGUgc2FtZSBob3VyP1xuICogY29uc3QgcmVzdWx0ID0gaXNTYW1lSG91cihuZXcgRGF0ZSgyMDE0LCA4LCA0LCA2LCAwKSwgbmV3IERhdGUoMjAxNCwgOCwgNCwgNiwgMzApKVxuICogLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSA0IFNlcHRlbWJlciAyMDE0IDA2OjAwOjAwIGFuZCA1IFNlcHRlbWJlciAwNjowMDowMCBpbiB0aGUgc2FtZSBob3VyP1xuICogY29uc3QgcmVzdWx0ID0gaXNTYW1lSG91cihuZXcgRGF0ZSgyMDE0LCA4LCA0LCA2LCAwKSwgbmV3IERhdGUoMjAxNCwgOCwgNSwgNiwgMCkpXG4gKiAvLz0+IGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVIb3VyKGRhdGVMZWZ0LCBkYXRlUmlnaHQsIG9wdGlvbnMpIHtcbiAgY29uc3QgW2RhdGVMZWZ0XywgZGF0ZVJpZ2h0X10gPSBub3JtYWxpemVEYXRlcyhcbiAgICBvcHRpb25zPy5pbixcbiAgICBkYXRlTGVmdCxcbiAgICBkYXRlUmlnaHQsXG4gICk7XG4gIHJldHVybiArc3RhcnRPZkhvdXIoZGF0ZUxlZnRfKSA9PT0gK3N0YXJ0T2ZIb3VyKGRhdGVSaWdodF8pO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzU2FtZUhvdXI7XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mV2VlayB9IGZyb20gXCIuL3N0YXJ0T2ZXZWVrLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBpc1NhbWVXZWVrfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgaXNTYW1lV2Vla1xuICogQGNhdGVnb3J5IFdlZWsgSGVscGVyc1xuICogQHN1bW1hcnkgQXJlIHRoZSBnaXZlbiBkYXRlcyBpbiB0aGUgc2FtZSB3ZWVrIChhbmQgbW9udGggYW5kIHllYXIpP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQXJlIHRoZSBnaXZlbiBkYXRlcyBpbiB0aGUgc2FtZSB3ZWVrIChhbmQgbW9udGggYW5kIHllYXIpP1xuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgZmlyc3QgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIHNlY29uZCBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF0ZXMgYXJlIGluIHRoZSBzYW1lIHdlZWsgKGFuZCBtb250aCBhbmQgeWVhcilcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQXJlIDMxIEF1Z3VzdCAyMDE0IGFuZCA0IFNlcHRlbWJlciAyMDE0IGluIHRoZSBzYW1lIHdlZWs/XG4gKiBjb25zdCByZXN1bHQgPSBpc1NhbWVXZWVrKG5ldyBEYXRlKDIwMTQsIDcsIDMxKSwgbmV3IERhdGUoMjAxNCwgOCwgNCkpXG4gKiAvLz0+IHRydWVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgd2VlayBzdGFydHMgd2l0aCBNb25kYXksXG4gKiAvLyBhcmUgMzEgQXVndXN0IDIwMTQgYW5kIDQgU2VwdGVtYmVyIDIwMTQgaW4gdGhlIHNhbWUgd2Vlaz9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzU2FtZVdlZWsobmV3IERhdGUoMjAxNCwgNywgMzEpLCBuZXcgRGF0ZSgyMDE0LCA4LCA0KSwge1xuICogICB3ZWVrU3RhcnRzT246IDFcbiAqIH0pXG4gKiAvLz0+IGZhbHNlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSAxIEphbnVhcnkgMjAxNCBhbmQgMSBKYW51YXJ5IDIwMTUgaW4gdGhlIHNhbWUgd2Vlaz9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzU2FtZVdlZWsobmV3IERhdGUoMjAxNCwgMCwgMSksIG5ldyBEYXRlKDIwMTUsIDAsIDEpKVxuICogLy89PiBmYWxzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTYW1lV2VlayhsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IFtsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV9dID0gbm9ybWFsaXplRGF0ZXMoXG4gICAgb3B0aW9ucz8uaW4sXG4gICAgbGF0ZXJEYXRlLFxuICAgIGVhcmxpZXJEYXRlLFxuICApO1xuICByZXR1cm4gKFxuICAgICtzdGFydE9mV2VlayhsYXRlckRhdGVfLCBvcHRpb25zKSA9PT0gK3N0YXJ0T2ZXZWVrKGVhcmxpZXJEYXRlXywgb3B0aW9ucylcbiAgKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc1NhbWVXZWVrO1xuIiwgImltcG9ydCB7IGlzU2FtZVdlZWsgfSBmcm9tIFwiLi9pc1NhbWVXZWVrLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBpc1NhbWVJU09XZWVrfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgaXNTYW1lSVNPV2Vla1xuICogQGNhdGVnb3J5IElTTyBXZWVrIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgSVNPIHdlZWsgKGFuZCB5ZWFyKT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgSVNPIHdlZWsgKGFuZCB5ZWFyKT9cbiAqXG4gKiBJU08gd2Vlay1udW1iZXJpbmcgeWVhcjogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gKlxuICogQHBhcmFtIGxhdGVyRGF0ZSAtIFRoZSBmaXJzdCBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gZWFybGllckRhdGUgLSBUaGUgc2Vjb25kIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlcyBhcmUgaW4gdGhlIHNhbWUgSVNPIHdlZWsgKGFuZCB5ZWFyKVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgMSBTZXB0ZW1iZXIgMjAxNCBhbmQgNyBTZXB0ZW1iZXIgMjAxNCBpbiB0aGUgc2FtZSBJU08gd2Vlaz9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzU2FtZUlTT1dlZWsobmV3IERhdGUoMjAxNCwgOCwgMSksIG5ldyBEYXRlKDIwMTQsIDgsIDcpKVxuICogLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSAxIFNlcHRlbWJlciAyMDE0IGFuZCAxIFNlcHRlbWJlciAyMDE1IGluIHRoZSBzYW1lIElTTyB3ZWVrP1xuICogY29uc3QgcmVzdWx0ID0gaXNTYW1lSVNPV2VlayhuZXcgRGF0ZSgyMDE0LCA4LCAxKSwgbmV3IERhdGUoMjAxNSwgOCwgMSkpXG4gKiAvLz0+IGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVJU09XZWVrKGxhdGVyRGF0ZSwgZWFybGllckRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGlzU2FtZVdlZWsobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSwgeyAuLi5vcHRpb25zLCB3ZWVrU3RhcnRzT246IDEgfSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNTYW1lSVNPV2VlaztcbiIsICJpbXBvcnQgeyBzdGFydE9mSVNPV2Vla1llYXIgfSBmcm9tIFwiLi9zdGFydE9mSVNPV2Vla1llYXIuanNcIjtcblxuaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBpc1NhbWVJU09XZWVrWWVhcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGlzU2FtZUlTT1dlZWtZZWFyXG4gKiBAY2F0ZWdvcnkgSVNPIFdlZWstTnVtYmVyaW5nIFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgQXJlIHRoZSBnaXZlbiBkYXRlcyBpbiB0aGUgc2FtZSBJU08gd2Vlay1udW1iZXJpbmcgeWVhcj9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgSVNPIHdlZWstbnVtYmVyaW5nIHllYXI/XG4gKlxuICogSVNPIHdlZWstbnVtYmVyaW5nIHllYXI6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgZmlyc3QgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIHNlY29uZCBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF0ZXMgYXJlIGluIHRoZSBzYW1lIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSAyOSBEZWNlbWJlciAyMDAzIGFuZCAyIEphbnVhcnkgMjAwNSBpbiB0aGUgc2FtZSBJU08gd2Vlay1udW1iZXJpbmcgeWVhcj9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzU2FtZUlTT1dlZWtZZWFyKG5ldyBEYXRlKDIwMDMsIDExLCAyOSksIG5ldyBEYXRlKDIwMDUsIDAsIDIpKVxuICogLy89PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVJU09XZWVrWWVhcihsYXRlckRhdGUsIGVhcmxpZXJEYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IFtsYXRlckRhdGVfLCBlYXJsaWVyRGF0ZV9dID0gbm9ybWFsaXplRGF0ZXMoXG4gICAgb3B0aW9ucz8uaW4sXG4gICAgbGF0ZXJEYXRlLFxuICAgIGVhcmxpZXJEYXRlLFxuICApO1xuICByZXR1cm4gK3N0YXJ0T2ZJU09XZWVrWWVhcihsYXRlckRhdGVfKSA9PT0gK3N0YXJ0T2ZJU09XZWVrWWVhcihlYXJsaWVyRGF0ZV8pO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzU2FtZUlTT1dlZWtZZWFyO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc3RhcnRPZk1pbnV0ZX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN0YXJ0T2ZNaW51dGVcbiAqIEBjYXRlZ29yeSBNaW51dGUgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBzdGFydCBvZiBhIG1pbnV0ZSBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgbWludXRlIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBzdGFydCBvZiBhIG1pbnV0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgc3RhcnQgb2YgYSBtaW51dGUgZm9yIDEgRGVjZW1iZXIgMjAxNCAyMjoxNTo0NS40MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdGFydE9mTWludXRlKG5ldyBEYXRlKDIwMTQsIDExLCAxLCAyMiwgMTUsIDQ1LCA0MDApKVxuICogLy89PiBNb24gRGVjIDAxIDIwMTQgMjI6MTU6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0T2ZNaW51dGUoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBkYXRlXyA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGRhdGVfLnNldFNlY29uZHMoMCwgMCk7XG4gIHJldHVybiBkYXRlXztcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdGFydE9mTWludXRlO1xuIiwgImltcG9ydCB7IHN0YXJ0T2ZNaW51dGUgfSBmcm9tIFwiLi9zdGFydE9mTWludXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgaXNTYW1lTWludXRlXG4gKiBAY2F0ZWdvcnkgTWludXRlIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgbWludXRlIChhbmQgaG91ciBhbmQgZGF5KT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgbWludXRlIChhbmQgaG91ciBhbmQgZGF5KT9cbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGZpcnN0IGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBzZWNvbmQgZGF0ZSB0byBjaGVja1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlcyBhcmUgaW4gdGhlIHNhbWUgbWludXRlIChhbmQgaG91ciBhbmQgZGF5KVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgNCBTZXB0ZW1iZXIgMjAxNCAwNjozMDowMCBhbmQgNCBTZXB0ZW1iZXIgMjAxNCAwNjozMDoxNSBpbiB0aGUgc2FtZSBtaW51dGU/XG4gKiBjb25zdCByZXN1bHQgPSBpc1NhbWVNaW51dGUoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDgsIDQsIDYsIDMwKSxcbiAqICAgbmV3IERhdGUoMjAxNCwgOCwgNCwgNiwgMzAsIDE1KVxuICogKVxuICogLy89PiB0cnVlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSA0IFNlcHRlbWJlciAyMDE0IDA2OjMwOjAwIGFuZCA1IFNlcHRlbWJlciAyMDE0IDA2OjMwOjAwIGluIHRoZSBzYW1lIG1pbnV0ZT9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzU2FtZU1pbnV0ZShcbiAqICAgbmV3IERhdGUoMjAxNCwgOCwgNCwgNiwgMzApLFxuICogICBuZXcgRGF0ZSgyMDE0LCA4LCA1LCA2LCAzMClcbiAqIClcbiAqIC8vPT4gZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZU1pbnV0ZShsYXRlckRhdGUsIGVhcmxpZXJEYXRlKSB7XG4gIHJldHVybiArc3RhcnRPZk1pbnV0ZShsYXRlckRhdGUpID09PSArc3RhcnRPZk1pbnV0ZShlYXJsaWVyRGF0ZSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNTYW1lTWludXRlO1xuIiwgImltcG9ydCB7IG5vcm1hbGl6ZURhdGVzIH0gZnJvbSBcIi4vX2xpYi9ub3JtYWxpemVEYXRlcy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgaXNTYW1lTW9udGh9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpc1NhbWVNb250aFxuICogQGNhdGVnb3J5IE1vbnRoIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgbW9udGggKGFuZCB5ZWFyKT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgbW9udGggKGFuZCB5ZWFyKT9cbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGZpcnN0IGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBzZWNvbmQgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGRhdGVzIGFyZSBpbiB0aGUgc2FtZSBtb250aCAoYW5kIHllYXIpXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSAyIFNlcHRlbWJlciAyMDE0IGFuZCAyNSBTZXB0ZW1iZXIgMjAxNCBpbiB0aGUgc2FtZSBtb250aD9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzU2FtZU1vbnRoKG5ldyBEYXRlKDIwMTQsIDgsIDIpLCBuZXcgRGF0ZSgyMDE0LCA4LCAyNSkpXG4gKiAvLz0+IHRydWVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQXJlIDIgU2VwdGVtYmVyIDIwMTQgYW5kIDI1IFNlcHRlbWJlciAyMDE1IGluIHRoZSBzYW1lIG1vbnRoP1xuICogY29uc3QgcmVzdWx0ID0gaXNTYW1lTW9udGgobmV3IERhdGUoMjAxNCwgOCwgMiksIG5ldyBEYXRlKDIwMTUsIDgsIDI1KSlcbiAqIC8vPT4gZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZU1vbnRoKGxhdGVyRGF0ZSwgZWFybGllckRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgW2xhdGVyRGF0ZV8sIGVhcmxpZXJEYXRlX10gPSBub3JtYWxpemVEYXRlcyhcbiAgICBvcHRpb25zPy5pbixcbiAgICBsYXRlckRhdGUsXG4gICAgZWFybGllckRhdGUsXG4gICk7XG4gIHJldHVybiAoXG4gICAgbGF0ZXJEYXRlXy5nZXRGdWxsWWVhcigpID09PSBlYXJsaWVyRGF0ZV8uZ2V0RnVsbFllYXIoKSAmJlxuICAgIGxhdGVyRGF0ZV8uZ2V0TW9udGgoKSA9PT0gZWFybGllckRhdGVfLmdldE1vbnRoKClcbiAgKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc1NhbWVNb250aDtcbiIsICJpbXBvcnQgeyBub3JtYWxpemVEYXRlcyB9IGZyb20gXCIuL19saWIvbm9ybWFsaXplRGF0ZXMuanNcIjtcbmltcG9ydCB7IHN0YXJ0T2ZRdWFydGVyIH0gZnJvbSBcIi4vc3RhcnRPZlF1YXJ0ZXIuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGlzU2FtZVF1YXJ0ZXJ9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpc1NhbWVRdWFydGVyXG4gKiBAY2F0ZWdvcnkgUXVhcnRlciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBcmUgdGhlIGdpdmVuIGRhdGVzIGluIHRoZSBzYW1lIHF1YXJ0ZXIgKGFuZCB5ZWFyKT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgcXVhcnRlciAoYW5kIHllYXIpP1xuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgZmlyc3QgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIHNlY29uZCBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF0ZXMgYXJlIGluIHRoZSBzYW1lIHF1YXJ0ZXIgKGFuZCB5ZWFyKVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgMSBKYW51YXJ5IDIwMTQgYW5kIDggTWFyY2ggMjAxNCBpbiB0aGUgc2FtZSBxdWFydGVyP1xuICogY29uc3QgcmVzdWx0ID0gaXNTYW1lUXVhcnRlcihuZXcgRGF0ZSgyMDE0LCAwLCAxKSwgbmV3IERhdGUoMjAxNCwgMiwgOCkpXG4gKiAvLz0+IHRydWVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQXJlIDEgSmFudWFyeSAyMDE0IGFuZCAxIEphbnVhcnkgMjAxNSBpbiB0aGUgc2FtZSBxdWFydGVyP1xuICogY29uc3QgcmVzdWx0ID0gaXNTYW1lUXVhcnRlcihuZXcgRGF0ZSgyMDE0LCAwLCAxKSwgbmV3IERhdGUoMjAxNSwgMCwgMSkpXG4gKiAvLz0+IGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVRdWFydGVyKGxhdGVyRGF0ZSwgZWFybGllckRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgW2RhdGVMZWZ0XywgZGF0ZVJpZ2h0X10gPSBub3JtYWxpemVEYXRlcyhcbiAgICBvcHRpb25zPy5pbixcbiAgICBsYXRlckRhdGUsXG4gICAgZWFybGllckRhdGUsXG4gICk7XG4gIHJldHVybiArc3RhcnRPZlF1YXJ0ZXIoZGF0ZUxlZnRfKSA9PT0gK3N0YXJ0T2ZRdWFydGVyKGRhdGVSaWdodF8pO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzU2FtZVF1YXJ0ZXI7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdGFydE9mU2Vjb25kfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3RhcnRPZlNlY29uZFxuICogQGNhdGVnb3J5IFNlY29uZCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgc2Vjb25kIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgc3RhcnQgb2YgYSBzZWNvbmQgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBzdGFydCBvZiBhIHNlY29uZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgc3RhcnQgb2YgYSBzZWNvbmQgZm9yIDEgRGVjZW1iZXIgMjAxNCAyMjoxNTo0NS40MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdGFydE9mU2Vjb25kKG5ldyBEYXRlKDIwMTQsIDExLCAxLCAyMiwgMTUsIDQ1LCA0MDApKVxuICogLy89PiBNb24gRGVjIDAxIDIwMTQgMjI6MTU6NDUuMDAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydE9mU2Vjb25kKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgZGF0ZV8gPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBkYXRlXy5zZXRNaWxsaXNlY29uZHMoMCk7XG4gIHJldHVybiBkYXRlXztcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdGFydE9mU2Vjb25kO1xuIiwgImltcG9ydCB7IHN0YXJ0T2ZTZWNvbmQgfSBmcm9tIFwiLi9zdGFydE9mU2Vjb25kLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgaXNTYW1lU2Vjb25kXG4gKiBAY2F0ZWdvcnkgU2Vjb25kIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgc2Vjb25kIChhbmQgaG91ciBhbmQgZGF5KT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFyZSB0aGUgZ2l2ZW4gZGF0ZXMgaW4gdGhlIHNhbWUgc2Vjb25kIChhbmQgaG91ciBhbmQgZGF5KT9cbiAqXG4gKiBAcGFyYW0gbGF0ZXJEYXRlIC0gVGhlIGZpcnN0IGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBlYXJsaWVyRGF0ZSAtIFRoZSBzZWNvbmQgZGF0ZSB0byBjaGVja1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlcyBhcmUgaW4gdGhlIHNhbWUgc2Vjb25kIChhbmQgaG91ciBhbmQgZGF5KVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBcmUgNCBTZXB0ZW1iZXIgMjAxNCAwNjozMDoxNS4wMDAgYW5kIDQgU2VwdGVtYmVyIDIwMTQgMDY6MzAuMTUuNTAwIGluIHRoZSBzYW1lIHNlY29uZD9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzU2FtZVNlY29uZChcbiAqICAgbmV3IERhdGUoMjAxNCwgOCwgNCwgNiwgMzAsIDE1KSxcbiAqICAgbmV3IERhdGUoMjAxNCwgOCwgNCwgNiwgMzAsIDE1LCA1MDApXG4gKiApXG4gKiAvLz0+IHRydWVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQXJlIDQgU2VwdGVtYmVyIDIwMTQgMDY6MDA6MTUuMDAwIGFuZCA0IFNlcHRlbWJlciAyMDE0IDA2OjAxLjE1LjAwMCBpbiB0aGUgc2FtZSBzZWNvbmQ/XG4gKiBjb25zdCByZXN1bHQgPSBpc1NhbWVTZWNvbmQoXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDgsIDQsIDYsIDAsIDE1KSxcbiAqICAgbmV3IERhdGUoMjAxNCwgOCwgNCwgNiwgMSwgMTUpXG4gKiApXG4gKiAvLz0+IGZhbHNlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFyZSA0IFNlcHRlbWJlciAyMDE0IDA2OjAwOjE1LjAwMCBhbmQgNSBTZXB0ZW1iZXIgMjAxNCAwNjowMC4xNS4wMDAgaW4gdGhlIHNhbWUgc2Vjb25kP1xuICogY29uc3QgcmVzdWx0ID0gaXNTYW1lU2Vjb25kKFxuICogICBuZXcgRGF0ZSgyMDE0LCA4LCA0LCA2LCAwLCAxNSksXG4gKiAgIG5ldyBEYXRlKDIwMTQsIDgsIDUsIDYsIDAsIDE1KVxuICogKVxuICogLy89PiBmYWxzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTYW1lU2Vjb25kKGxhdGVyRGF0ZSwgZWFybGllckRhdGUpIHtcbiAgcmV0dXJuICtzdGFydE9mU2Vjb25kKGxhdGVyRGF0ZSkgPT09ICtzdGFydE9mU2Vjb25kKGVhcmxpZXJEYXRlKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc1NhbWVTZWNvbmQ7XG4iLCAiaW1wb3J0IHsgbm9ybWFsaXplRGF0ZXMgfSBmcm9tIFwiLi9fbGliL25vcm1hbGl6ZURhdGVzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBpc1NhbWVZZWFyfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgaXNTYW1lWWVhclxuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgQXJlIHRoZSBnaXZlbiBkYXRlcyBpbiB0aGUgc2FtZSB5ZWFyP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQXJlIHRoZSBnaXZlbiBkYXRlcyBpbiB0aGUgc2FtZSB5ZWFyP1xuICpcbiAqIEBwYXJhbSBsYXRlckRhdGUgLSBUaGUgZmlyc3QgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIGVhcmxpZXJEYXRlIC0gVGhlIHNlY29uZCBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF0ZXMgYXJlIGluIHRoZSBzYW1lIHllYXJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQXJlIDIgU2VwdGVtYmVyIDIwMTQgYW5kIDI1IFNlcHRlbWJlciAyMDE0IGluIHRoZSBzYW1lIHllYXI/XG4gKiBjb25zdCByZXN1bHQgPSBpc1NhbWVZZWFyKG5ldyBEYXRlKDIwMTQsIDgsIDIpLCBuZXcgRGF0ZSgyMDE0LCA4LCAyNSkpXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZVllYXIobGF0ZXJEYXRlLCBlYXJsaWVyRGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBbbGF0ZXJEYXRlXywgZWFybGllckRhdGVfXSA9IG5vcm1hbGl6ZURhdGVzKFxuICAgIG9wdGlvbnM/LmluLFxuICAgIGxhdGVyRGF0ZSxcbiAgICBlYXJsaWVyRGF0ZSxcbiAgKTtcbiAgcmV0dXJuIGxhdGVyRGF0ZV8uZ2V0RnVsbFllYXIoKSA9PT0gZWFybGllckRhdGVfLmdldEZ1bGxZZWFyKCk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNTYW1lWWVhcjtcbiIsICJpbXBvcnQgeyBjb25zdHJ1Y3ROb3cgfSBmcm9tIFwiLi9jb25zdHJ1Y3ROb3cuanNcIjtcbmltcG9ydCB7IGlzU2FtZUhvdXIgfSBmcm9tIFwiLi9pc1NhbWVIb3VyLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGlzVGhpc0hvdXJ9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpc1RoaXNIb3VyXG4gKiBAY2F0ZWdvcnkgSG91ciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZ2l2ZW4gZGF0ZSBpbiB0aGUgc2FtZSBob3VyIGFzIHRoZSBjdXJyZW50IGRhdGU/XG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIGRhdGUgaW4gdGhlIHNhbWUgaG91ciBhcyB0aGUgY3VycmVudCBkYXRlP1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIGluIHRoaXMgaG91clxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiBub3cgaXMgMjUgU2VwdGVtYmVyIDIwMTQgMTg6MzA6MTUuNTAwLFxuICogLy8gaXMgMjUgU2VwdGVtYmVyIDIwMTQgMTg6MDA6MDAgaW4gdGhpcyBob3VyP1xuICogY29uc3QgcmVzdWx0ID0gaXNUaGlzSG91cihuZXcgRGF0ZSgyMDE0LCA4LCAyNSwgMTgpKVxuICogLy89PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RoaXNIb3VyKGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGlzU2FtZUhvdXIoXG4gICAgdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKSxcbiAgICBjb25zdHJ1Y3ROb3cob3B0aW9ucz8uaW4gfHwgZGF0ZSksXG4gICk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNUaGlzSG91cjtcbiIsICJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgY29uc3RydWN0Tm93IH0gZnJvbSBcIi4vY29uc3RydWN0Tm93LmpzXCI7XG5pbXBvcnQgeyBpc1NhbWVJU09XZWVrIH0gZnJvbSBcIi4vaXNTYW1lSVNPV2Vlay5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgaXNUaGlzSVNPV2Vla30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGlzVGhpc0lTT1dlZWtcbiAqIEBjYXRlZ29yeSBJU08gV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZ2l2ZW4gZGF0ZSBpbiB0aGUgc2FtZSBJU08gd2VlayBhcyB0aGUgY3VycmVudCBkYXRlP1xuICogQHB1cmUgZmFsc2VcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIElzIHRoZSBnaXZlbiBkYXRlIGluIHRoZSBzYW1lIElTTyB3ZWVrIGFzIHRoZSBjdXJyZW50IGRhdGU/XG4gKlxuICogSVNPIHdlZWstbnVtYmVyaW5nIHllYXI6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIGluIHRoaXMgSVNPIHdlZWtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgdG9kYXkgaXMgMjUgU2VwdGVtYmVyIDIwMTQsIGlzIDIyIFNlcHRlbWJlciAyMDE0IGluIHRoaXMgSVNPIHdlZWs/XG4gKiBjb25zdCByZXN1bHQgPSBpc1RoaXNJU09XZWVrKG5ldyBEYXRlKDIwMTQsIDgsIDIyKSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUaGlzSVNPV2VlayhkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBpc1NhbWVJU09XZWVrKFxuICAgIGNvbnN0cnVjdEZyb20ob3B0aW9ucz8uaW4gfHwgZGF0ZSwgZGF0ZSksXG4gICAgY29uc3RydWN0Tm93KG9wdGlvbnM/LmluIHx8IGRhdGUpLFxuICApO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzVGhpc0lTT1dlZWs7XG4iLCAiaW1wb3J0IHsgY29uc3RydWN0Tm93IH0gZnJvbSBcIi4vY29uc3RydWN0Tm93LmpzXCI7XG5pbXBvcnQgeyBpc1NhbWVNaW51dGUgfSBmcm9tIFwiLi9pc1NhbWVNaW51dGUuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBpc1RoaXNNaW51dGVcbiAqIEBjYXRlZ29yeSBNaW51dGUgSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIGRhdGUgaW4gdGhlIHNhbWUgbWludXRlIGFzIHRoZSBjdXJyZW50IGRhdGU/XG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIGRhdGUgaW4gdGhlIHNhbWUgbWludXRlIGFzIHRoZSBjdXJyZW50IGRhdGU/XG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVja1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIGluIHRoaXMgbWludXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIG5vdyBpcyAyNSBTZXB0ZW1iZXIgMjAxNCAxODozMDoxNS41MDAsXG4gKiAvLyBpcyAyNSBTZXB0ZW1iZXIgMjAxNCAxODozMDowMCBpbiB0aGlzIG1pbnV0ZT9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzVGhpc01pbnV0ZShuZXcgRGF0ZSgyMDE0LCA4LCAyNSwgMTgsIDMwKSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBpc1RoaXNNaW51dGUoZGF0ZSkge1xuICByZXR1cm4gaXNTYW1lTWludXRlKGRhdGUsIGNvbnN0cnVjdE5vdyhkYXRlKSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNUaGlzTWludXRlO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3ROb3cgfSBmcm9tIFwiLi9jb25zdHJ1Y3ROb3cuanNcIjtcbmltcG9ydCB7IGlzU2FtZU1vbnRoIH0gZnJvbSBcIi4vaXNTYW1lTW9udGguanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGlzVGhpc01vbnRofSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgaXNUaGlzTW9udGhcbiAqIEBjYXRlZ29yeSBNb250aCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZ2l2ZW4gZGF0ZSBpbiB0aGUgc2FtZSBtb250aCBhcyB0aGUgY3VycmVudCBkYXRlP1xuICogQHB1cmUgZmFsc2VcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIElzIHRoZSBnaXZlbiBkYXRlIGluIHRoZSBzYW1lIG1vbnRoIGFzIHRoZSBjdXJyZW50IGRhdGU/XG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGRhdGUgaXMgaW4gdGhpcyBtb250aFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0b2RheSBpcyAyNSBTZXB0ZW1iZXIgMjAxNCwgaXMgMTUgU2VwdGVtYmVyIDIwMTQgaW4gdGhpcyBtb250aD9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzVGhpc01vbnRoKG5ldyBEYXRlKDIwMTQsIDgsIDE1KSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUaGlzTW9udGgoZGF0ZSwgb3B0aW9ucykge1xuICByZXR1cm4gaXNTYW1lTW9udGgoXG4gICAgY29uc3RydWN0RnJvbShvcHRpb25zPy5pbiB8fCBkYXRlLCBkYXRlKSxcbiAgICBjb25zdHJ1Y3ROb3cob3B0aW9ucz8uaW4gfHwgZGF0ZSksXG4gICk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNUaGlzTW9udGg7XG4iLCAiaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuL2NvbnN0cnVjdEZyb20uanNcIjtcbmltcG9ydCB7IGNvbnN0cnVjdE5vdyB9IGZyb20gXCIuL2NvbnN0cnVjdE5vdy5qc1wiO1xuaW1wb3J0IHsgaXNTYW1lUXVhcnRlciB9IGZyb20gXCIuL2lzU2FtZVF1YXJ0ZXIuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGlzVGhpc1F1YXJ0ZXJ9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpc1RoaXNRdWFydGVyXG4gKiBAY2F0ZWdvcnkgUXVhcnRlciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZ2l2ZW4gZGF0ZSBpbiB0aGUgc2FtZSBxdWFydGVyIGFzIHRoZSBjdXJyZW50IGRhdGU/XG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIGRhdGUgaW4gdGhlIHNhbWUgcXVhcnRlciBhcyB0aGUgY3VycmVudCBkYXRlP1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIGluIHRoaXMgcXVhcnRlclxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0b2RheSBpcyAyNSBTZXB0ZW1iZXIgMjAxNCwgaXMgMiBKdWx5IDIwMTQgaW4gdGhpcyBxdWFydGVyP1xuICogY29uc3QgcmVzdWx0ID0gaXNUaGlzUXVhcnRlcihuZXcgRGF0ZSgyMDE0LCA2LCAyKSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUaGlzUXVhcnRlcihkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBpc1NhbWVRdWFydGVyKFxuICAgIGNvbnN0cnVjdEZyb20ob3B0aW9ucz8uaW4gfHwgZGF0ZSwgZGF0ZSksXG4gICAgY29uc3RydWN0Tm93KG9wdGlvbnM/LmluIHx8IGRhdGUpLFxuICApO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzVGhpc1F1YXJ0ZXI7XG4iLCAiaW1wb3J0IHsgY29uc3RydWN0Tm93IH0gZnJvbSBcIi4vY29uc3RydWN0Tm93LmpzXCI7XG5pbXBvcnQgeyBpc1NhbWVTZWNvbmQgfSBmcm9tIFwiLi9pc1NhbWVTZWNvbmQuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBpc1RoaXNTZWNvbmRcbiAqIEBjYXRlZ29yeSBTZWNvbmQgSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIGRhdGUgaW4gdGhlIHNhbWUgc2Vjb25kIGFzIHRoZSBjdXJyZW50IGRhdGU/XG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIGRhdGUgaW4gdGhlIHNhbWUgc2Vjb25kIGFzIHRoZSBjdXJyZW50IGRhdGU/XG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVja1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIGluIHRoaXMgc2Vjb25kXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIG5vdyBpcyAyNSBTZXB0ZW1iZXIgMjAxNCAxODozMDoxNS41MDAsXG4gKiAvLyBpcyAyNSBTZXB0ZW1iZXIgMjAxNCAxODozMDoxNS4wMDAgaW4gdGhpcyBzZWNvbmQ/XG4gKiBjb25zdCByZXN1bHQgPSBpc1RoaXNTZWNvbmQobmV3IERhdGUoMjAxNCwgOCwgMjUsIDE4LCAzMCwgMTUpKVxuICogLy89PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RoaXNTZWNvbmQoZGF0ZSkge1xuICByZXR1cm4gaXNTYW1lU2Vjb25kKGRhdGUsIGNvbnN0cnVjdE5vdyhkYXRlKSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNUaGlzU2Vjb25kO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3ROb3cgfSBmcm9tIFwiLi9jb25zdHJ1Y3ROb3cuanNcIjtcbmltcG9ydCB7IGlzU2FtZVdlZWsgfSBmcm9tIFwiLi9pc1NhbWVXZWVrLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBpc1RoaXNXZWVrfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgaXNUaGlzV2Vla1xuICogQGNhdGVnb3J5IFdlZWsgSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIGRhdGUgaW4gdGhlIHNhbWUgd2VlayBhcyB0aGUgY3VycmVudCBkYXRlP1xuICogQHB1cmUgZmFsc2VcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIElzIHRoZSBnaXZlbiBkYXRlIGluIHRoZSBzYW1lIHdlZWsgYXMgdGhlIGN1cnJlbnQgZGF0ZT9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGRhdGUgaXMgaW4gdGhpcyB3ZWVrXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRvZGF5IGlzIDI1IFNlcHRlbWJlciAyMDE0LCBpcyAyMSBTZXB0ZW1iZXIgMjAxNCBpbiB0aGlzIHdlZWs/XG4gKiBjb25zdCByZXN1bHQgPSBpc1RoaXNXZWVrKG5ldyBEYXRlKDIwMTQsIDgsIDIxKSlcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0b2RheSBpcyAyNSBTZXB0ZW1iZXIgMjAxNCBhbmQgd2VlayBzdGFydHMgd2l0aCBNb25kYXlcbiAqIC8vIGlzIDIxIFNlcHRlbWJlciAyMDE0IGluIHRoaXMgd2Vlaz9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzVGhpc1dlZWsobmV3IERhdGUoMjAxNCwgOCwgMjEpLCB7IHdlZWtTdGFydHNPbjogMSB9KVxuICogLy89PiBmYWxzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUaGlzV2VlayhkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBpc1NhbWVXZWVrKFxuICAgIGNvbnN0cnVjdEZyb20ob3B0aW9ucz8uaW4gfHwgZGF0ZSwgZGF0ZSksXG4gICAgY29uc3RydWN0Tm93KG9wdGlvbnM/LmluIHx8IGRhdGUpLFxuICAgIG9wdGlvbnMsXG4gICk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNUaGlzV2VlaztcbiIsICJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgY29uc3RydWN0Tm93IH0gZnJvbSBcIi4vY29uc3RydWN0Tm93LmpzXCI7XG5pbXBvcnQgeyBpc1NhbWVZZWFyIH0gZnJvbSBcIi4vaXNTYW1lWWVhci5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgaXNUaGlzWWVhcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGlzVGhpc1llYXJcbiAqIEBjYXRlZ29yeSBZZWFyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiBkYXRlIGluIHRoZSBzYW1lIHllYXIgYXMgdGhlIGN1cnJlbnQgZGF0ZT9cbiAqIEBwdXJlIGZhbHNlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZ2l2ZW4gZGF0ZSBpbiB0aGUgc2FtZSB5ZWFyIGFzIHRoZSBjdXJyZW50IGRhdGU/XG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGRhdGUgaXMgaW4gdGhpcyB5ZWFyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRvZGF5IGlzIDI1IFNlcHRlbWJlciAyMDE0LCBpcyAyIEp1bHkgMjAxNCBpbiB0aGlzIHllYXI/XG4gKiBjb25zdCByZXN1bHQgPSBpc1RoaXNZZWFyKG5ldyBEYXRlKDIwMTQsIDYsIDIpKVxuICogLy89PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RoaXNZZWFyKGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGlzU2FtZVllYXIoXG4gICAgY29uc3RydWN0RnJvbShvcHRpb25zPy5pbiB8fCBkYXRlLCBkYXRlKSxcbiAgICBjb25zdHJ1Y3ROb3cob3B0aW9ucz8uaW4gfHwgZGF0ZSksXG4gICk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNUaGlzWWVhcjtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGlzVGh1cnNkYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpc1RodXJzZGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZ2l2ZW4gZGF0ZSBUaHVyc2RheT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIElzIHRoZSBnaXZlbiBkYXRlIFRodXJzZGF5P1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIFRodXJzZGF5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElzIDI1IFNlcHRlbWJlciAyMDE0IFRodXJzZGF5P1xuICogY29uc3QgcmVzdWx0ID0gaXNUaHVyc2RheShuZXcgRGF0ZSgyMDE0LCA4LCAyNSkpXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGh1cnNkYXkoZGF0ZSwgb3B0aW9ucykge1xuICByZXR1cm4gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKS5nZXREYXkoKSA9PT0gNDtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc1RodXJzZGF5O1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3ROb3cgfSBmcm9tIFwiLi9jb25zdHJ1Y3ROb3cuanNcIjtcbmltcG9ydCB7IGlzU2FtZURheSB9IGZyb20gXCIuL2lzU2FtZURheS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgaXNUb2RheX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGlzVG9kYXlcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIGRhdGUgdG9kYXk/XG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIGRhdGUgdG9kYXk/XG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGRhdGUgaXMgdG9kYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgdG9kYXkgaXMgNiBPY3RvYmVyIDIwMTQsIGlzIDYgT2N0b2JlciAxNDowMDowMCB0b2RheT9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzVG9kYXkobmV3IERhdGUoMjAxNCwgOSwgNiwgMTQsIDApKVxuICogLy89PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RvZGF5KGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGlzU2FtZURheShcbiAgICBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsIGRhdGUpLFxuICAgIGNvbnN0cnVjdE5vdyhvcHRpb25zPy5pbiB8fCBkYXRlKSxcbiAgKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc1RvZGF5O1xuIiwgImltcG9ydCB7IGFkZERheXMgfSBmcm9tIFwiLi9hZGREYXlzLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3ROb3cgfSBmcm9tIFwiLi9jb25zdHJ1Y3ROb3cuanNcIjtcbmltcG9ydCB7IGlzU2FtZURheSB9IGZyb20gXCIuL2lzU2FtZURheS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgaXNUb21vcnJvd30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGlzVG9tb3Jyb3dcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIGRhdGUgdG9tb3Jyb3c/XG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIGRhdGUgdG9tb3Jyb3c/XG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGRhdGUgaXMgdG9tb3Jyb3dcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgdG9kYXkgaXMgNiBPY3RvYmVyIDIwMTQsIGlzIDcgT2N0b2JlciAxNDowMDowMCB0b21vcnJvdz9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzVG9tb3Jyb3cobmV3IERhdGUoMjAxNCwgOSwgNywgMTQsIDApKVxuICogLy89PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RvbW9ycm93KGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGlzU2FtZURheShcbiAgICBkYXRlLFxuICAgIGFkZERheXMoY29uc3RydWN0Tm93KG9wdGlvbnM/LmluIHx8IGRhdGUpLCAxKSxcbiAgICBvcHRpb25zLFxuICApO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzVG9tb3Jyb3c7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBpc1R1ZXNkYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBpc1R1ZXNkYXlcbiAqIEBjYXRlZ29yeSBXZWVrZGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiBkYXRlIFR1ZXNkYXk/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZ2l2ZW4gZGF0ZSBUdWVzZGF5P1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIFR1ZXNkYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSXMgMjMgU2VwdGVtYmVyIDIwMTQgVHVlc2RheT9cbiAqIGNvbnN0IHJlc3VsdCA9IGlzVHVlc2RheShuZXcgRGF0ZSgyMDE0LCA4LCAyMykpXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVHVlc2RheShkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pLmdldERheSgpID09PSAyO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzVHVlc2RheTtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGlzV2VkbmVzZGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgaXNXZWRuZXNkYXlcbiAqIEBjYXRlZ29yeSBXZWVrZGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IElzIHRoZSBnaXZlbiBkYXRlIFdlZG5lc2RheT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIElzIHRoZSBnaXZlbiBkYXRlIFdlZG5lc2RheT9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF0ZSBpcyBXZWRuZXNkYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSXMgMjQgU2VwdGVtYmVyIDIwMTQgV2VkbmVzZGF5P1xuICogY29uc3QgcmVzdWx0ID0gaXNXZWRuZXNkYXkobmV3IERhdGUoMjAxNCwgOCwgMjQpKVxuICogLy89PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1dlZG5lc2RheShkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pLmdldERheSgpID09PSAzO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzV2VkbmVzZGF5O1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgaXNXaXRoaW5JbnRlcnZhbH0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGlzV2l0aGluSW50ZXJ2YWxcbiAqIEBjYXRlZ29yeSBJbnRlcnZhbCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBJcyB0aGUgZ2l2ZW4gZGF0ZSB3aXRoaW4gdGhlIGludGVydmFsP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGdpdmVuIGRhdGUgd2l0aGluIHRoZSBpbnRlcnZhbD8gKEluY2x1ZGluZyBzdGFydCBhbmQgZW5kLilcbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gaW50ZXJ2YWwgLSBUaGUgaW50ZXJ2YWwgdG8gY2hlY2tcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIHdpdGhpbiB0aGUgaW50ZXJ2YWxcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIHRoZSBkYXRlIHdpdGhpbiB0aGUgaW50ZXJ2YWw6XG4gKiBpc1dpdGhpbkludGVydmFsKG5ldyBEYXRlKDIwMTQsIDAsIDMpLCB7XG4gKiAgIHN0YXJ0OiBuZXcgRGF0ZSgyMDE0LCAwLCAxKSxcbiAqICAgZW5kOiBuZXcgRGF0ZSgyMDE0LCAwLCA3KVxuICogfSlcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIHRoZSBkYXRlIG91dHNpZGUgb2YgdGhlIGludGVydmFsOlxuICogaXNXaXRoaW5JbnRlcnZhbChuZXcgRGF0ZSgyMDE0LCAwLCAxMCksIHtcbiAqICAgc3RhcnQ6IG5ldyBEYXRlKDIwMTQsIDAsIDEpLFxuICogICBlbmQ6IG5ldyBEYXRlKDIwMTQsIDAsIDcpXG4gKiB9KVxuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIGRhdGUgZXF1YWwgdG8gdGhlIGludGVydmFsIHN0YXJ0OlxuICogaXNXaXRoaW5JbnRlcnZhbChkYXRlLCB7IHN0YXJ0LCBlbmQ6IGRhdGUgfSlcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRm9yIGRhdGUgZXF1YWwgdG8gdGhlIGludGVydmFsIGVuZDpcbiAqIGlzV2l0aGluSW50ZXJ2YWwoZGF0ZSwgeyBzdGFydDogZGF0ZSwgZW5kIH0pXG4gKiAvLyA9PiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1dpdGhpbkludGVydmFsKGRhdGUsIGludGVydmFsLCBvcHRpb25zKSB7XG4gIGNvbnN0IHRpbWUgPSArdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgW3N0YXJ0VGltZSwgZW5kVGltZV0gPSBbXG4gICAgK3RvRGF0ZShpbnRlcnZhbC5zdGFydCwgb3B0aW9ucz8uaW4pLFxuICAgICt0b0RhdGUoaW50ZXJ2YWwuZW5kLCBvcHRpb25zPy5pbiksXG4gIF0uc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuXG4gIHJldHVybiB0aW1lID49IHN0YXJ0VGltZSAmJiB0aW1lIDw9IGVuZFRpbWU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgaXNXaXRoaW5JbnRlcnZhbDtcbiIsICJpbXBvcnQgeyBhZGREYXlzIH0gZnJvbSBcIi4vYWRkRGF5cy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc3ViRGF5c30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN1YkRheXNcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgU3VidHJhY3QgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgZGF5cyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIGRheXMgdG8gYmUgc3VidHJhY3RlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBkYXlzIHN1YnRyYWN0ZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3VidHJhY3QgMTAgZGF5cyBmcm9tIDEgU2VwdGVtYmVyIDIwMTQ6XG4gKiBjb25zdCByZXN1bHQgPSBzdWJEYXlzKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCAxMClcbiAqIC8vPT4gRnJpIEF1ZyAyMiAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJEYXlzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICByZXR1cm4gYWRkRGF5cyhkYXRlLCAtYW1vdW50LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdWJEYXlzO1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3ROb3cgfSBmcm9tIFwiLi9jb25zdHJ1Y3ROb3cuanNcIjtcbmltcG9ydCB7IGlzU2FtZURheSB9IGZyb20gXCIuL2lzU2FtZURheS5qc1wiO1xuaW1wb3J0IHsgc3ViRGF5cyB9IGZyb20gXCIuL3N1YkRheXMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGlzWWVzdGVyZGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgaXNZZXN0ZXJkYXlcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGdpdmVuIGRhdGUgeWVzdGVyZGF5P1xuICogQHB1cmUgZmFsc2VcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIElzIHRoZSBnaXZlbiBkYXRlIHllc3RlcmRheT9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZGF0ZSBpcyB5ZXN0ZXJkYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSWYgdG9kYXkgaXMgNiBPY3RvYmVyIDIwMTQsIGlzIDUgT2N0b2JlciAxNDowMDowMCB5ZXN0ZXJkYXk/XG4gKiBjb25zdCByZXN1bHQgPSBpc1llc3RlcmRheShuZXcgRGF0ZSgyMDE0LCA5LCA1LCAxNCwgMCkpXG4gKiAvLz0+IHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzWWVzdGVyZGF5KGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGlzU2FtZURheShcbiAgICBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsIGRhdGUpLFxuICAgIHN1YkRheXMoY29uc3RydWN0Tm93KG9wdGlvbnM/LmluIHx8IGRhdGUpLCAxKSxcbiAgKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc1llc3RlcmRheTtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGxhc3REYXlPZkRlY2FkZX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGxhc3REYXlPZkRlY2FkZVxuICogQGNhdGVnb3J5IERlY2FkZSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGxhc3QgZGF5IG9mIGEgZGVjYWRlIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgbGFzdCBkYXkgb2YgYSBkZWNhZGUgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB1c2luZyBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlOyBpbmZlcnJlZCBmcm9tIGFyZ3VtZW50cyBvciBzcGVjaWZpZWQgYnkgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGxhc3QgZGF5IG9mIGEgZGVjYWRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBsYXN0IGRheSBvZiBhIGRlY2FkZSBmb3IgMjEgRGVjZW1iZXIgMjAxMiAyMToxMjowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IGxhc3REYXlPZkRlY2FkZShuZXcgRGF0ZSgyMDEyLCAxMSwgMjEsIDIxLCAxMiwgMDApKVxuICogLy89PiBXZWQgRGVjIDMxIDIwMTkgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxhc3REYXlPZkRlY2FkZShkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgeWVhciA9IF9kYXRlLmdldEZ1bGxZZWFyKCk7XG4gIGNvbnN0IGRlY2FkZSA9IDkgKyBNYXRoLmZsb29yKHllYXIgLyAxMCkgKiAxMDtcbiAgX2RhdGUuc2V0RnVsbFllYXIoZGVjYWRlICsgMSwgMCwgMCk7XG4gIF9kYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICByZXR1cm4gdG9EYXRlKF9kYXRlLCBvcHRpb25zPy5pbik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgbGFzdERheU9mRGVjYWRlO1xuIiwgImltcG9ydCB7IGdldERlZmF1bHRPcHRpb25zIH0gZnJvbSBcIi4vX2xpYi9kZWZhdWx0T3B0aW9ucy5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBsYXN0RGF5T2ZXZWVrfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgbGFzdERheU9mV2Vla1xuICogQGNhdGVnb3J5IFdlZWsgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBsYXN0IGRheSBvZiBhIHdlZWsgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBsYXN0IGRheSBvZiBhIHdlZWsgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZSB1bmxlc3MgYSBjb250ZXh0IGlzIHNwZWNpZmllZC5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGxhc3QgZGF5IG9mIGEgd2Vla1xuICovXG5leHBvcnQgZnVuY3Rpb24gbGFzdERheU9mV2VlayhkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IGRlZmF1bHRPcHRpb25zID0gZ2V0RGVmYXVsdE9wdGlvbnMoKTtcbiAgY29uc3Qgd2Vla1N0YXJ0c09uID1cbiAgICBvcHRpb25zPy53ZWVrU3RhcnRzT24gPz9cbiAgICBvcHRpb25zPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbiA/P1xuICAgIGRlZmF1bHRPcHRpb25zLndlZWtTdGFydHNPbiA/P1xuICAgIGRlZmF1bHRPcHRpb25zLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uID8/XG4gICAgMDtcblxuICBjb25zdCBfZGF0ZSA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGNvbnN0IGRheSA9IF9kYXRlLmdldERheSgpO1xuICBjb25zdCBkaWZmID0gKGRheSA8IHdlZWtTdGFydHNPbiA/IC03IDogMCkgKyA2IC0gKGRheSAtIHdlZWtTdGFydHNPbik7XG5cbiAgX2RhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIF9kYXRlLnNldERhdGUoX2RhdGUuZ2V0RGF0ZSgpICsgZGlmZik7XG5cbiAgcmV0dXJuIF9kYXRlO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGxhc3REYXlPZldlZWs7XG4iLCAiaW1wb3J0IHsgbGFzdERheU9mV2VlayB9IGZyb20gXCIuL2xhc3REYXlPZldlZWsuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGxhc3REYXlPZklTT1dlZWt9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBsYXN0RGF5T2ZJU09XZWVrXG4gKiBAY2F0ZWdvcnkgSVNPIFdlZWsgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBsYXN0IGRheSBvZiBhbiBJU08gd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGxhc3QgZGF5IG9mIGFuIElTTyB3ZWVrIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogSVNPIHdlZWstbnVtYmVyaW5nIHllYXI6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgRGF0ZSB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbVVRDRGF0ZV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBsYXN0IGRheSBvZiBhbiBJU08gd2Vla1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgbGFzdCBkYXkgb2YgYW4gSVNPIHdlZWsgZm9yIDIgU2VwdGVtYmVyIDIwMTQgMTE6NTU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBsYXN0RGF5T2ZJU09XZWVrKG5ldyBEYXRlKDIwMTQsIDgsIDIsIDExLCA1NSwgMCkpXG4gKiAvLz0+IFN1biBTZXAgMDcgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gbGFzdERheU9mSVNPV2VlayhkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBsYXN0RGF5T2ZXZWVrKGRhdGUsIHsgLi4ub3B0aW9ucywgd2Vla1N0YXJ0c09uOiAxIH0pO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGxhc3REYXlPZklTT1dlZWs7XG4iLCAiaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuL2NvbnN0cnVjdEZyb20uanNcIjtcbmltcG9ydCB7IGdldElTT1dlZWtZZWFyIH0gZnJvbSBcIi4vZ2V0SVNPV2Vla1llYXIuanNcIjtcbmltcG9ydCB7IHN0YXJ0T2ZJU09XZWVrIH0gZnJvbSBcIi4vc3RhcnRPZklTT1dlZWsuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIGxhc3REYXlPZklTT1dlZWtZZWFyfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgbGFzdERheU9mSVNPV2Vla1llYXJcbiAqIEBjYXRlZ29yeSBJU08gV2Vlay1OdW1iZXJpbmcgWWVhciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIGxhc3QgZGF5IG9mIGFuIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybiB0aGUgbGFzdCBkYXkgb2YgYW4gSVNPIHdlZWstbnVtYmVyaW5nIHllYXIsXG4gKiB3aGljaCBhbHdheXMgc3RhcnRzIDMgZGF5cyBiZWZvcmUgdGhlIHllYXIncyBmaXJzdCBUaHVyc2RheS5cbiAqIFRoZSByZXN1bHQgd2lsbCBiZSBpbiB0aGUgbG9jYWwgdGltZXpvbmUuXG4gKlxuICogSVNPIHdlZWstbnVtYmVyaW5nIHllYXI6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgZW5kIG9mIGFuIElTTyB3ZWVrLW51bWJlcmluZyB5ZWFyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBsYXN0IGRheSBvZiBhbiBJU08gd2Vlay1udW1iZXJpbmcgeWVhciBmb3IgMiBKdWx5IDIwMDU6XG4gKiBjb25zdCByZXN1bHQgPSBsYXN0RGF5T2ZJU09XZWVrWWVhcihuZXcgRGF0ZSgyMDA1LCA2LCAyKSlcbiAqIC8vPT4gU3VuIEphbiAwMSAyMDA2IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYXN0RGF5T2ZJU09XZWVrWWVhcihkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IHllYXIgPSBnZXRJU09XZWVrWWVhcihkYXRlLCBvcHRpb25zKTtcbiAgY29uc3QgZm91cnRoT2ZKYW51YXJ5ID0gY29uc3RydWN0RnJvbShvcHRpb25zPy5pbiB8fCBkYXRlLCAwKTtcbiAgZm91cnRoT2ZKYW51YXJ5LnNldEZ1bGxZZWFyKHllYXIgKyAxLCAwLCA0KTtcbiAgZm91cnRoT2ZKYW51YXJ5LnNldEhvdXJzKDAsIDAsIDAsIDApO1xuXG4gIGNvbnN0IGRhdGVfID0gc3RhcnRPZklTT1dlZWsoZm91cnRoT2ZKYW51YXJ5LCBvcHRpb25zKTtcbiAgZGF0ZV8uc2V0RGF0ZShkYXRlXy5nZXREYXRlKCkgLSAxKTtcbiAgcmV0dXJuIGRhdGVfO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGxhc3REYXlPZklTT1dlZWtZZWFyO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgbGFzdERheU9mUXVhcnRlcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIGxhc3REYXlPZlF1YXJ0ZXJcbiAqIEBjYXRlZ29yeSBRdWFydGVyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgbGFzdCBkYXkgb2YgYSB5ZWFyIHF1YXJ0ZXIgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBsYXN0IGRheSBvZiBhIHllYXIgcXVhcnRlciBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBvcmlnaW5hbCBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGxhc3QgZGF5IG9mIGEgcXVhcnRlclxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgbGFzdCBkYXkgb2YgYSBxdWFydGVyIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gbGFzdERheU9mUXVhcnRlcihuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDApKVxuICogLy89PiBUdWUgU2VwIDMwIDIwMTQgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxhc3REYXlPZlF1YXJ0ZXIoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBkYXRlXyA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGNvbnN0IGN1cnJlbnRNb250aCA9IGRhdGVfLmdldE1vbnRoKCk7XG4gIGNvbnN0IG1vbnRoID0gY3VycmVudE1vbnRoIC0gKGN1cnJlbnRNb250aCAlIDMpICsgMztcbiAgZGF0ZV8uc2V0TW9udGgobW9udGgsIDApO1xuICBkYXRlXy5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGRhdGVfO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGxhc3REYXlPZlF1YXJ0ZXI7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBsYXN0RGF5T2ZZZWFyfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgbGFzdERheU9mWWVhclxuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBsYXN0IGRheSBvZiBhIHllYXIgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBsYXN0IGRheSBvZiBhIHllYXIgZm9yIHRoZSBnaXZlbiBkYXRlLlxuICogVGhlIHJlc3VsdCB3aWxsIGJlIGluIHRoZSBsb2NhbCB0aW1lem9uZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIGxhc3QgZGF5IG9mIGEgeWVhclxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBUaGUgbGFzdCBkYXkgb2YgYSB5ZWFyIGZvciAyIFNlcHRlbWJlciAyMDE0IDExOjU1OjAwOlxuICogY29uc3QgcmVzdWx0ID0gbGFzdERheU9mWWVhcihuZXcgRGF0ZSgyMDE0LCA4LCAyLCAxMSwgNTUsIDAwKSlcbiAqIC8vPT4gV2VkIERlYyAzMSAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYXN0RGF5T2ZZZWFyKGRhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3QgZGF0ZV8gPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBjb25zdCB5ZWFyID0gZGF0ZV8uZ2V0RnVsbFllYXIoKTtcbiAgZGF0ZV8uc2V0RnVsbFllYXIoeWVhciArIDEsIDAsIDApO1xuICBkYXRlXy5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGRhdGVfO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGxhc3REYXlPZlllYXI7XG4iLCAiaW1wb3J0IHsgbGlnaHRGb3JtYXR0ZXJzIH0gZnJvbSBcIi4vX2xpYi9mb3JtYXQvbGlnaHRGb3JtYXR0ZXJzLmpzXCI7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSBcIi4vaXNWYWxpZC5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8vIFJleHBvcnRzIG9mIGludGVybmFsIGZvciBsaWJyYXJpZXMgdG8gdXNlLlxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvaXNzdWVzLzM2MzgjaXNzdWVjb21tZW50LTE4NzcwODI4NzRcbmV4cG9ydCB7IGxpZ2h0Rm9ybWF0dGVycyB9O1xuXG4vLyBUaGlzIFJlZ0V4cCBjb25zaXN0cyBvZiB0aHJlZSBwYXJ0cyBzZXBhcmF0ZWQgYnkgYHxgOlxuLy8gLSAoXFx3KVxcMSogbWF0Y2hlcyBhbnkgc2VxdWVuY2VzIG9mIHRoZSBzYW1lIGxldHRlclxuLy8gLSAnJyBtYXRjaGVzIHR3byBxdW90ZSBjaGFyYWN0ZXJzIGluIGEgcm93XG4vLyAtICcoJyd8W14nXSkrKCd8JCkgbWF0Y2hlcyBhbnl0aGluZyBzdXJyb3VuZGVkIGJ5IHR3byBxdW90ZSBjaGFyYWN0ZXJzICgnKSxcbi8vICAgZXhjZXB0IGEgc2luZ2xlIHF1b3RlIHN5bWJvbCwgd2hpY2ggZW5kcyB0aGUgc2VxdWVuY2UuXG4vLyAgIFR3byBxdW90ZSBjaGFyYWN0ZXJzIGRvIG5vdCBlbmQgdGhlIHNlcXVlbmNlLlxuLy8gICBJZiB0aGVyZSBpcyBubyBtYXRjaGluZyBzaW5nbGUgcXVvdGVcbi8vICAgdGhlbiB0aGUgc2VxdWVuY2Ugd2lsbCBjb250aW51ZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuXG4vLyAtIC4gbWF0Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3RlciB1bm1hdGNoZWQgYnkgcHJldmlvdXMgcGFydHMgb2YgdGhlIFJlZ0V4cHNcbmNvbnN0IGZvcm1hdHRpbmdUb2tlbnNSZWdFeHAgPSAvKFxcdylcXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nO1xuXG5jb25zdCBlc2NhcGVkU3RyaW5nUmVnRXhwID0gL14nKFteXSo/KSc/JC87XG5jb25zdCBkb3VibGVRdW90ZVJlZ0V4cCA9IC8nJy9nO1xuY29uc3QgdW5lc2NhcGVkTGF0aW5DaGFyYWN0ZXJSZWdFeHAgPSAvW2EtekEtWl0vO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBsaWdodEZvcm1hdFxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBGb3JtYXQgdGhlIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlIHN0cmluZyBpbiB0aGUgZ2l2ZW4gZm9ybWF0LiBVbmxpa2UgYGZvcm1hdGAsXG4gKiBgbGlnaHRGb3JtYXRgIGRvZXNuJ3QgdXNlIGxvY2FsZXMgYW5kIG91dHB1dHMgZGF0ZSB1c2luZyB0aGUgbW9zdCBwb3B1bGFyIHRva2Vucy5cbiAqXG4gKiA+IFx1MjZBMFx1RkUwRiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBgbGlnaHRGb3JtYXRgIHRva2VucyBkaWZmZXIgZnJvbSBNb21lbnQuanMgYW5kIG90aGVyIGxpYnJhcmllcy5cbiAqID4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kXG4gKlxuICogVGhlIGNoYXJhY3RlcnMgd3JhcHBlZCBiZXR3ZWVuIHR3byBzaW5nbGUgcXVvdGVzIGNoYXJhY3RlcnMgKCcpIGFyZSBlc2NhcGVkLlxuICogVHdvIHNpbmdsZSBxdW90ZXMgaW4gYSByb3csIHdoZXRoZXIgaW5zaWRlIG9yIG91dHNpZGUgYSBxdW90ZWQgc2VxdWVuY2UsIHJlcHJlc2VudCBhICdyZWFsJyBzaW5nbGUgcXVvdGUuXG4gKlxuICogRm9ybWF0IG9mIHRoZSBzdHJpbmcgaXMgYmFzZWQgb24gVW5pY29kZSBUZWNobmljYWwgU3RhbmRhcmQgIzM1OlxuICogaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjM1L3RyMzUtZGF0ZXMuaHRtbCNEYXRlX0ZpZWxkX1N5bWJvbF9UYWJsZVxuICpcbiAqIEFjY2VwdGVkIHBhdHRlcm5zOlxuICogfCBVbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGF0dGVybiB8IFJlc3VsdCBleGFtcGxlcyAgICAgICAgICAgICAgICAgICB8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgQU0sIFBNICAgICAgICAgICAgICAgICAgICAgICAgICB8IGEuLmFhYSAgfCBBTSwgUE0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYWFhYSAgICB8IGEubS4sIHAubS4gICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhYWFhYSAgIHwgYSwgcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgQ2FsZW5kYXIgeWVhciAgICAgICAgICAgICAgICAgICB8IHkgICAgICAgfCA0NCwgMSwgMTkwMCwgMjAxNyAgICAgICAgICAgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgeXkgICAgICB8IDQ0LCAwMSwgMDAsIDE3ICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB5eXkgICAgIHwgMDQ0LCAwMDEsIDAwMCwgMDE3ICAgICAgICAgICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHl5eXkgICAgfCAwMDQ0LCAwMDAxLCAxOTAwLCAyMDE3ICAgICAgICAgICAgfFxuICogfCBNb250aCAoZm9ybWF0dGluZykgICAgICAgICAgICAgIHwgTSAgICAgICB8IDEsIDIsIC4uLiwgMTIgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNTSAgICAgIHwgMDEsIDAyLCAuLi4sIDEyICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgRGF5IG9mIG1vbnRoICAgICAgICAgICAgICAgICAgICB8IGQgICAgICAgfCAxLCAyLCAuLi4sIDMxICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZGQgICAgICB8IDAxLCAwMiwgLi4uLCAzMSAgICAgICAgICAgICAgICAgICB8XG4gKiB8IEhvdXIgWzEtMTJdICAgICAgICAgICAgICAgICAgICAgfCBoICAgICAgIHwgMSwgMiwgLi4uLCAxMSwgMTIgICAgICAgICAgICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGhoICAgICAgfCAwMSwgMDIsIC4uLiwgMTEsIDEyICAgICAgICAgICAgICAgfFxuICogfCBIb3VyIFswLTIzXSAgICAgICAgICAgICAgICAgICAgIHwgSCAgICAgICB8IDAsIDEsIDIsIC4uLiwgMjMgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBISCAgICAgIHwgMDAsIDAxLCAwMiwgLi4uLCAyMyAgICAgICAgICAgICAgIHxcbiAqIHwgTWludXRlICAgICAgICAgICAgICAgICAgICAgICAgICB8IG0gICAgICAgfCAwLCAxLCAuLi4sIDU5ICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbW0gICAgICB8IDAwLCAwMSwgLi4uLCA1OSAgICAgICAgICAgICAgICAgICB8XG4gKiB8IFNlY29uZCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzICAgICAgIHwgMCwgMSwgLi4uLCA1OSAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNzICAgICAgfCAwMCwgMDEsIC4uLiwgNTkgICAgICAgICAgICAgICAgICAgfFxuICogfCBGcmFjdGlvbiBvZiBzZWNvbmQgICAgICAgICAgICAgIHwgUyAgICAgICB8IDAsIDEsIC4uLiwgOSAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTUyAgICAgIHwgMDAsIDAxLCAuLi4sIDk5ICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNTUyAgICAgfCAwMDAsIDAwMSwgLi4uLCA5OTkgICAgICAgICAgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU1NTUyAgICB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIGZvcm1hdCAtIFRoZSBzdHJpbmcgb2YgdG9rZW5zXG4gKlxuICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBkYXRlIHN0cmluZ1xuICpcbiAqIEB0aHJvd3MgYEludmFsaWQgdGltZSB2YWx1ZWAgaWYgdGhlIGRhdGUgaXMgaW52YWxpZFxuICogQHRocm93cyBmb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcmVzdWx0ID0gbGlnaHRGb3JtYXQobmV3IERhdGUoMjAxNCwgMSwgMTEpLCAneXl5eS1NTS1kZCcpXG4gKiAvLz0+ICcyMDE0LTAyLTExJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gbGlnaHRGb3JtYXQoZGF0ZSwgZm9ybWF0U3RyKSB7XG4gIGNvbnN0IGRhdGVfID0gdG9EYXRlKGRhdGUpO1xuXG4gIGlmICghaXNWYWxpZChkYXRlXykpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkludmFsaWQgdGltZSB2YWx1ZVwiKTtcbiAgfVxuXG4gIGNvbnN0IHRva2VucyA9IGZvcm1hdFN0ci5tYXRjaChmb3JtYXR0aW5nVG9rZW5zUmVnRXhwKTtcblxuICAvLyBUaGUgb25seSBjYXNlIHdoZW4gZm9ybWF0dGluZ1Rva2Vuc1JlZ0V4cCBkb2Vzbid0IG1hdGNoIHRoZSBzdHJpbmcgaXMgd2hlbiBpdCdzIGVtcHR5XG4gIGlmICghdG9rZW5zKSByZXR1cm4gXCJcIjtcblxuICBjb25zdCByZXN1bHQgPSB0b2tlbnNcbiAgICAubWFwKChzdWJzdHJpbmcpID0+IHtcbiAgICAgIC8vIFJlcGxhY2UgdHdvIHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJzIHdpdGggb25lIHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJcbiAgICAgIGlmIChzdWJzdHJpbmcgPT09IFwiJydcIikge1xuICAgICAgICByZXR1cm4gXCInXCI7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcnN0Q2hhcmFjdGVyID0gc3Vic3RyaW5nWzBdO1xuICAgICAgaWYgKGZpcnN0Q2hhcmFjdGVyID09PSBcIidcIikge1xuICAgICAgICByZXR1cm4gY2xlYW5Fc2NhcGVkU3RyaW5nKHN1YnN0cmluZyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IGxpZ2h0Rm9ybWF0dGVyc1tmaXJzdENoYXJhY3Rlcl07XG4gICAgICBpZiAoZm9ybWF0dGVyKSB7XG4gICAgICAgIHJldHVybiBmb3JtYXR0ZXIoZGF0ZV8sIHN1YnN0cmluZyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaXJzdENoYXJhY3Rlci5tYXRjaCh1bmVzY2FwZWRMYXRpbkNoYXJhY3RlclJlZ0V4cCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXG4gICAgICAgICAgXCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYFwiICtcbiAgICAgICAgICAgIGZpcnN0Q2hhcmFjdGVyICtcbiAgICAgICAgICAgIFwiYFwiLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3Vic3RyaW5nO1xuICAgIH0pXG4gICAgLmpvaW4oXCJcIik7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gY2xlYW5Fc2NhcGVkU3RyaW5nKGlucHV0KSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBpbnB1dC5tYXRjaChlc2NhcGVkU3RyaW5nUmVnRXhwKTtcbiAgaWYgKCFtYXRjaGVzKSByZXR1cm4gaW5wdXQ7XG4gIHJldHVybiBtYXRjaGVzWzFdLnJlcGxhY2UoZG91YmxlUXVvdGVSZWdFeHAsIFwiJ1wiKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBsaWdodEZvcm1hdDtcbiIsICJpbXBvcnQgeyBkYXlzSW5ZZWFyIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgbWlsbGlzZWNvbmRzXG4gKiBAY2F0ZWdvcnkgTWlsbGlzZWNvbmQgSGVscGVyc1xuICogQHN1bW1hcnlcbiAqIFJldHVybnMgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gdGhlIHNwZWNpZmllZCwgeWVhcnMsIG1vbnRocywgd2Vla3MsIGRheXMsIGhvdXJzLCBtaW51dGVzIGFuZCBzZWNvbmRzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiB0aGUgc3BlY2lmaWVkLCB5ZWFycywgbW9udGhzLCB3ZWVrcywgZGF5cywgaG91cnMsIG1pbnV0ZXMgYW5kIHNlY29uZHMuXG4gKlxuICogT25lIHllYXJzIGVxdWFscyAzNjUuMjQyNSBkYXlzIGFjY29yZGluZyB0byB0aGUgZm9ybXVsYTpcbiAqXG4gKiA+IExlYXAgeWVhciBvY2N1cnMgZXZlcnkgNCB5ZWFycywgZXhjZXB0IGZvciB5ZWFycyB0aGF0IGFyZSBkaXZpc2libGUgYnkgMTAwIGFuZCBub3QgZGl2aXNpYmxlIGJ5IDQwMC5cbiAqID4gMSBtZWFuIHllYXIgPSAoMzY1KzEvNC0xLzEwMCsxLzQwMCkgZGF5cyA9IDM2NS4yNDI1IGRheXNcbiAqXG4gKiBPbmUgbW9udGggaXMgYSB5ZWFyIGRpdmlkZWQgYnkgMTIuXG4gKlxuICogQHBhcmFtIGR1cmF0aW9uIC0gVGhlIG9iamVjdCB3aXRoIHllYXJzLCBtb250aHMsIHdlZWtzLCBkYXlzLCBob3VycywgbWludXRlcyBhbmQgc2Vjb25kcyB0byBiZSBhZGRlZC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbWlsbGlzZWNvbmRzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIDEgeWVhciBpbiBtaWxsaXNlY29uZHNcbiAqIG1pbGxpc2Vjb25kcyh7IHllYXJzOiAxIH0pXG4gKiAvLz0+IDMxNTU2OTUyMDAwXG4gKlxuICogLy8gMyBtb250aHMgaW4gbWlsbGlzZWNvbmRzXG4gKiBtaWxsaXNlY29uZHMoeyBtb250aHM6IDMgfSlcbiAqIC8vPT4gNzg4OTIzODAwMFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWlsbGlzZWNvbmRzKHtcbiAgeWVhcnMsXG4gIG1vbnRocyxcbiAgd2Vla3MsXG4gIGRheXMsXG4gIGhvdXJzLFxuICBtaW51dGVzLFxuICBzZWNvbmRzLFxufSkge1xuICBsZXQgdG90YWxEYXlzID0gMDtcblxuICBpZiAoeWVhcnMpIHRvdGFsRGF5cyArPSB5ZWFycyAqIGRheXNJblllYXI7XG4gIGlmIChtb250aHMpIHRvdGFsRGF5cyArPSBtb250aHMgKiAoZGF5c0luWWVhciAvIDEyKTtcbiAgaWYgKHdlZWtzKSB0b3RhbERheXMgKz0gd2Vla3MgKiA3O1xuICBpZiAoZGF5cykgdG90YWxEYXlzICs9IGRheXM7XG5cbiAgbGV0IHRvdGFsU2Vjb25kcyA9IHRvdGFsRGF5cyAqIDI0ICogNjAgKiA2MDtcblxuICBpZiAoaG91cnMpIHRvdGFsU2Vjb25kcyArPSBob3VycyAqIDYwICogNjA7XG4gIGlmIChtaW51dGVzKSB0b3RhbFNlY29uZHMgKz0gbWludXRlcyAqIDYwO1xuICBpZiAoc2Vjb25kcykgdG90YWxTZWNvbmRzICs9IHNlY29uZHM7XG5cbiAgcmV0dXJuIE1hdGgudHJ1bmModG90YWxTZWNvbmRzICogMTAwMCk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgbWlsbGlzZWNvbmRzO1xuIiwgImltcG9ydCB7IG1pbGxpc2Vjb25kc0luSG91ciB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIG1pbGxpc2Vjb25kc1RvSG91cnNcbiAqIEBjYXRlZ29yeSBDb252ZXJzaW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgbWlsbGlzZWNvbmRzIHRvIGhvdXJzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQ29udmVydCBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gYSBmdWxsIG51bWJlciBvZiBob3Vycy5cbiAqXG4gKiBAcGFyYW0gbWlsbGlzZWNvbmRzIC0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gYmUgY29udmVydGVkXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgY29udmVydGVkIGluIGhvdXJzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgNzIwMDAwMCBtaWxsaXNlY29uZHMgdG8gaG91cnM6XG4gKiBjb25zdCByZXN1bHQgPSBtaWxsaXNlY29uZHNUb0hvdXJzKDcyMDAwMDApXG4gKiAvLz0+IDJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSXQgdXNlcyBmbG9vciByb3VuZGluZzpcbiAqIGNvbnN0IHJlc3VsdCA9IG1pbGxpc2Vjb25kc1RvSG91cnMoNzE5OTk5OSlcbiAqIC8vPT4gMVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWlsbGlzZWNvbmRzVG9Ib3VycyhtaWxsaXNlY29uZHMpIHtcbiAgY29uc3QgaG91cnMgPSBtaWxsaXNlY29uZHMgLyBtaWxsaXNlY29uZHNJbkhvdXI7XG4gIHJldHVybiBNYXRoLnRydW5jKGhvdXJzKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBtaWxsaXNlY29uZHNUb0hvdXJzO1xuIiwgImltcG9ydCB7IG1pbGxpc2Vjb25kc0luTWludXRlIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgbWlsbGlzZWNvbmRzVG9NaW51dGVzXG4gKiBAY2F0ZWdvcnkgQ29udmVyc2lvbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb252ZXJ0IG1pbGxpc2Vjb25kcyB0byBtaW51dGVzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQ29udmVydCBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gYSBmdWxsIG51bWJlciBvZiBtaW51dGVzLlxuICpcbiAqIEBwYXJhbSBtaWxsaXNlY29uZHMgLSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBiZSBjb252ZXJ0ZWRcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBjb252ZXJ0ZWQgaW4gbWludXRlc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb252ZXJ0IDYwMDAwIG1pbGxpc2Vjb25kcyB0byBtaW51dGVzOlxuICogY29uc3QgcmVzdWx0ID0gbWlsbGlzZWNvbmRzVG9NaW51dGVzKDYwMDAwKVxuICogLy89PiAxXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEl0IHVzZXMgZmxvb3Igcm91bmRpbmc6XG4gKiBjb25zdCByZXN1bHQgPSBtaWxsaXNlY29uZHNUb01pbnV0ZXMoMTE5OTk5KVxuICogLy89PiAxXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaWxsaXNlY29uZHNUb01pbnV0ZXMobWlsbGlzZWNvbmRzKSB7XG4gIGNvbnN0IG1pbnV0ZXMgPSBtaWxsaXNlY29uZHMgLyBtaWxsaXNlY29uZHNJbk1pbnV0ZTtcbiAgcmV0dXJuIE1hdGgudHJ1bmMobWludXRlcyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgbWlsbGlzZWNvbmRzVG9NaW51dGVzO1xuIiwgImltcG9ydCB7IG1pbGxpc2Vjb25kc0luU2Vjb25kIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgbWlsbGlzZWNvbmRzVG9TZWNvbmRzXG4gKiBAY2F0ZWdvcnkgQ29udmVyc2lvbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb252ZXJ0IG1pbGxpc2Vjb25kcyB0byBzZWNvbmRzLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQ29udmVydCBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gYSBmdWxsIG51bWJlciBvZiBzZWNvbmRzLlxuICpcbiAqIEBwYXJhbSBtaWxsaXNlY29uZHMgLSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBiZSBjb252ZXJ0ZWRcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBjb252ZXJ0ZWQgaW4gc2Vjb25kc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb252ZXJ0IDEwMDAgbWlsbGlzZWNvbmRzIHRvIHNlY29uZHM6XG4gKiBjb25zdCByZXN1bHQgPSBtaWxsaXNlY29uZHNUb1NlY29uZHMoMTAwMClcbiAqIC8vPT4gMVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJdCB1c2VzIGZsb29yIHJvdW5kaW5nOlxuICogY29uc3QgcmVzdWx0ID0gbWlsbGlzZWNvbmRzVG9TZWNvbmRzKDE5OTkpXG4gKiAvLz0+IDFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyhtaWxsaXNlY29uZHMpIHtcbiAgY29uc3Qgc2Vjb25kcyA9IG1pbGxpc2Vjb25kcyAvIG1pbGxpc2Vjb25kc0luU2Vjb25kO1xuICByZXR1cm4gTWF0aC50cnVuYyhzZWNvbmRzKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBtaWxsaXNlY29uZHNUb1NlY29uZHM7XG4iLCAiaW1wb3J0IHsgbWludXRlc0luSG91ciB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIG1pbnV0ZXNUb0hvdXJzXG4gKiBAY2F0ZWdvcnkgQ29udmVyc2lvbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb252ZXJ0IG1pbnV0ZXMgdG8gaG91cnMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IGEgbnVtYmVyIG9mIG1pbnV0ZXMgdG8gYSBmdWxsIG51bWJlciBvZiBob3Vycy5cbiAqXG4gKiBAcGFyYW0gbWludXRlcyAtIFRoZSBudW1iZXIgb2YgbWludXRlcyB0byBiZSBjb252ZXJ0ZWRcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIG1pbnV0ZXMgY29udmVydGVkIGluIGhvdXJzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgMTQwIG1pbnV0ZXMgdG8gaG91cnM6XG4gKiBjb25zdCByZXN1bHQgPSBtaW51dGVzVG9Ib3VycygxMjApXG4gKiAvLz0+IDJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSXQgdXNlcyBmbG9vciByb3VuZGluZzpcbiAqIGNvbnN0IHJlc3VsdCA9IG1pbnV0ZXNUb0hvdXJzKDE3OSlcbiAqIC8vPT4gMlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWludXRlc1RvSG91cnMobWludXRlcykge1xuICBjb25zdCBob3VycyA9IG1pbnV0ZXMgLyBtaW51dGVzSW5Ib3VyO1xuICByZXR1cm4gTWF0aC50cnVuYyhob3Vycyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgbWludXRlc1RvSG91cnM7XG4iLCAiaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5NaW51dGUgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBtaW51dGVzVG9NaWxsaXNlY29uZHNcbiAqIEBjYXRlZ29yeSBDb252ZXJzaW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgbWludXRlcyB0byBtaWxsaXNlY29uZHMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IGEgbnVtYmVyIG9mIG1pbnV0ZXMgdG8gYSBmdWxsIG51bWJlciBvZiBtaWxsaXNlY29uZHMuXG4gKlxuICogQHBhcmFtIG1pbnV0ZXMgLSBUaGUgbnVtYmVyIG9mIG1pbnV0ZXMgdG8gYmUgY29udmVydGVkXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBtaW51dGVzIGNvbnZlcnRlZCBpbiBtaWxsaXNlY29uZHNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCAyIG1pbnV0ZXMgdG8gbWlsbGlzZWNvbmRzXG4gKiBjb25zdCByZXN1bHQgPSBtaW51dGVzVG9NaWxsaXNlY29uZHMoMilcbiAqIC8vPT4gMTIwMDAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaW51dGVzVG9NaWxsaXNlY29uZHMobWludXRlcykge1xuICByZXR1cm4gTWF0aC50cnVuYyhtaW51dGVzICogbWlsbGlzZWNvbmRzSW5NaW51dGUpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IG1pbnV0ZXNUb01pbGxpc2Vjb25kcztcbiIsICJpbXBvcnQgeyBzZWNvbmRzSW5NaW51dGUgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBtaW51dGVzVG9TZWNvbmRzXG4gKiBAY2F0ZWdvcnkgQ29udmVyc2lvbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb252ZXJ0IG1pbnV0ZXMgdG8gc2Vjb25kcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgYSBudW1iZXIgb2YgbWludXRlcyB0byBhIGZ1bGwgbnVtYmVyIG9mIHNlY29uZHMuXG4gKlxuICogQHBhcmFtIG1pbnV0ZXMgLSBUaGUgbnVtYmVyIG9mIG1pbnV0ZXMgdG8gYmUgY29udmVydGVkXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBtaW51dGVzIGNvbnZlcnRlZCBpbiBzZWNvbmRzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgMiBtaW51dGVzIHRvIHNlY29uZHNcbiAqIGNvbnN0IHJlc3VsdCA9IG1pbnV0ZXNUb1NlY29uZHMoMilcbiAqIC8vPT4gMTIwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaW51dGVzVG9TZWNvbmRzKG1pbnV0ZXMpIHtcbiAgcmV0dXJuIE1hdGgudHJ1bmMobWludXRlcyAqIHNlY29uZHNJbk1pbnV0ZSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgbWludXRlc1RvU2Vjb25kcztcbiIsICJpbXBvcnQgeyBtb250aHNJblF1YXJ0ZXIgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBtb250aHNUb1F1YXJ0ZXJzXG4gKiBAY2F0ZWdvcnkgQ29udmVyc2lvbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb252ZXJ0IG51bWJlciBvZiBtb250aHMgdG8gcXVhcnRlcnMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IGEgbnVtYmVyIG9mIG1vbnRocyB0byBhIGZ1bGwgbnVtYmVyIG9mIHF1YXJ0ZXJzLlxuICpcbiAqIEBwYXJhbSBtb250aHMgLSBUaGUgbnVtYmVyIG9mIG1vbnRocyB0byBiZSBjb252ZXJ0ZWQuXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBtb250aHMgY29udmVydGVkIGluIHF1YXJ0ZXJzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgNiBtb250aHMgdG8gcXVhcnRlcnM6XG4gKiBjb25zdCByZXN1bHQgPSBtb250aHNUb1F1YXJ0ZXJzKDYpXG4gKiAvLz0+IDJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSXQgdXNlcyBmbG9vciByb3VuZGluZzpcbiAqIGNvbnN0IHJlc3VsdCA9IG1vbnRoc1RvUXVhcnRlcnMoNylcbiAqIC8vPT4gMlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW9udGhzVG9RdWFydGVycyhtb250aHMpIHtcbiAgY29uc3QgcXVhcnRlcnMgPSBtb250aHMgLyBtb250aHNJblF1YXJ0ZXI7XG4gIHJldHVybiBNYXRoLnRydW5jKHF1YXJ0ZXJzKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBtb250aHNUb1F1YXJ0ZXJzO1xuIiwgImltcG9ydCB7IG1vbnRoc0luWWVhciB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIG1vbnRoc1RvWWVhcnNcbiAqIEBjYXRlZ29yeSBDb252ZXJzaW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgbnVtYmVyIG9mIG1vbnRocyB0byB5ZWFycy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgYSBudW1iZXIgb2YgbW9udGhzIHRvIGEgZnVsbCBudW1iZXIgb2YgeWVhcnMuXG4gKlxuICogQHBhcmFtIG1vbnRocyAtIFRoZSBudW1iZXIgb2YgbW9udGhzIHRvIGJlIGNvbnZlcnRlZFxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgbW9udGhzIGNvbnZlcnRlZCBpbiB5ZWFyc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb252ZXJ0IDM2IG1vbnRocyB0byB5ZWFyczpcbiAqIGNvbnN0IHJlc3VsdCA9IG1vbnRoc1RvWWVhcnMoMzYpXG4gKiAvLz0+IDNcbiAqXG4gKiAvLyBJdCB1c2VzIGZsb29yIHJvdW5kaW5nOlxuICogY29uc3QgcmVzdWx0ID0gbW9udGhzVG9ZZWFycyg0MClcbiAqIC8vPT4gM1xuICovXG5leHBvcnQgZnVuY3Rpb24gbW9udGhzVG9ZZWFycyhtb250aHMpIHtcbiAgY29uc3QgeWVhcnMgPSBtb250aHMgLyBtb250aHNJblllYXI7XG4gIHJldHVybiBNYXRoLnRydW5jKHllYXJzKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBtb250aHNUb1llYXJzO1xuIiwgImltcG9ydCB7IGFkZERheXMgfSBmcm9tIFwiLi9hZGREYXlzLmpzXCI7XG5pbXBvcnQgeyBnZXREYXkgfSBmcm9tIFwiLi9nZXREYXkuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIG5leHREYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBuZXh0RGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBXaGVuIGlzIHRoZSBuZXh0IGRheSBvZiB0aGUgd2Vlaz8gMC02IHRoZSBkYXkgb2YgdGhlIHdlZWssIDAgcmVwcmVzZW50cyBTdW5kYXkuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBkYXkgLSBEYXkgb2YgdGhlIHdlZWtcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIHRoZSBuZXh0IGRheSBvZiB0aGUgd2Vla1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGVuIGlzIHRoZSBuZXh0IE1vbmRheSBhZnRlciBNYXIsIDIwLCAyMDIwP1xuICogY29uc3QgcmVzdWx0ID0gbmV4dERheShuZXcgRGF0ZSgyMDIwLCAyLCAyMCksIDEpXG4gKiAvLz0+IE1vbiBNYXIgMjMgMjAyMCAwMDowMDowMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGVuIGlzIHRoZSBuZXh0IFR1ZXNkYXkgYWZ0ZXIgTWFyLCAyMSwgMjAyMD9cbiAqIGNvbnN0IHJlc3VsdCA9IG5leHREYXkobmV3IERhdGUoMjAyMCwgMiwgMjEpLCAyKVxuICogLy89PiBUdWUgTWFyIDI0IDIwMjAgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5leHREYXkoZGF0ZSwgZGF5LCBvcHRpb25zKSB7XG4gIGxldCBkZWx0YSA9IGRheSAtIGdldERheShkYXRlLCBvcHRpb25zKTtcbiAgaWYgKGRlbHRhIDw9IDApIGRlbHRhICs9IDc7XG5cbiAgcmV0dXJuIGFkZERheXMoZGF0ZSwgZGVsdGEsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IG5leHREYXk7XG4iLCAiaW1wb3J0IHsgbmV4dERheSB9IGZyb20gXCIuL25leHREYXkuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIG5leHRGcmlkYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBuZXh0RnJpZGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBXaGVuIGlzIHRoZSBuZXh0IEZyaWRheT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFdoZW4gaXMgdGhlIG5leHQgRnJpZGF5P1xuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIHN0YXJ0IGNvdW50aW5nIGZyb21cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXh0IEZyaWRheVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGVuIGlzIHRoZSBuZXh0IEZyaWRheSBhZnRlciBNYXIsIDIyLCAyMDIwP1xuICogY29uc3QgcmVzdWx0ID0gbmV4dEZyaWRheShuZXcgRGF0ZSgyMDIwLCAyLCAyMikpXG4gKiAvLz0+IEZyaSBNYXIgMjcgMjAyMCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gbmV4dEZyaWRheShkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBuZXh0RGF5KGRhdGUsIDUsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IG5leHRGcmlkYXk7XG4iLCAiaW1wb3J0IHsgbmV4dERheSB9IGZyb20gXCIuL25leHREYXkuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIG5leHRNb25kYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBuZXh0TW9uZGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBXaGVuIGlzIHRoZSBuZXh0IE1vbmRheT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFdoZW4gaXMgdGhlIG5leHQgTW9uZGF5P1xuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIHN0YXJ0IGNvdW50aW5nIGZyb21cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXh0IE1vbmRheVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGVuIGlzIHRoZSBuZXh0IE1vbmRheSBhZnRlciBNYXIsIDIyLCAyMDIwP1xuICogY29uc3QgcmVzdWx0ID0gbmV4dE1vbmRheShuZXcgRGF0ZSgyMDIwLCAyLCAyMikpXG4gKiAvLz0+IE1vbiBNYXIgMjMgMjAyMCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gbmV4dE1vbmRheShkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBuZXh0RGF5KGRhdGUsIDEsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IG5leHRNb25kYXk7XG4iLCAiaW1wb3J0IHsgbmV4dERheSB9IGZyb20gXCIuL25leHREYXkuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIG5leHRTYXR1cmRheX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIG5leHRTYXR1cmRheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgV2hlbiBpcyB0aGUgbmV4dCBTYXR1cmRheT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFdoZW4gaXMgdGhlIG5leHQgU2F0dXJkYXk/XG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gc3RhcnQgY291bnRpbmcgZnJvbVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5leHQgU2F0dXJkYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hlbiBpcyB0aGUgbmV4dCBTYXR1cmRheSBhZnRlciBNYXIsIDIyLCAyMDIwP1xuICogY29uc3QgcmVzdWx0ID0gbmV4dFNhdHVyZGF5KG5ldyBEYXRlKDIwMjAsIDIsIDIyKSlcbiAqIC8vPT4gU2F0IE1hciAyOCAyMDIwIDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuZXh0U2F0dXJkYXkoZGF0ZSwgb3B0aW9ucykge1xuICByZXR1cm4gbmV4dERheShkYXRlLCA2LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBuZXh0U2F0dXJkYXk7XG4iLCAiaW1wb3J0IHsgbmV4dERheSB9IGZyb20gXCIuL25leHREYXkuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIG5leHRTdW5kYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBuZXh0U3VuZGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBXaGVuIGlzIHRoZSBuZXh0IFN1bmRheT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFdoZW4gaXMgdGhlIG5leHQgU3VuZGF5P1xuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgaWYgYSBjb250ZXh0IGlzIHByb3ZpZGVkLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gc3RhcnQgY291bnRpbmcgZnJvbVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5leHQgU3VuZGF5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoZW4gaXMgdGhlIG5leHQgU3VuZGF5IGFmdGVyIE1hcmNoIDIyLCAyMDIwP1xuICogY29uc3QgcmVzdWx0ID0gbmV4dFN1bmRheShuZXcgRGF0ZSgyMDIwLCAyLCAyMikpXG4gKiAvLz0+IFN1biBNYXIgMjkgMjAyMCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gbmV4dFN1bmRheShkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBuZXh0RGF5KGRhdGUsIDAsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IG5leHRTdW5kYXk7XG4iLCAiaW1wb3J0IHsgbmV4dERheSB9IGZyb20gXCIuL25leHREYXkuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIG5leHRUaHVyc2RheX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIG5leHRUaHVyc2RheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgV2hlbiBpcyB0aGUgbmV4dCBUaHVyc2RheT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFdoZW4gaXMgdGhlIG5leHQgVGh1cnNkYXk/XG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gc3RhcnQgY291bnRpbmcgZnJvbVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5leHQgVGh1cnNkYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hlbiBpcyB0aGUgbmV4dCBUaHVyc2RheSBhZnRlciBNYXIsIDIyLCAyMDIwP1xuICogY29uc3QgcmVzdWx0ID0gbmV4dFRodXJzZGF5KG5ldyBEYXRlKDIwMjAsIDIsIDIyKSlcbiAqIC8vPT4gVGh1ciBNYXIgMjYgMjAyMCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gbmV4dFRodXJzZGF5KGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5leHREYXkoZGF0ZSwgNCwgb3B0aW9ucyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgbmV4dFRodXJzZGF5O1xuIiwgImltcG9ydCB7IG5leHREYXkgfSBmcm9tIFwiLi9uZXh0RGF5LmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBuZXh0VHVlc2RheX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIG5leHRUdWVzZGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBXaGVuIGlzIHRoZSBuZXh0IFR1ZXNkYXk/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBXaGVuIGlzIHRoZSBuZXh0IFR1ZXNkYXk/XG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gc3RhcnQgY291bnRpbmcgZnJvbVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5leHQgVHVlc2RheVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGVuIGlzIHRoZSBuZXh0IFR1ZXNkYXkgYWZ0ZXIgTWFyLCAyMiwgMjAyMD9cbiAqIGNvbnN0IHJlc3VsdCA9IG5leHRUdWVzZGF5KG5ldyBEYXRlKDIwMjAsIDIsIDIyKSlcbiAqIC8vPT4gVHVlIE1hciAyNCAyMDIwIDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuZXh0VHVlc2RheShkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBuZXh0RGF5KGRhdGUsIDIsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IG5leHRUdWVzZGF5O1xuIiwgImltcG9ydCB7IG5leHREYXkgfSBmcm9tIFwiLi9uZXh0RGF5LmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBuZXh0V2VkbmVzZGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgbmV4dFdlZG5lc2RheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgV2hlbiBpcyB0aGUgbmV4dCBXZWRuZXNkYXk/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBXaGVuIGlzIHRoZSBuZXh0IFdlZG5lc2RheT9cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBzdGFydCBjb3VudGluZyBmcm9tXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV4dCBXZWRuZXNkYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hlbiBpcyB0aGUgbmV4dCBXZWRuZXNkYXkgYWZ0ZXIgTWFyLCAyMiwgMjAyMD9cbiAqIGNvbnN0IHJlc3VsdCA9IG5leHRXZWRuZXNkYXkobmV3IERhdGUoMjAyMCwgMiwgMjIpKVxuICogLy89PiBXZWQgTWFyIDI1IDIwMjAgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5leHRXZWRuZXNkYXkoZGF0ZSwgb3B0aW9ucykge1xuICByZXR1cm4gbmV4dERheShkYXRlLCAzLCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBuZXh0V2VkbmVzZGF5O1xuIiwgImltcG9ydCB7XG4gIG1pbGxpc2Vjb25kc0luSG91cixcbiAgbWlsbGlzZWNvbmRzSW5NaW51dGUsXG59IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuL2NvbnN0cnVjdEZyb20uanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgcGFyc2VJU099IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBwYXJzZUlTT1xuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBQYXJzZSBJU08gc3RyaW5nXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBQYXJzZSB0aGUgZ2l2ZW4gc3RyaW5nIGluIElTTyA4NjAxIGZvcm1hdCBhbmQgcmV0dXJuIGFuIGluc3RhbmNlIG9mIERhdGUuXG4gKlxuICogRnVuY3Rpb24gYWNjZXB0cyBjb21wbGV0ZSBJU08gODYwMSBmb3JtYXRzIGFzIHdlbGwgYXMgcGFydGlhbCBpbXBsZW1lbnRhdGlvbnMuXG4gKiBJU08gODYwMTogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMVxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpc24ndCBhIHN0cmluZywgdGhlIGZ1bmN0aW9uIGNhbm5vdCBwYXJzZSB0aGUgc3RyaW5nIG9yXG4gKiB0aGUgdmFsdWVzIGFyZSBpbnZhbGlkLCBpdCByZXR1cm5zIEludmFsaWQgRGF0ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGFyZ3VtZW50IC0gVGhlIHZhbHVlIHRvIGNvbnZlcnRcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgZGF0ZSBpbiB0aGUgbG9jYWwgdGltZSB6b25lXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgc3RyaW5nICcyMDE0LTAyLTExVDExOjMwOjMwJyB0byBkYXRlOlxuICogY29uc3QgcmVzdWx0ID0gcGFyc2VJU08oJzIwMTQtMDItMTFUMTE6MzA6MzAnKVxuICogLy89PiBUdWUgRmViIDExIDIwMTQgMTE6MzA6MzBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCBzdHJpbmcgJyswMjAxNDEwMScgdG8gZGF0ZSxcbiAqIC8vIGlmIHRoZSBhZGRpdGlvbmFsIG51bWJlciBvZiBkaWdpdHMgaW4gdGhlIGV4dGVuZGVkIHllYXIgZm9ybWF0IGlzIDE6XG4gKiBjb25zdCByZXN1bHQgPSBwYXJzZUlTTygnKzAyMDE0MTAxJywgeyBhZGRpdGlvbmFsRGlnaXRzOiAxIH0pXG4gKiAvLz0+IEZyaSBBcHIgMTEgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJU08oYXJndW1lbnQsIG9wdGlvbnMpIHtcbiAgY29uc3QgaW52YWxpZERhdGUgPSAoKSA9PiBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluLCBOYU4pO1xuXG4gIGNvbnN0IGFkZGl0aW9uYWxEaWdpdHMgPSBvcHRpb25zPy5hZGRpdGlvbmFsRGlnaXRzID8/IDI7XG4gIGNvbnN0IGRhdGVTdHJpbmdzID0gc3BsaXREYXRlU3RyaW5nKGFyZ3VtZW50KTtcblxuICBsZXQgZGF0ZTtcbiAgaWYgKGRhdGVTdHJpbmdzLmRhdGUpIHtcbiAgICBjb25zdCBwYXJzZVllYXJSZXN1bHQgPSBwYXJzZVllYXIoZGF0ZVN0cmluZ3MuZGF0ZSwgYWRkaXRpb25hbERpZ2l0cyk7XG4gICAgZGF0ZSA9IHBhcnNlRGF0ZShwYXJzZVllYXJSZXN1bHQucmVzdERhdGVTdHJpbmcsIHBhcnNlWWVhclJlc3VsdC55ZWFyKTtcbiAgfVxuXG4gIGlmICghZGF0ZSB8fCBpc05hTigrZGF0ZSkpIHJldHVybiBpbnZhbGlkRGF0ZSgpO1xuXG4gIGNvbnN0IHRpbWVzdGFtcCA9ICtkYXRlO1xuICBsZXQgdGltZSA9IDA7XG4gIGxldCBvZmZzZXQ7XG5cbiAgaWYgKGRhdGVTdHJpbmdzLnRpbWUpIHtcbiAgICB0aW1lID0gcGFyc2VUaW1lKGRhdGVTdHJpbmdzLnRpbWUpO1xuICAgIGlmIChpc05hTih0aW1lKSkgcmV0dXJuIGludmFsaWREYXRlKCk7XG4gIH1cblxuICBpZiAoZGF0ZVN0cmluZ3MudGltZXpvbmUpIHtcbiAgICBvZmZzZXQgPSBwYXJzZVRpbWV6b25lKGRhdGVTdHJpbmdzLnRpbWV6b25lKTtcbiAgICBpZiAoaXNOYU4ob2Zmc2V0KSkgcmV0dXJuIGludmFsaWREYXRlKCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdG1wRGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCArIHRpbWUpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHRvRGF0ZSgwLCBvcHRpb25zPy5pbik7XG4gICAgcmVzdWx0LnNldEZ1bGxZZWFyKFxuICAgICAgdG1wRGF0ZS5nZXRVVENGdWxsWWVhcigpLFxuICAgICAgdG1wRGF0ZS5nZXRVVENNb250aCgpLFxuICAgICAgdG1wRGF0ZS5nZXRVVENEYXRlKCksXG4gICAgKTtcbiAgICByZXN1bHQuc2V0SG91cnMoXG4gICAgICB0bXBEYXRlLmdldFVUQ0hvdXJzKCksXG4gICAgICB0bXBEYXRlLmdldFVUQ01pbnV0ZXMoKSxcbiAgICAgIHRtcERhdGUuZ2V0VVRDU2Vjb25kcygpLFxuICAgICAgdG1wRGF0ZS5nZXRVVENNaWxsaXNlY29uZHMoKSxcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZXR1cm4gdG9EYXRlKHRpbWVzdGFtcCArIHRpbWUgKyBvZmZzZXQsIG9wdGlvbnM/LmluKTtcbn1cblxuY29uc3QgcGF0dGVybnMgPSB7XG4gIGRhdGVUaW1lRGVsaW1pdGVyOiAvW1QgXS8sXG4gIHRpbWVab25lRGVsaW1pdGVyOiAvW1ogXS9pLFxuICB0aW1lem9uZTogLyhbWistXS4qKSQvLFxufTtcblxuY29uc3QgZGF0ZVJlZ2V4ID1cbiAgL14tPyg/OihcXGR7M30pfChcXGR7Mn0pKD86LT8oXFxkezJ9KSk/fFcoXFxkezJ9KSg/Oi0/KFxcZHsxfSkpP3wpJC87XG5jb25zdCB0aW1lUmVnZXggPVxuICAvXihcXGR7Mn0oPzpbLixdXFxkKik/KSg/Ojo/KFxcZHsyfSg/OlsuLF1cXGQqKT8pKT8oPzo6PyhcXGR7Mn0oPzpbLixdXFxkKik/KSk/JC87XG5jb25zdCB0aW1lem9uZVJlZ2V4ID0gL14oWystXSkoXFxkezJ9KSg/Ojo/KFxcZHsyfSkpPyQvO1xuXG5mdW5jdGlvbiBzcGxpdERhdGVTdHJpbmcoZGF0ZVN0cmluZykge1xuICBjb25zdCBkYXRlU3RyaW5ncyA9IHt9O1xuICBjb25zdCBhcnJheSA9IGRhdGVTdHJpbmcuc3BsaXQocGF0dGVybnMuZGF0ZVRpbWVEZWxpbWl0ZXIpO1xuICBsZXQgdGltZVN0cmluZztcblxuICAvLyBUaGUgcmVnZXggbWF0Y2ggc2hvdWxkIG9ubHkgcmV0dXJuIGF0IG1heGltdW0gdHdvIGFycmF5IGVsZW1lbnRzLlxuICAvLyBbZGF0ZV0sIFt0aW1lXSwgb3IgW2RhdGUsIHRpbWVdLlxuICBpZiAoYXJyYXkubGVuZ3RoID4gMikge1xuICAgIHJldHVybiBkYXRlU3RyaW5ncztcbiAgfVxuXG4gIGlmICgvOi8udGVzdChhcnJheVswXSkpIHtcbiAgICB0aW1lU3RyaW5nID0gYXJyYXlbMF07XG4gIH0gZWxzZSB7XG4gICAgZGF0ZVN0cmluZ3MuZGF0ZSA9IGFycmF5WzBdO1xuICAgIHRpbWVTdHJpbmcgPSBhcnJheVsxXTtcbiAgICBpZiAocGF0dGVybnMudGltZVpvbmVEZWxpbWl0ZXIudGVzdChkYXRlU3RyaW5ncy5kYXRlKSkge1xuICAgICAgZGF0ZVN0cmluZ3MuZGF0ZSA9IGRhdGVTdHJpbmcuc3BsaXQocGF0dGVybnMudGltZVpvbmVEZWxpbWl0ZXIpWzBdO1xuICAgICAgdGltZVN0cmluZyA9IGRhdGVTdHJpbmcuc3Vic3RyKFxuICAgICAgICBkYXRlU3RyaW5ncy5kYXRlLmxlbmd0aCxcbiAgICAgICAgZGF0ZVN0cmluZy5sZW5ndGgsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0aW1lU3RyaW5nKSB7XG4gICAgY29uc3QgdG9rZW4gPSBwYXR0ZXJucy50aW1lem9uZS5leGVjKHRpbWVTdHJpbmcpO1xuICAgIGlmICh0b2tlbikge1xuICAgICAgZGF0ZVN0cmluZ3MudGltZSA9IHRpbWVTdHJpbmcucmVwbGFjZSh0b2tlblsxXSwgXCJcIik7XG4gICAgICBkYXRlU3RyaW5ncy50aW1lem9uZSA9IHRva2VuWzFdO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRlU3RyaW5ncy50aW1lID0gdGltZVN0cmluZztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGF0ZVN0cmluZ3M7XG59XG5cbmZ1bmN0aW9uIHBhcnNlWWVhcihkYXRlU3RyaW5nLCBhZGRpdGlvbmFsRGlnaXRzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICBcIl4oPzooXFxcXGR7NH18WystXVxcXFxke1wiICtcbiAgICAgICg0ICsgYWRkaXRpb25hbERpZ2l0cykgK1xuICAgICAgXCJ9KXwoXFxcXGR7Mn18WystXVxcXFxke1wiICtcbiAgICAgICgyICsgYWRkaXRpb25hbERpZ2l0cykgK1xuICAgICAgXCJ9KSQpXCIsXG4gICk7XG5cbiAgY29uc3QgY2FwdHVyZXMgPSBkYXRlU3RyaW5nLm1hdGNoKHJlZ2V4KTtcbiAgLy8gSW52YWxpZCBJU08tZm9ybWF0dGVkIHllYXJcbiAgaWYgKCFjYXB0dXJlcykgcmV0dXJuIHsgeWVhcjogTmFOLCByZXN0RGF0ZVN0cmluZzogXCJcIiB9O1xuXG4gIGNvbnN0IHllYXIgPSBjYXB0dXJlc1sxXSA/IHBhcnNlSW50KGNhcHR1cmVzWzFdKSA6IG51bGw7XG4gIGNvbnN0IGNlbnR1cnkgPSBjYXB0dXJlc1syXSA/IHBhcnNlSW50KGNhcHR1cmVzWzJdKSA6IG51bGw7XG5cbiAgLy8gZWl0aGVyIHllYXIgb3IgY2VudHVyeSBpcyBudWxsLCBub3QgYm90aFxuICByZXR1cm4ge1xuICAgIHllYXI6IGNlbnR1cnkgPT09IG51bGwgPyB5ZWFyIDogY2VudHVyeSAqIDEwMCxcbiAgICByZXN0RGF0ZVN0cmluZzogZGF0ZVN0cmluZy5zbGljZSgoY2FwdHVyZXNbMV0gfHwgY2FwdHVyZXNbMl0pLmxlbmd0aCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0ZShkYXRlU3RyaW5nLCB5ZWFyKSB7XG4gIC8vIEludmFsaWQgSVNPLWZvcm1hdHRlZCB5ZWFyXG4gIGlmICh5ZWFyID09PSBudWxsKSByZXR1cm4gbmV3IERhdGUoTmFOKTtcblxuICBjb25zdCBjYXB0dXJlcyA9IGRhdGVTdHJpbmcubWF0Y2goZGF0ZVJlZ2V4KTtcbiAgLy8gSW52YWxpZCBJU08tZm9ybWF0dGVkIHN0cmluZ1xuICBpZiAoIWNhcHR1cmVzKSByZXR1cm4gbmV3IERhdGUoTmFOKTtcblxuICBjb25zdCBpc1dlZWtEYXRlID0gISFjYXB0dXJlc1s0XTtcbiAgY29uc3QgZGF5T2ZZZWFyID0gcGFyc2VEYXRlVW5pdChjYXB0dXJlc1sxXSk7XG4gIGNvbnN0IG1vbnRoID0gcGFyc2VEYXRlVW5pdChjYXB0dXJlc1syXSkgLSAxO1xuICBjb25zdCBkYXkgPSBwYXJzZURhdGVVbml0KGNhcHR1cmVzWzNdKTtcbiAgY29uc3Qgd2VlayA9IHBhcnNlRGF0ZVVuaXQoY2FwdHVyZXNbNF0pO1xuICBjb25zdCBkYXlPZldlZWsgPSBwYXJzZURhdGVVbml0KGNhcHR1cmVzWzVdKSAtIDE7XG5cbiAgaWYgKGlzV2Vla0RhdGUpIHtcbiAgICBpZiAoIXZhbGlkYXRlV2Vla0RhdGUoeWVhciwgd2VlaywgZGF5T2ZXZWVrKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XG4gICAgfVxuICAgIHJldHVybiBkYXlPZklTT1dlZWtZZWFyKHllYXIsIHdlZWssIGRheU9mV2Vlayk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDApO1xuICAgIGlmIChcbiAgICAgICF2YWxpZGF0ZURhdGUoeWVhciwgbW9udGgsIGRheSkgfHxcbiAgICAgICF2YWxpZGF0ZURheU9mWWVhckRhdGUoeWVhciwgZGF5T2ZZZWFyKVxuICAgICkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XG4gICAgfVxuICAgIGRhdGUuc2V0VVRDRnVsbFllYXIoeWVhciwgbW9udGgsIE1hdGgubWF4KGRheU9mWWVhciwgZGF5KSk7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRlVW5pdCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPyBwYXJzZUludCh2YWx1ZSkgOiAxO1xufVxuXG5mdW5jdGlvbiBwYXJzZVRpbWUodGltZVN0cmluZykge1xuICBjb25zdCBjYXB0dXJlcyA9IHRpbWVTdHJpbmcubWF0Y2godGltZVJlZ2V4KTtcbiAgaWYgKCFjYXB0dXJlcykgcmV0dXJuIE5hTjsgLy8gSW52YWxpZCBJU08tZm9ybWF0dGVkIHRpbWVcblxuICBjb25zdCBob3VycyA9IHBhcnNlVGltZVVuaXQoY2FwdHVyZXNbMV0pO1xuICBjb25zdCBtaW51dGVzID0gcGFyc2VUaW1lVW5pdChjYXB0dXJlc1syXSk7XG4gIGNvbnN0IHNlY29uZHMgPSBwYXJzZVRpbWVVbml0KGNhcHR1cmVzWzNdKTtcblxuICBpZiAoIXZhbGlkYXRlVGltZShob3VycywgbWludXRlcywgc2Vjb25kcykpIHtcbiAgICByZXR1cm4gTmFOO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICBob3VycyAqIG1pbGxpc2Vjb25kc0luSG91ciArIG1pbnV0ZXMgKiBtaWxsaXNlY29uZHNJbk1pbnV0ZSArIHNlY29uZHMgKiAxMDAwXG4gICk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVGltZVVuaXQodmFsdWUpIHtcbiAgcmV0dXJuICh2YWx1ZSAmJiBwYXJzZUZsb2F0KHZhbHVlLnJlcGxhY2UoXCIsXCIsIFwiLlwiKSkpIHx8IDA7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVGltZXpvbmUodGltZXpvbmVTdHJpbmcpIHtcbiAgaWYgKHRpbWV6b25lU3RyaW5nID09PSBcIlpcIikgcmV0dXJuIDA7XG5cbiAgY29uc3QgY2FwdHVyZXMgPSB0aW1lem9uZVN0cmluZy5tYXRjaCh0aW1lem9uZVJlZ2V4KTtcbiAgaWYgKCFjYXB0dXJlcykgcmV0dXJuIDA7XG5cbiAgY29uc3Qgc2lnbiA9IGNhcHR1cmVzWzFdID09PSBcIitcIiA/IC0xIDogMTtcbiAgY29uc3QgaG91cnMgPSBwYXJzZUludChjYXB0dXJlc1syXSk7XG4gIGNvbnN0IG1pbnV0ZXMgPSAoY2FwdHVyZXNbM10gJiYgcGFyc2VJbnQoY2FwdHVyZXNbM10pKSB8fCAwO1xuXG4gIGlmICghdmFsaWRhdGVUaW1lem9uZShob3VycywgbWludXRlcykpIHtcbiAgICByZXR1cm4gTmFOO1xuICB9XG5cbiAgcmV0dXJuIHNpZ24gKiAoaG91cnMgKiBtaWxsaXNlY29uZHNJbkhvdXIgKyBtaW51dGVzICogbWlsbGlzZWNvbmRzSW5NaW51dGUpO1xufVxuXG5mdW5jdGlvbiBkYXlPZklTT1dlZWtZZWFyKGlzb1dlZWtZZWFyLCB3ZWVrLCBkYXkpIHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDApO1xuICBkYXRlLnNldFVUQ0Z1bGxZZWFyKGlzb1dlZWtZZWFyLCAwLCA0KTtcbiAgY29uc3QgZm91cnRoT2ZKYW51YXJ5RGF5ID0gZGF0ZS5nZXRVVENEYXkoKSB8fCA3O1xuICBjb25zdCBkaWZmID0gKHdlZWsgLSAxKSAqIDcgKyBkYXkgKyAxIC0gZm91cnRoT2ZKYW51YXJ5RGF5O1xuICBkYXRlLnNldFVUQ0RhdGUoZGF0ZS5nZXRVVENEYXRlKCkgKyBkaWZmKTtcbiAgcmV0dXJuIGRhdGU7XG59XG5cbi8vIFZhbGlkYXRpb24gZnVuY3Rpb25zXG5cbi8vIEZlYnJ1YXJ5IGlzIG51bGwgdG8gaGFuZGxlIHRoZSBsZWFwIHllYXIgKHVzaW5nIHx8KVxuY29uc3QgZGF5c0luTW9udGhzID0gWzMxLCBudWxsLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV07XG5cbmZ1bmN0aW9uIGlzTGVhcFllYXJJbmRleCh5ZWFyKSB7XG4gIHJldHVybiB5ZWFyICUgNDAwID09PSAwIHx8ICh5ZWFyICUgNCA9PT0gMCAmJiB5ZWFyICUgMTAwICE9PSAwKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVEYXRlKHllYXIsIG1vbnRoLCBkYXRlKSB7XG4gIHJldHVybiAoXG4gICAgbW9udGggPj0gMCAmJlxuICAgIG1vbnRoIDw9IDExICYmXG4gICAgZGF0ZSA+PSAxICYmXG4gICAgZGF0ZSA8PSAoZGF5c0luTW9udGhzW21vbnRoXSB8fCAoaXNMZWFwWWVhckluZGV4KHllYXIpID8gMjkgOiAyOCkpXG4gICk7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlRGF5T2ZZZWFyRGF0ZSh5ZWFyLCBkYXlPZlllYXIpIHtcbiAgcmV0dXJuIGRheU9mWWVhciA+PSAxICYmIGRheU9mWWVhciA8PSAoaXNMZWFwWWVhckluZGV4KHllYXIpID8gMzY2IDogMzY1KTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVXZWVrRGF0ZShfeWVhciwgd2VlaywgZGF5KSB7XG4gIHJldHVybiB3ZWVrID49IDEgJiYgd2VlayA8PSA1MyAmJiBkYXkgPj0gMCAmJiBkYXkgPD0gNjtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVUaW1lKGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSB7XG4gIGlmIChob3VycyA9PT0gMjQpIHtcbiAgICByZXR1cm4gbWludXRlcyA9PT0gMCAmJiBzZWNvbmRzID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICBzZWNvbmRzID49IDAgJiZcbiAgICBzZWNvbmRzIDwgNjAgJiZcbiAgICBtaW51dGVzID49IDAgJiZcbiAgICBtaW51dGVzIDwgNjAgJiZcbiAgICBob3VycyA+PSAwICYmXG4gICAgaG91cnMgPCAyNVxuICApO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVRpbWV6b25lKF9ob3VycywgbWludXRlcykge1xuICByZXR1cm4gbWludXRlcyA+PSAwICYmIG1pbnV0ZXMgPD0gNTk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgcGFyc2VJU087XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBwYXJzZUpTT059IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGNvbXBsZXRlIElTTyBkYXRlIHN0cmluZyBpbiBVVEMgdGltZSwgdGhlIHR5cGljYWwgZm9ybWF0IGZvciB0cmFuc21pdHRpbmdcbiAqIGEgZGF0ZSBpbiBKU09OLCB0byBhIEphdmFTY3JpcHQgYERhdGVgIGluc3RhbmNlLlxuICpcbiAqIFRoaXMgaXMgYSBtaW5pbWFsIGltcGxlbWVudGF0aW9uIGZvciBjb252ZXJ0aW5nIGRhdGVzIHJldHJpZXZlZCBmcm9tIGEgSlNPTiBBUEkgdG9cbiAqIGEgYERhdGVgIGluc3RhbmNlIHdoaWNoIGNhbiBiZSB1c2VkIHdpdGggb3RoZXIgZnVuY3Rpb25zIGluIHRoZSBgZGF0ZS1mbnNgIGxpYnJhcnkuXG4gKiBUaGUgZm9sbG93aW5nIGZvcm1hdHMgYXJlIHN1cHBvcnRlZDpcbiAqXG4gKiAtIGAyMDAwLTAzLTE1VDA1OjIwOjEwLjEyM1pgOiBUaGUgb3V0cHV0IG9mIGAudG9JU09TdHJpbmcoKWAgYW5kIGBKU09OLnN0cmluZ2lmeShuZXcgRGF0ZSgpKWBcbiAqIC0gYDIwMDAtMDMtMTVUMDU6MjA6MTBaYDogV2l0aG91dCBtaWxsaXNlY29uZHNcbiAqIC0gYDIwMDAtMDMtMTVUMDU6MjA6MTArMDA6MDBgOiBXaXRoIGEgemVybyBvZmZzZXQsIHRoZSBkZWZhdWx0IEpTT04gZW5jb2RlZCBmb3JtYXQgaW4gc29tZSBvdGhlciBsYW5ndWFnZXNcbiAqIC0gYDIwMDAtMDMtMTVUMDU6MjA6MTArMDU6NDVgOiBXaXRoIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgb2Zmc2V0LCB0aGUgZGVmYXVsdCBKU09OIGVuY29kZWQgZm9ybWF0IGluIHNvbWUgb3RoZXIgbGFuZ3VhZ2VzXG4gKiAtIGAyMDAwLTAzLTE1VDA1OjIwOjEwKzAwMDBgOiBXaXRoIGEgemVybyBvZmZzZXQgd2l0aG91dCBhIGNvbG9uXG4gKiAtIGAyMDAwLTAzLTE1VDA1OjIwOjEwYDogV2l0aG91dCBhIHRyYWlsaW5nICdaJyBzeW1ib2xcbiAqIC0gYDIwMDAtMDMtMTVUMDU6MjA6MTAuMTIzNDU2N2A6IFVwIHRvIDcgZGlnaXRzIGluIG1pbGxpc2Vjb25kcyBmaWVsZC4gT25seSBmaXJzdCAzIGFyZSB0YWtlbiBpbnRvIGFjY291bnQgc2luY2UgSlMgZG9lcyBub3QgYWxsb3cgZnJhY3Rpb25hbCBtaWxsaXNlY29uZHNcbiAqIC0gYDIwMDAtMDMtMTUgMDU6MjA6MTBgOiBXaXRoIGEgc3BhY2UgaW5zdGVhZCBvZiBhICdUJyBzZXBhcmF0b3IgZm9yIEFQSXMgcmV0dXJuaW5nIGEgU1FMIGRhdGUgd2l0aG91dCByZWZvcm1hdHRpbmdcbiAqXG4gKiBGb3IgY29udmVuaWVuY2UgYW5kIGVhc2Ugb2YgdXNlIHRoZXNlIG90aGVyIGlucHV0IHR5cGVzIGFyZSBhbHNvIHN1cHBvcnRlZFxuICogdmlhIFt0b0RhdGVdKGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvdG9EYXRlKTpcbiAqXG4gKiAtIEEgYERhdGVgIGluc3RhbmNlIHdpbGwgYmUgY2xvbmVkXG4gKiAtIEEgYG51bWJlcmAgd2lsbCBiZSB0cmVhdGVkIGFzIGEgdGltZXN0YW1wXG4gKlxuICogQW55IG90aGVyIGlucHV0IHR5cGUgb3IgaW52YWxpZCBkYXRlIHN0cmluZ3Mgd2lsbCByZXR1cm4gYW4gYEludmFsaWQgRGF0ZWAuXG4gKlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZVN0ciAtIEEgZnVsbHkgZm9ybWVkIElTTzg2MDEgZGF0ZSBzdHJpbmcgdG8gY29udmVydFxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBkYXRlIGluIHRoZSBsb2NhbCB0aW1lIHpvbmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSlNPTihkYXRlU3RyLCBvcHRpb25zKSB7XG4gIGNvbnN0IHBhcnRzID0gZGF0ZVN0ci5tYXRjaChcbiAgICAvKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSlbVCBdKFxcZHsyfSk6KFxcZHsyfSk6KFxcZHsyfSkoPzpcXC4oXFxkezAsN30pKT8oPzpafCguKShcXGR7Mn0pOj8oXFxkezJ9KT8pPy8sXG4gICk7XG5cbiAgaWYgKCFwYXJ0cykgcmV0dXJuIHRvRGF0ZShOYU4sIG9wdGlvbnM/LmluKTtcblxuICByZXR1cm4gdG9EYXRlKFxuICAgIERhdGUuVVRDKFxuICAgICAgK3BhcnRzWzFdLFxuICAgICAgK3BhcnRzWzJdIC0gMSxcbiAgICAgICtwYXJ0c1szXSxcbiAgICAgICtwYXJ0c1s0XSAtICgrcGFydHNbOV0gfHwgMCkgKiAocGFydHNbOF0gPT0gXCItXCIgPyAtMSA6IDEpLFxuICAgICAgK3BhcnRzWzVdIC0gKCtwYXJ0c1sxMF0gfHwgMCkgKiAocGFydHNbOF0gPT0gXCItXCIgPyAtMSA6IDEpLFxuICAgICAgK3BhcnRzWzZdLFxuICAgICAgKygocGFydHNbN10gfHwgXCIwXCIpICsgXCIwMFwiKS5zdWJzdHJpbmcoMCwgMyksXG4gICAgKSxcbiAgICBvcHRpb25zPy5pbixcbiAgKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBwYXJzZUpTT047XG4iLCAiaW1wb3J0IHsgZ2V0RGF5IH0gZnJvbSBcIi4vZ2V0RGF5LmpzXCI7XG5pbXBvcnQgeyBzdWJEYXlzIH0gZnJvbSBcIi4vc3ViRGF5cy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgcHJldmlvdXNEYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBwcmV2aW91c0RheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgV2hlbiBpcyB0aGUgcHJldmlvdXMgZGF5IG9mIHRoZSB3ZWVrP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogV2hlbiBpcyB0aGUgcHJldmlvdXMgZGF5IG9mIHRoZSB3ZWVrPyAwLTYgdGhlIGRheSBvZiB0aGUgd2VlaywgMCByZXByZXNlbnRzIFN1bmRheS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIGRheSAtIFRoZSBkYXkgb2YgdGhlIHdlZWtcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBkYXRlIGlzIHRoZSBwcmV2aW91cyBkYXkgb2Ygd2Vla1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGVuIGlzIHRoZSBwcmV2aW91cyBNb25kYXkgYmVmb3JlIE1hciwgMjAsIDIwMjA/XG4gKiBjb25zdCByZXN1bHQgPSBwcmV2aW91c0RheShuZXcgRGF0ZSgyMDIwLCAyLCAyMCksIDEpXG4gKiAvLz0+IE1vbiBNYXIgMTYgMjAyMCAwMDowMDowMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGVuIGlzIHRoZSBwcmV2aW91cyBUdWVzZGF5IGJlZm9yZSBNYXIsIDIxLCAyMDIwP1xuICogY29uc3QgcmVzdWx0ID0gcHJldmlvdXNEYXkobmV3IERhdGUoMjAyMCwgMiwgMjEpLCAyKVxuICogLy89PiBUdWUgTWFyIDE3IDIwMjAgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXZpb3VzRGF5KGRhdGUsIGRheSwgb3B0aW9ucykge1xuICBsZXQgZGVsdGEgPSBnZXREYXkoZGF0ZSwgb3B0aW9ucykgLSBkYXk7XG4gIGlmIChkZWx0YSA8PSAwKSBkZWx0YSArPSA3O1xuXG4gIHJldHVybiBzdWJEYXlzKGRhdGUsIGRlbHRhLCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBwcmV2aW91c0RheTtcbiIsICJpbXBvcnQgeyBwcmV2aW91c0RheSB9IGZyb20gXCIuL3ByZXZpb3VzRGF5LmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBwcmV2aW91c0ZyaWRheX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHByZXZpb3VzRnJpZGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBXaGVuIGlzIHRoZSBwcmV2aW91cyBGcmlkYXk/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBXaGVuIGlzIHRoZSBwcmV2aW91cyBGcmlkYXk/XG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW1VUQ0RhdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIHN0YXJ0IGNvdW50aW5nIGZyb21cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgcHJldmlvdXMgRnJpZGF5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoZW4gaXMgdGhlIHByZXZpb3VzIEZyaWRheSBiZWZvcmUgSnVuLCAxOSwgMjAyMT9cbiAqIGNvbnN0IHJlc3VsdCA9IHByZXZpb3VzRnJpZGF5KG5ldyBEYXRlKDIwMjEsIDUsIDE5KSlcbiAqIC8vPT4gRnJpIEp1bmUgMTggMjAyMSAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJldmlvdXNGcmlkYXkoZGF0ZSwgb3B0aW9ucykge1xuICByZXR1cm4gcHJldmlvdXNEYXkoZGF0ZSwgNSwgb3B0aW9ucyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgcHJldmlvdXNGcmlkYXk7XG4iLCAiaW1wb3J0IHsgcHJldmlvdXNEYXkgfSBmcm9tIFwiLi9wcmV2aW91c0RheS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgcHJldmlvdXNNb25kYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBwcmV2aW91c01vbmRheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgV2hlbiBpcyB0aGUgcHJldmlvdXMgTW9uZGF5P1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogV2hlbiBpcyB0aGUgcHJldmlvdXMgTW9uZGF5P1xuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIHN0YXJ0IGNvdW50aW5nIGZyb21cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBwcmV2aW91cyBNb25kYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hlbiBpcyB0aGUgcHJldmlvdXMgTW9uZGF5IGJlZm9yZSBKdW4sIDE4LCAyMDIxP1xuICogY29uc3QgcmVzdWx0ID0gcHJldmlvdXNNb25kYXkobmV3IERhdGUoMjAyMSwgNSwgMTgpKVxuICogLy89PiBNb24gSnVuZSAxNCAyMDIxIDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmV2aW91c01vbmRheShkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBwcmV2aW91c0RheShkYXRlLCAxLCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBwcmV2aW91c01vbmRheTtcbiIsICJpbXBvcnQgeyBwcmV2aW91c0RheSB9IGZyb20gXCIuL3ByZXZpb3VzRGF5LmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBwcmV2aW91c1NhdHVyZGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgcHJldmlvdXNTYXR1cmRheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgV2hlbiBpcyB0aGUgcHJldmlvdXMgU2F0dXJkYXk/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBXaGVuIGlzIHRoZSBwcmV2aW91cyBTYXR1cmRheT9cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBzdGFydCBjb3VudGluZyBmcm9tXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHByZXZpb3VzIFNhdHVyZGF5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdoZW4gaXMgdGhlIHByZXZpb3VzIFNhdHVyZGF5IGJlZm9yZSBKdW4sIDIwLCAyMDIxP1xuICogY29uc3QgcmVzdWx0ID0gcHJldmlvdXNTYXR1cmRheShuZXcgRGF0ZSgyMDIxLCA1LCAyMCkpXG4gKiAvLz0+IFNhdCBKdW5lIDE5IDIwMjEgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXZpb3VzU2F0dXJkYXkoZGF0ZSwgb3B0aW9ucykge1xuICByZXR1cm4gcHJldmlvdXNEYXkoZGF0ZSwgNiwgb3B0aW9ucyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgcHJldmlvdXNTYXR1cmRheTtcbiIsICJpbXBvcnQgeyBwcmV2aW91c0RheSB9IGZyb20gXCIuL3ByZXZpb3VzRGF5LmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBwcmV2aW91c1N1bmRheX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHByZXZpb3VzU3VuZGF5XG4gKiBAY2F0ZWdvcnkgV2Vla2RheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBXaGVuIGlzIHRoZSBwcmV2aW91cyBTdW5kYXk/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBXaGVuIGlzIHRoZSBwcmV2aW91cyBTdW5kYXk/XG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gc3RhcnQgY291bnRpbmcgZnJvbVxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBwcmV2aW91cyBTdW5kYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hlbiBpcyB0aGUgcHJldmlvdXMgU3VuZGF5IGJlZm9yZSBKdW4sIDIxLCAyMDIxP1xuICogY29uc3QgcmVzdWx0ID0gcHJldmlvdXNTdW5kYXkobmV3IERhdGUoMjAyMSwgNSwgMjEpKVxuICogLy89PiBTdW4gSnVuZSAyMCAyMDIxIDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmV2aW91c1N1bmRheShkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBwcmV2aW91c0RheShkYXRlLCAwLCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBwcmV2aW91c1N1bmRheTtcbiIsICJpbXBvcnQgeyBwcmV2aW91c0RheSB9IGZyb20gXCIuL3ByZXZpb3VzRGF5LmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBwcmV2aW91c1RodXJzZGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgcHJldmlvdXNUaHVyc2RheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgV2hlbiBpcyB0aGUgcHJldmlvdXMgVGh1cnNkYXk/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBXaGVuIGlzIHRoZSBwcmV2aW91cyBUaHVyc2RheT9cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBzdGFydCBjb3VudGluZyBmcm9tXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgcHJldmlvdXMgVGh1cnNkYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hlbiBpcyB0aGUgcHJldmlvdXMgVGh1cnNkYXkgYmVmb3JlIEp1biwgMTgsIDIwMjE/XG4gKiBjb25zdCByZXN1bHQgPSBwcmV2aW91c1RodXJzZGF5KG5ldyBEYXRlKDIwMjEsIDUsIDE4KSlcbiAqIC8vPT4gVGh1IEp1bmUgMTcgMjAyMSAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJldmlvdXNUaHVyc2RheShkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBwcmV2aW91c0RheShkYXRlLCA0LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBwcmV2aW91c1RodXJzZGF5O1xuIiwgImltcG9ydCB7IHByZXZpb3VzRGF5IH0gZnJvbSBcIi4vcHJldmlvdXNEYXkuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHByZXZpb3VzVHVlc2RheX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHByZXZpb3VzVHVlc2RheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgV2hlbiBpcyB0aGUgcHJldmlvdXMgVHVlc2RheT9cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFdoZW4gaXMgdGhlIHByZXZpb3VzIFR1ZXNkYXk/XG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gc3RhcnQgY291bnRpbmcgZnJvbVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHByZXZpb3VzIFR1ZXNkYXlcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2hlbiBpcyB0aGUgcHJldmlvdXMgVHVlc2RheSBiZWZvcmUgSnVuLCAxOCwgMjAyMT9cbiAqIGNvbnN0IHJlc3VsdCA9IHByZXZpb3VzVHVlc2RheShuZXcgRGF0ZSgyMDIxLCA1LCAxOCkpXG4gKiAvLz0+IFR1ZSBKdW5lIDE1IDIwMjEgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXZpb3VzVHVlc2RheShkYXRlLCBvcHRpb25zKSB7XG4gIHJldHVybiBwcmV2aW91c0RheShkYXRlLCAyLCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBwcmV2aW91c1R1ZXNkYXk7XG4iLCAiaW1wb3J0IHsgcHJldmlvdXNEYXkgfSBmcm9tIFwiLi9wcmV2aW91c0RheS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgcHJldmlvdXNXZWRuZXNkYXl9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBwcmV2aW91c1dlZG5lc2RheVxuICogQGNhdGVnb3J5IFdlZWtkYXkgSGVscGVyc1xuICogQHN1bW1hcnkgV2hlbiBpcyB0aGUgcHJldmlvdXMgV2VkbmVzZGF5P1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogV2hlbiBpcyB0aGUgcHJldmlvdXMgV2VkbmVzZGF5P1xuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgRGF0ZSB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbVVRDRGF0ZV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gc3RhcnQgY291bnRpbmcgZnJvbVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHByZXZpb3VzIFdlZG5lc2RheVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBXaGVuIGlzIHRoZSBwcmV2aW91cyBXZWRuZXNkYXkgYmVmb3JlIEp1biwgMTgsIDIwMjE/XG4gKiBjb25zdCByZXN1bHQgPSBwcmV2aW91c1dlZG5lc2RheShuZXcgRGF0ZSgyMDIxLCA1LCAxOCkpXG4gKiAvLz0+IFdlZCBKdW5lIDE2IDIwMjEgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXZpb3VzV2VkbmVzZGF5KGRhdGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIHByZXZpb3VzRGF5KGRhdGUsIDMsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHByZXZpb3VzV2VkbmVzZGF5O1xuIiwgImltcG9ydCB7IG1vbnRoc0luUXVhcnRlciB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIHF1YXJ0ZXJzVG9Nb250aHNcbiAqIEBjYXRlZ29yeSBDb252ZXJzaW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgbnVtYmVyIG9mIHF1YXJ0ZXJzIHRvIG1vbnRocy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgYSBudW1iZXIgb2YgcXVhcnRlcnMgdG8gYSBmdWxsIG51bWJlciBvZiBtb250aHMuXG4gKlxuICogQHBhcmFtIHF1YXJ0ZXJzIC0gVGhlIG51bWJlciBvZiBxdWFydGVycyB0byBiZSBjb252ZXJ0ZWRcbiAqXG4gKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIHF1YXJ0ZXJzIGNvbnZlcnRlZCBpbiBtb250aHNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCAyIHF1YXJ0ZXJzIHRvIG1vbnRoc1xuICogY29uc3QgcmVzdWx0ID0gcXVhcnRlcnNUb01vbnRocygyKVxuICogLy89PiA2XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBxdWFydGVyc1RvTW9udGhzKHF1YXJ0ZXJzKSB7XG4gIHJldHVybiBNYXRoLnRydW5jKHF1YXJ0ZXJzICogbW9udGhzSW5RdWFydGVyKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBxdWFydGVyc1RvTW9udGhzO1xuIiwgImltcG9ydCB7IHF1YXJ0ZXJzSW5ZZWFyIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgcXVhcnRlcnNUb1llYXJzXG4gKiBAY2F0ZWdvcnkgQ29udmVyc2lvbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb252ZXJ0IG51bWJlciBvZiBxdWFydGVycyB0byB5ZWFycy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgYSBudW1iZXIgb2YgcXVhcnRlcnMgdG8gYSBmdWxsIG51bWJlciBvZiB5ZWFycy5cbiAqXG4gKiBAcGFyYW0gcXVhcnRlcnMgLSBUaGUgbnVtYmVyIG9mIHF1YXJ0ZXJzIHRvIGJlIGNvbnZlcnRlZFxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgcXVhcnRlcnMgY29udmVydGVkIGluIHllYXJzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgOCBxdWFydGVycyB0byB5ZWFyc1xuICogY29uc3QgcmVzdWx0ID0gcXVhcnRlcnNUb1llYXJzKDgpXG4gKiAvLz0+IDJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSXQgdXNlcyBmbG9vciByb3VuZGluZzpcbiAqIGNvbnN0IHJlc3VsdCA9IHF1YXJ0ZXJzVG9ZZWFycygxMSlcbiAqIC8vPT4gMlxuICovXG5leHBvcnQgZnVuY3Rpb24gcXVhcnRlcnNUb1llYXJzKHF1YXJ0ZXJzKSB7XG4gIGNvbnN0IHllYXJzID0gcXVhcnRlcnMgLyBxdWFydGVyc0luWWVhcjtcbiAgcmV0dXJuIE1hdGgudHJ1bmMoeWVhcnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHF1YXJ0ZXJzVG9ZZWFycztcbiIsICJpbXBvcnQgeyBnZXRSb3VuZGluZ01ldGhvZCB9IGZyb20gXCIuL19saWIvZ2V0Um91bmRpbmdNZXRob2QuanNcIjtcbmltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHJvdW5kVG9OZWFyZXN0SG91cnN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSByb3VuZFRvTmVhcmVzdEhvdXJzXG4gKiBAY2F0ZWdvcnkgSG91ciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSb3VuZHMgdGhlIGdpdmVuIGRhdGUgdG8gdGhlIG5lYXJlc3QgaG91clxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUm91bmRzIHRoZSBnaXZlbiBkYXRlIHRvIHRoZSBuZWFyZXN0IGhvdXIgKG9yIG51bWJlciBvZiBob3VycykuXG4gKiBSb3VuZHMgdXAgd2hlbiB0aGUgZ2l2ZW4gZGF0ZSBpcyBleGFjdGx5IGJldHdlZW4gdGhlIG5lYXJlc3Qgcm91bmQgaG91cnMuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gcm91bmRcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgcm91bmRlZCB0byB0aGUgY2xvc2VzdCBob3VyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFJvdW5kIDEwIEp1bHkgMjAxNCAxMjozNDo1NiB0byBuZWFyZXN0IGhvdXI6XG4gKiBjb25zdCByZXN1bHQgPSByb3VuZFRvTmVhcmVzdEhvdXJzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgMzQsIDU2KSlcbiAqIC8vPT4gVGh1IEp1bCAxMCAyMDE0IDEzOjAwOjAwXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFJvdW5kIDEwIEp1bHkgMjAxNCAxMjozNDo1NiB0byBuZWFyZXN0IGhhbGYgaG91cjpcbiAqIGNvbnN0IHJlc3VsdCA9IHJvdW5kVG9OZWFyZXN0SG91cnMobmV3IERhdGUoMjAxNCwgNiwgMTAsIDEyLCAzNCwgNTYpLCB7IG5lYXJlc3RUbzogNiB9KVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMTI6MDA6MDBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUm91bmQgMTAgSnVseSAyMDE0IDEyOjM0OjU2IHRvIG5lYXJlc3QgaGFsZiBob3VyOlxuICogY29uc3QgcmVzdWx0ID0gcm91bmRUb05lYXJlc3RIb3VycyhuZXcgRGF0ZSgyMDE0LCA2LCAxMCwgMTIsIDM0LCA1NiksIHsgbmVhcmVzdFRvOiA4IH0pXG4gKiAvLz0+IFRodSBKdWwgMTAgMjAxNCAxNjowMDowMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGbG9vciAocm91bmRzIGRvd24pIDEwIEp1bHkgMjAxNCAxMjozNDo1NiB0byBuZWFyZXN0IGhvdXI6XG4gKiBjb25zdCByZXN1bHQgPSByb3VuZFRvTmVhcmVzdEhvdXJzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxLCAyMywgNDUpLCB7IHJvdW5kaW5nTWV0aG9kOiAnY2VpbCcgfSlcbiAqIC8vPT4gVGh1IEp1bCAxMCAyMDE0IDAyOjAwOjAwXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENlaWwgKHJvdW5kcyB1cCkgMTAgSnVseSAyMDE0IDEyOjM0OjU2IHRvIG5lYXJlc3QgcXVhcnRlciBob3VyOlxuICogY29uc3QgcmVzdWx0ID0gcm91bmRUb05lYXJlc3RIb3VycyhuZXcgRGF0ZSgyMDE0LCA2LCAxMCwgMTIsIDM0LCA1NiksIHsgcm91bmRpbmdNZXRob2Q6ICdmbG9vcicsIG5lYXJlc3RUbzogOCB9KVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMDg6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvdW5kVG9OZWFyZXN0SG91cnMoZGF0ZSwgb3B0aW9ucykge1xuICBjb25zdCBuZWFyZXN0VG8gPSBvcHRpb25zPy5uZWFyZXN0VG8gPz8gMTtcblxuICBpZiAobmVhcmVzdFRvIDwgMSB8fCBuZWFyZXN0VG8gPiAxMilcbiAgICByZXR1cm4gY29uc3RydWN0RnJvbShvcHRpb25zPy5pbiB8fCBkYXRlLCBOYU4pO1xuXG4gIGNvbnN0IGRhdGVfID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgZnJhY3Rpb25hbE1pbnV0ZXMgPSBkYXRlXy5nZXRNaW51dGVzKCkgLyA2MDtcbiAgY29uc3QgZnJhY3Rpb25hbFNlY29uZHMgPSBkYXRlXy5nZXRTZWNvbmRzKCkgLyA2MCAvIDYwO1xuICBjb25zdCBmcmFjdGlvbmFsTWlsbGlzZWNvbmRzID0gZGF0ZV8uZ2V0TWlsbGlzZWNvbmRzKCkgLyAxMDAwIC8gNjAgLyA2MDtcbiAgY29uc3QgaG91cnMgPVxuICAgIGRhdGVfLmdldEhvdXJzKCkgK1xuICAgIGZyYWN0aW9uYWxNaW51dGVzICtcbiAgICBmcmFjdGlvbmFsU2Vjb25kcyArXG4gICAgZnJhY3Rpb25hbE1pbGxpc2Vjb25kcztcblxuICBjb25zdCBtZXRob2QgPSBvcHRpb25zPy5yb3VuZGluZ01ldGhvZCA/PyBcInJvdW5kXCI7XG4gIGNvbnN0IHJvdW5kaW5nTWV0aG9kID0gZ2V0Um91bmRpbmdNZXRob2QobWV0aG9kKTtcblxuICBjb25zdCByb3VuZGVkSG91cnMgPSByb3VuZGluZ01ldGhvZChob3VycyAvIG5lYXJlc3RUbykgKiBuZWFyZXN0VG87XG5cbiAgZGF0ZV8uc2V0SG91cnMocm91bmRlZEhvdXJzLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGRhdGVfO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHJvdW5kVG9OZWFyZXN0SG91cnM7XG4iLCAiaW1wb3J0IHsgZ2V0Um91bmRpbmdNZXRob2QgfSBmcm9tIFwiLi9fbGliL2dldFJvdW5kaW5nTWV0aG9kLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayByb3VuZFRvTmVhcmVzdE1pbnV0ZXN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSByb3VuZFRvTmVhcmVzdE1pbnV0ZXNcbiAqIEBjYXRlZ29yeSBNaW51dGUgSGVscGVyc1xuICogQHN1bW1hcnkgUm91bmRzIHRoZSBnaXZlbiBkYXRlIHRvIHRoZSBuZWFyZXN0IG1pbnV0ZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUm91bmRzIHRoZSBnaXZlbiBkYXRlIHRvIHRoZSBuZWFyZXN0IG1pbnV0ZSAob3IgbnVtYmVyIG9mIG1pbnV0ZXMpLlxuICogUm91bmRzIHVwIHdoZW4gdGhlIGdpdmVuIGRhdGUgaXMgZXhhY3RseSBiZXR3ZWVuIHRoZSBuZWFyZXN0IHJvdW5kIG1pbnV0ZXMuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gcm91bmRcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgcm91bmRlZCB0byB0aGUgY2xvc2VzdCBtaW51dGVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUm91bmQgMTAgSnVseSAyMDE0IDEyOjEyOjM0IHRvIG5lYXJlc3QgbWludXRlOlxuICogY29uc3QgcmVzdWx0ID0gcm91bmRUb05lYXJlc3RNaW51dGVzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgMTIsIDM0KSlcbiAqIC8vPT4gVGh1IEp1bCAxMCAyMDE0IDEyOjEzOjAwXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFJvdW5kIDEwIEp1bHkgMjAxNCAxMjoxMjozNCB0byBuZWFyZXN0IHF1YXJ0ZXIgaG91cjpcbiAqIGNvbnN0IHJlc3VsdCA9IHJvdW5kVG9OZWFyZXN0TWludXRlcyhuZXcgRGF0ZSgyMDE0LCA2LCAxMCwgMTIsIDEyLCAzNCksIHsgbmVhcmVzdFRvOiAxNSB9KVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMTI6MTU6MDBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRmxvb3IgKHJvdW5kcyBkb3duKSAxMCBKdWx5IDIwMTQgMTI6MTI6MzQgdG8gbmVhcmVzdCBtaW51dGU6XG4gKiBjb25zdCByZXN1bHQgPSByb3VuZFRvTmVhcmVzdE1pbnV0ZXMobmV3IERhdGUoMjAxNCwgNiwgMTAsIDEyLCAxMiwgMzQpLCB7IHJvdW5kaW5nTWV0aG9kOiAnZmxvb3InIH0pXG4gKiAvLz0+IFRodSBKdWwgMTAgMjAxNCAxMjoxMjowMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDZWlsIChyb3VuZHMgdXApIDEwIEp1bHkgMjAxNCAxMjoxMjozNCB0byBuZWFyZXN0IGhhbGYgaG91cjpcbiAqIGNvbnN0IHJlc3VsdCA9IHJvdW5kVG9OZWFyZXN0TWludXRlcyhuZXcgRGF0ZSgyMDE0LCA2LCAxMCwgMTIsIDEyLCAzNCksIHsgcm91bmRpbmdNZXRob2Q6ICdjZWlsJywgbmVhcmVzdFRvOiAzMCB9KVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMTI6MzA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvdW5kVG9OZWFyZXN0TWludXRlcyhkYXRlLCBvcHRpb25zKSB7XG4gIGNvbnN0IG5lYXJlc3RUbyA9IG9wdGlvbnM/Lm5lYXJlc3RUbyA/PyAxO1xuXG4gIGlmIChuZWFyZXN0VG8gPCAxIHx8IG5lYXJlc3RUbyA+IDMwKSByZXR1cm4gY29uc3RydWN0RnJvbShkYXRlLCBOYU4pO1xuXG4gIGNvbnN0IGRhdGVfID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3QgZnJhY3Rpb25hbFNlY29uZHMgPSBkYXRlXy5nZXRTZWNvbmRzKCkgLyA2MDtcbiAgY29uc3QgZnJhY3Rpb25hbE1pbGxpc2Vjb25kcyA9IGRhdGVfLmdldE1pbGxpc2Vjb25kcygpIC8gMTAwMCAvIDYwO1xuICBjb25zdCBtaW51dGVzID1cbiAgICBkYXRlXy5nZXRNaW51dGVzKCkgKyBmcmFjdGlvbmFsU2Vjb25kcyArIGZyYWN0aW9uYWxNaWxsaXNlY29uZHM7XG5cbiAgY29uc3QgbWV0aG9kID0gb3B0aW9ucz8ucm91bmRpbmdNZXRob2QgPz8gXCJyb3VuZFwiO1xuICBjb25zdCByb3VuZGluZ01ldGhvZCA9IGdldFJvdW5kaW5nTWV0aG9kKG1ldGhvZCk7XG5cbiAgY29uc3Qgcm91bmRlZE1pbnV0ZXMgPSByb3VuZGluZ01ldGhvZChtaW51dGVzIC8gbmVhcmVzdFRvKSAqIG5lYXJlc3RUbztcblxuICBkYXRlXy5zZXRNaW51dGVzKHJvdW5kZWRNaW51dGVzLCAwLCAwKTtcbiAgcmV0dXJuIGRhdGVfO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHJvdW5kVG9OZWFyZXN0TWludXRlcztcbiIsICJpbXBvcnQgeyBzZWNvbmRzSW5Ib3VyIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgc2Vjb25kc1RvSG91cnNcbiAqIEBjYXRlZ29yeSBDb252ZXJzaW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgc2Vjb25kcyB0byBob3Vycy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgYSBudW1iZXIgb2Ygc2Vjb25kcyB0byBhIGZ1bGwgbnVtYmVyIG9mIGhvdXJzLlxuICpcbiAqIEBwYXJhbSBzZWNvbmRzIC0gVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIGJlIGNvbnZlcnRlZFxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBjb252ZXJ0ZWQgaW4gaG91cnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCA3MjAwIHNlY29uZHMgaW50byBob3Vyc1xuICogY29uc3QgcmVzdWx0ID0gc2Vjb25kc1RvSG91cnMoNzIwMClcbiAqIC8vPT4gMlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJdCB1c2VzIGZsb29yIHJvdW5kaW5nOlxuICogY29uc3QgcmVzdWx0ID0gc2Vjb25kc1RvSG91cnMoNzE5OSlcbiAqIC8vPT4gMVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2Vjb25kc1RvSG91cnMoc2Vjb25kcykge1xuICBjb25zdCBob3VycyA9IHNlY29uZHMgLyBzZWNvbmRzSW5Ib3VyO1xuICByZXR1cm4gTWF0aC50cnVuYyhob3Vycyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc2Vjb25kc1RvSG91cnM7XG4iLCAiaW1wb3J0IHsgbWlsbGlzZWNvbmRzSW5TZWNvbmQgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBzZWNvbmRzVG9NaWxsaXNlY29uZHNcbiAqIEBjYXRlZ29yeSBDb252ZXJzaW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgc2Vjb25kcyB0byBtaWxsaXNlY29uZHMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IGEgbnVtYmVyIG9mIHNlY29uZHMgdG8gYSBmdWxsIG51bWJlciBvZiBtaWxsaXNlY29uZHMuXG4gKlxuICogQHBhcmFtIHNlY29uZHMgLSBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdG8gYmUgY29udmVydGVkXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBzZWNvbmRzIGNvbnZlcnRlZCBpbiBtaWxsaXNlY29uZHNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCAyIHNlY29uZHMgaW50byBtaWxsaXNlY29uZHNcbiAqIGNvbnN0IHJlc3VsdCA9IHNlY29uZHNUb01pbGxpc2Vjb25kcygyKVxuICogLy89PiAyMDAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWNvbmRzVG9NaWxsaXNlY29uZHMoc2Vjb25kcykge1xuICByZXR1cm4gc2Vjb25kcyAqIG1pbGxpc2Vjb25kc0luU2Vjb25kO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHNlY29uZHNUb01pbGxpc2Vjb25kcztcbiIsICJpbXBvcnQgeyBzZWNvbmRzSW5NaW51dGUgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcblxuLyoqXG4gKiBAbmFtZSBzZWNvbmRzVG9NaW51dGVzXG4gKiBAY2F0ZWdvcnkgQ29udmVyc2lvbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb252ZXJ0IHNlY29uZHMgdG8gbWludXRlcy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgYSBudW1iZXIgb2Ygc2Vjb25kcyB0byBhIGZ1bGwgbnVtYmVyIG9mIG1pbnV0ZXMuXG4gKlxuICogQHBhcmFtIHNlY29uZHMgLSBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdG8gYmUgY29udmVydGVkXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBzZWNvbmRzIGNvbnZlcnRlZCBpbiBtaW51dGVzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgMTIwIHNlY29uZHMgaW50byBtaW51dGVzXG4gKiBjb25zdCByZXN1bHQgPSBzZWNvbmRzVG9NaW51dGVzKDEyMClcbiAqIC8vPT4gMlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJdCB1c2VzIGZsb29yIHJvdW5kaW5nOlxuICogY29uc3QgcmVzdWx0ID0gc2Vjb25kc1RvTWludXRlcygxMTkpXG4gKiAvLz0+IDFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlY29uZHNUb01pbnV0ZXMoc2Vjb25kcykge1xuICBjb25zdCBtaW51dGVzID0gc2Vjb25kcyAvIHNlY29uZHNJbk1pbnV0ZTtcbiAgcmV0dXJuIE1hdGgudHJ1bmMobWludXRlcyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc2Vjb25kc1RvTWludXRlcztcbiIsICJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgZ2V0RGF5c0luTW9udGggfSBmcm9tIFwiLi9nZXREYXlzSW5Nb250aC5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzZXRNb250aH0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHNldE1vbnRoXG4gKiBAY2F0ZWdvcnkgTW9udGggSGVscGVyc1xuICogQHN1bW1hcnkgU2V0IHRoZSBtb250aCB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFNldCB0aGUgbW9udGggdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIG1vbnRoIC0gVGhlIG1vbnRoIGluZGV4IHRvIHNldCAoMC0xMSlcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgbW9udGggc2V0XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNldCBGZWJydWFyeSB0byAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gc2V0TW9udGgobmV3IERhdGUoMjAxNCwgOCwgMSksIDEpXG4gKiAvLz0+IFNhdCBGZWIgMDEgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0TW9udGgoZGF0ZSwgbW9udGgsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBjb25zdCB5ZWFyID0gX2RhdGUuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgZGF5ID0gX2RhdGUuZ2V0RGF0ZSgpO1xuXG4gIGNvbnN0IG1pZE1vbnRoID0gY29uc3RydWN0RnJvbShvcHRpb25zPy5pbiB8fCBkYXRlLCAwKTtcbiAgbWlkTW9udGguc2V0RnVsbFllYXIoeWVhciwgbW9udGgsIDE1KTtcbiAgbWlkTW9udGguc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIGNvbnN0IGRheXNJbk1vbnRoID0gZ2V0RGF5c0luTW9udGgobWlkTW9udGgpO1xuXG4gIC8vIFNldCB0aGUgZWFybGllciBkYXRlLCBhbGxvd3MgdG8gd3JhcCBKYW4gMzEgdG8gRmViIDI4XG4gIF9kYXRlLnNldE1vbnRoKG1vbnRoLCBNYXRoLm1pbihkYXksIGRheXNJbk1vbnRoKSk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzZXRNb250aDtcbiIsICJpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgc2V0TW9udGggfSBmcm9tIFwiLi9zZXRNb250aC5qc1wiO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzZXR9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBzZXRcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgU2V0IGRhdGUgdmFsdWVzIHRvIGEgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFNldCBkYXRlIHZhbHVlcyB0byBhIGdpdmVuIGRhdGUuXG4gKlxuICogU2V0cyB0aW1lIHZhbHVlcyB0byBkYXRlIGZyb20gb2JqZWN0IGB2YWx1ZXNgLlxuICogQSB2YWx1ZSBpcyBub3Qgc2V0IGlmIGl0IGlzIHVuZGVmaW5lZCBvciBudWxsIG9yIGRvZXNuJ3QgZXhpc3QgaW4gYHZhbHVlc2AuXG4gKlxuICogTm90ZSBhYm91dCBidW5kbGUgc2l6ZTogYHNldGAgZG9lcyBub3QgaW50ZXJuYWxseSB1c2UgYHNldFhgIGZ1bmN0aW9ucyBmcm9tIGRhdGUtZm5zIGJ1dCBpbnN0ZWFkIG9wdHNcbiAqIHRvIHVzZSBuYXRpdmUgYERhdGUjc2V0WGAgbWV0aG9kcy4gSWYgeW91IHVzZSB0aGlzIGZ1bmN0aW9uLCB5b3UgbWF5IG5vdCB3YW50IHRvIGluY2x1ZGUgdGhlXG4gKiBvdGhlciBgc2V0WGAgZnVuY3Rpb25zIHRoYXQgZGF0ZS1mbnMgcHJvdmlkZXMgaWYgeW91IGFyZSBjb25jZXJuZWQgYWJvdXQgdGhlIGJ1bmRsZSBzaXplLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSB2YWx1ZXMgLSBUaGUgZGF0ZSB2YWx1ZXMgdG8gYmUgc2V0XG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggb3B0aW9ucyBzZXRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVHJhbnNmb3JtIDEgU2VwdGVtYmVyIDIwMTQgaW50byAyMCBPY3RvYmVyIDIwMTUgaW4gYSBzaW5nbGUgbGluZTpcbiAqIGNvbnN0IHJlc3VsdCA9IHNldChuZXcgRGF0ZSgyMDE0LCA4LCAyMCksIHsgeWVhcjogMjAxNSwgbW9udGg6IDksIGRhdGU6IDIwIH0pXG4gKiAvLz0+IFR1ZSBPY3QgMjAgMjAxNSAwMDowMDowMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTZXQgMTIgUE0gdG8gMSBTZXB0ZW1iZXIgMjAxNCAwMToyMzo0NSB0byAxIFNlcHRlbWJlciAyMDE0IDEyOjAwOjAwOlxuICogY29uc3QgcmVzdWx0ID0gc2V0KG5ldyBEYXRlKDIwMTQsIDgsIDEsIDEsIDIzLCA0NSksIHsgaG91cnM6IDEyIH0pXG4gKiAvLz0+IE1vbiBTZXAgMDEgMjAxNCAxMjoyMzo0NVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0KGRhdGUsIHZhbHVlcywgb3B0aW9ucykge1xuICBsZXQgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuXG4gIC8vIENoZWNrIGlmIGRhdGUgaXMgSW52YWxpZCBEYXRlIGJlY2F1c2UgRGF0ZS5wcm90b3R5cGUuc2V0RnVsbFllYXIgaWdub3JlcyB0aGUgdmFsdWUgb2YgSW52YWxpZCBEYXRlXG4gIGlmIChpc05hTigrX2RhdGUpKSByZXR1cm4gY29uc3RydWN0RnJvbShvcHRpb25zPy5pbiB8fCBkYXRlLCBOYU4pO1xuXG4gIGlmICh2YWx1ZXMueWVhciAhPSBudWxsKSBfZGF0ZS5zZXRGdWxsWWVhcih2YWx1ZXMueWVhcik7XG4gIGlmICh2YWx1ZXMubW9udGggIT0gbnVsbCkgX2RhdGUgPSBzZXRNb250aChfZGF0ZSwgdmFsdWVzLm1vbnRoKTtcbiAgaWYgKHZhbHVlcy5kYXRlICE9IG51bGwpIF9kYXRlLnNldERhdGUodmFsdWVzLmRhdGUpO1xuICBpZiAodmFsdWVzLmhvdXJzICE9IG51bGwpIF9kYXRlLnNldEhvdXJzKHZhbHVlcy5ob3Vycyk7XG4gIGlmICh2YWx1ZXMubWludXRlcyAhPSBudWxsKSBfZGF0ZS5zZXRNaW51dGVzKHZhbHVlcy5taW51dGVzKTtcbiAgaWYgKHZhbHVlcy5zZWNvbmRzICE9IG51bGwpIF9kYXRlLnNldFNlY29uZHModmFsdWVzLnNlY29uZHMpO1xuICBpZiAodmFsdWVzLm1pbGxpc2Vjb25kcyAhPSBudWxsKSBfZGF0ZS5zZXRNaWxsaXNlY29uZHModmFsdWVzLm1pbGxpc2Vjb25kcyk7XG5cbiAgcmV0dXJuIF9kYXRlO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHNldDtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHNldERhdGV9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBzZXREYXRlXG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFNldCB0aGUgZGF5IG9mIHRoZSBtb250aCB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFNldCB0aGUgZGF5IG9mIHRoZSBtb250aCB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdXNpbmcgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBkYXlPZk1vbnRoIC0gVGhlIGRheSBvZiB0aGUgbW9udGggb2YgdGhlIG5ldyBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIGRheSBvZiB0aGUgbW9udGggc2V0XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNldCB0aGUgMzB0aCBkYXkgb2YgdGhlIG1vbnRoIHRvIDEgU2VwdGVtYmVyIDIwMTQ6XG4gKiBjb25zdCByZXN1bHQgPSBzZXREYXRlKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCAzMClcbiAqIC8vPT4gVHVlIFNlcCAzMCAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXREYXRlKGRhdGUsIGRheU9mTW9udGgsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBfZGF0ZS5zZXREYXRlKGRheU9mTW9udGgpO1xuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc2V0RGF0ZTtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHNldERheU9mWWVhcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHNldERheU9mWWVhclxuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTZXQgdGhlIGRheSBvZiB0aGUgeWVhciB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFNldCB0aGUgZGF5IG9mIHRoZSB5ZWFyIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBkYXlPZlllYXIgLSBUaGUgZGF5IG9mIHRoZSB5ZWFyIG9mIHRoZSBuZXcgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIGRheSBvZiB0aGUgeWVhciBzZXRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU2V0IHRoZSAybmQgZGF5IG9mIHRoZSB5ZWFyIHRvIDIgSnVseSAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gc2V0RGF5T2ZZZWFyKG5ldyBEYXRlKDIwMTQsIDYsIDIpLCAyKVxuICogLy89PiBUaHUgSmFuIDAyIDIwMTQgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldERheU9mWWVhcihkYXRlLCBkYXlPZlllYXIsIG9wdGlvbnMpIHtcbiAgY29uc3QgZGF0ZV8gPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBkYXRlXy5zZXRNb250aCgwKTtcbiAgZGF0ZV8uc2V0RGF0ZShkYXlPZlllYXIpO1xuICByZXR1cm4gZGF0ZV87XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc2V0RGF5T2ZZZWFyO1xuIiwgImltcG9ydCB7XG4gIGdldERlZmF1bHRPcHRpb25zLFxuICBzZXREZWZhdWx0T3B0aW9ucyBhcyBzZXRJbnRlcm5hbERlZmF1bHRPcHRpb25zLFxufSBmcm9tIFwiLi9fbGliL2RlZmF1bHRPcHRpb25zLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgc2V0RGVmYXVsdE9wdGlvbnNcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgU2V0IGRlZmF1bHQgb3B0aW9ucyBpbmNsdWRpbmcgbG9jYWxlLlxuICogQHB1cmUgZmFsc2VcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFNldHMgdGhlIGRlZmF1bHRzIGZvclxuICogYG9wdGlvbnMubG9jYWxlYCwgYG9wdGlvbnMud2Vla1N0YXJ0c09uYCBhbmQgYG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlYFxuICogYXJndW1lbnRzIGZvciBhbGwgZnVuY3Rpb25zLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTZXQgZ2xvYmFsIGxvY2FsZTpcbiAqIGltcG9ydCB7IGVzIH0gZnJvbSAnZGF0ZS1mbnMvbG9jYWxlJ1xuICogc2V0RGVmYXVsdE9wdGlvbnMoeyBsb2NhbGU6IGVzIH0pXG4gKiBjb25zdCByZXN1bHQgPSBmb3JtYXQobmV3IERhdGUoMjAxNCwgOCwgMiksICdQUFBQJylcbiAqIC8vPT4gJ21hcnRlcywgMiBkZSBzZXB0aWVtYnJlIGRlIDIwMTQnXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFN0YXJ0IG9mIHRoZSB3ZWVrIGZvciAyIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZldlZWsobmV3IERhdGUoMjAxNCwgOCwgMikpXG4gKiAvLz0+IFN1biBBdWcgMzEgMjAxNCAwMDowMDowMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTdGFydCBvZiB0aGUgd2VlayBmb3IgMiBTZXB0ZW1iZXIgMjAxNCxcbiAqIC8vIHdoZW4gd2Ugc2V0IHRoYXQgd2VlayBzdGFydHMgb24gTW9uZGF5IGJ5IGRlZmF1bHQ6XG4gKiBzZXREZWZhdWx0T3B0aW9ucyh7IHdlZWtTdGFydHNPbjogMSB9KVxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZldlZWsobmV3IERhdGUoMjAxNCwgOCwgMikpXG4gKiAvLz0+IE1vbiBTZXAgMDEgMjAxNCAwMDowMDowMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNYW51YWxseSBzZXQgb3B0aW9ucyB0YWtlIHByaW9yaXR5IG92ZXIgZGVmYXVsdCBvcHRpb25zOlxuICogc2V0RGVmYXVsdE9wdGlvbnMoeyB3ZWVrU3RhcnRzT246IDEgfSlcbiAqIGNvbnN0IHJlc3VsdCA9IHN0YXJ0T2ZXZWVrKG5ldyBEYXRlKDIwMTQsIDgsIDIpLCB7IHdlZWtTdGFydHNPbjogMCB9KVxuICogLy89PiBTdW4gQXVnIDMxIDIwMTQgMDA6MDA6MDBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVtb3ZlIHRoZSBvcHRpb24gYnkgc2V0dGluZyBpdCB0byBgdW5kZWZpbmVkYDpcbiAqIHNldERlZmF1bHRPcHRpb25zKHsgd2Vla1N0YXJ0c09uOiAxIH0pXG4gKiBzZXREZWZhdWx0T3B0aW9ucyh7IHdlZWtTdGFydHNPbjogdW5kZWZpbmVkIH0pXG4gKiBjb25zdCByZXN1bHQgPSBzdGFydE9mV2VlayhuZXcgRGF0ZSgyMDE0LCA4LCAyKSlcbiAqIC8vPT4gU3VuIEF1ZyAzMSAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXREZWZhdWx0T3B0aW9ucyhvcHRpb25zKSB7XG4gIGNvbnN0IHJlc3VsdCA9IHt9O1xuICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IGdldERlZmF1bHRPcHRpb25zKCk7XG5cbiAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBkZWZhdWx0T3B0aW9ucykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGVmYXVsdE9wdGlvbnMsIHByb3BlcnR5KSkge1xuICAgICAgLy8gW1RPRE9dIEkgY2hhbGxlbmdlIHlvdSB0byBmaXggdGhlIHR5cGVcbiAgICAgIHJlc3VsdFtwcm9wZXJ0eV0gPSBkZWZhdWx0T3B0aW9uc1twcm9wZXJ0eV07XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBvcHRpb25zKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLCBwcm9wZXJ0eSkpIHtcbiAgICAgIGlmIChvcHRpb25zW3Byb3BlcnR5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIFtUT0RPXSBJIGNoYWxsZW5nZSB5b3UgdG8gZml4IHRoZSB0eXBlXG4gICAgICAgIGRlbGV0ZSByZXN1bHRbcHJvcGVydHldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gW1RPRE9dIEkgY2hhbGxlbmdlIHlvdSB0byBmaXggdGhlIHR5cGVcbiAgICAgICAgcmVzdWx0W3Byb3BlcnR5XSA9IG9wdGlvbnNbcHJvcGVydHldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldEludGVybmFsRGVmYXVsdE9wdGlvbnMocmVzdWx0KTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzZXREZWZhdWx0T3B0aW9ucztcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHNldEhvdXJzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc2V0SG91cnNcbiAqIEBjYXRlZ29yeSBIb3VyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFNldCB0aGUgaG91cnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTZXQgdGhlIGhvdXJzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBob3VycyAtIFRoZSBob3VycyBvZiB0aGUgbmV3IGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBob3VycyBzZXRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU2V0IDQgaG91cnMgdG8gMSBTZXB0ZW1iZXIgMjAxNCAxMTozMDowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IHNldEhvdXJzKG5ldyBEYXRlKDIwMTQsIDgsIDEsIDExLCAzMCksIDQpXG4gKiAvLz0+IE1vbiBTZXAgMDEgMjAxNCAwNDozMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0SG91cnMoZGF0ZSwgaG91cnMsIG9wdGlvbnMpIHtcbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBfZGF0ZS5zZXRIb3Vycyhob3Vycyk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzZXRIb3VycztcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHNldE1pbGxpc2Vjb25kc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHNldE1pbGxpc2Vjb25kc1xuICogQGNhdGVnb3J5IE1pbGxpc2Vjb25kIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFNldCB0aGUgbWlsbGlzZWNvbmRzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogU2V0IHRoZSBtaWxsaXNlY29uZHMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIG1pbGxpc2Vjb25kcyAtIFRoZSBtaWxsaXNlY29uZHMgb2YgdGhlIG5ldyBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIG1pbGxpc2Vjb25kcyBzZXRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU2V0IDMwMCBtaWxsaXNlY29uZHMgdG8gMSBTZXB0ZW1iZXIgMjAxNCAxMTozMDo0MC41MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzZXRNaWxsaXNlY29uZHMobmV3IERhdGUoMjAxNCwgOCwgMSwgMTEsIDMwLCA0MCwgNTAwKSwgMzAwKVxuICogLy89PiBNb24gU2VwIDAxIDIwMTQgMTE6MzA6NDAuMzAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRNaWxsaXNlY29uZHMoZGF0ZSwgbWlsbGlzZWNvbmRzLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgX2RhdGUuc2V0TWlsbGlzZWNvbmRzKG1pbGxpc2Vjb25kcyk7XG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzZXRNaWxsaXNlY29uZHM7XG4iLCAiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzZXRNaW51dGVzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc2V0TWludXRlc1xuICogQGNhdGVnb3J5IE1pbnV0ZSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTZXQgdGhlIG1pbnV0ZXMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTZXQgdGhlIG1pbnV0ZXMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHVzaW5nIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24sIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBtaW51dGVzIC0gVGhlIG1pbnV0ZXMgb2YgdGhlIG5ldyBkYXRlXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgbWludXRlcyBzZXRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU2V0IDQ1IG1pbnV0ZXMgdG8gMSBTZXB0ZW1iZXIgMjAxNCAxMTozMDo0MDpcbiAqIGNvbnN0IHJlc3VsdCA9IHNldE1pbnV0ZXMobmV3IERhdGUoMjAxNCwgOCwgMSwgMTEsIDMwLCA0MCksIDQ1KVxuICogLy89PiBNb24gU2VwIDAxIDIwMTQgMTE6NDU6NDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldE1pbnV0ZXMoZGF0ZSwgbWludXRlcywgb3B0aW9ucykge1xuICBjb25zdCBkYXRlXyA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG4gIGRhdGVfLnNldE1pbnV0ZXMobWludXRlcyk7XG4gIHJldHVybiBkYXRlXztcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzZXRNaW51dGVzO1xuIiwgImltcG9ydCB7IHNldE1vbnRoIH0gZnJvbSBcIi4vc2V0TW9udGguanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc2V0UXVhcnRlcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHNldFF1YXJ0ZXJcbiAqIEBjYXRlZ29yeSBRdWFydGVyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFNldCB0aGUgeWVhciBxdWFydGVyIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogU2V0IHRoZSB5ZWFyIHF1YXJ0ZXIgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHF1YXJ0ZXIgLSBUaGUgcXVhcnRlciBvZiB0aGUgbmV3IGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgcXVhcnRlciBzZXRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU2V0IHRoZSAybmQgcXVhcnRlciB0byAyIEp1bHkgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IHNldFF1YXJ0ZXIobmV3IERhdGUoMjAxNCwgNiwgMiksIDIpXG4gKiAvLz0+IFdlZCBBcHIgMDIgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0UXVhcnRlcihkYXRlLCBxdWFydGVyLCBvcHRpb25zKSB7XG4gIGNvbnN0IGRhdGVfID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgY29uc3Qgb2xkUXVhcnRlciA9IE1hdGgudHJ1bmMoZGF0ZV8uZ2V0TW9udGgoKSAvIDMpICsgMTtcbiAgY29uc3QgZGlmZiA9IHF1YXJ0ZXIgLSBvbGRRdWFydGVyO1xuICByZXR1cm4gc2V0TW9udGgoZGF0ZV8sIGRhdGVfLmdldE1vbnRoKCkgKyBkaWZmICogMyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc2V0UXVhcnRlcjtcbiIsICJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHNldFNlY29uZHN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBzZXRTZWNvbmRzXG4gKiBAY2F0ZWdvcnkgU2Vjb25kIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFNldCB0aGUgc2Vjb25kcyB0byB0aGUgZ2l2ZW4gZGF0ZSwgd2l0aCBjb250ZXh0IHN1cHBvcnQuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTZXQgdGhlIHNlY29uZHMgdG8gdGhlIGdpdmVuIGRhdGUsIHdpdGggYW4gb3B0aW9uYWwgY29udGV4dCBmb3IgdGltZSB6b25lIHNwZWNpZmljYXRpb24uXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHNlY29uZHMgLSBUaGUgc2Vjb25kcyBvZiB0aGUgbmV3IGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBzZWNvbmRzIHNldFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTZXQgNDUgc2Vjb25kcyB0byAxIFNlcHRlbWJlciAyMDE0IDExOjMwOjQwOlxuICogY29uc3QgcmVzdWx0ID0gc2V0U2Vjb25kcyhuZXcgRGF0ZSgyMDE0LCA4LCAxLCAxMSwgMzAsIDQwKSwgNDUpXG4gKiAvLz0+IE1vbiBTZXAgMDEgMjAxNCAxMTozMDo0NVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0U2Vjb25kcyhkYXRlLCBzZWNvbmRzLCBvcHRpb25zKSB7XG4gIGNvbnN0IF9kYXRlID0gdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKTtcbiAgX2RhdGUuc2V0U2Vjb25kcyhzZWNvbmRzKTtcbiAgcmV0dXJuIF9kYXRlO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHNldFNlY29uZHM7XG4iLCAiaW1wb3J0IHsgZ2V0RGVmYXVsdE9wdGlvbnMgfSBmcm9tIFwiLi9fbGliL2RlZmF1bHRPcHRpb25zLmpzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS5qc1wiO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzIH0gZnJvbSBcIi4vZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzLmpzXCI7XG5pbXBvcnQgeyBzdGFydE9mV2Vla1llYXIgfSBmcm9tIFwiLi9zdGFydE9mV2Vla1llYXIuanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc2V0V2Vla1llYXJ9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBzZXRXZWVrWWVhclxuICogQGNhdGVnb3J5IFdlZWstTnVtYmVyaW5nIFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgU2V0IHRoZSBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogU2V0IHRoZSBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyIHRvIHRoZSBnaXZlbiBkYXRlLFxuICogc2F2aW5nIHRoZSB3ZWVrIG51bWJlciBhbmQgdGhlIHdlZWtkYXkgbnVtYmVyLlxuICogVGhlIGV4YWN0IGNhbGN1bGF0aW9uIGRlcGVuZHMgb24gdGhlIHZhbHVlcyBvZlxuICogYG9wdGlvbnMud2Vla1N0YXJ0c09uYCAod2hpY2ggaXMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWspXG4gKiBhbmQgYG9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlYCAod2hpY2ggaXMgdGhlIGRheSBvZiBKYW51YXJ5LCB3aGljaCBpcyBhbHdheXMgaW5cbiAqIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB3ZWVrLW51bWJlcmluZyB5ZWFyKVxuICpcbiAqIFdlZWsgbnVtYmVyaW5nOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9XZWVrI1RoZV9JU09fd2Vla19kYXRlX3N5c3RlbVxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSB3ZWVrWWVhciAtIFRoZSBsb2NhbCB3ZWVrLW51bWJlcmluZyB5ZWFyIG9mIHRoZSBuZXcgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIGxvY2FsIHdlZWstbnVtYmVyaW5nIHllYXIgc2V0XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNldCB0aGUgbG9jYWwgd2Vlay1udW1iZXJpbmcgeWVhciAyMDA0IHRvIDIgSmFudWFyeSAyMDEwIHdpdGggZGVmYXVsdCBvcHRpb25zOlxuICogY29uc3QgcmVzdWx0ID0gc2V0V2Vla1llYXIobmV3IERhdGUoMjAxMCwgMCwgMiksIDIwMDQpXG4gKiAvLz0+IFNhdCBKYW4gMDMgMjAwNCAwMDowMDowMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTZXQgdGhlIGxvY2FsIHdlZWstbnVtYmVyaW5nIHllYXIgMjAwNCB0byAyIEphbnVhcnkgMjAxMCxcbiAqIC8vIGlmIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWtcbiAqIC8vIGFuZCA0IEphbnVhcnkgaXMgYWx3YXlzIGluIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyOlxuICogY29uc3QgcmVzdWx0ID0gc2V0V2Vla1llYXIobmV3IERhdGUoMjAxMCwgMCwgMiksIDIwMDQsIHtcbiAqICAgd2Vla1N0YXJ0c09uOiAxLFxuICogICBmaXJzdFdlZWtDb250YWluc0RhdGU6IDRcbiAqIH0pXG4gKiAvLz0+IFNhdCBKYW4gMDEgMjAwNSAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0V2Vla1llYXIoZGF0ZSwgd2Vla1llYXIsIG9wdGlvbnMpIHtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBnZXREZWZhdWx0T3B0aW9ucygpO1xuICBjb25zdCBmaXJzdFdlZWtDb250YWluc0RhdGUgPVxuICAgIG9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSA/P1xuICAgIG9wdGlvbnM/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlID8/XG4gICAgZGVmYXVsdE9wdGlvbnMuZmlyc3RXZWVrQ29udGFpbnNEYXRlID8/XG4gICAgZGVmYXVsdE9wdGlvbnMubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGUgPz9cbiAgICAxO1xuXG4gIGNvbnN0IGRpZmYgPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMoXG4gICAgdG9EYXRlKGRhdGUsIG9wdGlvbnM/LmluKSxcbiAgICBzdGFydE9mV2Vla1llYXIoZGF0ZSwgb3B0aW9ucyksXG4gICAgb3B0aW9ucyxcbiAgKTtcblxuICBjb25zdCBmaXJzdFdlZWsgPSBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsIDApO1xuICBmaXJzdFdlZWsuc2V0RnVsbFllYXIod2Vla1llYXIsIDAsIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZSk7XG4gIGZpcnN0V2Vlay5zZXRIb3VycygwLCAwLCAwLCAwKTtcblxuICBjb25zdCBkYXRlXyA9IHN0YXJ0T2ZXZWVrWWVhcihmaXJzdFdlZWssIG9wdGlvbnMpO1xuICBkYXRlXy5zZXREYXRlKGRhdGVfLmdldERhdGUoKSArIGRpZmYpO1xuICByZXR1cm4gZGF0ZV87XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc2V0V2Vla1llYXI7XG4iLCAiaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuL2NvbnN0cnVjdEZyb20uanNcIjtcbmltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc2V0WWVhcn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHNldFllYXJcbiAqIEBjYXRlZ29yeSBZZWFyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFNldCB0aGUgeWVhciB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFNldCB0aGUgeWVhciB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0geWVhciAtIFRoZSB5ZWFyIG9mIHRoZSBuZXcgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zLlxuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSB5ZWFyIHNldFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTZXQgeWVhciAyMDEzIHRvIDEgU2VwdGVtYmVyIDIwMTQ6XG4gKiBjb25zdCByZXN1bHQgPSBzZXRZZWFyKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCAyMDEzKVxuICogLy89PiBTdW4gU2VwIDAxIDIwMTMgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFllYXIoZGF0ZSwgeWVhciwgb3B0aW9ucykge1xuICBjb25zdCBkYXRlXyA9IHRvRGF0ZShkYXRlLCBvcHRpb25zPy5pbik7XG5cbiAgLy8gQ2hlY2sgaWYgZGF0ZSBpcyBJbnZhbGlkIERhdGUgYmVjYXVzZSBEYXRlLnByb3RvdHlwZS5zZXRGdWxsWWVhciBpZ25vcmVzIHRoZSB2YWx1ZSBvZiBJbnZhbGlkIERhdGVcbiAgaWYgKGlzTmFOKCtkYXRlXykpIHJldHVybiBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsIE5hTik7XG5cbiAgZGF0ZV8uc2V0RnVsbFllYXIoeWVhcik7XG4gIHJldHVybiBkYXRlXztcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzZXRZZWFyO1xuIiwgImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc3RhcnRPZkRlY2FkZX0gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN0YXJ0T2ZEZWNhZGVcbiAqIEBjYXRlZ29yeSBEZWNhZGUgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBzdGFydCBvZiBhIGRlY2FkZSBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgZGVjYWRlIGZvciB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgb3JpZ2luYWwgZGF0ZVxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHN0YXJ0IG9mIGEgZGVjYWRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBzdGFydCBvZiBhIGRlY2FkZSBmb3IgMjEgT2N0b2JlciAyMDE1IDAwOjAwOjAwOlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZkRlY2FkZShuZXcgRGF0ZSgyMDE1LCA5LCAyMSwgMDAsIDAwLCAwMCkpXG4gKiAvLz0+IEphbiAwMSAyMDEwIDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydE9mRGVjYWRlKGRhdGUsIG9wdGlvbnMpIHtcbiAgLy8gVE9ETzogU3dpdGNoIHRvIG1vcmUgdGVjaG5pY2FsIGRlZmluaXRpb24gaW4gb2YgZGVjYWRlcyB0aGF0IHN0YXJ0IHdpdGggMVxuICAvLyBlbmQgd2l0aCAwLiBJLmUuIDIwMDEtMjAxMCBpbnN0ZWFkIG9mIGN1cnJlbnQgMjAwMC0yMDA5LiBJdCdzIGEgYnJlYWtpbmdcbiAgLy8gY2hhbmdlLCBzbyBpdCBjYW4gb25seSBiZSBkb25lIGluIDQuMC5cbiAgY29uc3QgX2RhdGUgPSB0b0RhdGUoZGF0ZSwgb3B0aW9ucz8uaW4pO1xuICBjb25zdCB5ZWFyID0gX2RhdGUuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgZGVjYWRlID0gTWF0aC5mbG9vcih5ZWFyIC8gMTApICogMTA7XG4gIF9kYXRlLnNldEZ1bGxZZWFyKGRlY2FkZSwgMCwgMSk7XG4gIF9kYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICByZXR1cm4gX2RhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc3RhcnRPZkRlY2FkZTtcbiIsICJpbXBvcnQgeyBzdGFydE9mRGF5IH0gZnJvbSBcIi4vc3RhcnRPZkRheS5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc3RhcnRPZlRvZGF5fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3RhcnRPZlRvZGF5XG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgc3RhcnQgb2YgdG9kYXkuXG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJuIHRoZSBzdGFydCBvZiB0b2RheS5cbiAqXG4gKiBAdHlwZVBhcmFtIENvbnRleHREYXRlIC0gVGhlIGBEYXRlYCB0eXBlIG9mIHRoZSBjb250ZXh0IGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBzdGFydCBvZiB0b2RheVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0b2RheSBpcyA2IE9jdG9iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IHN0YXJ0T2ZUb2RheSgpXG4gKiAvLz0+IE1vbiBPY3QgNiAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydE9mVG9kYXkob3B0aW9ucykge1xuICByZXR1cm4gc3RhcnRPZkRheShEYXRlLm5vdygpLCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdGFydE9mVG9kYXk7XG4iLCAiaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuL2NvbnN0cnVjdEZyb20uanNcIjtcbmltcG9ydCB7IGNvbnN0cnVjdE5vdyB9IGZyb20gXCIuL2NvbnN0cnVjdE5vdy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc3RhcnRPZlRvbW9ycm93fSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3RhcnRPZlRvbW9ycm93XG4gKiBAY2F0ZWdvcnkgRGF5IEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFJldHVybiB0aGUgc3RhcnQgb2YgdG9tb3Jyb3cuXG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEB0eXBlUGFyYW0gQ29udGV4dERhdGUgLSBUaGUgYERhdGVgIHR5cGUgb2YgdGhlIGNvbnRleHQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIHN0YXJ0IG9mIHRvbW9ycm93XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIHRvbW9ycm93LlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0b2RheSBpcyA2IE9jdG9iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IHN0YXJ0T2ZUb21vcnJvdygpXG4gKiAvLz0+IFR1ZSBPY3QgNyAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydE9mVG9tb3Jyb3cob3B0aW9ucykge1xuICBjb25zdCBub3cgPSBjb25zdHJ1Y3ROb3cob3B0aW9ucz8uaW4pO1xuICBjb25zdCB5ZWFyID0gbm93LmdldEZ1bGxZZWFyKCk7XG4gIGNvbnN0IG1vbnRoID0gbm93LmdldE1vbnRoKCk7XG4gIGNvbnN0IGRheSA9IG5vdy5nZXREYXRlKCk7XG5cbiAgY29uc3QgZGF0ZSA9IGNvbnN0cnVjdEZyb20ob3B0aW9ucz8uaW4sIDApO1xuICBkYXRlLnNldEZ1bGxZZWFyKHllYXIsIG1vbnRoLCBkYXkgKyAxKTtcbiAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGRhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc3RhcnRPZlRvbW9ycm93O1xuIiwgImltcG9ydCB7IGNvbnN0cnVjdE5vdyB9IGZyb20gXCIuL2NvbnN0cnVjdE5vdy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc3RhcnRPZlllc3RlcmRheX0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN0YXJ0T2ZZZXN0ZXJkYXlcbiAqIEBjYXRlZ29yeSBEYXkgSGVscGVyc1xuICogQHN1bW1hcnkgUmV0dXJuIHRoZSBzdGFydCBvZiB5ZXN0ZXJkYXkuXG4gKiBAcHVyZSBmYWxzZVxuICpcbiAqIEB0eXBlUGFyYW0gQ29udGV4dERhdGUgLSBUaGUgYERhdGVgIHR5cGUgb2YgdGhlIGNvbnRleHQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIHllc3RlcmRheS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgc3RhcnQgb2YgeWVzdGVyZGF5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElmIHRvZGF5IGlzIDYgT2N0b2JlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gc3RhcnRPZlllc3RlcmRheSgpXG4gKiAvLz0+IFN1biBPY3QgNSAyMDE0IDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydE9mWWVzdGVyZGF5KG9wdGlvbnMpIHtcbiAgY29uc3Qgbm93ID0gY29uc3RydWN0Tm93KG9wdGlvbnM/LmluKTtcbiAgY29uc3QgeWVhciA9IG5vdy5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBtb250aCA9IG5vdy5nZXRNb250aCgpO1xuICBjb25zdCBkYXkgPSBub3cuZ2V0RGF0ZSgpO1xuXG4gIGNvbnN0IGRhdGUgPSBjb25zdHJ1Y3ROb3cob3B0aW9ucz8uaW4pO1xuICBkYXRlLnNldEZ1bGxZZWFyKHllYXIsIG1vbnRoLCBkYXkgLSAxKTtcbiAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgcmV0dXJuIGRhdGU7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc3RhcnRPZlllc3RlcmRheTtcbiIsICJpbXBvcnQgeyBhZGRNb250aHMgfSBmcm9tIFwiLi9hZGRNb250aHMuanNcIjtcblxuLyoqXG4gKiBUaGUgc3ViTW9udGhzIGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBzdWJNb250aHNcbiAqIEBjYXRlZ29yeSBNb250aCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtb250aHMgZnJvbSB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1vbnRocyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIG1vbnRocyB0byBiZSBzdWJ0cmFjdGVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIG1vbnRocyBzdWJ0cmFjdGVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFN1YnRyYWN0IDUgbW9udGhzIGZyb20gMSBGZWJydWFyeSAyMDE1OlxuICogY29uc3QgcmVzdWx0ID0gc3ViTW9udGhzKG5ldyBEYXRlKDIwMTUsIDEsIDEpLCA1KVxuICogLy89PiBNb24gU2VwIDAxIDIwMTQgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1Yk1vbnRocyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGFkZE1vbnRocyhkYXRlLCAtYW1vdW50LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdWJNb250aHM7XG4iLCAiaW1wb3J0IHsgY29uc3RydWN0RnJvbSB9IGZyb20gXCIuL2NvbnN0cnVjdEZyb20uanNcIjtcbmltcG9ydCB7IHN1YkRheXMgfSBmcm9tIFwiLi9zdWJEYXlzLmpzXCI7XG5pbXBvcnQgeyBzdWJNb250aHMgfSBmcm9tIFwiLi9zdWJNb250aHMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHN1Yn0gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN1YlxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIHllYXJzLCBtb250aHMsIHdlZWtzLCBkYXlzLCBob3VycywgbWludXRlcyBhbmQgc2Vjb25kcyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogU3VidHJhY3QgdGhlIHNwZWNpZmllZCB5ZWFycywgbW9udGhzLCB3ZWVrcywgZGF5cywgaG91cnMsIG1pbnV0ZXMgYW5kIHNlY29uZHMgZnJvbSB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0gZHVyYXRpb24gLSBUaGUgb2JqZWN0IHdpdGggeWVhcnMsIG1vbnRocywgd2Vla3MsIGRheXMsIGhvdXJzLCBtaW51dGVzIGFuZCBzZWNvbmRzIHRvIGJlIHN1YnRyYWN0ZWRcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIHwgS2V5ICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8IHllYXJzICAgfCBBbW91bnQgb2YgeWVhcnMgdG8gYmUgc3VidHJhY3RlZCAgIHxcbiAqIHwgbW9udGhzICB8IEFtb3VudCBvZiBtb250aHMgdG8gYmUgc3VidHJhY3RlZCAgfFxuICogfCB3ZWVrcyAgIHwgQW1vdW50IG9mIHdlZWtzIHRvIGJlIHN1YnRyYWN0ZWQgICB8XG4gKiB8IGRheXMgICAgfCBBbW91bnQgb2YgZGF5cyB0byBiZSBzdWJ0cmFjdGVkICAgIHxcbiAqIHwgaG91cnMgICB8IEFtb3VudCBvZiBob3VycyB0byBiZSBzdWJ0cmFjdGVkICAgfFxuICogfCBtaW51dGVzIHwgQW1vdW50IG9mIG1pbnV0ZXMgdG8gYmUgc3VidHJhY3RlZCB8XG4gKiB8IHNlY29uZHMgfCBBbW91bnQgb2Ygc2Vjb25kcyB0byBiZSBzdWJ0cmFjdGVkIHxcbiAqXG4gKiBBbGwgdmFsdWVzIGRlZmF1bHQgdG8gMFxuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBzZWNvbmRzIHN1YnRyYWN0ZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3VidHJhY3QgdGhlIGZvbGxvd2luZyBkdXJhdGlvbiBmcm9tIDE1IEp1bmUgMjAxNyAxNToyOToyMFxuICogY29uc3QgcmVzdWx0ID0gc3ViKG5ldyBEYXRlKDIwMTcsIDUsIDE1LCAxNSwgMjksIDIwKSwge1xuICogICB5ZWFyczogMixcbiAqICAgbW9udGhzOiA5LFxuICogICB3ZWVrczogMSxcbiAqICAgZGF5czogNyxcbiAqICAgaG91cnM6IDUsXG4gKiAgIG1pbnV0ZXM6IDksXG4gKiAgIHNlY29uZHM6IDMwXG4gKiB9KVxuICogLy89PiBNb24gU2VwIDEgMjAxNCAxMDoxOTo1MFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ViKGRhdGUsIGR1cmF0aW9uLCBvcHRpb25zKSB7XG4gIGNvbnN0IHtcbiAgICB5ZWFycyA9IDAsXG4gICAgbW9udGhzID0gMCxcbiAgICB3ZWVrcyA9IDAsXG4gICAgZGF5cyA9IDAsXG4gICAgaG91cnMgPSAwLFxuICAgIG1pbnV0ZXMgPSAwLFxuICAgIHNlY29uZHMgPSAwLFxuICB9ID0gZHVyYXRpb247XG5cbiAgY29uc3Qgd2l0aG91dE1vbnRocyA9IHN1Yk1vbnRocyhkYXRlLCBtb250aHMgKyB5ZWFycyAqIDEyLCBvcHRpb25zKTtcbiAgY29uc3Qgd2l0aG91dERheXMgPSBzdWJEYXlzKHdpdGhvdXRNb250aHMsIGRheXMgKyB3ZWVrcyAqIDcsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IG1pbnV0ZXNUb1N1YiA9IG1pbnV0ZXMgKyBob3VycyAqIDYwO1xuICBjb25zdCBzZWNvbmRzVG9TdWIgPSBzZWNvbmRzICsgbWludXRlc1RvU3ViICogNjA7XG4gIGNvbnN0IG1zVG9TdWIgPSBzZWNvbmRzVG9TdWIgKiAxMDAwO1xuXG4gIHJldHVybiBjb25zdHJ1Y3RGcm9tKG9wdGlvbnM/LmluIHx8IGRhdGUsICt3aXRob3V0RGF5cyAtIG1zVG9TdWIpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHN1YjtcbiIsICJpbXBvcnQgeyBhZGRCdXNpbmVzc0RheXMgfSBmcm9tIFwiLi9hZGRCdXNpbmVzc0RheXMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHN1YkJ1c2luZXNzRGF5c30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN1YkJ1c2luZXNzRGF5c1xuICogQGNhdGVnb3J5IERheSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBidXNpbmVzcyBkYXlzIChtb24gLSBmcmkpIGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBidXNpbmVzcyBkYXlzIChtb24gLSBmcmkpIGZyb20gdGhlIGdpdmVuIGRhdGUsIGlnbm9yaW5nIHdlZWtlbmRzLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIGJ1c2luZXNzIGRheXMgdG8gYmUgc3VidHJhY3RlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBidXNpbmVzcyBkYXlzIHN1YnRyYWN0ZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3VidHJhY3QgMTAgYnVzaW5lc3MgZGF5cyBmcm9tIDEgU2VwdGVtYmVyIDIwMTQ6XG4gKiBjb25zdCByZXN1bHQgPSBzdWJCdXNpbmVzc0RheXMobmV3IERhdGUoMjAxNCwgOCwgMSksIDEwKVxuICogLy89PiBNb24gQXVnIDE4IDIwMTQgMDA6MDA6MDAgKHNraXBwZWQgd2Vla2VuZCBkYXlzKVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ViQnVzaW5lc3NEYXlzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICByZXR1cm4gYWRkQnVzaW5lc3NEYXlzKGRhdGUsIC1hbW91bnQsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHN1YkJ1c2luZXNzRGF5cztcbiIsICJpbXBvcnQgeyBhZGRIb3VycyB9IGZyb20gXCIuL2FkZEhvdXJzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdWJIb3Vyc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN1YkhvdXJzXG4gKiBAY2F0ZWdvcnkgSG91ciBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBob3VycyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogU3VidHJhY3QgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgaG91cnMgZnJvbSB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0gYW1vdW50IC0gVGhlIGFtb3VudCBvZiBob3VycyB0byBiZSBzdWJ0cmFjdGVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBob3VycyBzdWJ0cmFjdGVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFN1YnRyYWN0IDIgaG91cnMgZnJvbSAxMSBKdWx5IDIwMTQgMDE6MDA6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdWJIb3VycyhuZXcgRGF0ZSgyMDE0LCA2LCAxMSwgMSwgMCksIDIpXG4gKiAvLz0+IFRodSBKdWwgMTAgMjAxNCAyMzowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ViSG91cnMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIHJldHVybiBhZGRIb3VycyhkYXRlLCAtYW1vdW50LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdWJIb3VycztcbiIsICJpbXBvcnQgeyBhZGRNaWxsaXNlY29uZHMgfSBmcm9tIFwiLi9hZGRNaWxsaXNlY29uZHMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHN1Yk1pbGxpc2Vjb25kc30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIG1pbGxpc2Vjb25kcyB0byBiZSBzdWJ0cmFjdGVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIG1pbGxpc2Vjb25kcyBzdWJ0cmFjdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJNaWxsaXNlY29uZHMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIHJldHVybiBhZGRNaWxsaXNlY29uZHMoZGF0ZSwgLWFtb3VudCwgb3B0aW9ucyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc3ViTWlsbGlzZWNvbmRzO1xuIiwgImltcG9ydCB7IGFkZE1pbnV0ZXMgfSBmcm9tIFwiLi9hZGRNaW51dGVzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdWJNaW51dGVzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3ViTWludXRlc1xuICogQGNhdGVnb3J5IE1pbnV0ZSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaW51dGVzIGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaW51dGVzIGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgbWludXRlcyB0byBiZSBzdWJ0cmFjdGVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIG1pbnV0ZXMgc3VidHJhY3RlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTdWJ0cmFjdCAzMCBtaW51dGVzIGZyb20gMTAgSnVseSAyMDE0IDEyOjAwOjAwOlxuICogY29uc3QgcmVzdWx0ID0gc3ViTWludXRlcyhuZXcgRGF0ZSgyMDE0LCA2LCAxMCwgMTIsIDApLCAzMClcbiAqIC8vPT4gVGh1IEp1bCAxMCAyMDE0IDExOjMwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJNaW51dGVzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICByZXR1cm4gYWRkTWludXRlcyhkYXRlLCAtYW1vdW50LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdWJNaW51dGVzO1xuIiwgImltcG9ydCB7IGFkZFF1YXJ0ZXJzIH0gZnJvbSBcIi4vYWRkUXVhcnRlcnMuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHN1YlF1YXJ0ZXJzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3ViUXVhcnRlcnNcbiAqIEBjYXRlZ29yeSBRdWFydGVyIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHllYXIgcXVhcnRlcnMgZnJvbSB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHllYXIgcXVhcnRlcnMgZnJvbSB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0RGF0ZSAtIFRoZSByZXN1bHQgYERhdGVgIHR5cGUsIGl0IGlzIHRoZSB0eXBlIHJldHVybmVkIGZyb20gdGhlIGNvbnRleHQgZnVuY3Rpb24gaWYgaXQgaXMgcGFzc2VkLCBvciBpbmZlcnJlZCBmcm9tIHRoZSBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0gYW1vdW50IC0gVGhlIGFtb3VudCBvZiBxdWFydGVycyB0byBiZSBzdWJ0cmFjdGVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbiBvYmplY3Qgd2l0aCBvcHRpb25zXG4gKlxuICogQHJldHVybnMgVGhlIG5ldyBkYXRlIHdpdGggdGhlIHF1YXJ0ZXJzIHN1YnRyYWN0ZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3VidHJhY3QgMyBxdWFydGVycyBmcm9tIDEgU2VwdGVtYmVyIDIwMTQ6XG4gKiBjb25zdCByZXN1bHQgPSBzdWJRdWFydGVycyhuZXcgRGF0ZSgyMDE0LCA4LCAxKSwgMylcbiAqIC8vPT4gU3VuIERlYyAwMSAyMDEzIDAwOjAwOjAwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJRdWFydGVycyhkYXRlLCBhbW91bnQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGFkZFF1YXJ0ZXJzKGRhdGUsIC1hbW91bnQsIG9wdGlvbnMpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IHN1YlF1YXJ0ZXJzO1xuIiwgImltcG9ydCB7IGFkZFNlY29uZHMgfSBmcm9tIFwiLi9hZGRTZWNvbmRzLmpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdWJTZWNvbmRzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogU3VidHJhY3QgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc2Vjb25kcyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIHNlY29uZHMgdG8gYmUgc3VidHJhY3RlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgc2Vjb25kcyBzdWJ0cmFjdGVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFN1YnRyYWN0IDMwIHNlY29uZHMgZnJvbSAxMCBKdWx5IDIwMTQgMTI6NDU6MDA6XG4gKiBjb25zdCByZXN1bHQgPSBzdWJTZWNvbmRzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgNDUsIDApLCAzMClcbiAqIC8vPT4gVGh1IEp1bCAxMCAyMDE0IDEyOjQ0OjMwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJTZWNvbmRzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICByZXR1cm4gYWRkU2Vjb25kcyhkYXRlLCAtYW1vdW50LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdWJTZWNvbmRzO1xuIiwgImltcG9ydCB7IGFkZFdlZWtzIH0gZnJvbSBcIi4vYWRkV2Vla3MuanNcIjtcblxuLyoqXG4gKiBUaGUge0BsaW5rIHN1YldlZWtzfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5cbi8qKlxuICogQG5hbWUgc3ViV2Vla3NcbiAqIEBjYXRlZ29yeSBXZWVrIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHdlZWtzIGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB3ZWVrcyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICogQHR5cGVQYXJhbSBSZXN1bHREYXRlIC0gVGhlIHJlc3VsdCBgRGF0ZWAgdHlwZSwgaXQgaXMgdGhlIHR5cGUgcmV0dXJuZWQgZnJvbSB0aGUgY29udGV4dCBmdW5jdGlvbiBpZiBpdCBpcyBwYXNzZWQsIG9yIGluZmVycmVkIGZyb20gdGhlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSBhbW91bnQgLSBUaGUgYW1vdW50IG9mIHdlZWtzIHRvIGJlIHN1YnRyYWN0ZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuIG9iamVjdCB3aXRoIG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBUaGUgbmV3IGRhdGUgd2l0aCB0aGUgd2Vla3Mgc3VidHJhY3RlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTdWJ0cmFjdCA0IHdlZWtzIGZyb20gMSBTZXB0ZW1iZXIgMjAxNDpcbiAqIGNvbnN0IHJlc3VsdCA9IHN1YldlZWtzKG5ldyBEYXRlKDIwMTQsIDgsIDEpLCA0KVxuICogLy89PiBNb24gQXVnIDA0IDIwMTQgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1YldlZWtzKGRhdGUsIGFtb3VudCwgb3B0aW9ucykge1xuICByZXR1cm4gYWRkV2Vla3MoZGF0ZSwgLWFtb3VudCwgb3B0aW9ucyk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgc3ViV2Vla3M7XG4iLCAiaW1wb3J0IHsgYWRkWWVhcnMgfSBmcm9tIFwiLi9hZGRZZWFycy5qc1wiO1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgc3ViWWVhcnN9IGZ1bmN0aW9uIG9wdGlvbnMuXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBzdWJZZWFyc1xuICogQGNhdGVnb3J5IFllYXIgSGVscGVyc1xuICogQHN1bW1hcnkgU3VidHJhY3QgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgeWVhcnMgZnJvbSB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHllYXJzIGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgb2YgeWVhcnMgdG8gYmUgc3VidHJhY3RlZC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBuZXcgZGF0ZSB3aXRoIHRoZSB5ZWFycyBzdWJ0cmFjdGVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFN1YnRyYWN0IDUgeWVhcnMgZnJvbSAxIFNlcHRlbWJlciAyMDE0OlxuICogY29uc3QgcmVzdWx0ID0gc3ViWWVhcnMobmV3IERhdGUoMjAxNCwgOCwgMSksIDUpXG4gKiAvLz0+IFR1ZSBTZXAgMDEgMjAwOSAwMDowMDowMFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ViWWVhcnMoZGF0ZSwgYW1vdW50LCBvcHRpb25zKSB7XG4gIHJldHVybiBhZGRZZWFycyhkYXRlLCAtYW1vdW50LCBvcHRpb25zKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBzdWJZZWFycztcbiIsICJpbXBvcnQgeyBkYXlzSW5XZWVrIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgd2Vla3NUb0RheXNcbiAqIEBjYXRlZ29yeSBDb252ZXJzaW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgd2Vla3MgdG8gZGF5cy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgYSBudW1iZXIgb2Ygd2Vla3MgdG8gYSBmdWxsIG51bWJlciBvZiBkYXlzLlxuICpcbiAqIEBwYXJhbSB3ZWVrcyAtIFRoZSBudW1iZXIgb2Ygd2Vla3MgdG8gYmUgY29udmVydGVkXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiB3ZWVrcyBjb252ZXJ0ZWQgaW4gZGF5c1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb252ZXJ0IDIgd2Vla3MgaW50byBkYXlzXG4gKiBjb25zdCByZXN1bHQgPSB3ZWVrc1RvRGF5cygyKVxuICogLy89PiAxNFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2Vla3NUb0RheXMod2Vla3MpIHtcbiAgcmV0dXJuIE1hdGgudHJ1bmMod2Vla3MgKiBkYXlzSW5XZWVrKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCB3ZWVrc1RvRGF5cztcbiIsICJpbXBvcnQgeyBkYXlzSW5ZZWFyIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgeWVhcnNUb0RheXNcbiAqIEBjYXRlZ29yeSBDb252ZXJzaW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgeWVhcnMgdG8gZGF5cy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgYSBudW1iZXIgb2YgeWVhcnMgdG8gYSBmdWxsIG51bWJlciBvZiBkYXlzLlxuICpcbiAqIEBwYXJhbSB5ZWFycyAtIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYmUgY29udmVydGVkXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiB5ZWFycyBjb252ZXJ0ZWQgaW4gZGF5c1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb252ZXJ0IDIgeWVhcnMgaW50byBkYXlzXG4gKiBjb25zdCByZXN1bHQgPSB5ZWFyc1RvRGF5cygyKVxuICogLy89PiA3MzBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHllYXJzVG9EYXlzKHllYXJzKSB7XG4gIHJldHVybiBNYXRoLnRydW5jKHllYXJzICogZGF5c0luWWVhcik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgeWVhcnNUb0RheXM7XG4iLCAiaW1wb3J0IHsgbW9udGhzSW5ZZWFyIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgeWVhcnNUb01vbnRoc1xuICogQGNhdGVnb3J5IENvbnZlcnNpb24gSGVscGVyc1xuICogQHN1bW1hcnkgQ29udmVydCB5ZWFycyB0byBtb250aHMuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IGEgbnVtYmVyIG9mIHllYXJzIHRvIGEgZnVsbCBudW1iZXIgb2YgbW9udGhzLlxuICpcbiAqIEBwYXJhbSB5ZWFycyAtIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYmUgY29udmVydGVkXG4gKlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiB5ZWFycyBjb252ZXJ0ZWQgaW4gbW9udGhzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgMiB5ZWFycyBpbnRvIG1vbnRoc1xuICogY29uc3QgcmVzdWx0ID0geWVhcnNUb01vbnRocygyKVxuICogLy89PiAyNFxuICovXG5leHBvcnQgZnVuY3Rpb24geWVhcnNUb01vbnRocyh5ZWFycykge1xuICByZXR1cm4gTWF0aC50cnVuYyh5ZWFycyAqIG1vbnRoc0luWWVhcik7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgeWVhcnNUb01vbnRocztcbiIsICJpbXBvcnQgeyBxdWFydGVyc0luWWVhciB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIHllYXJzVG9RdWFydGVyc1xuICogQGNhdGVnb3J5IENvbnZlcnNpb24gSGVscGVyc1xuICogQHN1bW1hcnkgQ29udmVydCB5ZWFycyB0byBxdWFydGVycy5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgYSBudW1iZXIgb2YgeWVhcnMgdG8gYSBmdWxsIG51bWJlciBvZiBxdWFydGVycy5cbiAqXG4gKiBAcGFyYW0geWVhcnMgLSBUaGUgbnVtYmVyIG9mIHllYXJzIHRvIGJlIGNvbnZlcnRlZFxuICpcbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgeWVhcnMgY29udmVydGVkIGluIHF1YXJ0ZXJzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgMiB5ZWFycyB0byBxdWFydGVyc1xuICogY29uc3QgcmVzdWx0ID0geWVhcnNUb1F1YXJ0ZXJzKDIpXG4gKiAvLz0+IDhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHllYXJzVG9RdWFydGVycyh5ZWFycykge1xuICByZXR1cm4gTWF0aC50cnVuYyh5ZWFycyAqIHF1YXJ0ZXJzSW5ZZWFyKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCB5ZWFyc1RvUXVhcnRlcnM7XG4iLCAiLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IGBzY3JpcHRzL2J1aWxkL2luZGljZXMudHNgLiBQbGVhc2UsIGRvbid0IGNoYW5nZSBpdC5cblxuZXhwb3J0ICogZnJvbSBcIi4vYWRkLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hZGRCdXNpbmVzc0RheXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FkZERheXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FkZEhvdXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hZGRJU09XZWVrWWVhcnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FkZE1pbGxpc2Vjb25kcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWRkTWludXRlcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWRkTW9udGhzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hZGRRdWFydGVycy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWRkU2Vjb25kcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWRkV2Vla3MuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FkZFllYXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hcmVJbnRlcnZhbHNPdmVybGFwcGluZy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2xhbXAuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Nsb3Nlc3RJbmRleFRvLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jbG9zZXN0VG8uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBhcmVBc2MuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBhcmVEZXNjLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdHJ1Y3ROb3cuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RheXNUb1dlZWtzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaWZmZXJlbmNlSW5CdXNpbmVzc0RheXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrWWVhcnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3MuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaWZmZXJlbmNlSW5EYXlzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaWZmZXJlbmNlSW5Ib3Vycy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlmZmVyZW5jZUluSVNPV2Vla1llYXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpZmZlcmVuY2VJbk1pbnV0ZXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpZmZlcmVuY2VJbk1vbnRocy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlmZmVyZW5jZUluUXVhcnRlcnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpZmZlcmVuY2VJblNlY29uZHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpZmZlcmVuY2VJbldlZWtzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaWZmZXJlbmNlSW5ZZWFycy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZWFjaERheU9mSW50ZXJ2YWwuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VhY2hIb3VyT2ZJbnRlcnZhbC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZWFjaE1pbnV0ZU9mSW50ZXJ2YWwuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VhY2hNb250aE9mSW50ZXJ2YWwuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VhY2hRdWFydGVyT2ZJbnRlcnZhbC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZWFjaFdlZWtPZkludGVydmFsLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lYWNoV2Vla2VuZE9mSW50ZXJ2YWwuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VhY2hXZWVrZW5kT2ZNb250aC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZWFjaFdlZWtlbmRPZlllYXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VhY2hZZWFyT2ZJbnRlcnZhbC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW5kT2ZEYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VuZE9mRGVjYWRlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbmRPZkhvdXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VuZE9mSVNPV2Vlay5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW5kT2ZJU09XZWVrWWVhci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW5kT2ZNaW51dGUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VuZE9mTW9udGguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VuZE9mUXVhcnRlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW5kT2ZTZWNvbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VuZE9mVG9kYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VuZE9mVG9tb3Jyb3cuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VuZE9mV2Vlay5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW5kT2ZZZWFyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbmRPZlllc3RlcmRheS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybWF0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3JtYXREaXN0YW5jZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybWF0RGlzdGFuY2VTdHJpY3QuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm1hdERpc3RhbmNlVG9Ob3cuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3QuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm1hdER1cmF0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3JtYXRJU08uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm1hdElTTzkwNzUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm1hdElTT0R1cmF0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3JtYXRSRkMzMzM5LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3JtYXRSRkM3MjMxLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3JtYXRSZWxhdGl2ZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZnJvbVVuaXhUaW1lLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXREYXRlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXREYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldERheU9mWWVhci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0RGF5c0luTW9udGguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldERheXNJblllYXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldERlY2FkZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0RGVmYXVsdE9wdGlvbnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldEhvdXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRJU09EYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldElTT1dlZWsuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldElTT1dlZWtZZWFyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRJU09XZWVrc0luWWVhci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0TWlsbGlzZWNvbmRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRNaW51dGVzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRNb250aC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0T3ZlcmxhcHBpbmdEYXlzSW5JbnRlcnZhbHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldFF1YXJ0ZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldFNlY29uZHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldFRpbWUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldFVuaXhUaW1lLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRXZWVrLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRXZWVrT2ZNb250aC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0V2Vla1llYXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dldFdlZWtzSW5Nb250aC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0WWVhci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaG91cnNUb01pbGxpc2Vjb25kcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaG91cnNUb01pbnV0ZXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2hvdXJzVG9TZWNvbmRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnRlcnZhbC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW50ZXJ2YWxUb0R1cmF0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnRsRm9ybWF0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnRsRm9ybWF0RGlzdGFuY2UuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzQWZ0ZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzQmVmb3JlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc0RhdGUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzRXF1YWwuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzRXhpc3RzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc0ZpcnN0RGF5T2ZNb250aC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaXNGcmlkYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzRnV0dXJlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc0xhc3REYXlPZk1vbnRoLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc0xlYXBZZWFyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc01hdGNoLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc01vbmRheS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaXNQYXN0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc1NhbWVEYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzU2FtZUhvdXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzU2FtZUlTT1dlZWsuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzU2FtZUlTT1dlZWtZZWFyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc1NhbWVNaW51dGUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzU2FtZU1vbnRoLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc1NhbWVRdWFydGVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc1NhbWVTZWNvbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzU2FtZVdlZWsuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzU2FtZVllYXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzU2F0dXJkYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzU3VuZGF5LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc1RoaXNIb3VyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc1RoaXNJU09XZWVrLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc1RoaXNNaW51dGUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzVGhpc01vbnRoLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc1RoaXNRdWFydGVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pc1RoaXNTZWNvbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzVGhpc1dlZWsuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzVGhpc1llYXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzVGh1cnNkYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzVG9kYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzVG9tb3Jyb3cuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzVHVlc2RheS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaXNWYWxpZC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaXNXZWRuZXNkYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzV2Vla2VuZC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaXNXaXRoaW5JbnRlcnZhbC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaXNZZXN0ZXJkYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xhc3REYXlPZkRlY2FkZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGFzdERheU9mSVNPV2Vlay5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGFzdERheU9mSVNPV2Vla1llYXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xhc3REYXlPZk1vbnRoLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sYXN0RGF5T2ZRdWFydGVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sYXN0RGF5T2ZXZWVrLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sYXN0RGF5T2ZZZWFyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWdodEZvcm1hdC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWF4LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9taWxsaXNlY29uZHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21pbGxpc2Vjb25kc1RvSG91cnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21pbGxpc2Vjb25kc1RvTWludXRlcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWlsbGlzZWNvbmRzVG9TZWNvbmRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9taW4uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21pbnV0ZXNUb0hvdXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9taW51dGVzVG9NaWxsaXNlY29uZHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21pbnV0ZXNUb1NlY29uZHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vbnRoc1RvUXVhcnRlcnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vbnRoc1RvWWVhcnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25leHREYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25leHRGcmlkYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25leHRNb25kYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25leHRTYXR1cmRheS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmV4dFN1bmRheS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmV4dFRodXJzZGF5LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9uZXh0VHVlc2RheS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmV4dFdlZG5lc2RheS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGFyc2UuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BhcnNlSVNPLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYXJzZUpTT04uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ByZXZpb3VzRGF5LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcmV2aW91c0ZyaWRheS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJldmlvdXNNb25kYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ByZXZpb3VzU2F0dXJkYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ByZXZpb3VzU3VuZGF5LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcmV2aW91c1RodXJzZGF5LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcmV2aW91c1R1ZXNkYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ByZXZpb3VzV2VkbmVzZGF5LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWFydGVyc1RvTW9udGhzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWFydGVyc1RvWWVhcnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdW5kVG9OZWFyZXN0SG91cnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdW5kVG9OZWFyZXN0TWludXRlcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2Vjb25kc1RvSG91cnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlY29uZHNUb01pbGxpc2Vjb25kcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2Vjb25kc1RvTWludXRlcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXREYXRlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXREYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldERheU9mWWVhci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0RGVmYXVsdE9wdGlvbnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldEhvdXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRJU09EYXkuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldElTT1dlZWsuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldElTT1dlZWtZZWFyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRNaWxsaXNlY29uZHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldE1pbnV0ZXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NldE1vbnRoLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRRdWFydGVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRTZWNvbmRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRXZWVrLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXRXZWVrWWVhci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2V0WWVhci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhcnRPZkRheS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhcnRPZkRlY2FkZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhcnRPZkhvdXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXJ0T2ZJU09XZWVrLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFydE9mSVNPV2Vla1llYXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXJ0T2ZNaW51dGUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXJ0T2ZNb250aC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhcnRPZlF1YXJ0ZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXJ0T2ZTZWNvbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXJ0T2ZUb2RheS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhcnRPZlRvbW9ycm93LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFydE9mV2Vlay5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhcnRPZldlZWtZZWFyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFydE9mWWVhci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhcnRPZlllc3RlcmRheS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3ViLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdWJCdXNpbmVzc0RheXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1YkRheXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1YkhvdXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdWJJU09XZWVrWWVhcnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1Yk1pbGxpc2Vjb25kcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3ViTWludXRlcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3ViTW9udGhzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdWJRdWFydGVycy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3ViU2Vjb25kcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3ViV2Vla3MuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1YlllYXJzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90b0RhdGUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyYW5zcG9zZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vd2Vla3NUb0RheXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3llYXJzVG9EYXlzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi95ZWFyc1RvTW9udGhzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi95ZWFyc1RvUXVhcnRlcnMuanNcIjtcbiIsICIhZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1lKCk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShlKToodD1cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOnR8fHNlbGYpLmRheWpzPWUoKX0odGhpcywoZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgdD0xZTMsZT02ZTQsbj0zNmU1LHI9XCJtaWxsaXNlY29uZFwiLGk9XCJzZWNvbmRcIixzPVwibWludXRlXCIsdT1cImhvdXJcIixhPVwiZGF5XCIsbz1cIndlZWtcIixjPVwibW9udGhcIixmPVwicXVhcnRlclwiLGg9XCJ5ZWFyXCIsZD1cImRhdGVcIixsPVwiSW52YWxpZCBEYXRlXCIsJD0vXihcXGR7NH0pWy0vXT8oXFxkezEsMn0pP1stL10/KFxcZHswLDJ9KVtUdFxcc10qKFxcZHsxLDJ9KT86PyhcXGR7MSwyfSk/Oj8oXFxkezEsMn0pP1suOl0/KFxcZCspPyQvLHk9L1xcWyhbXlxcXV0rKV18WXsxLDR9fE17MSw0fXxEezEsMn18ZHsxLDR9fEh7MSwyfXxoezEsMn18YXxBfG17MSwyfXxzezEsMn18WnsxLDJ9fFNTUy9nLE09e25hbWU6XCJlblwiLHdlZWtkYXlzOlwiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXlcIi5zcGxpdChcIl9cIiksbW9udGhzOlwiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlclwiLnNwbGl0KFwiX1wiKSxvcmRpbmFsOmZ1bmN0aW9uKHQpe3ZhciBlPVtcInRoXCIsXCJzdFwiLFwibmRcIixcInJkXCJdLG49dCUxMDA7cmV0dXJuXCJbXCIrdCsoZVsobi0yMCklMTBdfHxlW25dfHxlWzBdKStcIl1cIn19LG09ZnVuY3Rpb24odCxlLG4pe3ZhciByPVN0cmluZyh0KTtyZXR1cm4hcnx8ci5sZW5ndGg+PWU/dDpcIlwiK0FycmF5KGUrMS1yLmxlbmd0aCkuam9pbihuKSt0fSx2PXtzOm0sejpmdW5jdGlvbih0KXt2YXIgZT0tdC51dGNPZmZzZXQoKSxuPU1hdGguYWJzKGUpLHI9TWF0aC5mbG9vcihuLzYwKSxpPW4lNjA7cmV0dXJuKGU8PTA/XCIrXCI6XCItXCIpK20ociwyLFwiMFwiKStcIjpcIittKGksMixcIjBcIil9LG06ZnVuY3Rpb24gdChlLG4pe2lmKGUuZGF0ZSgpPG4uZGF0ZSgpKXJldHVybi10KG4sZSk7dmFyIHI9MTIqKG4ueWVhcigpLWUueWVhcigpKSsobi5tb250aCgpLWUubW9udGgoKSksaT1lLmNsb25lKCkuYWRkKHIsYykscz1uLWk8MCx1PWUuY2xvbmUoKS5hZGQocisocz8tMToxKSxjKTtyZXR1cm4rKC0ocisobi1pKS8ocz9pLXU6dS1pKSl8fDApfSxhOmZ1bmN0aW9uKHQpe3JldHVybiB0PDA/TWF0aC5jZWlsKHQpfHwwOk1hdGguZmxvb3IodCl9LHA6ZnVuY3Rpb24odCl7cmV0dXJue006Yyx5OmgsdzpvLGQ6YSxEOmQsaDp1LG06cyxzOmksbXM6cixROmZ9W3RdfHxTdHJpbmcodHx8XCJcIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9zJC8sXCJcIil9LHU6ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXR9fSxnPVwiZW5cIixEPXt9O0RbZ109TTt2YXIgcD1cIiRpc0RheWpzT2JqZWN0XCIsUz1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIF98fCEoIXR8fCF0W3BdKX0sdz1mdW5jdGlvbiB0KGUsbixyKXt2YXIgaTtpZighZSlyZXR1cm4gZztpZihcInN0cmluZ1wiPT10eXBlb2YgZSl7dmFyIHM9ZS50b0xvd2VyQ2FzZSgpO0Rbc10mJihpPXMpLG4mJihEW3NdPW4saT1zKTt2YXIgdT1lLnNwbGl0KFwiLVwiKTtpZighaSYmdS5sZW5ndGg+MSlyZXR1cm4gdCh1WzBdKX1lbHNle3ZhciBhPWUubmFtZTtEW2FdPWUsaT1hfXJldHVybiFyJiZpJiYoZz1pKSxpfHwhciYmZ30sTz1mdW5jdGlvbih0LGUpe2lmKFModCkpcmV0dXJuIHQuY2xvbmUoKTt2YXIgbj1cIm9iamVjdFwiPT10eXBlb2YgZT9lOnt9O3JldHVybiBuLmRhdGU9dCxuLmFyZ3M9YXJndW1lbnRzLG5ldyBfKG4pfSxiPXY7Yi5sPXcsYi5pPVMsYi53PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE8odCx7bG9jYWxlOmUuJEwsdXRjOmUuJHUseDplLiR4LCRvZmZzZXQ6ZS4kb2Zmc2V0fSl9O3ZhciBfPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gTSh0KXt0aGlzLiRMPXcodC5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZSh0KSx0aGlzLiR4PXRoaXMuJHh8fHQueHx8e30sdGhpc1twXT0hMH12YXIgbT1NLnByb3RvdHlwZTtyZXR1cm4gbS5wYXJzZT1mdW5jdGlvbih0KXt0aGlzLiRkPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZGF0ZSxuPXQudXRjO2lmKG51bGw9PT1lKXJldHVybiBuZXcgRGF0ZShOYU4pO2lmKGIudShlKSlyZXR1cm4gbmV3IERhdGU7aWYoZSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKGUpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiYhL1okL2kudGVzdChlKSl7dmFyIHI9ZS5tYXRjaCgkKTtpZihyKXt2YXIgaT1yWzJdLTF8fDAscz0ocls3XXx8XCIwXCIpLnN1YnN0cmluZygwLDMpO3JldHVybiBuP25ldyBEYXRlKERhdGUuVVRDKHJbMV0saSxyWzNdfHwxLHJbNF18fDAscls1XXx8MCxyWzZdfHwwLHMpKTpuZXcgRGF0ZShyWzFdLGksclszXXx8MSxyWzRdfHwwLHJbNV18fDAscls2XXx8MCxzKX19cmV0dXJuIG5ldyBEYXRlKGUpfSh0KSx0aGlzLmluaXQoKX0sbS5pbml0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kZDt0aGlzLiR5PXQuZ2V0RnVsbFllYXIoKSx0aGlzLiRNPXQuZ2V0TW9udGgoKSx0aGlzLiREPXQuZ2V0RGF0ZSgpLHRoaXMuJFc9dC5nZXREYXkoKSx0aGlzLiRIPXQuZ2V0SG91cnMoKSx0aGlzLiRtPXQuZ2V0TWludXRlcygpLHRoaXMuJHM9dC5nZXRTZWNvbmRzKCksdGhpcy4kbXM9dC5nZXRNaWxsaXNlY29uZHMoKX0sbS4kdXRpbHM9ZnVuY3Rpb24oKXtyZXR1cm4gYn0sbS5pc1ZhbGlkPWZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLiRkLnRvU3RyaW5nKCk9PT1sKX0sbS5pc1NhbWU9ZnVuY3Rpb24odCxlKXt2YXIgbj1PKHQpO3JldHVybiB0aGlzLnN0YXJ0T2YoZSk8PW4mJm48PXRoaXMuZW5kT2YoZSl9LG0uaXNBZnRlcj1mdW5jdGlvbih0LGUpe3JldHVybiBPKHQpPHRoaXMuc3RhcnRPZihlKX0sbS5pc0JlZm9yZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmVuZE9mKGUpPE8odCl9LG0uJGc9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBiLnUodCk/dGhpc1tlXTp0aGlzLnNldChuLHQpfSxtLnVuaXg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKS8xZTMpfSxtLnZhbHVlT2Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC5nZXRUaW1lKCl9LG0uc3RhcnRPZj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMscj0hIWIudShlKXx8ZSxmPWIucCh0KSxsPWZ1bmN0aW9uKHQsZSl7dmFyIGk9Yi53KG4uJHU/RGF0ZS5VVEMobi4keSxlLHQpOm5ldyBEYXRlKG4uJHksZSx0KSxuKTtyZXR1cm4gcj9pOmkuZW5kT2YoYSl9LCQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYi53KG4udG9EYXRlKClbdF0uYXBwbHkobi50b0RhdGUoXCJzXCIpLChyP1swLDAsMCwwXTpbMjMsNTksNTksOTk5XSkuc2xpY2UoZSkpLG4pfSx5PXRoaXMuJFcsTT10aGlzLiRNLG09dGhpcy4kRCx2PVwic2V0XCIrKHRoaXMuJHU/XCJVVENcIjpcIlwiKTtzd2l0Y2goZil7Y2FzZSBoOnJldHVybiByP2woMSwwKTpsKDMxLDExKTtjYXNlIGM6cmV0dXJuIHI/bCgxLE0pOmwoMCxNKzEpO2Nhc2Ugbzp2YXIgZz10aGlzLiRsb2NhbGUoKS53ZWVrU3RhcnR8fDAsRD0oeTxnP3krNzp5KS1nO3JldHVybiBsKHI/bS1EOm0rKDYtRCksTSk7Y2FzZSBhOmNhc2UgZDpyZXR1cm4gJCh2K1wiSG91cnNcIiwwKTtjYXNlIHU6cmV0dXJuICQoditcIk1pbnV0ZXNcIiwxKTtjYXNlIHM6cmV0dXJuICQoditcIlNlY29uZHNcIiwyKTtjYXNlIGk6cmV0dXJuICQoditcIk1pbGxpc2Vjb25kc1wiLDMpO2RlZmF1bHQ6cmV0dXJuIHRoaXMuY2xvbmUoKX19LG0uZW5kT2Y9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3RhcnRPZih0LCExKX0sbS4kc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIG4sbz1iLnAodCksZj1cInNldFwiKyh0aGlzLiR1P1wiVVRDXCI6XCJcIiksbD0obj17fSxuW2FdPWYrXCJEYXRlXCIsbltkXT1mK1wiRGF0ZVwiLG5bY109ZitcIk1vbnRoXCIsbltoXT1mK1wiRnVsbFllYXJcIixuW3VdPWYrXCJIb3Vyc1wiLG5bc109ZitcIk1pbnV0ZXNcIixuW2ldPWYrXCJTZWNvbmRzXCIsbltyXT1mK1wiTWlsbGlzZWNvbmRzXCIsbilbb10sJD1vPT09YT90aGlzLiREKyhlLXRoaXMuJFcpOmU7aWYobz09PWN8fG89PT1oKXt2YXIgeT10aGlzLmNsb25lKCkuc2V0KGQsMSk7eS4kZFtsXSgkKSx5LmluaXQoKSx0aGlzLiRkPXkuc2V0KGQsTWF0aC5taW4odGhpcy4kRCx5LmRheXNJbk1vbnRoKCkpKS4kZH1lbHNlIGwmJnRoaXMuJGRbbF0oJCk7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXN9LG0uc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS4kc2V0KHQsZSl9LG0uZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzW2IucCh0KV0oKX0sbS5hZGQ9ZnVuY3Rpb24ocixmKXt2YXIgZCxsPXRoaXM7cj1OdW1iZXIocik7dmFyICQ9Yi5wKGYpLHk9ZnVuY3Rpb24odCl7dmFyIGU9TyhsKTtyZXR1cm4gYi53KGUuZGF0ZShlLmRhdGUoKStNYXRoLnJvdW5kKHQqcikpLGwpfTtpZigkPT09YylyZXR1cm4gdGhpcy5zZXQoYyx0aGlzLiRNK3IpO2lmKCQ9PT1oKXJldHVybiB0aGlzLnNldChoLHRoaXMuJHkrcik7aWYoJD09PWEpcmV0dXJuIHkoMSk7aWYoJD09PW8pcmV0dXJuIHkoNyk7dmFyIE09KGQ9e30sZFtzXT1lLGRbdV09bixkW2ldPXQsZClbJF18fDEsbT10aGlzLiRkLmdldFRpbWUoKStyKk07cmV0dXJuIGIudyhtLHRoaXMpfSxtLnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKC0xKnQsZSl9LG0uZm9ybWF0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLiRsb2NhbGUoKTtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG4uaW52YWxpZERhdGV8fGw7dmFyIHI9dHx8XCJZWVlZLU1NLUREVEhIOm1tOnNzWlwiLGk9Yi56KHRoaXMpLHM9dGhpcy4kSCx1PXRoaXMuJG0sYT10aGlzLiRNLG89bi53ZWVrZGF5cyxjPW4ubW9udGhzLGY9bi5tZXJpZGllbSxoPWZ1bmN0aW9uKHQsbixpLHMpe3JldHVybiB0JiYodFtuXXx8dChlLHIpKXx8aVtuXS5zbGljZSgwLHMpfSxkPWZ1bmN0aW9uKHQpe3JldHVybiBiLnMocyUxMnx8MTIsdCxcIjBcIil9LCQ9Znx8ZnVuY3Rpb24odCxlLG4pe3ZhciByPXQ8MTI/XCJBTVwiOlwiUE1cIjtyZXR1cm4gbj9yLnRvTG93ZXJDYXNlKCk6cn07cmV0dXJuIHIucmVwbGFjZSh5LChmdW5jdGlvbih0LHIpe3JldHVybiByfHxmdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZVwiWVlcIjpyZXR1cm4gU3RyaW5nKGUuJHkpLnNsaWNlKC0yKTtjYXNlXCJZWVlZXCI6cmV0dXJuIGIucyhlLiR5LDQsXCIwXCIpO2Nhc2VcIk1cIjpyZXR1cm4gYSsxO2Nhc2VcIk1NXCI6cmV0dXJuIGIucyhhKzEsMixcIjBcIik7Y2FzZVwiTU1NXCI6cmV0dXJuIGgobi5tb250aHNTaG9ydCxhLGMsMyk7Y2FzZVwiTU1NTVwiOnJldHVybiBoKGMsYSk7Y2FzZVwiRFwiOnJldHVybiBlLiREO2Nhc2VcIkREXCI6cmV0dXJuIGIucyhlLiRELDIsXCIwXCIpO2Nhc2VcImRcIjpyZXR1cm4gU3RyaW5nKGUuJFcpO2Nhc2VcImRkXCI6cmV0dXJuIGgobi53ZWVrZGF5c01pbixlLiRXLG8sMik7Y2FzZVwiZGRkXCI6cmV0dXJuIGgobi53ZWVrZGF5c1Nob3J0LGUuJFcsbywzKTtjYXNlXCJkZGRkXCI6cmV0dXJuIG9bZS4kV107Y2FzZVwiSFwiOnJldHVybiBTdHJpbmcocyk7Y2FzZVwiSEhcIjpyZXR1cm4gYi5zKHMsMixcIjBcIik7Y2FzZVwiaFwiOnJldHVybiBkKDEpO2Nhc2VcImhoXCI6cmV0dXJuIGQoMik7Y2FzZVwiYVwiOnJldHVybiAkKHMsdSwhMCk7Y2FzZVwiQVwiOnJldHVybiAkKHMsdSwhMSk7Y2FzZVwibVwiOnJldHVybiBTdHJpbmcodSk7Y2FzZVwibW1cIjpyZXR1cm4gYi5zKHUsMixcIjBcIik7Y2FzZVwic1wiOnJldHVybiBTdHJpbmcoZS4kcyk7Y2FzZVwic3NcIjpyZXR1cm4gYi5zKGUuJHMsMixcIjBcIik7Y2FzZVwiU1NTXCI6cmV0dXJuIGIucyhlLiRtcywzLFwiMFwiKTtjYXNlXCJaXCI6cmV0dXJuIGl9cmV0dXJuIG51bGx9KHQpfHxpLnJlcGxhY2UoXCI6XCIsXCJcIil9KSl9LG0udXRjT2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDE1Ki1NYXRoLnJvdW5kKHRoaXMuJGQuZ2V0VGltZXpvbmVPZmZzZXQoKS8xNSl9LG0uZGlmZj1mdW5jdGlvbihyLGQsbCl7dmFyICQseT10aGlzLE09Yi5wKGQpLG09TyhyKSx2PShtLnV0Y09mZnNldCgpLXRoaXMudXRjT2Zmc2V0KCkpKmUsZz10aGlzLW0sRD1mdW5jdGlvbigpe3JldHVybiBiLm0oeSxtKX07c3dpdGNoKE0pe2Nhc2UgaDokPUQoKS8xMjticmVhaztjYXNlIGM6JD1EKCk7YnJlYWs7Y2FzZSBmOiQ9RCgpLzM7YnJlYWs7Y2FzZSBvOiQ9KGctdikvNjA0OGU1O2JyZWFrO2Nhc2UgYTokPShnLXYpLzg2NGU1O2JyZWFrO2Nhc2UgdTokPWcvbjticmVhaztjYXNlIHM6JD1nL2U7YnJlYWs7Y2FzZSBpOiQ9Zy90O2JyZWFrO2RlZmF1bHQ6JD1nfXJldHVybiBsPyQ6Yi5hKCQpfSxtLmRheXNJbk1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kT2YoYykuJER9LG0uJGxvY2FsZT1mdW5jdGlvbigpe3JldHVybiBEW3RoaXMuJExdfSxtLmxvY2FsZT1mdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybiB0aGlzLiRMO3ZhciBuPXRoaXMuY2xvbmUoKSxyPXcodCxlLCEwKTtyZXR1cm4gciYmKG4uJEw9ciksbn0sbS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBiLncodGhpcy4kZCx0aGlzKX0sbS50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpfSxtLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sbS50b0lTT1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvSVNPU3RyaW5nKCl9LG0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1VUQ1N0cmluZygpfSxNfSgpLGs9Xy5wcm90b3R5cGU7cmV0dXJuIE8ucHJvdG90eXBlPWssW1tcIiRtc1wiLHJdLFtcIiRzXCIsaV0sW1wiJG1cIixzXSxbXCIkSFwiLHVdLFtcIiRXXCIsYV0sW1wiJE1cIixjXSxbXCIkeVwiLGhdLFtcIiREXCIsZF1dLmZvckVhY2goKGZ1bmN0aW9uKHQpe2tbdFsxXV09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuJGcoZSx0WzBdLHRbMV0pfX0pKSxPLmV4dGVuZD1mdW5jdGlvbih0LGUpe3JldHVybiB0LiRpfHwodChlLF8sTyksdC4kaT0hMCksT30sTy5sb2NhbGU9dyxPLmlzRGF5anM9UyxPLnVuaXg9ZnVuY3Rpb24odCl7cmV0dXJuIE8oMWUzKnQpfSxPLmVuPURbZ10sTy5Mcz1ELE8ucD17fSxPfSkpOyIsICIhZnVuY3Rpb24oZSxvKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1vKCk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShvKTooZT1cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmV8fHNlbGYpLmRheWpzX3BsdWdpbl9pc1RvZGF5PW8oKX0odGhpcywoZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjtyZXR1cm4gZnVuY3Rpb24oZSxvLHQpe28ucHJvdG90eXBlLmlzVG9kYXk9ZnVuY3Rpb24oKXt2YXIgZT1cIllZWVktTU0tRERcIixvPXQoKTtyZXR1cm4gdGhpcy5mb3JtYXQoZSk9PT1vLmZvcm1hdChlKX19fSkpOyIsICJjb25zdCB0b1plcm9JZkluZmluaXR5ID0gdmFsdWUgPT4gTnVtYmVyLmlzRmluaXRlKHZhbHVlKSA/IHZhbHVlIDogMDtcblxuZnVuY3Rpb24gcGFyc2VOdW1iZXIobWlsbGlzZWNvbmRzKSB7XG5cdHJldHVybiB7XG5cdFx0ZGF5czogTWF0aC50cnVuYyhtaWxsaXNlY29uZHMgLyA4Nl80MDBfMDAwKSxcblx0XHRob3VyczogTWF0aC50cnVuYyhtaWxsaXNlY29uZHMgLyAzXzYwMF8wMDAgJSAyNCksXG5cdFx0bWludXRlczogTWF0aC50cnVuYyhtaWxsaXNlY29uZHMgLyA2MF8wMDAgJSA2MCksXG5cdFx0c2Vjb25kczogTWF0aC50cnVuYyhtaWxsaXNlY29uZHMgLyAxMDAwICUgNjApLFxuXHRcdG1pbGxpc2Vjb25kczogTWF0aC50cnVuYyhtaWxsaXNlY29uZHMgJSAxMDAwKSxcblx0XHRtaWNyb3NlY29uZHM6IE1hdGgudHJ1bmModG9aZXJvSWZJbmZpbml0eShtaWxsaXNlY29uZHMgKiAxMDAwKSAlIDEwMDApLFxuXHRcdG5hbm9zZWNvbmRzOiBNYXRoLnRydW5jKHRvWmVyb0lmSW5maW5pdHkobWlsbGlzZWNvbmRzICogMWU2KSAlIDEwMDApLFxuXHR9O1xufVxuXG5mdW5jdGlvbiBwYXJzZUJpZ2ludChtaWxsaXNlY29uZHMpIHtcblx0cmV0dXJuIHtcblx0XHRkYXlzOiBtaWxsaXNlY29uZHMgLyA4Nl80MDBfMDAwbixcblx0XHRob3VyczogbWlsbGlzZWNvbmRzIC8gM182MDBfMDAwbiAlIDI0bixcblx0XHRtaW51dGVzOiBtaWxsaXNlY29uZHMgLyA2MF8wMDBuICUgNjBuLFxuXHRcdHNlY29uZHM6IG1pbGxpc2Vjb25kcyAvIDEwMDBuICUgNjBuLFxuXHRcdG1pbGxpc2Vjb25kczogbWlsbGlzZWNvbmRzICUgMTAwMG4sXG5cdFx0bWljcm9zZWNvbmRzOiAwbixcblx0XHRuYW5vc2Vjb25kczogMG4sXG5cdH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBhcnNlTWlsbGlzZWNvbmRzKG1pbGxpc2Vjb25kcykge1xuXHRzd2l0Y2ggKHR5cGVvZiBtaWxsaXNlY29uZHMpIHtcblx0XHRjYXNlICdudW1iZXInOiB7XG5cdFx0XHRpZiAoTnVtYmVyLmlzRmluaXRlKG1pbGxpc2Vjb25kcykpIHtcblx0XHRcdFx0cmV0dXJuIHBhcnNlTnVtYmVyKG1pbGxpc2Vjb25kcyk7XG5cdFx0XHR9XG5cblx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGNhc2UgJ2JpZ2ludCc6IHtcblx0XHRcdHJldHVybiBwYXJzZUJpZ2ludChtaWxsaXNlY29uZHMpO1xuXHRcdH1cblxuXHRcdC8vIE5vIGRlZmF1bHRcblx0fVxuXG5cdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQnKTtcbn1cbiIsICJpbXBvcnQgcGFyc2VNaWxsaXNlY29uZHMgZnJvbSAncGFyc2UtbXMnO1xuXG5jb25zdCBpc1plcm8gPSB2YWx1ZSA9PiB2YWx1ZSA9PT0gMCB8fCB2YWx1ZSA9PT0gMG47XG5jb25zdCBwbHVyYWxpemUgPSAod29yZCwgY291bnQpID0+IChjb3VudCA9PT0gMSB8fCBjb3VudCA9PT0gMW4pID8gd29yZCA6IGAke3dvcmR9c2A7XG5cbmNvbnN0IFNFQ09ORF9ST1VORElOR19FUFNJTE9OID0gMC4wMDBfMDAwXzE7XG5jb25zdCBPTkVfREFZX0lOX01JTExJU0VDT05EUyA9IDI0biAqIDYwbiAqIDYwbiAqIDEwMDBuO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwcmV0dHlNaWxsaXNlY29uZHMobWlsbGlzZWNvbmRzLCBvcHRpb25zKSB7XG5cdGNvbnN0IGlzQmlnSW50ID0gdHlwZW9mIG1pbGxpc2Vjb25kcyA9PT0gJ2JpZ2ludCc7XG5cdGlmICghaXNCaWdJbnQgJiYgIU51bWJlci5pc0Zpbml0ZShtaWxsaXNlY29uZHMpKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYSBmaW5pdGUgbnVtYmVyIG9yIGJpZ2ludCcpO1xuXHR9XG5cblx0b3B0aW9ucyA9IHsuLi5vcHRpb25zfTtcblxuXHRjb25zdCBzaWduID0gbWlsbGlzZWNvbmRzIDwgMCA/ICctJyA6ICcnO1xuXHRtaWxsaXNlY29uZHMgPSBtaWxsaXNlY29uZHMgPCAwID8gLW1pbGxpc2Vjb25kcyA6IG1pbGxpc2Vjb25kczsgLy8gQ2Fubm90IHVzZSBgTWF0aC5hYnMoKWAgYmVjYXVzZSBvZiBCaWdJbnQgc3VwcG9ydC5cblxuXHRpZiAob3B0aW9ucy5jb2xvbk5vdGF0aW9uKSB7XG5cdFx0b3B0aW9ucy5jb21wYWN0ID0gZmFsc2U7XG5cdFx0b3B0aW9ucy5mb3JtYXRTdWJNaWxsaXNlY29uZHMgPSBmYWxzZTtcblx0XHRvcHRpb25zLnNlcGFyYXRlTWlsbGlzZWNvbmRzID0gZmFsc2U7XG5cdFx0b3B0aW9ucy52ZXJib3NlID0gZmFsc2U7XG5cdH1cblxuXHRpZiAob3B0aW9ucy5jb21wYWN0KSB7XG5cdFx0b3B0aW9ucy51bml0Q291bnQgPSAxO1xuXHRcdG9wdGlvbnMuc2Vjb25kc0RlY2ltYWxEaWdpdHMgPSAwO1xuXHRcdG9wdGlvbnMubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0cyA9IDA7XG5cdH1cblxuXHRsZXQgcmVzdWx0ID0gW107XG5cblx0Y29uc3QgZmxvb3JEZWNpbWFscyA9ICh2YWx1ZSwgZGVjaW1hbERpZ2l0cykgPT4ge1xuXHRcdGNvbnN0IGZsb29yZWRJbnRlcmltVmFsdWUgPSBNYXRoLmZsb29yKCh2YWx1ZSAqICgxMCAqKiBkZWNpbWFsRGlnaXRzKSkgKyBTRUNPTkRfUk9VTkRJTkdfRVBTSUxPTik7XG5cdFx0Y29uc3QgZmxvb3JlZFZhbHVlID0gTWF0aC5yb3VuZChmbG9vcmVkSW50ZXJpbVZhbHVlKSAvICgxMCAqKiBkZWNpbWFsRGlnaXRzKTtcblx0XHRyZXR1cm4gZmxvb3JlZFZhbHVlLnRvRml4ZWQoZGVjaW1hbERpZ2l0cyk7XG5cdH07XG5cblx0Y29uc3QgYWRkID0gKHZhbHVlLCBsb25nLCBzaG9ydCwgdmFsdWVTdHJpbmcpID0+IHtcblx0XHRpZiAoXG5cdFx0XHQocmVzdWx0Lmxlbmd0aCA9PT0gMCB8fCAhb3B0aW9ucy5jb2xvbk5vdGF0aW9uKVxuXHRcdFx0JiYgaXNaZXJvKHZhbHVlKVxuXHRcdFx0JiYgIShvcHRpb25zLmNvbG9uTm90YXRpb24gJiYgc2hvcnQgPT09ICdtJykpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR2YWx1ZVN0cmluZyA/Pz0gU3RyaW5nKHZhbHVlKTtcblx0XHRpZiAob3B0aW9ucy5jb2xvbk5vdGF0aW9uKSB7XG5cdFx0XHRjb25zdCB3aG9sZURpZ2l0cyA9IHZhbHVlU3RyaW5nLmluY2x1ZGVzKCcuJykgPyB2YWx1ZVN0cmluZy5zcGxpdCgnLicpWzBdLmxlbmd0aCA6IHZhbHVlU3RyaW5nLmxlbmd0aDtcblx0XHRcdGNvbnN0IG1pbkxlbmd0aCA9IHJlc3VsdC5sZW5ndGggPiAwID8gMiA6IDE7XG5cdFx0XHR2YWx1ZVN0cmluZyA9ICcwJy5yZXBlYXQoTWF0aC5tYXgoMCwgbWluTGVuZ3RoIC0gd2hvbGVEaWdpdHMpKSArIHZhbHVlU3RyaW5nO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR2YWx1ZVN0cmluZyArPSBvcHRpb25zLnZlcmJvc2UgPyAnICcgKyBwbHVyYWxpemUobG9uZywgdmFsdWUpIDogc2hvcnQ7XG5cdFx0fVxuXG5cdFx0cmVzdWx0LnB1c2godmFsdWVTdHJpbmcpO1xuXHR9O1xuXG5cdGNvbnN0IHBhcnNlZCA9IHBhcnNlTWlsbGlzZWNvbmRzKG1pbGxpc2Vjb25kcyk7XG5cdGNvbnN0IGRheXMgPSBCaWdJbnQocGFyc2VkLmRheXMpO1xuXG5cdGlmIChvcHRpb25zLmhpZGVZZWFyQW5kRGF5cykge1xuXHRcdGFkZCgoQmlnSW50KGRheXMpICogMjRuKSArIEJpZ0ludChwYXJzZWQuaG91cnMpLCAnaG91cicsICdoJyk7XG5cdH0gZWxzZSB7XG5cdFx0aWYgKG9wdGlvbnMuaGlkZVllYXIpIHtcblx0XHRcdGFkZChkYXlzLCAnZGF5JywgJ2QnKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YWRkKGRheXMgLyAzNjVuLCAneWVhcicsICd5Jyk7XG5cdFx0XHRhZGQoZGF5cyAlIDM2NW4sICdkYXknLCAnZCcpO1xuXHRcdH1cblxuXHRcdGFkZChOdW1iZXIocGFyc2VkLmhvdXJzKSwgJ2hvdXInLCAnaCcpO1xuXHR9XG5cblx0YWRkKE51bWJlcihwYXJzZWQubWludXRlcyksICdtaW51dGUnLCAnbScpO1xuXG5cdGlmICghb3B0aW9ucy5oaWRlU2Vjb25kcykge1xuXHRcdGlmIChcblx0XHRcdG9wdGlvbnMuc2VwYXJhdGVNaWxsaXNlY29uZHNcblx0XHRcdHx8IG9wdGlvbnMuZm9ybWF0U3ViTWlsbGlzZWNvbmRzXG5cdFx0XHR8fCAoIW9wdGlvbnMuY29sb25Ob3RhdGlvbiAmJiBtaWxsaXNlY29uZHMgPCAxMDAwICYmICFvcHRpb25zLnN1YlNlY29uZHNBc0RlY2ltYWxzKVxuXHRcdCkge1xuXHRcdFx0Y29uc3Qgc2Vjb25kcyA9IE51bWJlcihwYXJzZWQuc2Vjb25kcyk7XG5cdFx0XHRjb25zdCBtaWxsaXNlY29uZHMgPSBOdW1iZXIocGFyc2VkLm1pbGxpc2Vjb25kcyk7XG5cdFx0XHRjb25zdCBtaWNyb3NlY29uZHMgPSBOdW1iZXIocGFyc2VkLm1pY3Jvc2Vjb25kcyk7XG5cdFx0XHRjb25zdCBuYW5vc2Vjb25kcyA9IE51bWJlcihwYXJzZWQubmFub3NlY29uZHMpO1xuXG5cdFx0XHRhZGQoc2Vjb25kcywgJ3NlY29uZCcsICdzJyk7XG5cblx0XHRcdGlmIChvcHRpb25zLmZvcm1hdFN1Yk1pbGxpc2Vjb25kcykge1xuXHRcdFx0XHRhZGQobWlsbGlzZWNvbmRzLCAnbWlsbGlzZWNvbmQnLCAnbXMnKTtcblx0XHRcdFx0YWRkKG1pY3Jvc2Vjb25kcywgJ21pY3Jvc2Vjb25kJywgJ1x1MDBCNXMnKTtcblx0XHRcdFx0YWRkKG5hbm9zZWNvbmRzLCAnbmFub3NlY29uZCcsICducycpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgbWlsbGlzZWNvbmRzQW5kQmVsb3dcblx0XHRcdFx0XHQ9IG1pbGxpc2Vjb25kc1xuXHRcdFx0XHRcdCsgKG1pY3Jvc2Vjb25kcyAvIDEwMDApXG5cdFx0XHRcdFx0KyAobmFub3NlY29uZHMgLyAxZTYpO1xuXG5cdFx0XHRcdGNvbnN0IG1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHNcblx0XHRcdFx0XHQ9IHR5cGVvZiBvcHRpb25zLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHMgPT09ICdudW1iZXInXG5cdFx0XHRcdFx0XHQ/IG9wdGlvbnMubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0c1xuXHRcdFx0XHRcdFx0OiAwO1xuXG5cdFx0XHRcdGNvbnN0IHJvdW5kZWRNaWxsaXNlY29uZHMgPSBtaWxsaXNlY29uZHNBbmRCZWxvdyA+PSAxXG5cdFx0XHRcdFx0PyBNYXRoLnJvdW5kKG1pbGxpc2Vjb25kc0FuZEJlbG93KVxuXHRcdFx0XHRcdDogTWF0aC5jZWlsKG1pbGxpc2Vjb25kc0FuZEJlbG93KTtcblxuXHRcdFx0XHRjb25zdCBtaWxsaXNlY29uZHNTdHJpbmcgPSBtaWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzXG5cdFx0XHRcdFx0PyBtaWxsaXNlY29uZHNBbmRCZWxvdy50b0ZpeGVkKG1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHMpXG5cdFx0XHRcdFx0OiByb3VuZGVkTWlsbGlzZWNvbmRzO1xuXG5cdFx0XHRcdGFkZChcblx0XHRcdFx0XHROdW1iZXIucGFyc2VGbG9hdChtaWxsaXNlY29uZHNTdHJpbmcpLFxuXHRcdFx0XHRcdCdtaWxsaXNlY29uZCcsXG5cdFx0XHRcdFx0J21zJyxcblx0XHRcdFx0XHRtaWxsaXNlY29uZHNTdHJpbmcsXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHNlY29uZHMgPSAoXG5cdFx0XHRcdChpc0JpZ0ludCA/IE51bWJlcihtaWxsaXNlY29uZHMgJSBPTkVfREFZX0lOX01JTExJU0VDT05EUykgOiBtaWxsaXNlY29uZHMpXG5cdFx0XHRcdC8gMTAwMFxuXHRcdFx0KSAlIDYwO1xuXHRcdFx0Y29uc3Qgc2Vjb25kc0RlY2ltYWxEaWdpdHNcblx0XHRcdFx0PSB0eXBlb2Ygb3B0aW9ucy5zZWNvbmRzRGVjaW1hbERpZ2l0cyA9PT0gJ251bWJlcidcblx0XHRcdFx0XHQ/IG9wdGlvbnMuc2Vjb25kc0RlY2ltYWxEaWdpdHNcblx0XHRcdFx0XHQ6IDE7XG5cdFx0XHRjb25zdCBzZWNvbmRzRml4ZWQgPSBmbG9vckRlY2ltYWxzKHNlY29uZHMsIHNlY29uZHNEZWNpbWFsRGlnaXRzKTtcblx0XHRcdGNvbnN0IHNlY29uZHNTdHJpbmcgPSBvcHRpb25zLmtlZXBEZWNpbWFsc09uV2hvbGVTZWNvbmRzXG5cdFx0XHRcdD8gc2Vjb25kc0ZpeGVkXG5cdFx0XHRcdDogc2Vjb25kc0ZpeGVkLnJlcGxhY2UoL1xcLjArJC8sICcnKTtcblx0XHRcdGFkZChOdW1iZXIucGFyc2VGbG9hdChzZWNvbmRzU3RyaW5nKSwgJ3NlY29uZCcsICdzJywgc2Vjb25kc1N0cmluZyk7XG5cdFx0fVxuXHR9XG5cblx0aWYgKHJlc3VsdC5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gc2lnbiArICcwJyArIChvcHRpb25zLnZlcmJvc2UgPyAnIG1pbGxpc2Vjb25kcycgOiAnbXMnKTtcblx0fVxuXG5cdGNvbnN0IHNlcGFyYXRvciA9IG9wdGlvbnMuY29sb25Ob3RhdGlvbiA/ICc6JyA6ICcgJztcblx0aWYgKHR5cGVvZiBvcHRpb25zLnVuaXRDb3VudCA9PT0gJ251bWJlcicpIHtcblx0XHRyZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgTWF0aC5tYXgob3B0aW9ucy51bml0Q291bnQsIDEpKTtcblx0fVxuXG5cdHJldHVybiBzaWduICsgcmVzdWx0LmpvaW4oc2VwYXJhdG9yKTtcbn1cbiIsICIvLyBAcHVzaHJvY2tzIHNjb3BlXG5pbXBvcnQgKiBhcyBsaWsgZnJvbSAnQHB1c2gucm9ja3MvbGlrJztcbmltcG9ydCAqIGFzIHNtYXJ0ZGVsYXkgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRkZWxheSc7XG5pbXBvcnQgKiBhcyBzbWFydHByb21pc2UgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlJztcblxuZXhwb3J0IHsgbGlrLCBzbWFydGRlbGF5LCBzbWFydHByb21pc2UgfTtcblxuLy8gdGhpcmQgcGFydGllcztcbmltcG9ydCAqIGFzIGNyb25lciBmcm9tICdjcm9uZXInO1xuaW1wb3J0ICogYXMgZGF0ZUZucyBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IGlzVG9kYXkgZnJvbSAnZGF5anMvcGx1Z2luL2lzVG9kYXkuanMnO1xuaW1wb3J0IHByZXR0eU1zIGZyb20gJ3ByZXR0eS1tcyc7XG5cbmRheWpzLmV4dGVuZChpc1RvZGF5KTtcblxuZXhwb3J0IHsgY3JvbmVyLCBkYXRlRm5zLCBkYXlqcywgcHJldHR5TXMgfTtcbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vc21hcnR0aW1lLnBsdWdpbnMuanMnO1xuXG5leHBvcnQgY2xhc3MgQ3JvblBhcnNlciB7XG4gIHB1YmxpYyBjcm9uRXhwcmVzc2lvbjogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGNyb25BcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5jcm9uRXhwcmVzc2lvbi5zcGxpdCgnICcpO1xuICB9XG4gIGNvbnN0cnVjdG9yKGNyb25FeHByZXNzaW9uQXJnOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNyb25FeHByZXNzaW9uID0gY3JvbkV4cHJlc3Npb25Bcmc7XG4gICAgaWYgKHRoaXMuY3JvbkFycmF5Lmxlbmd0aCA8IDYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ3JvblBhcnNlciBuZWVkcyBzZWNvbmQgbGV2ZWwgYWNjdXJhY3knKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldE5leHRQYXJ0TWF0Y2goY3JvblBhcnQ6IHN0cmluZywgc3RhcnRWYWx1ZTogbnVtYmVyLCBtb2R1bG9Bcmc6IG51bWJlcikge1xuICAgIGlmIChjcm9uUGFydCA9PT0gJyonKSB7XG4gICAgICByZXR1cm4gc3RhcnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKGNyb25QYXJ0LmluY2x1ZGVzKCcvJykpIHtcbiAgICAgIGNvbnN0IGV2ZXJ5ID0gcGFyc2VJbnQoY3JvblBhcnQuc3BsaXQoJy8nKVsxXSwgMTApO1xuICAgICAgY29uc3QgZmluZEV2ZW5NYXRjaCA9IChyZWN1cnNpb25TdGFydEFyZzogbnVtYmVyKTogbnVtYmVyID0+IHtcbiAgICAgICAgaWYgKHJlY3Vyc2lvblN0YXJ0QXJnICUgZXZlcnkgPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gcmVjdXJzaW9uU3RhcnRBcmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZpbmRFdmVuTWF0Y2gocmVjdXJzaW9uU3RhcnRBcmcgKyAxKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVybiBmaW5kRXZlbk1hdGNoKHN0YXJ0VmFsdWUpO1xuICAgIH1cbiAgICBpZiAocGFyc2VJbnQoY3JvblBhcnQsIDEwKSB8fCBjcm9uUGFydCA9PT0gJzAnKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IHBhcnNlSW50KGNyb25QYXJ0LCAxMCk7XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1zVG9OZXh0KCkge1xuICAgIGNvbnN0IGNyb25BcnJheSA9IHRoaXMuY3JvbkFycmF5O1xuICAgIGNvbnN0IHNlY29uZEV4cHJlc3Npb24gPSBjcm9uQXJyYXlbMF07XG4gICAgY29uc3QgbWludXRlRXhwcmVzc2lvbiA9IGNyb25BcnJheVsxXTtcbiAgICBjb25zdCBob3VyRXhwcmVzc2lvbiA9IGNyb25BcnJheVsyXTtcbiAgICBjb25zdCBkYXlFeHByZXNzaW9uID0gY3JvbkFycmF5WzNdO1xuICAgIGNvbnN0IG1vbnRoRXhwcmVzc2lvbiA9IGNyb25BcnJheVs0XTtcbiAgICBjb25zdCB5ZWFyRXhwcmVzc2lvbiA9IGNyb25BcnJheVs1XTtcblxuICAgIGxldCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgbGV0IGN1cnJlbnRTZWNvbmQgPSBjdXJyZW50RGF0ZS5nZXRTZWNvbmRzKCkgKyAxO1xuICAgIGxldCBjdXJyZW50TWludXRlID0gY3VycmVudERhdGUuZ2V0TWludXRlcygpO1xuICAgIGxldCBjdXJyZW50SG91ciA9IGN1cnJlbnREYXRlLmdldEhvdXJzKCk7XG4gICAgbGV0IGN1cnJlbnREYXkgPSBjdXJyZW50RGF0ZS5nZXREYXRlKCk7XG4gICAgbGV0IGN1cnJlbnRNb250aCA9IGN1cnJlbnREYXRlLmdldE1vbnRoKCk7XG4gICAgbGV0IGN1cnJlbnRZZWFyID0gY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKTtcblxuICAgIGNvbnN0IHRhcmdldFNlY29uZCA9IHRoaXMuZ2V0TmV4dFBhcnRNYXRjaChzZWNvbmRFeHByZXNzaW9uLCBjdXJyZW50U2Vjb25kLCA1OSk7XG4gICAgaWYgKHRhcmdldFNlY29uZCA8IGN1cnJlbnRTZWNvbmQpIHtcbiAgICAgIGN1cnJlbnRNaW51dGUgPSAoY3VycmVudE1pbnV0ZSArIDEpICUgNTk7XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldE1pbnV0ZSA9IHRoaXMuZ2V0TmV4dFBhcnRNYXRjaChtaW51dGVFeHByZXNzaW9uLCBjdXJyZW50TWludXRlLCA1OSk7XG4gICAgaWYgKHRhcmdldE1pbnV0ZSA8IGN1cnJlbnRNaW51dGUpIHtcbiAgICAgIGN1cnJlbnRIb3VyID0gKGN1cnJlbnRIb3VyICsgMSkgJSAyMztcbiAgICB9XG4gICAgY29uc3QgdGFyZ2V0SG91ciA9IHRoaXMuZ2V0TmV4dFBhcnRNYXRjaChob3VyRXhwcmVzc2lvbiwgY3VycmVudEhvdXIsIDIzKTtcbiAgICBpZiAodGFyZ2V0SG91ciA8IGN1cnJlbnRIb3VyKSB7XG4gICAgICBjdXJyZW50RGF5ID0gKGN1cnJlbnREYXkgKyAxKSAlIDMwO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldERheSA9IGN1cnJlbnREYXk7XG4gICAgaWYgKHRhcmdldERheSA8IGN1cnJlbnREYXkpIHtcbiAgICAgIGN1cnJlbnRNb250aCA9IChjdXJyZW50TW9udGggKyAxKSAlIDExO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldE1vbnRoID0gY3VycmVudE1vbnRoO1xuICAgIGlmICh0YXJnZXRNb250aCA8IGN1cnJlbnRNb250aCkge1xuICAgICAgY3VycmVudFllYXIgPSBjdXJyZW50WWVhciArIDE7XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldFllYXIgPSBjdXJyZW50WWVhcjtcblxuICAgIGNvbnN0IHRhcmdldERhdGUgPSBuZXcgRGF0ZShcbiAgICAgIHRhcmdldFllYXIsXG4gICAgICB0YXJnZXRNb250aCxcbiAgICAgIHRhcmdldERheSxcbiAgICAgIHRhcmdldEhvdXIsXG4gICAgICB0YXJnZXRNaW51dGUsXG4gICAgICB0YXJnZXRTZWNvbmRcbiAgICApO1xuICAgIGNvbnN0IHRhcmdldFRpbWUgPSB0YXJnZXREYXRlLmdldFRpbWUoKTtcbiAgICByZXR1cm4gdGFyZ2V0VGltZSAtIERhdGUubm93KCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vc21hcnR0aW1lLnBsdWdpbnMuanMnO1xuaW1wb3J0IHsgQ3Jvbk1hbmFnZXIgfSBmcm9tICcuL3NtYXJ0dGltZS5jbGFzc2VzLmNyb25tYW5hZ2VyLmpzJztcblxuaW1wb3J0IHsgQ3JvblBhcnNlciB9IGZyb20gJy4vc21hcnR0aW1lLmNsYXNzZXMuY3JvbnBhcnNlci5qcyc7XG5cbmV4cG9ydCB0eXBlIFRKb2JGdW5jdGlvbiA9XG4gIHwgKCh0cmlnZ2VyVGltZUFyZz86IG51bWJlcikgPT4gdm9pZClcbiAgfCAoKHRyaWdnZXJUaW1lQXJnPzogbnVtYmVyKSA9PiBQcm9taXNlPGFueT4pO1xuXG5leHBvcnQgY2xhc3MgQ3JvbkpvYiB7XG4gIHB1YmxpYyBjcm9uUGFyc2VyOiBwbHVnaW5zLmNyb25lci5Dcm9uO1xuICBwdWJsaWMgc3RhdHVzOiAnc3RhcnRlZCcgfCAnc3RvcHBlZCcgfCAnaW5pdGlhbCcgPSAnaW5pdGlhbCc7XG4gIHB1YmxpYyBjcm9uRXhwcmVzc2lvbjogc3RyaW5nO1xuICBwdWJsaWMgam9iRnVuY3Rpb246IFRKb2JGdW5jdGlvbjtcbiAgcHJpdmF0ZSBuZXh0RXhlY3V0aW9uVW5peDogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3Rvcihjcm9uTWFuYWdlcjogQ3Jvbk1hbmFnZXIsIGNyb25FeHByZXNzaW9uQXJnOiBzdHJpbmcsIGpvYkZ1bmN0aW9uOiBUSm9iRnVuY3Rpb24pIHtcbiAgICB0aGlzLmNyb25FeHByZXNzaW9uID0gY3JvbkV4cHJlc3Npb25Bcmc7XG4gICAgdGhpcy5qb2JGdW5jdGlvbiA9IGpvYkZ1bmN0aW9uO1xuICAgIHRoaXMuY3JvblBhcnNlciA9IG5ldyBwbHVnaW5zLmNyb25lci5Dcm9uKGNyb25FeHByZXNzaW9uQXJnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVja3Mgd2V0aGVyIHRoZSBjcm9uam9iIG5lZWRzIHRvIGJlIGV4ZWN1dGVkXG4gICAqL1xuICBwdWJsaWMgY2hlY2tFeGVjdXRpb24oKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5uZXh0RXhlY3V0aW9uVW5peCA9PT0gMCkge1xuICAgICAgdGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpO1xuICAgIH1cbiAgICBpZiAoRGF0ZS5ub3coKSA+IHRoaXMubmV4dEV4ZWN1dGlvblVuaXgpIHtcbiAgICAgIGNvbnN0IG1heWJlUHJvbWlzZSA9IHRoaXMuam9iRnVuY3Rpb24odGhpcy5uZXh0RXhlY3V0aW9uVW5peCk7XG4gICAgICBpZiAobWF5YmVQcm9taXNlIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICBtYXliZVByb21pc2UuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubmV4dEV4ZWN1dGlvblVuaXggPSB0aGlzLmdldE5leHRFeGVjdXRpb25UaW1lKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm5leHRFeGVjdXRpb25Vbml4O1xuICB9XG5cbiAgcHVibGljIGdldE5leHRFeGVjdXRpb25UaW1lKCkge1xuICAgIHJldHVybiAodGhpcy5uZXh0RXhlY3V0aW9uVW5peCA9IERhdGUubm93KCkgKyB0aGlzLmdldFRpbWVUb05leHRFeGVjdXRpb24oKSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0cyB0aGUgdGltZSB0byBuZXh0IGV4ZWN1dGlvblxuICAgKi9cbiAgcHVibGljIGdldFRpbWVUb05leHRFeGVjdXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JvblBhcnNlci5tc1RvTmV4dCgpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0KCkge1xuICAgIHRoaXMuc3RhdHVzID0gJ3N0YXJ0ZWQnO1xuICB9XG5cbiAgcHVibGljIHN0b3AoKSB7XG4gICAgdGhpcy5zdGF0dXMgPSAnc3RvcHBlZCc7XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vc21hcnR0aW1lLnBsdWdpbnMuanMnO1xuXG5leHBvcnQgbGV0IHVuaXRzID0ge1xuICB5ZWFyczogKHRpbWVzQXJnID0gMSk6IG51bWJlciA9PiB7XG4gICAgcmV0dXJuIHRpbWVzQXJnICogMy4xNTRlMTA7XG4gIH0sXG4gIG1vbnRoczogKHRpbWVzQXJnID0gMSk6IG51bWJlciA9PiB7XG4gICAgcmV0dXJuIHRpbWVzQXJnICogMi42MjhlOTtcbiAgfSxcbiAgd2Vla3M6ICh0aW1lc0FyZyA9IDEpID0+IHtcbiAgICByZXR1cm4gdGltZXNBcmcgKiA2LjA0OGU4O1xuICB9LFxuICBkYXlzOiAodGltZXNBcmcgPSAxKSA9PiB7XG4gICAgcmV0dXJuIHRpbWVzQXJnICogOC42NGU3O1xuICB9LFxuICBob3VyczogKHRpbWVzQXJnID0gMSkgPT4ge1xuICAgIHJldHVybiB0aW1lc0FyZyAqIDMuNmU2O1xuICB9LFxuICBtaW51dGVzOiAodGltZXNBcmcgPSAxKSA9PiB7XG4gICAgcmV0dXJuIHRpbWVzQXJnICogNjAwMDA7XG4gIH0sXG4gIHNlY29uZHM6ICh0aW1lc0FyZyA9IDEpID0+IHtcbiAgICByZXR1cm4gdGltZXNBcmcgKiAxMDAwO1xuICB9LFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBJVW5pdENvbWJpbmF0aW9uQXJnIHtcbiAgeWVhcnM/OiBudW1iZXI7XG4gIG1vbnRocz86IG51bWJlcjtcbiAgd2Vla3M/OiBudW1iZXI7XG4gIGRheXM/OiBudW1iZXI7XG4gIGhvdXJzPzogbnVtYmVyO1xuICBtaW51dGVzPzogbnVtYmVyO1xuICBzZWNvbmRzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgbGV0IGdldE1pbGxpU2Vjb25kc0Zyb21Vbml0cyA9IChjb21iaW5hdGlvbkFyZzogSVVuaXRDb21iaW5hdGlvbkFyZykgPT4ge1xuICBsZXQgdGltZUluTWlsbGlzZWNvbmRzID0gMDtcbiAgbGV0IGFkZE1pbGxpU2Vjb25kcyA9IChtaWxsaVNlY29uZHNBcmc6IG51bWJlcikgPT4ge1xuICAgIHRpbWVJbk1pbGxpc2Vjb25kcyA9IHRpbWVJbk1pbGxpc2Vjb25kcyArIG1pbGxpU2Vjb25kc0FyZztcbiAgfTtcbiAgaWYgKGNvbWJpbmF0aW9uQXJnLnllYXJzKSB7XG4gICAgYWRkTWlsbGlTZWNvbmRzKHVuaXRzLnllYXJzKGNvbWJpbmF0aW9uQXJnLnllYXJzKSk7XG4gIH1cbiAgaWYgKGNvbWJpbmF0aW9uQXJnLm1vbnRocykge1xuICAgIGFkZE1pbGxpU2Vjb25kcyh1bml0cy5tb250aHMoY29tYmluYXRpb25BcmcubW9udGhzKSk7XG4gIH1cbiAgaWYgKGNvbWJpbmF0aW9uQXJnLndlZWtzKSB7XG4gICAgYWRkTWlsbGlTZWNvbmRzKHVuaXRzLndlZWtzKGNvbWJpbmF0aW9uQXJnLndlZWtzKSk7XG4gIH1cbiAgaWYgKGNvbWJpbmF0aW9uQXJnLmRheXMpIHtcbiAgICBhZGRNaWxsaVNlY29uZHModW5pdHMuZGF5cyhjb21iaW5hdGlvbkFyZy5kYXlzKSk7XG4gIH1cbiAgaWYgKGNvbWJpbmF0aW9uQXJnLmhvdXJzKSB7XG4gICAgYWRkTWlsbGlTZWNvbmRzKHVuaXRzLmhvdXJzKGNvbWJpbmF0aW9uQXJnLmhvdXJzKSk7XG4gIH1cbiAgaWYgKGNvbWJpbmF0aW9uQXJnLm1pbnV0ZXMpIHtcbiAgICBhZGRNaWxsaVNlY29uZHModW5pdHMubWludXRlcyhjb21iaW5hdGlvbkFyZy5taW51dGVzKSk7XG4gIH1cbiAgaWYgKGNvbWJpbmF0aW9uQXJnLnNlY29uZHMpIHtcbiAgICBhZGRNaWxsaVNlY29uZHModW5pdHMuc2Vjb25kcyhjb21iaW5hdGlvbkFyZy5zZWNvbmRzKSk7XG4gIH1cblxuICByZXR1cm4gdGltZUluTWlsbGlzZWNvbmRzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZVN0cmluZyA9IChtaWxsaVNlY29uZHNBcmc6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIHJldHVybiBwbHVnaW5zLnByZXR0eU1zKG1pbGxpU2Vjb25kc0FyZyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlQWdvVGltZSA9ICh0aW1lU3RhbXBBcmc6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIHJldHVybiBwbHVnaW5zLmRhdGVGbnMuZm9ybWF0RGlzdGFuY2VUb05vdyhuZXcgRGF0ZSh0aW1lU3RhbXBBcmcpKTtcbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vc21hcnR0aW1lLnBsdWdpbnMuanMnO1xuaW1wb3J0IHsgQ3JvbkpvYiwgdHlwZSBUSm9iRnVuY3Rpb24gfSBmcm9tICcuL3NtYXJ0dGltZS5jbGFzc2VzLmNyb25qb2IuanMnO1xuaW1wb3J0IHsgZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nIH0gZnJvbSAnLi9zbWFydHRpbWUudW5pdHMuanMnO1xuXG5leHBvcnQgY2xhc3MgQ3Jvbk1hbmFnZXIge1xuICBwdWJsaWMgZXhlY3V0aW9uVGltZW91dDogcGx1Z2lucy5zbWFydGRlbGF5LlRpbWVvdXQ8dm9pZD47XG5cbiAgcHVibGljIHN0YXR1czogJ3N0YXJ0ZWQnIHwgJ3N0b3BwZWQnID0gJ3N0b3BwZWQnO1xuICBwdWJsaWMgY3JvbmpvYnMgPSBuZXcgcGx1Z2lucy5saWsuT2JqZWN0TWFwPENyb25Kb2I+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBhZGRDcm9uam9iKGNyb25JZGVudGlmaWVyQXJnOiBzdHJpbmcsIGNyb25GdW5jdGlvbkFyZzogVEpvYkZ1bmN0aW9uKSB7XG4gICAgY29uc3QgbmV3Q3JvbkpvYiA9IG5ldyBDcm9uSm9iKHRoaXMsIGNyb25JZGVudGlmaWVyQXJnLCBjcm9uRnVuY3Rpb25BcmcpO1xuICAgIHRoaXMuY3JvbmpvYnMuYWRkKG5ld0Nyb25Kb2IpO1xuICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gJ3N0YXJ0ZWQnKSB7XG4gICAgICBuZXdDcm9uSm9iLnN0YXJ0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0Nyb25Kb2I7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ3JvbmpvYihjcm9uam9iQXJnOiBDcm9uSm9iKSB7XG4gICAgY3JvbmpvYkFyZy5zdG9wKCk7XG4gICAgdGhpcy5jcm9uam9icy5yZW1vdmUoY3JvbmpvYkFyZyk7XG4gIH1cblxuICAvKipcbiAgICogc3RhcnRzIHRoZSBjcm9uam9iXG4gICAqL1xuICBwdWJsaWMgc3RhcnQoKSB7XG4gICAgaWYgKHRoaXMuc3RhdHVzICE9PSAnc3RhcnRlZCcpIHtcbiAgICAgIHRoaXMuc3RhdHVzID0gJ3N0YXJ0ZWQnO1xuICAgICAgZm9yIChjb25zdCBjcm9uSm9iIG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSkge1xuICAgICAgICBjcm9uSm9iLnN0YXJ0KCk7XG4gICAgICB9XG4gICAgICB0aGlzLnJ1bkNyb25DeWNsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcnVuQ3JvbkN5Y2xlKCkge1xuICAgIHRoaXMuZXhlY3V0aW9uVGltZW91dCA9IG5ldyBwbHVnaW5zLnNtYXJ0ZGVsYXkuVGltZW91dCgwKTtcbiAgICBkbyB7XG4gICAgICBsZXQgbmV4dFJ1bm5pbmdDcm9uam9iOiBDcm9uSm9iO1xuICAgICAgZm9yIChjb25zdCBjcm9uSm9iIG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSkge1xuICAgICAgICBjcm9uSm9iLmNoZWNrRXhlY3V0aW9uKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhbmV4dFJ1bm5pbmdDcm9uam9iIHx8XG4gICAgICAgICAgY3JvbkpvYi5nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCkgPCBuZXh0UnVubmluZ0Nyb25qb2IuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpXG4gICAgICAgICkge1xuICAgICAgICAgIG5leHRSdW5uaW5nQ3JvbmpvYiA9IGNyb25Kb2I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChuZXh0UnVubmluZ0Nyb25qb2IpIHtcbiAgICAgICAgdGhpcy5leGVjdXRpb25UaW1lb3V0ID0gbmV3IHBsdWdpbnMuc21hcnRkZWxheS5UaW1lb3V0KFxuICAgICAgICAgIG5leHRSdW5uaW5nQ3JvbmpvYi5nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKClcbiAgICAgICAgKTtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYE5leHQgQ3JvbkpvYiBzY2hlZHVsZWQgaW4gJHtnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVTdHJpbmcoXG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGlvblRpbWVvdXQuZ2V0VGltZUxlZnQoKVxuICAgICAgICAgICl9YFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5leGVjdXRpb25UaW1lb3V0ID0gbmV3IHBsdWdpbnMuc21hcnRkZWxheS5UaW1lb3V0KDEwMDApO1xuICAgICAgICBjb25zb2xlLmxvZygnbm8gY3JvbmpvYnMgc3BlY2lmaWVkISBDaGVja2luZyBhZ2FpbiBpbiAxIHNlY29uZCcpO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLmV4ZWN1dGlvblRpbWVvdXQucHJvbWlzZTtcbiAgICB9IHdoaWxlICh0aGlzLnN0YXR1cyA9PT0gJ3N0YXJ0ZWQnKTtcbiAgfTtcblxuICAvKipcbiAgICogc3RvcHMgYWxsIGNyb25qb2JzXG4gICAqL1xuICBwdWJsaWMgc3RvcCgpIHtcbiAgICBpZiAodGhpcy5zdGF0dXMgPT09ICdzdGFydGVkJykge1xuICAgICAgdGhpcy5zdGF0dXMgPSAnc3RvcHBlZCc7XG4gICAgICB0aGlzLmV4ZWN1dGlvblRpbWVvdXQuY2FuY2VsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGBZb3UgdHJpZWQgdG8gc3RvcCBhIENyb25NYW5hZ2VyIHRoYXQgd2FzIG5vdCBhY3R1YWxseSBzdGFydGVkLmApO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGNyb24gb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKSB7XG4gICAgICBjcm9uLnN0b3AoKTtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vc21hcnR0aW1lLnBsdWdpbnMuanMnO1xuaW1wb3J0ICogYXMgdW5pdHMgZnJvbSAnLi9zbWFydHRpbWUudW5pdHMuanMnO1xuXG5leHBvcnQgdHlwZSBUQXZhaWxhYmxlWm9uZSA9ICdFdXJvcGUvQmVybGluJztcblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZVVuaXRzIHtcbiAgeWVhcjogbnVtYmVyO1xuICB5ZWFyU3RyaW5nOiBzdHJpbmc7XG4gIG1vbnRoOiBudW1iZXI7XG4gIG1vbnRoU3RyaW5nOiBzdHJpbmc7XG4gIG1vbnRoTmFtZTogc3RyaW5nO1xuICBkYXk6IG51bWJlcjtcbiAgZGF5U3RyaW5nOiBzdHJpbmc7XG4gIGRheU9mVGhlV2VlazogbnVtYmVyO1xuICBkYXlPZlRoZVdlZWtOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBFeHRlbmRlZERhdGUgZXh0ZW5kcyBEYXRlIHtcbiAgLy8gU1RBVElDIGZhY3Rvcmllc1xuICBwdWJsaWMgc3RhdGljIGZyb21NaWxsaXMobWlsbGlTZWNvbmRzOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IEV4dGVuZGVkRGF0ZShtaWxsaVNlY29uZHMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tRGF0ZShkYXRlQXJnOiBEYXRlKSB7XG4gICAgcmV0dXJuIG5ldyBFeHRlbmRlZERhdGUoZGF0ZUFyZy5nZXRUaW1lKCkpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tRXVyb3BlYW5EYXRlKGV1cm9wZWFuRGF0ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0ZUFycmF5ID0gLyguKilcXC4oLiopXFwuKC4qKS8uZXhlYyhldXJvcGVhbkRhdGUpO1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShcbiAgICAgIHBhcnNlRmxvYXQoZGF0ZUFycmF5WzNdKSwgLy8geWVhclxuICAgICAgcGFyc2VGbG9hdChkYXRlQXJyYXlbMl0pIC0gMSwgLy8gbW9udGhcbiAgICAgIHBhcnNlRmxvYXQoZGF0ZUFycmF5WzFdKSAvLyBkYXlcbiAgICApO1xuICAgIGNvbnN0IHVuaXhNaWxsaSA9IGRhdGUuZ2V0VGltZSgpO1xuICAgIHJldHVybiBuZXcgRXh0ZW5kZWREYXRlKHVuaXhNaWxsaSk7XG4gIH1cblxuICAvKipcbiAgICogY3JlYXRlcyBhbiBFeHRlbmRlZCBkYXRlIGZyb20gYSBoeXBlZERhdGUgbGlrZSBcIjIwMTgtMDMtMjhcIlxuICAgKiBAcGFyYW0gZGF0ZVN0cmluZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tSHlwaGVkRGF0ZShkYXRlU3RyaW5nOiBzdHJpbmcpIHtcbiAgICAvLyBndWFyZHNcbiAgICAvLyBpbXBsZW1lbnRhdGlvblxuICAgIGNvbnN0IGRhdGVNaWxsaXMgPSBuZXcgRGF0ZShkYXRlU3RyaW5nKS5nZXRUaW1lKCk7XG4gICAgcmV0dXJuIG5ldyBFeHRlbmRlZERhdGUoZGF0ZU1pbGxpcyk7XG4gIH1cblxuICAvKipcbiAgICogU2FtZSBhcyAuZnJvbUV1cm9wZWFuRGF0ZSgpLCBidXQgYWNjZXB0cyBhZGRpdGlvbmFsIHRpbWVBcmcgYW5kIHpvbmVBcmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZUFuZFRpbWUoXG4gICAgZXVyb3BlYW5EYXRlQXJnOiBzdHJpbmcsXG4gICAgdGltZUFyZzogc3RyaW5nID0gJzEyOjAwOjAwJyxcbiAgICB6b25lQXJnOiBUQXZhaWxhYmxlWm9uZSA9ICdFdXJvcGUvQmVybGluJ1xuICApIHtcbiAgICAvLyBndWFyZHNcblxuICAgIC8vIGltcGxlbWVudGF0aW9uXG4gICAgY29uc3QgZGF0ZUFycmF5ID0gLyguKilcXC4oLiopXFwuKC4qKS8uZXhlYyhldXJvcGVhbkRhdGVBcmcpO1xuICAgIGNvbnN0IHNsaWNlRGF0ZSA9IChkYXRlU3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBgMCR7ZGF0ZVN0cmluZ31gLnNsaWNlKC0yKTtcbiAgICB9O1xuICAgIGNvbnN0IGRhdGVUaW1lU3RyaW5nID0gYCR7ZGF0ZUFycmF5WzNdfS0ke3NsaWNlRGF0ZShkYXRlQXJyYXlbMl0pfS0ke3NsaWNlRGF0ZShcbiAgICAgIGRhdGVBcnJheVsxXVxuICAgICl9VCR7dGltZUFyZ31gO1xuICAgIGNvbnN0IGRhdGUgPSBwbHVnaW5zLmRheWpzKGRhdGVUaW1lU3RyaW5nKTtcbiAgICBjb25zdCB1bml4TWlsbGkgPSBkYXRlLnRvRGF0ZSgpLmdldFRpbWUoKTtcbiAgICByZXR1cm4gbmV3IEV4dGVuZGVkRGF0ZSh1bml4TWlsbGkpO1xuICB9XG5cbiAgLy8gSU5TVEFOQ0VcbiAgcHVibGljIHRpbWV6b25lOiBUQXZhaWxhYmxlWm9uZTtcblxuICBjb25zdHJ1Y3Rvcih1bml4TWlsbGk6IG51bWJlciA9IERhdGUubm93KCkpIHtcbiAgICBzdXBlcih1bml4TWlsbGkpO1xuICB9XG5cbiAgLy9cbiAgcHVibGljIGV4cG9ydFRvRXVyb3BlYW5EYXRlKCkge1xuICAgIGNvbnN0IHVuaXRzID0gdGhpcy5leHBvcnRUb1VuaXRzKCk7XG4gICAgcmV0dXJuIGAke3VuaXRzLmRheVN0cmluZ30uJHt1bml0cy5tb250aFN0cmluZ30uJHt1bml0cy55ZWFyU3RyaW5nfWA7XG4gIH1cblxuICBwdWJsaWMgZXhwb3J0VG9IeXBoZWRTb3J0YWJsZURhdGUoKSB7XG4gICAgY29uc3QgdW5pdHMgPSB0aGlzLmV4cG9ydFRvVW5pdHMoKTtcbiAgICByZXR1cm4gYCR7dW5pdHMueWVhclN0cmluZ30tJHt1bml0cy5tb250aFN0cmluZ30tJHt1bml0cy5kYXlTdHJpbmd9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHBvcnRzIHVuaXRzXG4gICAqL1xuICBwdWJsaWMgZXhwb3J0VG9Vbml0cygpOiBJRGF0ZVVuaXRzIHtcbiAgICBjb25zdCBtb250aHNBcnJheSA9IFtcbiAgICAgICdKYW51YXJ5JyxcbiAgICAgICdGZWJydWFyeScsXG4gICAgICAnTWFyY2gnLFxuICAgICAgJ0FwcmlsJyxcbiAgICAgICdNYXknLFxuICAgICAgJ0p1bmUnLFxuICAgICAgJ0p1bHknLFxuICAgICAgJ0F1Z3VzdCcsXG4gICAgICAnU2VwdGVtYmVyJyxcbiAgICAgICdPY3RvYmVyJyxcbiAgICAgICdOb3ZlbWJlcicsXG4gICAgICAnRGVjZW1iZXInLFxuICAgIF07XG4gICAgY29uc3QgZGF5c0FycmF5ID0gW1xuICAgICAgJ01vbmRheScsXG4gICAgICAnVHVlc2RheScsXG4gICAgICAnV2VkbmVzZGF5JyxcbiAgICAgICdUaHVyc2RheScsXG4gICAgICAnRnJpZGF5JyxcbiAgICAgICdTYXR1cmRheScsXG4gICAgICAnU3VuZGF5JyxcbiAgICBdO1xuICAgIHJldHVybiB7XG4gICAgICB5ZWFyOiB0aGlzLmdldEZ1bGxZZWFyKCksXG4gICAgICB5ZWFyU3RyaW5nOiBgJHt0aGlzLmdldEZ1bGxZZWFyKCl9YCxcbiAgICAgIG1vbnRoOiB0aGlzLmdldE1vbnRoKCkgKyAxLFxuICAgICAgbW9udGhTdHJpbmc6ICgnMCcgKyAodGhpcy5nZXRNb250aCgpICsgMSkpLnNsaWNlKC0yKSxcbiAgICAgIG1vbnRoTmFtZTogbW9udGhzQXJyYXlbdGhpcy5nZXRNb250aCgpXSxcbiAgICAgIGRheTogdGhpcy5nZXREYXRlKCksXG4gICAgICBkYXlTdHJpbmc6ICgnMCcgKyB0aGlzLmdldERhdGUoKSkuc2xpY2UoLTIpLFxuICAgICAgZGF5T2ZUaGVXZWVrOiB0aGlzLmdldERheSgpLFxuICAgICAgZGF5T2ZUaGVXZWVrTmFtZTogZGF5c0FycmF5W3RoaXMuZ2V0RGF5KCldLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0KGZvcm1hdEFyZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBsdWdpbnMuZGF5anModGhpcy5nZXRUaW1lKCkpLmZvcm1hdChmb3JtYXRBcmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIGJvb2xlYW4gY2hlY2tzXG4gICAqL1xuICBwdWJsaWMgaXNUb2RheSgpIHtcbiAgICByZXR1cm4gcGx1Z2lucy5kYXlqcyh0aGlzLmdldFRpbWUoKSkuaXNUb2RheSgpO1xuICB9XG5cbiAgcHVibGljIGxlc3NUaW1lUGFzc2VkVG9Ob3codW5pdEFyZ3M6IHVuaXRzLklVbml0Q29tYmluYXRpb25BcmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBtYXhQYXNzZWRVbml4VGltZSA9IHVuaXRzLmdldE1pbGxpU2Vjb25kc0Zyb21Vbml0cyh1bml0QXJncyk7XG4gICAgY29uc3QgYWN0dWFsUGFzc2VkVW5peFRpbWUgPSBEYXRlLm5vdygpIC0gdGhpcy5nZXRUaW1lKCk7XG4gICAgcmV0dXJuIGFjdHVhbFBhc3NlZFVuaXhUaW1lIDwgbWF4UGFzc2VkVW5peFRpbWU7XG4gIH1cblxuICBwdWJsaWMgbW9yZVRpbWVQYXNzZWRUb05vdyh1bml0QXJnczogdW5pdHMuSVVuaXRDb21iaW5hdGlvbkFyZykge1xuICAgIHJldHVybiAhdGhpcy5sZXNzVGltZVBhc3NlZFRvTm93KHVuaXRBcmdzKTtcbiAgfVxufVxuIiwgIi8qKlxuICogZWFzeSBoaWdoIHJlc29sdXRpb24gdGltZSBtZWFzdXJlbWVudFxuICovXG5leHBvcnQgY2xhc3MgSHJ0TWVhc3VyZW1lbnQge1xuICBwdWJsaWMgbmFub1NlY29uZHM6IG51bWJlciA9IG51bGw7XG4gIHB1YmxpYyBtaWxsaVNlY29uZHM6IG51bWJlciA9IG51bGw7XG4gIHByaXZhdGUgX21pbGxpU3RhcnQ6IG51bWJlciA9IG51bGw7XG4gIHByaXZhdGUgX21pbGxpRGlmZjogbnVtYmVyID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3RhcnRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBzdGFydCB0aGUgbWVhc3VyZW1lbnRcbiAgICovXG4gIHB1YmxpYyBzdGFydCgpIHtcbiAgICB0aGlzLl9zdGFydGVkID0gdHJ1ZTtcbiAgICB0aGlzLl9taWxsaVN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzdG9wIHRoZSBtZWFzdXJlbWVudFxuICAgKi9cbiAgcHVibGljIHN0b3AoKSB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0ZWQgPT09IGZhbHNlKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIkhhc24ndCBzdGFydGVkIHlldFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fbWlsbGlEaWZmID0gRGF0ZS5ub3coKSAtIHRoaXMuX21pbGxpU3RhcnQ7XG4gICAgdGhpcy5uYW5vU2Vjb25kcyA9IHRoaXMuX21pbGxpRGlmZiAqIDEwMDA7XG4gICAgdGhpcy5taWxsaVNlY29uZHMgPSB0aGlzLl9taWxsaURpZmY7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogcmVzZXQgdGhlIG1lYXN1cmVtZW50XG4gICAqL1xuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy5uYW5vU2Vjb25kcyA9IG51bGw7XG4gICAgdGhpcy5taWxsaVNlY29uZHMgPSBudWxsO1xuICAgIHRoaXMuX21pbGxpU3RhcnQgPSBudWxsO1xuICAgIHRoaXMuX21pbGxpRGlmZiA9IG51bGw7XG4gICAgdGhpcy5fc3RhcnRlZCA9IGZhbHNlO1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0dGltZS5wbHVnaW5zLmpzJztcblxuZXhwb3J0IGNsYXNzIEludGVydmFsIHtcbiAgcHVibGljIHN0YXR1czogJ3N0YXJ0ZWQnIHwgJ3N0b3BwZWQnIHwgJ2luaXRpYWwnID0gJ2luaXRpYWwnO1xuICBwcml2YXRlIHN0YXR1c0F1dGhvcml6YXRpb246IGFueSA9IG51bGw7XG5cbiAgLy8gdGltaW5nc1xuICBwdWJsaWMgaW50ZXJ2YWxNaWxsaXNlY29uZHM6IG51bWJlcjtcbiAgcHVibGljIG5leHRJbnRlcnZhbE1pbGxpc2VuY29uZHM6IG51bWJlcjtcblxuICBwdWJsaWMgaW50ZXJ2YWxKb2JzOiBBcnJheTwoKSA9PiBhbnk+ID0gW107XG4gIGNvbnN0cnVjdG9yKGludGVydmFsTWlsbGlzZW5jb25kc0FyZzogbnVtYmVyKSB7XG4gICAgdGhpcy5pbnRlcnZhbE1pbGxpc2Vjb25kcyA9IGludGVydmFsTWlsbGlzZW5jb25kc0FyZztcbiAgfVxuXG4gIHB1YmxpYyBzdGFydCgpIHtcbiAgICB0aGlzLnN0YXR1cyA9ICdzdGFydGVkJztcbiAgICBjb25zdCBzdGF0dXNBdXRoID0gbmV3IERhdGUoKTtcbiAgICB0aGlzLnN0YXR1c0F1dGhvcml6YXRpb24gPSBzdGF0dXNBdXRoO1xuICAgIGNvbnN0IHJ1bkludGVydmFsID0gYXN5bmMgKCkgPT4ge1xuICAgICAgd2hpbGUgKHRoaXMuc3RhdHVzID09PSAnc3RhcnRlZCcgJiYgdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uID09PSBzdGF0dXNBdXRoKSB7XG4gICAgICAgIGF3YWl0IHBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcih0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzKTtcbiAgICAgICAgdGhpcy5leGVjdXRlSW50ZXJ2YWxKb2JzKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBydW5JbnRlcnZhbCgpO1xuICB9XG5cbiAgcHVibGljIHN0b3AoKSB7XG4gICAgdGhpcy5zdGF0dXMgPSAnc3RvcHBlZCc7XG4gICAgdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRJbnRlcnZhbEpvYihmdW5jQXJnOiAoKSA9PiBhbnkpIHtcbiAgICB0aGlzLmludGVydmFsSm9icy5wdXNoKGZ1bmNBcmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlSW50ZXJ2YWxKb2JzKCkge1xuICAgIGZvciAoY29uc3QgZnVuY0FyZyBvZiB0aGlzLmludGVydmFsSm9icykge1xuICAgICAgZnVuY0FyZygpO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydHRpbWUucGx1Z2lucy5qcyc7XG5cbi8qKlxuICogVGltZVN0YW1wXG4gKiBzbWFydCB0aW1lc3RhbXBcbiAqL1xuZXhwb3J0IGNsYXNzIFRpbWVTdGFtcCB7XG4gIC8qKlxuICAgKiByZXR1cm5zIG5ldyBUaW1lU3RhbXAgZnJvbSBtaWxsaXNlY29uZHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU1pbGxpU2Vjb25kcyhtaWxsaVNlY29uZHNBcmc6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgVGltZVN0YW1wKG1pbGxpU2Vjb25kc0FyZyk7XG4gIH1cblxuICAvKipcbiAgICogcmV0dXJucyBuZXcgVGltZVN0YW1wIGZvciBub3cgd2l0aCBjaGFuZ2Ugc2V0XG4gICAqIEBwYXJhbSB0aW1lU3RhbXBBcmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRpbWVTdGFtcCh0aW1lU3RhbXBBcmc6IFRpbWVTdGFtcCkge1xuICAgIGNvbnN0IGxvY2FsVGltZVN0YW1wID0gbmV3IFRpbWVTdGFtcCgpO1xuICAgIGxvY2FsVGltZVN0YW1wLmNoYW5nZSA9IGxvY2FsVGltZVN0YW1wLm1pbGxpU2Vjb25kcyAtIHRpbWVTdGFtcEFyZy5taWxsaVNlY29uZHM7XG4gICAgcmV0dXJuIGxvY2FsVGltZVN0YW1wO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFuZGFyZCBKYXZhU2NyaXB0IERhdGVcbiAgICovXG4gIHB1YmxpYyBkYXRlOiBEYXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBhcyBsaW51eCB0aW1lIChtaWxsaXNlY29uZHMsIG5vdCBzZWNvbmRzIHRob3VnaClcbiAgICogZ29vZCBmb3IgY29tcGFyaXNvblxuICAgKi9cbiAgcHVibGljIG1pbGxpU2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhbmRhcmQgZXBvY2ggdGltZSBpbiBzZWNvbmRzXG4gICAqL1xuICBwdWJsaWMgZXBvY2h0aW1lOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIGlmIGRlcml2ZWQgZnJvbSBhbm90aGVyIFRpbWVTdGFtcCBwb2ludHMgb3V0IHRoZSBjaGFuZ2UgaW4gbWlsbGlzZWNvbmRzXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlOiBudW1iZXIgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKGNyZWF0b3JBcmc/OiBudW1iZXIpIHtcbiAgICBpZiAoIWNyZWF0b3JBcmcpIHtcbiAgICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgY3JlYXRvckFyZyA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKGNyZWF0b3JBcmcpO1xuICAgIH1cbiAgICB0aGlzLm1pbGxpU2Vjb25kcyA9IHRoaXMuZGF0ZS5nZXRUaW1lKCk7XG4gICAgdGhpcy5lcG9jaHRpbWUgPSBNYXRoLmZsb29yKHRoaXMubWlsbGlTZWNvbmRzIC8gMTAwMCk7XG4gIH1cblxuICAvKipcbiAgICogcmV0dXJucyBhIGJvb2xlYW4gZm9yIHdldGhlciB0aGUgdGltZXN0YW1wIGlzIG9sZGVyIHRoYW4gYW5vdGhlciB0aW1lc3RhbXBcbiAgICogQHBhcmFtIFRpbWVTdGFtcEFyZ1xuICAgKiBAcGFyYW0gdHJlc2hvbGRUaW1lQXJnXG4gICAqL1xuICBwdWJsaWMgaXNPbGRlclRoYW5PdGhlclRpbWVTdGFtcChUaW1lU3RhbXBBcmc6IFRpbWVTdGFtcCwgdHJlc2hvbGRUaW1lQXJnOiBudW1iZXIgPSAwKSB7XG4gICAgaWYgKHRoaXMubWlsbGlTZWNvbmRzIDwgVGltZVN0YW1wQXJnLm1pbGxpU2Vjb25kcyAtIHRyZXNob2xkVGltZUFyZykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSXMgdGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2xkZXIgdGhhbiB0aGUgYXJndW1lbnRcbiAgICogQHBhcmFtIFRpbWVTdGFtcEFyZ1xuICAgKi9cbiAgcHVibGljIGlzT2xkZXJUaGFuKFRpbWVTdGFtcEFyZzogVGltZVN0YW1wLCB0cmVzaG9sZFRpbWVBcmc6IG51bWJlciA9IDApIHtcbiAgICBpZiAodGhpcy5taWxsaVNlY29uZHMgKyB0cmVzaG9sZFRpbWVBcmcgPCBUaW1lU3RhbXBBcmcubWlsbGlTZWNvbmRzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm5zIGEgYm9vbGVhbiBmb3Igd2V0aGVyIHRoZSB0aW1lc3RhbXAgaXMgeW91bmdlciB0aGFuIGFub3RoZXIgdGltZXN0YW1wXG4gICAqIEBwYXJhbSBUaW1lU3RhbXBBcmdcbiAgICogQHBhcmFtIHRyZXNob2xkVGltZUFyZ1xuICAgKi9cbiAgcHVibGljIGlzWW91bmdlclRoYW5PdGhlclRpbWVTdGFtcChUaW1lU3RhbXBBcmc6IFRpbWVTdGFtcCwgdHJlc2hvbGRUaW1lQXJnOiBudW1iZXIgPSAwKSB7XG4gICAgaWYgKHRoaXMubWlsbGlTZWNvbmRzID4gVGltZVN0YW1wQXJnLm1pbGxpU2Vjb25kcyArIHRyZXNob2xkVGltZUFyZykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNZb3VuZ2VyVGhhbk1pbGxpU2Vjb25kcyhtaWxsaXNlY29uZEFyZzogbnVtYmVyKSB7XG4gICAgY29uc3Qgbm93VGltZVN0YW1wID0gbmV3IFRpbWVTdGFtcCgpO1xuICAgIGNvbnN0IGNvbXBhcmVFcG9jaFRpbWUgPSBub3dUaW1lU3RhbXAuZXBvY2h0aW1lIC0gbWlsbGlzZWNvbmRBcmc7XG4gICAgY29uc3QgY29tcGFyZVRpbWVTdGFtcCA9IG5ldyBUaW1lU3RhbXAoY29tcGFyZUVwb2NoVGltZSk7XG4gICAgcmV0dXJuIHRoaXMuaXNZb3VuZ2VyVGhhbk90aGVyVGltZVN0YW1wKGNvbXBhcmVUaW1lU3RhbXApO1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0dGltZS5wbHVnaW5zLmpzJztcblxuaW1wb3J0IHsgVGltZVN0YW1wIH0gZnJvbSAnLi9zbWFydHRpbWUuY2xhc3Nlcy50aW1lc3RhbXAuanMnO1xuXG5leHBvcnQgdHlwZSBUaW1lclN0YXRlID0gJ2luaXRpYXRlZCcgfCAnc3RhcnRlZCcgfCAncGF1c2VkJyB8ICdjb21wbGV0ZWQnO1xuXG5leHBvcnQgY2xhc3MgVGltZXIge1xuICAvKipcbiAgICogdGhlIG9yaWdpbmFsIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgZm9yIHRoaXMgVGltZXJcbiAgICovXG4gIHB1YmxpYyB0aW1lSW5NaWxsaXNlY29uZHM6IG51bWJlcjtcblxuICAvKipcbiAgICogdGhlIHN0YXRlIG9mIHRoZSB0aW1lclxuICAgKi9cbiAgcHVibGljIHN0YXRlOiBUaW1lclN0YXRlID0gJ2luaXRpYXRlZCc7XG5cbiAgLyoqXG4gICAqIGNvbXBsZXRlZCBQcm9taXNlXG4gICAqL1xuICBwdWJsaWMgY29tcGxldGVkOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBhIHJlZmVyZW5jZSB0byB3aGVuIHRoZSBUaW1lb3V0IHN0YXJ0ZWRcbiAgICovXG4gIHB1YmxpYyBzdGFydGVkQXQ6IFRpbWVTdGFtcDtcblxuICAvKipcbiAgICogYSByZWZlcmVuY2UgdG8gd2hlbiBhIFRpbWVyIGhhcyBiZWVuIHBvdGVudGlhbGx5IHBhdXNlZFxuICAgKi9cbiAgcHVibGljIHBhdXNlZEF0OiBUaW1lU3RhbXA7XG5cbiAgZ2V0IHRpbWVMZWZ0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudGltZUluTWlsbGlzZWNvbmRzIC0gdGhpcy5wYXVzZWRBdC5jaGFuZ2U7XG4gIH1cbiAgLyoqXG4gICAqIHRoZSBjdXJyZW50IHRpbWVvdXQgdGhlIG5lZWRzIHRvIGJlIGNhbmNlbGVkIHdoZW4gdGhpcyBUaW1lciBpcyBzdG9wcGVkXG4gICAqL1xuICBwcml2YXRlIGN1cnJlbnRUaW1lb3V0OiBOb2RlSlMuVGltZW91dDtcblxuICAvLyBhIGRlZmVycmVkIHRyaWdnZXRlZCB3aGVuIFRpbWVyIGhhcyBjb21wbGV0ZWRcbiAgcHJpdmF0ZSBjb21wbGV0ZWREZWZlcnJlZCA9IHBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyPHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IodGltZUluTWlsbGlzZWNvbmRzQXJnOiBudW1iZXIpIHtcbiAgICB0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcyA9IHRpbWVJbk1pbGxpc2Vjb25kc0FyZztcbiAgICB0aGlzLmNvbXBsZXRlZCA9IHRoaXMuY29tcGxldGVkRGVmZXJyZWQucHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzdGFydHMgdGhlIHRpbWVyXG4gICAqL1xuICBwdWJsaWMgc3RhcnQoKSB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWRBdCkge1xuICAgICAgdGhpcy5jdXJyZW50VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKTtcbiAgICAgIH0sIHRoaXMudGltZUluTWlsbGlzZWNvbmRzKTtcbiAgICAgIHRoaXMuc3RhcnRlZEF0ID0gbmV3IFRpbWVTdGFtcCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RpbWVyIGhhcyBiZWVuIHN0YXJ0ZWQgYmVmb3JlLiBQbGVhc2UgdXNlIHJlc3VtZSBpbnN0ZWFkJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHBhdXNlKCkge1xuICAgIGlmICh0aGlzLnN0YXJ0ZWRBdCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudFRpbWVvdXQpO1xuICAgICAgdGhpcy5jdXJyZW50VGltZW91dCA9IG51bGw7XG4gICAgICB0aGlzLnBhdXNlZEF0ID0gVGltZVN0YW1wLmZyb21UaW1lU3RhbXAodGhpcy5zdGFydGVkQXQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXN1bWUoKSB7XG4gICAgaWYgKHRoaXMuc3RhcnRlZEF0KSB7XG4gICAgICB0aGlzLmN1cnJlbnRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY29tcGxldGVkRGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgICAgfSwgdGhpcy50aW1lTGVmdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndGltZXIgaGFzIE5PVCBiZWVuIHN0YXJ0ZWQgYmVmb3JlLiBQbGVhc2UgdXNlIC5zdGFydCgpIGluc3RlYWQnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy5wYXVzZSgpO1xuICAgIHRoaXMuc3RhcnRlZEF0ID0gbnVsbDtcbiAgICB0aGlzLnBhdXNlZEF0ID0gbnVsbDtcbiAgfVxufVxuIiwgImV4cG9ydCAqIGZyb20gJy4vc21hcnR0aW1lLmNsYXNzZXMuY3Jvbm1hbmFnZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zbWFydHRpbWUuY2xhc3Nlcy5jcm9uam9iLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc21hcnR0aW1lLmNsYXNzZXMuZXh0ZW5kZWRkYXRlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc21hcnR0aW1lLmNsYXNzZXMuaHJ0bWVhc3VyZW1lbnQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zbWFydHRpbWUuY2xhc3Nlcy5pbnRlcnZhbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0dGltZS5jbGFzc2VzLnRpbWVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc21hcnR0aW1lLmNsYXNzZXMudGltZXN0YW1wLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc21hcnR0aW1lLnVuaXRzLmpzJztcbiIsICIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gY2xhc3MgU3ltYm9sVHJlZU5vZGUge1xuICAgICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudCA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c1NpYmxpbmcgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMubmV4dFNpYmxpbmcgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5maXJzdENoaWxkID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RDaGlsZCA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICAvKiogVGhpcyB2YWx1ZSBpcyBpbmNyZW1lbnRlZCBhbnl0aW1lIGEgY2hpbGRyZW4gaXMgYWRkZWQgb3IgcmVtb3ZlZCAqL1xuICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5WZXJzaW9uID0gMDtcbiAgICAgICAgICAgICAgICAvKiogVGhlIGxhc3QgY2hpbGQgb2JqZWN0IHdoaWNoIGhhcyBhIGNhY2hlZCBpbmRleCAqL1xuICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG8gPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgLyoqIFRoaXMgdmFsdWUgcmVwcmVzZW50cyB0aGUgY2FjaGVkIG5vZGUgaW5kZXgsIGFzIGxvbmcgYXNcbiAgICAgICAgICAgICAgICAgKiBjYWNoZWRJbmRleFZlcnNpb24gbWF0Y2hlcyB3aXRoIHRoZSBjaGlsZHJlblZlcnNpb24gb2YgdGhlIHBhcmVudCAqL1xuICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVkSW5kZXggPSAtMTtcbiAgICAgICAgICAgICAgICB0aGlzLmNhY2hlZEluZGV4VmVyc2lvbiA9IE5hTjsgLy8gTmFOIGlzIG5ldmVyIGVxdWFsIHRvIGFueXRoaW5nXG4gICAgICAgIH1cblxuICAgICAgICBnZXQgaXNBdHRhY2hlZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLnBhcmVudCB8fCB0aGlzLnByZXZpb3VzU2libGluZyB8fCB0aGlzLm5leHRTaWJsaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdldCBoYXNDaGlsZHJlbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLmZpcnN0Q2hpbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKCkge1xuICAgICAgICAgICAgICAgIC8qIGpzaGludCAtVzAxNiAqL1xuICAgICAgICAgICAgICAgIC8vIGludGVnZXIgd3JhcCBhcm91bmRcbiAgICAgICAgICAgICAgICB0aGlzLmNoaWxkcmVuVmVyc2lvbiA9ICh0aGlzLmNoaWxkcmVuVmVyc2lvbiArIDEpICYgMHhGRkZGRkZGRjtcbiAgICAgICAgICAgICAgICB0aGlzLmNoaWxkSW5kZXhDYWNoZWRVcFRvID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGdldENhY2hlZEluZGV4KHBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAvLyAoYXNzdW1lcyBwYXJlbnROb2RlIGlzIGFjdHVhbGx5IHRoZSBwYXJlbnQpXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uICE9PSBwYXJlbnROb2RlLmNoaWxkcmVuVmVyc2lvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWNoZWRJbmRleFZlcnNpb24gPSBOYU47XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjYWNoZWRJbmRleCBpcyBubyBsb25nZXIgdmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jYWNoZWRJbmRleDsgLy8gLTEgaWYgbm90IGNhY2hlZFxuICAgICAgICB9XG5cbiAgICAgICAgc2V0Q2FjaGVkSW5kZXgocGFyZW50Tm9kZSwgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAvLyAoYXNzdW1lcyBwYXJlbnROb2RlIGlzIGFjdHVhbGx5IHRoZSBwYXJlbnQpXG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZWRJbmRleFZlcnNpb24gPSBwYXJlbnROb2RlLmNoaWxkcmVuVmVyc2lvbjtcbiAgICAgICAgICAgICAgICB0aGlzLmNhY2hlZEluZGV4ID0gaW5kZXg7XG4gICAgICAgIH1cbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBzb3J0LWtleXMgKi9cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmZyZWV6ZSh7XG4gICAgICAgIC8vIHNhbWUgYXMgRE9NIERPQ1VNRU5UX1BPU0lUSU9OX1xuICAgICAgICBESVNDT05ORUNURUQ6IDEsXG4gICAgICAgIFBSRUNFRElORzogMixcbiAgICAgICAgRk9MTE9XSU5HOiA0LFxuICAgICAgICBDT05UQUlOUzogOCxcbiAgICAgICAgQ09OVEFJTkVEX0JZOiAxNixcbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuY29uc3QgVFJFRSA9IFN5bWJvbCgpO1xuY29uc3QgUk9PVCA9IFN5bWJvbCgpO1xuY29uc3QgTkVYVCA9IFN5bWJvbCgpO1xuY29uc3QgSVRFUkFURV9GVU5DID0gU3ltYm9sKCk7XG5cbmNsYXNzIFRyZWVJdGVyYXRvciB7XG4gICAgICAgIGNvbnN0cnVjdG9yKHRyZWUsIHJvb3QsIGZpcnN0UmVzdWx0LCBpdGVyYXRlRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzW1RSRUVdID0gdHJlZTtcbiAgICAgICAgICAgICAgICB0aGlzW1JPT1RdID0gcm9vdDtcbiAgICAgICAgICAgICAgICB0aGlzW05FWFRdID0gZmlyc3RSZXN1bHQ7XG4gICAgICAgICAgICAgICAgdGhpc1tJVEVSQVRFX0ZVTkNdID0gaXRlcmF0ZUZ1bmN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgbmV4dCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmVlID0gdGhpc1tUUkVFXTtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVyYXRlRnVuYyA9IHRoaXNbSVRFUkFURV9GVU5DXTtcbiAgICAgICAgICAgICAgICBjb25zdCByb290ID0gdGhpc1tST09UXTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpc1tORVhUXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9uZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJvb3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpc1tORVhUXTtcblxuICAgICAgICAgICAgICAgIGlmIChpdGVyYXRlRnVuYyA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tORVhUXSA9IHRyZWUuX25vZGUodmFsdWUpLnByZXZpb3VzU2libGluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXRlcmF0ZUZ1bmMgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbTkVYVF0gPSB0cmVlLl9ub2RlKHZhbHVlKS5uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXRlcmF0ZUZ1bmMgPT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbTkVYVF0gPSB0cmVlLl9ub2RlKHZhbHVlKS5wYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZXJhdGVGdW5jID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW05FWFRdID0gdHJlZS5wcmVjZWRpbmcodmFsdWUsIHtyb290OiByb290fSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgLyogaWYgKGl0ZXJhdGVGdW5jID09PSA1KSovIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbTkVYVF0gPSB0cmVlLmZvbGxvd2luZyh2YWx1ZSwge3Jvb3Q6IHJvb3R9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoVHJlZUl0ZXJhdG9yLnByb3RvdHlwZSwgU3ltYm9sLml0ZXJhdG9yLCB7XG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxufSk7XG5cblRyZWVJdGVyYXRvci5QUkVWID0gMTtcblRyZWVJdGVyYXRvci5ORVhUID0gMjtcblRyZWVJdGVyYXRvci5QQVJFTlQgPSAzO1xuVHJlZUl0ZXJhdG9yLlBSRUNFRElORyA9IDQ7XG5UcmVlSXRlcmF0b3IuRk9MTE9XSU5HID0gNTtcblxuT2JqZWN0LmZyZWV6ZShUcmVlSXRlcmF0b3IpO1xuT2JqZWN0LmZyZWV6ZShUcmVlSXRlcmF0b3IucHJvdG90eXBlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBUcmVlSXRlcmF0b3I7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEBtb2R1bGUgc3ltYm9sLXRyZWVcbiAqIEBhdXRob3IgSm9yaXMgdmFuIGRlciBXZWwgPGpvcmlzQGpvcmlzdmFuZGVyd2VsLmNvbT5cbiAqL1xuXG5jb25zdCBTeW1ib2xUcmVlTm9kZSA9IHJlcXVpcmUoJy4vU3ltYm9sVHJlZU5vZGUnKTtcbmNvbnN0IFRyZWVQb3NpdGlvbiA9IHJlcXVpcmUoJy4vVHJlZVBvc2l0aW9uJyk7XG5jb25zdCBUcmVlSXRlcmF0b3IgPSByZXF1aXJlKCcuL1RyZWVJdGVyYXRvcicpO1xuXG5mdW5jdGlvbiByZXR1cm5UcnVlKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmV2ZXJzZUFycmF5SW5kZXgoYXJyYXksIHJldmVyc2VJbmRleCkge1xuICAgICAgICByZXR1cm4gYXJyYXlbYXJyYXkubGVuZ3RoIC0gMSAtIHJldmVyc2VJbmRleF07IC8vIG5vIG5lZWQgdG8gY2hlY2sgYGluZGV4ID49IDBgXG59XG5cbmNsYXNzIFN5bWJvbFRyZWUge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgICAgICogQGFsaWFzIG1vZHVsZTpzeW1ib2wtdHJlZVxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2Rlc2NyaXB0aW9uPSdTeW1ib2xUcmVlIGRhdGEnXSBEZXNjcmlwdGlvbiB1c2VkIGZvciB0aGUgU3ltYm9sXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdHJ1Y3RvcihkZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ltYm9sID0gU3ltYm9sKGRlc2NyaXB0aW9uIHx8ICdTeW1ib2xUcmVlIGRhdGEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBZb3UgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIChvcHRpb25hbGx5KSBpbml0aWFsaXplIGFuIG9iamVjdCByaWdodCBhZnRlciBpdHMgY3JlYXRpb24sXG4gICAgICAgICAqIHRvIHRha2UgYWR2YW50YWdlIG9mIFY4J3MgZmFzdCBwcm9wZXJ0aWVzLiBBbHNvIHVzZWZ1bCBpZiB5b3Ugd291bGQgbGlrZSB0b1xuICAgICAgICAgKiBmcmVlemUgeW91ciBvYmplY3QuXG4gICAgICAgICAqXG4gICAgICAgICAqIGBPKDEpYFxuICAgICAgICAgKlxuICAgICAgICAgKiBAbWV0aG9kXG4gICAgICAgICAqIEBhbGlhcyBtb2R1bGU6c3ltYm9sLXRyZWUjaW5pdGlhbGl6ZVxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0XG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH0gb2JqZWN0XG4gICAgICAgICAqL1xuICAgICAgICBpbml0aWFsaXplKG9iamVjdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX25vZGUob2JqZWN0KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgIH1cblxuICAgICAgICBfbm9kZShvYmplY3QpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG9iamVjdFt0aGlzLnN5bWJvbF07XG5cbiAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChvYmplY3RbdGhpcy5zeW1ib2xdID0gbmV3IFN5bWJvbFRyZWVOb2RlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3QgaGFzIGFueSBjaGlsZHJlbi4gT3RoZXJ3aXNlIGl0IHJldHVybnMgYGZhbHNlYC5cbiAgICAgICAgICpcbiAgICAgICAgICogKiBgTygxKWBcbiAgICAgICAgICpcbiAgICAgICAgICogQG1ldGhvZCBoYXNDaGlsZHJlblxuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0XG4gICAgICAgICAqIEByZXR1cm4ge0Jvb2xlYW59XG4gICAgICAgICAqL1xuICAgICAgICBoYXNDaGlsZHJlbihvYmplY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbm9kZShvYmplY3QpLmhhc0NoaWxkcmVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgdGhlIGZpcnN0IGNoaWxkIG9mIHRoZSBnaXZlbiBvYmplY3QuXG4gICAgICAgICAqXG4gICAgICAgICAqICogYE8oMSlgXG4gICAgICAgICAqXG4gICAgICAgICAqIEBtZXRob2QgZmlyc3RDaGlsZFxuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0XG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH1cbiAgICAgICAgICovXG4gICAgICAgIGZpcnN0Q2hpbGQob2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vZGUob2JqZWN0KS5maXJzdENoaWxkO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgdGhlIGxhc3QgY2hpbGQgb2YgdGhlIGdpdmVuIG9iamVjdC5cbiAgICAgICAgICpcbiAgICAgICAgICogKiBgTygxKWBcbiAgICAgICAgICpcbiAgICAgICAgICogQG1ldGhvZCBsYXN0Q2hpbGRcbiAgICAgICAgICogQG1lbWJlck9mIG1vZHVsZTpzeW1ib2wtdHJlZSNcbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdFxuICAgICAgICAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICAgICAgICAqL1xuICAgICAgICBsYXN0Q2hpbGQob2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vZGUob2JqZWN0KS5sYXN0Q2hpbGQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJucyB0aGUgcHJldmlvdXMgc2libGluZyBvZiB0aGUgZ2l2ZW4gb2JqZWN0LlxuICAgICAgICAgKlxuICAgICAgICAgKiAqIGBPKDEpYFxuICAgICAgICAgKlxuICAgICAgICAgKiBAbWV0aG9kIHByZXZpb3VzU2libGluZ1xuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0XG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH1cbiAgICAgICAgICovXG4gICAgICAgIHByZXZpb3VzU2libGluZyhvYmplY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbm9kZShvYmplY3QpLnByZXZpb3VzU2libGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IHNpYmxpbmcgb2YgdGhlIGdpdmVuIG9iamVjdC5cbiAgICAgICAgICpcbiAgICAgICAgICogKiBgTygxKWBcbiAgICAgICAgICpcbiAgICAgICAgICogQG1ldGhvZCBuZXh0U2libGluZ1xuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0XG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH1cbiAgICAgICAgICovXG4gICAgICAgIG5leHRTaWJsaW5nKG9iamVjdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9ub2RlKG9iamVjdCkubmV4dFNpYmxpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJuIHRoZSBwYXJlbnQgb2YgdGhlIGdpdmVuIG9iamVjdC5cbiAgICAgICAgICpcbiAgICAgICAgICogKiBgTygxKWBcbiAgICAgICAgICpcbiAgICAgICAgICogQG1ldGhvZCBwYXJlbnRcbiAgICAgICAgICogQG1lbWJlck9mIG1vZHVsZTpzeW1ib2wtdHJlZSNcbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdFxuICAgICAgICAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICAgICAgICAqL1xuICAgICAgICBwYXJlbnQob2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vZGUob2JqZWN0KS5wYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogRmluZCB0aGUgaW5jbHVzaXZlIGRlc2NlbmRhbnQgdGhhdCBpcyBsYXN0IGluIHRyZWUgb3JkZXIgb2YgdGhlIGdpdmVuIG9iamVjdC5cbiAgICAgICAgICpcbiAgICAgICAgICogKiBgTyhuKWAgKHdvcnN0IGNhc2UpIHdoZXJlIGBuYCBpcyB0aGUgZGVwdGggb2YgdGhlIHN1YnRyZWUgb2YgYG9iamVjdGBcbiAgICAgICAgICpcbiAgICAgICAgICogQG1ldGhvZCBsYXN0SW5jbHVzaXZlRGVzY2VuZGFudFxuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0XG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH1cbiAgICAgICAgICovXG4gICAgICAgIGxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KG9iamVjdCkge1xuICAgICAgICAgICAgICAgIGxldCBsYXN0Q2hpbGQ7XG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnQgPSBvYmplY3Q7XG5cbiAgICAgICAgICAgICAgICB3aGlsZSAoKGxhc3RDaGlsZCA9IHRoaXMuX25vZGUoY3VycmVudCkubGFzdENoaWxkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGxhc3RDaGlsZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaW5kIHRoZSBwcmVjZWRpbmcgb2JqZWN0IChBKSBvZiB0aGUgZ2l2ZW4gb2JqZWN0IChCKS5cbiAgICAgICAgICogQW4gb2JqZWN0IEEgaXMgcHJlY2VkaW5nIGFuIG9iamVjdCBCIGlmIEEgYW5kIEIgYXJlIGluIHRoZSBzYW1lIHRyZWVcbiAgICAgICAgICogYW5kIEEgY29tZXMgYmVmb3JlIEIgaW4gdHJlZSBvcmRlci5cbiAgICAgICAgICpcbiAgICAgICAgICogKiBgTyhuKWAgKHdvcnN0IGNhc2UpXG4gICAgICAgICAqICogYE8oMSlgIChhbW9ydGl6ZWQgd2hlbiB3YWxraW5nIHRoZSBlbnRpcmUgdHJlZSlcbiAgICAgICAgICpcbiAgICAgICAgICogQG1ldGhvZCBwcmVjZWRpbmdcbiAgICAgICAgICogQG1lbWJlck9mIG1vZHVsZTpzeW1ib2wtdHJlZSNcbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdFxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucy5yb290XSBJZiBzZXQsIGByb290YCBtdXN0IGJlIGFuIGluY2x1c2l2ZSBhbmNlc3RvclxuICAgICAgICAgKiAgICAgICAgb2YgdGhlIHJldHVybiB2YWx1ZSAob3IgZWxzZSBudWxsIGlzIHJldHVybmVkKS4gVGhpcyBjaGVjayBfYXNzdW1lc19cbiAgICAgICAgICogICAgICAgIHRoYXQgYHJvb3RgIGlzIGFsc28gYW4gaW5jbHVzaXZlIGFuY2VzdG9yIG9mIHRoZSBnaXZlbiBgb2JqZWN0YFxuICAgICAgICAgKiBAcmV0dXJuIHs/T2JqZWN0fVxuICAgICAgICAgKi9cbiAgICAgICAgcHJlY2VkaW5nKG9iamVjdCwgb3B0aW9ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRyZWVSb290ID0gb3B0aW9ucyAmJiBvcHRpb25zLnJvb3Q7XG5cbiAgICAgICAgICAgICAgICBpZiAob2JqZWN0ID09PSB0cmVlUm9vdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNTaWJsaW5nID0gdGhpcy5fbm9kZShvYmplY3QpLnByZXZpb3VzU2libGluZztcblxuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1NpYmxpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KHByZXZpb3VzU2libGluZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gcHJldmlvdXMgc2libGluZyByZXR1cm4gdGhlIHBhcmVudCAobWlnaHQgYmUgbnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbm9kZShvYmplY3QpLnBhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaW5kIHRoZSBmb2xsb3dpbmcgb2JqZWN0IChBKSBvZiB0aGUgZ2l2ZW4gb2JqZWN0IChCKS5cbiAgICAgICAgICogQW4gb2JqZWN0IEEgaXMgZm9sbG93aW5nIGFuIG9iamVjdCBCIGlmIEEgYW5kIEIgYXJlIGluIHRoZSBzYW1lIHRyZWVcbiAgICAgICAgICogYW5kIEEgY29tZXMgYWZ0ZXIgQiBpbiB0cmVlIG9yZGVyLlxuICAgICAgICAgKlxuICAgICAgICAgKiAqIGBPKG4pYCAod29yc3QgY2FzZSkgd2hlcmUgYG5gIGlzIHRoZSBhbW91bnQgb2Ygb2JqZWN0cyBpbiB0aGUgZW50aXJlIHRyZWVcbiAgICAgICAgICogKiBgTygxKWAgKGFtb3J0aXplZCB3aGVuIHdhbGtpbmcgdGhlIGVudGlyZSB0cmVlKVxuICAgICAgICAgKlxuICAgICAgICAgKiBAbWV0aG9kIGZvbGxvd2luZ1xuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0geyFPYmplY3R9IG9iamVjdFxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucy5yb290XSBJZiBzZXQsIGByb290YCBtdXN0IGJlIGFuIGluY2x1c2l2ZSBhbmNlc3RvclxuICAgICAgICAgKiAgICAgICAgb2YgdGhlIHJldHVybiB2YWx1ZSAob3IgZWxzZSBudWxsIGlzIHJldHVybmVkKS4gVGhpcyBjaGVjayBfYXNzdW1lc19cbiAgICAgICAgICogICAgICAgIHRoYXQgYHJvb3RgIGlzIGFsc28gYW4gaW5jbHVzaXZlIGFuY2VzdG9yIG9mIHRoZSBnaXZlbiBgb2JqZWN0YFxuICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLnNraXBDaGlsZHJlbj1mYWxzZV0gSWYgc2V0LCBpZ25vcmUgdGhlIGNoaWxkcmVuIG9mIGBvYmplY3RgXG4gICAgICAgICAqIEByZXR1cm4gez9PYmplY3R9XG4gICAgICAgICAqL1xuICAgICAgICBmb2xsb3dpbmcob2JqZWN0LCBvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJlZVJvb3QgPSBvcHRpb25zICYmIG9wdGlvbnMucm9vdDtcbiAgICAgICAgICAgICAgICBjb25zdCBza2lwQ2hpbGRyZW4gPSBvcHRpb25zICYmIG9wdGlvbnMuc2tpcENoaWxkcmVuO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3RDaGlsZCA9ICFza2lwQ2hpbGRyZW4gJiYgdGhpcy5fbm9kZShvYmplY3QpLmZpcnN0Q2hpbGQ7XG5cbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0Q2hpbGQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnQgPSBvYmplY3Q7XG5cbiAgICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PT0gdHJlZVJvb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRTaWJsaW5nID0gdGhpcy5fbm9kZShjdXJyZW50KS5uZXh0U2libGluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRTaWJsaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IHRoaXMuX25vZGUoY3VycmVudCkucGFyZW50O1xuICAgICAgICAgICAgICAgIH0gd2hpbGUgKGN1cnJlbnQpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQXBwZW5kIGFsbCBjaGlsZHJlbiBvZiB0aGUgZ2l2ZW4gb2JqZWN0IHRvIGFuIGFycmF5LlxuICAgICAgICAgKlxuICAgICAgICAgKiAqIGBPKG4pYCB3aGVyZSBgbmAgaXMgdGhlIGFtb3VudCBvZiBjaGlsZHJlbiBvZiB0aGUgZ2l2ZW4gYHBhcmVudGBcbiAgICAgICAgICpcbiAgICAgICAgICogQG1ldGhvZCBjaGlsZHJlblRvQXJyYXlcbiAgICAgICAgICogQG1lbWJlck9mIG1vZHVsZTpzeW1ib2wtdHJlZSNcbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IHBhcmVudFxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0W119IFtvcHRpb25zLmFycmF5PVtdXVxuICAgICAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0aW9ucy5maWx0ZXJdIEZ1bmN0aW9uIHRvIHRlc3QgZWFjaCBvYmplY3QgYmVmb3JlIGl0IGlzIGFkZGVkIHRvIHRoZSBhcnJheS5cbiAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW52b2tlZCB3aXRoIGFyZ3VtZW50cyAob2JqZWN0KS4gU2hvdWxkIHJldHVybiBgdHJ1ZWAgaWYgYW4gb2JqZWN0XG4gICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIHRvIGJlIGluY2x1ZGVkLlxuICAgICAgICAgKiBAcGFyYW0geyp9IFtvcHRpb25zLnRoaXNBcmddIFZhbHVlIHRvIHVzZSBhcyBgdGhpc2Agd2hlbiBleGVjdXRpbmcgYGZpbHRlcmAuXG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdFtdfVxuICAgICAgICAgKi9cbiAgICAgICAgY2hpbGRyZW5Ub0FycmF5KHBhcmVudCwgb3B0aW9ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5ICAgPSAob3B0aW9ucyAmJiBvcHRpb25zLmFycmF5KSB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgID0gKG9wdGlvbnMgJiYgb3B0aW9ucy5maWx0ZXIpIHx8IHJldHVyblRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhpc0FyZyA9IChvcHRpb25zICYmIG9wdGlvbnMudGhpc0FyZykgfHwgdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHRoaXMuX25vZGUocGFyZW50KTtcbiAgICAgICAgICAgICAgICBsZXQgb2JqZWN0ID0gcGFyZW50Tm9kZS5maXJzdENoaWxkO1xuICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IDA7XG5cbiAgICAgICAgICAgICAgICB3aGlsZSAob2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5fbm9kZShvYmplY3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5zZXRDYWNoZWRJbmRleChwYXJlbnROb2RlLCBpbmRleCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIuY2FsbCh0aGlzQXJnLCBvYmplY3QpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LnB1c2gob2JqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0ID0gbm9kZS5uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFwcGVuZCBhbGwgaW5jbHVzaXZlIGFuY2VzdG9ycyBvZiB0aGUgZ2l2ZW4gb2JqZWN0IHRvIGFuIGFycmF5LlxuICAgICAgICAgKlxuICAgICAgICAgKiAqIGBPKG4pYCB3aGVyZSBgbmAgaXMgdGhlIGFtb3VudCBvZiBhbmNlc3RvcnMgb2YgdGhlIGdpdmVuIGBvYmplY3RgXG4gICAgICAgICAqXG4gICAgICAgICAqIEBtZXRob2QgYW5jZXN0b3JzVG9BcnJheVxuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0XG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAgICAgICAgICogQHBhcmFtIHtPYmplY3RbXX0gW29wdGlvbnMuYXJyYXk9W11dXG4gICAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLmZpbHRlcl0gRnVuY3Rpb24gdG8gdGVzdCBlYWNoIG9iamVjdCBiZWZvcmUgaXQgaXMgYWRkZWQgdG8gdGhlIGFycmF5LlxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnZva2VkIHdpdGggYXJndW1lbnRzIChvYmplY3QpLiBTaG91bGQgcmV0dXJuIGB0cnVlYCBpZiBhbiBvYmplY3RcbiAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgdG8gYmUgaW5jbHVkZWQuXG4gICAgICAgICAqIEBwYXJhbSB7Kn0gW29wdGlvbnMudGhpc0FyZ10gVmFsdWUgdG8gdXNlIGFzIGB0aGlzYCB3aGVuIGV4ZWN1dGluZyBgZmlsdGVyYC5cbiAgICAgICAgICogQHJldHVybiB7T2JqZWN0W119XG4gICAgICAgICAqL1xuICAgICAgICBhbmNlc3RvcnNUb0FycmF5KG9iamVjdCwgb3B0aW9ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5ICAgPSAob3B0aW9ucyAmJiBvcHRpb25zLmFycmF5KSB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgID0gKG9wdGlvbnMgJiYgb3B0aW9ucy5maWx0ZXIpIHx8IHJldHVyblRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhpc0FyZyA9IChvcHRpb25zICYmIG9wdGlvbnMudGhpc0FyZykgfHwgdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgICAgbGV0IGFuY2VzdG9yID0gb2JqZWN0O1xuXG4gICAgICAgICAgICAgICAgd2hpbGUgKGFuY2VzdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyLmNhbGwodGhpc0FyZywgYW5jZXN0b3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LnB1c2goYW5jZXN0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3IgPSB0aGlzLl9ub2RlKGFuY2VzdG9yKS5wYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFwcGVuZCBhbGwgZGVzY2VuZGFudHMgb2YgdGhlIGdpdmVuIG9iamVjdCB0byBhbiBhcnJheSAoaW4gdHJlZSBvcmRlcikuXG4gICAgICAgICAqXG4gICAgICAgICAqICogYE8obilgIHdoZXJlIGBuYCBpcyB0aGUgYW1vdW50IG9mIG9iamVjdHMgaW4gdGhlIHN1Yi10cmVlIG9mIHRoZSBnaXZlbiBgb2JqZWN0YFxuICAgICAgICAgKlxuICAgICAgICAgKiBAbWV0aG9kIHRyZWVUb0FycmF5XG4gICAgICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6c3ltYm9sLXRyZWUjXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSByb290XG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAgICAgICAgICogQHBhcmFtIHtPYmplY3RbXX0gW29wdGlvbnMuYXJyYXk9W11dXG4gICAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLmZpbHRlcl0gRnVuY3Rpb24gdG8gdGVzdCBlYWNoIG9iamVjdCBiZWZvcmUgaXQgaXMgYWRkZWQgdG8gdGhlIGFycmF5LlxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnZva2VkIHdpdGggYXJndW1lbnRzIChvYmplY3QpLiBTaG91bGQgcmV0dXJuIGB0cnVlYCBpZiBhbiBvYmplY3RcbiAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgdG8gYmUgaW5jbHVkZWQuXG4gICAgICAgICAqIEBwYXJhbSB7Kn0gW29wdGlvbnMudGhpc0FyZ10gVmFsdWUgdG8gdXNlIGFzIGB0aGlzYCB3aGVuIGV4ZWN1dGluZyBgZmlsdGVyYC5cbiAgICAgICAgICogQHJldHVybiB7T2JqZWN0W119XG4gICAgICAgICAqL1xuICAgICAgICB0cmVlVG9BcnJheShyb290LCBvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJyYXkgICA9IChvcHRpb25zICYmIG9wdGlvbnMuYXJyYXkpIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlciAgPSAob3B0aW9ucyAmJiBvcHRpb25zLmZpbHRlcikgfHwgcmV0dXJuVHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGlzQXJnID0gKG9wdGlvbnMgJiYgb3B0aW9ucy50aGlzQXJnKSB8fCB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICBsZXQgb2JqZWN0ID0gcm9vdDtcblxuICAgICAgICAgICAgICAgIHdoaWxlIChvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIuY2FsbCh0aGlzQXJnLCBvYmplY3QpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LnB1c2gob2JqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdCA9IHRoaXMuZm9sbG93aW5nKG9iamVjdCwge3Jvb3Q6IHJvb3R9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogSXRlcmF0ZSBvdmVyIGFsbCBjaGlsZHJlbiBvZiB0aGUgZ2l2ZW4gb2JqZWN0XG4gICAgICAgICAqXG4gICAgICAgICAqICogYE8oMSlgIGZvciBhIHNpbmdsZSBpdGVyYXRpb25cbiAgICAgICAgICpcbiAgICAgICAgICogQG1ldGhvZCBjaGlsZHJlbkl0ZXJhdG9yXG4gICAgICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6c3ltYm9sLXRyZWUjXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJlbnRcbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXVxuICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLnJldmVyc2U9ZmFsc2VdXG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH0gQW4gaXRlcmFibGUgaXRlcmF0b3IgKEVTNilcbiAgICAgICAgICovXG4gICAgICAgIGNoaWxkcmVuSXRlcmF0b3IocGFyZW50LCBvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmV2ZXJzZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5yZXZlcnNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB0aGlzLl9ub2RlKHBhcmVudCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFRyZWVJdGVyYXRvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXZlcnNlID8gcGFyZW50Tm9kZS5sYXN0Q2hpbGQgOiBwYXJlbnROb2RlLmZpcnN0Q2hpbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXZlcnNlID8gVHJlZUl0ZXJhdG9yLlBSRVYgOiBUcmVlSXRlcmF0b3IuTkVYVFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogSXRlcmF0ZSBvdmVyIGFsbCB0aGUgcHJldmlvdXMgc2libGluZ3Mgb2YgdGhlIGdpdmVuIG9iamVjdC4gKGluIHJldmVyc2UgdHJlZSBvcmRlcilcbiAgICAgICAgICpcbiAgICAgICAgICogKiBgTygxKWAgZm9yIGEgc2luZ2xlIGl0ZXJhdGlvblxuICAgICAgICAgKlxuICAgICAgICAgKiBAbWV0aG9kIHByZXZpb3VzU2libGluZ3NJdGVyYXRvclxuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0XG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH0gQW4gaXRlcmFibGUgaXRlcmF0b3IgKEVTNilcbiAgICAgICAgICovXG4gICAgICAgIHByZXZpb3VzU2libGluZ3NJdGVyYXRvcihvYmplY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFRyZWVJdGVyYXRvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9ub2RlKG9iamVjdCkucHJldmlvdXNTaWJsaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgVHJlZUl0ZXJhdG9yLlBSRVZcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEl0ZXJhdGUgb3ZlciBhbGwgdGhlIG5leHQgc2libGluZ3Mgb2YgdGhlIGdpdmVuIG9iamVjdC4gKGluIHRyZWUgb3JkZXIpXG4gICAgICAgICAqXG4gICAgICAgICAqICogYE8oMSlgIGZvciBhIHNpbmdsZSBpdGVyYXRpb25cbiAgICAgICAgICpcbiAgICAgICAgICogQG1ldGhvZCBuZXh0U2libGluZ3NJdGVyYXRvclxuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0XG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH0gQW4gaXRlcmFibGUgaXRlcmF0b3IgKEVTNilcbiAgICAgICAgICovXG4gICAgICAgIG5leHRTaWJsaW5nc0l0ZXJhdG9yKG9iamVjdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVHJlZUl0ZXJhdG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25vZGUob2JqZWN0KS5uZXh0U2libGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyZWVJdGVyYXRvci5ORVhUXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJdGVyYXRlIG92ZXIgYWxsIGluY2x1c2l2ZSBhbmNlc3RvcnMgb2YgdGhlIGdpdmVuIG9iamVjdFxuICAgICAgICAgKlxuICAgICAgICAgKiAqIGBPKDEpYCBmb3IgYSBzaW5nbGUgaXRlcmF0aW9uXG4gICAgICAgICAqXG4gICAgICAgICAqIEBtZXRob2QgYW5jZXN0b3JzSXRlcmF0b3JcbiAgICAgICAgICogQG1lbWJlck9mIG1vZHVsZTpzeW1ib2wtdHJlZSNcbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdFxuICAgICAgICAgKiBAcmV0dXJuIHtPYmplY3R9IEFuIGl0ZXJhYmxlIGl0ZXJhdG9yIChFUzYpXG4gICAgICAgICAqL1xuICAgICAgICBhbmNlc3RvcnNJdGVyYXRvcihvYmplY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFRyZWVJdGVyYXRvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBUcmVlSXRlcmF0b3IuUEFSRU5UXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJdGVyYXRlIG92ZXIgYWxsIGRlc2NlbmRhbnRzIG9mIHRoZSBnaXZlbiBvYmplY3QgKGluIHRyZWUgb3JkZXIpLlxuICAgICAgICAgKlxuICAgICAgICAgKiBXaGVyZSBgbmAgaXMgdGhlIGFtb3VudCBvZiBvYmplY3RzIGluIHRoZSBzdWItdHJlZSBvZiB0aGUgZ2l2ZW4gYHJvb3RgOlxuICAgICAgICAgKlxuICAgICAgICAgKiAqIGBPKG4pYCAod29yc3QgY2FzZSBmb3IgYSBzaW5nbGUgaXRlcmF0aW9uKVxuICAgICAgICAgKiAqIGBPKG4pYCAoYW1vcnRpemVkLCB3aGVuIGNvbXBsZXRpbmcgdGhlIGl0ZXJhdG9yKVxuICAgICAgICAgKlxuICAgICAgICAgKiBAbWV0aG9kIHRyZWVJdGVyYXRvclxuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gcm9vdFxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgICAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLnJldmVyc2U9ZmFsc2VdXG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH0gQW4gaXRlcmFibGUgaXRlcmF0b3IgKEVTNilcbiAgICAgICAgICovXG4gICAgICAgIHRyZWVJdGVyYXRvcihyb290LCBvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmV2ZXJzZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5yZXZlcnNlO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUcmVlSXRlcmF0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmVyc2UgPyB0aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KHJvb3QpIDogcm9vdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmVyc2UgPyBUcmVlSXRlcmF0b3IuUFJFQ0VESU5HIDogVHJlZUl0ZXJhdG9yLkZPTExPV0lOR1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogRmluZCB0aGUgaW5kZXggb2YgdGhlIGdpdmVuIG9iamVjdCAodGhlIG51bWJlciBvZiBwcmVjZWRpbmcgc2libGluZ3MpLlxuICAgICAgICAgKlxuICAgICAgICAgKiAqIGBPKG4pYCB3aGVyZSBgbmAgaXMgdGhlIGFtb3VudCBvZiBwcmVjZWRpbmcgc2libGluZ3NcbiAgICAgICAgICogKiBgTygxKWAgKGFtb3J0aXplZCwgaWYgdGhlIHRyZWUgaXMgbm90IG1vZGlmaWVkKVxuICAgICAgICAgKlxuICAgICAgICAgKiBAbWV0aG9kIGluZGV4XG4gICAgICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6c3ltYm9sLXRyZWUjXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjaGlsZFxuICAgICAgICAgKiBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBudW1iZXIgb2YgcHJlY2VkaW5nIHNpYmxpbmdzLCBvciAtMSBpZiB0aGUgb2JqZWN0IGhhcyBubyBwYXJlbnRcbiAgICAgICAgICovXG4gICAgICAgIGluZGV4KGNoaWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGROb2RlID0gdGhpcy5fbm9kZShjaGlsZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHRoaXMuX25vZGUoY2hpbGROb2RlLnBhcmVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIHByaW5jaXBhbCwgeW91IGNvdWxkIGFsc28gZmluZCBvdXQgdGhlIG51bWJlciBvZiBwcmVjZWRpbmcgc2libGluZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBvYmplY3RzIHRoYXQgZG8gbm90IGhhdmUgYSBwYXJlbnQuIFRoaXMgbWV0aG9kIGxpbWl0cyBpdHNlbGYgb25seSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2JqZWN0cyB0aGF0IGhhdmUgYSBwYXJlbnQgYmVjYXVzZSB0aGF0IGxldHMgdXMgb3B0aW1pemUgbW9yZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudEluZGV4ID0gY2hpbGROb2RlLmdldENhY2hlZEluZGV4KHBhcmVudE5vZGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudEluZGV4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgbGV0IG9iamVjdCA9IHBhcmVudE5vZGUuZmlyc3RDaGlsZDtcblxuICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlLmNoaWxkSW5kZXhDYWNoZWRVcFRvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYWNoZWRVcFRvTm9kZSA9IHRoaXMuX25vZGUocGFyZW50Tm9kZS5jaGlsZEluZGV4Q2FjaGVkVXBUbyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QgPSBjYWNoZWRVcFRvTm9kZS5uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGNhY2hlZFVwVG9Ob2RlLmdldENhY2hlZEluZGV4KHBhcmVudE5vZGUpICsgMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB3aGlsZSAob2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5fbm9kZShvYmplY3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5zZXRDYWNoZWRJbmRleChwYXJlbnROb2RlLCBjdXJyZW50SW5kZXgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JqZWN0ID09PSBjaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgKytjdXJyZW50SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QgPSBub2RlLm5leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGUuY2hpbGRJbmRleENhY2hlZFVwVG8gPSBjaGlsZDtcblxuICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50SW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQ2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgY2hpbGRyZW4uXG4gICAgICAgICAqXG4gICAgICAgICAqICogYE8obilgIHdoZXJlIGBuYCBpcyB0aGUgYW1vdW50IG9mIGNoaWxkcmVuXG4gICAgICAgICAqICogYE8oMSlgIChhbW9ydGl6ZWQsIGlmIHRoZSB0cmVlIGlzIG5vdCBtb2RpZmllZClcbiAgICAgICAgICpcbiAgICAgICAgICogQG1ldGhvZCBjaGlsZHJlbkNvdW50XG4gICAgICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6c3ltYm9sLXRyZWUjXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJlbnRcbiAgICAgICAgICogQHJldHVybiB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgY2hpbGRyZW5Db3VudChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gdGhpcy5fbm9kZShwYXJlbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFwYXJlbnROb2RlLmxhc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXgocGFyZW50Tm9kZS5sYXN0Q2hpbGQpICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb21wYXJlIHRoZSBwb3NpdGlvbiBvZiBhbiBvYmplY3QgcmVsYXRpdmUgdG8gYW5vdGhlciBvYmplY3QuIEEgYml0IHNldCBpcyByZXR1cm5lZDpcbiAgICAgICAgICpcbiAgICAgICAgICogPHVsPlxuICAgICAgICAgKiAgICAgPGxpPkRJU0NPTk5FQ1RFRCA6IDE8L2xpPlxuICAgICAgICAgKiAgICAgPGxpPlBSRUNFRElORyA6IDI8L2xpPlxuICAgICAgICAgKiAgICAgPGxpPkZPTExPV0lORyA6IDQ8L2xpPlxuICAgICAgICAgKiAgICAgPGxpPkNPTlRBSU5TIDogODwvbGk+XG4gICAgICAgICAqICAgICA8bGk+Q09OVEFJTkVEX0JZIDogMTY8L2xpPlxuICAgICAgICAgKiA8L3VsPlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGUgc2VtYW50aWNzIGFyZSB0aGUgc2FtZSBhcyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiBpbiBET00sIHdpdGggdGhlIGV4Y2VwdGlvbiB0aGF0XG4gICAgICAgICAqIERJU0NPTk5FQ1RFRCBuZXZlciBvY2N1cnMgd2l0aCBhbnkgb3RoZXIgYml0LlxuICAgICAgICAgKlxuICAgICAgICAgKiB3aGVyZSBgbmAgYW5kIGBtYCBhcmUgdGhlIGFtb3VudCBvZiBhbmNlc3RvcnMgb2YgYGxlZnRgIGFuZCBgcmlnaHRgO1xuICAgICAgICAgKiB3aGVyZSBgb2AgaXMgdGhlIGFtb3VudCBvZiBjaGlsZHJlbiBvZiB0aGUgbG93ZXN0IGNvbW1vbiBhbmNlc3RvciBvZiBgbGVmdGAgYW5kIGByaWdodGA6XG4gICAgICAgICAqXG4gICAgICAgICAqICogYE8obiArIG0gKyBvKWAgKHdvcnN0IGNhc2UpXG4gICAgICAgICAqICogYE8obiArIG0pYCAoYW1vcnRpemVkLCBpZiB0aGUgdHJlZSBpcyBub3QgbW9kaWZpZWQpXG4gICAgICAgICAqXG4gICAgICAgICAqIEBtZXRob2QgY29tcGFyZVRyZWVQb3NpdGlvblxuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gbGVmdFxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gcmlnaHRcbiAgICAgICAgICogQHJldHVybiB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgY29tcGFyZVRyZWVQb3NpdGlvbihsZWZ0LCByaWdodCkge1xuICAgICAgICAgICAgICAgIC8vIEluIERPTSB0ZXJtczpcbiAgICAgICAgICAgICAgICAvLyBsZWZ0ID0gcmVmZXJlbmNlIC8gY29udGV4dCBvYmplY3RcbiAgICAgICAgICAgICAgICAvLyByaWdodCA9IG90aGVyXG5cbiAgICAgICAgICAgICAgICBpZiAobGVmdCA9PT0gcmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qIGpzaGludCAtVzAxNiAqL1xuXG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdEFuY2VzdG9ycyA9IFtdOyB7IC8vIGluY2x1c2l2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxlZnRBbmNlc3RvciA9IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChsZWZ0QW5jZXN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlZnRBbmNlc3RvciA9PT0gcmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJlZVBvc2l0aW9uLkNPTlRBSU5TIHwgVHJlZVBvc2l0aW9uLlBSRUNFRElORztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdGhlciBpcyBhbmNlc3RvciBvZiByZWZlcmVuY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRBbmNlc3RvcnMucHVzaChsZWZ0QW5jZXN0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0QW5jZXN0b3IgPSB0aGlzLnBhcmVudChsZWZ0QW5jZXN0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHRBbmNlc3RvcnMgPSBbXTsge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJpZ2h0QW5jZXN0b3IgPSByaWdodDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHJpZ2h0QW5jZXN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0QW5jZXN0b3IgPT09IGxlZnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJlZVBvc2l0aW9uLkNPTlRBSU5FRF9CWSB8IFRyZWVQb3NpdGlvbi5GT0xMT1dJTkc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodEFuY2VzdG9ycy5wdXNoKHJpZ2h0QW5jZXN0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodEFuY2VzdG9yID0gdGhpcy5wYXJlbnQocmlnaHRBbmNlc3Rvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICBjb25zdCByb290ID0gcmV2ZXJzZUFycmF5SW5kZXgobGVmdEFuY2VzdG9ycywgMCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXJvb3QgfHwgcm9vdCAhPT0gcmV2ZXJzZUFycmF5SW5kZXgocmlnaHRBbmNlc3RvcnMsIDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiB1bmxpa2UgRE9NLCBwcmVjZWRpbmcgLyBmb2xsb3dpbmcgaXMgbm90IHNldCBoZXJlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJlZVBvc2l0aW9uLkRJU0NPTk5FQ1RFRDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBmaW5kIHRoZSBsb3dlc3QgY29tbW9uIGFuY2VzdG9yXG4gICAgICAgICAgICAgICAgbGV0IGNvbW1vbkFuY2VzdG9ySW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFuY2VzdG9yc01pbkxlbmd0aCA9IE1hdGgubWluKGxlZnRBbmNlc3RvcnMubGVuZ3RoLCByaWdodEFuY2VzdG9ycy5sZW5ndGgpO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbmNlc3RvcnNNaW5MZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdEFuY2VzdG9yICA9IHJldmVyc2VBcnJheUluZGV4KGxlZnRBbmNlc3RvcnMsIGkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmlnaHRBbmNlc3RvciA9IHJldmVyc2VBcnJheUluZGV4KHJpZ2h0QW5jZXN0b3JzLCBpKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlZnRBbmNlc3RvciAhPT0gcmlnaHRBbmNlc3Rvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uQW5jZXN0b3JJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gaW5kZXhlcyB3aXRoaW4gdGhlIGNvbW1vbiBhbmNlc3RvclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRJbmRleCAgPSB0aGlzLmluZGV4KHJldmVyc2VBcnJheUluZGV4KGxlZnRBbmNlc3RvcnMsIGNvbW1vbkFuY2VzdG9ySW5kZXggKyAxKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHRJbmRleCA9IHRoaXMuaW5kZXgocmV2ZXJzZUFycmF5SW5kZXgocmlnaHRBbmNlc3RvcnMsIGNvbW1vbkFuY2VzdG9ySW5kZXggKyAxKSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcmlnaHRJbmRleCA8IGxlZnRJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBUcmVlUG9zaXRpb24uUFJFQ0VESU5HXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFRyZWVQb3NpdGlvbi5GT0xMT1dJTkc7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUmVtb3ZlIHRoZSBvYmplY3QgZnJvbSB0aGlzIHRyZWUuXG4gICAgICAgICAqIEhhcyBubyBlZmZlY3QgaWYgYWxyZWFkeSByZW1vdmVkLlxuICAgICAgICAgKlxuICAgICAgICAgKiAqIGBPKDEpYFxuICAgICAgICAgKlxuICAgICAgICAgKiBAbWV0aG9kIHJlbW92ZVxuICAgICAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOnN5bWJvbC10cmVlI1xuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gcmVtb3ZlT2JqZWN0XG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH0gcmVtb3ZlT2JqZWN0XG4gICAgICAgICAqL1xuICAgICAgICByZW1vdmUocmVtb3ZlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVtb3ZlTm9kZSA9IHRoaXMuX25vZGUocmVtb3ZlT2JqZWN0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gdGhpcy5fbm9kZShyZW1vdmVOb2RlLnBhcmVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldk5vZGUgPSB0aGlzLl9ub2RlKHJlbW92ZU5vZGUucHJldmlvdXNTaWJsaW5nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0Tm9kZSA9IHRoaXMuX25vZGUocmVtb3ZlTm9kZS5uZXh0U2libGluZyk7XG5cbiAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUuZmlyc3RDaGlsZCA9PT0gcmVtb3ZlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUuZmlyc3RDaGlsZCA9IHJlbW92ZU5vZGUubmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlLmxhc3RDaGlsZCA9PT0gcmVtb3ZlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUubGFzdENoaWxkID0gcmVtb3ZlTm9kZS5wcmV2aW91c1NpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHByZXZOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2Tm9kZS5uZXh0U2libGluZyA9IHJlbW92ZU5vZGUubmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG5leHROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0Tm9kZS5wcmV2aW91c1NpYmxpbmcgPSByZW1vdmVOb2RlLnByZXZpb3VzU2libGluZztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZW1vdmVOb2RlLnBhcmVudCA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmVtb3ZlTm9kZS5wcmV2aW91c1NpYmxpbmcgPSBudWxsO1xuICAgICAgICAgICAgICAgIHJlbW92ZU5vZGUubmV4dFNpYmxpbmcgPSBudWxsO1xuICAgICAgICAgICAgICAgIHJlbW92ZU5vZGUuY2FjaGVkSW5kZXggPSAtMTtcbiAgICAgICAgICAgICAgICByZW1vdmVOb2RlLmNhY2hlZEluZGV4VmVyc2lvbiA9IE5hTjtcblxuICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmNoaWxkcmVuQ2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiByZW1vdmVPYmplY3Q7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogSW5zZXJ0IHRoZSBnaXZlbiBvYmplY3QgYmVmb3JlIHRoZSByZWZlcmVuY2Ugb2JqZWN0LlxuICAgICAgICAgKiBgbmV3T2JqZWN0YCBpcyBub3cgdGhlIHByZXZpb3VzIHNpYmxpbmcgb2YgYHJlZmVyZW5jZU9iamVjdGAuXG4gICAgICAgICAqXG4gICAgICAgICAqICogYE8oMSlgXG4gICAgICAgICAqXG4gICAgICAgICAqIEBtZXRob2QgaW5zZXJ0QmVmb3JlXG4gICAgICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6c3ltYm9sLXRyZWUjXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSByZWZlcmVuY2VPYmplY3RcbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG5ld09iamVjdFxuICAgICAgICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIG5ld09iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlXG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH0gbmV3T2JqZWN0XG4gICAgICAgICAqL1xuICAgICAgICBpbnNlcnRCZWZvcmUocmVmZXJlbmNlT2JqZWN0LCBuZXdPYmplY3QpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2VOb2RlID0gdGhpcy5fbm9kZShyZWZlcmVuY2VPYmplY3QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZOb2RlID0gdGhpcy5fbm9kZShyZWZlcmVuY2VOb2RlLnByZXZpb3VzU2libGluZyk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Tm9kZSA9IHRoaXMuX25vZGUobmV3T2JqZWN0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gdGhpcy5fbm9kZShyZWZlcmVuY2VOb2RlLnBhcmVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAobmV3Tm9kZS5pc0F0dGFjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld05vZGUucGFyZW50ID0gcmVmZXJlbmNlTm9kZS5wYXJlbnQ7XG4gICAgICAgICAgICAgICAgbmV3Tm9kZS5wcmV2aW91c1NpYmxpbmcgPSByZWZlcmVuY2VOb2RlLnByZXZpb3VzU2libGluZztcbiAgICAgICAgICAgICAgICBuZXdOb2RlLm5leHRTaWJsaW5nID0gcmVmZXJlbmNlT2JqZWN0O1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUucHJldmlvdXNTaWJsaW5nID0gbmV3T2JqZWN0O1xuXG4gICAgICAgICAgICAgICAgaWYgKHByZXZOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2Tm9kZS5uZXh0U2libGluZyA9IG5ld09iamVjdDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlLmZpcnN0Q2hpbGQgPT09IHJlZmVyZW5jZU9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5maXJzdENoaWxkID0gbmV3T2JqZWN0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmNoaWxkcmVuQ2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBuZXdPYmplY3Q7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogSW5zZXJ0IHRoZSBnaXZlbiBvYmplY3QgYWZ0ZXIgdGhlIHJlZmVyZW5jZSBvYmplY3QuXG4gICAgICAgICAqIGBuZXdPYmplY3RgIGlzIG5vdyB0aGUgbmV4dCBzaWJsaW5nIG9mIGByZWZlcmVuY2VPYmplY3RgLlxuICAgICAgICAgKlxuICAgICAgICAgKiAqIGBPKDEpYFxuICAgICAgICAgKlxuICAgICAgICAgKiBAbWV0aG9kIGluc2VydEFmdGVyXG4gICAgICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6c3ltYm9sLXRyZWUjXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSByZWZlcmVuY2VPYmplY3RcbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG5ld09iamVjdFxuICAgICAgICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIG5ld09iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlXG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH0gbmV3T2JqZWN0XG4gICAgICAgICAqL1xuICAgICAgICBpbnNlcnRBZnRlcihyZWZlcmVuY2VPYmplY3QsIG5ld09iamVjdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZU5vZGUgPSB0aGlzLl9ub2RlKHJlZmVyZW5jZU9iamVjdCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dE5vZGUgPSB0aGlzLl9ub2RlKHJlZmVyZW5jZU5vZGUubmV4dFNpYmxpbmcpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld05vZGUgPSB0aGlzLl9ub2RlKG5ld09iamVjdCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHRoaXMuX25vZGUocmVmZXJlbmNlTm9kZS5wYXJlbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG5ld05vZGUuaXNBdHRhY2hlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0dpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXdOb2RlLnBhcmVudCA9IHJlZmVyZW5jZU5vZGUucGFyZW50O1xuICAgICAgICAgICAgICAgIG5ld05vZGUucHJldmlvdXNTaWJsaW5nID0gcmVmZXJlbmNlT2JqZWN0O1xuICAgICAgICAgICAgICAgIG5ld05vZGUubmV4dFNpYmxpbmcgPSByZWZlcmVuY2VOb2RlLm5leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUubmV4dFNpYmxpbmcgPSBuZXdPYmplY3Q7XG5cbiAgICAgICAgICAgICAgICBpZiAobmV4dE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHROb2RlLnByZXZpb3VzU2libGluZyA9IG5ld09iamVjdDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlLmxhc3RDaGlsZCA9PT0gcmVmZXJlbmNlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmxhc3RDaGlsZCA9IG5ld09iamVjdDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5jaGlsZHJlbkNoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3T2JqZWN0O1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluc2VydCB0aGUgZ2l2ZW4gb2JqZWN0IGFzIHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUgZ2l2ZW4gcmVmZXJlbmNlIG9iamVjdC5cbiAgICAgICAgICogYG5ld09iamVjdGAgaXMgbm93IHRoZSBmaXJzdCBjaGlsZCBvZiBgcmVmZXJlbmNlT2JqZWN0YC5cbiAgICAgICAgICpcbiAgICAgICAgICogKiBgTygxKWBcbiAgICAgICAgICpcbiAgICAgICAgICogQG1ldGhvZCBwcmVwZW5kQ2hpbGRcbiAgICAgICAgICogQG1lbWJlck9mIG1vZHVsZTpzeW1ib2wtdHJlZSNcbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IHJlZmVyZW5jZU9iamVjdFxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gbmV3T2JqZWN0XG4gICAgICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgbmV3T2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWVcbiAgICAgICAgICogQHJldHVybiB7T2JqZWN0fSBuZXdPYmplY3RcbiAgICAgICAgICovXG4gICAgICAgIHByZXBlbmRDaGlsZChyZWZlcmVuY2VPYmplY3QsIG5ld09iamVjdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZU5vZGUgPSB0aGlzLl9ub2RlKHJlZmVyZW5jZU9iamVjdCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Tm9kZSA9IHRoaXMuX25vZGUobmV3T2JqZWN0KTtcblxuICAgICAgICAgICAgICAgIGlmIChuZXdOb2RlLmlzQXR0YWNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCdHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Jyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZU5vZGUuaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0QmVmb3JlKHJlZmVyZW5jZU5vZGUuZmlyc3RDaGlsZCwgbmV3T2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdOb2RlLnBhcmVudCA9IHJlZmVyZW5jZU9iamVjdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUuZmlyc3RDaGlsZCA9IG5ld09iamVjdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUubGFzdENoaWxkID0gbmV3T2JqZWN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlTm9kZS5jaGlsZHJlbkNoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3T2JqZWN0O1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluc2VydCB0aGUgZ2l2ZW4gb2JqZWN0IGFzIHRoZSBsYXN0IGNoaWxkIG9mIHRoZSBnaXZlbiByZWZlcmVuY2Ugb2JqZWN0LlxuICAgICAgICAgKiBgbmV3T2JqZWN0YCBpcyBub3cgdGhlIGxhc3QgY2hpbGQgb2YgYHJlZmVyZW5jZU9iamVjdGAuXG4gICAgICAgICAqXG4gICAgICAgICAqICogYE8oMSlgXG4gICAgICAgICAqXG4gICAgICAgICAqIEBtZXRob2QgYXBwZW5kQ2hpbGRcbiAgICAgICAgICogQG1lbWJlck9mIG1vZHVsZTpzeW1ib2wtdHJlZSNcbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IHJlZmVyZW5jZU9iamVjdFxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gbmV3T2JqZWN0XG4gICAgICAgICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgbmV3T2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWVcbiAgICAgICAgICogQHJldHVybiB7T2JqZWN0fSBuZXdPYmplY3RcbiAgICAgICAgICovXG4gICAgICAgIGFwcGVuZENoaWxkKHJlZmVyZW5jZU9iamVjdCwgbmV3T2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlTm9kZSA9IHRoaXMuX25vZGUocmVmZXJlbmNlT2JqZWN0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdOb2RlID0gdGhpcy5fbm9kZShuZXdPYmplY3QpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG5ld05vZGUuaXNBdHRhY2hlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0dpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlTm9kZS5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRBZnRlcihyZWZlcmVuY2VOb2RlLmxhc3RDaGlsZCwgbmV3T2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdOb2RlLnBhcmVudCA9IHJlZmVyZW5jZU9iamVjdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUuZmlyc3RDaGlsZCA9IG5ld09iamVjdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUubGFzdENoaWxkID0gbmV3T2JqZWN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlTm9kZS5jaGlsZHJlbkNoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3T2JqZWN0O1xuICAgICAgICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gU3ltYm9sVHJlZTtcblN5bWJvbFRyZWUuVHJlZVBvc2l0aW9uID0gVHJlZVBvc2l0aW9uO1xuIiwgIi8vID09PT09PT09PT09PT09XG4vLyBAcHVzaHJvY2tzXG4vLyA9PT09PT09PT09PT09PVxuaW1wb3J0ICogYXMgc21hcnRkZWxheSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydGRlbGF5JztcbmltcG9ydCAqIGFzIHNtYXJ0bWF0Y2ggZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRtYXRjaCc7XG5pbXBvcnQgKiBhcyBzbWFydHByb21pc2UgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlJztcbmltcG9ydCAqIGFzIHNtYXJ0cnggZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRyeCc7XG5pbXBvcnQgKiBhcyBzbWFydHRpbWUgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnR0aW1lJztcblxuZXhwb3J0IHsgc21hcnRkZWxheSwgc21hcnRtYXRjaCwgc21hcnRwcm9taXNlLCBzbWFydHJ4LCBzbWFydHRpbWUgfTtcblxuLy8gPT09PT09PT09PT09PT1cbi8vIHRoaXJkIHBhcnR5XG4vLyA9PT09PT09PT09PT09PVxuaW1wb3J0IHN5bWJvbFRyZWUgZnJvbSAnc3ltYm9sLXRyZWUnO1xuXG5leHBvcnQgeyBzeW1ib2xUcmVlIH07XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL2NsYXNzZXMucGx1Z2lucy5qcyc7XG5cbmludGVyZmFjZSBJRXhlY3V0aW9uU2xvdDxUPiB7XG4gIGV4ZWN1dGlvbkRlZmVycmVkOiBwbHVnaW5zLnNtYXJ0cHJvbWlzZS5EZWZlcnJlZDxUPjtcbiAgZnVuY1RvRXhlY3V0ZTogKCkgPT4gUHJvbWlzZTxUPjtcbiAgdGltZW91dD86IG51bWJlcjtcbiAgbW9kZTogJ2V4Y2x1c2l2ZScgfCAnbm9uZXhjbHVzaXZlJztcbn1cblxuZXhwb3J0IGNsYXNzIEFzeW5jRXhlY3V0aW9uU3RhY2sge1xuICBwcml2YXRlIGV4ZWN1dGlvblNsb3RzOiBJRXhlY3V0aW9uU2xvdDxhbnk+W10gPSBbXTtcbiAgcHJpdmF0ZSBpc1Byb2Nlc3NpbmcgPSBmYWxzZTtcbiAgLyoqIE1heGltdW0gY29uY3VycmVudCBub24tZXhjbHVzaXZlIHRhc2tzIChJbmZpbml0eSA9IHVubGltaXRlZCkgKi9cbiAgcHJpdmF0ZSBub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeTogbnVtYmVyID0gSW5maW5pdHk7XG4gIC8qKiBDdXJyZW50bHkgcnVubmluZyBub24tZXhjbHVzaXZlIHRhc2sgY291bnQgKi9cbiAgcHJpdmF0ZSBub25FeGNsdXNpdmVDdXJyZW50Q291bnQ6IG51bWJlciA9IDA7XG4gIC8qKiBRdWV1ZSBvZiByZXNvbHZlcnMgd2FpdGluZyBmb3IgYSBub24tZXhjbHVzaXZlIHNsb3QgKi9cbiAgcHJpdmF0ZSBub25FeGNsdXNpdmVQZW5kaW5nUXVldWU6IEFycmF5PCgpID0+IHZvaWQ+ID0gW107XG5cbiAgcHVibGljIGFzeW5jIGdldEV4Y2x1c2l2ZUV4ZWN1dGlvblNsb3Q8VCA9IGFueT4oXG4gICAgZnVuY0FyZzogKCkgPT4gUHJvbWlzZTxUPixcbiAgICB0aW1lb3V0QXJnPzogbnVtYmVyXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGV4ZWN1dGlvbkRlZmVycmVkID0gcGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXI8VD4oKTtcbiAgICBjb25zdCBleGVjdXRpb25TbG90OiBJRXhlY3V0aW9uU2xvdDxUPiA9IHtcbiAgICAgIGZ1bmNUb0V4ZWN1dGU6IGZ1bmNBcmcsXG4gICAgICBleGVjdXRpb25EZWZlcnJlZCxcbiAgICAgIHRpbWVvdXQ6IHRpbWVvdXRBcmcsXG4gICAgICBtb2RlOiAnZXhjbHVzaXZlJyxcbiAgICB9O1xuICAgIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChleGVjdXRpb25TbG90KTtcbiAgICB0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpO1xuICAgIHJldHVybiBleGVjdXRpb25EZWZlcnJlZC5wcm9taXNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldE5vbkV4Y2x1c2l2ZUV4ZWN1dGlvblNsb3Q8VCA9IGFueT4oXG4gICAgZnVuY0FyZzogKCkgPT4gUHJvbWlzZTxUPixcbiAgICB0aW1lb3V0QXJnPzogbnVtYmVyXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGV4ZWN1dGlvbkRlZmVycmVkID0gcGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXI8VD4oKTtcbiAgICBjb25zdCBleGVjdXRpb25TbG90OiBJRXhlY3V0aW9uU2xvdDxUPiA9IHtcbiAgICAgIGZ1bmNUb0V4ZWN1dGU6IGZ1bmNBcmcsXG4gICAgICBleGVjdXRpb25EZWZlcnJlZCxcbiAgICAgIHRpbWVvdXQ6IHRpbWVvdXRBcmcsXG4gICAgICBtb2RlOiAnbm9uZXhjbHVzaXZlJyxcbiAgICB9O1xuICAgIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChleGVjdXRpb25TbG90KTtcbiAgICB0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpO1xuICAgIHJldHVybiBleGVjdXRpb25EZWZlcnJlZC5wcm9taXNlO1xuICB9XG4gIC8qKlxuICAgKiBTZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgbm9uLWV4Y2x1c2l2ZSB0YXNrcy5cbiAgICogQHBhcmFtIGNvbmN1cnJlbmN5IG1pbmltdW0gMSAoSW5maW5pdHkgbWVhbnMgdW5saW1pdGVkKVxuICAgKi9cbiAgcHVibGljIHNldE5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KGNvbmN1cnJlbmN5OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShjb25jdXJyZW5jeSkgfHwgY29uY3VycmVuY3kgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5IG11c3QgYmUgYSBmaW5pdGUgbnVtYmVyID49IDEnKTtcbiAgICB9XG4gICAgdGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSA9IGNvbmN1cnJlbmN5O1xuICB9XG4gIC8qKiBHZXQgdGhlIGNvbmZpZ3VyZWQgbWF4IGNvbmN1cnJlbmN5IGZvciBub24tZXhjbHVzaXZlIHRhc2tzICovXG4gIHB1YmxpYyBnZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5O1xuICB9XG4gIC8qKiBOdW1iZXIgb2Ygbm9uLWV4Y2x1c2l2ZSB0YXNrcyBjdXJyZW50bHkgcnVubmluZyAqL1xuICBwdWJsaWMgZ2V0QWN0aXZlTm9uRXhjbHVzaXZlQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ7XG4gIH1cbiAgLyoqIE51bWJlciBvZiBub24tZXhjbHVzaXZlIHRhc2tzIHdhaXRpbmcgZm9yIGEgZnJlZSBzbG90ICovXG4gIHB1YmxpYyBnZXRQZW5kaW5nTm9uRXhjbHVzaXZlQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWUubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzRXhlY3V0aW9uU2xvdHMoKSB7XG4gICAgaWYgKHRoaXMuaXNQcm9jZXNzaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gdHJ1ZTtcblxuICAgIHdoaWxlICh0aGlzLmV4ZWN1dGlvblNsb3RzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTbG90ID0gdGhpcy5leGVjdXRpb25TbG90c1swXTtcbiAgICAgIGlmIChjdXJyZW50U2xvdC5tb2RlID09PSAnZXhjbHVzaXZlJykge1xuICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVFeGNsdXNpdmVTbG90KGN1cnJlbnRTbG90KTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25TbG90cy5zaGlmdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gR2F0aGVyIGFsbCBub24tZXhjbHVzaXZlIHNsb3RzIGF0IHRoZSBmcm9udCBvZiB0aGUgcXVldWVcbiAgICAgICAgY29uc3Qgbm9uRXhjbHVzaXZlU2xvdHM6IElFeGVjdXRpb25TbG90PGFueT5bXSA9IFtdO1xuICAgICAgICB3aGlsZSAodGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGggPiAwICYmIHRoaXMuZXhlY3V0aW9uU2xvdHNbMF0ubW9kZSA9PT0gJ25vbmV4Y2x1c2l2ZScpIHtcbiAgICAgICAgICBub25FeGNsdXNpdmVTbG90cy5wdXNoKHRoaXMuZXhlY3V0aW9uU2xvdHMuc2hpZnQoKSEpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKG5vbkV4Y2x1c2l2ZVNsb3RzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZUV4Y2x1c2l2ZVNsb3Qoc2xvdDogSUV4ZWN1dGlvblNsb3Q8YW55Pikge1xuICAgIHRyeSB7XG4gICAgICBpZiAoc2xvdC50aW1lb3V0KSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICAgICAgc2xvdC5mdW5jVG9FeGVjdXRlKCksXG4gICAgICAgICAgcGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKHNsb3QudGltZW91dCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RpbWVvdXQgcmVhY2hlZCcpO1xuICAgICAgICAgIH0pLFxuICAgICAgICBdKTtcbiAgICAgICAgc2xvdC5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzbG90LmZ1bmNUb0V4ZWN1dGUoKTtcbiAgICAgICAgc2xvdC5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHNsb3QuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4ZWN1dGVOb25FeGNsdXNpdmVTbG90cyhzbG90czogSUV4ZWN1dGlvblNsb3Q8YW55PltdKSB7XG4gICAgY29uc3QgcHJvbWlzZXMgPSBzbG90cy5tYXAoYXN5bmMgKHNsb3QpID0+IHtcbiAgICAgIC8vIHdhaXQgZm9yIGFuIGF2YWlsYWJsZSBub24tZXhjbHVzaXZlIHNsb3RcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIGV4ZWN1dGUgd2l0aCBvcHRpb25hbCB0aW1lb3V0XG4gICAgICAgIGlmIChzbG90LnRpbWVvdXQpIHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgICAgICAgICAgc2xvdC5mdW5jVG9FeGVjdXRlKCksXG4gICAgICAgICAgICBwbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3Ioc2xvdC50aW1lb3V0KS50aGVuKCgpID0+IHsgdGhyb3cgbmV3IEVycm9yKCdUaW1lb3V0IHJlYWNoZWQnKTsgfSksXG4gICAgICAgICAgXSk7XG4gICAgICAgICAgc2xvdC5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2xvdC5mdW5jVG9FeGVjdXRlKCk7XG4gICAgICAgICAgc2xvdC5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHNsb3QuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KGVycm9yKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMucmVsZWFzZU5vbkV4Y2x1c2l2ZVNsb3QoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gIH1cbiAgLyoqXG4gICAqIFdhaXQgdW50aWwgYSBub24tZXhjbHVzaXZlIHNsb3QgaXMgYXZhaWxhYmxlIChyZXNwZWN0cyBtYXggY29uY3VycmVuY3kpLlxuICAgKi9cbiAgcHJpdmF0ZSB3YWl0Rm9yTm9uRXhjbHVzaXZlU2xvdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQgPCB0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KSB7XG4gICAgICB0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnB1c2goKCkgPT4ge1xuICAgICAgICB0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICAvKiogUmVsZWFzZSBhIG5vbi1leGNsdXNpdmUgc2xvdCBhbmQgd2FrZSB0aGUgbmV4dCB3YWl0ZXIsIGlmIGFueS4gKi9cbiAgcHJpdmF0ZSByZWxlYXNlTm9uRXhjbHVzaXZlU2xvdCgpOiB2b2lkIHtcbiAgICB0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudC0tO1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5zaGlmdCgpO1xuICAgIGlmIChuZXh0KSB7XG4gICAgICBuZXh0KCk7XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL2NsYXNzZXMucGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBCYWNrcHJlc3N1cmVkQXJyYXk8VD4ge1xuICBwdWJsaWMgZGF0YTogVFtdO1xuICBwcml2YXRlIGhpZ2hXYXRlck1hcms6IG51bWJlcjtcbiAgcHVibGljIGhhc1NwYWNlID0gbmV3IHBsdWdpbnMuc21hcnRyeC5yeGpzLlN1YmplY3Q8J2hhc1NwYWNlJz4oKTtcbiAgcHJpdmF0ZSBpdGVtc0F2YWlsYWJsZSA9IG5ldyBwbHVnaW5zLnNtYXJ0cngucnhqcy5TdWJqZWN0PCdpdGVtc0F2YWlsYWJsZSc+KCk7XG5cbiAgY29uc3RydWN0b3IoaGlnaFdhdGVyTWFyazogbnVtYmVyID0gMTYpIHtcbiAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICB0aGlzLmhpZ2hXYXRlck1hcmsgPSBoaWdoV2F0ZXJNYXJrO1xuICB9XG5cbiAgcHVzaChpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgdGhpcy5kYXRhLnB1c2goaXRlbSk7XG4gICAgdGhpcy5pdGVtc0F2YWlsYWJsZS5uZXh0KCdpdGVtc0F2YWlsYWJsZScpO1xuICAgIFxuICAgIGNvbnN0IHNwYWNlQXZhaWxhYmxlID0gdGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCk7XG4gICAgaWYgKHNwYWNlQXZhaWxhYmxlKSB7XG4gICAgICB0aGlzLmhhc1NwYWNlLm5leHQoJ2hhc1NwYWNlJyk7XG4gICAgfVxuICAgIHJldHVybiBzcGFjZUF2YWlsYWJsZTtcbiAgfVxuXG4gIHNoaWZ0KCk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmRhdGEuc2hpZnQoKTtcbiAgICBpZiAodGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCkpIHtcbiAgICAgIHRoaXMuaGFzU3BhY2UubmV4dCgnaGFzU3BhY2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICBjaGVja1NwYWNlQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRhdGEubGVuZ3RoIDwgdGhpcy5oaWdoV2F0ZXJNYXJrO1xuICB9XG5cbiAgcHVibGljIGNoZWNrSGFzSXRlbXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5sZW5ndGggPiAwO1xuICB9XG5cbiAgd2FpdEZvclNwYWNlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpKSB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuaGFzU3BhY2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgd2FpdEZvckl0ZW1zKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuaXRlbXNBdmFpbGFibGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCAiLyogPT09PT09PT09PT09XG5UaGUgRmFzdE1hcCBoYXMgdGhlIGdvYWwgb2YgY3JlYXRpbmcgdGhlIGZhc3RlcyB0byB1c2UgbWFwIHBvc3NpYmxlIGluIEpTXG5cbj09PT09PT09PT09PSAqL1xuXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vY2xhc3Nlcy5wbHVnaW5zLmpzJztcblxuLyoqXG4gKiBmYXN0IG1hcCBhbGxvd3MgZm9yIHZlcnkgcXVpY2sgbG9va3VwcyBvZiBvYmplY3RzIHdpdGggYSB1bmlxdWUga2V5XG4gKi9cbmV4cG9ydCBjbGFzcyBGYXN0TWFwPFQ+IHtcbiAgcHJpdmF0ZSBtYXBPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogVCB9ID0ge307XG5cbiAgcHVibGljIGlzVW5pcXVlS2V5KGtleUFyZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWFwT2JqZWN0W2tleUFyZ10gPyBmYWxzZSA6IHRydWU7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9NYXAoXG4gICAga2V5QXJnOiBzdHJpbmcsXG4gICAgb2JqZWN0QXJnOiBULFxuICAgIG9wdGlvbnNBcmc/OiB7XG4gICAgICBmb3JjZTogYm9vbGVhbjtcbiAgICB9XG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzVW5pcXVlS2V5KGtleUFyZykgfHwgKG9wdGlvbnNBcmcgJiYgb3B0aW9uc0FyZy5mb3JjZSkpIHtcbiAgICAgIHRoaXMubWFwT2JqZWN0W2tleUFyZ10gPSBvYmplY3RBcmc7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRCeUtleShrZXlBcmc6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm1hcE9iamVjdFtrZXlBcmddO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUZyb21NYXAoa2V5QXJnOiBzdHJpbmcpOiBUIHtcbiAgICBjb25zdCByZW1vdmVkSXRlbSA9IHRoaXMuZ2V0QnlLZXkoa2V5QXJnKTtcbiAgICBkZWxldGUgdGhpcy5tYXBPYmplY3Rba2V5QXJnXTtcbiAgICByZXR1cm4gcmVtb3ZlZEl0ZW07XG4gIH1cblxuICBwdWJsaWMgZ2V0S2V5cygpIHtcbiAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qga2V5QXJnIGluIHRoaXMubWFwT2JqZWN0KSB7XG4gICAgICBpZiAodGhpcy5tYXBPYmplY3Rba2V5QXJnXSkge1xuICAgICAgICBrZXlzLnB1c2goa2V5QXJnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGtleXM7XG4gIH1cblxuICBwdWJsaWMgY2xlYW4oKSB7XG4gICAgdGhpcy5tYXBPYmplY3QgPSB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm5zIGEgbmV3IEZhc3RtYXAgdGhhdCBpbmNsdWRlcyBhbGwgdmFsdWVzIGZyb20gdGhpcyBhbmQgYWxsIGZyb20gdGhlIGZhc3RtYXAgaW4gdGhlIGFyZ3VtZW50XG4gICAqL1xuICBwdWJsaWMgY29uY2F0KGZhc3RNYXBBcmc6IEZhc3RNYXA8VD4pIHtcbiAgICBjb25zdCBjb25jYXRlZEZhc3RtYXAgPSBuZXcgRmFzdE1hcDxUPigpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMuZ2V0S2V5cygpKSB7XG4gICAgICBjb25jYXRlZEZhc3RtYXAuYWRkVG9NYXAoa2V5LCB0aGlzLmdldEJ5S2V5KGtleSkpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIGZhc3RNYXBBcmcuZ2V0S2V5cygpKSB7XG4gICAgICBjb25jYXRlZEZhc3RtYXAuYWRkVG9NYXAoa2V5LCBmYXN0TWFwQXJnLmdldEJ5S2V5KGtleSksIHtcbiAgICAgICAgZm9yY2U6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uY2F0ZWRGYXN0bWFwO1xuICB9XG5cbiAgLyoqXG4gICAqIHRyaWVzIHRvIG1lcmdlIGFub3RoZXIgRmFzdG1hcFxuICAgKiBOb3RlOiB1bmlxdWVLZXlDb2xsaXNpb25zIHdpbGwgY2F1c2Ugb3ZlcndyaXRlXG4gICAqIEBwYXJhbSBmYXN0TWFwQXJnXG4gICAqL1xuICBwdWJsaWMgYWRkQWxsRnJvbU90aGVyKGZhc3RNYXBBcmc6IEZhc3RNYXA8VD4pIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBmYXN0TWFwQXJnLmdldEtleXMoKSkge1xuICAgICAgdGhpcy5hZGRUb01hcChrZXksIGZhc3RNYXBBcmcuZ2V0QnlLZXkoa2V5KSwge1xuICAgICAgICBmb3JjZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmaW5kKGZpbmRGdW5jdGlvbkFyZzogKG1hcEl0ZW1Bcmc6IFQpID0+IFByb21pc2U8Ym9vbGVhbj4pIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmdldEtleXMoKSkge1xuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0QnlLZXkoa2V5KTtcbiAgICAgIGNvbnN0IGZpbmRGdW5jdGlvblJlc3VsdCA9IGF3YWl0IGZpbmRGdW5jdGlvbkFyZyhpdGVtKTtcbiAgICAgIGlmIChmaW5kRnVuY3Rpb25SZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL2NsYXNzZXMucGx1Z2lucy5qcyc7XG5pbXBvcnQgeyBGYXN0TWFwIH0gZnJvbSAnLi9jbGFzc2VzLmZhc3RtYXAuanMnO1xuXG5leHBvcnQgY29uc3QgdW5pID0gKHByZWZpeDogc3RyaW5nID0gJ3VuaScpID0+IHtcbiAgcmV0dXJuIGAke3ByZWZpeH14eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLCAoYykgPT4ge1xuICAgIGNvbnN0IHIgPSAoTWF0aC5yYW5kb20oKSAqIDE2KSB8IDA7XG4gICAgY29uc3QgdiA9IGMgPT09ICd4JyA/IHIgOiAociAmIDB4MykgfCAweDg7XG4gICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9iamVjdG1hcEZvckVhY2hGdW5jdGlvbjxUPiB7XG4gIChpdGVtQXJnOiBUKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2JqZWN0bWFwRmluZEZ1bmN0aW9uU3luYzxUPiB7XG4gIChpdGVtQXJnOiBUKTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2JqZWN0bWFwRmluZEZ1bmN0aW9uPFQ+IHtcbiAgKGl0ZW1Bcmc6IFQpOiBQcm9taXNlPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYmplY3RNYXBFdmVudERhdGE8VD4ge1xuICBvcGVyYXRpb246ICdhZGQnIHwgJ3JlbW92ZSc7XG4gIHBheWxvYWQ6IFQ7XG59XG5cbi8qKlxuICogYWxsb3dzIGtlZXBpbmcgdHJhY2sgb2Ygb2JqZWN0c1xuICovXG5leHBvcnQgY2xhc3MgT2JqZWN0TWFwPFQ+IHtcbiAgcHJpdmF0ZSBmYXN0TWFwID0gbmV3IEZhc3RNYXA8VD4oKTtcblxuICAvLyBldmVudHNcbiAgcHVibGljIGV2ZW50U3ViamVjdCA9IG5ldyBwbHVnaW5zLnNtYXJ0cngucnhqcy5TdWJqZWN0PElPYmplY3RNYXBFdmVudERhdGE8VD4+KCk7XG5cbiAgLyoqXG4gICAqIHJldHVybnMgYSBuZXcgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIG5vdGhpbmcgaGVyZVxuICB9XG5cbiAgLyoqXG4gICAqIGFkZHMgYW4gb2JqZWN0IG1hcHBlZCB0byBhIHN0cmluZ1xuICAgKiB0aGUgc3RyaW5nIG11c3QgYmUgdW5pcXVlXG4gICAqL1xuICBhZGRNYXBwZWRVbmlxdWUodW5pcXVlS2V5QXJnOiBzdHJpbmcsIG9iamVjdEFyZzogVCkge1xuICAgIHRoaXMuZmFzdE1hcC5hZGRUb01hcCh1bmlxdWVLZXlBcmcsIG9iamVjdEFyZyk7XG4gIH1cblxuICAvKipcbiAgICogZmFzdGVzdCB3YXkgdG8gZ2V0IGFuIG9iamVjdCBmcm9tIHRoZSBtYXBcbiAgICogQHBhcmFtIHVuaXF1ZUtleVxuICAgKi9cbiAgcHVibGljIGdldE1hcHBlZFVuaXF1ZSh1bmlxdWVLZXlBcmc6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmZhc3RNYXAuZ2V0QnlLZXkodW5pcXVlS2V5QXJnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZW1vdmUga2V5XG4gICAqIEBwYXJhbSBmdW5jdGlvbkFyZ1xuICAgKi9cbiAgcHVibGljIHJlbW92ZU1hcHBlZFVuaXF1ZSh1bmlxdWVLZXk6IHN0cmluZykge1xuICAgIGNvbnN0IG9iamVjdCA9IHRoaXMuZ2V0TWFwcGVkVW5pcXVlKHVuaXF1ZUtleSk7XG4gIH1cblxuICAvKipcbiAgICogYWRkIG9iamVjdCB0byBPYmplY3RtYXBcbiAgICogcmV0dXJucyBmYWxzZSBpZiB0aGUgb2JqZWN0IGlzIGFscmVhZHkgaW4gdGhlIG1hcFxuICAgKiByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCB3YXMgYWRkZWQgc3VjY2Vzc2Z1bGx5XG4gICAqL1xuICBwdWJsaWMgYWRkKG9iamVjdEFyZzogVCk6IHN0cmluZyB7XG4gICAgLy8gbGV0cyBzZWFyY2ggZm9yIGFuIGV4aXN0aW5nIHVuaXF1ZSBrZXlcbiAgICBmb3IgKGNvbnN0IGtleUFyZyBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKSB7XG4gICAgICBjb25zdCBvYmplY3QgPSB0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoa2V5QXJnKTtcbiAgICAgIGlmIChvYmplY3QgPT09IG9iamVjdEFyZykge1xuICAgICAgICByZXR1cm4ga2V5QXJnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG90aGVyd2lzZSBsZXRzIGNyZWF0ZSBpdFxuICAgIGNvbnN0IHVuaXF1ZUtleSA9IHVuaSgna2V5Jyk7XG4gICAgdGhpcy5hZGRNYXBwZWRVbmlxdWUodW5pcXVlS2V5LCBvYmplY3RBcmcpO1xuICAgIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe1xuICAgICAgb3BlcmF0aW9uOiAnYWRkJyxcbiAgICAgIHBheWxvYWQ6IG9iamVjdEFyZyxcbiAgICB9KTtcbiAgICByZXR1cm4gdW5pcXVlS2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIGxpa2UgLmFkZCBidXQgYWRkcyBhbiB3aG9sZSBhcnJheSBvZiBvYmplY3RzXG4gICAqL1xuICBwdWJsaWMgYWRkQXJyYXkob2JqZWN0QXJyYXlBcmc6IFRbXSkge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBvYmplY3RBcnJheUFyZykge1xuICAgICAgdGhpcy5hZGQoaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrIGlmIG9iamVjdCBpcyBpbiBPYmplY3RtYXBcbiAgICovXG4gIHB1YmxpYyBjaGVja0Zvck9iamVjdChvYmplY3RBcmc6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmdldEtleUZvck9iamVjdChvYmplY3RBcmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBrZXkgZm9yIG9iamVjdFxuICAgKiBAcGFyYW0gZmluZEZ1bmN0aW9uXG4gICAqL1xuICBwdWJsaWMgZ2V0S2V5Rm9yT2JqZWN0KG9iamVjdEFyZzogVCkge1xuICAgIGxldCBmb3VuZEtleTogc3RyaW5nID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGtleUFyZyBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKSB7XG4gICAgICBpZiAoIWZvdW5kS2V5ICYmIHRoaXMuZmFzdE1hcC5nZXRCeUtleShrZXlBcmcpID09PSBvYmplY3RBcmcpIHtcbiAgICAgICAgZm91bmRLZXkgPSBrZXlBcmc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZvdW5kS2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIGZpbmQgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZmluZChmaW5kRnVuY3Rpb246IElPYmplY3RtYXBGaW5kRnVuY3Rpb248VD4pOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5mYXN0TWFwLmZpbmQoZmluZEZ1bmN0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kU3luYyhmaW5kRnVuY3Rpb246IElPYmplY3RtYXBGaW5kRnVuY3Rpb25TeW5jPFQ+KTogVCB7XG4gICAgZm9yIChjb25zdCBrZXlBcmcgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSkge1xuICAgICAgaWYgKGZpbmRGdW5jdGlvbih0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoa2V5QXJnKSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWFwcGVkVW5pcXVlKGtleUFyZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGZpbmRzIGEgc3BlY2lmaWMgZWxlbWVudCBhbmQgdGhlbiByZW1vdmVzIGl0XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZmluZE9uZUFuZFJlbW92ZShmaW5kRnVuY3Rpb246IElPYmplY3RtYXBGaW5kRnVuY3Rpb248VD4pOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBmb3VuZEVsZW1lbnQgPSBhd2FpdCB0aGlzLmZpbmQoZmluZEZ1bmN0aW9uKTtcbiAgICBpZiAoZm91bmRFbGVtZW50KSB7XG4gICAgICB0aGlzLnJlbW92ZShmb3VuZEVsZW1lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gZm91bmRFbGVtZW50O1xuICB9XG4gIHB1YmxpYyBmaW5kT25lQW5kUmVtb3ZlU3luYyhmaW5kRnVuY3Rpb246IElPYmplY3RtYXBGaW5kRnVuY3Rpb25TeW5jPFQ+KTogVCB7XG4gICAgY29uc3QgZm91bmRFbGVtZW50ID0gdGhpcy5maW5kU3luYyhmaW5kRnVuY3Rpb24pO1xuICAgIGlmIChmb3VuZEVsZW1lbnQpIHtcbiAgICAgIHRoaXMucmVtb3ZlKGZvdW5kRWxlbWVudCk7XG4gICAgfVxuICAgIHJldHVybiBmb3VuZEVsZW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogcnVuIGZ1bmN0aW9uIGZvciBlYWNoIGl0ZW0gaW4gT2JqZWN0bWFwXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZm9yRWFjaChmdW5jdGlvbkFyZzogSU9iamVjdG1hcEZvckVhY2hGdW5jdGlvbjxUPikge1xuICAgIGZvciAoY29uc3Qga2V5QXJnIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpIHtcbiAgICAgIGF3YWl0IGZ1bmN0aW9uQXJnKHRoaXMuZmFzdE1hcC5nZXRCeUtleShrZXlBcmcpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogZ2V0cyBhbiBvYmplY3QgaW4gdGhlIE9ic2VydmFibGVtYXAgYW5kIHJlbW92ZXMgaXQsIHNvIGl0IGNhbid0IGJlIHJldHJpZXZlZCBhZ2FpblxuICAgKi9cbiAgcHVibGljIGdldE9uZUFuZFJlbW92ZSgpOiBUIHtcbiAgICBjb25zdCBrZXlzID0gdGhpcy5mYXN0TWFwLmdldEtleXMoKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBrZXlUb1VzZSA9IGtleXNbMF07XG4gICAgICBjb25zdCByZW1vdmVkSXRlbSA9IHRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKGtleVRvVXNlKTtcbiAgICAgIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe1xuICAgICAgICBvcGVyYXRpb246ICdyZW1vdmUnLFxuICAgICAgICBwYXlsb2FkOiByZW1vdmVkSXRlbSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlbW92ZWRJdGVtO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm5zIGEgY2xvbmVkIGFycmF5IG9mIGFsbCB0aGUgb2JqZWN0cyBjdXJyZW50bHkgaW4gdGhlIE9iamVjdG1hcFxuICAgKi9cbiAgcHVibGljIGdldEFycmF5KCk6IFRbXSB7XG4gICAgY29uc3QgcmV0dXJuQXJyYXk6IGFueVtdID0gW107XG4gICAgZm9yIChjb25zdCBrZXlBcmcgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSkge1xuICAgICAgcmV0dXJuQXJyYXkucHVzaCh0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoa2V5QXJnKSk7XG4gICAgfVxuICAgIHJldHVybiByZXR1cm5BcnJheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBpZiBPYmplY3RtYXAgaXN0IGVtcHR5XG4gICAqL1xuICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mYXN0TWFwLmdldEtleXMoKS5sZW5ndGggPT09IDA7XG4gIH1cblxuICAvKipcbiAgICogcmVtb3ZlIG9iamVjdCBmcm9tIE9iamVjdG1hcFxuICAgKi9cbiAgcHVibGljIHJlbW92ZShvYmplY3RBcmc6IFQpOiBUIHtcbiAgICBpZiAodGhpcy5jaGVja0Zvck9iamVjdChvYmplY3RBcmcpKSB7XG4gICAgICBjb25zdCBrZXlBcmcgPSB0aGlzLmdldEtleUZvck9iamVjdChvYmplY3RBcmcpO1xuICAgICAgY29uc3QgcmVtb3ZlZE9iamVjdCA9IHRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKGtleUFyZyk7XG4gICAgICB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtcbiAgICAgICAgb3BlcmF0aW9uOiAncmVtb3ZlJyxcbiAgICAgICAgcGF5bG9hZDogcmVtb3ZlZE9iamVjdCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlbW92ZWRPYmplY3Q7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIHdpcGUgT2JqZWN0bWFwXG4gICAqL1xuICBwdWJsaWMgd2lwZSgpIHtcbiAgICBmb3IgKGNvbnN0IGtleUFyZyBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKSB7XG4gICAgICB0aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChrZXlBcmcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm5zIGEgbmV3IE9iamVjdG1hcCB0aGF0IGluY2x1ZGVzXG4gICAqL1xuICBwdWJsaWMgY29uY2F0KG9iamVjdE1hcEFyZzogT2JqZWN0TWFwPFQ+KSB7XG4gICAgY29uc3QgY29uY2F0dGVkT2JqZWN0TWFwID0gbmV3IE9iamVjdE1hcDxUPigpO1xuICAgIGNvbmNhdHRlZE9iamVjdE1hcC5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0aGlzLmZhc3RNYXApO1xuICAgIGNvbmNhdHRlZE9iamVjdE1hcC5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcihvYmplY3RNYXBBcmcuZmFzdE1hcCk7XG4gICAgcmV0dXJuIGNvbmNhdHRlZE9iamVjdE1hcDtcbiAgfVxuXG4gIC8qKlxuICAgKiB0cmllcyB0byBtZXJnZSBhbm90aGVyIE9iamVjdG1hcFxuICAgKiBOb3RlOiB1bmlxdWVLZXlDb2xsaXNpb25zIHdpbGwgY2F1c2Ugb3ZlcndyaXRlXG4gICAqIEBwYXJhbSBvYmplY3RNYXBBcmdcbiAgICovXG4gIHB1YmxpYyBhZGRBbGxGcm9tT3RoZXIob2JqZWN0TWFwQXJnOiBPYmplY3RNYXA8VD4pIHtcbiAgICB0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKG9iamVjdE1hcEFyZy5mYXN0TWFwKTtcbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9jbGFzc2VzLnBsdWdpbnMuanMnO1xuXG5pbXBvcnQgeyBJbnRlcmVzdE1hcCwgdHlwZSBJSW50ZXJlc3RDb21wYXJpc29uRnVuYyB9IGZyb20gJy4vY2xhc3Nlcy5pbnRlcmVzdG1hcC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUludGVyZXN0T3B0aW9uczxEVEludGVyZXN0RnVsbGZpbGxtZW50PiB7XG4gIG1hcmtMb3N0QWZ0ZXJEZWZhdWx0OiBudW1iZXI7XG4gIGRlZmF1bHRGdWxsZmlsbG1lbnQ/OiBEVEludGVyZXN0RnVsbGZpbGxtZW50O1xufVxuXG5leHBvcnQgY2xhc3MgSW50ZXJlc3Q8RFRJbnRlcmVzdElkLCBEVEludGVyZXN0RnVsbGZpbGxtZW50PiB7XG4gIHB1YmxpYyBvcHRpb25zOiBJSW50ZXJlc3RPcHRpb25zPERUSW50ZXJlc3RGdWxsZmlsbG1lbnQ+O1xuXG4gIHByaXZhdGUgaW50ZXJlc3RNYXBSZWY6IEludGVyZXN0TWFwPERUSW50ZXJlc3RJZCwgRFRJbnRlcmVzdEZ1bGxmaWxsbWVudD47XG4gIHB1YmxpYyBvcmlnaW5hbEludGVyZXN0OiBEVEludGVyZXN0SWQ7XG4gIHB1YmxpYyBjb21wYXJpc29uRnVuYzogSUludGVyZXN0Q29tcGFyaXNvbkZ1bmM8RFRJbnRlcmVzdElkPjtcbiAgcHVibGljIGRlc3RydWN0aW9uVGltZXIgPSBuZXcgcGx1Z2lucy5zbWFydHRpbWUuVGltZXIoMTAwMDApO1xuICBwdWJsaWMgaXNGdWxsZmlsbGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGEgZ2VuZXJpYyBzdG9yZSB0byBzdG9yZSBvYmplY3RzIGluIHRoYXQgYXJlIG5lZWRlZCBmb3IgZnVsbGZpbGxtZW50O1xuICAgKi9cbiAgcHVibGljIGZ1bGxmaWxsbWVudFN0b3JlOiBhbnlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBxdWljayBhY2Nlc3MgdG8gYSBzdHJpbmcgdGhhdCBtYWtlcyB0aGUgaW50ZXJlc3QgY29tcGFyYWJsZSBmb3IgY2hlY2tpbmcgZm9yIHNpbWlsYXIgaW50ZXJlc3RzXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbXBhcmlzb25TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGFyaXNvbkZ1bmModGhpcy5vcmlnaW5hbEludGVyZXN0KTtcbiAgfVxuXG4gIHByaXZhdGUgaW50ZXJlc3REZWZlcnJlZDogcGx1Z2lucy5zbWFydHByb21pc2UuRGVmZXJyZWQ8RFRJbnRlcmVzdEZ1bGxmaWxsbWVudD4gPVxuICAgIG5ldyBwbHVnaW5zLnNtYXJ0cHJvbWlzZS5EZWZlcnJlZCgpO1xuICBwdWJsaWMgaW50ZXJlc3RGdWxsZmlsbGVkID0gdGhpcy5pbnRlcmVzdERlZmVycmVkLnByb21pc2U7XG5cbiAgLyoqXG4gICAqIGZ1bGxmaWxsIHRoZSBpbnRlcmVzdFxuICAgKi9cbiAgcHVibGljIGZ1bGxmaWxsSW50ZXJlc3Qob2JqZWN0QXJnOiBEVEludGVyZXN0RnVsbGZpbGxtZW50KSB7XG4gICAgdGhpcy5pc0Z1bGxmaWxsZWQgPSB0cnVlO1xuICAgIHRoaXMuZnVsbGZpbGxtZW50U3RvcmUgPSBbXTtcbiAgICB0aGlzLmludGVyZXN0RGVmZXJyZWQucmVzb2x2ZShvYmplY3RBcmcpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBpbnRlcmVzdE1hcEFyZzogSW50ZXJlc3RNYXA8RFRJbnRlcmVzdElkLCBEVEludGVyZXN0RnVsbGZpbGxtZW50PixcbiAgICBpbnRlcmVzdEFyZzogRFRJbnRlcmVzdElkLFxuICAgIGNvbXBhcmlzb25GdW5jQXJnOiBJSW50ZXJlc3RDb21wYXJpc29uRnVuYzxEVEludGVyZXN0SWQ+LFxuICAgIG9wdGlvbnNBcmc/OiBJSW50ZXJlc3RPcHRpb25zPERUSW50ZXJlc3RGdWxsZmlsbG1lbnQ+XG4gICkge1xuICAgIHRoaXMuaW50ZXJlc3RNYXBSZWYgPSBpbnRlcmVzdE1hcEFyZztcbiAgICB0aGlzLm9yaWdpbmFsSW50ZXJlc3QgPSBpbnRlcmVzdEFyZztcbiAgICB0aGlzLmNvbXBhcmlzb25GdW5jID0gY29tcGFyaXNvbkZ1bmNBcmc7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9uc0FyZztcblxuICAgIHRoaXMuZGVzdHJ1Y3Rpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9KTtcbiAgICBpZiAodGhpcy5vcHRpb25zPy5tYXJrTG9zdEFmdGVyRGVmYXVsdCkge1xuICAgICAgcGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKHRoaXMub3B0aW9ucy5tYXJrTG9zdEFmdGVyRGVmYXVsdCkudGhlbih0aGlzLm1hcmtMb3N0KTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIExJRkVDWUNMRSBNQU5BR0VNRU5UXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogc2VsZiBkZXN0cnVjdHMgdGhlIGludGVyZXN0XG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLmludGVyZXN0TWFwUmVmLnJlbW92ZUludGVyZXN0KHRoaXMpO1xuICAgIGlmICghdGhpcy5pc0Z1bGxmaWxsZWQgJiYgdGhpcy5vcHRpb25zLmRlZmF1bHRGdWxsZmlsbG1lbnQpIHtcbiAgICAgIHRoaXMuZnVsbGZpbGxJbnRlcmVzdCh0aGlzLm9wdGlvbnMuZGVmYXVsdEZ1bGxmaWxsbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIG5vdGlmaWVzIHRoZSBpbnRlcmVzdCB0aGF0IHRoZSBpbnRlcmVzdCBpbiBpdCBoYXMgYmVlbiBsb3N0XG4gICAqL1xuICBwdWJsaWMgbWFya0xvc3QoKSB7XG4gICAgdGhpcy5kZXN0cnVjdGlvblRpbWVyLnN0YXJ0KCk7XG4gIH1cblxuICAvKipcbiAgICogbm90aWZpZXMgdGhlIGludGVyZXN0IHRoYXQgdGhlIGludGVyZXN0IGluIGl0IGhhcyBiZWVuIHJlc3RvcmVkXG4gICAqL1xuICBwdWJsaWMgcmVuZXcoKSB7XG4gICAgdGhpcy5kZXN0cnVjdGlvblRpbWVyLnJlc2V0KCk7XG4gIH1cbn1cbiIsICIvKiA9PT09PT09PT09PVxuVGhlIEludGVyZXN0TWFwIGlzIGFuIG1lY2hhbmlzbSB0aGF0IGNvbGxlY3RzIGludGVyZXN0cyBpbnRvIHNvbWV0aGluZ1xuQW4gaW50ZXJlc3QgaXMgZXhwcmVzc2VkIGJ5IGFuIG9iamVjdCwgc3RyaW5nIG9yIG51bWJlci5cbkEgY29tcGFyaXNvbiBmdW5jIGNhbiBiZSBzcGVjaWZpZWQgdG8gbWFrZSBpbnRlcmVzdHMgY29tcGFyYWJsZVxuXG5Gb3IgZXZlcnkgdW5pcXVlIGludGVyZXN0SWQgYW4gaW50ZXJlc3QgaXMgY3JlYXRlZC5cblN1YnNzZXF1ZW50IGludGVyZXN0cyB3aWxsIGJlIG1hcHBlZCB0byB0aGUgc2FtZSBpbnRlcmVzdFxud2hpY2ggaXMgdGhlbiBpcyBvbmx5IGZ1bGxmaWxsZWQgb25jZS5cbj09PT09PT09PT09ICovXG5cbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9jbGFzc2VzLnBsdWdpbnMuanMnO1xuaW1wb3J0IHsgT2JqZWN0TWFwIH0gZnJvbSAnLi9jbGFzc2VzLm9iamVjdG1hcC5qcyc7XG5pbXBvcnQgeyBJbnRlcmVzdCB9IGZyb20gJy4vY2xhc3Nlcy5pbnRlcmVzdG1hcC5pbnRlcmVzdC5qcyc7XG5cbmV4cG9ydCB0eXBlIElJbnRlcmVzdENvbXBhcmlzb25GdW5jPFQ+ID0gKG9iamVjdEFyZzogVCkgPT4gc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIElJbnRlcmVzdE1hcE9wdGlvbnMge1xuICBtYXJrTG9zdEFmdGVyRGVmYXVsdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEludGVyZXN0TWFwPERUSW50ZXJlc3RJZCwgRFRJbnRlcmVzdEZ1bGxmaWxsbWVudD4ge1xuICBwdWJsaWMgb3B0aW9uczogSUludGVyZXN0TWFwT3B0aW9ucztcblxuICAvKipcbiAgICogc3RvcmVzIGludGVyZXN0cyB0aGF0IGFyZSBjdXJyZW50bHkgZnVsbGZpbGxlZCBieSB0aGUgY2FjaGVcbiAgICovXG4gIHByaXZhdGUgaW50ZXJlc3RPYmplY3RNYXAgPSBuZXcgT2JqZWN0TWFwPEludGVyZXN0PERUSW50ZXJlc3RJZCwgRFRJbnRlcmVzdEZ1bGxmaWxsbWVudD4+KCk7XG5cbiAgLyoqXG4gICAqIGEgZnVuY3Rpb24gdG8gY29tcGFyZSBpbnRlcmVzdHNcbiAgICovXG4gIHByaXZhdGUgY29tcGFyaXNvbkZ1bmM6IElJbnRlcmVzdENvbXBhcmlzb25GdW5jPERUSW50ZXJlc3RJZD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29tcGFyaXNvbkZ1bmNBcmc6IElJbnRlcmVzdENvbXBhcmlzb25GdW5jPERUSW50ZXJlc3RJZD4sXG4gICAgb3B0aW9uc0FyZzogSUludGVyZXN0TWFwT3B0aW9ucyA9IHt9XG4gICkge1xuICAgIHRoaXMuY29tcGFyaXNvbkZ1bmMgPSBjb21wYXJpc29uRnVuY0FyZztcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zQXJnO1xuICB9XG5cbiAgLyoqXG4gICAqIGFkZHMgYW4gaW50ZXJlc3QgdG8gdGhlIEludGVyZXN0TWFwXG4gICAqIEBwYXJhbSBpbnRlcmVzdElkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYWRkSW50ZXJlc3QoXG4gICAgaW50ZXJlc3RJZDogRFRJbnRlcmVzdElkLFxuICAgIGRlZmF1bHRGdWxsZmlsbG1lbnRBcmc/OiBEVEludGVyZXN0RnVsbGZpbGxtZW50XG4gICk6IFByb21pc2U8SW50ZXJlc3Q8RFRJbnRlcmVzdElkLCBEVEludGVyZXN0RnVsbGZpbGxtZW50Pj4ge1xuICAgIGNvbnN0IGNvbXBhcmlzb25TdHJpbmcgPSB0aGlzLmNvbXBhcmlzb25GdW5jKGludGVyZXN0SWQpO1xuICAgIGxldCByZXR1cm5JbnRlcmVzdDogSW50ZXJlc3Q8RFRJbnRlcmVzdElkLCBEVEludGVyZXN0RnVsbGZpbGxtZW50PjtcbiAgICBjb25zdCBuZXdJbnRlcmVzdCA9IG5ldyBJbnRlcmVzdDxEVEludGVyZXN0SWQsIERUSW50ZXJlc3RGdWxsZmlsbG1lbnQ+KFxuICAgICAgdGhpcyxcbiAgICAgIGludGVyZXN0SWQsXG4gICAgICB0aGlzLmNvbXBhcmlzb25GdW5jLFxuICAgICAge1xuICAgICAgICBtYXJrTG9zdEFmdGVyRGVmYXVsdDogdGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0LFxuICAgICAgICBkZWZhdWx0RnVsbGZpbGxtZW50OiBkZWZhdWx0RnVsbGZpbGxtZW50QXJnLFxuICAgICAgfVxuICAgICk7XG4gICAgbGV0IGludGVyZXN0RXhpc3RzID0gZmFsc2U7XG4gICAgYXdhaXQgdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5mb3JFYWNoKChpbnRlcmVzdEFyZykgPT4ge1xuICAgICAgaWYgKCFpbnRlcmVzdEV4aXN0cyAmJiBpbnRlcmVzdEFyZy5jb21wYXJpc29uU3RyaW5nID09PSBuZXdJbnRlcmVzdC5jb21wYXJpc29uU3RyaW5nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdpbmZvJywgYGludGVyZXN0IGFscmVhZHkgZXhpc3RzIGZvciAke25ld0ludGVyZXN0LmNvbXBhcmlzb25TdHJpbmd9YCk7XG4gICAgICAgIGludGVyZXN0RXhpc3RzID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuSW50ZXJlc3QgPSBpbnRlcmVzdEFyZztcbiAgICAgICAgcmV0dXJuSW50ZXJlc3QucmVuZXcoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoIXJldHVybkludGVyZXN0KSB7XG4gICAgICByZXR1cm5JbnRlcmVzdCA9IG5ld0ludGVyZXN0O1xuICAgICAgdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5hZGQocmV0dXJuSW50ZXJlc3QpO1xuICAgIH1cbiAgICB0aGlzLmludGVyZXN0T2JzZXJ2YWJsZS5wdXNoKHJldHVybkludGVyZXN0KTtcbiAgICByZXR1cm4gcmV0dXJuSW50ZXJlc3Q7XG4gIH1cblxuICBwdWJsaWMgaW50ZXJlc3RPYnNlcnZhYmxlID0gbmV3IHBsdWdpbnMuc21hcnRyeC5PYnNlcnZhYmxlSW50YWtlPEludGVyZXN0PERUSW50ZXJlc3RJZCwgYW55Pj4oKTtcblxuICAvKipcbiAgICogcmVtb3ZlcyBhbiBpbnRlcmVzdCBmcm9tIHRoZSBpbnRlcmVzdCBtYXBcbiAgICovXG4gIHB1YmxpYyByZW1vdmVJbnRlcmVzdChpbnRlcmVzdEFyZzogSW50ZXJlc3Q8RFRJbnRlcmVzdElkLCBEVEludGVyZXN0RnVsbGZpbGxtZW50Pikge1xuICAgIGNvbnN0IGludGVyZXN0VG9SZW1vdmUgPSB0aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRPbmVBbmRSZW1vdmVTeW5jKChpbnRlcmVzdEFyZzIpID0+IHtcbiAgICAgIHJldHVybiBpbnRlcmVzdEFyZy5jb21wYXJpc29uU3RyaW5nID09PSBpbnRlcmVzdEFyZzIuY29tcGFyaXNvblN0cmluZztcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBpbnRlcmVzdFxuICAgKi9cbiAgcHVibGljIGNoZWNrSW50ZXJlc3Qob2JqZWN0QXJnOiBEVEludGVyZXN0SWQpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb21wYXJpc29uU3RyaW5nID0gdGhpcy5jb21wYXJpc29uRnVuYyhvYmplY3RBcmcpO1xuICAgIHJldHVybiB0aGlzLmNoZWNrSW50ZXJlc3RCeVN0cmluZyhjb21wYXJpc29uU3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVja3MgYW4gaW50ZXJlc3RcbiAgICogQHBhcmFtIGNvbXBhcmlzb25TdHJpbmdBcmdcbiAgICovXG4gIHB1YmxpYyBjaGVja0ludGVyZXN0QnlTdHJpbmcoY29tcGFyaXNvblN0cmluZ0FyZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZm91bmRJbnRlcmVzdCA9IHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuZmluZFN5bmMoKGludGVyZXN0KSA9PiB7XG4gICAgICByZXR1cm4gaW50ZXJlc3QuY29tcGFyaXNvblN0cmluZyA9PT0gY29tcGFyaXNvblN0cmluZ0FyZztcbiAgICB9KTtcbiAgICBpZiAoZm91bmRJbnRlcmVzdCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogaW5mb3JtIGxvc3QgaW50ZXJlc3RcbiAgICogQHBhcmFtIGludGVyZXN0SWRcbiAgICovXG4gIHB1YmxpYyBpbmZvcm1Mb3N0SW50ZXJlc3QoaW50ZXJlc3RJZDogRFRJbnRlcmVzdElkKSB7XG4gICAgY29uc3Qgd2FudGVkSW50ZXJlc3QgPSB0aGlzLmZpbmRJbnRlcmVzdChpbnRlcmVzdElkKTtcbiAgICBpZiAod2FudGVkSW50ZXJlc3QpIHtcbiAgICAgIHdhbnRlZEludGVyZXN0Lm1hcmtMb3N0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGZpbmRzIGFuIGludGVyZXN0XG4gICAqIEBwYXJhbSBpbnRlcmVzdElkXG4gICAqL1xuICBwdWJsaWMgZmluZEludGVyZXN0KGludGVyZXN0SWQ6IERUSW50ZXJlc3RJZCk6IEludGVyZXN0PERUSW50ZXJlc3RJZCwgRFRJbnRlcmVzdEZ1bGxmaWxsbWVudD4ge1xuICAgIGNvbnN0IGNvbXBhcmFibGVTdHJpbmcgPSB0aGlzLmNvbXBhcmlzb25GdW5jKGludGVyZXN0SWQpO1xuICAgIGNvbnN0IGludGVyZXN0ID0gdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5maW5kU3luYygoaW50ZXJlc3RBcmcpID0+IHtcbiAgICAgIHJldHVybiBpbnRlcmVzdEFyZy5jb21wYXJpc29uU3RyaW5nID09PSBjb21wYXJhYmxlU3RyaW5nO1xuICAgIH0pO1xuICAgIHJldHVybiBpbnRlcmVzdDsgLy8gaWYgYW4gaW50ZXJlc3QgaXMgZm91bmQsIHRoZSBpbnRlcmVzdCBpcyByZXR1cm5lZCwgb3RoZXJ3aXNlIGludGVyZXN0IGlzIG51bGxcbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9jbGFzc2VzLnBsdWdpbnMuanMnO1xuXG5leHBvcnQgY2xhc3MgTGltaXRlZEFycmF5PFQ+IHtcbiAgYXJyYXk6IFRbXSA9IFtdO1xuICBhcnJheUxpbWl0OiBudW1iZXI7XG4gIGNvbnN0cnVjdG9yKGxpbWl0QXJnOiBudW1iZXIpIHtcbiAgICB0aGlzLmFycmF5TGltaXQgPSBsaW1pdEFyZztcbiAgfVxuXG4gIGFkZE9uZShvYmplY3RBcmc6IFQpIHtcbiAgICB0aGlzLmFycmF5LnVuc2hpZnQob2JqZWN0QXJnKTtcbiAgICBpZiAodGhpcy5hcnJheS5sZW5ndGggPiB0aGlzLmFycmF5TGltaXQpIHtcbiAgICAgIHRoaXMuYXJyYXkubGVuZ3RoID0gdGhpcy5hcnJheUxpbWl0O1xuICAgIH1cbiAgfVxuXG4gIGFkZE1hbnkob2JqZWN0QXJyYXlBcmc6IFRbXSkge1xuICAgIGZvciAobGV0IG9iamVjdEFyZyBvZiBvYmplY3RBcnJheUFyZykge1xuICAgICAgdGhpcy5hZGRPbmUob2JqZWN0QXJnKTtcbiAgICB9XG4gIH1cblxuICBzZXRMaW1pdChsaW1pdEFyZzogbnVtYmVyKSB7XG4gICAgdGhpcy5hcnJheUxpbWl0ID0gbGltaXRBcmc7XG4gICAgaWYgKHRoaXMuYXJyYXkubGVuZ3RoID4gdGhpcy5hcnJheUxpbWl0KSB7XG4gICAgICB0aGlzLmFycmF5Lmxlbmd0aCA9IHRoaXMuYXJyYXlMaW1pdDtcbiAgICB9XG4gIH1cblxuICBnZXRBdmVyYWdlKCk6IG51bWJlciB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmFycmF5WzBdID09PSAnbnVtYmVyJykge1xuICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICBmb3IgKGxldCBsb2NhbE51bWJlciBvZiB0aGlzLmFycmF5KSB7XG4gICAgICAgIGxldCBsb2NhbE51bWJlckFueTogYW55ID0gbG9jYWxOdW1iZXI7XG4gICAgICAgIHN1bSA9IHN1bSArIGxvY2FsTnVtYmVyQW55O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN1bSAvIHRoaXMuYXJyYXkubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vY2xhc3Nlcy5wbHVnaW5zLmpzJztcblxuaW1wb3J0IHsgT2JqZWN0TWFwIH0gZnJvbSAnLi9jbGFzc2VzLm9iamVjdG1hcC5qcyc7XG5cbmV4cG9ydCBjbGFzcyBMb29wVHJhY2tlcjxUPiB7XG4gIHJlZmVyZW5jZU9iamVjdE1hcCA9IG5ldyBPYmplY3RNYXA8YW55PigpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBub3RoaW5nIGhlcmVcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVja3MgYW5kIHRyYWNrcyBhbiBvYmplY3RcbiAgICogQHBhcmFtIG9iamVjdEFyZ1xuICAgKi9cbiAgY2hlY2tBbmRUcmFjayhvYmplY3RBcmc6IFQpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmNoZWNrRm9yT2JqZWN0KG9iamVjdEFyZykpIHtcbiAgICAgIHRoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmFkZChvYmplY3RBcmcpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vY2xhc3Nlcy5wbHVnaW5zLmpzJztcblxuLyoqXG4gKiBhbGxvd3MgeW91IHRvIGVhc2lseSBrZWVwIHRyYWNrIG9mIGEgYnVuY2ggb2Ygc3RyaW5nc1xuICovXG5cbmV4cG9ydCB0eXBlIFRUcmlnZ2VyRnVuY3Rpb24gPSAoc3RyaW5nQXJyYXk/OiBzdHJpbmdbXSkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IGNsYXNzIFN0cmluZ21hcCB7XG4gIHByaXZhdGUgX3N0cmluZ0FycmF5OiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheTogVFRyaWdnZXJGdW5jdGlvbltdID0gW107XG4gIGNvbnN0cnVjdG9yKCkge31cbiAgLyoqXG4gICAqIGFkZCBhIHN0cmluZyB0byB0aGUgU3RyaW5nbWFwXG4gICAqL1xuICBhZGRTdHJpbmcoc3RyaW5nQXJnOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zdHJpbmdBcnJheS5wdXNoKHN0cmluZ0FyZyk7XG4gICAgdGhpcy5ub3RpZnlUcmlnZ2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogbGlrZSBhZGRTdHJpbmcsIGJ1dCBhY2NlcHRzIGFuIGFycmF5IG9mIHN0cmluZ3NcbiAgICovXG4gIGFkZFN0cmluZ0FycmF5KHN0cmluZ0FycmF5QXJnOiBzdHJpbmdbXSkge1xuICAgIGZvciAoY29uc3Qgc3RyaW5nSXRlbSBvZiBzdHJpbmdBcnJheUFyZykge1xuICAgICAgdGhpcy5hZGRTdHJpbmcoc3RyaW5nSXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHJlbW92ZXMgYSBzdHJpbmcgZnJvbSBTdHJpbmdtYXBcbiAgICovXG4gIHJlbW92ZVN0cmluZyhzdHJpbmdBcmc6IHN0cmluZykge1xuICAgIGZvciAoY29uc3Qga2V5QXJnIGluIHRoaXMuX3N0cmluZ0FycmF5KSB7XG4gICAgICBpZiAodGhpcy5fc3RyaW5nQXJyYXlba2V5QXJnXSA9PT0gc3RyaW5nQXJnKSB7XG4gICAgICAgIHRoaXMuX3N0cmluZ0FycmF5LnNwbGljZShwYXJzZUludChrZXlBcmcpLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5ub3RpZnlUcmlnZ2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogd2lwZXMgdGhlIFN0cmluZ21hcFxuICAgKi9cbiAgd2lwZSgpIHtcbiAgICB0aGlzLl9zdHJpbmdBcnJheSA9IFtdO1xuICAgIHRoaXMubm90aWZ5VHJpZ2dlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrIGlmIHN0cmluZyBpcyBpbiBTdHJpbmdtYXBcbiAgICovXG4gIHB1YmxpYyBjaGVja1N0cmluZyhzdHJpbmdBcmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdHJpbmdBcnJheS5pbmRleE9mKHN0cmluZ0FyZykgIT09IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrcyBzdHJpbmdQcmVzZW5jZSB3aXRoIG1pbmltYXRjaFxuICAgKi9cbiAgcHVibGljIGNoZWNrTWluaW1hdGNoKG1pbmlNYXRjaFN0cmluZ0FyZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc21hcnRNYXRjaEluc3RhbmNlID0gbmV3IHBsdWdpbnMuc21hcnRtYXRjaC5TbWFydE1hdGNoKG1pbmlNYXRjaFN0cmluZ0FyZyk7XG4gICAgbGV0IGZvdW5kTWF0Y2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IHN0cmluZ0l0ZW0gb2YgdGhpcy5fc3RyaW5nQXJyYXkpIHtcbiAgICAgIGlmIChzbWFydE1hdGNoSW5zdGFuY2UubWF0Y2goc3RyaW5nSXRlbSkpIHtcbiAgICAgICAgZm91bmRNYXRjaCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmb3VuZE1hdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrcyBpZiB0aGUgU3RyaW5nbWFwIGlzIGVtcHR5XG4gICAqL1xuICBwdWJsaWMgY2hlY2tJc0VtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLl9zdHJpbmdBcnJheS5sZW5ndGggPT09IDA7XG4gIH1cblxuICAvKipcbiAgICogZ2V0cyBhIGNsb25lZCBjb3B5IG9mIHRoZSBjdXJyZW50IHN0cmluZyBBcnJheVxuICAgKi9cbiAgcHVibGljIGdldFN0cmluZ0FycmF5KCkge1xuICAgIGNvbnN0IHJldHVybkFycmF5OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qgc3RyaW5nSXRlbSBvZiB0aGlzLl9zdHJpbmdBcnJheSkge1xuICAgICAgcmV0dXJuQXJyYXkucHVzaChzdHJpbmdJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVybkFycmF5O1xuICB9XG5cbiAgLy8gdHJpZ2dlciByZWdpc3RlcmluZ1xuXG4gIC8qKlxuICAgKiByZWdpc3RlciBhIG5ldyB0cmlnZ2VyXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJVbnRpbFRydWUoZnVuY3Rpb25Bcmc6IFRUcmlnZ2VyRnVuY3Rpb24sIGNhbGxiYWNrQXJnPzogKCkgPT4gYW55KSB7XG4gICAgY29uc3QgdHJ1ZURlZmVycmVkID0gcGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtcbiAgICB0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5wdXNoKCgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGZ1bmN0aW9uQXJnKHRoaXMuZ2V0U3RyaW5nQXJyYXkoKSk7XG4gICAgICBpZiAocmVzdWx0ID09PSB0cnVlKSB7XG4gICAgICAgIGlmIChjYWxsYmFja0FyZykge1xuICAgICAgICAgIGNhbGxiYWNrQXJnKCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ1ZURlZmVycmVkLnJlc29sdmUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gICAgdGhpcy5ub3RpZnlUcmlnZ2VyKCk7XG4gICAgcmV0dXJuIHRydWVEZWZlcnJlZC5wcm9taXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIG5vdGlmaWVzIHRyaWdnZXJzXG4gICAqL1xuICBwcml2YXRlIG5vdGlmeVRyaWdnZXIoKSB7XG4gICAgY29uc3QgZmlsdGVyZWRBcnJheSA9IHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LmZpbHRlcigoZnVuY3Rpb25BcmcpID0+IHtcbiAgICAgIHJldHVybiAhZnVuY3Rpb25BcmcoKTtcbiAgICB9KTtcbiAgICB0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheSA9IGZpbHRlcmVkQXJyYXk7XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vY2xhc3Nlcy5wbHVnaW5zLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJVGltZWRBZ2dyZWdhdG9yT3B0aW9uczxUPiB7XG4gIGFnZ3JlZ2F0aW9uSW50ZXJ2YWxJbk1pbGxpczogbnVtYmVyO1xuICBmdW5jdGlvbkZvckFnZ3JlZ2F0aW9uOiAoaW5wdXQ6IFRbXSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIFRpbWVkQWdncmVndG9yPFQ+IHtcbiAgcHVibGljIG9wdGlvbnM6IElUaW1lZEFnZ3JlZ2F0b3JPcHRpb25zPFQ+O1xuICBwcml2YXRlIHN0b3JhZ2VBcnJheTogVFtdID0gW107XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uc0FyZzogSVRpbWVkQWdncmVnYXRvck9wdGlvbnM8VD4pIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zQXJnO1xuICB9XG5cbiAgcHJpdmF0ZSBhZ2dyZWdhdGlvblRpbWVyOiBwbHVnaW5zLnNtYXJ0dGltZS5UaW1lcjtcbiAgcHJpdmF0ZSBjaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCkge1xuICAgIGNvbnN0IGFkZEFnZ3JlZ2F0aW9uVGltZXIgPSAoKSA9PiB7XG4gICAgICB0aGlzLmFnZ3JlZ2F0aW9uVGltZXIgPSBuZXcgcGx1Z2lucy5zbWFydHRpbWUuVGltZXIodGhpcy5vcHRpb25zLmFnZ3JlZ2F0aW9uSW50ZXJ2YWxJbk1pbGxpcyk7XG4gICAgICB0aGlzLmFnZ3JlZ2F0aW9uVGltZXIuY29tcGxldGVkLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBhZ2dyZWdhdGVGb3JQcm9jZXNzaW5nID0gdGhpcy5zdG9yYWdlQXJyYXk7XG4gICAgICAgIGlmIChhZ2dyZWdhdGVGb3JQcm9jZXNzaW5nLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuYWdncmVnYXRpb25UaW1lciA9IG51bGw7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RvcmFnZUFycmF5ID0gW107XG4gICAgICAgIGFkZEFnZ3JlZ2F0aW9uVGltZXIoKTtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZ1bmN0aW9uRm9yQWdncmVnYXRpb24oYWdncmVnYXRlRm9yUHJvY2Vzc2luZyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWdncmVnYXRpb25UaW1lci5zdGFydCgpO1xuICAgIH07XG4gICAgaWYgKCF0aGlzLmFnZ3JlZ2F0aW9uVGltZXIpIHtcbiAgICAgIGFkZEFnZ3JlZ2F0aW9uVGltZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkKGFnZ3JlZ2F0aW9uQXJnOiBUKSB7XG4gICAgdGhpcy5zdG9yYWdlQXJyYXkucHVzaChhZ2dyZWdhdGlvbkFyZyk7XG4gICAgdGhpcy5jaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vY2xhc3Nlcy5wbHVnaW5zLmpzJztcblxuZXhwb3J0IGNsYXNzIFRyZWU8VD4ge1xuICBzeW1ib2xUcmVlOiBhbnk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3ltYm9sVHJlZSA9IG5ldyBwbHVnaW5zLnN5bWJvbFRyZWUoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBGdW5jdGlvbnMgdGhhdCBtYXAgdG8gdGhlIGZ1bmN0aW9uYWxpdHkgb2Ygc3ltYm9sLXRyZWVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBvYmplY3RBcmdcbiAgICovXG4gIGluaXRpYWxpemUob2JqZWN0QXJnOiBUKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbml0aWFsaXplKG9iamVjdEFyZyk7XG4gIH1cblxuICBoYXNDaGlsZHJlbihvYmplY3RBcmc6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmhhc0NoaWxkcmVuKG9iamVjdEFyZyk7XG4gIH1cblxuICBmaXJzdENoaWxkKG9iamVjdEFyZzogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbFRyZWUuZmlyc3RDaGlsZChvYmplY3RBcmcpO1xuICB9XG5cbiAgbGFzdENoaWxkKG9iamVjdEFyZzogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbFRyZWUubGFzdENoaWxkKG9iamVjdEFyZyk7XG4gIH1cblxuICBwcmV2aW91c1NpYmxpbmcob2JqZWN0QXJnOiBUKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmcob2JqZWN0QXJnKTtcbiAgfVxuXG4gIG5leHRTaWJsaW5nKG9iamVjdEFyZzogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbFRyZWUubmV4dFNpYmxpbmcob2JqZWN0QXJnKTtcbiAgfVxuXG4gIHBhcmVudChvYmplY3RBcmc6IFQpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnBhcmVudChvYmplY3RBcmcpO1xuICB9XG5cbiAgbGFzdEluY2x1c2l2ZURlc2NlbmRhbnQob2JqZWN0QXJnOiBUKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChvYmplY3RBcmcpO1xuICB9XG5cbiAgcHJlY2VkaW5nKG9iamVjdEFyZzogVCwgb3B0aW9uc0FyZz86IGFueSk6IFQge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlY2VkaW5nKG9iamVjdEFyZywgb3B0aW9uc0FyZyk7XG4gIH1cblxuICBmb2xsb3dpbmcob2JqZWN0OiBULCBvcHRpb25zQXJnOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmZvbGxvd2luZyhvYmplY3QsIG9wdGlvbnNBcmcpO1xuICB9XG5cbiAgY2hpbGRyZW5Ub0FycmF5KHBhcmVudEFyZzogVCwgb3B0aW9uc0FyZzogYW55KTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuVG9BcnJheShwYXJlbnRBcmcsIG9wdGlvbnNBcmcpO1xuICB9XG5cbiAgYW5jZXN0b3JzVG9BcnJheShvYmplY3RBcmc6IFQsIG9wdGlvbnNBcmc6IGFueSk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNUb0FycmF5KG9iamVjdEFyZywgb3B0aW9uc0FyZyk7XG4gIH1cblxuICB0cmVlVG9BcnJheShyb290QXJnOiBULCBvcHRpb25zQXJnOiBhbnkpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbFRyZWUudHJlZVRvQXJyYXkocm9vdEFyZywgb3B0aW9uc0FyZyk7XG4gIH1cblxuICBjaGlsZHJlbkl0ZXJhdG9yKHBhcmVudEFyZzogVCwgb3B0aW9uc0FyZzogYW55KTogVCB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlbkl0ZXJhdG9yKHBhcmVudEFyZywgb3B0aW9uc0FyZyk7XG4gIH1cblxuICBwcmV2aW91c1NpYmxpbmdzSXRlcmF0b3Iob2JqZWN0QXJnOiBUKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3Iob2JqZWN0QXJnKTtcbiAgfVxuXG4gIG5leHRTaWJsaW5nc0l0ZXJhdG9yKG9iamVjdEFyZzogVCkge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbFRyZWUubmV4dFNpYmxpbmdzSXRlcmF0b3IoKTtcbiAgfVxuXG4gIGFuY2VzdG9yc0l0ZXJhdG9yKG9iamVjdEFyZzogVCkge1xuICAgIHRoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNJdGVyYXRvcigpO1xuICB9XG5cbiAgdHJlZUl0ZXJhdG9yKHJvb3RBcmc6IFQsIG9wdGlvbnNBcmc6IGFueSk6IEl0ZXJhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnRyZWVJdGVyYXRvcihyb290QXJnKTtcbiAgfVxuXG4gIGluZGV4KGNoaWxkQXJnOiBUKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluZGV4KGNoaWxkQXJnKTtcbiAgfVxuXG4gIGNoaWxkcmVuQ291bnQocGFyZW50QXJnOiBUKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuQ291bnQocGFyZW50QXJnKTtcbiAgfVxuXG4gIGNvbXBhcmVUcmVlUG9zaXRpb24obGVmdEFyZzogVCwgcmlnaHRBcmc6IFQpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbXBhcmVUcmVlUG9zaXRpb24obGVmdEFyZywgcmlnaHRBcmcpO1xuICB9XG5cbiAgcmVtb3ZlKHJlbW92ZU9iamVjdEFyZzogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbFRyZWUucmVtb3ZlKHJlbW92ZU9iamVjdEFyZyk7XG4gIH1cblxuICBpbnNlcnRCZWZvcmUocmVmZXJlbmNlT2JqZWN0QXJnOiBULCBuZXdPYmplY3RBcmc6IFQpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluc2VydEJlZm9yZShyZWZlcmVuY2VPYmplY3RBcmcsIG5ld09iamVjdEFyZyk7XG4gIH1cblxuICBpbnNlcnRBZnRlcihyZWZlcmVuY2VPYmplY3Q6IFQsIG5ld09iamVjdEFyZzogVCkge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5zZXJ0QWZ0ZXIocmVmZXJlbmNlT2JqZWN0LCBuZXdPYmplY3RBcmcpO1xuICB9XG5cbiAgcHJlcGVuZENoaWxkKHJlZmVyZW5jZU9iamVjdEFyZzogVCwgbmV3T2JqZWN0QXJnOiBUKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmVwZW5kQ2hpbGQocmVmZXJlbmNlT2JqZWN0QXJnLCBuZXdPYmplY3RBcmcpO1xuICB9XG5cbiAgYXBwZW5kQ2hpbGQocmVmZXJlbmNlT2JqZWN0QXJnOiBULCBuZXdPYmplY3RBcmc6IFQpIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFwcGVuZENoaWxkKHJlZmVyZW5jZU9iamVjdEFyZywgbmV3T2JqZWN0QXJnKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRnVuY3Rpb25pb25hbGl0eSB0aGF0IGV4dGVuZHMgc3ltYm9sLXRyZWVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiByZXR1cm5zIGEgYnJhbmNoIG9mIHRoZSB0cmVlIGFzIEpTT05cbiAgICogY2FuIGJlIHVzZXJcbiAgICovXG4gIHRvSnNvbldpdGhIaWVyYWNoeShyb290RWxlbWVudDogVCkge1xuICAgIGNvbnN0IHRyZWVJdGVyYWJsZSA9IHRoaXMudHJlZUl0ZXJhdG9yKHJvb3RFbGVtZW50LCB7fSk7XG4gICAgZm9yIChjb25zdCB0cmVlSXRlbSBvZiB0cmVlSXRlcmFibGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKHRyZWVJdGVtKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogYnVpbGRzIGEgdHJlZSBmcm9tIGEgSlNPTiB3aXRoIGhpZXJhY2h5XG4gICAqIEBwYXJhbSByb290RWxlbWVudFxuICAgKi9cbiAgZnJvbUpzb25XaXRoSGllcmFjaHkocm9vdEVsZW1lbnQ6IFQpIHt9XG59XG4iLCAiZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzLmFzeW5jZXhlY3V0aW9uc3RhY2suanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzLmJhY2twcmVzc3VyZWRhcnJheS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMuZmFzdG1hcC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMuaW50ZXJlc3RtYXAuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzLmludGVyZXN0bWFwLmludGVyZXN0LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy5saW1pdGVkYXJyYXkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzLmxvb3B0cmFja2VyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy5vYmplY3RtYXAuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzLnN0cmluZ21hcC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMudGltZWRhZ2dyZWdhdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy50cmVlLmpzJztcbiIsICJjb25zdCBvYmplY3RUb1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5jb25zdCB1aW50OEFycmF5U3RyaW5naWZpZWQgPSAnW29iamVjdCBVaW50OEFycmF5XSc7XG5jb25zdCBhcnJheUJ1ZmZlclN0cmluZ2lmaWVkID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJztcblxuZnVuY3Rpb24gaXNUeXBlKHZhbHVlLCB0eXBlQ29uc3RydWN0b3IsIHR5cGVTdHJpbmdpZmllZCkge1xuXHRpZiAoIXZhbHVlKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0aWYgKHZhbHVlLmNvbnN0cnVjdG9yID09PSB0eXBlQ29uc3RydWN0b3IpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHJldHVybiBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gdHlwZVN0cmluZ2lmaWVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVaW50OEFycmF5KHZhbHVlKSB7XG5cdHJldHVybiBpc1R5cGUodmFsdWUsIFVpbnQ4QXJyYXksIHVpbnQ4QXJyYXlTdHJpbmdpZmllZCk7XG59XG5cbmZ1bmN0aW9uIGlzQXJyYXlCdWZmZXIodmFsdWUpIHtcblx0cmV0dXJuIGlzVHlwZSh2YWx1ZSwgQXJyYXlCdWZmZXIsIGFycmF5QnVmZmVyU3RyaW5naWZpZWQpO1xufVxuXG5mdW5jdGlvbiBpc1VpbnQ4QXJyYXlPckFycmF5QnVmZmVyKHZhbHVlKSB7XG5cdHJldHVybiBpc1VpbnQ4QXJyYXkodmFsdWUpIHx8IGlzQXJyYXlCdWZmZXIodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0VWludDhBcnJheSh2YWx1ZSkge1xuXHRpZiAoIWlzVWludDhBcnJheSh2YWx1ZSkpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcXGBVaW50OEFycmF5XFxgLCBnb3QgXFxgJHt0eXBlb2YgdmFsdWV9XFxgYCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFVpbnQ4QXJyYXlPckFycmF5QnVmZmVyKHZhbHVlKSB7XG5cdGlmICghaXNVaW50OEFycmF5T3JBcnJheUJ1ZmZlcih2YWx1ZSkpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcXGBVaW50OEFycmF5XFxgIG9yIFxcYEFycmF5QnVmZmVyXFxgLCBnb3QgXFxgJHt0eXBlb2YgdmFsdWV9XFxgYCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvVWludDhBcnJheSh2YWx1ZSkge1xuXHRpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuXHRcdHJldHVybiBuZXcgVWludDhBcnJheSh2YWx1ZSk7XG5cdH1cblxuXHRpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KHZhbHVlKSkge1xuXHRcdHJldHVybiBuZXcgVWludDhBcnJheSh2YWx1ZS5idWZmZXIsIHZhbHVlLmJ5dGVPZmZzZXQsIHZhbHVlLmJ5dGVMZW5ndGgpO1xuXHR9XG5cblx0dGhyb3cgbmV3IFR5cGVFcnJvcihgVW5zdXBwb3J0ZWQgdmFsdWUsIGdvdCBcXGAke3R5cGVvZiB2YWx1ZX1cXGAuYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25jYXRVaW50OEFycmF5cyhhcnJheXMsIHRvdGFsTGVuZ3RoKSB7XG5cdGlmIChhcnJheXMubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIG5ldyBVaW50OEFycmF5KDApO1xuXHR9XG5cblx0dG90YWxMZW5ndGggPz89IGFycmF5cy5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50VmFsdWUpID0+IGFjY3VtdWxhdG9yICsgY3VycmVudFZhbHVlLmxlbmd0aCwgMCk7XG5cblx0Y29uc3QgcmV0dXJuVmFsdWUgPSBuZXcgVWludDhBcnJheSh0b3RhbExlbmd0aCk7XG5cblx0bGV0IG9mZnNldCA9IDA7XG5cdGZvciAoY29uc3QgYXJyYXkgb2YgYXJyYXlzKSB7XG5cdFx0YXNzZXJ0VWludDhBcnJheShhcnJheSk7XG5cdFx0cmV0dXJuVmFsdWUuc2V0KGFycmF5LCBvZmZzZXQpO1xuXHRcdG9mZnNldCArPSBhcnJheS5sZW5ndGg7XG5cdH1cblxuXHRyZXR1cm4gcmV0dXJuVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcmVVaW50OEFycmF5c0VxdWFsKGEsIGIpIHtcblx0YXNzZXJ0VWludDhBcnJheShhKTtcblx0YXNzZXJ0VWludDhBcnJheShiKTtcblxuXHRpZiAoYSA9PT0gYikge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0aWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLWZvci1sb29wXG5cdGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBhLmxlbmd0aDsgaW5kZXgrKykge1xuXHRcdGlmIChhW2luZGV4XSAhPT0gYltpbmRleF0pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmVVaW50OEFycmF5cyhhLCBiKSB7XG5cdGFzc2VydFVpbnQ4QXJyYXkoYSk7XG5cdGFzc2VydFVpbnQ4QXJyYXkoYik7XG5cblx0Y29uc3QgbGVuZ3RoID0gTWF0aC5taW4oYS5sZW5ndGgsIGIubGVuZ3RoKTtcblxuXHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrKSB7XG5cdFx0Y29uc3QgZGlmZiA9IGFbaW5kZXhdIC0gYltpbmRleF07XG5cdFx0aWYgKGRpZmYgIT09IDApIHtcblx0XHRcdHJldHVybiBNYXRoLnNpZ24oZGlmZik7XG5cdFx0fVxuXHR9XG5cblx0Ly8gQXQgdGhpcyBwb2ludCwgYWxsIHRoZSBjb21wYXJlZCBlbGVtZW50cyBhcmUgZXF1YWwuXG5cdC8vIFRoZSBzaG9ydGVyIGFycmF5IHNob3VsZCBjb21lIGZpcnN0IGlmIHRoZSBhcnJheXMgYXJlIG9mIGRpZmZlcmVudCBsZW5ndGhzLlxuXHRyZXR1cm4gTWF0aC5zaWduKGEubGVuZ3RoIC0gYi5sZW5ndGgpO1xufVxuXG5jb25zdCBjYWNoZWREZWNvZGVycyA9IHtcblx0dXRmODogbmV3IGdsb2JhbFRoaXMuVGV4dERlY29kZXIoJ3V0ZjgnKSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB1aW50OEFycmF5VG9TdHJpbmcoYXJyYXksIGVuY29kaW5nID0gJ3V0ZjgnKSB7XG5cdGFzc2VydFVpbnQ4QXJyYXlPckFycmF5QnVmZmVyKGFycmF5KTtcblx0Y2FjaGVkRGVjb2RlcnNbZW5jb2RpbmddID8/PSBuZXcgZ2xvYmFsVGhpcy5UZXh0RGVjb2RlcihlbmNvZGluZyk7XG5cdHJldHVybiBjYWNoZWREZWNvZGVyc1tlbmNvZGluZ10uZGVjb2RlKGFycmF5KTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0U3RyaW5nKHZhbHVlKSB7XG5cdGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXFxgc3RyaW5nXFxgLCBnb3QgXFxgJHt0eXBlb2YgdmFsdWV9XFxgYCk7XG5cdH1cbn1cblxuY29uc3QgY2FjaGVkRW5jb2RlciA9IG5ldyBnbG9iYWxUaGlzLlRleHRFbmNvZGVyKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdUb1VpbnQ4QXJyYXkoc3RyaW5nKSB7XG5cdGFzc2VydFN0cmluZyhzdHJpbmcpO1xuXHRyZXR1cm4gY2FjaGVkRW5jb2Rlci5lbmNvZGUoc3RyaW5nKTtcbn1cblxuZnVuY3Rpb24gYmFzZTY0VG9CYXNlNjRVcmwoYmFzZTY0KSB7XG5cdHJldHVybiBiYXNlNjQucmVwbGFjZUFsbCgnKycsICctJykucmVwbGFjZUFsbCgnLycsICdfJykucmVwbGFjZSgvPSskLywgJycpO1xufVxuXG5mdW5jdGlvbiBiYXNlNjRVcmxUb0Jhc2U2NChiYXNlNjR1cmwpIHtcblx0Y29uc3QgYmFzZTY0ID0gYmFzZTY0dXJsLnJlcGxhY2VBbGwoJy0nLCAnKycpLnJlcGxhY2VBbGwoJ18nLCAnLycpO1xuXHRjb25zdCBwYWRkaW5nID0gKDQgLSAoYmFzZTY0Lmxlbmd0aCAlIDQpKSAlIDQ7XG5cdHJldHVybiBiYXNlNjQgKyAnPScucmVwZWF0KHBhZGRpbmcpO1xufVxuXG4vLyBSZWZlcmVuY2U6IGh0dHBzOi8vcGh1b2MubmcvY29sbGVjdGlvbi90aGlzLXZzLXRoYXQvY29uY2F0LXZzLXB1c2gvXG4vLyBJbXBvcnRhbnQ6IEtlZXAgdGhpcyB2YWx1ZSBkaXZpc2libGUgYnkgMyBzbyBpbnRlcm1lZGlhdGUgY2h1bmtzIHByb2R1Y2Ugbm8gQmFzZTY0IHBhZGRpbmcuXG5jb25zdCBNQVhfQkxPQ0tfU0laRSA9IDY1XzUzNTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVpbnQ4QXJyYXlUb0Jhc2U2NChhcnJheSwge3VybFNhZmUgPSBmYWxzZX0gPSB7fSkge1xuXHRhc3NlcnRVaW50OEFycmF5KGFycmF5KTtcblxuXHRsZXQgYmFzZTY0ID0gJyc7XG5cblx0Zm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXggKz0gTUFYX0JMT0NLX1NJWkUpIHtcblx0XHRjb25zdCBjaHVuayA9IGFycmF5LnN1YmFycmF5KGluZGV4LCBpbmRleCArIE1BWF9CTE9DS19TSVpFKTtcblx0XHQvLyBSZXF1aXJlZCBhcyBgYnRvYWAgYW5kIGBhdG9iYCBkb24ndCBwcm9wZXJseSBzdXBwb3J0IFVuaWNvZGU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvR2xvc3NhcnkvQmFzZTY0I3RoZV91bmljb2RlX3Byb2JsZW1cblx0XHRiYXNlNjQgKz0gZ2xvYmFsVGhpcy5idG9hKFN0cmluZy5mcm9tQ29kZVBvaW50LmFwcGx5KHVuZGVmaW5lZCwgY2h1bmspKTtcblx0fVxuXG5cdHJldHVybiB1cmxTYWZlID8gYmFzZTY0VG9CYXNlNjRVcmwoYmFzZTY0KSA6IGJhc2U2NDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhc2U2NFRvVWludDhBcnJheShiYXNlNjRTdHJpbmcpIHtcblx0YXNzZXJ0U3RyaW5nKGJhc2U2NFN0cmluZyk7XG5cdHJldHVybiBVaW50OEFycmF5LmZyb20oZ2xvYmFsVGhpcy5hdG9iKGJhc2U2NFVybFRvQmFzZTY0KGJhc2U2NFN0cmluZykpLCB4ID0+IHguY29kZVBvaW50QXQoMCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9CYXNlNjQoc3RyaW5nLCB7dXJsU2FmZSA9IGZhbHNlfSA9IHt9KSB7XG5cdGFzc2VydFN0cmluZyhzdHJpbmcpO1xuXHRyZXR1cm4gdWludDhBcnJheVRvQmFzZTY0KHN0cmluZ1RvVWludDhBcnJheShzdHJpbmcpLCB7dXJsU2FmZX0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFzZTY0VG9TdHJpbmcoYmFzZTY0U3RyaW5nKSB7XG5cdGFzc2VydFN0cmluZyhiYXNlNjRTdHJpbmcpO1xuXHRyZXR1cm4gdWludDhBcnJheVRvU3RyaW5nKGJhc2U2NFRvVWludDhBcnJheShiYXNlNjRTdHJpbmcpKTtcbn1cblxuY29uc3QgYnl0ZVRvSGV4TG9va3VwVGFibGUgPSBBcnJheS5mcm9tKHtsZW5ndGg6IDI1Nn0sIChfLCBpbmRleCkgPT4gaW5kZXgudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykpO1xuXG5leHBvcnQgZnVuY3Rpb24gdWludDhBcnJheVRvSGV4KGFycmF5KSB7XG5cdGFzc2VydFVpbnQ4QXJyYXkoYXJyYXkpO1xuXG5cdC8vIENvbmNhdGVuYXRpbmcgYSBzdHJpbmcgaXMgZmFzdGVyIHRoYW4gdXNpbmcgYW4gYXJyYXkuXG5cdGxldCBoZXhTdHJpbmcgPSAnJztcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby1mb3ItbG9vcCAtLSBNYXggcGVyZm9ybWFuY2UgaXMgY3JpdGljYWwuXG5cdGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBhcnJheS5sZW5ndGg7IGluZGV4KyspIHtcblx0XHRoZXhTdHJpbmcgKz0gYnl0ZVRvSGV4TG9va3VwVGFibGVbYXJyYXlbaW5kZXhdXTtcblx0fVxuXG5cdHJldHVybiBoZXhTdHJpbmc7XG59XG5cbmNvbnN0IGhleFRvRGVjaW1hbExvb2t1cFRhYmxlID0ge1xuXHQwOiAwLFxuXHQxOiAxLFxuXHQyOiAyLFxuXHQzOiAzLFxuXHQ0OiA0LFxuXHQ1OiA1LFxuXHQ2OiA2LFxuXHQ3OiA3LFxuXHQ4OiA4LFxuXHQ5OiA5LFxuXHRhOiAxMCxcblx0YjogMTEsXG5cdGM6IDEyLFxuXHRkOiAxMyxcblx0ZTogMTQsXG5cdGY6IDE1LFxuXHRBOiAxMCxcblx0QjogMTEsXG5cdEM6IDEyLFxuXHREOiAxMyxcblx0RTogMTQsXG5cdEY6IDE1LFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhleFRvVWludDhBcnJheShoZXhTdHJpbmcpIHtcblx0YXNzZXJ0U3RyaW5nKGhleFN0cmluZyk7XG5cblx0aWYgKGhleFN0cmluZy5sZW5ndGggJSAyICE9PSAwKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEhleCBzdHJpbmcgbGVuZ3RoLicpO1xuXHR9XG5cblx0Y29uc3QgcmVzdWx0TGVuZ3RoID0gaGV4U3RyaW5nLmxlbmd0aCAvIDI7XG5cdGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkocmVzdWx0TGVuZ3RoKTtcblxuXHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcmVzdWx0TGVuZ3RoOyBpbmRleCsrKSB7XG5cdFx0Y29uc3QgaGlnaE5pYmJsZSA9IGhleFRvRGVjaW1hbExvb2t1cFRhYmxlW2hleFN0cmluZ1tpbmRleCAqIDJdXTtcblx0XHRjb25zdCBsb3dOaWJibGUgPSBoZXhUb0RlY2ltYWxMb29rdXBUYWJsZVtoZXhTdHJpbmdbKGluZGV4ICogMikgKyAxXV07XG5cblx0XHRpZiAoaGlnaE5pYmJsZSA9PT0gdW5kZWZpbmVkIHx8IGxvd05pYmJsZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSGV4IGNoYXJhY3RlciBlbmNvdW50ZXJlZCBhdCBwb3NpdGlvbiAke2luZGV4ICogMn1gKTtcblx0XHR9XG5cblx0XHRieXRlc1tpbmRleF0gPSAoaGlnaE5pYmJsZSA8PCA0KSB8IGxvd05pYmJsZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1iaXR3aXNlXG5cdH1cblxuXHRyZXR1cm4gYnl0ZXM7XG59XG5cbi8qKlxuQHBhcmFtIHtEYXRhVmlld30gdmlld1xuQHJldHVybnMge251bWJlcn1cbiovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VWludEJFKHZpZXcpIHtcblx0Y29uc3Qge2J5dGVMZW5ndGh9ID0gdmlldztcblxuXHRpZiAoYnl0ZUxlbmd0aCA9PT0gNikge1xuXHRcdHJldHVybiAodmlldy5nZXRVaW50MTYoMCkgKiAoMiAqKiAzMikpICsgdmlldy5nZXRVaW50MzIoMik7XG5cdH1cblxuXHRpZiAoYnl0ZUxlbmd0aCA9PT0gNSkge1xuXHRcdHJldHVybiAodmlldy5nZXRVaW50OCgwKSAqICgyICoqIDMyKSkgKyB2aWV3LmdldFVpbnQzMigxKTtcblx0fVxuXG5cdGlmIChieXRlTGVuZ3RoID09PSA0KSB7XG5cdFx0cmV0dXJuIHZpZXcuZ2V0VWludDMyKDApO1xuXHR9XG5cblx0aWYgKGJ5dGVMZW5ndGggPT09IDMpIHtcblx0XHRyZXR1cm4gKHZpZXcuZ2V0VWludDgoMCkgKiAoMiAqKiAxNikpICsgdmlldy5nZXRVaW50MTYoMSk7XG5cdH1cblxuXHRpZiAoYnl0ZUxlbmd0aCA9PT0gMikge1xuXHRcdHJldHVybiB2aWV3LmdldFVpbnQxNigwKTtcblx0fVxuXG5cdGlmIChieXRlTGVuZ3RoID09PSAxKSB7XG5cdFx0cmV0dXJuIHZpZXcuZ2V0VWludDgoMCk7XG5cdH1cbn1cblxuLyoqXG5AcGFyYW0ge1VpbnQ4QXJyYXl9IGFycmF5XG5AcGFyYW0ge1VpbnQ4QXJyYXl9IHZhbHVlXG5AcmV0dXJucyB7bnVtYmVyfVxuKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuXHRjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblx0Y29uc3QgdmFsdWVMZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG5cblx0aWYgKHZhbHVlTGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIC0xO1xuXHR9XG5cblx0aWYgKHZhbHVlTGVuZ3RoID4gYXJyYXlMZW5ndGgpIHtcblx0XHRyZXR1cm4gLTE7XG5cdH1cblxuXHRjb25zdCB2YWxpZE9mZnNldExlbmd0aCA9IGFycmF5TGVuZ3RoIC0gdmFsdWVMZW5ndGg7XG5cblx0Zm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8PSB2YWxpZE9mZnNldExlbmd0aDsgaW5kZXgrKykge1xuXHRcdGxldCBpc01hdGNoID0gdHJ1ZTtcblx0XHRmb3IgKGxldCBpbmRleDIgPSAwOyBpbmRleDIgPCB2YWx1ZUxlbmd0aDsgaW5kZXgyKyspIHtcblx0XHRcdGlmIChhcnJheVtpbmRleCArIGluZGV4Ml0gIT09IHZhbHVlW2luZGV4Ml0pIHtcblx0XHRcdFx0aXNNYXRjaCA9IGZhbHNlO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoaXNNYXRjaCkge1xuXHRcdFx0cmV0dXJuIGluZGV4O1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiAtMTtcbn1cblxuLyoqXG5AcGFyYW0ge1VpbnQ4QXJyYXl9IGFycmF5XG5AcGFyYW0ge1VpbnQ4QXJyYXl9IHZhbHVlXG5AcmV0dXJucyB7Ym9vbGVhbn1cbiovXG5leHBvcnQgZnVuY3Rpb24gaW5jbHVkZXMoYXJyYXksIHZhbHVlKSB7XG5cdHJldHVybiBpbmRleE9mKGFycmF5LCB2YWx1ZSkgIT09IC0xO1xufVxuIiwgImltcG9ydCAqIGFzIHVJbnQ4QXJyYXlFeHRyYXMgZnJvbSAndWludDhhcnJheS1leHRyYXMnO1xuXG5leHBvcnQge1xuICB1SW50OEFycmF5RXh0cmFzLFxufSIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vc21hcnRidWZmZXIucGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBjb25zdCB1SW50OEFycmF5RXh0cmFzID0gcGx1Z2lucy51SW50OEFycmF5RXh0cmFzO1xuXG5leHBvcnQgZnVuY3Rpb24gdUludDhBcnJheVRvQmFzZTY0KHVJbnQ4QXJyYXk6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICByZXR1cm4gcGx1Z2lucy51SW50OEFycmF5RXh0cmFzLnVpbnQ4QXJyYXlUb0Jhc2U2NCh1SW50OEFycmF5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhc2U2NFRvVWludDhBcnJheShiYXNlNjQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICByZXR1cm4gcGx1Z2lucy51SW50OEFycmF5RXh0cmFzLmJhc2U2NFRvVWludDhBcnJheShiYXNlNjQpO1xufVxuXG5leHBvcnQgY29uc3QgaXNVaW50OEFycmF5ID0gKG9iajogYW55KTogb2JqIGlzIFVpbnQ4QXJyYXkgPT4ge1xuICByZXR1cm4gcGx1Z2lucy51SW50OEFycmF5RXh0cmFzLmlzVWludDhBcnJheShvYmopO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVmZmVyTGlrZShvYmo6IGFueSk6IG9iaiBpcyBBcnJheUJ1ZmZlckxpa2UgfCBCdWZmZXIge1xuICAvLyBDaGVjayBmb3IgQXJyYXlCdWZmZXJMaWtlIG9iamVjdHMgaW4gYW55IGVudmlyb25tZW50XG4gIGlmIChvYmogJiYgdHlwZW9mIG9iai5ieXRlTGVuZ3RoID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gQWRkaXRpb25hbCBjaGVjayBzcGVjaWZpYyB0byBOb2RlLmpzIGVudmlyb25tZW50IGZvciBCdWZmZXIgb2JqZWN0c1xuICBpZiAodHlwZW9mIEJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgQnVmZmVyLmlzQnVmZmVyKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihvYmopO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlUHVyZVVpbnQ4QXJyYXkoYnVmZmVyQXJnOiBVaW50OEFycmF5IHwgQnVmZmVyKTogVWludDhBcnJheSB7XG4gIC8vIENyZWF0ZSBhIG5ldyBVaW50OEFycmF5IHdpdGggdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBidWZmZXJcbiAgY29uc3QgdWludDhBcnJheTogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlckFyZy5sZW5ndGgpO1xuXG4gIC8vIENvcHkgdGhlIGNvbnRlbnRzIG9mIHRoZSBCdWZmZXIgdG8gdGhlIG5ldyBVaW50OEFycmF5XG4gIHVpbnQ4QXJyYXkuc2V0KGJ1ZmZlckFyZyk7XG4gIHJldHVybiB1aW50OEFycmF5O1xufVxuIiwgIi8vIEBwdXNoLnJvY2tzIHNjb3BlXG5pbXBvcnQgKiBhcyBzbWFydHByb21pc2UgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlJztcblxuLy8gcHVzaHJvY2tzIHNjb3BlXG5leHBvcnQgeyBzbWFydHByb21pc2UgfTtcblxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydGd1YXJkLnBsdWdpbnMuanMnO1xuXG5leHBvcnQgdHlwZSBUR3VhcmRGdW5jdGlvbjxUPiA9IChkYXRhQXJnOiBUKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIElHdWFyZE9wdGlvbnMge1xuICBuYW1lPzogc3RyaW5nO1xuICBmYWlsZWRIaW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgR3VhcmQ8VD4ge1xuICBwcml2YXRlIGd1YXJkRnVuY3Rpb246IFRHdWFyZEZ1bmN0aW9uPFQ+O1xuICBwdWJsaWMgb3B0aW9uczogSUd1YXJkT3B0aW9ucztcbiAgY29uc3RydWN0b3IoZ3VhcmRGdW5jdGlvbkFyZzogVEd1YXJkRnVuY3Rpb248VD4sIG9wdGlvbnNBcmc/OiBJR3VhcmRPcHRpb25zKSB7XG4gICAgdGhpcy5ndWFyZEZ1bmN0aW9uID0gZ3VhcmRGdW5jdGlvbkFyZztcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zQXJnO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4ZWN1dGVzIHRoZSBndWFyZCBhZ2FpbnN0IGEgZGF0YSBhcmd1bWVudDtcbiAgICogQHBhcmFtIGRhdGFBcmdcbiAgICovXG4gIHB1YmxpYyBhc3luYyBleGVjKGRhdGFBcmc6IFQpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmd1YXJkRnVuY3Rpb24oZGF0YUFyZyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRGYWlsZWRIaW50KGRhdGFBcmc6IFQpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWMoZGF0YUFyZyk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZmFpbGVkSGludDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0Z3VhcmQucGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBHdWFyZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnR3VhcmRFcnJvcic7XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vc21hcnRndWFyZC5wbHVnaW5zLmpzJztcbmltcG9ydCB7IEd1YXJkLCB0eXBlIFRHdWFyZEZ1bmN0aW9uIH0gZnJvbSAnLi9jbGFzc2VzLmd1YXJkLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJRXhlY09wdGlvbnMge1xuICBtb2RlPzogJ3BhcmFsbGVsJyB8ICdzZXJpYWwnO1xuICBzdG9wT25GYWlsPzogYm9vbGVhbjtcbn0gXG5cbi8qKlxuICogRXh0ZW5kZWQgR3VhcmRTZXQgdGhhdCBpbmhlcml0cyBmcm9tIEd1YXJkXG4gKiBhbmQgcHJvdmlkZXMgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXRpZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBHdWFyZFNldDxUPiBleHRlbmRzIEd1YXJkPFQ+IHtcbiAgcHVibGljIGd1YXJkczogQXJyYXk8R3VhcmQ8VD4+O1xuXG4gIGNvbnN0cnVjdG9yKGd1YXJkQXJyYXk6IEFycmF5PEd1YXJkPFQ+PiA9IFtdKSB7XG4gICAgc3VwZXIoYXN5bmMgKGRhdGFBcmc6IFQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmFsbEd1YXJkc1Bhc3MoZGF0YUFyZyk7XG4gICAgfSlcbiAgICB0aGlzLmd1YXJkcyA9IGd1YXJkQXJyYXk7XG4gIH1cblxuICAvKipcbiAgICogZXhlY3V0ZXMgYWxsIGd1YXJkcyBpbiBhbGwgZ3VhcmRTZXRzIGFnYWluc3QgYSBkYXRhIGFyZ3VtZW50XG4gICAqIEBwYXJhbSBkYXRhQXJnXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXhlY0FsbFdpdGhEYXRhKGRhdGFBcmc6IFQsIG9wdGlvbnNBcmc6IElFeGVjT3B0aW9ucyA9IHtcbiAgICBtb2RlOiAncGFyYWxsZWwnLFxuICAgIHN0b3BPbkZhaWw6IGZhbHNlXG4gIH0pOiBQcm9taXNlPGJvb2xlYW5bXT4ge1xuICAgIGNvbnN0IHJlc3VsdFByb21pc2VzOiBBcnJheTxQcm9taXNlPGJvb2xlYW4+PiA9IFtdO1xuICAgIFxuICAgIGZvciAoY29uc3QgZ3VhcmQgb2YgdGhpcy5ndWFyZHMpIHtcbiAgICAgIGNvbnN0IGd1YXJkUmVzdWx0UHJvbWlzZSA9IGd1YXJkLmV4ZWMoZGF0YUFyZyk7XG4gICAgICBpZiAob3B0aW9uc0FyZy5tb2RlID09PSAnc2VyaWFsJykge1xuICAgICAgICBhd2FpdCBndWFyZFJlc3VsdFByb21pc2U7XG4gICAgICB9XG4gICAgICByZXN1bHRQcm9taXNlcy5wdXNoKGd1YXJkUmVzdWx0UHJvbWlzZSk7XG4gICAgICBpZiAob3B0aW9uc0FyZy5zdG9wT25GYWlsKSB7XG4gICAgICAgIGlmICghYXdhaXQgZ3VhcmRSZXN1bHRQcm9taXNlKSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHJlc3VsdFByb21pc2VzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChyZXN1bHRQcm9taXNlcyk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICAvKipcbiAgICogY2hlY2tzIGlmIGFsbCBndWFyZHMgcGFzc1xuICAgKiBAcGFyYW0gZGF0YUFyZ1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGFsbEd1YXJkc1Bhc3MoZGF0YUFyZzogVCwgb3B0aW9uc0FyZzogSUV4ZWNPcHRpb25zID0ge1xuICAgIG1vZGU6ICdwYXJhbGxlbCcsXG4gICAgc3RvcE9uRmFpbDogZmFsc2VcbiAgfSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmV4ZWNBbGxXaXRoRGF0YShkYXRhQXJnLCBvcHRpb25zQXJnKTtcbiAgICByZXR1cm4gcmVzdWx0cy5ldmVyeShyZXN1bHQgPT4gcmVzdWx0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVja3MgaWYgYW55IGd1YXJkIHBhc3Nlc1xuICAgKiBAcGFyYW0gZGF0YUFyZ1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGFueUd1YXJkc1Bhc3MoZGF0YUFyZzogVCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmV4ZWNBbGxXaXRoRGF0YShkYXRhQXJnLCB7XG4gICAgICBtb2RlOiAncGFyYWxsZWwnLFxuICAgICAgc3RvcE9uRmFpbDogZmFsc2VcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0cy5zb21lKHJlc3VsdCA9PiByZXN1bHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybnMgdGhlIGZpcnN0IHJlYXNvbiBmb3Igd2h5IHNvbWV0aGluZyBmYWlsc1xuICAgKiBAcGFyYW0gZGF0YUFyZ1xuICAgKiBAcmV0dXJucyBcbiAgICovXG4gIHB1YmxpYyBnZXRGYWlsZWRIaW50IChkYXRhQXJnOiBUKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBmb3IgKGNvbnN0IGd1YXJkIG9mIHRoaXMuZ3VhcmRzKSB7XG4gICAgICBjb25zdCBmYWlsZWRIaW50ID0gZ3VhcmQuZ2V0RmFpbGVkSGludChkYXRhQXJnKTtcbiAgICAgIGlmIChmYWlsZWRIaW50KSB7XG4gICAgICAgIHJldHVybiBmYWlsZWRIaW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydGd1YXJkLnBsdWdpbnMuanMnO1xuaW1wb3J0IHsgR3VhcmQgfSBmcm9tICcuL2NsYXNzZXMuZ3VhcmQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzLmd1YXJkZXJyb3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzLmd1YXJkLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy5ndWFyZHNldC5qcyc7XG5cbmltcG9ydCB7IEd1YXJkU2V0IH0gZnJvbSAnLi9jbGFzc2VzLmd1YXJkc2V0LmpzJztcbmltcG9ydCB7IEd1YXJkRXJyb3IgfSBmcm9tICcuL2NsYXNzZXMuZ3VhcmRlcnJvci5qcyc7XG5leHBvcnQgY29uc3QgcGFzc0d1YXJkc09yUmVqZWN0ID0gYXN5bmMgPFQ+KGRhdGFBcmc6IFQsIGd1YXJkczogQXJyYXk8R3VhcmQ8VD4+KSA9PiB7XG4gIGNvbnN0IGd1YXJkU2V0ID0gbmV3IEd1YXJkU2V0PFQ+KGd1YXJkcyk7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGd1YXJkU2V0LmFsbEd1YXJkc1Bhc3MoZGF0YUFyZyk7XG4gIGlmICghcmVzdWx0KSB7XG4gICAgY29uc3QgZmFpbGVkSGludCA9IGF3YWl0IGd1YXJkU2V0LmdldEZhaWxlZEhpbnQoZGF0YUFyZyk7XG4gICAgdGhyb3cgbmV3IEd1YXJkRXJyb3IoYEd1YXJkcyBmYWlsZWQ6XG4ke2ZhaWxlZEhpbnR9XG4gICAgYCk7XG4gIH1cbiAgcmV0dXJuIDtcbn07XG4iLCAiaW1wb3J0ICogYXMgc21hcnRwcm9taXNlIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSc7XG5cbmV4cG9ydCB7IHNtYXJ0cHJvbWlzZSB9O1xuIiwgImV4cG9ydCBsZXQgZGVmYXVsdG1lID0gbnVsbDtcbmRlY2xhcmUgZ2xvYmFsIHtcbiAgbmFtZXNwYWNlIE5vZGVKUyB7XG4gICAgaW50ZXJmYWNlIEdsb2JhbCB7XG4gICAgICB3aW5kb3c6IGFueTtcbiAgICAgIG5hdmlnYXRvcjogYW55O1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydGVudi5wbHVnaW5zLmpzJztcbmltcG9ydCAqIGFzIGludGVyZmFjZXMgZnJvbSAnLi9pbnRlcmZhY2VzL2luZGV4LmpzJztcblxuLy8gaW50ZXJmYWNlc1xuZXhwb3J0IGludGVyZmFjZSBJRW52T2JqZWN0IHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNtYXJ0ZW52IGNsYXNzIHRoYXQgbWFrZXMgaXQgZWFzeVxuICovXG5leHBvcnQgY2xhc3MgU21hcnRlbnYge1xuICBwdWJsaWMgYXN5bmMgZ2V0RW52QXdhcmVNb2R1bGUob3B0aW9uc0FyZzoge1xuICAgIG5vZGVNb2R1bGVOYW1lOiBzdHJpbmc7XG4gICAgd2ViVXJsQXJnOiBzdHJpbmc7XG4gICAgZ2V0RnVuY3Rpb246ICgpID0+IGFueTtcbiAgfSkge1xuICAgIGlmICh0aGlzLmlzTm9kZSkge1xuICAgICAgY29uc3QgbW9kdWxlUmVzdWx0ID0gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShvcHRpb25zQXJnLm5vZGVNb2R1bGVOYW1lKTtcbiAgICAgIHJldHVybiBtb2R1bGVSZXN1bHQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgY29uc3QgbW9kdWxlUmVzdWx0ID0gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKFxuICAgICAgICBvcHRpb25zQXJnLndlYlVybEFyZyxcbiAgICAgICAgb3B0aW9uc0FyZy5nZXRGdW5jdGlvblxuICAgICAgKTtcbiAgICAgIHJldHVybiBtb2R1bGVSZXN1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ3BsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0U2FmZU5vZGVNb2R1bGU8VCA9IGFueT4obW9kdWxlTmFtZUFyZzogc3RyaW5nLCBydW5BZnRlckZ1bmM/OiAobW9kdWxlQXJnOiBUKSA9PiBQcm9taXNlPGFueT4pOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAoIXRoaXMuaXNOb2RlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBZb3UgdHJpZWQgdG8gbG9hZCBhIG5vZGUgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dDogJHttb2R1bGVOYW1lQXJnfS4gVGhpcyBkb2VzIG5vdCB0aHJvdy5gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBmdW5jdGlvbi1jb25zdHJ1Y3RvclxuICAgIGNvbnN0IHJldHVyblZhbHVlOiBUID0gYXdhaXQgKG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHttb2R1bGVOYW1lQXJnfScpYCkoKSBhcyBQcm9taXNlPFQ+KTtcbiAgICBpZiAocnVuQWZ0ZXJGdW5jKSB7XG4gICAgICBhd2FpdCBydW5BZnRlckZ1bmMocmV0dXJuVmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0dXJuVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbG9hZGVkU2NyaXB0czogc3RyaW5nW10gPSBbXTtcbiAgcHVibGljIGFzeW5jIGdldFNhZmVXZWJNb2R1bGUodXJsQXJnOiBzdHJpbmcsIGdldEZ1bmN0aW9uQXJnOiAoKSA9PiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyh1cmxBcmcpKSB7XG4gICAgICByZXR1cm4gZ2V0RnVuY3Rpb25BcmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkZWRTY3JpcHRzLnB1c2godXJsQXJnKTtcbiAgICB9XG5cbiAgICBjb25zdCBkb25lID0gcGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtcbiAgICBpZiAoZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKSB7XG4gICAgICBnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHModXJsQXJnKTtcbiAgICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgICAgfTtcbiAgICAgIHNjcmlwdC5zcmMgPSB1cmxBcmc7XG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfVxuICAgIGF3YWl0IGRvbmUucHJvbWlzZTtcbiAgICByZXR1cm4gZ2V0RnVuY3Rpb25BcmcoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcnVudGltZUVudigpIHtcbiAgICBpZiAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gJ25vZGUnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2Jyb3dzZXInO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNCcm93c2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc05vZGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHVzZXJBZ2VudCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgLy8gbWFrZSBzdXJlIHdlIGFyZSBpbiBCcm93c2VyXG4gICAgICByZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNOb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJ1bnRpbWVFbnYgPT09ICdub2RlJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbm9kZVZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcHJvY2Vzcy52ZXJzaW9uO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0NJKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzTm9kZSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52LkNJKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGlzTWFjQXN5bmMoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuaXNOb2RlKSB7XG4gICAgICBjb25zdCBvcyA9IGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoJ29zJyk7XG4gICAgICByZXR1cm4gb3MucGxhdGZvcm0oKSA9PT0gJ2Rhcndpbic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaXNXaW5kb3dzQXN5bmMoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuaXNOb2RlKSB7XG4gICAgICBjb25zdCBvcyA9IGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoJ29zJyk7XG4gICAgICByZXR1cm4gb3MucGxhdGZvcm0oKSA9PT0gJ3dpbjMyJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpc0xpbnV4QXN5bmMoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuaXNOb2RlKSB7XG4gICAgICBjb25zdCBvcyA9IGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoJ29zJyk7XG4gICAgICByZXR1cm4gb3MucGxhdGZvcm0oKSA9PT0gJ2xpbnV4JztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBwcmludHMgdGhlIGVudmlyb25tZW50IHRvIGNvbnNvbGVcbiAgICovXG4gIHB1YmxpYyBhc3luYyBwcmludEVudigpIHtcbiAgICBpZiAodGhpcy5pc05vZGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdydW5uaW5nIG9uIE5PREUnKTtcbiAgICAgIGNvbnNvbGUubG9nKCdub2RlIHZlcnNpb24gaXMgJyArIHRoaXMubm9kZVZlcnNpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygncnVubmluZyBvbiBCUk9XU0VSJyk7XG4gICAgICBjb25zb2xlLmxvZygnYnJvd3NlciBpcyAnICsgdGhpcy51c2VyQWdlbnQpO1xuICAgIH1cbiAgfVxufVxuIiwgImV4cG9ydCAqIGZyb20gJy4vc21hcnRlbnYuY2xhc3Nlcy5zbWFydGVudi5qcyc7XG4iLCAiLy8gQHB1c2gucm9ja3MgZWNvc3lzdGVtXG5pbXBvcnQgKiBhcyBpc291bmlxdWUgZnJvbSAnQHB1c2gucm9ja3MvaXNvdW5pcXVlJztcblxuZXhwb3J0IHsgaXNvdW5pcXVlIH07XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0c3RyaW5nLnBsdWdpbnMuanMnO1xuXG4vKipcbiAqIENyb3NzLXBsYXRmb3JtIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yXG4gKiBVc2VzIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMgaW4gYnJvd3NlciBhbmQgTWF0aC5yYW5kb20gYXMgZmFsbGJhY2tcbiAqL1xuY29uc3QgZ2V0UmFuZG9tSW50ID0gKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciA9PiB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2xvYmFsVGhpcy5jcnlwdG8gJiYgZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKSB7XG4gICAgLy8gQnJvd3NlciBlbnZpcm9ubWVudCB3aXRoIGNyeXB0byBBUElcbiAgICBjb25zdCByYW5nZSA9IG1heCAtIG1pbjtcbiAgICBjb25zdCBhcnJheSA9IG5ldyBVaW50MzJBcnJheSgxKTtcbiAgICBnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYXJyYXkpO1xuICAgIHJldHVybiBtaW4gKyAoYXJyYXlbMF0gJSByYW5nZSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gRmFsbGJhY2sgdG8gTWF0aC5yYW5kb20gZm9yIGVudmlyb25tZW50cyB3aXRob3V0IGNyeXB0b1xuICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSkgKyBtaW47XG4gIH1cbn07XG5cbi8qKlxuICogQ3VzdG9tIGltcGxlbWVudGF0aW9uIG9mIHJhbmRvbWF0aWMgcGF0dGVybi1iYXNlZCBzdHJpbmcgZ2VuZXJhdG9yXG4gKiBQYXR0ZXJuIGNoYXJhY3RlcnM6XG4gKiBBIC0gVXBwZXJjYXNlIGxldHRlclxuICogYSAtIExvd2VyY2FzZSBsZXR0ZXIgIFxuICogMCAtIE51bWJlciAoMC05KVxuICogISAtIFNwZWNpYWwgY2hhcmFjdGVyXG4gKiAqIC0gQW55IGNoYXJhY3RlciAoQSwgYSwgMCwgb3IgISlcbiAqL1xuY29uc3QgY3VzdG9tUmFuZG9tYXRpYyA9IChwYXR0ZXJuOiBzdHJpbmcsIGxlbmd0aD86IG51bWJlciwgb3B0aW9ucz86IGFueSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGNoYXJTZXRzID0ge1xuICAgICdBJzogJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyxcbiAgICAnYSc6ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicsXG4gICAgJzAnOiAnMDEyMzQ1Njc4OScsXG4gICAgJyEnOiAnIUAjJCVeJiooKV8rLT1bXXt9fDs6LC48Pj8nLFxuICAgICcqJzogJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IUAjJCVeJiooKV8rLT1bXXt9fDs6LC48Pj8nXG4gIH07XG5cbiAgLy8gSWYgbGVuZ3RoIGlzIHByb3ZpZGVkLCByZXBlYXQgdGhlIHBhdHRlcm4gdG8gbWF0Y2ggbGVuZ3RoXG4gIGxldCBhY3R1YWxQYXR0ZXJuID0gcGF0dGVybjtcbiAgaWYgKGxlbmd0aCAmJiBsZW5ndGggPiBwYXR0ZXJuLmxlbmd0aCkge1xuICAgIGFjdHVhbFBhdHRlcm4gPSBwYXR0ZXJuLnJlcGVhdChNYXRoLmNlaWwobGVuZ3RoIC8gcGF0dGVybi5sZW5ndGgpKS5zbGljZSgwLCBsZW5ndGgpO1xuICB9IGVsc2UgaWYgKGxlbmd0aCkge1xuICAgIGFjdHVhbFBhdHRlcm4gPSBwYXR0ZXJuLnNsaWNlKDAsIGxlbmd0aCk7XG4gIH1cblxuICBsZXQgcmVzdWx0ID0gJyc7XG4gIGZvciAoY29uc3QgY2hhciBvZiBhY3R1YWxQYXR0ZXJuKSB7XG4gICAgaWYgKGNoYXJTZXRzW2NoYXJdKSB7XG4gICAgICBjb25zdCBjaGFyU2V0ID0gY2hhclNldHNbY2hhcl07XG4gICAgICBjb25zdCByYW5kb21JbmRleCA9IGdldFJhbmRvbUludCgwLCBjaGFyU2V0Lmxlbmd0aCk7XG4gICAgICByZXN1bHQgKz0gY2hhclNldFtyYW5kb21JbmRleF07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIG5vdCBhIHBhdHRlcm4gY2hhcmFjdGVyLCB1c2UgaXQgbGl0ZXJhbGx5XG4gICAgICByZXN1bHQgKz0gY2hhcjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBjcmVhdGVzIGEgcmFuZG9tIHN0cmluZ1xuICpcbiAqIGBgYHRzXG4gKiBjcmVhdGVSYW5kb21TdHJpbmcoJ0FBQUEnKVxuICogLy89PiAnQUdIUidcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBwYXR0ZXJuQXJnIHRoZSBwYXR0ZXJuIGFyZ3VtZW50IHRvIHVzZSwgQWEwISogYXJlIHZpYWJsZSBwYXR0ZXJuIGRlc2NyaXRvcnNcbiAqIEBwYXJhbSBsZW5ndGhBcmcgIHRoZSBsZW5ndGggb2YgdGhlIHJhbmRvbSBzdHJpbmdcbiAqIEBwYXJhbSBvcHRpb25zQXJnIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVJhbmRvbVN0cmluZyA9IChcbiAgcGF0dGVybkFyZzogc3RyaW5nLFxuICBsZW5ndGhBcmc/OiBudW1iZXIsXG4gIG9wdGlvbnNBcmc/OiBhbnlcbik6IHN0cmluZyA9PiB7XG4gIHJldHVybiBjdXN0b21SYW5kb21hdGljKHBhdHRlcm5BcmcsIGxlbmd0aEFyZywgb3B0aW9uc0FyZyk7XG59O1xuXG4vKipcbiAqIGNyZWF0ZXMgYSBjcnl0aWMgc3RyaW5nIGluIHRoZSBzcGVpY2lmZWQgbGVuZ3RoXG4gKiBAcGFyYW0gbGVuZ3RoQXJnIHRoZSBsZW5ndGggb2YgdGhlIGNyeXB0byBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZyA9ICgpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gcGx1Z2lucy5pc291bmlxdWUudW5pKCk7XG59O1xuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydHN0cmluZy5wbHVnaW5zLmpzJztcblxuLyoqXG4gKiBjb252ZXJ0cyBhbiBlcnJheSBvZiBlbnYgc3RyaW5ncyBmcm9tIGRvY2tlciByZW1vdGUgYXBpIHRvIGFuIHVzYWJsZSBvYmplY3QuXG4gKiBAcGFyYW0gZW52QXJyYXlBcmdcbiAqIEByZXR1cm5zIHt9XG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlRW52T2JqZWN0ID0gZnVuY3Rpb24gKGVudkFycmF5QXJnOiBzdHJpbmdbXSkge1xuICBsZXQgcmV0dXJuT2JqZWN0ID0ge307XG4gIGxldCByZWdleFN0cmluZyA9IC8oLiopPSguKikvO1xuICBpZiAodHlwZW9mIGVudkFycmF5QXJnICE9PSAndW5kZWZpbmVkJykge1xuICAgIGZvciAobGV0IGVudktleSBpbiBlbnZBcnJheUFyZykge1xuICAgICAgbGV0IHJlZ2V4TWF0Y2hlcyA9IHJlZ2V4U3RyaW5nLmV4ZWMoZW52QXJyYXlBcmdbZW52S2V5XSk7XG4gICAgICByZXR1cm5PYmplY3RbcmVnZXhNYXRjaGVzWzFdXSA9IHJlZ2V4TWF0Y2hlc1syXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldHVybk9iamVjdDtcbn07XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0c3RyaW5nLnBsdWdpbnMuanMnO1xuXG4vKipcbiAqIHNwbGl0cyBhIHN0cmluZyBpbnRvIGFuIGFycmF5XG4gKiBAcGFyYW0gc3RyaW5nQXJnXG4gKi9cbmNvbnN0IHNwbGl0U3RyaW5nQXRMaW5lQnJlYWsgPSAoc3RyaW5nQXJnOiBzdHJpbmcpOiBzdHJpbmdbXSA9PiB7XG4gIGxldCByZXN1bHRBcnJheSA9IHN0cmluZ0FyZy5zcGxpdCgnXFxuJyk7XG4gIHJldHVybiBjbGVhblN0cmluZ0FycmF5KHJlc3VsdEFycmF5KTtcbn07XG5cbi8qKlxuICogam9pbnMgYSBzdHJpbmcgdG9nZXRoZXIgYWdhaW5cbiAqIEBwYXJhbSBzdHJpbmdBcnJheUFyZ1xuICovXG5jb25zdCBqb2luU3RyaW5nV2l0aExpbmVCcmVha3MgPSAoc3RyaW5nQXJyYXlBcmc6IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcbiAgbGV0IHJlc3VsdFN0cmluZzogc3RyaW5nID0gJyc7XG4gIGZvciAobGV0IGxpbmUgb2Ygc3RyaW5nQXJyYXlBcmcpIHtcbiAgICByZXN1bHRTdHJpbmcgPSByZXN1bHRTdHJpbmcgKyBsaW5lICsgJ1xcbic7IC8vIGFkZCBuZXcgbGluZSBhdCBlbmRcbiAgfVxuICByZXR1cm4gcmVzdWx0U3RyaW5nO1xufTtcblxuLyoqXG4gKiBjbGVhbnMgZmlyc3QgYW5kIGxhc3QgbGluZSBpbiBjYXNlIHRoZXkgYXJlIGVtcHR5XG4gKiBAcGFyYW0gc3RyaW5nQXJyYXlBcmdcbiAqL1xuY29uc3QgY2xlYW5TdHJpbmdBcnJheSA9IChzdHJpbmdBcnJheUFyZzogc3RyaW5nW10pOiBzdHJpbmdbXSA9PiB7XG4gIGxldCB0ZXN0UmVnZXggPSAvXltcXHNdKiQvO1xuICBpZiAodGVzdFJlZ2V4LnRlc3Qoc3RyaW5nQXJyYXlBcmdbMF0pKSB7XG4gICAgc3RyaW5nQXJyYXlBcmcuc2hpZnQoKTtcbiAgfVxuICBpZiAodGVzdFJlZ2V4LnRlc3Qoc3RyaW5nQXJyYXlBcmdbc3RyaW5nQXJyYXlBcmcubGVuZ3RoIC0gMV0pKSB7XG4gICAgc3RyaW5nQXJyYXlBcmcucG9wKCk7XG4gIH1cbiAgcmV0dXJuIHN0cmluZ0FycmF5QXJnO1xufTtcblxuLyoqXG4gKiBpbmRlbnQgYW4gYXJyYXlcbiAqIEBwYXJhbSBzdHJpbmdBcmdcbiAqIEBwYXJhbSBzcGFjZUFtb3VudFxuICovXG5leHBvcnQgY29uc3QgaW5kZW50ID0gKHN0cmluZ0FyZzogc3RyaW5nLCBzcGFjZUFtb3VudDogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgbGV0IGxvY2FsU3RyaW5nQXJyYXkgPSBzcGxpdFN0cmluZ0F0TGluZUJyZWFrKHN0cmluZ0FyZyk7XG4gIGZvciAobGV0IHN0cmluZ0FyZyBvZiBsb2NhbFN0cmluZ0FycmF5KSB7XG4gICAgc3RyaW5nQXJnID0gJyAnLnJlcGVhdChzcGFjZUFtb3VudCkgKyBzdHJpbmdBcmc7XG4gIH1cbiAgbGV0IHJlc3VsdFN0cmluZyA9IGpvaW5TdHJpbmdXaXRoTGluZUJyZWFrcyhsb2NhbFN0cmluZ0FycmF5KTtcbiAgcmV0dXJuIHJlc3VsdFN0cmluZztcbn07XG5cbi8qKlxuICogaW5kZW50cyBhIHN0cmluZyB3aXRoIHByZWZpeFxuICogQHBhcmFtIHN0cmluZ0FyZ1xuICogQHBhcmFtIHByZWZpeEFyZ1xuICovXG5leHBvcnQgY29uc3QgaW5kZW50V2l0aFByZWZpeCA9IChzdHJpbmdBcmc6IHN0cmluZywgcHJlZml4QXJnOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBsZXQgcmVzdWx0U3RyaW5nOiBzdHJpbmc7XG4gIGxldCBzdHJpbmdBcnJheSA9IHNwbGl0U3RyaW5nQXRMaW5lQnJlYWsoc3RyaW5nQXJnKTtcbiAgbGV0IHJlc3VsdEFycmF5OiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGxldCBzdHJpbmdJdGVtIG9mIHN0cmluZ0FycmF5KSB7XG4gICAgcmVzdWx0QXJyYXkucHVzaChwcmVmaXhBcmcgKyBzdHJpbmdJdGVtKTtcbiAgfVxuICByZXN1bHRTdHJpbmcgPSBqb2luU3RyaW5nV2l0aExpbmVCcmVha3MocmVzdWx0QXJyYXkpO1xuICByZXR1cm4gcmVzdWx0U3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZSA9IChzdHJpbmdBcmc6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGxldCByZXN1bHRTdHJpbmc6IHN0cmluZztcbiAgbGV0IHNwbGl0U3RyaW5nQXJyYXk6IHN0cmluZ1tdID0gc3BsaXRTdHJpbmdBdExpbmVCcmVhayhzdHJpbmdBcmcpO1xuICBsZXQgbWluQ29tbW9uTGVmdE9mZnNldDogbnVtYmVyO1xuXG4gIGNvbnN0IGRlSW5kZW50UmVnZXggPSAvXihcXHMqKS87XG4gIGNvbnN0IGVtcHR5TGluZVJlZ2V4ID0gL14oXFxzKikkLztcblxuICBmb3IgKGxldCBzdHJpbmdJdGVtIG9mIHNwbGl0U3RyaW5nQXJyYXkpIHtcbiAgICBsZXQgb2Zmc2V0U3RyaW5nID0gZGVJbmRlbnRSZWdleC5leGVjKHN0cmluZ0l0ZW0pWzFdO1xuICAgIGlmIChcbiAgICAgICh0eXBlb2YgbWluQ29tbW9uTGVmdE9mZnNldCA9PT0gJ3VuZGVmaW5lZCcgfHwgb2Zmc2V0U3RyaW5nLmxlbmd0aCA8IG1pbkNvbW1vbkxlZnRPZmZzZXQpICYmXG4gICAgICAhZW1wdHlMaW5lUmVnZXgudGVzdChzdHJpbmdJdGVtKVxuICAgICkge1xuICAgICAgbWluQ29tbW9uTGVmdE9mZnNldCA9IG9mZnNldFN0cmluZy5sZW5ndGg7XG4gICAgfVxuICB9XG4gIGxldCByZXN1bHRTcGxpdFN0cmluZ0FycmF5ID0gW107XG4gIGZvciAobGV0IHN0cmluZ0l0ZW0gb2Ygc3BsaXRTdHJpbmdBcnJheSkge1xuICAgIHJlc3VsdFNwbGl0U3RyaW5nQXJyYXkucHVzaChzdHJpbmdJdGVtLnN1YnN0cihtaW5Db21tb25MZWZ0T2Zmc2V0KSk7XG4gIH1cbiAgcmVzdWx0U3RyaW5nID0gam9pblN0cmluZ1dpdGhMaW5lQnJlYWtzKHJlc3VsdFNwbGl0U3RyaW5nQXJyYXkpO1xuICByZXR1cm4gcmVzdWx0U3RyaW5nO1xufTtcbiIsICIvKipcbiAqIHJlcGxhY2VzIGFsbCBvY2N1cmVuY2VzIG9mIHNvbWV0aGluZyBpbiBhIHN0cmluZ1xuICogQHBhcmFtIHN0cmluZ0FyZ1xuICogQHBhcmFtIHNlYXJjaFBhdHRlcm5cbiAqIEBwYXJhbSByZXBsYWNlbWVudFN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgcmVwbGFjZUFsbCA9IChzdHJpbmdBcmc6IHN0cmluZywgc2VhcmNoUGF0dGVybjogc3RyaW5nLCByZXBsYWNlbWVudFN0cmluZzogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBzdHJpbmdBcmcucmVwbGFjZShuZXcgUmVnRXhwKHNlYXJjaFBhdHRlcm4sICdnJyksIHJlcGxhY2VtZW50U3RyaW5nKTtcbn07XG5cbi8qKlxuICogQ3VzdG9tIGltcGxlbWVudGF0aW9uIG9mIHN0cmlwLWluZGVudFxuICogUmVtb3ZlcyB0aGUgbWluaW11bSBpbmRlbnRhdGlvbiBmcm9tIGFsbCBsaW5lc1xuICovXG5jb25zdCBzdHJpcEluZGVudCA9IChzdHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGxpbmVzID0gc3RyLnNwbGl0KCdcXG4nKTtcbiAgXG4gIC8vIEZpbmQgdGhlIG1pbmltdW0gaW5kZW50YXRpb24gKGlnbm9yaW5nIGVtcHR5IGxpbmVzKVxuICBsZXQgbWluSW5kZW50ID0gSW5maW5pdHk7XG4gIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgIGlmIChsaW5lLnRyaW0oKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IGxpbmUubWF0Y2goL14oXFxzKikvKTtcbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICBtaW5JbmRlbnQgPSBNYXRoLm1pbihtaW5JbmRlbnQsIG1hdGNoWzFdLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAvLyBJZiBubyBpbmRlbnRhdGlvbiBmb3VuZCwgcmV0dXJuIG9yaWdpbmFsIHN0cmluZ1xuICBpZiAobWluSW5kZW50ID09PSBJbmZpbml0eSB8fCBtaW5JbmRlbnQgPT09IDApIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIFxuICAvLyBSZW1vdmUgdGhlIG1pbmltdW0gaW5kZW50YXRpb24gZnJvbSBhbGwgbGluZXNcbiAgcmV0dXJuIGxpbmVzLm1hcChsaW5lID0+IHtcbiAgICBpZiAobGluZS5sZW5ndGggPj0gbWluSW5kZW50KSB7XG4gICAgICByZXR1cm4gbGluZS5zbGljZShtaW5JbmRlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gbGluZTtcbiAgfSkuam9pbignXFxuJyk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElOb3JtYWxpemVPcHRpb25zIHtcbiAgc3RyaXBMZWFkaW5nVHJhaWxpbmdFbXB0eUxpbmVzPzogYm9vbGVhbjtcbiAgc3RyaXBBbGxFbXB0eUxpbmVzPzogYm9vbGVhbjtcbiAgc3RyaXBJbmRlbnQ/OiBib29sZWFuO1xuICBub3JtYWxpemVOZXdsaW5lPzogYm9vbGVhbjtcbiAgcmVwbGFjZVRhYnM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBzdHJpbmdcbiAqIEBwYXJhbSBzdHJpbmdBcmdcbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBzdGFuZGFyZCA9IChzdHJpbmdBcmc6IHN0cmluZywgb3B0aW9ucz86IElOb3JtYWxpemVPcHRpb25zKTogc3RyaW5nID0+IHtcbiAgbGV0IHJlc3VsdCA9IHN0cmluZ0FyZztcblxuICBpZiAoIW9wdGlvbnMgfHwgb3B0aW9ucy5zdHJpcEluZGVudCkge1xuICAgIHJlc3VsdCA9IHN0cmlwSW5kZW50KHJlc3VsdCk7IC8vIGZpeCBpbmRlbnRpb25cbiAgfVxuXG4gIGlmICghb3B0aW9ucyB8fCBvcHRpb25zLm5vcm1hbGl6ZU5ld2xpbmUpIHtcbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvXFxyXFxuL2csICdcXG4nKTsgLy8gZml4IG5ld2xpbmVzXG4gIH1cblxuICBpZiAoIW9wdGlvbnMgfHwgb3B0aW9ucy5yZXBsYWNlVGFicykge1xuICAgIHJlc3VsdCA9IHJlcGxhY2VBbGwocmVzdWx0LCAnXFx0LycsICcgJyk7IC8vIGZpeCB0YWJzXG4gIH1cblxuICBpZiAoIW9wdGlvbnMgfHwgb3B0aW9ucy5zdHJpcExlYWRpbmdUcmFpbGluZ0VtcHR5TGluZXMpIHtcbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvXlxccypbXFxyXFxuXS9nbSwgJycpLnJlcGxhY2UoL1xccypbXFxyXFxuXSQvZ20sICcnKTtcbiAgfVxuXG4gIGlmICghb3B0aW9ucyB8fCBvcHRpb25zLnN0cmlwQWxsRW1wdHlMaW5lcykge1xuICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9eXFxzKltcXHJcXG5dL2dtLCAnJyk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuIiwgIi8qKlxuICogdGhlIHR5cGUgZm9yIGJhc2UgNjRcbiAqL1xuZXhwb3J0IHR5cGUgVFN0cmluZ0lucHV0VHlwZSA9ICdzdHJpbmcnIHwgJ2Jhc2U2NCcgfCAnYmFzZTY0dXJpJztcblxuLyoqXG4gKiBDcm9zcy1wbGF0Zm9ybSBiYXNlNjQgaW1wbGVtZW50YXRpb25cbiAqIFdvcmtzIGluIGJvdGggTm9kZS5qcyBhbmQgYnJvd3NlciBlbnZpcm9ubWVudHNcbiAqL1xuY29uc3QgdW5pdmVyc2FsQmFzZTY0ID0ge1xuICBlbmNvZGU6IChzdHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgaWYgKHR5cGVvZiBCdWZmZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBOb2RlLmpzIGVudmlyb25tZW50XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oc3RyLCAndXRmOCcpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBidG9hICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gQnJvd3NlciBlbnZpcm9ubWVudFxuICAgICAgLy8gSGFuZGxlIFVuaWNvZGUgcHJvcGVybHlcbiAgICAgIGNvbnN0IHV0ZjhCeXRlcyA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShzdHIpO1xuICAgICAgY29uc3QgYmluYXJ5U3RyaW5nID0gQXJyYXkuZnJvbSh1dGY4Qnl0ZXMsIGJ5dGUgPT4gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlKSkuam9pbignJyk7XG4gICAgICByZXR1cm4gYnRvYShiaW5hcnlTdHJpbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGYWxsYmFjayBwdXJlIEpTIGltcGxlbWVudGF0aW9uXG4gICAgICBjb25zdCBjaGFycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJztcbiAgICAgIGNvbnN0IGJ5dGVzID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHN0cik7XG4gICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBcbiAgICAgIHdoaWxlIChpIDwgYnl0ZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGEgPSBieXRlc1tpKytdO1xuICAgICAgICBjb25zdCBiID0gaSA8IGJ5dGVzLmxlbmd0aCA/IGJ5dGVzW2krK10gOiAwO1xuICAgICAgICBjb25zdCBjID0gaSA8IGJ5dGVzLmxlbmd0aCA/IGJ5dGVzW2krK10gOiAwO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgYml0bWFwID0gKGEgPDwgMTYpIHwgKGIgPDwgOCkgfCBjO1xuICAgICAgICBcbiAgICAgICAgcmVzdWx0ICs9IGNoYXJzLmNoYXJBdCgoYml0bWFwID4+IDE4KSAmIDYzKTtcbiAgICAgICAgcmVzdWx0ICs9IGNoYXJzLmNoYXJBdCgoYml0bWFwID4+IDEyKSAmIDYzKTtcbiAgICAgICAgcmVzdWx0ICs9IGkgLSAyIDwgYnl0ZXMubGVuZ3RoID8gY2hhcnMuY2hhckF0KChiaXRtYXAgPj4gNikgJiA2MykgOiAnPSc7XG4gICAgICAgIHJlc3VsdCArPSBpIC0gMSA8IGJ5dGVzLmxlbmd0aCA/IGNoYXJzLmNoYXJBdChiaXRtYXAgJiA2MykgOiAnPSc7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9LFxuICBcbiAgZGVjb2RlOiAoc3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgIC8vIEhhbmRsZSBiYXNlNjR1cmkgYnkgY29udmVydGluZyBiYWNrIHRvIHN0YW5kYXJkIGJhc2U2NFxuICAgIGNvbnN0IGJhc2U2NFN0cmluZyA9IHN0clxuICAgICAgLnJlcGxhY2UoLy0vZywgJysnKVxuICAgICAgLnJlcGxhY2UoL18vZywgJy8nKVxuICAgICAgLnBhZEVuZChzdHIubGVuZ3RoICsgKCg0IC0gKHN0ci5sZW5ndGggJSA0KSkgJSA0KSwgJz0nKTtcbiAgICBcbiAgICBpZiAodHlwZW9mIEJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIE5vZGUuanMgZW52aXJvbm1lbnRcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShiYXNlNjRTdHJpbmcsICdiYXNlNjQnKS50b1N0cmluZygndXRmOCcpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGF0b2IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBCcm93c2VyIGVudmlyb25tZW50XG4gICAgICBjb25zdCBiaW5hcnlTdHJpbmcgPSBhdG9iKGJhc2U2NFN0cmluZyk7XG4gICAgICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KGJpbmFyeVN0cmluZy5sZW5ndGgpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBiaW5hcnlTdHJpbmcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgYnl0ZXNbaV0gPSBiaW5hcnlTdHJpbmcuY2hhckNvZGVBdChpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoYnl0ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGYWxsYmFjayBwdXJlIEpTIGltcGxlbWVudGF0aW9uXG4gICAgICBjb25zdCBjaGFycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJztcbiAgICAgIGxldCBieXRlczogbnVtYmVyW10gPSBbXTtcbiAgICAgIGxldCBpID0gMDtcbiAgICAgIFxuICAgICAgd2hpbGUgKGkgPCBiYXNlNjRTdHJpbmcubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGVuY29kZWQxID0gY2hhcnMuaW5kZXhPZihiYXNlNjRTdHJpbmcuY2hhckF0KGkrKykpO1xuICAgICAgICBjb25zdCBlbmNvZGVkMiA9IGNoYXJzLmluZGV4T2YoYmFzZTY0U3RyaW5nLmNoYXJBdChpKyspKTtcbiAgICAgICAgY29uc3QgZW5jb2RlZDMgPSBjaGFycy5pbmRleE9mKGJhc2U2NFN0cmluZy5jaGFyQXQoaSsrKSk7XG4gICAgICAgIGNvbnN0IGVuY29kZWQ0ID0gY2hhcnMuaW5kZXhPZihiYXNlNjRTdHJpbmcuY2hhckF0KGkrKykpO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgYml0bWFwID0gKGVuY29kZWQxIDw8IDE4KSB8IChlbmNvZGVkMiA8PCAxMikgfCAoZW5jb2RlZDMgPDwgNikgfCBlbmNvZGVkNDtcbiAgICAgICAgXG4gICAgICAgIGJ5dGVzLnB1c2goKGJpdG1hcCA+PiAxNikgJiAyNTUpO1xuICAgICAgICBpZiAoZW5jb2RlZDMgIT09IDY0KSBieXRlcy5wdXNoKChiaXRtYXAgPj4gOCkgJiAyNTUpO1xuICAgICAgICBpZiAoZW5jb2RlZDQgIT09IDY0KSBieXRlcy5wdXNoKGJpdG1hcCAmIDI1NSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoYnl0ZXMpKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogaGFuZGxlIGJhc2U2NCBzdHJpbmdzXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlNjQge1xuICBwcml2YXRlIHJlZlN0cmluZzogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihpbnB1dFN0cmluZ0FyZywgdHlwZUFyZzogVFN0cmluZ0lucHV0VHlwZSkge1xuICAgIHN3aXRjaCAodHlwZUFyZykge1xuICAgICAgY2FzZSAnc3RyaW5nJzogLy8gZWFzaWVzdCBjYXNlXG4gICAgICAgIHRoaXMucmVmU3RyaW5nID0gaW5wdXRTdHJpbmdBcmc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgdGhpcy5yZWZTdHJpbmcgPSBiYXNlNjQuZGVjb2RlKGlucHV0U3RyaW5nQXJnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdiYXNlNjR1cmknOlxuICAgICAgICB0aGlzLnJlZlN0cmluZyA9IGJhc2U2NC5kZWNvZGUoaW5wdXRTdHJpbmdBcmcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiB0aGUgc2ltcGxlIHN0cmluZyAodW5lbmNvZGVkKVxuICAgKi9cbiAgZ2V0IHNpbXBsZVN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZTdHJpbmc7XG4gIH1cblxuICAvKipcbiAgICogdGhlIGJhc2U2NCBlbmNvZGVkIHZlcnNpb24gb2YgdGhlIG9yaWdpbmFsIHN0cmluZ1xuICAgKi9cbiAgZ2V0IGJhc2U2NFN0cmluZygpIHtcbiAgICByZXR1cm4gYmFzZTY0LmVuY29kZSh0aGlzLnJlZlN0cmluZyk7XG4gIH1cblxuICAvKipcbiAgICogdGhlIGJhc2U2NHVyaSBlbmNvZGVkIHZlcnNpb24gb2YgdGhlIG9yaWdpbmFsIHN0cmluZ1xuICAgKi9cbiAgZ2V0IGJhc2U2NFVyaVN0cmluZygpIHtcbiAgICByZXR1cm4gYmFzZTY0LmVuY29kZVVyaSh0aGlzLnJlZlN0cmluZyk7XG4gIH1cbn1cblxuZXhwb3J0IGxldCBiYXNlNjQgPSB7XG4gIC8qKlxuICAgKiBlbmNvZGVzIHRoZSBzdHJpbmdcbiAgICovXG4gIGVuY29kZTogKHN0cmluZ0FyZzogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHVuaXZlcnNhbEJhc2U2NC5lbmNvZGUoc3RyaW5nQXJnKTtcbiAgfSxcblxuICAvKipcbiAgICogZW5jb2RlcyBhIHN0cmluZ0FyZyB0byBiYXNlNjQgdXJpIHN0eWxlXG4gICAqL1xuICBlbmNvZGVVcmk6IChzdHJpbmdBcmc6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB1bml2ZXJzYWxCYXNlNjQuZW5jb2RlKHN0cmluZ0FyZylcbiAgICAgIC5yZXBsYWNlKC9cXCsvZywgJy0nKVxuICAgICAgLnJlcGxhY2UoL1xcLy9nLCAnXycpXG4gICAgICAucmVwbGFjZSgvPS9nLCAnJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIGRlY29kZXMgYSBiYXNlNjQgZW5jb2RlZCBzdHJpbmdcbiAgICovXG4gIGRlY29kZTogKHN0cmluZ0FyZzogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHVuaXZlcnNhbEJhc2U2NC5kZWNvZGUoc3RyaW5nQXJnKTtcbiAgfSxcblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHN0cmluZ0FyZ1xuICAgKiBjaGVja3Mgd2V0aGVyIHRoZSBzdHJpbmcgaXMgYmFzZTY0IGVuY29kZWRcbiAgICovXG4gIGlzQmFzZTY0OiAoc3RyaW5nQXJnOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCByZWdleCA9IC9eKFtBLVphLXowLTkrL117NH0pKihbQS1aYS16MC05Ky9dezN9PXxbQS1aYS16MC05Ky9dezJ9PT0pPyQvO1xuICAgIHJldHVybiByZWdleC50ZXN0KHN0cmluZ0FyZyk7XG4gIH0sXG59O1xuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydHN0cmluZy5wbHVnaW5zLmpzJztcbmltcG9ydCAqIGFzIGJhc2U2NCBmcm9tICcuL3NtYXJ0c3RyaW5nLmJhc2U2NC5qcyc7XG5cbmV4cG9ydCBjb25zdCBpc1V0ZjggPSAoc3RyaW5nQXJnOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgLy8gQ29udmVydCBzdHJpbmcgdG8gYSBVaW50OEFycmF5LiBJbiBicm93c2VycywgdGhpcyB3aWxsIGJlIGEgYml0IG1vcmUgY29tcGxleFxuICAvLyBiZWNhdXNlIHdlIG5lZWQgdG8gY29udmVydCB0aGUgc3RyaW5nIHRvIGEgYmluYXJ5IHJlcHJlc2VudGF0aW9uIGZpcnN0LlxuICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gIGNvbnN0IGJ5dGVzID0gZW5jb2Rlci5lbmNvZGUoc3RyaW5nQXJnKTtcblxuICBsZXQgaSA9IDA7XG4gIHdoaWxlIChpIDwgYnl0ZXMubGVuZ3RoKSB7XG4gICAgaWYgKFxuICAgICAgLy8gQVNDSUlcbiAgICAgIGJ5dGVzW2ldID09PSAweDA5IHx8XG4gICAgICBieXRlc1tpXSA9PT0gMHgwYSB8fFxuICAgICAgYnl0ZXNbaV0gPT09IDB4MGQgfHxcbiAgICAgICgweDIwIDw9IGJ5dGVzW2ldICYmIGJ5dGVzW2ldIDw9IDB4N2UpXG4gICAgKSB7XG4gICAgICBpICs9IDE7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAvLyBub24tb3ZlcmxvbmcgMi1ieXRlXG4gICAgICAweGMyIDw9IGJ5dGVzW2ldICYmXG4gICAgICBieXRlc1tpXSA8PSAweGRmICYmXG4gICAgICAweDgwIDw9IGJ5dGVzW2kgKyAxXSAmJlxuICAgICAgYnl0ZXNbaSArIDFdIDw9IDB4YmZcbiAgICApIHtcbiAgICAgIGkgKz0gMjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIC8vIGV4Y2x1ZGluZyBvdmVybG9uZ3NcbiAgICAgIChieXRlc1tpXSA9PT0gMHhlMCAmJlxuICAgICAgICAweGEwIDw9IGJ5dGVzW2kgKyAxXSAmJlxuICAgICAgICBieXRlc1tpICsgMV0gPD0gMHhiZiAmJlxuICAgICAgICAweDgwIDw9IGJ5dGVzW2kgKyAyXSAmJlxuICAgICAgICBieXRlc1tpICsgMl0gPD0gMHhiZikgfHxcbiAgICAgIC8vIHN0cmFpZ2h0IDMtYnl0ZVxuICAgICAgKCgoMHhlMSA8PSBieXRlc1tpXSAmJiBieXRlc1tpXSA8PSAweGVjKSB8fCBieXRlc1tpXSA9PT0gMHhlZSB8fCBieXRlc1tpXSA9PT0gMHhlZikgJiZcbiAgICAgICAgMHg4MCA8PSBieXRlc1tpICsgMV0gJiZcbiAgICAgICAgYnl0ZXNbaSArIDFdIDw9IDB4YmYgJiZcbiAgICAgICAgMHg4MCA8PSBieXRlc1tpICsgMl0gJiZcbiAgICAgICAgYnl0ZXNbaSArIDJdIDw9IDB4YmYpIHx8XG4gICAgICAvLyBleGNsdWRpbmcgc3Vycm9nYXRlc1xuICAgICAgKGJ5dGVzW2ldID09PSAweGVkICYmXG4gICAgICAgIDB4ODAgPD0gYnl0ZXNbaSArIDFdICYmXG4gICAgICAgIGJ5dGVzW2kgKyAxXSA8PSAweDlmICYmXG4gICAgICAgIDB4ODAgPD0gYnl0ZXNbaSArIDJdICYmXG4gICAgICAgIGJ5dGVzW2kgKyAyXSA8PSAweGJmKVxuICAgICkge1xuICAgICAgaSArPSAzO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgLy8gcGxhbmVzIDEtM1xuICAgICAgKGJ5dGVzW2ldID09PSAweGYwICYmXG4gICAgICAgIDB4OTAgPD0gYnl0ZXNbaSArIDFdICYmXG4gICAgICAgIGJ5dGVzW2kgKyAxXSA8PSAweGJmICYmXG4gICAgICAgIDB4ODAgPD0gYnl0ZXNbaSArIDJdICYmXG4gICAgICAgIGJ5dGVzW2kgKyAyXSA8PSAweGJmICYmXG4gICAgICAgIDB4ODAgPD0gYnl0ZXNbaSArIDNdICYmXG4gICAgICAgIGJ5dGVzW2kgKyAzXSA8PSAweGJmKSB8fFxuICAgICAgLy8gcGxhbmVzIDQtMTVcbiAgICAgICgweGYxIDw9IGJ5dGVzW2ldICYmXG4gICAgICAgIGJ5dGVzW2ldIDw9IDB4ZjMgJiZcbiAgICAgICAgMHg4MCA8PSBieXRlc1tpICsgMV0gJiZcbiAgICAgICAgYnl0ZXNbaSArIDFdIDw9IDB4YmYgJiZcbiAgICAgICAgMHg4MCA8PSBieXRlc1tpICsgMl0gJiZcbiAgICAgICAgYnl0ZXNbaSArIDJdIDw9IDB4YmYgJiZcbiAgICAgICAgMHg4MCA8PSBieXRlc1tpICsgM10gJiZcbiAgICAgICAgYnl0ZXNbaSArIDNdIDw9IDB4YmYpIHx8XG4gICAgICAvLyBwbGFuZSAxNlxuICAgICAgKGJ5dGVzW2ldID09PSAweGY0ICYmXG4gICAgICAgIDB4ODAgPD0gYnl0ZXNbaSArIDFdICYmXG4gICAgICAgIGJ5dGVzW2kgKyAxXSA8PSAweDhmICYmXG4gICAgICAgIDB4ODAgPD0gYnl0ZXNbaSArIDJdICYmXG4gICAgICAgIGJ5dGVzW2kgKyAyXSA8PSAweGJmICYmXG4gICAgICAgIDB4ODAgPD0gYnl0ZXNbaSArIDNdICYmXG4gICAgICAgIGJ5dGVzW2kgKyAzXSA8PSAweGJmKVxuICAgICkge1xuICAgICAgaSArPSA0O1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBpc0Jhc2U2NCA9IChzdHJpbmdBcmc6IHN0cmluZykgPT4ge1xuICBjb25zdCBub3RCYXNlNjQgPSAvW15BLVowLTkrXFwvPV0vaTtcbiAgY29uc3QgbGVuID0gc3RyaW5nQXJnLmxlbmd0aDtcbiAgaWYgKCFsZW4gfHwgbGVuICUgNCAhPT0gMCB8fCBub3RCYXNlNjQudGVzdChzdHJpbmdBcmcpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGZpcnN0UGFkZGluZ0NoYXIgPSBzdHJpbmdBcmcuaW5kZXhPZignPScpO1xuICByZXR1cm4gKFxuICAgIGZpcnN0UGFkZGluZ0NoYXIgPT09IC0xIHx8XG4gICAgZmlyc3RQYWRkaW5nQ2hhciA9PT0gbGVuIC0gMSB8fFxuICAgIChmaXJzdFBhZGRpbmdDaGFyID09PSBsZW4gLSAyICYmIHN0cmluZ0FyZ1tsZW4gLSAxXSA9PT0gJz0nKVxuICApO1xufTtcbiIsICJleHBvcnQgY2xhc3MgRG9tYWluIHtcbiAgcHVibGljIGZ1bGxOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBsZXZlbDE6IHN0cmluZztcbiAgcHVibGljIGxldmVsMjogc3RyaW5nO1xuICBwdWJsaWMgbGV2ZWwzOiBzdHJpbmc7XG4gIHB1YmxpYyBsZXZlbDQ6IHN0cmluZztcbiAgcHVibGljIGxldmVsNTogc3RyaW5nO1xuICBwdWJsaWMgcHJvdG9jb2w6IHN0cmluZztcbiAgcHVibGljIHpvbmVOYW1lOiBzdHJpbmc7XG4gIC8vIGFsaWFzZXNcbiAgcHVibGljIHRvcExldmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBkb21haW5OYW1lO1xuICBwdWJsaWMgc3ViRG9tYWluO1xuICBwdWJsaWMgcG9ydDtcbiAgcHVibGljIG5vZGVQYXJzZWRVcmw6IFVSTDtcbiAgY29uc3RydWN0b3IoZG9tYWluU3RyaW5nQXJnOiBzdHJpbmcpIHtcbiAgICAvLyBsZXRzIGRvIHRoZSBub2RlIHN0YW5kYXJkIHN0dWZmIGZpcnN0XG4gICAgdGhpcy5wcm90b2NvbCA9IHRoaXMuX3Byb3RvY29sUmVnZXgoZG9tYWluU3RyaW5nQXJnKTtcbiAgICBpZiAoIXRoaXMucHJvdG9jb2wpIHtcbiAgICAgIGRvbWFpblN0cmluZ0FyZyA9IGBodHRwczovLyR7ZG9tYWluU3RyaW5nQXJnfWA7XG4gICAgfVxuICAgIHRoaXMubm9kZVBhcnNlZFVybCA9IG5ldyBVUkwoZG9tYWluU3RyaW5nQXJnKTtcbiAgICB0aGlzLnBvcnQgPSB0aGlzLm5vZGVQYXJzZWRVcmwucG9ydDtcblxuICAgIC8vIGxldHMgZG8gdGhlIHJlc3QgYWZ0ZXJcbiAgICBjb25zdCByZWdleE1hdGNoZXMgPSB0aGlzLl9kb21haW5SZWdleChcbiAgICAgIGRvbWFpblN0cmluZ0FyZy5yZXBsYWNlKHRoaXMubm9kZVBhcnNlZFVybC5wYXRobmFtZSwgJycpXG4gICAgKTtcbiAgICB0aGlzLmZ1bGxOYW1lID0gJyc7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gNTsgaSsrKSB7XG4gICAgICBpZiAocmVnZXhNYXRjaGVzW2kgLSAxXSkge1xuICAgICAgICBjb25zdCBsb2NhbE1hdGNoID0gcmVnZXhNYXRjaGVzW2kgLSAxXTtcbiAgICAgICAgdGhpc1snbGV2ZWwnICsgaS50b1N0cmluZygpXSA9IGxvY2FsTWF0Y2g7XG4gICAgICAgIGlmICh0aGlzLmZ1bGxOYW1lID09PSAnJykge1xuICAgICAgICAgIHRoaXMuZnVsbE5hbWUgPSBsb2NhbE1hdGNoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZnVsbE5hbWUgPSBsb2NhbE1hdGNoICsgJy4nICsgdGhpcy5mdWxsTmFtZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpc1snbGV2ZWwnICsgaS50b1N0cmluZygpXSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy56b25lTmFtZSA9IHRoaXMubGV2ZWwyICsgJy4nICsgdGhpcy5sZXZlbDE7XG5cbiAgICAvLyBhbGlhc2VzXG4gICAgdGhpcy50b3BMZXZlbCA9IHRoaXMubGV2ZWwxO1xuICAgIHRoaXMuZG9tYWluTmFtZSA9IHRoaXMubGV2ZWwyO1xuICAgIHRoaXMuc3ViRG9tYWluID0gdGhpcy5sZXZlbDM7XG4gIH1cblxuICAvLyBoZWxwZXIgZnVuY3Rpb25zXG5cbiAgLyoqICovXG4gIHByaXZhdGUgX2RvbWFpblJlZ2V4KHN0cmluZ0FyZzogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVnZXhTdHJpbmcgPVxuICAgICAgLyhbYS16QS1aMC05XFwtXFxfXSopXFwuezAsMX0oW2EtekEtWjAtOVxcLVxcX10qKVxcLnswLDF9KFthLXpBLVowLTlcXC1cXF9dKilcXC57MCwxfShbYS16QS1aMC05XFwtXFxfXSopXFwuezAsMX0oW2EtekEtWjAtOVxcLVxcX10qKVxcLnswLDF9JC87XG4gICAgY29uc3QgcmVnZXhNYXRjaGVzID0gcmVnZXhTdHJpbmcuZXhlYyhzdHJpbmdBcmcpO1xuICAgIHJlZ2V4TWF0Y2hlcy5yZXZlcnNlKCk7IC8vbWFrZSBzdXJlIHdlIGJ1aWxkIHRoZSBkb21haW4gZnJvbSB0b3BsZXZlbCB0byBzdWJkb21haW4gKHJldmVyc2VkIG9yZGVyKVxuICAgIHJlZ2V4TWF0Y2hlcy5wb3AoKTsgLy8gcG9wIHRoZSBsYXN0IGVsZW1lbnQsIHdoaWNoIGlzLCBzaW5jZSB3ZSByZXZlcnNlZCB0aGUgQXJyYXksIHRoZSBmdWxsIFN0cmluZyBvZiBtYXRjaGVkIGVsZW1lbnRzXG4gICAgY29uc3QgcmVnZXhNYXRjaGVzRmlsdGVyZWQgPSByZWdleE1hdGNoZXMuZmlsdGVyKGZ1bmN0aW9uIChzdHJpbmdBcmc6IHN0cmluZykge1xuICAgICAgcmV0dXJuIHN0cmluZ0FyZyAhPT0gJyc7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlZ2V4TWF0Y2hlc0ZpbHRlcmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJvdG9jb2xSZWdleChzdHJpbmdBcmc6IHN0cmluZykge1xuICAgIGNvbnN0IHJlZ2V4U3RyaW5nID0gL14oW2EtekEtWjAtOV0qKTpcXC9cXC8vO1xuICAgIGNvbnN0IHJlZ2V4TWF0Y2hlcyA9IHJlZ2V4U3RyaW5nLmV4ZWMoc3RyaW5nQXJnKTtcbiAgICBpZiAocmVnZXhNYXRjaGVzKSB7XG4gICAgICByZXR1cm4gcmVnZXhNYXRjaGVzWzFdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3BvcnRSZWdleChzdHJpbmdBcmc6IHN0cmluZykge1xuICAgIGNvbnN0IHJlZ2V4U3RyaW5nID0gL14oW2EtekEtWjAtOV0qKTpcXC9cXC8vO1xuICAgIGNvbnN0IHJlZ2V4TWF0Y2hlcyA9IHJlZ2V4U3RyaW5nLmV4ZWMoc3RyaW5nQXJnKTtcbiAgICBpZiAocmVnZXhNYXRjaGVzKSB7XG4gICAgICByZXR1cm4gcmVnZXhNYXRjaGVzWzFdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydHN0cmluZy5wbHVnaW5zLmpzJztcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0gY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmV4cG9ydCBjbGFzcyBHaXRSZXBvIHtcbiAgaG9zdDogc3RyaW5nO1xuICB1c2VyOiBzdHJpbmc7XG4gIHJlcG86IHN0cmluZztcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgc3NoVXJsOiBzdHJpbmc7XG4gIGh0dHBzVXJsOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHN0cmluZ0FyZzogc3RyaW5nLCB0b2tlbkFyZz86IHN0cmluZykge1xuICAgIGxldCByZWdleE1hdGNoZXMgPSBnaXRSZWdleChzdHJpbmdBcmcpO1xuICAgIHRoaXMuaG9zdCA9IHJlZ2V4TWF0Y2hlc1sxXTtcbiAgICB0aGlzLnVzZXIgPSByZWdleE1hdGNoZXNbMl07XG4gICAgdGhpcy5yZXBvID0gcmVnZXhNYXRjaGVzWzNdO1xuICAgIHRoaXMuYWNjZXNzVG9rZW4gPSB0b2tlbkFyZztcbiAgICB0aGlzLnNzaFVybCA9IGdpdExpbmsodGhpcy5ob3N0LCB0aGlzLnVzZXIsIHRoaXMucmVwbywgdGhpcy5hY2Nlc3NUb2tlbiwgJ3NzaCcpO1xuICAgIHRoaXMuaHR0cHNVcmwgPSBnaXRMaW5rKHRoaXMuaG9zdCwgdGhpcy51c2VyLCB0aGlzLnJlcG8sIHRoaXMuYWNjZXNzVG9rZW4sICdodHRwcycpO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tIGhlbHBlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5jb25zdCBnaXRSZWdleCA9IGZ1bmN0aW9uIChzdHJpbmdBcmc6IHN0cmluZykge1xuICBjb25zdCByZWdleFN0cmluZyA9XG4gICAgLyhbYS16QS1aMC05XFwtX1xcLl0qKSg/OlxcL3xcXDopKFthLXpBLVowLTlcXC1fXFwuXSopKD86XFwvKShbYS16QS1aMC05XFwtX1xcLl0qKSg/OlxcLmdpdCkvO1xuICBsZXQgcmVnZXhNYXRjaGVzID0gcmVnZXhTdHJpbmcuZXhlYyhzdHJpbmdBcmcpO1xuICByZXR1cm4gcmVnZXhNYXRjaGVzO1xufTtcblxuY29uc3QgZ2l0TGluayA9IGZ1bmN0aW9uIChcbiAgaG9zdEFyZzogc3RyaW5nLFxuICB1c2VyQXJnOiBzdHJpbmcsXG4gIHJlcG9Bcmc6IHN0cmluZyxcbiAgdG9rZW5Bcmc6IHN0cmluZyA9ICcnLFxuICBsaW5rVHlwZUFyZ1xuKTogc3RyaW5nIHtcbiAgbGV0IHJldHVyblN0cmluZztcbiAgaWYgKHRva2VuQXJnICE9PSAnJykge1xuICAgIHRva2VuQXJnID0gdG9rZW5BcmcgKyAnQCc7XG4gIH1cbiAgc3dpdGNoIChsaW5rVHlwZUFyZykge1xuICAgIGNhc2UgJ2h0dHBzJzpcbiAgICAgIHJldHVyblN0cmluZyA9ICdodHRwczovLycgKyB0b2tlbkFyZyArIGhvc3RBcmcgKyAnLycgKyB1c2VyQXJnICsgJy8nICsgcmVwb0FyZyArICcuZ2l0JztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3NzaCc6XG4gICAgICByZXR1cm5TdHJpbmcgPSAnZ2l0QCcgKyBob3N0QXJnICsgJzonICsgdXNlckFyZyArICcvJyArIHJlcG9BcmcgKyAnLmdpdCc7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgY29uc29sZS5lcnJvcignTGluayBUeXBlICcgKyBsaW5rVHlwZUFyZyArICcgbm90IGtub3duJyk7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gcmV0dXJuU3RyaW5nO1xufTtcbiIsICJpbXBvcnQgKiBhcyBjcmVhdGUgZnJvbSAnLi9zbWFydHN0cmluZy5jcmVhdGUuanMnO1xuaW1wb3J0ICogYXMgZG9ja2VyIGZyb20gJy4vc21hcnRzdHJpbmcuZG9ja2VyLmpzJztcbmltcG9ydCAqIGFzIGluZGVudCBmcm9tICcuL3NtYXJ0c3RyaW5nLmluZGVudC5qcyc7XG5pbXBvcnQgKiBhcyBub3JtYWxpemUgZnJvbSAnLi9zbWFydHN0cmluZy5ub3JtYWxpemUuanMnO1xuaW1wb3J0ICogYXMgdHlwZSBmcm9tICcuL3NtYXJ0c3RyaW5nLnR5cGUuanMnO1xuXG5leHBvcnQgeyBjcmVhdGUsIGRvY2tlciwgbm9ybWFsaXplLCBpbmRlbnQsIHR5cGUgfTtcblxuZXhwb3J0IHsgQmFzZTY0LCBiYXNlNjQgfSBmcm9tICcuL3NtYXJ0c3RyaW5nLmJhc2U2NC5qcyc7XG5leHBvcnQgeyBEb21haW4gfSBmcm9tICcuL3NtYXJ0c3RyaW5nLmRvbWFpbi5qcyc7XG5leHBvcnQgeyBHaXRSZXBvIH0gZnJvbSAnLi9zbWFydHN0cmluZy5naXQuanMnO1xuIiwgIi8qKlxuICogbG9kYXNoIChDdXN0b20gQnVpbGQpIDxodHRwczovL2xvZGFzaC5jb20vPlxuICogQnVpbGQ6IGBsb2Rhc2ggbW9kdWxhcml6ZSBleHBvcnRzPVwibnBtXCIgLW8gLi9gXG4gKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyA8aHR0cHM6Ly9qcXVlcnkub3JnLz5cbiAqIFJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlIDxodHRwczovL2xvZGFzaC5jb20vbGljZW5zZT5cbiAqIEJhc2VkIG9uIFVuZGVyc2NvcmUuanMgMS44LjMgPGh0dHA6Ly91bmRlcnNjb3JlanMub3JnL0xJQ0VOU0U+XG4gKiBDb3B5cmlnaHQgSmVyZW15IEFzaGtlbmFzLCBEb2N1bWVudENsb3VkIGFuZCBJbnZlc3RpZ2F0aXZlIFJlcG9ydGVycyAmIEVkaXRvcnNcbiAqL1xuXG4vKiogVXNlZCBhcyB0aGUgc2l6ZSB0byBlbmFibGUgbGFyZ2UgYXJyYXkgb3B0aW1pemF0aW9ucy4gKi9cbnZhciBMQVJHRV9BUlJBWV9TSVpFID0gMjAwO1xuXG4vKiogVXNlZCB0byBzdGFuZC1pbiBmb3IgYHVuZGVmaW5lZGAgaGFzaCB2YWx1ZXMuICovXG52YXIgSEFTSF9VTkRFRklORUQgPSAnX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyc7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcHJvbWlzZVRhZyA9ICdbb2JqZWN0IFByb21pc2VdJyxcbiAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICBzZXRUYWcgPSAnW29iamVjdCBTZXRdJyxcbiAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJyxcbiAgICBzeW1ib2xUYWcgPSAnW29iamVjdCBTeW1ib2xdJyxcbiAgICB3ZWFrTWFwVGFnID0gJ1tvYmplY3QgV2Vha01hcF0nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGAgZmxhZ3MgZnJvbSB0aGVpciBjb2VyY2VkIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVGbGFncyA9IC9cXHcqJC87XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBob3N0IGNvbnN0cnVjdG9ycyAoU2FmYXJpKS4gKi9cbnZhciByZUlzSG9zdEN0b3IgPSAvXlxcW29iamVjdCAuKz9Db25zdHJ1Y3RvclxcXSQvO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMuICovXG52YXIgcmVJc1VpbnQgPSAvXig/OjB8WzEtOV1cXGQqKSQvO1xuXG4vKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBzdXBwb3J0ZWQgYnkgYF8uY2xvbmVgLiAqL1xudmFyIGNsb25lYWJsZVRhZ3MgPSB7fTtcbmNsb25lYWJsZVRhZ3NbYXJnc1RhZ10gPSBjbG9uZWFibGVUYWdzW2FycmF5VGFnXSA9XG5jbG9uZWFibGVUYWdzW2FycmF5QnVmZmVyVGFnXSA9IGNsb25lYWJsZVRhZ3NbZGF0YVZpZXdUYWddID1cbmNsb25lYWJsZVRhZ3NbYm9vbFRhZ10gPSBjbG9uZWFibGVUYWdzW2RhdGVUYWddID1cbmNsb25lYWJsZVRhZ3NbZmxvYXQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW2Zsb2F0NjRUYWddID1cbmNsb25lYWJsZVRhZ3NbaW50OFRhZ10gPSBjbG9uZWFibGVUYWdzW2ludDE2VGFnXSA9XG5jbG9uZWFibGVUYWdzW2ludDMyVGFnXSA9IGNsb25lYWJsZVRhZ3NbbWFwVGFnXSA9XG5jbG9uZWFibGVUYWdzW251bWJlclRhZ10gPSBjbG9uZWFibGVUYWdzW29iamVjdFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tyZWdleHBUYWddID0gY2xvbmVhYmxlVGFnc1tzZXRUYWddID1cbmNsb25lYWJsZVRhZ3Nbc3RyaW5nVGFnXSA9IGNsb25lYWJsZVRhZ3Nbc3ltYm9sVGFnXSA9XG5jbG9uZWFibGVUYWdzW3VpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9XG5jbG9uZWFibGVUYWdzW3VpbnQxNlRhZ10gPSBjbG9uZWFibGVUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xuY2xvbmVhYmxlVGFnc1tlcnJvclRhZ10gPSBjbG9uZWFibGVUYWdzW2Z1bmNUYWddID1cbmNsb25lYWJsZVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xudmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG52YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUgPT0gJ29iamVjdCcgJiYgbW9kdWxlICYmICFtb2R1bGUubm9kZVR5cGUgJiYgbW9kdWxlO1xuXG4vKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xudmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbi8qKlxuICogQWRkcyB0aGUga2V5LXZhbHVlIGBwYWlyYCB0byBgbWFwYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG1hcCBUaGUgbWFwIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7QXJyYXl9IHBhaXIgVGhlIGtleS12YWx1ZSBwYWlyIHRvIGFkZC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG1hcGAuXG4gKi9cbmZ1bmN0aW9uIGFkZE1hcEVudHJ5KG1hcCwgcGFpcikge1xuICAvLyBEb24ndCByZXR1cm4gYG1hcC5zZXRgIGJlY2F1c2UgaXQncyBub3QgY2hhaW5hYmxlIGluIElFIDExLlxuICBtYXAuc2V0KHBhaXJbMF0sIHBhaXJbMV0pO1xuICByZXR1cm4gbWFwO1xufVxuXG4vKipcbiAqIEFkZHMgYHZhbHVlYCB0byBgc2V0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNldCBUaGUgc2V0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFkZC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYHNldGAuXG4gKi9cbmZ1bmN0aW9uIGFkZFNldEVudHJ5KHNldCwgdmFsdWUpIHtcbiAgLy8gRG9uJ3QgcmV0dXJuIGBzZXQuYWRkYCBiZWNhdXNlIGl0J3Mgbm90IGNoYWluYWJsZSBpbiBJRSAxMS5cbiAgc2V0LmFkZCh2YWx1ZSk7XG4gIHJldHVybiBzZXQ7XG59XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZvckVhY2hgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICovXG5mdW5jdGlvbiBhcnJheUVhY2goYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPyBhcnJheS5sZW5ndGggOiAwO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSA9PT0gZmFsc2UpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbi8qKlxuICogQXBwZW5kcyB0aGUgZWxlbWVudHMgb2YgYHZhbHVlc2AgdG8gYGFycmF5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIGFwcGVuZC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICovXG5mdW5jdGlvbiBhcnJheVB1c2goYXJyYXksIHZhbHVlcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHZhbHVlcy5sZW5ndGgsXG4gICAgICBvZmZzZXQgPSBhcnJheS5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhcnJheVtvZmZzZXQgKyBpbmRleF0gPSB2YWx1ZXNbaW5kZXhdO1xuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpbml0QWNjdW1dIFNwZWNpZnkgdXNpbmcgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGFycmF5YCBhc1xuICogIHRoZSBpbml0aWFsIHZhbHVlLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICovXG5mdW5jdGlvbiBhcnJheVJlZHVjZShhcnJheSwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0pIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG5cbiAgaWYgKGluaXRBY2N1bSAmJiBsZW5ndGgpIHtcbiAgICBhY2N1bXVsYXRvciA9IGFycmF5WysraW5kZXhdO1xuICB9XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgYWNjdW11bGF0b3IgPSBpdGVyYXRlZShhY2N1bXVsYXRvciwgYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpO1xuICB9XG4gIHJldHVybiBhY2N1bXVsYXRvcjtcbn1cblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50aW1lc2Agd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzXG4gKiBvciBtYXggYXJyYXkgbGVuZ3RoIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byBpbnZva2UgYGl0ZXJhdGVlYC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUaW1lcyhuLCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IEFycmF5KG4pO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShpbmRleCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSB2YWx1ZSBhdCBga2V5YCBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gZ2V0VmFsdWUob2JqZWN0LCBrZXkpIHtcbiAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBob3N0IG9iamVjdCBpbiBJRSA8IDkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBob3N0IG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0hvc3RPYmplY3QodmFsdWUpIHtcbiAgLy8gTWFueSBob3N0IG9iamVjdHMgYXJlIGBPYmplY3RgIG9iamVjdHMgdGhhdCBjYW4gY29lcmNlIHRvIHN0cmluZ3NcbiAgLy8gZGVzcGl0ZSBoYXZpbmcgaW1wcm9wZXJseSBkZWZpbmVkIGB0b1N0cmluZ2AgbWV0aG9kcy5cbiAgdmFyIHJlc3VsdCA9IGZhbHNlO1xuICBpZiAodmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUudG9TdHJpbmcgIT0gJ2Z1bmN0aW9uJykge1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSAhISh2YWx1ZSArICcnKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29udmVydHMgYG1hcGAgdG8gaXRzIGtleS12YWx1ZSBwYWlycy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG1hcCBUaGUgbWFwIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlycy5cbiAqL1xuZnVuY3Rpb24gbWFwVG9BcnJheShtYXApIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICByZXN1bHQgPSBBcnJheShtYXAuc2l6ZSk7XG5cbiAgbWFwLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgIHJlc3VsdFsrK2luZGV4XSA9IFtrZXksIHZhbHVlXTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnQgdHJhbnNmb3JtZWQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIGFyZ3VtZW50IHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBvdmVyQXJnKGZ1bmMsIHRyYW5zZm9ybSkge1xuICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuIGZ1bmModHJhbnNmb3JtKGFyZykpO1xuICB9O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGBzZXRgIHRvIGFuIGFycmF5IG9mIGl0cyB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzZXQgVGhlIHNldCB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIHNldFRvQXJyYXkoc2V0KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gQXJyYXkoc2V0LnNpemUpO1xuXG4gIHNldC5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmVzdWx0WysraW5kZXhdID0gdmFsdWU7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZSxcbiAgICBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBkZXRlY3Qgb3ZlcnJlYWNoaW5nIGNvcmUtanMgc2hpbXMuICovXG52YXIgY29yZUpzRGF0YSA9IHJvb3RbJ19fY29yZS1qc19zaGFyZWRfXyddO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgbWV0aG9kcyBtYXNxdWVyYWRpbmcgYXMgbmF0aXZlLiAqL1xudmFyIG1hc2tTcmNLZXkgPSAoZnVuY3Rpb24oKSB7XG4gIHZhciB1aWQgPSAvW14uXSskLy5leGVjKGNvcmVKc0RhdGEgJiYgY29yZUpzRGF0YS5rZXlzICYmIGNvcmVKc0RhdGEua2V5cy5JRV9QUk9UTyB8fCAnJyk7XG4gIHJldHVybiB1aWQgPyAoJ1N5bWJvbChzcmMpXzEuJyArIHVpZCkgOiAnJztcbn0oKSk7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBCdWZmZXIgPSBtb2R1bGVFeHBvcnRzID8gcm9vdC5CdWZmZXIgOiB1bmRlZmluZWQsXG4gICAgU3ltYm9sID0gcm9vdC5TeW1ib2wsXG4gICAgVWludDhBcnJheSA9IHJvb3QuVWludDhBcnJheSxcbiAgICBnZXRQcm90b3R5cGUgPSBvdmVyQXJnKE9iamVjdC5nZXRQcm90b3R5cGVPZiwgT2JqZWN0KSxcbiAgICBvYmplY3RDcmVhdGUgPSBPYmplY3QuY3JlYXRlLFxuICAgIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGUsXG4gICAgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2U7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVHZXRTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxcbiAgICBuYXRpdmVJc0J1ZmZlciA9IEJ1ZmZlciA/IEJ1ZmZlci5pc0J1ZmZlciA6IHVuZGVmaW5lZCxcbiAgICBuYXRpdmVLZXlzID0gb3ZlckFyZyhPYmplY3Qua2V5cywgT2JqZWN0KTtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIERhdGFWaWV3ID0gZ2V0TmF0aXZlKHJvb3QsICdEYXRhVmlldycpLFxuICAgIE1hcCA9IGdldE5hdGl2ZShyb290LCAnTWFwJyksXG4gICAgUHJvbWlzZSA9IGdldE5hdGl2ZShyb290LCAnUHJvbWlzZScpLFxuICAgIFNldCA9IGdldE5hdGl2ZShyb290LCAnU2V0JyksXG4gICAgV2Vha01hcCA9IGdldE5hdGl2ZShyb290LCAnV2Vha01hcCcpLFxuICAgIG5hdGl2ZUNyZWF0ZSA9IGdldE5hdGl2ZShPYmplY3QsICdjcmVhdGUnKTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG1hcHMsIHNldHMsIGFuZCB3ZWFrbWFwcy4gKi9cbnZhciBkYXRhVmlld0N0b3JTdHJpbmcgPSB0b1NvdXJjZShEYXRhVmlldyksXG4gICAgbWFwQ3RvclN0cmluZyA9IHRvU291cmNlKE1hcCksXG4gICAgcHJvbWlzZUN0b3JTdHJpbmcgPSB0b1NvdXJjZShQcm9taXNlKSxcbiAgICBzZXRDdG9yU3RyaW5nID0gdG9Tb3VyY2UoU2V0KSxcbiAgICB3ZWFrTWFwQ3RvclN0cmluZyA9IHRvU291cmNlKFdlYWtNYXApO1xuXG4vKiogVXNlZCB0byBjb252ZXJ0IHN5bWJvbHMgdG8gcHJpbWl0aXZlcyBhbmQgc3RyaW5ncy4gKi9cbnZhciBzeW1ib2xQcm90byA9IFN5bWJvbCA/IFN5bWJvbC5wcm90b3R5cGUgOiB1bmRlZmluZWQsXG4gICAgc3ltYm9sVmFsdWVPZiA9IHN5bWJvbFByb3RvID8gc3ltYm9sUHJvdG8udmFsdWVPZiA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgaGFzaCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIEhhc2goZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPyBlbnRyaWVzLmxlbmd0aCA6IDA7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBoYXNoLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIEhhc2hcbiAqL1xuZnVuY3Rpb24gaGFzaENsZWFyKCkge1xuICB0aGlzLl9fZGF0YV9fID0gbmF0aXZlQ3JlYXRlID8gbmF0aXZlQ3JlYXRlKG51bGwpIDoge307XG59XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGhhc2guXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7T2JqZWN0fSBoYXNoIFRoZSBoYXNoIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBoYXNoRGVsZXRlKGtleSkge1xuICByZXR1cm4gdGhpcy5oYXMoa2V5KSAmJiBkZWxldGUgdGhpcy5fX2RhdGFfX1trZXldO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGhhc2ggdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gaGFzaEdldChrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAobmF0aXZlQ3JlYXRlKSB7XG4gICAgdmFyIHJlc3VsdCA9IGRhdGFba2V5XTtcbiAgICByZXR1cm4gcmVzdWx0ID09PSBIQVNIX1VOREVGSU5FRCA/IHVuZGVmaW5lZCA6IHJlc3VsdDtcbiAgfVxuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGhhc2ggdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGhhc2hIYXMoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgcmV0dXJuIG5hdGl2ZUNyZWF0ZSA/IGRhdGFba2V5XSAhPT0gdW5kZWZpbmVkIDogaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIGhhc2ggYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBoYXNoIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBoYXNoU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBkYXRhW2tleV0gPSAobmF0aXZlQ3JlYXRlICYmIHZhbHVlID09PSB1bmRlZmluZWQpID8gSEFTSF9VTkRFRklORUQgOiB2YWx1ZTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBIYXNoYC5cbkhhc2gucHJvdG90eXBlLmNsZWFyID0gaGFzaENsZWFyO1xuSGFzaC5wcm90b3R5cGVbJ2RlbGV0ZSddID0gaGFzaERlbGV0ZTtcbkhhc2gucHJvdG90eXBlLmdldCA9IGhhc2hHZXQ7XG5IYXNoLnByb3RvdHlwZS5oYXMgPSBoYXNoSGFzO1xuSGFzaC5wcm90b3R5cGUuc2V0ID0gaGFzaFNldDtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGxpc3QgY2FjaGUgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBMaXN0Q2FjaGUoZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPyBlbnRyaWVzLmxlbmd0aCA6IDA7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IFtdO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBkZWxldGVcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVEZWxldGUoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgbGFzdEluZGV4ID0gZGF0YS5sZW5ndGggLSAxO1xuICBpZiAoaW5kZXggPT0gbGFzdEluZGV4KSB7XG4gICAgZGF0YS5wb3AoKTtcbiAgfSBlbHNlIHtcbiAgICBzcGxpY2UuY2FsbChkYXRhLCBpbmRleCwgMSk7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgbGlzdCBjYWNoZSB2YWx1ZSBmb3IgYGtleWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGdldFxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUdldChrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICByZXR1cm4gaW5kZXggPCAwID8gdW5kZWZpbmVkIDogZGF0YVtpbmRleF1bMV07XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbGlzdCBjYWNoZSB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVIYXMoa2V5KSB7XG4gIHJldHVybiBhc3NvY0luZGV4T2YodGhpcy5fX2RhdGFfXywga2V5KSA+IC0xO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIGxpc3QgY2FjaGUgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGxpc3QgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIGRhdGEucHVzaChba2V5LCB2YWx1ZV0pO1xuICB9IGVsc2Uge1xuICAgIGRhdGFbaW5kZXhdWzFdID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBMaXN0Q2FjaGVgLlxuTGlzdENhY2hlLnByb3RvdHlwZS5jbGVhciA9IGxpc3RDYWNoZUNsZWFyO1xuTGlzdENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBsaXN0Q2FjaGVEZWxldGU7XG5MaXN0Q2FjaGUucHJvdG90eXBlLmdldCA9IGxpc3RDYWNoZUdldDtcbkxpc3RDYWNoZS5wcm90b3R5cGUuaGFzID0gbGlzdENhY2hlSGFzO1xuTGlzdENhY2hlLnByb3RvdHlwZS5zZXQgPSBsaXN0Q2FjaGVTZXQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG1hcCBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBNYXBDYWNoZShlbnRyaWVzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gZW50cmllcyA/IGVudHJpZXMubGVuZ3RoIDogMDtcblxuICB0aGlzLmNsZWFyKCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUNsZWFyKCkge1xuICB0aGlzLl9fZGF0YV9fID0ge1xuICAgICdoYXNoJzogbmV3IEhhc2gsXG4gICAgJ21hcCc6IG5ldyAoTWFwIHx8IExpc3RDYWNoZSksXG4gICAgJ3N0cmluZyc6IG5ldyBIYXNoXG4gIH07XG59XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIG1hcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZURlbGV0ZShrZXkpIHtcbiAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KVsnZGVsZXRlJ10oa2V5KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBtYXAgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlR2V0KGtleSkge1xuICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmdldChrZXkpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIG1hcCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlSGFzKGtleSkge1xuICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmhhcyhrZXkpO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIG1hcCBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBtYXAgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLnNldChrZXksIHZhbHVlKTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBNYXBDYWNoZWAuXG5NYXBDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBtYXBDYWNoZUNsZWFyO1xuTWFwQ2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IG1hcENhY2hlRGVsZXRlO1xuTWFwQ2FjaGUucHJvdG90eXBlLmdldCA9IG1hcENhY2hlR2V0O1xuTWFwQ2FjaGUucHJvdG90eXBlLmhhcyA9IG1hcENhY2hlSGFzO1xuTWFwQ2FjaGUucHJvdG90eXBlLnNldCA9IG1hcENhY2hlU2V0O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGFjayBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBTdGFjayhlbnRyaWVzKSB7XG4gIHRoaXMuX19kYXRhX18gPSBuZXcgTGlzdENhY2hlKGVudHJpZXMpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIHN0YWNrLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIFN0YWNrXG4gKi9cbmZ1bmN0aW9uIHN0YWNrQ2xlYXIoKSB7XG4gIHRoaXMuX19kYXRhX18gPSBuZXcgTGlzdENhY2hlO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBzdGFjay5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZGVsZXRlXG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBzdGFja0RlbGV0ZShrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX19kYXRhX19bJ2RlbGV0ZSddKGtleSk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgc3RhY2sgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBTdGFja1xuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrR2V0KGtleSkge1xuICByZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQoa2V5KTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBzdGFjayB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBTdGFja1xuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrSGFzKGtleSkge1xuICByZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoa2V5KTtcbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBzdGFjayBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBTdGFja1xuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBzdGFjayBjYWNoZSBpbnN0YW5jZS5cbiAqL1xuZnVuY3Rpb24gc3RhY2tTZXQoa2V5LCB2YWx1ZSkge1xuICB2YXIgY2FjaGUgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAoY2FjaGUgaW5zdGFuY2VvZiBMaXN0Q2FjaGUpIHtcbiAgICB2YXIgcGFpcnMgPSBjYWNoZS5fX2RhdGFfXztcbiAgICBpZiAoIU1hcCB8fCAocGFpcnMubGVuZ3RoIDwgTEFSR0VfQVJSQVlfU0laRSAtIDEpKSB7XG4gICAgICBwYWlycy5wdXNoKFtrZXksIHZhbHVlXSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgY2FjaGUgPSB0aGlzLl9fZGF0YV9fID0gbmV3IE1hcENhY2hlKHBhaXJzKTtcbiAgfVxuICBjYWNoZS5zZXQoa2V5LCB2YWx1ZSk7XG4gIHJldHVybiB0aGlzO1xufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgU3RhY2tgLlxuU3RhY2sucHJvdG90eXBlLmNsZWFyID0gc3RhY2tDbGVhcjtcblN0YWNrLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBzdGFja0RlbGV0ZTtcblN0YWNrLnByb3RvdHlwZS5nZXQgPSBzdGFja0dldDtcblN0YWNrLnByb3RvdHlwZS5oYXMgPSBzdGFja0hhcztcblN0YWNrLnByb3RvdHlwZS5zZXQgPSBzdGFja1NldDtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBhcnJheS1saWtlIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtib29sZWFufSBpbmhlcml0ZWQgU3BlY2lmeSByZXR1cm5pbmcgaW5oZXJpdGVkIHByb3BlcnR5IG5hbWVzLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYXJyYXlMaWtlS2V5cyh2YWx1ZSwgaW5oZXJpdGVkKSB7XG4gIC8vIFNhZmFyaSA4LjEgbWFrZXMgYGFyZ3VtZW50cy5jYWxsZWVgIGVudW1lcmFibGUgaW4gc3RyaWN0IG1vZGUuXG4gIC8vIFNhZmFyaSA5IG1ha2VzIGBhcmd1bWVudHMubGVuZ3RoYCBlbnVtZXJhYmxlIGluIHN0cmljdCBtb2RlLlxuICB2YXIgcmVzdWx0ID0gKGlzQXJyYXkodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVlKSlcbiAgICA/IGJhc2VUaW1lcyh2YWx1ZS5sZW5ndGgsIFN0cmluZylcbiAgICA6IFtdO1xuXG4gIHZhciBsZW5ndGggPSByZXN1bHQubGVuZ3RoLFxuICAgICAgc2tpcEluZGV4ZXMgPSAhIWxlbmd0aDtcblxuICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAoKGluaGVyaXRlZCB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSAmJlxuICAgICAgICAhKHNraXBJbmRleGVzICYmIChrZXkgPT0gJ2xlbmd0aCcgfHwgaXNJbmRleChrZXksIGxlbmd0aCkpKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBBc3NpZ25zIGB2YWx1ZWAgdG8gYGtleWAgb2YgYG9iamVjdGAgaWYgdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5vdCBlcXVpdmFsZW50XG4gKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgaWYgKCEoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgZXEob2JqVmFsdWUsIHZhbHVlKSkgfHxcbiAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBga2V5YCBpcyBmb3VuZCBpbiBgYXJyYXlgIG9mIGtleS12YWx1ZSBwYWlycy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0geyp9IGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBhc3NvY0luZGV4T2YoYXJyYXksIGtleSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICBpZiAoZXEoYXJyYXlbbGVuZ3RoXVswXSwga2V5KSkge1xuICAgICAgcmV0dXJuIGxlbmd0aDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmFzc2lnbmAgd2l0aG91dCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzb3VyY2VzXG4gKiBvciBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnbihvYmplY3QsIHNvdXJjZSkge1xuICByZXR1cm4gb2JqZWN0ICYmIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCk7XG59XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY2xvbmVgIGFuZCBgXy5jbG9uZURlZXBgIHdoaWNoIHRyYWNrc1xuICogdHJhdmVyc2VkIG9iamVjdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNsb25lLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRnVsbF0gU3BlY2lmeSBhIGNsb25lIGluY2x1ZGluZyBzeW1ib2xzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBba2V5XSBUaGUga2V5IG9mIGB2YWx1ZWAuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIHBhcmVudCBvYmplY3Qgb2YgYHZhbHVlYC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cyBhbmQgdGhlaXIgY2xvbmUgY291bnRlcnBhcnRzLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGNsb25lZCB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gYmFzZUNsb25lKHZhbHVlLCBpc0RlZXAsIGlzRnVsbCwgY3VzdG9taXplciwga2V5LCBvYmplY3QsIHN0YWNrKSB7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChjdXN0b21pemVyKSB7XG4gICAgcmVzdWx0ID0gb2JqZWN0ID8gY3VzdG9taXplcih2YWx1ZSwga2V5LCBvYmplY3QsIHN0YWNrKSA6IGN1c3RvbWl6ZXIodmFsdWUpO1xuICB9XG4gIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgdmFyIGlzQXJyID0gaXNBcnJheSh2YWx1ZSk7XG4gIGlmIChpc0Fycikge1xuICAgIHJlc3VsdCA9IGluaXRDbG9uZUFycmF5KHZhbHVlKTtcbiAgICBpZiAoIWlzRGVlcCkge1xuICAgICAgcmV0dXJuIGNvcHlBcnJheSh2YWx1ZSwgcmVzdWx0KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSksXG4gICAgICAgIGlzRnVuYyA9IHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWc7XG5cbiAgICBpZiAoaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICByZXR1cm4gY2xvbmVCdWZmZXIodmFsdWUsIGlzRGVlcCk7XG4gICAgfVxuICAgIGlmICh0YWcgPT0gb2JqZWN0VGFnIHx8IHRhZyA9PSBhcmdzVGFnIHx8IChpc0Z1bmMgJiYgIW9iamVjdCkpIHtcbiAgICAgIGlmIChpc0hvc3RPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBvYmplY3QgPyB2YWx1ZSA6IHt9O1xuICAgICAgfVxuICAgICAgcmVzdWx0ID0gaW5pdENsb25lT2JqZWN0KGlzRnVuYyA/IHt9IDogdmFsdWUpO1xuICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgcmV0dXJuIGNvcHlTeW1ib2xzKHZhbHVlLCBiYXNlQXNzaWduKHJlc3VsdCwgdmFsdWUpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFjbG9uZWFibGVUYWdzW3RhZ10pIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdCA/IHZhbHVlIDoge307XG4gICAgICB9XG4gICAgICByZXN1bHQgPSBpbml0Q2xvbmVCeVRhZyh2YWx1ZSwgdGFnLCBiYXNlQ2xvbmUsIGlzRGVlcCk7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGZvciBjaXJjdWxhciByZWZlcmVuY2VzIGFuZCByZXR1cm4gaXRzIGNvcnJlc3BvbmRpbmcgY2xvbmUuXG4gIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KHZhbHVlKTtcbiAgaWYgKHN0YWNrZWQpIHtcbiAgICByZXR1cm4gc3RhY2tlZDtcbiAgfVxuICBzdGFjay5zZXQodmFsdWUsIHJlc3VsdCk7XG5cbiAgaWYgKCFpc0Fycikge1xuICAgIHZhciBwcm9wcyA9IGlzRnVsbCA/IGdldEFsbEtleXModmFsdWUpIDoga2V5cyh2YWx1ZSk7XG4gIH1cbiAgYXJyYXlFYWNoKHByb3BzIHx8IHZhbHVlLCBmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgaWYgKHByb3BzKSB7XG4gICAgICBrZXkgPSBzdWJWYWx1ZTtcbiAgICAgIHN1YlZhbHVlID0gdmFsdWVba2V5XTtcbiAgICB9XG4gICAgLy8gUmVjdXJzaXZlbHkgcG9wdWxhdGUgY2xvbmUgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICBhc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgYmFzZUNsb25lKHN1YlZhbHVlLCBpc0RlZXAsIGlzRnVsbCwgY3VzdG9taXplciwga2V5LCB2YWx1ZSwgc3RhY2spKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY3JlYXRlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFzc2lnbmluZ1xuICogcHJvcGVydGllcyB0byB0aGUgY3JlYXRlZCBvYmplY3QuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm90b3R5cGUgVGhlIG9iamVjdCB0byBpbmhlcml0IGZyb20uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICovXG5mdW5jdGlvbiBiYXNlQ3JlYXRlKHByb3RvKSB7XG4gIHJldHVybiBpc09iamVjdChwcm90bykgPyBvYmplY3RDcmVhdGUocHJvdG8pIDoge307XG59XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGdldEFsbEtleXNgIGFuZCBgZ2V0QWxsS2V5c0luYCB3aGljaCB1c2VzXG4gKiBga2V5c0Z1bmNgIGFuZCBgc3ltYm9sc0Z1bmNgIHRvIGdldCB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmRcbiAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBzeW1ib2xzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzRnVuYywgc3ltYm9sc0Z1bmMpIHtcbiAgdmFyIHJlc3VsdCA9IGtleXNGdW5jKG9iamVjdCk7XG4gIHJldHVybiBpc0FycmF5KG9iamVjdCkgPyByZXN1bHQgOiBhcnJheVB1c2gocmVzdWx0LCBzeW1ib2xzRnVuYyhvYmplY3QpKTtcbn1cblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0VGFnYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBgdG9TdHJpbmdUYWdgLlxuICovXG5mdW5jdGlvbiBiYXNlR2V0VGFnKHZhbHVlKSB7XG4gIHJldHVybiBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbn1cblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc05hdGl2ZWAgd2l0aG91dCBiYWQgc2hpbSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBuYXRpdmUgZnVuY3Rpb24sXG4gKiAgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNOYXRpdmUodmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdCh2YWx1ZSkgfHwgaXNNYXNrZWQodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBwYXR0ZXJuID0gKGlzRnVuY3Rpb24odmFsdWUpIHx8IGlzSG9zdE9iamVjdCh2YWx1ZSkpID8gcmVJc05hdGl2ZSA6IHJlSXNIb3N0Q3RvcjtcbiAgcmV0dXJuIHBhdHRlcm4udGVzdCh0b1NvdXJjZSh2YWx1ZSkpO1xufVxuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmtleXNgIHdoaWNoIGRvZXNuJ3QgdHJlYXQgc3BhcnNlIGFycmF5cyBhcyBkZW5zZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYmFzZUtleXMob2JqZWN0KSB7XG4gIGlmICghaXNQcm90b3R5cGUob2JqZWN0KSkge1xuICAgIHJldHVybiBuYXRpdmVLZXlzKG9iamVjdCk7XG4gIH1cbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0KG9iamVjdCkpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYga2V5ICE9ICdjb25zdHJ1Y3RvcicpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mICBgYnVmZmVyYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtCdWZmZXJ9IGJ1ZmZlciBUaGUgYnVmZmVyIHRvIGNsb25lLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEByZXR1cm5zIHtCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGNsb25lQnVmZmVyKGJ1ZmZlciwgaXNEZWVwKSB7XG4gIGlmIChpc0RlZXApIHtcbiAgICByZXR1cm4gYnVmZmVyLnNsaWNlKCk7XG4gIH1cbiAgdmFyIHJlc3VsdCA9IG5ldyBidWZmZXIuY29uc3RydWN0b3IoYnVmZmVyLmxlbmd0aCk7XG4gIGJ1ZmZlci5jb3B5KHJlc3VsdCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGBhcnJheUJ1ZmZlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGFycmF5QnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXlCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBhcnJheSBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpIHtcbiAgdmFyIHJlc3VsdCA9IG5ldyBhcnJheUJ1ZmZlci5jb25zdHJ1Y3RvcihhcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKTtcbiAgbmV3IFVpbnQ4QXJyYXkocmVzdWx0KS5zZXQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYGRhdGFWaWV3YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IGRhdGFWaWV3IFRoZSBkYXRhIHZpZXcgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIGRhdGEgdmlldy5cbiAqL1xuZnVuY3Rpb24gY2xvbmVEYXRhVmlldyhkYXRhVmlldywgaXNEZWVwKSB7XG4gIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKGRhdGFWaWV3LmJ1ZmZlcikgOiBkYXRhVmlldy5idWZmZXI7XG4gIHJldHVybiBuZXcgZGF0YVZpZXcuY29uc3RydWN0b3IoYnVmZmVyLCBkYXRhVmlldy5ieXRlT2Zmc2V0LCBkYXRhVmlldy5ieXRlTGVuZ3RoKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYG1hcGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBtYXAgVGhlIG1hcCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNsb25lRnVuYyBUaGUgZnVuY3Rpb24gdG8gY2xvbmUgdmFsdWVzLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCBtYXAuXG4gKi9cbmZ1bmN0aW9uIGNsb25lTWFwKG1hcCwgaXNEZWVwLCBjbG9uZUZ1bmMpIHtcbiAgdmFyIGFycmF5ID0gaXNEZWVwID8gY2xvbmVGdW5jKG1hcFRvQXJyYXkobWFwKSwgdHJ1ZSkgOiBtYXBUb0FycmF5KG1hcCk7XG4gIHJldHVybiBhcnJheVJlZHVjZShhcnJheSwgYWRkTWFwRW50cnksIG5ldyBtYXAuY29uc3RydWN0b3IpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgcmVnZXhwYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHJlZ2V4cCBUaGUgcmVnZXhwIHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHJlZ2V4cC5cbiAqL1xuZnVuY3Rpb24gY2xvbmVSZWdFeHAocmVnZXhwKSB7XG4gIHZhciByZXN1bHQgPSBuZXcgcmVnZXhwLmNvbnN0cnVjdG9yKHJlZ2V4cC5zb3VyY2UsIHJlRmxhZ3MuZXhlYyhyZWdleHApKTtcbiAgcmVzdWx0Lmxhc3RJbmRleCA9IHJlZ2V4cC5sYXN0SW5kZXg7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGBzZXRgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc2V0IFRoZSBzZXQgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjbG9uZUZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNsb25lIHZhbHVlcy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgc2V0LlxuICovXG5mdW5jdGlvbiBjbG9uZVNldChzZXQsIGlzRGVlcCwgY2xvbmVGdW5jKSB7XG4gIHZhciBhcnJheSA9IGlzRGVlcCA/IGNsb25lRnVuYyhzZXRUb0FycmF5KHNldCksIHRydWUpIDogc2V0VG9BcnJheShzZXQpO1xuICByZXR1cm4gYXJyYXlSZWR1Y2UoYXJyYXksIGFkZFNldEVudHJ5LCBuZXcgc2V0LmNvbnN0cnVjdG9yKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGBzeW1ib2xgIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHN5bWJvbCBUaGUgc3ltYm9sIG9iamVjdCB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCBzeW1ib2wgb2JqZWN0LlxuICovXG5mdW5jdGlvbiBjbG9uZVN5bWJvbChzeW1ib2wpIHtcbiAgcmV0dXJuIHN5bWJvbFZhbHVlT2YgPyBPYmplY3Qoc3ltYm9sVmFsdWVPZi5jYWxsKHN5bWJvbCkpIDoge307XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGB0eXBlZEFycmF5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHR5cGVkQXJyYXkgVGhlIHR5cGVkIGFycmF5IHRvIGNsb25lLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCB0eXBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gY2xvbmVUeXBlZEFycmF5KHR5cGVkQXJyYXksIGlzRGVlcCkge1xuICB2YXIgYnVmZmVyID0gaXNEZWVwID8gY2xvbmVBcnJheUJ1ZmZlcih0eXBlZEFycmF5LmJ1ZmZlcikgOiB0eXBlZEFycmF5LmJ1ZmZlcjtcbiAgcmV0dXJuIG5ldyB0eXBlZEFycmF5LmNvbnN0cnVjdG9yKGJ1ZmZlciwgdHlwZWRBcnJheS5ieXRlT2Zmc2V0LCB0eXBlZEFycmF5Lmxlbmd0aCk7XG59XG5cbi8qKlxuICogQ29waWVzIHRoZSB2YWx1ZXMgb2YgYHNvdXJjZWAgdG8gYGFycmF5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gc291cmNlIFRoZSBhcnJheSB0byBjb3B5IHZhbHVlcyBmcm9tLlxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5PVtdXSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgdG8uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gY29weUFycmF5KHNvdXJjZSwgYXJyYXkpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBzb3VyY2UubGVuZ3RoO1xuXG4gIGFycmF5IHx8IChhcnJheSA9IEFycmF5KGxlbmd0aCkpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGFycmF5W2luZGV4XSA9IHNvdXJjZVtpbmRleF07XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG4vKipcbiAqIENvcGllcyBwcm9wZXJ0aWVzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb20uXG4gKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMgdG8gY29weS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyB0by5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvcGllZCB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb3B5T2JqZWN0KHNvdXJjZSwgcHJvcHMsIG9iamVjdCwgY3VzdG9taXplcikge1xuICBvYmplY3QgfHwgKG9iamVjdCA9IHt9KTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG5cbiAgICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgICA/IGN1c3RvbWl6ZXIob2JqZWN0W2tleV0sIHNvdXJjZVtrZXldLCBrZXksIG9iamVjdCwgc291cmNlKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUgPT09IHVuZGVmaW5lZCA/IHNvdXJjZVtrZXldIDogbmV3VmFsdWUpO1xuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbi8qKlxuICogQ29waWVzIG93biBzeW1ib2wgcHJvcGVydGllcyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyBmcm9tLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3Q9e31dIFRoZSBvYmplY3QgdG8gY29weSBzeW1ib2xzIHRvLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gY29weVN5bWJvbHMoc291cmNlLCBvYmplY3QpIHtcbiAgcmV0dXJuIGNvcHlPYmplY3Qoc291cmNlLCBnZXRTeW1ib2xzKHNvdXJjZSksIG9iamVjdCk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAqL1xuZnVuY3Rpb24gZ2V0QWxsS2V5cyhvYmplY3QpIHtcbiAgcmV0dXJuIGJhc2VHZXRBbGxLZXlzKG9iamVjdCwga2V5cywgZ2V0U3ltYm9scyk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgZGF0YSBmb3IgYG1hcGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBtYXAgVGhlIG1hcCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIHJlZmVyZW5jZSBrZXkuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWFwIGRhdGEuXG4gKi9cbmZ1bmN0aW9uIGdldE1hcERhdGEobWFwLCBrZXkpIHtcbiAgdmFyIGRhdGEgPSBtYXAuX19kYXRhX187XG4gIHJldHVybiBpc0tleWFibGUoa2V5KVxuICAgID8gZGF0YVt0eXBlb2Yga2V5ID09ICdzdHJpbmcnID8gJ3N0cmluZycgOiAnaGFzaCddXG4gICAgOiBkYXRhLm1hcDtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBzeW1ib2wgcHJvcGVydGllcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICovXG52YXIgZ2V0U3ltYm9scyA9IG5hdGl2ZUdldFN5bWJvbHMgPyBvdmVyQXJnKG5hdGl2ZUdldFN5bWJvbHMsIE9iamVjdCkgOiBzdHViQXJyYXk7XG5cbi8qKlxuICogR2V0cyB0aGUgYHRvU3RyaW5nVGFnYCBvZiBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gKi9cbnZhciBnZXRUYWcgPSBiYXNlR2V0VGFnO1xuXG4vLyBGYWxsYmFjayBmb3IgZGF0YSB2aWV3cywgbWFwcywgc2V0cywgYW5kIHdlYWsgbWFwcyBpbiBJRSAxMSxcbi8vIGZvciBkYXRhIHZpZXdzIGluIEVkZ2UgPCAxNCwgYW5kIHByb21pc2VzIGluIE5vZGUuanMuXG5pZiAoKERhdGFWaWV3ICYmIGdldFRhZyhuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDEpKSkgIT0gZGF0YVZpZXdUYWcpIHx8XG4gICAgKE1hcCAmJiBnZXRUYWcobmV3IE1hcCkgIT0gbWFwVGFnKSB8fFxuICAgIChQcm9taXNlICYmIGdldFRhZyhQcm9taXNlLnJlc29sdmUoKSkgIT0gcHJvbWlzZVRhZykgfHxcbiAgICAoU2V0ICYmIGdldFRhZyhuZXcgU2V0KSAhPSBzZXRUYWcpIHx8XG4gICAgKFdlYWtNYXAgJiYgZ2V0VGFnKG5ldyBXZWFrTWFwKSAhPSB3ZWFrTWFwVGFnKSkge1xuICBnZXRUYWcgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHZhciByZXN1bHQgPSBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSxcbiAgICAgICAgQ3RvciA9IHJlc3VsdCA9PSBvYmplY3RUYWcgPyB2YWx1ZS5jb25zdHJ1Y3RvciA6IHVuZGVmaW5lZCxcbiAgICAgICAgY3RvclN0cmluZyA9IEN0b3IgPyB0b1NvdXJjZShDdG9yKSA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChjdG9yU3RyaW5nKSB7XG4gICAgICBzd2l0Y2ggKGN0b3JTdHJpbmcpIHtcbiAgICAgICAgY2FzZSBkYXRhVmlld0N0b3JTdHJpbmc6IHJldHVybiBkYXRhVmlld1RhZztcbiAgICAgICAgY2FzZSBtYXBDdG9yU3RyaW5nOiByZXR1cm4gbWFwVGFnO1xuICAgICAgICBjYXNlIHByb21pc2VDdG9yU3RyaW5nOiByZXR1cm4gcHJvbWlzZVRhZztcbiAgICAgICAgY2FzZSBzZXRDdG9yU3RyaW5nOiByZXR1cm4gc2V0VGFnO1xuICAgICAgICBjYXNlIHdlYWtNYXBDdG9yU3RyaW5nOiByZXR1cm4gd2Vha01hcFRhZztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn1cblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBhcnJheSBjbG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNsb25lLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lQXJyYXkoYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IGFycmF5LmNvbnN0cnVjdG9yKGxlbmd0aCk7XG5cbiAgLy8gQWRkIHByb3BlcnRpZXMgYXNzaWduZWQgYnkgYFJlZ0V4cCNleGVjYC5cbiAgaWYgKGxlbmd0aCAmJiB0eXBlb2YgYXJyYXlbMF0gPT0gJ3N0cmluZycgJiYgaGFzT3duUHJvcGVydHkuY2FsbChhcnJheSwgJ2luZGV4JykpIHtcbiAgICByZXN1bHQuaW5kZXggPSBhcnJheS5pbmRleDtcbiAgICByZXN1bHQuaW5wdXQgPSBhcnJheS5pbnB1dDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDbG9uZU9iamVjdChvYmplY3QpIHtcbiAgcmV0dXJuICh0eXBlb2Ygb2JqZWN0LmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgIWlzUHJvdG90eXBlKG9iamVjdCkpXG4gICAgPyBiYXNlQ3JlYXRlKGdldFByb3RvdHlwZShvYmplY3QpKVxuICAgIDoge307XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lIGJhc2VkIG9uIGl0cyBgdG9TdHJpbmdUYWdgLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgY2xvbmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBvciBgU3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNsb25lLlxuICogQHBhcmFtIHtzdHJpbmd9IHRhZyBUaGUgYHRvU3RyaW5nVGFnYCBvZiB0aGUgb2JqZWN0IHRvIGNsb25lLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2xvbmVGdW5jIFRoZSBmdW5jdGlvbiB0byBjbG9uZSB2YWx1ZXMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDbG9uZUJ5VGFnKG9iamVjdCwgdGFnLCBjbG9uZUZ1bmMsIGlzRGVlcCkge1xuICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgcmV0dXJuIGNsb25lQXJyYXlCdWZmZXIob2JqZWN0KTtcblxuICAgIGNhc2UgYm9vbFRhZzpcbiAgICBjYXNlIGRhdGVUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3IoK29iamVjdCk7XG5cbiAgICBjYXNlIGRhdGFWaWV3VGFnOlxuICAgICAgcmV0dXJuIGNsb25lRGF0YVZpZXcob2JqZWN0LCBpc0RlZXApO1xuXG4gICAgY2FzZSBmbG9hdDMyVGFnOiBjYXNlIGZsb2F0NjRUYWc6XG4gICAgY2FzZSBpbnQ4VGFnOiBjYXNlIGludDE2VGFnOiBjYXNlIGludDMyVGFnOlxuICAgIGNhc2UgdWludDhUYWc6IGNhc2UgdWludDhDbGFtcGVkVGFnOiBjYXNlIHVpbnQxNlRhZzogY2FzZSB1aW50MzJUYWc6XG4gICAgICByZXR1cm4gY2xvbmVUeXBlZEFycmF5KG9iamVjdCwgaXNEZWVwKTtcblxuICAgIGNhc2UgbWFwVGFnOlxuICAgICAgcmV0dXJuIGNsb25lTWFwKG9iamVjdCwgaXNEZWVwLCBjbG9uZUZ1bmMpO1xuXG4gICAgY2FzZSBudW1iZXJUYWc6XG4gICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3Iob2JqZWN0KTtcblxuICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgcmV0dXJuIGNsb25lUmVnRXhwKG9iamVjdCk7XG5cbiAgICBjYXNlIHNldFRhZzpcbiAgICAgIHJldHVybiBjbG9uZVNldChvYmplY3QsIGlzRGVlcCwgY2xvbmVGdW5jKTtcblxuICAgIGNhc2Ugc3ltYm9sVGFnOlxuICAgICAgcmV0dXJuIGNsb25lU3ltYm9sKG9iamVjdCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwgPyBNQVhfU0FGRV9JTlRFR0VSIDogbGVuZ3RoO1xuICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAodHlwZW9mIHZhbHVlID09ICdudW1iZXInIHx8IHJlSXNVaW50LnRlc3QodmFsdWUpKSAmJlxuICAgICh2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBzdWl0YWJsZSBmb3IgdXNlIGFzIHVuaXF1ZSBvYmplY3Qga2V5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzS2V5YWJsZSh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuICh0eXBlID09ICdzdHJpbmcnIHx8IHR5cGUgPT0gJ251bWJlcicgfHwgdHlwZSA9PSAnc3ltYm9sJyB8fCB0eXBlID09ICdib29sZWFuJylcbiAgICA/ICh2YWx1ZSAhPT0gJ19fcHJvdG9fXycpXG4gICAgOiAodmFsdWUgPT09IG51bGwpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgZnVuY2AgaGFzIGl0cyBzb3VyY2UgbWFza2VkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgZnVuY2AgaXMgbWFza2VkLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzTWFza2VkKGZ1bmMpIHtcbiAgcmV0dXJuICEhbWFza1NyY0tleSAmJiAobWFza1NyY0tleSBpbiBmdW5jKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYSBwcm90b3R5cGUgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvdG90eXBlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvdG90eXBlKHZhbHVlKSB7XG4gIHZhciBDdG9yID0gdmFsdWUgJiYgdmFsdWUuY29uc3RydWN0b3IsXG4gICAgICBwcm90byA9ICh0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IucHJvdG90eXBlKSB8fCBvYmplY3RQcm90bztcblxuICByZXR1cm4gdmFsdWUgPT09IHByb3RvO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGBmdW5jYCB0byBpdHMgc291cmNlIGNvZGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzb3VyY2UgY29kZS5cbiAqL1xuZnVuY3Rpb24gdG9Tb3VyY2UoZnVuYykge1xuICBpZiAoZnVuYyAhPSBudWxsKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBmdW5jVG9TdHJpbmcuY2FsbChmdW5jKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gKGZ1bmMgKyAnJyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbi8qKlxuICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5jbG9uZWAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgY2xvbmVzIGB2YWx1ZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJlY3Vyc2l2ZWx5IGNsb25lLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGRlZXAgY2xvbmVkIHZhbHVlLlxuICogQHNlZSBfLmNsb25lXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3RzID0gW3sgJ2EnOiAxIH0sIHsgJ2InOiAyIH1dO1xuICpcbiAqIHZhciBkZWVwID0gXy5jbG9uZURlZXAob2JqZWN0cyk7XG4gKiBjb25zb2xlLmxvZyhkZWVwWzBdID09PSBvYmplY3RzWzBdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGNsb25lRGVlcCh2YWx1ZSkge1xuICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCB0cnVlLCB0cnVlKTtcbn1cblxuLyoqXG4gKiBQZXJmb3JtcyBhXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICpcbiAqIF8uZXEob2JqZWN0LCBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEob2JqZWN0LCBvdGhlcik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoJ2EnLCAnYScpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEoJ2EnLCBPYmplY3QoJ2EnKSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoTmFOLCBOYU4pO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBvdGhlciB8fCAodmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcik7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGFuIGBhcmd1bWVudHNgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBgYXJndW1lbnRzYCBvYmplY3QsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoWzEsIDIsIDNdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJndW1lbnRzKHZhbHVlKSB7XG4gIC8vIFNhZmFyaSA4LjEgbWFrZXMgYGFyZ3VtZW50cy5jYWxsZWVgIGVudW1lcmFibGUgaW4gc3RyaWN0IG1vZGUuXG4gIHJldHVybiBpc0FycmF5TGlrZU9iamVjdCh2YWx1ZSkgJiYgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpICYmXG4gICAgKCFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHZhbHVlLCAnY2FsbGVlJykgfHwgb2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gYXJnc1RhZyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJyYXkoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXkoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNBcnJheSgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNBcnJheShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UuIEEgdmFsdWUgaXMgY29uc2lkZXJlZCBhcnJheS1saWtlIGlmIGl0J3NcbiAqIG5vdCBhIGZ1bmN0aW9uIGFuZCBoYXMgYSBgdmFsdWUubGVuZ3RoYCB0aGF0J3MgYW4gaW50ZWdlciBncmVhdGVyIHRoYW4gb3JcbiAqIGVxdWFsIHRvIGAwYCBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUmAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZShkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKCdhYmMnKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0FycmF5TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICFpc0Z1bmN0aW9uKHZhbHVlKTtcbn1cblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmlzQXJyYXlMaWtlYCBleGNlcHQgdGhhdCBpdCBhbHNvIGNoZWNrcyBpZiBgdmFsdWVgXG4gKiBpcyBhbiBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXktbGlrZSBvYmplY3QsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZU9iamVjdChkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlT2JqZWN0KCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5TGlrZU9iamVjdChfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2VPYmplY3QodmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNBcnJheUxpa2UodmFsdWUpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgYnVmZmVyLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4zLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgYnVmZmVyLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNCdWZmZXIobmV3IEJ1ZmZlcigyKSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgVWludDhBcnJheSgyKSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNCdWZmZXIgPSBuYXRpdmVJc0J1ZmZlciB8fCBzdHViRmFsc2U7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0Z1bmN0aW9uKF8pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNGdW5jdGlvbigvYWJjLyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAvLyBpbiBTYWZhcmkgOC05IHdoaWNoIHJldHVybnMgJ29iamVjdCcgZm9yIHR5cGVkIGFycmF5IGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXG4gIHZhciB0YWcgPSBpc09iamVjdCh2YWx1ZSkgPyBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSA6ICcnO1xuICByZXR1cm4gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZztcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgbGVuZ3RoLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gKiBbYFRvTGVuZ3RoYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9sZW5ndGgpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNMZW5ndGgoMyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aChJbmZpbml0eSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoJzMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiZcbiAgICB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDw9IE1BWF9TQUZFX0lOVEVHRVI7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgdGhlXG4gKiBbbGFuZ3VhZ2UgdHlwZV0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMpXG4gKiBvZiBgT2JqZWN0YC4gKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3Qoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KF8ubm9vcCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gISF2YWx1ZSAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLiBBIHZhbHVlIGlzIG9iamVjdC1saWtlIGlmIGl0J3Mgbm90IGBudWxsYFxuICogYW5kIGhhcyBhIGB0eXBlb2ZgIHJlc3VsdCBvZiBcIm9iamVjdFwiLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0Jztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy4gU2VlIHRoZVxuICogW0VTIHNwZWNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy5rZXlzKCdoaScpO1xuICogLy8gPT4gWycwJywgJzEnXVxuICovXG5mdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0KSA6IGJhc2VLZXlzKG9iamVjdCk7XG59XG5cbi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBlbXB0eSBhcnJheS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMTMuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGVtcHR5IGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgYXJyYXlzID0gXy50aW1lcygyLCBfLnN0dWJBcnJheSk7XG4gKlxuICogY29uc29sZS5sb2coYXJyYXlzKTtcbiAqIC8vID0+IFtbXSwgW11dXG4gKlxuICogY29uc29sZS5sb2coYXJyYXlzWzBdID09PSBhcnJheXNbMV0pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gc3R1YkFycmF5KCkge1xuICByZXR1cm4gW107XG59XG5cbi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyBgZmFsc2VgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4xMy4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50aW1lcygyLCBfLnN0dWJGYWxzZSk7XG4gKiAvLyA9PiBbZmFsc2UsIGZhbHNlXVxuICovXG5mdW5jdGlvbiBzdHViRmFsc2UoKSB7XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjbG9uZURlZXA7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChkYXRhLCBvcHRzKSB7XG4gICAgaWYgKCFvcHRzKSBvcHRzID0ge307XG4gICAgaWYgKHR5cGVvZiBvcHRzID09PSAnZnVuY3Rpb24nKSBvcHRzID0geyBjbXA6IG9wdHMgfTtcbiAgICB2YXIgY3ljbGVzID0gKHR5cGVvZiBvcHRzLmN5Y2xlcyA9PT0gJ2Jvb2xlYW4nKSA/IG9wdHMuY3ljbGVzIDogZmFsc2U7XG5cbiAgICB2YXIgY21wID0gb3B0cy5jbXAgJiYgKGZ1bmN0aW9uIChmKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFvYmogPSB7IGtleTogYSwgdmFsdWU6IG5vZGVbYV0gfTtcbiAgICAgICAgICAgICAgICB2YXIgYm9iaiA9IHsga2V5OiBiLCB2YWx1ZTogbm9kZVtiXSB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBmKGFvYmosIGJvYmopO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICB9KShvcHRzLmNtcCk7XG5cbiAgICB2YXIgc2VlbiA9IFtdO1xuICAgIHJldHVybiAoZnVuY3Rpb24gc3RyaW5naWZ5IChub2RlKSB7XG4gICAgICAgIGlmIChub2RlICYmIG5vZGUudG9KU09OICYmIHR5cGVvZiBub2RlLnRvSlNPTiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbm9kZSA9IG5vZGUudG9KU09OKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2Ygbm9kZSA9PSAnbnVtYmVyJykgcmV0dXJuIGlzRmluaXRlKG5vZGUpID8gJycgKyBub2RlIDogJ251bGwnO1xuICAgICAgICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnKSByZXR1cm4gSlNPTi5zdHJpbmdpZnkobm9kZSk7XG5cbiAgICAgICAgdmFyIGksIG91dDtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgICAgICAgIG91dCA9ICdbJztcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBub2RlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGkpIG91dCArPSAnLCc7XG4gICAgICAgICAgICAgICAgb3V0ICs9IHN0cmluZ2lmeShub2RlW2ldKSB8fCAnbnVsbCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0ICsgJ10nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGUgPT09IG51bGwpIHJldHVybiAnbnVsbCc7XG5cbiAgICAgICAgaWYgKHNlZW4uaW5kZXhPZihub2RlKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGlmIChjeWNsZXMpIHJldHVybiBKU09OLnN0cmluZ2lmeSgnX19jeWNsZV9fJyk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDb252ZXJ0aW5nIGNpcmN1bGFyIHN0cnVjdHVyZSB0byBKU09OJyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2VlbkluZGV4ID0gc2Vlbi5wdXNoKG5vZGUpIC0gMTtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhub2RlKS5zb3J0KGNtcCAmJiBjbXAobm9kZSkpO1xuICAgICAgICBvdXQgPSAnJztcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gc3RyaW5naWZ5KG5vZGVba2V5XSk7XG5cbiAgICAgICAgICAgIGlmICghdmFsdWUpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKG91dCkgb3V0ICs9ICcsJztcbiAgICAgICAgICAgIG91dCArPSBKU09OLnN0cmluZ2lmeShrZXkpICsgJzonICsgdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgc2Vlbi5zcGxpY2Uoc2VlbkluZGV4LCAxKTtcbiAgICAgICAgcmV0dXJuICd7JyArIG91dCArICd9JztcbiAgICB9KShkYXRhKTtcbn07XG4iLCAiLy8gQHB1c2hyb2NrcyBzY29wZVxuaW1wb3J0ICogYXMgc21hcnRlbnYgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRlbnYnO1xuaW1wb3J0ICogYXMgc21hcnRzdHJpbmcgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRzdHJpbmcnO1xuXG5leHBvcnQgeyBzbWFydGVudiwgc21hcnRzdHJpbmcgfTtcblxuLy8gdGhpcmQgcGFydHkgc2NvcGVcbmltcG9ydCBsb2Rhc2hDbG9uZURlZXAgZnJvbSAnbG9kYXNoLmNsb25lZGVlcCc7XG5pbXBvcnQgc3RhYmxlSnNvbjIgZnJvbSAnZmFzdC1qc29uLXN0YWJsZS1zdHJpbmdpZnknO1xuXG5jb25zdCBzdGFibGVKc29uID0gc3RhYmxlSnNvbjIgYXMgYW55O1xuXG5leHBvcnQgeyBsb2Rhc2hDbG9uZURlZXAsIHN0YWJsZUpzb24gfTtcblxuZXhwb3J0IGludGVyZmFjZSBJU3RhYmxlSnNvblR5cGVzIHtcbiAgQ29tcGFyYXRvcjogKFxuICAgIGE6IElTdGFibGVKc29uVHlwZXNbJ0NvbXBhcmVEZXNjcmlwdG9yJ10sXG4gICAgYjogSVN0YWJsZUpzb25UeXBlc1snQ29tcGFyZURlc2NyaXB0b3InXVxuICApID0+IG51bWJlcjtcbiAgQ29tcGFyZURlc2NyaXB0b3I6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogYW55O1xuICB9O1xuICBPcHRpb25zOiB7XG4gICAgY21wPzogKFxuICAgICAgYTogSVN0YWJsZUpzb25UeXBlc1snQ29tcGFyZURlc2NyaXB0b3InXSxcbiAgICAgIGI6IElTdGFibGVKc29uVHlwZXNbJ0NvbXBhcmVEZXNjcmlwdG9yJ11cbiAgICApID0+IG51bWJlcjtcbiAgICBjeWNsZXM/OiBib29sZWFuO1xuICB9O1xufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydGpzb24ucGx1Z2lucy5qcyc7XG5cbi8vIERlZmluZSBpbnRlcmZhY2VzIGFuZCB0eXBlcyBmb3IgYmV0dGVyIHR5cGUgY2hlY2tpbmcgYW5kIHJlYWRhYmlsaXR5XG5pbnRlcmZhY2UgSUJ1ZmZlckxpa2Uge1xuICB0eXBlOiAnQnVmZmVyJztcbiAgZGF0YTogc3RyaW5nIHwgYW55W107IC8vIGBhbnlbXWAgZm9yIGFycmF5IGRhdGEgcmVwcmVzZW50YXRpb25cbn1cblxuaW50ZXJmYWNlIElFbmNvZGVkQnVmZmVyIHtcbiAgdHlwZTogJ0VuY29kZWRCdWZmZXInLFxuICBkYXRhOiBzdHJpbmc7XG59XG5cbnR5cGUgVFBhcnNlUmV2aXZlciA9ICh0aGlzOiBhbnksIGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiBhbnk7XG50eXBlIFRQYXJzZVJlcGxhY2VyID0gKHRoaXM6IGFueSwga2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IGFueTtcblxuLy8gVXRpbGl0eSBmdW5jdGlvbnMgdG8gaGFuZGxlIGJhc2U2NCBlbmNvZGluZy9kZWNvZGluZyBpbiBhIGNyb3NzLXBsYXRmb3JtIHdheVxuZnVuY3Rpb24gYmFzZTY0RW5jb2RlKGRhdGE6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICAvLyBQcmVmZXIgTm9kZSdzIEJ1ZmZlciB3aGVuIGF2YWlsYWJsZVxuICBpZiAodHlwZW9mIEJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAvLyBAdHMtaWdub3JlIEJ1ZmZlciBtaWdodCBub3QgZXhpc3QgaW4gYnJvd3NlciBidWlsZHNcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oZGF0YSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICB9XG4gIC8vIEZhbGxiYWNrIGZvciBicm93c2Vyc1xuICByZXR1cm4gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLmRhdGEpKTtcbn1cblxuZnVuY3Rpb24gYmFzZTY0RGVjb2RlKHN0cjogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIC8vIFByZWZlciBOb2RlJ3MgQnVmZmVyIHdoZW4gYXZhaWxhYmxlXG4gIGlmICh0eXBlb2YgQnVmZmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEB0cy1pZ25vcmUgQnVmZmVyIG1pZ2h0IG5vdCBleGlzdCBpbiBicm93c2VyIGJ1aWxkc1xuICAgIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKHN0ciwgJ2Jhc2U2NCcpO1xuICAgIHJldHVybiBuZXcgVWludDhBcnJheShidWYuYnVmZmVyLCBidWYuYnl0ZU9mZnNldCwgYnVmLmJ5dGVMZW5ndGgpO1xuICB9XG4gIC8vIEZhbGxiYWNrIGZvciBicm93c2Vyc1xuICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKHN0cikpLm1hcCgoY2hhcikgPT4gY2hhci5jaGFyQ29kZUF0KDApKSk7XG59XG5cbi8vIE1haW4gZnVuY3Rpb25hbGl0eSB3aXRoIGNyb3NzLXBsYXRmb3JtIHN1cHBvcnRcbmZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZTogYW55LCBzcGFjZT86IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgcmVwbGFjZXIsIHNwYWNlKTtcbn1cblxuZnVuY3Rpb24gcGFyc2UodGV4dDogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIEpTT04ucGFyc2UodGV4dCwgcmV2aXZlcik7XG59XG5cbmNvbnN0IHJlcGxhY2VyOiBUUGFyc2VSZXBsYWNlciA9IChrZXksIHZhbHVlKSA9PiB7XG4gIC8vIENoZWNrIGlmIHZhbHVlIGlzIElCdWZmZXJMaWtlXG4gIGlmIChpc0J1ZmZlckxpa2UodmFsdWUpKSB7XG4gICAgbGV0IGJ1ZmZlckRhdGE6IFVpbnQ4QXJyYXk7XG5cbiAgICAvLyBIYW5kbGUgSUJ1ZmZlckxpa2Ugb2JqZWN0cyB3aXRoIGEgLmRhdGEgcHJvcGVydHlcbiAgICBpZiAoJ2RhdGEnIGluIHZhbHVlICYmIGlzQXJyYXkodmFsdWUuZGF0YSkpIHtcbiAgICAgIGJ1ZmZlckRhdGEgPSBuZXcgVWludDhBcnJheSh2YWx1ZS5kYXRhKTtcbiAgICB9IFxuICAgIC8vIEhhbmRsZSBVaW50OEFycmF5IGRpcmVjdGx5XG4gICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICBidWZmZXJEYXRhID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIG5vdCBhIHJlY29nbml6ZWQgZm9ybWF0LCByZXR1cm4gdmFsdWUgYXMgaXNcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBFbmNvZGUgdGhlIGJ1ZmZlckRhdGEgKFVpbnQ4QXJyYXkpIHRvIGJhc2U2NFxuICAgIGNvbnN0IGJhc2U2NERhdGEgPSAnYmFzZTY0OicgKyBiYXNlNjRFbmNvZGUoYnVmZmVyRGF0YSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdFbmNvZGVkQnVmZmVyJyxcbiAgICAgIGRhdGE6IGJhc2U2NERhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFJldHVybiB2YWx1ZSB1bmNoYW5nZWQgaWYgbm90IGJ1ZmZlci1saWtlXG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbmNvbnN0IHJldml2ZXI6IFRQYXJzZVJldml2ZXIgPSAoa2V5LCB2YWx1ZSkgPT4ge1xuICBpZiAoaXNFbmNvZGVkQnVmZmVyKHZhbHVlKSkge1xuICAgIGlmIChpc1N0cmluZyh2YWx1ZS5kYXRhKSAmJiB2YWx1ZS5kYXRhLnN0YXJ0c1dpdGgoJ2Jhc2U2NDonKSkge1xuICAgICAgLy8gQ29ycmVjdGx5IHNsaWNlIHRoZSAnYmFzZTY0OicgcHJlZml4IGJlZm9yZSBkZWNvZGluZ1xuICAgICAgY29uc3QgYmFzZTY0RGF0YSA9IHZhbHVlLmRhdGEuc2xpY2UoNyk7IC8vIFNraXAgJ2Jhc2U2NDonIHByZWZpeFxuICAgICAgY29uc3QgYnVmZmVyID0gYmFzZTY0RGVjb2RlKGJhc2U2NERhdGEpO1xuICAgICAgLy8gQXNzdW1pbmcgdGhlIHJlc3Qgb2YgeW91ciBhcHBsaWNhdGlvbiBjYW4gd29yayBkaXJlY3RseSB3aXRoIFVpbnQ4QXJyYXksXG4gICAgICAvLyBvdGhlcndpc2UsIHlvdSBtaWdodCBuZWVkIHRvIGNvbnZlcnQgaXQgdG8gYW5vdGhlciBmb3JtYXRcbiAgICAgIHJldHVybiBidWZmZXI7XG4gICAgfVxuICB9XG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbmZ1bmN0aW9uIGlzRW5jb2RlZEJ1ZmZlcih4OiBhbnkpOiB4IGlzIElFbmNvZGVkQnVmZmVyIHtcbiAgcmV0dXJuIGlzT2JqZWN0KHgpICYmICh4IGFzIGFueSkudHlwZSA9PT0gJ0VuY29kZWRCdWZmZXInICYmIGlzU3RyaW5nKCh4IGFzIGFueSkuZGF0YSk7XG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyTGlrZSh4OiBhbnkpOiB4IGlzIElCdWZmZXJMaWtlIHwgVWludDhBcnJheSB7XG4gIHJldHVybiAoXG4gICAgKGlzT2JqZWN0KHgpICYmXG4gICAgICAoKHggYXMgYW55KS50eXBlID09PSAnQnVmZmVyJyAmJlxuICAgICAgKGlzQXJyYXkoKHggYXMgYW55KS5kYXRhKSB8fCBpc1N0cmluZygoeCBhcyBhbnkpLmRhdGEpKSkpIHx8XG4gICAgeCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXlcbiAgKTtcbn1cblxuLyoqXG4gKiBXZSB1c2UgdGhpcyBmdW5jdGlvbiB0byBjaGVjayBpZiBhIHZhbHVlIGlzIGFuIGFycmF5XG4gKiBAcGFyYW0geFxuICogQHJldHVybnMgXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXkoeDogYW55KTogeCBpcyBhbnlbXSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHgpO1xufVxuXG4vKipcbiAqIFdlIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGEgdmFsdWUgaXMgYSBzdHJpbmdcbiAqIEBwYXJhbSB4XG4gKiBAcmV0dXJucyBcbiAqL1xuZnVuY3Rpb24gaXNTdHJpbmcoeDogYW55KTogeCBpcyBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIHggPT09ICdzdHJpbmcnO1xufVxuXG4vKipcbiAqIFdlIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGEgdmFsdWUgaXMgYW4gb2JqZWN0XG4gKiBAcGFyYW0geFxuICovXG5mdW5jdGlvbiBpc09iamVjdCh4OiBhbnkpOiB4IGlzIG9iamVjdCB7XG4gIHJldHVybiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgeCAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IHsgc3RyaW5naWZ5LCBwYXJzZSwgcmVwbGFjZXIsIHJldml2ZXIgfTtcbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vc21hcnRqc29uLnBsdWdpbnMuanMnO1xuaW1wb3J0ICogYXMgYnVmZmVyaGFuZGxpbmcgZnJvbSAnLi9idWZmZXJoYW5kbGluZy5qcyc7XG5cbmludGVyZmFjZSBKc29uT2JqZWN0IHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG4vKipcbiAqIGFsbG93cyB5b3UgdG8gcGFyc2UgYSBqc29uXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZSA9IGJ1ZmZlcmhhbmRsaW5nLnBhcnNlO1xuXG5leHBvcnQgY29uc3QgcGFyc2VKc29uTCA9IChqc29ubERhdGE6IHN0cmluZyk6IEpzb25PYmplY3RbXSA9PiB7XG4gIGNvbnN0IGxpbmVzID0ganNvbmxEYXRhLnNwbGl0KCdcXG4nKTtcbiAgY29uc3QgcGFyc2VkRGF0YTogSnNvbk9iamVjdFtdID0gbGluZXMucmVkdWNlKChhY2MsIGxpbmUpID0+IHtcbiAgICBjb25zdCB0cmltbWVkID0gbGluZS50cmltKCk7XG4gICAgaWYgKHRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgYWNjLnB1c2gocGFyc2UodHJpbW1lZCkpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSBhcyBKc29uT2JqZWN0W10pO1xuICByZXR1cm4gcGFyc2VkRGF0YTtcbn1cblxuZXhwb3J0IGNvbnN0IHN0cmluZ2lmeUpzb25MID0gKGl0ZW1zOiBhbnlbXSk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHN0cmluZ2lmeShpdGVtKSkuam9pbignXFxuJyk7XG59XG5cbi8qKlxuICogc3RhYmxlT25lV2F5U3RyaW5naWZ5XG4gKiAtIFByb2R1Y2VzIGEgc3RhYmxlLCBkZXRlcm1pbmlzdGljIEpTT04gc3RyaW5nXG4gKiAtIEhhbmRsZXMgY2lyY3VsYXIgcmVmZXJlbmNlcyB3aXRob3V0IHRocm93aW5nIChyZXBsYWNlcyBjeWNsZXMpXG4gKiAtIFNhZmUgZm9yIGhhc2hpbmcvY29tcGFyaXNvbnMgKFwib25lLXdheVwiOyBub3QgaW50ZW5kZWQgZm9yIHJvdW5kLXRyaXBzKVxuICovXG5leHBvcnQgY29uc3Qgc3RhYmxlT25lV2F5U3RyaW5naWZ5ID0gKFxuICBvYmpBcmc6IGFueSxcbiAgc2ltcGxlT3JkZXJBcnJheT86IHN0cmluZ1tdLFxuICBvcHRpb25zQXJnOiBwbHVnaW5zLklTdGFibGVKc29uVHlwZXNbJ09wdGlvbnMnXSA9IHt9XG4pOiBzdHJpbmcgPT4ge1xuICAvLyBQcmVwYXJlIG9iamVjdCB3aXRob3V0IHRocm93aW5nIG9uIGNpcmN1bGFyIHJlZmVyZW5jZXMsIGFuZCBlbmNvZGUgYnVmZmVyc1xuICBjb25zdCB2aXNpdGVkID0gbmV3IFdlYWtTZXQ8b2JqZWN0PigpO1xuICBjb25zdCBzYW5pdGl6ZSA9ICh2YWw6IGFueSk6IGFueSA9PiB7XG4gICAgLy8gcHJpbWl0aXZlc1xuICAgIGlmICh2YWwgPT09IG51bGwgfHwgdHlwZW9mIHZhbCAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIC8vIEVuY29kZSBidWZmZXJzL3R5cGVkIGFycmF5cyB2aWEgZXhpc3RpbmcgcmVwbGFjZXJcbiAgICBjb25zdCByZXBsYWNlZCA9IChidWZmZXJoYW5kbGluZy5yZXBsYWNlciBhcyBhbnkpKCcnLCB2YWwpO1xuICAgIGlmIChyZXBsYWNlZCAmJiByZXBsYWNlZC50eXBlID09PSAnRW5jb2RlZEJ1ZmZlcicgJiYgdHlwZW9mIHJlcGxhY2VkLmRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gcmVwbGFjZWQ7XG4gICAgfVxuICAgIC8vIEhhbmRsZSBjaXJjdWxhciByZWZlcmVuY2VzXG4gICAgaWYgKHZpc2l0ZWQuaGFzKHZhbCkpIHtcbiAgICAgIHJldHVybiAnX19jeWNsZV9fJztcbiAgICB9XG4gICAgdmlzaXRlZC5hZGQodmFsKTtcbiAgICAvLyBBcnJheXNcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXR1cm4gdmFsLm1hcCgoaXRlbSkgPT4gc2FuaXRpemUoaXRlbSkpO1xuICAgIH1cbiAgICAvLyBQbGFpbiBvYmplY3RzIGFuZCBjbGFzcyBpbnN0YW5jZXM6IGNvcHkgZW51bWVyYWJsZSBvd24gcHJvcHNcbiAgICBjb25zdCBvdXQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWwpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBvdXRba2V5XSA9IHNhbml0aXplKCh2YWwgYXMgYW55KVtrZXldKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gSW4gY2FzZSBvZiBnZXR0ZXJzIHRocm93aW5nIG9yIG5vbi1zZXJpYWxpemFibGUsIG1hcmtcbiAgICAgICAgb3V0W2tleV0gPSAnX191bnNlcmlhbGl6YWJsZV9fJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfTtcblxuICBjb25zdCBvYmogPSBzYW5pdGl6ZShvYmpBcmcpO1xuICBjb25zdCBvcHRpb25zOiBwbHVnaW5zLklTdGFibGVKc29uVHlwZXNbJ09wdGlvbnMnXSA9IHtcbiAgICAuLi5vcHRpb25zQXJnLFxuICAgIGN5Y2xlczogdHJ1ZSxcbiAgfTtcbiAgaWYgKHNpbXBsZU9yZGVyQXJyYXkgJiYgIW9wdGlvbnMuY21wKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICAgIHNpbXBsZU9yZGVyQXJyYXkuZm9yRWFjaCgoa2V5LCBpZHgpID0+IG9yZGVyLnNldChrZXksIGlkeCkpO1xuICAgIG9wdGlvbnMuY21wID0gKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IGFJZHggPSBvcmRlci5oYXMoYS5rZXkpID8gKG9yZGVyLmdldChhLmtleSkgYXMgbnVtYmVyKSA6IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICAgIGNvbnN0IGJJZHggPSBvcmRlci5oYXMoYi5rZXkpID8gKG9yZGVyLmdldChiLmtleSkgYXMgbnVtYmVyKSA6IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICAgIGlmIChhSWR4ICE9PSBiSWR4KSByZXR1cm4gYUlkeCAtIGJJZHg7XG4gICAgICByZXR1cm4gYS5rZXkgPCBiLmtleSA/IC0xIDogYS5rZXkgPiBiLmtleSA/IDEgOiAwO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIHBsdWdpbnMuc3RhYmxlSnNvbihvYmosIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gb2JqQXJnXG4gKiBAcGFyYW0gb3B0aW9uc0FyZ1xuICovXG5leHBvcnQgY29uc3Qgc3RyaW5naWZ5ID0gKFxuICBvYmpBcmc6IGFueSxcbiAgc2ltcGxlT3JkZXJBcnJheT86IHN0cmluZ1tdLFxuICBvcHRpb25zQXJnOiBwbHVnaW5zLklTdGFibGVKc29uVHlwZXNbJ09wdGlvbnMnXSA9IHt9XG4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBidWZmZXJlZEpzb24gPSBidWZmZXJoYW5kbGluZy5zdHJpbmdpZnkob2JqQXJnKTtcbiAgb2JqQXJnID0gSlNPTi5wYXJzZShidWZmZXJlZEpzb24pO1xuICAvLyBkZXJpdmUgYSBzaW1wbGUgY29tcGFyYXRvciBmcm9tIHNpbXBsZU9yZGVyQXJyYXkgaWYgcHJvdmlkZWQgYW5kIG5vIGN1c3RvbSBjbXAgc3VwcGxpZWRcbiAgbGV0IG9wdGlvbnMgPSB7IC4uLm9wdGlvbnNBcmcgfTtcbiAgaWYgKHNpbXBsZU9yZGVyQXJyYXkgJiYgIW9wdGlvbnMuY21wKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICAgIHNpbXBsZU9yZGVyQXJyYXkuZm9yRWFjaCgoa2V5LCBpZHgpID0+IG9yZGVyLnNldChrZXksIGlkeCkpO1xuICAgIG9wdGlvbnMuY21wID0gKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IGFJZHggPSBvcmRlci5oYXMoYS5rZXkpID8gKG9yZGVyLmdldChhLmtleSkgYXMgbnVtYmVyKSA6IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICAgIGNvbnN0IGJJZHggPSBvcmRlci5oYXMoYi5rZXkpID8gKG9yZGVyLmdldChiLmtleSkgYXMgbnVtYmVyKSA6IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICAgIGlmIChhSWR4ICE9PSBiSWR4KSByZXR1cm4gYUlkeCAtIGJJZHg7XG4gICAgICAvLyBmYWxsYmFjayB0byBsZXhpY29ncmFwaGljIG9yZGVyIGZvciBzdGFibGUgYmVoYXZpb3JcbiAgICAgIHJldHVybiBhLmtleSA8IGIua2V5ID8gLTEgOiBhLmtleSA+IGIua2V5ID8gMSA6IDA7XG4gICAgfTtcbiAgfVxuICBsZXQgcmV0dXJuSnNvbiA9IHBsdWdpbnMuc3RhYmxlSnNvbihvYmpBcmcsIG9wdGlvbnMpO1xuICByZXR1cm4gcmV0dXJuSnNvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBzdHJpbmdpZnlQcmV0dHkgPSAob2JqZWN0QXJnOiBhbnkpID0+IHtcbiAgY29uc3Qgc3RyaW5naWZpZWQgPSBzdHJpbmdpZnkob2JqZWN0QXJnKTtcbiAgY29uc3Qgb2JqZWN0ID0gSlNPTi5wYXJzZShzdHJpbmdpZmllZCk7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmplY3QsIG51bGwsIDIpO1xufVxuXG5leHBvcnQgY29uc3Qgc3RyaW5naWZ5QmFzZTY0ID0gKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIHN0cmluZ2lmeT4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBzdHJpbmdpZmllZFJlc3VsdCA9IHN0cmluZ2lmeSguLi5hcmdzKTtcbiAgcmV0dXJuIHBsdWdpbnMuc21hcnRzdHJpbmcuYmFzZTY0LmVuY29kZVVyaShzdHJpbmdpZmllZFJlc3VsdCk7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VCYXNlNjQgPSAoYmFzZTY0SnNvblN0cmluZ0FyZzogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGJhc2U2NCA9IHBsdWdpbnMuc21hcnRzdHJpbmcuYmFzZTY0IGFzIGFueTtcbiAgY29uc3QgZGVjb2RlRm46IChpbnB1dDogc3RyaW5nKSA9PiBzdHJpbmcgPSBiYXNlNjQuZGVjb2RlVXJpIHx8IGJhc2U2NC5kZWNvZGU7XG4gIGNvbnN0IHNpbXBsZVN0cmluZ2lmaWVkID0gZGVjb2RlRm4oYmFzZTY0SnNvblN0cmluZ0FyZyk7XG4gIHJldHVybiBwYXJzZShzaW1wbGVTdHJpbmdpZmllZCk7XG59O1xuXG5leHBvcnQgY2xhc3MgU21hcnRqc29uIHtcbiAgLyoqXG4gICAqIGVuZm9sZHMgZGF0YSBmcm9tIGFuIG9iamVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlbmZvbGRGcm9tT2JqZWN0PFQgZXh0ZW5kcyB0eXBlb2YgU21hcnRqc29uPih0aGlzOiBULCBvYmplY3RBcmc6IGFueSk6IEluc3RhbmNlVHlwZTxUPiB7XG4gICAgY29uc3QgbmV3SW5zdGFuY2UgPSBuZXcgdGhpcygpIGFzIEluc3RhbmNlVHlwZTxUPjtcbiAgICBjb25zdCBzYXZlYWJsZXM6IHN0cmluZ1tdID0gKG5ld0luc3RhbmNlIGFzIGFueSkuc2F2ZWFibGVQcm9wZXJ0aWVzIHx8IFtdO1xuICAgIGZvciAoY29uc3Qga2V5TmFtZSBpbiBvYmplY3RBcmcpIHtcbiAgICAgIGlmIChzYXZlYWJsZXMuaW5kZXhPZihrZXlOYW1lKSAhPT0gLTEpIHtcbiAgICAgICAgKG5ld0luc3RhbmNlIGFzIGFueSlba2V5TmFtZV0gPSBvYmplY3RBcmdba2V5TmFtZV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdJbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBlbmZvbGQgZnJvbSBqc29uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGVuZm9sZEZyb21Kc29uPFQgZXh0ZW5kcyB0eXBlb2YgU21hcnRqc29uPih0aGlzOiBULCBqc29uQXJnOiBzdHJpbmcpOiBJbnN0YW5jZVR5cGU8VD4ge1xuICAgIGNvbnN0IG9iamVjdEZyb21Kc29uID0gcGFyc2UoanNvbkFyZyk7XG4gICAgcmV0dXJuIHRoaXMuZW5mb2xkRnJvbU9iamVjdChvYmplY3RGcm9tSnNvbik7XG4gIH1cblxuICAvLyA9PT09PT09PVxuICAvLyBJTlNUQU5DRVxuICAvLyA9PT09PT09PVxuXG4gIHB1YmxpYyBzYXZlYWJsZVByb3BlcnRpZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBmb2xkcyBhIGNsYXNzIGludG8gYW4gb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgZm9sZFRvT2JqZWN0KCkge1xuICAgIGNvbnN0IHRyYWNrU2V0ID0gbmV3IFNldDxTbWFydGpzb24+KCk7XG4gICAgdHJhY2tTZXQuYWRkKHRoaXMpO1xuICAgIHJldHVybiB0aGlzLmZvbGRUb09iamVjdEludGVybmFsKHRyYWNrU2V0KTtcbiAgfVxuXG4gIHByaXZhdGUgZm9sZFRvT2JqZWN0SW50ZXJuYWwodHJhY2tTZXQ6IFNldDxTbWFydGpzb24+KSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgY29uc3QgZm9sZFZhbHVlID0gKHZhbDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBTbWFydGpzb24pIHtcbiAgICAgICAgaWYgKHRyYWNrU2V0Lmhhcyh2YWwpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjeWNsZSBkZXRlY3RlZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRyYWNrU2V0LmFkZCh2YWwpO1xuICAgICAgICByZXR1cm4gdmFsLmZvbGRUb09iamVjdEludGVybmFsKHRyYWNrU2V0KTtcbiAgICAgIH1cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgcmV0dXJuIHZhbC5tYXAoKGl0ZW0pID0+IGZvbGRWYWx1ZShpdGVtKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGx1Z2lucy5sb2Rhc2hDbG9uZURlZXAodmFsKTtcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzOiBzdHJpbmdbXSA9ICh0aGlzIGFzIGFueSkuc2F2ZWFibGVQcm9wZXJ0aWVzIHx8IFtdO1xuICAgIGZvciAoY29uc3Qga2V5TmFtZSBvZiBwcm9wcykge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzW2tleU5hbWVdO1xuICAgICAgcmVzdWx0W2tleU5hbWVdID0gZm9sZFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBmb2xkcyBhIGNsYXNzIGludG8gYW4gb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgZm9sZFRvSnNvbigpIHtcbiAgICBjb25zdCBmb2xkZWRPYmplY3QgPSB0aGlzLmZvbGRUb09iamVjdCgpO1xuICAgIHJldHVybiBzdHJpbmdpZnkoZm9sZGVkT2JqZWN0KTtcbiAgfVxufVxuXG4vKipcbiAqIERlY29yYXRvciB0aGF0IG1hcmtzIGEgcHJvcGVydHkgYXMgZm9sZGFibGVcbiAqL1xuZXhwb3J0IGNvbnN0IGZvbGREZWMgPSAoKSA9PiB7XG4gIHJldHVybiAodGFyZ2V0OiBhbnksIGtleTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCF0YXJnZXQuc2F2ZWFibGVQcm9wZXJ0aWVzKSB7XG4gICAgICB0YXJnZXQuc2F2ZWFibGVQcm9wZXJ0aWVzID0gW107XG4gICAgfVxuICAgIHRhcmdldC5zYXZlYWJsZVByb3BlcnRpZXMucHVzaChrZXkpO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZXBFcXVhbE9iamVjdHMgPSAob2JqZWN0MTogYW55LCBvYmplY3QyOiBhbnkpOiBib29sZWFuID0+IHtcbiAgY29uc3Qgb2JqZWN0MVN0cmluZyA9IHN0cmluZ2lmeShvYmplY3QxKTtcbiAgY29uc3Qgb2JqZWN0MlN0cmluZyA9IHN0cmluZ2lmeShvYmplY3QyKTtcbiAgcmV0dXJuIG9iamVjdDFTdHJpbmcgPT09IG9iamVjdDJTdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgZGVlcEVxdWFsSnNvbkxTdHJpbmdzID0gKGpzb25MU3RyaW5nMTogc3RyaW5nLCBqc29uTFN0cmluZzI6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBmaXJzdEFycmF5ID0gcGFyc2VKc29uTChqc29uTFN0cmluZzEpO1xuICBjb25zdCBzZWNvbmRBcnJheSA9IHBhcnNlSnNvbkwoanNvbkxTdHJpbmcyKTtcbiAgcmV0dXJuIGRlZXBFcXVhbE9iamVjdHMoZmlyc3RBcnJheSwgc2Vjb25kQXJyYXkpO1xufVxuIiwgImNvbnN0IGluc3RhbmNlT2ZBbnkgPSAob2JqZWN0LCBjb25zdHJ1Y3RvcnMpID0+IGNvbnN0cnVjdG9ycy5zb21lKChjKSA9PiBvYmplY3QgaW5zdGFuY2VvZiBjKTtcblxubGV0IGlkYlByb3h5YWJsZVR5cGVzO1xubGV0IGN1cnNvckFkdmFuY2VNZXRob2RzO1xuLy8gVGhpcyBpcyBhIGZ1bmN0aW9uIHRvIHByZXZlbnQgaXQgdGhyb3dpbmcgdXAgaW4gbm9kZSBlbnZpcm9ubWVudHMuXG5mdW5jdGlvbiBnZXRJZGJQcm94eWFibGVUeXBlcygpIHtcbiAgICByZXR1cm4gKGlkYlByb3h5YWJsZVR5cGVzIHx8XG4gICAgICAgIChpZGJQcm94eWFibGVUeXBlcyA9IFtcbiAgICAgICAgICAgIElEQkRhdGFiYXNlLFxuICAgICAgICAgICAgSURCT2JqZWN0U3RvcmUsXG4gICAgICAgICAgICBJREJJbmRleCxcbiAgICAgICAgICAgIElEQkN1cnNvcixcbiAgICAgICAgICAgIElEQlRyYW5zYWN0aW9uLFxuICAgICAgICBdKSk7XG59XG4vLyBUaGlzIGlzIGEgZnVuY3Rpb24gdG8gcHJldmVudCBpdCB0aHJvd2luZyB1cCBpbiBub2RlIGVudmlyb25tZW50cy5cbmZ1bmN0aW9uIGdldEN1cnNvckFkdmFuY2VNZXRob2RzKCkge1xuICAgIHJldHVybiAoY3Vyc29yQWR2YW5jZU1ldGhvZHMgfHxcbiAgICAgICAgKGN1cnNvckFkdmFuY2VNZXRob2RzID0gW1xuICAgICAgICAgICAgSURCQ3Vyc29yLnByb3RvdHlwZS5hZHZhbmNlLFxuICAgICAgICAgICAgSURCQ3Vyc29yLnByb3RvdHlwZS5jb250aW51ZSxcbiAgICAgICAgICAgIElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWVQcmltYXJ5S2V5LFxuICAgICAgICBdKSk7XG59XG5jb25zdCB0cmFuc2FjdGlvbkRvbmVNYXAgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgdHJhbnNmb3JtQ2FjaGUgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgcmV2ZXJzZVRyYW5zZm9ybUNhY2hlID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIHByb21pc2lmeVJlcXVlc3QocmVxdWVzdCkge1xuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IHVubGlzdGVuID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVxdWVzdC5yZW1vdmVFdmVudExpc3RlbmVyKCdzdWNjZXNzJywgc3VjY2Vzcyk7XG4gICAgICAgICAgICByZXF1ZXN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXJyb3IpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzdWNjZXNzID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh3cmFwKHJlcXVlc3QucmVzdWx0KSk7XG4gICAgICAgICAgICB1bmxpc3RlbigpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBlcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChyZXF1ZXN0LmVycm9yKTtcbiAgICAgICAgICAgIHVubGlzdGVuKCk7XG4gICAgICAgIH07XG4gICAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcignc3VjY2VzcycsIHN1Y2Nlc3MpO1xuICAgICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXJyb3IpO1xuICAgIH0pO1xuICAgIC8vIFRoaXMgbWFwcGluZyBleGlzdHMgaW4gcmV2ZXJzZVRyYW5zZm9ybUNhY2hlIGJ1dCBkb2Vzbid0IGRvZXNuJ3QgZXhpc3QgaW4gdHJhbnNmb3JtQ2FjaGUuIFRoaXNcbiAgICAvLyBpcyBiZWNhdXNlIHdlIGNyZWF0ZSBtYW55IHByb21pc2VzIGZyb20gYSBzaW5nbGUgSURCUmVxdWVzdC5cbiAgICByZXZlcnNlVHJhbnNmb3JtQ2FjaGUuc2V0KHByb21pc2UsIHJlcXVlc3QpO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gY2FjaGVEb25lUHJvbWlzZUZvclRyYW5zYWN0aW9uKHR4KSB7XG4gICAgLy8gRWFybHkgYmFpbCBpZiB3ZSd2ZSBhbHJlYWR5IGNyZWF0ZWQgYSBkb25lIHByb21pc2UgZm9yIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAgaWYgKHRyYW5zYWN0aW9uRG9uZU1hcC5oYXModHgpKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgZG9uZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgdW5saXN0ZW4gPSAoKSA9PiB7XG4gICAgICAgICAgICB0eC5yZW1vdmVFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIGNvbXBsZXRlKTtcbiAgICAgICAgICAgIHR4LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXJyb3IpO1xuICAgICAgICAgICAgdHgucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBlcnJvcik7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgdW5saXN0ZW4oKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgICAgICByZWplY3QodHguZXJyb3IgfHwgbmV3IERPTUV4Y2VwdGlvbignQWJvcnRFcnJvcicsICdBYm9ydEVycm9yJykpO1xuICAgICAgICAgICAgdW5saXN0ZW4oKTtcbiAgICAgICAgfTtcbiAgICAgICAgdHguYWRkRXZlbnRMaXN0ZW5lcignY29tcGxldGUnLCBjb21wbGV0ZSk7XG4gICAgICAgIHR4LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXJyb3IpO1xuICAgICAgICB0eC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIGVycm9yKTtcbiAgICB9KTtcbiAgICAvLyBDYWNoZSBpdCBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuICAgIHRyYW5zYWN0aW9uRG9uZU1hcC5zZXQodHgsIGRvbmUpO1xufVxubGV0IGlkYlByb3h5VHJhcHMgPSB7XG4gICAgZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciB0cmFuc2FjdGlvbi5kb25lLlxuICAgICAgICAgICAgaWYgKHByb3AgPT09ICdkb25lJylcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb25Eb25lTWFwLmdldCh0YXJnZXQpO1xuICAgICAgICAgICAgLy8gTWFrZSB0eC5zdG9yZSByZXR1cm4gdGhlIG9ubHkgc3RvcmUgaW4gdGhlIHRyYW5zYWN0aW9uLCBvciB1bmRlZmluZWQgaWYgdGhlcmUgYXJlIG1hbnkuXG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ3N0b3JlJykge1xuICAgICAgICAgICAgICAgIHJldHVybiByZWNlaXZlci5vYmplY3RTdG9yZU5hbWVzWzFdXG4gICAgICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIDogcmVjZWl2ZXIub2JqZWN0U3RvcmUocmVjZWl2ZXIub2JqZWN0U3RvcmVOYW1lc1swXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gRWxzZSB0cmFuc2Zvcm0gd2hhdGV2ZXIgd2UgZ2V0IGJhY2suXG4gICAgICAgIHJldHVybiB3cmFwKHRhcmdldFtwcm9wXSk7XG4gICAgfSxcbiAgICBzZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSkge1xuICAgICAgICB0YXJnZXRbcHJvcF0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiAmJlxuICAgICAgICAgICAgKHByb3AgPT09ICdkb25lJyB8fCBwcm9wID09PSAnc3RvcmUnKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByb3AgaW4gdGFyZ2V0O1xuICAgIH0sXG59O1xuZnVuY3Rpb24gcmVwbGFjZVRyYXBzKGNhbGxiYWNrKSB7XG4gICAgaWRiUHJveHlUcmFwcyA9IGNhbGxiYWNrKGlkYlByb3h5VHJhcHMpO1xufVxuZnVuY3Rpb24gd3JhcEZ1bmN0aW9uKGZ1bmMpIHtcbiAgICAvLyBEdWUgdG8gZXhwZWN0ZWQgb2JqZWN0IGVxdWFsaXR5ICh3aGljaCBpcyBlbmZvcmNlZCBieSB0aGUgY2FjaGluZyBpbiBgd3JhcGApLCB3ZVxuICAgIC8vIG9ubHkgY3JlYXRlIG9uZSBuZXcgZnVuYyBwZXIgZnVuYy5cbiAgICAvLyBDdXJzb3IgbWV0aG9kcyBhcmUgc3BlY2lhbCwgYXMgdGhlIGJlaGF2aW91ciBpcyBhIGxpdHRsZSBtb3JlIGRpZmZlcmVudCB0byBzdGFuZGFyZCBJREIuIEluXG4gICAgLy8gSURCLCB5b3UgYWR2YW5jZSB0aGUgY3Vyc29yIGFuZCB3YWl0IGZvciBhIG5ldyAnc3VjY2Vzcycgb24gdGhlIElEQlJlcXVlc3QgdGhhdCBnYXZlIHlvdSB0aGVcbiAgICAvLyBjdXJzb3IuIEl0J3Mga2luZGEgbGlrZSBhIHByb21pc2UgdGhhdCBjYW4gcmVzb2x2ZSB3aXRoIG1hbnkgdmFsdWVzLiBUaGF0IGRvZXNuJ3QgbWFrZSBzZW5zZVxuICAgIC8vIHdpdGggcmVhbCBwcm9taXNlcywgc28gZWFjaCBhZHZhbmNlIG1ldGhvZHMgcmV0dXJucyBhIG5ldyBwcm9taXNlIGZvciB0aGUgY3Vyc29yIG9iamVjdCwgb3JcbiAgICAvLyB1bmRlZmluZWQgaWYgdGhlIGVuZCBvZiB0aGUgY3Vyc29yIGhhcyBiZWVuIHJlYWNoZWQuXG4gICAgaWYgKGdldEN1cnNvckFkdmFuY2VNZXRob2RzKCkuaW5jbHVkZXMoZnVuYykpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgICAgICAvLyBDYWxsaW5nIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiB3aXRoIHRoZSBwcm94eSBhcyAndGhpcycgY2F1c2VzIElMTEVHQUwgSU5WT0NBVElPTiwgc28gd2UgdXNlXG4gICAgICAgICAgICAvLyB0aGUgb3JpZ2luYWwgb2JqZWN0LlxuICAgICAgICAgICAgZnVuYy5hcHBseSh1bndyYXAodGhpcyksIGFyZ3MpO1xuICAgICAgICAgICAgcmV0dXJuIHdyYXAodGhpcy5yZXF1ZXN0KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgIC8vIENhbGxpbmcgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIHdpdGggdGhlIHByb3h5IGFzICd0aGlzJyBjYXVzZXMgSUxMRUdBTCBJTlZPQ0FUSU9OLCBzbyB3ZSB1c2VcbiAgICAgICAgLy8gdGhlIG9yaWdpbmFsIG9iamVjdC5cbiAgICAgICAgcmV0dXJuIHdyYXAoZnVuYy5hcHBseSh1bndyYXAodGhpcyksIGFyZ3MpKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gdHJhbnNmb3JtQ2FjaGFibGVWYWx1ZSh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiB3cmFwRnVuY3Rpb24odmFsdWUpO1xuICAgIC8vIFRoaXMgZG9lc24ndCByZXR1cm4sIGl0IGp1c3QgY3JlYXRlcyBhICdkb25lJyBwcm9taXNlIGZvciB0aGUgdHJhbnNhY3Rpb24sXG4gICAgLy8gd2hpY2ggaXMgbGF0ZXIgcmV0dXJuZWQgZm9yIHRyYW5zYWN0aW9uLmRvbmUgKHNlZSBpZGJPYmplY3RIYW5kbGVyKS5cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbilcbiAgICAgICAgY2FjaGVEb25lUHJvbWlzZUZvclRyYW5zYWN0aW9uKHZhbHVlKTtcbiAgICBpZiAoaW5zdGFuY2VPZkFueSh2YWx1ZSwgZ2V0SWRiUHJveHlhYmxlVHlwZXMoKSkpXG4gICAgICAgIHJldHVybiBuZXcgUHJveHkodmFsdWUsIGlkYlByb3h5VHJhcHMpO1xuICAgIC8vIFJldHVybiB0aGUgc2FtZSB2YWx1ZSBiYWNrIGlmIHdlJ3JlIG5vdCBnb2luZyB0byB0cmFuc2Zvcm0gaXQuXG4gICAgcmV0dXJuIHZhbHVlO1xufVxuZnVuY3Rpb24gd3JhcCh2YWx1ZSkge1xuICAgIC8vIFdlIHNvbWV0aW1lcyBnZW5lcmF0ZSBtdWx0aXBsZSBwcm9taXNlcyBmcm9tIGEgc2luZ2xlIElEQlJlcXVlc3QgKGVnIHdoZW4gY3Vyc29yaW5nKSwgYmVjYXVzZVxuICAgIC8vIElEQiBpcyB3ZWlyZCBhbmQgYSBzaW5nbGUgSURCUmVxdWVzdCBjYW4geWllbGQgbWFueSByZXNwb25zZXMsIHNvIHRoZXNlIGNhbid0IGJlIGNhY2hlZC5cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBJREJSZXF1ZXN0KVxuICAgICAgICByZXR1cm4gcHJvbWlzaWZ5UmVxdWVzdCh2YWx1ZSk7XG4gICAgLy8gSWYgd2UndmUgYWxyZWFkeSB0cmFuc2Zvcm1lZCB0aGlzIHZhbHVlIGJlZm9yZSwgcmV1c2UgdGhlIHRyYW5zZm9ybWVkIHZhbHVlLlxuICAgIC8vIFRoaXMgaXMgZmFzdGVyLCBidXQgaXQgYWxzbyBwcm92aWRlcyBvYmplY3QgZXF1YWxpdHkuXG4gICAgaWYgKHRyYW5zZm9ybUNhY2hlLmhhcyh2YWx1ZSkpXG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1DYWNoZS5nZXQodmFsdWUpO1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gdHJhbnNmb3JtQ2FjaGFibGVWYWx1ZSh2YWx1ZSk7XG4gICAgLy8gTm90IGFsbCB0eXBlcyBhcmUgdHJhbnNmb3JtZWQuXG4gICAgLy8gVGhlc2UgbWF5IGJlIHByaW1pdGl2ZSB0eXBlcywgc28gdGhleSBjYW4ndCBiZSBXZWFrTWFwIGtleXMuXG4gICAgaWYgKG5ld1ZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICB0cmFuc2Zvcm1DYWNoZS5zZXQodmFsdWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgcmV2ZXJzZVRyYW5zZm9ybUNhY2hlLnNldChuZXdWYWx1ZSwgdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3VmFsdWU7XG59XG5jb25zdCB1bndyYXAgPSAodmFsdWUpID0+IHJldmVyc2VUcmFuc2Zvcm1DYWNoZS5nZXQodmFsdWUpO1xuXG4vKipcbiAqIE9wZW4gYSBkYXRhYmFzZS5cbiAqXG4gKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBkYXRhYmFzZS5cbiAqIEBwYXJhbSB2ZXJzaW9uIFNjaGVtYSB2ZXJzaW9uLlxuICogQHBhcmFtIGNhbGxiYWNrcyBBZGRpdGlvbmFsIGNhbGxiYWNrcy5cbiAqL1xuZnVuY3Rpb24gb3BlbkRCKG5hbWUsIHZlcnNpb24sIHsgYmxvY2tlZCwgdXBncmFkZSwgYmxvY2tpbmcsIHRlcm1pbmF0ZWQgfSA9IHt9KSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKG5hbWUsIHZlcnNpb24pO1xuICAgIGNvbnN0IG9wZW5Qcm9taXNlID0gd3JhcChyZXF1ZXN0KTtcbiAgICBpZiAodXBncmFkZSkge1xuICAgICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoJ3VwZ3JhZGVuZWVkZWQnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHVwZ3JhZGUod3JhcChyZXF1ZXN0LnJlc3VsdCksIGV2ZW50Lm9sZFZlcnNpb24sIGV2ZW50Lm5ld1ZlcnNpb24sIHdyYXAocmVxdWVzdC50cmFuc2FjdGlvbiksIGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChibG9ja2VkKSB7XG4gICAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcignYmxvY2tlZCcsIChldmVudCkgPT4gYmxvY2tlZChcbiAgICAgICAgLy8gQ2FzdGluZyBkdWUgdG8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0LURPTS1saWItZ2VuZXJhdG9yL3B1bGwvMTQwNVxuICAgICAgICBldmVudC5vbGRWZXJzaW9uLCBldmVudC5uZXdWZXJzaW9uLCBldmVudCkpO1xuICAgIH1cbiAgICBvcGVuUHJvbWlzZVxuICAgICAgICAudGhlbigoZGIpID0+IHtcbiAgICAgICAgaWYgKHRlcm1pbmF0ZWQpXG4gICAgICAgICAgICBkYi5hZGRFdmVudExpc3RlbmVyKCdjbG9zZScsICgpID0+IHRlcm1pbmF0ZWQoKSk7XG4gICAgICAgIGlmIChibG9ja2luZykge1xuICAgICAgICAgICAgZGIuYWRkRXZlbnRMaXN0ZW5lcigndmVyc2lvbmNoYW5nZScsIChldmVudCkgPT4gYmxvY2tpbmcoZXZlbnQub2xkVmVyc2lvbiwgZXZlbnQubmV3VmVyc2lvbiwgZXZlbnQpKTtcbiAgICAgICAgfVxuICAgIH0pXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7IH0pO1xuICAgIHJldHVybiBvcGVuUHJvbWlzZTtcbn1cbi8qKlxuICogRGVsZXRlIGEgZGF0YWJhc2UuXG4gKlxuICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgZGF0YWJhc2UuXG4gKi9cbmZ1bmN0aW9uIGRlbGV0ZURCKG5hbWUsIHsgYmxvY2tlZCB9ID0ge30pIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKG5hbWUpO1xuICAgIGlmIChibG9ja2VkKSB7XG4gICAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcignYmxvY2tlZCcsIChldmVudCkgPT4gYmxvY2tlZChcbiAgICAgICAgLy8gQ2FzdGluZyBkdWUgdG8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0LURPTS1saWItZ2VuZXJhdG9yL3B1bGwvMTQwNVxuICAgICAgICBldmVudC5vbGRWZXJzaW9uLCBldmVudCkpO1xuICAgIH1cbiAgICByZXR1cm4gd3JhcChyZXF1ZXN0KS50aGVuKCgpID0+IHVuZGVmaW5lZCk7XG59XG5cbmNvbnN0IHJlYWRNZXRob2RzID0gWydnZXQnLCAnZ2V0S2V5JywgJ2dldEFsbCcsICdnZXRBbGxLZXlzJywgJ2NvdW50J107XG5jb25zdCB3cml0ZU1ldGhvZHMgPSBbJ3B1dCcsICdhZGQnLCAnZGVsZXRlJywgJ2NsZWFyJ107XG5jb25zdCBjYWNoZWRNZXRob2RzID0gbmV3IE1hcCgpO1xuZnVuY3Rpb24gZ2V0TWV0aG9kKHRhcmdldCwgcHJvcCkge1xuICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIElEQkRhdGFiYXNlICYmXG4gICAgICAgICEocHJvcCBpbiB0YXJnZXQpICYmXG4gICAgICAgIHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY2FjaGVkTWV0aG9kcy5nZXQocHJvcCkpXG4gICAgICAgIHJldHVybiBjYWNoZWRNZXRob2RzLmdldChwcm9wKTtcbiAgICBjb25zdCB0YXJnZXRGdW5jTmFtZSA9IHByb3AucmVwbGFjZSgvRnJvbUluZGV4JC8sICcnKTtcbiAgICBjb25zdCB1c2VJbmRleCA9IHByb3AgIT09IHRhcmdldEZ1bmNOYW1lO1xuICAgIGNvbnN0IGlzV3JpdGUgPSB3cml0ZU1ldGhvZHMuaW5jbHVkZXModGFyZ2V0RnVuY05hbWUpO1xuICAgIGlmIChcbiAgICAvLyBCYWlsIGlmIHRoZSB0YXJnZXQgZG9lc24ndCBleGlzdCBvbiB0aGUgdGFyZ2V0LiBFZywgZ2V0QWxsIGlzbid0IGluIEVkZ2UuXG4gICAgISh0YXJnZXRGdW5jTmFtZSBpbiAodXNlSW5kZXggPyBJREJJbmRleCA6IElEQk9iamVjdFN0b3JlKS5wcm90b3R5cGUpIHx8XG4gICAgICAgICEoaXNXcml0ZSB8fCByZWFkTWV0aG9kcy5pbmNsdWRlcyh0YXJnZXRGdW5jTmFtZSkpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbWV0aG9kID0gYXN5bmMgZnVuY3Rpb24gKHN0b3JlTmFtZSwgLi4uYXJncykge1xuICAgICAgICAvLyBpc1dyaXRlID8gJ3JlYWR3cml0ZScgOiB1bmRlZmluZWQgZ3ppcHBzIGJldHRlciwgYnV0IGZhaWxzIGluIEVkZ2UgOihcbiAgICAgICAgY29uc3QgdHggPSB0aGlzLnRyYW5zYWN0aW9uKHN0b3JlTmFtZSwgaXNXcml0ZSA/ICdyZWFkd3JpdGUnIDogJ3JlYWRvbmx5Jyk7XG4gICAgICAgIGxldCB0YXJnZXQgPSB0eC5zdG9yZTtcbiAgICAgICAgaWYgKHVzZUluZGV4KVxuICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LmluZGV4KGFyZ3Muc2hpZnQoKSk7XG4gICAgICAgIC8vIE11c3QgcmVqZWN0IGlmIG9wIHJlamVjdHMuXG4gICAgICAgIC8vIElmIGl0J3MgYSB3cml0ZSBvcGVyYXRpb24sIG11c3QgcmVqZWN0IGlmIHR4LmRvbmUgcmVqZWN0cy5cbiAgICAgICAgLy8gTXVzdCByZWplY3Qgd2l0aCBvcCByZWplY3Rpb24gZmlyc3QuXG4gICAgICAgIC8vIE11c3QgcmVzb2x2ZSB3aXRoIG9wIHZhbHVlLlxuICAgICAgICAvLyBNdXN0IGhhbmRsZSBib3RoIHByb21pc2VzIChubyB1bmhhbmRsZWQgcmVqZWN0aW9ucylcbiAgICAgICAgcmV0dXJuIChhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICB0YXJnZXRbdGFyZ2V0RnVuY05hbWVdKC4uLmFyZ3MpLFxuICAgICAgICAgICAgaXNXcml0ZSAmJiB0eC5kb25lLFxuICAgICAgICBdKSlbMF07XG4gICAgfTtcbiAgICBjYWNoZWRNZXRob2RzLnNldChwcm9wLCBtZXRob2QpO1xuICAgIHJldHVybiBtZXRob2Q7XG59XG5yZXBsYWNlVHJhcHMoKG9sZFRyYXBzKSA9PiAoe1xuICAgIC4uLm9sZFRyYXBzLFxuICAgIGdldDogKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpID0+IGdldE1ldGhvZCh0YXJnZXQsIHByb3ApIHx8IG9sZFRyYXBzLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSxcbiAgICBoYXM6ICh0YXJnZXQsIHByb3ApID0+ICEhZ2V0TWV0aG9kKHRhcmdldCwgcHJvcCkgfHwgb2xkVHJhcHMuaGFzKHRhcmdldCwgcHJvcCksXG59KSk7XG5cbmNvbnN0IGFkdmFuY2VNZXRob2RQcm9wcyA9IFsnY29udGludWUnLCAnY29udGludWVQcmltYXJ5S2V5JywgJ2FkdmFuY2UnXTtcbmNvbnN0IG1ldGhvZE1hcCA9IHt9O1xuY29uc3QgYWR2YW5jZVJlc3VsdHMgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgaXR0clByb3hpZWRDdXJzb3JUb09yaWdpbmFsUHJveHkgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgY3Vyc29ySXRlcmF0b3JUcmFwcyA9IHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIGlmICghYWR2YW5jZU1ldGhvZFByb3BzLmluY2x1ZGVzKHByb3ApKVxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wXTtcbiAgICAgICAgbGV0IGNhY2hlZEZ1bmMgPSBtZXRob2RNYXBbcHJvcF07XG4gICAgICAgIGlmICghY2FjaGVkRnVuYykge1xuICAgICAgICAgICAgY2FjaGVkRnVuYyA9IG1ldGhvZE1hcFtwcm9wXSA9IGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgYWR2YW5jZVJlc3VsdHMuc2V0KHRoaXMsIGl0dHJQcm94aWVkQ3Vyc29yVG9PcmlnaW5hbFByb3h5LmdldCh0aGlzKVtwcm9wXSguLi5hcmdzKSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYWNoZWRGdW5jO1xuICAgIH0sXG59O1xuYXN5bmMgZnVuY3Rpb24qIGl0ZXJhdGUoLi4uYXJncykge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby10aGlzLWFzc2lnbm1lbnRcbiAgICBsZXQgY3Vyc29yID0gdGhpcztcbiAgICBpZiAoIShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpKSB7XG4gICAgICAgIGN1cnNvciA9IGF3YWl0IGN1cnNvci5vcGVuQ3Vyc29yKC4uLmFyZ3MpO1xuICAgIH1cbiAgICBpZiAoIWN1cnNvcilcbiAgICAgICAgcmV0dXJuO1xuICAgIGN1cnNvciA9IGN1cnNvcjtcbiAgICBjb25zdCBwcm94aWVkQ3Vyc29yID0gbmV3IFByb3h5KGN1cnNvciwgY3Vyc29ySXRlcmF0b3JUcmFwcyk7XG4gICAgaXR0clByb3hpZWRDdXJzb3JUb09yaWdpbmFsUHJveHkuc2V0KHByb3hpZWRDdXJzb3IsIGN1cnNvcik7XG4gICAgLy8gTWFwIHRoaXMgZG91YmxlLXByb3h5IGJhY2sgdG8gdGhlIG9yaWdpbmFsLCBzbyBvdGhlciBjdXJzb3IgbWV0aG9kcyB3b3JrLlxuICAgIHJldmVyc2VUcmFuc2Zvcm1DYWNoZS5zZXQocHJveGllZEN1cnNvciwgdW53cmFwKGN1cnNvcikpO1xuICAgIHdoaWxlIChjdXJzb3IpIHtcbiAgICAgICAgeWllbGQgcHJveGllZEN1cnNvcjtcbiAgICAgICAgLy8gSWYgb25lIG9mIHRoZSBhZHZhbmNpbmcgbWV0aG9kcyB3YXMgbm90IGNhbGxlZCwgY2FsbCBjb250aW51ZSgpLlxuICAgICAgICBjdXJzb3IgPSBhd2FpdCAoYWR2YW5jZVJlc3VsdHMuZ2V0KHByb3hpZWRDdXJzb3IpIHx8IGN1cnNvci5jb250aW51ZSgpKTtcbiAgICAgICAgYWR2YW5jZVJlc3VsdHMuZGVsZXRlKHByb3hpZWRDdXJzb3IpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlzSXRlcmF0b3JQcm9wKHRhcmdldCwgcHJvcCkge1xuICAgIHJldHVybiAoKHByb3AgPT09IFN5bWJvbC5hc3luY0l0ZXJhdG9yICYmXG4gICAgICAgIGluc3RhbmNlT2ZBbnkodGFyZ2V0LCBbSURCSW5kZXgsIElEQk9iamVjdFN0b3JlLCBJREJDdXJzb3JdKSkgfHxcbiAgICAgICAgKHByb3AgPT09ICdpdGVyYXRlJyAmJiBpbnN0YW5jZU9mQW55KHRhcmdldCwgW0lEQkluZGV4LCBJREJPYmplY3RTdG9yZV0pKSk7XG59XG5yZXBsYWNlVHJhcHMoKG9sZFRyYXBzKSA9PiAoe1xuICAgIC4uLm9sZFRyYXBzLFxuICAgIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgIGlmIChpc0l0ZXJhdG9yUHJvcCh0YXJnZXQsIHByb3ApKVxuICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdGU7XG4gICAgICAgIHJldHVybiBvbGRUcmFwcy5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgfSxcbiAgICBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBpc0l0ZXJhdG9yUHJvcCh0YXJnZXQsIHByb3ApIHx8IG9sZFRyYXBzLmhhcyh0YXJnZXQsIHByb3ApO1xuICAgIH0sXG59KSk7XG5cbmV4cG9ydCB7IGRlbGV0ZURCLCBvcGVuREIsIHVud3JhcCwgd3JhcCB9O1xuIiwgIi8vIHB1c2hyb2NrcyBzY29wZVxuaW1wb3J0ICogYXMgbGlrIGZyb20gJ0BwdXNoLnJvY2tzL2xpayc7XG5pbXBvcnQgKiBhcyBzbWFydGVudiBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydGVudic7XG5pbXBvcnQgKiBhcyBzbWFydGpzb24gZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRqc29uJztcbmltcG9ydCAqIGFzIHNtYXJ0cHJvbWlzZSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UnO1xuaW1wb3J0ICogYXMgc21hcnRyeCBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHJ4JztcblxuZXhwb3J0IHsgbGlrLCBzbWFydGVudiwgc21hcnRqc29uLCBzbWFydHByb21pc2UsIHNtYXJ0cnggfTtcblxuLy8gYXBpZ2xvYmFsIHNjb3BlXG5pbXBvcnQgKiBhcyB0eXBlZHJlcXVlc3RJbnRlcmZhY2VzIGZyb20gJ0BhcGkuZ2xvYmFsL3R5cGVkcmVxdWVzdC1pbnRlcmZhY2VzJztcblxuZXhwb3J0IHsgdHlwZWRyZXF1ZXN0SW50ZXJmYWNlcyB9O1xuXG4vLyB0aGlyZHBhcnR5IHNjb3BlXG5pbXBvcnQgKiBhcyBpZGIgZnJvbSAnQHRlbXBmaXgvaWRiJztcblxuZXhwb3J0IHsgaWRiIH07XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3dlYnN0b3JlLnBsdWdpbnMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElXZWJTdG9yZU9wdGlvbnMge1xuICBkYk5hbWU6IHN0cmluZztcbiAgc3RvcmVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBXZWJTdG9yZTxUID0gYW55PiB7XG4gIHB1YmxpYyBkYjogcGx1Z2lucy5pZGIuSURCUERhdGFiYXNlO1xuICBwdWJsaWMgb3B0aW9uczogSVdlYlN0b3JlT3B0aW9ucztcbiAgcHJpdmF0ZSBpbml0Q2FsbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZHlEZWZlcnJlZCA9IHBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCk7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uc0FyZzogSVdlYlN0b3JlT3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNBcmc7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5pdCgpIHtcbiAgICBpZiAodGhpcy5pbml0Q2FsbGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlYWR5RGVmZXJyZWQucHJvbWlzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbml0Q2FsbGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IHNtYXJ0ZW52ID0gbmV3IHBsdWdpbnMuc21hcnRlbnYuU21hcnRlbnYoKTtcbiAgICBpZiAoIXNtYXJ0ZW52LmlzQnJvd3NlciAmJiAhZ2xvYmFsVGhpcy5pbmRleGVkREIpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdoZXknKTtcbiAgICAgIGNvbnNvbGUubG9nKGdsb2JhbFRoaXMuaW5kZXhlZERCKTtcbiAgICAgIGF3YWl0IHNtYXJ0ZW52LmdldFNhZmVOb2RlTW9kdWxlKCdmYWtlLWluZGV4ZWRkYi9hdXRvJyk7XG4gICAgICBpZiAoIWdsb2JhbFRoaXMuaW5kZXhlZERCKSB7XG4gICAgICAgIGNvbnN0IG1vZCA9IGF3YWl0IHNtYXJ0ZW52LmdldFNhZmVOb2RlTW9kdWxlKCdmYWtlLWluZGV4ZWRkYicpO1xuICAgICAgICBnbG9iYWxUaGlzLmluZGV4ZWREQiA9IG5ldyBtb2QuSURCRmFjdG9yeSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZGIgPSBhd2FpdCBwbHVnaW5zLmlkYi5vcGVuREIodGhpcy5vcHRpb25zLmRiTmFtZSwgMSwge1xuICAgICAgdXBncmFkZTogKGRiKSA9PiB7XG4gICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGFzeW5jIGdldChrZXk6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgIHJldHVybiB0aGlzLmRiLmdldCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLCBrZXkpO1xuICB9XG5cbiAgYXN5bmMgY2hlY2soa2V5QXJnOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmdldChrZXlBcmcpO1xuICAgIHJldHVybiAhIXJlc3VsdDtcbiAgfVxuXG4gIGFzeW5jIHNldChrZXk6IHN0cmluZywgdmFsOiBUKSB7XG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgcmV0dXJuIHRoaXMuZGIucHV0KHRoaXMub3B0aW9ucy5zdG9yZU5hbWUsIHZhbCwga2V5KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShrZXk6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgIHJldHVybiB0aGlzLmRiLmRlbGV0ZSh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLCBrZXkpO1xuICB9XG5cbiAgYXN5bmMgY2xlYXIoKSB7XG4gICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgcmV0dXJuIHRoaXMuZGIuY2xlYXIodGhpcy5vcHRpb25zLnN0b3JlTmFtZSk7XG4gIH1cblxuICBhc3luYyBrZXlzKCkge1xuICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgIHJldHVybiB0aGlzLmRiLmdldEFsbEtleXModGhpcy5vcHRpb25zLnN0b3JlTmFtZSk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBXZWJTdG9yZSB9IGZyb20gJy4vd2Vic3RvcmUuY2xhc3Nlcy53ZWJzdG9yZS5qcyc7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vd2Vic3RvcmUucGx1Z2lucy5qcyc7XG5cbi8qKlxuICogYSBjYWNoZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSB0eXBlZHJlcXVlc3RzXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlZHJlcXVlc3RDYWNoZSB7XG4gIHByaXZhdGUgd2Vic3RvcmU6IFdlYlN0b3JlO1xuXG4gIGNvbnN0cnVjdG9yKGRvbWFpbkFyZyA9ICdkZWZhdWx0Jykge1xuICAgIHRoaXMud2Vic3RvcmUgPSBuZXcgV2ViU3RvcmU8cGx1Z2lucy50eXBlZHJlcXVlc3RJbnRlcmZhY2VzLklUeXBlZFJlcXVlc3Q+KHtcbiAgICAgIGRiTmFtZTogJ3RyU3RvcmUnLFxuICAgICAgc3RvcmVOYW1lOiBgdHJTdG9yZS0ke2RvbWFpbkFyZ31gLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEtleShyZXF1ZXN0QXJnOiBwbHVnaW5zLnR5cGVkcmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdCkge1xuICAgIHJldHVybiBwbHVnaW5zLnNtYXJ0anNvbi5zdHJpbmdpZnkoe1xuICAgICAgbWV0aG9kOiByZXF1ZXN0QXJnLm1ldGhvZCxcbiAgICAgIHJlcXVlc3Q6IHJlcXVlc3RBcmcucmVxdWVzdCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzdG9yZXMgYnkgcmVxdWVzdFxuICAgKiBAcGFyYW0gdHlwZWRyZXF1ZXN0YXJnXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0QnlSZXF1ZXN0KFxuICAgIHR5cGVkcmVxdWVzdEFyZzogcGx1Z2lucy50eXBlZHJlcXVlc3RJbnRlcmZhY2VzLklUeXBlZFJlcXVlc3RcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0eXBlZHJlcXVlc3RBcmcucmVzcG9uc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBzdG9yZSByZXF1ZXN0cyB3aXRob3V0IGEgcmVzcG9uc2UgcHJlc2VudCcpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLndlYnN0b3JlLnNldCh0aGlzLmJ1aWxkS2V5KHR5cGVkcmVxdWVzdEFyZyksIHR5cGVkcmVxdWVzdEFyZyk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGJ5IGZ1bGwgdHlvZWRyZXF1ZXN0IGJ5IHBhcnRpYWwgdHlwZWRyZXF1ZXN0XG4gICAqIEBwYXJhbSB0eXBlZHJlcXVlc3RhcmdcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRCeVJlcXVlc3QoXG4gICAgdHlwZWRyZXF1ZXN0QXJnOiBwbHVnaW5zLnR5cGVkcmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdFxuICApOiBQcm9taXNlPHBsdWdpbnMudHlwZWRyZXF1ZXN0SW50ZXJmYWNlcy5JVHlwZWRSZXF1ZXN0PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy53ZWJzdG9yZS5nZXQodGhpcy5idWlsZEtleSh0eXBlZHJlcXVlc3RBcmcpKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iLCAiZXhwb3J0ICogZnJvbSAnLi93ZWJzdG9yZS5jbGFzc2VzLnR5cGVkcmVxdWVzdGNhY2hlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vd2Vic3RvcmUuY2xhc3Nlcy53ZWJzdG9yZS5qcyc7XG4iLCAiaW1wb3J0ICogYXMgc21hcnRkZWxheSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydGRlbGF5JztcbmltcG9ydCAqIGFzIHNtYXJ0ZW52IGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0ZW52JztcbmltcG9ydCAqIGFzIHNtYXJ0anNvbiBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydGpzb24nO1xuaW1wb3J0ICogYXMgc21hcnRwcm9taXNlIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSc7XG5pbXBvcnQgKiBhcyB3ZWJzdG9yZSBmcm9tICdAcHVzaC5yb2Nrcy93ZWJzdG9yZSc7XG5cbmV4cG9ydCB7IHNtYXJ0ZGVsYXksIHNtYXJ0ZW52LCBzbWFydGpzb24sIHNtYXJ0cHJvbWlzZSwgd2Vic3RvcmUgfTtcbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vd2VicmVxdWVzdC5wbHVnaW5zLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJV2VicmVxdWVzdENvbnRydWN0b3JPcHRpb25zIHtcbiAgbG9nZ2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogd2ViIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGNsYXNzIFdlYlJlcXVlc3Qge1xuXG4gIHB1YmxpYyBjYWNoZVN0b3JlID0gbmV3IHBsdWdpbnMud2Vic3RvcmUuV2ViU3RvcmUoe1xuICAgIGRiTmFtZTogJ3dlYnJlcXVlc3QnLFxuICAgIHN0b3JlTmFtZTogJ3dlYnJlcXVlc3QnLFxuICB9KTtcblxuICBwdWJsaWMgb3B0aW9uczogSVdlYnJlcXVlc3RDb250cnVjdG9yT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3B0aW9uc0FyZzogSVdlYnJlcXVlc3RDb250cnVjdG9yT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgbG9nZ2luZzogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnNBcmcsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRKc29uKHVybEFyZzogc3RyaW5nLCB1c2VDYWNoZUFyZzogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgcmVzcG9uc2U6IFJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KHVybEFyZywge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVzZUNhY2hlOiB1c2VDYWNoZUFyZyxcbiAgICB9KTtcbiAgICBjb25zdCByZXNwb25zZVRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgY29uc3QgcmVzcG9uc2VSZXN1bHQgPSBwbHVnaW5zLnNtYXJ0anNvbi5wYXJzZShyZXNwb25zZVRleHQpO1xuICAgIHJldHVybiByZXNwb25zZVJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBwb3N0SnNvblxuICAgKi9cbiAgcHVibGljIGFzeW5jIHBvc3RKc29uKHVybEFyZzogc3RyaW5nLCByZXF1ZXN0Qm9keT86IGFueSwgdXNlQ2FjaGVBcmc6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IHJlc3BvbnNlOiBSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdCh1cmxBcmcsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IHBsdWdpbnMuc21hcnRqc29uLnN0cmluZ2lmeShyZXF1ZXN0Qm9keSksXG4gICAgICB1c2VDYWNoZTogdXNlQ2FjaGVBcmcsXG4gICAgfSk7XG4gICAgY29uc3QgcmVzcG9uc2VUZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgIGNvbnN0IHJlc3BvbnNlUmVzdWx0ID0gcGx1Z2lucy5zbWFydGpzb24ucGFyc2UocmVzcG9uc2VUZXh0KTtcbiAgICByZXR1cm4gcmVzcG9uc2VSZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogcHV0IGpzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcHV0SnNvbih1cmxBcmc6IHN0cmluZywgcmVxdWVzdEJvZHk/OiBhbnksIHVzZVN0b3JlQXNGYWxsYmFjazogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgcmVzcG9uc2U6IFJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KHVybEFyZywge1xuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgICBib2R5OiBwbHVnaW5zLnNtYXJ0anNvbi5zdHJpbmdpZnkocmVxdWVzdEJvZHkpLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc3BvbnNlVGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICBjb25zdCByZXNwb25zZVJlc3VsdCA9IHBsdWdpbnMuc21hcnRqc29uLnBhcnNlKHJlc3BvbnNlVGV4dCk7XG4gICAgcmV0dXJuIHJlc3BvbnNlUmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIHB1dCBqc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlbGV0ZUpzb24odXJsQXJnOiBzdHJpbmcsIHVzZVN0b3JlQXNGYWxsYmFjazogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgcmVzcG9uc2U6IFJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KHVybEFyZywge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgfSk7XG4gICAgY29uc3QgcmVzcG9uc2VUZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgIGNvbnN0IHJlc3BvbnNlUmVzdWx0ID0gcGx1Z2lucy5zbWFydGpzb24ucGFyc2UocmVzcG9uc2VUZXh0KTtcbiAgICByZXR1cm4gcmVzcG9uc2VSZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdChcbiAgICB1cmxBcmc6IHN0cmluZyxcbiAgICBvcHRpb25zQXJnOiB7XG4gICAgICBtZXRob2Q6ICdHRVQnIHwgJ1BPU1QnIHwgJ1BVVCcgfCAnREVMRVRFJztcbiAgICAgIGJvZHk/OiBhbnk7XG4gICAgICBoZWFkZXJzPzogSGVhZGVyc0luaXQ7XG4gICAgICB1c2VDYWNoZT86IGJvb2xlYW47XG4gICAgICB0aW1lb3V0TXM/OiBudW1iZXI7XG4gICAgfVxuICApIHtcbiAgICBvcHRpb25zQXJnID0ge1xuICAgICAgdGltZW91dE1zOiA2MDAwMCxcbiAgICAgIHVzZUNhY2hlOiBmYWxzZSxcbiAgICAgIC4uLm9wdGlvbnNBcmcsXG4gICAgfTtcblxuICAgIGxldCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcihvcHRpb25zQXJnLnRpbWVvdXRNcykudGhlbigoKSA9PiB7XG4gICAgICBjb250cm9sbGVyLmFib3J0KCk7XG4gICAgfSk7XG4gICAgbGV0IGNhY2hlZFJlc3BvbnNlRGVmZXJyZWQgPSBwbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcjxSZXNwb25zZT4oKTtcbiAgICBsZXQgY2FjaGVVc2VkID0gZmFsc2U7XG4gICAgaWYgKG9wdGlvbnNBcmcudXNlQ2FjaGUgJiYgKGF3YWl0IHRoaXMuY2FjaGVTdG9yZS5jaGVjayh1cmxBcmcpKSkge1xuICAgICAgY29uc3QgcmVzcG9uc2VCdWZmZXI6IEFycmF5QnVmZmVyID0gYXdhaXQgdGhpcy5jYWNoZVN0b3JlLmdldCh1cmxBcmcpO1xuICAgICAgY2FjaGVkUmVzcG9uc2VEZWZlcnJlZC5yZXNvbHZlKG5ldyBSZXNwb25zZShyZXNwb25zZUJ1ZmZlciwge30pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FjaGVkUmVzcG9uc2VEZWZlcnJlZC5yZXNvbHZlKG51bGwpO1xuICAgIH1cbiAgICBsZXQgcmVzcG9uc2U6IFJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsQXJnLCB7XG4gICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIG1ldGhvZDogb3B0aW9uc0FyZy5tZXRob2QsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAuLi4ob3B0aW9uc0FyZy5oZWFkZXJzIHx8IHt9KSxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogb3B0aW9uc0FyZy5ib2R5LFxuICAgICAgfSlcbiAgICAgIC5jYXRjaChhc3luYyAoZXJyKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zQXJnLnVzZUNhY2hlICYmIChhd2FpdCBjYWNoZWRSZXNwb25zZURlZmVycmVkLnByb21pc2UpKSB7XG4gICAgICAgICAgY2FjaGVVc2VkID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBjYWNoZWRSZXNwb25zZSA9IGNhY2hlZFJlc3BvbnNlRGVmZXJyZWQucHJvbWlzZTtcbiAgICAgICAgICByZXR1cm4gY2FjaGVkUmVzcG9uc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGVycjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgaWYgKG9wdGlvbnNBcmcudXNlQ2FjaGUgJiYgKGF3YWl0IGNhY2hlZFJlc3BvbnNlRGVmZXJyZWQucHJvbWlzZSkgJiYgcmVzcG9uc2Uuc3RhdHVzID09PSA1MDApIHtcbiAgICAgIGNhY2hlVXNlZCA9IHRydWU7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGNhY2hlZFJlc3BvbnNlRGVmZXJyZWQucHJvbWlzZTtcbiAgICB9XG4gICAgaWYgKCFjYWNoZVVzZWQgJiYgb3B0aW9uc0FyZy51c2VDYWNoZSAmJiByZXNwb25zZS5zdGF0dXMgPCAzMDApIHtcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IHJlc3BvbnNlLmNsb25lKCkuYXJyYXlCdWZmZXIoKTtcbiAgICAgIGF3YWl0IHRoaXMuY2FjaGVTdG9yZS5zZXQodXJsQXJnLCBidWZmZXIpO1xuICAgIH1cbiAgICB0aGlzLmxvZyhgJHt1cmxBcmd9IGFuc3dlcnMgd2l0aCBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhIG11bHRpIGVuZHBvaW50LCBmYXVsdCB0b2xlcmFudCByZXF1ZXN0IGZ1bmN0aW9uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVxdWVzdE11bHRpRW5kcG9pbnQoXG4gICAgdXJsQXJnOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICBvcHRpb25zQXJnOiB7XG4gICAgICBtZXRob2Q6ICdHRVQnIHwgJ1BPU1QnIHwgJ1BVVCcgfCAnREVMRVRFJztcbiAgICAgIGJvZHk/OiBhbnk7XG4gICAgICBoZWFkZXJzPzogSGVhZGVyc0luaXQ7XG4gICAgfVxuICApOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgXG4gICAgbGV0IGFsbFVybHM6IHN0cmluZ1tdO1xuICAgIGxldCB1c2VkVXJsSW5kZXggPSAwO1xuXG4gICAgLy8gZGV0ZXJtaW5lIHdoYXQgd2UgZ290XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodXJsQXJnKSkge1xuICAgICAgYWxsVXJscyA9IHVybEFyZztcbiAgICB9IGVsc2Uge1xuICAgICAgYWxsVXJscyA9IFt1cmxBcmddO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3RIaXN0b3J5OiBzdHJpbmdbXSA9IFtdOyAvLyBrZWVwIHRyYWNrIG9mIHRoZSByZXF1ZXN0IGhpc3RvcnlcblxuICAgIGNvbnN0IGRvSGlzdG9yeUNoZWNrID0gYXN5bmMgKFxuICAgICAgLy8gY2hlY2sgaGlzdG9yeSBmb3IgYVxuICAgICAgaGlzdG9yeUVudHJ5VHlwZUFyZzogc3RyaW5nXG4gICAgKSA9PiB7XG4gICAgICByZXF1ZXN0SGlzdG9yeS5wdXNoKGhpc3RvcnlFbnRyeVR5cGVBcmcpO1xuICAgICAgaWYgKGhpc3RvcnlFbnRyeVR5cGVBcmcgPT09ICc0MjknKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdnb3QgNDI5LCBzbyB3YWl0aW5nIGEgbGl0dGxlIGJpdC4nKTtcbiAgICAgICAgYXdhaXQgcGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICgyMDAwIC0gMTAwMCArIDEpKSArIDEwMDApOyAvLyB3YWl0IGJldHdlZW4gMSBhbmQgMTAgc2Vjb25kc1xuICAgICAgfVxuXG4gICAgICBsZXQgbnVtT2ZIaXN0b3J5VHlwZSA9IDA7XG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHJlcXVlc3RIaXN0b3J5KSB7XG4gICAgICAgIGlmIChlbnRyeSA9PT0gaGlzdG9yeUVudHJ5VHlwZUFyZykgbnVtT2ZIaXN0b3J5VHlwZSsrO1xuICAgICAgfVxuICAgICAgaWYgKG51bU9mSGlzdG9yeVR5cGUgPiAyICogYWxsVXJscy5sZW5ndGggKiB1c2VkVXJsSW5kZXgpIHtcbiAgICAgICAgdXNlZFVybEluZGV4Kys7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIGxldHMgZ28gcmVjdXJzaXZlXG4gICAgY29uc3QgZG9SZXF1ZXN0ID0gYXN5bmMgKHVybFRvVXNlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4gPT4ge1xuICAgICAgaWYgKCF1cmxUb1VzZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlcXVlc3QgZmFpbGVkIHBlcm1hbmVudGx5Jyk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZyhgR2V0dGluZyAke3VybFRvVXNlfSB3aXRoIG1ldGhvZCAke29wdGlvbnNBcmcubWV0aG9kfWApO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmxUb1VzZSwge1xuICAgICAgICBtZXRob2Q6IG9wdGlvbnNBcmcubWV0aG9kLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAuLi4ob3B0aW9uc0FyZy5oZWFkZXJzIHx8IHt9KSxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogb3B0aW9uc0FyZy5ib2R5LFxuICAgICAgfSk7XG4gICAgICB0aGlzLmxvZyhgJHt1cmxUb1VzZX0gYW5zd2VycyB3aXRoIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG5cbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPj0gMjAwICYmIHJlc3BvbnNlLnN0YXR1cyA8IDMwMCkge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBsZXRzIHBlcmZvcm0gYSBoaXN0b3J5IGNoZWNrIHRvIGRldGVybWluZSBmYWlsZWQgdXJsc1xuICAgICAgICBhd2FpdCBkb0hpc3RvcnlDaGVjayhyZXNwb25zZS5zdGF0dXMudG9TdHJpbmcoKSk7XG4gICAgICAgIC8vIGxldHMgZmlyZSB0aGUgcmVxdWVzdFxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkb1JlcXVlc3QoYWxsVXJsc1t1c2VkVXJsSW5kZXhdKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgZmluYWxSZXNwb25zZTogUmVzcG9uc2UgPSBhd2FpdCBkb1JlcXVlc3QoYWxsVXJsc1t1c2VkVXJsSW5kZXhdKTtcbiAgICByZXR1cm4gZmluYWxSZXNwb25zZTtcbiAgfVxuXG4gIHB1YmxpYyBsb2cobG9nQXJnOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmxvZ2dpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKGxvZ0FyZyk7XG4gICAgfVxuICB9XG59XG4iLCAiLy8gYXBpZ2xvYmFsIHNjb3BlXG5pbXBvcnQgKiBhcyB0eXBlZFJlcXVlc3RJbnRlcmZhY2VzIGZyb20gJ0BhcGkuZ2xvYmFsL3R5cGVkcmVxdWVzdC1pbnRlcmZhY2VzJztcblxuZXhwb3J0IHsgdHlwZWRSZXF1ZXN0SW50ZXJmYWNlcyB9O1xuXG4vLyBwdXNocm9ja3Mgc2NvcGVcbmltcG9ydCAqIGFzIGlzb3VuaXF1ZSBmcm9tICdAcHVzaC5yb2Nrcy9pc291bmlxdWUnO1xuaW1wb3J0ICogYXMgbGlrIGZyb20gJ0BwdXNoLnJvY2tzL2xpayc7XG5pbXBvcnQgKiBhcyBzbWFydGJ1ZmZlciBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydGJ1ZmZlcic7XG5pbXBvcnQgKiBhcyBzbWFydGRlbGF5IGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0ZGVsYXknO1xuaW1wb3J0ICogYXMgc21hcnRndWFyZCBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydGd1YXJkJztcbmltcG9ydCAqIGFzIHNtYXJ0cHJvbWlzZSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UnO1xuaW1wb3J0ICogYXMgd2VicmVxdWVzdCBmcm9tICdAcHVzaC5yb2Nrcy93ZWJyZXF1ZXN0JztcblxuZXhwb3J0IHsgaXNvdW5pcXVlLCBsaWssIHNtYXJ0YnVmZmVyLCBzbWFydGRlbGF5LCBzbWFydGd1YXJkLCBzbWFydHByb21pc2UsIHdlYnJlcXVlc3QgfTtcbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vcGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBUeXBlZFJlc3BvbnNlRXJyb3Ige1xuICBwdWJsaWMgZXJyb3JUZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBlcnJvckRhdGE6IGFueTtcbiAgY29uc3RydWN0b3IoZXJyb3JUZXh0QXJnOiBzdHJpbmcsIGVycm9yRGF0YUFyZz86IGFueSkge1xuICAgIHRoaXMuZXJyb3JUZXh0ID0gZXJyb3JUZXh0QXJnO1xuICAgIHRoaXMuZXJyb3JEYXRhID0gZXJyb3JEYXRhQXJnO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgVHlwZWRSZXNwb25zZUVycm9yIH0gZnJvbSAnLi9jbGFzc2VzLnR5cGVkcmVzcG9uc2VlcnJvci5qcyc7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vcGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBUeXBlZFRvb2xzIHtcbiAgLyoqXG4gICAqIExvY2FsIGRhdGEgcGFzc2VkIGZyb20gdGhlIHRyYW5zcG9ydCBsYXllci5cbiAgICogVGhpcyBjYW4gY29udGFpbiBjb25uZWN0aW9uLXNwZWNpZmljIGNvbnRleHQgbGlrZSB0aGUgV2ViU29ja2V0IHBlZXIuXG4gICAqL1xuICBwdWJsaWMgbG9jYWxEYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgcHVibGljIGFzeW5jIHBhc3NHdWFyZHM8VCA9IGFueT4oZ3VhcmRzQXJnOiBwbHVnaW5zLnNtYXJ0Z3VhcmQuR3VhcmQ8VD5bXSwgZGF0YUFyZzogVCkge1xuICAgIGNvbnN0IGd1YXJkU2V0ID0gbmV3IHBsdWdpbnMuc21hcnRndWFyZC5HdWFyZFNldDxUPihndWFyZHNBcmcpO1xuICAgIGNvbnN0IGd1YXJkUmVzdWx0ID0gYXdhaXQgZ3VhcmRTZXQuYWxsR3VhcmRzUGFzcyhkYXRhQXJnKTtcbiAgICBpZiAoIWd1YXJkUmVzdWx0KSB7XG4gICAgICBjb25zdCBmYWlsZWRIaW50ID0gYXdhaXQgZ3VhcmRTZXQuZ2V0RmFpbGVkSGludChkYXRhQXJnKTtcbiAgICAgIHRocm93IG5ldyBUeXBlZFJlc3BvbnNlRXJyb3IoYGd1YXJkIGZhaWxlZDogJHtmYWlsZWRIaW50fWAsIHsgZmFpbGVkSGludCB9KTtcbiAgICB9XG4gIH1cbn0iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3BsdWdpbnMuanMnO1xuaW1wb3J0IHsgVHlwZWRSZXNwb25zZUVycm9yIH0gZnJvbSAnLi9jbGFzc2VzLnR5cGVkcmVzcG9uc2VlcnJvci5qcyc7XG5pbXBvcnQgeyBUeXBlZFRvb2xzIH0gZnJvbSAnLi9jbGFzc2VzLnR5cGVkdG9vbHMuanMnO1xuXG5leHBvcnQgdHlwZSBUSGFuZGxlckZ1bmN0aW9uPFQgZXh0ZW5kcyBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdD4gPSAoXG4gIHJlcXVlc3RBcmc6IFRbJ3JlcXVlc3QnXSxcbiAgdHlwZWRUb29sc0FyZz86IFR5cGVkVG9vbHNcbikgPT4gUHJvbWlzZTxUWydyZXNwb25zZSddPjtcblxuLyoqXG4gKiB0eXBlZCBoYW5kbGVyIGZvciBkZWFsaW5nIHdpdGggdHlwZWQgcmVxdWVzdHNcbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVkSGFuZGxlcjxUIGV4dGVuZHMgcGx1Z2lucy50eXBlZFJlcXVlc3RJbnRlcmZhY2VzLklUeXBlZFJlcXVlc3Q+IHtcbiAgcHVibGljIG1ldGhvZDogc3RyaW5nO1xuICBwcml2YXRlIGhhbmRsZXJGdW5jdGlvbjogVEhhbmRsZXJGdW5jdGlvbjxUPjtcblxuICBjb25zdHJ1Y3RvcihtZXRob2RBcmc6IFRbJ21ldGhvZCddLCBoYW5kbGVyRnVuY3Rpb25Bcmc6IFRIYW5kbGVyRnVuY3Rpb248VD4pIHtcbiAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZEFyZztcbiAgICB0aGlzLmhhbmRsZXJGdW5jdGlvbiA9IGhhbmRsZXJGdW5jdGlvbkFyZztcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGRzIGEgcmVzcG9uc2UgdG8gdGhlIHR5cGVkUmVxdWVzdFxuICAgKiBAcGFyYW0gdHlwZWRSZXF1ZXN0QXJnXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYWRkUmVzcG9uc2UodHlwZWRSZXF1ZXN0QXJnOiBUKSB7XG4gICAgaWYgKHR5cGVkUmVxdWVzdEFyZy5tZXRob2QgIT09IHRoaXMubWV0aG9kKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICd0aGlzIGhhbmRsZXIgaGFzIGJlZW4gZ2l2ZW4gYSB3cm9uZyBtZXRob2QgdG8gYW5zd2VyIHRvLiBQbGVhc2UgdXNlIGEgVHlwZWRSb3V0ZXIgdG8gZmlsdGVyIHJlcXVlc3RzJ1xuICAgICAgKTtcbiAgICB9XG4gICAgbGV0IHR5cGVkUmVzcG9uc2VFcnJvcjogVHlwZWRSZXNwb25zZUVycm9yO1xuICAgIGNvbnN0IHR5cGVkdG9vbHNJbnN0YW5jZSA9IG5ldyBUeXBlZFRvb2xzKCk7XG4gICAgLy8gUGFzcyBsb2NhbERhdGEgZnJvbSB0aGUgcmVxdWVzdCB0byBUeXBlZFRvb2xzIHNvIGhhbmRsZXJzIGNhbiBhY2Nlc3MgdHJhbnNwb3J0LWxheWVyIGNvbnRleHRcbiAgICBpZiAodHlwZWRSZXF1ZXN0QXJnLmxvY2FsRGF0YSkge1xuICAgICAgdHlwZWR0b29sc0luc3RhbmNlLmxvY2FsRGF0YSA9IHR5cGVkUmVxdWVzdEFyZy5sb2NhbERhdGE7XG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5oYW5kbGVyRnVuY3Rpb24odHlwZWRSZXF1ZXN0QXJnLnJlcXVlc3QsIHR5cGVkdG9vbHNJbnN0YW5jZSkuY2F0Y2goKGUpID0+IHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgVHlwZWRSZXNwb25zZUVycm9yKSB7XG4gICAgICAgIHR5cGVkUmVzcG9uc2VFcnJvciA9IGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0eXBlZFJlc3BvbnNlRXJyb3IpIHtcbiAgICAgIHR5cGVkUmVxdWVzdEFyZy5lcnJvciA9IHtcbiAgICAgICAgdGV4dDogdHlwZWRSZXNwb25zZUVycm9yLmVycm9yVGV4dCxcbiAgICAgICAgZGF0YTogdHlwZWRSZXNwb25zZUVycm9yLmVycm9yRGF0YSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICB0eXBlZFJlcXVlc3RBcmcucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICB9XG5cbiAgICB0eXBlZFJlcXVlc3RBcmc/LmNvcnJlbGF0aW9uPy5waGFzZSA/ICh0eXBlZFJlcXVlc3RBcmcuY29ycmVsYXRpb24ucGhhc2UgPSAncmVzcG9uc2UnKSA6IG51bGw7XG5cbiAgICByZXR1cm4gdHlwZWRSZXF1ZXN0QXJnO1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3BsdWdpbnMuanMnO1xuaW1wb3J0IHsgVmlydHVhbFN0cmVhbSB9IGZyb20gJy4vY2xhc3Nlcy52aXJ0dWFsc3RyZWFtLmpzJztcblxuaW1wb3J0IHsgVHlwZWRIYW5kbGVyIH0gZnJvbSAnLi9jbGFzc2VzLnR5cGVkaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBUeXBlZFJlcXVlc3QgfSBmcm9tICcuL2NsYXNzZXMudHlwZWRyZXF1ZXN0LmpzJztcblxuLyoqXG4gKiBMb2cgZW50cnkgZm9yIFR5cGVkUmVxdWVzdCB0cmFmZmljIG1vbml0b3JpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVHlwZWRSZXF1ZXN0TG9nRW50cnkge1xuICBjb3JyZWxhdGlvbklkOiBzdHJpbmc7XG4gIG1ldGhvZDogc3RyaW5nO1xuICBkaXJlY3Rpb246ICdvdXRnb2luZycgfCAnaW5jb21pbmcnO1xuICBwaGFzZTogJ3JlcXVlc3QnIHwgJ3Jlc3BvbnNlJztcbiAgdGltZXN0YW1wOiBudW1iZXI7XG4gIGR1cmF0aW9uTXM/OiBudW1iZXI7XG4gIHBheWxvYWQ6IGFueTtcbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSG9va3MgZm9yIGludGVyY2VwdGluZyBUeXBlZFJlcXVlc3QgdHJhZmZpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElUeXBlZFJvdXRlckhvb2tzIHtcbiAgb25PdXRnb2luZ1JlcXVlc3Q/OiAoZW50cnk6IElUeXBlZFJlcXVlc3RMb2dFbnRyeSkgPT4gdm9pZDtcbiAgb25JbmNvbWluZ1Jlc3BvbnNlPzogKGVudHJ5OiBJVHlwZWRSZXF1ZXN0TG9nRW50cnkpID0+IHZvaWQ7XG4gIG9uSW5jb21pbmdSZXF1ZXN0PzogKGVudHJ5OiBJVHlwZWRSZXF1ZXN0TG9nRW50cnkpID0+IHZvaWQ7XG4gIG9uT3V0Z29pbmdSZXNwb25zZT86IChlbnRyeTogSVR5cGVkUmVxdWVzdExvZ0VudHJ5KSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEEgdHlwZWQgcm91dGVyIGRlY2lkZXMgb24gd2hpY2ggdHlwZWQgaGFuZGxlciB0byBjYWxsIGJhc2VkIG9uIHRoZSBtZXRob2RcbiAqIHNwZWNpZmllZCBpbiB0aGUgdHlwZWQgcmVxdWVzdFxuICogVGhpcyBpcyB0aG91Z2h0IGZvciByZXVzaW5nIHRoZSBzYW1lIHVybCBlbmRwb2ludCBmb3IgZGlmZmVyZW50IG1ldGhvZHNcbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVkUm91dGVyIHtcbiAgLy8gVXNlIGdsb2JhbFRoaXMgZm9yIGNyb3NzLWJ1bmRsZSBob29rIHNoYXJpbmdcbiAgcHVibGljIHN0YXRpYyBnZXQgZ2xvYmFsSG9va3MoKTogSVR5cGVkUm91dGVySG9va3Mge1xuICAgIGlmICghKGdsb2JhbFRoaXMgYXMgYW55KS5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3MpIHtcbiAgICAgIChnbG9iYWxUaGlzIGFzIGFueSkuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzID0ge307XG4gICAgfVxuICAgIHJldHVybiAoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2V0IGdsb2JhbEhvb2tzKHZhbHVlOiBJVHlwZWRSb3V0ZXJIb29rcykge1xuICAgIChnbG9iYWxUaGlzIGFzIGFueSkuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGdsb2JhbCBob29rcyBmb3IgbW9uaXRvcmluZyBhbGwgVHlwZWRSZXF1ZXN0IHRyYWZmaWNcbiAgICogSG9va3MgYXJlIHNoYXJlZCBhY3Jvc3MgYWxsIGJ1bmRsZXMgdmlhIGdsb2JhbFRoaXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2V0R2xvYmFsSG9va3MoaG9va3M6IElUeXBlZFJvdXRlckhvb2tzKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IFR5cGVkUm91dGVyLmdsb2JhbEhvb2tzO1xuICAgIFR5cGVkUm91dGVyLmdsb2JhbEhvb2tzID0geyAuLi5jdXJyZW50LCAuLi5ob29rcyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGFsbCBnbG9iYWwgaG9va3NcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY2xlYXJHbG9iYWxIb29rcygpOiB2b2lkIHtcbiAgICAoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcyA9IHt9O1xuICB9XG5cbiAgLy8gSW5zdGFuY2UtbGV2ZWwgaG9va3MgKGZvciBwZXItcm91dGVyIG1vbml0b3JpbmcpXG4gIHB1YmxpYyBob29rczogSVR5cGVkUm91dGVySG9va3MgPSB7fTtcblxuICAvKipcbiAgICogU2V0IGluc3RhbmNlLWxldmVsIGhvb2tzIGZvciBtb25pdG9yaW5nIHRyYWZmaWMgdGhyb3VnaCB0aGlzIHJvdXRlclxuICAgKi9cbiAgcHVibGljIHNldEhvb2tzKGhvb2tzOiBJVHlwZWRSb3V0ZXJIb29rcyk6IHZvaWQge1xuICAgIHRoaXMuaG9va3MgPSB7IC4uLnRoaXMuaG9va3MsIC4uLmhvb2tzIH07XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIHRvIGNhbGwgYm90aCBnbG9iYWwgYW5kIGluc3RhbmNlIGhvb2tzXG4gICAqL1xuICBwcml2YXRlIGNhbGxIb29rKFxuICAgIGhvb2tOYW1lOiBrZXlvZiBJVHlwZWRSb3V0ZXJIb29rcyxcbiAgICBlbnRyeTogSVR5cGVkUmVxdWVzdExvZ0VudHJ5XG4gICk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICAvLyBDYWxsIGdsb2JhbCBob29rc1xuICAgICAgVHlwZWRSb3V0ZXIuZ2xvYmFsSG9va3NbaG9va05hbWVdPy4oZW50cnkpO1xuICAgICAgLy8gQ2FsbCBpbnN0YW5jZSBob29rc1xuICAgICAgdGhpcy5ob29rc1tob29rTmFtZV0/LihlbnRyeSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBUeXBlZFJvdXRlciBob29rIGVycm9yICgke2hvb2tOYW1lfSk6YCwgZXJyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcm91dGVyTWFwID0gbmV3IHBsdWdpbnMubGlrLk9iamVjdE1hcDxUeXBlZFJvdXRlcj4oKTtcbiAgcHVibGljIGhhbmRsZXJNYXAgPSBuZXcgcGx1Z2lucy5saWsuT2JqZWN0TWFwPFxuICAgIFR5cGVkSGFuZGxlcjxhbnkgJiBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdD5cbiAgPigpO1xuICBwdWJsaWMgcmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zID0gbmV3IHBsdWdpbnMubGlrLk9iamVjdE1hcDxWaXJ0dWFsU3RyZWFtPGFueT4+KCk7XG5cbiAgcHVibGljIGZpcmVFdmVudEludGVyZXN0TWFwID0gbmV3IHBsdWdpbnMubGlrLkludGVyZXN0TWFwPFxuICAgIHN0cmluZyxcbiAgICBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdFxuICA+KChjb3JyZWxhdGlvbklkOiBzdHJpbmcpID0+IGNvcnJlbGF0aW9uSWQpO1xuXG4gIC8qKlxuICAgKiBhZGRzIHRoZSBoYW5kbGVyIHRvIHRoZSByb3V0aW5nIG1hcFxuICAgKiBAcGFyYW0gdHlwZWRIYW5kbGVyQXJnXG4gICAqL1xuICBwdWJsaWMgYWRkVHlwZWRIYW5kbGVyPFQgZXh0ZW5kcyBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdD4oXG4gICAgdHlwZWRIYW5kbGVyQXJnOiBUeXBlZEhhbmRsZXI8VD5cbiAgKSB7XG4gICAgLy8gbGV0cyBjaGVjayBmb3IgZGVkdXBsaWNhdGlvblxuICAgIGNvbnN0IGV4aXN0aW5nVHlwZWRIYW5kbGVyID0gdGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodHlwZWRIYW5kbGVyQXJnLm1ldGhvZCk7XG4gICAgaWYgKGV4aXN0aW5nVHlwZWRIYW5kbGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBhIFR5cGVkSGFuZGxlciBmb3IgJHt0eXBlZEhhbmRsZXJBcmcubWV0aG9kfSBhbHJlZHkgZXhpc3RzISBDYW4ndCBhZGQgYW5vdGhlciBvbmUuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZXJNYXAuYWRkKHR5cGVkSGFuZGxlckFyZyk7XG4gIH1cblxuICAvKipcbiAgICogYWRkcyBhbm90aGVyIHN1YiB0eXBlZFJvdXRlclxuICAgKiBAcGFyYW0gdHlwZWRSZXF1ZXN0XG4gICAqL1xuICBwdWJsaWMgYWRkVHlwZWRSb3V0ZXIodHlwZWRSb3V0ZXJBcmc6IFR5cGVkUm91dGVyKSB7XG4gICAgY29uc3Qgcm91dGVyRXhpc3RzID0gdGhpcy5yb3V0ZXJNYXAuZmluZFN5bmMoKHJvdXRlckFyZykgPT4gcm91dGVyQXJnID09PSB0eXBlZFJvdXRlckFyZyk7XG4gICAgaWYgKCFyb3V0ZXJFeGlzdHMpIHtcbiAgICAgIHRoaXMucm91dGVyTWFwLmFkZCh0eXBlZFJvdXRlckFyZyk7XG4gICAgICB0eXBlZFJvdXRlckFyZy5hZGRUeXBlZFJvdXRlcih0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hlY2tGb3JUeXBlZEhhbmRsZXIobWV0aG9kQXJnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChtZXRob2RBcmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldHMgYSB0eXBlZCBSb3V0ZXIgZnJvbSB0aGUgcm91dGVyIGNoYWluLCB1cHN0cmVhbSBhbmQgZG93bnN0cmVhbVxuICAgKiBAcGFyYW0gbWV0aG9kQXJnXG4gICAqIEBwYXJhbSBjaGVja1Vwc3RyZWFtUm91dGVyXG4gICAqL1xuICBwdWJsaWMgZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKFxuICAgIG1ldGhvZEFyZzogc3RyaW5nLFxuICAgIGNoZWNrZWRSb3V0ZXJzOiBUeXBlZFJvdXRlcltdID0gW11cbiAgKTogVHlwZWRIYW5kbGVyPGFueT4ge1xuICAgIGNoZWNrZWRSb3V0ZXJzLnB1c2godGhpcyk7XG5cbiAgICBsZXQgdHlwZWRIYW5kbGVyOiBUeXBlZEhhbmRsZXI8YW55PjtcblxuICAgIHR5cGVkSGFuZGxlciA9IHRoaXMuaGFuZGxlck1hcC5maW5kU3luYygoaGFuZGxlcikgPT4ge1xuICAgICAgcmV0dXJuIGhhbmRsZXIubWV0aG9kID09PSBtZXRob2RBcmc7XG4gICAgfSk7XG5cbiAgICBpZiAoIXR5cGVkSGFuZGxlcikge1xuICAgICAgdGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKS5mb3JFYWNoKCh0eXBlZFJvdXRlckFyZykgPT4ge1xuICAgICAgICBpZiAoIXR5cGVkSGFuZGxlciAmJiAhY2hlY2tlZFJvdXRlcnMuaW5jbHVkZXModHlwZWRSb3V0ZXJBcmcpKSB7XG4gICAgICAgICAgdHlwZWRIYW5kbGVyID0gdHlwZWRSb3V0ZXJBcmcuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKG1ldGhvZEFyZywgY2hlY2tlZFJvdXRlcnMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZWRIYW5kbGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHJvdXRlQW5kQWRkUmVzcG9uc2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFJvdXRlT3B0aW9ucyA9IHtcbiAgICBsb2NhbFJlcXVlc3Q6IGZhbHNlLFxuICAgIHNraXBIb29rczogZmFsc2UsXG4gIH07XG5cbiAgLyoqXG4gICAqIGlmIHR5cGVkcmVxdWVzdCBvYmplY3QgaGFzIGNvcnJlbGF0aW9uLnBoYXNlID09PSAncmVxdWVzdCcgLT4gcm91dGVzIGEgdHlwZWQgcmVxdWVzdCBvYmplY3QgdG8gYSBoYW5kbGVyXG4gICAqIGlmIHR5cGVkcmVxdWVzdCBvYmplY3QgaGFzIGNvcnJlbGF0aW9uLnBoYXNlID09PSAncmVzcG9uc2UnIC0+IHJvdXRlcyBhIHR5cGVkIHJlcXVlc3Qgb2JqZWN0IHRvIHJlcXVlc3QgZmlyZSBldmVudFxuICAgKiBAcGFyYW0gdHlwZWRSZXF1ZXN0QXJnXG4gICAqIEBwYXJhbSBvcHRpb25zQXJnIC0gT3B0aW9ucyBvYmplY3Qgd2l0aDpcbiAgICogICAtIGxvY2FsUmVxdWVzdDogdHJlYXQgYXMgbG9jYWwgcmVxdWVzdCAoZGVmYXVsdDogZmFsc2UpXG4gICAqICAgLSBza2lwSG9va3M6IHNraXAgY2FsbGluZyBob29rcyBmb3IgdGhpcyByb3V0aW5nIChkZWZhdWx0OiBmYWxzZSwgdXNlIGZvciBicm9hZGNhc3QtcmVjZWl2ZWQgbWVzc2FnZXMpXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcm91dGVBbmRBZGRSZXNwb25zZTxcbiAgICBUIGV4dGVuZHMgcGx1Z2lucy50eXBlZFJlcXVlc3RJbnRlcmZhY2VzLklUeXBlZFJlcXVlc3QgPSBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdFxuICA+KHR5cGVkUmVxdWVzdEFyZzogVCwgb3B0aW9uc0FyZzogeyBsb2NhbFJlcXVlc3Q/OiBib29sZWFuOyBza2lwSG9va3M/OiBib29sZWFuIH0gPSB7fSk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLlR5cGVkUm91dGVyLmRlZmF1bHRSb3V0ZU9wdGlvbnMsIC4uLm9wdGlvbnNBcmcgfTtcbiAgICAvLyBkZWNvZGluZyBmaXJzdFxuICAgIHR5cGVkUmVxdWVzdEFyZyA9IFZpcnR1YWxTdHJlYW0uZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHR5cGVkUmVxdWVzdEFyZywge1xuICAgICAgdHlwZWRyb3V0ZXI6IHRoaXMsXG4gICAgfSk7XG5cbiAgICAvLyBsb2NhbGRhdGEgc2Vjb25kXG4gICAgdHlwZWRSZXF1ZXN0QXJnLmxvY2FsRGF0YSA9IHR5cGVkUmVxdWVzdEFyZy5sb2NhbERhdGEgfHwge307XG4gICAgdHlwZWRSZXF1ZXN0QXJnLmxvY2FsRGF0YS5maXJzdFR5cGVkcm91dGVyID0gdGhpcztcblxuICAgIC8vIGxldHMgZG8gc3RyZWFtIHByb2Nlc3NpbmdcbiAgICBpZiAodHlwZWRSZXF1ZXN0QXJnLm1ldGhvZCA9PT0gJyMjVmlydHVhbFN0cmVhbSMjJykge1xuICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSBhd2FpdCB0aGlzLmhhbmRsZVN0cmVhbVR5cGVkUmVxdWVzdCh0eXBlZFJlcXVlc3RBcmcgYXMgcGx1Z2lucy50eXBlZFJlcXVlc3RJbnRlcmZhY2VzLklTdHJlYW1SZXF1ZXN0KTtcbiAgICAgIHJlc3VsdC5sb2NhbERhdGEgPSBudWxsO1xuICAgICAgcmV0dXJuIHJlc3VsdCBhcyBUO1xuICAgIH1cblxuICAgIC8vIGxldHMgZG8gbm9ybWFsIHJvdXRpbmdcbiAgICBpZiAodHlwZWRSZXF1ZXN0QXJnPy5jb3JyZWxhdGlvbj8ucGhhc2UgPT09ICdyZXF1ZXN0JyB8fCBvcHRpb25zLmxvY2FsUmVxdWVzdCkge1xuICAgICAgY29uc3QgcmVxdWVzdFN0YXJ0VGltZSA9IERhdGUubm93KCk7XG5cbiAgICAgIC8vIEhvb2s6IGluY29taW5nIHJlcXVlc3QgKHNraXAgaWYgcm91dGluZyBicm9hZGNhc3QtcmVjZWl2ZWQgbWVzc2FnZXMpXG4gICAgICBpZiAoIW9wdGlvbnMuc2tpcEhvb2tzKSB7XG4gICAgICAgIHRoaXMuY2FsbEhvb2soJ29uSW5jb21pbmdSZXF1ZXN0Jywge1xuICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHR5cGVkUmVxdWVzdEFyZy5jb3JyZWxhdGlvbj8uaWQgfHwgJ3Vua25vd24nLFxuICAgICAgICAgIG1ldGhvZDogdHlwZWRSZXF1ZXN0QXJnLm1ldGhvZCxcbiAgICAgICAgICBkaXJlY3Rpb246ICdpbmNvbWluZycsXG4gICAgICAgICAgcGhhc2U6ICdyZXF1ZXN0JyxcbiAgICAgICAgICB0aW1lc3RhbXA6IHJlcXVlc3RTdGFydFRpbWUsXG4gICAgICAgICAgcGF5bG9hZDogdHlwZWRSZXF1ZXN0QXJnLnJlcXVlc3QsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0eXBlZEhhbmRsZXIgPSB0aGlzLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZCh0eXBlZFJlcXVlc3RBcmcubWV0aG9kKTtcblxuICAgICAgaWYgKCF0eXBlZEhhbmRsZXIpIHtcbiAgICAgICAgY29uc29sZS5sb2coYENhbm5vdCBmaW5kIGhhbmRsZXIgZm9yIG1ldGhvZG5hbWUgJHt0eXBlZFJlcXVlc3RBcmcubWV0aG9kfWApO1xuICAgICAgICB0eXBlZFJlcXVlc3RBcmcuZXJyb3IgPSB7XG4gICAgICAgICAgdGV4dDogJ1RoZXJlIGlzIG5vIGF2YWlsYWJsZSBtZXRob2QgZm9yIHRoaXMgY2FsbCBvbiB0aGUgc2VydmVyIHNpZGUnLFxuICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICB9O1xuICAgICAgICB0eXBlZFJlcXVlc3RBcmcuY29ycmVsYXRpb24ucGhhc2UgPSAncmVzcG9uc2UnO1xuXG4gICAgICAgIC8vIGVuY29kZSBhZ2FpbiBiZWZvcmUgaGFuZGluZyBiYWNrXG4gICAgICAgIHR5cGVkUmVxdWVzdEFyZy5sb2NhbERhdGEgPSBudWxsO1xuICAgICAgICB0eXBlZFJlcXVlc3RBcmcgPSBWaXJ0dWFsU3RyZWFtLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKHR5cGVkUmVxdWVzdEFyZywge1xuICAgICAgICAgIHR5cGVkcm91dGVyOiB0aGlzLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBIb29rOiBvdXRnb2luZyByZXNwb25zZSAoZXJyb3IgLSBubyBoYW5kbGVyKVxuICAgICAgICBpZiAoIW9wdGlvbnMuc2tpcEhvb2tzKSB7XG4gICAgICAgICAgdGhpcy5jYWxsSG9vaygnb25PdXRnb2luZ1Jlc3BvbnNlJywge1xuICAgICAgICAgICAgY29ycmVsYXRpb25JZDogdHlwZWRSZXF1ZXN0QXJnLmNvcnJlbGF0aW9uPy5pZCB8fCAndW5rbm93bicsXG4gICAgICAgICAgICBtZXRob2Q6IHR5cGVkUmVxdWVzdEFyZy5tZXRob2QsXG4gICAgICAgICAgICBkaXJlY3Rpb246ICdvdXRnb2luZycsXG4gICAgICAgICAgICBwaGFzZTogJ3Jlc3BvbnNlJyxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgIGR1cmF0aW9uTXM6IERhdGUubm93KCkgLSByZXF1ZXN0U3RhcnRUaW1lLFxuICAgICAgICAgICAgcGF5bG9hZDogdHlwZWRSZXF1ZXN0QXJnLnJlc3BvbnNlLFxuICAgICAgICAgICAgZXJyb3I6IHR5cGVkUmVxdWVzdEFyZy5lcnJvcj8udGV4dCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0eXBlZFJlcXVlc3RBcmc7XG4gICAgICB9XG5cbiAgICAgIHR5cGVkUmVxdWVzdEFyZyA9IGF3YWl0IHR5cGVkSGFuZGxlci5hZGRSZXNwb25zZSh0eXBlZFJlcXVlc3RBcmcpO1xuICAgICAgdHlwZWRSZXF1ZXN0QXJnLmxvY2FsRGF0YSA9IG51bGw7XG4gICAgICAvLyBlbmNvZGUgYWdhaW4gYmVmb3JlIGhhbmRpbmcgYmFja1xuICAgICAgdHlwZWRSZXF1ZXN0QXJnID0gVmlydHVhbFN0cmVhbS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayh0eXBlZFJlcXVlc3RBcmcsIHtcbiAgICAgICAgdHlwZWRyb3V0ZXI6IHRoaXMsXG4gICAgICB9KTtcblxuICAgICAgLy8gSG9vazogb3V0Z29pbmcgcmVzcG9uc2UgKHN1Y2Nlc3MpXG4gICAgICBpZiAoIW9wdGlvbnMuc2tpcEhvb2tzKSB7XG4gICAgICAgIHRoaXMuY2FsbEhvb2soJ29uT3V0Z29pbmdSZXNwb25zZScsIHtcbiAgICAgICAgICBjb3JyZWxhdGlvbklkOiB0eXBlZFJlcXVlc3RBcmcuY29ycmVsYXRpb24/LmlkIHx8ICd1bmtub3duJyxcbiAgICAgICAgICBtZXRob2Q6IHR5cGVkUmVxdWVzdEFyZy5tZXRob2QsXG4gICAgICAgICAgZGlyZWN0aW9uOiAnb3V0Z29pbmcnLFxuICAgICAgICAgIHBoYXNlOiAncmVzcG9uc2UnLFxuICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgICAgICBkdXJhdGlvbk1zOiBEYXRlLm5vdygpIC0gcmVxdWVzdFN0YXJ0VGltZSxcbiAgICAgICAgICBwYXlsb2FkOiB0eXBlZFJlcXVlc3RBcmcucmVzcG9uc2UsXG4gICAgICAgICAgZXJyb3I6IHR5cGVkUmVxdWVzdEFyZy5lcnJvcj8udGV4dCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0eXBlZFJlcXVlc3RBcmc7XG4gICAgfSBlbHNlIGlmICh0eXBlZFJlcXVlc3RBcmc/LmNvcnJlbGF0aW9uPy5waGFzZSA9PT0gJ3Jlc3BvbnNlJykge1xuICAgICAgLy8gSG9vazogaW5jb21pbmcgcmVzcG9uc2VcbiAgICAgIGlmICghb3B0aW9ucy5za2lwSG9va3MpIHtcbiAgICAgICAgdGhpcy5jYWxsSG9vaygnb25JbmNvbWluZ1Jlc3BvbnNlJywge1xuICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHR5cGVkUmVxdWVzdEFyZy5jb3JyZWxhdGlvbj8uaWQgfHwgJ3Vua25vd24nLFxuICAgICAgICAgIG1ldGhvZDogdHlwZWRSZXF1ZXN0QXJnLm1ldGhvZCxcbiAgICAgICAgICBkaXJlY3Rpb246ICdpbmNvbWluZycsXG4gICAgICAgICAgcGhhc2U6ICdyZXNwb25zZScsXG4gICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICAgIHBheWxvYWQ6IHR5cGVkUmVxdWVzdEFyZy5yZXNwb25zZSxcbiAgICAgICAgICBlcnJvcjogdHlwZWRSZXF1ZXN0QXJnLmVycm9yPy50ZXh0LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcFxuICAgICAgICAuZmluZEludGVyZXN0KHR5cGVkUmVxdWVzdEFyZy5jb3JyZWxhdGlvbi5pZClcbiAgICAgICAgPy5mdWxsZmlsbEludGVyZXN0KHR5cGVkUmVxdWVzdEFyZyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ3JlY2VpdmVkIHdlaXJkbHkgc2hhcGVkIHJlcXVlc3QnKTtcbiAgICAgIGNvbnNvbGUubG9nKHR5cGVkUmVxdWVzdEFyZyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogaGFuZGxlIHN0cmVhbWluZ1xuICAgKiBAcGFyYW0gc3RyZWFtVHJBcmcgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFuZGxlU3RyZWFtVHlwZWRSZXF1ZXN0KHN0cmVhbVRyQXJnOiBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVN0cmVhbVJlcXVlc3QpIHtcbiAgICBjb25zdCByZWxldmFudFZpcnR1YWxTdHJlYW0gPSBhd2FpdCB0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5maW5kKGFzeW5jIHZpcnR1YWxTdHJlYW1BcmcgPT4ge1xuICAgICAgcmV0dXJuIHZpcnR1YWxTdHJlYW1Bcmcuc3RyZWFtSWQgPT09IHN0cmVhbVRyQXJnLnJlcXVlc3Quc3RyZWFtSWQ7XG4gICAgfSk7XG4gICAgaWYgKCFyZWxldmFudFZpcnR1YWxTdHJlYW0pIHtcbiAgICAgIGNvbnNvbGUubG9nKGBubyByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSBmb3VuZCBmb3Igc3RyZWFtIHdpdGggaWQgJHtzdHJlYW1UckFyZy5yZXF1ZXN0LnN0cmVhbUlkfWApO1xuICAgICAgY29uc29sZS5sb2codGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZ2V0QXJyYXkoKSk7XG4gICAgICByZXR1cm4gc3RyZWFtVHJBcmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGBzdWNjZXNzOiBmb3VuZCByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSB3aXRoIGlkICR7c3RyZWFtVHJBcmcucmVxdWVzdC5zdHJlYW1JZH1gKTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVsZXZhbnRWaXJ0dWFsU3RyZWFtLmhhbmRsZVN0cmVhbVRyKHN0cmVhbVRyQXJnKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3BsdWdpbnMuanMnO1xuaW1wb3J0IHsgVHlwZWRSb3V0ZXIgfSBmcm9tICcuL2NsYXNzZXMudHlwZWRyb3V0ZXIuanMnO1xuXG5cbmNvbnN0IGNsb3NpbmdCaXQ6IGFueSA9ICcjIyMjIyMjIyMjIyMjQ0xPU0lORyBCSVQjIyMjIyMjIyMjIyMjJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ29tbUZ1bmN0aW9ucyB7XG4gIHNlbmRNZXRob2Q/OiAoXG4gICAgc2VuZFBheWxvYWQ6IHBsdWdpbnMudHlwZWRSZXF1ZXN0SW50ZXJmYWNlcy5JU3RyZWFtUmVxdWVzdFxuICApID0+IFByb21pc2U8cGx1Z2lucy50eXBlZFJlcXVlc3RJbnRlcmZhY2VzLklTdHJlYW1SZXF1ZXN0PjtcbiAgdHlwZWRyb3V0ZXI/OiBUeXBlZFJvdXRlcjtcbn1cblxuLyoqXG4gKiAxLiBBIFZpcnR1YWxTdHJlYW0gY29ubmVjdHMgb3ZlciB0aGUgbmV0d29ya1xuICogMi4gSXQgaXMgYWx3YXlzIHBhaXJlZCB0byBvbmUgb3RoZXIgVmlydHVhbFN0cmVhbVxuICogICAgb24gdGhlIG90aGVyIHNpZGUgd2l0aCB0aGUgc2FtZSBzdHJlYW1JZC5cbiAqIDMuIEl0IGhhcyBhIFJlYWRhYmxlIGFuZCBXcml0YWJsZSBzaWRlLlxuICogNC4gVGhlIFdyaXRhYmxlIHNpZGUgaXMgUmVhZGFibGUgb24gdGhlIG90aGVyIHNpZGUgYW5kIHZpY2UgdmVyc2EuXG4gKi9cbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU3RyZWFtPFQgPSBVaW50OEFycmF5PiBpbXBsZW1lbnRzIHBsdWdpbnMudHlwZWRSZXF1ZXN0SW50ZXJmYWNlcy5JVmlydHVhbFN0cmVhbTxUPiB7XG4gIC8vIFNUQVRJQ1xuICBwdWJsaWMgc3RhdGljIGVuY29kZVBheWxvYWRGb3JOZXR3b3JrKFxuICAgIG9iamVjdFBheWxvYWQ6IGFueSxcbiAgICBjb21tRnVuY3Rpb25zOiBJQ29tbUZ1bmN0aW9ucyxcbiAgICBvcmlnaW5hbFBheWxvYWQ/OiBhbnksXG4gICAgcGF0aCA9IFtdXG4gICk6IGFueSB7XG4gICAgaWYgKCFvYmplY3RQYXlsb2FkKSB7XG4gICAgICByZXR1cm4gb2JqZWN0UGF5bG9hZDtcbiAgICB9XG4gICAgaWYgKHBsdWdpbnMuc21hcnRidWZmZXIuaXNCdWZmZXJMaWtlKG9iamVjdFBheWxvYWQpKSB7XG4gICAgICByZXR1cm4gb2JqZWN0UGF5bG9hZDtcbiAgICB9XG4gICAgaWYgKG9iamVjdFBheWxvYWQgaW5zdGFuY2VvZiBWaXJ0dWFsU3RyZWFtKSB7XG4gICAgICBpZiAoIW9iamVjdFBheWxvYWQuc2lkZSAmJiBjb21tRnVuY3Rpb25zLnNlbmRNZXRob2QpIHtcbiAgICAgICAgb2JqZWN0UGF5bG9hZC5zaWRlID0gJ3JlcXVlc3RpbmcnO1xuICAgICAgICBvYmplY3RQYXlsb2FkLnNlbmRNZXRob2QgPSBjb21tRnVuY3Rpb25zLnNlbmRNZXRob2Q7XG4gICAgICB9XG4gICAgICBpZiAoIW9iamVjdFBheWxvYWQuc2lkZSAmJiBjb21tRnVuY3Rpb25zLnR5cGVkcm91dGVyKSB7XG4gICAgICAgIG9iamVjdFBheWxvYWQuc2lkZSA9ICdyZXNwb25kaW5nJztcbiAgICAgICAgb2JqZWN0UGF5bG9hZC50eXBlZHJvdXRlciA9IGNvbW1GdW5jdGlvbnMudHlwZWRyb3V0ZXI7XG4gICAgICAgIGNvbW1GdW5jdGlvbnMudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChvYmplY3RQYXlsb2FkKTtcbiAgICAgIH1cbiAgICAgIGlmICghb3JpZ2luYWxQYXlsb2FkLnJlc3BvbnNlIHx8IHBhdGguaW5jbHVkZXMoJ3Jlc3BvbnNlJykpIHtcbiAgICAgICAgb2JqZWN0UGF5bG9hZC5zdGFydEtlZXBBbGl2ZUxvb3AoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBfaXNWaXJ0dWFsU3RyZWFtOiB0cnVlLFxuICAgICAgICAgIHN0cmVhbUlkOiBvYmplY3RQYXlsb2FkLnN0cmVhbUlkLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBfT0JNSVRURURfVklSVFVBTF9TVFJFQU06IHRydWUsXG4gICAgICAgICAgcmVhc29uOiAncGF0aCBpcyB1bmRlciAucmVxdWVzdDogb2JtaXR0ZWQgZm9yIGRlZHVwbGljYXRpb24gcmVhc29ucyBpbiByZXNwb25zZSBjeWNsZS4nLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvYmplY3RQYXlsb2FkKSkge1xuICAgICAgLy8gRm9yIGFycmF5cywgd2UgcmVjdXJzZSBvdmVyIGVhY2ggaXRlbS5cbiAgICAgIHJldHVybiBvYmplY3RQYXlsb2FkLm1hcCgoaXRlbSwgaW5kZXgpID0+IFxuICAgICAgICBWaXJ0dWFsU3RyZWFtLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKFxuICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgY29tbUZ1bmN0aW9ucyxcbiAgICAgICAgICBvcmlnaW5hbFBheWxvYWQgfHwgb2JqZWN0UGF5bG9hZCxcbiAgICAgICAgICBwYXRoLmNvbmNhdChTdHJpbmcoaW5kZXgpKSAvLyBDb252ZXJ0IGluZGV4IHRvIHN0cmluZyBhbmQgY29uY2F0ZW5hdGUgdG8gcGF0aFxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAob2JqZWN0UGF5bG9hZCAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqZWN0UGF5bG9hZCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIEZvciBvYmplY3RzLCB3ZSByZWN1cnNlIG92ZXIgZWFjaCBrZXktdmFsdWUgcGFpci5cbiAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhvYmplY3RQYXlsb2FkKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1BhdGggPSBwYXRoLmNvbmNhdChrZXkpOyAvLyBDb25jYXRlbmF0ZSB0aGUgbmV3IGtleSB0byB0aGUgcGF0aFxuICAgICAgICBhY2Nba2V5XSA9IFZpcnR1YWxTdHJlYW0uZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgY29tbUZ1bmN0aW9ucyxcbiAgICAgICAgICBvcmlnaW5hbFBheWxvYWQgfHwgb2JqZWN0UGF5bG9hZCxcbiAgICAgICAgICBuZXdQYXRoXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvYmplY3RQYXlsb2FkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKG9iamVjdFBheWxvYWQ6IGFueSwgY29tbUZ1bmN0aW9uczogSUNvbW1GdW5jdGlvbnMpOiBhbnkge1xuXG4gICAgaWYgKFxuICAgICAgcGx1Z2lucy5zbWFydGJ1ZmZlci5pc0J1ZmZlckxpa2Uob2JqZWN0UGF5bG9hZClcbiAgICAgIHx8IG9iamVjdFBheWxvYWQgaW5zdGFuY2VvZiBUeXBlZFJvdXRlclxuICAgICkge1xuICAgICAgcmV0dXJuIG9iamVjdFBheWxvYWQ7XG4gICAgfVxuICAgIGlmIChvYmplY3RQYXlsb2FkICE9PSBudWxsICYmIHR5cGVvZiBvYmplY3RQYXlsb2FkID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gUHJlc2VydmUgYnVpbHQtaW4gb2JqZWN0cyB0aGF0IHNob3VsZG4ndCBiZSB0cmFuc2Zvcm1lZFxuICAgICAgaWYgKFxuICAgICAgICBvYmplY3RQYXlsb2FkIGluc3RhbmNlb2YgU2V0IHx8XG4gICAgICAgIG9iamVjdFBheWxvYWQgaW5zdGFuY2VvZiBNYXAgfHxcbiAgICAgICAgb2JqZWN0UGF5bG9hZCBpbnN0YW5jZW9mIERhdGUgfHxcbiAgICAgICAgb2JqZWN0UGF5bG9hZCBpbnN0YW5jZW9mIFJlZ0V4cCB8fFxuICAgICAgICBvYmplY3RQYXlsb2FkIGluc3RhbmNlb2YgRXJyb3IgfHxcbiAgICAgICAgb2JqZWN0UGF5bG9hZCBpbnN0YW5jZW9mIFByb21pc2UgfHxcbiAgICAgICAgdHlwZW9mIG9iamVjdFBheWxvYWQudGhlbiA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBvYmplY3RQYXlsb2FkO1xuICAgICAgfVxuICAgICAgaWYgKG9iamVjdFBheWxvYWQuX2lzVmlydHVhbFN0cmVhbSkge1xuICAgICAgICBjb25zdCB2aXJ0dWFsU3RyZWFtID0gbmV3IFZpcnR1YWxTdHJlYW0oKTtcbiAgICAgICAgdmlydHVhbFN0cmVhbS5zdHJlYW1JZCA9IG9iamVjdFBheWxvYWQuc3RyZWFtSWQ7XG4gICAgICAgIGlmICghdmlydHVhbFN0cmVhbS5zaWRlICYmIGNvbW1GdW5jdGlvbnMuc2VuZE1ldGhvZCkge1xuICAgICAgICAgIHZpcnR1YWxTdHJlYW0uc2lkZSA9ICdyZXF1ZXN0aW5nJztcbiAgICAgICAgICB2aXJ0dWFsU3RyZWFtLnNlbmRNZXRob2QgPSBjb21tRnVuY3Rpb25zLnNlbmRNZXRob2Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2aXJ0dWFsU3RyZWFtLnNpZGUgJiYgY29tbUZ1bmN0aW9ucy50eXBlZHJvdXRlcikge1xuICAgICAgICAgIHZpcnR1YWxTdHJlYW0uc2lkZSA9ICdyZXNwb25kaW5nJztcbiAgICAgICAgICB2aXJ0dWFsU3RyZWFtLnR5cGVkcm91dGVyID0gY29tbUZ1bmN0aW9ucy50eXBlZHJvdXRlcjtcbiAgICAgICAgICBjb21tRnVuY3Rpb25zLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQodmlydHVhbFN0cmVhbSk7XG4gICAgICAgIH1cbiAgICAgICAgdmlydHVhbFN0cmVhbS5zdGFydEtlZXBBbGl2ZUxvb3AoKTtcbiAgICAgICAgcmV0dXJuIHZpcnR1YWxTdHJlYW07XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0UGF5bG9hZCkpIHtcbiAgICAgICAgY29uc3QgcmV0dXJuQXJyYXkgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG9iamVjdFBheWxvYWQpIHtcbiAgICAgICAgICByZXR1cm5BcnJheS5wdXNoKFZpcnR1YWxTdHJlYW0uZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGl0ZW0sIGNvbW1GdW5jdGlvbnMpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0dXJuQXJyYXk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0UGF5bG9hZCkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gVmlydHVhbFN0cmVhbS5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsob2JqZWN0UGF5bG9hZFtrZXldLCBjb21tRnVuY3Rpb25zKTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvYmplY3RQYXlsb2FkO1xuICAgIH1cbiAgfVxuXG4gIC8vIElOU1RBTkNFXG5cbiAgcHVibGljIHNpZGU6ICdyZXF1ZXN0aW5nJyB8ICdyZXNwb25kaW5nJztcbiAgcHVibGljIHN0cmVhbUlkOiBzdHJpbmcgPSBwbHVnaW5zLmlzb3VuaXF1ZS51bmkoKTtcblxuICAvLyBpbnRlZ3JhdGlvbiB3aXRoIHR5cGVkcmVxdWVzdCBtZWNoYW5pY3NcbiAgcHVibGljIHNlbmRNZXRob2Q6IElDb21tRnVuY3Rpb25zWydzZW5kTWV0aG9kJ107XG4gIHB1YmxpYyB0eXBlZHJvdXRlcjogVHlwZWRSb3V0ZXI7XG5cbiAgLy8gd2V0aGVyIHRvIGtlZXAgdGhlIHN0cmVhbSBhbGl2ZVxuICBwcml2YXRlIGtlZXBBbGl2ZSA9IHRydWU7XG4gIHByaXZhdGUgbGFzdEtlZXBBbGl2ZUV2ZW50OiBudW1iZXI7XG5cbiAgLy8gYmFja3ByZXNzdXJlZCBhcnJheXNcbiAgcHJpdmF0ZSBzZW5kQmFja3ByZXNzdXJlZEFycmF5ID1cbiAgICBuZXcgcGx1Z2lucy5saWsuQmFja3ByZXNzdXJlZEFycmF5PFQ+KFxuICAgICAgMTZcbiAgICApO1xuICBwcml2YXRlIHJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkgPVxuICAgIG5ldyBwbHVnaW5zLmxpay5CYWNrcHJlc3N1cmVkQXJyYXk8VD4oXG4gICAgICAxNlxuICAgICk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHdvcmtpbmdEZWZlcnJlZDogcGx1Z2lucy5zbWFydHByb21pc2UuRGVmZXJyZWQ8dm9pZD47XG5cbiAgLyoqXG4gICAqIHRha2VzIGNhcmUgb2Ygc2VuZGluZyBcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgd29ya09uUXVldWUoKSB7XG4gICAgaWYgKHRoaXMud29ya2luZ0RlZmVycmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy53b3JraW5nRGVmZXJyZWQucHJvbWlzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53b3JraW5nRGVmZXJyZWQgPSBwbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO1xuICAgIH1cbiAgICBpZih0aGlzLnNpZGUgPT09ICdyZXF1ZXN0aW5nJykge1xuICAgICAgbGV0IHRoaXNTaWRlSXNCYWNrcHJlc3N1cmVkID0gIXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCk7XG4gICAgICBsZXQgb3RoZXJTaWRlSGFzTmV4dCA9IGZhbHNlO1xuICAgICAgbGV0IG90aGVyU2lkZUlzQmFja3ByZXNzdXJlZCA9IGZhbHNlO1xuICAgICAgXG4gICAgICAvLyBoZWxwZXIgZnVuY3Rpb25zXG4gICAgICBjb25zdCBnZXRGZWVkYmFjayA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RyZWFtVHIgPSBhd2FpdCB0aGlzLnNlbmRNZXRob2Qoe1xuICAgICAgICAgIG1ldGhvZDogJyMjVmlydHVhbFN0cmVhbSMjJyxcbiAgICAgICAgICByZXF1ZXN0OiB7XG4gICAgICAgICAgICBzdHJlYW1JZDogdGhpcy5zdHJlYW1JZCxcbiAgICAgICAgICAgIGN5Y2xlSWQ6IHBsdWdpbnMuaXNvdW5pcXVlLnVuaSgpLFxuICAgICAgICAgICAgY3ljbGU6ICdyZXF1ZXN0JyxcbiAgICAgICAgICAgIG1haW5QdXJwb3NlOiAnZmVlZGJhY2snLFxuICAgICAgICAgICAgbmV4dDogdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoID4gMCxcbiAgICAgICAgICAgIGJhY2twcmVzc3VyZTogIXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNwb25zZTogbnVsbCxcbiAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdzdHJlYW0gZW5kZWQgaW1tYXR1cmVseScpO1xuICAgICAgICAgIHRoaXMua2VlcEFsaXZlID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoc3RyZWFtVHIgJiYgc3RyZWFtVHIucmVzcG9uc2UpIHtcbiAgICAgICAgICBvdGhlclNpZGVJc0JhY2twcmVzc3VyZWQgPSBzdHJlYW1Uci5yZXNwb25zZS5iYWNrcHJlc3N1cmVcbiAgICAgICAgICBvdGhlclNpZGVIYXNOZXh0ID0gc3RyZWFtVHIucmVzcG9uc2UubmV4dDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgZ2V0RmVlZGJhY2soKTtcblxuICAgICAgLy8gZG8gd29yayBsb29wXG4gICAgICB3aGlsZSAodGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoID4gMCB8fCBvdGhlclNpZGVIYXNOZXh0KSB7XG4gICAgICAgIGlmIChvdGhlclNpZGVJc0JhY2twcmVzc3VyZWQpIHtcbiAgICAgICAgICB3aGlsZSAob3RoZXJTaWRlSXNCYWNrcHJlc3N1cmVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnd2FpdGluZyBmb3IgZmVlZGJhY2sgYmVjYXVzZSBvZiBiYWNrcHJlc3N1cmUuLi4nKTtcbiAgICAgICAgICAgIGF3YWl0IHBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcig1MCk7XG4gICAgICAgICAgICBhd2FpdCBnZXRGZWVkYmFjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgZGF0YUFyZzogdHlwZW9mIHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhWzBdO1xuICAgICAgICBpZiAodGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGRhdGFBcmcgPSB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgc3RyZWFtVHI6IHBsdWdpbnMudHlwZWRSZXF1ZXN0SW50ZXJmYWNlcy5JU3RyZWFtUmVxdWVzdDtcbiAgICAgICAgc3RyZWFtVHIgPSBhd2FpdCB0aGlzLnNlbmRNZXRob2Qoe1xuICAgICAgICAgIG1ldGhvZDogJyMjVmlydHVhbFN0cmVhbSMjJyxcbiAgICAgICAgICByZXF1ZXN0OiB7XG4gICAgICAgICAgICBzdHJlYW1JZDogdGhpcy5zdHJlYW1JZCxcbiAgICAgICAgICAgIGN5Y2xlSWQ6IHBsdWdpbnMuaXNvdW5pcXVlLnVuaSgpLFxuICAgICAgICAgICAgY3ljbGU6ICdyZXF1ZXN0JyxcbiAgICAgICAgICAgIG1haW5QdXJwb3NlOiBkYXRhQXJnID8gJ2NodW5rJyA6ICdyZWFkJyxcbiAgICAgICAgICAgIGJhY2twcmVzc3VyZTogdGhpc1NpZGVJc0JhY2twcmVzc3VyZWQsXG4gICAgICAgICAgICBuZXh0OiB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGggPiAwLFxuICAgICAgICAgICAgLi4uZGF0YUFyZyA/IHsgY2h1bmtEYXRhOiBkYXRhQXJnIH0gOiB7fSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc3BvbnNlOiBudWxsLFxuICAgICAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ3N0cmVhbSBlbmRlZCBpbW1hdHVyZWx5Jyk7XG4gICAgICAgICAgdGhpcy5rZWVwQWxpdmUgPSBmYWxzZTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHN0cmVhbVRyICYmIHN0cmVhbVRyLnJlc3BvbnNlICYmIHN0cmVhbVRyLnJlc3BvbnNlLmNodW5rRGF0YSkge1xuICAgICAgICAgIHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKHN0cmVhbVRyLnJlc3BvbnNlLmNodW5rRGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgb3RoZXJTaWRlSXNCYWNrcHJlc3N1cmVkID0gc3RyZWFtVHIgJiYgc3RyZWFtVHIucmVzcG9uc2UgJiYgc3RyZWFtVHIucmVzcG9uc2UuYmFja3ByZXNzdXJlO1xuICAgICAgICB0aGlzU2lkZUlzQmFja3ByZXNzdXJlZCA9ICF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpO1xuXG4gICAgICAgIC8vIGxldHMgY2FyZSBhYm91dCBsb29waW5nXG4gICAgICAgIG90aGVyU2lkZUhhc05leHQgPSBzdHJlYW1UciAmJiBzdHJlYW1Uci5yZXNwb25zZSAmJiBzdHJlYW1Uci5yZXNwb25zZS5uZXh0O1xuICAgICAgfVxuXG4gICAgfVxuICAgIHRoaXMud29ya2luZ0RlZmVycmVkLnJlc29sdmUoKTtcbiAgICB0aGlzLndvcmtpbmdEZWZlcnJlZCA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaGFuZGxlcyB0aGUgc3RyZWFtIG9ubHkgb24gdGhlIHJlc3BvbmRpbmcgc2lkZVxuICAgKiBAcGFyYW0gc3RyZWFtVHJBcmdcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTdHJlYW1UcihzdHJlYW1UckFyZzogcGx1Z2lucy50eXBlZFJlcXVlc3RJbnRlcmZhY2VzLklTdHJlYW1SZXF1ZXN0KSB7XG4gICAgaWYgKHN0cmVhbVRyQXJnLnJlcXVlc3Qua2VlcEFsaXZlID09PSB0cnVlICYmIHRoaXMua2VlcEFsaXZlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmxhc3RLZWVwQWxpdmVFdmVudCA9IERhdGUubm93KCk7XG4gICAgfSBlbHNlIGlmIChzdHJlYW1UckFyZy5yZXF1ZXN0LmtlZXBBbGl2ZSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMua2VlcEFsaXZlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8ga2VlcEFsaXZlIGhhbmRsaW5nXG4gICAgaWYgKHN0cmVhbVRyQXJnLnJlcXVlc3QubWFpblB1cnBvc2UgPT09ICdrZWVwQWxpdmUnKSB7XG4gICAgICAvLyBpZiB0aGUgbWFpbiBwdXJwb3NlIGlzIGtlZXBBbGl2ZSwgd2UgYW5zd2VyIHdpdGggYSBrZWVwQWxpdmVcbiAgICAgIHN0cmVhbVRyQXJnLnJlc3BvbnNlID0ge1xuICAgICAgICBzdHJlYW1JZDogdGhpcy5zdHJlYW1JZCxcbiAgICAgICAgY3ljbGVJZDogc3RyZWFtVHJBcmcucmVxdWVzdC5jeWNsZUlkLFxuICAgICAgICBjeWNsZTogJ3Jlc3BvbnNlJyxcbiAgICAgICAgbWFpblB1cnBvc2U6ICdrZWVwQWxpdmUnLFxuICAgICAgICBrZWVwQWxpdmU6IHRoaXMua2VlcEFsaXZlLFxuICAgICAgICBuZXh0OiB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGggPiAwLFxuICAgICAgICBiYWNrcHJlc3N1cmU6ICF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBmZWVkYmFjayBoYW5kbGluZ1xuICAgIGlmIChzdHJlYW1UckFyZy5yZXF1ZXN0Lm1haW5QdXJwb3NlID09PSAnZmVlZGJhY2snKSB7XG4gICAgICBzdHJlYW1UckFyZy5yZXNwb25zZSA9IHtcbiAgICAgICAgc3RyZWFtSWQ6IHRoaXMuc3RyZWFtSWQsXG4gICAgICAgIGN5Y2xlSWQ6IHN0cmVhbVRyQXJnLnJlcXVlc3QuY3ljbGVJZCxcbiAgICAgICAgY3ljbGU6ICdyZXNwb25zZScsXG4gICAgICAgIG1haW5QdXJwb3NlOiAnZmVlZGJhY2snLFxuICAgICAgICBuZXh0OiB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGggPiAwLFxuICAgICAgICBiYWNrcHJlc3N1cmU6ICF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBjaHVuayBoYW5kbGluZ1xuICAgIGlmIChzdHJlYW1UckFyZy5yZXF1ZXN0Lm1haW5QdXJwb3NlID09PSAnY2h1bmsnKSB7XG4gICAgICB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChzdHJlYW1UckFyZy5yZXF1ZXN0LmNodW5rRGF0YSk7XG4gICAgICBpZiAodGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoID4gMCAmJiBzdHJlYW1UckFyZy5yZXNwb25zZS5iYWNrcHJlc3N1cmUgPT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IGRhdGFBcmcgPSB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKTtcbiAgICAgICAgc3RyZWFtVHJBcmcucmVzcG9uc2UgPSB7XG4gICAgICAgICAgc3RyZWFtSWQ6IHRoaXMuc3RyZWFtSWQsXG4gICAgICAgICAgY3ljbGVJZDogc3RyZWFtVHJBcmcucmVxdWVzdC5jeWNsZUlkLFxuICAgICAgICAgIGN5Y2xlOiAncmVzcG9uc2UnLFxuICAgICAgICAgIG1haW5QdXJwb3NlOiAnY2h1bmsnLFxuICAgICAgICAgIG5leHQ6IHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aCA+IDEsIC8vIDEgYW5kIG5vdCAwIGJlY2F1c2Ugd2UgY2FsbCBzaGlmdCBhIGZldyBsaW5lcyBkb3duXG4gICAgICAgICAgYmFja3ByZXNzdXJlOiAhdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxcbiAgICAgICAgICBjaHVua0RhdGE6IHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RyZWFtVHJBcmcucmVzcG9uc2UgPSB7XG4gICAgICAgICAgc3RyZWFtSWQ6IHRoaXMuc3RyZWFtSWQsXG4gICAgICAgICAgY3ljbGVJZDogc3RyZWFtVHJBcmcucmVxdWVzdC5jeWNsZUlkLFxuICAgICAgICAgIGN5Y2xlOiAncmVzcG9uc2UnLFxuICAgICAgICAgIG1haW5QdXJwb3NlOiAnZmVlZGJhY2snLFxuICAgICAgICAgIG5leHQ6IHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aCA+IDAsXG4gICAgICAgICAgYmFja3ByZXNzdXJlOiAhdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHN0cmVhbVRyQXJnLnJlcXVlc3QgPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJlYW1UckFyZztcbiAgfVxuXG4gIC8vIGxpZmVjeWNsZSBtZXRob2RzXG4gIC8qKlxuICAgKiBjbG9zZXMgdGhlIHZpcnR1YWwgc3RyZWFtXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xlYW51cCgpIHtcbiAgICBpZiAodGhpcy50eXBlZHJvdXRlcikge1xuICAgICAgdGhpcy50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMucmVtb3ZlKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBhIGtlZXBBbGl2ZSBsb29wIHRoYXQgd29ya3MgYWNyb3NzIHRlY2hub2xvZ2llc1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBzdGFydEtlZXBBbGl2ZUxvb3AoKSB7XG4gICAgLy8gaW5pdGlhbGx5IHdhaXQgZm9yIGEgc2Vjb25kXG4gICAgaWYgKHRoaXMuc2lkZSA9PT0gJ3Jlc3BvbmRpbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IHBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigwKTtcbiAgICBjb25zb2xlLmxvZyhgc3RhcnRpbmcga2VlcGFsaXZlIGxvb3Agb24gc2lkZSAke3RoaXMuc2lkZX1gKTtcbiAgICBsZXQgY291bnRlciA9IDA7XG4gICAga2VlcEFsaXZlTG9vcDogd2hpbGUgKHRoaXMua2VlcEFsaXZlKSB7XG4gICAgICBhd2FpdCB0aGlzLnRyaWdnZXJLZWVwQWxpdmUoKTtcbiAgICAgIGF3YWl0IHBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigxMDAwKTtcbiAgICB9XG4gICAgYXdhaXQgcGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMDApO1xuICAgIGF3YWl0IHRoaXMuY2xlYW51cCgpO1xuICAgIGNvbnNvbGUubG9nKGBjbGVhbmVkIHVwIGZvciBzdHJlYW0gJHt0aGlzLnN0cmVhbUlkfWApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB0cmlnZ2VyS2VlcEFsaXZlKCkge1xuICAgIGlmICh0aGlzLnNpZGUgPT09ICdyZXF1ZXN0aW5nJykge1xuICAgICAgY29uc29sZS5sb2coYGtlZXBhbGl2ZSBzZW50LmApO1xuICAgICAgY29uc3Qgc3RyZWFtVHIgPSBhd2FpdCB0aGlzLnNlbmRNZXRob2Qoe1xuICAgICAgICBtZXRob2Q6ICcjI1ZpcnR1YWxTdHJlYW0jIycsXG4gICAgICAgIHJlcXVlc3Q6IHtcbiAgICAgICAgICBzdHJlYW1JZDogdGhpcy5zdHJlYW1JZCxcbiAgICAgICAgICBjeWNsZUlkOiBwbHVnaW5zLmlzb3VuaXF1ZS51bmkoKSxcbiAgICAgICAgICBjeWNsZTogJ3JlcXVlc3QnLFxuICAgICAgICAgIG1haW5QdXJwb3NlOiAna2VlcEFsaXZlJyxcbiAgICAgICAgICBrZWVwQWxpdmU6IHRoaXMua2VlcEFsaXZlLFxuICAgICAgICB9LFxuICAgICAgICByZXNwb25zZTogbnVsbCxcbiAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgdGhpcy5rZWVwQWxpdmUgPSBmYWxzZTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBsZXRzIGhhbmRsZSBrZWVwQWxpdmVcbiAgICAgIGlmIChzdHJlYW1UciAmJiBzdHJlYW1Uci5yZXNwb25zZSAmJiBzdHJlYW1Uci5yZXNwb25zZS5rZWVwQWxpdmUgPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMua2VlcEFsaXZlID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxhc3RLZWVwQWxpdmVFdmVudCA9IERhdGUubm93KCk7XG4gICAgICB9XG4gICAgICBpZiAoc3RyZWFtVHIgJiYgc3RyZWFtVHIucmVzcG9uc2UgJiYgc3RyZWFtVHIucmVzcG9uc2UubmV4dCkge1xuICAgICAgICB0aGlzLndvcmtPblF1ZXVlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChEYXRlLm5vdygpIC0gdGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQgPiAxMDAwMCkge1xuICAgICAgY29uc29sZS5sb2coYGNsb3Npbmcgc3RyZWFtIGZvciAke3RoaXMuc3RyZWFtSWR9YCk7XG4gICAgICB0aGlzLmtlZXBBbGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gRGF0YSBzZW5kaW5nIGFuZCByZWNlaXZpbmdcbiAgcHVibGljIGFzeW5jIHNlbmREYXRhKGRhdGFBcmc6IFQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChkYXRhQXJnKTtcbiAgICB0aGlzLndvcmtPblF1ZXVlKCk7XG4gICAgYXdhaXQgdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LndhaXRGb3JTcGFjZSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5Lmhhc1NwYWNlKSB7XG4gICAgICAvLyBkbyBzb21ldGhpbmcgbWF5YmU/XG4gICAgfVxuICAgIGF3YWl0IHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS53YWl0Rm9ySXRlbXMoKTtcbiAgICBjb25zdCBkYXRhUGFja2FnZSA9IHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpO1xuICAgIHJldHVybiBkYXRhUGFja2FnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZWFkcyBmcm9tIGEgUmVhZGFibGUgYW5kIHNlbmRzIGl0IHRvIHRoZSBvdGhlciBzaWRlXG4gICAqIEBwYXJhbSByZWFkYWJsZVN0cmVhbUFyZ1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlYWRGcm9tV2Vic3RyZWFtKHJlYWRhYmxlU3RyZWFtQXJnOiBSZWFkYWJsZVN0cmVhbTxUPiwgY2xvc2VBZnRlclJlYWRpbmcgPSB0cnVlKSB7XG4gICAgY29uc3QgcmVhZGVyID0gcmVhZGFibGVTdHJlYW1BcmcuZ2V0UmVhZGVyKCk7XG4gICAgbGV0IHN0cmVhbUlzRG9uZSA9IGZhbHNlO1xuICAgIHdoaWxlKCFzdHJlYW1Jc0RvbmUpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGRvbmUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICBpZih2YWx1ZSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNlbmREYXRhKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHN0cmVhbUlzRG9uZSA9IGRvbmU7XG4gICAgfVxuICAgIGlmIChjbG9zZUFmdGVyUmVhZGluZykge1xuICAgICAgYXdhaXQgdGhpcy5jbG9zZSh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgd3JpdGVUb1dlYnN0cmVhbSh3cml0YWJsZVN0cmVhbUFyZzogV3JpdGFibGVTdHJlYW08VD4pIHtcbiAgICBjb25zdCB3cml0ZXIgPSB3cml0YWJsZVN0cmVhbUFyZy5nZXRXcml0ZXIoKTtcbiAgICB3aGlsZSh0aGlzLmtlZXBBbGl2ZSB8fCB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tIYXNJdGVtcygpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7XG4gICAgICBpZiAodmFsdWUgPT09IGNsb3NpbmdCaXQpIHtcbiAgICAgICAgd3JpdGVyLnJlbGVhc2VMb2NrKCk7XG4gICAgICAgIGF3YWl0IHdyaXRhYmxlU3RyZWFtQXJnLmNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgYXdhaXQgd3JpdGVyLndyaXRlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogY2xvc2VzIHRoZSBzdHJlYW1cbiAgICogaWYgc2VuZENsb3NpbmdCaXRBcmcgaXMgdHJ1ZSwgdGhlIHN0cmVhbSB3aWxsIHNlbmQgYSBjbG9zaW5nIGJpdFxuICAgKiBAcGFyYW0gc2VuZENsb3NpbmdCaXRBcmcgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xvc2Uoc2VuZENsb3NpbmdCaXRBcmcgPSBmYWxzZSkge1xuICAgIGlmIChzZW5kQ2xvc2luZ0JpdEFyZykge1xuICAgICAgdGhpcy5zZW5kRGF0YShjbG9zaW5nQml0KTtcbiAgICB9XG4gICAgdGhpcy5rZWVwQWxpdmUgPSBmYWxzZTtcbiAgfVxufVxuIiwgImltcG9ydCB7IFR5cGVkUm91dGVyIH0gZnJvbSAnLi9jbGFzc2VzLnR5cGVkcm91dGVyLmpzJztcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9wbHVnaW5zLmpzJztcblxuZXhwb3J0IHR5cGUgSVBvc3RNZXRob2QgPSAoXG4gIHR5cGVkUmVxdWVzdFBvc3RPYmplY3Q6IHBsdWdpbnMudHlwZWRSZXF1ZXN0SW50ZXJmYWNlcy5JVHlwZWRSZXF1ZXN0XG4pID0+IFByb21pc2U8cGx1Z2lucy50eXBlZFJlcXVlc3RJbnRlcmZhY2VzLklUeXBlZFJlcXVlc3Q+O1xuXG4vKipcbiAqIHRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gYSBwb3N0IHVybCBzdXBwbGllZCBpbiBgbmV3IFR5cGVkcmVxdWVzdChuZXcgVHlwZWRUYXJnZXQoLi4uKSwgJ3NvbWVNZXRob2ROYW1lJylgXG4gKiBlbmFibGVzIHRoZSB1c2Ugb2YgY3VzdG9tIHBvc3QgZnVuY3Rpb25zXG4gKiB1c2VkIGZvciB0aGluZ3MgbGlrZSBicm9hZGNhc3QgY2hhbm5lbHNcbiAqIGUuZy4gQGRlc2lnbmVzdGF0ZS9kZWVzLWNvbW1zXG4gKiB0aGUgbWFpbiBkaWZmZXJlbmNlIGhlcmUgaXMsIHRoYXQgdGhlIHJlc3BvbnNlIGNvbWVzIGJhY2sgYXN5bmMgYW5kIGlzIHJvdXRlZCBieSBpbnRlcmVzdCB0aHJvdWdoIHR5cGVkcm91dGVyXG4gKi9cbmV4cG9ydCB0eXBlIElQb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyID0gKFxuICB0eXBlZFJlcXVlc3RQb3N0T2JqZWN0OiBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdFxuKSA9PiBQcm9taXNlPHZvaWQ+IHwgUHJvbWlzZTxwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVR5cGVkVGFyZ2V0Q29uc3RydWN0b3JPcHRpb25zIHtcbiAgdXJsPzogc3RyaW5nO1xuICBwb3N0TWV0aG9kPzogSVBvc3RNZXRob2Q7XG4gIC8qKlxuICAgKiBhIHBvc3QgbWV0aG9kIHRoYXQgZG9lcyBub3QgcmV0dXJuIHRoZSBhbnN3ZXJcbiAgICovXG4gIHBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXI/OiBJUG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcjtcbiAgLyoqXG4gICAqIHRoaXMgdHlwZWRyb3V0ZXIgYWxsb3dzIHVzIHRvIGhhdmUgZWFzeSBhc3luYyByZXF1ZXN0IHJlc3BvbnNlIGN5Y2xlc1xuICAgKi9cbiAgdHlwZWRSb3V0ZXJSZWY/OiBUeXBlZFJvdXRlcjtcbn1cblxuLyoqXG4gKiBhIHR5cGVkIHRhcmdldCBkZWZpbmVzIGEgdGFyZ2V0IGZvciByZXF1ZXN0c1xuICovXG5leHBvcnQgY2xhc3MgVHlwZWRUYXJnZXQge1xuICB1cmw6IHN0cmluZztcbiAgdHlwZTogJ3Jlc3QnIHwgJ3NvY2tldCc7XG4gIG9wdGlvbnM6IElUeXBlZFRhcmdldENvbnN0cnVjdG9yT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zQXJnOiBJVHlwZWRUYXJnZXRDb25zdHJ1Y3Rvck9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9uc0FyZy5wb3N0TWV0aG9kV2l0aFR5cGVkUm91dGVyICYmICFvcHRpb25zQXJnLnR5cGVkUm91dGVyUmVmKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3lvdSBoYXZlIHRvIHNwZWNpZnkgYSB0eXBlZHJvdXRlciB3aGVuIHVzaW5nIHBvc3RtZXRob2Qgd2l0aCB0eXBlZHJvdXRlcicpO1xuICAgIH1cbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zQXJnO1xuICB9XG5cbiAgLyoqXG4gICAqIHdldGhlciBjYWxscyB0byB0aGlzIHRhcmdldCBhcmUgYm91bmQgdG8gdGhlIHJlcXVlc3QvcmVzcG9uc2UgY3ljbGVcbiAgICogaWYgZmFsc2UsIGFsd2F5cyBkZWxpdmVycyByZXNwb25zZSBhcyByZXN1bHQgb2YgYSBjYWxsXG4gICAqIGlmIHRydWUsIGRlbGl2ZXJzIHJlc3BvbnNlIGluIGEgc2VwYXJhdGUgY2FsbFxuICAgKiBjYW4gb25seSBiZSBhc3luYyB3aGVuIHR5cGUgaXMgJ3NvY2tldCdcbiAgICovXG4gIHB1YmxpYyBpc0FzeW5jOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhc3luYyBwb3N0PFQgZXh0ZW5kcyBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdD4oXG4gICAgcGF5bG9hZEFyZzogVFxuICApOiBQcm9taXNlPFQ+IHtcbiAgICBsZXQgcmVzcG9uc2VJbnRlcmVzdDogcGx1Z2lucy5saWsuSW50ZXJlc3Q8XG4gICAgICBzdHJpbmcsXG4gICAgICBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdFxuICAgID47XG4gICAgLy8gaGF2aW5nIGEgdHlwZWRyb3V0ZXIgYWxsb3dzIHVzIHRvIHdvcmsgd2l0aCBhc3luYyByZXF1ZXN0IHJlc3BvbnNlIGN5Y2xlcy5cbiAgICBpZiAodGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmKSB7XG4gICAgICByZXNwb25zZUludGVyZXN0ID0gYXdhaXQgdGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmLmZpcmVFdmVudEludGVyZXN0TWFwLmFkZEludGVyZXN0KFxuICAgICAgICBwYXlsb2FkQXJnLmNvcnJlbGF0aW9uLmlkLFxuICAgICAgICBwYXlsb2FkQXJnXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBwb3N0TWV0aG9kID0gdGhpcy5vcHRpb25zLnBvc3RNZXRob2QgfHwgdGhpcy5vcHRpb25zLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXI7XG4gICAgY29uc3QgcG9zdE1ldGhvZFJldHVyblZhbHVlID0gYXdhaXQgcG9zdE1ldGhvZChwYXlsb2FkQXJnKTtcbiAgICBsZXQgcmVzcG9uc2VCb2R5OiBUO1xuICAgIGlmIChyZXNwb25zZUludGVyZXN0KSB7XG4gICAgICByZXNwb25zZUJvZHkgPSAoYXdhaXQgcmVzcG9uc2VJbnRlcmVzdC5pbnRlcmVzdEZ1bGxmaWxsZWQpIGFzIFQ7XG4gICAgfSBlbHNlIGlmIChwb3N0TWV0aG9kUmV0dXJuVmFsdWUpIHtcbiAgICAgIHJlc3BvbnNlQm9keSA9IHBvc3RNZXRob2RSZXR1cm5WYWx1ZSBhcyBUO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNwb25zZUJvZHkgPSBwYXlsb2FkQXJnO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2VCb2R5O1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3BsdWdpbnMuanMnO1xuaW1wb3J0IHsgVmlydHVhbFN0cmVhbSB9IGZyb20gJy4vY2xhc3Nlcy52aXJ0dWFsc3RyZWFtLmpzJztcbmltcG9ydCB7IFR5cGVkUmVzcG9uc2VFcnJvciB9IGZyb20gJy4vY2xhc3Nlcy50eXBlZHJlc3BvbnNlZXJyb3IuanMnO1xuaW1wb3J0IHsgVHlwZWRSb3V0ZXIsIHR5cGUgSVR5cGVkUmVxdWVzdExvZ0VudHJ5IH0gZnJvbSAnLi9jbGFzc2VzLnR5cGVkcm91dGVyLmpzJztcbmltcG9ydCB7IFR5cGVkVGFyZ2V0IH0gZnJvbSAnLi9jbGFzc2VzLnR5cGVkdGFyZ2V0LmpzJztcblxuY29uc3Qgd2VicmVxdWVzdEluc3RhbmNlID0gbmV3IHBsdWdpbnMud2VicmVxdWVzdC5XZWJSZXF1ZXN0KCk7XG5cbi8qKlxuICogSGVscGVyIHRvIGNhbGwgZ2xvYmFsIGhvb2tzIGZyb20gVHlwZWRSZXF1ZXN0XG4gKi9cbmZ1bmN0aW9uIGNhbGxHbG9iYWxIb29rKFxuICBob29rTmFtZToga2V5b2YgdHlwZW9mIFR5cGVkUm91dGVyLmdsb2JhbEhvb2tzLFxuICBlbnRyeTogSVR5cGVkUmVxdWVzdExvZ0VudHJ5XG4pOiB2b2lkIHtcbiAgdHJ5IHtcbiAgICBUeXBlZFJvdXRlci5nbG9iYWxIb29rc1tob29rTmFtZV0/LihlbnRyeSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoYFR5cGVkUmVxdWVzdCBob29rIGVycm9yICgke2hvb2tOYW1lfSk6YCwgZXJyKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHlwZWRSZXF1ZXN0PFQgZXh0ZW5kcyBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdD4ge1xuICAvKipcbiAgICogaW4gY2FzZSB3ZSBwb3N0IGFnYWluc3QgYSB1cmwgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyB1cmxFbmRQb2ludD86IHN0cmluZztcblxuICAvKipcbiAgICogaW4gY2FzZSB3ZSBwb3N0IGFnYWluc3QgYSBUeXBlZFRhcmdldFxuICAgKi9cbiAgdHlwZWRUYXJnZXQ6IFR5cGVkVGFyZ2V0O1xuXG4gIHB1YmxpYyBtZXRob2Q6IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiB0cnVlLCBob29rcyB3aWxsIG5vdCBiZSBjYWxsZWQgZm9yIHRoaXMgcmVxdWVzdC5cbiAgICogVXNlIHRoaXMgZm9yIGludGVybmFsL2xvZ2dpbmcgcmVxdWVzdHMgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wcy5cbiAgICovXG4gIHB1YmxpYyBza2lwSG9va3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQHBhcmFtIHBvc3RFbmRQb2ludEFyZ1xuICAgKiBAcGFyYW0gbWV0aG9kQXJnXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwb3N0VGFyZ2V0OiBzdHJpbmcgfCBUeXBlZFRhcmdldCwgbWV0aG9kQXJnOiBUWydtZXRob2QnXSkge1xuICAgIGlmICh0eXBlb2YgcG9zdFRhcmdldCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMudXJsRW5kUG9pbnQgPSBwb3N0VGFyZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnR5cGVkVGFyZ2V0ID0gcG9zdFRhcmdldDtcbiAgICB9XG4gICAgdGhpcy5tZXRob2QgPSBtZXRob2RBcmc7XG4gIH1cblxuICAvKipcbiAgICogZmlyZXMgdGhlIHJlcXVlc3RcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmaXJlKGZpcmVBcmc6IFRbJ3JlcXVlc3QnXSwgdXNlQ2FjaGVBcmc6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8VFsncmVzcG9uc2UnXT4ge1xuICAgIGNvbnN0IHJlcXVlc3RTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgbGV0IHBheWxvYWRTZW5kaW5nOiBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdCA9IHtcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgICByZXF1ZXN0OiBmaXJlQXJnLFxuICAgICAgcmVzcG9uc2U6IG51bGwsXG4gICAgICBjb3JyZWxhdGlvbjoge1xuICAgICAgICBpZDogcGx1Z2lucy5pc291bmlxdWUudW5pKCksXG4gICAgICAgIHBoYXNlOiAncmVxdWVzdCcsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBsZXRzIHByZXByb2Nlc3MgdGhlIHBheWxvYWRcbiAgICBwYXlsb2FkU2VuZGluZyA9IFZpcnR1YWxTdHJlYW0uZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsocGF5bG9hZFNlbmRpbmcsIHtcbiAgICAgIHNlbmRNZXRob2Q6IChwYXlsb2FkQXJnOiBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVN0cmVhbVJlcXVlc3QpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdFRyT2JqZWN0KHBheWxvYWRBcmcpIGFzIFByb21pc2U8cGx1Z2lucy50eXBlZFJlcXVlc3RJbnRlcmZhY2VzLklTdHJlYW1SZXF1ZXN0PjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEhvb2s6IG91dGdvaW5nIHJlcXVlc3QgKHNraXAgaWYgdGhpcyBpcyBhbiBpbnRlcm5hbCByZXF1ZXN0KVxuICAgIGlmICghdGhpcy5za2lwSG9va3MpIHtcbiAgICAgIGNhbGxHbG9iYWxIb29rKCdvbk91dGdvaW5nUmVxdWVzdCcsIHtcbiAgICAgICAgY29ycmVsYXRpb25JZDogcGF5bG9hZFNlbmRpbmcuY29ycmVsYXRpb24uaWQsXG4gICAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgICAgIGRpcmVjdGlvbjogJ291dGdvaW5nJyxcbiAgICAgICAgcGhhc2U6ICdyZXF1ZXN0JyxcbiAgICAgICAgdGltZXN0YW1wOiByZXF1ZXN0U3RhcnRUaW1lLFxuICAgICAgICBwYXlsb2FkOiBmaXJlQXJnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IHBheWxvYWRSZWNlaXZpbmc6IHBsdWdpbnMudHlwZWRSZXF1ZXN0SW50ZXJmYWNlcy5JVHlwZWRSZXF1ZXN0O1xuICAgIHBheWxvYWRSZWNlaXZpbmcgPSBhd2FpdCB0aGlzLnBvc3RUck9iamVjdChwYXlsb2FkU2VuZGluZywgdXNlQ2FjaGVBcmcpO1xuXG4gICAgLy8gbGV0cyBwcmVwcm9jZXNzIHRoZSByZXNwb25zZVxuICAgIHBheWxvYWRSZWNlaXZpbmcgPSBWaXJ0dWFsU3RyZWFtLmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhwYXlsb2FkUmVjZWl2aW5nLCB7XG4gICAgICBzZW5kTWV0aG9kOiAocGF5bG9hZEFyZzogcGx1Z2lucy50eXBlZFJlcXVlc3RJbnRlcmZhY2VzLklTdHJlYW1SZXF1ZXN0KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvc3RUck9iamVjdChwYXlsb2FkQXJnKSBhcyBQcm9taXNlPHBsdWdpbnMudHlwZWRSZXF1ZXN0SW50ZXJmYWNlcy5JU3RyZWFtUmVxdWVzdD47XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBIb29rOiBpbmNvbWluZyByZXNwb25zZSAoc2tpcCBpZiB0aGlzIGlzIGFuIGludGVybmFsIHJlcXVlc3QpXG4gICAgaWYgKCF0aGlzLnNraXBIb29rcykge1xuICAgICAgY2FsbEdsb2JhbEhvb2soJ29uSW5jb21pbmdSZXNwb25zZScsIHtcbiAgICAgICAgY29ycmVsYXRpb25JZDogcGF5bG9hZFNlbmRpbmcuY29ycmVsYXRpb24uaWQsXG4gICAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgICAgIGRpcmVjdGlvbjogJ2luY29taW5nJyxcbiAgICAgICAgcGhhc2U6ICdyZXNwb25zZScsXG4gICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgICAgZHVyYXRpb25NczogRGF0ZS5ub3coKSAtIHJlcXVlc3RTdGFydFRpbWUsXG4gICAgICAgIHBheWxvYWQ6IHBheWxvYWRSZWNlaXZpbmc/LnJlc3BvbnNlLFxuICAgICAgICBlcnJvcjogcGF5bG9hZFJlY2VpdmluZz8uZXJyb3I/LnRleHQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGF5bG9hZFJlY2VpdmluZy5yZXNwb25zZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcG9zdFRyT2JqZWN0KHBheWxvYWRTZW5kaW5nQXJnOiBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdCwgdXNlQ2FjaGVBcmc6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGxldCBwYXlsb2FkUmVjZWl2aW5nOiBwbHVnaW5zLnR5cGVkUmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdDtcbiAgICBpZiAodGhpcy51cmxFbmRQb2ludCkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB3ZWJyZXF1ZXN0SW5zdGFuY2UucG9zdEpzb24oXG4gICAgICAgIHRoaXMudXJsRW5kUG9pbnQsXG4gICAgICAgIHBheWxvYWRTZW5kaW5nQXJnLFxuICAgICAgICB1c2VDYWNoZUFyZ1xuICAgICAgKTtcbiAgICAgIHBheWxvYWRSZWNlaXZpbmcgPSByZXNwb25zZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGF5bG9hZFJlY2VpdmluZyA9IGF3YWl0IHRoaXMudHlwZWRUYXJnZXQucG9zdChwYXlsb2FkU2VuZGluZ0FyZyk7XG4gICAgfVxuICAgIGlmIChwYXlsb2FkUmVjZWl2aW5nLmVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgbWV0aG9kOiA+PiR7dGhpcy5tZXRob2R9PDwgZ290IGFuIEVSUk9SOiBcIiR7cGF5bG9hZFJlY2VpdmluZy5lcnJvci50ZXh0fVwiIHdpdGggZGF0YSAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHBheWxvYWRSZWNlaXZpbmcuZXJyb3IuZGF0YSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIDJcbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgICAgaWYgKCFwYXlsb2FkUmVjZWl2aW5nLnJldHJ5KSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlZFJlc3BvbnNlRXJyb3IocGF5bG9hZFJlY2VpdmluZy5lcnJvci50ZXh0LCBwYXlsb2FkUmVjZWl2aW5nLmVycm9yLmRhdGEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmIChwYXlsb2FkUmVjZWl2aW5nLnJldHJ5KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYHNlcnZlciByZXF1ZXN0ZWQgcmV0cnkgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uOiAke3BheWxvYWRSZWNlaXZpbmcucmV0cnkucmVhc29ufWBcbiAgICAgICk7XG4gICAgICBhd2FpdCBwbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IocGF5bG9hZFJlY2VpdmluZy5yZXRyeS53YWl0Rm9yTXMpO1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1yZXR1cm4tYXdhaXRcbiAgICAgIHBheWxvYWRSZWNlaXZpbmcgPSAgYXdhaXQgdGhpcy5wb3N0VHJPYmplY3QocGF5bG9hZFNlbmRpbmdBcmcsIHVzZUNhY2hlQXJnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBheWxvYWRSZWNlaXZpbmc7XG4gIH1cbn1cbiIsICJleHBvcnQgKiBmcm9tICcuL2NsYXNzZXMudHlwZWRyZXF1ZXN0LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy50eXBlZGhhbmRsZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzLnR5cGVkcm91dGVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy50eXBlZHJlc3BvbnNlZXJyb3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzLnR5cGVkdGFyZ2V0LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy52aXJ0dWFsc3RyZWFtLmpzJztcblxuLy8gUmUtZXhwb3J0IGhvb2sgaW50ZXJmYWNlcyBmcm9tIHR5cGVkcm91dGVyXG5leHBvcnQgdHlwZSB7IElUeXBlZFJlcXVlc3RMb2dFbnRyeSwgSVR5cGVkUm91dGVySG9va3MgfSBmcm9tICcuL2NsYXNzZXMudHlwZWRyb3V0ZXIuanMnOyIsICIvKipcbiAqIHJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgcHJvbWlzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9taXNlKG9iaikge1xuICByZXR1cm4gb2JqICYmIHR5cGVvZiBvYmoudGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn1cbmV4cG9ydCB2YXIgUFJPTUlTRV9SRVNPTFZFRF9GQUxTRSA9IFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG5leHBvcnQgdmFyIFBST01JU0VfUkVTT0xWRURfVFJVRSA9IFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbmV4cG9ydCB2YXIgUFJPTUlTRV9SRVNPTFZFRF9WT0lEID0gUHJvbWlzZS5yZXNvbHZlKCk7XG5leHBvcnQgZnVuY3Rpb24gc2xlZXAodGltZSwgcmVzb2x2ZVdpdGgpIHtcbiAgaWYgKCF0aW1lKSB0aW1lID0gMDtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXMpIHtcbiAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcmVzKHJlc29sdmVXaXRoKTtcbiAgICB9LCB0aW1lKTtcbiAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tSW50KG1pbiwgbWF4KSB7XG4gIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkgKyBtaW4pO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS84MDg0MjQ4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21Ub2tlbigpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcbn1cbnZhciBsYXN0TXMgPSAwO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgdW5peCB0aW1lIGluIG1pY3JvLXNlY29uZHMsXG4gKiBXQVJOSU5HOiBUaGlzIGlzIGEgcHNldWRvLWZ1bmN0aW9uXG4gKiBQZXJmb3JtYW5jZS5ub3cgaXMgbm90IHJlbGlhYmxlIGluIHdlYndvcmtlcnMsIHNvIHdlIGp1c3QgbWFrZSBzdXJlIHRvIG5ldmVyIHJldHVybiB0aGUgc2FtZSB0aW1lLlxuICogVGhpcyBpcyBlbm91Z2ggaW4gYnJvd3NlcnMsIGFuZCB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGJlIHVzZWQgaW4gbm9kZWpzLlxuICogVGhlIG1haW4gcmVhc29uIGZvciB0aGlzIGhhY2sgaXMgdG8gZW5zdXJlIHRoYXQgQnJvYWRjYXN0Q2hhbm5lbCBiZWhhdmVzIGVxdWFsIHRvIHByb2R1Y3Rpb24gd2hlbiBpdCBpcyB1c2VkIGluIGZhc3QtcnVubmluZyB1bml0IHRlc3RzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWljcm9TZWNvbmRzKCkge1xuICB2YXIgcmV0ID0gRGF0ZS5ub3coKSAqIDEwMDA7IC8vIG1pbGxpc2Vjb25kcyB0byBtaWNyb3NlY29uZHNcbiAgaWYgKHJldCA8PSBsYXN0TXMpIHtcbiAgICByZXQgPSBsYXN0TXMgKyAxO1xuICB9XG4gIGxhc3RNcyA9IHJldDtcbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBXZWJMb2NrIEFQSSBpcyBzdXBwb3J0ZWQuXG4gKiBAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2ViX0xvY2tzX0FQSVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNXZWJMb2NrQVBJKCkge1xuICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG5hdmlnYXRvci5sb2NrcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59IiwgImltcG9ydCB7IG1pY3JvU2Vjb25kcyBhcyBtaWNybywgUFJPTUlTRV9SRVNPTFZFRF9WT0lEIH0gZnJvbSAnLi4vdXRpbC5qcyc7XG5leHBvcnQgdmFyIG1pY3JvU2Vjb25kcyA9IG1pY3JvO1xuZXhwb3J0IHZhciB0eXBlID0gJ25hdGl2ZSc7XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKGNoYW5uZWxOYW1lKSB7XG4gIHZhciBzdGF0ZSA9IHtcbiAgICB0aW1lOiBtaWNybygpLFxuICAgIG1lc3NhZ2VzQ2FsbGJhY2s6IG51bGwsXG4gICAgYmM6IG5ldyBCcm9hZGNhc3RDaGFubmVsKGNoYW5uZWxOYW1lKSxcbiAgICBzdWJGbnM6IFtdIC8vIHN1YnNjcmliZXJGdW5jdGlvbnNcbiAgfTtcbiAgc3RhdGUuYmMub25tZXNzYWdlID0gZnVuY3Rpb24gKG1zZ0V2ZW50KSB7XG4gICAgaWYgKHN0YXRlLm1lc3NhZ2VzQ2FsbGJhY2spIHtcbiAgICAgIHN0YXRlLm1lc3NhZ2VzQ2FsbGJhY2sobXNnRXZlbnQuZGF0YSk7XG4gICAgfVxuICB9O1xuICByZXR1cm4gc3RhdGU7XG59XG5leHBvcnQgZnVuY3Rpb24gY2xvc2UoY2hhbm5lbFN0YXRlKSB7XG4gIGNoYW5uZWxTdGF0ZS5iYy5jbG9zZSgpO1xuICBjaGFubmVsU3RhdGUuc3ViRm5zID0gW107XG59XG5leHBvcnQgZnVuY3Rpb24gcG9zdE1lc3NhZ2UoY2hhbm5lbFN0YXRlLCBtZXNzYWdlSnNvbikge1xuICB0cnkge1xuICAgIGNoYW5uZWxTdGF0ZS5iYy5wb3N0TWVzc2FnZShtZXNzYWdlSnNvbiwgZmFsc2UpO1xuICAgIHJldHVybiBQUk9NSVNFX1JFU09MVkVEX1ZPSUQ7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpO1xuICB9XG59XG5leHBvcnQgZnVuY3Rpb24gb25NZXNzYWdlKGNoYW5uZWxTdGF0ZSwgZm4pIHtcbiAgY2hhbm5lbFN0YXRlLm1lc3NhZ2VzQ2FsbGJhY2sgPSBmbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjYW5CZVVzZWQoKSB7XG4gIC8vIERlbm8gcnVudGltZVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWxUaGlzLkRlbm8gJiYgZ2xvYmFsVGhpcy5EZW5vLmFyZ3MpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIEJyb3dzZXIgcnVudGltZVxuICBpZiAoKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJykgJiYgdHlwZW9mIEJyb2FkY2FzdENoYW5uZWwgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoQnJvYWRjYXN0Q2hhbm5lbC5fcHVia2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Jyb2FkY2FzdENoYW5uZWw6IERvIG5vdCBvdmVyd3JpdGUgd2luZG93LkJyb2FkY2FzdENoYW5uZWwgd2l0aCB0aGlzIG1vZHVsZSwgdGhpcyBpcyBub3QgYSBwb2x5ZmlsbCcpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBhdmVyYWdlUmVzcG9uc2VUaW1lKCkge1xuICByZXR1cm4gMTUwO1xufVxuZXhwb3J0IHZhciBOYXRpdmVNZXRob2QgPSB7XG4gIGNyZWF0ZTogY3JlYXRlLFxuICBjbG9zZTogY2xvc2UsXG4gIG9uTWVzc2FnZTogb25NZXNzYWdlLFxuICBwb3N0TWVzc2FnZTogcG9zdE1lc3NhZ2UsXG4gIGNhbkJlVXNlZDogY2FuQmVVc2VkLFxuICB0eXBlOiB0eXBlLFxuICBhdmVyYWdlUmVzcG9uc2VUaW1lOiBhdmVyYWdlUmVzcG9uc2VUaW1lLFxuICBtaWNyb1NlY29uZHM6IG1pY3JvU2Vjb25kc1xufTsiLCAiXG4vKipcbiAqIHRoaXMgaXMgYSBzZXQgd2hpY2ggYXV0b21hdGljYWxseSBmb3JnZXRzXG4gKiBhIGdpdmVuIGVudHJ5IHdoZW4gYSBuZXcgZW50cnkgaXMgc2V0IGFuZCB0aGUgdHRsXG4gKiBvZiB0aGUgb2xkIG9uZSBpcyBvdmVyXG4gKi9cbmV4cG9ydCBjbGFzcyBPYmxpdmlvdXNTZXQ8VCA9IGFueT4ge1xuICAgIHB1YmxpYyByZWFkb25seSBtYXAgPSBuZXcgTWFwKCk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGluZyBjYWxscyB0byBzZXRUaW1lb3V0KCkgaXMgZXhwZW5zaXZlLFxuICAgICAqIHNvIHdlIG9ubHkgZG8gdGhhdCBpZiB0aGVyZSBpcyBub3QgdGltZW91dCBhbHJlYWR5IG9wZW4uXG4gICAgICovXG4gICAgcHVibGljIF90bzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdHRsOiBudW1iZXJcbiAgICApIHsgfVxuXG4gICAgaGFzKHZhbHVlOiBUKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZhbHVlVGltZSA9IHRoaXMubWFwLmdldCh2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWVUaW1lID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlVGltZSA8IG5vdygpIC0gdGhpcy50dGwpIHtcbiAgICAgICAgICAgIHRoaXMubWFwLmRlbGV0ZSh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBhZGQodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYXAuZGVsZXRlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5tYXAuc2V0KHZhbHVlLCBub3coKSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdoZW4gYSBuZXcgdmFsdWUgaXMgYWRkZWQsXG4gICAgICAgICAqIHN0YXJ0IHRoZSBjbGVhbnVwIGF0IHRoZSBuZXh0IHRpY2tcbiAgICAgICAgICogdG8gbm90IGJsb2NrIHRoZSBjcHUgZm9yIG1vcmUgaW1wb3J0YW50IHN0dWZmXG4gICAgICAgICAqIHRoYXQgbWlnaHQgaGFwcGVuLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCF0aGlzLl90bykge1xuICAgICAgICAgICAgdGhpcy5fdG8gPSB0cnVlO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdG8gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZW1vdmVUb29PbGRWYWx1ZXModGhpcyk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyKCkge1xuICAgICAgICB0aGlzLm1hcC5jbGVhcigpO1xuICAgIH1cbn1cblxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGVudHJpZXMgZnJvbSB0aGUgc2V0XG4gKiB3aGVyZSB0aGUgVFRMIGhhcyBleHBpcmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUb29PbGRWYWx1ZXMoXG4gICAgb2JsaXZpb3VzU2V0OiBPYmxpdmlvdXNTZXRcbikge1xuICAgIGNvbnN0IG9sZGVyVGhlbiA9IG5vdygpIC0gb2JsaXZpb3VzU2V0LnR0bDtcbiAgICBjb25zdCBpdGVyYXRvciA9IG9ibGl2aW91c1NldC5tYXBbU3ltYm9sLml0ZXJhdG9yXSgpO1xuXG4gICAgLyoqXG4gICAgICogQmVjYXVzZSB3ZSBjYW4gYXNzdW1lIHRoZSBuZXcgdmFsdWVzIGFyZSBhZGRlZCBhdCB0aGUgYm90dG9tLFxuICAgICAqIHdlIHN0YXJ0IGZyb20gdGhlIHRvcCBhbmQgc3RvcCBhcyBzb29uIGFzIHdlIHJlYWNoIGEgbm9uLXRvby1vbGQgdmFsdWUuXG4gICAgICovXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgY29uc3QgbmV4dCA9IGl0ZXJhdG9yLm5leHQoKS52YWx1ZTtcblxuICAgICAgICBpZiAoIW5leHQpIHtcbiAgICAgICAgICAgIGJyZWFrOyAvLyBubyBtb3JlIGVsZW1lbnRzXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSBuZXh0WzBdO1xuICAgICAgICBjb25zdCB0aW1lID0gbmV4dFsxXTtcbiAgICAgICAgaWYgKHRpbWUgPCBvbGRlclRoZW4pIHtcbiAgICAgICAgICAgIG9ibGl2aW91c1NldC5tYXAuZGVsZXRlKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFdlIHJlYWNoZWQgYSB2YWx1ZSB0aGF0IGlzIG5vdCBvbGQgZW5vdWdoXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vdygpOiBudW1iZXIge1xuICAgIHJldHVybiBEYXRlLm5vdygpO1xufVxuXG5cbiIsICJleHBvcnQgZnVuY3Rpb24gZmlsbE9wdGlvbnNXaXRoRGVmYXVsdHMoKSB7XG4gIHZhciBvcmlnaW5hbE9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICB2YXIgb3B0aW9ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3JpZ2luYWxPcHRpb25zKSk7XG5cbiAgLy8gbWFpblxuICBpZiAodHlwZW9mIG9wdGlvbnMud2ViV29ya2VyU3VwcG9ydCA9PT0gJ3VuZGVmaW5lZCcpIG9wdGlvbnMud2ViV29ya2VyU3VwcG9ydCA9IHRydWU7XG5cbiAgLy8gaW5kZXhlZC1kYlxuICBpZiAoIW9wdGlvbnMuaWRiKSBvcHRpb25zLmlkYiA9IHt9O1xuICAvLyAgYWZ0ZXIgdGhpcyB0aW1lIHRoZSBtZXNzYWdlcyBnZXQgZGVsZXRlZFxuICBpZiAoIW9wdGlvbnMuaWRiLnR0bCkgb3B0aW9ucy5pZGIudHRsID0gMTAwMCAqIDQ1O1xuICBpZiAoIW9wdGlvbnMuaWRiLmZhbGxiYWNrSW50ZXJ2YWwpIG9wdGlvbnMuaWRiLmZhbGxiYWNrSW50ZXJ2YWwgPSAxNTA7XG4gIC8vICBoYW5kbGVzIGFicnVwdCBkYiBvbmNsb3NlIGV2ZW50cy5cbiAgaWYgKG9yaWdpbmFsT3B0aW9ucy5pZGIgJiYgdHlwZW9mIG9yaWdpbmFsT3B0aW9ucy5pZGIub25jbG9zZSA9PT0gJ2Z1bmN0aW9uJykgb3B0aW9ucy5pZGIub25jbG9zZSA9IG9yaWdpbmFsT3B0aW9ucy5pZGIub25jbG9zZTtcblxuICAvLyBsb2NhbHN0b3JhZ2VcbiAgaWYgKCFvcHRpb25zLmxvY2Fsc3RvcmFnZSkgb3B0aW9ucy5sb2NhbHN0b3JhZ2UgPSB7fTtcbiAgaWYgKCFvcHRpb25zLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0KSBvcHRpb25zLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0ID0gMTAwMCAqIDYwO1xuXG4gIC8vIGN1c3RvbSBtZXRob2RzXG4gIGlmIChvcmlnaW5hbE9wdGlvbnMubWV0aG9kcykgb3B0aW9ucy5tZXRob2RzID0gb3JpZ2luYWxPcHRpb25zLm1ldGhvZHM7XG5cbiAgLy8gbm9kZVxuICBpZiAoIW9wdGlvbnMubm9kZSkgb3B0aW9ucy5ub2RlID0ge307XG4gIGlmICghb3B0aW9ucy5ub2RlLnR0bCkgb3B0aW9ucy5ub2RlLnR0bCA9IDEwMDAgKiA2MCAqIDI7IC8vIDIgbWludXRlcztcbiAgLyoqXG4gICAqIE9uIGxpbnV4IHVzZSAndWxpbWl0IC1IbicgdG8gZ2V0IHRoZSBsaW1pdCBvZiBvcGVuIGZpbGVzLlxuICAgKiBPbiB1YnVudHUgdGhpcyB3YXMgNDA5NiBmb3IgbWUsIHNvIHdlIHVzZSBoYWxmIG9mIHRoYXQgYXMgbWF4UGFyYWxsZWxXcml0ZXMgZGVmYXVsdC5cbiAgICovXG4gIGlmICghb3B0aW9ucy5ub2RlLm1heFBhcmFsbGVsV3JpdGVzKSBvcHRpb25zLm5vZGUubWF4UGFyYWxsZWxXcml0ZXMgPSAyMDQ4O1xuICBpZiAodHlwZW9mIG9wdGlvbnMubm9kZS51c2VGYXN0UGF0aCA9PT0gJ3VuZGVmaW5lZCcpIG9wdGlvbnMubm9kZS51c2VGYXN0UGF0aCA9IHRydWU7XG4gIHJldHVybiBvcHRpb25zO1xufSIsICIvKipcbiAqIHRoaXMgbWV0aG9kIHVzZXMgaW5kZXhlZGRiIHRvIHN0b3JlIHRoZSBtZXNzYWdlc1xuICogVGhlcmUgaXMgY3VycmVudGx5IG5vIG9ic2VydmVyQVBJIGZvciBpZGJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvSW5kZXhlZERCL2lzc3Vlcy81MVxuICogXG4gKiBXaGVuIHdvcmtpbmcgb24gdGhpcywgZW5zdXJlIHRvIHVzZSB0aGVzZSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zOlxuICogQGxpbmsgaHR0cHM6Ly9yeGRiLmluZm8vc2xvdy1pbmRleGVkZGIuaHRtbFxuICovXG5cbmltcG9ydCB7IHNsZWVwLCByYW5kb21JbnQsIHJhbmRvbVRva2VuLCBtaWNyb1NlY29uZHMgYXMgbWljcm8sIFBST01JU0VfUkVTT0xWRURfVk9JRCB9IGZyb20gJy4uL3V0aWwuanMnO1xuZXhwb3J0IHZhciBtaWNyb1NlY29uZHMgPSBtaWNybztcbmltcG9ydCB7IE9ibGl2aW91c1NldCB9IGZyb20gJ29ibGl2aW91cy1zZXQnO1xuaW1wb3J0IHsgZmlsbE9wdGlvbnNXaXRoRGVmYXVsdHMgfSBmcm9tICcuLi9vcHRpb25zLmpzJztcbnZhciBEQl9QUkVGSVggPSAncHVia2V5LmJyb2FkY2FzdC1jaGFubmVsLTAtJztcbnZhciBPQkpFQ1RfU1RPUkVfSUQgPSAnbWVzc2FnZXMnO1xuXG4vKipcbiAqIFVzZSByZWxheGVkIGR1cmFiaWxpdHkgZm9yIGZhc3RlciBwZXJmb3JtYW5jZSBvbiBhbGwgdHJhbnNhY3Rpb25zLlxuICogQGxpbmsgaHR0cHM6Ly9ub2xhbmxhd3Nvbi5jb20vMjAyMS8wOC8yMi9zcGVlZGluZy11cC1pbmRleGVkZGItcmVhZHMtYW5kLXdyaXRlcy9cbiAqL1xuZXhwb3J0IHZhciBUUkFOU0FDVElPTl9TRVRUSU5HUyA9IHtcbiAgZHVyYWJpbGl0eTogJ3JlbGF4ZWQnXG59O1xuZXhwb3J0IHZhciB0eXBlID0gJ2lkYic7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SWRiKCkge1xuICBpZiAodHlwZW9mIGluZGV4ZWREQiAhPT0gJ3VuZGVmaW5lZCcpIHJldHVybiBpbmRleGVkREI7XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93Lm1vekluZGV4ZWREQiAhPT0gJ3VuZGVmaW5lZCcpIHJldHVybiB3aW5kb3cubW96SW5kZXhlZERCO1xuICAgIGlmICh0eXBlb2Ygd2luZG93LndlYmtpdEluZGV4ZWREQiAhPT0gJ3VuZGVmaW5lZCcpIHJldHVybiB3aW5kb3cud2Via2l0SW5kZXhlZERCO1xuICAgIGlmICh0eXBlb2Ygd2luZG93Lm1zSW5kZXhlZERCICE9PSAndW5kZWZpbmVkJykgcmV0dXJuIHdpbmRvdy5tc0luZGV4ZWREQjtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogSWYgcG9zc2libGUsIHdlIHNob3VsZCBleHBsaWNpdGx5IGNvbW1pdCBJbmRleGVkREIgdHJhbnNhY3Rpb25zXG4gKiBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLlxuICogQGxpbmsgaHR0cHM6Ly9ub2xhbmxhd3Nvbi5jb20vMjAyMS8wOC8yMi9zcGVlZGluZy11cC1pbmRleGVkZGItcmVhZHMtYW5kLXdyaXRlcy9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1pdEluZGV4ZWREQlRyYW5zYWN0aW9uKHR4KSB7XG4gIGlmICh0eC5jb21taXQpIHtcbiAgICB0eC5jb21taXQoKTtcbiAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURhdGFiYXNlKGNoYW5uZWxOYW1lKSB7XG4gIHZhciBJbmRleGVkREIgPSBnZXRJZGIoKTtcblxuICAvLyBjcmVhdGUgdGFibGVcbiAgdmFyIGRiTmFtZSA9IERCX1BSRUZJWCArIGNoYW5uZWxOYW1lO1xuXG4gIC8qKlxuICAgKiBBbGwgSW5kZXhlZERCIGRhdGFiYXNlcyBhcmUgb3BlbmVkIHdpdGhvdXQgdmVyc2lvblxuICAgKiBiZWNhdXNlIGl0IGlzIGEgYml0IGZhc3RlciwgZXNwZWNpYWxseSBvbiBmaXJlZm94XG4gICAqIEBsaW5rIGh0dHA6Ly9ucGFyYXNodXJhbS5jb20vSW5kZXhlZERCL3BlcmYvI09wZW4lMjBEYXRhYmFzZSUyMHdpdGglMjB2ZXJzaW9uXG4gICAqL1xuICB2YXIgb3BlblJlcXVlc3QgPSBJbmRleGVkREIub3BlbihkYk5hbWUpO1xuICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXYpIHtcbiAgICB2YXIgZGIgPSBldi50YXJnZXQucmVzdWx0O1xuICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKE9CSkVDVF9TVE9SRV9JRCwge1xuICAgICAga2V5UGF0aDogJ2lkJyxcbiAgICAgIGF1dG9JbmNyZW1lbnQ6IHRydWVcbiAgICB9KTtcbiAgfTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXMsIHJlaikge1xuICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZXYpIHtcbiAgICAgIHJldHVybiByZWooZXYpO1xuICAgIH07XG4gICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmVzKG9wZW5SZXF1ZXN0LnJlc3VsdCk7XG4gICAgfTtcbiAgfSk7XG59XG5cbi8qKlxuICogd3JpdGVzIHRoZSBuZXcgbWVzc2FnZSB0byB0aGUgZGF0YWJhc2VcbiAqIHNvIG90aGVyIHJlYWRlcnMgY2FuIGZpbmQgaXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlTWVzc2FnZShkYiwgcmVhZGVyVXVpZCwgbWVzc2FnZUpzb24pIHtcbiAgdmFyIHRpbWUgPSBEYXRlLm5vdygpO1xuICB2YXIgd3JpdGVPYmplY3QgPSB7XG4gICAgdXVpZDogcmVhZGVyVXVpZCxcbiAgICB0aW1lOiB0aW1lLFxuICAgIGRhdGE6IG1lc3NhZ2VKc29uXG4gIH07XG4gIHZhciB0eCA9IGRiLnRyYW5zYWN0aW9uKFtPQkpFQ1RfU1RPUkVfSURdLCAncmVhZHdyaXRlJywgVFJBTlNBQ1RJT05fU0VUVElOR1MpO1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcywgcmVqKSB7XG4gICAgdHgub25jb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByZXMoKTtcbiAgICB9O1xuICAgIHR4Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZXYpIHtcbiAgICAgIHJldHVybiByZWooZXYpO1xuICAgIH07XG4gICAgdmFyIG9iamVjdFN0b3JlID0gdHgub2JqZWN0U3RvcmUoT0JKRUNUX1NUT1JFX0lEKTtcbiAgICBvYmplY3RTdG9yZS5hZGQod3JpdGVPYmplY3QpO1xuICAgIGNvbW1pdEluZGV4ZWREQlRyYW5zYWN0aW9uKHR4KTtcbiAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsTWVzc2FnZXMoZGIpIHtcbiAgdmFyIHR4ID0gZGIudHJhbnNhY3Rpb24oT0JKRUNUX1NUT1JFX0lELCAncmVhZG9ubHknLCBUUkFOU0FDVElPTl9TRVRUSU5HUyk7XG4gIHZhciBvYmplY3RTdG9yZSA9IHR4Lm9iamVjdFN0b3JlKE9CSkVDVF9TVE9SRV9JRCk7XG4gIHZhciByZXQgPSBbXTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXMpIHtcbiAgICBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2KSB7XG4gICAgICB2YXIgY3Vyc29yID0gZXYudGFyZ2V0LnJlc3VsdDtcbiAgICAgIGlmIChjdXJzb3IpIHtcbiAgICAgICAgcmV0LnB1c2goY3Vyc29yLnZhbHVlKTtcbiAgICAgICAgLy9hbGVydChcIk5hbWUgZm9yIFNTTiBcIiArIGN1cnNvci5rZXkgKyBcIiBpcyBcIiArIGN1cnNvci52YWx1ZS5uYW1lKTtcbiAgICAgICAgY3Vyc29yW1wiY29udGludWVcIl0oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbW1pdEluZGV4ZWREQlRyYW5zYWN0aW9uKHR4KTtcbiAgICAgICAgcmVzKHJldCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0TWVzc2FnZXNIaWdoZXJUaGFuKGRiLCBsYXN0Q3Vyc29ySWQpIHtcbiAgdmFyIHR4ID0gZGIudHJhbnNhY3Rpb24oT0JKRUNUX1NUT1JFX0lELCAncmVhZG9ubHknLCBUUkFOU0FDVElPTl9TRVRUSU5HUyk7XG4gIHZhciBvYmplY3RTdG9yZSA9IHR4Lm9iamVjdFN0b3JlKE9CSkVDVF9TVE9SRV9JRCk7XG4gIHZhciByZXQgPSBbXTtcbiAgdmFyIGtleVJhbmdlVmFsdWUgPSBJREJLZXlSYW5nZS5ib3VuZChsYXN0Q3Vyc29ySWQgKyAxLCBJbmZpbml0eSk7XG5cbiAgLyoqXG4gICAqIE9wdGltaXphdGlvbiBzaG9ydGN1dCxcbiAgICogaWYgZ2V0QWxsKCkgY2FuIGJlIHVzZWQsIGRvIG5vdCB1c2UgYSBjdXJzb3IuXG4gICAqIEBsaW5rIGh0dHBzOi8vcnhkYi5pbmZvL3Nsb3ctaW5kZXhlZGRiLmh0bWxcbiAgICovXG4gIGlmIChvYmplY3RTdG9yZS5nZXRBbGwpIHtcbiAgICB2YXIgZ2V0QWxsUmVxdWVzdCA9IG9iamVjdFN0b3JlLmdldEFsbChrZXlSYW5nZVZhbHVlKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcywgcmVqKSB7XG4gICAgICBnZXRBbGxSZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIHJldHVybiByZWooZXJyKTtcbiAgICAgIH07XG4gICAgICBnZXRBbGxSZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHJlcyhlLnRhcmdldC5yZXN1bHQpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuICBmdW5jdGlvbiBvcGVuQ3Vyc29yKCkge1xuICAgIC8vIE9jY2FzaW9uYWxseSBTYWZhcmkgd2lsbCBmYWlsIG9uIElEQktleVJhbmdlLmJvdW5kLCB0aGlzXG4gICAgLy8gY2F0Y2hlcyB0aGF0IGVycm9yLCBoYXZpbmcgaXQgb3BlbiB0aGUgY3Vyc29yIHRvIHRoZSBmaXJzdFxuICAgIC8vIGl0ZW0uIFdoZW4gaXQgZ2V0cyBkYXRhIGl0IHdpbGwgYWR2YW5jZSB0byB0aGUgZGVzaXJlZCBrZXkuXG4gICAgdHJ5IHtcbiAgICAgIGtleVJhbmdlVmFsdWUgPSBJREJLZXlSYW5nZS5ib3VuZChsYXN0Q3Vyc29ySWQgKyAxLCBJbmZpbml0eSk7XG4gICAgICByZXR1cm4gb2JqZWN0U3RvcmUub3BlbkN1cnNvcihrZXlSYW5nZVZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcywgcmVqKSB7XG4gICAgdmFyIG9wZW5DdXJzb3JSZXF1ZXN0ID0gb3BlbkN1cnNvcigpO1xuICAgIG9wZW5DdXJzb3JSZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICByZXR1cm4gcmVqKGVycik7XG4gICAgfTtcbiAgICBvcGVuQ3Vyc29yUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXYpIHtcbiAgICAgIHZhciBjdXJzb3IgPSBldi50YXJnZXQucmVzdWx0O1xuICAgICAgaWYgKGN1cnNvcikge1xuICAgICAgICBpZiAoY3Vyc29yLnZhbHVlLmlkIDwgbGFzdEN1cnNvcklkICsgMSkge1xuICAgICAgICAgIGN1cnNvcltcImNvbnRpbnVlXCJdKGxhc3RDdXJzb3JJZCArIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldC5wdXNoKGN1cnNvci52YWx1ZSk7XG4gICAgICAgICAgY3Vyc29yW1wiY29udGludWVcIl0oKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29tbWl0SW5kZXhlZERCVHJhbnNhY3Rpb24odHgpO1xuICAgICAgICByZXMocmV0KTtcbiAgICAgIH1cbiAgICB9O1xuICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVNZXNzYWdlc0J5SWQoY2hhbm5lbFN0YXRlLCBpZHMpIHtcbiAgaWYgKGNoYW5uZWxTdGF0ZS5jbG9zZWQpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtcbiAgfVxuICB2YXIgdHggPSBjaGFubmVsU3RhdGUuZGIudHJhbnNhY3Rpb24oT0JKRUNUX1NUT1JFX0lELCAncmVhZHdyaXRlJywgVFJBTlNBQ1RJT05fU0VUVElOR1MpO1xuICB2YXIgb2JqZWN0U3RvcmUgPSB0eC5vYmplY3RTdG9yZShPQkpFQ1RfU1RPUkVfSUQpO1xuICByZXR1cm4gUHJvbWlzZS5hbGwoaWRzLm1hcChmdW5jdGlvbiAoaWQpIHtcbiAgICB2YXIgZGVsZXRlUmVxdWVzdCA9IG9iamVjdFN0b3JlW1wiZGVsZXRlXCJdKGlkKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcykge1xuICAgICAgZGVsZXRlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXMoKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH0pKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRPbGRNZXNzYWdlcyhkYiwgdHRsKSB7XG4gIHZhciBvbGRlclRoZW4gPSBEYXRlLm5vdygpIC0gdHRsO1xuICB2YXIgdHggPSBkYi50cmFuc2FjdGlvbihPQkpFQ1RfU1RPUkVfSUQsICdyZWFkb25seScsIFRSQU5TQUNUSU9OX1NFVFRJTkdTKTtcbiAgdmFyIG9iamVjdFN0b3JlID0gdHgub2JqZWN0U3RvcmUoT0JKRUNUX1NUT1JFX0lEKTtcbiAgdmFyIHJldCA9IFtdO1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcykge1xuICAgIG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXYpIHtcbiAgICAgIHZhciBjdXJzb3IgPSBldi50YXJnZXQucmVzdWx0O1xuICAgICAgaWYgKGN1cnNvcikge1xuICAgICAgICB2YXIgbXNnT2JrID0gY3Vyc29yLnZhbHVlO1xuICAgICAgICBpZiAobXNnT2JrLnRpbWUgPCBvbGRlclRoZW4pIHtcbiAgICAgICAgICByZXQucHVzaChtc2dPYmspO1xuICAgICAgICAgIC8vYWxlcnQoXCJOYW1lIGZvciBTU04gXCIgKyBjdXJzb3Iua2V5ICsgXCIgaXMgXCIgKyBjdXJzb3IudmFsdWUubmFtZSk7XG4gICAgICAgICAgY3Vyc29yW1wiY29udGludWVcIl0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBubyBtb3JlIG9sZCBtZXNzYWdlcyxcbiAgICAgICAgICBjb21taXRJbmRleGVkREJUcmFuc2FjdGlvbih0eCk7XG4gICAgICAgICAgcmVzKHJldCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcyhyZXQpO1xuICAgICAgfVxuICAgIH07XG4gIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuT2xkTWVzc2FnZXMoY2hhbm5lbFN0YXRlKSB7XG4gIHJldHVybiBnZXRPbGRNZXNzYWdlcyhjaGFubmVsU3RhdGUuZGIsIGNoYW5uZWxTdGF0ZS5vcHRpb25zLmlkYi50dGwpLnRoZW4oZnVuY3Rpb24gKHRvb09sZCkge1xuICAgIHJldHVybiByZW1vdmVNZXNzYWdlc0J5SWQoY2hhbm5lbFN0YXRlLCB0b29PbGQubWFwKGZ1bmN0aW9uIChtc2cpIHtcbiAgICAgIHJldHVybiBtc2cuaWQ7XG4gICAgfSkpO1xuICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoY2hhbm5lbE5hbWUsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IGZpbGxPcHRpb25zV2l0aERlZmF1bHRzKG9wdGlvbnMpO1xuICByZXR1cm4gY3JlYXRlRGF0YWJhc2UoY2hhbm5lbE5hbWUpLnRoZW4oZnVuY3Rpb24gKGRiKSB7XG4gICAgdmFyIHN0YXRlID0ge1xuICAgICAgY2xvc2VkOiBmYWxzZSxcbiAgICAgIGxhc3RDdXJzb3JJZDogMCxcbiAgICAgIGNoYW5uZWxOYW1lOiBjaGFubmVsTmFtZSxcbiAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICB1dWlkOiByYW5kb21Ub2tlbigpLFxuICAgICAgLyoqXG4gICAgICAgKiBlbWl0dGVkTWVzc2FnZXNJZHNcbiAgICAgICAqIGNvbnRhaW5zIGFsbCBtZXNzYWdlcyB0aGF0IGhhdmUgYmVlbiBlbWl0dGVkIGJlZm9yZVxuICAgICAgICogQHR5cGUge09ibGl2aW91c1NldH1cbiAgICAgICAqL1xuICAgICAgZU1JczogbmV3IE9ibGl2aW91c1NldChvcHRpb25zLmlkYi50dGwgKiAyKSxcbiAgICAgIC8vIGVuc3VyZXMgd2UgZG8gbm90IHJlYWQgbWVzc2FnZXMgaW4gcGFyYWxsZWxcbiAgICAgIHdyaXRlQmxvY2tQcm9taXNlOiBQUk9NSVNFX1JFU09MVkVEX1ZPSUQsXG4gICAgICBtZXNzYWdlc0NhbGxiYWNrOiBudWxsLFxuICAgICAgcmVhZFF1ZXVlUHJvbWlzZXM6IFtdLFxuICAgICAgZGI6IGRiXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBhYnJ1cHQgY2xvc2VzIHRoYXQgZG8gbm90IG9yaWdpbmF0ZSBmcm9tIGRiLmNsb3NlKCkuXG4gICAgICogVGhpcyBjb3VsZCBoYXBwZW4sIGZvciBleGFtcGxlLCBpZiB0aGUgdW5kZXJseWluZyBzdG9yYWdlIGlzXG4gICAgICogcmVtb3ZlZCBvciBpZiB0aGUgdXNlciBjbGVhcnMgdGhlIGRhdGFiYXNlIGluIHRoZSBicm93c2VyJ3NcbiAgICAgKiBoaXN0b3J5IHByZWZlcmVuY2VzLlxuICAgICAqL1xuICAgIGRiLm9uY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzdGF0ZS5jbG9zZWQgPSB0cnVlO1xuICAgICAgaWYgKG9wdGlvbnMuaWRiLm9uY2xvc2UpIG9wdGlvbnMuaWRiLm9uY2xvc2UoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogaWYgc2VydmljZS13b3JrZXJzIGFyZSB1c2VkLFxuICAgICAqIHdlIGhhdmUgbm8gJ3N0b3JhZ2UnLWV2ZW50IGlmIHRoZXkgcG9zdCBhIG1lc3NhZ2UsXG4gICAgICogdGhlcmVmb3JlIHdlIGFsc28gaGF2ZSB0byBzZXQgYW4gaW50ZXJ2YWxcbiAgICAgKi9cbiAgICBfcmVhZExvb3Aoc3RhdGUpO1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfSk7XG59XG5mdW5jdGlvbiBfcmVhZExvb3Aoc3RhdGUpIHtcbiAgaWYgKHN0YXRlLmNsb3NlZCkgcmV0dXJuO1xuICByZWFkTmV3TWVzc2FnZXMoc3RhdGUpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBzbGVlcChzdGF0ZS5vcHRpb25zLmlkYi5mYWxsYmFja0ludGVydmFsKTtcbiAgfSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIF9yZWFkTG9vcChzdGF0ZSk7XG4gIH0pO1xufVxuZnVuY3Rpb24gX2ZpbHRlck1lc3NhZ2UobXNnT2JqLCBzdGF0ZSkge1xuICBpZiAobXNnT2JqLnV1aWQgPT09IHN0YXRlLnV1aWQpIHJldHVybiBmYWxzZTsgLy8gc2VuZCBieSBvd25cbiAgaWYgKHN0YXRlLmVNSXMuaGFzKG1zZ09iai5pZCkpIHJldHVybiBmYWxzZTsgLy8gYWxyZWFkeSBlbWl0dGVkXG4gIGlmIChtc2dPYmouZGF0YS50aW1lIDwgc3RhdGUubWVzc2FnZXNDYWxsYmFja1RpbWUpIHJldHVybiBmYWxzZTsgLy8gb2xkZXIgdGhlbiBvbk1lc3NhZ2VDYWxsYmFja1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiByZWFkcyBhbGwgbmV3IG1lc3NhZ2VzIGZyb20gdGhlIGRhdGFiYXNlIGFuZCBlbWl0cyB0aGVtXG4gKi9cbmZ1bmN0aW9uIHJlYWROZXdNZXNzYWdlcyhzdGF0ZSkge1xuICAvLyBjaGFubmVsIGFscmVhZHkgY2xvc2VkXG4gIGlmIChzdGF0ZS5jbG9zZWQpIHJldHVybiBQUk9NSVNFX1JFU09MVkVEX1ZPSUQ7XG5cbiAgLy8gaWYgbm8gb25lIGlzIGxpc3RlbmluZywgd2UgZG8gbm90IG5lZWQgdG8gc2NhbiBmb3IgbmV3IG1lc3NhZ2VzXG4gIGlmICghc3RhdGUubWVzc2FnZXNDYWxsYmFjaykgcmV0dXJuIFBST01JU0VfUkVTT0xWRURfVk9JRDtcbiAgcmV0dXJuIGdldE1lc3NhZ2VzSGlnaGVyVGhhbihzdGF0ZS5kYiwgc3RhdGUubGFzdEN1cnNvcklkKS50aGVuKGZ1bmN0aW9uIChuZXdlck1lc3NhZ2VzKSB7XG4gICAgdmFyIHVzZU1lc3NhZ2VzID0gbmV3ZXJNZXNzYWdlc1xuICAgIC8qKlxuICAgICAqIHRoZXJlIGlzIGEgYnVnIGluIGlPUyB3aGVyZSB0aGUgbXNnT2JqIGNhbiBiZSB1bmRlZmluZWQgc29tZXRpbWVzXG4gICAgICogc28gd2UgZmlsdGVyIHRoZW0gb3V0XG4gICAgICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3B1YmtleS9icm9hZGNhc3QtY2hhbm5lbC9pc3N1ZXMvMTlcbiAgICAgKi8uZmlsdGVyKGZ1bmN0aW9uIChtc2dPYmopIHtcbiAgICAgIHJldHVybiAhIW1zZ09iajtcbiAgICB9KS5tYXAoZnVuY3Rpb24gKG1zZ09iaikge1xuICAgICAgaWYgKG1zZ09iai5pZCA+IHN0YXRlLmxhc3RDdXJzb3JJZCkge1xuICAgICAgICBzdGF0ZS5sYXN0Q3Vyc29ySWQgPSBtc2dPYmouaWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gbXNnT2JqO1xuICAgIH0pLmZpbHRlcihmdW5jdGlvbiAobXNnT2JqKSB7XG4gICAgICByZXR1cm4gX2ZpbHRlck1lc3NhZ2UobXNnT2JqLCBzdGF0ZSk7XG4gICAgfSkuc29ydChmdW5jdGlvbiAobXNnT2JqQSwgbXNnT2JqQikge1xuICAgICAgcmV0dXJuIG1zZ09iakEudGltZSAtIG1zZ09iakIudGltZTtcbiAgICB9KTsgLy8gc29ydCBieSB0aW1lXG4gICAgdXNlTWVzc2FnZXMuZm9yRWFjaChmdW5jdGlvbiAobXNnT2JqKSB7XG4gICAgICBpZiAoc3RhdGUubWVzc2FnZXNDYWxsYmFjaykge1xuICAgICAgICBzdGF0ZS5lTUlzLmFkZChtc2dPYmouaWQpO1xuICAgICAgICBzdGF0ZS5tZXNzYWdlc0NhbGxiYWNrKG1zZ09iai5kYXRhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gUFJPTUlTRV9SRVNPTFZFRF9WT0lEO1xuICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjbG9zZShjaGFubmVsU3RhdGUpIHtcbiAgY2hhbm5lbFN0YXRlLmNsb3NlZCA9IHRydWU7XG4gIGNoYW5uZWxTdGF0ZS5kYi5jbG9zZSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBvc3RNZXNzYWdlKGNoYW5uZWxTdGF0ZSwgbWVzc2FnZUpzb24pIHtcbiAgY2hhbm5lbFN0YXRlLndyaXRlQmxvY2tQcm9taXNlID0gY2hhbm5lbFN0YXRlLndyaXRlQmxvY2tQcm9taXNlLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB3cml0ZU1lc3NhZ2UoY2hhbm5lbFN0YXRlLmRiLCBjaGFubmVsU3RhdGUudXVpZCwgbWVzc2FnZUpzb24pO1xuICB9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAocmFuZG9tSW50KDAsIDEwKSA9PT0gMCkge1xuICAgICAgLyogYXdhaXQgKGRvIG5vdCBhd2FpdCkgKi9cbiAgICAgIGNsZWFuT2xkTWVzc2FnZXMoY2hhbm5lbFN0YXRlKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gY2hhbm5lbFN0YXRlLndyaXRlQmxvY2tQcm9taXNlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG9uTWVzc2FnZShjaGFubmVsU3RhdGUsIGZuLCB0aW1lKSB7XG4gIGNoYW5uZWxTdGF0ZS5tZXNzYWdlc0NhbGxiYWNrVGltZSA9IHRpbWU7XG4gIGNoYW5uZWxTdGF0ZS5tZXNzYWdlc0NhbGxiYWNrID0gZm47XG4gIHJlYWROZXdNZXNzYWdlcyhjaGFubmVsU3RhdGUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNhbkJlVXNlZCgpIHtcbiAgcmV0dXJuICEhZ2V0SWRiKCk7XG59XG5leHBvcnQgZnVuY3Rpb24gYXZlcmFnZVJlc3BvbnNlVGltZShvcHRpb25zKSB7XG4gIHJldHVybiBvcHRpb25zLmlkYi5mYWxsYmFja0ludGVydmFsICogMjtcbn1cbmV4cG9ydCB2YXIgSW5kZXhlZERCTWV0aG9kID0ge1xuICBjcmVhdGU6IGNyZWF0ZSxcbiAgY2xvc2U6IGNsb3NlLFxuICBvbk1lc3NhZ2U6IG9uTWVzc2FnZSxcbiAgcG9zdE1lc3NhZ2U6IHBvc3RNZXNzYWdlLFxuICBjYW5CZVVzZWQ6IGNhbkJlVXNlZCxcbiAgdHlwZTogdHlwZSxcbiAgYXZlcmFnZVJlc3BvbnNlVGltZTogYXZlcmFnZVJlc3BvbnNlVGltZSxcbiAgbWljcm9TZWNvbmRzOiBtaWNyb1NlY29uZHNcbn07IiwgIi8qKlxuICogQSBsb2NhbFN0b3JhZ2Utb25seSBtZXRob2Qgd2hpY2ggdXNlcyBsb2NhbHN0b3JhZ2UgYW5kIGl0cyAnc3RvcmFnZSctZXZlbnRcbiAqIFRoaXMgZG9lcyBub3Qgd29yayBpbnNpZGUgd2Vid29ya2VycyBiZWNhdXNlIHRoZXkgaGF2ZSBubyBhY2Nlc3MgdG8gbG9jYWxzdG9yYWdlXG4gKiBUaGlzIGlzIGJhc2ljYWxseSBpbXBsZW1lbnRlZCB0byBzdXBwb3J0IElFOSBvciB5b3VyIGdyYW5kbW90aGVyJ3MgdG9hc3Rlci5cbiAqIEBsaW5rIGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9bmFtZXZhbHVlLXN0b3JhZ2VcbiAqIEBsaW5rIGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9aW5kZXhlZGRiXG4gKi9cblxuaW1wb3J0IHsgT2JsaXZpb3VzU2V0IH0gZnJvbSAnb2JsaXZpb3VzLXNldCc7XG5pbXBvcnQgeyBmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyB9IGZyb20gJy4uL29wdGlvbnMuanMnO1xuaW1wb3J0IHsgc2xlZXAsIHJhbmRvbVRva2VuLCBtaWNyb1NlY29uZHMgYXMgbWljcm8gfSBmcm9tICcuLi91dGlsLmpzJztcbmV4cG9ydCB2YXIgbWljcm9TZWNvbmRzID0gbWljcm87XG52YXIgS0VZX1BSRUZJWCA9ICdwdWJrZXkuYnJvYWRjYXN0Q2hhbm5lbC0nO1xuZXhwb3J0IHZhciB0eXBlID0gJ2xvY2Fsc3RvcmFnZSc7XG5cbi8qKlxuICogY29waWVkIGZyb20gY3Jvc3N0YWJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS90ZWphY3F1ZXMvY3Jvc3N0YWIvYmxvYi9tYXN0ZXIvc3JjL2Nyb3NzdGFiLmpzI0wzMlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxTdG9yYWdlKCkge1xuICB2YXIgbG9jYWxTdG9yYWdlO1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBudWxsO1xuICB0cnkge1xuICAgIGxvY2FsU3RvcmFnZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2U7XG4gICAgbG9jYWxTdG9yYWdlID0gd2luZG93WydpZTgtZXZlbnRsaXN0ZW5lci9zdG9yYWdlJ10gfHwgd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIE5ldyB2ZXJzaW9ucyBvZiBGaXJlZm94IHRocm93IGEgU2VjdXJpdHkgZXhjZXB0aW9uXG4gICAgLy8gaWYgY29va2llcyBhcmUgZGlzYWJsZWQuIFNlZVxuICAgIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjgxNTNcbiAgfVxuICByZXR1cm4gbG9jYWxTdG9yYWdlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHN0b3JhZ2VLZXkoY2hhbm5lbE5hbWUpIHtcbiAgcmV0dXJuIEtFWV9QUkVGSVggKyBjaGFubmVsTmFtZTtcbn1cblxuLyoqXG4qIHdyaXRlcyB0aGUgbmV3IG1lc3NhZ2UgdG8gdGhlIHN0b3JhZ2VcbiogYW5kIGZpcmVzIHRoZSBzdG9yYWdlLWV2ZW50IHNvIG90aGVyIHJlYWRlcnMgY2FuIGZpbmQgaXRcbiovXG5leHBvcnQgZnVuY3Rpb24gcG9zdE1lc3NhZ2UoY2hhbm5lbFN0YXRlLCBtZXNzYWdlSnNvbikge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcykge1xuICAgIHNsZWVwKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIga2V5ID0gc3RvcmFnZUtleShjaGFubmVsU3RhdGUuY2hhbm5lbE5hbWUpO1xuICAgICAgdmFyIHdyaXRlT2JqID0ge1xuICAgICAgICB0b2tlbjogcmFuZG9tVG9rZW4oKSxcbiAgICAgICAgdGltZTogRGF0ZS5ub3coKSxcbiAgICAgICAgZGF0YTogbWVzc2FnZUpzb24sXG4gICAgICAgIHV1aWQ6IGNoYW5uZWxTdGF0ZS51dWlkXG4gICAgICB9O1xuICAgICAgdmFyIHZhbHVlID0gSlNPTi5zdHJpbmdpZnkod3JpdGVPYmopO1xuICAgICAgZ2V0TG9jYWxTdG9yYWdlKCkuc2V0SXRlbShrZXksIHZhbHVlKTtcblxuICAgICAgLyoqXG4gICAgICAgKiBTdG9yYWdlRXZlbnQgZG9lcyBub3QgZmlyZSB0aGUgJ3N0b3JhZ2UnIGV2ZW50XG4gICAgICAgKiBpbiB0aGUgd2luZG93IHRoYXQgY2hhbmdlcyB0aGUgc3RhdGUgb2YgdGhlIGxvY2FsIHN0b3JhZ2UuXG4gICAgICAgKiBTbyB3ZSBmaXJlIGl0IG1hbnVhbGx5XG4gICAgICAgKi9cbiAgICAgIHZhciBldiA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpO1xuICAgICAgZXYuaW5pdEV2ZW50KCdzdG9yYWdlJywgdHJ1ZSwgdHJ1ZSk7XG4gICAgICBldi5rZXkgPSBrZXk7XG4gICAgICBldi5uZXdWYWx1ZSA9IHZhbHVlO1xuICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXYpO1xuICAgICAgcmVzKCk7XG4gICAgfSk7XG4gIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGFkZFN0b3JhZ2VFdmVudExpc3RlbmVyKGNoYW5uZWxOYW1lLCBmbikge1xuICB2YXIga2V5ID0gc3RvcmFnZUtleShjaGFubmVsTmFtZSk7XG4gIHZhciBsaXN0ZW5lciA9IGZ1bmN0aW9uIGxpc3RlbmVyKGV2KSB7XG4gICAgaWYgKGV2LmtleSA9PT0ga2V5KSB7XG4gICAgICBmbihKU09OLnBhcnNlKGV2Lm5ld1ZhbHVlKSk7XG4gICAgfVxuICB9O1xuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIGxpc3RlbmVyKTtcbiAgcmV0dXJuIGxpc3RlbmVyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVN0b3JhZ2VFdmVudExpc3RlbmVyKGxpc3RlbmVyKSB7XG4gIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgbGlzdGVuZXIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShjaGFubmVsTmFtZSwgb3B0aW9ucykge1xuICBvcHRpb25zID0gZmlsbE9wdGlvbnNXaXRoRGVmYXVsdHMob3B0aW9ucyk7XG4gIGlmICghY2FuQmVVc2VkKCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Jyb2FkY2FzdENoYW5uZWw6IGxvY2Fsc3RvcmFnZSBjYW5ub3QgYmUgdXNlZCcpO1xuICB9XG4gIHZhciB1dWlkID0gcmFuZG9tVG9rZW4oKTtcblxuICAvKipcbiAgICogZU1Jc1xuICAgKiBjb250YWlucyBhbGwgbWVzc2FnZXMgdGhhdCBoYXZlIGJlZW4gZW1pdHRlZCBiZWZvcmVcbiAgICogQHR5cGUge09ibGl2aW91c1NldH1cbiAgICovXG4gIHZhciBlTUlzID0gbmV3IE9ibGl2aW91c1NldChvcHRpb25zLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0KTtcbiAgdmFyIHN0YXRlID0ge1xuICAgIGNoYW5uZWxOYW1lOiBjaGFubmVsTmFtZSxcbiAgICB1dWlkOiB1dWlkLFxuICAgIGVNSXM6IGVNSXMgLy8gZW1pdHRlZE1lc3NhZ2VzSWRzXG4gIH07XG4gIHN0YXRlLmxpc3RlbmVyID0gYWRkU3RvcmFnZUV2ZW50TGlzdGVuZXIoY2hhbm5lbE5hbWUsIGZ1bmN0aW9uIChtc2dPYmopIHtcbiAgICBpZiAoIXN0YXRlLm1lc3NhZ2VzQ2FsbGJhY2spIHJldHVybjsgLy8gbm8gbGlzdGVuZXJcbiAgICBpZiAobXNnT2JqLnV1aWQgPT09IHV1aWQpIHJldHVybjsgLy8gb3duIG1lc3NhZ2VcbiAgICBpZiAoIW1zZ09iai50b2tlbiB8fCBlTUlzLmhhcyhtc2dPYmoudG9rZW4pKSByZXR1cm47IC8vIGFscmVhZHkgZW1pdHRlZFxuICAgIGlmIChtc2dPYmouZGF0YS50aW1lICYmIG1zZ09iai5kYXRhLnRpbWUgPCBzdGF0ZS5tZXNzYWdlc0NhbGxiYWNrVGltZSkgcmV0dXJuOyAvLyB0b28gb2xkXG5cbiAgICBlTUlzLmFkZChtc2dPYmoudG9rZW4pO1xuICAgIHN0YXRlLm1lc3NhZ2VzQ2FsbGJhY2sobXNnT2JqLmRhdGEpO1xuICB9KTtcbiAgcmV0dXJuIHN0YXRlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNsb3NlKGNoYW5uZWxTdGF0ZSkge1xuICByZW1vdmVTdG9yYWdlRXZlbnRMaXN0ZW5lcihjaGFubmVsU3RhdGUubGlzdGVuZXIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG9uTWVzc2FnZShjaGFubmVsU3RhdGUsIGZuLCB0aW1lKSB7XG4gIGNoYW5uZWxTdGF0ZS5tZXNzYWdlc0NhbGxiYWNrVGltZSA9IHRpbWU7XG4gIGNoYW5uZWxTdGF0ZS5tZXNzYWdlc0NhbGxiYWNrID0gZm47XG59XG5leHBvcnQgZnVuY3Rpb24gY2FuQmVVc2VkKCkge1xuICB2YXIgbHMgPSBnZXRMb2NhbFN0b3JhZ2UoKTtcbiAgaWYgKCFscykgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBrZXkgPSAnX19icm9hZGNhc3RjaGFubmVsX2NoZWNrJztcbiAgICBscy5zZXRJdGVtKGtleSwgJ3dvcmtzJyk7XG4gICAgbHMucmVtb3ZlSXRlbShrZXkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gU2FmYXJpIDEwIGluIHByaXZhdGUgbW9kZSB3aWxsIG5vdCBhbGxvdyB3cml0ZSBhY2Nlc3MgdG8gbG9jYWxcbiAgICAvLyBzdG9yYWdlIGFuZCBmYWlsIHdpdGggYSBRdW90YUV4Y2VlZGVkRXJyb3IuIFNlZVxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XZWJfU3RvcmFnZV9BUEkjUHJpdmF0ZV9Ccm93c2luZ19JbmNvZ25pdG9fbW9kZXNcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5leHBvcnQgZnVuY3Rpb24gYXZlcmFnZVJlc3BvbnNlVGltZSgpIHtcbiAgdmFyIGRlZmF1bHRUaW1lID0gMTIwO1xuICB2YXIgdXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO1xuICBpZiAodXNlckFnZW50LmluY2x1ZGVzKCdzYWZhcmknKSAmJiAhdXNlckFnZW50LmluY2x1ZGVzKCdjaHJvbWUnKSkge1xuICAgIC8vIHNhZmFyaSBpcyBtdWNoIHNsb3dlciBzbyB0aGlzIHRpbWUgaXMgaGlnaGVyXG4gICAgcmV0dXJuIGRlZmF1bHRUaW1lICogMjtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFRpbWU7XG59XG5leHBvcnQgdmFyIExvY2Fsc3RvcmFnZU1ldGhvZCA9IHtcbiAgY3JlYXRlOiBjcmVhdGUsXG4gIGNsb3NlOiBjbG9zZSxcbiAgb25NZXNzYWdlOiBvbk1lc3NhZ2UsXG4gIHBvc3RNZXNzYWdlOiBwb3N0TWVzc2FnZSxcbiAgY2FuQmVVc2VkOiBjYW5CZVVzZWQsXG4gIHR5cGU6IHR5cGUsXG4gIGF2ZXJhZ2VSZXNwb25zZVRpbWU6IGF2ZXJhZ2VSZXNwb25zZVRpbWUsXG4gIG1pY3JvU2Vjb25kczogbWljcm9TZWNvbmRzXG59OyIsICJpbXBvcnQgeyBtaWNyb1NlY29uZHMgYXMgbWljcm8gfSBmcm9tICcuLi91dGlsLmpzJztcbmV4cG9ydCB2YXIgbWljcm9TZWNvbmRzID0gbWljcm87XG5leHBvcnQgdmFyIHR5cGUgPSAnc2ltdWxhdGUnO1xudmFyIFNJTVVMQVRFX0NIQU5ORUxTID0gbmV3IFNldCgpO1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShjaGFubmVsTmFtZSkge1xuICB2YXIgc3RhdGUgPSB7XG4gICAgdGltZTogbWljcm9TZWNvbmRzKCksXG4gICAgbmFtZTogY2hhbm5lbE5hbWUsXG4gICAgbWVzc2FnZXNDYWxsYmFjazogbnVsbFxuICB9O1xuICBTSU1VTEFURV9DSEFOTkVMUy5hZGQoc3RhdGUpO1xuICByZXR1cm4gc3RhdGU7XG59XG5leHBvcnQgZnVuY3Rpb24gY2xvc2UoY2hhbm5lbFN0YXRlKSB7XG4gIFNJTVVMQVRFX0NIQU5ORUxTW1wiZGVsZXRlXCJdKGNoYW5uZWxTdGF0ZSk7XG59XG5leHBvcnQgdmFyIFNJTVVMQVRFX0RFTEFZX1RJTUUgPSA1O1xuZXhwb3J0IGZ1bmN0aW9uIHBvc3RNZXNzYWdlKGNoYW5uZWxTdGF0ZSwgbWVzc2FnZUpzb24pIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXMpIHtcbiAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgY2hhbm5lbEFycmF5ID0gQXJyYXkuZnJvbShTSU1VTEFURV9DSEFOTkVMUyk7XG4gICAgICBjaGFubmVsQXJyYXkuZm9yRWFjaChmdW5jdGlvbiAoY2hhbm5lbCkge1xuICAgICAgICBpZiAoY2hhbm5lbC5uYW1lID09PSBjaGFubmVsU3RhdGUubmFtZSAmJlxuICAgICAgICAvLyBoYXMgc2FtZSBuYW1lXG4gICAgICAgIGNoYW5uZWwgIT09IGNoYW5uZWxTdGF0ZSAmJlxuICAgICAgICAvLyBub3Qgb3duIGNoYW5uZWxcbiAgICAgICAgISFjaGFubmVsLm1lc3NhZ2VzQ2FsbGJhY2sgJiZcbiAgICAgICAgLy8gaGFzIHN1YnNjcmliZXJzXG4gICAgICAgIGNoYW5uZWwudGltZSA8IG1lc3NhZ2VKc29uLnRpbWUgLy8gY2hhbm5lbCBub3QgY3JlYXRlZCBhZnRlciBwb3N0TWVzc2FnZSgpIGNhbGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2hhbm5lbC5tZXNzYWdlc0NhbGxiYWNrKG1lc3NhZ2VKc29uKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXMoKTtcbiAgICB9LCBTSU1VTEFURV9ERUxBWV9USU1FKTtcbiAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gb25NZXNzYWdlKGNoYW5uZWxTdGF0ZSwgZm4pIHtcbiAgY2hhbm5lbFN0YXRlLm1lc3NhZ2VzQ2FsbGJhY2sgPSBmbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjYW5CZVVzZWQoKSB7XG4gIHJldHVybiB0cnVlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGF2ZXJhZ2VSZXNwb25zZVRpbWUoKSB7XG4gIHJldHVybiBTSU1VTEFURV9ERUxBWV9USU1FO1xufVxuZXhwb3J0IHZhciBTaW11bGF0ZU1ldGhvZCA9IHtcbiAgY3JlYXRlOiBjcmVhdGUsXG4gIGNsb3NlOiBjbG9zZSxcbiAgb25NZXNzYWdlOiBvbk1lc3NhZ2UsXG4gIHBvc3RNZXNzYWdlOiBwb3N0TWVzc2FnZSxcbiAgY2FuQmVVc2VkOiBjYW5CZVVzZWQsXG4gIHR5cGU6IHR5cGUsXG4gIGF2ZXJhZ2VSZXNwb25zZVRpbWU6IGF2ZXJhZ2VSZXNwb25zZVRpbWUsXG4gIG1pY3JvU2Vjb25kczogbWljcm9TZWNvbmRzXG59OyIsICJpbXBvcnQgeyBOYXRpdmVNZXRob2QgfSBmcm9tICcuL21ldGhvZHMvbmF0aXZlLmpzJztcbmltcG9ydCB7IEluZGV4ZWREQk1ldGhvZCB9IGZyb20gJy4vbWV0aG9kcy9pbmRleGVkLWRiLmpzJztcbmltcG9ydCB7IExvY2Fsc3RvcmFnZU1ldGhvZCB9IGZyb20gJy4vbWV0aG9kcy9sb2NhbHN0b3JhZ2UuanMnO1xuaW1wb3J0IHsgU2ltdWxhdGVNZXRob2QgfSBmcm9tICcuL21ldGhvZHMvc2ltdWxhdGUuanMnO1xuLy8gdGhlIGxpbmUgYmVsb3cgd2lsbCBiZSByZW1vdmVkIGZyb20gZXM1L2Jyb3dzZXIgYnVpbGRzXG5cbi8vIG9yZGVyIGlzIGltcG9ydGFudFxudmFyIE1FVEhPRFMgPSBbTmF0aXZlTWV0aG9kLFxuLy8gZmFzdGVzdFxuSW5kZXhlZERCTWV0aG9kLCBMb2NhbHN0b3JhZ2VNZXRob2RdO1xuZXhwb3J0IGZ1bmN0aW9uIGNob29zZU1ldGhvZChvcHRpb25zKSB7XG4gIHZhciBjaG9vc2VNZXRob2RzID0gW10uY29uY2F0KG9wdGlvbnMubWV0aG9kcywgTUVUSE9EUykuZmlsdGVyKEJvb2xlYW4pO1xuXG4gIC8vIHRoZSBsaW5lIGJlbG93IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIGVzNS9icm93c2VyIGJ1aWxkc1xuXG4gIC8vIGRpcmVjdGx5IGNob3NlblxuICBpZiAob3B0aW9ucy50eXBlKSB7XG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gJ3NpbXVsYXRlJykge1xuICAgICAgLy8gb25seSB1c2Ugc2ltdWxhdGUtbWV0aG9kIGlmIGRpcmVjdGx5IGNob3NlblxuICAgICAgcmV0dXJuIFNpbXVsYXRlTWV0aG9kO1xuICAgIH1cbiAgICB2YXIgcmV0ID0gY2hvb3NlTWV0aG9kcy5maW5kKGZ1bmN0aW9uIChtKSB7XG4gICAgICByZXR1cm4gbS50eXBlID09PSBvcHRpb25zLnR5cGU7XG4gICAgfSk7XG4gICAgaWYgKCFyZXQpIHRocm93IG5ldyBFcnJvcignbWV0aG9kLXR5cGUgJyArIG9wdGlvbnMudHlwZSArICcgbm90IGZvdW5kJyk7ZWxzZSByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIGlmIG5vIHdlYndvcmtlciBzdXBwb3J0IGlzIG5lZWRlZCxcbiAgICogcmVtb3ZlIGlkYiBmcm9tIHRoZSBsaXN0IHNvIHRoYXQgbG9jYWxzdG9yYWdlIHdpbGwgYmUgY2hvc2VuXG4gICAqL1xuICBpZiAoIW9wdGlvbnMud2ViV29ya2VyU3VwcG9ydCkge1xuICAgIGNob29zZU1ldGhvZHMgPSBjaG9vc2VNZXRob2RzLmZpbHRlcihmdW5jdGlvbiAobSkge1xuICAgICAgcmV0dXJuIG0udHlwZSAhPT0gJ2lkYic7XG4gICAgfSk7XG4gIH1cbiAgdmFyIHVzZU1ldGhvZCA9IGNob29zZU1ldGhvZHMuZmluZChmdW5jdGlvbiAobWV0aG9kKSB7XG4gICAgcmV0dXJuIG1ldGhvZC5jYW5CZVVzZWQoKTtcbiAgfSk7XG4gIGlmICghdXNlTWV0aG9kKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gdXNhYmxlIG1ldGhvZCBmb3VuZCBpbiBcIiArIEpTT04uc3RyaW5naWZ5KE1FVEhPRFMubWFwKGZ1bmN0aW9uIChtKSB7XG4gICAgICByZXR1cm4gbS50eXBlO1xuICAgIH0pKSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHVzZU1ldGhvZDtcbiAgfVxufSIsICJpbXBvcnQgeyBpc1Byb21pc2UsIFBST01JU0VfUkVTT0xWRURfRkFMU0UsIFBST01JU0VfUkVTT0xWRURfVk9JRCB9IGZyb20gJy4vdXRpbC5qcyc7XG5pbXBvcnQgeyBjaG9vc2VNZXRob2QgfSBmcm9tICcuL21ldGhvZC1jaG9vc2VyLmpzJztcbmltcG9ydCB7IGZpbGxPcHRpb25zV2l0aERlZmF1bHRzIH0gZnJvbSAnLi9vcHRpb25zLmpzJztcblxuLyoqXG4gKiBDb250YWlucyBhbGwgb3BlbiBjaGFubmVscyxcbiAqIHVzZWQgaW4gdGVzdHMgdG8gZW5zdXJlIGV2ZXJ5dGhpbmcgaXMgY2xvc2VkLlxuICovXG5leHBvcnQgdmFyIE9QRU5fQlJPQURDQVNUX0NIQU5ORUxTID0gbmV3IFNldCgpO1xudmFyIGxhc3RJZCA9IDA7XG5leHBvcnQgdmFyIEJyb2FkY2FzdENoYW5uZWwgPSBmdW5jdGlvbiBCcm9hZGNhc3RDaGFubmVsKG5hbWUsIG9wdGlvbnMpIHtcbiAgLy8gaWRlbnRpZmllciBvZiB0aGUgY2hhbm5lbCB0byBkZWJ1ZyBzdHVmZlxuICB0aGlzLmlkID0gbGFzdElkKys7XG4gIE9QRU5fQlJPQURDQVNUX0NIQU5ORUxTLmFkZCh0aGlzKTtcbiAgdGhpcy5uYW1lID0gbmFtZTtcbiAgaWYgKEVORk9SQ0VEX09QVElPTlMpIHtcbiAgICBvcHRpb25zID0gRU5GT1JDRURfT1BUSU9OUztcbiAgfVxuICB0aGlzLm9wdGlvbnMgPSBmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyhvcHRpb25zKTtcbiAgdGhpcy5tZXRob2QgPSBjaG9vc2VNZXRob2QodGhpcy5vcHRpb25zKTtcblxuICAvLyBpc0xpc3RlbmluZ1xuICB0aGlzLl9pTCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBfb25NZXNzYWdlTGlzdGVuZXJcbiAgICogc2V0dGluZyBvbm1lc3NhZ2UgdHdpY2UsXG4gICAqIHdpbGwgb3ZlcndyaXRlIHRoZSBmaXJzdCBsaXN0ZW5lclxuICAgKi9cbiAgdGhpcy5fb25NTCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIF9hZGRFdmVudExpc3RlbmVyc1xuICAgKi9cbiAgdGhpcy5fYWRkRUwgPSB7XG4gICAgbWVzc2FnZTogW10sXG4gICAgaW50ZXJuYWw6IFtdXG4gIH07XG5cbiAgLyoqXG4gICAqIFVuc2VudCBtZXNzYWdlIHByb21pc2VzXG4gICAqIHdoZXJlIHRoZSBzZW5kaW5nIGlzIHN0aWxsIGluIHByb2dyZXNzXG4gICAqIEB0eXBlIHtTZXQ8UHJvbWlzZT59XG4gICAqL1xuICB0aGlzLl91TVAgPSBuZXcgU2V0KCk7XG5cbiAgLyoqXG4gICAqIF9iZWZvcmVDbG9zZVxuICAgKiBhcnJheSBvZiBwcm9taXNlcyB0aGF0IHdpbGwgYmUgYXdhaXRlZFxuICAgKiBiZWZvcmUgdGhlIGNoYW5uZWwgaXMgY2xvc2VkXG4gICAqL1xuICB0aGlzLl9iZWZDID0gW107XG5cbiAgLyoqXG4gICAqIF9wcmVwYXJlUHJvbWlzZVxuICAgKi9cbiAgdGhpcy5fcHJlcFAgPSBudWxsO1xuICBfcHJlcGFyZUNoYW5uZWwodGhpcyk7XG59O1xuXG4vLyBTVEFUSUNTXG5cbi8qKlxuICogdXNlZCB0byBpZGVudGlmeSBpZiBzb21lb25lIG92ZXJ3cml0ZXNcbiAqIHdpbmRvdy5Ccm9hZGNhc3RDaGFubmVsIHdpdGggdGhpc1xuICogU2VlIG1ldGhvZHMvbmF0aXZlLmpzXG4gKi9cbkJyb2FkY2FzdENoYW5uZWwuX3B1YmtleSA9IHRydWU7XG5cbi8qKlxuICogY2xlYXJzIHRoZSB0bXAtZm9sZGVyIGlmIGlzIG5vZGVcbiAqIEByZXR1cm4ge1Byb21pc2U8Ym9vbGVhbj59IHRydWUgaWYgaGFzIHJ1biwgZmFsc2UgaWYgbm90IG5vZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyTm9kZUZvbGRlcihvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyhvcHRpb25zKTtcbiAgdmFyIG1ldGhvZCA9IGNob29zZU1ldGhvZChvcHRpb25zKTtcbiAgaWYgKG1ldGhvZC50eXBlID09PSAnbm9kZScpIHtcbiAgICByZXR1cm4gbWV0aG9kLmNsZWFyTm9kZUZvbGRlcigpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFBST01JU0VfUkVTT0xWRURfRkFMU0U7XG4gIH1cbn1cblxuLyoqXG4gKiBpZiBzZXQsIHRoaXMgbWV0aG9kIGlzIGVuZm9yY2VkLFxuICogbm8gbWF0aGVyIHdoYXQgdGhlIG9wdGlvbnMgYXJlXG4gKi9cbnZhciBFTkZPUkNFRF9PUFRJT05TO1xuZXhwb3J0IGZ1bmN0aW9uIGVuZm9yY2VPcHRpb25zKG9wdGlvbnMpIHtcbiAgRU5GT1JDRURfT1BUSU9OUyA9IG9wdGlvbnM7XG59XG5cbi8vIFBST1RPVFlQRVxuQnJvYWRjYXN0Q2hhbm5lbC5wcm90b3R5cGUgPSB7XG4gIHBvc3RNZXNzYWdlOiBmdW5jdGlvbiBwb3N0TWVzc2FnZShtc2cpIHtcbiAgICBpZiAodGhpcy5jbG9zZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSgpOiAnICsgJ0Nhbm5vdCBwb3N0IG1lc3NhZ2UgYWZ0ZXIgY2hhbm5lbCBoYXMgY2xvc2VkICcgK1xuICAgICAgLyoqXG4gICAgICAgKiBJbiB0aGUgcGFzdCB3aGVuIHRoaXMgZXJyb3IgYXBwZWFyZWQsIGl0IHdhcyByZWFsbHkgaGFyZCB0byBkZWJ1Zy5cbiAgICAgICAqIFNvIG5vdyB3ZSBsb2cgdGhlIG1zZyB0b2dldGhlciB3aXRoIHRoZSBlcnJvciBzbyBpdCBhdCBsZWFzdFxuICAgICAgICogZ2l2ZXMgc29tZSBjbHVlIGFib3V0IHdoZXJlIGluIHlvdXIgYXBwbGljYXRpb24gdGhpcyBoYXBwZW5zLlxuICAgICAgICovXG4gICAgICBKU09OLnN0cmluZ2lmeShtc2cpKTtcbiAgICB9XG4gICAgcmV0dXJuIF9wb3N0KHRoaXMsICdtZXNzYWdlJywgbXNnKTtcbiAgfSxcbiAgcG9zdEludGVybmFsOiBmdW5jdGlvbiBwb3N0SW50ZXJuYWwobXNnKSB7XG4gICAgcmV0dXJuIF9wb3N0KHRoaXMsICdpbnRlcm5hbCcsIG1zZyk7XG4gIH0sXG4gIHNldCBvbm1lc3NhZ2UoZm4pIHtcbiAgICB2YXIgdGltZSA9IHRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpO1xuICAgIHZhciBsaXN0ZW5PYmogPSB7XG4gICAgICB0aW1lOiB0aW1lLFxuICAgICAgZm46IGZuXG4gICAgfTtcbiAgICBfcmVtb3ZlTGlzdGVuZXJPYmplY3QodGhpcywgJ21lc3NhZ2UnLCB0aGlzLl9vbk1MKTtcbiAgICBpZiAoZm4gJiYgdHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLl9vbk1MID0gbGlzdGVuT2JqO1xuICAgICAgX2FkZExpc3RlbmVyT2JqZWN0KHRoaXMsICdtZXNzYWdlJywgbGlzdGVuT2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb25NTCA9IG51bGw7XG4gICAgfVxuICB9LFxuICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyKHR5cGUsIGZuKSB7XG4gICAgdmFyIHRpbWUgPSB0aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKTtcbiAgICB2YXIgbGlzdGVuT2JqID0ge1xuICAgICAgdGltZTogdGltZSxcbiAgICAgIGZuOiBmblxuICAgIH07XG4gICAgX2FkZExpc3RlbmVyT2JqZWN0KHRoaXMsIHR5cGUsIGxpc3Rlbk9iaik7XG4gIH0sXG4gIHJlbW92ZUV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIHJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgZm4pIHtcbiAgICB2YXIgb2JqID0gdGhpcy5fYWRkRUxbdHlwZV0uZmluZChmdW5jdGlvbiAob2JqKSB7XG4gICAgICByZXR1cm4gb2JqLmZuID09PSBmbjtcbiAgICB9KTtcbiAgICBfcmVtb3ZlTGlzdGVuZXJPYmplY3QodGhpcywgdHlwZSwgb2JqKTtcbiAgfSxcbiAgY2xvc2U6IGZ1bmN0aW9uIGNsb3NlKCkge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgaWYgKHRoaXMuY2xvc2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIE9QRU5fQlJPQURDQVNUX0NIQU5ORUxTW1wiZGVsZXRlXCJdKHRoaXMpO1xuICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICB2YXIgYXdhaXRQcmVwYXJlID0gdGhpcy5fcHJlcFAgPyB0aGlzLl9wcmVwUCA6IFBST01JU0VfUkVTT0xWRURfVk9JRDtcbiAgICB0aGlzLl9vbk1MID0gbnVsbDtcbiAgICB0aGlzLl9hZGRFTC5tZXNzYWdlID0gW107XG4gICAgcmV0dXJuIGF3YWl0UHJlcGFyZVxuICAgIC8vIHdhaXQgdW50aWwgYWxsIGN1cnJlbnQgc2VuZGluZyBhcmUgcHJvY2Vzc2VkXG4gICAgLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKEFycmF5LmZyb20oX3RoaXMuX3VNUCkpO1xuICAgIH0pXG4gICAgLy8gcnVuIGJlZm9yZS1jbG9zZSBob29rc1xuICAgIC50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChfdGhpcy5fYmVmQy5tYXAoZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIHJldHVybiBmbigpO1xuICAgICAgfSkpO1xuICAgIH0pXG4gICAgLy8gY2xvc2UgdGhlIGNoYW5uZWxcbiAgICAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMubWV0aG9kLmNsb3NlKF90aGlzLl9zdGF0ZSk7XG4gICAgfSk7XG4gIH0sXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGhvZC50eXBlO1xuICB9LFxuICBnZXQgaXNDbG9zZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvc2VkO1xuICB9XG59O1xuXG4vKipcbiAqIFBvc3QgYSBtZXNzYWdlIG92ZXIgdGhlIGNoYW5uZWxcbiAqIEByZXR1cm5zIHtQcm9taXNlfSB0aGF0IHJlc29sdmVkIHdoZW4gdGhlIG1lc3NhZ2Ugc2VuZGluZyBpcyBkb25lXG4gKi9cbmZ1bmN0aW9uIF9wb3N0KGJyb2FkY2FzdENoYW5uZWwsIHR5cGUsIG1zZykge1xuICB2YXIgdGltZSA9IGJyb2FkY2FzdENoYW5uZWwubWV0aG9kLm1pY3JvU2Vjb25kcygpO1xuICB2YXIgbXNnT2JqID0ge1xuICAgIHRpbWU6IHRpbWUsXG4gICAgdHlwZTogdHlwZSxcbiAgICBkYXRhOiBtc2dcbiAgfTtcbiAgdmFyIGF3YWl0UHJlcGFyZSA9IGJyb2FkY2FzdENoYW5uZWwuX3ByZXBQID8gYnJvYWRjYXN0Q2hhbm5lbC5fcHJlcFAgOiBQUk9NSVNFX1JFU09MVkVEX1ZPSUQ7XG4gIHJldHVybiBhd2FpdFByZXBhcmUudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNlbmRQcm9taXNlID0gYnJvYWRjYXN0Q2hhbm5lbC5tZXRob2QucG9zdE1lc3NhZ2UoYnJvYWRjYXN0Q2hhbm5lbC5fc3RhdGUsIG1zZ09iaik7XG5cbiAgICAvLyBhZGQvcmVtb3ZlIHRvIHVuc2VudCBtZXNzYWdlcyBsaXN0XG4gICAgYnJvYWRjYXN0Q2hhbm5lbC5fdU1QLmFkZChzZW5kUHJvbWlzZSk7XG4gICAgc2VuZFByb21pc2VbXCJjYXRjaFwiXSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGJyb2FkY2FzdENoYW5uZWwuX3VNUFtcImRlbGV0ZVwiXShzZW5kUHJvbWlzZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNlbmRQcm9taXNlO1xuICB9KTtcbn1cbmZ1bmN0aW9uIF9wcmVwYXJlQ2hhbm5lbChjaGFubmVsKSB7XG4gIHZhciBtYXliZVByb21pc2UgPSBjaGFubmVsLm1ldGhvZC5jcmVhdGUoY2hhbm5lbC5uYW1lLCBjaGFubmVsLm9wdGlvbnMpO1xuICBpZiAoaXNQcm9taXNlKG1heWJlUHJvbWlzZSkpIHtcbiAgICBjaGFubmVsLl9wcmVwUCA9IG1heWJlUHJvbWlzZTtcbiAgICBtYXliZVByb21pc2UudGhlbihmdW5jdGlvbiAocykge1xuICAgICAgLy8gdXNlZCBpbiB0ZXN0cyB0byBzaW11bGF0ZSBzbG93IHJ1bnRpbWVcbiAgICAgIC8qaWYgKGNoYW5uZWwub3B0aW9ucy5wcmVwYXJlRGVsYXkpIHtcbiAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzID0+IHNldFRpbWVvdXQocmVzLCB0aGlzLm9wdGlvbnMucHJlcGFyZURlbGF5KSk7XG4gICAgICB9Ki9cbiAgICAgIGNoYW5uZWwuX3N0YXRlID0gcztcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBjaGFubmVsLl9zdGF0ZSA9IG1heWJlUHJvbWlzZTtcbiAgfVxufVxuZnVuY3Rpb24gX2hhc01lc3NhZ2VMaXN0ZW5lcnMoY2hhbm5lbCkge1xuICBpZiAoY2hhbm5lbC5fYWRkRUwubWVzc2FnZS5sZW5ndGggPiAwKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGNoYW5uZWwuX2FkZEVMLmludGVybmFsLmxlbmd0aCA+IDApIHJldHVybiB0cnVlO1xuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBfYWRkTGlzdGVuZXJPYmplY3QoY2hhbm5lbCwgdHlwZSwgb2JqKSB7XG4gIGNoYW5uZWwuX2FkZEVMW3R5cGVdLnB1c2gob2JqKTtcbiAgX3N0YXJ0TGlzdGVuaW5nKGNoYW5uZWwpO1xufVxuZnVuY3Rpb24gX3JlbW92ZUxpc3RlbmVyT2JqZWN0KGNoYW5uZWwsIHR5cGUsIG9iaikge1xuICBjaGFubmVsLl9hZGRFTFt0eXBlXSA9IGNoYW5uZWwuX2FkZEVMW3R5cGVdLmZpbHRlcihmdW5jdGlvbiAobykge1xuICAgIHJldHVybiBvICE9PSBvYmo7XG4gIH0pO1xuICBfc3RvcExpc3RlbmluZyhjaGFubmVsKTtcbn1cbmZ1bmN0aW9uIF9zdGFydExpc3RlbmluZyhjaGFubmVsKSB7XG4gIGlmICghY2hhbm5lbC5faUwgJiYgX2hhc01lc3NhZ2VMaXN0ZW5lcnMoY2hhbm5lbCkpIHtcbiAgICAvLyBzb21lb25lIGlzIGxpc3RlbmluZywgc3RhcnQgc3Vic2NyaWJpbmdcblxuICAgIHZhciBsaXN0ZW5lckZuID0gZnVuY3Rpb24gbGlzdGVuZXJGbihtc2dPYmopIHtcbiAgICAgIGNoYW5uZWwuX2FkZEVMW21zZ09iai50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uIChsaXN0ZW5lck9iamVjdCkge1xuICAgICAgICBpZiAobXNnT2JqLnRpbWUgPj0gbGlzdGVuZXJPYmplY3QudGltZSkge1xuICAgICAgICAgIGxpc3RlbmVyT2JqZWN0LmZuKG1zZ09iai5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcbiAgICB2YXIgdGltZSA9IGNoYW5uZWwubWV0aG9kLm1pY3JvU2Vjb25kcygpO1xuICAgIGlmIChjaGFubmVsLl9wcmVwUCkge1xuICAgICAgY2hhbm5lbC5fcHJlcFAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNoYW5uZWwuX2lMID0gdHJ1ZTtcbiAgICAgICAgY2hhbm5lbC5tZXRob2Qub25NZXNzYWdlKGNoYW5uZWwuX3N0YXRlLCBsaXN0ZW5lckZuLCB0aW1lKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjaGFubmVsLl9pTCA9IHRydWU7XG4gICAgICBjaGFubmVsLm1ldGhvZC5vbk1lc3NhZ2UoY2hhbm5lbC5fc3RhdGUsIGxpc3RlbmVyRm4sIHRpbWUpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gX3N0b3BMaXN0ZW5pbmcoY2hhbm5lbCkge1xuICBpZiAoY2hhbm5lbC5faUwgJiYgIV9oYXNNZXNzYWdlTGlzdGVuZXJzKGNoYW5uZWwpKSB7XG4gICAgLy8gbm8gb25lIGlzIGxpc3RlbmluZywgc3RvcCBzdWJzY3JpYmluZ1xuICAgIGNoYW5uZWwuX2lMID0gZmFsc2U7XG4gICAgdmFyIHRpbWUgPSBjaGFubmVsLm1ldGhvZC5taWNyb1NlY29uZHMoKTtcbiAgICBjaGFubmVsLm1ldGhvZC5vbk1lc3NhZ2UoY2hhbm5lbC5fc3RhdGUsIG51bGwsIHRpbWUpO1xuICB9XG59IiwgIi8qIGdsb2JhbCBXb3JrZXJHbG9iYWxTY29wZSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkQnJvd3Nlcihmbikge1xuICBpZiAodHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlID09PSAnZnVuY3Rpb24nICYmIHNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSkge1xuICAgIC8qKlxuICAgICAqIEJlY2F1c2Uga2lsbGluZyBhIHdvcmtlciBkb2VzIGRpcmVjdGx5IHN0b3AgdGhlIGV4Y3V0aW9uXG4gICAgICogb2YgdGhlIGNvZGUsIG91ciBvbmx5IGNoYW5jZSBpcyB0byBvdmVyd3JpdGUgdGhlIGNsb3NlIGZ1bmN0aW9uXG4gICAgICogd2hpY2ggY291bGQgd29yayBzb21lIHRpbWVzLlxuICAgICAqIEBsaW5rIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS83MjkwMzI1NS8zNDQzMTM3XG4gICAgICovXG4gICAgdmFyIG9sZENsb3NlID0gc2VsZi5jbG9zZS5iaW5kKHNlbGYpO1xuICAgIHNlbGYuY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBmbigpO1xuICAgICAgcmV0dXJuIG9sZENsb3NlKCk7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICAvKipcbiAgICAgKiBpZiB3ZSBhcmUgb24gcmVhY3QtbmF0aXZlLCB0aGVyZSBpcyBubyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lclxuICAgICAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9wdWJrZXkvdW5sb2FkL2lzc3Vlcy82XG4gICAgICovXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZvciBub3JtYWwgYnJvd3Nlci13aW5kb3dzLCB3ZSB1c2UgdGhlIGJlZm9yZXVubG9hZC1ldmVudFxuICAgICAqL1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBmbigpO1xuICAgIH0sIHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogZm9yIGlmcmFtZXMsIHdlIGhhdmUgdG8gdXNlIHRoZSB1bmxvYWQtZXZlbnRcbiAgICAgKiBAbGluayBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3EvNDc1MzM2NzAvMzQ0MzEzN1xuICAgICAqL1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmxvYWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBmbigpO1xuICAgIH0sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE8gYWRkIGZhbGxiYWNrIGZvciBzYWZhcmktbW9iaWxlXG4gICAqIEBsaW5rIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yNjE5MzUxNi8zNDQzMTM3XG4gICAqL1xufSIsICJleHBvcnQgZnVuY3Rpb24gYWRkTm9kZShmbikge1xuICBwcm9jZXNzLm9uKCdleGl0JywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmbigpO1xuICB9KTtcblxuICAvKipcbiAgICogb24gdGhlIGZvbGxvd2luZyBldmVudHMsXG4gICAqIHRoZSBwcm9jZXNzIHdpbGwgbm90IGVuZCBpZiB0aGVyZSBhcmVcbiAgICogZXZlbnQtaGFuZGxlcnMgYXR0YWNoZWQsXG4gICAqIHRoZXJlZm9yZSB3ZSBoYXZlIHRvIGNhbGwgcHJvY2Vzcy5leGl0KClcbiAgICovXG4gIHByb2Nlc3Mub24oJ2JlZm9yZUV4aXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZuKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcHJvY2Vzcy5leGl0KCk7XG4gICAgfSk7XG4gIH0pO1xuICAvLyBjYXRjaGVzIGN0cmwrYyBldmVudFxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZuKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcHJvY2Vzcy5leGl0KCk7XG4gICAgfSk7XG4gIH0pO1xuICAvLyBjYXRjaGVzIHVuY2F1Z2h0IGV4Y2VwdGlvbnNcbiAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgcmV0dXJuIGZuKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zb2xlLnRyYWNlKGVycik7XG4gICAgICBwcm9jZXNzLmV4aXQoMTAxKTtcbiAgICB9KTtcbiAgfSk7XG59IiwgImltcG9ydCB7IGFkZEJyb3dzZXIgfSBmcm9tICcuL2Jyb3dzZXIuanMnO1xuaW1wb3J0IHsgYWRkTm9kZSB9IGZyb20gJy4vbm9kZS5qcyc7XG5cbi8qKlxuICogVXNlIHRoZSBjb2RlIGRpcmVjdGx5IHRvIHByZXZlbnQgaW1wb3J0IHByb2JsZW1zXG4gKiB3aXRoIHRoZSBkZXRlY3Qtbm9kZSBwYWNrYWdlLlxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2lsaWFrYW4vZGV0ZWN0LW5vZGUvYmxvYi9tYXN0ZXIvaW5kZXguanNcbiAqL1xudmFyIGlzTm9kZSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgPyBwcm9jZXNzIDogMCkgPT09ICdbb2JqZWN0IHByb2Nlc3NdJztcbnZhciBVU0VfTUVUSE9EID0gaXNOb2RlID8gYWRkTm9kZSA6IGFkZEJyb3dzZXI7XG52YXIgTElTVEVORVJTID0gbmV3IFNldCgpO1xudmFyIHN0YXJ0ZWRMaXN0ZW5pbmcgPSBmYWxzZTtcbmZ1bmN0aW9uIHN0YXJ0TGlzdGVuaW5nKCkge1xuICBpZiAoc3RhcnRlZExpc3RlbmluZykge1xuICAgIHJldHVybjtcbiAgfVxuICBzdGFydGVkTGlzdGVuaW5nID0gdHJ1ZTtcbiAgVVNFX01FVEhPRChydW5BbGwpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGFkZChmbikge1xuICBzdGFydExpc3RlbmluZygpO1xuICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdMaXN0ZW5lciBpcyBubyBmdW5jdGlvbicpO1xuICB9XG4gIExJU1RFTkVSUy5hZGQoZm4pO1xuICB2YXIgYWRkUmV0dXJuID0ge1xuICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge1xuICAgICAgcmV0dXJuIExJU1RFTkVSU1tcImRlbGV0ZVwiXShmbik7XG4gICAgfSxcbiAgICBydW46IGZ1bmN0aW9uIHJ1bigpIHtcbiAgICAgIExJU1RFTkVSU1tcImRlbGV0ZVwiXShmbik7XG4gICAgICByZXR1cm4gZm4oKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBhZGRSZXR1cm47XG59XG5leHBvcnQgZnVuY3Rpb24gcnVuQWxsKCkge1xuICB2YXIgcHJvbWlzZXMgPSBbXTtcbiAgTElTVEVORVJTLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgcHJvbWlzZXMucHVzaChmbigpKTtcbiAgICBMSVNURU5FUlNbXCJkZWxldGVcIl0oZm4pO1xuICB9KTtcbiAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVBbGwoKSB7XG4gIExJU1RFTkVSUy5jbGVhcigpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpemUoKSB7XG4gIHJldHVybiBMSVNURU5FUlMuc2l6ZTtcbn0iLCAiaW1wb3J0IHsgYWRkIGFzIHVubG9hZEFkZCB9IGZyb20gJ3VubG9hZCc7XG5cbi8qKlxuICogc2VuZHMgYW5kIGludGVybmFsIG1lc3NhZ2Ugb3ZlciB0aGUgYnJvYWRjYXN0LWNoYW5uZWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlbmRMZWFkZXJNZXNzYWdlKGxlYWRlckVsZWN0b3IsIGFjdGlvbikge1xuICB2YXIgbXNnSnNvbiA9IHtcbiAgICBjb250ZXh0OiAnbGVhZGVyJyxcbiAgICBhY3Rpb246IGFjdGlvbixcbiAgICB0b2tlbjogbGVhZGVyRWxlY3Rvci50b2tlblxuICB9O1xuICByZXR1cm4gbGVhZGVyRWxlY3Rvci5icm9hZGNhc3RDaGFubmVsLnBvc3RJbnRlcm5hbChtc2dKc29uKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBiZUxlYWRlcihsZWFkZXJFbGVjdG9yKSB7XG4gIGxlYWRlckVsZWN0b3IuaXNMZWFkZXIgPSB0cnVlO1xuICBsZWFkZXJFbGVjdG9yLl9oYXNMZWFkZXIgPSB0cnVlO1xuICB2YXIgdW5sb2FkRm4gPSB1bmxvYWRBZGQoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBsZWFkZXJFbGVjdG9yLmRpZSgpO1xuICB9KTtcbiAgbGVhZGVyRWxlY3Rvci5fdW5sLnB1c2godW5sb2FkRm4pO1xuICB2YXIgaXNMZWFkZXJMaXN0ZW5lciA9IGZ1bmN0aW9uIGlzTGVhZGVyTGlzdGVuZXIobXNnKSB7XG4gICAgaWYgKG1zZy5jb250ZXh0ID09PSAnbGVhZGVyJyAmJiBtc2cuYWN0aW9uID09PSAnYXBwbHknKSB7XG4gICAgICBzZW5kTGVhZGVyTWVzc2FnZShsZWFkZXJFbGVjdG9yLCAndGVsbCcpO1xuICAgIH1cbiAgICBpZiAobXNnLmNvbnRleHQgPT09ICdsZWFkZXInICYmIG1zZy5hY3Rpb24gPT09ICd0ZWxsJyAmJiAhbGVhZGVyRWxlY3Rvci5fZHBMQykge1xuICAgICAgLyoqXG4gICAgICAgKiBhbm90aGVyIGluc3RhbmNlIGlzIGFsc28gbGVhZGVyIVxuICAgICAgICogVGhpcyBjYW4gaGFwcGVuIG9uIHJhcmUgZXZlbnRzXG4gICAgICAgKiBsaWtlIHdoZW4gdGhlIENQVSBpcyBhdCAxMDAlIGZvciBsb25nIHRpbWVcbiAgICAgICAqIG9yIHRoZSB0YWJzIGFyZSBvcGVuIHZlcnkgbG9uZyBhbmQgdGhlIGJyb3dzZXIgdGhyb3R0bGVzIHRoZW0uXG4gICAgICAgKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vcHVia2V5L2Jyb2FkY2FzdC1jaGFubmVsL2lzc3Vlcy80MTRcbiAgICAgICAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9wdWJrZXkvYnJvYWRjYXN0LWNoYW5uZWwvaXNzdWVzLzM4NVxuICAgICAgICovXG4gICAgICBsZWFkZXJFbGVjdG9yLl9kcExDID0gdHJ1ZTtcbiAgICAgIGxlYWRlckVsZWN0b3IuX2RwTCgpOyAvLyBtZXNzYWdlIHRoZSBsaWIgdXNlciBzbyB0aGUgYXBwIGNhbiBoYW5kbGUgdGhlIHByb2JsZW1cbiAgICAgIHNlbmRMZWFkZXJNZXNzYWdlKGxlYWRlckVsZWN0b3IsICd0ZWxsJyk7IC8vIGVuc3VyZSBvdGhlciBsZWFkZXIgYWxzbyBrbm93cyB0aGUgcHJvYmxlbVxuICAgIH1cbiAgfTtcbiAgbGVhZGVyRWxlY3Rvci5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2ludGVybmFsJywgaXNMZWFkZXJMaXN0ZW5lcik7XG4gIGxlYWRlckVsZWN0b3IuX2xzdG5zLnB1c2goaXNMZWFkZXJMaXN0ZW5lcik7XG4gIHJldHVybiBzZW5kTGVhZGVyTWVzc2FnZShsZWFkZXJFbGVjdG9yLCAndGVsbCcpO1xufSIsICJpbXBvcnQgeyByYW5kb21Ub2tlbiB9IGZyb20gJy4vdXRpbC5qcyc7XG5pbXBvcnQgeyBzZW5kTGVhZGVyTWVzc2FnZSwgYmVMZWFkZXIgfSBmcm9tICcuL2xlYWRlci1lbGVjdGlvbi11dGlsLmpzJztcblxuLyoqXG4gKiBBIGZhc3RlciB2ZXJzaW9uIG9mIHRoZSBsZWFkZXIgZWxlY3RvciB0aGF0IHVzZXMgdGhlIFdlYkxvY2sgQVBJXG4gKiBAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2ViX0xvY2tzX0FQSVxuICovXG5leHBvcnQgdmFyIExlYWRlckVsZWN0aW9uV2ViTG9jayA9IGZ1bmN0aW9uIExlYWRlckVsZWN0aW9uV2ViTG9jayhicm9hZGNhc3RDaGFubmVsLCBvcHRpb25zKSB7XG4gIHZhciBfdGhpcyA9IHRoaXM7XG4gIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbCA9IGJyb2FkY2FzdENoYW5uZWw7XG4gIGJyb2FkY2FzdENoYW5uZWwuX2JlZkMucHVzaChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIF90aGlzLmRpZSgpO1xuICB9KTtcbiAgdGhpcy5fb3B0aW9ucyA9IG9wdGlvbnM7XG4gIHRoaXMuaXNMZWFkZXIgPSBmYWxzZTtcbiAgdGhpcy5pc0RlYWQgPSBmYWxzZTtcbiAgdGhpcy50b2tlbiA9IHJhbmRvbVRva2VuKCk7XG4gIHRoaXMuX2xzdG5zID0gW107XG4gIHRoaXMuX3VubCA9IFtdO1xuICB0aGlzLl9kcEwgPSBmdW5jdGlvbiAoKSB7fTsgLy8gb25kdXBsaWNhdGUgbGlzdGVuZXJcbiAgdGhpcy5fZHBMQyA9IGZhbHNlOyAvLyB0cnVlIHdoZW4gb25kdXBsaWNhdGUgY2FsbGVkXG5cbiAgdGhpcy5fd0tNQyA9IHt9OyAvLyBzdHVmZiBmb3IgY2xlYW51cFxuXG4gIC8vIGxvY2sgbmFtZVxuICB0aGlzLmxOID0gJ3B1YmtleS1iY3x8JyArIGJyb2FkY2FzdENoYW5uZWwubWV0aG9kLnR5cGUgKyAnfHwnICsgYnJvYWRjYXN0Q2hhbm5lbC5uYW1lO1xufTtcbkxlYWRlckVsZWN0aW9uV2ViTG9jay5wcm90b3R5cGUgPSB7XG4gIGhhc0xlYWRlcjogZnVuY3Rpb24gaGFzTGVhZGVyKCkge1xuICAgIHZhciBfdGhpczIgPSB0aGlzO1xuICAgIHJldHVybiBuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50aGVuKGZ1bmN0aW9uIChsb2Nrcykge1xuICAgICAgdmFyIHJlbGV2YW50TG9ja3MgPSBsb2Nrcy5oZWxkID8gbG9ja3MuaGVsZC5maWx0ZXIoZnVuY3Rpb24gKGxvY2spIHtcbiAgICAgICAgcmV0dXJuIGxvY2submFtZSA9PT0gX3RoaXMyLmxOO1xuICAgICAgfSkgOiBbXTtcbiAgICAgIGlmIChyZWxldmFudExvY2tzICYmIHJlbGV2YW50TG9ja3MubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcbiAgYXdhaXRMZWFkZXJzaGlwOiBmdW5jdGlvbiBhd2FpdExlYWRlcnNoaXAoKSB7XG4gICAgdmFyIF90aGlzMyA9IHRoaXM7XG4gICAgaWYgKCF0aGlzLl93TE1QKSB7XG4gICAgICB0aGlzLl93S01DLmMgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICB2YXIgcmV0dXJuUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXMsIHJlaikge1xuICAgICAgICBfdGhpczMuX3dLTUMucmVzID0gcmVzO1xuICAgICAgICBfdGhpczMuX3dLTUMucmVqID0gcmVqO1xuICAgICAgfSk7XG4gICAgICB0aGlzLl93TE1QID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcywgcmVqZWN0KSB7XG4gICAgICAgIG5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KF90aGlzMy5sTiwge1xuICAgICAgICAgIHNpZ25hbDogX3RoaXMzLl93S01DLmMuc2lnbmFsXG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAvLyBpZiB0aGUgbG9jayByZXNvbHZlZCwgd2UgY2FuIGRyb3AgdGhlIGFib3J0IGNvbnRyb2xsZXJcbiAgICAgICAgICBfdGhpczMuX3dLTUMuYyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBiZUxlYWRlcihfdGhpczMpO1xuICAgICAgICAgIHJlcygpO1xuICAgICAgICAgIHJldHVybiByZXR1cm5Qcm9taXNlO1xuICAgICAgICB9KVtcImNhdGNoXCJdKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICBpZiAoX3RoaXMzLl93S01DLnJlaikge1xuICAgICAgICAgICAgX3RoaXMzLl93S01DLnJlaihlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3dMTVA7XG4gIH0sXG4gIHNldCBvbmR1cGxpY2F0ZShfZm4pIHtcbiAgICAvLyBEbyBub3RoaW5nIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGR1cGxpY2F0ZXMgaW4gdGhlIFdlYkxvY2sgdmVyc2lvblxuICB9LFxuICBkaWU6IGZ1bmN0aW9uIGRpZSgpIHtcbiAgICB2YXIgX3RoaXM0ID0gdGhpcztcbiAgICB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uIChsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIF90aGlzNC5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ludGVybmFsJywgbGlzdGVuZXIpO1xuICAgIH0pO1xuICAgIHRoaXMuX2xzdG5zID0gW107XG4gICAgdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24gKHVGbikge1xuICAgICAgcmV0dXJuIHVGbi5yZW1vdmUoKTtcbiAgICB9KTtcbiAgICB0aGlzLl91bmwgPSBbXTtcbiAgICBpZiAodGhpcy5pc0xlYWRlcikge1xuICAgICAgdGhpcy5pc0xlYWRlciA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmlzRGVhZCA9IHRydWU7XG4gICAgaWYgKHRoaXMuX3dLTUMucmVzKSB7XG4gICAgICB0aGlzLl93S01DLnJlcygpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fd0tNQy5jKSB7XG4gICAgICB0aGlzLl93S01DLmMuYWJvcnQoJ0xlYWRlckVsZWN0aW9uV2ViTG9jay5kaWUoKSBjYWxsZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlbmRMZWFkZXJNZXNzYWdlKHRoaXMsICdkZWF0aCcpO1xuICB9XG59OyIsICJpbXBvcnQgeyBzbGVlcCwgcmFuZG9tVG9rZW4sIFBST01JU0VfUkVTT0xWRURfVk9JRCwgUFJPTUlTRV9SRVNPTFZFRF9UUlVFLCBzdXBwb3J0c1dlYkxvY2tBUEkgfSBmcm9tICcuL3V0aWwuanMnO1xuaW1wb3J0IHsgc2VuZExlYWRlck1lc3NhZ2UsIGJlTGVhZGVyIH0gZnJvbSAnLi9sZWFkZXItZWxlY3Rpb24tdXRpbC5qcyc7XG5pbXBvcnQgeyBMZWFkZXJFbGVjdGlvbldlYkxvY2sgfSBmcm9tICcuL2xlYWRlci1lbGVjdGlvbi13ZWItbG9jay5qcyc7XG52YXIgTGVhZGVyRWxlY3Rpb24gPSBmdW5jdGlvbiBMZWFkZXJFbGVjdGlvbihicm9hZGNhc3RDaGFubmVsLCBvcHRpb25zKSB7XG4gIHZhciBfdGhpcyA9IHRoaXM7XG4gIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbCA9IGJyb2FkY2FzdENoYW5uZWw7XG4gIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zO1xuICB0aGlzLmlzTGVhZGVyID0gZmFsc2U7XG4gIHRoaXMuX2hhc0xlYWRlciA9IGZhbHNlO1xuICB0aGlzLmlzRGVhZCA9IGZhbHNlO1xuICB0aGlzLnRva2VuID0gcmFuZG9tVG9rZW4oKTtcblxuICAvKipcbiAgICogQXBwbHkgUXVldWUsXG4gICAqIHVzZWQgdG8gZW5zdXJlIHdlIGRvIG5vdCBydW4gYXBwbHlPbmNlKClcbiAgICogaW4gcGFyYWxsZWwuXG4gICAqL1xuICB0aGlzLl9hcGxRID0gUFJPTUlTRV9SRVNPTFZFRF9WT0lEO1xuICAvLyBhbW91bnQgb2YgdW5maW5pc2hlZCBhcHBseU9uY2UoKSBjYWxsc1xuICB0aGlzLl9hcGxRQyA9IDA7XG5cbiAgLy8gdGhpbmdzIHRvIGNsZWFuIHVwXG4gIHRoaXMuX3VubCA9IFtdOyAvLyBfdW5sb2Fkc1xuICB0aGlzLl9sc3RucyA9IFtdOyAvLyBfbGlzdGVuZXJzXG4gIHRoaXMuX2RwTCA9IGZ1bmN0aW9uICgpIHt9OyAvLyBvbmR1cGxpY2F0ZSBsaXN0ZW5lclxuICB0aGlzLl9kcExDID0gZmFsc2U7IC8vIHRydWUgd2hlbiBvbmR1cGxpY2F0ZSBjYWxsZWRcblxuICAvKipcbiAgICogRXZlbiB3aGVuIHRoZSBvd24gaW5zdGFuY2UgaXMgbm90IGFwcGx5aW5nLFxuICAgKiB3ZSBzdGlsbCBsaXN0ZW4gdG8gbWVzc2FnZXMgdG8gZW5zdXJlIHRoZSBoYXNMZWFkZXIgZmxhZ1xuICAgKiBpcyBzZXQgY29ycmVjdGx5LlxuICAgKi9cbiAgdmFyIGhhc0xlYWRlckxpc3RlbmVyID0gZnVuY3Rpb24gaGFzTGVhZGVyTGlzdGVuZXIobXNnKSB7XG4gICAgaWYgKG1zZy5jb250ZXh0ID09PSAnbGVhZGVyJykge1xuICAgICAgaWYgKG1zZy5hY3Rpb24gPT09ICdkZWF0aCcpIHtcbiAgICAgICAgX3RoaXMuX2hhc0xlYWRlciA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKG1zZy5hY3Rpb24gPT09ICd0ZWxsJykge1xuICAgICAgICBfdGhpcy5faGFzTGVhZGVyID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCdpbnRlcm5hbCcsIGhhc0xlYWRlckxpc3RlbmVyKTtcbiAgdGhpcy5fbHN0bnMucHVzaChoYXNMZWFkZXJMaXN0ZW5lcik7XG59O1xuTGVhZGVyRWxlY3Rpb24ucHJvdG90eXBlID0ge1xuICBoYXNMZWFkZXI6IGZ1bmN0aW9uIGhhc0xlYWRlcigpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2hhc0xlYWRlcik7XG4gIH0sXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGluc3RhbmNlIGlzIGxlYWRlcixcbiAgICogZmFsc2UgaWYgbm90LlxuICAgKiBAYXN5bmNcbiAgICovXG4gIGFwcGx5T25jZTogZnVuY3Rpb24gYXBwbHlPbmNlKFxuICAvLyB0cnVlIGlmIHRoZSBhcHBseU9uY2UoKSBjYWxsIGNhbWUgZnJvbSB0aGUgZmFsbGJhY2tJbnRlcnZhbCBjeWNsZVxuICBpc0Zyb21GYWxsYmFja0ludGVydmFsKSB7XG4gICAgdmFyIF90aGlzMiA9IHRoaXM7XG4gICAgaWYgKHRoaXMuaXNMZWFkZXIpIHtcbiAgICAgIHJldHVybiBzbGVlcCgwLCB0cnVlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNEZWFkKSB7XG4gICAgICByZXR1cm4gc2xlZXAoMCwgZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFscmVhZHkgYXBwbHlpbmcgbW9yZSB0aGFuIG9uY2UsXG4gICAgICogLT4gd2FpdCBmb3IgdGhlIGFwcGx5IHF1ZXVlIHRvIGJlIGZpbmlzaGVkLlxuICAgICAqL1xuICAgIGlmICh0aGlzLl9hcGxRQyA+IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLl9hcGxRO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBhIG5ldyBhcHBseS1ydW5cbiAgICAgKi9cbiAgICB2YXIgYXBwbHlSdW4gPSBmdW5jdGlvbiBhcHBseVJ1bigpIHtcbiAgICAgIC8qKlxuICAgICAgICogT3B0aW1pemF0aW9uIHNob3J0Y3V0cy5cbiAgICAgICAqIERpcmVjdGx5IHJldHVybiBpZiBhIHByZXZpb3VzIHJ1blxuICAgICAgICogaGFzIGFscmVhZHkgZWxlY3RlZCBhIGxlYWRlci5cbiAgICAgICAqL1xuICAgICAgaWYgKF90aGlzMi5pc0xlYWRlcikge1xuICAgICAgICByZXR1cm4gUFJPTUlTRV9SRVNPTFZFRF9UUlVFO1xuICAgICAgfVxuICAgICAgdmFyIHN0b3BDcml0ZXJpYSA9IGZhbHNlO1xuICAgICAgdmFyIHN0b3BDcml0ZXJpYVByb21pc2VSZXNvbHZlO1xuICAgICAgLyoqXG4gICAgICAgKiBSZXNvbHZlcyB3aGVuIGEgc3RvcCBjcml0ZXJpYSBpcyByZWFjaGVkLlxuICAgICAgICogVXNlcyBhcyBhIHBlcmZvcm1hbmNlIHNob3J0Y3V0IHNvIHdlIGRvIG5vdFxuICAgICAgICogaGF2ZSB0byBhd2FpdCB0aGUgcmVzcG9uc2VUaW1lIHdoZW4gaXQgaXMgYWxyZWFkeSBjbGVhclxuICAgICAgICogdGhhdCB0aGUgZWxlY3Rpb24gZmFpbGVkLlxuICAgICAgICovXG4gICAgICB2YXIgc3RvcENyaXRlcmlhUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgc3RvcENyaXRlcmlhUHJvbWlzZVJlc29sdmUgPSBmdW5jdGlvbiBzdG9wQ3JpdGVyaWFQcm9taXNlUmVzb2x2ZSgpIHtcbiAgICAgICAgICBzdG9wQ3JpdGVyaWEgPSB0cnVlO1xuICAgICAgICAgIHJlcygpO1xuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgICB2YXIgaGFuZGxlTWVzc2FnZSA9IGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UobXNnKSB7XG4gICAgICAgIGlmIChtc2cuY29udGV4dCA9PT0gJ2xlYWRlcicgJiYgbXNnLnRva2VuICE9IF90aGlzMi50b2tlbikge1xuICAgICAgICAgIGlmIChtc2cuYWN0aW9uID09PSAnYXBwbHknKSB7XG4gICAgICAgICAgICAvLyBvdGhlciBpcyBhcHBseWluZ1xuICAgICAgICAgICAgaWYgKG1zZy50b2tlbiA+IF90aGlzMi50b2tlbikge1xuICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICogb3RoZXIgaGFzIGhpZ2hlciB0b2tlblxuICAgICAgICAgICAgICAgKiAtPiBzdG9wIGFwcGx5aW5nIGFuZCBsZXQgb3RoZXIgYmVjb21lIGxlYWRlci5cbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIHN0b3BDcml0ZXJpYVByb21pc2VSZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChtc2cuYWN0aW9uID09PSAndGVsbCcpIHtcbiAgICAgICAgICAgIC8vIG90aGVyIGlzIGFscmVhZHkgbGVhZGVyXG4gICAgICAgICAgICBzdG9wQ3JpdGVyaWFQcm9taXNlUmVzb2x2ZSgpO1xuICAgICAgICAgICAgX3RoaXMyLl9oYXNMZWFkZXIgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIF90aGlzMi5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2ludGVybmFsJywgaGFuZGxlTWVzc2FnZSk7XG5cbiAgICAgIC8qKlxuICAgICAgICogSWYgdGhlIGFwcGx5T25jZSgpIGNhbGwgY2FtZSBmcm9tIHRoZSBmYWxsYmFja0ludGVydmFsLFxuICAgICAgICogd2UgY2FuIGFzc3VtZSB0aGF0IHRoZSBlbGVjdGlvbiBydW5zIGluIHRoZSBiYWNrZ3JvdW5kIGFuZFxuICAgICAgICogbm90IGNyaXRpY2FsIHByb2Nlc3MgaXMgd2FpdGluZyBmb3IgaXQuXG4gICAgICAgKiBXaGVuIHRoaXMgaXMgdHJ1ZSwgd2UgZ2l2ZSB0aGUgb3RoZXIgaW5zdGFuY2VzXG4gICAgICAgKiBtb3JlIHRpbWUgdG8gYW5zd2VyIHRvIG1lc3NhZ2VzIGluIHRoZSBlbGVjdGlvbiBjeWNsZS5cbiAgICAgICAqIFRoaXMgbWFrZXMgaXQgbGVzcyBsaWtlbHkgdG8gZWxlY3QgZHVwbGljYXRlIGxlYWRlcnMuXG4gICAgICAgKiBCdXQgYWxzbyBpdCB0YWtlcyBsb25nZXIgd2hpY2ggaXMgbm90IGEgcHJvYmxlbSBiZWNhdXNlIHdlIGFueXdheVxuICAgICAgICogcnVuIGluIHRoZSBiYWNrZ3JvdW5kLlxuICAgICAgICovXG4gICAgICB2YXIgd2FpdEZvckFuc3dlclRpbWUgPSBpc0Zyb21GYWxsYmFja0ludGVydmFsID8gX3RoaXMyLl9vcHRpb25zLnJlc3BvbnNlVGltZSAqIDQgOiBfdGhpczIuX29wdGlvbnMucmVzcG9uc2VUaW1lO1xuICAgICAgcmV0dXJuIHNlbmRMZWFkZXJNZXNzYWdlKF90aGlzMiwgJ2FwcGx5JykgLy8gc2VuZCBvdXQgdGhhdCB0aGlzIG9uZSBpcyBhcHBseWluZ1xuICAgICAgLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yYWNlKFtzbGVlcCh3YWl0Rm9yQW5zd2VyVGltZSksIHN0b3BDcml0ZXJpYVByb21pc2UudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcigpKTtcbiAgICAgICAgfSldKTtcbiAgICAgIH0pXG4gICAgICAvLyBzZW5kIGFnYWluIGluIGNhc2UgYW5vdGhlciBpbnN0YW5jZSB3YXMganVzdCBjcmVhdGVkXG4gICAgICAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBzZW5kTGVhZGVyTWVzc2FnZShfdGhpczIsICdhcHBseScpO1xuICAgICAgfSlcbiAgICAgIC8vIGxldCBvdGhlcnMgdGltZSB0byByZXNwb25kXG4gICAgICAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJhY2UoW3NsZWVwKHdhaXRGb3JBbnN3ZXJUaW1lKSwgc3RvcENyaXRlcmlhUHJvbWlzZS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCkpO1xuICAgICAgICB9KV0pO1xuICAgICAgfSlbXCJjYXRjaFwiXShmdW5jdGlvbiAoKSB7fSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzMi5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ludGVybmFsJywgaGFuZGxlTWVzc2FnZSk7XG4gICAgICAgIGlmICghc3RvcENyaXRlcmlhKSB7XG4gICAgICAgICAgLy8gbm8gc3RvcCBjcml0ZXJpYSAtPiBvd24gaXMgbGVhZGVyXG4gICAgICAgICAgcmV0dXJuIGJlTGVhZGVyKF90aGlzMikudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBvdGhlciBpcyBsZWFkZXJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gICAgdGhpcy5fYXBsUUMgPSB0aGlzLl9hcGxRQyArIDE7XG4gICAgdGhpcy5fYXBsUSA9IHRoaXMuX2FwbFEudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gYXBwbHlSdW4oKTtcbiAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzMi5fYXBsUUMgPSBfdGhpczIuX2FwbFFDIC0gMTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fYXBsUS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpczIuaXNMZWFkZXI7XG4gICAgfSk7XG4gIH0sXG4gIGF3YWl0TGVhZGVyc2hpcDogZnVuY3Rpb24gYXdhaXRMZWFkZXJzaGlwKCkge1xuICAgIGlmICgvKiBfYXdhaXRMZWFkZXJzaGlwUHJvbWlzZSAqL1xuICAgICF0aGlzLl9hTFApIHtcbiAgICAgIHRoaXMuX2FMUCA9IF9hd2FpdExlYWRlcnNoaXBPbmNlKHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYUxQO1xuICB9LFxuICBzZXQgb25kdXBsaWNhdGUoZm4pIHtcbiAgICB0aGlzLl9kcEwgPSBmbjtcbiAgfSxcbiAgZGllOiBmdW5jdGlvbiBkaWUoKSB7XG4gICAgdmFyIF90aGlzMyA9IHRoaXM7XG4gICAgdGhpcy5fbHN0bnMuZm9yRWFjaChmdW5jdGlvbiAobGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBfdGhpczMuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCdpbnRlcm5hbCcsIGxpc3RlbmVyKTtcbiAgICB9KTtcbiAgICB0aGlzLl9sc3RucyA9IFtdO1xuICAgIHRoaXMuX3VubC5mb3JFYWNoKGZ1bmN0aW9uICh1Rm4pIHtcbiAgICAgIHJldHVybiB1Rm4ucmVtb3ZlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5fdW5sID0gW107XG4gICAgaWYgKHRoaXMuaXNMZWFkZXIpIHtcbiAgICAgIHRoaXMuX2hhc0xlYWRlciA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0xlYWRlciA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmlzRGVhZCA9IHRydWU7XG4gICAgcmV0dXJuIHNlbmRMZWFkZXJNZXNzYWdlKHRoaXMsICdkZWF0aCcpO1xuICB9XG59O1xuXG4vKipcbiAqIEBwYXJhbSBsZWFkZXJFbGVjdG9yIHtMZWFkZXJFbGVjdG9yfVxuICovXG5mdW5jdGlvbiBfYXdhaXRMZWFkZXJzaGlwT25jZShsZWFkZXJFbGVjdG9yKSB7XG4gIGlmIChsZWFkZXJFbGVjdG9yLmlzTGVhZGVyKSB7XG4gICAgcmV0dXJuIFBST01JU0VfUkVTT0xWRURfVk9JRDtcbiAgfVxuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcykge1xuICAgIHZhciByZXNvbHZlZCA9IGZhbHNlO1xuICAgIGZ1bmN0aW9uIGZpbmlzaCgpIHtcbiAgICAgIGlmIChyZXNvbHZlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICBsZWFkZXJFbGVjdG9yLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignaW50ZXJuYWwnLCB3aGVuRGVhdGhMaXN0ZW5lcik7XG4gICAgICByZXModHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gdHJ5IG9uY2Ugbm93XG4gICAgbGVhZGVyRWxlY3Rvci5hcHBseU9uY2UoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChsZWFkZXJFbGVjdG9yLmlzTGVhZGVyKSB7XG4gICAgICAgIGZpbmlzaCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVHJ5IG9uIGZhbGxiYWNrSW50ZXJ2YWxcbiAgICAgKiBAcmVjdXJzaXZlXG4gICAgICovXG4gICAgdmFyIF90cnlPbkZhbGxCYWNrID0gZnVuY3Rpb24gdHJ5T25GYWxsQmFjaygpIHtcbiAgICAgIHJldHVybiBzbGVlcChsZWFkZXJFbGVjdG9yLl9vcHRpb25zLmZhbGxiYWNrSW50ZXJ2YWwpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAobGVhZGVyRWxlY3Rvci5pc0RlYWQgfHwgcmVzb2x2ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxlYWRlckVsZWN0b3IuaXNMZWFkZXIpIHtcbiAgICAgICAgICBmaW5pc2goKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbGVhZGVyRWxlY3Rvci5hcHBseU9uY2UodHJ1ZSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAobGVhZGVyRWxlY3Rvci5pc0xlYWRlcikge1xuICAgICAgICAgICAgICBmaW5pc2goKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIF90cnlPbkZhbGxCYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RyeU9uRmFsbEJhY2soKTtcblxuICAgIC8vIHRyeSB3aGVuIG90aGVyIGxlYWRlciBkaWVzXG4gICAgdmFyIHdoZW5EZWF0aExpc3RlbmVyID0gZnVuY3Rpb24gd2hlbkRlYXRoTGlzdGVuZXIobXNnKSB7XG4gICAgICBpZiAobXNnLmNvbnRleHQgPT09ICdsZWFkZXInICYmIG1zZy5hY3Rpb24gPT09ICdkZWF0aCcpIHtcbiAgICAgICAgbGVhZGVyRWxlY3Rvci5faGFzTGVhZGVyID0gZmFsc2U7XG4gICAgICAgIGxlYWRlckVsZWN0b3IuYXBwbHlPbmNlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKGxlYWRlckVsZWN0b3IuaXNMZWFkZXIpIHtcbiAgICAgICAgICAgIGZpbmlzaCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBsZWFkZXJFbGVjdG9yLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcignaW50ZXJuYWwnLCB3aGVuRGVhdGhMaXN0ZW5lcik7XG4gICAgbGVhZGVyRWxlY3Rvci5fbHN0bnMucHVzaCh3aGVuRGVhdGhMaXN0ZW5lcik7XG4gIH0pO1xufVxuZnVuY3Rpb24gZmlsbE9wdGlvbnNXaXRoRGVmYXVsdHMob3B0aW9ucywgY2hhbm5lbCkge1xuICBpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcbiAgb3B0aW9ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICBpZiAoIW9wdGlvbnMuZmFsbGJhY2tJbnRlcnZhbCkge1xuICAgIG9wdGlvbnMuZmFsbGJhY2tJbnRlcnZhbCA9IDMwMDA7XG4gIH1cbiAgaWYgKCFvcHRpb25zLnJlc3BvbnNlVGltZSkge1xuICAgIG9wdGlvbnMucmVzcG9uc2VUaW1lID0gY2hhbm5lbC5tZXRob2QuYXZlcmFnZVJlc3BvbnNlVGltZShjaGFubmVsLm9wdGlvbnMpO1xuICB9XG4gIHJldHVybiBvcHRpb25zO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxlYWRlckVsZWN0aW9uKGNoYW5uZWwsIG9wdGlvbnMpIHtcbiAgaWYgKGNoYW5uZWwuX2xlYWRlckVsZWN0b3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Jyb2FkY2FzdENoYW5uZWwgYWxyZWFkeSBoYXMgYSBsZWFkZXItZWxlY3RvcicpO1xuICB9XG4gIG9wdGlvbnMgPSBmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyhvcHRpb25zLCBjaGFubmVsKTtcbiAgdmFyIGVsZWN0b3IgPSBzdXBwb3J0c1dlYkxvY2tBUEkoKSA/IG5ldyBMZWFkZXJFbGVjdGlvbldlYkxvY2soY2hhbm5lbCwgb3B0aW9ucykgOiBuZXcgTGVhZGVyRWxlY3Rpb24oY2hhbm5lbCwgb3B0aW9ucyk7XG4gIGNoYW5uZWwuX2JlZkMucHVzaChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGVsZWN0b3IuZGllKCk7XG4gIH0pO1xuICBjaGFubmVsLl9sZWFkZXJFbGVjdG9yID0gZWxlY3RvcjtcbiAgcmV0dXJuIGVsZWN0b3I7XG59IiwgImV4cG9ydCB7IEJyb2FkY2FzdENoYW5uZWwsIGNsZWFyTm9kZUZvbGRlciwgZW5mb3JjZU9wdGlvbnMsIE9QRU5fQlJPQURDQVNUX0NIQU5ORUxTIH0gZnJvbSAnLi9icm9hZGNhc3QtY2hhbm5lbC5qcyc7XG5leHBvcnQgeyBjcmVhdGVMZWFkZXJFbGVjdGlvbiB9IGZyb20gJy4vbGVhZGVyLWVsZWN0aW9uLmpzJztcbmV4cG9ydCB7IGJlTGVhZGVyIH0gZnJvbSAnLi9sZWFkZXItZWxlY3Rpb24tdXRpbC5qcyc7IiwgIi8vIHB1c2hyb2NrcyBzY29wZVxuaW1wb3J0ICogYXMgc21hcnRkZWxheSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydGRlbGF5JztcbmltcG9ydCAqIGFzIHR5cGVkcmVxdWVzdEludGVyZmFjZXMgZnJvbSAnQGFwaS5nbG9iYWwvdHlwZWRyZXF1ZXN0LWludGVyZmFjZXMnO1xuaW1wb3J0ICogYXMgdHlwZWRyZXF1ZXN0IGZyb20gJ0BhcGkuZ2xvYmFsL3R5cGVkcmVxdWVzdCc7XG5cbmV4cG9ydCB7IHNtYXJ0ZGVsYXksIHR5cGVkcmVxdWVzdEludGVyZmFjZXMsIHR5cGVkcmVxdWVzdCB9O1xuXG4vLyB0aGlyZCBwYXJ0eSBzY29wZVxuaW1wb3J0IHsgQnJvYWRjYXN0Q2hhbm5lbCBhcyBCcm9hZENhc3RDaGFubmVsUG9seWZpbGwgfSBmcm9tICdicm9hZGNhc3QtY2hhbm5lbCc7XG5cbmV4cG9ydCB7XG4gIEJyb2FkQ2FzdENoYW5uZWxQb2x5ZmlsbFxufSIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vZGVlcy1jb21tcy5wbHVnaW5zLmpzJztcblxubGV0IEJyb2FkY2FzdENoYW5uZWwgPSBnbG9iYWxUaGlzLkJyb2FkY2FzdENoYW5uZWw7XG5pZiAoIUJyb2FkY2FzdENoYW5uZWwpIHtcbiAgQnJvYWRjYXN0Q2hhbm5lbCA9IHBsdWdpbnMuQnJvYWRDYXN0Q2hhbm5lbFBvbHlmaWxsIGFzIGFueTtcbn1cblxuLyoqXG4gKiBhIGNvbW0gY2xhc3MgZm9yIGNsaWVudCBzaWRlIGNvbW11bmljYXRpb24gYmV0d2VlbiB3b3JrZXJzIGFuZCB0YWJzLlxuICovXG5leHBvcnQgY2xhc3MgRGVlc0NvbW1zIHtcbiAgcHJpdmF0ZSBicm9hZGNhc3RDaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoJ2RlZXMtY29tbXMnKTtcbiAgXG4gIC8vIHNlbmRpbmcgbWVzc2FnZXNcbiAgcHVibGljIHR5cGVkcm91dGVyID0gbmV3IHBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUm91dGVyKCk7XG4gIHB1YmxpYyB0eXBlZHRhcmdldCA9IG5ldyBwbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFRhcmdldCh7XG4gICAgcG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcjogYXN5bmMgKG1lc3NhZ2VBcmcpID0+IHtcbiAgICAgIHRoaXMucG9zdE1lc3NhZ2UobWVzc2FnZUFyZyk7XG4gICAgfSxcbiAgICB0eXBlZFJvdXRlclJlZjogdGhpcy50eXBlZHJvdXRlcixcbiAgfSk7XG5cbiAgLy8gcmVjZWl2aW5nIG1lc3NhZ2VzXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5vbm1lc3NhZ2UgPSBhc3luYyAoZXZlbnRBcmcpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSAoZXZlbnRBcmcgYXMgYW55KS5tZXRob2QgPyBldmVudEFyZyA6IGV2ZW50QXJnLmRhdGE7XG4gICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7XG4gICAgICAvLyBTa2lwIGhvb2tzIGZvciBicm9hZGNhc3QtcmVjZWl2ZWQgbWVzc2FnZXMgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wc1xuICAgICAgLy8gd2hlbiB0cmFmZmljIGxvZ2dpbmcgaG9va3MgYXJlIHNldCB1cCBnbG9iYWxseVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2UobWVzc2FnZSwgeyBza2lwSG9va3M6IHRydWUgfSk7XG4gICAgICBpZiAocmVzcG9uc2UgJiYgIXJlc3BvbnNlLmVycm9yKSB7XG4gICAgICAgIHRoaXMucG9zdE1lc3NhZ2UocmVzcG9uc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogY3JlYXRlcyBhIHR5cGVkcmVxdWVzdCB3aXRoIHRoaXMgY2xhc3NlcyBwb3N0TWVzc2FnZSBhcyBwb3N0TWV0aG9kXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlVHlwZWRSZXF1ZXN0PFQgZXh0ZW5kcyBwbHVnaW5zLnR5cGVkcmVxdWVzdEludGVyZmFjZXMuSVR5cGVkUmVxdWVzdD4oXG4gICAgbWV0aG9kTmFtZTogVFsnbWV0aG9kJ11cbiAgKTogcGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0PFQ+IHtcbiAgICBjb25zdCB0eXBlZHJlcXVlc3QgPSBuZXcgcGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KHRoaXMudHlwZWR0YXJnZXQsIG1ldGhvZE5hbWUpO1xuICAgIHJldHVybiB0eXBlZHJlcXVlc3Q7XG4gIH1cblxuICAvKipcbiAgICogcG9zdHMgYSB0eXBlZHJlcXVlc3RtZXNzYWdlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcG9zdE1lc3NhZ2U8VCA9IHBsdWdpbnMudHlwZWRyZXF1ZXN0SW50ZXJmYWNlcy5JVHlwZWRSZXF1ZXN0PihcbiAgICBtZXNzYWdlQXJnOiBUXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZShtZXNzYWdlQXJnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzdWJzY3JpYmUgdG8gbWVzc2FnZXNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVUeXBlZEhhbmRsZXI8VCBleHRlbmRzIHBsdWdpbnMudHlwZWRyZXF1ZXN0SW50ZXJmYWNlcy5JVHlwZWRSZXF1ZXN0PihcbiAgICBtZXRob2RBcmc6IFRbJ21ldGhvZCddLFxuICAgIGhhbmRsZXJGdW5jdGlvbjogcGx1Z2lucy50eXBlZHJlcXVlc3QuVEhhbmRsZXJGdW5jdGlvbjxUPlxuICApIHtcbiAgICB0aGlzLnR5cGVkcm91dGVyLmFkZFR5cGVkSGFuZGxlcihcbiAgICAgIG5ldyBwbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZEhhbmRsZXI8VD4obWV0aG9kQXJnLCBoYW5kbGVyRnVuY3Rpb24pXG4gICAgKTtcbiAgfVxufVxuIiwgImV4cG9ydCAqIGZyb20gJy4vZGVlcy1jb21tcy5jbGFzc2VzLmRlZXNjb21tcy5qcyc7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5cbmZ1bmN0aW9uIGlzTm90aGluZyhzdWJqZWN0KSB7XG4gIHJldHVybiAodHlwZW9mIHN1YmplY3QgPT09ICd1bmRlZmluZWQnKSB8fCAoc3ViamVjdCA9PT0gbnVsbCk7XG59XG5cblxuZnVuY3Rpb24gaXNPYmplY3Qoc3ViamVjdCkge1xuICByZXR1cm4gKHR5cGVvZiBzdWJqZWN0ID09PSAnb2JqZWN0JykgJiYgKHN1YmplY3QgIT09IG51bGwpO1xufVxuXG5cbmZ1bmN0aW9uIHRvQXJyYXkoc2VxdWVuY2UpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoc2VxdWVuY2UpKSByZXR1cm4gc2VxdWVuY2U7XG4gIGVsc2UgaWYgKGlzTm90aGluZyhzZXF1ZW5jZSkpIHJldHVybiBbXTtcblxuICByZXR1cm4gWyBzZXF1ZW5jZSBdO1xufVxuXG5cbmZ1bmN0aW9uIGV4dGVuZCh0YXJnZXQsIHNvdXJjZSkge1xuICB2YXIgaW5kZXgsIGxlbmd0aCwga2V5LCBzb3VyY2VLZXlzO1xuXG4gIGlmIChzb3VyY2UpIHtcbiAgICBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcblxuICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBzb3VyY2VLZXlzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgIGtleSA9IHNvdXJjZUtleXNbaW5kZXhdO1xuICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5cbmZ1bmN0aW9uIHJlcGVhdChzdHJpbmcsIGNvdW50KSB7XG4gIHZhciByZXN1bHQgPSAnJywgY3ljbGU7XG5cbiAgZm9yIChjeWNsZSA9IDA7IGN5Y2xlIDwgY291bnQ7IGN5Y2xlICs9IDEpIHtcbiAgICByZXN1bHQgKz0gc3RyaW5nO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuXG5mdW5jdGlvbiBpc05lZ2F0aXZlWmVybyhudW1iZXIpIHtcbiAgcmV0dXJuIChudW1iZXIgPT09IDApICYmIChOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IDEgLyBudW1iZXIpO1xufVxuXG5cbm1vZHVsZS5leHBvcnRzLmlzTm90aGluZyAgICAgID0gaXNOb3RoaW5nO1xubW9kdWxlLmV4cG9ydHMuaXNPYmplY3QgICAgICAgPSBpc09iamVjdDtcbm1vZHVsZS5leHBvcnRzLnRvQXJyYXkgICAgICAgID0gdG9BcnJheTtcbm1vZHVsZS5leHBvcnRzLnJlcGVhdCAgICAgICAgID0gcmVwZWF0O1xubW9kdWxlLmV4cG9ydHMuaXNOZWdhdGl2ZVplcm8gPSBpc05lZ2F0aXZlWmVybztcbm1vZHVsZS5leHBvcnRzLmV4dGVuZCAgICAgICAgID0gZXh0ZW5kO1xuIiwgIi8vIFlBTUwgZXJyb3IgY2xhc3MuIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvODQ1ODk4NFxuLy9cbid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gWUFNTEV4Y2VwdGlvbihyZWFzb24sIG1hcmspIHtcbiAgLy8gU3VwZXIgY29uc3RydWN0b3JcbiAgRXJyb3IuY2FsbCh0aGlzKTtcblxuICB0aGlzLm5hbWUgPSAnWUFNTEV4Y2VwdGlvbic7XG4gIHRoaXMucmVhc29uID0gcmVhc29uO1xuICB0aGlzLm1hcmsgPSBtYXJrO1xuICB0aGlzLm1lc3NhZ2UgPSAodGhpcy5yZWFzb24gfHwgJyh1bmtub3duIHJlYXNvbiknKSArICh0aGlzLm1hcmsgPyAnICcgKyB0aGlzLm1hcmsudG9TdHJpbmcoKSA6ICcnKTtcblxuICAvLyBJbmNsdWRlIHN0YWNrIHRyYWNlIGluIGVycm9yIG9iamVjdFxuICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHtcbiAgICAvLyBDaHJvbWUgYW5kIE5vZGVKU1xuICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpO1xuICB9IGVsc2Uge1xuICAgIC8vIEZGLCBJRSAxMCsgYW5kIFNhZmFyaSA2Ky4gRmFsbGJhY2sgZm9yIG90aGVyc1xuICAgIHRoaXMuc3RhY2sgPSAobmV3IEVycm9yKCkpLnN0YWNrIHx8ICcnO1xuICB9XG59XG5cblxuLy8gSW5oZXJpdCBmcm9tIEVycm9yXG5ZQU1MRXhjZXB0aW9uLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKTtcbllBTUxFeGNlcHRpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gWUFNTEV4Y2VwdGlvbjtcblxuXG5ZQU1MRXhjZXB0aW9uLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKGNvbXBhY3QpIHtcbiAgdmFyIHJlc3VsdCA9IHRoaXMubmFtZSArICc6ICc7XG5cbiAgcmVzdWx0ICs9IHRoaXMucmVhc29uIHx8ICcodW5rbm93biByZWFzb24pJztcblxuICBpZiAoIWNvbXBhY3QgJiYgdGhpcy5tYXJrKSB7XG4gICAgcmVzdWx0ICs9ICcgJyArIHRoaXMubWFyay50b1N0cmluZygpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cblxubW9kdWxlLmV4cG9ydHMgPSBZQU1MRXhjZXB0aW9uO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuXG52YXIgY29tbW9uID0gcmVxdWlyZSgnLi9jb21tb24nKTtcblxuXG5mdW5jdGlvbiBNYXJrKG5hbWUsIGJ1ZmZlciwgcG9zaXRpb24sIGxpbmUsIGNvbHVtbikge1xuICB0aGlzLm5hbWUgICAgID0gbmFtZTtcbiAgdGhpcy5idWZmZXIgICA9IGJ1ZmZlcjtcbiAgdGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICB0aGlzLmxpbmUgICAgID0gbGluZTtcbiAgdGhpcy5jb2x1bW4gICA9IGNvbHVtbjtcbn1cblxuXG5NYXJrLnByb3RvdHlwZS5nZXRTbmlwcGV0ID0gZnVuY3Rpb24gZ2V0U25pcHBldChpbmRlbnQsIG1heExlbmd0aCkge1xuICB2YXIgaGVhZCwgc3RhcnQsIHRhaWwsIGVuZCwgc25pcHBldDtcblxuICBpZiAoIXRoaXMuYnVmZmVyKSByZXR1cm4gbnVsbDtcblxuICBpbmRlbnQgPSBpbmRlbnQgfHwgNDtcbiAgbWF4TGVuZ3RoID0gbWF4TGVuZ3RoIHx8IDc1O1xuXG4gIGhlYWQgPSAnJztcbiAgc3RhcnQgPSB0aGlzLnBvc2l0aW9uO1xuXG4gIHdoaWxlIChzdGFydCA+IDAgJiYgJ1xceDAwXFxyXFxuXFx4ODVcXHUyMDI4XFx1MjAyOScuaW5kZXhPZih0aGlzLmJ1ZmZlci5jaGFyQXQoc3RhcnQgLSAxKSkgPT09IC0xKSB7XG4gICAgc3RhcnQgLT0gMTtcbiAgICBpZiAodGhpcy5wb3NpdGlvbiAtIHN0YXJ0ID4gKG1heExlbmd0aCAvIDIgLSAxKSkge1xuICAgICAgaGVhZCA9ICcgLi4uICc7XG4gICAgICBzdGFydCArPSA1O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdGFpbCA9ICcnO1xuICBlbmQgPSB0aGlzLnBvc2l0aW9uO1xuXG4gIHdoaWxlIChlbmQgPCB0aGlzLmJ1ZmZlci5sZW5ndGggJiYgJ1xceDAwXFxyXFxuXFx4ODVcXHUyMDI4XFx1MjAyOScuaW5kZXhPZih0aGlzLmJ1ZmZlci5jaGFyQXQoZW5kKSkgPT09IC0xKSB7XG4gICAgZW5kICs9IDE7XG4gICAgaWYgKGVuZCAtIHRoaXMucG9zaXRpb24gPiAobWF4TGVuZ3RoIC8gMiAtIDEpKSB7XG4gICAgICB0YWlsID0gJyAuLi4gJztcbiAgICAgIGVuZCAtPSA1O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgc25pcHBldCA9IHRoaXMuYnVmZmVyLnNsaWNlKHN0YXJ0LCBlbmQpO1xuXG4gIHJldHVybiBjb21tb24ucmVwZWF0KCcgJywgaW5kZW50KSArIGhlYWQgKyBzbmlwcGV0ICsgdGFpbCArICdcXG4nICtcbiAgICAgICAgIGNvbW1vbi5yZXBlYXQoJyAnLCBpbmRlbnQgKyB0aGlzLnBvc2l0aW9uIC0gc3RhcnQgKyBoZWFkLmxlbmd0aCkgKyAnXic7XG59O1xuXG5cbk1hcmsucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoY29tcGFjdCkge1xuICB2YXIgc25pcHBldCwgd2hlcmUgPSAnJztcblxuICBpZiAodGhpcy5uYW1lKSB7XG4gICAgd2hlcmUgKz0gJ2luIFwiJyArIHRoaXMubmFtZSArICdcIiAnO1xuICB9XG5cbiAgd2hlcmUgKz0gJ2F0IGxpbmUgJyArICh0aGlzLmxpbmUgKyAxKSArICcsIGNvbHVtbiAnICsgKHRoaXMuY29sdW1uICsgMSk7XG5cbiAgaWYgKCFjb21wYWN0KSB7XG4gICAgc25pcHBldCA9IHRoaXMuZ2V0U25pcHBldCgpO1xuXG4gICAgaWYgKHNuaXBwZXQpIHtcbiAgICAgIHdoZXJlICs9ICc6XFxuJyArIHNuaXBwZXQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHdoZXJlO1xufTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IE1hcms7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgWUFNTEV4Y2VwdGlvbiA9IHJlcXVpcmUoJy4vZXhjZXB0aW9uJyk7XG5cbnZhciBUWVBFX0NPTlNUUlVDVE9SX09QVElPTlMgPSBbXG4gICdraW5kJyxcbiAgJ3Jlc29sdmUnLFxuICAnY29uc3RydWN0JyxcbiAgJ2luc3RhbmNlT2YnLFxuICAncHJlZGljYXRlJyxcbiAgJ3JlcHJlc2VudCcsXG4gICdkZWZhdWx0U3R5bGUnLFxuICAnc3R5bGVBbGlhc2VzJ1xuXTtcblxudmFyIFlBTUxfTk9ERV9LSU5EUyA9IFtcbiAgJ3NjYWxhcicsXG4gICdzZXF1ZW5jZScsXG4gICdtYXBwaW5nJ1xuXTtcblxuZnVuY3Rpb24gY29tcGlsZVN0eWxlQWxpYXNlcyhtYXApIHtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuXG4gIGlmIChtYXAgIT09IG51bGwpIHtcbiAgICBPYmplY3Qua2V5cyhtYXApLmZvckVhY2goZnVuY3Rpb24gKHN0eWxlKSB7XG4gICAgICBtYXBbc3R5bGVdLmZvckVhY2goZnVuY3Rpb24gKGFsaWFzKSB7XG4gICAgICAgIHJlc3VsdFtTdHJpbmcoYWxpYXMpXSA9IHN0eWxlO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBUeXBlKHRhZywgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgaWYgKFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUy5pbmRleE9mKG5hbWUpID09PSAtMSkge1xuICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ1Vua25vd24gb3B0aW9uIFwiJyArIG5hbWUgKyAnXCIgaXMgbWV0IGluIGRlZmluaXRpb24gb2YgXCInICsgdGFnICsgJ1wiIFlBTUwgdHlwZS4nKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFRPRE86IEFkZCB0YWcgZm9ybWF0IGNoZWNrLlxuICB0aGlzLnRhZyAgICAgICAgICA9IHRhZztcbiAgdGhpcy5raW5kICAgICAgICAgPSBvcHRpb25zWydraW5kJ10gICAgICAgICB8fCBudWxsO1xuICB0aGlzLnJlc29sdmUgICAgICA9IG9wdGlvbnNbJ3Jlc29sdmUnXSAgICAgIHx8IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRydWU7IH07XG4gIHRoaXMuY29uc3RydWN0ICAgID0gb3B0aW9uc1snY29uc3RydWN0J10gICAgfHwgZnVuY3Rpb24gKGRhdGEpIHsgcmV0dXJuIGRhdGE7IH07XG4gIHRoaXMuaW5zdGFuY2VPZiAgID0gb3B0aW9uc1snaW5zdGFuY2VPZiddICAgfHwgbnVsbDtcbiAgdGhpcy5wcmVkaWNhdGUgICAgPSBvcHRpb25zWydwcmVkaWNhdGUnXSAgICB8fCBudWxsO1xuICB0aGlzLnJlcHJlc2VudCAgICA9IG9wdGlvbnNbJ3JlcHJlc2VudCddICAgIHx8IG51bGw7XG4gIHRoaXMuZGVmYXVsdFN0eWxlID0gb3B0aW9uc1snZGVmYXVsdFN0eWxlJ10gfHwgbnVsbDtcbiAgdGhpcy5zdHlsZUFsaWFzZXMgPSBjb21waWxlU3R5bGVBbGlhc2VzKG9wdGlvbnNbJ3N0eWxlQWxpYXNlcyddIHx8IG51bGwpO1xuXG4gIGlmIChZQU1MX05PREVfS0lORFMuaW5kZXhPZih0aGlzLmtpbmQpID09PSAtMSkge1xuICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdVbmtub3duIGtpbmQgXCInICsgdGhpcy5raW5kICsgJ1wiIGlzIHNwZWNpZmllZCBmb3IgXCInICsgdGFnICsgJ1wiIFlBTUwgdHlwZS4nKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFR5cGU7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKmVzbGludC1kaXNhYmxlIG1heC1sZW4qL1xuXG52YXIgY29tbW9uICAgICAgICA9IHJlcXVpcmUoJy4vY29tbW9uJyk7XG52YXIgWUFNTEV4Y2VwdGlvbiA9IHJlcXVpcmUoJy4vZXhjZXB0aW9uJyk7XG52YXIgVHlwZSAgICAgICAgICA9IHJlcXVpcmUoJy4vdHlwZScpO1xuXG5cbmZ1bmN0aW9uIGNvbXBpbGVMaXN0KHNjaGVtYSwgbmFtZSwgcmVzdWx0KSB7XG4gIHZhciBleGNsdWRlID0gW107XG5cbiAgc2NoZW1hLmluY2x1ZGUuZm9yRWFjaChmdW5jdGlvbiAoaW5jbHVkZWRTY2hlbWEpIHtcbiAgICByZXN1bHQgPSBjb21waWxlTGlzdChpbmNsdWRlZFNjaGVtYSwgbmFtZSwgcmVzdWx0KTtcbiAgfSk7XG5cbiAgc2NoZW1hW25hbWVdLmZvckVhY2goZnVuY3Rpb24gKGN1cnJlbnRUeXBlKSB7XG4gICAgcmVzdWx0LmZvckVhY2goZnVuY3Rpb24gKHByZXZpb3VzVHlwZSwgcHJldmlvdXNJbmRleCkge1xuICAgICAgaWYgKHByZXZpb3VzVHlwZS50YWcgPT09IGN1cnJlbnRUeXBlLnRhZyAmJiBwcmV2aW91c1R5cGUua2luZCA9PT0gY3VycmVudFR5cGUua2luZCkge1xuICAgICAgICBleGNsdWRlLnB1c2gocHJldmlvdXNJbmRleCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXN1bHQucHVzaChjdXJyZW50VHlwZSk7XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQuZmlsdGVyKGZ1bmN0aW9uICh0eXBlLCBpbmRleCkge1xuICAgIHJldHVybiBleGNsdWRlLmluZGV4T2YoaW5kZXgpID09PSAtMTtcbiAgfSk7XG59XG5cblxuZnVuY3Rpb24gY29tcGlsZU1hcCgvKiBsaXN0cy4uLiAqLykge1xuICB2YXIgcmVzdWx0ID0ge1xuICAgICAgICBzY2FsYXI6IHt9LFxuICAgICAgICBzZXF1ZW5jZToge30sXG4gICAgICAgIG1hcHBpbmc6IHt9LFxuICAgICAgICBmYWxsYmFjazoge31cbiAgICAgIH0sIGluZGV4LCBsZW5ndGg7XG5cbiAgZnVuY3Rpb24gY29sbGVjdFR5cGUodHlwZSkge1xuICAgIHJlc3VsdFt0eXBlLmtpbmRdW3R5cGUudGFnXSA9IHJlc3VsdFsnZmFsbGJhY2snXVt0eXBlLnRhZ10gPSB0eXBlO1xuICB9XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgYXJndW1lbnRzW2luZGV4XS5mb3JFYWNoKGNvbGxlY3RUeXBlKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5cbmZ1bmN0aW9uIFNjaGVtYShkZWZpbml0aW9uKSB7XG4gIHRoaXMuaW5jbHVkZSAgPSBkZWZpbml0aW9uLmluY2x1ZGUgIHx8IFtdO1xuICB0aGlzLmltcGxpY2l0ID0gZGVmaW5pdGlvbi5pbXBsaWNpdCB8fCBbXTtcbiAgdGhpcy5leHBsaWNpdCA9IGRlZmluaXRpb24uZXhwbGljaXQgfHwgW107XG5cbiAgdGhpcy5pbXBsaWNpdC5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgaWYgKHR5cGUubG9hZEtpbmQgJiYgdHlwZS5sb2FkS2luZCAhPT0gJ3NjYWxhcicpIHtcbiAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgICB9XG4gIH0pO1xuXG4gIHRoaXMuY29tcGlsZWRJbXBsaWNpdCA9IGNvbXBpbGVMaXN0KHRoaXMsICdpbXBsaWNpdCcsIFtdKTtcbiAgdGhpcy5jb21waWxlZEV4cGxpY2l0ID0gY29tcGlsZUxpc3QodGhpcywgJ2V4cGxpY2l0JywgW10pO1xuICB0aGlzLmNvbXBpbGVkVHlwZU1hcCAgPSBjb21waWxlTWFwKHRoaXMuY29tcGlsZWRJbXBsaWNpdCwgdGhpcy5jb21waWxlZEV4cGxpY2l0KTtcbn1cblxuXG5TY2hlbWEuREVGQVVMVCA9IG51bGw7XG5cblxuU2NoZW1hLmNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZVNjaGVtYSgpIHtcbiAgdmFyIHNjaGVtYXMsIHR5cGVzO1xuXG4gIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgIGNhc2UgMTpcbiAgICAgIHNjaGVtYXMgPSBTY2hlbWEuREVGQVVMVDtcbiAgICAgIHR5cGVzID0gYXJndW1lbnRzWzBdO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIDI6XG4gICAgICBzY2hlbWFzID0gYXJndW1lbnRzWzBdO1xuICAgICAgdHlwZXMgPSBhcmd1bWVudHNbMV07XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgU2NoZW1hLmNyZWF0ZSBmdW5jdGlvbicpO1xuICB9XG5cbiAgc2NoZW1hcyA9IGNvbW1vbi50b0FycmF5KHNjaGVtYXMpO1xuICB0eXBlcyA9IGNvbW1vbi50b0FycmF5KHR5cGVzKTtcblxuICBpZiAoIXNjaGVtYXMuZXZlcnkoZnVuY3Rpb24gKHNjaGVtYSkgeyByZXR1cm4gc2NoZW1hIGluc3RhbmNlb2YgU2NoZW1hOyB9KSkge1xuICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdTcGVjaWZpZWQgbGlzdCBvZiBzdXBlciBzY2hlbWFzIChvciBhIHNpbmdsZSBTY2hlbWEgb2JqZWN0KSBjb250YWlucyBhIG5vbi1TY2hlbWEgb2JqZWN0LicpO1xuICB9XG5cbiAgaWYgKCF0eXBlcy5ldmVyeShmdW5jdGlvbiAodHlwZSkgeyByZXR1cm4gdHlwZSBpbnN0YW5jZW9mIFR5cGU7IH0pKSB7XG4gICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ1NwZWNpZmllZCBsaXN0IG9mIFlBTUwgdHlwZXMgKG9yIGEgc2luZ2xlIFR5cGUgb2JqZWN0KSBjb250YWlucyBhIG5vbi1UeXBlIG9iamVjdC4nKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgU2NoZW1hKHtcbiAgICBpbmNsdWRlOiBzY2hlbWFzLFxuICAgIGV4cGxpY2l0OiB0eXBlc1xuICB9KTtcbn07XG5cblxubW9kdWxlLmV4cG9ydHMgPSBTY2hlbWE7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c3RyJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgY29uc3RydWN0OiBmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiAnJzsgfVxufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c2VxJywge1xuICBraW5kOiAnc2VxdWVuY2UnLFxuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBkYXRhICE9PSBudWxsID8gZGF0YSA6IFtdOyB9XG59KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjptYXAnLCB7XG4gIGtpbmQ6ICdtYXBwaW5nJyxcbiAgY29uc3RydWN0OiBmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiB7fTsgfVxufSk7XG4iLCAiLy8gU3RhbmRhcmQgWUFNTCdzIEZhaWxzYWZlIHNjaGVtYS5cbi8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjgwMjM0NlxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2NoZW1hKHtcbiAgZXhwbGljaXQ6IFtcbiAgICByZXF1aXJlKCcuLi90eXBlL3N0cicpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvc2VxJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9tYXAnKVxuICBdXG59KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbE51bGwoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7XG5cbiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoO1xuXG4gIHJldHVybiAobWF4ID09PSAxICYmIGRhdGEgPT09ICd+JykgfHxcbiAgICAgICAgIChtYXggPT09IDQgJiYgKGRhdGEgPT09ICdudWxsJyB8fCBkYXRhID09PSAnTnVsbCcgfHwgZGF0YSA9PT0gJ05VTEwnKSk7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxOdWxsKCkge1xuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNOdWxsKG9iamVjdCkge1xuICByZXR1cm4gb2JqZWN0ID09PSBudWxsO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpudWxsJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxOdWxsLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxOdWxsLFxuICBwcmVkaWNhdGU6IGlzTnVsbCxcbiAgcmVwcmVzZW50OiB7XG4gICAgY2Fub25pY2FsOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnfic7ICAgIH0sXG4gICAgbG93ZXJjYXNlOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnbnVsbCc7IH0sXG4gICAgdXBwZXJjYXNlOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnTlVMTCc7IH0sXG4gICAgY2FtZWxjYXNlOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnTnVsbCc7IH1cbiAgfSxcbiAgZGVmYXVsdFN0eWxlOiAnbG93ZXJjYXNlJ1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxCb29sZWFuKGRhdGEpIHtcbiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiBmYWxzZTtcblxuICB2YXIgbWF4ID0gZGF0YS5sZW5ndGg7XG5cbiAgcmV0dXJuIChtYXggPT09IDQgJiYgKGRhdGEgPT09ICd0cnVlJyB8fCBkYXRhID09PSAnVHJ1ZScgfHwgZGF0YSA9PT0gJ1RSVUUnKSkgfHxcbiAgICAgICAgIChtYXggPT09IDUgJiYgKGRhdGEgPT09ICdmYWxzZScgfHwgZGF0YSA9PT0gJ0ZhbHNlJyB8fCBkYXRhID09PSAnRkFMU0UnKSk7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxCb29sZWFuKGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEgPT09ICd0cnVlJyB8fFxuICAgICAgICAgZGF0YSA9PT0gJ1RydWUnIHx8XG4gICAgICAgICBkYXRhID09PSAnVFJVRSc7XG59XG5cbmZ1bmN0aW9uIGlzQm9vbGVhbihvYmplY3QpIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpID09PSAnW29iamVjdCBCb29sZWFuXSc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOmJvb2wnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEJvb2xlYW4sXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEJvb2xlYW4sXG4gIHByZWRpY2F0ZTogaXNCb29sZWFuLFxuICByZXByZXNlbnQ6IHtcbiAgICBsb3dlcmNhc2U6IGZ1bmN0aW9uIChvYmplY3QpIHsgcmV0dXJuIG9iamVjdCA/ICd0cnVlJyA6ICdmYWxzZSc7IH0sXG4gICAgdXBwZXJjYXNlOiBmdW5jdGlvbiAob2JqZWN0KSB7IHJldHVybiBvYmplY3QgPyAnVFJVRScgOiAnRkFMU0UnOyB9LFxuICAgIGNhbWVsY2FzZTogZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gb2JqZWN0ID8gJ1RydWUnIDogJ0ZhbHNlJzsgfVxuICB9LFxuICBkZWZhdWx0U3R5bGU6ICdsb3dlcmNhc2UnXG59KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBjb21tb24gPSByZXF1aXJlKCcuLi9jb21tb24nKTtcbnZhciBUeXBlICAgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbmZ1bmN0aW9uIGlzSGV4Q29kZShjKSB7XG4gIHJldHVybiAoKDB4MzAvKiAwICovIDw9IGMpICYmIChjIDw9IDB4MzkvKiA5ICovKSkgfHxcbiAgICAgICAgICgoMHg0MS8qIEEgKi8gPD0gYykgJiYgKGMgPD0gMHg0Ni8qIEYgKi8pKSB8fFxuICAgICAgICAgKCgweDYxLyogYSAqLyA8PSBjKSAmJiAoYyA8PSAweDY2LyogZiAqLykpO1xufVxuXG5mdW5jdGlvbiBpc09jdENvZGUoYykge1xuICByZXR1cm4gKCgweDMwLyogMCAqLyA8PSBjKSAmJiAoYyA8PSAweDM3LyogNyAqLykpO1xufVxuXG5mdW5jdGlvbiBpc0RlY0NvZGUoYykge1xuICByZXR1cm4gKCgweDMwLyogMCAqLyA8PSBjKSAmJiAoYyA8PSAweDM5LyogOSAqLykpO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlWWFtbEludGVnZXIoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gIHZhciBtYXggPSBkYXRhLmxlbmd0aCxcbiAgICAgIGluZGV4ID0gMCxcbiAgICAgIGhhc0RpZ2l0cyA9IGZhbHNlLFxuICAgICAgY2g7XG5cbiAgaWYgKCFtYXgpIHJldHVybiBmYWxzZTtcblxuICBjaCA9IGRhdGFbaW5kZXhdO1xuXG4gIC8vIHNpZ25cbiAgaWYgKGNoID09PSAnLScgfHwgY2ggPT09ICcrJykge1xuICAgIGNoID0gZGF0YVsrK2luZGV4XTtcbiAgfVxuXG4gIGlmIChjaCA9PT0gJzAnKSB7XG4gICAgLy8gMFxuICAgIGlmIChpbmRleCArIDEgPT09IG1heCkgcmV0dXJuIHRydWU7XG4gICAgY2ggPSBkYXRhWysraW5kZXhdO1xuXG4gICAgLy8gYmFzZSAyLCBiYXNlIDgsIGJhc2UgMTZcblxuICAgIGlmIChjaCA9PT0gJ2InKSB7XG4gICAgICAvLyBiYXNlIDJcbiAgICAgIGluZGV4Kys7XG5cbiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykge1xuICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICBpZiAoY2ggPT09ICdfJykgY29udGludWU7XG4gICAgICAgIGlmIChjaCAhPT0gJzAnICYmIGNoICE9PSAnMScpIHJldHVybiBmYWxzZTtcbiAgICAgICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNEaWdpdHMgJiYgY2ggIT09ICdfJztcbiAgICB9XG5cblxuICAgIGlmIChjaCA9PT0gJ3gnKSB7XG4gICAgICAvLyBiYXNlIDE2XG4gICAgICBpbmRleCsrO1xuXG4gICAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHtcbiAgICAgICAgY2ggPSBkYXRhW2luZGV4XTtcbiAgICAgICAgaWYgKGNoID09PSAnXycpIGNvbnRpbnVlO1xuICAgICAgICBpZiAoIWlzSGV4Q29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0RpZ2l0cyAmJiBjaCAhPT0gJ18nO1xuICAgIH1cblxuICAgIC8vIGJhc2UgOFxuICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykge1xuICAgICAgY2ggPSBkYXRhW2luZGV4XTtcbiAgICAgIGlmIChjaCA9PT0gJ18nKSBjb250aW51ZTtcbiAgICAgIGlmICghaXNPY3RDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSByZXR1cm4gZmFsc2U7XG4gICAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gaGFzRGlnaXRzICYmIGNoICE9PSAnXyc7XG4gIH1cblxuICAvLyBiYXNlIDEwIChleGNlcHQgMCkgb3IgYmFzZSA2MFxuXG4gIC8vIHZhbHVlIHNob3VsZCBub3Qgc3RhcnQgd2l0aCBgX2A7XG4gIGlmIChjaCA9PT0gJ18nKSByZXR1cm4gZmFsc2U7XG5cbiAgZm9yICg7IGluZGV4IDwgbWF4OyBpbmRleCsrKSB7XG4gICAgY2ggPSBkYXRhW2luZGV4XTtcbiAgICBpZiAoY2ggPT09ICdfJykgY29udGludWU7XG4gICAgaWYgKGNoID09PSAnOicpIGJyZWFrO1xuICAgIGlmICghaXNEZWNDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGhhc0RpZ2l0cyA9IHRydWU7XG4gIH1cblxuICAvLyBTaG91bGQgaGF2ZSBkaWdpdHMgYW5kIHNob3VsZCBub3QgZW5kIHdpdGggYF9gXG4gIGlmICghaGFzRGlnaXRzIHx8IGNoID09PSAnXycpIHJldHVybiBmYWxzZTtcblxuICAvLyBpZiAhYmFzZTYwIC0gZG9uZTtcbiAgaWYgKGNoICE9PSAnOicpIHJldHVybiB0cnVlO1xuXG4gIC8vIGJhc2U2MCBhbG1vc3Qgbm90IHVzZWQsIG5vIG5lZWRzIHRvIG9wdGltaXplXG4gIHJldHVybiAvXig6WzAtNV0/WzAtOV0pKyQvLnRlc3QoZGF0YS5zbGljZShpbmRleCkpO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sSW50ZWdlcihkYXRhKSB7XG4gIHZhciB2YWx1ZSA9IGRhdGEsIHNpZ24gPSAxLCBjaCwgYmFzZSwgZGlnaXRzID0gW107XG5cbiAgaWYgKHZhbHVlLmluZGV4T2YoJ18nKSAhPT0gLTEpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL18vZywgJycpO1xuICB9XG5cbiAgY2ggPSB2YWx1ZVswXTtcblxuICBpZiAoY2ggPT09ICctJyB8fCBjaCA9PT0gJysnKSB7XG4gICAgaWYgKGNoID09PSAnLScpIHNpZ24gPSAtMTtcbiAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDEpO1xuICAgIGNoID0gdmFsdWVbMF07XG4gIH1cblxuICBpZiAodmFsdWUgPT09ICcwJykgcmV0dXJuIDA7XG5cbiAgaWYgKGNoID09PSAnMCcpIHtcbiAgICBpZiAodmFsdWVbMV0gPT09ICdiJykgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMik7XG4gICAgaWYgKHZhbHVlWzFdID09PSAneCcpIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUsIDE2KTtcbiAgICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCA4KTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5pbmRleE9mKCc6JykgIT09IC0xKSB7XG4gICAgdmFsdWUuc3BsaXQoJzonKS5mb3JFYWNoKGZ1bmN0aW9uICh2KSB7XG4gICAgICBkaWdpdHMudW5zaGlmdChwYXJzZUludCh2LCAxMCkpO1xuICAgIH0pO1xuXG4gICAgdmFsdWUgPSAwO1xuICAgIGJhc2UgPSAxO1xuXG4gICAgZGlnaXRzLmZvckVhY2goZnVuY3Rpb24gKGQpIHtcbiAgICAgIHZhbHVlICs9IChkICogYmFzZSk7XG4gICAgICBiYXNlICo9IDYwO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNpZ24gKiB2YWx1ZTtcblxuICB9XG5cbiAgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZSwgMTApO1xufVxuXG5mdW5jdGlvbiBpc0ludGVnZXIob2JqZWN0KSB7XG4gIHJldHVybiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkpID09PSAnW29iamVjdCBOdW1iZXJdJyAmJlxuICAgICAgICAgKG9iamVjdCAlIDEgPT09IDAgJiYgIWNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6aW50Jywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxJbnRlZ2VyLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxJbnRlZ2VyLFxuICBwcmVkaWNhdGU6IGlzSW50ZWdlcixcbiAgcmVwcmVzZW50OiB7XG4gICAgYmluYXJ5OiAgICAgIGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiA+PSAwID8gJzBiJyArIG9iai50b1N0cmluZygyKSA6ICctMGInICsgb2JqLnRvU3RyaW5nKDIpLnNsaWNlKDEpOyB9LFxuICAgIG9jdGFsOiAgICAgICBmdW5jdGlvbiAob2JqKSB7IHJldHVybiBvYmogPj0gMCA/ICcwJyAgKyBvYmoudG9TdHJpbmcoOCkgOiAnLTAnICArIG9iai50b1N0cmluZyg4KS5zbGljZSgxKTsgfSxcbiAgICBkZWNpbWFsOiAgICAgZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqLnRvU3RyaW5nKDEwKTsgfSxcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG4gICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiA+PSAwID8gJzB4JyArIG9iai50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSA6ICAnLTB4JyArIG9iai50b1N0cmluZygxNikudG9VcHBlckNhc2UoKS5zbGljZSgxKTsgfVxuICB9LFxuICBkZWZhdWx0U3R5bGU6ICdkZWNpbWFsJyxcbiAgc3R5bGVBbGlhc2VzOiB7XG4gICAgYmluYXJ5OiAgICAgIFsgMiwgICdiaW4nIF0sXG4gICAgb2N0YWw6ICAgICAgIFsgOCwgICdvY3QnIF0sXG4gICAgZGVjaW1hbDogICAgIFsgMTAsICdkZWMnIF0sXG4gICAgaGV4YWRlY2ltYWw6IFsgMTYsICdoZXgnIF1cbiAgfVxufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY29tbW9uID0gcmVxdWlyZSgnLi4vY29tbW9uJyk7XG52YXIgVHlwZSAgID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG52YXIgWUFNTF9GTE9BVF9QQVRURVJOID0gbmV3IFJlZ0V4cChcbiAgLy8gMi41ZTQsIDIuNSBhbmQgaW50ZWdlcnNcbiAgJ14oPzpbLStdPyg/OjB8WzEtOV1bMC05X10qKSg/OlxcXFwuWzAtOV9dKik/KD86W2VFXVstK10/WzAtOV0rKT8nICtcbiAgLy8gLjJlNCwgLjJcbiAgLy8gc3BlY2lhbCBjYXNlLCBzZWVtcyBub3QgZnJvbSBzcGVjXG4gICd8XFxcXC5bMC05X10rKD86W2VFXVstK10/WzAtOV0rKT8nICtcbiAgLy8gMjA6NTlcbiAgJ3xbLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrXFxcXC5bMC05X10qJyArXG4gIC8vIC5pbmZcbiAgJ3xbLStdP1xcXFwuKD86aW5mfEluZnxJTkYpJyArXG4gIC8vIC5uYW5cbiAgJ3xcXFxcLig/Om5hbnxOYU58TkFOKSkkJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sRmxvYXQoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICghWUFNTF9GTE9BVF9QQVRURVJOLnRlc3QoZGF0YSkgfHxcbiAgICAgIC8vIFF1aWNrIGhhY2sgdG8gbm90IGFsbG93IGludGVnZXJzIGVuZCB3aXRoIGBfYFxuICAgICAgLy8gUHJvYmFibHkgc2hvdWxkIHVwZGF0ZSByZWdleHAgJiBjaGVjayBzcGVlZFxuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdID09PSAnXycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbEZsb2F0KGRhdGEpIHtcbiAgdmFyIHZhbHVlLCBzaWduLCBiYXNlLCBkaWdpdHM7XG5cbiAgdmFsdWUgID0gZGF0YS5yZXBsYWNlKC9fL2csICcnKS50b0xvd2VyQ2FzZSgpO1xuICBzaWduICAgPSB2YWx1ZVswXSA9PT0gJy0nID8gLTEgOiAxO1xuICBkaWdpdHMgPSBbXTtcblxuICBpZiAoJystJy5pbmRleE9mKHZhbHVlWzBdKSA+PSAwKSB7XG4gICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgfVxuXG4gIGlmICh2YWx1ZSA9PT0gJy5pbmYnKSB7XG4gICAgcmV0dXJuIChzaWduID09PSAxKSA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTtcblxuICB9IGVsc2UgaWYgKHZhbHVlID09PSAnLm5hbicpIHtcbiAgICByZXR1cm4gTmFOO1xuXG4gIH0gZWxzZSBpZiAodmFsdWUuaW5kZXhPZignOicpID49IDApIHtcbiAgICB2YWx1ZS5zcGxpdCgnOicpLmZvckVhY2goZnVuY3Rpb24gKHYpIHtcbiAgICAgIGRpZ2l0cy51bnNoaWZ0KHBhcnNlRmxvYXQodiwgMTApKTtcbiAgICB9KTtcblxuICAgIHZhbHVlID0gMC4wO1xuICAgIGJhc2UgPSAxO1xuXG4gICAgZGlnaXRzLmZvckVhY2goZnVuY3Rpb24gKGQpIHtcbiAgICAgIHZhbHVlICs9IGQgKiBiYXNlO1xuICAgICAgYmFzZSAqPSA2MDtcbiAgICB9KTtcblxuICAgIHJldHVybiBzaWduICogdmFsdWU7XG5cbiAgfVxuICByZXR1cm4gc2lnbiAqIHBhcnNlRmxvYXQodmFsdWUsIDEwKTtcbn1cblxuXG52YXIgU0NJRU5USUZJQ19XSVRIT1VUX0RPVCA9IC9eWy0rXT9bMC05XStlLztcblxuZnVuY3Rpb24gcmVwcmVzZW50WWFtbEZsb2F0KG9iamVjdCwgc3R5bGUpIHtcbiAgdmFyIHJlcztcblxuICBpZiAoaXNOYU4ob2JqZWN0KSkge1xuICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgIGNhc2UgJ2xvd2VyY2FzZSc6IHJldHVybiAnLm5hbic7XG4gICAgICBjYXNlICd1cHBlcmNhc2UnOiByZXR1cm4gJy5OQU4nO1xuICAgICAgY2FzZSAnY2FtZWxjYXNlJzogcmV0dXJuICcuTmFOJztcbiAgICB9XG4gIH0gZWxzZSBpZiAoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZID09PSBvYmplY3QpIHtcbiAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgICBjYXNlICdsb3dlcmNhc2UnOiByZXR1cm4gJy5pbmYnO1xuICAgICAgY2FzZSAndXBwZXJjYXNlJzogcmV0dXJuICcuSU5GJztcbiAgICAgIGNhc2UgJ2NhbWVsY2FzZSc6IHJldHVybiAnLkluZic7XG4gICAgfVxuICB9IGVsc2UgaWYgKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSA9PT0gb2JqZWN0KSB7XG4gICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgY2FzZSAnbG93ZXJjYXNlJzogcmV0dXJuICctLmluZic7XG4gICAgICBjYXNlICd1cHBlcmNhc2UnOiByZXR1cm4gJy0uSU5GJztcbiAgICAgIGNhc2UgJ2NhbWVsY2FzZSc6IHJldHVybiAnLS5JbmYnO1xuICAgIH1cbiAgfSBlbHNlIGlmIChjb21tb24uaXNOZWdhdGl2ZVplcm8ob2JqZWN0KSkge1xuICAgIHJldHVybiAnLTAuMCc7XG4gIH1cblxuICByZXMgPSBvYmplY3QudG9TdHJpbmcoMTApO1xuXG4gIC8vIEpTIHN0cmluZ2lmaWVyIGNhbiBidWlsZCBzY2llbnRpZmljIGZvcm1hdCB3aXRob3V0IGRvdHM6IDVlLTEwMCxcbiAgLy8gd2hpbGUgWUFNTCByZXF1cmVzIGRvdDogNS5lLTEwMC4gRml4IGl0IHdpdGggc2ltcGxlIGhhY2tcblxuICByZXR1cm4gU0NJRU5USUZJQ19XSVRIT1VUX0RPVC50ZXN0KHJlcykgPyByZXMucmVwbGFjZSgnZScsICcuZScpIDogcmVzO1xufVxuXG5mdW5jdGlvbiBpc0Zsb2F0KG9iamVjdCkge1xuICByZXR1cm4gKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpID09PSAnW29iamVjdCBOdW1iZXJdJykgJiZcbiAgICAgICAgIChvYmplY3QgJSAxICE9PSAwIHx8IGNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEZsb2F0LFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxGbG9hdCxcbiAgcHJlZGljYXRlOiBpc0Zsb2F0LFxuICByZXByZXNlbnQ6IHJlcHJlc2VudFlhbWxGbG9hdCxcbiAgZGVmYXVsdFN0eWxlOiAnbG93ZXJjYXNlJ1xufSk7XG4iLCAiLy8gU3RhbmRhcmQgWUFNTCdzIEpTT04gc2NoZW1hLlxuLy8gaHR0cDovL3d3dy55YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjaWQyODAzMjMxXG4vL1xuLy8gTk9URTogSlMtWUFNTCBkb2VzIG5vdCBzdXBwb3J0IHNjaGVtYS1zcGVjaWZpYyB0YWcgcmVzb2x1dGlvbiByZXN0cmljdGlvbnMuXG4vLyBTbywgdGhpcyBzY2hlbWEgaXMgbm90IHN1Y2ggc3RyaWN0IGFzIGRlZmluZWQgaW4gdGhlIFlBTUwgc3BlY2lmaWNhdGlvbi5cbi8vIEl0IGFsbG93cyBudW1iZXJzIGluIGJpbmFyeSBub3RhaW9uLCB1c2UgYE51bGxgIGFuZCBgTlVMTGAgYXMgYG51bGxgLCBldGMuXG5cblxuJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuLi9zY2hlbWEnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBTY2hlbWEoe1xuICBpbmNsdWRlOiBbXG4gICAgcmVxdWlyZSgnLi9mYWlsc2FmZScpXG4gIF0sXG4gIGltcGxpY2l0OiBbXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9udWxsJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9ib29sJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9pbnQnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL2Zsb2F0JylcbiAgXVxufSk7XG4iLCAiLy8gU3RhbmRhcmQgWUFNTCdzIENvcmUgc2NoZW1hLlxuLy8gaHR0cDovL3d3dy55YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjaWQyODA0OTIzXG4vL1xuLy8gTk9URTogSlMtWUFNTCBkb2VzIG5vdCBzdXBwb3J0IHNjaGVtYS1zcGVjaWZpYyB0YWcgcmVzb2x1dGlvbiByZXN0cmljdGlvbnMuXG4vLyBTbywgQ29yZSBzY2hlbWEgaGFzIG5vIGRpc3RpbmN0aW9ucyBmcm9tIEpTT04gc2NoZW1hIGlzIEpTLVlBTUwuXG5cblxuJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuLi9zY2hlbWEnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBTY2hlbWEoe1xuICBpbmNsdWRlOiBbXG4gICAgcmVxdWlyZSgnLi9qc29uJylcbiAgXVxufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxudmFyIFlBTUxfREFURV9SRUdFWFAgPSBuZXcgUmVnRXhwKFxuICAnXihbMC05XVswLTldWzAtOV1bMC05XSknICAgICAgICAgICsgLy8gWzFdIHllYXJcbiAgJy0oWzAtOV1bMC05XSknICAgICAgICAgICAgICAgICAgICArIC8vIFsyXSBtb250aFxuICAnLShbMC05XVswLTldKSQnKTsgICAgICAgICAgICAgICAgICAgLy8gWzNdIGRheVxuXG52YXIgWUFNTF9USU1FU1RBTVBfUkVHRVhQID0gbmV3IFJlZ0V4cChcbiAgJ14oWzAtOV1bMC05XVswLTldWzAtOV0pJyAgICAgICAgICArIC8vIFsxXSB5ZWFyXG4gICctKFswLTldWzAtOV0/KScgICAgICAgICAgICAgICAgICAgKyAvLyBbMl0gbW9udGhcbiAgJy0oWzAtOV1bMC05XT8pJyAgICAgICAgICAgICAgICAgICArIC8vIFszXSBkYXlcbiAgJyg/OltUdF18WyBcXFxcdF0rKScgICAgICAgICAgICAgICAgICsgLy8gLi4uXG4gICcoWzAtOV1bMC05XT8pJyAgICAgICAgICAgICAgICAgICAgKyAvLyBbNF0gaG91clxuICAnOihbMC05XVswLTldKScgICAgICAgICAgICAgICAgICAgICsgLy8gWzVdIG1pbnV0ZVxuICAnOihbMC05XVswLTldKScgICAgICAgICAgICAgICAgICAgICsgLy8gWzZdIHNlY29uZFxuICAnKD86XFxcXC4oWzAtOV0qKSk/JyAgICAgICAgICAgICAgICAgKyAvLyBbN10gZnJhY3Rpb25cbiAgJyg/OlsgXFxcXHRdKihafChbLStdKShbMC05XVswLTldPyknICsgLy8gWzhdIHR6IFs5XSB0el9zaWduIFsxMF0gdHpfaG91clxuICAnKD86OihbMC05XVswLTldKSk/KSk/JCcpOyAgICAgICAgICAgLy8gWzExXSB0el9taW51dGVcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxUaW1lc3RhbXAoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoWUFNTF9EQVRFX1JFR0VYUC5leGVjKGRhdGEpICE9PSBudWxsKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKFlBTUxfVElNRVNUQU1QX1JFR0VYUC5leGVjKGRhdGEpICE9PSBudWxsKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sVGltZXN0YW1wKGRhdGEpIHtcbiAgdmFyIG1hdGNoLCB5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgZnJhY3Rpb24gPSAwLFxuICAgICAgZGVsdGEgPSBudWxsLCB0el9ob3VyLCB0el9taW51dGUsIGRhdGU7XG5cbiAgbWF0Y2ggPSBZQU1MX0RBVEVfUkVHRVhQLmV4ZWMoZGF0YSk7XG4gIGlmIChtYXRjaCA9PT0gbnVsbCkgbWF0Y2ggPSBZQU1MX1RJTUVTVEFNUF9SRUdFWFAuZXhlYyhkYXRhKTtcblxuICBpZiAobWF0Y2ggPT09IG51bGwpIHRocm93IG5ldyBFcnJvcignRGF0ZSByZXNvbHZlIGVycm9yJyk7XG5cbiAgLy8gbWF0Y2g6IFsxXSB5ZWFyIFsyXSBtb250aCBbM10gZGF5XG5cbiAgeWVhciA9ICsobWF0Y2hbMV0pO1xuICBtb250aCA9ICsobWF0Y2hbMl0pIC0gMTsgLy8gSlMgbW9udGggc3RhcnRzIHdpdGggMFxuICBkYXkgPSArKG1hdGNoWzNdKTtcblxuICBpZiAoIW1hdGNoWzRdKSB7IC8vIG5vIGhvdXJcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSkpO1xuICB9XG5cbiAgLy8gbWF0Y2g6IFs0XSBob3VyIFs1XSBtaW51dGUgWzZdIHNlY29uZCBbN10gZnJhY3Rpb25cblxuICBob3VyID0gKyhtYXRjaFs0XSk7XG4gIG1pbnV0ZSA9ICsobWF0Y2hbNV0pO1xuICBzZWNvbmQgPSArKG1hdGNoWzZdKTtcblxuICBpZiAobWF0Y2hbN10pIHtcbiAgICBmcmFjdGlvbiA9IG1hdGNoWzddLnNsaWNlKDAsIDMpO1xuICAgIHdoaWxlIChmcmFjdGlvbi5sZW5ndGggPCAzKSB7IC8vIG1pbGxpLXNlY29uZHNcbiAgICAgIGZyYWN0aW9uICs9ICcwJztcbiAgICB9XG4gICAgZnJhY3Rpb24gPSArZnJhY3Rpb247XG4gIH1cblxuICAvLyBtYXRjaDogWzhdIHR6IFs5XSB0el9zaWduIFsxMF0gdHpfaG91ciBbMTFdIHR6X21pbnV0ZVxuXG4gIGlmIChtYXRjaFs5XSkge1xuICAgIHR6X2hvdXIgPSArKG1hdGNoWzEwXSk7XG4gICAgdHpfbWludXRlID0gKyhtYXRjaFsxMV0gfHwgMCk7XG4gICAgZGVsdGEgPSAodHpfaG91ciAqIDYwICsgdHpfbWludXRlKSAqIDYwMDAwOyAvLyBkZWx0YSBpbiBtaWxpLXNlY29uZHNcbiAgICBpZiAobWF0Y2hbOV0gPT09ICctJykgZGVsdGEgPSAtZGVsdGE7XG4gIH1cblxuICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uKSk7XG5cbiAgaWYgKGRlbHRhKSBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgLSBkZWx0YSk7XG5cbiAgcmV0dXJuIGRhdGU7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxUaW1lc3RhbXAob2JqZWN0IC8qLCBzdHlsZSovKSB7XG4gIHJldHVybiBvYmplY3QudG9JU09TdHJpbmcoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxUaW1lc3RhbXAsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbFRpbWVzdGFtcCxcbiAgaW5zdGFuY2VPZjogRGF0ZSxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sVGltZXN0YW1wXG59KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbE1lcmdlKGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEgPT09ICc8PCcgfHwgZGF0YSA9PT0gbnVsbDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbE1lcmdlXG59KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qZXNsaW50LWRpc2FibGUgbm8tYml0d2lzZSovXG5cbnZhciBOb2RlQnVmZmVyO1xuXG50cnkge1xuICAvLyBBIHRyaWNrIGZvciBicm93c2VyaWZpZWQgdmVyc2lvbiwgdG8gbm90IGluY2x1ZGUgYEJ1ZmZlcmAgc2hpbVxuICB2YXIgX3JlcXVpcmUgPSByZXF1aXJlO1xuICBOb2RlQnVmZmVyID0gX3JlcXVpcmUoJ2J1ZmZlcicpLkJ1ZmZlcjtcbn0gY2F0Y2ggKF9fKSB7fVxuXG52YXIgVHlwZSAgICAgICA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxuXG4vLyBbIDY0LCA2NSwgNjYgXSAtPiBbIHBhZGRpbmcsIENSLCBMRiBdXG52YXIgQkFTRTY0X01BUCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVxcblxccic7XG5cblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxCaW5hcnkoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gIHZhciBjb2RlLCBpZHgsIGJpdGxlbiA9IDAsIG1heCA9IGRhdGEubGVuZ3RoLCBtYXAgPSBCQVNFNjRfTUFQO1xuXG4gIC8vIENvbnZlcnQgb25lIGJ5IG9uZS5cbiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7XG4gICAgY29kZSA9IG1hcC5pbmRleE9mKGRhdGEuY2hhckF0KGlkeCkpO1xuXG4gICAgLy8gU2tpcCBDUi9MRlxuICAgIGlmIChjb2RlID4gNjQpIGNvbnRpbnVlO1xuXG4gICAgLy8gRmFpbCBvbiBpbGxlZ2FsIGNoYXJhY3RlcnNcbiAgICBpZiAoY29kZSA8IDApIHJldHVybiBmYWxzZTtcblxuICAgIGJpdGxlbiArPSA2O1xuICB9XG5cbiAgLy8gSWYgdGhlcmUgYXJlIGFueSBiaXRzIGxlZnQsIHNvdXJjZSB3YXMgY29ycnVwdGVkXG4gIHJldHVybiAoYml0bGVuICUgOCkgPT09IDA7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxCaW5hcnkoZGF0YSkge1xuICB2YXIgaWR4LCB0YWlsYml0cyxcbiAgICAgIGlucHV0ID0gZGF0YS5yZXBsYWNlKC9bXFxyXFxuPV0vZywgJycpLCAvLyByZW1vdmUgQ1IvTEYgJiBwYWRkaW5nIHRvIHNpbXBsaWZ5IHNjYW5cbiAgICAgIG1heCA9IGlucHV0Lmxlbmd0aCxcbiAgICAgIG1hcCA9IEJBU0U2NF9NQVAsXG4gICAgICBiaXRzID0gMCxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIC8vIENvbGxlY3QgYnkgNio0IGJpdHMgKDMgYnl0ZXMpXG5cbiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7XG4gICAgaWYgKChpZHggJSA0ID09PSAwKSAmJiBpZHgpIHtcbiAgICAgIHJlc3VsdC5wdXNoKChiaXRzID4+IDE2KSAmIDB4RkYpO1xuICAgICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gOCkgJiAweEZGKTtcbiAgICAgIHJlc3VsdC5wdXNoKGJpdHMgJiAweEZGKTtcbiAgICB9XG5cbiAgICBiaXRzID0gKGJpdHMgPDwgNikgfCBtYXAuaW5kZXhPZihpbnB1dC5jaGFyQXQoaWR4KSk7XG4gIH1cblxuICAvLyBEdW1wIHRhaWxcblxuICB0YWlsYml0cyA9IChtYXggJSA0KSAqIDY7XG5cbiAgaWYgKHRhaWxiaXRzID09PSAwKSB7XG4gICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gMTYpICYgMHhGRik7XG4gICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gOCkgJiAweEZGKTtcbiAgICByZXN1bHQucHVzaChiaXRzICYgMHhGRik7XG4gIH0gZWxzZSBpZiAodGFpbGJpdHMgPT09IDE4KSB7XG4gICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gMTApICYgMHhGRik7XG4gICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gMikgJiAweEZGKTtcbiAgfSBlbHNlIGlmICh0YWlsYml0cyA9PT0gMTIpIHtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiA0KSAmIDB4RkYpO1xuICB9XG5cbiAgLy8gV3JhcCBpbnRvIEJ1ZmZlciBmb3IgTm9kZUpTIGFuZCBsZWF2ZSBBcnJheSBmb3IgYnJvd3NlclxuICBpZiAoTm9kZUJ1ZmZlcikge1xuICAgIC8vIFN1cHBvcnQgbm9kZSA2LisgQnVmZmVyIEFQSSB3aGVuIGF2YWlsYWJsZVxuICAgIHJldHVybiBOb2RlQnVmZmVyLmZyb20gPyBOb2RlQnVmZmVyLmZyb20ocmVzdWx0KSA6IG5ldyBOb2RlQnVmZmVyKHJlc3VsdCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiByZXByZXNlbnRZYW1sQmluYXJ5KG9iamVjdCAvKiwgc3R5bGUqLykge1xuICB2YXIgcmVzdWx0ID0gJycsIGJpdHMgPSAwLCBpZHgsIHRhaWwsXG4gICAgICBtYXggPSBvYmplY3QubGVuZ3RoLFxuICAgICAgbWFwID0gQkFTRTY0X01BUDtcblxuICAvLyBDb252ZXJ0IGV2ZXJ5IHRocmVlIGJ5dGVzIHRvIDQgQVNDSUkgY2hhcmFjdGVycy5cblxuICBmb3IgKGlkeCA9IDA7IGlkeCA8IG1heDsgaWR4KyspIHtcbiAgICBpZiAoKGlkeCAlIDMgPT09IDApICYmIGlkeCkge1xuICAgICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxOCkgJiAweDNGXTtcbiAgICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gMTIpICYgMHgzRl07XG4gICAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDYpICYgMHgzRl07XG4gICAgICByZXN1bHQgKz0gbWFwW2JpdHMgJiAweDNGXTtcbiAgICB9XG5cbiAgICBiaXRzID0gKGJpdHMgPDwgOCkgKyBvYmplY3RbaWR4XTtcbiAgfVxuXG4gIC8vIER1bXAgdGFpbFxuXG4gIHRhaWwgPSBtYXggJSAzO1xuXG4gIGlmICh0YWlsID09PSAwKSB7XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxOCkgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDEyKSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gNikgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwW2JpdHMgJiAweDNGXTtcbiAgfSBlbHNlIGlmICh0YWlsID09PSAyKSB7XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxMCkgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDQpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA8PCAyKSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICB9IGVsc2UgaWYgKHRhaWwgPT09IDEpIHtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDIpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA8PCA0KSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gaXNCaW5hcnkob2JqZWN0KSB7XG4gIHJldHVybiBOb2RlQnVmZmVyICYmIE5vZGVCdWZmZXIuaXNCdWZmZXIob2JqZWN0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5Jywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxCaW5hcnksXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEJpbmFyeSxcbiAgcHJlZGljYXRlOiBpc0JpbmFyeSxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sQmluYXJ5XG59KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG52YXIgX2hhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfdG9TdHJpbmcgICAgICAgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbE9tYXAoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7XG5cbiAgdmFyIG9iamVjdEtleXMgPSBbXSwgaW5kZXgsIGxlbmd0aCwgcGFpciwgcGFpcktleSwgcGFpckhhc0tleSxcbiAgICAgIG9iamVjdCA9IGRhdGE7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgcGFpciA9IG9iamVjdFtpbmRleF07XG4gICAgcGFpckhhc0tleSA9IGZhbHNlO1xuXG4gICAgaWYgKF90b1N0cmluZy5jYWxsKHBhaXIpICE9PSAnW29iamVjdCBPYmplY3RdJykgcmV0dXJuIGZhbHNlO1xuXG4gICAgZm9yIChwYWlyS2V5IGluIHBhaXIpIHtcbiAgICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChwYWlyLCBwYWlyS2V5KSkge1xuICAgICAgICBpZiAoIXBhaXJIYXNLZXkpIHBhaXJIYXNLZXkgPSB0cnVlO1xuICAgICAgICBlbHNlIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXBhaXJIYXNLZXkpIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChvYmplY3RLZXlzLmluZGV4T2YocGFpcktleSkgPT09IC0xKSBvYmplY3RLZXlzLnB1c2gocGFpcktleSk7XG4gICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbE9tYXAoZGF0YSkge1xuICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiBbXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6b21hcCcsIHtcbiAga2luZDogJ3NlcXVlbmNlJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxPbWFwLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxPbWFwXG59KTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG52YXIgX3RvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxQYWlycyhkYXRhKSB7XG4gIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gdHJ1ZTtcblxuICB2YXIgaW5kZXgsIGxlbmd0aCwgcGFpciwga2V5cywgcmVzdWx0LFxuICAgICAgb2JqZWN0ID0gZGF0YTtcblxuICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgcGFpciA9IG9iamVjdFtpbmRleF07XG5cbiAgICBpZiAoX3RvU3RyaW5nLmNhbGwocGFpcikgIT09ICdbb2JqZWN0IE9iamVjdF0nKSByZXR1cm4gZmFsc2U7XG5cbiAgICBrZXlzID0gT2JqZWN0LmtleXMocGFpcik7XG5cbiAgICBpZiAoa2V5cy5sZW5ndGggIT09IDEpIHJldHVybiBmYWxzZTtcblxuICAgIHJlc3VsdFtpbmRleF0gPSBbIGtleXNbMF0sIHBhaXJba2V5c1swXV0gXTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sUGFpcnMoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIFtdO1xuXG4gIHZhciBpbmRleCwgbGVuZ3RoLCBwYWlyLCBrZXlzLCByZXN1bHQsXG4gICAgICBvYmplY3QgPSBkYXRhO1xuXG4gIHJlc3VsdCA9IG5ldyBBcnJheShvYmplY3QubGVuZ3RoKTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTtcblxuICAgIGtleXMgPSBPYmplY3Qua2V5cyhwYWlyKTtcblxuICAgIHJlc3VsdFtpbmRleF0gPSBbIGtleXNbMF0sIHBhaXJba2V5c1swXV0gXTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOnBhaXJzJywge1xuICBraW5kOiAnc2VxdWVuY2UnLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbFBhaXJzLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxQYWlyc1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxudmFyIF9oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sU2V0KGRhdGEpIHtcbiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiB0cnVlO1xuXG4gIHZhciBrZXksIG9iamVjdCA9IGRhdGE7XG5cbiAgZm9yIChrZXkgaW4gb2JqZWN0KSB7XG4gICAgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgaWYgKG9iamVjdFtrZXldICE9PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxTZXQoZGF0YSkge1xuICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiB7fTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c2V0Jywge1xuICBraW5kOiAnbWFwcGluZycsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sU2V0LFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxTZXRcbn0pO1xuIiwgIi8vIEpTLVlBTUwncyBkZWZhdWx0IHNjaGVtYSBmb3IgYHNhZmVMb2FkYCBmdW5jdGlvbi5cbi8vIEl0IGlzIG5vdCBkZXNjcmliZWQgaW4gdGhlIFlBTUwgc3BlY2lmaWNhdGlvbi5cbi8vXG4vLyBUaGlzIHNjaGVtYSBpcyBiYXNlZCBvbiBzdGFuZGFyZCBZQU1MJ3MgQ29yZSBzY2hlbWEgYW5kIGluY2x1ZGVzIG1vc3Qgb2Zcbi8vIGV4dHJhIHR5cGVzIGRlc2NyaWJlZCBhdCBZQU1MIHRhZyByZXBvc2l0b3J5LiAoaHR0cDovL3lhbWwub3JnL3R5cGUvKVxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2NoZW1hKHtcbiAgaW5jbHVkZTogW1xuICAgIHJlcXVpcmUoJy4vY29yZScpXG4gIF0sXG4gIGltcGxpY2l0OiBbXG4gICAgcmVxdWlyZSgnLi4vdHlwZS90aW1lc3RhbXAnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL21lcmdlJylcbiAgXSxcbiAgZXhwbGljaXQ6IFtcbiAgICByZXF1aXJlKCcuLi90eXBlL2JpbmFyeScpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvb21hcCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvcGFpcnMnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL3NldCcpXG4gIF1cbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi8uLi90eXBlJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVKYXZhc2NyaXB0VW5kZWZpbmVkKCkge1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0SmF2YXNjcmlwdFVuZGVmaW5lZCgpIHtcbiAgLyplc2xpbnQtZGlzYWJsZSBuby11bmRlZmluZWQqL1xuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiByZXByZXNlbnRKYXZhc2NyaXB0VW5kZWZpbmVkKCkge1xuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKG9iamVjdCkge1xuICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ3VuZGVmaW5lZCc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOmpzL3VuZGVmaW5lZCcsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVKYXZhc2NyaXB0VW5kZWZpbmVkLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdEphdmFzY3JpcHRVbmRlZmluZWQsXG4gIHByZWRpY2F0ZTogaXNVbmRlZmluZWQsXG4gIHJlcHJlc2VudDogcmVwcmVzZW50SmF2YXNjcmlwdFVuZGVmaW5lZFxufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uLy4uL3R5cGUnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZUphdmFzY3JpcHRSZWdFeHAoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcblxuICB2YXIgcmVnZXhwID0gZGF0YSxcbiAgICAgIHRhaWwgICA9IC9cXC8oW2dpbV0qKSQvLmV4ZWMoZGF0YSksXG4gICAgICBtb2RpZmllcnMgPSAnJztcblxuICAvLyBpZiByZWdleHAgc3RhcnRzIHdpdGggJy8nIGl0IGNhbiBoYXZlIG1vZGlmaWVycyBhbmQgbXVzdCBiZSBwcm9wZXJseSBjbG9zZWRcbiAgLy8gYC9mb28vZ2ltYCAtIG1vZGlmaWVycyB0YWlsIGNhbiBiZSBtYXhpbXVtIDMgY2hhcnNcbiAgaWYgKHJlZ2V4cFswXSA9PT0gJy8nKSB7XG4gICAgaWYgKHRhaWwpIG1vZGlmaWVycyA9IHRhaWxbMV07XG5cbiAgICBpZiAobW9kaWZpZXJzLmxlbmd0aCA+IDMpIHJldHVybiBmYWxzZTtcbiAgICAvLyBpZiBleHByZXNzaW9uIHN0YXJ0cyB3aXRoIC8sIGlzIHNob3VsZCBiZSBwcm9wZXJseSB0ZXJtaW5hdGVkXG4gICAgaWYgKHJlZ2V4cFtyZWdleHAubGVuZ3RoIC0gbW9kaWZpZXJzLmxlbmd0aCAtIDFdICE9PSAnLycpIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RKYXZhc2NyaXB0UmVnRXhwKGRhdGEpIHtcbiAgdmFyIHJlZ2V4cCA9IGRhdGEsXG4gICAgICB0YWlsICAgPSAvXFwvKFtnaW1dKikkLy5leGVjKGRhdGEpLFxuICAgICAgbW9kaWZpZXJzID0gJyc7XG5cbiAgLy8gYC9mb28vZ2ltYCAtIHRhaWwgY2FuIGJlIG1heGltdW0gNCBjaGFyc1xuICBpZiAocmVnZXhwWzBdID09PSAnLycpIHtcbiAgICBpZiAodGFpbCkgbW9kaWZpZXJzID0gdGFpbFsxXTtcbiAgICByZWdleHAgPSByZWdleHAuc2xpY2UoMSwgcmVnZXhwLmxlbmd0aCAtIG1vZGlmaWVycy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVnRXhwKHJlZ2V4cCwgbW9kaWZpZXJzKTtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50SmF2YXNjcmlwdFJlZ0V4cChvYmplY3QgLyosIHN0eWxlKi8pIHtcbiAgdmFyIHJlc3VsdCA9ICcvJyArIG9iamVjdC5zb3VyY2UgKyAnLyc7XG5cbiAgaWYgKG9iamVjdC5nbG9iYWwpIHJlc3VsdCArPSAnZyc7XG4gIGlmIChvYmplY3QubXVsdGlsaW5lKSByZXN1bHQgKz0gJ20nO1xuICBpZiAob2JqZWN0Lmlnbm9yZUNhc2UpIHJlc3VsdCArPSAnaSc7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gaXNSZWdFeHAob2JqZWN0KSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gJ1tvYmplY3QgUmVnRXhwXSc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOmpzL3JlZ2V4cCcsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVKYXZhc2NyaXB0UmVnRXhwLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdEphdmFzY3JpcHRSZWdFeHAsXG4gIHByZWRpY2F0ZTogaXNSZWdFeHAsXG4gIHJlcHJlc2VudDogcmVwcmVzZW50SmF2YXNjcmlwdFJlZ0V4cFxufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZXNwcmltYTtcblxuLy8gQnJvd3NlcmlmaWVkIHZlcnNpb24gZG9lcyBub3QgaGF2ZSBlc3ByaW1hXG4vL1xuLy8gMS4gRm9yIG5vZGUuanMganVzdCByZXF1aXJlIG1vZHVsZSBhcyBkZXBzXG4vLyAyLiBGb3IgYnJvd3NlciB0cnkgdG8gcmVxdWlyZSBtdWR1bGUgdmlhIGV4dGVybmFsIEFNRCBzeXN0ZW0uXG4vLyAgICBJZiBub3QgZm91bmQgLSB0cnkgdG8gZmFsbGJhY2sgdG8gd2luZG93LmVzcHJpbWEuIElmIG5vdFxuLy8gICAgZm91bmQgdG9vIC0gdGhlbiBmYWlsIHRvIHBhcnNlLlxuLy9cbnRyeSB7XG4gIC8vIHdvcmthcm91bmQgdG8gZXhjbHVkZSBwYWNrYWdlIGZyb20gYnJvd3NlcmlmeSBsaXN0LlxuICB2YXIgX3JlcXVpcmUgPSByZXF1aXJlO1xuICBlc3ByaW1hID0gX3JlcXVpcmUoJ2VzcHJpbWEnKTtcbn0gY2F0Y2ggKF8pIHtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tcmVkZWNsYXJlICovXG4gIC8qIGdsb2JhbCB3aW5kb3cgKi9cbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSBlc3ByaW1hID0gd2luZG93LmVzcHJpbWE7XG59XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vLi4vdHlwZScpO1xuXG5mdW5jdGlvbiByZXNvbHZlSmF2YXNjcmlwdEZ1bmN0aW9uKGRhdGEpIHtcbiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiBmYWxzZTtcblxuICB0cnkge1xuICAgIHZhciBzb3VyY2UgPSAnKCcgKyBkYXRhICsgJyknLFxuICAgICAgICBhc3QgICAgPSBlc3ByaW1hLnBhcnNlKHNvdXJjZSwgeyByYW5nZTogdHJ1ZSB9KTtcblxuICAgIGlmIChhc3QudHlwZSAgICAgICAgICAgICAgICAgICAgIT09ICdQcm9ncmFtJyAgICAgICAgICAgICB8fFxuICAgICAgICBhc3QuYm9keS5sZW5ndGggICAgICAgICAgICAgIT09IDEgICAgICAgICAgICAgICAgICAgICB8fFxuICAgICAgICBhc3QuYm9keVswXS50eXBlICAgICAgICAgICAgIT09ICdFeHByZXNzaW9uU3RhdGVtZW50JyB8fFxuICAgICAgICAoYXN0LmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlICE9PSAnQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24nICYmXG4gICAgICAgICAgYXN0LmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlICE9PSAnRnVuY3Rpb25FeHByZXNzaW9uJykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdEphdmFzY3JpcHRGdW5jdGlvbihkYXRhKSB7XG4gIC8qanNsaW50IGV2aWw6dHJ1ZSovXG5cbiAgdmFyIHNvdXJjZSA9ICcoJyArIGRhdGEgKyAnKScsXG4gICAgICBhc3QgICAgPSBlc3ByaW1hLnBhcnNlKHNvdXJjZSwgeyByYW5nZTogdHJ1ZSB9KSxcbiAgICAgIHBhcmFtcyA9IFtdLFxuICAgICAgYm9keTtcblxuICBpZiAoYXN0LnR5cGUgICAgICAgICAgICAgICAgICAgICE9PSAnUHJvZ3JhbScgICAgICAgICAgICAgfHxcbiAgICAgIGFzdC5ib2R5Lmxlbmd0aCAgICAgICAgICAgICAhPT0gMSAgICAgICAgICAgICAgICAgICAgIHx8XG4gICAgICBhc3QuYm9keVswXS50eXBlICAgICAgICAgICAgIT09ICdFeHByZXNzaW9uU3RhdGVtZW50JyB8fFxuICAgICAgKGFzdC5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSAhPT0gJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uJyAmJlxuICAgICAgICBhc3QuYm9keVswXS5leHByZXNzaW9uLnR5cGUgIT09ICdGdW5jdGlvbkV4cHJlc3Npb24nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHJlc29sdmUgZnVuY3Rpb24nKTtcbiAgfVxuXG4gIGFzdC5ib2R5WzBdLmV4cHJlc3Npb24ucGFyYW1zLmZvckVhY2goZnVuY3Rpb24gKHBhcmFtKSB7XG4gICAgcGFyYW1zLnB1c2gocGFyYW0ubmFtZSk7XG4gIH0pO1xuXG4gIGJvZHkgPSBhc3QuYm9keVswXS5leHByZXNzaW9uLmJvZHkucmFuZ2U7XG5cbiAgLy8gRXNwcmltYSdzIHJhbmdlcyBpbmNsdWRlIHRoZSBmaXJzdCAneycgYW5kIHRoZSBsYXN0ICd9JyBjaGFyYWN0ZXJzIG9uXG4gIC8vIGZ1bmN0aW9uIGV4cHJlc3Npb25zLiBTbyBjdXQgdGhlbSBvdXQuXG4gIGlmIChhc3QuYm9keVswXS5leHByZXNzaW9uLmJvZHkudHlwZSA9PT0gJ0Jsb2NrU3RhdGVtZW50Jykge1xuICAgIC8qZXNsaW50LWRpc2FibGUgbm8tbmV3LWZ1bmMqL1xuICAgIHJldHVybiBuZXcgRnVuY3Rpb24ocGFyYW1zLCBzb3VyY2Uuc2xpY2UoYm9keVswXSArIDEsIGJvZHlbMV0gLSAxKSk7XG4gIH1cbiAgLy8gRVM2IGFycm93IGZ1bmN0aW9ucyBjYW4gb21pdCB0aGUgQmxvY2tTdGF0ZW1lbnQuIEluIHRoYXQgY2FzZSwganVzdCByZXR1cm5cbiAgLy8gdGhlIGJvZHkuXG4gIC8qZXNsaW50LWRpc2FibGUgbm8tbmV3LWZ1bmMqL1xuICByZXR1cm4gbmV3IEZ1bmN0aW9uKHBhcmFtcywgJ3JldHVybiAnICsgc291cmNlLnNsaWNlKGJvZHlbMF0sIGJvZHlbMV0pKTtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50SmF2YXNjcmlwdEZ1bmN0aW9uKG9iamVjdCAvKiwgc3R5bGUqLykge1xuICByZXR1cm4gb2JqZWN0LnRvU3RyaW5nKCk7XG59XG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24ob2JqZWN0KSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6anMvZnVuY3Rpb24nLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlSmF2YXNjcmlwdEZ1bmN0aW9uLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdEphdmFzY3JpcHRGdW5jdGlvbixcbiAgcHJlZGljYXRlOiBpc0Z1bmN0aW9uLFxuICByZXByZXNlbnQ6IHJlcHJlc2VudEphdmFzY3JpcHRGdW5jdGlvblxufSk7XG4iLCAiLy8gSlMtWUFNTCdzIGRlZmF1bHQgc2NoZW1hIGZvciBgbG9hZGAgZnVuY3Rpb24uXG4vLyBJdCBpcyBub3QgZGVzY3JpYmVkIGluIHRoZSBZQU1MIHNwZWNpZmljYXRpb24uXG4vL1xuLy8gVGhpcyBzY2hlbWEgaXMgYmFzZWQgb24gSlMtWUFNTCdzIGRlZmF1bHQgc2FmZSBzY2hlbWEgYW5kIGluY2x1ZGVzXG4vLyBKYXZhU2NyaXB0LXNwZWNpZmljIHR5cGVzOiAhIWpzL3VuZGVmaW5lZCwgISFqcy9yZWdleHAgYW5kICEhanMvZnVuY3Rpb24uXG4vL1xuLy8gQWxzbyB0aGlzIHNjaGVtYSBpcyB1c2VkIGFzIGRlZmF1bHQgYmFzZSBzY2hlbWEgYXQgYFNjaGVtYS5jcmVhdGVgIGZ1bmN0aW9uLlxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBTY2hlbWEuREVGQVVMVCA9IG5ldyBTY2hlbWEoe1xuICBpbmNsdWRlOiBbXG4gICAgcmVxdWlyZSgnLi9kZWZhdWx0X3NhZmUnKVxuICBdLFxuICBleHBsaWNpdDogW1xuICAgIHJlcXVpcmUoJy4uL3R5cGUvanMvdW5kZWZpbmVkJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9qcy9yZWdleHAnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL2pzL2Z1bmN0aW9uJylcbiAgXVxufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKmVzbGludC1kaXNhYmxlIG1heC1sZW4sbm8tdXNlLWJlZm9yZS1kZWZpbmUqL1xuXG52YXIgY29tbW9uICAgICAgICAgICAgICA9IHJlcXVpcmUoJy4vY29tbW9uJyk7XG52YXIgWUFNTEV4Y2VwdGlvbiAgICAgICA9IHJlcXVpcmUoJy4vZXhjZXB0aW9uJyk7XG52YXIgTWFyayAgICAgICAgICAgICAgICA9IHJlcXVpcmUoJy4vbWFyaycpO1xudmFyIERFRkFVTFRfU0FGRV9TQ0hFTUEgPSByZXF1aXJlKCcuL3NjaGVtYS9kZWZhdWx0X3NhZmUnKTtcbnZhciBERUZBVUxUX0ZVTExfU0NIRU1BID0gcmVxdWlyZSgnLi9zY2hlbWEvZGVmYXVsdF9mdWxsJyk7XG5cblxudmFyIF9oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cblxudmFyIENPTlRFWFRfRkxPV19JTiAgID0gMTtcbnZhciBDT05URVhUX0ZMT1dfT1VUICA9IDI7XG52YXIgQ09OVEVYVF9CTE9DS19JTiAgPSAzO1xudmFyIENPTlRFWFRfQkxPQ0tfT1VUID0gNDtcblxuXG52YXIgQ0hPTVBJTkdfQ0xJUCAgPSAxO1xudmFyIENIT01QSU5HX1NUUklQID0gMjtcbnZhciBDSE9NUElOR19LRUVQICA9IDM7XG5cblxudmFyIFBBVFRFUk5fTk9OX1BSSU5UQUJMRSAgICAgICAgID0gL1tcXHgwMC1cXHgwOFxceDBCXFx4MENcXHgwRS1cXHgxRlxceDdGLVxceDg0XFx4ODYtXFx4OUZcXHVGRkZFXFx1RkZGRl18W1xcdUQ4MDAtXFx1REJGRl0oPyFbXFx1REMwMC1cXHVERkZGXSl8KD86W15cXHVEODAwLVxcdURCRkZdfF4pW1xcdURDMDAtXFx1REZGRl0vO1xudmFyIFBBVFRFUk5fTk9OX0FTQ0lJX0xJTkVfQlJFQUtTID0gL1tcXHg4NVxcdTIwMjhcXHUyMDI5XS87XG52YXIgUEFUVEVSTl9GTE9XX0lORElDQVRPUlMgICAgICAgPSAvWyxcXFtcXF1cXHtcXH1dLztcbnZhciBQQVRURVJOX1RBR19IQU5ETEUgICAgICAgICAgICA9IC9eKD86IXwhIXwhW2EtelxcLV0rISkkL2k7XG52YXIgUEFUVEVSTl9UQUdfVVJJICAgICAgICAgICAgICAgPSAvXig/OiF8W14sXFxbXFxdXFx7XFx9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelxcLSM7XFwvXFw/OkAmPVxcK1xcJCxfXFwuIX5cXConXFwoXFwpXFxbXFxdXSkqJC9pO1xuXG5cbmZ1bmN0aW9uIF9jbGFzcyhvYmopIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopOyB9XG5cbmZ1bmN0aW9uIGlzX0VPTChjKSB7XG4gIHJldHVybiAoYyA9PT0gMHgwQS8qIExGICovKSB8fCAoYyA9PT0gMHgwRC8qIENSICovKTtcbn1cblxuZnVuY3Rpb24gaXNfV0hJVEVfU1BBQ0UoYykge1xuICByZXR1cm4gKGMgPT09IDB4MDkvKiBUYWIgKi8pIHx8IChjID09PSAweDIwLyogU3BhY2UgKi8pO1xufVxuXG5mdW5jdGlvbiBpc19XU19PUl9FT0woYykge1xuICByZXR1cm4gKGMgPT09IDB4MDkvKiBUYWIgKi8pIHx8XG4gICAgICAgICAoYyA9PT0gMHgyMC8qIFNwYWNlICovKSB8fFxuICAgICAgICAgKGMgPT09IDB4MEEvKiBMRiAqLykgfHxcbiAgICAgICAgIChjID09PSAweDBELyogQ1IgKi8pO1xufVxuXG5mdW5jdGlvbiBpc19GTE9XX0lORElDQVRPUihjKSB7XG4gIHJldHVybiBjID09PSAweDJDLyogLCAqLyB8fFxuICAgICAgICAgYyA9PT0gMHg1Qi8qIFsgKi8gfHxcbiAgICAgICAgIGMgPT09IDB4NUQvKiBdICovIHx8XG4gICAgICAgICBjID09PSAweDdCLyogeyAqLyB8fFxuICAgICAgICAgYyA9PT0gMHg3RC8qIH0gKi87XG59XG5cbmZ1bmN0aW9uIGZyb21IZXhDb2RlKGMpIHtcbiAgdmFyIGxjO1xuXG4gIGlmICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzOS8qIDkgKi8pKSB7XG4gICAgcmV0dXJuIGMgLSAweDMwO1xuICB9XG5cbiAgLyplc2xpbnQtZGlzYWJsZSBuby1iaXR3aXNlKi9cbiAgbGMgPSBjIHwgMHgyMDtcblxuICBpZiAoKDB4NjEvKiBhICovIDw9IGxjKSAmJiAobGMgPD0gMHg2Ni8qIGYgKi8pKSB7XG4gICAgcmV0dXJuIGxjIC0gMHg2MSArIDEwO1xuICB9XG5cbiAgcmV0dXJuIC0xO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVkSGV4TGVuKGMpIHtcbiAgaWYgKGMgPT09IDB4NzgvKiB4ICovKSB7IHJldHVybiAyOyB9XG4gIGlmIChjID09PSAweDc1LyogdSAqLykgeyByZXR1cm4gNDsgfVxuICBpZiAoYyA9PT0gMHg1NS8qIFUgKi8pIHsgcmV0dXJuIDg7IH1cbiAgcmV0dXJuIDA7XG59XG5cbmZ1bmN0aW9uIGZyb21EZWNpbWFsQ29kZShjKSB7XG4gIGlmICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzOS8qIDkgKi8pKSB7XG4gICAgcmV0dXJuIGMgLSAweDMwO1xuICB9XG5cbiAgcmV0dXJuIC0xO1xufVxuXG5mdW5jdGlvbiBzaW1wbGVFc2NhcGVTZXF1ZW5jZShjKSB7XG4gIC8qIGVzbGludC1kaXNhYmxlIGluZGVudCAqL1xuICByZXR1cm4gKGMgPT09IDB4MzAvKiAwICovKSA/ICdcXHgwMCcgOlxuICAgICAgICAoYyA9PT0gMHg2MS8qIGEgKi8pID8gJ1xceDA3JyA6XG4gICAgICAgIChjID09PSAweDYyLyogYiAqLykgPyAnXFx4MDgnIDpcbiAgICAgICAgKGMgPT09IDB4NzQvKiB0ICovKSA/ICdcXHgwOScgOlxuICAgICAgICAoYyA9PT0gMHgwOS8qIFRhYiAqLykgPyAnXFx4MDknIDpcbiAgICAgICAgKGMgPT09IDB4NkUvKiBuICovKSA/ICdcXHgwQScgOlxuICAgICAgICAoYyA9PT0gMHg3Ni8qIHYgKi8pID8gJ1xceDBCJyA6XG4gICAgICAgIChjID09PSAweDY2LyogZiAqLykgPyAnXFx4MEMnIDpcbiAgICAgICAgKGMgPT09IDB4NzIvKiByICovKSA/ICdcXHgwRCcgOlxuICAgICAgICAoYyA9PT0gMHg2NS8qIGUgKi8pID8gJ1xceDFCJyA6XG4gICAgICAgIChjID09PSAweDIwLyogU3BhY2UgKi8pID8gJyAnIDpcbiAgICAgICAgKGMgPT09IDB4MjIvKiBcIiAqLykgPyAnXFx4MjInIDpcbiAgICAgICAgKGMgPT09IDB4MkYvKiAvICovKSA/ICcvJyA6XG4gICAgICAgIChjID09PSAweDVDLyogXFwgKi8pID8gJ1xceDVDJyA6XG4gICAgICAgIChjID09PSAweDRFLyogTiAqLykgPyAnXFx4ODUnIDpcbiAgICAgICAgKGMgPT09IDB4NUYvKiBfICovKSA/ICdcXHhBMCcgOlxuICAgICAgICAoYyA9PT0gMHg0Qy8qIEwgKi8pID8gJ1xcdTIwMjgnIDpcbiAgICAgICAgKGMgPT09IDB4NTAvKiBQICovKSA/ICdcXHUyMDI5JyA6ICcnO1xufVxuXG5mdW5jdGlvbiBjaGFyRnJvbUNvZGVwb2ludChjKSB7XG4gIGlmIChjIDw9IDB4RkZGRikge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuICB9XG4gIC8vIEVuY29kZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXJcbiAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTE2I0NvZGVfcG9pbnRzX1UuMkIwMTAwMDBfdG9fVS4yQjEwRkZGRlxuICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShcbiAgICAoKGMgLSAweDAxMDAwMCkgPj4gMTApICsgMHhEODAwLFxuICAgICgoYyAtIDB4MDEwMDAwKSAmIDB4MDNGRikgKyAweERDMDBcbiAgKTtcbn1cblxuLy8gc2V0IGEgcHJvcGVydHkgb2YgYSBsaXRlcmFsIG9iamVjdCwgd2hpbGUgcHJvdGVjdGluZyBhZ2FpbnN0IHByb3RvdHlwZSBwb2xsdXRpb24sXG4vLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25vZGVjYS9qcy15YW1sL2lzc3Vlcy8xNjQgZm9yIG1vcmUgZGV0YWlsc1xuZnVuY3Rpb24gc2V0UHJvcGVydHkob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIC8vIHVzZWQgZm9yIHRoaXMgc3BlY2lmaWMga2V5IG9ubHkgYmVjYXVzZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgaXMgc2xvd1xuICBpZiAoa2V5ID09PSAnX19wcm90b19fJykge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsIGtleSwge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG52YXIgc2ltcGxlRXNjYXBlQ2hlY2sgPSBuZXcgQXJyYXkoMjU2KTsgLy8gaW50ZWdlciwgZm9yIGZhc3QgYWNjZXNzXG52YXIgc2ltcGxlRXNjYXBlTWFwID0gbmV3IEFycmF5KDI1Nik7XG5mb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgaSsrKSB7XG4gIHNpbXBsZUVzY2FwZUNoZWNrW2ldID0gc2ltcGxlRXNjYXBlU2VxdWVuY2UoaSkgPyAxIDogMDtcbiAgc2ltcGxlRXNjYXBlTWFwW2ldID0gc2ltcGxlRXNjYXBlU2VxdWVuY2UoaSk7XG59XG5cblxuZnVuY3Rpb24gU3RhdGUoaW5wdXQsIG9wdGlvbnMpIHtcbiAgdGhpcy5pbnB1dCA9IGlucHV0O1xuXG4gIHRoaXMuZmlsZW5hbWUgID0gb3B0aW9uc1snZmlsZW5hbWUnXSAgfHwgbnVsbDtcbiAgdGhpcy5zY2hlbWEgICAgPSBvcHRpb25zWydzY2hlbWEnXSAgICB8fCBERUZBVUxUX0ZVTExfU0NIRU1BO1xuICB0aGlzLm9uV2FybmluZyA9IG9wdGlvbnNbJ29uV2FybmluZyddIHx8IG51bGw7XG4gIHRoaXMubGVnYWN5ICAgID0gb3B0aW9uc1snbGVnYWN5J10gICAgfHwgZmFsc2U7XG4gIHRoaXMuanNvbiAgICAgID0gb3B0aW9uc1snanNvbiddICAgICAgfHwgZmFsc2U7XG4gIHRoaXMubGlzdGVuZXIgID0gb3B0aW9uc1snbGlzdGVuZXInXSAgfHwgbnVsbDtcblxuICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0O1xuICB0aGlzLnR5cGVNYXAgICAgICAgPSB0aGlzLnNjaGVtYS5jb21waWxlZFR5cGVNYXA7XG5cbiAgdGhpcy5sZW5ndGggICAgID0gaW5wdXQubGVuZ3RoO1xuICB0aGlzLnBvc2l0aW9uICAgPSAwO1xuICB0aGlzLmxpbmUgICAgICAgPSAwO1xuICB0aGlzLmxpbmVTdGFydCAgPSAwO1xuICB0aGlzLmxpbmVJbmRlbnQgPSAwO1xuXG4gIHRoaXMuZG9jdW1lbnRzID0gW107XG5cbiAgLypcbiAgdGhpcy52ZXJzaW9uO1xuICB0aGlzLmNoZWNrTGluZUJyZWFrcztcbiAgdGhpcy50YWdNYXA7XG4gIHRoaXMuYW5jaG9yTWFwO1xuICB0aGlzLnRhZztcbiAgdGhpcy5hbmNob3I7XG4gIHRoaXMua2luZDtcbiAgdGhpcy5yZXN1bHQ7Ki9cblxufVxuXG5cbmZ1bmN0aW9uIGdlbmVyYXRlRXJyb3Ioc3RhdGUsIG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBZQU1MRXhjZXB0aW9uKFxuICAgIG1lc3NhZ2UsXG4gICAgbmV3IE1hcmsoc3RhdGUuZmlsZW5hbWUsIHN0YXRlLmlucHV0LCBzdGF0ZS5wb3NpdGlvbiwgc3RhdGUubGluZSwgKHN0YXRlLnBvc2l0aW9uIC0gc3RhdGUubGluZVN0YXJ0KSkpO1xufVxuXG5mdW5jdGlvbiB0aHJvd0Vycm9yKHN0YXRlLCBtZXNzYWdlKSB7XG4gIHRocm93IGdlbmVyYXRlRXJyb3Ioc3RhdGUsIG1lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiB0aHJvd1dhcm5pbmcoc3RhdGUsIG1lc3NhZ2UpIHtcbiAgaWYgKHN0YXRlLm9uV2FybmluZykge1xuICAgIHN0YXRlLm9uV2FybmluZy5jYWxsKG51bGwsIGdlbmVyYXRlRXJyb3Ioc3RhdGUsIG1lc3NhZ2UpKTtcbiAgfVxufVxuXG5cbnZhciBkaXJlY3RpdmVIYW5kbGVycyA9IHtcblxuICBZQU1MOiBmdW5jdGlvbiBoYW5kbGVZYW1sRGlyZWN0aXZlKHN0YXRlLCBuYW1lLCBhcmdzKSB7XG5cbiAgICB2YXIgbWF0Y2gsIG1ham9yLCBtaW5vcjtcblxuICAgIGlmIChzdGF0ZS52ZXJzaW9uICE9PSBudWxsKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZHVwbGljYXRpb24gb2YgJVlBTUwgZGlyZWN0aXZlJyk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3MubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnWUFNTCBkaXJlY3RpdmUgYWNjZXB0cyBleGFjdGx5IG9uZSBhcmd1bWVudCcpO1xuICAgIH1cblxuICAgIG1hdGNoID0gL14oWzAtOV0rKVxcLihbMC05XSspJC8uZXhlYyhhcmdzWzBdKTtcblxuICAgIGlmIChtYXRjaCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2lsbC1mb3JtZWQgYXJndW1lbnQgb2YgdGhlIFlBTUwgZGlyZWN0aXZlJyk7XG4gICAgfVxuXG4gICAgbWFqb3IgPSBwYXJzZUludChtYXRjaFsxXSwgMTApO1xuICAgIG1pbm9yID0gcGFyc2VJbnQobWF0Y2hbMl0sIDEwKTtcblxuICAgIGlmIChtYWpvciAhPT0gMSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuYWNjZXB0YWJsZSBZQU1MIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50Jyk7XG4gICAgfVxuXG4gICAgc3RhdGUudmVyc2lvbiA9IGFyZ3NbMF07XG4gICAgc3RhdGUuY2hlY2tMaW5lQnJlYWtzID0gKG1pbm9yIDwgMik7XG5cbiAgICBpZiAobWlub3IgIT09IDEgJiYgbWlub3IgIT09IDIpIHtcbiAgICAgIHRocm93V2FybmluZyhzdGF0ZSwgJ3Vuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQnKTtcbiAgICB9XG4gIH0sXG5cbiAgVEFHOiBmdW5jdGlvbiBoYW5kbGVUYWdEaXJlY3RpdmUoc3RhdGUsIG5hbWUsIGFyZ3MpIHtcblxuICAgIHZhciBoYW5kbGUsIHByZWZpeDtcblxuICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gMikge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ1RBRyBkaXJlY3RpdmUgYWNjZXB0cyBleGFjdGx5IHR3byBhcmd1bWVudHMnKTtcbiAgICB9XG5cbiAgICBoYW5kbGUgPSBhcmdzWzBdO1xuICAgIHByZWZpeCA9IGFyZ3NbMV07XG5cbiAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KGhhbmRsZSkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdpbGwtZm9ybWVkIHRhZyBoYW5kbGUgKGZpcnN0IGFyZ3VtZW50KSBvZiB0aGUgVEFHIGRpcmVjdGl2ZScpO1xuICAgIH1cblxuICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS50YWdNYXAsIGhhbmRsZSkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd0aGVyZSBpcyBhIHByZXZpb3VzbHkgZGVjbGFyZWQgc3VmZml4IGZvciBcIicgKyBoYW5kbGUgKyAnXCIgdGFnIGhhbmRsZScpO1xuICAgIH1cblxuICAgIGlmICghUEFUVEVSTl9UQUdfVVJJLnRlc3QocHJlZml4KSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2lsbC1mb3JtZWQgdGFnIHByZWZpeCAoc2Vjb25kIGFyZ3VtZW50KSBvZiB0aGUgVEFHIGRpcmVjdGl2ZScpO1xuICAgIH1cblxuICAgIHN0YXRlLnRhZ01hcFtoYW5kbGVdID0gcHJlZml4O1xuICB9XG59O1xuXG5cbmZ1bmN0aW9uIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBzdGFydCwgZW5kLCBjaGVja0pzb24pIHtcbiAgdmFyIF9wb3NpdGlvbiwgX2xlbmd0aCwgX2NoYXJhY3RlciwgX3Jlc3VsdDtcblxuICBpZiAoc3RhcnQgPCBlbmQpIHtcbiAgICBfcmVzdWx0ID0gc3RhdGUuaW5wdXQuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgICBpZiAoY2hlY2tKc29uKSB7XG4gICAgICBmb3IgKF9wb3NpdGlvbiA9IDAsIF9sZW5ndGggPSBfcmVzdWx0Lmxlbmd0aDsgX3Bvc2l0aW9uIDwgX2xlbmd0aDsgX3Bvc2l0aW9uICs9IDEpIHtcbiAgICAgICAgX2NoYXJhY3RlciA9IF9yZXN1bHQuY2hhckNvZGVBdChfcG9zaXRpb24pO1xuICAgICAgICBpZiAoIShfY2hhcmFjdGVyID09PSAweDA5IHx8XG4gICAgICAgICAgICAgICgweDIwIDw9IF9jaGFyYWN0ZXIgJiYgX2NoYXJhY3RlciA8PSAweDEwRkZGRikpKSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2V4cGVjdGVkIHZhbGlkIEpTT04gY2hhcmFjdGVyJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFBBVFRFUk5fTk9OX1BSSU5UQUJMRS50ZXN0KF9yZXN1bHQpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndGhlIHN0cmVhbSBjb250YWlucyBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMnKTtcbiAgICB9XG5cbiAgICBzdGF0ZS5yZXN1bHQgKz0gX3Jlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZU1hcHBpbmdzKHN0YXRlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvdmVycmlkYWJsZUtleXMpIHtcbiAgdmFyIHNvdXJjZUtleXMsIGtleSwgaW5kZXgsIHF1YW50aXR5O1xuXG4gIGlmICghY29tbW9uLmlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2Fubm90IG1lcmdlIG1hcHBpbmdzOyB0aGUgcHJvdmlkZWQgc291cmNlIG9iamVjdCBpcyB1bmFjY2VwdGFibGUnKTtcbiAgfVxuXG4gIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuXG4gIGZvciAoaW5kZXggPSAwLCBxdWFudGl0eSA9IHNvdXJjZUtleXMubGVuZ3RoOyBpbmRleCA8IHF1YW50aXR5OyBpbmRleCArPSAxKSB7XG4gICAga2V5ID0gc291cmNlS2V5c1tpbmRleF07XG5cbiAgICBpZiAoIV9oYXNPd25Qcm9wZXJ0eS5jYWxsKGRlc3RpbmF0aW9uLCBrZXkpKSB7XG4gICAgICBzZXRQcm9wZXJ0eShkZXN0aW5hdGlvbiwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgICBvdmVycmlkYWJsZUtleXNba2V5XSA9IHRydWU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIG92ZXJyaWRhYmxlS2V5cywga2V5VGFnLCBrZXlOb2RlLCB2YWx1ZU5vZGUsIHN0YXJ0TGluZSwgc3RhcnRQb3MpIHtcbiAgdmFyIGluZGV4LCBxdWFudGl0eTtcblxuICAvLyBUaGUgb3V0cHV0IGlzIGEgcGxhaW4gb2JqZWN0IGhlcmUsIHNvIGtleXMgY2FuIG9ubHkgYmUgc3RyaW5ncy5cbiAgLy8gV2UgbmVlZCB0byBjb252ZXJ0IGtleU5vZGUgdG8gYSBzdHJpbmcsIGJ1dCBkb2luZyBzbyBjYW4gaGFuZyB0aGUgcHJvY2Vzc1xuICAvLyAoZGVlcGx5IG5lc3RlZCBhcnJheXMgdGhhdCBleHBsb2RlIGV4cG9uZW50aWFsbHkgdXNpbmcgYWxpYXNlcykuXG4gIGlmIChBcnJheS5pc0FycmF5KGtleU5vZGUpKSB7XG4gICAga2V5Tm9kZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGtleU5vZGUpO1xuXG4gICAgZm9yIChpbmRleCA9IDAsIHF1YW50aXR5ID0ga2V5Tm9kZS5sZW5ndGg7IGluZGV4IDwgcXVhbnRpdHk7IGluZGV4ICs9IDEpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGtleU5vZGVbaW5kZXhdKSkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnbmVzdGVkIGFycmF5cyBhcmUgbm90IHN1cHBvcnRlZCBpbnNpZGUga2V5cycpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGtleU5vZGUgPT09ICdvYmplY3QnICYmIF9jbGFzcyhrZXlOb2RlW2luZGV4XSkgPT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAgICAgIGtleU5vZGVbaW5kZXhdID0gJ1tvYmplY3QgT2JqZWN0XSc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQXZvaWQgY29kZSBleGVjdXRpb24gaW4gbG9hZCgpIHZpYSB0b1N0cmluZyBwcm9wZXJ0eVxuICAvLyAoc3RpbGwgdXNlIGl0cyBvd24gdG9TdHJpbmcgZm9yIGFycmF5cywgdGltZXN0YW1wcyxcbiAgLy8gYW5kIHdoYXRldmVyIHVzZXIgc2NoZW1hIGV4dGVuc2lvbnMgaGFwcGVuIHRvIGhhdmUgQEB0b1N0cmluZ1RhZylcbiAgaWYgKHR5cGVvZiBrZXlOb2RlID09PSAnb2JqZWN0JyAmJiBfY2xhc3Moa2V5Tm9kZSkgPT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAga2V5Tm9kZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuICB9XG5cblxuICBrZXlOb2RlID0gU3RyaW5nKGtleU5vZGUpO1xuXG4gIGlmIChfcmVzdWx0ID09PSBudWxsKSB7XG4gICAgX3Jlc3VsdCA9IHt9O1xuICB9XG5cbiAgaWYgKGtleVRhZyA9PT0gJ3RhZzp5YW1sLm9yZywyMDAyOm1lcmdlJykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlTm9kZSkpIHtcbiAgICAgIGZvciAoaW5kZXggPSAwLCBxdWFudGl0eSA9IHZhbHVlTm9kZS5sZW5ndGg7IGluZGV4IDwgcXVhbnRpdHk7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgbWVyZ2VNYXBwaW5ncyhzdGF0ZSwgX3Jlc3VsdCwgdmFsdWVOb2RlW2luZGV4XSwgb3ZlcnJpZGFibGVLZXlzKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWVyZ2VNYXBwaW5ncyhzdGF0ZSwgX3Jlc3VsdCwgdmFsdWVOb2RlLCBvdmVycmlkYWJsZUtleXMpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoIXN0YXRlLmpzb24gJiZcbiAgICAgICAgIV9oYXNPd25Qcm9wZXJ0eS5jYWxsKG92ZXJyaWRhYmxlS2V5cywga2V5Tm9kZSkgJiZcbiAgICAgICAgX2hhc093blByb3BlcnR5LmNhbGwoX3Jlc3VsdCwga2V5Tm9kZSkpIHtcbiAgICAgIHN0YXRlLmxpbmUgPSBzdGFydExpbmUgfHwgc3RhdGUubGluZTtcbiAgICAgIHN0YXRlLnBvc2l0aW9uID0gc3RhcnRQb3MgfHwgc3RhdGUucG9zaXRpb247XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZHVwbGljYXRlZCBtYXBwaW5nIGtleScpO1xuICAgIH1cbiAgICBzZXRQcm9wZXJ0eShfcmVzdWx0LCBrZXlOb2RlLCB2YWx1ZU5vZGUpO1xuICAgIGRlbGV0ZSBvdmVycmlkYWJsZUtleXNba2V5Tm9kZV07XG4gIH1cblxuICByZXR1cm4gX3Jlc3VsdDtcbn1cblxuZnVuY3Rpb24gcmVhZExpbmVCcmVhayhzdGF0ZSkge1xuICB2YXIgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoY2ggPT09IDB4MEEvKiBMRiAqLykge1xuICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gIH0gZWxzZSBpZiAoY2ggPT09IDB4MEQvKiBDUiAqLykge1xuICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgaWYgKHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pID09PSAweDBBLyogTEYgKi8pIHtcbiAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdhIGxpbmUgYnJlYWsgaXMgZXhwZWN0ZWQnKTtcbiAgfVxuXG4gIHN0YXRlLmxpbmUgKz0gMTtcbiAgc3RhdGUubGluZVN0YXJ0ID0gc3RhdGUucG9zaXRpb247XG59XG5cbmZ1bmN0aW9uIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIGFsbG93Q29tbWVudHMsIGNoZWNrSW5kZW50KSB7XG4gIHZhciBsaW5lQnJlYWtzID0gMCxcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgd2hpbGUgKGNoICE9PSAwKSB7XG4gICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIH1cblxuICAgIGlmIChhbGxvd0NvbW1lbnRzICYmIGNoID09PSAweDIzLyogIyAqLykge1xuICAgICAgZG8ge1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICB9IHdoaWxlIChjaCAhPT0gMHgwQS8qIExGICovICYmIGNoICE9PSAweDBELyogQ1IgKi8gJiYgY2ggIT09IDApO1xuICAgIH1cblxuICAgIGlmIChpc19FT0woY2gpKSB7XG4gICAgICByZWFkTGluZUJyZWFrKHN0YXRlKTtcblxuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgIGxpbmVCcmVha3MrKztcbiAgICAgIHN0YXRlLmxpbmVJbmRlbnQgPSAwO1xuXG4gICAgICB3aGlsZSAoY2ggPT09IDB4MjAvKiBTcGFjZSAqLykge1xuICAgICAgICBzdGF0ZS5saW5lSW5kZW50Kys7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKGNoZWNrSW5kZW50ICE9PSAtMSAmJiBsaW5lQnJlYWtzICE9PSAwICYmIHN0YXRlLmxpbmVJbmRlbnQgPCBjaGVja0luZGVudCkge1xuICAgIHRocm93V2FybmluZyhzdGF0ZSwgJ2RlZmljaWVudCBpbmRlbnRhdGlvbicpO1xuICB9XG5cbiAgcmV0dXJuIGxpbmVCcmVha3M7XG59XG5cbmZ1bmN0aW9uIHRlc3REb2N1bWVudFNlcGFyYXRvcihzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb24sXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uKTtcblxuICAvLyBDb25kaXRpb24gc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCBpcyB0ZXN0ZWRcbiAgLy8gaW4gcGFyZW50IG9uIGVhY2ggY2FsbCwgZm9yIGVmZmljaWVuY3kuIE5vIG5lZWRzIHRvIHRlc3QgaGVyZSBhZ2Fpbi5cbiAgaWYgKChjaCA9PT0gMHgyRC8qIC0gKi8gfHwgY2ggPT09IDB4MkUvKiAuICovKSAmJlxuICAgICAgY2ggPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMSkgJiZcbiAgICAgIGNoID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbiArIDIpKSB7XG5cbiAgICBfcG9zaXRpb24gKz0gMztcblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24pO1xuXG4gICAgaWYgKGNoID09PSAwIHx8IGlzX1dTX09SX0VPTChjaCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gd3JpdGVGb2xkZWRMaW5lcyhzdGF0ZSwgY291bnQpIHtcbiAgaWYgKGNvdW50ID09PSAxKSB7XG4gICAgc3RhdGUucmVzdWx0ICs9ICcgJztcbiAgfSBlbHNlIGlmIChjb3VudCA+IDEpIHtcbiAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnXFxuJywgY291bnQgLSAxKTtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIHJlYWRQbGFpblNjYWxhcihzdGF0ZSwgbm9kZUluZGVudCwgd2l0aGluRmxvd0NvbGxlY3Rpb24pIHtcbiAgdmFyIHByZWNlZGluZyxcbiAgICAgIGZvbGxvd2luZyxcbiAgICAgIGNhcHR1cmVTdGFydCxcbiAgICAgIGNhcHR1cmVFbmQsXG4gICAgICBoYXNQZW5kaW5nQ29udGVudCxcbiAgICAgIF9saW5lLFxuICAgICAgX2xpbmVTdGFydCxcbiAgICAgIF9saW5lSW5kZW50LFxuICAgICAgX2tpbmQgPSBzdGF0ZS5raW5kLFxuICAgICAgX3Jlc3VsdCA9IHN0YXRlLnJlc3VsdCxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGlzX1dTX09SX0VPTChjaCkgICAgICB8fFxuICAgICAgaXNfRkxPV19JTkRJQ0FUT1IoY2gpIHx8XG4gICAgICBjaCA9PT0gMHgyMy8qICMgKi8gICAgfHxcbiAgICAgIGNoID09PSAweDI2LyogJiAqLyAgICB8fFxuICAgICAgY2ggPT09IDB4MkEvKiAqICovICAgIHx8XG4gICAgICBjaCA9PT0gMHgyMS8qICEgKi8gICAgfHxcbiAgICAgIGNoID09PSAweDdDLyogfCAqLyAgICB8fFxuICAgICAgY2ggPT09IDB4M0UvKiA+ICovICAgIHx8XG4gICAgICBjaCA9PT0gMHgyNy8qICcgKi8gICAgfHxcbiAgICAgIGNoID09PSAweDIyLyogXCIgKi8gICAgfHxcbiAgICAgIGNoID09PSAweDI1LyogJSAqLyAgICB8fFxuICAgICAgY2ggPT09IDB4NDAvKiBAICovICAgIHx8XG4gICAgICBjaCA9PT0gMHg2MC8qIGAgKi8pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoY2ggPT09IDB4M0YvKiA/ICovIHx8IGNoID09PSAweDJELyogLSAqLykge1xuICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fFxuICAgICAgICB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc3RhdGUua2luZCA9ICdzY2FsYXInO1xuICBzdGF0ZS5yZXN1bHQgPSAnJztcbiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlO1xuXG4gIHdoaWxlIChjaCAhPT0gMCkge1xuICAgIGlmIChjaCA9PT0gMHgzQS8qIDogKi8pIHtcbiAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpIHx8XG4gICAgICAgICAgd2l0aGluRmxvd0NvbGxlY3Rpb24gJiYgaXNfRkxPV19JTkRJQ0FUT1IoZm9sbG93aW5nKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoY2ggPT09IDB4MjMvKiAjICovKSB7XG4gICAgICBwcmVjZWRpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uIC0gMSk7XG5cbiAgICAgIGlmIChpc19XU19PUl9FT0wocHJlY2VkaW5nKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgfHxcbiAgICAgICAgICAgICAgIHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkge1xuICAgICAgYnJlYWs7XG5cbiAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIF9saW5lID0gc3RhdGUubGluZTtcbiAgICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7XG4gICAgICBfbGluZUluZGVudCA9IHN0YXRlLmxpbmVJbmRlbnQ7XG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgLTEpO1xuXG4gICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+PSBub2RlSW5kZW50KSB7XG4gICAgICAgIGhhc1BlbmRpbmdDb250ZW50ID0gdHJ1ZTtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5wb3NpdGlvbiA9IGNhcHR1cmVFbmQ7XG4gICAgICAgIHN0YXRlLmxpbmUgPSBfbGluZTtcbiAgICAgICAgc3RhdGUubGluZVN0YXJ0ID0gX2xpbmVTdGFydDtcbiAgICAgICAgc3RhdGUubGluZUluZGVudCA9IF9saW5lSW5kZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzUGVuZGluZ0NvbnRlbnQpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTtcbiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHN0YXRlLmxpbmUgLSBfbGluZSk7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb24gKyAxO1xuICAgIH1cblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgfVxuXG4gIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTtcblxuICBpZiAoc3RhdGUucmVzdWx0KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gX2tpbmQ7XG4gIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gcmVhZFNpbmdsZVF1b3RlZFNjYWxhcihzdGF0ZSwgbm9kZUluZGVudCkge1xuICB2YXIgY2gsXG4gICAgICBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQ7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoY2ggIT09IDB4MjcvKiAnICovKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGUua2luZCA9ICdzY2FsYXInO1xuICBzdGF0ZS5yZXN1bHQgPSAnJztcbiAgc3RhdGUucG9zaXRpb24rKztcbiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gIHdoaWxlICgoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkgIT09IDApIHtcbiAgICBpZiAoY2ggPT09IDB4MjcvKiAnICovKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgIGlmIChjaCA9PT0gMHgyNy8qICcgKi8pIHtcbiAgICAgICAgY2FwdHVyZVN0YXJ0ID0gc3RhdGUucG9zaXRpb247XG4gICAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCB0cnVlKTtcbiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIGZhbHNlLCBub2RlSW5kZW50KSk7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG5cbiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhcicpO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXInKTtcbn1cblxuZnVuY3Rpb24gcmVhZERvdWJsZVF1b3RlZFNjYWxhcihzdGF0ZSwgbm9kZUluZGVudCkge1xuICB2YXIgY2FwdHVyZVN0YXJ0LFxuICAgICAgY2FwdHVyZUVuZCxcbiAgICAgIGhleExlbmd0aCxcbiAgICAgIGhleFJlc3VsdCxcbiAgICAgIHRtcCxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoICE9PSAweDIyLyogXCIgKi8pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gJ3NjYWxhcic7XG4gIHN0YXRlLnJlc3VsdCA9ICcnO1xuICBzdGF0ZS5wb3NpdGlvbisrO1xuICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKChjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSAhPT0gMCkge1xuICAgIGlmIChjaCA9PT0gMHgyMi8qIFwiICovKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICB9IGVsc2UgaWYgKGNoID09PSAweDVDLyogXFwgKi8pIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIHN0YXRlLnBvc2l0aW9uLCB0cnVlKTtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICAgICAgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpO1xuXG4gICAgICAgIC8vIFRPRE86IHJld29yayB0byBpbmxpbmUgZm4gd2l0aCBubyB0eXBlIGNhc3Q/XG4gICAgICB9IGVsc2UgaWYgKGNoIDwgMjU2ICYmIHNpbXBsZUVzY2FwZUNoZWNrW2NoXSkge1xuICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gc2ltcGxlRXNjYXBlTWFwW2NoXTtcbiAgICAgICAgc3RhdGUucG9zaXRpb24rKztcblxuICAgICAgfSBlbHNlIGlmICgodG1wID0gZXNjYXBlZEhleExlbihjaCkpID4gMCkge1xuICAgICAgICBoZXhMZW5ndGggPSB0bXA7XG4gICAgICAgIGhleFJlc3VsdCA9IDA7XG5cbiAgICAgICAgZm9yICg7IGhleExlbmd0aCA+IDA7IGhleExlbmd0aC0tKSB7XG4gICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gICAgICAgICAgaWYgKCh0bXAgPSBmcm9tSGV4Q29kZShjaCkpID49IDApIHtcbiAgICAgICAgICAgIGhleFJlc3VsdCA9IChoZXhSZXN1bHQgPDwgNCkgKyB0bXA7XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2V4cGVjdGVkIGhleGFkZWNpbWFsIGNoYXJhY3RlcicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjaGFyRnJvbUNvZGVwb2ludChoZXhSZXN1bHQpO1xuXG4gICAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmtub3duIGVzY2FwZSBzZXF1ZW5jZScpO1xuICAgICAgfVxuXG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG5cbiAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpO1xuICAgICAgd3JpdGVGb2xkZWRMaW5lcyhzdGF0ZSwgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpKTtcbiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyJyk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICB9XG4gIH1cblxuICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhcicpO1xufVxuXG5mdW5jdGlvbiByZWFkRmxvd0NvbGxlY3Rpb24oc3RhdGUsIG5vZGVJbmRlbnQpIHtcbiAgdmFyIHJlYWROZXh0ID0gdHJ1ZSxcbiAgICAgIF9saW5lLFxuICAgICAgX3RhZyAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBfcmVzdWx0LFxuICAgICAgX2FuY2hvciAgPSBzdGF0ZS5hbmNob3IsXG4gICAgICBmb2xsb3dpbmcsXG4gICAgICB0ZXJtaW5hdG9yLFxuICAgICAgaXNQYWlyLFxuICAgICAgaXNFeHBsaWNpdFBhaXIsXG4gICAgICBpc01hcHBpbmcsXG4gICAgICBvdmVycmlkYWJsZUtleXMgPSB7fSxcbiAgICAgIGtleU5vZGUsXG4gICAgICBrZXlUYWcsXG4gICAgICB2YWx1ZU5vZGUsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmIChjaCA9PT0gMHg1Qi8qIFsgKi8pIHtcbiAgICB0ZXJtaW5hdG9yID0gMHg1RDsvKiBdICovXG4gICAgaXNNYXBwaW5nID0gZmFsc2U7XG4gICAgX3Jlc3VsdCA9IFtdO1xuICB9IGVsc2UgaWYgKGNoID09PSAweDdCLyogeyAqLykge1xuICAgIHRlcm1pbmF0b3IgPSAweDdEOy8qIH0gKi9cbiAgICBpc01hcHBpbmcgPSB0cnVlO1xuICAgIF9yZXN1bHQgPSB7fTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBfcmVzdWx0O1xuICB9XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gIHdoaWxlIChjaCAhPT0gMCkge1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmIChjaCA9PT0gdGVybWluYXRvcikge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yO1xuICAgICAgc3RhdGUua2luZCA9IGlzTWFwcGluZyA/ICdtYXBwaW5nJyA6ICdzZXF1ZW5jZSc7XG4gICAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0O1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICghcmVhZE5leHQpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdtaXNzZWQgY29tbWEgYmV0d2VlbiBmbG93IGNvbGxlY3Rpb24gZW50cmllcycpO1xuICAgIH1cblxuICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsO1xuICAgIGlzUGFpciA9IGlzRXhwbGljaXRQYWlyID0gZmFsc2U7XG5cbiAgICBpZiAoY2ggPT09IDB4M0YvKiA/ICovKSB7XG4gICAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7XG5cbiAgICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSkge1xuICAgICAgICBpc1BhaXIgPSBpc0V4cGxpY2l0UGFpciA9IHRydWU7XG4gICAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9saW5lID0gc3RhdGUubGluZTtcbiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9GTE9XX0lOLCBmYWxzZSwgdHJ1ZSk7XG4gICAga2V5VGFnID0gc3RhdGUudGFnO1xuICAgIGtleU5vZGUgPSBzdGF0ZS5yZXN1bHQ7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKChpc0V4cGxpY2l0UGFpciB8fCBzdGF0ZS5saW5lID09PSBfbGluZSkgJiYgY2ggPT09IDB4M0EvKiA6ICovKSB7XG4gICAgICBpc1BhaXIgPSB0cnVlO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG4gICAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9GTE9XX0lOLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICB2YWx1ZU5vZGUgPSBzdGF0ZS5yZXN1bHQ7XG4gICAgfVxuXG4gICAgaWYgKGlzTWFwcGluZykge1xuICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSk7XG4gICAgfSBlbHNlIGlmIChpc1BhaXIpIHtcbiAgICAgIF9yZXN1bHQucHVzaChzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBudWxsLCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIF9yZXN1bHQucHVzaChrZXlOb2RlKTtcbiAgICB9XG5cbiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICBpZiAoY2ggPT09IDB4MkMvKiAsICovKSB7XG4gICAgICByZWFkTmV4dCA9IHRydWU7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlYWROZXh0ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZmxvdyBjb2xsZWN0aW9uJyk7XG59XG5cbmZ1bmN0aW9uIHJlYWRCbG9ja1NjYWxhcihzdGF0ZSwgbm9kZUluZGVudCkge1xuICB2YXIgY2FwdHVyZVN0YXJ0LFxuICAgICAgZm9sZGluZyxcbiAgICAgIGNob21waW5nICAgICAgID0gQ0hPTVBJTkdfQ0xJUCxcbiAgICAgIGRpZFJlYWRDb250ZW50ID0gZmFsc2UsXG4gICAgICBkZXRlY3RlZEluZGVudCA9IGZhbHNlLFxuICAgICAgdGV4dEluZGVudCAgICAgPSBub2RlSW5kZW50LFxuICAgICAgZW1wdHlMaW5lcyAgICAgPSAwLFxuICAgICAgYXRNb3JlSW5kZW50ZWQgPSBmYWxzZSxcbiAgICAgIHRtcCxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoID09PSAweDdDLyogfCAqLykge1xuICAgIGZvbGRpbmcgPSBmYWxzZTtcbiAgfSBlbHNlIGlmIChjaCA9PT0gMHgzRS8qID4gKi8pIHtcbiAgICBmb2xkaW5nID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gJ3NjYWxhcic7XG4gIHN0YXRlLnJlc3VsdCA9ICcnO1xuXG4gIHdoaWxlIChjaCAhPT0gMCkge1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmIChjaCA9PT0gMHgyQi8qICsgKi8gfHwgY2ggPT09IDB4MkQvKiAtICovKSB7XG4gICAgICBpZiAoQ0hPTVBJTkdfQ0xJUCA9PT0gY2hvbXBpbmcpIHtcbiAgICAgICAgY2hvbXBpbmcgPSAoY2ggPT09IDB4MkIvKiArICovKSA/IENIT01QSU5HX0tFRVAgOiBDSE9NUElOR19TVFJJUDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXInKTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoKHRtcCA9IGZyb21EZWNpbWFsQ29kZShjaCkpID49IDApIHtcbiAgICAgIGlmICh0bXAgPT09IDApIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2JhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUnKTtcbiAgICAgIH0gZWxzZSBpZiAoIWRldGVjdGVkSW5kZW50KSB7XG4gICAgICAgIHRleHRJbmRlbnQgPSBub2RlSW5kZW50ICsgdG1wIC0gMTtcbiAgICAgICAgZGV0ZWN0ZWRJbmRlbnQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3JlcGVhdCBvZiBhbiBpbmRlbnRhdGlvbiB3aWR0aCBpZGVudGlmaWVyJyk7XG4gICAgICB9XG5cbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgIGRvIHsgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOyB9XG4gICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSk7XG5cbiAgICBpZiAoY2ggPT09IDB4MjMvKiAjICovKSB7XG4gICAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgICAgd2hpbGUgKCFpc19FT0woY2gpICYmIChjaCAhPT0gMCkpO1xuICAgIH1cbiAgfVxuXG4gIHdoaWxlIChjaCAhPT0gMCkge1xuICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpO1xuICAgIHN0YXRlLmxpbmVJbmRlbnQgPSAwO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIHdoaWxlICgoIWRldGVjdGVkSW5kZW50IHx8IHN0YXRlLmxpbmVJbmRlbnQgPCB0ZXh0SW5kZW50KSAmJlxuICAgICAgICAgICAoY2ggPT09IDB4MjAvKiBTcGFjZSAqLykpIHtcbiAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKztcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoIWRldGVjdGVkSW5kZW50ICYmIHN0YXRlLmxpbmVJbmRlbnQgPiB0ZXh0SW5kZW50KSB7XG4gICAgICB0ZXh0SW5kZW50ID0gc3RhdGUubGluZUluZGVudDtcbiAgICB9XG5cbiAgICBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgZW1wdHlMaW5lcysrO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gRW5kIG9mIHRoZSBzY2FsYXIuXG4gICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCB0ZXh0SW5kZW50KSB7XG5cbiAgICAgIC8vIFBlcmZvcm0gdGhlIGNob21waW5nLlxuICAgICAgaWYgKGNob21waW5nID09PSBDSE9NUElOR19LRUVQKSB7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBkaWRSZWFkQ29udGVudCA/IDEgKyBlbXB0eUxpbmVzIDogZW1wdHlMaW5lcyk7XG4gICAgICB9IGVsc2UgaWYgKGNob21waW5nID09PSBDSE9NUElOR19DTElQKSB7XG4gICAgICAgIGlmIChkaWRSZWFkQ29udGVudCkgeyAvLyBpLmUuIG9ubHkgaWYgdGhlIHNjYWxhciBpcyBub3QgZW1wdHkuXG4gICAgICAgICAgc3RhdGUucmVzdWx0ICs9ICdcXG4nO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEJyZWFrIHRoaXMgYHdoaWxlYCBjeWNsZSBhbmQgZ28gdG8gdGhlIGZ1bmNpdG9uJ3MgZXBpbG9ndWUuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBGb2xkZWQgc3R5bGU6IHVzZSBmYW5jeSBydWxlcyB0byBoYW5kbGUgbGluZSBicmVha3MuXG4gICAgaWYgKGZvbGRpbmcpIHtcblxuICAgICAgLy8gTGluZXMgc3RhcnRpbmcgd2l0aCB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzIChtb3JlLWluZGVudGVkIGxpbmVzKSBhcmUgbm90IGZvbGRlZC5cbiAgICAgIGlmIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgICAgYXRNb3JlSW5kZW50ZWQgPSB0cnVlO1xuICAgICAgICAvLyBleGNlcHQgZm9yIHRoZSBmaXJzdCBjb250ZW50IGxpbmUgKGNmLiBFeGFtcGxlIDguMSlcbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoJ1xcbicsIGRpZFJlYWRDb250ZW50ID8gMSArIGVtcHR5TGluZXMgOiBlbXB0eUxpbmVzKTtcblxuICAgICAgLy8gRW5kIG9mIG1vcmUtaW5kZW50ZWQgYmxvY2suXG4gICAgICB9IGVsc2UgaWYgKGF0TW9yZUluZGVudGVkKSB7XG4gICAgICAgIGF0TW9yZUluZGVudGVkID0gZmFsc2U7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBlbXB0eUxpbmVzICsgMSk7XG5cbiAgICAgIC8vIEp1c3Qgb25lIGxpbmUgYnJlYWsgLSBwZXJjZWl2ZSBhcyB0aGUgc2FtZSBsaW5lLlxuICAgICAgfSBlbHNlIGlmIChlbXB0eUxpbmVzID09PSAwKSB7XG4gICAgICAgIGlmIChkaWRSZWFkQ29udGVudCkgeyAvLyBpLmUuIG9ubHkgaWYgd2UgaGF2ZSBhbHJlYWR5IHJlYWQgc29tZSBzY2FsYXIgY29udGVudC5cbiAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gJyAnO1xuICAgICAgICB9XG5cbiAgICAgIC8vIFNldmVyYWwgbGluZSBicmVha3MgLSBwZXJjZWl2ZSBhcyBkaWZmZXJlbnQgbGluZXMuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnXFxuJywgZW1wdHlMaW5lcyk7XG4gICAgICB9XG5cbiAgICAvLyBMaXRlcmFsIHN0eWxlOiBqdXN0IGFkZCBleGFjdCBudW1iZXIgb2YgbGluZSBicmVha3MgYmV0d2VlbiBjb250ZW50IGxpbmVzLlxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBLZWVwIGFsbCBsaW5lIGJyZWFrcyBleGNlcHQgdGhlIGhlYWRlciBsaW5lIGJyZWFrLlxuICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoJ1xcbicsIGRpZFJlYWRDb250ZW50ID8gMSArIGVtcHR5TGluZXMgOiBlbXB0eUxpbmVzKTtcbiAgICB9XG5cbiAgICBkaWRSZWFkQ29udGVudCA9IHRydWU7XG4gICAgZGV0ZWN0ZWRJbmRlbnQgPSB0cnVlO1xuICAgIGVtcHR5TGluZXMgPSAwO1xuICAgIGNhcHR1cmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgd2hpbGUgKCFpc19FT0woY2gpICYmIChjaCAhPT0gMCkpIHtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgZmFsc2UpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciBfbGluZSxcbiAgICAgIF90YWcgICAgICA9IHN0YXRlLnRhZyxcbiAgICAgIF9hbmNob3IgICA9IHN0YXRlLmFuY2hvcixcbiAgICAgIF9yZXN1bHQgICA9IFtdLFxuICAgICAgZm9sbG93aW5nLFxuICAgICAgZGV0ZWN0ZWQgID0gZmFsc2UsXG4gICAgICBjaDtcblxuICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBfcmVzdWx0O1xuICB9XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICB3aGlsZSAoY2ggIT09IDApIHtcblxuICAgIGlmIChjaCAhPT0gMHgyRC8qIC0gKi8pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgIGlmICghaXNfV1NfT1JfRU9MKGZvbGxvd2luZykpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGRldGVjdGVkID0gdHJ1ZTtcbiAgICBzdGF0ZS5wb3NpdGlvbisrO1xuXG4gICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKSkge1xuICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPD0gbm9kZUluZGVudCkge1xuICAgICAgICBfcmVzdWx0LnB1c2gobnVsbCk7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9saW5lID0gc3RhdGUubGluZTtcbiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9CTE9DS19JTiwgZmFsc2UsIHRydWUpO1xuICAgIF9yZXN1bHQucHVzaChzdGF0ZS5yZXN1bHQpO1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICBpZiAoKHN0YXRlLmxpbmUgPT09IF9saW5lIHx8IHN0YXRlLmxpbmVJbmRlbnQgPiBub2RlSW5kZW50KSAmJiAoY2ggIT09IDApKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYmFkIGluZGVudGF0aW9uIG9mIGEgc2VxdWVuY2UgZW50cnknKTtcbiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAoZGV0ZWN0ZWQpIHtcbiAgICBzdGF0ZS50YWcgPSBfdGFnO1xuICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgc3RhdGUua2luZCA9ICdzZXF1ZW5jZSc7XG4gICAgc3RhdGUucmVzdWx0ID0gX3Jlc3VsdDtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHJlYWRCbG9ja01hcHBpbmcoc3RhdGUsIG5vZGVJbmRlbnQsIGZsb3dJbmRlbnQpIHtcbiAgdmFyIGZvbGxvd2luZyxcbiAgICAgIGFsbG93Q29tcGFjdCxcbiAgICAgIF9saW5lLFxuICAgICAgX3BvcyxcbiAgICAgIF90YWcgICAgICAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBfYW5jaG9yICAgICAgID0gc3RhdGUuYW5jaG9yLFxuICAgICAgX3Jlc3VsdCAgICAgICA9IHt9LFxuICAgICAgb3ZlcnJpZGFibGVLZXlzID0ge30sXG4gICAgICBrZXlUYWcgICAgICAgID0gbnVsbCxcbiAgICAgIGtleU5vZGUgICAgICAgPSBudWxsLFxuICAgICAgdmFsdWVOb2RlICAgICA9IG51bGwsXG4gICAgICBhdEV4cGxpY2l0S2V5ID0gZmFsc2UsXG4gICAgICBkZXRlY3RlZCAgICAgID0gZmFsc2UsXG4gICAgICBjaDtcblxuICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBfcmVzdWx0O1xuICB9XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICB3aGlsZSAoY2ggIT09IDApIHtcbiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7XG4gICAgX2xpbmUgPSBzdGF0ZS5saW5lOyAvLyBTYXZlIHRoZSBjdXJyZW50IGxpbmUuXG4gICAgX3BvcyA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgLy9cbiAgICAvLyBFeHBsaWNpdCBub3RhdGlvbiBjYXNlLiBUaGVyZSBhcmUgdHdvIHNlcGFyYXRlIGJsb2NrczpcbiAgICAvLyBmaXJzdCBmb3IgdGhlIGtleSAoZGVub3RlZCBieSBcIj9cIikgYW5kIHNlY29uZCBmb3IgdGhlIHZhbHVlIChkZW5vdGVkIGJ5IFwiOlwiKVxuICAgIC8vXG4gICAgaWYgKChjaCA9PT0gMHgzRi8qID8gKi8gfHwgY2ggPT09IDB4M0EvKiA6ICovKSAmJiBpc19XU19PUl9FT0woZm9sbG93aW5nKSkge1xuXG4gICAgICBpZiAoY2ggPT09IDB4M0YvKiA/ICovKSB7XG4gICAgICAgIGlmIChhdEV4cGxpY2l0S2V5KSB7XG4gICAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwpO1xuICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgZGV0ZWN0ZWQgPSB0cnVlO1xuICAgICAgICBhdEV4cGxpY2l0S2V5ID0gdHJ1ZTtcbiAgICAgICAgYWxsb3dDb21wYWN0ID0gdHJ1ZTtcblxuICAgICAgfSBlbHNlIGlmIChhdEV4cGxpY2l0S2V5KSB7XG4gICAgICAgIC8vIGkuZS4gMHgzQS8qIDogKi8gPT09IGNoYXJhY3RlciBhZnRlciB0aGUgZXhwbGljaXQga2V5LlxuICAgICAgICBhdEV4cGxpY2l0S2V5ID0gZmFsc2U7XG4gICAgICAgIGFsbG93Q29tcGFjdCA9IHRydWU7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdpbmNvbXBsZXRlIGV4cGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBrZXkgbm9kZSBpcyBtaXNzZWQ7IG9yIGZvbGxvd2VkIGJ5IGEgbm9uLXRhYnVsYXRlZCBlbXB0eSBsaW5lJyk7XG4gICAgICB9XG5cbiAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7XG4gICAgICBjaCA9IGZvbGxvd2luZztcblxuICAgIC8vXG4gICAgLy8gSW1wbGljaXQgbm90YXRpb24gY2FzZS4gRmxvdy1zdHlsZSBub2RlIGFzIHRoZSBrZXkgZmlyc3QsIHRoZW4gXCI6XCIsIGFuZCB0aGUgdmFsdWUuXG4gICAgLy9cbiAgICB9IGVsc2UgaWYgKGNvbXBvc2VOb2RlKHN0YXRlLCBmbG93SW5kZW50LCBDT05URVhUX0ZMT1dfT1VULCBmYWxzZSwgdHJ1ZSkpIHtcblxuICAgICAgaWYgKHN0YXRlLmxpbmUgPT09IF9saW5lKSB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaCA9PT0gMHgzQS8qIDogKi8pIHtcbiAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgICAgICBpZiAoIWlzX1dTX09SX0VPTChjaCkpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIGV4cGVjdGVkIGFmdGVyIHRoZSBrZXktdmFsdWUgc2VwYXJhdG9yIHdpdGhpbiBhIGJsb2NrIG1hcHBpbmcnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgICAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwpO1xuICAgICAgICAgICAga2V5VGFnID0ga2V5Tm9kZSA9IHZhbHVlTm9kZSA9IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGV0ZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgIGF0RXhwbGljaXRLZXkgPSBmYWxzZTtcbiAgICAgICAgICBhbGxvd0NvbXBhY3QgPSBmYWxzZTtcbiAgICAgICAgICBrZXlUYWcgPSBzdGF0ZS50YWc7XG4gICAgICAgICAga2V5Tm9kZSA9IHN0YXRlLnJlc3VsdDtcblxuICAgICAgICB9IGVsc2UgaWYgKGRldGVjdGVkKSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2NhbiBub3QgcmVhZCBhbiBpbXBsaWNpdCBtYXBwaW5nIHBhaXI7IGEgY29sb24gaXMgbWlzc2VkJyk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZS50YWcgPSBfdGFnO1xuICAgICAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICAgICAgcmV0dXJuIHRydWU7IC8vIEtlZXAgdGhlIHJlc3VsdCBvZiBgY29tcG9zZU5vZGVgLlxuICAgICAgICB9XG5cbiAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2NhbiBub3QgcmVhZCBhIGJsb2NrIG1hcHBpbmcgZW50cnk7IGEgbXVsdGlsaW5lIGtleSBtYXkgbm90IGJlIGFuIGltcGxpY2l0IGtleScpO1xuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS50YWcgPSBfdGFnO1xuICAgICAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yO1xuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gS2VlcCB0aGUgcmVzdWx0IG9mIGBjb21wb3NlTm9kZWAuXG4gICAgICB9XG5cbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7IC8vIFJlYWRpbmcgaXMgZG9uZS4gR28gdG8gdGhlIGVwaWxvZ3VlLlxuICAgIH1cblxuICAgIC8vXG4gICAgLy8gQ29tbW9uIHJlYWRpbmcgY29kZSBmb3IgYm90aCBleHBsaWNpdCBhbmQgaW1wbGljaXQgbm90YXRpb25zLlxuICAgIC8vXG4gICAgaWYgKHN0YXRlLmxpbmUgPT09IF9saW5lIHx8IHN0YXRlLmxpbmVJbmRlbnQgPiBub2RlSW5kZW50KSB7XG4gICAgICBpZiAoY29tcG9zZU5vZGUoc3RhdGUsIG5vZGVJbmRlbnQsIENPTlRFWFRfQkxPQ0tfT1VULCB0cnVlLCBhbGxvd0NvbXBhY3QpKSB7XG4gICAgICAgIGlmIChhdEV4cGxpY2l0S2V5KSB7XG4gICAgICAgICAga2V5Tm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWx1ZU5vZGUgPSBzdGF0ZS5yZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFhdEV4cGxpY2l0S2V5KSB7XG4gICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIG92ZXJyaWRhYmxlS2V5cywga2V5VGFnLCBrZXlOb2RlLCB2YWx1ZU5vZGUsIF9saW5lLCBfcG9zKTtcbiAgICAgICAga2V5VGFnID0ga2V5Tm9kZSA9IHZhbHVlTm9kZSA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPiBub2RlSW5kZW50ICYmIChjaCAhPT0gMCkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdiYWQgaW5kZW50YXRpb24gb2YgYSBtYXBwaW5nIGVudHJ5Jyk7XG4gICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgbm9kZUluZGVudCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gRXBpbG9ndWUuXG4gIC8vXG5cbiAgLy8gU3BlY2lhbCBjYXNlOiBsYXN0IG1hcHBpbmcncyBub2RlIGNvbnRhaW5zIG9ubHkgdGhlIGtleSBpbiBleHBsaWNpdCBub3RhdGlvbi5cbiAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgbnVsbCk7XG4gIH1cblxuICAvLyBFeHBvc2UgdGhlIHJlc3VsdGluZyBtYXBwaW5nLlxuICBpZiAoZGV0ZWN0ZWQpIHtcbiAgICBzdGF0ZS50YWcgPSBfdGFnO1xuICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgc3RhdGUua2luZCA9ICdtYXBwaW5nJztcbiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0O1xuICB9XG5cbiAgcmV0dXJuIGRldGVjdGVkO1xufVxuXG5mdW5jdGlvbiByZWFkVGFnUHJvcGVydHkoc3RhdGUpIHtcbiAgdmFyIF9wb3NpdGlvbixcbiAgICAgIGlzVmVyYmF0aW0gPSBmYWxzZSxcbiAgICAgIGlzTmFtZWQgICAgPSBmYWxzZSxcbiAgICAgIHRhZ0hhbmRsZSxcbiAgICAgIHRhZ05hbWUsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmIChjaCAhPT0gMHgyMS8qICEgKi8pIHJldHVybiBmYWxzZTtcblxuICBpZiAoc3RhdGUudGFnICE9PSBudWxsKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2R1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5Jyk7XG4gIH1cblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoID09PSAweDNDLyogPCAqLykge1xuICAgIGlzVmVyYmF0aW0gPSB0cnVlO1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICB9IGVsc2UgaWYgKGNoID09PSAweDIxLyogISAqLykge1xuICAgIGlzTmFtZWQgPSB0cnVlO1xuICAgIHRhZ0hhbmRsZSA9ICchISc7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gIH0gZWxzZSB7XG4gICAgdGFnSGFuZGxlID0gJyEnO1xuICB9XG5cbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgaWYgKGlzVmVyYmF0aW0pIHtcbiAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgIHdoaWxlIChjaCAhPT0gMCAmJiBjaCAhPT0gMHgzRS8qID4gKi8pO1xuXG4gICAgaWYgKHN0YXRlLnBvc2l0aW9uIDwgc3RhdGUubGVuZ3RoKSB7XG4gICAgICB0YWdOYW1lID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHZlcmJhdGltIHRhZycpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkpIHtcblxuICAgICAgaWYgKGNoID09PSAweDIxLyogISAqLykge1xuICAgICAgICBpZiAoIWlzTmFtZWQpIHtcbiAgICAgICAgICB0YWdIYW5kbGUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24gLSAxLCBzdGF0ZS5wb3NpdGlvbiArIDEpO1xuXG4gICAgICAgICAgaWYgKCFQQVRURVJOX1RBR19IQU5ETEUudGVzdCh0YWdIYW5kbGUpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnbmFtZWQgdGFnIGhhbmRsZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpc05hbWVkID0gdHJ1ZTtcbiAgICAgICAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbiArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZXhjbGFtYXRpb24gbWFya3MnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTLnRlc3QodGFnTmFtZSkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGZsb3cgaW5kaWNhdG9yIGNoYXJhY3RlcnMnKTtcbiAgICB9XG4gIH1cblxuICBpZiAodGFnTmFtZSAmJiAhUEFUVEVSTl9UQUdfVVJJLnRlc3QodGFnTmFtZSkpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAndGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiAnICsgdGFnTmFtZSk7XG4gIH1cblxuICBpZiAoaXNWZXJiYXRpbSkge1xuICAgIHN0YXRlLnRhZyA9IHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS50YWdNYXAsIHRhZ0hhbmRsZSkpIHtcbiAgICBzdGF0ZS50YWcgPSBzdGF0ZS50YWdNYXBbdGFnSGFuZGxlXSArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmICh0YWdIYW5kbGUgPT09ICchJykge1xuICAgIHN0YXRlLnRhZyA9ICchJyArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmICh0YWdIYW5kbGUgPT09ICchIScpIHtcbiAgICBzdGF0ZS50YWcgPSAndGFnOnlhbWwub3JnLDIwMDI6JyArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5kZWNsYXJlZCB0YWcgaGFuZGxlIFwiJyArIHRhZ0hhbmRsZSArICdcIicpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRBbmNob3JQcm9wZXJ0eShzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoY2ggIT09IDB4MjYvKiAmICovKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdkdXBsaWNhdGlvbiBvZiBhbiBhbmNob3IgcHJvcGVydHknKTtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpICYmICFpc19GTE9XX0lORElDQVRPUihjaCkpIHtcbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gIH1cblxuICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICduYW1lIG9mIGFuIGFuY2hvciBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyJyk7XG4gIH1cblxuICBzdGF0ZS5hbmNob3IgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRBbGlhcyhzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLCBhbGlhcyxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoICE9PSAweDJBLyogKiAqLykgcmV0dXJuIGZhbHNlO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpICYmICFpc19GTE9XX0lORElDQVRPUihjaCkpIHtcbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gIH1cblxuICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICduYW1lIG9mIGFuIGFsaWFzIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXInKTtcbiAgfVxuXG4gIGFsaWFzID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKCFfaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS5hbmNob3JNYXAsIGFsaWFzKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmlkZW50aWZpZWQgYWxpYXMgXCInICsgYWxpYXMgKyAnXCInKTtcbiAgfVxuXG4gIHN0YXRlLnJlc3VsdCA9IHN0YXRlLmFuY2hvck1hcFthbGlhc107XG4gIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbXBvc2VOb2RlKHN0YXRlLCBwYXJlbnRJbmRlbnQsIG5vZGVDb250ZXh0LCBhbGxvd1RvU2VlaywgYWxsb3dDb21wYWN0KSB7XG4gIHZhciBhbGxvd0Jsb2NrU3R5bGVzLFxuICAgICAgYWxsb3dCbG9ja1NjYWxhcnMsXG4gICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMsXG4gICAgICBpbmRlbnRTdGF0dXMgPSAxLCAvLyAxOiB0aGlzPnBhcmVudCwgMDogdGhpcz1wYXJlbnQsIC0xOiB0aGlzPHBhcmVudFxuICAgICAgYXROZXdMaW5lICA9IGZhbHNlLFxuICAgICAgaGFzQ29udGVudCA9IGZhbHNlLFxuICAgICAgdHlwZUluZGV4LFxuICAgICAgdHlwZVF1YW50aXR5LFxuICAgICAgdHlwZSxcbiAgICAgIGZsb3dJbmRlbnQsXG4gICAgICBibG9ja0luZGVudDtcblxuICBpZiAoc3RhdGUubGlzdGVuZXIgIT09IG51bGwpIHtcbiAgICBzdGF0ZS5saXN0ZW5lcignb3BlbicsIHN0YXRlKTtcbiAgfVxuXG4gIHN0YXRlLnRhZyAgICA9IG51bGw7XG4gIHN0YXRlLmFuY2hvciA9IG51bGw7XG4gIHN0YXRlLmtpbmQgICA9IG51bGw7XG4gIHN0YXRlLnJlc3VsdCA9IG51bGw7XG5cbiAgYWxsb3dCbG9ja1N0eWxlcyA9IGFsbG93QmxvY2tTY2FsYXJzID0gYWxsb3dCbG9ja0NvbGxlY3Rpb25zID1cbiAgICBDT05URVhUX0JMT0NLX09VVCA9PT0gbm9kZUNvbnRleHQgfHxcbiAgICBDT05URVhUX0JMT0NLX0lOICA9PT0gbm9kZUNvbnRleHQ7XG5cbiAgaWYgKGFsbG93VG9TZWVrKSB7XG4gICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKSkge1xuICAgICAgYXROZXdMaW5lID0gdHJ1ZTtcblxuICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPiBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgaW5kZW50U3RhdHVzID0gMTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gcGFyZW50SW5kZW50KSB7XG4gICAgICAgIGluZGVudFN0YXR1cyA9IDA7XG4gICAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGluZGVudFN0YXR1cyA9PT0gMSkge1xuICAgIHdoaWxlIChyZWFkVGFnUHJvcGVydHkoc3RhdGUpIHx8IHJlYWRBbmNob3JQcm9wZXJ0eShzdGF0ZSkpIHtcbiAgICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSkpIHtcbiAgICAgICAgYXROZXdMaW5lID0gdHJ1ZTtcbiAgICAgICAgYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gYWxsb3dCbG9ja1N0eWxlcztcblxuICAgICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IHBhcmVudEluZGVudCkge1xuICAgICAgICAgIGluZGVudFN0YXR1cyA9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gcGFyZW50SW5kZW50KSB7XG4gICAgICAgICAgaW5kZW50U3RhdHVzID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgcGFyZW50SW5kZW50KSB7XG4gICAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChhbGxvd0Jsb2NrQ29sbGVjdGlvbnMpIHtcbiAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBhdE5ld0xpbmUgfHwgYWxsb3dDb21wYWN0O1xuICB9XG5cbiAgaWYgKGluZGVudFN0YXR1cyA9PT0gMSB8fCBDT05URVhUX0JMT0NLX09VVCA9PT0gbm9kZUNvbnRleHQpIHtcbiAgICBpZiAoQ09OVEVYVF9GTE9XX0lOID09PSBub2RlQ29udGV4dCB8fCBDT05URVhUX0ZMT1dfT1VUID09PSBub2RlQ29udGV4dCkge1xuICAgICAgZmxvd0luZGVudCA9IHBhcmVudEluZGVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgZmxvd0luZGVudCA9IHBhcmVudEluZGVudCArIDE7XG4gICAgfVxuXG4gICAgYmxvY2tJbmRlbnQgPSBzdGF0ZS5wb3NpdGlvbiAtIHN0YXRlLmxpbmVTdGFydDtcblxuICAgIGlmIChpbmRlbnRTdGF0dXMgPT09IDEpIHtcbiAgICAgIGlmIChhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgJiZcbiAgICAgICAgICAocmVhZEJsb2NrU2VxdWVuY2Uoc3RhdGUsIGJsb2NrSW5kZW50KSB8fFxuICAgICAgICAgICByZWFkQmxvY2tNYXBwaW5nKHN0YXRlLCBibG9ja0luZGVudCwgZmxvd0luZGVudCkpIHx8XG4gICAgICAgICAgcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBmbG93SW5kZW50KSkge1xuICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICgoYWxsb3dCbG9ja1NjYWxhcnMgJiYgcmVhZEJsb2NrU2NhbGFyKHN0YXRlLCBmbG93SW5kZW50KSkgfHxcbiAgICAgICAgICAgIHJlYWRTaW5nbGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpIHx8XG4gICAgICAgICAgICByZWFkRG91YmxlUXVvdGVkU2NhbGFyKHN0YXRlLCBmbG93SW5kZW50KSkge1xuICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xuXG4gICAgICAgIH0gZWxzZSBpZiAocmVhZEFsaWFzKHN0YXRlKSkge1xuICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCB8fCBzdGF0ZS5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdhbGlhcyBub2RlIHNob3VsZCBub3QgaGF2ZSBhbnkgcHJvcGVydGllcycpO1xuICAgICAgICAgIH1cblxuICAgICAgICB9IGVsc2UgaWYgKHJlYWRQbGFpblNjYWxhcihzdGF0ZSwgZmxvd0luZGVudCwgQ09OVEVYVF9GTE9XX0lOID09PSBub2RlQ29udGV4dCkpIHtcbiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTtcblxuICAgICAgICAgIGlmIChzdGF0ZS50YWcgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXRlLnRhZyA9ICc/JztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGluZGVudFN0YXR1cyA9PT0gMCkge1xuICAgICAgLy8gU3BlY2lhbCBjYXNlOiBibG9jayBzZXF1ZW5jZXMgYXJlIGFsbG93ZWQgdG8gaGF2ZSBzYW1lIGluZGVudGF0aW9uIGxldmVsIGFzIHRoZSBwYXJlbnQuXG4gICAgICAvLyBodHRwOi8vd3d3LnlhbWwub3JnL3NwZWMvMS4yL3NwZWMuaHRtbCNpZDI3OTk3ODRcbiAgICAgIGhhc0NvbnRlbnQgPSBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgJiYgcmVhZEJsb2NrU2VxdWVuY2Uoc3RhdGUsIGJsb2NrSW5kZW50KTtcbiAgICB9XG4gIH1cblxuICBpZiAoc3RhdGUudGFnICE9PSBudWxsICYmIHN0YXRlLnRhZyAhPT0gJyEnKSB7XG4gICAgaWYgKHN0YXRlLnRhZyA9PT0gJz8nKSB7XG4gICAgICAvLyBJbXBsaWNpdCByZXNvbHZpbmcgaXMgbm90IGFsbG93ZWQgZm9yIG5vbi1zY2FsYXIgdHlwZXMsIGFuZCAnPydcbiAgICAgIC8vIG5vbi1zcGVjaWZpYyB0YWcgaXMgb25seSBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIHRvIHBsYWluIHNjYWxhcnMuXG4gICAgICAvL1xuICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIGNoZWNrIGtpbmQgY29uZm9ybWl0eSBpbiBjYXNlIHVzZXIgZXhwbGljaXRseSBhc3NpZ25zICc/J1xuICAgICAgLy8gdGFnLCBmb3IgZXhhbXBsZSBsaWtlIHRoaXM6IFwiITw/PiBbMF1cIlxuICAgICAgLy9cbiAgICAgIGlmIChzdGF0ZS5yZXN1bHQgIT09IG51bGwgJiYgc3RhdGUua2luZCAhPT0gJ3NjYWxhcicpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8Pz4gdGFnOyBpdCBzaG91bGQgYmUgXCJzY2FsYXJcIiwgbm90IFwiJyArIHN0YXRlLmtpbmQgKyAnXCInKTtcbiAgICAgIH1cblxuICAgICAgZm9yICh0eXBlSW5kZXggPSAwLCB0eXBlUXVhbnRpdHkgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzLmxlbmd0aDsgdHlwZUluZGV4IDwgdHlwZVF1YW50aXR5OyB0eXBlSW5kZXggKz0gMSkge1xuICAgICAgICB0eXBlID0gc3RhdGUuaW1wbGljaXRUeXBlc1t0eXBlSW5kZXhdO1xuXG4gICAgICAgIGlmICh0eXBlLnJlc29sdmUoc3RhdGUucmVzdWx0KSkgeyAvLyBgc3RhdGUucmVzdWx0YCB1cGRhdGVkIGluIHJlc29sdmVyIGlmIG1hdGNoZWRcbiAgICAgICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlLmNvbnN0cnVjdChzdGF0ZS5yZXN1bHQpO1xuICAgICAgICAgIHN0YXRlLnRhZyA9IHR5cGUudGFnO1xuICAgICAgICAgIGlmIChzdGF0ZS5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gc3RhdGUucmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5LmNhbGwoc3RhdGUudHlwZU1hcFtzdGF0ZS5raW5kIHx8ICdmYWxsYmFjayddLCBzdGF0ZS50YWcpKSB7XG4gICAgICB0eXBlID0gc3RhdGUudHlwZU1hcFtzdGF0ZS5raW5kIHx8ICdmYWxsYmFjayddW3N0YXRlLnRhZ107XG5cbiAgICAgIGlmIChzdGF0ZS5yZXN1bHQgIT09IG51bGwgJiYgdHlwZS5raW5kICE9PSBzdGF0ZS5raW5kKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPCcgKyBzdGF0ZS50YWcgKyAnPiB0YWc7IGl0IHNob3VsZCBiZSBcIicgKyB0eXBlLmtpbmQgKyAnXCIsIG5vdCBcIicgKyBzdGF0ZS5raW5kICsgJ1wiJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdHlwZS5yZXNvbHZlKHN0YXRlLnJlc3VsdCkpIHsgLy8gYHN0YXRlLnJlc3VsdGAgdXBkYXRlZCBpbiByZXNvbHZlciBpZiBtYXRjaGVkXG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdjYW5ub3QgcmVzb2x2ZSBhIG5vZGUgd2l0aCAhPCcgKyBzdGF0ZS50YWcgKyAnPiBleHBsaWNpdCB0YWcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLnJlc3VsdCA9IHR5cGUuY29uc3RydWN0KHN0YXRlLnJlc3VsdCk7XG4gICAgICAgIGlmIChzdGF0ZS5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5rbm93biB0YWcgITwnICsgc3RhdGUudGFnICsgJz4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAoc3RhdGUubGlzdGVuZXIgIT09IG51bGwpIHtcbiAgICBzdGF0ZS5saXN0ZW5lcignY2xvc2UnLCBzdGF0ZSk7XG4gIH1cbiAgcmV0dXJuIHN0YXRlLnRhZyAhPT0gbnVsbCB8fCAgc3RhdGUuYW5jaG9yICE9PSBudWxsIHx8IGhhc0NvbnRlbnQ7XG59XG5cbmZ1bmN0aW9uIHJlYWREb2N1bWVudChzdGF0ZSkge1xuICB2YXIgZG9jdW1lbnRTdGFydCA9IHN0YXRlLnBvc2l0aW9uLFxuICAgICAgX3Bvc2l0aW9uLFxuICAgICAgZGlyZWN0aXZlTmFtZSxcbiAgICAgIGRpcmVjdGl2ZUFyZ3MsXG4gICAgICBoYXNEaXJlY3RpdmVzID0gZmFsc2UsXG4gICAgICBjaDtcblxuICBzdGF0ZS52ZXJzaW9uID0gbnVsbDtcbiAgc3RhdGUuY2hlY2tMaW5lQnJlYWtzID0gc3RhdGUubGVnYWN5O1xuICBzdGF0ZS50YWdNYXAgPSB7fTtcbiAgc3RhdGUuYW5jaG9yTWFwID0ge307XG5cbiAgd2hpbGUgKChjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSAhPT0gMCkge1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IDAgfHwgY2ggIT09IDB4MjUvKiAlICovKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBoYXNEaXJlY3RpdmVzID0gdHJ1ZTtcbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkpIHtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBkaXJlY3RpdmVOYW1lID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7XG4gICAgZGlyZWN0aXZlQXJncyA9IFtdO1xuXG4gICAgaWYgKGRpcmVjdGl2ZU5hbWUubGVuZ3RoIDwgMSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2RpcmVjdGl2ZSBuYW1lIG11c3Qgbm90IGJlIGxlc3MgdGhhbiBvbmUgY2hhcmFjdGVyIGluIGxlbmd0aCcpO1xuICAgIH1cblxuICAgIHdoaWxlIChjaCAhPT0gMCkge1xuICAgICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaCA9PT0gMHgyMy8qICMgKi8pIHtcbiAgICAgICAgZG8geyBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7IH1cbiAgICAgICAgd2hpbGUgKGNoICE9PSAwICYmICFpc19FT0woY2gpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc19FT0woY2gpKSBicmVhaztcblxuICAgICAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgICAgIHdoaWxlIChjaCAhPT0gMCAmJiAhaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGRpcmVjdGl2ZUFyZ3MucHVzaChzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKSk7XG4gICAgfVxuXG4gICAgaWYgKGNoICE9PSAwKSByZWFkTGluZUJyZWFrKHN0YXRlKTtcblxuICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChkaXJlY3RpdmVIYW5kbGVycywgZGlyZWN0aXZlTmFtZSkpIHtcbiAgICAgIGRpcmVjdGl2ZUhhbmRsZXJzW2RpcmVjdGl2ZU5hbWVdKHN0YXRlLCBkaXJlY3RpdmVOYW1lLCBkaXJlY3RpdmVBcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAndW5rbm93biBkb2N1bWVudCBkaXJlY3RpdmUgXCInICsgZGlyZWN0aXZlTmFtZSArICdcIicpO1xuICAgIH1cbiAgfVxuXG4gIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcblxuICBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gMCAmJlxuICAgICAgc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgICAgID09PSAweDJELyogLSAqLyAmJlxuICAgICAgc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpID09PSAweDJELyogLSAqLyAmJlxuICAgICAgc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDIpID09PSAweDJELyogLSAqLykge1xuICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuXG4gIH0gZWxzZSBpZiAoaGFzRGlyZWN0aXZlcykge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdkaXJlY3RpdmVzIGVuZCBtYXJrIGlzIGV4cGVjdGVkJyk7XG4gIH1cblxuICBjb21wb3NlTm9kZShzdGF0ZSwgc3RhdGUubGluZUluZGVudCAtIDEsIENPTlRFWFRfQkxPQ0tfT1VULCBmYWxzZSwgdHJ1ZSk7XG4gIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcblxuICBpZiAoc3RhdGUuY2hlY2tMaW5lQnJlYWtzICYmXG4gICAgICBQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUy50ZXN0KHN0YXRlLmlucHV0LnNsaWNlKGRvY3VtZW50U3RhcnQsIHN0YXRlLnBvc2l0aW9uKSkpIHtcbiAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICdub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQnKTtcbiAgfVxuXG4gIHN0YXRlLmRvY3VtZW50cy5wdXNoKHN0YXRlLnJlc3VsdCk7XG5cbiAgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkge1xuXG4gICAgaWYgKHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pID09PSAweDJFLyogLiAqLykge1xuICAgICAgc3RhdGUucG9zaXRpb24gKz0gMztcbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHN0YXRlLnBvc2l0aW9uIDwgKHN0YXRlLmxlbmd0aCAtIDEpKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2VuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkJyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuO1xuICB9XG59XG5cblxuZnVuY3Rpb24gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucykge1xuICBpbnB1dCA9IFN0cmluZyhpbnB1dCk7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIGlmIChpbnB1dC5sZW5ndGggIT09IDApIHtcblxuICAgIC8vIEFkZCB0YWlsaW5nIGBcXG5gIGlmIG5vdCBleGlzdHNcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAhPT0gMHgwQS8qIExGICovICYmXG4gICAgICAgIGlucHV0LmNoYXJDb2RlQXQoaW5wdXQubGVuZ3RoIC0gMSkgIT09IDB4MEQvKiBDUiAqLykge1xuICAgICAgaW5wdXQgKz0gJ1xcbic7XG4gICAgfVxuXG4gICAgLy8gU3RyaXAgQk9NXG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xuICAgICAgaW5wdXQgPSBpbnB1dC5zbGljZSgxKTtcbiAgICB9XG4gIH1cblxuICB2YXIgc3RhdGUgPSBuZXcgU3RhdGUoaW5wdXQsIG9wdGlvbnMpO1xuXG4gIHZhciBudWxscG9zID0gaW5wdXQuaW5kZXhPZignXFwwJyk7XG5cbiAgaWYgKG51bGxwb3MgIT09IC0xKSB7XG4gICAgc3RhdGUucG9zaXRpb24gPSBudWxscG9zO1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdudWxsIGJ5dGUgaXMgbm90IGFsbG93ZWQgaW4gaW5wdXQnKTtcbiAgfVxuXG4gIC8vIFVzZSAwIGFzIHN0cmluZyB0ZXJtaW5hdG9yLiBUaGF0IHNpZ25pZmljYW50bHkgc2ltcGxpZmllcyBib3VuZHMgY2hlY2suXG4gIHN0YXRlLmlucHV0ICs9ICdcXDAnO1xuXG4gIHdoaWxlIChzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSA9PT0gMHgyMC8qIFNwYWNlICovKSB7XG4gICAgc3RhdGUubGluZUluZGVudCArPSAxO1xuICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7XG4gIH1cblxuICB3aGlsZSAoc3RhdGUucG9zaXRpb24gPCAoc3RhdGUubGVuZ3RoIC0gMSkpIHtcbiAgICByZWFkRG9jdW1lbnQoc3RhdGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlLmRvY3VtZW50cztcbn1cblxuXG5mdW5jdGlvbiBsb2FkQWxsKGlucHV0LCBpdGVyYXRvciwgb3B0aW9ucykge1xuICBpZiAoaXRlcmF0b3IgIT09IG51bGwgJiYgdHlwZW9mIGl0ZXJhdG9yID09PSAnb2JqZWN0JyAmJiB0eXBlb2Ygb3B0aW9ucyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBvcHRpb25zID0gaXRlcmF0b3I7XG4gICAgaXRlcmF0b3IgPSBudWxsO1xuICB9XG5cbiAgdmFyIGRvY3VtZW50cyA9IGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpO1xuXG4gIGlmICh0eXBlb2YgaXRlcmF0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZG9jdW1lbnRzO1xuICB9XG5cbiAgZm9yICh2YXIgaW5kZXggPSAwLCBsZW5ndGggPSBkb2N1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGl0ZXJhdG9yKGRvY3VtZW50c1tpbmRleF0pO1xuICB9XG59XG5cblxuZnVuY3Rpb24gbG9hZChpbnB1dCwgb3B0aW9ucykge1xuICB2YXIgZG9jdW1lbnRzID0gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucyk7XG5cbiAgaWYgKGRvY3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAvKmVzbGludC1kaXNhYmxlIG5vLXVuZGVmaW5lZCovXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBlbHNlIGlmIChkb2N1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50c1swXTtcbiAgfVxuICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignZXhwZWN0ZWQgYSBzaW5nbGUgZG9jdW1lbnQgaW4gdGhlIHN0cmVhbSwgYnV0IGZvdW5kIG1vcmUnKTtcbn1cblxuXG5mdW5jdGlvbiBzYWZlTG9hZEFsbChpbnB1dCwgaXRlcmF0b3IsIG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBpdGVyYXRvciA9PT0gJ29iamVjdCcgJiYgaXRlcmF0b3IgIT09IG51bGwgJiYgdHlwZW9mIG9wdGlvbnMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgb3B0aW9ucyA9IGl0ZXJhdG9yO1xuICAgIGl0ZXJhdG9yID0gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBsb2FkQWxsKGlucHV0LCBpdGVyYXRvciwgY29tbW9uLmV4dGVuZCh7IHNjaGVtYTogREVGQVVMVF9TQUZFX1NDSEVNQSB9LCBvcHRpb25zKSk7XG59XG5cblxuZnVuY3Rpb24gc2FmZUxvYWQoaW5wdXQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGxvYWQoaW5wdXQsIGNvbW1vbi5leHRlbmQoeyBzY2hlbWE6IERFRkFVTFRfU0FGRV9TQ0hFTUEgfSwgb3B0aW9ucykpO1xufVxuXG5cbm1vZHVsZS5leHBvcnRzLmxvYWRBbGwgICAgID0gbG9hZEFsbDtcbm1vZHVsZS5leHBvcnRzLmxvYWQgICAgICAgID0gbG9hZDtcbm1vZHVsZS5leHBvcnRzLnNhZmVMb2FkQWxsID0gc2FmZUxvYWRBbGw7XG5tb2R1bGUuZXhwb3J0cy5zYWZlTG9hZCAgICA9IHNhZmVMb2FkO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyplc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSovXG5cbnZhciBjb21tb24gICAgICAgICAgICAgID0gcmVxdWlyZSgnLi9jb21tb24nKTtcbnZhciBZQU1MRXhjZXB0aW9uICAgICAgID0gcmVxdWlyZSgnLi9leGNlcHRpb24nKTtcbnZhciBERUZBVUxUX0ZVTExfU0NIRU1BID0gcmVxdWlyZSgnLi9zY2hlbWEvZGVmYXVsdF9mdWxsJyk7XG52YXIgREVGQVVMVF9TQUZFX1NDSEVNQSA9IHJlcXVpcmUoJy4vc2NoZW1hL2RlZmF1bHRfc2FmZScpO1xuXG52YXIgX3RvU3RyaW5nICAgICAgID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbnZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG52YXIgQ0hBUl9UQUIgICAgICAgICAgICAgICAgICA9IDB4MDk7IC8qIFRhYiAqL1xudmFyIENIQVJfTElORV9GRUVEICAgICAgICAgICAgPSAweDBBOyAvKiBMRiAqL1xudmFyIENIQVJfQ0FSUklBR0VfUkVUVVJOICAgICAgPSAweDBEOyAvKiBDUiAqL1xudmFyIENIQVJfU1BBQ0UgICAgICAgICAgICAgICAgPSAweDIwOyAvKiBTcGFjZSAqL1xudmFyIENIQVJfRVhDTEFNQVRJT04gICAgICAgICAgPSAweDIxOyAvKiAhICovXG52YXIgQ0hBUl9ET1VCTEVfUVVPVEUgICAgICAgICA9IDB4MjI7IC8qIFwiICovXG52YXIgQ0hBUl9TSEFSUCAgICAgICAgICAgICAgICA9IDB4MjM7IC8qICMgKi9cbnZhciBDSEFSX1BFUkNFTlQgICAgICAgICAgICAgID0gMHgyNTsgLyogJSAqL1xudmFyIENIQVJfQU1QRVJTQU5EICAgICAgICAgICAgPSAweDI2OyAvKiAmICovXG52YXIgQ0hBUl9TSU5HTEVfUVVPVEUgICAgICAgICA9IDB4Mjc7IC8qICcgKi9cbnZhciBDSEFSX0FTVEVSSVNLICAgICAgICAgICAgID0gMHgyQTsgLyogKiAqL1xudmFyIENIQVJfQ09NTUEgICAgICAgICAgICAgICAgPSAweDJDOyAvKiAsICovXG52YXIgQ0hBUl9NSU5VUyAgICAgICAgICAgICAgICA9IDB4MkQ7IC8qIC0gKi9cbnZhciBDSEFSX0NPTE9OICAgICAgICAgICAgICAgID0gMHgzQTsgLyogOiAqL1xudmFyIENIQVJfRVFVQUxTICAgICAgICAgICAgICAgPSAweDNEOyAvKiA9ICovXG52YXIgQ0hBUl9HUkVBVEVSX1RIQU4gICAgICAgICA9IDB4M0U7IC8qID4gKi9cbnZhciBDSEFSX1FVRVNUSU9OICAgICAgICAgICAgID0gMHgzRjsgLyogPyAqL1xudmFyIENIQVJfQ09NTUVSQ0lBTF9BVCAgICAgICAgPSAweDQwOyAvKiBAICovXG52YXIgQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUICA9IDB4NUI7IC8qIFsgKi9cbnZhciBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUID0gMHg1RDsgLyogXSAqL1xudmFyIENIQVJfR1JBVkVfQUNDRU5UICAgICAgICAgPSAweDYwOyAvKiBgICovXG52YXIgQ0hBUl9MRUZUX0NVUkxZX0JSQUNLRVQgICA9IDB4N0I7IC8qIHsgKi9cbnZhciBDSEFSX1ZFUlRJQ0FMX0xJTkUgICAgICAgID0gMHg3QzsgLyogfCAqL1xudmFyIENIQVJfUklHSFRfQ1VSTFlfQlJBQ0tFVCAgPSAweDdEOyAvKiB9ICovXG5cbnZhciBFU0NBUEVfU0VRVUVOQ0VTID0ge307XG5cbkVTQ0FQRV9TRVFVRU5DRVNbMHgwMF0gICA9ICdcXFxcMCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MDddICAgPSAnXFxcXGEnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDA4XSAgID0gJ1xcXFxiJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwOV0gICA9ICdcXFxcdCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MEFdICAgPSAnXFxcXG4nO1xuRVNDQVBFX1NFUVVFTkNFU1sweDBCXSAgID0gJ1xcXFx2JztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwQ10gICA9ICdcXFxcZic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MERdICAgPSAnXFxcXHInO1xuRVNDQVBFX1NFUVVFTkNFU1sweDFCXSAgID0gJ1xcXFxlJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgyMl0gICA9ICdcXFxcXCInO1xuRVNDQVBFX1NFUVVFTkNFU1sweDVDXSAgID0gJ1xcXFxcXFxcJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHg4NV0gICA9ICdcXFxcTic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4QTBdICAgPSAnXFxcXF8nO1xuRVNDQVBFX1NFUVVFTkNFU1sweDIwMjhdID0gJ1xcXFxMJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgyMDI5XSA9ICdcXFxcUCc7XG5cbnZhciBERVBSRUNBVEVEX0JPT0xFQU5TX1NZTlRBWCA9IFtcbiAgJ3knLCAnWScsICd5ZXMnLCAnWWVzJywgJ1lFUycsICdvbicsICdPbicsICdPTicsXG4gICduJywgJ04nLCAnbm8nLCAnTm8nLCAnTk8nLCAnb2ZmJywgJ09mZicsICdPRkYnXG5dO1xuXG5mdW5jdGlvbiBjb21waWxlU3R5bGVNYXAoc2NoZW1hLCBtYXApIHtcbiAgdmFyIHJlc3VsdCwga2V5cywgaW5kZXgsIGxlbmd0aCwgdGFnLCBzdHlsZSwgdHlwZTtcblxuICBpZiAobWFwID09PSBudWxsKSByZXR1cm4ge307XG5cbiAgcmVzdWx0ID0ge307XG4gIGtleXMgPSBPYmplY3Qua2V5cyhtYXApO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBrZXlzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICB0YWcgPSBrZXlzW2luZGV4XTtcbiAgICBzdHlsZSA9IFN0cmluZyhtYXBbdGFnXSk7XG5cbiAgICBpZiAodGFnLnNsaWNlKDAsIDIpID09PSAnISEnKSB7XG4gICAgICB0YWcgPSAndGFnOnlhbWwub3JnLDIwMDI6JyArIHRhZy5zbGljZSgyKTtcbiAgICB9XG4gICAgdHlwZSA9IHNjaGVtYS5jb21waWxlZFR5cGVNYXBbJ2ZhbGxiYWNrJ11bdGFnXTtcblxuICAgIGlmICh0eXBlICYmIF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHR5cGUuc3R5bGVBbGlhc2VzLCBzdHlsZSkpIHtcbiAgICAgIHN0eWxlID0gdHlwZS5zdHlsZUFsaWFzZXNbc3R5bGVdO1xuICAgIH1cblxuICAgIHJlc3VsdFt0YWddID0gc3R5bGU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBlbmNvZGVIZXgoY2hhcmFjdGVyKSB7XG4gIHZhciBzdHJpbmcsIGhhbmRsZSwgbGVuZ3RoO1xuXG4gIHN0cmluZyA9IGNoYXJhY3Rlci50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcblxuICBpZiAoY2hhcmFjdGVyIDw9IDB4RkYpIHtcbiAgICBoYW5kbGUgPSAneCc7XG4gICAgbGVuZ3RoID0gMjtcbiAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPD0gMHhGRkZGKSB7XG4gICAgaGFuZGxlID0gJ3UnO1xuICAgIGxlbmd0aCA9IDQ7XG4gIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDB4RkZGRkZGRkYpIHtcbiAgICBoYW5kbGUgPSAnVSc7XG4gICAgbGVuZ3RoID0gODtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignY29kZSBwb2ludCB3aXRoaW4gYSBzdHJpbmcgbWF5IG5vdCBiZSBncmVhdGVyIHRoYW4gMHhGRkZGRkZGRicpO1xuICB9XG5cbiAgcmV0dXJuICdcXFxcJyArIGhhbmRsZSArIGNvbW1vbi5yZXBlYXQoJzAnLCBsZW5ndGggLSBzdHJpbmcubGVuZ3RoKSArIHN0cmluZztcbn1cblxuZnVuY3Rpb24gU3RhdGUob3B0aW9ucykge1xuICB0aGlzLnNjaGVtYSAgICAgICAgPSBvcHRpb25zWydzY2hlbWEnXSB8fCBERUZBVUxUX0ZVTExfU0NIRU1BO1xuICB0aGlzLmluZGVudCAgICAgICAgPSBNYXRoLm1heCgxLCAob3B0aW9uc1snaW5kZW50J10gfHwgMikpO1xuICB0aGlzLm5vQXJyYXlJbmRlbnQgPSBvcHRpb25zWydub0FycmF5SW5kZW50J10gfHwgZmFsc2U7XG4gIHRoaXMuc2tpcEludmFsaWQgICA9IG9wdGlvbnNbJ3NraXBJbnZhbGlkJ10gfHwgZmFsc2U7XG4gIHRoaXMuZmxvd0xldmVsICAgICA9IChjb21tb24uaXNOb3RoaW5nKG9wdGlvbnNbJ2Zsb3dMZXZlbCddKSA/IC0xIDogb3B0aW9uc1snZmxvd0xldmVsJ10pO1xuICB0aGlzLnN0eWxlTWFwICAgICAgPSBjb21waWxlU3R5bGVNYXAodGhpcy5zY2hlbWEsIG9wdGlvbnNbJ3N0eWxlcyddIHx8IG51bGwpO1xuICB0aGlzLnNvcnRLZXlzICAgICAgPSBvcHRpb25zWydzb3J0S2V5cyddIHx8IGZhbHNlO1xuICB0aGlzLmxpbmVXaWR0aCAgICAgPSBvcHRpb25zWydsaW5lV2lkdGgnXSB8fCA4MDtcbiAgdGhpcy5ub1JlZnMgICAgICAgID0gb3B0aW9uc1snbm9SZWZzJ10gfHwgZmFsc2U7XG4gIHRoaXMubm9Db21wYXRNb2RlICA9IG9wdGlvbnNbJ25vQ29tcGF0TW9kZSddIHx8IGZhbHNlO1xuICB0aGlzLmNvbmRlbnNlRmxvdyAgPSBvcHRpb25zWydjb25kZW5zZUZsb3cnXSB8fCBmYWxzZTtcblxuICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0O1xuICB0aGlzLmV4cGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEV4cGxpY2l0O1xuXG4gIHRoaXMudGFnID0gbnVsbDtcbiAgdGhpcy5yZXN1bHQgPSAnJztcblxuICB0aGlzLmR1cGxpY2F0ZXMgPSBbXTtcbiAgdGhpcy51c2VkRHVwbGljYXRlcyA9IG51bGw7XG59XG5cbi8vIEluZGVudHMgZXZlcnkgbGluZSBpbiBhIHN0cmluZy4gRW1wdHkgbGluZXMgKFxcbiBvbmx5KSBhcmUgbm90IGluZGVudGVkLlxuZnVuY3Rpb24gaW5kZW50U3RyaW5nKHN0cmluZywgc3BhY2VzKSB7XG4gIHZhciBpbmQgPSBjb21tb24ucmVwZWF0KCcgJywgc3BhY2VzKSxcbiAgICAgIHBvc2l0aW9uID0gMCxcbiAgICAgIG5leHQgPSAtMSxcbiAgICAgIHJlc3VsdCA9ICcnLFxuICAgICAgbGluZSxcbiAgICAgIGxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG5cbiAgd2hpbGUgKHBvc2l0aW9uIDwgbGVuZ3RoKSB7XG4gICAgbmV4dCA9IHN0cmluZy5pbmRleE9mKCdcXG4nLCBwb3NpdGlvbik7XG4gICAgaWYgKG5leHQgPT09IC0xKSB7XG4gICAgICBsaW5lID0gc3RyaW5nLnNsaWNlKHBvc2l0aW9uKTtcbiAgICAgIHBvc2l0aW9uID0gbGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaW5lID0gc3RyaW5nLnNsaWNlKHBvc2l0aW9uLCBuZXh0ICsgMSk7XG4gICAgICBwb3NpdGlvbiA9IG5leHQgKyAxO1xuICAgIH1cblxuICAgIGlmIChsaW5lLmxlbmd0aCAmJiBsaW5lICE9PSAnXFxuJykgcmVzdWx0ICs9IGluZDtcblxuICAgIHJlc3VsdCArPSBsaW5lO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVOZXh0TGluZShzdGF0ZSwgbGV2ZWwpIHtcbiAgcmV0dXJuICdcXG4nICsgY29tbW9uLnJlcGVhdCgnICcsIHN0YXRlLmluZGVudCAqIGxldmVsKTtcbn1cblxuZnVuY3Rpb24gdGVzdEltcGxpY2l0UmVzb2x2aW5nKHN0YXRlLCBzdHIpIHtcbiAgdmFyIGluZGV4LCBsZW5ndGgsIHR5cGU7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHN0YXRlLmltcGxpY2l0VHlwZXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHR5cGUgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW2luZGV4XTtcblxuICAgIGlmICh0eXBlLnJlc29sdmUoc3RyKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vLyBbMzNdIHMtd2hpdGUgOjo9IHMtc3BhY2UgfCBzLXRhYlxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGMpIHtcbiAgcmV0dXJuIGMgPT09IENIQVJfU1BBQ0UgfHwgYyA9PT0gQ0hBUl9UQUI7XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGNhbiBiZSBwcmludGVkIHdpdGhvdXQgZXNjYXBpbmcuXG4vLyBGcm9tIFlBTUwgMS4yOiBcImFueSBhbGxvd2VkIGNoYXJhY3RlcnMga25vd24gdG8gYmUgbm9uLXByaW50YWJsZVxuLy8gc2hvdWxkIGFsc28gYmUgZXNjYXBlZC4gW0hvd2V2ZXIsXSBUaGlzIGlzblx1MjAxOXQgbWFuZGF0b3J5XCJcbi8vIERlcml2ZWQgZnJvbSBuYi1jaGFyIC0gXFx0IC0gI3g4NSAtICN4QTAgLSAjeDIwMjggLSAjeDIwMjkuXG5mdW5jdGlvbiBpc1ByaW50YWJsZShjKSB7XG4gIHJldHVybiAgKDB4MDAwMjAgPD0gYyAmJiBjIDw9IDB4MDAwMDdFKVxuICAgICAgfHwgKCgweDAwMEExIDw9IGMgJiYgYyA8PSAweDAwRDdGRikgJiYgYyAhPT0gMHgyMDI4ICYmIGMgIT09IDB4MjAyOSlcbiAgICAgIHx8ICgoMHgwRTAwMCA8PSBjICYmIGMgPD0gMHgwMEZGRkQpICYmIGMgIT09IDB4RkVGRiAvKiBCT00gKi8pXG4gICAgICB8fCAgKDB4MTAwMDAgPD0gYyAmJiBjIDw9IDB4MTBGRkZGKTtcbn1cblxuLy8gWzM0XSBucy1jaGFyIDo6PSBuYi1jaGFyIC0gcy13aGl0ZVxuLy8gWzI3XSBuYi1jaGFyIDo6PSBjLXByaW50YWJsZSAtIGItY2hhciAtIGMtYnl0ZS1vcmRlci1tYXJrXG4vLyBbMjZdIGItY2hhciAgOjo9IGItbGluZS1mZWVkIHwgYi1jYXJyaWFnZS1yZXR1cm5cbi8vIFsyNF0gYi1saW5lLWZlZWQgICAgICAgOjo9ICAgICAjeEEgICAgLyogTEYgKi9cbi8vIFsyNV0gYi1jYXJyaWFnZS1yZXR1cm4gOjo9ICAgICAjeEQgICAgLyogQ1IgKi9cbi8vIFszXSAgYy1ieXRlLW9yZGVyLW1hcmsgOjo9ICAgICAjeEZFRkZcbmZ1bmN0aW9uIGlzTnNDaGFyKGMpIHtcbiAgcmV0dXJuIGlzUHJpbnRhYmxlKGMpICYmICFpc1doaXRlc3BhY2UoYylcbiAgICAvLyBieXRlLW9yZGVyLW1hcmtcbiAgICAmJiBjICE9PSAweEZFRkZcbiAgICAvLyBiLWNoYXJcbiAgICAmJiBjICE9PSBDSEFSX0NBUlJJQUdFX1JFVFVSTlxuICAgICYmIGMgIT09IENIQVJfTElORV9GRUVEO1xufVxuXG4vLyBTaW1wbGlmaWVkIHRlc3QgZm9yIHZhbHVlcyBhbGxvd2VkIGFmdGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gcGxhaW4gc3R5bGUuXG5mdW5jdGlvbiBpc1BsYWluU2FmZShjLCBwcmV2KSB7XG4gIC8vIFVzZXMgYSBzdWJzZXQgb2YgbmItY2hhciAtIGMtZmxvdy1pbmRpY2F0b3IgLSBcIjpcIiAtIFwiI1wiXG4gIC8vIHdoZXJlIG5iLWNoYXIgOjo9IGMtcHJpbnRhYmxlIC0gYi1jaGFyIC0gYy1ieXRlLW9yZGVyLW1hcmsuXG4gIHJldHVybiBpc1ByaW50YWJsZShjKSAmJiBjICE9PSAweEZFRkZcbiAgICAvLyAtIGMtZmxvdy1pbmRpY2F0b3JcbiAgICAmJiBjICE9PSBDSEFSX0NPTU1BXG4gICAgJiYgYyAhPT0gQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUXG4gICAgJiYgYyAhPT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVFxuICAgICYmIGMgIT09IENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUXG4gICAgJiYgYyAhPT0gQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUXG4gICAgLy8gLSBcIjpcIiAtIFwiI1wiXG4gICAgLy8gLyogQW4gbnMtY2hhciBwcmVjZWRpbmcgKi8gXCIjXCJcbiAgICAmJiBjICE9PSBDSEFSX0NPTE9OXG4gICAgJiYgKChjICE9PSBDSEFSX1NIQVJQKSB8fCAocHJldiAmJiBpc05zQ2hhcihwcmV2KSkpO1xufVxuXG4vLyBTaW1wbGlmaWVkIHRlc3QgZm9yIHZhbHVlcyBhbGxvd2VkIGFzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gcGxhaW4gc3R5bGUuXG5mdW5jdGlvbiBpc1BsYWluU2FmZUZpcnN0KGMpIHtcbiAgLy8gVXNlcyBhIHN1YnNldCBvZiBucy1jaGFyIC0gYy1pbmRpY2F0b3JcbiAgLy8gd2hlcmUgbnMtY2hhciA9IG5iLWNoYXIgLSBzLXdoaXRlLlxuICByZXR1cm4gaXNQcmludGFibGUoYykgJiYgYyAhPT0gMHhGRUZGXG4gICAgJiYgIWlzV2hpdGVzcGFjZShjKSAvLyAtIHMtd2hpdGVcbiAgICAvLyAtIChjLWluZGljYXRvciA6Oj1cbiAgICAvLyBcdTIwMUMtXHUyMDFEIHwgXHUyMDFDP1x1MjAxRCB8IFx1MjAxQzpcdTIwMUQgfCBcdTIwMUMsXHUyMDFEIHwgXHUyMDFDW1x1MjAxRCB8IFx1MjAxQ11cdTIwMUQgfCBcdTIwMUN7XHUyMDFEIHwgXHUyMDFDfVx1MjAxRFxuICAgICYmIGMgIT09IENIQVJfTUlOVVNcbiAgICAmJiBjICE9PSBDSEFSX1FVRVNUSU9OXG4gICAgJiYgYyAhPT0gQ0hBUl9DT0xPTlxuICAgICYmIGMgIT09IENIQVJfQ09NTUFcbiAgICAmJiBjICE9PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVRcbiAgICAmJiBjICE9PSBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUXG4gICAgJiYgYyAhPT0gQ0hBUl9MRUZUX0NVUkxZX0JSQUNLRVRcbiAgICAmJiBjICE9PSBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVRcbiAgICAvLyB8IFx1MjAxQyNcdTIwMUQgfCBcdTIwMUMmXHUyMDFEIHwgXHUyMDFDKlx1MjAxRCB8IFx1MjAxQyFcdTIwMUQgfCBcdTIwMUN8XHUyMDFEIHwgXHUyMDFDPVx1MjAxRCB8IFx1MjAxQz5cdTIwMUQgfCBcdTIwMUMnXHUyMDFEIHwgXHUyMDFDXCJcdTIwMURcbiAgICAmJiBjICE9PSBDSEFSX1NIQVJQXG4gICAgJiYgYyAhPT0gQ0hBUl9BTVBFUlNBTkRcbiAgICAmJiBjICE9PSBDSEFSX0FTVEVSSVNLXG4gICAgJiYgYyAhPT0gQ0hBUl9FWENMQU1BVElPTlxuICAgICYmIGMgIT09IENIQVJfVkVSVElDQUxfTElORVxuICAgICYmIGMgIT09IENIQVJfRVFVQUxTXG4gICAgJiYgYyAhPT0gQ0hBUl9HUkVBVEVSX1RIQU5cbiAgICAmJiBjICE9PSBDSEFSX1NJTkdMRV9RVU9URVxuICAgICYmIGMgIT09IENIQVJfRE9VQkxFX1FVT1RFXG4gICAgLy8gfCBcdTIwMUMlXHUyMDFEIHwgXHUyMDFDQFx1MjAxRCB8IFx1MjAxQ2BcdTIwMUQpXG4gICAgJiYgYyAhPT0gQ0hBUl9QRVJDRU5UXG4gICAgJiYgYyAhPT0gQ0hBUl9DT01NRVJDSUFMX0FUXG4gICAgJiYgYyAhPT0gQ0hBUl9HUkFWRV9BQ0NFTlQ7XG59XG5cbi8vIERldGVybWluZXMgd2hldGhlciBibG9jayBpbmRlbnRhdGlvbiBpbmRpY2F0b3IgaXMgcmVxdWlyZWQuXG5mdW5jdGlvbiBuZWVkSW5kZW50SW5kaWNhdG9yKHN0cmluZykge1xuICB2YXIgbGVhZGluZ1NwYWNlUmUgPSAvXlxcbiogLztcbiAgcmV0dXJuIGxlYWRpbmdTcGFjZVJlLnRlc3Qoc3RyaW5nKTtcbn1cblxudmFyIFNUWUxFX1BMQUlOICAgPSAxLFxuICAgIFNUWUxFX1NJTkdMRSAgPSAyLFxuICAgIFNUWUxFX0xJVEVSQUwgPSAzLFxuICAgIFNUWUxFX0ZPTERFRCAgPSA0LFxuICAgIFNUWUxFX0RPVUJMRSAgPSA1O1xuXG4vLyBEZXRlcm1pbmVzIHdoaWNoIHNjYWxhciBzdHlsZXMgYXJlIHBvc3NpYmxlIGFuZCByZXR1cm5zIHRoZSBwcmVmZXJyZWQgc3R5bGUuXG4vLyBsaW5lV2lkdGggPSAtMSA9PiBubyBsaW1pdC5cbi8vIFByZS1jb25kaXRpb25zOiBzdHIubGVuZ3RoID4gMC5cbi8vIFBvc3QtY29uZGl0aW9uczpcbi8vICAgIFNUWUxFX1BMQUlOIG9yIFNUWUxFX1NJTkdMRSA9PiBubyBcXG4gYXJlIGluIHRoZSBzdHJpbmcuXG4vLyAgICBTVFlMRV9MSVRFUkFMID0+IG5vIGxpbmVzIGFyZSBzdWl0YWJsZSBmb3IgZm9sZGluZyAob3IgbGluZVdpZHRoIGlzIC0xKS5cbi8vICAgIFNUWUxFX0ZPTERFRCA9PiBhIGxpbmUgPiBsaW5lV2lkdGggYW5kIGNhbiBiZSBmb2xkZWQgKGFuZCBsaW5lV2lkdGggIT0gLTEpLlxuZnVuY3Rpb24gY2hvb3NlU2NhbGFyU3R5bGUoc3RyaW5nLCBzaW5nbGVMaW5lT25seSwgaW5kZW50UGVyTGV2ZWwsIGxpbmVXaWR0aCwgdGVzdEFtYmlndW91c1R5cGUpIHtcbiAgdmFyIGk7XG4gIHZhciBjaGFyLCBwcmV2X2NoYXI7XG4gIHZhciBoYXNMaW5lQnJlYWsgPSBmYWxzZTtcbiAgdmFyIGhhc0ZvbGRhYmxlTGluZSA9IGZhbHNlOyAvLyBvbmx5IGNoZWNrZWQgaWYgc2hvdWxkVHJhY2tXaWR0aFxuICB2YXIgc2hvdWxkVHJhY2tXaWR0aCA9IGxpbmVXaWR0aCAhPT0gLTE7XG4gIHZhciBwcmV2aW91c0xpbmVCcmVhayA9IC0xOyAvLyBjb3VudCB0aGUgZmlyc3QgbGluZSBjb3JyZWN0bHlcbiAgdmFyIHBsYWluID0gaXNQbGFpblNhZmVGaXJzdChzdHJpbmcuY2hhckNvZGVBdCgwKSlcbiAgICAgICAgICAmJiAhaXNXaGl0ZXNwYWNlKHN0cmluZy5jaGFyQ29kZUF0KHN0cmluZy5sZW5ndGggLSAxKSk7XG5cbiAgaWYgKHNpbmdsZUxpbmVPbmx5KSB7XG4gICAgLy8gQ2FzZTogbm8gYmxvY2sgc3R5bGVzLlxuICAgIC8vIENoZWNrIGZvciBkaXNhbGxvd2VkIGNoYXJhY3RlcnMgdG8gcnVsZSBvdXQgcGxhaW4gYW5kIHNpbmdsZS5cbiAgICBmb3IgKGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjaGFyID0gc3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgICBpZiAoIWlzUHJpbnRhYmxlKGNoYXIpKSB7XG4gICAgICAgIHJldHVybiBTVFlMRV9ET1VCTEU7XG4gICAgICB9XG4gICAgICBwcmV2X2NoYXIgPSBpID4gMCA/IHN0cmluZy5jaGFyQ29kZUF0KGkgLSAxKSA6IG51bGw7XG4gICAgICBwbGFpbiA9IHBsYWluICYmIGlzUGxhaW5TYWZlKGNoYXIsIHByZXZfY2hhcik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIENhc2U6IGJsb2NrIHN0eWxlcyBwZXJtaXR0ZWQuXG4gICAgZm9yIChpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykge1xuICAgICAgY2hhciA9IHN0cmluZy5jaGFyQ29kZUF0KGkpO1xuICAgICAgaWYgKGNoYXIgPT09IENIQVJfTElORV9GRUVEKSB7XG4gICAgICAgIGhhc0xpbmVCcmVhayA9IHRydWU7XG4gICAgICAgIC8vIENoZWNrIGlmIGFueSBsaW5lIGNhbiBiZSBmb2xkZWQuXG4gICAgICAgIGlmIChzaG91bGRUcmFja1dpZHRoKSB7XG4gICAgICAgICAgaGFzRm9sZGFibGVMaW5lID0gaGFzRm9sZGFibGVMaW5lIHx8XG4gICAgICAgICAgICAvLyBGb2xkYWJsZSBsaW5lID0gdG9vIGxvbmcsIGFuZCBub3QgbW9yZS1pbmRlbnRlZC5cbiAgICAgICAgICAgIChpIC0gcHJldmlvdXNMaW5lQnJlYWsgLSAxID4gbGluZVdpZHRoICYmXG4gICAgICAgICAgICAgc3RyaW5nW3ByZXZpb3VzTGluZUJyZWFrICsgMV0gIT09ICcgJyk7XG4gICAgICAgICAgcHJldmlvdXNMaW5lQnJlYWsgPSBpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCFpc1ByaW50YWJsZShjaGFyKSkge1xuICAgICAgICByZXR1cm4gU1RZTEVfRE9VQkxFO1xuICAgICAgfVxuICAgICAgcHJldl9jaGFyID0gaSA+IDAgPyBzdHJpbmcuY2hhckNvZGVBdChpIC0gMSkgOiBudWxsO1xuICAgICAgcGxhaW4gPSBwbGFpbiAmJiBpc1BsYWluU2FmZShjaGFyLCBwcmV2X2NoYXIpO1xuICAgIH1cbiAgICAvLyBpbiBjYXNlIHRoZSBlbmQgaXMgbWlzc2luZyBhIFxcblxuICAgIGhhc0ZvbGRhYmxlTGluZSA9IGhhc0ZvbGRhYmxlTGluZSB8fCAoc2hvdWxkVHJhY2tXaWR0aCAmJlxuICAgICAgKGkgLSBwcmV2aW91c0xpbmVCcmVhayAtIDEgPiBsaW5lV2lkdGggJiZcbiAgICAgICBzdHJpbmdbcHJldmlvdXNMaW5lQnJlYWsgKyAxXSAhPT0gJyAnKSk7XG4gIH1cbiAgLy8gQWx0aG91Z2ggZXZlcnkgc3R5bGUgY2FuIHJlcHJlc2VudCBcXG4gd2l0aG91dCBlc2NhcGluZywgcHJlZmVyIGJsb2NrIHN0eWxlc1xuICAvLyBmb3IgbXVsdGlsaW5lLCBzaW5jZSB0aGV5J3JlIG1vcmUgcmVhZGFibGUgYW5kIHRoZXkgZG9uJ3QgYWRkIGVtcHR5IGxpbmVzLlxuICAvLyBBbHNvIHByZWZlciBmb2xkaW5nIGEgc3VwZXItbG9uZyBsaW5lLlxuICBpZiAoIWhhc0xpbmVCcmVhayAmJiAhaGFzRm9sZGFibGVMaW5lKSB7XG4gICAgLy8gU3RyaW5ncyBpbnRlcnByZXRhYmxlIGFzIGFub3RoZXIgdHlwZSBoYXZlIHRvIGJlIHF1b3RlZDtcbiAgICAvLyBlLmcuIHRoZSBzdHJpbmcgJ3RydWUnIHZzLiB0aGUgYm9vbGVhbiB0cnVlLlxuICAgIHJldHVybiBwbGFpbiAmJiAhdGVzdEFtYmlndW91c1R5cGUoc3RyaW5nKVxuICAgICAgPyBTVFlMRV9QTEFJTiA6IFNUWUxFX1NJTkdMRTtcbiAgfVxuICAvLyBFZGdlIGNhc2U6IGJsb2NrIGluZGVudGF0aW9uIGluZGljYXRvciBjYW4gb25seSBoYXZlIG9uZSBkaWdpdC5cbiAgaWYgKGluZGVudFBlckxldmVsID4gOSAmJiBuZWVkSW5kZW50SW5kaWNhdG9yKHN0cmluZykpIHtcbiAgICByZXR1cm4gU1RZTEVfRE9VQkxFO1xuICB9XG4gIC8vIEF0IHRoaXMgcG9pbnQgd2Uga25vdyBibG9jayBzdHlsZXMgYXJlIHZhbGlkLlxuICAvLyBQcmVmZXIgbGl0ZXJhbCBzdHlsZSB1bmxlc3Mgd2Ugd2FudCB0byBmb2xkLlxuICByZXR1cm4gaGFzRm9sZGFibGVMaW5lID8gU1RZTEVfRk9MREVEIDogU1RZTEVfTElURVJBTDtcbn1cblxuLy8gTm90ZTogbGluZSBicmVha2luZy9mb2xkaW5nIGlzIGltcGxlbWVudGVkIGZvciBvbmx5IHRoZSBmb2xkZWQgc3R5bGUuXG4vLyBOQi4gV2UgZHJvcCB0aGUgbGFzdCB0cmFpbGluZyBuZXdsaW5lIChpZiBhbnkpIG9mIGEgcmV0dXJuZWQgYmxvY2sgc2NhbGFyXG4vLyAgc2luY2UgdGhlIGR1bXBlciBhZGRzIGl0cyBvd24gbmV3bGluZS4gVGhpcyBhbHdheXMgd29ya3M6XG4vLyAgICBcdTIwMjIgTm8gZW5kaW5nIG5ld2xpbmUgPT4gdW5hZmZlY3RlZDsgYWxyZWFkeSB1c2luZyBzdHJpcCBcIi1cIiBjaG9tcGluZy5cbi8vICAgIFx1MjAyMiBFbmRpbmcgbmV3bGluZSAgICA9PiByZW1vdmVkIHRoZW4gcmVzdG9yZWQuXG4vLyAgSW1wb3J0YW50bHksIHRoaXMga2VlcHMgdGhlIFwiK1wiIGNob21wIGluZGljYXRvciBmcm9tIGdhaW5pbmcgYW4gZXh0cmEgbGluZS5cbmZ1bmN0aW9uIHdyaXRlU2NhbGFyKHN0YXRlLCBzdHJpbmcsIGxldmVsLCBpc2tleSkge1xuICBzdGF0ZS5kdW1wID0gKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFwiJydcIjtcbiAgICB9XG4gICAgaWYgKCFzdGF0ZS5ub0NvbXBhdE1vZGUgJiZcbiAgICAgICAgREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVguaW5kZXhPZihzdHJpbmcpICE9PSAtMSkge1xuICAgICAgcmV0dXJuIFwiJ1wiICsgc3RyaW5nICsgXCInXCI7XG4gICAgfVxuXG4gICAgdmFyIGluZGVudCA9IHN0YXRlLmluZGVudCAqIE1hdGgubWF4KDEsIGxldmVsKTsgLy8gbm8gMC1pbmRlbnQgc2NhbGFyc1xuICAgIC8vIEFzIGluZGVudGF0aW9uIGdldHMgZGVlcGVyLCBsZXQgdGhlIHdpZHRoIGRlY3JlYXNlIG1vbm90b25pY2FsbHlcbiAgICAvLyB0byB0aGUgbG93ZXIgYm91bmQgbWluKHN0YXRlLmxpbmVXaWR0aCwgNDApLlxuICAgIC8vIE5vdGUgdGhhdCB0aGlzIGltcGxpZXNcbiAgICAvLyAgc3RhdGUubGluZVdpZHRoIFx1MjI2NCA0MCArIHN0YXRlLmluZGVudDogd2lkdGggaXMgZml4ZWQgYXQgdGhlIGxvd2VyIGJvdW5kLlxuICAgIC8vICBzdGF0ZS5saW5lV2lkdGggPiA0MCArIHN0YXRlLmluZGVudDogd2lkdGggZGVjcmVhc2VzIHVudGlsIHRoZSBsb3dlciBib3VuZC5cbiAgICAvLyBUaGlzIGJlaGF2ZXMgYmV0dGVyIHRoYW4gYSBjb25zdGFudCBtaW5pbXVtIHdpZHRoIHdoaWNoIGRpc2FsbG93cyBuYXJyb3dlciBvcHRpb25zLFxuICAgIC8vIG9yIGFuIGluZGVudCB0aHJlc2hvbGQgd2hpY2ggY2F1c2VzIHRoZSB3aWR0aCB0byBzdWRkZW5seSBpbmNyZWFzZS5cbiAgICB2YXIgbGluZVdpZHRoID0gc3RhdGUubGluZVdpZHRoID09PSAtMVxuICAgICAgPyAtMSA6IE1hdGgubWF4KE1hdGgubWluKHN0YXRlLmxpbmVXaWR0aCwgNDApLCBzdGF0ZS5saW5lV2lkdGggLSBpbmRlbnQpO1xuXG4gICAgLy8gV2l0aG91dCBrbm93aW5nIGlmIGtleXMgYXJlIGltcGxpY2l0L2V4cGxpY2l0LCBhc3N1bWUgaW1wbGljaXQgZm9yIHNhZmV0eS5cbiAgICB2YXIgc2luZ2xlTGluZU9ubHkgPSBpc2tleVxuICAgICAgLy8gTm8gYmxvY2sgc3R5bGVzIGluIGZsb3cgbW9kZS5cbiAgICAgIHx8IChzdGF0ZS5mbG93TGV2ZWwgPiAtMSAmJiBsZXZlbCA+PSBzdGF0ZS5mbG93TGV2ZWwpO1xuICAgIGZ1bmN0aW9uIHRlc3RBbWJpZ3VpdHkoc3RyaW5nKSB7XG4gICAgICByZXR1cm4gdGVzdEltcGxpY2l0UmVzb2x2aW5nKHN0YXRlLCBzdHJpbmcpO1xuICAgIH1cblxuICAgIHN3aXRjaCAoY2hvb3NlU2NhbGFyU3R5bGUoc3RyaW5nLCBzaW5nbGVMaW5lT25seSwgc3RhdGUuaW5kZW50LCBsaW5lV2lkdGgsIHRlc3RBbWJpZ3VpdHkpKSB7XG4gICAgICBjYXNlIFNUWUxFX1BMQUlOOlxuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgY2FzZSBTVFlMRV9TSU5HTEU6XG4gICAgICAgIHJldHVybiBcIidcIiArIHN0cmluZy5yZXBsYWNlKC8nL2csIFwiJydcIikgKyBcIidcIjtcbiAgICAgIGNhc2UgU1RZTEVfTElURVJBTDpcbiAgICAgICAgcmV0dXJuICd8JyArIGJsb2NrSGVhZGVyKHN0cmluZywgc3RhdGUuaW5kZW50KVxuICAgICAgICAgICsgZHJvcEVuZGluZ05ld2xpbmUoaW5kZW50U3RyaW5nKHN0cmluZywgaW5kZW50KSk7XG4gICAgICBjYXNlIFNUWUxFX0ZPTERFRDpcbiAgICAgICAgcmV0dXJuICc+JyArIGJsb2NrSGVhZGVyKHN0cmluZywgc3RhdGUuaW5kZW50KVxuICAgICAgICAgICsgZHJvcEVuZGluZ05ld2xpbmUoaW5kZW50U3RyaW5nKGZvbGRTdHJpbmcoc3RyaW5nLCBsaW5lV2lkdGgpLCBpbmRlbnQpKTtcbiAgICAgIGNhc2UgU1RZTEVfRE9VQkxFOlxuICAgICAgICByZXR1cm4gJ1wiJyArIGVzY2FwZVN0cmluZyhzdHJpbmcsIGxpbmVXaWR0aCkgKyAnXCInO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ2ltcG9zc2libGUgZXJyb3I6IGludmFsaWQgc2NhbGFyIHN0eWxlJyk7XG4gICAgfVxuICB9KCkpO1xufVxuXG4vLyBQcmUtY29uZGl0aW9uczogc3RyaW5nIGlzIHZhbGlkIGZvciBhIGJsb2NrIHNjYWxhciwgMSA8PSBpbmRlbnRQZXJMZXZlbCA8PSA5LlxuZnVuY3Rpb24gYmxvY2tIZWFkZXIoc3RyaW5nLCBpbmRlbnRQZXJMZXZlbCkge1xuICB2YXIgaW5kZW50SW5kaWNhdG9yID0gbmVlZEluZGVudEluZGljYXRvcihzdHJpbmcpID8gU3RyaW5nKGluZGVudFBlckxldmVsKSA6ICcnO1xuXG4gIC8vIG5vdGUgdGhlIHNwZWNpYWwgY2FzZTogdGhlIHN0cmluZyAnXFxuJyBjb3VudHMgYXMgYSBcInRyYWlsaW5nXCIgZW1wdHkgbGluZS5cbiAgdmFyIGNsaXAgPSAgICAgICAgICBzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDFdID09PSAnXFxuJztcbiAgdmFyIGtlZXAgPSBjbGlwICYmIChzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDJdID09PSAnXFxuJyB8fCBzdHJpbmcgPT09ICdcXG4nKTtcbiAgdmFyIGNob21wID0ga2VlcCA/ICcrJyA6IChjbGlwID8gJycgOiAnLScpO1xuXG4gIHJldHVybiBpbmRlbnRJbmRpY2F0b3IgKyBjaG9tcCArICdcXG4nO1xufVxuXG4vLyAoU2VlIHRoZSBub3RlIGZvciB3cml0ZVNjYWxhci4pXG5mdW5jdGlvbiBkcm9wRW5kaW5nTmV3bGluZShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZ1tzdHJpbmcubGVuZ3RoIC0gMV0gPT09ICdcXG4nID8gc3RyaW5nLnNsaWNlKDAsIC0xKSA6IHN0cmluZztcbn1cblxuLy8gTm90ZTogYSBsb25nIGxpbmUgd2l0aG91dCBhIHN1aXRhYmxlIGJyZWFrIHBvaW50IHdpbGwgZXhjZWVkIHRoZSB3aWR0aCBsaW1pdC5cbi8vIFByZS1jb25kaXRpb25zOiBldmVyeSBjaGFyIGluIHN0ciBpc1ByaW50YWJsZSwgc3RyLmxlbmd0aCA+IDAsIHdpZHRoID4gMC5cbmZ1bmN0aW9uIGZvbGRTdHJpbmcoc3RyaW5nLCB3aWR0aCkge1xuICAvLyBJbiBmb2xkZWQgc3R5bGUsICRrJCBjb25zZWN1dGl2ZSBuZXdsaW5lcyBvdXRwdXQgYXMgJGsrMSQgbmV3bGluZXNcdTIwMTRcbiAgLy8gdW5sZXNzIHRoZXkncmUgYmVmb3JlIG9yIGFmdGVyIGEgbW9yZS1pbmRlbnRlZCBsaW5lLCBvciBhdCB0aGUgdmVyeVxuICAvLyBiZWdpbm5pbmcgb3IgZW5kLCBpbiB3aGljaCBjYXNlICRrJCBtYXBzIHRvICRrJC5cbiAgLy8gVGhlcmVmb3JlLCBwYXJzZSBlYWNoIGNodW5rIGFzIG5ld2xpbmUocykgZm9sbG93ZWQgYnkgYSBjb250ZW50IGxpbmUuXG4gIHZhciBsaW5lUmUgPSAvKFxcbispKFteXFxuXSopL2c7XG5cbiAgLy8gZmlyc3QgbGluZSAocG9zc2libHkgYW4gZW1wdHkgbGluZSlcbiAgdmFyIHJlc3VsdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG5leHRMRiA9IHN0cmluZy5pbmRleE9mKCdcXG4nKTtcbiAgICBuZXh0TEYgPSBuZXh0TEYgIT09IC0xID8gbmV4dExGIDogc3RyaW5nLmxlbmd0aDtcbiAgICBsaW5lUmUubGFzdEluZGV4ID0gbmV4dExGO1xuICAgIHJldHVybiBmb2xkTGluZShzdHJpbmcuc2xpY2UoMCwgbmV4dExGKSwgd2lkdGgpO1xuICB9KCkpO1xuICAvLyBJZiB3ZSBoYXZlbid0IHJlYWNoZWQgdGhlIGZpcnN0IGNvbnRlbnQgbGluZSB5ZXQsIGRvbid0IGFkZCBhbiBleHRyYSBcXG4uXG4gIHZhciBwcmV2TW9yZUluZGVudGVkID0gc3RyaW5nWzBdID09PSAnXFxuJyB8fCBzdHJpbmdbMF0gPT09ICcgJztcbiAgdmFyIG1vcmVJbmRlbnRlZDtcblxuICAvLyByZXN0IG9mIHRoZSBsaW5lc1xuICB2YXIgbWF0Y2g7XG4gIHdoaWxlICgobWF0Y2ggPSBsaW5lUmUuZXhlYyhzdHJpbmcpKSkge1xuICAgIHZhciBwcmVmaXggPSBtYXRjaFsxXSwgbGluZSA9IG1hdGNoWzJdO1xuICAgIG1vcmVJbmRlbnRlZCA9IChsaW5lWzBdID09PSAnICcpO1xuICAgIHJlc3VsdCArPSBwcmVmaXhcbiAgICAgICsgKCFwcmV2TW9yZUluZGVudGVkICYmICFtb3JlSW5kZW50ZWQgJiYgbGluZSAhPT0gJydcbiAgICAgICAgPyAnXFxuJyA6ICcnKVxuICAgICAgKyBmb2xkTGluZShsaW5lLCB3aWR0aCk7XG4gICAgcHJldk1vcmVJbmRlbnRlZCA9IG1vcmVJbmRlbnRlZDtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIEdyZWVkeSBsaW5lIGJyZWFraW5nLlxuLy8gUGlja3MgdGhlIGxvbmdlc3QgbGluZSB1bmRlciB0aGUgbGltaXQgZWFjaCB0aW1lLFxuLy8gb3RoZXJ3aXNlIHNldHRsZXMgZm9yIHRoZSBzaG9ydGVzdCBsaW5lIG92ZXIgdGhlIGxpbWl0LlxuLy8gTkIuIE1vcmUtaW5kZW50ZWQgbGluZXMgKmNhbm5vdCogYmUgZm9sZGVkLCBhcyB0aGF0IHdvdWxkIGFkZCBhbiBleHRyYSBcXG4uXG5mdW5jdGlvbiBmb2xkTGluZShsaW5lLCB3aWR0aCkge1xuICBpZiAobGluZSA9PT0gJycgfHwgbGluZVswXSA9PT0gJyAnKSByZXR1cm4gbGluZTtcblxuICAvLyBTaW5jZSBhIG1vcmUtaW5kZW50ZWQgbGluZSBhZGRzIGEgXFxuLCBicmVha3MgY2FuJ3QgYmUgZm9sbG93ZWQgYnkgYSBzcGFjZS5cbiAgdmFyIGJyZWFrUmUgPSAvIFteIF0vZzsgLy8gbm90ZTogdGhlIG1hdGNoIGluZGV4IHdpbGwgYWx3YXlzIGJlIDw9IGxlbmd0aC0yLlxuICB2YXIgbWF0Y2g7XG4gIC8vIHN0YXJ0IGlzIGFuIGluY2x1c2l2ZSBpbmRleC4gZW5kLCBjdXJyLCBhbmQgbmV4dCBhcmUgZXhjbHVzaXZlLlxuICB2YXIgc3RhcnQgPSAwLCBlbmQsIGN1cnIgPSAwLCBuZXh0ID0gMDtcbiAgdmFyIHJlc3VsdCA9ICcnO1xuXG4gIC8vIEludmFyaWFudHM6IDAgPD0gc3RhcnQgPD0gbGVuZ3RoLTEuXG4gIC8vICAgMCA8PSBjdXJyIDw9IG5leHQgPD0gbWF4KDAsIGxlbmd0aC0yKS4gY3VyciAtIHN0YXJ0IDw9IHdpZHRoLlxuICAvLyBJbnNpZGUgdGhlIGxvb3A6XG4gIC8vICAgQSBtYXRjaCBpbXBsaWVzIGxlbmd0aCA+PSAyLCBzbyBjdXJyIGFuZCBuZXh0IGFyZSA8PSBsZW5ndGgtMi5cbiAgd2hpbGUgKChtYXRjaCA9IGJyZWFrUmUuZXhlYyhsaW5lKSkpIHtcbiAgICBuZXh0ID0gbWF0Y2guaW5kZXg7XG4gICAgLy8gbWFpbnRhaW4gaW52YXJpYW50OiBjdXJyIC0gc3RhcnQgPD0gd2lkdGhcbiAgICBpZiAobmV4dCAtIHN0YXJ0ID4gd2lkdGgpIHtcbiAgICAgIGVuZCA9IChjdXJyID4gc3RhcnQpID8gY3VyciA6IG5leHQ7IC8vIGRlcml2ZSBlbmQgPD0gbGVuZ3RoLTJcbiAgICAgIHJlc3VsdCArPSAnXFxuJyArIGxpbmUuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gICAgICAvLyBza2lwIHRoZSBzcGFjZSB0aGF0IHdhcyBvdXRwdXQgYXMgXFxuXG4gICAgICBzdGFydCA9IGVuZCArIDE7ICAgICAgICAgICAgICAgICAgICAvLyBkZXJpdmUgc3RhcnQgPD0gbGVuZ3RoLTFcbiAgICB9XG4gICAgY3VyciA9IG5leHQ7XG4gIH1cblxuICAvLyBCeSB0aGUgaW52YXJpYW50cywgc3RhcnQgPD0gbGVuZ3RoLTEsIHNvIHRoZXJlIGlzIHNvbWV0aGluZyBsZWZ0IG92ZXIuXG4gIC8vIEl0IGlzIGVpdGhlciB0aGUgd2hvbGUgc3RyaW5nIG9yIGEgcGFydCBzdGFydGluZyBmcm9tIG5vbi13aGl0ZXNwYWNlLlxuICByZXN1bHQgKz0gJ1xcbic7XG4gIC8vIEluc2VydCBhIGJyZWFrIGlmIHRoZSByZW1haW5kZXIgaXMgdG9vIGxvbmcgYW5kIHRoZXJlIGlzIGEgYnJlYWsgYXZhaWxhYmxlLlxuICBpZiAobGluZS5sZW5ndGggLSBzdGFydCA+IHdpZHRoICYmIGN1cnIgPiBzdGFydCkge1xuICAgIHJlc3VsdCArPSBsaW5lLnNsaWNlKHN0YXJ0LCBjdXJyKSArICdcXG4nICsgbGluZS5zbGljZShjdXJyICsgMSk7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ICs9IGxpbmUuc2xpY2Uoc3RhcnQpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdC5zbGljZSgxKTsgLy8gZHJvcCBleHRyYSBcXG4gam9pbmVyXG59XG5cbi8vIEVzY2FwZXMgYSBkb3VibGUtcXVvdGVkIHN0cmluZy5cbmZ1bmN0aW9uIGVzY2FwZVN0cmluZyhzdHJpbmcpIHtcbiAgdmFyIHJlc3VsdCA9ICcnO1xuICB2YXIgY2hhciwgbmV4dENoYXI7XG4gIHZhciBlc2NhcGVTZXE7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHtcbiAgICBjaGFyID0gc3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgLy8gQ2hlY2sgZm9yIHN1cnJvZ2F0ZSBwYWlycyAocmVmZXJlbmNlIFVuaWNvZGUgMy4wIHNlY3Rpb24gXCIzLjcgU3Vycm9nYXRlc1wiKS5cbiAgICBpZiAoY2hhciA+PSAweEQ4MDAgJiYgY2hhciA8PSAweERCRkYvKiBoaWdoIHN1cnJvZ2F0ZSAqLykge1xuICAgICAgbmV4dENoYXIgPSBzdHJpbmcuY2hhckNvZGVBdChpICsgMSk7XG4gICAgICBpZiAobmV4dENoYXIgPj0gMHhEQzAwICYmIG5leHRDaGFyIDw9IDB4REZGRi8qIGxvdyBzdXJyb2dhdGUgKi8pIHtcbiAgICAgICAgLy8gQ29tYmluZSB0aGUgc3Vycm9nYXRlIHBhaXIgYW5kIHN0b3JlIGl0IGVzY2FwZWQuXG4gICAgICAgIHJlc3VsdCArPSBlbmNvZGVIZXgoKGNoYXIgLSAweEQ4MDApICogMHg0MDAgKyBuZXh0Q2hhciAtIDB4REMwMCArIDB4MTAwMDApO1xuICAgICAgICAvLyBBZHZhbmNlIGluZGV4IG9uZSBleHRyYSBzaW5jZSB3ZSBhbHJlYWR5IHVzZWQgdGhhdCBjaGFyIGhlcmUuXG4gICAgICAgIGkrKzsgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuICAgIGVzY2FwZVNlcSA9IEVTQ0FQRV9TRVFVRU5DRVNbY2hhcl07XG4gICAgcmVzdWx0ICs9ICFlc2NhcGVTZXEgJiYgaXNQcmludGFibGUoY2hhcilcbiAgICAgID8gc3RyaW5nW2ldXG4gICAgICA6IGVzY2FwZVNlcSB8fCBlbmNvZGVIZXgoY2hhcik7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB3cml0ZUZsb3dTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIG9iamVjdCkge1xuICB2YXIgX3Jlc3VsdCA9ICcnLFxuICAgICAgX3RhZyAgICA9IHN0YXRlLnRhZyxcbiAgICAgIGluZGV4LFxuICAgICAgbGVuZ3RoO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIC8vIFdyaXRlIG9ubHkgdmFsaWQgZWxlbWVudHMuXG4gICAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG9iamVjdFtpbmRleF0sIGZhbHNlLCBmYWxzZSkpIHtcbiAgICAgIGlmIChpbmRleCAhPT0gMCkgX3Jlc3VsdCArPSAnLCcgKyAoIXN0YXRlLmNvbmRlbnNlRmxvdyA/ICcgJyA6ICcnKTtcbiAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDtcbiAgICB9XG4gIH1cblxuICBzdGF0ZS50YWcgPSBfdGFnO1xuICBzdGF0ZS5kdW1wID0gJ1snICsgX3Jlc3VsdCArICddJztcbn1cblxuZnVuY3Rpb24gd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7XG4gIHZhciBfcmVzdWx0ID0gJycsXG4gICAgICBfdGFnICAgID0gc3RhdGUudGFnLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgLy8gV3JpdGUgb25seSB2YWxpZCBlbGVtZW50cy5cbiAgICBpZiAod3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG9iamVjdFtpbmRleF0sIHRydWUsIHRydWUpKSB7XG4gICAgICBpZiAoIWNvbXBhY3QgfHwgaW5kZXggIT09IDApIHtcbiAgICAgICAgX3Jlc3VsdCArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZS5kdW1wICYmIENIQVJfTElORV9GRUVEID09PSBzdGF0ZS5kdW1wLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgX3Jlc3VsdCArPSAnLSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfcmVzdWx0ICs9ICctICc7XG4gICAgICB9XG5cbiAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDtcbiAgICB9XG4gIH1cblxuICBzdGF0ZS50YWcgPSBfdGFnO1xuICBzdGF0ZS5kdW1wID0gX3Jlc3VsdCB8fCAnW10nOyAvLyBFbXB0eSBzZXF1ZW5jZSBpZiBubyB2YWxpZCB2YWx1ZXMuXG59XG5cbmZ1bmN0aW9uIHdyaXRlRmxvd01hcHBpbmcoc3RhdGUsIGxldmVsLCBvYmplY3QpIHtcbiAgdmFyIF9yZXN1bHQgICAgICAgPSAnJyxcbiAgICAgIF90YWcgICAgICAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSxcbiAgICAgIGluZGV4LFxuICAgICAgbGVuZ3RoLFxuICAgICAgb2JqZWN0S2V5LFxuICAgICAgb2JqZWN0VmFsdWUsXG4gICAgICBwYWlyQnVmZmVyO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcblxuICAgIHBhaXJCdWZmZXIgPSAnJztcbiAgICBpZiAoaW5kZXggIT09IDApIHBhaXJCdWZmZXIgKz0gJywgJztcblxuICAgIGlmIChzdGF0ZS5jb25kZW5zZUZsb3cpIHBhaXJCdWZmZXIgKz0gJ1wiJztcblxuICAgIG9iamVjdEtleSA9IG9iamVjdEtleUxpc3RbaW5kZXhdO1xuICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07XG5cbiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG9iamVjdEtleSwgZmFsc2UsIGZhbHNlKSkge1xuICAgICAgY29udGludWU7IC8vIFNraXAgdGhpcyBwYWlyIGJlY2F1c2Ugb2YgaW52YWxpZCBrZXk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLmR1bXAubGVuZ3RoID4gMTAyNCkgcGFpckJ1ZmZlciArPSAnPyAnO1xuXG4gICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wICsgKHN0YXRlLmNvbmRlbnNlRmxvdyA/ICdcIicgOiAnJykgKyAnOicgKyAoc3RhdGUuY29uZGVuc2VGbG93ID8gJycgOiAnICcpO1xuXG4gICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCBvYmplY3RWYWx1ZSwgZmFsc2UsIGZhbHNlKSkge1xuICAgICAgY29udGludWU7IC8vIFNraXAgdGhpcyBwYWlyIGJlY2F1c2Ugb2YgaW52YWxpZCB2YWx1ZS5cbiAgICB9XG5cbiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7XG5cbiAgICAvLyBCb3RoIGtleSBhbmQgdmFsdWUgYXJlIHZhbGlkLlxuICAgIF9yZXN1bHQgKz0gcGFpckJ1ZmZlcjtcbiAgfVxuXG4gIHN0YXRlLnRhZyA9IF90YWc7XG4gIHN0YXRlLmR1bXAgPSAneycgKyBfcmVzdWx0ICsgJ30nO1xufVxuXG5mdW5jdGlvbiB3cml0ZUJsb2NrTWFwcGluZyhzdGF0ZSwgbGV2ZWwsIG9iamVjdCwgY29tcGFjdCkge1xuICB2YXIgX3Jlc3VsdCAgICAgICA9ICcnLFxuICAgICAgX3RhZyAgICAgICAgICA9IHN0YXRlLnRhZyxcbiAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGgsXG4gICAgICBvYmplY3RLZXksXG4gICAgICBvYmplY3RWYWx1ZSxcbiAgICAgIGV4cGxpY2l0UGFpcixcbiAgICAgIHBhaXJCdWZmZXI7XG5cbiAgLy8gQWxsb3cgc29ydGluZyBrZXlzIHNvIHRoYXQgdGhlIG91dHB1dCBmaWxlIGlzIGRldGVybWluaXN0aWNcbiAgaWYgKHN0YXRlLnNvcnRLZXlzID09PSB0cnVlKSB7XG4gICAgLy8gRGVmYXVsdCBzb3J0aW5nXG4gICAgb2JqZWN0S2V5TGlzdC5zb3J0KCk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHN0YXRlLnNvcnRLZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gQ3VzdG9tIHNvcnQgZnVuY3Rpb25cbiAgICBvYmplY3RLZXlMaXN0LnNvcnQoc3RhdGUuc29ydEtleXMpO1xuICB9IGVsc2UgaWYgKHN0YXRlLnNvcnRLZXlzKSB7XG4gICAgLy8gU29tZXRoaW5nIGlzIHdyb25nXG4gICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ3NvcnRLZXlzIG11c3QgYmUgYSBib29sZWFuIG9yIGEgZnVuY3Rpb24nKTtcbiAgfVxuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBwYWlyQnVmZmVyID0gJyc7XG5cbiAgICBpZiAoIWNvbXBhY3QgfHwgaW5kZXggIT09IDApIHtcbiAgICAgIHBhaXJCdWZmZXIgKz0gZ2VuZXJhdGVOZXh0TGluZShzdGF0ZSwgbGV2ZWwpO1xuICAgIH1cblxuICAgIG9iamVjdEtleSA9IG9iamVjdEtleUxpc3RbaW5kZXhdO1xuICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07XG5cbiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCBvYmplY3RLZXksIHRydWUsIHRydWUsIHRydWUpKSB7XG4gICAgICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIHBhaXIgYmVjYXVzZSBvZiBpbnZhbGlkIGtleS5cbiAgICB9XG5cbiAgICBleHBsaWNpdFBhaXIgPSAoc3RhdGUudGFnICE9PSBudWxsICYmIHN0YXRlLnRhZyAhPT0gJz8nKSB8fFxuICAgICAgICAgICAgICAgICAgIChzdGF0ZS5kdW1wICYmIHN0YXRlLmR1bXAubGVuZ3RoID4gMTAyNCk7XG5cbiAgICBpZiAoZXhwbGljaXRQYWlyKSB7XG4gICAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7XG4gICAgICAgIHBhaXJCdWZmZXIgKz0gJz8nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFpckJ1ZmZlciArPSAnPyAnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhaXJCdWZmZXIgKz0gc3RhdGUuZHVtcDtcblxuICAgIGlmIChleHBsaWNpdFBhaXIpIHtcbiAgICAgIHBhaXJCdWZmZXIgKz0gZ2VuZXJhdGVOZXh0TGluZShzdGF0ZSwgbGV2ZWwpO1xuICAgIH1cblxuICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG9iamVjdFZhbHVlLCB0cnVlLCBleHBsaWNpdFBhaXIpKSB7XG4gICAgICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIHBhaXIgYmVjYXVzZSBvZiBpbnZhbGlkIHZhbHVlLlxuICAgIH1cblxuICAgIGlmIChzdGF0ZS5kdW1wICYmIENIQVJfTElORV9GRUVEID09PSBzdGF0ZS5kdW1wLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgIHBhaXJCdWZmZXIgKz0gJzonO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYWlyQnVmZmVyICs9ICc6ICc7XG4gICAgfVxuXG4gICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wO1xuXG4gICAgLy8gQm90aCBrZXkgYW5kIHZhbHVlIGFyZSB2YWxpZC5cbiAgICBfcmVzdWx0ICs9IHBhaXJCdWZmZXI7XG4gIH1cblxuICBzdGF0ZS50YWcgPSBfdGFnO1xuICBzdGF0ZS5kdW1wID0gX3Jlc3VsdCB8fCAne30nOyAvLyBFbXB0eSBtYXBwaW5nIGlmIG5vIHZhbGlkIHBhaXJzLlxufVxuXG5mdW5jdGlvbiBkZXRlY3RUeXBlKHN0YXRlLCBvYmplY3QsIGV4cGxpY2l0KSB7XG4gIHZhciBfcmVzdWx0LCB0eXBlTGlzdCwgaW5kZXgsIGxlbmd0aCwgdHlwZSwgc3R5bGU7XG5cbiAgdHlwZUxpc3QgPSBleHBsaWNpdCA/IHN0YXRlLmV4cGxpY2l0VHlwZXMgOiBzdGF0ZS5pbXBsaWNpdFR5cGVzO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSB0eXBlTGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgdHlwZSA9IHR5cGVMaXN0W2luZGV4XTtcblxuICAgIGlmICgodHlwZS5pbnN0YW5jZU9mICB8fCB0eXBlLnByZWRpY2F0ZSkgJiZcbiAgICAgICAgKCF0eXBlLmluc3RhbmNlT2YgfHwgKCh0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JykgJiYgKG9iamVjdCBpbnN0YW5jZW9mIHR5cGUuaW5zdGFuY2VPZikpKSAmJlxuICAgICAgICAoIXR5cGUucHJlZGljYXRlICB8fCB0eXBlLnByZWRpY2F0ZShvYmplY3QpKSkge1xuXG4gICAgICBzdGF0ZS50YWcgPSBleHBsaWNpdCA/IHR5cGUudGFnIDogJz8nO1xuXG4gICAgICBpZiAodHlwZS5yZXByZXNlbnQpIHtcbiAgICAgICAgc3R5bGUgPSBzdGF0ZS5zdHlsZU1hcFt0eXBlLnRhZ10gfHwgdHlwZS5kZWZhdWx0U3R5bGU7XG5cbiAgICAgICAgaWYgKF90b1N0cmluZy5jYWxsKHR5cGUucmVwcmVzZW50KSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJykge1xuICAgICAgICAgIF9yZXN1bHQgPSB0eXBlLnJlcHJlc2VudChvYmplY3QsIHN0eWxlKTtcbiAgICAgICAgfSBlbHNlIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbCh0eXBlLnJlcHJlc2VudCwgc3R5bGUpKSB7XG4gICAgICAgICAgX3Jlc3VsdCA9IHR5cGUucmVwcmVzZW50W3N0eWxlXShvYmplY3QsIHN0eWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignITwnICsgdHlwZS50YWcgKyAnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgXCInICsgc3R5bGUgKyAnXCIgc3R5bGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRlLmR1bXAgPSBfcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8vIFNlcmlhbGl6ZXMgYG9iamVjdGAgYW5kIHdyaXRlcyBpdCB0byBnbG9iYWwgYHJlc3VsdGAuXG4vLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcywgb3IgZmFsc2Ugb24gaW52YWxpZCBvYmplY3QuXG4vL1xuZnVuY3Rpb24gd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBibG9jaywgY29tcGFjdCwgaXNrZXkpIHtcbiAgc3RhdGUudGFnID0gbnVsbDtcbiAgc3RhdGUuZHVtcCA9IG9iamVjdDtcblxuICBpZiAoIWRldGVjdFR5cGUoc3RhdGUsIG9iamVjdCwgZmFsc2UpKSB7XG4gICAgZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCB0cnVlKTtcbiAgfVxuXG4gIHZhciB0eXBlID0gX3RvU3RyaW5nLmNhbGwoc3RhdGUuZHVtcCk7XG5cbiAgaWYgKGJsb2NrKSB7XG4gICAgYmxvY2sgPSAoc3RhdGUuZmxvd0xldmVsIDwgMCB8fCBzdGF0ZS5mbG93TGV2ZWwgPiBsZXZlbCk7XG4gIH1cblxuICB2YXIgb2JqZWN0T3JBcnJheSA9IHR5cGUgPT09ICdbb2JqZWN0IE9iamVjdF0nIHx8IHR5cGUgPT09ICdbb2JqZWN0IEFycmF5XScsXG4gICAgICBkdXBsaWNhdGVJbmRleCxcbiAgICAgIGR1cGxpY2F0ZTtcblxuICBpZiAob2JqZWN0T3JBcnJheSkge1xuICAgIGR1cGxpY2F0ZUluZGV4ID0gc3RhdGUuZHVwbGljYXRlcy5pbmRleE9mKG9iamVjdCk7XG4gICAgZHVwbGljYXRlID0gZHVwbGljYXRlSW5kZXggIT09IC0xO1xuICB9XG5cbiAgaWYgKChzdGF0ZS50YWcgIT09IG51bGwgJiYgc3RhdGUudGFnICE9PSAnPycpIHx8IGR1cGxpY2F0ZSB8fCAoc3RhdGUuaW5kZW50ICE9PSAyICYmIGxldmVsID4gMCkpIHtcbiAgICBjb21wYWN0ID0gZmFsc2U7XG4gIH1cblxuICBpZiAoZHVwbGljYXRlICYmIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkge1xuICAgIHN0YXRlLmR1bXAgPSAnKnJlZl8nICsgZHVwbGljYXRlSW5kZXg7XG4gIH0gZWxzZSB7XG4gICAgaWYgKG9iamVjdE9yQXJyYXkgJiYgZHVwbGljYXRlICYmICFzdGF0ZS51c2VkRHVwbGljYXRlc1tkdXBsaWNhdGVJbmRleF0pIHtcbiAgICAgIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgICAgaWYgKGJsb2NrICYmIChPYmplY3Qua2V5cyhzdGF0ZS5kdW1wKS5sZW5ndGggIT09IDApKSB7XG4gICAgICAgIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgc3RhdGUuZHVtcDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd3JpdGVGbG93TWFwcGluZyhzdGF0ZSwgbGV2ZWwsIHN0YXRlLmR1bXApO1xuICAgICAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICAgICAgc3RhdGUuZHVtcCA9ICcmcmVmXycgKyBkdXBsaWNhdGVJbmRleCArICcgJyArIHN0YXRlLmR1bXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdbb2JqZWN0IEFycmF5XScpIHtcbiAgICAgIHZhciBhcnJheUxldmVsID0gKHN0YXRlLm5vQXJyYXlJbmRlbnQgJiYgKGxldmVsID4gMCkpID8gbGV2ZWwgLSAxIDogbGV2ZWw7XG4gICAgICBpZiAoYmxvY2sgJiYgKHN0YXRlLmR1bXAubGVuZ3RoICE9PSAwKSkge1xuICAgICAgICB3cml0ZUJsb2NrU2VxdWVuY2Uoc3RhdGUsIGFycmF5TGV2ZWwsIHN0YXRlLmR1bXAsIGNvbXBhY3QpO1xuICAgICAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICAgICAgc3RhdGUuZHVtcCA9ICcmcmVmXycgKyBkdXBsaWNhdGVJbmRleCArIHN0YXRlLmR1bXA7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdyaXRlRmxvd1NlcXVlbmNlKHN0YXRlLCBhcnJheUxldmVsLCBzdGF0ZS5kdW1wKTtcbiAgICAgICAgaWYgKGR1cGxpY2F0ZSkge1xuICAgICAgICAgIHN0YXRlLmR1bXAgPSAnJnJlZl8nICsgZHVwbGljYXRlSW5kZXggKyAnICcgKyBzdGF0ZS5kdW1wO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnW29iamVjdCBTdHJpbmddJykge1xuICAgICAgaWYgKHN0YXRlLnRhZyAhPT0gJz8nKSB7XG4gICAgICAgIHdyaXRlU2NhbGFyKHN0YXRlLCBzdGF0ZS5kdW1wLCBsZXZlbCwgaXNrZXkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc3RhdGUuc2tpcEludmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCd1bmFjY2VwdGFibGUga2luZCBvZiBhbiBvYmplY3QgdG8gZHVtcCAnICsgdHlwZSk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCAmJiBzdGF0ZS50YWcgIT09ICc/Jykge1xuICAgICAgc3RhdGUuZHVtcCA9ICchPCcgKyBzdGF0ZS50YWcgKyAnPiAnICsgc3RhdGUuZHVtcDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0RHVwbGljYXRlUmVmZXJlbmNlcyhvYmplY3QsIHN0YXRlKSB7XG4gIHZhciBvYmplY3RzID0gW10sXG4gICAgICBkdXBsaWNhdGVzSW5kZXhlcyA9IFtdLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgaW5zcGVjdE5vZGUob2JqZWN0LCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGR1cGxpY2F0ZXNJbmRleGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBzdGF0ZS5kdXBsaWNhdGVzLnB1c2gob2JqZWN0c1tkdXBsaWNhdGVzSW5kZXhlc1tpbmRleF1dKTtcbiAgfVxuICBzdGF0ZS51c2VkRHVwbGljYXRlcyA9IG5ldyBBcnJheShsZW5ndGgpO1xufVxuXG5mdW5jdGlvbiBpbnNwZWN0Tm9kZShvYmplY3QsIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKSB7XG4gIHZhciBvYmplY3RLZXlMaXN0LFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgaWYgKG9iamVjdCAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0Jykge1xuICAgIGluZGV4ID0gb2JqZWN0cy5pbmRleE9mKG9iamVjdCk7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgaWYgKGR1cGxpY2F0ZXNJbmRleGVzLmluZGV4T2YoaW5kZXgpID09PSAtMSkge1xuICAgICAgICBkdXBsaWNhdGVzSW5kZXhlcy5wdXNoKGluZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0cy5wdXNoKG9iamVjdCk7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iamVjdCkpIHtcbiAgICAgICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgICAgaW5zcGVjdE5vZGUob2JqZWN0W2luZGV4XSwgb2JqZWN0cywgZHVwbGljYXRlc0luZGV4ZXMpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuICAgICAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgICAgaW5zcGVjdE5vZGUob2JqZWN0W29iamVjdEtleUxpc3RbaW5kZXhdXSwgb2JqZWN0cywgZHVwbGljYXRlc0luZGV4ZXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGR1bXAoaW5wdXQsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgdmFyIHN0YXRlID0gbmV3IFN0YXRlKG9wdGlvbnMpO1xuXG4gIGlmICghc3RhdGUubm9SZWZzKSBnZXREdXBsaWNhdGVSZWZlcmVuY2VzKGlucHV0LCBzdGF0ZSk7XG5cbiAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgMCwgaW5wdXQsIHRydWUsIHRydWUpKSByZXR1cm4gc3RhdGUuZHVtcCArICdcXG4nO1xuXG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gc2FmZUR1bXAoaW5wdXQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGR1bXAoaW5wdXQsIGNvbW1vbi5leHRlbmQoeyBzY2hlbWE6IERFRkFVTFRfU0FGRV9TQ0hFTUEgfSwgb3B0aW9ucykpO1xufVxuXG5tb2R1bGUuZXhwb3J0cy5kdW1wICAgICA9IGR1bXA7XG5tb2R1bGUuZXhwb3J0cy5zYWZlRHVtcCA9IHNhZmVEdW1wO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuXG52YXIgbG9hZGVyID0gcmVxdWlyZSgnLi9qcy15YW1sL2xvYWRlcicpO1xudmFyIGR1bXBlciA9IHJlcXVpcmUoJy4vanMteWFtbC9kdW1wZXInKTtcblxuXG5mdW5jdGlvbiBkZXByZWNhdGVkKG5hbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Z1bmN0aW9uICcgKyBuYW1lICsgJyBpcyBkZXByZWNhdGVkIGFuZCBjYW5ub3QgYmUgdXNlZC4nKTtcbiAgfTtcbn1cblxuXG5tb2R1bGUuZXhwb3J0cy5UeXBlICAgICAgICAgICAgICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3R5cGUnKTtcbm1vZHVsZS5leHBvcnRzLlNjaGVtYSAgICAgICAgICAgICAgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hJyk7XG5tb2R1bGUuZXhwb3J0cy5GQUlMU0FGRV9TQ0hFTUEgICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9mYWlsc2FmZScpO1xubW9kdWxlLmV4cG9ydHMuSlNPTl9TQ0hFTUEgICAgICAgICA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEvanNvbicpO1xubW9kdWxlLmV4cG9ydHMuQ09SRV9TQ0hFTUEgICAgICAgICA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEvY29yZScpO1xubW9kdWxlLmV4cG9ydHMuREVGQVVMVF9TQUZFX1NDSEVNQSA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEvZGVmYXVsdF9zYWZlJyk7XG5tb2R1bGUuZXhwb3J0cy5ERUZBVUxUX0ZVTExfU0NIRU1BID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X2Z1bGwnKTtcbm1vZHVsZS5leHBvcnRzLmxvYWQgICAgICAgICAgICAgICAgPSBsb2FkZXIubG9hZDtcbm1vZHVsZS5leHBvcnRzLmxvYWRBbGwgICAgICAgICAgICAgPSBsb2FkZXIubG9hZEFsbDtcbm1vZHVsZS5leHBvcnRzLnNhZmVMb2FkICAgICAgICAgICAgPSBsb2FkZXIuc2FmZUxvYWQ7XG5tb2R1bGUuZXhwb3J0cy5zYWZlTG9hZEFsbCAgICAgICAgID0gbG9hZGVyLnNhZmVMb2FkQWxsO1xubW9kdWxlLmV4cG9ydHMuZHVtcCAgICAgICAgICAgICAgICA9IGR1bXBlci5kdW1wO1xubW9kdWxlLmV4cG9ydHMuc2FmZUR1bXAgICAgICAgICAgICA9IGR1bXBlci5zYWZlRHVtcDtcbm1vZHVsZS5leHBvcnRzLllBTUxFeGNlcHRpb24gICAgICAgPSByZXF1aXJlKCcuL2pzLXlhbWwvZXhjZXB0aW9uJyk7XG5cbi8vIERlcHJlY2F0ZWQgc2NoZW1hIG5hbWVzIGZyb20gSlMtWUFNTCAyLjAueFxubW9kdWxlLmV4cG9ydHMuTUlOSU1BTF9TQ0hFTUEgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2ZhaWxzYWZlJyk7XG5tb2R1bGUuZXhwb3J0cy5TQUZFX1NDSEVNQSAgICA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEvZGVmYXVsdF9zYWZlJyk7XG5tb2R1bGUuZXhwb3J0cy5ERUZBVUxUX1NDSEVNQSA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEvZGVmYXVsdF9mdWxsJyk7XG5cbi8vIERlcHJlY2F0ZWQgZnVuY3Rpb25zIGZyb20gSlMtWUFNTCAxLngueFxubW9kdWxlLmV4cG9ydHMuc2NhbiAgICAgICAgICAgPSBkZXByZWNhdGVkKCdzY2FuJyk7XG5tb2R1bGUuZXhwb3J0cy5wYXJzZSAgICAgICAgICA9IGRlcHJlY2F0ZWQoJ3BhcnNlJyk7XG5tb2R1bGUuZXhwb3J0cy5jb21wb3NlICAgICAgICA9IGRlcHJlY2F0ZWQoJ2NvbXBvc2UnKTtcbm1vZHVsZS5leHBvcnRzLmFkZENvbnN0cnVjdG9yID0gZGVwcmVjYXRlZCgnYWRkQ29uc3RydWN0b3InKTtcbiIsICIndXNlIHN0cmljdCc7XG5cblxudmFyIHlhbWwgPSByZXF1aXJlKCcuL2xpYi9qcy15YW1sLmpzJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSB5YW1sO1xuIiwgImltcG9ydCAqIGFzIGpzWWFtbCBmcm9tICdqcy15YW1sJztcblxuZXhwb3J0IHsganNZYW1sIH07XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0eWFtbC5wbHVnaW5zJztcblxuZXhwb3J0IGxldCB5YW1sU3RyaW5nVG9PYmplY3QgPSBhc3luYyAoXG4gIHlhbWxTdHJpbmdBcmcsXG4gIG9wdGlvbnNBcmc6IHBsdWdpbnMuanNZYW1sLkxvYWRPcHRpb25zID0ge31cbik6IFByb21pc2U8YW55PiA9PiB7XG4gIHJldHVybiBwbHVnaW5zLmpzWWFtbC5zYWZlTG9hZCh5YW1sU3RyaW5nQXJnKTtcbn07XG5cbmV4cG9ydCBsZXQgb2JqZWN0VG9ZYW1sU3RyaW5nID0gYXN5bmMgKFxuICBvYmplY3RBcmcsXG4gIG9wdGlvbnNBcmc6IHBsdWdpbnMuanNZYW1sLkR1bXBPcHRpb25zID0ge31cbik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIHJldHVybiBwbHVnaW5zLmpzWWFtbC5zYWZlRHVtcChvYmplY3RBcmcpO1xufTtcbiIsICIvKipcbiAqIFRocm93IGEgZ2l2ZW4gZXJyb3IuXG4gKlxuICogQHBhcmFtIHtFcnJvcnxudWxsfHVuZGVmaW5lZH0gW2Vycm9yXVxuICogICBNYXliZSBlcnJvci5cbiAqIEByZXR1cm5zIHthc3NlcnRzIGVycm9yIGlzIG51bGx8dW5kZWZpbmVkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmFpbChlcnJvcikge1xuICBpZiAoZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaGFzT3duID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciB0b1N0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgZ09QRCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbnZhciBpc0FycmF5ID0gZnVuY3Rpb24gaXNBcnJheShhcnIpIHtcblx0aWYgKHR5cGVvZiBBcnJheS5pc0FycmF5ID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0cmV0dXJuIEFycmF5LmlzQXJyYXkoYXJyKTtcblx0fVxuXG5cdHJldHVybiB0b1N0ci5jYWxsKGFycikgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59O1xuXG52YXIgaXNQbGFpbk9iamVjdCA9IGZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG5cdGlmICghb2JqIHx8IHRvU3RyLmNhbGwob2JqKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHR2YXIgaGFzT3duQ29uc3RydWN0b3IgPSBoYXNPd24uY2FsbChvYmosICdjb25zdHJ1Y3RvcicpO1xuXHR2YXIgaGFzSXNQcm90b3R5cGVPZiA9IG9iai5jb25zdHJ1Y3RvciAmJiBvYmouY29uc3RydWN0b3IucHJvdG90eXBlICYmIGhhc093bi5jYWxsKG9iai5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsICdpc1Byb3RvdHlwZU9mJyk7XG5cdC8vIE5vdCBvd24gY29uc3RydWN0b3IgcHJvcGVydHkgbXVzdCBiZSBPYmplY3Rcblx0aWYgKG9iai5jb25zdHJ1Y3RvciAmJiAhaGFzT3duQ29uc3RydWN0b3IgJiYgIWhhc0lzUHJvdG90eXBlT2YpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvLyBPd24gcHJvcGVydGllcyBhcmUgZW51bWVyYXRlZCBmaXJzdGx5LCBzbyB0byBzcGVlZCB1cCxcblx0Ly8gaWYgbGFzdCBvbmUgaXMgb3duLCB0aGVuIGFsbCBwcm9wZXJ0aWVzIGFyZSBvd24uXG5cdHZhciBrZXk7XG5cdGZvciAoa2V5IGluIG9iaikgeyAvKiovIH1cblxuXHRyZXR1cm4gdHlwZW9mIGtleSA9PT0gJ3VuZGVmaW5lZCcgfHwgaGFzT3duLmNhbGwob2JqLCBrZXkpO1xufTtcblxuLy8gSWYgbmFtZSBpcyAnX19wcm90b19fJywgYW5kIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBpcyBhdmFpbGFibGUsIGRlZmluZSBfX3Byb3RvX18gYXMgYW4gb3duIHByb3BlcnR5IG9uIHRhcmdldFxudmFyIHNldFByb3BlcnR5ID0gZnVuY3Rpb24gc2V0UHJvcGVydHkodGFyZ2V0LCBvcHRpb25zKSB7XG5cdGlmIChkZWZpbmVQcm9wZXJ0eSAmJiBvcHRpb25zLm5hbWUgPT09ICdfX3Byb3RvX18nKSB7XG5cdFx0ZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBvcHRpb25zLm5hbWUsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHR2YWx1ZTogb3B0aW9ucy5uZXdWYWx1ZSxcblx0XHRcdHdyaXRhYmxlOiB0cnVlXG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0dGFyZ2V0W29wdGlvbnMubmFtZV0gPSBvcHRpb25zLm5ld1ZhbHVlO1xuXHR9XG59O1xuXG4vLyBSZXR1cm4gdW5kZWZpbmVkIGluc3RlYWQgb2YgX19wcm90b19fIGlmICdfX3Byb3RvX18nIGlzIG5vdCBhbiBvd24gcHJvcGVydHlcbnZhciBnZXRQcm9wZXJ0eSA9IGZ1bmN0aW9uIGdldFByb3BlcnR5KG9iaiwgbmFtZSkge1xuXHRpZiAobmFtZSA9PT0gJ19fcHJvdG9fXycpIHtcblx0XHRpZiAoIWhhc093bi5jYWxsKG9iaiwgbmFtZSkpIHtcblx0XHRcdHJldHVybiB2b2lkIDA7XG5cdFx0fSBlbHNlIGlmIChnT1BEKSB7XG5cdFx0XHQvLyBJbiBlYXJseSB2ZXJzaW9ucyBvZiBub2RlLCBvYmpbJ19fcHJvdG9fXyddIGlzIGJ1Z2d5IHdoZW4gb2JqIGhhc1xuXHRcdFx0Ly8gX19wcm90b19fIGFzIGFuIG93biBwcm9wZXJ0eS4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcigpIHdvcmtzLlxuXHRcdFx0cmV0dXJuIGdPUEQob2JqLCBuYW1lKS52YWx1ZTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gb2JqW25hbWVdO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBleHRlbmQoKSB7XG5cdHZhciBvcHRpb25zLCBuYW1lLCBzcmMsIGNvcHksIGNvcHlJc0FycmF5LCBjbG9uZTtcblx0dmFyIHRhcmdldCA9IGFyZ3VtZW50c1swXTtcblx0dmFyIGkgPSAxO1xuXHR2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcblx0dmFyIGRlZXAgPSBmYWxzZTtcblxuXHQvLyBIYW5kbGUgYSBkZWVwIGNvcHkgc2l0dWF0aW9uXG5cdGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnYm9vbGVhbicpIHtcblx0XHRkZWVwID0gdGFyZ2V0O1xuXHRcdHRhcmdldCA9IGFyZ3VtZW50c1sxXSB8fCB7fTtcblx0XHQvLyBza2lwIHRoZSBib29sZWFuIGFuZCB0aGUgdGFyZ2V0XG5cdFx0aSA9IDI7XG5cdH1cblx0aWYgKHRhcmdldCA9PSBudWxsIHx8ICh0eXBlb2YgdGFyZ2V0ICE9PSAnb2JqZWN0JyAmJiB0eXBlb2YgdGFyZ2V0ICE9PSAnZnVuY3Rpb24nKSkge1xuXHRcdHRhcmdldCA9IHt9O1xuXHR9XG5cblx0Zm9yICg7IGkgPCBsZW5ndGg7ICsraSkge1xuXHRcdG9wdGlvbnMgPSBhcmd1bWVudHNbaV07XG5cdFx0Ly8gT25seSBkZWFsIHdpdGggbm9uLW51bGwvdW5kZWZpbmVkIHZhbHVlc1xuXHRcdGlmIChvcHRpb25zICE9IG51bGwpIHtcblx0XHRcdC8vIEV4dGVuZCB0aGUgYmFzZSBvYmplY3Rcblx0XHRcdGZvciAobmFtZSBpbiBvcHRpb25zKSB7XG5cdFx0XHRcdHNyYyA9IGdldFByb3BlcnR5KHRhcmdldCwgbmFtZSk7XG5cdFx0XHRcdGNvcHkgPSBnZXRQcm9wZXJ0eShvcHRpb25zLCBuYW1lKTtcblxuXHRcdFx0XHQvLyBQcmV2ZW50IG5ldmVyLWVuZGluZyBsb29wXG5cdFx0XHRcdGlmICh0YXJnZXQgIT09IGNvcHkpIHtcblx0XHRcdFx0XHQvLyBSZWN1cnNlIGlmIHdlJ3JlIG1lcmdpbmcgcGxhaW4gb2JqZWN0cyBvciBhcnJheXNcblx0XHRcdFx0XHRpZiAoZGVlcCAmJiBjb3B5ICYmIChpc1BsYWluT2JqZWN0KGNvcHkpIHx8IChjb3B5SXNBcnJheSA9IGlzQXJyYXkoY29weSkpKSkge1xuXHRcdFx0XHRcdFx0aWYgKGNvcHlJc0FycmF5KSB7XG5cdFx0XHRcdFx0XHRcdGNvcHlJc0FycmF5ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdGNsb25lID0gc3JjICYmIGlzQXJyYXkoc3JjKSA/IHNyYyA6IFtdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Y2xvbmUgPSBzcmMgJiYgaXNQbGFpbk9iamVjdChzcmMpID8gc3JjIDoge307XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIE5ldmVyIG1vdmUgb3JpZ2luYWwgb2JqZWN0cywgY2xvbmUgdGhlbVxuXHRcdFx0XHRcdFx0c2V0UHJvcGVydHkodGFyZ2V0LCB7IG5hbWU6IG5hbWUsIG5ld1ZhbHVlOiBleHRlbmQoZGVlcCwgY2xvbmUsIGNvcHkpIH0pO1xuXG5cdFx0XHRcdFx0Ly8gRG9uJ3QgYnJpbmcgaW4gdW5kZWZpbmVkIHZhbHVlc1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNvcHkgIT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHRcdFx0XHRzZXRQcm9wZXJ0eSh0YXJnZXQsIHsgbmFtZTogbmFtZSwgbmV3VmFsdWU6IGNvcHkgfSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmplY3Rcblx0cmV0dXJuIHRhcmdldDtcbn07XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIGRlcHJlY2F0ZShmbikge1xuICByZXR1cm4gZm5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVxdWFsKCkge31cblxuZXhwb3J0IGZ1bmN0aW9uIG9rKCkge31cblxuZXhwb3J0IGZ1bmN0aW9uIHVucmVhY2hhYmxlKCkge31cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlKSB7XG5cdGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHZhbHVlID09PSBudWxsKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0Y29uc3QgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKTtcblx0cmV0dXJuIChwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlID09PSBPYmplY3QucHJvdG90eXBlIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90b3R5cGUpID09PSBudWxsKSAmJiAhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiB2YWx1ZSkgJiYgIShTeW1ib2wuaXRlcmF0b3IgaW4gdmFsdWUpO1xufVxuIiwgIi8vIFRvIGRvOiByZW1vdmUgYHZvaWRgc1xuLy8gVG8gZG86IHJlbW92ZSBgbnVsbGAgZnJvbSBvdXRwdXQgb2Ygb3VyIEFQSXMsIGFsbG93IGl0IGFzIHVzZXIgQVBJcy5cblxuLyoqXG4gKiBAdHlwZWRlZiB7KGVycm9yPzogRXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkLCAuLi5vdXRwdXQ6IEFycmF5PGFueT4pID0+IHZvaWR9IENhbGxiYWNrXG4gKiAgIENhbGxiYWNrLlxuICpcbiAqIEB0eXBlZGVmIHsoLi4uaW5wdXQ6IEFycmF5PGFueT4pID0+IGFueX0gTWlkZGxld2FyZVxuICogICBXYXJlLlxuICpcbiAqIEB0eXBlZGVmIFBpcGVsaW5lXG4gKiAgIFBpcGVsaW5lLlxuICogQHByb3BlcnR5IHtSdW59IHJ1blxuICogICBSdW4gdGhlIHBpcGVsaW5lLlxuICogQHByb3BlcnR5IHtVc2V9IHVzZVxuICogICBBZGQgbWlkZGxld2FyZS5cbiAqXG4gKiBAdHlwZWRlZiB7KC4uLmlucHV0OiBBcnJheTxhbnk+KSA9PiB2b2lkfSBSdW5cbiAqICAgQ2FsbCBhbGwgbWlkZGxld2FyZS5cbiAqXG4gKiAgIENhbGxzIGBkb25lYCBvbiBjb21wbGV0aW9uIHdpdGggZWl0aGVyIGFuIGVycm9yIG9yIHRoZSBvdXRwdXQgb2YgdGhlXG4gKiAgIGxhc3QgbWlkZGxld2FyZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBhcyB0aGUgbGVuZ3RoIG9mIGlucHV0IGRlZmluZXMgd2hldGhlciBhc3luYyBmdW5jdGlvbnMgZ2V0IGFcbiAqICAgPiBgbmV4dGAgZnVuY3Rpb24sXG4gKiAgID4gaXRcdTIwMTlzIHJlY29tbWVuZGVkIHRvIGtlZXAgYGlucHV0YCBhdCBvbmUgdmFsdWUgbm9ybWFsbHkuXG5cbiAqXG4gKiBAdHlwZWRlZiB7KGZuOiBNaWRkbGV3YXJlKSA9PiBQaXBlbGluZX0gVXNlXG4gKiAgIEFkZCBtaWRkbGV3YXJlLlxuICovXG5cbi8qKlxuICogQ3JlYXRlIG5ldyBtaWRkbGV3YXJlLlxuICpcbiAqIEByZXR1cm5zIHtQaXBlbGluZX1cbiAqICAgUGlwZWxpbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cm91Z2goKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8TWlkZGxld2FyZT59ICovXG4gIGNvbnN0IGZucyA9IFtdXG4gIC8qKiBAdHlwZSB7UGlwZWxpbmV9ICovXG4gIGNvbnN0IHBpcGVsaW5lID0ge3J1biwgdXNlfVxuXG4gIHJldHVybiBwaXBlbGluZVxuXG4gIC8qKiBAdHlwZSB7UnVufSAqL1xuICBmdW5jdGlvbiBydW4oLi4udmFsdWVzKSB7XG4gICAgbGV0IG1pZGRsZXdhcmVJbmRleCA9IC0xXG4gICAgLyoqIEB0eXBlIHtDYWxsYmFja30gKi9cbiAgICBjb25zdCBjYWxsYmFjayA9IHZhbHVlcy5wb3AoKVxuXG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgZnVuY3Rpb24gYXMgbGFzdCBhcmd1bWVudCwgbm90ICcgKyBjYWxsYmFjaylcbiAgICB9XG5cbiAgICBuZXh0KG51bGwsIC4uLnZhbHVlcylcblxuICAgIC8qKlxuICAgICAqIFJ1biB0aGUgbmV4dCBgZm5gLCBvciB3ZVx1MjAxOXJlIGRvbmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0Vycm9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gZXJyb3JcbiAgICAgKiBAcGFyYW0ge0FycmF5PGFueT59IG91dHB1dFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5leHQoZXJyb3IsIC4uLm91dHB1dCkge1xuICAgICAgY29uc3QgZm4gPSBmbnNbKyttaWRkbGV3YXJlSW5kZXhdXG4gICAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyb3IpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBDb3B5IG5vbi1udWxsaXNoIGlucHV0IGludG8gdmFsdWVzLlxuICAgICAgd2hpbGUgKCsraW5kZXggPCB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgIGlmIChvdXRwdXRbaW5kZXhdID09PSBudWxsIHx8IG91dHB1dFtpbmRleF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG91dHB1dFtpbmRleF0gPSB2YWx1ZXNbaW5kZXhdXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gU2F2ZSB0aGUgbmV3bHkgY3JlYXRlZCBgb3V0cHV0YCBmb3IgdGhlIG5leHQgY2FsbC5cbiAgICAgIHZhbHVlcyA9IG91dHB1dFxuXG4gICAgICAvLyBOZXh0IG9yIGRvbmUuXG4gICAgICBpZiAoZm4pIHtcbiAgICAgICAgd3JhcChmbiwgbmV4dCkoLi4ub3V0cHV0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FsbGJhY2sobnVsbCwgLi4ub3V0cHV0KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAdHlwZSB7VXNlfSAqL1xuICBmdW5jdGlvbiB1c2UobWlkZGVsd2FyZSkge1xuICAgIGlmICh0eXBlb2YgbWlkZGVsd2FyZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ0V4cGVjdGVkIGBtaWRkZWx3YXJlYCB0byBiZSBhIGZ1bmN0aW9uLCBub3QgJyArIG1pZGRlbHdhcmVcbiAgICAgIClcbiAgICB9XG5cbiAgICBmbnMucHVzaChtaWRkZWx3YXJlKVxuICAgIHJldHVybiBwaXBlbGluZVxuICB9XG59XG5cbi8qKlxuICogV3JhcCBgbWlkZGxld2FyZWAgaW50byBhIHVuaWZvcm0gaW50ZXJmYWNlLlxuICpcbiAqIFlvdSBjYW4gcGFzcyBhbGwgaW5wdXQgdG8gdGhlIHJlc3VsdGluZyBmdW5jdGlvbi5cbiAqIGBjYWxsYmFja2AgaXMgdGhlbiBjYWxsZWQgd2l0aCB0aGUgb3V0cHV0IG9mIGBtaWRkbGV3YXJlYC5cbiAqXG4gKiBJZiBgbWlkZGxld2FyZWAgYWNjZXB0cyBtb3JlIGFyZ3VtZW50cyB0aGFuIHRoZSBsYXRlciBnaXZlbiBpbiBpbnB1dCxcbiAqIGFuIGV4dHJhIGBkb25lYCBmdW5jdGlvbiBpcyBwYXNzZWQgdG8gaXQgYWZ0ZXIgdGhhdCBpbnB1dCxcbiAqIHdoaWNoIG11c3QgYmUgY2FsbGVkIGJ5IGBtaWRkbGV3YXJlYC5cbiAqXG4gKiBUaGUgZmlyc3QgdmFsdWUgaW4gYGlucHV0YCBpcyB0aGUgbWFpbiBpbnB1dCB2YWx1ZS5cbiAqIEFsbCBvdGhlciBpbnB1dCB2YWx1ZXMgYXJlIHRoZSByZXN0IGlucHV0IHZhbHVlcy5cbiAqIFRoZSB2YWx1ZXMgZ2l2ZW4gdG8gYGNhbGxiYWNrYCBhcmUgdGhlIGlucHV0IHZhbHVlcyxcbiAqIG1lcmdlZCB3aXRoIGV2ZXJ5IG5vbi1udWxsaXNoIG91dHB1dCB2YWx1ZS5cbiAqXG4gKiAqIGlmIGBtaWRkbGV3YXJlYCB0aHJvd3MgYW4gZXJyb3IsXG4gKiAgIHJldHVybnMgYSBwcm9taXNlIHRoYXQgaXMgcmVqZWN0ZWQsXG4gKiAgIG9yIGNhbGxzIHRoZSBnaXZlbiBgZG9uZWAgZnVuY3Rpb24gd2l0aCBhbiBlcnJvcixcbiAqICAgYGNhbGxiYWNrYCBpcyBjYWxsZWQgd2l0aCB0aGF0IGVycm9yXG4gKiAqIGlmIGBtaWRkbGV3YXJlYCByZXR1cm5zIGEgdmFsdWUgb3IgcmV0dXJucyBhIHByb21pc2UgdGhhdCBpcyByZXNvbHZlZCxcbiAqICAgdGhhdCB2YWx1ZSBpcyB0aGUgbWFpbiBvdXRwdXQgdmFsdWVcbiAqICogaWYgYG1pZGRsZXdhcmVgIGNhbGxzIGBkb25lYCxcbiAqICAgYWxsIG5vbi1udWxsaXNoIHZhbHVlcyBleGNlcHQgZm9yIHRoZSBmaXJzdCBvbmUgKHRoZSBlcnJvcikgb3ZlcndyaXRlIHRoZVxuICogICBvdXRwdXQgdmFsdWVzXG4gKlxuICogQHBhcmFtIHtNaWRkbGV3YXJlfSBtaWRkbGV3YXJlXG4gKiAgIEZ1bmN0aW9uIHRvIHdyYXAuXG4gKiBAcGFyYW0ge0NhbGxiYWNrfSBjYWxsYmFja1xuICogICBDYWxsYmFjayBjYWxsZWQgd2l0aCB0aGUgb3V0cHV0IG9mIGBtaWRkbGV3YXJlYC5cbiAqIEByZXR1cm5zIHtSdW59XG4gKiAgIFdyYXBwZWQgbWlkZGxld2FyZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXAobWlkZGxld2FyZSwgY2FsbGJhY2spIHtcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgY2FsbGVkXG5cbiAgcmV0dXJuIHdyYXBwZWRcblxuICAvKipcbiAgICogQ2FsbCBgbWlkZGxld2FyZWAuXG4gICAqIEB0aGlzIHthbnl9XG4gICAqIEBwYXJhbSB7QXJyYXk8YW55Pn0gcGFyYW1ldGVyc1xuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGZ1bmN0aW9uIHdyYXBwZWQoLi4ucGFyYW1ldGVycykge1xuICAgIGNvbnN0IGZuRXhwZWN0c0NhbGxiYWNrID0gbWlkZGxld2FyZS5sZW5ndGggPiBwYXJhbWV0ZXJzLmxlbmd0aFxuICAgIC8qKiBAdHlwZSB7YW55fSAqL1xuICAgIGxldCByZXN1bHRcblxuICAgIGlmIChmbkV4cGVjdHNDYWxsYmFjaykge1xuICAgICAgcGFyYW1ldGVycy5wdXNoKGRvbmUpXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IG1pZGRsZXdhcmUuYXBwbHkodGhpcywgcGFyYW1ldGVycylcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZXhjZXB0aW9uID0gLyoqIEB0eXBlIHtFcnJvcn0gKi8gKGVycm9yKVxuXG4gICAgICAvLyBXZWxsLCB0aGlzIGlzIHF1aXRlIHRoZSBwaWNrbGUuXG4gICAgICAvLyBgbWlkZGxld2FyZWAgcmVjZWl2ZWQgYSBjYWxsYmFjayBhbmQgY2FsbGVkIGl0IHN5bmNocm9ub3VzbHksIGJ1dCB0aGF0XG4gICAgICAvLyB0aHJldyBhbiBlcnJvci5cbiAgICAgIC8vIFRoZSBvbmx5IHRoaW5nIGxlZnQgdG8gZG8gaXMgdG8gdGhyb3cgdGhlIHRoaW5nIGluc3RlYWQuXG4gICAgICBpZiAoZm5FeHBlY3RzQ2FsbGJhY2sgJiYgY2FsbGVkKSB7XG4gICAgICAgIHRocm93IGV4Y2VwdGlvblxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZG9uZShleGNlcHRpb24pXG4gICAgfVxuXG4gICAgaWYgKCFmbkV4cGVjdHNDYWxsYmFjaykge1xuICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQudGhlbiAmJiB0eXBlb2YgcmVzdWx0LnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmVzdWx0LnRoZW4odGhlbiwgZG9uZSlcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0IGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgZG9uZShyZXN1bHQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGVuKHJlc3VsdClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbCBgY2FsbGJhY2tgLCBvbmx5IG9uY2UuXG4gICAqXG4gICAqIEB0eXBlIHtDYWxsYmFja31cbiAgICovXG4gIGZ1bmN0aW9uIGRvbmUoZXJyb3IsIC4uLm91dHB1dCkge1xuICAgIGlmICghY2FsbGVkKSB7XG4gICAgICBjYWxsZWQgPSB0cnVlXG4gICAgICBjYWxsYmFjayhlcnJvciwgLi4ub3V0cHV0KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsIGBkb25lYCB3aXRoIG9uZSB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IFt2YWx1ZV1cbiAgICovXG4gIGZ1bmN0aW9uIHRoZW4odmFsdWUpIHtcbiAgICBkb25lKG51bGwsIHZhbHVlKVxuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi9pbmRleC5qcycpLkNhbGxiYWNrfSBDYWxsYmFja1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5NaWRkbGV3YXJlfSBNaWRkbGV3YXJlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi9pbmRleC5qcycpLlBpcGVsaW5lfSBQaXBlbGluZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5SdW59IFJ1blxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5Vc2V9IFVzZVxuICovXG5cbmV4cG9ydCB7dHJvdWdoLCB3cmFwfSBmcm9tICcuL2xpYi9pbmRleC5qcydcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBOb2RlTGlrZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHR5cGVcbiAqIEBwcm9wZXJ0eSB7UG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Bvc2l0aW9uXVxuICpcbiAqIEB0eXBlZGVmIFBvaW50TGlrZVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbbGluZV1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NvbHVtbl1cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29mZnNldF1cbiAqXG4gKiBAdHlwZWRlZiBQb3NpdGlvbkxpa2VcbiAqIEBwcm9wZXJ0eSB7UG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3N0YXJ0XVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbZW5kXVxuICovXG5cbi8qKlxuICogU2VyaWFsaXplIHRoZSBwb3NpdGlvbmFsIGluZm8gb2YgYSBwb2ludCwgcG9zaXRpb24gKHN0YXJ0IGFuZCBlbmQgcG9pbnRzKSxcbiAqIG9yIG5vZGUuXG4gKlxuICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBQb2ludCB8IFBvaW50TGlrZSB8IFBvc2l0aW9uIHwgUG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZhbHVlXVxuICogICBOb2RlLCBwb3NpdGlvbiwgb3IgcG9pbnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBQcmV0dHkgcHJpbnRlZCBwb3NpdGlvbmFsIGluZm8gb2YgYSBub2RlIChgc3RyaW5nYCkuXG4gKlxuICogICBJbiB0aGUgZm9ybWF0IG9mIGEgcmFuZ2UgYGxzOmNzLWxlOmNlYCAod2hlbiBnaXZlbiBgbm9kZWAgb3IgYHBvc2l0aW9uYClcbiAqICAgb3IgYSBwb2ludCBgbDpjYCAod2hlbiBnaXZlbiBgcG9pbnRgKSwgd2hlcmUgYGxgIHN0YW5kcyBmb3IgbGluZSwgYGNgIGZvclxuICogICBjb2x1bW4sIGBzYCBmb3IgYHN0YXJ0YCwgYW5kIGBlYCBmb3IgZW5kLlxuICogICBBbiBlbXB0eSBzdHJpbmcgKGAnJ2ApIGlzIHJldHVybmVkIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBuZWl0aGVyIGBub2RlYCxcbiAqICAgYHBvc2l0aW9uYCwgbm9yIGBwb2ludGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlQb3NpdGlvbih2YWx1ZSkge1xuICAvLyBOb3RoaW5nLlxuICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIC8vIE5vZGUuXG4gIGlmICgncG9zaXRpb24nIGluIHZhbHVlIHx8ICd0eXBlJyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBwb3NpdGlvbih2YWx1ZS5wb3NpdGlvbilcbiAgfVxuXG4gIC8vIFBvc2l0aW9uLlxuICBpZiAoJ3N0YXJ0JyBpbiB2YWx1ZSB8fCAnZW5kJyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBwb3NpdGlvbih2YWx1ZSlcbiAgfVxuXG4gIC8vIFBvaW50LlxuICBpZiAoJ2xpbmUnIGluIHZhbHVlIHx8ICdjb2x1bW4nIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvaW50KHZhbHVlKVxuICB9XG5cbiAgLy8gP1xuICByZXR1cm4gJydcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1BvaW50IHwgUG9pbnRMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcG9pbnRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBvaW50KHBvaW50KSB7XG4gIHJldHVybiBpbmRleChwb2ludCAmJiBwb2ludC5saW5lKSArICc6JyArIGluZGV4KHBvaW50ICYmIHBvaW50LmNvbHVtbilcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1Bvc2l0aW9uIHwgUG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcG9zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBwb3NpdGlvbihwb3MpIHtcbiAgcmV0dXJuIHBvaW50KHBvcyAmJiBwb3Muc3RhcnQpICsgJy0nICsgcG9pbnQocG9zICYmIHBvcy5lbmQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSB2YWx1ZVxuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZnVuY3Rpb24gaW5kZXgodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZSA6IDFcbn1cbiIsICJleHBvcnQge3N0cmluZ2lmeVBvc2l0aW9ufSBmcm9tICcuL2xpYi9pbmRleC5qcydcbiIsICIvKipcbiAqIEBpbXBvcnQge05vZGUsIFBvaW50LCBQb3NpdGlvbn0gZnJvbSAndW5pc3QnXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0ICYge3R5cGU6IHN0cmluZywgcG9zaXRpb24/OiBQb3NpdGlvbiB8IHVuZGVmaW5lZH19IE5vZGVMaWtlXG4gKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHtBcnJheTxOb2RlPiB8IG51bGwgfCB1bmRlZmluZWR9IFthbmNlc3RvcnNdXG4gKiAgIFN0YWNrIG9mIChpbmNsdXNpdmUpIGFuY2VzdG9yIG5vZGVzIHN1cnJvdW5kaW5nIHRoZSBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge0Vycm9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2NhdXNlXVxuICogICBPcmlnaW5hbCBlcnJvciBjYXVzZSBvZiB0aGUgbWVzc2FnZSAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BsYWNlXVxuICogICBQbGFjZSBvZiBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtydWxlSWRdXG4gKiAgIENhdGVnb3J5IG9mIG1lc3NhZ2UgKG9wdGlvbmFsLCBleGFtcGxlOiBgJ215LXJ1bGUnYCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtzb3VyY2VdXG4gKiAgIE5hbWVzcGFjZSBvZiB3aG8gc2VudCB0aGUgbWVzc2FnZSAob3B0aW9uYWwsIGV4YW1wbGU6IGAnbXktcGFja2FnZSdgKS5cbiAqL1xuXG5pbXBvcnQge3N0cmluZ2lmeVBvc2l0aW9ufSBmcm9tICd1bmlzdC11dGlsLXN0cmluZ2lmeS1wb3NpdGlvbidcblxuLyoqXG4gKiBNZXNzYWdlLlxuICovXG5leHBvcnQgY2xhc3MgVkZpbGVNZXNzYWdlIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogQ3JlYXRlIGEgbWVzc2FnZSBmb3IgYHJlYXNvbmAuXG4gICAqXG4gICAqID4gXHVEODNFXHVERUE2ICoqTm90ZSoqOiBhbHNvIGhhcyBvYnNvbGV0ZSBzaWduYXR1cmVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZSB8IHN0cmluZ30gY2F1c2VPclJlYXNvblxuICAgKiAgIFJlYXNvbiBmb3IgbWVzc2FnZSwgc2hvdWxkIHVzZSBtYXJrZG93bi5cbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnNcbiAgICogICBJbnN0YW5jZSBvZiBgVkZpbGVNZXNzYWdlYC5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIGNvbnN0cnVjdG9yKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbikge1xuICAgIHN1cGVyKClcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yUGFyZW50T3JQbGFjZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9yaWdpbiA9IG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgcmVhc29uID0gJydcbiAgICAvKiogQHR5cGUge09wdGlvbnN9ICovXG4gICAgbGV0IG9wdGlvbnMgPSB7fVxuICAgIGxldCBsZWdhY3lDYXVzZSA9IGZhbHNlXG5cbiAgICBpZiAob3B0aW9uc09yUGFyZW50T3JQbGFjZSkge1xuICAgICAgLy8gUG9pbnQuXG4gICAgICBpZiAoXG4gICAgICAgICdsaW5lJyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlICYmXG4gICAgICAgICdjb2x1bW4nIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgICkge1xuICAgICAgICBvcHRpb25zID0ge3BsYWNlOiBvcHRpb25zT3JQYXJlbnRPclBsYWNlfVxuICAgICAgfVxuICAgICAgLy8gUG9zaXRpb24uXG4gICAgICBlbHNlIGlmIChcbiAgICAgICAgJ3N0YXJ0JyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlICYmXG4gICAgICAgICdlbmQnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2VcbiAgICAgICkge1xuICAgICAgICBvcHRpb25zID0ge3BsYWNlOiBvcHRpb25zT3JQYXJlbnRPclBsYWNlfVxuICAgICAgfVxuICAgICAgLy8gTm9kZS5cbiAgICAgIGVsc2UgaWYgKCd0eXBlJyBpbiBvcHRpb25zT3JQYXJlbnRPclBsYWNlKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgYW5jZXN0b3JzOiBbb3B0aW9uc09yUGFyZW50T3JQbGFjZV0sXG4gICAgICAgICAgcGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2UucG9zaXRpb25cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gT3B0aW9ucy5cbiAgICAgIGVsc2Uge1xuICAgICAgICBvcHRpb25zID0gey4uLm9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjYXVzZU9yUmVhc29uID09PSAnc3RyaW5nJykge1xuICAgICAgcmVhc29uID0gY2F1c2VPclJlYXNvblxuICAgIH1cbiAgICAvLyBFcnJvci5cbiAgICBlbHNlIGlmICghb3B0aW9ucy5jYXVzZSAmJiBjYXVzZU9yUmVhc29uKSB7XG4gICAgICBsZWdhY3lDYXVzZSA9IHRydWVcbiAgICAgIHJlYXNvbiA9IGNhdXNlT3JSZWFzb24ubWVzc2FnZVxuICAgICAgb3B0aW9ucy5jYXVzZSA9IGNhdXNlT3JSZWFzb25cbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMucnVsZUlkICYmICFvcHRpb25zLnNvdXJjZSAmJiB0eXBlb2Ygb3JpZ2luID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgaW5kZXggPSBvcmlnaW4uaW5kZXhPZignOicpXG5cbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgb3B0aW9ucy5ydWxlSWQgPSBvcmlnaW5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdGlvbnMuc291cmNlID0gb3JpZ2luLnNsaWNlKDAsIGluZGV4KVxuICAgICAgICBvcHRpb25zLnJ1bGVJZCA9IG9yaWdpbi5zbGljZShpbmRleCArIDEpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25zLnBsYWNlICYmIG9wdGlvbnMuYW5jZXN0b3JzICYmIG9wdGlvbnMuYW5jZXN0b3JzKSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBvcHRpb25zLmFuY2VzdG9yc1tvcHRpb25zLmFuY2VzdG9ycy5sZW5ndGggLSAxXVxuXG4gICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgIG9wdGlvbnMucGxhY2UgPSBwYXJlbnQucG9zaXRpb25cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9XG4gICAgICBvcHRpb25zLnBsYWNlICYmICdzdGFydCcgaW4gb3B0aW9ucy5wbGFjZVxuICAgICAgICA/IG9wdGlvbnMucGxhY2Uuc3RhcnRcbiAgICAgICAgOiBvcHRpb25zLnBsYWNlXG5cbiAgICAvKipcbiAgICAgKiBTdGFjayBvZiBhbmNlc3RvciBub2RlcyBzdXJyb3VuZGluZyB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxOb2RlPiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmFuY2VzdG9ycyA9IG9wdGlvbnMuYW5jZXN0b3JzIHx8IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogT3JpZ2luYWwgZXJyb3IgY2F1c2Ugb2YgdGhlIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RXJyb3IgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5jYXVzZSA9IG9wdGlvbnMuY2F1c2UgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBTdGFydGluZyBjb2x1bW4gb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5jb2x1bW4gPSBzdGFydCA/IHN0YXJ0LmNvbHVtbiA6IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogU3RhdGUgb2YgcHJvYmxlbS5cbiAgICAgKlxuICAgICAqICogYHRydWVgIFx1MjAxNCBlcnJvciwgZmlsZSBub3QgdXNhYmxlXG4gICAgICogKiBgZmFsc2VgIFx1MjAxNCB3YXJuaW5nLCBjaGFuZ2UgbWF5IGJlIG5lZWRlZFxuICAgICAqICogYHVuZGVmaW5lZGAgXHUyMDE0IGNoYW5nZSBsaWtlbHkgbm90IG5lZWRlZFxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuZmF0YWwgPSB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIFBhdGggb2YgYSBmaWxlICh1c2VkIHRocm91Z2hvdXQgdGhlIGBWRmlsZWAgZWNvc3lzdGVtKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5maWxlID0gJydcblxuICAgIC8vIEZpZWxkIGZyb20gYEVycm9yYC5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMubWVzc2FnZSA9IHJlYXNvblxuXG4gICAgLyoqXG4gICAgICogU3RhcnRpbmcgbGluZSBvZiBlcnJvci5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5saW5lID0gc3RhcnQgPyBzdGFydC5saW5lIDogdW5kZWZpbmVkXG5cbiAgICAvLyBGaWVsZCBmcm9tIGBFcnJvcmAuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXplZCBwb3NpdGlvbmFsIGluZm8gb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIE9uIG5vcm1hbCBlcnJvcnMsIHRoaXMgd291bGQgYmUgc29tZXRoaW5nIGxpa2UgYFBhcnNlRXJyb3JgLCBidWl0IGluXG4gICAgICogYFZGaWxlYCBtZXNzYWdlcyB3ZSB1c2UgdGhpcyBzcGFjZSB0byBzaG93IHdoZXJlIGFuIGVycm9yIGhhcHBlbmVkLlxuICAgICAqL1xuICAgIHRoaXMubmFtZSA9IHN0cmluZ2lmeVBvc2l0aW9uKG9wdGlvbnMucGxhY2UpIHx8ICcxOjEnXG5cbiAgICAvKipcbiAgICAgKiBQbGFjZSBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge1BvaW50IHwgUG9zaXRpb24gfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5wbGFjZSA9IG9wdGlvbnMucGxhY2UgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UsIHNob3VsZCB1c2UgbWFya2Rvd24uXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMucmVhc29uID0gdGhpcy5tZXNzYWdlXG5cbiAgICAvKipcbiAgICAgKiBDYXRlZ29yeSBvZiBtZXNzYWdlIChleGFtcGxlOiBgJ215LXJ1bGUnYCkuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMucnVsZUlkID0gb3B0aW9ucy5ydWxlSWQgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBOYW1lc3BhY2Ugb2YgbWVzc2FnZSAoZXhhbXBsZTogYCdteS1wYWNrYWdlJ2ApLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnNvdXJjZSA9IG9wdGlvbnMuc291cmNlIHx8IHVuZGVmaW5lZFxuXG4gICAgLy8gRmllbGQgZnJvbSBgRXJyb3JgLlxuICAgIC8qKlxuICAgICAqIFN0YWNrIG9mIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgbm9ybWFsIGVycm9ycyB0byBzaG93IHdoZXJlIHNvbWV0aGluZyBoYXBwZW5lZCBpblxuICAgICAqIHByb2dyYW1taW5nIGNvZGUsIGlycmVsZXZhbnQgZm9yIGBWRmlsZWAgbWVzc2FnZXMsXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMuc3RhY2sgPVxuICAgICAgbGVnYWN5Q2F1c2UgJiYgb3B0aW9ucy5jYXVzZSAmJiB0eXBlb2Ygb3B0aW9ucy5jYXVzZS5zdGFjayA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBvcHRpb25zLmNhdXNlLnN0YWNrXG4gICAgICAgIDogJydcblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBcdTIwMUN3ZWxsIGtub3duXHUyMDFELlxuICAgIC8vIE5vdCBzdGFuZGFyZC5cbiAgICAvLyBGZWVsIGZyZWUgdG8gYWRkIG90aGVyIG5vbi1zdGFuZGFyZCBmaWVsZHMgdG8geW91ciBtZXNzYWdlcy5cblxuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGhlIHNvdXJjZSB2YWx1ZSB0aGF0XHUyMDE5cyBiZWluZyByZXBvcnRlZCwgd2hpY2ggaXMgZGVlbWVkXG4gICAgICogaW5jb3JyZWN0LlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmFjdHVhbCA9IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogU3VnZ2VzdCBhY2NlcHRhYmxlIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgYGFjdHVhbGAuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmV4cGVjdGVkID0gdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBMb25nIGZvcm0gZGVzY3JpcHRpb24gb2YgdGhlIG1lc3NhZ2UgKHlvdSBzaG91bGQgdXNlIG1hcmtkb3duKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5ub3RlID0gdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBMaW5rIHRvIGRvY3MgZm9yIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHRoaXMgbXVzdCBiZSBhbiBhYnNvbHV0ZSBVUkwgdGhhdCBjYW4gYmUgcGFzc2VkIGFzIGB4YFxuICAgICAqID4gdG8gYG5ldyBVUkwoeClgLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnVybCA9IHVuZGVmaW5lZFxuICB9XG59XG5cblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuZmlsZSA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLm5hbWUgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5yZWFzb24gPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5tZXNzYWdlID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuc3RhY2sgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5jb2x1bW4gPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUubGluZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5hbmNlc3RvcnMgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuY2F1c2UgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuZmF0YWwgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUucGxhY2UgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUucnVsZUlkID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnNvdXJjZSA9IHVuZGVmaW5lZFxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5PcHRpb25zfSBPcHRpb25zXG4gKi9cblxuZXhwb3J0IHtWRmlsZU1lc3NhZ2V9IGZyb20gJy4vbGliL2luZGV4LmpzJ1xuIiwgIi8vIEEgZGVyaXZhdGl2ZSB3b3JrIGJhc2VkIG9uOlxuLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9icm93c2VyaWZ5L3BhdGgtYnJvd3NlcmlmeT4uXG4vLyBXaGljaCBpcyBsaWNlbnNlZDpcbi8vXG4vLyBNSVQgTGljZW5zZVxuLy9cbi8vIENvcHlyaWdodCAoYykgMjAxMyBKYW1lcyBIYWxsaWRheVxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2Zcbi8vIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW5cbi8vIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG9cbi8vIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mXG4vLyB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sXG4vLyBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbi8vIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Ncbi8vIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUlxuLy8gQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSXG4vLyBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTlxuLy8gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbi8vIEEgZGVyaXZhdGl2ZSB3b3JrIGJhc2VkIG9uOlxuLy9cbi8vIFBhcnRzIG9mIHRoYXQgYXJlIGV4dHJhY3RlZCBmcm9tIE5vZGVcdTIwMTlzIGludGVybmFsIGBwYXRoYCBtb2R1bGU6XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvbWFzdGVyL2xpYi9wYXRoLmpzPi5cbi8vIFdoaWNoIGlzIGxpY2Vuc2VkOlxuLy9cbi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5leHBvcnQgY29uc3QgbWlucGF0aCA9IHtiYXNlbmFtZSwgZGlybmFtZSwgZXh0bmFtZSwgam9pbiwgc2VwOiAnLyd9XG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1kZXB0aCwgY29tcGxleGl0eSAqL1xuXG4vKipcbiAqIEdldCB0aGUgYmFzZW5hbWUgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZXh0bmFtZV1cbiAqICAgRXh0ZW5zaW9uIHRvIHN0cmlwLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU3RlbSBvciBiYXNlbmFtZS5cbiAqL1xuZnVuY3Rpb24gYmFzZW5hbWUocGF0aCwgZXh0bmFtZSkge1xuICBpZiAoZXh0bmFtZSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBleHRuYW1lICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiZXh0XCIgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZycpXG4gIH1cblxuICBhc3NlcnRQYXRoKHBhdGgpXG4gIGxldCBzdGFydCA9IDBcbiAgbGV0IGVuZCA9IC0xXG4gIGxldCBpbmRleCA9IHBhdGgubGVuZ3RoXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHNlZW5Ob25TbGFzaFxuXG4gIGlmIChcbiAgICBleHRuYW1lID09PSB1bmRlZmluZWQgfHxcbiAgICBleHRuYW1lLmxlbmd0aCA9PT0gMCB8fFxuICAgIGV4dG5hbWUubGVuZ3RoID4gcGF0aC5sZW5ndGhcbiAgKSB7XG4gICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAgIC8vIHNlcGFyYXRvcnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzdG9wIG5vdy5cbiAgICAgICAgaWYgKHNlZW5Ob25TbGFzaCkge1xuICAgICAgICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChlbmQgPCAwKSB7XG4gICAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yLCBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXJcbiAgICAgICAgLy8gcGF0aCBjb21wb25lbnQuXG4gICAgICAgIHNlZW5Ob25TbGFzaCA9IHRydWVcbiAgICAgICAgZW5kID0gaW5kZXggKyAxXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVuZCA8IDAgPyAnJyA6IHBhdGguc2xpY2Uoc3RhcnQsIGVuZClcbiAgfVxuXG4gIGlmIChleHRuYW1lID09PSBwYXRoKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBsZXQgZmlyc3ROb25TbGFzaEVuZCA9IC0xXG4gIGxldCBleHRuYW1lSW5kZXggPSBleHRuYW1lLmxlbmd0aCAtIDFcblxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICAvLyBJZiB3ZSByZWFjaGVkIGEgcGF0aCBzZXBhcmF0b3IgdGhhdCB3YXMgbm90IHBhcnQgb2YgYSBzZXQgb2YgcGF0aFxuICAgICAgLy8gc2VwYXJhdG9ycyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHN0b3Agbm93LlxuICAgICAgaWYgKHNlZW5Ob25TbGFzaCkge1xuICAgICAgICBzdGFydCA9IGluZGV4ICsgMVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZmlyc3ROb25TbGFzaEVuZCA8IDApIHtcbiAgICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIHJlbWVtYmVyIHRoaXMgaW5kZXggaW4gY2FzZVxuICAgICAgICAvLyB3ZSBuZWVkIGl0IGlmIHRoZSBleHRlbnNpb24gZW5kcyB1cCBub3QgbWF0Y2hpbmcuXG4gICAgICAgIHNlZW5Ob25TbGFzaCA9IHRydWVcbiAgICAgICAgZmlyc3ROb25TbGFzaEVuZCA9IGluZGV4ICsgMVxuICAgICAgfVxuXG4gICAgICBpZiAoZXh0bmFtZUluZGV4ID4gLTEpIHtcbiAgICAgICAgLy8gVHJ5IHRvIG1hdGNoIHRoZSBleHBsaWNpdCBleHRlbnNpb24uXG4gICAgICAgIGlmIChwYXRoLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gZXh0bmFtZS5jb2RlUG9pbnRBdChleHRuYW1lSW5kZXgtLSkpIHtcbiAgICAgICAgICBpZiAoZXh0bmFtZUluZGV4IDwgMCkge1xuICAgICAgICAgICAgLy8gV2UgbWF0Y2hlZCB0aGUgZXh0ZW5zaW9uLCBzbyBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXIgcGF0aFxuICAgICAgICAgICAgLy8gY29tcG9uZW50XG4gICAgICAgICAgICBlbmQgPSBpbmRleFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBFeHRlbnNpb24gZG9lcyBub3QgbWF0Y2gsIHNvIG91ciByZXN1bHQgaXMgdGhlIGVudGlyZSBwYXRoXG4gICAgICAgICAgLy8gY29tcG9uZW50XG4gICAgICAgICAgZXh0bmFtZUluZGV4ID0gLTFcbiAgICAgICAgICBlbmQgPSBmaXJzdE5vblNsYXNoRW5kXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3RhcnQgPT09IGVuZCkge1xuICAgIGVuZCA9IGZpcnN0Tm9uU2xhc2hFbmRcbiAgfSBlbHNlIGlmIChlbmQgPCAwKSB7XG4gICAgZW5kID0gcGF0aC5sZW5ndGhcbiAgfVxuXG4gIHJldHVybiBwYXRoLnNsaWNlKHN0YXJ0LCBlbmQpXG59XG5cbi8qKlxuICogR2V0IHRoZSBkaXJuYW1lIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gZGlybmFtZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJy4nXG4gIH1cblxuICBsZXQgZW5kID0gLTFcbiAgbGV0IGluZGV4ID0gcGF0aC5sZW5ndGhcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdW5tYXRjaGVkU2xhc2hcblxuICAvLyBQcmVmaXggYC0tYCBpcyBpbXBvcnRhbnQgdG8gbm90IHJ1biBvbiBgMGAuXG4gIHdoaWxlICgtLWluZGV4KSB7XG4gICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGlmICh1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgICBlbmQgPSBpbmRleFxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXVubWF0Y2hlZFNsYXNoKSB7XG4gICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvclxuICAgICAgdW5tYXRjaGVkU2xhc2ggPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVuZCA8IDBcbiAgICA/IHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuICAgICAgPyAnLydcbiAgICAgIDogJy4nXG4gICAgOiBlbmQgPT09IDEgJiYgcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG4gICAgICA/ICcvLydcbiAgICAgIDogcGF0aC5zbGljZSgwLCBlbmQpXG59XG5cbi8qKlxuICogR2V0IGFuIGV4dG5hbWUgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRXh0bmFtZS5cbiAqL1xuZnVuY3Rpb24gZXh0bmFtZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBsZXQgaW5kZXggPSBwYXRoLmxlbmd0aFxuXG4gIGxldCBlbmQgPSAtMVxuICBsZXQgc3RhcnRQYXJ0ID0gMFxuICBsZXQgc3RhcnREb3QgPSAtMVxuICAvLyBUcmFjayB0aGUgc3RhdGUgb2YgY2hhcmFjdGVycyAoaWYgYW55KSB3ZSBzZWUgYmVmb3JlIG91ciBmaXJzdCBkb3QgYW5kXG4gIC8vIGFmdGVyIGFueSBwYXRoIHNlcGFyYXRvciB3ZSBmaW5kLlxuICBsZXQgcHJlRG90U3RhdGUgPSAwXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHVubWF0Y2hlZFNsYXNoXG5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBjb25zdCBjb2RlID0gcGF0aC5jb2RlUG9pbnRBdChpbmRleClcblxuICAgIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAvLyBzZXBhcmF0b3JzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgc3RvcCBub3cuXG4gICAgICBpZiAodW5tYXRjaGVkU2xhc2gpIHtcbiAgICAgICAgc3RhcnRQYXJ0ID0gaW5kZXggKyAxXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaWYgKGVuZCA8IDApIHtcbiAgICAgIC8vIFdlIHNhdyB0aGUgZmlyc3Qgbm9uLXBhdGggc2VwYXJhdG9yLCBtYXJrIHRoaXMgYXMgdGhlIGVuZCBvZiBvdXJcbiAgICAgIC8vIGV4dGVuc2lvbi5cbiAgICAgIHVubWF0Y2hlZFNsYXNoID0gdHJ1ZVxuICAgICAgZW5kID0gaW5kZXggKyAxXG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IDQ2IC8qIGAuYCAqLykge1xuICAgICAgLy8gSWYgdGhpcyBpcyBvdXIgZmlyc3QgZG90LCBtYXJrIGl0IGFzIHRoZSBzdGFydCBvZiBvdXIgZXh0ZW5zaW9uLlxuICAgICAgaWYgKHN0YXJ0RG90IDwgMCkge1xuICAgICAgICBzdGFydERvdCA9IGluZGV4XG4gICAgICB9IGVsc2UgaWYgKHByZURvdFN0YXRlICE9PSAxKSB7XG4gICAgICAgIHByZURvdFN0YXRlID0gMVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3RhcnREb3QgPiAtMSkge1xuICAgICAgLy8gV2Ugc2F3IGEgbm9uLWRvdCBhbmQgbm9uLXBhdGggc2VwYXJhdG9yIGJlZm9yZSBvdXIgZG90LCBzbyB3ZSBzaG91bGRcbiAgICAgIC8vIGhhdmUgYSBnb29kIGNoYW5jZSBhdCBoYXZpbmcgYSBub24tZW1wdHkgZXh0ZW5zaW9uLlxuICAgICAgcHJlRG90U3RhdGUgPSAtMVxuICAgIH1cbiAgfVxuXG4gIGlmIChcbiAgICBzdGFydERvdCA8IDAgfHxcbiAgICBlbmQgPCAwIHx8XG4gICAgLy8gV2Ugc2F3IGEgbm9uLWRvdCBjaGFyYWN0ZXIgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBkb3QuXG4gICAgcHJlRG90U3RhdGUgPT09IDAgfHxcbiAgICAvLyBUaGUgKHJpZ2h0LW1vc3QpIHRyaW1tZWQgcGF0aCBjb21wb25lbnQgaXMgZXhhY3RseSBgLi5gLlxuICAgIChwcmVEb3RTdGF0ZSA9PT0gMSAmJiBzdGFydERvdCA9PT0gZW5kIC0gMSAmJiBzdGFydERvdCA9PT0gc3RhcnRQYXJ0ICsgMSlcbiAgKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICByZXR1cm4gcGF0aC5zbGljZShzdGFydERvdCwgZW5kKVxufVxuXG4vKipcbiAqIEpvaW4gc2VnbWVudHMgZnJvbSBhIHBhdGguXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBzZWdtZW50c1xuICogICBQYXRoIHNlZ21lbnRzLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBqb2luKC4uLnNlZ21lbnRzKSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgam9pbmVkXG5cbiAgd2hpbGUgKCsraW5kZXggPCBzZWdtZW50cy5sZW5ndGgpIHtcbiAgICBhc3NlcnRQYXRoKHNlZ21lbnRzW2luZGV4XSlcblxuICAgIGlmIChzZWdtZW50c1tpbmRleF0pIHtcbiAgICAgIGpvaW5lZCA9XG4gICAgICAgIGpvaW5lZCA9PT0gdW5kZWZpbmVkID8gc2VnbWVudHNbaW5kZXhdIDogam9pbmVkICsgJy8nICsgc2VnbWVudHNbaW5kZXhdXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGpvaW5lZCA9PT0gdW5kZWZpbmVkID8gJy4nIDogbm9ybWFsaXplKGpvaW5lZClcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYSBiYXNpYyBmaWxlIHBhdGguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG4vLyBOb3RlOiBgbm9ybWFsaXplYCBpcyBub3QgZXhwb3NlZCBhcyBgcGF0aC5ub3JtYWxpemVgLCBzbyBzb21lIGNvZGUgaXNcbi8vIG1hbnVhbGx5IHJlbW92ZWQgZnJvbSBpdC5cbmZ1bmN0aW9uIG5vcm1hbGl6ZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBjb25zdCBhYnNvbHV0ZSA9IHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuXG4gIC8vIE5vcm1hbGl6ZSB0aGUgcGF0aCBhY2NvcmRpbmcgdG8gUE9TSVggcnVsZXMuXG4gIGxldCB2YWx1ZSA9IG5vcm1hbGl6ZVN0cmluZyhwYXRoLCAhYWJzb2x1dGUpXG5cbiAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCAmJiAhYWJzb2x1dGUpIHtcbiAgICB2YWx1ZSA9ICcuJ1xuICB9XG5cbiAgaWYgKHZhbHVlLmxlbmd0aCA+IDAgJiYgcGF0aC5jb2RlUG9pbnRBdChwYXRoLmxlbmd0aCAtIDEpID09PSA0NyAvKiAvICovKSB7XG4gICAgdmFsdWUgKz0gJy8nXG4gIH1cblxuICByZXR1cm4gYWJzb2x1dGUgPyAnLycgKyB2YWx1ZSA6IHZhbHVlXG59XG5cbi8qKlxuICogUmVzb2x2ZSBgLmAgYW5kIGAuLmAgZWxlbWVudHMgaW4gYSBwYXRoIHdpdGggZGlyZWN0b3J5IG5hbWVzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYWxsb3dBYm92ZVJvb3RcbiAqICAgV2hldGhlciBgLi5gIGNhbiBtb3ZlIGFib3ZlIHJvb3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0cmluZyhwYXRoLCBhbGxvd0Fib3ZlUm9vdCkge1xuICBsZXQgcmVzdWx0ID0gJydcbiAgbGV0IGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICBsZXQgbGFzdFNsYXNoID0gLTFcbiAgbGV0IGRvdHMgPSAwXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY29kZVxuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IGxhc3RTbGFzaEluZGV4XG5cbiAgd2hpbGUgKCsraW5kZXggPD0gcGF0aC5sZW5ndGgpIHtcbiAgICBpZiAoaW5kZXggPCBwYXRoLmxlbmd0aCkge1xuICAgICAgY29kZSA9IHBhdGguY29kZVBvaW50QXQoaW5kZXgpXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGJyZWFrXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvZGUgPSA0NyAvKiBgL2AgKi9cbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gNDcgLyogYC9gICovKSB7XG4gICAgICBpZiAobGFzdFNsYXNoID09PSBpbmRleCAtIDEgfHwgZG90cyA9PT0gMSkge1xuICAgICAgICAvLyBFbXB0eS5cbiAgICAgIH0gZWxzZSBpZiAobGFzdFNsYXNoICE9PSBpbmRleCAtIDEgJiYgZG90cyA9PT0gMikge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVzdWx0Lmxlbmd0aCA8IDIgfHxcbiAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCAhPT0gMiB8fFxuICAgICAgICAgIHJlc3VsdC5jb2RlUG9pbnRBdChyZXN1bHQubGVuZ3RoIC0gMSkgIT09IDQ2IC8qIGAuYCAqLyB8fFxuICAgICAgICAgIHJlc3VsdC5jb2RlUG9pbnRBdChyZXN1bHQubGVuZ3RoIC0gMikgIT09IDQ2IC8qIGAuYCAqL1xuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgIGxhc3RTbGFzaEluZGV4ID0gcmVzdWx0Lmxhc3RJbmRleE9mKCcvJylcblxuICAgICAgICAgICAgaWYgKGxhc3RTbGFzaEluZGV4ICE9PSByZXN1bHQubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBpZiAobGFzdFNsYXNoSW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gJydcbiAgICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDBcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgbGFzdFNsYXNoSW5kZXgpXG4gICAgICAgICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSByZXN1bHQubGVuZ3RoIC0gMSAtIHJlc3VsdC5sYXN0SW5kZXhPZignLycpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBsYXN0U2xhc2ggPSBpbmRleFxuICAgICAgICAgICAgICBkb3RzID0gMFxuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJlc3VsdCA9ICcnXG4gICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDBcbiAgICAgICAgICAgIGxhc3RTbGFzaCA9IGluZGV4XG4gICAgICAgICAgICBkb3RzID0gMFxuICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWxsb3dBYm92ZVJvb3QpIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQubGVuZ3RoID4gMCA/IHJlc3VsdCArICcvLi4nIDogJy4uJ1xuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXN1bHQgKz0gJy8nICsgcGF0aC5zbGljZShsYXN0U2xhc2ggKyAxLCBpbmRleClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSBwYXRoLnNsaWNlKGxhc3RTbGFzaCArIDEsIGluZGV4KVxuICAgICAgICB9XG5cbiAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSBpbmRleCAtIGxhc3RTbGFzaCAtIDFcbiAgICAgIH1cblxuICAgICAgbGFzdFNsYXNoID0gaW5kZXhcbiAgICAgIGRvdHMgPSAwXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSA0NiAvKiBgLmAgKi8gJiYgZG90cyA+IC0xKSB7XG4gICAgICBkb3RzKytcbiAgICB9IGVsc2Uge1xuICAgICAgZG90cyA9IC0xXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIE1ha2Ugc3VyZSBgcGF0aGAgaXMgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHJldHVybnMge2Fzc2VydHMgcGF0aCBpcyBzdHJpbmd9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhdGgocGF0aCkge1xuICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICdQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICcgKyBKU09OLnN0cmluZ2lmeShwYXRoKVxuICAgIClcbiAgfVxufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG1heC1kZXB0aCwgY29tcGxleGl0eSAqL1xuIiwgIi8vIFNvbWV3aGF0IGJhc2VkIG9uOlxuLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9kZWZ1bmN0em9tYmllL25vZGUtcHJvY2Vzcy9ibG9iL21hc3Rlci9icm93c2VyLmpzPi5cbi8vIEJ1dCBJIGRvblx1MjAxOXQgdGhpbmsgb25lIHRpbnkgbGluZSBvZiBjb2RlIGNhbiBiZSBjb3B5cmlnaHRlZC4gXHVEODNEXHVERTA1XG5leHBvcnQgY29uc3QgbWlucHJvYyA9IHtjd2R9XG5cbmZ1bmN0aW9uIGN3ZCgpIHtcbiAgcmV0dXJuICcvJ1xufVxuIiwgIi8qKlxuICogQ2hlY2tzIGlmIGEgdmFsdWUgaGFzIHRoZSBzaGFwZSBvZiBhIFdIQVRXRyBVUkwgb2JqZWN0LlxuICpcbiAqIFVzaW5nIGEgc3ltYm9sIG9yIGluc3RhbmNlb2Ygd291bGQgbm90IGJlIGFibGUgdG8gcmVjb2duaXplIFVSTCBvYmplY3RzXG4gKiBjb21pbmcgZnJvbSBvdGhlciBpbXBsZW1lbnRhdGlvbnMgKGUuZy4gaW4gRWxlY3Ryb24pLCBzbyBpbnN0ZWFkIHdlIGFyZVxuICogY2hlY2tpbmcgc29tZSB3ZWxsIGtub3duIHByb3BlcnRpZXMgZm9yIGEgbGFjayBvZiBhIGJldHRlciB0ZXN0LlxuICpcbiAqIFdlIHVzZSBgaHJlZmAgYW5kIGBwcm90b2NvbGAgYXMgdGhleSBhcmUgdGhlIG9ubHkgcHJvcGVydGllcyB0aGF0IGFyZVxuICogZWFzeSB0byByZXRyaWV2ZSBhbmQgY2FsY3VsYXRlIGR1ZSB0byB0aGUgbGF6eSBuYXR1cmUgb2YgdGhlIGdldHRlcnMuXG4gKlxuICogV2UgY2hlY2sgZm9yIGF1dGggYXR0cmlidXRlIHRvIGRpc3Rpbmd1aXNoIGxlZ2FjeSB1cmwgaW5zdGFuY2Ugd2l0aFxuICogV0hBVFdHIFVSTCBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IGZpbGVVcmxPclBhdGhcbiAqICAgRmlsZSBwYXRoIG9yIFVSTC5cbiAqIEByZXR1cm5zIHtmaWxlVXJsT3JQYXRoIGlzIFVSTH1cbiAqICAgV2hldGhlciBpdFx1MjAxOXMgYSBVUkwuXG4gKi9cbi8vIEZyb206IDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi82YTM0MDNjL2xpYi9pbnRlcm5hbC91cmwuanMjTDcyMD5cbmV4cG9ydCBmdW5jdGlvbiBpc1VybChmaWxlVXJsT3JQYXRoKSB7XG4gIHJldHVybiBCb29sZWFuKFxuICAgIGZpbGVVcmxPclBhdGggIT09IG51bGwgJiZcbiAgICAgIHR5cGVvZiBmaWxlVXJsT3JQYXRoID09PSAnb2JqZWN0JyAmJlxuICAgICAgJ2hyZWYnIGluIGZpbGVVcmxPclBhdGggJiZcbiAgICAgIGZpbGVVcmxPclBhdGguaHJlZiAmJlxuICAgICAgJ3Byb3RvY29sJyBpbiBmaWxlVXJsT3JQYXRoICYmXG4gICAgICBmaWxlVXJsT3JQYXRoLnByb3RvY29sICYmXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBpbmRleGluZyBpcyBmaW5lLlxuICAgICAgZmlsZVVybE9yUGF0aC5hdXRoID09PSB1bmRlZmluZWRcbiAgKVxufVxuIiwgImltcG9ydCB7aXNVcmx9IGZyb20gJy4vbWludXJsLnNoYXJlZC5qcydcblxuZXhwb3J0IHtpc1VybH0gZnJvbSAnLi9taW51cmwuc2hhcmVkLmpzJ1xuXG4vLyBTZWU6IDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi82YTM0MDNjL2xpYi9pbnRlcm5hbC91cmwuanM+XG5cbi8qKlxuICogQHBhcmFtIHtVUkwgfCBzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBVUkwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIFVSTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVybFRvUGF0aChwYXRoKSB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHtcbiAgICBwYXRoID0gbmV3IFVSTChwYXRoKVxuICB9IGVsc2UgaWYgKCFpc1VybChwYXRoKSkge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICdUaGUgXCJwYXRoXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnICtcbiAgICAgICAgcGF0aCArXG4gICAgICAgICdgJ1xuICAgIClcbiAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX0FSR19UWVBFJ1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBpZiAocGF0aC5wcm90b2NvbCAhPT0gJ2ZpbGU6Jykge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcignVGhlIFVSTCBtdXN0IGJlIG9mIHNjaGVtZSBmaWxlJylcbiAgICBlcnJvci5jb2RlID0gJ0VSUl9JTlZBTElEX1VSTF9TQ0hFTUUnXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIHJldHVybiBnZXRQYXRoRnJvbVVSTFBvc2l4KHBhdGgpXG59XG5cbi8qKlxuICogR2V0IGEgcGF0aCBmcm9tIGEgUE9TSVggVVJMLlxuICpcbiAqIEBwYXJhbSB7VVJMfSB1cmxcbiAqICAgVVJMLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRmlsZSBwYXRoLlxuICovXG5mdW5jdGlvbiBnZXRQYXRoRnJvbVVSTFBvc2l4KHVybCkge1xuICBpZiAodXJsLmhvc3RuYW1lICE9PSAnJykge1xuICAgIC8qKiBAdHlwZSB7Tm9kZUpTLkVycm5vRXhjZXB0aW9ufSAqL1xuICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICdGaWxlIFVSTCBob3N0IG11c3QgYmUgXCJsb2NhbGhvc3RcIiBvciBlbXB0eSBvbiBkYXJ3aW4nXG4gICAgKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfRklMRV9VUkxfSE9TVCdcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgY29uc3QgcGF0aG5hbWUgPSB1cmwucGF0aG5hbWVcbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHBhdGhuYW1lLmxlbmd0aCkge1xuICAgIGlmIChcbiAgICAgIHBhdGhuYW1lLmNvZGVQb2ludEF0KGluZGV4KSA9PT0gMzcgLyogYCVgICovICYmXG4gICAgICBwYXRobmFtZS5jb2RlUG9pbnRBdChpbmRleCArIDEpID09PSA1MCAvKiBgMmAgKi9cbiAgICApIHtcbiAgICAgIGNvbnN0IHRoaXJkID0gcGF0aG5hbWUuY29kZVBvaW50QXQoaW5kZXggKyAyKVxuICAgICAgaWYgKHRoaXJkID09PSA3MCAvKiBgRmAgKi8gfHwgdGhpcmQgPT09IDEwMiAvKiBgZmAgKi8pIHtcbiAgICAgICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAnRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzJ1xuICAgICAgICApXG4gICAgICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfRklMRV9VUkxfUEFUSCdcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHBhdGhuYW1lKVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7Tm9kZSwgUG9pbnQsIFBvc2l0aW9ufSBmcm9tICd1bmlzdCdcbiAqIEBpbXBvcnQge09wdGlvbnMgYXMgTWVzc2FnZU9wdGlvbnN9IGZyb20gJ3ZmaWxlLW1lc3NhZ2UnXG4gKiBAaW1wb3J0IHtDb21wYXRpYmxlLCBEYXRhLCBNYXAsIE9wdGlvbnMsIFZhbHVlfSBmcm9tICd2ZmlsZSdcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3QgJiB7dHlwZTogc3RyaW5nLCBwb3NpdGlvbj86IFBvc2l0aW9uIHwgdW5kZWZpbmVkfX0gTm9kZUxpa2VcbiAqL1xuXG5pbXBvcnQge1ZGaWxlTWVzc2FnZX0gZnJvbSAndmZpbGUtbWVzc2FnZSdcbmltcG9ydCB7bWlucGF0aH0gZnJvbSAnI21pbnBhdGgnXG5pbXBvcnQge21pbnByb2N9IGZyb20gJyNtaW5wcm9jJ1xuaW1wb3J0IHt1cmxUb1BhdGgsIGlzVXJsfSBmcm9tICcjbWludXJsJ1xuXG4vKipcbiAqIE9yZGVyIG9mIHNldHRpbmcgKGxlYXN0IHNwZWNpZmljIHRvIG1vc3QpLCB3ZSBuZWVkIHRoaXMgYmVjYXVzZSBvdGhlcndpc2VcbiAqIGB7c3RlbTogJ2EnLCBwYXRoOiAnfi9iLmpzJ31gIHdvdWxkIHRocm93LCBhcyBhIHBhdGggaXMgbmVlZGVkIGJlZm9yZSBhXG4gKiBzdGVtIGNhbiBiZSBzZXQuXG4gKi9cbmNvbnN0IG9yZGVyID0gLyoqIEB0eXBlIHtjb25zdH0gKi8gKFtcbiAgJ2hpc3RvcnknLFxuICAncGF0aCcsXG4gICdiYXNlbmFtZScsXG4gICdzdGVtJyxcbiAgJ2V4dG5hbWUnLFxuICAnZGlybmFtZSdcbl0pXG5cbmV4cG9ydCBjbGFzcyBWRmlsZSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdmlydHVhbCBmaWxlLlxuICAgKlxuICAgKiBgb3B0aW9uc2AgaXMgdHJlYXRlZCBhczpcbiAgICpcbiAgICogKiAgIGBzdHJpbmdgIG9yIGBVaW50OEFycmF5YCBcdTIwMTQgYHt2YWx1ZTogb3B0aW9uc31gXG4gICAqICogICBgVVJMYCBcdTIwMTQgYHtwYXRoOiBvcHRpb25zfWBcbiAgICogKiAgIGBWRmlsZWAgXHUyMDE0IHNoYWxsb3cgY29waWVzIGl0cyBkYXRhIG92ZXIgdG8gdGhlIG5ldyBmaWxlXG4gICAqICogICBgb2JqZWN0YCBcdTIwMTQgYWxsIGZpZWxkcyBhcmUgc2hhbGxvdyBjb3BpZWQgb3ZlciB0byB0aGUgbmV3IGZpbGVcbiAgICpcbiAgICogUGF0aCByZWxhdGVkIGZpZWxkcyBhcmUgc2V0IGluIHRoZSBmb2xsb3dpbmcgb3JkZXIgKGxlYXN0IHNwZWNpZmljIHRvXG4gICAqIG1vc3Qgc3BlY2lmaWMpOiBgaGlzdG9yeWAsIGBwYXRoYCwgYGJhc2VuYW1lYCwgYHN0ZW1gLCBgZXh0bmFtZWAsXG4gICAqIGBkaXJuYW1lYC5cbiAgICpcbiAgICogWW91IGNhbm5vdCBzZXQgYGRpcm5hbWVgIG9yIGBleHRuYW1lYCB3aXRob3V0IHNldHRpbmcgZWl0aGVyIGBoaXN0b3J5YCxcbiAgICogYHBhdGhgLCBgYmFzZW5hbWVgLCBvciBgc3RlbWAgdG9vLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbXBhdGlibGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gICAqICAgRmlsZSB2YWx1ZS5cbiAgICogQHJldHVybnNcbiAgICogICBOZXcgaW5zdGFuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgIC8qKiBAdHlwZSB7T3B0aW9ucyB8IFZGaWxlfSAqL1xuICAgIGxldCBvcHRpb25zXG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICBvcHRpb25zID0ge31cbiAgICB9IGVsc2UgaWYgKGlzVXJsKHZhbHVlKSkge1xuICAgICAgb3B0aW9ucyA9IHtwYXRoOiB2YWx1ZX1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgaXNVaW50OEFycmF5KHZhbHVlKSkge1xuICAgICAgb3B0aW9ucyA9IHt2YWx1ZX1cbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9ucyA9IHZhbHVlXG4gICAgfVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG5cbiAgICAvKipcbiAgICAgKiBCYXNlIG9mIGBwYXRoYCAoZGVmYXVsdDogYHByb2Nlc3MuY3dkKClgIG9yIGAnLydgIGluIGJyb3dzZXJzKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgLy8gUHJldmVudCBjYWxsaW5nIGBjd2RgICh3aGljaCBjb3VsZCBiZSBleHBlbnNpdmUpIGlmIGl0XHUyMDE5cyBub3QgbmVlZGVkO1xuICAgIC8vIHRoZSBlbXB0eSBzdHJpbmcgd2lsbCBiZSBvdmVycmlkZGVuIGluIHRoZSBuZXh0IGJsb2NrLlxuICAgIHRoaXMuY3dkID0gJ2N3ZCcgaW4gb3B0aW9ucyA/ICcnIDogbWlucHJvYy5jd2QoKVxuXG4gICAgLyoqXG4gICAgICogUGxhY2UgdG8gc3RvcmUgY3VzdG9tIGluZm8gKGRlZmF1bHQ6IGB7fWApLlxuICAgICAqXG4gICAgICogSXRcdTIwMTlzIE9LIHRvIHN0b3JlIGN1c3RvbSBkYXRhIGRpcmVjdGx5IG9uIHRoZSBmaWxlIGJ1dCBtb3ZpbmcgaXQgdG9cbiAgICAgKiBgZGF0YWAgaXMgcmVjb21tZW5kZWQuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RGF0YX1cbiAgICAgKi9cbiAgICB0aGlzLmRhdGEgPSB7fVxuXG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBmaWxlIHBhdGhzIHRoZSBmaWxlIG1vdmVkIGJldHdlZW4uXG4gICAgICpcbiAgICAgKiBUaGUgZmlyc3QgaXMgdGhlIG9yaWdpbmFsIHBhdGggYW5kIHRoZSBsYXN0IGlzIHRoZSBjdXJyZW50IHBhdGguXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAgICAgKi9cbiAgICB0aGlzLmhpc3RvcnkgPSBbXVxuXG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBtZXNzYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8VkZpbGVNZXNzYWdlPn1cbiAgICAgKi9cbiAgICB0aGlzLm1lc3NhZ2VzID0gW11cblxuICAgIC8qKlxuICAgICAqIFJhdyB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtWYWx1ZX1cbiAgICAgKi9cbiAgICB0aGlzLnZhbHVlXG5cbiAgICAvLyBUaGUgYmVsb3cgYXJlIG5vbi1zdGFuZGFyZCwgdGhleSBhcmUgXHUyMDFDd2VsbC1rbm93blx1MjAxRC5cbiAgICAvLyBBcyBpbiwgdXNlZCBpbiBzZXZlcmFsIHRvb2xzLlxuICAgIC8qKlxuICAgICAqIFNvdXJjZSBtYXAuXG4gICAgICpcbiAgICAgKiBUaGlzIHR5cGUgaXMgZXF1aXZhbGVudCB0byB0aGUgYFJhd1NvdXJjZU1hcGAgdHlwZSBmcm9tIHRoZSBgc291cmNlLW1hcGBcbiAgICAgKiBtb2R1bGUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7TWFwIHwgbnVsbCB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLm1hcFxuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tLCBub24tc3RyaW5nLCBjb21waWxlZCwgcmVwcmVzZW50YXRpb24uXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgdW5pZmllZCB0byBzdG9yZSBub24tc3RyaW5nIHJlc3VsdHMuXG4gICAgICogT25lIGV4YW1wbGUgaXMgd2hlbiB0dXJuaW5nIG1hcmtkb3duIGludG8gUmVhY3Qgbm9kZXMuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7dW5rbm93bn1cbiAgICAgKi9cbiAgICB0aGlzLnJlc3VsdFxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBhIGZpbGUgd2FzIHNhdmVkIHRvIGRpc2suXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgdmZpbGUgcmVwb3J0ZXJzLlxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgdGhpcy5zdG9yZWRcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuXG4gICAgLy8gU2V0IHBhdGggcmVsYXRlZCBwcm9wZXJ0aWVzIGluIHRoZSBjb3JyZWN0IG9yZGVyLlxuICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IG9yZGVyLmxlbmd0aCkge1xuICAgICAgY29uc3QgZmllbGQgPSBvcmRlcltpbmRleF1cblxuICAgICAgLy8gTm90ZTogd2Ugc3BlY2lmaWNhbGx5IHVzZSBgaW5gIGluc3RlYWQgb2YgYGhhc093blByb3BlcnR5YCB0byBhY2NlcHRcbiAgICAgIC8vIGB2ZmlsZWBzIHRvby5cbiAgICAgIGlmIChcbiAgICAgICAgZmllbGQgaW4gb3B0aW9ucyAmJlxuICAgICAgICBvcHRpb25zW2ZpZWxkXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIG9wdGlvbnNbZmllbGRdICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgZG9lc25cdTIwMTl0IHVuZGVyc3RhbmQgYmFzaWMgcmVhbGl0eS5cbiAgICAgICAgdGhpc1tmaWVsZF0gPSBmaWVsZCA9PT0gJ2hpc3RvcnknID8gWy4uLm9wdGlvbnNbZmllbGRdXSA6IG9wdGlvbnNbZmllbGRdXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IGZpZWxkXG5cbiAgICAvLyBTZXQgbm9uLXBhdGggcmVsYXRlZCBwcm9wZXJ0aWVzLlxuICAgIGZvciAoZmllbGQgaW4gb3B0aW9ucykge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZSB0byBzZXQgb3RoZXIgdGhpbmdzLlxuICAgICAgaWYgKCFvcmRlci5pbmNsdWRlcyhmaWVsZCkpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZSB0byBzZXQgb3RoZXIgdGhpbmdzLlxuICAgICAgICB0aGlzW2ZpZWxkXSA9IG9wdGlvbnNbZmllbGRdXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZW5hbWUgKGluY2x1ZGluZyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgQmFzZW5hbWUuXG4gICAqL1xuICBnZXQgYmFzZW5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnXG4gICAgICA/IG1pbnBhdGguYmFzZW5hbWUodGhpcy5wYXRoKVxuICAgICAgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYmFzZW5hbWUgKGluY2x1ZGluZyBleHRuYW1lKSAoYCdpbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBjb250YWluIHBhdGggc2VwYXJhdG9ycyAoYCcvJ2Agb24gdW5peCwgbWFjT1MsIGFuZCBicm93c2VycywgYCdcXCdgXG4gICAqIG9uIHdpbmRvd3MpLlxuICAgKiBDYW5ub3QgYmUgbnVsbGlmaWVkICh1c2UgYGZpbGUucGF0aCA9IGZpbGUuZGlybmFtZWAgaW5zdGVhZCkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlbmFtZVxuICAgKiAgIEJhc2VuYW1lLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgYmFzZW5hbWUoYmFzZW5hbWUpIHtcbiAgICBhc3NlcnROb25FbXB0eShiYXNlbmFtZSwgJ2Jhc2VuYW1lJylcbiAgICBhc3NlcnRQYXJ0KGJhc2VuYW1lLCAnYmFzZW5hbWUnKVxuICAgIHRoaXMucGF0aCA9IG1pbnBhdGguam9pbih0aGlzLmRpcm5hbWUgfHwgJycsIGJhc2VuYW1lKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcGFyZW50IHBhdGggKGV4YW1wbGU6IGAnfidgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBEaXJuYW1lLlxuICAgKi9cbiAgZ2V0IGRpcm5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnXG4gICAgICA/IG1pbnBhdGguZGlybmFtZSh0aGlzLnBhdGgpXG4gICAgICA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcGFyZW50IHBhdGggKGV4YW1wbGU6IGAnfidgKS5cbiAgICpcbiAgICogQ2Fubm90IGJlIHNldCBpZiB0aGVyZVx1MjAxOXMgbm8gYHBhdGhgIHlldC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGRpcm5hbWVcbiAgICogICBEaXJuYW1lLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgZGlybmFtZShkaXJuYW1lKSB7XG4gICAgYXNzZXJ0UGF0aCh0aGlzLmJhc2VuYW1lLCAnZGlybmFtZScpXG4gICAgdGhpcy5wYXRoID0gbWlucGF0aC5qb2luKGRpcm5hbWUgfHwgJycsIHRoaXMuYmFzZW5hbWUpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBleHRuYW1lIChpbmNsdWRpbmcgZG90KSAoZXhhbXBsZTogYCcuanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgRXh0bmFtZS5cbiAgICovXG4gIGdldCBleHRuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJ1xuICAgICAgPyBtaW5wYXRoLmV4dG5hbWUodGhpcy5wYXRoKVxuICAgICAgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGV4dG5hbWUgKGluY2x1ZGluZyBkb3QpIChleGFtcGxlOiBgJy5qcydgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBzZXQgaWYgdGhlcmVcdTIwMTlzIG5vIGBwYXRoYCB5ZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBleHRuYW1lXG4gICAqICAgRXh0bmFtZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IGV4dG5hbWUoZXh0bmFtZSkge1xuICAgIGFzc2VydFBhcnQoZXh0bmFtZSwgJ2V4dG5hbWUnKVxuICAgIGFzc2VydFBhdGgodGhpcy5kaXJuYW1lLCAnZXh0bmFtZScpXG5cbiAgICBpZiAoZXh0bmFtZSkge1xuICAgICAgaWYgKGV4dG5hbWUuY29kZVBvaW50QXQoMCkgIT09IDQ2IC8qIGAuYCAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gJylcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dG5hbWUuaW5jbHVkZXMoJy4nLCAxKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBhdGggPSBtaW5wYXRoLmpvaW4odGhpcy5kaXJuYW1lLCB0aGlzLnN0ZW0gKyAoZXh0bmFtZSB8fCAnJykpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgUGF0aC5cbiAgICovXG4gIGdldCBwYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aCAtIDFdXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQuXG4gICAqIFlvdSBjYW4gc2V0IGEgZmlsZSBVUkwgKGEgYFVSTGAgb2JqZWN0IHdpdGggYSBgZmlsZTpgIHByb3RvY29sKSB3aGljaCB3aWxsXG4gICAqIGJlIHR1cm5lZCBpbnRvIGEgcGF0aCB3aXRoIGB1cmwuZmlsZVVSTFRvUGF0aGAuXG4gICAqXG4gICAqIEBwYXJhbSB7VVJMIHwgc3RyaW5nfSBwYXRoXG4gICAqICAgUGF0aC5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IHBhdGgocGF0aCkge1xuICAgIGlmIChpc1VybChwYXRoKSkge1xuICAgICAgcGF0aCA9IHVybFRvUGF0aChwYXRoKVxuICAgIH1cblxuICAgIGFzc2VydE5vbkVtcHR5KHBhdGgsICdwYXRoJylcblxuICAgIGlmICh0aGlzLnBhdGggIT09IHBhdGgpIHtcbiAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKHBhdGgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBTdGVtLlxuICAgKi9cbiAgZ2V0IHN0ZW0oKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnXG4gICAgICA/IG1pbnBhdGguYmFzZW5hbWUodGhpcy5wYXRoLCB0aGlzLmV4dG5hbWUpXG4gICAgICA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQgKHVzZSBgZmlsZS5wYXRoID0gZmlsZS5kaXJuYW1lYCBpbnN0ZWFkKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0ZW1cbiAgICogICBTdGVtLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgc3RlbShzdGVtKSB7XG4gICAgYXNzZXJ0Tm9uRW1wdHkoc3RlbSwgJ3N0ZW0nKVxuICAgIGFzc2VydFBhcnQoc3RlbSwgJ3N0ZW0nKVxuICAgIHRoaXMucGF0aCA9IG1pbnBhdGguam9pbih0aGlzLmRpcm5hbWUgfHwgJycsIHN0ZW0gKyAodGhpcy5leHRuYW1lIHx8ICcnKSlcbiAgfVxuXG4gIC8vIE5vcm1hbCBwcm90b3R5cGFsIG1ldGhvZHMuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBmYXRhbCBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgdHJ1ZWAgKGVycm9yOyBmaWxlIG5vdCB1c2FibGUpXG4gICAqIGFuZCB0aGUgYGZpbGVgIGZpZWxkIGlzIHNldCB0byB0aGUgY3VycmVudCBmaWxlIHBhdGguXG4gICAqIFRoZSBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBgbWVzc2FnZXNgIGZpZWxkIG9uIGBmaWxlYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7TWVzc2FnZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKiAgIE5ldmVyLlxuICAgKiBAdGhyb3dzIHtWRmlsZU1lc3NhZ2V9XG4gICAqICAgTWVzc2FnZS5cbiAgICovXG4gIGZhaWwoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGhlIG92ZXJsb2FkcyBhcmUgZmluZS5cbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbilcblxuICAgIG1lc3NhZ2UuZmF0YWwgPSB0cnVlXG5cbiAgICB0aHJvdyBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGluZm8gbWVzc2FnZSBmb3IgYHJlYXNvbmAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgKlxuICAgKiBUaGUgYGZhdGFsYCBmaWVsZCBvZiB0aGUgbWVzc2FnZSBpcyBzZXQgdG8gYHVuZGVmaW5lZGAgKGluZm87IGNoYW5nZVxuICAgKiBsaWtlbHkgbm90IG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgaW5mbyhjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgZmFsc2VgICh3YXJuaW5nOyBjaGFuZ2UgbWF5IGJlXG4gICAqIG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgbWVzc2FnZShjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IFZGaWxlTWVzc2FnZShcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRoZSBvdmVybG9hZHMgYXJlIGZpbmUuXG4gICAgICBjYXVzZU9yUmVhc29uLFxuICAgICAgb3B0aW9uc09yUGFyZW50T3JQbGFjZSxcbiAgICAgIG9yaWdpblxuICAgIClcblxuICAgIGlmICh0aGlzLnBhdGgpIHtcbiAgICAgIG1lc3NhZ2UubmFtZSA9IHRoaXMucGF0aCArICc6JyArIG1lc3NhZ2UubmFtZVxuICAgICAgbWVzc2FnZS5maWxlID0gdGhpcy5wYXRoXG4gICAgfVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IGZhbHNlXG5cbiAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSlcblxuICAgIHJldHVybiBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSBmaWxlLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiB3aGljaCBlbmNvZGluZ3MgYXJlIHN1cHBvcnRlZCBkZXBlbmRzIG9uIHRoZSBlbmdpbmUuXG4gICAqID4gRm9yIGluZm8gb24gTm9kZS5qcywgc2VlOlxuICAgKiA+IDxodHRwczovL25vZGVqcy5vcmcvYXBpL3V0aWwuaHRtbCN3aGF0d2ctc3VwcG9ydGVkLWVuY29kaW5ncz4uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuY29kaW5nPSd1dGY4J11cbiAgICogICBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdW5kZXJzdGFuZCBgdmFsdWVgIGFzIHdoZW4gaXRcdTIwMTlzIGEgYFVpbnQ4QXJyYXlgXG4gICAqICAgKGRlZmF1bHQ6IGAndXRmLTgnYCkuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgU2VyaWFsaXplZCBmaWxlLlxuICAgKi9cbiAgdG9TdHJpbmcoZW5jb2RpbmcpIHtcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoZW5jb2RpbmcgfHwgdW5kZWZpbmVkKVxuICAgIHJldHVybiBkZWNvZGVyLmRlY29kZSh0aGlzLnZhbHVlKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBhIHBhdGggKGFzIGluLCBkb2VzIG5vdCBjb250YWluIGBwYXRoLnNlcGApLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFydFxuICogICBGaWxlIHBhdGggcGFydC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhcnQocGFydCwgbmFtZSkge1xuICBpZiAocGFydCAmJiBwYXJ0LmluY2x1ZGVzKG1pbnBhdGguc2VwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdgJyArIG5hbWUgKyAnYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgJyArIG1pbnBhdGguc2VwICsgJ2AnXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBlbXB0eS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gcGFydFxuICogICBUaGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHthc3NlcnRzIHBhcnQgaXMgc3RyaW5nfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnROb25FbXB0eShwYXJ0LCBuYW1lKSB7XG4gIGlmICghcGFydCkge1xuICAgIHRocm93IG5ldyBFcnJvcignYCcgKyBuYW1lICsgJ2AgY2Fubm90IGJlIGVtcHR5JylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCBgcGF0aGAgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBwYXRoXG4gKiAgIFBhdGguXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBEZXBlbmRlbmN5IG5hbWUuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXRoIGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGF0aChwYXRoLCBuYW1lKSB7XG4gIGlmICghcGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZyBgJyArIG5hbWUgKyAnYCByZXF1aXJlcyBgcGF0aGAgdG8gYmUgc2V0IHRvbycpXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgYHZhbHVlYCBpcyBhbiBgVWludDhBcnJheWAuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICB0aGluZy5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBVaW50OEFycmF5fVxuICogICBXaGV0aGVyIGB2YWx1ZWAgaXMgYW4gYFVpbnQ4QXJyYXlgLlxuICovXG5mdW5jdGlvbiBpc1VpbnQ4QXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgdmFsdWUgJiZcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICdieXRlTGVuZ3RoJyBpbiB2YWx1ZSAmJlxuICAgICAgJ2J5dGVPZmZzZXQnIGluIHZhbHVlXG4gIClcbn1cbiIsICIvLyBNb3JlIHR5cGVzIGV4cG9zZWQgZnJvbSBgaW5kZXguZC50c2AuXG5leHBvcnQge1ZGaWxlfSBmcm9tICcuL2xpYi9pbmRleC5qcydcbiIsICJleHBvcnQgY29uc3QgQ2FsbGFibGVJbnN0YW5jZSA9XG4gIC8qKlxuICAgKiBAdHlwZSB7bmV3IDxQYXJhbWV0ZXJzIGV4dGVuZHMgQXJyYXk8dW5rbm93bj4sIFJlc3VsdD4ocHJvcGVydHk6IHN0cmluZyB8IHN5bWJvbCkgPT4gKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnMpID0+IFJlc3VsdH1cbiAgICovXG4gIChcbiAgICAvKiogQHR5cGUge3Vua25vd259ICovXG4gICAgKFxuICAgICAgLyoqXG4gICAgICAgKiBAdGhpcyB7RnVuY3Rpb259XG4gICAgICAgKiBAcGFyYW0ge3N0cmluZyB8IHN5bWJvbH0gcHJvcGVydHlcbiAgICAgICAqIEByZXR1cm5zIHsoLi4ucGFyYW1ldGVyczogQXJyYXk8dW5rbm93bj4pID0+IHVua25vd259XG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIChwcm9wZXJ0eSkge1xuICAgICAgICBjb25zdCBzZWxmID0gdGhpc1xuICAgICAgICBjb25zdCBjb25zdHIgPSBzZWxmLmNvbnN0cnVjdG9yXG4gICAgICAgIGNvbnN0IHByb3RvID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nIHwgc3ltYm9sLCBGdW5jdGlvbj59ICovIChcbiAgICAgICAgICAvLyBQcm90b3R5cGVzIGRvIGV4aXN0LlxuICAgICAgICAgIC8vIHR5cGUtY292ZXJhZ2U6aWdub3JlLW5leHQtbGluZVxuICAgICAgICAgIGNvbnN0ci5wcm90b3R5cGVcbiAgICAgICAgKVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHByb3RvW3Byb3BlcnR5XVxuICAgICAgICAvKiogQHR5cGUgeyguLi5wYXJhbWV0ZXJzOiBBcnJheTx1bmtub3duPikgPT4gdW5rbm93bn0gKi9cbiAgICAgICAgY29uc3QgYXBwbHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlLmFwcGx5KGFwcGx5LCBhcmd1bWVudHMpXG4gICAgICAgIH1cblxuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoYXBwbHksIHByb3RvKVxuXG4gICAgICAgIC8vIE5vdCBuZWVkZWQgZm9yIHVzIGluIGB1bmlmaWVkYDogd2Ugb25seSBjYWxsIHRoaXMgb24gdGhlIGBjb3B5YFxuICAgICAgICAvLyBmdW5jdGlvbixcbiAgICAgICAgLy8gYW5kIHdlIGRvbid0IG5lZWQgdG8gYWRkIGl0cyBmaWVsZHMgKGBsZW5ndGhgLCBgbmFtZWApXG4gICAgICAgIC8vIG92ZXIuXG4gICAgICAgIC8vIFNlZSBhbHNvOiBHSC0yNDYuXG4gICAgICAgIC8vIGNvbnN0IG5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModmFsdWUpXG4gICAgICAgIC8vXG4gICAgICAgIC8vIGZvciAoY29uc3QgcCBvZiBuYW1lcykge1xuICAgICAgICAvLyAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHZhbHVlLCBwKVxuICAgICAgICAvLyAgIGlmIChkZXNjcmlwdG9yKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXBwbHksIHAsIGRlc2NyaXB0b3IpXG4gICAgICAgIC8vIH1cblxuICAgICAgICByZXR1cm4gYXBwbHlcbiAgICAgIH1cbiAgICApXG4gIClcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Ryb3VnaCcpLlBpcGVsaW5lfSBQaXBlbGluZVxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlJykuQ29tcGF0aWJsZX0gQ29tcGF0aWJsZVxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUnKS5WYWx1ZX0gVmFsdWVcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLkNvbXBpbGVSZXN1bHRNYXB9IENvbXBpbGVSZXN1bHRNYXBcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuRGF0YX0gRGF0YVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TZXR0aW5nc30gU2V0dGluZ3NcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtDb21waWxlUmVzdWx0TWFwW2tleW9mIENvbXBpbGVSZXN1bHRNYXBdfSBDb21waWxlUmVzdWx0c1xuICogICBBY2NlcHRhYmxlIHJlc3VsdHMgZnJvbSBjb21waWxlcnMuXG4gKlxuICogICBUbyByZWdpc3RlciBjdXN0b20gcmVzdWx0cywgYWRkIHRoZW0gdG9cbiAqICAge0BsaW5rY29kZSBDb21waWxlUmVzdWx0TWFwfS5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7Tm9kZX0gW1RyZWU9Tm9kZV1cbiAqICAgVGhlIG5vZGUgdGhhdCB0aGUgY29tcGlsZXIgcmVjZWl2ZXMgKGRlZmF1bHQ6IGBOb2RlYCkuXG4gKiBAdGVtcGxhdGUge0NvbXBpbGVSZXN1bHRzfSBbUmVzdWx0PUNvbXBpbGVSZXN1bHRzXVxuICogICBUaGUgdGhpbmcgdGhhdCB0aGUgY29tcGlsZXIgeWllbGRzIChkZWZhdWx0OiBgQ29tcGlsZVJlc3VsdHNgKS5cbiAqIEBjYWxsYmFjayBDb21waWxlclxuICogICBBICoqY29tcGlsZXIqKiBoYW5kbGVzIHRoZSBjb21waWxpbmcgb2YgYSBzeW50YXggdHJlZSB0byBzb21ldGhpbmcgZWxzZVxuICogICAoaW4gbW9zdCBjYXNlcywgdGV4dCkgKFR5cGVTY3JpcHQgdHlwZSkuXG4gKlxuICogICBJdCBpcyB1c2VkIGluIHRoZSBzdHJpbmdpZnkgcGhhc2UgYW5kIGNhbGxlZCB3aXRoIGEge0BsaW5rY29kZSBOb2RlfVxuICogICBhbmQge0BsaW5rY29kZSBWRmlsZX0gcmVwcmVzZW50YXRpb24gb2YgdGhlIGRvY3VtZW50IHRvIGNvbXBpbGUuXG4gKiAgIEl0IHNob3VsZCByZXR1cm4gdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIHRyZWUgKHR5cGljYWxseVxuICogICBgc3RyaW5nYCkuXG4gKlxuICogICA+ICoqTm90ZSoqOiB1bmlmaWVkIHR5cGljYWxseSBjb21waWxlcyBieSBzZXJpYWxpemluZzogbW9zdCBjb21waWxlcnNcbiAqICAgPiByZXR1cm4gYHN0cmluZ2AgKG9yIGBVaW50OEFycmF5YCkuXG4gKiAgID4gU29tZSBjb21waWxlcnMsIHN1Y2ggYXMgdGhlIG9uZSBjb25maWd1cmVkIHdpdGhcbiAqICAgPiBbYHJlaHlwZS1yZWFjdGBdW3JlaHlwZS1yZWFjdF0sIHJldHVybiBvdGhlciB2YWx1ZXMgKGluIHRoaXMgY2FzZSwgYVxuICogICA+IFJlYWN0IHRyZWUpLlxuICogICA+IElmIHlvdVx1MjAxOXJlIHVzaW5nIGEgY29tcGlsZXIgdGhhdCBkb2Vzblx1MjAxOXQgc2VyaWFsaXplLCBleHBlY3QgZGlmZmVyZW50XG4gKiAgID4gcmVzdWx0IHZhbHVlcy5cbiAqICAgPlxuICogICA+IFRvIHJlZ2lzdGVyIGN1c3RvbSByZXN1bHRzIGluIFR5cGVTY3JpcHQsIGFkZCB0aGVtIHRvXG4gKiAgID4ge0BsaW5rY29kZSBDb21waWxlUmVzdWx0TWFwfS5cbiAqXG4gKiAgIFtyZWh5cGUtcmVhY3RdOiBodHRwczovL2dpdGh1Yi5jb20vcmVoeXBlanMvcmVoeXBlLXJlYWN0XG4gKiBAcGFyYW0ge1RyZWV9IHRyZWVcbiAqICAgVHJlZSB0byBjb21waWxlLlxuICogQHBhcmFtIHtWRmlsZX0gZmlsZVxuICogICBGaWxlIGFzc29jaWF0ZWQgd2l0aCBgdHJlZWAuXG4gKiBAcmV0dXJucyB7UmVzdWx0fVxuICogICBOZXcgY29udGVudDogY29tcGlsZWQgdGV4dCAoYHN0cmluZ2Agb3IgYFVpbnQ4QXJyYXlgLCBmb3IgYGZpbGUudmFsdWVgKSBvclxuICogICBzb21ldGhpbmcgZWxzZSAoZm9yIGBmaWxlLnJlc3VsdGApLlxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtOb2RlfSBbVHJlZT1Ob2RlXVxuICogICBUaGUgbm9kZSB0aGF0IHRoZSBwYXJzZXIgeWllbGRzIChkZWZhdWx0OiBgTm9kZWApXG4gKiBAY2FsbGJhY2sgUGFyc2VyXG4gKiAgIEEgKipwYXJzZXIqKiBoYW5kbGVzIHRoZSBwYXJzaW5nIG9mIHRleHQgdG8gYSBzeW50YXggdHJlZS5cbiAqXG4gKiAgIEl0IGlzIHVzZWQgaW4gdGhlIHBhcnNlIHBoYXNlIGFuZCBpcyBjYWxsZWQgd2l0aCBhIGBzdHJpbmdgIGFuZFxuICogICB7QGxpbmtjb2RlIFZGaWxlfSBvZiB0aGUgZG9jdW1lbnQgdG8gcGFyc2UuXG4gKiAgIEl0IG11c3QgcmV0dXJuIHRoZSBzeW50YXggdHJlZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gZmlsZVxuICogICAoe0BsaW5rY29kZSBOb2RlfSkuXG4gKiBAcGFyYW0ge3N0cmluZ30gZG9jdW1lbnRcbiAqICAgRG9jdW1lbnQgdG8gcGFyc2UuXG4gKiBAcGFyYW0ge1ZGaWxlfSBmaWxlXG4gKiAgIEZpbGUgYXNzb2NpYXRlZCB3aXRoIGBkb2N1bWVudGAuXG4gKiBAcmV0dXJucyB7VHJlZX1cbiAqICAgTm9kZSByZXByZXNlbnRpbmcgdGhlIGdpdmVuIGZpbGUuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBQbHVnaW48QXJyYXk8YW55PiwgYW55LCBhbnk+IHxcbiAqICAgUGx1Z2luVHVwbGU8QXJyYXk8YW55PiwgYW55LCBhbnk+IHxcbiAqICAgUHJlc2V0XG4gKiApfSBQbHVnZ2FibGVcbiAqICAgVW5pb24gb2YgdGhlIGRpZmZlcmVudCB3YXlzIHRvIGFkZCBwbHVnaW5zIGFuZCBzZXR0aW5ncy5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtBcnJheTxQbHVnZ2FibGU+fSBQbHVnZ2FibGVMaXN0XG4gKiAgIExpc3Qgb2YgcGx1Z2lucyBhbmQgcHJlc2V0cy5cbiAqL1xuXG4vLyBOb3RlOiB3ZSBjYW5cdTIwMTl0IHVzZSBgY2FsbGJhY2tgIHlldCBhcyBpdCBtZXNzZXMgdXAgYHRoaXNgOlxuLy8gIDxodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzU1MTk3Pi5cbi8qKlxuICogQHRlbXBsYXRlIHtBcnJheTx1bmtub3duPn0gW1BsdWdpblBhcmFtZXRlcnM9W11dXG4gKiAgIEFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHBsdWdpbiAoZGVmYXVsdDogYFtdYCwgdGhlIGVtcHR5IHR1cGxlKS5cbiAqIEB0ZW1wbGF0ZSB7Tm9kZSB8IHN0cmluZyB8IHVuZGVmaW5lZH0gW0lucHV0PU5vZGVdXG4gKiAgIFZhbHVlIHRoYXQgaXMgZXhwZWN0ZWQgYXMgaW5wdXQgKGRlZmF1bHQ6IGBOb2RlYCkuXG4gKlxuICogICAqICAgSWYgdGhlIHBsdWdpbiByZXR1cm5zIGEge0BsaW5rY29kZSBUcmFuc2Zvcm1lcn0sIHRoaXNcbiAqICAgICAgIHNob3VsZCBiZSB0aGUgbm9kZSBpdCBleHBlY3RzLlxuICogICAqICAgSWYgdGhlIHBsdWdpbiBzZXRzIGEge0BsaW5rY29kZSBQYXJzZXJ9LCB0aGlzIHNob3VsZCBiZVxuICogICAgICAgYHN0cmluZ2AuXG4gKiAgICogICBJZiB0aGUgcGx1Z2luIHNldHMgYSB7QGxpbmtjb2RlIENvbXBpbGVyfSwgdGhpcyBzaG91bGQgYmUgdGhlXG4gKiAgICAgICBub2RlIGl0IGV4cGVjdHMuXG4gKiBAdGVtcGxhdGUgW091dHB1dD1JbnB1dF1cbiAqICAgVmFsdWUgdGhhdCBpcyB5aWVsZGVkIGFzIG91dHB1dCAoZGVmYXVsdDogYElucHV0YCkuXG4gKlxuICogICAqICAgSWYgdGhlIHBsdWdpbiByZXR1cm5zIGEge0BsaW5rY29kZSBUcmFuc2Zvcm1lcn0sIHRoaXNcbiAqICAgICAgIHNob3VsZCBiZSB0aGUgbm9kZSB0aGF0IHRoYXQgeWllbGRzLlxuICogICAqICAgSWYgdGhlIHBsdWdpbiBzZXRzIGEge0BsaW5rY29kZSBQYXJzZXJ9LCB0aGlzIHNob3VsZCBiZSB0aGVcbiAqICAgICAgIG5vZGUgdGhhdCBpdCB5aWVsZHMuXG4gKiAgICogICBJZiB0aGUgcGx1Z2luIHNldHMgYSB7QGxpbmtjb2RlIENvbXBpbGVyfSwgdGhpcyBzaG91bGQgYmVcbiAqICAgICAgIHJlc3VsdCBpdCB5aWVsZHMuXG4gKiBAdHlwZWRlZiB7KFxuICogICAodGhpczogUHJvY2Vzc29yLCAuLi5wYXJhbWV0ZXJzOiBQbHVnaW5QYXJhbWV0ZXJzKSA9PlxuICogICAgIElucHV0IGV4dGVuZHMgc3RyaW5nID8gLy8gUGFyc2VyLlxuICogICAgICAgIE91dHB1dCBleHRlbmRzIE5vZGUgfCB1bmRlZmluZWQgPyB1bmRlZmluZWQgfCB2b2lkIDogbmV2ZXIgOlxuICogICAgIE91dHB1dCBleHRlbmRzIENvbXBpbGVSZXN1bHRzID8gLy8gQ29tcGlsZXIuXG4gKiAgICAgICAgSW5wdXQgZXh0ZW5kcyBOb2RlIHwgdW5kZWZpbmVkID8gdW5kZWZpbmVkIHwgdm9pZCA6IG5ldmVyIDpcbiAqICAgICBUcmFuc2Zvcm1lcjxcbiAqICAgICAgIElucHV0IGV4dGVuZHMgTm9kZSA/IElucHV0IDogTm9kZSxcbiAqICAgICAgIE91dHB1dCBleHRlbmRzIE5vZGUgPyBPdXRwdXQgOiBOb2RlXG4gKiAgICAgPiB8IHVuZGVmaW5lZCB8IHZvaWRcbiAqICl9IFBsdWdpblxuICogICBTaW5nbGUgcGx1Z2luLlxuICpcbiAqICAgUGx1Z2lucyBjb25maWd1cmUgdGhlIHByb2Nlc3NvcnMgdGhleSBhcmUgYXBwbGllZCBvbiBpbiB0aGUgZm9sbG93aW5nXG4gKiAgIHdheXM6XG4gKlxuICogICAqICAgdGhleSBjaGFuZ2UgdGhlIHByb2Nlc3Nvciwgc3VjaCBhcyB0aGUgcGFyc2VyLCB0aGUgY29tcGlsZXIsIG9yIGJ5XG4gKiAgICAgICBjb25maWd1cmluZyBkYXRhXG4gKiAgICogICB0aGV5IHNwZWNpZnkgaG93IHRvIGhhbmRsZSB0cmVlcyBhbmQgZmlsZXNcbiAqXG4gKiAgIEluIHByYWN0aWNlLCB0aGV5IGFyZSBmdW5jdGlvbnMgdGhhdCBjYW4gcmVjZWl2ZSBvcHRpb25zIGFuZCBjb25maWd1cmUgdGhlXG4gKiAgIHByb2Nlc3NvciAoYHRoaXNgKS5cbiAqXG4gKiAgID4gKipOb3RlKio6IHBsdWdpbnMgYXJlIGNhbGxlZCB3aGVuIHRoZSBwcm9jZXNzb3IgaXMgKmZyb3plbiosIG5vdCB3aGVuXG4gKiAgID4gdGhleSBhcmUgYXBwbGllZC5cbiAqL1xuXG4vKipcbiAqIFR1cGxlIG9mIGEgcGx1Z2luIGFuZCBpdHMgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBUaGUgZmlyc3QgaXRlbSBpcyBhIHBsdWdpbiwgdGhlIHJlc3QgYXJlIGl0cyBwYXJhbWV0ZXJzLlxuICpcbiAqIEB0ZW1wbGF0ZSB7QXJyYXk8dW5rbm93bj59IFtUdXBsZVBhcmFtZXRlcnM9W11dXG4gKiAgIEFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHBsdWdpbiAoZGVmYXVsdDogYFtdYCwgdGhlIGVtcHR5IHR1cGxlKS5cbiAqIEB0ZW1wbGF0ZSB7Tm9kZSB8IHN0cmluZyB8IHVuZGVmaW5lZH0gW0lucHV0PXVuZGVmaW5lZF1cbiAqICAgVmFsdWUgdGhhdCBpcyBleHBlY3RlZCBhcyBpbnB1dCAob3B0aW9uYWwpLlxuICpcbiAqICAgKiAgIElmIHRoZSBwbHVnaW4gcmV0dXJucyBhIHtAbGlua2NvZGUgVHJhbnNmb3JtZXJ9LCB0aGlzXG4gKiAgICAgICBzaG91bGQgYmUgdGhlIG5vZGUgaXQgZXhwZWN0cy5cbiAqICAgKiAgIElmIHRoZSBwbHVnaW4gc2V0cyBhIHtAbGlua2NvZGUgUGFyc2VyfSwgdGhpcyBzaG91bGQgYmVcbiAqICAgICAgIGBzdHJpbmdgLlxuICogICAqICAgSWYgdGhlIHBsdWdpbiBzZXRzIGEge0BsaW5rY29kZSBDb21waWxlcn0sIHRoaXMgc2hvdWxkIGJlIHRoZVxuICogICAgICAgbm9kZSBpdCBleHBlY3RzLlxuICogQHRlbXBsYXRlIFtPdXRwdXQ9dW5kZWZpbmVkXSAob3B0aW9uYWwpLlxuICogICBWYWx1ZSB0aGF0IGlzIHlpZWxkZWQgYXMgb3V0cHV0LlxuICpcbiAqICAgKiAgIElmIHRoZSBwbHVnaW4gcmV0dXJucyBhIHtAbGlua2NvZGUgVHJhbnNmb3JtZXJ9LCB0aGlzXG4gKiAgICAgICBzaG91bGQgYmUgdGhlIG5vZGUgdGhhdCB0aGF0IHlpZWxkcy5cbiAqICAgKiAgIElmIHRoZSBwbHVnaW4gc2V0cyBhIHtAbGlua2NvZGUgUGFyc2VyfSwgdGhpcyBzaG91bGQgYmUgdGhlXG4gKiAgICAgICBub2RlIHRoYXQgaXQgeWllbGRzLlxuICogICAqICAgSWYgdGhlIHBsdWdpbiBzZXRzIGEge0BsaW5rY29kZSBDb21waWxlcn0sIHRoaXMgc2hvdWxkIGJlXG4gKiAgICAgICByZXN1bHQgaXQgeWllbGRzLlxuICogQHR5cGVkZWYgeyhcbiAqICAgW1xuICogICAgIHBsdWdpbjogUGx1Z2luPFR1cGxlUGFyYW1ldGVycywgSW5wdXQsIE91dHB1dD4sXG4gKiAgICAgLi4ucGFyYW1ldGVyczogVHVwbGVQYXJhbWV0ZXJzXG4gKiAgIF1cbiAqICl9IFBsdWdpblR1cGxlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBQcmVzZXRcbiAqICAgU2hhcmFibGUgY29uZmlndXJhdGlvbi5cbiAqXG4gKiAgIFRoZXkgY2FuIGNvbnRhaW4gcGx1Z2lucyBhbmQgc2V0dGluZ3MuXG4gKiBAcHJvcGVydHkge1BsdWdnYWJsZUxpc3QgfCB1bmRlZmluZWR9IFtwbHVnaW5zXVxuICogICBMaXN0IG9mIHBsdWdpbnMgYW5kIHByZXNldHMgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7U2V0dGluZ3MgfCB1bmRlZmluZWR9IFtzZXR0aW5nc11cbiAqICAgU2hhcmVkIHNldHRpbmdzIGZvciBwYXJzZXJzIGFuZCBjb21waWxlcnMgKG9wdGlvbmFsKS5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7VkZpbGV9IFtGaWxlPVZGaWxlXVxuICogICBUaGUgZmlsZSB0aGF0IHRoZSBjYWxsYmFjayByZWNlaXZlcyAoZGVmYXVsdDogYFZGaWxlYCkuXG4gKiBAY2FsbGJhY2sgUHJvY2Vzc0NhbGxiYWNrXG4gKiAgIENhbGxiYWNrIGNhbGxlZCB3aGVuIHRoZSBwcm9jZXNzIGlzIGRvbmUuXG4gKlxuICogICBDYWxsZWQgd2l0aCBlaXRoZXIgYW4gZXJyb3Igb3IgYSByZXN1bHQuXG4gKiBAcGFyYW0ge0Vycm9yIHwgdW5kZWZpbmVkfSBbZXJyb3JdXG4gKiAgIEZhdGFsIGVycm9yIChvcHRpb25hbCkuXG4gKiBAcGFyYW0ge0ZpbGUgfCB1bmRlZmluZWR9IFtmaWxlXVxuICogICBQcm9jZXNzZWQgZmlsZSAob3B0aW9uYWwpLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7Tm9kZX0gW1RyZWU9Tm9kZV1cbiAqICAgVGhlIHRyZWUgdGhhdCB0aGUgY2FsbGJhY2sgcmVjZWl2ZXMgKGRlZmF1bHQ6IGBOb2RlYCkuXG4gKiBAY2FsbGJhY2sgUnVuQ2FsbGJhY2tcbiAqICAgQ2FsbGJhY2sgY2FsbGVkIHdoZW4gdHJhbnNmb3JtZXJzIGFyZSBkb25lLlxuICpcbiAqICAgQ2FsbGVkIHdpdGggZWl0aGVyIGFuIGVycm9yIG9yIHJlc3VsdHMuXG4gKiBAcGFyYW0ge0Vycm9yIHwgdW5kZWZpbmVkfSBbZXJyb3JdXG4gKiAgIEZhdGFsIGVycm9yIChvcHRpb25hbCkuXG4gKiBAcGFyYW0ge1RyZWUgfCB1bmRlZmluZWR9IFt0cmVlXVxuICogICBUcmFuc2Zvcm1lZCB0cmVlIChvcHRpb25hbCkuXG4gKiBAcGFyYW0ge1ZGaWxlIHwgdW5kZWZpbmVkfSBbZmlsZV1cbiAqICAgRmlsZSAob3B0aW9uYWwpLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7Tm9kZX0gW091dHB1dD1Ob2RlXVxuICogICBOb2RlIHR5cGUgdGhhdCB0aGUgdHJhbnNmb3JtZXIgeWllbGRzIChkZWZhdWx0OiBgTm9kZWApLlxuICogQGNhbGxiYWNrIFRyYW5zZm9ybUNhbGxiYWNrXG4gKiAgIENhbGxiYWNrIHBhc3NlZCB0byB0cmFuc2Zvcm1zLlxuICpcbiAqICAgSWYgdGhlIHNpZ25hdHVyZSBvZiBhIGB0cmFuc2Zvcm1lcmAgYWNjZXB0cyBhIHRoaXJkIGFyZ3VtZW50LCB0aGVcbiAqICAgdHJhbnNmb3JtZXIgbWF5IHBlcmZvcm0gYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMsIGFuZCBtdXN0IGNhbGwgaXQuXG4gKiBAcGFyYW0ge0Vycm9yIHwgdW5kZWZpbmVkfSBbZXJyb3JdXG4gKiAgIEZhdGFsIGVycm9yIHRvIHN0b3AgdGhlIHByb2Nlc3MgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSB7T3V0cHV0IHwgdW5kZWZpbmVkfSBbdHJlZV1cbiAqICAgTmV3LCBjaGFuZ2VkLCB0cmVlIChvcHRpb25hbCkuXG4gKiBAcGFyYW0ge1ZGaWxlIHwgdW5kZWZpbmVkfSBbZmlsZV1cbiAqICAgTmV3LCBjaGFuZ2VkLCBmaWxlIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtOb2RlfSBbSW5wdXQ9Tm9kZV1cbiAqICAgTm9kZSB0eXBlIHRoYXQgdGhlIHRyYW5zZm9ybWVyIGV4cGVjdHMgKGRlZmF1bHQ6IGBOb2RlYCkuXG4gKiBAdGVtcGxhdGUge05vZGV9IFtPdXRwdXQ9SW5wdXRdXG4gKiAgIE5vZGUgdHlwZSB0aGF0IHRoZSB0cmFuc2Zvcm1lciB5aWVsZHMgKGRlZmF1bHQ6IGBJbnB1dGApLlxuICogQGNhbGxiYWNrIFRyYW5zZm9ybWVyXG4gKiAgIFRyYW5zZm9ybWVycyBoYW5kbGUgc3ludGF4IHRyZWVzIGFuZCBmaWxlcy5cbiAqXG4gKiAgIFRoZXkgYXJlIGZ1bmN0aW9ucyB0aGF0IGFyZSBjYWxsZWQgZWFjaCB0aW1lIGEgc3ludGF4IHRyZWUgYW5kIGZpbGUgYXJlXG4gKiAgIHBhc3NlZCB0aHJvdWdoIHRoZSBydW4gcGhhc2UuXG4gKiAgIFdoZW4gYW4gZXJyb3Igb2NjdXJzIGluIHRoZW0gKGVpdGhlciBiZWNhdXNlIGl0XHUyMDE5cyB0aHJvd24sIHJldHVybmVkLFxuICogICByZWplY3RlZCwgb3IgcGFzc2VkIHRvIGBuZXh0YCksIHRoZSBwcm9jZXNzIHN0b3BzLlxuICpcbiAqICAgVGhlIHJ1biBwaGFzZSBpcyBoYW5kbGVkIGJ5IFtgdHJvdWdoYF1bdHJvdWdoXSwgc2VlIGl0cyBkb2N1bWVudGF0aW9uIGZvclxuICogICB0aGUgZXhhY3Qgc2VtYW50aWNzIG9mIHRoZXNlIGZ1bmN0aW9ucy5cbiAqXG4gKiAgID4gKipOb3RlKio6IHlvdSBzaG91bGQgbGlrZWx5IGlnbm9yZSBgbmV4dGA6IGRvblx1MjAxOXQgYWNjZXB0IGl0LlxuICogICA+IGl0IHN1cHBvcnRzIGNhbGxiYWNrLXN0eWxlIGFzeW5jIHdvcmsuXG4gKiAgID4gQnV0IHByb21pc2VzIGFyZSBsaWtlbHkgZWFzaWVyIHRvIHJlYXNvbiBhYm91dC5cbiAqXG4gKiAgIFt0cm91Z2hdOiBodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL3Ryb3VnaCNmdW5jdGlvbi1mbmlucHV0LW5leHRcbiAqIEBwYXJhbSB7SW5wdXR9IHRyZWVcbiAqICAgVHJlZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge1ZGaWxlfSBmaWxlXG4gKiAgIEZpbGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtUcmFuc2Zvcm1DYWxsYmFjazxPdXRwdXQ+fSBuZXh0XG4gKiAgIENhbGxiYWNrLlxuICogQHJldHVybnMgeyhcbiAqICAgUHJvbWlzZTxPdXRwdXQgfCB1bmRlZmluZWQgfCB2b2lkPiB8XG4gKiAgIFByb21pc2U8bmV2ZXI+IHwgLy8gRm9yIHNvbWUgcmVhc29uIHRoaXMgaXMgbmVlZGVkIHNlcGFyYXRlbHkuXG4gKiAgIE91dHB1dCB8XG4gKiAgIEVycm9yIHxcbiAqICAgdW5kZWZpbmVkIHxcbiAqICAgdm9pZFxuICogKX1cbiAqICAgSWYgeW91IGFjY2VwdCBgbmV4dGAsIG5vdGhpbmcuXG4gKiAgIE90aGVyd2lzZTpcbiAqXG4gKiAgICogICBgRXJyb3JgIFx1MjAxNCBmYXRhbCBlcnJvciB0byBzdG9wIHRoZSBwcm9jZXNzXG4gKiAgICogICBgUHJvbWlzZTx1bmRlZmluZWQ+YCBvciBgdW5kZWZpbmVkYCBcdTIwMTQgdGhlIG5leHQgdHJhbnNmb3JtZXIga2VlcHMgdXNpbmdcbiAqICAgICAgIHNhbWUgdHJlZVxuICogICAqICAgYFByb21pc2U8Tm9kZT5gIG9yIGBOb2RlYCBcdTIwMTQgbmV3LCBjaGFuZ2VkLCB0cmVlXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUge05vZGUgfCB1bmRlZmluZWR9IFBhcnNlVHJlZVxuICogICBPdXRwdXQgb2YgYHBhcnNlYC5cbiAqIEB0ZW1wbGF0ZSB7Tm9kZSB8IHVuZGVmaW5lZH0gSGVhZFRyZWVcbiAqICAgSW5wdXQgZm9yIGBydW5gLlxuICogQHRlbXBsYXRlIHtOb2RlIHwgdW5kZWZpbmVkfSBUYWlsVHJlZVxuICogICBPdXRwdXQgZm9yIGBydW5gLlxuICogQHRlbXBsYXRlIHtOb2RlIHwgdW5kZWZpbmVkfSBDb21waWxlVHJlZVxuICogICBJbnB1dCBvZiBgc3RyaW5naWZ5YC5cbiAqIEB0ZW1wbGF0ZSB7Q29tcGlsZVJlc3VsdHMgfCB1bmRlZmluZWR9IENvbXBpbGVSZXN1bHRcbiAqICAgT3V0cHV0IG9mIGBzdHJpbmdpZnlgLlxuICogQHRlbXBsYXRlIHtOb2RlIHwgc3RyaW5nIHwgdW5kZWZpbmVkfSBJbnB1dFxuICogICBJbnB1dCBvZiBwbHVnaW4uXG4gKiBAdGVtcGxhdGUgT3V0cHV0XG4gKiAgIE91dHB1dCBvZiBwbHVnaW4gKG9wdGlvbmFsKS5cbiAqIEB0eXBlZGVmIHsoXG4gKiAgIElucHV0IGV4dGVuZHMgc3RyaW5nXG4gKiAgICAgPyBPdXRwdXQgZXh0ZW5kcyBOb2RlIHwgdW5kZWZpbmVkXG4gKiAgICAgICA/IC8vIFBhcnNlci5cbiAqICAgICAgICAgUHJvY2Vzc29yPFxuICogICAgICAgICAgIE91dHB1dCBleHRlbmRzIHVuZGVmaW5lZCA/IFBhcnNlVHJlZSA6IE91dHB1dCxcbiAqICAgICAgICAgICBIZWFkVHJlZSxcbiAqICAgICAgICAgICBUYWlsVHJlZSxcbiAqICAgICAgICAgICBDb21waWxlVHJlZSxcbiAqICAgICAgICAgICBDb21waWxlUmVzdWx0XG4gKiAgICAgICAgID5cbiAqICAgICAgIDogLy8gVW5rbm93bi5cbiAqICAgICAgICAgUHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD5cbiAqICAgICA6IE91dHB1dCBleHRlbmRzIENvbXBpbGVSZXN1bHRzXG4gKiAgICAgPyBJbnB1dCBleHRlbmRzIE5vZGUgfCB1bmRlZmluZWRcbiAqICAgICAgID8gLy8gQ29tcGlsZXIuXG4gKiAgICAgICAgIFByb2Nlc3NvcjxcbiAqICAgICAgICAgICBQYXJzZVRyZWUsXG4gKiAgICAgICAgICAgSGVhZFRyZWUsXG4gKiAgICAgICAgICAgVGFpbFRyZWUsXG4gKiAgICAgICAgICAgSW5wdXQgZXh0ZW5kcyB1bmRlZmluZWQgPyBDb21waWxlVHJlZSA6IElucHV0LFxuICogICAgICAgICAgIE91dHB1dCBleHRlbmRzIHVuZGVmaW5lZCA/IENvbXBpbGVSZXN1bHQgOiBPdXRwdXRcbiAqICAgICAgICAgPlxuICogICAgICAgOiAvLyBVbmtub3duLlxuICogICAgICAgICBQcm9jZXNzb3I8UGFyc2VUcmVlLCBIZWFkVHJlZSwgVGFpbFRyZWUsIENvbXBpbGVUcmVlLCBDb21waWxlUmVzdWx0PlxuICogICAgIDogSW5wdXQgZXh0ZW5kcyBOb2RlIHwgdW5kZWZpbmVkXG4gKiAgICAgPyBPdXRwdXQgZXh0ZW5kcyBOb2RlIHwgdW5kZWZpbmVkXG4gKiAgICAgICA/IC8vIFRyYW5zZm9ybS5cbiAqICAgICAgICAgUHJvY2Vzc29yPFxuICogICAgICAgICAgIFBhcnNlVHJlZSxcbiAqICAgICAgICAgICBIZWFkVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IElucHV0IDogSGVhZFRyZWUsXG4gKiAgICAgICAgICAgT3V0cHV0IGV4dGVuZHMgdW5kZWZpbmVkID8gVGFpbFRyZWUgOiBPdXRwdXQsXG4gKiAgICAgICAgICAgQ29tcGlsZVRyZWUsXG4gKiAgICAgICAgICAgQ29tcGlsZVJlc3VsdFxuICogICAgICAgICA+XG4gKiAgICAgICA6IC8vIFVua25vd24uXG4gKiAgICAgICAgIFByb2Nlc3NvcjxQYXJzZVRyZWUsIEhlYWRUcmVlLCBUYWlsVHJlZSwgQ29tcGlsZVRyZWUsIENvbXBpbGVSZXN1bHQ+XG4gKiAgICAgOiAvLyBVbmtub3duLlxuICogICAgICAgUHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD5cbiAqICl9IFVzZVBsdWdpblxuICogICBDcmVhdGUgYSBwcm9jZXNzb3IgYmFzZWQgb24gdGhlIGlucHV0L291dHB1dCBvZiBhIHtAbGluayBQbHVnaW4gcGx1Z2lufS5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7Q29tcGlsZVJlc3VsdHMgfCB1bmRlZmluZWR9IFJlc3VsdFxuICogICBOb2RlIHR5cGUgdGhhdCB0aGUgdHJhbnNmb3JtZXIgeWllbGRzLlxuICogQHR5cGVkZWYgeyhcbiAqICAgUmVzdWx0IGV4dGVuZHMgVmFsdWUgfCB1bmRlZmluZWQgP1xuICogICAgIFZGaWxlIDpcbiAqICAgICBWRmlsZSAmIHtyZXN1bHQ6IFJlc3VsdH1cbiAqICAgKX0gVkZpbGVXaXRoT3V0cHV0XG4gKiAgIFR5cGUgdG8gZ2VuZXJhdGUgYSB7QGxpbmtjb2RlIFZGaWxlfSBjb3JyZXNwb25kaW5nIHRvIGEgY29tcGlsZXIgcmVzdWx0LlxuICpcbiAqICAgSWYgYSByZXN1bHQgdGhhdCBpcyBub3QgYWNjZXB0YWJsZSBvbiBhIGBWRmlsZWAgaXMgdXNlZCwgdGhhdCB3aWxsXG4gKiAgIGJlIHN0b3JlZCBvbiB0aGUgYHJlc3VsdGAgZmllbGQgb2Yge0BsaW5rY29kZSBWRmlsZX0uXG4gKi9cblxuaW1wb3J0IHtiYWlsfSBmcm9tICdiYWlsJ1xuaW1wb3J0IGV4dGVuZCBmcm9tICdleHRlbmQnXG5pbXBvcnQge29rIGFzIGFzc2VydH0gZnJvbSAnZGV2bG9wJ1xuaW1wb3J0IGlzUGxhaW5PYmogZnJvbSAnaXMtcGxhaW4tb2JqJ1xuaW1wb3J0IHt0cm91Z2h9IGZyb20gJ3Ryb3VnaCdcbmltcG9ydCB7VkZpbGV9IGZyb20gJ3ZmaWxlJ1xuaW1wb3J0IHtDYWxsYWJsZUluc3RhbmNlfSBmcm9tICcuL2NhbGxhYmxlLWluc3RhbmNlLmpzJ1xuXG4vLyBUbyBkbzogbmV4dCBtYWpvcjogZHJvcCBgQ29tcGlsZXJgLCBgUGFyc2VyYDogcHJlZmVyIGxvd2VyY2FzZS5cblxuLy8gVG8gZG86IHdlIGNvdWxkIHN0YXJ0IHlpZWxkaW5nIGBuZXZlcmAgaW4gVFMgd2hlbiBhIHBhcnNlciBpcyBtaXNzaW5nIGFuZFxuLy8gYHBhcnNlYCBpcyBjYWxsZWQuXG4vLyBDdXJyZW50bHksIHdlIGFsbG93IGRpcmVjdGx5IHNldHRpbmcgYHByb2Nlc3Nvci5wYXJzZXJgLCB3aGljaCBpcyB1bnR5cGVkLlxuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7Tm9kZSB8IHVuZGVmaW5lZH0gW1BhcnNlVHJlZT11bmRlZmluZWRdXG4gKiAgIE91dHB1dCBvZiBgcGFyc2VgIChvcHRpb25hbCkuXG4gKiBAdGVtcGxhdGUge05vZGUgfCB1bmRlZmluZWR9IFtIZWFkVHJlZT11bmRlZmluZWRdXG4gKiAgIElucHV0IGZvciBgcnVuYCAob3B0aW9uYWwpLlxuICogQHRlbXBsYXRlIHtOb2RlIHwgdW5kZWZpbmVkfSBbVGFpbFRyZWU9dW5kZWZpbmVkXVxuICogICBPdXRwdXQgZm9yIGBydW5gIChvcHRpb25hbCkuXG4gKiBAdGVtcGxhdGUge05vZGUgfCB1bmRlZmluZWR9IFtDb21waWxlVHJlZT11bmRlZmluZWRdXG4gKiAgIElucHV0IG9mIGBzdHJpbmdpZnlgIChvcHRpb25hbCkuXG4gKiBAdGVtcGxhdGUge0NvbXBpbGVSZXN1bHRzIHwgdW5kZWZpbmVkfSBbQ29tcGlsZVJlc3VsdD11bmRlZmluZWRdXG4gKiAgIE91dHB1dCBvZiBgc3RyaW5naWZ5YCAob3B0aW9uYWwpLlxuICogQGV4dGVuZHMge0NhbGxhYmxlSW5zdGFuY2U8W10sIFByb2Nlc3NvcjxQYXJzZVRyZWUsIEhlYWRUcmVlLCBUYWlsVHJlZSwgQ29tcGlsZVRyZWUsIENvbXBpbGVSZXN1bHQ+Pn1cbiAqL1xuZXhwb3J0IGNsYXNzIFByb2Nlc3NvciBleHRlbmRzIENhbGxhYmxlSW5zdGFuY2Uge1xuICAvKipcbiAgICogQ3JlYXRlIGEgcHJvY2Vzc29yLlxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gSWYgYFByb2Nlc3NvcigpYCBpcyBjYWxsZWQgKHcvbyBuZXcpLCBgY29weWAgaXMgY2FsbGVkIGluc3RlYWQuXG4gICAgc3VwZXIoJ2NvcHknKVxuXG4gICAgLyoqXG4gICAgICogQ29tcGlsZXIgdG8gdXNlIChkZXByZWNhdGVkKS5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogICBVc2UgYGNvbXBpbGVyYCBpbnN0ZWFkLlxuICAgICAqIEB0eXBlIHsoXG4gICAgICogICBDb21waWxlcjxcbiAgICAgKiAgICAgQ29tcGlsZVRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogQ29tcGlsZVRyZWUsXG4gICAgICogICAgIENvbXBpbGVSZXN1bHQgZXh0ZW5kcyB1bmRlZmluZWQgPyBDb21waWxlUmVzdWx0cyA6IENvbXBpbGVSZXN1bHRcbiAgICAgKiAgID4gfFxuICAgICAqICAgdW5kZWZpbmVkXG4gICAgICogKX1cbiAgICAgKi9cbiAgICB0aGlzLkNvbXBpbGVyID0gdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXIgdG8gdXNlIChkZXByZWNhdGVkKS5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogICBVc2UgYHBhcnNlcmAgaW5zdGVhZC5cbiAgICAgKiBAdHlwZSB7KFxuICAgICAqICAgUGFyc2VyPFBhcnNlVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBQYXJzZVRyZWU+IHxcbiAgICAgKiAgIHVuZGVmaW5lZFxuICAgICAqICl9XG4gICAgICovXG4gICAgdGhpcy5QYXJzZXIgPSB1bmRlZmluZWRcblxuICAgIC8vIE5vdGU6IHRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBjb25zaWRlcmVkIHByaXZhdGUuXG4gICAgLy8gSG93ZXZlciwgdGhleSBhcmUgbmVlZGVkIGZvciB0ZXN0cywgYW5kIFRTQyBnZW5lcmF0ZXMgYW4gdW50eXBlZFxuICAgIC8vIGBwcml2YXRlIGZyZWV6ZUluZGV4YCBmaWVsZCBmb3IsIHdoaWNoIHRyaXBzIGB0eXBlLWNvdmVyYWdlYCB1cC5cbiAgICAvLyBJbnN0ZWFkLCB3ZSB1c2UgYEBkZXByZWNhdGVkYCB0byB2aXN1YWxpemUgdGhhdCB0aGV5IHNob3VsZG5cdTIwMTl0IGJlIHVzZWQuXG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwgbGlzdCBvZiBjb25maWd1cmVkIHBsdWdpbnMuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqICAgVGhpcyBpcyBhIHByaXZhdGUgaW50ZXJuYWwgcHJvcGVydHkgYW5kIHNob3VsZCBub3QgYmUgdXNlZC5cbiAgICAgKiBAdHlwZSB7QXJyYXk8UGx1Z2luVHVwbGU8QXJyYXk8dW5rbm93bj4+Pn1cbiAgICAgKi9cbiAgICB0aGlzLmF0dGFjaGVycyA9IFtdXG5cbiAgICAvKipcbiAgICAgKiBDb21waWxlciB0byB1c2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7KFxuICAgICAqICAgQ29tcGlsZXI8XG4gICAgICogICAgIENvbXBpbGVUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IENvbXBpbGVUcmVlLFxuICAgICAqICAgICBDb21waWxlUmVzdWx0IGV4dGVuZHMgdW5kZWZpbmVkID8gQ29tcGlsZVJlc3VsdHMgOiBDb21waWxlUmVzdWx0XG4gICAgICogICA+IHxcbiAgICAgKiAgIHVuZGVmaW5lZFxuICAgICAqICl9XG4gICAgICovXG4gICAgdGhpcy5jb21waWxlciA9IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwgc3RhdGUgdG8gdHJhY2sgd2hlcmUgd2UgYXJlIHdoaWxlIGZyZWV6aW5nLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiAgIFRoaXMgaXMgYSBwcml2YXRlIGludGVybmFsIHByb3BlcnR5IGFuZCBzaG91bGQgbm90IGJlIHVzZWQuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLmZyZWV6ZUluZGV4ID0gLTFcblxuICAgIC8qKlxuICAgICAqIEludGVybmFsIHN0YXRlIHRvIHRyYWNrIHdoZXRoZXIgd2VcdTIwMTlyZSBmcm96ZW4uXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqICAgVGhpcyBpcyBhIHByaXZhdGUgaW50ZXJuYWwgcHJvcGVydHkgYW5kIHNob3VsZCBub3QgYmUgdXNlZC5cbiAgICAgKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmZyb3plbiA9IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwgc3RhdGUuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqICAgVGhpcyBpcyBhIHByaXZhdGUgaW50ZXJuYWwgcHJvcGVydHkgYW5kIHNob3VsZCBub3QgYmUgdXNlZC5cbiAgICAgKiBAdHlwZSB7RGF0YX1cbiAgICAgKi9cbiAgICB0aGlzLm5hbWVzcGFjZSA9IHt9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXIgdG8gdXNlLlxuICAgICAqXG4gICAgICogQHR5cGUgeyhcbiAgICAgKiAgIFBhcnNlcjxQYXJzZVRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogUGFyc2VUcmVlPiB8XG4gICAgICogICB1bmRlZmluZWRcbiAgICAgKiApfVxuICAgICAqL1xuICAgIHRoaXMucGFyc2VyID0gdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBJbnRlcm5hbCBsaXN0IG9mIGNvbmZpZ3VyZWQgdHJhbnNmb3JtZXJzLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiAgIFRoaXMgaXMgYSBwcml2YXRlIGludGVybmFsIHByb3BlcnR5IGFuZCBzaG91bGQgbm90IGJlIHVzZWQuXG4gICAgICogQHR5cGUge1BpcGVsaW5lfVxuICAgICAqL1xuICAgIHRoaXMudHJhbnNmb3JtZXJzID0gdHJvdWdoKClcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3B5IGEgcHJvY2Vzc29yLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiAgIFRoaXMgaXMgYSBwcml2YXRlIGludGVybmFsIG1ldGhvZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLlxuICAgKiBAcmV0dXJucyB7UHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD59XG4gICAqICAgTmV3ICp1bmZyb3plbiogcHJvY2Vzc29yICh7QGxpbmtjb2RlIFByb2Nlc3Nvcn0pIHRoYXQgaXNcbiAgICogICBjb25maWd1cmVkIHRvIHdvcmsgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9yLlxuICAgKiAgIFdoZW4gdGhlIGRlc2NlbmRhbnQgcHJvY2Vzc29yIGlzIGNvbmZpZ3VyZWQgaW4gdGhlIGZ1dHVyZSBpdCBkb2VzIG5vdFxuICAgKiAgIGFmZmVjdCB0aGUgYW5jZXN0cmFsIHByb2Nlc3Nvci5cbiAgICovXG4gIGNvcHkoKSB7XG4gICAgLy8gQ2FzdCBhcyB0aGUgdHlwZSBwYXJhbWV0ZXJzIHdpbGwgYmUgdGhlIHNhbWUgYWZ0ZXIgYXR0YWNoaW5nLlxuICAgIGNvbnN0IGRlc3RpbmF0aW9uID1cbiAgICAgIC8qKiBAdHlwZSB7UHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD59ICovIChcbiAgICAgICAgbmV3IFByb2Nlc3NvcigpXG4gICAgICApXG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHdoaWxlICgrK2luZGV4IDwgdGhpcy5hdHRhY2hlcnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBhdHRhY2hlciA9IHRoaXMuYXR0YWNoZXJzW2luZGV4XVxuICAgICAgZGVzdGluYXRpb24udXNlKC4uLmF0dGFjaGVyKVxuICAgIH1cblxuICAgIGRlc3RpbmF0aW9uLmRhdGEoZXh0ZW5kKHRydWUsIHt9LCB0aGlzLm5hbWVzcGFjZSkpXG5cbiAgICByZXR1cm4gZGVzdGluYXRpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgdGhlIHByb2Nlc3NvciB3aXRoIGluZm8gYXZhaWxhYmxlIHRvIGFsbCBwbHVnaW5zLlxuICAgKiBJbmZvcm1hdGlvbiBpcyBzdG9yZWQgaW4gYW4gb2JqZWN0LlxuICAgKlxuICAgKiBUeXBpY2FsbHksIG9wdGlvbnMgY2FuIGJlIGdpdmVuIHRvIGEgc3BlY2lmaWMgcGx1Z2luLCBidXQgc29tZXRpbWVzIGl0XG4gICAqIG1ha2VzIHNlbnNlIHRvIGhhdmUgaW5mb3JtYXRpb24gc2hhcmVkIHdpdGggc2V2ZXJhbCBwbHVnaW5zLlxuICAgKiBGb3IgZXhhbXBsZSwgYSBsaXN0IG9mIEhUTUwgZWxlbWVudHMgdGhhdCBhcmUgc2VsZi1jbG9zaW5nLCB3aGljaCBpc1xuICAgKiBuZWVkZWQgZHVyaW5nIGFsbCBwaGFzZXMuXG4gICAqXG4gICAqID4gKipOb3RlKio6IHNldHRpbmcgaW5mb3JtYXRpb24gY2Fubm90IG9jY3VyIG9uICpmcm96ZW4qIHByb2Nlc3NvcnMuXG4gICAqID4gQ2FsbCB0aGUgcHJvY2Vzc29yIGZpcnN0IHRvIGNyZWF0ZSBhIG5ldyB1bmZyb3plbiBwcm9jZXNzb3IuXG4gICAqXG4gICAqID4gKipOb3RlKio6IHRvIHJlZ2lzdGVyIGN1c3RvbSBkYXRhIGluIFR5cGVTY3JpcHQsIGF1Z21lbnQgdGhlXG4gICAqID4ge0BsaW5rY29kZSBEYXRhfSBpbnRlcmZhY2UuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqICAgVGhpcyBleGFtcGxlIHNob3cgaG93IHRvIGdldCBhbmQgc2V0IGluZm86XG4gICAqXG4gICAqICAgYGBganNcbiAgICogICBpbXBvcnQge3VuaWZpZWR9IGZyb20gJ3VuaWZpZWQnXG4gICAqXG4gICAqICAgY29uc3QgcHJvY2Vzc29yID0gdW5pZmllZCgpLmRhdGEoJ2FscGhhJywgJ2JyYXZvJylcbiAgICpcbiAgICogICBwcm9jZXNzb3IuZGF0YSgnYWxwaGEnKSAvLyA9PiAnYnJhdm8nXG4gICAqXG4gICAqICAgcHJvY2Vzc29yLmRhdGEoKSAvLyA9PiB7YWxwaGE6ICdicmF2byd9XG4gICAqXG4gICAqICAgcHJvY2Vzc29yLmRhdGEoe2NoYXJsaWU6ICdkZWx0YSd9KVxuICAgKlxuICAgKiAgIHByb2Nlc3Nvci5kYXRhKCkgLy8gPT4ge2NoYXJsaWU6ICdkZWx0YSd9XG4gICAqICAgYGBgXG4gICAqXG4gICAqIEB0ZW1wbGF0ZSB7a2V5b2YgRGF0YX0gS2V5XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcmV0dXJucyB7RGF0YX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RGF0YX0gZGF0YXNldFxuICAgKiBAcmV0dXJucyB7UHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD59XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0tleX0ga2V5XG4gICAqIEByZXR1cm5zIHtEYXRhW0tleV19XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0tleX0ga2V5XG4gICAqIEBwYXJhbSB7RGF0YVtLZXldfSB2YWx1ZVxuICAgKiBAcmV0dXJucyB7UHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD59XG4gICAqXG4gICAqIEBwYXJhbSB7RGF0YSB8IEtleX0gW2tleV1cbiAgICogICBLZXkgdG8gZ2V0IG9yIHNldCwgb3IgZW50aXJlIGRhdGFzZXQgdG8gc2V0LCBvciBub3RoaW5nIHRvIGdldCB0aGVcbiAgICogICBlbnRpcmUgZGF0YXNldCAob3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge0RhdGFbS2V5XX0gW3ZhbHVlXVxuICAgKiAgIFZhbHVlIHRvIHNldCAob3B0aW9uYWwpLlxuICAgKiBAcmV0dXJucyB7dW5rbm93bn1cbiAgICogICBUaGUgY3VycmVudCBwcm9jZXNzb3Igd2hlbiBzZXR0aW5nLCB0aGUgdmFsdWUgYXQgYGtleWAgd2hlbiBnZXR0aW5nLCBvclxuICAgKiAgIHRoZSBlbnRpcmUgZGF0YXNldCB3aGVuIGdldHRpbmcgd2l0aG91dCBrZXkuXG4gICAqL1xuICBkYXRhKGtleSwgdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFNldCBga2V5YC5cbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIGFzc2VydFVuZnJvemVuKCdkYXRhJywgdGhpcy5mcm96ZW4pXG4gICAgICAgIHRoaXMubmFtZXNwYWNlW2tleV0gPSB2YWx1ZVxuICAgICAgICByZXR1cm4gdGhpc1xuICAgICAgfVxuXG4gICAgICAvLyBHZXQgYGtleWAuXG4gICAgICByZXR1cm4gKG93bi5jYWxsKHRoaXMubmFtZXNwYWNlLCBrZXkpICYmIHRoaXMubmFtZXNwYWNlW2tleV0pIHx8IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIC8vIFNldCBzcGFjZS5cbiAgICBpZiAoa2V5KSB7XG4gICAgICBhc3NlcnRVbmZyb3plbignZGF0YScsIHRoaXMuZnJvemVuKVxuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBrZXlcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG4gICAgLy8gR2V0IHNwYWNlLlxuICAgIHJldHVybiB0aGlzLm5hbWVzcGFjZVxuICB9XG5cbiAgLyoqXG4gICAqIEZyZWV6ZSBhIHByb2Nlc3Nvci5cbiAgICpcbiAgICogRnJvemVuIHByb2Nlc3NvcnMgYXJlIG1lYW50IHRvIGJlIGV4dGVuZGVkIGFuZCBub3QgdG8gYmUgY29uZmlndXJlZFxuICAgKiBkaXJlY3RseS5cbiAgICpcbiAgICogV2hlbiBhIHByb2Nlc3NvciBpcyBmcm96ZW4gaXQgY2Fubm90IGJlIHVuZnJvemVuLlxuICAgKiBOZXcgcHJvY2Vzc29ycyB3b3JraW5nIHRoZSBzYW1lIHdheSBjYW4gYmUgY3JlYXRlZCBieSBjYWxsaW5nIHRoZVxuICAgKiBwcm9jZXNzb3IuXG4gICAqXG4gICAqIEl0XHUyMDE5cyBwb3NzaWJsZSB0byBmcmVlemUgcHJvY2Vzc29ycyBleHBsaWNpdGx5IGJ5IGNhbGxpbmcgYC5mcmVlemUoKWAuXG4gICAqIFByb2Nlc3NvcnMgZnJlZXplIGF1dG9tYXRpY2FsbHkgd2hlbiBgLnBhcnNlKClgLCBgLnJ1bigpYCwgYC5ydW5TeW5jKClgLFxuICAgKiBgLnN0cmluZ2lmeSgpYCwgYC5wcm9jZXNzKClgLCBvciBgLnByb2Nlc3NTeW5jKClgIGFyZSBjYWxsZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9jZXNzb3I8UGFyc2VUcmVlLCBIZWFkVHJlZSwgVGFpbFRyZWUsIENvbXBpbGVUcmVlLCBDb21waWxlUmVzdWx0Pn1cbiAgICogICBUaGUgY3VycmVudCBwcm9jZXNzb3IuXG4gICAqL1xuICBmcmVlemUoKSB7XG4gICAgaWYgKHRoaXMuZnJvemVuKSB7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIC8vIENhc3Qgc28gdGhhdCB3ZSBjYW4gdHlwZSBwbHVnaW5zIGVhc2llci5cbiAgICAvLyBQbHVnaW5zIGFyZSBzdXBwb3NlZCB0byBiZSB1c2FibGUgb24gZGlmZmVyZW50IHByb2Nlc3NvcnMsIG5vdCBqdXN0IG9uXG4gICAgLy8gdGhpcyBleGFjdCBwcm9jZXNzb3IuXG4gICAgY29uc3Qgc2VsZiA9IC8qKiBAdHlwZSB7UHJvY2Vzc29yfSAqLyAoLyoqIEB0eXBlIHt1bmtub3dufSAqLyAodGhpcykpXG5cbiAgICB3aGlsZSAoKyt0aGlzLmZyZWV6ZUluZGV4IDwgdGhpcy5hdHRhY2hlcnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBbYXR0YWNoZXIsIC4uLm9wdGlvbnNdID0gdGhpcy5hdHRhY2hlcnNbdGhpcy5mcmVlemVJbmRleF1cblxuICAgICAgaWYgKG9wdGlvbnNbMF0gPT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zWzBdID09PSB0cnVlKSB7XG4gICAgICAgIG9wdGlvbnNbMF0gPSB1bmRlZmluZWRcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHJhbnNmb3JtZXIgPSBhdHRhY2hlci5jYWxsKHNlbGYsIC4uLm9wdGlvbnMpXG5cbiAgICAgIGlmICh0eXBlb2YgdHJhbnNmb3JtZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1lcnMudXNlKHRyYW5zZm9ybWVyKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZnJvemVuID0gdHJ1ZVxuICAgIHRoaXMuZnJlZXplSW5kZXggPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgdGV4dCB0byBhIHN5bnRheCB0cmVlLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiBgcGFyc2VgIGZyZWV6ZXMgdGhlIHByb2Nlc3NvciBpZiBub3QgYWxyZWFkeSAqZnJvemVuKi5cbiAgICpcbiAgICogPiAqKk5vdGUqKjogYHBhcnNlYCBwZXJmb3JtcyB0aGUgcGFyc2UgcGhhc2UsIG5vdCB0aGUgcnVuIHBoYXNlIG9yIG90aGVyXG4gICAqID4gcGhhc2VzLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbXBhdGlibGUgfCB1bmRlZmluZWR9IFtmaWxlXVxuICAgKiAgIGZpbGUgdG8gcGFyc2UgKG9wdGlvbmFsKTsgdHlwaWNhbGx5IGBzdHJpbmdgIG9yIGBWRmlsZWA7IGFueSB2YWx1ZVxuICAgKiAgIGFjY2VwdGVkIGFzIGB4YCBpbiBgbmV3IFZGaWxlKHgpYC5cbiAgICogQHJldHVybnMge1BhcnNlVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBQYXJzZVRyZWV9XG4gICAqICAgU3ludGF4IHRyZWUgcmVwcmVzZW50aW5nIGBmaWxlYC5cbiAgICovXG4gIHBhcnNlKGZpbGUpIHtcbiAgICB0aGlzLmZyZWV6ZSgpXG4gICAgY29uc3QgcmVhbEZpbGUgPSB2ZmlsZShmaWxlKVxuICAgIGNvbnN0IHBhcnNlciA9IHRoaXMucGFyc2VyIHx8IHRoaXMuUGFyc2VyXG4gICAgYXNzZXJ0UGFyc2VyKCdwYXJzZScsIHBhcnNlcilcbiAgICByZXR1cm4gcGFyc2VyKFN0cmluZyhyZWFsRmlsZSksIHJlYWxGaWxlKVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3MgdGhlIGdpdmVuIGZpbGUgYXMgY29uZmlndXJlZCBvbiB0aGUgcHJvY2Vzc29yLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiBgcHJvY2Vzc2AgZnJlZXplcyB0aGUgcHJvY2Vzc29yIGlmIG5vdCBhbHJlYWR5ICpmcm96ZW4qLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiBgcHJvY2Vzc2AgcGVyZm9ybXMgdGhlIHBhcnNlLCBydW4sIGFuZCBzdHJpbmdpZnkgcGhhc2VzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtDb21wYXRpYmxlIHwgdW5kZWZpbmVkfSBmaWxlXG4gICAqIEBwYXJhbSB7UHJvY2Vzc0NhbGxiYWNrPFZGaWxlV2l0aE91dHB1dDxDb21waWxlUmVzdWx0Pj59IGRvbmVcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFZGaWxlV2l0aE91dHB1dDxDb21waWxlUmVzdWx0Pj59XG4gICAqXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gICAqICAgRmlsZSAob3B0aW9uYWwpOyB0eXBpY2FsbHkgYHN0cmluZ2Agb3IgYFZGaWxlYF07IGFueSB2YWx1ZSBhY2NlcHRlZCBhc1xuICAgKiAgIGB4YCBpbiBgbmV3IFZGaWxlKHgpYC5cbiAgICogQHBhcmFtIHtQcm9jZXNzQ2FsbGJhY2s8VkZpbGVXaXRoT3V0cHV0PENvbXBpbGVSZXN1bHQ+PiB8IHVuZGVmaW5lZH0gW2RvbmVdXG4gICAqICAgQ2FsbGJhY2sgKG9wdGlvbmFsKS5cbiAgICogQHJldHVybnMge1Byb21pc2U8VkZpbGU+IHwgdW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcgaWYgYGRvbmVgIGlzIGdpdmVuLlxuICAgKiAgIE90aGVyd2lzZSBhIHByb21pc2UsIHJlamVjdGVkIHdpdGggYSBmYXRhbCBlcnJvciBvciByZXNvbHZlZCB3aXRoIHRoZVxuICAgKiAgIHByb2Nlc3NlZCBmaWxlLlxuICAgKlxuICAgKiAgIFRoZSBwYXJzZWQsIHRyYW5zZm9ybWVkLCBhbmQgY29tcGlsZWQgdmFsdWUgaXMgYXZhaWxhYmxlIGF0XG4gICAqICAgYGZpbGUudmFsdWVgIChzZWUgbm90ZSkuXG4gICAqXG4gICAqICAgPiAqKk5vdGUqKjogdW5pZmllZCB0eXBpY2FsbHkgY29tcGlsZXMgYnkgc2VyaWFsaXppbmc6IG1vc3RcbiAgICogICA+IGNvbXBpbGVycyByZXR1cm4gYHN0cmluZ2AgKG9yIGBVaW50OEFycmF5YCkuXG4gICAqICAgPiBTb21lIGNvbXBpbGVycywgc3VjaCBhcyB0aGUgb25lIGNvbmZpZ3VyZWQgd2l0aFxuICAgKiAgID4gW2ByZWh5cGUtcmVhY3RgXVtyZWh5cGUtcmVhY3RdLCByZXR1cm4gb3RoZXIgdmFsdWVzIChpbiB0aGlzIGNhc2UsIGFcbiAgICogICA+IFJlYWN0IHRyZWUpLlxuICAgKiAgID4gSWYgeW91XHUyMDE5cmUgdXNpbmcgYSBjb21waWxlciB0aGF0IGRvZXNuXHUyMDE5dCBzZXJpYWxpemUsIGV4cGVjdCBkaWZmZXJlbnRcbiAgICogICA+IHJlc3VsdCB2YWx1ZXMuXG4gICAqICAgPlxuICAgKiAgID4gVG8gcmVnaXN0ZXIgY3VzdG9tIHJlc3VsdHMgaW4gVHlwZVNjcmlwdCwgYWRkIHRoZW0gdG9cbiAgICogICA+IHtAbGlua2NvZGUgQ29tcGlsZVJlc3VsdE1hcH0uXG4gICAqXG4gICAqICAgW3JlaHlwZS1yZWFjdF06IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWh5cGVqcy9yZWh5cGUtcmVhY3RcbiAgICovXG4gIHByb2Nlc3MoZmlsZSwgZG9uZSkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzXG5cbiAgICB0aGlzLmZyZWV6ZSgpXG4gICAgYXNzZXJ0UGFyc2VyKCdwcm9jZXNzJywgdGhpcy5wYXJzZXIgfHwgdGhpcy5QYXJzZXIpXG4gICAgYXNzZXJ0Q29tcGlsZXIoJ3Byb2Nlc3MnLCB0aGlzLmNvbXBpbGVyIHx8IHRoaXMuQ29tcGlsZXIpXG5cbiAgICByZXR1cm4gZG9uZSA/IGV4ZWN1dG9yKHVuZGVmaW5lZCwgZG9uZSkgOiBuZXcgUHJvbWlzZShleGVjdXRvcilcblxuICAgIC8vIE5vdGU6IGB2b2lkYHMgbmVlZGVkIGZvciBUUy5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0geygoZmlsZTogVkZpbGVXaXRoT3V0cHV0PENvbXBpbGVSZXN1bHQ+KSA9PiB1bmRlZmluZWQgfCB2b2lkKSB8IHVuZGVmaW5lZH0gcmVzb2x2ZVxuICAgICAqIEBwYXJhbSB7KGVycm9yOiBFcnJvciB8IHVuZGVmaW5lZCkgPT4gdW5kZWZpbmVkIHwgdm9pZH0gcmVqZWN0XG4gICAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBleGVjdXRvcihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIGNvbnN0IHJlYWxGaWxlID0gdmZpbGUoZmlsZSlcbiAgICAgIC8vIEFzc3VtZSBgUGFyc2VUcmVlYCAodGhlIHJlc3VsdCBvZiB0aGUgcGFyc2VyKSBtYXRjaGVzIGBIZWFkVHJlZWAgKHRoZVxuICAgICAgLy8gaW5wdXQgb2YgdGhlIGZpcnN0IHRyYW5zZm9ybSkuXG4gICAgICBjb25zdCBwYXJzZVRyZWUgPVxuICAgICAgICAvKiogQHR5cGUge0hlYWRUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IEhlYWRUcmVlfSAqLyAoXG4gICAgICAgICAgLyoqIEB0eXBlIHt1bmtub3dufSAqLyAoc2VsZi5wYXJzZShyZWFsRmlsZSkpXG4gICAgICAgIClcblxuICAgICAgc2VsZi5ydW4ocGFyc2VUcmVlLCByZWFsRmlsZSwgZnVuY3Rpb24gKGVycm9yLCB0cmVlLCBmaWxlKSB7XG4gICAgICAgIGlmIChlcnJvciB8fCAhdHJlZSB8fCAhZmlsZSkge1xuICAgICAgICAgIHJldHVybiByZWFsRG9uZShlcnJvcilcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFzc3VtZSBgVGFpbFRyZWVgICh0aGUgb3V0cHV0IG9mIHRoZSBsYXN0IHRyYW5zZm9ybSkgbWF0Y2hlc1xuICAgICAgICAvLyBgQ29tcGlsZVRyZWVgICh0aGUgaW5wdXQgb2YgdGhlIGNvbXBpbGVyKS5cbiAgICAgICAgY29uc3QgY29tcGlsZVRyZWUgPVxuICAgICAgICAgIC8qKiBAdHlwZSB7Q29tcGlsZVRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogQ29tcGlsZVRyZWV9ICovIChcbiAgICAgICAgICAgIC8qKiBAdHlwZSB7dW5rbm93bn0gKi8gKHRyZWUpXG4gICAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IGNvbXBpbGVSZXN1bHQgPSBzZWxmLnN0cmluZ2lmeShjb21waWxlVHJlZSwgZmlsZSlcblxuICAgICAgICBpZiAobG9va3NMaWtlQVZhbHVlKGNvbXBpbGVSZXN1bHQpKSB7XG4gICAgICAgICAgZmlsZS52YWx1ZSA9IGNvbXBpbGVSZXN1bHRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWxlLnJlc3VsdCA9IGNvbXBpbGVSZXN1bHRcbiAgICAgICAgfVxuXG4gICAgICAgIHJlYWxEb25lKGVycm9yLCAvKiogQHR5cGUge1ZGaWxlV2l0aE91dHB1dDxDb21waWxlUmVzdWx0Pn0gKi8gKGZpbGUpKVxuICAgICAgfSlcblxuICAgICAgLyoqXG4gICAgICAgKiBAcGFyYW0ge0Vycm9yIHwgdW5kZWZpbmVkfSBlcnJvclxuICAgICAgICogQHBhcmFtIHtWRmlsZVdpdGhPdXRwdXQ8Q29tcGlsZVJlc3VsdD4gfCB1bmRlZmluZWR9IFtmaWxlXVxuICAgICAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gcmVhbERvbmUoZXJyb3IsIGZpbGUpIHtcbiAgICAgICAgaWYgKGVycm9yIHx8ICFmaWxlKSB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKVxuICAgICAgICB9IGVsc2UgaWYgKHJlc29sdmUpIHtcbiAgICAgICAgICByZXNvbHZlKGZpbGUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXNzZXJ0KGRvbmUsICdgZG9uZWAgaXMgZGVmaW5lZCBpZiBgcmVzb2x2ZWAgaXMgbm90JylcbiAgICAgICAgICBkb25lKHVuZGVmaW5lZCwgZmlsZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIHRoZSBnaXZlbiBmaWxlIGFzIGNvbmZpZ3VyZWQgb24gdGhlIHByb2Nlc3Nvci5cbiAgICpcbiAgICogQW4gZXJyb3IgaXMgdGhyb3duIGlmIGFzeW5jaHJvbm91cyB0cmFuc2Zvcm1zIGFyZSBjb25maWd1cmVkLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiBgcHJvY2Vzc1N5bmNgIGZyZWV6ZXMgdGhlIHByb2Nlc3NvciBpZiBub3QgYWxyZWFkeSAqZnJvemVuKi5cbiAgICpcbiAgICogPiAqKk5vdGUqKjogYHByb2Nlc3NTeW5jYCBwZXJmb3JtcyB0aGUgcGFyc2UsIHJ1biwgYW5kIHN0cmluZ2lmeSBwaGFzZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gICAqICAgRmlsZSAob3B0aW9uYWwpOyB0eXBpY2FsbHkgYHN0cmluZ2Agb3IgYFZGaWxlYDsgYW55IHZhbHVlIGFjY2VwdGVkIGFzXG4gICAqICAgYHhgIGluIGBuZXcgVkZpbGUoeClgLlxuICAgKiBAcmV0dXJucyB7VkZpbGVXaXRoT3V0cHV0PENvbXBpbGVSZXN1bHQ+fVxuICAgKiAgIFRoZSBwcm9jZXNzZWQgZmlsZS5cbiAgICpcbiAgICogICBUaGUgcGFyc2VkLCB0cmFuc2Zvcm1lZCwgYW5kIGNvbXBpbGVkIHZhbHVlIGlzIGF2YWlsYWJsZSBhdFxuICAgKiAgIGBmaWxlLnZhbHVlYCAoc2VlIG5vdGUpLlxuICAgKlxuICAgKiAgID4gKipOb3RlKio6IHVuaWZpZWQgdHlwaWNhbGx5IGNvbXBpbGVzIGJ5IHNlcmlhbGl6aW5nOiBtb3N0XG4gICAqICAgPiBjb21waWxlcnMgcmV0dXJuIGBzdHJpbmdgIChvciBgVWludDhBcnJheWApLlxuICAgKiAgID4gU29tZSBjb21waWxlcnMsIHN1Y2ggYXMgdGhlIG9uZSBjb25maWd1cmVkIHdpdGhcbiAgICogICA+IFtgcmVoeXBlLXJlYWN0YF1bcmVoeXBlLXJlYWN0XSwgcmV0dXJuIG90aGVyIHZhbHVlcyAoaW4gdGhpcyBjYXNlLCBhXG4gICAqICAgPiBSZWFjdCB0cmVlKS5cbiAgICogICA+IElmIHlvdVx1MjAxOXJlIHVzaW5nIGEgY29tcGlsZXIgdGhhdCBkb2Vzblx1MjAxOXQgc2VyaWFsaXplLCBleHBlY3QgZGlmZmVyZW50XG4gICAqICAgPiByZXN1bHQgdmFsdWVzLlxuICAgKiAgID5cbiAgICogICA+IFRvIHJlZ2lzdGVyIGN1c3RvbSByZXN1bHRzIGluIFR5cGVTY3JpcHQsIGFkZCB0aGVtIHRvXG4gICAqICAgPiB7QGxpbmtjb2RlIENvbXBpbGVSZXN1bHRNYXB9LlxuICAgKlxuICAgKiAgIFtyZWh5cGUtcmVhY3RdOiBodHRwczovL2dpdGh1Yi5jb20vcmVoeXBlanMvcmVoeXBlLXJlYWN0XG4gICAqL1xuICBwcm9jZXNzU3luYyhmaWxlKSB7XG4gICAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICAgIGxldCBjb21wbGV0ZSA9IGZhbHNlXG4gICAgLyoqIEB0eXBlIHtWRmlsZVdpdGhPdXRwdXQ8Q29tcGlsZVJlc3VsdD4gfCB1bmRlZmluZWR9ICovXG4gICAgbGV0IHJlc3VsdFxuXG4gICAgdGhpcy5mcmVlemUoKVxuICAgIGFzc2VydFBhcnNlcigncHJvY2Vzc1N5bmMnLCB0aGlzLnBhcnNlciB8fCB0aGlzLlBhcnNlcilcbiAgICBhc3NlcnRDb21waWxlcigncHJvY2Vzc1N5bmMnLCB0aGlzLmNvbXBpbGVyIHx8IHRoaXMuQ29tcGlsZXIpXG5cbiAgICB0aGlzLnByb2Nlc3MoZmlsZSwgcmVhbERvbmUpXG4gICAgYXNzZXJ0RG9uZSgncHJvY2Vzc1N5bmMnLCAncHJvY2VzcycsIGNvbXBsZXRlKVxuICAgIGFzc2VydChyZXN1bHQsICd3ZSBlaXRoZXIgYmFpbGVkIG9uIGFuIGVycm9yIG9yIGhhdmUgYSB0cmVlJylcblxuICAgIHJldHVybiByZXN1bHRcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIHtQcm9jZXNzQ2FsbGJhY2s8VkZpbGVXaXRoT3V0cHV0PENvbXBpbGVSZXN1bHQ+Pn1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZWFsRG9uZShlcnJvciwgZmlsZSkge1xuICAgICAgY29tcGxldGUgPSB0cnVlXG4gICAgICBiYWlsKGVycm9yKVxuICAgICAgcmVzdWx0ID0gZmlsZVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gKnRyYW5zZm9ybWVycyogb24gYSBzeW50YXggdHJlZS5cbiAgICpcbiAgICogPiAqKk5vdGUqKjogYHJ1bmAgZnJlZXplcyB0aGUgcHJvY2Vzc29yIGlmIG5vdCBhbHJlYWR5ICpmcm96ZW4qLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiBgcnVuYCBwZXJmb3JtcyB0aGUgcnVuIHBoYXNlLCBub3Qgb3RoZXIgcGhhc2VzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtIZWFkVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBIZWFkVHJlZX0gdHJlZVxuICAgKiBAcGFyYW0ge1J1bkNhbGxiYWNrPFRhaWxUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IFRhaWxUcmVlPn0gZG9uZVxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtIZWFkVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBIZWFkVHJlZX0gdHJlZVxuICAgKiBAcGFyYW0ge0NvbXBhdGlibGUgfCB1bmRlZmluZWR9IGZpbGVcbiAgICogQHBhcmFtIHtSdW5DYWxsYmFjazxUYWlsVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBUYWlsVHJlZT59IGRvbmVcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7SGVhZFRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogSGVhZFRyZWV9IHRyZWVcbiAgICogQHBhcmFtIHtDb21wYXRpYmxlIHwgdW5kZWZpbmVkfSBbZmlsZV1cbiAgICogQHJldHVybnMge1Byb21pc2U8VGFpbFRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogVGFpbFRyZWU+fVxuICAgKlxuICAgKiBAcGFyYW0ge0hlYWRUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IEhlYWRUcmVlfSB0cmVlXG4gICAqICAgVHJlZSB0byB0cmFuc2Zvcm0gYW5kIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7KFxuICAgKiAgIFJ1bkNhbGxiYWNrPFRhaWxUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IFRhaWxUcmVlPiB8XG4gICAqICAgQ29tcGF0aWJsZVxuICAgKiApfSBbZmlsZV1cbiAgICogICBGaWxlIGFzc29jaWF0ZWQgd2l0aCBgbm9kZWAgKG9wdGlvbmFsKTsgYW55IHZhbHVlIGFjY2VwdGVkIGFzIGB4YCBpblxuICAgKiAgIGBuZXcgVkZpbGUoeClgLlxuICAgKiBAcGFyYW0ge1J1bkNhbGxiYWNrPFRhaWxUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IFRhaWxUcmVlPn0gW2RvbmVdXG4gICAqICAgQ2FsbGJhY2sgKG9wdGlvbmFsKS5cbiAgICogQHJldHVybnMge1Byb21pc2U8VGFpbFRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogVGFpbFRyZWU+IHwgdW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcgaWYgYGRvbmVgIGlzIGdpdmVuLlxuICAgKiAgIE90aGVyd2lzZSwgYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSBmYXRhbCBlcnJvciBvciByZXNvbHZlZCB3aXRoIHRoZVxuICAgKiAgIHRyYW5zZm9ybWVkIHRyZWUuXG4gICAqL1xuICBydW4odHJlZSwgZmlsZSwgZG9uZSkge1xuICAgIGFzc2VydE5vZGUodHJlZSlcbiAgICB0aGlzLmZyZWV6ZSgpXG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lcnMgPSB0aGlzLnRyYW5zZm9ybWVyc1xuXG4gICAgaWYgKCFkb25lICYmIHR5cGVvZiBmaWxlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBkb25lID0gZmlsZVxuICAgICAgZmlsZSA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHJldHVybiBkb25lID8gZXhlY3V0b3IodW5kZWZpbmVkLCBkb25lKSA6IG5ldyBQcm9taXNlKGV4ZWN1dG9yKVxuXG4gICAgLy8gTm90ZTogYHZvaWRgcyBuZWVkZWQgZm9yIFRTLlxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7KFxuICAgICAqICAgKCh0cmVlOiBUYWlsVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBUYWlsVHJlZSkgPT4gdW5kZWZpbmVkIHwgdm9pZCkgfFxuICAgICAqICAgdW5kZWZpbmVkXG4gICAgICogKX0gcmVzb2x2ZVxuICAgICAqIEBwYXJhbSB7KGVycm9yOiBFcnJvcikgPT4gdW5kZWZpbmVkIHwgdm9pZH0gcmVqZWN0XG4gICAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBleGVjdXRvcihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIGFzc2VydChcbiAgICAgICAgdHlwZW9mIGZpbGUgIT09ICdmdW5jdGlvbicsXG4gICAgICAgICdgZmlsZWAgY2FuXHUyMDE5dCBiZSBhIGBkb25lYCBhbnltb3JlLCB3ZSBjaGVja2VkJ1xuICAgICAgKVxuICAgICAgY29uc3QgcmVhbEZpbGUgPSB2ZmlsZShmaWxlKVxuICAgICAgdHJhbnNmb3JtZXJzLnJ1bih0cmVlLCByZWFsRmlsZSwgcmVhbERvbmUpXG5cbiAgICAgIC8qKlxuICAgICAgICogQHBhcmFtIHtFcnJvciB8IHVuZGVmaW5lZH0gZXJyb3JcbiAgICAgICAqIEBwYXJhbSB7Tm9kZX0gb3V0cHV0VHJlZVxuICAgICAgICogQHBhcmFtIHtWRmlsZX0gZmlsZVxuICAgICAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gcmVhbERvbmUoZXJyb3IsIG91dHB1dFRyZWUsIGZpbGUpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0aW5nVHJlZSA9XG4gICAgICAgICAgLyoqIEB0eXBlIHtUYWlsVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBUYWlsVHJlZX0gKi8gKFxuICAgICAgICAgICAgb3V0cHV0VHJlZSB8fCB0cmVlXG4gICAgICAgICAgKVxuXG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgICAgfSBlbHNlIGlmIChyZXNvbHZlKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHRpbmdUcmVlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFzc2VydChkb25lLCAnYGRvbmVgIGlzIGRlZmluZWQgaWYgYHJlc29sdmVgIGlzIG5vdCcpXG4gICAgICAgICAgZG9uZSh1bmRlZmluZWQsIHJlc3VsdGluZ1RyZWUsIGZpbGUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVuICp0cmFuc2Zvcm1lcnMqIG9uIGEgc3ludGF4IHRyZWUuXG4gICAqXG4gICAqIEFuIGVycm9yIGlzIHRocm93biBpZiBhc3luY2hyb25vdXMgdHJhbnNmb3JtcyBhcmUgY29uZmlndXJlZC5cbiAgICpcbiAgICogPiAqKk5vdGUqKjogYHJ1blN5bmNgIGZyZWV6ZXMgdGhlIHByb2Nlc3NvciBpZiBub3QgYWxyZWFkeSAqZnJvemVuKi5cbiAgICpcbiAgICogPiAqKk5vdGUqKjogYHJ1blN5bmNgIHBlcmZvcm1zIHRoZSBydW4gcGhhc2UsIG5vdCBvdGhlciBwaGFzZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7SGVhZFRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogSGVhZFRyZWV9IHRyZWVcbiAgICogICBUcmVlIHRvIHRyYW5zZm9ybSBhbmQgaW5zcGVjdC5cbiAgICogQHBhcmFtIHtDb21wYXRpYmxlIHwgdW5kZWZpbmVkfSBbZmlsZV1cbiAgICogICBGaWxlIGFzc29jaWF0ZWQgd2l0aCBgbm9kZWAgKG9wdGlvbmFsKTsgYW55IHZhbHVlIGFjY2VwdGVkIGFzIGB4YCBpblxuICAgKiAgIGBuZXcgVkZpbGUoeClgLlxuICAgKiBAcmV0dXJucyB7VGFpbFRyZWUgZXh0ZW5kcyB1bmRlZmluZWQgPyBOb2RlIDogVGFpbFRyZWV9XG4gICAqICAgVHJhbnNmb3JtZWQgdHJlZS5cbiAgICovXG4gIHJ1blN5bmModHJlZSwgZmlsZSkge1xuICAgIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgICBsZXQgY29tcGxldGUgPSBmYWxzZVxuICAgIC8qKiBAdHlwZSB7KFRhaWxUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IFRhaWxUcmVlKSB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgcmVzdWx0XG5cbiAgICB0aGlzLnJ1bih0cmVlLCBmaWxlLCByZWFsRG9uZSlcblxuICAgIGFzc2VydERvbmUoJ3J1blN5bmMnLCAncnVuJywgY29tcGxldGUpXG4gICAgYXNzZXJ0KHJlc3VsdCwgJ3dlIGVpdGhlciBiYWlsZWQgb24gYW4gZXJyb3Igb3IgaGF2ZSBhIHRyZWUnKVxuICAgIHJldHVybiByZXN1bHRcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIHtSdW5DYWxsYmFjazxUYWlsVHJlZSBleHRlbmRzIHVuZGVmaW5lZCA/IE5vZGUgOiBUYWlsVHJlZT59XG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVhbERvbmUoZXJyb3IsIHRyZWUpIHtcbiAgICAgIGJhaWwoZXJyb3IpXG4gICAgICByZXN1bHQgPSB0cmVlXG4gICAgICBjb21wbGV0ZSA9IHRydWVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29tcGlsZSBhIHN5bnRheCB0cmVlLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiBgc3RyaW5naWZ5YCBmcmVlemVzIHRoZSBwcm9jZXNzb3IgaWYgbm90IGFscmVhZHkgKmZyb3plbiouXG4gICAqXG4gICAqID4gKipOb3RlKio6IGBzdHJpbmdpZnlgIHBlcmZvcm1zIHRoZSBzdHJpbmdpZnkgcGhhc2UsIG5vdCB0aGUgcnVuIHBoYXNlXG4gICAqID4gb3Igb3RoZXIgcGhhc2VzLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbXBpbGVUcmVlIGV4dGVuZHMgdW5kZWZpbmVkID8gTm9kZSA6IENvbXBpbGVUcmVlfSB0cmVlXG4gICAqICAgVHJlZSB0byBjb21waWxlLlxuICAgKiBAcGFyYW0ge0NvbXBhdGlibGUgfCB1bmRlZmluZWR9IFtmaWxlXVxuICAgKiAgIEZpbGUgYXNzb2NpYXRlZCB3aXRoIGBub2RlYCAob3B0aW9uYWwpOyBhbnkgdmFsdWUgYWNjZXB0ZWQgYXMgYHhgIGluXG4gICAqICAgYG5ldyBWRmlsZSh4KWAuXG4gICAqIEByZXR1cm5zIHtDb21waWxlUmVzdWx0IGV4dGVuZHMgdW5kZWZpbmVkID8gVmFsdWUgOiBDb21waWxlUmVzdWx0fVxuICAgKiAgIFRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHRyZWUgKHNlZSBub3RlKS5cbiAgICpcbiAgICogICA+ICoqTm90ZSoqOiB1bmlmaWVkIHR5cGljYWxseSBjb21waWxlcyBieSBzZXJpYWxpemluZzogbW9zdCBjb21waWxlcnNcbiAgICogICA+IHJldHVybiBgc3RyaW5nYCAob3IgYFVpbnQ4QXJyYXlgKS5cbiAgICogICA+IFNvbWUgY29tcGlsZXJzLCBzdWNoIGFzIHRoZSBvbmUgY29uZmlndXJlZCB3aXRoXG4gICAqICAgPiBbYHJlaHlwZS1yZWFjdGBdW3JlaHlwZS1yZWFjdF0sIHJldHVybiBvdGhlciB2YWx1ZXMgKGluIHRoaXMgY2FzZSwgYVxuICAgKiAgID4gUmVhY3QgdHJlZSkuXG4gICAqICAgPiBJZiB5b3VcdTIwMTlyZSB1c2luZyBhIGNvbXBpbGVyIHRoYXQgZG9lc25cdTIwMTl0IHNlcmlhbGl6ZSwgZXhwZWN0IGRpZmZlcmVudFxuICAgKiAgID4gcmVzdWx0IHZhbHVlcy5cbiAgICogICA+XG4gICAqICAgPiBUbyByZWdpc3RlciBjdXN0b20gcmVzdWx0cyBpbiBUeXBlU2NyaXB0LCBhZGQgdGhlbSB0b1xuICAgKiAgID4ge0BsaW5rY29kZSBDb21waWxlUmVzdWx0TWFwfS5cbiAgICpcbiAgICogICBbcmVoeXBlLXJlYWN0XTogaHR0cHM6Ly9naXRodWIuY29tL3JlaHlwZWpzL3JlaHlwZS1yZWFjdFxuICAgKi9cbiAgc3RyaW5naWZ5KHRyZWUsIGZpbGUpIHtcbiAgICB0aGlzLmZyZWV6ZSgpXG4gICAgY29uc3QgcmVhbEZpbGUgPSB2ZmlsZShmaWxlKVxuICAgIGNvbnN0IGNvbXBpbGVyID0gdGhpcy5jb21waWxlciB8fCB0aGlzLkNvbXBpbGVyXG4gICAgYXNzZXJ0Q29tcGlsZXIoJ3N0cmluZ2lmeScsIGNvbXBpbGVyKVxuICAgIGFzc2VydE5vZGUodHJlZSlcblxuICAgIHJldHVybiBjb21waWxlcih0cmVlLCByZWFsRmlsZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgdGhlIHByb2Nlc3NvciB0byB1c2UgYSBwbHVnaW4sIGEgbGlzdCBvZiB1c2FibGUgdmFsdWVzLCBvciBhXG4gICAqIHByZXNldC5cbiAgICpcbiAgICogSWYgdGhlIHByb2Nlc3NvciBpcyBhbHJlYWR5IHVzaW5nIGEgcGx1Z2luLCB0aGUgcHJldmlvdXMgcGx1Z2luXG4gICAqIGNvbmZpZ3VyYXRpb24gaXMgY2hhbmdlZCBiYXNlZCBvbiB0aGUgb3B0aW9ucyB0aGF0IGFyZSBwYXNzZWQgaW4uXG4gICAqIEluIG90aGVyIHdvcmRzLCB0aGUgcGx1Z2luIGlzIG5vdCBhZGRlZCBhIHNlY29uZCB0aW1lLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiBgdXNlYCBjYW5ub3QgYmUgY2FsbGVkIG9uICpmcm96ZW4qIHByb2Nlc3NvcnMuXG4gICAqID4gQ2FsbCB0aGUgcHJvY2Vzc29yIGZpcnN0IHRvIGNyZWF0ZSBhIG5ldyB1bmZyb3plbiBwcm9jZXNzb3IuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqICAgVGhlcmUgYXJlIG1hbnkgd2F5cyB0byBwYXNzIHBsdWdpbnMgdG8gYC51c2UoKWAuXG4gICAqICAgVGhpcyBleGFtcGxlIGdpdmVzIGFuIG92ZXJ2aWV3OlxuICAgKlxuICAgKiAgIGBgYGpzXG4gICAqICAgaW1wb3J0IHt1bmlmaWVkfSBmcm9tICd1bmlmaWVkJ1xuICAgKlxuICAgKiAgIHVuaWZpZWQoKVxuICAgKiAgICAgLy8gUGx1Z2luIHdpdGggb3B0aW9uczpcbiAgICogICAgIC51c2UocGx1Z2luQSwge3g6IHRydWUsIHk6IHRydWV9KVxuICAgKiAgICAgLy8gUGFzc2luZyB0aGUgc2FtZSBwbHVnaW4gYWdhaW4gbWVyZ2VzIGNvbmZpZ3VyYXRpb24gKHRvIGB7eDogdHJ1ZSwgeTogZmFsc2UsIHo6IHRydWV9YCk6XG4gICAqICAgICAudXNlKHBsdWdpbkEsIHt5OiBmYWxzZSwgejogdHJ1ZX0pXG4gICAqICAgICAvLyBQbHVnaW5zOlxuICAgKiAgICAgLnVzZShbcGx1Z2luQiwgcGx1Z2luQ10pXG4gICAqICAgICAvLyBUd28gcGx1Z2lucywgdGhlIHNlY29uZCB3aXRoIG9wdGlvbnM6XG4gICAqICAgICAudXNlKFtwbHVnaW5ELCBbcGx1Z2luRSwge31dXSlcbiAgICogICAgIC8vIFByZXNldCB3aXRoIHBsdWdpbnMgYW5kIHNldHRpbmdzOlxuICAgKiAgICAgLnVzZSh7cGx1Z2luczogW3BsdWdpbkYsIFtwbHVnaW5HLCB7fV1dLCBzZXR0aW5nczoge3Bvc2l0aW9uOiBmYWxzZX19KVxuICAgKiAgICAgLy8gU2V0dGluZ3Mgb25seTpcbiAgICogICAgIC51c2Uoe3NldHRpbmdzOiB7cG9zaXRpb246IGZhbHNlfX0pXG4gICAqICAgYGBgXG4gICAqXG4gICAqIEB0ZW1wbGF0ZSB7QXJyYXk8dW5rbm93bj59IFtQYXJhbWV0ZXJzPVtdXVxuICAgKiBAdGVtcGxhdGUge05vZGUgfCBzdHJpbmcgfCB1bmRlZmluZWR9IFtJbnB1dD11bmRlZmluZWRdXG4gICAqIEB0ZW1wbGF0ZSBbT3V0cHV0PUlucHV0XVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtQcmVzZXQgfCBudWxsIHwgdW5kZWZpbmVkfSBbcHJlc2V0XVxuICAgKiBAcmV0dXJucyB7UHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD59XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge1BsdWdnYWJsZUxpc3R9IGxpc3RcbiAgICogQHJldHVybnMge1Byb2Nlc3NvcjxQYXJzZVRyZWUsIEhlYWRUcmVlLCBUYWlsVHJlZSwgQ29tcGlsZVRyZWUsIENvbXBpbGVSZXN1bHQ+fVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtQbHVnaW48UGFyYW1ldGVycywgSW5wdXQsIE91dHB1dD59IHBsdWdpblxuICAgKiBAcGFyYW0gey4uLihQYXJhbWV0ZXJzIHwgW2Jvb2xlYW5dKX0gcGFyYW1ldGVyc1xuICAgKiBAcmV0dXJucyB7VXNlUGx1Z2luPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdCwgSW5wdXQsIE91dHB1dD59XG4gICAqXG4gICAqIEBwYXJhbSB7UGx1Z2dhYmxlTGlzdCB8IFBsdWdpbiB8IFByZXNldCB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlXG4gICAqICAgVXNhYmxlIHZhbHVlLlxuICAgKiBAcGFyYW0gey4uLnVua25vd259IHBhcmFtZXRlcnNcbiAgICogICBQYXJhbWV0ZXJzLCB3aGVuIGEgcGx1Z2luIGlzIGdpdmVuIGFzIGEgdXNhYmxlIHZhbHVlLlxuICAgKiBAcmV0dXJucyB7UHJvY2Vzc29yPFBhcnNlVHJlZSwgSGVhZFRyZWUsIFRhaWxUcmVlLCBDb21waWxlVHJlZSwgQ29tcGlsZVJlc3VsdD59XG4gICAqICAgQ3VycmVudCBwcm9jZXNzb3IuXG4gICAqL1xuICB1c2UodmFsdWUsIC4uLnBhcmFtZXRlcnMpIHtcbiAgICBjb25zdCBhdHRhY2hlcnMgPSB0aGlzLmF0dGFjaGVyc1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IHRoaXMubmFtZXNwYWNlXG5cbiAgICBhc3NlcnRVbmZyb3plbigndXNlJywgdGhpcy5mcm96ZW4pXG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRW1wdHkuXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGFkZFBsdWdpbih2YWx1ZSwgcGFyYW1ldGVycylcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBhZGRMaXN0KHZhbHVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWRkUHJlc2V0KHZhbHVlKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgJyArIHZhbHVlICsgJ2AnKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge1BsdWdnYWJsZX0gdmFsdWVcbiAgICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFkZCh2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBhZGRQbHVnaW4odmFsdWUsIFtdKVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IFtwbHVnaW4sIC4uLnBhcmFtZXRlcnNdID1cbiAgICAgICAgICAgIC8qKiBAdHlwZSB7UGx1Z2luVHVwbGU8QXJyYXk8dW5rbm93bj4+fSAqLyAodmFsdWUpXG4gICAgICAgICAgYWRkUGx1Z2luKHBsdWdpbiwgcGFyYW1ldGVycylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhZGRQcmVzZXQodmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAnICsgdmFsdWUgKyAnYCcpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtQcmVzZXR9IHJlc3VsdFxuICAgICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAgICovXG4gICAgZnVuY3Rpb24gYWRkUHJlc2V0KHJlc3VsdCkge1xuICAgICAgaWYgKCEoJ3BsdWdpbnMnIGluIHJlc3VsdCkgJiYgISgnc2V0dGluZ3MnIGluIHJlc3VsdCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdFeHBlY3RlZCB1c2FibGUgdmFsdWUgYnV0IHJlY2VpdmVkIGFuIGVtcHR5IHByZXNldCwgd2hpY2ggaXMgcHJvYmFibHkgYSBtaXN0YWtlOiBwcmVzZXRzIHR5cGljYWxseSBjb21lIHdpdGggYHBsdWdpbnNgIGFuZCBzb21ldGltZXMgd2l0aCBgc2V0dGluZ3NgLCBidXQgdGhpcyBoYXMgbmVpdGhlcidcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBhZGRMaXN0KHJlc3VsdC5wbHVnaW5zKVxuXG4gICAgICBpZiAocmVzdWx0LnNldHRpbmdzKSB7XG4gICAgICAgIG5hbWVzcGFjZS5zZXR0aW5ncyA9IGV4dGVuZCh0cnVlLCBuYW1lc3BhY2Uuc2V0dGluZ3MsIHJlc3VsdC5zZXR0aW5ncylcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge1BsdWdnYWJsZUxpc3QgfCBudWxsIHwgdW5kZWZpbmVkfSBwbHVnaW5zXG4gICAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhZGRMaXN0KHBsdWdpbnMpIHtcbiAgICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICAgIGlmIChwbHVnaW5zID09PSBudWxsIHx8IHBsdWdpbnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBFbXB0eS5cbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwbHVnaW5zKSkge1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IHBsdWdpbnMubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgdGhpbmcgPSBwbHVnaW5zW2luZGV4XVxuICAgICAgICAgIGFkZCh0aGluZylcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYSBsaXN0IG9mIHBsdWdpbnMsIG5vdCBgJyArIHBsdWdpbnMgKyAnYCcpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtQbHVnaW59IHBsdWdpblxuICAgICAqIEBwYXJhbSB7QXJyYXk8dW5rbm93bj59IHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFkZFBsdWdpbihwbHVnaW4sIHBhcmFtZXRlcnMpIHtcbiAgICAgIGxldCBpbmRleCA9IC0xXG4gICAgICBsZXQgZW50cnlJbmRleCA9IC0xXG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgYXR0YWNoZXJzLmxlbmd0aCkge1xuICAgICAgICBpZiAoYXR0YWNoZXJzW2luZGV4XVswXSA9PT0gcGx1Z2luKSB7XG4gICAgICAgICAgZW50cnlJbmRleCA9IGluZGV4XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZW50cnlJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgYXR0YWNoZXJzLnB1c2goW3BsdWdpbiwgLi4ucGFyYW1ldGVyc10pXG4gICAgICB9XG4gICAgICAvLyBPbmx5IHNldCBpZiB0aGVyZSB3YXMgYXQgbGVhc3QgYSBgcHJpbWFyeWAgdmFsdWUsIG90aGVyd2lzZSB3ZVx1MjAxOWQgY2hhbmdlXG4gICAgICAvLyBgYXJndW1lbnRzLmxlbmd0aGAuXG4gICAgICBlbHNlIGlmIChwYXJhbWV0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGV0IFtwcmltYXJ5LCAuLi5yZXN0XSA9IHBhcmFtZXRlcnNcbiAgICAgICAgY29uc3QgY3VycmVudFByaW1hcnkgPSBhdHRhY2hlcnNbZW50cnlJbmRleF1bMV1cbiAgICAgICAgaWYgKGlzUGxhaW5PYmooY3VycmVudFByaW1hcnkpICYmIGlzUGxhaW5PYmoocHJpbWFyeSkpIHtcbiAgICAgICAgICBwcmltYXJ5ID0gZXh0ZW5kKHRydWUsIGN1cnJlbnRQcmltYXJ5LCBwcmltYXJ5KVxuICAgICAgICB9XG5cbiAgICAgICAgYXR0YWNoZXJzW2VudHJ5SW5kZXhdID0gW3BsdWdpbiwgcHJpbWFyeSwgLi4ucmVzdF1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gTm90ZTogdGhpcyByZXR1cm5zIGEgKmNhbGxhYmxlKiBpbnN0YW5jZS5cbi8vIFRoYXRcdTIwMTlzIHdoeSBpdFx1MjAxOXMgZG9jdW1lbnRlZCBhcyBhIGZ1bmN0aW9uLlxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgcHJvY2Vzc29yLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIFRoaXMgZXhhbXBsZSBzaG93cyBob3cgYSBuZXcgcHJvY2Vzc29yIGNhbiBiZSBjcmVhdGVkIChmcm9tIGByZW1hcmtgKSBhbmQgbGlua2VkXG4gKiAgIHRvICoqc3RkaW4qKig0KSBhbmQgKipzdGRvdXQqKig0KS5cbiAqXG4gKiAgIGBgYGpzXG4gKiAgIGltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2VzcydcbiAqICAgaW1wb3J0IGNvbmNhdFN0cmVhbSBmcm9tICdjb25jYXQtc3RyZWFtJ1xuICogICBpbXBvcnQge3JlbWFya30gZnJvbSAncmVtYXJrJ1xuICpcbiAqICAgcHJvY2Vzcy5zdGRpbi5waXBlKFxuICogICAgIGNvbmNhdFN0cmVhbShmdW5jdGlvbiAoYnVmKSB7XG4gKiAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShTdHJpbmcocmVtYXJrKCkucHJvY2Vzc1N5bmMoYnVmKSkpXG4gKiAgICAgfSlcbiAqICAgKVxuICogICBgYGBcbiAqXG4gKiBAcmV0dXJuc1xuICogICBOZXcgKnVuZnJvemVuKiBwcm9jZXNzb3IgKGBwcm9jZXNzb3JgKS5cbiAqXG4gKiAgIFRoaXMgcHJvY2Vzc29yIGlzIGNvbmZpZ3VyZWQgdG8gd29yayB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0b3IuXG4gKiAgIFdoZW4gdGhlIGRlc2NlbmRhbnQgcHJvY2Vzc29yIGlzIGNvbmZpZ3VyZWQgaW4gdGhlIGZ1dHVyZSBpdCBkb2VzIG5vdFxuICogICBhZmZlY3QgdGhlIGFuY2VzdHJhbCBwcm9jZXNzb3IuXG4gKi9cbmV4cG9ydCBjb25zdCB1bmlmaWVkID0gbmV3IFByb2Nlc3NvcigpLmZyZWV6ZSgpXG5cbi8qKlxuICogQXNzZXJ0IGEgcGFyc2VyIGlzIGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogQHJldHVybnMge2Fzc2VydHMgdmFsdWUgaXMgUGFyc2VyfVxuICovXG5mdW5jdGlvbiBhc3NlcnRQYXJzZXIobmFtZSwgdmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBgJyArIG5hbWUgKyAnYCB3aXRob3V0IGBwYXJzZXJgJylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCBhIGNvbXBpbGVyIGlzIGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogQHJldHVybnMge2Fzc2VydHMgdmFsdWUgaXMgQ29tcGlsZXJ9XG4gKi9cbmZ1bmN0aW9uIGFzc2VydENvbXBpbGVyKG5hbWUsIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgYCcgKyBuYW1lICsgJ2Agd2l0aG91dCBgY29tcGlsZXJgJylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCB0aGUgcHJvY2Vzc29yIGlzIG5vdCBmcm96ZW4uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7dW5rbm93bn0gZnJvemVuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBmcm96ZW4gaXMgZmFsc2V9XG4gKi9cbmZ1bmN0aW9uIGFzc2VydFVuZnJvemVuKG5hbWUsIGZyb3plbikge1xuICBpZiAoZnJvemVuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBjYWxsIGAnICtcbiAgICAgICAgbmFtZSArXG4gICAgICAgICdgIG9uIGEgZnJvemVuIHByb2Nlc3Nvci5cXG5DcmVhdGUgYSBuZXcgcHJvY2Vzc29yIGZpcnN0LCBieSBjYWxsaW5nIGl0OiB1c2UgYHByb2Nlc3NvcigpYCBpbnN0ZWFkIG9mIGBwcm9jZXNzb3JgLidcbiAgICApXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgYG5vZGVgIGlzIGEgdW5pc3Qgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVcbiAqIEByZXR1cm5zIHthc3NlcnRzIG5vZGUgaXMgTm9kZX1cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9kZShub2RlKSB7XG4gIC8vIGBpc1BsYWluT2JqYCB1bmZvcnR1bmF0ZWx5IHVzZXMgYGFueWAgaW5zdGVhZCBvZiBgdW5rbm93bmAuXG4gIC8vIHR5cGUtY292ZXJhZ2U6aWdub3JlLW5leHQtbGluZVxuICBpZiAoIWlzUGxhaW5PYmoobm9kZSkgfHwgdHlwZW9mIG5vZGUudHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBub2RlLCBnb3QgYCcgKyBub2RlICsgJ2AnKVxuICAgIC8vIEZpbmUuXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgdGhhdCBgY29tcGxldGVgIGlzIGB0cnVlYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IGFzeW5jTmFtZVxuICogQHBhcmFtIHt1bmtub3dufSBjb21wbGV0ZVxuICogQHJldHVybnMge2Fzc2VydHMgY29tcGxldGUgaXMgdHJ1ZX1cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0RG9uZShuYW1lLCBhc3luY05hbWUsIGNvbXBsZXRlKSB7XG4gIGlmICghY29tcGxldGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnYCcgKyBuYW1lICsgJ2AgZmluaXNoZWQgYXN5bmMuIFVzZSBgJyArIGFzeW5jTmFtZSArICdgIGluc3RlYWQnXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtDb21wYXRpYmxlIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiBAcmV0dXJucyB7VkZpbGV9XG4gKi9cbmZ1bmN0aW9uIHZmaWxlKHZhbHVlKSB7XG4gIHJldHVybiBsb29rc0xpa2VBVkZpbGUodmFsdWUpID8gdmFsdWUgOiBuZXcgVkZpbGUodmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtDb21wYXRpYmxlIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgVkZpbGV9XG4gKi9cbmZ1bmN0aW9uIGxvb2tzTGlrZUFWRmlsZSh2YWx1ZSkge1xuICByZXR1cm4gQm9vbGVhbihcbiAgICB2YWx1ZSAmJlxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgJ21lc3NhZ2UnIGluIHZhbHVlICYmXG4gICAgICAnbWVzc2FnZXMnIGluIHZhbHVlXG4gIClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3Vua25vd259IFt2YWx1ZV1cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBWYWx1ZX1cbiAqL1xuZnVuY3Rpb24gbG9va3NMaWtlQVZhbHVlKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IGlzVWludDhBcnJheSh2YWx1ZSlcbn1cblxuLyoqXG4gKiBBc3NlcnQgYHZhbHVlYCBpcyBhbiBgVWludDhBcnJheWAuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICB0aGluZy5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBVaW50OEFycmF5fVxuICogICBXaGV0aGVyIGB2YWx1ZWAgaXMgYW4gYFVpbnQ4QXJyYXlgLlxuICovXG5mdW5jdGlvbiBpc1VpbnQ4QXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgdmFsdWUgJiZcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICdieXRlTGVuZ3RoJyBpbiB2YWx1ZSAmJlxuICAgICAgJ2J5dGVPZmZzZXQnIGluIHZhbHVlXG4gIClcbn1cbiIsICIvLyBOb3RlOiB0eXBlcyBleHBvc2VkIGZyb20gYGluZGV4LmQudHNgLlxuZXhwb3J0IHt1bmlmaWVkfSBmcm9tICcuL2xpYi9pbmRleC5qcydcbiIsICIvKipcbiAqIENvdW50IGhvdyBvZnRlbiBhIGNoYXJhY3RlciAob3Igc3Vic3RyaW5nKSBpcyB1c2VkIGluIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBzZWFyY2ggaW4uXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhcmFjdGVyXG4gKiAgIENoYXJhY3RlciAob3Igc3Vic3RyaW5nKSB0byBsb29rIGZvci5cbiAqIEByZXR1cm4ge251bWJlcn1cbiAqICAgTnVtYmVyIG9mIHRpbWVzIGBjaGFyYWN0ZXJgIG9jY3VycmVkIGluIGB2YWx1ZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjY291bnQodmFsdWUsIGNoYXJhY3Rlcikge1xuICBjb25zdCBzb3VyY2UgPSBTdHJpbmcodmFsdWUpXG5cbiAgaWYgKHR5cGVvZiBjaGFyYWN0ZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgY2hhcmFjdGVyJylcbiAgfVxuXG4gIGxldCBjb3VudCA9IDBcbiAgbGV0IGluZGV4ID0gc291cmNlLmluZGV4T2YoY2hhcmFjdGVyKVxuXG4gIHdoaWxlIChpbmRleCAhPT0gLTEpIHtcbiAgICBjb3VudCsrXG4gICAgaW5kZXggPSBzb3VyY2UuaW5kZXhPZihjaGFyYWN0ZXIsIGluZGV4ICsgY2hhcmFjdGVyLmxlbmd0aClcbiAgfVxuXG4gIHJldHVybiBjb3VudFxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7Q29kZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgY29kZSByZXByZXNlbnRzIGFuIEFTQ0lJIGFscGhhIChgYWAgdGhyb3VnaCBgemAsXG4gKiBjYXNlIGluc2Vuc2l0aXZlKS5cbiAqXG4gKiBBbiAqKkFTQ0lJIGFscGhhKiogaXMgYW4gQVNDSUkgdXBwZXIgYWxwaGEgb3IgQVNDSUkgbG93ZXIgYWxwaGEuXG4gKlxuICogQW4gKipBU0NJSSB1cHBlciBhbHBoYSoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDQxIChgQWApXG4gKiB0byBVKzAwNUEgKGBaYCkuXG4gKlxuICogQW4gKipBU0NJSSBsb3dlciBhbHBoYSoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDYxIChgYWApXG4gKiB0byBVKzAwN0EgKGB6YCkuXG4gKlxuICogQHBhcmFtIGNvZGVcbiAqICAgQ29kZS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIGl0IG1hdGNoZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBhc2NpaUFscGhhID0gcmVnZXhDaGVjaygvW0EtWmEtel0vKTtcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgY29kZSByZXByZXNlbnRzIGFuIEFTQ0lJIGFscGhhbnVtZXJpYyAoYGFgXG4gKiB0aHJvdWdoIGB6YCwgY2FzZSBpbnNlbnNpdGl2ZSwgb3IgYDBgIHRocm91Z2ggYDlgKS5cbiAqXG4gKiBBbiAqKkFTQ0lJIGFscGhhbnVtZXJpYyoqIGlzIGFuIEFTQ0lJIGRpZ2l0IChzZWUgYGFzY2lpRGlnaXRgKSBvciBBU0NJSSBhbHBoYVxuICogKHNlZSBgYXNjaWlBbHBoYWApLlxuICpcbiAqIEBwYXJhbSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgY29uc3QgYXNjaWlBbHBoYW51bWVyaWMgPSByZWdleENoZWNrKC9bXFxkQS1aYS16XS8pO1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBjb2RlIHJlcHJlc2VudHMgYW4gQVNDSUkgYXRleHQuXG4gKlxuICogYXRleHQgaXMgYW4gQVNDSUkgYWxwaGFudW1lcmljIChzZWUgYGFzY2lpQWxwaGFudW1lcmljYCksIG9yIGEgY2hhcmFjdGVyIGluXG4gKiB0aGUgaW5jbHVzaXZlIHJhbmdlcyBVKzAwMjMgTlVNQkVSIFNJR04gKGAjYCkgdG8gVSswMDI3IEFQT1NUUk9QSEUgKGAnYCksXG4gKiBVKzAwMkEgQVNURVJJU0sgKGAqYCksIFUrMDAyQiBQTFVTIFNJR04gKGArYCksIFUrMDAyRCBEQVNIIChgLWApLCBVKzAwMkZcbiAqIFNMQVNIIChgL2ApLCBVKzAwM0QgRVFVQUxTIFRPIChgPWApLCBVKzAwM0YgUVVFU1RJT04gTUFSSyAoYD9gKSwgVSswMDVFXG4gKiBDQVJFVCAoYF5gKSB0byBVKzAwNjAgR1JBVkUgQUNDRU5UIChgYCBgIGBgKSwgb3IgVSswMDdCIExFRlQgQ1VSTFkgQlJBQ0VcbiAqIChge2ApIHRvIFUrMDA3RSBUSUxERSAoYH5gKS5cbiAqXG4gKiBTZWU6XG4gKiAqKlxcW1JGQzUzMjJdKio6XG4gKiBbSW50ZXJuZXQgTWVzc2FnZSBGb3JtYXRdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIyKS5cbiAqIFAuIFJlc25pY2suXG4gKiBJRVRGLlxuICpcbiAqIEBwYXJhbSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgY29uc3QgYXNjaWlBdGV4dCA9IHJlZ2V4Q2hlY2soL1sjLScqK1xcLS05PT9BLVpeLX5dLyk7XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIGNoYXJhY3RlciBjb2RlIGlzIGFuIEFTQ0lJIGNvbnRyb2wgY2hhcmFjdGVyLlxuICpcbiAqIEFuICoqQVNDSUkgY29udHJvbCoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2UgVSswMDAwIE5VTEwgKE5VTClcbiAqIHRvIFUrMDAxRiAoVVMpLCBvciBVKzAwN0YgKERFTCkuXG4gKlxuICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNjaWlDb250cm9sKGNvZGUpIHtcbiAgcmV0dXJuIChcbiAgICAvLyBTcGVjaWFsIHdoaXRlc3BhY2UgY29kZXMgKHdoaWNoIGhhdmUgbmVnYXRpdmUgdmFsdWVzKSwgQzAgYW5kIENvbnRyb2xcbiAgICAvLyBjaGFyYWN0ZXIgREVMXG4gICAgY29kZSAhPT0gbnVsbCAmJiAoY29kZSA8IDMyIHx8IGNvZGUgPT09IDEyNylcbiAgKTtcbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgY29kZSByZXByZXNlbnRzIGFuIEFTQ0lJIGRpZ2l0IChgMGAgdGhyb3VnaCBgOWApLlxuICpcbiAqIEFuICoqQVNDSUkgZGlnaXQqKiBpcyBhIGNoYXJhY3RlciBpbiB0aGUgaW5jbHVzaXZlIHJhbmdlIFUrMDAzMCAoYDBgKSB0b1xuICogVSswMDM5IChgOWApLlxuICpcbiAqIEBwYXJhbSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgY29uc3QgYXNjaWlEaWdpdCA9IHJlZ2V4Q2hlY2soL1xcZC8pO1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBjb2RlIHJlcHJlc2VudHMgYW4gQVNDSUkgaGV4IGRpZ2l0IChgYWAgdGhyb3VnaFxuICogYGZgLCBjYXNlIGluc2Vuc2l0aXZlLCBvciBgMGAgdGhyb3VnaCBgOWApLlxuICpcbiAqIEFuICoqQVNDSUkgaGV4IGRpZ2l0KiogaXMgYW4gQVNDSUkgZGlnaXQgKHNlZSBgYXNjaWlEaWdpdGApLCBBU0NJSSB1cHBlciBoZXhcbiAqIGRpZ2l0LCBvciBhbiBBU0NJSSBsb3dlciBoZXggZGlnaXQuXG4gKlxuICogQW4gKipBU0NJSSB1cHBlciBoZXggZGlnaXQqKiBpcyBhIGNoYXJhY3RlciBpbiB0aGUgaW5jbHVzaXZlIHJhbmdlIFUrMDA0MVxuICogKGBBYCkgdG8gVSswMDQ2IChgRmApLlxuICpcbiAqIEFuICoqQVNDSUkgbG93ZXIgaGV4IGRpZ2l0KiogaXMgYSBjaGFyYWN0ZXIgaW4gdGhlIGluY2x1c2l2ZSByYW5nZSBVKzAwNjFcbiAqIChgYWApIHRvIFUrMDA2NiAoYGZgKS5cbiAqXG4gKiBAcGFyYW0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgaXQgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGFzY2lpSGV4RGlnaXQgPSByZWdleENoZWNrKC9bXFxkQS1GYS1mXS8pO1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBjb2RlIHJlcHJlc2VudHMgQVNDSUkgcHVuY3R1YXRpb24uXG4gKlxuICogQW4gKipBU0NJSSBwdW5jdHVhdGlvbioqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBpbmNsdXNpdmUgcmFuZ2VzIFUrMDAyMVxuICogRVhDTEFNQVRJT04gTUFSSyAoYCFgKSB0byBVKzAwMkYgU0xBU0ggKGAvYCksIFUrMDAzQSBDT0xPTiAoYDpgKSB0byBVKzAwNDAgQVRcbiAqIFNJR04gKGBAYCksIFUrMDA1QiBMRUZUIFNRVUFSRSBCUkFDS0VUIChgW2ApIHRvIFUrMDA2MCBHUkFWRSBBQ0NFTlRcbiAqIChgYCBgIGBgKSwgb3IgVSswMDdCIExFRlQgQ1VSTFkgQlJBQ0UgKGB7YCkgdG8gVSswMDdFIFRJTERFIChgfmApLlxuICpcbiAqIEBwYXJhbSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgY29uc3QgYXNjaWlQdW5jdHVhdGlvbiA9IHJlZ2V4Q2hlY2soL1shLS86LUBbLWB7LX5dLyk7XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIGNoYXJhY3RlciBjb2RlIGlzIGEgbWFya2Rvd24gbGluZSBlbmRpbmcuXG4gKlxuICogQSAqKm1hcmtkb3duIGxpbmUgZW5kaW5nKiogaXMgdGhlIHZpcnR1YWwgY2hhcmFjdGVycyBNLTAwMDMgQ0FSUklBR0UgUkVUVVJOXG4gKiBMSU5FIEZFRUQgKENSTEYpLCBNLTAwMDQgTElORSBGRUVEIChMRikgYW5kIE0tMDAwNSBDQVJSSUFHRSBSRVRVUk4gKENSKS5cbiAqXG4gKiBJbiBtaWNyb21hcmssIHRoZSBhY3R1YWwgY2hhcmFjdGVyIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBhbmQgVSswMDBEIENBUlJJQUdFXG4gKiBSRVRVUk4gKENSKSBhcmUgcmVwbGFjZWQgYnkgdGhlc2UgdmlydHVhbCBjaGFyYWN0ZXJzIGRlcGVuZGluZyBvbiB3aGV0aGVyXG4gKiB0aGV5IG9jY3VycmVkIHRvZ2V0aGVyLlxuICpcbiAqIEBwYXJhbSB7Q29kZX0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgaXQgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSB7XG4gIHJldHVybiBjb2RlICE9PSBudWxsICYmIGNvZGUgPCAtMjtcbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIGEgY2hhcmFjdGVyIGNvZGUgaXMgYSBtYXJrZG93biBsaW5lIGVuZGluZyAoc2VlXG4gKiBgbWFya2Rvd25MaW5lRW5kaW5nYCkgb3IgbWFya2Rvd24gc3BhY2UgKHNlZSBgbWFya2Rvd25TcGFjZWApLlxuICpcbiAqIEBwYXJhbSB7Q29kZX0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgaXQgbWF0Y2hlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkge1xuICByZXR1cm4gY29kZSAhPT0gbnVsbCAmJiAoY29kZSA8IDAgfHwgY29kZSA9PT0gMzIpO1xufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgYSBjaGFyYWN0ZXIgY29kZSBpcyBhIG1hcmtkb3duIHNwYWNlLlxuICpcbiAqIEEgKiptYXJrZG93biBzcGFjZSoqIGlzIHRoZSBjb25jcmV0ZSBjaGFyYWN0ZXIgVSswMDIwIFNQQUNFIChTUCkgYW5kIHRoZVxuICogdmlydHVhbCBjaGFyYWN0ZXJzIE0tMDAwMSBWSVJUVUFMIFNQQUNFIChWUykgYW5kIE0tMDAwMiBIT1JJWk9OVEFMIFRBQiAoSFQpLlxuICpcbiAqIEluIG1pY3JvbWFyaywgdGhlIGFjdHVhbCBjaGFyYWN0ZXIgVSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OIChIVCkgaXNcbiAqIHJlcGxhY2VkIGJ5IG9uZSBNLTAwMDIgSE9SSVpPTlRBTCBUQUIgKEhUKSBhbmQgYmV0d2VlbiAwIGFuZCAzIE0tMDAwMSBWSVJUVUFMXG4gKiBTUEFDRSAoVlMpIGNoYXJhY3RlcnMsIGRlcGVuZGluZyBvbiB0aGUgY29sdW1uIGF0IHdoaWNoIHRoZSB0YWIgb2NjdXJyZWQuXG4gKlxuICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBpdCBtYXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya2Rvd25TcGFjZShjb2RlKSB7XG4gIHJldHVybiBjb2RlID09PSAtMiB8fCBjb2RlID09PSAtMSB8fCBjb2RlID09PSAzMjtcbn1cblxuLy8gU2l6ZSBub3RlOiByZW1vdmluZyBBU0NJSSBmcm9tIHRoZSByZWdleCBhbmQgdXNpbmcgYGFzY2lpUHVuY3R1YXRpb25gIGhlcmVcbi8vIEluIGZhY3QgYWRkcyB0byB0aGUgYnVuZGxlIHNpemUuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBjb2RlIHJlcHJlc2VudHMgVW5pY29kZSBwdW5jdHVhdGlvbi5cbiAqXG4gKiBBICoqVW5pY29kZSBwdW5jdHVhdGlvbioqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBVbmljb2RlIGBQY2AgKFB1bmN0dWF0aW9uLFxuICogQ29ubmVjdG9yKSwgYFBkYCAoUHVuY3R1YXRpb24sIERhc2gpLCBgUGVgIChQdW5jdHVhdGlvbiwgQ2xvc2UpLCBgUGZgXG4gKiAoUHVuY3R1YXRpb24sIEZpbmFsIHF1b3RlKSwgYFBpYCAoUHVuY3R1YXRpb24sIEluaXRpYWwgcXVvdGUpLCBgUG9gXG4gKiAoUHVuY3R1YXRpb24sIE90aGVyKSwgb3IgYFBzYCAoUHVuY3R1YXRpb24sIE9wZW4pIGNhdGVnb3JpZXMsIG9yIGFuIEFTQ0lJXG4gKiBwdW5jdHVhdGlvbiAoc2VlIGBhc2NpaVB1bmN0dWF0aW9uYCkuXG4gKlxuICogU2VlOlxuICogKipcXFtVTklDT0RFXSoqOlxuICogW1RoZSBVbmljb2RlIFN0YW5kYXJkXShodHRwczovL3d3dy51bmljb2RlLm9yZy92ZXJzaW9ucy8pLlxuICogVW5pY29kZSBDb25zb3J0aXVtLlxuICpcbiAqIEBwYXJhbSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJuc1xuICogICBXaGV0aGVyIGl0IG1hdGNoZXMuXG4gKi9cbmV4cG9ydCBjb25zdCB1bmljb2RlUHVuY3R1YXRpb24gPSByZWdleENoZWNrKC9cXHB7UH18XFxwe1N9L3UpO1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBjb2RlIHJlcHJlc2VudHMgVW5pY29kZSB3aGl0ZXNwYWNlLlxuICpcbiAqIE5vdGUgdGhhdCB0aGlzIGRvZXMgaGFuZGxlIG1pY3JvbWFyayBzcGVjaWZpYyBtYXJrZG93biB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMuXG4gKiBTZWUgYG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2VgIHRvIGNoZWNrIHRoYXQuXG4gKlxuICogQSAqKlVuaWNvZGUgd2hpdGVzcGFjZSoqIGlzIGEgY2hhcmFjdGVyIGluIHRoZSBVbmljb2RlIGBac2AgKFNlcGFyYXRvcixcbiAqIFNwYWNlKSBjYXRlZ29yeSwgb3IgVSswMDA5IENIQVJBQ1RFUiBUQUJVTEFUSU9OIChIVCksIFUrMDAwQSBMSU5FIEZFRUQgKExGKSxcbiAqIFUrMDAwQyAoRkYpLCBvciBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUikgKCoqXFxbVU5JQ09ERV0qKikuXG4gKlxuICogU2VlOlxuICogKipcXFtVTklDT0RFXSoqOlxuICogW1RoZSBVbmljb2RlIFN0YW5kYXJkXShodHRwczovL3d3dy51bmljb2RlLm9yZy92ZXJzaW9ucy8pLlxuICogVW5pY29kZSBDb25zb3J0aXVtLlxuICpcbiAqIEBwYXJhbSBjb2RlXG4gKiAgIENvZGUuXG4gKiBAcmV0dXJuc1xuICogICBXaGV0aGVyIGl0IG1hdGNoZXMuXG4gKi9cbmV4cG9ydCBjb25zdCB1bmljb2RlV2hpdGVzcGFjZSA9IHJlZ2V4Q2hlY2soL1xccy8pO1xuXG4vKipcbiAqIENyZWF0ZSBhIGNvZGUgY2hlY2sgZnJvbSBhIHJlZ2V4LlxuICpcbiAqIEBwYXJhbSB7UmVnRXhwfSByZWdleFxuICogICBFeHByZXNzaW9uLlxuICogQHJldHVybnMgeyhjb2RlOiBDb2RlKSA9PiBib29sZWFufVxuICogICBDaGVjay5cbiAqL1xuZnVuY3Rpb24gcmVnZXhDaGVjayhyZWdleCkge1xuICByZXR1cm4gY2hlY2s7XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgYSBjb2RlIG1hdGNoZXMgdGhlIGJvdW5kIHJlZ2V4LlxuICAgKlxuICAgKiBAcGFyYW0ge0NvZGV9IGNvZGVcbiAgICogICBDaGFyYWN0ZXIgY29kZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqICAgV2hldGhlciB0aGUgY2hhcmFjdGVyIGNvZGUgbWF0Y2hlcyB0aGUgYm91bmQgcmVnZXguXG4gICAqL1xuICBmdW5jdGlvbiBjaGVjayhjb2RlKSB7XG4gICAgcmV0dXJuIGNvZGUgIT09IG51bGwgJiYgY29kZSA+IC0xICYmIHJlZ2V4LnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKSk7XG4gIH1cbn0iLCAiLyoqXG4gKiBAaW1wb3J0IHtOb2RlLCBQYXJlbnR9IGZyb20gJ3VuaXN0J1xuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIEZuXG4gKiBAdGVtcGxhdGUgRmFsbGJhY2tcbiAqIEB0eXBlZGVmIHtGbiBleHRlbmRzICh2YWx1ZTogYW55KSA9PiB2YWx1ZSBpcyBpbmZlciBUaGluZyA/IFRoaW5nIDogRmFsbGJhY2t9IFByZWRpY2F0ZVxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIENoZWNrXG4gKiAgIENoZWNrIHRoYXQgYW4gYXJiaXRyYXJ5IHZhbHVlIGlzIGEgbm9kZS5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdGhpc1xuICogICBUaGUgZ2l2ZW4gY29udGV4dC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gW25vZGVdXG4gKiAgIEFueXRoaW5nICh0eXBpY2FsbHkgYSBub2RlKS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2luZGV4XVxuICogICBUaGUgbm9kZVx1MjAxOXMgcG9zaXRpb24gaW4gaXRzIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BhcmVudF1cbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBhcmVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoaXMgaXMgYSBub2RlIGFuZCBwYXNzZXMgYSB0ZXN0LlxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IE5vZGV9IFByb3BzXG4gKiAgIE9iamVjdCB0byBjaGVjayBmb3IgZXF1aXZhbGVuY2UuXG4gKlxuICogICBOb3RlOiBgTm9kZWAgaXMgaW5jbHVkZWQgYXMgaXQgaXMgY29tbW9uIGJ1dCBpcyBub3QgaW5kZXhhYmxlLlxuICpcbiAqIEB0eXBlZGVmIHtBcnJheTxQcm9wcyB8IFRlc3RGdW5jdGlvbiB8IHN0cmluZz4gfCBSZWFkb25seUFycmF5PFByb3BzIHwgVGVzdEZ1bmN0aW9uIHwgc3RyaW5nPiB8IFByb3BzIHwgVGVzdEZ1bmN0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gVGVzdFxuICogICBDaGVjayBmb3IgYW4gYXJiaXRyYXJ5IG5vZGUuXG4gKlxuICogQGNhbGxiYWNrIFRlc3RGdW5jdGlvblxuICogICBDaGVjayBpZiBhIG5vZGUgcGFzc2VzIGEgdGVzdC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdGhpc1xuICogICBUaGUgZ2l2ZW4gY29udGV4dC5cbiAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICogICBBIG5vZGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gW2luZGV4XVxuICogICBUaGUgbm9kZVx1MjAxOXMgcG9zaXRpb24gaW4gaXRzIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50IHwgdW5kZWZpbmVkfSBbcGFyZW50XVxuICogICBUaGUgbm9kZVx1MjAxOXMgcGFyZW50LlxuICogQHJldHVybnMge2Jvb2xlYW4gfCB1bmRlZmluZWQgfCB2b2lkfVxuICogICBXaGV0aGVyIHRoaXMgbm9kZSBwYXNzZXMgdGhlIHRlc3QuXG4gKlxuICogICBOb3RlOiBgdm9pZGAgaXMgaW5jbHVkZWQgdW50aWwgVFMgc2VlcyBubyByZXR1cm4gYXMgYHVuZGVmaW5lZGAuXG4gKi9cblxuLyoqXG4gKiBDaGVjayBpZiBgbm9kZWAgaXMgYSBgTm9kZWAgYW5kIHdoZXRoZXIgaXQgcGFzc2VzIHRoZSBnaXZlbiB0ZXN0LlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gbm9kZVxuICogICBUaGluZyB0byBjaGVjaywgdHlwaWNhbGx5IGBOb2RlYC5cbiAqIEBwYXJhbSB7VGVzdH0gdGVzdFxuICogICBBIGNoZWNrIGZvciBhIHNwZWNpZmljIG5vZGUuXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwb3NpdGlvbiBpbiBpdHMgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBhcmVudC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gY29udGV4dFxuICogICBDb250ZXh0IG9iamVjdCAoYHRoaXNgKSB0byBwYXNzIHRvIGB0ZXN0YCBmdW5jdGlvbnMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciBgbm9kZWAgaXMgYSBub2RlIGFuZCBwYXNzZXMgYSB0ZXN0LlxuICovXG5leHBvcnQgY29uc3QgaXMgPVxuICAvLyBOb3RlOiBvdmVybG9hZHMgaW4gSlNEb2MgY2FuXHUyMDE5dCB5ZXQgdXNlIGRpZmZlcmVudCBgQHRlbXBsYXRlYHMuXG4gIC8qKlxuICAgKiBAdHlwZSB7KFxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxzdHJpbmc+Pihub2RlOiB1bmtub3duLCB0ZXN0OiBDb25kaXRpb24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIHt0eXBlOiBDb25kaXRpb25bbnVtYmVyXX0pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIEFycmF5PHN0cmluZz4+KG5vZGU6IHVua25vd24sIHRlc3Q6IENvbmRpdGlvbiwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYge3R5cGU6IENvbmRpdGlvbltudW1iZXJdfSkgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgc3RyaW5nPihub2RlOiB1bmtub3duLCB0ZXN0OiBDb25kaXRpb24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIHt0eXBlOiBDb25kaXRpb259KSAmXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBQcm9wcz4obm9kZTogdW5rbm93biwgdGVzdDogQ29uZGl0aW9uLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBDb25kaXRpb24pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFRlc3RGdW5jdGlvbj4obm9kZTogdW5rbm93biwgdGVzdDogQ29uZGl0aW9uLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBQcmVkaWNhdGU8Q29uZGl0aW9uLCBOb2RlPikgJlxuICAgKiAgICgobm9kZT86IG51bGwgfCB1bmRlZmluZWQpID0+IGZhbHNlKSAmXG4gICAqICAgKChub2RlOiB1bmtub3duLCB0ZXN0PzogbnVsbCB8IHVuZGVmaW5lZCwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlKSAmXG4gICAqICAgKChub2RlOiB1bmtub3duLCB0ZXN0PzogVGVzdCwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gYm9vbGVhbilcbiAgICogKX1cbiAgICovXG4gIChcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge3Vua25vd259IFtub2RlXVxuICAgICAqIEBwYXJhbSB7VGVzdH0gW3Rlc3RdXG4gICAgICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbaW5kZXhdXG4gICAgICogQHBhcmFtIHtQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkfSBbcGFyZW50XVxuICAgICAqIEBwYXJhbSB7dW5rbm93bn0gW2NvbnRleHRdXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1wYXJhbXNcbiAgICBmdW5jdGlvbiAobm9kZSwgdGVzdCwgaW5kZXgsIHBhcmVudCwgY29udGV4dCkge1xuICAgICAgY29uc3QgY2hlY2sgPSBjb252ZXJ0KHRlc3QpXG5cbiAgICAgIGlmIChcbiAgICAgICAgaW5kZXggIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBpbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAodHlwZW9mIGluZGV4ICE9PSAnbnVtYmVyJyB8fFxuICAgICAgICAgIGluZGV4IDwgMCB8fFxuICAgICAgICAgIGluZGV4ID09PSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBwb3NpdGl2ZSBmaW5pdGUgaW5kZXgnKVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHBhcmVudCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHBhcmVudCAhPT0gbnVsbCAmJlxuICAgICAgICAoIWlzKHBhcmVudCkgfHwgIXBhcmVudC5jaGlsZHJlbilcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHBhcmVudCBub2RlJylcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAocGFyZW50ID09PSB1bmRlZmluZWQgfHwgcGFyZW50ID09PSBudWxsKSAhPT1cbiAgICAgICAgKGluZGV4ID09PSB1bmRlZmluZWQgfHwgaW5kZXggPT09IG51bGwpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBib3RoIHBhcmVudCBhbmQgaW5kZXgnKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9va3NMaWtlQU5vZGUobm9kZSlcbiAgICAgICAgPyBjaGVjay5jYWxsKGNvbnRleHQsIG5vZGUsIGluZGV4LCBwYXJlbnQpXG4gICAgICAgIDogZmFsc2VcbiAgICB9XG4gIClcblxuLyoqXG4gKiBHZW5lcmF0ZSBhbiBhc3NlcnRpb24gZnJvbSBhIHRlc3QuXG4gKlxuICogVXNlZnVsIGlmIHlvdVx1MjAxOXJlIGdvaW5nIHRvIHRlc3QgbWFueSBub2RlcywgZm9yIGV4YW1wbGUgd2hlbiBjcmVhdGluZyBhXG4gKiB1dGlsaXR5IHdoZXJlIHNvbWV0aGluZyBlbHNlIHBhc3NlcyBhIGNvbXBhdGlibGUgdGVzdC5cbiAqXG4gKiBUaGUgY3JlYXRlZCBmdW5jdGlvbiBpcyBhIGJpdCBmYXN0ZXIgYmVjYXVzZSBpdCBleHBlY3RzIHZhbGlkIGlucHV0IG9ubHk6XG4gKiBhIGBub2RlYCwgYGluZGV4YCwgYW5kIGBwYXJlbnRgLlxuICpcbiAqIEBwYXJhbSB7VGVzdH0gdGVzdFxuICogICAqICAgd2hlbiBudWxsaXNoLCBjaGVja3MgaWYgYG5vZGVgIGlzIGEgYE5vZGVgLlxuICogICAqICAgd2hlbiBgc3RyaW5nYCwgd29ya3MgbGlrZSBwYXNzaW5nIGAobm9kZSkgPT4gbm9kZS50eXBlID09PSB0ZXN0YC5cbiAqICAgKiAgIHdoZW4gYGZ1bmN0aW9uYCBjaGVja3MgaWYgZnVuY3Rpb24gcGFzc2VkIHRoZSBub2RlIGlzIHRydWUuXG4gKiAgICogICB3aGVuIGBvYmplY3RgLCBjaGVja3MgdGhhdCBhbGwga2V5cyBpbiB0ZXN0IGFyZSBpbiBub2RlLCBhbmQgdGhhdCB0aGV5IGhhdmUgKHN0cmljdGx5KSBlcXVhbCB2YWx1ZXMuXG4gKiAgICogICB3aGVuIGBhcnJheWAsIGNoZWNrcyBpZiBhbnkgb25lIG9mIHRoZSBzdWJ0ZXN0cyBwYXNzLlxuICogQHJldHVybnMge0NoZWNrfVxuICogICBBbiBhc3NlcnRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0ID1cbiAgLy8gTm90ZTogb3ZlcmxvYWRzIGluIEpTRG9jIGNhblx1MjAxOXQgeWV0IHVzZSBkaWZmZXJlbnQgYEB0ZW1wbGF0ZWBzLlxuICAvKipcbiAgICogQHR5cGUgeyhcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIHN0cmluZz4odGVzdDogQ29uZGl0aW9uKSA9PiAobm9kZTogdW5rbm93biwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYge3R5cGU6IENvbmRpdGlvbn0pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFByb3BzPih0ZXN0OiBDb25kaXRpb24pID0+IChub2RlOiB1bmtub3duLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiBDb25kaXRpb24pICZcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIFRlc3RGdW5jdGlvbj4odGVzdDogQ29uZGl0aW9uKSA9PiAobm9kZTogdW5rbm93biwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYgUHJlZGljYXRlPENvbmRpdGlvbiwgTm9kZT4pICZcbiAgICogICAoKHRlc3Q/OiBudWxsIHwgdW5kZWZpbmVkKSA9PiAobm9kZT86IHVua25vd24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSkgJlxuICAgKiAgICgodGVzdD86IFRlc3QpID0+IENoZWNrKVxuICAgKiApfVxuICAgKi9cbiAgKFxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7VGVzdH0gW3Rlc3RdXG4gICAgICogQHJldHVybnMge0NoZWNrfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uICh0ZXN0KSB7XG4gICAgICBpZiAodGVzdCA9PT0gbnVsbCB8fCB0ZXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIG9rXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdGVzdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2FzdEZhY3RvcnkodGVzdClcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0ZXN0KVxuICAgICAgICAgID8gYW55RmFjdG9yeSh0ZXN0KVxuICAgICAgICAgIDogLy8gQ2FzdCBiZWNhdXNlIGBSZWFkb25seUFycmF5YCBnb2VzIGludG8gdGhlIGFib3ZlIGJ1dCBgaXNBcnJheWBcbiAgICAgICAgICAgIC8vIG5hcnJvd3MgdG8gYEFycmF5YC5cbiAgICAgICAgICAgIHByb3BlcnRpZXNGYWN0b3J5KC8qKiBAdHlwZSB7UHJvcHN9ICovICh0ZXN0KSlcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdHlwZUZhY3RvcnkodGVzdClcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBmdW5jdGlvbiwgc3RyaW5nLCBvciBvYmplY3QgYXMgdGVzdCcpXG4gICAgfVxuICApXG5cbi8qKlxuICogQHBhcmFtIHtBcnJheTxQcm9wcyB8IFRlc3RGdW5jdGlvbiB8IHN0cmluZz59IHRlc3RzXG4gKiBAcmV0dXJucyB7Q2hlY2t9XG4gKi9cbmZ1bmN0aW9uIGFueUZhY3RvcnkodGVzdHMpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxDaGVjaz59ICovXG4gIGNvbnN0IGNoZWNrcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCB0ZXN0cy5sZW5ndGgpIHtcbiAgICBjaGVja3NbaW5kZXhdID0gY29udmVydCh0ZXN0c1tpbmRleF0pXG4gIH1cblxuICByZXR1cm4gY2FzdEZhY3RvcnkoYW55KVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7dW5rbm93bn1cbiAgICogQHR5cGUge1Rlc3RGdW5jdGlvbn1cbiAgICovXG4gIGZ1bmN0aW9uIGFueSguLi5wYXJhbWV0ZXJzKSB7XG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHdoaWxlICgrK2luZGV4IDwgY2hlY2tzLmxlbmd0aCkge1xuICAgICAgaWYgKGNoZWNrc1tpbmRleF0uYXBwbHkodGhpcywgcGFyYW1ldGVycykpIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGFuIG9iamVjdCBpbnRvIGEgdGVzdCBmb3IgYSBub2RlIHdpdGggYSBjZXJ0YWluIGZpZWxkcy5cbiAqXG4gKiBAcGFyYW0ge1Byb3BzfSBjaGVja1xuICogQHJldHVybnMge0NoZWNrfVxuICovXG5mdW5jdGlvbiBwcm9wZXJ0aWVzRmFjdG9yeShjaGVjaykge1xuICBjb25zdCBjaGVja0FzUmVjb3JkID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gKGNoZWNrKVxuXG4gIHJldHVybiBjYXN0RmFjdG9yeShhbGwpXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGZ1bmN0aW9uIGFsbChub2RlKSB7XG4gICAgY29uc3Qgbm9kZUFzUmVjb3JkID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gKFxuICAgICAgLyoqIEB0eXBlIHt1bmtub3dufSAqLyAobm9kZSlcbiAgICApXG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQga2V5XG5cbiAgICBmb3IgKGtleSBpbiBjaGVjaykge1xuICAgICAgaWYgKG5vZGVBc1JlY29yZFtrZXldICE9PSBjaGVja0FzUmVjb3JkW2tleV0pIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGEgc3RyaW5nIGludG8gYSB0ZXN0IGZvciBhIG5vZGUgd2l0aCBhIGNlcnRhaW4gdHlwZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hlY2tcbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gdHlwZUZhY3RvcnkoY2hlY2spIHtcbiAgcmV0dXJuIGNhc3RGYWN0b3J5KHR5cGUpXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICAgKi9cbiAgZnVuY3Rpb24gdHlwZShub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS50eXBlID09PSBjaGVja1xuICB9XG59XG5cbi8qKlxuICogVHVybiBhIGN1c3RvbSB0ZXN0IGludG8gYSB0ZXN0IGZvciBhIG5vZGUgdGhhdCBwYXNzZXMgdGhhdCB0ZXN0LlxuICpcbiAqIEBwYXJhbSB7VGVzdEZ1bmN0aW9ufSB0ZXN0RnVuY3Rpb25cbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gY2FzdEZhY3RvcnkodGVzdEZ1bmN0aW9uKSB7XG4gIHJldHVybiBjaGVja1xuXG4gIC8qKlxuICAgKiBAdGhpcyB7dW5rbm93bn1cbiAgICogQHR5cGUge0NoZWNrfVxuICAgKi9cbiAgZnVuY3Rpb24gY2hlY2sodmFsdWUsIGluZGV4LCBwYXJlbnQpIHtcbiAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgIGxvb2tzTGlrZUFOb2RlKHZhbHVlKSAmJlxuICAgICAgICB0ZXN0RnVuY3Rpb24uY2FsbChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIHR5cGVvZiBpbmRleCA9PT0gJ251bWJlcicgPyBpbmRleCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBwYXJlbnQgfHwgdW5kZWZpbmVkXG4gICAgICAgIClcbiAgICApXG4gIH1cbn1cblxuZnVuY3Rpb24gb2soKSB7XG4gIHJldHVybiB0cnVlXG59XG5cbi8qKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogQHJldHVybnMge3ZhbHVlIGlzIE5vZGV9XG4gKi9cbmZ1bmN0aW9uIGxvb2tzTGlrZUFOb2RlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICd0eXBlJyBpbiB2YWx1ZVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5DaGVja30gQ2hlY2tcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL2luZGV4LmpzJykuVGVzdH0gVGVzdFxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5UZXN0RnVuY3Rpb259IFRlc3RGdW5jdGlvblxuICovXG5cbmV4cG9ydCB7aXMsIGNvbnZlcnR9IGZyb20gJy4vbGliL2luZGV4LmpzJ1xuIiwgIi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2xvcihkKSB7XG4gIHJldHVybiBkXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtOb2RlIGFzIFVuaXN0Tm9kZSwgUGFyZW50IGFzIFVuaXN0UGFyZW50fSBmcm9tICd1bmlzdCdcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtFeGNsdWRlPGltcG9ydCgndW5pc3QtdXRpbC1pcycpLlRlc3QsIHVuZGVmaW5lZD4gfCB1bmRlZmluZWR9IFRlc3RcbiAqICAgVGVzdCBmcm9tIGB1bmlzdC11dGlsLWlzYC5cbiAqXG4gKiAgIE5vdGU6IHdlIGhhdmUgcmVtb3ZlIGFuZCBhZGQgYHVuZGVmaW5lZGAsIGJlY2F1c2Ugb3RoZXJ3aXNlIHdoZW4gZ2VuZXJhdGluZ1xuICogICBhdXRvbWF0aWMgYC5kLnRzYCBmaWxlcywgVFMgdHJpZXMgdG8gZmxhdHRlbiBwYXRocyBmcm9tIGEgbG9jYWwgcGVyc3BlY3RpdmUsXG4gKiAgIHdoaWNoIGRvZXNuXHUyMDE5dCB3b3JrIHdoZW4gcHVibGlzaGluZyBvbiBucG0uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBGbiBleHRlbmRzICh2YWx1ZTogYW55KSA9PiB2YWx1ZSBpcyBpbmZlciBUaGluZ1xuICogICA/IFRoaW5nXG4gKiAgIDogRmFsbGJhY2tcbiAqICl9IFByZWRpY2F0ZVxuICogICBHZXQgdGhlIHZhbHVlIG9mIGEgdHlwZSBndWFyZCBgRm5gLlxuICogQHRlbXBsYXRlIEZuXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgZnVuY3Rpb24gdGhhdCBpcyBhIHR5cGUgZ3VhcmQgKHN1Y2ggYXMgYCh4KTogeCBpcyBZYCkuXG4gKiBAdGVtcGxhdGUgRmFsbGJhY2tcbiAqICAgVmFsdWUgdG8geWllbGQgaWYgYEZuYCBpcyBub3QgYSB0eXBlIGd1YXJkLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgQ2hlY2sgZXh0ZW5kcyBudWxsIHwgdW5kZWZpbmVkIC8vIE5vIHRlc3QuXG4gKiAgID8gVmFsdWVcbiAqICAgOiBWYWx1ZSBleHRlbmRzIHt0eXBlOiBDaGVja30gLy8gU3RyaW5nICh0eXBlKSB0ZXN0LlxuICogICA/IFZhbHVlXG4gKiAgIDogVmFsdWUgZXh0ZW5kcyBDaGVjayAvLyBQYXJ0aWFsIHRlc3QuXG4gKiAgID8gVmFsdWVcbiAqICAgOiBDaGVjayBleHRlbmRzIEZ1bmN0aW9uIC8vIEZ1bmN0aW9uIHRlc3QuXG4gKiAgID8gUHJlZGljYXRlPENoZWNrLCBWYWx1ZT4gZXh0ZW5kcyBWYWx1ZVxuICogICAgID8gUHJlZGljYXRlPENoZWNrLCBWYWx1ZT5cbiAqICAgICA6IG5ldmVyXG4gKiAgIDogbmV2ZXIgLy8gU29tZSBvdGhlciB0ZXN0P1xuICogKX0gTWF0Y2hlc09uZVxuICogICBDaGVjayB3aGV0aGVyIGEgbm9kZSBtYXRjaGVzIGEgcHJpbWl0aXZlIGNoZWNrIGluIHRoZSB0eXBlIHN5c3RlbS5cbiAqIEB0ZW1wbGF0ZSBWYWx1ZVxuICogICBWYWx1ZTsgdHlwaWNhbGx5IHVuaXN0IGBOb2RlYC5cbiAqIEB0ZW1wbGF0ZSBDaGVja1xuICogICBWYWx1ZTsgdHlwaWNhbGx5IGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3QsIGJ1dCBub3QgYXJyYXlzLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgQ2hlY2sgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFQ+XG4gKiAgID8gTWF0Y2hlc09uZTxWYWx1ZSwgVD5cbiAqICAgOiBDaGVjayBleHRlbmRzIEFycmF5PGluZmVyIFQ+XG4gKiAgID8gTWF0Y2hlc09uZTxWYWx1ZSwgVD5cbiAqICAgOiBNYXRjaGVzT25lPFZhbHVlLCBDaGVjaz5cbiAqICl9IE1hdGNoZXNcbiAqICAgQ2hlY2sgd2hldGhlciBhIG5vZGUgbWF0Y2hlcyBhIGNoZWNrIGluIHRoZSB0eXBlIHN5c3RlbS5cbiAqIEB0ZW1wbGF0ZSBWYWx1ZVxuICogICBWYWx1ZTsgdHlwaWNhbGx5IHVuaXN0IGBOb2RlYC5cbiAqIEB0ZW1wbGF0ZSBDaGVja1xuICogICBWYWx1ZTsgdHlwaWNhbGx5IGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3QuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7MCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB8IDcgfCA4IHwgOSB8IDEwfSBVaW50XG4gKiAgIE51bWJlcjsgY2FwcGVkIHJlYXNvbmFibHkuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SSBleHRlbmRzIDAgPyAxIDogSSBleHRlbmRzIDEgPyAyIDogSSBleHRlbmRzIDIgPyAzIDogSSBleHRlbmRzIDMgPyA0IDogSSBleHRlbmRzIDQgPyA1IDogSSBleHRlbmRzIDUgPyA2IDogSSBleHRlbmRzIDYgPyA3IDogSSBleHRlbmRzIDcgPyA4IDogSSBleHRlbmRzIDggPyA5IDogMTB9IEluY3JlbWVudFxuICogICBJbmNyZW1lbnQgYSBudW1iZXIgaW4gdGhlIHR5cGUgc3lzdGVtLlxuICogQHRlbXBsYXRlIHtVaW50fSBbST0wXVxuICogICBJbmRleC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIE5vZGUgZXh0ZW5kcyBVbmlzdFBhcmVudFxuICogICA/IE5vZGUgZXh0ZW5kcyB7Y2hpbGRyZW46IEFycmF5PGluZmVyIENoaWxkcmVuPn1cbiAqICAgICA/IENoaWxkIGV4dGVuZHMgQ2hpbGRyZW4gPyBOb2RlIDogbmV2ZXJcbiAqICAgICA6IG5ldmVyXG4gKiAgIDogbmV2ZXJcbiAqICl9IEludGVybmFsUGFyZW50XG4gKiAgIENvbGxlY3Qgbm9kZXMgdGhhdCBjYW4gYmUgcGFyZW50cyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IE5vZGVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtJbnRlcm5hbFBhcmVudDxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGlsZD59IFBhcmVudFxuICogICBDb2xsZWN0IG5vZGVzIGluIGBUcmVlYCB0aGF0IGNhbiBiZSBwYXJlbnRzIG9mIGBDaGlsZGAuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBBbGwgbm9kZSB0eXBlcyBpbiBhIHRyZWUuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gQ2hpbGRcbiAqICAgTm9kZSB0byBzZWFyY2ggZm9yLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgRGVwdGggZXh0ZW5kcyBNYXhcbiAqICAgPyBuZXZlclxuICogICA6XG4gKiAgICAgfCBJbnRlcm5hbFBhcmVudDxOb2RlLCBDaGlsZD5cbiAqICAgICB8IEludGVybmFsQW5jZXN0b3I8Tm9kZSwgSW50ZXJuYWxQYXJlbnQ8Tm9kZSwgQ2hpbGQ+LCBNYXgsIEluY3JlbWVudDxEZXB0aD4+XG4gKiApfSBJbnRlcm5hbEFuY2VzdG9yXG4gKiAgIENvbGxlY3Qgbm9kZXMgaW4gYFRyZWVgIHRoYXQgY2FuIGJlIGFuY2VzdG9ycyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IE5vZGVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW01heD0xMF1cbiAqICAgTWF4OyBzZWFyY2hlcyB1cCB0byB0aGlzIGRlcHRoLlxuICogQHRlbXBsYXRlIHtVaW50fSBbRGVwdGg9MF1cbiAqICAgQ3VycmVudCBkZXB0aC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtJbnRlcm5hbEFuY2VzdG9yPEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZT4sIENoaWxkPn0gQW5jZXN0b3JcbiAqICAgQ29sbGVjdCBub2RlcyBpbiBgVHJlZWAgdGhhdCBjYW4gYmUgYW5jZXN0b3JzIG9mIGBDaGlsZGAuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBBbGwgbm9kZSB0eXBlcyBpbiBhIHRyZWUuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gQ2hpbGRcbiAqICAgTm9kZSB0byBzZWFyY2ggZm9yLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgVHJlZSBleHRlbmRzIFVuaXN0UGFyZW50XG4gKiAgICAgPyBEZXB0aCBleHRlbmRzIE1heFxuICogICAgICAgPyBUcmVlXG4gKiAgICAgICA6IFRyZWUgfCBJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWVbJ2NoaWxkcmVuJ11bbnVtYmVyXSwgTWF4LCBJbmNyZW1lbnQ8RGVwdGg+PlxuICogICAgIDogVHJlZVxuICogKX0gSW5jbHVzaXZlRGVzY2VuZGFudFxuICogICBDb2xsZWN0IGFsbCAoaW5jbHVzaXZlKSBkZXNjZW5kYW50cyBvZiBgVHJlZWAuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRoaXMgc2VlbXMgdG8gYmUgdGhlIGZhc3Rlc3Qgd2F5IHRvXG4gKiAgID4gcmVjdXJzZSB3aXRob3V0IGFjdHVhbGx5IHJ1bm5pbmcgaW50byBhbiBpbmZpbml0ZSBsb29wLCB3aGljaCB0aGVcbiAqICAgPiBwcmV2aW91cyB2ZXJzaW9uIGRpZC5cbiAqICAgPlxuICogICA+IFByYWN0aWNhbGx5LCBhIG1heCBvZiBgMmAgaXMgdHlwaWNhbGx5IGVub3VnaCBhc3N1bWluZyBhIGBSb290YCBpc1xuICogICA+IHBhc3NlZCwgYnV0IGl0IGRvZXNuXHUyMDE5dCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxuICogICA+IEl0IGdldHMgaGlnaGVyIHdpdGggYExpc3QgPiBMaXN0SXRlbSA+IFRhYmxlID4gVGFibGVSb3cgPiBUYWJsZUNlbGxgLlxuICogICA+IFVzaW5nIHVwIHRvIGAxMGAgZG9lc25cdTIwMTl0IGh1cnQgb3IgaGVscCBlaXRoZXIuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBUcmVlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtNYXg9MTBdXG4gKiAgIE1heDsgc2VhcmNoZXMgdXAgdG8gdGhpcyBkZXB0aC5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0RlcHRoPTBdXG4gKiAgIEN1cnJlbnQgZGVwdGguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7J3NraXAnIHwgYm9vbGVhbn0gQWN0aW9uXG4gKiAgIFVuaW9uIG9mIHRoZSBhY3Rpb24gdHlwZXMuXG4gKlxuICogQHR5cGVkZWYge251bWJlcn0gSW5kZXhcbiAqICAgTW92ZSB0byB0aGUgc2libGluZyBhdCBgaW5kZXhgIG5leHQgKGFmdGVyIG5vZGUgaXRzZWxmIGlzIGNvbXBsZXRlbHlcbiAqICAgdHJhdmVyc2VkKS5cbiAqXG4gKiAgIFVzZWZ1bCBpZiBtdXRhdGluZyB0aGUgdHJlZSwgc3VjaCBhcyByZW1vdmluZyB0aGUgbm9kZSB0aGUgdmlzaXRvciBpc1xuICogICBjdXJyZW50bHkgb24sIG9yIGFueSBvZiBpdHMgcHJldmlvdXMgc2libGluZ3MuXG4gKiAgIFJlc3VsdHMgbGVzcyB0aGFuIDAgb3IgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGBjaGlsZHJlbi5sZW5ndGhgIHN0b3BcbiAqICAgdHJhdmVyc2luZyB0aGUgcGFyZW50LlxuICpcbiAqIEB0eXBlZGVmIHtbKEFjdGlvbiB8IG51bGwgfCB1bmRlZmluZWQgfCB2b2lkKT8sIChJbmRleCB8IG51bGwgfCB1bmRlZmluZWQpP119IEFjdGlvblR1cGxlXG4gKiAgIExpc3Qgd2l0aCBvbmUgb3IgdHdvIHZhbHVlcywgdGhlIGZpcnN0IGFuIGFjdGlvbiwgdGhlIHNlY29uZCBhbiBpbmRleC5cbiAqXG4gKiBAdHlwZWRlZiB7QWN0aW9uIHwgQWN0aW9uVHVwbGUgfCBJbmRleCB8IG51bGwgfCB1bmRlZmluZWQgfCB2b2lkfSBWaXNpdG9yUmVzdWx0XG4gKiAgIEFueSB2YWx1ZSB0aGF0IGNhbiBiZSByZXR1cm5lZCBmcm9tIGEgdmlzaXRvci5cbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBWaXNpdG9yXG4gKiAgIEhhbmRsZSBhIG5vZGUgKG1hdGNoaW5nIGB0ZXN0YCwgaWYgZ2l2ZW4pLlxuICpcbiAqICAgVmlzaXRvcnMgYXJlIGZyZWUgdG8gdHJhbnNmb3JtIGBub2RlYC5cbiAqICAgVGhleSBjYW4gYWxzbyB0cmFuc2Zvcm0gdGhlIHBhcmVudCBvZiBub2RlICh0aGUgbGFzdCBvZiBgYW5jZXN0b3JzYCkuXG4gKlxuICogICBSZXBsYWNpbmcgYG5vZGVgIGl0c2VsZiwgaWYgYFNLSVBgIGlzIG5vdCByZXR1cm5lZCwgc3RpbGwgY2F1c2VzIGl0c1xuICogICBkZXNjZW5kYW50cyB0byBiZSB3YWxrZWQgKHdoaWNoIGlzIGEgYnVnKS5cbiAqXG4gKiAgIFdoZW4gYWRkaW5nIG9yIHJlbW92aW5nIHByZXZpb3VzIHNpYmxpbmdzIG9mIGBub2RlYCAob3IgbmV4dCBzaWJsaW5ncywgaW5cbiAqICAgY2FzZSBvZiByZXZlcnNlKSwgdGhlIGBWaXNpdG9yYCBzaG91bGQgcmV0dXJuIGEgbmV3IGBJbmRleGAgdG8gc3BlY2lmeSB0aGVcbiAqICAgc2libGluZyB0byB0cmF2ZXJzZSBhZnRlciBgbm9kZWAgaXMgdHJhdmVyc2VkLlxuICogICBBZGRpbmcgb3IgcmVtb3ZpbmcgbmV4dCBzaWJsaW5ncyBvZiBgbm9kZWAgKG9yIHByZXZpb3VzIHNpYmxpbmdzLCBpbiBjYXNlXG4gKiAgIG9mIHJldmVyc2UpIGlzIGhhbmRsZWQgYXMgZXhwZWN0ZWQgd2l0aG91dCBuZWVkaW5nIHRvIHJldHVybiBhIG5ldyBgSW5kZXhgLlxuICpcbiAqICAgUmVtb3ZpbmcgdGhlIGNoaWxkcmVuIHByb3BlcnR5IG9mIGFuIGFuY2VzdG9yIHN0aWxsIHJlc3VsdHMgaW4gdGhlbSBiZWluZ1xuICogICB0cmF2ZXJzZWQuXG4gKiBAcGFyYW0ge1Zpc2l0ZWR9IG5vZGVcbiAqICAgRm91bmQgbm9kZS5cbiAqIEBwYXJhbSB7QXJyYXk8VmlzaXRlZFBhcmVudHM+fSBhbmNlc3RvcnNcbiAqICAgQW5jZXN0b3JzIG9mIGBub2RlYC5cbiAqIEByZXR1cm5zIHtWaXNpdG9yUmVzdWx0fVxuICogICBXaGF0IHRvIGRvIG5leHQuXG4gKlxuICogICBBbiBgSW5kZXhgIGlzIHRyZWF0ZWQgYXMgYSB0dXBsZSBvZiBgW0NPTlRJTlVFLCBJbmRleF1gLlxuICogICBBbiBgQWN0aW9uYCBpcyB0cmVhdGVkIGFzIGEgdHVwbGUgb2YgYFtBY3Rpb25dYC5cbiAqXG4gKiAgIFBhc3NpbmcgYSB0dXBsZSBiYWNrIG9ubHkgbWFrZXMgc2Vuc2UgaWYgdGhlIGBBY3Rpb25gIGlzIGBTS0lQYC5cbiAqICAgV2hlbiB0aGUgYEFjdGlvbmAgaXMgYEVYSVRgLCB0aGF0IGFjdGlvbiBjYW4gYmUgcmV0dXJuZWQuXG4gKiAgIFdoZW4gdGhlIGBBY3Rpb25gIGlzIGBDT05USU5VRWAsIGBJbmRleGAgY2FuIGJlIHJldHVybmVkLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFtWaXNpdGVkPVVuaXN0Tm9kZV1cbiAqICAgVmlzaXRlZCBub2RlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1VuaXN0UGFyZW50fSBbVmlzaXRlZFBhcmVudHM9VW5pc3RQYXJlbnRdXG4gKiAgIEFuY2VzdG9yIHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7VmlzaXRvcjxNYXRjaGVzPEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZT4sIENoZWNrPiwgQW5jZXN0b3I8VHJlZSwgTWF0Y2hlczxJbmNsdXNpdmVEZXNjZW5kYW50PFRyZWU+LCBDaGVjaz4+Pn0gQnVpbGRWaXNpdG9yXG4gKiAgIEJ1aWxkIGEgdHlwZWQgYFZpc2l0b3JgIGZ1bmN0aW9uIGZyb20gYSB0cmVlIGFuZCBhIHRlc3QuXG4gKlxuICogICBJdCB3aWxsIGluZmVyIHdoaWNoIHZhbHVlcyBhcmUgcGFzc2VkIGFzIGBub2RlYCBhbmQgd2hpY2ggYXMgYHBhcmVudHNgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFtUcmVlPVVuaXN0Tm9kZV1cbiAqICAgVHJlZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBbQ2hlY2s9VGVzdF1cbiAqICAgVGVzdCB0eXBlLlxuICovXG5cbmltcG9ydCB7Y29udmVydH0gZnJvbSAndW5pc3QtdXRpbC1pcydcbmltcG9ydCB7Y29sb3J9IGZyb20gJ3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cy9kby1ub3QtdXNlLWNvbG9yJ1xuXG4vKiogQHR5cGUge1JlYWRvbmx5PEFjdGlvblR1cGxlPn0gKi9cbmNvbnN0IGVtcHR5ID0gW11cblxuLyoqXG4gKiBDb250aW51ZSB0cmF2ZXJzaW5nIGFzIG5vcm1hbC5cbiAqL1xuZXhwb3J0IGNvbnN0IENPTlRJTlVFID0gdHJ1ZVxuXG4vKipcbiAqIFN0b3AgdHJhdmVyc2luZyBpbW1lZGlhdGVseS5cbiAqL1xuZXhwb3J0IGNvbnN0IEVYSVQgPSBmYWxzZVxuXG4vKipcbiAqIERvIG5vdCB0cmF2ZXJzZSB0aGlzIG5vZGVcdTIwMTlzIGNoaWxkcmVuLlxuICovXG5leHBvcnQgY29uc3QgU0tJUCA9ICdza2lwJ1xuXG4vKipcbiAqIFZpc2l0IG5vZGVzLCB3aXRoIGFuY2VzdHJhbCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBUaGlzIGFsZ29yaXRobSBwZXJmb3JtcyAqZGVwdGgtZmlyc3QqICp0cmVlIHRyYXZlcnNhbCogaW4gKnByZW9yZGVyKlxuICogKCoqTkxSKiopIG9yIGlmIGByZXZlcnNlYCBpcyBnaXZlbiwgaW4gKnJldmVyc2UgcHJlb3JkZXIqICgqKk5STCoqKS5cbiAqXG4gKiBZb3UgY2FuIGNob29zZSBmb3Igd2hpY2ggbm9kZXMgYHZpc2l0b3JgIGlzIGNhbGxlZCBieSBwYXNzaW5nIGEgYHRlc3RgLlxuICogRm9yIGNvbXBsZXggdGVzdHMsIHlvdSBzaG91bGQgdGVzdCB5b3Vyc2VsZiBpbiBgdmlzaXRvcmAsIGFzIGl0IHdpbGwgYmVcbiAqIGZhc3RlciBhbmQgd2lsbCBoYXZlIGltcHJvdmVkIHR5cGUgaW5mb3JtYXRpb24uXG4gKlxuICogV2Fsa2luZyB0aGUgdHJlZSBpcyBhbiBpbnRlbnNpdmUgdGFzay5cbiAqIE1ha2UgdXNlIG9mIHRoZSByZXR1cm4gdmFsdWVzIG9mIHRoZSB2aXNpdG9yIHdoZW4gcG9zc2libGUuXG4gKiBJbnN0ZWFkIG9mIHdhbGtpbmcgYSB0cmVlIG11bHRpcGxlIHRpbWVzLCB3YWxrIGl0IG9uY2UsIHVzZSBgdW5pc3QtdXRpbC1pc2BcbiAqIHRvIGNoZWNrIGlmIGEgbm9kZSBtYXRjaGVzLCBhbmQgdGhlbiBwZXJmb3JtIGRpZmZlcmVudCBvcGVyYXRpb25zLlxuICpcbiAqIFlvdSBjYW4gY2hhbmdlIHRoZSB0cmVlLlxuICogU2VlIGBWaXNpdG9yYCBmb3IgbW9yZSBpbmZvLlxuICpcbiAqIEBvdmVybG9hZFxuICogQHBhcmFtIHtUcmVlfSB0cmVlXG4gKiBAcGFyYW0ge0NoZWNrfSBjaGVja1xuICogQHBhcmFtIHtCdWlsZFZpc2l0b3I8VHJlZSwgQ2hlY2s+fSB2aXNpdG9yXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmV2ZXJzZV1cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKlxuICogQG92ZXJsb2FkXG4gKiBAcGFyYW0ge1RyZWV9IHRyZWVcbiAqIEBwYXJhbSB7QnVpbGRWaXNpdG9yPFRyZWU+fSB2aXNpdG9yXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmV2ZXJzZV1cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKlxuICogQHBhcmFtIHtVbmlzdE5vZGV9IHRyZWVcbiAqICAgVHJlZSB0byB0cmF2ZXJzZS5cbiAqIEBwYXJhbSB7VmlzaXRvciB8IFRlc3R9IHRlc3RcbiAqICAgYHVuaXN0LXV0aWwtaXNgLWNvbXBhdGlibGUgdGVzdFxuICogQHBhcmFtIHtWaXNpdG9yIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt2aXNpdG9yXVxuICogICBIYW5kbGUgZWFjaCBub2RlLlxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiAgIFRyYXZlcnNlIGluIHJldmVyc2UgcHJlb3JkZXIgKE5STCkgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBwcmVvcmRlciAoTkxSKS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgTm9kZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBDaGVja1xuICogICBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmlzaXRQYXJlbnRzKHRyZWUsIHRlc3QsIHZpc2l0b3IsIHJldmVyc2UpIHtcbiAgLyoqIEB0eXBlIHtUZXN0fSAqL1xuICBsZXQgY2hlY2tcblxuICBpZiAodHlwZW9mIHRlc3QgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZpc2l0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXZlcnNlID0gdmlzaXRvclxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igbm8gdmlzaXRvciBnaXZlbiwgc28gYHZpc2l0b3JgIGlzIHRlc3QuXG4gICAgdmlzaXRvciA9IHRlc3RcbiAgfSBlbHNlIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHZpc2l0b3IgZ2l2ZW4sIHNvIGB0ZXN0YCBpc25cdTIwMTl0IGEgdmlzaXRvci5cbiAgICBjaGVjayA9IHRlc3RcbiAgfVxuXG4gIGNvbnN0IGlzID0gY29udmVydChjaGVjaylcbiAgY29uc3Qgc3RlcCA9IHJldmVyc2UgPyAtMSA6IDFcblxuICBmYWN0b3J5KHRyZWUsIHVuZGVmaW5lZCwgW10pKClcblxuICAvKipcbiAgICogQHBhcmFtIHtVbmlzdE5vZGV9IG5vZGVcbiAgICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gICAqIEBwYXJhbSB7QXJyYXk8VW5pc3RQYXJlbnQ+fSBwYXJlbnRzXG4gICAqL1xuICBmdW5jdGlvbiBmYWN0b3J5KG5vZGUsIGluZGV4LCBwYXJlbnRzKSB7XG4gICAgY29uc3QgdmFsdWUgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSAqLyAoXG4gICAgICBub2RlICYmIHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyA/IG5vZGUgOiB7fVxuICAgIClcblxuICAgIGlmICh0eXBlb2YgdmFsdWUudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IG5hbWUgPVxuICAgICAgICAvLyBgaGFzdGBcbiAgICAgICAgdHlwZW9mIHZhbHVlLnRhZ05hbWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyB2YWx1ZS50YWdOYW1lXG4gICAgICAgICAgOiAvLyBgeGFzdGBcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZS5uYW1lID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyB2YWx1ZS5uYW1lXG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmlzaXQsICduYW1lJywge1xuICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAnbm9kZSAoJyArIGNvbG9yKG5vZGUudHlwZSArIChuYW1lID8gJzwnICsgbmFtZSArICc+JyA6ICcnKSkgKyAnKSdcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0XG5cbiAgICBmdW5jdGlvbiB2aXNpdCgpIHtcbiAgICAgIC8qKiBAdHlwZSB7UmVhZG9ubHk8QWN0aW9uVHVwbGU+fSAqL1xuICAgICAgbGV0IHJlc3VsdCA9IGVtcHR5XG4gICAgICAvKiogQHR5cGUge1JlYWRvbmx5PEFjdGlvblR1cGxlPn0gKi9cbiAgICAgIGxldCBzdWJyZXN1bHRcbiAgICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgICAgbGV0IG9mZnNldFxuICAgICAgLyoqIEB0eXBlIHtBcnJheTxVbmlzdFBhcmVudD59ICovXG4gICAgICBsZXQgZ3JhbmRwYXJlbnRzXG5cbiAgICAgIGlmICghdGVzdCB8fCBpcyhub2RlLCBpbmRleCwgcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdIHx8IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYHZpc2l0b3JgIGlzIG5vdyBhIHZpc2l0b3IuXG4gICAgICAgIHJlc3VsdCA9IHRvUmVzdWx0KHZpc2l0b3Iobm9kZSwgcGFyZW50cykpXG5cbiAgICAgICAgaWYgKHJlc3VsdFswXSA9PT0gRVhJVCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoJ2NoaWxkcmVuJyBpbiBub2RlICYmIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3Qgbm9kZUFzUGFyZW50ID0gLyoqIEB0eXBlIHtVbmlzdFBhcmVudH0gKi8gKG5vZGUpXG5cbiAgICAgICAgaWYgKG5vZGVBc1BhcmVudC5jaGlsZHJlbiAmJiByZXN1bHRbMF0gIT09IFNLSVApIHtcbiAgICAgICAgICBvZmZzZXQgPSAocmV2ZXJzZSA/IG5vZGVBc1BhcmVudC5jaGlsZHJlbi5sZW5ndGggOiAtMSkgKyBzdGVwXG4gICAgICAgICAgZ3JhbmRwYXJlbnRzID0gcGFyZW50cy5jb25jYXQobm9kZUFzUGFyZW50KVxuXG4gICAgICAgICAgd2hpbGUgKG9mZnNldCA+IC0xICYmIG9mZnNldCA8IG5vZGVBc1BhcmVudC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZUFzUGFyZW50LmNoaWxkcmVuW29mZnNldF1cblxuICAgICAgICAgICAgc3VicmVzdWx0ID0gZmFjdG9yeShjaGlsZCwgb2Zmc2V0LCBncmFuZHBhcmVudHMpKClcblxuICAgICAgICAgICAgaWYgKHN1YnJlc3VsdFswXSA9PT0gRVhJVCkge1xuICAgICAgICAgICAgICByZXR1cm4gc3VicmVzdWx0XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9mZnNldCA9XG4gICAgICAgICAgICAgIHR5cGVvZiBzdWJyZXN1bHRbMV0gPT09ICdudW1iZXInID8gc3VicmVzdWx0WzFdIDogb2Zmc2V0ICsgc3RlcFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHVybiBhIHJldHVybiB2YWx1ZSBpbnRvIGEgY2xlYW4gcmVzdWx0LlxuICpcbiAqIEBwYXJhbSB7VmlzaXRvclJlc3VsdH0gdmFsdWVcbiAqICAgVmFsaWQgcmV0dXJuIHZhbHVlcyBmcm9tIHZpc2l0b3JzLlxuICogQHJldHVybnMge1JlYWRvbmx5PEFjdGlvblR1cGxlPn1cbiAqICAgQ2xlYW4gcmVzdWx0LlxuICovXG5mdW5jdGlvbiB0b1Jlc3VsdCh2YWx1ZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIFtDT05USU5VRSwgdmFsdWVdXG4gIH1cblxuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/IGVtcHR5IDogW3ZhbHVlXVxufVxuIiwgIi8vIE5vdGU6IHR5cGVzIGV4cG9ydGVkIGZyb20gYGluZGV4LmQudHNgXG5leHBvcnQge0NPTlRJTlVFLCBFWElULCBTS0lQLCB2aXNpdFBhcmVudHN9IGZyb20gJy4vbGliL2luZGV4LmpzJ1xuIiwgIi8qKlxuICogQGltcG9ydCB7Tm9kZXMsIFBhcmVudHMsIFBocmFzaW5nQ29udGVudCwgUm9vdCwgVGV4dH0gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtCdWlsZFZpc2l0b3IsIFRlc3QsIFZpc2l0b3JSZXN1bHR9IGZyb20gJ3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cydcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFJlZ0V4cE1hdGNoT2JqZWN0XG4gKiAgIEluZm8gb24gdGhlIG1hdGNoLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGluZGV4XG4gKiAgIFRoZSBpbmRleCBvZiB0aGUgc2VhcmNoIGF0IHdoaWNoIHRoZSByZXN1bHQgd2FzIGZvdW5kLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGlucHV0XG4gKiAgIEEgY29weSBvZiB0aGUgc2VhcmNoIHN0cmluZyBpbiB0aGUgdGV4dCBub2RlLlxuICogQHByb3BlcnR5IHtbLi4uQXJyYXk8UGFyZW50cz4sIFRleHRdfSBzdGFja1xuICogICBBbGwgYW5jZXN0b3JzIG9mIHRoZSB0ZXh0IG5vZGUsIHdoZXJlIHRoZSBsYXN0IG5vZGUgaXMgdGhlIHRleHQgaXRzZWxmLlxuICpcbiAqIEB0eXBlZGVmIHtSZWdFeHAgfCBzdHJpbmd9IEZpbmRcbiAqICAgUGF0dGVybiB0byBmaW5kLlxuICpcbiAqICAgU3RyaW5ncyBhcmUgZXNjYXBlZCBhbmQgdGhlbiB0dXJuZWQgaW50byBnbG9iYWwgZXhwcmVzc2lvbnMuXG4gKlxuICogQHR5cGVkZWYge0FycmF5PEZpbmRBbmRSZXBsYWNlVHVwbGU+fSBGaW5kQW5kUmVwbGFjZUxpc3RcbiAqICAgU2V2ZXJhbCBmaW5kIGFuZCByZXBsYWNlcywgaW4gYXJyYXkgZm9ybS5cbiAqXG4gKiBAdHlwZWRlZiB7W0ZpbmQsIFJlcGxhY2U/XX0gRmluZEFuZFJlcGxhY2VUdXBsZVxuICogICBGaW5kIGFuZCByZXBsYWNlIGluIHR1cGxlIGZvcm0uXG4gKlxuICogQHR5cGVkZWYge1JlcGxhY2VGdW5jdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFJlcGxhY2VcbiAqICAgVGhpbmcgdG8gcmVwbGFjZSB3aXRoLlxuICpcbiAqIEBjYWxsYmFjayBSZXBsYWNlRnVuY3Rpb25cbiAqICAgQ2FsbGJhY2sgY2FsbGVkIHdoZW4gYSBzZWFyY2ggbWF0Y2hlcy5cbiAqIEBwYXJhbSB7Li4uYW55fSBwYXJhbWV0ZXJzXG4gKiAgIFRoZSBwYXJhbWV0ZXJzIGFyZSB0aGUgcmVzdWx0IG9mIGNvcnJlc3BvbmRpbmcgc2VhcmNoIGV4cHJlc3Npb246XG4gKlxuICogICAqIGB2YWx1ZWAgKGBzdHJpbmdgKSBcdTIwMTQgd2hvbGUgbWF0Y2hcbiAqICAgKiBgLi4uY2FwdHVyZWAgKGBBcnJheTxzdHJpbmc+YCkgXHUyMDE0IG1hdGNoZXMgZnJvbSByZWdleCBjYXB0dXJlIGdyb3Vwc1xuICogICAqIGBtYXRjaGAgKGBSZWdFeHBNYXRjaE9iamVjdGApIFx1MjAxNCBpbmZvIG9uIHRoZSBtYXRjaFxuICogQHJldHVybnMge0FycmF5PFBocmFzaW5nQ29udGVudD4gfCBQaHJhc2luZ0NvbnRlbnQgfCBzdHJpbmcgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWR9XG4gKiAgIFRoaW5nIHRvIHJlcGxhY2Ugd2l0aC5cbiAqXG4gKiAgICogd2hlbiBgbnVsbGAsIGB1bmRlZmluZWRgLCBgJydgLCByZW1vdmUgdGhlIG1hdGNoXG4gKiAgICogXHUyMDI2b3Igd2hlbiBgZmFsc2VgLCBkbyBub3QgcmVwbGFjZSBhdCBhbGxcbiAqICAgKiBcdTIwMjZvciB3aGVuIGBzdHJpbmdgLCByZXBsYWNlIHdpdGggYSB0ZXh0IG5vZGUgb2YgdGhhdCB2YWx1ZVxuICogICAqIFx1MjAyNm9yIHdoZW4gYE5vZGVgIG9yIGBBcnJheTxOb2RlPmAsIHJlcGxhY2Ugd2l0aCB0aG9zZSBub2Rlc1xuICpcbiAqIEB0eXBlZGVmIHtbUmVnRXhwLCBSZXBsYWNlRnVuY3Rpb25dfSBQYWlyXG4gKiAgIE5vcm1hbGl6ZWQgZmluZCBhbmQgcmVwbGFjZS5cbiAqXG4gKiBAdHlwZWRlZiB7QXJyYXk8UGFpcj59IFBhaXJzXG4gKiAgIEFsbCBmaW5kIGFuZCByZXBsYWNlZC5cbiAqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge1Rlc3QgfCBudWxsIHwgdW5kZWZpbmVkfSBbaWdub3JlXVxuICogICBUZXN0IGZvciB3aGljaCBub2RlcyB0byBpZ25vcmUgKG9wdGlvbmFsKS5cbiAqL1xuXG5pbXBvcnQgZXNjYXBlIGZyb20gJ2VzY2FwZS1zdHJpbmctcmVnZXhwJ1xuaW1wb3J0IHt2aXNpdFBhcmVudHN9IGZyb20gJ3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cydcbmltcG9ydCB7Y29udmVydH0gZnJvbSAndW5pc3QtdXRpbC1pcydcblxuLyoqXG4gKiBGaW5kIHBhdHRlcm5zIGluIGEgdHJlZSBhbmQgcmVwbGFjZSB0aGVtLlxuICpcbiAqIFRoZSBhbGdvcml0aG0gc2VhcmNoZXMgdGhlIHRyZWUgaW4gKnByZW9yZGVyKiBmb3IgY29tcGxldGUgdmFsdWVzIGluIGBUZXh0YFxuICogbm9kZXMuXG4gKiBQYXJ0aWFsIG1hdGNoZXMgYXJlIG5vdCBzdXBwb3J0ZWQuXG4gKlxuICogQHBhcmFtIHtOb2Rlc30gdHJlZVxuICogICBUcmVlIHRvIGNoYW5nZS5cbiAqIEBwYXJhbSB7RmluZEFuZFJlcGxhY2VMaXN0IHwgRmluZEFuZFJlcGxhY2VUdXBsZX0gbGlzdFxuICogICBQYXR0ZXJucyB0byBmaW5kLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKHdoZW4gYGZpbmRgIGlzIG5vdCBgRmluZGApLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBbmRSZXBsYWNlKHRyZWUsIGxpc3QsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG4gIGNvbnN0IGlnbm9yZWQgPSBjb252ZXJ0KHNldHRpbmdzLmlnbm9yZSB8fCBbXSlcbiAgY29uc3QgcGFpcnMgPSB0b1BhaXJzKGxpc3QpXG4gIGxldCBwYWlySW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK3BhaXJJbmRleCA8IHBhaXJzLmxlbmd0aCkge1xuICAgIHZpc2l0UGFyZW50cyh0cmVlLCAndGV4dCcsIHZpc2l0b3IpXG4gIH1cblxuICAvKiogQHR5cGUge0J1aWxkVmlzaXRvcjxSb290LCAndGV4dCc+fSAqL1xuICBmdW5jdGlvbiB2aXNpdG9yKG5vZGUsIHBhcmVudHMpIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuICAgIC8qKiBAdHlwZSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgZ3JhbmRwYXJlbnRcblxuICAgIHdoaWxlICgrK2luZGV4IDwgcGFyZW50cy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudHNbaW5kZXhdXG4gICAgICAvKiogQHR5cGUge0FycmF5PE5vZGVzPiB8IHVuZGVmaW5lZH0gKi9cbiAgICAgIGNvbnN0IHNpYmxpbmdzID0gZ3JhbmRwYXJlbnQgPyBncmFuZHBhcmVudC5jaGlsZHJlbiA6IHVuZGVmaW5lZFxuXG4gICAgICBpZiAoXG4gICAgICAgIGlnbm9yZWQoXG4gICAgICAgICAgcGFyZW50LFxuICAgICAgICAgIHNpYmxpbmdzID8gc2libGluZ3MuaW5kZXhPZihwYXJlbnQpIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGdyYW5kcGFyZW50XG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgZ3JhbmRwYXJlbnQgPSBwYXJlbnRcbiAgICB9XG5cbiAgICBpZiAoZ3JhbmRwYXJlbnQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVyKG5vZGUsIHBhcmVudHMpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhIHRleHQgbm9kZSB3aGljaCBpcyBub3QgaW4gYW4gaWdub3JlZCBwYXJlbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7VGV4dH0gbm9kZVxuICAgKiAgIFRleHQgbm9kZS5cbiAgICogQHBhcmFtIHtBcnJheTxQYXJlbnRzPn0gcGFyZW50c1xuICAgKiAgIFBhcmVudHMuXG4gICAqIEByZXR1cm5zIHtWaXNpdG9yUmVzdWx0fVxuICAgKiAgIFJlc3VsdC5cbiAgICovXG4gIGZ1bmN0aW9uIGhhbmRsZXIobm9kZSwgcGFyZW50cykge1xuICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudHNbcGFyZW50cy5sZW5ndGggLSAxXVxuICAgIGNvbnN0IGZpbmQgPSBwYWlyc1twYWlySW5kZXhdWzBdXG4gICAgY29uc3QgcmVwbGFjZSA9IHBhaXJzW3BhaXJJbmRleF1bMV1cbiAgICBsZXQgc3RhcnQgPSAwXG4gICAgLyoqIEB0eXBlIHtBcnJheTxOb2Rlcz59ICovXG4gICAgY29uc3Qgc2libGluZ3MgPSBwYXJlbnQuY2hpbGRyZW5cbiAgICBjb25zdCBpbmRleCA9IHNpYmxpbmdzLmluZGV4T2Yobm9kZSlcbiAgICBsZXQgY2hhbmdlID0gZmFsc2VcbiAgICAvKiogQHR5cGUge0FycmF5PFBocmFzaW5nQ29udGVudD59ICovXG4gICAgbGV0IG5vZGVzID0gW11cblxuICAgIGZpbmQubGFzdEluZGV4ID0gMFxuXG4gICAgbGV0IG1hdGNoID0gZmluZC5leGVjKG5vZGUudmFsdWUpXG5cbiAgICB3aGlsZSAobWF0Y2gpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gbWF0Y2guaW5kZXhcbiAgICAgIC8qKiBAdHlwZSB7UmVnRXhwTWF0Y2hPYmplY3R9ICovXG4gICAgICBjb25zdCBtYXRjaE9iamVjdCA9IHtcbiAgICAgICAgaW5kZXg6IG1hdGNoLmluZGV4LFxuICAgICAgICBpbnB1dDogbWF0Y2guaW5wdXQsXG4gICAgICAgIHN0YWNrOiBbLi4ucGFyZW50cywgbm9kZV1cbiAgICAgIH1cbiAgICAgIGxldCB2YWx1ZSA9IHJlcGxhY2UoLi4ubWF0Y2gsIG1hdGNoT2JqZWN0KVxuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLmxlbmd0aCA+IDAgPyB7dHlwZTogJ3RleHQnLCB2YWx1ZX0gOiB1bmRlZmluZWRcbiAgICAgIH1cblxuICAgICAgLy8gSXQgd2Fzblx1MjAxOXQgYSBtYXRjaCBhZnRlciBhbGwuXG4gICAgICBpZiAodmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgIC8vIEZhbHNlIGFjdHMgYXMgaWYgdGhlcmUgd2FzIG5vIG1hdGNoLlxuICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIHJlc2V0IGBsYXN0SW5kZXhgLCB3aGljaCBjdXJyZW50bHkgYmVpbmcgYXQgdGhlIGVuZCBvZlxuICAgICAgICAvLyB0aGUgY3VycmVudCBtYXRjaCwgdG8gdGhlIGJlZ2lubmluZy5cbiAgICAgICAgZmluZC5sYXN0SW5kZXggPSBwb3NpdGlvbiArIDFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzdGFydCAhPT0gcG9zaXRpb24pIHtcbiAgICAgICAgICBub2Rlcy5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgIHZhbHVlOiBub2RlLnZhbHVlLnNsaWNlKHN0YXJ0LCBwb3NpdGlvbilcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgbm9kZXMucHVzaCguLi52YWx1ZSlcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgICAgIG5vZGVzLnB1c2godmFsdWUpXG4gICAgICAgIH1cblxuICAgICAgICBzdGFydCA9IHBvc2l0aW9uICsgbWF0Y2hbMF0ubGVuZ3RoXG4gICAgICAgIGNoYW5nZSA9IHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKCFmaW5kLmdsb2JhbCkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBtYXRjaCA9IGZpbmQuZXhlYyhub2RlLnZhbHVlKVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgIGlmIChzdGFydCA8IG5vZGUudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgIG5vZGVzLnB1c2goe3R5cGU6ICd0ZXh0JywgdmFsdWU6IG5vZGUudmFsdWUuc2xpY2Uoc3RhcnQpfSlcbiAgICAgIH1cblxuICAgICAgcGFyZW50LmNoaWxkcmVuLnNwbGljZShpbmRleCwgMSwgLi4ubm9kZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGVzID0gW25vZGVdXG4gICAgfVxuXG4gICAgcmV0dXJuIGluZGV4ICsgbm9kZXMubGVuZ3RoXG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGEgdHVwbGUgb3IgYSBsaXN0IG9mIHR1cGxlcyBpbnRvIHBhaXJzLlxuICpcbiAqIEBwYXJhbSB7RmluZEFuZFJlcGxhY2VMaXN0IHwgRmluZEFuZFJlcGxhY2VUdXBsZX0gdHVwbGVPckxpc3RcbiAqICAgU2NoZW1hLlxuICogQHJldHVybnMge1BhaXJzfVxuICogICBDbGVhbiBwYWlycy5cbiAqL1xuZnVuY3Rpb24gdG9QYWlycyh0dXBsZU9yTGlzdCkge1xuICAvKiogQHR5cGUge1BhaXJzfSAqL1xuICBjb25zdCByZXN1bHQgPSBbXVxuXG4gIGlmICghQXJyYXkuaXNBcnJheSh0dXBsZU9yTGlzdCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBmaW5kIGFuZCByZXBsYWNlIHR1cGxlIG9yIGxpc3Qgb2YgdHVwbGVzJylcbiAgfVxuXG4gIC8qKiBAdHlwZSB7RmluZEFuZFJlcGxhY2VMaXN0fSAqL1xuICAvLyBAdHMtZXhwZWN0LWVycm9yOiBjb3JyZWN0LlxuICBjb25zdCBsaXN0ID1cbiAgICAhdHVwbGVPckxpc3RbMF0gfHwgQXJyYXkuaXNBcnJheSh0dXBsZU9yTGlzdFswXSlcbiAgICAgID8gdHVwbGVPckxpc3RcbiAgICAgIDogW3R1cGxlT3JMaXN0XVxuXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBsaXN0Lmxlbmd0aCkge1xuICAgIGNvbnN0IHR1cGxlID0gbGlzdFtpbmRleF1cbiAgICByZXN1bHQucHVzaChbdG9FeHByZXNzaW9uKHR1cGxlWzBdKSwgdG9GdW5jdGlvbih0dXBsZVsxXSldKVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFR1cm4gYSBmaW5kIGludG8gYW4gZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0ge0ZpbmR9IGZpbmRcbiAqICAgRmluZC5cbiAqIEByZXR1cm5zIHtSZWdFeHB9XG4gKiAgIEV4cHJlc3Npb24uXG4gKi9cbmZ1bmN0aW9uIHRvRXhwcmVzc2lvbihmaW5kKSB7XG4gIHJldHVybiB0eXBlb2YgZmluZCA9PT0gJ3N0cmluZycgPyBuZXcgUmVnRXhwKGVzY2FwZShmaW5kKSwgJ2cnKSA6IGZpbmRcbn1cblxuLyoqXG4gKiBUdXJuIGEgcmVwbGFjZSBpbnRvIGEgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHtSZXBsYWNlfSByZXBsYWNlXG4gKiAgIFJlcGxhY2UuXG4gKiBAcmV0dXJucyB7UmVwbGFjZUZ1bmN0aW9ufVxuICogICBGdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gdG9GdW5jdGlvbihyZXBsYWNlKSB7XG4gIHJldHVybiB0eXBlb2YgcmVwbGFjZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgID8gcmVwbGFjZVxuICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVwbGFjZVxuICAgICAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5GaW5kQW5kUmVwbGFjZUxpc3R9IEZpbmRBbmRSZXBsYWNlTGlzdFxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5GaW5kQW5kUmVwbGFjZVR1cGxlfSBGaW5kQW5kUmVwbGFjZVR1cGxlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi9pbmRleC5qcycpLkZpbmR9IEZpbmRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL2luZGV4LmpzJykuT3B0aW9uc30gT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5SZWdFeHBNYXRjaE9iamVjdH0gUmVnRXhwTWF0Y2hPYmplY3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL2luZGV4LmpzJykuUmVwbGFjZUZ1bmN0aW9ufSBSZXBsYWNlRnVuY3Rpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL2luZGV4LmpzJykuUmVwbGFjZX0gUmVwbGFjZVxuICovXG5cbmV4cG9ydCB7ZmluZEFuZFJlcGxhY2V9IGZyb20gJy4vbGliL2luZGV4LmpzJ1xuIiwgIi8qKlxuICogQGltcG9ydCB7UmVnRXhwTWF0Y2hPYmplY3QsIFJlcGxhY2VGdW5jdGlvbn0gZnJvbSAnbWRhc3QtdXRpbC1maW5kLWFuZC1yZXBsYWNlJ1xuICogQGltcG9ydCB7Q29tcGlsZUNvbnRleHQsIEV4dGVuc2lvbiBhcyBGcm9tTWFya2Rvd25FeHRlbnNpb24sIEhhbmRsZSBhcyBGcm9tTWFya2Rvd25IYW5kbGUsIFRyYW5zZm9ybSBhcyBGcm9tTWFya2Rvd25UcmFuc2Zvcm19IGZyb20gJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bidcbiAqIEBpbXBvcnQge0NvbnN0cnVjdE5hbWUsIE9wdGlvbnMgYXMgVG9NYXJrZG93bkV4dGVuc2lvbn0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqIEBpbXBvcnQge0xpbmssIFBocmFzaW5nQ29udGVudH0gZnJvbSAnbWRhc3QnXG4gKi9cblxuaW1wb3J0IHtjY291bnR9IGZyb20gJ2Njb3VudCdcbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5pbXBvcnQge3VuaWNvZGVQdW5jdHVhdGlvbiwgdW5pY29kZVdoaXRlc3BhY2V9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3RlcidcbmltcG9ydCB7ZmluZEFuZFJlcGxhY2V9IGZyb20gJ21kYXN0LXV0aWwtZmluZC1hbmQtcmVwbGFjZSdcblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3ROYW1lfSAqL1xuY29uc3QgaW5Db25zdHJ1Y3QgPSAncGhyYXNpbmcnXG4vKiogQHR5cGUge0FycmF5PENvbnN0cnVjdE5hbWU+fSAqL1xuY29uc3Qgbm90SW5Db25zdHJ1Y3QgPSBbJ2F1dG9saW5rJywgJ2xpbmsnLCAnaW1hZ2UnLCAnbGFiZWwnXVxuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLWZyb20tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gYXV0b2xpbmtcbiAqIGxpdGVyYWxzIGluIG1hcmtkb3duLlxuICpcbiAqIEByZXR1cm5zIHtGcm9tTWFya2Rvd25FeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtdG8tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gYXV0b2xpbmsgbGl0ZXJhbHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1BdXRvbGlua0xpdGVyYWxGcm9tTWFya2Rvd24oKSB7XG4gIHJldHVybiB7XG4gICAgdHJhbnNmb3JtczogW3RyYW5zZm9ybUdmbUF1dG9saW5rTGl0ZXJhbHNdLFxuICAgIGVudGVyOiB7XG4gICAgICBsaXRlcmFsQXV0b2xpbms6IGVudGVyTGl0ZXJhbEF1dG9saW5rLFxuICAgICAgbGl0ZXJhbEF1dG9saW5rRW1haWw6IGVudGVyTGl0ZXJhbEF1dG9saW5rVmFsdWUsXG4gICAgICBsaXRlcmFsQXV0b2xpbmtIdHRwOiBlbnRlckxpdGVyYWxBdXRvbGlua1ZhbHVlLFxuICAgICAgbGl0ZXJhbEF1dG9saW5rV3d3OiBlbnRlckxpdGVyYWxBdXRvbGlua1ZhbHVlXG4gICAgfSxcbiAgICBleGl0OiB7XG4gICAgICBsaXRlcmFsQXV0b2xpbms6IGV4aXRMaXRlcmFsQXV0b2xpbmssXG4gICAgICBsaXRlcmFsQXV0b2xpbmtFbWFpbDogZXhpdExpdGVyYWxBdXRvbGlua0VtYWlsLFxuICAgICAgbGl0ZXJhbEF1dG9saW5rSHR0cDogZXhpdExpdGVyYWxBdXRvbGlua0h0dHAsXG4gICAgICBsaXRlcmFsQXV0b2xpbmtXd3c6IGV4aXRMaXRlcmFsQXV0b2xpbmtXd3dcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSBhdXRvbGlua1xuICogbGl0ZXJhbHMgaW4gbWFya2Rvd24uXG4gKlxuICogQHJldHVybnMge1RvTWFya2Rvd25FeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtdG8tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gYXV0b2xpbmsgbGl0ZXJhbHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1BdXRvbGlua0xpdGVyYWxUb01hcmtkb3duKCkge1xuICByZXR1cm4ge1xuICAgIHVuc2FmZTogW1xuICAgICAge1xuICAgICAgICBjaGFyYWN0ZXI6ICdAJyxcbiAgICAgICAgYmVmb3JlOiAnWytcXFxcLS5cXFxcd10nLFxuICAgICAgICBhZnRlcjogJ1tcXFxcLS5cXFxcd10nLFxuICAgICAgICBpbkNvbnN0cnVjdCxcbiAgICAgICAgbm90SW5Db25zdHJ1Y3RcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNoYXJhY3RlcjogJy4nLFxuICAgICAgICBiZWZvcmU6ICdbV3ddJyxcbiAgICAgICAgYWZ0ZXI6ICdbXFxcXC0uXFxcXHddJyxcbiAgICAgICAgaW5Db25zdHJ1Y3QsXG4gICAgICAgIG5vdEluQ29uc3RydWN0XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjaGFyYWN0ZXI6ICc6JyxcbiAgICAgICAgYmVmb3JlOiAnW3BzXScsXG4gICAgICAgIGFmdGVyOiAnXFxcXC8nLFxuICAgICAgICBpbkNvbnN0cnVjdCxcbiAgICAgICAgbm90SW5Db25zdHJ1Y3RcbiAgICAgIH1cbiAgICBdXG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBlbnRlckxpdGVyYWxBdXRvbGluayh0b2tlbikge1xuICB0aGlzLmVudGVyKHt0eXBlOiAnbGluaycsIHRpdGxlOiBudWxsLCB1cmw6ICcnLCBjaGlsZHJlbjogW119LCB0b2tlbilcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBlbnRlckxpdGVyYWxBdXRvbGlua1ZhbHVlKHRva2VuKSB7XG4gIHRoaXMuY29uZmlnLmVudGVyLmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLCB0b2tlbilcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBleGl0TGl0ZXJhbEF1dG9saW5rSHR0cCh0b2tlbikge1xuICB0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLCB0b2tlbilcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBleGl0TGl0ZXJhbEF1dG9saW5rV3d3KHRva2VuKSB7XG4gIHRoaXMuY29uZmlnLmV4aXQuZGF0YS5jYWxsKHRoaXMsIHRva2VuKVxuICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gIGFzc2VydChub2RlLnR5cGUgPT09ICdsaW5rJylcbiAgbm9kZS51cmwgPSAnaHR0cDovLycgKyB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGV4aXRMaXRlcmFsQXV0b2xpbmtFbWFpbCh0b2tlbikge1xuICB0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rRW1haWwuY2FsbCh0aGlzLCB0b2tlbilcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBleGl0TGl0ZXJhbEF1dG9saW5rKHRva2VuKSB7XG4gIHRoaXMuZXhpdCh0b2tlbilcbn1cblxuLyoqIEB0eXBlIHtGcm9tTWFya2Rvd25UcmFuc2Zvcm19ICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1HZm1BdXRvbGlua0xpdGVyYWxzKHRyZWUpIHtcbiAgZmluZEFuZFJlcGxhY2UoXG4gICAgdHJlZSxcbiAgICBbXG4gICAgICBbLyhodHRwcz86XFwvXFwvfHd3dyg/PVxcLikpKFstLlxcd10rKShbXiBcXHRcXHJcXG5dKikvZ2ksIGZpbmRVcmxdLFxuICAgICAgWy8oPzw9XnxcXHN8XFxwe1B9fFxccHtTfSkoWy0uXFx3K10rKUAoWy1cXHddKyg/OlxcLlstXFx3XSspKykvZ3UsIGZpbmRFbWFpbF1cbiAgICBdLFxuICAgIHtpZ25vcmU6IFsnbGluaycsICdsaW5rUmVmZXJlbmNlJ119XG4gIClcbn1cblxuLyoqXG4gKiBAdHlwZSB7UmVwbGFjZUZ1bmN0aW9ufVxuICogQHBhcmFtIHtzdHJpbmd9IF9cbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm90b2NvbFxuICogQHBhcmFtIHtzdHJpbmd9IGRvbWFpblxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqIEBwYXJhbSB7UmVnRXhwTWF0Y2hPYmplY3R9IG1hdGNoXG4gKiBAcmV0dXJucyB7QXJyYXk8UGhyYXNpbmdDb250ZW50PiB8IExpbmsgfCBmYWxzZX1cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1wYXJhbXNcbmZ1bmN0aW9uIGZpbmRVcmwoXywgcHJvdG9jb2wsIGRvbWFpbiwgcGF0aCwgbWF0Y2gpIHtcbiAgbGV0IHByZWZpeCA9ICcnXG5cbiAgLy8gTm90IGFuIGV4cGVjdGVkIHByZXZpb3VzIGNoYXJhY3Rlci5cbiAgaWYgKCFwcmV2aW91cyhtYXRjaCkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8vIFRyZWF0IGB3d3dgIGFzIHBhcnQgb2YgdGhlIGRvbWFpbi5cbiAgaWYgKC9edy9pLnRlc3QocHJvdG9jb2wpKSB7XG4gICAgZG9tYWluID0gcHJvdG9jb2wgKyBkb21haW5cbiAgICBwcm90b2NvbCA9ICcnXG4gICAgcHJlZml4ID0gJ2h0dHA6Ly8nXG4gIH1cblxuICBpZiAoIWlzQ29ycmVjdERvbWFpbihkb21haW4pKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCBwYXJ0cyA9IHNwbGl0VXJsKGRvbWFpbiArIHBhdGgpXG5cbiAgaWYgKCFwYXJ0c1swXSkgcmV0dXJuIGZhbHNlXG5cbiAgLyoqIEB0eXBlIHtMaW5rfSAqL1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgdHlwZTogJ2xpbmsnLFxuICAgIHRpdGxlOiBudWxsLFxuICAgIHVybDogcHJlZml4ICsgcHJvdG9jb2wgKyBwYXJ0c1swXSxcbiAgICBjaGlsZHJlbjogW3t0eXBlOiAndGV4dCcsIHZhbHVlOiBwcm90b2NvbCArIHBhcnRzWzBdfV1cbiAgfVxuXG4gIGlmIChwYXJ0c1sxXSkge1xuICAgIHJldHVybiBbcmVzdWx0LCB7dHlwZTogJ3RleHQnLCB2YWx1ZTogcGFydHNbMV19XVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIEB0eXBlIHtSZXBsYWNlRnVuY3Rpb259XG4gKiBAcGFyYW0ge3N0cmluZ30gX1xuICogQHBhcmFtIHtzdHJpbmd9IGF0ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gbGFiZWxcbiAqIEBwYXJhbSB7UmVnRXhwTWF0Y2hPYmplY3R9IG1hdGNoXG4gKiBAcmV0dXJucyB7TGluayB8IGZhbHNlfVxuICovXG5mdW5jdGlvbiBmaW5kRW1haWwoXywgYXRleHQsIGxhYmVsLCBtYXRjaCkge1xuICBpZiAoXG4gICAgLy8gTm90IGFuIGV4cGVjdGVkIHByZXZpb3VzIGNoYXJhY3Rlci5cbiAgICAhcHJldmlvdXMobWF0Y2gsIHRydWUpIHx8XG4gICAgLy8gTGFiZWwgZW5kcyBpbiBub3QgYWxsb3dlZCBjaGFyYWN0ZXIuXG4gICAgL1stXFxkX10kLy50ZXN0KGxhYmVsKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ2xpbmsnLFxuICAgIHRpdGxlOiBudWxsLFxuICAgIHVybDogJ21haWx0bzonICsgYXRleHQgKyAnQCcgKyBsYWJlbCxcbiAgICBjaGlsZHJlbjogW3t0eXBlOiAndGV4dCcsIHZhbHVlOiBhdGV4dCArICdAJyArIGxhYmVsfV1cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBkb21haW5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBpc0NvcnJlY3REb21haW4oZG9tYWluKSB7XG4gIGNvbnN0IHBhcnRzID0gZG9tYWluLnNwbGl0KCcuJylcblxuICBpZiAoXG4gICAgcGFydHMubGVuZ3RoIDwgMiB8fFxuICAgIChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSAmJlxuICAgICAgKC9fLy50ZXN0KHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdKSB8fFxuICAgICAgICAhL1thLXpBLVpcXGRdLy50ZXN0KHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdKSkpIHx8XG4gICAgKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDJdICYmXG4gICAgICAoL18vLnRlc3QocGFydHNbcGFydHMubGVuZ3RoIC0gMl0pIHx8XG4gICAgICAgICEvW2EtekEtWlxcZF0vLnRlc3QocGFydHNbcGFydHMubGVuZ3RoIC0gMl0pKSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmxcbiAqIEByZXR1cm5zIHtbc3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWRdfVxuICovXG5mdW5jdGlvbiBzcGxpdFVybCh1cmwpIHtcbiAgY29uc3QgdHJhaWxFeGVjID0gL1shXCImJyksLjo7PD4/XFxdfV0rJC8uZXhlYyh1cmwpXG5cbiAgaWYgKCF0cmFpbEV4ZWMpIHtcbiAgICByZXR1cm4gW3VybCwgdW5kZWZpbmVkXVxuICB9XG5cbiAgdXJsID0gdXJsLnNsaWNlKDAsIHRyYWlsRXhlYy5pbmRleClcblxuICBsZXQgdHJhaWwgPSB0cmFpbEV4ZWNbMF1cbiAgbGV0IGNsb3NpbmdQYXJlbkluZGV4ID0gdHJhaWwuaW5kZXhPZignKScpXG4gIGNvbnN0IG9wZW5pbmdQYXJlbnMgPSBjY291bnQodXJsLCAnKCcpXG4gIGxldCBjbG9zaW5nUGFyZW5zID0gY2NvdW50KHVybCwgJyknKVxuXG4gIHdoaWxlIChjbG9zaW5nUGFyZW5JbmRleCAhPT0gLTEgJiYgb3BlbmluZ1BhcmVucyA+IGNsb3NpbmdQYXJlbnMpIHtcbiAgICB1cmwgKz0gdHJhaWwuc2xpY2UoMCwgY2xvc2luZ1BhcmVuSW5kZXggKyAxKVxuICAgIHRyYWlsID0gdHJhaWwuc2xpY2UoY2xvc2luZ1BhcmVuSW5kZXggKyAxKVxuICAgIGNsb3NpbmdQYXJlbkluZGV4ID0gdHJhaWwuaW5kZXhPZignKScpXG4gICAgY2xvc2luZ1BhcmVucysrXG4gIH1cblxuICByZXR1cm4gW3VybCwgdHJhaWxdXG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWdFeHBNYXRjaE9iamVjdH0gbWF0Y2hcbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtlbWFpbD1mYWxzZV1cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBwcmV2aW91cyhtYXRjaCwgZW1haWwpIHtcbiAgY29uc3QgY29kZSA9IG1hdGNoLmlucHV0LmNoYXJDb2RlQXQobWF0Y2guaW5kZXggLSAxKVxuXG4gIHJldHVybiAoXG4gICAgKG1hdGNoLmluZGV4ID09PSAwIHx8XG4gICAgICB1bmljb2RlV2hpdGVzcGFjZShjb2RlKSB8fFxuICAgICAgdW5pY29kZVB1bmN0dWF0aW9uKGNvZGUpKSAmJlxuICAgIC8vIElmIGl0XHUyMDE5cyBhbiBlbWFpbCwgdGhlIHByZXZpb3VzIGNoYXJhY3RlciBzaG91bGQgbm90IGJlIGEgc2xhc2guXG4gICAgKCFlbWFpbCB8fCBjb2RlICE9PSA0NylcbiAgKVxufVxuIiwgImV4cG9ydCB7XG4gIGdmbUF1dG9saW5rTGl0ZXJhbEZyb21NYXJrZG93bixcbiAgZ2ZtQXV0b2xpbmtMaXRlcmFsVG9NYXJrZG93blxufSBmcm9tICcuL2xpYi9pbmRleC5qcydcbiIsICIvKipcbiAqIE5vcm1hbGl6ZSBhbiBpZGVudGlmaWVyIChhcyBmb3VuZCBpbiByZWZlcmVuY2VzLCBkZWZpbml0aW9ucykuXG4gKlxuICogQ29sbGFwc2VzIG1hcmtkb3duIHdoaXRlc3BhY2UsIHRyaW0sIGFuZCB0aGVuIGxvd2VyLSBhbmQgdXBwZXJjYXNlLlxuICpcbiAqIFNvbWUgY2hhcmFjdGVycyBhcmUgY29uc2lkZXJlZCBcdTIwMUN1cHBlcmNhc2VcdTIwMUQsIHN1Y2ggYXMgVSswM0Y0IChgXHUwM0Y0YCksIGJ1dCBpZiB0aGVpclxuICogbG93ZXJjYXNlIGNvdW50ZXJwYXJ0IChVKzAzQjggKGBcdTAzQjhgKSkgaXMgdXBwZXJjYXNlZCB3aWxsIHJlc3VsdCBpbiBhIGRpZmZlcmVudFxuICogdXBwZXJjYXNlIGNoYXJhY3RlciAoVSswMzk4IChgXHUwMzk4YCkpLlxuICogU28sIHRvIGdldCBhIGNhbm9uaWNhbCBmb3JtLCB3ZSBwZXJmb3JtIGJvdGggbG93ZXItIGFuZCB1cHBlcmNhc2UuXG4gKlxuICogVXNpbmcgdXBwZXJjYXNlIGxhc3QgbWFrZXMgc3VyZSBrZXlzIHdpbGwgbmV2ZXIgaW50ZXJhY3Qgd2l0aCBkZWZhdWx0XG4gKiBwcm90b3R5cGFsIHZhbHVlcyAoc3VjaCBhcyBgY29uc3RydWN0b3JgKTogbm90aGluZyBpbiB0aGUgcHJvdG90eXBlIG9mXG4gKiBgT2JqZWN0YCBpcyB1cHBlcmNhc2UuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIElkZW50aWZpZXIgdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgTm9ybWFsaXplZCBpZGVudGlmaWVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplSWRlbnRpZmllcih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWVcbiAgLy8gQ29sbGFwc2UgbWFya2Rvd24gd2hpdGVzcGFjZS5cbiAgLnJlcGxhY2UoL1tcXHRcXG5cXHIgXSsvZywgXCIgXCIpXG4gIC8vIFRyaW0uXG4gIC5yZXBsYWNlKC9eIHwgJC9nLCAnJylcbiAgLy8gU29tZSBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIFx1MjAxQ3VwcGVyY2FzZVx1MjAxRCwgYnV0IGlmIHRoZWlyIGxvd2VyY2FzZVxuICAvLyBjb3VudGVycGFydCBpcyB1cHBlcmNhc2VkIHdpbGwgcmVzdWx0IGluIGEgZGlmZmVyZW50IHVwcGVyY2FzZVxuICAvLyBjaGFyYWN0ZXIuXG4gIC8vIEhlbmNlLCB0byBnZXQgdGhhdCBmb3JtLCB3ZSBwZXJmb3JtIGJvdGggbG93ZXItIGFuZCB1cHBlcmNhc2UuXG4gIC8vIFVwcGVyIGNhc2UgbWFrZXMgc3VyZSBrZXlzIHdpbGwgbm90IGludGVyYWN0IHdpdGggZGVmYXVsdCBwcm90b3R5cGFsXG4gIC8vIG1ldGhvZHM6IG5vIG1ldGhvZCBpcyB1cHBlcmNhc2UuXG4gIC50b0xvd2VyQ2FzZSgpLnRvVXBwZXJDYXNlKCk7XG59IiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIENvbXBpbGVDb250ZXh0LFxuICogICBFeHRlbnNpb24gYXMgRnJvbU1hcmtkb3duRXh0ZW5zaW9uLFxuICogICBIYW5kbGUgYXMgRnJvbU1hcmtkb3duSGFuZGxlXG4gKiB9IGZyb20gJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bidcbiAqIEBpbXBvcnQge1RvTWFya2Rvd25PcHRpb25zfSBmcm9tICdtZGFzdC11dGlsLWdmbS1mb290bm90ZSdcbiAqIEBpbXBvcnQge1xuICogICBIYW5kbGUgYXMgVG9NYXJrZG93bkhhbmRsZSxcbiAqICAgTWFwLFxuICogICBPcHRpb25zIGFzIFRvTWFya2Rvd25FeHRlbnNpb25cbiAqIH0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqIEBpbXBvcnQge0Zvb3Rub3RlRGVmaW5pdGlvbiwgRm9vdG5vdGVSZWZlcmVuY2V9IGZyb20gJ21kYXN0J1xuICovXG5cbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5pbXBvcnQge25vcm1hbGl6ZUlkZW50aWZpZXJ9IGZyb20gJ21pY3JvbWFyay11dGlsLW5vcm1hbGl6ZS1pZGVudGlmaWVyJ1xuXG5mb290bm90ZVJlZmVyZW5jZS5wZWVrID0gZm9vdG5vdGVSZWZlcmVuY2VQZWVrXG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZW50ZXJGb290bm90ZUNhbGxTdHJpbmcoKSB7XG4gIHRoaXMuYnVmZmVyKClcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBlbnRlckZvb3Rub3RlQ2FsbCh0b2tlbikge1xuICB0aGlzLmVudGVyKHt0eXBlOiAnZm9vdG5vdGVSZWZlcmVuY2UnLCBpZGVudGlmaWVyOiAnJywgbGFiZWw6ICcnfSwgdG9rZW4pXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZW50ZXJGb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZygpIHtcbiAgdGhpcy5idWZmZXIoKVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGVudGVyRm9vdG5vdGVEZWZpbml0aW9uKHRva2VuKSB7XG4gIHRoaXMuZW50ZXIoXG4gICAge3R5cGU6ICdmb290bm90ZURlZmluaXRpb24nLCBpZGVudGlmaWVyOiAnJywgbGFiZWw6ICcnLCBjaGlsZHJlbjogW119LFxuICAgIHRva2VuXG4gIClcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBleGl0Rm9vdG5vdGVDYWxsU3RyaW5nKHRva2VuKSB7XG4gIGNvbnN0IGxhYmVsID0gdGhpcy5yZXN1bWUoKVxuICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gIGFzc2VydChub2RlLnR5cGUgPT09ICdmb290bm90ZVJlZmVyZW5jZScpXG4gIG5vZGUuaWRlbnRpZmllciA9IG5vcm1hbGl6ZUlkZW50aWZpZXIoXG4gICAgdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbilcbiAgKS50b0xvd2VyQ2FzZSgpXG4gIG5vZGUubGFiZWwgPSBsYWJlbFxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGV4aXRGb290bm90ZUNhbGwodG9rZW4pIHtcbiAgdGhpcy5leGl0KHRva2VuKVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGV4aXRGb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyh0b2tlbikge1xuICBjb25zdCBsYWJlbCA9IHRoaXMucmVzdW1lKClcbiAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICBhc3NlcnQobm9kZS50eXBlID09PSAnZm9vdG5vdGVEZWZpbml0aW9uJylcbiAgbm9kZS5pZGVudGlmaWVyID0gbm9ybWFsaXplSWRlbnRpZmllcihcbiAgICB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKVxuICApLnRvTG93ZXJDYXNlKClcbiAgbm9kZS5sYWJlbCA9IGxhYmVsXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZXhpdEZvb3Rub3RlRGVmaW5pdGlvbih0b2tlbikge1xuICB0aGlzLmV4aXQodG9rZW4pXG59XG5cbi8qKiBAdHlwZSB7VG9NYXJrZG93bkhhbmRsZX0gKi9cbmZ1bmN0aW9uIGZvb3Rub3RlUmVmZXJlbmNlUGVlaygpIHtcbiAgcmV0dXJuICdbJ1xufVxuXG4vKipcbiAqIEB0eXBlIHtUb01hcmtkb3duSGFuZGxlfVxuICogQHBhcmFtIHtGb290bm90ZVJlZmVyZW5jZX0gbm9kZVxuICovXG5mdW5jdGlvbiBmb290bm90ZVJlZmVyZW5jZShub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICBjb25zdCB0cmFja2VyID0gc3RhdGUuY3JlYXRlVHJhY2tlcihpbmZvKVxuICBsZXQgdmFsdWUgPSB0cmFja2VyLm1vdmUoJ1teJylcbiAgY29uc3QgZXhpdCA9IHN0YXRlLmVudGVyKCdmb290bm90ZVJlZmVyZW5jZScpXG4gIGNvbnN0IHN1YmV4aXQgPSBzdGF0ZS5lbnRlcigncmVmZXJlbmNlJylcbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgIHN0YXRlLnNhZmUoc3RhdGUuYXNzb2NpYXRpb25JZChub2RlKSwge2FmdGVyOiAnXScsIGJlZm9yZTogdmFsdWV9KVxuICApXG4gIHN1YmV4aXQoKVxuICBleGl0KClcbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCddJylcbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtZnJvbS1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSBmb290bm90ZXNcbiAqIGluIG1hcmtkb3duLlxuICpcbiAqIEByZXR1cm5zIHtGcm9tTWFya2Rvd25FeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtZnJvbS1tYXJrZG93bmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1Gb290bm90ZUZyb21NYXJrZG93bigpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnRlcjoge1xuICAgICAgZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nOiBlbnRlckZvb3Rub3RlQ2FsbFN0cmluZyxcbiAgICAgIGdmbUZvb3Rub3RlQ2FsbDogZW50ZXJGb290bm90ZUNhbGwsXG4gICAgICBnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZzogZW50ZXJGb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyxcbiAgICAgIGdmbUZvb3Rub3RlRGVmaW5pdGlvbjogZW50ZXJGb290bm90ZURlZmluaXRpb25cbiAgICB9LFxuICAgIGV4aXQ6IHtcbiAgICAgIGdmbUZvb3Rub3RlQ2FsbFN0cmluZzogZXhpdEZvb3Rub3RlQ2FsbFN0cmluZyxcbiAgICAgIGdmbUZvb3Rub3RlQ2FsbDogZXhpdEZvb3Rub3RlQ2FsbCxcbiAgICAgIGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOiBleGl0Rm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcsXG4gICAgICBnZm1Gb290bm90ZURlZmluaXRpb246IGV4aXRGb290bm90ZURlZmluaXRpb25cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSBmb290bm90ZXNcbiAqIGluIG1hcmtkb3duLlxuICpcbiAqIEBwYXJhbSB7VG9NYXJrZG93bk9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge1RvTWFya2Rvd25FeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtdG8tbWFya2Rvd25gLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtRm9vdG5vdGVUb01hcmtkb3duKG9wdGlvbnMpIHtcbiAgLy8gVG8gZG86IG5leHQgbWFqb3I6IGNoYW5nZSBkZWZhdWx0LlxuICBsZXQgZmlyc3RMaW5lQmxhbmsgPSBmYWxzZVxuXG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZmlyc3RMaW5lQmxhbmspIHtcbiAgICBmaXJzdExpbmVCbGFuayA9IHRydWVcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaGFuZGxlcnM6IHtmb290bm90ZURlZmluaXRpb24sIGZvb3Rub3RlUmVmZXJlbmNlfSxcbiAgICAvLyBUaGlzIGlzIG9uIGJ5IGRlZmF1bHQgYWxyZWFkeS5cbiAgICB1bnNhZmU6IFt7Y2hhcmFjdGVyOiAnWycsIGluQ29uc3RydWN0OiBbJ2xhYmVsJywgJ3BocmFzaW5nJywgJ3JlZmVyZW5jZSddfV1cbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7VG9NYXJrZG93bkhhbmRsZX1cbiAgICogQHBhcmFtIHtGb290bm90ZURlZmluaXRpb259IG5vZGVcbiAgICovXG4gIGZ1bmN0aW9uIGZvb3Rub3RlRGVmaW5pdGlvbihub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICAgIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gICAgbGV0IHZhbHVlID0gdHJhY2tlci5tb3ZlKCdbXicpXG4gICAgY29uc3QgZXhpdCA9IHN0YXRlLmVudGVyKCdmb290bm90ZURlZmluaXRpb24nKVxuICAgIGNvbnN0IHN1YmV4aXQgPSBzdGF0ZS5lbnRlcignbGFiZWwnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUoc3RhdGUuYXNzb2NpYXRpb25JZChub2RlKSwge2JlZm9yZTogdmFsdWUsIGFmdGVyOiAnXSd9KVxuICAgIClcbiAgICBzdWJleGl0KClcblxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnXTonKVxuXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICB0cmFja2VyLnNoaWZ0KDQpXG5cbiAgICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgICAgKGZpcnN0TGluZUJsYW5rID8gJ1xcbicgOiAnICcpICtcbiAgICAgICAgICBzdGF0ZS5pbmRlbnRMaW5lcyhcbiAgICAgICAgICAgIHN0YXRlLmNvbnRhaW5lckZsb3cobm9kZSwgdHJhY2tlci5jdXJyZW50KCkpLFxuICAgICAgICAgICAgZmlyc3RMaW5lQmxhbmsgPyBtYXBBbGwgOiBtYXBFeGNlcHRGaXJzdFxuICAgICAgICAgIClcbiAgICAgIClcbiAgICB9XG5cbiAgICBleGl0KClcblxuICAgIHJldHVybiB2YWx1ZVxuICB9XG59XG5cbi8qKiBAdHlwZSB7TWFwfSAqL1xuZnVuY3Rpb24gbWFwRXhjZXB0Rmlyc3QobGluZSwgaW5kZXgsIGJsYW5rKSB7XG4gIHJldHVybiBpbmRleCA9PT0gMCA/IGxpbmUgOiBtYXBBbGwobGluZSwgaW5kZXgsIGJsYW5rKVxufVxuXG4vKiogQHR5cGUge01hcH0gKi9cbmZ1bmN0aW9uIG1hcEFsbChsaW5lLCBpbmRleCwgYmxhbmspIHtcbiAgcmV0dXJuIChibGFuayA/ICcnIDogJyAgICAnKSArIGxpbmVcbn1cbiIsICIvLyBOb3RlOiBleHRyYSB0eXBlcyBleHBvcnRlZCBmcm9tIGBpbmRleC5kLnRzYC5cbmV4cG9ydCB7Z2ZtRm9vdG5vdGVGcm9tTWFya2Rvd24sIGdmbUZvb3Rub3RlVG9NYXJrZG93bn0gZnJvbSAnLi9saWIvaW5kZXguanMnXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkRlbGV0ZX0gRGVsZXRlXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuQ29tcGlsZUNvbnRleHR9IENvbXBpbGVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5FeHRlbnNpb259IEZyb21NYXJrZG93bkV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuSGFuZGxlfSBGcm9tTWFya2Rvd25IYW5kbGVcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLW1hcmtkb3duJykuQ29uc3RydWN0TmFtZX0gQ29uc3RydWN0TmFtZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLkhhbmRsZX0gVG9NYXJrZG93bkhhbmRsZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLk9wdGlvbnN9IFRvTWFya2Rvd25FeHRlbnNpb25cbiAqL1xuXG4vKipcbiAqIExpc3Qgb2YgY29uc3RydWN0cyB0aGF0IG9jY3VyIGluIHBocmFzaW5nIChwYXJhZ3JhcGhzLCBoZWFkaW5ncyksIGJ1dCBjYW5ub3RcbiAqIGNvbnRhaW4gc3RyaWtldGhyb3VnaC5cbiAqIFNvIHRoZXkgc29ydCBvZiBjYW5jZWwgZWFjaCBvdGhlciBvdXQuXG4gKiBOb3RlOiBjb3VsZCB1c2UgYSBiZXR0ZXIgbmFtZS5cbiAqXG4gKiBOb3RlOiBrZWVwIGluIHN5bmMgd2l0aDogPGh0dHBzOi8vZ2l0aHViLmNvbS9zeW50YXgtdHJlZS9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2Jsb2IvOGNlOGRiZi9saWIvdW5zYWZlLmpzI0wxND5cbiAqXG4gKiBAdHlwZSB7QXJyYXk8Q29uc3RydWN0TmFtZT59XG4gKi9cbmNvbnN0IGNvbnN0cnVjdHNXaXRob3V0U3RyaWtldGhyb3VnaCA9IFtcbiAgJ2F1dG9saW5rJyxcbiAgJ2Rlc3RpbmF0aW9uTGl0ZXJhbCcsXG4gICdkZXN0aW5hdGlvblJhdycsXG4gICdyZWZlcmVuY2UnLFxuICAndGl0bGVRdW90ZScsXG4gICd0aXRsZUFwb3N0cm9waGUnXG5dXG5cbmhhbmRsZURlbGV0ZS5wZWVrID0gcGVla0RlbGV0ZVxuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLWZyb20tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk1cbiAqIHN0cmlrZXRocm91Z2ggaW4gbWFya2Rvd24uXG4gKlxuICogQHJldHVybnMge0Zyb21NYXJrZG93bkV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIHN0cmlrZXRocm91Z2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1TdHJpa2V0aHJvdWdoRnJvbU1hcmtkb3duKCkge1xuICByZXR1cm4ge1xuICAgIGNhbkNvbnRhaW5Fb2xzOiBbJ2RlbGV0ZSddLFxuICAgIGVudGVyOiB7c3RyaWtldGhyb3VnaDogZW50ZXJTdHJpa2V0aHJvdWdofSxcbiAgICBleGl0OiB7c3RyaWtldGhyb3VnaDogZXhpdFN0cmlrZXRocm91Z2h9XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTVxuICogc3RyaWtldGhyb3VnaCBpbiBtYXJrZG93bi5cbiAqXG4gKiBAcmV0dXJucyB7VG9NYXJrZG93bkV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSBzdHJpa2V0aHJvdWdoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtU3RyaWtldGhyb3VnaFRvTWFya2Rvd24oKSB7XG4gIHJldHVybiB7XG4gICAgdW5zYWZlOiBbXG4gICAgICB7XG4gICAgICAgIGNoYXJhY3RlcjogJ34nLFxuICAgICAgICBpbkNvbnN0cnVjdDogJ3BocmFzaW5nJyxcbiAgICAgICAgbm90SW5Db25zdHJ1Y3Q6IGNvbnN0cnVjdHNXaXRob3V0U3RyaWtldGhyb3VnaFxuICAgICAgfVxuICAgIF0sXG4gICAgaGFuZGxlcnM6IHtkZWxldGU6IGhhbmRsZURlbGV0ZX1cbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGVudGVyU3RyaWtldGhyb3VnaCh0b2tlbikge1xuICB0aGlzLmVudGVyKHt0eXBlOiAnZGVsZXRlJywgY2hpbGRyZW46IFtdfSwgdG9rZW4pXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZXhpdFN0cmlrZXRocm91Z2godG9rZW4pIHtcbiAgdGhpcy5leGl0KHRva2VuKVxufVxuXG4vKipcbiAqIEB0eXBlIHtUb01hcmtkb3duSGFuZGxlfVxuICogQHBhcmFtIHtEZWxldGV9IG5vZGVcbiAqL1xuZnVuY3Rpb24gaGFuZGxlRGVsZXRlKG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignc3RyaWtldGhyb3VnaCcpXG4gIGxldCB2YWx1ZSA9IHRyYWNrZXIubW92ZSgnfn4nKVxuICB2YWx1ZSArPSBzdGF0ZS5jb250YWluZXJQaHJhc2luZyhub2RlLCB7XG4gICAgLi4udHJhY2tlci5jdXJyZW50KCksXG4gICAgYmVmb3JlOiB2YWx1ZSxcbiAgICBhZnRlcjogJ34nXG4gIH0pXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnfn4nKVxuICBleGl0KClcbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKiBAdHlwZSB7VG9NYXJrZG93bkhhbmRsZX0gKi9cbmZ1bmN0aW9uIHBlZWtEZWxldGUoKSB7XG4gIHJldHVybiAnfidcbn1cbiIsICIvLyBOb3RlOiBleHRyYSB0eXBlcyBpbiBgaW5kZXguZC50c2AuXG5leHBvcnQge1xuICBnZm1TdHJpa2V0aHJvdWdoRnJvbU1hcmtkb3duLFxuICBnZm1TdHJpa2V0aHJvdWdoVG9NYXJrZG93blxufSBmcm9tICcuL2xpYi9pbmRleC5qcydcbiIsICIvLyBUbyBkbzogbmV4dCBtYWpvcjogcmVtb3ZlLlxuLyoqXG4gKiBAdHlwZWRlZiB7T3B0aW9uc30gTWFya2Rvd25UYWJsZU9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGlnbkRlbGltaXRlcnM9dHJ1ZV1cbiAqICAgV2hldGhlciB0byBhbGlnbiB0aGUgZGVsaW1pdGVycyAoZGVmYXVsdDogYHRydWVgKTtcbiAqICAgdGhleSBhcmUgYWxpZ25lZCBieSBkZWZhdWx0OlxuICpcbiAqICAgYGBgbWFya2Rvd25cbiAqICAgfCBBbHBoYSB8IEIgICAgIHxcbiAqICAgfCAtLS0tLSB8IC0tLS0tIHxcbiAqICAgfCBDICAgICB8IERlbHRhIHxcbiAqICAgYGBgXG4gKlxuICogICBQYXNzIGBmYWxzZWAgdG8gbWFrZSB0aGVtIHN0YWdnZXJlZDpcbiAqXG4gKiAgIGBgYG1hcmtkb3duXG4gKiAgIHwgQWxwaGEgfCBCIHxcbiAqICAgfCAtIHwgLSB8XG4gKiAgIHwgQyB8IERlbHRhIHxcbiAqICAgYGBgXG4gKiBAcHJvcGVydHkge1JlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbYWxpZ25dXG4gKiAgIEhvdyB0byBhbGlnbiBjb2x1bW5zIChkZWZhdWx0OiBgJydgKTtcbiAqICAgb25lIHN0eWxlIGZvciBhbGwgY29sdW1ucyBvciBzdHlsZXMgZm9yIHRoZWlyIHJlc3BlY3RpdmUgY29sdW1ucztcbiAqICAgZWFjaCBzdHlsZSBpcyBlaXRoZXIgYCdsJ2AgKGxlZnQpLCBgJ3InYCAocmlnaHQpLCBvciBgJ2MnYCAoY2VudGVyKTtcbiAqICAgb3RoZXIgdmFsdWVzIGFyZSB0cmVhdGVkIGFzIGAnJ2AsIHdoaWNoIGRvZXNuXHUyMDE5dCBwbGFjZSB0aGUgY29sb24gaW4gdGhlXG4gKiAgIGFsaWdubWVudCByb3cgYnV0IGRvZXMgYWxpZ24gbGVmdDtcbiAqICAgKm9ubHkgdGhlIGxvd2VyY2FzZWQgZmlyc3QgY2hhcmFjdGVyIGlzIHVzZWQsIHNvIGBSaWdodGAgaXMgZmluZS4qXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbZGVsaW1pdGVyRW5kPXRydWVdXG4gKiAgIFdoZXRoZXIgdG8gZW5kIGVhY2ggcm93IHdpdGggdGhlIGRlbGltaXRlciAoZGVmYXVsdDogYHRydWVgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBwbGVhc2UgZG9uXHUyMDE5dCB1c2UgdGhpczogaXQgY291bGQgY3JlYXRlIGZyYWdpbGUgc3RydWN0dXJlc1xuICogICA+IHRoYXQgYXJlblx1MjAxOXQgdW5kZXJzdGFuZGFibGUgdG8gc29tZSBtYXJrZG93biBwYXJzZXJzLlxuICpcbiAqICAgV2hlbiBgdHJ1ZWAsIHRoZXJlIGFyZSBlbmRpbmcgZGVsaW1pdGVyczpcbiAqXG4gKiAgIGBgYG1hcmtkb3duXG4gKiAgIHwgQWxwaGEgfCBCICAgICB8XG4gKiAgIHwgLS0tLS0gfCAtLS0tLSB8XG4gKiAgIHwgQyAgICAgfCBEZWx0YSB8XG4gKiAgIGBgYFxuICpcbiAqICAgV2hlbiBgZmFsc2VgLCB0aGVyZSBhcmUgbm8gZW5kaW5nIGRlbGltaXRlcnM6XG4gKlxuICogICBgYGBtYXJrZG93blxuICogICB8IEFscGhhIHwgQlxuICogICB8IC0tLS0tIHwgLS0tLS1cbiAqICAgfCBDICAgICB8IERlbHRhXG4gKiAgIGBgYFxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2RlbGltaXRlclN0YXJ0PXRydWVdXG4gKiAgIFdoZXRoZXIgdG8gYmVnaW4gZWFjaCByb3cgd2l0aCB0aGUgZGVsaW1pdGVyIChkZWZhdWx0OiBgdHJ1ZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHBsZWFzZSBkb25cdTIwMTl0IHVzZSB0aGlzOiBpdCBjb3VsZCBjcmVhdGUgZnJhZ2lsZSBzdHJ1Y3R1cmVzXG4gKiAgID4gdGhhdCBhcmVuXHUyMDE5dCB1bmRlcnN0YW5kYWJsZSB0byBzb21lIG1hcmtkb3duIHBhcnNlcnMuXG4gKlxuICogICBXaGVuIGB0cnVlYCwgdGhlcmUgYXJlIHN0YXJ0aW5nIGRlbGltaXRlcnM6XG4gKlxuICogICBgYGBtYXJrZG93blxuICogICB8IEFscGhhIHwgQiAgICAgfFxuICogICB8IC0tLS0tIHwgLS0tLS0gfFxuICogICB8IEMgICAgIHwgRGVsdGEgfFxuICogICBgYGBcbiAqXG4gKiAgIFdoZW4gYGZhbHNlYCwgdGhlcmUgYXJlIG5vIHN0YXJ0aW5nIGRlbGltaXRlcnM6XG4gKlxuICogICBgYGBtYXJrZG93blxuICogICBBbHBoYSB8IEIgICAgIHxcbiAqICAgLS0tLS0gfCAtLS0tLSB8XG4gKiAgIEMgICAgIHwgRGVsdGEgfFxuICogICBgYGBcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtwYWRkaW5nPXRydWVdXG4gKiAgIFdoZXRoZXIgdG8gYWRkIGEgc3BhY2Ugb2YgcGFkZGluZyBiZXR3ZWVuIGRlbGltaXRlcnMgYW5kIGNlbGxzXG4gKiAgIChkZWZhdWx0OiBgdHJ1ZWApLlxuICpcbiAqICAgV2hlbiBgdHJ1ZWAsIHRoZXJlIGlzIHBhZGRpbmc6XG4gKlxuICogICBgYGBtYXJrZG93blxuICogICB8IEFscGhhIHwgQiAgICAgfFxuICogICB8IC0tLS0tIHwgLS0tLS0gfFxuICogICB8IEMgICAgIHwgRGVsdGEgfFxuICogICBgYGBcbiAqXG4gKiAgIFdoZW4gYGZhbHNlYCwgdGhlcmUgaXMgbm8gcGFkZGluZzpcbiAqXG4gKiAgIGBgYG1hcmtkb3duXG4gKiAgIHxBbHBoYXxCICAgIHxcbiAqICAgfC0tLS0tfC0tLS0tfFxuICogICB8QyAgICB8RGVsdGF8XG4gKiAgIGBgYFxuICogQHByb3BlcnR5IHsoKHZhbHVlOiBzdHJpbmcpID0+IG51bWJlcikgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3RyaW5nTGVuZ3RoXVxuICogICBGdW5jdGlvbiB0byBkZXRlY3QgdGhlIGxlbmd0aCBvZiB0YWJsZSBjZWxsIGNvbnRlbnQgKG9wdGlvbmFsKTtcbiAqICAgdGhpcyBpcyB1c2VkIHdoZW4gYWxpZ25pbmcgdGhlIGRlbGltaXRlcnMgKGB8YCkgYmV0d2VlbiB0YWJsZSBjZWxscztcbiAqICAgZnVsbC13aWR0aCBjaGFyYWN0ZXJzIGFuZCBlbW9qaSBtZXNzIHVwIGRlbGltaXRlciBhbGlnbm1lbnQgd2hlbiB2aWV3aW5nXG4gKiAgIHRoZSBtYXJrZG93biBzb3VyY2U7XG4gKiAgIHRvIGZpeCB0aGlzLCB5b3UgY2FuIHBhc3MgdGhpcyBmdW5jdGlvbixcbiAqICAgd2hpY2ggcmVjZWl2ZXMgdGhlIGNlbGwgY29udGVudCBhbmQgcmV0dXJucyBpdHMgXHUyMDFDdmlzaWJsZVx1MjAxRCBzaXplO1xuICogICBub3RlIHRoYXQgd2hhdCBpcyBhbmQgaXNuXHUyMDE5dCB2aXNpYmxlIGRlcGVuZHMgb24gd2hlcmUgdGhlIHRleHQgaXMgZGlzcGxheWVkLlxuICpcbiAqICAgV2l0aG91dCBzdWNoIGEgZnVuY3Rpb24sIHRoZSBmb2xsb3dpbmc6XG4gKlxuICogICBgYGBqc1xuICogICBtYXJrZG93blRhYmxlKFtcbiAqICAgICBbJ0FscGhhJywgJ0JyYXZvJ10sXG4gKiAgICAgWydcdTRFMkRcdTY1ODcnLCAnQ2hhcmxpZSddLFxuICogICAgIFsnXHVEODNEXHVEQzY5XHUyMDBEXHUyNzY0XHVGRTBGXHUyMDBEXHVEODNEXHVEQzY5JywgJ0RlbHRhJ11cbiAqICAgXSlcbiAqICAgYGBgXG4gKlxuICogICBZaWVsZHM6XG4gKlxuICogICBgYGBtYXJrZG93blxuICogICB8IEFscGhhIHwgQnJhdm8gfFxuICogICB8IC0gfCAtIHxcbiAqICAgfCBcdTRFMkRcdTY1ODcgfCBDaGFybGllIHxcbiAqICAgfCBcdUQ4M0RcdURDNjlcdTIwMERcdTI3NjRcdUZFMEZcdTIwMERcdUQ4M0RcdURDNjkgfCBEZWx0YSB8XG4gKiAgIGBgYFxuICpcbiAqICAgV2l0aCBbYHN0cmluZy13aWR0aGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvc3RyaW5nLXdpZHRoKTpcbiAqXG4gKiAgIGBgYGpzXG4gKiAgIGltcG9ydCBzdHJpbmdXaWR0aCBmcm9tICdzdHJpbmctd2lkdGgnXG4gKlxuICogICBtYXJrZG93blRhYmxlKFxuICogICAgIFtcbiAqICAgICAgIFsnQWxwaGEnLCAnQnJhdm8nXSxcbiAqICAgICAgIFsnXHU0RTJEXHU2NTg3JywgJ0NoYXJsaWUnXSxcbiAqICAgICAgIFsnXHVEODNEXHVEQzY5XHUyMDBEXHUyNzY0XHVGRTBGXHUyMDBEXHVEODNEXHVEQzY5JywgJ0RlbHRhJ11cbiAqICAgICBdLFxuICogICAgIHtzdHJpbmdMZW5ndGg6IHN0cmluZ1dpZHRofVxuICogICApXG4gKiAgIGBgYFxuICpcbiAqICAgWWllbGRzOlxuICpcbiAqICAgYGBgbWFya2Rvd25cbiAqICAgfCBBbHBoYSB8IEJyYXZvICAgfFxuICogICB8IC0tLS0tIHwgLS0tLS0tLSB8XG4gKiAgIHwgXHU0RTJEXHU2NTg3ICB8IENoYXJsaWUgfFxuICogICB8IFx1RDgzRFx1REM2OVx1MjAwRFx1Mjc2NFx1RkUwRlx1MjAwRFx1RDgzRFx1REM2OSAgICB8IERlbHRhICAgfFxuICogICBgYGBcbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBDZWxsIHZhbHVlLlxuICogQHJldHVybnMge251bWJlcn1cbiAqICAgQ2VsbCBzaXplLlxuICovXG5mdW5jdGlvbiBkZWZhdWx0U3RyaW5nTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS5sZW5ndGhcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIG1hcmtkb3duXG4gKiAoW0dGTV0oaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vZ2l0aHViL3dyaXRpbmctb24tZ2l0aHViL3dvcmtpbmctd2l0aC1hZHZhbmNlZC1mb3JtYXR0aW5nL29yZ2FuaXppbmctaW5mb3JtYXRpb24td2l0aC10YWJsZXMpKVxuICogdGFibGUuXG4gKlxuICogQHBhcmFtIHtSZWFkb25seUFycmF5PFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4+fSB0YWJsZVxuICogICBUYWJsZSBkYXRhIChtYXRyaXggb2Ygc3RyaW5ncykuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFJlc3VsdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcmtkb3duVGFibGUodGFibGUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG4gIC8vIFRvIGRvOiBuZXh0IG1ham9yOiBjaGFuZ2UgdG8gc3ByZWFkLlxuICBjb25zdCBhbGlnbiA9IChzZXR0aW5ncy5hbGlnbiB8fCBbXSkuY29uY2F0KClcbiAgY29uc3Qgc3RyaW5nTGVuZ3RoID0gc2V0dGluZ3Muc3RyaW5nTGVuZ3RoIHx8IGRlZmF1bHRTdHJpbmdMZW5ndGhcbiAgLyoqIEB0eXBlIHtBcnJheTxudW1iZXI+fSBDaGFyYWN0ZXIgY29kZXMgYXMgc3ltYm9scyBmb3IgYWxpZ25tZW50IHBlciBjb2x1bW4uICovXG4gIGNvbnN0IGFsaWdubWVudHMgPSBbXVxuICAvKiogQHR5cGUge0FycmF5PEFycmF5PHN0cmluZz4+fSBDZWxscyBwZXIgcm93LiAqL1xuICBjb25zdCBjZWxsTWF0cml4ID0gW11cbiAgLyoqIEB0eXBlIHtBcnJheTxBcnJheTxudW1iZXI+Pn0gU2l6ZXMgb2YgZWFjaCBjZWxsIHBlciByb3cuICovXG4gIGNvbnN0IHNpemVNYXRyaXggPSBbXVxuICAvKiogQHR5cGUge0FycmF5PG51bWJlcj59ICovXG4gIGNvbnN0IGxvbmdlc3RDZWxsQnlDb2x1bW4gPSBbXVxuICBsZXQgbW9zdENlbGxzUGVyUm93ID0gMFxuICBsZXQgcm93SW5kZXggPSAtMVxuXG4gIC8vIFRoaXMgaXMgYSBzdXBlcmZsdW91cyBsb29wIGlmIHdlIGRvblx1MjAxOXQgYWxpZ24gZGVsaW1pdGVycywgYnV0IG90aGVyd2lzZSB3ZVx1MjAxOWRcbiAgLy8gZG8gc3VwZXJmbHVvdXMgd29yayB3aGVuIGFsaWduaW5nLCBzbyBvcHRpbWl6ZSBmb3IgYWxpZ25pbmcuXG4gIHdoaWxlICgrK3Jvd0luZGV4IDwgdGFibGUubGVuZ3RoKSB7XG4gICAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICAgIGNvbnN0IHJvdyA9IFtdXG4gICAgLyoqIEB0eXBlIHtBcnJheTxudW1iZXI+fSAqL1xuICAgIGNvbnN0IHNpemVzID0gW11cbiAgICBsZXQgY29sdW1uSW5kZXggPSAtMVxuXG4gICAgaWYgKHRhYmxlW3Jvd0luZGV4XS5sZW5ndGggPiBtb3N0Q2VsbHNQZXJSb3cpIHtcbiAgICAgIG1vc3RDZWxsc1BlclJvdyA9IHRhYmxlW3Jvd0luZGV4XS5sZW5ndGhcbiAgICB9XG5cbiAgICB3aGlsZSAoKytjb2x1bW5JbmRleCA8IHRhYmxlW3Jvd0luZGV4XS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGNlbGwgPSBzZXJpYWxpemUodGFibGVbcm93SW5kZXhdW2NvbHVtbkluZGV4XSlcblxuICAgICAgaWYgKHNldHRpbmdzLmFsaWduRGVsaW1pdGVycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHN0cmluZ0xlbmd0aChjZWxsKVxuICAgICAgICBzaXplc1tjb2x1bW5JbmRleF0gPSBzaXplXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGxvbmdlc3RDZWxsQnlDb2x1bW5bY29sdW1uSW5kZXhdID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICBzaXplID4gbG9uZ2VzdENlbGxCeUNvbHVtbltjb2x1bW5JbmRleF1cbiAgICAgICAgKSB7XG4gICAgICAgICAgbG9uZ2VzdENlbGxCeUNvbHVtbltjb2x1bW5JbmRleF0gPSBzaXplXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcm93LnB1c2goY2VsbClcbiAgICB9XG5cbiAgICBjZWxsTWF0cml4W3Jvd0luZGV4XSA9IHJvd1xuICAgIHNpemVNYXRyaXhbcm93SW5kZXhdID0gc2l6ZXNcbiAgfVxuXG4gIC8vIEZpZ3VyZSBvdXQgd2hpY2ggYWxpZ25tZW50cyB0byB1c2UuXG4gIGxldCBjb2x1bW5JbmRleCA9IC0xXG5cbiAgaWYgKHR5cGVvZiBhbGlnbiA9PT0gJ29iamVjdCcgJiYgJ2xlbmd0aCcgaW4gYWxpZ24pIHtcbiAgICB3aGlsZSAoKytjb2x1bW5JbmRleCA8IG1vc3RDZWxsc1BlclJvdykge1xuICAgICAgYWxpZ25tZW50c1tjb2x1bW5JbmRleF0gPSB0b0FsaWdubWVudChhbGlnbltjb2x1bW5JbmRleF0pXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNvZGUgPSB0b0FsaWdubWVudChhbGlnbilcblxuICAgIHdoaWxlICgrK2NvbHVtbkluZGV4IDwgbW9zdENlbGxzUGVyUm93KSB7XG4gICAgICBhbGlnbm1lbnRzW2NvbHVtbkluZGV4XSA9IGNvZGVcbiAgICB9XG4gIH1cblxuICAvLyBJbmplY3QgdGhlIGFsaWdubWVudCByb3cuXG4gIGNvbHVtbkluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCByb3cgPSBbXVxuICAvKiogQHR5cGUge0FycmF5PG51bWJlcj59ICovXG4gIGNvbnN0IHNpemVzID0gW11cblxuICB3aGlsZSAoKytjb2x1bW5JbmRleCA8IG1vc3RDZWxsc1BlclJvdykge1xuICAgIGNvbnN0IGNvZGUgPSBhbGlnbm1lbnRzW2NvbHVtbkluZGV4XVxuICAgIGxldCBiZWZvcmUgPSAnJ1xuICAgIGxldCBhZnRlciA9ICcnXG5cbiAgICBpZiAoY29kZSA9PT0gOTkgLyogYGNgICovKSB7XG4gICAgICBiZWZvcmUgPSAnOidcbiAgICAgIGFmdGVyID0gJzonXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSAxMDggLyogYGxgICovKSB7XG4gICAgICBiZWZvcmUgPSAnOidcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDExNCAvKiBgcmAgKi8pIHtcbiAgICAgIGFmdGVyID0gJzonXG4gICAgfVxuXG4gICAgLy8gVGhlcmUgKm11c3QqIGJlIGF0IGxlYXN0IG9uZSBoeXBoZW4tbWludXMgaW4gZWFjaCBhbGlnbm1lbnQgY2VsbC5cbiAgICBsZXQgc2l6ZSA9XG4gICAgICBzZXR0aW5ncy5hbGlnbkRlbGltaXRlcnMgPT09IGZhbHNlXG4gICAgICAgID8gMVxuICAgICAgICA6IE1hdGgubWF4KFxuICAgICAgICAgICAgMSxcbiAgICAgICAgICAgIGxvbmdlc3RDZWxsQnlDb2x1bW5bY29sdW1uSW5kZXhdIC0gYmVmb3JlLmxlbmd0aCAtIGFmdGVyLmxlbmd0aFxuICAgICAgICAgIClcblxuICAgIGNvbnN0IGNlbGwgPSBiZWZvcmUgKyAnLScucmVwZWF0KHNpemUpICsgYWZ0ZXJcblxuICAgIGlmIChzZXR0aW5ncy5hbGlnbkRlbGltaXRlcnMgIT09IGZhbHNlKSB7XG4gICAgICBzaXplID0gYmVmb3JlLmxlbmd0aCArIHNpemUgKyBhZnRlci5sZW5ndGhcblxuICAgICAgaWYgKHNpemUgPiBsb25nZXN0Q2VsbEJ5Q29sdW1uW2NvbHVtbkluZGV4XSkge1xuICAgICAgICBsb25nZXN0Q2VsbEJ5Q29sdW1uW2NvbHVtbkluZGV4XSA9IHNpemVcbiAgICAgIH1cblxuICAgICAgc2l6ZXNbY29sdW1uSW5kZXhdID0gc2l6ZVxuICAgIH1cblxuICAgIHJvd1tjb2x1bW5JbmRleF0gPSBjZWxsXG4gIH1cblxuICAvLyBJbmplY3QgdGhlIGFsaWdubWVudCByb3cuXG4gIGNlbGxNYXRyaXguc3BsaWNlKDEsIDAsIHJvdylcbiAgc2l6ZU1hdHJpeC5zcGxpY2UoMSwgMCwgc2l6ZXMpXG5cbiAgcm93SW5kZXggPSAtMVxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IGxpbmVzID0gW11cblxuICB3aGlsZSAoKytyb3dJbmRleCA8IGNlbGxNYXRyaXgubGVuZ3RoKSB7XG4gICAgY29uc3Qgcm93ID0gY2VsbE1hdHJpeFtyb3dJbmRleF1cbiAgICBjb25zdCBzaXplcyA9IHNpemVNYXRyaXhbcm93SW5kZXhdXG4gICAgY29sdW1uSW5kZXggPSAtMVxuICAgIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgICBjb25zdCBsaW5lID0gW11cblxuICAgIHdoaWxlICgrK2NvbHVtbkluZGV4IDwgbW9zdENlbGxzUGVyUm93KSB7XG4gICAgICBjb25zdCBjZWxsID0gcm93W2NvbHVtbkluZGV4XSB8fCAnJ1xuICAgICAgbGV0IGJlZm9yZSA9ICcnXG4gICAgICBsZXQgYWZ0ZXIgPSAnJ1xuXG4gICAgICBpZiAoc2V0dGluZ3MuYWxpZ25EZWxpbWl0ZXJzICE9PSBmYWxzZSkge1xuICAgICAgICBjb25zdCBzaXplID1cbiAgICAgICAgICBsb25nZXN0Q2VsbEJ5Q29sdW1uW2NvbHVtbkluZGV4XSAtIChzaXplc1tjb2x1bW5JbmRleF0gfHwgMClcbiAgICAgICAgY29uc3QgY29kZSA9IGFsaWdubWVudHNbY29sdW1uSW5kZXhdXG5cbiAgICAgICAgaWYgKGNvZGUgPT09IDExNCAvKiBgcmAgKi8pIHtcbiAgICAgICAgICBiZWZvcmUgPSAnICcucmVwZWF0KHNpemUpXG4gICAgICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gOTkgLyogYGNgICovKSB7XG4gICAgICAgICAgaWYgKHNpemUgJSAyKSB7XG4gICAgICAgICAgICBiZWZvcmUgPSAnICcucmVwZWF0KHNpemUgLyAyICsgMC41KVxuICAgICAgICAgICAgYWZ0ZXIgPSAnICcucmVwZWF0KHNpemUgLyAyIC0gMC41KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBiZWZvcmUgPSAnICcucmVwZWF0KHNpemUgLyAyKVxuICAgICAgICAgICAgYWZ0ZXIgPSBiZWZvcmVcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWZ0ZXIgPSAnICcucmVwZWF0KHNpemUpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNldHRpbmdzLmRlbGltaXRlclN0YXJ0ICE9PSBmYWxzZSAmJiAhY29sdW1uSW5kZXgpIHtcbiAgICAgICAgbGluZS5wdXNoKCd8JylcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBzZXR0aW5ncy5wYWRkaW5nICE9PSBmYWxzZSAmJlxuICAgICAgICAvLyBEb25cdTIwMTl0IGFkZCB0aGUgb3BlbmluZyBzcGFjZSBpZiB3ZVx1MjAxOXJlIG5vdCBhbGlnbmluZyBhbmQgdGhlIGNlbGwgaXNcbiAgICAgICAgLy8gZW1wdHk6IHRoZXJlIHdpbGwgYmUgYSBjbG9zaW5nIHNwYWNlLlxuICAgICAgICAhKHNldHRpbmdzLmFsaWduRGVsaW1pdGVycyA9PT0gZmFsc2UgJiYgY2VsbCA9PT0gJycpICYmXG4gICAgICAgIChzZXR0aW5ncy5kZWxpbWl0ZXJTdGFydCAhPT0gZmFsc2UgfHwgY29sdW1uSW5kZXgpXG4gICAgICApIHtcbiAgICAgICAgbGluZS5wdXNoKCcgJylcbiAgICAgIH1cblxuICAgICAgaWYgKHNldHRpbmdzLmFsaWduRGVsaW1pdGVycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgbGluZS5wdXNoKGJlZm9yZSlcbiAgICAgIH1cblxuICAgICAgbGluZS5wdXNoKGNlbGwpXG5cbiAgICAgIGlmIChzZXR0aW5ncy5hbGlnbkRlbGltaXRlcnMgIT09IGZhbHNlKSB7XG4gICAgICAgIGxpbmUucHVzaChhZnRlcilcbiAgICAgIH1cblxuICAgICAgaWYgKHNldHRpbmdzLnBhZGRpbmcgIT09IGZhbHNlKSB7XG4gICAgICAgIGxpbmUucHVzaCgnICcpXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgc2V0dGluZ3MuZGVsaW1pdGVyRW5kICE9PSBmYWxzZSB8fFxuICAgICAgICBjb2x1bW5JbmRleCAhPT0gbW9zdENlbGxzUGVyUm93IC0gMVxuICAgICAgKSB7XG4gICAgICAgIGxpbmUucHVzaCgnfCcpXG4gICAgICB9XG4gICAgfVxuXG4gICAgbGluZXMucHVzaChcbiAgICAgIHNldHRpbmdzLmRlbGltaXRlckVuZCA9PT0gZmFsc2VcbiAgICAgICAgPyBsaW5lLmpvaW4oJycpLnJlcGxhY2UoLyArJC8sICcnKVxuICAgICAgICA6IGxpbmUuam9pbignJylcbiAgICApXG4gIH1cblxuICByZXR1cm4gbGluZXMuam9pbignXFxuJylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFt2YWx1ZV1cbiAqICAgVmFsdWUgdG8gc2VyaWFsaXplLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgUmVzdWx0LlxuICovXG5mdW5jdGlvbiBzZXJpYWxpemUodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWx1ZSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlXG4gKiAgIFZhbHVlLlxuICogQHJldHVybnMge251bWJlcn1cbiAqICAgQWxpZ25tZW50LlxuICovXG5mdW5jdGlvbiB0b0FsaWdubWVudCh2YWx1ZSkge1xuICBjb25zdCBjb2RlID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLmNvZGVQb2ludEF0KDApIDogMFxuXG4gIHJldHVybiBjb2RlID09PSA2NyAvKiBgQ2AgKi8gfHwgY29kZSA9PT0gOTkgLyogYGNgICovXG4gICAgPyA5OSAvKiBgY2AgKi9cbiAgICA6IGNvZGUgPT09IDc2IC8qIGBMYCAqLyB8fCBjb2RlID09PSAxMDggLyogYGxgICovXG4gICAgICA/IDEwOCAvKiBgbGAgKi9cbiAgICAgIDogY29kZSA9PT0gODIgLyogYFJgICovIHx8IGNvZGUgPT09IDExNCAvKiBgcmAgKi9cbiAgICAgICAgPyAxMTQgLyogYHJgICovXG4gICAgICAgIDogMFxufVxuIiwgIi8qKlxuICogQGNhbGxiYWNrIEhhbmRsZXJcbiAqICAgSGFuZGxlIGEgdmFsdWUsIHdpdGggYSBjZXJ0YWluIElEIGZpZWxkIHNldCB0byBhIGNlcnRhaW4gdmFsdWUuXG4gKiAgIFRoZSBJRCBmaWVsZCBpcyBwYXNzZWQgdG8gYHp3aXRjaGAsIGFuZCBpdFx1MjAxOXMgdmFsdWUgaXMgdGhpcyBmdW5jdGlvblx1MjAxOXNcbiAqICAgcGxhY2Ugb24gdGhlIGBoYW5kbGVyc2AgcmVjb3JkLlxuICogQHBhcmFtIHsuLi5hbnl9IHBhcmFtZXRlcnNcbiAqICAgQXJiaXRyYXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSB6d2l0Y2guXG4gKiAgIFRoZSBmaXJzdCB3aWxsIGJlIGFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYSBjZXJ0YWluIHZhbHVlLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgVW5rbm93bkhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIGhhdmUgYSBjZXJ0YWluIElEIGZpZWxkLCBidXQgaXRcdTIwMTlzIHNldCB0byBhIHZhbHVlXG4gKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiAgIEFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYW4gdW5rbm93biB2YWx1ZS5cbiAqIEBwYXJhbSB7Li4uYW55fSByZXN0XG4gKiAgIEFyYml0cmFyeSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgendpdGNoLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgSW52YWxpZEhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIG5vdCBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgQW55IHVua25vd24gdmFsdWUuXG4gKiBAcGFyYW0gey4uLmFueX0gcmVzdFxuICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAqIEByZXR1cm5zIHt2b2lkfG51bGx8dW5kZWZpbmVkfG5ldmVyfVxuICogICBUaGlzIHNob3VsZCBjcmFzaCBvciByZXR1cm4gbm90aGluZy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gKHJlcXVpcmVkKS5cbiAqIEBwcm9wZXJ0eSB7SW52YWxpZH0gW2ludmFsaWRdXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciBpbnZhbGlkIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7VW5rbm93bn0gW3Vua25vd25dXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciB1bmtub3duIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IFtoYW5kbGVyc11cbiAqICAgSGFuZGxlcnMgdG8gdXNlLlxuICovXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogSGFuZGxlIHZhbHVlcyBiYXNlZCBvbiBhIGZpZWxkLlxuICpcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiAgIEZpZWxkIHRvIHN3aXRjaCBvbi5cbiAqIEBwYXJhbSB7T3B0aW9uczxJbnZhbGlkLCBVbmtub3duLCBIYW5kbGVycz59IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChyZXF1aXJlZCkuXG4gKiBAcmV0dXJucyB7e3Vua25vd246IFVua25vd24sIGludmFsaWQ6IEludmFsaWQsIGhhbmRsZXJzOiBIYW5kbGVycywgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPik6IFJldHVyblR5cGU8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPiwgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8VW5rbm93bj4pOiBSZXR1cm5UeXBlPFVua25vd24+fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHp3aXRjaChrZXksIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBvbmUgdmFsdWUuXG4gICAqXG4gICAqIEJhc2VkIG9uIHRoZSBib3VuZCBga2V5YCwgYSByZXNwZWN0aXZlIGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQuXG4gICAqIElmIGB2YWx1ZWAgaXMgbm90IGFuIG9iamVjdCwgb3IgZG9lc25cdTIwMTl0IGhhdmUgYSBga2V5YCBwcm9wZXJ0eSwgdGhlIHNwZWNpYWxcbiAgICogXHUyMDFDaW52YWxpZFx1MjAxRCBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkLlxuICAgKiBJZiBgdmFsdWVgIGhhcyBhbiB1bmtub3duIGBrZXlgLCB0aGUgc3BlY2lhbCBcdTIwMUN1bmtub3duXHUyMDFEIGhhbmRsZXIgd2lsbCBiZVxuICAgKiBjYWxsZWQuXG4gICAqXG4gICAqIEFsbCBhcmd1bWVudHMsIGFuZCB0aGUgY29udGV4dCBvYmplY3QsIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgaGFuZGxlcixcbiAgICogYW5kIGl0XHUyMDE5cyByZXN1bHQgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEB0aGlzIHt1bmtub3dufVxuICAgKiAgIEFueSBjb250ZXh0IG9iamVjdC5cbiAgICogQHBhcmFtIHt1bmtub3dufSBbdmFsdWVdXG4gICAqICAgQW55IHZhbHVlLlxuICAgKiBAcGFyYW0gey4uLnVua25vd259IHBhcmFtZXRlcnNcbiAgICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAgICogQHByb3BlcnR5IHtIYW5kbGVyfSBpbnZhbGlkXG4gICAqICAgSGFuZGxlIGZvciB2YWx1ZXMgdGhhdCBkbyBub3QgaGF2ZSBhIGNlcnRhaW4gSUQgZmllbGQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcn0gdW5rbm93blxuICAgKiAgIEhhbmRsZSB2YWx1ZXMgdGhhdCBkbyBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZCwgYnV0IGl0XHUyMDE5cyBzZXQgdG8gYSB2YWx1ZVxuICAgKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IGhhbmRsZXJzXG4gICAqICAgUmVjb3JkIG9mIGhhbmRsZXJzLlxuICAgKiBAcmV0dXJucyB7dW5rbm93bn1cbiAgICogICBBbnl0aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIG9uZSh2YWx1ZSwgLi4ucGFyYW1ldGVycykge1xuICAgIC8qKiBAdHlwZSB7SGFuZGxlcnx1bmRlZmluZWR9ICovXG4gICAgbGV0IGZuID0gb25lLmludmFsaWRcbiAgICBjb25zdCBoYW5kbGVycyA9IG9uZS5oYW5kbGVyc1xuXG4gICAgaWYgKHZhbHVlICYmIG93bi5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGNvbnN0IGlkID0gU3RyaW5nKHZhbHVlW2tleV0pXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGZuID0gb3duLmNhbGwoaGFuZGxlcnMsIGlkKSA/IGhhbmRsZXJzW2lkXSA6IG9uZS51bmtub3duXG4gICAgfVxuXG4gICAgaWYgKGZuKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCB2YWx1ZSwgLi4ucGFyYW1ldGVycylcbiAgICB9XG4gIH1cblxuICBvbmUuaGFuZGxlcnMgPSBzZXR0aW5ncy5oYW5kbGVycyB8fCB7fVxuICBvbmUuaW52YWxpZCA9IHNldHRpbmdzLmludmFsaWRcbiAgb25lLnVua25vd24gPSBzZXR0aW5ncy51bmtub3duXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbWF0Y2hlcyFcbiAgcmV0dXJuIG9uZVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7T3B0aW9ucywgU3RhdGV9IGZyb20gJy4vdHlwZXMuanMnXG4gKi9cblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBiYXNlXG4gKiBAcGFyYW0ge09wdGlvbnN9IGV4dGVuc2lvblxuICogQHJldHVybnMge1N0YXRlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlKGJhc2UsIGV4dGVuc2lvbikge1xuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge2tleW9mIE9wdGlvbnN9ICovXG4gIGxldCBrZXlcblxuICAvLyBGaXJzdCBkbyBzdWJleHRlbnNpb25zLlxuICBpZiAoZXh0ZW5zaW9uLmV4dGVuc2lvbnMpIHtcbiAgICB3aGlsZSAoKytpbmRleCA8IGV4dGVuc2lvbi5leHRlbnNpb25zLmxlbmd0aCkge1xuICAgICAgY29uZmlndXJlKGJhc2UsIGV4dGVuc2lvbi5leHRlbnNpb25zW2luZGV4XSlcbiAgICB9XG4gIH1cblxuICBmb3IgKGtleSBpbiBleHRlbnNpb24pIHtcbiAgICBpZiAob3duLmNhbGwoZXh0ZW5zaW9uLCBrZXkpKSB7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlICdleHRlbnNpb25zJzoge1xuICAgICAgICAgIC8vIEVtcHR5LlxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cblxuICAgICAgICAvKiBjOCBpZ25vcmUgbmV4dCA0ICovXG4gICAgICAgIGNhc2UgJ3Vuc2FmZSc6IHtcbiAgICAgICAgICBsaXN0KGJhc2Vba2V5XSwgZXh0ZW5zaW9uW2tleV0pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ2pvaW4nOiB7XG4gICAgICAgICAgbGlzdChiYXNlW2tleV0sIGV4dGVuc2lvbltrZXldKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cblxuICAgICAgICBjYXNlICdoYW5kbGVycyc6IHtcbiAgICAgICAgICBtYXAoYmFzZVtrZXldLCBleHRlbnNpb25ba2V5XSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IG1hdGNoZXMuXG4gICAgICAgICAgYmFzZS5vcHRpb25zW2tleV0gPSBleHRlbnNpb25ba2V5XVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJhc2Vcbn1cblxuLyoqXG4gKiBAdGVtcGxhdGUgVFxuICogQHBhcmFtIHtBcnJheTxUPn0gbGVmdFxuICogQHBhcmFtIHtBcnJheTxUPiB8IG51bGwgfCB1bmRlZmluZWR9IHJpZ2h0XG4gKi9cbmZ1bmN0aW9uIGxpc3QobGVmdCwgcmlnaHQpIHtcbiAgaWYgKHJpZ2h0KSB7XG4gICAgbGVmdC5wdXNoKC4uLnJpZ2h0KVxuICB9XG59XG5cbi8qKlxuICogQHRlbXBsYXRlIFRcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgVD59IGxlZnRcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgVD4gfCBudWxsIHwgdW5kZWZpbmVkfSByaWdodFxuICovXG5mdW5jdGlvbiBtYXAobGVmdCwgcmlnaHQpIHtcbiAgaWYgKHJpZ2h0KSB7XG4gICAgT2JqZWN0LmFzc2lnbihsZWZ0LCByaWdodClcbiAgfVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7QmxvY2txdW90ZSwgUGFyZW50c30gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtJbmZvLCBNYXAsIFN0YXRlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICovXG5cbi8qKlxuICogQHBhcmFtIHtCbG9ja3F1b3RlfSBub2RlXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF9cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBibG9ja3F1b3RlKG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignYmxvY2txdW90ZScpXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIHRyYWNrZXIubW92ZSgnPiAnKVxuICB0cmFja2VyLnNoaWZ0KDIpXG4gIGNvbnN0IHZhbHVlID0gc3RhdGUuaW5kZW50TGluZXMoXG4gICAgc3RhdGUuY29udGFpbmVyRmxvdyhub2RlLCB0cmFja2VyLmN1cnJlbnQoKSksXG4gICAgbWFwXG4gIClcbiAgZXhpdCgpXG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKiogQHR5cGUge01hcH0gKi9cbmZ1bmN0aW9uIG1hcChsaW5lLCBfLCBibGFuaykge1xuICByZXR1cm4gJz4nICsgKGJsYW5rID8gJycgOiAnICcpICsgbGluZVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7Q29uc3RydWN0TmFtZSwgVW5zYWZlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICovXG5cbi8qKlxuICogQHBhcmFtIHtBcnJheTxDb25zdHJ1Y3ROYW1lPn0gc3RhY2tcbiAqIEBwYXJhbSB7VW5zYWZlfSBwYXR0ZXJuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdHRlcm5JblNjb3BlKHN0YWNrLCBwYXR0ZXJuKSB7XG4gIHJldHVybiAoXG4gICAgbGlzdEluU2NvcGUoc3RhY2ssIHBhdHRlcm4uaW5Db25zdHJ1Y3QsIHRydWUpICYmXG4gICAgIWxpc3RJblNjb3BlKHN0YWNrLCBwYXR0ZXJuLm5vdEluQ29uc3RydWN0LCBmYWxzZSlcbiAgKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8Q29uc3RydWN0TmFtZT59IHN0YWNrXG4gKiBAcGFyYW0ge1Vuc2FmZVsnaW5Db25zdHJ1Y3QnXX0gbGlzdFxuICogQHBhcmFtIHtib29sZWFufSBub25lXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gbGlzdEluU2NvcGUoc3RhY2ssIGxpc3QsIG5vbmUpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ID09PSAnc3RyaW5nJykge1xuICAgIGxpc3QgPSBbbGlzdF1cbiAgfVxuXG4gIGlmICghbGlzdCB8fCBsaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBub25lXG4gIH1cblxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgbGlzdC5sZW5ndGgpIHtcbiAgICBpZiAoc3RhY2suaW5jbHVkZXMobGlzdFtpbmRleF0pKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7QnJlYWssIFBhcmVudHN9IGZyb20gJ21kYXN0J1xuICogQGltcG9ydCB7SW5mbywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKi9cblxuaW1wb3J0IHtwYXR0ZXJuSW5TY29wZX0gZnJvbSAnLi4vdXRpbC9wYXR0ZXJuLWluLXNjb3BlLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7QnJlYWt9IF9cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gXzFcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXJkQnJlYWsoXywgXzEsIHN0YXRlLCBpbmZvKSB7XG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBzdGF0ZS51bnNhZmUubGVuZ3RoKSB7XG4gICAgLy8gSWYgd2UgY2FuXHUyMDE5dCBwdXQgZW9scyBpbiB0aGlzIGNvbnN0cnVjdCAoc2V0ZXh0IGhlYWRpbmdzLCB0YWJsZXMpLCB1c2UgYVxuICAgIC8vIHNwYWNlIGluc3RlYWQuXG4gICAgaWYgKFxuICAgICAgc3RhdGUudW5zYWZlW2luZGV4XS5jaGFyYWN0ZXIgPT09ICdcXG4nICYmXG4gICAgICBwYXR0ZXJuSW5TY29wZShzdGF0ZS5zdGFjaywgc3RhdGUudW5zYWZlW2luZGV4XSlcbiAgICApIHtcbiAgICAgIHJldHVybiAvWyBcXHRdLy50ZXN0KGluZm8uYmVmb3JlKSA/ICcnIDogJyAnXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICdcXFxcXFxuJ1xufVxuIiwgIi8qKlxuICogR2V0IHRoZSBjb3VudCBvZiB0aGUgbG9uZ2VzdCByZXBlYXRpbmcgc3RyZWFrIG9mIGBzdWJzdHJpbmdgIGluIGB2YWx1ZWAuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIENvbnRlbnQgdG8gc2VhcmNoIGluLlxuICogQHBhcmFtIHtzdHJpbmd9IHN1YnN0cmluZ1xuICogICBTdWJzdHJpbmcgdG8gbG9vayBmb3IsIHR5cGljYWxseSBvbmUgY2hhcmFjdGVyLlxuICogQHJldHVybnMge251bWJlcn1cbiAqICAgQ291bnQgb2YgbW9zdCBmcmVxdWVudCBhZGphY2VudCBgc3Vic3RyaW5nYHMgaW4gYHZhbHVlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvbmdlc3RTdHJlYWsodmFsdWUsIHN1YnN0cmluZykge1xuICBjb25zdCBzb3VyY2UgPSBTdHJpbmcodmFsdWUpXG4gIGxldCBpbmRleCA9IHNvdXJjZS5pbmRleE9mKHN1YnN0cmluZylcbiAgbGV0IGV4cGVjdGVkID0gaW5kZXhcbiAgbGV0IGNvdW50ID0gMFxuICBsZXQgbWF4ID0gMFxuXG4gIGlmICh0eXBlb2Ygc3Vic3RyaW5nICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIHN1YnN0cmluZycpXG4gIH1cblxuICB3aGlsZSAoaW5kZXggIT09IC0xKSB7XG4gICAgaWYgKGluZGV4ID09PSBleHBlY3RlZCkge1xuICAgICAgaWYgKCsrY291bnQgPiBtYXgpIHtcbiAgICAgICAgbWF4ID0gY291bnRcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY291bnQgPSAxXG4gICAgfVxuXG4gICAgZXhwZWN0ZWQgPSBpbmRleCArIHN1YnN0cmluZy5sZW5ndGhcbiAgICBpbmRleCA9IHNvdXJjZS5pbmRleE9mKHN1YnN0cmluZywgZXhwZWN0ZWQpXG4gIH1cblxuICByZXR1cm4gbWF4XG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqIEBpbXBvcnQge0NvZGV9IGZyb20gJ21kYXN0J1xuICovXG5cbi8qKlxuICogQHBhcmFtIHtDb2RlfSBub2RlXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDb2RlQXNJbmRlbnRlZChub2RlLCBzdGF0ZSkge1xuICByZXR1cm4gQm9vbGVhbihcbiAgICBzdGF0ZS5vcHRpb25zLmZlbmNlcyA9PT0gZmFsc2UgJiZcbiAgICAgIG5vZGUudmFsdWUgJiZcbiAgICAgIC8vIElmIHRoZXJlXHUyMDE5cyBubyBpbmZvXHUyMDI2XG4gICAgICAhbm9kZS5sYW5nICYmXG4gICAgICAvLyBBbmQgdGhlcmVcdTIwMTlzIGEgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyXHUyMDI2XG4gICAgICAvW14gXFxyXFxuXS8udGVzdChub2RlLnZhbHVlKSAmJlxuICAgICAgLy8gQW5kIHRoZSB2YWx1ZSBkb2Vzblx1MjAxOXQgc3RhcnQgb3IgZW5kIGluIGEgYmxhbmtcdTIwMjZcbiAgICAgICEvXltcXHQgXSooPzpbXFxyXFxuXXwkKXwoPzpefFtcXHJcXG5dKVtcXHQgXSokLy50ZXN0KG5vZGUudmFsdWUpXG4gIClcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge09wdGlvbnMsIFN0YXRlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICovXG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEByZXR1cm5zIHtFeGNsdWRlPE9wdGlvbnNbJ2ZlbmNlJ10sIG51bGwgfCB1bmRlZmluZWQ+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tGZW5jZShzdGF0ZSkge1xuICBjb25zdCBtYXJrZXIgPSBzdGF0ZS5vcHRpb25zLmZlbmNlIHx8ICdgJ1xuXG4gIGlmIChtYXJrZXIgIT09ICdgJyAmJiBtYXJrZXIgIT09ICd+Jykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYW5ub3Qgc2VyaWFsaXplIGNvZGUgd2l0aCBgJyArXG4gICAgICAgIG1hcmtlciArXG4gICAgICAgICdgIGZvciBgb3B0aW9ucy5mZW5jZWAsIGV4cGVjdGVkIGBgIGAgYGAgb3IgYH5gJ1xuICAgIClcbiAgfVxuXG4gIHJldHVybiBtYXJrZXJcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0luZm8sIE1hcCwgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKiBAaW1wb3J0IHtDb2RlLCBQYXJlbnRzfSBmcm9tICdtZGFzdCdcbiAqL1xuXG5pbXBvcnQge2xvbmdlc3RTdHJlYWt9IGZyb20gJ2xvbmdlc3Qtc3RyZWFrJ1xuaW1wb3J0IHtmb3JtYXRDb2RlQXNJbmRlbnRlZH0gZnJvbSAnLi4vdXRpbC9mb3JtYXQtY29kZS1hcy1pbmRlbnRlZC5qcydcbmltcG9ydCB7Y2hlY2tGZW5jZX0gZnJvbSAnLi4vdXRpbC9jaGVjay1mZW5jZS5qcydcblxuLyoqXG4gKiBAcGFyYW0ge0NvZGV9IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gX1xuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvZGUobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgY29uc3QgbWFya2VyID0gY2hlY2tGZW5jZShzdGF0ZSlcbiAgY29uc3QgcmF3ID0gbm9kZS52YWx1ZSB8fCAnJ1xuICBjb25zdCBzdWZmaXggPSBtYXJrZXIgPT09ICdgJyA/ICdHcmF2ZUFjY2VudCcgOiAnVGlsZGUnXG5cbiAgaWYgKGZvcm1hdENvZGVBc0luZGVudGVkKG5vZGUsIHN0YXRlKSkge1xuICAgIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignY29kZUluZGVudGVkJylcbiAgICBjb25zdCB2YWx1ZSA9IHN0YXRlLmluZGVudExpbmVzKHJhdywgbWFwKVxuICAgIGV4aXQoKVxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgY29uc3QgdHJhY2tlciA9IHN0YXRlLmNyZWF0ZVRyYWNrZXIoaW5mbylcbiAgY29uc3Qgc2VxdWVuY2UgPSBtYXJrZXIucmVwZWF0KE1hdGgubWF4KGxvbmdlc3RTdHJlYWsocmF3LCBtYXJrZXIpICsgMSwgMykpXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignY29kZUZlbmNlZCcpXG4gIGxldCB2YWx1ZSA9IHRyYWNrZXIubW92ZShzZXF1ZW5jZSlcblxuICBpZiAobm9kZS5sYW5nKSB7XG4gICAgY29uc3Qgc3ViZXhpdCA9IHN0YXRlLmVudGVyKGBjb2RlRmVuY2VkTGFuZyR7c3VmZml4fWApXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgICAgc3RhdGUuc2FmZShub2RlLmxhbmcsIHtcbiAgICAgICAgYmVmb3JlOiB2YWx1ZSxcbiAgICAgICAgYWZ0ZXI6ICcgJyxcbiAgICAgICAgZW5jb2RlOiBbJ2AnXSxcbiAgICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICAgIH0pXG4gICAgKVxuICAgIHN1YmV4aXQoKVxuICB9XG5cbiAgaWYgKG5vZGUubGFuZyAmJiBub2RlLm1ldGEpIHtcbiAgICBjb25zdCBzdWJleGl0ID0gc3RhdGUuZW50ZXIoYGNvZGVGZW5jZWRNZXRhJHtzdWZmaXh9YClcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJyAnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS5tZXRhLCB7XG4gICAgICAgIGJlZm9yZTogdmFsdWUsXG4gICAgICAgIGFmdGVyOiAnXFxuJyxcbiAgICAgICAgZW5jb2RlOiBbJ2AnXSxcbiAgICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICAgIH0pXG4gICAgKVxuICAgIHN1YmV4aXQoKVxuICB9XG5cbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCdcXG4nKVxuXG4gIGlmIChyYXcpIHtcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUocmF3ICsgJ1xcbicpXG4gIH1cblxuICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoc2VxdWVuY2UpXG4gIGV4aXQoKVxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqIEB0eXBlIHtNYXB9ICovXG5mdW5jdGlvbiBtYXAobGluZSwgXywgYmxhbmspIHtcbiAgcmV0dXJuIChibGFuayA/ICcnIDogJyAgICAnKSArIGxpbmVcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge09wdGlvbnMsIFN0YXRlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICovXG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEByZXR1cm5zIHtFeGNsdWRlPE9wdGlvbnNbJ3F1b3RlJ10sIG51bGwgfCB1bmRlZmluZWQ+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tRdW90ZShzdGF0ZSkge1xuICBjb25zdCBtYXJrZXIgPSBzdGF0ZS5vcHRpb25zLnF1b3RlIHx8ICdcIidcblxuICBpZiAobWFya2VyICE9PSAnXCInICYmIG1hcmtlciAhPT0gXCInXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ2Fubm90IHNlcmlhbGl6ZSB0aXRsZSB3aXRoIGAnICtcbiAgICAgICAgbWFya2VyICtcbiAgICAgICAgJ2AgZm9yIGBvcHRpb25zLnF1b3RlYCwgZXhwZWN0ZWQgYFwiYCwgb3IgYFxcJ2AnXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG1hcmtlclxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7SW5mbywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKiBAaW1wb3J0IHtEZWZpbml0aW9uLCBQYXJlbnRzfSBmcm9tICdtZGFzdCdcbiAqL1xuXG5pbXBvcnQge2NoZWNrUXVvdGV9IGZyb20gJy4uL3V0aWwvY2hlY2stcXVvdGUuanMnXG5cbi8qKlxuICogQHBhcmFtIHtEZWZpbml0aW9ufSBub2RlXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF9cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbml0aW9uKG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IHF1b3RlID0gY2hlY2tRdW90ZShzdGF0ZSlcbiAgY29uc3Qgc3VmZml4ID0gcXVvdGUgPT09ICdcIicgPyAnUXVvdGUnIDogJ0Fwb3N0cm9waGUnXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignZGVmaW5pdGlvbicpXG4gIGxldCBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ2xhYmVsJylcbiAgY29uc3QgdHJhY2tlciA9IHN0YXRlLmNyZWF0ZVRyYWNrZXIoaW5mbylcbiAgbGV0IHZhbHVlID0gdHJhY2tlci5tb3ZlKCdbJylcbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgIHN0YXRlLnNhZmUoc3RhdGUuYXNzb2NpYXRpb25JZChub2RlKSwge1xuICAgICAgYmVmb3JlOiB2YWx1ZSxcbiAgICAgIGFmdGVyOiAnXScsXG4gICAgICAuLi50cmFja2VyLmN1cnJlbnQoKVxuICAgIH0pXG4gIClcbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCddOiAnKVxuXG4gIHN1YmV4aXQoKVxuXG4gIGlmIChcbiAgICAvLyBJZiB0aGVyZVx1MjAxOXMgbm8gdXJsLCBvclx1MjAyNlxuICAgICFub2RlLnVybCB8fFxuICAgIC8vIElmIHRoZXJlIGFyZSBjb250cm9sIGNoYXJhY3RlcnMgb3Igd2hpdGVzcGFjZS5cbiAgICAvW1xcMC0gXFx1MDA3Rl0vLnRlc3Qobm9kZS51cmwpXG4gICkge1xuICAgIHN1YmV4aXQgPSBzdGF0ZS5lbnRlcignZGVzdGluYXRpb25MaXRlcmFsJylcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJzwnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS51cmwsIHtiZWZvcmU6IHZhbHVlLCBhZnRlcjogJz4nLCAuLi50cmFja2VyLmN1cnJlbnQoKX0pXG4gICAgKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnPicpXG4gIH0gZWxzZSB7XG4gICAgLy8gTm8gd2hpdGVzcGFjZSwgcmF3IGlzIHByZXR0aWVyLlxuICAgIHN1YmV4aXQgPSBzdGF0ZS5lbnRlcignZGVzdGluYXRpb25SYXcnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS51cmwsIHtcbiAgICAgICAgYmVmb3JlOiB2YWx1ZSxcbiAgICAgICAgYWZ0ZXI6IG5vZGUudGl0bGUgPyAnICcgOiAnXFxuJyxcbiAgICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgc3ViZXhpdCgpXG5cbiAgaWYgKG5vZGUudGl0bGUpIHtcbiAgICBzdWJleGl0ID0gc3RhdGUuZW50ZXIoYHRpdGxlJHtzdWZmaXh9YClcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJyAnICsgcXVvdGUpXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKFxuICAgICAgc3RhdGUuc2FmZShub2RlLnRpdGxlLCB7XG4gICAgICAgIGJlZm9yZTogdmFsdWUsXG4gICAgICAgIGFmdGVyOiBxdW90ZSxcbiAgICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICAgIH0pXG4gICAgKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShxdW90ZSlcbiAgICBzdWJleGl0KClcbiAgfVxuXG4gIGV4aXQoKVxuXG4gIHJldHVybiB2YWx1ZVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7T3B0aW9ucywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge0V4Y2x1ZGU8T3B0aW9uc1snZW1waGFzaXMnXSwgbnVsbCB8IHVuZGVmaW5lZD59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0VtcGhhc2lzKHN0YXRlKSB7XG4gIGNvbnN0IG1hcmtlciA9IHN0YXRlLm9wdGlvbnMuZW1waGFzaXMgfHwgJyonXG5cbiAgaWYgKG1hcmtlciAhPT0gJyonICYmIG1hcmtlciAhPT0gJ18nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBzZXJpYWxpemUgZW1waGFzaXMgd2l0aCBgJyArXG4gICAgICAgIG1hcmtlciArXG4gICAgICAgICdgIGZvciBgb3B0aW9ucy5lbXBoYXNpc2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gJ1xuICAgIClcbiAgfVxuXG4gIHJldHVybiBtYXJrZXJcbn1cbiIsICIvKipcbiAqIEVuY29kZSBhIGNvZGUgcG9pbnQgYXMgYSBjaGFyYWN0ZXIgcmVmZXJlbmNlLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiAgIENvZGUgcG9pbnQgdG8gZW5jb2RlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCBjaGFyYWN0ZXIgcmVmZXJlbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlQ2hhcmFjdGVyUmVmZXJlbmNlKGNvZGUpIHtcbiAgcmV0dXJuICcmI3gnICsgY29kZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSArICc7J1xufVxuIiwgIi8qKlxuICogQGltcG9ydCB7Q29kZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuaW1wb3J0IHsgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSwgdW5pY29kZVB1bmN0dWF0aW9uLCB1bmljb2RlV2hpdGVzcGFjZSB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcic7XG4vKipcbiAqIENsYXNzaWZ5IHdoZXRoZXIgYSBjb2RlIHJlcHJlc2VudHMgd2hpdGVzcGFjZSwgcHVuY3R1YXRpb24sIG9yIHNvbWV0aGluZ1xuICogZWxzZS5cbiAqXG4gKiBVc2VkIGZvciBhdHRlbnRpb24gKGVtcGhhc2lzLCBzdHJvbmcpLCB3aG9zZSBzZXF1ZW5jZXMgY2FuIG9wZW4gb3IgY2xvc2VcbiAqIGJhc2VkIG9uIHRoZSBjbGFzcyBvZiBzdXJyb3VuZGluZyBjaGFyYWN0ZXJzLlxuICpcbiAqID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBlb2YgKGBudWxsYCkgaXMgc2VlbiBhcyB3aGl0ZXNwYWNlLlxuICpcbiAqIEBwYXJhbSB7Q29kZX0gY29kZVxuICogICBDb2RlLlxuICogQHJldHVybnMge3R5cGVvZiBjb25zdGFudHMuY2hhcmFjdGVyR3JvdXBXaGl0ZXNwYWNlIHwgdHlwZW9mIGNvbnN0YW50cy5jaGFyYWN0ZXJHcm91cFB1bmN0dWF0aW9uIHwgdW5kZWZpbmVkfVxuICogICBHcm91cC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsYXNzaWZ5Q2hhcmFjdGVyKGNvZGUpIHtcbiAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSB8fCB1bmljb2RlV2hpdGVzcGFjZShjb2RlKSkge1xuICAgIHJldHVybiAxO1xuICB9XG4gIGlmICh1bmljb2RlUHVuY3R1YXRpb24oY29kZSkpIHtcbiAgICByZXR1cm4gMjtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge0VuY29kZVNpZGVzfSBmcm9tICcuLi90eXBlcy5qcydcbiAqL1xuXG5pbXBvcnQge2NsYXNzaWZ5Q2hhcmFjdGVyfSBmcm9tICdtaWNyb21hcmstdXRpbC1jbGFzc2lmeS1jaGFyYWN0ZXInXG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0byBlbmNvZGUgKGFzIGEgY2hhcmFjdGVyIHJlZmVyZW5jZSkgdGhlIGNoYXJhY3RlcnNcbiAqIHN1cnJvdW5kaW5nIGFuIGF0dGVudGlvbiBydW4uXG4gKlxuICogV2hpY2ggY2hhcmFjdGVycyBhcmUgYXJvdW5kIGFuIGF0dGVudGlvbiBydW4gaW5mbHVlbmNlIHdoZXRoZXIgaXQgd29ya3Mgb3JcbiAqIG5vdC5cbiAqXG4gKiBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS9vcmdzL3N5bnRheC10cmVlL2Rpc2N1c3Npb25zLzYwPiBmb3IgbW9yZSBpbmZvLlxuICogU2VlIHRoaXMgbWFya2Rvd24gaW4gYSBwYXJ0aWN1bGFyIHJlbmRlcmVyIHRvIHNlZSB3aGF0IHdvcmtzOlxuICpcbiAqIGBgYG1hcmtkb3duXG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgQSAobGV0dGVyIGluc2lkZSkgfCBCIChwdW5jdHVhdGlvbiBpbnNpZGUpIHwgQyAod2hpdGVzcGFjZSBpbnNpZGUpIHwgRCAobm90aGluZyBpbnNpZGUpIHxcbiAqIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0gfFxuICogfCAxIChsZXR0ZXIgb3V0c2lkZSkgICAgICB8IHgqeSp6ICAgICAgICAgICAgIHwgeCouKnogICAgICAgICAgICAgICAgICB8IHgqICp6ICAgICAgICAgICAgICAgICB8IHgqKnogICAgICAgICAgICAgICB8XG4gKiB8IDIgKHB1bmN0dWF0aW9uIG91dHNpZGUpIHwgLip5Ki4gICAgICAgICAgICAgfCAuKi4qLiAgICAgICAgICAgICAgICAgIHwgLiogKi4gICAgICAgICAgICAgICAgIHwgLioqLiAgICAgICAgICAgICAgIHxcbiAqIHwgMyAod2hpdGVzcGFjZSBvdXRzaWRlKSAgfCB4ICp5KiB6ICAgICAgICAgICB8IHggKi4qIHogICAgICAgICAgICAgICAgfCB4ICogKiB6ICAgICAgICAgICAgICAgfCB4ICoqIHogICAgICAgICAgICAgfFxuICogfCA0IChub3RoaW5nIG91dHNpZGUpICAgICB8ICp4KiAgICAgICAgICAgICAgIHwgKi4qICAgICAgICAgICAgICAgICAgICB8ICogKiAgICAgICAgICAgICAgICAgICB8ICoqICAgICAgICAgICAgICAgICB8XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gb3V0c2lkZVxuICogICBDb2RlIHBvaW50IG9uIHRoZSBvdXRlciBzaWRlIG9mIHRoZSBydW4uXG4gKiBAcGFyYW0ge251bWJlcn0gaW5zaWRlXG4gKiAgIENvZGUgcG9pbnQgb24gdGhlIGlubmVyIHNpZGUgb2YgdGhlIHJ1bi5cbiAqIEBwYXJhbSB7JyonIHwgJ18nfSBtYXJrZXJcbiAqICAgTWFya2VyIG9mIHRoZSBydW4uXG4gKiAgIFVuZGVyc2NvcmVzIGFyZSBoYW5kbGVkIG1vcmUgc3RyaWN0bHkgKHRoZXkgZm9ybSBsZXNzIG9mdGVuKSB0aGFuXG4gKiAgIGFzdGVyaXNrcy5cbiAqIEByZXR1cm5zIHtFbmNvZGVTaWRlc31cbiAqICAgV2hldGhlciB0byBlbmNvZGUgY2hhcmFjdGVycy5cbiAqL1xuLy8gSW1wb3J0YW50OiBwdW5jdHVhdGlvbiBtdXN0IG5ldmVyIGJlIGVuY29kZWQuXG4vLyBQdW5jdHVhdGlvbiBpcyBzb2xlbHkgdXNlZCBieSBtYXJrZG93biBjb25zdHJ1Y3RzLlxuLy8gQW5kIGJ5IGVuY29kaW5nIGl0c2VsZi5cbi8vIEVuY29kaW5nIHRoZW0gd2lsbCBicmVhayBjb25zdHJ1Y3RzIG9yIGRvdWJsZSBlbmNvZGUgdGhpbmdzLlxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZUluZm8ob3V0c2lkZSwgaW5zaWRlLCBtYXJrZXIpIHtcbiAgY29uc3Qgb3V0c2lkZUtpbmQgPSBjbGFzc2lmeUNoYXJhY3RlcihvdXRzaWRlKVxuICBjb25zdCBpbnNpZGVLaW5kID0gY2xhc3NpZnlDaGFyYWN0ZXIoaW5zaWRlKVxuXG4gIC8vIExldHRlciBvdXRzaWRlOlxuICBpZiAob3V0c2lkZUtpbmQgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBpbnNpZGVLaW5kID09PSB1bmRlZmluZWRcbiAgICAgID8gLy8gTGV0dGVyIGluc2lkZTpcbiAgICAgICAgLy8gd2UgaGF2ZSB0byBlbmNvZGUgKmJvdGgqIGxldHRlcnMgZm9yIGBfYCBhcyBpdCBpcyBsb29zZXIuXG4gICAgICAgIC8vIGl0IGFscmVhZHkgZm9ybXMgZm9yIGAqYCAoYW5kIEdGTXMgYH5gKS5cbiAgICAgICAgbWFya2VyID09PSAnXydcbiAgICAgICAgPyB7aW5zaWRlOiB0cnVlLCBvdXRzaWRlOiB0cnVlfVxuICAgICAgICA6IHtpbnNpZGU6IGZhbHNlLCBvdXRzaWRlOiBmYWxzZX1cbiAgICAgIDogaW5zaWRlS2luZCA9PT0gMVxuICAgICAgICA/IC8vIFdoaXRlc3BhY2UgaW5zaWRlOiBlbmNvZGUgYm90aCAobGV0dGVyLCB3aGl0ZXNwYWNlKS5cbiAgICAgICAgICB7aW5zaWRlOiB0cnVlLCBvdXRzaWRlOiB0cnVlfVxuICAgICAgICA6IC8vIFB1bmN0dWF0aW9uIGluc2lkZTogZW5jb2RlIG91dGVyIChsZXR0ZXIpXG4gICAgICAgICAge2luc2lkZTogZmFsc2UsIG91dHNpZGU6IHRydWV9XG4gIH1cblxuICAvLyBXaGl0ZXNwYWNlIG91dHNpZGU6XG4gIGlmIChvdXRzaWRlS2luZCA9PT0gMSkge1xuICAgIHJldHVybiBpbnNpZGVLaW5kID09PSB1bmRlZmluZWRcbiAgICAgID8gLy8gTGV0dGVyIGluc2lkZTogYWxyZWFkeSBmb3Jtcy5cbiAgICAgICAge2luc2lkZTogZmFsc2UsIG91dHNpZGU6IGZhbHNlfVxuICAgICAgOiBpbnNpZGVLaW5kID09PSAxXG4gICAgICAgID8gLy8gV2hpdGVzcGFjZSBpbnNpZGU6IGVuY29kZSBib3RoICh3aGl0ZXNwYWNlKS5cbiAgICAgICAgICB7aW5zaWRlOiB0cnVlLCBvdXRzaWRlOiB0cnVlfVxuICAgICAgICA6IC8vIFB1bmN0dWF0aW9uIGluc2lkZTogYWxyZWFkeSBmb3Jtcy5cbiAgICAgICAgICB7aW5zaWRlOiBmYWxzZSwgb3V0c2lkZTogZmFsc2V9XG4gIH1cblxuICAvLyBQdW5jdHVhdGlvbiBvdXRzaWRlOlxuICByZXR1cm4gaW5zaWRlS2luZCA9PT0gdW5kZWZpbmVkXG4gICAgPyAvLyBMZXR0ZXIgaW5zaWRlOiBhbHJlYWR5IGZvcm1zLlxuICAgICAge2luc2lkZTogZmFsc2UsIG91dHNpZGU6IGZhbHNlfVxuICAgIDogaW5zaWRlS2luZCA9PT0gMVxuICAgICAgPyAvLyBXaGl0ZXNwYWNlIGluc2lkZTogZW5jb2RlIGlubmVyICh3aGl0ZXNwYWNlKS5cbiAgICAgICAge2luc2lkZTogdHJ1ZSwgb3V0c2lkZTogZmFsc2V9XG4gICAgICA6IC8vIFB1bmN0dWF0aW9uIGluc2lkZTogYWxyZWFkeSBmb3Jtcy5cbiAgICAgICAge2luc2lkZTogZmFsc2UsIG91dHNpZGU6IGZhbHNlfVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7SW5mbywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKiBAaW1wb3J0IHtFbXBoYXNpcywgUGFyZW50c30gZnJvbSAnbWRhc3QnXG4gKi9cblxuaW1wb3J0IHtjaGVja0VtcGhhc2lzfSBmcm9tICcuLi91dGlsL2NoZWNrLWVtcGhhc2lzLmpzJ1xuaW1wb3J0IHtlbmNvZGVDaGFyYWN0ZXJSZWZlcmVuY2V9IGZyb20gJy4uL3V0aWwvZW5jb2RlLWNoYXJhY3Rlci1yZWZlcmVuY2UuanMnXG5pbXBvcnQge2VuY29kZUluZm99IGZyb20gJy4uL3V0aWwvZW5jb2RlLWluZm8uanMnXG5cbmVtcGhhc2lzLnBlZWsgPSBlbXBoYXNpc1BlZWtcblxuLyoqXG4gKiBAcGFyYW0ge0VtcGhhc2lzfSBub2RlXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF9cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbXBoYXNpcyhub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICBjb25zdCBtYXJrZXIgPSBjaGVja0VtcGhhc2lzKHN0YXRlKVxuICBjb25zdCBleGl0ID0gc3RhdGUuZW50ZXIoJ2VtcGhhc2lzJylcbiAgY29uc3QgdHJhY2tlciA9IHN0YXRlLmNyZWF0ZVRyYWNrZXIoaW5mbylcbiAgY29uc3QgYmVmb3JlID0gdHJhY2tlci5tb3ZlKG1hcmtlcilcblxuICBsZXQgYmV0d2VlbiA9IHRyYWNrZXIubW92ZShcbiAgICBzdGF0ZS5jb250YWluZXJQaHJhc2luZyhub2RlLCB7XG4gICAgICBhZnRlcjogbWFya2VyLFxuICAgICAgYmVmb3JlLFxuICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICB9KVxuICApXG4gIGNvbnN0IGJldHdlZW5IZWFkID0gYmV0d2Vlbi5jaGFyQ29kZUF0KDApXG4gIGNvbnN0IG9wZW4gPSBlbmNvZGVJbmZvKFxuICAgIGluZm8uYmVmb3JlLmNoYXJDb2RlQXQoaW5mby5iZWZvcmUubGVuZ3RoIC0gMSksXG4gICAgYmV0d2VlbkhlYWQsXG4gICAgbWFya2VyXG4gIClcblxuICBpZiAob3Blbi5pbnNpZGUpIHtcbiAgICBiZXR3ZWVuID0gZW5jb2RlQ2hhcmFjdGVyUmVmZXJlbmNlKGJldHdlZW5IZWFkKSArIGJldHdlZW4uc2xpY2UoMSlcbiAgfVxuXG4gIGNvbnN0IGJldHdlZW5UYWlsID0gYmV0d2Vlbi5jaGFyQ29kZUF0KGJldHdlZW4ubGVuZ3RoIC0gMSlcbiAgY29uc3QgY2xvc2UgPSBlbmNvZGVJbmZvKGluZm8uYWZ0ZXIuY2hhckNvZGVBdCgwKSwgYmV0d2VlblRhaWwsIG1hcmtlcilcblxuICBpZiAoY2xvc2UuaW5zaWRlKSB7XG4gICAgYmV0d2VlbiA9IGJldHdlZW4uc2xpY2UoMCwgLTEpICsgZW5jb2RlQ2hhcmFjdGVyUmVmZXJlbmNlKGJldHdlZW5UYWlsKVxuICB9XG5cbiAgY29uc3QgYWZ0ZXIgPSB0cmFja2VyLm1vdmUobWFya2VyKVxuXG4gIGV4aXQoKVxuXG4gIHN0YXRlLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbyA9IHtcbiAgICBhZnRlcjogY2xvc2Uub3V0c2lkZSxcbiAgICBiZWZvcmU6IG9wZW4ub3V0c2lkZVxuICB9XG4gIHJldHVybiBiZWZvcmUgKyBiZXR3ZWVuICsgYWZ0ZXJcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0VtcGhhc2lzfSBfXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF8xXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZW1waGFzaXNQZWVrKF8sIF8xLCBzdGF0ZSkge1xuICByZXR1cm4gc3RhdGUub3B0aW9ucy5lbXBoYXNpcyB8fCAnKidcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gVW5pc3ROb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBhcmVudH0gVW5pc3RQYXJlbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0LXV0aWwtdmlzaXQtcGFyZW50cycpLlZpc2l0b3JSZXN1bHR9IFZpc2l0b3JSZXN1bHRcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtFeGNsdWRlPGltcG9ydCgndW5pc3QtdXRpbC1pcycpLlRlc3QsIHVuZGVmaW5lZD4gfCB1bmRlZmluZWR9IFRlc3RcbiAqICAgVGVzdCBmcm9tIGB1bmlzdC11dGlsLWlzYC5cbiAqXG4gKiAgIE5vdGU6IHdlIGhhdmUgcmVtb3ZlIGFuZCBhZGQgYHVuZGVmaW5lZGAsIGJlY2F1c2Ugb3RoZXJ3aXNlIHdoZW4gZ2VuZXJhdGluZ1xuICogICBhdXRvbWF0aWMgYC5kLnRzYCBmaWxlcywgVFMgdHJpZXMgdG8gZmxhdHRlbiBwYXRocyBmcm9tIGEgbG9jYWwgcGVyc3BlY3RpdmUsXG4gKiAgIHdoaWNoIGRvZXNuXHUyMDE5dCB3b3JrIHdoZW4gcHVibGlzaGluZyBvbiBucG0uXG4gKi9cblxuLy8gVG8gZG86IHVzZSB0eXBlcyBmcm9tIGB1bmlzdC11dGlsLXZpc2l0LXBhcmVudHNgIHdoZW4gaXRcdTIwMTlzIHJlbGVhc2VkLlxuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIEZuIGV4dGVuZHMgKHZhbHVlOiBhbnkpID0+IHZhbHVlIGlzIGluZmVyIFRoaW5nXG4gKiAgID8gVGhpbmdcbiAqICAgOiBGYWxsYmFja1xuICogKX0gUHJlZGljYXRlXG4gKiAgIEdldCB0aGUgdmFsdWUgb2YgYSB0eXBlIGd1YXJkIGBGbmAuXG4gKiBAdGVtcGxhdGUgRm5cbiAqICAgVmFsdWU7IHR5cGljYWxseSBmdW5jdGlvbiB0aGF0IGlzIGEgdHlwZSBndWFyZCAoc3VjaCBhcyBgKHgpOiB4IGlzIFlgKS5cbiAqIEB0ZW1wbGF0ZSBGYWxsYmFja1xuICogICBWYWx1ZSB0byB5aWVsZCBpZiBgRm5gIGlzIG5vdCBhIHR5cGUgZ3VhcmQuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBDaGVjayBleHRlbmRzIG51bGwgfCB1bmRlZmluZWQgLy8gTm8gdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IFZhbHVlIGV4dGVuZHMge3R5cGU6IENoZWNrfSAvLyBTdHJpbmcgKHR5cGUpIHRlc3QuXG4gKiAgID8gVmFsdWVcbiAqICAgOiBWYWx1ZSBleHRlbmRzIENoZWNrIC8vIFBhcnRpYWwgdGVzdC5cbiAqICAgPyBWYWx1ZVxuICogICA6IENoZWNrIGV4dGVuZHMgRnVuY3Rpb24gLy8gRnVuY3Rpb24gdGVzdC5cbiAqICAgPyBQcmVkaWNhdGU8Q2hlY2ssIFZhbHVlPiBleHRlbmRzIFZhbHVlXG4gKiAgICAgPyBQcmVkaWNhdGU8Q2hlY2ssIFZhbHVlPlxuICogICAgIDogbmV2ZXJcbiAqICAgOiBuZXZlciAvLyBTb21lIG90aGVyIHRlc3Q/XG4gKiApfSBNYXRjaGVzT25lXG4gKiAgIENoZWNrIHdoZXRoZXIgYSBub2RlIG1hdGNoZXMgYSBwcmltaXRpdmUgY2hlY2sgaW4gdGhlIHR5cGUgc3lzdGVtLlxuICogQHRlbXBsYXRlIFZhbHVlXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgdW5pc3QgYE5vZGVgLlxuICogQHRlbXBsYXRlIENoZWNrXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgYHVuaXN0LXV0aWwtaXNgLWNvbXBhdGlibGUgdGVzdCwgYnV0IG5vdCBhcnJheXMuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBDaGVjayBleHRlbmRzIEFycmF5PGFueT5cbiAqICAgPyBNYXRjaGVzT25lPFZhbHVlLCBDaGVja1trZXlvZiBDaGVja10+XG4gKiAgIDogTWF0Y2hlc09uZTxWYWx1ZSwgQ2hlY2s+XG4gKiApfSBNYXRjaGVzXG4gKiAgIENoZWNrIHdoZXRoZXIgYSBub2RlIG1hdGNoZXMgYSBjaGVjayBpbiB0aGUgdHlwZSBzeXN0ZW0uXG4gKiBAdGVtcGxhdGUgVmFsdWVcbiAqICAgVmFsdWU7IHR5cGljYWxseSB1bmlzdCBgTm9kZWAuXG4gKiBAdGVtcGxhdGUgQ2hlY2tcbiAqICAgVmFsdWU7IHR5cGljYWxseSBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgezAgfCAxIHwgMiB8IDMgfCA0IHwgNSB8IDYgfCA3IHwgOCB8IDkgfCAxMH0gVWludFxuICogICBOdW1iZXI7IGNhcHBlZCByZWFzb25hYmx5LlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0kgZXh0ZW5kcyAwID8gMSA6IEkgZXh0ZW5kcyAxID8gMiA6IEkgZXh0ZW5kcyAyID8gMyA6IEkgZXh0ZW5kcyAzID8gNCA6IEkgZXh0ZW5kcyA0ID8gNSA6IEkgZXh0ZW5kcyA1ID8gNiA6IEkgZXh0ZW5kcyA2ID8gNyA6IEkgZXh0ZW5kcyA3ID8gOCA6IEkgZXh0ZW5kcyA4ID8gOSA6IDEwfSBJbmNyZW1lbnRcbiAqICAgSW5jcmVtZW50IGEgbnVtYmVyIGluIHRoZSB0eXBlIHN5c3RlbS5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0k9MF1cbiAqICAgSW5kZXguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBOb2RlIGV4dGVuZHMgVW5pc3RQYXJlbnRcbiAqICAgPyBOb2RlIGV4dGVuZHMge2NoaWxkcmVuOiBBcnJheTxpbmZlciBDaGlsZHJlbj59XG4gKiAgICAgPyBDaGlsZCBleHRlbmRzIENoaWxkcmVuID8gTm9kZSA6IG5ldmVyXG4gKiAgICAgOiBuZXZlclxuICogICA6IG5ldmVyXG4gKiApfSBJbnRlcm5hbFBhcmVudFxuICogICBDb2xsZWN0IG5vZGVzIHRoYXQgY2FuIGJlIHBhcmVudHMgb2YgYENoaWxkYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBOb2RlXG4gKiAgIEFsbCBub2RlIHR5cGVzIGluIGEgdHJlZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBDaGlsZFxuICogICBOb2RlIHRvIHNlYXJjaCBmb3IuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7SW50ZXJuYWxQYXJlbnQ8SW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlPiwgQ2hpbGQ+fSBQYXJlbnRcbiAqICAgQ29sbGVjdCBub2RlcyBpbiBgVHJlZWAgdGhhdCBjYW4gYmUgcGFyZW50cyBvZiBgQ2hpbGRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgQWxsIG5vZGUgdHlwZXMgaW4gYSB0cmVlLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IENoaWxkXG4gKiAgIE5vZGUgdG8gc2VhcmNoIGZvci5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsoXG4gKiAgIERlcHRoIGV4dGVuZHMgTWF4XG4gKiAgID8gbmV2ZXJcbiAqICAgOlxuICogICAgIHwgSW50ZXJuYWxQYXJlbnQ8Tm9kZSwgQ2hpbGQ+XG4gKiAgICAgfCBJbnRlcm5hbEFuY2VzdG9yPE5vZGUsIEludGVybmFsUGFyZW50PE5vZGUsIENoaWxkPiwgTWF4LCBJbmNyZW1lbnQ8RGVwdGg+PlxuICogKX0gSW50ZXJuYWxBbmNlc3RvclxuICogICBDb2xsZWN0IG5vZGVzIGluIGBUcmVlYCB0aGF0IGNhbiBiZSBhbmNlc3RvcnMgb2YgYENoaWxkYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBOb2RlXG4gKiAgIEFsbCBub2RlIHR5cGVzIGluIGEgdHJlZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBDaGlsZFxuICogICBOb2RlIHRvIHNlYXJjaCBmb3IuXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtNYXg9MTBdXG4gKiAgIE1heDsgc2VhcmNoZXMgdXAgdG8gdGhpcyBkZXB0aC5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW0RlcHRoPTBdXG4gKiAgIEN1cnJlbnQgZGVwdGguXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBUcmVlIGV4dGVuZHMgVW5pc3RQYXJlbnRcbiAqICAgICA/IERlcHRoIGV4dGVuZHMgTWF4XG4gKiAgICAgICA/IFRyZWVcbiAqICAgICAgIDogVHJlZSB8IEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZVsnY2hpbGRyZW4nXVtudW1iZXJdLCBNYXgsIEluY3JlbWVudDxEZXB0aD4+XG4gKiAgICAgOiBUcmVlXG4gKiApfSBJbmNsdXNpdmVEZXNjZW5kYW50XG4gKiAgIENvbGxlY3QgYWxsIChpbmNsdXNpdmUpIGRlc2NlbmRhbnRzIG9mIGBUcmVlYC5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhpcyBzZWVtcyB0byBiZSB0aGUgZmFzdGVzdCB3YXkgdG9cbiAqICAgPiByZWN1cnNlIHdpdGhvdXQgYWN0dWFsbHkgcnVubmluZyBpbnRvIGFuIGluZmluaXRlIGxvb3AsIHdoaWNoIHRoZVxuICogICA+IHByZXZpb3VzIHZlcnNpb24gZGlkLlxuICogICA+XG4gKiAgID4gUHJhY3RpY2FsbHksIGEgbWF4IG9mIGAyYCBpcyB0eXBpY2FsbHkgZW5vdWdoIGFzc3VtaW5nIGEgYFJvb3RgIGlzXG4gKiAgID4gcGFzc2VkLCBidXQgaXQgZG9lc25cdTIwMTl0IGltcHJvdmUgcGVyZm9ybWFuY2UuXG4gKiAgID4gSXQgZ2V0cyBoaWdoZXIgd2l0aCBgTGlzdCA+IExpc3RJdGVtID4gVGFibGUgPiBUYWJsZVJvdyA+IFRhYmxlQ2VsbGAuXG4gKiAgID4gVXNpbmcgdXAgdG8gYDEwYCBkb2Vzblx1MjAxOXQgaHVydCBvciBoZWxwIGVpdGhlci5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBUcmVlXG4gKiAgIFRyZWUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW01heD0xMF1cbiAqICAgTWF4OyBzZWFyY2hlcyB1cCB0byB0aGlzIGRlcHRoLlxuICogQHRlbXBsYXRlIHtVaW50fSBbRGVwdGg9MF1cbiAqICAgQ3VycmVudCBkZXB0aC5cbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBWaXNpdG9yXG4gKiAgIEhhbmRsZSBhIG5vZGUgKG1hdGNoaW5nIGB0ZXN0YCwgaWYgZ2l2ZW4pLlxuICpcbiAqICAgVmlzaXRvcnMgYXJlIGZyZWUgdG8gdHJhbnNmb3JtIGBub2RlYC5cbiAqICAgVGhleSBjYW4gYWxzbyB0cmFuc2Zvcm0gYHBhcmVudGAuXG4gKlxuICogICBSZXBsYWNpbmcgYG5vZGVgIGl0c2VsZiwgaWYgYFNLSVBgIGlzIG5vdCByZXR1cm5lZCwgc3RpbGwgY2F1c2VzIGl0c1xuICogICBkZXNjZW5kYW50cyB0byBiZSB3YWxrZWQgKHdoaWNoIGlzIGEgYnVnKS5cbiAqXG4gKiAgIFdoZW4gYWRkaW5nIG9yIHJlbW92aW5nIHByZXZpb3VzIHNpYmxpbmdzIG9mIGBub2RlYCAob3IgbmV4dCBzaWJsaW5ncywgaW5cbiAqICAgY2FzZSBvZiByZXZlcnNlKSwgdGhlIGBWaXNpdG9yYCBzaG91bGQgcmV0dXJuIGEgbmV3IGBJbmRleGAgdG8gc3BlY2lmeSB0aGVcbiAqICAgc2libGluZyB0byB0cmF2ZXJzZSBhZnRlciBgbm9kZWAgaXMgdHJhdmVyc2VkLlxuICogICBBZGRpbmcgb3IgcmVtb3ZpbmcgbmV4dCBzaWJsaW5ncyBvZiBgbm9kZWAgKG9yIHByZXZpb3VzIHNpYmxpbmdzLCBpbiBjYXNlXG4gKiAgIG9mIHJldmVyc2UpIGlzIGhhbmRsZWQgYXMgZXhwZWN0ZWQgd2l0aG91dCBuZWVkaW5nIHRvIHJldHVybiBhIG5ldyBgSW5kZXhgLlxuICpcbiAqICAgUmVtb3ZpbmcgdGhlIGNoaWxkcmVuIHByb3BlcnR5IG9mIGBwYXJlbnRgIHN0aWxsIHJlc3VsdHMgaW4gdGhlbSBiZWluZ1xuICogICB0cmF2ZXJzZWQuXG4gKiBAcGFyYW0ge1Zpc2l0ZWR9IG5vZGVcbiAqICAgRm91bmQgbm9kZS5cbiAqIEBwYXJhbSB7VmlzaXRlZCBleHRlbmRzIFVuaXN0Tm9kZSA/IG51bWJlciB8IHVuZGVmaW5lZCA6IG5ldmVyfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudGAuXG4gKiBAcGFyYW0ge0FuY2VzdG9yIGV4dGVuZHMgVW5pc3RQYXJlbnQgPyBBbmNlc3RvciB8IHVuZGVmaW5lZCA6IG5ldmVyfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEByZXR1cm5zIHtWaXNpdG9yUmVzdWx0fVxuICogICBXaGF0IHRvIGRvIG5leHQuXG4gKlxuICogICBBbiBgSW5kZXhgIGlzIHRyZWF0ZWQgYXMgYSB0dXBsZSBvZiBgW0NPTlRJTlVFLCBJbmRleF1gLlxuICogICBBbiBgQWN0aW9uYCBpcyB0cmVhdGVkIGFzIGEgdHVwbGUgb2YgYFtBY3Rpb25dYC5cbiAqXG4gKiAgIFBhc3NpbmcgYSB0dXBsZSBiYWNrIG9ubHkgbWFrZXMgc2Vuc2UgaWYgdGhlIGBBY3Rpb25gIGlzIGBTS0lQYC5cbiAqICAgV2hlbiB0aGUgYEFjdGlvbmAgaXMgYEVYSVRgLCB0aGF0IGFjdGlvbiBjYW4gYmUgcmV0dXJuZWQuXG4gKiAgIFdoZW4gdGhlIGBBY3Rpb25gIGlzIGBDT05USU5VRWAsIGBJbmRleGAgY2FuIGJlIHJldHVybmVkLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFtWaXNpdGVkPVVuaXN0Tm9kZV1cbiAqICAgVmlzaXRlZCBub2RlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1VuaXN0UGFyZW50fSBbQW5jZXN0b3I9VW5pc3RQYXJlbnRdXG4gKiAgIEFuY2VzdG9yIHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7VmlzaXRvcjxWaXNpdGVkLCBQYXJlbnQ8QW5jZXN0b3IsIFZpc2l0ZWQ+Pn0gQnVpbGRWaXNpdG9yRnJvbU1hdGNoXG4gKiAgIEJ1aWxkIGEgdHlwZWQgYFZpc2l0b3JgIGZ1bmN0aW9uIGZyb20gYSBub2RlIGFuZCBhbGwgcG9zc2libGUgcGFyZW50cy5cbiAqXG4gKiAgIEl0IHdpbGwgaW5mZXIgd2hpY2ggdmFsdWVzIGFyZSBwYXNzZWQgYXMgYG5vZGVgIGFuZCB3aGljaCBhcyBgcGFyZW50YC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBWaXNpdGVkXG4gKiAgIE5vZGUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3RQYXJlbnR9IEFuY2VzdG9yXG4gKiAgIFBhcmVudCB0eXBlLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgQnVpbGRWaXNpdG9yRnJvbU1hdGNoPFxuICogICAgIE1hdGNoZXM8RGVzY2VuZGFudCwgQ2hlY2s+LFxuICogICAgIEV4dHJhY3Q8RGVzY2VuZGFudCwgVW5pc3RQYXJlbnQ+XG4gKiAgID5cbiAqICl9IEJ1aWxkVmlzaXRvckZyb21EZXNjZW5kYW50c1xuICogICBCdWlsZCBhIHR5cGVkIGBWaXNpdG9yYCBmdW5jdGlvbiBmcm9tIGEgbGlzdCBvZiBkZXNjZW5kYW50cyBhbmQgYSB0ZXN0LlxuICpcbiAqICAgSXQgd2lsbCBpbmZlciB3aGljaCB2YWx1ZXMgYXJlIHBhc3NlZCBhcyBgbm9kZWAgYW5kIHdoaWNoIGFzIGBwYXJlbnRgLlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IERlc2NlbmRhbnRcbiAqICAgTm9kZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBDaGVja1xuICogICBUZXN0IHR5cGUuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBCdWlsZFZpc2l0b3JGcm9tRGVzY2VuZGFudHM8XG4gKiAgICAgSW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlPixcbiAqICAgICBDaGVja1xuICogICA+XG4gKiApfSBCdWlsZFZpc2l0b3JcbiAqICAgQnVpbGQgYSB0eXBlZCBgVmlzaXRvcmAgZnVuY3Rpb24gZnJvbSBhIHRyZWUgYW5kIGEgdGVzdC5cbiAqXG4gKiAgIEl0IHdpbGwgaW5mZXIgd2hpY2ggdmFsdWVzIGFyZSBwYXNzZWQgYXMgYG5vZGVgIGFuZCB3aGljaCBhcyBgcGFyZW50YC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBbVHJlZT1VbmlzdE5vZGVdXG4gKiAgIE5vZGUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VGVzdH0gW0NoZWNrPVRlc3RdXG4gKiAgIFRlc3QgdHlwZS5cbiAqL1xuXG5pbXBvcnQge3Zpc2l0UGFyZW50c30gZnJvbSAndW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzJ1xuXG5leHBvcnQge0NPTlRJTlVFLCBFWElULCBTS0lQfSBmcm9tICd1bmlzdC11dGlsLXZpc2l0LXBhcmVudHMnXG5cbi8qKlxuICogVmlzaXQgbm9kZXMuXG4gKlxuICogVGhpcyBhbGdvcml0aG0gcGVyZm9ybXMgKmRlcHRoLWZpcnN0KiAqdHJlZSB0cmF2ZXJzYWwqIGluICpwcmVvcmRlcipcbiAqICgqKk5MUioqKSBvciBpZiBgcmV2ZXJzZWAgaXMgZ2l2ZW4sIGluICpyZXZlcnNlIHByZW9yZGVyKiAoKipOUkwqKikuXG4gKlxuICogWW91IGNhbiBjaG9vc2UgZm9yIHdoaWNoIG5vZGVzIGB2aXNpdG9yYCBpcyBjYWxsZWQgYnkgcGFzc2luZyBhIGB0ZXN0YC5cbiAqIEZvciBjb21wbGV4IHRlc3RzLCB5b3Ugc2hvdWxkIHRlc3QgeW91cnNlbGYgaW4gYHZpc2l0b3JgLCBhcyBpdCB3aWxsIGJlXG4gKiBmYXN0ZXIgYW5kIHdpbGwgaGF2ZSBpbXByb3ZlZCB0eXBlIGluZm9ybWF0aW9uLlxuICpcbiAqIFdhbGtpbmcgdGhlIHRyZWUgaXMgYW4gaW50ZW5zaXZlIHRhc2suXG4gKiBNYWtlIHVzZSBvZiB0aGUgcmV0dXJuIHZhbHVlcyBvZiB0aGUgdmlzaXRvciB3aGVuIHBvc3NpYmxlLlxuICogSW5zdGVhZCBvZiB3YWxraW5nIGEgdHJlZSBtdWx0aXBsZSB0aW1lcywgd2FsayBpdCBvbmNlLCB1c2UgYHVuaXN0LXV0aWwtaXNgXG4gKiB0byBjaGVjayBpZiBhIG5vZGUgbWF0Y2hlcywgYW5kIHRoZW4gcGVyZm9ybSBkaWZmZXJlbnQgb3BlcmF0aW9ucy5cbiAqXG4gKiBZb3UgY2FuIGNoYW5nZSB0aGUgdHJlZS5cbiAqIFNlZSBgVmlzaXRvcmAgZm9yIG1vcmUgaW5mby5cbiAqXG4gKiBAb3ZlcmxvYWRcbiAqIEBwYXJhbSB7VHJlZX0gdHJlZVxuICogQHBhcmFtIHtDaGVja30gY2hlY2tcbiAqIEBwYXJhbSB7QnVpbGRWaXNpdG9yPFRyZWUsIENoZWNrPn0gdmlzaXRvclxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICpcbiAqIEBvdmVybG9hZFxuICogQHBhcmFtIHtUcmVlfSB0cmVlXG4gKiBAcGFyYW0ge0J1aWxkVmlzaXRvcjxUcmVlPn0gdmlzaXRvclxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3JldmVyc2VdXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICpcbiAqIEBwYXJhbSB7VW5pc3ROb2RlfSB0cmVlXG4gKiAgIFRyZWUgdG8gdHJhdmVyc2UuXG4gKiBAcGFyYW0ge1Zpc2l0b3IgfCBUZXN0fSB0ZXN0T3JWaXNpdG9yXG4gKiAgIGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3QgKG9wdGlvbmFsLCBvbWl0IHRvIHBhc3MgYSB2aXNpdG9yKS5cbiAqIEBwYXJhbSB7VmlzaXRvciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdmlzaXRvck9yUmV2ZXJzZV1cbiAqICAgSGFuZGxlIGVhY2ggbm9kZSAod2hlbiB0ZXN0IGlzIG9taXR0ZWQsIHBhc3MgYHJldmVyc2VgKS5cbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFttYXliZVJldmVyc2U9ZmFsc2VdXG4gKiAgIFRyYXZlcnNlIGluIHJldmVyc2UgcHJlb3JkZXIgKE5STCkgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBwcmVvcmRlciAoTkxSKS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKlxuICogQHRlbXBsYXRlIHtVbmlzdE5vZGV9IFRyZWVcbiAqICAgTm9kZSB0eXBlLlxuICogQHRlbXBsYXRlIHtUZXN0fSBDaGVja1xuICogICBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmlzaXQodHJlZSwgdGVzdE9yVmlzaXRvciwgdmlzaXRvck9yUmV2ZXJzZSwgbWF5YmVSZXZlcnNlKSB7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9ICovXG4gIGxldCByZXZlcnNlXG4gIC8qKiBAdHlwZSB7VGVzdH0gKi9cbiAgbGV0IHRlc3RcbiAgLyoqIEB0eXBlIHtWaXNpdG9yfSAqL1xuICBsZXQgdmlzaXRvclxuXG4gIGlmIChcbiAgICB0eXBlb2YgdGVzdE9yVmlzaXRvciA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiB2aXNpdG9yT3JSZXZlcnNlICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIHRlc3QgPSB1bmRlZmluZWRcbiAgICB2aXNpdG9yID0gdGVzdE9yVmlzaXRvclxuICAgIHJldmVyc2UgPSB2aXNpdG9yT3JSZXZlcnNlXG4gIH0gZWxzZSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYXNzdW1lIHRoZSBvdmVybG9hZCB3aXRoIHRlc3Qgd2FzIGdpdmVuLlxuICAgIHRlc3QgPSB0ZXN0T3JWaXNpdG9yXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYXNzdW1lIHRoZSBvdmVybG9hZCB3aXRoIHRlc3Qgd2FzIGdpdmVuLlxuICAgIHZpc2l0b3IgPSB2aXNpdG9yT3JSZXZlcnNlXG4gICAgcmV2ZXJzZSA9IG1heWJlUmV2ZXJzZVxuICB9XG5cbiAgdmlzaXRQYXJlbnRzKHRyZWUsIHRlc3QsIG92ZXJsb2FkLCByZXZlcnNlKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1VuaXN0Tm9kZX0gbm9kZVxuICAgKiBAcGFyYW0ge0FycmF5PFVuaXN0UGFyZW50Pn0gcGFyZW50c1xuICAgKi9cbiAgZnVuY3Rpb24gb3ZlcmxvYWQobm9kZSwgcGFyZW50cykge1xuICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudHNbcGFyZW50cy5sZW5ndGggLSAxXVxuICAgIGNvbnN0IGluZGV4ID0gcGFyZW50ID8gcGFyZW50LmNoaWxkcmVuLmluZGV4T2Yobm9kZSkgOiB1bmRlZmluZWRcbiAgICByZXR1cm4gdmlzaXRvcihub2RlLCBpbmRleCwgcGFyZW50KVxuICB9XG59XG4iLCAiLy8gTm90ZTogdHlwZXMgZXhwb3J0ZWQgZnJvbSBgaW5kZXguZC50c2BcbmV4cG9ydCB7Q09OVElOVUUsIEVYSVQsIFNLSVAsIHZpc2l0fSBmcm9tICcuL2xpYi9pbmRleC5qcydcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuTm9kZXN9IE5vZGVzXG4gKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbaW5jbHVkZUltYWdlQWx0PXRydWVdXG4gKiAgIFdoZXRoZXIgdG8gdXNlIGBhbHRgIGZvciBgaW1hZ2VgcyAoZGVmYXVsdDogYHRydWVgKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtpbmNsdWRlSHRtbD10cnVlXVxuICogICBXaGV0aGVyIHRvIHVzZSBgdmFsdWVgIG9mIEhUTUwgKGRlZmF1bHQ6IGB0cnVlYCkuXG4gKi9cblxuLyoqIEB0eXBlIHtPcHRpb25zfSAqL1xuY29uc3QgZW1wdHlPcHRpb25zID0ge31cblxuLyoqXG4gKiBHZXQgdGhlIHRleHQgY29udGVudCBvZiBhIG5vZGUgb3IgbGlzdCBvZiBub2Rlcy5cbiAqXG4gKiBQcmVmZXJzIHRoZSBub2RlXHUyMDE5cyBwbGFpbi10ZXh0IGZpZWxkcywgb3RoZXJ3aXNlIHNlcmlhbGl6ZXMgaXRzIGNoaWxkcmVuLFxuICogYW5kIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbiBhcnJheSwgc2VyaWFsaXplIHRoZSBub2RlcyBpbiBpdC5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IFt2YWx1ZV1cbiAqICAgVGhpbmcgdG8gc2VyaWFsaXplLCB0eXBpY2FsbHkgYE5vZGVgLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgYHZhbHVlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvU3RyaW5nKHZhbHVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3QgaW5jbHVkZUltYWdlQWx0ID1cbiAgICB0eXBlb2Ygc2V0dGluZ3MuaW5jbHVkZUltYWdlQWx0ID09PSAnYm9vbGVhbidcbiAgICAgID8gc2V0dGluZ3MuaW5jbHVkZUltYWdlQWx0XG4gICAgICA6IHRydWVcbiAgY29uc3QgaW5jbHVkZUh0bWwgPVxuICAgIHR5cGVvZiBzZXR0aW5ncy5pbmNsdWRlSHRtbCA9PT0gJ2Jvb2xlYW4nID8gc2V0dGluZ3MuaW5jbHVkZUh0bWwgOiB0cnVlXG5cbiAgcmV0dXJuIG9uZSh2YWx1ZSwgaW5jbHVkZUltYWdlQWx0LCBpbmNsdWRlSHRtbClcbn1cblxuLyoqXG4gKiBPbmUgbm9kZSBvciBzZXZlcmFsIG5vZGVzLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgVGhpbmcgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIHtib29sZWFufSBpbmNsdWRlSW1hZ2VBbHRcbiAqICAgSW5jbHVkZSBpbWFnZSBgYWx0YHMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluY2x1ZGVIdG1sXG4gKiAgIEluY2x1ZGUgSFRNTC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZnVuY3Rpb24gb25lKHZhbHVlLCBpbmNsdWRlSW1hZ2VBbHQsIGluY2x1ZGVIdG1sKSB7XG4gIGlmIChub2RlKHZhbHVlKSkge1xuICAgIGlmICgndmFsdWUnIGluIHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ2h0bWwnICYmICFpbmNsdWRlSHRtbCA/ICcnIDogdmFsdWUudmFsdWVcbiAgICB9XG5cbiAgICBpZiAoaW5jbHVkZUltYWdlQWx0ICYmICdhbHQnIGluIHZhbHVlICYmIHZhbHVlLmFsdCkge1xuICAgICAgcmV0dXJuIHZhbHVlLmFsdFxuICAgIH1cblxuICAgIGlmICgnY2hpbGRyZW4nIGluIHZhbHVlKSB7XG4gICAgICByZXR1cm4gYWxsKHZhbHVlLmNoaWxkcmVuLCBpbmNsdWRlSW1hZ2VBbHQsIGluY2x1ZGVIdG1sKVxuICAgIH1cbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBhbGwodmFsdWUsIGluY2x1ZGVJbWFnZUFsdCwgaW5jbHVkZUh0bWwpXG4gIH1cblxuICByZXR1cm4gJydcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYSBsaXN0IG9mIG5vZGVzLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8dW5rbm93bj59IHZhbHVlc1xuICogICBUaGluZyB0byBzZXJpYWxpemUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluY2x1ZGVJbWFnZUFsdFxuICogICBJbmNsdWRlIGltYWdlIGBhbHRgcy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5jbHVkZUh0bWxcbiAqICAgSW5jbHVkZSBIVE1MLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2Rlcy5cbiAqL1xuZnVuY3Rpb24gYWxsKHZhbHVlcywgaW5jbHVkZUltYWdlQWx0LCBpbmNsdWRlSHRtbCkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IG9uZSh2YWx1ZXNbaW5kZXhdLCBpbmNsdWRlSW1hZ2VBbHQsIGluY2x1ZGVIdG1sKVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdC5qb2luKCcnKVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGB2YWx1ZWAgbG9va3MgbGlrZSBhIG5vZGUuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICBUaGluZy5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBOb2Rlc31cbiAqICAgV2hldGhlciBgdmFsdWVgIGlzIGEgbm9kZS5cbiAqL1xuZnVuY3Rpb24gbm9kZSh2YWx1ZSkge1xuICByZXR1cm4gQm9vbGVhbih2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5PcHRpb25zfSBPcHRpb25zXG4gKi9cblxuZXhwb3J0IHt0b1N0cmluZ30gZnJvbSAnLi9saWIvaW5kZXguanMnXG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqIEBpbXBvcnQge0hlYWRpbmd9IGZyb20gJ21kYXN0J1xuICovXG5cbmltcG9ydCB7RVhJVCwgdmlzaXR9IGZyb20gJ3VuaXN0LXV0aWwtdmlzaXQnXG5pbXBvcnQge3RvU3RyaW5nfSBmcm9tICdtZGFzdC11dGlsLXRvLXN0cmluZydcblxuLyoqXG4gKiBAcGFyYW0ge0hlYWRpbmd9IG5vZGVcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEhlYWRpbmdBc1NldGV4dChub2RlLCBzdGF0ZSkge1xuICBsZXQgbGl0ZXJhbFdpdGhCcmVhayA9IGZhbHNlXG5cbiAgLy8gTG9vayBmb3IgbGl0ZXJhbHMgd2l0aCBhIGxpbmUgYnJlYWsuXG4gIC8vIE5vdGUgdGhhdCB0aGlzIGFsc29cbiAgdmlzaXQobm9kZSwgZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBpZiAoXG4gICAgICAoJ3ZhbHVlJyBpbiBub2RlICYmIC9cXHI/XFxufFxcci8udGVzdChub2RlLnZhbHVlKSkgfHxcbiAgICAgIG5vZGUudHlwZSA9PT0gJ2JyZWFrJ1xuICAgICkge1xuICAgICAgbGl0ZXJhbFdpdGhCcmVhayA9IHRydWVcbiAgICAgIHJldHVybiBFWElUXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBCb29sZWFuKFxuICAgICghbm9kZS5kZXB0aCB8fCBub2RlLmRlcHRoIDwgMykgJiZcbiAgICAgIHRvU3RyaW5nKG5vZGUpICYmXG4gICAgICAoc3RhdGUub3B0aW9ucy5zZXRleHQgfHwgbGl0ZXJhbFdpdGhCcmVhaylcbiAgKVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7SW5mbywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKiBAaW1wb3J0IHtIZWFkaW5nLCBQYXJlbnRzfSBmcm9tICdtZGFzdCdcbiAqL1xuXG5pbXBvcnQge2VuY29kZUNoYXJhY3RlclJlZmVyZW5jZX0gZnJvbSAnLi4vdXRpbC9lbmNvZGUtY2hhcmFjdGVyLXJlZmVyZW5jZS5qcydcbmltcG9ydCB7Zm9ybWF0SGVhZGluZ0FzU2V0ZXh0fSBmcm9tICcuLi91dGlsL2Zvcm1hdC1oZWFkaW5nLWFzLXNldGV4dC5qcydcblxuLyoqXG4gKiBAcGFyYW0ge0hlYWRpbmd9IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gX1xuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhlYWRpbmcobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgY29uc3QgcmFuayA9IE1hdGgubWF4KE1hdGgubWluKDYsIG5vZGUuZGVwdGggfHwgMSksIDEpXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG5cbiAgaWYgKGZvcm1hdEhlYWRpbmdBc1NldGV4dChub2RlLCBzdGF0ZSkpIHtcbiAgICBjb25zdCBleGl0ID0gc3RhdGUuZW50ZXIoJ2hlYWRpbmdTZXRleHQnKVxuICAgIGNvbnN0IHN1YmV4aXQgPSBzdGF0ZS5lbnRlcigncGhyYXNpbmcnKVxuICAgIGNvbnN0IHZhbHVlID0gc3RhdGUuY29udGFpbmVyUGhyYXNpbmcobm9kZSwge1xuICAgICAgLi4udHJhY2tlci5jdXJyZW50KCksXG4gICAgICBiZWZvcmU6ICdcXG4nLFxuICAgICAgYWZ0ZXI6ICdcXG4nXG4gICAgfSlcbiAgICBzdWJleGl0KClcbiAgICBleGl0KClcblxuICAgIHJldHVybiAoXG4gICAgICB2YWx1ZSArXG4gICAgICAnXFxuJyArXG4gICAgICAocmFuayA9PT0gMSA/ICc9JyA6ICctJykucmVwZWF0KFxuICAgICAgICAvLyBUaGUgd2hvbGUgc2l6ZVx1MjAyNlxuICAgICAgICB2YWx1ZS5sZW5ndGggLVxuICAgICAgICAgIC8vIE1pbnVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIGFmdGVyIHRoZSBsYXN0IEVPTCAob3JcbiAgICAgICAgICAvLyAwIGlmIHRoZXJlIGlzIG5vbmUpXHUyMDI2XG4gICAgICAgICAgKE1hdGgubWF4KHZhbHVlLmxhc3RJbmRleE9mKCdcXHInKSwgdmFsdWUubGFzdEluZGV4T2YoJ1xcbicpKSArIDEpXG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgY29uc3Qgc2VxdWVuY2UgPSAnIycucmVwZWF0KHJhbmspXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignaGVhZGluZ0F0eCcpXG4gIGNvbnN0IHN1YmV4aXQgPSBzdGF0ZS5lbnRlcigncGhyYXNpbmcnKVxuXG4gIC8vIE5vdGU6IGZvciBwcm9wZXIgdHJhY2tpbmcsIHdlIHNob3VsZCByZXNldCB0aGUgb3V0cHV0IHBvc2l0aW9ucyB3aGVuIHRoZXJlXG4gIC8vIGlzIG5vIGNvbnRlbnQgcmV0dXJuZWQsIGJlY2F1c2UgdGhlbiB0aGUgc3BhY2UgaXMgbm90IG91dHB1dC5cbiAgLy8gUHJhY3RpY2FsbHksIGluIHRoYXQgY2FzZSwgdGhlcmUgaXMgbm8gY29udGVudCwgc28gaXQgZG9lc25cdTIwMTl0IG1hdHRlciB0aGF0XG4gIC8vIHdlXHUyMDE5dmUgdHJhY2tlZCBvbmUgdG9vIG1hbnkgY2hhcmFjdGVycy5cbiAgdHJhY2tlci5tb3ZlKHNlcXVlbmNlICsgJyAnKVxuXG4gIGxldCB2YWx1ZSA9IHN0YXRlLmNvbnRhaW5lclBocmFzaW5nKG5vZGUsIHtcbiAgICBiZWZvcmU6ICcjICcsXG4gICAgYWZ0ZXI6ICdcXG4nLFxuICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gIH0pXG5cbiAgaWYgKC9eW1xcdCBdLy50ZXN0KHZhbHVlKSkge1xuICAgIC8vIFRvIGRvOiB3aGF0IGVmZmVjdCBoYXMgdGhlIGNoYXJhY3RlciByZWZlcmVuY2Ugb24gdHJhY2tpbmc/XG4gICAgdmFsdWUgPSBlbmNvZGVDaGFyYWN0ZXJSZWZlcmVuY2UodmFsdWUuY2hhckNvZGVBdCgwKSkgKyB2YWx1ZS5zbGljZSgxKVxuICB9XG5cbiAgdmFsdWUgPSB2YWx1ZSA/IHNlcXVlbmNlICsgJyAnICsgdmFsdWUgOiBzZXF1ZW5jZVxuXG4gIGlmIChzdGF0ZS5vcHRpb25zLmNsb3NlQXR4KSB7XG4gICAgdmFsdWUgKz0gJyAnICsgc2VxdWVuY2VcbiAgfVxuXG4gIHN1YmV4aXQoKVxuICBleGl0KClcblxuICByZXR1cm4gdmFsdWVcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0h0bWx9IGZyb20gJ21kYXN0J1xuICovXG5cbmh0bWwucGVlayA9IGh0bWxQZWVrXG5cbi8qKlxuICogQHBhcmFtIHtIdG1sfSBub2RlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaHRtbChub2RlKSB7XG4gIHJldHVybiBub2RlLnZhbHVlIHx8ICcnXG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gaHRtbFBlZWsoKSB7XG4gIHJldHVybiAnPCdcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0luZm8sIFN0YXRlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICogQGltcG9ydCB7SW1hZ2UsIFBhcmVudHN9IGZyb20gJ21kYXN0J1xuICovXG5cbmltcG9ydCB7Y2hlY2tRdW90ZX0gZnJvbSAnLi4vdXRpbC9jaGVjay1xdW90ZS5qcydcblxuaW1hZ2UucGVlayA9IGltYWdlUGVla1xuXG4vKipcbiAqIEBwYXJhbSB7SW1hZ2V9IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gX1xuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKG5vZGUsIF8sIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IHF1b3RlID0gY2hlY2tRdW90ZShzdGF0ZSlcbiAgY29uc3Qgc3VmZml4ID0gcXVvdGUgPT09ICdcIicgPyAnUXVvdGUnIDogJ0Fwb3N0cm9waGUnXG4gIGNvbnN0IGV4aXQgPSBzdGF0ZS5lbnRlcignaW1hZ2UnKVxuICBsZXQgc3ViZXhpdCA9IHN0YXRlLmVudGVyKCdsYWJlbCcpXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIGxldCB2YWx1ZSA9IHRyYWNrZXIubW92ZSgnIVsnKVxuICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoXG4gICAgc3RhdGUuc2FmZShub2RlLmFsdCwge2JlZm9yZTogdmFsdWUsIGFmdGVyOiAnXScsIC4uLnRyYWNrZXIuY3VycmVudCgpfSlcbiAgKVxuICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJ10oJylcblxuICBzdWJleGl0KClcblxuICBpZiAoXG4gICAgLy8gSWYgdGhlcmVcdTIwMTlzIG5vIHVybCBidXQgdGhlcmUgaXMgYSB0aXRsZVx1MjAyNlxuICAgICghbm9kZS51cmwgJiYgbm9kZS50aXRsZSkgfHxcbiAgICAvLyBJZiB0aGVyZSBhcmUgY29udHJvbCBjaGFyYWN0ZXJzIG9yIHdoaXRlc3BhY2UuXG4gICAgL1tcXDAtIFxcdTAwN0ZdLy50ZXN0KG5vZGUudXJsKVxuICApIHtcbiAgICBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ2Rlc3RpbmF0aW9uTGl0ZXJhbCcpXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCc8JylcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoXG4gICAgICBzdGF0ZS5zYWZlKG5vZGUudXJsLCB7YmVmb3JlOiB2YWx1ZSwgYWZ0ZXI6ICc+JywgLi4udHJhY2tlci5jdXJyZW50KCl9KVxuICAgIClcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJz4nKVxuICB9IGVsc2Uge1xuICAgIC8vIE5vIHdoaXRlc3BhY2UsIHJhdyBpcyBwcmV0dGllci5cbiAgICBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ2Rlc3RpbmF0aW9uUmF3JylcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoXG4gICAgICBzdGF0ZS5zYWZlKG5vZGUudXJsLCB7XG4gICAgICAgIGJlZm9yZTogdmFsdWUsXG4gICAgICAgIGFmdGVyOiBub2RlLnRpdGxlID8gJyAnIDogJyknLFxuICAgICAgICAuLi50cmFja2VyLmN1cnJlbnQoKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBzdWJleGl0KClcblxuICBpZiAobm9kZS50aXRsZSkge1xuICAgIHN1YmV4aXQgPSBzdGF0ZS5lbnRlcihgdGl0bGUke3N1ZmZpeH1gKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnICcgKyBxdW90ZSlcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoXG4gICAgICBzdGF0ZS5zYWZlKG5vZGUudGl0bGUsIHtcbiAgICAgICAgYmVmb3JlOiB2YWx1ZSxcbiAgICAgICAgYWZ0ZXI6IHF1b3RlLFxuICAgICAgICAuLi50cmFja2VyLmN1cnJlbnQoKVxuICAgICAgfSlcbiAgICApXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKHF1b3RlKVxuICAgIHN1YmV4aXQoKVxuICB9XG5cbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCcpJylcbiAgZXhpdCgpXG5cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gaW1hZ2VQZWVrKCkge1xuICByZXR1cm4gJyEnXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtJbmZvLCBTdGF0ZX0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqIEBpbXBvcnQge0ltYWdlUmVmZXJlbmNlLCBQYXJlbnRzfSBmcm9tICdtZGFzdCdcbiAqL1xuXG5pbWFnZVJlZmVyZW5jZS5wZWVrID0gaW1hZ2VSZWZlcmVuY2VQZWVrXG5cbi8qKlxuICogQHBhcmFtIHtJbWFnZVJlZmVyZW5jZX0gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2VSZWZlcmVuY2Uobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgY29uc3QgdHlwZSA9IG5vZGUucmVmZXJlbmNlVHlwZVxuICBjb25zdCBleGl0ID0gc3RhdGUuZW50ZXIoJ2ltYWdlUmVmZXJlbmNlJylcbiAgbGV0IHN1YmV4aXQgPSBzdGF0ZS5lbnRlcignbGFiZWwnKVxuICBjb25zdCB0cmFja2VyID0gc3RhdGUuY3JlYXRlVHJhY2tlcihpbmZvKVxuICBsZXQgdmFsdWUgPSB0cmFja2VyLm1vdmUoJyFbJylcbiAgY29uc3QgYWx0ID0gc3RhdGUuc2FmZShub2RlLmFsdCwge1xuICAgIGJlZm9yZTogdmFsdWUsXG4gICAgYWZ0ZXI6ICddJyxcbiAgICAuLi50cmFja2VyLmN1cnJlbnQoKVxuICB9KVxuICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoYWx0ICsgJ11bJylcblxuICBzdWJleGl0KClcbiAgLy8gSGlkZSB0aGUgZmFjdCB0aGF0IHdlXHUyMDE5cmUgaW4gcGhyYXNpbmcsIGJlY2F1c2UgZXNjYXBlcyBkb25cdTIwMTl0IHdvcmsuXG4gIGNvbnN0IHN0YWNrID0gc3RhdGUuc3RhY2tcbiAgc3RhdGUuc3RhY2sgPSBbXVxuICBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ3JlZmVyZW5jZScpXG4gIC8vIE5vdGU6IGZvciBwcm9wZXIgdHJhY2tpbmcsIHdlIHNob3VsZCByZXNldCB0aGUgb3V0cHV0IHBvc2l0aW9ucyB3aGVuIHdlIGVuZFxuICAvLyB1cCBtYWtpbmcgYSBgc2hvcnRjdXRgIHJlZmVyZW5jZSwgYmVjYXVzZSB0aGVuIHRoZXJlIGlzIG5vIGJyYWNlIG91dHB1dC5cbiAgLy8gUHJhY3RpY2FsbHksIGluIHRoYXQgY2FzZSwgdGhlcmUgaXMgbm8gY29udGVudCwgc28gaXQgZG9lc25cdTIwMTl0IG1hdHRlciB0aGF0XG4gIC8vIHdlXHUyMDE5dmUgdHJhY2tlZCBvbmUgdG9vIG1hbnkgY2hhcmFjdGVycy5cbiAgY29uc3QgcmVmZXJlbmNlID0gc3RhdGUuc2FmZShzdGF0ZS5hc3NvY2lhdGlvbklkKG5vZGUpLCB7XG4gICAgYmVmb3JlOiB2YWx1ZSxcbiAgICBhZnRlcjogJ10nLFxuICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gIH0pXG4gIHN1YmV4aXQoKVxuICBzdGF0ZS5zdGFjayA9IHN0YWNrXG4gIGV4aXQoKVxuXG4gIGlmICh0eXBlID09PSAnZnVsbCcgfHwgIWFsdCB8fCBhbHQgIT09IHJlZmVyZW5jZSkge1xuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShyZWZlcmVuY2UgKyAnXScpXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3Nob3J0Y3V0Jykge1xuICAgIC8vIFJlbW92ZSB0aGUgdW53YW50ZWQgYFtgLlxuICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMCwgLTEpXG4gIH0gZWxzZSB7XG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCddJylcbiAgfVxuXG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKipcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGltYWdlUmVmZXJlbmNlUGVlaygpIHtcbiAgcmV0dXJuICchJ1xufVxuIiwgIi8qKlxuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKiBAaW1wb3J0IHtJbmxpbmVDb2RlLCBQYXJlbnRzfSBmcm9tICdtZGFzdCdcbiAqL1xuXG5pbmxpbmVDb2RlLnBlZWsgPSBpbmxpbmVDb2RlUGVla1xuXG4vKipcbiAqIEBwYXJhbSB7SW5saW5lQ29kZX0gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlubGluZUNvZGUobm9kZSwgXywgc3RhdGUpIHtcbiAgbGV0IHZhbHVlID0gbm9kZS52YWx1ZSB8fCAnJ1xuICBsZXQgc2VxdWVuY2UgPSAnYCdcbiAgbGV0IGluZGV4ID0gLTFcblxuICAvLyBJZiB0aGVyZSBpcyBhIHNpbmdsZSBncmF2ZSBhY2NlbnQgb24gaXRzIG93biBpbiB0aGUgY29kZSwgdXNlIGEgZmVuY2Ugb2ZcbiAgLy8gdHdvLlxuICAvLyBJZiB0aGVyZSBhcmUgdHdvIGluIGEgcm93LCB1c2Ugb25lLlxuICB3aGlsZSAobmV3IFJlZ0V4cCgnKF58W15gXSknICsgc2VxdWVuY2UgKyAnKFteYF18JCknKS50ZXN0KHZhbHVlKSkge1xuICAgIHNlcXVlbmNlICs9ICdgJ1xuICB9XG5cbiAgLy8gSWYgdGhpcyBpcyBub3QganVzdCBzcGFjZXMgb3IgZW9scyAodGFicyBkb25cdTIwMTl0IGNvdW50KSwgYW5kIGVpdGhlciB0aGVcbiAgLy8gZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIgYXJlIGEgc3BhY2UsIGVvbCwgb3IgdGljaywgdGhlbiBwYWQgd2l0aCBzcGFjZXMuXG4gIGlmIChcbiAgICAvW14gXFxyXFxuXS8udGVzdCh2YWx1ZSkgJiZcbiAgICAoKC9eWyBcXHJcXG5dLy50ZXN0KHZhbHVlKSAmJiAvWyBcXHJcXG5dJC8udGVzdCh2YWx1ZSkpIHx8IC9eYHxgJC8udGVzdCh2YWx1ZSkpXG4gICkge1xuICAgIHZhbHVlID0gJyAnICsgdmFsdWUgKyAnICdcbiAgfVxuXG4gIC8vIFdlIGhhdmUgYSBwb3RlbnRpYWwgcHJvYmxlbTogY2VydGFpbiBjaGFyYWN0ZXJzIGFmdGVyIGVvbHMgY291bGQgcmVzdWx0IGluXG4gIC8vIGJsb2NrcyBiZWluZyBzZWVuLlxuICAvLyBGb3IgZXhhbXBsZSwgaWYgc29tZW9uZSBpbmplY3RlZCB0aGUgc3RyaW5nIGAnXFxuIyBiJ2AsIHRoZW4gdGhhdCB3b3VsZFxuICAvLyByZXN1bHQgaW4gYW4gQVRYIGhlYWRpbmcuXG4gIC8vIFdlIGNhblx1MjAxOXQgZXNjYXBlIGNoYXJhY3RlcnMgaW4gYGlubGluZUNvZGVgLCBidXQgYmVjYXVzZSBlb2xzIGFyZVxuICAvLyB0cmFuc2Zvcm1lZCB0byBzcGFjZXMgd2hlbiBnb2luZyBmcm9tIG1hcmtkb3duIHRvIEhUTUwgYW55d2F5LCB3ZSBjYW4gc3dhcFxuICAvLyB0aGVtIG91dC5cbiAgd2hpbGUgKCsraW5kZXggPCBzdGF0ZS51bnNhZmUubGVuZ3RoKSB7XG4gICAgY29uc3QgcGF0dGVybiA9IHN0YXRlLnVuc2FmZVtpbmRleF1cbiAgICBjb25zdCBleHByZXNzaW9uID0gc3RhdGUuY29tcGlsZVBhdHRlcm4ocGF0dGVybilcbiAgICAvKiogQHR5cGUge1JlZ0V4cEV4ZWNBcnJheSB8IG51bGx9ICovXG4gICAgbGV0IG1hdGNoXG5cbiAgICAvLyBPbmx5IGxvb2sgZm9yIGBhdEJyZWFrYHMuXG4gICAgLy8gQnR3OiBub3RlIHRoYXQgYGF0QnJlYWtgIHBhdHRlcm5zIHdpbGwgYWx3YXlzIHN0YXJ0IHRoZSByZWdleCBhdCBMRiBvclxuICAgIC8vIENSLlxuICAgIGlmICghcGF0dGVybi5hdEJyZWFrKSBjb250aW51ZVxuXG4gICAgd2hpbGUgKChtYXRjaCA9IGV4cHJlc3Npb24uZXhlYyh2YWx1ZSkpKSB7XG4gICAgICBsZXQgcG9zaXRpb24gPSBtYXRjaC5pbmRleFxuXG4gICAgICAvLyBTdXBwb3J0IENSTEYgKHBhdHRlcm5zIG9ubHkgbG9vayBmb3Igb25lIG9mIHRoZSBjaGFyYWN0ZXJzKS5cbiAgICAgIGlmIChcbiAgICAgICAgdmFsdWUuY2hhckNvZGVBdChwb3NpdGlvbikgPT09IDEwIC8qIGBcXG5gICovICYmXG4gICAgICAgIHZhbHVlLmNoYXJDb2RlQXQocG9zaXRpb24gLSAxKSA9PT0gMTMgLyogYFxccmAgKi9cbiAgICAgICkge1xuICAgICAgICBwb3NpdGlvbi0tXG4gICAgICB9XG5cbiAgICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMCwgcG9zaXRpb24pICsgJyAnICsgdmFsdWUuc2xpY2UobWF0Y2guaW5kZXggKyAxKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzZXF1ZW5jZSArIHZhbHVlICsgc2VxdWVuY2Vcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBpbmxpbmVDb2RlUGVlaygpIHtcbiAgcmV0dXJuICdgJ1xufVxuIiwgIi8qKlxuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKiBAaW1wb3J0IHtMaW5rfSBmcm9tICdtZGFzdCdcbiAqL1xuXG5pbXBvcnQge3RvU3RyaW5nfSBmcm9tICdtZGFzdC11dGlsLXRvLXN0cmluZydcblxuLyoqXG4gKiBAcGFyYW0ge0xpbmt9IG5vZGVcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdExpbmtBc0F1dG9saW5rKG5vZGUsIHN0YXRlKSB7XG4gIGNvbnN0IHJhdyA9IHRvU3RyaW5nKG5vZGUpXG5cbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgIXN0YXRlLm9wdGlvbnMucmVzb3VyY2VMaW5rICYmXG4gICAgICAvLyBJZiB0aGVyZVx1MjAxOXMgYSB1cmxcdTIwMjZcbiAgICAgIG5vZGUudXJsICYmXG4gICAgICAvLyBBbmQgdGhlcmVcdTIwMTlzIGEgbm8gdGl0bGVcdTIwMjZcbiAgICAgICFub2RlLnRpdGxlICYmXG4gICAgICAvLyBBbmQgdGhlIGNvbnRlbnQgb2YgYG5vZGVgIGlzIGEgc2luZ2xlIHRleHQgbm9kZVx1MjAyNlxuICAgICAgbm9kZS5jaGlsZHJlbiAmJlxuICAgICAgbm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDEgJiZcbiAgICAgIG5vZGUuY2hpbGRyZW5bMF0udHlwZSA9PT0gJ3RleHQnICYmXG4gICAgICAvLyBBbmQgaWYgdGhlIHVybCBpcyB0aGUgc2FtZSBhcyB0aGUgY29udGVudFx1MjAyNlxuICAgICAgKHJhdyA9PT0gbm9kZS51cmwgfHwgJ21haWx0bzonICsgcmF3ID09PSBub2RlLnVybCkgJiZcbiAgICAgIC8vIEFuZCB0aGF0IHN0YXJ0cyB3LyBhIHByb3RvY29sXHUyMDI2XG4gICAgICAvXlthLXpdW2EteisuLV0rOi9pLnRlc3Qobm9kZS51cmwpICYmXG4gICAgICAvLyBBbmQgdGhhdCBkb2Vzblx1MjAxOXQgY29udGFpbiBBU0NJSSBjb250cm9sIGNvZGVzIChjaGFyYWN0ZXIgZXNjYXBlcyBhbmRcbiAgICAgIC8vIHJlZmVyZW5jZXMgZG9uXHUyMDE5dCB3b3JrKSwgc3BhY2UsIG9yIGFuZ2xlIGJyYWNrZXRzXHUyMDI2XG4gICAgICAhL1tcXDAtIDw+XFx1MDA3Rl0vLnRlc3Qobm9kZS51cmwpXG4gIClcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0luZm8sIFN0YXRlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICogQGltcG9ydCB7TGluaywgUGFyZW50c30gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtFeGl0fSBmcm9tICcuLi90eXBlcy5qcydcbiAqL1xuXG5pbXBvcnQge2NoZWNrUXVvdGV9IGZyb20gJy4uL3V0aWwvY2hlY2stcXVvdGUuanMnXG5pbXBvcnQge2Zvcm1hdExpbmtBc0F1dG9saW5rfSBmcm9tICcuLi91dGlsL2Zvcm1hdC1saW5rLWFzLWF1dG9saW5rLmpzJ1xuXG5saW5rLnBlZWsgPSBsaW5rUGVla1xuXG4vKipcbiAqIEBwYXJhbSB7TGlua30gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbGluayhub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICBjb25zdCBxdW90ZSA9IGNoZWNrUXVvdGUoc3RhdGUpXG4gIGNvbnN0IHN1ZmZpeCA9IHF1b3RlID09PSAnXCInID8gJ1F1b3RlJyA6ICdBcG9zdHJvcGhlJ1xuICBjb25zdCB0cmFja2VyID0gc3RhdGUuY3JlYXRlVHJhY2tlcihpbmZvKVxuICAvKiogQHR5cGUge0V4aXR9ICovXG4gIGxldCBleGl0XG4gIC8qKiBAdHlwZSB7RXhpdH0gKi9cbiAgbGV0IHN1YmV4aXRcblxuICBpZiAoZm9ybWF0TGlua0FzQXV0b2xpbmsobm9kZSwgc3RhdGUpKSB7XG4gICAgLy8gSGlkZSB0aGUgZmFjdCB0aGF0IHdlXHUyMDE5cmUgaW4gcGhyYXNpbmcsIGJlY2F1c2UgZXNjYXBlcyBkb25cdTIwMTl0IHdvcmsuXG4gICAgY29uc3Qgc3RhY2sgPSBzdGF0ZS5zdGFja1xuICAgIHN0YXRlLnN0YWNrID0gW11cbiAgICBleGl0ID0gc3RhdGUuZW50ZXIoJ2F1dG9saW5rJylcbiAgICBsZXQgdmFsdWUgPSB0cmFja2VyLm1vdmUoJzwnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLmNvbnRhaW5lclBocmFzaW5nKG5vZGUsIHtcbiAgICAgICAgYmVmb3JlOiB2YWx1ZSxcbiAgICAgICAgYWZ0ZXI6ICc+JyxcbiAgICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICAgIH0pXG4gICAgKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnPicpXG4gICAgZXhpdCgpXG4gICAgc3RhdGUuc3RhY2sgPSBzdGFja1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgZXhpdCA9IHN0YXRlLmVudGVyKCdsaW5rJylcbiAgc3ViZXhpdCA9IHN0YXRlLmVudGVyKCdsYWJlbCcpXG4gIGxldCB2YWx1ZSA9IHRyYWNrZXIubW92ZSgnWycpXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICBzdGF0ZS5jb250YWluZXJQaHJhc2luZyhub2RlLCB7XG4gICAgICBiZWZvcmU6IHZhbHVlLFxuICAgICAgYWZ0ZXI6ICddKCcsXG4gICAgICAuLi50cmFja2VyLmN1cnJlbnQoKVxuICAgIH0pXG4gIClcbiAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCddKCcpXG4gIHN1YmV4aXQoKVxuXG4gIGlmIChcbiAgICAvLyBJZiB0aGVyZVx1MjAxOXMgbm8gdXJsIGJ1dCB0aGVyZSBpcyBhIHRpdGxlXHUyMDI2XG4gICAgKCFub2RlLnVybCAmJiBub2RlLnRpdGxlKSB8fFxuICAgIC8vIElmIHRoZXJlIGFyZSBjb250cm9sIGNoYXJhY3RlcnMgb3Igd2hpdGVzcGFjZS5cbiAgICAvW1xcMC0gXFx1MDA3Rl0vLnRlc3Qobm9kZS51cmwpXG4gICkge1xuICAgIHN1YmV4aXQgPSBzdGF0ZS5lbnRlcignZGVzdGluYXRpb25MaXRlcmFsJylcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJzwnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS51cmwsIHtiZWZvcmU6IHZhbHVlLCBhZnRlcjogJz4nLCAuLi50cmFja2VyLmN1cnJlbnQoKX0pXG4gICAgKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZSgnPicpXG4gIH0gZWxzZSB7XG4gICAgLy8gTm8gd2hpdGVzcGFjZSwgcmF3IGlzIHByZXR0aWVyLlxuICAgIHN1YmV4aXQgPSBzdGF0ZS5lbnRlcignZGVzdGluYXRpb25SYXcnKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS51cmwsIHtcbiAgICAgICAgYmVmb3JlOiB2YWx1ZSxcbiAgICAgICAgYWZ0ZXI6IG5vZGUudGl0bGUgPyAnICcgOiAnKScsXG4gICAgICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHN1YmV4aXQoKVxuXG4gIGlmIChub2RlLnRpdGxlKSB7XG4gICAgc3ViZXhpdCA9IHN0YXRlLmVudGVyKGB0aXRsZSR7c3VmZml4fWApXG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKCcgJyArIHF1b3RlKVxuICAgIHZhbHVlICs9IHRyYWNrZXIubW92ZShcbiAgICAgIHN0YXRlLnNhZmUobm9kZS50aXRsZSwge1xuICAgICAgICBiZWZvcmU6IHZhbHVlLFxuICAgICAgICBhZnRlcjogcXVvdGUsXG4gICAgICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gICAgICB9KVxuICAgIClcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUocXVvdGUpXG4gICAgc3ViZXhpdCgpXG4gIH1cblxuICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJyknKVxuXG4gIGV4aXQoKVxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0xpbmt9IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gX1xuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGxpbmtQZWVrKG5vZGUsIF8sIHN0YXRlKSB7XG4gIHJldHVybiBmb3JtYXRMaW5rQXNBdXRvbGluayhub2RlLCBzdGF0ZSkgPyAnPCcgOiAnWydcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0luZm8sIFN0YXRlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICogQGltcG9ydCB7TGlua1JlZmVyZW5jZSwgUGFyZW50c30gZnJvbSAnbWRhc3QnXG4gKi9cblxubGlua1JlZmVyZW5jZS5wZWVrID0gbGlua1JlZmVyZW5jZVBlZWtcblxuLyoqXG4gKiBAcGFyYW0ge0xpbmtSZWZlcmVuY2V9IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gX1xuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpbmtSZWZlcmVuY2Uobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgY29uc3QgdHlwZSA9IG5vZGUucmVmZXJlbmNlVHlwZVxuICBjb25zdCBleGl0ID0gc3RhdGUuZW50ZXIoJ2xpbmtSZWZlcmVuY2UnKVxuICBsZXQgc3ViZXhpdCA9IHN0YXRlLmVudGVyKCdsYWJlbCcpXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIGxldCB2YWx1ZSA9IHRyYWNrZXIubW92ZSgnWycpXG4gIGNvbnN0IHRleHQgPSBzdGF0ZS5jb250YWluZXJQaHJhc2luZyhub2RlLCB7XG4gICAgYmVmb3JlOiB2YWx1ZSxcbiAgICBhZnRlcjogJ10nLFxuICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gIH0pXG4gIHZhbHVlICs9IHRyYWNrZXIubW92ZSh0ZXh0ICsgJ11bJylcblxuICBzdWJleGl0KClcbiAgLy8gSGlkZSB0aGUgZmFjdCB0aGF0IHdlXHUyMDE5cmUgaW4gcGhyYXNpbmcsIGJlY2F1c2UgZXNjYXBlcyBkb25cdTIwMTl0IHdvcmsuXG4gIGNvbnN0IHN0YWNrID0gc3RhdGUuc3RhY2tcbiAgc3RhdGUuc3RhY2sgPSBbXVxuICBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ3JlZmVyZW5jZScpXG4gIC8vIE5vdGU6IGZvciBwcm9wZXIgdHJhY2tpbmcsIHdlIHNob3VsZCByZXNldCB0aGUgb3V0cHV0IHBvc2l0aW9ucyB3aGVuIHdlIGVuZFxuICAvLyB1cCBtYWtpbmcgYSBgc2hvcnRjdXRgIHJlZmVyZW5jZSwgYmVjYXVzZSB0aGVuIHRoZXJlIGlzIG5vIGJyYWNlIG91dHB1dC5cbiAgLy8gUHJhY3RpY2FsbHksIGluIHRoYXQgY2FzZSwgdGhlcmUgaXMgbm8gY29udGVudCwgc28gaXQgZG9lc25cdTIwMTl0IG1hdHRlciB0aGF0XG4gIC8vIHdlXHUyMDE5dmUgdHJhY2tlZCBvbmUgdG9vIG1hbnkgY2hhcmFjdGVycy5cbiAgY29uc3QgcmVmZXJlbmNlID0gc3RhdGUuc2FmZShzdGF0ZS5hc3NvY2lhdGlvbklkKG5vZGUpLCB7XG4gICAgYmVmb3JlOiB2YWx1ZSxcbiAgICBhZnRlcjogJ10nLFxuICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gIH0pXG4gIHN1YmV4aXQoKVxuICBzdGF0ZS5zdGFjayA9IHN0YWNrXG4gIGV4aXQoKVxuXG4gIGlmICh0eXBlID09PSAnZnVsbCcgfHwgIXRleHQgfHwgdGV4dCAhPT0gcmVmZXJlbmNlKSB7XG4gICAgdmFsdWUgKz0gdHJhY2tlci5tb3ZlKHJlZmVyZW5jZSArICddJylcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnc2hvcnRjdXQnKSB7XG4gICAgLy8gUmVtb3ZlIHRoZSB1bndhbnRlZCBgW2AuXG4gICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgwLCAtMSlcbiAgfSBlbHNlIHtcbiAgICB2YWx1ZSArPSB0cmFja2VyLm1vdmUoJ10nKVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gbGlua1JlZmVyZW5jZVBlZWsoKSB7XG4gIHJldHVybiAnWydcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge09wdGlvbnMsIFN0YXRlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICovXG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEByZXR1cm5zIHtFeGNsdWRlPE9wdGlvbnNbJ2J1bGxldCddLCBudWxsIHwgdW5kZWZpbmVkPn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrQnVsbGV0KHN0YXRlKSB7XG4gIGNvbnN0IG1hcmtlciA9IHN0YXRlLm9wdGlvbnMuYnVsbGV0IHx8ICcqJ1xuXG4gIGlmIChtYXJrZXIgIT09ICcqJyAmJiBtYXJrZXIgIT09ICcrJyAmJiBtYXJrZXIgIT09ICctJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCcgK1xuICAgICAgICBtYXJrZXIgK1xuICAgICAgICAnYCBmb3IgYG9wdGlvbnMuYnVsbGV0YCwgZXhwZWN0ZWQgYCpgLCBgK2AsIG9yIGAtYCdcbiAgICApXG4gIH1cblxuICByZXR1cm4gbWFya2VyXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtPcHRpb25zLCBTdGF0ZX0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqL1xuXG5pbXBvcnQge2NoZWNrQnVsbGV0fSBmcm9tICcuL2NoZWNrLWJ1bGxldC5qcydcblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge0V4Y2x1ZGU8T3B0aW9uc1snYnVsbGV0J10sIG51bGwgfCB1bmRlZmluZWQ+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tCdWxsZXRPdGhlcihzdGF0ZSkge1xuICBjb25zdCBidWxsZXQgPSBjaGVja0J1bGxldChzdGF0ZSlcbiAgY29uc3QgYnVsbGV0T3RoZXIgPSBzdGF0ZS5vcHRpb25zLmJ1bGxldE90aGVyXG5cbiAgaWYgKCFidWxsZXRPdGhlcikge1xuICAgIHJldHVybiBidWxsZXQgPT09ICcqJyA/ICctJyA6ICcqJ1xuICB9XG5cbiAgaWYgKGJ1bGxldE90aGVyICE9PSAnKicgJiYgYnVsbGV0T3RoZXIgIT09ICcrJyAmJiBidWxsZXRPdGhlciAhPT0gJy0nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgJyArXG4gICAgICAgIGJ1bGxldE90aGVyICtcbiAgICAgICAgJ2AgZm9yIGBvcHRpb25zLmJ1bGxldE90aGVyYCwgZXhwZWN0ZWQgYCpgLCBgK2AsIG9yIGAtYCdcbiAgICApXG4gIH1cblxuICBpZiAoYnVsbGV0T3RoZXIgPT09IGJ1bGxldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdFeHBlY3RlZCBgYnVsbGV0YCAoYCcgK1xuICAgICAgICBidWxsZXQgK1xuICAgICAgICAnYCkgYW5kIGBidWxsZXRPdGhlcmAgKGAnICtcbiAgICAgICAgYnVsbGV0T3RoZXIgK1xuICAgICAgICAnYCkgdG8gYmUgZGlmZmVyZW50J1xuICAgIClcbiAgfVxuXG4gIHJldHVybiBidWxsZXRPdGhlclxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7T3B0aW9ucywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge0V4Y2x1ZGU8T3B0aW9uc1snYnVsbGV0T3JkZXJlZCddLCBudWxsIHwgdW5kZWZpbmVkPn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrQnVsbGV0T3JkZXJlZChzdGF0ZSkge1xuICBjb25zdCBtYXJrZXIgPSBzdGF0ZS5vcHRpb25zLmJ1bGxldE9yZGVyZWQgfHwgJy4nXG5cbiAgaWYgKG1hcmtlciAhPT0gJy4nICYmIG1hcmtlciAhPT0gJyknKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgJyArXG4gICAgICAgIG1hcmtlciArXG4gICAgICAgICdgIGZvciBgb3B0aW9ucy5idWxsZXRPcmRlcmVkYCwgZXhwZWN0ZWQgYC5gIG9yIGApYCdcbiAgICApXG4gIH1cblxuICByZXR1cm4gbWFya2VyXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtPcHRpb25zLCBTdGF0ZX0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcmV0dXJucyB7RXhjbHVkZTxPcHRpb25zWydydWxlJ10sIG51bGwgfCB1bmRlZmluZWQ+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tSdWxlKHN0YXRlKSB7XG4gIGNvbnN0IG1hcmtlciA9IHN0YXRlLm9wdGlvbnMucnVsZSB8fCAnKidcblxuICBpZiAobWFya2VyICE9PSAnKicgJiYgbWFya2VyICE9PSAnLScgJiYgbWFya2VyICE9PSAnXycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIGAnICtcbiAgICAgICAgbWFya2VyICtcbiAgICAgICAgJ2AgZm9yIGBvcHRpb25zLnJ1bGVgLCBleHBlY3RlZCBgKmAsIGAtYCwgb3IgYF9gJ1xuICAgIClcbiAgfVxuXG4gIHJldHVybiBtYXJrZXJcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0luZm8sIFN0YXRlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICogQGltcG9ydCB7TGlzdCwgUGFyZW50c30gZnJvbSAnbWRhc3QnXG4gKi9cblxuaW1wb3J0IHtjaGVja0J1bGxldH0gZnJvbSAnLi4vdXRpbC9jaGVjay1idWxsZXQuanMnXG5pbXBvcnQge2NoZWNrQnVsbGV0T3RoZXJ9IGZyb20gJy4uL3V0aWwvY2hlY2stYnVsbGV0LW90aGVyLmpzJ1xuaW1wb3J0IHtjaGVja0J1bGxldE9yZGVyZWR9IGZyb20gJy4uL3V0aWwvY2hlY2stYnVsbGV0LW9yZGVyZWQuanMnXG5pbXBvcnQge2NoZWNrUnVsZX0gZnJvbSAnLi4vdXRpbC9jaGVjay1ydWxlLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7TGlzdH0gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge0luZm99IGluZm9cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaXN0KG5vZGUsIHBhcmVudCwgc3RhdGUsIGluZm8pIHtcbiAgY29uc3QgZXhpdCA9IHN0YXRlLmVudGVyKCdsaXN0JylcbiAgY29uc3QgYnVsbGV0Q3VycmVudCA9IHN0YXRlLmJ1bGxldEN1cnJlbnRcbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBidWxsZXQgPSBub2RlLm9yZGVyZWQgPyBjaGVja0J1bGxldE9yZGVyZWQoc3RhdGUpIDogY2hlY2tCdWxsZXQoc3RhdGUpXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBjb25zdCBidWxsZXRPdGhlciA9IG5vZGUub3JkZXJlZFxuICAgID8gYnVsbGV0ID09PSAnLidcbiAgICAgID8gJyknXG4gICAgICA6ICcuJ1xuICAgIDogY2hlY2tCdWxsZXRPdGhlcihzdGF0ZSlcbiAgbGV0IHVzZURpZmZlcmVudE1hcmtlciA9XG4gICAgcGFyZW50ICYmIHN0YXRlLmJ1bGxldExhc3RVc2VkID8gYnVsbGV0ID09PSBzdGF0ZS5idWxsZXRMYXN0VXNlZCA6IGZhbHNlXG5cbiAgaWYgKCFub2RlLm9yZGVyZWQpIHtcbiAgICBjb25zdCBmaXJzdExpc3RJdGVtID0gbm9kZS5jaGlsZHJlbiA/IG5vZGUuY2hpbGRyZW5bMF0gOiB1bmRlZmluZWRcblxuICAgIC8vIElmIHRoZXJlXHUyMDE5cyBhbiBlbXB0eSBmaXJzdCBsaXN0IGl0ZW0gZGlyZWN0bHkgaW4gdHdvIGxpc3QgaXRlbXMsXG4gICAgLy8gd2UgaGF2ZSB0byB1c2UgYSBkaWZmZXJlbnQgYnVsbGV0OlxuICAgIC8vXG4gICAgLy8gYGBgbWFya2Rvd25cbiAgICAvLyAqIC0gKlxuICAgIC8vIGBgYFxuICAgIC8vXG4gICAgLy8gXHUyMDI2YmVjYXVzZSBvdGhlcndpc2UgaXQgd291bGQgYmVjb21lIG9uZSBiaWcgdGhlbWF0aWMgYnJlYWsuXG4gICAgaWYgKFxuICAgICAgLy8gQnVsbGV0IGNvdWxkIGJlIHVzZWQgYXMgYSB0aGVtYXRpYyBicmVhayBtYXJrZXI6XG4gICAgICAoYnVsbGV0ID09PSAnKicgfHwgYnVsbGV0ID09PSAnLScpICYmXG4gICAgICAvLyBFbXB0eSBmaXJzdCBsaXN0IGl0ZW06XG4gICAgICBmaXJzdExpc3RJdGVtICYmXG4gICAgICAoIWZpcnN0TGlzdEl0ZW0uY2hpbGRyZW4gfHwgIWZpcnN0TGlzdEl0ZW0uY2hpbGRyZW5bMF0pICYmXG4gICAgICAvLyBEaXJlY3RseSBpbiB0d28gb3RoZXIgbGlzdCBpdGVtczpcbiAgICAgIHN0YXRlLnN0YWNrW3N0YXRlLnN0YWNrLmxlbmd0aCAtIDFdID09PSAnbGlzdCcgJiZcbiAgICAgIHN0YXRlLnN0YWNrW3N0YXRlLnN0YWNrLmxlbmd0aCAtIDJdID09PSAnbGlzdEl0ZW0nICYmXG4gICAgICBzdGF0ZS5zdGFja1tzdGF0ZS5zdGFjay5sZW5ndGggLSAzXSA9PT0gJ2xpc3QnICYmXG4gICAgICBzdGF0ZS5zdGFja1tzdGF0ZS5zdGFjay5sZW5ndGggLSA0XSA9PT0gJ2xpc3RJdGVtJyAmJlxuICAgICAgLy8gVGhhdCBhcmUgZWFjaCB0aGUgZmlyc3QgY2hpbGQuXG4gICAgICBzdGF0ZS5pbmRleFN0YWNrW3N0YXRlLmluZGV4U3RhY2subGVuZ3RoIC0gMV0gPT09IDAgJiZcbiAgICAgIHN0YXRlLmluZGV4U3RhY2tbc3RhdGUuaW5kZXhTdGFjay5sZW5ndGggLSAyXSA9PT0gMCAmJlxuICAgICAgc3RhdGUuaW5kZXhTdGFja1tzdGF0ZS5pbmRleFN0YWNrLmxlbmd0aCAtIDNdID09PSAwXG4gICAgKSB7XG4gICAgICB1c2VEaWZmZXJlbnRNYXJrZXIgPSB0cnVlXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmVcdTIwMTlzIGEgdGhlbWF0aWMgYnJlYWsgYXQgdGhlIHN0YXJ0IG9mIHRoZSBmaXJzdCBsaXN0IGl0ZW0sXG4gICAgLy8gd2UgaGF2ZSB0byB1c2UgYSBkaWZmZXJlbnQgYnVsbGV0OlxuICAgIC8vXG4gICAgLy8gYGBgbWFya2Rvd25cbiAgICAvLyAqIC0tLVxuICAgIC8vIGBgYFxuICAgIC8vXG4gICAgLy8gXHUyMDI2YmVjYXVzZSBvdGhlcndpc2UgaXQgd291bGQgYmVjb21lIG9uZSBiaWcgdGhlbWF0aWMgYnJlYWsuXG4gICAgaWYgKGNoZWNrUnVsZShzdGF0ZSkgPT09IGJ1bGxldCAmJiBmaXJzdExpc3RJdGVtKSB7XG4gICAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBub2RlLmNoaWxkcmVuW2luZGV4XVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBpdGVtICYmXG4gICAgICAgICAgaXRlbS50eXBlID09PSAnbGlzdEl0ZW0nICYmXG4gICAgICAgICAgaXRlbS5jaGlsZHJlbiAmJlxuICAgICAgICAgIGl0ZW0uY2hpbGRyZW5bMF0gJiZcbiAgICAgICAgICBpdGVtLmNoaWxkcmVuWzBdLnR5cGUgPT09ICd0aGVtYXRpY0JyZWFrJ1xuICAgICAgICApIHtcbiAgICAgICAgICB1c2VEaWZmZXJlbnRNYXJrZXIgPSB0cnVlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICh1c2VEaWZmZXJlbnRNYXJrZXIpIHtcbiAgICBidWxsZXQgPSBidWxsZXRPdGhlclxuICB9XG5cbiAgc3RhdGUuYnVsbGV0Q3VycmVudCA9IGJ1bGxldFxuICBjb25zdCB2YWx1ZSA9IHN0YXRlLmNvbnRhaW5lckZsb3cobm9kZSwgaW5mbylcbiAgc3RhdGUuYnVsbGV0TGFzdFVzZWQgPSBidWxsZXRcbiAgc3RhdGUuYnVsbGV0Q3VycmVudCA9IGJ1bGxldEN1cnJlbnRcbiAgZXhpdCgpXG4gIHJldHVybiB2YWx1ZVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7T3B0aW9ucywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge0V4Y2x1ZGU8T3B0aW9uc1snbGlzdEl0ZW1JbmRlbnQnXSwgbnVsbCB8IHVuZGVmaW5lZD59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0xpc3RJdGVtSW5kZW50KHN0YXRlKSB7XG4gIGNvbnN0IHN0eWxlID0gc3RhdGUub3B0aW9ucy5saXN0SXRlbUluZGVudCB8fCAnb25lJ1xuXG4gIGlmIChzdHlsZSAhPT0gJ3RhYicgJiYgc3R5bGUgIT09ICdvbmUnICYmIHN0eWxlICE9PSAnbWl4ZWQnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgJyArXG4gICAgICAgIHN0eWxlICtcbiAgICAgICAgJ2AgZm9yIGBvcHRpb25zLmxpc3RJdGVtSW5kZW50YCwgZXhwZWN0ZWQgYHRhYmAsIGBvbmVgLCBvciBgbWl4ZWRgJ1xuICAgIClcbiAgfVxuXG4gIHJldHVybiBzdHlsZVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7SW5mbywgTWFwLCBTdGF0ZX0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqIEBpbXBvcnQge0xpc3RJdGVtLCBQYXJlbnRzfSBmcm9tICdtZGFzdCdcbiAqL1xuXG5pbXBvcnQge2NoZWNrQnVsbGV0fSBmcm9tICcuLi91dGlsL2NoZWNrLWJ1bGxldC5qcydcbmltcG9ydCB7Y2hlY2tMaXN0SXRlbUluZGVudH0gZnJvbSAnLi4vdXRpbC9jaGVjay1saXN0LWl0ZW0taW5kZW50LmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7TGlzdEl0ZW19IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbGlzdEl0ZW0obm9kZSwgcGFyZW50LCBzdGF0ZSwgaW5mbykge1xuICBjb25zdCBsaXN0SXRlbUluZGVudCA9IGNoZWNrTGlzdEl0ZW1JbmRlbnQoc3RhdGUpXG4gIGxldCBidWxsZXQgPSBzdGF0ZS5idWxsZXRDdXJyZW50IHx8IGNoZWNrQnVsbGV0KHN0YXRlKVxuXG4gIC8vIEFkZCB0aGUgbWFya2VyIHZhbHVlIGZvciBvcmRlcmVkIGxpc3RzLlxuICBpZiAocGFyZW50ICYmIHBhcmVudC50eXBlID09PSAnbGlzdCcgJiYgcGFyZW50Lm9yZGVyZWQpIHtcbiAgICBidWxsZXQgPVxuICAgICAgKHR5cGVvZiBwYXJlbnQuc3RhcnQgPT09ICdudW1iZXInICYmIHBhcmVudC5zdGFydCA+IC0xXG4gICAgICAgID8gcGFyZW50LnN0YXJ0XG4gICAgICAgIDogMSkgK1xuICAgICAgKHN0YXRlLm9wdGlvbnMuaW5jcmVtZW50TGlzdE1hcmtlciA9PT0gZmFsc2VcbiAgICAgICAgPyAwXG4gICAgICAgIDogcGFyZW50LmNoaWxkcmVuLmluZGV4T2Yobm9kZSkpICtcbiAgICAgIGJ1bGxldFxuICB9XG5cbiAgbGV0IHNpemUgPSBidWxsZXQubGVuZ3RoICsgMVxuXG4gIGlmIChcbiAgICBsaXN0SXRlbUluZGVudCA9PT0gJ3RhYicgfHxcbiAgICAobGlzdEl0ZW1JbmRlbnQgPT09ICdtaXhlZCcgJiZcbiAgICAgICgocGFyZW50ICYmIHBhcmVudC50eXBlID09PSAnbGlzdCcgJiYgcGFyZW50LnNwcmVhZCkgfHwgbm9kZS5zcHJlYWQpKVxuICApIHtcbiAgICBzaXplID0gTWF0aC5jZWlsKHNpemUgLyA0KSAqIDRcbiAgfVxuXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIHRyYWNrZXIubW92ZShidWxsZXQgKyAnICcucmVwZWF0KHNpemUgLSBidWxsZXQubGVuZ3RoKSlcbiAgdHJhY2tlci5zaGlmdChzaXplKVxuICBjb25zdCBleGl0ID0gc3RhdGUuZW50ZXIoJ2xpc3RJdGVtJylcbiAgY29uc3QgdmFsdWUgPSBzdGF0ZS5pbmRlbnRMaW5lcyhcbiAgICBzdGF0ZS5jb250YWluZXJGbG93KG5vZGUsIHRyYWNrZXIuY3VycmVudCgpKSxcbiAgICBtYXBcbiAgKVxuICBleGl0KClcblxuICByZXR1cm4gdmFsdWVcblxuICAvKiogQHR5cGUge01hcH0gKi9cbiAgZnVuY3Rpb24gbWFwKGxpbmUsIGluZGV4LCBibGFuaykge1xuICAgIGlmIChpbmRleCkge1xuICAgICAgcmV0dXJuIChibGFuayA/ICcnIDogJyAnLnJlcGVhdChzaXplKSkgKyBsaW5lXG4gICAgfVxuXG4gICAgcmV0dXJuIChibGFuayA/IGJ1bGxldCA6IGJ1bGxldCArICcgJy5yZXBlYXQoc2l6ZSAtIGJ1bGxldC5sZW5ndGgpKSArIGxpbmVcbiAgfVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7SW5mbywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKiBAaW1wb3J0IHtQYXJhZ3JhcGgsIFBhcmVudHN9IGZyb20gJ21kYXN0J1xuICovXG5cbi8qKlxuICogQHBhcmFtIHtQYXJhZ3JhcGh9IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gX1xuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcmFncmFwaChub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICBjb25zdCBleGl0ID0gc3RhdGUuZW50ZXIoJ3BhcmFncmFwaCcpXG4gIGNvbnN0IHN1YmV4aXQgPSBzdGF0ZS5lbnRlcigncGhyYXNpbmcnKVxuICBjb25zdCB2YWx1ZSA9IHN0YXRlLmNvbnRhaW5lclBocmFzaW5nKG5vZGUsIGluZm8pXG4gIHN1YmV4aXQoKVxuICBleGl0KClcbiAgcmV0dXJuIHZhbHVlXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkh0bWx9IEh0bWxcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUGhyYXNpbmdDb250ZW50fSBQaHJhc2luZ0NvbnRlbnRcbiAqL1xuXG5pbXBvcnQge2NvbnZlcnR9IGZyb20gJ3VuaXN0LXV0aWwtaXMnXG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGdpdmVuIHZhbHVlIGlzICpwaHJhc2luZyBjb250ZW50Ki5cbiAqXG4gKiA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogRXhjbHVkZXMgYGh0bWxgLCB3aGljaCBjYW4gYmUgYm90aCBwaHJhc2luZyBvciBmbG93LlxuICpcbiAqIEBwYXJhbSBub2RlXG4gKiAgIFRoaW5nIHRvIGNoZWNrLCB0eXBpY2FsbHkgYE5vZGVgLlxuICogQHJldHVybnNcbiAqICAgV2hldGhlciBgdmFsdWVgIGlzIHBocmFzaW5nIGNvbnRlbnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IHBocmFzaW5nID1cbiAgLyoqIEB0eXBlIHsobm9kZT86IHVua25vd24pID0+IG5vZGUgaXMgRXhjbHVkZTxQaHJhc2luZ0NvbnRlbnQsIEh0bWw+fSAqL1xuICAoXG4gICAgY29udmVydChbXG4gICAgICAnYnJlYWsnLFxuICAgICAgJ2RlbGV0ZScsXG4gICAgICAnZW1waGFzaXMnLFxuICAgICAgLy8gVG8gZG86IG5leHQgbWFqb3I6IHJlbW92ZWQgc2luY2UgZm9vdG5vdGVzIHdlcmUgYWRkZWQgdG8gR0ZNLlxuICAgICAgJ2Zvb3Rub3RlJyxcbiAgICAgICdmb290bm90ZVJlZmVyZW5jZScsXG4gICAgICAnaW1hZ2UnLFxuICAgICAgJ2ltYWdlUmVmZXJlbmNlJyxcbiAgICAgICdpbmxpbmVDb2RlJyxcbiAgICAgIC8vIEVuYWJsZWQgYnkgYG1kYXN0LXV0aWwtbWF0aGA6XG4gICAgICAnaW5saW5lTWF0aCcsXG4gICAgICAnbGluaycsXG4gICAgICAnbGlua1JlZmVyZW5jZScsXG4gICAgICAvLyBFbmFibGVkIGJ5IGBtZGFzdC11dGlsLW1keGA6XG4gICAgICAnbWR4SnN4VGV4dEVsZW1lbnQnLFxuICAgICAgLy8gRW5hYmxlZCBieSBgbWRhc3QtdXRpbC1tZHhgOlxuICAgICAgJ21keFRleHRFeHByZXNzaW9uJyxcbiAgICAgICdzdHJvbmcnLFxuICAgICAgJ3RleHQnLFxuICAgICAgLy8gRW5hYmxlZCBieSBgbWRhc3QtdXRpbC1kaXJlY3RpdmVgOlxuICAgICAgJ3RleHREaXJlY3RpdmUnXG4gICAgXSlcbiAgKVxuIiwgImV4cG9ydCB7cGhyYXNpbmd9IGZyb20gJy4vbGliL2luZGV4LmpzJ1xuIiwgIi8qKlxuICogQGltcG9ydCB7SW5mbywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKiBAaW1wb3J0IHtQYXJlbnRzLCBSb290fSBmcm9tICdtZGFzdCdcbiAqL1xuXG5pbXBvcnQge3BocmFzaW5nfSBmcm9tICdtZGFzdC11dGlsLXBocmFzaW5nJ1xuXG4vKipcbiAqIEBwYXJhbSB7Um9vdH0gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdChub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICAvLyBOb3RlOiBgaHRtbGAgbm9kZXMgYXJlIGFtYmlndW91cy5cbiAgY29uc3QgaGFzUGhyYXNpbmcgPSBub2RlLmNoaWxkcmVuLnNvbWUoZnVuY3Rpb24gKGQpIHtcbiAgICByZXR1cm4gcGhyYXNpbmcoZClcbiAgfSlcblxuICBjb25zdCBjb250YWluZXIgPSBoYXNQaHJhc2luZyA/IHN0YXRlLmNvbnRhaW5lclBocmFzaW5nIDogc3RhdGUuY29udGFpbmVyRmxvd1xuICByZXR1cm4gY29udGFpbmVyLmNhbGwoc3RhdGUsIG5vZGUsIGluZm8pXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtPcHRpb25zLCBTdGF0ZX0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcmV0dXJucyB7RXhjbHVkZTxPcHRpb25zWydzdHJvbmcnXSwgbnVsbCB8IHVuZGVmaW5lZD59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1N0cm9uZyhzdGF0ZSkge1xuICBjb25zdCBtYXJrZXIgPSBzdGF0ZS5vcHRpb25zLnN0cm9uZyB8fCAnKidcblxuICBpZiAobWFya2VyICE9PSAnKicgJiYgbWFya2VyICE9PSAnXycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ2Fubm90IHNlcmlhbGl6ZSBzdHJvbmcgd2l0aCBgJyArXG4gICAgICAgIG1hcmtlciArXG4gICAgICAgICdgIGZvciBgb3B0aW9ucy5zdHJvbmdgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCdcbiAgICApXG4gIH1cblxuICByZXR1cm4gbWFya2VyXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtJbmZvLCBTdGF0ZX0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqIEBpbXBvcnQge1BhcmVudHMsIFN0cm9uZ30gZnJvbSAnbWRhc3QnXG4gKi9cblxuaW1wb3J0IHtjaGVja1N0cm9uZ30gZnJvbSAnLi4vdXRpbC9jaGVjay1zdHJvbmcuanMnXG5pbXBvcnQge2VuY29kZUNoYXJhY3RlclJlZmVyZW5jZX0gZnJvbSAnLi4vdXRpbC9lbmNvZGUtY2hhcmFjdGVyLXJlZmVyZW5jZS5qcydcbmltcG9ydCB7ZW5jb2RlSW5mb30gZnJvbSAnLi4vdXRpbC9lbmNvZGUtaW5mby5qcydcblxuc3Ryb25nLnBlZWsgPSBzdHJvbmdQZWVrXG5cbi8qKlxuICogQHBhcmFtIHtTdHJvbmd9IG5vZGVcbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gX1xuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cm9uZyhub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICBjb25zdCBtYXJrZXIgPSBjaGVja1N0cm9uZyhzdGF0ZSlcbiAgY29uc3QgZXhpdCA9IHN0YXRlLmVudGVyKCdzdHJvbmcnKVxuICBjb25zdCB0cmFja2VyID0gc3RhdGUuY3JlYXRlVHJhY2tlcihpbmZvKVxuICBjb25zdCBiZWZvcmUgPSB0cmFja2VyLm1vdmUobWFya2VyICsgbWFya2VyKVxuXG4gIGxldCBiZXR3ZWVuID0gdHJhY2tlci5tb3ZlKFxuICAgIHN0YXRlLmNvbnRhaW5lclBocmFzaW5nKG5vZGUsIHtcbiAgICAgIGFmdGVyOiBtYXJrZXIsXG4gICAgICBiZWZvcmUsXG4gICAgICAuLi50cmFja2VyLmN1cnJlbnQoKVxuICAgIH0pXG4gIClcbiAgY29uc3QgYmV0d2VlbkhlYWQgPSBiZXR3ZWVuLmNoYXJDb2RlQXQoMClcbiAgY29uc3Qgb3BlbiA9IGVuY29kZUluZm8oXG4gICAgaW5mby5iZWZvcmUuY2hhckNvZGVBdChpbmZvLmJlZm9yZS5sZW5ndGggLSAxKSxcbiAgICBiZXR3ZWVuSGVhZCxcbiAgICBtYXJrZXJcbiAgKVxuXG4gIGlmIChvcGVuLmluc2lkZSkge1xuICAgIGJldHdlZW4gPSBlbmNvZGVDaGFyYWN0ZXJSZWZlcmVuY2UoYmV0d2VlbkhlYWQpICsgYmV0d2Vlbi5zbGljZSgxKVxuICB9XG5cbiAgY29uc3QgYmV0d2VlblRhaWwgPSBiZXR3ZWVuLmNoYXJDb2RlQXQoYmV0d2Vlbi5sZW5ndGggLSAxKVxuICBjb25zdCBjbG9zZSA9IGVuY29kZUluZm8oaW5mby5hZnRlci5jaGFyQ29kZUF0KDApLCBiZXR3ZWVuVGFpbCwgbWFya2VyKVxuXG4gIGlmIChjbG9zZS5pbnNpZGUpIHtcbiAgICBiZXR3ZWVuID0gYmV0d2Vlbi5zbGljZSgwLCAtMSkgKyBlbmNvZGVDaGFyYWN0ZXJSZWZlcmVuY2UoYmV0d2VlblRhaWwpXG4gIH1cblxuICBjb25zdCBhZnRlciA9IHRyYWNrZXIubW92ZShtYXJrZXIgKyBtYXJrZXIpXG5cbiAgZXhpdCgpXG5cbiAgc3RhdGUuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvID0ge1xuICAgIGFmdGVyOiBjbG9zZS5vdXRzaWRlLFxuICAgIGJlZm9yZTogb3Blbi5vdXRzaWRlXG4gIH1cbiAgcmV0dXJuIGJlZm9yZSArIGJldHdlZW4gKyBhZnRlclxufVxuXG4vKipcbiAqIEBwYXJhbSB7U3Ryb25nfSBfXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF8xXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc3Ryb25nUGVlayhfLCBfMSwgc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLm9wdGlvbnMuc3Ryb25nIHx8ICcqJ1xufVxuIiwgIi8qKlxuICogQGltcG9ydCB7SW5mbywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKiBAaW1wb3J0IHtQYXJlbnRzLCBUZXh0fSBmcm9tICdtZGFzdCdcbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7VGV4dH0gbm9kZVxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdGV4dChub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICByZXR1cm4gc3RhdGUuc2FmZShub2RlLnZhbHVlLCBpbmZvKVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7T3B0aW9ucywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge0V4Y2x1ZGU8T3B0aW9uc1sncnVsZVJlcGV0aXRpb24nXSwgbnVsbCB8IHVuZGVmaW5lZD59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1J1bGVSZXBldGl0aW9uKHN0YXRlKSB7XG4gIGNvbnN0IHJlcGV0aXRpb24gPSBzdGF0ZS5vcHRpb25zLnJ1bGVSZXBldGl0aW9uIHx8IDNcblxuICBpZiAocmVwZXRpdGlvbiA8IDMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIHJlcGV0aXRpb24gYCcgK1xuICAgICAgICByZXBldGl0aW9uICtcbiAgICAgICAgJ2AgZm9yIGBvcHRpb25zLnJ1bGVSZXBldGl0aW9uYCwgZXhwZWN0ZWQgYDNgIG9yIG1vcmUnXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIHJlcGV0aXRpb25cbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICogQGltcG9ydCB7UGFyZW50cywgVGhlbWF0aWNCcmVha30gZnJvbSAnbWRhc3QnXG4gKi9cblxuaW1wb3J0IHtjaGVja1J1bGVSZXBldGl0aW9ufSBmcm9tICcuLi91dGlsL2NoZWNrLXJ1bGUtcmVwZXRpdGlvbi5qcydcbmltcG9ydCB7Y2hlY2tSdWxlfSBmcm9tICcuLi91dGlsL2NoZWNrLXJ1bGUuanMnXG5cbi8qKlxuICogQHBhcmFtIHtUaGVtYXRpY0JyZWFrfSBfXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF8xXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRoZW1hdGljQnJlYWsoXywgXzEsIHN0YXRlKSB7XG4gIGNvbnN0IHZhbHVlID0gKFxuICAgIGNoZWNrUnVsZShzdGF0ZSkgKyAoc3RhdGUub3B0aW9ucy5ydWxlU3BhY2VzID8gJyAnIDogJycpXG4gICkucmVwZWF0KGNoZWNrUnVsZVJlcGV0aXRpb24oc3RhdGUpKVxuXG4gIHJldHVybiBzdGF0ZS5vcHRpb25zLnJ1bGVTcGFjZXMgPyB2YWx1ZS5zbGljZSgwLCAtMSkgOiB2YWx1ZVxufVxuIiwgImltcG9ydCB7YmxvY2txdW90ZX0gZnJvbSAnLi9ibG9ja3F1b3RlLmpzJ1xuaW1wb3J0IHtoYXJkQnJlYWt9IGZyb20gJy4vYnJlYWsuanMnXG5pbXBvcnQge2NvZGV9IGZyb20gJy4vY29kZS5qcydcbmltcG9ydCB7ZGVmaW5pdGlvbn0gZnJvbSAnLi9kZWZpbml0aW9uLmpzJ1xuaW1wb3J0IHtlbXBoYXNpc30gZnJvbSAnLi9lbXBoYXNpcy5qcydcbmltcG9ydCB7aGVhZGluZ30gZnJvbSAnLi9oZWFkaW5nLmpzJ1xuaW1wb3J0IHtodG1sfSBmcm9tICcuL2h0bWwuanMnXG5pbXBvcnQge2ltYWdlfSBmcm9tICcuL2ltYWdlLmpzJ1xuaW1wb3J0IHtpbWFnZVJlZmVyZW5jZX0gZnJvbSAnLi9pbWFnZS1yZWZlcmVuY2UuanMnXG5pbXBvcnQge2lubGluZUNvZGV9IGZyb20gJy4vaW5saW5lLWNvZGUuanMnXG5pbXBvcnQge2xpbmt9IGZyb20gJy4vbGluay5qcydcbmltcG9ydCB7bGlua1JlZmVyZW5jZX0gZnJvbSAnLi9saW5rLXJlZmVyZW5jZS5qcydcbmltcG9ydCB7bGlzdH0gZnJvbSAnLi9saXN0LmpzJ1xuaW1wb3J0IHtsaXN0SXRlbX0gZnJvbSAnLi9saXN0LWl0ZW0uanMnXG5pbXBvcnQge3BhcmFncmFwaH0gZnJvbSAnLi9wYXJhZ3JhcGguanMnXG5pbXBvcnQge3Jvb3R9IGZyb20gJy4vcm9vdC5qcydcbmltcG9ydCB7c3Ryb25nfSBmcm9tICcuL3N0cm9uZy5qcydcbmltcG9ydCB7dGV4dH0gZnJvbSAnLi90ZXh0LmpzJ1xuaW1wb3J0IHt0aGVtYXRpY0JyZWFrfSBmcm9tICcuL3RoZW1hdGljLWJyZWFrLmpzJ1xuXG4vKipcbiAqIERlZmF1bHQgKENvbW1vbk1hcmspIGhhbmRsZXJzLlxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlID0ge1xuICBibG9ja3F1b3RlLFxuICBicmVhazogaGFyZEJyZWFrLFxuICBjb2RlLFxuICBkZWZpbml0aW9uLFxuICBlbXBoYXNpcyxcbiAgaGFyZEJyZWFrLFxuICBoZWFkaW5nLFxuICBodG1sLFxuICBpbWFnZSxcbiAgaW1hZ2VSZWZlcmVuY2UsXG4gIGlubGluZUNvZGUsXG4gIGxpbmssXG4gIGxpbmtSZWZlcmVuY2UsXG4gIGxpc3QsXG4gIGxpc3RJdGVtLFxuICBwYXJhZ3JhcGgsXG4gIHJvb3QsXG4gIHN0cm9uZyxcbiAgdGV4dCxcbiAgdGhlbWF0aWNCcmVha1xufVxuIiwgIi8qKlxuICogQGltcG9ydCB7Sm9pbn0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqL1xuXG5pbXBvcnQge2Zvcm1hdENvZGVBc0luZGVudGVkfSBmcm9tICcuL3V0aWwvZm9ybWF0LWNvZGUtYXMtaW5kZW50ZWQuanMnXG5pbXBvcnQge2Zvcm1hdEhlYWRpbmdBc1NldGV4dH0gZnJvbSAnLi91dGlsL2Zvcm1hdC1oZWFkaW5nLWFzLXNldGV4dC5qcydcblxuLyoqIEB0eXBlIHtBcnJheTxKb2luPn0gKi9cbmV4cG9ydCBjb25zdCBqb2luID0gW2pvaW5EZWZhdWx0c11cblxuLyoqIEB0eXBlIHtKb2lufSAqL1xuZnVuY3Rpb24gam9pbkRlZmF1bHRzKGxlZnQsIHJpZ2h0LCBwYXJlbnQsIHN0YXRlKSB7XG4gIC8vIEluZGVudGVkIGNvZGUgYWZ0ZXIgbGlzdCBvciBhbm90aGVyIGluZGVudGVkIGNvZGUuXG4gIGlmIChcbiAgICByaWdodC50eXBlID09PSAnY29kZScgJiZcbiAgICBmb3JtYXRDb2RlQXNJbmRlbnRlZChyaWdodCwgc3RhdGUpICYmXG4gICAgKGxlZnQudHlwZSA9PT0gJ2xpc3QnIHx8XG4gICAgICAobGVmdC50eXBlID09PSByaWdodC50eXBlICYmIGZvcm1hdENvZGVBc0luZGVudGVkKGxlZnQsIHN0YXRlKSkpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLy8gSm9pbiBjaGlsZHJlbiBvZiBhIGxpc3Qgb3IgYW4gaXRlbS5cbiAgLy8gSW4gd2hpY2ggY2FzZSwgYHBhcmVudGAgaGFzIGEgYHNwcmVhZGAgZmllbGQuXG4gIGlmICgnc3ByZWFkJyBpbiBwYXJlbnQgJiYgdHlwZW9mIHBhcmVudC5zcHJlYWQgPT09ICdib29sZWFuJykge1xuICAgIGlmIChcbiAgICAgIGxlZnQudHlwZSA9PT0gJ3BhcmFncmFwaCcgJiZcbiAgICAgIC8vIFR3byBwYXJhZ3JhcGhzLlxuICAgICAgKGxlZnQudHlwZSA9PT0gcmlnaHQudHlwZSB8fFxuICAgICAgICByaWdodC50eXBlID09PSAnZGVmaW5pdGlvbicgfHxcbiAgICAgICAgLy8gUGFyYWdyYXBoIGZvbGxvd2VkIGJ5IGEgc2V0ZXh0IGhlYWRpbmcuXG4gICAgICAgIChyaWdodC50eXBlID09PSAnaGVhZGluZycgJiYgZm9ybWF0SGVhZGluZ0FzU2V0ZXh0KHJpZ2h0LCBzdGF0ZSkpKVxuICAgICkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmVudC5zcHJlYWQgPyAxIDogMFxuICB9XG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtDb25zdHJ1Y3ROYW1lLCBVbnNhZmV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKi9cblxuLyoqXG4gKiBMaXN0IG9mIGNvbnN0cnVjdHMgdGhhdCBvY2N1ciBpbiBwaHJhc2luZyAocGFyYWdyYXBocywgaGVhZGluZ3MpLCBidXQgY2Fubm90XG4gKiBjb250YWluIHRoaW5ncyBsaWtlIGF0dGVudGlvbiAoZW1waGFzaXMsIHN0cm9uZyksIGltYWdlcywgb3IgbGlua3MuXG4gKiBTbyB0aGV5IHNvcnQgb2YgY2FuY2VsIGVhY2ggb3RoZXIgb3V0LlxuICogTm90ZTogY291bGQgdXNlIGEgYmV0dGVyIG5hbWUuXG4gKlxuICogQHR5cGUge0FycmF5PENvbnN0cnVjdE5hbWU+fVxuICovXG5jb25zdCBmdWxsUGhyYXNpbmdTcGFucyA9IFtcbiAgJ2F1dG9saW5rJyxcbiAgJ2Rlc3RpbmF0aW9uTGl0ZXJhbCcsXG4gICdkZXN0aW5hdGlvblJhdycsXG4gICdyZWZlcmVuY2UnLFxuICAndGl0bGVRdW90ZScsXG4gICd0aXRsZUFwb3N0cm9waGUnXG5dXG5cbi8qKiBAdHlwZSB7QXJyYXk8VW5zYWZlPn0gKi9cbmV4cG9ydCBjb25zdCB1bnNhZmUgPSBbXG4gIHtjaGFyYWN0ZXI6ICdcXHQnLCBhZnRlcjogJ1tcXFxcclxcXFxuXScsIGluQ29uc3RydWN0OiAncGhyYXNpbmcnfSxcbiAge2NoYXJhY3RlcjogJ1xcdCcsIGJlZm9yZTogJ1tcXFxcclxcXFxuXScsIGluQ29uc3RydWN0OiAncGhyYXNpbmcnfSxcbiAge1xuICAgIGNoYXJhY3RlcjogJ1xcdCcsXG4gICAgaW5Db25zdHJ1Y3Q6IFsnY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCcsICdjb2RlRmVuY2VkTGFuZ1RpbGRlJ11cbiAgfSxcbiAge1xuICAgIGNoYXJhY3RlcjogJ1xccicsXG4gICAgaW5Db25zdHJ1Y3Q6IFtcbiAgICAgICdjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50JyxcbiAgICAgICdjb2RlRmVuY2VkTGFuZ1RpbGRlJyxcbiAgICAgICdjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50JyxcbiAgICAgICdjb2RlRmVuY2VkTWV0YVRpbGRlJyxcbiAgICAgICdkZXN0aW5hdGlvbkxpdGVyYWwnLFxuICAgICAgJ2hlYWRpbmdBdHgnXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2hhcmFjdGVyOiAnXFxuJyxcbiAgICBpbkNvbnN0cnVjdDogW1xuICAgICAgJ2NvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQnLFxuICAgICAgJ2NvZGVGZW5jZWRMYW5nVGlsZGUnLFxuICAgICAgJ2NvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQnLFxuICAgICAgJ2NvZGVGZW5jZWRNZXRhVGlsZGUnLFxuICAgICAgJ2Rlc3RpbmF0aW9uTGl0ZXJhbCcsXG4gICAgICAnaGVhZGluZ0F0eCdcbiAgICBdXG4gIH0sXG4gIHtjaGFyYWN0ZXI6ICcgJywgYWZ0ZXI6ICdbXFxcXHJcXFxcbl0nLCBpbkNvbnN0cnVjdDogJ3BocmFzaW5nJ30sXG4gIHtjaGFyYWN0ZXI6ICcgJywgYmVmb3JlOiAnW1xcXFxyXFxcXG5dJywgaW5Db25zdHJ1Y3Q6ICdwaHJhc2luZyd9LFxuICB7XG4gICAgY2hhcmFjdGVyOiAnICcsXG4gICAgaW5Db25zdHJ1Y3Q6IFsnY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCcsICdjb2RlRmVuY2VkTGFuZ1RpbGRlJ11cbiAgfSxcbiAgLy8gQW4gZXhjbGFtYXRpb24gbWFyayBjYW4gc3RhcnQgYW4gaW1hZ2UsIGlmIGl0IGlzIGZvbGxvd2VkIGJ5IGEgbGluayBvclxuICAvLyBhIGxpbmsgcmVmZXJlbmNlLlxuICB7XG4gICAgY2hhcmFjdGVyOiAnIScsXG4gICAgYWZ0ZXI6ICdcXFxcWycsXG4gICAgaW5Db25zdHJ1Y3Q6ICdwaHJhc2luZycsXG4gICAgbm90SW5Db25zdHJ1Y3Q6IGZ1bGxQaHJhc2luZ1NwYW5zXG4gIH0sXG4gIC8vIEEgcXVvdGUgY2FuIGJyZWFrIG91dCBvZiBhIHRpdGxlLlxuICB7Y2hhcmFjdGVyOiAnXCInLCBpbkNvbnN0cnVjdDogJ3RpdGxlUXVvdGUnfSxcbiAgLy8gQSBudW1iZXIgc2lnbiBjb3VsZCBzdGFydCBhbiBBVFggaGVhZGluZyBpZiBpdCBzdGFydHMgYSBsaW5lLlxuICB7YXRCcmVhazogdHJ1ZSwgY2hhcmFjdGVyOiAnIyd9LFxuICB7Y2hhcmFjdGVyOiAnIycsIGluQ29uc3RydWN0OiAnaGVhZGluZ0F0eCcsIGFmdGVyOiAnKD86W1xcclxcbl18JCknfSxcbiAgLy8gRG9sbGFyIHNpZ24gYW5kIHBlcmNlbnRhZ2UgYXJlIG5vdCB1c2VkIGluIG1hcmtkb3duLlxuICAvLyBBbiBhbXBlcnNhbmQgY291bGQgc3RhcnQgYSBjaGFyYWN0ZXIgcmVmZXJlbmNlLlxuICB7Y2hhcmFjdGVyOiAnJicsIGFmdGVyOiAnWyNBLVphLXpdJywgaW5Db25zdHJ1Y3Q6ICdwaHJhc2luZyd9LFxuICAvLyBBbiBhcG9zdHJvcGhlIGNhbiBicmVhayBvdXQgb2YgYSB0aXRsZS5cbiAge2NoYXJhY3RlcjogXCInXCIsIGluQ29uc3RydWN0OiAndGl0bGVBcG9zdHJvcGhlJ30sXG4gIC8vIEEgbGVmdCBwYXJlbiBjb3VsZCBicmVhayBvdXQgb2YgYSBkZXN0aW5hdGlvbiByYXcuXG4gIHtjaGFyYWN0ZXI6ICcoJywgaW5Db25zdHJ1Y3Q6ICdkZXN0aW5hdGlvblJhdyd9LFxuICAvLyBBIGxlZnQgcGFyZW4gZm9sbG93ZWQgYnkgYF1gIGNvdWxkIG1ha2Ugc29tZXRoaW5nIGludG8gYSBsaW5rIG9yIGltYWdlLlxuICB7XG4gICAgYmVmb3JlOiAnXFxcXF0nLFxuICAgIGNoYXJhY3RlcjogJygnLFxuICAgIGluQ29uc3RydWN0OiAncGhyYXNpbmcnLFxuICAgIG5vdEluQ29uc3RydWN0OiBmdWxsUGhyYXNpbmdTcGFuc1xuICB9LFxuICAvLyBBIHJpZ2h0IHBhcmVuIGNvdWxkIHN0YXJ0IGEgbGlzdCBpdGVtIG9yIGJyZWFrIG91dCBvZiBhIGRlc3RpbmF0aW9uXG4gIC8vIHJhdy5cbiAge2F0QnJlYWs6IHRydWUsIGJlZm9yZTogJ1xcXFxkKycsIGNoYXJhY3RlcjogJyknfSxcbiAge2NoYXJhY3RlcjogJyknLCBpbkNvbnN0cnVjdDogJ2Rlc3RpbmF0aW9uUmF3J30sXG4gIC8vIEFuIGFzdGVyaXNrIGNhbiBzdGFydCB0aGVtYXRpYyBicmVha3MsIGxpc3QgaXRlbXMsIGVtcGhhc2lzLCBzdHJvbmcuXG4gIHthdEJyZWFrOiB0cnVlLCBjaGFyYWN0ZXI6ICcqJywgYWZ0ZXI6ICcoPzpbIFxcdFxcclxcbipdKSd9LFxuICB7Y2hhcmFjdGVyOiAnKicsIGluQ29uc3RydWN0OiAncGhyYXNpbmcnLCBub3RJbkNvbnN0cnVjdDogZnVsbFBocmFzaW5nU3BhbnN9LFxuICAvLyBBIHBsdXMgc2lnbiBjb3VsZCBzdGFydCBhIGxpc3QgaXRlbS5cbiAge2F0QnJlYWs6IHRydWUsIGNoYXJhY3RlcjogJysnLCBhZnRlcjogJyg/OlsgXFx0XFxyXFxuXSknfSxcbiAgLy8gQSBkYXNoIGNhbiBzdGFydCB0aGVtYXRpYyBicmVha3MsIGxpc3QgaXRlbXMsIGFuZCBzZXRleHQgaGVhZGluZ1xuICAvLyB1bmRlcmxpbmVzLlxuICB7YXRCcmVhazogdHJ1ZSwgY2hhcmFjdGVyOiAnLScsIGFmdGVyOiAnKD86WyBcXHRcXHJcXG4tXSknfSxcbiAgLy8gQSBkb3QgY291bGQgc3RhcnQgYSBsaXN0IGl0ZW0uXG4gIHthdEJyZWFrOiB0cnVlLCBiZWZvcmU6ICdcXFxcZCsnLCBjaGFyYWN0ZXI6ICcuJywgYWZ0ZXI6ICcoPzpbIFxcdFxcclxcbl18JCknfSxcbiAgLy8gU2xhc2gsIGNvbG9uLCBhbmQgc2VtaWNvbG9uIGFyZSBub3QgdXNlZCBpbiBtYXJrZG93biBmb3IgY29uc3RydWN0cy5cbiAgLy8gQSBsZXNzIHRoYW4gY2FuIHN0YXJ0IGh0bWwgKGZsb3cgb3IgdGV4dCkgb3IgYW4gYXV0b2xpbmsuXG4gIC8vIEhUTUwgY291bGQgc3RhcnQgd2l0aCBhbiBleGNsYW1hdGlvbiBtYXJrIChkZWNsYXJhdGlvbiwgY2RhdGEsIGNvbW1lbnQpLFxuICAvLyBzbGFzaCAoY2xvc2luZyB0YWcpLCBxdWVzdGlvbiBtYXJrIChpbnN0cnVjdGlvbiksIG9yIGEgbGV0dGVyICh0YWcpLlxuICAvLyBBbiBhdXRvbGluayBhbHNvIHN0YXJ0cyB3aXRoIGEgbGV0dGVyLlxuICAvLyBGaW5hbGx5LCBpdCBjb3VsZCBicmVhayBvdXQgb2YgYSBkZXN0aW5hdGlvbiBsaXRlcmFsLlxuICB7YXRCcmVhazogdHJ1ZSwgY2hhcmFjdGVyOiAnPCcsIGFmdGVyOiAnWyEvP0EtWmEtel0nfSxcbiAge1xuICAgIGNoYXJhY3RlcjogJzwnLFxuICAgIGFmdGVyOiAnWyEvP0EtWmEtel0nLFxuICAgIGluQ29uc3RydWN0OiAncGhyYXNpbmcnLFxuICAgIG5vdEluQ29uc3RydWN0OiBmdWxsUGhyYXNpbmdTcGFuc1xuICB9LFxuICB7Y2hhcmFjdGVyOiAnPCcsIGluQ29uc3RydWN0OiAnZGVzdGluYXRpb25MaXRlcmFsJ30sXG4gIC8vIEFuIGVxdWFscyB0byBjYW4gc3RhcnQgc2V0ZXh0IGhlYWRpbmcgdW5kZXJsaW5lcy5cbiAge2F0QnJlYWs6IHRydWUsIGNoYXJhY3RlcjogJz0nfSxcbiAgLy8gQSBncmVhdGVyIHRoYW4gY2FuIHN0YXJ0IGJsb2NrIHF1b3RlcyBhbmQgaXQgY2FuIGJyZWFrIG91dCBvZiBhXG4gIC8vIGRlc3RpbmF0aW9uIGxpdGVyYWwuXG4gIHthdEJyZWFrOiB0cnVlLCBjaGFyYWN0ZXI6ICc+J30sXG4gIHtjaGFyYWN0ZXI6ICc+JywgaW5Db25zdHJ1Y3Q6ICdkZXN0aW5hdGlvbkxpdGVyYWwnfSxcbiAgLy8gUXVlc3Rpb24gbWFyayBhbmQgYXQgc2lnbiBhcmUgbm90IHVzZWQgaW4gbWFya2Rvd24gZm9yIGNvbnN0cnVjdHMuXG4gIC8vIEEgbGVmdCBicmFja2V0IGNhbiBzdGFydCBkZWZpbml0aW9ucywgcmVmZXJlbmNlcywgbGFiZWxzLFxuICB7YXRCcmVhazogdHJ1ZSwgY2hhcmFjdGVyOiAnWyd9LFxuICB7Y2hhcmFjdGVyOiAnWycsIGluQ29uc3RydWN0OiAncGhyYXNpbmcnLCBub3RJbkNvbnN0cnVjdDogZnVsbFBocmFzaW5nU3BhbnN9LFxuICB7Y2hhcmFjdGVyOiAnWycsIGluQ29uc3RydWN0OiBbJ2xhYmVsJywgJ3JlZmVyZW5jZSddfSxcbiAgLy8gQSBiYWNrc2xhc2ggY2FuIHN0YXJ0IGFuIGVzY2FwZSAod2hlbiBmb2xsb3dlZCBieSBwdW5jdHVhdGlvbikgb3IgYVxuICAvLyBoYXJkIGJyZWFrICh3aGVuIGZvbGxvd2VkIGJ5IGFuIGVvbCkuXG4gIC8vIE5vdGU6IHR5cGljYWwgZXNjYXBlcyBhcmUgaGFuZGxlZCBpbiBgc2FmZWAhXG4gIHtjaGFyYWN0ZXI6ICdcXFxcJywgYWZ0ZXI6ICdbXFxcXHJcXFxcbl0nLCBpbkNvbnN0cnVjdDogJ3BocmFzaW5nJ30sXG4gIC8vIEEgcmlnaHQgYnJhY2tldCBjYW4gZXhpdCBsYWJlbHMuXG4gIHtjaGFyYWN0ZXI6ICddJywgaW5Db25zdHJ1Y3Q6IFsnbGFiZWwnLCAncmVmZXJlbmNlJ119LFxuICAvLyBDYXJldCBpcyBub3QgdXNlZCBpbiBtYXJrZG93biBmb3IgY29uc3RydWN0cy5cbiAgLy8gQW4gdW5kZXJzY29yZSBjYW4gc3RhcnQgZW1waGFzaXMsIHN0cm9uZywgb3IgYSB0aGVtYXRpYyBicmVhay5cbiAge2F0QnJlYWs6IHRydWUsIGNoYXJhY3RlcjogJ18nfSxcbiAge2NoYXJhY3RlcjogJ18nLCBpbkNvbnN0cnVjdDogJ3BocmFzaW5nJywgbm90SW5Db25zdHJ1Y3Q6IGZ1bGxQaHJhc2luZ1NwYW5zfSxcbiAgLy8gQSBncmF2ZSBhY2NlbnQgY2FuIHN0YXJ0IGNvZGUgKGZlbmNlZCBvciB0ZXh0KSwgb3IgaXQgY2FuIGJyZWFrIG91dCBvZlxuICAvLyBhIGdyYXZlIGFjY2VudCBjb2RlIGZlbmNlLlxuICB7YXRCcmVhazogdHJ1ZSwgY2hhcmFjdGVyOiAnYCd9LFxuICB7XG4gICAgY2hhcmFjdGVyOiAnYCcsXG4gICAgaW5Db25zdHJ1Y3Q6IFsnY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCcsICdjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50J11cbiAgfSxcbiAge2NoYXJhY3RlcjogJ2AnLCBpbkNvbnN0cnVjdDogJ3BocmFzaW5nJywgbm90SW5Db25zdHJ1Y3Q6IGZ1bGxQaHJhc2luZ1NwYW5zfSxcbiAgLy8gTGVmdCBicmFjZSwgdmVydGljYWwgYmFyLCByaWdodCBicmFjZSBhcmUgbm90IHVzZWQgaW4gbWFya2Rvd24gZm9yXG4gIC8vIGNvbnN0cnVjdHMuXG4gIC8vIEEgdGlsZGUgY2FuIHN0YXJ0IGNvZGUgKGZlbmNlZCkuXG4gIHthdEJyZWFrOiB0cnVlLCBjaGFyYWN0ZXI6ICd+J31cbl1cbiIsICIvLy8gPHJlZmVyZW5jZSBsaWI9XCJkb21cIiAvPlxuXG4vKiBnbG9iYWwgZG9jdW1lbnQgKi9cblxuY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2knKVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZyB8IGZhbHNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UodmFsdWUpIHtcbiAgY29uc3QgY2hhcmFjdGVyUmVmZXJlbmNlID0gJyYnICsgdmFsdWUgKyAnOydcbiAgZWxlbWVudC5pbm5lckhUTUwgPSBjaGFyYWN0ZXJSZWZlcmVuY2VcbiAgY29uc3QgY2hhcmFjdGVyID0gZWxlbWVudC50ZXh0Q29udGVudFxuXG4gIC8vIFNvbWUgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgZG8gbm90IHJlcXVpcmUgdGhlIGNsb3Npbmcgc2VtaWNvbG9uXG4gIC8vIChgJm5vdGAsIGZvciBpbnN0YW5jZSksIHdoaWNoIGxlYWRzIHRvIHNpdHVhdGlvbnMgd2hlcmUgcGFyc2luZyB0aGUgYXNzdW1lZFxuICAvLyBuYW1lZCByZWZlcmVuY2Ugb2YgYCZub3RpdDtgIHdpbGwgcmVzdWx0IGluIHRoZSBzdHJpbmcgYFx1MDBBQ2l0O2AuXG4gIC8vIFdoZW4gd2UgZW5jb3VudGVyIGEgdHJhaWxpbmcgc2VtaWNvbG9uIGFmdGVyIHBhcnNpbmcsIGFuZCB0aGUgY2hhcmFjdGVyXG4gIC8vIHJlZmVyZW5jZSB0byBkZWNvZGUgd2FzIG5vdCBhIHNlbWljb2xvbiAoYCZzZW1pO2ApLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdGhlXG4gIC8vIG1hdGNoaW5nIHdhcyBub3QgY29tcGxldGUuXG4gIGlmIChcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBUeXBlU2NyaXB0IGlzIHdyb25nIHRoYXQgYHRleHRDb250ZW50YCBvbiBlbGVtZW50cyBjYW5cbiAgICAvLyB5aWVsZCBgbnVsbGAuXG4gICAgY2hhcmFjdGVyLmNoYXJDb2RlQXQoY2hhcmFjdGVyLmxlbmd0aCAtIDEpID09PSA1OSAvKiBgO2AgKi8gJiZcbiAgICB2YWx1ZSAhPT0gJ3NlbWknXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLy8gSWYgdGhlIGRlY29kZWQgc3RyaW5nIGlzIGVxdWFsIHRvIHRoZSBpbnB1dCwgdGhlIGNoYXJhY3RlciByZWZlcmVuY2Ugd2FzXG4gIC8vIG5vdCB2YWxpZC5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVHlwZVNjcmlwdCBpcyB3cm9uZyB0aGF0IGB0ZXh0Q29udGVudGAgb24gZWxlbWVudHMgY2FuXG4gIC8vIHlpZWxkIGBudWxsYC5cbiAgcmV0dXJuIGNoYXJhY3RlciA9PT0gY2hhcmFjdGVyUmVmZXJlbmNlID8gZmFsc2UgOiBjaGFyYWN0ZXJcbn1cbiIsICIvKipcbiAqIFR1cm4gdGhlIG51bWJlciAoaW4gc3RyaW5nIGZvcm0gYXMgZWl0aGVyIGhleGEtIG9yIHBsYWluIGRlY2ltYWwpIGNvbWluZyBmcm9tXG4gKiBhIG51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZSBpbnRvIGEgY2hhcmFjdGVyLlxuICpcbiAqIFNvcnQgb2YgbGlrZSBgU3RyaW5nLmZyb21Db2RlUG9pbnQoTnVtYmVyLnBhcnNlSW50KHZhbHVlLCBiYXNlKSlgLCBidXQgbWFrZXNcbiAqIG5vbi1jaGFyYWN0ZXJzIGFuZCBjb250cm9sIGNoYXJhY3RlcnMgc2FmZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gZGVjb2RlLlxuICogQHBhcmFtIHtudW1iZXJ9IGJhc2VcbiAqICAgTnVtZXJpYyBiYXNlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgQ2hhcmFjdGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSh2YWx1ZSwgYmFzZSkge1xuICBjb25zdCBjb2RlID0gTnVtYmVyLnBhcnNlSW50KHZhbHVlLCBiYXNlKTtcbiAgaWYgKFxuICAvLyBDMCBleGNlcHQgZm9yIEhULCBMRiwgRkYsIENSLCBzcGFjZS5cbiAgY29kZSA8IDkgfHwgY29kZSA9PT0gMTEgfHwgY29kZSA+IDEzICYmIGNvZGUgPCAzMiB8fFxuICAvLyBDb250cm9sIGNoYXJhY3RlciAoREVMKSBvZiBDMCwgYW5kIEMxIGNvbnRyb2xzLlxuICBjb2RlID4gMTI2ICYmIGNvZGUgPCAxNjAgfHxcbiAgLy8gTG9uZSBoaWdoIHN1cnJvZ2F0ZXMgYW5kIGxvdyBzdXJyb2dhdGVzLlxuICBjb2RlID4gNTVfMjk1ICYmIGNvZGUgPCA1N18zNDQgfHxcbiAgLy8gTm9uY2hhcmFjdGVycy5cbiAgY29kZSA+IDY0Xzk3NSAmJiBjb2RlIDwgNjVfMDA4IHx8IC8qIGVzbGludC1kaXNhYmxlIG5vLWJpdHdpc2UgKi9cbiAgKGNvZGUgJiA2NV81MzUpID09PSA2NV81MzUgfHwgKGNvZGUgJiA2NV81MzUpID09PSA2NV81MzQgfHwgLyogZXNsaW50LWVuYWJsZSBuby1iaXR3aXNlICovXG4gIC8vIE91dCBvZiByYW5nZVxuICBjb2RlID4gMV8xMTRfMTExKSB7XG4gICAgcmV0dXJuIFwiXFx1RkZGRFwiO1xuICB9XG4gIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChjb2RlKTtcbn0iLCAiaW1wb3J0IHsgZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UgfSBmcm9tICdkZWNvZGUtbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBkZWNvZGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtZGVjb2RlLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSc7XG5jb25zdCBjaGFyYWN0ZXJFc2NhcGVPclJlZmVyZW5jZSA9IC9cXFxcKFshLS86LUBbLWB7LX5dKXwmKCMoPzpcXGR7MSw3fXx4W1xcZGEtZl17MSw2fSl8W1xcZGEtel17MSwzMX0pOy9naTtcblxuLyoqXG4gKiBEZWNvZGUgbWFya2Rvd24gc3RyaW5ncyAod2hpY2ggb2NjdXIgaW4gcGxhY2VzIHN1Y2ggYXMgZmVuY2VkIGNvZGUgaW5mb1xuICogc3RyaW5ncywgZGVzdGluYXRpb25zLCBsYWJlbHMsIGFuZCB0aXRsZXMpLlxuICpcbiAqIFRoZSBcdTIwMUNzdHJpbmdcdTIwMUQgY29udGVudCB0eXBlIGFsbG93cyBjaGFyYWN0ZXIgZXNjYXBlcyBhbmQgLXJlZmVyZW5jZXMuXG4gKiBUaGlzIGRlY29kZXMgdGhvc2UuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGRlY29kZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIERlY29kZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVTdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoY2hhcmFjdGVyRXNjYXBlT3JSZWZlcmVuY2UsIGRlY29kZSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiAgIE1hdGNoLlxuICogQHBhcmFtIHtzdHJpbmd9ICQxXG4gKiAgIENoYXJhY3RlciBlc2NhcGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gJDJcbiAqICAgQ2hhcmFjdGVyIHJlZmVyZW5jZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIERlY29kZWQgdmFsdWVcbiAqL1xuZnVuY3Rpb24gZGVjb2RlKCQwLCAkMSwgJDIpIHtcbiAgaWYgKCQxKSB7XG4gICAgLy8gRXNjYXBlLlxuICAgIHJldHVybiAkMTtcbiAgfVxuXG4gIC8vIFJlZmVyZW5jZS5cbiAgY29uc3QgaGVhZCA9ICQyLmNoYXJDb2RlQXQoMCk7XG4gIGlmIChoZWFkID09PSAzNSkge1xuICAgIGNvbnN0IGhlYWQgPSAkMi5jaGFyQ29kZUF0KDEpO1xuICAgIGNvbnN0IGhleCA9IGhlYWQgPT09IDEyMCB8fCBoZWFkID09PSA4ODtcbiAgICByZXR1cm4gZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSgkMi5zbGljZShoZXggPyAyIDogMSksIGhleCA/IDE2IDogMTApO1xuICB9XG4gIHJldHVybiBkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZSgkMikgfHwgJDA7XG59IiwgIi8qKlxuICogQGltcG9ydCB7QXNzb2NpYXRpb25JZH0gZnJvbSAnLi4vdHlwZXMuanMnXG4gKi9cblxuaW1wb3J0IHtkZWNvZGVTdHJpbmd9IGZyb20gJ21pY3JvbWFyay11dGlsLWRlY29kZS1zdHJpbmcnXG5cbi8qKlxuICogR2V0IGFuIGlkZW50aWZpZXIgZnJvbSBhbiBhc3NvY2lhdGlvbiB0byBtYXRjaCBpdCB0byBvdGhlcnMuXG4gKlxuICogQXNzb2NpYXRpb25zIGFyZSBub2RlcyB0aGF0IG1hdGNoIHRvIHNvbWV0aGluZyBlbHNlIHRocm91Z2ggYW4gSUQ6XG4gKiA8aHR0cHM6Ly9naXRodWIuY29tL3N5bnRheC10cmVlL21kYXN0I2Fzc29jaWF0aW9uPi5cbiAqXG4gKiBUaGUgYGxhYmVsYCBvZiBhbiBhc3NvY2lhdGlvbiBpcyB0aGUgc3RyaW5nIHZhbHVlOiBjaGFyYWN0ZXIgZXNjYXBlcyBhbmRcbiAqIHJlZmVyZW5jZXMgd29yaywgYW5kIGNhc2luZyBpcyBpbnRhY3QuXG4gKiBUaGUgYGlkZW50aWZpZXJgIGlzIHVzZWQgdG8gbWF0Y2ggb25lIGFzc29jaWF0aW9uIHRvIGFub3RoZXI6XG4gKiBjb250cm92ZXJzaWFsbHksIGNoYXJhY3RlciBlc2NhcGVzIGFuZCByZWZlcmVuY2VzIGRvblx1MjAxOXQgd29yayBpbiB0aGlzXG4gKiBtYXRjaGluZzogYCZjb3B5O2AgZG9lcyBub3QgbWF0Y2ggYFx1MDBBOWAsIGFuZCBgXFwrYCBkb2VzIG5vdCBtYXRjaCBgK2AuXG4gKlxuICogQnV0IGNhc2luZyBpcyBpZ25vcmVkIChhbmQgd2hpdGVzcGFjZSkgaXMgdHJpbW1lZCBhbmQgY29sbGFwc2VkOiBgIEFcXG5iYFxuICogbWF0Y2hlcyBgYSBiYC5cbiAqIFNvLCB3ZSBkbyBwcmVmZXIgdGhlIGxhYmVsIHdoZW4gZmlndXJpbmcgb3V0IGhvdyB3ZVx1MjAxOXJlIGdvaW5nIHRvIHNlcmlhbGl6ZTpcbiAqIGl0IGhhcyB3aGl0ZXNwYWNlLCBjYXNpbmcsIGFuZCB3ZSBjYW4gaWdub3JlIG1vc3QgdXNlbGVzcyBjaGFyYWN0ZXJcbiAqIGVzY2FwZXMgYW5kIGFsbCBjaGFyYWN0ZXIgcmVmZXJlbmNlcy5cbiAqXG4gKiBAdHlwZSB7QXNzb2NpYXRpb25JZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc29jaWF0aW9uKG5vZGUpIHtcbiAgaWYgKG5vZGUubGFiZWwgfHwgIW5vZGUuaWRlbnRpZmllcikge1xuICAgIHJldHVybiBub2RlLmxhYmVsIHx8ICcnXG4gIH1cblxuICByZXR1cm4gZGVjb2RlU3RyaW5nKG5vZGUuaWRlbnRpZmllcilcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0NvbXBpbGVQYXR0ZXJufSBmcm9tICcuLi90eXBlcy5qcydcbiAqL1xuXG4vKipcbiAqIEB0eXBlIHtDb21waWxlUGF0dGVybn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGVQYXR0ZXJuKHBhdHRlcm4pIHtcbiAgaWYgKCFwYXR0ZXJuLl9jb21waWxlZCkge1xuICAgIGNvbnN0IGJlZm9yZSA9XG4gICAgICAocGF0dGVybi5hdEJyZWFrID8gJ1tcXFxcclxcXFxuXVtcXFxcdCBdKicgOiAnJykgK1xuICAgICAgKHBhdHRlcm4uYmVmb3JlID8gJyg/OicgKyBwYXR0ZXJuLmJlZm9yZSArICcpJyA6ICcnKVxuXG4gICAgcGF0dGVybi5fY29tcGlsZWQgPSBuZXcgUmVnRXhwKFxuICAgICAgKGJlZm9yZSA/ICcoJyArIGJlZm9yZSArICcpJyA6ICcnKSArXG4gICAgICAgICgvW3xcXFxce30oKVtcXF1eJCsqPy4tXS8udGVzdChwYXR0ZXJuLmNoYXJhY3RlcikgPyAnXFxcXCcgOiAnJykgK1xuICAgICAgICBwYXR0ZXJuLmNoYXJhY3RlciArXG4gICAgICAgIChwYXR0ZXJuLmFmdGVyID8gJyg/OicgKyBwYXR0ZXJuLmFmdGVyICsgJyknIDogJycpLFxuICAgICAgJ2cnXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIHBhdHRlcm4uX2NvbXBpbGVkXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtIYW5kbGUsIEluZm8sIFN0YXRlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICogQGltcG9ydCB7UGhyYXNpbmdQYXJlbnRzfSBmcm9tICcuLi90eXBlcy5qcydcbiAqL1xuXG5pbXBvcnQge2VuY29kZUNoYXJhY3RlclJlZmVyZW5jZX0gZnJvbSAnLi9lbmNvZGUtY2hhcmFjdGVyLXJlZmVyZW5jZS5qcydcblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIGNoaWxkcmVuIG9mIGEgcGFyZW50IHRoYXQgY29udGFpbnMgcGhyYXNpbmcgY2hpbGRyZW4uXG4gKlxuICogVGhlc2UgY2hpbGRyZW4gd2lsbCBiZSBqb2luZWQgZmx1c2ggdG9nZXRoZXIuXG4gKlxuICogQHBhcmFtIHtQaHJhc2luZ1BhcmVudHN9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZmxvdyBub2Rlcy5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogICBJbmZvIG9uIHdoZXJlIHdlIGFyZSBpbiB0aGUgZG9jdW1lbnQgd2UgYXJlIGdlbmVyYXRpbmcuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIGNoaWxkcmVuLCBqb2luZWQgdG9nZXRoZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb250YWluZXJQaHJhc2luZyhwYXJlbnQsIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IGluZGV4U3RhY2sgPSBzdGF0ZS5pbmRleFN0YWNrXG4gIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuIHx8IFtdXG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0cyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG4gIGxldCBiZWZvcmUgPSBpbmZvLmJlZm9yZVxuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGVuY29kZUFmdGVyXG5cbiAgaW5kZXhTdGFjay5wdXNoKC0xKVxuICBsZXQgdHJhY2tlciA9IHN0YXRlLmNyZWF0ZVRyYWNrZXIoaW5mbylcblxuICB3aGlsZSAoKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baW5kZXhdXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IGFmdGVyXG5cbiAgICBpbmRleFN0YWNrW2luZGV4U3RhY2subGVuZ3RoIC0gMV0gPSBpbmRleFxuXG4gICAgaWYgKGluZGV4ICsgMSA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgLyoqIEB0eXBlIHtIYW5kbGV9ICovXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBodXNoLCBpdFx1MjAxOXMgYWN0dWFsbHkgYSBgendpdGNoYC5cbiAgICAgIGxldCBoYW5kbGUgPSBzdGF0ZS5oYW5kbGUuaGFuZGxlcnNbY2hpbGRyZW5baW5kZXggKyAxXS50eXBlXVxuICAgICAgLyoqIEB0eXBlIHtIYW5kbGV9ICovXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBodXNoLCBpdFx1MjAxOXMgYWN0dWFsbHkgYSBgendpdGNoYC5cbiAgICAgIGlmIChoYW5kbGUgJiYgaGFuZGxlLnBlZWspIGhhbmRsZSA9IGhhbmRsZS5wZWVrXG4gICAgICBhZnRlciA9IGhhbmRsZVxuICAgICAgICA/IGhhbmRsZShjaGlsZHJlbltpbmRleCArIDFdLCBwYXJlbnQsIHN0YXRlLCB7XG4gICAgICAgICAgICBiZWZvcmU6ICcnLFxuICAgICAgICAgICAgYWZ0ZXI6ICcnLFxuICAgICAgICAgICAgLi4udHJhY2tlci5jdXJyZW50KClcbiAgICAgICAgICB9KS5jaGFyQXQoMClcbiAgICAgICAgOiAnJ1xuICAgIH0gZWxzZSB7XG4gICAgICBhZnRlciA9IGluZm8uYWZ0ZXJcbiAgICB9XG5cbiAgICAvLyBJbiBzb21lIGNhc2VzLCBodG1sICh0ZXh0KSBjYW4gYmUgZm91bmQgaW4gcGhyYXNpbmcgcmlnaHQgYWZ0ZXIgYW4gZW9sLlxuICAgIC8vIFdoZW4gd2VcdTIwMTlkIHNlcmlhbGl6ZSB0aGF0LCBpbiBtb3N0IGNhc2VzIHRoYXQgd291bGQgYmUgc2VlbiBhcyBodG1sXG4gICAgLy8gKGZsb3cpLlxuICAgIC8vIEFzIHdlIGNhblx1MjAxOXQgZXNjYXBlIG9yIHNvIHRvIHByZXZlbnQgaXQgZnJvbSBoYXBwZW5pbmcsIHdlIHRha2UgYSBzb21ld2hhdFxuICAgIC8vIHJlYXNvbmFibGUgYXBwcm9hY2g6IHJlcGxhY2UgdGhhdCBlb2wgd2l0aCBhIHNwYWNlLlxuICAgIC8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9zeW50YXgtdHJlZS9tZGFzdC11dGlsLXRvLW1hcmtkb3duL2lzc3Vlcy8xNT5cbiAgICBpZiAoXG4gICAgICByZXN1bHRzLmxlbmd0aCA+IDAgJiZcbiAgICAgIChiZWZvcmUgPT09ICdcXHInIHx8IGJlZm9yZSA9PT0gJ1xcbicpICYmXG4gICAgICBjaGlsZC50eXBlID09PSAnaHRtbCdcbiAgICApIHtcbiAgICAgIHJlc3VsdHNbcmVzdWx0cy5sZW5ndGggLSAxXSA9IHJlc3VsdHNbcmVzdWx0cy5sZW5ndGggLSAxXS5yZXBsYWNlKFxuICAgICAgICAvKFxccj9cXG58XFxyKSQvLFxuICAgICAgICAnICdcbiAgICAgIClcbiAgICAgIGJlZm9yZSA9ICcgJ1xuXG4gICAgICAvLyBUbyBkbzogZG9lcyB0aGlzIHdvcmsgdG8gcmVzZXQgdHJhY2tlcj9cbiAgICAgIHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gICAgICB0cmFja2VyLm1vdmUocmVzdWx0cy5qb2luKCcnKSlcbiAgICB9XG5cbiAgICBsZXQgdmFsdWUgPSBzdGF0ZS5oYW5kbGUoY2hpbGQsIHBhcmVudCwgc3RhdGUsIHtcbiAgICAgIC4uLnRyYWNrZXIuY3VycmVudCgpLFxuICAgICAgYWZ0ZXIsXG4gICAgICBiZWZvcmVcbiAgICB9KVxuXG4gICAgLy8gSWYgd2UgaGFkIHRvIGVuY29kZSB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSBwcmV2aW91cyBub2RlIGFuZCBpdFx1MjAxOXNcbiAgICAvLyBzdGlsbCB0aGUgc2FtZSBjaGFyYWN0ZXIsXG4gICAgLy8gZW5jb2RlIGl0LlxuICAgIGlmIChlbmNvZGVBZnRlciAmJiBlbmNvZGVBZnRlciA9PT0gdmFsdWUuc2xpY2UoMCwgMSkpIHtcbiAgICAgIHZhbHVlID1cbiAgICAgICAgZW5jb2RlQ2hhcmFjdGVyUmVmZXJlbmNlKGVuY29kZUFmdGVyLmNoYXJDb2RlQXQoMCkpICsgdmFsdWUuc2xpY2UoMSlcbiAgICB9XG5cbiAgICBjb25zdCBlbmNvZGluZ0luZm8gPSBzdGF0ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm9cbiAgICBzdGF0ZS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm8gPSB1bmRlZmluZWRcbiAgICBlbmNvZGVBZnRlciA9IHVuZGVmaW5lZFxuXG4gICAgLy8gSWYgd2UgaGF2ZSB0byBlbmNvZGUgdGhlIGZpcnN0IGNoYXJhY3RlciBiZWZvcmUgdGhlIGN1cnJlbnQgbm9kZSBhbmRcbiAgICAvLyBpdFx1MjAxOXMgc3RpbGwgdGhlIHNhbWUgY2hhcmFjdGVyLFxuICAgIC8vIGVuY29kZSBpdC5cbiAgICBpZiAoZW5jb2RpbmdJbmZvKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHJlc3VsdHMubGVuZ3RoID4gMCAmJlxuICAgICAgICBlbmNvZGluZ0luZm8uYmVmb3JlICYmXG4gICAgICAgIGJlZm9yZSA9PT0gcmVzdWx0c1tyZXN1bHRzLmxlbmd0aCAtIDFdLnNsaWNlKC0xKVxuICAgICAgKSB7XG4gICAgICAgIHJlc3VsdHNbcmVzdWx0cy5sZW5ndGggLSAxXSA9XG4gICAgICAgICAgcmVzdWx0c1tyZXN1bHRzLmxlbmd0aCAtIDFdLnNsaWNlKDAsIC0xKSArXG4gICAgICAgICAgZW5jb2RlQ2hhcmFjdGVyUmVmZXJlbmNlKGJlZm9yZS5jaGFyQ29kZUF0KDApKVxuICAgICAgfVxuXG4gICAgICBpZiAoZW5jb2RpbmdJbmZvLmFmdGVyKSBlbmNvZGVBZnRlciA9IGFmdGVyXG4gICAgfVxuXG4gICAgdHJhY2tlci5tb3ZlKHZhbHVlKVxuICAgIHJlc3VsdHMucHVzaCh2YWx1ZSlcbiAgICBiZWZvcmUgPSB2YWx1ZS5zbGljZSgtMSlcbiAgfVxuXG4gIGluZGV4U3RhY2sucG9wKClcblxuICByZXR1cm4gcmVzdWx0cy5qb2luKCcnKVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKiBAaW1wb3J0IHtGbG93Q2hpbGRyZW4sIEZsb3dQYXJlbnRzLCBUcmFja0ZpZWxkc30gZnJvbSAnLi4vdHlwZXMuanMnXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge0Zsb3dQYXJlbnRzfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGZsb3cgbm9kZXMuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge1RyYWNrRmllbGRzfSBpbmZvXG4gKiAgIEluZm8gb24gd2hlcmUgd2UgYXJlIGluIHRoZSBkb2N1bWVudCB3ZSBhcmUgZ2VuZXJhdGluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgY2hpbGRyZW4sIGpvaW5lZCBieSAoYmxhbmspIGxpbmVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbmVyRmxvdyhwYXJlbnQsIHN0YXRlLCBpbmZvKSB7XG4gIGNvbnN0IGluZGV4U3RhY2sgPSBzdGF0ZS5pbmRleFN0YWNrXG4gIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuIHx8IFtdXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0cyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgaW5kZXhTdGFjay5wdXNoKC0xKVxuXG4gIHdoaWxlICgrK2luZGV4IDwgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hpbGQgPSBjaGlsZHJlbltpbmRleF1cblxuICAgIGluZGV4U3RhY2tbaW5kZXhTdGFjay5sZW5ndGggLSAxXSA9IGluZGV4XG5cbiAgICByZXN1bHRzLnB1c2goXG4gICAgICB0cmFja2VyLm1vdmUoXG4gICAgICAgIHN0YXRlLmhhbmRsZShjaGlsZCwgcGFyZW50LCBzdGF0ZSwge1xuICAgICAgICAgIGJlZm9yZTogJ1xcbicsXG4gICAgICAgICAgYWZ0ZXI6ICdcXG4nLFxuICAgICAgICAgIC4uLnRyYWNrZXIuY3VycmVudCgpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKVxuXG4gICAgaWYgKGNoaWxkLnR5cGUgIT09ICdsaXN0Jykge1xuICAgICAgc3RhdGUuYnVsbGV0TGFzdFVzZWQgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPCBjaGlsZHJlbi5sZW5ndGggLSAxKSB7XG4gICAgICByZXN1bHRzLnB1c2goXG4gICAgICAgIHRyYWNrZXIubW92ZShiZXR3ZWVuKGNoaWxkLCBjaGlsZHJlbltpbmRleCArIDFdLCBwYXJlbnQsIHN0YXRlKSlcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBpbmRleFN0YWNrLnBvcCgpXG5cbiAgcmV0dXJuIHJlc3VsdHMuam9pbignJylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0Zsb3dDaGlsZHJlbn0gbGVmdFxuICogQHBhcmFtIHtGbG93Q2hpbGRyZW59IHJpZ2h0XG4gKiBAcGFyYW0ge0Zsb3dQYXJlbnRzfSBwYXJlbnRcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBiZXR3ZWVuKGxlZnQsIHJpZ2h0LCBwYXJlbnQsIHN0YXRlKSB7XG4gIGxldCBpbmRleCA9IHN0YXRlLmpvaW4ubGVuZ3RoXG5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBjb25zdCByZXN1bHQgPSBzdGF0ZS5qb2luW2luZGV4XShsZWZ0LCByaWdodCwgcGFyZW50LCBzdGF0ZSlcblxuICAgIGlmIChyZXN1bHQgPT09IHRydWUgfHwgcmVzdWx0ID09PSAxKSB7XG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuICdcXG4nLnJlcGVhdCgxICsgcmVzdWx0KVxuICAgIH1cblxuICAgIGlmIChyZXN1bHQgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gJ1xcblxcbjwhLS0tLT5cXG5cXG4nXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICdcXG5cXG4nXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtJbmRlbnRMaW5lc30gZnJvbSAnLi4vdHlwZXMuanMnXG4gKi9cblxuY29uc3QgZW9sID0gL1xccj9cXG58XFxyL2dcblxuLyoqXG4gKiBAdHlwZSB7SW5kZW50TGluZXN9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRlbnRMaW5lcyh2YWx1ZSwgbWFwKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgbGV0IHN0YXJ0ID0gMFxuICBsZXQgbGluZSA9IDBcbiAgLyoqIEB0eXBlIHtSZWdFeHBFeGVjQXJyYXkgfCBudWxsfSAqL1xuICBsZXQgbWF0Y2hcblxuICB3aGlsZSAoKG1hdGNoID0gZW9sLmV4ZWModmFsdWUpKSkge1xuICAgIG9uZSh2YWx1ZS5zbGljZShzdGFydCwgbWF0Y2guaW5kZXgpKVxuICAgIHJlc3VsdC5wdXNoKG1hdGNoWzBdKVxuICAgIHN0YXJ0ID0gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGhcbiAgICBsaW5lKytcbiAgfVxuXG4gIG9uZSh2YWx1ZS5zbGljZShzdGFydCkpXG5cbiAgcmV0dXJuIHJlc3VsdC5qb2luKCcnKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICovXG4gIGZ1bmN0aW9uIG9uZSh2YWx1ZSkge1xuICAgIHJlc3VsdC5wdXNoKG1hcCh2YWx1ZSwgbGluZSwgIXZhbHVlKSlcbiAgfVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7U2FmZUNvbmZpZywgU3RhdGV9IGZyb20gJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nXG4gKi9cblxuaW1wb3J0IHtlbmNvZGVDaGFyYWN0ZXJSZWZlcmVuY2V9IGZyb20gJy4vZW5jb2RlLWNoYXJhY3Rlci1yZWZlcmVuY2UuanMnXG5pbXBvcnQge3BhdHRlcm5JblNjb3BlfSBmcm9tICcuL3BhdHRlcm4taW4tc2NvcGUuanMnXG5cbi8qKlxuICogTWFrZSBhIHN0cmluZyBzYWZlIGZvciBlbWJlZGRpbmcgaW4gbWFya2Rvd24gY29uc3RydWN0cy5cbiAqXG4gKiBJbiBtYXJrZG93biwgYWxtb3N0IGFsbCBwdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIGNhbiwgaW4gY2VydGFpbiBjYXNlcyxcbiAqIHJlc3VsdCBpbiBzb21ldGhpbmcuXG4gKiBXaGV0aGVyIHRoZXkgZG8gaXMgaGlnaGx5IHN1YmplY3RpdmUgdG8gd2hlcmUgdGhleSBoYXBwZW4gYW5kIGluIHdoYXRcbiAqIHRoZXkgaGFwcGVuLlxuICpcbiAqIFRvIHNvbHZlIHRoaXMsIGBtZGFzdC11dGlsLXRvLW1hcmtkb3duYCB0cmFja3M6XG4gKlxuICogKiBDaGFyYWN0ZXJzIGJlZm9yZSBhbmQgYWZ0ZXIgc29tZXRoaW5nO1xuICogKiBXaGF0IFx1MjAxQ2NvbnN0cnVjdHNcdTIwMUQgd2UgYXJlIGluLlxuICpcbiAqIFRoaXMgaW5mb3JtYXRpb24gaXMgdGhlbiB1c2VkIGJ5IHRoaXMgZnVuY3Rpb24gdG8gZXNjYXBlIG9yIGVuY29kZVxuICogc3BlY2lhbCBjaGFyYWN0ZXJzLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gaW5wdXRcbiAqICAgUmF3IHZhbHVlIHRvIG1ha2Ugc2FmZS5cbiAqIEBwYXJhbSB7U2FmZUNvbmZpZ30gY29uZmlnXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG1hcmtkb3duIHNhZmUgZm9yIGVtYmVkZGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhZmUoc3RhdGUsIGlucHV0LCBjb25maWcpIHtcbiAgY29uc3QgdmFsdWUgPSAoY29uZmlnLmJlZm9yZSB8fCAnJykgKyAoaW5wdXQgfHwgJycpICsgKGNvbmZpZy5hZnRlciB8fCAnJylcbiAgLyoqIEB0eXBlIHtBcnJheTxudW1iZXI+fSAqL1xuICBjb25zdCBwb3NpdGlvbnMgPSBbXVxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIC8qKiBAdHlwZSB7UmVjb3JkPG51bWJlciwge2JlZm9yZTogYm9vbGVhbiwgYWZ0ZXI6IGJvb2xlYW59Pn0gKi9cbiAgY29uc3QgaW5mb3MgPSB7fVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgc3RhdGUudW5zYWZlLmxlbmd0aCkge1xuICAgIGNvbnN0IHBhdHRlcm4gPSBzdGF0ZS51bnNhZmVbaW5kZXhdXG5cbiAgICBpZiAoIXBhdHRlcm5JblNjb3BlKHN0YXRlLnN0YWNrLCBwYXR0ZXJuKSkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBleHByZXNzaW9uID0gc3RhdGUuY29tcGlsZVBhdHRlcm4ocGF0dGVybilcbiAgICAvKiogQHR5cGUge1JlZ0V4cEV4ZWNBcnJheSB8IG51bGx9ICovXG4gICAgbGV0IG1hdGNoXG5cbiAgICB3aGlsZSAoKG1hdGNoID0gZXhwcmVzc2lvbi5leGVjKHZhbHVlKSkpIHtcbiAgICAgIGNvbnN0IGJlZm9yZSA9ICdiZWZvcmUnIGluIHBhdHRlcm4gfHwgQm9vbGVhbihwYXR0ZXJuLmF0QnJlYWspXG4gICAgICBjb25zdCBhZnRlciA9ICdhZnRlcicgaW4gcGF0dGVyblxuICAgICAgY29uc3QgcG9zaXRpb24gPSBtYXRjaC5pbmRleCArIChiZWZvcmUgPyBtYXRjaFsxXS5sZW5ndGggOiAwKVxuXG4gICAgICBpZiAocG9zaXRpb25zLmluY2x1ZGVzKHBvc2l0aW9uKSkge1xuICAgICAgICBpZiAoaW5mb3NbcG9zaXRpb25dLmJlZm9yZSAmJiAhYmVmb3JlKSB7XG4gICAgICAgICAgaW5mb3NbcG9zaXRpb25dLmJlZm9yZSA9IGZhbHNlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5mb3NbcG9zaXRpb25dLmFmdGVyICYmICFhZnRlcikge1xuICAgICAgICAgIGluZm9zW3Bvc2l0aW9uXS5hZnRlciA9IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvc2l0aW9ucy5wdXNoKHBvc2l0aW9uKVxuICAgICAgICBpbmZvc1twb3NpdGlvbl0gPSB7YmVmb3JlLCBhZnRlcn1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwb3NpdGlvbnMuc29ydChudW1lcmljYWwpXG5cbiAgbGV0IHN0YXJ0ID0gY29uZmlnLmJlZm9yZSA/IGNvbmZpZy5iZWZvcmUubGVuZ3RoIDogMFxuICBjb25zdCBlbmQgPSB2YWx1ZS5sZW5ndGggLSAoY29uZmlnLmFmdGVyID8gY29uZmlnLmFmdGVyLmxlbmd0aCA6IDApXG4gIGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHBvc2l0aW9ucy5sZW5ndGgpIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHBvc2l0aW9uc1tpbmRleF1cblxuICAgIC8vIENoYXJhY3RlciBiZWZvcmUgb3IgYWZ0ZXIgbWF0Y2hlZDpcbiAgICBpZiAocG9zaXRpb24gPCBzdGFydCB8fCBwb3NpdGlvbiA+PSBlbmQpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgLy8gSWYgdGhpcyBjaGFyYWN0ZXIgaXMgc3VwcG9zZWQgdG8gYmUgZXNjYXBlZCBiZWNhdXNlIGl0IGhhcyBhIGNvbmRpdGlvbiBvblxuICAgIC8vIHRoZSBuZXh0IGNoYXJhY3RlciwgYW5kIHRoZSBuZXh0IGNoYXJhY3RlciBpcyBkZWZpbml0bHkgYmVpbmcgZXNjYXBlZCxcbiAgICAvLyB0aGVuIHNraXAgdGhpcyBlc2NhcGUuXG4gICAgaWYgKFxuICAgICAgKHBvc2l0aW9uICsgMSA8IGVuZCAmJlxuICAgICAgICBwb3NpdGlvbnNbaW5kZXggKyAxXSA9PT0gcG9zaXRpb24gKyAxICYmXG4gICAgICAgIGluZm9zW3Bvc2l0aW9uXS5hZnRlciAmJlxuICAgICAgICAhaW5mb3NbcG9zaXRpb24gKyAxXS5iZWZvcmUgJiZcbiAgICAgICAgIWluZm9zW3Bvc2l0aW9uICsgMV0uYWZ0ZXIpIHx8XG4gICAgICAocG9zaXRpb25zW2luZGV4IC0gMV0gPT09IHBvc2l0aW9uIC0gMSAmJlxuICAgICAgICBpbmZvc1twb3NpdGlvbl0uYmVmb3JlICYmXG4gICAgICAgICFpbmZvc1twb3NpdGlvbiAtIDFdLmJlZm9yZSAmJlxuICAgICAgICAhaW5mb3NbcG9zaXRpb24gLSAxXS5hZnRlcilcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaWYgKHN0YXJ0ICE9PSBwb3NpdGlvbikge1xuICAgICAgLy8gSWYgd2UgaGF2ZSB0byB1c2UgYSBjaGFyYWN0ZXIgcmVmZXJlbmNlLCBhbiBhbXBlcnNhbmQgd291bGQgYmUgbW9yZVxuICAgICAgLy8gY29ycmVjdCwgYnV0IGFzIGJhY2tzbGFzaGVzIG9ubHkgY2FyZSBhYm91dCBwdW5jdHVhdGlvbiwgZWl0aGVyIHdpbGxcbiAgICAgIC8vIGRvIHRoZSB0cmlja1xuICAgICAgcmVzdWx0LnB1c2goZXNjYXBlQmFja3NsYXNoZXModmFsdWUuc2xpY2Uoc3RhcnQsIHBvc2l0aW9uKSwgJ1xcXFwnKSlcbiAgICB9XG5cbiAgICBzdGFydCA9IHBvc2l0aW9uXG5cbiAgICBpZiAoXG4gICAgICAvWyEtLzotQFstYHstfl0vLnRlc3QodmFsdWUuY2hhckF0KHBvc2l0aW9uKSkgJiZcbiAgICAgICghY29uZmlnLmVuY29kZSB8fCAhY29uZmlnLmVuY29kZS5pbmNsdWRlcyh2YWx1ZS5jaGFyQXQocG9zaXRpb24pKSlcbiAgICApIHtcbiAgICAgIC8vIENoYXJhY3RlciBlc2NhcGUuXG4gICAgICByZXN1bHQucHVzaCgnXFxcXCcpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENoYXJhY3RlciByZWZlcmVuY2UuXG4gICAgICByZXN1bHQucHVzaChlbmNvZGVDaGFyYWN0ZXJSZWZlcmVuY2UodmFsdWUuY2hhckNvZGVBdChwb3NpdGlvbikpKVxuICAgICAgc3RhcnQrK1xuICAgIH1cbiAgfVxuXG4gIHJlc3VsdC5wdXNoKGVzY2FwZUJhY2tzbGFzaGVzKHZhbHVlLnNsaWNlKHN0YXJ0LCBlbmQpLCBjb25maWcuYWZ0ZXIpKVxuXG4gIHJldHVybiByZXN1bHQuam9pbignJylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gYVxuICogQHBhcmFtIHtudW1iZXJ9IGJcbiAqIEByZXR1cm5zIHtudW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIG51bWVyaWNhbChhLCBiKSB7XG4gIHJldHVybiBhIC0gYlxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtzdHJpbmd9IGFmdGVyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBlc2NhcGVCYWNrc2xhc2hlcyh2YWx1ZSwgYWZ0ZXIpIHtcbiAgY29uc3QgZXhwcmVzc2lvbiA9IC9cXFxcKD89WyEtLzotQFstYHstfl0pL2dcbiAgLyoqIEB0eXBlIHtBcnJheTxudW1iZXI+fSAqL1xuICBjb25zdCBwb3NpdGlvbnMgPSBbXVxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHJlc3VsdHMgPSBbXVxuICBjb25zdCB3aG9sZSA9IHZhbHVlICsgYWZ0ZXJcbiAgbGV0IGluZGV4ID0gLTFcbiAgbGV0IHN0YXJ0ID0gMFxuICAvKiogQHR5cGUge1JlZ0V4cEV4ZWNBcnJheSB8IG51bGx9ICovXG4gIGxldCBtYXRjaFxuXG4gIHdoaWxlICgobWF0Y2ggPSBleHByZXNzaW9uLmV4ZWMod2hvbGUpKSkge1xuICAgIHBvc2l0aW9ucy5wdXNoKG1hdGNoLmluZGV4KVxuICB9XG5cbiAgd2hpbGUgKCsraW5kZXggPCBwb3NpdGlvbnMubGVuZ3RoKSB7XG4gICAgaWYgKHN0YXJ0ICE9PSBwb3NpdGlvbnNbaW5kZXhdKSB7XG4gICAgICByZXN1bHRzLnB1c2godmFsdWUuc2xpY2Uoc3RhcnQsIHBvc2l0aW9uc1tpbmRleF0pKVxuICAgIH1cblxuICAgIHJlc3VsdHMucHVzaCgnXFxcXCcpXG4gICAgc3RhcnQgPSBwb3NpdGlvbnNbaW5kZXhdXG4gIH1cblxuICByZXN1bHRzLnB1c2godmFsdWUuc2xpY2Uoc3RhcnQpKVxuXG4gIHJldHVybiByZXN1bHRzLmpvaW4oJycpXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtDcmVhdGVUcmFja2VyLCBUcmFja0N1cnJlbnQsIFRyYWNrTW92ZSwgVHJhY2tTaGlmdH0gZnJvbSAnLi4vdHlwZXMuanMnXG4gKi9cblxuLyoqXG4gKiBUcmFjayBwb3NpdGlvbmFsIGluZm8gaW4gdGhlIG91dHB1dC5cbiAqXG4gKiBAdHlwZSB7Q3JlYXRlVHJhY2tlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYWNrKGNvbmZpZykge1xuICAvLyBEZWZhdWx0cyBhcmUgdXNlZCB0byBwcmV2ZW50IGNyYXNoZXMgd2hlbiBvbGRlciB1dGlsaXRpZXMgc29tZWhvdyBhY3RpdmF0ZVxuICAvLyB0aGlzIGNvZGUuXG4gIC8qIGM4IGlnbm9yZSBuZXh0IDUgKi9cbiAgY29uc3Qgb3B0aW9ucyA9IGNvbmZpZyB8fCB7fVxuICBjb25zdCBub3cgPSBvcHRpb25zLm5vdyB8fCB7fVxuICBsZXQgbGluZVNoaWZ0ID0gb3B0aW9ucy5saW5lU2hpZnQgfHwgMFxuICBsZXQgbGluZSA9IG5vdy5saW5lIHx8IDFcbiAgbGV0IGNvbHVtbiA9IG5vdy5jb2x1bW4gfHwgMVxuXG4gIHJldHVybiB7bW92ZSwgY3VycmVudCwgc2hpZnR9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCB0cmFja2VkIGluZm8uXG4gICAqXG4gICAqIEB0eXBlIHtUcmFja0N1cnJlbnR9XG4gICAqL1xuICBmdW5jdGlvbiBjdXJyZW50KCkge1xuICAgIHJldHVybiB7bm93OiB7bGluZSwgY29sdW1ufSwgbGluZVNoaWZ0fVxuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBhbiBpbmNyZWFzZWQgbGluZSBzaGlmdCAodGhlIHR5cGljYWwgaW5kZW50IGZvciBsaW5lcykuXG4gICAqXG4gICAqIEB0eXBlIHtUcmFja1NoaWZ0fVxuICAgKi9cbiAgZnVuY3Rpb24gc2hpZnQodmFsdWUpIHtcbiAgICBsaW5lU2hpZnQgKz0gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIHBhc3Qgc29tZSBnZW5lcmF0ZWQgbWFya2Rvd24uXG4gICAqXG4gICAqIEB0eXBlIHtUcmFja01vdmV9XG4gICAqL1xuICBmdW5jdGlvbiBtb3ZlKGlucHV0KSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWRlZmF1bHQtcGFyYW1ldGVyc1xuICAgIGNvbnN0IHZhbHVlID0gaW5wdXQgfHwgJydcbiAgICBjb25zdCBjaHVua3MgPSB2YWx1ZS5zcGxpdCgvXFxyP1xcbnxcXHIvZylcbiAgICBjb25zdCB0YWlsID0gY2h1bmtzW2NodW5rcy5sZW5ndGggLSAxXVxuICAgIGxpbmUgKz0gY2h1bmtzLmxlbmd0aCAtIDFcbiAgICBjb2x1bW4gPVxuICAgICAgY2h1bmtzLmxlbmd0aCA9PT0gMSA/IGNvbHVtbiArIHRhaWwubGVuZ3RoIDogMSArIHRhaWwubGVuZ3RoICsgbGluZVNoaWZ0XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0luZm8sIEpvaW4sIE9wdGlvbnMsIFNhZmVDb25maWcsIFN0YXRlfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuICogQGltcG9ydCB7Tm9kZXN9IGZyb20gJ21kYXN0J1xuICogQGltcG9ydCB7RW50ZXIsIEZsb3dQYXJlbnRzLCBQaHJhc2luZ1BhcmVudHMsIFRyYWNrRmllbGRzfSBmcm9tICcuL3R5cGVzLmpzJ1xuICovXG5cbmltcG9ydCB7endpdGNofSBmcm9tICd6d2l0Y2gnXG5pbXBvcnQge2NvbmZpZ3VyZX0gZnJvbSAnLi9jb25maWd1cmUuanMnXG5pbXBvcnQge2hhbmRsZSBhcyBoYW5kbGVyc30gZnJvbSAnLi9oYW5kbGUvaW5kZXguanMnXG5pbXBvcnQge2pvaW59IGZyb20gJy4vam9pbi5qcydcbmltcG9ydCB7dW5zYWZlfSBmcm9tICcuL3Vuc2FmZS5qcydcbmltcG9ydCB7YXNzb2NpYXRpb259IGZyb20gJy4vdXRpbC9hc3NvY2lhdGlvbi5qcydcbmltcG9ydCB7Y29tcGlsZVBhdHRlcm59IGZyb20gJy4vdXRpbC9jb21waWxlLXBhdHRlcm4uanMnXG5pbXBvcnQge2NvbnRhaW5lclBocmFzaW5nfSBmcm9tICcuL3V0aWwvY29udGFpbmVyLXBocmFzaW5nLmpzJ1xuaW1wb3J0IHtjb250YWluZXJGbG93fSBmcm9tICcuL3V0aWwvY29udGFpbmVyLWZsb3cuanMnXG5pbXBvcnQge2luZGVudExpbmVzfSBmcm9tICcuL3V0aWwvaW5kZW50LWxpbmVzLmpzJ1xuaW1wb3J0IHtzYWZlfSBmcm9tICcuL3V0aWwvc2FmZS5qcydcbmltcG9ydCB7dHJhY2t9IGZyb20gJy4vdXRpbC90cmFjay5qcydcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IHN5bnRheCB0cmVlIGludG8gbWFya2Rvd24uXG4gKlxuICogQHBhcmFtIHtOb2Rlc30gdHJlZVxuICogICBUcmVlIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG1hcmtkb3duIHJlcHJlc2VudGluZyBgdHJlZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b01hcmtkb3duKHRyZWUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGNvbnN0IHN0YXRlID0ge1xuICAgIGFzc29jaWF0aW9uSWQ6IGFzc29jaWF0aW9uLFxuICAgIGNvbnRhaW5lclBocmFzaW5nOiBjb250YWluZXJQaHJhc2luZ0JvdW5kLFxuICAgIGNvbnRhaW5lckZsb3c6IGNvbnRhaW5lckZsb3dCb3VuZCxcbiAgICBjcmVhdGVUcmFja2VyOiB0cmFjayxcbiAgICBjb21waWxlUGF0dGVybixcbiAgICBlbnRlcixcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBHRk0gLyBmcm9udG1hdHRlciBhcmUgdHlwZWQgaW4gYG1kYXN0YCBidXQgbm90IGRlZmluZWRcbiAgICAvLyBoZXJlLlxuICAgIGhhbmRsZXJzOiB7Li4uaGFuZGxlcnN9LFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGFkZCBgaGFuZGxlYCBpbiBhIHNlY29uZC5cbiAgICBoYW5kbGU6IHVuZGVmaW5lZCxcbiAgICBpbmRlbnRMaW5lcyxcbiAgICBpbmRleFN0YWNrOiBbXSxcbiAgICBqb2luOiBbLi4uam9pbl0sXG4gICAgb3B0aW9uczoge30sXG4gICAgc2FmZTogc2FmZUJvdW5kLFxuICAgIHN0YWNrOiBbXSxcbiAgICB1bnNhZmU6IFsuLi51bnNhZmVdXG4gIH1cblxuICBjb25maWd1cmUoc3RhdGUsIHNldHRpbmdzKVxuXG4gIGlmIChzdGF0ZS5vcHRpb25zLnRpZ2h0RGVmaW5pdGlvbnMpIHtcbiAgICBzdGF0ZS5qb2luLnB1c2goam9pbkRlZmluaXRpb24pXG4gIH1cblxuICBzdGF0ZS5oYW5kbGUgPSB6d2l0Y2goJ3R5cGUnLCB7XG4gICAgaW52YWxpZCxcbiAgICB1bmtub3duLFxuICAgIGhhbmRsZXJzOiBzdGF0ZS5oYW5kbGVyc1xuICB9KVxuXG4gIGxldCByZXN1bHQgPSBzdGF0ZS5oYW5kbGUodHJlZSwgdW5kZWZpbmVkLCBzdGF0ZSwge1xuICAgIGJlZm9yZTogJ1xcbicsXG4gICAgYWZ0ZXI6ICdcXG4nLFxuICAgIG5vdzoge2xpbmU6IDEsIGNvbHVtbjogMX0sXG4gICAgbGluZVNoaWZ0OiAwXG4gIH0pXG5cbiAgaWYgKFxuICAgIHJlc3VsdCAmJlxuICAgIHJlc3VsdC5jaGFyQ29kZUF0KHJlc3VsdC5sZW5ndGggLSAxKSAhPT0gMTAgJiZcbiAgICByZXN1bHQuY2hhckNvZGVBdChyZXN1bHQubGVuZ3RoIC0gMSkgIT09IDEzXG4gICkge1xuICAgIHJlc3VsdCArPSAnXFxuJ1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxuXG4gIC8qKiBAdHlwZSB7RW50ZXJ9ICovXG4gIGZ1bmN0aW9uIGVudGVyKG5hbWUpIHtcbiAgICBzdGF0ZS5zdGFjay5wdXNoKG5hbWUpXG4gICAgcmV0dXJuIGV4aXRcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZXhpdCgpIHtcbiAgICAgIHN0YXRlLnN0YWNrLnBvcCgpXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogQHJldHVybnMge25ldmVyfVxuICovXG5mdW5jdGlvbiBpbnZhbGlkKHZhbHVlKSB7XG4gIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGhhbmRsZSB2YWx1ZSBgJyArIHZhbHVlICsgJ2AsIGV4cGVjdGVkIG5vZGUnKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqIEByZXR1cm5zIHtuZXZlcn1cbiAqL1xuZnVuY3Rpb24gdW5rbm93bih2YWx1ZSkge1xuICAvLyBBbHdheXMgYSBub2RlLlxuICBjb25zdCBub2RlID0gLyoqIEB0eXBlIHtOb2Rlc30gKi8gKHZhbHVlKVxuICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBoYW5kbGUgdW5rbm93biBub2RlIGAnICsgbm9kZS50eXBlICsgJ2AnKVxufVxuXG4vKiogQHR5cGUge0pvaW59ICovXG5mdW5jdGlvbiBqb2luRGVmaW5pdGlvbihsZWZ0LCByaWdodCkge1xuICAvLyBObyBibGFuayBsaW5lIGJldHdlZW4gYWRqYWNlbnQgZGVmaW5pdGlvbnMuXG4gIGlmIChsZWZ0LnR5cGUgPT09ICdkZWZpbml0aW9uJyAmJiBsZWZ0LnR5cGUgPT09IHJpZ2h0LnR5cGUpIHtcbiAgICByZXR1cm4gMFxuICB9XG59XG5cbi8qKlxuICogU2VyaWFsaXplIHRoZSBjaGlsZHJlbiBvZiBhIHBhcmVudCB0aGF0IGNvbnRhaW5zIHBocmFzaW5nIGNoaWxkcmVuLlxuICpcbiAqIFRoZXNlIGNoaWxkcmVuIHdpbGwgYmUgam9pbmVkIGZsdXNoIHRvZ2V0aGVyLlxuICpcbiAqIEB0aGlzIHtTdGF0ZX1cbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQaHJhc2luZ1BhcmVudHN9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZmxvdyBub2Rlcy5cbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogICBJbmZvIG9uIHdoZXJlIHdlIGFyZSBpbiB0aGUgZG9jdW1lbnQgd2UgYXJlIGdlbmVyYXRpbmcuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIGNoaWxkcmVuLCBqb2luZWQgdG9nZXRoZXIuXG4gKi9cbmZ1bmN0aW9uIGNvbnRhaW5lclBocmFzaW5nQm91bmQocGFyZW50LCBpbmZvKSB7XG4gIHJldHVybiBjb250YWluZXJQaHJhc2luZyhwYXJlbnQsIHRoaXMsIGluZm8pXG59XG5cbi8qKlxuICogU2VyaWFsaXplIHRoZSBjaGlsZHJlbiBvZiBhIHBhcmVudCB0aGF0IGNvbnRhaW5zIGZsb3cgY2hpbGRyZW4uXG4gKlxuICogVGhlc2UgY2hpbGRyZW4gd2lsbCB0eXBpY2FsbHkgYmUgam9pbmVkIGJ5IGJsYW5rIGxpbmVzLlxuICogV2hhdCB0aGV5IGFyZSBqb2luZWQgYnkgZXhhY3RseSBpcyBkZWZpbmVkIGJ5IGBKb2luYCBmdW5jdGlvbnMuXG4gKlxuICogQHRoaXMge1N0YXRlfVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge0Zsb3dQYXJlbnRzfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGZsb3cgbm9kZXMuXG4gKiBAcGFyYW0ge1RyYWNrRmllbGRzfSBpbmZvXG4gKiAgIEluZm8gb24gd2hlcmUgd2UgYXJlIGluIHRoZSBkb2N1bWVudCB3ZSBhcmUgZ2VuZXJhdGluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgY2hpbGRyZW4sIGpvaW5lZCBieSAoYmxhbmspIGxpbmVzLlxuICovXG5mdW5jdGlvbiBjb250YWluZXJGbG93Qm91bmQocGFyZW50LCBpbmZvKSB7XG4gIHJldHVybiBjb250YWluZXJGbG93KHBhcmVudCwgdGhpcywgaW5mbylcbn1cblxuLyoqXG4gKiBNYWtlIGEgc3RyaW5nIHNhZmUgZm9yIGVtYmVkZGluZyBpbiBtYXJrZG93biBjb25zdHJ1Y3RzLlxuICpcbiAqIEluIG1hcmtkb3duLCBhbG1vc3QgYWxsIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMgY2FuLCBpbiBjZXJ0YWluIGNhc2VzLFxuICogcmVzdWx0IGluIHNvbWV0aGluZy5cbiAqIFdoZXRoZXIgdGhleSBkbyBpcyBoaWdobHkgc3ViamVjdGl2ZSB0byB3aGVyZSB0aGV5IGhhcHBlbiBhbmQgaW4gd2hhdFxuICogdGhleSBoYXBwZW4uXG4gKlxuICogVG8gc29sdmUgdGhpcywgYG1kYXN0LXV0aWwtdG8tbWFya2Rvd25gIHRyYWNrczpcbiAqXG4gKiAqIENoYXJhY3RlcnMgYmVmb3JlIGFuZCBhZnRlciBzb21ldGhpbmc7XG4gKiAqIFdoYXQgXHUyMDFDY29uc3RydWN0c1x1MjAxRCB3ZSBhcmUgaW4uXG4gKlxuICogVGhpcyBpbmZvcm1hdGlvbiBpcyB0aGVuIHVzZWQgYnkgdGhpcyBmdW5jdGlvbiB0byBlc2NhcGUgb3IgZW5jb2RlXG4gKiBzcGVjaWFsIGNoYXJhY3RlcnMuXG4gKlxuICogQHRoaXMge1N0YXRlfVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlXG4gKiAgIFJhdyB2YWx1ZSB0byBtYWtlIHNhZmUuXG4gKiBAcGFyYW0ge1NhZmVDb25maWd9IGNvbmZpZ1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBtYXJrZG93biBzYWZlIGZvciBlbWJlZGRpbmcuXG4gKi9cbmZ1bmN0aW9uIHNhZmVCb3VuZCh2YWx1ZSwgY29uZmlnKSB7XG4gIHJldHVybiBzYWZlKHRoaXMsIHZhbHVlLCBjb25maWcpXG59XG4iLCAiLy8gTm90ZTogZXh0cmEgdHlwZXMgZXhwb3NlZCBmcm9tIGBpbmRleC5kLnRzYC5cbmV4cG9ydCB7dG9NYXJrZG93bn0gZnJvbSAnLi9saWIvaW5kZXguanMnXG5leHBvcnQge2hhbmRsZSBhcyBkZWZhdWx0SGFuZGxlcnN9IGZyb20gJy4vbGliL2hhbmRsZS9pbmRleC5qcydcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuSW5saW5lQ29kZX0gSW5saW5lQ29kZVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5UYWJsZX0gVGFibGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuVGFibGVDZWxsfSBUYWJsZUNlbGxcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuVGFibGVSb3d9IFRhYmxlUm93XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWFya2Rvd24tdGFibGUnKS5PcHRpb25zfSBNYXJrZG93blRhYmxlT3B0aW9uc1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bicpLkNvbXBpbGVDb250ZXh0fSBDb21waWxlQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuRXh0ZW5zaW9ufSBGcm9tTWFya2Rvd25FeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bicpLkhhbmRsZX0gRnJvbU1hcmtkb3duSGFuZGxlXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLk9wdGlvbnN9IFRvTWFya2Rvd25FeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nKS5IYW5kbGV9IFRvTWFya2Rvd25IYW5kbGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nKS5TdGF0ZX0gU3RhdGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nKS5JbmZvfSBJbmZvXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdGFibGVDZWxsUGFkZGluZz10cnVlXVxuICogICBXaGV0aGVyIHRvIGFkZCBhIHNwYWNlIG9mIHBhZGRpbmcgYmV0d2VlbiBkZWxpbWl0ZXJzIGFuZCBjZWxscyAoZGVmYXVsdDpcbiAqICAgYHRydWVgKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0YWJsZVBpcGVBbGlnbj10cnVlXVxuICogICBXaGV0aGVyIHRvIGFsaWduIHRoZSBkZWxpbWl0ZXJzIChkZWZhdWx0OiBgdHJ1ZWApLlxuICogQHByb3BlcnR5IHtNYXJrZG93blRhYmxlT3B0aW9uc1snc3RyaW5nTGVuZ3RoJ10gfCBudWxsIHwgdW5kZWZpbmVkfSBbc3RyaW5nTGVuZ3RoXVxuICogICBGdW5jdGlvbiB0byBkZXRlY3QgdGhlIGxlbmd0aCBvZiB0YWJsZSBjZWxsIGNvbnRlbnQsIHVzZWQgd2hlbiBhbGlnbmluZ1xuICogICB0aGUgZGVsaW1pdGVycyBiZXR3ZWVuIGNlbGxzIChvcHRpb25hbCkuXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7bWFya2Rvd25UYWJsZX0gZnJvbSAnbWFya2Rvd24tdGFibGUnXG5pbXBvcnQge2RlZmF1bHRIYW5kbGVyc30gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIHRhYmxlcyBpblxuICogbWFya2Rvd24uXG4gKlxuICogQHJldHVybnMge0Zyb21NYXJrZG93bkV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIHRhYmxlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbVRhYmxlRnJvbU1hcmtkb3duKCkge1xuICByZXR1cm4ge1xuICAgIGVudGVyOiB7XG4gICAgICB0YWJsZTogZW50ZXJUYWJsZSxcbiAgICAgIHRhYmxlRGF0YTogZW50ZXJDZWxsLFxuICAgICAgdGFibGVIZWFkZXI6IGVudGVyQ2VsbCxcbiAgICAgIHRhYmxlUm93OiBlbnRlclJvd1xuICAgIH0sXG4gICAgZXhpdDoge1xuICAgICAgY29kZVRleHQ6IGV4aXRDb2RlVGV4dCxcbiAgICAgIHRhYmxlOiBleGl0VGFibGUsXG4gICAgICB0YWJsZURhdGE6IGV4aXQsXG4gICAgICB0YWJsZUhlYWRlcjogZXhpdCxcbiAgICAgIHRhYmxlUm93OiBleGl0XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZW50ZXJUYWJsZSh0b2tlbikge1xuICBjb25zdCBhbGlnbiA9IHRva2VuLl9hbGlnblxuICBhc3NlcnQoYWxpZ24sICdleHBlY3RlZCBgX2FsaWduYCBvbiB0YWJsZScpXG4gIHRoaXMuZW50ZXIoXG4gICAge1xuICAgICAgdHlwZTogJ3RhYmxlJyxcbiAgICAgIGFsaWduOiBhbGlnbi5tYXAoZnVuY3Rpb24gKGQpIHtcbiAgICAgICAgcmV0dXJuIGQgPT09ICdub25lJyA/IG51bGwgOiBkXG4gICAgICB9KSxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH0sXG4gICAgdG9rZW5cbiAgKVxuICB0aGlzLmRhdGEuaW5UYWJsZSA9IHRydWVcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBleGl0VGFibGUodG9rZW4pIHtcbiAgdGhpcy5leGl0KHRva2VuKVxuICB0aGlzLmRhdGEuaW5UYWJsZSA9IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGVudGVyUm93KHRva2VuKSB7XG4gIHRoaXMuZW50ZXIoe3R5cGU6ICd0YWJsZVJvdycsIGNoaWxkcmVuOiBbXX0sIHRva2VuKVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGV4aXQodG9rZW4pIHtcbiAgdGhpcy5leGl0KHRva2VuKVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGVudGVyQ2VsbCh0b2tlbikge1xuICB0aGlzLmVudGVyKHt0eXBlOiAndGFibGVDZWxsJywgY2hpbGRyZW46IFtdfSwgdG9rZW4pXG59XG5cbi8vIE92ZXJ3cml0ZSB0aGUgZGVmYXVsdCBjb2RlIHRleHQgZGF0YSBoYW5kbGVyIHRvIHVuZXNjYXBlIGVzY2FwZWQgcGlwZXMgd2hlblxuLy8gdGhleSBhcmUgaW4gdGFibGVzLlxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBleGl0Q29kZVRleHQodG9rZW4pIHtcbiAgbGV0IHZhbHVlID0gdGhpcy5yZXN1bWUoKVxuXG4gIGlmICh0aGlzLmRhdGEuaW5UYWJsZSkge1xuICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFxcXChbXFxcXHxdKS9nLCByZXBsYWNlKVxuICB9XG5cbiAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXVxuICBhc3NlcnQobm9kZS50eXBlID09PSAnaW5saW5lQ29kZScpXG4gIG5vZGUudmFsdWUgPSB2YWx1ZVxuICB0aGlzLmV4aXQodG9rZW4pXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiBAcGFyYW0ge3N0cmluZ30gJDFcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHJlcGxhY2UoJDAsICQxKSB7XG4gIC8vIFBpcGVzIHdvcmssIGJhY2tzbGFzaGVzIGRvblx1MjAxOXQgKGJ1dCBjYW5cdTIwMTl0IGVzY2FwZSBwaXBlcykuXG4gIHJldHVybiAkMSA9PT0gJ3wnID8gJDEgOiAkMFxufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLXRvLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIHRhYmxlcyBpblxuICogbWFya2Rvd24uXG4gKlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7VG9NYXJrZG93bkV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSB0YWJsZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1UYWJsZVRvTWFya2Rvd24ob3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge31cbiAgY29uc3QgcGFkZGluZyA9IHNldHRpbmdzLnRhYmxlQ2VsbFBhZGRpbmdcbiAgY29uc3QgYWxpZ25EZWxpbWl0ZXJzID0gc2V0dGluZ3MudGFibGVQaXBlQWxpZ25cbiAgY29uc3Qgc3RyaW5nTGVuZ3RoID0gc2V0dGluZ3Muc3RyaW5nTGVuZ3RoXG4gIGNvbnN0IGFyb3VuZCA9IHBhZGRpbmcgPyAnICcgOiAnfCdcblxuICByZXR1cm4ge1xuICAgIHVuc2FmZTogW1xuICAgICAge2NoYXJhY3RlcjogJ1xccicsIGluQ29uc3RydWN0OiAndGFibGVDZWxsJ30sXG4gICAgICB7Y2hhcmFjdGVyOiAnXFxuJywgaW5Db25zdHJ1Y3Q6ICd0YWJsZUNlbGwnfSxcbiAgICAgIC8vIEEgcGlwZSwgd2hlbiBmb2xsb3dlZCBieSBhIHRhYiBvciBzcGFjZSAocGFkZGluZyksIG9yIGEgZGFzaCBvciBjb2xvblxuICAgICAgLy8gKHVucGFkZGVkIGRlbGltaXRlciByb3cpLCBjb3VsZCByZXN1bHQgaW4gYSB0YWJsZS5cbiAgICAgIHthdEJyZWFrOiB0cnVlLCBjaGFyYWN0ZXI6ICd8JywgYWZ0ZXI6ICdbXFx0IDotXSd9LFxuICAgICAgLy8gQSBwaXBlIGluIGEgY2VsbCBtdXN0IGJlIGVuY29kZWQuXG4gICAgICB7Y2hhcmFjdGVyOiAnfCcsIGluQ29uc3RydWN0OiAndGFibGVDZWxsJ30sXG4gICAgICAvLyBBIGNvbG9uIG11c3QgYmUgZm9sbG93ZWQgYnkgYSBkYXNoLCBpbiB3aGljaCBjYXNlIGl0IGNvdWxkIHN0YXJ0IGFcbiAgICAgIC8vIGRlbGltaXRlciByb3cuXG4gICAgICB7YXRCcmVhazogdHJ1ZSwgY2hhcmFjdGVyOiAnOicsIGFmdGVyOiAnLSd9LFxuICAgICAgLy8gQSBkZWxpbWl0ZXIgcm93IGNhbiBhbHNvIHN0YXJ0IHdpdGggYSBkYXNoLCB3aGVuIGZvbGxvd2VkIGJ5IG1vcmVcbiAgICAgIC8vIGRhc2hlcywgYSBjb2xvbiwgb3IgYSBwaXBlLlxuICAgICAgLy8gVGhpcyBpcyBhIHN0cmljdGVyIHZlcnNpb24gdGhhbiB0aGUgYnVpbHQgaW4gY2hlY2sgZm9yIGxpc3RzLCB0aGVtYXRpY1xuICAgICAgLy8gYnJlYWtzLCBhbmQgc2V0ZXggaGVhZGluZyB1bmRlcmxpbmVzIHRob3VnaDpcbiAgICAgIC8vIDxodHRwczovL2dpdGh1Yi5jb20vc3ludGF4LXRyZWUvbWRhc3QtdXRpbC10by1tYXJrZG93bi9ibG9iLzUxYTIwMzgvbGliL3Vuc2FmZS5qcyNMNTc+XG4gICAgICB7YXRCcmVhazogdHJ1ZSwgY2hhcmFjdGVyOiAnLScsIGFmdGVyOiAnWzp8LV0nfVxuICAgIF0sXG4gICAgaGFuZGxlcnM6IHtcbiAgICAgIGlubGluZUNvZGU6IGlubGluZUNvZGVXaXRoVGFibGUsXG4gICAgICB0YWJsZTogaGFuZGxlVGFibGUsXG4gICAgICB0YWJsZUNlbGw6IGhhbmRsZVRhYmxlQ2VsbCxcbiAgICAgIHRhYmxlUm93OiBoYW5kbGVUYWJsZVJvd1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7VG9NYXJrZG93bkhhbmRsZX1cbiAgICogQHBhcmFtIHtUYWJsZX0gbm9kZVxuICAgKi9cbiAgZnVuY3Rpb24gaGFuZGxlVGFibGUobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgICByZXR1cm4gc2VyaWFsaXplRGF0YShoYW5kbGVUYWJsZUFzRGF0YShub2RlLCBzdGF0ZSwgaW5mbyksIG5vZGUuYWxpZ24pXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBpc25cdTIwMTl0IHJlYWxseSB1c2VkIG5vcm1hbGx5LCBiZWNhdXNlIHdlIGhhbmRsZSByb3dzIGF0IHRoZVxuICAgKiB0YWJsZSBsZXZlbC5cbiAgICogQnV0LCBpZiBzb21lb25lIHBhc3NlcyBpbiBhIHRhYmxlIHJvdywgdGhpcyBlbnN1cmVzIHdlIG1ha2Ugc29tZXdoYXQgc2Vuc2UuXG4gICAqXG4gICAqIEB0eXBlIHtUb01hcmtkb3duSGFuZGxlfVxuICAgKiBAcGFyYW0ge1RhYmxlUm93fSBub2RlXG4gICAqL1xuICBmdW5jdGlvbiBoYW5kbGVUYWJsZVJvdyhub2RlLCBfLCBzdGF0ZSwgaW5mbykge1xuICAgIGNvbnN0IHJvdyA9IGhhbmRsZVRhYmxlUm93QXNEYXRhKG5vZGUsIHN0YXRlLCBpbmZvKVxuICAgIGNvbnN0IHZhbHVlID0gc2VyaWFsaXplRGF0YShbcm93XSlcbiAgICAvLyBgbWFya2Rvd24tdGFibGVgIHdpbGwgYWx3YXlzIGFkZCBhbiBhbGlnbiByb3dcbiAgICByZXR1cm4gdmFsdWUuc2xpY2UoMCwgdmFsdWUuaW5kZXhPZignXFxuJykpXG4gIH1cblxuICAvKipcbiAgICogQHR5cGUge1RvTWFya2Rvd25IYW5kbGV9XG4gICAqIEBwYXJhbSB7VGFibGVDZWxsfSBub2RlXG4gICAqL1xuICBmdW5jdGlvbiBoYW5kbGVUYWJsZUNlbGwobm9kZSwgXywgc3RhdGUsIGluZm8pIHtcbiAgICBjb25zdCBleGl0ID0gc3RhdGUuZW50ZXIoJ3RhYmxlQ2VsbCcpXG4gICAgY29uc3Qgc3ViZXhpdCA9IHN0YXRlLmVudGVyKCdwaHJhc2luZycpXG4gICAgY29uc3QgdmFsdWUgPSBzdGF0ZS5jb250YWluZXJQaHJhc2luZyhub2RlLCB7XG4gICAgICAuLi5pbmZvLFxuICAgICAgYmVmb3JlOiBhcm91bmQsXG4gICAgICBhZnRlcjogYXJvdW5kXG4gICAgfSlcbiAgICBzdWJleGl0KClcbiAgICBleGl0KClcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0FycmF5PEFycmF5PHN0cmluZz4+fSBtYXRyaXhcbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGlnbl1cbiAgICovXG4gIGZ1bmN0aW9uIHNlcmlhbGl6ZURhdGEobWF0cml4LCBhbGlnbikge1xuICAgIHJldHVybiBtYXJrZG93blRhYmxlKG1hdHJpeCwge1xuICAgICAgYWxpZ24sXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBgbWFya2Rvd24tdGFibGVgIHR5cGVzIHNob3VsZCBzdXBwb3J0IGBudWxsYC5cbiAgICAgIGFsaWduRGVsaW1pdGVycyxcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGBtYXJrZG93bi10YWJsZWAgdHlwZXMgc2hvdWxkIHN1cHBvcnQgYG51bGxgLlxuICAgICAgcGFkZGluZyxcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGBtYXJrZG93bi10YWJsZWAgdHlwZXMgc2hvdWxkIHN1cHBvcnQgYG51bGxgLlxuICAgICAgc3RyaW5nTGVuZ3RoXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1RhYmxlfSBub2RlXG4gICAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gICAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICAgKi9cbiAgZnVuY3Rpb24gaGFuZGxlVGFibGVBc0RhdGEobm9kZSwgc3RhdGUsIGluZm8pIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW5cbiAgICBsZXQgaW5kZXggPSAtMVxuICAgIC8qKiBAdHlwZSB7QXJyYXk8QXJyYXk8c3RyaW5nPj59ICovXG4gICAgY29uc3QgcmVzdWx0ID0gW11cbiAgICBjb25zdCBzdWJleGl0ID0gc3RhdGUuZW50ZXIoJ3RhYmxlJylcblxuICAgIHdoaWxlICgrK2luZGV4IDwgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICByZXN1bHRbaW5kZXhdID0gaGFuZGxlVGFibGVSb3dBc0RhdGEoY2hpbGRyZW5baW5kZXhdLCBzdGF0ZSwgaW5mbylcbiAgICB9XG5cbiAgICBzdWJleGl0KClcblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1RhYmxlUm93fSBub2RlXG4gICAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gICAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICAgKi9cbiAgZnVuY3Rpb24gaGFuZGxlVGFibGVSb3dBc0RhdGEobm9kZSwgc3RhdGUsIGluZm8pIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW5cbiAgICBsZXQgaW5kZXggPSAtMVxuICAgIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgICBjb25zdCByZXN1bHQgPSBbXVxuICAgIGNvbnN0IHN1YmV4aXQgPSBzdGF0ZS5lbnRlcigndGFibGVSb3cnKVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIC8vIE5vdGU6IHRoZSBwb3NpdGlvbmFsIGluZm8gYXMgdXNlZCBoZXJlIGlzIGluY29ycmVjdC5cbiAgICAgIC8vIE1ha2luZyBpdCBjb3JyZWN0IHdvdWxkIGJlIGltcG9zc2libGUgZHVlIHRvIGFsaWduaW5nIGNlbGxzP1xuICAgICAgLy8gQW5kIGl0IHdvdWxkIG5lZWQgY29weS9wYXN0aW5nIGBtYXJrZG93bi10YWJsZWAgaW50byB0aGlzIHByb2plY3QuXG4gICAgICByZXN1bHRbaW5kZXhdID0gaGFuZGxlVGFibGVDZWxsKGNoaWxkcmVuW2luZGV4XSwgbm9kZSwgc3RhdGUsIGluZm8pXG4gICAgfVxuXG4gICAgc3ViZXhpdCgpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICAvKipcbiAgICogQHR5cGUge1RvTWFya2Rvd25IYW5kbGV9XG4gICAqIEBwYXJhbSB7SW5saW5lQ29kZX0gbm9kZVxuICAgKi9cbiAgZnVuY3Rpb24gaW5saW5lQ29kZVdpdGhUYWJsZShub2RlLCBwYXJlbnQsIHN0YXRlKSB7XG4gICAgbGV0IHZhbHVlID0gZGVmYXVsdEhhbmRsZXJzLmlubGluZUNvZGUobm9kZSwgcGFyZW50LCBzdGF0ZSlcblxuICAgIGlmIChzdGF0ZS5zdGFjay5pbmNsdWRlcygndGFibGVDZWxsJykpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFx8L2csICdcXFxcJCYnKVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZVxuICB9XG59XG4iLCAiLy8gTm90ZTogdHlwZXMgZXhwb3NlZCBmcm9tIGBpbmRleC5kLnRzYC5cbmV4cG9ydCB7Z2ZtVGFibGVGcm9tTWFya2Rvd24sIGdmbVRhYmxlVG9NYXJrZG93bn0gZnJvbSAnLi9saWIvaW5kZXguanMnXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLkxpc3RJdGVtfSBMaXN0SXRlbVxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QnKS5QYXJhZ3JhcGh9IFBhcmFncmFwaFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuQ29tcGlsZUNvbnRleHR9IENvbXBpbGVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nKS5FeHRlbnNpb259IEZyb21NYXJrZG93bkV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuSGFuZGxlfSBGcm9tTWFya2Rvd25IYW5kbGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8tbWFya2Rvd24nKS5PcHRpb25zfSBUb01hcmtkb3duRXh0ZW5zaW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLW1hcmtkb3duJykuSGFuZGxlfSBUb01hcmtkb3duSGFuZGxlXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7ZGVmYXVsdEhhbmRsZXJzfSBmcm9tICdtZGFzdC11dGlsLXRvLW1hcmtkb3duJ1xuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLWZyb20tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gdGFza1xuICogbGlzdCBpdGVtcyBpbiBtYXJrZG93bi5cbiAqXG4gKiBAcmV0dXJucyB7RnJvbU1hcmtkb3duRXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLWZyb20tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gdGFzayBsaXN0IGl0ZW1zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtVGFza0xpc3RJdGVtRnJvbU1hcmtkb3duKCkge1xuICByZXR1cm4ge1xuICAgIGV4aXQ6IHtcbiAgICAgIHRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQ6IGV4aXRDaGVjayxcbiAgICAgIHRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZDogZXhpdENoZWNrLFxuICAgICAgcGFyYWdyYXBoOiBleGl0UGFyYWdyYXBoV2l0aFRhc2tMaXN0SXRlbVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLXRvLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIHRhc2sgbGlzdFxuICogaXRlbXMgaW4gbWFya2Rvd24uXG4gKlxuICogQHJldHVybnMge1RvTWFya2Rvd25FeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtdG8tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gdGFzayBsaXN0IGl0ZW1zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtVGFza0xpc3RJdGVtVG9NYXJrZG93bigpIHtcbiAgcmV0dXJuIHtcbiAgICB1bnNhZmU6IFt7YXRCcmVhazogdHJ1ZSwgY2hhcmFjdGVyOiAnLScsIGFmdGVyOiAnWzp8LV0nfV0sXG4gICAgaGFuZGxlcnM6IHtsaXN0SXRlbTogbGlzdEl0ZW1XaXRoVGFza0xpc3RJdGVtfVxuICB9XG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gZXhpdENoZWNrKHRva2VuKSB7XG4gIC8vIFdlXHUyMDE5cmUgYWx3YXlzIGluIGEgcGFyYWdyYXBoLCBpbiBhIGxpc3QgaXRlbS5cbiAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAyXVxuICBhc3NlcnQobm9kZS50eXBlID09PSAnbGlzdEl0ZW0nKVxuICBub2RlLmNoZWNrZWQgPSB0b2tlbi50eXBlID09PSAndGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCdcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7RnJvbU1hcmtkb3duSGFuZGxlfVxuICovXG5mdW5jdGlvbiBleGl0UGFyYWdyYXBoV2l0aFRhc2tMaXN0SXRlbSh0b2tlbikge1xuICBjb25zdCBwYXJlbnQgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMl1cblxuICBpZiAoXG4gICAgcGFyZW50ICYmXG4gICAgcGFyZW50LnR5cGUgPT09ICdsaXN0SXRlbScgJiZcbiAgICB0eXBlb2YgcGFyZW50LmNoZWNrZWQgPT09ICdib29sZWFuJ1xuICApIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdXG4gICAgYXNzZXJ0KG5vZGUudHlwZSA9PT0gJ3BhcmFncmFwaCcpXG4gICAgY29uc3QgaGVhZCA9IG5vZGUuY2hpbGRyZW5bMF1cblxuICAgIGlmIChoZWFkICYmIGhlYWQudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICBjb25zdCBzaWJsaW5ncyA9IHBhcmVudC5jaGlsZHJlblxuICAgICAgbGV0IGluZGV4ID0gLTFcbiAgICAgIC8qKiBAdHlwZSB7UGFyYWdyYXBoIHwgdW5kZWZpbmVkfSAqL1xuICAgICAgbGV0IGZpcnN0UGFyYWdocmFwaFxuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IHNpYmxpbmdzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBzaWJsaW5nID0gc2libGluZ3NbaW5kZXhdXG4gICAgICAgIGlmIChzaWJsaW5nLnR5cGUgPT09ICdwYXJhZ3JhcGgnKSB7XG4gICAgICAgICAgZmlyc3RQYXJhZ2hyYXBoID0gc2libGluZ1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZpcnN0UGFyYWdocmFwaCA9PT0gbm9kZSkge1xuICAgICAgICAvLyBNdXN0IHN0YXJ0IHdpdGggYSBzcGFjZSBvciBhIHRhYi5cbiAgICAgICAgaGVhZC52YWx1ZSA9IGhlYWQudmFsdWUuc2xpY2UoMSlcblxuICAgICAgICBpZiAoaGVhZC52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBub2RlLmNoaWxkcmVuLnNoaWZ0KClcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBub2RlLnBvc2l0aW9uICYmXG4gICAgICAgICAgaGVhZC5wb3NpdGlvbiAmJlxuICAgICAgICAgIHR5cGVvZiBoZWFkLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCA9PT0gJ251bWJlcidcbiAgICAgICAgKSB7XG4gICAgICAgICAgaGVhZC5wb3NpdGlvbi5zdGFydC5jb2x1bW4rK1xuICAgICAgICAgIGhlYWQucG9zaXRpb24uc3RhcnQub2Zmc2V0KytcbiAgICAgICAgICBub2RlLnBvc2l0aW9uLnN0YXJ0ID0gT2JqZWN0LmFzc2lnbih7fSwgaGVhZC5wb3NpdGlvbi5zdGFydClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRoaXMuZXhpdCh0b2tlbilcbn1cblxuLyoqXG4gKiBAdHlwZSB7VG9NYXJrZG93bkhhbmRsZX1cbiAqIEBwYXJhbSB7TGlzdEl0ZW19IG5vZGVcbiAqL1xuZnVuY3Rpb24gbGlzdEl0ZW1XaXRoVGFza0xpc3RJdGVtKG5vZGUsIHBhcmVudCwgc3RhdGUsIGluZm8pIHtcbiAgY29uc3QgaGVhZCA9IG5vZGUuY2hpbGRyZW5bMF1cbiAgY29uc3QgY2hlY2thYmxlID1cbiAgICB0eXBlb2Ygbm9kZS5jaGVja2VkID09PSAnYm9vbGVhbicgJiYgaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdwYXJhZ3JhcGgnXG4gIGNvbnN0IGNoZWNrYm94ID0gJ1snICsgKG5vZGUuY2hlY2tlZCA/ICd4JyA6ICcgJykgKyAnXSAnXG4gIGNvbnN0IHRyYWNrZXIgPSBzdGF0ZS5jcmVhdGVUcmFja2VyKGluZm8pXG5cbiAgaWYgKGNoZWNrYWJsZSkge1xuICAgIHRyYWNrZXIubW92ZShjaGVja2JveClcbiAgfVxuXG4gIGxldCB2YWx1ZSA9IGRlZmF1bHRIYW5kbGVycy5saXN0SXRlbShub2RlLCBwYXJlbnQsIHN0YXRlLCB7XG4gICAgLi4uaW5mbyxcbiAgICAuLi50cmFja2VyLmN1cnJlbnQoKVxuICB9KVxuXG4gIGlmIChjaGVja2FibGUpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL14oPzpbKistXXxcXGQrXFwuKShbXFxyXFxuXXwgezEsM30pLywgY2hlY2spXG4gIH1cblxuICByZXR1cm4gdmFsdWVcblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBmdW5jdGlvbiBjaGVjaygkMCkge1xuICAgIHJldHVybiAkMCArIGNoZWNrYm94XG4gIH1cbn1cbiIsICJleHBvcnQge1xuICBnZm1UYXNrTGlzdEl0ZW1Gcm9tTWFya2Rvd24sXG4gIGdmbVRhc2tMaXN0SXRlbVRvTWFya2Rvd25cbn0gZnJvbSAnLi9saWIvaW5kZXguanMnXG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFeHRlbnNpb24gYXMgRnJvbU1hcmtkb3duRXh0ZW5zaW9ufSBmcm9tICdtZGFzdC11dGlsLWZyb20tbWFya2Rvd24nXG4gKiBAaW1wb3J0IHtPcHRpb25zfSBmcm9tICdtZGFzdC11dGlsLWdmbSdcbiAqIEBpbXBvcnQge09wdGlvbnMgYXMgVG9NYXJrZG93bkV4dGVuc2lvbn0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcbiAqL1xuXG5pbXBvcnQge1xuICBnZm1BdXRvbGlua0xpdGVyYWxGcm9tTWFya2Rvd24sXG4gIGdmbUF1dG9saW5rTGl0ZXJhbFRvTWFya2Rvd25cbn0gZnJvbSAnbWRhc3QtdXRpbC1nZm0tYXV0b2xpbmstbGl0ZXJhbCdcbmltcG9ydCB7XG4gIGdmbUZvb3Rub3RlRnJvbU1hcmtkb3duLFxuICBnZm1Gb290bm90ZVRvTWFya2Rvd25cbn0gZnJvbSAnbWRhc3QtdXRpbC1nZm0tZm9vdG5vdGUnXG5pbXBvcnQge1xuICBnZm1TdHJpa2V0aHJvdWdoRnJvbU1hcmtkb3duLFxuICBnZm1TdHJpa2V0aHJvdWdoVG9NYXJrZG93blxufSBmcm9tICdtZGFzdC11dGlsLWdmbS1zdHJpa2V0aHJvdWdoJ1xuaW1wb3J0IHtnZm1UYWJsZUZyb21NYXJrZG93biwgZ2ZtVGFibGVUb01hcmtkb3dufSBmcm9tICdtZGFzdC11dGlsLWdmbS10YWJsZSdcbmltcG9ydCB7XG4gIGdmbVRhc2tMaXN0SXRlbUZyb21NYXJrZG93bixcbiAgZ2ZtVGFza0xpc3RJdGVtVG9NYXJrZG93blxufSBmcm9tICdtZGFzdC11dGlsLWdmbS10YXNrLWxpc3QtaXRlbSdcblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duYCB0byBlbmFibGUgR0ZNIChhdXRvbGlua1xuICogbGl0ZXJhbHMsIGZvb3Rub3Rlcywgc3RyaWtldGhyb3VnaCwgdGFibGVzLCB0YXNrbGlzdHMpLlxuICpcbiAqIEByZXR1cm5zIHtBcnJheTxGcm9tTWFya2Rvd25FeHRlbnNpb24+fVxuICogICBFeHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLWZyb20tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gKGF1dG9saW5rIGxpdGVyYWxzLFxuICogICBmb290bm90ZXMsIHN0cmlrZXRocm91Z2gsIHRhYmxlcywgdGFza2xpc3RzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbUZyb21NYXJrZG93bigpIHtcbiAgcmV0dXJuIFtcbiAgICBnZm1BdXRvbGlua0xpdGVyYWxGcm9tTWFya2Rvd24oKSxcbiAgICBnZm1Gb290bm90ZUZyb21NYXJrZG93bigpLFxuICAgIGdmbVN0cmlrZXRocm91Z2hGcm9tTWFya2Rvd24oKSxcbiAgICBnZm1UYWJsZUZyb21NYXJrZG93bigpLFxuICAgIGdmbVRhc2tMaXN0SXRlbUZyb21NYXJrZG93bigpXG4gIF1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAgdG8gZW5hYmxlIEdGTSAoYXV0b2xpbmtcbiAqIGxpdGVyYWxzLCBmb290bm90ZXMsIHN0cmlrZXRocm91Z2gsIHRhYmxlcywgdGFza2xpc3RzKS5cbiAqXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge1RvTWFya2Rvd25FeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1kYXN0LXV0aWwtdG8tbWFya2Rvd25gIHRvIGVuYWJsZSBHRk0gKGF1dG9saW5rIGxpdGVyYWxzLFxuICogICBmb290bm90ZXMsIHN0cmlrZXRocm91Z2gsIHRhYmxlcywgdGFza2xpc3RzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbVRvTWFya2Rvd24ob3B0aW9ucykge1xuICByZXR1cm4ge1xuICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgIGdmbUF1dG9saW5rTGl0ZXJhbFRvTWFya2Rvd24oKSxcbiAgICAgIGdmbUZvb3Rub3RlVG9NYXJrZG93bihvcHRpb25zKSxcbiAgICAgIGdmbVN0cmlrZXRocm91Z2hUb01hcmtkb3duKCksXG4gICAgICBnZm1UYWJsZVRvTWFya2Rvd24ob3B0aW9ucyksXG4gICAgICBnZm1UYXNrTGlzdEl0ZW1Ub01hcmtkb3duKClcbiAgICBdXG4gIH1cbn1cbiIsICIvLyBOb3RlOiB0eXBlcyBleHBvc2VkIGZyb20gYGluZGV4LmQudHNgLlxuZXhwb3J0IHtnZm1Gcm9tTWFya2Rvd24sIGdmbVRvTWFya2Rvd259IGZyb20gJy4vbGliL2luZGV4LmpzJ1xuIiwgIi8qKlxuICogTGlrZSBgQXJyYXkjc3BsaWNlYCwgYnV0IHNtYXJ0ZXIgZm9yIGdpYW50IGFycmF5cy5cbiAqXG4gKiBgQXJyYXkjc3BsaWNlYCB0YWtlcyBhbGwgaXRlbXMgdG8gYmUgaW5zZXJ0ZWQgYXMgaW5kaXZpZHVhbCBhcmd1bWVudCB3aGljaFxuICogY2F1c2VzIGEgc3RhY2sgb3ZlcmZsb3cgaW4gVjggd2hlbiB0cnlpbmcgdG8gaW5zZXJ0IDEwMGsgaXRlbXMgZm9yIGluc3RhbmNlLlxuICpcbiAqIE90aGVyd2lzZSwgdGhpcyBkb2VzIG5vdCByZXR1cm4gdGhlIHJlbW92ZWQgaXRlbXMsIGFuZCB0YWtlcyBgaXRlbXNgIGFzIGFuXG4gKiBhcnJheSBpbnN0ZWFkIG9mIHJlc3QgcGFyYW1ldGVycy5cbiAqXG4gKiBAdGVtcGxhdGUge3Vua25vd259IFRcbiAqICAgSXRlbSB0eXBlLlxuICogQHBhcmFtIHtBcnJheTxUPn0gbGlzdFxuICogICBMaXN0IHRvIG9wZXJhdGUgb24uXG4gKiBAcGFyYW0ge251bWJlcn0gc3RhcnRcbiAqICAgSW5kZXggdG8gcmVtb3ZlL2luc2VydCBhdCAoY2FuIGJlIG5lZ2F0aXZlKS5cbiAqIEBwYXJhbSB7bnVtYmVyfSByZW1vdmVcbiAqICAgTnVtYmVyIG9mIGl0ZW1zIHRvIHJlbW92ZS5cbiAqIEBwYXJhbSB7QXJyYXk8VD59IGl0ZW1zXG4gKiAgIEl0ZW1zIHRvIGluamVjdCBpbnRvIGBsaXN0YC5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpY2UobGlzdCwgc3RhcnQsIHJlbW92ZSwgaXRlbXMpIHtcbiAgY29uc3QgZW5kID0gbGlzdC5sZW5ndGg7XG4gIGxldCBjaHVua1N0YXJ0ID0gMDtcbiAgLyoqIEB0eXBlIHtBcnJheTx1bmtub3duPn0gKi9cbiAgbGV0IHBhcmFtZXRlcnM7XG5cbiAgLy8gTWFrZSBzdGFydCBiZXR3ZWVuIHplcm8gYW5kIGBlbmRgIChpbmNsdWRlZCkuXG4gIGlmIChzdGFydCA8IDApIHtcbiAgICBzdGFydCA9IC1zdGFydCA+IGVuZCA/IDAgOiBlbmQgKyBzdGFydDtcbiAgfSBlbHNlIHtcbiAgICBzdGFydCA9IHN0YXJ0ID4gZW5kID8gZW5kIDogc3RhcnQ7XG4gIH1cbiAgcmVtb3ZlID0gcmVtb3ZlID4gMCA/IHJlbW92ZSA6IDA7XG5cbiAgLy8gTm8gbmVlZCB0byBjaHVuayB0aGUgaXRlbXMgaWYgdGhlcmVcdTIwMTlzIG9ubHkgYSBjb3VwbGUgKDEwaykgaXRlbXMuXG4gIGlmIChpdGVtcy5sZW5ndGggPCAxMDAwMCkge1xuICAgIHBhcmFtZXRlcnMgPSBBcnJheS5mcm9tKGl0ZW1zKTtcbiAgICBwYXJhbWV0ZXJzLnVuc2hpZnQoc3RhcnQsIHJlbW92ZSk7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBIdXNoLCBpdFx1MjAxOXMgZmluZS5cbiAgICBsaXN0LnNwbGljZSguLi5wYXJhbWV0ZXJzKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBEZWxldGUgYHJlbW92ZWAgaXRlbXMgc3RhcnRpbmcgZnJvbSBgc3RhcnRgXG4gICAgaWYgKHJlbW92ZSkgbGlzdC5zcGxpY2Uoc3RhcnQsIHJlbW92ZSk7XG5cbiAgICAvLyBJbnNlcnQgdGhlIGl0ZW1zIGluIGNodW5rcyB0byBub3QgY2F1c2Ugc3RhY2sgb3ZlcmZsb3dzLlxuICAgIHdoaWxlIChjaHVua1N0YXJ0IDwgaXRlbXMubGVuZ3RoKSB7XG4gICAgICBwYXJhbWV0ZXJzID0gaXRlbXMuc2xpY2UoY2h1bmtTdGFydCwgY2h1bmtTdGFydCArIDEwMDAwKTtcbiAgICAgIHBhcmFtZXRlcnMudW5zaGlmdChzdGFydCwgMCk7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEh1c2gsIGl0XHUyMDE5cyBmaW5lLlxuICAgICAgbGlzdC5zcGxpY2UoLi4ucGFyYW1ldGVycyk7XG4gICAgICBjaHVua1N0YXJ0ICs9IDEwMDAwO1xuICAgICAgc3RhcnQgKz0gMTAwMDA7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQXBwZW5kIGBpdGVtc2AgKGFuIGFycmF5KSBhdCB0aGUgZW5kIG9mIGBsaXN0YCAoYW5vdGhlciBhcnJheSkuXG4gKiBXaGVuIGBsaXN0YCB3YXMgZW1wdHksIHJldHVybnMgYGl0ZW1zYCBpbnN0ZWFkLlxuICpcbiAqIFRoaXMgcHJldmVudHMgYSBwb3RlbnRpYWxseSBleHBlbnNpdmUgb3BlcmF0aW9uIHdoZW4gYGxpc3RgIGlzIGVtcHR5LFxuICogYW5kIGFkZHMgaXRlbXMgaW4gYmF0Y2hlcyB0byBwcmV2ZW50IFY4IGZyb20gaGFuZ2luZy5cbiAqXG4gKiBAdGVtcGxhdGUge3Vua25vd259IFRcbiAqICAgSXRlbSB0eXBlLlxuICogQHBhcmFtIHtBcnJheTxUPn0gbGlzdFxuICogICBMaXN0IHRvIG9wZXJhdGUgb24uXG4gKiBAcGFyYW0ge0FycmF5PFQ+fSBpdGVtc1xuICogICBJdGVtcyB0byBhZGQgdG8gYGxpc3RgLlxuICogQHJldHVybnMge0FycmF5PFQ+fVxuICogICBFaXRoZXIgYGxpc3RgIG9yIGBpdGVtc2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwdXNoKGxpc3QsIGl0ZW1zKSB7XG4gIGlmIChsaXN0Lmxlbmd0aCA+IDApIHtcbiAgICBzcGxpY2UobGlzdCwgbGlzdC5sZW5ndGgsIDAsIGl0ZW1zKTtcbiAgICByZXR1cm4gbGlzdDtcbiAgfVxuICByZXR1cm4gaXRlbXM7XG59IiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIEV4dGVuc2lvbixcbiAqICAgSGFuZGxlcyxcbiAqICAgSHRtbEV4dGVuc2lvbixcbiAqICAgTm9ybWFsaXplZEV4dGVuc2lvblxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQge3NwbGljZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2h1bmtlZCdcblxuY29uc3QgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIENvbWJpbmUgbXVsdGlwbGUgc3ludGF4IGV4dGVuc2lvbnMgaW50byBvbmUuXG4gKlxuICogQHBhcmFtIHtSZWFkb25seUFycmF5PEV4dGVuc2lvbj59IGV4dGVuc2lvbnNcbiAqICAgTGlzdCBvZiBzeW50YXggZXh0ZW5zaW9ucy5cbiAqIEByZXR1cm5zIHtOb3JtYWxpemVkRXh0ZW5zaW9ufVxuICogICBBIHNpbmdsZSBjb21iaW5lZCBleHRlbnNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRXh0ZW5zaW9ucyhleHRlbnNpb25zKSB7XG4gIC8qKiBAdHlwZSB7Tm9ybWFsaXplZEV4dGVuc2lvbn0gKi9cbiAgY29uc3QgYWxsID0ge31cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGV4dGVuc2lvbnMubGVuZ3RoKSB7XG4gICAgc3ludGF4RXh0ZW5zaW9uKGFsbCwgZXh0ZW5zaW9uc1tpbmRleF0pXG4gIH1cblxuICByZXR1cm4gYWxsXG59XG5cbi8qKlxuICogTWVyZ2UgYGV4dGVuc2lvbmAgaW50byBgYWxsYC5cbiAqXG4gKiBAcGFyYW0ge05vcm1hbGl6ZWRFeHRlbnNpb259IGFsbFxuICogICBFeHRlbnNpb24gdG8gbWVyZ2UgaW50by5cbiAqIEBwYXJhbSB7RXh0ZW5zaW9ufSBleHRlbnNpb25cbiAqICAgRXh0ZW5zaW9uIHRvIG1lcmdlLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gc3ludGF4RXh0ZW5zaW9uKGFsbCwgZXh0ZW5zaW9uKSB7XG4gIC8qKiBAdHlwZSB7a2V5b2YgRXh0ZW5zaW9ufSAqL1xuICBsZXQgaG9va1xuXG4gIGZvciAoaG9vayBpbiBleHRlbnNpb24pIHtcbiAgICBjb25zdCBtYXliZSA9IGhhc093blByb3BlcnR5LmNhbGwoYWxsLCBob29rKSA/IGFsbFtob29rXSA6IHVuZGVmaW5lZFxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59ICovXG4gICAgY29uc3QgbGVmdCA9IG1heWJlIHx8IChhbGxbaG9va10gPSB7fSlcbiAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkfSAqL1xuICAgIGNvbnN0IHJpZ2h0ID0gZXh0ZW5zaW9uW2hvb2tdXG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IGNvZGVcblxuICAgIGlmIChyaWdodCkge1xuICAgICAgZm9yIChjb2RlIGluIHJpZ2h0KSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcGVydHkuY2FsbChsZWZ0LCBjb2RlKSkgbGVmdFtjb2RlXSA9IFtdXG4gICAgICAgIGNvbnN0IHZhbHVlID0gcmlnaHRbY29kZV1cbiAgICAgICAgY29uc3RydWN0cyhcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIExvb2tzIGxpa2UgYSBsaXN0LlxuICAgICAgICAgIGxlZnRbY29kZV0sXG4gICAgICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IHZhbHVlID8gW3ZhbHVlXSA6IFtdXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBNZXJnZSBgbGlzdGAgaW50byBgZXhpc3RpbmdgIChib3RoIGxpc3RzIG9mIGNvbnN0cnVjdHMpLlxuICogTXV0YXRlcyBgZXhpc3RpbmdgLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8dW5rbm93bj59IGV4aXN0aW5nXG4gKiAgIExpc3Qgb2YgY29uc3RydWN0cyB0byBtZXJnZSBpbnRvLlxuICogQHBhcmFtIHtBcnJheTx1bmtub3duPn0gbGlzdFxuICogICBMaXN0IG9mIGNvbnN0cnVjdHMgdG8gbWVyZ2UuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBjb25zdHJ1Y3RzKGV4aXN0aW5nLCBsaXN0KSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7QXJyYXk8dW5rbm93bj59ICovXG4gIGNvbnN0IGJlZm9yZSA9IFtdXG5cbiAgd2hpbGUgKCsraW5kZXggPCBsaXN0Lmxlbmd0aCkge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgTG9va3MgbGlrZSBhbiBvYmplY3QuXG4gICAgOyhsaXN0W2luZGV4XS5hZGQgPT09ICdhZnRlcicgPyBleGlzdGluZyA6IGJlZm9yZSkucHVzaChsaXN0W2luZGV4XSlcbiAgfVxuXG4gIHNwbGljZShleGlzdGluZywgMCwgMCwgYmVmb3JlKVxufVxuXG4vKipcbiAqIENvbWJpbmUgbXVsdGlwbGUgSFRNTCBleHRlbnNpb25zIGludG8gb25lLlxuICpcbiAqIEBwYXJhbSB7UmVhZG9ubHlBcnJheTxIdG1sRXh0ZW5zaW9uPn0gaHRtbEV4dGVuc2lvbnNcbiAqICAgTGlzdCBvZiBIVE1MIGV4dGVuc2lvbnMuXG4gKiBAcmV0dXJucyB7SHRtbEV4dGVuc2lvbn1cbiAqICAgU2luZ2xlIGNvbWJpbmVkIEhUTUwgZXh0ZW5zaW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUh0bWxFeHRlbnNpb25zKGh0bWxFeHRlbnNpb25zKSB7XG4gIC8qKiBAdHlwZSB7SHRtbEV4dGVuc2lvbn0gKi9cbiAgY29uc3QgaGFuZGxlcnMgPSB7fVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgaHRtbEV4dGVuc2lvbnMubGVuZ3RoKSB7XG4gICAgaHRtbEV4dGVuc2lvbihoYW5kbGVycywgaHRtbEV4dGVuc2lvbnNbaW5kZXhdKVxuICB9XG5cbiAgcmV0dXJuIGhhbmRsZXJzXG59XG5cbi8qKlxuICogTWVyZ2UgYGV4dGVuc2lvbmAgaW50byBgYWxsYC5cbiAqXG4gKiBAcGFyYW0ge0h0bWxFeHRlbnNpb259IGFsbFxuICogICBFeHRlbnNpb24gdG8gbWVyZ2UgaW50by5cbiAqIEBwYXJhbSB7SHRtbEV4dGVuc2lvbn0gZXh0ZW5zaW9uXG4gKiAgIEV4dGVuc2lvbiB0byBtZXJnZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGh0bWxFeHRlbnNpb24oYWxsLCBleHRlbnNpb24pIHtcbiAgLyoqIEB0eXBlIHtrZXlvZiBIdG1sRXh0ZW5zaW9ufSAqL1xuICBsZXQgaG9va1xuXG4gIGZvciAoaG9vayBpbiBleHRlbnNpb24pIHtcbiAgICBjb25zdCBtYXliZSA9IGhhc093blByb3BlcnR5LmNhbGwoYWxsLCBob29rKSA/IGFsbFtob29rXSA6IHVuZGVmaW5lZFxuICAgIGNvbnN0IGxlZnQgPSBtYXliZSB8fCAoYWxsW2hvb2tdID0ge30pXG4gICAgY29uc3QgcmlnaHQgPSBleHRlbnNpb25baG9va11cbiAgICAvKiogQHR5cGUge2tleW9mIEhhbmRsZXN9ICovXG4gICAgbGV0IHR5cGVcblxuICAgIGlmIChyaWdodCkge1xuICAgICAgZm9yICh0eXBlIGluIHJpZ2h0KSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgYXNzdW1lIGRvY3VtZW50IHZzIHJlZ3VsYXIgaGFuZGxlciBhcmUgbWFuYWdlZCBjb3JyZWN0bHkuXG4gICAgICAgIGxlZnRbdHlwZV0gPSByaWdodFt0eXBlXVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7Q29kZSwgQ29uc3RydWN0UmVjb3JkLCBFdmVudCwgRXh0ZW5zaW9uLCBQcmV2aW91cywgU3RhdGUsIFRva2VuaXplQ29udGV4dCwgVG9rZW5pemVyfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBhc2NpaUFscGhhLCBhc2NpaUFscGhhbnVtZXJpYywgYXNjaWlDb250cm9sLCBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlLCB1bmljb2RlUHVuY3R1YXRpb24sIHVuaWNvZGVXaGl0ZXNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbmNvbnN0IHd3d1ByZWZpeCA9IHtcbiAgdG9rZW5pemU6IHRva2VuaXplV3d3UHJlZml4LFxuICBwYXJ0aWFsOiB0cnVlXG59O1xuY29uc3QgZG9tYWluID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVEb21haW4sXG4gIHBhcnRpYWw6IHRydWVcbn07XG5jb25zdCBwYXRoID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVQYXRoLFxuICBwYXJ0aWFsOiB0cnVlXG59O1xuY29uc3QgdHJhaWwgPSB7XG4gIHRva2VuaXplOiB0b2tlbml6ZVRyYWlsLFxuICBwYXJ0aWFsOiB0cnVlXG59O1xuY29uc3QgZW1haWxEb21haW5Eb3RUcmFpbCA9IHtcbiAgdG9rZW5pemU6IHRva2VuaXplRW1haWxEb21haW5Eb3RUcmFpbCxcbiAgcGFydGlhbDogdHJ1ZVxufTtcbmNvbnN0IHd3d0F1dG9saW5rID0ge1xuICBuYW1lOiAnd3d3QXV0b2xpbmsnLFxuICB0b2tlbml6ZTogdG9rZW5pemVXd3dBdXRvbGluayxcbiAgcHJldmlvdXM6IHByZXZpb3VzV3d3XG59O1xuY29uc3QgcHJvdG9jb2xBdXRvbGluayA9IHtcbiAgbmFtZTogJ3Byb3RvY29sQXV0b2xpbmsnLFxuICB0b2tlbml6ZTogdG9rZW5pemVQcm90b2NvbEF1dG9saW5rLFxuICBwcmV2aW91czogcHJldmlvdXNQcm90b2NvbFxufTtcbmNvbnN0IGVtYWlsQXV0b2xpbmsgPSB7XG4gIG5hbWU6ICdlbWFpbEF1dG9saW5rJyxcbiAgdG9rZW5pemU6IHRva2VuaXplRW1haWxBdXRvbGluayxcbiAgcHJldmlvdXM6IHByZXZpb3VzRW1haWxcbn07XG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0UmVjb3JkfSAqL1xuY29uc3QgdGV4dCA9IHt9O1xuXG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRvIHN1cHBvcnQgR2l0SHViIGF1dG9saW5rIGxpdGVyYWxcbiAqIHN5bnRheC5cbiAqXG4gKiBAcmV0dXJucyB7RXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRoYXQgY2FuIGJlIHBhc3NlZCBpbiBgZXh0ZW5zaW9uc2AgdG8gZW5hYmxlIEdGTVxuICogICBhdXRvbGluayBsaXRlcmFsIHN5bnRheC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbUF1dG9saW5rTGl0ZXJhbCgpIHtcbiAgcmV0dXJuIHtcbiAgICB0ZXh0XG4gIH07XG59XG5cbi8qKiBAdHlwZSB7Q29kZX0gKi9cbmxldCBjb2RlID0gNDg7XG5cbi8vIEFkZCBhbHBoYW51bWVyaWNzLlxud2hpbGUgKGNvZGUgPCAxMjMpIHtcbiAgdGV4dFtjb2RlXSA9IGVtYWlsQXV0b2xpbms7XG4gIGNvZGUrKztcbiAgaWYgKGNvZGUgPT09IDU4KSBjb2RlID0gNjU7ZWxzZSBpZiAoY29kZSA9PT0gOTEpIGNvZGUgPSA5Nztcbn1cbnRleHRbNDNdID0gZW1haWxBdXRvbGluaztcbnRleHRbNDVdID0gZW1haWxBdXRvbGluaztcbnRleHRbNDZdID0gZW1haWxBdXRvbGluaztcbnRleHRbOTVdID0gZW1haWxBdXRvbGluaztcbnRleHRbNzJdID0gW2VtYWlsQXV0b2xpbmssIHByb3RvY29sQXV0b2xpbmtdO1xudGV4dFsxMDRdID0gW2VtYWlsQXV0b2xpbmssIHByb3RvY29sQXV0b2xpbmtdO1xudGV4dFs4N10gPSBbZW1haWxBdXRvbGluaywgd3d3QXV0b2xpbmtdO1xudGV4dFsxMTldID0gW2VtYWlsQXV0b2xpbmssIHd3d0F1dG9saW5rXTtcblxuLy8gVG8gZG86IHBlcmZvcm0gZW1haWwgYXV0b2xpbmsgbGl0ZXJhbHMgb24gZXZlbnRzLCBhZnRlcndhcmRzLlxuLy8gVGhhdFx1MjAxOXMgd2hlcmUgYG1hcmtkb3duLXJzYCBhbmQgYGNtYXJrLWdmbWAgcGVyZm9ybSBpdC5cbi8vIEl0IHNob3VsZCBsb29rIGZvciBgQGAsIHRoZW4gZm9yIGF0ZXh0IGJhY2t3YXJkcywgYW5kIHRoZW4gZm9yIGEgbGFiZWxcbi8vIGZvcndhcmRzLlxuLy8gVG8gZG86IGBtYWlsdG86YCwgYHhtcHA6YCBwcm90b2NvbCBhcyBwcmVmaXguXG5cbi8qKlxuICogRW1haWwgYXV0b2xpbmsgbGl0ZXJhbC5cbiAqXG4gKiBgYGBtYXJrZG93blxuICogPiB8IGEgY29udGFjdEBleGFtcGxlLm9yZyBiXG4gKiAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXG4gKiBgYGBcbiAqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVFbWFpbEF1dG9saW5rKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGRvdDtcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgZGF0YTtcbiAgcmV0dXJuIHN0YXJ0O1xuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBlbWFpbCBhdXRvbGluayBsaXRlcmFsLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSBjb250YWN0QGV4YW1wbGUub3JnIGJcbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGlmICghZ2ZtQXRleHQoY29kZSkgfHwgIXByZXZpb3VzRW1haWwuY2FsbChzZWxmLCBzZWxmLnByZXZpb3VzKSB8fCBwcmV2aW91c1VuYmFsYW5jZWQoc2VsZi5ldmVudHMpKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmVudGVyKCdsaXRlcmFsQXV0b2xpbmsnKTtcbiAgICBlZmZlY3RzLmVudGVyKCdsaXRlcmFsQXV0b2xpbmtFbWFpbCcpO1xuICAgIHJldHVybiBhdGV4dChjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBlbWFpbCBhdGV4dC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgY29udGFjdEBleGFtcGxlLm9yZyBiXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGF0ZXh0KGNvZGUpIHtcbiAgICBpZiAoZ2ZtQXRleHQoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBhdGV4dDtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDY0KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gZW1haWxEb21haW47XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gZW1haWwgZG9tYWluLlxuICAgKlxuICAgKiBUaGUgcmVmZXJlbmNlIGNvZGUgaXMgYSBiaXQgb3Zlcmx5IGNvbXBsZXggYXMgaXQgaGFuZGxlcyB0aGUgYEBgLCBvZiB3aGljaFxuICAgKiB0aGVyZSBtYXkgYmUganVzdCBvbmUuXG4gICAqIFNvdXJjZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvY21hcmstZ2ZtL2Jsb2IvZWYxY2ZjYi9leHRlbnNpb25zL2F1dG9saW5rLmMjTDMxOD5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgY29udGFjdEBleGFtcGxlLm9yZyBiXG4gICAqICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW1haWxEb21haW4oY29kZSkge1xuICAgIC8vIERvdCBmb2xsb3dlZCBieSBhbHBoYW51bWVyaWNhbCAobm90IGAtYCBvciBgX2ApLlxuICAgIGlmIChjb2RlID09PSA0Nikge1xuICAgICAgcmV0dXJuIGVmZmVjdHMuY2hlY2soZW1haWxEb21haW5Eb3RUcmFpbCwgZW1haWxEb21haW5BZnRlciwgZW1haWxEb21haW5Eb3QpKGNvZGUpO1xuICAgIH1cblxuICAgIC8vIEFscGhhbnVtZXJpY2FsLCBgLWAsIGFuZCBgX2AuXG4gICAgaWYgKGNvZGUgPT09IDQ1IHx8IGNvZGUgPT09IDk1IHx8IGFzY2lpQWxwaGFudW1lcmljKGNvZGUpKSB7XG4gICAgICBkYXRhID0gdHJ1ZTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBlbWFpbERvbWFpbjtcbiAgICB9XG5cbiAgICAvLyBUbyBkbzogYC9gIGlmIHhtcHAuXG5cbiAgICAvLyBOb3RlOiBub3JtYWxseSB3ZVx1MjAxOWQgdHJ1bmNhdGUgdHJhaWxpbmcgcHVuY3R1YXRpb24gZnJvbSB0aGUgbGluay5cbiAgICAvLyBIb3dldmVyLCBlbWFpbCBhdXRvbGluayBsaXRlcmFscyBjYW5ub3QgY29udGFpbiBhbnkgb2YgdGhvc2UgbWFya2VycyxcbiAgICAvLyBleGNlcHQgZm9yIGAuYCwgYnV0IHRoYXQgY2FuIG9ubHkgb2NjdXIgaWYgaXQgaXNuXHUyMDE5dCB0cmFpbGluZy5cbiAgICAvLyBTbyB3ZSBjYW4gaWdub3JlIHRydW5jYXRpbmchXG4gICAgcmV0dXJuIGVtYWlsRG9tYWluQWZ0ZXIoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gZW1haWwgZG9tYWluLCBvbiBkb3QgdGhhdCBpcyBub3QgYSB0cmFpbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgY29udGFjdEBleGFtcGxlLm9yZyBiXG4gICAqICAgICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVtYWlsRG9tYWluRG90KGNvZGUpIHtcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgZG90ID0gdHJ1ZTtcbiAgICByZXR1cm4gZW1haWxEb21haW47XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZW1haWwgZG9tYWluLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSBjb250YWN0QGV4YW1wbGUub3JnIGJcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVtYWlsRG9tYWluQWZ0ZXIoY29kZSkge1xuICAgIC8vIERvbWFpbiBtdXN0IG5vdCBiZSBlbXB0eSwgbXVzdCBpbmNsdWRlIGEgZG90LCBhbmQgbXVzdCBlbmQgaW4gYWxwaGFiZXRpY2FsLlxuICAgIC8vIFNvdXJjZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvY21hcmstZ2ZtL2Jsb2IvZWYxY2ZjYi9leHRlbnNpb25zL2F1dG9saW5rLmMjTDMzMj4uXG4gICAgaWYgKGRhdGEgJiYgZG90ICYmIGFzY2lpQWxwaGEoc2VsZi5wcmV2aW91cykpIHtcbiAgICAgIGVmZmVjdHMuZXhpdCgnbGl0ZXJhbEF1dG9saW5rRW1haWwnKTtcbiAgICAgIGVmZmVjdHMuZXhpdCgnbGl0ZXJhbEF1dG9saW5rJyk7XG4gICAgICByZXR1cm4gb2soY29kZSk7XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBgd3d3YCBhdXRvbGluayBsaXRlcmFsLlxuICpcbiAqIGBgYG1hcmtkb3duXG4gKiA+IHwgYSB3d3cuZXhhbXBsZS5vcmcgYlxuICogICAgICAgXl5eXl5eXl5eXl5eXl5eXG4gKiBgYGBcbiAqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVXd3dBdXRvbGluayhlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICByZXR1cm4gd3d3U3RhcnQ7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIHd3dyBhdXRvbGluayBsaXRlcmFsLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgd3d3LmV4YW1wbGUuY29tL2E/YiNjXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB3d3dTdGFydChjb2RlKSB7XG4gICAgaWYgKGNvZGUgIT09IDg3ICYmIGNvZGUgIT09IDExOSB8fCAhcHJldmlvdXNXd3cuY2FsbChzZWxmLCBzZWxmLnByZXZpb3VzKSB8fCBwcmV2aW91c1VuYmFsYW5jZWQoc2VsZi5ldmVudHMpKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmVudGVyKCdsaXRlcmFsQXV0b2xpbmsnKTtcbiAgICBlZmZlY3RzLmVudGVyKCdsaXRlcmFsQXV0b2xpbmtXd3cnKTtcbiAgICAvLyBOb3RlOiB3ZSAqY2hlY2sqLCBzbyB3ZSBjYW4gZGlzY2FyZCB0aGUgYHd3dy5gIHdlIHBhcnNlZC5cbiAgICAvLyBJZiBpdCB3b3JrZWQsIHdlIGNvbnNpZGVyIGl0IGFzIGEgcGFydCBvZiB0aGUgZG9tYWluLlxuICAgIHJldHVybiBlZmZlY3RzLmNoZWNrKHd3d1ByZWZpeCwgZWZmZWN0cy5hdHRlbXB0KGRvbWFpbiwgZWZmZWN0cy5hdHRlbXB0KHBhdGgsIHd3d0FmdGVyKSwgbm9rKSwgbm9rKShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBhIHd3dyBhdXRvbGluayBsaXRlcmFsLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgd3d3LmV4YW1wbGUuY29tL2E/YiNjXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB3d3dBZnRlcihjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KCdsaXRlcmFsQXV0b2xpbmtXd3cnKTtcbiAgICBlZmZlY3RzLmV4aXQoJ2xpdGVyYWxBdXRvbGluaycpO1xuICAgIHJldHVybiBvayhjb2RlKTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3RvY29sIGF1dG9saW5rIGxpdGVyYWwuXG4gKlxuICogYGBgbWFya2Rvd25cbiAqID4gfCBhIGh0dHBzOi8vZXhhbXBsZS5vcmcgYlxuICogICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXlxuICogYGBgXG4gKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplUHJvdG9jb2xBdXRvbGluayhlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICBsZXQgYnVmZmVyID0gJyc7XG4gIGxldCBzZWVuID0gZmFsc2U7XG4gIHJldHVybiBwcm90b2NvbFN0YXJ0O1xuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBwcm90b2NvbCBhdXRvbGluayBsaXRlcmFsLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgaHR0cHM6Ly9leGFtcGxlLmNvbS9hP2IjY1xuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcHJvdG9jb2xTdGFydChjb2RlKSB7XG4gICAgaWYgKChjb2RlID09PSA3MiB8fCBjb2RlID09PSAxMDQpICYmIHByZXZpb3VzUHJvdG9jb2wuY2FsbChzZWxmLCBzZWxmLnByZXZpb3VzKSAmJiAhcHJldmlvdXNVbmJhbGFuY2VkKHNlbGYuZXZlbnRzKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcignbGl0ZXJhbEF1dG9saW5rJyk7XG4gICAgICBlZmZlY3RzLmVudGVyKCdsaXRlcmFsQXV0b2xpbmtIdHRwJyk7XG4gICAgICBidWZmZXIgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY29kZSk7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gcHJvdG9jb2xQcmVmaXhJbnNpZGU7XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gcHJvdG9jb2wuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBodHRwczovL2V4YW1wbGUuY29tL2E/YiNjXG4gICAqICAgICBeXl5eXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcHJvdG9jb2xQcmVmaXhJbnNpZGUoY29kZSkge1xuICAgIC8vIGA1YCBpcyBzaXplIG9mIGBodHRwc2BcbiAgICBpZiAoYXNjaWlBbHBoYShjb2RlKSAmJiBidWZmZXIubGVuZ3RoIDwgNSkge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZGVmaW5pdGVseSBudW1iZXIuXG4gICAgICBidWZmZXIgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY29kZSk7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gcHJvdG9jb2xQcmVmaXhJbnNpZGU7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSA1OCkge1xuICAgICAgY29uc3QgcHJvdG9jb2wgPSBidWZmZXIudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChwcm90b2NvbCA9PT0gJ2h0dHAnIHx8IHByb3RvY29sID09PSAnaHR0cHMnKSB7XG4gICAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgICAgcmV0dXJuIHByb3RvY29sU2xhc2hlc0luc2lkZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBzbGFzaGVzLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgaHR0cHM6Ly9leGFtcGxlLmNvbS9hP2IjY1xuICAgKiAgICAgICAgICAgXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHByb3RvY29sU2xhc2hlc0luc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQ3KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBpZiAoc2Vlbikge1xuICAgICAgICByZXR1cm4gYWZ0ZXJQcm90b2NvbDtcbiAgICAgIH1cbiAgICAgIHNlZW4gPSB0cnVlO1xuICAgICAgcmV0dXJuIHByb3RvY29sU2xhc2hlc0luc2lkZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBwcm90b2NvbCwgYmVmb3JlIGRvbWFpbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGh0dHBzOi8vZXhhbXBsZS5jb20vYT9iI2NcbiAgICogICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYWZ0ZXJQcm90b2NvbChjb2RlKSB7XG4gICAgLy8gVG8gZG86IHRoaXMgaXMgZGlmZmVyZW50IGZyb20gYG1hcmtkb3duLXJzYDpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL21hcmtkb3duLXJzL2Jsb2IvYjNhOTIxYzc2MTMwOWFlMDBhNTFmZTM0OGQ4YTQzYWRiYzU0YjUxOC9zcmMvY29uc3RydWN0L2dmbV9hdXRvbGlua19saXRlcmFsLnJzI0wxNzItTDE4MlxuICAgIHJldHVybiBjb2RlID09PSBudWxsIHx8IGFzY2lpQ29udHJvbChjb2RlKSB8fCBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpIHx8IHVuaWNvZGVXaGl0ZXNwYWNlKGNvZGUpIHx8IHVuaWNvZGVQdW5jdHVhdGlvbihjb2RlKSA/IG5vayhjb2RlKSA6IGVmZmVjdHMuYXR0ZW1wdChkb21haW4sIGVmZmVjdHMuYXR0ZW1wdChwYXRoLCBwcm90b2NvbEFmdGVyKSwgbm9rKShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBhIHByb3RvY29sIGF1dG9saW5rIGxpdGVyYWwuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBodHRwczovL2V4YW1wbGUuY29tL2E/YiNjXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcHJvdG9jb2xBZnRlcihjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KCdsaXRlcmFsQXV0b2xpbmtIdHRwJyk7XG4gICAgZWZmZWN0cy5leGl0KCdsaXRlcmFsQXV0b2xpbmsnKTtcbiAgICByZXR1cm4gb2soY29kZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBgd3d3YCBwcmVmaXguXG4gKlxuICogYGBgbWFya2Rvd25cbiAqID4gfCBhIHd3dy5leGFtcGxlLm9yZyBiXG4gKiAgICAgICBeXl5eXG4gKiBgYGBcbiAqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVXd3dQcmVmaXgoZWZmZWN0cywgb2ssIG5vaykge1xuICBsZXQgc2l6ZSA9IDA7XG4gIHJldHVybiB3d3dQcmVmaXhJbnNpZGU7XG5cbiAgLyoqXG4gICAqIEluIHd3dyBwcmVmaXguXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB3d3cuZXhhbXBsZS5jb21cbiAgICogICAgIF5eXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHd3d1ByZWZpeEluc2lkZShjb2RlKSB7XG4gICAgaWYgKChjb2RlID09PSA4NyB8fCBjb2RlID09PSAxMTkpICYmIHNpemUgPCAzKSB7XG4gICAgICBzaXplKys7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gd3d3UHJlZml4SW5zaWRlO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNDYgJiYgc2l6ZSA9PT0gMykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIHd3d1ByZWZpeEFmdGVyO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIHd3dyBwcmVmaXguXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB3d3cuZXhhbXBsZS5jb21cbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB3d3dQcmVmaXhBZnRlcihjb2RlKSB7XG4gICAgLy8gSWYgdGhlcmUgaXMgKmFueXRoaW5nKiwgd2UgY2FuIGxpbmsuXG4gICAgcmV0dXJuIGNvZGUgPT09IG51bGwgPyBub2soY29kZSkgOiBvayhjb2RlKTtcbiAgfVxufVxuXG4vKipcbiAqIERvbWFpbi5cbiAqXG4gKiBgYGBtYXJrZG93blxuICogPiB8IGEgaHR0cHM6Ly9leGFtcGxlLm9yZyBiXG4gKiAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXG4gKiBgYGBcbiAqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVEb21haW4oZWZmZWN0cywgb2ssIG5vaykge1xuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCB1bmRlcnNjb3JlSW5MYXN0U2VnbWVudDtcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdW5kZXJzY29yZUluTGFzdExhc3RTZWdtZW50O1xuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBzZWVuO1xuICByZXR1cm4gZG9tYWluSW5zaWRlO1xuXG4gIC8qKlxuICAgKiBJbiBkb21haW4uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBodHRwczovL2V4YW1wbGUuY29tL2FcbiAgICogICAgICAgICAgICAgXl5eXl5eXl5eXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGRvbWFpbkluc2lkZShjb2RlKSB7XG4gICAgLy8gQ2hlY2sgd2hldGhlciB0aGlzIG1hcmtlciwgd2hpY2ggaXMgYSB0cmFpbGluZyBwdW5jdHVhdGlvblxuICAgIC8vIG1hcmtlciwgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBtb3JlIHRyYWlsaW5nIG1hcmtlcnMsIGFuZCB0aGVuXG4gICAgLy8gZm9sbG93ZWQgYnkgYW4gZW5kLlxuICAgIGlmIChjb2RlID09PSA0NiB8fCBjb2RlID09PSA5NSkge1xuICAgICAgcmV0dXJuIGVmZmVjdHMuY2hlY2sodHJhaWwsIGRvbWFpbkFmdGVyLCBkb21haW5BdFB1bmN0dWF0aW9uKShjb2RlKTtcbiAgICB9XG5cbiAgICAvLyBHSCBkb2N1bWVudHMgdGhhdCBvbmx5IGFscGhhbnVtZXJpY3MgKG90aGVyIHRoYW4gYC1gLCBgLmAsIGFuZCBgX2ApIGNhblxuICAgIC8vIG9jY3VyLCB3aGljaCBzb3VuZHMgbGlrZSBBU0NJSSBvbmx5LCBidXQgdGhleSBhbHNvIHN1cHBvcnQgYHd3dy5cdTlFREVcdTc3MEIuY29tYCxcbiAgICAvLyBzbyB0aGF0XHUyMDE5cyBVbmljb2RlLlxuICAgIC8vIEluc3RlYWQgb2Ygc29tZSBuZXcgcHJvZHVjdGlvbiBmb3IgVW5pY29kZSBhbHBoYW51bWVyaWNzLCBtYXJrZG93blxuICAgIC8vIGFscmVhZHkgaGFzIHRoYXQgZm9yIFVuaWNvZGUgcHVuY3R1YXRpb24gYW5kIHdoaXRlc3BhY2UsIHNvIHVzZSB0aG9zZS5cbiAgICAvLyBTb3VyY2U6IDxodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2NtYXJrLWdmbS9ibG9iL2VmMWNmY2IvZXh0ZW5zaW9ucy9hdXRvbGluay5jI0wxMj4uXG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSB8fCB1bmljb2RlV2hpdGVzcGFjZShjb2RlKSB8fCBjb2RlICE9PSA0NSAmJiB1bmljb2RlUHVuY3R1YXRpb24oY29kZSkpIHtcbiAgICAgIHJldHVybiBkb21haW5BZnRlcihjb2RlKTtcbiAgICB9XG4gICAgc2VlbiA9IHRydWU7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIHJldHVybiBkb21haW5JbnNpZGU7XG4gIH1cblxuICAvKipcbiAgICogSW4gZG9tYWluLCBhdCBwb3RlbnRpYWwgdHJhaWxpbmcgcHVuY3R1YXRpb24sIHRoYXQgd2FzIG5vdCB0cmFpbGluZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGh0dHBzOi8vZXhhbXBsZS5jb21cbiAgICogICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGRvbWFpbkF0UHVuY3R1YXRpb24oY29kZSkge1xuICAgIC8vIFRoZXJlIGlzIGFuIHVuZGVyc2NvcmUgaW4gdGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgZG9tYWluXG4gICAgaWYgKGNvZGUgPT09IDk1KSB7XG4gICAgICB1bmRlcnNjb3JlSW5MYXN0U2VnbWVudCA9IHRydWU7XG4gICAgfVxuICAgIC8vIE90aGVyd2lzZSwgaXRcdTIwMTlzIGEgYC5gOiBzYXZlIHRoZSBsYXN0IHNlZ21lbnQgdW5kZXJzY29yZSBpbiB0aGVcbiAgICAvLyBwZW51bHRpbWF0ZSBzZWdtZW50IHNsb3QuXG4gICAgZWxzZSB7XG4gICAgICB1bmRlcnNjb3JlSW5MYXN0TGFzdFNlZ21lbnQgPSB1bmRlcnNjb3JlSW5MYXN0U2VnbWVudDtcbiAgICAgIHVuZGVyc2NvcmVJbkxhc3RTZWdtZW50ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIGRvbWFpbkluc2lkZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBkb21haW4uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBodHRwczovL2V4YW1wbGUuY29tL2FcbiAgICogICAgICAgICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGRvbWFpbkFmdGVyKGNvZGUpIHtcbiAgICAvLyBOb3RlOiB0aGF0XHUyMDE5cyBHSCBzYXlzIGEgZG90IGlzIG5lZWRlZCwgYnV0IGl0XHUyMDE5cyBub3QgdHJ1ZTpcbiAgICAvLyA8aHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9jbWFyay1nZm0vaXNzdWVzLzI3OT5cbiAgICBpZiAodW5kZXJzY29yZUluTGFzdExhc3RTZWdtZW50IHx8IHVuZGVyc2NvcmVJbkxhc3RTZWdtZW50IHx8ICFzZWVuKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gb2soY29kZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXRoLlxuICpcbiAqIGBgYG1hcmtkb3duXG4gKiA+IHwgYSBodHRwczovL2V4YW1wbGUub3JnL3N0dWZmIGJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5cbiAqIGBgYFxuICpcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVBhdGgoZWZmZWN0cywgb2spIHtcbiAgbGV0IHNpemVPcGVuID0gMDtcbiAgbGV0IHNpemVDbG9zZSA9IDA7XG4gIHJldHVybiBwYXRoSW5zaWRlO1xuXG4gIC8qKlxuICAgKiBJbiBwYXRoLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgaHR0cHM6Ly9leGFtcGxlLmNvbS9hXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHBhdGhJbnNpZGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0MCkge1xuICAgICAgc2l6ZU9wZW4rKztcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBwYXRoSW5zaWRlO1xuICAgIH1cblxuICAgIC8vIFRvIGRvOiBgbWFya2Rvd24tcnNgIGFsc28gbmVlZHMgdGhpcy5cbiAgICAvLyBJZiB0aGlzIGlzIGEgcGFyZW4sIGFuZCB0aGVyZSBhcmUgbGVzcyBjbG9zaW5ncyB0aGFuIG9wZW5pbmdzLFxuICAgIC8vIHdlIGRvblx1MjAxOXQgY2hlY2sgZm9yIGEgdHJhaWwuXG4gICAgaWYgKGNvZGUgPT09IDQxICYmIHNpemVDbG9zZSA8IHNpemVPcGVuKSB7XG4gICAgICByZXR1cm4gcGF0aEF0UHVuY3R1YXRpb24oY29kZSk7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgd2hldGhlciB0aGlzIHRyYWlsaW5nIHB1bmN0dWF0aW9uIG1hcmtlciBpcyBvcHRpb25hbGx5XG4gICAgLy8gZm9sbG93ZWQgYnkgbW9yZSB0cmFpbGluZyBtYXJrZXJzLCBhbmQgdGhlbiBmb2xsb3dlZFxuICAgIC8vIGJ5IGFuIGVuZC5cbiAgICBpZiAoY29kZSA9PT0gMzMgfHwgY29kZSA9PT0gMzQgfHwgY29kZSA9PT0gMzggfHwgY29kZSA9PT0gMzkgfHwgY29kZSA9PT0gNDEgfHwgY29kZSA9PT0gNDIgfHwgY29kZSA9PT0gNDQgfHwgY29kZSA9PT0gNDYgfHwgY29kZSA9PT0gNTggfHwgY29kZSA9PT0gNTkgfHwgY29kZSA9PT0gNjAgfHwgY29kZSA9PT0gNjMgfHwgY29kZSA9PT0gOTMgfHwgY29kZSA9PT0gOTUgfHwgY29kZSA9PT0gMTI2KSB7XG4gICAgICByZXR1cm4gZWZmZWN0cy5jaGVjayh0cmFpbCwgb2ssIHBhdGhBdFB1bmN0dWF0aW9uKShjb2RlKTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSB8fCB1bmljb2RlV2hpdGVzcGFjZShjb2RlKSkge1xuICAgICAgcmV0dXJuIG9rKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIHBhdGhJbnNpZGU7XG4gIH1cblxuICAvKipcbiAgICogSW4gcGF0aCwgYXQgcG90ZW50aWFsIHRyYWlsaW5nIHB1bmN0dWF0aW9uLCB0aGF0IHdhcyBub3QgdHJhaWxpbmcuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBodHRwczovL2V4YW1wbGUuY29tL2FcImJcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHBhdGhBdFB1bmN0dWF0aW9uKGNvZGUpIHtcbiAgICAvLyBDb3VudCBjbG9zaW5nIHBhcmVucy5cbiAgICBpZiAoY29kZSA9PT0gNDEpIHtcbiAgICAgIHNpemVDbG9zZSsrO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIHBhdGhJbnNpZGU7XG4gIH1cbn1cblxuLyoqXG4gKiBUcmFpbC5cbiAqXG4gKiBUaGlzIGNhbGxzIGBva2AgaWYgdGhpcyAqaXMqIHRoZSB0cmFpbCwgZm9sbG93ZWQgYnkgYW4gZW5kLCB3aGljaCBtZWFuc1xuICogdGhlIGVudGlyZSB0cmFpbCBpcyBub3QgcGFydCBvZiB0aGUgbGluay5cbiAqIEl0IGNhbGxzIGBub2tgIGlmIHRoaXMgKmlzKiBwYXJ0IG9mIHRoZSBsaW5rLlxuICpcbiAqIGBgYG1hcmtkb3duXG4gKiA+IHwgaHR0cHM6Ly9leGFtcGxlLmNvbVwiKS5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgXl5eXG4gKiBgYGBcbiAqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVUcmFpbChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiB0cmFpbDtcblxuICAvKipcbiAgICogSW4gdHJhaWwgb2YgZG9tYWluIG9yIHBhdGguXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBodHRwczovL2V4YW1wbGUuY29tXCIpLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRyYWlsKGNvZGUpIHtcbiAgICAvLyBSZWd1bGFyIHRyYWlsaW5nIHB1bmN0dWF0aW9uLlxuICAgIGlmIChjb2RlID09PSAzMyB8fCBjb2RlID09PSAzNCB8fCBjb2RlID09PSAzOSB8fCBjb2RlID09PSA0MSB8fCBjb2RlID09PSA0MiB8fCBjb2RlID09PSA0NCB8fCBjb2RlID09PSA0NiB8fCBjb2RlID09PSA1OCB8fCBjb2RlID09PSA1OSB8fCBjb2RlID09PSA2MyB8fCBjb2RlID09PSA5NSB8fCBjb2RlID09PSAxMjYpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiB0cmFpbDtcbiAgICB9XG5cbiAgICAvLyBgJmAgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgYWxwaGFiZXRpY2FscyBhbmQgdGhlbiBhIGA7YCwgaXNcbiAgICAvLyBhcyBhIHdob2xlIGNvbnNpZGVyZWQgYXMgdHJhaWxpbmcgcHVuY3R1YXRpb24uXG4gICAgLy8gSW4gYWxsIG90aGVyIGNhc2VzLCBpdCBpcyBjb25zaWRlcmVkIGFzIGNvbnRpbnVhdGlvbiBvZiB0aGUgVVJMLlxuICAgIGlmIChjb2RlID09PSAzOCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIHRyYWlsQ2hhcmFjdGVyUmVmZXJlbmNlU3RhcnQ7XG4gICAgfVxuXG4gICAgLy8gTmVlZGVkIGJlY2F1c2Ugd2UgYWxsb3cgbGl0ZXJhbHMgYWZ0ZXIgYFtgLCBhcyB3ZSBmaXg6XG4gICAgLy8gPGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvY21hcmstZ2ZtL2lzc3Vlcy8yNzg+LlxuICAgIC8vIENoZWNrIHRoYXQgaXQgaXMgbm90IGZvbGxvd2VkIGJ5IGAoYCBvciBgW2AuXG4gICAgaWYgKGNvZGUgPT09IDkzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gdHJhaWxCcmFja2V0QWZ0ZXI7XG4gICAgfVxuICAgIGlmIChcbiAgICAvLyBgPGAgaXMgYW4gZW5kLlxuICAgIGNvZGUgPT09IDYwIHx8XG4gICAgLy8gU28gaXMgd2hpdGVzcGFjZS5cbiAgICBjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkgfHwgdW5pY29kZVdoaXRlc3BhY2UoY29kZSkpIHtcbiAgICAgIHJldHVybiBvayhjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB0cmFpbCwgYWZ0ZXIgYF1gLlxuICAgKlxuICAgKiA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogdGhpcyBkZXZpYXRlcyBmcm9tIGBjbWFyay1nZm1gIHRvIGZpeCBhIGJ1Zy5cbiAgICogPiBTZWUgZW5kIG9mIDxodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2NtYXJrLWdmbS9pc3N1ZXMvMjc4PiBmb3IgbW9yZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGh0dHBzOi8vZXhhbXBsZS5jb21dKFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0cmFpbEJyYWNrZXRBZnRlcihjb2RlKSB7XG4gICAgLy8gV2hpdGVzcGFjZSBvciBzb21ldGhpbmcgdGhhdCBjb3VsZCBzdGFydCBhIHJlc291cmNlIG9yIHJlZmVyZW5jZSBpcyB0aGUgZW5kLlxuICAgIC8vIFN3aXRjaCBiYWNrIHRvIHRyYWlsIG90aGVyd2lzZS5cbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBjb2RlID09PSA0MCB8fCBjb2RlID09PSA5MSB8fCBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpIHx8IHVuaWNvZGVXaGl0ZXNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gb2soY29kZSk7XG4gICAgfVxuICAgIHJldHVybiB0cmFpbChjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjaGFyYWN0ZXItcmVmZXJlbmNlIGxpa2UgdHJhaWwsIGFmdGVyIGAmYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGh0dHBzOi8vZXhhbXBsZS5jb20mYW1wOykuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRyYWlsQ2hhcmFjdGVyUmVmZXJlbmNlU3RhcnQoY29kZSkge1xuICAgIC8vIFdoZW4gbm9uLWFscGhhLCBpdFx1MjAxOXMgbm90IGEgdHJhaWwuXG4gICAgcmV0dXJuIGFzY2lpQWxwaGEoY29kZSkgPyB0cmFpbENoYXJhY3RlclJlZmVyZW5jZUluc2lkZShjb2RlKSA6IG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjaGFyYWN0ZXItcmVmZXJlbmNlIGxpa2UgdHJhaWwuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBodHRwczovL2V4YW1wbGUuY29tJmFtcDspLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0cmFpbENoYXJhY3RlclJlZmVyZW5jZUluc2lkZShjb2RlKSB7XG4gICAgLy8gU3dpdGNoIGJhY2sgdG8gdHJhaWwgaWYgdGhpcyBpcyB3ZWxsLWZvcm1lZC5cbiAgICBpZiAoY29kZSA9PT0gNTkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiB0cmFpbDtcbiAgICB9XG4gICAgaWYgKGFzY2lpQWxwaGEoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiB0cmFpbENoYXJhY3RlclJlZmVyZW5jZUluc2lkZTtcbiAgICB9XG5cbiAgICAvLyBJdFx1MjAxOXMgbm90IGEgdHJhaWwuXG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxufVxuXG4vKipcbiAqIERvdCBpbiBlbWFpbCBkb21haW4gdHJhaWwuXG4gKlxuICogVGhpcyBjYWxscyBgb2tgIGlmIHRoaXMgKmlzKiB0aGUgdHJhaWwsIGZvbGxvd2VkIGJ5IGFuIGVuZCwgd2hpY2ggbWVhbnNcbiAqIHRoZSB0cmFpbCBpcyBub3QgcGFydCBvZiB0aGUgbGluay5cbiAqIEl0IGNhbGxzIGBub2tgIGlmIHRoaXMgKmlzKiBwYXJ0IG9mIHRoZSBsaW5rLlxuICpcbiAqIGBgYG1hcmtkb3duXG4gKiA+IHwgY29udGFjdEBleGFtcGxlLm9yZy5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgXlxuICogYGBgXG4gKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplRW1haWxEb21haW5Eb3RUcmFpbChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiBzdGFydDtcblxuICAvKipcbiAgICogRG90LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgY29udGFjdEBleGFtcGxlLm9yZy5cbiAgICogICAgICAgICAgICAgICAgICAgIF4gICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgLy8gTXVzdCBiZSBkb3QuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIHJldHVybiBhZnRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBkb3QuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBjb250YWN0QGV4YW1wbGUub3JnLlxuICAgKiAgICAgICAgICAgICAgICAgICAgIF4gICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgLy8gTm90IGEgdHJhaWwgaWYgYWxwaGFudW1lcmljLlxuICAgIHJldHVybiBhc2NpaUFscGhhbnVtZXJpYyhjb2RlKSA/IG5vayhjb2RlKSA6IG9rKGNvZGUpO1xuICB9XG59XG5cbi8qKlxuICogU2VlOlxuICogPGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvY21hcmstZ2ZtL2Jsb2IvZWYxY2ZjYi9leHRlbnNpb25zL2F1dG9saW5rLmMjTDE1Nj4uXG4gKlxuICogQHR5cGUge1ByZXZpb3VzfVxuICovXG5mdW5jdGlvbiBwcmV2aW91c1d3dyhjb2RlKSB7XG4gIHJldHVybiBjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDQwIHx8IGNvZGUgPT09IDQyIHx8IGNvZGUgPT09IDk1IHx8IGNvZGUgPT09IDkxIHx8IGNvZGUgPT09IDkzIHx8IGNvZGUgPT09IDEyNiB8fCBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpO1xufVxuXG4vKipcbiAqIFNlZTpcbiAqIDxodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2NtYXJrLWdmbS9ibG9iL2VmMWNmY2IvZXh0ZW5zaW9ucy9hdXRvbGluay5jI0wyMTQ+LlxuICpcbiAqIEB0eXBlIHtQcmV2aW91c31cbiAqL1xuZnVuY3Rpb24gcHJldmlvdXNQcm90b2NvbChjb2RlKSB7XG4gIHJldHVybiAhYXNjaWlBbHBoYShjb2RlKTtcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1ByZXZpb3VzfVxuICovXG5mdW5jdGlvbiBwcmV2aW91c0VtYWlsKGNvZGUpIHtcbiAgLy8gRG8gbm90IGFsbG93IGEgc2xhc2ggXHUyMDFDaW5zaWRlXHUyMDFEIGF0ZXh0LlxuICAvLyBUaGUgcmVmZXJlbmNlIGNvZGUgaXMgYSBiaXQgd2VpcmQsIGJ1dCB0aGF0XHUyMDE5cyB3aGF0IGl0IHJlc3VsdHMgaW4uXG4gIC8vIFNvdXJjZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvY21hcmstZ2ZtL2Jsb2IvZWYxY2ZjYi9leHRlbnNpb25zL2F1dG9saW5rLmMjTDMwNz4uXG4gIC8vIE90aGVyIHRoYW4gc2xhc2gsIGV2ZXJ5IHByZWNlZGluZyBjaGFyYWN0ZXIgaXMgYWxsb3dlZC5cbiAgcmV0dXJuICEoY29kZSA9PT0gNDcgfHwgZ2ZtQXRleHQoY29kZSkpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Q29kZX0gY29kZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGdmbUF0ZXh0KGNvZGUpIHtcbiAgcmV0dXJuIGNvZGUgPT09IDQzIHx8IGNvZGUgPT09IDQ1IHx8IGNvZGUgPT09IDQ2IHx8IGNvZGUgPT09IDk1IHx8IGFzY2lpQWxwaGFudW1lcmljKGNvZGUpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBwcmV2aW91c1VuYmFsYW5jZWQoZXZlbnRzKSB7XG4gIGxldCBpbmRleCA9IGV2ZW50cy5sZW5ndGg7XG4gIGxldCByZXN1bHQgPSBmYWxzZTtcbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBjb25zdCB0b2tlbiA9IGV2ZW50c1tpbmRleF1bMV07XG4gICAgaWYgKCh0b2tlbi50eXBlID09PSAnbGFiZWxMaW5rJyB8fCB0b2tlbi50eXBlID09PSAnbGFiZWxJbWFnZScpICYmICF0b2tlbi5fYmFsYW5jZWQpIHtcbiAgICAgIHJlc3VsdCA9IHRydWU7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBJZiB3ZVx1MjAxOXZlIHNlZW4gdGhpcyB0b2tlbiwgYW5kIGl0IHdhcyBtYXJrZWQgYXMgbm90IGhhdmluZyBhbnkgdW5iYWxhbmNlZFxuICAgIC8vIGJyYWNrZXQgYmVmb3JlIGl0LCB3ZSBjYW4gZXhpdC5cbiAgICBpZiAodG9rZW4uX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG8pIHtcbiAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChldmVudHMubGVuZ3RoID4gMCAmJiAhcmVzdWx0KSB7XG4gICAgLy8gTWFyayB0aGUgbGFzdCB0b2tlbiBhcyBcdTIwMUN3YWxrZWQgaW50b1x1MjAxRCB3L28gZmluZGluZ1xuICAgIC8vIGFueXRoaW5nLlxuICAgIGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMV1bMV0uX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG8gPSB0cnVlO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59IiwgImNvbnN0IGNoYXJhY3RlclJlZmVyZW5jZXMgPSB7J1wiJzogJ3F1b3QnLCAnJic6ICdhbXAnLCAnPCc6ICdsdCcsICc+JzogJ2d0J31cblxuLyoqXG4gKiBFbmNvZGUgb25seSB0aGUgZGFuZ2Vyb3VzIEhUTUwgY2hhcmFjdGVycy5cbiAqXG4gKiBUaGlzIGVuc3VyZXMgdGhhdCBjZXJ0YWluIGNoYXJhY3RlcnMgd2hpY2ggaGF2ZSBzcGVjaWFsIG1lYW5pbmcgaW4gSFRNTCBhcmVcbiAqIGRlYWx0IHdpdGguXG4gKiBUZWNobmljYWxseSwgd2UgY2FuIHNraXAgYD5gIGFuZCBgXCJgIGluIG1hbnkgY2FzZXMsIGJ1dCBDTSBpbmNsdWRlcyB0aGVtLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBlbmNvZGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBFbmNvZGVkIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXCImPD5dL2csIHJlcGxhY2UpXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiAgIFZhbHVlIHRvIHJlcGxhY2UuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgRW5jb2RlZCB2YWx1ZS5cbiAgICovXG4gIGZ1bmN0aW9uIHJlcGxhY2UodmFsdWUpIHtcbiAgICByZXR1cm4gKFxuICAgICAgJyYnICtcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZXNbXG4gICAgICAgIC8qKiBAdHlwZSB7a2V5b2YgdHlwZW9mIGNoYXJhY3RlclJlZmVyZW5jZXN9ICovICh2YWx1ZSlcbiAgICAgIF0gK1xuICAgICAgJzsnXG4gICAgKVxuICB9XG59XG4iLCAiaW1wb3J0IHsgYXNjaWlBbHBoYW51bWVyaWMgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuaW1wb3J0IHsgZW5jb2RlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtZW5jb2RlJztcbi8qKlxuICogTWFrZSBhIHZhbHVlIHNhZmUgZm9yIGluamVjdGlvbiBhcyBhIFVSTC5cbiAqXG4gKiBUaGlzIGVuY29kZXMgdW5zYWZlIGNoYXJhY3RlcnMgd2l0aCBwZXJjZW50LWVuY29kaW5nIGFuZCBza2lwcyBhbHJlYWR5XG4gKiBlbmNvZGVkIHNlcXVlbmNlcyAoc2VlIGBub3JtYWxpemVVcmlgKS5cbiAqIEZ1cnRoZXIgdW5zYWZlIGNoYXJhY3RlcnMgYXJlIGVuY29kZWQgYXMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgKHNlZVxuICogYG1pY3JvbWFyay11dGlsLWVuY29kZWApLlxuICpcbiAqIEEgcmVnZXggb2YgYWxsb3dlZCBwcm90b2NvbHMgY2FuIGJlIGdpdmVuLCBpbiB3aGljaCBjYXNlIHRoZSBVUkwgaXNcbiAqIHNhbml0aXplZC5cbiAqIEZvciBleGFtcGxlLCBgL14oaHR0cHM/fGlyY3M/fG1haWx0b3x4bXBwKSQvaWAgY2FuIGJlIHVzZWQgZm9yIGBhW2hyZWZdYCwgb3JcbiAqIGAvXmh0dHBzPyQvaWAgZm9yIGBpbWdbc3JjXWAgKHRoaXMgaXMgd2hhdCBgZ2l0aHViLmNvbWAgYWxsb3dzKS5cbiAqIElmIHRoZSBVUkwgaW5jbHVkZXMgYW4gdW5rbm93biBwcm90b2NvbCAob25lIG5vdCBtYXRjaGVkIGJ5IGBwcm90b2NvbGAsIHN1Y2hcbiAqIGFzIGEgZGFuZ2Vyb3VzIGV4YW1wbGUsIGBqYXZhc2NyaXB0OmApLCB0aGUgdmFsdWUgaXMgaWdub3JlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHVybFxuICogICBVUkkgdG8gc2FuaXRpemUuXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IG51bGwgfCB1bmRlZmluZWR9IFtwcm90b2NvbF1cbiAqICAgQWxsb3dlZCBwcm90b2NvbHMuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTYW5pdGl6ZWQgVVJJLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVVcmkodXJsLCBwcm90b2NvbCkge1xuICBjb25zdCB2YWx1ZSA9IGVuY29kZShub3JtYWxpemVVcmkodXJsIHx8ICcnKSk7XG4gIGlmICghcHJvdG9jb2wpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgY29uc3QgY29sb24gPSB2YWx1ZS5pbmRleE9mKCc6Jyk7XG4gIGNvbnN0IHF1ZXN0aW9uTWFyayA9IHZhbHVlLmluZGV4T2YoJz8nKTtcbiAgY29uc3QgbnVtYmVyU2lnbiA9IHZhbHVlLmluZGV4T2YoJyMnKTtcbiAgY29uc3Qgc2xhc2ggPSB2YWx1ZS5pbmRleE9mKCcvJyk7XG4gIGlmIChcbiAgLy8gSWYgdGhlcmUgaXMgbm8gcHJvdG9jb2wsIGl0XHUyMDE5cyByZWxhdGl2ZS5cbiAgY29sb24gPCAwIHx8XG4gIC8vIElmIHRoZSBmaXJzdCBjb2xvbiBpcyBhZnRlciBhIGA/YCwgYCNgLCBvciBgL2AsIGl0XHUyMDE5cyBub3QgYSBwcm90b2NvbC5cbiAgc2xhc2ggPiAtMSAmJiBjb2xvbiA+IHNsYXNoIHx8IHF1ZXN0aW9uTWFyayA+IC0xICYmIGNvbG9uID4gcXVlc3Rpb25NYXJrIHx8IG51bWJlclNpZ24gPiAtMSAmJiBjb2xvbiA+IG51bWJlclNpZ24gfHxcbiAgLy8gSXQgaXMgYSBwcm90b2NvbCwgaXQgc2hvdWxkIGJlIGFsbG93ZWQuXG4gIHByb3RvY29sLnRlc3QodmFsdWUuc2xpY2UoMCwgY29sb24pKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgVVJMLlxuICpcbiAqIEVuY29kZSB1bnNhZmUgY2hhcmFjdGVycyB3aXRoIHBlcmNlbnQtZW5jb2RpbmcsIHNraXBwaW5nIGFscmVhZHkgZW5jb2RlZFxuICogc2VxdWVuY2VzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBVUkkgdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgTm9ybWFsaXplZCBVUkkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVVcmkodmFsdWUpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCByZXN1bHQgPSBbXTtcbiAgbGV0IGluZGV4ID0gLTE7XG4gIGxldCBzdGFydCA9IDA7XG4gIGxldCBza2lwID0gMDtcbiAgd2hpbGUgKCsraW5kZXggPCB2YWx1ZS5sZW5ndGgpIHtcbiAgICBjb25zdCBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpbmRleCk7XG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IHJlcGxhY2UgPSAnJztcblxuICAgIC8vIEEgY29ycmVjdCBwZXJjZW50IGVuY29kZWQgdmFsdWUuXG4gICAgaWYgKGNvZGUgPT09IDM3ICYmIGFzY2lpQWxwaGFudW1lcmljKHZhbHVlLmNoYXJDb2RlQXQoaW5kZXggKyAxKSkgJiYgYXNjaWlBbHBoYW51bWVyaWModmFsdWUuY2hhckNvZGVBdChpbmRleCArIDIpKSkge1xuICAgICAgc2tpcCA9IDI7XG4gICAgfVxuICAgIC8vIEFTQ0lJLlxuICAgIGVsc2UgaWYgKGNvZGUgPCAxMjgpIHtcbiAgICAgIGlmICghL1shIyQmLTs9Py1aX2Eten5dLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSkpKSB7XG4gICAgICAgIHJlcGxhY2UgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBBc3RyYWwuXG4gICAgZWxzZSBpZiAoY29kZSA+IDU1XzI5NSAmJiBjb2RlIDwgNTdfMzQ0KSB7XG4gICAgICBjb25zdCBuZXh0ID0gdmFsdWUuY2hhckNvZGVBdChpbmRleCArIDEpO1xuXG4gICAgICAvLyBBIGNvcnJlY3Qgc3Vycm9nYXRlIHBhaXIuXG4gICAgICBpZiAoY29kZSA8IDU2XzMyMCAmJiBuZXh0ID4gNTZfMzE5ICYmIG5leHQgPCA1N18zNDQpIHtcbiAgICAgICAgcmVwbGFjZSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSwgbmV4dCk7XG4gICAgICAgIHNraXAgPSAxO1xuICAgICAgfVxuICAgICAgLy8gTG9uZSBzdXJyb2dhdGUuXG4gICAgICBlbHNlIHtcbiAgICAgICAgcmVwbGFjZSA9IFwiXFx1RkZGRFwiO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBVbmljb2RlLlxuICAgIGVsc2Uge1xuICAgICAgcmVwbGFjZSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7XG4gICAgfVxuICAgIGlmIChyZXBsYWNlKSB7XG4gICAgICByZXN1bHQucHVzaCh2YWx1ZS5zbGljZShzdGFydCwgaW5kZXgpLCBlbmNvZGVVUklDb21wb25lbnQocmVwbGFjZSkpO1xuICAgICAgc3RhcnQgPSBpbmRleCArIHNraXAgKyAxO1xuICAgICAgcmVwbGFjZSA9ICcnO1xuICAgIH1cbiAgICBpZiAoc2tpcCkge1xuICAgICAgaW5kZXggKz0gc2tpcDtcbiAgICAgIHNraXAgPSAwO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0LmpvaW4oJycpICsgdmFsdWUuc2xpY2Uoc3RhcnQpO1xufSIsICIvKipcbiAqIEBpbXBvcnQge0NvbXBpbGVDb250ZXh0LCBIYW5kbGUsIEh0bWxFeHRlbnNpb24sIFRva2VufSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBzYW5pdGl6ZVVyaSB9IGZyb20gJ21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaSc7XG5cbi8qKlxuICogQ3JlYXRlIGFuIEhUTUwgZXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0byBzdXBwb3J0IEdpdEh1YiBhdXRvbGluayBsaXRlcmFsXG4gKiB3aGVuIHNlcmlhbGl6aW5nIHRvIEhUTUwuXG4gKlxuICogQHJldHVybnMge0h0bWxFeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdGhhdCBjYW4gYmUgcGFzc2VkIGluIGBodG1sRXh0ZW5zaW9uc2AgdG9cbiAqICAgc3VwcG9ydCBHaXRIdWIgYXV0b2xpbmsgbGl0ZXJhbCB3aGVuIHNlcmlhbGl6aW5nIHRvIEhUTUwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1BdXRvbGlua0xpdGVyYWxIdG1sKCkge1xuICByZXR1cm4ge1xuICAgIGV4aXQ6IHtcbiAgICAgIGxpdGVyYWxBdXRvbGlua0VtYWlsLFxuICAgICAgbGl0ZXJhbEF1dG9saW5rSHR0cCxcbiAgICAgIGxpdGVyYWxBdXRvbGlua1d3d1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gKiBAdHlwZSB7SGFuZGxlfVxuICovXG5mdW5jdGlvbiBsaXRlcmFsQXV0b2xpbmtXd3codG9rZW4pIHtcbiAgYW5jaG9yRnJvbVRva2VuLmNhbGwodGhpcywgdG9rZW4sICdodHRwOi8vJyk7XG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0hhbmRsZX1cbiAqL1xuZnVuY3Rpb24gbGl0ZXJhbEF1dG9saW5rRW1haWwodG9rZW4pIHtcbiAgYW5jaG9yRnJvbVRva2VuLmNhbGwodGhpcywgdG9rZW4sICdtYWlsdG86Jyk7XG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0hhbmRsZX1cbiAqL1xuZnVuY3Rpb24gbGl0ZXJhbEF1dG9saW5rSHR0cCh0b2tlbikge1xuICBhbmNob3JGcm9tVG9rZW4uY2FsbCh0aGlzLCB0b2tlbik7XG59XG5cbi8qKlxuICogQHRoaXMgQ29tcGlsZUNvbnRleHRcbiAqIEBwYXJhbSB7VG9rZW59IHRva2VuXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtwcm90b2NvbF1cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKi9cbmZ1bmN0aW9uIGFuY2hvckZyb21Ub2tlbih0b2tlbiwgcHJvdG9jb2wpIHtcbiAgY29uc3QgdXJsID0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbik7XG4gIHRoaXMudGFnKCc8YSBocmVmPVwiJyArIHNhbml0aXplVXJpKChwcm90b2NvbCB8fCAnJykgKyB1cmwpICsgJ1wiPicpO1xuICB0aGlzLnJhdyh0aGlzLmVuY29kZSh1cmwpKTtcbiAgdGhpcy50YWcoJzwvYT4nKTtcbn0iLCAiZXhwb3J0IHsgZ2ZtQXV0b2xpbmtMaXRlcmFsIH0gZnJvbSAnLi9saWIvc3ludGF4LmpzJztcbmV4cG9ydCB7IGdmbUF1dG9saW5rTGl0ZXJhbEh0bWwgfSBmcm9tICcuL2xpYi9odG1sLmpzJzsiLCAiLyoqXG4gKiBAaW1wb3J0IHtFdmVudCwgUmVzb2x2ZXIsIFRva2VuaXplQ29udGV4dH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuLyoqXG4gKiBDYWxsIGFsbCBgcmVzb2x2ZUFsbGBzLlxuICpcbiAqIEBwYXJhbSB7UmVhZG9ubHlBcnJheTx7cmVzb2x2ZUFsbD86IFJlc29sdmVyIHwgdW5kZWZpbmVkfT59IGNvbnN0cnVjdHNcbiAqICAgTGlzdCBvZiBjb25zdHJ1Y3RzLCBvcHRpb25hbGx5IHdpdGggYHJlc29sdmVBbGxgcy5cbiAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAqICAgTGlzdCBvZiBldmVudHMuXG4gKiBAcGFyYW0ge1Rva2VuaXplQ29udGV4dH0gY29udGV4dFxuICogICBDb250ZXh0IHVzZWQgYnkgYHRva2VuaXplYC5cbiAqIEByZXR1cm5zIHtBcnJheTxFdmVudD59XG4gKiAgIENoYW5nZWQgZXZlbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFsbChjb25zdHJ1Y3RzLCBldmVudHMsIGNvbnRleHQpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxSZXNvbHZlcj59ICovXG4gIGNvbnN0IGNhbGxlZCA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBjb25zdHJ1Y3RzLmxlbmd0aCkge1xuICAgIGNvbnN0IHJlc29sdmUgPSBjb25zdHJ1Y3RzW2luZGV4XS5yZXNvbHZlQWxsXG5cbiAgICBpZiAocmVzb2x2ZSAmJiAhY2FsbGVkLmluY2x1ZGVzKHJlc29sdmUpKSB7XG4gICAgICBldmVudHMgPSByZXNvbHZlKGV2ZW50cywgY29udGV4dClcbiAgICAgIGNhbGxlZC5wdXNoKHJlc29sdmUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV2ZW50c1xufVxuIiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIENvZGUsXG4gKiAgIENvbnN0cnVjdCxcbiAqICAgRXZlbnQsXG4gKiAgIFBvaW50LFxuICogICBSZXNvbHZlcixcbiAqICAgU3RhdGUsXG4gKiAgIFRva2VuaXplQ29udGV4dCxcbiAqICAgVG9rZW5pemVyLFxuICogICBUb2tlblxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBwdXNoLCBzcGxpY2UgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaHVua2VkJztcbmltcG9ydCB7IGNsYXNzaWZ5Q2hhcmFjdGVyIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2xhc3NpZnktY2hhcmFjdGVyJztcbmltcG9ydCB7IHJlc29sdmVBbGwgfSBmcm9tICdtaWNyb21hcmstdXRpbC1yZXNvbHZlLWFsbCc7XG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBhdHRlbnRpb24gPSB7XG4gIG5hbWU6ICdhdHRlbnRpb24nLFxuICByZXNvbHZlQWxsOiByZXNvbHZlQWxsQXR0ZW50aW9uLFxuICB0b2tlbml6ZTogdG9rZW5pemVBdHRlbnRpb25cbn07XG5cbi8qKlxuICogVGFrZSBhbGwgZXZlbnRzIGFuZCByZXNvbHZlIGF0dGVudGlvbiB0byBlbXBoYXNpcyBvciBzdHJvbmcuXG4gKlxuICogQHR5cGUge1Jlc29sdmVyfVxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuZnVuY3Rpb24gcmVzb2x2ZUFsbEF0dGVudGlvbihldmVudHMsIGNvbnRleHQpIHtcbiAgbGV0IGluZGV4ID0gLTE7XG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgb3BlbjtcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IGdyb3VwO1xuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBsZXQgdGV4dDtcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IG9wZW5pbmdTZXF1ZW5jZTtcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IGNsb3NpbmdTZXF1ZW5jZTtcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCB1c2U7XG4gIC8qKiBAdHlwZSB7QXJyYXk8RXZlbnQ+fSAqL1xuICBsZXQgbmV4dEV2ZW50cztcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBvZmZzZXQ7XG5cbiAgLy8gV2FsayB0aHJvdWdoIGFsbCBldmVudHMuXG4gIC8vXG4gIC8vIE5vdGU6IHBlcmZvcm1hbmNlIG9mIHRoaXMgaXMgZmluZSBvbiBhbiBtYiBvZiBub3JtYWwgbWFya2Rvd24sIGJ1dCBpdFx1MjAxOXNcbiAgLy8gYSBib3R0bGVuZWNrIGZvciBtYWxpY2lvdXMgc3R1ZmYuXG4gIHdoaWxlICgrK2luZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuICAgIC8vIEZpbmQgYSB0b2tlbiB0aGF0IGNhbiBjbG9zZS5cbiAgICBpZiAoZXZlbnRzW2luZGV4XVswXSA9PT0gJ2VudGVyJyAmJiBldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09ICdhdHRlbnRpb25TZXF1ZW5jZScgJiYgZXZlbnRzW2luZGV4XVsxXS5fY2xvc2UpIHtcbiAgICAgIG9wZW4gPSBpbmRleDtcblxuICAgICAgLy8gTm93IHdhbGsgYmFjayB0byBmaW5kIGFuIG9wZW5lci5cbiAgICAgIHdoaWxlIChvcGVuLS0pIHtcbiAgICAgICAgLy8gRmluZCBhIHRva2VuIHRoYXQgY2FuIG9wZW4gdGhlIGNsb3Nlci5cbiAgICAgICAgaWYgKGV2ZW50c1tvcGVuXVswXSA9PT0gJ2V4aXQnICYmIGV2ZW50c1tvcGVuXVsxXS50eXBlID09PSAnYXR0ZW50aW9uU2VxdWVuY2UnICYmIGV2ZW50c1tvcGVuXVsxXS5fb3BlbiAmJlxuICAgICAgICAvLyBJZiB0aGUgbWFya2VycyBhcmUgdGhlIHNhbWU6XG4gICAgICAgIGNvbnRleHQuc2xpY2VTZXJpYWxpemUoZXZlbnRzW29wZW5dWzFdKS5jaGFyQ29kZUF0KDApID09PSBjb250ZXh0LnNsaWNlU2VyaWFsaXplKGV2ZW50c1tpbmRleF1bMV0pLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgb3BlbmluZyBjYW4gY2xvc2Ugb3IgdGhlIGNsb3NpbmcgY2FuIG9wZW4sXG4gICAgICAgICAgLy8gYW5kIHRoZSBjbG9zZSBzaXplICppcyBub3QqIGEgbXVsdGlwbGUgb2YgdGhyZWUsXG4gICAgICAgICAgLy8gYnV0IHRoZSBzdW0gb2YgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgc2l6ZSAqaXMqIG11bHRpcGxlIG9mIHRocmVlLFxuICAgICAgICAgIC8vIHRoZW4gZG9uXHUyMDE5dCBtYXRjaC5cbiAgICAgICAgICBpZiAoKGV2ZW50c1tvcGVuXVsxXS5fY2xvc2UgfHwgZXZlbnRzW2luZGV4XVsxXS5fb3BlbikgJiYgKGV2ZW50c1tpbmRleF1bMV0uZW5kLm9mZnNldCAtIGV2ZW50c1tpbmRleF1bMV0uc3RhcnQub2Zmc2V0KSAlIDMgJiYgISgoZXZlbnRzW29wZW5dWzFdLmVuZC5vZmZzZXQgLSBldmVudHNbb3Blbl1bMV0uc3RhcnQub2Zmc2V0ICsgZXZlbnRzW2luZGV4XVsxXS5lbmQub2Zmc2V0IC0gZXZlbnRzW2luZGV4XVsxXS5zdGFydC5vZmZzZXQpICUgMykpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIE51bWJlciBvZiBtYXJrZXJzIHRvIHVzZSBmcm9tIHRoZSBzZXF1ZW5jZS5cbiAgICAgICAgICB1c2UgPSBldmVudHNbb3Blbl1bMV0uZW5kLm9mZnNldCAtIGV2ZW50c1tvcGVuXVsxXS5zdGFydC5vZmZzZXQgPiAxICYmIGV2ZW50c1tpbmRleF1bMV0uZW5kLm9mZnNldCAtIGV2ZW50c1tpbmRleF1bMV0uc3RhcnQub2Zmc2V0ID4gMSA/IDIgOiAxO1xuICAgICAgICAgIGNvbnN0IHN0YXJ0ID0ge1xuICAgICAgICAgICAgLi4uZXZlbnRzW29wZW5dWzFdLmVuZFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgZW5kID0ge1xuICAgICAgICAgICAgLi4uZXZlbnRzW2luZGV4XVsxXS5zdGFydFxuICAgICAgICAgIH07XG4gICAgICAgICAgbW92ZVBvaW50KHN0YXJ0LCAtdXNlKTtcbiAgICAgICAgICBtb3ZlUG9pbnQoZW5kLCB1c2UpO1xuICAgICAgICAgIG9wZW5pbmdTZXF1ZW5jZSA9IHtcbiAgICAgICAgICAgIHR5cGU6IHVzZSA+IDEgPyBcInN0cm9uZ1NlcXVlbmNlXCIgOiBcImVtcGhhc2lzU2VxdWVuY2VcIixcbiAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiB7XG4gICAgICAgICAgICAgIC4uLmV2ZW50c1tvcGVuXVsxXS5lbmRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGNsb3NpbmdTZXF1ZW5jZSA9IHtcbiAgICAgICAgICAgIHR5cGU6IHVzZSA+IDEgPyBcInN0cm9uZ1NlcXVlbmNlXCIgOiBcImVtcGhhc2lzU2VxdWVuY2VcIixcbiAgICAgICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgICAgIC4uLmV2ZW50c1tpbmRleF1bMV0uc3RhcnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbmRcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRleHQgPSB7XG4gICAgICAgICAgICB0eXBlOiB1c2UgPiAxID8gXCJzdHJvbmdUZXh0XCIgOiBcImVtcGhhc2lzVGV4dFwiLFxuICAgICAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICAgICAgLi4uZXZlbnRzW29wZW5dWzFdLmVuZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVuZDoge1xuICAgICAgICAgICAgICAuLi5ldmVudHNbaW5kZXhdWzFdLnN0YXJ0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBncm91cCA9IHtcbiAgICAgICAgICAgIHR5cGU6IHVzZSA+IDEgPyBcInN0cm9uZ1wiIDogXCJlbXBoYXNpc1wiLFxuICAgICAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICAgICAgLi4ub3BlbmluZ1NlcXVlbmNlLnN0YXJ0XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZW5kOiB7XG4gICAgICAgICAgICAgIC4uLmNsb3NpbmdTZXF1ZW5jZS5lbmRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGV2ZW50c1tvcGVuXVsxXS5lbmQgPSB7XG4gICAgICAgICAgICAuLi5vcGVuaW5nU2VxdWVuY2Uuc3RhcnRcbiAgICAgICAgICB9O1xuICAgICAgICAgIGV2ZW50c1tpbmRleF1bMV0uc3RhcnQgPSB7XG4gICAgICAgICAgICAuLi5jbG9zaW5nU2VxdWVuY2UuZW5kXG4gICAgICAgICAgfTtcbiAgICAgICAgICBuZXh0RXZlbnRzID0gW107XG5cbiAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbW9yZSBtYXJrZXJzIGluIHRoZSBvcGVuaW5nLCBhZGQgdGhlbSBiZWZvcmUuXG4gICAgICAgICAgaWYgKGV2ZW50c1tvcGVuXVsxXS5lbmQub2Zmc2V0IC0gZXZlbnRzW29wZW5dWzFdLnN0YXJ0Lm9mZnNldCkge1xuICAgICAgICAgICAgbmV4dEV2ZW50cyA9IHB1c2gobmV4dEV2ZW50cywgW1snZW50ZXInLCBldmVudHNbb3Blbl1bMV0sIGNvbnRleHRdLCBbJ2V4aXQnLCBldmVudHNbb3Blbl1bMV0sIGNvbnRleHRdXSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gT3BlbmluZy5cbiAgICAgICAgICBuZXh0RXZlbnRzID0gcHVzaChuZXh0RXZlbnRzLCBbWydlbnRlcicsIGdyb3VwLCBjb250ZXh0XSwgWydlbnRlcicsIG9wZW5pbmdTZXF1ZW5jZSwgY29udGV4dF0sIFsnZXhpdCcsIG9wZW5pbmdTZXF1ZW5jZSwgY29udGV4dF0sIFsnZW50ZXInLCB0ZXh0LCBjb250ZXh0XV0pO1xuXG4gICAgICAgICAgLy8gQWx3YXlzIHBvcHVsYXRlZCBieSBkZWZhdWx0cy5cblxuICAgICAgICAgIC8vIEJldHdlZW4uXG4gICAgICAgICAgbmV4dEV2ZW50cyA9IHB1c2gobmV4dEV2ZW50cywgcmVzb2x2ZUFsbChjb250ZXh0LnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCwgZXZlbnRzLnNsaWNlKG9wZW4gKyAxLCBpbmRleCksIGNvbnRleHQpKTtcblxuICAgICAgICAgIC8vIENsb3NpbmcuXG4gICAgICAgICAgbmV4dEV2ZW50cyA9IHB1c2gobmV4dEV2ZW50cywgW1snZXhpdCcsIHRleHQsIGNvbnRleHRdLCBbJ2VudGVyJywgY2xvc2luZ1NlcXVlbmNlLCBjb250ZXh0XSwgWydleGl0JywgY2xvc2luZ1NlcXVlbmNlLCBjb250ZXh0XSwgWydleGl0JywgZ3JvdXAsIGNvbnRleHRdXSk7XG5cbiAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbW9yZSBtYXJrZXJzIGluIHRoZSBjbG9zaW5nLCBhZGQgdGhlbSBhZnRlci5cbiAgICAgICAgICBpZiAoZXZlbnRzW2luZGV4XVsxXS5lbmQub2Zmc2V0IC0gZXZlbnRzW2luZGV4XVsxXS5zdGFydC5vZmZzZXQpIHtcbiAgICAgICAgICAgIG9mZnNldCA9IDI7XG4gICAgICAgICAgICBuZXh0RXZlbnRzID0gcHVzaChuZXh0RXZlbnRzLCBbWydlbnRlcicsIGV2ZW50c1tpbmRleF1bMV0sIGNvbnRleHRdLCBbJ2V4aXQnLCBldmVudHNbaW5kZXhdWzFdLCBjb250ZXh0XV0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvZmZzZXQgPSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzcGxpY2UoZXZlbnRzLCBvcGVuIC0gMSwgaW5kZXggLSBvcGVuICsgMywgbmV4dEV2ZW50cyk7XG4gICAgICAgICAgaW5kZXggPSBvcGVuICsgbmV4dEV2ZW50cy5sZW5ndGggLSBvZmZzZXQgLSAyO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIHJlbWFpbmluZyBzZXF1ZW5jZXMuXG4gIGluZGV4ID0gLTE7XG4gIHdoaWxlICgrK2luZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuICAgIGlmIChldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09ICdhdHRlbnRpb25TZXF1ZW5jZScpIHtcbiAgICAgIGV2ZW50c1tpbmRleF1bMV0udHlwZSA9ICdkYXRhJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGV2ZW50cztcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVBdHRlbnRpb24oZWZmZWN0cywgb2spIHtcbiAgY29uc3QgYXR0ZW50aW9uTWFya2VycyA9IHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuYXR0ZW50aW9uTWFya2Vycy5udWxsO1xuICBjb25zdCBwcmV2aW91cyA9IHRoaXMucHJldmlvdXM7XG4gIGNvbnN0IGJlZm9yZSA9IGNsYXNzaWZ5Q2hhcmFjdGVyKHByZXZpb3VzKTtcblxuICAvKiogQHR5cGUge05vbk51bGxhYmxlPENvZGU+fSAqL1xuICBsZXQgbWFya2VyO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIEJlZm9yZSBhIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgKipcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBtYXJrZXIgPSBjb2RlO1xuICAgIGVmZmVjdHMuZW50ZXIoJ2F0dGVudGlvblNlcXVlbmNlJyk7XG4gICAgcmV0dXJuIGluc2lkZShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBhIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgKipcbiAgICogICAgIF5eXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBpbnNpZGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBtYXJrZXIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBpbnNpZGU7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gZWZmZWN0cy5leGl0KCdhdHRlbnRpb25TZXF1ZW5jZScpO1xuXG4gICAgLy8gVG8gZG86IG5leHQgbWFqb3I6IG1vdmUgdGhpcyB0byByZXNvbHZlciwganVzdCBsaWtlIGBtYXJrZG93bi1yc2AuXG4gICAgY29uc3QgYWZ0ZXIgPSBjbGFzc2lmeUNoYXJhY3Rlcihjb2RlKTtcblxuICAgIC8vIEFsd2F5cyBwb3B1bGF0ZWQgYnkgZGVmYXVsdHMuXG5cbiAgICBjb25zdCBvcGVuID0gIWFmdGVyIHx8IGFmdGVyID09PSAyICYmIGJlZm9yZSB8fCBhdHRlbnRpb25NYXJrZXJzLmluY2x1ZGVzKGNvZGUpO1xuICAgIGNvbnN0IGNsb3NlID0gIWJlZm9yZSB8fCBiZWZvcmUgPT09IDIgJiYgYWZ0ZXIgfHwgYXR0ZW50aW9uTWFya2Vycy5pbmNsdWRlcyhwcmV2aW91cyk7XG4gICAgdG9rZW4uX29wZW4gPSBCb29sZWFuKG1hcmtlciA9PT0gNDIgPyBvcGVuIDogb3BlbiAmJiAoYmVmb3JlIHx8ICFjbG9zZSkpO1xuICAgIHRva2VuLl9jbG9zZSA9IEJvb2xlYW4obWFya2VyID09PSA0MiA/IGNsb3NlIDogY2xvc2UgJiYgKGFmdGVyIHx8ICFvcGVuKSk7XG4gICAgcmV0dXJuIG9rKGNvZGUpO1xuICB9XG59XG5cbi8qKlxuICogTW92ZSBhIHBvaW50IGEgYml0LlxuICpcbiAqIE5vdGU6IGBtb3ZlYCBvbmx5IHdvcmtzIGluc2lkZSBsaW5lcyEgSXRcdTIwMTlzIG5vdCBwb3NzaWJsZSB0byBtb3ZlIHBhc3Qgb3RoZXJcbiAqIGNodW5rcyAocmVwbGFjZW1lbnQgY2hhcmFjdGVycywgdGFicywgb3IgbGluZSBlbmRpbmdzKS5cbiAqXG4gKiBAcGFyYW0ge1BvaW50fSBwb2ludFxuICogICBQb2ludC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXRcbiAqICAgQW1vdW50IHRvIG1vdmUuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBtb3ZlUG9pbnQocG9pbnQsIG9mZnNldCkge1xuICBwb2ludC5jb2x1bW4gKz0gb2Zmc2V0O1xuICBwb2ludC5vZmZzZXQgKz0gb2Zmc2V0O1xuICBwb2ludC5fYnVmZmVySW5kZXggKz0gb2Zmc2V0O1xufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb25zdHJ1Y3QsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHQsXG4gKiAgIFRva2VuaXplclxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBhc2NpaUFscGhhbnVtZXJpYywgYXNjaWlBbHBoYSwgYXNjaWlBdGV4dCwgYXNjaWlDb250cm9sIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGF1dG9saW5rID0ge1xuICBuYW1lOiAnYXV0b2xpbmsnLFxuICB0b2tlbml6ZTogdG9rZW5pemVBdXRvbGlua1xufTtcblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVBdXRvbGluayhlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGxldCBzaXplID0gMDtcbiAgcmV0dXJuIHN0YXJ0O1xuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBhbiBhdXRvbGluay5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGE8aHR0cHM6Ly9leGFtcGxlLmNvbT5iXG4gICAqICAgICAgXlxuICAgKiA+IHwgYTx1c2VyQGV4YW1wbGUuY29tPmJcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcihcImF1dG9saW5rXCIpO1xuICAgIGVmZmVjdHMuZW50ZXIoXCJhdXRvbGlua01hcmtlclwiKTtcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgZWZmZWN0cy5leGl0KFwiYXV0b2xpbmtNYXJrZXJcIik7XG4gICAgZWZmZWN0cy5lbnRlcihcImF1dG9saW5rUHJvdG9jb2xcIik7XG4gICAgcmV0dXJuIG9wZW47XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDxgLCBhdCBwcm90b2NvbCBvciBhdGV4dC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGE8aHR0cHM6Ly9leGFtcGxlLmNvbT5iXG4gICAqICAgICAgIF5cbiAgICogPiB8IGE8dXNlckBleGFtcGxlLmNvbT5iXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9wZW4oY29kZSkge1xuICAgIGlmIChhc2NpaUFscGhhKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gc2NoZW1lT3JFbWFpbEF0ZXh0O1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNjQpIHtcbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuICAgIHJldHVybiBlbWFpbEF0ZXh0KGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0IHNlY29uZCBieXRlIG9mIHByb3RvY29sIG9yIGF0ZXh0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYTxodHRwczovL2V4YW1wbGUuY29tPmJcbiAgICogICAgICAgIF5cbiAgICogPiB8IGE8dXNlckBleGFtcGxlLmNvbT5iXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzY2hlbWVPckVtYWlsQXRleHQoY29kZSkge1xuICAgIC8vIEFTQ0lJIGFscGhhbnVtZXJpYyBhbmQgYCtgLCBgLWAsIGFuZCBgLmAuXG4gICAgaWYgKGNvZGUgPT09IDQzIHx8IGNvZGUgPT09IDQ1IHx8IGNvZGUgPT09IDQ2IHx8IGFzY2lpQWxwaGFudW1lcmljKGNvZGUpKSB7XG4gICAgICAvLyBDb3VudCB0aGUgcHJldmlvdXMgYWxwaGFiZXRpY2FsIGZyb20gYG9wZW5gIHRvby5cbiAgICAgIHNpemUgPSAxO1xuICAgICAgcmV0dXJuIHNjaGVtZUluc2lkZU9yRW1haWxBdGV4dChjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIGVtYWlsQXRleHQoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gYW1iaWd1b3VzIHByb3RvY29sIG9yIGF0ZXh0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYTxodHRwczovL2V4YW1wbGUuY29tPmJcbiAgICogICAgICAgIF5cbiAgICogPiB8IGE8dXNlckBleGFtcGxlLmNvbT5iXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzY2hlbWVJbnNpZGVPckVtYWlsQXRleHQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA1OCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgc2l6ZSA9IDA7XG4gICAgICByZXR1cm4gdXJsSW5zaWRlO1xuICAgIH1cblxuICAgIC8vIEFTQ0lJIGFscGhhbnVtZXJpYyBhbmQgYCtgLCBgLWAsIGFuZCBgLmAuXG4gICAgaWYgKChjb2RlID09PSA0MyB8fCBjb2RlID09PSA0NSB8fCBjb2RlID09PSA0NiB8fCBhc2NpaUFscGhhbnVtZXJpYyhjb2RlKSkgJiYgc2l6ZSsrIDwgMzIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBzY2hlbWVJbnNpZGVPckVtYWlsQXRleHQ7XG4gICAgfVxuICAgIHNpemUgPSAwO1xuICAgIHJldHVybiBlbWFpbEF0ZXh0KGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIHByb3RvY29sLCBpbiBVUkwuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhPGh0dHBzOi8vZXhhbXBsZS5jb20+YlxuICAgKiAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB1cmxJbnNpZGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA2Mikge1xuICAgICAgZWZmZWN0cy5leGl0KFwiYXV0b2xpbmtQcm90b2NvbFwiKTtcbiAgICAgIGVmZmVjdHMuZW50ZXIoXCJhdXRvbGlua01hcmtlclwiKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImF1dG9saW5rTWFya2VyXCIpO1xuICAgICAgZWZmZWN0cy5leGl0KFwiYXV0b2xpbmtcIik7XG4gICAgICByZXR1cm4gb2s7XG4gICAgfVxuXG4gICAgLy8gQVNDSUkgY29udHJvbCwgc3BhY2UsIG9yIGA8YC5cbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBjb2RlID09PSAzMiB8fCBjb2RlID09PSA2MCB8fCBhc2NpaUNvbnRyb2woY29kZSkpIHtcbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICByZXR1cm4gdXJsSW5zaWRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGVtYWlsIGF0ZXh0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYTx1c2VyLm5hbWVAZXhhbXBsZS5jb20+YlxuICAgKiAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW1haWxBdGV4dChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDY0KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gZW1haWxBdFNpZ25PckRvdDtcbiAgICB9XG4gICAgaWYgKGFzY2lpQXRleHQoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBlbWFpbEF0ZXh0O1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLCBhZnRlciBhdC1zaWduIG9yIGRvdC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGE8dXNlci5uYW1lQGV4YW1wbGUuY29tPmJcbiAgICogICAgICAgICAgICAgICAgIF4gICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW1haWxBdFNpZ25PckRvdChjb2RlKSB7XG4gICAgcmV0dXJuIGFzY2lpQWxwaGFudW1lcmljKGNvZGUpID8gZW1haWxMYWJlbChjb2RlKSA6IG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBsYWJlbCwgd2hlcmUgYC5gIGFuZCBgPmAgYXJlIGFsbG93ZWQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhPHVzZXIubmFtZUBleGFtcGxlLmNvbT5iXG4gICAqICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVtYWlsTGFiZWwoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0Nikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgc2l6ZSA9IDA7XG4gICAgICByZXR1cm4gZW1haWxBdFNpZ25PckRvdDtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDYyKSB7XG4gICAgICAvLyBFeGl0LCB0aGVuIGNoYW5nZSB0aGUgdG9rZW4gdHlwZS5cbiAgICAgIGVmZmVjdHMuZXhpdChcImF1dG9saW5rUHJvdG9jb2xcIikudHlwZSA9IFwiYXV0b2xpbmtFbWFpbFwiO1xuICAgICAgZWZmZWN0cy5lbnRlcihcImF1dG9saW5rTWFya2VyXCIpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KFwiYXV0b2xpbmtNYXJrZXJcIik7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJhdXRvbGlua1wiKTtcbiAgICAgIHJldHVybiBvaztcbiAgICB9XG4gICAgcmV0dXJuIGVtYWlsVmFsdWUoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gbGFiZWwsIHdoZXJlIGAuYCBhbmQgYD5gIGFyZSAqbm90KiBhbGxvd2VkLlxuICAgKlxuICAgKiBUaG91Z2gsIHRoaXMgaXMgYWxzbyB1c2VkIGluIGBlbWFpbExhYmVsYCB0byBwYXJzZSBvdGhlciB2YWx1ZXMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhPHVzZXIubmFtZUBleC1hbXBsZS5jb20+YlxuICAgKiAgICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW1haWxWYWx1ZShjb2RlKSB7XG4gICAgLy8gQVNDSUkgYWxwaGFudW1lcmljIG9yIGAtYC5cbiAgICBpZiAoKGNvZGUgPT09IDQ1IHx8IGFzY2lpQWxwaGFudW1lcmljKGNvZGUpKSAmJiBzaXplKysgPCA2Mykge1xuICAgICAgY29uc3QgbmV4dCA9IGNvZGUgPT09IDQ1ID8gZW1haWxWYWx1ZSA6IGVtYWlsTGFiZWw7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge0VmZmVjdHMsIFN0YXRlLCBUb2tlblR5cGV9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IG1hcmtkb3duU3BhY2UgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuXG4vLyBUbyBkbzogaW1wbGVtZW50IGBzcGFjZU9yVGFiYCwgYHNwYWNlT3JUYWJNaW5NYXhgLCBgc3BhY2VPclRhYldpdGhPcHRpb25zYC5cblxuLyoqXG4gKiBQYXJzZSBzcGFjZXMgYW5kIHRhYnMuXG4gKlxuICogVGhlcmUgaXMgbm8gYG5va2AgcGFyYW1ldGVyOlxuICpcbiAqICogICBzcGFjZXMgaW4gbWFya2Rvd24gYXJlIG9mdGVuIG9wdGlvbmFsLCBpbiB3aGljaCBjYXNlIHRoaXMgZmFjdG9yeSBjYW4gYmVcbiAqICAgICB1c2VkIGFuZCBgb2tgIHdpbGwgYmUgc3dpdGNoZWQgdG8gd2hldGhlciBzcGFjZXMgd2VyZSBmb3VuZCBvciBub3RcbiAqICogICBvbmUgbGluZSBlbmRpbmcgb3Igc3BhY2UgY2FuIGJlIGRldGVjdGVkIHdpdGggYG1hcmtkb3duU3BhY2UoY29kZSlgIHJpZ2h0XG4gKiAgICAgYmVmb3JlIHVzaW5nIGBmYWN0b3J5U3BhY2VgXG4gKlxuICogIyMjIyMjIEV4YW1wbGVzXG4gKlxuICogV2hlcmUgYFx1MjQwOWAgcmVwcmVzZW50cyBhIHRhYiAocGx1cyBob3cgbXVjaCBpdCBleHBhbmRzKSBhbmQgYFx1MjQyMGAgcmVwcmVzZW50cyBhXG4gKiBzaW5nbGUgc3BhY2UuXG4gKlxuICogYGBgbWFya2Rvd25cbiAqIFx1MjQwOVxuICogXHUyNDIwXHUyNDIwXHUyNDIwXHUyNDIwXG4gKiBcdTI0MDlcdTI0MjBcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7RWZmZWN0c30gZWZmZWN0c1xuICogICBDb250ZXh0LlxuICogQHBhcmFtIHtTdGF0ZX0gb2tcbiAqICAgU3RhdGUgc3dpdGNoZWQgdG8gd2hlbiBzdWNjZXNzZnVsLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IHR5cGVcbiAqICAgVHlwZSAoYCcgXFx0J2ApLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IFttYXg9SW5maW5pdHldXG4gKiAgIE1heCAoZXhjbHVzaXZlKS5cbiAqIEByZXR1cm5zIHtTdGF0ZX1cbiAqICAgU3RhcnQgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgb2ssIHR5cGUsIG1heCkge1xuICBjb25zdCBsaW1pdCA9IG1heCA/IG1heCAtIDEgOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG4gIGxldCBzaXplID0gMDtcbiAgcmV0dXJuIHN0YXJ0O1xuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcih0eXBlKTtcbiAgICAgIHJldHVybiBwcmVmaXgoY29kZSk7XG4gICAgfVxuICAgIHJldHVybiBvayhjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHByZWZpeChjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkgJiYgc2l6ZSsrIDwgbGltaXQpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBwcmVmaXg7XG4gICAgfVxuICAgIGVmZmVjdHMuZXhpdCh0eXBlKTtcbiAgICByZXR1cm4gb2soY29kZSk7XG4gIH1cbn0iLCAiLyoqXG4gKiBAaW1wb3J0IHtcbiAqICAgQ29uc3RydWN0LFxuICogICBTdGF0ZSxcbiAqICAgVG9rZW5pemVDb250ZXh0LFxuICogICBUb2tlbml6ZXJcbiAqIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuaW1wb3J0IHsgZmFjdG9yeVNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnO1xuaW1wb3J0IHsgbWFya2Rvd25MaW5lRW5kaW5nLCBtYXJrZG93blNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGJsYW5rTGluZSA9IHtcbiAgcGFydGlhbDogdHJ1ZSxcbiAgdG9rZW5pemU6IHRva2VuaXplQmxhbmtMaW5lXG59O1xuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUJsYW5rTGluZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiBzdGFydDtcblxuICAvKipcbiAgICogU3RhcnQgb2YgYmxhbmsgbGluZS5cbiAgICpcbiAgICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGBcdTI0MjBgIHJlcHJlc2VudHMgYSBzcGFjZSBjaGFyYWN0ZXIuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBcdTI0MjBcdTI0MjBcdTI0MEFcbiAgICogICAgIF5cbiAgICogPiB8IFx1MjQwQVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIHJldHVybiBtYXJrZG93blNwYWNlKGNvZGUpID8gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGFmdGVyLCBcImxpbmVQcmVmaXhcIikoY29kZSkgOiBhZnRlcihjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBlb2YvZW9sLCBhZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogYFx1MjQyMGAgcmVwcmVzZW50cyBhIHNwYWNlIGNoYXJhY3Rlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFx1MjQyMFx1MjQyMFx1MjQwQVxuICAgKiAgICAgICBeXG4gICAqID4gfCBcdTI0MEFcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICByZXR1cm4gY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkgPyBvayhjb2RlKSA6IG5vayhjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb25zdHJ1Y3QsXG4gKiAgIEV4aXRlcixcbiAqICAgU3RhdGUsXG4gKiAgIFRva2VuaXplQ29udGV4dCxcbiAqICAgVG9rZW5pemVyXG4gKiB9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IGZhY3RvcnlTcGFjZSB9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJztcbmltcG9ydCB7IG1hcmtkb3duU3BhY2UgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgYmxvY2tRdW90ZSA9IHtcbiAgY29udGludWF0aW9uOiB7XG4gICAgdG9rZW5pemU6IHRva2VuaXplQmxvY2tRdW90ZUNvbnRpbnVhdGlvblxuICB9LFxuICBleGl0LFxuICBuYW1lOiAnYmxvY2tRdW90ZScsXG4gIHRva2VuaXplOiB0b2tlbml6ZUJsb2NrUXVvdGVTdGFydFxufTtcblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVCbG9ja1F1b3RlU3RhcnQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpcztcbiAgcmV0dXJuIHN0YXJ0O1xuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBibG9jayBxdW90ZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ID4gYVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA2Mikge1xuICAgICAgY29uc3Qgc3RhdGUgPSBzZWxmLmNvbnRhaW5lclN0YXRlO1xuICAgICAgaWYgKCFzdGF0ZS5vcGVuKSB7XG4gICAgICAgIGVmZmVjdHMuZW50ZXIoXCJibG9ja1F1b3RlXCIsIHtcbiAgICAgICAgICBfY29udGFpbmVyOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGVmZmVjdHMuZW50ZXIoXCJibG9ja1F1b3RlUHJlZml4XCIpO1xuICAgICAgZWZmZWN0cy5lbnRlcihcImJsb2NrUXVvdGVNYXJrZXJcIik7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJibG9ja1F1b3RlTWFya2VyXCIpO1xuICAgICAgcmV0dXJuIGFmdGVyO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA+YCwgYmVmb3JlIG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA+IGFcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoXCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZVwiKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlXCIpO1xuICAgICAgZWZmZWN0cy5leGl0KFwiYmxvY2tRdW90ZVByZWZpeFwiKTtcbiAgICAgIHJldHVybiBvaztcbiAgICB9XG4gICAgZWZmZWN0cy5leGl0KFwiYmxvY2tRdW90ZVByZWZpeFwiKTtcbiAgICByZXR1cm4gb2soY29kZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBTdGFydCBvZiBibG9jayBxdW90ZSBjb250aW51YXRpb24uXG4gKlxuICogYGBgbWFya2Rvd25cbiAqICAgfCA+IGFcbiAqID4gfCA+IGJcbiAqICAgICBeXG4gKiBgYGBcbiAqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVCbG9ja1F1b3RlQ29udGludWF0aW9uKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gIHJldHVybiBjb250U3RhcnQ7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGJsb2NrIHF1b3RlIGNvbnRpbnVhdGlvbi5cbiAgICpcbiAgICogQWxzbyB1c2VkIHRvIHBhcnNlIHRoZSBmaXJzdCBibG9jayBxdW90ZSBvcGVuaW5nLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgPiBhXG4gICAqID4gfCA+IGJcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRTdGFydChjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIC8vIEFsd2F5cyBwb3B1bGF0ZWQgYnkgZGVmYXVsdHMuXG5cbiAgICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgY29udEJlZm9yZSwgXCJsaW5lUHJlZml4XCIsIHNlbGYucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCdjb2RlSW5kZW50ZWQnKSA/IHVuZGVmaW5lZCA6IDQpKGNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gY29udEJlZm9yZShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBgPmAsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIEFsc28gdXNlZCB0byBwYXJzZSB0aGUgZmlyc3QgYmxvY2sgcXVvdGUgb3BlbmluZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8ID4gYVxuICAgKiA+IHwgPiBiXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250QmVmb3JlKGNvZGUpIHtcbiAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KGJsb2NrUXVvdGUsIG9rLCBub2spKGNvZGUpO1xuICB9XG59XG5cbi8qKiBAdHlwZSB7RXhpdGVyfSAqL1xuZnVuY3Rpb24gZXhpdChlZmZlY3RzKSB7XG4gIGVmZmVjdHMuZXhpdChcImJsb2NrUXVvdGVcIik7XG59IiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIENvbnN0cnVjdCxcbiAqICAgU3RhdGUsXG4gKiAgIFRva2VuaXplQ29udGV4dCxcbiAqICAgVG9rZW5pemVyXG4gKiB9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IGFzY2lpUHVuY3R1YXRpb24gfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgY2hhcmFjdGVyRXNjYXBlID0ge1xuICBuYW1lOiAnY2hhcmFjdGVyRXNjYXBlJyxcbiAgdG9rZW5pemU6IHRva2VuaXplQ2hhcmFjdGVyRXNjYXBlXG59O1xuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUNoYXJhY3RlckVzY2FwZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiBzdGFydDtcblxuICAvKipcbiAgICogU3RhcnQgb2YgY2hhcmFjdGVyIGVzY2FwZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGFcXCpiXG4gICAqICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGVmZmVjdHMuZW50ZXIoXCJjaGFyYWN0ZXJFc2NhcGVcIik7XG4gICAgZWZmZWN0cy5lbnRlcihcImVzY2FwZU1hcmtlclwiKTtcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgZWZmZWN0cy5leGl0KFwiZXNjYXBlTWFya2VyXCIpO1xuICAgIHJldHVybiBpbnNpZGU7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYFxcYCwgYXQgcHVuY3R1YXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhXFwqYlxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBpbnNpZGUoY29kZSkge1xuICAgIC8vIEFTQ0lJIHB1bmN0dWF0aW9uLlxuICAgIGlmIChhc2NpaVB1bmN0dWF0aW9uKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKFwiY2hhcmFjdGVyRXNjYXBlVmFsdWVcIik7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJjaGFyYWN0ZXJFc2NhcGVWYWx1ZVwiKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImNoYXJhY3RlckVzY2FwZVwiKTtcbiAgICAgIHJldHVybiBvaztcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb2RlLFxuICogICBDb25zdHJ1Y3QsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHQsXG4gKiAgIFRva2VuaXplclxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZSB9IGZyb20gJ2RlY29kZS1uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlJztcbmltcG9ydCB7IGFzY2lpQWxwaGFudW1lcmljLCBhc2NpaURpZ2l0LCBhc2NpaUhleERpZ2l0IH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGNoYXJhY3RlclJlZmVyZW5jZSA9IHtcbiAgbmFtZTogJ2NoYXJhY3RlclJlZmVyZW5jZScsXG4gIHRva2VuaXplOiB0b2tlbml6ZUNoYXJhY3RlclJlZmVyZW5jZVxufTtcblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVDaGFyYWN0ZXJSZWZlcmVuY2UoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpcztcbiAgbGV0IHNpemUgPSAwO1xuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IG1heDtcbiAgLyoqIEB0eXBlIHsoY29kZTogQ29kZSkgPT4gYm9vbGVhbn0gKi9cbiAgbGV0IHRlc3Q7XG4gIHJldHVybiBzdGFydDtcblxuICAvKipcbiAgICogU3RhcnQgb2YgY2hhcmFjdGVyIHJlZmVyZW5jZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEmYW1wO2JcbiAgICogICAgICBeXG4gICAqID4gfCBhJiMxMjM7YlxuICAgKiAgICAgIF5cbiAgICogPiB8IGEmI3g5O2JcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcihcImNoYXJhY3RlclJlZmVyZW5jZVwiKTtcbiAgICBlZmZlY3RzLmVudGVyKFwiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyXCIpO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICBlZmZlY3RzLmV4aXQoXCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJcIik7XG4gICAgcmV0dXJuIG9wZW47XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYCZgLCBhdCBgI2AgZm9yIG51bWVyaWMgcmVmZXJlbmNlcyBvciBhbHBoYW51bWVyaWMgZm9yIG5hbWVkXG4gICAqIHJlZmVyZW5jZXMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhJmFtcDtiXG4gICAqICAgICAgIF5cbiAgICogPiB8IGEmIzEyMztiXG4gICAqICAgICAgIF5cbiAgICogPiB8IGEmI3g5O2JcbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gb3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDM1KSB7XG4gICAgICBlZmZlY3RzLmVudGVyKFwiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpY1wiKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWNcIik7XG4gICAgICByZXR1cm4gbnVtZXJpYztcbiAgICB9XG4gICAgZWZmZWN0cy5lbnRlcihcImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlXCIpO1xuICAgIG1heCA9IDMxO1xuICAgIHRlc3QgPSBhc2NpaUFscGhhbnVtZXJpYztcbiAgICByZXR1cm4gdmFsdWUoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYCNgLCBhdCBgeGAgZm9yIGhleGFkZWNpbWFscyBvciBkaWdpdCBmb3IgZGVjaW1hbHMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhJiMxMjM7YlxuICAgKiAgICAgICAgXlxuICAgKiA+IHwgYSYjeDk7YlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbnVtZXJpYyhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDg4IHx8IGNvZGUgPT09IDEyMCkge1xuICAgICAgZWZmZWN0cy5lbnRlcihcImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsXCIpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KFwiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWxcIik7XG4gICAgICBlZmZlY3RzLmVudGVyKFwiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWVcIik7XG4gICAgICBtYXggPSA2O1xuICAgICAgdGVzdCA9IGFzY2lpSGV4RGlnaXQ7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoXCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZVwiKTtcbiAgICBtYXggPSA3O1xuICAgIHRlc3QgPSBhc2NpaURpZ2l0O1xuICAgIHJldHVybiB2YWx1ZShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBtYXJrZXJzIChgJiN4YCwgYCYjYCwgb3IgYCZgKSwgaW4gdmFsdWUsIGJlZm9yZSBgO2AuXG4gICAqXG4gICAqIFRoZSBjaGFyYWN0ZXIgcmVmZXJlbmNlIGtpbmQgZGVmaW5lcyB3aGF0IGFuZCBob3cgbWFueSBjaGFyYWN0ZXJzIGFyZVxuICAgKiBhbGxvd2VkLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSZhbXA7YlxuICAgKiAgICAgICBeXl5cbiAgICogPiB8IGEmIzEyMztiXG4gICAqICAgICAgICBeXl5cbiAgICogPiB8IGEmI3g5O2JcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB2YWx1ZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDU5ICYmIHNpemUpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gZWZmZWN0cy5leGl0KFwiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWVcIik7XG4gICAgICBpZiAodGVzdCA9PT0gYXNjaWlBbHBoYW51bWVyaWMgJiYgIWRlY29kZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKHNlbGYuc2xpY2VTZXJpYWxpemUodG9rZW4pKSkge1xuICAgICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgICAgfVxuXG4gICAgICAvLyBUbyBkbzogYG1hcmtkb3duLXJzYCB1c2VzIGEgZGlmZmVyZW50IG5hbWU6XG4gICAgICAvLyBgQ2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyU2VtaWAuXG4gICAgICBlZmZlY3RzLmVudGVyKFwiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyXCIpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KFwiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyXCIpO1xuICAgICAgZWZmZWN0cy5leGl0KFwiY2hhcmFjdGVyUmVmZXJlbmNlXCIpO1xuICAgICAgcmV0dXJuIG9rO1xuICAgIH1cbiAgICBpZiAodGVzdChjb2RlKSAmJiBzaXplKysgPCBtYXgpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb2RlLFxuICogICBDb25zdHJ1Y3QsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHQsXG4gKiAgIFRva2VuaXplclxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBmYWN0b3J5U3BhY2UgfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSc7XG5pbXBvcnQgeyBtYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2UgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5jb25zdCBub25MYXp5Q29udGludWF0aW9uID0ge1xuICBwYXJ0aWFsOiB0cnVlLFxuICB0b2tlbml6ZTogdG9rZW5pemVOb25MYXp5Q29udGludWF0aW9uXG59O1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBjb2RlRmVuY2VkID0ge1xuICBjb25jcmV0ZTogdHJ1ZSxcbiAgbmFtZTogJ2NvZGVGZW5jZWQnLFxuICB0b2tlbml6ZTogdG9rZW5pemVDb2RlRmVuY2VkXG59O1xuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUNvZGVGZW5jZWQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpcztcbiAgLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG4gIGNvbnN0IGNsb3NlU3RhcnQgPSB7XG4gICAgcGFydGlhbDogdHJ1ZSxcbiAgICB0b2tlbml6ZTogdG9rZW5pemVDbG9zZVN0YXJ0XG4gIH07XG4gIGxldCBpbml0aWFsUHJlZml4ID0gMDtcbiAgbGV0IHNpemVPcGVuID0gMDtcbiAgLyoqIEB0eXBlIHtOb25OdWxsYWJsZTxDb2RlPn0gKi9cbiAgbGV0IG1hcmtlcjtcbiAgcmV0dXJuIHN0YXJ0O1xuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBjb2RlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anNcbiAgICogICAgIF5cbiAgICogICB8IGFsZXJ0KDEpXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAvLyBUbyBkbzogcGFyc2Ugd2hpdGVzcGFjZSBsaWtlIGBtYXJrZG93bi1yc2AuXG4gICAgcmV0dXJuIGJlZm9yZVNlcXVlbmNlT3Blbihjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcGVuaW5nIGZlbmNlLCBhZnRlciBwcmVmaXgsIGF0IHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anNcbiAgICogICAgIF5cbiAgICogICB8IGFsZXJ0KDEpXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZm9yZVNlcXVlbmNlT3Blbihjb2RlKSB7XG4gICAgY29uc3QgdGFpbCA9IHNlbGYuZXZlbnRzW3NlbGYuZXZlbnRzLmxlbmd0aCAtIDFdO1xuICAgIGluaXRpYWxQcmVmaXggPSB0YWlsICYmIHRhaWxbMV0udHlwZSA9PT0gXCJsaW5lUHJlZml4XCIgPyB0YWlsWzJdLnNsaWNlU2VyaWFsaXplKHRhaWxbMV0sIHRydWUpLmxlbmd0aCA6IDA7XG4gICAgbWFya2VyID0gY29kZTtcbiAgICBlZmZlY3RzLmVudGVyKFwiY29kZUZlbmNlZFwiKTtcbiAgICBlZmZlY3RzLmVudGVyKFwiY29kZUZlbmNlZEZlbmNlXCIpO1xuICAgIGVmZmVjdHMuZW50ZXIoXCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZVwiKTtcbiAgICByZXR1cm4gc2VxdWVuY2VPcGVuKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIG9wZW5pbmcgZmVuY2Ugc2VxdWVuY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB+fn5qc1xuICAgKiAgICAgIF5cbiAgICogICB8IGFsZXJ0KDEpXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHNlcXVlbmNlT3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgc2l6ZU9wZW4rKztcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBzZXF1ZW5jZU9wZW47XG4gICAgfVxuICAgIGlmIChzaXplT3BlbiA8IDMpIHtcbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuZXhpdChcImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlXCIpO1xuICAgIHJldHVybiBtYXJrZG93blNwYWNlKGNvZGUpID8gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGluZm9CZWZvcmUsIFwid2hpdGVzcGFjZVwiKShjb2RlKSA6IGluZm9CZWZvcmUoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gb3BlbmluZyBmZW5jZSwgYWZ0ZXIgdGhlIHNlcXVlbmNlIChhbmQgb3B0aW9uYWwgd2hpdGVzcGFjZSksIGJlZm9yZSBpbmZvLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anNcbiAgICogICAgICAgIF5cbiAgICogICB8IGFsZXJ0KDEpXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluZm9CZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KFwiY29kZUZlbmNlZEZlbmNlXCIpO1xuICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2soY29kZSkgOiBlZmZlY3RzLmNoZWNrKG5vbkxhenlDb250aW51YXRpb24sIGF0Tm9uTGF6eUJyZWFrLCBhZnRlcikoY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoXCJjb2RlRmVuY2VkRmVuY2VJbmZvXCIpO1xuICAgIGVmZmVjdHMuZW50ZXIoXCJjaHVua1N0cmluZ1wiLCB7XG4gICAgICBjb250ZW50VHlwZTogXCJzdHJpbmdcIlxuICAgIH0pO1xuICAgIHJldHVybiBpbmZvKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGluZm8uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB+fn5qc1xuICAgKiAgICAgICAgXlxuICAgKiAgIHwgYWxlcnQoMSlcbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaW5mbyhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJjaHVua1N0cmluZ1wiKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImNvZGVGZW5jZWRGZW5jZUluZm9cIik7XG4gICAgICByZXR1cm4gaW5mb0JlZm9yZShjb2RlKTtcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdChcImNodW5rU3RyaW5nXCIpO1xuICAgICAgZWZmZWN0cy5leGl0KFwiY29kZUZlbmNlZEZlbmNlSW5mb1wiKTtcbiAgICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgbWV0YUJlZm9yZSwgXCJ3aGl0ZXNwYWNlXCIpKGNvZGUpO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gOTYgJiYgY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIGluZm87XG4gIH1cblxuICAvKipcbiAgICogSW4gb3BlbmluZyBmZW5jZSwgYWZ0ZXIgaW5mbyBhbmQgd2hpdGVzcGFjZSwgYmVmb3JlIG1ldGEuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB+fn5qcyBldmFsXG4gICAqICAgICAgICAgICBeXG4gICAqICAgfCBhbGVydCgxKVxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBtZXRhQmVmb3JlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBpbmZvQmVmb3JlKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmVudGVyKFwiY29kZUZlbmNlZEZlbmNlTWV0YVwiKTtcbiAgICBlZmZlY3RzLmVudGVyKFwiY2h1bmtTdHJpbmdcIiwge1xuICAgICAgY29udGVudFR5cGU6IFwic3RyaW5nXCJcbiAgICB9KTtcbiAgICByZXR1cm4gbWV0YShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBtZXRhLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anMgZXZhbFxuICAgKiAgICAgICAgICAgXlxuICAgKiAgIHwgYWxlcnQoMSlcbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbWV0YShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJjaHVua1N0cmluZ1wiKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImNvZGVGZW5jZWRGZW5jZU1ldGFcIik7XG4gICAgICByZXR1cm4gaW5mb0JlZm9yZShjb2RlKTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDk2ICYmIGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIHJldHVybiBtZXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0IGVvbC9lb2YgaW4gY29kZSwgYmVmb3JlIGEgbm9uLWxhenkgY2xvc2luZyBmZW5jZSBvciBjb250ZW50LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfn5+anNcbiAgICogICAgICAgICAgXlxuICAgKiA+IHwgYWxlcnQoMSlcbiAgICogICAgICAgICAgICAgXlxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhdE5vbkxhenlCcmVhayhjb2RlKSB7XG4gICAgcmV0dXJuIGVmZmVjdHMuYXR0ZW1wdChjbG9zZVN0YXJ0LCBhZnRlciwgY29udGVudEJlZm9yZSkoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQmVmb3JlIGNvZGUgY29udGVudCwgbm90IGEgY2xvc2luZyBmZW5jZSwgYXQgZW9sLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfn5+anNcbiAgICogPiB8IGFsZXJ0KDEpXG4gICAqICAgICAgICAgICAgIF5cbiAgICogICB8IH5+flxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGVudEJlZm9yZShjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcihcImxpbmVFbmRpbmdcIik7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIGVmZmVjdHMuZXhpdChcImxpbmVFbmRpbmdcIik7XG4gICAgcmV0dXJuIGNvbnRlbnRTdGFydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgY29kZSBjb250ZW50LCBub3QgYSBjbG9zaW5nIGZlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfn5+anNcbiAgICogPiB8IGFsZXJ0KDEpXG4gICAqICAgICBeXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRlbnRTdGFydChjb2RlKSB7XG4gICAgcmV0dXJuIGluaXRpYWxQcmVmaXggPiAwICYmIG1hcmtkb3duU3BhY2UoY29kZSkgPyBmYWN0b3J5U3BhY2UoZWZmZWN0cywgYmVmb3JlQ29udGVudENodW5rLCBcImxpbmVQcmVmaXhcIiwgaW5pdGlhbFByZWZpeCArIDEpKGNvZGUpIDogYmVmb3JlQ29udGVudENodW5rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJlZm9yZSBjb2RlIGNvbnRlbnQsIGFmdGVyIG9wdGlvbmFsIHByZWZpeC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IH5+fmpzXG4gICAqID4gfCBhbGVydCgxKVxuICAgKiAgICAgXlxuICAgKiAgIHwgfn5+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBiZWZvcmVDb250ZW50Q2h1bmsoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuIGVmZmVjdHMuY2hlY2sobm9uTGF6eUNvbnRpbnVhdGlvbiwgYXROb25MYXp5QnJlYWssIGFmdGVyKShjb2RlKTtcbiAgICB9XG4gICAgZWZmZWN0cy5lbnRlcihcImNvZGVGbG93VmFsdWVcIik7XG4gICAgcmV0dXJuIGNvbnRlbnRDaHVuayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjb2RlIGNvbnRlbnQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCB+fn5qc1xuICAgKiA+IHwgYWxlcnQoMSlcbiAgICogICAgIF5eXl5eXl5eXG4gICAqICAgfCB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRlbnRDaHVuayhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJjb2RlRmxvd1ZhbHVlXCIpO1xuICAgICAgcmV0dXJuIGJlZm9yZUNvbnRlbnRDaHVuayhjb2RlKTtcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIHJldHVybiBjb250ZW50Q2h1bms7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgY29kZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IH5+fmpzXG4gICAqICAgfCBhbGVydCgxKVxuICAgKiA+IHwgfn5+XG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KFwiY29kZUZlbmNlZFwiKTtcbiAgICByZXR1cm4gb2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAgICogICBDb250ZXh0LlxuICAgKiBAdHlwZSB7VG9rZW5pemVyfVxuICAgKi9cbiAgZnVuY3Rpb24gdG9rZW5pemVDbG9zZVN0YXJ0KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgICBsZXQgc2l6ZSA9IDA7XG4gICAgcmV0dXJuIHN0YXJ0QmVmb3JlO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKlxuICAgICAqIEB0eXBlIHtTdGF0ZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFydEJlZm9yZShjb2RlKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKFwibGluZUVuZGluZ1wiKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImxpbmVFbmRpbmdcIik7XG4gICAgICByZXR1cm4gc3RhcnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQmVmb3JlIGNsb3NpbmcgZmVuY2UsIGF0IG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAgICpcbiAgICAgKiBgYGBtYXJrZG93blxuICAgICAqICAgfCB+fn5qc1xuICAgICAqICAgfCBhbGVydCgxKVxuICAgICAqID4gfCB+fn5cbiAgICAgKiAgICAgXlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAgIC8vIEFsd2F5cyBwb3B1bGF0ZWQgYnkgZGVmYXVsdHMuXG5cbiAgICAgIC8vIFRvIGRvOiBgZW50ZXJgIGhlcmUgb3IgaW4gbmV4dCBzdGF0ZT9cbiAgICAgIGVmZmVjdHMuZW50ZXIoXCJjb2RlRmVuY2VkRmVuY2VcIik7XG4gICAgICByZXR1cm4gbWFya2Rvd25TcGFjZShjb2RlKSA/IGZhY3RvcnlTcGFjZShlZmZlY3RzLCBiZWZvcmVTZXF1ZW5jZUNsb3NlLCBcImxpbmVQcmVmaXhcIiwgc2VsZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoJ2NvZGVJbmRlbnRlZCcpID8gdW5kZWZpbmVkIDogNCkoY29kZSkgOiBiZWZvcmVTZXF1ZW5jZUNsb3NlKGNvZGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluIGNsb3NpbmcgZmVuY2UsIGFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UsIGF0IHNlcXVlbmNlLlxuICAgICAqXG4gICAgICogYGBgbWFya2Rvd25cbiAgICAgKiAgIHwgfn5+anNcbiAgICAgKiAgIHwgYWxlcnQoMSlcbiAgICAgKiA+IHwgfn5+XG4gICAgICogICAgIF5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtTdGF0ZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiZWZvcmVTZXF1ZW5jZUNsb3NlKGNvZGUpIHtcbiAgICAgIGlmIChjb2RlID09PSBtYXJrZXIpIHtcbiAgICAgICAgZWZmZWN0cy5lbnRlcihcImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlXCIpO1xuICAgICAgICByZXR1cm4gc2VxdWVuY2VDbG9zZShjb2RlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW4gY2xvc2luZyBmZW5jZSBzZXF1ZW5jZS5cbiAgICAgKlxuICAgICAqIGBgYG1hcmtkb3duXG4gICAgICogICB8IH5+fmpzXG4gICAgICogICB8IGFsZXJ0KDEpXG4gICAgICogPiB8IH5+flxuICAgICAqICAgICBeXG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAdHlwZSB7U3RhdGV9XG4gICAgICovXG4gICAgZnVuY3Rpb24gc2VxdWVuY2VDbG9zZShjb2RlKSB7XG4gICAgICBpZiAoY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICAgIHNpemUrKztcbiAgICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgICByZXR1cm4gc2VxdWVuY2VDbG9zZTtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplID49IHNpemVPcGVuKSB7XG4gICAgICAgIGVmZmVjdHMuZXhpdChcImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlXCIpO1xuICAgICAgICByZXR1cm4gbWFya2Rvd25TcGFjZShjb2RlKSA/IGZhY3RvcnlTcGFjZShlZmZlY3RzLCBzZXF1ZW5jZUNsb3NlQWZ0ZXIsIFwid2hpdGVzcGFjZVwiKShjb2RlKSA6IHNlcXVlbmNlQ2xvc2VBZnRlcihjb2RlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWZ0ZXIgY2xvc2luZyBmZW5jZSBzZXF1ZW5jZSwgYWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICAgKlxuICAgICAqIGBgYG1hcmtkb3duXG4gICAgICogICB8IH5+fmpzXG4gICAgICogICB8IGFsZXJ0KDEpXG4gICAgICogPiB8IH5+flxuICAgICAqICAgICAgICBeXG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAdHlwZSB7U3RhdGV9XG4gICAgICovXG4gICAgZnVuY3Rpb24gc2VxdWVuY2VDbG9zZUFmdGVyKGNvZGUpIHtcbiAgICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgICBlZmZlY3RzLmV4aXQoXCJjb2RlRmVuY2VkRmVuY2VcIik7XG4gICAgICAgIHJldHVybiBvayhjb2RlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqICAgQ29udGV4dC5cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplTm9uTGF6eUNvbnRpbnVhdGlvbihlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG4gICAgZWZmZWN0cy5lbnRlcihcImxpbmVFbmRpbmdcIik7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIGVmZmVjdHMuZXhpdChcImxpbmVFbmRpbmdcIik7XG4gICAgcmV0dXJuIGxpbmVTdGFydDtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBsaW5lU3RhcnQoY29kZSkge1xuICAgIHJldHVybiBzZWxmLnBhcnNlci5sYXp5W3NlbGYubm93KCkubGluZV0gPyBub2soY29kZSkgOiBvayhjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb25zdHJ1Y3QsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHQsXG4gKiAgIFRva2VuaXplclxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBmYWN0b3J5U3BhY2UgfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSc7XG5pbXBvcnQgeyBtYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2UgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgY29kZUluZGVudGVkID0ge1xuICBuYW1lOiAnY29kZUluZGVudGVkJyxcbiAgdG9rZW5pemU6IHRva2VuaXplQ29kZUluZGVudGVkXG59O1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IGZ1cnRoZXJTdGFydCA9IHtcbiAgcGFydGlhbDogdHJ1ZSxcbiAgdG9rZW5pemU6IHRva2VuaXplRnVydGhlclN0YXJ0XG59O1xuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUNvZGVJbmRlbnRlZChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGNvZGUgKGluZGVudGVkKS5cbiAgICpcbiAgICogPiAqKlBhcnNpbmcgbm90ZSoqOiBpdCBpcyBub3QgbmVlZGVkIHRvIGNoZWNrIGlmIHRoaXMgZmlyc3QgbGluZSBpcyBhXG4gICAqID4gZmlsbGVkIGxpbmUgKHRoYXQgaXQgaGFzIGEgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyKSwgYmVjYXVzZSBibGFuayBsaW5lc1xuICAgKiA+IGFyZSBwYXJzZWQgYWxyZWFkeSwgc28gd2UgbmV2ZXIgcnVuIGludG8gdGhhdC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICAgICBhYWFcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAvLyBUbyBkbzogbWFudWFsbHkgY2hlY2sgaWYgaW50ZXJydXB0aW5nIGxpa2UgYG1hcmtkb3duLXJzYC5cblxuICAgIGVmZmVjdHMuZW50ZXIoXCJjb2RlSW5kZW50ZWRcIik7XG4gICAgLy8gVG8gZG86IHVzZSBhbiBpbXByb3ZlZCBgc3BhY2Vfb3JfdGFiYCBmdW5jdGlvbiBsaWtlIGBtYXJrZG93bi1yc2AsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gZHJvcCB0aGUgbmV4dCBzdGF0ZS5cbiAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGFmdGVyUHJlZml4LCBcImxpbmVQcmVmaXhcIiwgNCArIDEpKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0IHN0YXJ0LCBhZnRlciAxIG9yIDQgc3BhY2VzLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgICAgIGFhYVxuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyUHJlZml4KGNvZGUpIHtcbiAgICBjb25zdCB0YWlsID0gc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV07XG4gICAgcmV0dXJuIHRhaWwgJiYgdGFpbFsxXS50eXBlID09PSBcImxpbmVQcmVmaXhcIiAmJiB0YWlsWzJdLnNsaWNlU2VyaWFsaXplKHRhaWxbMV0sIHRydWUpLmxlbmd0aCA+PSA0ID8gYXRCcmVhayhjb2RlKSA6IG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBhIGJyZWFrLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgICAgIGFhYVxuICAgKiAgICAgICAgIF4gIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGF0QnJlYWsoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gYWZ0ZXIoY29kZSk7XG4gICAgfVxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQoZnVydGhlclN0YXJ0LCBhdEJyZWFrLCBhZnRlcikoY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoXCJjb2RlRmxvd1ZhbHVlXCIpO1xuICAgIHJldHVybiBpbnNpZGUoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gY29kZSBjb250ZW50LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgICAgIGFhYVxuICAgKiAgICAgICAgIF5eXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJjb2RlRmxvd1ZhbHVlXCIpO1xuICAgICAgcmV0dXJuIGF0QnJlYWsoY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICByZXR1cm4gaW5zaWRlO1xuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gYWZ0ZXIoY29kZSkge1xuICAgIGVmZmVjdHMuZXhpdChcImNvZGVJbmRlbnRlZFwiKTtcbiAgICAvLyBUbyBkbzogYWxsb3cgaW50ZXJydXB0aW5nIGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICAvLyBGZWVsIGZyZWUgdG8gaW50ZXJydXB0LlxuICAgIC8vIHRva2VuaXplci5pbnRlcnJ1cHQgPSBmYWxzZVxuICAgIHJldHVybiBvayhjb2RlKTtcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUZ1cnRoZXJTdGFydChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICByZXR1cm4gZnVydGhlclN0YXJ0O1xuXG4gIC8qKlxuICAgKiBBdCBlb2wsIHRyeWluZyB0byBwYXJzZSBhbm90aGVyIGluZGVudC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICAgICBhYWFcbiAgICogICAgICAgICAgICBeXG4gICAqICAgfCAgICAgYmJiXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBmdXJ0aGVyU3RhcnQoY29kZSkge1xuICAgIC8vIFRvIGRvOiBpbXByb3ZlIGBsYXp5YCAvIGBwaWVyY2VgIGhhbmRsaW5nLlxuICAgIC8vIElmIHRoaXMgaXMgYSBsYXp5IGxpbmUsIGl0IGNhblx1MjAxOXQgYmUgY29kZS5cbiAgICBpZiAoc2VsZi5wYXJzZXIubGF6eVtzZWxmLm5vdygpLmxpbmVdKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKFwibGluZUVuZGluZ1wiKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImxpbmVFbmRpbmdcIik7XG4gICAgICByZXR1cm4gZnVydGhlclN0YXJ0O1xuICAgIH1cblxuICAgIC8vIFRvIGRvOiB0aGUgY29kZSBoZXJlIGluIGBtaWNyb21hcmstanNgIGlzIGEgYml0IGRpZmZlcmVudCBmcm9tXG4gICAgLy8gYG1hcmtkb3duLXJzYCBiZWNhdXNlIHRoZXJlIGl0IGNhbiBhdHRlbXB0IHNwYWNlcy5cbiAgICAvLyBXZSBjYW5cdTIwMTl0IHlldC5cbiAgICAvL1xuICAgIC8vIFRvIGRvOiB1c2UgYW4gaW1wcm92ZWQgYHNwYWNlX29yX3RhYmAgZnVuY3Rpb24gbGlrZSBgbWFya2Rvd24tcnNgLFxuICAgIC8vIHNvIHRoYXQgd2UgY2FuIGRyb3AgdGhlIG5leHQgc3RhdGUuXG4gICAgcmV0dXJuIGZhY3RvcnlTcGFjZShlZmZlY3RzLCBhZnRlclByZWZpeCwgXCJsaW5lUHJlZml4XCIsIDQgKyAxKShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBzdGFydCwgYWZ0ZXIgMSBvciA0IHNwYWNlcy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICAgICBhYWFcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlclByZWZpeChjb2RlKSB7XG4gICAgY29uc3QgdGFpbCA9IHNlbGYuZXZlbnRzW3NlbGYuZXZlbnRzLmxlbmd0aCAtIDFdO1xuICAgIHJldHVybiB0YWlsICYmIHRhaWxbMV0udHlwZSA9PT0gXCJsaW5lUHJlZml4XCIgJiYgdGFpbFsyXS5zbGljZVNlcmlhbGl6ZSh0YWlsWzFdLCB0cnVlKS5sZW5ndGggPj0gNCA/IG9rKGNvZGUpIDogbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpID8gZnVydGhlclN0YXJ0KGNvZGUpIDogbm9rKGNvZGUpO1xuICB9XG59IiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIENvbnN0cnVjdCxcbiAqICAgUHJldmlvdXMsXG4gKiAgIFJlc29sdmVyLFxuICogICBTdGF0ZSxcbiAqICAgVG9rZW5pemVDb250ZXh0LFxuICogICBUb2tlbml6ZXIsXG4gKiAgIFRva2VuXG4gKiB9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IG1hcmtkb3duTGluZUVuZGluZyB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcic7XG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBjb2RlVGV4dCA9IHtcbiAgbmFtZTogJ2NvZGVUZXh0JyxcbiAgcHJldmlvdXMsXG4gIHJlc29sdmU6IHJlc29sdmVDb2RlVGV4dCxcbiAgdG9rZW5pemU6IHRva2VuaXplQ29kZVRleHRcbn07XG5cbi8vIFRvIGRvOiBuZXh0IG1ham9yOiBkb25cdTIwMTl0IHJlc29sdmUsIGxpa2UgYG1hcmtkb3duLXJzYC5cbi8qKiBAdHlwZSB7UmVzb2x2ZXJ9ICovXG5mdW5jdGlvbiByZXNvbHZlQ29kZVRleHQoZXZlbnRzKSB7XG4gIGxldCB0YWlsRXhpdEluZGV4ID0gZXZlbnRzLmxlbmd0aCAtIDQ7XG4gIGxldCBoZWFkRW50ZXJJbmRleCA9IDM7XG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgaW5kZXg7XG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgZW50ZXI7XG5cbiAgLy8gSWYgd2Ugc3RhcnQgYW5kIGVuZCB3aXRoIGFuIEVPTCBvciBhIHNwYWNlLlxuICBpZiAoKGV2ZW50c1toZWFkRW50ZXJJbmRleF1bMV0udHlwZSA9PT0gXCJsaW5lRW5kaW5nXCIgfHwgZXZlbnRzW2hlYWRFbnRlckluZGV4XVsxXS50eXBlID09PSAnc3BhY2UnKSAmJiAoZXZlbnRzW3RhaWxFeGl0SW5kZXhdWzFdLnR5cGUgPT09IFwibGluZUVuZGluZ1wiIHx8IGV2ZW50c1t0YWlsRXhpdEluZGV4XVsxXS50eXBlID09PSAnc3BhY2UnKSkge1xuICAgIGluZGV4ID0gaGVhZEVudGVySW5kZXg7XG5cbiAgICAvLyBBbmQgd2UgaGF2ZSBkYXRhLlxuICAgIHdoaWxlICgrK2luZGV4IDwgdGFpbEV4aXRJbmRleCkge1xuICAgICAgaWYgKGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gXCJjb2RlVGV4dERhdGFcIikge1xuICAgICAgICAvLyBUaGVuIHdlIGhhdmUgcGFkZGluZy5cbiAgICAgICAgZXZlbnRzW2hlYWRFbnRlckluZGV4XVsxXS50eXBlID0gXCJjb2RlVGV4dFBhZGRpbmdcIjtcbiAgICAgICAgZXZlbnRzW3RhaWxFeGl0SW5kZXhdWzFdLnR5cGUgPSBcImNvZGVUZXh0UGFkZGluZ1wiO1xuICAgICAgICBoZWFkRW50ZXJJbmRleCArPSAyO1xuICAgICAgICB0YWlsRXhpdEluZGV4IC09IDI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1lcmdlIGFkamFjZW50IHNwYWNlcyBhbmQgZGF0YS5cbiAgaW5kZXggPSBoZWFkRW50ZXJJbmRleCAtIDE7XG4gIHRhaWxFeGl0SW5kZXgrKztcbiAgd2hpbGUgKCsraW5kZXggPD0gdGFpbEV4aXRJbmRleCkge1xuICAgIGlmIChlbnRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoaW5kZXggIT09IHRhaWxFeGl0SW5kZXggJiYgZXZlbnRzW2luZGV4XVsxXS50eXBlICE9PSBcImxpbmVFbmRpbmdcIikge1xuICAgICAgICBlbnRlciA9IGluZGV4O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IHRhaWxFeGl0SW5kZXggfHwgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSBcImxpbmVFbmRpbmdcIikge1xuICAgICAgZXZlbnRzW2VudGVyXVsxXS50eXBlID0gXCJjb2RlVGV4dERhdGFcIjtcbiAgICAgIGlmIChpbmRleCAhPT0gZW50ZXIgKyAyKSB7XG4gICAgICAgIGV2ZW50c1tlbnRlcl1bMV0uZW5kID0gZXZlbnRzW2luZGV4IC0gMV1bMV0uZW5kO1xuICAgICAgICBldmVudHMuc3BsaWNlKGVudGVyICsgMiwgaW5kZXggLSBlbnRlciAtIDIpO1xuICAgICAgICB0YWlsRXhpdEluZGV4IC09IGluZGV4IC0gZW50ZXIgLSAyO1xuICAgICAgICBpbmRleCA9IGVudGVyICsgMjtcbiAgICAgIH1cbiAgICAgIGVudGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZXZlbnRzO1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7UHJldmlvdXN9XG4gKi9cbmZ1bmN0aW9uIHByZXZpb3VzKGNvZGUpIHtcbiAgLy8gSWYgdGhlcmUgaXMgYSBwcmV2aW91cyBjb2RlLCB0aGVyZSB3aWxsIGFsd2F5cyBiZSBhIHRhaWwuXG4gIHJldHVybiBjb2RlICE9PSA5NiB8fCB0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGggLSAxXVsxXS50eXBlID09PSBcImNoYXJhY3RlckVzY2FwZVwiO1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUNvZGVUZXh0KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gIGxldCBzaXplT3BlbiA9IDA7XG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgc2l6ZTtcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IHRva2VuO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGNvZGUgKHRleHQpLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYGFgXG4gICAqICAgICBeXG4gICAqID4gfCBcXGBhYFxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKFwiY29kZVRleHRcIik7XG4gICAgZWZmZWN0cy5lbnRlcihcImNvZGVUZXh0U2VxdWVuY2VcIik7XG4gICAgcmV0dXJuIHNlcXVlbmNlT3Blbihjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcGVuaW5nIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYGFgXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzZXF1ZW5jZU9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSA5Nikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgc2l6ZU9wZW4rKztcbiAgICAgIHJldHVybiBzZXF1ZW5jZU9wZW47XG4gICAgfVxuICAgIGVmZmVjdHMuZXhpdChcImNvZGVUZXh0U2VxdWVuY2VcIik7XG4gICAgcmV0dXJuIGJldHdlZW4oY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQmV0d2VlbiBzb21ldGhpbmcgYW5kIHNvbWV0aGluZyBlbHNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYGFgXG4gICAqICAgICAgXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJldHdlZW4oY29kZSkge1xuICAgIC8vIEVPRi5cbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG5cbiAgICAvLyBUbyBkbzogbmV4dCBtYWpvcjogZG9uXHUyMDE5dCBkbyBzcGFjZXMgaW4gcmVzb2x2ZSwgYnV0IHdoZW4gY29tcGlsaW5nLFxuICAgIC8vIGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICAvLyBUYWJzIGRvblx1MjAxOXQgd29yaywgYW5kIHZpcnR1YWwgc3BhY2VzIGRvblx1MjAxOXQgbWFrZSBzZW5zZS5cbiAgICBpZiAoY29kZSA9PT0gMzIpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ3NwYWNlJyk7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoJ3NwYWNlJyk7XG4gICAgICByZXR1cm4gYmV0d2VlbjtcbiAgICB9XG5cbiAgICAvLyBDbG9zaW5nIGZlbmNlPyBDb3VsZCBhbHNvIGJlIGRhdGEuXG4gICAgaWYgKGNvZGUgPT09IDk2KSB7XG4gICAgICB0b2tlbiA9IGVmZmVjdHMuZW50ZXIoXCJjb2RlVGV4dFNlcXVlbmNlXCIpO1xuICAgICAgc2l6ZSA9IDA7XG4gICAgICByZXR1cm4gc2VxdWVuY2VDbG9zZShjb2RlKTtcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcihcImxpbmVFbmRpbmdcIik7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJsaW5lRW5kaW5nXCIpO1xuICAgICAgcmV0dXJuIGJldHdlZW47XG4gICAgfVxuXG4gICAgLy8gRGF0YS5cbiAgICBlZmZlY3RzLmVudGVyKFwiY29kZVRleHREYXRhXCIpO1xuICAgIHJldHVybiBkYXRhKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGRhdGEuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBgYWBcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBkYXRhKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBjb2RlID09PSAzMiB8fCBjb2RlID09PSA5NiB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdChcImNvZGVUZXh0RGF0YVwiKTtcbiAgICAgIHJldHVybiBiZXR3ZWVuKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICAvKipcbiAgICogSW4gY2xvc2luZyBzZXF1ZW5jZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGBhYFxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzZXF1ZW5jZUNsb3NlKGNvZGUpIHtcbiAgICAvLyBNb3JlLlxuICAgIGlmIChjb2RlID09PSA5Nikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgc2l6ZSsrO1xuICAgICAgcmV0dXJuIHNlcXVlbmNlQ2xvc2U7XG4gICAgfVxuXG4gICAgLy8gRG9uZSFcbiAgICBpZiAoc2l6ZSA9PT0gc2l6ZU9wZW4pIHtcbiAgICAgIGVmZmVjdHMuZXhpdChcImNvZGVUZXh0U2VxdWVuY2VcIik7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJjb2RlVGV4dFwiKTtcbiAgICAgIHJldHVybiBvayhjb2RlKTtcbiAgICB9XG5cbiAgICAvLyBNb3JlIG9yIGxlc3MgYWNjZW50czogbWFyayBhcyBkYXRhLlxuICAgIHRva2VuLnR5cGUgPSBcImNvZGVUZXh0RGF0YVwiO1xuICAgIHJldHVybiBkYXRhKGNvZGUpO1xuICB9XG59IiwgIi8qKlxuICogU29tZSBvZiB0aGUgaW50ZXJuYWwgb3BlcmF0aW9ucyBvZiBtaWNyb21hcmsgZG8gbG90cyBvZiBlZGl0aW5nXG4gKiBvcGVyYXRpb25zIG9uIHZlcnkgbGFyZ2UgYXJyYXlzLiBUaGlzIHJ1bnMgaW50byBwcm9ibGVtcyB3aXRoIHR3b1xuICogcHJvcGVydGllcyBvZiBtb3N0IGNpcmNhLTIwMjAgSmF2YVNjcmlwdCBpbnRlcnByZXRlcnM6XG4gKlxuICogIC0gQXJyYXktbGVuZ3RoIG1vZGlmaWNhdGlvbnMgYXQgdGhlIGhpZ2ggZW5kIG9mIGFuIGFycmF5IChwdXNoL3BvcCkgYXJlXG4gKiAgICBleHBlY3RlZCB0byBiZSBjb21tb24gYW5kIGFyZSBpbXBsZW1lbnRlZCBpbiAoYW1vcnRpemVkKSB0aW1lXG4gKiAgICBwcm9wb3J0aW9uYWwgdG8gdGhlIG51bWJlciBvZiBlbGVtZW50cyBhZGRlZCBvciByZW1vdmVkLCB3aGVyZWFzXG4gKiAgICBvdGhlciBvcGVyYXRpb25zIChzaGlmdC91bnNoaWZ0IGFuZCBzcGxpY2UpIGFyZSBtdWNoIGxlc3MgZWZmaWNpZW50LlxuICogIC0gRnVuY3Rpb24gYXJndW1lbnRzIGFyZSBwYXNzZWQgb24gdGhlIHN0YWNrLCBzbyBhZGRpbmcgdGVucyBvZiB0aG91c2FuZHNcbiAqICAgIG9mIGVsZW1lbnRzIHRvIGFuIGFycmF5IHdpdGggYGFyci5wdXNoKC4uLm5ld0VsZW1lbnRzKWAgd2lsbCBmcmVxdWVudGx5XG4gKiAgICBjYXVzZSBzdGFjayBvdmVyZmxvd3MuIChzZWUgPGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIyMTIzNzY5L3JhbmdlZXJyb3ItbWF4aW11bS1jYWxsLXN0YWNrLXNpemUtZXhjZWVkZWQtd2h5PilcbiAqXG4gKiBTcGxpY2VCdWZmZXJzIGFyZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiBnYXAgYnVmZmVycywgd2hpY2ggYXJlIGFcbiAqIGdlbmVyYWxpemF0aW9uIG9mIHRoZSBcInF1ZXVlIG1hZGUgb2YgdHdvIHN0YWNrc1wiIGlkZWEuIFRoZSBzcGxpY2UgYnVmZmVyXG4gKiBtYWludGFpbnMgYSBjdXJzb3IsIGFuZCBtb3ZpbmcgdGhlIGN1cnNvciBoYXMgY29zdCBwcm9wb3J0aW9uYWwgdG8gdGhlXG4gKiBkaXN0YW5jZSB0aGUgY3Vyc29yIG1vdmVzLCBidXQgaW5zZXJ0aW5nLCBkZWxldGluZywgb3Igc3BsaWNpbmcgaW5cbiAqIG5ldyBpbmZvcm1hdGlvbiBhdCB0aGUgY3Vyc29yIGlzIGFzIGVmZmljaWVudCBhcyB0aGUgcHVzaC9wb3Agb3BlcmF0aW9uLlxuICogVGhpcyBhbGxvd3MgZm9yIGFuIGVmZmljaWVudCBzZXF1ZW5jZSBvZiBzcGxpY2VzIChvciBwdXNoZXMsIHBvcHMsIHNoaWZ0cyxcbiAqIG9yIHVuc2hpZnRzKSBhcyBsb25nIHN1Y2ggZWRpdHMgaGFwcGVuIGF0IHRoZSBzYW1lIHBhcnQgb2YgdGhlIGFycmF5IG9yXG4gKiBnZW5lcmFsbHkgc3dlZXAgdGhyb3VnaCB0aGUgYXJyYXkgZnJvbSB0aGUgYmVnaW5uaW5nIHRvIHRoZSBlbmQuXG4gKlxuICogVGhlIGludGVyZmFjZSBmb3Igc3BsaWNlIGJ1ZmZlcnMgYWxzbyBzdXBwb3J0cyBsYXJnZSBudW1iZXJzIG9mIGlucHV0cyBieVxuICogcGFzc2luZyBhIHNpbmdsZSBhcnJheSBhcmd1bWVudCByYXRoZXIgcGFzc2luZyBtdWx0aXBsZSBhcmd1bWVudHMgb24gdGhlXG4gKiBmdW5jdGlvbiBjYWxsIHN0YWNrLlxuICpcbiAqIEB0ZW1wbGF0ZSBUXG4gKiAgIEl0ZW0gdHlwZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNwbGljZUJ1ZmZlciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge1JlYWRvbmx5QXJyYXk8VD4gfCBudWxsIHwgdW5kZWZpbmVkfSBbaW5pdGlhbF1cbiAgICogICBJbml0aWFsIGl0ZW1zIChvcHRpb25hbCkuXG4gICAqIEByZXR1cm5zXG4gICAqICAgU3BsaWNlIGJ1ZmZlci5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGluaXRpYWwpIHtcbiAgICAvKiogQHR5cGUge0FycmF5PFQ+fSAqL1xuICAgIHRoaXMubGVmdCA9IGluaXRpYWwgPyBbLi4uaW5pdGlhbF0gOiBbXTtcbiAgICAvKiogQHR5cGUge0FycmF5PFQ+fSAqL1xuICAgIHRoaXMucmlnaHQgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcnJheSBhY2Nlc3M7XG4gICAqIGRvZXMgbm90IG1vdmUgdGhlIGN1cnNvci5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gICAqICAgSW5kZXguXG4gICAqIEByZXR1cm4ge1R9XG4gICAqICAgSXRlbS5cbiAgICovXG4gIGdldChpbmRleCkge1xuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5sZWZ0Lmxlbmd0aCArIHRoaXMucmlnaHQubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQ2Fubm90IGFjY2VzcyBpbmRleCBgJyArIGluZGV4ICsgJ2AgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCcgKyAodGhpcy5sZWZ0Lmxlbmd0aCArIHRoaXMucmlnaHQubGVuZ3RoKSArICdgJyk7XG4gICAgfVxuICAgIGlmIChpbmRleCA8IHRoaXMubGVmdC5sZW5ndGgpIHJldHVybiB0aGlzLmxlZnRbaW5kZXhdO1xuICAgIHJldHVybiB0aGlzLnJpZ2h0W3RoaXMucmlnaHQubGVuZ3RoIC0gaW5kZXggKyB0aGlzLmxlZnQubGVuZ3RoIC0gMV07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxlbmd0aCBvZiB0aGUgc3BsaWNlIGJ1ZmZlciwgb25lIGdyZWF0ZXIgdGhhbiB0aGUgbGFyZ2VzdCBpbmRleCBpbiB0aGVcbiAgICogYXJyYXkuXG4gICAqL1xuICBnZXQgbGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLmxlZnQubGVuZ3RoICsgdGhpcy5yaWdodC5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuZCByZXR1cm4gYGxpc3RbMF1gO1xuICAgKiBtb3ZlcyB0aGUgY3Vyc29yIHRvIGAwYC5cbiAgICpcbiAgICogQHJldHVybnMge1QgfCB1bmRlZmluZWR9XG4gICAqICAgSXRlbSwgb3B0aW9uYWwuXG4gICAqL1xuICBzaGlmdCgpIHtcbiAgICB0aGlzLnNldEN1cnNvcigwKTtcbiAgICByZXR1cm4gdGhpcy5yaWdodC5wb3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTbGljZSB0aGUgYnVmZmVyIHRvIGdldCBhbiBhcnJheTtcbiAgICogZG9lcyBub3QgbW92ZSB0aGUgY3Vyc29yLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRcbiAgICogICBTdGFydC5cbiAgICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbZW5kXVxuICAgKiAgIEVuZCAob3B0aW9uYWwpLlxuICAgKiBAcmV0dXJucyB7QXJyYXk8VD59XG4gICAqICAgQXJyYXkgb2YgaXRlbXMuXG4gICAqL1xuICBzbGljZShzdGFydCwgZW5kKSB7XG4gICAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gICAgY29uc3Qgc3RvcCA9IGVuZCA9PT0gbnVsbCB8fCBlbmQgPT09IHVuZGVmaW5lZCA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IGVuZDtcbiAgICBpZiAoc3RvcCA8IHRoaXMubGVmdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmxlZnQuc2xpY2Uoc3RhcnQsIHN0b3ApO1xuICAgIH1cbiAgICBpZiAoc3RhcnQgPiB0aGlzLmxlZnQubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aCAtIHN0b3AgKyB0aGlzLmxlZnQubGVuZ3RoLCB0aGlzLnJpZ2h0Lmxlbmd0aCAtIHN0YXJ0ICsgdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sZWZ0LnNsaWNlKHN0YXJ0KS5jb25jYXQodGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aCAtIHN0b3AgKyB0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1pbWljcyB0aGUgYmVoYXZpb3Igb2YgQXJyYXkucHJvdG90eXBlLnNwbGljZSgpIGV4Y2VwdCBmb3IgdGhlIGNoYW5nZSBvZlxuICAgKiBpbnRlcmZhY2UgbmVjZXNzYXJ5IHRvIGF2b2lkIHNlZ2ZhdWx0cyB3aGVuIHBhdGNoaW5nIGluIHZlcnkgbGFyZ2UgYXJyYXlzLlxuICAgKlxuICAgKiBUaGlzIG9wZXJhdGlvbiBtb3ZlcyBjdXJzb3IgaXMgbW92ZWQgdG8gYHN0YXJ0YCBhbmQgcmVzdWx0cyBpbiB0aGUgY3Vyc29yXG4gICAqIHBsYWNlZCBhZnRlciBhbnkgaW5zZXJ0ZWQgaXRlbXMuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydFxuICAgKiAgIFN0YXJ0O1xuICAgKiAgIHplcm8tYmFzZWQgaW5kZXggYXQgd2hpY2ggdG8gc3RhcnQgY2hhbmdpbmcgdGhlIGFycmF5O1xuICAgKiAgIG5lZ2F0aXZlIG51bWJlcnMgY291bnQgYmFja3dhcmRzIGZyb20gdGhlIGVuZCBvZiB0aGUgYXJyYXkgYW5kIHZhbHVlc1xuICAgKiAgIHRoYXQgYXJlIG91dC1vZiBib3VuZHMgYXJlIGNsYW1wZWQgdG8gdGhlIGFwcHJvcHJpYXRlIGVuZCBvZiB0aGUgYXJyYXkuXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2RlbGV0ZUNvdW50PTBdXG4gICAqICAgRGVsZXRlIGNvdW50IChkZWZhdWx0OiBgMGApO1xuICAgKiAgIG1heGltdW0gbnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRlbGV0ZSwgc3RhcnRpbmcgZnJvbSBzdGFydC5cbiAgICogQHBhcmFtIHtBcnJheTxUPiB8IG51bGwgfCB1bmRlZmluZWR9IFtpdGVtcz1bXV1cbiAgICogICBJdGVtcyB0byBpbmNsdWRlIGluIHBsYWNlIG9mIHRoZSBkZWxldGVkIGl0ZW1zIChkZWZhdWx0OiBgW11gKS5cbiAgICogQHJldHVybiB7QXJyYXk8VD59XG4gICAqICAgQW55IHJlbW92ZWQgaXRlbXMuXG4gICAqL1xuICBzcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50LCBpdGVtcykge1xuICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgIGNvbnN0IGNvdW50ID0gZGVsZXRlQ291bnQgfHwgMDtcbiAgICB0aGlzLnNldEN1cnNvcihNYXRoLnRydW5jKHN0YXJ0KSk7XG4gICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMucmlnaHQuc3BsaWNlKHRoaXMucmlnaHQubGVuZ3RoIC0gY291bnQsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7XG4gICAgaWYgKGl0ZW1zKSBjaHVua2VkUHVzaCh0aGlzLmxlZnQsIGl0ZW1zKTtcbiAgICByZXR1cm4gcmVtb3ZlZC5yZXZlcnNlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuZCByZXR1cm4gdGhlIGhpZ2hlc3QtbnVtYmVyZWQgaXRlbSBpbiB0aGUgYXJyYXksIHNvXG4gICAqIGBsaXN0W2xpc3QubGVuZ3RoIC0gMV1gO1xuICAgKiBNb3ZlcyB0aGUgY3Vyc29yIHRvIGBsZW5ndGhgLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VCB8IHVuZGVmaW5lZH1cbiAgICogICBJdGVtLCBvcHRpb25hbC5cbiAgICovXG4gIHBvcCgpIHtcbiAgICB0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO1xuICAgIHJldHVybiB0aGlzLmxlZnQucG9wKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5zZXJ0cyBhIHNpbmdsZSBpdGVtIHRvIHRoZSBoaWdoLW51bWJlcmVkIHNpZGUgb2YgdGhlIGFycmF5O1xuICAgKiBtb3ZlcyB0aGUgY3Vyc29yIHRvIGBsZW5ndGhgLlxuICAgKlxuICAgKiBAcGFyYW0ge1R9IGl0ZW1cbiAgICogICBJdGVtLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBwdXNoKGl0ZW0pIHtcbiAgICB0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO1xuICAgIHRoaXMubGVmdC5wdXNoKGl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydHMgbWFueSBpdGVtcyB0byB0aGUgaGlnaC1udW1iZXJlZCBzaWRlIG9mIHRoZSBhcnJheS5cbiAgICogTW92ZXMgdGhlIGN1cnNvciB0byBgbGVuZ3RoYC5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxUPn0gaXRlbXNcbiAgICogICBJdGVtcy5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgcHVzaE1hbnkoaXRlbXMpIHtcbiAgICB0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO1xuICAgIGNodW5rZWRQdXNoKHRoaXMubGVmdCwgaXRlbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydHMgYSBzaW5nbGUgaXRlbSB0byB0aGUgbG93LW51bWJlcmVkIHNpZGUgb2YgdGhlIGFycmF5O1xuICAgKiBNb3ZlcyB0aGUgY3Vyc29yIHRvIGAwYC5cbiAgICpcbiAgICogQHBhcmFtIHtUfSBpdGVtXG4gICAqICAgSXRlbS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgdW5zaGlmdChpdGVtKSB7XG4gICAgdGhpcy5zZXRDdXJzb3IoMCk7XG4gICAgdGhpcy5yaWdodC5wdXNoKGl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydHMgbWFueSBpdGVtcyB0byB0aGUgbG93LW51bWJlcmVkIHNpZGUgb2YgdGhlIGFycmF5O1xuICAgKiBtb3ZlcyB0aGUgY3Vyc29yIHRvIGAwYC5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxUPn0gaXRlbXNcbiAgICogICBJdGVtcy5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgdW5zaGlmdE1hbnkoaXRlbXMpIHtcbiAgICB0aGlzLnNldEN1cnNvcigwKTtcbiAgICBjaHVua2VkUHVzaCh0aGlzLnJpZ2h0LCBpdGVtcy5yZXZlcnNlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vdmUgdGhlIGN1cnNvciB0byBhIHNwZWNpZmljIHBvc2l0aW9uIGluIHRoZSBhcnJheS4gUmVxdWlyZXNcbiAgICogdGltZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGRpc3RhbmNlIG1vdmVkLlxuICAgKlxuICAgKiBJZiBgbiA8IDBgLCB0aGUgY3Vyc29yIHdpbGwgZW5kIHVwIGF0IHRoZSBiZWdpbm5pbmcuXG4gICAqIElmIGBuID4gbGVuZ3RoYCwgdGhlIGN1cnNvciB3aWxsIGVuZCB1cCBhdCB0aGUgZW5kLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gblxuICAgKiAgIFBvc2l0aW9uLlxuICAgKiBAcmV0dXJuIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldEN1cnNvcihuKSB7XG4gICAgaWYgKG4gPT09IHRoaXMubGVmdC5sZW5ndGggfHwgbiA+IHRoaXMubGVmdC5sZW5ndGggJiYgdGhpcy5yaWdodC5sZW5ndGggPT09IDAgfHwgbiA8IDAgJiYgdGhpcy5sZWZ0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGlmIChuIDwgdGhpcy5sZWZ0Lmxlbmd0aCkge1xuICAgICAgLy8gTW92ZSBjdXJzb3IgdG8gdGhlIHRoaXMubGVmdFxuICAgICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMubGVmdC5zcGxpY2UobiwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtcbiAgICAgIGNodW5rZWRQdXNoKHRoaXMucmlnaHQsIHJlbW92ZWQucmV2ZXJzZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTW92ZSBjdXJzb3IgdG8gdGhlIHRoaXMucmlnaHRcbiAgICAgIGNvbnN0IHJlbW92ZWQgPSB0aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoICsgdGhpcy5yaWdodC5sZW5ndGggLSBuLCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO1xuICAgICAgY2h1bmtlZFB1c2godGhpcy5sZWZ0LCByZW1vdmVkLnJldmVyc2UoKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQXZvaWQgc3RhY2sgb3ZlcmZsb3cgYnkgcHVzaGluZyBpdGVtcyBvbnRvIHRoZSBzdGFjayBpbiBzZWdtZW50c1xuICpcbiAqIEB0ZW1wbGF0ZSBUXG4gKiAgIEl0ZW0gdHlwZS5cbiAqIEBwYXJhbSB7QXJyYXk8VD59IGxpc3RcbiAqICAgTGlzdCB0byBpbmplY3QgaW50by5cbiAqIEBwYXJhbSB7UmVhZG9ubHlBcnJheTxUPn0gcmlnaHRcbiAqICAgSXRlbXMgdG8gaW5qZWN0LlxuICogQHJldHVybiB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBjaHVua2VkUHVzaChsaXN0LCByaWdodCkge1xuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IGNodW5rU3RhcnQgPSAwO1xuICBpZiAocmlnaHQubGVuZ3RoIDwgMTAwMDApIHtcbiAgICBsaXN0LnB1c2goLi4ucmlnaHQpO1xuICB9IGVsc2Uge1xuICAgIHdoaWxlIChjaHVua1N0YXJ0IDwgcmlnaHQubGVuZ3RoKSB7XG4gICAgICBsaXN0LnB1c2goLi4ucmlnaHQuc2xpY2UoY2h1bmtTdGFydCwgY2h1bmtTdGFydCArIDEwMDAwKSk7XG4gICAgICBjaHVua1N0YXJ0ICs9IDEwMDAwO1xuICAgIH1cbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge0NodW5rLCBFdmVudCwgVG9rZW59IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IHNwbGljZSB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNodW5rZWQnO1xuaW1wb3J0IHsgU3BsaWNlQnVmZmVyIH0gZnJvbSAnLi9saWIvc3BsaWNlLWJ1ZmZlci5qcyc7XG5cbi8vIEhpZGRlbiBBUEkgZXhwb3NlZCBmb3IgdGVzdGluZy5cbmV4cG9ydCB7IFNwbGljZUJ1ZmZlciB9IGZyb20gJy4vbGliL3NwbGljZS1idWZmZXIuanMnO1xuXG4vKipcbiAqIFRva2VuaXplIHN1YmNvbnRlbnQuXG4gKlxuICogQHBhcmFtIHtBcnJheTxFdmVudD59IGV2ZW50c0FycmF5XG4gKiAgIExpc3Qgb2YgZXZlbnRzLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgc3VidG9rZW5zIHdlcmUgZm91bmQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG5leHBvcnQgZnVuY3Rpb24gc3VidG9rZW5pemUoZXZlbnRzQXJyYXkpIHtcbiAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBudW1iZXI+fSAqL1xuICBjb25zdCBqdW1wcyA9IHt9O1xuICBsZXQgaW5kZXggPSAtMTtcbiAgLyoqIEB0eXBlIHtFdmVudH0gKi9cbiAgbGV0IGV2ZW50O1xuICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGxpbmVJbmRleDtcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBvdGhlckluZGV4O1xuICAvKiogQHR5cGUge0V2ZW50fSAqL1xuICBsZXQgb3RoZXJFdmVudDtcbiAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gIGxldCBwYXJhbWV0ZXJzO1xuICAvKiogQHR5cGUge0FycmF5PEV2ZW50Pn0gKi9cbiAgbGV0IHN1YmV2ZW50cztcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgbW9yZTtcbiAgY29uc3QgZXZlbnRzID0gbmV3IFNwbGljZUJ1ZmZlcihldmVudHNBcnJheSk7XG4gIHdoaWxlICgrK2luZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuICAgIHdoaWxlIChpbmRleCBpbiBqdW1wcykge1xuICAgICAgaW5kZXggPSBqdW1wc1tpbmRleF07XG4gICAgfVxuICAgIGV2ZW50ID0gZXZlbnRzLmdldChpbmRleCk7XG5cbiAgICAvLyBBZGQgYSBob29rIGZvciB0aGUgR0ZNIHRhc2tsaXN0IGV4dGVuc2lvbiwgd2hpY2ggbmVlZHMgdG8ga25vdyBpZiB0ZXh0XG4gICAgLy8gaXMgaW4gdGhlIGZpcnN0IGNvbnRlbnQgb2YgYSBsaXN0IGl0ZW0uXG4gICAgaWYgKGluZGV4ICYmIGV2ZW50WzFdLnR5cGUgPT09IFwiY2h1bmtGbG93XCIgJiYgZXZlbnRzLmdldChpbmRleCAtIDEpWzFdLnR5cGUgPT09IFwibGlzdEl0ZW1QcmVmaXhcIikge1xuICAgICAgc3ViZXZlbnRzID0gZXZlbnRbMV0uX3Rva2VuaXplci5ldmVudHM7XG4gICAgICBvdGhlckluZGV4ID0gMDtcbiAgICAgIGlmIChvdGhlckluZGV4IDwgc3ViZXZlbnRzLmxlbmd0aCAmJiBzdWJldmVudHNbb3RoZXJJbmRleF1bMV0udHlwZSA9PT0gXCJsaW5lRW5kaW5nQmxhbmtcIikge1xuICAgICAgICBvdGhlckluZGV4ICs9IDI7XG4gICAgICB9XG4gICAgICBpZiAob3RoZXJJbmRleCA8IHN1YmV2ZW50cy5sZW5ndGggJiYgc3ViZXZlbnRzW290aGVySW5kZXhdWzFdLnR5cGUgPT09IFwiY29udGVudFwiKSB7XG4gICAgICAgIHdoaWxlICgrK290aGVySW5kZXggPCBzdWJldmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKHN1YmV2ZW50c1tvdGhlckluZGV4XVsxXS50eXBlID09PSBcImNvbnRlbnRcIikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdWJldmVudHNbb3RoZXJJbmRleF1bMV0udHlwZSA9PT0gXCJjaHVua1RleHRcIikge1xuICAgICAgICAgICAgc3ViZXZlbnRzW290aGVySW5kZXhdWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbSA9IHRydWU7XG4gICAgICAgICAgICBvdGhlckluZGV4Kys7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW50ZXIuXG4gICAgaWYgKGV2ZW50WzBdID09PSAnZW50ZXInKSB7XG4gICAgICBpZiAoZXZlbnRbMV0uY29udGVudFR5cGUpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihqdW1wcywgc3ViY29udGVudChldmVudHMsIGluZGV4KSk7XG4gICAgICAgIGluZGV4ID0ganVtcHNbaW5kZXhdO1xuICAgICAgICBtb3JlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gRXhpdC5cbiAgICBlbHNlIGlmIChldmVudFsxXS5fY29udGFpbmVyKSB7XG4gICAgICBvdGhlckluZGV4ID0gaW5kZXg7XG4gICAgICBsaW5lSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICB3aGlsZSAob3RoZXJJbmRleC0tKSB7XG4gICAgICAgIG90aGVyRXZlbnQgPSBldmVudHMuZ2V0KG90aGVySW5kZXgpO1xuICAgICAgICBpZiAob3RoZXJFdmVudFsxXS50eXBlID09PSBcImxpbmVFbmRpbmdcIiB8fCBvdGhlckV2ZW50WzFdLnR5cGUgPT09IFwibGluZUVuZGluZ0JsYW5rXCIpIHtcbiAgICAgICAgICBpZiAob3RoZXJFdmVudFswXSA9PT0gJ2VudGVyJykge1xuICAgICAgICAgICAgaWYgKGxpbmVJbmRleCkge1xuICAgICAgICAgICAgICBldmVudHMuZ2V0KGxpbmVJbmRleClbMV0udHlwZSA9IFwibGluZUVuZGluZ0JsYW5rXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdGhlckV2ZW50WzFdLnR5cGUgPSBcImxpbmVFbmRpbmdcIjtcbiAgICAgICAgICAgIGxpbmVJbmRleCA9IG90aGVySW5kZXg7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG90aGVyRXZlbnRbMV0udHlwZSA9PT0gXCJsaW5lUHJlZml4XCIgfHwgb3RoZXJFdmVudFsxXS50eXBlID09PSBcImxpc3RJdGVtSW5kZW50XCIpIHtcbiAgICAgICAgICAvLyBNb3ZlIHBhc3QuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChsaW5lSW5kZXgpIHtcbiAgICAgICAgLy8gRml4IHBvc2l0aW9uLlxuICAgICAgICBldmVudFsxXS5lbmQgPSB7XG4gICAgICAgICAgLi4uZXZlbnRzLmdldChsaW5lSW5kZXgpWzFdLnN0YXJ0XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gU3dpdGNoIGNvbnRhaW5lciBleGl0IHcvIGxpbmUgZW5kaW5ncy5cbiAgICAgICAgcGFyYW1ldGVycyA9IGV2ZW50cy5zbGljZShsaW5lSW5kZXgsIGluZGV4KTtcbiAgICAgICAgcGFyYW1ldGVycy51bnNoaWZ0KGV2ZW50KTtcbiAgICAgICAgZXZlbnRzLnNwbGljZShsaW5lSW5kZXgsIGluZGV4IC0gbGluZUluZGV4ICsgMSwgcGFyYW1ldGVycyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIGNoYW5nZXMgdG8gdGhlIGBldmVudHNgIGJ1ZmZlciBtdXN0IGJlIGNvcGllZCBiYWNrIGludG8gdGhlIGV2ZW50c0FycmF5XG4gIHNwbGljZShldmVudHNBcnJheSwgMCwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLCBldmVudHMuc2xpY2UoMCkpO1xuICByZXR1cm4gIW1vcmU7XG59XG5cbi8qKlxuICogVG9rZW5pemUgZW1iZWRkZWQgdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7U3BsaWNlQnVmZmVyPEV2ZW50Pn0gZXZlbnRzXG4gKiAgIEV2ZW50cy5cbiAqIEBwYXJhbSB7bnVtYmVyfSBldmVudEluZGV4XG4gKiAgIEluZGV4LlxuICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIG51bWJlcj59XG4gKiAgIEdhcHMuXG4gKi9cbmZ1bmN0aW9uIHN1YmNvbnRlbnQoZXZlbnRzLCBldmVudEluZGV4KSB7XG4gIGNvbnN0IHRva2VuID0gZXZlbnRzLmdldChldmVudEluZGV4KVsxXTtcbiAgY29uc3QgY29udGV4dCA9IGV2ZW50cy5nZXQoZXZlbnRJbmRleClbMl07XG4gIGxldCBzdGFydFBvc2l0aW9uID0gZXZlbnRJbmRleCAtIDE7XG4gIC8qKiBAdHlwZSB7QXJyYXk8bnVtYmVyPn0gKi9cbiAgY29uc3Qgc3RhcnRQb3NpdGlvbnMgPSBbXTtcbiAgbGV0IHRva2VuaXplciA9IHRva2VuLl90b2tlbml6ZXI7XG4gIGlmICghdG9rZW5pemVyKSB7XG4gICAgdG9rZW5pemVyID0gY29udGV4dC5wYXJzZXJbdG9rZW4uY29udGVudFR5cGVdKHRva2VuLnN0YXJ0KTtcbiAgICBpZiAodG9rZW4uX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nKSB7XG4gICAgICB0b2tlbml6ZXIuX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgY29uc3QgY2hpbGRFdmVudHMgPSB0b2tlbml6ZXIuZXZlbnRzO1xuICAvKiogQHR5cGUge0FycmF5PFtudW1iZXIsIG51bWJlcl0+fSAqL1xuICBjb25zdCBqdW1wcyA9IFtdO1xuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIG51bWJlcj59ICovXG4gIGNvbnN0IGdhcHMgPSB7fTtcbiAgLyoqIEB0eXBlIHtBcnJheTxDaHVuaz59ICovXG4gIGxldCBzdHJlYW07XG4gIC8qKiBAdHlwZSB7VG9rZW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBwcmV2aW91cztcbiAgbGV0IGluZGV4ID0gLTE7XG4gIC8qKiBAdHlwZSB7VG9rZW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBjdXJyZW50ID0gdG9rZW47XG4gIGxldCBhZGp1c3QgPSAwO1xuICBsZXQgc3RhcnQgPSAwO1xuICBjb25zdCBicmVha3MgPSBbc3RhcnRdO1xuXG4gIC8vIExvb3AgZm9yd2FyZCB0aHJvdWdoIHRoZSBsaW5rZWQgdG9rZW5zIHRvIHBhc3MgdGhlbSBpbiBvcmRlciB0byB0aGVcbiAgLy8gc3VidG9rZW5pemVyLlxuICB3aGlsZSAoY3VycmVudCkge1xuICAgIC8vIEZpbmQgdGhlIHBvc2l0aW9uIG9mIHRoZSBldmVudCBmb3IgdGhpcyB0b2tlbi5cbiAgICB3aGlsZSAoZXZlbnRzLmdldCgrK3N0YXJ0UG9zaXRpb24pWzFdICE9PSBjdXJyZW50KSB7XG4gICAgICAvLyBFbXB0eS5cbiAgICB9XG4gICAgc3RhcnRQb3NpdGlvbnMucHVzaChzdGFydFBvc2l0aW9uKTtcbiAgICBpZiAoIWN1cnJlbnQuX3Rva2VuaXplcikge1xuICAgICAgc3RyZWFtID0gY29udGV4dC5zbGljZVN0cmVhbShjdXJyZW50KTtcbiAgICAgIGlmICghY3VycmVudC5uZXh0KSB7XG4gICAgICAgIHN0cmVhbS5wdXNoKG51bGwpO1xuICAgICAgfVxuICAgICAgaWYgKHByZXZpb3VzKSB7XG4gICAgICAgIHRva2VuaXplci5kZWZpbmVTa2lwKGN1cnJlbnQuc3RhcnQpO1xuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnQuX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtKSB7XG4gICAgICAgIHRva2VuaXplci5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRva2VuaXplci53cml0ZShzdHJlYW0pO1xuICAgICAgaWYgKGN1cnJlbnQuX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtKSB7XG4gICAgICAgIHRva2VuaXplci5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVucmF2ZWwgdGhlIG5leHQgdG9rZW4uXG4gICAgcHJldmlvdXMgPSBjdXJyZW50O1xuICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHQ7XG4gIH1cblxuICAvLyBOb3csIGxvb3AgYmFjayB0aHJvdWdoIGFsbCBldmVudHMgKGFuZCBsaW5rZWQgdG9rZW5zKSwgdG8gZmlndXJlIG91dCB3aGljaFxuICAvLyBwYXJ0cyBiZWxvbmcgd2hlcmUuXG4gIGN1cnJlbnQgPSB0b2tlbjtcbiAgd2hpbGUgKCsraW5kZXggPCBjaGlsZEV2ZW50cy5sZW5ndGgpIHtcbiAgICBpZiAoXG4gICAgLy8gRmluZCBhIHZvaWQgdG9rZW4gdGhhdCBpbmNsdWRlcyBhIGJyZWFrLlxuICAgIGNoaWxkRXZlbnRzW2luZGV4XVswXSA9PT0gJ2V4aXQnICYmIGNoaWxkRXZlbnRzW2luZGV4IC0gMV1bMF0gPT09ICdlbnRlcicgJiYgY2hpbGRFdmVudHNbaW5kZXhdWzFdLnR5cGUgPT09IGNoaWxkRXZlbnRzW2luZGV4IC0gMV1bMV0udHlwZSAmJiBjaGlsZEV2ZW50c1tpbmRleF1bMV0uc3RhcnQubGluZSAhPT0gY2hpbGRFdmVudHNbaW5kZXhdWzFdLmVuZC5saW5lKSB7XG4gICAgICBzdGFydCA9IGluZGV4ICsgMTtcbiAgICAgIGJyZWFrcy5wdXNoKHN0YXJ0KTtcbiAgICAgIC8vIEhlbHAgR0MuXG4gICAgICBjdXJyZW50Ll90b2tlbml6ZXIgPSB1bmRlZmluZWQ7XG4gICAgICBjdXJyZW50LnByZXZpb3VzID0gdW5kZWZpbmVkO1xuICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dDtcbiAgICB9XG4gIH1cblxuICAvLyBIZWxwIEdDLlxuICB0b2tlbml6ZXIuZXZlbnRzID0gW107XG5cbiAgLy8gSWYgdGhlcmVcdTIwMTlzIG9uZSBtb3JlIHRva2VuICh3aGljaCBpcyB0aGUgY2FzZXMgZm9yIGxpbmVzIHRoYXQgZW5kIGluIGFuXG4gIC8vIEVPRiksIHRoYXRcdTIwMTlzIHBlcmZlY3Q6IHRoZSBsYXN0IHBvaW50IHdlIGZvdW5kIHN0YXJ0cyBpdC5cbiAgLy8gSWYgdGhlcmUgaXNuXHUyMDE5dCB0aGVuIG1ha2Ugc3VyZSBhbnkgcmVtYWluaW5nIGNvbnRlbnQgaXMgYWRkZWQgdG8gaXQuXG4gIGlmIChjdXJyZW50KSB7XG4gICAgLy8gSGVscCBHQy5cbiAgICBjdXJyZW50Ll90b2tlbml6ZXIgPSB1bmRlZmluZWQ7XG4gICAgY3VycmVudC5wcmV2aW91cyA9IHVuZGVmaW5lZDtcbiAgfSBlbHNlIHtcbiAgICBicmVha3MucG9wKCk7XG4gIH1cblxuICAvLyBOb3cgc3BsaWNlIHRoZSBldmVudHMgZnJvbSB0aGUgc3VidG9rZW5pemVyIGludG8gdGhlIGN1cnJlbnQgZXZlbnRzLFxuICAvLyBtb3ZpbmcgYmFjayB0byBmcm9udCBzbyB0aGF0IHNwbGljZSBpbmRpY2VzIGFyZW5cdTIwMTl0IGFmZmVjdGVkLlxuICBpbmRleCA9IGJyZWFrcy5sZW5ndGg7XG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgY29uc3Qgc2xpY2UgPSBjaGlsZEV2ZW50cy5zbGljZShicmVha3NbaW5kZXhdLCBicmVha3NbaW5kZXggKyAxXSk7XG4gICAgY29uc3Qgc3RhcnQgPSBzdGFydFBvc2l0aW9ucy5wb3AoKTtcbiAgICBqdW1wcy5wdXNoKFtzdGFydCwgc3RhcnQgKyBzbGljZS5sZW5ndGggLSAxXSk7XG4gICAgZXZlbnRzLnNwbGljZShzdGFydCwgMiwgc2xpY2UpO1xuICB9XG4gIGp1bXBzLnJldmVyc2UoKTtcbiAgaW5kZXggPSAtMTtcbiAgd2hpbGUgKCsraW5kZXggPCBqdW1wcy5sZW5ndGgpIHtcbiAgICBnYXBzW2FkanVzdCArIGp1bXBzW2luZGV4XVswXV0gPSBhZGp1c3QgKyBqdW1wc1tpbmRleF1bMV07XG4gICAgYWRqdXN0ICs9IGp1bXBzW2luZGV4XVsxXSAtIGp1bXBzW2luZGV4XVswXSAtIDE7XG4gIH1cbiAgcmV0dXJuIGdhcHM7XG59IiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIENvbnN0cnVjdCxcbiAqICAgUmVzb2x2ZXIsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHQsXG4gKiAgIFRva2VuaXplcixcbiAqICAgVG9rZW5cbiAqIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuaW1wb3J0IHsgZmFjdG9yeVNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnO1xuaW1wb3J0IHsgbWFya2Rvd25MaW5lRW5kaW5nIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbmltcG9ydCB7IHN1YnRva2VuaXplIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3VidG9rZW5pemUnO1xuLyoqXG4gKiBObyBuYW1lIGJlY2F1c2UgaXQgbXVzdCBub3QgYmUgdHVybmVkIG9mZi5cbiAqIEB0eXBlIHtDb25zdHJ1Y3R9XG4gKi9cbmV4cG9ydCBjb25zdCBjb250ZW50ID0ge1xuICByZXNvbHZlOiByZXNvbHZlQ29udGVudCxcbiAgdG9rZW5pemU6IHRva2VuaXplQ29udGVudFxufTtcblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5jb25zdCBjb250aW51YXRpb25Db25zdHJ1Y3QgPSB7XG4gIHBhcnRpYWw6IHRydWUsXG4gIHRva2VuaXplOiB0b2tlbml6ZUNvbnRpbnVhdGlvblxufTtcblxuLyoqXG4gKiBDb250ZW50IGlzIHRyYW5zcGFyZW50OiBpdFx1MjAxOXMgcGFyc2VkIHJpZ2h0IG5vdy4gVGhhdCB3YXksIGRlZmluaXRpb25zIGFyZSBhbHNvXG4gKiBwYXJzZWQgcmlnaHQgbm93OiBiZWZvcmUgdGV4dCBpbiBwYXJhZ3JhcGhzIChzcGVjaWZpY2FsbHksIG1lZGlhKSBhcmUgcGFyc2VkLlxuICpcbiAqIEB0eXBlIHtSZXNvbHZlcn1cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUNvbnRlbnQoZXZlbnRzKSB7XG4gIHN1YnRva2VuaXplKGV2ZW50cyk7XG4gIHJldHVybiBldmVudHM7XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqICAgQ29udGV4dC5cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQ29udGVudChlZmZlY3RzLCBvaykge1xuICAvKiogQHR5cGUge1Rva2VuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgcHJldmlvdXM7XG4gIHJldHVybiBjaHVua1N0YXJ0O1xuXG4gIC8qKlxuICAgKiBCZWZvcmUgYSBjb250ZW50IGNodW5rLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYWJjXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjaHVua1N0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKFwiY29udGVudFwiKTtcbiAgICBwcmV2aW91cyA9IGVmZmVjdHMuZW50ZXIoXCJjaHVua0NvbnRlbnRcIiwge1xuICAgICAgY29udGVudFR5cGU6IFwiY29udGVudFwiXG4gICAgfSk7XG4gICAgcmV0dXJuIGNodW5rSW5zaWRlKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGEgY29udGVudCBjaHVuay5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGFiY1xuICAgKiAgICAgXl5eXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjaHVua0luc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBjb250ZW50RW5kKGNvZGUpO1xuICAgIH1cblxuICAgIC8vIFRvIGRvOiBpbiBgbWFya2Rvd24tcnNgLCBlYWNoIGxpbmUgaXMgcGFyc2VkIG9uIGl0cyBvd24sIGFuZCBldmVyeXRoaW5nXG4gICAgLy8gaXMgc3RpdGNoZWQgdG9nZXRoZXIgcmVzb2x2aW5nLlxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBlZmZlY3RzLmNoZWNrKGNvbnRpbnVhdGlvbkNvbnN0cnVjdCwgY29udGVudENvbnRpbnVlLCBjb250ZW50RW5kKShjb2RlKTtcbiAgICB9XG5cbiAgICAvLyBEYXRhLlxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICByZXR1cm4gY2h1bmtJbnNpZGU7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGVudEVuZChjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KFwiY2h1bmtDb250ZW50XCIpO1xuICAgIGVmZmVjdHMuZXhpdChcImNvbnRlbnRcIik7XG4gICAgcmV0dXJuIG9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRlbnRDb250aW51ZShjb2RlKSB7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIGVmZmVjdHMuZXhpdChcImNodW5rQ29udGVudFwiKTtcbiAgICBwcmV2aW91cy5uZXh0ID0gZWZmZWN0cy5lbnRlcihcImNodW5rQ29udGVudFwiLCB7XG4gICAgICBjb250ZW50VHlwZTogXCJjb250ZW50XCIsXG4gICAgICBwcmV2aW91c1xuICAgIH0pO1xuICAgIHByZXZpb3VzID0gcHJldmlvdXMubmV4dDtcbiAgICByZXR1cm4gY2h1bmtJbnNpZGU7XG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVDb250aW51YXRpb24oZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpcztcbiAgcmV0dXJuIHN0YXJ0TG9va2FoZWFkO1xuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydExvb2thaGVhZChjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KFwiY2h1bmtDb250ZW50XCIpO1xuICAgIGVmZmVjdHMuZW50ZXIoXCJsaW5lRW5kaW5nXCIpO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICBlZmZlY3RzLmV4aXQoXCJsaW5lRW5kaW5nXCIpO1xuICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgcHJlZml4ZWQsIFwibGluZVByZWZpeFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBwcmVmaXhlZChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cblxuICAgIC8vIEFsd2F5cyBwb3B1bGF0ZWQgYnkgZGVmYXVsdHMuXG5cbiAgICBjb25zdCB0YWlsID0gc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV07XG4gICAgaWYgKCFzZWxmLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygnY29kZUluZGVudGVkJykgJiYgdGFpbCAmJiB0YWlsWzFdLnR5cGUgPT09IFwibGluZVByZWZpeFwiICYmIHRhaWxbMl0uc2xpY2VTZXJpYWxpemUodGFpbFsxXSwgdHJ1ZSkubGVuZ3RoID49IDQpIHtcbiAgICAgIHJldHVybiBvayhjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIGVmZmVjdHMuaW50ZXJydXB0KHNlbGYucGFyc2VyLmNvbnN0cnVjdHMuZmxvdywgbm9rLCBvaykoY29kZSk7XG4gIH1cbn0iLCAiLyoqXG4gKiBAaW1wb3J0IHtFZmZlY3RzLCBTdGF0ZSwgVG9rZW5UeXBlfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBhc2NpaUNvbnRyb2wsIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UsIG1hcmtkb3duTGluZUVuZGluZyB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcic7XG4vKipcbiAqIFBhcnNlIGRlc3RpbmF0aW9ucy5cbiAqXG4gKiAjIyMjIyMgRXhhbXBsZXNcbiAqXG4gKiBgYGBtYXJrZG93blxuICogPGE+XG4gKiA8YVxcPmI+XG4gKiA8YSBiPlxuICogPGEpPlxuICogYVxuICogYVxcKWJcbiAqIGEoYiljXG4gKiBhKGIpXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge0VmZmVjdHN9IGVmZmVjdHNcbiAqICAgQ29udGV4dC5cbiAqIEBwYXJhbSB7U3RhdGV9IG9rXG4gKiAgIFN0YXRlIHN3aXRjaGVkIHRvIHdoZW4gc3VjY2Vzc2Z1bC5cbiAqIEBwYXJhbSB7U3RhdGV9IG5va1xuICogICBTdGF0ZSBzd2l0Y2hlZCB0byB3aGVuIHVuc3VjY2Vzc2Z1bC5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSB0eXBlXG4gKiAgIFR5cGUgZm9yIHdob2xlIChgPGE+YCBvciBgYmApLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IGxpdGVyYWxUeXBlXG4gKiAgIFR5cGUgd2hlbiBlbmNsb3NlZCAoYDxhPmApLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IGxpdGVyYWxNYXJrZXJUeXBlXG4gKiAgIFR5cGUgZm9yIGVuY2xvc2luZyAoYDxgIGFuZCBgPmApLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IHJhd1R5cGVcbiAqICAgVHlwZSB3aGVuIG5vdCBlbmNsb3NlZCAoYGJgKS5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSBzdHJpbmdUeXBlXG4gKiAgIFR5cGUgZm9yIHRoZSB2YWx1ZSAoYGFgIG9yIGBiYCkuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gW21heD1JbmZpbml0eV1cbiAqICAgRGVwdGggb2YgbmVzdGVkIHBhcmVucyAoaW5jbHVzaXZlKS5cbiAqIEByZXR1cm5zIHtTdGF0ZX1cbiAqICAgU3RhcnQgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmYWN0b3J5RGVzdGluYXRpb24oZWZmZWN0cywgb2ssIG5vaywgdHlwZSwgbGl0ZXJhbFR5cGUsIGxpdGVyYWxNYXJrZXJUeXBlLCByYXdUeXBlLCBzdHJpbmdUeXBlLCBtYXgpIHtcbiAgY29uc3QgbGltaXQgPSBtYXggfHwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICBsZXQgYmFsYW5jZSA9IDA7XG4gIHJldHVybiBzdGFydDtcblxuICAvKipcbiAgICogU3RhcnQgb2YgZGVzdGluYXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YWE+XG4gICAqICAgICBeXG4gICAqID4gfCBhYVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA2MCkge1xuICAgICAgZWZmZWN0cy5lbnRlcih0eXBlKTtcbiAgICAgIGVmZmVjdHMuZW50ZXIobGl0ZXJhbFR5cGUpO1xuICAgICAgZWZmZWN0cy5lbnRlcihsaXRlcmFsTWFya2VyVHlwZSk7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQobGl0ZXJhbE1hcmtlclR5cGUpO1xuICAgICAgcmV0dXJuIGVuY2xvc2VkQmVmb3JlO1xuICAgIH1cblxuICAgIC8vIEFTQ0lJIGNvbnRyb2wsIHNwYWNlLCBjbG9zaW5nIHBhcmVuLlxuICAgIGlmIChjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDMyIHx8IGNvZGUgPT09IDQxIHx8IGFzY2lpQ29udHJvbChjb2RlKSkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG4gICAgZWZmZWN0cy5lbnRlcih0eXBlKTtcbiAgICBlZmZlY3RzLmVudGVyKHJhd1R5cGUpO1xuICAgIGVmZmVjdHMuZW50ZXIoc3RyaW5nVHlwZSk7XG4gICAgZWZmZWN0cy5lbnRlcihcImNodW5rU3RyaW5nXCIsIHtcbiAgICAgIGNvbnRlbnRUeXBlOiBcInN0cmluZ1wiXG4gICAgfSk7XG4gICAgcmV0dXJuIHJhdyhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPGAsIGF0IGFuIGVuY2xvc2VkIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPGFhPlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVuY2xvc2VkQmVmb3JlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjIpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIobGl0ZXJhbE1hcmtlclR5cGUpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KGxpdGVyYWxNYXJrZXJUeXBlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChsaXRlcmFsVHlwZSk7XG4gICAgICBlZmZlY3RzLmV4aXQodHlwZSk7XG4gICAgICByZXR1cm4gb2s7XG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoc3RyaW5nVHlwZSk7XG4gICAgZWZmZWN0cy5lbnRlcihcImNodW5rU3RyaW5nXCIsIHtcbiAgICAgIGNvbnRlbnRUeXBlOiBcInN0cmluZ1wiXG4gICAgfSk7XG4gICAgcmV0dXJuIGVuY2xvc2VkKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGVuY2xvc2VkIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPGFhPlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVuY2xvc2VkKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjIpIHtcbiAgICAgIGVmZmVjdHMuZXhpdChcImNodW5rU3RyaW5nXCIpO1xuICAgICAgZWZmZWN0cy5leGl0KHN0cmluZ1R5cGUpO1xuICAgICAgcmV0dXJuIGVuY2xvc2VkQmVmb3JlKGNvZGUpO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBjb2RlID09PSA2MCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICByZXR1cm4gY29kZSA9PT0gOTIgPyBlbmNsb3NlZEVzY2FwZSA6IGVuY2xvc2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGBcXGAsIGF0IGEgc3BlY2lhbCBjaGFyYWN0ZXIuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YVxcKmE+XG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBlbmNsb3NlZEVzY2FwZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDYwIHx8IGNvZGUgPT09IDYyIHx8IGNvZGUgPT09IDkyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gZW5jbG9zZWQ7XG4gICAgfVxuICAgIHJldHVybiBlbmNsb3NlZChjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByYXcgZGVzdGluYXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhYVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmF3KGNvZGUpIHtcbiAgICBpZiAoIWJhbGFuY2UgJiYgKGNvZGUgPT09IG51bGwgfHwgY29kZSA9PT0gNDEgfHwgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdChcImNodW5rU3RyaW5nXCIpO1xuICAgICAgZWZmZWN0cy5leGl0KHN0cmluZ1R5cGUpO1xuICAgICAgZWZmZWN0cy5leGl0KHJhd1R5cGUpO1xuICAgICAgZWZmZWN0cy5leGl0KHR5cGUpO1xuICAgICAgcmV0dXJuIG9rKGNvZGUpO1xuICAgIH1cbiAgICBpZiAoYmFsYW5jZSA8IGxpbWl0ICYmIGNvZGUgPT09IDQwKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBiYWxhbmNlKys7XG4gICAgICByZXR1cm4gcmF3O1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNDEpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGJhbGFuY2UtLTtcbiAgICAgIHJldHVybiByYXc7XG4gICAgfVxuXG4gICAgLy8gQVNDSUkgY29udHJvbCAoYnV0ICpub3QqIGBcXDBgKSBhbmQgc3BhY2UgYW5kIGAoYC5cbiAgICAvLyBOb3RlOiBpbiBgbWFya2Rvd24tcnNgLCBgXFwwYCBleGlzdHMgaW4gY29kZXMsIGluIGBtaWNyb21hcmstanNgIGl0XG4gICAgLy8gZG9lc25cdTIwMTl0LlxuICAgIGlmIChjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDMyIHx8IGNvZGUgPT09IDQwIHx8IGFzY2lpQ29udHJvbChjb2RlKSkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIHJldHVybiBjb2RlID09PSA5MiA/IHJhd0VzY2FwZSA6IHJhdztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgXFxgLCBhdCBzcGVjaWFsIGNoYXJhY3Rlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGFcXCphXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHJhd0VzY2FwZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQwIHx8IGNvZGUgPT09IDQxIHx8IGNvZGUgPT09IDkyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gcmF3O1xuICAgIH1cbiAgICByZXR1cm4gcmF3KGNvZGUpO1xuICB9XG59IiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIEVmZmVjdHMsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHQsXG4gKiAgIFRva2VuVHlwZVxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBtYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duU3BhY2UgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuLyoqXG4gKiBQYXJzZSBsYWJlbHMuXG4gKlxuICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGxhYmVscyBpbiBtYXJrZG93biBhcmUgY2FwcGVkIGF0IDk5OSBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcuXG4gKlxuICogIyMjIyMjIEV4YW1wbGVzXG4gKlxuICogYGBgbWFya2Rvd25cbiAqIFthXVxuICogW2FcbiAqIGJdXG4gKiBbYVxcXWJdXG4gKiBgYGBcbiAqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBUb2tlbml6ZSBjb250ZXh0LlxuICogQHBhcmFtIHtFZmZlY3RzfSBlZmZlY3RzXG4gKiAgIENvbnRleHQuXG4gKiBAcGFyYW0ge1N0YXRlfSBva1xuICogICBTdGF0ZSBzd2l0Y2hlZCB0byB3aGVuIHN1Y2Nlc3NmdWwuXG4gKiBAcGFyYW0ge1N0YXRlfSBub2tcbiAqICAgU3RhdGUgc3dpdGNoZWQgdG8gd2hlbiB1bnN1Y2Nlc3NmdWwuXG4gKiBAcGFyYW0ge1Rva2VuVHlwZX0gdHlwZVxuICogICBUeXBlIG9mIHRoZSB3aG9sZSBsYWJlbCAoYFthXWApLlxuICogQHBhcmFtIHtUb2tlblR5cGV9IG1hcmtlclR5cGVcbiAqICAgVHlwZSBmb3IgdGhlIG1hcmtlcnMgKGBbYCBhbmQgYF1gKS5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSBzdHJpbmdUeXBlXG4gKiAgIFR5cGUgZm9yIHRoZSBpZGVudGlmaWVyIChgYWApLlxuICogQHJldHVybnMge1N0YXRlfVxuICogICBTdGFydCBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZhY3RvcnlMYWJlbChlZmZlY3RzLCBvaywgbm9rLCB0eXBlLCBtYXJrZXJUeXBlLCBzdHJpbmdUeXBlKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICBsZXQgc2l6ZSA9IDA7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IHNlZW47XG4gIHJldHVybiBzdGFydDtcblxuICAvKipcbiAgICogU3RhcnQgb2YgbGFiZWwuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV1cbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKHR5cGUpO1xuICAgIGVmZmVjdHMuZW50ZXIobWFya2VyVHlwZSk7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIGVmZmVjdHMuZXhpdChtYXJrZXJUeXBlKTtcbiAgICBlZmZlY3RzLmVudGVyKHN0cmluZ1R5cGUpO1xuICAgIHJldHVybiBhdEJyZWFrO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLCBhdCBzb21ldGhpbmcsIGJlZm9yZSBzb21ldGhpbmcgZWxzZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXVxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGF0QnJlYWsoY29kZSkge1xuICAgIGlmIChzaXplID4gOTk5IHx8IGNvZGUgPT09IG51bGwgfHwgY29kZSA9PT0gOTEgfHwgY29kZSA9PT0gOTMgJiYgIXNlZW4gfHxcbiAgICAvLyBUbyBkbzogcmVtb3ZlIGluIHRoZSBmdXR1cmUgb25jZSB3ZVx1MjAxOXZlIHN3aXRjaGVkIGZyb21cbiAgICAvLyBgbWljcm9tYXJrLWV4dGVuc2lvbi1mb290bm90ZWAgdG8gYG1pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWZvb3Rub3RlYCxcbiAgICAvLyB3aGljaCBkb2Vzblx1MjAxOXQgbmVlZCB0aGlzLlxuICAgIC8vIEhpZGRlbiBmb290bm90ZXMgaG9vay5cbiAgICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gICAgY29kZSA9PT0gOTQgJiYgIXNpemUgJiYgJ19oaWRkZW5Gb290bm90ZVN1cHBvcnQnIGluIHNlbGYucGFyc2VyLmNvbnN0cnVjdHMpIHtcbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSA5Mykge1xuICAgICAgZWZmZWN0cy5leGl0KHN0cmluZ1R5cGUpO1xuICAgICAgZWZmZWN0cy5lbnRlcihtYXJrZXJUeXBlKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChtYXJrZXJUeXBlKTtcbiAgICAgIGVmZmVjdHMuZXhpdCh0eXBlKTtcbiAgICAgIHJldHVybiBvaztcbiAgICB9XG5cbiAgICAvLyBUbyBkbzogaW5kZW50PyBMaW5rIGNodW5rcyBhbmQgRU9McyB0b2dldGhlcj9cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKFwibGluZUVuZGluZ1wiKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImxpbmVFbmRpbmdcIik7XG4gICAgICByZXR1cm4gYXRCcmVhaztcbiAgICB9XG4gICAgZWZmZWN0cy5lbnRlcihcImNodW5rU3RyaW5nXCIsIHtcbiAgICAgIGNvbnRlbnRUeXBlOiBcInN0cmluZ1wiXG4gICAgfSk7XG4gICAgcmV0dXJuIGxhYmVsSW5zaWRlKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLCBpbiB0ZXh0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdXG4gICAqICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGFiZWxJbnNpZGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDkxIHx8IGNvZGUgPT09IDkzIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSB8fCBzaXplKysgPiA5OTkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdChcImNodW5rU3RyaW5nXCIpO1xuICAgICAgcmV0dXJuIGF0QnJlYWsoY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICBpZiAoIXNlZW4pIHNlZW4gPSAhbWFya2Rvd25TcGFjZShjb2RlKTtcbiAgICByZXR1cm4gY29kZSA9PT0gOTIgPyBsYWJlbEVzY2FwZSA6IGxhYmVsSW5zaWRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGBcXGAsIGF0IGEgc3BlY2lhbCBjaGFyYWN0ZXIuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYVxcKmFdXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBsYWJlbEVzY2FwZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDkxIHx8IGNvZGUgPT09IDkyIHx8IGNvZGUgPT09IDkzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBzaXplKys7XG4gICAgICByZXR1cm4gbGFiZWxJbnNpZGU7XG4gICAgfVxuICAgIHJldHVybiBsYWJlbEluc2lkZShjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb2RlLFxuICogICBFZmZlY3RzLFxuICogICBTdGF0ZSxcbiAqICAgVG9rZW5UeXBlXG4gKiB9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IGZhY3RvcnlTcGFjZSB9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJztcbmltcG9ydCB7IG1hcmtkb3duTGluZUVuZGluZyB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcic7XG4vKipcbiAqIFBhcnNlIHRpdGxlcy5cbiAqXG4gKiAjIyMjIyMgRXhhbXBsZXNcbiAqXG4gKiBgYGBtYXJrZG93blxuICogXCJhXCJcbiAqICdiJ1xuICogKGMpXG4gKiBcImFcbiAqIGJcIlxuICogJ2FcbiAqICAgICBiJ1xuICogKGFcXCliKVxuICogYGBgXG4gKlxuICogQHBhcmFtIHtFZmZlY3RzfSBlZmZlY3RzXG4gKiAgIENvbnRleHQuXG4gKiBAcGFyYW0ge1N0YXRlfSBva1xuICogICBTdGF0ZSBzd2l0Y2hlZCB0byB3aGVuIHN1Y2Nlc3NmdWwuXG4gKiBAcGFyYW0ge1N0YXRlfSBub2tcbiAqICAgU3RhdGUgc3dpdGNoZWQgdG8gd2hlbiB1bnN1Y2Nlc3NmdWwuXG4gKiBAcGFyYW0ge1Rva2VuVHlwZX0gdHlwZVxuICogICBUeXBlIG9mIHRoZSB3aG9sZSB0aXRsZSAoYFwiYVwiYCwgYCdiJ2AsIGAoYylgKS5cbiAqIEBwYXJhbSB7VG9rZW5UeXBlfSBtYXJrZXJUeXBlXG4gKiAgIFR5cGUgZm9yIHRoZSBtYXJrZXJzIChgXCJgLCBgJ2AsIGAoYCwgYW5kIGApYCkuXG4gKiBAcGFyYW0ge1Rva2VuVHlwZX0gc3RyaW5nVHlwZVxuICogICBUeXBlIGZvciB0aGUgdmFsdWUgKGBhYCkuXG4gKiBAcmV0dXJucyB7U3RhdGV9XG4gKiAgIFN0YXJ0IHN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmFjdG9yeVRpdGxlKGVmZmVjdHMsIG9rLCBub2ssIHR5cGUsIG1hcmtlclR5cGUsIHN0cmluZ1R5cGUpIHtcbiAgLyoqIEB0eXBlIHtOb25OdWxsYWJsZTxDb2RlPn0gKi9cbiAgbGV0IG1hcmtlcjtcbiAgcmV0dXJuIHN0YXJ0O1xuXG4gIC8qKlxuICAgKiBTdGFydCBvZiB0aXRsZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFwiYVwiXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDM0IHx8IGNvZGUgPT09IDM5IHx8IGNvZGUgPT09IDQwKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKHR5cGUpO1xuICAgICAgZWZmZWN0cy5lbnRlcihtYXJrZXJUeXBlKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChtYXJrZXJUeXBlKTtcbiAgICAgIG1hcmtlciA9IGNvZGUgPT09IDQwID8gNDEgOiBjb2RlO1xuICAgICAgcmV0dXJuIGJlZ2luO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIG9wZW5pbmcgbWFya2VyLlxuICAgKlxuICAgKiBUaGlzIGlzIGFsc28gdXNlZCBhdCB0aGUgY2xvc2luZyBtYXJrZXIuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBcImFcIlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZ2luKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKG1hcmtlclR5cGUpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KG1hcmtlclR5cGUpO1xuICAgICAgZWZmZWN0cy5leGl0KHR5cGUpO1xuICAgICAgcmV0dXJuIG9rO1xuICAgIH1cbiAgICBlZmZlY3RzLmVudGVyKHN0cmluZ1R5cGUpO1xuICAgIHJldHVybiBhdEJyZWFrKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0IHNvbWV0aGluZywgYmVmb3JlIHNvbWV0aGluZyBlbHNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgXCJhXCJcbiAgICogICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhdEJyZWFrKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoc3RyaW5nVHlwZSk7XG4gICAgICByZXR1cm4gYmVnaW4obWFya2VyKTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuXG4gICAgLy8gTm90ZTogYmxhbmsgbGluZXMgY2FuXHUyMDE5dCBleGlzdCBpbiBjb250ZW50LlxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIC8vIFRvIGRvOiB1c2UgYHNwYWNlX29yX3RhYl9lb2xfd2l0aF9vcHRpb25zYCwgY29ubmVjdC5cbiAgICAgIGVmZmVjdHMuZW50ZXIoXCJsaW5lRW5kaW5nXCIpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KFwibGluZUVuZGluZ1wiKTtcbiAgICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgYXRCcmVhaywgXCJsaW5lUHJlZml4XCIpO1xuICAgIH1cbiAgICBlZmZlY3RzLmVudGVyKFwiY2h1bmtTdHJpbmdcIiwge1xuICAgICAgY29udGVudFR5cGU6IFwic3RyaW5nXCJcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zaWRlKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG1hcmtlciB8fCBjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KFwiY2h1bmtTdHJpbmdcIik7XG4gICAgICByZXR1cm4gYXRCcmVhayhjb2RlKTtcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIHJldHVybiBjb2RlID09PSA5MiA/IGVzY2FwZSA6IGluc2lkZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgXFxgLCBhdCBhIHNwZWNpYWwgY2hhcmFjdGVyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgXCJhXFwqYlwiXG4gICAqICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZXNjYXBlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyIHx8IGNvZGUgPT09IDkyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gaW5zaWRlO1xuICAgIH1cbiAgICByZXR1cm4gaW5zaWRlKGNvZGUpO1xuICB9XG59IiwgIi8qKlxuICogQGltcG9ydCB7RWZmZWN0cywgU3RhdGV9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IGZhY3RvcnlTcGFjZSB9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJztcbmltcG9ydCB7IG1hcmtkb3duTGluZUVuZGluZywgbWFya2Rvd25TcGFjZSB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcic7XG4vKipcbiAqIFBhcnNlIHNwYWNlcyBhbmQgdGFicy5cbiAqXG4gKiBUaGVyZSBpcyBubyBgbm9rYCBwYXJhbWV0ZXI6XG4gKlxuICogKiAgIGxpbmUgZW5kaW5ncyBvciBzcGFjZXMgaW4gbWFya2Rvd24gYXJlIG9mdGVuIG9wdGlvbmFsLCBpbiB3aGljaCBjYXNlIHRoaXNcbiAqICAgICBmYWN0b3J5IGNhbiBiZSB1c2VkIGFuZCBgb2tgIHdpbGwgYmUgc3dpdGNoZWQgdG8gd2hldGhlciBzcGFjZXMgd2VyZSBmb3VuZFxuICogICAgIG9yIG5vdFxuICogKiAgIG9uZSBsaW5lIGVuZGluZyBvciBzcGFjZSBjYW4gYmUgZGV0ZWN0ZWQgd2l0aFxuICogICAgIGBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpYCByaWdodCBiZWZvcmUgdXNpbmcgYGZhY3RvcnlXaGl0ZXNwYWNlYFxuICpcbiAqIEBwYXJhbSB7RWZmZWN0c30gZWZmZWN0c1xuICogICBDb250ZXh0LlxuICogQHBhcmFtIHtTdGF0ZX0gb2tcbiAqICAgU3RhdGUgc3dpdGNoZWQgdG8gd2hlbiBzdWNjZXNzZnVsLlxuICogQHJldHVybnMge1N0YXRlfVxuICogICBTdGFydCBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZhY3RvcnlXaGl0ZXNwYWNlKGVmZmVjdHMsIG9rKSB7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IHNlZW47XG4gIHJldHVybiBzdGFydDtcblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcihcImxpbmVFbmRpbmdcIik7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJsaW5lRW5kaW5nXCIpO1xuICAgICAgc2VlbiA9IHRydWU7XG4gICAgICByZXR1cm4gc3RhcnQ7XG4gICAgfVxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIHN0YXJ0LCBzZWVuID8gXCJsaW5lUHJlZml4XCIgOiBcImxpbmVTdWZmaXhcIikoY29kZSk7XG4gICAgfVxuICAgIHJldHVybiBvayhjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb25zdHJ1Y3QsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHQsXG4gKiAgIFRva2VuaXplclxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBmYWN0b3J5RGVzdGluYXRpb24gfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1kZXN0aW5hdGlvbic7XG5pbXBvcnQgeyBmYWN0b3J5TGFiZWwgfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1sYWJlbCc7XG5pbXBvcnQgeyBmYWN0b3J5U3BhY2UgfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSc7XG5pbXBvcnQgeyBmYWN0b3J5VGl0bGUgfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS10aXRsZSc7XG5pbXBvcnQgeyBmYWN0b3J5V2hpdGVzcGFjZSB9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXdoaXRlc3BhY2UnO1xuaW1wb3J0IHsgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSwgbWFya2Rvd25MaW5lRW5kaW5nLCBtYXJrZG93blNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbmltcG9ydCB7IG5vcm1hbGl6ZUlkZW50aWZpZXIgfSBmcm9tICdtaWNyb21hcmstdXRpbC1ub3JtYWxpemUtaWRlbnRpZmllcic7XG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBkZWZpbml0aW9uID0ge1xuICBuYW1lOiAnZGVmaW5pdGlvbicsXG4gIHRva2VuaXplOiB0b2tlbml6ZURlZmluaXRpb25cbn07XG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuY29uc3QgdGl0bGVCZWZvcmUgPSB7XG4gIHBhcnRpYWw6IHRydWUsXG4gIHRva2VuaXplOiB0b2tlbml6ZVRpdGxlQmVmb3JlXG59O1xuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZURlZmluaXRpb24oZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpcztcbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBpZGVudGlmaWVyO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIEF0IHN0YXJ0IG9mIGEgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXTogYiBcImNcIlxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIC8vIERvIG5vdCBpbnRlcnJ1cHQgcGFyYWdyYXBocyAoYnV0IGRvIGZvbGxvdyBkZWZpbml0aW9ucykuXG4gICAgLy8gVG8gZG86IGRvIGBpbnRlcnJ1cHRgIHRoZSB3YXkgYG1hcmtkb3duLXJzYCBkb2VzLlxuICAgIC8vIFRvIGRvOiBwYXJzZSB3aGl0ZXNwYWNlIHRoZSB3YXkgYG1hcmtkb3duLXJzYCBkb2VzLlxuICAgIGVmZmVjdHMuZW50ZXIoXCJkZWZpbml0aW9uXCIpO1xuICAgIHJldHVybiBiZWZvcmUoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZSwgYXQgYFtgLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBiZWZvcmUoY29kZSkge1xuICAgIC8vIFRvIGRvOiBwYXJzZSB3aGl0ZXNwYWNlIHRoZSB3YXkgYG1hcmtkb3duLXJzYCBkb2VzLlxuXG4gICAgcmV0dXJuIGZhY3RvcnlMYWJlbC5jYWxsKHNlbGYsIGVmZmVjdHMsIGxhYmVsQWZ0ZXIsXG4gICAgLy8gTm90ZTogd2UgZG9uXHUyMDE5dCBuZWVkIHRvIHJlc2V0IHRoZSB3YXkgYG1hcmtkb3duLXJzYCBkb2VzLlxuICAgIG5vaywgXCJkZWZpbml0aW9uTGFiZWxcIiwgXCJkZWZpbml0aW9uTGFiZWxNYXJrZXJcIiwgXCJkZWZpbml0aW9uTGFiZWxTdHJpbmdcIikoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgbGFiZWwuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGxhYmVsQWZ0ZXIoY29kZSkge1xuICAgIGlkZW50aWZpZXIgPSBub3JtYWxpemVJZGVudGlmaWVyKHNlbGYuc2xpY2VTZXJpYWxpemUoc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV1bMV0pLnNsaWNlKDEsIC0xKSk7XG4gICAgaWYgKGNvZGUgPT09IDU4KSB7XG4gICAgICBlZmZlY3RzLmVudGVyKFwiZGVmaW5pdGlvbk1hcmtlclwiKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImRlZmluaXRpb25NYXJrZXJcIik7XG4gICAgICByZXR1cm4gbWFya2VyQWZ0ZXI7XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgbWFya2VyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbWFya2VyQWZ0ZXIoY29kZSkge1xuICAgIC8vIE5vdGU6IHdoaXRlc3BhY2UgaXMgb3B0aW9uYWwuXG4gICAgcmV0dXJuIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkgPyBmYWN0b3J5V2hpdGVzcGFjZShlZmZlY3RzLCBkZXN0aW5hdGlvbkJlZm9yZSkoY29kZSkgOiBkZXN0aW5hdGlvbkJlZm9yZShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgZGVzdGluYXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZGVzdGluYXRpb25CZWZvcmUoY29kZSkge1xuICAgIHJldHVybiBmYWN0b3J5RGVzdGluYXRpb24oZWZmZWN0cywgZGVzdGluYXRpb25BZnRlcixcbiAgICAvLyBOb3RlOiB3ZSBkb25cdTIwMTl0IG5lZWQgdG8gcmVzZXQgdGhlIHdheSBgbWFya2Rvd24tcnNgIGRvZXMuXG4gICAgbm9rLCBcImRlZmluaXRpb25EZXN0aW5hdGlvblwiLCBcImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWxcIiwgXCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsTWFya2VyXCIsIFwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uUmF3XCIsIFwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nXCIpKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBkZXN0aW5hdGlvbkFmdGVyKGNvZGUpIHtcbiAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KHRpdGxlQmVmb3JlLCBhZnRlciwgYWZ0ZXIpKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGRlZmluaXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV06IGJcbiAgICogICAgICAgICAgIF5cbiAgICogPiB8IFthXTogYiBcImNcIlxuICAgKiAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICByZXR1cm4gbWFya2Rvd25TcGFjZShjb2RlKSA/IGZhY3RvcnlTcGFjZShlZmZlY3RzLCBhZnRlcldoaXRlc3BhY2UsIFwid2hpdGVzcGFjZVwiKShjb2RlKSA6IGFmdGVyV2hpdGVzcGFjZShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBkZWZpbml0aW9uLCBhZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdOiBiXG4gICAqICAgICAgICAgICBeXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcldoaXRlc3BhY2UoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KFwiZGVmaW5pdGlvblwiKTtcblxuICAgICAgLy8gTm90ZTogd2UgZG9uXHUyMDE5dCBjYXJlIGFib3V0IHVuaXF1ZW5lc3MuXG4gICAgICAvLyBJdFx1MjAxOXMgbGlrZWx5IHRoYXQgdGhhdCBkb2Vzblx1MjAxOXQgaGFwcGVuIHZlcnkgZnJlcXVlbnRseS5cbiAgICAgIC8vIEl0IGlzIG1vcmUgbGlrZWx5IHRoYXQgaXQgd2FzdGVzIHByZWNpb3VzIHRpbWUuXG4gICAgICBzZWxmLnBhcnNlci5kZWZpbmVkLnB1c2goaWRlbnRpZmllcik7XG5cbiAgICAgIC8vIFRvIGRvOiBgbWFya2Rvd24tcnNgIGludGVycnVwdC5cbiAgICAgIC8vIC8vIFlvdVx1MjAxOWQgYmUgaW50ZXJydXB0aW5nLlxuICAgICAgLy8gdG9rZW5pemVyLmludGVycnVwdCA9IHRydWVcbiAgICAgIHJldHVybiBvayhjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVRpdGxlQmVmb3JlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgcmV0dXJuIHRpdGxlQmVmb3JlO1xuXG4gIC8qKlxuICAgKiBBZnRlciBkZXN0aW5hdGlvbiwgYXQgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXTogYlxuICAgKiAgICAgICAgICAgXlxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0aXRsZUJlZm9yZShjb2RlKSB7XG4gICAgcmV0dXJuIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkgPyBmYWN0b3J5V2hpdGVzcGFjZShlZmZlY3RzLCBiZWZvcmVNYXJrZXIpKGNvZGUpIDogbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0IHRpdGxlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgW2FdOiBiXG4gICAqID4gfCBcImNcIlxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYmVmb3JlTWFya2VyKGNvZGUpIHtcbiAgICByZXR1cm4gZmFjdG9yeVRpdGxlKGVmZmVjdHMsIHRpdGxlQWZ0ZXIsIG5vaywgXCJkZWZpbml0aW9uVGl0bGVcIiwgXCJkZWZpbml0aW9uVGl0bGVNYXJrZXJcIiwgXCJkZWZpbml0aW9uVGl0bGVTdHJpbmdcIikoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgdGl0bGUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV06IGIgXCJjXCJcbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0aXRsZUFmdGVyKGNvZGUpIHtcbiAgICByZXR1cm4gbWFya2Rvd25TcGFjZShjb2RlKSA/IGZhY3RvcnlTcGFjZShlZmZlY3RzLCB0aXRsZUFmdGVyT3B0aW9uYWxXaGl0ZXNwYWNlLCBcIndoaXRlc3BhY2VcIikoY29kZSkgOiB0aXRsZUFmdGVyT3B0aW9uYWxXaGl0ZXNwYWNlKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIHRpdGxlLCBhZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdOiBiIFwiY1wiXG4gICAqICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGl0bGVBZnRlck9wdGlvbmFsV2hpdGVzcGFjZShjb2RlKSB7XG4gICAgcmV0dXJuIGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpID8gb2soY29kZSkgOiBub2soY29kZSk7XG4gIH1cbn0iLCAiLyoqXG4gKiBAaW1wb3J0IHtcbiAqICAgQ29uc3RydWN0LFxuICogICBTdGF0ZSxcbiAqICAgVG9rZW5pemVDb250ZXh0LFxuICogICBUb2tlbml6ZXJcbiAqIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuaW1wb3J0IHsgbWFya2Rvd25MaW5lRW5kaW5nIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGhhcmRCcmVha0VzY2FwZSA9IHtcbiAgbmFtZTogJ2hhcmRCcmVha0VzY2FwZScsXG4gIHRva2VuaXplOiB0b2tlbml6ZUhhcmRCcmVha0VzY2FwZVxufTtcblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVIYXJkQnJlYWtFc2NhcGUoZWZmZWN0cywgb2ssIG5vaykge1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGEgaGFyZCBicmVhayAoZXNjYXBlKS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGFcXFxuICAgKiAgICAgIF5cbiAgICogICB8IGJcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKFwiaGFyZEJyZWFrRXNjYXBlXCIpO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICByZXR1cm4gYWZ0ZXI7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYFxcYCwgYXQgZW9sLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYVxcXG4gICAqICAgICAgIF5cbiAgICogICB8IGJcbiAgICogYGBgXG4gICAqXG4gICAqICBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KFwiaGFyZEJyZWFrRXNjYXBlXCIpO1xuICAgICAgcmV0dXJuIG9rKGNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG59IiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIENvbnN0cnVjdCxcbiAqICAgUmVzb2x2ZXIsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHQsXG4gKiAgIFRva2VuaXplcixcbiAqICAgVG9rZW5cbiAqIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuaW1wb3J0IHsgZmFjdG9yeVNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnO1xuaW1wb3J0IHsgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSwgbWFya2Rvd25MaW5lRW5kaW5nLCBtYXJrZG93blNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbmltcG9ydCB7IHNwbGljZSB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNodW5rZWQnO1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgaGVhZGluZ0F0eCA9IHtcbiAgbmFtZTogJ2hlYWRpbmdBdHgnLFxuICByZXNvbHZlOiByZXNvbHZlSGVhZGluZ0F0eCxcbiAgdG9rZW5pemU6IHRva2VuaXplSGVhZGluZ0F0eFxufTtcblxuLyoqIEB0eXBlIHtSZXNvbHZlcn0gKi9cbmZ1bmN0aW9uIHJlc29sdmVIZWFkaW5nQXR4KGV2ZW50cywgY29udGV4dCkge1xuICBsZXQgY29udGVudEVuZCA9IGV2ZW50cy5sZW5ndGggLSAyO1xuICBsZXQgY29udGVudFN0YXJ0ID0gMztcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IGNvbnRlbnQ7XG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGxldCB0ZXh0O1xuXG4gIC8vIFByZWZpeCB3aGl0ZXNwYWNlLCBwYXJ0IG9mIHRoZSBvcGVuaW5nLlxuICBpZiAoZXZlbnRzW2NvbnRlbnRTdGFydF1bMV0udHlwZSA9PT0gXCJ3aGl0ZXNwYWNlXCIpIHtcbiAgICBjb250ZW50U3RhcnQgKz0gMjtcbiAgfVxuXG4gIC8vIFN1ZmZpeCB3aGl0ZXNwYWNlLCBwYXJ0IG9mIHRoZSBjbG9zaW5nLlxuICBpZiAoY29udGVudEVuZCAtIDIgPiBjb250ZW50U3RhcnQgJiYgZXZlbnRzW2NvbnRlbnRFbmRdWzFdLnR5cGUgPT09IFwid2hpdGVzcGFjZVwiKSB7XG4gICAgY29udGVudEVuZCAtPSAyO1xuICB9XG4gIGlmIChldmVudHNbY29udGVudEVuZF1bMV0udHlwZSA9PT0gXCJhdHhIZWFkaW5nU2VxdWVuY2VcIiAmJiAoY29udGVudFN0YXJ0ID09PSBjb250ZW50RW5kIC0gMSB8fCBjb250ZW50RW5kIC0gNCA+IGNvbnRlbnRTdGFydCAmJiBldmVudHNbY29udGVudEVuZCAtIDJdWzFdLnR5cGUgPT09IFwid2hpdGVzcGFjZVwiKSkge1xuICAgIGNvbnRlbnRFbmQgLT0gY29udGVudFN0YXJ0ICsgMSA9PT0gY29udGVudEVuZCA/IDIgOiA0O1xuICB9XG4gIGlmIChjb250ZW50RW5kID4gY29udGVudFN0YXJ0KSB7XG4gICAgY29udGVudCA9IHtcbiAgICAgIHR5cGU6IFwiYXR4SGVhZGluZ1RleHRcIixcbiAgICAgIHN0YXJ0OiBldmVudHNbY29udGVudFN0YXJ0XVsxXS5zdGFydCxcbiAgICAgIGVuZDogZXZlbnRzW2NvbnRlbnRFbmRdWzFdLmVuZFxuICAgIH07XG4gICAgdGV4dCA9IHtcbiAgICAgIHR5cGU6IFwiY2h1bmtUZXh0XCIsXG4gICAgICBzdGFydDogZXZlbnRzW2NvbnRlbnRTdGFydF1bMV0uc3RhcnQsXG4gICAgICBlbmQ6IGV2ZW50c1tjb250ZW50RW5kXVsxXS5lbmQsXG4gICAgICBjb250ZW50VHlwZTogXCJ0ZXh0XCJcbiAgICB9O1xuICAgIHNwbGljZShldmVudHMsIGNvbnRlbnRTdGFydCwgY29udGVudEVuZCAtIGNvbnRlbnRTdGFydCArIDEsIFtbJ2VudGVyJywgY29udGVudCwgY29udGV4dF0sIFsnZW50ZXInLCB0ZXh0LCBjb250ZXh0XSwgWydleGl0JywgdGV4dCwgY29udGV4dF0sIFsnZXhpdCcsIGNvbnRlbnQsIGNvbnRleHRdXSk7XG4gIH1cbiAgcmV0dXJuIGV2ZW50cztcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVIZWFkaW5nQXR4KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgbGV0IHNpemUgPSAwO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGEgaGVhZGluZyAoYXR4KS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICMjIGFhXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgLy8gVG8gZG86IHBhcnNlIGluZGVudCBsaWtlIGBtYXJrZG93bi1yc2AuXG4gICAgZWZmZWN0cy5lbnRlcihcImF0eEhlYWRpbmdcIik7XG4gICAgcmV0dXJuIGJlZm9yZShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLCBhdCBgI2AuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAjIyBhYVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYmVmb3JlKGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKFwiYXR4SGVhZGluZ1NlcXVlbmNlXCIpO1xuICAgIHJldHVybiBzZXF1ZW5jZU9wZW4oY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gb3BlbmluZyBzZXF1ZW5jZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICMjIGFhXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzZXF1ZW5jZU9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSAzNSAmJiBzaXplKysgPCA2KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gc2VxdWVuY2VPcGVuO1xuICAgIH1cblxuICAgIC8vIEFsd2F5cyBhdCBsZWFzdCBvbmUgYCNgLlxuICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdChcImF0eEhlYWRpbmdTZXF1ZW5jZVwiKTtcbiAgICAgIHJldHVybiBhdEJyZWFrKGNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIHNvbWV0aGluZywgYmVmb3JlIHNvbWV0aGluZyBlbHNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgIyMgYWFcbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYXRCcmVhayhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDM1KSB7XG4gICAgICBlZmZlY3RzLmVudGVyKFwiYXR4SGVhZGluZ1NlcXVlbmNlXCIpO1xuICAgICAgcmV0dXJuIHNlcXVlbmNlRnVydGhlcihjb2RlKTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJhdHhIZWFkaW5nXCIpO1xuICAgICAgLy8gVG8gZG86IGludGVycnVwdCBsaWtlIGBtYXJrZG93bi1yc2AuXG4gICAgICAvLyAvLyBGZWVsIGZyZWUgdG8gaW50ZXJydXB0LlxuICAgICAgLy8gdG9rZW5pemVyLmludGVycnVwdCA9IGZhbHNlXG4gICAgICByZXR1cm4gb2soY29kZSk7XG4gICAgfVxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGF0QnJlYWssIFwid2hpdGVzcGFjZVwiKShjb2RlKTtcbiAgICB9XG5cbiAgICAvLyBUbyBkbzogZ2VuZXJhdGUgYGRhdGFgIHRva2VucywgYWRkIHRoZSBgdGV4dGAgdG9rZW4gbGF0ZXIuXG4gICAgLy8gTmVlZHMgZWRpdCBtYXAsIHNlZTogYG1hcmtkb3duLnJzYC5cbiAgICBlZmZlY3RzLmVudGVyKFwiYXR4SGVhZGluZ1RleHRcIik7XG4gICAgcmV0dXJuIGRhdGEoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gZnVydGhlciBzZXF1ZW5jZSAoYWZ0ZXIgd2hpdGVzcGFjZSkuXG4gICAqXG4gICAqIENvdWxkIGJlIG5vcm1hbCBcdTIwMUN2aXNpYmxlXHUyMDFEIGhhc2hlcyBpbiB0aGUgaGVhZGluZyBvciBhIGZpbmFsIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgIyMgYWEgIyNcbiAgICogICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHNlcXVlbmNlRnVydGhlcihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDM1KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gc2VxdWVuY2VGdXJ0aGVyO1xuICAgIH1cbiAgICBlZmZlY3RzLmV4aXQoXCJhdHhIZWFkaW5nU2VxdWVuY2VcIik7XG4gICAgcmV0dXJuIGF0QnJlYWsoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gdGV4dC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICMjIGFhXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBkYXRhKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBjb2RlID09PSAzNSB8fCBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJhdHhIZWFkaW5nVGV4dFwiKTtcbiAgICAgIHJldHVybiBhdEJyZWFrKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbn0iLCAiLyoqXG4gKiBMaXN0IG9mIGxvd2VyY2FzZSBIVE1MIFx1MjAxQ2Jsb2NrXHUyMDFEIHRhZyBuYW1lcy5cbiAqXG4gKiBUaGUgbGlzdCwgd2hlbiBwYXJzaW5nIEhUTUwgKGZsb3cpLCByZXN1bHRzIGluIG1vcmUgcmVsYXhlZCBydWxlcyAoY29uZGl0aW9uXG4gKiA2KS5cbiAqIEJlY2F1c2UgdGhleSBhcmUga25vd24gYmxvY2tzLCB0aGUgSFRNTC1saWtlIHN5bnRheCBkb2Vzblx1MjAxOXQgaGF2ZSB0byBiZVxuICogc3RyaWN0bHkgcGFyc2VkLlxuICogRm9yIHRhZyBuYW1lcyBub3QgaW4gdGhpcyBsaXN0LCBhIG1vcmUgc3RyaWN0IGFsZ29yaXRobSAoY29uZGl0aW9uIDcpIGlzIHVzZWRcbiAqIHRvIGRldGVjdCB3aGV0aGVyIHRoZSBIVE1MLWxpa2Ugc3ludGF4IGlzIHNlZW4gYXMgSFRNTCAoZmxvdykgb3Igbm90LlxuICpcbiAqIFRoaXMgaXMgY29waWVkIGZyb206XG4gKiA8aHR0cHM6Ly9zcGVjLmNvbW1vbm1hcmsub3JnLzAuMzAvI2h0bWwtYmxvY2tzPi5cbiAqXG4gKiA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogYHNlYXJjaGAgd2FzIGFkZGVkIGluIGBDb21tb25NYXJrQDAuMzFgLlxuICovXG5leHBvcnQgY29uc3QgaHRtbEJsb2NrTmFtZXMgPSBbXG4gICdhZGRyZXNzJyxcbiAgJ2FydGljbGUnLFxuICAnYXNpZGUnLFxuICAnYmFzZScsXG4gICdiYXNlZm9udCcsXG4gICdibG9ja3F1b3RlJyxcbiAgJ2JvZHknLFxuICAnY2FwdGlvbicsXG4gICdjZW50ZXInLFxuICAnY29sJyxcbiAgJ2NvbGdyb3VwJyxcbiAgJ2RkJyxcbiAgJ2RldGFpbHMnLFxuICAnZGlhbG9nJyxcbiAgJ2RpcicsXG4gICdkaXYnLFxuICAnZGwnLFxuICAnZHQnLFxuICAnZmllbGRzZXQnLFxuICAnZmlnY2FwdGlvbicsXG4gICdmaWd1cmUnLFxuICAnZm9vdGVyJyxcbiAgJ2Zvcm0nLFxuICAnZnJhbWUnLFxuICAnZnJhbWVzZXQnLFxuICAnaDEnLFxuICAnaDInLFxuICAnaDMnLFxuICAnaDQnLFxuICAnaDUnLFxuICAnaDYnLFxuICAnaGVhZCcsXG4gICdoZWFkZXInLFxuICAnaHInLFxuICAnaHRtbCcsXG4gICdpZnJhbWUnLFxuICAnbGVnZW5kJyxcbiAgJ2xpJyxcbiAgJ2xpbmsnLFxuICAnbWFpbicsXG4gICdtZW51JyxcbiAgJ21lbnVpdGVtJyxcbiAgJ25hdicsXG4gICdub2ZyYW1lcycsXG4gICdvbCcsXG4gICdvcHRncm91cCcsXG4gICdvcHRpb24nLFxuICAncCcsXG4gICdwYXJhbScsXG4gICdzZWFyY2gnLFxuICAnc2VjdGlvbicsXG4gICdzdW1tYXJ5JyxcbiAgJ3RhYmxlJyxcbiAgJ3Rib2R5JyxcbiAgJ3RkJyxcbiAgJ3Rmb290JyxcbiAgJ3RoJyxcbiAgJ3RoZWFkJyxcbiAgJ3RpdGxlJyxcbiAgJ3RyJyxcbiAgJ3RyYWNrJyxcbiAgJ3VsJ1xuXVxuXG4vKipcbiAqIExpc3Qgb2YgbG93ZXJjYXNlIEhUTUwgXHUyMDFDcmF3XHUyMDFEIHRhZyBuYW1lcy5cbiAqXG4gKiBUaGUgbGlzdCwgd2hlbiBwYXJzaW5nIEhUTUwgKGZsb3cpLCByZXN1bHRzIGluIEhUTUwgdGhhdCBjYW4gaW5jbHVkZSBsaW5lc1xuICogd2l0aG91dCBleGl0aW5nLCB1bnRpbCBhIGNsb3NpbmcgdGFnIGFsc28gaW4gdGhpcyBsaXN0IGlzIGZvdW5kIChjb25kaXRpb25cbiAqIDEpLlxuICpcbiAqIFRoaXMgbW9kdWxlIGlzIGNvcGllZCBmcm9tOlxuICogPGh0dHBzOi8vc3BlYy5jb21tb25tYXJrLm9yZy8wLjMwLyNodG1sLWJsb2Nrcz4uXG4gKlxuICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGB0ZXh0YXJlYWAgd2FzIGFkZGVkIGluIGBDb21tb25NYXJrQDAuMzBgLlxuICovXG5leHBvcnQgY29uc3QgaHRtbFJhd05hbWVzID0gWydwcmUnLCAnc2NyaXB0JywgJ3N0eWxlJywgJ3RleHRhcmVhJ11cbiIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb2RlLFxuICogICBDb25zdHJ1Y3QsXG4gKiAgIFJlc29sdmVyLFxuICogICBTdGF0ZSxcbiAqICAgVG9rZW5pemVDb250ZXh0LFxuICogICBUb2tlbml6ZXJcbiAqIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuaW1wb3J0IHsgYXNjaWlBbHBoYW51bWVyaWMsIGFzY2lpQWxwaGEsIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UsIG1hcmtkb3duTGluZUVuZGluZywgbWFya2Rvd25TcGFjZSB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcic7XG5pbXBvcnQgeyBodG1sQmxvY2tOYW1lcywgaHRtbFJhd05hbWVzIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtaHRtbC10YWctbmFtZSc7XG5pbXBvcnQgeyBibGFua0xpbmUgfSBmcm9tICcuL2JsYW5rLWxpbmUuanMnO1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBodG1sRmxvdyA9IHtcbiAgY29uY3JldGU6IHRydWUsXG4gIG5hbWU6ICdodG1sRmxvdycsXG4gIHJlc29sdmVUbzogcmVzb2x2ZVRvSHRtbEZsb3csXG4gIHRva2VuaXplOiB0b2tlbml6ZUh0bWxGbG93XG59O1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IGJsYW5rTGluZUJlZm9yZSA9IHtcbiAgcGFydGlhbDogdHJ1ZSxcbiAgdG9rZW5pemU6IHRva2VuaXplQmxhbmtMaW5lQmVmb3JlXG59O1xuY29uc3Qgbm9uTGF6eUNvbnRpbnVhdGlvblN0YXJ0ID0ge1xuICBwYXJ0aWFsOiB0cnVlLFxuICB0b2tlbml6ZTogdG9rZW5pemVOb25MYXp5Q29udGludWF0aW9uU3RhcnRcbn07XG5cbi8qKiBAdHlwZSB7UmVzb2x2ZXJ9ICovXG5mdW5jdGlvbiByZXNvbHZlVG9IdG1sRmxvdyhldmVudHMpIHtcbiAgbGV0IGluZGV4ID0gZXZlbnRzLmxlbmd0aDtcbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBpZiAoZXZlbnRzW2luZGV4XVswXSA9PT0gJ2VudGVyJyAmJiBldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09IFwiaHRtbEZsb3dcIikge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChpbmRleCA+IDEgJiYgZXZlbnRzW2luZGV4IC0gMl1bMV0udHlwZSA9PT0gXCJsaW5lUHJlZml4XCIpIHtcbiAgICAvLyBBZGQgdGhlIHByZWZpeCBzdGFydCB0byB0aGUgSFRNTCB0b2tlbi5cbiAgICBldmVudHNbaW5kZXhdWzFdLnN0YXJ0ID0gZXZlbnRzW2luZGV4IC0gMl1bMV0uc3RhcnQ7XG4gICAgLy8gQWRkIHRoZSBwcmVmaXggc3RhcnQgdG8gdGhlIEhUTUwgbGluZSB0b2tlbi5cbiAgICBldmVudHNbaW5kZXggKyAxXVsxXS5zdGFydCA9IGV2ZW50c1tpbmRleCAtIDJdWzFdLnN0YXJ0O1xuICAgIC8vIFJlbW92ZSB0aGUgbGluZSBwcmVmaXguXG4gICAgZXZlbnRzLnNwbGljZShpbmRleCAtIDIsIDIpO1xuICB9XG4gIHJldHVybiBldmVudHM7XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqICAgQ29udGV4dC5cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplSHRtbEZsb3coZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpcztcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBtYXJrZXI7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IGNsb3NpbmdUYWc7XG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQgYnVmZmVyO1xuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IGluZGV4O1xuICAvKiogQHR5cGUge0NvZGV9ICovXG4gIGxldCBtYXJrZXJCO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIEhUTUwgKGZsb3cpLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPHggLz5cbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAvLyBUbyBkbzogcGFyc2UgaW5kZW50IGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgICByZXR1cm4gYmVmb3JlKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0IGA8YCwgYWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDx4IC8+XG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBiZWZvcmUoY29kZSkge1xuICAgIGVmZmVjdHMuZW50ZXIoXCJodG1sRmxvd1wiKTtcbiAgICBlZmZlY3RzLmVudGVyKFwiaHRtbEZsb3dEYXRhXCIpO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICByZXR1cm4gb3BlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPGAsIGF0IHRhZyBuYW1lIG9yIG90aGVyIHN0dWZmLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPHggLz5cbiAgICogICAgICBeXG4gICAqID4gfCA8IWRvY3R5cGU+XG4gICAqICAgICAgXlxuICAgKiA+IHwgPCEtLXh4eC0tPlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSAzMykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGRlY2xhcmF0aW9uT3BlbjtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDQ3KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBjbG9zaW5nVGFnID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0YWdDbG9zZVN0YXJ0O1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNjMpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIG1hcmtlciA9IDM7XG4gICAgICAvLyBUbyBkbzpcbiAgICAgIC8vIHRva2VuaXplci5jb25jcmV0ZSA9IHRydWVcbiAgICAgIC8vIFRvIGRvOiB1c2UgYG1hcmtkb3duLXJzYCBzdHlsZSBpbnRlcnJ1cHQuXG4gICAgICAvLyBXaGlsZSB3ZVx1MjAxOXJlIGluIGFuIGluc3RydWN0aW9uIGluc3RlYWQgb2YgYSBkZWNsYXJhdGlvbiwgd2VcdTIwMTlyZSBvbiBhIGA/YFxuICAgICAgLy8gcmlnaHQgbm93LCBzbyB3ZSBkbyBuZWVkIHRvIHNlYXJjaCBmb3IgYD5gLCBzaW1pbGFyIHRvIGRlY2xhcmF0aW9ucy5cbiAgICAgIHJldHVybiBzZWxmLmludGVycnVwdCA/IG9rIDogY29udGludWF0aW9uRGVjbGFyYXRpb25JbnNpZGU7XG4gICAgfVxuXG4gICAgLy8gQVNDSUkgYWxwaGFiZXRpY2FsLlxuICAgIGlmIChhc2NpaUFscGhhKGNvZGUpKSB7XG4gICAgICAvLyBBbHdheXMgdGhlIGNhc2UuXG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBidWZmZXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpO1xuICAgICAgcmV0dXJuIHRhZ05hbWU7XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDwhYCwgYXQgZGVjbGFyYXRpb24sIGNvbW1lbnQsIG9yIENEQVRBLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPCFkb2N0eXBlPlxuICAgKiAgICAgICBeXG4gICAqID4gfCA8IS0teHh4LS0+XG4gICAqICAgICAgIF5cbiAgICogPiB8IDwhW0NEQVRBWz4mPF1dPlxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBkZWNsYXJhdGlvbk9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0NSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgbWFya2VyID0gMjtcbiAgICAgIHJldHVybiBjb21tZW50T3Blbkluc2lkZTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDkxKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBtYXJrZXIgPSA1O1xuICAgICAgaW5kZXggPSAwO1xuICAgICAgcmV0dXJuIGNkYXRhT3Blbkluc2lkZTtcbiAgICB9XG5cbiAgICAvLyBBU0NJSSBhbHBoYWJldGljYWwuXG4gICAgaWYgKGFzY2lpQWxwaGEoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIG1hcmtlciA9IDQ7XG4gICAgICAvLyAvLyBEbyBub3QgZm9ybSBjb250YWluZXJzLlxuICAgICAgLy8gdG9rZW5pemVyLmNvbmNyZXRlID0gdHJ1ZVxuICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2sgOiBjb250aW51YXRpb25EZWNsYXJhdGlvbkluc2lkZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPCEtYCwgaW5zaWRlIGEgY29tbWVudCwgYXQgYW5vdGhlciBgLWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IS0teHh4LS0+XG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21tZW50T3Blbkluc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQ1KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICAvLyAvLyBEbyBub3QgZm9ybSBjb250YWluZXJzLlxuICAgICAgLy8gdG9rZW5pemVyLmNvbmNyZXRlID0gdHJ1ZVxuICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2sgOiBjb250aW51YXRpb25EZWNsYXJhdGlvbkluc2lkZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPCFbYCwgaW5zaWRlIENEQVRBLCBleHBlY3RpbmcgYENEQVRBW2AuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IVtDREFUQVs+JjxdXT5cbiAgICogICAgICAgIF5eXl5eXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY2RhdGFPcGVuSW5zaWRlKGNvZGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IFwiQ0RBVEFbXCI7XG4gICAgaWYgKGNvZGUgPT09IHZhbHVlLmNoYXJDb2RlQXQoaW5kZXgrKykpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGlmIChpbmRleCA9PT0gdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgIC8vIC8vIERvIG5vdCBmb3JtIGNvbnRhaW5lcnMuXG4gICAgICAgIC8vIHRva2VuaXplci5jb25jcmV0ZSA9IHRydWVcbiAgICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2sgOiBjb250aW51YXRpb247XG4gICAgICB9XG4gICAgICByZXR1cm4gY2RhdGFPcGVuSW5zaWRlO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA8L2AsIGluIGNsb3NpbmcgdGFnLCBhdCB0YWcgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDwveD5cbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGFnQ2xvc2VTdGFydChjb2RlKSB7XG4gICAgaWYgKGFzY2lpQWxwaGEoY29kZSkpIHtcbiAgICAgIC8vIEFsd2F5cyB0aGUgY2FzZS5cbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGJ1ZmZlciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7XG4gICAgICByZXR1cm4gdGFnTmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB0YWcgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhYj5cbiAgICogICAgICBeXlxuICAgKiA+IHwgPC9hYj5cbiAgICogICAgICAgXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ05hbWUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDQ3IHx8IGNvZGUgPT09IDYyIHx8IG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkpIHtcbiAgICAgIGNvbnN0IHNsYXNoID0gY29kZSA9PT0gNDc7XG4gICAgICBjb25zdCBuYW1lID0gYnVmZmVyLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAoIXNsYXNoICYmICFjbG9zaW5nVGFnICYmIGh0bWxSYXdOYW1lcy5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgICBtYXJrZXIgPSAxO1xuICAgICAgICAvLyAvLyBEbyBub3QgZm9ybSBjb250YWluZXJzLlxuICAgICAgICAvLyB0b2tlbml6ZXIuY29uY3JldGUgPSB0cnVlXG4gICAgICAgIHJldHVybiBzZWxmLmludGVycnVwdCA/IG9rKGNvZGUpIDogY29udGludWF0aW9uKGNvZGUpO1xuICAgICAgfVxuICAgICAgaWYgKGh0bWxCbG9ja05hbWVzLmluY2x1ZGVzKGJ1ZmZlci50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICBtYXJrZXIgPSA2O1xuICAgICAgICBpZiAoc2xhc2gpIHtcbiAgICAgICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICAgICAgcmV0dXJuIGJhc2ljU2VsZkNsb3Npbmc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAvLyBEbyBub3QgZm9ybSBjb250YWluZXJzLlxuICAgICAgICAvLyB0b2tlbml6ZXIuY29uY3JldGUgPSB0cnVlXG4gICAgICAgIHJldHVybiBzZWxmLmludGVycnVwdCA/IG9rKGNvZGUpIDogY29udGludWF0aW9uKGNvZGUpO1xuICAgICAgfVxuICAgICAgbWFya2VyID0gNztcbiAgICAgIC8vIERvIG5vdCBzdXBwb3J0IGNvbXBsZXRlIEhUTUwgd2hlbiBpbnRlcnJ1cHRpbmcuXG4gICAgICByZXR1cm4gc2VsZi5pbnRlcnJ1cHQgJiYgIXNlbGYucGFyc2VyLmxhenlbc2VsZi5ub3coKS5saW5lXSA/IG5vayhjb2RlKSA6IGNsb3NpbmdUYWcgPyBjb21wbGV0ZUNsb3NpbmdUYWdBZnRlcihjb2RlKSA6IGNvbXBsZXRlQXR0cmlidXRlTmFtZUJlZm9yZShjb2RlKTtcbiAgICB9XG5cbiAgICAvLyBBU0NJSSBhbHBoYW51bWVyaWNhbCBhbmQgYC1gLlxuICAgIGlmIChjb2RlID09PSA0NSB8fCBhc2NpaUFscGhhbnVtZXJpYyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgYnVmZmVyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7XG4gICAgICByZXR1cm4gdGFnTmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBjbG9zaW5nIHNsYXNoIG9mIGEgYmFzaWMgdGFnIG5hbWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8ZGl2Lz5cbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYmFzaWNTZWxmQ2xvc2luZyhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDYyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICAvLyAvLyBEbyBub3QgZm9ybSBjb250YWluZXJzLlxuICAgICAgLy8gdG9rZW5pemVyLmNvbmNyZXRlID0gdHJ1ZVxuICAgICAgcmV0dXJuIHNlbGYuaW50ZXJydXB0ID8gb2sgOiBjb250aW51YXRpb247XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgY2xvc2luZyBzbGFzaCBvZiBhIGNvbXBsZXRlIHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPHgvPlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVDbG9zaW5nVGFnQWZ0ZXIoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gY29tcGxldGVDbG9zaW5nVGFnQWZ0ZXI7XG4gICAgfVxuICAgIHJldHVybiBjb21wbGV0ZUVuZChjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBhbiBhdHRyaWJ1dGUgbmFtZS5cbiAgICpcbiAgICogQXQgZmlyc3QsIHRoaXMgc3RhdGUgaXMgdXNlZCBhZnRlciBhIGNvbXBsZXRlIHRhZyBuYW1lLCBhZnRlciB3aGl0ZXNwYWNlLFxuICAgKiB3aGVyZSBpdCBleHBlY3RzIG9wdGlvbmFsIGF0dHJpYnV0ZXMgb3IgdGhlIGVuZCBvZiB0aGUgdGFnLlxuICAgKiBJdCBpcyBhbHNvIHJldXNlZCBhZnRlciBhdHRyaWJ1dGVzLCB3aGVuIGV4cGVjdGluZyBtb3JlIG9wdGlvbmFsXG4gICAqIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YSAvPlxuICAgKiAgICAgICAgXlxuICAgKiA+IHwgPGEgOmI+XG4gICAqICAgICAgICBeXG4gICAqID4gfCA8YSBfYj5cbiAgICogICAgICAgIF5cbiAgICogPiB8IDxhIGI+XG4gICAqICAgICAgICBeXG4gICAqID4gfCA8YSA+XG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWVCZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0Nykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGNvbXBsZXRlRW5kO1xuICAgIH1cblxuICAgIC8vIEFTQ0lJIGFscGhhbnVtZXJpY2FsIGFuZCBgOmAgYW5kIGBfYC5cbiAgICBpZiAoY29kZSA9PT0gNTggfHwgY29kZSA9PT0gOTUgfHwgYXNjaWlBbHBoYShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlTmFtZTtcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWVCZWZvcmU7XG4gICAgfVxuICAgIHJldHVybiBjb21wbGV0ZUVuZChjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBhdHRyaWJ1dGUgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhIDpiPlxuICAgKiAgICAgICAgIF5cbiAgICogPiB8IDxhIF9iPlxuICAgKiAgICAgICAgIF5cbiAgICogPiB8IDxhIGI+XG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVBdHRyaWJ1dGVOYW1lKGNvZGUpIHtcbiAgICAvLyBBU0NJSSBhbHBoYW51bWVyaWNhbCBhbmQgYC1gLCBgLmAsIGA6YCwgYW5kIGBfYC5cbiAgICBpZiAoY29kZSA9PT0gNDUgfHwgY29kZSA9PT0gNDYgfHwgY29kZSA9PT0gNTggfHwgY29kZSA9PT0gOTUgfHwgYXNjaWlBbHBoYW51bWVyaWMoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWU7XG4gICAgfVxuICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZU5hbWVBZnRlcihjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBhdHRyaWJ1dGUgbmFtZSwgYXQgYW4gb3B0aW9uYWwgaW5pdGlhbGl6ZXIsIHRoZSBlbmQgb2YgdGhlIHRhZywgb3JcbiAgICogd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhIGI+XG4gICAqICAgICAgICAgXlxuICAgKiA+IHwgPGEgYj1jPlxuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBsZXRlQXR0cmlidXRlTmFtZUFmdGVyKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjEpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb21wbGV0ZUF0dHJpYnV0ZVZhbHVlQmVmb3JlO1xuICAgIH1cbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlTmFtZUFmdGVyO1xuICAgIH1cbiAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVOYW1lQmVmb3JlKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJlZm9yZSB1bnF1b3RlZCwgZG91YmxlIHF1b3RlZCwgb3Igc2luZ2xlIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUsIGFsbG93aW5nXG4gICAqIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YSBiPWM+XG4gICAqICAgICAgICAgIF5cbiAgICogPiB8IDxhIGI9XCJjXCI+XG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVCZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDYwIHx8IGNvZGUgPT09IDYxIHx8IGNvZGUgPT09IDYyIHx8IGNvZGUgPT09IDk2KSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gMzQgfHwgY29kZSA9PT0gMzkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIG1hcmtlckIgPSBjb2RlO1xuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVRdW90ZWQ7XG4gICAgfVxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZUJlZm9yZTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBkb3VibGUgb3Igc2luZ2xlIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YSBiPVwiY1wiPlxuICAgKiAgICAgICAgICAgXlxuICAgKiA+IHwgPGEgYj0nYyc+XG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb21wbGV0ZUF0dHJpYnV0ZVZhbHVlUXVvdGVkKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyQikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgbWFya2VyQiA9IG51bGw7XG4gICAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZVF1b3RlZEFmdGVyO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICByZXR1cm4gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZVF1b3RlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8YSBiPWM+XG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgY29kZSA9PT0gMzQgfHwgY29kZSA9PT0gMzkgfHwgY29kZSA9PT0gNDcgfHwgY29kZSA9PT0gNjAgfHwgY29kZSA9PT0gNjEgfHwgY29kZSA9PT0gNjIgfHwgY29kZSA9PT0gOTYgfHwgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSkge1xuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlTmFtZUFmdGVyKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBkb3VibGUgb3Igc2luZ2xlIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUsIGJlZm9yZSB3aGl0ZXNwYWNlIG9yIHRoZVxuICAgKiBlbmQgb2YgdGhlIHRhZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhIGI9XCJjXCI+XG4gICAqICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVBdHRyaWJ1dGVWYWx1ZVF1b3RlZEFmdGVyKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNDcgfHwgY29kZSA9PT0gNjIgfHwgbWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgcmV0dXJuIGNvbXBsZXRlQXR0cmlidXRlTmFtZUJlZm9yZShjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMgb2YgYSBjb21wbGV0ZSB0YWcgd2hlcmUgb25seSBhbiBgPmAgaXMgYWxsb3dlZC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxhIGI9XCJjXCI+XG4gICAqICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBsZXRlRW5kKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb21wbGV0ZUFmdGVyO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA+YCBpbiBhIGNvbXBsZXRlIHRhZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDx4PlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tcGxldGVBZnRlcihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICAvLyAvLyBEbyBub3QgZm9ybSBjb250YWluZXJzLlxuICAgICAgLy8gdG9rZW5pemVyLmNvbmNyZXRlID0gdHJ1ZVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihjb2RlKTtcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb21wbGV0ZUFmdGVyO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGNvbnRpbnVhdGlvbiBvZiBhbnkgSFRNTCBraW5kLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPCEtLXh4eC0tPlxuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb24oY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0NSAmJiBtYXJrZXIgPT09IDIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb250aW51YXRpb25Db21tZW50SW5zaWRlO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNjAgJiYgbWFya2VyID09PSAxKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gY29udGludWF0aW9uUmF3VGFnT3BlbjtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDYyICYmIG1hcmtlciA9PT0gNCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkNsb3NlO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNjMgJiYgbWFya2VyID09PSAzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gY29udGludWF0aW9uRGVjbGFyYXRpb25JbnNpZGU7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSA5MyAmJiBtYXJrZXIgPT09IDUpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb250aW51YXRpb25DZGF0YUluc2lkZTtcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSAmJiAobWFya2VyID09PSA2IHx8IG1hcmtlciA9PT0gNykpIHtcbiAgICAgIGVmZmVjdHMuZXhpdChcImh0bWxGbG93RGF0YVwiKTtcbiAgICAgIHJldHVybiBlZmZlY3RzLmNoZWNrKGJsYW5rTGluZUJlZm9yZSwgY29udGludWF0aW9uQWZ0ZXIsIGNvbnRpbnVhdGlvblN0YXJ0KShjb2RlKTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJodG1sRmxvd0RhdGFcIik7XG4gICAgICByZXR1cm4gY29udGludWF0aW9uU3RhcnQoY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICByZXR1cm4gY29udGludWF0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGNvbnRpbnVhdGlvbiwgYXQgZW9sLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPHg+XG4gICAqICAgICAgICBeXG4gICAqICAgfCBhc2RcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRpbnVhdGlvblN0YXJ0KGNvZGUpIHtcbiAgICByZXR1cm4gZWZmZWN0cy5jaGVjayhub25MYXp5Q29udGludWF0aW9uU3RhcnQsIGNvbnRpbnVhdGlvblN0YXJ0Tm9uTGF6eSwgY29udGludWF0aW9uQWZ0ZXIpKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGNvbnRpbnVhdGlvbiwgYXQgZW9sLCBiZWZvcmUgbm9uLWxhenkgY29udGVudC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDx4PlxuICAgKiAgICAgICAgXlxuICAgKiAgIHwgYXNkXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25TdGFydE5vbkxhenkoY29kZSkge1xuICAgIGVmZmVjdHMuZW50ZXIoXCJsaW5lRW5kaW5nXCIpO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICBlZmZlY3RzLmV4aXQoXCJsaW5lRW5kaW5nXCIpO1xuICAgIHJldHVybiBjb250aW51YXRpb25CZWZvcmU7XG4gIH1cblxuICAvKipcbiAgICogSW4gY29udGludWF0aW9uLCBiZWZvcmUgbm9uLWxhenkgY29udGVudC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IDx4PlxuICAgKiA+IHwgYXNkXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25CZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvblN0YXJ0KGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmVudGVyKFwiaHRtbEZsb3dEYXRhXCIpO1xuICAgIHJldHVybiBjb250aW51YXRpb24oY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gY29tbWVudCBjb250aW51YXRpb24sIGFmdGVyIG9uZSBgLWAsIGV4cGVjdGluZyBhbm90aGVyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPCEtLXh4eC0tPlxuICAgKiAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25Db21tZW50SW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNDUpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb250aW51YXRpb25EZWNsYXJhdGlvbkluc2lkZTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByYXcgY29udGludWF0aW9uLCBhZnRlciBgPGAsIGF0IGAvYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDxzY3JpcHQ+Y29uc29sZS5sb2coMSk8L3NjcmlwdD5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29udGludWF0aW9uUmF3VGFnT3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQ3KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBidWZmZXIgPSAnJztcbiAgICAgIHJldHVybiBjb250aW51YXRpb25SYXdFbmRUYWc7XG4gICAgfVxuICAgIHJldHVybiBjb250aW51YXRpb24oY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gcmF3IGNvbnRpbnVhdGlvbiwgYWZ0ZXIgYDwvYCwgaW4gYSByYXcgdGFnIG5hbWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8c2NyaXB0PmNvbnNvbGUubG9nKDEpPC9zY3JpcHQ+XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRpbnVhdGlvblJhd0VuZFRhZyhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDYyKSB7XG4gICAgICBjb25zdCBuYW1lID0gYnVmZmVyLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAoaHRtbFJhd05hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbkNsb3NlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihjb2RlKTtcbiAgICB9XG4gICAgaWYgKGFzY2lpQWxwaGEoY29kZSkgJiYgYnVmZmVyLmxlbmd0aCA8IDgpIHtcbiAgICAgIC8vIEFsd2F5cyB0aGUgY2FzZS5cbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGJ1ZmZlciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpO1xuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvblJhd0VuZFRhZztcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjZGF0YSBjb250aW51YXRpb24sIGFmdGVyIGBdYCwgZXhwZWN0aW5nIGBdPmAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IVtDREFUQVs+JjxdXT5cbiAgICogICAgICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25DZGF0YUluc2lkZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDkzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gY29udGludWF0aW9uRGVjbGFyYXRpb25JbnNpZGU7XG4gICAgfVxuICAgIHJldHVybiBjb250aW51YXRpb24oY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gZGVjbGFyYXRpb24gb3IgaW5zdHJ1Y3Rpb24gY29udGludWF0aW9uLCBhdCBgPmAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCA8IS0tPlxuICAgKiAgICAgICAgIF5cbiAgICogPiB8IDw/PlxuICAgKiAgICAgICBeXG4gICAqID4gfCA8IXE+XG4gICAqICAgICAgICBeXG4gICAqID4gfCA8IS0tYWItLT5cbiAgICogICAgICAgICAgICAgXlxuICAgKiA+IHwgPCFbQ0RBVEFbPiY8XV0+XG4gICAqICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbnRpbnVhdGlvbkRlY2xhcmF0aW9uSW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb250aW51YXRpb25DbG9zZTtcbiAgICB9XG5cbiAgICAvLyBNb3JlIGRhc2hlcy5cbiAgICBpZiAoY29kZSA9PT0gNDUgJiYgbWFya2VyID09PSAyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gY29udGludWF0aW9uRGVjbGFyYXRpb25JbnNpZGU7XG4gICAgfVxuICAgIHJldHVybiBjb250aW51YXRpb24oY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gY2xvc2VkIGNvbnRpbnVhdGlvbjogZXZlcnl0aGluZyB3ZSBnZXQgdW50aWwgdGhlIGVvbC9lb2YgaXMgcGFydCBvZiBpdC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDwhZG9jdHlwZT5cbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25DbG9zZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJodG1sRmxvd0RhdGFcIik7XG4gICAgICByZXR1cm4gY29udGludWF0aW9uQWZ0ZXIoY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICByZXR1cm4gY29udGludWF0aW9uQ2xvc2U7XG4gIH1cblxuICAvKipcbiAgICogRG9uZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IDwhZG9jdHlwZT5cbiAgICogICAgICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjb250aW51YXRpb25BZnRlcihjb2RlKSB7XG4gICAgZWZmZWN0cy5leGl0KFwiaHRtbEZsb3dcIik7XG4gICAgLy8gLy8gRmVlbCBmcmVlIHRvIGludGVycnVwdC5cbiAgICAvLyB0b2tlbml6ZXIuaW50ZXJydXB0ID0gZmFsc2VcbiAgICAvLyAvLyBObyBsb25nZXIgY29uY3JldGUuXG4gICAgLy8gdG9rZW5pemVyLmNvbmNyZXRlID0gZmFsc2VcbiAgICByZXR1cm4gb2soY29kZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVOb25MYXp5Q29udGludWF0aW9uU3RhcnQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpcztcbiAgcmV0dXJuIHN0YXJ0O1xuXG4gIC8qKlxuICAgKiBBdCBlb2wsIGJlZm9yZSBjb250aW51YXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAqIGBgYGpzXG4gICAqICAgICAgICAgICAgXlxuICAgKiAgIHwgYlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoXCJsaW5lRW5kaW5nXCIpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KFwibGluZUVuZGluZ1wiKTtcbiAgICAgIHJldHVybiBhZnRlcjtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGNvbnRpbnVhdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8ICogYGBganNcbiAgICogPiB8IGJcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICByZXR1cm4gc2VsZi5wYXJzZXIubGF6eVtzZWxmLm5vdygpLmxpbmVdID8gbm9rKGNvZGUpIDogb2soY29kZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVCbGFua0xpbmVCZWZvcmUoZWZmZWN0cywgb2ssIG5vaykge1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIEJlZm9yZSBlb2wsIGV4cGVjdGluZyBibGFuayBsaW5lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgPGRpdj5cbiAgICogICAgICAgICAgXlxuICAgKiAgIHxcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKFwibGluZUVuZGluZ1wiKTtcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgZWZmZWN0cy5leGl0KFwibGluZUVuZGluZ1wiKTtcbiAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KGJsYW5rTGluZSwgb2ssIG5vayk7XG4gIH1cbn0iLCAiLyoqXG4gKiBAaW1wb3J0IHtcbiAqICAgQ29kZSxcbiAqICAgQ29uc3RydWN0LFxuICogICBTdGF0ZSxcbiAqICAgVG9rZW5pemVDb250ZXh0LFxuICogICBUb2tlbml6ZXJcbiAqIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuaW1wb3J0IHsgZmFjdG9yeVNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnO1xuaW1wb3J0IHsgYXNjaWlBbHBoYW51bWVyaWMsIGFzY2lpQWxwaGEsIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UsIG1hcmtkb3duTGluZUVuZGluZywgbWFya2Rvd25TcGFjZSB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcic7XG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBodG1sVGV4dCA9IHtcbiAgbmFtZTogJ2h0bWxUZXh0JyxcbiAgdG9rZW5pemU6IHRva2VuaXplSHRtbFRleHRcbn07XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqICAgQ29udGV4dC5cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplSHRtbFRleHQoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpcztcbiAgLyoqIEB0eXBlIHtOb25OdWxsYWJsZTxDb2RlPiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IG1hcmtlcjtcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGxldCBpbmRleDtcbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgbGV0IHJldHVyblN0YXRlO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIEhUTUwgKHRleHQpLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8Yj4gY1xuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcihcImh0bWxUZXh0XCIpO1xuICAgIGVmZmVjdHMuZW50ZXIoXCJodG1sVGV4dERhdGFcIik7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIHJldHVybiBvcGVuO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA8YCwgYXQgdGFnIG5hbWUgb3Igb3RoZXIgc3R1ZmYuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiPiBjXG4gICAqICAgICAgICBeXG4gICAqID4gfCBhIDwhZG9jdHlwZT4gY1xuICAgKiAgICAgICAgXlxuICAgKiA+IHwgYSA8IS0tYi0tPiBjXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBvcGVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gMzMpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBkZWNsYXJhdGlvbk9wZW47XG4gICAgfVxuICAgIGlmIChjb2RlID09PSA0Nykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIHRhZ0Nsb3NlU3RhcnQ7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSA2Mykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGluc3RydWN0aW9uO1xuICAgIH1cblxuICAgIC8vIEFTQ0lJIGFscGhhYmV0aWNhbC5cbiAgICBpZiAoYXNjaWlBbHBoYShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIHRhZ09wZW47XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDwhYCwgYXQgZGVjbGFyYXRpb24sIGNvbW1lbnQsIG9yIENEQVRBLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IWRvY3R5cGU+IGNcbiAgICogICAgICAgICBeXG4gICAqID4gfCBhIDwhLS1iLS0+IGNcbiAgICogICAgICAgICBeXG4gICAqID4gfCBhIDwhW0NEQVRBWz4mPF1dPiBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZGVjbGFyYXRpb25PcGVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNDUpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb21tZW50T3Blbkluc2lkZTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDkxKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBpbmRleCA9IDA7XG4gICAgICByZXR1cm4gY2RhdGFPcGVuSW5zaWRlO1xuICAgIH1cbiAgICBpZiAoYXNjaWlBbHBoYShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGRlY2xhcmF0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGEgY29tbWVudCwgYWZ0ZXIgYDwhLWAsIGF0IGFub3RoZXIgYC1gLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IS0tYi0tPiBjXG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbW1lbnRPcGVuSW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNDUpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb21tZW50RW5kO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGNvbW1lbnQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDwhLS1iLS0+IGNcbiAgICogICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbW1lbnQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gNDUpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBjb21tZW50Q2xvc2U7XG4gICAgfVxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVyblN0YXRlID0gY29tbWVudDtcbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIGNvbW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogSW4gY29tbWVudCwgYWZ0ZXIgYC1gLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IS0tYi0tPiBjXG4gICAqICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbW1lbnRDbG9zZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQ1KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gY29tbWVudEVuZDtcbiAgICB9XG4gICAgcmV0dXJuIGNvbW1lbnQoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gY29tbWVudCwgYWZ0ZXIgYC0tYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPCEtLWItLT4gY1xuICAgKiAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY29tbWVudEVuZChjb2RlKSB7XG4gICAgcmV0dXJuIGNvZGUgPT09IDYyID8gZW5kKGNvZGUpIDogY29kZSA9PT0gNDUgPyBjb21tZW50Q2xvc2UoY29kZSkgOiBjb21tZW50KGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGA8IVtgLCBpbiBDREFUQSwgZXhwZWN0aW5nIGBDREFUQVtgLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IVtDREFUQVs+JjxdXT4gYlxuICAgKiAgICAgICAgICBeXl5eXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNkYXRhT3Blbkluc2lkZShjb2RlKSB7XG4gICAgY29uc3QgdmFsdWUgPSBcIkNEQVRBW1wiO1xuICAgIGlmIChjb2RlID09PSB2YWx1ZS5jaGFyQ29kZUF0KGluZGV4KyspKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gaW5kZXggPT09IHZhbHVlLmxlbmd0aCA/IGNkYXRhIDogY2RhdGFPcGVuSW5zaWRlO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIENEQVRBLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IVtDREFUQVs+JjxdXT4gYlxuICAgKiAgICAgICAgICAgICAgICBeXl5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNkYXRhKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDkzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gY2RhdGFDbG9zZTtcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuU3RhdGUgPSBjZGF0YTtcbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIGNkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIENEQVRBLCBhZnRlciBgXWAsIGF0IGFub3RoZXIgYF1gLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IVtDREFUQVs+JjxdXT4gYlxuICAgKiAgICAgICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY2RhdGFDbG9zZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDkzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gY2RhdGFFbmQ7XG4gICAgfVxuICAgIHJldHVybiBjZGF0YShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBDREFUQSwgYWZ0ZXIgYF1dYCwgYXQgYD5gLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IVtDREFUQVs+JjxdXT4gYlxuICAgKiAgICAgICAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGNkYXRhRW5kKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjIpIHtcbiAgICAgIHJldHVybiBlbmQoY29kZSk7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSA5Mykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGNkYXRhRW5kO1xuICAgIH1cbiAgICByZXR1cm4gY2RhdGEoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gZGVjbGFyYXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDwhYj4gY1xuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBkZWNsYXJhdGlvbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgY29kZSA9PT0gNjIpIHtcbiAgICAgIHJldHVybiBlbmQoY29kZSk7XG4gICAgfVxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVyblN0YXRlID0gZGVjbGFyYXRpb247XG4gICAgICByZXR1cm4gbGluZUVuZGluZ0JlZm9yZShjb2RlKTtcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIHJldHVybiBkZWNsYXJhdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBpbnN0cnVjdGlvbi5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPD9iPz4gY1xuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGluc3RydWN0aW9uKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDYzKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gaW5zdHJ1Y3Rpb25DbG9zZTtcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuU3RhdGUgPSBpbnN0cnVjdGlvbjtcbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIGluc3RydWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGluc3RydWN0aW9uLCBhZnRlciBgP2AsIGF0IGA+YC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPD9iPz4gY1xuICAgKiAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaW5zdHJ1Y3Rpb25DbG9zZShjb2RlKSB7XG4gICAgcmV0dXJuIGNvZGUgPT09IDYyID8gZW5kKGNvZGUpIDogaW5zdHJ1Y3Rpb24oY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDwvYCwgaW4gY2xvc2luZyB0YWcsIGF0IHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8L2I+IGNcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0YWdDbG9zZVN0YXJ0KGNvZGUpIHtcbiAgICAvLyBBU0NJSSBhbHBoYWJldGljYWwuXG4gICAgaWYgKGFzY2lpQWxwaGEoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiB0YWdDbG9zZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgPC94YCwgaW4gYSB0YWcgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPC9iPiBjXG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ0Nsb3NlKGNvZGUpIHtcbiAgICAvLyBBU0NJSSBhbHBoYW51bWVyaWNhbCBhbmQgYC1gLlxuICAgIGlmIChjb2RlID09PSA0NSB8fCBhc2NpaUFscGhhbnVtZXJpYyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIHRhZ0Nsb3NlO1xuICAgIH1cbiAgICByZXR1cm4gdGFnQ2xvc2VCZXR3ZWVuKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGNsb3NpbmcgdGFnLCBhZnRlciB0YWcgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPC9iPiBjXG4gICAqICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ0Nsb3NlQmV0d2Vlbihjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcmV0dXJuU3RhdGUgPSB0YWdDbG9zZUJldHdlZW47XG4gICAgICByZXR1cm4gbGluZUVuZGluZ0JlZm9yZShjb2RlKTtcbiAgICB9XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiB0YWdDbG9zZUJldHdlZW47XG4gICAgfVxuICAgIHJldHVybiBlbmQoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYDx4YCwgaW4gb3BlbmluZyB0YWcgbmFtZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPGI+IGNcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0YWdPcGVuKGNvZGUpIHtcbiAgICAvLyBBU0NJSSBhbHBoYW51bWVyaWNhbCBhbmQgYC1gLlxuICAgIGlmIChjb2RlID09PSA0NSB8fCBhc2NpaUFscGhhbnVtZXJpYyhjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIHRhZ09wZW47XG4gICAgfVxuICAgIGlmIChjb2RlID09PSA0NyB8fCBjb2RlID09PSA2MiB8fCBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gdGFnT3BlbkJldHdlZW4oY29kZSk7XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gb3BlbmluZyB0YWcsIGFmdGVyIHRhZyBuYW1lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8Yj4gY1xuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ09wZW5CZXR3ZWVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNDcpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiBlbmQ7XG4gICAgfVxuXG4gICAgLy8gQVNDSUkgYWxwaGFiZXRpY2FsIGFuZCBgOmAgYW5kIGBfYC5cbiAgICBpZiAoY29kZSA9PT0gNTggfHwgY29kZSA9PT0gOTUgfHwgYXNjaWlBbHBoYShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVOYW1lO1xuICAgIH1cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm5TdGF0ZSA9IHRhZ09wZW5CZXR3ZWVuO1xuICAgICAgcmV0dXJuIGxpbmVFbmRpbmdCZWZvcmUoY29kZSk7XG4gICAgfVxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gdGFnT3BlbkJldHdlZW47XG4gICAgfVxuICAgIHJldHVybiBlbmQoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gYXR0cmlidXRlIG5hbWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiIGM+IGRcbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGFnT3BlbkF0dHJpYnV0ZU5hbWUoY29kZSkge1xuICAgIC8vIEFTQ0lJIGFscGhhYmV0aWNhbCBhbmQgYC1gLCBgLmAsIGA6YCwgYW5kIGBfYC5cbiAgICBpZiAoY29kZSA9PT0gNDUgfHwgY29kZSA9PT0gNDYgfHwgY29kZSA9PT0gNTggfHwgY29kZSA9PT0gOTUgfHwgYXNjaWlBbHBoYW51bWVyaWMoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlTmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVOYW1lQWZ0ZXIoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYXR0cmlidXRlIG5hbWUsIGJlZm9yZSBpbml0aWFsaXplciwgdGhlIGVuZCBvZiB0aGUgdGFnLCBvclxuICAgKiB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8YiBjPiBkXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0YWdPcGVuQXR0cmlidXRlTmFtZUFmdGVyKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjEpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlVmFsdWVCZWZvcmU7XG4gICAgfVxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVyblN0YXRlID0gdGFnT3BlbkF0dHJpYnV0ZU5hbWVBZnRlcjtcbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpO1xuICAgIH1cbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVOYW1lQWZ0ZXI7XG4gICAgfVxuICAgIHJldHVybiB0YWdPcGVuQmV0d2Vlbihjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgdW5xdW90ZWQsIGRvdWJsZSBxdW90ZWQsIG9yIHNpbmdsZSBxdW90ZWQgYXR0cmlidXRlIHZhbHVlLCBhbGxvd2luZ1xuICAgKiB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8YiBjPWQ+IGVcbiAgICogICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiB0YWdPcGVuQXR0cmlidXRlVmFsdWVCZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDYwIHx8IGNvZGUgPT09IDYxIHx8IGNvZGUgPT09IDYyIHx8IGNvZGUgPT09IDk2KSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gMzQgfHwgY29kZSA9PT0gMzkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIG1hcmtlciA9IGNvZGU7XG4gICAgICByZXR1cm4gdGFnT3BlbkF0dHJpYnV0ZVZhbHVlUXVvdGVkO1xuICAgIH1cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm5TdGF0ZSA9IHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZUJlZm9yZTtcbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpO1xuICAgIH1cbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZUJlZm9yZTtcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlVmFsdWVVbnF1b3RlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBkb3VibGUgb3Igc2luZ2xlIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiIGM9XCJkXCI+IGVcbiAgICogICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gdGFnT3BlbkF0dHJpYnV0ZVZhbHVlUXVvdGVkKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBtYXJrZXIgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gdGFnT3BlbkF0dHJpYnV0ZVZhbHVlUXVvdGVkQWZ0ZXI7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICByZXR1cm5TdGF0ZSA9IHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVF1b3RlZDtcbiAgICAgIHJldHVybiBsaW5lRW5kaW5nQmVmb3JlKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVF1b3RlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhIDxiIGM9ZD4gZVxuICAgKiAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBjb2RlID09PSAzNCB8fCBjb2RlID09PSAzOSB8fCBjb2RlID09PSA2MCB8fCBjb2RlID09PSA2MSB8fCBjb2RlID09PSA5Nikge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDQ3IHx8IGNvZGUgPT09IDYyIHx8IG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkpIHtcbiAgICAgIHJldHVybiB0YWdPcGVuQmV0d2Vlbihjb2RlKTtcbiAgICB9XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIHJldHVybiB0YWdPcGVuQXR0cmlidXRlVmFsdWVVbnF1b3RlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBkb3VibGUgb3Igc2luZ2xlIHF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUsIGJlZm9yZSB3aGl0ZXNwYWNlIG9yIHRoZSBlbmRcbiAgICogb2YgdGhlIHRhZy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgPGIgYz1cImRcIj4gZVxuICAgKiAgICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHRhZ09wZW5BdHRyaWJ1dGVWYWx1ZVF1b3RlZEFmdGVyKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNDcgfHwgY29kZSA9PT0gNjIgfHwgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSkge1xuICAgICAgcmV0dXJuIHRhZ09wZW5CZXR3ZWVuKGNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcyBvZiBhIHRhZyB3aGVyZSBvbmx5IGFuIGA+YCBpcyBhbGxvd2VkLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8YiBjPVwiZFwiPiBlXG4gICAqICAgICAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gZW5kKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNjIpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImh0bWxUZXh0RGF0YVwiKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImh0bWxUZXh0XCIpO1xuICAgICAgcmV0dXJuIG9rO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0IGVvbC5cbiAgICpcbiAgICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHdlIGNhblx1MjAxOXQgaGF2ZSBibGFuayBsaW5lcyBpbiB0ZXh0LCBzbyBubyBuZWVkIHRvIHdvcnJ5IGFib3V0XG4gICAqID4gZW1wdHkgdG9rZW5zLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSA8IS0tYVxuICAgKiAgICAgICAgICAgIF5cbiAgICogICB8IGItLT5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGxpbmVFbmRpbmdCZWZvcmUoY29kZSkge1xuICAgIGVmZmVjdHMuZXhpdChcImh0bWxUZXh0RGF0YVwiKTtcbiAgICBlZmZlY3RzLmVudGVyKFwibGluZUVuZGluZ1wiKTtcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgZWZmZWN0cy5leGl0KFwibGluZUVuZGluZ1wiKTtcbiAgICByZXR1cm4gbGluZUVuZGluZ0FmdGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGVvbCwgYXQgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHdlIGNhblx1MjAxOXQgaGF2ZSBibGFuayBsaW5lcyBpbiB0ZXh0LCBzbyBubyBuZWVkIHRvIHdvcnJ5IGFib3V0XG4gICAqID4gZW1wdHkgdG9rZW5zLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgYSA8IS0tYVxuICAgKiA+IHwgYi0tPlxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGluZUVuZGluZ0FmdGVyKGNvZGUpIHtcbiAgICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuXG4gICAgcmV0dXJuIG1hcmtkb3duU3BhY2UoY29kZSkgPyBmYWN0b3J5U3BhY2UoZWZmZWN0cywgbGluZUVuZGluZ0FmdGVyUHJlZml4LCBcImxpbmVQcmVmaXhcIiwgc2VsZi5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoJ2NvZGVJbmRlbnRlZCcpID8gdW5kZWZpbmVkIDogNCkoY29kZSkgOiBsaW5lRW5kaW5nQWZ0ZXJQcmVmaXgoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZW9sLCBhZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogd2UgY2FuXHUyMDE5dCBoYXZlIGJsYW5rIGxpbmVzIGluIHRleHQsIHNvIG5vIG5lZWQgdG8gd29ycnkgYWJvdXRcbiAgICogPiBlbXB0eSB0b2tlbnMuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCBhIDwhLS1hXG4gICAqID4gfCBiLS0+XG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBsaW5lRW5kaW5nQWZ0ZXJQcmVmaXgoY29kZSkge1xuICAgIGVmZmVjdHMuZW50ZXIoXCJodG1sVGV4dERhdGFcIik7XG4gICAgcmV0dXJuIHJldHVyblN0YXRlKGNvZGUpO1xuICB9XG59IiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIENvbnN0cnVjdCxcbiAqICAgRXZlbnQsXG4gKiAgIFJlc29sdmVyLFxuICogICBTdGF0ZSxcbiAqICAgVG9rZW5pemVDb250ZXh0LFxuICogICBUb2tlbml6ZXIsXG4gKiAgIFRva2VuXG4gKiB9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IGZhY3RvcnlEZXN0aW5hdGlvbiB9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LWRlc3RpbmF0aW9uJztcbmltcG9ydCB7IGZhY3RvcnlMYWJlbCB9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LWxhYmVsJztcbmltcG9ydCB7IGZhY3RvcnlUaXRsZSB9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXRpdGxlJztcbmltcG9ydCB7IGZhY3RvcnlXaGl0ZXNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktd2hpdGVzcGFjZSc7XG5pbXBvcnQgeyBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbmltcG9ydCB7IHB1c2gsIHNwbGljZSB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNodW5rZWQnO1xuaW1wb3J0IHsgbm9ybWFsaXplSWRlbnRpZmllciB9IGZyb20gJ21pY3JvbWFyay11dGlsLW5vcm1hbGl6ZS1pZGVudGlmaWVyJztcbmltcG9ydCB7IHJlc29sdmVBbGwgfSBmcm9tICdtaWNyb21hcmstdXRpbC1yZXNvbHZlLWFsbCc7XG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmV4cG9ydCBjb25zdCBsYWJlbEVuZCA9IHtcbiAgbmFtZTogJ2xhYmVsRW5kJyxcbiAgcmVzb2x2ZUFsbDogcmVzb2x2ZUFsbExhYmVsRW5kLFxuICByZXNvbHZlVG86IHJlc29sdmVUb0xhYmVsRW5kLFxuICB0b2tlbml6ZTogdG9rZW5pemVMYWJlbEVuZFxufTtcblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5jb25zdCByZXNvdXJjZUNvbnN0cnVjdCA9IHtcbiAgdG9rZW5pemU6IHRva2VuaXplUmVzb3VyY2Vcbn07XG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IHJlZmVyZW5jZUZ1bGxDb25zdHJ1Y3QgPSB7XG4gIHRva2VuaXplOiB0b2tlbml6ZVJlZmVyZW5jZUZ1bGxcbn07XG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IHJlZmVyZW5jZUNvbGxhcHNlZENvbnN0cnVjdCA9IHtcbiAgdG9rZW5pemU6IHRva2VuaXplUmVmZXJlbmNlQ29sbGFwc2VkXG59O1xuXG4vKiogQHR5cGUge1Jlc29sdmVyfSAqL1xuZnVuY3Rpb24gcmVzb2x2ZUFsbExhYmVsRW5kKGV2ZW50cykge1xuICBsZXQgaW5kZXggPSAtMTtcbiAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gIGNvbnN0IG5ld0V2ZW50cyA9IFtdO1xuICB3aGlsZSAoKytpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICBjb25zdCB0b2tlbiA9IGV2ZW50c1tpbmRleF1bMV07XG4gICAgbmV3RXZlbnRzLnB1c2goZXZlbnRzW2luZGV4XSk7XG4gICAgaWYgKHRva2VuLnR5cGUgPT09IFwibGFiZWxJbWFnZVwiIHx8IHRva2VuLnR5cGUgPT09IFwibGFiZWxMaW5rXCIgfHwgdG9rZW4udHlwZSA9PT0gXCJsYWJlbEVuZFwiKSB7XG4gICAgICAvLyBSZW1vdmUgdGhlIG1hcmtlci5cbiAgICAgIGNvbnN0IG9mZnNldCA9IHRva2VuLnR5cGUgPT09IFwibGFiZWxJbWFnZVwiID8gNCA6IDI7XG4gICAgICB0b2tlbi50eXBlID0gXCJkYXRhXCI7XG4gICAgICBpbmRleCArPSBvZmZzZXQ7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGhlIGV2ZW50cyBhcmUgZXF1YWwsIHdlIGRvbid0IGhhdmUgdG8gY29weSBuZXdFdmVudHMgdG8gZXZlbnRzXG4gIGlmIChldmVudHMubGVuZ3RoICE9PSBuZXdFdmVudHMubGVuZ3RoKSB7XG4gICAgc3BsaWNlKGV2ZW50cywgMCwgZXZlbnRzLmxlbmd0aCwgbmV3RXZlbnRzKTtcbiAgfVxuICByZXR1cm4gZXZlbnRzO1xufVxuXG4vKiogQHR5cGUge1Jlc29sdmVyfSAqL1xuZnVuY3Rpb24gcmVzb2x2ZVRvTGFiZWxFbmQoZXZlbnRzLCBjb250ZXh0KSB7XG4gIGxldCBpbmRleCA9IGV2ZW50cy5sZW5ndGg7XG4gIGxldCBvZmZzZXQgPSAwO1xuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBsZXQgdG9rZW47XG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgb3BlbjtcbiAgLyoqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gIGxldCBjbG9zZTtcbiAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gIGxldCBtZWRpYTtcblxuICAvLyBGaW5kIGFuIG9wZW5pbmcuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgdG9rZW4gPSBldmVudHNbaW5kZXhdWzFdO1xuICAgIGlmIChvcGVuKSB7XG4gICAgICAvLyBJZiB3ZSBzZWUgYW5vdGhlciBsaW5rLCBvciBpbmFjdGl2ZSBsaW5rIGxhYmVsLCB3ZVx1MjAxOXZlIGJlZW4gaGVyZSBiZWZvcmUuXG4gICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJsaW5rXCIgfHwgdG9rZW4udHlwZSA9PT0gXCJsYWJlbExpbmtcIiAmJiB0b2tlbi5faW5hY3RpdmUpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIC8vIE1hcmsgb3RoZXIgbGluayBvcGVuaW5ncyBhcyBpbmFjdGl2ZSwgYXMgd2UgY2FuXHUyMDE5dCBoYXZlIGxpbmtzIGluXG4gICAgICAvLyBsaW5rcy5cbiAgICAgIGlmIChldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInICYmIHRva2VuLnR5cGUgPT09IFwibGFiZWxMaW5rXCIpIHtcbiAgICAgICAgdG9rZW4uX2luYWN0aXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNsb3NlKSB7XG4gICAgICBpZiAoZXZlbnRzW2luZGV4XVswXSA9PT0gJ2VudGVyJyAmJiAodG9rZW4udHlwZSA9PT0gXCJsYWJlbEltYWdlXCIgfHwgdG9rZW4udHlwZSA9PT0gXCJsYWJlbExpbmtcIikgJiYgIXRva2VuLl9iYWxhbmNlZCkge1xuICAgICAgICBvcGVuID0gaW5kZXg7XG4gICAgICAgIGlmICh0b2tlbi50eXBlICE9PSBcImxhYmVsTGlua1wiKSB7XG4gICAgICAgICAgb2Zmc2V0ID0gMjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gXCJsYWJlbEVuZFwiKSB7XG4gICAgICBjbG9zZSA9IGluZGV4O1xuICAgIH1cbiAgfVxuICBjb25zdCBncm91cCA9IHtcbiAgICB0eXBlOiBldmVudHNbb3Blbl1bMV0udHlwZSA9PT0gXCJsYWJlbExpbmtcIiA/IFwibGlua1wiIDogXCJpbWFnZVwiLFxuICAgIHN0YXJ0OiB7XG4gICAgICAuLi5ldmVudHNbb3Blbl1bMV0uc3RhcnRcbiAgICB9LFxuICAgIGVuZDoge1xuICAgICAgLi4uZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXVsxXS5lbmRcbiAgICB9XG4gIH07XG4gIGNvbnN0IGxhYmVsID0ge1xuICAgIHR5cGU6IFwibGFiZWxcIixcbiAgICBzdGFydDoge1xuICAgICAgLi4uZXZlbnRzW29wZW5dWzFdLnN0YXJ0XG4gICAgfSxcbiAgICBlbmQ6IHtcbiAgICAgIC4uLmV2ZW50c1tjbG9zZV1bMV0uZW5kXG4gICAgfVxuICB9O1xuICBjb25zdCB0ZXh0ID0ge1xuICAgIHR5cGU6IFwibGFiZWxUZXh0XCIsXG4gICAgc3RhcnQ6IHtcbiAgICAgIC4uLmV2ZW50c1tvcGVuICsgb2Zmc2V0ICsgMl1bMV0uZW5kXG4gICAgfSxcbiAgICBlbmQ6IHtcbiAgICAgIC4uLmV2ZW50c1tjbG9zZSAtIDJdWzFdLnN0YXJ0XG4gICAgfVxuICB9O1xuICBtZWRpYSA9IFtbJ2VudGVyJywgZ3JvdXAsIGNvbnRleHRdLCBbJ2VudGVyJywgbGFiZWwsIGNvbnRleHRdXTtcblxuICAvLyBPcGVuaW5nIG1hcmtlci5cbiAgbWVkaWEgPSBwdXNoKG1lZGlhLCBldmVudHMuc2xpY2Uob3BlbiArIDEsIG9wZW4gKyBvZmZzZXQgKyAzKSk7XG5cbiAgLy8gVGV4dCBvcGVuLlxuICBtZWRpYSA9IHB1c2gobWVkaWEsIFtbJ2VudGVyJywgdGV4dCwgY29udGV4dF1dKTtcblxuICAvLyBBbHdheXMgcG9wdWxhdGVkIGJ5IGRlZmF1bHRzLlxuXG4gIC8vIEJldHdlZW4uXG4gIG1lZGlhID0gcHVzaChtZWRpYSwgcmVzb2x2ZUFsbChjb250ZXh0LnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCwgZXZlbnRzLnNsaWNlKG9wZW4gKyBvZmZzZXQgKyA0LCBjbG9zZSAtIDMpLCBjb250ZXh0KSk7XG5cbiAgLy8gVGV4dCBjbG9zZSwgbWFya2VyIGNsb3NlLCBsYWJlbCBjbG9zZS5cbiAgbWVkaWEgPSBwdXNoKG1lZGlhLCBbWydleGl0JywgdGV4dCwgY29udGV4dF0sIGV2ZW50c1tjbG9zZSAtIDJdLCBldmVudHNbY2xvc2UgLSAxXSwgWydleGl0JywgbGFiZWwsIGNvbnRleHRdXSk7XG5cbiAgLy8gUmVmZXJlbmNlLCByZXNvdXJjZSwgb3Igc28uXG4gIG1lZGlhID0gcHVzaChtZWRpYSwgZXZlbnRzLnNsaWNlKGNsb3NlICsgMSkpO1xuXG4gIC8vIE1lZGlhIGNsb3NlLlxuICBtZWRpYSA9IHB1c2gobWVkaWEsIFtbJ2V4aXQnLCBncm91cCwgY29udGV4dF1dKTtcbiAgc3BsaWNlKGV2ZW50cywgb3BlbiwgZXZlbnRzLmxlbmd0aCwgbWVkaWEpO1xuICByZXR1cm4gZXZlbnRzO1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUxhYmVsRW5kKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gIGxldCBpbmRleCA9IHNlbGYuZXZlbnRzLmxlbmd0aDtcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgbGV0IGxhYmVsU3RhcnQ7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IGRlZmluZWQ7XG5cbiAgLy8gRmluZCBhbiBvcGVuaW5nLlxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGlmICgoc2VsZi5ldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09IFwibGFiZWxJbWFnZVwiIHx8IHNlbGYuZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSBcImxhYmVsTGlua1wiKSAmJiAhc2VsZi5ldmVudHNbaW5kZXhdWzFdLl9iYWxhbmNlZCkge1xuICAgICAgbGFiZWxTdGFydCA9IHNlbGYuZXZlbnRzW2luZGV4XVsxXTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGxhYmVsIGVuZC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiKSBjXG4gICAqICAgICAgIF5cbiAgICogPiB8IFthXVtiXSBjXG4gICAqICAgICAgIF5cbiAgICogPiB8IFthXVtdIGJcbiAgICogICAgICAgXlxuICAgKiA+IHwgW2FdIGJcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAvLyBJZiB0aGVyZSBpcyBub3QgYW4gb2theSBvcGVuaW5nLlxuICAgIGlmICghbGFiZWxTdGFydCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgY29ycmVzcG9uZGluZyBsYWJlbCAobGluaykgc3RhcnQgaXMgbWFya2VkIGFzIGluYWN0aXZlLFxuICAgIC8vIGl0IG1lYW5zIHdlXHUyMDE5ZCBiZSB3cmFwcGluZyBhIGxpbmssIGxpa2UgdGhpczpcbiAgICAvL1xuICAgIC8vIGBgYG1hcmtkb3duXG4gICAgLy8gPiB8IGEgW2IgW2NdKGQpIGVdKGYpIGcuXG4gICAgLy8gICAgICAgICAgICAgICAgICBeXG4gICAgLy8gYGBgXG4gICAgLy9cbiAgICAvLyBXZSBjYW5cdTIwMTl0IGhhdmUgdGhhdCwgc28gaXRcdTIwMTlzIGp1c3QgYmFsYW5jZWQgYnJhY2tldHMuXG4gICAgaWYgKGxhYmVsU3RhcnQuX2luYWN0aXZlKSB7XG4gICAgICByZXR1cm4gbGFiZWxFbmROb2soY29kZSk7XG4gICAgfVxuICAgIGRlZmluZWQgPSBzZWxmLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKG5vcm1hbGl6ZUlkZW50aWZpZXIoc2VsZi5zbGljZVNlcmlhbGl6ZSh7XG4gICAgICBzdGFydDogbGFiZWxTdGFydC5lbmQsXG4gICAgICBlbmQ6IHNlbGYubm93KClcbiAgICB9KSkpO1xuICAgIGVmZmVjdHMuZW50ZXIoXCJsYWJlbEVuZFwiKTtcbiAgICBlZmZlY3RzLmVudGVyKFwibGFiZWxNYXJrZXJcIik7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIGVmZmVjdHMuZXhpdChcImxhYmVsTWFya2VyXCIpO1xuICAgIGVmZmVjdHMuZXhpdChcImxhYmVsRW5kXCIpO1xuICAgIHJldHVybiBhZnRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgXWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgY1xuICAgKiAgICAgICBeXG4gICAqID4gfCBbYV1bYl0gY1xuICAgKiAgICAgICBeXG4gICAqID4gfCBbYV1bXSBiXG4gICAqICAgICAgIF5cbiAgICogPiB8IFthXSBiXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICAvLyBOb3RlOiBgbWFya2Rvd24tcnNgIGFsc28gcGFyc2VzIEdGTSBmb290bm90ZXMgaGVyZSwgd2hpY2ggZm9yIHVzIGlzIGluXG4gICAgLy8gYW4gZXh0ZW5zaW9uLlxuXG4gICAgLy8gUmVzb3VyY2UgKGBbYXNkXShmZ2gpYCk/XG4gICAgaWYgKGNvZGUgPT09IDQwKSB7XG4gICAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KHJlc291cmNlQ29uc3RydWN0LCBsYWJlbEVuZE9rLCBkZWZpbmVkID8gbGFiZWxFbmRPayA6IGxhYmVsRW5kTm9rKShjb2RlKTtcbiAgICB9XG5cbiAgICAvLyBGdWxsIChgW2FzZF1bZmdoXWApIG9yIGNvbGxhcHNlZCAoYFthc2RdW11gKSByZWZlcmVuY2U/XG4gICAgaWYgKGNvZGUgPT09IDkxKSB7XG4gICAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KHJlZmVyZW5jZUZ1bGxDb25zdHJ1Y3QsIGxhYmVsRW5kT2ssIGRlZmluZWQgPyByZWZlcmVuY2VOb3RGdWxsIDogbGFiZWxFbmROb2spKGNvZGUpO1xuICAgIH1cblxuICAgIC8vIFNob3J0Y3V0IChgW2FzZF1gKSByZWZlcmVuY2U/XG4gICAgcmV0dXJuIGRlZmluZWQgPyBsYWJlbEVuZE9rKGNvZGUpIDogbGFiZWxFbmROb2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYF1gLCBhdCBgW2AsIGJ1dCBub3QgYXQgYSBmdWxsIHJlZmVyZW5jZS5cbiAgICpcbiAgICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHdlIG9ubHkgZ2V0IGhlcmUgaWYgdGhlIGxhYmVsIGlzIGRlZmluZWQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV1bXSBiXG4gICAqICAgICAgICBeXG4gICAqID4gfCBbYV0gYlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVmZXJlbmNlTm90RnVsbChjb2RlKSB7XG4gICAgcmV0dXJuIGVmZmVjdHMuYXR0ZW1wdChyZWZlcmVuY2VDb2xsYXBzZWRDb25zdHJ1Y3QsIGxhYmVsRW5kT2ssIGxhYmVsRW5kTm9rKShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEb25lLCB3ZSBmb3VuZCBzb21ldGhpbmcuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgY1xuICAgKiAgICAgICAgICAgXlxuICAgKiA+IHwgW2FdW2JdIGNcbiAgICogICAgICAgICAgIF5cbiAgICogPiB8IFthXVtdIGJcbiAgICogICAgICAgICAgXlxuICAgKiA+IHwgW2FdIGJcbiAgICogICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGxhYmVsRW5kT2soY29kZSkge1xuICAgIC8vIE5vdGU6IGBtYXJrZG93bi1yc2AgZG9lcyBhIGJ1bmNoIG9mIHN0dWZmIGhlcmUuXG4gICAgcmV0dXJuIG9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERvbmUsIGl0XHUyMDE5cyBub3RoaW5nLlxuICAgKlxuICAgKiBUaGVyZSB3YXMgYW4gb2theSBvcGVuaW5nLCBidXQgd2UgZGlkblx1MjAxOXQgbWF0Y2ggYW55dGhpbmcuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYiBjXG4gICAqICAgICAgICBeXG4gICAqID4gfCBbYV1bYiBjXG4gICAqICAgICAgICBeXG4gICAqID4gfCBbYV0gYlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGFiZWxFbmROb2soY29kZSkge1xuICAgIGxhYmVsU3RhcnQuX2JhbGFuY2VkID0gdHJ1ZTtcbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqICAgQ29udGV4dC5cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplUmVzb3VyY2UoZWZmZWN0cywgb2ssIG5vaykge1xuICByZXR1cm4gcmVzb3VyY2VTdGFydDtcblxuICAvKipcbiAgICogQXQgYSByZXNvdXJjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiKSBjXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZXNvdXJjZVN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKFwicmVzb3VyY2VcIik7XG4gICAgZWZmZWN0cy5lbnRlcihcInJlc291cmNlTWFya2VyXCIpO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICBlZmZlY3RzLmV4aXQoXCJyZXNvdXJjZU1hcmtlclwiKTtcbiAgICByZXR1cm4gcmVzb3VyY2VCZWZvcmU7XG4gIH1cblxuICAvKipcbiAgICogSW4gcmVzb3VyY2UsIGFmdGVyIGAoYCwgYXQgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiKSBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVzb3VyY2VCZWZvcmUoY29kZSkge1xuICAgIHJldHVybiBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpID8gZmFjdG9yeVdoaXRlc3BhY2UoZWZmZWN0cywgcmVzb3VyY2VPcGVuKShjb2RlKSA6IHJlc291cmNlT3Blbihjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByZXNvdXJjZSwgYWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZSwgYXQgYClgIG9yIGEgZGVzdGluYXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgY1xuICAgKiAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHJlc291cmNlT3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQxKSB7XG4gICAgICByZXR1cm4gcmVzb3VyY2VFbmQoY29kZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWN0b3J5RGVzdGluYXRpb24oZWZmZWN0cywgcmVzb3VyY2VEZXN0aW5hdGlvbkFmdGVyLCByZXNvdXJjZURlc3RpbmF0aW9uTWlzc2luZywgXCJyZXNvdXJjZURlc3RpbmF0aW9uXCIsIFwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWxcIiwgXCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlclwiLCBcInJlc291cmNlRGVzdGluYXRpb25SYXdcIiwgXCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nXCIsIDMyKShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByZXNvdXJjZSwgYWZ0ZXIgZGVzdGluYXRpb24sIGF0IG9wdGlvbmFsIHdoaXRlc3BhY2UuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oYikgY1xuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZXNvdXJjZURlc3RpbmF0aW9uQWZ0ZXIoY29kZSkge1xuICAgIHJldHVybiBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpID8gZmFjdG9yeVdoaXRlc3BhY2UoZWZmZWN0cywgcmVzb3VyY2VCZXR3ZWVuKShjb2RlKSA6IHJlc291cmNlRW5kKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0IGludmFsaWQgZGVzdGluYXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV0oPDwpIGJcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZXNvdXJjZURlc3RpbmF0aW9uTWlzc2luZyhjb2RlKSB7XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByZXNvdXJjZSwgYWZ0ZXIgZGVzdGluYXRpb24gYW5kIHdoaXRlc3BhY2UsIGF0IGAoYCBvciB0aXRsZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXShiICkgY1xuICAgKiAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVzb3VyY2VCZXR3ZWVuKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gMzQgfHwgY29kZSA9PT0gMzkgfHwgY29kZSA9PT0gNDApIHtcbiAgICAgIHJldHVybiBmYWN0b3J5VGl0bGUoZWZmZWN0cywgcmVzb3VyY2VUaXRsZUFmdGVyLCBub2ssIFwicmVzb3VyY2VUaXRsZVwiLCBcInJlc291cmNlVGl0bGVNYXJrZXJcIiwgXCJyZXNvdXJjZVRpdGxlU3RyaW5nXCIpKGNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb3VyY2VFbmQoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gcmVzb3VyY2UsIGFmdGVyIHRpdGxlLCBhdCBvcHRpb25hbCB3aGl0ZXNwYWNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdKGIgXCJjXCIpIGRcbiAgICogICAgICAgICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHJlc291cmNlVGl0bGVBZnRlcihjb2RlKSB7XG4gICAgcmV0dXJuIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkgPyBmYWN0b3J5V2hpdGVzcGFjZShlZmZlY3RzLCByZXNvdXJjZUVuZCkoY29kZSkgOiByZXNvdXJjZUVuZChjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByZXNvdXJjZSwgYXQgYClgLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdKGIpIGRcbiAgICogICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVzb3VyY2VFbmQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0MSkge1xuICAgICAgZWZmZWN0cy5lbnRlcihcInJlc291cmNlTWFya2VyXCIpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KFwicmVzb3VyY2VNYXJrZXJcIik7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJyZXNvdXJjZVwiKTtcbiAgICAgIHJldHVybiBvaztcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVJlZmVyZW5jZUZ1bGwoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpcztcbiAgcmV0dXJuIHJlZmVyZW5jZUZ1bGw7XG5cbiAgLyoqXG4gICAqIEluIGEgcmVmZXJlbmNlIChmdWxsKSwgYXQgdGhlIGBbYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFthXVtiXSBkXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZWZlcmVuY2VGdWxsKGNvZGUpIHtcbiAgICByZXR1cm4gZmFjdG9yeUxhYmVsLmNhbGwoc2VsZiwgZWZmZWN0cywgcmVmZXJlbmNlRnVsbEFmdGVyLCByZWZlcmVuY2VGdWxsTWlzc2luZywgXCJyZWZlcmVuY2VcIiwgXCJyZWZlcmVuY2VNYXJrZXJcIiwgXCJyZWZlcmVuY2VTdHJpbmdcIikoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gYSByZWZlcmVuY2UgKGZ1bGwpLCBhZnRlciBgXWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV1bYl0gZFxuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZWZlcmVuY2VGdWxsQWZ0ZXIoY29kZSkge1xuICAgIHJldHVybiBzZWxmLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKG5vcm1hbGl6ZUlkZW50aWZpZXIoc2VsZi5zbGljZVNlcmlhbGl6ZShzZWxmLmV2ZW50c1tzZWxmLmV2ZW50cy5sZW5ndGggLSAxXVsxXSkuc2xpY2UoMSwgLTEpKSkgPyBvayhjb2RlKSA6IG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByZWZlcmVuY2UgKGZ1bGwpIHRoYXQgd2FzIG1pc3NpbmcuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV1bYiBkXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiByZWZlcmVuY2VGdWxsTWlzc2luZyhjb2RlKSB7XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVJlZmVyZW5jZUNvbGxhcHNlZChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiByZWZlcmVuY2VDb2xsYXBzZWRTdGFydDtcblxuICAvKipcbiAgICogSW4gcmVmZXJlbmNlIChjb2xsYXBzZWQpLCBhdCBgW2AuXG4gICAqXG4gICAqID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiB3ZSBvbmx5IGdldCBoZXJlIGlmIHRoZSBsYWJlbCBpcyBkZWZpbmVkLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW2FdW10gZFxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVmZXJlbmNlQ29sbGFwc2VkU3RhcnQoY29kZSkge1xuICAgIC8vIFdlIG9ubHkgYXR0ZW1wdCBhIGNvbGxhcHNlZCBsYWJlbCBpZiB0aGVyZVx1MjAxOXMgYSBgW2AuXG5cbiAgICBlZmZlY3RzLmVudGVyKFwicmVmZXJlbmNlXCIpO1xuICAgIGVmZmVjdHMuZW50ZXIoXCJyZWZlcmVuY2VNYXJrZXJcIik7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIGVmZmVjdHMuZXhpdChcInJlZmVyZW5jZU1hcmtlclwiKTtcbiAgICByZXR1cm4gcmVmZXJlbmNlQ29sbGFwc2VkT3BlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByZWZlcmVuY2UgKGNvbGxhcHNlZCksIGF0IGBdYC5cbiAgICpcbiAgICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHdlIG9ubHkgZ2V0IGhlcmUgaWYgdGhlIGxhYmVsIGlzIGRlZmluZWQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbYV1bXSBkXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHJlZmVyZW5jZUNvbGxhcHNlZE9wZW4oY29kZSkge1xuICAgIGlmIChjb2RlID09PSA5Mykge1xuICAgICAgZWZmZWN0cy5lbnRlcihcInJlZmVyZW5jZU1hcmtlclwiKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcInJlZmVyZW5jZU1hcmtlclwiKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcInJlZmVyZW5jZVwiKTtcbiAgICAgIHJldHVybiBvaztcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb25zdHJ1Y3QsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHQsXG4gKiAgIFRva2VuaXplclxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBsYWJlbEVuZCB9IGZyb20gJy4vbGFiZWwtZW5kLmpzJztcblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgbGFiZWxTdGFydEltYWdlID0ge1xuICBuYW1lOiAnbGFiZWxTdGFydEltYWdlJyxcbiAgcmVzb2x2ZUFsbDogbGFiZWxFbmQucmVzb2x2ZUFsbCxcbiAgdG9rZW5pemU6IHRva2VuaXplTGFiZWxTdGFydEltYWdlXG59O1xuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUxhYmVsU3RhcnRJbWFnZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIGxhYmVsIChpbWFnZSkgc3RhcnQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhICFbYl0gY1xuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcihcImxhYmVsSW1hZ2VcIik7XG4gICAgZWZmZWN0cy5lbnRlcihcImxhYmVsSW1hZ2VNYXJrZXJcIik7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIGVmZmVjdHMuZXhpdChcImxhYmVsSW1hZ2VNYXJrZXJcIik7XG4gICAgcmV0dXJuIG9wZW47XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYCFgLCBhdCBgW2AuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBhICFbYl0gY1xuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gb3Blbihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDkxKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKFwibGFiZWxNYXJrZXJcIik7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJsYWJlbE1hcmtlclwiKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImxhYmVsSW1hZ2VcIik7XG4gICAgICByZXR1cm4gYWZ0ZXI7XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgYCFbYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgIVtiXSBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogVGhpcyBpcyBuZWVkZWQgaW4gYmVjYXVzZSwgd2hlbiBHRk0gZm9vdG5vdGVzIGFyZSBlbmFibGVkLCBpbWFnZXMgbmV2ZXJcbiAgICogZm9ybSB3aGVuIHN0YXJ0ZWQgd2l0aCBhIGBeYC5cbiAgICogSW5zdGVhZCwgbGlua3MgZm9ybTpcbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogIVteYV0oYilcbiAgICpcbiAgICogIVteYV1bYl1cbiAgICpcbiAgICogW2JdOiBjXG4gICAqIGBgYFxuICAgKlxuICAgKiBgYGBodG1sXG4gICAqIDxwPiE8YSBocmVmPVxcXCJiXFxcIj5eYTwvYT48L3A+XG4gICAqIDxwPiE8YSBocmVmPVxcXCJjXFxcIj5eYTwvYT48L3A+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgLy8gVG8gZG86IHVzZSBhIG5ldyBmaWVsZCB0byBkbyB0aGlzLCB0aGlzIGlzIHN0aWxsIG5lZWRlZCBmb3JcbiAgICAvLyBgbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGVgLCBidXQgdGhlIGBsYWJlbC1zdGFydC1saW5rYFxuICAgIC8vIGJlaGF2aW9yIGlzblx1MjAxOXQuXG4gICAgLy8gSGlkZGVuIGZvb3Rub3RlcyBob29rLlxuICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICByZXR1cm4gY29kZSA9PT0gOTQgJiYgJ19oaWRkZW5Gb290bm90ZVN1cHBvcnQnIGluIHNlbGYucGFyc2VyLmNvbnN0cnVjdHMgPyBub2soY29kZSkgOiBvayhjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb25zdHJ1Y3QsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHQsXG4gKiAgIFRva2VuaXplclxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBsYWJlbEVuZCB9IGZyb20gJy4vbGFiZWwtZW5kLmpzJztcblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgbGFiZWxTdGFydExpbmsgPSB7XG4gIG5hbWU6ICdsYWJlbFN0YXJ0TGluaycsXG4gIHJlc29sdmVBbGw6IGxhYmVsRW5kLnJlc29sdmVBbGwsXG4gIHRva2VuaXplOiB0b2tlbml6ZUxhYmVsU3RhcnRMaW5rXG59O1xuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUxhYmVsU3RhcnRMaW5rKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gIHJldHVybiBzdGFydDtcblxuICAvKipcbiAgICogU3RhcnQgb2YgbGFiZWwgKGxpbmspIHN0YXJ0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSBbYl0gY1xuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcihcImxhYmVsTGlua1wiKTtcbiAgICBlZmZlY3RzLmVudGVyKFwibGFiZWxNYXJrZXJcIik7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIGVmZmVjdHMuZXhpdChcImxhYmVsTWFya2VyXCIpO1xuICAgIGVmZmVjdHMuZXhpdChcImxhYmVsTGlua1wiKTtcbiAgICByZXR1cm4gYWZ0ZXI7XG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgLy8gVG8gZG86IHRoaXMgaXNuXHUyMDE5dCBuZWVkZWQgaW4gYG1pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWZvb3Rub3RlYCxcbiAgICAvLyByZW1vdmUuXG4gICAgLy8gSGlkZGVuIGZvb3Rub3RlcyBob29rLlxuICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICByZXR1cm4gY29kZSA9PT0gOTQgJiYgJ19oaWRkZW5Gb290bm90ZVN1cHBvcnQnIGluIHNlbGYucGFyc2VyLmNvbnN0cnVjdHMgPyBub2soY29kZSkgOiBvayhjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb25zdHJ1Y3QsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHQsXG4gKiAgIFRva2VuaXplclxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBmYWN0b3J5U3BhY2UgfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSc7XG5pbXBvcnQgeyBtYXJrZG93bkxpbmVFbmRpbmcgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgbGluZUVuZGluZyA9IHtcbiAgbmFtZTogJ2xpbmVFbmRpbmcnLFxuICB0b2tlbml6ZTogdG9rZW5pemVMaW5lRW5kaW5nXG59O1xuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUxpbmVFbmRpbmcoZWZmZWN0cywgb2spIHtcbiAgcmV0dXJuIHN0YXJ0O1xuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKFwibGluZUVuZGluZ1wiKTtcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgZWZmZWN0cy5leGl0KFwibGluZUVuZGluZ1wiKTtcbiAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIG9rLCBcImxpbmVQcmVmaXhcIik7XG4gIH1cbn0iLCAiLyoqXG4gKiBAaW1wb3J0IHtcbiAqICAgQ29kZSxcbiAqICAgQ29uc3RydWN0LFxuICogICBTdGF0ZSxcbiAqICAgVG9rZW5pemVDb250ZXh0LFxuICogICBUb2tlbml6ZXJcbiAqIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuaW1wb3J0IHsgZmFjdG9yeVNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnO1xuaW1wb3J0IHsgbWFya2Rvd25MaW5lRW5kaW5nLCBtYXJrZG93blNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IHRoZW1hdGljQnJlYWsgPSB7XG4gIG5hbWU6ICd0aGVtYXRpY0JyZWFrJyxcbiAgdG9rZW5pemU6IHRva2VuaXplVGhlbWF0aWNCcmVha1xufTtcblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVUaGVtYXRpY0JyZWFrKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgbGV0IHNpemUgPSAwO1xuICAvKiogQHR5cGUge05vbk51bGxhYmxlPENvZGU+fSAqL1xuICBsZXQgbWFya2VyO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IG9mIHRoZW1hdGljIGJyZWFrLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgKioqXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcihcInRoZW1hdGljQnJlYWtcIik7XG4gICAgLy8gVG8gZG86IHBhcnNlIGluZGVudCBsaWtlIGBtYXJrZG93bi1yc2AuXG4gICAgcmV0dXJuIGJlZm9yZShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBvcHRpb25hbCB3aGl0ZXNwYWNlLCBhdCBtYXJrZXIuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAqKipcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZm9yZShjb2RlKSB7XG4gICAgbWFya2VyID0gY29kZTtcbiAgICByZXR1cm4gYXRCcmVhayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBzb21ldGhpbmcsIGJlZm9yZSBzb21ldGhpbmcgZWxzZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICoqKlxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYXRCcmVhayhjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgZWZmZWN0cy5lbnRlcihcInRoZW1hdGljQnJlYWtTZXF1ZW5jZVwiKTtcbiAgICAgIHJldHVybiBzZXF1ZW5jZShjb2RlKTtcbiAgICB9XG4gICAgaWYgKHNpemUgPj0gMyAmJiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJ0aGVtYXRpY0JyZWFrXCIpO1xuICAgICAgcmV0dXJuIG9rKGNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIHNlcXVlbmNlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgKioqXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzZXF1ZW5jZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG1hcmtlcikge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgc2l6ZSsrO1xuICAgICAgcmV0dXJuIHNlcXVlbmNlO1xuICAgIH1cbiAgICBlZmZlY3RzLmV4aXQoXCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2VcIik7XG4gICAgcmV0dXJuIG1hcmtkb3duU3BhY2UoY29kZSkgPyBmYWN0b3J5U3BhY2UoZWZmZWN0cywgYXRCcmVhaywgXCJ3aGl0ZXNwYWNlXCIpKGNvZGUpIDogYXRCcmVhayhjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb2RlLFxuICogICBDb25zdHJ1Y3QsXG4gKiAgIEV4aXRlcixcbiAqICAgU3RhdGUsXG4gKiAgIFRva2VuaXplQ29udGV4dCxcbiAqICAgVG9rZW5pemVyXG4gKiB9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IGZhY3RvcnlTcGFjZSB9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJztcbmltcG9ydCB7IGFzY2lpRGlnaXQsIG1hcmtkb3duU3BhY2UgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuaW1wb3J0IHsgYmxhbmtMaW5lIH0gZnJvbSAnLi9ibGFuay1saW5lLmpzJztcbmltcG9ydCB7IHRoZW1hdGljQnJlYWsgfSBmcm9tICcuL3RoZW1hdGljLWJyZWFrLmpzJztcblxuLyoqIEB0eXBlIHtDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgbGlzdCA9IHtcbiAgY29udGludWF0aW9uOiB7XG4gICAgdG9rZW5pemU6IHRva2VuaXplTGlzdENvbnRpbnVhdGlvblxuICB9LFxuICBleGl0OiB0b2tlbml6ZUxpc3RFbmQsXG4gIG5hbWU6ICdsaXN0JyxcbiAgdG9rZW5pemU6IHRva2VuaXplTGlzdFN0YXJ0XG59O1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IGxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZUNvbnN0cnVjdCA9IHtcbiAgcGFydGlhbDogdHJ1ZSxcbiAgdG9rZW5pemU6IHRva2VuaXplTGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlXG59O1xuXG4vKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbmNvbnN0IGluZGVudENvbnN0cnVjdCA9IHtcbiAgcGFydGlhbDogdHJ1ZSxcbiAgdG9rZW5pemU6IHRva2VuaXplSW5kZW50XG59O1xuXG4vLyBUbyBkbzogYG1hcmtkb3duLXJzYCBwYXJzZXMgbGlzdCBpdGVtcyBvbiB0aGVpciBvd24gYW5kIGxhdGVyIHN0aXRjaGVzIHRoZW1cbi8vIHRvZ2V0aGVyLlxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZUxpc3RTdGFydChlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICBjb25zdCB0YWlsID0gc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV07XG4gIGxldCBpbml0aWFsU2l6ZSA9IHRhaWwgJiYgdGFpbFsxXS50eXBlID09PSBcImxpbmVQcmVmaXhcIiA/IHRhaWxbMl0uc2xpY2VTZXJpYWxpemUodGFpbFsxXSwgdHJ1ZSkubGVuZ3RoIDogMDtcbiAgbGV0IHNpemUgPSAwO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIGNvbnN0IGtpbmQgPSBzZWxmLmNvbnRhaW5lclN0YXRlLnR5cGUgfHwgKGNvZGUgPT09IDQyIHx8IGNvZGUgPT09IDQzIHx8IGNvZGUgPT09IDQ1ID8gXCJsaXN0VW5vcmRlcmVkXCIgOiBcImxpc3RPcmRlcmVkXCIpO1xuICAgIGlmIChraW5kID09PSBcImxpc3RVbm9yZGVyZWRcIiA/ICFzZWxmLmNvbnRhaW5lclN0YXRlLm1hcmtlciB8fCBjb2RlID09PSBzZWxmLmNvbnRhaW5lclN0YXRlLm1hcmtlciA6IGFzY2lpRGlnaXQoY29kZSkpIHtcbiAgICAgIGlmICghc2VsZi5jb250YWluZXJTdGF0ZS50eXBlKSB7XG4gICAgICAgIHNlbGYuY29udGFpbmVyU3RhdGUudHlwZSA9IGtpbmQ7XG4gICAgICAgIGVmZmVjdHMuZW50ZXIoa2luZCwge1xuICAgICAgICAgIF9jb250YWluZXI6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoa2luZCA9PT0gXCJsaXN0VW5vcmRlcmVkXCIpIHtcbiAgICAgICAgZWZmZWN0cy5lbnRlcihcImxpc3RJdGVtUHJlZml4XCIpO1xuICAgICAgICByZXR1cm4gY29kZSA9PT0gNDIgfHwgY29kZSA9PT0gNDUgPyBlZmZlY3RzLmNoZWNrKHRoZW1hdGljQnJlYWssIG5vaywgYXRNYXJrZXIpKGNvZGUpIDogYXRNYXJrZXIoY29kZSk7XG4gICAgICB9XG4gICAgICBpZiAoIXNlbGYuaW50ZXJydXB0IHx8IGNvZGUgPT09IDQ5KSB7XG4gICAgICAgIGVmZmVjdHMuZW50ZXIoXCJsaXN0SXRlbVByZWZpeFwiKTtcbiAgICAgICAgZWZmZWN0cy5lbnRlcihcImxpc3RJdGVtVmFsdWVcIik7XG4gICAgICAgIHJldHVybiBpbnNpZGUoY29kZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSk7XG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBpbnNpZGUoY29kZSkge1xuICAgIGlmIChhc2NpaURpZ2l0KGNvZGUpICYmICsrc2l6ZSA8IDEwKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gaW5zaWRlO1xuICAgIH1cbiAgICBpZiAoKCFzZWxmLmludGVycnVwdCB8fCBzaXplIDwgMikgJiYgKHNlbGYuY29udGFpbmVyU3RhdGUubWFya2VyID8gY29kZSA9PT0gc2VsZi5jb250YWluZXJTdGF0ZS5tYXJrZXIgOiBjb2RlID09PSA0MSB8fCBjb2RlID09PSA0NikpIHtcbiAgICAgIGVmZmVjdHMuZXhpdChcImxpc3RJdGVtVmFsdWVcIik7XG4gICAgICByZXR1cm4gYXRNYXJrZXIoY29kZSk7XG4gICAgfVxuICAgIHJldHVybiBub2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKiovXG4gIGZ1bmN0aW9uIGF0TWFya2VyKGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKFwibGlzdEl0ZW1NYXJrZXJcIik7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIGVmZmVjdHMuZXhpdChcImxpc3RJdGVtTWFya2VyXCIpO1xuICAgIHNlbGYuY29udGFpbmVyU3RhdGUubWFya2VyID0gc2VsZi5jb250YWluZXJTdGF0ZS5tYXJrZXIgfHwgY29kZTtcbiAgICByZXR1cm4gZWZmZWN0cy5jaGVjayhibGFua0xpbmUsXG4gICAgLy8gQ2FuXHUyMDE5dCBiZSBlbXB0eSB3aGVuIGludGVycnVwdGluZy5cbiAgICBzZWxmLmludGVycnVwdCA/IG5vayA6IG9uQmxhbmssIGVmZmVjdHMuYXR0ZW1wdChsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2VDb25zdHJ1Y3QsIGVuZE9mUHJlZml4LCBvdGhlclByZWZpeCkpO1xuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gb25CbGFuayhjb2RlKSB7XG4gICAgc2VsZi5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lID0gdHJ1ZTtcbiAgICBpbml0aWFsU2l6ZSsrO1xuICAgIHJldHVybiBlbmRPZlByZWZpeChjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIG90aGVyUHJlZml4KGNvZGUpIHtcbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcihcImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZVwiKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdChcImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZVwiKTtcbiAgICAgIHJldHVybiBlbmRPZlByZWZpeDtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGVuZE9mUHJlZml4KGNvZGUpIHtcbiAgICBzZWxmLmNvbnRhaW5lclN0YXRlLnNpemUgPSBpbml0aWFsU2l6ZSArIHNlbGYuc2xpY2VTZXJpYWxpemUoZWZmZWN0cy5leGl0KFwibGlzdEl0ZW1QcmVmaXhcIiksIHRydWUpLmxlbmd0aDtcbiAgICByZXR1cm4gb2soY29kZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVMaXN0Q29udGludWF0aW9uKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gIHNlbGYuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdyA9IHVuZGVmaW5lZDtcbiAgcmV0dXJuIGVmZmVjdHMuY2hlY2soYmxhbmtMaW5lLCBvbkJsYW5rLCBub3RCbGFuayk7XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gb25CbGFuayhjb2RlKSB7XG4gICAgc2VsZi5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcyA9IHNlbGYuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXMgfHwgc2VsZi5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lO1xuXG4gICAgLy8gV2UgaGF2ZSBhIGJsYW5rIGxpbmUuXG4gICAgLy8gU3RpbGwsIHRyeSB0byBjb25zdW1lIGF0IG1vc3QgdGhlIGl0ZW1zIHNpemUuXG4gICAgcmV0dXJuIGZhY3RvcnlTcGFjZShlZmZlY3RzLCBvaywgXCJsaXN0SXRlbUluZGVudFwiLCBzZWxmLmNvbnRhaW5lclN0YXRlLnNpemUgKyAxKShjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIG5vdEJsYW5rKGNvZGUpIHtcbiAgICBpZiAoc2VsZi5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcyB8fCAhbWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgc2VsZi5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcyA9IHVuZGVmaW5lZDtcbiAgICAgIHNlbGYuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBub3RJbkN1cnJlbnRJdGVtKGNvZGUpO1xuICAgIH1cbiAgICBzZWxmLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzID0gdW5kZWZpbmVkO1xuICAgIHNlbGYuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KGluZGVudENvbnN0cnVjdCwgb2ssIG5vdEluQ3VycmVudEl0ZW0pKGNvZGUpO1xuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gbm90SW5DdXJyZW50SXRlbShjb2RlKSB7XG4gICAgLy8gV2hpbGUgd2UgZG8gY29udGludWUsIHdlIHNpZ25hbCB0aGF0IHRoZSBmbG93IHNob3VsZCBiZSBjbG9zZWQuXG4gICAgc2VsZi5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93ID0gdHJ1ZTtcbiAgICAvLyBBcyB3ZVx1MjAxOXJlIGNsb3NpbmcgZmxvdywgd2VcdTIwMTlyZSBubyBsb25nZXIgaW50ZXJydXB0aW5nLlxuICAgIHNlbGYuaW50ZXJydXB0ID0gdW5kZWZpbmVkO1xuICAgIC8vIEFsd2F5cyBwb3B1bGF0ZWQgYnkgZGVmYXVsdHMuXG5cbiAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGVmZmVjdHMuYXR0ZW1wdChsaXN0LCBvaywgbm9rKSwgXCJsaW5lUHJlZml4XCIsIHNlbGYucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCdjb2RlSW5kZW50ZWQnKSA/IHVuZGVmaW5lZCA6IDQpKGNvZGUpO1xuICB9XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqICAgQ29udGV4dC5cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplSW5kZW50KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgYWZ0ZXJQcmVmaXgsIFwibGlzdEl0ZW1JbmRlbnRcIiwgc2VsZi5jb250YWluZXJTdGF0ZS5zaXplICsgMSk7XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gYWZ0ZXJQcmVmaXgoY29kZSkge1xuICAgIGNvbnN0IHRhaWwgPSBzZWxmLmV2ZW50c1tzZWxmLmV2ZW50cy5sZW5ndGggLSAxXTtcbiAgICByZXR1cm4gdGFpbCAmJiB0YWlsWzFdLnR5cGUgPT09IFwibGlzdEl0ZW1JbmRlbnRcIiAmJiB0YWlsWzJdLnNsaWNlU2VyaWFsaXplKHRhaWxbMV0sIHRydWUpLmxlbmd0aCA9PT0gc2VsZi5jb250YWluZXJTdGF0ZS5zaXplID8gb2soY29kZSkgOiBub2soY29kZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge0V4aXRlcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVMaXN0RW5kKGVmZmVjdHMpIHtcbiAgZWZmZWN0cy5leGl0KHRoaXMuY29udGFpbmVyU3RhdGUudHlwZSk7XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqICAgQ29udGV4dC5cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplTGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG5cbiAgLy8gQWx3YXlzIHBvcHVsYXRlZCBieSBkZWZhdWx0cy5cblxuICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGFmdGVyUHJlZml4LCBcImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZVwiLCBzZWxmLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygnY29kZUluZGVudGVkJykgPyB1bmRlZmluZWQgOiA0ICsgMSk7XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gYWZ0ZXJQcmVmaXgoY29kZSkge1xuICAgIGNvbnN0IHRhaWwgPSBzZWxmLmV2ZW50c1tzZWxmLmV2ZW50cy5sZW5ndGggLSAxXTtcbiAgICByZXR1cm4gIW1hcmtkb3duU3BhY2UoY29kZSkgJiYgdGFpbCAmJiB0YWlsWzFdLnR5cGUgPT09IFwibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlXCIgPyBvayhjb2RlKSA6IG5vayhjb2RlKTtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb2RlLFxuICogICBDb25zdHJ1Y3QsXG4gKiAgIFJlc29sdmVyLFxuICogICBTdGF0ZSxcbiAqICAgVG9rZW5pemVDb250ZXh0LFxuICogICBUb2tlbml6ZXJcbiAqIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuaW1wb3J0IHsgZmFjdG9yeVNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnO1xuaW1wb3J0IHsgbWFya2Rvd25MaW5lRW5kaW5nLCBtYXJrZG93blNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IHNldGV4dFVuZGVybGluZSA9IHtcbiAgbmFtZTogJ3NldGV4dFVuZGVybGluZScsXG4gIHJlc29sdmVUbzogcmVzb2x2ZVRvU2V0ZXh0VW5kZXJsaW5lLFxuICB0b2tlbml6ZTogdG9rZW5pemVTZXRleHRVbmRlcmxpbmVcbn07XG5cbi8qKiBAdHlwZSB7UmVzb2x2ZXJ9ICovXG5mdW5jdGlvbiByZXNvbHZlVG9TZXRleHRVbmRlcmxpbmUoZXZlbnRzLCBjb250ZXh0KSB7XG4gIC8vIFRvIGRvOiByZXNvbHZlIGxpa2UgYG1hcmtkb3duLXJzYC5cbiAgbGV0IGluZGV4ID0gZXZlbnRzLmxlbmd0aDtcbiAgLyoqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gIGxldCBjb250ZW50O1xuICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHRleHQ7XG4gIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgZGVmaW5pdGlvbjtcblxuICAvLyBGaW5kIHRoZSBvcGVuaW5nIG9mIHRoZSBjb250ZW50LlxuICAvLyBJdFx1MjAxOWxsIGFsd2F5cyBleGlzdDogd2UgZG9uXHUyMDE5dCB0b2tlbml6ZSBpZiBpdCBpc25cdTIwMTl0IHRoZXJlLlxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGlmIChldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInKSB7XG4gICAgICBpZiAoZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSBcImNvbnRlbnRcIikge1xuICAgICAgICBjb250ZW50ID0gaW5kZXg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gXCJwYXJhZ3JhcGhcIikge1xuICAgICAgICB0ZXh0ID0gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEV4aXRcbiAgICBlbHNlIHtcbiAgICAgIGlmIChldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09IFwiY29udGVudFwiKSB7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgY29udGVudCBlbmQgKGlmIG5lZWRlZCB3ZVx1MjAxOWxsIGFkZCBpdCBsYXRlcilcbiAgICAgICAgZXZlbnRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgICBpZiAoIWRlZmluaXRpb24gJiYgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSBcImRlZmluaXRpb25cIikge1xuICAgICAgICBkZWZpbml0aW9uID0gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IGhlYWRpbmcgPSB7XG4gICAgdHlwZTogXCJzZXRleHRIZWFkaW5nXCIsXG4gICAgc3RhcnQ6IHtcbiAgICAgIC4uLmV2ZW50c1tjb250ZW50XVsxXS5zdGFydFxuICAgIH0sXG4gICAgZW5kOiB7XG4gICAgICAuLi5ldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdWzFdLmVuZFxuICAgIH1cbiAgfTtcblxuICAvLyBDaGFuZ2UgdGhlIHBhcmFncmFwaCB0byBzZXRleHQgaGVhZGluZyB0ZXh0LlxuICBldmVudHNbdGV4dF1bMV0udHlwZSA9IFwic2V0ZXh0SGVhZGluZ1RleHRcIjtcblxuICAvLyBJZiB3ZSBoYXZlIGRlZmluaXRpb25zIGluIHRoZSBjb250ZW50LCB3ZVx1MjAxOWxsIGtlZXAgb24gaGF2aW5nIGNvbnRlbnQsXG4gIC8vIGJ1dCB3ZSBuZWVkIG1vdmUgaXQuXG4gIGlmIChkZWZpbml0aW9uKSB7XG4gICAgZXZlbnRzLnNwbGljZSh0ZXh0LCAwLCBbJ2VudGVyJywgaGVhZGluZywgY29udGV4dF0pO1xuICAgIGV2ZW50cy5zcGxpY2UoZGVmaW5pdGlvbiArIDEsIDAsIFsnZXhpdCcsIGV2ZW50c1tjb250ZW50XVsxXSwgY29udGV4dF0pO1xuICAgIGV2ZW50c1tjb250ZW50XVsxXS5lbmQgPSB7XG4gICAgICAuLi5ldmVudHNbZGVmaW5pdGlvbl1bMV0uZW5kXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBldmVudHNbY29udGVudF1bMV0gPSBoZWFkaW5nO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBoZWFkaW5nIGV4aXQgYXQgdGhlIGVuZC5cbiAgZXZlbnRzLnB1c2goWydleGl0JywgaGVhZGluZywgY29udGV4dF0pO1xuICByZXR1cm4gZXZlbnRzO1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVNldGV4dFVuZGVybGluZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAvKiogQHR5cGUge05vbk51bGxhYmxlPENvZGU+fSAqL1xuICBsZXQgbWFya2VyO1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqXG4gICAqIEF0IHN0YXJ0IG9mIGhlYWRpbmcgKHNldGV4dCkgdW5kZXJsaW5lLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgYWFcbiAgICogPiB8ID09XG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgbGV0IGluZGV4ID0gc2VsZi5ldmVudHMubGVuZ3RoO1xuICAgIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgcGFyYWdyYXBoO1xuICAgIC8vIEZpbmQgYW4gb3BlbmluZy5cbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgLy8gU2tpcCBlbnRlci9leGl0IG9mIGxpbmUgZW5kaW5nLCBsaW5lIHByZWZpeCwgYW5kIGNvbnRlbnQuXG4gICAgICAvLyBXZSBjYW4gbm93IGVpdGhlciBoYXZlIGEgZGVmaW5pdGlvbiBvciBhIHBhcmFncmFwaC5cbiAgICAgIGlmIChzZWxmLmV2ZW50c1tpbmRleF1bMV0udHlwZSAhPT0gXCJsaW5lRW5kaW5nXCIgJiYgc2VsZi5ldmVudHNbaW5kZXhdWzFdLnR5cGUgIT09IFwibGluZVByZWZpeFwiICYmIHNlbGYuZXZlbnRzW2luZGV4XVsxXS50eXBlICE9PSBcImNvbnRlbnRcIikge1xuICAgICAgICBwYXJhZ3JhcGggPSBzZWxmLmV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gXCJwYXJhZ3JhcGhcIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVG8gZG86IGhhbmRsZSBsYXp5L3BpZXJjZSBsaWtlIGBtYXJrZG93bi1yc2AuXG4gICAgLy8gVG8gZG86IHBhcnNlIGluZGVudCBsaWtlIGBtYXJrZG93bi1yc2AuXG4gICAgaWYgKCFzZWxmLnBhcnNlci5sYXp5W3NlbGYubm93KCkubGluZV0gJiYgKHNlbGYuaW50ZXJydXB0IHx8IHBhcmFncmFwaCkpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoXCJzZXRleHRIZWFkaW5nTGluZVwiKTtcbiAgICAgIG1hcmtlciA9IGNvZGU7XG4gICAgICByZXR1cm4gYmVmb3JlKGNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIG9wdGlvbmFsIHdoaXRlc3BhY2UsIGF0IGAtYCBvciBgPWAuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCBhYVxuICAgKiA+IHwgPT1cbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJlZm9yZShjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcihcInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2VcIik7XG4gICAgcmV0dXJuIGluc2lkZShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBzZXF1ZW5jZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IGFhXG4gICAqID4gfCA9PVxuICAgKiAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaW5zaWRlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbWFya2VyKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gaW5zaWRlO1xuICAgIH1cbiAgICBlZmZlY3RzLmV4aXQoXCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlXCIpO1xuICAgIHJldHVybiBtYXJrZG93blNwYWNlKGNvZGUpID8gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGFmdGVyLCBcImxpbmVTdWZmaXhcIikoY29kZSkgOiBhZnRlcihjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBzZXF1ZW5jZSwgYWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IGFhXG4gICAqID4gfCA9PVxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJzZXRleHRIZWFkaW5nTGluZVwiKTtcbiAgICAgIHJldHVybiBvayhjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxufSIsICJleHBvcnQgeyBhdHRlbnRpb24gfSBmcm9tICcuL2xpYi9hdHRlbnRpb24uanMnO1xuZXhwb3J0IHsgYXV0b2xpbmsgfSBmcm9tICcuL2xpYi9hdXRvbGluay5qcyc7XG5leHBvcnQgeyBibGFua0xpbmUgfSBmcm9tICcuL2xpYi9ibGFuay1saW5lLmpzJztcbmV4cG9ydCB7IGJsb2NrUXVvdGUgfSBmcm9tICcuL2xpYi9ibG9jay1xdW90ZS5qcyc7XG5leHBvcnQgeyBjaGFyYWN0ZXJFc2NhcGUgfSBmcm9tICcuL2xpYi9jaGFyYWN0ZXItZXNjYXBlLmpzJztcbmV4cG9ydCB7IGNoYXJhY3RlclJlZmVyZW5jZSB9IGZyb20gJy4vbGliL2NoYXJhY3Rlci1yZWZlcmVuY2UuanMnO1xuZXhwb3J0IHsgY29kZUZlbmNlZCB9IGZyb20gJy4vbGliL2NvZGUtZmVuY2VkLmpzJztcbmV4cG9ydCB7IGNvZGVJbmRlbnRlZCB9IGZyb20gJy4vbGliL2NvZGUtaW5kZW50ZWQuanMnO1xuZXhwb3J0IHsgY29kZVRleHQgfSBmcm9tICcuL2xpYi9jb2RlLXRleHQuanMnO1xuZXhwb3J0IHsgY29udGVudCB9IGZyb20gJy4vbGliL2NvbnRlbnQuanMnO1xuZXhwb3J0IHsgZGVmaW5pdGlvbiB9IGZyb20gJy4vbGliL2RlZmluaXRpb24uanMnO1xuZXhwb3J0IHsgaGFyZEJyZWFrRXNjYXBlIH0gZnJvbSAnLi9saWIvaGFyZC1icmVhay1lc2NhcGUuanMnO1xuZXhwb3J0IHsgaGVhZGluZ0F0eCB9IGZyb20gJy4vbGliL2hlYWRpbmctYXR4LmpzJztcbmV4cG9ydCB7IGh0bWxGbG93IH0gZnJvbSAnLi9saWIvaHRtbC1mbG93LmpzJztcbmV4cG9ydCB7IGh0bWxUZXh0IH0gZnJvbSAnLi9saWIvaHRtbC10ZXh0LmpzJztcbmV4cG9ydCB7IGxhYmVsRW5kIH0gZnJvbSAnLi9saWIvbGFiZWwtZW5kLmpzJztcbmV4cG9ydCB7IGxhYmVsU3RhcnRJbWFnZSB9IGZyb20gJy4vbGliL2xhYmVsLXN0YXJ0LWltYWdlLmpzJztcbmV4cG9ydCB7IGxhYmVsU3RhcnRMaW5rIH0gZnJvbSAnLi9saWIvbGFiZWwtc3RhcnQtbGluay5qcyc7XG5leHBvcnQgeyBsaW5lRW5kaW5nIH0gZnJvbSAnLi9saWIvbGluZS1lbmRpbmcuanMnO1xuZXhwb3J0IHsgbGlzdCB9IGZyb20gJy4vbGliL2xpc3QuanMnO1xuZXhwb3J0IHsgc2V0ZXh0VW5kZXJsaW5lIH0gZnJvbSAnLi9saWIvc2V0ZXh0LXVuZGVybGluZS5qcyc7XG5leHBvcnQgeyB0aGVtYXRpY0JyZWFrIH0gZnJvbSAnLi9saWIvdGhlbWF0aWMtYnJlYWsuanMnOyIsICIvKipcbiAqIEBpbXBvcnQge0V2ZW50LCBFeGl0ZXIsIEV4dGVuc2lvbiwgUmVzb2x2ZXIsIFN0YXRlLCBUb2tlbiwgVG9rZW5pemVDb250ZXh0LCBUb2tlbml6ZXJ9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IGJsYW5rTGluZSB9IGZyb20gJ21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsnO1xuaW1wb3J0IHsgZmFjdG9yeVNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnO1xuaW1wb3J0IHsgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcic7XG5pbXBvcnQgeyBub3JtYWxpemVJZGVudGlmaWVyIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtbm9ybWFsaXplLWlkZW50aWZpZXInO1xuY29uc3QgaW5kZW50ID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVJbmRlbnQsXG4gIHBhcnRpYWw6IHRydWVcbn07XG5cbi8vIFRvIGRvOiBtaWNyb21hcmsgc2hvdWxkIHN1cHBvcnQgYSBgX2hpZGRlbkdmbUZvb3Rub3RlU3VwcG9ydGAsIHdoaWNoIG9ubHlcbi8vIGFmZmVjdHMgbGFiZWwgc3RhcnQgKGltYWdlKS5cbi8vIFRoYXQgd2lsbCBsZXQgdXMgZHJvcCBgdG9rZW5pemVQb3RlbnRpYWxHZm1Gb290bm90ZSpgLlxuLy8gSXQgY3VycmVudGx5IGhhcyBhIGBfaGlkZGVuRm9vdG5vdGVTdXBwb3J0YCwgd2hpY2ggYWZmZWN0cyB0aGF0IGFuZCBtb3JlLlxuLy8gVGhhdCBjYW4gYmUgcmVtb3ZlZCB3aGVuIGBtaWNyb21hcmstZXh0ZW5zaW9uLWZvb3Rub3RlYCBpcyBhcmNoaXZlZC5cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0byBlbmFibGUgR0ZNIGZvb3Rub3RlIHN5bnRheC5cbiAqXG4gKiBAcmV0dXJucyB7RXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRoYXQgY2FuIGJlIHBhc3NlZCBpbiBgZXh0ZW5zaW9uc2AgdG9cbiAqICAgZW5hYmxlIEdGTSBmb290bm90ZSBzeW50YXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1Gb290bm90ZSgpIHtcbiAgLyoqIEB0eXBlIHtFeHRlbnNpb259ICovXG4gIHJldHVybiB7XG4gICAgZG9jdW1lbnQ6IHtcbiAgICAgIFs5MV06IHtcbiAgICAgICAgbmFtZTogJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbicsXG4gICAgICAgIHRva2VuaXplOiB0b2tlbml6ZURlZmluaXRpb25TdGFydCxcbiAgICAgICAgY29udGludWF0aW9uOiB7XG4gICAgICAgICAgdG9rZW5pemU6IHRva2VuaXplRGVmaW5pdGlvbkNvbnRpbnVhdGlvblxuICAgICAgICB9LFxuICAgICAgICBleGl0OiBnZm1Gb290bm90ZURlZmluaXRpb25FbmRcbiAgICAgIH1cbiAgICB9LFxuICAgIHRleHQ6IHtcbiAgICAgIFs5MV06IHtcbiAgICAgICAgbmFtZTogJ2dmbUZvb3Rub3RlQ2FsbCcsXG4gICAgICAgIHRva2VuaXplOiB0b2tlbml6ZUdmbUZvb3Rub3RlQ2FsbFxuICAgICAgfSxcbiAgICAgIFs5M106IHtcbiAgICAgICAgbmFtZTogJ2dmbVBvdGVudGlhbEZvb3Rub3RlQ2FsbCcsXG4gICAgICAgIGFkZDogJ2FmdGVyJyxcbiAgICAgICAgdG9rZW5pemU6IHRva2VuaXplUG90ZW50aWFsR2ZtRm9vdG5vdGVDYWxsLFxuICAgICAgICByZXNvbHZlVG86IHJlc29sdmVUb1BvdGVudGlhbEdmbUZvb3Rub3RlQ2FsbFxuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuLy8gVG8gZG86IHJlbW92ZSBhZnRlciBtaWNyb21hcmsgdXBkYXRlLlxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVQb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpcztcbiAgbGV0IGluZGV4ID0gc2VsZi5ldmVudHMubGVuZ3RoO1xuICBjb25zdCBkZWZpbmVkID0gc2VsZi5wYXJzZXIuZ2ZtRm9vdG5vdGVzIHx8IChzZWxmLnBhcnNlci5nZm1Gb290bm90ZXMgPSBbXSk7XG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGxldCBsYWJlbFN0YXJ0O1xuXG4gIC8vIEZpbmQgYW4gb3BlbmluZy5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBjb25zdCB0b2tlbiA9IHNlbGYuZXZlbnRzW2luZGV4XVsxXTtcbiAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJsYWJlbEltYWdlXCIpIHtcbiAgICAgIGxhYmVsU3RhcnQgPSB0b2tlbjtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIEV4aXQgaWYgd2VcdTIwMTl2ZSB3YWxrZWQgZmFyIGVub3VnaC5cbiAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2dmbUZvb3Rub3RlQ2FsbCcgfHwgdG9rZW4udHlwZSA9PT0gXCJsYWJlbExpbmtcIiB8fCB0b2tlbi50eXBlID09PSBcImxhYmVsXCIgfHwgdG9rZW4udHlwZSA9PT0gXCJpbWFnZVwiIHx8IHRva2VuLnR5cGUgPT09IFwibGlua1wiKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0YXJ0O1xuXG4gIC8qKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgaWYgKCFsYWJlbFN0YXJ0IHx8ICFsYWJlbFN0YXJ0Ll9iYWxhbmNlZCkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG4gICAgY29uc3QgaWQgPSBub3JtYWxpemVJZGVudGlmaWVyKHNlbGYuc2xpY2VTZXJpYWxpemUoe1xuICAgICAgc3RhcnQ6IGxhYmVsU3RhcnQuZW5kLFxuICAgICAgZW5kOiBzZWxmLm5vdygpXG4gICAgfSkpO1xuICAgIGlmIChpZC5jb2RlUG9pbnRBdCgwKSAhPT0gOTQgfHwgIWRlZmluZWQuaW5jbHVkZXMoaWQuc2xpY2UoMSkpKSB7XG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlcicpO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICBlZmZlY3RzLmV4aXQoJ2dmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyJyk7XG4gICAgcmV0dXJuIG9rKGNvZGUpO1xuICB9XG59XG5cbi8vIFRvIGRvOiByZW1vdmUgYWZ0ZXIgbWljcm9tYXJrIHVwZGF0ZS5cbi8qKiBAdHlwZSB7UmVzb2x2ZXJ9ICovXG5mdW5jdGlvbiByZXNvbHZlVG9Qb3RlbnRpYWxHZm1Gb290bm90ZUNhbGwoZXZlbnRzLCBjb250ZXh0KSB7XG4gIGxldCBpbmRleCA9IGV2ZW50cy5sZW5ndGg7XG4gIC8qKiBAdHlwZSB7VG9rZW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBsYWJlbFN0YXJ0O1xuXG4gIC8vIEZpbmQgYW4gb3BlbmluZy5cbiAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICBpZiAoZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSBcImxhYmVsSW1hZ2VcIiAmJiBldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInKSB7XG4gICAgICBsYWJlbFN0YXJ0ID0gZXZlbnRzW2luZGV4XVsxXTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICAvLyBDaGFuZ2UgdGhlIGBsYWJlbEltYWdlTWFya2VyYCB0byBhIGBkYXRhYC5cbiAgZXZlbnRzW2luZGV4ICsgMV1bMV0udHlwZSA9IFwiZGF0YVwiO1xuICBldmVudHNbaW5kZXggKyAzXVsxXS50eXBlID0gJ2dmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyJztcblxuICAvLyBUaGUgd2hvbGUgKHdpdGhvdXQgYCFgKTpcbiAgLyoqIEB0eXBlIHtUb2tlbn0gKi9cbiAgY29uc3QgY2FsbCA9IHtcbiAgICB0eXBlOiAnZ2ZtRm9vdG5vdGVDYWxsJyxcbiAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2luZGV4ICsgM11bMV0uc3RhcnQpLFxuICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXVsxXS5lbmQpXG4gIH07XG4gIC8vIFRoZSBgXmAgbWFya2VyXG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGNvbnN0IG1hcmtlciA9IHtcbiAgICB0eXBlOiAnZ2ZtRm9vdG5vdGVDYWxsTWFya2VyJyxcbiAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2luZGV4ICsgM11bMV0uZW5kKSxcbiAgICBlbmQ6IE9iamVjdC5hc3NpZ24oe30sIGV2ZW50c1tpbmRleCArIDNdWzFdLmVuZClcbiAgfTtcbiAgLy8gSW5jcmVtZW50IHRoZSBlbmQgMSBjaGFyYWN0ZXIuXG4gIG1hcmtlci5lbmQuY29sdW1uKys7XG4gIG1hcmtlci5lbmQub2Zmc2V0Kys7XG4gIG1hcmtlci5lbmQuX2J1ZmZlckluZGV4Kys7XG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGNvbnN0IHN0cmluZyA9IHtcbiAgICB0eXBlOiAnZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nJyxcbiAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgbWFya2VyLmVuZCksXG4gICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdWzFdLnN0YXJ0KVxuICB9O1xuICAvKiogQHR5cGUge1Rva2VufSAqL1xuICBjb25zdCBjaHVuayA9IHtcbiAgICB0eXBlOiBcImNodW5rU3RyaW5nXCIsXG4gICAgY29udGVudFR5cGU6ICdzdHJpbmcnLFxuICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCBzdHJpbmcuc3RhcnQpLFxuICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgc3RyaW5nLmVuZClcbiAgfTtcblxuICAvKiogQHR5cGUge0FycmF5PEV2ZW50Pn0gKi9cbiAgY29uc3QgcmVwbGFjZW1lbnQgPSBbXG4gIC8vIFRha2UgdGhlIGBsYWJlbEltYWdlTWFya2VyYCAobm93IGBkYXRhYCwgdGhlIGAhYClcbiAgZXZlbnRzW2luZGV4ICsgMV0sIGV2ZW50c1tpbmRleCArIDJdLCBbJ2VudGVyJywgY2FsbCwgY29udGV4dF0sXG4gIC8vIFRoZSBgW2BcbiAgZXZlbnRzW2luZGV4ICsgM10sIGV2ZW50c1tpbmRleCArIDRdLFxuICAvLyBUaGUgYF5gLlxuICBbJ2VudGVyJywgbWFya2VyLCBjb250ZXh0XSwgWydleGl0JywgbWFya2VyLCBjb250ZXh0XSxcbiAgLy8gRXZlcnl0aGluZyBpbiBiZXR3ZWVuLlxuICBbJ2VudGVyJywgc3RyaW5nLCBjb250ZXh0XSwgWydlbnRlcicsIGNodW5rLCBjb250ZXh0XSwgWydleGl0JywgY2h1bmssIGNvbnRleHRdLCBbJ2V4aXQnLCBzdHJpbmcsIGNvbnRleHRdLFxuICAvLyBUaGUgZW5kaW5nIChgXWAsIHByb3Blcmx5IHBhcnNlZCBhbmQgbGFiZWxsZWQpLlxuICBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDJdLCBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLCBbJ2V4aXQnLCBjYWxsLCBjb250ZXh0XV07XG4gIGV2ZW50cy5zcGxpY2UoaW5kZXgsIGV2ZW50cy5sZW5ndGggLSBpbmRleCArIDEsIC4uLnJlcGxhY2VtZW50KTtcbiAgcmV0dXJuIGV2ZW50cztcbn1cblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogQHR5cGUge1Rva2VuaXplcn1cbiAqL1xuZnVuY3Rpb24gdG9rZW5pemVHZm1Gb290bm90ZUNhbGwoZWZmZWN0cywgb2ssIG5vaykge1xuICBjb25zdCBzZWxmID0gdGhpcztcbiAgY29uc3QgZGVmaW5lZCA9IHNlbGYucGFyc2VyLmdmbUZvb3Rub3RlcyB8fCAoc2VsZi5wYXJzZXIuZ2ZtRm9vdG5vdGVzID0gW10pO1xuICBsZXQgc2l6ZSA9IDA7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IGRhdGE7XG5cbiAgLy8gTm90ZTogdGhlIGltcGxlbWVudGF0aW9uIG9mIGBtYXJrZG93bi1yc2AgaXMgZGlmZmVyZW50LCBiZWNhdXNlIGl0IGhvdXNlc1xuICAvLyBjb3JlICphbmQqIGV4dGVuc2lvbnMgaW4gb25lIHByb2plY3QuXG4gIC8vIFRoZXJlZm9yZSwgaXQgY2FuIGluY2x1ZGUgZm9vdG5vdGUgbG9naWMgaW5zaWRlIGBsYWJlbC1lbmRgLlxuICAvLyBXZSBjYW5cdTIwMTl0IGRvIHRoYXQsIGJ1dCBsdWNraWx5LCB3ZSBjYW4gcGFyc2UgZm9vdG5vdGVzIGluIGEgc2ltcGxlciB3YXkgdGhhblxuICAvLyBuZWVkZWQgZm9yIGxhYmVscy5cbiAgcmV0dXJuIHN0YXJ0O1xuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBmb290bm90ZSBsYWJlbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgW15iXSBjXG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZUNhbGwnKTtcbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlcicpO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICBlZmZlY3RzLmV4aXQoJ2dmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyJyk7XG4gICAgcmV0dXJuIGNhbGxTdGFydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgW2AsIGF0IGBeYC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgW15iXSBjXG4gICAqICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjYWxsU3RhcnQoY29kZSkge1xuICAgIGlmIChjb2RlICE9PSA5NCkgcmV0dXJuIG5vayhjb2RlKTtcbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZUNhbGxNYXJrZXInKTtcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZUNhbGxNYXJrZXInKTtcbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZUNhbGxTdHJpbmcnKTtcbiAgICBlZmZlY3RzLmVudGVyKCdjaHVua1N0cmluZycpLmNvbnRlbnRUeXBlID0gJ3N0cmluZyc7XG4gICAgcmV0dXJuIGNhbGxEYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGxhYmVsLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgYSBbXmJdIGNcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjYWxsRGF0YShjb2RlKSB7XG4gICAgaWYgKFxuICAgIC8vIFRvbyBsb25nLlxuICAgIHNpemUgPiA5OTkgfHxcbiAgICAvLyBDbG9zaW5nIGJyYWNlIHdpdGggbm90aGluZy5cbiAgICBjb2RlID09PSA5MyAmJiAhZGF0YSB8fFxuICAgIC8vIFNwYWNlIG9yIHRhYiBpcyBub3Qgc3VwcG9ydGVkIGJ5IEdGTSBmb3Igc29tZSByZWFzb24uXG4gICAgLy8gYFxcbmAgYW5kIGBbYCBub3QgYmVpbmcgc3VwcG9ydGVkIG1ha2VzIHNlbnNlLlxuICAgIGNvZGUgPT09IG51bGwgfHwgY29kZSA9PT0gOTEgfHwgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDkzKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ2NodW5rU3RyaW5nJyk7XG4gICAgICBjb25zdCB0b2tlbiA9IGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nJyk7XG4gICAgICBpZiAoIWRlZmluZWQuaW5jbHVkZXMobm9ybWFsaXplSWRlbnRpZmllcihzZWxmLnNsaWNlU2VyaWFsaXplKHRva2VuKSkpKSB7XG4gICAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgICB9XG4gICAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlcicpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlcicpO1xuICAgICAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZUNhbGwnKTtcbiAgICAgIHJldHVybiBvaztcbiAgICB9XG4gICAgaWYgKCFtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlKGNvZGUpKSB7XG4gICAgICBkYXRhID0gdHJ1ZTtcbiAgICB9XG4gICAgc2l6ZSsrO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICByZXR1cm4gY29kZSA9PT0gOTIgPyBjYWxsRXNjYXBlIDogY2FsbERhdGE7XG4gIH1cblxuICAvKipcbiAgICogT24gY2hhcmFjdGVyIGFmdGVyIGVzY2FwZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IGEgW15iXFxjXSBkXG4gICAqICAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBjYWxsRXNjYXBlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gOTEgfHwgY29kZSA9PT0gOTIgfHwgY29kZSA9PT0gOTMpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHNpemUrKztcbiAgICAgIHJldHVybiBjYWxsRGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIGNhbGxEYXRhKGNvZGUpO1xuICB9XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplRGVmaW5pdGlvblN0YXJ0KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gIGNvbnN0IGRlZmluZWQgPSBzZWxmLnBhcnNlci5nZm1Gb290bm90ZXMgfHwgKHNlbGYucGFyc2VyLmdmbUZvb3Rub3RlcyA9IFtdKTtcbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBpZGVudGlmaWVyO1xuICBsZXQgc2l6ZSA9IDA7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGRhdGE7XG4gIHJldHVybiBzdGFydDtcblxuICAvKipcbiAgICogU3RhcnQgb2YgR0ZNIGZvb3Rub3RlIGRlZmluaXRpb24uXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCBbXmFdOiBiXG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVEZWZpbml0aW9uJykuX2NvbnRhaW5lciA9IHRydWU7XG4gICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwnKTtcbiAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlcicpO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICBlZmZlY3RzLmV4aXQoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyJyk7XG4gICAgcmV0dXJuIGxhYmVsQXRNYXJrZXI7XG4gIH1cblxuICAvKipcbiAgICogSW4gbGFiZWwsIGF0IGNhcmV0LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW15hXTogYlxuICAgKiAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGxhYmVsQXRNYXJrZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA5NCkge1xuICAgICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTWFya2VyJyk7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlcicpO1xuICAgICAgZWZmZWN0cy5lbnRlcignZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcnKTtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2NodW5rU3RyaW5nJykuY29udGVudFR5cGUgPSAnc3RyaW5nJztcbiAgICAgIHJldHVybiBsYWJlbEluc2lkZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBsYWJlbC5cbiAgICpcbiAgICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGBjbWFyay1nZm1gIHByZXZlbnRzIHdoaXRlc3BhY2UgZnJvbSBvY2N1cnJpbmcgaW4gZm9vdG5vdGVcbiAgICogPiBkZWZpbml0aW9uIGxhYmVscy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFteYV06IGJcbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGFiZWxJbnNpZGUoY29kZSkge1xuICAgIGlmIChcbiAgICAvLyBUb28gbG9uZy5cbiAgICBzaXplID4gOTk5IHx8XG4gICAgLy8gQ2xvc2luZyBicmFjZSB3aXRoIG5vdGhpbmcuXG4gICAgY29kZSA9PT0gOTMgJiYgIWRhdGEgfHxcbiAgICAvLyBTcGFjZSBvciB0YWIgaXMgbm90IHN1cHBvcnRlZCBieSBHRk0gZm9yIHNvbWUgcmVhc29uLlxuICAgIC8vIGBcXG5gIGFuZCBgW2Agbm90IGJlaW5nIHN1cHBvcnRlZCBtYWtlcyBzZW5zZS5cbiAgICBjb2RlID09PSBudWxsIHx8IGNvZGUgPT09IDkxIHx8IG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkpIHtcbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSA5Mykge1xuICAgICAgZWZmZWN0cy5leGl0KCdjaHVua1N0cmluZycpO1xuICAgICAgY29uc3QgdG9rZW4gPSBlZmZlY3RzLmV4aXQoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nJyk7XG4gICAgICBpZGVudGlmaWVyID0gbm9ybWFsaXplSWRlbnRpZmllcihzZWxmLnNsaWNlU2VyaWFsaXplKHRva2VuKSk7XG4gICAgICBlZmZlY3RzLmVudGVyKCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlcicpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlcicpO1xuICAgICAgZWZmZWN0cy5leGl0KCdnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbCcpO1xuICAgICAgcmV0dXJuIGxhYmVsQWZ0ZXI7XG4gICAgfVxuICAgIGlmICghbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSkge1xuICAgICAgZGF0YSA9IHRydWU7XG4gICAgfVxuICAgIHNpemUrKztcbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIGNvZGUgPT09IDkyID8gbGFiZWxFc2NhcGUgOiBsYWJlbEluc2lkZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBgXFxgLCBhdCBhIHNwZWNpYWwgY2hhcmFjdGVyLlxuICAgKlxuICAgKiA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogYGNtYXJrLWdmbWAgY3VycmVudGx5IGRvZXMgbm90IHN1cHBvcnQgZXNjYXBlZCBicmFja2V0czpcbiAgICogPiA8aHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9jbWFyay1nZm0vaXNzdWVzLzI0MD5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFteYVxcKmJdOiBjXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gbGFiZWxFc2NhcGUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA5MSB8fCBjb2RlID09PSA5MiB8fCBjb2RlID09PSA5Mykge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgc2l6ZSsrO1xuICAgICAgcmV0dXJuIGxhYmVsSW5zaWRlO1xuICAgIH1cbiAgICByZXR1cm4gbGFiZWxJbnNpZGUoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZGVmaW5pdGlvbiBsYWJlbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IFteYV06IGJcbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBsYWJlbEFmdGVyKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gNTgpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2RlZmluaXRpb25NYXJrZXInKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdCgnZGVmaW5pdGlvbk1hcmtlcicpO1xuICAgICAgaWYgKCFkZWZpbmVkLmluY2x1ZGVzKGlkZW50aWZpZXIpKSB7XG4gICAgICAgIGRlZmluZWQucHVzaChpZGVudGlmaWVyKTtcbiAgICAgIH1cblxuICAgICAgLy8gQW55IHdoaXRlc3BhY2UgYWZ0ZXIgdGhlIG1hcmtlciBpcyBlYXRlbiwgZm9ybWluZyBpbmRlbnRlZCBjb2RlXG4gICAgICAvLyBpcyBub3QgcG9zc2libGUuXG4gICAgICAvLyBObyBzcGFjZSBpcyBhbHNvIGZpbmUsIGp1c3QgbGlrZSBhIGJsb2NrIHF1b3RlIG1hcmtlci5cbiAgICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgd2hpdGVzcGFjZUFmdGVyLCAnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uV2hpdGVzcGFjZScpO1xuICAgIH1cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGRlZmluaXRpb24gcHJlZml4LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgW15hXTogYlxuICAgKiAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gd2hpdGVzcGFjZUFmdGVyKGNvZGUpIHtcbiAgICAvLyBgbWFya2Rvd24tcnNgIGhhcyBhIHdyYXBwaW5nIHRva2VuIGZvciB0aGUgcHJlZml4IHRoYXQgaXMgY2xvc2VkIGhlcmUuXG4gICAgcmV0dXJuIG9rKGNvZGUpO1xuICB9XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplRGVmaW5pdGlvbkNvbnRpbnVhdGlvbihlZmZlY3RzLCBvaywgbm9rKSB7XG4gIC8vLyBTdGFydCBvZiBmb290bm90ZSBkZWZpbml0aW9uIGNvbnRpbnVhdGlvbi5cbiAgLy8vXG4gIC8vLyBgYGBtYXJrZG93blxuICAvLy8gICB8IFteYV06IGJcbiAgLy8vID4gfCAgICAgY1xuICAvLy8gICAgIF5cbiAgLy8vIGBgYFxuICAvL1xuICAvLyBFaXRoZXIgYSBibGFuayBsaW5lLCB3aGljaCBpcyBva2F5LCBvciBhbiBpbmRlbnRlZCB0aGluZy5cbiAgcmV0dXJuIGVmZmVjdHMuY2hlY2soYmxhbmtMaW5lLCBvaywgZWZmZWN0cy5hdHRlbXB0KGluZGVudCwgb2ssIG5vaykpO1xufVxuXG4vKiogQHR5cGUge0V4aXRlcn0gKi9cbmZ1bmN0aW9uIGdmbUZvb3Rub3RlRGVmaW5pdGlvbkVuZChlZmZlY3RzKSB7XG4gIGVmZmVjdHMuZXhpdCgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uJyk7XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplSW5kZW50KGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgYWZ0ZXJQcmVmaXgsICdnZm1Gb290bm90ZURlZmluaXRpb25JbmRlbnQnLCA0ICsgMSk7XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGFmdGVyUHJlZml4KGNvZGUpIHtcbiAgICBjb25zdCB0YWlsID0gc2VsZi5ldmVudHNbc2VsZi5ldmVudHMubGVuZ3RoIC0gMV07XG4gICAgcmV0dXJuIHRhaWwgJiYgdGFpbFsxXS50eXBlID09PSAnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50JyAmJiB0YWlsWzJdLnNsaWNlU2VyaWFsaXplKHRhaWxbMV0sIHRydWUpLmxlbmd0aCA9PT0gNCA/IG9rKGNvZGUpIDogbm9rKGNvZGUpO1xuICB9XG59IiwgIi8qKlxuICogQGltcG9ydCB7SHRtbE9wdGlvbnMgYXMgT3B0aW9uc30gZnJvbSAnbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tZm9vdG5vdGUnXG4gKiBAaW1wb3J0IHtIdG1sRXh0ZW5zaW9ufSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBub3JtYWxpemVJZGVudGlmaWVyIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtbm9ybWFsaXplLWlkZW50aWZpZXInO1xuaW1wb3J0IHsgc2FuaXRpemVVcmkgfSBmcm9tICdtaWNyb21hcmstdXRpbC1zYW5pdGl6ZS11cmknO1xuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9O1xuXG4vKipcbiAqIEdlbmVyYXRlIHRoZSBkZWZhdWx0IGxhYmVsIHRoYXQgR2l0SHViIHVzZXMgb24gYmFja3JlZmVyZW5jZXMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IHJlZmVyZW5jZUluZGV4XG4gKiAgIEluZGV4IG9mIHRoZSBkZWZpbml0aW9uIGluIHRoZSBvcmRlciB0aGF0IHRoZXkgYXJlIGZpcnN0IHJlZmVyZW5jZWQsXG4gKiAgIDAtaW5kZXhlZC5cbiAqIEBwYXJhbSB7bnVtYmVyfSByZXJlZmVyZW5jZUluZGV4XG4gKiAgIEluZGV4IG9mIGNhbGxzIHRvIHRoZSBzYW1lIGRlZmluaXRpb24sIDAtaW5kZXhlZC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIERlZmF1bHQgbGFiZWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0QmFja0xhYmVsKHJlZmVyZW5jZUluZGV4LCByZXJlZmVyZW5jZUluZGV4KSB7XG4gIHJldHVybiAnQmFjayB0byByZWZlcmVuY2UgJyArIChyZWZlcmVuY2VJbmRleCArIDEpICsgKHJlcmVmZXJlbmNlSW5kZXggPiAxID8gJy0nICsgcmVyZWZlcmVuY2VJbmRleCA6ICcnKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0byBzdXBwb3J0IEdGTSBmb290bm90ZXMgd2hlblxuICogc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9ucz17fV1cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge0h0bWxFeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdGhhdCBjYW4gYmUgcGFzc2VkIGluIGBodG1sRXh0ZW5zaW9uc2AgdG9cbiAqICAgc3VwcG9ydCBHRk0gZm9vdG5vdGVzIHdoZW4gc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbUZvb3Rub3RlSHRtbChvcHRpb25zKSB7XG4gIGNvbnN0IGNvbmZpZyA9IG9wdGlvbnMgfHwgZW1wdHlPcHRpb25zO1xuICBjb25zdCBsYWJlbCA9IGNvbmZpZy5sYWJlbCB8fCAnRm9vdG5vdGVzJztcbiAgY29uc3QgbGFiZWxUYWdOYW1lID0gY29uZmlnLmxhYmVsVGFnTmFtZSB8fCAnaDInO1xuICBjb25zdCBsYWJlbEF0dHJpYnV0ZXMgPSBjb25maWcubGFiZWxBdHRyaWJ1dGVzID09PSBudWxsIHx8IGNvbmZpZy5sYWJlbEF0dHJpYnV0ZXMgPT09IHVuZGVmaW5lZCA/ICdjbGFzcz1cInNyLW9ubHlcIicgOiBjb25maWcubGFiZWxBdHRyaWJ1dGVzO1xuICBjb25zdCBiYWNrTGFiZWwgPSBjb25maWcuYmFja0xhYmVsIHx8IGRlZmF1bHRCYWNrTGFiZWw7XG4gIGNvbnN0IGNsb2JiZXJQcmVmaXggPSBjb25maWcuY2xvYmJlclByZWZpeCA9PT0gbnVsbCB8fCBjb25maWcuY2xvYmJlclByZWZpeCA9PT0gdW5kZWZpbmVkID8gJ3VzZXItY29udGVudC0nIDogY29uZmlnLmNsb2JiZXJQcmVmaXg7XG4gIHJldHVybiB7XG4gICAgZW50ZXI6IHtcbiAgICAgIGdmbUZvb3Rub3RlRGVmaW5pdGlvbigpIHtcbiAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldERhdGEoJ3RpZ2h0U3RhY2snKTtcbiAgICAgICAgc3RhY2sucHVzaChmYWxzZSk7XG4gICAgICB9LFxuICAgICAgZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcoKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyKCk7XG4gICAgICB9LFxuICAgICAgZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKCkge1xuICAgICAgICB0aGlzLmJ1ZmZlcigpO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXhpdDoge1xuICAgICAgZ2ZtRm9vdG5vdGVEZWZpbml0aW9uKCkge1xuICAgICAgICBsZXQgZGVmaW5pdGlvbnMgPSB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvbnMnKTtcbiAgICAgICAgY29uc3QgZm9vdG5vdGVTdGFjayA9IHRoaXMuZ2V0RGF0YSgnZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2snKTtcbiAgICAgICAgY29uc3QgdGlnaHRTdGFjayA9IHRoaXMuZ2V0RGF0YSgndGlnaHRTdGFjaycpO1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gZm9vdG5vdGVTdGFjay5wb3AoKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnJlc3VtZSgpO1xuICAgICAgICBpZiAoIWRlZmluaXRpb25zKSB7XG4gICAgICAgICAgdGhpcy5zZXREYXRhKCdnZm1Gb290bm90ZURlZmluaXRpb25zJywgZGVmaW5pdGlvbnMgPSB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvd24uY2FsbChkZWZpbml0aW9ucywgY3VycmVudCkpIGRlZmluaXRpb25zW2N1cnJlbnRdID0gdmFsdWU7XG4gICAgICAgIHRpZ2h0U3RhY2sucG9wKCk7XG4gICAgICAgIHRoaXMuc2V0RGF0YSgnc2x1cnBPbmVMaW5lRW5kaW5nJywgdHJ1ZSk7XG4gICAgICAgIC8vIFx1MjAxQ0hhY2tcdTIwMUQgdG8gcHJldmVudCBhIGxpbmUgZW5kaW5nIGZyb20gc2hvd2luZyB1cCBpZiB3ZVx1MjAxOXJlIGluIGEgZGVmaW5pdGlvbiBpblxuICAgICAgICAvLyBhbiBlbXB0eSBsaXN0IGl0ZW0uXG4gICAgICAgIHRoaXMuc2V0RGF0YSgnbGFzdFdhc1RhZycpO1xuICAgICAgfSxcbiAgICAgIGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKHRva2VuKSB7XG4gICAgICAgIGxldCBmb290bm90ZVN0YWNrID0gdGhpcy5nZXREYXRhKCdnZm1Gb290bm90ZURlZmluaXRpb25TdGFjaycpO1xuICAgICAgICBpZiAoIWZvb3Rub3RlU3RhY2spIHtcbiAgICAgICAgICB0aGlzLnNldERhdGEoJ2dmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrJywgZm9vdG5vdGVTdGFjayA9IFtdKTtcbiAgICAgICAgfVxuICAgICAgICBmb290bm90ZVN0YWNrLnB1c2gobm9ybWFsaXplSWRlbnRpZmllcih0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKSkpO1xuICAgICAgICB0aGlzLnJlc3VtZSgpOyAvLyBEcm9wIHRoZSBsYWJlbC5cbiAgICAgICAgdGhpcy5idWZmZXIoKTsgLy8gR2V0IHJlYWR5IGZvciBhIHZhbHVlLlxuICAgICAgfSxcbiAgICAgIGdmbUZvb3Rub3RlQ2FsbFN0cmluZyh0b2tlbikge1xuICAgICAgICBsZXQgY2FsbHMgPSB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlQ2FsbE9yZGVyJyk7XG4gICAgICAgIGxldCBjb3VudHMgPSB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlQ2FsbENvdW50cycpO1xuICAgICAgICBjb25zdCBpZCA9IG5vcm1hbGl6ZUlkZW50aWZpZXIodGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbikpO1xuICAgICAgICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgICAgICAgbGV0IGNvdW50ZXI7XG4gICAgICAgIHRoaXMucmVzdW1lKCk7XG4gICAgICAgIGlmICghY2FsbHMpIHRoaXMuc2V0RGF0YSgnZ2ZtRm9vdG5vdGVDYWxsT3JkZXInLCBjYWxscyA9IFtdKTtcbiAgICAgICAgaWYgKCFjb3VudHMpIHRoaXMuc2V0RGF0YSgnZ2ZtRm9vdG5vdGVDYWxsQ291bnRzJywgY291bnRzID0ge30pO1xuICAgICAgICBjb25zdCBpbmRleCA9IGNhbGxzLmluZGV4T2YoaWQpO1xuICAgICAgICBjb25zdCBzYWZlSWQgPSBzYW5pdGl6ZVVyaShpZC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgIGNhbGxzLnB1c2goaWQpO1xuICAgICAgICAgIGNvdW50c1tpZF0gPSAxO1xuICAgICAgICAgIGNvdW50ZXIgPSBjYWxscy5sZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY291bnRzW2lkXSsrO1xuICAgICAgICAgIGNvdW50ZXIgPSBpbmRleCArIDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmV1c2VDb3VudGVyID0gY291bnRzW2lkXTtcbiAgICAgICAgdGhpcy50YWcoJzxzdXA+PGEgaHJlZj1cIiMnICsgY2xvYmJlclByZWZpeCArICdmbi0nICsgc2FmZUlkICsgJ1wiIGlkPVwiJyArIGNsb2JiZXJQcmVmaXggKyAnZm5yZWYtJyArIHNhZmVJZCArIChyZXVzZUNvdW50ZXIgPiAxID8gJy0nICsgcmV1c2VDb3VudGVyIDogJycpICsgJ1wiIGRhdGEtZm9vdG5vdGUtcmVmPVwiXCIgYXJpYS1kZXNjcmliZWRieT1cImZvb3Rub3RlLWxhYmVsXCI+JyArIFN0cmluZyhjb3VudGVyKSArICc8L2E+PC9zdXA+Jyk7XG4gICAgICB9LFxuICAgICAgbnVsbCgpIHtcbiAgICAgICAgY29uc3QgY2FsbHMgPSB0aGlzLmdldERhdGEoJ2dmbUZvb3Rub3RlQ2FsbE9yZGVyJykgfHwgW107XG4gICAgICAgIGNvbnN0IGNvdW50cyA9IHRoaXMuZ2V0RGF0YSgnZ2ZtRm9vdG5vdGVDYWxsQ291bnRzJykgfHwge307XG4gICAgICAgIGNvbnN0IGRlZmluaXRpb25zID0gdGhpcy5nZXREYXRhKCdnZm1Gb290bm90ZURlZmluaXRpb25zJykgfHwge307XG4gICAgICAgIGxldCBpbmRleCA9IC0xO1xuICAgICAgICBpZiAoY2FsbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCk7XG4gICAgICAgICAgdGhpcy50YWcoJzxzZWN0aW9uIGRhdGEtZm9vdG5vdGVzPVwiXCIgY2xhc3M9XCJmb290bm90ZXNcIj48JyArIGxhYmVsVGFnTmFtZSArICcgaWQ9XCJmb290bm90ZS1sYWJlbFwiJyArIChsYWJlbEF0dHJpYnV0ZXMgPyAnICcgKyBsYWJlbEF0dHJpYnV0ZXMgOiAnJykgKyAnPicpO1xuICAgICAgICAgIHRoaXMucmF3KHRoaXMuZW5jb2RlKGxhYmVsKSk7XG4gICAgICAgICAgdGhpcy50YWcoJzwvJyArIGxhYmVsVGFnTmFtZSArICc+Jyk7XG4gICAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICAgICAgICB0aGlzLnRhZygnPG9sPicpO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgY2FsbHMubGVuZ3RoKSB7XG4gICAgICAgICAgLy8gQ2FsbGVkIGRlZmluaXRpb25zIGFyZSBhbHdheXMgZGVmaW5lZC5cbiAgICAgICAgICBjb25zdCBpZCA9IGNhbGxzW2luZGV4XTtcbiAgICAgICAgICBjb25zdCBzYWZlSWQgPSBzYW5pdGl6ZVVyaShpZC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICBsZXQgcmVmZXJlbmNlSW5kZXggPSAwO1xuICAgICAgICAgIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gW107XG4gICAgICAgICAgd2hpbGUgKCsrcmVmZXJlbmNlSW5kZXggPD0gY291bnRzW2lkXSkge1xuICAgICAgICAgICAgcmVmZXJlbmNlcy5wdXNoKCc8YSBocmVmPVwiIycgKyBjbG9iYmVyUHJlZml4ICsgJ2ZucmVmLScgKyBzYWZlSWQgKyAocmVmZXJlbmNlSW5kZXggPiAxID8gJy0nICsgcmVmZXJlbmNlSW5kZXggOiAnJykgKyAnXCIgZGF0YS1mb290bm90ZS1iYWNrcmVmPVwiXCIgYXJpYS1sYWJlbD1cIicgKyB0aGlzLmVuY29kZSh0eXBlb2YgYmFja0xhYmVsID09PSAnc3RyaW5nJyA/IGJhY2tMYWJlbCA6IGJhY2tMYWJlbChpbmRleCwgcmVmZXJlbmNlSW5kZXgpKSArICdcIiBjbGFzcz1cImRhdGEtZm9vdG5vdGUtYmFja3JlZlwiPlx1MjFBOScgKyAocmVmZXJlbmNlSW5kZXggPiAxID8gJzxzdXA+JyArIHJlZmVyZW5jZUluZGV4ICsgJzwvc3VwPicgOiAnJykgKyAnPC9hPicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSByZWZlcmVuY2VzLmpvaW4oJyAnKTtcbiAgICAgICAgICBsZXQgaW5qZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpO1xuICAgICAgICAgIHRoaXMudGFnKCc8bGkgaWQ9XCInICsgY2xvYmJlclByZWZpeCArICdmbi0nICsgc2FmZUlkICsgJ1wiPicpO1xuICAgICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCk7XG4gICAgICAgICAgdGhpcy50YWcoZGVmaW5pdGlvbnNbaWRdLnJlcGxhY2UoLzxcXC9wPig/Olxccj9cXG58XFxyKT8kLywgZnVuY3Rpb24gKCQwKSB7XG4gICAgICAgICAgICBpbmplY3RlZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gJyAnICsgcmVmZXJlbmNlICsgJDA7XG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGlmICghaW5qZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCk7XG4gICAgICAgICAgICB0aGlzLnRhZyhyZWZlcmVuY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpO1xuICAgICAgICAgIHRoaXMudGFnKCc8L2xpPicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYWxscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICAgICAgICB0aGlzLnRhZygnPC9vbD4nKTtcbiAgICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpO1xuICAgICAgICAgIHRoaXMudGFnKCc8L3NlY3Rpb24+Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG59IiwgIi8vIE5vdGU6IHR5cGVzIGFyZSBleHBvcnRlZCBmcm9tIGBkZXYvaW5kZXguZC50c2AuXG5leHBvcnQgeyBnZm1Gb290bm90ZSB9IGZyb20gJy4vbGliL3N5bnRheC5qcyc7XG5leHBvcnQgeyBnZm1Gb290bm90ZUh0bWwsIGRlZmF1bHRCYWNrTGFiZWwgfSBmcm9tICcuL2xpYi9odG1sLmpzJzsiLCAiLyoqXG4gKiBAaW1wb3J0IHtIdG1sRXh0ZW5zaW9ufSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG4vKipcbiAqIENyZWF0ZSBhbiBIVE1MIGV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdG8gc3VwcG9ydCBHRk0gc3RyaWtldGhyb3VnaCB3aGVuXG4gKiBzZXJpYWxpemluZyB0byBIVE1MLlxuICpcbiAqIEByZXR1cm5zIHtIdG1sRXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRoYXQgY2FuIGJlIHBhc3NlZCBpbiBgaHRtbEV4dGVuc2lvbnNgLCB0b1xuICogICBzdXBwb3J0IEdGTSBzdHJpa2V0aHJvdWdoIHdoZW4gc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbVN0cmlrZXRocm91Z2hIdG1sKCkge1xuICByZXR1cm4ge1xuICAgIGVudGVyOiB7XG4gICAgICBzdHJpa2V0aHJvdWdoKCkge1xuICAgICAgICB0aGlzLnRhZygnPGRlbD4nKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGV4aXQ6IHtcbiAgICAgIHN0cmlrZXRocm91Z2goKSB7XG4gICAgICAgIHRoaXMudGFnKCc8L2RlbD4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59IiwgIi8qKlxuICogQGltcG9ydCB7T3B0aW9uc30gZnJvbSAnbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tc3RyaWtldGhyb3VnaCdcbiAqIEBpbXBvcnQge0V2ZW50LCBFeHRlbnNpb24sIFJlc29sdmVyLCBTdGF0ZSwgVG9rZW4sIFRva2VuaXplQ29udGV4dCwgVG9rZW5pemVyfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBzcGxpY2UgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaHVua2VkJztcbmltcG9ydCB7IGNsYXNzaWZ5Q2hhcmFjdGVyIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2xhc3NpZnktY2hhcmFjdGVyJztcbmltcG9ydCB7IHJlc29sdmVBbGwgfSBmcm9tICdtaWNyb21hcmstdXRpbC1yZXNvbHZlLWFsbCc7XG4vKipcbiAqIENyZWF0ZSBhbiBleHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRvIGVuYWJsZSBHRk0gc3RyaWtldGhyb3VnaCBzeW50YXguXG4gKlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnM9e31dXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7RXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRoYXQgY2FuIGJlIHBhc3NlZCBpbiBgZXh0ZW5zaW9uc2AsIHRvXG4gKiAgIGVuYWJsZSBHRk0gc3RyaWtldGhyb3VnaCBzeW50YXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1TdHJpa2V0aHJvdWdoKG9wdGlvbnMpIHtcbiAgY29uc3Qgb3B0aW9uc18gPSBvcHRpb25zIHx8IHt9O1xuICBsZXQgc2luZ2xlID0gb3B0aW9uc18uc2luZ2xlVGlsZGU7XG4gIGNvbnN0IHRva2VuaXplciA9IHtcbiAgICBuYW1lOiAnc3RyaWtldGhyb3VnaCcsXG4gICAgdG9rZW5pemU6IHRva2VuaXplU3RyaWtldGhyb3VnaCxcbiAgICByZXNvbHZlQWxsOiByZXNvbHZlQWxsU3RyaWtldGhyb3VnaFxuICB9O1xuICBpZiAoc2luZ2xlID09PSBudWxsIHx8IHNpbmdsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgc2luZ2xlID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHRleHQ6IHtcbiAgICAgIFsxMjZdOiB0b2tlbml6ZXJcbiAgICB9LFxuICAgIGluc2lkZVNwYW46IHtcbiAgICAgIG51bGw6IFt0b2tlbml6ZXJdXG4gICAgfSxcbiAgICBhdHRlbnRpb25NYXJrZXJzOiB7XG4gICAgICBudWxsOiBbMTI2XVxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogVGFrZSBldmVudHMgYW5kIHJlc29sdmUgc3RyaWtldGhyb3VnaC5cbiAgICpcbiAgICogQHR5cGUge1Jlc29sdmVyfVxuICAgKi9cbiAgZnVuY3Rpb24gcmVzb2x2ZUFsbFN0cmlrZXRocm91Z2goZXZlbnRzLCBjb250ZXh0KSB7XG4gICAgbGV0IGluZGV4ID0gLTE7XG5cbiAgICAvLyBXYWxrIHRocm91Z2ggYWxsIGV2ZW50cy5cbiAgICB3aGlsZSAoKytpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICAgIC8vIEZpbmQgYSB0b2tlbiB0aGF0IGNhbiBjbG9zZS5cbiAgICAgIGlmIChldmVudHNbaW5kZXhdWzBdID09PSAnZW50ZXInICYmIGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gJ3N0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeScgJiYgZXZlbnRzW2luZGV4XVsxXS5fY2xvc2UpIHtcbiAgICAgICAgbGV0IG9wZW4gPSBpbmRleDtcblxuICAgICAgICAvLyBOb3cgd2FsayBiYWNrIHRvIGZpbmQgYW4gb3BlbmVyLlxuICAgICAgICB3aGlsZSAob3Blbi0tKSB7XG4gICAgICAgICAgLy8gRmluZCBhIHRva2VuIHRoYXQgY2FuIG9wZW4gdGhlIGNsb3Nlci5cbiAgICAgICAgICBpZiAoZXZlbnRzW29wZW5dWzBdID09PSAnZXhpdCcgJiYgZXZlbnRzW29wZW5dWzFdLnR5cGUgPT09ICdzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnknICYmIGV2ZW50c1tvcGVuXVsxXS5fb3BlbiAmJlxuICAgICAgICAgIC8vIElmIHRoZSBzaXplcyBhcmUgdGhlIHNhbWU6XG4gICAgICAgICAgZXZlbnRzW2luZGV4XVsxXS5lbmQub2Zmc2V0IC0gZXZlbnRzW2luZGV4XVsxXS5zdGFydC5vZmZzZXQgPT09IGV2ZW50c1tvcGVuXVsxXS5lbmQub2Zmc2V0IC0gZXZlbnRzW29wZW5dWzFdLnN0YXJ0Lm9mZnNldCkge1xuICAgICAgICAgICAgZXZlbnRzW2luZGV4XVsxXS50eXBlID0gJ3N0cmlrZXRocm91Z2hTZXF1ZW5jZSc7XG4gICAgICAgICAgICBldmVudHNbb3Blbl1bMV0udHlwZSA9ICdzdHJpa2V0aHJvdWdoU2VxdWVuY2UnO1xuXG4gICAgICAgICAgICAvKiogQHR5cGUge1Rva2VufSAqL1xuICAgICAgICAgICAgY29uc3Qgc3RyaWtldGhyb3VnaCA9IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmlrZXRocm91Z2gnLFxuICAgICAgICAgICAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW29wZW5dWzFdLnN0YXJ0KSxcbiAgICAgICAgICAgICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCBldmVudHNbaW5kZXhdWzFdLmVuZClcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0ge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaWtldGhyb3VnaFRleHQnLFxuICAgICAgICAgICAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW29wZW5dWzFdLmVuZCksXG4gICAgICAgICAgICAgIGVuZDogT2JqZWN0LmFzc2lnbih7fSwgZXZlbnRzW2luZGV4XVsxXS5zdGFydClcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIE9wZW5pbmcuXG4gICAgICAgICAgICAvKiogQHR5cGUge0FycmF5PEV2ZW50Pn0gKi9cbiAgICAgICAgICAgIGNvbnN0IG5leHRFdmVudHMgPSBbWydlbnRlcicsIHN0cmlrZXRocm91Z2gsIGNvbnRleHRdLCBbJ2VudGVyJywgZXZlbnRzW29wZW5dWzFdLCBjb250ZXh0XSwgWydleGl0JywgZXZlbnRzW29wZW5dWzFdLCBjb250ZXh0XSwgWydlbnRlcicsIHRleHQsIGNvbnRleHRdXTtcbiAgICAgICAgICAgIGNvbnN0IGluc2lkZVNwYW4gPSBjb250ZXh0LnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbDtcbiAgICAgICAgICAgIGlmIChpbnNpZGVTcGFuKSB7XG4gICAgICAgICAgICAgIC8vIEJldHdlZW4uXG4gICAgICAgICAgICAgIHNwbGljZShuZXh0RXZlbnRzLCBuZXh0RXZlbnRzLmxlbmd0aCwgMCwgcmVzb2x2ZUFsbChpbnNpZGVTcGFuLCBldmVudHMuc2xpY2Uob3BlbiArIDEsIGluZGV4KSwgY29udGV4dCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDbG9zaW5nLlxuICAgICAgICAgICAgc3BsaWNlKG5leHRFdmVudHMsIG5leHRFdmVudHMubGVuZ3RoLCAwLCBbWydleGl0JywgdGV4dCwgY29udGV4dF0sIFsnZW50ZXInLCBldmVudHNbaW5kZXhdWzFdLCBjb250ZXh0XSwgWydleGl0JywgZXZlbnRzW2luZGV4XVsxXSwgY29udGV4dF0sIFsnZXhpdCcsIHN0cmlrZXRocm91Z2gsIGNvbnRleHRdXSk7XG4gICAgICAgICAgICBzcGxpY2UoZXZlbnRzLCBvcGVuIC0gMSwgaW5kZXggLSBvcGVuICsgMywgbmV4dEV2ZW50cyk7XG4gICAgICAgICAgICBpbmRleCA9IG9wZW4gKyBuZXh0RXZlbnRzLmxlbmd0aCAtIDI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaW5kZXggPSAtMTtcbiAgICB3aGlsZSAoKytpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICAgIGlmIChldmVudHNbaW5kZXhdWzFdLnR5cGUgPT09ICdzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnknKSB7XG4gICAgICAgIGV2ZW50c1tpbmRleF1bMV0udHlwZSA9IFwiZGF0YVwiO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZXZlbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gICAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gICAqL1xuICBmdW5jdGlvbiB0b2tlbml6ZVN0cmlrZXRocm91Z2goZWZmZWN0cywgb2ssIG5vaykge1xuICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5wcmV2aW91cztcbiAgICBjb25zdCBldmVudHMgPSB0aGlzLmV2ZW50cztcbiAgICBsZXQgc2l6ZSA9IDA7XG4gICAgcmV0dXJuIHN0YXJ0O1xuXG4gICAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgICBpZiAocHJldmlvdXMgPT09IDEyNiAmJiBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdWzFdLnR5cGUgIT09IFwiY2hhcmFjdGVyRXNjYXBlXCIpIHtcbiAgICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICAgIH1cbiAgICAgIGVmZmVjdHMuZW50ZXIoJ3N0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeScpO1xuICAgICAgcmV0dXJuIG1vcmUoY29kZSk7XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgICBmdW5jdGlvbiBtb3JlKGNvZGUpIHtcbiAgICAgIGNvbnN0IGJlZm9yZSA9IGNsYXNzaWZ5Q2hhcmFjdGVyKHByZXZpb3VzKTtcbiAgICAgIGlmIChjb2RlID09PSAxMjYpIHtcbiAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgdGhpcmQgbWFya2VyLCBleGl0LlxuICAgICAgICBpZiAoc2l6ZSA+IDEpIHJldHVybiBub2soY29kZSk7XG4gICAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgICAgc2l6ZSsrO1xuICAgICAgICByZXR1cm4gbW9yZTtcbiAgICAgIH1cbiAgICAgIGlmIChzaXplIDwgMiAmJiAhc2luZ2xlKSByZXR1cm4gbm9rKGNvZGUpO1xuICAgICAgY29uc3QgdG9rZW4gPSBlZmZlY3RzLmV4aXQoJ3N0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeScpO1xuICAgICAgY29uc3QgYWZ0ZXIgPSBjbGFzc2lmeUNoYXJhY3Rlcihjb2RlKTtcbiAgICAgIHRva2VuLl9vcGVuID0gIWFmdGVyIHx8IGFmdGVyID09PSAyICYmIEJvb2xlYW4oYmVmb3JlKTtcbiAgICAgIHRva2VuLl9jbG9zZSA9ICFiZWZvcmUgfHwgYmVmb3JlID09PSAyICYmIEJvb2xlYW4oYWZ0ZXIpO1xuICAgICAgcmV0dXJuIG9rKGNvZGUpO1xuICAgIH1cbiAgfVxufSIsICIvLyBOb3RlOiBtb3JlIHR5cGVzIGV4cG9zZWQgZnJvbSBgaW5kZXguZC50c2AuXG5leHBvcnQgeyBnZm1TdHJpa2V0aHJvdWdoSHRtbCB9IGZyb20gJy4vbGliL2h0bWwuanMnO1xuZXhwb3J0IHsgZ2ZtU3RyaWtldGhyb3VnaCB9IGZyb20gJy4vbGliL3N5bnRheC5qcyc7IiwgIi8qKlxuICogQGltcG9ydCB7SHRtbEV4dGVuc2lvbn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuY29uc3QgYWxpZ25tZW50ID0ge1xuICBub25lOiAnJyxcbiAgbGVmdDogJyBhbGlnbj1cImxlZnRcIicsXG4gIHJpZ2h0OiAnIGFsaWduPVwicmlnaHRcIicsXG4gIGNlbnRlcjogJyBhbGlnbj1cImNlbnRlclwiJ1xufTtcblxuLy8gVG8gZG86IG1pY3JvbWFya0A1OiB1c2UgYGluZmVyYCBoZXJlLCB3aGVuIGFsbCBldmVudHMgYXJlIGV4cG9zZWQuXG5cbi8qKlxuICogQ3JlYXRlIGFuIEhUTUwgZXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0byBzdXBwb3J0IEdpdEh1YiB0YWJsZXMgd2hlblxuICogc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqXG4gKiBAcmV0dXJucyB7SHRtbEV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0aGF0IGNhbiBiZSBwYXNzZWQgaW4gYGh0bWxFeHRlbnNpb25zYCB0b1xuICogICBzdXBwb3J0IEdpdEh1YiB0YWJsZXMgd2hlbiBzZXJpYWxpemluZyB0byBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtVGFibGVIdG1sKCkge1xuICByZXR1cm4ge1xuICAgIGVudGVyOiB7XG4gICAgICB0YWJsZSh0b2tlbikge1xuICAgICAgICBjb25zdCB0YWJsZUFsaWduID0gdG9rZW4uX2FsaWduO1xuICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpO1xuICAgICAgICB0aGlzLnRhZygnPHRhYmxlPicpO1xuICAgICAgICB0aGlzLnNldERhdGEoJ3RhYmxlQWxpZ24nLCB0YWJsZUFsaWduKTtcbiAgICAgIH0sXG4gICAgICB0YWJsZUJvZHkoKSB7XG4gICAgICAgIHRoaXMudGFnKCc8dGJvZHk+Jyk7XG4gICAgICB9LFxuICAgICAgdGFibGVEYXRhKCkge1xuICAgICAgICBjb25zdCB0YWJsZUFsaWduID0gdGhpcy5nZXREYXRhKCd0YWJsZUFsaWduJyk7XG4gICAgICAgIGNvbnN0IHRhYmxlQ29sdW1uID0gdGhpcy5nZXREYXRhKCd0YWJsZUNvbHVtbicpO1xuICAgICAgICBjb25zdCBhbGlnbiA9IGFsaWdubWVudFt0YWJsZUFsaWduW3RhYmxlQ29sdW1uXV07XG4gICAgICAgIGlmIChhbGlnbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gQ2FwdHVyZSByZXN1bHRzIHRvIGlnbm9yZSB0aGVtLlxuICAgICAgICAgIHRoaXMuYnVmZmVyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICAgICAgICB0aGlzLnRhZygnPHRkJyArIGFsaWduICsgJz4nKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhYmxlSGVhZCgpIHtcbiAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICAgICAgdGhpcy50YWcoJzx0aGVhZD4nKTtcbiAgICAgIH0sXG4gICAgICB0YWJsZUhlYWRlcigpIHtcbiAgICAgICAgY29uc3QgdGFibGVBbGlnbiA9IHRoaXMuZ2V0RGF0YSgndGFibGVBbGlnbicpO1xuICAgICAgICBjb25zdCB0YWJsZUNvbHVtbiA9IHRoaXMuZ2V0RGF0YSgndGFibGVDb2x1bW4nKTtcbiAgICAgICAgY29uc3QgYWxpZ24gPSBhbGlnbm1lbnRbdGFibGVBbGlnblt0YWJsZUNvbHVtbl1dO1xuICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpO1xuICAgICAgICB0aGlzLnRhZygnPHRoJyArIGFsaWduICsgJz4nKTtcbiAgICAgIH0sXG4gICAgICB0YWJsZVJvdygpIHtcbiAgICAgICAgdGhpcy5zZXREYXRhKCd0YWJsZUNvbHVtbicsIDApO1xuICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpO1xuICAgICAgICB0aGlzLnRhZygnPHRyPicpO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXhpdDoge1xuICAgICAgLy8gT3ZlcndyaXRlIHRoZSBkZWZhdWx0IGNvZGUgdGV4dCBkYXRhIGhhbmRsZXIgdG8gdW5lc2NhcGUgZXNjYXBlZCBwaXBlcyB3aGVuXG4gICAgICAvLyB0aGV5IGFyZSBpbiB0YWJsZXMuXG4gICAgICBjb2RlVGV4dERhdGEodG9rZW4pIHtcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbik7XG4gICAgICAgIGlmICh0aGlzLmdldERhdGEoJ3RhYmxlQWxpZ24nKSkge1xuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFxcXChbXFxcXHxdKS9nLCByZXBsYWNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJhdyh0aGlzLmVuY29kZSh2YWx1ZSkpO1xuICAgICAgfSxcbiAgICAgIHRhYmxlKCkge1xuICAgICAgICB0aGlzLnNldERhdGEoJ3RhYmxlQWxpZ24nKTtcbiAgICAgICAgLy8gTm90ZTogd2UgZG9uXHUyMDE5dCBzZXQgYHNsdXJwQWxsTGluZUVuZGluZ3NgIGFueW1vcmUsIGluIGRlbGltaXRlciByb3dzLFxuICAgICAgICAvLyBidXQgd2UgZG8gbmVlZCB0byByZXNldCBpdCB0byBtYXRjaCBhIGZ1bmt5IG5ld2xpbmUgR0ggZ2VuZXJhdGVzIGZvclxuICAgICAgICAvLyBsaXN0IGl0ZW1zIGNvbWJpbmVkIHdpdGggdGFibGVzLlxuICAgICAgICB0aGlzLnNldERhdGEoJ3NsdXJwQWxsTGluZUVuZGluZ3MnKTtcbiAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICAgICAgdGhpcy50YWcoJzwvdGFibGU+Jyk7XG4gICAgICB9LFxuICAgICAgdGFibGVCb2R5KCkge1xuICAgICAgICB0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpO1xuICAgICAgICB0aGlzLnRhZygnPC90Ym9keT4nKTtcbiAgICAgIH0sXG4gICAgICB0YWJsZURhdGEoKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlQWxpZ24gPSB0aGlzLmdldERhdGEoJ3RhYmxlQWxpZ24nKTtcbiAgICAgICAgY29uc3QgdGFibGVDb2x1bW4gPSB0aGlzLmdldERhdGEoJ3RhYmxlQ29sdW1uJyk7XG4gICAgICAgIGlmICh0YWJsZUNvbHVtbiBpbiB0YWJsZUFsaWduKSB7XG4gICAgICAgICAgdGhpcy50YWcoJzwvdGQ+Jyk7XG4gICAgICAgICAgdGhpcy5zZXREYXRhKCd0YWJsZUNvbHVtbicsIHRhYmxlQ29sdW1uICsgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gU3RvcCBjYXB0dXJpbmcuXG4gICAgICAgICAgdGhpcy5yZXN1bWUoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhYmxlSGVhZCgpIHtcbiAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICAgICAgdGhpcy50YWcoJzwvdGhlYWQ+Jyk7XG4gICAgICB9LFxuICAgICAgdGFibGVIZWFkZXIoKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlQ29sdW1uID0gdGhpcy5nZXREYXRhKCd0YWJsZUNvbHVtbicpO1xuICAgICAgICB0aGlzLnRhZygnPC90aD4nKTtcbiAgICAgICAgdGhpcy5zZXREYXRhKCd0YWJsZUNvbHVtbicsIHRhYmxlQ29sdW1uICsgMSk7XG4gICAgICB9LFxuICAgICAgdGFibGVSb3coKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlQWxpZ24gPSB0aGlzLmdldERhdGEoJ3RhYmxlQWxpZ24nKTtcbiAgICAgICAgbGV0IHRhYmxlQ29sdW1uID0gdGhpcy5nZXREYXRhKCd0YWJsZUNvbHVtbicpO1xuICAgICAgICB3aGlsZSAodGFibGVDb2x1bW4gPCB0YWJsZUFsaWduLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCk7XG4gICAgICAgICAgdGhpcy50YWcoJzx0ZCcgKyBhbGlnbm1lbnRbdGFibGVBbGlnblt0YWJsZUNvbHVtbl1dICsgJz48L3RkPicpO1xuICAgICAgICAgIHRhYmxlQ29sdW1uKys7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXREYXRhKCd0YWJsZUNvbHVtbicsIHRhYmxlQ29sdW1uKTtcbiAgICAgICAgdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICAgICAgdGhpcy50YWcoJzwvdHI+Jyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogQHBhcmFtIHtzdHJpbmd9ICQxXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiByZXBsYWNlKCQwLCAkMSkge1xuICAvLyBQaXBlcyB3b3JrLCBiYWNrc2xhc2hlcyBkb25cdTIwMTl0IChidXQgY2FuXHUyMDE5dCBlc2NhcGUgcGlwZXMpLlxuICByZXR1cm4gJDEgPT09ICd8JyA/ICQxIDogJDA7XG59IiwgIi8qKlxuICogQGltcG9ydCB7RXZlbnR9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbi8vIFBvcnQgb2YgYGVkaXRfbWFwLnJzYCBmcm9tIGBtYXJrZG93bi1yc2AuXG4vLyBUaGlzIHNob3VsZCBtb3ZlIHRvIGBtYXJrZG93bi1qc2AgbGF0ZXIuXG5cbi8vIERlYWwgd2l0aCBzZXZlcmFsIGNoYW5nZXMgaW4gZXZlbnRzLCBiYXRjaGluZyB0aGVtIHRvZ2V0aGVyLlxuLy9cbi8vIFByZWZlcmFibHksIGNoYW5nZXMgc2hvdWxkIGJlIGtlcHQgdG8gYSBtaW5pbXVtLlxuLy8gU29tZXRpbWVzLCBpdFx1MjAxOXMgbmVlZGVkIHRvIGNoYW5nZSB0aGUgbGlzdCBvZiBldmVudHMsIGJlY2F1c2UgcGFyc2luZyBjYW4gYmVcbi8vIG1lc3N5LCBhbmQgaXQgaGVscHMgdG8gZXhwb3NlIGEgY2xlYW5lciBpbnRlcmZhY2Ugb2YgZXZlbnRzIHRvIHRoZSBjb21waWxlclxuLy8gYW5kIG90aGVyIHVzZXJzLlxuLy8gSXQgY2FuIGFsc28gaGVscCB0byBtZXJnZSBtYW55IGFkamFjZW50IHNpbWlsYXIgZXZlbnRzLlxuLy8gQW5kLCBpbiBvdGhlciBjYXNlcywgaXRcdTIwMTlzIG5lZWRlZCB0byBwYXJzZSBzdWJjb250ZW50OiBwYXNzIHNvbWUgZXZlbnRzXG4vLyB0aHJvdWdoIGFub3RoZXIgdG9rZW5pemVyIGFuZCBpbmplY3QgdGhlIHJlc3VsdC5cblxuLyoqXG4gKiBAdHlwZWRlZiB7W251bWJlciwgbnVtYmVyLCBBcnJheTxFdmVudD5dfSBDaGFuZ2VcbiAqIEB0eXBlZGVmIHtbbnVtYmVyLCBudW1iZXIsIG51bWJlcl19IEp1bXBcbiAqL1xuXG4vKipcbiAqIFRyYWNrcyBhIGJ1bmNoIG9mIGVkaXRzLlxuICovXG5leHBvcnQgY2xhc3MgRWRpdE1hcCB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgZWRpdCBtYXAuXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvKipcbiAgICAgKiBSZWNvcmQgb2YgY2hhbmdlcy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtBcnJheTxDaGFuZ2U+fVxuICAgICAqL1xuICAgIHRoaXMubWFwID0gW107XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGVkaXQ6IGEgcmVtb3ZlIGFuZC9vciBhZGQgYXQgYSBjZXJ0YWluIHBsYWNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAgICogQHBhcmFtIHtudW1iZXJ9IHJlbW92ZVxuICAgKiBAcGFyYW0ge0FycmF5PEV2ZW50Pn0gYWRkXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBhZGQoaW5kZXgsIHJlbW92ZSwgYWRkKSB7XG4gICAgYWRkSW1wbGVtZW50YXRpb24odGhpcywgaW5kZXgsIHJlbW92ZSwgYWRkKTtcbiAgfVxuXG4gIC8vIFRvIGRvOiBhZGQgdGhpcyB3aGVuIG1vdmluZyB0byBgbWljcm9tYXJrYC5cbiAgLy8gLyoqXG4gIC8vICAqIENyZWF0ZSBhbiBlZGl0OiBidXQgaW5zZXJ0IGBhZGRgIGJlZm9yZSBleGlzdGluZyBhZGRpdGlvbnMuXG4gIC8vICAqXG4gIC8vICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICAvLyAgKiBAcGFyYW0ge251bWJlcn0gcmVtb3ZlXG4gIC8vICAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBhZGRcbiAgLy8gICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgLy8gICovXG4gIC8vIGFkZEJlZm9yZShpbmRleCwgcmVtb3ZlLCBhZGQpIHtcbiAgLy8gICBhZGRJbXBsZW1lbnRhdGlvbih0aGlzLCBpbmRleCwgcmVtb3ZlLCBhZGQsIHRydWUpXG4gIC8vIH1cblxuICAvKipcbiAgICogRG9uZSwgY2hhbmdlIHRoZSBldmVudHMuXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIGNvbnN1bWUoZXZlbnRzKSB7XG4gICAgdGhpcy5tYXAuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGFbMF0gLSBiWzBdO1xuICAgIH0pO1xuXG4gICAgLyogYzggaWdub3JlIG5leHQgMyAtLSBgcmVzb2x2ZWAgaXMgbmV2ZXIgY2FsbGVkIHdpdGhvdXQgdGFibGVzLCBzbyB3aXRob3V0IGVkaXRzLiAqL1xuICAgIGlmICh0aGlzLm1hcC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBUbyBkbzogaWYgbGlua3MgYXJlIGFkZGVkIGluIGV2ZW50cywgbGlrZSB0aGV5IGFyZSBpbiBgbWFya2Rvd24tcnNgLFxuICAgIC8vIHRoaXMgaXMgbmVlZGVkLlxuICAgIC8vIC8vIENhbGN1bGF0ZSBqdW1wczogd2hlcmUgaXRlbXMgaW4gdGhlIGN1cnJlbnQgbGlzdCBtb3ZlIHRvLlxuICAgIC8vIC8qKiBAdHlwZSB7QXJyYXk8SnVtcD59ICovXG4gICAgLy8gY29uc3QganVtcHMgPSBbXVxuICAgIC8vIGxldCBpbmRleCA9IDBcbiAgICAvLyBsZXQgYWRkQWNjID0gMFxuICAgIC8vIGxldCByZW1vdmVBY2MgPSAwXG4gICAgLy8gd2hpbGUgKGluZGV4IDwgdGhpcy5tYXAubGVuZ3RoKSB7XG4gICAgLy8gICBjb25zdCBbYXQsIHJlbW92ZSwgYWRkXSA9IHRoaXMubWFwW2luZGV4XVxuICAgIC8vICAgcmVtb3ZlQWNjICs9IHJlbW92ZVxuICAgIC8vICAgYWRkQWNjICs9IGFkZC5sZW5ndGhcbiAgICAvLyAgIGp1bXBzLnB1c2goW2F0LCByZW1vdmVBY2MsIGFkZEFjY10pXG4gICAgLy8gICBpbmRleCArPSAxXG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gLiBzaGlmdExpbmtzKGV2ZW50cywganVtcHMpXG5cbiAgICBsZXQgaW5kZXggPSB0aGlzLm1hcC5sZW5ndGg7XG4gICAgLyoqIEB0eXBlIHtBcnJheTxBcnJheTxFdmVudD4+fSAqL1xuICAgIGNvbnN0IHZlY3MgPSBbXTtcbiAgICB3aGlsZSAoaW5kZXggPiAwKSB7XG4gICAgICBpbmRleCAtPSAxO1xuICAgICAgdmVjcy5wdXNoKGV2ZW50cy5zbGljZSh0aGlzLm1hcFtpbmRleF1bMF0gKyB0aGlzLm1hcFtpbmRleF1bMV0pLCB0aGlzLm1hcFtpbmRleF1bMl0pO1xuXG4gICAgICAvLyBUcnVuY2F0ZSByZXN0LlxuICAgICAgZXZlbnRzLmxlbmd0aCA9IHRoaXMubWFwW2luZGV4XVswXTtcbiAgICB9XG4gICAgdmVjcy5wdXNoKGV2ZW50cy5zbGljZSgpKTtcbiAgICBldmVudHMubGVuZ3RoID0gMDtcbiAgICBsZXQgc2xpY2UgPSB2ZWNzLnBvcCgpO1xuICAgIHdoaWxlIChzbGljZSkge1xuICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHNsaWNlKSB7XG4gICAgICAgIGV2ZW50cy5wdXNoKGVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgc2xpY2UgPSB2ZWNzLnBvcCgpO1xuICAgIH1cblxuICAgIC8vIFRydW5jYXRlIGV2ZXJ5dGhpbmcuXG4gICAgdGhpcy5tYXAubGVuZ3RoID0gMDtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBlZGl0LlxuICpcbiAqIEBwYXJhbSB7RWRpdE1hcH0gZWRpdE1hcFxuICogQHBhcmFtIHtudW1iZXJ9IGF0XG4gKiBAcGFyYW0ge251bWJlcn0gcmVtb3ZlXG4gKiBAcGFyYW0ge0FycmF5PEV2ZW50Pn0gYWRkXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICovXG5mdW5jdGlvbiBhZGRJbXBsZW1lbnRhdGlvbihlZGl0TWFwLCBhdCwgcmVtb3ZlLCBhZGQpIHtcbiAgbGV0IGluZGV4ID0gMDtcblxuICAvKiBjOCBpZ25vcmUgbmV4dCAzIC0tIGByZXNvbHZlYCBpcyBuZXZlciBjYWxsZWQgd2l0aG91dCB0YWJsZXMsIHNvIHdpdGhvdXQgZWRpdHMuICovXG4gIGlmIChyZW1vdmUgPT09IDAgJiYgYWRkLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuICB3aGlsZSAoaW5kZXggPCBlZGl0TWFwLm1hcC5sZW5ndGgpIHtcbiAgICBpZiAoZWRpdE1hcC5tYXBbaW5kZXhdWzBdID09PSBhdCkge1xuICAgICAgZWRpdE1hcC5tYXBbaW5kZXhdWzFdICs9IHJlbW92ZTtcblxuICAgICAgLy8gVG8gZG86IGJlZm9yZSBub3QgdXNlZCBieSB0YWJsZXMsIHVzZSB3aGVuIG1vdmluZyB0byBtaWNyb21hcmsuXG4gICAgICAvLyBpZiAoYmVmb3JlKSB7XG4gICAgICAvLyAgIGFkZC5wdXNoKC4uLmVkaXRNYXAubWFwW2luZGV4XVsyXSlcbiAgICAgIC8vICAgZWRpdE1hcC5tYXBbaW5kZXhdWzJdID0gYWRkXG4gICAgICAvLyB9IGVsc2Uge1xuICAgICAgZWRpdE1hcC5tYXBbaW5kZXhdWzJdLnB1c2goLi4uYWRkKTtcbiAgICAgIC8vIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpbmRleCArPSAxO1xuICB9XG4gIGVkaXRNYXAubWFwLnB1c2goW2F0LCByZW1vdmUsIGFkZF0pO1xufVxuXG4vLyAvKipcbi8vICAqIFNoaWZ0IGBwcmV2aW91c2AgYW5kIGBuZXh0YCBsaW5rcyBhY2NvcmRpbmcgdG8gYGp1bXBzYC5cbi8vICAqXG4vLyAgKiBUaGlzIGZpeGVzIGxpbmtzIGluIGNhc2UgdGhlcmUgYXJlIGV2ZW50cyByZW1vdmVkIG9yIGFkZGVkIGJldHdlZW4gdGhlbS5cbi8vICAqXG4vLyAgKiBAcGFyYW0ge0FycmF5PEV2ZW50Pn0gZXZlbnRzXG4vLyAgKiBAcGFyYW0ge0FycmF5PEp1bXA+fSBqdW1wc1xuLy8gICovXG4vLyBmdW5jdGlvbiBzaGlmdExpbmtzKGV2ZW50cywganVtcHMpIHtcbi8vICAgbGV0IGp1bXBJbmRleCA9IDBcbi8vICAgbGV0IGluZGV4ID0gMFxuLy8gICBsZXQgYWRkID0gMFxuLy8gICBsZXQgcm0gPSAwXG5cbi8vICAgd2hpbGUgKGluZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuLy8gICAgIGNvbnN0IHJtQ3VyciA9IHJtXG5cbi8vICAgICB3aGlsZSAoanVtcEluZGV4IDwganVtcHMubGVuZ3RoICYmIGp1bXBzW2p1bXBJbmRleF1bMF0gPD0gaW5kZXgpIHtcbi8vICAgICAgIGFkZCA9IGp1bXBzW2p1bXBJbmRleF1bMl1cbi8vICAgICAgIHJtID0ganVtcHNbanVtcEluZGV4XVsxXVxuLy8gICAgICAganVtcEluZGV4ICs9IDFcbi8vICAgICB9XG5cbi8vICAgICAvLyBJZ25vcmUgaXRlbXMgdGhhdCB3aWxsIGJlIHJlbW92ZWQuXG4vLyAgICAgaWYgKHJtID4gcm1DdXJyKSB7XG4vLyAgICAgICBpbmRleCArPSBybSAtIHJtQ3VyclxuLy8gICAgIH0gZWxzZSB7XG4vLyAgICAgICAvLyA/XG4vLyAgICAgICAvLyBpZiBsZXQgU29tZShsaW5rKSA9ICZldmVudHNbaW5kZXhdLmxpbmsge1xuLy8gICAgICAgLy8gICAgIGlmIGxldCBTb21lKG5leHQpID0gbGluay5uZXh0IHtcbi8vICAgICAgIC8vICAgICAgICAgZXZlbnRzW25leHRdLmxpbmsuYXNfbXV0KCkudW53cmFwKCkucHJldmlvdXMgPSBTb21lKGluZGV4ICsgYWRkIC0gcm0pO1xuLy8gICAgICAgLy8gICAgICAgICB3aGlsZSBqdW1wSW5kZXggPCBqdW1wcy5sZW4oKSAmJiBqdW1wc1tqdW1wSW5kZXhdLjAgPD0gbmV4dCB7XG4vLyAgICAgICAvLyAgICAgICAgICAgICBhZGQgPSBqdW1wc1tqdW1wSW5kZXhdLjI7XG4vLyAgICAgICAvLyAgICAgICAgICAgICBybSA9IGp1bXBzW2p1bXBJbmRleF0uMTtcbi8vICAgICAgIC8vICAgICAgICAgICAgIGp1bXBJbmRleCArPSAxO1xuLy8gICAgICAgLy8gICAgICAgICB9XG4vLyAgICAgICAvLyAgICAgICAgIGV2ZW50c1tpbmRleF0ubGluay5hc19tdXQoKS51bndyYXAoKS5uZXh0ID0gU29tZShuZXh0ICsgYWRkIC0gcm0pO1xuLy8gICAgICAgLy8gICAgICAgICBpbmRleCA9IG5leHQ7XG4vLyAgICAgICAvLyAgICAgICAgIGNvbnRpbnVlO1xuLy8gICAgICAgLy8gICAgIH1cbi8vICAgICAgIC8vIH1cbi8vICAgICAgIGluZGV4ICs9IDFcbi8vICAgICB9XG4vLyAgIH1cbi8vIH0iLCAiLyoqXG4gKiBAaW1wb3J0IHtFdmVudH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7J2NlbnRlcicgfCAnbGVmdCcgfCAnbm9uZScgfCAncmlnaHQnfSBBbGlnblxuICovXG5cbi8qKlxuICogRmlndXJlIG91dCB0aGUgYWxpZ25tZW50IG9mIGEgR0ZNIHRhYmxlLlxuICpcbiAqIEBwYXJhbSB7UmVhZG9ubHk8QXJyYXk8RXZlbnQ+Pn0gZXZlbnRzXG4gKiAgIExpc3Qgb2YgZXZlbnRzLlxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiAgIFRhYmxlIGVudGVyIGV2ZW50LlxuICogQHJldHVybnMge0FycmF5PEFsaWduPn1cbiAqICAgTGlzdCBvZiBhbGlnbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZm1UYWJsZUFsaWduKGV2ZW50cywgaW5kZXgpIHtcbiAgbGV0IGluRGVsaW1pdGVyUm93ID0gZmFsc2U7XG4gIC8qKiBAdHlwZSB7QXJyYXk8QWxpZ24+fSAqL1xuICBjb25zdCBhbGlnbiA9IFtdO1xuICB3aGlsZSAoaW5kZXggPCBldmVudHMubGVuZ3RoKSB7XG4gICAgY29uc3QgZXZlbnQgPSBldmVudHNbaW5kZXhdO1xuICAgIGlmIChpbkRlbGltaXRlclJvdykge1xuICAgICAgaWYgKGV2ZW50WzBdID09PSAnZW50ZXInKSB7XG4gICAgICAgIC8vIFN0YXJ0IG9mIGFsaWdubWVudCB2YWx1ZTogc2V0IGEgbmV3IGNvbHVtbi5cbiAgICAgICAgLy8gVG8gZG86IGBtYXJrZG93bi1yc2AgdXNlcyBgdGFibGVEZWxpbWl0ZXJDZWxsVmFsdWVgLlxuICAgICAgICBpZiAoZXZlbnRbMV0udHlwZSA9PT0gJ3RhYmxlQ29udGVudCcpIHtcbiAgICAgICAgICBhbGlnbi5wdXNoKGV2ZW50c1tpbmRleCArIDFdWzFdLnR5cGUgPT09ICd0YWJsZURlbGltaXRlck1hcmtlcicgPyAnbGVmdCcgOiAnbm9uZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBFeGl0czpcbiAgICAgIC8vIEVuZCBvZiBhbGlnbm1lbnQgdmFsdWU6IGNoYW5nZSB0aGUgY29sdW1uLlxuICAgICAgLy8gVG8gZG86IGBtYXJrZG93bi1yc2AgdXNlcyBgdGFibGVEZWxpbWl0ZXJDZWxsVmFsdWVgLlxuICAgICAgZWxzZSBpZiAoZXZlbnRbMV0udHlwZSA9PT0gJ3RhYmxlQ29udGVudCcpIHtcbiAgICAgICAgaWYgKGV2ZW50c1tpbmRleCAtIDFdWzFdLnR5cGUgPT09ICd0YWJsZURlbGltaXRlck1hcmtlcicpIHtcbiAgICAgICAgICBjb25zdCBhbGlnbkluZGV4ID0gYWxpZ24ubGVuZ3RoIC0gMTtcbiAgICAgICAgICBhbGlnblthbGlnbkluZGV4XSA9IGFsaWduW2FsaWduSW5kZXhdID09PSAnbGVmdCcgPyAnY2VudGVyJyA6ICdyaWdodCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIERvbmUhXG4gICAgICBlbHNlIGlmIChldmVudFsxXS50eXBlID09PSAndGFibGVEZWxpbWl0ZXJSb3cnKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZXZlbnRbMF0gPT09ICdlbnRlcicgJiYgZXZlbnRbMV0udHlwZSA9PT0gJ3RhYmxlRGVsaW1pdGVyUm93Jykge1xuICAgICAgaW5EZWxpbWl0ZXJSb3cgPSB0cnVlO1xuICAgIH1cbiAgICBpbmRleCArPSAxO1xuICB9XG4gIHJldHVybiBhbGlnbjtcbn0iLCAiLyoqXG4gKiBAaW1wb3J0IHtFdmVudCwgRXh0ZW5zaW9uLCBQb2ludCwgUmVzb2x2ZXIsIFN0YXRlLCBUb2tlbiwgVG9rZW5pemVDb250ZXh0LCBUb2tlbml6ZXJ9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYge1tudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdfSBSYW5nZVxuICogICBDZWxsIGluZm8uXG4gKlxuICogQHR5cGVkZWYgezAgfCAxIHwgMiB8IDN9IFJvd0tpbmRcbiAqICAgV2hlcmUgd2UgYXJlOiBgMWAgZm9yIGhlYWQgcm93LCBgMmAgZm9yIGRlbGltaXRlciByb3csIGAzYCBmb3IgYm9keSByb3cuXG4gKi9cblxuaW1wb3J0IHsgZmFjdG9yeVNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLWZhY3Rvcnktc3BhY2UnO1xuaW1wb3J0IHsgbWFya2Rvd25MaW5lRW5kaW5nLCBtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlLCBtYXJrZG93blNwYWNlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJztcbmltcG9ydCB7IEVkaXRNYXAgfSBmcm9tICcuL2VkaXQtbWFwLmpzJztcbmltcG9ydCB7IGdmbVRhYmxlQWxpZ24gfSBmcm9tICcuL2luZmVyLmpzJztcblxuLyoqXG4gKiBDcmVhdGUgYW4gSFRNTCBleHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRvIHN1cHBvcnQgR2l0SHViIHRhYmxlcyBzeW50YXguXG4gKlxuICogQHJldHVybnMge0V4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0aGF0IGNhbiBiZSBwYXNzZWQgaW4gYGV4dGVuc2lvbnNgIHRvIGVuYWJsZSBHRk1cbiAqICAgdGFibGUgc3ludGF4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtVGFibGUoKSB7XG4gIHJldHVybiB7XG4gICAgZmxvdzoge1xuICAgICAgbnVsbDoge1xuICAgICAgICBuYW1lOiAndGFibGUnLFxuICAgICAgICB0b2tlbml6ZTogdG9rZW5pemVUYWJsZSxcbiAgICAgICAgcmVzb2x2ZUFsbDogcmVzb2x2ZVRhYmxlXG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiB0b2tlbml6ZVRhYmxlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gIGxldCBzaXplID0gMDtcbiAgbGV0IHNpemVCID0gMDtcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgc2VlbjtcbiAgcmV0dXJuIHN0YXJ0O1xuXG4gIC8qKlxuICAgKiBTdGFydCBvZiBhIEdGTSB0YWJsZS5cbiAgICpcbiAgICogSWYgdGhlcmUgaXMgYSB2YWxpZCB0YWJsZSByb3cgb3IgdGFibGUgaGVhZCBiZWZvcmUsIHRoZW4gd2UgdHJ5IHRvIHBhcnNlXG4gICAqIGFub3RoZXIgcm93LlxuICAgKiBPdGhlcndpc2UsIHdlIHRyeSB0byBwYXJzZSBhIGhlYWQuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB8IGEgfFxuICAgKiAgICAgXlxuICAgKiAgIHwgfCAtIHxcbiAgICogPiB8IHwgYiB8XG4gICAqICAgICBeXG4gICAqIGBgYFxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgbGV0IGluZGV4ID0gc2VsZi5ldmVudHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAoaW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgdHlwZSA9IHNlbGYuZXZlbnRzW2luZGV4XVsxXS50eXBlO1xuICAgICAgaWYgKHR5cGUgPT09IFwibGluZUVuZGluZ1wiIHx8XG4gICAgICAvLyBOb3RlOiBtYXJrZG93bi1ycyB1c2VzIGB3aGl0ZXNwYWNlYCBpbnN0ZWFkIG9mIGBsaW5lUHJlZml4YFxuICAgICAgdHlwZSA9PT0gXCJsaW5lUHJlZml4XCIpIGluZGV4LS07ZWxzZSBicmVhaztcbiAgICB9XG4gICAgY29uc3QgdGFpbCA9IGluZGV4ID4gLTEgPyBzZWxmLmV2ZW50c1tpbmRleF1bMV0udHlwZSA6IG51bGw7XG4gICAgY29uc3QgbmV4dCA9IHRhaWwgPT09ICd0YWJsZUhlYWQnIHx8IHRhaWwgPT09ICd0YWJsZVJvdycgPyBib2R5Um93U3RhcnQgOiBoZWFkUm93QmVmb3JlO1xuXG4gICAgLy8gRG9uXHUyMDE5dCBhbGxvdyBsYXp5IGJvZHkgcm93cy5cbiAgICBpZiAobmV4dCA9PT0gYm9keVJvd1N0YXJ0ICYmIHNlbGYucGFyc2VyLmxhenlbc2VsZi5ub3coKS5saW5lXSkge1xuICAgICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQmVmb3JlIHRhYmxlIGhlYWQgcm93LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfCBhIHxcbiAgICogICAgIF5cbiAgICogICB8IHwgLSB8XG4gICAqICAgfCB8IGIgfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaGVhZFJvd0JlZm9yZShjb2RlKSB7XG4gICAgZWZmZWN0cy5lbnRlcigndGFibGVIZWFkJyk7XG4gICAgZWZmZWN0cy5lbnRlcigndGFibGVSb3cnKTtcbiAgICByZXR1cm4gaGVhZFJvd1N0YXJ0KGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJlZm9yZSB0YWJsZSBoZWFkIHJvdywgYWZ0ZXIgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8IHwgYSB8XG4gICAqICAgICBeXG4gICAqICAgfCB8IC0gfFxuICAgKiAgIHwgfCBiIHxcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGhlYWRSb3dTdGFydChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDEyNCkge1xuICAgICAgcmV0dXJuIGhlYWRSb3dCcmVhayhjb2RlKTtcbiAgICB9XG5cbiAgICAvLyBUbyBkbzogbWljcm9tYXJrLWpzIHNob3VsZCBsZXQgdXMgcGFyc2Ugb3VyIG93biB3aGl0ZXNwYWNlIGluIGV4dGVuc2lvbnMsXG4gICAgLy8gbGlrZSBgbWFya2Rvd24tcnNgOlxuICAgIC8vXG4gICAgLy8gYGBganNcbiAgICAvLyAvLyA0KyBzcGFjZXMuXG4gICAgLy8gaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAvLyAgIHJldHVybiBub2soY29kZSlcbiAgICAvLyB9XG4gICAgLy8gYGBgXG5cbiAgICBzZWVuID0gdHJ1ZTtcbiAgICAvLyBDb3VudCB0aGUgZmlyc3QgY2hhcmFjdGVyLCB0aGF0IGlzblx1MjAxOXQgYSBwaXBlLCBkb3VibGUuXG4gICAgc2l6ZUIgKz0gMTtcbiAgICByZXR1cm4gaGVhZFJvd0JyZWFrKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0IGJyZWFrIGluIHRhYmxlIGhlYWQgcm93LlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfCBhIHxcbiAgICogICAgIF5cbiAgICogICAgICAgXlxuICAgKiAgICAgICAgIF5cbiAgICogICB8IHwgLSB8XG4gICAqICAgfCB8IGIgfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaGVhZFJvd0JyZWFrKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgLy8gTm90ZTogaW4gYG1hcmtkb3duLXJzYCwgd2UgbmVlZCB0byByZXNldCwgaW4gYG1pY3JvbWFyay1qc2Agd2UgZG9uXHUyMDE4dC5cbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIC8vIElmIGFueXRoaW5nIG90aGVyIHRoYW4gb25lIHBpcGUgKGlnbm9yaW5nIHdoaXRlc3BhY2UpIHdhcyB1c2VkLCBpdFx1MjAxOXMgZmluZS5cbiAgICAgIGlmIChzaXplQiA+IDEpIHtcbiAgICAgICAgc2l6ZUIgPSAwO1xuICAgICAgICAvLyBUbyBkbzogY2hlY2sgaWYgdGhpcyB3b3Jrcy5cbiAgICAgICAgLy8gRmVlbCBmcmVlIHRvIGludGVycnVwdDpcbiAgICAgICAgc2VsZi5pbnRlcnJ1cHQgPSB0cnVlO1xuICAgICAgICBlZmZlY3RzLmV4aXQoJ3RhYmxlUm93Jyk7XG4gICAgICAgIGVmZmVjdHMuZW50ZXIoXCJsaW5lRW5kaW5nXCIpO1xuICAgICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICAgIGVmZmVjdHMuZXhpdChcImxpbmVFbmRpbmdcIik7XG4gICAgICAgIHJldHVybiBoZWFkRGVsaW1pdGVyU3RhcnQ7XG4gICAgICB9XG5cbiAgICAgIC8vIE5vdGU6IGluIGBtYXJrZG93bi1yc2AsIHdlIG5lZWQgdG8gcmVzZXQsIGluIGBtaWNyb21hcmstanNgIHdlIGRvblx1MjAxOHQuXG4gICAgICByZXR1cm4gbm9rKGNvZGUpO1xuICAgIH1cbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgLy8gVG8gZG86IGNoZWNrIGlmIHRoaXMgaXMgZmluZS5cbiAgICAgIC8vIGVmZmVjdHMuYXR0ZW1wdChTdGF0ZTo6TmV4dChTdGF0ZU5hbWU6OkdmbVRhYmxlSGVhZFJvd0JyZWFrKSwgU3RhdGU6Ok5vaylcbiAgICAgIC8vIFN0YXRlOjpSZXRyeShzcGFjZV9vcl90YWIodG9rZW5pemVyKSlcbiAgICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgaGVhZFJvd0JyZWFrLCBcIndoaXRlc3BhY2VcIikoY29kZSk7XG4gICAgfVxuICAgIHNpemVCICs9IDE7XG4gICAgaWYgKHNlZW4pIHtcbiAgICAgIHNlZW4gPSBmYWxzZTtcbiAgICAgIC8vIEhlYWRlciBjZWxsIGNvdW50LlxuICAgICAgc2l6ZSArPSAxO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gMTI0KSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCd0YWJsZUNlbGxEaXZpZGVyJyk7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoJ3RhYmxlQ2VsbERpdmlkZXInKTtcbiAgICAgIC8vIFdoZXRoZXIgYSBkZWxpbWl0ZXIgd2FzIHNlZW4uXG4gICAgICBzZWVuID0gdHJ1ZTtcbiAgICAgIHJldHVybiBoZWFkUm93QnJlYWs7XG4gICAgfVxuXG4gICAgLy8gQW55dGhpbmcgZWxzZSBpcyBjZWxsIGRhdGEuXG4gICAgZWZmZWN0cy5lbnRlcihcImRhdGFcIik7XG4gICAgcmV0dXJuIGhlYWRSb3dEYXRhKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIHRhYmxlIGhlYWQgcm93IGRhdGEuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCB8IGEgfFxuICAgKiAgICAgICBeXG4gICAqICAgfCB8IC0gfFxuICAgKiAgIHwgfCBiIHxcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGhlYWRSb3dEYXRhKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBjb2RlID09PSAxMjQgfHwgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5leGl0KFwiZGF0YVwiKTtcbiAgICAgIHJldHVybiBoZWFkUm93QnJlYWsoY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICByZXR1cm4gY29kZSA9PT0gOTIgPyBoZWFkUm93RXNjYXBlIDogaGVhZFJvd0RhdGE7XG4gIH1cblxuICAvKipcbiAgICogSW4gdGFibGUgaGVhZCByb3cgZXNjYXBlLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiA+IHwgfCBhXFwtYiB8XG4gICAqICAgICAgICAgXlxuICAgKiAgIHwgfCAtLS0tIHxcbiAgICogICB8IHwgYyAgICB8XG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBoZWFkUm93RXNjYXBlKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gOTIgfHwgY29kZSA9PT0gMTI0KSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm4gaGVhZFJvd0RhdGE7XG4gICAgfVxuICAgIHJldHVybiBoZWFkUm93RGF0YShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgZGVsaW1pdGVyIHJvdy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IHwgYSB8XG4gICAqID4gfCB8IC0gfFxuICAgKiAgICAgXlxuICAgKiAgIHwgfCBiIHxcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGhlYWREZWxpbWl0ZXJTdGFydChjb2RlKSB7XG4gICAgLy8gUmVzZXQgYGludGVycnVwdGAuXG4gICAgc2VsZi5pbnRlcnJ1cHQgPSBmYWxzZTtcblxuICAgIC8vIE5vdGU6IGluIGBtYXJrZG93bi1yc2AsIHdlIG5lZWQgdG8gaGFuZGxlIHBpZXJjaW5nIGhlcmUgdG9vLlxuICAgIGlmIChzZWxmLnBhcnNlci5sYXp5W3NlbGYubm93KCkubGluZV0pIHtcbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoJ3RhYmxlRGVsaW1pdGVyUm93Jyk7XG4gICAgLy8gVHJhY2sgaWYgd2VcdTIwMTl2ZSBzZWVuIGEgYDpgIG9yIGB8YC5cbiAgICBzZWVuID0gZmFsc2U7XG4gICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgaGVhZERlbGltaXRlckJlZm9yZSwgXCJsaW5lUHJlZml4XCIsIHNlbGYucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCdjb2RlSW5kZW50ZWQnKSA/IHVuZGVmaW5lZCA6IDQpKGNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gaGVhZERlbGltaXRlckJlZm9yZShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCZWZvcmUgZGVsaW1pdGVyIHJvdywgYWZ0ZXIgb3B0aW9uYWwgd2hpdGVzcGFjZS5cbiAgICpcbiAgICogUmV1c2VkIHdoZW4gYSBgfGAgaXMgZm91bmQgbGF0ZXIsIHRvIHBhcnNlIGFub3RoZXIgY2VsbC5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IHwgYSB8XG4gICAqID4gfCB8IC0gfFxuICAgKiAgICAgXlxuICAgKiAgIHwgfCBiIHxcbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGhlYWREZWxpbWl0ZXJCZWZvcmUoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0NSB8fCBjb2RlID09PSA1OCkge1xuICAgICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJWYWx1ZUJlZm9yZShjb2RlKTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDEyNCkge1xuICAgICAgc2VlbiA9IHRydWU7XG4gICAgICAvLyBJZiB3ZSBzdGFydCB3aXRoIGEgcGlwZSwgd2Ugb3BlbiBhIGNlbGwgbWFya2VyLlxuICAgICAgZWZmZWN0cy5lbnRlcigndGFibGVDZWxsRGl2aWRlcicpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KCd0YWJsZUNlbGxEaXZpZGVyJyk7XG4gICAgICByZXR1cm4gaGVhZERlbGltaXRlckNlbGxCZWZvcmU7XG4gICAgfVxuXG4gICAgLy8gTW9yZSB3aGl0ZXNwYWNlIC8gZW1wdHkgcm93IG5vdCBhbGxvd2VkIGF0IHN0YXJ0LlxuICAgIHJldHVybiBoZWFkRGVsaW1pdGVyTm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIGB8YCwgYmVmb3JlIGRlbGltaXRlciBjZWxsLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfCBhIHxcbiAgICogPiB8IHwgLSB8XG4gICAqICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaGVhZERlbGltaXRlckNlbGxCZWZvcmUoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGhlYWREZWxpbWl0ZXJWYWx1ZUJlZm9yZSwgXCJ3aGl0ZXNwYWNlXCIpKGNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gaGVhZERlbGltaXRlclZhbHVlQmVmb3JlKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJlZm9yZSBkZWxpbWl0ZXIgY2VsbCB2YWx1ZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IHwgYSB8XG4gICAqID4gfCB8IC0gfFxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBoZWFkRGVsaW1pdGVyVmFsdWVCZWZvcmUoY29kZSkge1xuICAgIC8vIEFsaWduOiBsZWZ0LlxuICAgIGlmIChjb2RlID09PSA1OCkge1xuICAgICAgc2l6ZUIgKz0gMTtcbiAgICAgIHNlZW4gPSB0cnVlO1xuICAgICAgZWZmZWN0cy5lbnRlcigndGFibGVEZWxpbWl0ZXJNYXJrZXInKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdCgndGFibGVEZWxpbWl0ZXJNYXJrZXInKTtcbiAgICAgIHJldHVybiBoZWFkRGVsaW1pdGVyTGVmdEFsaWdubWVudEFmdGVyO1xuICAgIH1cblxuICAgIC8vIEFsaWduOiBub25lLlxuICAgIGlmIChjb2RlID09PSA0NSkge1xuICAgICAgc2l6ZUIgKz0gMTtcbiAgICAgIC8vIFRvIGRvOiBzZWVtcyB3ZWlyZCB0aGF0IHRoaXMgKmlzblx1MjAxOXQqIGxlZnQgYWxpZ25lZCwgYnV0IHRoYXQgc3RhdGUgaXMgdXNlZD9cbiAgICAgIHJldHVybiBoZWFkRGVsaW1pdGVyTGVmdEFsaWdubWVudEFmdGVyKGNvZGUpO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBoZWFkRGVsaW1pdGVyQ2VsbEFmdGVyKGNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gaGVhZERlbGltaXRlck5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZnRlciBkZWxpbWl0ZXIgY2VsbCBsZWZ0IGFsaWdubWVudCBtYXJrZXIuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCB8IGEgIHxcbiAgICogPiB8IHwgOi0gfFxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaGVhZERlbGltaXRlckxlZnRBbGlnbm1lbnRBZnRlcihjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDQ1KSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCd0YWJsZURlbGltaXRlckZpbGxlcicpO1xuICAgICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJGaWxsZXIoY29kZSk7XG4gICAgfVxuXG4gICAgLy8gQW55dGhpbmcgZWxzZSBpcyBub3Qgb2sgYWZ0ZXIgdGhlIGxlZnQtYWxpZ24gY29sb24uXG4gICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJOb2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gZGVsaW1pdGVyIGNlbGwgZmlsbGVyLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfCBhIHxcbiAgICogPiB8IHwgLSB8XG4gICAqICAgICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGhlYWREZWxpbWl0ZXJGaWxsZXIoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA0NSkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJGaWxsZXI7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gaXMgYGNlbnRlcmAgaWYgaXQgd2FzIGBsZWZ0YCwgYHJpZ2h0YCBvdGhlcndpc2UuXG4gICAgaWYgKGNvZGUgPT09IDU4KSB7XG4gICAgICBzZWVuID0gdHJ1ZTtcbiAgICAgIGVmZmVjdHMuZXhpdCgndGFibGVEZWxpbWl0ZXJGaWxsZXInKTtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ3RhYmxlRGVsaW1pdGVyTWFya2VyJyk7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoJ3RhYmxlRGVsaW1pdGVyTWFya2VyJyk7XG4gICAgICByZXR1cm4gaGVhZERlbGltaXRlclJpZ2h0QWxpZ25tZW50QWZ0ZXI7XG4gICAgfVxuICAgIGVmZmVjdHMuZXhpdCgndGFibGVEZWxpbWl0ZXJGaWxsZXInKTtcbiAgICByZXR1cm4gaGVhZERlbGltaXRlclJpZ2h0QWxpZ25tZW50QWZ0ZXIoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZGVsaW1pdGVyIGNlbGwgcmlnaHQgYWxpZ25tZW50IG1hcmtlci5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IHwgIGEgfFxuICAgKiA+IHwgfCAtOiB8XG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaGVhZERlbGltaXRlclJpZ2h0QWxpZ25tZW50QWZ0ZXIoY29kZSkge1xuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGhlYWREZWxpbWl0ZXJDZWxsQWZ0ZXIsIFwid2hpdGVzcGFjZVwiKShjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJDZWxsQWZ0ZXIoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgZGVsaW1pdGVyIGNlbGwuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCB8ICBhIHxcbiAgICogPiB8IHwgLTogfFxuICAgKiAgICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBoZWFkRGVsaW1pdGVyQ2VsbEFmdGVyKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gMTI0KSB7XG4gICAgICByZXR1cm4gaGVhZERlbGltaXRlckJlZm9yZShjb2RlKTtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICAvLyBFeGl0IHdoZW46XG4gICAgICAvLyAqIHRoZXJlIHdhcyBubyBgOmAgb3IgYHxgIGF0IGFsbCAoaXRcdTIwMTlzIGEgdGhlbWF0aWMgYnJlYWsgb3Igc2V0ZXh0XG4gICAgICAvLyAgIHVuZGVybGluZSBpbnN0ZWFkKVxuICAgICAgLy8gKiB0aGUgaGVhZGVyIGNlbGwgY291bnQgaXMgbm90IHRoZSBkZWxpbWl0ZXIgY2VsbCBjb3VudFxuICAgICAgaWYgKCFzZWVuIHx8IHNpemUgIT09IHNpemVCKSB7XG4gICAgICAgIHJldHVybiBoZWFkRGVsaW1pdGVyTm9rKGNvZGUpO1xuICAgICAgfVxuXG4gICAgICAvLyBOb3RlOiBpbiBtYXJrZG93bi1yc2AsIGEgcmVzZXQgaXMgbmVlZGVkIGhlcmUuXG4gICAgICBlZmZlY3RzLmV4aXQoJ3RhYmxlRGVsaW1pdGVyUm93Jyk7XG4gICAgICBlZmZlY3RzLmV4aXQoJ3RhYmxlSGVhZCcpO1xuICAgICAgLy8gVG8gZG86IGluIGBtYXJrZG93bi1yc2AsIHJlc29sdmVycyBuZWVkIHRvIGJlIHJlZ2lzdGVyZWQgbWFudWFsbHkuXG4gICAgICAvLyBlZmZlY3RzLnJlZ2lzdGVyX3Jlc29sdmVyKFJlc29sdmVOYW1lOjpHZm1UYWJsZSlcbiAgICAgIHJldHVybiBvayhjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWREZWxpbWl0ZXJOb2soY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogSW4gZGVsaW1pdGVyIHJvdywgYXQgYSBkaXNhbGxvd2VkIGJ5dGUuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCB8IGEgfFxuICAgKiA+IHwgfCB4IHxcbiAgICogICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaGVhZERlbGltaXRlck5vayhjb2RlKSB7XG4gICAgLy8gTm90ZTogaW4gYG1hcmtkb3duLXJzYCwgd2UgbmVlZCB0byByZXNldCwgaW4gYG1pY3JvbWFyay1qc2Agd2UgZG9uXHUyMDE4dC5cbiAgICByZXR1cm4gbm9rKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJlZm9yZSB0YWJsZSBib2R5IHJvdy5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IHwgYSB8XG4gICAqICAgfCB8IC0gfFxuICAgKiA+IHwgfCBiIHxcbiAgICogICAgIF5cbiAgICogYGBgXG4gICAqXG4gICAqIEB0eXBlIHtTdGF0ZX1cbiAgICovXG4gIGZ1bmN0aW9uIGJvZHlSb3dTdGFydChjb2RlKSB7XG4gICAgLy8gTm90ZTogaW4gYG1hcmtkb3duLXJzYCB3ZSBuZWVkIHRvIG1hbnVhbGx5IHRha2UgY2FyZSBvZiBhIHByZWZpeCxcbiAgICAvLyBidXQgaW4gYG1pY3JvbWFyay1qc2AgdGhhdCBpcyBkb25lIGZvciB1cywgc28gaWYgd2VcdTIwMTlyZSBoZXJlLCB3ZVx1MjAxOXJlXG4gICAgLy8gbmV2ZXIgYXQgd2hpdGVzcGFjZS5cbiAgICBlZmZlY3RzLmVudGVyKCd0YWJsZVJvdycpO1xuICAgIHJldHVybiBib2R5Um93QnJlYWsoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQXQgYnJlYWsgaW4gdGFibGUgYm9keSByb3cuXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqICAgfCB8IGEgfFxuICAgKiAgIHwgfCAtIHxcbiAgICogPiB8IHwgYiB8XG4gICAqICAgICBeXG4gICAqICAgICAgIF5cbiAgICogICAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBib2R5Um93QnJlYWsoY29kZSkge1xuICAgIGlmIChjb2RlID09PSAxMjQpIHtcbiAgICAgIGVmZmVjdHMuZW50ZXIoJ3RhYmxlQ2VsbERpdmlkZXInKTtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIGVmZmVjdHMuZXhpdCgndGFibGVDZWxsRGl2aWRlcicpO1xuICAgICAgcmV0dXJuIGJvZHlSb3dCcmVhaztcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmV4aXQoJ3RhYmxlUm93Jyk7XG4gICAgICByZXR1cm4gb2soY29kZSk7XG4gICAgfVxuICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGJvZHlSb3dCcmVhaywgXCJ3aGl0ZXNwYWNlXCIpKGNvZGUpO1xuICAgIH1cblxuICAgIC8vIEFueXRoaW5nIGVsc2UgaXMgY2VsbCBjb250ZW50LlxuICAgIGVmZmVjdHMuZW50ZXIoXCJkYXRhXCIpO1xuICAgIHJldHVybiBib2R5Um93RGF0YShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiB0YWJsZSBib2R5IHJvdyBkYXRhLlxuICAgKlxuICAgKiBgYGBtYXJrZG93blxuICAgKiAgIHwgfCBhIHxcbiAgICogICB8IHwgLSB8XG4gICAqID4gfCB8IGIgfFxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBib2R5Um93RGF0YShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwgfHwgY29kZSA9PT0gMTI0IHx8IG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuZXhpdChcImRhdGFcIik7XG4gICAgICByZXR1cm4gYm9keVJvd0JyZWFrKGNvZGUpO1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIGNvZGUgPT09IDkyID8gYm9keVJvd0VzY2FwZSA6IGJvZHlSb3dEYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIHRhYmxlIGJvZHkgcm93IGVzY2FwZS5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogICB8IHwgYSAgICB8XG4gICAqICAgfCB8IC0tLS0gfFxuICAgKiA+IHwgfCBiXFwtYyB8XG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYm9keVJvd0VzY2FwZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IDkyIHx8IGNvZGUgPT09IDEyNCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGJvZHlSb3dEYXRhO1xuICAgIH1cbiAgICByZXR1cm4gYm9keVJvd0RhdGEoY29kZSk7XG4gIH1cbn1cblxuLyoqIEB0eXBlIHtSZXNvbHZlcn0gKi9cblxuZnVuY3Rpb24gcmVzb2x2ZVRhYmxlKGV2ZW50cywgY29udGV4dCkge1xuICBsZXQgaW5kZXggPSAtMTtcbiAgbGV0IGluRmlyc3RDZWxsQXdhaXRpbmdQaXBlID0gdHJ1ZTtcbiAgLyoqIEB0eXBlIHtSb3dLaW5kfSAqL1xuICBsZXQgcm93S2luZCA9IDA7XG4gIC8qKiBAdHlwZSB7UmFuZ2V9ICovXG4gIGxldCBsYXN0Q2VsbCA9IFswLCAwLCAwLCAwXTtcbiAgLyoqIEB0eXBlIHtSYW5nZX0gKi9cbiAgbGV0IGNlbGwgPSBbMCwgMCwgMCwgMF07XG4gIGxldCBhZnRlckhlYWRBd2FpdGluZ0ZpcnN0Qm9keVJvdyA9IGZhbHNlO1xuICBsZXQgbGFzdFRhYmxlRW5kID0gMDtcbiAgLyoqIEB0eXBlIHtUb2tlbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGN1cnJlbnRUYWJsZTtcbiAgLyoqIEB0eXBlIHtUb2tlbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGN1cnJlbnRCb2R5O1xuICAvKiogQHR5cGUge1Rva2VuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY3VycmVudENlbGw7XG4gIGNvbnN0IG1hcCA9IG5ldyBFZGl0TWFwKCk7XG4gIHdoaWxlICgrK2luZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuICAgIGNvbnN0IGV2ZW50ID0gZXZlbnRzW2luZGV4XTtcbiAgICBjb25zdCB0b2tlbiA9IGV2ZW50WzFdO1xuICAgIGlmIChldmVudFswXSA9PT0gJ2VudGVyJykge1xuICAgICAgLy8gU3RhcnQgb2YgaGVhZC5cbiAgICAgIGlmICh0b2tlbi50eXBlID09PSAndGFibGVIZWFkJykge1xuICAgICAgICBhZnRlckhlYWRBd2FpdGluZ0ZpcnN0Qm9keVJvdyA9IGZhbHNlO1xuXG4gICAgICAgIC8vIEluamVjdCBwcmV2aW91cyAoYm9keSBlbmQgYW5kKSB0YWJsZSBlbmQuXG4gICAgICAgIGlmIChsYXN0VGFibGVFbmQgIT09IDApIHtcbiAgICAgICAgICBmbHVzaFRhYmxlRW5kKG1hcCwgY29udGV4dCwgbGFzdFRhYmxlRW5kLCBjdXJyZW50VGFibGUsIGN1cnJlbnRCb2R5KTtcbiAgICAgICAgICBjdXJyZW50Qm9keSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBsYXN0VGFibGVFbmQgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5qZWN0IHRhYmxlIHN0YXJ0LlxuICAgICAgICBjdXJyZW50VGFibGUgPSB7XG4gICAgICAgICAgdHlwZTogJ3RhYmxlJyxcbiAgICAgICAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgdG9rZW4uc3RhcnQpLFxuICAgICAgICAgIC8vIE5vdGU6IGNvcnJlY3QgZW5kIGlzIHNldCBsYXRlci5cbiAgICAgICAgICBlbmQ6IE9iamVjdC5hc3NpZ24oe30sIHRva2VuLmVuZClcbiAgICAgICAgfTtcbiAgICAgICAgbWFwLmFkZChpbmRleCwgMCwgW1snZW50ZXInLCBjdXJyZW50VGFibGUsIGNvbnRleHRdXSk7XG4gICAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUgPT09ICd0YWJsZVJvdycgfHwgdG9rZW4udHlwZSA9PT0gJ3RhYmxlRGVsaW1pdGVyUm93Jykge1xuICAgICAgICBpbkZpcnN0Q2VsbEF3YWl0aW5nUGlwZSA9IHRydWU7XG4gICAgICAgIGN1cnJlbnRDZWxsID0gdW5kZWZpbmVkO1xuICAgICAgICBsYXN0Q2VsbCA9IFswLCAwLCAwLCAwXTtcbiAgICAgICAgY2VsbCA9IFswLCBpbmRleCArIDEsIDAsIDBdO1xuXG4gICAgICAgIC8vIEluamVjdCB0YWJsZSBib2R5IHN0YXJ0LlxuICAgICAgICBpZiAoYWZ0ZXJIZWFkQXdhaXRpbmdGaXJzdEJvZHlSb3cpIHtcbiAgICAgICAgICBhZnRlckhlYWRBd2FpdGluZ0ZpcnN0Qm9keVJvdyA9IGZhbHNlO1xuICAgICAgICAgIGN1cnJlbnRCb2R5ID0ge1xuICAgICAgICAgICAgdHlwZTogJ3RhYmxlQm9keScsXG4gICAgICAgICAgICBzdGFydDogT2JqZWN0LmFzc2lnbih7fSwgdG9rZW4uc3RhcnQpLFxuICAgICAgICAgICAgLy8gTm90ZTogY29ycmVjdCBlbmQgaXMgc2V0IGxhdGVyLlxuICAgICAgICAgICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCB0b2tlbi5lbmQpXG4gICAgICAgICAgfTtcbiAgICAgICAgICBtYXAuYWRkKGluZGV4LCAwLCBbWydlbnRlcicsIGN1cnJlbnRCb2R5LCBjb250ZXh0XV0pO1xuICAgICAgICB9XG4gICAgICAgIHJvd0tpbmQgPSB0b2tlbi50eXBlID09PSAndGFibGVEZWxpbWl0ZXJSb3cnID8gMiA6IGN1cnJlbnRCb2R5ID8gMyA6IDE7XG4gICAgICB9XG4gICAgICAvLyBDZWxsIGRhdGEuXG4gICAgICBlbHNlIGlmIChyb3dLaW5kICYmICh0b2tlbi50eXBlID09PSBcImRhdGFcIiB8fCB0b2tlbi50eXBlID09PSAndGFibGVEZWxpbWl0ZXJNYXJrZXInIHx8IHRva2VuLnR5cGUgPT09ICd0YWJsZURlbGltaXRlckZpbGxlcicpKSB7XG4gICAgICAgIGluRmlyc3RDZWxsQXdhaXRpbmdQaXBlID0gZmFsc2U7XG5cbiAgICAgICAgLy8gRmlyc3QgdmFsdWUgaW4gY2VsbC5cbiAgICAgICAgaWYgKGNlbGxbMl0gPT09IDApIHtcbiAgICAgICAgICBpZiAobGFzdENlbGxbMV0gIT09IDApIHtcbiAgICAgICAgICAgIGNlbGxbMF0gPSBjZWxsWzFdO1xuICAgICAgICAgICAgY3VycmVudENlbGwgPSBmbHVzaENlbGwobWFwLCBjb250ZXh0LCBsYXN0Q2VsbCwgcm93S2luZCwgdW5kZWZpbmVkLCBjdXJyZW50Q2VsbCk7XG4gICAgICAgICAgICBsYXN0Q2VsbCA9IFswLCAwLCAwLCAwXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2VsbFsyXSA9IGluZGV4O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUgPT09ICd0YWJsZUNlbGxEaXZpZGVyJykge1xuICAgICAgICBpZiAoaW5GaXJzdENlbGxBd2FpdGluZ1BpcGUpIHtcbiAgICAgICAgICBpbkZpcnN0Q2VsbEF3YWl0aW5nUGlwZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChsYXN0Q2VsbFsxXSAhPT0gMCkge1xuICAgICAgICAgICAgY2VsbFswXSA9IGNlbGxbMV07XG4gICAgICAgICAgICBjdXJyZW50Q2VsbCA9IGZsdXNoQ2VsbChtYXAsIGNvbnRleHQsIGxhc3RDZWxsLCByb3dLaW5kLCB1bmRlZmluZWQsIGN1cnJlbnRDZWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGFzdENlbGwgPSBjZWxsO1xuICAgICAgICAgIGNlbGwgPSBbbGFzdENlbGxbMV0sIGluZGV4LCAwLCAwXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBFeGl0IGV2ZW50cy5cbiAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSAndGFibGVIZWFkJykge1xuICAgICAgYWZ0ZXJIZWFkQXdhaXRpbmdGaXJzdEJvZHlSb3cgPSB0cnVlO1xuICAgICAgbGFzdFRhYmxlRW5kID0gaW5kZXg7XG4gICAgfSBlbHNlIGlmICh0b2tlbi50eXBlID09PSAndGFibGVSb3cnIHx8IHRva2VuLnR5cGUgPT09ICd0YWJsZURlbGltaXRlclJvdycpIHtcbiAgICAgIGxhc3RUYWJsZUVuZCA9IGluZGV4O1xuICAgICAgaWYgKGxhc3RDZWxsWzFdICE9PSAwKSB7XG4gICAgICAgIGNlbGxbMF0gPSBjZWxsWzFdO1xuICAgICAgICBjdXJyZW50Q2VsbCA9IGZsdXNoQ2VsbChtYXAsIGNvbnRleHQsIGxhc3RDZWxsLCByb3dLaW5kLCBpbmRleCwgY3VycmVudENlbGwpO1xuICAgICAgfSBlbHNlIGlmIChjZWxsWzFdICE9PSAwKSB7XG4gICAgICAgIGN1cnJlbnRDZWxsID0gZmx1c2hDZWxsKG1hcCwgY29udGV4dCwgY2VsbCwgcm93S2luZCwgaW5kZXgsIGN1cnJlbnRDZWxsKTtcbiAgICAgIH1cbiAgICAgIHJvd0tpbmQgPSAwO1xuICAgIH0gZWxzZSBpZiAocm93S2luZCAmJiAodG9rZW4udHlwZSA9PT0gXCJkYXRhXCIgfHwgdG9rZW4udHlwZSA9PT0gJ3RhYmxlRGVsaW1pdGVyTWFya2VyJyB8fCB0b2tlbi50eXBlID09PSAndGFibGVEZWxpbWl0ZXJGaWxsZXInKSkge1xuICAgICAgY2VsbFszXSA9IGluZGV4O1xuICAgIH1cbiAgfVxuICBpZiAobGFzdFRhYmxlRW5kICE9PSAwKSB7XG4gICAgZmx1c2hUYWJsZUVuZChtYXAsIGNvbnRleHQsIGxhc3RUYWJsZUVuZCwgY3VycmVudFRhYmxlLCBjdXJyZW50Qm9keSk7XG4gIH1cbiAgbWFwLmNvbnN1bWUoY29udGV4dC5ldmVudHMpO1xuXG4gIC8vIFRvIGRvOiBtb3ZlIHRoaXMgaW50byBgaHRtbGAsIHdoZW4gZXZlbnRzIGFyZSBleHBvc2VkIHRoZXJlLlxuICAvLyBUaGF0XHUyMDE5cyB3aGF0IGBtYXJrZG93bi1yc2AgZG9lcy5cbiAgLy8gVGhhdCBuZWVkcyB1cGRhdGVzIHRvIGBtZGFzdC11dGlsLWdmbS10YWJsZWAuXG4gIGluZGV4ID0gLTE7XG4gIHdoaWxlICgrK2luZGV4IDwgY29udGV4dC5ldmVudHMubGVuZ3RoKSB7XG4gICAgY29uc3QgZXZlbnQgPSBjb250ZXh0LmV2ZW50c1tpbmRleF07XG4gICAgaWYgKGV2ZW50WzBdID09PSAnZW50ZXInICYmIGV2ZW50WzFdLnR5cGUgPT09ICd0YWJsZScpIHtcbiAgICAgIGV2ZW50WzFdLl9hbGlnbiA9IGdmbVRhYmxlQWxpZ24oY29udGV4dC5ldmVudHMsIGluZGV4KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGV2ZW50cztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIGNlbGwuXG4gKlxuICogQHBhcmFtIHtFZGl0TWFwfSBtYXBcbiAqIEBwYXJhbSB7UmVhZG9ubHk8VG9rZW5pemVDb250ZXh0Pn0gY29udGV4dFxuICogQHBhcmFtIHtSZWFkb25seTxSYW5nZT59IHJhbmdlXG4gKiBAcGFyYW0ge1Jvd0tpbmR9IHJvd0tpbmRcbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSByb3dFbmRcbiAqIEBwYXJhbSB7VG9rZW4gfCB1bmRlZmluZWR9IHByZXZpb3VzQ2VsbFxuICogQHJldHVybnMge1Rva2VuIHwgdW5kZWZpbmVkfVxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LXBhcmFtc1xuZnVuY3Rpb24gZmx1c2hDZWxsKG1hcCwgY29udGV4dCwgcmFuZ2UsIHJvd0tpbmQsIHJvd0VuZCwgcHJldmlvdXNDZWxsKSB7XG4gIC8vIGBtYXJrZG93bi1yc2AgdXNlczpcbiAgLy8gcm93S2luZCA9PT0gMiA/ICd0YWJsZURlbGltaXRlckNlbGwnIDogJ3RhYmxlQ2VsbCdcbiAgY29uc3QgZ3JvdXBOYW1lID0gcm93S2luZCA9PT0gMSA/ICd0YWJsZUhlYWRlcicgOiByb3dLaW5kID09PSAyID8gJ3RhYmxlRGVsaW1pdGVyJyA6ICd0YWJsZURhdGEnO1xuICAvLyBgbWFya2Rvd24tcnNgIHVzZXM6XG4gIC8vIHJvd0tpbmQgPT09IDIgPyAndGFibGVEZWxpbWl0ZXJDZWxsVmFsdWUnIDogJ3RhYmxlQ2VsbFRleHQnXG4gIGNvbnN0IHZhbHVlTmFtZSA9ICd0YWJsZUNvbnRlbnQnO1xuXG4gIC8vIEluc2VydCBhbiBleGl0IGZvciB0aGUgcHJldmlvdXMgY2VsbCwgaWYgdGhlcmUgaXMgb25lLlxuICAvL1xuICAvLyBgYGBtYXJrZG93blxuICAvLyA+IHwgfCBhYSB8IGJiIHwgY2MgfFxuICAvLyAgICAgICAgICBeLS0gZXhpdFxuICAvLyAgICAgICAgICAgXl5eXi0tIHRoaXMgY2VsbFxuICAvLyBgYGBcbiAgaWYgKHJhbmdlWzBdICE9PSAwKSB7XG4gICAgcHJldmlvdXNDZWxsLmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIGdldFBvaW50KGNvbnRleHQuZXZlbnRzLCByYW5nZVswXSkpO1xuICAgIG1hcC5hZGQocmFuZ2VbMF0sIDAsIFtbJ2V4aXQnLCBwcmV2aW91c0NlbGwsIGNvbnRleHRdXSk7XG4gIH1cblxuICAvLyBJbnNlcnQgZW50ZXIgb2YgdGhpcyBjZWxsLlxuICAvL1xuICAvLyBgYGBtYXJrZG93blxuICAvLyA+IHwgfCBhYSB8IGJiIHwgY2MgfFxuICAvLyAgICAgICAgICAgXi0tIGVudGVyXG4gIC8vICAgICAgICAgICBeXl5eLS0gdGhpcyBjZWxsXG4gIC8vIGBgYFxuICBjb25zdCBub3cgPSBnZXRQb2ludChjb250ZXh0LmV2ZW50cywgcmFuZ2VbMV0pO1xuICBwcmV2aW91c0NlbGwgPSB7XG4gICAgdHlwZTogZ3JvdXBOYW1lLFxuICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCBub3cpLFxuICAgIC8vIE5vdGU6IGNvcnJlY3QgZW5kIGlzIHNldCBsYXRlci5cbiAgICBlbmQ6IE9iamVjdC5hc3NpZ24oe30sIG5vdylcbiAgfTtcbiAgbWFwLmFkZChyYW5nZVsxXSwgMCwgW1snZW50ZXInLCBwcmV2aW91c0NlbGwsIGNvbnRleHRdXSk7XG5cbiAgLy8gSW5zZXJ0IHRleHQgc3RhcnQgYXQgZmlyc3QgZGF0YSBzdGFydCBhbmQgZW5kIGF0IGxhc3QgZGF0YSBlbmQsIGFuZFxuICAvLyByZW1vdmUgZXZlbnRzIGJldHdlZW4uXG4gIC8vXG4gIC8vIGBgYG1hcmtkb3duXG4gIC8vID4gfCB8IGFhIHwgYmIgfCBjYyB8XG4gIC8vICAgICAgICAgICAgXi0tIGVudGVyXG4gIC8vICAgICAgICAgICAgIF4tLSBleGl0XG4gIC8vICAgICAgICAgICBeXl5eLS0gdGhpcyBjZWxsXG4gIC8vIGBgYFxuICBpZiAocmFuZ2VbMl0gIT09IDApIHtcbiAgICBjb25zdCByZWxhdGVkU3RhcnQgPSBnZXRQb2ludChjb250ZXh0LmV2ZW50cywgcmFuZ2VbMl0pO1xuICAgIGNvbnN0IHJlbGF0ZWRFbmQgPSBnZXRQb2ludChjb250ZXh0LmV2ZW50cywgcmFuZ2VbM10pO1xuICAgIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gICAgY29uc3QgdmFsdWVUb2tlbiA9IHtcbiAgICAgIHR5cGU6IHZhbHVlTmFtZSxcbiAgICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCByZWxhdGVkU3RhcnQpLFxuICAgICAgZW5kOiBPYmplY3QuYXNzaWduKHt9LCByZWxhdGVkRW5kKVxuICAgIH07XG4gICAgbWFwLmFkZChyYW5nZVsyXSwgMCwgW1snZW50ZXInLCB2YWx1ZVRva2VuLCBjb250ZXh0XV0pO1xuICAgIGlmIChyb3dLaW5kICE9PSAyKSB7XG4gICAgICAvLyBGaXggcG9zaXRpb25hbCBpbmZvIG9uIHJlbWFpbmluZyBldmVudHNcbiAgICAgIGNvbnN0IHN0YXJ0ID0gY29udGV4dC5ldmVudHNbcmFuZ2VbMl1dO1xuICAgICAgY29uc3QgZW5kID0gY29udGV4dC5ldmVudHNbcmFuZ2VbM11dO1xuICAgICAgc3RhcnRbMV0uZW5kID0gT2JqZWN0LmFzc2lnbih7fSwgZW5kWzFdLmVuZCk7XG4gICAgICBzdGFydFsxXS50eXBlID0gXCJjaHVua1RleHRcIjtcbiAgICAgIHN0YXJ0WzFdLmNvbnRlbnRUeXBlID0gXCJ0ZXh0XCI7XG5cbiAgICAgIC8vIFJlbW92ZSBpZiBuZWVkZWQuXG4gICAgICBpZiAocmFuZ2VbM10gPiByYW5nZVsyXSArIDEpIHtcbiAgICAgICAgY29uc3QgYSA9IHJhbmdlWzJdICsgMTtcbiAgICAgICAgY29uc3QgYiA9IHJhbmdlWzNdIC0gcmFuZ2VbMl0gLSAxO1xuICAgICAgICBtYXAuYWRkKGEsIGIsIFtdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbWFwLmFkZChyYW5nZVszXSArIDEsIDAsIFtbJ2V4aXQnLCB2YWx1ZVRva2VuLCBjb250ZXh0XV0pO1xuICB9XG5cbiAgLy8gSW5zZXJ0IGFuIGV4aXQgZm9yIHRoZSBsYXN0IGNlbGwsIGlmIGF0IHRoZSByb3cgZW5kLlxuICAvL1xuICAvLyBgYGBtYXJrZG93blxuICAvLyA+IHwgfCBhYSB8IGJiIHwgY2MgfFxuICAvLyAgICAgICAgICAgICAgICAgICAgXi0tIGV4aXRcbiAgLy8gICAgICAgICAgICAgICBeXl5eXl4tLSB0aGlzIGNlbGwgKHRoZSBsYXN0IG9uZSBjb250YWlucyB0d28gXHUyMDFDYmV0d2Vlblx1MjAxRCBwYXJ0cylcbiAgLy8gYGBgXG4gIGlmIChyb3dFbmQgIT09IHVuZGVmaW5lZCkge1xuICAgIHByZXZpb3VzQ2VsbC5lbmQgPSBPYmplY3QuYXNzaWduKHt9LCBnZXRQb2ludChjb250ZXh0LmV2ZW50cywgcm93RW5kKSk7XG4gICAgbWFwLmFkZChyb3dFbmQsIDAsIFtbJ2V4aXQnLCBwcmV2aW91c0NlbGwsIGNvbnRleHRdXSk7XG4gICAgcHJldmlvdXNDZWxsID0gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiBwcmV2aW91c0NlbGw7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgdGFibGUgZW5kIChhbmQgdGFibGUgYm9keSBlbmQpLlxuICpcbiAqIEBwYXJhbSB7UmVhZG9ubHk8RWRpdE1hcD59IG1hcFxuICogQHBhcmFtIHtSZWFkb25seTxUb2tlbml6ZUNvbnRleHQ+fSBjb250ZXh0XG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7VG9rZW59IHRhYmxlXG4gKiBAcGFyYW0ge1Rva2VuIHwgdW5kZWZpbmVkfSB0YWJsZUJvZHlcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1wYXJhbXNcbmZ1bmN0aW9uIGZsdXNoVGFibGVFbmQobWFwLCBjb250ZXh0LCBpbmRleCwgdGFibGUsIHRhYmxlQm9keSkge1xuICAvKiogQHR5cGUge0FycmF5PEV2ZW50Pn0gKi9cbiAgY29uc3QgZXhpdHMgPSBbXTtcbiAgY29uc3QgcmVsYXRlZCA9IGdldFBvaW50KGNvbnRleHQuZXZlbnRzLCBpbmRleCk7XG4gIGlmICh0YWJsZUJvZHkpIHtcbiAgICB0YWJsZUJvZHkuZW5kID0gT2JqZWN0LmFzc2lnbih7fSwgcmVsYXRlZCk7XG4gICAgZXhpdHMucHVzaChbJ2V4aXQnLCB0YWJsZUJvZHksIGNvbnRleHRdKTtcbiAgfVxuICB0YWJsZS5lbmQgPSBPYmplY3QuYXNzaWduKHt9LCByZWxhdGVkKTtcbiAgZXhpdHMucHVzaChbJ2V4aXQnLCB0YWJsZSwgY29udGV4dF0pO1xuICBtYXAuYWRkKGluZGV4ICsgMSwgMCwgZXhpdHMpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVhZG9ubHk8QXJyYXk8RXZlbnQ+Pn0gZXZlbnRzXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEByZXR1cm5zIHtSZWFkb25seTxQb2ludD59XG4gKi9cbmZ1bmN0aW9uIGdldFBvaW50KGV2ZW50cywgaW5kZXgpIHtcbiAgY29uc3QgZXZlbnQgPSBldmVudHNbaW5kZXhdO1xuICBjb25zdCBzaWRlID0gZXZlbnRbMF0gPT09ICdlbnRlcicgPyAnc3RhcnQnIDogJ2VuZCc7XG4gIHJldHVybiBldmVudFsxXVtzaWRlXTtcbn0iLCAiZXhwb3J0IHsgZ2ZtVGFibGVIdG1sIH0gZnJvbSAnLi9saWIvaHRtbC5qcyc7XG5leHBvcnQgeyBnZm1UYWJsZSB9IGZyb20gJy4vbGliL3N5bnRheC5qcyc7IiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db21waWxlQ29udGV4dH0gQ29tcGlsZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSHRtbEV4dGVuc2lvbn0gSHRtbEV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlbn0gVG9rZW5cbiAqL1xuXG4vLyBBbiBvcGVuaW5nIG9yIGNsb3NpbmcgdGFnIHN0YXJ0LCBmb2xsb3dlZCBieSBhIGNhc2UtaW5zZW5zaXRpdmUgc3BlY2lmaWMgdGFnIG5hbWUsXG4vLyBmb2xsb3dlZCBieSBIVE1MIHdoaXRlc3BhY2UsIGEgZ3JlYXRlciB0aGFuLCBvciBhIHNsYXNoLlxuY29uc3QgcmVGbG93ID1cbiAgLzwoXFwvPykoaWZyYW1lfG5vZW1iZWR8bm9mcmFtZXN8cGxhaW50ZXh0fHNjcmlwdHxzdHlsZXx0aXRsZXx0ZXh0YXJlYXx4bXApKD89W1xcdFxcblxcZlxcciAvPl0pL2dpXG5cbi8vIEFzIEhUTUwgKHRleHQpIHBhcnNlcyB0YWdzIHNlcGFyYXRlbHkgKGFuZCB2ZXJ5IHN0cmljdGx5KSwgd2UgZG9uXHUyMDE5dCBuZWVkIHRvIGJlXG4vLyBnbG9iYWwuXG5jb25zdCByZVRleHQgPSBuZXcgUmVnRXhwKCdeJyArIHJlRmxvdy5zb3VyY2UsICdpJylcblxuLyoqXG4gKiBDcmVhdGUgYW4gSFRNTCBleHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRvIHN1cHBvcnQgR2l0SHVicyB3ZWlyZCBhbmRcbiAqIHVzZWxlc3MgdGFnZmlsdGVyIHdoZW4gc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqXG4gKiBAcmV0dXJucyB7SHRtbEV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0aGF0IGNhbiBiZSBwYXNzZWQgaW4gYGh0bWxFeHRlbnNpb25zYCB0byBzdXBwb3J0XG4gKiAgIEdpdEh1YnMgd2VpcmQgYW5kIHVzZWxlc3MgdGFnZmlsdGVyIHdoZW4gc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbVRhZ2ZpbHRlckh0bWwoKSB7XG4gIHJldHVybiB7XG4gICAgZXhpdDoge1xuICAgICAgaHRtbEZsb3dEYXRhKHRva2VuKSB7XG4gICAgICAgIGV4aXRIdG1sRGF0YS5jYWxsKHRoaXMsIHRva2VuLCByZUZsb3cpXG4gICAgICB9LFxuICAgICAgaHRtbFRleHREYXRhKHRva2VuKSB7XG4gICAgICAgIGV4aXRIdG1sRGF0YS5jYWxsKHRoaXMsIHRva2VuLCByZVRleHQpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHBhcmFtIHtUb2tlbn0gdG9rZW5cbiAqIEBwYXJhbSB7UmVnRXhwfSBmaWx0ZXJcbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKi9cbmZ1bmN0aW9uIGV4aXRIdG1sRGF0YSh0b2tlbiwgZmlsdGVyKSB7XG4gIGxldCB2YWx1ZSA9IHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pXG5cbiAgaWYgKHRoaXMub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoZmlsdGVyLCAnJmx0OyQxJDInKVxuICB9XG5cbiAgdGhpcy5yYXcodGhpcy5lbmNvZGUodmFsdWUpKVxufVxuIiwgImV4cG9ydCB7Z2ZtVGFnZmlsdGVySHRtbH0gZnJvbSAnLi9saWIvaW5kZXguanMnXG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtIdG1sRXh0ZW5zaW9ufSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG4vKipcbiAqIENyZWF0ZSBhbiBIVE1MIGV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdG8gc3VwcG9ydCBHRk0gdGFzayBsaXN0IGl0ZW1zIHdoZW5cbiAqIHNlcmlhbGl6aW5nIHRvIEhUTUwuXG4gKlxuICogQHJldHVybnMge0h0bWxFeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdGhhdCBjYW4gYmUgcGFzc2VkIGluIGBodG1sRXh0ZW5zaW9uc2AgdG9cbiAqICAgc3VwcG9ydCBHRk0gdGFzayBsaXN0IGl0ZW1zIHdoZW4gc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbVRhc2tMaXN0SXRlbUh0bWwoKSB7XG4gIHJldHVybiB7XG4gICAgZW50ZXI6IHtcbiAgICAgIHRhc2tMaXN0Q2hlY2soKSB7XG4gICAgICAgIHRoaXMudGFnKCc8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgZGlzYWJsZWQ9XCJcIiAnKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGV4aXQ6IHtcbiAgICAgIHRhc2tMaXN0Q2hlY2soKSB7XG4gICAgICAgIHRoaXMudGFnKCcvPicpO1xuICAgICAgfSxcbiAgICAgIHRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMudGFnKCdjaGVja2VkPVwiXCIgJyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufSIsICIvKipcbiAqIEBpbXBvcnQge0V4dGVuc2lvbiwgU3RhdGUsIFRva2VuaXplQ29udGV4dCwgVG9rZW5pemVyfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBmYWN0b3J5U3BhY2UgfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSc7XG5pbXBvcnQgeyBtYXJrZG93bkxpbmVFbmRpbmcsIG1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UsIG1hcmtkb3duU3BhY2UgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuY29uc3QgdGFza2xpc3RDaGVjayA9IHtcbiAgbmFtZTogJ3Rhc2tsaXN0Q2hlY2snLFxuICB0b2tlbml6ZTogdG9rZW5pemVUYXNrbGlzdENoZWNrXG59O1xuXG4vKipcbiAqIENyZWF0ZSBhbiBIVE1MIGV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdG8gc3VwcG9ydCBHRk0gdGFzayBsaXN0IGl0ZW1zXG4gKiBzeW50YXguXG4gKlxuICogQHJldHVybnMge0V4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0aGF0IGNhbiBiZSBwYXNzZWQgaW4gYGh0bWxFeHRlbnNpb25zYCB0b1xuICogICBzdXBwb3J0IEdGTSB0YXNrIGxpc3QgaXRlbXMgd2hlbiBzZXJpYWxpemluZyB0byBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtVGFza0xpc3RJdGVtKCkge1xuICByZXR1cm4ge1xuICAgIHRleHQ6IHtcbiAgICAgIFs5MV06IHRhc2tsaXN0Q2hlY2tcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqIEB0eXBlIHtUb2tlbml6ZXJ9XG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplVGFza2xpc3RDaGVjayhlZmZlY3RzLCBvaywgbm9rKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICByZXR1cm4gb3BlbjtcblxuICAvKipcbiAgICogQXQgc3RhcnQgb2YgdGFzayBsaXN0IGl0ZW0gY2hlY2suXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAqIFt4XSB5LlxuICAgKiAgICAgICBeXG4gICAqIGBgYFxuICAgKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBvcGVuKGNvZGUpIHtcbiAgICBpZiAoXG4gICAgLy8gRXhpdCBpZiB0aGVyZVx1MjAxOXMgc3R1ZmYgYmVmb3JlLlxuICAgIHNlbGYucHJldmlvdXMgIT09IG51bGwgfHxcbiAgICAvLyBFeGl0IGlmIG5vdCBpbiB0aGUgZmlyc3QgY29udGVudCB0aGF0IGlzIHRoZSBmaXJzdCBjaGlsZCBvZiBhIGxpc3RcbiAgICAvLyBpdGVtLlxuICAgICFzZWxmLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0pIHtcbiAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoJ3Rhc2tMaXN0Q2hlY2snKTtcbiAgICBlZmZlY3RzLmVudGVyKCd0YXNrTGlzdENoZWNrTWFya2VyJyk7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIGVmZmVjdHMuZXhpdCgndGFza0xpc3RDaGVja01hcmtlcicpO1xuICAgIHJldHVybiBpbnNpZGU7XG4gIH1cblxuICAvKipcbiAgICogSW4gdGFzayBsaXN0IGl0ZW0gY2hlY2suXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAqIFt4XSB5LlxuICAgKiAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gaW5zaWRlKGNvZGUpIHtcbiAgICAvLyBDdXJyZW50bHkgd2UgbWF0Y2ggaG93IEdIIHdvcmtzIGluIGZpbGVzLlxuICAgIC8vIFRvIG1hdGNoIGhvdyBHSCB3b3JrcyBpbiBjb21tZW50cywgdXNlIGBtYXJrZG93blNwYWNlYCAoYFtcXHQgXWApIGluc3RlYWRcbiAgICAvLyBvZiBgbWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZWAgKGBbXFx0XFxuXFxyIF1gKS5cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZShjb2RlKSkge1xuICAgICAgZWZmZWN0cy5lbnRlcigndGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkJyk7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoJ3Rhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCcpO1xuICAgICAgcmV0dXJuIGNsb3NlO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gODggfHwgY29kZSA9PT0gMTIwKSB7XG4gICAgICBlZmZlY3RzLmVudGVyKCd0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkJyk7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoJ3Rhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQnKTtcbiAgICAgIHJldHVybiBjbG9zZTtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdCBjbG9zZSBvZiB0YXNrIGxpc3QgaXRlbSBjaGVjay5cbiAgICpcbiAgICogYGBgbWFya2Rvd25cbiAgICogPiB8ICogW3hdIHkuXG4gICAqICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gY2xvc2UoY29kZSkge1xuICAgIGlmIChjb2RlID09PSA5Mykge1xuICAgICAgZWZmZWN0cy5lbnRlcigndGFza0xpc3RDaGVja01hcmtlcicpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgZWZmZWN0cy5leGl0KCd0YXNrTGlzdENoZWNrTWFya2VyJyk7XG4gICAgICBlZmZlY3RzLmV4aXQoJ3Rhc2tMaXN0Q2hlY2snKTtcbiAgICAgIHJldHVybiBhZnRlcjtcbiAgICB9XG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7U3RhdGV9XG4gICAqL1xuICBmdW5jdGlvbiBhZnRlcihjb2RlKSB7XG4gICAgLy8gRU9MIGluIHBhcmFncmFwaCBtZWFucyB0aGVyZSBtdXN0IGJlIHNvbWV0aGluZyBlbHNlIGFmdGVyIGl0LlxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIHJldHVybiBvayhjb2RlKTtcbiAgICB9XG5cbiAgICAvLyBTcGFjZSBvciB0YWI/XG4gICAgLy8gQ2hlY2sgd2hhdCBjb21lcyBhZnRlci5cbiAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgcmV0dXJuIGVmZmVjdHMuY2hlY2soe1xuICAgICAgICB0b2tlbml6ZTogc3BhY2VUaGVuTm9uU3BhY2VcbiAgICAgIH0sIG9rLCBub2spKGNvZGUpO1xuICAgIH1cblxuICAgIC8vIEVPRiwgb3Igbm9uLXdoaXRlc3BhY2UsIGJvdGggd3JvbmcuXG4gICAgcmV0dXJuIG5vayhjb2RlKTtcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICovXG5mdW5jdGlvbiBzcGFjZVRoZW5Ob25TcGFjZShlZmZlY3RzLCBvaywgbm9rKSB7XG4gIHJldHVybiBmYWN0b3J5U3BhY2UoZWZmZWN0cywgYWZ0ZXIsIFwid2hpdGVzcGFjZVwiKTtcblxuICAvKipcbiAgICogQWZ0ZXIgd2hpdGVzcGFjZSwgYWZ0ZXIgdGFzayBsaXN0IGl0ZW0gY2hlY2suXG4gICAqXG4gICAqIGBgYG1hcmtkb3duXG4gICAqID4gfCAqIFt4XSB5LlxuICAgKiAgICAgICAgICAgXlxuICAgKiBgYGBcbiAgICpcbiAgICogQHR5cGUge1N0YXRlfVxuICAgKi9cbiAgZnVuY3Rpb24gYWZ0ZXIoY29kZSkge1xuICAgIC8vIEVPRiBtZWFucyB0aGVyZSB3YXMgbm90aGluZywgc28gYmFkLlxuICAgIC8vIEVPTCBtZWFucyB0aGVyZVx1MjAxOXMgY29udGVudCBhZnRlciBpdCwgc28gZ29vZC5cbiAgICAvLyBJbXBvc3NpYmxlIHRvIGhhdmUgbW9yZSBzcGFjZXMuXG4gICAgLy8gQW55dGhpbmcgZWxzZSBpcyBnb29kLlxuICAgIHJldHVybiBjb2RlID09PSBudWxsID8gbm9rKGNvZGUpIDogb2soY29kZSk7XG4gIH1cbn0iLCAiZXhwb3J0IHsgZ2ZtVGFza0xpc3RJdGVtSHRtbCB9IGZyb20gJy4vbGliL2h0bWwuanMnO1xuZXhwb3J0IHsgZ2ZtVGFza0xpc3RJdGVtIH0gZnJvbSAnLi9saWIvc3ludGF4LmpzJzsiLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstZXh0ZW5zaW9uLWdmbS1mb290bm90ZScpLkh0bWxPcHRpb25zfSBIdG1sT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tc3RyaWtldGhyb3VnaCcpLk9wdGlvbnN9IE9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXh0ZW5zaW9ufSBFeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSHRtbEV4dGVuc2lvbn0gSHRtbEV4dGVuc2lvblxuICovXG5cbmltcG9ydCB7XG4gIGNvbWJpbmVFeHRlbnNpb25zLFxuICBjb21iaW5lSHRtbEV4dGVuc2lvbnNcbn0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY29tYmluZS1leHRlbnNpb25zJ1xuaW1wb3J0IHtcbiAgZ2ZtQXV0b2xpbmtMaXRlcmFsLFxuICBnZm1BdXRvbGlua0xpdGVyYWxIdG1sXG59IGZyb20gJ21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWF1dG9saW5rLWxpdGVyYWwnXG5pbXBvcnQge2dmbUZvb3Rub3RlLCBnZm1Gb290bm90ZUh0bWx9IGZyb20gJ21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLWZvb3Rub3RlJ1xuaW1wb3J0IHtcbiAgZ2ZtU3RyaWtldGhyb3VnaCxcbiAgZ2ZtU3RyaWtldGhyb3VnaEh0bWxcbn0gZnJvbSAnbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tc3RyaWtldGhyb3VnaCdcbmltcG9ydCB7Z2ZtVGFibGUsIGdmbVRhYmxlSHRtbH0gZnJvbSAnbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFibGUnXG5pbXBvcnQge2dmbVRhZ2ZpbHRlckh0bWx9IGZyb20gJ21pY3JvbWFyay1leHRlbnNpb24tZ2ZtLXRhZ2ZpbHRlcidcbmltcG9ydCB7XG4gIGdmbVRhc2tMaXN0SXRlbSxcbiAgZ2ZtVGFza0xpc3RJdGVtSHRtbFxufSBmcm9tICdtaWNyb21hcmstZXh0ZW5zaW9uLWdmbS10YXNrLWxpc3QtaXRlbSdcblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0byBlbmFibGUgR0ZNIHN5bnRheC5cbiAqXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICpcbiAqICAgUGFzc2VkIHRvIGBtaWNyb21hcmstZXh0ZW5zLWdmbS1zdHJpa2V0aHJvdWdoYC5cbiAqIEByZXR1cm5zIHtFeHRlbnNpb259XG4gKiAgIEV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdGhhdCBjYW4gYmUgcGFzc2VkIGluIGBleHRlbnNpb25zYCB0byBlbmFibGUgR0ZNXG4gKiAgIHN5bnRheC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbShvcHRpb25zKSB7XG4gIHJldHVybiBjb21iaW5lRXh0ZW5zaW9ucyhbXG4gICAgZ2ZtQXV0b2xpbmtMaXRlcmFsKCksXG4gICAgZ2ZtRm9vdG5vdGUoKSxcbiAgICBnZm1TdHJpa2V0aHJvdWdoKG9wdGlvbnMpLFxuICAgIGdmbVRhYmxlKCksXG4gICAgZ2ZtVGFza0xpc3RJdGVtKClcbiAgXSlcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0byBzdXBwb3J0IEdGTSB3aGVuIHNlcmlhbGl6aW5nIHRvIEhUTUwuXG4gKlxuICogQHBhcmFtIHtIdG1sT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKlxuICogICBQYXNzZWQgdG8gYG1pY3JvbWFyay1leHRlbnMtZ2ZtLWZvb3Rub3RlYC5cbiAqIEByZXR1cm5zIHtIdG1sRXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRoYXQgY2FuIGJlIHBhc3NlZCBpbiBgaHRtbEV4dGVuc2lvbnNgIHRvXG4gKiAgIHN1cHBvcnQgR0ZNIHdoZW4gc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdmbUh0bWwob3B0aW9ucykge1xuICByZXR1cm4gY29tYmluZUh0bWxFeHRlbnNpb25zKFtcbiAgICBnZm1BdXRvbGlua0xpdGVyYWxIdG1sKCksXG4gICAgZ2ZtRm9vdG5vdGVIdG1sKG9wdGlvbnMpLFxuICAgIGdmbVN0cmlrZXRocm91Z2hIdG1sKCksXG4gICAgZ2ZtVGFibGVIdG1sKCksXG4gICAgZ2ZtVGFnZmlsdGVySHRtbCgpLFxuICAgIGdmbVRhc2tMaXN0SXRlbUh0bWwoKVxuICBdKVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7Um9vdH0gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtPcHRpb25zfSBmcm9tICdyZW1hcmstZ2ZtJ1xuICogQGltcG9ydCB7fSBmcm9tICdyZW1hcmstcGFyc2UnXG4gKiBAaW1wb3J0IHt9IGZyb20gJ3JlbWFyay1zdHJpbmdpZnknXG4gKiBAaW1wb3J0IHtQcm9jZXNzb3J9IGZyb20gJ3VuaWZpZWQnXG4gKi9cblxuaW1wb3J0IHtnZm1Gcm9tTWFya2Rvd24sIGdmbVRvTWFya2Rvd259IGZyb20gJ21kYXN0LXV0aWwtZ2ZtJ1xuaW1wb3J0IHtnZm19IGZyb20gJ21pY3JvbWFyay1leHRlbnNpb24tZ2ZtJ1xuXG4vKiogQHR5cGUge09wdGlvbnN9ICovXG5jb25zdCBlbXB0eU9wdGlvbnMgPSB7fVxuXG4vKipcbiAqIEFkZCBzdXBwb3J0IEdGTSAoYXV0b2xpbmsgbGl0ZXJhbHMsIGZvb3Rub3Rlcywgc3RyaWtldGhyb3VnaCwgdGFibGVzLFxuICogdGFza2xpc3RzKS5cbiAqXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVtYXJrR2ZtKG9wdGlvbnMpIHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgaXMgd3JvbmcgYWJvdXQgYHRoaXNgLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby10aGlzLWFzc2lnbm1lbnRcbiAgY29uc3Qgc2VsZiA9IC8qKiBAdHlwZSB7UHJvY2Vzc29yPFJvb3Q+fSAqLyAodGhpcylcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IGVtcHR5T3B0aW9uc1xuICBjb25zdCBkYXRhID0gc2VsZi5kYXRhKClcblxuICBjb25zdCBtaWNyb21hcmtFeHRlbnNpb25zID1cbiAgICBkYXRhLm1pY3JvbWFya0V4dGVuc2lvbnMgfHwgKGRhdGEubWljcm9tYXJrRXh0ZW5zaW9ucyA9IFtdKVxuICBjb25zdCBmcm9tTWFya2Rvd25FeHRlbnNpb25zID1cbiAgICBkYXRhLmZyb21NYXJrZG93bkV4dGVuc2lvbnMgfHwgKGRhdGEuZnJvbU1hcmtkb3duRXh0ZW5zaW9ucyA9IFtdKVxuICBjb25zdCB0b01hcmtkb3duRXh0ZW5zaW9ucyA9XG4gICAgZGF0YS50b01hcmtkb3duRXh0ZW5zaW9ucyB8fCAoZGF0YS50b01hcmtkb3duRXh0ZW5zaW9ucyA9IFtdKVxuXG4gIG1pY3JvbWFya0V4dGVuc2lvbnMucHVzaChnZm0oc2V0dGluZ3MpKVxuICBmcm9tTWFya2Rvd25FeHRlbnNpb25zLnB1c2goZ2ZtRnJvbU1hcmtkb3duKCkpXG4gIHRvTWFya2Rvd25FeHRlbnNpb25zLnB1c2goZ2ZtVG9NYXJrZG93bihzZXR0aW5ncykpXG59XG4iLCAiLy8gTm90ZTogdHlwZXMgZXhwb3NlZCBmcm9tIGBpbmRleC5kLnRzYC5cbmV4cG9ydCB7ZGVmYXVsdH0gZnJvbSAnLi9saWIvaW5kZXguanMnXG4iLCAiLyoqXG4gKiBXaGlsZSBtaWNyb21hcmsgaXMgYSBsZXhlci90b2tlbml6ZXIsIHRoZSBjb21tb24gY2FzZSBvZiBnb2luZyBmcm9tIG1hcmtkb3duXG4gKiB0byBodG1sIGlzIGN1cnJlbnRseSBidWlsdCBpbiBhcyB0aGlzIG1vZHVsZSwgZXZlbiB0aG91Z2ggdGhlIHBhcnRzIGNhbiBiZVxuICogdXNlZCBzZXBhcmF0ZWx5IHRvIGJ1aWxkIEFTVHMsIENTVHMsIG9yIG1hbnkgb3RoZXIgb3V0cHV0IGZvcm1hdHMuXG4gKlxuICogSGF2aW5nIGFuIEhUTUwgY29tcGlsZXIgYnVpbHQgaW4gaXMgdXNlZnVsIGJlY2F1c2UgaXQgYWxsb3dzIHVzIHRvIGNoZWNrIGZvclxuICogY29tcGxpYW5jeSB0byBDb21tb25NYXJrLCB0aGUgZGUgZmFjdG8gbm9ybSBvZiBtYXJrZG93biwgc3BlY2lmaWVkIGluIHJvdWdobHlcbiAqIDYwMCBpbnB1dC9vdXRwdXQgY2FzZXMuXG4gKlxuICogVGhpcyBtb2R1bGUgaGFzIGFuIGludGVyZmFjZSB0aGF0IGFjY2VwdHMgbGlzdHMgb2YgZXZlbnRzIGluc3RlYWQgb2YgdGhlXG4gKiB3aG9sZSBhdCBvbmNlLCBob3dldmVyLCBiZWNhdXNlIG1hcmtkb3duIGNhblx1MjAxOXQgYmUgdHJ1bHkgc3RyZWFtaW5nLCB3ZSBidWZmZXJcbiAqIGV2ZW50cyBiZWZvcmUgcHJvY2Vzc2luZyBhbmQgb3V0cHV0dGluZyB0aGUgZmluYWwgcmVzdWx0LlxuICovXG5cbi8qKlxuICogQGltcG9ydCB7XG4gKiAgIENvbXBpbGVDb250ZXh0LFxuICogICBDb21waWxlRGF0YSxcbiAqICAgQ29tcGlsZU9wdGlvbnMsXG4gKiAgIENvbXBpbGUsXG4gKiAgIERlZmluaXRpb24sXG4gKiAgIEV2ZW50LFxuICogICBIYW5kbGUsXG4gKiAgIEh0bWxFeHRlbnNpb24sXG4gKiAgIExpbmVFbmRpbmcsXG4gKiAgIE5vcm1hbGl6ZWRIdG1sRXh0ZW5zaW9uLFxuICogICBUb2tlblxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIE1lZGlhXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCB1bmRlZmluZWR9IFtpbWFnZV1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBbbGFiZWxJZF1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBbbGFiZWxdXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IHVuZGVmaW5lZH0gW3JlZmVyZW5jZUlkXVxuICogQHByb3BlcnR5IHtzdHJpbmcgfCB1bmRlZmluZWR9IFtkZXN0aW5hdGlvbl1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBbdGl0bGVdXG4gKi9cblxuaW1wb3J0IHsgZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UgfSBmcm9tICdkZWNvZGUtbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBwdXNoIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2h1bmtlZCc7XG5pbXBvcnQgeyBjb21iaW5lSHRtbEV4dGVuc2lvbnMgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jb21iaW5lLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSB9IGZyb20gJ21pY3JvbWFyay11dGlsLWRlY29kZS1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgZW5jb2RlIGFzIF9lbmNvZGUgfSBmcm9tICdtaWNyb21hcmstdXRpbC1lbmNvZGUnO1xuaW1wb3J0IHsgbm9ybWFsaXplSWRlbnRpZmllciB9IGZyb20gJ21pY3JvbWFyay11dGlsLW5vcm1hbGl6ZS1pZGVudGlmaWVyJztcbmltcG9ydCB7IHNhbml0aXplVXJpIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtc2FuaXRpemUtdXJpJztcbmNvbnN0IGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlc2UgdHdvIGFyZSBhbGxvd2xpc3RzIG9mIHNhZmUgcHJvdG9jb2xzIGZvciBmdWxsIFVSTHMgaW4gcmVzcGVjdGl2ZWx5IHRoZVxuICogYGhyZWZgIChvbiBgPGE+YCkgYW5kIGBzcmNgIChvbiBgPGltZz5gKSBhdHRyaWJ1dGVzLlxuICogVGhleSBhcmUgYmFzZWQgb24gd2hhdCBpcyBhbGxvd2VkIG9uIEdpdEh1YixcbiAqIDxodHRwczovL2dpdGh1Yi5jb20vc3ludGF4LXRyZWUvaGFzdC11dGlsLXNhbml0aXplL2Jsb2IvOTI3NWIyMS9saWIvZ2l0aHViLmpzb24jTDMxPlxuICovXG5jb25zdCBwcm90b2NvbEhyZWYgPSAvXihodHRwcz98aXJjcz98bWFpbHRvfHhtcHApJC9pO1xuY29uc3QgcHJvdG9jb2xTb3VyY2UgPSAvXmh0dHBzPyQvaTtcblxuLyoqXG4gKiBAcGFyYW0ge0NvbXBpbGVPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiBAcmV0dXJucyB7Q29tcGlsZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGUob3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge307XG5cbiAgLyoqXG4gICAqIFRhZ3MgaXMgbmVlZGVkIGJlY2F1c2UgYWNjb3JkaW5nIHRvIG1hcmtkb3duLCBsaW5rcyBhbmQgZW1waGFzaXMgYW5kXG4gICAqIHdoYXRub3QgY2FuIGV4aXN0IGluIGltYWdlcywgaG93ZXZlciwgYXMgSFRNTCBkb2Vzblx1MjAxOXQgYWxsb3cgY29udGVudCBpblxuICAgKiBpbWFnZXMsIHRoZSB0YWdzIGFyZSBpZ25vcmVkIGluIHRoZSBgYWx0YCBhdHRyaWJ1dGUsIGJ1dCB0aGUgY29udGVudFxuICAgKiByZW1haW5zLlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH1cbiAgICovXG4gIGxldCB0YWdzID0gdHJ1ZTtcblxuICAvKipcbiAgICogQW4gb2JqZWN0IHRvIHRyYWNrIGlkZW50aWZpZXJzIHRvIG1lZGlhIChVUkxzIGFuZCB0aXRsZXMpIGRlZmluZWQgd2l0aFxuICAgKiBkZWZpbml0aW9ucy5cbiAgICpcbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsIERlZmluaXRpb24+fVxuICAgKi9cbiAgY29uc3QgZGVmaW5pdGlvbnMgPSB7fTtcblxuICAvKipcbiAgICogQSBsb3Qgb2YgdGhlIGhhbmRsZXJzIG5lZWQgdG8gY2FwdHVyZSBzb21lIG9mIHRoZSBvdXRwdXQgZGF0YSwgbW9kaWZ5IGl0XG4gICAqIHNvbWVob3csIGFuZCB0aGVuIGRlYWwgd2l0aCBpdC5cbiAgICogV2UgZG8gdGhhdCBieSB0cmFja2luZyBhIHN0YWNrIG9mIGJ1ZmZlcnMsIHRoYXQgY2FuIGJlIG9wZW5lZCAod2l0aFxuICAgKiBgYnVmZmVyYCkgYW5kIGNsb3NlZCAod2l0aCBgcmVzdW1lYCkgdG8gYWNjZXNzIHRoZW0uXG4gICAqXG4gICAqIEB0eXBlIHtBcnJheTxBcnJheTxzdHJpbmc+Pn1cbiAgICovXG4gIGNvbnN0IGJ1ZmZlcnMgPSBbW11dO1xuXG4gIC8qKlxuICAgKiBBcyB3ZSBjYW4gaGF2ZSBsaW5rcyBpbiBpbWFnZXMgYW5kIHRoZSBvdGhlciB3YXkgYXJvdW5kLCB3aGVyZSB0aGUgZGVlcGVzdFxuICAgKiBvbmVzIGFyZSBjbG9zZWQgZmlyc3QsIHdlIG5lZWQgdG8gdHJhY2sgd2hpY2ggb25lIHdlXHUyMDE5cmUgaW4uXG4gICAqXG4gICAqIEB0eXBlIHtBcnJheTxNZWRpYT59XG4gICAqL1xuICBjb25zdCBtZWRpYVN0YWNrID0gW107XG5cbiAgLyoqXG4gICAqIFNhbWUgYXMgYG1lZGlhU3RhY2tgIGZvciB0aWdodG5lc3MsIHdoaWNoIGlzIHNwZWNpZmljIHRvIGxpc3RzLlxuICAgKiBXZSBuZWVkIHRvIHRyYWNrIGlmIHdlXHUyMDE5cmUgY3VycmVudGx5IGluIGEgdGlnaHQgb3IgbG9vc2UgY29udGFpbmVyLlxuICAgKlxuICAgKiBAdHlwZSB7QXJyYXk8Ym9vbGVhbj59XG4gICAqL1xuICBjb25zdCB0aWdodFN0YWNrID0gW107XG5cbiAgLyoqIEB0eXBlIHtIdG1sRXh0ZW5zaW9ufSAqL1xuICBjb25zdCBkZWZhdWx0SGFuZGxlcnMgPSB7XG4gICAgZW50ZXI6IHtcbiAgICAgIGJsb2NrUXVvdGU6IG9uZW50ZXJibG9ja3F1b3RlLFxuICAgICAgY29kZUZlbmNlZDogb25lbnRlcmNvZGVmZW5jZWQsXG4gICAgICBjb2RlRmVuY2VkRmVuY2VJbmZvOiBidWZmZXIsXG4gICAgICBjb2RlRmVuY2VkRmVuY2VNZXRhOiBidWZmZXIsXG4gICAgICBjb2RlSW5kZW50ZWQ6IG9uZW50ZXJjb2RlaW5kZW50ZWQsXG4gICAgICBjb2RlVGV4dDogb25lbnRlcmNvZGV0ZXh0LFxuICAgICAgY29udGVudDogb25lbnRlcmNvbnRlbnQsXG4gICAgICBkZWZpbml0aW9uOiBvbmVudGVyZGVmaW5pdGlvbixcbiAgICAgIGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzogb25lbnRlcmRlZmluaXRpb25kZXN0aW5hdGlvbnN0cmluZyxcbiAgICAgIGRlZmluaXRpb25MYWJlbFN0cmluZzogYnVmZmVyLFxuICAgICAgZGVmaW5pdGlvblRpdGxlU3RyaW5nOiBidWZmZXIsXG4gICAgICBlbXBoYXNpczogb25lbnRlcmVtcGhhc2lzLFxuICAgICAgaHRtbEZsb3c6IG9uZW50ZXJodG1sZmxvdyxcbiAgICAgIGh0bWxUZXh0OiBvbmVudGVyaHRtbCxcbiAgICAgIGltYWdlOiBvbmVudGVyaW1hZ2UsXG4gICAgICBsYWJlbDogYnVmZmVyLFxuICAgICAgbGluazogb25lbnRlcmxpbmssXG4gICAgICBsaXN0SXRlbU1hcmtlcjogb25lbnRlcmxpc3RpdGVtbWFya2VyLFxuICAgICAgbGlzdEl0ZW1WYWx1ZTogb25lbnRlcmxpc3RpdGVtdmFsdWUsXG4gICAgICBsaXN0T3JkZXJlZDogb25lbnRlcmxpc3RvcmRlcmVkLFxuICAgICAgbGlzdFVub3JkZXJlZDogb25lbnRlcmxpc3R1bm9yZGVyZWQsXG4gICAgICBwYXJhZ3JhcGg6IG9uZW50ZXJwYXJhZ3JhcGgsXG4gICAgICByZWZlcmVuY2U6IGJ1ZmZlcixcbiAgICAgIHJlc291cmNlOiBvbmVudGVycmVzb3VyY2UsXG4gICAgICByZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOiBvbmVudGVycmVzb3VyY2VkZXN0aW5hdGlvbnN0cmluZyxcbiAgICAgIHJlc291cmNlVGl0bGVTdHJpbmc6IGJ1ZmZlcixcbiAgICAgIHNldGV4dEhlYWRpbmc6IG9uZW50ZXJzZXRleHRoZWFkaW5nLFxuICAgICAgc3Ryb25nOiBvbmVudGVyc3Ryb25nXG4gICAgfSxcbiAgICBleGl0OiB7XG4gICAgICBhdHhIZWFkaW5nOiBvbmV4aXRhdHhoZWFkaW5nLFxuICAgICAgYXR4SGVhZGluZ1NlcXVlbmNlOiBvbmV4aXRhdHhoZWFkaW5nc2VxdWVuY2UsXG4gICAgICBhdXRvbGlua0VtYWlsOiBvbmV4aXRhdXRvbGlua2VtYWlsLFxuICAgICAgYXV0b2xpbmtQcm90b2NvbDogb25leGl0YXV0b2xpbmtwcm90b2NvbCxcbiAgICAgIGJsb2NrUXVvdGU6IG9uZXhpdGJsb2NrcXVvdGUsXG4gICAgICBjaGFyYWN0ZXJFc2NhcGVWYWx1ZTogb25leGl0ZGF0YSxcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsOiBvbmV4aXRjaGFyYWN0ZXJyZWZlcmVuY2VtYXJrZXIsXG4gICAgICBjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOiBvbmV4aXRjaGFyYWN0ZXJyZWZlcmVuY2VtYXJrZXIsXG4gICAgICBjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTogb25leGl0Y2hhcmFjdGVycmVmZXJlbmNldmFsdWUsXG4gICAgICBjb2RlRmVuY2VkOiBvbmV4aXRmbG93Y29kZSxcbiAgICAgIGNvZGVGZW5jZWRGZW5jZTogb25leGl0Y29kZWZlbmNlZGZlbmNlLFxuICAgICAgY29kZUZlbmNlZEZlbmNlSW5mbzogb25leGl0Y29kZWZlbmNlZGZlbmNlaW5mbyxcbiAgICAgIGNvZGVGZW5jZWRGZW5jZU1ldGE6IG9ucmVzdW1lZHJvcCxcbiAgICAgIGNvZGVGbG93VmFsdWU6IG9uZXhpdGNvZGVmbG93dmFsdWUsXG4gICAgICBjb2RlSW5kZW50ZWQ6IG9uZXhpdGZsb3djb2RlLFxuICAgICAgY29kZVRleHQ6IG9uZXhpdGNvZGV0ZXh0LFxuICAgICAgY29kZVRleHREYXRhOiBvbmV4aXRkYXRhLFxuICAgICAgZGF0YTogb25leGl0ZGF0YSxcbiAgICAgIGRlZmluaXRpb246IG9uZXhpdGRlZmluaXRpb24sXG4gICAgICBkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6IG9uZXhpdGRlZmluaXRpb25kZXN0aW5hdGlvbnN0cmluZyxcbiAgICAgIGRlZmluaXRpb25MYWJlbFN0cmluZzogb25leGl0ZGVmaW5pdGlvbmxhYmVsc3RyaW5nLFxuICAgICAgZGVmaW5pdGlvblRpdGxlU3RyaW5nOiBvbmV4aXRkZWZpbml0aW9udGl0bGVzdHJpbmcsXG4gICAgICBlbXBoYXNpczogb25leGl0ZW1waGFzaXMsXG4gICAgICBoYXJkQnJlYWtFc2NhcGU6IG9uZXhpdGhhcmRicmVhayxcbiAgICAgIGhhcmRCcmVha1RyYWlsaW5nOiBvbmV4aXRoYXJkYnJlYWssXG4gICAgICBodG1sRmxvdzogb25leGl0aHRtbCxcbiAgICAgIGh0bWxGbG93RGF0YTogb25leGl0ZGF0YSxcbiAgICAgIGh0bWxUZXh0OiBvbmV4aXRodG1sLFxuICAgICAgaHRtbFRleHREYXRhOiBvbmV4aXRkYXRhLFxuICAgICAgaW1hZ2U6IG9uZXhpdG1lZGlhLFxuICAgICAgbGFiZWw6IG9uZXhpdGxhYmVsLFxuICAgICAgbGFiZWxUZXh0OiBvbmV4aXRsYWJlbHRleHQsXG4gICAgICBsaW5lRW5kaW5nOiBvbmV4aXRsaW5lZW5kaW5nLFxuICAgICAgbGluazogb25leGl0bWVkaWEsXG4gICAgICBsaXN0T3JkZXJlZDogb25leGl0bGlzdG9yZGVyZWQsXG4gICAgICBsaXN0VW5vcmRlcmVkOiBvbmV4aXRsaXN0dW5vcmRlcmVkLFxuICAgICAgcGFyYWdyYXBoOiBvbmV4aXRwYXJhZ3JhcGgsXG4gICAgICByZWZlcmVuY2U6IG9ucmVzdW1lZHJvcCxcbiAgICAgIHJlZmVyZW5jZVN0cmluZzogb25leGl0cmVmZXJlbmNlc3RyaW5nLFxuICAgICAgcmVzb3VyY2U6IG9ucmVzdW1lZHJvcCxcbiAgICAgIHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6IG9uZXhpdHJlc291cmNlZGVzdGluYXRpb25zdHJpbmcsXG4gICAgICByZXNvdXJjZVRpdGxlU3RyaW5nOiBvbmV4aXRyZXNvdXJjZXRpdGxlc3RyaW5nLFxuICAgICAgc2V0ZXh0SGVhZGluZzogb25leGl0c2V0ZXh0aGVhZGluZyxcbiAgICAgIHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6IG9uZXhpdHNldGV4dGhlYWRpbmdsaW5lc2VxdWVuY2UsXG4gICAgICBzZXRleHRIZWFkaW5nVGV4dDogb25leGl0c2V0ZXh0aGVhZGluZ3RleHQsXG4gICAgICBzdHJvbmc6IG9uZXhpdHN0cm9uZyxcbiAgICAgIHRoZW1hdGljQnJlYWs6IG9uZXhpdHRoZW1hdGljYnJlYWtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbWJpbmUgdGhlIEhUTUwgZXh0ZW5zaW9ucyB3aXRoIHRoZSBkZWZhdWx0IGhhbmRsZXJzLlxuICAgKiBBbiBIVE1MIGV4dGVuc2lvbiBpcyBhbiBvYmplY3Qgd2hvc2UgZmllbGRzIGFyZSBlaXRoZXIgYGVudGVyYCBvciBgZXhpdGBcbiAgICogKHJlZmxlY3Rpbmcgd2hldGhlciBhIHRva2VuIGlzIGVudGVyZWQgb3IgZXhpdGVkKS5cbiAgICogVGhlIHZhbHVlcyBhdCBzdWNoIG9iamVjdHMgYXJlIG5hbWVzIG9mIHRva2VucyBtYXBwaW5nIHRvIGhhbmRsZXJzLlxuICAgKiBIYW5kbGVycyBhcmUgY2FsbGVkLCByZXNwZWN0aXZlbHkgd2hlbiBhIHRva2VuIGlzIG9wZW5lciBvciBjbG9zZWQsIHdpdGhcbiAgICogdGhhdCB0b2tlbiwgYW5kIGEgY29udGV4dCBhcyBgdGhpc2AuXG4gICAqL1xuICBjb25zdCBoYW5kbGVycyA9IC8qKiBAdHlwZSB7Tm9ybWFsaXplZEh0bWxFeHRlbnNpb259ICovXG4gIGNvbWJpbmVIdG1sRXh0ZW5zaW9ucyhbZGVmYXVsdEhhbmRsZXJzLCAuLi4oc2V0dGluZ3MuaHRtbEV4dGVuc2lvbnMgfHwgW10pXSk7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXJzIGRvIG9mdGVuIG5lZWQgdG8ga2VlcCB0cmFjayBvZiBzb21lIHN0YXRlLlxuICAgKiBUaGF0IHN0YXRlIGlzIHByb3ZpZGVkIGhlcmUgYXMgYSBrZXktdmFsdWUgc3RvcmUgKGFuIG9iamVjdCkuXG4gICAqXG4gICAqIEB0eXBlIHtDb21waWxlRGF0YX1cbiAgICovXG4gIGNvbnN0IGRhdGEgPSB7XG4gICAgZGVmaW5pdGlvbnMsXG4gICAgdGlnaHRTdGFja1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dCBmb3IgaGFuZGxlcnMgcmVmZXJlbmNlcyBhIGNvdXBsZSBvZiB1c2VmdWwgZnVuY3Rpb25zLlxuICAgKiBJbiBoYW5kbGVycyBmcm9tIGV4dGVuc2lvbnMsIHRob3NlIGNhbiBiZSBhY2Nlc3NlZCBhdCBgdGhpc2AuXG4gICAqIEZvciB0aGUgaGFuZGxlcnMgaGVyZSwgdGhleSBjYW4gYmUgYWNjZXNzZWQgZGlyZWN0bHkuXG4gICAqXG4gICAqIEB0eXBlIHtPbWl0PENvbXBpbGVDb250ZXh0LCAnc2xpY2VTZXJpYWxpemUnPn1cbiAgICovXG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgYnVmZmVyLFxuICAgIGVuY29kZSxcbiAgICBnZXREYXRhLFxuICAgIGxpbmVFbmRpbmdJZk5lZWRlZCxcbiAgICBvcHRpb25zOiBzZXR0aW5ncyxcbiAgICByYXcsXG4gICAgcmVzdW1lLFxuICAgIHNldERhdGEsXG4gICAgdGFnXG4gIH07XG5cbiAgLyoqXG4gICAqIEdlbmVyYWxseSwgbWljcm9tYXJrIGNvcGllcyBsaW5lIGVuZGluZ3MgKGAnXFxyJ2AsIGAnXFxuJ2AsIGAnXFxyXFxuJ2ApIGluIHRoZVxuICAgKiBtYXJrZG93biBkb2N1bWVudCBvdmVyIHRvIHRoZSBjb21waWxlZCBIVE1MLlxuICAgKiBJbiBzb21lIGNhc2VzLCBzdWNoIGFzIGA+IGFgLCBDb21tb25NYXJrIHJlcXVpcmVzIHRoYXQgZXh0cmEgbGluZSBlbmRpbmdzXG4gICAqIGFyZSBhZGRlZDogYDxibG9ja3F1b3RlPlxcbjxwPmE8L3A+XFxuPC9ibG9ja3F1b3RlPmAuXG4gICAqIFRoaXMgdmFyaWFibGUgaG9sZCB0aGUgZGVmYXVsdCBsaW5lIGVuZGluZyB3aGVuIGdpdmVuIChvciBgdW5kZWZpbmVkYCksXG4gICAqIGFuZCBpbiB0aGUgbGF0dGVyIGNhc2Ugd2lsbCBiZSB1cGRhdGVkIHRvIHRoZSBmaXJzdCBmb3VuZCBsaW5lIGVuZGluZyBpZlxuICAgKiB0aGVyZSBpcyBvbmUuXG4gICAqL1xuICBsZXQgbGluZUVuZGluZ1N0eWxlID0gc2V0dGluZ3MuZGVmYXVsdExpbmVFbmRpbmc7XG5cbiAgLy8gUmV0dXJuIHRoZSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgYSBzbGljZSBvZiBldmVudHMuXG4gIHJldHVybiBjb21waWxlO1xuXG4gIC8qKlxuICAgKiBEZWFsIHcvIGEgc2xpY2Ugb2YgZXZlbnRzLlxuICAgKiBSZXR1cm4gZWl0aGVyIHRoZSBlbXB0eSBzdHJpbmcgaWYgdGhlcmVcdTIwMTlzIG5vdGhpbmcgb2Ygbm90ZSB0byByZXR1cm4sIG9yIHRoZVxuICAgKiByZXN1bHQgd2hlbiBkb25lLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWRvbmx5QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBpbGUoZXZlbnRzKSB7XG4gICAgbGV0IGluZGV4ID0gLTE7XG4gICAgbGV0IHN0YXJ0ID0gMDtcbiAgICAvKiogQHR5cGUge0FycmF5PG51bWJlcj59ICovXG4gICAgY29uc3QgbGlzdFN0YWNrID0gW107XG4gICAgLy8gQXMgZGVmaW5pdGlvbnMgY2FuIGNvbWUgYWZ0ZXIgcmVmZXJlbmNlcywgd2UgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBtZWRpYVxuICAgIC8vICh1cmxzIGFuZCB0aXRsZXMpIGRlZmluZWQgYnkgdGhlbSBiZWZvcmUgaGFuZGxpbmcgdGhlIHJlZmVyZW5jZXMuXG4gICAgLy8gU28sIHdlIGRvIHNvcnQgb2Ygd2hhdCBIVE1MIGRvZXM6IHB1dCBtZXRhZGF0YSBhdCB0aGUgc3RhcnQgKGluIGhlYWQpLCBhbmRcbiAgICAvLyB0aGVuIHB1dCBjb250ZW50IGFmdGVyIChgYm9keWApLlxuICAgIC8qKiBAdHlwZSB7QXJyYXk8RXZlbnQ+fSAqL1xuICAgIGxldCBoZWFkID0gW107XG4gICAgLyoqIEB0eXBlIHtBcnJheTxFdmVudD59ICovXG4gICAgbGV0IGJvZHkgPSBbXTtcbiAgICB3aGlsZSAoKytpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICAgIC8vIEZpZ3VyZSBvdXQgdGhlIGxpbmUgZW5kaW5nIHN0eWxlIHVzZWQgaW4gdGhlIGRvY3VtZW50LlxuICAgICAgaWYgKCFsaW5lRW5kaW5nU3R5bGUgJiYgKGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gXCJsaW5lRW5kaW5nXCIgfHwgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSBcImxpbmVFbmRpbmdCbGFua1wiKSkge1xuICAgICAgICBsaW5lRW5kaW5nU3R5bGUgPSAvKiogQHR5cGUge0xpbmVFbmRpbmd9ICovXG4gICAgICAgIGV2ZW50c1tpbmRleF1bMl0uc2xpY2VTZXJpYWxpemUoZXZlbnRzW2luZGV4XVsxXSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFByZXByb2Nlc3MgbGlzdHMgdG8gaW5mZXIgd2hldGhlciB0aGUgbGlzdCBpcyBsb29zZSBvciBub3QuXG4gICAgICBpZiAoZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSBcImxpc3RPcmRlcmVkXCIgfHwgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSBcImxpc3RVbm9yZGVyZWRcIikge1xuICAgICAgICBpZiAoZXZlbnRzW2luZGV4XVswXSA9PT0gJ2VudGVyJykge1xuICAgICAgICAgIGxpc3RTdGFjay5wdXNoKGluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmVwYXJlTGlzdChldmVudHMuc2xpY2UobGlzdFN0YWNrLnBvcCgpLCBpbmRleCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE1vdmUgZGVmaW5pdGlvbnMgdG8gdGhlIGZyb250LlxuICAgICAgaWYgKGV2ZW50c1tpbmRleF1bMV0udHlwZSA9PT0gXCJkZWZpbml0aW9uXCIpIHtcbiAgICAgICAgaWYgKGV2ZW50c1tpbmRleF1bMF0gPT09ICdlbnRlcicpIHtcbiAgICAgICAgICBib2R5ID0gcHVzaChib2R5LCBldmVudHMuc2xpY2Uoc3RhcnQsIGluZGV4KSk7XG4gICAgICAgICAgc3RhcnQgPSBpbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoZWFkID0gcHVzaChoZWFkLCBldmVudHMuc2xpY2Uoc3RhcnQsIGluZGV4ICsgMSkpO1xuICAgICAgICAgIHN0YXJ0ID0gaW5kZXggKyAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGhlYWQgPSBwdXNoKGhlYWQsIGJvZHkpO1xuICAgIGhlYWQgPSBwdXNoKGhlYWQsIGV2ZW50cy5zbGljZShzdGFydCkpO1xuICAgIGluZGV4ID0gLTE7XG4gICAgY29uc3QgcmVzdWx0ID0gaGVhZDtcblxuICAgIC8vIEhhbmRsZSB0aGUgc3RhcnQgb2YgdGhlIGRvY3VtZW50LCBpZiBkZWZpbmVkLlxuICAgIGlmIChoYW5kbGVycy5lbnRlci5udWxsKSB7XG4gICAgICBoYW5kbGVycy5lbnRlci5udWxsLmNhbGwoY29udGV4dCk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGFsbCBldmVudHMuXG4gICAgd2hpbGUgKCsraW5kZXggPCBldmVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBoYW5kbGVzID0gaGFuZGxlcnNbcmVzdWx0W2luZGV4XVswXV07XG4gICAgICBjb25zdCBraW5kID0gcmVzdWx0W2luZGV4XVsxXS50eXBlO1xuICAgICAgY29uc3QgaGFuZGxlID0gaGFuZGxlc1traW5kXTtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGhhbmRsZXMsIGtpbmQpICYmIGhhbmRsZSkge1xuICAgICAgICBoYW5kbGUuY2FsbCh7XG4gICAgICAgICAgc2xpY2VTZXJpYWxpemU6IHJlc3VsdFtpbmRleF1bMl0uc2xpY2VTZXJpYWxpemUsXG4gICAgICAgICAgLi4uY29udGV4dFxuICAgICAgICB9LCByZXN1bHRbaW5kZXhdWzFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQsIGlmIGRlZmluZWQuXG4gICAgaWYgKGhhbmRsZXJzLmV4aXQubnVsbCkge1xuICAgICAgaGFuZGxlcnMuZXhpdC5udWxsLmNhbGwoY29udGV4dCk7XG4gICAgfVxuICAgIHJldHVybiBidWZmZXJzWzBdLmpvaW4oJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpZ3VyZSBvdXQgd2hldGhlciBsaXN0cyBhcmUgbG9vc2Ugb3Igbm90LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWRvbmx5QXJyYXk8RXZlbnQ+fSBzbGljZVxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gcHJlcGFyZUxpc3Qoc2xpY2UpIHtcbiAgICBjb25zdCBsZW5ndGggPSBzbGljZS5sZW5ndGg7XG4gICAgbGV0IGluZGV4ID0gMDsgLy8gU2tpcCBvcGVuLlxuICAgIGxldCBjb250YWluZXJCYWxhbmNlID0gMDtcbiAgICBsZXQgbG9vc2UgPSBmYWxzZTtcbiAgICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gICAgbGV0IGF0TWFya2VyO1xuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBjb25zdCBldmVudCA9IHNsaWNlW2luZGV4XTtcbiAgICAgIGlmIChldmVudFsxXS5fY29udGFpbmVyKSB7XG4gICAgICAgIGF0TWFya2VyID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoZXZlbnRbMF0gPT09ICdlbnRlcicpIHtcbiAgICAgICAgICBjb250YWluZXJCYWxhbmNlKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udGFpbmVyQmFsYW5jZS0tO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Ugc3dpdGNoIChldmVudFsxXS50eXBlKSB7XG4gICAgICAgIGNhc2UgXCJsaXN0SXRlbVByZWZpeFwiOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChldmVudFswXSA9PT0gJ2V4aXQnKSB7XG4gICAgICAgICAgICAgIGF0TWFya2VyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBcImxpbmVQcmVmaXhcIjpcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBJZ25vcmVcblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlIFwibGluZUVuZGluZ0JsYW5rXCI6XG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKGV2ZW50WzBdID09PSAnZW50ZXInICYmICFjb250YWluZXJCYWxhbmNlKSB7XG4gICAgICAgICAgICAgIGlmIChhdE1hcmtlcikge1xuICAgICAgICAgICAgICAgIGF0TWFya2VyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvb3NlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGF0TWFya2VyID0gdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgc2xpY2VbMF1bMV0uX2xvb3NlID0gbG9vc2U7XG4gIH1cblxuICAvKipcbiAgICogQHR5cGUge0NvbXBpbGVDb250ZXh0WydzZXREYXRhJ119XG4gICAqL1xuICBmdW5jdGlvbiBzZXREYXRhKGtleSwgdmFsdWUpIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBhc3N1bWUgYHZhbHVlYCBpcyBvbWl0dGVkIChgdW5kZWZpbmVkYCBpcyBwYXNzZWQpIG9ubHlcbiAgICAvLyBpZiBhbGxvd2VkLlxuICAgIGRhdGFba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtDb21waWxlQ29udGV4dFsnZ2V0RGF0YSddfVxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0RGF0YShrZXkpIHtcbiAgICByZXR1cm4gZGF0YVtrZXldO1xuICB9XG5cbiAgLyoqIEB0eXBlIHtDb21waWxlQ29udGV4dFsnYnVmZmVyJ119ICovXG4gIGZ1bmN0aW9uIGJ1ZmZlcigpIHtcbiAgICBidWZmZXJzLnB1c2goW10pO1xuICB9XG5cbiAgLyoqIEB0eXBlIHtDb21waWxlQ29udGV4dFsncmVzdW1lJ119ICovXG4gIGZ1bmN0aW9uIHJlc3VtZSgpIHtcbiAgICBjb25zdCBidWYgPSBidWZmZXJzLnBvcCgpO1xuICAgIHJldHVybiBidWYuam9pbignJyk7XG4gIH1cblxuICAvKiogQHR5cGUge0NvbXBpbGVDb250ZXh0Wyd0YWcnXX0gKi9cbiAgZnVuY3Rpb24gdGFnKHZhbHVlKSB7XG4gICAgaWYgKCF0YWdzKSByZXR1cm47XG4gICAgc2V0RGF0YSgnbGFzdFdhc1RhZycsIHRydWUpO1xuICAgIGJ1ZmZlcnNbYnVmZmVycy5sZW5ndGggLSAxXS5wdXNoKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7Q29tcGlsZUNvbnRleHRbJ3JhdyddfSAqL1xuICBmdW5jdGlvbiByYXcodmFsdWUpIHtcbiAgICBzZXREYXRhKCdsYXN0V2FzVGFnJyk7XG4gICAgYnVmZmVyc1tidWZmZXJzLmxlbmd0aCAtIDFdLnB1c2godmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE91dHB1dCBhbiBleHRyYSBsaW5lIGVuZGluZy5cbiAgICpcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIGZ1bmN0aW9uIGxpbmVFbmRpbmcoKSB7XG4gICAgcmF3KGxpbmVFbmRpbmdTdHlsZSB8fCAnXFxuJyk7XG4gIH1cblxuICAvKiogQHR5cGUge0NvbXBpbGVDb250ZXh0WydsaW5lRW5kaW5nSWZOZWVkZWQnXX0gKi9cbiAgZnVuY3Rpb24gbGluZUVuZGluZ0lmTmVlZGVkKCkge1xuICAgIGNvbnN0IGJ1ZmZlciA9IGJ1ZmZlcnNbYnVmZmVycy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBzbGljZSA9IGJ1ZmZlcltidWZmZXIubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgcHJldmlvdXMgPSBzbGljZSA/IHNsaWNlLmNoYXJDb2RlQXQoc2xpY2UubGVuZ3RoIC0gMSkgOiBudWxsO1xuICAgIGlmIChwcmV2aW91cyA9PT0gMTAgfHwgcHJldmlvdXMgPT09IDEzIHx8IHByZXZpb3VzID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxpbmVFbmRpbmcoKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7Q29tcGlsZUNvbnRleHRbJ2VuY29kZSddfSAqL1xuICBmdW5jdGlvbiBlbmNvZGUodmFsdWUpIHtcbiAgICByZXR1cm4gZ2V0RGF0YSgnaWdub3JlRW5jb2RlJykgPyB2YWx1ZSA6IF9lbmNvZGUodmFsdWUpO1xuICB9XG5cbiAgLy9cbiAgLy8gSGFuZGxlcnMuXG4gIC8vXG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBmdW5jdGlvbiBvbnJlc3VtZWRyb3AoKSB7XG4gICAgcmVzdW1lKCk7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25lbnRlcmxpc3RvcmRlcmVkKHRva2VuKSB7XG4gICAgdGlnaHRTdGFjay5wdXNoKCF0b2tlbi5fbG9vc2UpO1xuICAgIGxpbmVFbmRpbmdJZk5lZWRlZCgpO1xuICAgIHRhZygnPG9sJyk7XG4gICAgc2V0RGF0YSgnZXhwZWN0Rmlyc3RJdGVtJywgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25lbnRlcmxpc3R1bm9yZGVyZWQodG9rZW4pIHtcbiAgICB0aWdodFN0YWNrLnB1c2goIXRva2VuLl9sb29zZSk7XG4gICAgbGluZUVuZGluZ0lmTmVlZGVkKCk7XG4gICAgdGFnKCc8dWwnKTtcbiAgICBzZXREYXRhKCdleHBlY3RGaXJzdEl0ZW0nLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVybGlzdGl0ZW12YWx1ZSh0b2tlbikge1xuICAgIGlmIChnZXREYXRhKCdleHBlY3RGaXJzdEl0ZW0nKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBOdW1iZXIucGFyc2VJbnQodGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbiksIDEwKTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gMSkge1xuICAgICAgICB0YWcoJyBzdGFydD1cIicgKyBlbmNvZGUoU3RyaW5nKHZhbHVlKSkgKyAnXCInKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZW50ZXJsaXN0aXRlbW1hcmtlcigpIHtcbiAgICBpZiAoZ2V0RGF0YSgnZXhwZWN0Rmlyc3RJdGVtJykpIHtcbiAgICAgIHRhZygnPicpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbmV4aXRsaXN0aXRlbSgpO1xuICAgIH1cbiAgICBsaW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICB0YWcoJzxsaT4nKTtcbiAgICBzZXREYXRhKCdleHBlY3RGaXJzdEl0ZW0nKTtcbiAgICAvLyBcdTIwMUNIYWNrXHUyMDFEIHRvIHByZXZlbnQgYSBsaW5lIGVuZGluZyBmcm9tIHNob3dpbmcgdXAgaWYgdGhlIGl0ZW0gaXMgZW1wdHkuXG4gICAgc2V0RGF0YSgnbGFzdFdhc1RhZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRsaXN0b3JkZXJlZCgpIHtcbiAgICBvbmV4aXRsaXN0aXRlbSgpO1xuICAgIHRpZ2h0U3RhY2sucG9wKCk7XG4gICAgbGluZUVuZGluZygpO1xuICAgIHRhZygnPC9vbD4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0bGlzdHVub3JkZXJlZCgpIHtcbiAgICBvbmV4aXRsaXN0aXRlbSgpO1xuICAgIHRpZ2h0U3RhY2sucG9wKCk7XG4gICAgbGluZUVuZGluZygpO1xuICAgIHRhZygnPC91bD4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0bGlzdGl0ZW0oKSB7XG4gICAgaWYgKGdldERhdGEoJ2xhc3RXYXNUYWcnKSAmJiAhZ2V0RGF0YSgnc2x1cnBBbGxMaW5lRW5kaW5ncycpKSB7XG4gICAgICBsaW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICB9XG4gICAgdGFnKCc8L2xpPicpO1xuICAgIHNldERhdGEoJ3NsdXJwQWxsTGluZUVuZGluZ3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVyYmxvY2txdW90ZSgpIHtcbiAgICB0aWdodFN0YWNrLnB1c2goZmFsc2UpO1xuICAgIGxpbmVFbmRpbmdJZk5lZWRlZCgpO1xuICAgIHRhZygnPGJsb2NrcXVvdGU+Jyk7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0YmxvY2txdW90ZSgpIHtcbiAgICB0aWdodFN0YWNrLnBvcCgpO1xuICAgIGxpbmVFbmRpbmdJZk5lZWRlZCgpO1xuICAgIHRhZygnPC9ibG9ja3F1b3RlPicpO1xuICAgIHNldERhdGEoJ3NsdXJwQWxsTGluZUVuZGluZ3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVycGFyYWdyYXBoKCkge1xuICAgIGlmICghdGlnaHRTdGFja1t0aWdodFN0YWNrLmxlbmd0aCAtIDFdKSB7XG4gICAgICBsaW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICAgIHRhZygnPHA+Jyk7XG4gICAgfVxuICAgIHNldERhdGEoJ3NsdXJwQWxsTGluZUVuZGluZ3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRwYXJhZ3JhcGgoKSB7XG4gICAgaWYgKHRpZ2h0U3RhY2tbdGlnaHRTdGFjay5sZW5ndGggLSAxXSkge1xuICAgICAgc2V0RGF0YSgnc2x1cnBBbGxMaW5lRW5kaW5ncycsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YWcoJzwvcD4nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25lbnRlcmNvZGVmZW5jZWQoKSB7XG4gICAgbGluZUVuZGluZ0lmTmVlZGVkKCk7XG4gICAgdGFnKCc8cHJlPjxjb2RlJyk7XG4gICAgc2V0RGF0YSgnZmVuY2VzQ291bnQnLCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRjb2RlZmVuY2VkZmVuY2VpbmZvKCkge1xuICAgIGNvbnN0IHZhbHVlID0gcmVzdW1lKCk7XG4gICAgdGFnKCcgY2xhc3M9XCJsYW5ndWFnZS0nICsgdmFsdWUgKyAnXCInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRjb2RlZmVuY2VkZmVuY2UoKSB7XG4gICAgY29uc3QgY291bnQgPSBnZXREYXRhKCdmZW5jZXNDb3VudCcpIHx8IDA7XG4gICAgaWYgKCFjb3VudCkge1xuICAgICAgdGFnKCc+Jyk7XG4gICAgICBzZXREYXRhKCdzbHVycE9uZUxpbmVFbmRpbmcnLCB0cnVlKTtcbiAgICB9XG4gICAgc2V0RGF0YSgnZmVuY2VzQ291bnQnLCBjb3VudCArIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZW50ZXJjb2RlaW5kZW50ZWQoKSB7XG4gICAgbGluZUVuZGluZ0lmTmVlZGVkKCk7XG4gICAgdGFnKCc8cHJlPjxjb2RlPicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGZsb3djb2RlKCkge1xuICAgIGNvbnN0IGNvdW50ID0gZ2V0RGF0YSgnZmVuY2VzQ291bnQnKTtcblxuICAgIC8vIE9uZSBzcGVjaWFsIGNhc2UgaXMgaWYgd2UgYXJlIGluc2lkZSBhIGNvbnRhaW5lciwgYW5kIHRoZSBmZW5jZWQgY29kZSB3YXNcbiAgICAvLyBub3QgY2xvc2VkIChtZWFuaW5nIGl0IHJ1bnMgdG8gdGhlIGVuZCkuXG4gICAgLy8gSW4gdGhhdCBjYXNlLCB0aGUgZm9sbG93aW5nIGxpbmUgZW5kaW5nLCBpcyBjb25zaWRlcmVkICpvdXRzaWRlKiB0aGVcbiAgICAvLyBmZW5jZWQgY29kZSBhbmQgYmxvY2sgcXVvdGUgYnkgbWljcm9tYXJrLCBidXQgQ00gd2FudHMgdG8gdHJlYXQgdGhhdFxuICAgIC8vIGVuZGluZyBhcyBwYXJ0IG9mIHRoZSBjb2RlLlxuICAgIGlmIChjb3VudCAhPT0gdW5kZWZpbmVkICYmIGNvdW50IDwgMiAmJiBkYXRhLnRpZ2h0U3RhY2subGVuZ3RoID4gMCAmJiAhZ2V0RGF0YSgnbGFzdFdhc1RhZycpKSB7XG4gICAgICBsaW5lRW5kaW5nKCk7XG4gICAgfVxuXG4gICAgLy8gQnV0IGluIG1vc3QgY2FzZXMsIGl0XHUyMDE5cyBzaW1wbGVyOiB3aGVuIHdlXHUyMDE5dmUgc2VlbiBzb21lIGRhdGEsIGVtaXQgYW4gZXh0cmFcbiAgICAvLyBsaW5lIGVuZGluZyB3aGVuIG5lZWRlZC5cbiAgICBpZiAoZ2V0RGF0YSgnZmxvd0NvZGVTZWVuRGF0YScpKSB7XG4gICAgICBsaW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICB9XG4gICAgdGFnKCc8L2NvZGU+PC9wcmU+Jyk7XG4gICAgaWYgKGNvdW50ICE9PSB1bmRlZmluZWQgJiYgY291bnQgPCAyKSBsaW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICBzZXREYXRhKCdmbG93Q29kZVNlZW5EYXRhJyk7XG4gICAgc2V0RGF0YSgnZmVuY2VzQ291bnQnKTtcbiAgICBzZXREYXRhKCdzbHVycE9uZUxpbmVFbmRpbmcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVyaW1hZ2UoKSB7XG4gICAgbWVkaWFTdGFjay5wdXNoKHtcbiAgICAgIGltYWdlOiB0cnVlXG4gICAgfSk7XG4gICAgdGFncyA9IHVuZGVmaW5lZDsgLy8gRGlzYWxsb3cgdGFncy5cbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVybGluaygpIHtcbiAgICBtZWRpYVN0YWNrLnB1c2goe30pO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGxhYmVsdGV4dCh0b2tlbikge1xuICAgIG1lZGlhU3RhY2tbbWVkaWFTdGFjay5sZW5ndGggLSAxXS5sYWJlbElkID0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbik7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0bGFiZWwoKSB7XG4gICAgbWVkaWFTdGFja1ttZWRpYVN0YWNrLmxlbmd0aCAtIDFdLmxhYmVsID0gcmVzdW1lKCk7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0cmVmZXJlbmNlc3RyaW5nKHRva2VuKSB7XG4gICAgbWVkaWFTdGFja1ttZWRpYVN0YWNrLmxlbmd0aCAtIDFdLnJlZmVyZW5jZUlkID0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbik7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25lbnRlcnJlc291cmNlKCkge1xuICAgIGJ1ZmZlcigpOyAvLyBXZSBjYW4gaGF2ZSBsaW5lIGVuZGluZ3MgaW4gdGhlIHJlc291cmNlLCBpZ25vcmUgdGhlbS5cbiAgICBtZWRpYVN0YWNrW21lZGlhU3RhY2subGVuZ3RoIC0gMV0uZGVzdGluYXRpb24gPSAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVycmVzb3VyY2VkZXN0aW5hdGlvbnN0cmluZygpIHtcbiAgICBidWZmZXIoKTtcbiAgICAvLyBJZ25vcmUgZW5jb2RpbmcgdGhlIHJlc3VsdCwgYXMgd2VcdTIwMTlsbCBmaXJzdCBwZXJjZW50IGVuY29kZSB0aGUgdXJsIGFuZFxuICAgIC8vIGVuY29kZSBtYW51YWxseSBhZnRlci5cbiAgICBzZXREYXRhKCdpZ25vcmVFbmNvZGUnLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRyZXNvdXJjZWRlc3RpbmF0aW9uc3RyaW5nKCkge1xuICAgIG1lZGlhU3RhY2tbbWVkaWFTdGFjay5sZW5ndGggLSAxXS5kZXN0aW5hdGlvbiA9IHJlc3VtZSgpO1xuICAgIHNldERhdGEoJ2lnbm9yZUVuY29kZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdHJlc291cmNldGl0bGVzdHJpbmcoKSB7XG4gICAgbWVkaWFTdGFja1ttZWRpYVN0YWNrLmxlbmd0aCAtIDFdLnRpdGxlID0gcmVzdW1lKCk7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0bWVkaWEoKSB7XG4gICAgbGV0IGluZGV4ID0gbWVkaWFTdGFjay5sZW5ndGggLSAxOyAvLyBTa2lwIGN1cnJlbnQuXG4gICAgY29uc3QgbWVkaWEgPSBtZWRpYVN0YWNrW2luZGV4XTtcbiAgICBjb25zdCBpZCA9IG1lZGlhLnJlZmVyZW5jZUlkIHx8IG1lZGlhLmxhYmVsSWQ7XG4gICAgY29uc3QgY29udGV4dCA9IG1lZGlhLmRlc3RpbmF0aW9uID09PSB1bmRlZmluZWQgPyBkZWZpbml0aW9uc1tub3JtYWxpemVJZGVudGlmaWVyKGlkKV0gOiBtZWRpYTtcbiAgICB0YWdzID0gdHJ1ZTtcbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgaWYgKG1lZGlhU3RhY2tbaW5kZXhdLmltYWdlKSB7XG4gICAgICAgIHRhZ3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobWVkaWEuaW1hZ2UpIHtcbiAgICAgIHRhZygnPGltZyBzcmM9XCInICsgc2FuaXRpemVVcmkoY29udGV4dC5kZXN0aW5hdGlvbiwgc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNQcm90b2NvbCA/IHVuZGVmaW5lZCA6IHByb3RvY29sU291cmNlKSArICdcIiBhbHQ9XCInKTtcbiAgICAgIHJhdyhtZWRpYS5sYWJlbCk7XG4gICAgICB0YWcoJ1wiJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhZygnPGEgaHJlZj1cIicgKyBzYW5pdGl6ZVVyaShjb250ZXh0LmRlc3RpbmF0aW9uLCBzZXR0aW5ncy5hbGxvd0Rhbmdlcm91c1Byb3RvY29sID8gdW5kZWZpbmVkIDogcHJvdG9jb2xIcmVmKSArICdcIicpO1xuICAgIH1cbiAgICB0YWcoY29udGV4dC50aXRsZSA/ICcgdGl0bGU9XCInICsgY29udGV4dC50aXRsZSArICdcIicgOiAnJyk7XG4gICAgaWYgKG1lZGlhLmltYWdlKSB7XG4gICAgICB0YWcoJyAvPicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YWcoJz4nKTtcbiAgICAgIHJhdyhtZWRpYS5sYWJlbCk7XG4gICAgICB0YWcoJzwvYT4nKTtcbiAgICB9XG4gICAgbWVkaWFTdGFjay5wb3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVyZGVmaW5pdGlvbigpIHtcbiAgICBidWZmZXIoKTtcbiAgICBtZWRpYVN0YWNrLnB1c2goe30pO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGRlZmluaXRpb25sYWJlbHN0cmluZyh0b2tlbikge1xuICAgIC8vIERpc2NhcmQgbGFiZWwsIHVzZSB0aGUgc291cmNlIGNvbnRlbnQgaW5zdGVhZC5cbiAgICByZXN1bWUoKTtcbiAgICBtZWRpYVN0YWNrW21lZGlhU3RhY2subGVuZ3RoIC0gMV0ubGFiZWxJZCA9IHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZW50ZXJkZWZpbml0aW9uZGVzdGluYXRpb25zdHJpbmcoKSB7XG4gICAgYnVmZmVyKCk7XG4gICAgc2V0RGF0YSgnaWdub3JlRW5jb2RlJywgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0ZGVmaW5pdGlvbmRlc3RpbmF0aW9uc3RyaW5nKCkge1xuICAgIG1lZGlhU3RhY2tbbWVkaWFTdGFjay5sZW5ndGggLSAxXS5kZXN0aW5hdGlvbiA9IHJlc3VtZSgpO1xuICAgIHNldERhdGEoJ2lnbm9yZUVuY29kZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGRlZmluaXRpb250aXRsZXN0cmluZygpIHtcbiAgICBtZWRpYVN0YWNrW21lZGlhU3RhY2subGVuZ3RoIC0gMV0udGl0bGUgPSByZXN1bWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRkZWZpbml0aW9uKCkge1xuICAgIGNvbnN0IG1lZGlhID0gbWVkaWFTdGFja1ttZWRpYVN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGlkID0gbm9ybWFsaXplSWRlbnRpZmllcihtZWRpYS5sYWJlbElkKTtcbiAgICByZXN1bWUoKTtcbiAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwoZGVmaW5pdGlvbnMsIGlkKSkge1xuICAgICAgZGVmaW5pdGlvbnNbaWRdID0gbWVkaWFTdGFja1ttZWRpYVN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgICBtZWRpYVN0YWNrLnBvcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZW50ZXJjb250ZW50KCkge1xuICAgIHNldERhdGEoJ3NsdXJwQWxsTGluZUVuZGluZ3MnLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRhdHhoZWFkaW5nc2VxdWVuY2UodG9rZW4pIHtcbiAgICAvLyBFeGl0IGZvciBmdXJ0aGVyIHNlcXVlbmNlcy5cbiAgICBpZiAoZ2V0RGF0YSgnaGVhZGluZ1JhbmsnKSkgcmV0dXJuO1xuICAgIHNldERhdGEoJ2hlYWRpbmdSYW5rJywgdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbikubGVuZ3RoKTtcbiAgICBsaW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICB0YWcoJzxoJyArIGdldERhdGEoJ2hlYWRpbmdSYW5rJykgKyAnPicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZW50ZXJzZXRleHRoZWFkaW5nKCkge1xuICAgIGJ1ZmZlcigpO1xuICAgIHNldERhdGEoJ3NsdXJwQWxsTGluZUVuZGluZ3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRzZXRleHRoZWFkaW5ndGV4dCgpIHtcbiAgICBzZXREYXRhKCdzbHVycEFsbExpbmVFbmRpbmdzJywgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0YXR4aGVhZGluZygpIHtcbiAgICB0YWcoJzwvaCcgKyBnZXREYXRhKCdoZWFkaW5nUmFuaycpICsgJz4nKTtcbiAgICBzZXREYXRhKCdoZWFkaW5nUmFuaycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdHNldGV4dGhlYWRpbmdsaW5lc2VxdWVuY2UodG9rZW4pIHtcbiAgICBzZXREYXRhKCdoZWFkaW5nUmFuaycsIHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pLmNoYXJDb2RlQXQoMCkgPT09IDYxID8gMSA6IDIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdHNldGV4dGhlYWRpbmcoKSB7XG4gICAgY29uc3QgdmFsdWUgPSByZXN1bWUoKTtcbiAgICBsaW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICB0YWcoJzxoJyArIGdldERhdGEoJ2hlYWRpbmdSYW5rJykgKyAnPicpO1xuICAgIHJhdyh2YWx1ZSk7XG4gICAgdGFnKCc8L2gnICsgZ2V0RGF0YSgnaGVhZGluZ1JhbmsnKSArICc+Jyk7XG4gICAgc2V0RGF0YSgnc2x1cnBBbGxMaW5lRW5kaW5ncycpO1xuICAgIHNldERhdGEoJ2hlYWRpbmdSYW5rJyk7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0ZGF0YSh0b2tlbikge1xuICAgIHJhdyhlbmNvZGUodGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbikpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRsaW5lZW5kaW5nKHRva2VuKSB7XG4gICAgaWYgKGdldERhdGEoJ3NsdXJwQWxsTGluZUVuZGluZ3MnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZ2V0RGF0YSgnc2x1cnBPbmVMaW5lRW5kaW5nJykpIHtcbiAgICAgIHNldERhdGEoJ3NsdXJwT25lTGluZUVuZGluZycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZ2V0RGF0YSgnaW5Db2RlVGV4dCcpKSB7XG4gICAgICByYXcoJyAnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmF3KGVuY29kZSh0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGNvZGVmbG93dmFsdWUodG9rZW4pIHtcbiAgICByYXcoZW5jb2RlKHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pKSk7XG4gICAgc2V0RGF0YSgnZmxvd0NvZGVTZWVuRGF0YScsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGhhcmRicmVhaygpIHtcbiAgICB0YWcoJzxiciAvPicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVyaHRtbGZsb3coKSB7XG4gICAgbGluZUVuZGluZ0lmTmVlZGVkKCk7XG4gICAgb25lbnRlcmh0bWwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0aHRtbCgpIHtcbiAgICBzZXREYXRhKCdpZ25vcmVFbmNvZGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gb25lbnRlcmh0bWwoKSB7XG4gICAgaWYgKHNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzSHRtbCkge1xuICAgICAgc2V0RGF0YSgnaWdub3JlRW5jb2RlJywgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVyZW1waGFzaXMoKSB7XG4gICAgdGFnKCc8ZW0+Jyk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZW50ZXJzdHJvbmcoKSB7XG4gICAgdGFnKCc8c3Ryb25nPicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVyY29kZXRleHQoKSB7XG4gICAgc2V0RGF0YSgnaW5Db2RlVGV4dCcsIHRydWUpO1xuICAgIHRhZygnPGNvZGU+Jyk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGNvZGV0ZXh0KCkge1xuICAgIHNldERhdGEoJ2luQ29kZVRleHQnKTtcbiAgICB0YWcoJzwvY29kZT4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0ZW1waGFzaXMoKSB7XG4gICAgdGFnKCc8L2VtPicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRzdHJvbmcoKSB7XG4gICAgdGFnKCc8L3N0cm9uZz4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0dGhlbWF0aWNicmVhaygpIHtcbiAgICBsaW5lRW5kaW5nSWZOZWVkZWQoKTtcbiAgICB0YWcoJzxociAvPicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHBhcmFtIHtUb2tlbn0gdG9rZW5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGNoYXJhY3RlcnJlZmVyZW5jZW1hcmtlcih0b2tlbikge1xuICAgIHNldERhdGEoJ2NoYXJhY3RlclJlZmVyZW5jZVR5cGUnLCB0b2tlbi50eXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRjaGFyYWN0ZXJyZWZlcmVuY2V2YWx1ZSh0b2tlbikge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbik7XG4gICAgY29uc3QgZGVjb2RlZCA9IGdldERhdGEoJ2NoYXJhY3RlclJlZmVyZW5jZVR5cGUnKSA/IGRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UodmFsdWUsIGdldERhdGEoJ2NoYXJhY3RlclJlZmVyZW5jZVR5cGUnKSA9PT0gXCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljXCIgPyAxMCA6IDE2KSA6IGRlY29kZU5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKHZhbHVlKTtcblxuICAgIC8vIGBkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZWAgY2FuIHJldHVybiBgZmFsc2VgIGZvciBpbnZhbGlkIG5hbWVkXG4gICAgLy8gY2hhcmFjdGVyIHJlZmVyZW5jZXMsXG4gICAgLy8gYnV0IGV2ZXJ5dGhpbmcgd2VcdTIwMTl2ZSB0b2tlbml6ZWQgaXMgdmFsaWQuXG4gICAgcmF3KGVuY29kZSgvKiogQHR5cGUge3N0cmluZ30gKi9kZWNvZGVkKSk7XG4gICAgc2V0RGF0YSgnY2hhcmFjdGVyUmVmZXJlbmNlVHlwZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGF1dG9saW5rcHJvdG9jb2wodG9rZW4pIHtcbiAgICBjb25zdCB1cmkgPSB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKTtcbiAgICB0YWcoJzxhIGhyZWY9XCInICsgc2FuaXRpemVVcmkodXJpLCBzZXR0aW5ncy5hbGxvd0Rhbmdlcm91c1Byb3RvY29sID8gdW5kZWZpbmVkIDogcHJvdG9jb2xIcmVmKSArICdcIj4nKTtcbiAgICByYXcoZW5jb2RlKHVyaSkpO1xuICAgIHRhZygnPC9hPicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGF1dG9saW5rZW1haWwodG9rZW4pIHtcbiAgICBjb25zdCB1cmkgPSB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKTtcbiAgICB0YWcoJzxhIGhyZWY9XCInICsgc2FuaXRpemVVcmkoJ21haWx0bzonICsgdXJpKSArICdcIj4nKTtcbiAgICByYXcoZW5jb2RlKHVyaSkpO1xuICAgIHRhZygnPC9hPicpO1xuICB9XG59IiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIEluaXRpYWxDb25zdHJ1Y3QsXG4gKiAgIEluaXRpYWxpemVyLFxuICogICBTdGF0ZSxcbiAqICAgVG9rZW5pemVDb250ZXh0LFxuICogICBUb2tlblxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBmYWN0b3J5U3BhY2UgfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSc7XG5pbXBvcnQgeyBtYXJrZG93bkxpbmVFbmRpbmcgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuLyoqIEB0eXBlIHtJbml0aWFsQ29uc3RydWN0fSAqL1xuZXhwb3J0IGNvbnN0IGNvbnRlbnQgPSB7XG4gIHRva2VuaXplOiBpbml0aWFsaXplQ29udGVudFxufTtcblxuLyoqXG4gKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICogICBDb250ZXh0LlxuICogQHR5cGUge0luaXRpYWxpemVyfVxuICogICBDb250ZW50LlxuICovXG5mdW5jdGlvbiBpbml0aWFsaXplQ29udGVudChlZmZlY3RzKSB7XG4gIGNvbnN0IGNvbnRlbnRTdGFydCA9IGVmZmVjdHMuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmNvbnRlbnRJbml0aWFsLCBhZnRlckNvbnRlbnRTdGFydENvbnN0cnVjdCwgcGFyYWdyYXBoSW5pdGlhbCk7XG4gIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gIGxldCBwcmV2aW91cztcbiAgcmV0dXJuIGNvbnRlbnRTdGFydDtcblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBhZnRlckNvbnRlbnRTdGFydENvbnN0cnVjdChjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZWZmZWN0cy5lbnRlcihcImxpbmVFbmRpbmdcIik7XG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIGVmZmVjdHMuZXhpdChcImxpbmVFbmRpbmdcIik7XG4gICAgcmV0dXJuIGZhY3RvcnlTcGFjZShlZmZlY3RzLCBjb250ZW50U3RhcnQsIFwibGluZVByZWZpeFwiKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHBhcmFncmFwaEluaXRpYWwoY29kZSkge1xuICAgIGVmZmVjdHMuZW50ZXIoXCJwYXJhZ3JhcGhcIik7XG4gICAgcmV0dXJuIGxpbmVTdGFydChjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGxpbmVTdGFydChjb2RlKSB7XG4gICAgY29uc3QgdG9rZW4gPSBlZmZlY3RzLmVudGVyKFwiY2h1bmtUZXh0XCIsIHtcbiAgICAgIGNvbnRlbnRUeXBlOiBcInRleHRcIixcbiAgICAgIHByZXZpb3VzXG4gICAgfSk7XG4gICAgaWYgKHByZXZpb3VzKSB7XG4gICAgICBwcmV2aW91cy5uZXh0ID0gdG9rZW47XG4gICAgfVxuICAgIHByZXZpb3VzID0gdG9rZW47XG4gICAgcmV0dXJuIGRhdGEoY29kZSk7XG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBkYXRhKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgZWZmZWN0cy5leGl0KFwiY2h1bmtUZXh0XCIpO1xuICAgICAgZWZmZWN0cy5leGl0KFwicGFyYWdyYXBoXCIpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICBlZmZlY3RzLmV4aXQoXCJjaHVua1RleHRcIik7XG4gICAgICByZXR1cm4gbGluZVN0YXJ0O1xuICAgIH1cblxuICAgIC8vIERhdGEuXG4gICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG59IiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIENvbnN0cnVjdCxcbiAqICAgQ29udGFpbmVyU3RhdGUsXG4gKiAgIEluaXRpYWxDb25zdHJ1Y3QsXG4gKiAgIEluaXRpYWxpemVyLFxuICogICBQb2ludCxcbiAqICAgU3RhdGUsXG4gKiAgIFRva2VuaXplQ29udGV4dCxcbiAqICAgVG9rZW5pemVyLFxuICogICBUb2tlblxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtbQ29uc3RydWN0LCBDb250YWluZXJTdGF0ZV19IFN0YWNrSXRlbVxuICogICBDb25zdHJ1Y3QgYW5kIGl0cyBzdGF0ZS5cbiAqL1xuXG5pbXBvcnQgeyBmYWN0b3J5U3BhY2UgfSBmcm9tICdtaWNyb21hcmstZmFjdG9yeS1zcGFjZSc7XG5pbXBvcnQgeyBtYXJrZG93bkxpbmVFbmRpbmcgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaGFyYWN0ZXInO1xuaW1wb3J0IHsgc3BsaWNlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2h1bmtlZCc7XG4vKiogQHR5cGUge0luaXRpYWxDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgZG9jdW1lbnQgPSB7XG4gIHRva2VuaXplOiBpbml0aWFsaXplRG9jdW1lbnRcbn07XG5cbi8qKiBAdHlwZSB7Q29uc3RydWN0fSAqL1xuY29uc3QgY29udGFpbmVyQ29uc3RydWN0ID0ge1xuICB0b2tlbml6ZTogdG9rZW5pemVDb250YWluZXJcbn07XG5cbi8qKlxuICogQHRoaXMge1Rva2VuaXplQ29udGV4dH1cbiAqICAgU2VsZi5cbiAqIEB0eXBlIHtJbml0aWFsaXplcn1cbiAqICAgSW5pdGlhbGl6ZXIuXG4gKi9cbmZ1bmN0aW9uIGluaXRpYWxpemVEb2N1bWVudChlZmZlY3RzKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAvKiogQHR5cGUge0FycmF5PFN0YWNrSXRlbT59ICovXG4gIGNvbnN0IHN0YWNrID0gW107XG4gIGxldCBjb250aW51ZWQgPSAwO1xuICAvKiogQHR5cGUge1Rva2VuaXplQ29udGV4dCB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGNoaWxkRmxvdztcbiAgLyoqIEB0eXBlIHtUb2tlbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGNoaWxkVG9rZW47XG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgbGluZVN0YXJ0T2Zmc2V0O1xuICByZXR1cm4gc3RhcnQ7XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gc3RhcnQoY29kZSkge1xuICAgIC8vIEZpcnN0IHdlIGl0ZXJhdGUgdGhyb3VnaCB0aGUgb3BlbiBibG9ja3MsIHN0YXJ0aW5nIHdpdGggdGhlIHJvb3RcbiAgICAvLyBkb2N1bWVudCwgYW5kIGRlc2NlbmRpbmcgdGhyb3VnaCBsYXN0IGNoaWxkcmVuIGRvd24gdG8gdGhlIGxhc3Qgb3BlblxuICAgIC8vIGJsb2NrLlxuICAgIC8vIEVhY2ggYmxvY2sgaW1wb3NlcyBhIGNvbmRpdGlvbiB0aGF0IHRoZSBsaW5lIG11c3Qgc2F0aXNmeSBpZiB0aGUgYmxvY2sgaXNcbiAgICAvLyB0byByZW1haW4gb3Blbi5cbiAgICAvLyBGb3IgZXhhbXBsZSwgYSBibG9jayBxdW90ZSByZXF1aXJlcyBhIGA+YCBjaGFyYWN0ZXIuXG4gICAgLy8gQSBwYXJhZ3JhcGggcmVxdWlyZXMgYSBub24tYmxhbmsgbGluZS5cbiAgICAvLyBJbiB0aGlzIHBoYXNlIHdlIG1heSBtYXRjaCBhbGwgb3IganVzdCBzb21lIG9mIHRoZSBvcGVuIGJsb2Nrcy5cbiAgICAvLyBCdXQgd2UgY2Fubm90IGNsb3NlIHVubWF0Y2hlZCBibG9ja3MgeWV0LCBiZWNhdXNlIHdlIG1heSBoYXZlIGEgbGF6eVxuICAgIC8vIGNvbnRpbnVhdGlvbiBsaW5lLlxuICAgIGlmIChjb250aW51ZWQgPCBzdGFjay5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBzdGFja1tjb250aW51ZWRdO1xuICAgICAgc2VsZi5jb250YWluZXJTdGF0ZSA9IGl0ZW1bMV07XG4gICAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KGl0ZW1bMF0uY29udGludWF0aW9uLCBkb2N1bWVudENvbnRpbnVlLCBjaGVja05ld0NvbnRhaW5lcnMpKGNvZGUpO1xuICAgIH1cblxuICAgIC8vIERvbmUuXG4gICAgcmV0dXJuIGNoZWNrTmV3Q29udGFpbmVycyhjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGRvY3VtZW50Q29udGludWUoY29kZSkge1xuICAgIGNvbnRpbnVlZCsrO1xuXG4gICAgLy8gTm90ZTogdGhpcyBmaWVsZCBpcyBjYWxsZWQgYF9jbG9zZUZsb3dgIGJ1dCBpdCBhbHNvIGNsb3NlcyBjb250YWluZXJzLlxuICAgIC8vIFBlcmhhcHMgYSBnb29kIGlkZWEgdG8gcmVuYW1lIGl0IGJ1dCBpdFx1MjAxOXMgYWxyZWFkeSB1c2VkIGluIHRoZSB3aWxkIGJ5XG4gICAgLy8gZXh0ZW5zaW9ucy5cbiAgICBpZiAoc2VsZi5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93KSB7XG4gICAgICBzZWxmLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3cgPSB1bmRlZmluZWQ7XG4gICAgICBpZiAoY2hpbGRGbG93KSB7XG4gICAgICAgIGNsb3NlRmxvdygpO1xuICAgICAgfVxuXG4gICAgICAvLyBOb3RlOiB0aGlzIGFsZ29yaXRobSBmb3IgbW92aW5nIGV2ZW50cyBhcm91bmQgaXMgc2ltaWxhciB0byB0aGVcbiAgICAgIC8vIGFsZ29yaXRobSB3aGVuIGRlYWxpbmcgd2l0aCBsYXp5IGxpbmVzIGluIGB3cml0ZVRvQ2hpbGRgLlxuICAgICAgY29uc3QgaW5kZXhCZWZvcmVFeGl0cyA9IHNlbGYuZXZlbnRzLmxlbmd0aDtcbiAgICAgIGxldCBpbmRleEJlZm9yZUZsb3cgPSBpbmRleEJlZm9yZUV4aXRzO1xuICAgICAgLyoqIEB0eXBlIHtQb2ludCB8IHVuZGVmaW5lZH0gKi9cbiAgICAgIGxldCBwb2ludDtcblxuICAgICAgLy8gRmluZCB0aGUgZmxvdyBjaHVuay5cbiAgICAgIHdoaWxlIChpbmRleEJlZm9yZUZsb3ctLSkge1xuICAgICAgICBpZiAoc2VsZi5ldmVudHNbaW5kZXhCZWZvcmVGbG93XVswXSA9PT0gJ2V4aXQnICYmIHNlbGYuZXZlbnRzW2luZGV4QmVmb3JlRmxvd11bMV0udHlwZSA9PT0gXCJjaHVua0Zsb3dcIikge1xuICAgICAgICAgIHBvaW50ID0gc2VsZi5ldmVudHNbaW5kZXhCZWZvcmVGbG93XVsxXS5lbmQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGV4aXRDb250YWluZXJzKGNvbnRpbnVlZCk7XG5cbiAgICAgIC8vIEZpeCBwb3NpdGlvbnMuXG4gICAgICBsZXQgaW5kZXggPSBpbmRleEJlZm9yZUV4aXRzO1xuICAgICAgd2hpbGUgKGluZGV4IDwgc2VsZi5ldmVudHMubGVuZ3RoKSB7XG4gICAgICAgIHNlbGYuZXZlbnRzW2luZGV4XVsxXS5lbmQgPSB7XG4gICAgICAgICAgLi4ucG9pbnRcbiAgICAgICAgfTtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgIH1cblxuICAgICAgLy8gSW5qZWN0IHRoZSBleGl0cyBlYXJsaWVyICh0aGV5XHUyMDE5cmUgc3RpbGwgYWxzbyBhdCB0aGUgZW5kKS5cbiAgICAgIHNwbGljZShzZWxmLmV2ZW50cywgaW5kZXhCZWZvcmVGbG93ICsgMSwgMCwgc2VsZi5ldmVudHMuc2xpY2UoaW5kZXhCZWZvcmVFeGl0cykpO1xuXG4gICAgICAvLyBEaXNjYXJkIHRoZSBkdXBsaWNhdGUgZXhpdHMuXG4gICAgICBzZWxmLmV2ZW50cy5sZW5ndGggPSBpbmRleDtcbiAgICAgIHJldHVybiBjaGVja05ld0NvbnRhaW5lcnMoY29kZSk7XG4gICAgfVxuICAgIHJldHVybiBzdGFydChjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGNoZWNrTmV3Q29udGFpbmVycyhjb2RlKSB7XG4gICAgLy8gTmV4dCwgYWZ0ZXIgY29uc3VtaW5nIHRoZSBjb250aW51YXRpb24gbWFya2VycyBmb3IgZXhpc3RpbmcgYmxvY2tzLCB3ZVxuICAgIC8vIGxvb2sgZm9yIG5ldyBibG9jayBzdGFydHMgKGUuZy4gYD5gIGZvciBhIGJsb2NrIHF1b3RlKS5cbiAgICAvLyBJZiB3ZSBlbmNvdW50ZXIgYSBuZXcgYmxvY2sgc3RhcnQsIHdlIGNsb3NlIGFueSBibG9ja3MgdW5tYXRjaGVkIGluXG4gICAgLy8gc3RlcCAxIGJlZm9yZSBjcmVhdGluZyB0aGUgbmV3IGJsb2NrIGFzIGEgY2hpbGQgb2YgdGhlIGxhc3QgbWF0Y2hlZFxuICAgIC8vIGJsb2NrLlxuICAgIGlmIChjb250aW51ZWQgPT09IHN0YWNrLmxlbmd0aCkge1xuICAgICAgLy8gTm8gbmVlZCB0byBgY2hlY2tgIHdoZXRoZXIgdGhlcmVcdTIwMTlzIGEgY29udGFpbmVyLCBvZiBgZXhpdENvbnRhaW5lcnNgXG4gICAgICAvLyB3b3VsZCBiZSBtb290LlxuICAgICAgLy8gV2UgY2FuIGluc3RlYWQgaW1tZWRpYXRlbHkgYGF0dGVtcHRgIHRvIHBhcnNlIG9uZS5cbiAgICAgIGlmICghY2hpbGRGbG93KSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudENvbnRpbnVlZChjb2RlKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgd2UgaGF2ZSBjb25jcmV0ZSBjb250ZW50LCBzdWNoIGFzIGJsb2NrIEhUTUwgb3IgZmVuY2VkIGNvZGUsXG4gICAgICAvLyB3ZSBjYW5cdTIwMTl0IGhhdmUgY29udGFpbmVycyBcdTIwMUNwaWVyY2VcdTIwMUQgaW50byB0aGVtLCBzbyB3ZSBjYW4gaW1tZWRpYXRlbHlcbiAgICAgIC8vIHN0YXJ0LlxuICAgICAgaWYgKGNoaWxkRmxvdy5jdXJyZW50Q29uc3RydWN0ICYmIGNoaWxkRmxvdy5jdXJyZW50Q29uc3RydWN0LmNvbmNyZXRlKSB7XG4gICAgICAgIHJldHVybiBmbG93U3RhcnQoY29kZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHdlIGRvIGhhdmUgZmxvdywgaXQgY291bGQgc3RpbGwgYmUgYSBibGFuayBsaW5lLFxuICAgICAgLy8gYnV0IHdlXHUyMDE5ZCBiZSBpbnRlcnJ1cHRpbmcgaXQgdy8gYSBuZXcgY29udGFpbmVyIGlmIHRoZXJlXHUyMDE5cyBhIGN1cnJlbnRcbiAgICAgIC8vIGNvbnN0cnVjdC5cbiAgICAgIC8vIFRvIGRvOiBuZXh0IG1ham9yOiByZW1vdmUgYF9nZm1UYWJsZUR5bmFtaWNJbnRlcnJ1cHRIYWNrYCAobm8gbG9uZ2VyXG4gICAgICAvLyBuZWVkZWQgaW4gbWljcm9tYXJrLWV4dGVuc2lvbi1nZm0tdGFibGVAMS4wLjYpLlxuICAgICAgc2VsZi5pbnRlcnJ1cHQgPSBCb29sZWFuKGNoaWxkRmxvdy5jdXJyZW50Q29uc3RydWN0ICYmICFjaGlsZEZsb3cuX2dmbVRhYmxlRHluYW1pY0ludGVycnVwdEhhY2spO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZXJlIGlzIGEgbmV3IGNvbnRhaW5lci5cbiAgICBzZWxmLmNvbnRhaW5lclN0YXRlID0ge307XG4gICAgcmV0dXJuIGVmZmVjdHMuY2hlY2soY29udGFpbmVyQ29uc3RydWN0LCB0aGVyZUlzQU5ld0NvbnRhaW5lciwgdGhlcmVJc05vTmV3Q29udGFpbmVyKShjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHRoZXJlSXNBTmV3Q29udGFpbmVyKGNvZGUpIHtcbiAgICBpZiAoY2hpbGRGbG93KSBjbG9zZUZsb3coKTtcbiAgICBleGl0Q29udGFpbmVycyhjb250aW51ZWQpO1xuICAgIHJldHVybiBkb2N1bWVudENvbnRpbnVlZChjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIHRoZXJlSXNOb05ld0NvbnRhaW5lcihjb2RlKSB7XG4gICAgc2VsZi5wYXJzZXIubGF6eVtzZWxmLm5vdygpLmxpbmVdID0gY29udGludWVkICE9PSBzdGFjay5sZW5ndGg7XG4gICAgbGluZVN0YXJ0T2Zmc2V0ID0gc2VsZi5ub3coKS5vZmZzZXQ7XG4gICAgcmV0dXJuIGZsb3dTdGFydChjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGRvY3VtZW50Q29udGludWVkKGNvZGUpIHtcbiAgICAvLyBUcnkgbmV3IGNvbnRhaW5lcnMuXG4gICAgc2VsZi5jb250YWluZXJTdGF0ZSA9IHt9O1xuICAgIHJldHVybiBlZmZlY3RzLmF0dGVtcHQoY29udGFpbmVyQ29uc3RydWN0LCBjb250YWluZXJDb250aW51ZSwgZmxvd1N0YXJ0KShjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGNvbnRhaW5lckNvbnRpbnVlKGNvZGUpIHtcbiAgICBjb250aW51ZWQrKztcbiAgICBzdGFjay5wdXNoKFtzZWxmLmN1cnJlbnRDb25zdHJ1Y3QsIHNlbGYuY29udGFpbmVyU3RhdGVdKTtcbiAgICAvLyBUcnkgYW5vdGhlci5cbiAgICByZXR1cm4gZG9jdW1lbnRDb250aW51ZWQoY29kZSk7XG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBmbG93U3RhcnQoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICBpZiAoY2hpbGRGbG93KSBjbG9zZUZsb3coKTtcbiAgICAgIGV4aXRDb250YWluZXJzKDApO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjaGlsZEZsb3cgPSBjaGlsZEZsb3cgfHwgc2VsZi5wYXJzZXIuZmxvdyhzZWxmLm5vdygpKTtcbiAgICBlZmZlY3RzLmVudGVyKFwiY2h1bmtGbG93XCIsIHtcbiAgICAgIF90b2tlbml6ZXI6IGNoaWxkRmxvdyxcbiAgICAgIGNvbnRlbnRUeXBlOiBcImZsb3dcIixcbiAgICAgIHByZXZpb3VzOiBjaGlsZFRva2VuXG4gICAgfSk7XG4gICAgcmV0dXJuIGZsb3dDb250aW51ZShjb2RlKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gIGZ1bmN0aW9uIGZsb3dDb250aW51ZShjb2RlKSB7XG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgIHdyaXRlVG9DaGlsZChlZmZlY3RzLmV4aXQoXCJjaHVua0Zsb3dcIiksIHRydWUpO1xuICAgICAgZXhpdENvbnRhaW5lcnMoMCk7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICAgIHdyaXRlVG9DaGlsZChlZmZlY3RzLmV4aXQoXCJjaHVua0Zsb3dcIikpO1xuICAgICAgLy8gR2V0IHJlYWR5IGZvciB0aGUgbmV4dCBsaW5lLlxuICAgICAgY29udGludWVkID0gMDtcbiAgICAgIHNlbGYuaW50ZXJydXB0ID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIHN0YXJ0O1xuICAgIH1cbiAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgcmV0dXJuIGZsb3dDb250aW51ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1Rva2VufSB0b2tlblxuICAgKiAgIFRva2VuLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW4gfCB1bmRlZmluZWR9IFtlbmRPZkZpbGVdXG4gICAqICAgV2hldGhlciB0aGUgdG9rZW4gaXMgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZSAoZGVmYXVsdDogYGZhbHNlYCkuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIHdyaXRlVG9DaGlsZCh0b2tlbiwgZW5kT2ZGaWxlKSB7XG4gICAgY29uc3Qgc3RyZWFtID0gc2VsZi5zbGljZVN0cmVhbSh0b2tlbik7XG4gICAgaWYgKGVuZE9mRmlsZSkgc3RyZWFtLnB1c2gobnVsbCk7XG4gICAgdG9rZW4ucHJldmlvdXMgPSBjaGlsZFRva2VuO1xuICAgIGlmIChjaGlsZFRva2VuKSBjaGlsZFRva2VuLm5leHQgPSB0b2tlbjtcbiAgICBjaGlsZFRva2VuID0gdG9rZW47XG4gICAgY2hpbGRGbG93LmRlZmluZVNraXAodG9rZW4uc3RhcnQpO1xuICAgIGNoaWxkRmxvdy53cml0ZShzdHJlYW0pO1xuXG4gICAgLy8gQWxyaWdodCwgc28gd2UganVzdCBhZGRlZCBhIGxhenkgbGluZTpcbiAgICAvL1xuICAgIC8vIGBgYG1hcmtkb3duXG4gICAgLy8gPiBhXG4gICAgLy8gYi5cbiAgICAvL1xuICAgIC8vIE9yOlxuICAgIC8vXG4gICAgLy8gPiB+fn5jXG4gICAgLy8gZFxuICAgIC8vXG4gICAgLy8gT3I6XG4gICAgLy9cbiAgICAvLyA+IHwgZSB8XG4gICAgLy8gZlxuICAgIC8vIGBgYFxuICAgIC8vXG4gICAgLy8gVGhlIGNvbnN0cnVjdCBpbiB0aGUgc2Vjb25kIGV4YW1wbGUgKGZlbmNlZCBjb2RlKSBkb2VzIG5vdCBhY2NlcHQgbGF6eVxuICAgIC8vIGxpbmVzLCBzbyBpdCBtYXJrZWQgaXRzZWxmIGFzIGRvbmUgYXQgdGhlIGVuZCBvZiBpdHMgZmlyc3QgbGluZSwgYW5kXG4gICAgLy8gdGhlbiB0aGUgY29udGVudCBjb25zdHJ1Y3QgcGFyc2VzIGBkYC5cbiAgICAvLyBNb3N0IGNvbnN0cnVjdHMgaW4gbWFya2Rvd24gbWF0Y2ggb24gdGhlIGZpcnN0IGxpbmU6IGlmIHRoZSBmaXJzdCBsaW5lXG4gICAgLy8gZm9ybXMgYSBjb25zdHJ1Y3QsIGEgbm9uLWxhenkgbGluZSBjYW5cdTIwMTl0IFx1MjAxQ3VubWFrZVx1MjAxRCBpdC5cbiAgICAvL1xuICAgIC8vIFRoZSBjb25zdHJ1Y3QgaW4gdGhlIHRoaXJkIGV4YW1wbGUgaXMgcG90ZW50aWFsbHkgYSBHRk0gdGFibGUsIGFuZFxuICAgIC8vIHRob3NlIGFyZSAqd2VpcmQqLlxuICAgIC8vIEl0ICpjb3VsZCogYmUgYSB0YWJsZSwgZnJvbSB0aGUgZmlyc3QgbGluZSwgaWYgdGhlIGZvbGxvd2luZyBsaW5lXG4gICAgLy8gbWF0Y2hlcyBhIGNvbmRpdGlvbi5cbiAgICAvLyBJbiB0aGlzIGNhc2UsIHRoYXQgc2Vjb25kIGxpbmUgaXMgbGF6eSwgd2hpY2ggXHUyMDFDdW5tYWtlc1x1MjAxRCB0aGUgZmlyc3QgbGluZVxuICAgIC8vIGFuZCB0dXJucyB0aGUgd2hvbGUgaW50byBvbmUgY29udGVudCBibG9jay5cbiAgICAvL1xuICAgIC8vIFdlXHUyMDE5dmUgbm93IHBhcnNlZCB0aGUgbm9uLWxhenkgYW5kIHRoZSBsYXp5IGxpbmUsIGFuZCBjYW4gZmlndXJlIG91dFxuICAgIC8vIHdoZXRoZXIgdGhlIGxhenkgbGluZSBzdGFydGVkIGEgbmV3IGZsb3cgYmxvY2suXG4gICAgLy8gSWYgaXQgZGlkLCB3ZSBleGl0IHRoZSBjdXJyZW50IGNvbnRhaW5lcnMgYmV0d2VlbiB0aGUgdHdvIGZsb3cgYmxvY2tzLlxuICAgIGlmIChzZWxmLnBhcnNlci5sYXp5W3Rva2VuLnN0YXJ0LmxpbmVdKSB7XG4gICAgICBsZXQgaW5kZXggPSBjaGlsZEZsb3cuZXZlbnRzLmxlbmd0aDtcbiAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgLy8gVGhlIHRva2VuIHN0YXJ0cyBiZWZvcmUgdGhlIGxpbmUgZW5kaW5nXHUyMDI2XG4gICAgICAgIGNoaWxkRmxvdy5ldmVudHNbaW5kZXhdWzFdLnN0YXJ0Lm9mZnNldCA8IGxpbmVTdGFydE9mZnNldCAmJiAoXG4gICAgICAgIC8vIFx1MjAyNmFuZCBlaXRoZXIgaXMgbm90IGVuZGVkIHlldFx1MjAyNlxuICAgICAgICAhY2hpbGRGbG93LmV2ZW50c1tpbmRleF1bMV0uZW5kIHx8XG4gICAgICAgIC8vIFx1MjAyNm9yIGVuZHMgYWZ0ZXIgaXQuXG4gICAgICAgIGNoaWxkRmxvdy5ldmVudHNbaW5kZXhdWzFdLmVuZC5vZmZzZXQgPiBsaW5lU3RhcnRPZmZzZXQpKSB7XG4gICAgICAgICAgLy8gRXhpdDogdGhlcmVcdTIwMTlzIHN0aWxsIHNvbWV0aGluZyBvcGVuLCB3aGljaCBtZWFucyBpdFx1MjAxOXMgYSBsYXp5IGxpbmVcbiAgICAgICAgICAvLyBwYXJ0IG9mIHNvbWV0aGluZy5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gTm90ZTogdGhpcyBhbGdvcml0aG0gZm9yIG1vdmluZyBldmVudHMgYXJvdW5kIGlzIHNpbWlsYXIgdG8gdGhlXG4gICAgICAvLyBhbGdvcml0aG0gd2hlbiBjbG9zaW5nIGZsb3cgaW4gYGRvY3VtZW50Q29udGludWVgLlxuICAgICAgY29uc3QgaW5kZXhCZWZvcmVFeGl0cyA9IHNlbGYuZXZlbnRzLmxlbmd0aDtcbiAgICAgIGxldCBpbmRleEJlZm9yZUZsb3cgPSBpbmRleEJlZm9yZUV4aXRzO1xuICAgICAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICAgICAgbGV0IHNlZW47XG4gICAgICAvKiogQHR5cGUge1BvaW50IHwgdW5kZWZpbmVkfSAqL1xuICAgICAgbGV0IHBvaW50O1xuXG4gICAgICAvLyBGaW5kIHRoZSBwcmV2aW91cyBjaHVuayAodGhlIG9uZSBiZWZvcmUgdGhlIGxhenkgbGluZSkuXG4gICAgICB3aGlsZSAoaW5kZXhCZWZvcmVGbG93LS0pIHtcbiAgICAgICAgaWYgKHNlbGYuZXZlbnRzW2luZGV4QmVmb3JlRmxvd11bMF0gPT09ICdleGl0JyAmJiBzZWxmLmV2ZW50c1tpbmRleEJlZm9yZUZsb3ddWzFdLnR5cGUgPT09IFwiY2h1bmtGbG93XCIpIHtcbiAgICAgICAgICBpZiAoc2Vlbikge1xuICAgICAgICAgICAgcG9pbnQgPSBzZWxmLmV2ZW50c1tpbmRleEJlZm9yZUZsb3ddWzFdLmVuZDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZWVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZXhpdENvbnRhaW5lcnMoY29udGludWVkKTtcblxuICAgICAgLy8gRml4IHBvc2l0aW9ucy5cbiAgICAgIGluZGV4ID0gaW5kZXhCZWZvcmVFeGl0cztcbiAgICAgIHdoaWxlIChpbmRleCA8IHNlbGYuZXZlbnRzLmxlbmd0aCkge1xuICAgICAgICBzZWxmLmV2ZW50c1tpbmRleF1bMV0uZW5kID0ge1xuICAgICAgICAgIC4uLnBvaW50XG4gICAgICAgIH07XG4gICAgICAgIGluZGV4Kys7XG4gICAgICB9XG5cbiAgICAgIC8vIEluamVjdCB0aGUgZXhpdHMgZWFybGllciAodGhleVx1MjAxOXJlIHN0aWxsIGFsc28gYXQgdGhlIGVuZCkuXG4gICAgICBzcGxpY2Uoc2VsZi5ldmVudHMsIGluZGV4QmVmb3JlRmxvdyArIDEsIDAsIHNlbGYuZXZlbnRzLnNsaWNlKGluZGV4QmVmb3JlRXhpdHMpKTtcblxuICAgICAgLy8gRGlzY2FyZCB0aGUgZHVwbGljYXRlIGV4aXRzLlxuICAgICAgc2VsZi5ldmVudHMubGVuZ3RoID0gaW5kZXg7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzaXplXG4gICAqICAgU2l6ZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gZXhpdENvbnRhaW5lcnMoc2l6ZSkge1xuICAgIGxldCBpbmRleCA9IHN0YWNrLmxlbmd0aDtcblxuICAgIC8vIEV4aXQgb3BlbiBjb250YWluZXJzLlxuICAgIHdoaWxlIChpbmRleC0tID4gc2l6ZSkge1xuICAgICAgY29uc3QgZW50cnkgPSBzdGFja1tpbmRleF07XG4gICAgICBzZWxmLmNvbnRhaW5lclN0YXRlID0gZW50cnlbMV07XG4gICAgICBlbnRyeVswXS5leGl0LmNhbGwoc2VsZiwgZWZmZWN0cyk7XG4gICAgfVxuICAgIHN0YWNrLmxlbmd0aCA9IHNpemU7XG4gIH1cbiAgZnVuY3Rpb24gY2xvc2VGbG93KCkge1xuICAgIGNoaWxkRmxvdy53cml0ZShbbnVsbF0pO1xuICAgIGNoaWxkVG9rZW4gPSB1bmRlZmluZWQ7XG4gICAgY2hpbGRGbG93ID0gdW5kZWZpbmVkO1xuICAgIHNlbGYuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdyA9IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIENvbnRleHQuXG4gKiBAdHlwZSB7VG9rZW5pemVyfVxuICogICBUb2tlbml6ZXIuXG4gKi9cbmZ1bmN0aW9uIHRva2VuaXplQ29udGFpbmVyKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgLy8gQWx3YXlzIHBvcHVsYXRlZCBieSBkZWZhdWx0cy5cblxuICByZXR1cm4gZmFjdG9yeVNwYWNlKGVmZmVjdHMsIGVmZmVjdHMuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRvY3VtZW50LCBvaywgbm9rKSwgXCJsaW5lUHJlZml4XCIsIHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCdjb2RlSW5kZW50ZWQnKSA/IHVuZGVmaW5lZCA6IDQpO1xufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBJbml0aWFsQ29uc3RydWN0LFxuICogICBJbml0aWFsaXplcixcbiAqICAgU3RhdGUsXG4gKiAgIFRva2VuaXplQ29udGV4dFxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG5pbXBvcnQgeyBibGFua0xpbmUsIGNvbnRlbnQgfSBmcm9tICdtaWNyb21hcmstY29yZS1jb21tb25tYXJrJztcbmltcG9ydCB7IGZhY3RvcnlTcGFjZSB9IGZyb20gJ21pY3JvbWFyay1mYWN0b3J5LXNwYWNlJztcbmltcG9ydCB7IG1hcmtkb3duTGluZUVuZGluZyB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcic7XG4vKiogQHR5cGUge0luaXRpYWxDb25zdHJ1Y3R9ICovXG5leHBvcnQgY29uc3QgZmxvdyA9IHtcbiAgdG9rZW5pemU6IGluaXRpYWxpemVGbG93XG59O1xuXG4vKipcbiAqIEB0aGlzIHtUb2tlbml6ZUNvbnRleHR9XG4gKiAgIFNlbGYuXG4gKiBAdHlwZSB7SW5pdGlhbGl6ZXJ9XG4gKiAgIEluaXRpYWxpemVyLlxuICovXG5mdW5jdGlvbiBpbml0aWFsaXplRmxvdyhlZmZlY3RzKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICBjb25zdCBpbml0aWFsID0gZWZmZWN0cy5hdHRlbXB0KFxuICAvLyBUcnkgdG8gcGFyc2UgYSBibGFuayBsaW5lLlxuICBibGFua0xpbmUsIGF0QmxhbmtFbmRpbmcsXG4gIC8vIFRyeSB0byBwYXJzZSBpbml0aWFsIGZsb3cgKGVzc2VudGlhbGx5LCBvbmx5IGNvZGUpLlxuICBlZmZlY3RzLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93SW5pdGlhbCwgYWZ0ZXJDb25zdHJ1Y3QsIGZhY3RvcnlTcGFjZShlZmZlY3RzLCBlZmZlY3RzLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93LCBhZnRlckNvbnN0cnVjdCwgZWZmZWN0cy5hdHRlbXB0KGNvbnRlbnQsIGFmdGVyQ29uc3RydWN0KSksIFwibGluZVByZWZpeFwiKSkpO1xuICByZXR1cm4gaW5pdGlhbDtcblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBmdW5jdGlvbiBhdEJsYW5rRW5kaW5nKGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlZmZlY3RzLmVudGVyKFwibGluZUVuZGluZ0JsYW5rXCIpO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICBlZmZlY3RzLmV4aXQoXCJsaW5lRW5kaW5nQmxhbmtcIik7XG4gICAgc2VsZi5jdXJyZW50Q29uc3RydWN0ID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiBpbml0aWFsO1xuICB9XG5cbiAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgZnVuY3Rpb24gYWZ0ZXJDb25zdHJ1Y3QoY29kZSkge1xuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVmZmVjdHMuZW50ZXIoXCJsaW5lRW5kaW5nXCIpO1xuICAgIGVmZmVjdHMuY29uc3VtZShjb2RlKTtcbiAgICBlZmZlY3RzLmV4aXQoXCJsaW5lRW5kaW5nXCIpO1xuICAgIHNlbGYuY3VycmVudENvbnN0cnVjdCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gaW5pdGlhbDtcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb2RlLFxuICogICBJbml0aWFsQ29uc3RydWN0LFxuICogICBJbml0aWFsaXplcixcbiAqICAgUmVzb2x2ZXIsXG4gKiAgIFN0YXRlLFxuICogICBUb2tlbml6ZUNvbnRleHRcbiAqIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVyID0ge1xuICByZXNvbHZlQWxsOiBjcmVhdGVSZXNvbHZlcigpXG59O1xuZXhwb3J0IGNvbnN0IHN0cmluZyA9IGluaXRpYWxpemVGYWN0b3J5KCdzdHJpbmcnKTtcbmV4cG9ydCBjb25zdCB0ZXh0ID0gaW5pdGlhbGl6ZUZhY3RvcnkoJ3RleHQnKTtcblxuLyoqXG4gKiBAcGFyYW0geydzdHJpbmcnIHwgJ3RleHQnfSBmaWVsZFxuICogICBGaWVsZC5cbiAqIEByZXR1cm5zIHtJbml0aWFsQ29uc3RydWN0fVxuICogICBDb25zdHJ1Y3QuXG4gKi9cbmZ1bmN0aW9uIGluaXRpYWxpemVGYWN0b3J5KGZpZWxkKSB7XG4gIHJldHVybiB7XG4gICAgcmVzb2x2ZUFsbDogY3JlYXRlUmVzb2x2ZXIoZmllbGQgPT09ICd0ZXh0JyA/IHJlc29sdmVBbGxMaW5lU3VmZml4ZXMgOiB1bmRlZmluZWQpLFxuICAgIHRva2VuaXplOiBpbml0aWFsaXplVGV4dFxuICB9O1xuXG4gIC8qKlxuICAgKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICAgKiAgIENvbnRleHQuXG4gICAqIEB0eXBlIHtJbml0aWFsaXplcn1cbiAgICovXG4gIGZ1bmN0aW9uIGluaXRpYWxpemVUZXh0KGVmZmVjdHMpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb25zdCBjb25zdHJ1Y3RzID0gdGhpcy5wYXJzZXIuY29uc3RydWN0c1tmaWVsZF07XG4gICAgY29uc3QgdGV4dCA9IGVmZmVjdHMuYXR0ZW1wdChjb25zdHJ1Y3RzLCBzdGFydCwgbm90VGV4dCk7XG4gICAgcmV0dXJuIHN0YXJ0O1xuXG4gICAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgICByZXR1cm4gYXRCcmVhayhjb2RlKSA/IHRleHQoY29kZSkgOiBub3RUZXh0KGNvZGUpO1xuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gICAgZnVuY3Rpb24gbm90VGV4dChjb2RlKSB7XG4gICAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGVmZmVjdHMuZW50ZXIoXCJkYXRhXCIpO1xuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgICBmdW5jdGlvbiBkYXRhKGNvZGUpIHtcbiAgICAgIGlmIChhdEJyZWFrKGNvZGUpKSB7XG4gICAgICAgIGVmZmVjdHMuZXhpdChcImRhdGFcIik7XG4gICAgICAgIHJldHVybiB0ZXh0KGNvZGUpO1xuICAgICAgfVxuXG4gICAgICAvLyBEYXRhLlxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpO1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtDb2RlfSBjb2RlXG4gICAgICogICBDb2RlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqICAgV2hldGhlciB0aGUgY29kZSBpcyBhIGJyZWFrLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGF0QnJlYWsoY29kZSkge1xuICAgICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBjb25zdCBsaXN0ID0gY29uc3RydWN0c1tjb2RlXTtcbiAgICAgIGxldCBpbmRleCA9IC0xO1xuICAgICAgaWYgKGxpc3QpIHtcbiAgICAgICAgLy8gQWx3YXlzIHBvcHVsYXRlZCBieSBkZWZhdWx0cy5cblxuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IGxpc3RbaW5kZXhdO1xuICAgICAgICAgIGlmICghaXRlbS5wcmV2aW91cyB8fCBpdGVtLnByZXZpb3VzLmNhbGwoc2VsZiwgc2VsZi5wcmV2aW91cykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVzb2x2ZXIgfCB1bmRlZmluZWR9IFtleHRyYVJlc29sdmVyXVxuICogICBSZXNvbHZlci5cbiAqIEByZXR1cm5zIHtSZXNvbHZlcn1cbiAqICAgUmVzb2x2ZXIuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVJlc29sdmVyKGV4dHJhUmVzb2x2ZXIpIHtcbiAgcmV0dXJuIHJlc29sdmVBbGxUZXh0O1xuXG4gIC8qKiBAdHlwZSB7UmVzb2x2ZXJ9ICovXG4gIGZ1bmN0aW9uIHJlc29sdmVBbGxUZXh0KGV2ZW50cywgY29udGV4dCkge1xuICAgIGxldCBpbmRleCA9IC0xO1xuICAgIC8qKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICAgIGxldCBlbnRlcjtcblxuICAgIC8vIEEgcmF0aGVyIGJvcmluZyBjb21wdXRhdGlvbiAodG8gbWVyZ2UgYWRqYWNlbnQgYGRhdGFgIGV2ZW50cykgd2hpY2hcbiAgICAvLyBpbXByb3ZlcyBtbSBwZXJmb3JtYW5jZSBieSAyOSUuXG4gICAgd2hpbGUgKCsraW5kZXggPD0gZXZlbnRzLmxlbmd0aCkge1xuICAgICAgaWYgKGVudGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGV2ZW50c1tpbmRleF0gJiYgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSBcImRhdGFcIikge1xuICAgICAgICAgIGVudGVyID0gaW5kZXg7XG4gICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghZXZlbnRzW2luZGV4XSB8fCBldmVudHNbaW5kZXhdWzFdLnR5cGUgIT09IFwiZGF0YVwiKSB7XG4gICAgICAgIC8vIERvblx1MjAxOXQgZG8gYW55dGhpbmcgaWYgdGhlcmUgaXMgb25lIGRhdGEgdG9rZW4uXG4gICAgICAgIGlmIChpbmRleCAhPT0gZW50ZXIgKyAyKSB7XG4gICAgICAgICAgZXZlbnRzW2VudGVyXVsxXS5lbmQgPSBldmVudHNbaW5kZXggLSAxXVsxXS5lbmQ7XG4gICAgICAgICAgZXZlbnRzLnNwbGljZShlbnRlciArIDIsIGluZGV4IC0gZW50ZXIgLSAyKTtcbiAgICAgICAgICBpbmRleCA9IGVudGVyICsgMjtcbiAgICAgICAgfVxuICAgICAgICBlbnRlciA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV4dHJhUmVzb2x2ZXIgPyBleHRyYVJlc29sdmVyKGV2ZW50cywgY29udGV4dCkgOiBldmVudHM7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHJhdGhlciB1Z2x5IHNldCBvZiBpbnN0cnVjdGlvbnMgd2hpY2ggYWdhaW4gbG9va3MgYXQgY2h1bmtzIGluIHRoZSBpbnB1dFxuICogc3RyZWFtLlxuICogVGhlIHJlYXNvbiB0byBkbyB0aGlzIGhlcmUgaXMgdGhhdCBpdCBpcyAqbXVjaCogZmFzdGVyIHRvIHBhcnNlIGluIHJldmVyc2UuXG4gKiBBbmQgdGhhdCB3ZSBjYW5cdTIwMTl0IGhvb2sgaW50byBgbnVsbGAgdG8gc3BsaXQgdGhlIGxpbmUgc3VmZml4IGJlZm9yZSBhbiBFT0YuXG4gKiBUbyBkbzogZmlndXJlIG91dCBpZiB3ZSBjYW4gbWFrZSB0aGlzIGludG8gYSBjbGVhbiB1dGlsaXR5LCBvciBldmVuIGluIGNvcmUuXG4gKiBBcyBpdCB3aWxsIGJlIHVzZWZ1bCBmb3IgR0ZNcyBsaXRlcmFsIGF1dG9saW5rIGV4dGVuc2lvbiAoYW5kIG1heWJlIGV2ZW5cbiAqIHRhYmxlcz8pXG4gKlxuICogQHR5cGUge1Jlc29sdmVyfVxuICovXG5mdW5jdGlvbiByZXNvbHZlQWxsTGluZVN1ZmZpeGVzKGV2ZW50cywgY29udGV4dCkge1xuICBsZXQgZXZlbnRJbmRleCA9IDA7IC8vIFNraXAgZmlyc3QuXG5cbiAgd2hpbGUgKCsrZXZlbnRJbmRleCA8PSBldmVudHMubGVuZ3RoKSB7XG4gICAgaWYgKChldmVudEluZGV4ID09PSBldmVudHMubGVuZ3RoIHx8IGV2ZW50c1tldmVudEluZGV4XVsxXS50eXBlID09PSBcImxpbmVFbmRpbmdcIikgJiYgZXZlbnRzW2V2ZW50SW5kZXggLSAxXVsxXS50eXBlID09PSBcImRhdGFcIikge1xuICAgICAgY29uc3QgZGF0YSA9IGV2ZW50c1tldmVudEluZGV4IC0gMV1bMV07XG4gICAgICBjb25zdCBjaHVua3MgPSBjb250ZXh0LnNsaWNlU3RyZWFtKGRhdGEpO1xuICAgICAgbGV0IGluZGV4ID0gY2h1bmtzLmxlbmd0aDtcbiAgICAgIGxldCBidWZmZXJJbmRleCA9IC0xO1xuICAgICAgbGV0IHNpemUgPSAwO1xuICAgICAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICAgICAgbGV0IHRhYnM7XG4gICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICBjb25zdCBjaHVuayA9IGNodW5rc1tpbmRleF07XG4gICAgICAgIGlmICh0eXBlb2YgY2h1bmsgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgYnVmZmVySW5kZXggPSBjaHVuay5sZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKGNodW5rLmNoYXJDb2RlQXQoYnVmZmVySW5kZXggLSAxKSA9PT0gMzIpIHtcbiAgICAgICAgICAgIHNpemUrKztcbiAgICAgICAgICAgIGJ1ZmZlckluZGV4LS07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChidWZmZXJJbmRleCkgYnJlYWs7XG4gICAgICAgICAgYnVmZmVySW5kZXggPSAtMTtcbiAgICAgICAgfVxuICAgICAgICAvLyBOdW1iZXJcbiAgICAgICAgZWxzZSBpZiAoY2h1bmsgPT09IC0yKSB7XG4gICAgICAgICAgdGFicyA9IHRydWU7XG4gICAgICAgICAgc2l6ZSsrO1xuICAgICAgICB9IGVsc2UgaWYgKGNodW5rID09PSAtMSkge1xuICAgICAgICAgIC8vIEVtcHR5XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gUmVwbGFjZW1lbnQgY2hhcmFjdGVyLCBleGl0LlxuICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQWxsb3cgZmluYWwgdHJhaWxpbmcgd2hpdGVzcGFjZS5cbiAgICAgIGlmIChjb250ZXh0Ll9jb250ZW50VHlwZVRleHRUcmFpbGluZyAmJiBldmVudEluZGV4ID09PSBldmVudHMubGVuZ3RoKSB7XG4gICAgICAgIHNpemUgPSAwO1xuICAgICAgfVxuICAgICAgaWYgKHNpemUpIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB7XG4gICAgICAgICAgdHlwZTogZXZlbnRJbmRleCA9PT0gZXZlbnRzLmxlbmd0aCB8fCB0YWJzIHx8IHNpemUgPCAyID8gXCJsaW5lU3VmZml4XCIgOiBcImhhcmRCcmVha1RyYWlsaW5nXCIsXG4gICAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICAgIF9idWZmZXJJbmRleDogaW5kZXggPyBidWZmZXJJbmRleCA6IGRhdGEuc3RhcnQuX2J1ZmZlckluZGV4ICsgYnVmZmVySW5kZXgsXG4gICAgICAgICAgICBfaW5kZXg6IGRhdGEuc3RhcnQuX2luZGV4ICsgaW5kZXgsXG4gICAgICAgICAgICBsaW5lOiBkYXRhLmVuZC5saW5lLFxuICAgICAgICAgICAgY29sdW1uOiBkYXRhLmVuZC5jb2x1bW4gLSBzaXplLFxuICAgICAgICAgICAgb2Zmc2V0OiBkYXRhLmVuZC5vZmZzZXQgLSBzaXplXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbmQ6IHtcbiAgICAgICAgICAgIC4uLmRhdGEuZW5kXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBkYXRhLmVuZCA9IHtcbiAgICAgICAgICAuLi50b2tlbi5zdGFydFxuICAgICAgICB9O1xuICAgICAgICBpZiAoZGF0YS5zdGFydC5vZmZzZXQgPT09IGRhdGEuZW5kLm9mZnNldCkge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YSwgdG9rZW4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV2ZW50cy5zcGxpY2UoZXZlbnRJbmRleCwgMCwgWydlbnRlcicsIHRva2VuLCBjb250ZXh0XSwgWydleGl0JywgdG9rZW4sIGNvbnRleHRdKTtcbiAgICAgICAgICBldmVudEluZGV4ICs9IDI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGV2ZW50SW5kZXgrKztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGV2ZW50cztcbn0iLCAiLyoqXG4gKiBAaW1wb3J0IHtFeHRlbnNpb259IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IGF0dGVudGlvbiwgYXV0b2xpbmssIGJsb2NrUXVvdGUsIGNoYXJhY3RlckVzY2FwZSwgY2hhcmFjdGVyUmVmZXJlbmNlLCBjb2RlRmVuY2VkLCBjb2RlSW5kZW50ZWQsIGNvZGVUZXh0LCBkZWZpbml0aW9uLCBoYXJkQnJlYWtFc2NhcGUsIGhlYWRpbmdBdHgsIGh0bWxGbG93LCBodG1sVGV4dCwgbGFiZWxFbmQsIGxhYmVsU3RhcnRJbWFnZSwgbGFiZWxTdGFydExpbmssIGxpbmVFbmRpbmcsIGxpc3QsIHNldGV4dFVuZGVybGluZSwgdGhlbWF0aWNCcmVhayB9IGZyb20gJ21pY3JvbWFyay1jb3JlLWNvbW1vbm1hcmsnO1xuaW1wb3J0IHsgcmVzb2x2ZXIgYXMgcmVzb2x2ZVRleHQgfSBmcm9tICcuL2luaXRpYWxpemUvdGV4dC5qcyc7XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ2RvY3VtZW50J119ICovXG5leHBvcnQgY29uc3QgZG9jdW1lbnQgPSB7XG4gIFs0Ml06IGxpc3QsXG4gIFs0M106IGxpc3QsXG4gIFs0NV06IGxpc3QsXG4gIFs0OF06IGxpc3QsXG4gIFs0OV06IGxpc3QsXG4gIFs1MF06IGxpc3QsXG4gIFs1MV06IGxpc3QsXG4gIFs1Ml06IGxpc3QsXG4gIFs1M106IGxpc3QsXG4gIFs1NF06IGxpc3QsXG4gIFs1NV06IGxpc3QsXG4gIFs1Nl06IGxpc3QsXG4gIFs1N106IGxpc3QsXG4gIFs2Ml06IGJsb2NrUXVvdGVcbn07XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ2NvbnRlbnRJbml0aWFsJ119ICovXG5leHBvcnQgY29uc3QgY29udGVudEluaXRpYWwgPSB7XG4gIFs5MV06IGRlZmluaXRpb25cbn07XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ2Zsb3dJbml0aWFsJ119ICovXG5leHBvcnQgY29uc3QgZmxvd0luaXRpYWwgPSB7XG4gIFstMl06IGNvZGVJbmRlbnRlZCxcbiAgWy0xXTogY29kZUluZGVudGVkLFxuICBbMzJdOiBjb2RlSW5kZW50ZWRcbn07XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ2Zsb3cnXX0gKi9cbmV4cG9ydCBjb25zdCBmbG93ID0ge1xuICBbMzVdOiBoZWFkaW5nQXR4LFxuICBbNDJdOiB0aGVtYXRpY0JyZWFrLFxuICBbNDVdOiBbc2V0ZXh0VW5kZXJsaW5lLCB0aGVtYXRpY0JyZWFrXSxcbiAgWzYwXTogaHRtbEZsb3csXG4gIFs2MV06IHNldGV4dFVuZGVybGluZSxcbiAgWzk1XTogdGhlbWF0aWNCcmVhayxcbiAgWzk2XTogY29kZUZlbmNlZCxcbiAgWzEyNl06IGNvZGVGZW5jZWRcbn07XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ3N0cmluZyddfSAqL1xuZXhwb3J0IGNvbnN0IHN0cmluZyA9IHtcbiAgWzM4XTogY2hhcmFjdGVyUmVmZXJlbmNlLFxuICBbOTJdOiBjaGFyYWN0ZXJFc2NhcGVcbn07XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ3RleHQnXX0gKi9cbmV4cG9ydCBjb25zdCB0ZXh0ID0ge1xuICBbLTVdOiBsaW5lRW5kaW5nLFxuICBbLTRdOiBsaW5lRW5kaW5nLFxuICBbLTNdOiBsaW5lRW5kaW5nLFxuICBbMzNdOiBsYWJlbFN0YXJ0SW1hZ2UsXG4gIFszOF06IGNoYXJhY3RlclJlZmVyZW5jZSxcbiAgWzQyXTogYXR0ZW50aW9uLFxuICBbNjBdOiBbYXV0b2xpbmssIGh0bWxUZXh0XSxcbiAgWzkxXTogbGFiZWxTdGFydExpbmssXG4gIFs5Ml06IFtoYXJkQnJlYWtFc2NhcGUsIGNoYXJhY3RlckVzY2FwZV0sXG4gIFs5M106IGxhYmVsRW5kLFxuICBbOTVdOiBhdHRlbnRpb24sXG4gIFs5Nl06IGNvZGVUZXh0XG59O1xuXG4vKiogQHNhdGlzZmllcyB7RXh0ZW5zaW9uWydpbnNpZGVTcGFuJ119ICovXG5leHBvcnQgY29uc3QgaW5zaWRlU3BhbiA9IHtcbiAgbnVsbDogW2F0dGVudGlvbiwgcmVzb2x2ZVRleHRdXG59O1xuXG4vKiogQHNhdGlzZmllcyB7RXh0ZW5zaW9uWydhdHRlbnRpb25NYXJrZXJzJ119ICovXG5leHBvcnQgY29uc3QgYXR0ZW50aW9uTWFya2VycyA9IHtcbiAgbnVsbDogWzQyLCA5NV1cbn07XG5cbi8qKiBAc2F0aXNmaWVzIHtFeHRlbnNpb25bJ2Rpc2FibGUnXX0gKi9cbmV4cG9ydCBjb25zdCBkaXNhYmxlID0ge1xuICBudWxsOiBbXVxufTsiLCAiLyoqXG4gKiBAaW1wb3J0IHtcbiAqICAgQ2h1bmssXG4gKiAgIENvZGUsXG4gKiAgIENvbnN0cnVjdFJlY29yZCxcbiAqICAgQ29uc3RydWN0LFxuICogICBFZmZlY3RzLFxuICogICBJbml0aWFsQ29uc3RydWN0LFxuICogICBQYXJzZUNvbnRleHQsXG4gKiAgIFBvaW50LFxuICogICBTdGF0ZSxcbiAqICAgVG9rZW5pemVDb250ZXh0LFxuICogICBUb2tlblxuICogfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBSZXN0b3JlXG4gKiAgIFJlc3RvcmUgdGhlIHN0YXRlLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqXG4gKiBAdHlwZWRlZiBJbmZvXG4gKiAgIEluZm8uXG4gKiBAcHJvcGVydHkge1Jlc3RvcmV9IHJlc3RvcmVcbiAqICAgUmVzdG9yZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBmcm9tXG4gKiAgIEZyb20uXG4gKlxuICogQGNhbGxiYWNrIFJldHVybkhhbmRsZVxuICogICBIYW5kbGUgYSBzdWNjZXNzZnVsIHJ1bi5cbiAqIEBwYXJhbSB7Q29uc3RydWN0fSBjb25zdHJ1Y3RcbiAqICAgQ29uc3RydWN0LlxuICogQHBhcmFtIHtJbmZvfSBpbmZvXG4gKiAgIEluZm8uXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5cbmltcG9ydCB7IG1hcmtkb3duTGluZUVuZGluZyB9IGZyb20gJ21pY3JvbWFyay11dGlsLWNoYXJhY3Rlcic7XG5pbXBvcnQgeyBwdXNoLCBzcGxpY2UgfSBmcm9tICdtaWNyb21hcmstdXRpbC1jaHVua2VkJztcbmltcG9ydCB7IHJlc29sdmVBbGwgfSBmcm9tICdtaWNyb21hcmstdXRpbC1yZXNvbHZlLWFsbCc7XG4vKipcbiAqIENyZWF0ZSBhIHRva2VuaXplci5cbiAqIFRva2VuaXplcnMgZGVhbCB3aXRoIG9uZSB0eXBlIG9mIGRhdGEgKGUuZy4sIGNvbnRhaW5lcnMsIGZsb3csIHRleHQpLlxuICogVGhlIHBhcnNlciBpcyB0aGUgb2JqZWN0IGRlYWxpbmcgd2l0aCBpdCBhbGwuXG4gKiBgaW5pdGlhbGl6ZWAgd29ya3MgbGlrZSBvdGhlciBjb25zdHJ1Y3RzLCBleGNlcHQgdGhhdCBvbmx5IGl0cyBgdG9rZW5pemVgXG4gKiBmdW5jdGlvbiBpcyB1c2VkLCBpbiB3aGljaCBjYXNlIGl0IGRvZXNuXHUyMDE5dCByZWNlaXZlIGFuIGBva2Agb3IgYG5va2AuXG4gKiBgZnJvbWAgY2FuIGJlIGdpdmVuIHRvIHNldCB0aGUgcG9pbnQgYmVmb3JlIHRoZSBmaXJzdCBjaGFyYWN0ZXIsIGFsdGhvdWdoXG4gKiB3aGVuIGZ1cnRoZXIgbGluZXMgYXJlIGluZGVudGVkLCB0aGV5IG11c3QgYmUgc2V0IHdpdGggYGRlZmluZVNraXBgLlxuICpcbiAqIEBwYXJhbSB7UGFyc2VDb250ZXh0fSBwYXJzZXJcbiAqICAgUGFyc2VyLlxuICogQHBhcmFtIHtJbml0aWFsQ29uc3RydWN0fSBpbml0aWFsaXplXG4gKiAgIENvbnN0cnVjdC5cbiAqIEBwYXJhbSB7T21pdDxQb2ludCwgJ19idWZmZXJJbmRleCcgfCAnX2luZGV4Jz4gfCB1bmRlZmluZWR9IFtmcm9tXVxuICogICBQb2ludCAob3B0aW9uYWwpLlxuICogQHJldHVybnMge1Rva2VuaXplQ29udGV4dH1cbiAqICAgQ29udGV4dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRva2VuaXplcihwYXJzZXIsIGluaXRpYWxpemUsIGZyb20pIHtcbiAgLyoqIEB0eXBlIHtQb2ludH0gKi9cbiAgbGV0IHBvaW50ID0ge1xuICAgIF9idWZmZXJJbmRleDogLTEsXG4gICAgX2luZGV4OiAwLFxuICAgIGxpbmU6IGZyb20gJiYgZnJvbS5saW5lIHx8IDEsXG4gICAgY29sdW1uOiBmcm9tICYmIGZyb20uY29sdW1uIHx8IDEsXG4gICAgb2Zmc2V0OiBmcm9tICYmIGZyb20ub2Zmc2V0IHx8IDBcbiAgfTtcbiAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBudW1iZXI+fSAqL1xuICBjb25zdCBjb2x1bW5TdGFydCA9IHt9O1xuICAvKiogQHR5cGUge0FycmF5PENvbnN0cnVjdD59ICovXG4gIGNvbnN0IHJlc29sdmVBbGxDb25zdHJ1Y3RzID0gW107XG4gIC8qKiBAdHlwZSB7QXJyYXk8Q2h1bms+fSAqL1xuICBsZXQgY2h1bmtzID0gW107XG4gIC8qKiBAdHlwZSB7QXJyYXk8VG9rZW4+fSAqL1xuICBsZXQgc3RhY2sgPSBbXTtcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgY29uc3VtZWQgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUb29scyB1c2VkIGZvciB0b2tlbml6aW5nLlxuICAgKlxuICAgKiBAdHlwZSB7RWZmZWN0c31cbiAgICovXG4gIGNvbnN0IGVmZmVjdHMgPSB7XG4gICAgYXR0ZW1wdDogY29uc3RydWN0RmFjdG9yeShvbnN1Y2Nlc3NmdWxjb25zdHJ1Y3QpLFxuICAgIGNoZWNrOiBjb25zdHJ1Y3RGYWN0b3J5KG9uc3VjY2Vzc2Z1bGNoZWNrKSxcbiAgICBjb25zdW1lLFxuICAgIGVudGVyLFxuICAgIGV4aXQsXG4gICAgaW50ZXJydXB0OiBjb25zdHJ1Y3RGYWN0b3J5KG9uc3VjY2Vzc2Z1bGNoZWNrLCB7XG4gICAgICBpbnRlcnJ1cHQ6IHRydWVcbiAgICB9KVxuICB9O1xuXG4gIC8qKlxuICAgKiBTdGF0ZSBhbmQgdG9vbHMgZm9yIHJlc29sdmluZyBhbmQgc2VyaWFsaXppbmcuXG4gICAqXG4gICAqIEB0eXBlIHtUb2tlbml6ZUNvbnRleHR9XG4gICAqL1xuICBjb25zdCBjb250ZXh0ID0ge1xuICAgIGNvZGU6IG51bGwsXG4gICAgY29udGFpbmVyU3RhdGU6IHt9LFxuICAgIGRlZmluZVNraXAsXG4gICAgZXZlbnRzOiBbXSxcbiAgICBub3csXG4gICAgcGFyc2VyLFxuICAgIHByZXZpb3VzOiBudWxsLFxuICAgIHNsaWNlU2VyaWFsaXplLFxuICAgIHNsaWNlU3RyZWFtLFxuICAgIHdyaXRlXG4gIH07XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHR5cGUge1N0YXRlIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgbGV0IHN0YXRlID0gaW5pdGlhbGl6ZS50b2tlbml6ZS5jYWxsKGNvbnRleHQsIGVmZmVjdHMpO1xuXG4gIC8qKlxuICAgKiBUcmFjayB3aGljaCBjaGFyYWN0ZXIgd2UgZXhwZWN0IHRvIGJlIGNvbnN1bWVkLCB0byBjYXRjaCBidWdzLlxuICAgKlxuICAgKiBAdHlwZSB7Q29kZX1cbiAgICovXG4gIGxldCBleHBlY3RlZENvZGU7XG4gIGlmIChpbml0aWFsaXplLnJlc29sdmVBbGwpIHtcbiAgICByZXNvbHZlQWxsQ29uc3RydWN0cy5wdXNoKGluaXRpYWxpemUpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xuXG4gIC8qKiBAdHlwZSB7VG9rZW5pemVDb250ZXh0Wyd3cml0ZSddfSAqL1xuICBmdW5jdGlvbiB3cml0ZShzbGljZSkge1xuICAgIGNodW5rcyA9IHB1c2goY2h1bmtzLCBzbGljZSk7XG4gICAgbWFpbigpO1xuXG4gICAgLy8gRXhpdCBpZiB3ZVx1MjAxOXJlIG5vdCBkb25lLCByZXNvbHZlIG1pZ2h0IGNoYW5nZSBzdHVmZi5cbiAgICBpZiAoY2h1bmtzW2NodW5rcy5sZW5ndGggLSAxXSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBhZGRSZXN1bHQoaW5pdGlhbGl6ZSwgMCk7XG5cbiAgICAvLyBPdGhlcndpc2UsIHJlc29sdmUsIGFuZCBleGl0LlxuICAgIGNvbnRleHQuZXZlbnRzID0gcmVzb2x2ZUFsbChyZXNvbHZlQWxsQ29uc3RydWN0cywgY29udGV4dC5ldmVudHMsIGNvbnRleHQpO1xuICAgIHJldHVybiBjb250ZXh0LmV2ZW50cztcbiAgfVxuXG4gIC8vXG4gIC8vIFRvb2xzLlxuICAvL1xuXG4gIC8qKiBAdHlwZSB7VG9rZW5pemVDb250ZXh0WydzbGljZVNlcmlhbGl6ZSddfSAqL1xuICBmdW5jdGlvbiBzbGljZVNlcmlhbGl6ZSh0b2tlbiwgZXhwYW5kVGFicykge1xuICAgIHJldHVybiBzZXJpYWxpemVDaHVua3Moc2xpY2VTdHJlYW0odG9rZW4pLCBleHBhbmRUYWJzKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7VG9rZW5pemVDb250ZXh0WydzbGljZVN0cmVhbSddfSAqL1xuICBmdW5jdGlvbiBzbGljZVN0cmVhbSh0b2tlbikge1xuICAgIHJldHVybiBzbGljZUNodW5rcyhjaHVua3MsIHRva2VuKTtcbiAgfVxuXG4gIC8qKiBAdHlwZSB7VG9rZW5pemVDb250ZXh0Wydub3cnXX0gKi9cbiAgZnVuY3Rpb24gbm93KCkge1xuICAgIC8vIFRoaXMgaXMgYSBob3QgcGF0aCwgc28gd2UgY2xvbmUgbWFudWFsbHkgaW5zdGVhZCBvZiBgT2JqZWN0LmFzc2lnbih7fSwgcG9pbnQpYFxuICAgIGNvbnN0IHtcbiAgICAgIF9idWZmZXJJbmRleCxcbiAgICAgIF9pbmRleCxcbiAgICAgIGxpbmUsXG4gICAgICBjb2x1bW4sXG4gICAgICBvZmZzZXRcbiAgICB9ID0gcG9pbnQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIF9idWZmZXJJbmRleCxcbiAgICAgIF9pbmRleCxcbiAgICAgIGxpbmUsXG4gICAgICBjb2x1bW4sXG4gICAgICBvZmZzZXRcbiAgICB9O1xuICB9XG5cbiAgLyoqIEB0eXBlIHtUb2tlbml6ZUNvbnRleHRbJ2RlZmluZVNraXAnXX0gKi9cbiAgZnVuY3Rpb24gZGVmaW5lU2tpcCh2YWx1ZSkge1xuICAgIGNvbHVtblN0YXJ0W3ZhbHVlLmxpbmVdID0gdmFsdWUuY29sdW1uO1xuICAgIGFjY291bnRGb3JQb3RlbnRpYWxTa2lwKCk7XG4gIH1cblxuICAvL1xuICAvLyBTdGF0ZSBtYW5hZ2VtZW50LlxuICAvL1xuXG4gIC8qKlxuICAgKiBNYWluIGxvb3AgKG5vdGUgdGhhdCBgX2luZGV4YCBhbmQgYF9idWZmZXJJbmRleGAgaW4gYHBvaW50YCBhcmUgbW9kaWZpZWQgYnlcbiAgICogYGNvbnN1bWVgKS5cbiAgICogSGVyZSBpcyB3aGVyZSB3ZSB3YWxrIHRocm91Z2ggdGhlIGNodW5rcywgd2hpY2ggZWl0aGVyIGluY2x1ZGUgc3RyaW5ncyBvZlxuICAgKiBzZXZlcmFsIGNoYXJhY3RlcnMsIG9yIG51bWVyaWNhbCBjaGFyYWN0ZXIgY29kZXMuXG4gICAqIFRoZSByZWFzb24gdG8gZG8gdGhpcyBpbiBhIGxvb3AgaW5zdGVhZCBvZiBhIGNhbGwgaXMgc28gdGhlIHN0YWNrIGNhblxuICAgKiBkcmFpbi5cbiAgICpcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gbWFpbigpIHtcbiAgICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgICBsZXQgY2h1bmtJbmRleDtcbiAgICB3aGlsZSAocG9pbnQuX2luZGV4IDwgY2h1bmtzLmxlbmd0aCkge1xuICAgICAgY29uc3QgY2h1bmsgPSBjaHVua3NbcG9pbnQuX2luZGV4XTtcblxuICAgICAgLy8gSWYgd2VcdTIwMTlyZSBpbiBhIGJ1ZmZlciBjaHVuaywgbG9vcCB0aHJvdWdoIGl0LlxuICAgICAgaWYgKHR5cGVvZiBjaHVuayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY2h1bmtJbmRleCA9IHBvaW50Ll9pbmRleDtcbiAgICAgICAgaWYgKHBvaW50Ll9idWZmZXJJbmRleCA8IDApIHtcbiAgICAgICAgICBwb2ludC5fYnVmZmVySW5kZXggPSAwO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChwb2ludC5faW5kZXggPT09IGNodW5rSW5kZXggJiYgcG9pbnQuX2J1ZmZlckluZGV4IDwgY2h1bmsubGVuZ3RoKSB7XG4gICAgICAgICAgZ28oY2h1bmsuY2hhckNvZGVBdChwb2ludC5fYnVmZmVySW5kZXgpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ28oY2h1bmspO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWFsIHdpdGggb25lIGNvZGUuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29kZX0gY29kZVxuICAgKiAgIENvZGUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIGdvKGNvZGUpIHtcbiAgICBjb25zdW1lZCA9IHVuZGVmaW5lZDtcbiAgICBleHBlY3RlZENvZGUgPSBjb2RlO1xuICAgIHN0YXRlID0gc3RhdGUoY29kZSk7XG4gIH1cblxuICAvKiogQHR5cGUge0VmZmVjdHNbJ2NvbnN1bWUnXX0gKi9cbiAgZnVuY3Rpb24gY29uc3VtZShjb2RlKSB7XG4gICAgaWYgKG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgcG9pbnQubGluZSsrO1xuICAgICAgcG9pbnQuY29sdW1uID0gMTtcbiAgICAgIHBvaW50Lm9mZnNldCArPSBjb2RlID09PSAtMyA/IDIgOiAxO1xuICAgICAgYWNjb3VudEZvclBvdGVudGlhbFNraXAoKTtcbiAgICB9IGVsc2UgaWYgKGNvZGUgIT09IC0xKSB7XG4gICAgICBwb2ludC5jb2x1bW4rKztcbiAgICAgIHBvaW50Lm9mZnNldCsrO1xuICAgIH1cblxuICAgIC8vIE5vdCBpbiBhIHN0cmluZyBjaHVuay5cbiAgICBpZiAocG9pbnQuX2J1ZmZlckluZGV4IDwgMCkge1xuICAgICAgcG9pbnQuX2luZGV4Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvaW50Ll9idWZmZXJJbmRleCsrO1xuXG4gICAgICAvLyBBdCBlbmQgb2Ygc3RyaW5nIGNodW5rLlxuICAgICAgaWYgKHBvaW50Ll9idWZmZXJJbmRleCA9PT1cbiAgICAgIC8vIFBvaW50cyB3LyBub24tbmVnYXRpdmUgYF9idWZmZXJJbmRleGAgcmVmZXJlbmNlXG4gICAgICAvLyBzdHJpbmdzLlxuICAgICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgICBjaHVua3NbcG9pbnQuX2luZGV4XS5sZW5ndGgpIHtcbiAgICAgICAgcG9pbnQuX2J1ZmZlckluZGV4ID0gLTE7XG4gICAgICAgIHBvaW50Ll9pbmRleCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cG9zZSB0aGUgcHJldmlvdXMgY2hhcmFjdGVyLlxuICAgIGNvbnRleHQucHJldmlvdXMgPSBjb2RlO1xuXG4gICAgLy8gTWFyayBhcyBjb25zdW1lZC5cbiAgICBjb25zdW1lZCA9IHRydWU7XG4gIH1cblxuICAvKiogQHR5cGUge0VmZmVjdHNbJ2VudGVyJ119ICovXG4gIGZ1bmN0aW9uIGVudGVyKHR5cGUsIGZpZWxkcykge1xuICAgIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBQYXRjaCBpbnN0ZWFkIG9mIGFzc2lnbiByZXF1aXJlZCBmaWVsZHMgdG8gaGVscCBHQy5cbiAgICBjb25zdCB0b2tlbiA9IGZpZWxkcyB8fCB7fTtcbiAgICB0b2tlbi50eXBlID0gdHlwZTtcbiAgICB0b2tlbi5zdGFydCA9IG5vdygpO1xuICAgIGNvbnRleHQuZXZlbnRzLnB1c2goWydlbnRlcicsIHRva2VuLCBjb250ZXh0XSk7XG4gICAgc3RhY2sucHVzaCh0b2tlbik7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgLyoqIEB0eXBlIHtFZmZlY3RzWydleGl0J119ICovXG4gIGZ1bmN0aW9uIGV4aXQodHlwZSkge1xuICAgIGNvbnN0IHRva2VuID0gc3RhY2sucG9wKCk7XG4gICAgdG9rZW4uZW5kID0gbm93KCk7XG4gICAgY29udGV4dC5ldmVudHMucHVzaChbJ2V4aXQnLCB0b2tlbiwgY29udGV4dF0pO1xuICAgIHJldHVybiB0b2tlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgcmVzdWx0cy5cbiAgICpcbiAgICogQHR5cGUge1JldHVybkhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uc3VjY2Vzc2Z1bGNvbnN0cnVjdChjb25zdHJ1Y3QsIGluZm8pIHtcbiAgICBhZGRSZXN1bHQoY29uc3RydWN0LCBpbmZvLmZyb20pO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2NhcmQgcmVzdWx0cy5cbiAgICpcbiAgICogQHR5cGUge1JldHVybkhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uc3VjY2Vzc2Z1bGNoZWNrKF8sIGluZm8pIHtcbiAgICBpbmZvLnJlc3RvcmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWN0b3J5IHRvIGF0dGVtcHQvY2hlY2svaW50ZXJydXB0LlxuICAgKlxuICAgKiBAcGFyYW0ge1JldHVybkhhbmRsZX0gb25yZXR1cm5cbiAgICogICBDYWxsYmFjay5cbiAgICogQHBhcmFtIHt7aW50ZXJydXB0PzogYm9vbGVhbiB8IHVuZGVmaW5lZH0gfCB1bmRlZmluZWR9IFtmaWVsZHNdXG4gICAqICAgRmllbGRzLlxuICAgKi9cbiAgZnVuY3Rpb24gY29uc3RydWN0RmFjdG9yeShvbnJldHVybiwgZmllbGRzKSB7XG4gICAgcmV0dXJuIGhvb2s7XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgZWl0aGVyIGFuIG9iamVjdCBtYXBwaW5nIGNvZGVzIHRvIGNvbnN0cnVjdHMsIGEgbGlzdCBvZlxuICAgICAqIGNvbnN0cnVjdHMsIG9yIGEgc2luZ2xlIGNvbnN0cnVjdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7QXJyYXk8Q29uc3RydWN0PiB8IENvbnN0cnVjdFJlY29yZCB8IENvbnN0cnVjdH0gY29uc3RydWN0c1xuICAgICAqICAgQ29uc3RydWN0cy5cbiAgICAgKiBAcGFyYW0ge1N0YXRlfSByZXR1cm5TdGF0ZVxuICAgICAqICAgU3RhdGUuXG4gICAgICogQHBhcmFtIHtTdGF0ZSB8IHVuZGVmaW5lZH0gW2JvZ3VzU3RhdGVdXG4gICAgICogICBTdGF0ZS5cbiAgICAgKiBAcmV0dXJucyB7U3RhdGV9XG4gICAgICogICBTdGF0ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBob29rKGNvbnN0cnVjdHMsIHJldHVyblN0YXRlLCBib2d1c1N0YXRlKSB7XG4gICAgICAvKiogQHR5cGUge1JlYWRvbmx5QXJyYXk8Q29uc3RydWN0Pn0gKi9cbiAgICAgIGxldCBsaXN0T2ZDb25zdHJ1Y3RzO1xuICAgICAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gICAgICBsZXQgY29uc3RydWN0SW5kZXg7XG4gICAgICAvKiogQHR5cGUge0NvbnN0cnVjdH0gKi9cbiAgICAgIGxldCBjdXJyZW50Q29uc3RydWN0O1xuICAgICAgLyoqIEB0eXBlIHtJbmZvfSAqL1xuICAgICAgbGV0IGluZm87XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjb25zdHJ1Y3RzKSA/IC8qIGM4IGlnbm9yZSBuZXh0IDEgKi9cbiAgICAgIGhhbmRsZUxpc3RPZkNvbnN0cnVjdHMoY29uc3RydWN0cykgOiAndG9rZW5pemUnIGluIGNvbnN0cnVjdHMgP1xuICAgICAgLy8gTG9va3MgbGlrZSBhIGNvbnN0cnVjdC5cbiAgICAgIGhhbmRsZUxpc3RPZkNvbnN0cnVjdHMoWygvKiogQHR5cGUge0NvbnN0cnVjdH0gKi9jb25zdHJ1Y3RzKV0pIDogaGFuZGxlTWFwT2ZDb25zdHJ1Y3RzKGNvbnN0cnVjdHMpO1xuXG4gICAgICAvKipcbiAgICAgICAqIEhhbmRsZSBhIGxpc3Qgb2YgY29uc3RydWN0LlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSB7Q29uc3RydWN0UmVjb3JkfSBtYXBcbiAgICAgICAqICAgQ29uc3RydWN0cy5cbiAgICAgICAqIEByZXR1cm5zIHtTdGF0ZX1cbiAgICAgICAqICAgU3RhdGUuXG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZU1hcE9mQ29uc3RydWN0cyhtYXApIHtcbiAgICAgICAgcmV0dXJuIHN0YXJ0O1xuXG4gICAgICAgIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gICAgICAgIGZ1bmN0aW9uIHN0YXJ0KGNvZGUpIHtcbiAgICAgICAgICBjb25zdCBsZWZ0ID0gY29kZSAhPT0gbnVsbCAmJiBtYXBbY29kZV07XG4gICAgICAgICAgY29uc3QgYWxsID0gY29kZSAhPT0gbnVsbCAmJiBtYXAubnVsbDtcbiAgICAgICAgICBjb25zdCBsaXN0ID0gW1xuICAgICAgICAgIC8vIFRvIGRvOiBhZGQgbW9yZSBleHRlbnNpb24gdGVzdHMuXG4gICAgICAgICAgLyogYzggaWdub3JlIG5leHQgMiAqL1xuICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KGxlZnQpID8gbGVmdCA6IGxlZnQgPyBbbGVmdF0gOiBbXSksIC4uLihBcnJheS5pc0FycmF5KGFsbCkgPyBhbGwgOiBhbGwgPyBbYWxsXSA6IFtdKV07XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZUxpc3RPZkNvbnN0cnVjdHMobGlzdCkoY29kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBIYW5kbGUgYSBsaXN0IG9mIGNvbnN0cnVjdC5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0ge1JlYWRvbmx5QXJyYXk8Q29uc3RydWN0Pn0gbGlzdFxuICAgICAgICogICBDb25zdHJ1Y3RzLlxuICAgICAgICogQHJldHVybnMge1N0YXRlfVxuICAgICAgICogICBTdGF0ZS5cbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gaGFuZGxlTGlzdE9mQ29uc3RydWN0cyhsaXN0KSB7XG4gICAgICAgIGxpc3RPZkNvbnN0cnVjdHMgPSBsaXN0O1xuICAgICAgICBjb25zdHJ1Y3RJbmRleCA9IDA7XG4gICAgICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBib2d1c1N0YXRlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYW5kbGVDb25zdHJ1Y3QobGlzdFtjb25zdHJ1Y3RJbmRleF0pO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIEhhbmRsZSBhIHNpbmdsZSBjb25zdHJ1Y3QuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtDb25zdHJ1Y3R9IGNvbnN0cnVjdFxuICAgICAgICogICBDb25zdHJ1Y3QuXG4gICAgICAgKiBAcmV0dXJucyB7U3RhdGV9XG4gICAgICAgKiAgIFN0YXRlLlxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBoYW5kbGVDb25zdHJ1Y3QoY29uc3RydWN0KSB7XG4gICAgICAgIHJldHVybiBzdGFydDtcblxuICAgICAgICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICAgICAgICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgICAgICAgLy8gVG8gZG86IG5vdCBuZWVkZWQgdG8gc3RvcmUgaWYgdGhlcmUgaXMgbm8gYm9ndXMgc3RhdGUsIHByb2JhYmx5P1xuICAgICAgICAgIC8vIEN1cnJlbnRseSBkb2Vzblx1MjAxOXQgd29yayBiZWNhdXNlIGBpbnNwZWN0YCBpbiBkb2N1bWVudCBkb2VzIGEgY2hlY2tcbiAgICAgICAgICAvLyB3L28gYSBib2d1cywgd2hpY2ggZG9lc25cdTIwMTl0IG1ha2Ugc2Vuc2UuIEJ1dCBpdCBkb2VzIHNlZW0gdG8gaGVscCBwZXJmXG4gICAgICAgICAgLy8gYnkgbm90IHN0b3JpbmcuXG4gICAgICAgICAgaW5mbyA9IHN0b3JlKCk7XG4gICAgICAgICAgY3VycmVudENvbnN0cnVjdCA9IGNvbnN0cnVjdDtcbiAgICAgICAgICBpZiAoIWNvbnN0cnVjdC5wYXJ0aWFsKSB7XG4gICAgICAgICAgICBjb250ZXh0LmN1cnJlbnRDb25zdHJ1Y3QgPSBjb25zdHJ1Y3Q7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQWx3YXlzIHBvcHVsYXRlZCBieSBkZWZhdWx0cy5cblxuICAgICAgICAgIGlmIChjb25zdHJ1Y3QubmFtZSAmJiBjb250ZXh0LnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcyhjb25zdHJ1Y3QubmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBub2soY29kZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3QudG9rZW5pemUuY2FsbChcbiAgICAgICAgICAvLyBJZiB3ZSBkbyBoYXZlIGZpZWxkcywgY3JlYXRlIGFuIG9iamVjdCB3LyBgY29udGV4dGAgYXMgaXRzXG4gICAgICAgICAgLy8gcHJvdG90eXBlLlxuICAgICAgICAgIC8vIFRoaXMgYWxsb3dzIGEgXHUyMDFDbGl2ZSBiaW5kaW5nXHUyMDFELCB3aGljaCBpcyBuZWVkZWQgZm9yIGBpbnRlcnJ1cHRgLlxuICAgICAgICAgIGZpZWxkcyA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShjb250ZXh0KSwgZmllbGRzKSA6IGNvbnRleHQsIGVmZmVjdHMsIG9rLCBub2spKGNvZGUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8qKiBAdHlwZSB7U3RhdGV9ICovXG4gICAgICBmdW5jdGlvbiBvayhjb2RlKSB7XG4gICAgICAgIGNvbnN1bWVkID0gdHJ1ZTtcbiAgICAgICAgb25yZXR1cm4oY3VycmVudENvbnN0cnVjdCwgaW5mbyk7XG4gICAgICAgIHJldHVybiByZXR1cm5TdGF0ZTtcbiAgICAgIH1cblxuICAgICAgLyoqIEB0eXBlIHtTdGF0ZX0gKi9cbiAgICAgIGZ1bmN0aW9uIG5vayhjb2RlKSB7XG4gICAgICAgIGNvbnN1bWVkID0gdHJ1ZTtcbiAgICAgICAgaW5mby5yZXN0b3JlKCk7XG4gICAgICAgIGlmICgrK2NvbnN0cnVjdEluZGV4IDwgbGlzdE9mQ29uc3RydWN0cy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlQ29uc3RydWN0KGxpc3RPZkNvbnN0cnVjdHNbY29uc3RydWN0SW5kZXhdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYm9ndXNTdGF0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3R9IGNvbnN0cnVjdFxuICAgKiAgIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21cbiAgICogICBGcm9tLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBmdW5jdGlvbiBhZGRSZXN1bHQoY29uc3RydWN0LCBmcm9tKSB7XG4gICAgaWYgKGNvbnN0cnVjdC5yZXNvbHZlQWxsICYmICFyZXNvbHZlQWxsQ29uc3RydWN0cy5pbmNsdWRlcyhjb25zdHJ1Y3QpKSB7XG4gICAgICByZXNvbHZlQWxsQ29uc3RydWN0cy5wdXNoKGNvbnN0cnVjdCk7XG4gICAgfVxuICAgIGlmIChjb25zdHJ1Y3QucmVzb2x2ZSkge1xuICAgICAgc3BsaWNlKGNvbnRleHQuZXZlbnRzLCBmcm9tLCBjb250ZXh0LmV2ZW50cy5sZW5ndGggLSBmcm9tLCBjb25zdHJ1Y3QucmVzb2x2ZShjb250ZXh0LmV2ZW50cy5zbGljZShmcm9tKSwgY29udGV4dCkpO1xuICAgIH1cbiAgICBpZiAoY29uc3RydWN0LnJlc29sdmVUbykge1xuICAgICAgY29udGV4dC5ldmVudHMgPSBjb25zdHJ1Y3QucmVzb2x2ZVRvKGNvbnRleHQuZXZlbnRzLCBjb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RvcmUgc3RhdGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtJbmZvfVxuICAgKiAgIEluZm8uXG4gICAqL1xuICBmdW5jdGlvbiBzdG9yZSgpIHtcbiAgICBjb25zdCBzdGFydFBvaW50ID0gbm93KCk7XG4gICAgY29uc3Qgc3RhcnRQcmV2aW91cyA9IGNvbnRleHQucHJldmlvdXM7XG4gICAgY29uc3Qgc3RhcnRDdXJyZW50Q29uc3RydWN0ID0gY29udGV4dC5jdXJyZW50Q29uc3RydWN0O1xuICAgIGNvbnN0IHN0YXJ0RXZlbnRzSW5kZXggPSBjb250ZXh0LmV2ZW50cy5sZW5ndGg7XG4gICAgY29uc3Qgc3RhcnRTdGFjayA9IEFycmF5LmZyb20oc3RhY2spO1xuICAgIHJldHVybiB7XG4gICAgICBmcm9tOiBzdGFydEV2ZW50c0luZGV4LFxuICAgICAgcmVzdG9yZVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZXN0b3JlIHN0YXRlLlxuICAgICAqXG4gICAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICAgKiAgIE5vdGhpbmcuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVzdG9yZSgpIHtcbiAgICAgIHBvaW50ID0gc3RhcnRQb2ludDtcbiAgICAgIGNvbnRleHQucHJldmlvdXMgPSBzdGFydFByZXZpb3VzO1xuICAgICAgY29udGV4dC5jdXJyZW50Q29uc3RydWN0ID0gc3RhcnRDdXJyZW50Q29uc3RydWN0O1xuICAgICAgY29udGV4dC5ldmVudHMubGVuZ3RoID0gc3RhcnRFdmVudHNJbmRleDtcbiAgICAgIHN0YWNrID0gc3RhcnRTdGFjaztcbiAgICAgIGFjY291bnRGb3JQb3RlbnRpYWxTa2lwKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vdmUgdGhlIGN1cnJlbnQgcG9pbnQgYSBiaXQgZm9yd2FyZCBpbiB0aGUgbGluZSB3aGVuIGl0XHUyMDE5cyBvbiBhIGNvbHVtblxuICAgKiBza2lwLlxuICAgKlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBmdW5jdGlvbiBhY2NvdW50Rm9yUG90ZW50aWFsU2tpcCgpIHtcbiAgICBpZiAocG9pbnQubGluZSBpbiBjb2x1bW5TdGFydCAmJiBwb2ludC5jb2x1bW4gPCAyKSB7XG4gICAgICBwb2ludC5jb2x1bW4gPSBjb2x1bW5TdGFydFtwb2ludC5saW5lXTtcbiAgICAgIHBvaW50Lm9mZnNldCArPSBjb2x1bW5TdGFydFtwb2ludC5saW5lXSAtIDE7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBjaHVua3MgZnJvbSBhIHNsaWNlIG9mIGNodW5rcyBpbiB0aGUgcmFuZ2Ugb2YgYSB0b2tlbi5cbiAqXG4gKiBAcGFyYW0ge1JlYWRvbmx5QXJyYXk8Q2h1bms+fSBjaHVua3NcbiAqICAgQ2h1bmtzLlxuICogQHBhcmFtIHtQaWNrPFRva2VuLCAnZW5kJyB8ICdzdGFydCc+fSB0b2tlblxuICogICBUb2tlbi5cbiAqIEByZXR1cm5zIHtBcnJheTxDaHVuaz59XG4gKiAgIENodW5rcy5cbiAqL1xuZnVuY3Rpb24gc2xpY2VDaHVua3MoY2h1bmtzLCB0b2tlbikge1xuICBjb25zdCBzdGFydEluZGV4ID0gdG9rZW4uc3RhcnQuX2luZGV4O1xuICBjb25zdCBzdGFydEJ1ZmZlckluZGV4ID0gdG9rZW4uc3RhcnQuX2J1ZmZlckluZGV4O1xuICBjb25zdCBlbmRJbmRleCA9IHRva2VuLmVuZC5faW5kZXg7XG4gIGNvbnN0IGVuZEJ1ZmZlckluZGV4ID0gdG9rZW4uZW5kLl9idWZmZXJJbmRleDtcbiAgLyoqIEB0eXBlIHtBcnJheTxDaHVuaz59ICovXG4gIGxldCB2aWV3O1xuICBpZiAoc3RhcnRJbmRleCA9PT0gZW5kSW5kZXgpIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGBfYnVmZmVySW5kZXhgIGlzIHVzZWQgb24gc3RyaW5nIGNodW5rcy5cbiAgICB2aWV3ID0gW2NodW5rc1tzdGFydEluZGV4XS5zbGljZShzdGFydEJ1ZmZlckluZGV4LCBlbmRCdWZmZXJJbmRleCldO1xuICB9IGVsc2Uge1xuICAgIHZpZXcgPSBjaHVua3Muc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xuICAgIGlmIChzdGFydEJ1ZmZlckluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IGhlYWQgPSB2aWV3WzBdO1xuICAgICAgaWYgKHR5cGVvZiBoZWFkID09PSAnc3RyaW5nJykge1xuICAgICAgICB2aWV3WzBdID0gaGVhZC5zbGljZShzdGFydEJ1ZmZlckluZGV4KTtcbiAgICAgICAgLyogYzggaWdub3JlIG5leHQgNCAtLSB1c2VkIHRvIGJlIHVzZWQsIG5vIGxvbmdlciAqL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmlldy5zaGlmdCgpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5kQnVmZmVySW5kZXggPiAwKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGBfYnVmZmVySW5kZXhgIGlzIHVzZWQgb24gc3RyaW5nIGNodW5rcy5cbiAgICAgIHZpZXcucHVzaChjaHVua3NbZW5kSW5kZXhdLnNsaWNlKDAsIGVuZEJ1ZmZlckluZGV4KSk7XG4gICAgfVxuICB9XG4gIHJldHVybiB2aWV3O1xufVxuXG4vKipcbiAqIEdldCB0aGUgc3RyaW5nIHZhbHVlIG9mIGEgc2xpY2Ugb2YgY2h1bmtzLlxuICpcbiAqIEBwYXJhbSB7UmVhZG9ubHlBcnJheTxDaHVuaz59IGNodW5rc1xuICogICBDaHVua3MuXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCB1bmRlZmluZWR9IFtleHBhbmRUYWJzPWZhbHNlXVxuICogICBXaGV0aGVyIHRvIGV4cGFuZCB0YWJzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFJlc3VsdC5cbiAqL1xuZnVuY3Rpb24gc2VyaWFsaXplQ2h1bmtzKGNodW5rcywgZXhwYW5kVGFicykge1xuICBsZXQgaW5kZXggPSAtMTtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCByZXN1bHQgPSBbXTtcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgYXRUYWI7XG4gIHdoaWxlICgrK2luZGV4IDwgY2h1bmtzLmxlbmd0aCkge1xuICAgIGNvbnN0IGNodW5rID0gY2h1bmtzW2luZGV4XTtcbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgdmFsdWU7XG4gICAgaWYgKHR5cGVvZiBjaHVuayA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhbHVlID0gY2h1bms7XG4gICAgfSBlbHNlIHN3aXRjaCAoY2h1bmspIHtcbiAgICAgIGNhc2UgLTU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZSA9IFwiXFxyXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIGNhc2UgLTQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZSA9IFwiXFxuXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIGNhc2UgLTM6XG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZSA9IFwiXFxyXCIgKyBcIlxcblwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICBjYXNlIC0yOlxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWUgPSBleHBhbmRUYWJzID8gXCIgXCIgOiBcIlxcdFwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICBjYXNlIC0xOlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKCFleHBhbmRUYWJzICYmIGF0VGFiKSBjb250aW51ZTtcbiAgICAgICAgICB2YWx1ZSA9IFwiIFwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgLy8gQ3VycmVudGx5IG9ubHkgcmVwbGFjZW1lbnQgY2hhcmFjdGVyLlxuICAgICAgICAgIHZhbHVlID0gU3RyaW5nLmZyb21DaGFyQ29kZShjaHVuayk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXRUYWIgPSBjaHVuayA9PT0gLTI7XG4gICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICB9XG4gIHJldHVybiByZXN1bHQuam9pbignJyk7XG59IiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIENyZWF0ZSxcbiAqICAgRnVsbE5vcm1hbGl6ZWRFeHRlbnNpb24sXG4gKiAgIEluaXRpYWxDb25zdHJ1Y3QsXG4gKiAgIFBhcnNlQ29udGV4dCxcbiAqICAgUGFyc2VPcHRpb25zXG4gKiB9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IGNvbWJpbmVFeHRlbnNpb25zIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY29tYmluZS1leHRlbnNpb25zJztcbmltcG9ydCB7IGNvbnRlbnQgfSBmcm9tICcuL2luaXRpYWxpemUvY29udGVudC5qcyc7XG5pbXBvcnQgeyBkb2N1bWVudCB9IGZyb20gJy4vaW5pdGlhbGl6ZS9kb2N1bWVudC5qcyc7XG5pbXBvcnQgeyBmbG93IH0gZnJvbSAnLi9pbml0aWFsaXplL2Zsb3cuanMnO1xuaW1wb3J0IHsgc3RyaW5nLCB0ZXh0IH0gZnJvbSAnLi9pbml0aWFsaXplL3RleHQuanMnO1xuaW1wb3J0ICogYXMgZGVmYXVsdENvbnN0cnVjdHMgZnJvbSAnLi9jb25zdHJ1Y3RzLmpzJztcbmltcG9ydCB7IGNyZWF0ZVRva2VuaXplciB9IGZyb20gJy4vY3JlYXRlLXRva2VuaXplci5qcyc7XG5cbi8qKlxuICogQHBhcmFtIHtQYXJzZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge1BhcnNlQ29udGV4dH1cbiAqICAgUGFyc2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2Uob3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge307XG4gIGNvbnN0IGNvbnN0cnVjdHMgPSAvKiogQHR5cGUge0Z1bGxOb3JtYWxpemVkRXh0ZW5zaW9ufSAqL1xuICBjb21iaW5lRXh0ZW5zaW9ucyhbZGVmYXVsdENvbnN0cnVjdHMsIC4uLihzZXR0aW5ncy5leHRlbnNpb25zIHx8IFtdKV0pO1xuXG4gIC8qKiBAdHlwZSB7UGFyc2VDb250ZXh0fSAqL1xuICBjb25zdCBwYXJzZXIgPSB7XG4gICAgY29uc3RydWN0cyxcbiAgICBjb250ZW50OiBjcmVhdGUoY29udGVudCksXG4gICAgZGVmaW5lZDogW10sXG4gICAgZG9jdW1lbnQ6IGNyZWF0ZShkb2N1bWVudCksXG4gICAgZmxvdzogY3JlYXRlKGZsb3cpLFxuICAgIGxhenk6IHt9LFxuICAgIHN0cmluZzogY3JlYXRlKHN0cmluZyksXG4gICAgdGV4dDogY3JlYXRlKHRleHQpXG4gIH07XG4gIHJldHVybiBwYXJzZXI7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7SW5pdGlhbENvbnN0cnVjdH0gaW5pdGlhbFxuICAgKiAgIENvbnN0cnVjdCB0byBzdGFydCB3aXRoLlxuICAgKiBAcmV0dXJucyB7Q3JlYXRlfVxuICAgKiAgIENyZWF0ZSBhIHRva2VuaXplci5cbiAgICovXG4gIGZ1bmN0aW9uIGNyZWF0ZShpbml0aWFsKSB7XG4gICAgcmV0dXJuIGNyZWF0b3I7XG4gICAgLyoqIEB0eXBlIHtDcmVhdGV9ICovXG4gICAgZnVuY3Rpb24gY3JlYXRvcihmcm9tKSB7XG4gICAgICByZXR1cm4gY3JlYXRlVG9rZW5pemVyKHBhcnNlciwgaW5pdGlhbCwgZnJvbSk7XG4gICAgfVxuICB9XG59IiwgIi8qKlxuICogQGltcG9ydCB7RXZlbnR9IGZyb20gJ21pY3JvbWFyay11dGlsLXR5cGVzJ1xuICovXG5cbmltcG9ydCB7IHN1YnRva2VuaXplIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtc3VidG9rZW5pemUnO1xuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAqICAgRXZlbnRzLlxuICogQHJldHVybnMge0FycmF5PEV2ZW50Pn1cbiAqICAgRXZlbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9zdHByb2Nlc3MoZXZlbnRzKSB7XG4gIHdoaWxlICghc3VidG9rZW5pemUoZXZlbnRzKSkge1xuICAgIC8vIEVtcHR5XG4gIH1cbiAgcmV0dXJuIGV2ZW50cztcbn0iLCAiLyoqXG4gKiBAaW1wb3J0IHtDaHVuaywgQ29kZSwgRW5jb2RpbmcsIFZhbHVlfSBmcm9tICdtaWNyb21hcmstdXRpbC10eXBlcydcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBQcmVwcm9jZXNzb3JcbiAqICAgUHJlcHJvY2VzcyBhIHZhbHVlLlxuICogQHBhcmFtIHtWYWx1ZX0gdmFsdWVcbiAqICAgVmFsdWUuXG4gKiBAcGFyYW0ge0VuY29kaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuY29kaW5nXVxuICogICBFbmNvZGluZyB3aGVuIGB2YWx1ZWAgaXMgYSB0eXBlZCBhcnJheSAob3B0aW9uYWwpLlxuICogQHBhcmFtIHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuZD1mYWxzZV1cbiAqICAgV2hldGhlciB0aGlzIGlzIHRoZSBsYXN0IGNodW5rIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEByZXR1cm5zIHtBcnJheTxDaHVuaz59XG4gKiAgIENodW5rcy5cbiAqL1xuXG5jb25zdCBzZWFyY2ggPSAvW1xcMFxcdFxcblxccl0vZztcblxuLyoqXG4gKiBAcmV0dXJucyB7UHJlcHJvY2Vzc29yfVxuICogICBQcmVwcm9jZXNzIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwcm9jZXNzKCkge1xuICBsZXQgY29sdW1uID0gMTtcbiAgbGV0IGJ1ZmZlciA9ICcnO1xuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBzdGFydCA9IHRydWU7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IGF0Q2FycmlhZ2VSZXR1cm47XG4gIHJldHVybiBwcmVwcm9jZXNzb3I7XG5cbiAgLyoqIEB0eXBlIHtQcmVwcm9jZXNzb3J9ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIGZ1bmN0aW9uIHByZXByb2Nlc3Nvcih2YWx1ZSwgZW5jb2RpbmcsIGVuZCkge1xuICAgIC8qKiBAdHlwZSB7QXJyYXk8Q2h1bms+fSAqL1xuICAgIGNvbnN0IGNodW5rcyA9IFtdO1xuICAgIC8qKiBAdHlwZSB7UmVnRXhwTWF0Y2hBcnJheSB8IG51bGx9ICovXG4gICAgbGV0IG1hdGNoO1xuICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgIGxldCBuZXh0O1xuICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgIGxldCBzdGFydFBvc2l0aW9uO1xuICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgIGxldCBlbmRQb3NpdGlvbjtcbiAgICAvKiogQHR5cGUge0NvZGV9ICovXG4gICAgbGV0IGNvZGU7XG4gICAgdmFsdWUgPSBidWZmZXIgKyAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLnRvU3RyaW5nKCkgOiBuZXcgVGV4dERlY29kZXIoZW5jb2RpbmcgfHwgdW5kZWZpbmVkKS5kZWNvZGUodmFsdWUpKTtcbiAgICBzdGFydFBvc2l0aW9uID0gMDtcbiAgICBidWZmZXIgPSAnJztcbiAgICBpZiAoc3RhcnQpIHtcbiAgICAgIC8vIFRvIGRvOiBgbWFya2Rvd24tcnNgIGFjdHVhbGx5IHBhcnNlcyBCT01zIChieXRlIG9yZGVyIG1hcmspLlxuICAgICAgaWYgKHZhbHVlLmNoYXJDb2RlQXQoMCkgPT09IDY1Mjc5KSB7XG4gICAgICAgIHN0YXJ0UG9zaXRpb24rKztcbiAgICAgIH1cbiAgICAgIHN0YXJ0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB3aGlsZSAoc3RhcnRQb3NpdGlvbiA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgc2VhcmNoLmxhc3RJbmRleCA9IHN0YXJ0UG9zaXRpb247XG4gICAgICBtYXRjaCA9IHNlYXJjaC5leGVjKHZhbHVlKTtcbiAgICAgIGVuZFBvc2l0aW9uID0gbWF0Y2ggJiYgbWF0Y2guaW5kZXggIT09IHVuZGVmaW5lZCA/IG1hdGNoLmluZGV4IDogdmFsdWUubGVuZ3RoO1xuICAgICAgY29kZSA9IHZhbHVlLmNoYXJDb2RlQXQoZW5kUG9zaXRpb24pO1xuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICBidWZmZXIgPSB2YWx1ZS5zbGljZShzdGFydFBvc2l0aW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAoY29kZSA9PT0gMTAgJiYgc3RhcnRQb3NpdGlvbiA9PT0gZW5kUG9zaXRpb24gJiYgYXRDYXJyaWFnZVJldHVybikge1xuICAgICAgICBjaHVua3MucHVzaCgtMyk7XG4gICAgICAgIGF0Q2FycmlhZ2VSZXR1cm4gPSB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYXRDYXJyaWFnZVJldHVybikge1xuICAgICAgICAgIGNodW5rcy5wdXNoKC01KTtcbiAgICAgICAgICBhdENhcnJpYWdlUmV0dXJuID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydFBvc2l0aW9uIDwgZW5kUG9zaXRpb24pIHtcbiAgICAgICAgICBjaHVua3MucHVzaCh2YWx1ZS5zbGljZShzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbikpO1xuICAgICAgICAgIGNvbHVtbiArPSBlbmRQb3NpdGlvbiAtIHN0YXJ0UG9zaXRpb247XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjaHVua3MucHVzaCg2NTUzMyk7XG4gICAgICAgICAgICAgIGNvbHVtbisrO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5leHQgPSBNYXRoLmNlaWwoY29sdW1uIC8gNCkgKiA0O1xuICAgICAgICAgICAgICBjaHVua3MucHVzaCgtMik7XG4gICAgICAgICAgICAgIHdoaWxlIChjb2x1bW4rKyA8IG5leHQpIGNodW5rcy5wdXNoKC0xKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2h1bmtzLnB1c2goLTQpO1xuICAgICAgICAgICAgICBjb2x1bW4gPSAxO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBhdENhcnJpYWdlUmV0dXJuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY29sdW1uID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RhcnRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uICsgMTtcbiAgICB9XG4gICAgaWYgKGVuZCkge1xuICAgICAgaWYgKGF0Q2FycmlhZ2VSZXR1cm4pIGNodW5rcy5wdXNoKC01KTtcbiAgICAgIGlmIChidWZmZXIpIGNodW5rcy5wdXNoKGJ1ZmZlcik7XG4gICAgICBjaHVua3MucHVzaChudWxsKTtcbiAgICB9XG4gICAgcmV0dXJuIGNodW5rcztcbiAgfVxufSIsICIvKipcbiAqIEBpbXBvcnQge0VuY29kaW5nLCBWYWx1ZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLk9wdGlvbnN9IE9wdGlvbnNcbiAqL1xuXG5pbXBvcnQgeyBjb21waWxlIH0gZnJvbSAnLi9saWIvY29tcGlsZS5qcyc7XG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJy4vbGliL3BhcnNlLmpzJztcbmltcG9ydCB7IHBvc3Rwcm9jZXNzIH0gZnJvbSAnLi9saWIvcG9zdHByb2Nlc3MuanMnO1xuaW1wb3J0IHsgcHJlcHJvY2VzcyB9IGZyb20gJy4vbGliL3ByZXByb2Nlc3MuanMnO1xuZXhwb3J0IHsgY29tcGlsZSB9IGZyb20gJy4vbGliL2NvbXBpbGUuanMnO1xuZXhwb3J0IHsgcGFyc2UgfSBmcm9tICcuL2xpYi9wYXJzZS5qcyc7XG5leHBvcnQgeyBwb3N0cHJvY2VzcyB9IGZyb20gJy4vbGliL3Bvc3Rwcm9jZXNzLmpzJztcbmV4cG9ydCB7IHByZXByb2Nlc3MgfSBmcm9tICcuL2xpYi9wcmVwcm9jZXNzLmpzJztcblxuLyoqXG4gKiBDb21waWxlIG1hcmtkb3duIHRvIEhUTUwuXG4gKlxuICogPiBOb3RlOiB3aGljaCBlbmNvZGluZ3MgYXJlIHN1cHBvcnRlZCBkZXBlbmRzIG9uIHRoZSBlbmdpbmUuXG4gKiA+IEZvciBpbmZvIG9uIE5vZGUuanMsIHNlZTpcbiAqID4gPGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvdXRpbC5odG1sI3doYXR3Zy1zdXBwb3J0ZWQtZW5jb2RpbmdzPi5cbiAqXG4gKiBAb3ZlcmxvYWRcbiAqIEBwYXJhbSB7VmFsdWV9IHZhbHVlXG4gKiAgIE1hcmtkb3duIHRvIHBhcnNlIChgc3RyaW5nYCBvciBgVWludDhBcnJheWApLlxuICogQHBhcmFtIHtFbmNvZGluZyB8IG51bGwgfCB1bmRlZmluZWR9IGVuY29kaW5nXG4gKiAgIENoYXJhY3RlciBlbmNvZGluZyB0byB1bmRlcnN0YW5kIGB2YWx1ZWAgYXMgd2hlbiBpdFx1MjAxOXMgYSBgVWludDhBcnJheWBcbiAqICAgKGBzdHJpbmdgLCBkZWZhdWx0OiBgJ3V0ZjgnYCkuXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENvbXBpbGVkIEhUTUwuXG4gKlxuICogQG92ZXJsb2FkXG4gKiBAcGFyYW0ge1ZhbHVlfSB2YWx1ZVxuICogICBNYXJrZG93biB0byBwYXJzZSAoYHN0cmluZ2Agb3IgYFVpbnQ4QXJyYXlgKS5cbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgQ29tcGlsZWQgSFRNTC5cbiAqXG4gKiBAcGFyYW0ge1ZhbHVlfSB2YWx1ZVxuICogICBNYXJrZG93biB0byBwYXJzZSAoYHN0cmluZ2Agb3IgYFVpbnQ4QXJyYXlgKS5cbiAqIEBwYXJhbSB7RW5jb2RpbmcgfCBPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuY29kaW5nXVxuICogICBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdW5kZXJzdGFuZCBgdmFsdWVgIGFzIHdoZW4gaXRcdTIwMTlzIGEgYFVpbnQ4QXJyYXlgXG4gKiAgIChgc3RyaW5nYCwgZGVmYXVsdDogYCd1dGY4J2ApLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDb21waWxlZCBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWljcm9tYXJrKHZhbHVlLCBlbmNvZGluZywgb3B0aW9ucykge1xuICBpZiAodHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJykge1xuICAgIG9wdGlvbnMgPSBlbmNvZGluZztcbiAgICBlbmNvZGluZyA9IHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gY29tcGlsZShvcHRpb25zKShwb3N0cHJvY2VzcyhwYXJzZShvcHRpb25zKS5kb2N1bWVudCgpLndyaXRlKHByZXByb2Nlc3MoKSh2YWx1ZSwgZW5jb2RpbmcsIHRydWUpKSkpO1xufSIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBCcmVhayxcbiAqICAgQmxvY2txdW90ZSxcbiAqICAgQ29kZSxcbiAqICAgRGVmaW5pdGlvbixcbiAqICAgRW1waGFzaXMsXG4gKiAgIEhlYWRpbmcsXG4gKiAgIEh0bWwsXG4gKiAgIEltYWdlLFxuICogICBJbmxpbmVDb2RlLFxuICogICBMaW5rLFxuICogICBMaXN0SXRlbSxcbiAqICAgTGlzdCxcbiAqICAgTm9kZXMsXG4gKiAgIFBhcmFncmFwaCxcbiAqICAgUGhyYXNpbmdDb250ZW50LFxuICogICBSZWZlcmVuY2VUeXBlLFxuICogICBSb290LFxuICogICBTdHJvbmcsXG4gKiAgIFRleHQsXG4gKiAgIFRoZW1hdGljQnJlYWtcbiAqIH0gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtcbiAqICAgRW5jb2RpbmcsXG4gKiAgIEV2ZW50LFxuICogICBUb2tlbixcbiAqICAgVmFsdWVcbiAqIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtdHlwZXMnXG4gKiBAaW1wb3J0IHtQb2ludH0gZnJvbSAndW5pc3QnXG4gKiBAaW1wb3J0IHtcbiAqICAgQ29tcGlsZUNvbnRleHQsXG4gKiAgIENvbXBpbGVEYXRhLFxuICogICBDb25maWcsXG4gKiAgIEV4dGVuc2lvbixcbiAqICAgSGFuZGxlLFxuICogICBPbkVudGVyRXJyb3IsXG4gKiAgIE9wdGlvbnNcbiAqIH0gZnJvbSAnLi90eXBlcy5qcydcbiAqL1xuXG5pbXBvcnQgeyB0b1N0cmluZyB9IGZyb20gJ21kYXN0LXV0aWwtdG8tc3RyaW5nJztcbmltcG9ydCB7IHBhcnNlLCBwb3N0cHJvY2VzcywgcHJlcHJvY2VzcyB9IGZyb20gJ21pY3JvbWFyayc7XG5pbXBvcnQgeyBkZWNvZGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlIH0gZnJvbSAnbWljcm9tYXJrLXV0aWwtZGVjb2RlLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBkZWNvZGVTdHJpbmcgfSBmcm9tICdtaWNyb21hcmstdXRpbC1kZWNvZGUtc3RyaW5nJztcbmltcG9ydCB7IG5vcm1hbGl6ZUlkZW50aWZpZXIgfSBmcm9tICdtaWNyb21hcmstdXRpbC1ub3JtYWxpemUtaWRlbnRpZmllcic7XG5pbXBvcnQgeyBkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZSB9IGZyb20gJ2RlY29kZS1uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlJztcbmltcG9ydCB7IHN0cmluZ2lmeVBvc2l0aW9uIH0gZnJvbSAndW5pc3QtdXRpbC1zdHJpbmdpZnktcG9zaXRpb24nO1xuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVHVybiBtYXJrZG93biBpbnRvIGEgc3ludGF4IHRyZWUuXG4gKlxuICogQG92ZXJsb2FkXG4gKiBAcGFyYW0ge1ZhbHVlfSB2YWx1ZVxuICogQHBhcmFtIHtFbmNvZGluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmNvZGluZ11cbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogQHJldHVybnMge1Jvb3R9XG4gKlxuICogQG92ZXJsb2FkXG4gKiBAcGFyYW0ge1ZhbHVlfSB2YWx1ZVxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiBAcmV0dXJucyB7Um9vdH1cbiAqXG4gKiBAcGFyYW0ge1ZhbHVlfSB2YWx1ZVxuICogICBNYXJrZG93biB0byBwYXJzZS5cbiAqIEBwYXJhbSB7RW5jb2RpbmcgfCBPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuY29kaW5nXVxuICogICBDaGFyYWN0ZXIgZW5jb2RpbmcgZm9yIHdoZW4gYHZhbHVlYCBpcyBgQnVmZmVyYC5cbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge1Jvb3R9XG4gKiAgIG1kYXN0IHRyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tTWFya2Rvd24odmFsdWUsIGVuY29kaW5nLCBvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgZW5jb2RpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgb3B0aW9ucyA9IGVuY29kaW5nO1xuICAgIGVuY29kaW5nID0gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiBjb21waWxlcihvcHRpb25zKShwb3N0cHJvY2VzcyhwYXJzZShvcHRpb25zKS5kb2N1bWVudCgpLndyaXRlKHByZXByb2Nlc3MoKSh2YWx1ZSwgZW5jb2RpbmcsIHRydWUpKSkpO1xufVxuXG4vKipcbiAqIE5vdGUgdGhpcyBjb21waWxlciBvbmx5IHVuZGVyc3RhbmQgY29tcGxldGUgYnVmZmVyaW5nLCBub3Qgc3RyZWFtaW5nLlxuICpcbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICovXG5mdW5jdGlvbiBjb21waWxlcihvcHRpb25zKSB7XG4gIC8qKiBAdHlwZSB7Q29uZmlnfSAqL1xuICBjb25zdCBjb25maWcgPSB7XG4gICAgdHJhbnNmb3JtczogW10sXG4gICAgY2FuQ29udGFpbkVvbHM6IFsnZW1waGFzaXMnLCAnZnJhZ21lbnQnLCAnaGVhZGluZycsICdwYXJhZ3JhcGgnLCAnc3Ryb25nJ10sXG4gICAgZW50ZXI6IHtcbiAgICAgIGF1dG9saW5rOiBvcGVuZXIobGluayksXG4gICAgICBhdXRvbGlua1Byb3RvY29sOiBvbmVudGVyZGF0YSxcbiAgICAgIGF1dG9saW5rRW1haWw6IG9uZW50ZXJkYXRhLFxuICAgICAgYXR4SGVhZGluZzogb3BlbmVyKGhlYWRpbmcpLFxuICAgICAgYmxvY2tRdW90ZTogb3BlbmVyKGJsb2NrUXVvdGUpLFxuICAgICAgY2hhcmFjdGVyRXNjYXBlOiBvbmVudGVyZGF0YSxcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZTogb25lbnRlcmRhdGEsXG4gICAgICBjb2RlRmVuY2VkOiBvcGVuZXIoY29kZUZsb3cpLFxuICAgICAgY29kZUZlbmNlZEZlbmNlSW5mbzogYnVmZmVyLFxuICAgICAgY29kZUZlbmNlZEZlbmNlTWV0YTogYnVmZmVyLFxuICAgICAgY29kZUluZGVudGVkOiBvcGVuZXIoY29kZUZsb3csIGJ1ZmZlciksXG4gICAgICBjb2RlVGV4dDogb3BlbmVyKGNvZGVUZXh0LCBidWZmZXIpLFxuICAgICAgY29kZVRleHREYXRhOiBvbmVudGVyZGF0YSxcbiAgICAgIGRhdGE6IG9uZW50ZXJkYXRhLFxuICAgICAgY29kZUZsb3dWYWx1ZTogb25lbnRlcmRhdGEsXG4gICAgICBkZWZpbml0aW9uOiBvcGVuZXIoZGVmaW5pdGlvbiksXG4gICAgICBkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6IGJ1ZmZlcixcbiAgICAgIGRlZmluaXRpb25MYWJlbFN0cmluZzogYnVmZmVyLFxuICAgICAgZGVmaW5pdGlvblRpdGxlU3RyaW5nOiBidWZmZXIsXG4gICAgICBlbXBoYXNpczogb3BlbmVyKGVtcGhhc2lzKSxcbiAgICAgIGhhcmRCcmVha0VzY2FwZTogb3BlbmVyKGhhcmRCcmVhayksXG4gICAgICBoYXJkQnJlYWtUcmFpbGluZzogb3BlbmVyKGhhcmRCcmVhayksXG4gICAgICBodG1sRmxvdzogb3BlbmVyKGh0bWwsIGJ1ZmZlciksXG4gICAgICBodG1sRmxvd0RhdGE6IG9uZW50ZXJkYXRhLFxuICAgICAgaHRtbFRleHQ6IG9wZW5lcihodG1sLCBidWZmZXIpLFxuICAgICAgaHRtbFRleHREYXRhOiBvbmVudGVyZGF0YSxcbiAgICAgIGltYWdlOiBvcGVuZXIoaW1hZ2UpLFxuICAgICAgbGFiZWw6IGJ1ZmZlcixcbiAgICAgIGxpbms6IG9wZW5lcihsaW5rKSxcbiAgICAgIGxpc3RJdGVtOiBvcGVuZXIobGlzdEl0ZW0pLFxuICAgICAgbGlzdEl0ZW1WYWx1ZTogb25lbnRlcmxpc3RpdGVtdmFsdWUsXG4gICAgICBsaXN0T3JkZXJlZDogb3BlbmVyKGxpc3QsIG9uZW50ZXJsaXN0b3JkZXJlZCksXG4gICAgICBsaXN0VW5vcmRlcmVkOiBvcGVuZXIobGlzdCksXG4gICAgICBwYXJhZ3JhcGg6IG9wZW5lcihwYXJhZ3JhcGgpLFxuICAgICAgcmVmZXJlbmNlOiBvbmVudGVycmVmZXJlbmNlLFxuICAgICAgcmVmZXJlbmNlU3RyaW5nOiBidWZmZXIsXG4gICAgICByZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOiBidWZmZXIsXG4gICAgICByZXNvdXJjZVRpdGxlU3RyaW5nOiBidWZmZXIsXG4gICAgICBzZXRleHRIZWFkaW5nOiBvcGVuZXIoaGVhZGluZyksXG4gICAgICBzdHJvbmc6IG9wZW5lcihzdHJvbmcpLFxuICAgICAgdGhlbWF0aWNCcmVhazogb3BlbmVyKHRoZW1hdGljQnJlYWspXG4gICAgfSxcbiAgICBleGl0OiB7XG4gICAgICBhdHhIZWFkaW5nOiBjbG9zZXIoKSxcbiAgICAgIGF0eEhlYWRpbmdTZXF1ZW5jZTogb25leGl0YXR4aGVhZGluZ3NlcXVlbmNlLFxuICAgICAgYXV0b2xpbms6IGNsb3NlcigpLFxuICAgICAgYXV0b2xpbmtFbWFpbDogb25leGl0YXV0b2xpbmtlbWFpbCxcbiAgICAgIGF1dG9saW5rUHJvdG9jb2w6IG9uZXhpdGF1dG9saW5rcHJvdG9jb2wsXG4gICAgICBibG9ja1F1b3RlOiBjbG9zZXIoKSxcbiAgICAgIGNoYXJhY3RlckVzY2FwZVZhbHVlOiBvbmV4aXRkYXRhLFxuICAgICAgY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6IG9uZXhpdGNoYXJhY3RlcnJlZmVyZW5jZW1hcmtlcixcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6IG9uZXhpdGNoYXJhY3RlcnJlZmVyZW5jZW1hcmtlcixcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOiBvbmV4aXRjaGFyYWN0ZXJyZWZlcmVuY2V2YWx1ZSxcbiAgICAgIGNoYXJhY3RlclJlZmVyZW5jZTogb25leGl0Y2hhcmFjdGVycmVmZXJlbmNlLFxuICAgICAgY29kZUZlbmNlZDogY2xvc2VyKG9uZXhpdGNvZGVmZW5jZWQpLFxuICAgICAgY29kZUZlbmNlZEZlbmNlOiBvbmV4aXRjb2RlZmVuY2VkZmVuY2UsXG4gICAgICBjb2RlRmVuY2VkRmVuY2VJbmZvOiBvbmV4aXRjb2RlZmVuY2VkZmVuY2VpbmZvLFxuICAgICAgY29kZUZlbmNlZEZlbmNlTWV0YTogb25leGl0Y29kZWZlbmNlZGZlbmNlbWV0YSxcbiAgICAgIGNvZGVGbG93VmFsdWU6IG9uZXhpdGRhdGEsXG4gICAgICBjb2RlSW5kZW50ZWQ6IGNsb3NlcihvbmV4aXRjb2RlaW5kZW50ZWQpLFxuICAgICAgY29kZVRleHQ6IGNsb3NlcihvbmV4aXRjb2RldGV4dCksXG4gICAgICBjb2RlVGV4dERhdGE6IG9uZXhpdGRhdGEsXG4gICAgICBkYXRhOiBvbmV4aXRkYXRhLFxuICAgICAgZGVmaW5pdGlvbjogY2xvc2VyKCksXG4gICAgICBkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6IG9uZXhpdGRlZmluaXRpb25kZXN0aW5hdGlvbnN0cmluZyxcbiAgICAgIGRlZmluaXRpb25MYWJlbFN0cmluZzogb25leGl0ZGVmaW5pdGlvbmxhYmVsc3RyaW5nLFxuICAgICAgZGVmaW5pdGlvblRpdGxlU3RyaW5nOiBvbmV4aXRkZWZpbml0aW9udGl0bGVzdHJpbmcsXG4gICAgICBlbXBoYXNpczogY2xvc2VyKCksXG4gICAgICBoYXJkQnJlYWtFc2NhcGU6IGNsb3NlcihvbmV4aXRoYXJkYnJlYWspLFxuICAgICAgaGFyZEJyZWFrVHJhaWxpbmc6IGNsb3NlcihvbmV4aXRoYXJkYnJlYWspLFxuICAgICAgaHRtbEZsb3c6IGNsb3NlcihvbmV4aXRodG1sZmxvdyksXG4gICAgICBodG1sRmxvd0RhdGE6IG9uZXhpdGRhdGEsXG4gICAgICBodG1sVGV4dDogY2xvc2VyKG9uZXhpdGh0bWx0ZXh0KSxcbiAgICAgIGh0bWxUZXh0RGF0YTogb25leGl0ZGF0YSxcbiAgICAgIGltYWdlOiBjbG9zZXIob25leGl0aW1hZ2UpLFxuICAgICAgbGFiZWw6IG9uZXhpdGxhYmVsLFxuICAgICAgbGFiZWxUZXh0OiBvbmV4aXRsYWJlbHRleHQsXG4gICAgICBsaW5lRW5kaW5nOiBvbmV4aXRsaW5lZW5kaW5nLFxuICAgICAgbGluazogY2xvc2VyKG9uZXhpdGxpbmspLFxuICAgICAgbGlzdEl0ZW06IGNsb3NlcigpLFxuICAgICAgbGlzdE9yZGVyZWQ6IGNsb3NlcigpLFxuICAgICAgbGlzdFVub3JkZXJlZDogY2xvc2VyKCksXG4gICAgICBwYXJhZ3JhcGg6IGNsb3NlcigpLFxuICAgICAgcmVmZXJlbmNlU3RyaW5nOiBvbmV4aXRyZWZlcmVuY2VzdHJpbmcsXG4gICAgICByZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOiBvbmV4aXRyZXNvdXJjZWRlc3RpbmF0aW9uc3RyaW5nLFxuICAgICAgcmVzb3VyY2VUaXRsZVN0cmluZzogb25leGl0cmVzb3VyY2V0aXRsZXN0cmluZyxcbiAgICAgIHJlc291cmNlOiBvbmV4aXRyZXNvdXJjZSxcbiAgICAgIHNldGV4dEhlYWRpbmc6IGNsb3NlcihvbmV4aXRzZXRleHRoZWFkaW5nKSxcbiAgICAgIHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6IG9uZXhpdHNldGV4dGhlYWRpbmdsaW5lc2VxdWVuY2UsXG4gICAgICBzZXRleHRIZWFkaW5nVGV4dDogb25leGl0c2V0ZXh0aGVhZGluZ3RleHQsXG4gICAgICBzdHJvbmc6IGNsb3NlcigpLFxuICAgICAgdGhlbWF0aWNCcmVhazogY2xvc2VyKClcbiAgICB9XG4gIH07XG4gIGNvbmZpZ3VyZShjb25maWcsIChvcHRpb25zIHx8IHt9KS5tZGFzdEV4dGVuc2lvbnMgfHwgW10pO1xuXG4gIC8qKiBAdHlwZSB7Q29tcGlsZURhdGF9ICovXG4gIGNvbnN0IGRhdGEgPSB7fTtcbiAgcmV0dXJuIGNvbXBpbGU7XG5cbiAgLyoqXG4gICAqIFR1cm4gbWljcm9tYXJrIGV2ZW50cyBpbnRvIGFuIG1kYXN0IHRyZWUuXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAgICogICBFdmVudHMuXG4gICAqIEByZXR1cm5zIHtSb290fVxuICAgKiAgIG1kYXN0IHRyZWUuXG4gICAqL1xuICBmdW5jdGlvbiBjb21waWxlKGV2ZW50cykge1xuICAgIC8qKiBAdHlwZSB7Um9vdH0gKi9cbiAgICBsZXQgdHJlZSA9IHtcbiAgICAgIHR5cGU6ICdyb290JyxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH07XG4gICAgLyoqIEB0eXBlIHtPbWl0PENvbXBpbGVDb250ZXh0LCAnc2xpY2VTZXJpYWxpemUnPn0gKi9cbiAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgc3RhY2s6IFt0cmVlXSxcbiAgICAgIHRva2VuU3RhY2s6IFtdLFxuICAgICAgY29uZmlnLFxuICAgICAgZW50ZXIsXG4gICAgICBleGl0LFxuICAgICAgYnVmZmVyLFxuICAgICAgcmVzdW1lLFxuICAgICAgZGF0YVxuICAgIH07XG4gICAgLyoqIEB0eXBlIHtBcnJheTxudW1iZXI+fSAqL1xuICAgIGNvbnN0IGxpc3RTdGFjayA9IFtdO1xuICAgIGxldCBpbmRleCA9IC0xO1xuICAgIHdoaWxlICgrK2luZGV4IDwgZXZlbnRzLmxlbmd0aCkge1xuICAgICAgLy8gV2UgcHJlcHJvY2VzcyBsaXN0cyB0byBhZGQgYGxpc3RJdGVtYCB0b2tlbnMsIGFuZCB0byBpbmZlciB3aGV0aGVyXG4gICAgICAvLyBpdGVtcyB0aGUgbGlzdCBpdHNlbGYgYXJlIHNwcmVhZCBvdXQuXG4gICAgICBpZiAoZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSBcImxpc3RPcmRlcmVkXCIgfHwgZXZlbnRzW2luZGV4XVsxXS50eXBlID09PSBcImxpc3RVbm9yZGVyZWRcIikge1xuICAgICAgICBpZiAoZXZlbnRzW2luZGV4XVswXSA9PT0gJ2VudGVyJykge1xuICAgICAgICAgIGxpc3RTdGFjay5wdXNoKGluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0YWlsID0gbGlzdFN0YWNrLnBvcCgpO1xuICAgICAgICAgIGluZGV4ID0gcHJlcGFyZUxpc3QoZXZlbnRzLCB0YWlsLCBpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaW5kZXggPSAtMTtcbiAgICB3aGlsZSAoKytpbmRleCA8IGV2ZW50cy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSBjb25maWdbZXZlbnRzW2luZGV4XVswXV07XG4gICAgICBpZiAob3duLmNhbGwoaGFuZGxlciwgZXZlbnRzW2luZGV4XVsxXS50eXBlKSkge1xuICAgICAgICBoYW5kbGVyW2V2ZW50c1tpbmRleF1bMV0udHlwZV0uY2FsbChPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICBzbGljZVNlcmlhbGl6ZTogZXZlbnRzW2luZGV4XVsyXS5zbGljZVNlcmlhbGl6ZVxuICAgICAgICB9LCBjb250ZXh0KSwgZXZlbnRzW2luZGV4XVsxXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHRva2VucyBzdGlsbCBiZWluZyBvcGVuLlxuICAgIGlmIChjb250ZXh0LnRva2VuU3RhY2subGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgdGFpbCA9IGNvbnRleHQudG9rZW5TdGFja1tjb250ZXh0LnRva2VuU3RhY2subGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBoYW5kbGVyID0gdGFpbFsxXSB8fCBkZWZhdWx0T25FcnJvcjtcbiAgICAgIGhhbmRsZXIuY2FsbChjb250ZXh0LCB1bmRlZmluZWQsIHRhaWxbMF0pO1xuICAgIH1cblxuICAgIC8vIEZpZ3VyZSBvdXQgYHJvb3RgIHBvc2l0aW9uLlxuICAgIHRyZWUucG9zaXRpb24gPSB7XG4gICAgICBzdGFydDogcG9pbnQoZXZlbnRzLmxlbmd0aCA+IDAgPyBldmVudHNbMF1bMV0uc3RhcnQgOiB7XG4gICAgICAgIGxpbmU6IDEsXG4gICAgICAgIGNvbHVtbjogMSxcbiAgICAgICAgb2Zmc2V0OiAwXG4gICAgICB9KSxcbiAgICAgIGVuZDogcG9pbnQoZXZlbnRzLmxlbmd0aCA+IDAgPyBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDJdWzFdLmVuZCA6IHtcbiAgICAgICAgbGluZTogMSxcbiAgICAgICAgY29sdW1uOiAxLFxuICAgICAgICBvZmZzZXQ6IDBcbiAgICAgIH0pXG4gICAgfTtcblxuICAgIC8vIENhbGwgdHJhbnNmb3Jtcy5cbiAgICBpbmRleCA9IC0xO1xuICAgIHdoaWxlICgrK2luZGV4IDwgY29uZmlnLnRyYW5zZm9ybXMubGVuZ3RoKSB7XG4gICAgICB0cmVlID0gY29uZmlnLnRyYW5zZm9ybXNbaW5kZXhdKHRyZWUpIHx8IHRyZWU7XG4gICAgfVxuICAgIHJldHVybiB0cmVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7QXJyYXk8RXZlbnQ+fSBldmVudHNcbiAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGhcbiAgICogQHJldHVybnMge251bWJlcn1cbiAgICovXG4gIGZ1bmN0aW9uIHByZXBhcmVMaXN0KGV2ZW50cywgc3RhcnQsIGxlbmd0aCkge1xuICAgIGxldCBpbmRleCA9IHN0YXJ0IC0gMTtcbiAgICBsZXQgY29udGFpbmVyQmFsYW5jZSA9IC0xO1xuICAgIGxldCBsaXN0U3ByZWFkID0gZmFsc2U7XG4gICAgLyoqIEB0eXBlIHtUb2tlbiB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgbGlzdEl0ZW07XG4gICAgLyoqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gICAgbGV0IGxpbmVJbmRleDtcbiAgICAvKiogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgZmlyc3RCbGFua0xpbmVJbmRleDtcbiAgICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gICAgbGV0IGF0TWFya2VyO1xuICAgIHdoaWxlICgrK2luZGV4IDw9IGxlbmd0aCkge1xuICAgICAgY29uc3QgZXZlbnQgPSBldmVudHNbaW5kZXhdO1xuICAgICAgc3dpdGNoIChldmVudFsxXS50eXBlKSB7XG4gICAgICAgIGNhc2UgXCJsaXN0VW5vcmRlcmVkXCI6XG4gICAgICAgIGNhc2UgXCJsaXN0T3JkZXJlZFwiOlxuICAgICAgICBjYXNlIFwiYmxvY2tRdW90ZVwiOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChldmVudFswXSA9PT0gJ2VudGVyJykge1xuICAgICAgICAgICAgICBjb250YWluZXJCYWxhbmNlKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb250YWluZXJCYWxhbmNlLS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhdE1hcmtlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBcImxpbmVFbmRpbmdCbGFua1wiOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChldmVudFswXSA9PT0gJ2VudGVyJykge1xuICAgICAgICAgICAgICBpZiAobGlzdEl0ZW0gJiYgIWF0TWFya2VyICYmICFjb250YWluZXJCYWxhbmNlICYmICFmaXJzdEJsYW5rTGluZUluZGV4KSB7XG4gICAgICAgICAgICAgICAgZmlyc3RCbGFua0xpbmVJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGF0TWFya2VyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlIFwibGluZVByZWZpeFwiOlxuICAgICAgICBjYXNlIFwibGlzdEl0ZW1WYWx1ZVwiOlxuICAgICAgICBjYXNlIFwibGlzdEl0ZW1NYXJrZXJcIjpcbiAgICAgICAgY2FzZSBcImxpc3RJdGVtUHJlZml4XCI6XG4gICAgICAgIGNhc2UgXCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2VcIjpcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBFbXB0eS5cblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGF0TWFya2VyID0gdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghY29udGFpbmVyQmFsYW5jZSAmJiBldmVudFswXSA9PT0gJ2VudGVyJyAmJiBldmVudFsxXS50eXBlID09PSBcImxpc3RJdGVtUHJlZml4XCIgfHwgY29udGFpbmVyQmFsYW5jZSA9PT0gLTEgJiYgZXZlbnRbMF0gPT09ICdleGl0JyAmJiAoZXZlbnRbMV0udHlwZSA9PT0gXCJsaXN0VW5vcmRlcmVkXCIgfHwgZXZlbnRbMV0udHlwZSA9PT0gXCJsaXN0T3JkZXJlZFwiKSkge1xuICAgICAgICBpZiAobGlzdEl0ZW0pIHtcbiAgICAgICAgICBsZXQgdGFpbEluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgbGluZUluZGV4ID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHdoaWxlICh0YWlsSW5kZXgtLSkge1xuICAgICAgICAgICAgY29uc3QgdGFpbEV2ZW50ID0gZXZlbnRzW3RhaWxJbmRleF07XG4gICAgICAgICAgICBpZiAodGFpbEV2ZW50WzFdLnR5cGUgPT09IFwibGluZUVuZGluZ1wiIHx8IHRhaWxFdmVudFsxXS50eXBlID09PSBcImxpbmVFbmRpbmdCbGFua1wiKSB7XG4gICAgICAgICAgICAgIGlmICh0YWlsRXZlbnRbMF0gPT09ICdleGl0JykgY29udGludWU7XG4gICAgICAgICAgICAgIGlmIChsaW5lSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBldmVudHNbbGluZUluZGV4XVsxXS50eXBlID0gXCJsaW5lRW5kaW5nQmxhbmtcIjtcbiAgICAgICAgICAgICAgICBsaXN0U3ByZWFkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0YWlsRXZlbnRbMV0udHlwZSA9IFwibGluZUVuZGluZ1wiO1xuICAgICAgICAgICAgICBsaW5lSW5kZXggPSB0YWlsSW5kZXg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRhaWxFdmVudFsxXS50eXBlID09PSBcImxpbmVQcmVmaXhcIiB8fCB0YWlsRXZlbnRbMV0udHlwZSA9PT0gXCJibG9ja1F1b3RlUHJlZml4XCIgfHwgdGFpbEV2ZW50WzFdLnR5cGUgPT09IFwiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2VcIiB8fCB0YWlsRXZlbnRbMV0udHlwZSA9PT0gXCJibG9ja1F1b3RlTWFya2VyXCIgfHwgdGFpbEV2ZW50WzFdLnR5cGUgPT09IFwibGlzdEl0ZW1JbmRlbnRcIikge1xuICAgICAgICAgICAgICAvLyBFbXB0eVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaXJzdEJsYW5rTGluZUluZGV4ICYmICghbGluZUluZGV4IHx8IGZpcnN0QmxhbmtMaW5lSW5kZXggPCBsaW5lSW5kZXgpKSB7XG4gICAgICAgICAgICBsaXN0SXRlbS5fc3ByZWFkID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGaXggcG9zaXRpb24uXG4gICAgICAgICAgbGlzdEl0ZW0uZW5kID0gT2JqZWN0LmFzc2lnbih7fSwgbGluZUluZGV4ID8gZXZlbnRzW2xpbmVJbmRleF1bMV0uc3RhcnQgOiBldmVudFsxXS5lbmQpO1xuICAgICAgICAgIGV2ZW50cy5zcGxpY2UobGluZUluZGV4IHx8IGluZGV4LCAwLCBbJ2V4aXQnLCBsaXN0SXRlbSwgZXZlbnRbMl1dKTtcbiAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgIGxlbmd0aCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGxpc3QgaXRlbS5cbiAgICAgICAgaWYgKGV2ZW50WzFdLnR5cGUgPT09IFwibGlzdEl0ZW1QcmVmaXhcIikge1xuICAgICAgICAgIC8qKiBAdHlwZSB7VG9rZW59ICovXG4gICAgICAgICAgY29uc3QgaXRlbSA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdsaXN0SXRlbScsXG4gICAgICAgICAgICBfc3ByZWFkOiBmYWxzZSxcbiAgICAgICAgICAgIHN0YXJ0OiBPYmplY3QuYXNzaWduKHt9LCBldmVudFsxXS5zdGFydCksXG4gICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB3ZVx1MjAxOWxsIGFkZCBgZW5kYCBpbiBhIHNlY29uZC5cbiAgICAgICAgICAgIGVuZDogdW5kZWZpbmVkXG4gICAgICAgICAgfTtcbiAgICAgICAgICBsaXN0SXRlbSA9IGl0ZW07XG4gICAgICAgICAgZXZlbnRzLnNwbGljZShpbmRleCwgMCwgWydlbnRlcicsIGl0ZW0sIGV2ZW50WzJdXSk7XG4gICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICBsZW5ndGgrKztcbiAgICAgICAgICBmaXJzdEJsYW5rTGluZUluZGV4ID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGF0TWFya2VyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBldmVudHNbc3RhcnRdWzFdLl9zcHJlYWQgPSBsaXN0U3ByZWFkO1xuICAgIHJldHVybiBsZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG9wZW5lciBoYW5kbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7KHRva2VuOiBUb2tlbikgPT4gTm9kZXN9IGNyZWF0ZVxuICAgKiAgIENyZWF0ZSBhIG5vZGUuXG4gICAqIEBwYXJhbSB7SGFuZGxlIHwgdW5kZWZpbmVkfSBbYW5kXVxuICAgKiAgIE9wdGlvbmFsIGZ1bmN0aW9uIHRvIGFsc28gcnVuLlxuICAgKiBAcmV0dXJucyB7SGFuZGxlfVxuICAgKiAgIEhhbmRsZS5cbiAgICovXG4gIGZ1bmN0aW9uIG9wZW5lcihjcmVhdGUsIGFuZCkge1xuICAgIHJldHVybiBvcGVuO1xuXG4gICAgLyoqXG4gICAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgICAqIEBwYXJhbSB7VG9rZW59IHRva2VuXG4gICAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvcGVuKHRva2VuKSB7XG4gICAgICBlbnRlci5jYWxsKHRoaXMsIGNyZWF0ZSh0b2tlbiksIHRva2VuKTtcbiAgICAgIGlmIChhbmQpIGFuZC5jYWxsKHRoaXMsIHRva2VuKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHR5cGUge0NvbXBpbGVDb250ZXh0WydidWZmZXInXX1cbiAgICovXG4gIGZ1bmN0aW9uIGJ1ZmZlcigpIHtcbiAgICB0aGlzLnN0YWNrLnB1c2goe1xuICAgICAgdHlwZTogJ2ZyYWdtZW50JyxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtDb21waWxlQ29udGV4dFsnZW50ZXInXX1cbiAgICovXG4gIGZ1bmN0aW9uIGVudGVyKG5vZGUsIHRva2VuLCBlcnJvckhhbmRsZXIpIHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV07XG4gICAgLyoqIEB0eXBlIHtBcnJheTxOb2Rlcz59ICovXG4gICAgY29uc3Qgc2libGluZ3MgPSBwYXJlbnQuY2hpbGRyZW47XG4gICAgc2libGluZ3MucHVzaChub2RlKTtcbiAgICB0aGlzLnN0YWNrLnB1c2gobm9kZSk7XG4gICAgdGhpcy50b2tlblN0YWNrLnB1c2goW3Rva2VuLCBlcnJvckhhbmRsZXIgfHwgdW5kZWZpbmVkXSk7XG4gICAgbm9kZS5wb3NpdGlvbiA9IHtcbiAgICAgIHN0YXJ0OiBwb2ludCh0b2tlbi5zdGFydCksXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBgZW5kYCB3aWxsIGJlIHBhdGNoZWQgbGF0ZXIuXG4gICAgICBlbmQ6IHVuZGVmaW5lZFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY2xvc2VyIGhhbmRsZS5cbiAgICpcbiAgICogQHBhcmFtIHtIYW5kbGUgfCB1bmRlZmluZWR9IFthbmRdXG4gICAqICAgT3B0aW9uYWwgZnVuY3Rpb24gdG8gYWxzbyBydW4uXG4gICAqIEByZXR1cm5zIHtIYW5kbGV9XG4gICAqICAgSGFuZGxlLlxuICAgKi9cbiAgZnVuY3Rpb24gY2xvc2VyKGFuZCkge1xuICAgIHJldHVybiBjbG9zZTtcblxuICAgIC8qKlxuICAgICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICAgKiBAcGFyYW0ge1Rva2VufSB0b2tlblxuICAgICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xvc2UodG9rZW4pIHtcbiAgICAgIGlmIChhbmQpIGFuZC5jYWxsKHRoaXMsIHRva2VuKTtcbiAgICAgIGV4aXQuY2FsbCh0aGlzLCB0b2tlbik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtDb21waWxlQ29udGV4dFsnZXhpdCddfVxuICAgKi9cbiAgZnVuY3Rpb24gZXhpdCh0b2tlbiwgb25FeGl0RXJyb3IpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFjay5wb3AoKTtcbiAgICBjb25zdCBvcGVuID0gdGhpcy50b2tlblN0YWNrLnBvcCgpO1xuICAgIGlmICghb3Blbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY2xvc2UgYCcgKyB0b2tlbi50eXBlICsgJ2AgKCcgKyBzdHJpbmdpZnlQb3NpdGlvbih7XG4gICAgICAgIHN0YXJ0OiB0b2tlbi5zdGFydCxcbiAgICAgICAgZW5kOiB0b2tlbi5lbmRcbiAgICAgIH0pICsgJyk6IGl0XHUyMDE5cyBub3Qgb3BlbicpO1xuICAgIH0gZWxzZSBpZiAob3BlblswXS50eXBlICE9PSB0b2tlbi50eXBlKSB7XG4gICAgICBpZiAob25FeGl0RXJyb3IpIHtcbiAgICAgICAgb25FeGl0RXJyb3IuY2FsbCh0aGlzLCB0b2tlbiwgb3BlblswXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gb3BlblsxXSB8fCBkZWZhdWx0T25FcnJvcjtcbiAgICAgICAgaGFuZGxlci5jYWxsKHRoaXMsIHRva2VuLCBvcGVuWzBdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbm9kZS5wb3NpdGlvbi5lbmQgPSBwb2ludCh0b2tlbi5lbmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtDb21waWxlQ29udGV4dFsncmVzdW1lJ119XG4gICAqL1xuICBmdW5jdGlvbiByZXN1bWUoKSB7XG4gICAgcmV0dXJuIHRvU3RyaW5nKHRoaXMuc3RhY2sucG9wKCkpO1xuICB9XG5cbiAgLy9cbiAgLy8gSGFuZGxlcnMuXG4gIC8vXG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZW50ZXJsaXN0b3JkZXJlZCgpIHtcbiAgICB0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmVudGVybGlzdGl0ZW12YWx1ZSh0b2tlbikge1xuICAgIGlmICh0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlKSB7XG4gICAgICBjb25zdCBhbmNlc3RvciA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAyXTtcbiAgICAgIGFuY2VzdG9yLnN0YXJ0ID0gTnVtYmVyLnBhcnNlSW50KHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pLCAxMCk7XG4gICAgICB0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRjb2RlZmVuY2VkZmVuY2VpbmZvKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpO1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV07XG4gICAgbm9kZS5sYW5nID0gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRjb2RlZmVuY2VkZmVuY2VtZXRhKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpO1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV07XG4gICAgbm9kZS5tZXRhID0gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRjb2RlZmVuY2VkZmVuY2UoKSB7XG4gICAgLy8gRXhpdCBpZiB0aGlzIGlzIHRoZSBjbG9zaW5nIGZlbmNlLlxuICAgIGlmICh0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGUpIHJldHVybjtcbiAgICB0aGlzLmJ1ZmZlcigpO1xuICAgIHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0Y29kZWZlbmNlZCgpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKTtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIG5vZGUudmFsdWUgPSBkYXRhLnJlcGxhY2UoL14oXFxyP1xcbnxcXHIpfChcXHI/XFxufFxccikkL2csICcnKTtcbiAgICB0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0Y29kZWluZGVudGVkKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpO1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV07XG4gICAgbm9kZS52YWx1ZSA9IGRhdGEucmVwbGFjZSgvKFxccj9cXG58XFxyKSQvZywgJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGRlZmluaXRpb25sYWJlbHN0cmluZyh0b2tlbikge1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5yZXN1bWUoKTtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIG5vZGUubGFiZWwgPSBsYWJlbDtcbiAgICBub2RlLmlkZW50aWZpZXIgPSBub3JtYWxpemVJZGVudGlmaWVyKHRoaXMuc2xpY2VTZXJpYWxpemUodG9rZW4pKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGRlZmluaXRpb250aXRsZXN0cmluZygpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKTtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIG5vZGUudGl0bGUgPSBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGRlZmluaXRpb25kZXN0aW5hdGlvbnN0cmluZygpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKTtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIG5vZGUudXJsID0gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRhdHhoZWFkaW5nc2VxdWVuY2UodG9rZW4pIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIGlmICghbm9kZS5kZXB0aCkge1xuICAgICAgY29uc3QgZGVwdGggPSB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKS5sZW5ndGg7XG4gICAgICBub2RlLmRlcHRoID0gZGVwdGg7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdHNldGV4dGhlYWRpbmd0ZXh0KCkge1xuICAgIHRoaXMuZGF0YS5zZXRleHRIZWFkaW5nU2x1cnBMaW5lRW5kaW5nID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRzZXRleHRoZWFkaW5nbGluZXNlcXVlbmNlKHRva2VuKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXTtcbiAgICBub2RlLmRlcHRoID0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbikuY29kZVBvaW50QXQoMCkgPT09IDYxID8gMSA6IDI7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0c2V0ZXh0aGVhZGluZygpIHtcbiAgICB0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZW50ZXJkYXRhKHRva2VuKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXTtcbiAgICAvKiogQHR5cGUge0FycmF5PE5vZGVzPn0gKi9cbiAgICBjb25zdCBzaWJsaW5ncyA9IG5vZGUuY2hpbGRyZW47XG4gICAgbGV0IHRhaWwgPSBzaWJsaW5nc1tzaWJsaW5ncy5sZW5ndGggLSAxXTtcbiAgICBpZiAoIXRhaWwgfHwgdGFpbC50eXBlICE9PSAndGV4dCcpIHtcbiAgICAgIC8vIEFkZCBhIG5ldyB0ZXh0IG5vZGUuXG4gICAgICB0YWlsID0gdGV4dCgpO1xuICAgICAgdGFpbC5wb3NpdGlvbiA9IHtcbiAgICAgICAgc3RhcnQ6IHBvaW50KHRva2VuLnN0YXJ0KSxcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogd2VcdTIwMTlsbCBhZGQgYGVuZGAgbGF0ZXIuXG4gICAgICAgIGVuZDogdW5kZWZpbmVkXG4gICAgICB9O1xuICAgICAgc2libGluZ3MucHVzaCh0YWlsKTtcbiAgICB9XG4gICAgdGhpcy5zdGFjay5wdXNoKHRhaWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0ZGF0YSh0b2tlbikge1xuICAgIGNvbnN0IHRhaWwgPSB0aGlzLnN0YWNrLnBvcCgpO1xuICAgIHRhaWwudmFsdWUgKz0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbik7XG4gICAgdGFpbC5wb3NpdGlvbi5lbmQgPSBwb2ludCh0b2tlbi5lbmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0bGluZWVuZGluZyh0b2tlbikge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV07XG4gICAgLy8gSWYgd2VcdTIwMTlyZSBhdCBhIGhhcmQgYnJlYWssIGluY2x1ZGUgdGhlIGxpbmUgZW5kaW5nIGluIHRoZXJlLlxuICAgIGlmICh0aGlzLmRhdGEuYXRIYXJkQnJlYWspIHtcbiAgICAgIGNvbnN0IHRhaWwgPSBjb250ZXh0LmNoaWxkcmVuW2NvbnRleHQuY2hpbGRyZW4ubGVuZ3RoIC0gMV07XG4gICAgICB0YWlsLnBvc2l0aW9uLmVuZCA9IHBvaW50KHRva2VuLmVuZCk7XG4gICAgICB0aGlzLmRhdGEuYXRIYXJkQnJlYWsgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcgJiYgY29uZmlnLmNhbkNvbnRhaW5Fb2xzLmluY2x1ZGVzKGNvbnRleHQudHlwZSkpIHtcbiAgICAgIG9uZW50ZXJkYXRhLmNhbGwodGhpcywgdG9rZW4pO1xuICAgICAgb25leGl0ZGF0YS5jYWxsKHRoaXMsIHRva2VuKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRoYXJkYnJlYWsoKSB7XG4gICAgdGhpcy5kYXRhLmF0SGFyZEJyZWFrID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGh0bWxmbG93KCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpO1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV07XG4gICAgbm9kZS52YWx1ZSA9IGRhdGE7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRodG1sdGV4dCgpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKTtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIG5vZGUudmFsdWUgPSBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0Y29kZXRleHQoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucmVzdW1lKCk7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXTtcbiAgICBub2RlLnZhbHVlID0gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGxpbmsoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXTtcbiAgICAvLyBOb3RlOiB0aGVyZSBhcmUgYWxzbyBgaWRlbnRpZmllcmAgYW5kIGBsYWJlbGAgZmllbGRzIG9uIHRoaXMgbGluayBub2RlIVxuICAgIC8vIFRoZXNlIGFyZSB1c2VkIC8gY2xlYW5lZCBoZXJlLlxuXG4gICAgLy8gVG8gZG86IGNsZWFuLlxuICAgIGlmICh0aGlzLmRhdGEuaW5SZWZlcmVuY2UpIHtcbiAgICAgIC8qKiBAdHlwZSB7UmVmZXJlbmNlVHlwZX0gKi9cbiAgICAgIGNvbnN0IHJlZmVyZW5jZVR5cGUgPSB0aGlzLmRhdGEucmVmZXJlbmNlVHlwZSB8fCAnc2hvcnRjdXQnO1xuICAgICAgbm9kZS50eXBlICs9ICdSZWZlcmVuY2UnO1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbXV0YXRlLlxuICAgICAgbm9kZS5yZWZlcmVuY2VUeXBlID0gcmVmZXJlbmNlVHlwZTtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IG11dGF0ZS5cbiAgICAgIGRlbGV0ZSBub2RlLnVybDtcbiAgICAgIGRlbGV0ZSBub2RlLnRpdGxlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBtdXRhdGUuXG4gICAgICBkZWxldGUgbm9kZS5pZGVudGlmaWVyO1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbXV0YXRlLlxuICAgICAgZGVsZXRlIG5vZGUubGFiZWw7XG4gICAgfVxuICAgIHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0aW1hZ2UoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGggLSAxXTtcbiAgICAvLyBOb3RlOiB0aGVyZSBhcmUgYWxzbyBgaWRlbnRpZmllcmAgYW5kIGBsYWJlbGAgZmllbGRzIG9uIHRoaXMgbGluayBub2RlIVxuICAgIC8vIFRoZXNlIGFyZSB1c2VkIC8gY2xlYW5lZCBoZXJlLlxuXG4gICAgLy8gVG8gZG86IGNsZWFuLlxuICAgIGlmICh0aGlzLmRhdGEuaW5SZWZlcmVuY2UpIHtcbiAgICAgIC8qKiBAdHlwZSB7UmVmZXJlbmNlVHlwZX0gKi9cbiAgICAgIGNvbnN0IHJlZmVyZW5jZVR5cGUgPSB0aGlzLmRhdGEucmVmZXJlbmNlVHlwZSB8fCAnc2hvcnRjdXQnO1xuICAgICAgbm9kZS50eXBlICs9ICdSZWZlcmVuY2UnO1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbXV0YXRlLlxuICAgICAgbm9kZS5yZWZlcmVuY2VUeXBlID0gcmVmZXJlbmNlVHlwZTtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IG11dGF0ZS5cbiAgICAgIGRlbGV0ZSBub2RlLnVybDtcbiAgICAgIGRlbGV0ZSBub2RlLnRpdGxlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBtdXRhdGUuXG4gICAgICBkZWxldGUgbm9kZS5pZGVudGlmaWVyO1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbXV0YXRlLlxuICAgICAgZGVsZXRlIG5vZGUubGFiZWw7XG4gICAgfVxuICAgIHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0bGFiZWx0ZXh0KHRva2VuKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbik7XG4gICAgY29uc3QgYW5jZXN0b3IgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMl07XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogc3Rhc2ggdGhpcyBvbiB0aGUgbm9kZSwgYXMgaXQgbWlnaHQgYmVjb21lIGEgcmVmZXJlbmNlXG4gICAgLy8gbGF0ZXIuXG4gICAgYW5jZXN0b3IubGFiZWwgPSBkZWNvZGVTdHJpbmcoc3RyaW5nKTtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBzYW1lIGFzIGFib3ZlLlxuICAgIGFuY2VzdG9yLmlkZW50aWZpZXIgPSBub3JtYWxpemVJZGVudGlmaWVyKHN0cmluZykudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGxhYmVsKCkge1xuICAgIGNvbnN0IGZyYWdtZW50ID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5yZXN1bWUoKTtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIC8vIEFzc3VtZSBhIHJlZmVyZW5jZS5cbiAgICB0aGlzLmRhdGEuaW5SZWZlcmVuY2UgPSB0cnVlO1xuICAgIGlmIChub2RlLnR5cGUgPT09ICdsaW5rJykge1xuICAgICAgLyoqIEB0eXBlIHtBcnJheTxQaHJhc2luZ0NvbnRlbnQ+fSAqL1xuICAgICAgY29uc3QgY2hpbGRyZW4gPSBmcmFnbWVudC5jaGlsZHJlbjtcbiAgICAgIG5vZGUuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZS5hbHQgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cblxuICBmdW5jdGlvbiBvbmV4aXRyZXNvdXJjZWRlc3RpbmF0aW9uc3RyaW5nKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpO1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV07XG4gICAgbm9kZS51cmwgPSBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0cmVzb3VyY2V0aXRsZXN0cmluZygpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZXN1bWUoKTtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIG5vZGUudGl0bGUgPSBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0cmVzb3VyY2UoKSB7XG4gICAgdGhpcy5kYXRhLmluUmVmZXJlbmNlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25lbnRlcnJlZmVyZW5jZSgpIHtcbiAgICB0aGlzLmRhdGEucmVmZXJlbmNlVHlwZSA9ICdjb2xsYXBzZWQnO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG5cbiAgZnVuY3Rpb24gb25leGl0cmVmZXJlbmNlc3RyaW5nKHRva2VuKSB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnJlc3VtZSgpO1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV07XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogc3Rhc2ggdGhpcyBvbiB0aGUgbm9kZSwgYXMgaXQgbWlnaHQgYmVjb21lIGEgcmVmZXJlbmNlXG4gICAgLy8gbGF0ZXIuXG4gICAgbm9kZS5sYWJlbCA9IGxhYmVsO1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHNhbWUgYXMgYWJvdmUuXG4gICAgbm9kZS5pZGVudGlmaWVyID0gbm9ybWFsaXplSWRlbnRpZmllcih0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKSkudG9Mb3dlckNhc2UoKTtcbiAgICB0aGlzLmRhdGEucmVmZXJlbmNlVHlwZSA9ICdmdWxsJztcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuXG4gIGZ1bmN0aW9uIG9uZXhpdGNoYXJhY3RlcnJlZmVyZW5jZW1hcmtlcih0b2tlbikge1xuICAgIHRoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlID0gdG9rZW4udHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRjaGFyYWN0ZXJyZWZlcmVuY2V2YWx1ZSh0b2tlbikge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKTtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGU7XG4gICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgbGV0IHZhbHVlO1xuICAgIGlmICh0eXBlKSB7XG4gICAgICB2YWx1ZSA9IGRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UoZGF0YSwgdHlwZSA9PT0gXCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljXCIgPyAxMCA6IDE2KTtcbiAgICAgIHRoaXMuZGF0YS5jaGFyYWN0ZXJSZWZlcmVuY2VUeXBlID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZShkYXRhKTtcbiAgICAgIHZhbHVlID0gcmVzdWx0O1xuICAgIH1cbiAgICBjb25zdCB0YWlsID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIHRhaWwudmFsdWUgKz0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gb25leGl0Y2hhcmFjdGVycmVmZXJlbmNlKHRva2VuKSB7XG4gICAgY29uc3QgdGFpbCA9IHRoaXMuc3RhY2sucG9wKCk7XG4gICAgdGFpbC5wb3NpdGlvbi5lbmQgPSBwb2ludCh0b2tlbi5lbmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9uZXhpdGF1dG9saW5rcHJvdG9jb2wodG9rZW4pIHtcbiAgICBvbmV4aXRkYXRhLmNhbGwodGhpcywgdG9rZW4pO1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV07XG4gICAgbm9kZS51cmwgPSB0aGlzLnNsaWNlU2VyaWFsaXplKHRva2VuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7Q29tcGlsZUNvbnRleHR9XG4gICAqIEB0eXBlIHtIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbmV4aXRhdXRvbGlua2VtYWlsKHRva2VuKSB7XG4gICAgb25leGl0ZGF0YS5jYWxsKHRoaXMsIHRva2VuKTtcbiAgICBjb25zdCBub2RlID0gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICAgIG5vZGUudXJsID0gJ21haWx0bzonICsgdGhpcy5zbGljZVNlcmlhbGl6ZSh0b2tlbik7XG4gIH1cblxuICAvL1xuICAvLyBDcmVhdGVycy5cbiAgLy9cblxuICAvKiogQHJldHVybnMge0Jsb2NrcXVvdGV9ICovXG4gIGZ1bmN0aW9uIGJsb2NrUXVvdGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdibG9ja3F1b3RlJyxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH07XG4gIH1cblxuICAvKiogQHJldHVybnMge0NvZGV9ICovXG4gIGZ1bmN0aW9uIGNvZGVGbG93KCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnY29kZScsXG4gICAgICBsYW5nOiBudWxsLFxuICAgICAgbWV0YTogbnVsbCxcbiAgICAgIHZhbHVlOiAnJ1xuICAgIH07XG4gIH1cblxuICAvKiogQHJldHVybnMge0lubGluZUNvZGV9ICovXG4gIGZ1bmN0aW9uIGNvZGVUZXh0KCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnaW5saW5lQ29kZScsXG4gICAgICB2YWx1ZTogJydcbiAgICB9O1xuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtEZWZpbml0aW9ufSAqL1xuICBmdW5jdGlvbiBkZWZpbml0aW9uKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnZGVmaW5pdGlvbicsXG4gICAgICBpZGVudGlmaWVyOiAnJyxcbiAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgdGl0bGU6IG51bGwsXG4gICAgICB1cmw6ICcnXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7RW1waGFzaXN9ICovXG4gIGZ1bmN0aW9uIGVtcGhhc2lzKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnZW1waGFzaXMnLFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7SGVhZGluZ30gKi9cbiAgZnVuY3Rpb24gaGVhZGluZygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2hlYWRpbmcnLFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBgZGVwdGhgIHdpbGwgYmUgc2V0IGxhdGVyLlxuICAgICAgZGVwdGg6IDAsXG4gICAgICBjaGlsZHJlbjogW11cbiAgICB9O1xuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtCcmVha30gKi9cbiAgZnVuY3Rpb24gaGFyZEJyZWFrKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnYnJlYWsnXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7SHRtbH0gKi9cbiAgZnVuY3Rpb24gaHRtbCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2h0bWwnLFxuICAgICAgdmFsdWU6ICcnXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7SW1hZ2V9ICovXG4gIGZ1bmN0aW9uIGltYWdlKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgdGl0bGU6IG51bGwsXG4gICAgICB1cmw6ICcnLFxuICAgICAgYWx0OiBudWxsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7TGlua30gKi9cbiAgZnVuY3Rpb24gbGluaygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgdGl0bGU6IG51bGwsXG4gICAgICB1cmw6ICcnLFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1Rva2VufSB0b2tlblxuICAgKiBAcmV0dXJucyB7TGlzdH1cbiAgICovXG4gIGZ1bmN0aW9uIGxpc3QodG9rZW4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgb3JkZXJlZDogdG9rZW4udHlwZSA9PT0gJ2xpc3RPcmRlcmVkJyxcbiAgICAgIHN0YXJ0OiBudWxsLFxuICAgICAgc3ByZWFkOiB0b2tlbi5fc3ByZWFkLFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1Rva2VufSB0b2tlblxuICAgKiBAcmV0dXJucyB7TGlzdEl0ZW19XG4gICAqL1xuICBmdW5jdGlvbiBsaXN0SXRlbSh0b2tlbikge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnbGlzdEl0ZW0nLFxuICAgICAgc3ByZWFkOiB0b2tlbi5fc3ByZWFkLFxuICAgICAgY2hlY2tlZDogbnVsbCxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH07XG4gIH1cblxuICAvKiogQHJldHVybnMge1BhcmFncmFwaH0gKi9cbiAgZnVuY3Rpb24gcGFyYWdyYXBoKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH07XG4gIH1cblxuICAvKiogQHJldHVybnMge1N0cm9uZ30gKi9cbiAgZnVuY3Rpb24gc3Ryb25nKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnc3Ryb25nJyxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH07XG4gIH1cblxuICAvKiogQHJldHVybnMge1RleHR9ICovXG4gIGZ1bmN0aW9uIHRleHQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIHZhbHVlOiAnJ1xuICAgIH07XG4gIH1cblxuICAvKiogQHJldHVybnMge1RoZW1hdGljQnJlYWt9ICovXG4gIGZ1bmN0aW9uIHRoZW1hdGljQnJlYWsoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICd0aGVtYXRpY0JyZWFrJ1xuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDb3B5IGEgcG9pbnQtbGlrZSB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge1BvaW50fSBkXG4gKiAgIFBvaW50LWxpa2UgdmFsdWUuXG4gKiBAcmV0dXJucyB7UG9pbnR9XG4gKiAgIHVuaXN0IHBvaW50LlxuICovXG5mdW5jdGlvbiBwb2ludChkKSB7XG4gIHJldHVybiB7XG4gICAgbGluZTogZC5saW5lLFxuICAgIGNvbHVtbjogZC5jb2x1bW4sXG4gICAgb2Zmc2V0OiBkLm9mZnNldFxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Q29uZmlnfSBjb21iaW5lZFxuICogQHBhcmFtIHtBcnJheTxBcnJheTxFeHRlbnNpb24+IHwgRXh0ZW5zaW9uPn0gZXh0ZW5zaW9uc1xuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqL1xuZnVuY3Rpb24gY29uZmlndXJlKGNvbWJpbmVkLCBleHRlbnNpb25zKSB7XG4gIGxldCBpbmRleCA9IC0xO1xuICB3aGlsZSAoKytpbmRleCA8IGV4dGVuc2lvbnMubGVuZ3RoKSB7XG4gICAgY29uc3QgdmFsdWUgPSBleHRlbnNpb25zW2luZGV4XTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGNvbmZpZ3VyZShjb21iaW5lZCwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleHRlbnNpb24oY29tYmluZWQsIHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0NvbmZpZ30gY29tYmluZWRcbiAqIEBwYXJhbSB7RXh0ZW5zaW9ufSBleHRlbnNpb25cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKi9cbmZ1bmN0aW9uIGV4dGVuc2lvbihjb21iaW5lZCwgZXh0ZW5zaW9uKSB7XG4gIC8qKiBAdHlwZSB7a2V5b2YgRXh0ZW5zaW9ufSAqL1xuICBsZXQga2V5O1xuICBmb3IgKGtleSBpbiBleHRlbnNpb24pIHtcbiAgICBpZiAob3duLmNhbGwoZXh0ZW5zaW9uLCBrZXkpKSB7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlICdjYW5Db250YWluRW9scyc6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBleHRlbnNpb25ba2V5XTtcbiAgICAgICAgICAgIGlmIChyaWdodCkge1xuICAgICAgICAgICAgICBjb21iaW5lZFtrZXldLnB1c2goLi4ucmlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlICd0cmFuc2Zvcm1zJzpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCByaWdodCA9IGV4dGVuc2lvbltrZXldO1xuICAgICAgICAgICAgaWYgKHJpZ2h0KSB7XG4gICAgICAgICAgICAgIGNvbWJpbmVkW2tleV0ucHVzaCguLi5yaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2VudGVyJzpcbiAgICAgICAgY2FzZSAnZXhpdCc6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBleHRlbnNpb25ba2V5XTtcbiAgICAgICAgICAgIGlmIChyaWdodCkge1xuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGNvbWJpbmVkW2tleV0sIHJpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgLy8gTm8gZGVmYXVsdFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiogQHR5cGUge09uRW50ZXJFcnJvcn0gKi9cbmZ1bmN0aW9uIGRlZmF1bHRPbkVycm9yKGxlZnQsIHJpZ2h0KSB7XG4gIGlmIChsZWZ0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY2xvc2UgYCcgKyBsZWZ0LnR5cGUgKyAnYCAoJyArIHN0cmluZ2lmeVBvc2l0aW9uKHtcbiAgICAgIHN0YXJ0OiBsZWZ0LnN0YXJ0LFxuICAgICAgZW5kOiBsZWZ0LmVuZFxuICAgIH0pICsgJyk6IGEgZGlmZmVyZW50IHRva2VuIChgJyArIHJpZ2h0LnR5cGUgKyAnYCwgJyArIHN0cmluZ2lmeVBvc2l0aW9uKHtcbiAgICAgIHN0YXJ0OiByaWdodC5zdGFydCxcbiAgICAgIGVuZDogcmlnaHQuZW5kXG4gICAgfSkgKyAnKSBpcyBvcGVuJyk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY2xvc2UgZG9jdW1lbnQsIGEgdG9rZW4gKGAnICsgcmlnaHQudHlwZSArICdgLCAnICsgc3RyaW5naWZ5UG9zaXRpb24oe1xuICAgICAgc3RhcnQ6IHJpZ2h0LnN0YXJ0LFxuICAgICAgZW5kOiByaWdodC5lbmRcbiAgICB9KSArICcpIGlzIHN0aWxsIG9wZW4nKTtcbiAgfVxufSIsICIvLyBOb3RlOiB0eXBlcyBleHBvcnRlZCBmcm9tIGBpbmRleC5kLnRzYC5cbmV4cG9ydCB7IGZyb21NYXJrZG93biB9IGZyb20gJy4vbGliL2luZGV4LmpzJzsiLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bicpLk9wdGlvbnN9IEZyb21NYXJrZG93bk9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaWZpZWQnKS5QYXJzZXI8Um9vdD59IFBhcnNlclxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pZmllZCcpLlByb2Nlc3NvcjxSb290Pn0gUHJvY2Vzc29yXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7T21pdDxGcm9tTWFya2Rvd25PcHRpb25zLCAnZXh0ZW5zaW9ucycgfCAnbWRhc3RFeHRlbnNpb25zJz59IE9wdGlvbnNcbiAqL1xuXG5pbXBvcnQge2Zyb21NYXJrZG93bn0gZnJvbSAnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJ1xuXG4vKipcbiAqIEFhZGQgc3VwcG9ydCBmb3IgcGFyc2luZyBmcm9tIG1hcmtkb3duLlxuICpcbiAqIEBwYXJhbSB7UmVhZG9ubHk8T3B0aW9ucz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVtYXJrUGFyc2Uob3B0aW9ucykge1xuICAvKiogQHR5cGUge1Byb2Nlc3Nvcn0gKi9cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgaW4gSlNEb2MgZ2VuZXJhdGVzIHdyb25nIHR5cGVzIGlmIGB0aGlzYCBpcyB0eXBlZCByZWd1bGFybHkuXG4gIGNvbnN0IHNlbGYgPSB0aGlzXG5cbiAgc2VsZi5wYXJzZXIgPSBwYXJzZXJcblxuICAvKipcbiAgICogQHR5cGUge1BhcnNlcn1cbiAgICovXG4gIGZ1bmN0aW9uIHBhcnNlcihkb2MpIHtcbiAgICByZXR1cm4gZnJvbU1hcmtkb3duKGRvYywge1xuICAgICAgLi4uc2VsZi5kYXRhKCdzZXR0aW5ncycpLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIC8vIE5vdGU6IHRoZXNlIG9wdGlvbnMgYXJlIG5vdCBpbiB0aGUgcmVhZG1lLlxuICAgICAgLy8gVGhlIGdvYWwgaXMgZm9yIHRoZW0gdG8gYmUgc2V0IGJ5IHBsdWdpbnMgb24gYGRhdGFgIGluc3RlYWQgb2YgYmVpbmdcbiAgICAgIC8vIHBhc3NlZCBieSB1c2Vycy5cbiAgICAgIGV4dGVuc2lvbnM6IHNlbGYuZGF0YSgnbWljcm9tYXJrRXh0ZW5zaW9ucycpIHx8IFtdLFxuICAgICAgbWRhc3RFeHRlbnNpb25zOiBzZWxmLmRhdGEoJ2Zyb21NYXJrZG93bkV4dGVuc2lvbnMnKSB8fCBbXVxuICAgIH0pXG4gIH1cbn1cbiIsICIvLyBOb3RlOiB0eXBlcyBleHBvc2VkIGZyb20gYGluZGV4LmQudHNgLlxuZXhwb3J0IHtkZWZhdWx0fSBmcm9tICcuL2xpYi9pbmRleC5qcydcbiIsICIvL1xuLy8gZm9ybWF0IC0gcHJpbnRmLWxpa2Ugc3RyaW5nIGZvcm1hdHRpbmcgZm9yIEphdmFTY3JpcHRcbi8vIGdpdGh1Yi5jb20vc2Ftc29uanMvZm9ybWF0XG4vLyBAX3Nqc1xuLy9cbi8vIENvcHlyaWdodCAyMDEwIC0gMjAxMyBTYW1pIFNhbWh1cmkgPHNhbWlAc2FtaHVyaS5uZXQ+XG4vL1xuLy8gTUlUIExpY2Vuc2Vcbi8vIGh0dHA6Ly9zanMubWl0LWxpY2Vuc2Uub3JnXG4vL1xuXG47KGZ1bmN0aW9uKCkge1xuXG4gIC8vLy8gRXhwb3J0IHRoZSBBUElcbiAgdmFyIG5hbWVzcGFjZTtcblxuICAvLyBDb21tb25KUyAvIE5vZGUgbW9kdWxlXG4gIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuICAgIG5hbWVzcGFjZSA9IG1vZHVsZS5leHBvcnRzID0gZm9ybWF0O1xuICB9XG5cbiAgLy8gQnJvd3NlcnMgYW5kIG90aGVyIGVudmlyb25tZW50c1xuICBlbHNlIHtcbiAgICAvLyBHZXQgdGhlIGdsb2JhbCBvYmplY3QuIFdvcmtzIGluIEVTMywgRVM1LCBhbmQgRVM1IHN0cmljdCBtb2RlLlxuICAgIG5hbWVzcGFjZSA9IChmdW5jdGlvbigpeyByZXR1cm4gdGhpcyB8fCAoMSxldmFsKSgndGhpcycpIH0oKSk7XG4gIH1cblxuICBuYW1lc3BhY2UuZm9ybWF0ID0gZm9ybWF0O1xuICBuYW1lc3BhY2UudnNwcmludGYgPSB2c3ByaW50ZjtcblxuICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBjb25zb2xlLmxvZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIG5hbWVzcGFjZS5wcmludGYgPSBwcmludGY7XG4gIH1cblxuICBmdW5jdGlvbiBwcmludGYoLyogLi4uICovKSB7XG4gICAgY29uc29sZS5sb2coZm9ybWF0LmFwcGx5KG51bGwsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgZnVuY3Rpb24gdnNwcmludGYoZm10LCByZXBsYWNlbWVudHMpIHtcbiAgICByZXR1cm4gZm9ybWF0LmFwcGx5KG51bGwsIFtmbXRdLmNvbmNhdChyZXBsYWNlbWVudHMpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1hdChmbXQpIHtcbiAgICB2YXIgYXJnSW5kZXggPSAxIC8vIHNraXAgaW5pdGlhbCBmb3JtYXQgYXJndW1lbnRcbiAgICAgICwgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKVxuICAgICAgLCBpID0gMFxuICAgICAgLCBuID0gZm10Lmxlbmd0aFxuICAgICAgLCByZXN1bHQgPSAnJ1xuICAgICAgLCBjXG4gICAgICAsIGVzY2FwZWQgPSBmYWxzZVxuICAgICAgLCBhcmdcbiAgICAgICwgdG1wXG4gICAgICAsIGxlYWRpbmdaZXJvID0gZmFsc2VcbiAgICAgICwgcHJlY2lzaW9uXG4gICAgICAsIG5leHRBcmcgPSBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3NbYXJnSW5kZXgrK107IH1cbiAgICAgICwgc2x1cnBOdW1iZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgZGlnaXRzID0gJyc7XG4gICAgICAgICAgd2hpbGUgKC9cXGQvLnRlc3QoZm10W2ldKSkge1xuICAgICAgICAgICAgZGlnaXRzICs9IGZtdFtpKytdO1xuICAgICAgICAgICAgYyA9IGZtdFtpXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGRpZ2l0cy5sZW5ndGggPiAwID8gcGFyc2VJbnQoZGlnaXRzKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICAgIDtcbiAgICBmb3IgKDsgaSA8IG47ICsraSkge1xuICAgICAgYyA9IGZtdFtpXTtcbiAgICAgIGlmIChlc2NhcGVkKSB7XG4gICAgICAgIGVzY2FwZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGMgPT0gJy4nKSB7XG4gICAgICAgICAgbGVhZGluZ1plcm8gPSBmYWxzZTtcbiAgICAgICAgICBjID0gZm10WysraV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoYyA9PSAnMCcgJiYgZm10W2kgKyAxXSA9PSAnLicpIHtcbiAgICAgICAgICBsZWFkaW5nWmVybyA9IHRydWU7XG4gICAgICAgICAgaSArPSAyO1xuICAgICAgICAgIGMgPSBmbXRbaV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgbGVhZGluZ1plcm8gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHByZWNpc2lvbiA9IHNsdXJwTnVtYmVyKCk7XG4gICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICBjYXNlICdiJzogLy8gbnVtYmVyIGluIGJpbmFyeVxuICAgICAgICAgIHJlc3VsdCArPSBwYXJzZUludChuZXh0QXJnKCksIDEwKS50b1N0cmluZygyKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYyc6IC8vIGNoYXJhY3RlclxuICAgICAgICAgIGFyZyA9IG5leHRBcmcoKTtcbiAgICAgICAgICBpZiAodHlwZW9mIGFyZyA9PT0gJ3N0cmluZycgfHwgYXJnIGluc3RhbmNlb2YgU3RyaW5nKVxuICAgICAgICAgICAgcmVzdWx0ICs9IGFyZztcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXN1bHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChhcmcsIDEwKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2QnOiAvLyBudW1iZXIgaW4gZGVjaW1hbFxuICAgICAgICAgIHJlc3VsdCArPSBwYXJzZUludChuZXh0QXJnKCksIDEwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZic6IC8vIGZsb2F0aW5nIHBvaW50IG51bWJlclxuICAgICAgICAgIHRtcCA9IFN0cmluZyhwYXJzZUZsb2F0KG5leHRBcmcoKSkudG9GaXhlZChwcmVjaXNpb24gfHwgNikpO1xuICAgICAgICAgIHJlc3VsdCArPSBsZWFkaW5nWmVybyA/IHRtcCA6IHRtcC5yZXBsYWNlKC9eMC8sICcnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaic6IC8vIEpTT05cbiAgICAgICAgICByZXN1bHQgKz0gSlNPTi5zdHJpbmdpZnkobmV4dEFyZygpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbyc6IC8vIG51bWJlciBpbiBvY3RhbFxuICAgICAgICAgIHJlc3VsdCArPSAnMCcgKyBwYXJzZUludChuZXh0QXJnKCksIDEwKS50b1N0cmluZyg4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncyc6IC8vIHN0cmluZ1xuICAgICAgICAgIHJlc3VsdCArPSBuZXh0QXJnKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3gnOiAvLyBsb3dlcmNhc2UgaGV4YWRlY2ltYWxcbiAgICAgICAgICByZXN1bHQgKz0gJzB4JyArIHBhcnNlSW50KG5leHRBcmcoKSwgMTApLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnWCc6IC8vIHVwcGVyY2FzZSBoZXhhZGVjaW1hbFxuICAgICAgICAgIHJlc3VsdCArPSAnMHgnICsgcGFyc2VJbnQobmV4dEFyZygpLCAxMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVzdWx0ICs9IGM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoYyA9PT0gJyUnKSB7XG4gICAgICAgIGVzY2FwZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ICs9IGM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxufSgpKTtcbiIsICIvLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQgZm9ybWF0dGVyIGZyb20gJ2Zvcm1hdCdcblxuZXhwb3J0IGNvbnN0IGZhdWx0ID0gT2JqZWN0LmFzc2lnbihjcmVhdGUoRXJyb3IpLCB7XG4gIGV2YWw6IGNyZWF0ZShFdmFsRXJyb3IpLFxuICByYW5nZTogY3JlYXRlKFJhbmdlRXJyb3IpLFxuICByZWZlcmVuY2U6IGNyZWF0ZShSZWZlcmVuY2VFcnJvciksXG4gIHN5bnRheDogY3JlYXRlKFN5bnRheEVycm9yKSxcbiAgdHlwZTogY3JlYXRlKFR5cGVFcnJvciksXG4gIHVyaTogY3JlYXRlKFVSSUVycm9yKVxufSlcblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgYEVDb25zdHJ1Y3RvcmAsIHdpdGggdGhlIGZvcm1hdHRlZCBgZm9ybWF0YCBhcyBhIGZpcnN0IGFyZ3VtZW50LlxuICpcbiAqIEB0ZW1wbGF0ZSB7RXJyb3J9IEZhdWx0XG4gKiBAdGVtcGxhdGUge25ldyAocmVhc29uOiBzdHJpbmcpID0+IEZhdWx0fSBDbGFzc1xuICogQHBhcmFtIHtDbGFzc30gQ29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShDb25zdHJ1Y3Rvcikge1xuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBGb3JtYXR0ZWRFcnJvci5kaXNwbGF5TmFtZSA9IENvbnN0cnVjdG9yLmRpc3BsYXlOYW1lIHx8IENvbnN0cnVjdG9yLm5hbWVcblxuICByZXR1cm4gRm9ybWF0dGVkRXJyb3JcblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGVycm9yIHdpdGggYSBwcmludGYtbGlrZSBmb3JtYXR0ZWQgbWVzc2FnZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVsbH0gW2Zvcm1hdF1cbiAgICogICBUZW1wbGF0ZSBzdHJpbmcuXG4gICAqIEBwYXJhbSB7Li4udW5rbm93bn0gdmFsdWVzXG4gICAqICAgVmFsdWVzIHRvIHJlbmRlciBpbiBgZm9ybWF0YC5cbiAgICogQHJldHVybnMge0ZhdWx0fVxuICAgKi9cbiAgZnVuY3Rpb24gRm9ybWF0dGVkRXJyb3IoZm9ybWF0LCAuLi52YWx1ZXMpIHtcbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBjb25zdCByZWFzb24gPSBmb3JtYXQgPyBmb3JtYXR0ZXIoZm9ybWF0LCAuLi52YWx1ZXMpIDogZm9ybWF0XG4gICAgcmV0dXJuIG5ldyBDb25zdHJ1Y3RvcihyZWFzb24pXG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHsndG9tbCcgfCAneWFtbCd9IFByZXNldFxuICogICBLbm93biBuYW1lIG9mIGEgZnJvbnRtYXR0ZXIgc3R5bGUuXG4gKlxuICogQHR5cGVkZWYgSW5mb1xuICogICBTZXF1ZW5jZS5cbiAqXG4gKiAgIERlcGVuZGluZyBvbiBob3cgdGhpcyBzdHJ1Y3R1cmUgaXMgdXNlZCwgaXQgcmVmbGVjdHMgYSBtYXJrZXIgb3IgYSBmZW5jZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjbG9zZVxuICogICBDbG9zaW5nLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IG9wZW5cbiAqICAgT3BlbmluZy5cbiAqXG4gKiBAdHlwZWRlZiBNYXR0ZXJQcm9wc1xuICogICBGaWVsZHMgZGVzY3JpYmluZyBhIGtpbmQgb2YgbWF0dGVyLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHR5cGVcbiAqICAgTm9kZSB0eXBlIHRvIHRva2VuaXplIGFzLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FueXdoZXJlPWZhbHNlXVxuICogICBXaGV0aGVyIG1hdHRlciBjYW4gYmUgZm91bmQgYW55d2hlcmUgaW4gdGhlIGRvY3VtZW50LCBub3JtYWxseSwgb25seSBtYXR0ZXJcbiAqICAgYXQgdGhlIHN0YXJ0IG9mIHRoZSBkb2N1bWVudCBpcyByZWNvZ25pemVkLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHVzaW5nIHRoaXMgaXMgYSB0ZXJyaWJsZSBpZGVhLlxuICogICA+IEl0XHUyMDE5cyBjYWxsZWQgZnJvbnRtYXR0ZXIsIG5vdCBtYXR0ZXItaW4tdGhlLW1pZGRsZSBvciBzby5cbiAqICAgPiBUaGlzIG1ha2VzIHlvdXIgbWFya2Rvd24gbGVzcyBwb3J0YWJsZS5cbiAqXG4gKiBAdHlwZWRlZiBNYXJrZXJQcm9wc1xuICogICBNYXJrZXIgY29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7SW5mbyB8IHN0cmluZ30gbWFya2VyXG4gKiAgIENoYXJhY3RlciByZXBlYXRlZCAzIHRpbWVzLCB1c2VkIGFzIGNvbXBsZXRlIGZlbmNlcy5cbiAqXG4gKiAgIEZvciBleGFtcGxlIHRoZSBjaGFyYWN0ZXIgYCctJ2Agd2lsbCByZXN1bHQgaW4gYCctLS0nYCBiZWluZyB1c2VkIGFzIHRoZVxuICogICBmZW5jZVxuICogICBQYXNzIGBvcGVuYCBhbmQgYGNsb3NlYCB0byBzcGVjaWZ5IGRpZmZlcmVudCBjaGFyYWN0ZXJzIGZvciBvcGVuaW5nIGFuZFxuICogICBjbG9zaW5nIGZlbmNlcy5cbiAqIEBwcm9wZXJ0eSB7bmV2ZXJ9IFtmZW5jZV1cbiAqICAgSWYgYG1hcmtlcmAgaXMgc2V0LCBgZmVuY2VgIG11c3Qgbm90IGJlIHNldC5cbiAqXG4gKiBAdHlwZWRlZiBGZW5jZVByb3BzXG4gKiAgIEZlbmNlIGNvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge0luZm8gfCBzdHJpbmd9IGZlbmNlXG4gKiAgIENvbXBsZXRlIGZlbmNlcy5cbiAqXG4gKiAgIFRoaXMgY2FuIGJlIHVzZWQgd2hlbiBmZW5jZXMgY29udGFpbiBkaWZmZXJlbnQgY2hhcmFjdGVycyBvciBsZW5ndGhzXG4gKiAgIG90aGVyIHRoYW4gMy5cbiAqICAgUGFzcyBgb3BlbmAgYW5kIGBjbG9zZWAgdG8gaW50ZXJmYWNlIHRvIHNwZWNpZnkgZGlmZmVyZW50IGNoYXJhY3RlcnMgZm9yIG9wZW5pbmcgYW5kXG4gKiAgIGNsb3NpbmcgZmVuY2VzLlxuICogQHByb3BlcnR5IHtuZXZlcn0gW21hcmtlcl1cbiAqICAgSWYgYGZlbmNlYCBpcyBzZXQsIGBtYXJrZXJgIG11c3Qgbm90IGJlIHNldC5cbiAqXG4gKiBAdHlwZWRlZiB7KE1hdHRlclByb3BzICYgRmVuY2VQcm9wcykgfCAoTWF0dGVyUHJvcHMgJiBNYXJrZXJQcm9wcyl9IE1hdHRlclxuICogICBGaWVsZHMgZGVzY3JpYmluZyBhIGtpbmQgb2YgbWF0dGVyLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHVzaW5nIGBhbnl3aGVyZWAgaXMgYSB0ZXJyaWJsZSBpZGVhLlxuICogICA+IEl0XHUyMDE5cyBjYWxsZWQgZnJvbnRtYXR0ZXIsIG5vdCBtYXR0ZXItaW4tdGhlLW1pZGRsZSBvciBzby5cbiAqICAgPiBUaGlzIG1ha2VzIHlvdXIgbWFya2Rvd24gbGVzcyBwb3J0YWJsZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBgbWFya2VyYCBhbmQgYGZlbmNlYCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLlxuICogICA+IElmIGBtYXJrZXJgIGlzIHNldCwgYGZlbmNlYCBtdXN0IG5vdCBiZSBzZXQsIGFuZCB2aWNlIHZlcnNhLlxuICpcbiAqIEB0eXBlZGVmIHtNYXR0ZXIgfCBQcmVzZXQgfCBBcnJheTxNYXR0ZXIgfCBQcmVzZXQ+fSBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKi9cblxuaW1wb3J0IHtmYXVsdH0gZnJvbSAnZmF1bHQnXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuY29uc3QgbWFya2VycyA9IHtcbiAgeWFtbDogJy0nLFxuICB0b21sOiAnKydcbn1cblxuLyoqXG4gKiBTaW1wbGlmeSBvcHRpb25zIGJ5IG5vcm1hbGl6aW5nIHRoZW0gdG8gYW4gYXJyYXkgb2YgbWF0dGVycy5cbiAqXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9ucz0neWFtbCddXG4gKiAgIENvbmZpZ3VyYXRpb24gKGRlZmF1bHQ6IGAneWFtbCdgKS5cbiAqIEByZXR1cm5zIHtBcnJheTxNYXR0ZXI+fVxuICogICBMaXN0IG9mIG1hdHRlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b01hdHRlcnMob3B0aW9ucykge1xuICAvKiogQHR5cGUge0FycmF5PE1hdHRlcj59ICovXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgLyoqIEB0eXBlIHtBcnJheTxNYXR0ZXIgfCBQcmVzZXQ+fSAqL1xuICBjb25zdCBwcmVzZXRzT3JNYXR0ZXJzID0gQXJyYXkuaXNBcnJheShvcHRpb25zKVxuICAgID8gb3B0aW9uc1xuICAgIDogb3B0aW9uc1xuICAgID8gW29wdGlvbnNdXG4gICAgOiBbJ3lhbWwnXVxuICB3aGlsZSAoKytpbmRleCA8IHByZXNldHNPck1hdHRlcnMubGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IG1hdHRlcihwcmVzZXRzT3JNYXR0ZXJzW2luZGV4XSlcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogU2ltcGxpZnkgYW4gb3B0aW9uLlxuICpcbiAqIEBwYXJhbSB7TWF0dGVyIHwgUHJlc2V0fSBvcHRpb25cbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIHtNYXR0ZXJ9XG4gKiAgIE1hdHRlci5cbiAqL1xuZnVuY3Rpb24gbWF0dGVyKG9wdGlvbikge1xuICBsZXQgcmVzdWx0ID0gb3B0aW9uXG4gIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgIGlmICghb3duLmNhbGwobWFya2VycywgcmVzdWx0KSkge1xuICAgICAgdGhyb3cgZmF1bHQoJ01pc3NpbmcgbWF0dGVyIGRlZmluaXRpb24gZm9yIGAlc2AnLCByZXN1bHQpXG4gICAgfVxuICAgIHJlc3VsdCA9IHtcbiAgICAgIHR5cGU6IHJlc3VsdCxcbiAgICAgIG1hcmtlcjogbWFya2Vyc1tyZXN1bHRdXG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiByZXN1bHQgIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgZmF1bHQoJ0V4cGVjdGVkIG1hdHRlciB0byBiZSBhbiBvYmplY3QsIG5vdCBgJWpgJywgcmVzdWx0KVxuICB9XG4gIGlmICghb3duLmNhbGwocmVzdWx0LCAndHlwZScpKSB7XG4gICAgdGhyb3cgZmF1bHQoJ01pc3NpbmcgYHR5cGVgIGluIG1hdHRlciBgJWpgJywgcmVzdWx0KVxuICB9XG4gIGlmICghb3duLmNhbGwocmVzdWx0LCAnZmVuY2UnKSAmJiAhb3duLmNhbGwocmVzdWx0LCAnbWFya2VyJykpIHtcbiAgICB0aHJvdyBmYXVsdCgnTWlzc2luZyBgbWFya2VyYCBvciBgZmVuY2VgIGluIG1hdHRlciBgJWpgJywgcmVzdWx0KVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0fSBDb25zdHJ1Y3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuQ29uc3RydWN0UmVjb3JkfSBDb25zdHJ1Y3RSZWNvcmRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuRXh0ZW5zaW9ufSBFeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuU3RhdGV9IFN0YXRlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuVHlwZX0gVG9rZW5UeXBlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplQ29udGV4dH0gVG9rZW5pemVDb250ZXh0XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstdXRpbC10eXBlcycpLlRva2VuaXplcn0gVG9rZW5pemVyXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi90by1tYXR0ZXJzLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi90by1tYXR0ZXJzLmpzJykuTWF0dGVyfSBNYXR0ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vdG8tbWF0dGVycy5qcycpLk9wdGlvbnN9IE9wdGlvbnNcbiAqL1xuXG5pbXBvcnQge21hcmtkb3duTGluZUVuZGluZywgbWFya2Rvd25TcGFjZX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtY2hhcmFjdGVyJ1xuaW1wb3J0IHt0b01hdHRlcnN9IGZyb20gJy4vdG8tbWF0dGVycy5qcydcblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0byBlbmFibGUgZnJvbnRtYXR0ZXIgc3ludGF4LlxuICpcbiAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zPSd5YW1sJ11cbiAqICAgQ29uZmlndXJhdGlvbiAoZGVmYXVsdDogYCd5YW1sJ2ApLlxuICogQHJldHVybnMge0V4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWljcm9tYXJrYCB0aGF0IGNhbiBiZSBwYXNzZWQgaW4gYGV4dGVuc2lvbnNgLCB0b1xuICogICBlbmFibGUgZnJvbnRtYXR0ZXIgc3ludGF4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbnRtYXR0ZXIob3B0aW9ucykge1xuICBjb25zdCBtYXR0ZXJzID0gdG9NYXR0ZXJzKG9wdGlvbnMpXG4gIC8qKiBAdHlwZSB7Q29uc3RydWN0UmVjb3JkfSAqL1xuICBjb25zdCBmbG93ID0ge31cbiAgbGV0IGluZGV4ID0gLTFcbiAgd2hpbGUgKCsraW5kZXggPCBtYXR0ZXJzLmxlbmd0aCkge1xuICAgIGNvbnN0IG1hdHRlciA9IG1hdHRlcnNbaW5kZXhdXG4gICAgY29uc3QgY29kZSA9IGZlbmNlKG1hdHRlciwgJ29wZW4nKS5jaGFyQ29kZUF0KDApXG4gICAgY29uc3QgY29uc3RydWN0ID0gY3JlYXRlQ29uc3RydWN0KG1hdHRlcilcbiAgICBjb25zdCBleGlzdGluZyA9IGZsb3dbY29kZV1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZykpIHtcbiAgICAgIGV4aXN0aW5nLnB1c2goY29uc3RydWN0KVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOZXZlciBhIHNpbmdsZSBvYmplY3QsIGFsd2F5cyBhbiBhcnJheS5cbiAgICAgIGZsb3dbY29kZV0gPSBbY29uc3RydWN0XVxuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIGZsb3dcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7TWF0dGVyfSBtYXR0ZXJcbiAqIEByZXR1cm5zIHtDb25zdHJ1Y3R9XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUNvbnN0cnVjdChtYXR0ZXIpIHtcbiAgY29uc3QgYW55d2hlcmUgPSBtYXR0ZXIuYW55d2hlcmVcbiAgY29uc3QgZnJvbnRtYXR0ZXJUeXBlID0gLyoqIEB0eXBlIHtUb2tlblR5cGV9ICovIG1hdHRlci50eXBlXG4gIGNvbnN0IGZlbmNlVHlwZSA9IC8qKiBAdHlwZSB7VG9rZW5UeXBlfSAqLyBmcm9udG1hdHRlclR5cGUgKyAnRmVuY2UnXG4gIGNvbnN0IHNlcXVlbmNlVHlwZSA9IC8qKiBAdHlwZSB7VG9rZW5UeXBlfSAqLyBmZW5jZVR5cGUgKyAnU2VxdWVuY2UnXG4gIGNvbnN0IHZhbHVlVHlwZSA9IC8qKiBAdHlwZSB7VG9rZW5UeXBlfSAqLyBmcm9udG1hdHRlclR5cGUgKyAnVmFsdWUnXG4gIGNvbnN0IGNsb3NpbmdGZW5jZUNvbnN0cnVjdCA9IHtcbiAgICB0b2tlbml6ZTogdG9rZW5pemVDbG9zaW5nRmVuY2UsXG4gICAgcGFydGlhbDogdHJ1ZVxuICB9XG5cbiAgLyoqXG4gICAqIEZlbmNlIHRvIGxvb2sgZm9yLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgbGV0IGJ1ZmZlclxuICBsZXQgYnVmZmVySW5kZXggPSAwXG4gIHJldHVybiB7XG4gICAgdG9rZW5pemU6IHRva2VuaXplRnJvbnRtYXR0ZXIsXG4gICAgY29uY3JldGU6IHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBAdGhpcyB7VG9rZW5pemVDb250ZXh0fVxuICAgKiBAdHlwZSB7VG9rZW5pemVyfVxuICAgKi9cbiAgZnVuY3Rpb24gdG9rZW5pemVGcm9udG1hdHRlcihlZmZlY3RzLCBvaywgbm9rKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXNcbiAgICByZXR1cm4gc3RhcnRcblxuICAgIC8qKlxuICAgICAqIFN0YXJ0IG9mIGZyb250bWF0dGVyLlxuICAgICAqXG4gICAgICogYGBgbWFya2Rvd25cbiAgICAgKiA+IHwgLS0tXG4gICAgICogICAgIF5cbiAgICAgKiAgIHwgdGl0bGU6IFwiVmVudXNcIlxuICAgICAqICAgfCAtLS1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtTdGF0ZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFydChjb2RlKSB7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IHNlbGYubm93KClcbiAgICAgIGlmIChcbiAgICAgICAgLy8gSW5kZW50IG5vdCBhbGxvd2VkLlxuICAgICAgICBwb3NpdGlvbi5jb2x1bW4gPT09IDEgJiZcbiAgICAgICAgLy8gTm9ybWFsbHksIG9ubHkgYWxsb3dlZCBpbiBmaXJzdCBsaW5lLlxuICAgICAgICAocG9zaXRpb24ubGluZSA9PT0gMSB8fCBhbnl3aGVyZSlcbiAgICAgICkge1xuICAgICAgICBidWZmZXIgPSBmZW5jZShtYXR0ZXIsICdvcGVuJylcbiAgICAgICAgYnVmZmVySW5kZXggPSAwXG4gICAgICAgIGlmIChjb2RlID09PSBidWZmZXIuY2hhckNvZGVBdChidWZmZXJJbmRleCkpIHtcbiAgICAgICAgICBlZmZlY3RzLmVudGVyKGZyb250bWF0dGVyVHlwZSlcbiAgICAgICAgICBlZmZlY3RzLmVudGVyKGZlbmNlVHlwZSlcbiAgICAgICAgICBlZmZlY3RzLmVudGVyKHNlcXVlbmNlVHlwZSlcbiAgICAgICAgICByZXR1cm4gb3BlblNlcXVlbmNlKGNvZGUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbiBvcGVuIHNlcXVlbmNlLlxuICAgICAqXG4gICAgICogYGBgbWFya2Rvd25cbiAgICAgKiA+IHwgLS0tXG4gICAgICogICAgIF5cbiAgICAgKiAgIHwgdGl0bGU6IFwiVmVudXNcIlxuICAgICAqICAgfCAtLS1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtTdGF0ZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvcGVuU2VxdWVuY2UoY29kZSkge1xuICAgICAgaWYgKGJ1ZmZlckluZGV4ID09PSBidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgIGVmZmVjdHMuZXhpdChzZXF1ZW5jZVR5cGUpXG4gICAgICAgIGlmIChtYXJrZG93blNwYWNlKGNvZGUpKSB7XG4gICAgICAgICAgZWZmZWN0cy5lbnRlcignd2hpdGVzcGFjZScpXG4gICAgICAgICAgcmV0dXJuIG9wZW5TZXF1ZW5jZVdoaXRlc3BhY2UoY29kZSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3BlbkFmdGVyKGNvZGUpXG4gICAgICB9XG4gICAgICBpZiAoY29kZSA9PT0gYnVmZmVyLmNoYXJDb2RlQXQoYnVmZmVySW5kZXgrKykpIHtcbiAgICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAgIHJldHVybiBvcGVuU2VxdWVuY2VcbiAgICAgIH1cbiAgICAgIHJldHVybiBub2soY29kZSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbiB3aGl0ZXNwYWNlIGFmdGVyIG9wZW4gc2VxdWVuY2UuXG4gICAgICpcbiAgICAgKiBgYGBtYXJrZG93blxuICAgICAqID4gfCAtLS1cdTI0MjBcbiAgICAgKiAgICAgICAgXlxuICAgICAqICAgfCB0aXRsZTogXCJWZW51c1wiXG4gICAgICogICB8IC0tLVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9wZW5TZXF1ZW5jZVdoaXRlc3BhY2UoY29kZSkge1xuICAgICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAgIHJldHVybiBvcGVuU2VxdWVuY2VXaGl0ZXNwYWNlXG4gICAgICB9XG4gICAgICBlZmZlY3RzLmV4aXQoJ3doaXRlc3BhY2UnKVxuICAgICAgcmV0dXJuIG9wZW5BZnRlcihjb2RlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFmdGVyIG9wZW4gc2VxdWVuY2UuXG4gICAgICpcbiAgICAgKiBgYGBtYXJrZG93blxuICAgICAqID4gfCAtLS1cbiAgICAgKiAgICAgICAgXlxuICAgICAqICAgfCB0aXRsZTogXCJWZW51c1wiXG4gICAgICogICB8IC0tLVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9wZW5BZnRlcihjb2RlKSB7XG4gICAgICBpZiAobWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICAgIGVmZmVjdHMuZXhpdChmZW5jZVR5cGUpXG4gICAgICAgIGVmZmVjdHMuZW50ZXIoJ2xpbmVFbmRpbmcnKVxuICAgICAgICBlZmZlY3RzLmNvbnN1bWUoY29kZSlcbiAgICAgICAgZWZmZWN0cy5leGl0KCdsaW5lRW5kaW5nJylcbiAgICAgICAgLy8gR2V0IHJlYWR5IGZvciBjbG9zaW5nIGZlbmNlLlxuICAgICAgICBidWZmZXIgPSBmZW5jZShtYXR0ZXIsICdjbG9zZScpXG4gICAgICAgIGJ1ZmZlckluZGV4ID0gMFxuICAgICAgICByZXR1cm4gZWZmZWN0cy5hdHRlbXB0KGNsb3NpbmdGZW5jZUNvbnN0cnVjdCwgYWZ0ZXIsIGNvbnRlbnRTdGFydClcbiAgICAgIH1cblxuICAgICAgLy8gRU9GIGlzIG5vdCBva2F5LlxuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0YXJ0IG9mIGNvbnRlbnQgY2h1bmsuXG4gICAgICpcbiAgICAgKiBgYGBtYXJrZG93blxuICAgICAqICAgfCAtLS1cbiAgICAgKiA+IHwgdGl0bGU6IFwiVmVudXNcIlxuICAgICAqICAgICBeXG4gICAgICogICB8IC0tLVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbnRlbnRTdGFydChjb2RlKSB7XG4gICAgICBpZiAoY29kZSA9PT0gbnVsbCB8fCBtYXJrZG93bkxpbmVFbmRpbmcoY29kZSkpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRlbnRFbmQoY29kZSlcbiAgICAgIH1cbiAgICAgIGVmZmVjdHMuZW50ZXIodmFsdWVUeXBlKVxuICAgICAgcmV0dXJuIGNvbnRlbnRJbnNpZGUoY29kZSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbiBjb250ZW50IGNodW5rLlxuICAgICAqXG4gICAgICogYGBgbWFya2Rvd25cbiAgICAgKiAgIHwgLS0tXG4gICAgICogPiB8IHRpdGxlOiBcIlZlbnVzXCJcbiAgICAgKiAgICAgXlxuICAgICAqICAgfCAtLS1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtTdGF0ZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb250ZW50SW5zaWRlKGNvZGUpIHtcbiAgICAgIGlmIChjb2RlID09PSBudWxsIHx8IG1hcmtkb3duTGluZUVuZGluZyhjb2RlKSkge1xuICAgICAgICBlZmZlY3RzLmV4aXQodmFsdWVUeXBlKVxuICAgICAgICByZXR1cm4gY29udGVudEVuZChjb2RlKVxuICAgICAgfVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICByZXR1cm4gY29udGVudEluc2lkZVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuZCBvZiBjb250ZW50IGNodW5rLlxuICAgICAqXG4gICAgICogYGBgbWFya2Rvd25cbiAgICAgKiAgIHwgLS0tXG4gICAgICogPiB8IHRpdGxlOiBcIlZlbnVzXCJcbiAgICAgKiAgICAgICAgICAgICAgICAgICBeXG4gICAgICogICB8IC0tLVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbnRlbnRFbmQoY29kZSkge1xuICAgICAgLy8gUmVxdWlyZSBhIGNsb3NpbmcgZmVuY2UuXG4gICAgICBpZiAoY29kZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgICB9XG5cbiAgICAgIC8vIENhbiBvbmx5IGJlIGFuIGVvbC5cbiAgICAgIGVmZmVjdHMuZW50ZXIoJ2xpbmVFbmRpbmcnKVxuICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICBlZmZlY3RzLmV4aXQoJ2xpbmVFbmRpbmcnKVxuICAgICAgcmV0dXJuIGVmZmVjdHMuYXR0ZW1wdChjbG9zaW5nRmVuY2VDb25zdHJ1Y3QsIGFmdGVyLCBjb250ZW50U3RhcnQpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWZ0ZXIgZnJvbnRtYXR0ZXIuXG4gICAgICpcbiAgICAgKiBgYGBtYXJrZG93blxuICAgICAqICAgfCAtLS1cbiAgICAgKiAgIHwgdGl0bGU6IFwiVmVudXNcIlxuICAgICAqID4gfCAtLS1cbiAgICAgKiAgICAgICAgXlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFmdGVyKGNvZGUpIHtcbiAgICAgIC8vIGBjb2RlYCBtdXN0IGJlIGVvbC9lb2YuXG4gICAgICBlZmZlY3RzLmV4aXQoZnJvbnRtYXR0ZXJUeXBlKVxuICAgICAgcmV0dXJuIG9rKGNvZGUpXG4gICAgfVxuICB9XG5cbiAgLyoqIEB0eXBlIHtUb2tlbml6ZXJ9ICovXG4gIGZ1bmN0aW9uIHRva2VuaXplQ2xvc2luZ0ZlbmNlKGVmZmVjdHMsIG9rLCBub2spIHtcbiAgICBsZXQgYnVmZmVySW5kZXggPSAwXG4gICAgcmV0dXJuIGNsb3NlU3RhcnRcblxuICAgIC8qKlxuICAgICAqIFN0YXJ0IG9mIGNsb3NlIHNlcXVlbmNlLlxuICAgICAqXG4gICAgICogYGBgbWFya2Rvd25cbiAgICAgKiAgIHwgLS0tXG4gICAgICogICB8IHRpdGxlOiBcIlZlbnVzXCJcbiAgICAgKiA+IHwgLS0tXG4gICAgICogICAgIF5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtTdGF0ZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9zZVN0YXJ0KGNvZGUpIHtcbiAgICAgIGlmIChjb2RlID09PSBidWZmZXIuY2hhckNvZGVBdChidWZmZXJJbmRleCkpIHtcbiAgICAgICAgZWZmZWN0cy5lbnRlcihmZW5jZVR5cGUpXG4gICAgICAgIGVmZmVjdHMuZW50ZXIoc2VxdWVuY2VUeXBlKVxuICAgICAgICByZXR1cm4gY2xvc2VTZXF1ZW5jZShjb2RlKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluIGNsb3NlIHNlcXVlbmNlLlxuICAgICAqXG4gICAgICogYGBgbWFya2Rvd25cbiAgICAgKiAgIHwgLS0tXG4gICAgICogICB8IHRpdGxlOiBcIlZlbnVzXCJcbiAgICAgKiA+IHwgLS0tXG4gICAgICogICAgIF5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtTdGF0ZX1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9zZVNlcXVlbmNlKGNvZGUpIHtcbiAgICAgIGlmIChidWZmZXJJbmRleCA9PT0gYnVmZmVyLmxlbmd0aCkge1xuICAgICAgICBlZmZlY3RzLmV4aXQoc2VxdWVuY2VUeXBlKVxuICAgICAgICBpZiAobWFya2Rvd25TcGFjZShjb2RlKSkge1xuICAgICAgICAgIGVmZmVjdHMuZW50ZXIoJ3doaXRlc3BhY2UnKVxuICAgICAgICAgIHJldHVybiBjbG9zZVNlcXVlbmNlV2hpdGVzcGFjZShjb2RlKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbG9zZUFmdGVyKGNvZGUpXG4gICAgICB9XG4gICAgICBpZiAoY29kZSA9PT0gYnVmZmVyLmNoYXJDb2RlQXQoYnVmZmVySW5kZXgrKykpIHtcbiAgICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAgIHJldHVybiBjbG9zZVNlcXVlbmNlXG4gICAgICB9XG4gICAgICByZXR1cm4gbm9rKGNvZGUpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW4gd2hpdGVzcGFjZSBhZnRlciBjbG9zZSBzZXF1ZW5jZS5cbiAgICAgKlxuICAgICAqIGBgYG1hcmtkb3duXG4gICAgICogPiB8IC0tLVxuICAgICAqICAgfCB0aXRsZTogXCJWZW51c1wiXG4gICAgICogICB8IC0tLVx1MjQyMFxuICAgICAqICAgICAgICBeXG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAdHlwZSB7U3RhdGV9XG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xvc2VTZXF1ZW5jZVdoaXRlc3BhY2UoY29kZSkge1xuICAgICAgaWYgKG1hcmtkb3duU3BhY2UoY29kZSkpIHtcbiAgICAgICAgZWZmZWN0cy5jb25zdW1lKGNvZGUpXG4gICAgICAgIHJldHVybiBjbG9zZVNlcXVlbmNlV2hpdGVzcGFjZVxuICAgICAgfVxuICAgICAgZWZmZWN0cy5leGl0KCd3aGl0ZXNwYWNlJylcbiAgICAgIHJldHVybiBjbG9zZUFmdGVyKGNvZGUpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWZ0ZXIgY2xvc2Ugc2VxdWVuY2UuXG4gICAgICpcbiAgICAgKiBgYGBtYXJrZG93blxuICAgICAqICAgfCAtLS1cbiAgICAgKiAgIHwgdGl0bGU6IFwiVmVudXNcIlxuICAgICAqID4gfCAtLS1cbiAgICAgKiAgICAgICAgXlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHR5cGUge1N0YXRlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb3NlQWZ0ZXIoY29kZSkge1xuICAgICAgaWYgKGNvZGUgPT09IG51bGwgfHwgbWFya2Rvd25MaW5lRW5kaW5nKGNvZGUpKSB7XG4gICAgICAgIGVmZmVjdHMuZXhpdChmZW5jZVR5cGUpXG4gICAgICAgIHJldHVybiBvayhjb2RlKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5vayhjb2RlKVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7TWF0dGVyfSBtYXR0ZXJcbiAqIEBwYXJhbSB7J2Nsb3NlJyB8ICdvcGVuJ30gcHJvcFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZmVuY2UobWF0dGVyLCBwcm9wKSB7XG4gIHJldHVybiBtYXR0ZXIubWFya2VyXG4gICAgPyBwaWNrKG1hdHRlci5tYXJrZXIsIHByb3ApLnJlcGVhdCgzKVxuICAgIDogLy8gQHRzLWV4cGVjdC1lcnJvcjogVGhleVx1MjAxOXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS5cbiAgICAgIHBpY2sobWF0dGVyLmZlbmNlLCBwcm9wKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7SW5mbyB8IHN0cmluZ30gc2NoZW1hXG4gKiBAcGFyYW0geydjbG9zZScgfCAnb3Blbid9IHByb3BcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBpY2soc2NoZW1hLCBwcm9wKSB7XG4gIHJldHVybiB0eXBlb2Ygc2NoZW1hID09PSAnc3RyaW5nJyA/IHNjaGVtYSA6IHNjaGVtYVtwcm9wXVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Db21waWxlQ29udGV4dH0gQ29tcGlsZUNvbnRleHRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSGFuZGxlfSBIYW5kbGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay11dGlsLXR5cGVzJykuSHRtbEV4dGVuc2lvbn0gSHRtbEV4dGVuc2lvblxuICogQHR5cGVkZWYge2ltcG9ydCgnbWljcm9tYXJrLXV0aWwtdHlwZXMnKS5Ub2tlblR5cGV9IFRva2VuVHlwZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi90by1tYXR0ZXJzLmpzJykuT3B0aW9uc30gT3B0aW9uc1xuICovXG5cbmltcG9ydCB7dG9NYXR0ZXJzfSBmcm9tICcuL3RvLW1hdHRlcnMuanMnXG5cbi8qKlxuICogQ3JlYXRlIGFuIGV4dGVuc2lvbiBmb3IgYG1pY3JvbWFya2AgdG8gc3VwcG9ydCBmcm9udG1hdHRlciB3aGVuIHNlcmlhbGl6aW5nXG4gKiB0byBIVE1MLlxuICpcbiAqID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiB0aGlzIG1ha2VzIHN1cmUgbm90aGluZyBpcyBnZW5lcmF0ZWQgaW4gdGhlIG91dHB1dCBIVE1MIGZvclxuICogPiBmcm9udG1hdHRlci5cbiAqXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9ucz0neWFtbCddXG4gKiAgIENvbmZpZ3VyYXRpb24gKGRlZmF1bHQ6IGAneWFtbCdgKS5cbiAqIEByZXR1cm5zIHtIdG1sRXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtaWNyb21hcmtgIHRoYXQgY2FuIGJlIHBhc3NlZCBpbiBgaHRtbEV4dGVuc2lvbnNgLCB0b1xuICogICBzdXBwb3J0IGZyb250bWF0dGVyIHdoZW4gc2VyaWFsaXppbmcgdG8gSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb250bWF0dGVySHRtbChvcHRpb25zKSB7XG4gIGNvbnN0IG1hdHRlcnMgPSB0b01hdHRlcnMob3B0aW9ucylcbiAgLyoqIEB0eXBlIHtIdG1sRXh0ZW5zaW9uWydlbnRlciddfSAqL1xuICBjb25zdCBlbnRlciA9IHt9XG4gIC8qKiBAdHlwZSB7SHRtbEV4dGVuc2lvblsnZXhpdCddfSAqL1xuICBjb25zdCBleGl0ID0ge31cbiAgbGV0IGluZGV4ID0gLTFcbiAgd2hpbGUgKCsraW5kZXggPCBtYXR0ZXJzLmxlbmd0aCkge1xuICAgIGNvbnN0IHR5cGUgPSAvKiogQHR5cGUge1Rva2VuVHlwZX0gKi8gbWF0dGVyc1tpbmRleF0udHlwZVxuICAgIGVudGVyW3R5cGVdID0gc3RhcnRcbiAgICBleGl0W3R5cGVdID0gZW5kXG4gIH1cbiAgcmV0dXJuIHtcbiAgICBlbnRlcixcbiAgICBleGl0XG4gIH1cblxuICAvKipcbiAgICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICAgKiBAdHlwZSB7SGFuZGxlfVxuICAgKi9cbiAgZnVuY3Rpb24gc3RhcnQoKSB7XG4gICAgdGhpcy5idWZmZXIoKVxuICB9XG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0hhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIGVuZCgpIHtcbiAgICB0aGlzLnJlc3VtZSgpXG4gICAgdGhpcy5zZXREYXRhKCdzbHVycE9uZUxpbmVFbmRpbmcnLCB0cnVlKVxuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi90by1tYXR0ZXJzLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvdG8tbWF0dGVycy5qcycpLk1hdHRlcn0gTWF0dGVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi90by1tYXR0ZXJzLmpzJykuT3B0aW9uc30gT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvdG8tbWF0dGVycy5qcycpLlByZXNldH0gUHJlc2V0XG4gKi9cblxuZXhwb3J0IHtmcm9udG1hdHRlcn0gZnJvbSAnLi9saWIvc3ludGF4LmpzJ1xuZXhwb3J0IHtmcm9udG1hdHRlckh0bWx9IGZyb20gJy4vbGliL2h0bWwuanMnXG5leHBvcnQge3RvTWF0dGVyc30gZnJvbSAnLi9saWIvdG8tbWF0dGVycy5qcydcblxuLy8gTm90ZTogd2UgZG9uXHUyMDE5dCBoYXZlIGFuIGBpbmRleC5kLnRzYCBpbiB0aGlzIGV4dGVuc2lvbiBiZWNhdXNlIGFsbCB0b2tlblxuLy8gdHlwZXMgYXJlIGR5bmFtaWMgaW4gSlNcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuTGl0ZXJhbH0gTGl0ZXJhbFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bicpLkNvbXBpbGVDb250ZXh0fSBDb21waWxlQ29udGV4dFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duJykuRXh0ZW5zaW9ufSBGcm9tTWFya2Rvd25FeHRlbnNpb25cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtZnJvbS1tYXJrZG93bicpLkhhbmRsZX0gRnJvbU1hcmtkb3duSGFuZGxlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLW1hcmtkb3duJykuT3B0aW9uc30gVG9NYXJrZG93bkV4dGVuc2lvblxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay1leHRlbnNpb24tZnJvbnRtYXR0ZXInKS5JbmZvfSBJbmZvXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtaWNyb21hcmstZXh0ZW5zaW9uLWZyb250bWF0dGVyJykuTWF0dGVyfSBNYXR0ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay1leHRlbnNpb24tZnJvbnRtYXR0ZXInKS5PcHRpb25zfSBPcHRpb25zXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7dG9NYXR0ZXJzfSBmcm9tICdtaWNyb21hcmstZXh0ZW5zaW9uLWZyb250bWF0dGVyJ1xuaW1wb3J0IGVzY2FwZVN0cmluZ1JlZ2V4cCBmcm9tICdlc2NhcGUtc3RyaW5nLXJlZ2V4cCdcblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duYC5cbiAqXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge0Zyb21NYXJrZG93bkV4dGVuc2lvbn1cbiAqICAgRXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC1mcm9tLW1hcmtkb3duYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb250bWF0dGVyRnJvbU1hcmtkb3duKG9wdGlvbnMpIHtcbiAgY29uc3QgbWF0dGVycyA9IHRvTWF0dGVycyhvcHRpb25zKVxuICAvKiogQHR5cGUge0Zyb21NYXJrZG93bkV4dGVuc2lvblsnZW50ZXInXX0gKi9cbiAgY29uc3QgZW50ZXIgPSB7fVxuICAvKiogQHR5cGUge0Zyb21NYXJrZG93bkV4dGVuc2lvblsnZXhpdCddfSAqL1xuICBjb25zdCBleGl0ID0ge31cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IG1hdHRlcnMubGVuZ3RoKSB7XG4gICAgY29uc3QgbWF0dGVyID0gbWF0dGVyc1tpbmRleF1cbiAgICBlbnRlclttYXR0ZXIudHlwZV0gPSBvcGVuZXIobWF0dGVyKVxuICAgIGV4aXRbbWF0dGVyLnR5cGVdID0gY2xvc2VcbiAgICBleGl0W21hdHRlci50eXBlICsgJ1ZhbHVlJ10gPSB2YWx1ZVxuICB9XG5cbiAgcmV0dXJuIHtlbnRlciwgZXhpdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge01hdHRlcn0gbWF0dGVyXG4gKiBAcmV0dXJucyB7RnJvbU1hcmtkb3duSGFuZGxlfSBlbnRlclxuICovXG5mdW5jdGlvbiBvcGVuZXIobWF0dGVyKSB7XG4gIHJldHVybiBvcGVuXG5cbiAgLyoqXG4gICAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAgICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9wZW4odG9rZW4pIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBjdXN0b20uXG4gICAgdGhpcy5lbnRlcih7dHlwZTogbWF0dGVyLnR5cGUsIHZhbHVlOiAnJ30sIHRva2VuKVxuICAgIHRoaXMuYnVmZmVyKClcbiAgfVxufVxuXG4vKipcbiAqIEB0aGlzIHtDb21waWxlQ29udGV4dH1cbiAqIEB0eXBlIHtGcm9tTWFya2Rvd25IYW5kbGV9XG4gKi9cbmZ1bmN0aW9uIGNsb3NlKHRva2VuKSB7XG4gIGNvbnN0IGRhdGEgPSB0aGlzLnJlc3VtZSgpXG4gIGNvbnN0IG5vZGUgPSB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV1cbiAgYXNzZXJ0KCd2YWx1ZScgaW4gbm9kZSlcbiAgdGhpcy5leGl0KHRva2VuKVxuICAvLyBSZW1vdmUgdGhlIGluaXRpYWwgYW5kIGZpbmFsIGVvbC5cbiAgbm9kZS52YWx1ZSA9IGRhdGEucmVwbGFjZSgvXihcXHI/XFxufFxccil8KFxccj9cXG58XFxyKSQvZywgJycpXG59XG5cbi8qKlxuICogQHRoaXMge0NvbXBpbGVDb250ZXh0fVxuICogQHR5cGUge0Zyb21NYXJrZG93bkhhbmRsZX1cbiAqL1xuZnVuY3Rpb24gdmFsdWUodG9rZW4pIHtcbiAgdGhpcy5jb25maWcuZW50ZXIuZGF0YS5jYWxsKHRoaXMsIHRva2VuKVxuICB0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLCB0b2tlbilcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZXh0ZW5zaW9uIGZvciBgbWRhc3QtdXRpbC10by1tYXJrZG93bmAuXG4gKlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtUb01hcmtkb3duRXh0ZW5zaW9ufVxuICogICBFeHRlbnNpb24gZm9yIGBtZGFzdC11dGlsLXRvLW1hcmtkb3duYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb250bWF0dGVyVG9NYXJrZG93bihvcHRpb25zKSB7XG4gIC8qKiBAdHlwZSB7VG9NYXJrZG93bkV4dGVuc2lvblsndW5zYWZlJ119ICovXG4gIGNvbnN0IHVuc2FmZSA9IFtdXG4gIC8qKiBAdHlwZSB7VG9NYXJrZG93bkV4dGVuc2lvblsnaGFuZGxlcnMnXX0gKi9cbiAgY29uc3QgaGFuZGxlcnMgPSB7fVxuICBjb25zdCBtYXR0ZXJzID0gdG9NYXR0ZXJzKG9wdGlvbnMpXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBtYXR0ZXJzLmxlbmd0aCkge1xuICAgIGNvbnN0IG1hdHRlciA9IG1hdHRlcnNbaW5kZXhdXG5cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGlzIGNhbiBhZGQgY3VzdG9tIGZyb250bWF0dGVyIG5vZGVzLlxuICAgIC8vIFR5cGluZyB0aG9zZSBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGVuZCB1c2VyLlxuICAgIGhhbmRsZXJzW21hdHRlci50eXBlXSA9IGhhbmRsZXIobWF0dGVyKVxuXG4gICAgY29uc3Qgb3BlbiA9IGZlbmNlKG1hdHRlciwgJ29wZW4nKVxuXG4gICAgdW5zYWZlLnB1c2goe1xuICAgICAgYXRCcmVhazogdHJ1ZSxcbiAgICAgIGNoYXJhY3Rlcjogb3Blbi5jaGFyQXQoMCksXG4gICAgICBhZnRlcjogZXNjYXBlU3RyaW5nUmVnZXhwKG9wZW4uY2hhckF0KDEpKVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4ge3Vuc2FmZSwgaGFuZGxlcnN9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgaGFuZGxlIHRoYXQgY2FuIHNlcmlhbGl6ZSBhIGZyb250bWF0dGVyIG5vZGUgYXMgbWFya2Rvd24uXG4gKlxuICogQHBhcmFtIHtNYXR0ZXJ9IG1hdHRlclxuICogICBTdHJ1Y3R1cmUuXG4gKiBAcmV0dXJucyB7KG5vZGU6IExpdGVyYWwpID0+IHN0cmluZ30gZW50ZXJcbiAqICAgSGFuZGxlci5cbiAqL1xuZnVuY3Rpb24gaGFuZGxlcihtYXR0ZXIpIHtcbiAgY29uc3Qgb3BlbiA9IGZlbmNlKG1hdHRlciwgJ29wZW4nKVxuICBjb25zdCBjbG9zZSA9IGZlbmNlKG1hdHRlciwgJ2Nsb3NlJylcblxuICByZXR1cm4gaGFuZGxlXG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSBhIGZyb250bWF0dGVyIG5vZGUgYXMgbWFya2Rvd24uXG4gICAqXG4gICAqIEBwYXJhbSB7TGl0ZXJhbH0gbm9kZVxuICAgKiAgIE5vZGUgdG8gc2VyaWFsaXplLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAgICovXG4gIGZ1bmN0aW9uIGhhbmRsZShub2RlKSB7XG4gICAgcmV0dXJuIG9wZW4gKyAobm9kZS52YWx1ZSA/ICdcXG4nICsgbm9kZS52YWx1ZSA6ICcnKSArICdcXG4nICsgY2xvc2VcbiAgfVxufVxuXG4vKipcbiAqIEdldCBhbiBgb3BlbmAgb3IgYGNsb3NlYCBmZW5jZS5cbiAqXG4gKiBAcGFyYW0ge01hdHRlcn0gbWF0dGVyXG4gKiAgIFN0cnVjdHVyZS5cbiAqIEBwYXJhbSB7J2Nsb3NlJyB8ICdvcGVuJ30gcHJvcFxuICogICBGaWVsZCB0byBnZXQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGZW5jZS5cbiAqL1xuZnVuY3Rpb24gZmVuY2UobWF0dGVyLCBwcm9wKSB7XG4gIHJldHVybiBtYXR0ZXIubWFya2VyXG4gICAgPyBwaWNrKG1hdHRlci5tYXJrZXIsIHByb3ApLnJlcGVhdCgzKVxuICAgIDogLy8gQHRzLWV4cGVjdC1lcnJvcjogVGhleVx1MjAxOXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS5cbiAgICAgIHBpY2sobWF0dGVyLmZlbmNlLCBwcm9wKVxufVxuXG4vKipcbiAqIFRha2UgYG9wZW5gIG9yIGBjbG9zZWAgZmllbGRzIHdoZW4gc2NoZW1hIGlzIGFuIGluZm8gb2JqZWN0LCBvciB1c2UgdGhlXG4gKiBnaXZlbiB2YWx1ZSB3aGVuIGl0IGlzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7SW5mbyB8IHN0cmluZ30gc2NoZW1hXG4gKiAgIEluZm8gb2JqZWN0IG9yIHZhbHVlLlxuICogQHBhcmFtIHsnY2xvc2UnIHwgJ29wZW4nfSBwcm9wXG4gKiAgIEZpZWxkIHRvIGdldC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFRoaW5nIHRvIHVzZSBmb3IgdGhlIG9wZW5pbmcgb3IgY2xvc2luZy5cbiAqL1xuZnVuY3Rpb24gcGljayhzY2hlbWEsIHByb3ApIHtcbiAgcmV0dXJuIHR5cGVvZiBzY2hlbWEgPT09ICdzdHJpbmcnID8gc2NoZW1hIDogc2NoZW1hW3Byb3BdXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi9pbmRleC5qcycpLk9wdGlvbnN9IE9wdGlvbnNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL2luZGV4LmpzJykuTWF0dGVyfSBNYXR0ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL2luZGV4LmpzJykuSW5mb30gSW5mb1xuICovXG5cbmV4cG9ydCB7ZnJvbnRtYXR0ZXJGcm9tTWFya2Rvd24sIGZyb250bWF0dGVyVG9NYXJrZG93bn0gZnJvbSAnLi9saWIvaW5kZXguanMnXG4iLCAiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJyZW1hcmstcGFyc2VcIiAvPlxuLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJyZW1hcmstc3RyaW5naWZ5XCIgLz5cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21pY3JvbWFyay1leHRlbnNpb24tZnJvbnRtYXR0ZXInKS5PcHRpb25zfSBPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlmaWVkJykuUHJvY2Vzc29yPFJvb3Q+fSBQcm9jZXNzb3JcbiAqL1xuXG5pbXBvcnQge1xuICBmcm9udG1hdHRlckZyb21NYXJrZG93bixcbiAgZnJvbnRtYXR0ZXJUb01hcmtkb3duXG59IGZyb20gJ21kYXN0LXV0aWwtZnJvbnRtYXR0ZXInXG5pbXBvcnQge2Zyb250bWF0dGVyfSBmcm9tICdtaWNyb21hcmstZXh0ZW5zaW9uLWZyb250bWF0dGVyJ1xuXG4vKiogQHR5cGUge09wdGlvbnN9ICovXG5jb25zdCBlbXB0eU9wdGlvbnMgPSAneWFtbCdcblxuLyoqXG4gKiBBZGQgc3VwcG9ydCBmb3IgZnJvbnRtYXR0ZXIuXG4gKlxuICogIyMjIyMjIE5vdGVzXG4gKlxuICogRG9lc25cdTIwMTl0IHBhcnNlIHRoZSBkYXRhIGluc2lkZSB0aGVtOiBjcmVhdGUgeW91ciBvd24gcGx1Z2luIHRvIGRvIHRoYXQuXG4gKlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnM9J3lhbWwnXVxuICogICBDb25maWd1cmF0aW9uIChkZWZhdWx0OiBgJ3lhbWwnYCkuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW1hcmtGcm9udG1hdHRlcihvcHRpb25zKSB7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IFRTIGlzIHdyb25nIGFib3V0IGB0aGlzYC5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tdGhpcy1hc3NpZ25tZW50XG4gIGNvbnN0IHNlbGYgPSAvKiogQHR5cGUge1Byb2Nlc3Nvcn0gKi8gKHRoaXMpXG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3QgZGF0YSA9IHNlbGYuZGF0YSgpXG5cbiAgY29uc3QgbWljcm9tYXJrRXh0ZW5zaW9ucyA9XG4gICAgZGF0YS5taWNyb21hcmtFeHRlbnNpb25zIHx8IChkYXRhLm1pY3JvbWFya0V4dGVuc2lvbnMgPSBbXSlcbiAgY29uc3QgZnJvbU1hcmtkb3duRXh0ZW5zaW9ucyA9XG4gICAgZGF0YS5mcm9tTWFya2Rvd25FeHRlbnNpb25zIHx8IChkYXRhLmZyb21NYXJrZG93bkV4dGVuc2lvbnMgPSBbXSlcbiAgY29uc3QgdG9NYXJrZG93bkV4dGVuc2lvbnMgPVxuICAgIGRhdGEudG9NYXJrZG93bkV4dGVuc2lvbnMgfHwgKGRhdGEudG9NYXJrZG93bkV4dGVuc2lvbnMgPSBbXSlcblxuICBtaWNyb21hcmtFeHRlbnNpb25zLnB1c2goZnJvbnRtYXR0ZXIoc2V0dGluZ3MpKVxuICBmcm9tTWFya2Rvd25FeHRlbnNpb25zLnB1c2goZnJvbnRtYXR0ZXJGcm9tTWFya2Rvd24oc2V0dGluZ3MpKVxuICB0b01hcmtkb3duRXh0ZW5zaW9ucy5wdXNoKGZyb250bWF0dGVyVG9NYXJrZG93bihzZXR0aW5ncykpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi9pbmRleC5qcycpLk9wdGlvbnN9IE9wdGlvbnNcbiAqL1xuXG5leHBvcnQge2RlZmF1bHR9IGZyb20gJy4vbGliL2luZGV4LmpzJ1xuIiwgImV4cG9ydCBjb25zdCBWT0lEICAgICAgID0gLTE7XG5leHBvcnQgY29uc3QgUFJJTUlUSVZFICA9IDA7XG5leHBvcnQgY29uc3QgQVJSQVkgICAgICA9IDE7XG5leHBvcnQgY29uc3QgT0JKRUNUICAgICA9IDI7XG5leHBvcnQgY29uc3QgREFURSAgICAgICA9IDM7XG5leHBvcnQgY29uc3QgUkVHRVhQICAgICA9IDQ7XG5leHBvcnQgY29uc3QgTUFQICAgICAgICA9IDU7XG5leHBvcnQgY29uc3QgU0VUICAgICAgICA9IDY7XG5leHBvcnQgY29uc3QgRVJST1IgICAgICA9IDc7XG5leHBvcnQgY29uc3QgQklHSU5UICAgICA9IDg7XG4vLyBleHBvcnQgY29uc3QgU1lNQk9MID0gOTtcbiIsICJpbXBvcnQge1xuICBWT0lELCBQUklNSVRJVkUsXG4gIEFSUkFZLCBPQkpFQ1QsXG4gIERBVEUsIFJFR0VYUCwgTUFQLCBTRVQsXG4gIEVSUk9SLCBCSUdJTlRcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmNvbnN0IGVudiA9IHR5cGVvZiBzZWxmID09PSAnb2JqZWN0JyA/IHNlbGYgOiBnbG9iYWxUaGlzO1xuXG5jb25zdCBkZXNlcmlhbGl6ZXIgPSAoJCwgXykgPT4ge1xuICBjb25zdCBhcyA9IChvdXQsIGluZGV4KSA9PiB7XG4gICAgJC5zZXQoaW5kZXgsIG91dCk7XG4gICAgcmV0dXJuIG91dDtcbiAgfTtcblxuICBjb25zdCB1bnBhaXIgPSBpbmRleCA9PiB7XG4gICAgaWYgKCQuaGFzKGluZGV4KSlcbiAgICAgIHJldHVybiAkLmdldChpbmRleCk7XG5cbiAgICBjb25zdCBbdHlwZSwgdmFsdWVdID0gX1tpbmRleF07XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFBSSU1JVElWRTpcbiAgICAgIGNhc2UgVk9JRDpcbiAgICAgICAgcmV0dXJuIGFzKHZhbHVlLCBpbmRleCk7XG4gICAgICBjYXNlIEFSUkFZOiB7XG4gICAgICAgIGNvbnN0IGFyciA9IGFzKFtdLCBpbmRleCk7XG4gICAgICAgIGZvciAoY29uc3QgaW5kZXggb2YgdmFsdWUpXG4gICAgICAgICAgYXJyLnB1c2godW5wYWlyKGluZGV4KSk7XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgICB9XG4gICAgICBjYXNlIE9CSkVDVDoge1xuICAgICAgICBjb25zdCBvYmplY3QgPSBhcyh7fSwgaW5kZXgpO1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGluZGV4XSBvZiB2YWx1ZSlcbiAgICAgICAgICBvYmplY3RbdW5wYWlyKGtleSldID0gdW5wYWlyKGluZGV4KTtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH1cbiAgICAgIGNhc2UgREFURTpcbiAgICAgICAgcmV0dXJuIGFzKG5ldyBEYXRlKHZhbHVlKSwgaW5kZXgpO1xuICAgICAgY2FzZSBSRUdFWFA6IHtcbiAgICAgICAgY29uc3Qge3NvdXJjZSwgZmxhZ3N9ID0gdmFsdWU7XG4gICAgICAgIHJldHVybiBhcyhuZXcgUmVnRXhwKHNvdXJjZSwgZmxhZ3MpLCBpbmRleCk7XG4gICAgICB9XG4gICAgICBjYXNlIE1BUDoge1xuICAgICAgICBjb25zdCBtYXAgPSBhcyhuZXcgTWFwLCBpbmRleCk7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgaW5kZXhdIG9mIHZhbHVlKVxuICAgICAgICAgIG1hcC5zZXQodW5wYWlyKGtleSksIHVucGFpcihpbmRleCkpO1xuICAgICAgICByZXR1cm4gbWFwO1xuICAgICAgfVxuICAgICAgY2FzZSBTRVQ6IHtcbiAgICAgICAgY29uc3Qgc2V0ID0gYXMobmV3IFNldCwgaW5kZXgpO1xuICAgICAgICBmb3IgKGNvbnN0IGluZGV4IG9mIHZhbHVlKVxuICAgICAgICAgIHNldC5hZGQodW5wYWlyKGluZGV4KSk7XG4gICAgICAgIHJldHVybiBzZXQ7XG4gICAgICB9XG4gICAgICBjYXNlIEVSUk9SOiB7XG4gICAgICAgIGNvbnN0IHtuYW1lLCBtZXNzYWdlfSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gYXMobmV3IGVudltuYW1lXShtZXNzYWdlKSwgaW5kZXgpO1xuICAgICAgfVxuICAgICAgY2FzZSBCSUdJTlQ6XG4gICAgICAgIHJldHVybiBhcyhCaWdJbnQodmFsdWUpLCBpbmRleCk7XG4gICAgICBjYXNlICdCaWdJbnQnOlxuICAgICAgICByZXR1cm4gYXMoT2JqZWN0KEJpZ0ludCh2YWx1ZSkpLCBpbmRleCk7XG4gICAgICBjYXNlICdBcnJheUJ1ZmZlcic6XG4gICAgICAgIHJldHVybiBhcyhuZXcgVWludDhBcnJheSh2YWx1ZSkuYnVmZmVyLCB2YWx1ZSk7XG4gICAgICBjYXNlICdEYXRhVmlldyc6IHtcbiAgICAgICAgY29uc3QgeyBidWZmZXIgfSA9IG5ldyBVaW50OEFycmF5KHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIGFzKG5ldyBEYXRhVmlldyhidWZmZXIpLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhcyhuZXcgZW52W3R5cGVdKHZhbHVlKSwgaW5kZXgpO1xuICB9O1xuXG4gIHJldHVybiB1bnBhaXI7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtBcnJheTxzdHJpbmcsYW55Pn0gUmVjb3JkIGEgdHlwZSByZXByZXNlbnRhdGlvblxuICovXG5cbi8qKlxuICogUmV0dXJucyBhIGRlc2VyaWFsaXplZCB2YWx1ZSBmcm9tIGEgc2VyaWFsaXplZCBhcnJheSBvZiBSZWNvcmRzLlxuICogQHBhcmFtIHtSZWNvcmRbXX0gc2VyaWFsaXplZCBhIHByZXZpb3VzbHkgc2VyaWFsaXplZCB2YWx1ZS5cbiAqIEByZXR1cm5zIHthbnl9XG4gKi9cbmV4cG9ydCBjb25zdCBkZXNlcmlhbGl6ZSA9IHNlcmlhbGl6ZWQgPT4gZGVzZXJpYWxpemVyKG5ldyBNYXAsIHNlcmlhbGl6ZWQpKDApO1xuIiwgImltcG9ydCB7XG4gIFZPSUQsIFBSSU1JVElWRSxcbiAgQVJSQVksIE9CSkVDVCxcbiAgREFURSwgUkVHRVhQLCBNQVAsIFNFVCxcbiAgRVJST1IsIEJJR0lOVFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuY29uc3QgRU1QVFkgPSAnJztcblxuY29uc3Qge3RvU3RyaW5nfSA9IHt9O1xuY29uc3Qge2tleXN9ID0gT2JqZWN0O1xuXG5jb25zdCB0eXBlT2YgPSB2YWx1ZSA9PiB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGlmICh0eXBlICE9PSAnb2JqZWN0JyB8fCAhdmFsdWUpXG4gICAgcmV0dXJuIFtQUklNSVRJVkUsIHR5cGVdO1xuXG4gIGNvbnN0IGFzU3RyaW5nID0gdG9TdHJpbmcuY2FsbCh2YWx1ZSkuc2xpY2UoOCwgLTEpO1xuICBzd2l0Y2ggKGFzU3RyaW5nKSB7XG4gICAgY2FzZSAnQXJyYXknOlxuICAgICAgcmV0dXJuIFtBUlJBWSwgRU1QVFldO1xuICAgIGNhc2UgJ09iamVjdCc6XG4gICAgICByZXR1cm4gW09CSkVDVCwgRU1QVFldO1xuICAgIGNhc2UgJ0RhdGUnOlxuICAgICAgcmV0dXJuIFtEQVRFLCBFTVBUWV07XG4gICAgY2FzZSAnUmVnRXhwJzpcbiAgICAgIHJldHVybiBbUkVHRVhQLCBFTVBUWV07XG4gICAgY2FzZSAnTWFwJzpcbiAgICAgIHJldHVybiBbTUFQLCBFTVBUWV07XG4gICAgY2FzZSAnU2V0JzpcbiAgICAgIHJldHVybiBbU0VULCBFTVBUWV07XG4gICAgY2FzZSAnRGF0YVZpZXcnOlxuICAgICAgcmV0dXJuIFtBUlJBWSwgYXNTdHJpbmddO1xuICB9XG5cbiAgaWYgKGFzU3RyaW5nLmluY2x1ZGVzKCdBcnJheScpKVxuICAgIHJldHVybiBbQVJSQVksIGFzU3RyaW5nXTtcblxuICBpZiAoYXNTdHJpbmcuaW5jbHVkZXMoJ0Vycm9yJykpXG4gICAgcmV0dXJuIFtFUlJPUiwgYXNTdHJpbmddO1xuXG4gIHJldHVybiBbT0JKRUNULCBhc1N0cmluZ107XG59O1xuXG5jb25zdCBzaG91bGRTa2lwID0gKFtUWVBFLCB0eXBlXSkgPT4gKFxuICBUWVBFID09PSBQUklNSVRJVkUgJiZcbiAgKHR5cGUgPT09ICdmdW5jdGlvbicgfHwgdHlwZSA9PT0gJ3N5bWJvbCcpXG4pO1xuXG5jb25zdCBzZXJpYWxpemVyID0gKHN0cmljdCwganNvbiwgJCwgXykgPT4ge1xuXG4gIGNvbnN0IGFzID0gKG91dCwgdmFsdWUpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IF8ucHVzaChvdXQpIC0gMTtcbiAgICAkLnNldCh2YWx1ZSwgaW5kZXgpO1xuICAgIHJldHVybiBpbmRleDtcbiAgfTtcblxuICBjb25zdCBwYWlyID0gdmFsdWUgPT4ge1xuICAgIGlmICgkLmhhcyh2YWx1ZSkpXG4gICAgICByZXR1cm4gJC5nZXQodmFsdWUpO1xuXG4gICAgbGV0IFtUWVBFLCB0eXBlXSA9IHR5cGVPZih2YWx1ZSk7XG4gICAgc3dpdGNoIChUWVBFKSB7XG4gICAgICBjYXNlIFBSSU1JVElWRToge1xuICAgICAgICBsZXQgZW50cnkgPSB2YWx1ZTtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSAnYmlnaW50JzpcbiAgICAgICAgICAgIFRZUEUgPSBCSUdJTlQ7XG4gICAgICAgICAgICBlbnRyeSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICAgICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgICAgICAgIGlmIChzdHJpY3QpXG4gICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3VuYWJsZSB0byBzZXJpYWxpemUgJyArIHR5cGUpO1xuICAgICAgICAgICAgZW50cnkgPSBudWxsO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgICAgIHJldHVybiBhcyhbVk9JRF0sIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXMoW1RZUEUsIGVudHJ5XSwgdmFsdWUpO1xuICAgICAgfVxuICAgICAgY2FzZSBBUlJBWToge1xuICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgIGxldCBzcHJlYWQgPSB2YWx1ZTtcbiAgICAgICAgICBpZiAodHlwZSA9PT0gJ0RhdGFWaWV3Jykge1xuICAgICAgICAgICAgc3ByZWFkID0gbmV3IFVpbnQ4QXJyYXkodmFsdWUuYnVmZmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ0FycmF5QnVmZmVyJykge1xuICAgICAgICAgICAgc3ByZWFkID0gbmV3IFVpbnQ4QXJyYXkodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYXMoW3R5cGUsIFsuLi5zcHJlYWRdXSwgdmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXJyID0gW107XG4gICAgICAgIGNvbnN0IGluZGV4ID0gYXMoW1RZUEUsIGFycl0sIHZhbHVlKTtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiB2YWx1ZSlcbiAgICAgICAgICBhcnIucHVzaChwYWlyKGVudHJ5KSk7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICAgIGNhc2UgT0JKRUNUOiB7XG4gICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdCaWdJbnQnOlxuICAgICAgICAgICAgICByZXR1cm4gYXMoW3R5cGUsIHZhbHVlLnRvU3RyaW5nKCldLCB2YWx1ZSk7XG4gICAgICAgICAgICBjYXNlICdCb29sZWFuJzpcbiAgICAgICAgICAgIGNhc2UgJ051bWJlcic6XG4gICAgICAgICAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgICAgICAgICByZXR1cm4gYXMoW3R5cGUsIHZhbHVlLnZhbHVlT2YoKV0sIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoanNvbiAmJiAoJ3RvSlNPTicgaW4gdmFsdWUpKVxuICAgICAgICAgIHJldHVybiBwYWlyKHZhbHVlLnRvSlNPTigpKTtcblxuICAgICAgICBjb25zdCBlbnRyaWVzID0gW107XG4gICAgICAgIGNvbnN0IGluZGV4ID0gYXMoW1RZUEUsIGVudHJpZXNdLCB2YWx1ZSk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXModmFsdWUpKSB7XG4gICAgICAgICAgaWYgKHN0cmljdCB8fCAhc2hvdWxkU2tpcCh0eXBlT2YodmFsdWVba2V5XSkpKVxuICAgICAgICAgICAgZW50cmllcy5wdXNoKFtwYWlyKGtleSksIHBhaXIodmFsdWVba2V5XSldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgICBjYXNlIERBVEU6XG4gICAgICAgIHJldHVybiBhcyhbVFlQRSwgdmFsdWUudG9JU09TdHJpbmcoKV0sIHZhbHVlKTtcbiAgICAgIGNhc2UgUkVHRVhQOiB7XG4gICAgICAgIGNvbnN0IHtzb3VyY2UsIGZsYWdzfSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gYXMoW1RZUEUsIHtzb3VyY2UsIGZsYWdzfV0sIHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgTUFQOiB7XG4gICAgICAgIGNvbnN0IGVudHJpZXMgPSBbXTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBhcyhbVFlQRSwgZW50cmllc10sIHZhbHVlKTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBlbnRyeV0gb2YgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoc3RyaWN0IHx8ICEoc2hvdWxkU2tpcCh0eXBlT2Yoa2V5KSkgfHwgc2hvdWxkU2tpcCh0eXBlT2YoZW50cnkpKSkpXG4gICAgICAgICAgICBlbnRyaWVzLnB1c2goW3BhaXIoa2V5KSwgcGFpcihlbnRyeSldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgICBjYXNlIFNFVDoge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gW107XG4gICAgICAgIGNvbnN0IGluZGV4ID0gYXMoW1RZUEUsIGVudHJpZXNdLCB2YWx1ZSk7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoc3RyaWN0IHx8ICFzaG91bGRTa2lwKHR5cGVPZihlbnRyeSkpKVxuICAgICAgICAgICAgZW50cmllcy5wdXNoKHBhaXIoZW50cnkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qge21lc3NhZ2V9ID0gdmFsdWU7XG4gICAgcmV0dXJuIGFzKFtUWVBFLCB7bmFtZTogdHlwZSwgbWVzc2FnZX1dLCB2YWx1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIHBhaXI7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtBcnJheTxzdHJpbmcsYW55Pn0gUmVjb3JkIGEgdHlwZSByZXByZXNlbnRhdGlvblxuICovXG5cbi8qKlxuICogUmV0dXJucyBhbiBhcnJheSBvZiBzZXJpYWxpemVkIFJlY29yZHMuXG4gKiBAcGFyYW0ge2FueX0gdmFsdWUgYSBzZXJpYWxpemFibGUgdmFsdWUuXG4gKiBAcGFyYW0ge3tqc29uPzogYm9vbGVhbiwgbG9zc3k/OiBib29sZWFufT99IG9wdGlvbnMgYW4gb2JqZWN0IHdpdGggYSBgbG9zc3lgIG9yIGBqc29uYCBwcm9wZXJ0eSB0aGF0LFxuICogIGlmIGB0cnVlYCwgd2lsbCBub3QgdGhyb3cgZXJyb3JzIG9uIGluY29tcGF0aWJsZSB0eXBlcywgYW5kIGJlaGF2ZSBtb3JlXG4gKiAgbGlrZSBKU09OIHN0cmluZ2lmeSB3b3VsZCBiZWhhdmUuIFN5bWJvbCBhbmQgRnVuY3Rpb24gd2lsbCBiZSBkaXNjYXJkZWQuXG4gKiBAcmV0dXJucyB7UmVjb3JkW119XG4gKi9cbiBleHBvcnQgY29uc3Qgc2VyaWFsaXplID0gKHZhbHVlLCB7anNvbiwgbG9zc3l9ID0ge30pID0+IHtcbiAgY29uc3QgXyA9IFtdO1xuICByZXR1cm4gc2VyaWFsaXplcighKGpzb24gfHwgbG9zc3kpLCAhIWpzb24sIG5ldyBNYXAsIF8pKHZhbHVlKSwgXztcbn07XG4iLCAiaW1wb3J0IHtkZXNlcmlhbGl6ZX0gZnJvbSAnLi9kZXNlcmlhbGl6ZS5qcyc7XG5pbXBvcnQge3NlcmlhbGl6ZX0gZnJvbSAnLi9zZXJpYWxpemUuanMnO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtBcnJheTxzdHJpbmcsYW55Pn0gUmVjb3JkIGEgdHlwZSByZXByZXNlbnRhdGlvblxuICovXG5cbi8qKlxuICogUmV0dXJucyBhbiBhcnJheSBvZiBzZXJpYWxpemVkIFJlY29yZHMuXG4gKiBAcGFyYW0ge2FueX0gYW55IGEgc2VyaWFsaXphYmxlIHZhbHVlLlxuICogQHBhcmFtIHt7dHJhbnNmZXI/OiBhbnlbXSwganNvbj86IGJvb2xlYW4sIGxvc3N5PzogYm9vbGVhbn0/fSBvcHRpb25zIGFuIG9iamVjdCB3aXRoXG4gKiBhIHRyYW5zZmVyIG9wdGlvbiAoaWdub3JlZCB3aGVuIHBvbHlmaWxsZWQpIGFuZC9vciBub24gc3RhbmRhcmQgZmllbGRzIHRoYXRcbiAqIGZhbGxiYWNrIHRvIHRoZSBwb2x5ZmlsbCBpZiBwcmVzZW50LlxuICogQHJldHVybnMge1JlY29yZFtdfVxuICovXG5leHBvcnQgZGVmYXVsdCB0eXBlb2Ygc3RydWN0dXJlZENsb25lID09PSBcImZ1bmN0aW9uXCIgP1xuICAvKiBjOCBpZ25vcmUgc3RhcnQgKi9cbiAgKGFueSwgb3B0aW9ucykgPT4gKFxuICAgIG9wdGlvbnMgJiYgKCdqc29uJyBpbiBvcHRpb25zIHx8ICdsb3NzeScgaW4gb3B0aW9ucykgP1xuICAgICAgZGVzZXJpYWxpemUoc2VyaWFsaXplKGFueSwgb3B0aW9ucykpIDogc3RydWN0dXJlZENsb25lKGFueSlcbiAgKSA6XG4gIChhbnksIG9wdGlvbnMpID0+IGRlc2VyaWFsaXplKHNlcmlhbGl6ZShhbnksIG9wdGlvbnMpKTtcbiAgLyogYzggaWdub3JlIHN0b3AgKi9cblxuZXhwb3J0IHtkZXNlcmlhbGl6ZSwgc2VyaWFsaXplfTtcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gUG9pbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9zaXRpb259IFBvc2l0aW9uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBOb2RlTGlrZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHR5cGVcbiAqIEBwcm9wZXJ0eSB7UG9zaXRpb25MaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Bvc2l0aW9uXVxuICpcbiAqIEB0eXBlZGVmIFBvc2l0aW9uTGlrZVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3RhcnRdXG4gKiBAcHJvcGVydHkge1BvaW50TGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmRdXG4gKlxuICogQHR5cGVkZWYgUG9pbnRMaWtlXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtsaW5lXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbY29sdW1uXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbb2Zmc2V0XVxuICovXG5cbi8qKlxuICogR2V0IHRoZSBlbmRpbmcgcG9pbnQgb2YgYG5vZGVgLlxuICpcbiAqIEBwYXJhbSBub2RlXG4gKiAgIE5vZGUuXG4gKiBAcmV0dXJuc1xuICogICBQb2ludC5cbiAqL1xuZXhwb3J0IGNvbnN0IHBvaW50RW5kID0gcG9pbnQoJ2VuZCcpXG5cbi8qKlxuICogR2V0IHRoZSBzdGFydGluZyBwb2ludCBvZiBgbm9kZWAuXG4gKlxuICogQHBhcmFtIG5vZGVcbiAqICAgTm9kZS5cbiAqIEByZXR1cm5zXG4gKiAgIFBvaW50LlxuICovXG5leHBvcnQgY29uc3QgcG9pbnRTdGFydCA9IHBvaW50KCdzdGFydCcpXG5cbi8qKlxuICogR2V0IHRoZSBwb3NpdGlvbmFsIGluZm8gb2YgYG5vZGVgLlxuICpcbiAqIEBwYXJhbSB7J2VuZCcgfCAnc3RhcnQnfSB0eXBlXG4gKiAgIFNpZGUuXG4gKiBAcmV0dXJuc1xuICogICBHZXR0ZXIuXG4gKi9cbmZ1bmN0aW9uIHBvaW50KHR5cGUpIHtcbiAgcmV0dXJuIHBvaW50XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcG9pbnQgaW5mbyBvZiBgbm9kZWAgYXQgYSBib3VuZCBzaWRlLlxuICAgKlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtub2RlXVxuICAgKiBAcmV0dXJucyB7UG9pbnQgfCB1bmRlZmluZWR9XG4gICAqL1xuICBmdW5jdGlvbiBwb2ludChub2RlKSB7XG4gICAgY29uc3QgcG9pbnQgPSAobm9kZSAmJiBub2RlLnBvc2l0aW9uICYmIG5vZGUucG9zaXRpb25bdHlwZV0pIHx8IHt9XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgcG9pbnQubGluZSA9PT0gJ251bWJlcicgJiZcbiAgICAgIHBvaW50LmxpbmUgPiAwICYmXG4gICAgICB0eXBlb2YgcG9pbnQuY29sdW1uID09PSAnbnVtYmVyJyAmJlxuICAgICAgcG9pbnQuY29sdW1uID4gMFxuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGluZTogcG9pbnQubGluZSxcbiAgICAgICAgY29sdW1uOiBwb2ludC5jb2x1bW4sXG4gICAgICAgIG9mZnNldDpcbiAgICAgICAgICB0eXBlb2YgcG9pbnQub2Zmc2V0ID09PSAnbnVtYmVyJyAmJiBwb2ludC5vZmZzZXQgPiAtMVxuICAgICAgICAgICAgPyBwb2ludC5vZmZzZXRcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBwb3NpdGlvbmFsIGluZm8gb2YgYG5vZGVgLlxuICpcbiAqIEBwYXJhbSB7Tm9kZSB8IE5vZGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW25vZGVdXG4gKiAgIE5vZGUuXG4gKiBAcmV0dXJucyB7UG9zaXRpb24gfCB1bmRlZmluZWR9XG4gKiAgIFBvc2l0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9zaXRpb24obm9kZSkge1xuICBjb25zdCBzdGFydCA9IHBvaW50U3RhcnQobm9kZSlcbiAgY29uc3QgZW5kID0gcG9pbnRFbmQobm9kZSlcblxuICBpZiAoc3RhcnQgJiYgZW5kKSB7XG4gICAgcmV0dXJuIHtzdGFydCwgZW5kfVxuICB9XG59XG4iLCAiZXhwb3J0IHtwb2ludEVuZCwgcG9pbnRTdGFydCwgcG9zaXRpb259IGZyb20gJy4vbGliL2luZGV4LmpzJ1xuIiwgIi8qKlxuICogQGltcG9ydCB7U2NoZW1hfSBmcm9tICdoYXN0LXV0aWwtc2FuaXRpemUnXG4gKi9cblxuLy8gQ291cGxlIG9mIEFSSUEgYXR0cmlidXRlcyBhbGxvd2VkIGluIHNldmVyYWwsIGJ1dCBub3QgYWxsLCBwbGFjZXMuXG5jb25zdCBhcmlhID0gWydhcmlhRGVzY3JpYmVkQnknLCAnYXJpYUxhYmVsJywgJ2FyaWFMYWJlbGxlZEJ5J11cblxuLyoqXG4gKiBEZWZhdWx0IHNjaGVtYS5cbiAqXG4gKiBGb2xsb3dzIEdpdEh1YiBzdHlsZSBzYW5pdGF0aW9uLlxuICpcbiAqIEB0eXBlIHtTY2hlbWF9XG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0U2NoZW1hID0ge1xuICBhbmNlc3RvcnM6IHtcbiAgICB0Ym9keTogWyd0YWJsZSddLFxuICAgIHRkOiBbJ3RhYmxlJ10sXG4gICAgdGg6IFsndGFibGUnXSxcbiAgICB0aGVhZDogWyd0YWJsZSddLFxuICAgIHRmb290OiBbJ3RhYmxlJ10sXG4gICAgdHI6IFsndGFibGUnXVxuICB9LFxuICBhdHRyaWJ1dGVzOiB7XG4gICAgYTogW1xuICAgICAgLi4uYXJpYSxcbiAgICAgIC8vIE5vdGU6IHRoZXNlIDMgYXJlIHVzZWQgYnkgR0ZNIGZvb3Rub3RlcywgdGhleSBkbyB3b3JrIG9uIGFsbCBsaW5rcy5cbiAgICAgICdkYXRhRm9vdG5vdGVCYWNrcmVmJyxcbiAgICAgICdkYXRhRm9vdG5vdGVSZWYnLFxuICAgICAgWydjbGFzc05hbWUnLCAnZGF0YS1mb290bm90ZS1iYWNrcmVmJ10sXG4gICAgICAnaHJlZidcbiAgICBdLFxuICAgIGJsb2NrcXVvdGU6IFsnY2l0ZSddLFxuICAgIC8vIE5vdGU6IHRoaXMgY2xhc3MgaXMgbm90IG5vcm1hbGx5IGFsbG93ZWQgYnkgR0gsIHdoZW4gbWFudWFsbHkgd3JpdGluZ1xuICAgIC8vIGBjb2RlYCBhcyBIVE1MIGluIG1hcmtkb3duLCB0aGV5IGFkZHMgaXQgc29tZSBvdGhlciB3YXkuXG4gICAgLy8gV2UgY2FuXHUyMDE5dCBkbyB0aGF0LCBzbyB3ZSBoYXZlIHRvIGFsbG93IGl0LlxuICAgIGNvZGU6IFtbJ2NsYXNzTmFtZScsIC9ebGFuZ3VhZ2UtLi9dXSxcbiAgICBkZWw6IFsnY2l0ZSddLFxuICAgIGRpdjogWydpdGVtU2NvcGUnLCAnaXRlbVR5cGUnXSxcbiAgICBkbDogWy4uLmFyaWFdLFxuICAgIC8vIE5vdGU6IHRoaXMgaXMgdXNlZCBieSBHRk0gZm9vdG5vdGVzLlxuICAgIGgyOiBbWydjbGFzc05hbWUnLCAnc3Itb25seSddXSxcbiAgICBpbWc6IFsuLi5hcmlhLCAnbG9uZ0Rlc2MnLCAnc3JjJ10sXG4gICAgLy8gTm90ZTogYGlucHV0YCBpcyBub3Qgbm9ybWFsbHkgYWxsb3dlZCBieSBHSCwgd2hlbiBtYW51YWxseSB3cml0aW5nXG4gICAgLy8gaXQgaW4gbWFya2Rvd24sIHRoZXkgYWRkIGl0IGZyb20gdGFza2xpc3RzIHNvbWUgb3RoZXIgd2F5LlxuICAgIC8vIFdlIGNhblx1MjAxOXQgZG8gdGhhdCwgc28gd2UgaGF2ZSB0byBhbGxvdyBpdC5cbiAgICBpbnB1dDogW1xuICAgICAgWydkaXNhYmxlZCcsIHRydWVdLFxuICAgICAgWyd0eXBlJywgJ2NoZWNrYm94J11cbiAgICBdLFxuICAgIGluczogWydjaXRlJ10sXG4gICAgLy8gTm90ZTogdGhpcyBjbGFzcyBpcyBub3Qgbm9ybWFsbHkgYWxsb3dlZCBieSBHSCwgd2hlbiBtYW51YWxseSB3cml0aW5nXG4gICAgLy8gYGxpYCBhcyBIVE1MIGluIG1hcmtkb3duLCB0aGV5IGFkZHMgaXQgc29tZSBvdGhlciB3YXkuXG4gICAgLy8gV2UgY2FuXHUyMDE5dCBkbyB0aGF0LCBzbyB3ZSBoYXZlIHRvIGFsbG93IGl0LlxuICAgIGxpOiBbWydjbGFzc05hbWUnLCAndGFzay1saXN0LWl0ZW0nXV0sXG4gICAgLy8gTm90ZTogdGhpcyBjbGFzcyBpcyBub3Qgbm9ybWFsbHkgYWxsb3dlZCBieSBHSCwgd2hlbiBtYW51YWxseSB3cml0aW5nXG4gICAgLy8gYG9sYCBhcyBIVE1MIGluIG1hcmtkb3duLCB0aGV5IGFkZHMgaXQgc29tZSBvdGhlciB3YXkuXG4gICAgLy8gV2UgY2FuXHUyMDE5dCBkbyB0aGF0LCBzbyB3ZSBoYXZlIHRvIGFsbG93IGl0LlxuICAgIG9sOiBbLi4uYXJpYSwgWydjbGFzc05hbWUnLCAnY29udGFpbnMtdGFzay1saXN0J11dLFxuICAgIHE6IFsnY2l0ZSddLFxuICAgIHNlY3Rpb246IFsnZGF0YUZvb3Rub3RlcycsIFsnY2xhc3NOYW1lJywgJ2Zvb3Rub3RlcyddXSxcbiAgICBzb3VyY2U6IFsnc3JjU2V0J10sXG4gICAgc3VtbWFyeTogWy4uLmFyaWFdLFxuICAgIHRhYmxlOiBbLi4uYXJpYV0sXG4gICAgLy8gTm90ZTogdGhpcyBjbGFzcyBpcyBub3Qgbm9ybWFsbHkgYWxsb3dlZCBieSBHSCwgd2hlbiBtYW51YWxseSB3cml0aW5nXG4gICAgLy8gYG9sYCBhcyBIVE1MIGluIG1hcmtkb3duLCB0aGV5IGFkZHMgaXQgc29tZSBvdGhlciB3YXkuXG4gICAgLy8gV2UgY2FuXHUyMDE5dCBkbyB0aGF0LCBzbyB3ZSBoYXZlIHRvIGFsbG93IGl0LlxuICAgIHVsOiBbLi4uYXJpYSwgWydjbGFzc05hbWUnLCAnY29udGFpbnMtdGFzay1saXN0J11dLFxuICAgICcqJzogW1xuICAgICAgJ2FiYnInLFxuICAgICAgJ2FjY2VwdCcsXG4gICAgICAnYWNjZXB0Q2hhcnNldCcsXG4gICAgICAnYWNjZXNzS2V5JyxcbiAgICAgICdhY3Rpb24nLFxuICAgICAgJ2FsaWduJyxcbiAgICAgICdhbHQnLFxuICAgICAgJ2F4aXMnLFxuICAgICAgJ2JvcmRlcicsXG4gICAgICAnY2VsbFBhZGRpbmcnLFxuICAgICAgJ2NlbGxTcGFjaW5nJyxcbiAgICAgICdjaGFyJyxcbiAgICAgICdjaGFyT2ZmJyxcbiAgICAgICdjaGFyU2V0JyxcbiAgICAgICdjaGVja2VkJyxcbiAgICAgICdjbGVhcicsXG4gICAgICAnY29sU3BhbicsXG4gICAgICAnY29sb3InLFxuICAgICAgJ2NvbHMnLFxuICAgICAgJ2NvbXBhY3QnLFxuICAgICAgJ2Nvb3JkcycsXG4gICAgICAnZGF0ZVRpbWUnLFxuICAgICAgJ2RpcicsXG4gICAgICAvLyBOb3RlOiBgZGlzYWJsZWRgIGlzIHRlY2huaWNhbGx5IGFsbG93ZWQgb24gYWxsIGVsZW1lbnRzIGJ5IEdILlxuICAgICAgLy8gQnV0IGl0IGlzIHVzZWxlc3Mgb24gZXZlcnl0aGluZyBleGNlcHQgYGlucHV0YC5cbiAgICAgIC8vIEJlY2F1c2UgYGlucHV0YHMgYXJlIG5vcm1hbGx5IG5vdCBhbGxvd2VkLCBidXQgd2UgYWxsb3cgdGhlbSBmb3JcbiAgICAgIC8vIGNoZWNrYm94ZXMgZHVlIHRvIHRhc2tsaXN0cywgd2UgYWxsb3cgYGRpc2FibGVkYCBvbmx5IHRoZXJlLlxuICAgICAgJ2VuY1R5cGUnLFxuICAgICAgJ2ZyYW1lJyxcbiAgICAgICdoU3BhY2UnLFxuICAgICAgJ2hlYWRlcnMnLFxuICAgICAgJ2hlaWdodCcsXG4gICAgICAnaHJlZkxhbmcnLFxuICAgICAgJ2h0bWxGb3InLFxuICAgICAgJ2lkJyxcbiAgICAgICdpc01hcCcsXG4gICAgICAnaXRlbVByb3AnLFxuICAgICAgJ2xhYmVsJyxcbiAgICAgICdsYW5nJyxcbiAgICAgICdtYXhMZW5ndGgnLFxuICAgICAgJ21lZGlhJyxcbiAgICAgICdtZXRob2QnLFxuICAgICAgJ211bHRpcGxlJyxcbiAgICAgICduYW1lJyxcbiAgICAgICdub0hyZWYnLFxuICAgICAgJ25vU2hhZGUnLFxuICAgICAgJ25vV3JhcCcsXG4gICAgICAnb3BlbicsXG4gICAgICAncHJvbXB0JyxcbiAgICAgICdyZWFkT25seScsXG4gICAgICAncmV2JyxcbiAgICAgICdyb3dTcGFuJyxcbiAgICAgICdyb3dzJyxcbiAgICAgICdydWxlcycsXG4gICAgICAnc2NvcGUnLFxuICAgICAgJ3NlbGVjdGVkJyxcbiAgICAgICdzaGFwZScsXG4gICAgICAnc2l6ZScsXG4gICAgICAnc3BhbicsXG4gICAgICAnc3RhcnQnLFxuICAgICAgJ3N1bW1hcnknLFxuICAgICAgJ3RhYkluZGV4JyxcbiAgICAgICd0aXRsZScsXG4gICAgICAndXNlTWFwJyxcbiAgICAgICd2QWxpZ24nLFxuICAgICAgJ3ZhbHVlJyxcbiAgICAgICd3aWR0aCdcbiAgICBdXG4gIH0sXG4gIGNsb2JiZXI6IFsnYXJpYURlc2NyaWJlZEJ5JywgJ2FyaWFMYWJlbGxlZEJ5JywgJ2lkJywgJ25hbWUnXSxcbiAgY2xvYmJlclByZWZpeDogJ3VzZXItY29udGVudC0nLFxuICBwcm90b2NvbHM6IHtcbiAgICBjaXRlOiBbJ2h0dHAnLCAnaHR0cHMnXSxcbiAgICBocmVmOiBbJ2h0dHAnLCAnaHR0cHMnLCAnaXJjJywgJ2lyY3MnLCAnbWFpbHRvJywgJ3htcHAnXSxcbiAgICBsb25nRGVzYzogWydodHRwJywgJ2h0dHBzJ10sXG4gICAgc3JjOiBbJ2h0dHAnLCAnaHR0cHMnXVxuICB9LFxuICByZXF1aXJlZDoge1xuICAgIGlucHV0OiB7ZGlzYWJsZWQ6IHRydWUsIHR5cGU6ICdjaGVja2JveCd9XG4gIH0sXG4gIHN0cmlwOiBbJ3NjcmlwdCddLFxuICB0YWdOYW1lczogW1xuICAgICdhJyxcbiAgICAnYicsXG4gICAgJ2Jsb2NrcXVvdGUnLFxuICAgICdicicsXG4gICAgJ2NvZGUnLFxuICAgICdkZCcsXG4gICAgJ2RlbCcsXG4gICAgJ2RldGFpbHMnLFxuICAgICdkaXYnLFxuICAgICdkbCcsXG4gICAgJ2R0JyxcbiAgICAnZW0nLFxuICAgICdoMScsXG4gICAgJ2gyJyxcbiAgICAnaDMnLFxuICAgICdoNCcsXG4gICAgJ2g1JyxcbiAgICAnaDYnLFxuICAgICdocicsXG4gICAgJ2knLFxuICAgICdpbWcnLFxuICAgIC8vIE5vdGU6IGBpbnB1dGAgaXMgbm90IG5vcm1hbGx5IGFsbG93ZWQgYnkgR0gsIHdoZW4gbWFudWFsbHkgd3JpdGluZ1xuICAgIC8vIGl0IGluIG1hcmtkb3duLCB0aGV5IGFkZCBpdCBmcm9tIHRhc2tsaXN0cyBzb21lIG90aGVyIHdheS5cbiAgICAvLyBXZSBjYW5cdTIwMTl0IGRvIHRoYXQsIHNvIHdlIGhhdmUgdG8gYWxsb3cgaXQuXG4gICAgJ2lucHV0JyxcbiAgICAnaW5zJyxcbiAgICAna2JkJyxcbiAgICAnbGknLFxuICAgICdvbCcsXG4gICAgJ3AnLFxuICAgICdwaWN0dXJlJyxcbiAgICAncHJlJyxcbiAgICAncScsXG4gICAgJ3JwJyxcbiAgICAncnQnLFxuICAgICdydWJ5JyxcbiAgICAncycsXG4gICAgJ3NhbXAnLFxuICAgICdzZWN0aW9uJyxcbiAgICAnc291cmNlJyxcbiAgICAnc3BhbicsXG4gICAgJ3N0cmlrZScsXG4gICAgJ3N0cm9uZycsXG4gICAgJ3N1YicsXG4gICAgJ3N1bW1hcnknLFxuICAgICdzdXAnLFxuICAgICd0YWJsZScsXG4gICAgJ3Rib2R5JyxcbiAgICAndGQnLFxuICAgICd0Zm9vdCcsXG4gICAgJ3RoJyxcbiAgICAndGhlYWQnLFxuICAgICd0cicsXG4gICAgJ3R0JyxcbiAgICAndWwnLFxuICAgICd2YXInXG4gIF1cbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge1xuICogICBDb21tZW50LFxuICogICBEb2N0eXBlLFxuICogICBFbGVtZW50Q29udGVudCxcbiAqICAgRWxlbWVudCxcbiAqICAgTm9kZXMsXG4gKiAgIFByb3BlcnRpZXMsXG4gKiAgIFJvb3RDb250ZW50LFxuICogICBSb290LFxuICogICBUZXh0XG4gKiB9IGZyb20gJ2hhc3QnXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7W3N0cmluZywgLi4uQXJyYXk8RXhjbHVkZTxQcm9wZXJ0aWVzW2tleW9mIFByb3BlcnRpZXNdLCBBcnJheTxhbnk+PiB8IFJlZ0V4cD5dIHwgc3RyaW5nfSBQcm9wZXJ0eURlZmluaXRpb25cbiAqICAgRGVmaW5pdGlvbiBmb3IgYSBwcm9wZXJ0eS5cbiAqXG4gKiBAdHlwZWRlZiBTY2hlbWFcbiAqICAgU2NoZW1hIHRoYXQgZGVmaW5lcyB3aGF0IG5vZGVzIGFuZCBwcm9wZXJ0aWVzIGFyZSBhbGxvd2VkLlxuICpcbiAqICAgVGhlIGRlZmF1bHQgc2NoZW1hIGlzIGBkZWZhdWx0U2NoZW1hYCwgd2hpY2ggZm9sbG93cyBob3cgR2l0SHViIGNsZWFucy5cbiAqICAgSWYgYW55IHRvcC1sZXZlbCBrZXkgaXMgbWlzc2luZyBpbiB0aGUgZ2l2ZW4gc2NoZW1hLCB0aGUgY29ycmVzcG9uZGluZ1xuICogICB2YWx1ZSBvZiB0aGUgZGVmYXVsdCBzY2hlbWEgaXMgdXNlZC5cbiAqXG4gKiAgIFRvIGV4dGVuZCB0aGUgc3RhbmRhcmQgc2NoZW1hIHdpdGggYSBmZXcgY2hhbmdlcywgY2xvbmUgYGRlZmF1bHRTY2hlbWFgXG4gKiAgIGxpa2Ugc286XG4gKlxuICogICBgYGBqc1xuICogICBpbXBvcnQgZGVlcG1lcmdlIGZyb20gJ2RlZXBtZXJnZSdcbiAqICAgaW1wb3J0IHtofSBmcm9tICdoYXN0c2NyaXB0J1xuICogICBpbXBvcnQge2RlZmF1bHRTY2hlbWEsIHNhbml0aXplfSBmcm9tICdoYXN0LXV0aWwtc2FuaXRpemUnXG4gKlxuICogICAvLyBUaGlzIGFsbG93cyBgY2xhc3NOYW1lYCBvbiBhbGwgZWxlbWVudHMuXG4gKiAgIGNvbnN0IHNjaGVtYSA9IGRlZXBtZXJnZShkZWZhdWx0U2NoZW1hLCB7YXR0cmlidXRlczogeycqJzogWydjbGFzc05hbWUnXX19KVxuICpcbiAqICAgY29uc3QgdHJlZSA9IHNhbml0aXplKGgoJ2RpdicsIHtjbGFzc05hbWU6IFsnZm9vJ119KSwgc2NoZW1hKVxuICpcbiAqICAgLy8gYHRyZWVgIHN0aWxsIGhhcyBgY2xhc3NOYW1lYC5cbiAqICAgY29uc29sZS5sb2codHJlZSlcbiAqICAgLy8ge1xuICogICAvLyAgIHR5cGU6ICdlbGVtZW50JyxcbiAqICAgLy8gICB0YWdOYW1lOiAnZGl2JyxcbiAqICAgLy8gICBwcm9wZXJ0aWVzOiB7Y2xhc3NOYW1lOiBbJ2ZvbyddfSxcbiAqICAgLy8gICBjaGlsZHJlbjogW11cbiAqICAgLy8gfVxuICogICBgYGBcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0NvbW1lbnRzPWZhbHNlXVxuICogICBXaGV0aGVyIHRvIGFsbG93IGNvbW1lbnQgbm9kZXMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgRm9yIGV4YW1wbGU6XG4gKlxuICogICBgYGBqc1xuICogICBhbGxvd0NvbW1lbnRzOiB0cnVlXG4gKiAgIGBgYFxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FsbG93RG9jdHlwZXM9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gYWxsb3cgZG9jdHlwZSBub2RlcyAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBGb3IgZXhhbXBsZTpcbiAqXG4gKiAgIGBgYGpzXG4gKiAgIGFsbG93RG9jdHlwZXM6IHRydWVcbiAqICAgYGBgXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIEFycmF5PHN0cmluZz4+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FuY2VzdG9yc11cbiAqICAgTWFwIG9mIHRhZyBuYW1lcyB0byBhIGxpc3Qgb2YgdGFnIG5hbWVzIHdoaWNoIGFyZSByZXF1aXJlZCBhbmNlc3RvcnNcbiAqICAgKGRlZmF1bHQ6IGBkZWZhdWx0U2NoZW1hLmFuY2VzdG9yc2ApLlxuICpcbiAqICAgRWxlbWVudHMgd2l0aCB0aGVzZSB0YWcgbmFtZXMgd2lsbCBiZSBpZ25vcmVkIGlmIHRoZXkgb2NjdXIgb3V0c2lkZSBvZiBvbmVcbiAqICAgb2YgdGhlaXIgYWxsb3dlZCBwYXJlbnRzLlxuICpcbiAqICAgRm9yIGV4YW1wbGU6XG4gKlxuICogICBgYGBqc1xuICogICBhbmNlc3RvcnM6IHtcbiAqICAgICB0Ym9keTogWyd0YWJsZSddLFxuICogICAgIC8vIFx1MjAyNlxuICogICAgIHRyOiBbJ3RhYmxlJ11cbiAqICAgfVxuICogICBgYGBcbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgQXJyYXk8UHJvcGVydHlEZWZpbml0aW9uPj4gfCBudWxsIHwgdW5kZWZpbmVkfSBbYXR0cmlidXRlc11cbiAqICAgTWFwIG9mIHRhZyBuYW1lcyB0byBhbGxvd2VkIHByb3BlcnR5IG5hbWVzIChkZWZhdWx0OlxuICogICBgZGVmYXVsdFNjaGVtYS5hdHRyaWJ1dGVzYCkuXG4gKlxuICogICBUaGUgc3BlY2lhbCBrZXkgYCcqJ2AgYXMgYSB0YWcgbmFtZSBkZWZpbmVzIHByb3BlcnR5IG5hbWVzIGFsbG93ZWQgb24gYWxsXG4gKiAgIGVsZW1lbnRzLlxuICpcbiAqICAgVGhlIHNwZWNpYWwgdmFsdWUgYCdkYXRhKidgIGFzIGEgcHJvcGVydHkgbmFtZSBjYW4gYmUgdXNlZCB0byBhbGxvdyBhbGxcbiAqICAgYGRhdGFgIHByb3BlcnRpZXMuXG4gKlxuICogICBGb3IgZXhhbXBsZTpcbiAqXG4gKiAgIGBgYGpzXG4gKiAgIGF0dHJpYnV0ZXM6IHtcbiAqICAgICAnYXJpYURlc2NyaWJlZEJ5JywgJ2FyaWFMYWJlbCcsICdhcmlhTGFiZWxsZWRCeScsIFx1MjAyNiwgJ2hyZWYnXG4gKiAgICAgLy8gXHUyMDI2XG4gKiAgICAgJyonOiBbXG4gKiAgICAgICAnYWJicicsXG4gKiAgICAgICAnYWNjZXB0JyxcbiAqICAgICAgICdhY2NlcHRDaGFyc2V0JyxcbiAqICAgICAgIC8vIFx1MjAyNlxuICogICAgICAgJ3ZBbGlnbicsXG4gKiAgICAgICAndmFsdWUnLFxuICogICAgICAgJ3dpZHRoJ1xuICogICAgIF1cbiAqICAgfVxuICogICBgYGBcbiAqXG4gKiAgIEluc3RlYWQgb2YgYSBzaW5nbGUgc3RyaW5nIGluIHRoZSBhcnJheSwgd2hpY2ggYWxsb3dzIGFueSBwcm9wZXJ0eSB2YWx1ZVxuICogICBmb3IgdGhlIGZpZWxkLCB5b3UgY2FuIHVzZSBhbiBhcnJheSB0byBhbGxvdyBzZXZlcmFsIHZhbHVlcy5cbiAqICAgRm9yIGV4YW1wbGUsIGBpbnB1dDogWyd0eXBlJ11gIGFsbG93cyBgdHlwZWAgc2V0IHRvIGFueSB2YWx1ZSBvbiBgaW5wdXRgcy5cbiAqICAgQnV0IGBpbnB1dDogW1sndHlwZScsICdjaGVja2JveCcsICdyYWRpbyddXWAgYWxsb3dzIGB0eXBlYCB3aGVuIHNldCB0b1xuICogICBgJ2NoZWNrYm94J2Agb3IgYCdyYWRpbydgLlxuICpcbiAqICAgWW91IGNhbiB1c2UgcmVnZXhlcywgc28gZm9yIGV4YW1wbGUgYHNwYW46IFtbJ2NsYXNzTmFtZScsIC9eaGxqcy0vXV1gXG4gKiAgIGFsbG93cyBhbnkgY2xhc3MgdGhhdCBzdGFydHMgd2l0aCBgaGxqcy1gIG9uIGBzcGFuYHMuXG4gKlxuICogICBXaGVuIGNvbW1hLSBvciBzcGFjZS1zZXBhcmF0ZWQgdmFsdWVzIGFyZSB1c2VkIChzdWNoIGFzIGBjbGFzc05hbWVgKSwgZWFjaFxuICogICB2YWx1ZSBpbiBpcyBjaGVja2VkIGluZGl2aWR1YWxseS5cbiAqICAgRm9yIGV4YW1wbGUsIHRvIGFsbG93IGNlcnRhaW4gY2xhc3NlcyBvbiBgc3BhbmBzIGZvciBzeW50YXggaGlnaGxpZ2h0aW5nLFxuICogICB1c2UgYHNwYW46IFtbJ2NsYXNzTmFtZScsICdudW1iZXInLCAnb3BlcmF0b3InLCAndG9rZW4nXV1gLlxuICogICBUaGlzIHdpbGwgYWxsb3cgYCdudW1iZXInYCwgYCdvcGVyYXRvcidgLCBhbmQgYCd0b2tlbidgIGNsYXNzZXMsIGJ1dCBkcm9wXG4gKiAgIG90aGVycy5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPiB8IG51bGwgfCB1bmRlZmluZWR9IFtjbG9iYmVyXVxuICogICBMaXN0IG9mIHByb3BlcnR5IG5hbWVzIHRoYXQgY2xvYmJlciAoZGVmYXVsdDogYGRlZmF1bHRTY2hlbWEuY2xvYmJlcmApLlxuICpcbiAqICAgRm9yIGV4YW1wbGU6XG4gKlxuICogICBgYGBqc1xuICogICBjbG9iYmVyOiBbJ2FyaWFEZXNjcmliZWRCeScsICdhcmlhTGFiZWxsZWRCeScsICdpZCcsICduYW1lJ11cbiAqICAgYGBgXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtjbG9iYmVyUHJlZml4XVxuICogICBQcmVmaXggdG8gdXNlIGJlZm9yZSBjbG9iYmVyaW5nIHByb3BlcnRpZXMgKGRlZmF1bHQ6XG4gKiAgIGBkZWZhdWx0U2NoZW1hLmNsb2JiZXJQcmVmaXhgKS5cbiAqXG4gKiAgIEZvciBleGFtcGxlOlxuICpcbiAqICAgYGBganNcbiAqICAgY2xvYmJlclByZWZpeDogJ3VzZXItY29udGVudC0nXG4gKiAgIGBgYFxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBBcnJheTxzdHJpbmc+IHwgbnVsbCB8IHVuZGVmaW5lZD4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcHJvdG9jb2xzXVxuICogICBNYXAgb2YgKnByb3BlcnR5IG5hbWVzKiB0byBhbGxvd2VkIHByb3RvY29scyAoZGVmYXVsdDpcbiAqICAgYGRlZmF1bHRTY2hlbWEucHJvdG9jb2xzYCkuXG4gKlxuICogICBUaGlzIGRlZmluZXMgVVJMcyB0aGF0IGFyZSBhbHdheXMgYWxsb3dlZCB0byBoYXZlIGxvY2FsIFVSTHMgKHJlbGF0aXZlIHRvXG4gKiAgIHRoZSBjdXJyZW50IHdlYnNpdGUsIHN1Y2ggYXMgYHRoaXNgLCBgI3RoaXNgLCBgL3RoaXNgLCBvciBgP3RoaXNgKSwgYW5kXG4gKiAgIG9ubHkgYWxsb3dlZCB0byBoYXZlIHJlbW90ZSBVUkxzIChzdWNoIGFzIGBodHRwczovL2V4YW1wbGUuY29tYCkgaWYgdGhleVxuICogICB1c2UgYSBrbm93biBwcm90b2NvbC5cbiAqXG4gKiAgIEZvciBleGFtcGxlOlxuICpcbiAqICAgYGBganNcbiAqICAgcHJvdG9jb2xzOiB7XG4gKiAgICAgY2l0ZTogWydodHRwJywgJ2h0dHBzJ10sXG4gKiAgICAgLy8gXHUyMDI2XG4gKiAgICAgc3JjOiBbJ2h0dHAnLCAnaHR0cHMnXVxuICogICB9XG4gKiAgIGBgYFxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBQcm9wZXJ0aWVzW2tleW9mIFByb3BlcnRpZXNdPj4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmVxdWlyZWRdXG4gKiAgIE1hcCBvZiB0YWcgbmFtZXMgdG8gcmVxdWlyZWQgcHJvcGVydHkgbmFtZXMgd2l0aCBhIGRlZmF1bHQgdmFsdWVcbiAqICAgKGRlZmF1bHQ6IGBkZWZhdWx0U2NoZW1hLnJlcXVpcmVkYCkuXG4gKlxuICogICBUaGlzIGRlZmluZXMgcHJvcGVydGllcyB0aGF0IG11c3QgYmUgc2V0LlxuICogICBJZiBhIGZpZWxkIGRvZXMgbm90IGV4aXN0IChhZnRlciB0aGUgZWxlbWVudCB3YXMgbWFkZSBzYWZlKSwgdGhlc2Ugd2lsbCBiZVxuICogICBhZGRlZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZS5cbiAqXG4gKiAgIEZvciBleGFtcGxlOlxuICpcbiAqICAgYGBganNcbiAqICAgcmVxdWlyZWQ6IHtcbiAqICAgICBpbnB1dDoge2Rpc2FibGVkOiB0cnVlLCB0eXBlOiAnY2hlY2tib3gnfVxuICogICB9XG4gKiAgIGBgYFxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHByb3BlcnRpZXMgYXJlIGZpcnN0IGNoZWNrZWQgYmFzZWQgb24gYHNjaGVtYS5hdHRyaWJ1dGVzYCxcbiAqICAgPiB0aGVuIG9uIGBzY2hlbWEucmVxdWlyZWRgLlxuICogICA+IFRoYXQgbWVhbnMgcHJvcGVydGllcyBjb3VsZCBiZSByZW1vdmVkIGJ5IGBhdHRyaWJ1dGVzYCBhbmQgdGhlbiBhZGRlZFxuICogICA+IGFnYWluIHdpdGggYHJlcXVpcmVkYC5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPiB8IG51bGwgfCB1bmRlZmluZWR9IFtzdHJpcF1cbiAqICAgTGlzdCBvZiB0YWcgbmFtZXMgdG8gc3RyaXAgZnJvbSB0aGUgdHJlZSAoZGVmYXVsdDogYGRlZmF1bHRTY2hlbWEuc3RyaXBgKS5cbiAqXG4gKiAgIEJ5IGRlZmF1bHQsIHVuc2FmZSBlbGVtZW50cyAodGhvc2Ugbm90IGluIGBzY2hlbWEudGFnTmFtZXNgKSBhcmUgcmVwbGFjZWRcbiAqICAgYnkgd2hhdCB0aGV5IGNvbnRhaW4uXG4gKiAgIFRoaXMgb3B0aW9uIGNhbiBkcm9wIHRoZWlyIGNvbnRlbnRzLlxuICpcbiAqICAgRm9yIGV4YW1wbGU6XG4gKlxuICogICBgYGBqc1xuICogICBzdHJpcDogWydzY3JpcHQnXVxuICogICBgYGBcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPiB8IG51bGwgfCB1bmRlZmluZWR9IFt0YWdOYW1lc11cbiAqICAgTGlzdCBvZiBhbGxvd2VkIHRhZyBuYW1lcyAoZGVmYXVsdDogYGRlZmF1bHRTY2hlbWEudGFnTmFtZXNgKS5cbiAqXG4gKiAgIEZvciBleGFtcGxlOlxuICpcbiAqICAgYGBganNcbiAqICAgdGFnTmFtZXM6IFtcbiAqICAgICAnYScsXG4gKiAgICAgJ2InLFxuICogICAgIC8vIFx1MjAyNlxuICogICAgICd1bCcsXG4gKiAgICAgJ3ZhcidcbiAqICAgXVxuICogICBgYGBcbiAqXG4gKiBAdHlwZWRlZiBTdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcHJvcGVydHkge1JlYWRvbmx5PFNjaGVtYT59IHNjaGVtYVxuICogICBTY2hlbWEuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IHN0YWNrXG4gKiAgIFRhZyBuYW1lcyBvZiBhbmNlc3RvcnMuXG4gKi9cblxuaW1wb3J0IHN0cnVjdHVyZWRDbG9uZSBmcm9tICdAdW5nYXAvc3RydWN0dXJlZC1jbG9uZSdcbmltcG9ydCB7cG9zaXRpb259IGZyb20gJ3VuaXN0LXV0aWwtcG9zaXRpb24nXG5pbXBvcnQge2RlZmF1bHRTY2hlbWF9IGZyb20gJy4vc2NoZW1hLmpzJ1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIFNhbml0aXplIGEgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge1JlYWRvbmx5PE5vZGVzPn0gbm9kZVxuICogICBVbnNhZmUgdHJlZS5cbiAqIEBwYXJhbSB7UmVhZG9ubHk8U2NoZW1hPiB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChkZWZhdWx0OiBgZGVmYXVsdFNjaGVtYWApLlxuICogQHJldHVybnMge05vZGVzfVxuICogICBOZXcsIHNhZmUgdHJlZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplKG5vZGUsIG9wdGlvbnMpIHtcbiAgLyoqIEB0eXBlIHtOb2Rlc30gKi9cbiAgbGV0IHJlc3VsdCA9IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiBbXX1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBjb25zdCBzdGF0ZSA9IHtcbiAgICBzY2hlbWE6IG9wdGlvbnMgPyB7Li4uZGVmYXVsdFNjaGVtYSwgLi4ub3B0aW9uc30gOiBkZWZhdWx0U2NoZW1hLFxuICAgIHN0YWNrOiBbXVxuICB9XG4gIGNvbnN0IHJlcGxhY2UgPSB0cmFuc2Zvcm0oc3RhdGUsIG5vZGUpXG5cbiAgaWYgKHJlcGxhY2UpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXBsYWNlKSkge1xuICAgICAgaWYgKHJlcGxhY2UubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlcGxhY2VbMF1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdC5jaGlsZHJlbiA9IHJlcGxhY2VcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gcmVwbGFjZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSBgbm9kZWAuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtSZWFkb25seTx1bmtub3duPn0gbm9kZVxuICogICBVbnNhZmUgbm9kZS5cbiAqIEByZXR1cm5zIHtBcnJheTxFbGVtZW50Q29udGVudD4gfCBOb2RlcyB8IHVuZGVmaW5lZH1cbiAqICAgU2FmZSByZXN1bHQuXG4gKi9cbmZ1bmN0aW9uIHRyYW5zZm9ybShzdGF0ZSwgbm9kZSkge1xuICBpZiAobm9kZSAmJiB0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCB1bnNhZmUgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIFJlYWRvbmx5PHVua25vd24+Pn0gKi8gKG5vZGUpXG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB1bnNhZmUudHlwZSA9PT0gJ3N0cmluZycgPyB1bnNhZmUudHlwZSA6ICcnXG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2NvbW1lbnQnOiB7XG4gICAgICAgIHJldHVybiBjb21tZW50KHN0YXRlLCB1bnNhZmUpXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2RvY3R5cGUnOiB7XG4gICAgICAgIHJldHVybiBkb2N0eXBlKHN0YXRlLCB1bnNhZmUpXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2VsZW1lbnQnOiB7XG4gICAgICAgIHJldHVybiBlbGVtZW50KHN0YXRlLCB1bnNhZmUpXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3Jvb3QnOiB7XG4gICAgICAgIHJldHVybiByb290KHN0YXRlLCB1bnNhZmUpXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3RleHQnOiB7XG4gICAgICAgIHJldHVybiB0ZXh0KHN0YXRlLCB1bnNhZmUpXG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogTWFrZSBhIHNhZmUgY29tbWVudC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PFJlY29yZDxzdHJpbmcsIFJlYWRvbmx5PHVua25vd24+Pj59IHVuc2FmZVxuICogICBVbnNhZmUgY29tbWVudC1saWtlIHZhbHVlLlxuICogQHJldHVybnMge0NvbW1lbnQgfCB1bmRlZmluZWR9XG4gKiAgIFNhZmUgY29tbWVudCAoaWYgd2l0aCBgYWxsb3dDb21tZW50c2ApLlxuICovXG5mdW5jdGlvbiBjb21tZW50KHN0YXRlLCB1bnNhZmUpIHtcbiAgaWYgKHN0YXRlLnNjaGVtYS5hbGxvd0NvbW1lbnRzKSB7XG4gICAgLy8gU2VlIDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjc2VyaWFsaXNpbmctaHRtbC1mcmFnbWVudHM+XG4gICAgY29uc3QgcmVzdWx0ID0gdHlwZW9mIHVuc2FmZS52YWx1ZSA9PT0gJ3N0cmluZycgPyB1bnNhZmUudmFsdWUgOiAnJ1xuICAgIGNvbnN0IGluZGV4ID0gcmVzdWx0LmluZGV4T2YoJy0tPicpXG4gICAgY29uc3QgdmFsdWUgPSBpbmRleCA8IDAgPyByZXN1bHQgOiByZXN1bHQuc2xpY2UoMCwgaW5kZXgpXG5cbiAgICAvKiogQHR5cGUge0NvbW1lbnR9ICovXG4gICAgY29uc3Qgbm9kZSA9IHt0eXBlOiAnY29tbWVudCcsIHZhbHVlfVxuXG4gICAgcGF0Y2gobm9kZSwgdW5zYWZlKVxuXG4gICAgcmV0dXJuIG5vZGVcbiAgfVxufVxuXG4vKipcbiAqIE1ha2UgYSBzYWZlIGRvY3R5cGUuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBSZWFkb25seTx1bmtub3duPj4+fSB1bnNhZmVcbiAqICAgVW5zYWZlIGRvY3R5cGUtbGlrZSB2YWx1ZS5cbiAqIEByZXR1cm5zIHtEb2N0eXBlIHwgdW5kZWZpbmVkfVxuICogICBTYWZlIGRvY3R5cGUgKGlmIHdpdGggYGFsbG93RG9jdHlwZXNgKS5cbiAqL1xuZnVuY3Rpb24gZG9jdHlwZShzdGF0ZSwgdW5zYWZlKSB7XG4gIGlmIChzdGF0ZS5zY2hlbWEuYWxsb3dEb2N0eXBlcykge1xuICAgIC8qKiBAdHlwZSB7RG9jdHlwZX0gKi9cbiAgICBjb25zdCBub2RlID0ge3R5cGU6ICdkb2N0eXBlJ31cblxuICAgIHBhdGNoKG5vZGUsIHVuc2FmZSlcblxuICAgIHJldHVybiBub2RlXG4gIH1cbn1cblxuLyoqXG4gKiBNYWtlIGEgc2FmZSBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7UmVhZG9ubHk8UmVjb3JkPHN0cmluZywgUmVhZG9ubHk8dW5rbm93bj4+Pn0gdW5zYWZlXG4gKiAgIFVuc2FmZSBlbGVtZW50LWxpa2UgdmFsdWUuXG4gKiBAcmV0dXJucyB7QXJyYXk8RWxlbWVudENvbnRlbnQ+IHwgRWxlbWVudCB8IHVuZGVmaW5lZH1cbiAqICAgU2FmZSBlbGVtZW50LlxuICovXG5mdW5jdGlvbiBlbGVtZW50KHN0YXRlLCB1bnNhZmUpIHtcbiAgY29uc3QgbmFtZSA9IHR5cGVvZiB1bnNhZmUudGFnTmFtZSA9PT0gJ3N0cmluZycgPyB1bnNhZmUudGFnTmFtZSA6ICcnXG5cbiAgc3RhdGUuc3RhY2sucHVzaChuYW1lKVxuXG4gIGNvbnN0IGNvbnRlbnQgPSAvKiogQHR5cGUge0FycmF5PEVsZW1lbnRDb250ZW50Pn0gKi8gKFxuICAgIGNoaWxkcmVuKHN0YXRlLCB1bnNhZmUuY2hpbGRyZW4pXG4gIClcbiAgY29uc3QgcHJvcGVydGllc18gPSBwcm9wZXJ0aWVzKHN0YXRlLCB1bnNhZmUucHJvcGVydGllcylcblxuICBzdGF0ZS5zdGFjay5wb3AoKVxuXG4gIGxldCBzYWZlRWxlbWVudCA9IGZhbHNlXG5cbiAgaWYgKFxuICAgIG5hbWUgJiZcbiAgICBuYW1lICE9PSAnKicgJiZcbiAgICAoIXN0YXRlLnNjaGVtYS50YWdOYW1lcyB8fCBzdGF0ZS5zY2hlbWEudGFnTmFtZXMuaW5jbHVkZXMobmFtZSkpXG4gICkge1xuICAgIHNhZmVFbGVtZW50ID0gdHJ1ZVxuXG4gICAgLy8gU29tZSBub2RlcyBjYW4gYnJlYWsgb3V0IG9mIHRoZWlyIGNvbnRleHQgaWYgdGhleSBkb25cdTIwMTl0IGhhdmUgYSBjZXJ0YWluXG4gICAgLy8gYW5jZXN0b3IuXG4gICAgaWYgKHN0YXRlLnNjaGVtYS5hbmNlc3RvcnMgJiYgb3duLmNhbGwoc3RhdGUuc2NoZW1hLmFuY2VzdG9ycywgbmFtZSkpIHtcbiAgICAgIGNvbnN0IGFuY2VzdG9ycyA9IHN0YXRlLnNjaGVtYS5hbmNlc3RvcnNbbmFtZV1cbiAgICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICAgIHNhZmVFbGVtZW50ID0gZmFsc2VcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBhbmNlc3RvcnMubGVuZ3RoKSB7XG4gICAgICAgIGlmIChzdGF0ZS5zdGFjay5pbmNsdWRlcyhhbmNlc3RvcnNbaW5kZXhdKSkge1xuICAgICAgICAgIHNhZmVFbGVtZW50ID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKCFzYWZlRWxlbWVudCkge1xuICAgIHJldHVybiBzdGF0ZS5zY2hlbWEuc3RyaXAgJiYgIXN0YXRlLnNjaGVtYS5zdHJpcC5pbmNsdWRlcyhuYW1lKVxuICAgICAgPyBjb250ZW50XG4gICAgICA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCBub2RlID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiBuYW1lLFxuICAgIHByb3BlcnRpZXM6IHByb3BlcnRpZXNfLFxuICAgIGNoaWxkcmVuOiBjb250ZW50XG4gIH1cblxuICBwYXRjaChub2RlLCB1bnNhZmUpXG5cbiAgcmV0dXJuIG5vZGVcbn1cblxuLyoqXG4gKiBNYWtlIGEgc2FmZSByb290LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7UmVhZG9ubHk8UmVjb3JkPHN0cmluZywgUmVhZG9ubHk8dW5rbm93bj4+Pn0gdW5zYWZlXG4gKiAgIFVuc2FmZSByb290LWxpa2UgdmFsdWUuXG4gKiBAcmV0dXJucyB7Um9vdH1cbiAqICAgU2FmZSByb290LlxuICovXG5mdW5jdGlvbiByb290KHN0YXRlLCB1bnNhZmUpIHtcbiAgY29uc3QgY29udGVudCA9IC8qKiBAdHlwZSB7QXJyYXk8Um9vdENvbnRlbnQ+fSAqLyAoXG4gICAgY2hpbGRyZW4oc3RhdGUsIHVuc2FmZS5jaGlsZHJlbilcbiAgKVxuXG4gIC8qKiBAdHlwZSB7Um9vdH0gKi9cbiAgY29uc3Qgbm9kZSA9IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiBjb250ZW50fVxuXG4gIHBhdGNoKG5vZGUsIHVuc2FmZSlcblxuICByZXR1cm4gbm9kZVxufVxuXG4vKipcbiAqIE1ha2UgYSBzYWZlIHRleHQuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gX1xuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PFJlY29yZDxzdHJpbmcsIFJlYWRvbmx5PHVua25vd24+Pj59IHVuc2FmZVxuICogICBVbnNhZmUgdGV4dC1saWtlIHZhbHVlLlxuICogQHJldHVybnMge1RleHR9XG4gKiAgIFNhZmUgdGV4dC5cbiAqL1xuZnVuY3Rpb24gdGV4dChfLCB1bnNhZmUpIHtcbiAgY29uc3QgdmFsdWUgPSB0eXBlb2YgdW5zYWZlLnZhbHVlID09PSAnc3RyaW5nJyA/IHVuc2FmZS52YWx1ZSA6ICcnXG4gIC8qKiBAdHlwZSB7VGV4dH0gKi9cbiAgY29uc3Qgbm9kZSA9IHt0eXBlOiAndGV4dCcsIHZhbHVlfVxuXG4gIHBhdGNoKG5vZGUsIHVuc2FmZSlcblxuICByZXR1cm4gbm9kZVxufVxuXG4vKipcbiAqIE1ha2UgY2hpbGRyZW4gc2FmZS5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PHVua25vd24+fSBjaGlsZHJlblxuICogICBVbnNhZmUgdmFsdWUuXG4gKiBAcmV0dXJucyB7QXJyYXk8Tm9kZXM+fVxuICogICBTYWZlIGNoaWxkcmVuLlxuICovXG5mdW5jdGlvbiBjaGlsZHJlbihzdGF0ZSwgY2hpbGRyZW4pIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxOb2Rlcz59ICovXG4gIGNvbnN0IHJlc3VsdHMgPSBbXVxuXG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIGNvbnN0IGNoaWxkcmVuVW5rbm93biA9IC8qKiBAdHlwZSB7QXJyYXk8UmVhZG9ubHk8dW5rbm93bj4+fSAqLyAoY2hpbGRyZW4pXG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIHdoaWxlICgrK2luZGV4IDwgY2hpbGRyZW5Vbmtub3duLmxlbmd0aCkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0cmFuc2Zvcm0oc3RhdGUsIGNoaWxkcmVuVW5rbm93bltpbmRleF0pXG5cbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICByZXN1bHRzLnB1c2goLi4udmFsdWUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKHZhbHVlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHNcbn1cblxuLyoqXG4gKiBNYWtlIGVsZW1lbnQgcHJvcGVydGllcyBzYWZlLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7UmVhZG9ubHk8dW5rbm93bj59IHByb3BlcnRpZXNcbiAqICAgVW5zYWZlIHZhbHVlLlxuICogQHJldHVybnMge1Byb3BlcnRpZXN9XG4gKiAgIFNhZmUgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHByb3BlcnRpZXMoc3RhdGUsIHByb3BlcnRpZXMpIHtcbiAgY29uc3QgdGFnTmFtZSA9IHN0YXRlLnN0YWNrW3N0YXRlLnN0YWNrLmxlbmd0aCAtIDFdXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSBzdGF0ZS5zY2hlbWEuYXR0cmlidXRlc1xuICBjb25zdCByZXF1aXJlZCA9IHN0YXRlLnNjaGVtYS5yZXF1aXJlZFxuICBjb25zdCBzcGVjaWZpYyA9XG4gICAgYXR0cmlidXRlcyAmJiBvd24uY2FsbChhdHRyaWJ1dGVzLCB0YWdOYW1lKVxuICAgICAgPyBhdHRyaWJ1dGVzW3RhZ05hbWVdXG4gICAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBkZWZhdWx0cyA9XG4gICAgYXR0cmlidXRlcyAmJiBvd24uY2FsbChhdHRyaWJ1dGVzLCAnKicpID8gYXR0cmlidXRlc1snKiddIDogdW5kZWZpbmVkXG4gIGNvbnN0IHByb3BlcnRpZXNfID1cbiAgICAvKiogQHR5cGUge1JlYWRvbmx5PFJlY29yZDxzdHJpbmcsIFJlYWRvbmx5PHVua25vd24+Pj59ICovIChcbiAgICAgIHByb3BlcnRpZXMgJiYgdHlwZW9mIHByb3BlcnRpZXMgPT09ICdvYmplY3QnID8gcHJvcGVydGllcyA6IHt9XG4gICAgKVxuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHt9XG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQga2V5XG5cbiAgZm9yIChrZXkgaW4gcHJvcGVydGllc18pIHtcbiAgICBpZiAob3duLmNhbGwocHJvcGVydGllc18sIGtleSkpIHtcbiAgICAgIGNvbnN0IHVuc2FmZSA9IHByb3BlcnRpZXNfW2tleV1cbiAgICAgIGxldCBzYWZlID0gcHJvcGVydHlWYWx1ZShcbiAgICAgICAgc3RhdGUsXG4gICAgICAgIGZpbmREZWZpbml0aW9uKHNwZWNpZmljLCBrZXkpLFxuICAgICAgICBrZXksXG4gICAgICAgIHVuc2FmZVxuICAgICAgKVxuXG4gICAgICBpZiAoc2FmZSA9PT0gbnVsbCB8fCBzYWZlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc2FmZSA9IHByb3BlcnR5VmFsdWUoc3RhdGUsIGZpbmREZWZpbml0aW9uKGRlZmF1bHRzLCBrZXkpLCBrZXksIHVuc2FmZSlcbiAgICAgIH1cblxuICAgICAgaWYgKHNhZmUgIT09IG51bGwgJiYgc2FmZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gc2FmZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiBvd24uY2FsbChyZXF1aXJlZCwgdGFnTmFtZSkpIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gcmVxdWlyZWRbdGFnTmFtZV1cblxuICAgIGZvciAoa2V5IGluIHByb3BlcnRpZXMpIHtcbiAgICAgIGlmIChvd24uY2FsbChwcm9wZXJ0aWVzLCBrZXkpICYmICFvd24uY2FsbChyZXN1bHQsIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBwcm9wZXJ0aWVzW2tleV1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogU2FuaXRpemUgYSBwcm9wZXJ0eSB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PFByb3BlcnR5RGVmaW5pdGlvbj4gfCB1bmRlZmluZWR9IGRlZmluaXRpb25cbiAqICAgRGVmaW5pdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqICAgRmllbGQgbmFtZS5cbiAqIEBwYXJhbSB7UmVhZG9ubHk8dW5rbm93bj59IHZhbHVlXG4gKiAgIFVuc2FmZSB2YWx1ZSAoYnV0IGFuIGFycmF5KS5cbiAqIEByZXR1cm5zIHtBcnJheTxudW1iZXIgfCBzdHJpbmc+IHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZH1cbiAqICAgU2FmZSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gcHJvcGVydHlWYWx1ZShzdGF0ZSwgZGVmaW5pdGlvbiwga2V5LCB2YWx1ZSkge1xuICByZXR1cm4gZGVmaW5pdGlvblxuICAgID8gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gcHJvcGVydHlWYWx1ZU1hbnkoc3RhdGUsIGRlZmluaXRpb24sIGtleSwgdmFsdWUpXG4gICAgICA6IHByb3BlcnR5VmFsdWVQcmltaXRpdmUoc3RhdGUsIGRlZmluaXRpb24sIGtleSwgdmFsdWUpXG4gICAgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSBhIHByb3BlcnR5IHZhbHVlIHdoaWNoIGlzIGEgbGlzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PFByb3BlcnR5RGVmaW5pdGlvbj59IGRlZmluaXRpb25cbiAqICAgRGVmaW5pdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqICAgRmllbGQgbmFtZS5cbiAqIEBwYXJhbSB7UmVhZG9ubHk8QXJyYXk8UmVhZG9ubHk8dW5rbm93bj4+Pn0gdmFsdWVzXG4gKiAgIFVuc2FmZSB2YWx1ZSAoYnV0IGFuIGFycmF5KS5cbiAqIEByZXR1cm5zIHtBcnJheTxudW1iZXIgfCBzdHJpbmc+fVxuICogICBTYWZlIHZhbHVlLlxuICovXG5mdW5jdGlvbiBwcm9wZXJ0eVZhbHVlTWFueShzdGF0ZSwgZGVmaW5pdGlvbiwga2V5LCB2YWx1ZXMpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtBcnJheTxudW1iZXIgfCBzdHJpbmc+fSAqL1xuICBjb25zdCByZXN1bHQgPSBbXVxuXG4gIHdoaWxlICgrK2luZGV4IDwgdmFsdWVzLmxlbmd0aCkge1xuICAgIGNvbnN0IHZhbHVlID0gcHJvcGVydHlWYWx1ZVByaW1pdGl2ZShzdGF0ZSwgZGVmaW5pdGlvbiwga2V5LCB2YWx1ZXNbaW5kZXhdKVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgcmVzdWx0LnB1c2godmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFNhbml0aXplIGEgcHJvcGVydHkgdmFsdWUgd2hpY2ggaXMgYSBwcmltaXRpdmUuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtSZWFkb25seTxQcm9wZXJ0eURlZmluaXRpb24+fSBkZWZpbml0aW9uXG4gKiAgIERlZmluaXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiAgIEZpZWxkIG5hbWUuXG4gKiBAcGFyYW0ge1JlYWRvbmx5PHVua25vd24+fSB2YWx1ZVxuICogICBVbnNhZmUgdmFsdWUgKGJ1dCBub3QgYW4gYXJyYXkpLlxuICogQHJldHVybnMge2Jvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWR9XG4gKiAgIFNhZmUgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHByb3BlcnR5VmFsdWVQcmltaXRpdmUoc3RhdGUsIGRlZmluaXRpb24sIGtleSwgdmFsdWUpIHtcbiAgaWYgKFxuICAgIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nICYmXG4gICAgdHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJyAmJlxuICAgIHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZydcbiAgKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoIXNhZmVQcm90b2NvbChzdGF0ZSwga2V5LCB2YWx1ZSkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIEp1c3QgYSBzdHJpbmcsIG9yIG9ubHkgb25lIGl0ZW0gaW4gYW4gYXJyYXksIG1lYW5zIGFsbCB2YWx1ZXMgYXJlIE9LLlxuICAvLyBNb3JlIHRoYW4gb25lIGl0ZW0gbWVhbnMgYW4gYWxsb3cgbGlzdC5cbiAgaWYgKHR5cGVvZiBkZWZpbml0aW9uID09PSAnb2JqZWN0JyAmJiBkZWZpbml0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICBsZXQgb2sgPSBmYWxzZVxuICAgIGxldCBpbmRleCA9IDAgLy8gSWdub3JlIGBrZXlgLCB3aGljaCBpcyB0aGUgZmlyc3QgaXRlbS5cblxuICAgIHdoaWxlICgrK2luZGV4IDwgZGVmaW5pdGlvbi5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGFsbG93ZWQgPSBkZWZpbml0aW9uW2luZGV4XVxuXG4gICAgICAvLyBFeHByZXNzaW9uLlxuICAgICAgaWYgKGFsbG93ZWQgJiYgdHlwZW9mIGFsbG93ZWQgPT09ICdvYmplY3QnICYmICdmbGFncycgaW4gYWxsb3dlZCkge1xuICAgICAgICBpZiAoYWxsb3dlZC50ZXN0KFN0cmluZyh2YWx1ZSkpKSB7XG4gICAgICAgICAgb2sgPSB0cnVlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gUHJpbWl0aXZlLlxuICAgICAgZWxzZSBpZiAoYWxsb3dlZCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb2sgPSB0cnVlXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFvaykgcmV0dXJuXG4gIH1cblxuICByZXR1cm4gc3RhdGUuc2NoZW1hLmNsb2JiZXIgJiZcbiAgICBzdGF0ZS5zY2hlbWEuY2xvYmJlclByZWZpeCAmJlxuICAgIHN0YXRlLnNjaGVtYS5jbG9iYmVyLmluY2x1ZGVzKGtleSlcbiAgICA/IHN0YXRlLnNjaGVtYS5jbG9iYmVyUHJlZml4ICsgdmFsdWVcbiAgICA6IHZhbHVlXG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBgdmFsdWVgIGlzIGEgc2FmZSBVUkwuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogICBGaWVsZCBuYW1lLlxuICogQHBhcmFtIHtSZWFkb25seTx1bmtub3duPn0gdmFsdWVcbiAqICAgVW5zYWZlIHZhbHVlLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgaXRcdTIwMTlzIGEgc2FmZSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gc2FmZVByb3RvY29sKHN0YXRlLCBrZXksIHZhbHVlKSB7XG4gIGNvbnN0IHByb3RvY29scyA9XG4gICAgc3RhdGUuc2NoZW1hLnByb3RvY29scyAmJiBvd24uY2FsbChzdGF0ZS5zY2hlbWEucHJvdG9jb2xzLCBrZXkpXG4gICAgICA/IHN0YXRlLnNjaGVtYS5wcm90b2NvbHNba2V5XVxuICAgICAgOiB1bmRlZmluZWRcblxuICAvLyBObyBwcm90b2NvbHMgZGVmaW5lZD8gVGhlbiBldmVyeXRoaW5nIGlzIGZpbmUuXG4gIGlmICghcHJvdG9jb2xzIHx8IHByb3RvY29scy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgY29uc3QgdXJsID0gU3RyaW5nKHZhbHVlKVxuICBjb25zdCBjb2xvbiA9IHVybC5pbmRleE9mKCc6JylcbiAgY29uc3QgcXVlc3Rpb25NYXJrID0gdXJsLmluZGV4T2YoJz8nKVxuICBjb25zdCBudW1iZXJTaWduID0gdXJsLmluZGV4T2YoJyMnKVxuICBjb25zdCBzbGFzaCA9IHVybC5pbmRleE9mKCcvJylcblxuICBpZiAoXG4gICAgY29sb24gPCAwIHx8XG4gICAgLy8gSWYgdGhlIGZpcnN0IGNvbG9uIGlzIGFmdGVyIGEgYD9gLCBgI2AsIG9yIGAvYCwgaXRcdTIwMTlzIG5vdCBhIHByb3RvY29sLlxuICAgIChzbGFzaCA+IC0xICYmIGNvbG9uID4gc2xhc2gpIHx8XG4gICAgKHF1ZXN0aW9uTWFyayA+IC0xICYmIGNvbG9uID4gcXVlc3Rpb25NYXJrKSB8fFxuICAgIChudW1iZXJTaWduID4gLTEgJiYgY29sb24gPiBudW1iZXJTaWduKVxuICApIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHByb3RvY29scy5sZW5ndGgpIHtcbiAgICBjb25zdCBwcm90b2NvbCA9IHByb3RvY29sc1tpbmRleF1cblxuICAgIGlmIChcbiAgICAgIGNvbG9uID09PSBwcm90b2NvbC5sZW5ndGggJiZcbiAgICAgIHVybC5zbGljZSgwLCBwcm90b2NvbC5sZW5ndGgpID09PSBwcm90b2NvbFxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuLyoqXG4gKiBBZGQgZGF0YSBhbmQgcG9zaXRpb24uXG4gKlxuICogQHBhcmFtIHtOb2Rlc30gbm9kZVxuICogICBOb2RlIHRvIHBhdGNoIHNhZmUgZGF0YSBhbmQgcG9zaXRpb24gb24uXG4gKiBAcGFyYW0ge1JlYWRvbmx5PFJlY29yZDxzdHJpbmcsIFJlYWRvbmx5PHVua25vd24+Pj59IHVuc2FmZVxuICogICBVbnNhZmUgbm9kZS1saWtlIHZhbHVlLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gcGF0Y2gobm9kZSwgdW5zYWZlKSB7XG4gIGNvbnN0IGNsZWFuUG9zaXRpb24gPSBwb3NpdGlvbihcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBsb29rcyBsaWtlIGEgbm9kZS5cbiAgICB1bnNhZmVcbiAgKVxuXG4gIGlmICh1bnNhZmUuZGF0YSkge1xuICAgIG5vZGUuZGF0YSA9IHN0cnVjdHVyZWRDbG9uZSh1bnNhZmUuZGF0YSlcbiAgfVxuXG4gIGlmIChjbGVhblBvc2l0aW9uKSBub2RlLnBvc2l0aW9uID0gY2xlYW5Qb3NpdGlvblxufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ge1JlYWRvbmx5PEFycmF5PFByb3BlcnR5RGVmaW5pdGlvbj4+IHwgdW5kZWZpbmVkfSBkZWZpbml0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogQHJldHVybnMge1JlYWRvbmx5PFByb3BlcnR5RGVmaW5pdGlvbj4gfCB1bmRlZmluZWR9XG4gKi9cbmZ1bmN0aW9uIGZpbmREZWZpbml0aW9uKGRlZmluaXRpb25zLCBrZXkpIHtcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0eURlZmluaXRpb24gfCB1bmRlZmluZWR9ICovXG4gIGxldCBkYXRhRGVmYXVsdFxuICBsZXQgaW5kZXggPSAtMVxuXG4gIGlmIChkZWZpbml0aW9ucykge1xuICAgIHdoaWxlICgrK2luZGV4IDwgZGVmaW5pdGlvbnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBlbnRyeSA9IGRlZmluaXRpb25zW2luZGV4XVxuICAgICAgY29uc3QgbmFtZSA9IHR5cGVvZiBlbnRyeSA9PT0gJ3N0cmluZycgPyBlbnRyeSA6IGVudHJ5WzBdXG5cbiAgICAgIGlmIChuYW1lID09PSBrZXkpIHtcbiAgICAgICAgcmV0dXJuIGVudHJ5XG4gICAgICB9XG5cbiAgICAgIGlmIChuYW1lID09PSAnZGF0YSonKSBkYXRhRGVmYXVsdCA9IGVudHJ5XG4gICAgfVxuICB9XG5cbiAgaWYgKGtleS5sZW5ndGggPiA0ICYmIGtleS5zbGljZSgwLCA0KS50b0xvd2VyQ2FzZSgpID09PSAnZGF0YScpIHtcbiAgICByZXR1cm4gZGF0YURlZmF1bHRcbiAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbmV4cG9ydCB7c2FuaXRpemV9IGZyb20gJy4vbGliL2luZGV4LmpzJ1xuZXhwb3J0IHtkZWZhdWx0U2NoZW1hfSBmcm9tICcuL2xpYi9zY2hlbWEuanMnXG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50fSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7QmxvY2txdW90ZX0gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vc3RhdGUuanMnXG4gKi9cblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBibG9ja3F1b3RlYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0Jsb2NrcXVvdGV9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBibG9ja3F1b3RlKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnYmxvY2txdW90ZScsXG4gICAgcHJvcGVydGllczoge30sXG4gICAgY2hpbGRyZW46IHN0YXRlLndyYXAoc3RhdGUuYWxsKG5vZGUpLCB0cnVlKVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50LCBUZXh0fSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7QnJlYWt9IGZyb20gJ21kYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4uL3N0YXRlLmpzJ1xuICovXG5cbi8qKlxuICogVHVybiBhbiBtZGFzdCBgYnJlYWtgIG5vZGUgaW50byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7QnJlYWt9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtBcnJheTxFbGVtZW50IHwgVGV4dD59XG4gKiAgIGhhc3QgZWxlbWVudCBjb250ZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFyZEJyZWFrKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge3R5cGU6ICdlbGVtZW50JywgdGFnTmFtZTogJ2JyJywgcHJvcGVydGllczoge30sIGNoaWxkcmVuOiBbXX1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gW3N0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpLCB7dHlwZTogJ3RleHQnLCB2YWx1ZTogJ1xcbid9XVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudCwgUHJvcGVydGllc30gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge0NvZGV9IGZyb20gJ21kYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4uL3N0YXRlLmpzJ1xuICovXG5cbi8qKlxuICogVHVybiBhbiBtZGFzdCBgY29kZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtDb2RlfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29kZShzdGF0ZSwgbm9kZSkge1xuICBjb25zdCB2YWx1ZSA9IG5vZGUudmFsdWUgPyBub2RlLnZhbHVlICsgJ1xcbicgOiAnJ1xuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BlcnRpZXMgPSB7fVxuICAvLyBTb21lb25lIGNhbiB3cml0ZSBganMmI3gyMDtweXRob24mI3g5O3J1YnlgLlxuICBjb25zdCBsYW5ndWFnZSA9IG5vZGUubGFuZyA/IG5vZGUubGFuZy5zcGxpdCgvXFxzKy8pIDogW11cblxuICAvLyBHSC9DTSBzdGlsbCBkcm9wIHRoZSBub24tZmlyc3QgbGFuZ3VhZ2VzLlxuICBpZiAobGFuZ3VhZ2UubGVuZ3RoID4gMCkge1xuICAgIHByb3BlcnRpZXMuY2xhc3NOYW1lID0gWydsYW5ndWFnZS0nICsgbGFuZ3VhZ2VbMF1dXG4gIH1cblxuICAvLyBDcmVhdGUgYDxjb2RlPmAuXG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgbGV0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ2NvZGUnLFxuICAgIHByb3BlcnRpZXMsXG4gICAgY2hpbGRyZW46IFt7dHlwZTogJ3RleHQnLCB2YWx1ZX1dXG4gIH1cblxuICBpZiAobm9kZS5tZXRhKSB7XG4gICAgcmVzdWx0LmRhdGEgPSB7bWV0YTogbm9kZS5tZXRhfVxuICB9XG5cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXN1bHQgPSBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxuXG4gIC8vIENyZWF0ZSBgPHByZT5gLlxuICByZXN1bHQgPSB7dHlwZTogJ2VsZW1lbnQnLCB0YWdOYW1lOiAncHJlJywgcHJvcGVydGllczoge30sIGNoaWxkcmVuOiBbcmVzdWx0XX1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gcmVzdWx0XG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50fSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7RGVsZXRlfSBmcm9tICdtZGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9zdGF0ZS5qcydcbiAqL1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYGRlbGV0ZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtEZWxldGV9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpa2V0aHJvdWdoKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnZGVsJyxcbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogc3RhdGUuYWxsKG5vZGUpXG4gIH1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0VsZW1lbnR9IGZyb20gJ2hhc3QnXG4gKiBAaW1wb3J0IHtFbXBoYXNpc30gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vc3RhdGUuanMnXG4gKi9cblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBlbXBoYXNpc2Agbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtFbXBoYXNpc30gbm9kZVxuICogICBtZGFzdCBub2RlLlxuICogQHJldHVybnMge0VsZW1lbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtcGhhc2lzKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnZW0nLFxuICAgIHByb3BlcnRpZXM6IHt9LFxuICAgIGNoaWxkcmVuOiBzdGF0ZS5hbGwobm9kZSlcbiAgfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge0Zvb3Rub3RlUmVmZXJlbmNlfSBmcm9tICdtZGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9zdGF0ZS5qcydcbiAqL1xuXG5pbXBvcnQge25vcm1hbGl6ZVVyaX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtc2FuaXRpemUtdXJpJ1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYGZvb3Rub3RlUmVmZXJlbmNlYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0Zvb3Rub3RlUmVmZXJlbmNlfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVSZWZlcmVuY2Uoc3RhdGUsIG5vZGUpIHtcbiAgY29uc3QgY2xvYmJlclByZWZpeCA9XG4gICAgdHlwZW9mIHN0YXRlLm9wdGlvbnMuY2xvYmJlclByZWZpeCA9PT0gJ3N0cmluZydcbiAgICAgID8gc3RhdGUub3B0aW9ucy5jbG9iYmVyUHJlZml4XG4gICAgICA6ICd1c2VyLWNvbnRlbnQtJ1xuICBjb25zdCBpZCA9IFN0cmluZyhub2RlLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKClcbiAgY29uc3Qgc2FmZUlkID0gbm9ybWFsaXplVXJpKGlkLnRvTG93ZXJDYXNlKCkpXG4gIGNvbnN0IGluZGV4ID0gc3RhdGUuZm9vdG5vdGVPcmRlci5pbmRleE9mKGlkKVxuICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgbGV0IGNvdW50ZXJcblxuICBsZXQgcmV1c2VDb3VudGVyID0gc3RhdGUuZm9vdG5vdGVDb3VudHMuZ2V0KGlkKVxuXG4gIGlmIChyZXVzZUNvdW50ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldXNlQ291bnRlciA9IDBcbiAgICBzdGF0ZS5mb290bm90ZU9yZGVyLnB1c2goaWQpXG4gICAgY291bnRlciA9IHN0YXRlLmZvb3Rub3RlT3JkZXIubGVuZ3RoXG4gIH0gZWxzZSB7XG4gICAgY291bnRlciA9IGluZGV4ICsgMVxuICB9XG5cbiAgcmV1c2VDb3VudGVyICs9IDFcbiAgc3RhdGUuZm9vdG5vdGVDb3VudHMuc2V0KGlkLCByZXVzZUNvdW50ZXIpXG5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCBsaW5rID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnYScsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgaHJlZjogJyMnICsgY2xvYmJlclByZWZpeCArICdmbi0nICsgc2FmZUlkLFxuICAgICAgaWQ6XG4gICAgICAgIGNsb2JiZXJQcmVmaXggK1xuICAgICAgICAnZm5yZWYtJyArXG4gICAgICAgIHNhZmVJZCArXG4gICAgICAgIChyZXVzZUNvdW50ZXIgPiAxID8gJy0nICsgcmV1c2VDb3VudGVyIDogJycpLFxuICAgICAgZGF0YUZvb3Rub3RlUmVmOiB0cnVlLFxuICAgICAgYXJpYURlc2NyaWJlZEJ5OiBbJ2Zvb3Rub3RlLWxhYmVsJ11cbiAgICB9LFxuICAgIGNoaWxkcmVuOiBbe3R5cGU6ICd0ZXh0JywgdmFsdWU6IFN0cmluZyhjb3VudGVyKX1dXG4gIH1cbiAgc3RhdGUucGF0Y2gobm9kZSwgbGluaylcblxuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHN1cCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ3N1cCcsXG4gICAgcHJvcGVydGllczoge30sXG4gICAgY2hpbGRyZW46IFtsaW5rXVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHN1cClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCBzdXApXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50fSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7SGVhZGluZ30gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vc3RhdGUuanMnXG4gKi9cblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBoZWFkaW5nYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0hlYWRpbmd9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoZWFkaW5nKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnaCcgKyBub2RlLmRlcHRoLFxuICAgIHByb3BlcnRpZXM6IHt9LFxuICAgIGNoaWxkcmVuOiBzdGF0ZS5hbGwobm9kZSlcbiAgfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge0h0bWx9IGZyb20gJ21kYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4uL3N0YXRlLmpzJ1xuICogQGltcG9ydCB7UmF3fSBmcm9tICcuLi8uLi9pbmRleC5qcydcbiAqL1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYGh0bWxgIG5vZGUgaW50byBoYXN0IChgcmF3YCBub2RlIGluIGRhbmdlcm91cyBtb2RlLCBvdGhlcndpc2VcbiAqIG5vdGhpbmcpLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7SHRtbH0gbm9kZVxuICogICBtZGFzdCBub2RlLlxuICogQHJldHVybnMge0VsZW1lbnQgfCBSYXcgfCB1bmRlZmluZWR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGh0bWwoc3RhdGUsIG5vZGUpIHtcbiAgaWYgKHN0YXRlLm9wdGlvbnMuYWxsb3dEYW5nZXJvdXNIdG1sKSB7XG4gICAgLyoqIEB0eXBlIHtSYXd9ICovXG4gICAgY29uc3QgcmVzdWx0ID0ge3R5cGU6ICdyYXcnLCB2YWx1ZTogbm9kZS52YWx1ZX1cbiAgICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gICAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50Q29udGVudH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1JlZmVyZW5jZSwgTm9kZXN9IGZyb20gJ21kYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4vc3RhdGUuanMnXG4gKi9cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGNvbnRlbnQgb2YgYSByZWZlcmVuY2Ugd2l0aG91dCBkZWZpbml0aW9uIGFzIHBsYWluIHRleHQuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtFeHRyYWN0PE5vZGVzLCBSZWZlcmVuY2U+fSBub2RlXG4gKiAgIFJlZmVyZW5jZSBub2RlIChpbWFnZSwgbGluaykuXG4gKiBAcmV0dXJucyB7QXJyYXk8RWxlbWVudENvbnRlbnQ+fVxuICogICBoYXN0IGNvbnRlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXZlcnQoc3RhdGUsIG5vZGUpIHtcbiAgY29uc3Qgc3VidHlwZSA9IG5vZGUucmVmZXJlbmNlVHlwZVxuICBsZXQgc3VmZml4ID0gJ10nXG5cbiAgaWYgKHN1YnR5cGUgPT09ICdjb2xsYXBzZWQnKSB7XG4gICAgc3VmZml4ICs9ICdbXSdcbiAgfSBlbHNlIGlmIChzdWJ0eXBlID09PSAnZnVsbCcpIHtcbiAgICBzdWZmaXggKz0gJ1snICsgKG5vZGUubGFiZWwgfHwgbm9kZS5pZGVudGlmaWVyKSArICddJ1xuICB9XG5cbiAgaWYgKG5vZGUudHlwZSA9PT0gJ2ltYWdlUmVmZXJlbmNlJykge1xuICAgIHJldHVybiBbe3R5cGU6ICd0ZXh0JywgdmFsdWU6ICchWycgKyBub2RlLmFsdCArIHN1ZmZpeH1dXG4gIH1cblxuICBjb25zdCBjb250ZW50cyA9IHN0YXRlLmFsbChub2RlKVxuICBjb25zdCBoZWFkID0gY29udGVudHNbMF1cblxuICBpZiAoaGVhZCAmJiBoZWFkLnR5cGUgPT09ICd0ZXh0Jykge1xuICAgIGhlYWQudmFsdWUgPSAnWycgKyBoZWFkLnZhbHVlXG4gIH0gZWxzZSB7XG4gICAgY29udGVudHMudW5zaGlmdCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogJ1snfSlcbiAgfVxuXG4gIGNvbnN0IHRhaWwgPSBjb250ZW50c1tjb250ZW50cy5sZW5ndGggLSAxXVxuXG4gIGlmICh0YWlsICYmIHRhaWwudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgdGFpbC52YWx1ZSArPSBzdWZmaXhcbiAgfSBlbHNlIHtcbiAgICBjb250ZW50cy5wdXNoKHt0eXBlOiAndGV4dCcsIHZhbHVlOiBzdWZmaXh9KVxuICB9XG5cbiAgcmV0dXJuIGNvbnRlbnRzXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50Q29udGVudCwgRWxlbWVudCwgUHJvcGVydGllc30gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge0ltYWdlUmVmZXJlbmNlfSBmcm9tICdtZGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9zdGF0ZS5qcydcbiAqL1xuXG5pbXBvcnQge25vcm1hbGl6ZVVyaX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtc2FuaXRpemUtdXJpJ1xuaW1wb3J0IHtyZXZlcnR9IGZyb20gJy4uL3JldmVydC5qcydcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBpbWFnZVJlZmVyZW5jZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtJbWFnZVJlZmVyZW5jZX0gbm9kZVxuICogICBtZGFzdCBub2RlLlxuICogQHJldHVybnMge0FycmF5PEVsZW1lbnRDb250ZW50PiB8IEVsZW1lbnRDb250ZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbWFnZVJlZmVyZW5jZShzdGF0ZSwgbm9kZSkge1xuICBjb25zdCBpZCA9IFN0cmluZyhub2RlLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKClcbiAgY29uc3QgZGVmaW5pdGlvbiA9IHN0YXRlLmRlZmluaXRpb25CeUlkLmdldChpZClcblxuICBpZiAoIWRlZmluaXRpb24pIHtcbiAgICByZXR1cm4gcmV2ZXJ0KHN0YXRlLCBub2RlKVxuICB9XG5cbiAgLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuICBjb25zdCBwcm9wZXJ0aWVzID0ge3NyYzogbm9ybWFsaXplVXJpKGRlZmluaXRpb24udXJsIHx8ICcnKSwgYWx0OiBub2RlLmFsdH1cblxuICBpZiAoZGVmaW5pdGlvbi50aXRsZSAhPT0gbnVsbCAmJiBkZWZpbml0aW9uLnRpdGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICBwcm9wZXJ0aWVzLnRpdGxlID0gZGVmaW5pdGlvbi50aXRsZVxuICB9XG5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCByZXN1bHQgPSB7dHlwZTogJ2VsZW1lbnQnLCB0YWdOYW1lOiAnaW1nJywgcHJvcGVydGllcywgY2hpbGRyZW46IFtdfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudCwgUHJvcGVydGllc30gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge0ltYWdlfSBmcm9tICdtZGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9zdGF0ZS5qcydcbiAqL1xuXG5pbXBvcnQge25vcm1hbGl6ZVVyaX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtc2FuaXRpemUtdXJpJ1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYGltYWdlYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0ltYWdlfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2Uoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuICBjb25zdCBwcm9wZXJ0aWVzID0ge3NyYzogbm9ybWFsaXplVXJpKG5vZGUudXJsKX1cblxuICBpZiAobm9kZS5hbHQgIT09IG51bGwgJiYgbm9kZS5hbHQgIT09IHVuZGVmaW5lZCkge1xuICAgIHByb3BlcnRpZXMuYWx0ID0gbm9kZS5hbHRcbiAgfVxuXG4gIGlmIChub2RlLnRpdGxlICE9PSBudWxsICYmIG5vZGUudGl0bGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHByb3BlcnRpZXMudGl0bGUgPSBub2RlLnRpdGxlXG4gIH1cblxuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHt0eXBlOiAnZWxlbWVudCcsIHRhZ05hbWU6ICdpbWcnLCBwcm9wZXJ0aWVzLCBjaGlsZHJlbjogW119XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50LCBUZXh0fSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7SW5saW5lQ29kZX0gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vc3RhdGUuanMnXG4gKi9cblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBpbmxpbmVDb2RlYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0lubGluZUNvZGV9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmxpbmVDb2RlKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7VGV4dH0gKi9cbiAgY29uc3QgdGV4dCA9IHt0eXBlOiAndGV4dCcsIHZhbHVlOiBub2RlLnZhbHVlLnJlcGxhY2UoL1xccj9cXG58XFxyL2csICcgJyl9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHRleHQpXG5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIHRhZ05hbWU6ICdjb2RlJyxcbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogW3RleHRdXG4gIH1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0VsZW1lbnRDb250ZW50LCBFbGVtZW50LCBQcm9wZXJ0aWVzfSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7TGlua1JlZmVyZW5jZX0gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vc3RhdGUuanMnXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemVVcml9IGZyb20gJ21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaSdcbmltcG9ydCB7cmV2ZXJ0fSBmcm9tICcuLi9yZXZlcnQuanMnXG5cbi8qKlxuICogVHVybiBhbiBtZGFzdCBgbGlua1JlZmVyZW5jZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtMaW5rUmVmZXJlbmNlfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7QXJyYXk8RWxlbWVudENvbnRlbnQ+IHwgRWxlbWVudENvbnRlbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpbmtSZWZlcmVuY2Uoc3RhdGUsIG5vZGUpIHtcbiAgY29uc3QgaWQgPSBTdHJpbmcobm9kZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpXG4gIGNvbnN0IGRlZmluaXRpb24gPSBzdGF0ZS5kZWZpbml0aW9uQnlJZC5nZXQoaWQpXG5cbiAgaWYgKCFkZWZpbml0aW9uKSB7XG4gICAgcmV0dXJuIHJldmVydChzdGF0ZSwgbm9kZSlcbiAgfVxuXG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcGVydGllcyA9IHtocmVmOiBub3JtYWxpemVVcmkoZGVmaW5pdGlvbi51cmwgfHwgJycpfVxuXG4gIGlmIChkZWZpbml0aW9uLnRpdGxlICE9PSBudWxsICYmIGRlZmluaXRpb24udGl0bGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHByb3BlcnRpZXMudGl0bGUgPSBkZWZpbml0aW9uLnRpdGxlXG4gIH1cblxuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ2EnLFxuICAgIHByb3BlcnRpZXMsXG4gICAgY2hpbGRyZW46IHN0YXRlLmFsbChub2RlKVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50LCBQcm9wZXJ0aWVzfSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7TGlua30gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vc3RhdGUuanMnXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemVVcml9IGZyb20gJ21pY3JvbWFyay11dGlsLXNhbml0aXplLXVyaSdcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBsaW5rYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0xpbmt9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaW5rKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcGVydGllcyA9IHtocmVmOiBub3JtYWxpemVVcmkobm9kZS51cmwpfVxuXG4gIGlmIChub2RlLnRpdGxlICE9PSBudWxsICYmIG5vZGUudGl0bGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHByb3BlcnRpZXMudGl0bGUgPSBub2RlLnRpdGxlXG4gIH1cblxuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ2EnLFxuICAgIHByb3BlcnRpZXMsXG4gICAgY2hpbGRyZW46IHN0YXRlLmFsbChub2RlKVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50Q29udGVudCwgRWxlbWVudCwgUHJvcGVydGllc30gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge0xpc3RJdGVtLCBQYXJlbnRzfSBmcm9tICdtZGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9zdGF0ZS5qcydcbiAqL1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYGxpc3RJdGVtYCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0xpc3RJdGVtfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHJldHVybnMge0VsZW1lbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpc3RJdGVtKHN0YXRlLCBub2RlLCBwYXJlbnQpIHtcbiAgY29uc3QgcmVzdWx0cyA9IHN0YXRlLmFsbChub2RlKVxuICBjb25zdCBsb29zZSA9IHBhcmVudCA/IGxpc3RMb29zZShwYXJlbnQpIDogbGlzdEl0ZW1Mb29zZShub2RlKVxuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BlcnRpZXMgPSB7fVxuICAvKiogQHR5cGUge0FycmF5PEVsZW1lbnRDb250ZW50Pn0gKi9cbiAgY29uc3QgY2hpbGRyZW4gPSBbXVxuXG4gIGlmICh0eXBlb2Ygbm9kZS5jaGVja2VkID09PSAnYm9vbGVhbicpIHtcbiAgICBjb25zdCBoZWFkID0gcmVzdWx0c1swXVxuICAgIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgICBsZXQgcGFyYWdyYXBoXG5cbiAgICBpZiAoaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJiBoZWFkLnRhZ05hbWUgPT09ICdwJykge1xuICAgICAgcGFyYWdyYXBoID0gaGVhZFxuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhZ3JhcGggPSB7dHlwZTogJ2VsZW1lbnQnLCB0YWdOYW1lOiAncCcsIHByb3BlcnRpZXM6IHt9LCBjaGlsZHJlbjogW119XG4gICAgICByZXN1bHRzLnVuc2hpZnQocGFyYWdyYXBoKVxuICAgIH1cblxuICAgIGlmIChwYXJhZ3JhcGguY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgcGFyYWdyYXBoLmNoaWxkcmVuLnVuc2hpZnQoe3R5cGU6ICd0ZXh0JywgdmFsdWU6ICcgJ30pXG4gICAgfVxuXG4gICAgcGFyYWdyYXBoLmNoaWxkcmVuLnVuc2hpZnQoe1xuICAgICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgICAgdGFnTmFtZTogJ2lucHV0JyxcbiAgICAgIHByb3BlcnRpZXM6IHt0eXBlOiAnY2hlY2tib3gnLCBjaGVja2VkOiBub2RlLmNoZWNrZWQsIGRpc2FibGVkOiB0cnVlfSxcbiAgICAgIGNoaWxkcmVuOiBbXVxuICAgIH0pXG5cbiAgICAvLyBBY2NvcmRpbmcgdG8gZ2l0aHViLW1hcmtkb3duLWNzcywgdGhpcyBjbGFzcyBoaWRlcyBidWxsZXQuXG4gICAgLy8gU2VlOiA8aHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9naXRodWItbWFya2Rvd24tY3NzPi5cbiAgICBwcm9wZXJ0aWVzLmNsYXNzTmFtZSA9IFsndGFzay1saXN0LWl0ZW0nXVxuICB9XG5cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHJlc3VsdHMubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hpbGQgPSByZXN1bHRzW2luZGV4XVxuXG4gICAgLy8gQWRkIGVvbHMgYmVmb3JlIG5vZGVzLCBleGNlcHQgaWYgdGhpcyBpcyBhIGxvb3NlLCBmaXJzdCBwYXJhZ3JhcGguXG4gICAgaWYgKFxuICAgICAgbG9vc2UgfHxcbiAgICAgIGluZGV4ICE9PSAwIHx8XG4gICAgICBjaGlsZC50eXBlICE9PSAnZWxlbWVudCcgfHxcbiAgICAgIGNoaWxkLnRhZ05hbWUgIT09ICdwJ1xuICAgICkge1xuICAgICAgY2hpbGRyZW4ucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogJ1xcbid9KVxuICAgIH1cblxuICAgIGlmIChjaGlsZC50eXBlID09PSAnZWxlbWVudCcgJiYgY2hpbGQudGFnTmFtZSA9PT0gJ3AnICYmICFsb29zZSkge1xuICAgICAgY2hpbGRyZW4ucHVzaCguLi5jaGlsZC5jaGlsZHJlbilcbiAgICB9IGVsc2Uge1xuICAgICAgY2hpbGRyZW4ucHVzaChjaGlsZClcbiAgICB9XG4gIH1cblxuICBjb25zdCB0YWlsID0gcmVzdWx0c1tyZXN1bHRzLmxlbmd0aCAtIDFdXG5cbiAgLy8gQWRkIGEgZmluYWwgZW9sLlxuICBpZiAodGFpbCAmJiAobG9vc2UgfHwgdGFpbC50eXBlICE9PSAnZWxlbWVudCcgfHwgdGFpbC50YWdOYW1lICE9PSAncCcpKSB7XG4gICAgY2hpbGRyZW4ucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogJ1xcbid9KVxuICB9XG5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCByZXN1bHQgPSB7dHlwZTogJ2VsZW1lbnQnLCB0YWdOYW1lOiAnbGknLCBwcm9wZXJ0aWVzLCBjaGlsZHJlbn1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1BhcmVudHN9IG5vZGVcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGxpc3RMb29zZShub2RlKSB7XG4gIGxldCBsb29zZSA9IGZhbHNlXG4gIGlmIChub2RlLnR5cGUgPT09ICdsaXN0Jykge1xuICAgIGxvb3NlID0gbm9kZS5zcHJlYWQgfHwgZmFsc2VcbiAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW5cbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgd2hpbGUgKCFsb29zZSAmJiArK2luZGV4IDwgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICBsb29zZSA9IGxpc3RJdGVtTG9vc2UoY2hpbGRyZW5baW5kZXhdKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsb29zZVxufVxuXG4vKipcbiAqIEBwYXJhbSB7TGlzdEl0ZW19IG5vZGVcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGxpc3RJdGVtTG9vc2Uobm9kZSkge1xuICBjb25zdCBzcHJlYWQgPSBub2RlLnNwcmVhZFxuXG4gIHJldHVybiBzcHJlYWQgPT09IG51bGwgfHwgc3ByZWFkID09PSB1bmRlZmluZWRcbiAgICA/IG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMVxuICAgIDogc3ByZWFkXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50LCBQcm9wZXJ0aWVzfSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7TGlzdH0gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vc3RhdGUuanMnXG4gKi9cblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBsaXN0YCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge0xpc3R9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaXN0KHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgY29uc3QgcHJvcGVydGllcyA9IHt9XG4gIGNvbnN0IHJlc3VsdHMgPSBzdGF0ZS5hbGwobm9kZSlcbiAgbGV0IGluZGV4ID0gLTFcblxuICBpZiAodHlwZW9mIG5vZGUuc3RhcnQgPT09ICdudW1iZXInICYmIG5vZGUuc3RhcnQgIT09IDEpIHtcbiAgICBwcm9wZXJ0aWVzLnN0YXJ0ID0gbm9kZS5zdGFydFxuICB9XG5cbiAgLy8gTGlrZSBHaXRIdWIsIGFkZCBhIGNsYXNzIGZvciBjdXN0b20gc3R5bGluZy5cbiAgd2hpbGUgKCsraW5kZXggPCByZXN1bHRzLmxlbmd0aCkge1xuICAgIGNvbnN0IGNoaWxkID0gcmVzdWx0c1tpbmRleF1cblxuICAgIGlmIChcbiAgICAgIGNoaWxkLnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgY2hpbGQudGFnTmFtZSA9PT0gJ2xpJyAmJlxuICAgICAgY2hpbGQucHJvcGVydGllcyAmJlxuICAgICAgQXJyYXkuaXNBcnJheShjaGlsZC5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkgJiZcbiAgICAgIGNoaWxkLnByb3BlcnRpZXMuY2xhc3NOYW1lLmluY2x1ZGVzKCd0YXNrLWxpc3QtaXRlbScpXG4gICAgKSB7XG4gICAgICBwcm9wZXJ0aWVzLmNsYXNzTmFtZSA9IFsnY29udGFpbnMtdGFzay1saXN0J11cbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIHRhZ05hbWU6IG5vZGUub3JkZXJlZCA/ICdvbCcgOiAndWwnLFxuICAgIHByb3BlcnRpZXMsXG4gICAgY2hpbGRyZW46IHN0YXRlLndyYXAocmVzdWx0cywgdHJ1ZSlcbiAgfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1BhcmFncmFwaH0gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vc3RhdGUuanMnXG4gKi9cblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBwYXJhZ3JhcGhgIG5vZGUgaW50byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7UGFyYWdyYXBofSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyYWdyYXBoKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAncCcsXG4gICAgcHJvcGVydGllczoge30sXG4gICAgY2hpbGRyZW46IHN0YXRlLmFsbChub2RlKVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtQYXJlbnRzIGFzIEhhc3RQYXJlbnRzLCBSb290IGFzIEhhc3RSb290fSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7Um9vdCBhcyBNZGFzdFJvb3R9IGZyb20gJ21kYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4uL3N0YXRlLmpzJ1xuICovXG5cbi8qKlxuICogVHVybiBhbiBtZGFzdCBgcm9vdGAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtNZGFzdFJvb3R9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtIYXN0UGFyZW50c31cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdChzdGF0ZSwgbm9kZSkge1xuICAvKiogQHR5cGUge0hhc3RSb290fSAqL1xuICBjb25zdCByZXN1bHQgPSB7dHlwZTogJ3Jvb3QnLCBjaGlsZHJlbjogc3RhdGUud3JhcChzdGF0ZS5hbGwobm9kZSkpfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1N0cm9uZ30gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vc3RhdGUuanMnXG4gKi9cblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGBzdHJvbmdgIG5vZGUgaW50byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7U3Ryb25nfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3Ryb25nKHN0YXRlLCBub2RlKSB7XG4gIC8qKiBAdHlwZSB7RWxlbWVudH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnc3Ryb25nJyxcbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogc3RhdGUuYWxsKG5vZGUpXG4gIH1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge1RhYmxlfSBmcm9tICdtZGFzdCdcbiAqIEBpbXBvcnQge0VsZW1lbnR9IGZyb20gJ2hhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vc3RhdGUuanMnXG4gKi9cblxuaW1wb3J0IHtwb2ludEVuZCwgcG9pbnRTdGFydH0gZnJvbSAndW5pc3QtdXRpbC1wb3NpdGlvbidcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGB0YWJsZWAgbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtUYWJsZX0gbm9kZVxuICogICBtZGFzdCBub2RlLlxuICogQHJldHVybnMge0VsZW1lbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlKHN0YXRlLCBub2RlKSB7XG4gIGNvbnN0IHJvd3MgPSBzdGF0ZS5hbGwobm9kZSlcbiAgY29uc3QgZmlyc3RSb3cgPSByb3dzLnNoaWZ0KClcbiAgLyoqIEB0eXBlIHtBcnJheTxFbGVtZW50Pn0gKi9cbiAgY29uc3QgdGFibGVDb250ZW50ID0gW11cblxuICBpZiAoZmlyc3RSb3cpIHtcbiAgICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gICAgY29uc3QgaGVhZCA9IHtcbiAgICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICAgIHRhZ05hbWU6ICd0aGVhZCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgIGNoaWxkcmVuOiBzdGF0ZS53cmFwKFtmaXJzdFJvd10sIHRydWUpXG4gICAgfVxuICAgIHN0YXRlLnBhdGNoKG5vZGUuY2hpbGRyZW5bMF0sIGhlYWQpXG4gICAgdGFibGVDb250ZW50LnB1c2goaGVhZClcbiAgfVxuXG4gIGlmIChyb3dzLmxlbmd0aCA+IDApIHtcbiAgICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICAgIHRhZ05hbWU6ICd0Ym9keScsXG4gICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgIGNoaWxkcmVuOiBzdGF0ZS53cmFwKHJvd3MsIHRydWUpXG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnQgPSBwb2ludFN0YXJ0KG5vZGUuY2hpbGRyZW5bMV0pXG4gICAgY29uc3QgZW5kID0gcG9pbnRFbmQobm9kZS5jaGlsZHJlbltub2RlLmNoaWxkcmVuLmxlbmd0aCAtIDFdKVxuICAgIGlmIChzdGFydCAmJiBlbmQpIGJvZHkucG9zaXRpb24gPSB7c3RhcnQsIGVuZH1cbiAgICB0YWJsZUNvbnRlbnQucHVzaChib2R5KVxuICB9XG5cbiAgLyoqIEB0eXBlIHtFbGVtZW50fSAqL1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIHRhZ05hbWU6ICd0YWJsZScsXG4gICAgcHJvcGVydGllczoge30sXG4gICAgY2hpbGRyZW46IHN0YXRlLndyYXAodGFibGVDb250ZW50LCB0cnVlKVxuICB9XG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50LCBFbGVtZW50Q29udGVudCwgUHJvcGVydGllc30gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1BhcmVudHMsIFRhYmxlUm93fSBmcm9tICdtZGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9zdGF0ZS5qcydcbiAqL1xuXG4vKipcbiAqIFR1cm4gYW4gbWRhc3QgYHRhYmxlUm93YCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge1RhYmxlUm93fSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHJldHVybnMge0VsZW1lbnR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlUm93KHN0YXRlLCBub2RlLCBwYXJlbnQpIHtcbiAgY29uc3Qgc2libGluZ3MgPSBwYXJlbnQgPyBwYXJlbnQuY2hpbGRyZW4gOiB1bmRlZmluZWRcbiAgLy8gR2VuZXJhdGUgYSBib2R5IHJvdyB3aGVuIHdpdGhvdXQgcGFyZW50LlxuICBjb25zdCByb3dJbmRleCA9IHNpYmxpbmdzID8gc2libGluZ3MuaW5kZXhPZihub2RlKSA6IDFcbiAgY29uc3QgdGFnTmFtZSA9IHJvd0luZGV4ID09PSAwID8gJ3RoJyA6ICd0ZCdcbiAgLy8gVG8gZG86IG9wdGlvbiB0byB1c2UgYHN0eWxlYD9cbiAgY29uc3QgYWxpZ24gPSBwYXJlbnQgJiYgcGFyZW50LnR5cGUgPT09ICd0YWJsZScgPyBwYXJlbnQuYWxpZ24gOiB1bmRlZmluZWRcbiAgY29uc3QgbGVuZ3RoID0gYWxpZ24gPyBhbGlnbi5sZW5ndGggOiBub2RlLmNoaWxkcmVuLmxlbmd0aFxuICBsZXQgY2VsbEluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtBcnJheTxFbGVtZW50Q29udGVudD59ICovXG4gIGNvbnN0IGNlbGxzID0gW11cblxuICB3aGlsZSAoKytjZWxsSW5kZXggPCBsZW5ndGgpIHtcbiAgICAvLyBOb3RlOiBjYW4gYWxzbyBiZSB1bmRlZmluZWQuXG4gICAgY29uc3QgY2VsbCA9IG5vZGUuY2hpbGRyZW5bY2VsbEluZGV4XVxuICAgIC8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0ge31cbiAgICBjb25zdCBhbGlnblZhbHVlID0gYWxpZ24gPyBhbGlnbltjZWxsSW5kZXhdIDogdW5kZWZpbmVkXG5cbiAgICBpZiAoYWxpZ25WYWx1ZSkge1xuICAgICAgcHJvcGVydGllcy5hbGlnbiA9IGFsaWduVmFsdWVcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gICAgbGV0IHJlc3VsdCA9IHt0eXBlOiAnZWxlbWVudCcsIHRhZ05hbWUsIHByb3BlcnRpZXMsIGNoaWxkcmVuOiBbXX1cblxuICAgIGlmIChjZWxsKSB7XG4gICAgICByZXN1bHQuY2hpbGRyZW4gPSBzdGF0ZS5hbGwoY2VsbClcbiAgICAgIHN0YXRlLnBhdGNoKGNlbGwsIHJlc3VsdClcbiAgICAgIHJlc3VsdCA9IHN0YXRlLmFwcGx5RGF0YShjZWxsLCByZXN1bHQpXG4gICAgfVxuXG4gICAgY2VsbHMucHVzaChyZXN1bHQpXG4gIH1cblxuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ3RyJyxcbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogc3RhdGUud3JhcChjZWxscywgdHJ1ZSlcbiAgfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1RhYmxlQ2VsbH0gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vc3RhdGUuanMnXG4gKi9cblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGB0YWJsZUNlbGxgIG5vZGUgaW50byBoYXN0LlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwYXJhbSB7VGFibGVDZWxsfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGFibGVDZWxsKHN0YXRlLCBub2RlKSB7XG4gIC8vIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFsbHkgbm90IGNhbGxlZDogc2VlIGB0YWJsZS1yb3dgIGZvciBob3cgcm93c1xuICAvLyBhbmQgdGhlaXIgY2VsbHMgYXJlIGNvbXBpbGVkLlxuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ3RkJywgLy8gQXNzdW1lIGJvZHkgY2VsbC5cbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogc3RhdGUuYWxsKG5vZGUpXG4gIH1cbiAgc3RhdGUucGF0Y2gobm9kZSwgcmVzdWx0KVxuICByZXR1cm4gc3RhdGUuYXBwbHlEYXRhKG5vZGUsIHJlc3VsdClcbn1cbiIsICJjb25zdCB0YWIgPSA5IC8qIGBcXHRgICovXG5jb25zdCBzcGFjZSA9IDMyIC8qIGAgYCAqL1xuXG4vKipcbiAqIFJlbW92ZSBpbml0aWFsIGFuZCBmaW5hbCBzcGFjZXMgYW5kIHRhYnMgYXQgdGhlIGxpbmUgYnJlYWtzIGluIGB2YWx1ZWAuXG4gKiBEb2VzIG5vdCB0cmltIGluaXRpYWwgYW5kIGZpbmFsIHNwYWNlcyBhbmQgdGFicyBvZiB0aGUgdmFsdWUgaXRzZWxmLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byB0cmltLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgVHJpbW1lZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyaW1MaW5lcyh2YWx1ZSkge1xuICBjb25zdCBzb3VyY2UgPSBTdHJpbmcodmFsdWUpXG4gIGNvbnN0IHNlYXJjaCA9IC9cXHI/XFxufFxcci9nXG4gIGxldCBtYXRjaCA9IHNlYXJjaC5leGVjKHNvdXJjZSlcbiAgbGV0IGxhc3QgPSAwXG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgbGluZXMgPSBbXVxuXG4gIHdoaWxlIChtYXRjaCkge1xuICAgIGxpbmVzLnB1c2goXG4gICAgICB0cmltTGluZShzb3VyY2Uuc2xpY2UobGFzdCwgbWF0Y2guaW5kZXgpLCBsYXN0ID4gMCwgdHJ1ZSksXG4gICAgICBtYXRjaFswXVxuICAgIClcblxuICAgIGxhc3QgPSBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aFxuICAgIG1hdGNoID0gc2VhcmNoLmV4ZWMoc291cmNlKVxuICB9XG5cbiAgbGluZXMucHVzaCh0cmltTGluZShzb3VyY2Uuc2xpY2UobGFzdCksIGxhc3QgPiAwLCBmYWxzZSkpXG5cbiAgcmV0dXJuIGxpbmVzLmpvaW4oJycpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIExpbmUgdG8gdHJpbS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc3RhcnRcbiAqICAgV2hldGhlciB0byB0cmltIHRoZSBzdGFydCBvZiB0aGUgbGluZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gZW5kXG4gKiAgIFdoZXRoZXIgdG8gdHJpbSB0aGUgZW5kIG9mIHRoZSBsaW5lLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgVHJpbW1lZCBsaW5lLlxuICovXG5mdW5jdGlvbiB0cmltTGluZSh2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICBsZXQgc3RhcnRJbmRleCA9IDBcbiAgbGV0IGVuZEluZGV4ID0gdmFsdWUubGVuZ3RoXG5cbiAgaWYgKHN0YXJ0KSB7XG4gICAgbGV0IGNvZGUgPSB2YWx1ZS5jb2RlUG9pbnRBdChzdGFydEluZGV4KVxuXG4gICAgd2hpbGUgKGNvZGUgPT09IHRhYiB8fCBjb2RlID09PSBzcGFjZSkge1xuICAgICAgc3RhcnRJbmRleCsrXG4gICAgICBjb2RlID0gdmFsdWUuY29kZVBvaW50QXQoc3RhcnRJbmRleClcbiAgICB9XG4gIH1cblxuICBpZiAoZW5kKSB7XG4gICAgbGV0IGNvZGUgPSB2YWx1ZS5jb2RlUG9pbnRBdChlbmRJbmRleCAtIDEpXG5cbiAgICB3aGlsZSAoY29kZSA9PT0gdGFiIHx8IGNvZGUgPT09IHNwYWNlKSB7XG4gICAgICBlbmRJbmRleC0tXG4gICAgICBjb2RlID0gdmFsdWUuY29kZVBvaW50QXQoZW5kSW5kZXggLSAxKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbmRJbmRleCA+IHN0YXJ0SW5kZXggPyB2YWx1ZS5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCkgOiAnJ1xufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudCBhcyBIYXN0RWxlbWVudCwgVGV4dCBhcyBIYXN0VGV4dH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1RleHQgYXMgTWRhc3RUZXh0fSBmcm9tICdtZGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9zdGF0ZS5qcydcbiAqL1xuXG5pbXBvcnQge3RyaW1MaW5lc30gZnJvbSAndHJpbS1saW5lcydcblxuLyoqXG4gKiBUdXJuIGFuIG1kYXN0IGB0ZXh0YCBub2RlIGludG8gaGFzdC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQuXG4gKiBAcGFyYW0ge01kYXN0VGV4dH0gbm9kZVxuICogICBtZGFzdCBub2RlLlxuICogQHJldHVybnMge0hhc3RFbGVtZW50IHwgSGFzdFRleHR9XG4gKiAgIGhhc3Qgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRleHQoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtIYXN0VGV4dH0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge3R5cGU6ICd0ZXh0JywgdmFsdWU6IHRyaW1MaW5lcyhTdHJpbmcobm9kZS52YWx1ZSkpfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1RoZW1hdGljQnJlYWt9IGZyb20gJ21kYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4uL3N0YXRlLmpzJ1xuICovXG5cbi8qKlxuICogVHVybiBhbiBtZGFzdCBgdGhlbWF0aWNCcmVha2Agbm9kZSBpbnRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtUaGVtYXRpY0JyZWFrfSBub2RlXG4gKiAgIG1kYXN0IG5vZGUuXG4gKiBAcmV0dXJucyB7RWxlbWVudH1cbiAqICAgaGFzdCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhlbWF0aWNCcmVhayhzdGF0ZSwgbm9kZSkge1xuICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogJ2hyJyxcbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogW11cbiAgfVxuICBzdGF0ZS5wYXRjaChub2RlLCByZXN1bHQpXG4gIHJldHVybiBzdGF0ZS5hcHBseURhdGEobm9kZSwgcmVzdWx0KVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7SGFuZGxlcnN9IGZyb20gJy4uL3N0YXRlLmpzJ1xuICovXG5cbmltcG9ydCB7YmxvY2txdW90ZX0gZnJvbSAnLi9ibG9ja3F1b3RlLmpzJ1xuaW1wb3J0IHtoYXJkQnJlYWt9IGZyb20gJy4vYnJlYWsuanMnXG5pbXBvcnQge2NvZGV9IGZyb20gJy4vY29kZS5qcydcbmltcG9ydCB7c3RyaWtldGhyb3VnaH0gZnJvbSAnLi9kZWxldGUuanMnXG5pbXBvcnQge2VtcGhhc2lzfSBmcm9tICcuL2VtcGhhc2lzLmpzJ1xuaW1wb3J0IHtmb290bm90ZVJlZmVyZW5jZX0gZnJvbSAnLi9mb290bm90ZS1yZWZlcmVuY2UuanMnXG5pbXBvcnQge2hlYWRpbmd9IGZyb20gJy4vaGVhZGluZy5qcydcbmltcG9ydCB7aHRtbH0gZnJvbSAnLi9odG1sLmpzJ1xuaW1wb3J0IHtpbWFnZVJlZmVyZW5jZX0gZnJvbSAnLi9pbWFnZS1yZWZlcmVuY2UuanMnXG5pbXBvcnQge2ltYWdlfSBmcm9tICcuL2ltYWdlLmpzJ1xuaW1wb3J0IHtpbmxpbmVDb2RlfSBmcm9tICcuL2lubGluZS1jb2RlLmpzJ1xuaW1wb3J0IHtsaW5rUmVmZXJlbmNlfSBmcm9tICcuL2xpbmstcmVmZXJlbmNlLmpzJ1xuaW1wb3J0IHtsaW5rfSBmcm9tICcuL2xpbmsuanMnXG5pbXBvcnQge2xpc3RJdGVtfSBmcm9tICcuL2xpc3QtaXRlbS5qcydcbmltcG9ydCB7bGlzdH0gZnJvbSAnLi9saXN0LmpzJ1xuaW1wb3J0IHtwYXJhZ3JhcGh9IGZyb20gJy4vcGFyYWdyYXBoLmpzJ1xuaW1wb3J0IHtyb290fSBmcm9tICcuL3Jvb3QuanMnXG5pbXBvcnQge3N0cm9uZ30gZnJvbSAnLi9zdHJvbmcuanMnXG5pbXBvcnQge3RhYmxlfSBmcm9tICcuL3RhYmxlLmpzJ1xuaW1wb3J0IHt0YWJsZVJvd30gZnJvbSAnLi90YWJsZS1yb3cuanMnXG5pbXBvcnQge3RhYmxlQ2VsbH0gZnJvbSAnLi90YWJsZS1jZWxsLmpzJ1xuaW1wb3J0IHt0ZXh0fSBmcm9tICcuL3RleHQuanMnXG5pbXBvcnQge3RoZW1hdGljQnJlYWt9IGZyb20gJy4vdGhlbWF0aWMtYnJlYWsuanMnXG5cbi8qKlxuICogRGVmYXVsdCBoYW5kbGVycyBmb3Igbm9kZXMuXG4gKlxuICogQHNhdGlzZmllcyB7SGFuZGxlcnN9XG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGVycyA9IHtcbiAgYmxvY2txdW90ZSxcbiAgYnJlYWs6IGhhcmRCcmVhayxcbiAgY29kZSxcbiAgZGVsZXRlOiBzdHJpa2V0aHJvdWdoLFxuICBlbXBoYXNpcyxcbiAgZm9vdG5vdGVSZWZlcmVuY2UsXG4gIGhlYWRpbmcsXG4gIGh0bWwsXG4gIGltYWdlUmVmZXJlbmNlLFxuICBpbWFnZSxcbiAgaW5saW5lQ29kZSxcbiAgbGlua1JlZmVyZW5jZSxcbiAgbGluayxcbiAgbGlzdEl0ZW0sXG4gIGxpc3QsXG4gIHBhcmFncmFwaCxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogcm9vdCBpcyBkaWZmZXJlbnQsIGJ1dCBoYXJkIHRvIHR5cGUuXG4gIHJvb3QsXG4gIHN0cm9uZyxcbiAgdGFibGUsXG4gIHRhYmxlQ2VsbCxcbiAgdGFibGVSb3csXG4gIHRleHQsXG4gIHRoZW1hdGljQnJlYWssXG4gIHRvbWw6IGlnbm9yZSxcbiAgeWFtbDogaWdub3JlLFxuICBkZWZpbml0aW9uOiBpZ25vcmUsXG4gIGZvb3Rub3RlRGVmaW5pdGlvbjogaWdub3JlXG59XG5cbi8vIFJldHVybiBub3RoaW5nIGZvciBub2RlcyB0aGF0IGFyZSBpZ25vcmVkLlxuZnVuY3Rpb24gaWdub3JlKCkge1xuICByZXR1cm4gdW5kZWZpbmVkXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtFbGVtZW50Q29udGVudCwgRWxlbWVudH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuL3N0YXRlLmpzJ1xuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIEZvb3Rub3RlQmFja0NvbnRlbnRUZW1wbGF0ZVxuICogICBHZW5lcmF0ZSBjb250ZW50IGZvciB0aGUgYmFja3JlZmVyZW5jZSBkeW5hbWljYWxseS5cbiAqXG4gKiAgIEZvciB0aGUgZm9sbG93aW5nIG1hcmtkb3duOlxuICpcbiAqICAgYGBgbWFya2Rvd25cbiAqICAgQWxwaGFbXm1pY3JvbWFya10sIGJyYXZvW15taWNyb21hcmtdLCBhbmQgY2hhcmxpZVtecmVtYXJrXS5cbiAqXG4gKiAgIFtecmVtYXJrXTogdGhpbmdzIGFib3V0IHJlbWFya1xuICogICBbXm1pY3JvbWFya106IHRoaW5ncyBhYm91dCBtaWNyb21hcmtcbiAqICAgYGBgXG4gKlxuICogICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdpdGg6XG4gKlxuICogICAqICBgMGAgYW5kIGAwYCBmb3IgdGhlIGJhY2tyZWZlcmVuY2UgZnJvbSBgdGhpbmdzIGFib3V0IG1pY3JvbWFya2AgdG9cbiAqICAgICAgYGFscGhhYCwgYXMgaXQgaXMgdGhlIGZpcnN0IHVzZWQgZGVmaW5pdGlvbiwgYW5kIHRoZSBmaXJzdCBjYWxsIHRvIGl0XG4gKiAgICogIGAwYCBhbmQgYDFgIGZvciB0aGUgYmFja3JlZmVyZW5jZSBmcm9tIGB0aGluZ3MgYWJvdXQgbWljcm9tYXJrYCB0b1xuICogICAgICBgYnJhdm9gLCBhcyBpdCBpcyB0aGUgZmlyc3QgdXNlZCBkZWZpbml0aW9uLCBhbmQgdGhlIHNlY29uZCBjYWxsIHRvIGl0XG4gKiAgICogIGAxYCBhbmQgYDBgIGZvciB0aGUgYmFja3JlZmVyZW5jZSBmcm9tIGB0aGluZ3MgYWJvdXQgcmVtYXJrYCB0b1xuICogICAgICBgY2hhcmxpZWAsIGFzIGl0IGlzIHRoZSBzZWNvbmQgdXNlZCBkZWZpbml0aW9uXG4gKiBAcGFyYW0ge251bWJlcn0gcmVmZXJlbmNlSW5kZXhcbiAqICAgSW5kZXggb2YgdGhlIGRlZmluaXRpb24gaW4gdGhlIG9yZGVyIHRoYXQgdGhleSBhcmUgZmlyc3QgcmVmZXJlbmNlZCxcbiAqICAgMC1pbmRleGVkLlxuICogQHBhcmFtIHtudW1iZXJ9IHJlcmVmZXJlbmNlSW5kZXhcbiAqICAgSW5kZXggb2YgY2FsbHMgdG8gdGhlIHNhbWUgZGVmaW5pdGlvbiwgMC1pbmRleGVkLlxuICogQHJldHVybnMge0FycmF5PEVsZW1lbnRDb250ZW50PiB8IEVsZW1lbnRDb250ZW50IHwgc3RyaW5nfVxuICogICBDb250ZW50IGZvciB0aGUgYmFja3JlZmVyZW5jZSB3aGVuIGxpbmtpbmcgYmFjayBmcm9tIGRlZmluaXRpb25zIHRvIHRoZWlyXG4gKiAgIHJlZmVyZW5jZS5cbiAqXG4gKiBAY2FsbGJhY2sgRm9vdG5vdGVCYWNrTGFiZWxUZW1wbGF0ZVxuICogICBHZW5lcmF0ZSBhIGJhY2sgbGFiZWwgZHluYW1pY2FsbHkuXG4gKlxuICogICBGb3IgdGhlIGZvbGxvd2luZyBtYXJrZG93bjpcbiAqXG4gKiAgIGBgYG1hcmtkb3duXG4gKiAgIEFscGhhW15taWNyb21hcmtdLCBicmF2b1tebWljcm9tYXJrXSwgYW5kIGNoYXJsaWVbXnJlbWFya10uXG4gKlxuICogICBbXnJlbWFya106IHRoaW5ncyBhYm91dCByZW1hcmtcbiAqICAgW15taWNyb21hcmtdOiB0aGluZ3MgYWJvdXQgbWljcm9tYXJrXG4gKiAgIGBgYFxuICpcbiAqICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aXRoOlxuICpcbiAqICAgKiAgYDBgIGFuZCBgMGAgZm9yIHRoZSBiYWNrcmVmZXJlbmNlIGZyb20gYHRoaW5ncyBhYm91dCBtaWNyb21hcmtgIHRvXG4gKiAgICAgIGBhbHBoYWAsIGFzIGl0IGlzIHRoZSBmaXJzdCB1c2VkIGRlZmluaXRpb24sIGFuZCB0aGUgZmlyc3QgY2FsbCB0byBpdFxuICogICAqICBgMGAgYW5kIGAxYCBmb3IgdGhlIGJhY2tyZWZlcmVuY2UgZnJvbSBgdGhpbmdzIGFib3V0IG1pY3JvbWFya2AgdG9cbiAqICAgICAgYGJyYXZvYCwgYXMgaXQgaXMgdGhlIGZpcnN0IHVzZWQgZGVmaW5pdGlvbiwgYW5kIHRoZSBzZWNvbmQgY2FsbCB0byBpdFxuICogICAqICBgMWAgYW5kIGAwYCBmb3IgdGhlIGJhY2tyZWZlcmVuY2UgZnJvbSBgdGhpbmdzIGFib3V0IHJlbWFya2AgdG9cbiAqICAgICAgYGNoYXJsaWVgLCBhcyBpdCBpcyB0aGUgc2Vjb25kIHVzZWQgZGVmaW5pdGlvblxuICogQHBhcmFtIHtudW1iZXJ9IHJlZmVyZW5jZUluZGV4XG4gKiAgIEluZGV4IG9mIHRoZSBkZWZpbml0aW9uIGluIHRoZSBvcmRlciB0aGF0IHRoZXkgYXJlIGZpcnN0IHJlZmVyZW5jZWQsXG4gKiAgIDAtaW5kZXhlZC5cbiAqIEBwYXJhbSB7bnVtYmVyfSByZXJlZmVyZW5jZUluZGV4XG4gKiAgIEluZGV4IG9mIGNhbGxzIHRvIHRoZSBzYW1lIGRlZmluaXRpb24sIDAtaW5kZXhlZC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEJhY2sgbGFiZWwgdG8gdXNlIHdoZW4gbGlua2luZyBiYWNrIGZyb20gZGVmaW5pdGlvbnMgdG8gdGhlaXIgcmVmZXJlbmNlLlxuICovXG5cbmltcG9ydCBzdHJ1Y3R1cmVkQ2xvbmUgZnJvbSAnQHVuZ2FwL3N0cnVjdHVyZWQtY2xvbmUnXG5pbXBvcnQge25vcm1hbGl6ZVVyaX0gZnJvbSAnbWljcm9tYXJrLXV0aWwtc2FuaXRpemUtdXJpJ1xuXG4vKipcbiAqIEdlbmVyYXRlIHRoZSBkZWZhdWx0IGNvbnRlbnQgdGhhdCBHaXRIdWIgdXNlcyBvbiBiYWNrcmVmZXJlbmNlcy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gX1xuICogICBJbmRleCBvZiB0aGUgZGVmaW5pdGlvbiBpbiB0aGUgb3JkZXIgdGhhdCB0aGV5IGFyZSBmaXJzdCByZWZlcmVuY2VkLFxuICogICAwLWluZGV4ZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gcmVyZWZlcmVuY2VJbmRleFxuICogICBJbmRleCBvZiBjYWxscyB0byB0aGUgc2FtZSBkZWZpbml0aW9uLCAwLWluZGV4ZWQuXG4gKiBAcmV0dXJucyB7QXJyYXk8RWxlbWVudENvbnRlbnQ+fVxuICogICBDb250ZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdEZvb3Rub3RlQmFja0NvbnRlbnQoXywgcmVyZWZlcmVuY2VJbmRleCkge1xuICAvKiogQHR5cGUge0FycmF5PEVsZW1lbnRDb250ZW50Pn0gKi9cbiAgY29uc3QgcmVzdWx0ID0gW3t0eXBlOiAndGV4dCcsIHZhbHVlOiAnXHUyMUE5J31dXG5cbiAgaWYgKHJlcmVmZXJlbmNlSW5kZXggPiAxKSB7XG4gICAgcmVzdWx0LnB1c2goe1xuICAgICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgICAgdGFnTmFtZTogJ3N1cCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgIGNoaWxkcmVuOiBbe3R5cGU6ICd0ZXh0JywgdmFsdWU6IFN0cmluZyhyZXJlZmVyZW5jZUluZGV4KX1dXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSB0aGUgZGVmYXVsdCBsYWJlbCB0aGF0IEdpdEh1YiB1c2VzIG9uIGJhY2tyZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSByZWZlcmVuY2VJbmRleFxuICogICBJbmRleCBvZiB0aGUgZGVmaW5pdGlvbiBpbiB0aGUgb3JkZXIgdGhhdCB0aGV5IGFyZSBmaXJzdCByZWZlcmVuY2VkLFxuICogICAwLWluZGV4ZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gcmVyZWZlcmVuY2VJbmRleFxuICogICBJbmRleCBvZiBjYWxscyB0byB0aGUgc2FtZSBkZWZpbml0aW9uLCAwLWluZGV4ZWQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBMYWJlbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRGb290bm90ZUJhY2tMYWJlbChyZWZlcmVuY2VJbmRleCwgcmVyZWZlcmVuY2VJbmRleCkge1xuICByZXR1cm4gKFxuICAgICdCYWNrIHRvIHJlZmVyZW5jZSAnICtcbiAgICAocmVmZXJlbmNlSW5kZXggKyAxKSArXG4gICAgKHJlcmVmZXJlbmNlSW5kZXggPiAxID8gJy0nICsgcmVyZWZlcmVuY2VJbmRleCA6ICcnKVxuICApXG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBoYXN0IGZvb3RlciBmb3IgY2FsbGVkIGZvb3Rub3RlIGRlZmluaXRpb25zLlxuICpcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEByZXR1cm5zIHtFbGVtZW50IHwgdW5kZWZpbmVkfVxuICogICBgc2VjdGlvbmAgZWxlbWVudCBvciBgdW5kZWZpbmVkYC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmV4cG9ydCBmdW5jdGlvbiBmb290ZXIoc3RhdGUpIHtcbiAgY29uc3QgY2xvYmJlclByZWZpeCA9XG4gICAgdHlwZW9mIHN0YXRlLm9wdGlvbnMuY2xvYmJlclByZWZpeCA9PT0gJ3N0cmluZydcbiAgICAgID8gc3RhdGUub3B0aW9ucy5jbG9iYmVyUHJlZml4XG4gICAgICA6ICd1c2VyLWNvbnRlbnQtJ1xuICBjb25zdCBmb290bm90ZUJhY2tDb250ZW50ID1cbiAgICBzdGF0ZS5vcHRpb25zLmZvb3Rub3RlQmFja0NvbnRlbnQgfHwgZGVmYXVsdEZvb3Rub3RlQmFja0NvbnRlbnRcbiAgY29uc3QgZm9vdG5vdGVCYWNrTGFiZWwgPVxuICAgIHN0YXRlLm9wdGlvbnMuZm9vdG5vdGVCYWNrTGFiZWwgfHwgZGVmYXVsdEZvb3Rub3RlQmFja0xhYmVsXG4gIGNvbnN0IGZvb3Rub3RlTGFiZWwgPSBzdGF0ZS5vcHRpb25zLmZvb3Rub3RlTGFiZWwgfHwgJ0Zvb3Rub3RlcydcbiAgY29uc3QgZm9vdG5vdGVMYWJlbFRhZ05hbWUgPSBzdGF0ZS5vcHRpb25zLmZvb3Rub3RlTGFiZWxUYWdOYW1lIHx8ICdoMidcbiAgY29uc3QgZm9vdG5vdGVMYWJlbFByb3BlcnRpZXMgPSBzdGF0ZS5vcHRpb25zLmZvb3Rub3RlTGFiZWxQcm9wZXJ0aWVzIHx8IHtcbiAgICBjbGFzc05hbWU6IFsnc3Itb25seSddXG4gIH1cbiAgLyoqIEB0eXBlIHtBcnJheTxFbGVtZW50Q29udGVudD59ICovXG4gIGNvbnN0IGxpc3RJdGVtcyA9IFtdXG4gIGxldCByZWZlcmVuY2VJbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsrcmVmZXJlbmNlSW5kZXggPCBzdGF0ZS5mb290bm90ZU9yZGVyLmxlbmd0aCkge1xuICAgIGNvbnN0IGRlZmluaXRpb24gPSBzdGF0ZS5mb290bm90ZUJ5SWQuZ2V0KFxuICAgICAgc3RhdGUuZm9vdG5vdGVPcmRlcltyZWZlcmVuY2VJbmRleF1cbiAgICApXG5cbiAgICBpZiAoIWRlZmluaXRpb24pIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudCA9IHN0YXRlLmFsbChkZWZpbml0aW9uKVxuICAgIGNvbnN0IGlkID0gU3RyaW5nKGRlZmluaXRpb24uaWRlbnRpZmllcikudG9VcHBlckNhc2UoKVxuICAgIGNvbnN0IHNhZmVJZCA9IG5vcm1hbGl6ZVVyaShpZC50b0xvd2VyQ2FzZSgpKVxuICAgIGxldCByZXJlZmVyZW5jZUluZGV4ID0gMFxuICAgIC8qKiBAdHlwZSB7QXJyYXk8RWxlbWVudENvbnRlbnQ+fSAqL1xuICAgIGNvbnN0IGJhY2tSZWZlcmVuY2VzID0gW11cbiAgICBjb25zdCBjb3VudHMgPSBzdGF0ZS5mb290bm90ZUNvdW50cy5nZXQoaWQpXG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5tb2RpZmllZC1sb29wLWNvbmRpdGlvblxuICAgIHdoaWxlIChjb3VudHMgIT09IHVuZGVmaW5lZCAmJiArK3JlcmVmZXJlbmNlSW5kZXggPD0gY291bnRzKSB7XG4gICAgICBpZiAoYmFja1JlZmVyZW5jZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBiYWNrUmVmZXJlbmNlcy5wdXNoKHt0eXBlOiAndGV4dCcsIHZhbHVlOiAnICd9KVxuICAgICAgfVxuXG4gICAgICBsZXQgY2hpbGRyZW4gPVxuICAgICAgICB0eXBlb2YgZm9vdG5vdGVCYWNrQ29udGVudCA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IGZvb3Rub3RlQmFja0NvbnRlbnRcbiAgICAgICAgICA6IGZvb3Rub3RlQmFja0NvbnRlbnQocmVmZXJlbmNlSW5kZXgsIHJlcmVmZXJlbmNlSW5kZXgpXG5cbiAgICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNoaWxkcmVuID0ge3R5cGU6ICd0ZXh0JywgdmFsdWU6IGNoaWxkcmVufVxuICAgICAgfVxuXG4gICAgICBiYWNrUmVmZXJlbmNlcy5wdXNoKHtcbiAgICAgICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgICAgICB0YWdOYW1lOiAnYScsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBocmVmOlxuICAgICAgICAgICAgJyMnICtcbiAgICAgICAgICAgIGNsb2JiZXJQcmVmaXggK1xuICAgICAgICAgICAgJ2ZucmVmLScgK1xuICAgICAgICAgICAgc2FmZUlkICtcbiAgICAgICAgICAgIChyZXJlZmVyZW5jZUluZGV4ID4gMSA/ICctJyArIHJlcmVmZXJlbmNlSW5kZXggOiAnJyksXG4gICAgICAgICAgZGF0YUZvb3Rub3RlQmFja3JlZjogJycsXG4gICAgICAgICAgYXJpYUxhYmVsOlxuICAgICAgICAgICAgdHlwZW9mIGZvb3Rub3RlQmFja0xhYmVsID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICA/IGZvb3Rub3RlQmFja0xhYmVsXG4gICAgICAgICAgICAgIDogZm9vdG5vdGVCYWNrTGFiZWwocmVmZXJlbmNlSW5kZXgsIHJlcmVmZXJlbmNlSW5kZXgpLFxuICAgICAgICAgIGNsYXNzTmFtZTogWydkYXRhLWZvb3Rub3RlLWJhY2tyZWYnXVxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogQXJyYXkuaXNBcnJheShjaGlsZHJlbikgPyBjaGlsZHJlbiA6IFtjaGlsZHJlbl1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgdGFpbCA9IGNvbnRlbnRbY29udGVudC5sZW5ndGggLSAxXVxuXG4gICAgaWYgKHRhaWwgJiYgdGFpbC50eXBlID09PSAnZWxlbWVudCcgJiYgdGFpbC50YWdOYW1lID09PSAncCcpIHtcbiAgICAgIGNvbnN0IHRhaWxUYWlsID0gdGFpbC5jaGlsZHJlblt0YWlsLmNoaWxkcmVuLmxlbmd0aCAtIDFdXG4gICAgICBpZiAodGFpbFRhaWwgJiYgdGFpbFRhaWwudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgIHRhaWxUYWlsLnZhbHVlICs9ICcgJ1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFpbC5jaGlsZHJlbi5wdXNoKHt0eXBlOiAndGV4dCcsIHZhbHVlOiAnICd9KVxuICAgICAgfVxuXG4gICAgICB0YWlsLmNoaWxkcmVuLnB1c2goLi4uYmFja1JlZmVyZW5jZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRlbnQucHVzaCguLi5iYWNrUmVmZXJlbmNlcylcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge0VsZW1lbnR9ICovXG4gICAgY29uc3QgbGlzdEl0ZW0gPSB7XG4gICAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgICB0YWdOYW1lOiAnbGknLFxuICAgICAgcHJvcGVydGllczoge2lkOiBjbG9iYmVyUHJlZml4ICsgJ2ZuLScgKyBzYWZlSWR9LFxuICAgICAgY2hpbGRyZW46IHN0YXRlLndyYXAoY29udGVudCwgdHJ1ZSlcbiAgICB9XG5cbiAgICBzdGF0ZS5wYXRjaChkZWZpbml0aW9uLCBsaXN0SXRlbSlcblxuICAgIGxpc3RJdGVtcy5wdXNoKGxpc3RJdGVtKVxuICB9XG5cbiAgaWYgKGxpc3RJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIHRhZ05hbWU6ICdzZWN0aW9uJyxcbiAgICBwcm9wZXJ0aWVzOiB7ZGF0YUZvb3Rub3RlczogdHJ1ZSwgY2xhc3NOYW1lOiBbJ2Zvb3Rub3RlcyddfSxcbiAgICBjaGlsZHJlbjogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgICAgIHRhZ05hbWU6IGZvb3Rub3RlTGFiZWxUYWdOYW1lLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgLi4uc3RydWN0dXJlZENsb25lKGZvb3Rub3RlTGFiZWxQcm9wZXJ0aWVzKSxcbiAgICAgICAgICBpZDogJ2Zvb3Rub3RlLWxhYmVsJ1xuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogW3t0eXBlOiAndGV4dCcsIHZhbHVlOiBmb290bm90ZUxhYmVsfV1cbiAgICAgIH0sXG4gICAgICB7dHlwZTogJ3RleHQnLCB2YWx1ZTogJ1xcbid9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgICAgIHRhZ05hbWU6ICdvbCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICBjaGlsZHJlbjogc3RhdGUud3JhcChsaXN0SXRlbXMsIHRydWUpXG4gICAgICB9LFxuICAgICAge3R5cGU6ICd0ZXh0JywgdmFsdWU6ICdcXG4nfVxuICAgIF1cbiAgfVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7XG4gKiAgIEVsZW1lbnRDb250ZW50IGFzIEhhc3RFbGVtZW50Q29udGVudCxcbiAqICAgRWxlbWVudCBhcyBIYXN0RWxlbWVudCxcbiAqICAgTm9kZXMgYXMgSGFzdE5vZGVzLFxuICogICBQcm9wZXJ0aWVzIGFzIEhhc3RQcm9wZXJ0aWVzLFxuICogICBSb290Q29udGVudCBhcyBIYXN0Um9vdENvbnRlbnQsXG4gKiAgIFRleHQgYXMgSGFzdFRleHRcbiAqIH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1xuICogICBEZWZpbml0aW9uIGFzIE1kYXN0RGVmaW5pdGlvbixcbiAqICAgRm9vdG5vdGVEZWZpbml0aW9uIGFzIE1kYXN0Rm9vdG5vdGVEZWZpbml0aW9uLFxuICogICBOb2RlcyBhcyBNZGFzdE5vZGVzLFxuICogICBQYXJlbnRzIGFzIE1kYXN0UGFyZW50c1xuICogfSBmcm9tICdtZGFzdCdcbiAqIEBpbXBvcnQge1ZGaWxlfSBmcm9tICd2ZmlsZSdcbiAqIEBpbXBvcnQge1xuICogICBGb290bm90ZUJhY2tDb250ZW50VGVtcGxhdGUsXG4gKiAgIEZvb3Rub3RlQmFja0xhYmVsVGVtcGxhdGVcbiAqIH0gZnJvbSAnLi9mb290ZXIuanMnXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgSGFuZGxlclxuICogICBIYW5kbGUgYSBub2RlLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHthbnl9IG5vZGVcbiAqICAgbWRhc3Qgbm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge01kYXN0UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcmV0dXJucyB7QXJyYXk8SGFzdEVsZW1lbnRDb250ZW50PiB8IEhhc3RFbGVtZW50Q29udGVudCB8IHVuZGVmaW5lZH1cbiAqICAgaGFzdCBub2RlLlxuICpcbiAqIEB0eXBlZGVmIHtQYXJ0aWFsPFJlY29yZDxNZGFzdE5vZGVzWyd0eXBlJ10sIEhhbmRsZXI+Pn0gSGFuZGxlcnNcbiAqICAgSGFuZGxlIG5vZGVzLlxuICpcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FsbG93RGFuZ2Vyb3VzSHRtbD1mYWxzZV1cbiAqICAgV2hldGhlciB0byBwZXJzaXN0IHJhdyBIVE1MIGluIG1hcmtkb3duIGluIHRoZSBoYXN0IHRyZWUgKGRlZmF1bHQ6XG4gKiAgIGBmYWxzZWApLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2xvYmJlclByZWZpeD0ndXNlci1jb250ZW50LSddXG4gKiAgIFByZWZpeCB0byB1c2UgYmVmb3JlIHRoZSBgaWRgIHByb3BlcnR5IG9uIGZvb3Rub3RlcyB0byBwcmV2ZW50IHRoZW0gZnJvbVxuICogICAqY2xvYmJlcmluZyogKGRlZmF1bHQ6IGAndXNlci1jb250ZW50LSdgKS5cbiAqXG4gKiAgIFBhc3MgYCcnYCBmb3IgdHJ1c3RlZCBtYXJrZG93biBhbmQgd2hlbiB5b3UgYXJlIGNhcmVmdWwgd2l0aFxuICogICBwb2x5ZmlsbGluZy5cbiAqICAgWW91IGNvdWxkIHBhc3MgYSBkaWZmZXJlbnQgcHJlZml4LlxuICpcbiAqICAgRE9NIGNsb2JiZXJpbmcgaXMgdGhpczpcbiAqXG4gKiAgIGBgYGh0bWxcbiAqICAgPHAgaWQ9XCJ4XCI+PC9wPlxuICogICA8c2NyaXB0PmFsZXJ0KHgpIC8vIGB4YCBub3cgcmVmZXJzIHRvIHRoZSBgcCN4YCBET00gZWxlbWVudDwvc2NyaXB0PlxuICogICBgYGBcbiAqXG4gKiAgIFRoZSBhYm92ZSBleGFtcGxlIHNob3dzIHRoYXQgZWxlbWVudHMgYXJlIG1hZGUgYXZhaWxhYmxlIGJ5IGJyb3dzZXJzLCBieVxuICogICB0aGVpciBJRCwgb24gdGhlIGB3aW5kb3dgIG9iamVjdC5cbiAqICAgVGhpcyBpcyBhIHNlY3VyaXR5IHJpc2sgYmVjYXVzZSB5b3UgbWlnaHQgYmUgZXhwZWN0aW5nIHNvbWUgb3RoZXIgdmFyaWFibGVcbiAqICAgYXQgdGhhdCBwbGFjZS5cbiAqICAgSXQgY2FuIGFsc28gYnJlYWsgcG9seWZpbGxzLlxuICogICBVc2luZyBhIHByZWZpeCBzb2x2ZXMgdGhlc2UgcHJvYmxlbXMuXG4gKiBAcHJvcGVydHkge1ZGaWxlIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2ZpbGVdXG4gKiAgIENvcnJlc3BvbmRpbmcgdmlydHVhbCBmaWxlIHJlcHJlc2VudGluZyB0aGUgaW5wdXQgZG9jdW1lbnQgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7Rm9vdG5vdGVCYWNrQ29udGVudFRlbXBsYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Zvb3Rub3RlQmFja0NvbnRlbnRdXG4gKiAgIENvbnRlbnQgb2YgdGhlIGJhY2tyZWZlcmVuY2UgYmFjayB0byByZWZlcmVuY2VzIChkZWZhdWx0OiBgZGVmYXVsdEZvb3Rub3RlQmFja0NvbnRlbnRgKS5cbiAqXG4gKiAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzOlxuICpcbiAqICAgYGBganNcbiAqICAgZnVuY3Rpb24gZGVmYXVsdEZvb3Rub3RlQmFja0NvbnRlbnQoXywgcmVyZWZlcmVuY2VJbmRleCkge1xuICogICAgIGNvbnN0IHJlc3VsdCA9IFt7dHlwZTogJ3RleHQnLCB2YWx1ZTogJ1x1MjFBOSd9XVxuICpcbiAqICAgICBpZiAocmVyZWZlcmVuY2VJbmRleCA+IDEpIHtcbiAqICAgICAgIHJlc3VsdC5wdXNoKHtcbiAqICAgICAgICAgdHlwZTogJ2VsZW1lbnQnLFxuICogICAgICAgICB0YWdOYW1lOiAnc3VwJyxcbiAqICAgICAgICAgcHJvcGVydGllczoge30sXG4gKiAgICAgICAgIGNoaWxkcmVuOiBbe3R5cGU6ICd0ZXh0JywgdmFsdWU6IFN0cmluZyhyZXJlZmVyZW5jZUluZGV4KX1dXG4gKiAgICAgICB9KVxuICogICAgIH1cbiAqXG4gKiAgICAgcmV0dXJuIHJlc3VsdFxuICogICB9XG4gKiAgIGBgYFxuICpcbiAqICAgVGhpcyBjb250ZW50IGlzIHVzZWQgaW4gdGhlIGBhYCBlbGVtZW50IG9mIGVhY2ggYmFja3JlZmVyZW5jZSAodGhlIGBcdTIxQTlgXG4gKiAgIGxpbmtzKS5cbiAqIEBwcm9wZXJ0eSB7Rm9vdG5vdGVCYWNrTGFiZWxUZW1wbGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtmb290bm90ZUJhY2tMYWJlbF1cbiAqICAgTGFiZWwgdG8gZGVzY3JpYmUgdGhlIGJhY2tyZWZlcmVuY2UgYmFjayB0byByZWZlcmVuY2VzIChkZWZhdWx0OlxuICogICBgZGVmYXVsdEZvb3Rub3RlQmFja0xhYmVsYCkuXG4gKlxuICogICBUaGUgZGVmYXVsdCB2YWx1ZSBpczpcbiAqXG4gKiAgIGBgYGpzXG4gKiAgIGZ1bmN0aW9uIGRlZmF1bHRGb290bm90ZUJhY2tMYWJlbChyZWZlcmVuY2VJbmRleCwgcmVyZWZlcmVuY2VJbmRleCkge1xuICogICAgcmV0dXJuIChcbiAqICAgICAgJ0JhY2sgdG8gcmVmZXJlbmNlICcgK1xuICogICAgICAocmVmZXJlbmNlSW5kZXggKyAxKSArXG4gKiAgICAgIChyZXJlZmVyZW5jZUluZGV4ID4gMSA/ICctJyArIHJlcmVmZXJlbmNlSW5kZXggOiAnJylcbiAqICAgIClcbiAqICAgfVxuICogICBgYGBcbiAqXG4gKiAgIENoYW5nZSBpdCB3aGVuIHRoZSBtYXJrZG93biBpcyBub3QgaW4gRW5nbGlzaC5cbiAqXG4gKiAgIFRoaXMgbGFiZWwgaXMgdXNlZCBpbiB0aGUgYGFyaWFMYWJlbGAgcHJvcGVydHkgb24gZWFjaCBiYWNrcmVmZXJlbmNlXG4gKiAgICh0aGUgYFx1MjFBOWAgbGlua3MpLlxuICogICBJdCBhZmZlY3RzIHVzZXJzIG9mIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbZm9vdG5vdGVMYWJlbD0nRm9vdG5vdGVzJ11cbiAqICAgVGV4dHVhbCBsYWJlbCB0byB1c2UgZm9yIHRoZSBmb290bm90ZXMgc2VjdGlvbiAoZGVmYXVsdDogYCdGb290bm90ZXMnYCkuXG4gKlxuICogICBDaGFuZ2UgaXQgd2hlbiB0aGUgbWFya2Rvd24gaXMgbm90IGluIEVuZ2xpc2guXG4gKlxuICogICBUaGlzIGxhYmVsIGlzIHR5cGljYWxseSBoaWRkZW4gdmlzdWFsbHkgKGFzc3VtaW5nIGEgYHNyLW9ubHlgIENTUyBjbGFzc1xuICogICBpcyBkZWZpbmVkIHRoYXQgZG9lcyB0aGF0KSBhbmQgc28gYWZmZWN0cyBzY3JlZW4gcmVhZGVycyBvbmx5LlxuICogICBJZiB5b3UgZG8gaGF2ZSBzdWNoIGEgY2xhc3MsIGJ1dCB3YW50IHRvIHNob3cgdGhpcyBzZWN0aW9uIHRvIGV2ZXJ5b25lLFxuICogICBwYXNzIGRpZmZlcmVudCBwcm9wZXJ0aWVzIHdpdGggdGhlIGBmb290bm90ZUxhYmVsUHJvcGVydGllc2Agb3B0aW9uLlxuICogQHByb3BlcnR5IHtIYXN0UHJvcGVydGllcyB8IG51bGwgfCB1bmRlZmluZWR9IFtmb290bm90ZUxhYmVsUHJvcGVydGllcz17Y2xhc3NOYW1lOiBbJ3NyLW9ubHknXX1dXG4gKiAgIFByb3BlcnRpZXMgdG8gdXNlIG9uIHRoZSBmb290bm90ZSBsYWJlbCAoZGVmYXVsdDogYHtjbGFzc05hbWU6XG4gKiAgIFsnc3Itb25seSddfWApLlxuICpcbiAqICAgQ2hhbmdlIGl0IHRvIHNob3cgdGhlIGxhYmVsIGFuZCBhZGQgb3RoZXIgcHJvcGVydGllcy5cbiAqXG4gKiAgIFRoaXMgbGFiZWwgaXMgdHlwaWNhbGx5IGhpZGRlbiB2aXN1YWxseSAoYXNzdW1pbmcgYW4gYHNyLW9ubHlgIENTUyBjbGFzc1xuICogICBpcyBkZWZpbmVkIHRoYXQgZG9lcyB0aGF0KSBhbmQgc28gYWZmZWN0cyBzY3JlZW4gcmVhZGVycyBvbmx5LlxuICogICBJZiB5b3UgZG8gaGF2ZSBzdWNoIGEgY2xhc3MsIGJ1dCB3YW50IHRvIHNob3cgdGhpcyBzZWN0aW9uIHRvIGV2ZXJ5b25lLFxuICogICBwYXNzIGFuIGVtcHR5IHN0cmluZy5cbiAqICAgWW91IGNhbiBhbHNvIGFkZCBkaWZmZXJlbnQgcHJvcGVydGllcy5cbiAqXG4gKiAgID4gKipOb3RlKio6IGBpZDogJ2Zvb3Rub3RlLWxhYmVsJ2AgaXMgYWx3YXlzIGFkZGVkLCBiZWNhdXNlIGZvb3Rub3RlXG4gKiAgID4gY2FsbHMgdXNlIGl0IHdpdGggYGFyaWEtZGVzY3JpYmVkYnlgIHRvIHByb3ZpZGUgYW4gYWNjZXNzaWJsZSBsYWJlbC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Zvb3Rub3RlTGFiZWxUYWdOYW1lPSdoMiddXG4gKiAgIEhUTUwgdGFnIG5hbWUgdG8gdXNlIGZvciB0aGUgZm9vdG5vdGUgbGFiZWwgZWxlbWVudCAoZGVmYXVsdDogYCdoMidgKS5cbiAqXG4gKiAgIENoYW5nZSBpdCB0byBtYXRjaCB5b3VyIGRvY3VtZW50IHN0cnVjdHVyZS5cbiAqXG4gKiAgIFRoaXMgbGFiZWwgaXMgdHlwaWNhbGx5IGhpZGRlbiB2aXN1YWxseSAoYXNzdW1pbmcgYSBgc3Itb25seWAgQ1NTIGNsYXNzXG4gKiAgIGlzIGRlZmluZWQgdGhhdCBkb2VzIHRoYXQpIGFuZCBzbyBhZmZlY3RzIHNjcmVlbiByZWFkZXJzIG9ubHkuXG4gKiAgIElmIHlvdSBkbyBoYXZlIHN1Y2ggYSBjbGFzcywgYnV0IHdhbnQgdG8gc2hvdyB0aGlzIHNlY3Rpb24gdG8gZXZlcnlvbmUsXG4gKiAgIHBhc3MgZGlmZmVyZW50IHByb3BlcnRpZXMgd2l0aCB0aGUgYGZvb3Rub3RlTGFiZWxQcm9wZXJ0aWVzYCBvcHRpb24uXG4gKiBAcHJvcGVydHkge0hhbmRsZXJzIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2hhbmRsZXJzXVxuICogICBFeHRyYSBoYW5kbGVycyBmb3Igbm9kZXMgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8TWRhc3ROb2Rlc1sndHlwZSddPiB8IG51bGwgfCB1bmRlZmluZWR9IFtwYXNzVGhyb3VnaF1cbiAqICAgTGlzdCBvZiBjdXN0b20gbWRhc3Qgbm9kZSB0eXBlcyB0byBwYXNzIHRocm91Z2ggKGtlZXApIGluIGhhc3QgKG5vdGUgdGhhdFxuICogICB0aGUgbm9kZSBpdHNlbGYgaXMgcGFzc2VkLCBidXQgZXZlbnR1YWwgY2hpbGRyZW4gYXJlIHRyYW5zZm9ybWVkKVxuICogICAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHtIYW5kbGVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Vua25vd25IYW5kbGVyXVxuICogICBIYW5kbGVyIGZvciBhbGwgdW5rbm93biBub2RlcyAob3B0aW9uYWwpLlxuICpcbiAqIEB0eXBlZGVmIFN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZC5cbiAqIEBwcm9wZXJ0eSB7KG5vZGU6IE1kYXN0Tm9kZXMpID0+IEFycmF5PEhhc3RFbGVtZW50Q29udGVudD59IGFsbFxuICogICBUcmFuc2Zvcm0gdGhlIGNoaWxkcmVuIG9mIGFuIG1kYXN0IHBhcmVudCB0byBoYXN0LlxuICogQHByb3BlcnR5IHs8VHlwZSBleHRlbmRzIEhhc3ROb2Rlcz4oZnJvbTogTWRhc3ROb2RlcywgdG86IFR5cGUpID0+IEhhc3RFbGVtZW50IHwgVHlwZX0gYXBwbHlEYXRhXG4gKiAgIEhvbm9yIHRoZSBgZGF0YWAgb2YgYGZyb21gLCBhbmQgZ2VuZXJhdGUgYW4gZWxlbWVudCBpbnN0ZWFkIG9mIGBub2RlYC5cbiAqIEBwcm9wZXJ0eSB7TWFwPHN0cmluZywgTWRhc3REZWZpbml0aW9uPn0gZGVmaW5pdGlvbkJ5SWRcbiAqICAgRGVmaW5pdGlvbnMgYnkgdGhlaXIgaWRlbnRpZmllci5cbiAqIEBwcm9wZXJ0eSB7TWFwPHN0cmluZywgTWRhc3RGb290bm90ZURlZmluaXRpb24+fSBmb290bm90ZUJ5SWRcbiAqICAgRm9vdG5vdGUgZGVmaW5pdGlvbnMgYnkgdGhlaXIgaWRlbnRpZmllci5cbiAqIEBwcm9wZXJ0eSB7TWFwPHN0cmluZywgbnVtYmVyPn0gZm9vdG5vdGVDb3VudHNcbiAqICAgQ291bnRzIGZvciBob3cgb2Z0ZW4gdGhlIHNhbWUgZm9vdG5vdGUgd2FzIGNhbGxlZC5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gZm9vdG5vdGVPcmRlclxuICogICBJZGVudGlmaWVycyBvZiBvcmRlciB3aGVuIGZvb3Rub3RlIGNhbGxzIGZpcnN0IGFwcGVhciBpbiB0cmVlIG9yZGVyLlxuICogQHByb3BlcnR5IHtIYW5kbGVyc30gaGFuZGxlcnNcbiAqICAgQXBwbGllZCBoYW5kbGVycy5cbiAqIEBwcm9wZXJ0eSB7KG5vZGU6IE1kYXN0Tm9kZXMsIHBhcmVudDogTWRhc3RQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBBcnJheTxIYXN0RWxlbWVudENvbnRlbnQ+IHwgSGFzdEVsZW1lbnRDb250ZW50IHwgdW5kZWZpbmVkfSBvbmVcbiAqICAgVHJhbnNmb3JtIGFuIG1kYXN0IG5vZGUgdG8gaGFzdC5cbiAqIEBwcm9wZXJ0eSB7T3B0aW9uc30gb3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHsoZnJvbTogTWRhc3ROb2Rlcywgbm9kZTogSGFzdE5vZGVzKSA9PiB1bmRlZmluZWR9IHBhdGNoXG4gKiAgIENvcHkgYSBub2RlXHUyMDE5cyBwb3NpdGlvbmFsIGluZm8uXG4gKiBAcHJvcGVydHkgezxUeXBlIGV4dGVuZHMgSGFzdFJvb3RDb250ZW50Pihub2RlczogQXJyYXk8VHlwZT4sIGxvb3NlPzogYm9vbGVhbiB8IHVuZGVmaW5lZCkgPT4gQXJyYXk8SGFzdFRleHQgfCBUeXBlPn0gd3JhcFxuICogICBXcmFwIGBub2Rlc2Agd2l0aCBsaW5lIGVuZGluZ3MgYmV0d2VlbiBlYWNoIG5vZGUsIGFkZHMgaW5pdGlhbC9maW5hbCBsaW5lIGVuZGluZ3Mgd2hlbiBgbG9vc2VgLlxuICovXG5cbmltcG9ydCBzdHJ1Y3R1cmVkQ2xvbmUgZnJvbSAnQHVuZ2FwL3N0cnVjdHVyZWQtY2xvbmUnXG5pbXBvcnQge3Zpc2l0fSBmcm9tICd1bmlzdC11dGlsLXZpc2l0J1xuaW1wb3J0IHtwb3NpdGlvbn0gZnJvbSAndW5pc3QtdXRpbC1wb3NpdGlvbidcbmltcG9ydCB7aGFuZGxlcnMgYXMgZGVmYXVsdEhhbmRsZXJzfSBmcm9tICcuL2hhbmRsZXJzL2luZGV4LmpzJ1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKiogQHR5cGUge09wdGlvbnN9ICovXG5jb25zdCBlbXB0eU9wdGlvbnMgPSB7fVxuXG4vKipcbiAqIENyZWF0ZSBgc3RhdGVgIGZyb20gYW4gbWRhc3QgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge01kYXN0Tm9kZXN9IHRyZWVcbiAqICAgbWRhc3Qgbm9kZSB0byB0cmFuc2Zvcm0uXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge1N0YXRlfVxuICogICBgc3RhdGVgIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RhdGUodHJlZSwgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwgZW1wdHlPcHRpb25zXG4gIC8qKiBAdHlwZSB7TWFwPHN0cmluZywgTWRhc3REZWZpbml0aW9uPn0gKi9cbiAgY29uc3QgZGVmaW5pdGlvbkJ5SWQgPSBuZXcgTWFwKClcbiAgLyoqIEB0eXBlIHtNYXA8c3RyaW5nLCBNZGFzdEZvb3Rub3RlRGVmaW5pdGlvbj59ICovXG4gIGNvbnN0IGZvb3Rub3RlQnlJZCA9IG5ldyBNYXAoKVxuICAvKiogQHR5cGUge01hcDxzdHJpbmcsIG51bWJlcj59ICovXG4gIGNvbnN0IGZvb3Rub3RlQ291bnRzID0gbmV3IE1hcCgpXG4gIC8qKiBAdHlwZSB7SGFuZGxlcnN9ICovXG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRoZSByb290IGhhbmRsZXIgcmV0dXJucyBhIHJvb3QuXG4gIC8vIEhhcmQgdG8gdHlwZS5cbiAgY29uc3QgaGFuZGxlcnMgPSB7Li4uZGVmYXVsdEhhbmRsZXJzLCAuLi5zZXR0aW5ncy5oYW5kbGVyc31cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBjb25zdCBzdGF0ZSA9IHtcbiAgICBhbGwsXG4gICAgYXBwbHlEYXRhLFxuICAgIGRlZmluaXRpb25CeUlkLFxuICAgIGZvb3Rub3RlQnlJZCxcbiAgICBmb290bm90ZUNvdW50cyxcbiAgICBmb290bm90ZU9yZGVyOiBbXSxcbiAgICBoYW5kbGVycyxcbiAgICBvbmUsXG4gICAgb3B0aW9uczogc2V0dGluZ3MsXG4gICAgcGF0Y2gsXG4gICAgd3JhcFxuICB9XG5cbiAgdmlzaXQodHJlZSwgZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBpZiAobm9kZS50eXBlID09PSAnZGVmaW5pdGlvbicgfHwgbm9kZS50eXBlID09PSAnZm9vdG5vdGVEZWZpbml0aW9uJykge1xuICAgICAgY29uc3QgbWFwID0gbm9kZS50eXBlID09PSAnZGVmaW5pdGlvbicgPyBkZWZpbml0aW9uQnlJZCA6IGZvb3Rub3RlQnlJZFxuICAgICAgY29uc3QgaWQgPSBTdHJpbmcobm9kZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpXG5cbiAgICAgIC8vIE1pbWljayBDTSBiZWhhdmlvciBvZiBsaW5rIGRlZmluaXRpb25zLlxuICAgICAgLy8gU2VlOiA8aHR0cHM6Ly9naXRodWIuY29tL3N5bnRheC10cmVlL21kYXN0LXV0aWwtZGVmaW5pdGlvbnMvYmxvYi85MDMyMTg5L2xpYi9pbmRleC5qcyNMMjAtTDIxPi5cbiAgICAgIGlmICghbWFwLmhhcyhpZCkpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbm9kZSB0eXBlIG1hdGNoZXMgbWFwLlxuICAgICAgICBtYXAuc2V0KGlkLCBub2RlKVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gc3RhdGVcblxuICAvKipcbiAgICogVHJhbnNmb3JtIGFuIG1kYXN0IG5vZGUgaW50byBhIGhhc3Qgbm9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtNZGFzdE5vZGVzfSBub2RlXG4gICAqICAgbWRhc3Qgbm9kZS5cbiAgICogQHBhcmFtIHtNZGFzdFBhcmVudHMgfCB1bmRlZmluZWR9IFtwYXJlbnRdXG4gICAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAgICogQHJldHVybnMge0FycmF5PEhhc3RFbGVtZW50Q29udGVudD4gfCBIYXN0RWxlbWVudENvbnRlbnQgfCB1bmRlZmluZWR9XG4gICAqICAgUmVzdWx0aW5nIGhhc3Qgbm9kZS5cbiAgICovXG4gIGZ1bmN0aW9uIG9uZShub2RlLCBwYXJlbnQpIHtcbiAgICBjb25zdCB0eXBlID0gbm9kZS50eXBlXG4gICAgY29uc3QgaGFuZGxlID0gc3RhdGUuaGFuZGxlcnNbdHlwZV1cblxuICAgIGlmIChvd24uY2FsbChzdGF0ZS5oYW5kbGVycywgdHlwZSkgJiYgaGFuZGxlKSB7XG4gICAgICByZXR1cm4gaGFuZGxlKHN0YXRlLCBub2RlLCBwYXJlbnQpXG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLm9wdGlvbnMucGFzc1Rocm91Z2ggJiYgc3RhdGUub3B0aW9ucy5wYXNzVGhyb3VnaC5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgaWYgKCdjaGlsZHJlbicgaW4gbm9kZSkge1xuICAgICAgICBjb25zdCB7Y2hpbGRyZW4sIC4uLnNoYWxsb3d9ID0gbm9kZVxuICAgICAgICBjb25zdCByZXN1bHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoc2hhbGxvdylcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgZG9lc25cdTIwMTl0IHVuZGVyc3RhbmRcdTIwMjZcbiAgICAgICAgcmVzdWx0LmNoaWxkcmVuID0gc3RhdGUuYWxsKG5vZGUpXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFRTIGRvZXNuXHUyMDE5dCB1bmRlcnN0YW5kXHUyMDI2XG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH1cblxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogaXRcdTIwMTlzIGN1c3RvbS5cbiAgICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUobm9kZSlcbiAgICB9XG5cbiAgICBjb25zdCB1bmtub3duID0gc3RhdGUub3B0aW9ucy51bmtub3duSGFuZGxlciB8fCBkZWZhdWx0VW5rbm93bkhhbmRsZXJcblxuICAgIHJldHVybiB1bmtub3duKHN0YXRlLCBub2RlLCBwYXJlbnQpXG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHRoZSBjaGlsZHJlbiBvZiBhbiBtZGFzdCBub2RlIGludG8gaGFzdCBub2Rlcy5cbiAgICpcbiAgICogQHBhcmFtIHtNZGFzdE5vZGVzfSBwYXJlbnRcbiAgICogICBtZGFzdCBub2RlIHRvIGNvbXBpbGVcbiAgICogQHJldHVybnMge0FycmF5PEhhc3RFbGVtZW50Q29udGVudD59XG4gICAqICAgUmVzdWx0aW5nIGhhc3Qgbm9kZXMuXG4gICAqL1xuICBmdW5jdGlvbiBhbGwocGFyZW50KSB7XG4gICAgLyoqIEB0eXBlIHtBcnJheTxIYXN0RWxlbWVudENvbnRlbnQ+fSAqL1xuICAgIGNvbnN0IHZhbHVlcyA9IFtdXG5cbiAgICBpZiAoJ2NoaWxkcmVuJyBpbiBwYXJlbnQpIHtcbiAgICAgIGNvbnN0IG5vZGVzID0gcGFyZW50LmNoaWxkcmVuXG4gICAgICBsZXQgaW5kZXggPSAtMVxuICAgICAgd2hpbGUgKCsraW5kZXggPCBub2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc3RhdGUub25lKG5vZGVzW2luZGV4XSwgcGFyZW50KVxuXG4gICAgICAgIC8vIFRvIGRvOiBzZWUgaWYgd2UgdmFuIGNsZWFuIHRoaXM/IENhbiB3ZSBtZXJnZSB0ZXh0cz9cbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIGlmIChpbmRleCAmJiBub2Rlc1tpbmRleCAtIDFdLnR5cGUgPT09ICdicmVhaycpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZXN1bHQpICYmIHJlc3VsdC50eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgICAgICAgcmVzdWx0LnZhbHVlID0gdHJpbU1hcmtkb3duU3BhY2VTdGFydChyZXN1bHQudmFsdWUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZXN1bHQpICYmIHJlc3VsdC50eXBlID09PSAnZWxlbWVudCcpIHtcbiAgICAgICAgICAgICAgY29uc3QgaGVhZCA9IHJlc3VsdC5jaGlsZHJlblswXVxuXG4gICAgICAgICAgICAgIGlmIChoZWFkICYmIGhlYWQudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICAgICAgaGVhZC52YWx1ZSA9IHRyaW1NYXJrZG93blNwYWNlU3RhcnQoaGVhZC52YWx1ZSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKC4uLnJlc3VsdClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2gocmVzdWx0KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZXNcbiAgfVxufVxuXG4vKipcbiAqIENvcHkgYSBub2RlXHUyMDE5cyBwb3NpdGlvbmFsIGluZm8uXG4gKlxuICogQHBhcmFtIHtNZGFzdE5vZGVzfSBmcm9tXG4gKiAgIG1kYXN0IG5vZGUgdG8gY29weSBmcm9tLlxuICogQHBhcmFtIHtIYXN0Tm9kZXN9IHRvXG4gKiAgIGhhc3Qgbm9kZSB0byBjb3B5IGludG8uXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBwYXRjaChmcm9tLCB0bykge1xuICBpZiAoZnJvbS5wb3NpdGlvbikgdG8ucG9zaXRpb24gPSBwb3NpdGlvbihmcm9tKVxufVxuXG4vKipcbiAqIEhvbm9yIHRoZSBgZGF0YWAgb2YgYGZyb21gIGFuZCBtYXliZSBnZW5lcmF0ZSBhbiBlbGVtZW50IGluc3RlYWQgb2YgYHRvYC5cbiAqXG4gKiBAdGVtcGxhdGUge0hhc3ROb2Rlc30gVHlwZVxuICogICBOb2RlIHR5cGUuXG4gKiBAcGFyYW0ge01kYXN0Tm9kZXN9IGZyb21cbiAqICAgbWRhc3Qgbm9kZSB0byB1c2UgZGF0YSBmcm9tLlxuICogQHBhcmFtIHtUeXBlfSB0b1xuICogICBoYXN0IG5vZGUgdG8gY2hhbmdlLlxuICogQHJldHVybnMge0hhc3RFbGVtZW50IHwgVHlwZX1cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXBwbHlEYXRhKGZyb20sIHRvKSB7XG4gIC8qKiBAdHlwZSB7SGFzdEVsZW1lbnQgfCBUeXBlfSAqL1xuICBsZXQgcmVzdWx0ID0gdG9cblxuICAvLyBIYW5kbGUgYGRhdGEuaE5hbWVgLCBgZGF0YS5oUHJvcGVydGllcywgYGRhdGEuaENoaWxkcmVuYC5cbiAgaWYgKGZyb20gJiYgZnJvbS5kYXRhKSB7XG4gICAgY29uc3QgaE5hbWUgPSBmcm9tLmRhdGEuaE5hbWVcbiAgICBjb25zdCBoQ2hpbGRyZW4gPSBmcm9tLmRhdGEuaENoaWxkcmVuXG4gICAgY29uc3QgaFByb3BlcnRpZXMgPSBmcm9tLmRhdGEuaFByb3BlcnRpZXNcblxuICAgIGlmICh0eXBlb2YgaE5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBUcmFuc2Zvcm1pbmcgdGhlIG5vZGUgcmVzdWx0ZWQgaW4gYW4gZWxlbWVudCB3aXRoIGEgZGlmZmVyZW50IG5hbWVcbiAgICAgIC8vIHRoYW4gd2FudGVkOlxuICAgICAgaWYgKHJlc3VsdC50eXBlID09PSAnZWxlbWVudCcpIHtcbiAgICAgICAgcmVzdWx0LnRhZ05hbWUgPSBoTmFtZVxuICAgICAgfVxuICAgICAgLy8gVHJhbnNmb3JtaW5nIHRoZSBub2RlIHJlc3VsdGVkIGluIGEgbm9uLWVsZW1lbnQsIHdoaWNoIGhhcHBlbnMgZm9yXG4gICAgICAvLyByYXcsIHRleHQsIGFuZCByb290IG5vZGVzICh1bmxlc3MgY3VzdG9tIGhhbmRsZXJzIGFyZSBwYXNzZWQpLlxuICAgICAgLy8gVGhlIGludGVudCBvZiBgaE5hbWVgIGlzIHRvIGNyZWF0ZSBhbiBlbGVtZW50LCBidXQgbGlrZWx5IGFsc28gdG8ga2VlcFxuICAgICAgLy8gdGhlIGNvbnRlbnQgYXJvdW5kIChvdGhlcndpc2U6IHBhc3MgYGhDaGlsZHJlbmApLlxuICAgICAgZWxzZSB7XG4gICAgICAgIC8qKiBAdHlwZSB7QXJyYXk8SGFzdEVsZW1lbnRDb250ZW50Pn0gKi9cbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogYXNzdW1lIG5vIGRvY3R5cGVzIGluIGByb290YC5cbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSAnY2hpbGRyZW4nIGluIHJlc3VsdCA/IHJlc3VsdC5jaGlsZHJlbiA6IFtyZXN1bHRdXG4gICAgICAgIHJlc3VsdCA9IHt0eXBlOiAnZWxlbWVudCcsIHRhZ05hbWU6IGhOYW1lLCBwcm9wZXJ0aWVzOiB7fSwgY2hpbGRyZW59XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdC50eXBlID09PSAnZWxlbWVudCcgJiYgaFByb3BlcnRpZXMpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LnByb3BlcnRpZXMsIHN0cnVjdHVyZWRDbG9uZShoUHJvcGVydGllcykpXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgJ2NoaWxkcmVuJyBpbiByZXN1bHQgJiZcbiAgICAgIHJlc3VsdC5jaGlsZHJlbiAmJlxuICAgICAgaENoaWxkcmVuICE9PSBudWxsICYmXG4gICAgICBoQ2hpbGRyZW4gIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgcmVzdWx0LmNoaWxkcmVuID0gaENoaWxkcmVuXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhbiB1bmtub3duIG5vZGUuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kLlxuICogQHBhcmFtIHtNZGFzdE5vZGVzfSBub2RlXG4gKiAgIFVua25vd24gbWRhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHtIYXN0RWxlbWVudCB8IEhhc3RUZXh0fVxuICogICBSZXN1bHRpbmcgaGFzdCBub2RlLlxuICovXG5mdW5jdGlvbiBkZWZhdWx0VW5rbm93bkhhbmRsZXIoc3RhdGUsIG5vZGUpIHtcbiAgY29uc3QgZGF0YSA9IG5vZGUuZGF0YSB8fCB7fVxuICAvKiogQHR5cGUge0hhc3RFbGVtZW50IHwgSGFzdFRleHR9ICovXG4gIGNvbnN0IHJlc3VsdCA9XG4gICAgJ3ZhbHVlJyBpbiBub2RlICYmXG4gICAgIShvd24uY2FsbChkYXRhLCAnaFByb3BlcnRpZXMnKSB8fCBvd24uY2FsbChkYXRhLCAnaENoaWxkcmVuJykpXG4gICAgICA/IHt0eXBlOiAndGV4dCcsIHZhbHVlOiBub2RlLnZhbHVlfVxuICAgICAgOiB7XG4gICAgICAgICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgICAgICAgIHRhZ05hbWU6ICdkaXYnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgIGNoaWxkcmVuOiBzdGF0ZS5hbGwobm9kZSlcbiAgICAgICAgfVxuXG4gIHN0YXRlLnBhdGNoKG5vZGUsIHJlc3VsdClcbiAgcmV0dXJuIHN0YXRlLmFwcGx5RGF0YShub2RlLCByZXN1bHQpXG59XG5cbi8qKlxuICogV3JhcCBgbm9kZXNgIHdpdGggbGluZSBlbmRpbmdzIGJldHdlZW4gZWFjaCBub2RlLlxuICpcbiAqIEB0ZW1wbGF0ZSB7SGFzdFJvb3RDb250ZW50fSBUeXBlXG4gKiAgIE5vZGUgdHlwZS5cbiAqIEBwYXJhbSB7QXJyYXk8VHlwZT59IG5vZGVzXG4gKiAgIExpc3Qgb2Ygbm9kZXMgdG8gd3JhcC5cbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gW2xvb3NlPWZhbHNlXVxuICogICBXaGV0aGVyIHRvIGFkZCBsaW5lIGVuZGluZ3MgYXQgc3RhcnQgYW5kIGVuZCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKiBAcmV0dXJucyB7QXJyYXk8SGFzdFRleHQgfCBUeXBlPn1cbiAqICAgV3JhcHBlZCBub2Rlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXAobm9kZXMsIGxvb3NlKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8SGFzdFRleHQgfCBUeXBlPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgbGV0IGluZGV4ID0gLTFcblxuICBpZiAobG9vc2UpIHtcbiAgICByZXN1bHQucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogJ1xcbid9KVxuICB9XG5cbiAgd2hpbGUgKCsraW5kZXggPCBub2Rlcy5sZW5ndGgpIHtcbiAgICBpZiAoaW5kZXgpIHJlc3VsdC5wdXNoKHt0eXBlOiAndGV4dCcsIHZhbHVlOiAnXFxuJ30pXG4gICAgcmVzdWx0LnB1c2gobm9kZXNbaW5kZXhdKVxuICB9XG5cbiAgaWYgKGxvb3NlICYmIG5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICByZXN1bHQucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogJ1xcbid9KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFRyaW0gc3BhY2VzIGFuZCB0YWJzIGF0IHRoZSBzdGFydCBvZiBgdmFsdWVgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byB0cmltLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgUmVzdWx0LlxuICovXG5mdW5jdGlvbiB0cmltTWFya2Rvd25TcGFjZVN0YXJ0KHZhbHVlKSB7XG4gIGxldCBpbmRleCA9IDBcbiAgbGV0IGNvZGUgPSB2YWx1ZS5jaGFyQ29kZUF0KGluZGV4KVxuXG4gIHdoaWxlIChjb2RlID09PSA5IHx8IGNvZGUgPT09IDMyKSB7XG4gICAgaW5kZXgrK1xuICAgIGNvZGUgPSB2YWx1ZS5jaGFyQ29kZUF0KGluZGV4KVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlLnNsaWNlKGluZGV4KVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7Tm9kZXMgYXMgSGFzdE5vZGVzfSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7Tm9kZXMgYXMgTWRhc3ROb2Rlc30gZnJvbSAnbWRhc3QnXG4gKiBAaW1wb3J0IHtPcHRpb25zfSBmcm9tICcuL3N0YXRlLmpzJ1xuICovXG5cbmltcG9ydCB7b2sgYXMgYXNzZXJ0fSBmcm9tICdkZXZsb3AnXG5pbXBvcnQge2Zvb3Rlcn0gZnJvbSAnLi9mb290ZXIuanMnXG5pbXBvcnQge2NyZWF0ZVN0YXRlfSBmcm9tICcuL3N0YXRlLmpzJ1xuXG4vKipcbiAqIFRyYW5zZm9ybSBtZGFzdCB0byBoYXN0LlxuICpcbiAqICMjIyMjIE5vdGVzXG4gKlxuICogIyMjIyMjIEhUTUxcbiAqXG4gKiBSYXcgSFRNTCBpcyBhdmFpbGFibGUgaW4gbWRhc3QgYXMgYGh0bWxgIG5vZGVzIGFuZCBjYW4gYmUgZW1iZWRkZWQgaW4gaGFzdFxuICogYXMgc2VtaXN0YW5kYXJkIGByYXdgIG5vZGVzLlxuICogTW9zdCB1dGlsaXRpZXMgaWdub3JlIGByYXdgIG5vZGVzIGJ1dCB0d28gbm90YWJsZSBvbmVzIGRvblx1MjAxOXQ6XG4gKlxuICogKiAgIGBoYXN0LXV0aWwtdG8taHRtbGAgYWxzbyBoYXMgYW4gb3B0aW9uIGBhbGxvd0Rhbmdlcm91c0h0bWxgIHdoaWNoIHdpbGxcbiAqICAgICBvdXRwdXQgdGhlIHJhdyBIVE1MLlxuICogICAgIFRoaXMgaXMgdHlwaWNhbGx5IGRpc2NvdXJhZ2VkIGFzIG5vdGVkIGJ5IHRoZSBvcHRpb24gbmFtZSBidXQgaXMgdXNlZnVsXG4gKiAgICAgaWYgeW91IGNvbXBsZXRlbHkgdHJ1c3QgYXV0aG9yc1xuICogKiAgIGBoYXN0LXV0aWwtcmF3YCBjYW4gaGFuZGxlIHRoZSByYXcgZW1iZWRkZWQgSFRNTCBzdHJpbmdzIGJ5IHBhcnNpbmcgdGhlbVxuICogICAgIGludG8gc3RhbmRhcmQgaGFzdCBub2RlcyAoYGVsZW1lbnRgLCBgdGV4dGAsIGV0YykuXG4gKiAgICAgVGhpcyBpcyBhIGhlYXZ5IHRhc2sgYXMgaXQgbmVlZHMgYSBmdWxsIEhUTUwgcGFyc2VyLCBidXQgaXQgaXMgdGhlIG9ubHlcbiAqICAgICB3YXkgdG8gc3VwcG9ydCB1bnRydXN0ZWQgY29udGVudFxuICpcbiAqICMjIyMjIyBGb290bm90ZXNcbiAqXG4gKiBNYW55IG9wdGlvbnMgc3VwcG9ydGVkIGhlcmUgcmVsYXRlIHRvIGZvb3Rub3Rlcy5cbiAqIEZvb3Rub3RlcyBhcmUgbm90IHNwZWNpZmllZCBieSBDb21tb25NYXJrLCB3aGljaCB3ZSBmb2xsb3cgYnkgZGVmYXVsdC5cbiAqIFRoZXkgYXJlIHN1cHBvcnRlZCBieSBHaXRIdWIsIHNvIGZvb3Rub3RlcyBjYW4gYmUgZW5hYmxlZCBpbiBtYXJrZG93biB3aXRoXG4gKiBgbWRhc3QtdXRpbC1nZm1gLlxuICpcbiAqIFRoZSBvcHRpb25zIGBmb290bm90ZUJhY2tMYWJlbGAgYW5kIGBmb290bm90ZUxhYmVsYCBkZWZpbmUgbmF0dXJhbCBsYW5ndWFnZVxuICogdGhhdCBleHBsYWlucyBmb290bm90ZXMsIHdoaWNoIGlzIGhpZGRlbiBmb3Igc2lnaHRlZCB1c2VycyBidXQgc2hvd24gdG9cbiAqIGFzc2lzdGl2ZSB0ZWNobm9sb2d5LlxuICogV2hlbiB5b3VyIHBhZ2UgaXMgbm90IGluIEVuZ2xpc2gsIHlvdSBtdXN0IGRlZmluZSB0cmFuc2xhdGVkIHZhbHVlcy5cbiAqXG4gKiBCYWNrIHJlZmVyZW5jZXMgdXNlIEFSSUEgYXR0cmlidXRlcywgYnV0IHRoZSBzZWN0aW9uIGxhYmVsIGl0c2VsZiB1c2VzIGFcbiAqIGhlYWRpbmcgdGhhdCBpcyBoaWRkZW4gd2l0aCBhbiBgc3Itb25seWAgY2xhc3MuXG4gKiBUbyBzaG93IGl0IHRvIHNpZ2h0ZWQgdXNlcnMsIGRlZmluZSBkaWZmZXJlbnQgYXR0cmlidXRlcyBpblxuICogYGZvb3Rub3RlTGFiZWxQcm9wZXJ0aWVzYC5cbiAqXG4gKiAjIyMjIyMgQ2xvYmJlcmluZ1xuICpcbiAqIEZvb3Rub3RlcyBpbnRyb2R1Y2VzIGEgcHJvYmxlbSwgYXMgaXQgbGlua3MgZm9vdG5vdGUgY2FsbHMgdG8gZm9vdG5vdGVcbiAqIGRlZmluaXRpb25zIG9uIHRoZSBwYWdlIHRocm91Z2ggYGlkYCBhdHRyaWJ1dGVzIGdlbmVyYXRlZCBmcm9tIHVzZXIgY29udGVudCxcbiAqIHdoaWNoIHJlc3VsdHMgaW4gRE9NIGNsb2JiZXJpbmcuXG4gKlxuICogRE9NIGNsb2JiZXJpbmcgaXMgdGhpczpcbiAqXG4gKiBgYGBodG1sXG4gKiA8cCBpZD14PjwvcD5cbiAqIDxzY3JpcHQ+YWxlcnQoeCkgLy8gYHhgIG5vdyByZWZlcnMgdG8gdGhlIERPTSBgcCN4YCBlbGVtZW50PC9zY3JpcHQ+XG4gKiBgYGBcbiAqXG4gKiBFbGVtZW50cyBieSB0aGVpciBJRCBhcmUgbWFkZSBhdmFpbGFibGUgYnkgYnJvd3NlcnMgb24gdGhlIGB3aW5kb3dgIG9iamVjdCxcbiAqIHdoaWNoIGlzIGEgc2VjdXJpdHkgcmlzay5cbiAqIFVzaW5nIGEgcHJlZml4IHNvbHZlcyB0aGlzIHByb2JsZW0uXG4gKlxuICogTW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8gaGFuZGxlIGNsb2JiZXJpbmcgYW5kIHRoZSBwcmVmaXggaXMgZXhwbGFpbmVkIGluXG4gKiBFeGFtcGxlOiBoZWFkaW5ncyAoRE9NIGNsb2JiZXJpbmcpIGluIGByZWh5cGUtc2FuaXRpemVgLlxuICpcbiAqICMjIyMjIyBVbmtub3duIG5vZGVzXG4gKlxuICogVW5rbm93biBub2RlcyBhcmUgbm9kZXMgd2l0aCBhIHR5cGUgdGhhdCBpc25cdTIwMTl0IGluIGBoYW5kbGVyc2Agb3IgYHBhc3NUaHJvdWdoYC5cbiAqIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciB1bmtub3duIG5vZGVzIGlzOlxuICpcbiAqICogICB3aGVuIHRoZSBub2RlIGhhcyBhIGB2YWx1ZWAgKGFuZCBkb2Vzblx1MjAxOXQgaGF2ZSBgZGF0YS5oTmFtZWAsXG4gKiAgICAgYGRhdGEuaFByb3BlcnRpZXNgLCBvciBgZGF0YS5oQ2hpbGRyZW5gLCBzZWUgbGF0ZXIpLCBjcmVhdGUgYSBoYXN0IGB0ZXh0YFxuICogICAgIG5vZGVcbiAqICogICBvdGhlcndpc2UsIGNyZWF0ZSBhIGA8ZGl2PmAgZWxlbWVudCAod2hpY2ggY291bGQgYmUgY2hhbmdlZCB3aXRoXG4gKiAgICAgYGRhdGEuaE5hbWVgKSwgd2l0aCBpdHMgY2hpbGRyZW4gbWFwcGVkIGZyb20gbWRhc3QgdG8gaGFzdCBhcyB3ZWxsXG4gKlxuICogVGhpcyBiZWhhdmlvciBjYW4gYmUgY2hhbmdlZCBieSBwYXNzaW5nIGFuIGB1bmtub3duSGFuZGxlcmAuXG4gKlxuICogQHBhcmFtIHtNZGFzdE5vZGVzfSB0cmVlXG4gKiAgIG1kYXN0IHRyZWUuXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge0hhc3ROb2Rlc31cbiAqICAgaGFzdCB0cmVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9IYXN0KHRyZWUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc3RhdGUgPSBjcmVhdGVTdGF0ZSh0cmVlLCBvcHRpb25zKVxuICBjb25zdCBub2RlID0gc3RhdGUub25lKHRyZWUsIHVuZGVmaW5lZClcbiAgY29uc3QgZm9vdCA9IGZvb3RlcihzdGF0ZSlcbiAgLyoqIEB0eXBlIHtIYXN0Tm9kZXN9ICovXG4gIGNvbnN0IHJlc3VsdCA9IEFycmF5LmlzQXJyYXkobm9kZSlcbiAgICA/IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiBub2RlfVxuICAgIDogbm9kZSB8fCB7dHlwZTogJ3Jvb3QnLCBjaGlsZHJlbjogW119XG5cbiAgaWYgKGZvb3QpIHtcbiAgICAvLyBJZiB0aGVyZVx1MjAxOXMgYSBmb290ZXIsIHRoZXJlIHdlcmUgZGVmaW5pdGlvbnMsIG1lYW5pbmcgYmxvY2tcbiAgICAvLyBjb250ZW50LlxuICAgIC8vIFNvIGByZXN1bHRgIGlzIGEgcGFyZW50IG5vZGUuXG4gICAgYXNzZXJ0KCdjaGlsZHJlbicgaW4gcmVzdWx0KVxuICAgIHJlc3VsdC5jaGlsZHJlbi5wdXNoKHt0eXBlOiAndGV4dCcsIHZhbHVlOiAnXFxuJ30sIGZvb3QpXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG4iLCAiLy8gTm90ZTogdHlwZXMgZXhwb3NlZCBmcm9tIGBpbmRleC5kLnRzYC5cbmV4cG9ydCB7aGFuZGxlcnMgYXMgZGVmYXVsdEhhbmRsZXJzfSBmcm9tICcuL2xpYi9oYW5kbGVycy9pbmRleC5qcydcbmV4cG9ydCB7dG9IYXN0fSBmcm9tICcuL2xpYi9pbmRleC5qcydcbmV4cG9ydCB7XG4gIGRlZmF1bHRGb290bm90ZUJhY2tDb250ZW50LFxuICBkZWZhdWx0Rm9vdG5vdGVCYWNrTGFiZWxcbn0gZnJvbSAnLi9saWIvZm9vdGVyLmpzJ1xuIiwgIi8qKlxuICogTGlzdCBvZiBIVE1MIHZvaWQgdGFnIG5hbWVzLlxuICpcbiAqIEB0eXBlIHtBcnJheTxzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgaHRtbFZvaWRFbGVtZW50cyA9IFtcbiAgJ2FyZWEnLFxuICAnYmFzZScsXG4gICdiYXNlZm9udCcsXG4gICdiZ3NvdW5kJyxcbiAgJ2JyJyxcbiAgJ2NvbCcsXG4gICdjb21tYW5kJyxcbiAgJ2VtYmVkJyxcbiAgJ2ZyYW1lJyxcbiAgJ2hyJyxcbiAgJ2ltYWdlJyxcbiAgJ2ltZycsXG4gICdpbnB1dCcsXG4gICdrZXlnZW4nLFxuICAnbGluaycsXG4gICdtZXRhJyxcbiAgJ3BhcmFtJyxcbiAgJ3NvdXJjZScsXG4gICd0cmFjaycsXG4gICd3YnInXG5dXG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtTY2hlbWEgYXMgU2NoZW1hVHlwZSwgU3BhY2V9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuICovXG5cbi8qKiBAdHlwZSB7U2NoZW1hVHlwZX0gKi9cbmV4cG9ydCBjbGFzcyBTY2hlbWEge1xuICAvKipcbiAgICogQHBhcmFtIHtTY2hlbWFUeXBlWydwcm9wZXJ0eSddfSBwcm9wZXJ0eVxuICAgKiAgIFByb3BlcnR5LlxuICAgKiBAcGFyYW0ge1NjaGVtYVR5cGVbJ25vcm1hbCddfSBub3JtYWxcbiAgICogICBOb3JtYWwuXG4gICAqIEBwYXJhbSB7U3BhY2UgfCB1bmRlZmluZWR9IFtzcGFjZV1cbiAgICogICBTcGFjZS5cbiAgICogQHJldHVybnNcbiAgICogICBTY2hlbWEuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eSwgbm9ybWFsLCBzcGFjZSkge1xuICAgIHRoaXMubm9ybWFsID0gbm9ybWFsXG4gICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5XG5cbiAgICBpZiAoc3BhY2UpIHtcbiAgICAgIHRoaXMuc3BhY2UgPSBzcGFjZVxuICAgIH1cbiAgfVxufVxuXG5TY2hlbWEucHJvdG90eXBlLm5vcm1hbCA9IHt9XG5TY2hlbWEucHJvdG90eXBlLnByb3BlcnR5ID0ge31cblNjaGVtYS5wcm90b3R5cGUuc3BhY2UgPSB1bmRlZmluZWRcbiIsICIvKipcbiAqIEBpbXBvcnQge0luZm8sIFNwYWNlfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbiAqL1xuXG5pbXBvcnQge1NjaGVtYX0gZnJvbSAnLi9zY2hlbWEuanMnXG5cbi8qKlxuICogQHBhcmFtIHtSZWFkb25seUFycmF5PFNjaGVtYT59IGRlZmluaXRpb25zXG4gKiAgIERlZmluaXRpb25zLlxuICogQHBhcmFtIHtTcGFjZSB8IHVuZGVmaW5lZH0gW3NwYWNlXVxuICogICBTcGFjZS5cbiAqIEByZXR1cm5zIHtTY2hlbWF9XG4gKiAgIFNjaGVtYS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlKGRlZmluaXRpb25zLCBzcGFjZSkge1xuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIEluZm8+fSAqL1xuICBjb25zdCBwcm9wZXJ0eSA9IHt9XG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gKi9cbiAgY29uc3Qgbm9ybWFsID0ge31cblxuICBmb3IgKGNvbnN0IGRlZmluaXRpb24gb2YgZGVmaW5pdGlvbnMpIHtcbiAgICBPYmplY3QuYXNzaWduKHByb3BlcnR5LCBkZWZpbml0aW9uLnByb3BlcnR5KVxuICAgIE9iamVjdC5hc3NpZ24obm9ybWFsLCBkZWZpbml0aW9uLm5vcm1hbClcbiAgfVxuXG4gIHJldHVybiBuZXcgU2NoZW1hKHByb3BlcnR5LCBub3JtYWwsIHNwYWNlKVxufVxuIiwgIi8qKlxuICogR2V0IHRoZSBjbGVhbmVkIGNhc2UgaW5zZW5zaXRpdmUgZm9ybSBvZiBhbiBhdHRyaWJ1dGUgb3IgcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIEFuIGF0dHJpYnV0ZS1saWtlIG9yIHByb3BlcnR5LWxpa2UgbmFtZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgdG8gbG9vayB1cCB0aGUgcHJvcGVybHkgY2FzZWQgcHJvcGVydHkgb24gYVxuICogICBgU2NoZW1hYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7SW5mbyBhcyBJbmZvVHlwZX0gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG4gKi9cblxuLyoqIEB0eXBlIHtJbmZvVHlwZX0gKi9cbmV4cG9ydCBjbGFzcyBJbmZvIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVxuICAgKiAgIFByb3BlcnR5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXR0cmlidXRlXG4gICAqICAgQXR0cmlidXRlLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIEluZm8uXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eSwgYXR0cmlidXRlKSB7XG4gICAgdGhpcy5hdHRyaWJ1dGUgPSBhdHRyaWJ1dGVcbiAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHlcbiAgfVxufVxuXG5JbmZvLnByb3RvdHlwZS5hdHRyaWJ1dGUgPSAnJ1xuSW5mby5wcm90b3R5cGUuYm9vbGVhbmlzaCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5ib29sZWFuID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLmNvbW1hT3JTcGFjZVNlcGFyYXRlZCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5jb21tYVNlcGFyYXRlZCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5kZWZpbmVkID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLm11c3RVc2VQcm9wZXJ0eSA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5udW1iZXIgPSBmYWxzZVxuSW5mby5wcm90b3R5cGUub3ZlcmxvYWRlZEJvb2xlYW4gPSBmYWxzZVxuSW5mby5wcm90b3R5cGUucHJvcGVydHkgPSAnJ1xuSW5mby5wcm90b3R5cGUuc3BhY2VTZXBhcmF0ZWQgPSBmYWxzZVxuSW5mby5wcm90b3R5cGUuc3BhY2UgPSB1bmRlZmluZWRcbiIsICJsZXQgcG93ZXJzID0gMFxuXG5leHBvcnQgY29uc3QgYm9vbGVhbiA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3QgYm9vbGVhbmlzaCA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3Qgb3ZlcmxvYWRlZEJvb2xlYW4gPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IG51bWJlciA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3Qgc3BhY2VTZXBhcmF0ZWQgPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IGNvbW1hU2VwYXJhdGVkID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBjb21tYU9yU3BhY2VTZXBhcmF0ZWQgPSBpbmNyZW1lbnQoKVxuXG5mdW5jdGlvbiBpbmNyZW1lbnQoKSB7XG4gIHJldHVybiAyICoqICsrcG93ZXJzXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtTcGFjZX0gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG4gKi9cblxuaW1wb3J0IHtJbmZvfSBmcm9tICcuL2luZm8uanMnXG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuL3R5cGVzLmpzJ1xuXG5jb25zdCBjaGVja3MgPSAvKiogQHR5cGUge1JlYWRvbmx5QXJyYXk8a2V5b2YgdHlwZW9mIHR5cGVzPn0gKi8gKFxuICBPYmplY3Qua2V5cyh0eXBlcylcbilcblxuZXhwb3J0IGNsYXNzIERlZmluZWRJbmZvIGV4dGVuZHMgSW5mbyB7XG4gIC8qKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5XG4gICAqICAgUHJvcGVydHkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyaWJ1dGVcbiAgICogICBBdHRyaWJ1dGUuXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW21hc2tdXG4gICAqICAgTWFzay5cbiAgICogQHBhcmFtIHtTcGFjZSB8IHVuZGVmaW5lZH0gW3NwYWNlXVxuICAgKiAgIFNwYWNlLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIEluZm8uXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eSwgYXR0cmlidXRlLCBtYXNrLCBzcGFjZSkge1xuICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICBzdXBlcihwcm9wZXJ0eSwgYXR0cmlidXRlKVxuXG4gICAgbWFyayh0aGlzLCAnc3BhY2UnLCBzcGFjZSlcblxuICAgIGlmICh0eXBlb2YgbWFzayA9PT0gJ251bWJlcicpIHtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgY2hlY2tzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBjaGVjayA9IGNoZWNrc1tpbmRleF1cbiAgICAgICAgbWFyayh0aGlzLCBjaGVja3NbaW5kZXhdLCAobWFzayAmIHR5cGVzW2NoZWNrXSkgPT09IHR5cGVzW2NoZWNrXSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuRGVmaW5lZEluZm8ucHJvdG90eXBlLmRlZmluZWQgPSB0cnVlXG5cbi8qKlxuICogQHRlbXBsYXRlIHtrZXlvZiBEZWZpbmVkSW5mb30gS2V5XG4gKiAgIEtleSB0eXBlLlxuICogQHBhcmFtIHtEZWZpbmVkSW5mb30gdmFsdWVzXG4gKiAgIEluZm8uXG4gKiBAcGFyYW0ge0tleX0ga2V5XG4gKiAgIEtleS5cbiAqIEBwYXJhbSB7RGVmaW5lZEluZm9bS2V5XX0gdmFsdWVcbiAqICAgVmFsdWUuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBtYXJrKHZhbHVlcywga2V5LCB2YWx1ZSkge1xuICBpZiAodmFsdWUpIHtcbiAgICB2YWx1ZXNba2V5XSA9IHZhbHVlXG4gIH1cbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0luZm8sIFNwYWNlfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIERlZmluaXRpb25cbiAqICAgRGVmaW5pdGlvbiBvZiBhIHNjaGVtYS5cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZH0gW2F0dHJpYnV0ZXNdXG4gKiAgIE5vcm1hbHplZCBuYW1lcyB0byBzcGVjaWFsIGF0dHJpYnV0ZSBjYXNlLlxuICogQHByb3BlcnR5IHtSZWFkb25seUFycmF5PHN0cmluZz4gfCB1bmRlZmluZWR9IFttdXN0VXNlUHJvcGVydHldXG4gKiAgIE5vcm1hbGl6ZWQgbmFtZXMgdGhhdCBtdXN0IGJlIHNldCBhcyBwcm9wZXJ0aWVzLlxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBudWxsPn0gcHJvcGVydGllc1xuICogICBQcm9wZXJ0eSBuYW1lcyB0byB0aGVpciB0eXBlcy5cbiAqIEBwcm9wZXJ0eSB7U3BhY2UgfCB1bmRlZmluZWR9IFtzcGFjZV1cbiAqICAgU3BhY2UuXG4gKiBAcHJvcGVydHkge1RyYW5zZm9ybX0gdHJhbnNmb3JtXG4gKiAgIFRyYW5zZm9ybSBhIHByb3BlcnR5IG5hbWUuXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgVHJhbnNmb3JtXG4gKiAgIFRyYW5zZm9ybS5cbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gYXR0cmlidXRlc1xuICogICBBdHRyaWJ1dGVzLlxuICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5XG4gKiAgIFByb3BlcnR5LlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgQXR0cmlidXRlLlxuICovXG5cbmltcG9ydCB7bm9ybWFsaXplfSBmcm9tICcuLi9ub3JtYWxpemUuanMnXG5pbXBvcnQge0RlZmluZWRJbmZvfSBmcm9tICcuL2RlZmluZWQtaW5mby5qcydcbmltcG9ydCB7U2NoZW1hfSBmcm9tICcuL3NjaGVtYS5qcydcblxuLyoqXG4gKiBAcGFyYW0ge0RlZmluaXRpb259IGRlZmluaXRpb25cbiAqICAgRGVmaW5pdGlvbi5cbiAqIEByZXR1cm5zIHtTY2hlbWF9XG4gKiAgIFNjaGVtYS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShkZWZpbml0aW9uKSB7XG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgSW5mbz59ICovXG4gIGNvbnN0IHByb3BlcnRpZXMgPSB7fVxuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59ICovXG4gIGNvbnN0IG5vcm1hbHMgPSB7fVxuXG4gIGZvciAoY29uc3QgW3Byb3BlcnR5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZGVmaW5pdGlvbi5wcm9wZXJ0aWVzKSkge1xuICAgIGNvbnN0IGluZm8gPSBuZXcgRGVmaW5lZEluZm8oXG4gICAgICBwcm9wZXJ0eSxcbiAgICAgIGRlZmluaXRpb24udHJhbnNmb3JtKGRlZmluaXRpb24uYXR0cmlidXRlcyB8fCB7fSwgcHJvcGVydHkpLFxuICAgICAgdmFsdWUsXG4gICAgICBkZWZpbml0aW9uLnNwYWNlXG4gICAgKVxuXG4gICAgaWYgKFxuICAgICAgZGVmaW5pdGlvbi5tdXN0VXNlUHJvcGVydHkgJiZcbiAgICAgIGRlZmluaXRpb24ubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKHByb3BlcnR5KVxuICAgICkge1xuICAgICAgaW5mby5tdXN0VXNlUHJvcGVydHkgPSB0cnVlXG4gICAgfVxuXG4gICAgcHJvcGVydGllc1twcm9wZXJ0eV0gPSBpbmZvXG5cbiAgICBub3JtYWxzW25vcm1hbGl6ZShwcm9wZXJ0eSldID0gcHJvcGVydHlcbiAgICBub3JtYWxzW25vcm1hbGl6ZShpbmZvLmF0dHJpYnV0ZSldID0gcHJvcGVydHlcbiAgfVxuXG4gIHJldHVybiBuZXcgU2NoZW1hKHByb3BlcnRpZXMsIG5vcm1hbHMsIGRlZmluaXRpb24uc3BhY2UpXG59XG4iLCAiaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5pbXBvcnQge2Jvb2xlYW5pc2gsIG51bWJlciwgc3BhY2VTZXBhcmF0ZWR9IGZyb20gJy4vdXRpbC90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IGFyaWEgPSBjcmVhdGUoe1xuICBwcm9wZXJ0aWVzOiB7XG4gICAgYXJpYUFjdGl2ZURlc2NlbmRhbnQ6IG51bGwsXG4gICAgYXJpYUF0b21pYzogYm9vbGVhbmlzaCxcbiAgICBhcmlhQXV0b0NvbXBsZXRlOiBudWxsLFxuICAgIGFyaWFCdXN5OiBib29sZWFuaXNoLFxuICAgIGFyaWFDaGVja2VkOiBib29sZWFuaXNoLFxuICAgIGFyaWFDb2xDb3VudDogbnVtYmVyLFxuICAgIGFyaWFDb2xJbmRleDogbnVtYmVyLFxuICAgIGFyaWFDb2xTcGFuOiBudW1iZXIsXG4gICAgYXJpYUNvbnRyb2xzOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhQ3VycmVudDogbnVsbCxcbiAgICBhcmlhRGVzY3JpYmVkQnk6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFEZXRhaWxzOiBudWxsLFxuICAgIGFyaWFEaXNhYmxlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhRHJvcEVmZmVjdDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUVycm9yTWVzc2FnZTogbnVsbCxcbiAgICBhcmlhRXhwYW5kZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUZsb3dUbzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUdyYWJiZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUhhc1BvcHVwOiBudWxsLFxuICAgIGFyaWFIaWRkZW46IGJvb2xlYW5pc2gsXG4gICAgYXJpYUludmFsaWQ6IG51bGwsXG4gICAgYXJpYUtleVNob3J0Y3V0czogbnVsbCxcbiAgICBhcmlhTGFiZWw6IG51bGwsXG4gICAgYXJpYUxhYmVsbGVkQnk6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFMZXZlbDogbnVtYmVyLFxuICAgIGFyaWFMaXZlOiBudWxsLFxuICAgIGFyaWFNb2RhbDogYm9vbGVhbmlzaCxcbiAgICBhcmlhTXVsdGlMaW5lOiBib29sZWFuaXNoLFxuICAgIGFyaWFNdWx0aVNlbGVjdGFibGU6IGJvb2xlYW5pc2gsXG4gICAgYXJpYU9yaWVudGF0aW9uOiBudWxsLFxuICAgIGFyaWFPd25zOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhUGxhY2Vob2xkZXI6IG51bGwsXG4gICAgYXJpYVBvc0luU2V0OiBudW1iZXIsXG4gICAgYXJpYVByZXNzZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJlYWRPbmx5OiBib29sZWFuaXNoLFxuICAgIGFyaWFSZWxldmFudDogbnVsbCxcbiAgICBhcmlhUmVxdWlyZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJvbGVEZXNjcmlwdGlvbjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYVJvd0NvdW50OiBudW1iZXIsXG4gICAgYXJpYVJvd0luZGV4OiBudW1iZXIsXG4gICAgYXJpYVJvd1NwYW46IG51bWJlcixcbiAgICBhcmlhU2VsZWN0ZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVNldFNpemU6IG51bWJlcixcbiAgICBhcmlhU29ydDogbnVsbCxcbiAgICBhcmlhVmFsdWVNYXg6IG51bWJlcixcbiAgICBhcmlhVmFsdWVNaW46IG51bWJlcixcbiAgICBhcmlhVmFsdWVOb3c6IG51bWJlcixcbiAgICBhcmlhVmFsdWVUZXh0OiBudWxsLFxuICAgIHJvbGU6IG51bGxcbiAgfSxcbiAgdHJhbnNmb3JtKF8sIHByb3BlcnR5KSB7XG4gICAgcmV0dXJuIHByb3BlcnR5ID09PSAncm9sZSdcbiAgICAgID8gcHJvcGVydHlcbiAgICAgIDogJ2FyaWEtJyArIHByb3BlcnR5LnNsaWNlKDQpLnRvTG93ZXJDYXNlKClcbiAgfVxufSlcbiIsICIvKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gYXR0cmlidXRlc1xuICogICBBdHRyaWJ1dGVzLlxuICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZVxuICogICBBdHRyaWJ1dGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBUcmFuc2Zvcm1lZCBhdHRyaWJ1dGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIGF0dHJpYnV0ZSkge1xuICByZXR1cm4gYXR0cmlidXRlIGluIGF0dHJpYnV0ZXMgPyBhdHRyaWJ1dGVzW2F0dHJpYnV0ZV0gOiBhdHRyaWJ1dGVcbn1cbiIsICJpbXBvcnQge2Nhc2VTZW5zaXRpdmVUcmFuc2Zvcm19IGZyb20gJy4vY2FzZS1zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gYXR0cmlidXRlc1xuICogICBBdHRyaWJ1dGVzLlxuICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5XG4gKiAgIFByb3BlcnR5LlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgVHJhbnNmb3JtZWQgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0oYXR0cmlidXRlcywgcHJvcGVydHkpIHtcbiAgcmV0dXJuIGNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0oYXR0cmlidXRlcywgcHJvcGVydHkudG9Mb3dlckNhc2UoKSlcbn1cbiIsICJpbXBvcnQge2Nhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5pbXBvcnQge1xuICBib29sZWFuaXNoLFxuICBib29sZWFuLFxuICBjb21tYVNlcGFyYXRlZCxcbiAgbnVtYmVyLFxuICBvdmVybG9hZGVkQm9vbGVhbixcbiAgc3BhY2VTZXBhcmF0ZWRcbn0gZnJvbSAnLi91dGlsL3R5cGVzLmpzJ1xuXG5leHBvcnQgY29uc3QgaHRtbCA9IGNyZWF0ZSh7XG4gIGF0dHJpYnV0ZXM6IHtcbiAgICBhY2NlcHRjaGFyc2V0OiAnYWNjZXB0LWNoYXJzZXQnLFxuICAgIGNsYXNzbmFtZTogJ2NsYXNzJyxcbiAgICBodG1sZm9yOiAnZm9yJyxcbiAgICBodHRwZXF1aXY6ICdodHRwLWVxdWl2J1xuICB9LFxuICBtdXN0VXNlUHJvcGVydHk6IFsnY2hlY2tlZCcsICdtdWx0aXBsZScsICdtdXRlZCcsICdzZWxlY3RlZCddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLy8gU3RhbmRhcmQgUHJvcGVydGllcy5cbiAgICBhYmJyOiBudWxsLFxuICAgIGFjY2VwdDogY29tbWFTZXBhcmF0ZWQsXG4gICAgYWNjZXB0Q2hhcnNldDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYWNjZXNzS2V5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhY3Rpb246IG51bGwsXG4gICAgYWxsb3c6IG51bGwsXG4gICAgYWxsb3dGdWxsU2NyZWVuOiBib29sZWFuLFxuICAgIGFsbG93UGF5bWVudFJlcXVlc3Q6IGJvb2xlYW4sXG4gICAgYWxsb3dVc2VyTWVkaWE6IGJvb2xlYW4sXG4gICAgYWx0OiBudWxsLFxuICAgIGFzOiBudWxsLFxuICAgIGFzeW5jOiBib29sZWFuLFxuICAgIGF1dG9DYXBpdGFsaXplOiBudWxsLFxuICAgIGF1dG9Db21wbGV0ZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXV0b0ZvY3VzOiBib29sZWFuLFxuICAgIGF1dG9QbGF5OiBib29sZWFuLFxuICAgIGJsb2NraW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjYXB0dXJlOiBudWxsLFxuICAgIGNoYXJTZXQ6IG51bGwsXG4gICAgY2hlY2tlZDogYm9vbGVhbixcbiAgICBjaXRlOiBudWxsLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY29sczogbnVtYmVyLFxuICAgIGNvbFNwYW46IG51bGwsXG4gICAgY29udGVudDogbnVsbCxcbiAgICBjb250ZW50RWRpdGFibGU6IGJvb2xlYW5pc2gsXG4gICAgY29udHJvbHM6IGJvb2xlYW4sXG4gICAgY29udHJvbHNMaXN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjb29yZHM6IG51bWJlciB8IGNvbW1hU2VwYXJhdGVkLFxuICAgIGNyb3NzT3JpZ2luOiBudWxsLFxuICAgIGRhdGE6IG51bGwsXG4gICAgZGF0ZVRpbWU6IG51bGwsXG4gICAgZGVjb2Rpbmc6IG51bGwsXG4gICAgZGVmYXVsdDogYm9vbGVhbixcbiAgICBkZWZlcjogYm9vbGVhbixcbiAgICBkaXI6IG51bGwsXG4gICAgZGlyTmFtZTogbnVsbCxcbiAgICBkaXNhYmxlZDogYm9vbGVhbixcbiAgICBkb3dubG9hZDogb3ZlcmxvYWRlZEJvb2xlYW4sXG4gICAgZHJhZ2dhYmxlOiBib29sZWFuaXNoLFxuICAgIGVuY1R5cGU6IG51bGwsXG4gICAgZW50ZXJLZXlIaW50OiBudWxsLFxuICAgIGZldGNoUHJpb3JpdHk6IG51bGwsXG4gICAgZm9ybTogbnVsbCxcbiAgICBmb3JtQWN0aW9uOiBudWxsLFxuICAgIGZvcm1FbmNUeXBlOiBudWxsLFxuICAgIGZvcm1NZXRob2Q6IG51bGwsXG4gICAgZm9ybU5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgZm9ybVRhcmdldDogbnVsbCxcbiAgICBoZWFkZXJzOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBoaWRkZW46IG92ZXJsb2FkZWRCb29sZWFuLFxuICAgIGhpZ2g6IG51bWJlcixcbiAgICBocmVmOiBudWxsLFxuICAgIGhyZWZMYW5nOiBudWxsLFxuICAgIGh0bWxGb3I6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGh0dHBFcXVpdjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaWQ6IG51bGwsXG4gICAgaW1hZ2VTaXplczogbnVsbCxcbiAgICBpbWFnZVNyY1NldDogbnVsbCxcbiAgICBpbmVydDogYm9vbGVhbixcbiAgICBpbnB1dE1vZGU6IG51bGwsXG4gICAgaW50ZWdyaXR5OiBudWxsLFxuICAgIGlzOiBudWxsLFxuICAgIGlzTWFwOiBib29sZWFuLFxuICAgIGl0ZW1JZDogbnVsbCxcbiAgICBpdGVtUHJvcDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaXRlbVJlZjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaXRlbVNjb3BlOiBib29sZWFuLFxuICAgIGl0ZW1UeXBlOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBraW5kOiBudWxsLFxuICAgIGxhYmVsOiBudWxsLFxuICAgIGxhbmc6IG51bGwsXG4gICAgbGFuZ3VhZ2U6IG51bGwsXG4gICAgbGlzdDogbnVsbCxcbiAgICBsb2FkaW5nOiBudWxsLFxuICAgIGxvb3A6IGJvb2xlYW4sXG4gICAgbG93OiBudW1iZXIsXG4gICAgbWFuaWZlc3Q6IG51bGwsXG4gICAgbWF4OiBudWxsLFxuICAgIG1heExlbmd0aDogbnVtYmVyLFxuICAgIG1lZGlhOiBudWxsLFxuICAgIG1ldGhvZDogbnVsbCxcbiAgICBtaW46IG51bGwsXG4gICAgbWluTGVuZ3RoOiBudW1iZXIsXG4gICAgbXVsdGlwbGU6IGJvb2xlYW4sXG4gICAgbXV0ZWQ6IGJvb2xlYW4sXG4gICAgbmFtZTogbnVsbCxcbiAgICBub25jZTogbnVsbCxcbiAgICBub01vZHVsZTogYm9vbGVhbixcbiAgICBub1ZhbGlkYXRlOiBib29sZWFuLFxuICAgIG9uQWJvcnQ6IG51bGwsXG4gICAgb25BZnRlclByaW50OiBudWxsLFxuICAgIG9uQXV4Q2xpY2s6IG51bGwsXG4gICAgb25CZWZvcmVNYXRjaDogbnVsbCxcbiAgICBvbkJlZm9yZVByaW50OiBudWxsLFxuICAgIG9uQmVmb3JlVG9nZ2xlOiBudWxsLFxuICAgIG9uQmVmb3JlVW5sb2FkOiBudWxsLFxuICAgIG9uQmx1cjogbnVsbCxcbiAgICBvbkNhbmNlbDogbnVsbCxcbiAgICBvbkNhblBsYXk6IG51bGwsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogbnVsbCxcbiAgICBvbkNoYW5nZTogbnVsbCxcbiAgICBvbkNsaWNrOiBudWxsLFxuICAgIG9uQ2xvc2U6IG51bGwsXG4gICAgb25Db250ZXh0TG9zdDogbnVsbCxcbiAgICBvbkNvbnRleHRNZW51OiBudWxsLFxuICAgIG9uQ29udGV4dFJlc3RvcmVkOiBudWxsLFxuICAgIG9uQ29weTogbnVsbCxcbiAgICBvbkN1ZUNoYW5nZTogbnVsbCxcbiAgICBvbkN1dDogbnVsbCxcbiAgICBvbkRibENsaWNrOiBudWxsLFxuICAgIG9uRHJhZzogbnVsbCxcbiAgICBvbkRyYWdFbmQ6IG51bGwsXG4gICAgb25EcmFnRW50ZXI6IG51bGwsXG4gICAgb25EcmFnRXhpdDogbnVsbCxcbiAgICBvbkRyYWdMZWF2ZTogbnVsbCxcbiAgICBvbkRyYWdPdmVyOiBudWxsLFxuICAgIG9uRHJhZ1N0YXJ0OiBudWxsLFxuICAgIG9uRHJvcDogbnVsbCxcbiAgICBvbkR1cmF0aW9uQ2hhbmdlOiBudWxsLFxuICAgIG9uRW1wdGllZDogbnVsbCxcbiAgICBvbkVuZGVkOiBudWxsLFxuICAgIG9uRXJyb3I6IG51bGwsXG4gICAgb25Gb2N1czogbnVsbCxcbiAgICBvbkZvcm1EYXRhOiBudWxsLFxuICAgIG9uSGFzaENoYW5nZTogbnVsbCxcbiAgICBvbklucHV0OiBudWxsLFxuICAgIG9uSW52YWxpZDogbnVsbCxcbiAgICBvbktleURvd246IG51bGwsXG4gICAgb25LZXlQcmVzczogbnVsbCxcbiAgICBvbktleVVwOiBudWxsLFxuICAgIG9uTGFuZ3VhZ2VDaGFuZ2U6IG51bGwsXG4gICAgb25Mb2FkOiBudWxsLFxuICAgIG9uTG9hZGVkRGF0YTogbnVsbCxcbiAgICBvbkxvYWRlZE1ldGFkYXRhOiBudWxsLFxuICAgIG9uTG9hZEVuZDogbnVsbCxcbiAgICBvbkxvYWRTdGFydDogbnVsbCxcbiAgICBvbk1lc3NhZ2U6IG51bGwsXG4gICAgb25NZXNzYWdlRXJyb3I6IG51bGwsXG4gICAgb25Nb3VzZURvd246IG51bGwsXG4gICAgb25Nb3VzZUVudGVyOiBudWxsLFxuICAgIG9uTW91c2VMZWF2ZTogbnVsbCxcbiAgICBvbk1vdXNlTW92ZTogbnVsbCxcbiAgICBvbk1vdXNlT3V0OiBudWxsLFxuICAgIG9uTW91c2VPdmVyOiBudWxsLFxuICAgIG9uTW91c2VVcDogbnVsbCxcbiAgICBvbk9mZmxpbmU6IG51bGwsXG4gICAgb25PbmxpbmU6IG51bGwsXG4gICAgb25QYWdlSGlkZTogbnVsbCxcbiAgICBvblBhZ2VTaG93OiBudWxsLFxuICAgIG9uUGFzdGU6IG51bGwsXG4gICAgb25QYXVzZTogbnVsbCxcbiAgICBvblBsYXk6IG51bGwsXG4gICAgb25QbGF5aW5nOiBudWxsLFxuICAgIG9uUG9wU3RhdGU6IG51bGwsXG4gICAgb25Qcm9ncmVzczogbnVsbCxcbiAgICBvblJhdGVDaGFuZ2U6IG51bGwsXG4gICAgb25SZWplY3Rpb25IYW5kbGVkOiBudWxsLFxuICAgIG9uUmVzZXQ6IG51bGwsXG4gICAgb25SZXNpemU6IG51bGwsXG4gICAgb25TY3JvbGw6IG51bGwsXG4gICAgb25TY3JvbGxFbmQ6IG51bGwsXG4gICAgb25TZWN1cml0eVBvbGljeVZpb2xhdGlvbjogbnVsbCxcbiAgICBvblNlZWtlZDogbnVsbCxcbiAgICBvblNlZWtpbmc6IG51bGwsXG4gICAgb25TZWxlY3Q6IG51bGwsXG4gICAgb25TbG90Q2hhbmdlOiBudWxsLFxuICAgIG9uU3RhbGxlZDogbnVsbCxcbiAgICBvblN0b3JhZ2U6IG51bGwsXG4gICAgb25TdWJtaXQ6IG51bGwsXG4gICAgb25TdXNwZW5kOiBudWxsLFxuICAgIG9uVGltZVVwZGF0ZTogbnVsbCxcbiAgICBvblRvZ2dsZTogbnVsbCxcbiAgICBvblVuaGFuZGxlZFJlamVjdGlvbjogbnVsbCxcbiAgICBvblVubG9hZDogbnVsbCxcbiAgICBvblZvbHVtZUNoYW5nZTogbnVsbCxcbiAgICBvbldhaXRpbmc6IG51bGwsXG4gICAgb25XaGVlbDogbnVsbCxcbiAgICBvcGVuOiBib29sZWFuLFxuICAgIG9wdGltdW06IG51bWJlcixcbiAgICBwYXR0ZXJuOiBudWxsLFxuICAgIHBpbmc6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHBsYWNlaG9sZGVyOiBudWxsLFxuICAgIHBsYXlzSW5saW5lOiBib29sZWFuLFxuICAgIHBvcG92ZXI6IG51bGwsXG4gICAgcG9wb3ZlclRhcmdldDogbnVsbCxcbiAgICBwb3BvdmVyVGFyZ2V0QWN0aW9uOiBudWxsLFxuICAgIHBvc3RlcjogbnVsbCxcbiAgICBwcmVsb2FkOiBudWxsLFxuICAgIHJlYWRPbmx5OiBib29sZWFuLFxuICAgIHJlZmVycmVyUG9saWN5OiBudWxsLFxuICAgIHJlbDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW4sXG4gICAgcmV2ZXJzZWQ6IGJvb2xlYW4sXG4gICAgcm93czogbnVtYmVyLFxuICAgIHJvd1NwYW46IG51bWJlcixcbiAgICBzYW5kYm94OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBzY29wZTogbnVsbCxcbiAgICBzY29wZWQ6IGJvb2xlYW4sXG4gICAgc2VhbWxlc3M6IGJvb2xlYW4sXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW4sXG4gICAgc2hhZG93Um9vdENsb25hYmxlOiBib29sZWFuLFxuICAgIHNoYWRvd1Jvb3REZWxlZ2F0ZXNGb2N1czogYm9vbGVhbixcbiAgICBzaGFkb3dSb290TW9kZTogbnVsbCxcbiAgICBzaGFwZTogbnVsbCxcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc2l6ZXM6IG51bGwsXG4gICAgc2xvdDogbnVsbCxcbiAgICBzcGFuOiBudW1iZXIsXG4gICAgc3BlbGxDaGVjazogYm9vbGVhbmlzaCxcbiAgICBzcmM6IG51bGwsXG4gICAgc3JjRG9jOiBudWxsLFxuICAgIHNyY0xhbmc6IG51bGwsXG4gICAgc3JjU2V0OiBudWxsLFxuICAgIHN0YXJ0OiBudW1iZXIsXG4gICAgc3RlcDogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICB0YWJJbmRleDogbnVtYmVyLFxuICAgIHRhcmdldDogbnVsbCxcbiAgICB0aXRsZTogbnVsbCxcbiAgICB0cmFuc2xhdGU6IG51bGwsXG4gICAgdHlwZTogbnVsbCxcbiAgICB0eXBlTXVzdE1hdGNoOiBib29sZWFuLFxuICAgIHVzZU1hcDogbnVsbCxcbiAgICB2YWx1ZTogYm9vbGVhbmlzaCxcbiAgICB3aWR0aDogbnVtYmVyLFxuICAgIHdyYXA6IG51bGwsXG4gICAgd3JpdGluZ1N1Z2dlc3Rpb25zOiBudWxsLFxuXG4gICAgLy8gTGVnYWN5LlxuICAgIC8vIFNlZTogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jb3RoZXItZWxlbWVudHMsLWF0dHJpYnV0ZXMtYW5kLWFwaXNcbiAgICBhbGlnbjogbnVsbCwgLy8gU2V2ZXJhbC4gVXNlIENTUyBgdGV4dC1hbGlnbmAgaW5zdGVhZCxcbiAgICBhTGluazogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGE6YWN0aXZlIHtjb2xvcn1gIGluc3RlYWRcbiAgICBhcmNoaXZlOiBzcGFjZVNlcGFyYXRlZCwgLy8gYDxvYmplY3Q+YC4gTGlzdCBvZiBVUklzIHRvIGFyY2hpdmVzXG4gICAgYXhpczogbnVsbCwgLy8gYDx0ZD5gIGFuZCBgPHRoPmAuIFVzZSBgc2NvcGVgIG9uIGA8dGg+YFxuICAgIGJhY2tncm91bmQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWltYWdlYCBpbnN0ZWFkXG4gICAgYmdDb2xvcjogbnVsbCwgLy8gYDxib2R5PmAgYW5kIHRhYmxlIGVsZW1lbnRzLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWNvbG9yYCBpbnN0ZWFkXG4gICAgYm9yZGVyOiBudW1iZXIsIC8vIGA8dGFibGU+YC4gVXNlIENTUyBgYm9yZGVyLXdpZHRoYCBpbnN0ZWFkLFxuICAgIGJvcmRlckNvbG9yOiBudWxsLCAvLyBgPHRhYmxlPmAuIFVzZSBDU1MgYGJvcmRlci1jb2xvcmAgaW5zdGVhZCxcbiAgICBib3R0b21NYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBjZWxsUGFkZGluZzogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgY2VsbFNwYWNpbmc6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIGNoYXI6IG51bGwsIC8vIFNldmVyYWwgdGFibGUgZWxlbWVudHMuIFdoZW4gYGFsaWduPWNoYXJgLCBzZXRzIHRoZSBjaGFyYWN0ZXIgdG8gYWxpZ24gb25cbiAgICBjaGFyT2ZmOiBudWxsLCAvLyBTZXZlcmFsIHRhYmxlIGVsZW1lbnRzLiBXaGVuIGBjaGFyYCwgb2Zmc2V0cyB0aGUgYWxpZ25tZW50XG4gICAgY2xhc3NJZDogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNsZWFyOiBudWxsLCAvLyBgPGJyPmAuIFVzZSBDU1MgYGNsZWFyYCBpbnN0ZWFkXG4gICAgY29kZTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNvZGVCYXNlOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY29kZVR5cGU6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjb2xvcjogbnVsbCwgLy8gYDxmb250PmAgYW5kIGA8aHI+YC4gVXNlIENTUyBpbnN0ZWFkXG4gICAgY29tcGFjdDogYm9vbGVhbiwgLy8gTGlzdHMuIFVzZSBDU1MgdG8gcmVkdWNlIHNwYWNlIGJldHdlZW4gaXRlbXMgaW5zdGVhZFxuICAgIGRlY2xhcmU6IGJvb2xlYW4sIC8vIGA8b2JqZWN0PmBcbiAgICBldmVudDogbnVsbCwgLy8gYDxzY3JpcHQ+YFxuICAgIGZhY2U6IG51bGwsIC8vIGA8Zm9udD5gLiBVc2UgQ1NTIGluc3RlYWRcbiAgICBmcmFtZTogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgZnJhbWVCb3JkZXI6IG51bGwsIC8vIGA8aWZyYW1lPmAuIFVzZSBDU1MgYGJvcmRlcmAgaW5zdGVhZFxuICAgIGhTcGFjZTogbnVtYmVyLCAvLyBgPGltZz5gIGFuZCBgPG9iamVjdD5gXG4gICAgbGVmdE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIGxpbms6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBhOmxpbmsge2NvbG9yOiAqfWAgaW5zdGVhZFxuICAgIGxvbmdEZXNjOiBudWxsLCAvLyBgPGZyYW1lPmAsIGA8aWZyYW1lPmAsIGFuZCBgPGltZz5gLiBVc2UgYW4gYDxhPmBcbiAgICBsb3dTcmM6IG51bGwsIC8vIGA8aW1nPmAuIFVzZSBhIGA8cGljdHVyZT5gXG4gICAgbWFyZ2luSGVpZ2h0OiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgbWFyZ2luV2lkdGg6IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBub1Jlc2l6ZTogYm9vbGVhbiwgLy8gYDxmcmFtZT5gXG4gICAgbm9IcmVmOiBib29sZWFuLCAvLyBgPGFyZWE+YC4gVXNlIG5vIGhyZWYgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBgbm9ocmVmYFxuICAgIG5vU2hhZGU6IGJvb2xlYW4sIC8vIGA8aHI+YC4gVXNlIGJhY2tncm91bmQtY29sb3IgYW5kIGhlaWdodCBpbnN0ZWFkIG9mIGJvcmRlcnNcbiAgICBub1dyYXA6IGJvb2xlYW4sIC8vIGA8dGQ+YCBhbmQgYDx0aD5gXG4gICAgb2JqZWN0OiBudWxsLCAvLyBgPGFwcGxldD5gXG4gICAgcHJvZmlsZTogbnVsbCwgLy8gYDxoZWFkPmBcbiAgICBwcm9tcHQ6IG51bGwsIC8vIGA8aXNpbmRleD5gXG4gICAgcmV2OiBudWxsLCAvLyBgPGxpbms+YFxuICAgIHJpZ2h0TWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgcnVsZXM6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHNjaGVtZTogbnVsbCwgLy8gYDxtZXRhPmBcbiAgICBzY3JvbGxpbmc6IGJvb2xlYW5pc2gsIC8vIGA8ZnJhbWU+YC4gVXNlIG92ZXJmbG93IGluIHRoZSBjaGlsZCBjb250ZXh0XG4gICAgc3RhbmRieTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIHN1bW1hcnk6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHRleHQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBjb2xvcmAgaW5zdGVhZFxuICAgIHRvcE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIHZhbHVlVHlwZTogbnVsbCwgLy8gYDxwYXJhbT5gXG4gICAgdmVyc2lvbjogbnVsbCwgLy8gYDxodG1sPmAuIFVzZSBhIGRvY3R5cGUuXG4gICAgdkFsaWduOiBudWxsLCAvLyBTZXZlcmFsLiBVc2UgQ1NTIGB2ZXJ0aWNhbC1hbGlnbmAgaW5zdGVhZFxuICAgIHZMaW5rOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYTp2aXNpdGVkIHtjb2xvcn1gIGluc3RlYWRcbiAgICB2U3BhY2U6IG51bWJlciwgLy8gYDxpbWc+YCBhbmQgYDxvYmplY3Q+YFxuXG4gICAgLy8gTm9uLXN0YW5kYXJkIFByb3BlcnRpZXMuXG4gICAgYWxsb3dUcmFuc3BhcmVuY3k6IG51bGwsXG4gICAgYXV0b0NvcnJlY3Q6IG51bGwsXG4gICAgYXV0b1NhdmU6IG51bGwsXG4gICAgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6IGJvb2xlYW4sXG4gICAgZGlzYWJsZVJlbW90ZVBsYXliYWNrOiBib29sZWFuLFxuICAgIHByZWZpeDogbnVsbCxcbiAgICBwcm9wZXJ0eTogbnVsbCxcbiAgICByZXN1bHRzOiBudW1iZXIsXG4gICAgc2VjdXJpdHk6IG51bGwsXG4gICAgdW5zZWxlY3RhYmxlOiBudWxsXG4gIH0sXG4gIHNwYWNlOiAnaHRtbCcsXG4gIHRyYW5zZm9ybTogY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtXG59KVxuIiwgImltcG9ydCB7Y2FzZVNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2Utc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcbmltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuaW1wb3J0IHtcbiAgYm9vbGVhbixcbiAgY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICBjb21tYVNlcGFyYXRlZCxcbiAgbnVtYmVyLFxuICBzcGFjZVNlcGFyYXRlZFxufSBmcm9tICcuL3V0aWwvdHlwZXMuanMnXG5cbmV4cG9ydCBjb25zdCBzdmcgPSBjcmVhdGUoe1xuICBhdHRyaWJ1dGVzOiB7XG4gICAgYWNjZW50SGVpZ2h0OiAnYWNjZW50LWhlaWdodCcsXG4gICAgYWxpZ25tZW50QmFzZWxpbmU6ICdhbGlnbm1lbnQtYmFzZWxpbmUnLFxuICAgIGFyYWJpY0Zvcm06ICdhcmFiaWMtZm9ybScsXG4gICAgYmFzZWxpbmVTaGlmdDogJ2Jhc2VsaW5lLXNoaWZ0JyxcbiAgICBjYXBIZWlnaHQ6ICdjYXAtaGVpZ2h0JyxcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgY2xpcFBhdGg6ICdjbGlwLXBhdGgnLFxuICAgIGNsaXBSdWxlOiAnY2xpcC1ydWxlJyxcbiAgICBjb2xvckludGVycG9sYXRpb246ICdjb2xvci1pbnRlcnBvbGF0aW9uJyxcbiAgICBjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJyxcbiAgICBjb2xvclByb2ZpbGU6ICdjb2xvci1wcm9maWxlJyxcbiAgICBjb2xvclJlbmRlcmluZzogJ2NvbG9yLXJlbmRlcmluZycsXG4gICAgY3Jvc3NPcmlnaW46ICdjcm9zc29yaWdpbicsXG4gICAgZGF0YVR5cGU6ICdkYXRhdHlwZScsXG4gICAgZG9taW5hbnRCYXNlbGluZTogJ2RvbWluYW50LWJhc2VsaW5lJyxcbiAgICBlbmFibGVCYWNrZ3JvdW5kOiAnZW5hYmxlLWJhY2tncm91bmQnLFxuICAgIGZpbGxPcGFjaXR5OiAnZmlsbC1vcGFjaXR5JyxcbiAgICBmaWxsUnVsZTogJ2ZpbGwtcnVsZScsXG4gICAgZmxvb2RDb2xvcjogJ2Zsb29kLWNvbG9yJyxcbiAgICBmbG9vZE9wYWNpdHk6ICdmbG9vZC1vcGFjaXR5JyxcbiAgICBmb250RmFtaWx5OiAnZm9udC1mYW1pbHknLFxuICAgIGZvbnRTaXplOiAnZm9udC1zaXplJyxcbiAgICBmb250U2l6ZUFkanVzdDogJ2ZvbnQtc2l6ZS1hZGp1c3QnLFxuICAgIGZvbnRTdHJldGNoOiAnZm9udC1zdHJldGNoJyxcbiAgICBmb250U3R5bGU6ICdmb250LXN0eWxlJyxcbiAgICBmb250VmFyaWFudDogJ2ZvbnQtdmFyaWFudCcsXG4gICAgZm9udFdlaWdodDogJ2ZvbnQtd2VpZ2h0JyxcbiAgICBnbHlwaE5hbWU6ICdnbHlwaC1uYW1lJyxcbiAgICBnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDogJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnLFxuICAgIGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbDogJ2dseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsJyxcbiAgICBocmVmTGFuZzogJ2hyZWZsYW5nJyxcbiAgICBob3JpekFkdlg6ICdob3Jpei1hZHYteCcsXG4gICAgaG9yaXpPcmlnaW5YOiAnaG9yaXotb3JpZ2luLXgnLFxuICAgIGhvcml6T3JpZ2luWTogJ2hvcml6LW9yaWdpbi15JyxcbiAgICBpbWFnZVJlbmRlcmluZzogJ2ltYWdlLXJlbmRlcmluZycsXG4gICAgbGV0dGVyU3BhY2luZzogJ2xldHRlci1zcGFjaW5nJyxcbiAgICBsaWdodGluZ0NvbG9yOiAnbGlnaHRpbmctY29sb3InLFxuICAgIG1hcmtlckVuZDogJ21hcmtlci1lbmQnLFxuICAgIG1hcmtlck1pZDogJ21hcmtlci1taWQnLFxuICAgIG1hcmtlclN0YXJ0OiAnbWFya2VyLXN0YXJ0JyxcbiAgICBuYXZEb3duOiAnbmF2LWRvd24nLFxuICAgIG5hdkRvd25MZWZ0OiAnbmF2LWRvd24tbGVmdCcsXG4gICAgbmF2RG93blJpZ2h0OiAnbmF2LWRvd24tcmlnaHQnLFxuICAgIG5hdkxlZnQ6ICduYXYtbGVmdCcsXG4gICAgbmF2TmV4dDogJ25hdi1uZXh0JyxcbiAgICBuYXZQcmV2OiAnbmF2LXByZXYnLFxuICAgIG5hdlJpZ2h0OiAnbmF2LXJpZ2h0JyxcbiAgICBuYXZVcDogJ25hdi11cCcsXG4gICAgbmF2VXBMZWZ0OiAnbmF2LXVwLWxlZnQnLFxuICAgIG5hdlVwUmlnaHQ6ICduYXYtdXAtcmlnaHQnLFxuICAgIG9uQWJvcnQ6ICdvbmFib3J0JyxcbiAgICBvbkFjdGl2YXRlOiAnb25hY3RpdmF0ZScsXG4gICAgb25BZnRlclByaW50OiAnb25hZnRlcnByaW50JyxcbiAgICBvbkJlZm9yZVByaW50OiAnb25iZWZvcmVwcmludCcsXG4gICAgb25CZWdpbjogJ29uYmVnaW4nLFxuICAgIG9uQ2FuY2VsOiAnb25jYW5jZWwnLFxuICAgIG9uQ2FuUGxheTogJ29uY2FucGxheScsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogJ29uY2FucGxheXRocm91Z2gnLFxuICAgIG9uQ2hhbmdlOiAnb25jaGFuZ2UnLFxuICAgIG9uQ2xpY2s6ICdvbmNsaWNrJyxcbiAgICBvbkNsb3NlOiAnb25jbG9zZScsXG4gICAgb25Db3B5OiAnb25jb3B5JyxcbiAgICBvbkN1ZUNoYW5nZTogJ29uY3VlY2hhbmdlJyxcbiAgICBvbkN1dDogJ29uY3V0JyxcbiAgICBvbkRibENsaWNrOiAnb25kYmxjbGljaycsXG4gICAgb25EcmFnOiAnb25kcmFnJyxcbiAgICBvbkRyYWdFbmQ6ICdvbmRyYWdlbmQnLFxuICAgIG9uRHJhZ0VudGVyOiAnb25kcmFnZW50ZXInLFxuICAgIG9uRHJhZ0V4aXQ6ICdvbmRyYWdleGl0JyxcbiAgICBvbkRyYWdMZWF2ZTogJ29uZHJhZ2xlYXZlJyxcbiAgICBvbkRyYWdPdmVyOiAnb25kcmFnb3ZlcicsXG4gICAgb25EcmFnU3RhcnQ6ICdvbmRyYWdzdGFydCcsXG4gICAgb25Ecm9wOiAnb25kcm9wJyxcbiAgICBvbkR1cmF0aW9uQ2hhbmdlOiAnb25kdXJhdGlvbmNoYW5nZScsXG4gICAgb25FbXB0aWVkOiAnb25lbXB0aWVkJyxcbiAgICBvbkVuZDogJ29uZW5kJyxcbiAgICBvbkVuZGVkOiAnb25lbmRlZCcsXG4gICAgb25FcnJvcjogJ29uZXJyb3InLFxuICAgIG9uRm9jdXM6ICdvbmZvY3VzJyxcbiAgICBvbkZvY3VzSW46ICdvbmZvY3VzaW4nLFxuICAgIG9uRm9jdXNPdXQ6ICdvbmZvY3Vzb3V0JyxcbiAgICBvbkhhc2hDaGFuZ2U6ICdvbmhhc2hjaGFuZ2UnLFxuICAgIG9uSW5wdXQ6ICdvbmlucHV0JyxcbiAgICBvbkludmFsaWQ6ICdvbmludmFsaWQnLFxuICAgIG9uS2V5RG93bjogJ29ua2V5ZG93bicsXG4gICAgb25LZXlQcmVzczogJ29ua2V5cHJlc3MnLFxuICAgIG9uS2V5VXA6ICdvbmtleXVwJyxcbiAgICBvbkxvYWQ6ICdvbmxvYWQnLFxuICAgIG9uTG9hZGVkRGF0YTogJ29ubG9hZGVkZGF0YScsXG4gICAgb25Mb2FkZWRNZXRhZGF0YTogJ29ubG9hZGVkbWV0YWRhdGEnLFxuICAgIG9uTG9hZFN0YXJ0OiAnb25sb2Fkc3RhcnQnLFxuICAgIG9uTWVzc2FnZTogJ29ubWVzc2FnZScsXG4gICAgb25Nb3VzZURvd246ICdvbm1vdXNlZG93bicsXG4gICAgb25Nb3VzZUVudGVyOiAnb25tb3VzZWVudGVyJyxcbiAgICBvbk1vdXNlTGVhdmU6ICdvbm1vdXNlbGVhdmUnLFxuICAgIG9uTW91c2VNb3ZlOiAnb25tb3VzZW1vdmUnLFxuICAgIG9uTW91c2VPdXQ6ICdvbm1vdXNlb3V0JyxcbiAgICBvbk1vdXNlT3ZlcjogJ29ubW91c2VvdmVyJyxcbiAgICBvbk1vdXNlVXA6ICdvbm1vdXNldXAnLFxuICAgIG9uTW91c2VXaGVlbDogJ29ubW91c2V3aGVlbCcsXG4gICAgb25PZmZsaW5lOiAnb25vZmZsaW5lJyxcbiAgICBvbk9ubGluZTogJ29ub25saW5lJyxcbiAgICBvblBhZ2VIaWRlOiAnb25wYWdlaGlkZScsXG4gICAgb25QYWdlU2hvdzogJ29ucGFnZXNob3cnLFxuICAgIG9uUGFzdGU6ICdvbnBhc3RlJyxcbiAgICBvblBhdXNlOiAnb25wYXVzZScsXG4gICAgb25QbGF5OiAnb25wbGF5JyxcbiAgICBvblBsYXlpbmc6ICdvbnBsYXlpbmcnLFxuICAgIG9uUG9wU3RhdGU6ICdvbnBvcHN0YXRlJyxcbiAgICBvblByb2dyZXNzOiAnb25wcm9ncmVzcycsXG4gICAgb25SYXRlQ2hhbmdlOiAnb25yYXRlY2hhbmdlJyxcbiAgICBvblJlcGVhdDogJ29ucmVwZWF0JyxcbiAgICBvblJlc2V0OiAnb25yZXNldCcsXG4gICAgb25SZXNpemU6ICdvbnJlc2l6ZScsXG4gICAgb25TY3JvbGw6ICdvbnNjcm9sbCcsXG4gICAgb25TZWVrZWQ6ICdvbnNlZWtlZCcsXG4gICAgb25TZWVraW5nOiAnb25zZWVraW5nJyxcbiAgICBvblNlbGVjdDogJ29uc2VsZWN0JyxcbiAgICBvblNob3c6ICdvbnNob3cnLFxuICAgIG9uU3RhbGxlZDogJ29uc3RhbGxlZCcsXG4gICAgb25TdG9yYWdlOiAnb25zdG9yYWdlJyxcbiAgICBvblN1Ym1pdDogJ29uc3VibWl0JyxcbiAgICBvblN1c3BlbmQ6ICdvbnN1c3BlbmQnLFxuICAgIG9uVGltZVVwZGF0ZTogJ29udGltZXVwZGF0ZScsXG4gICAgb25Ub2dnbGU6ICdvbnRvZ2dsZScsXG4gICAgb25VbmxvYWQ6ICdvbnVubG9hZCcsXG4gICAgb25Wb2x1bWVDaGFuZ2U6ICdvbnZvbHVtZWNoYW5nZScsXG4gICAgb25XYWl0aW5nOiAnb253YWl0aW5nJyxcbiAgICBvblpvb206ICdvbnpvb20nLFxuICAgIG92ZXJsaW5lUG9zaXRpb246ICdvdmVybGluZS1wb3NpdGlvbicsXG4gICAgb3ZlcmxpbmVUaGlja25lc3M6ICdvdmVybGluZS10aGlja25lc3MnLFxuICAgIHBhaW50T3JkZXI6ICdwYWludC1vcmRlcicsXG4gICAgcGFub3NlMTogJ3Bhbm9zZS0xJyxcbiAgICBwb2ludGVyRXZlbnRzOiAncG9pbnRlci1ldmVudHMnLFxuICAgIHJlZmVycmVyUG9saWN5OiAncmVmZXJyZXJwb2xpY3knLFxuICAgIHJlbmRlcmluZ0ludGVudDogJ3JlbmRlcmluZy1pbnRlbnQnLFxuICAgIHNoYXBlUmVuZGVyaW5nOiAnc2hhcGUtcmVuZGVyaW5nJyxcbiAgICBzdG9wQ29sb3I6ICdzdG9wLWNvbG9yJyxcbiAgICBzdG9wT3BhY2l0eTogJ3N0b3Atb3BhY2l0eScsXG4gICAgc3RyaWtldGhyb3VnaFBvc2l0aW9uOiAnc3RyaWtldGhyb3VnaC1wb3NpdGlvbicsXG4gICAgc3RyaWtldGhyb3VnaFRoaWNrbmVzczogJ3N0cmlrZXRocm91Z2gtdGhpY2tuZXNzJyxcbiAgICBzdHJva2VEYXNoQXJyYXk6ICdzdHJva2UtZGFzaGFycmF5JyxcbiAgICBzdHJva2VEYXNoT2Zmc2V0OiAnc3Ryb2tlLWRhc2hvZmZzZXQnLFxuICAgIHN0cm9rZUxpbmVDYXA6ICdzdHJva2UtbGluZWNhcCcsXG4gICAgc3Ryb2tlTGluZUpvaW46ICdzdHJva2UtbGluZWpvaW4nLFxuICAgIHN0cm9rZU1pdGVyTGltaXQ6ICdzdHJva2UtbWl0ZXJsaW1pdCcsXG4gICAgc3Ryb2tlT3BhY2l0eTogJ3N0cm9rZS1vcGFjaXR5JyxcbiAgICBzdHJva2VXaWR0aDogJ3N0cm9rZS13aWR0aCcsXG4gICAgdGFiSW5kZXg6ICd0YWJpbmRleCcsXG4gICAgdGV4dEFuY2hvcjogJ3RleHQtYW5jaG9yJyxcbiAgICB0ZXh0RGVjb3JhdGlvbjogJ3RleHQtZGVjb3JhdGlvbicsXG4gICAgdGV4dFJlbmRlcmluZzogJ3RleHQtcmVuZGVyaW5nJyxcbiAgICB0cmFuc2Zvcm1PcmlnaW46ICd0cmFuc2Zvcm0tb3JpZ2luJyxcbiAgICB0eXBlT2Y6ICd0eXBlb2YnLFxuICAgIHVuZGVybGluZVBvc2l0aW9uOiAndW5kZXJsaW5lLXBvc2l0aW9uJyxcbiAgICB1bmRlcmxpbmVUaGlja25lc3M6ICd1bmRlcmxpbmUtdGhpY2tuZXNzJyxcbiAgICB1bmljb2RlQmlkaTogJ3VuaWNvZGUtYmlkaScsXG4gICAgdW5pY29kZVJhbmdlOiAndW5pY29kZS1yYW5nZScsXG4gICAgdW5pdHNQZXJFbTogJ3VuaXRzLXBlci1lbScsXG4gICAgdkFscGhhYmV0aWM6ICd2LWFscGhhYmV0aWMnLFxuICAgIHZIYW5naW5nOiAndi1oYW5naW5nJyxcbiAgICB2SWRlb2dyYXBoaWM6ICd2LWlkZW9ncmFwaGljJyxcbiAgICB2TWF0aGVtYXRpY2FsOiAndi1tYXRoZW1hdGljYWwnLFxuICAgIHZlY3RvckVmZmVjdDogJ3ZlY3Rvci1lZmZlY3QnLFxuICAgIHZlcnRBZHZZOiAndmVydC1hZHYteScsXG4gICAgdmVydE9yaWdpblg6ICd2ZXJ0LW9yaWdpbi14JyxcbiAgICB2ZXJ0T3JpZ2luWTogJ3ZlcnQtb3JpZ2luLXknLFxuICAgIHdvcmRTcGFjaW5nOiAnd29yZC1zcGFjaW5nJyxcbiAgICB3cml0aW5nTW9kZTogJ3dyaXRpbmctbW9kZScsXG4gICAgeEhlaWdodDogJ3gtaGVpZ2h0JyxcbiAgICAvLyBUaGVzZSB3ZXJlIGNhbWVsY2FzZWQgaW4gVGlueS4gTm93IGxvd2VyY2FzZWQgaW4gU1ZHIDJcbiAgICBwbGF5YmFja09yZGVyOiAncGxheWJhY2tvcmRlcicsXG4gICAgdGltZWxpbmVCZWdpbjogJ3RpbWVsaW5lYmVnaW4nXG4gIH0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhYm91dDogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIGFjY2VudEhlaWdodDogbnVtYmVyLFxuICAgIGFjY3VtdWxhdGU6IG51bGwsXG4gICAgYWRkaXRpdmU6IG51bGwsXG4gICAgYWxpZ25tZW50QmFzZWxpbmU6IG51bGwsXG4gICAgYWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIGFtcGxpdHVkZTogbnVtYmVyLFxuICAgIGFyYWJpY0Zvcm06IG51bGwsXG4gICAgYXNjZW50OiBudW1iZXIsXG4gICAgYXR0cmlidXRlTmFtZTogbnVsbCxcbiAgICBhdHRyaWJ1dGVUeXBlOiBudWxsLFxuICAgIGF6aW11dGg6IG51bWJlcixcbiAgICBiYW5kd2lkdGg6IG51bGwsXG4gICAgYmFzZWxpbmVTaGlmdDogbnVsbCxcbiAgICBiYXNlRnJlcXVlbmN5OiBudWxsLFxuICAgIGJhc2VQcm9maWxlOiBudWxsLFxuICAgIGJib3g6IG51bGwsXG4gICAgYmVnaW46IG51bGwsXG4gICAgYmlhczogbnVtYmVyLFxuICAgIGJ5OiBudWxsLFxuICAgIGNhbGNNb2RlOiBudWxsLFxuICAgIGNhcEhlaWdodDogbnVtYmVyLFxuICAgIGNsYXNzTmFtZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY2xpcDogbnVsbCxcbiAgICBjbGlwUGF0aDogbnVsbCxcbiAgICBjbGlwUGF0aFVuaXRzOiBudWxsLFxuICAgIGNsaXBSdWxlOiBudWxsLFxuICAgIGNvbG9yOiBudWxsLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbjogbnVsbCxcbiAgICBjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiBudWxsLFxuICAgIGNvbG9yUHJvZmlsZTogbnVsbCxcbiAgICBjb2xvclJlbmRlcmluZzogbnVsbCxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGNvbnRlbnRTY3JpcHRUeXBlOiBudWxsLFxuICAgIGNvbnRlbnRTdHlsZVR5cGU6IG51bGwsXG4gICAgY3Jvc3NPcmlnaW46IG51bGwsXG4gICAgY3Vyc29yOiBudWxsLFxuICAgIGN4OiBudWxsLFxuICAgIGN5OiBudWxsLFxuICAgIGQ6IG51bGwsXG4gICAgZGF0YVR5cGU6IG51bGwsXG4gICAgZGVmYXVsdEFjdGlvbjogbnVsbCxcbiAgICBkZXNjZW50OiBudW1iZXIsXG4gICAgZGlmZnVzZUNvbnN0YW50OiBudW1iZXIsXG4gICAgZGlyZWN0aW9uOiBudWxsLFxuICAgIGRpc3BsYXk6IG51bGwsXG4gICAgZHVyOiBudWxsLFxuICAgIGRpdmlzb3I6IG51bWJlcixcbiAgICBkb21pbmFudEJhc2VsaW5lOiBudWxsLFxuICAgIGRvd25sb2FkOiBib29sZWFuLFxuICAgIGR4OiBudWxsLFxuICAgIGR5OiBudWxsLFxuICAgIGVkZ2VNb2RlOiBudWxsLFxuICAgIGVkaXRhYmxlOiBudWxsLFxuICAgIGVsZXZhdGlvbjogbnVtYmVyLFxuICAgIGVuYWJsZUJhY2tncm91bmQ6IG51bGwsXG4gICAgZW5kOiBudWxsLFxuICAgIGV2ZW50OiBudWxsLFxuICAgIGV4cG9uZW50OiBudW1iZXIsXG4gICAgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDogbnVsbCxcbiAgICBmaWxsOiBudWxsLFxuICAgIGZpbGxPcGFjaXR5OiBudW1iZXIsXG4gICAgZmlsbFJ1bGU6IG51bGwsXG4gICAgZmlsdGVyOiBudWxsLFxuICAgIGZpbHRlclJlczogbnVsbCxcbiAgICBmaWx0ZXJVbml0czogbnVsbCxcbiAgICBmbG9vZENvbG9yOiBudWxsLFxuICAgIGZsb29kT3BhY2l0eTogbnVsbCxcbiAgICBmb2N1c2FibGU6IG51bGwsXG4gICAgZm9jdXNIaWdobGlnaHQ6IG51bGwsXG4gICAgZm9udEZhbWlseTogbnVsbCxcbiAgICBmb250U2l6ZTogbnVsbCxcbiAgICBmb250U2l6ZUFkanVzdDogbnVsbCxcbiAgICBmb250U3RyZXRjaDogbnVsbCxcbiAgICBmb250U3R5bGU6IG51bGwsXG4gICAgZm9udFZhcmlhbnQ6IG51bGwsXG4gICAgZm9udFdlaWdodDogbnVsbCxcbiAgICBmb3JtYXQ6IG51bGwsXG4gICAgZnI6IG51bGwsXG4gICAgZnJvbTogbnVsbCxcbiAgICBmeDogbnVsbCxcbiAgICBmeTogbnVsbCxcbiAgICBnMTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZzI6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGdseXBoTmFtZTogY29tbWFTZXBhcmF0ZWQsXG4gICAgZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6IG51bGwsXG4gICAgZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiBudWxsLFxuICAgIGdseXBoUmVmOiBudWxsLFxuICAgIGdyYWRpZW50VHJhbnNmb3JtOiBudWxsLFxuICAgIGdyYWRpZW50VW5pdHM6IG51bGwsXG4gICAgaGFuZGxlcjogbnVsbCxcbiAgICBoYW5naW5nOiBudW1iZXIsXG4gICAgaGF0Y2hDb250ZW50VW5pdHM6IG51bGwsXG4gICAgaGF0Y2hVbml0czogbnVsbCxcbiAgICBoZWlnaHQ6IG51bGwsXG4gICAgaHJlZjogbnVsbCxcbiAgICBocmVmTGFuZzogbnVsbCxcbiAgICBob3JpekFkdlg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblg6IG51bWJlcixcbiAgICBob3Jpek9yaWdpblk6IG51bWJlcixcbiAgICBpZDogbnVsbCxcbiAgICBpZGVvZ3JhcGhpYzogbnVtYmVyLFxuICAgIGltYWdlUmVuZGVyaW5nOiBudWxsLFxuICAgIGluaXRpYWxWaXNpYmlsaXR5OiBudWxsLFxuICAgIGluOiBudWxsLFxuICAgIGluMjogbnVsbCxcbiAgICBpbnRlcmNlcHQ6IG51bWJlcixcbiAgICBrOiBudW1iZXIsXG4gICAgazE6IG51bWJlcixcbiAgICBrMjogbnVtYmVyLFxuICAgIGszOiBudW1iZXIsXG4gICAgazQ6IG51bWJlcixcbiAgICBrZXJuZWxNYXRyaXg6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBrZXJuZWxVbml0TGVuZ3RoOiBudWxsLFxuICAgIGtleVBvaW50czogbnVsbCwgLy8gU0VNSV9DT0xPTl9TRVBBUkFURURcbiAgICBrZXlTcGxpbmVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtleVRpbWVzOiBudWxsLCAvLyBTRU1JX0NPTE9OX1NFUEFSQVRFRFxuICAgIGtlcm5pbmc6IG51bGwsXG4gICAgbGFuZzogbnVsbCxcbiAgICBsZW5ndGhBZGp1c3Q6IG51bGwsXG4gICAgbGV0dGVyU3BhY2luZzogbnVsbCxcbiAgICBsaWdodGluZ0NvbG9yOiBudWxsLFxuICAgIGxpbWl0aW5nQ29uZUFuZ2xlOiBudW1iZXIsXG4gICAgbG9jYWw6IG51bGwsXG4gICAgbWFya2VyRW5kOiBudWxsLFxuICAgIG1hcmtlck1pZDogbnVsbCxcbiAgICBtYXJrZXJTdGFydDogbnVsbCxcbiAgICBtYXJrZXJIZWlnaHQ6IG51bGwsXG4gICAgbWFya2VyVW5pdHM6IG51bGwsXG4gICAgbWFya2VyV2lkdGg6IG51bGwsXG4gICAgbWFzazogbnVsbCxcbiAgICBtYXNrQ29udGVudFVuaXRzOiBudWxsLFxuICAgIG1hc2tVbml0czogbnVsbCxcbiAgICBtYXRoZW1hdGljYWw6IG51bGwsXG4gICAgbWF4OiBudWxsLFxuICAgIG1lZGlhOiBudWxsLFxuICAgIG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6IG51bGwsXG4gICAgbWVkaWFDb250ZW50RW5jb2RpbmdzOiBudWxsLFxuICAgIG1lZGlhU2l6ZTogbnVtYmVyLFxuICAgIG1lZGlhVGltZTogbnVsbCxcbiAgICBtZXRob2Q6IG51bGwsXG4gICAgbWluOiBudWxsLFxuICAgIG1vZGU6IG51bGwsXG4gICAgbmFtZTogbnVsbCxcbiAgICBuYXZEb3duOiBudWxsLFxuICAgIG5hdkRvd25MZWZ0OiBudWxsLFxuICAgIG5hdkRvd25SaWdodDogbnVsbCxcbiAgICBuYXZMZWZ0OiBudWxsLFxuICAgIG5hdk5leHQ6IG51bGwsXG4gICAgbmF2UHJldjogbnVsbCxcbiAgICBuYXZSaWdodDogbnVsbCxcbiAgICBuYXZVcDogbnVsbCxcbiAgICBuYXZVcExlZnQ6IG51bGwsXG4gICAgbmF2VXBSaWdodDogbnVsbCxcbiAgICBudW1PY3RhdmVzOiBudWxsLFxuICAgIG9ic2VydmVyOiBudWxsLFxuICAgIG9mZnNldDogbnVsbCxcbiAgICBvbkFib3J0OiBudWxsLFxuICAgIG9uQWN0aXZhdGU6IG51bGwsXG4gICAgb25BZnRlclByaW50OiBudWxsLFxuICAgIG9uQmVmb3JlUHJpbnQ6IG51bGwsXG4gICAgb25CZWdpbjogbnVsbCxcbiAgICBvbkNhbmNlbDogbnVsbCxcbiAgICBvbkNhblBsYXk6IG51bGwsXG4gICAgb25DYW5QbGF5VGhyb3VnaDogbnVsbCxcbiAgICBvbkNoYW5nZTogbnVsbCxcbiAgICBvbkNsaWNrOiBudWxsLFxuICAgIG9uQ2xvc2U6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9jdXNJbjogbnVsbCxcbiAgICBvbkZvY3VzT3V0OiBudWxsLFxuICAgIG9uSGFzaENoYW5nZTogbnVsbCxcbiAgICBvbklucHV0OiBudWxsLFxuICAgIG9uSW52YWxpZDogbnVsbCxcbiAgICBvbktleURvd246IG51bGwsXG4gICAgb25LZXlQcmVzczogbnVsbCxcbiAgICBvbktleVVwOiBudWxsLFxuICAgIG9uTG9hZDogbnVsbCxcbiAgICBvbkxvYWRlZERhdGE6IG51bGwsXG4gICAgb25Mb2FkZWRNZXRhZGF0YTogbnVsbCxcbiAgICBvbkxvYWRTdGFydDogbnVsbCxcbiAgICBvbk1lc3NhZ2U6IG51bGwsXG4gICAgb25Nb3VzZURvd246IG51bGwsXG4gICAgb25Nb3VzZUVudGVyOiBudWxsLFxuICAgIG9uTW91c2VMZWF2ZTogbnVsbCxcbiAgICBvbk1vdXNlTW92ZTogbnVsbCxcbiAgICBvbk1vdXNlT3V0OiBudWxsLFxuICAgIG9uTW91c2VPdmVyOiBudWxsLFxuICAgIG9uTW91c2VVcDogbnVsbCxcbiAgICBvbk1vdXNlV2hlZWw6IG51bGwsXG4gICAgb25PZmZsaW5lOiBudWxsLFxuICAgIG9uT25saW5lOiBudWxsLFxuICAgIG9uUGFnZUhpZGU6IG51bGwsXG4gICAgb25QYWdlU2hvdzogbnVsbCxcbiAgICBvblBhc3RlOiBudWxsLFxuICAgIG9uUGF1c2U6IG51bGwsXG4gICAgb25QbGF5OiBudWxsLFxuICAgIG9uUGxheWluZzogbnVsbCxcbiAgICBvblBvcFN0YXRlOiBudWxsLFxuICAgIG9uUHJvZ3Jlc3M6IG51bGwsXG4gICAgb25SYXRlQ2hhbmdlOiBudWxsLFxuICAgIG9uUmVwZWF0OiBudWxsLFxuICAgIG9uUmVzZXQ6IG51bGwsXG4gICAgb25SZXNpemU6IG51bGwsXG4gICAgb25TY3JvbGw6IG51bGwsXG4gICAgb25TZWVrZWQ6IG51bGwsXG4gICAgb25TZWVraW5nOiBudWxsLFxuICAgIG9uU2VsZWN0OiBudWxsLFxuICAgIG9uU2hvdzogbnVsbCxcbiAgICBvblN0YWxsZWQ6IG51bGwsXG4gICAgb25TdG9yYWdlOiBudWxsLFxuICAgIG9uU3VibWl0OiBudWxsLFxuICAgIG9uU3VzcGVuZDogbnVsbCxcbiAgICBvblRpbWVVcGRhdGU6IG51bGwsXG4gICAgb25Ub2dnbGU6IG51bGwsXG4gICAgb25VbmxvYWQ6IG51bGwsXG4gICAgb25Wb2x1bWVDaGFuZ2U6IG51bGwsXG4gICAgb25XYWl0aW5nOiBudWxsLFxuICAgIG9uWm9vbTogbnVsbCxcbiAgICBvcGFjaXR5OiBudWxsLFxuICAgIG9wZXJhdG9yOiBudWxsLFxuICAgIG9yZGVyOiBudWxsLFxuICAgIG9yaWVudDogbnVsbCxcbiAgICBvcmllbnRhdGlvbjogbnVsbCxcbiAgICBvcmlnaW46IG51bGwsXG4gICAgb3ZlcmZsb3c6IG51bGwsXG4gICAgb3ZlcmxheTogbnVsbCxcbiAgICBvdmVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgb3ZlcmxpbmVUaGlja25lc3M6IG51bWJlcixcbiAgICBwYWludE9yZGVyOiBudWxsLFxuICAgIHBhbm9zZTE6IG51bGwsXG4gICAgcGF0aDogbnVsbCxcbiAgICBwYXRoTGVuZ3RoOiBudW1iZXIsXG4gICAgcGF0dGVybkNvbnRlbnRVbml0czogbnVsbCxcbiAgICBwYXR0ZXJuVHJhbnNmb3JtOiBudWxsLFxuICAgIHBhdHRlcm5Vbml0czogbnVsbCxcbiAgICBwaGFzZTogbnVsbCxcbiAgICBwaW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBwaXRjaDogbnVsbCxcbiAgICBwbGF5YmFja09yZGVyOiBudWxsLFxuICAgIHBvaW50ZXJFdmVudHM6IG51bGwsXG4gICAgcG9pbnRzOiBudWxsLFxuICAgIHBvaW50c0F0WDogbnVtYmVyLFxuICAgIHBvaW50c0F0WTogbnVtYmVyLFxuICAgIHBvaW50c0F0WjogbnVtYmVyLFxuICAgIHByZXNlcnZlQWxwaGE6IG51bGwsXG4gICAgcHJlc2VydmVBc3BlY3RSYXRpbzogbnVsbCxcbiAgICBwcmltaXRpdmVVbml0czogbnVsbCxcbiAgICBwcm9wYWdhdGU6IG51bGwsXG4gICAgcHJvcGVydHk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByOiBudWxsLFxuICAgIHJhZGl1czogbnVsbCxcbiAgICByZWZlcnJlclBvbGljeTogbnVsbCxcbiAgICByZWZYOiBudWxsLFxuICAgIHJlZlk6IG51bGwsXG4gICAgcmVsOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmV2OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVuZGVyaW5nSW50ZW50OiBudWxsLFxuICAgIHJlcGVhdENvdW50OiBudWxsLFxuICAgIHJlcGVhdER1cjogbnVsbCxcbiAgICByZXF1aXJlZEV4dGVuc2lvbnM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZEZlYXR1cmVzOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWRGb250czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlcXVpcmVkRm9ybWF0czogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlc291cmNlOiBudWxsLFxuICAgIHJlc3RhcnQ6IG51bGwsXG4gICAgcmVzdWx0OiBudWxsLFxuICAgIHJvdGF0ZTogbnVsbCxcbiAgICByeDogbnVsbCxcbiAgICByeTogbnVsbCxcbiAgICBzY2FsZTogbnVsbCxcbiAgICBzZWVkOiBudWxsLFxuICAgIHNoYXBlUmVuZGVyaW5nOiBudWxsLFxuICAgIHNpZGU6IG51bGwsXG4gICAgc2xvcGU6IG51bGwsXG4gICAgc25hcHNob3RUaW1lOiBudWxsLFxuICAgIHNwZWN1bGFyQ29uc3RhbnQ6IG51bWJlcixcbiAgICBzcGVjdWxhckV4cG9uZW50OiBudW1iZXIsXG4gICAgc3ByZWFkTWV0aG9kOiBudWxsLFxuICAgIHNwYWNpbmc6IG51bGwsXG4gICAgc3RhcnRPZmZzZXQ6IG51bGwsXG4gICAgc3RkRGV2aWF0aW9uOiBudWxsLFxuICAgIHN0ZW1oOiBudWxsLFxuICAgIHN0ZW12OiBudWxsLFxuICAgIHN0aXRjaFRpbGVzOiBudWxsLFxuICAgIHN0b3BDb2xvcjogbnVsbCxcbiAgICBzdG9wT3BhY2l0eTogbnVsbCxcbiAgICBzdHJpa2V0aHJvdWdoUG9zaXRpb246IG51bWJlcixcbiAgICBzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgc3RyaW5nOiBudWxsLFxuICAgIHN0cm9rZTogbnVsbCxcbiAgICBzdHJva2VEYXNoQXJyYXk6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBzdHJva2VEYXNoT2Zmc2V0OiBudWxsLFxuICAgIHN0cm9rZUxpbmVDYXA6IG51bGwsXG4gICAgc3Ryb2tlTGluZUpvaW46IG51bGwsXG4gICAgc3Ryb2tlTWl0ZXJMaW1pdDogbnVtYmVyLFxuICAgIHN0cm9rZU9wYWNpdHk6IG51bWJlcixcbiAgICBzdHJva2VXaWR0aDogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICBzdXJmYWNlU2NhbGU6IG51bWJlcixcbiAgICBzeW5jQmVoYXZpb3I6IG51bGwsXG4gICAgc3luY0JlaGF2aW9yRGVmYXVsdDogbnVsbCxcbiAgICBzeW5jTWFzdGVyOiBudWxsLFxuICAgIHN5bmNUb2xlcmFuY2U6IG51bGwsXG4gICAgc3luY1RvbGVyYW5jZURlZmF1bHQ6IG51bGwsXG4gICAgc3lzdGVtTGFuZ3VhZ2U6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0YWJJbmRleDogbnVtYmVyLFxuICAgIHRhYmxlVmFsdWVzOiBudWxsLFxuICAgIHRhcmdldDogbnVsbCxcbiAgICB0YXJnZXRYOiBudW1iZXIsXG4gICAgdGFyZ2V0WTogbnVtYmVyLFxuICAgIHRleHRBbmNob3I6IG51bGwsXG4gICAgdGV4dERlY29yYXRpb246IG51bGwsXG4gICAgdGV4dFJlbmRlcmluZzogbnVsbCxcbiAgICB0ZXh0TGVuZ3RoOiBudWxsLFxuICAgIHRpbWVsaW5lQmVnaW46IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNmb3JtQmVoYXZpb3I6IG51bGwsXG4gICAgdHlwZTogbnVsbCxcbiAgICB0eXBlT2Y6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICB0bzogbnVsbCxcbiAgICB0cmFuc2Zvcm06IG51bGwsXG4gICAgdHJhbnNmb3JtT3JpZ2luOiBudWxsLFxuICAgIHUxOiBudWxsLFxuICAgIHUyOiBudWxsLFxuICAgIHVuZGVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgdW5pY29kZTogbnVsbCxcbiAgICB1bmljb2RlQmlkaTogbnVsbCxcbiAgICB1bmljb2RlUmFuZ2U6IG51bGwsXG4gICAgdW5pdHNQZXJFbTogbnVtYmVyLFxuICAgIHZhbHVlczogbnVsbCxcbiAgICB2QWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIHZNYXRoZW1hdGljYWw6IG51bWJlcixcbiAgICB2ZWN0b3JFZmZlY3Q6IG51bGwsXG4gICAgdkhhbmdpbmc6IG51bWJlcixcbiAgICB2SWRlb2dyYXBoaWM6IG51bWJlcixcbiAgICB2ZXJzaW9uOiBudWxsLFxuICAgIHZlcnRBZHZZOiBudW1iZXIsXG4gICAgdmVydE9yaWdpblg6IG51bWJlcixcbiAgICB2ZXJ0T3JpZ2luWTogbnVtYmVyLFxuICAgIHZpZXdCb3g6IG51bGwsXG4gICAgdmlld1RhcmdldDogbnVsbCxcbiAgICB2aXNpYmlsaXR5OiBudWxsLFxuICAgIHdpZHRoOiBudWxsLFxuICAgIHdpZHRoczogbnVsbCxcbiAgICB3b3JkU3BhY2luZzogbnVsbCxcbiAgICB3cml0aW5nTW9kZTogbnVsbCxcbiAgICB4OiBudWxsLFxuICAgIHgxOiBudWxsLFxuICAgIHgyOiBudWxsLFxuICAgIHhDaGFubmVsU2VsZWN0b3I6IG51bGwsXG4gICAgeEhlaWdodDogbnVtYmVyLFxuICAgIHk6IG51bGwsXG4gICAgeTE6IG51bGwsXG4gICAgeTI6IG51bGwsXG4gICAgeUNoYW5uZWxTZWxlY3RvcjogbnVsbCxcbiAgICB6OiBudWxsLFxuICAgIHpvb21BbmRQYW46IG51bGxcbiAgfSxcbiAgc3BhY2U6ICdzdmcnLFxuICB0cmFuc2Zvcm06IGNhc2VTZW5zaXRpdmVUcmFuc2Zvcm1cbn0pXG4iLCAiaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5cbmV4cG9ydCBjb25zdCB4bGluayA9IGNyZWF0ZSh7XG4gIHByb3BlcnRpZXM6IHtcbiAgICB4TGlua0FjdHVhdGU6IG51bGwsXG4gICAgeExpbmtBcmNSb2xlOiBudWxsLFxuICAgIHhMaW5rSHJlZjogbnVsbCxcbiAgICB4TGlua1JvbGU6IG51bGwsXG4gICAgeExpbmtTaG93OiBudWxsLFxuICAgIHhMaW5rVGl0bGU6IG51bGwsXG4gICAgeExpbmtUeXBlOiBudWxsXG4gIH0sXG4gIHNwYWNlOiAneGxpbmsnLFxuICB0cmFuc2Zvcm0oXywgcHJvcGVydHkpIHtcbiAgICByZXR1cm4gJ3hsaW5rOicgKyBwcm9wZXJ0eS5zbGljZSg1KS50b0xvd2VyQ2FzZSgpXG4gIH1cbn0pXG4iLCAiaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5pbXBvcnQge2Nhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzJ1xuXG5leHBvcnQgY29uc3QgeG1sbnMgPSBjcmVhdGUoe1xuICBhdHRyaWJ1dGVzOiB7eG1sbnN4bGluazogJ3htbG5zOnhsaW5rJ30sXG4gIHByb3BlcnRpZXM6IHt4bWxuc1hMaW5rOiBudWxsLCB4bWxuczogbnVsbH0sXG4gIHNwYWNlOiAneG1sbnMnLFxuICB0cmFuc2Zvcm06IGNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybVxufSlcbiIsICJpbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcblxuZXhwb3J0IGNvbnN0IHhtbCA9IGNyZWF0ZSh7XG4gIHByb3BlcnRpZXM6IHt4bWxCYXNlOiBudWxsLCB4bWxMYW5nOiBudWxsLCB4bWxTcGFjZTogbnVsbH0sXG4gIHNwYWNlOiAneG1sJyxcbiAgdHJhbnNmb3JtKF8sIHByb3BlcnR5KSB7XG4gICAgcmV0dXJuICd4bWw6JyArIHByb3BlcnR5LnNsaWNlKDMpLnRvTG93ZXJDYXNlKClcbiAgfVxufSlcbiIsICIvKipcbiAqIFNwZWNpYWwgY2FzZXMgZm9yIFJlYWN0IChgUmVjb3JkPHN0cmluZywgc3RyaW5nPmApLlxuICpcbiAqIGBoYXN0YCBpcyBjbG9zZSB0byBgUmVhY3RgIGJ1dCBkaWZmZXJzIGluIGEgY291cGxlIG9mIGNhc2VzLlxuICogVG8gZ2V0IGEgUmVhY3QgcHJvcGVydHkgZnJvbSBhIGhhc3QgcHJvcGVydHksXG4gKiBjaGVjayBpZiBpdCBpcyBpbiBgaGFzdFRvUmVhY3RgLlxuICogSWYgaXQgaXMsIHVzZSB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZTtcbiAqIG90aGVyd2lzZSwgdXNlIHRoZSBoYXN0IHByb3BlcnR5LlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgaGFzdFRvUmVhY3QgPSB7XG4gIGNsYXNzSWQ6ICdjbGFzc0lEJyxcbiAgZGF0YVR5cGU6ICdkYXRhdHlwZScsXG4gIGl0ZW1JZDogJ2l0ZW1JRCcsXG4gIHN0cm9rZURhc2hBcnJheTogJ3N0cm9rZURhc2hhcnJheScsXG4gIHN0cm9rZURhc2hPZmZzZXQ6ICdzdHJva2VEYXNob2Zmc2V0JyxcbiAgc3Ryb2tlTGluZUNhcDogJ3N0cm9rZUxpbmVjYXAnLFxuICBzdHJva2VMaW5lSm9pbjogJ3N0cm9rZUxpbmVqb2luJyxcbiAgc3Ryb2tlTWl0ZXJMaW1pdDogJ3N0cm9rZU1pdGVybGltaXQnLFxuICB0eXBlT2Y6ICd0eXBlb2YnLFxuICB4TGlua0FjdHVhdGU6ICd4bGlua0FjdHVhdGUnLFxuICB4TGlua0FyY1JvbGU6ICd4bGlua0FyY3JvbGUnLFxuICB4TGlua0hyZWY6ICd4bGlua0hyZWYnLFxuICB4TGlua1JvbGU6ICd4bGlua1JvbGUnLFxuICB4TGlua1Nob3c6ICd4bGlua1Nob3cnLFxuICB4TGlua1RpdGxlOiAneGxpbmtUaXRsZScsXG4gIHhMaW5rVHlwZTogJ3hsaW5rVHlwZScsXG4gIHhtbG5zWExpbms6ICd4bWxuc1hsaW5rJ1xufVxuIiwgIi8qKlxuICogQGltcG9ydCB7U2NoZW1hfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbiAqL1xuXG5pbXBvcnQge0RlZmluZWRJbmZvfSBmcm9tICcuL3V0aWwvZGVmaW5lZC1pbmZvLmpzJ1xuaW1wb3J0IHtJbmZvfSBmcm9tICcuL3V0aWwvaW5mby5qcydcbmltcG9ydCB7bm9ybWFsaXplfSBmcm9tICcuL25vcm1hbGl6ZS5qcydcblxuY29uc3QgY2FwID0gL1tBLVpdL2dcbmNvbnN0IGRhc2ggPSAvLVthLXpdL2dcbmNvbnN0IHZhbGlkID0gL15kYXRhWy1cXHcuOl0rJC9pXG5cbi8qKlxuICogTG9vayB1cCBpbmZvIG9uIGEgcHJvcGVydHkuXG4gKlxuICogSW4gbW9zdCBjYXNlcyB0aGUgZ2l2ZW4gYHNjaGVtYWAgY29udGFpbnMgaW5mbyBvbiB0aGUgcHJvcGVydHkuXG4gKiBBbGwgc3RhbmRhcmQsXG4gKiBtb3N0IGxlZ2FjeSxcbiAqIGFuZCBzb21lIG5vbi1zdGFuZGFyZCBwcm9wZXJ0aWVzIGFyZSBzdXBwb3J0ZWQuXG4gKiBGb3IgdGhlc2UgY2FzZXMsXG4gKiB0aGUgcmV0dXJuZWQgYEluZm9gIGhhcyBoaW50cyBhYm91dCB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5LlxuICpcbiAqIGBuYW1lYCBjYW4gYWxzbyBiZSBhIHZhbGlkIGRhdGEgYXR0cmlidXRlIG9yIHByb3BlcnR5LFxuICogaW4gd2hpY2ggY2FzZSBhbiBgSW5mb2Agb2JqZWN0IHdpdGggdGhlIGNvcnJlY3RseSBjYXNlZCBgYXR0cmlidXRlYCBhbmRcbiAqIGBwcm9wZXJ0eWAgaXMgcmV0dXJuZWQuXG4gKlxuICogYG5hbWVgIGNhbiBiZSBhbiB1bmtub3duIGF0dHJpYnV0ZSxcbiAqIGluIHdoaWNoIGNhc2UgYW4gYEluZm9gIG9iamVjdCB3aXRoIGBhdHRyaWJ1dGVgIGFuZCBgcHJvcGVydHlgIHNldCB0byB0aGVcbiAqIGdpdmVuIG5hbWUgaXMgcmV0dXJuZWQuXG4gKiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gcHJvdmlkZSB1bnN1cHBvcnRlZCBsZWdhY3kgb3IgcmVjZW50bHkgc3BlY2NlZFxuICogcHJvcGVydGllcy5cbiAqXG4gKlxuICogQHBhcmFtIHtTY2hlbWF9IHNjaGVtYVxuICogICBTY2hlbWE7XG4gKiAgIGVpdGhlciB0aGUgYGh0bWxgIG9yIGBzdmdgIGV4cG9ydC5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBBbiBhdHRyaWJ1dGUtbGlrZSBvciBwcm9wZXJ0eS1saWtlIG5hbWU7XG4gKiAgIGl0IHdpbGwgYmUgcGFzc2VkIHRocm91Z2ggYG5vcm1hbGl6ZWAgdG8gaG9wZWZ1bGx5IGZpbmQgdGhlIGNvcnJlY3QgaW5mby5cbiAqIEByZXR1cm5zIHtJbmZvfVxuICogICBJbmZvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZChzY2hlbWEsIHZhbHVlKSB7XG4gIGNvbnN0IG5vcm1hbCA9IG5vcm1hbGl6ZSh2YWx1ZSlcbiAgbGV0IHByb3BlcnR5ID0gdmFsdWVcbiAgbGV0IFR5cGUgPSBJbmZvXG5cbiAgaWYgKG5vcm1hbCBpbiBzY2hlbWEubm9ybWFsKSB7XG4gICAgcmV0dXJuIHNjaGVtYS5wcm9wZXJ0eVtzY2hlbWEubm9ybWFsW25vcm1hbF1dXG4gIH1cblxuICBpZiAobm9ybWFsLmxlbmd0aCA+IDQgJiYgbm9ybWFsLnNsaWNlKDAsIDQpID09PSAnZGF0YScgJiYgdmFsaWQudGVzdCh2YWx1ZSkpIHtcbiAgICAvLyBBdHRyaWJ1dGUgb3IgcHJvcGVydHkuXG4gICAgaWYgKHZhbHVlLmNoYXJBdCg0KSA9PT0gJy0nKSB7XG4gICAgICAvLyBUdXJuIGl0IGludG8gYSBwcm9wZXJ0eS5cbiAgICAgIGNvbnN0IHJlc3QgPSB2YWx1ZS5zbGljZSg1KS5yZXBsYWNlKGRhc2gsIGNhbWVsY2FzZSlcbiAgICAgIHByb3BlcnR5ID0gJ2RhdGEnICsgcmVzdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHJlc3Quc2xpY2UoMSlcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVHVybiBpdCBpbnRvIGFuIGF0dHJpYnV0ZS5cbiAgICAgIGNvbnN0IHJlc3QgPSB2YWx1ZS5zbGljZSg0KVxuXG4gICAgICBpZiAoIWRhc2gudGVzdChyZXN0KSkge1xuICAgICAgICBsZXQgZGFzaGVzID0gcmVzdC5yZXBsYWNlKGNhcCwga2ViYWIpXG5cbiAgICAgICAgaWYgKGRhc2hlcy5jaGFyQXQoMCkgIT09ICctJykge1xuICAgICAgICAgIGRhc2hlcyA9ICctJyArIGRhc2hlc1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWUgPSAnZGF0YScgKyBkYXNoZXNcbiAgICAgIH1cbiAgICB9XG5cbiAgICBUeXBlID0gRGVmaW5lZEluZm9cbiAgfVxuXG4gIHJldHVybiBuZXcgVHlwZShwcm9wZXJ0eSwgdmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiAgIFZhbHVlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgS2ViYWIuXG4gKi9cbmZ1bmN0aW9uIGtlYmFiKCQwKSB7XG4gIHJldHVybiAnLScgKyAkMC50b0xvd2VyQ2FzZSgpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiAgIFZhbHVlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgQ2FtZWwuXG4gKi9cbmZ1bmN0aW9uIGNhbWVsY2FzZSgkMCkge1xuICByZXR1cm4gJDAuY2hhckF0KDEpLnRvVXBwZXJDYXNlKClcbn1cbiIsICIvLyBOb3RlOiB0eXBlcyBleHBvc2VkIGZyb20gYGluZGV4LmQudHNgLlxuaW1wb3J0IHttZXJnZX0gZnJvbSAnLi9saWIvdXRpbC9tZXJnZS5qcydcbmltcG9ydCB7YXJpYX0gZnJvbSAnLi9saWIvYXJpYS5qcydcbmltcG9ydCB7aHRtbCBhcyBodG1sQmFzZX0gZnJvbSAnLi9saWIvaHRtbC5qcydcbmltcG9ydCB7c3ZnIGFzIHN2Z0Jhc2V9IGZyb20gJy4vbGliL3N2Zy5qcydcbmltcG9ydCB7eGxpbmt9IGZyb20gJy4vbGliL3hsaW5rLmpzJ1xuaW1wb3J0IHt4bWxuc30gZnJvbSAnLi9saWIveG1sbnMuanMnXG5pbXBvcnQge3htbH0gZnJvbSAnLi9saWIveG1sLmpzJ1xuXG5leHBvcnQge2hhc3RUb1JlYWN0fSBmcm9tICcuL2xpYi9oYXN0LXRvLXJlYWN0LmpzJ1xuXG5leHBvcnQgY29uc3QgaHRtbCA9IG1lcmdlKFthcmlhLCBodG1sQmFzZSwgeGxpbmssIHhtbG5zLCB4bWxdLCAnaHRtbCcpXG5cbmV4cG9ydCB7ZmluZH0gZnJvbSAnLi9saWIvZmluZC5qcydcbmV4cG9ydCB7bm9ybWFsaXplfSBmcm9tICcuL2xpYi9ub3JtYWxpemUuanMnXG5cbmV4cG9ydCBjb25zdCBzdmcgPSBtZXJnZShbYXJpYSwgc3ZnQmFzZSwgeGxpbmssIHhtbG5zLCB4bWxdLCAnc3ZnJylcbiIsICIvKipcbiAqIEB0eXBlZGVmIENvcmVPcHRpb25zXG4gKiBAcHJvcGVydHkge1JlYWRvbmx5QXJyYXk8c3RyaW5nPn0gW3N1YnNldD1bXV1cbiAqICAgV2hldGhlciB0byBvbmx5IGVzY2FwZSB0aGUgZ2l2ZW4gc3Vic2V0IG9mIGNoYXJhY3RlcnMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtlc2NhcGVPbmx5PWZhbHNlXVxuICogICBXaGV0aGVyIHRvIG9ubHkgZXNjYXBlIHBvc3NpYmx5IGRhbmdlcm91cyBjaGFyYWN0ZXJzLlxuICogICBUaG9zZSBjaGFyYWN0ZXJzIGFyZSBgXCJgLCBgJmAsIGAnYCwgYDxgLCBgPmAsIGFuZCBgYCBgIGBgLlxuICpcbiAqIEB0eXBlZGVmIEZvcm1hdE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7KGNvZGU6IG51bWJlciwgbmV4dDogbnVtYmVyLCBvcHRpb25zOiBDb3JlV2l0aEZvcm1hdE9wdGlvbnMpID0+IHN0cmluZ30gZm9ybWF0XG4gKiAgIEZvcm1hdCBzdHJhdGVneS5cbiAqXG4gKiBAdHlwZWRlZiB7Q29yZU9wdGlvbnMgJiBGb3JtYXRPcHRpb25zICYgaW1wb3J0KCcuL3V0aWwvZm9ybWF0LXNtYXJ0LmpzJykuRm9ybWF0U21hcnRPcHRpb25zfSBDb3JlV2l0aEZvcm1hdE9wdGlvbnNcbiAqL1xuXG5jb25zdCBkZWZhdWx0U3Vic2V0UmVnZXggPSAvW1wiJic8PmBdL2dcbmNvbnN0IHN1cnJvZ2F0ZVBhaXJzUmVnZXggPSAvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXS9nXG5jb25zdCBjb250cm9sQ2hhcmFjdGVyc1JlZ2V4ID1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnRyb2wtcmVnZXgsIHVuaWNvcm4vbm8taGV4LWVzY2FwZVxuICAvW1xceDAxLVxcdFxcdlxcZlxceDBFLVxceDFGXFx4N0ZcXHg4MVxceDhEXFx4OEZcXHg5MFxceDlEXFx4QTAtXFx1RkZGRl0vZ1xuY29uc3QgcmVnZXhFc2NhcGVSZWdleCA9IC9bfFxcXFx7fSgpW1xcXV4kKyo/Ll0vZ1xuXG4vKiogQHR5cGUge1dlYWtNYXA8UmVhZG9ubHlBcnJheTxzdHJpbmc+LCBSZWdFeHA+fSAqL1xuY29uc3Qgc3Vic2V0VG9SZWdleENhY2hlID0gbmV3IFdlYWtNYXAoKVxuXG4vKipcbiAqIEVuY29kZSBjZXJ0YWluIGNoYXJhY3RlcnMgaW4gYHZhbHVlYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7Q29yZVdpdGhGb3JtYXRPcHRpb25zfSBvcHRpb25zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29yZSh2YWx1ZSwgb3B0aW9ucykge1xuICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoXG4gICAgb3B0aW9ucy5zdWJzZXRcbiAgICAgID8gY2hhcmFjdGVyc1RvRXhwcmVzc2lvbkNhY2hlZChvcHRpb25zLnN1YnNldClcbiAgICAgIDogZGVmYXVsdFN1YnNldFJlZ2V4LFxuICAgIGJhc2ljXG4gIClcblxuICBpZiAob3B0aW9ucy5zdWJzZXQgfHwgb3B0aW9ucy5lc2NhcGVPbmx5KSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICByZXR1cm4gKFxuICAgIHZhbHVlXG4gICAgICAvLyBTdXJyb2dhdGUgcGFpcnMuXG4gICAgICAucmVwbGFjZShzdXJyb2dhdGVQYWlyc1JlZ2V4LCBzdXJyb2dhdGUpXG4gICAgICAvLyBCTVAgY29udHJvbCBjaGFyYWN0ZXJzIChDMCBleGNlcHQgZm9yIExGLCBDUiwgU1A7IERFTDsgYW5kIHNvbWUgbW9yZVxuICAgICAgLy8gbm9uLUFTQ0lJIG9uZXMpLlxuICAgICAgLnJlcGxhY2UoY29udHJvbENoYXJhY3RlcnNSZWdleCwgYmFzaWMpXG4gIClcblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhaXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbGxcbiAgICovXG4gIGZ1bmN0aW9uIHN1cnJvZ2F0ZShwYWlyLCBpbmRleCwgYWxsKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMuZm9ybWF0KFxuICAgICAgKHBhaXIuY2hhckNvZGVBdCgwKSAtIDB4ZDgwMCkgKiAweDQwMCArXG4gICAgICAgIHBhaXIuY2hhckNvZGVBdCgxKSAtXG4gICAgICAgIDB4ZGMwMCArXG4gICAgICAgIDB4MTAwMDAsXG4gICAgICBhbGwuY2hhckNvZGVBdChpbmRleCArIDIpLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hhcmFjdGVyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWxsXG4gICAqL1xuICBmdW5jdGlvbiBiYXNpYyhjaGFyYWN0ZXIsIGluZGV4LCBhbGwpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5mb3JtYXQoXG4gICAgICBjaGFyYWN0ZXIuY2hhckNvZGVBdCgwKSxcbiAgICAgIGFsbC5jaGFyQ29kZUF0KGluZGV4ICsgMSksXG4gICAgICBvcHRpb25zXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogQSB3cmFwcGVyIGZ1bmN0aW9uIHRoYXQgY2FjaGVzIHRoZSByZXN1bHQgb2YgYGNoYXJhY3RlcnNUb0V4cHJlc3Npb25gIHdpdGggYSBXZWFrTWFwLlxuICogVGhpcyBjYW4gaW1wcm92ZSBwZXJmb3JtYW5jZSB3aGVuIHRvb2xpbmcgY2FsbHMgYGNoYXJhY3RlcnNUb0V4cHJlc3Npb25gIHJlcGVhdGVkbHlcbiAqIHdpdGggdGhlIHNhbWUgc3Vic2V0LlxuICpcbiAqIEBwYXJhbSB7UmVhZG9ubHlBcnJheTxzdHJpbmc+fSBzdWJzZXRcbiAqIEByZXR1cm5zIHtSZWdFeHB9XG4gKi9cbmZ1bmN0aW9uIGNoYXJhY3RlcnNUb0V4cHJlc3Npb25DYWNoZWQoc3Vic2V0KSB7XG4gIGxldCBjYWNoZWQgPSBzdWJzZXRUb1JlZ2V4Q2FjaGUuZ2V0KHN1YnNldClcblxuICBpZiAoIWNhY2hlZCkge1xuICAgIGNhY2hlZCA9IGNoYXJhY3RlcnNUb0V4cHJlc3Npb24oc3Vic2V0KVxuICAgIHN1YnNldFRvUmVnZXhDYWNoZS5zZXQoc3Vic2V0LCBjYWNoZWQpXG4gIH1cblxuICByZXR1cm4gY2FjaGVkXG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWFkb25seUFycmF5PHN0cmluZz59IHN1YnNldFxuICogQHJldHVybnMge1JlZ0V4cH1cbiAqL1xuZnVuY3Rpb24gY2hhcmFjdGVyc1RvRXhwcmVzc2lvbihzdWJzZXQpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCBncm91cHMgPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgc3Vic2V0Lmxlbmd0aCkge1xuICAgIGdyb3Vwcy5wdXNoKHN1YnNldFtpbmRleF0ucmVwbGFjZShyZWdleEVzY2FwZVJlZ2V4LCAnXFxcXCQmJykpXG4gIH1cblxuICByZXR1cm4gbmV3IFJlZ0V4cCgnKD86JyArIGdyb3Vwcy5qb2luKCd8JykgKyAnKScsICdnJylcbn1cbiIsICJjb25zdCBoZXhhZGVjaW1hbFJlZ2V4ID0gL1tcXGRBLUZhLWZdL1xuXG4vKipcbiAqIENvbmZpZ3VyYWJsZSB3YXlzIHRvIGVuY29kZSBjaGFyYWN0ZXJzIGFzIGhleGFkZWNpbWFsIHJlZmVyZW5jZXMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGNvZGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBuZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBvbWl0XG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9IZXhhZGVjaW1hbChjb2RlLCBuZXh0LCBvbWl0KSB7XG4gIGNvbnN0IHZhbHVlID0gJyYjeCcgKyBjb2RlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpXG4gIHJldHVybiBvbWl0ICYmIG5leHQgJiYgIWhleGFkZWNpbWFsUmVnZXgudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKVxuICAgID8gdmFsdWVcbiAgICA6IHZhbHVlICsgJzsnXG59XG4iLCAiY29uc3QgZGVjaW1hbFJlZ2V4ID0gL1xcZC9cblxuLyoqXG4gKiBDb25maWd1cmFibGUgd2F5cyB0byBlbmNvZGUgY2hhcmFjdGVycyBhcyBkZWNpbWFsIHJlZmVyZW5jZXMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGNvZGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBuZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBvbWl0XG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9EZWNpbWFsKGNvZGUsIG5leHQsIG9taXQpIHtcbiAgY29uc3QgdmFsdWUgPSAnJiMnICsgU3RyaW5nKGNvZGUpXG4gIHJldHVybiBvbWl0ICYmIG5leHQgJiYgIWRlY2ltYWxSZWdleC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpXG4gICAgPyB2YWx1ZVxuICAgIDogdmFsdWUgKyAnOydcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgbGVnYWN5IEhUTUwgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgdGhhdCBkb25cdTIwMTl0IG5lZWQgYSB0cmFpbGluZyBzZW1pY29sb24uXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBjaGFyYWN0ZXJFbnRpdGllc0xlZ2FjeSA9IFtcbiAgJ0FFbGlnJyxcbiAgJ0FNUCcsXG4gICdBYWN1dGUnLFxuICAnQWNpcmMnLFxuICAnQWdyYXZlJyxcbiAgJ0FyaW5nJyxcbiAgJ0F0aWxkZScsXG4gICdBdW1sJyxcbiAgJ0NPUFknLFxuICAnQ2NlZGlsJyxcbiAgJ0VUSCcsXG4gICdFYWN1dGUnLFxuICAnRWNpcmMnLFxuICAnRWdyYXZlJyxcbiAgJ0V1bWwnLFxuICAnR1QnLFxuICAnSWFjdXRlJyxcbiAgJ0ljaXJjJyxcbiAgJ0lncmF2ZScsXG4gICdJdW1sJyxcbiAgJ0xUJyxcbiAgJ050aWxkZScsXG4gICdPYWN1dGUnLFxuICAnT2NpcmMnLFxuICAnT2dyYXZlJyxcbiAgJ09zbGFzaCcsXG4gICdPdGlsZGUnLFxuICAnT3VtbCcsXG4gICdRVU9UJyxcbiAgJ1JFRycsXG4gICdUSE9STicsXG4gICdVYWN1dGUnLFxuICAnVWNpcmMnLFxuICAnVWdyYXZlJyxcbiAgJ1V1bWwnLFxuICAnWWFjdXRlJyxcbiAgJ2FhY3V0ZScsXG4gICdhY2lyYycsXG4gICdhY3V0ZScsXG4gICdhZWxpZycsXG4gICdhZ3JhdmUnLFxuICAnYW1wJyxcbiAgJ2FyaW5nJyxcbiAgJ2F0aWxkZScsXG4gICdhdW1sJyxcbiAgJ2JydmJhcicsXG4gICdjY2VkaWwnLFxuICAnY2VkaWwnLFxuICAnY2VudCcsXG4gICdjb3B5JyxcbiAgJ2N1cnJlbicsXG4gICdkZWcnLFxuICAnZGl2aWRlJyxcbiAgJ2VhY3V0ZScsXG4gICdlY2lyYycsXG4gICdlZ3JhdmUnLFxuICAnZXRoJyxcbiAgJ2V1bWwnLFxuICAnZnJhYzEyJyxcbiAgJ2ZyYWMxNCcsXG4gICdmcmFjMzQnLFxuICAnZ3QnLFxuICAnaWFjdXRlJyxcbiAgJ2ljaXJjJyxcbiAgJ2lleGNsJyxcbiAgJ2lncmF2ZScsXG4gICdpcXVlc3QnLFxuICAnaXVtbCcsXG4gICdsYXF1bycsXG4gICdsdCcsXG4gICdtYWNyJyxcbiAgJ21pY3JvJyxcbiAgJ21pZGRvdCcsXG4gICduYnNwJyxcbiAgJ25vdCcsXG4gICdudGlsZGUnLFxuICAnb2FjdXRlJyxcbiAgJ29jaXJjJyxcbiAgJ29ncmF2ZScsXG4gICdvcmRmJyxcbiAgJ29yZG0nLFxuICAnb3NsYXNoJyxcbiAgJ290aWxkZScsXG4gICdvdW1sJyxcbiAgJ3BhcmEnLFxuICAncGx1c21uJyxcbiAgJ3BvdW5kJyxcbiAgJ3F1b3QnLFxuICAncmFxdW8nLFxuICAncmVnJyxcbiAgJ3NlY3QnLFxuICAnc2h5JyxcbiAgJ3N1cDEnLFxuICAnc3VwMicsXG4gICdzdXAzJyxcbiAgJ3N6bGlnJyxcbiAgJ3Rob3JuJyxcbiAgJ3RpbWVzJyxcbiAgJ3VhY3V0ZScsXG4gICd1Y2lyYycsXG4gICd1Z3JhdmUnLFxuICAndW1sJyxcbiAgJ3V1bWwnLFxuICAneWFjdXRlJyxcbiAgJ3llbicsXG4gICd5dW1sJ1xuXVxuIiwgIi8qKlxuICogTWFwIG9mIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIGZyb20gSFRNTCA0LlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgY2hhcmFjdGVyRW50aXRpZXNIdG1sNCA9IHtcbiAgbmJzcDogJ1x1MDBBMCcsXG4gIGlleGNsOiAnXHUwMEExJyxcbiAgY2VudDogJ1x1MDBBMicsXG4gIHBvdW5kOiAnXHUwMEEzJyxcbiAgY3VycmVuOiAnXHUwMEE0JyxcbiAgeWVuOiAnXHUwMEE1JyxcbiAgYnJ2YmFyOiAnXHUwMEE2JyxcbiAgc2VjdDogJ1x1MDBBNycsXG4gIHVtbDogJ1x1MDBBOCcsXG4gIGNvcHk6ICdcdTAwQTknLFxuICBvcmRmOiAnXHUwMEFBJyxcbiAgbGFxdW86ICdcdTAwQUInLFxuICBub3Q6ICdcdTAwQUMnLFxuICBzaHk6ICdcdTAwQUQnLFxuICByZWc6ICdcdTAwQUUnLFxuICBtYWNyOiAnXHUwMEFGJyxcbiAgZGVnOiAnXHUwMEIwJyxcbiAgcGx1c21uOiAnXHUwMEIxJyxcbiAgc3VwMjogJ1x1MDBCMicsXG4gIHN1cDM6ICdcdTAwQjMnLFxuICBhY3V0ZTogJ1x1MDBCNCcsXG4gIG1pY3JvOiAnXHUwMEI1JyxcbiAgcGFyYTogJ1x1MDBCNicsXG4gIG1pZGRvdDogJ1x1MDBCNycsXG4gIGNlZGlsOiAnXHUwMEI4JyxcbiAgc3VwMTogJ1x1MDBCOScsXG4gIG9yZG06ICdcdTAwQkEnLFxuICByYXF1bzogJ1x1MDBCQicsXG4gIGZyYWMxNDogJ1x1MDBCQycsXG4gIGZyYWMxMjogJ1x1MDBCRCcsXG4gIGZyYWMzNDogJ1x1MDBCRScsXG4gIGlxdWVzdDogJ1x1MDBCRicsXG4gIEFncmF2ZTogJ1x1MDBDMCcsXG4gIEFhY3V0ZTogJ1x1MDBDMScsXG4gIEFjaXJjOiAnXHUwMEMyJyxcbiAgQXRpbGRlOiAnXHUwMEMzJyxcbiAgQXVtbDogJ1x1MDBDNCcsXG4gIEFyaW5nOiAnXHUwMEM1JyxcbiAgQUVsaWc6ICdcdTAwQzYnLFxuICBDY2VkaWw6ICdcdTAwQzcnLFxuICBFZ3JhdmU6ICdcdTAwQzgnLFxuICBFYWN1dGU6ICdcdTAwQzknLFxuICBFY2lyYzogJ1x1MDBDQScsXG4gIEV1bWw6ICdcdTAwQ0InLFxuICBJZ3JhdmU6ICdcdTAwQ0MnLFxuICBJYWN1dGU6ICdcdTAwQ0QnLFxuICBJY2lyYzogJ1x1MDBDRScsXG4gIEl1bWw6ICdcdTAwQ0YnLFxuICBFVEg6ICdcdTAwRDAnLFxuICBOdGlsZGU6ICdcdTAwRDEnLFxuICBPZ3JhdmU6ICdcdTAwRDInLFxuICBPYWN1dGU6ICdcdTAwRDMnLFxuICBPY2lyYzogJ1x1MDBENCcsXG4gIE90aWxkZTogJ1x1MDBENScsXG4gIE91bWw6ICdcdTAwRDYnLFxuICB0aW1lczogJ1x1MDBENycsXG4gIE9zbGFzaDogJ1x1MDBEOCcsXG4gIFVncmF2ZTogJ1x1MDBEOScsXG4gIFVhY3V0ZTogJ1x1MDBEQScsXG4gIFVjaXJjOiAnXHUwMERCJyxcbiAgVXVtbDogJ1x1MDBEQycsXG4gIFlhY3V0ZTogJ1x1MDBERCcsXG4gIFRIT1JOOiAnXHUwMERFJyxcbiAgc3psaWc6ICdcdTAwREYnLFxuICBhZ3JhdmU6ICdcdTAwRTAnLFxuICBhYWN1dGU6ICdcdTAwRTEnLFxuICBhY2lyYzogJ1x1MDBFMicsXG4gIGF0aWxkZTogJ1x1MDBFMycsXG4gIGF1bWw6ICdcdTAwRTQnLFxuICBhcmluZzogJ1x1MDBFNScsXG4gIGFlbGlnOiAnXHUwMEU2JyxcbiAgY2NlZGlsOiAnXHUwMEU3JyxcbiAgZWdyYXZlOiAnXHUwMEU4JyxcbiAgZWFjdXRlOiAnXHUwMEU5JyxcbiAgZWNpcmM6ICdcdTAwRUEnLFxuICBldW1sOiAnXHUwMEVCJyxcbiAgaWdyYXZlOiAnXHUwMEVDJyxcbiAgaWFjdXRlOiAnXHUwMEVEJyxcbiAgaWNpcmM6ICdcdTAwRUUnLFxuICBpdW1sOiAnXHUwMEVGJyxcbiAgZXRoOiAnXHUwMEYwJyxcbiAgbnRpbGRlOiAnXHUwMEYxJyxcbiAgb2dyYXZlOiAnXHUwMEYyJyxcbiAgb2FjdXRlOiAnXHUwMEYzJyxcbiAgb2NpcmM6ICdcdTAwRjQnLFxuICBvdGlsZGU6ICdcdTAwRjUnLFxuICBvdW1sOiAnXHUwMEY2JyxcbiAgZGl2aWRlOiAnXHUwMEY3JyxcbiAgb3NsYXNoOiAnXHUwMEY4JyxcbiAgdWdyYXZlOiAnXHUwMEY5JyxcbiAgdWFjdXRlOiAnXHUwMEZBJyxcbiAgdWNpcmM6ICdcdTAwRkInLFxuICB1dW1sOiAnXHUwMEZDJyxcbiAgeWFjdXRlOiAnXHUwMEZEJyxcbiAgdGhvcm46ICdcdTAwRkUnLFxuICB5dW1sOiAnXHUwMEZGJyxcbiAgZm5vZjogJ1x1MDE5MicsXG4gIEFscGhhOiAnXHUwMzkxJyxcbiAgQmV0YTogJ1x1MDM5MicsXG4gIEdhbW1hOiAnXHUwMzkzJyxcbiAgRGVsdGE6ICdcdTAzOTQnLFxuICBFcHNpbG9uOiAnXHUwMzk1JyxcbiAgWmV0YTogJ1x1MDM5NicsXG4gIEV0YTogJ1x1MDM5NycsXG4gIFRoZXRhOiAnXHUwMzk4JyxcbiAgSW90YTogJ1x1MDM5OScsXG4gIEthcHBhOiAnXHUwMzlBJyxcbiAgTGFtYmRhOiAnXHUwMzlCJyxcbiAgTXU6ICdcdTAzOUMnLFxuICBOdTogJ1x1MDM5RCcsXG4gIFhpOiAnXHUwMzlFJyxcbiAgT21pY3JvbjogJ1x1MDM5RicsXG4gIFBpOiAnXHUwM0EwJyxcbiAgUmhvOiAnXHUwM0ExJyxcbiAgU2lnbWE6ICdcdTAzQTMnLFxuICBUYXU6ICdcdTAzQTQnLFxuICBVcHNpbG9uOiAnXHUwM0E1JyxcbiAgUGhpOiAnXHUwM0E2JyxcbiAgQ2hpOiAnXHUwM0E3JyxcbiAgUHNpOiAnXHUwM0E4JyxcbiAgT21lZ2E6ICdcdTAzQTknLFxuICBhbHBoYTogJ1x1MDNCMScsXG4gIGJldGE6ICdcdTAzQjInLFxuICBnYW1tYTogJ1x1MDNCMycsXG4gIGRlbHRhOiAnXHUwM0I0JyxcbiAgZXBzaWxvbjogJ1x1MDNCNScsXG4gIHpldGE6ICdcdTAzQjYnLFxuICBldGE6ICdcdTAzQjcnLFxuICB0aGV0YTogJ1x1MDNCOCcsXG4gIGlvdGE6ICdcdTAzQjknLFxuICBrYXBwYTogJ1x1MDNCQScsXG4gIGxhbWJkYTogJ1x1MDNCQicsXG4gIG11OiAnXHUwM0JDJyxcbiAgbnU6ICdcdTAzQkQnLFxuICB4aTogJ1x1MDNCRScsXG4gIG9taWNyb246ICdcdTAzQkYnLFxuICBwaTogJ1x1MDNDMCcsXG4gIHJobzogJ1x1MDNDMScsXG4gIHNpZ21hZjogJ1x1MDNDMicsXG4gIHNpZ21hOiAnXHUwM0MzJyxcbiAgdGF1OiAnXHUwM0M0JyxcbiAgdXBzaWxvbjogJ1x1MDNDNScsXG4gIHBoaTogJ1x1MDNDNicsXG4gIGNoaTogJ1x1MDNDNycsXG4gIHBzaTogJ1x1MDNDOCcsXG4gIG9tZWdhOiAnXHUwM0M5JyxcbiAgdGhldGFzeW06ICdcdTAzRDEnLFxuICB1cHNpaDogJ1x1MDNEMicsXG4gIHBpdjogJ1x1MDNENicsXG4gIGJ1bGw6ICdcdTIwMjInLFxuICBoZWxsaXA6ICdcdTIwMjYnLFxuICBwcmltZTogJ1x1MjAzMicsXG4gIFByaW1lOiAnXHUyMDMzJyxcbiAgb2xpbmU6ICdcdTIwM0UnLFxuICBmcmFzbDogJ1x1MjA0NCcsXG4gIHdlaWVycDogJ1x1MjExOCcsXG4gIGltYWdlOiAnXHUyMTExJyxcbiAgcmVhbDogJ1x1MjExQycsXG4gIHRyYWRlOiAnXHUyMTIyJyxcbiAgYWxlZnN5bTogJ1x1MjEzNScsXG4gIGxhcnI6ICdcdTIxOTAnLFxuICB1YXJyOiAnXHUyMTkxJyxcbiAgcmFycjogJ1x1MjE5MicsXG4gIGRhcnI6ICdcdTIxOTMnLFxuICBoYXJyOiAnXHUyMTk0JyxcbiAgY3JhcnI6ICdcdTIxQjUnLFxuICBsQXJyOiAnXHUyMUQwJyxcbiAgdUFycjogJ1x1MjFEMScsXG4gIHJBcnI6ICdcdTIxRDInLFxuICBkQXJyOiAnXHUyMUQzJyxcbiAgaEFycjogJ1x1MjFENCcsXG4gIGZvcmFsbDogJ1x1MjIwMCcsXG4gIHBhcnQ6ICdcdTIyMDInLFxuICBleGlzdDogJ1x1MjIwMycsXG4gIGVtcHR5OiAnXHUyMjA1JyxcbiAgbmFibGE6ICdcdTIyMDcnLFxuICBpc2luOiAnXHUyMjA4JyxcbiAgbm90aW46ICdcdTIyMDknLFxuICBuaTogJ1x1MjIwQicsXG4gIHByb2Q6ICdcdTIyMEYnLFxuICBzdW06ICdcdTIyMTEnLFxuICBtaW51czogJ1x1MjIxMicsXG4gIGxvd2FzdDogJ1x1MjIxNycsXG4gIHJhZGljOiAnXHUyMjFBJyxcbiAgcHJvcDogJ1x1MjIxRCcsXG4gIGluZmluOiAnXHUyMjFFJyxcbiAgYW5nOiAnXHUyMjIwJyxcbiAgYW5kOiAnXHUyMjI3JyxcbiAgb3I6ICdcdTIyMjgnLFxuICBjYXA6ICdcdTIyMjknLFxuICBjdXA6ICdcdTIyMkEnLFxuICBpbnQ6ICdcdTIyMkInLFxuICB0aGVyZTQ6ICdcdTIyMzQnLFxuICBzaW06ICdcdTIyM0MnLFxuICBjb25nOiAnXHUyMjQ1JyxcbiAgYXN5bXA6ICdcdTIyNDgnLFxuICBuZTogJ1x1MjI2MCcsXG4gIGVxdWl2OiAnXHUyMjYxJyxcbiAgbGU6ICdcdTIyNjQnLFxuICBnZTogJ1x1MjI2NScsXG4gIHN1YjogJ1x1MjI4MicsXG4gIHN1cDogJ1x1MjI4MycsXG4gIG5zdWI6ICdcdTIyODQnLFxuICBzdWJlOiAnXHUyMjg2JyxcbiAgc3VwZTogJ1x1MjI4NycsXG4gIG9wbHVzOiAnXHUyMjk1JyxcbiAgb3RpbWVzOiAnXHUyMjk3JyxcbiAgcGVycDogJ1x1MjJBNScsXG4gIHNkb3Q6ICdcdTIyQzUnLFxuICBsY2VpbDogJ1x1MjMwOCcsXG4gIHJjZWlsOiAnXHUyMzA5JyxcbiAgbGZsb29yOiAnXHUyMzBBJyxcbiAgcmZsb29yOiAnXHUyMzBCJyxcbiAgbGFuZzogJ1x1MjMyOScsXG4gIHJhbmc6ICdcdTIzMkEnLFxuICBsb3o6ICdcdTI1Q0EnLFxuICBzcGFkZXM6ICdcdTI2NjAnLFxuICBjbHViczogJ1x1MjY2MycsXG4gIGhlYXJ0czogJ1x1MjY2NScsXG4gIGRpYW1zOiAnXHUyNjY2JyxcbiAgcXVvdDogJ1wiJyxcbiAgYW1wOiAnJicsXG4gIGx0OiAnPCcsXG4gIGd0OiAnPicsXG4gIE9FbGlnOiAnXHUwMTUyJyxcbiAgb2VsaWc6ICdcdTAxNTMnLFxuICBTY2Fyb246ICdcdTAxNjAnLFxuICBzY2Fyb246ICdcdTAxNjEnLFxuICBZdW1sOiAnXHUwMTc4JyxcbiAgY2lyYzogJ1x1MDJDNicsXG4gIHRpbGRlOiAnXHUwMkRDJyxcbiAgZW5zcDogJ1x1MjAwMicsXG4gIGVtc3A6ICdcdTIwMDMnLFxuICB0aGluc3A6ICdcdTIwMDknLFxuICB6d25qOiAnXHUyMDBDJyxcbiAgendqOiAnXHUyMDBEJyxcbiAgbHJtOiAnXHUyMDBFJyxcbiAgcmxtOiAnXHUyMDBGJyxcbiAgbmRhc2g6ICdcdTIwMTMnLFxuICBtZGFzaDogJ1x1MjAxNCcsXG4gIGxzcXVvOiAnXHUyMDE4JyxcbiAgcnNxdW86ICdcdTIwMTknLFxuICBzYnF1bzogJ1x1MjAxQScsXG4gIGxkcXVvOiAnXHUyMDFDJyxcbiAgcmRxdW86ICdcdTIwMUQnLFxuICBiZHF1bzogJ1x1MjAxRScsXG4gIGRhZ2dlcjogJ1x1MjAyMCcsXG4gIERhZ2dlcjogJ1x1MjAyMScsXG4gIHBlcm1pbDogJ1x1MjAzMCcsXG4gIGxzYXF1bzogJ1x1MjAzOScsXG4gIHJzYXF1bzogJ1x1MjAzQScsXG4gIGV1cm86ICdcdTIwQUMnXG59XG4iLCAiLyoqXG4gKiBMaXN0IG9mIGxlZ2FjeSAodGhhdCBkb25cdTIwMTl0IG5lZWQgYSB0cmFpbGluZyBgO2ApIG5hbWVkIHJlZmVyZW5jZXMgd2hpY2ggY291bGQsXG4gKiBkZXBlbmRpbmcgb24gd2hhdCBmb2xsb3dzIHRoZW0sIHR1cm4gaW50byBhIGRpZmZlcmVudCBtZWFuaW5nXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBkYW5nZXJvdXMgPSBbXG4gICdjZW50JyxcbiAgJ2NvcHknLFxuICAnZGl2aWRlJyxcbiAgJ2d0JyxcbiAgJ2x0JyxcbiAgJ25vdCcsXG4gICdwYXJhJyxcbiAgJ3RpbWVzJ1xuXVxuIiwgImltcG9ydCB7Y2hhcmFjdGVyRW50aXRpZXNMZWdhY3l9IGZyb20gJ2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3knXG5pbXBvcnQge2NoYXJhY3RlckVudGl0aWVzSHRtbDR9IGZyb20gJ2NoYXJhY3Rlci1lbnRpdGllcy1odG1sNCdcbmltcG9ydCB7ZGFuZ2Vyb3VzfSBmcm9tICcuLi9jb25zdGFudC9kYW5nZXJvdXMuanMnXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogYGNoYXJhY3RlckVudGl0aWVzSHRtbDRgIGJ1dCBpbnZlcnRlZC5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuY29uc3QgY2hhcmFjdGVycyA9IHt9XG5cbi8qKiBAdHlwZSB7c3RyaW5nfSAqL1xubGV0IGtleVxuXG5mb3IgKGtleSBpbiBjaGFyYWN0ZXJFbnRpdGllc0h0bWw0KSB7XG4gIGlmIChvd24uY2FsbChjaGFyYWN0ZXJFbnRpdGllc0h0bWw0LCBrZXkpKSB7XG4gICAgY2hhcmFjdGVyc1tjaGFyYWN0ZXJFbnRpdGllc0h0bWw0W2tleV1dID0ga2V5XG4gIH1cbn1cblxuY29uc3Qgbm90QWxwaGFudW1lcmljUmVnZXggPSAvW15cXGRBLVphLXpdL1xuXG4vKipcbiAqIENvbmZpZ3VyYWJsZSB3YXlzIHRvIGVuY29kZSBjaGFyYWN0ZXJzIGFzIG5hbWVkIHJlZmVyZW5jZXMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGNvZGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBuZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBvbWl0XG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b05hbWVkKGNvZGUsIG5leHQsIG9taXQsIGF0dHJpYnV0ZSkge1xuICBjb25zdCBjaGFyYWN0ZXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpXG5cbiAgaWYgKG93bi5jYWxsKGNoYXJhY3RlcnMsIGNoYXJhY3RlcikpIHtcbiAgICBjb25zdCBuYW1lID0gY2hhcmFjdGVyc1tjaGFyYWN0ZXJdXG4gICAgY29uc3QgdmFsdWUgPSAnJicgKyBuYW1lXG5cbiAgICBpZiAoXG4gICAgICBvbWl0ICYmXG4gICAgICBjaGFyYWN0ZXJFbnRpdGllc0xlZ2FjeS5pbmNsdWRlcyhuYW1lKSAmJlxuICAgICAgIWRhbmdlcm91cy5pbmNsdWRlcyhuYW1lKSAmJlxuICAgICAgKCFhdHRyaWJ1dGUgfHxcbiAgICAgICAgKG5leHQgJiZcbiAgICAgICAgICBuZXh0ICE9PSA2MSAvKiBgPWAgKi8gJiZcbiAgICAgICAgICBub3RBbHBoYW51bWVyaWNSZWdleC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZSArICc7J1xuICB9XG5cbiAgcmV0dXJuICcnXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiBGb3JtYXRTbWFydE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3VzZU5hbWVkUmVmZXJlbmNlcz1mYWxzZV1cbiAqICAgUHJlZmVyIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIChgJmFtcDtgKSB3aGVyZSBwb3NzaWJsZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3VzZVNob3J0ZXN0UmVmZXJlbmNlcz1mYWxzZV1cbiAqICAgUHJlZmVyIHRoZSBzaG9ydGVzdCBwb3NzaWJsZSByZWZlcmVuY2UsIGlmIHRoYXQgcmVzdWx0cyBpbiBsZXNzIGJ5dGVzLlxuICogICAqKk5vdGUqKjogYHVzZU5hbWVkUmVmZXJlbmNlc2AgY2FuIGJlIG9taXR0ZWQgd2hlbiB1c2luZyBgdXNlU2hvcnRlc3RSZWZlcmVuY2VzYC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW29taXRPcHRpb25hbFNlbWljb2xvbnM9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gb21pdCBzZW1pY29sb25zIHdoZW4gcG9zc2libGUuXG4gKiAgICoqTm90ZSoqOiBUaGlzIGNyZWF0ZXMgd2hhdCBIVE1MIGNhbGxzIFx1MjAxQ3BhcnNlIGVycm9yc1x1MjAxRCBidXQgaXMgb3RoZXJ3aXNlIHN0aWxsIHZhbGlkIEhUTUwgXHUyMDE0IGRvblx1MjAxOXQgdXNlIHRoaXMgZXhjZXB0IHdoZW4gYnVpbGRpbmcgYSBtaW5pZmllci5cbiAqICAgT21pdHRpbmcgc2VtaWNvbG9ucyBpcyBwb3NzaWJsZSBmb3IgY2VydGFpbiBuYW1lZCBhbmQgbnVtZXJpYyByZWZlcmVuY2VzIGluIHNvbWUgY2FzZXMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFthdHRyaWJ1dGU9ZmFsc2VdXG4gKiAgIENyZWF0ZSBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB3aGljaCBkb25cdTIwMTl0IGZhaWwgaW4gYXR0cmlidXRlcy5cbiAqICAgKipOb3RlKio6IGBhdHRyaWJ1dGVgIG9ubHkgYXBwbGllcyB3aGVuIG9wZXJhdGluZyBkYW5nZXJvdXNseSB3aXRoXG4gKiAgIGBvbWl0T3B0aW9uYWxTZW1pY29sb25zOiB0cnVlYC5cbiAqL1xuXG5pbXBvcnQge3RvSGV4YWRlY2ltYWx9IGZyb20gJy4vdG8taGV4YWRlY2ltYWwuanMnXG5pbXBvcnQge3RvRGVjaW1hbH0gZnJvbSAnLi90by1kZWNpbWFsLmpzJ1xuaW1wb3J0IHt0b05hbWVkfSBmcm9tICcuL3RvLW5hbWVkLmpzJ1xuXG4vKipcbiAqIENvbmZpZ3VyYWJsZSB3YXlzIHRvIGVuY29kZSBhIGNoYXJhY3RlciB5aWVsZGluZyBwcmV0dHkgb3Igc21hbGwgcmVzdWx0cy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29kZVxuICogQHBhcmFtIHtudW1iZXJ9IG5leHRcbiAqIEBwYXJhbSB7Rm9ybWF0U21hcnRPcHRpb25zfSBvcHRpb25zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U21hcnQoY29kZSwgbmV4dCwgb3B0aW9ucykge1xuICBsZXQgbnVtZXJpYyA9IHRvSGV4YWRlY2ltYWwoY29kZSwgbmV4dCwgb3B0aW9ucy5vbWl0T3B0aW9uYWxTZW1pY29sb25zKVxuICAvKiogQHR5cGUge3N0cmluZ3x1bmRlZmluZWR9ICovXG4gIGxldCBuYW1lZFxuXG4gIGlmIChvcHRpb25zLnVzZU5hbWVkUmVmZXJlbmNlcyB8fCBvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlcykge1xuICAgIG5hbWVkID0gdG9OYW1lZChcbiAgICAgIGNvZGUsXG4gICAgICBuZXh0LFxuICAgICAgb3B0aW9ucy5vbWl0T3B0aW9uYWxTZW1pY29sb25zLFxuICAgICAgb3B0aW9ucy5hdHRyaWJ1dGVcbiAgICApXG4gIH1cblxuICAvLyBVc2UgdGhlIHNob3J0ZXN0IG51bWVyaWMgcmVmZXJlbmNlIHdoZW4gcmVxdWVzdGVkLlxuICAvLyBBIHNpbXBsZSBhbGdvcml0aG0gd291bGQgdXNlIGRlY2ltYWwgZm9yIGFsbCBjb2RlIHBvaW50cyB1bmRlciAxMDAsIGFzXG4gIC8vIHRob3NlIGFyZSBzaG9ydGVyIHRoYW4gaGV4YWRlY2ltYWw6XG4gIC8vXG4gIC8vICogYCYjOTk7YCB2cyBgJiN4NjM7YCAoZGVjaW1hbCBzaG9ydGVyKVxuICAvLyAqIGAmIzEwMDtgIHZzIGAmI3g2NDtgIChlcXVhbClcbiAgLy9cbiAgLy8gSG93ZXZlciwgYmVjYXVzZSB3ZSB0YWtlIGBuZXh0YCBpbnRvIGNvbnNpZGVyYXRpb24gd2hlbiBgb21pdGAgaXMgdXNlZCxcbiAgLy8gQW5kIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRoYXQgZGVjaW1hbHMgYXJlIHNob3J0ZXIgb24gYmlnZ2VyIHZhbHVlcyBhc1xuICAvLyB3ZWxsIGlmIGBuZXh0YCBpcyBoZXhhZGVjaW1hbCBidXQgbm90IGRlY2ltYWwsIHdlIGluc3RlYWQgY29tcGFyZSBib3RoLlxuICBpZiAoXG4gICAgKG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzIHx8ICFuYW1lZCkgJiZcbiAgICBvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlc1xuICApIHtcbiAgICBjb25zdCBkZWNpbWFsID0gdG9EZWNpbWFsKGNvZGUsIG5leHQsIG9wdGlvbnMub21pdE9wdGlvbmFsU2VtaWNvbG9ucylcblxuICAgIGlmIChkZWNpbWFsLmxlbmd0aCA8IG51bWVyaWMubGVuZ3RoKSB7XG4gICAgICBudW1lcmljID0gZGVjaW1hbFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuYW1lZCAmJlxuICAgICghb3B0aW9ucy51c2VTaG9ydGVzdFJlZmVyZW5jZXMgfHwgbmFtZWQubGVuZ3RoIDwgbnVtZXJpYy5sZW5ndGgpXG4gICAgPyBuYW1lZFxuICAgIDogbnVtZXJpY1xufVxuIiwgIi8qKlxuICogVGhlIHNtYWxsZXN0IHdheSB0byBlbmNvZGUgYSBjaGFyYWN0ZXIuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGNvZGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRCYXNpYyhjb2RlKSB7XG4gIHJldHVybiAnJiN4JyArIGNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkgKyAnOydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY29yZS5qcycpLkNvcmVPcHRpb25zICYgaW1wb3J0KCcuL3V0aWwvZm9ybWF0LXNtYXJ0LmpzJykuRm9ybWF0U21hcnRPcHRpb25zfSBPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NvcmUuanMnKS5Db3JlT3B0aW9uc30gTGlnaHRPcHRpb25zXG4gKi9cblxuaW1wb3J0IHtjb3JlfSBmcm9tICcuL2NvcmUuanMnXG5pbXBvcnQge2Zvcm1hdFNtYXJ0fSBmcm9tICcuL3V0aWwvZm9ybWF0LXNtYXJ0LmpzJ1xuaW1wb3J0IHtmb3JtYXRCYXNpY30gZnJvbSAnLi91dGlsL2Zvcm1hdC1iYXNpYy5qcydcblxuLyoqXG4gKiBFbmNvZGUgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIGB2YWx1ZWAuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGVuY29kZS5cbiAqIEBwYXJhbSB7T3B0aW9uc30gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBFbmNvZGVkIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RW50aXRpZXModmFsdWUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNvcmUodmFsdWUsIE9iamVjdC5hc3NpZ24oe2Zvcm1hdDogZm9ybWF0U21hcnR9LCBvcHRpb25zKSlcbn1cblxuLyoqXG4gKiBFbmNvZGUgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIGB2YWx1ZWAgYXMgaGV4YWRlY2ltYWxzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBlbmNvZGUuXG4gKiBAcGFyYW0ge0xpZ2h0T3B0aW9uc30gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBFbmNvZGVkIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RW50aXRpZXNMaWdodCh2YWx1ZSwgb3B0aW9ucykge1xuICByZXR1cm4gY29yZSh2YWx1ZSwgT2JqZWN0LmFzc2lnbih7Zm9ybWF0OiBmb3JtYXRCYXNpY30sIG9wdGlvbnMpKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5MaWdodE9wdGlvbnN9IExpZ2h0T3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5PcHRpb25zfSBPcHRpb25zXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5kZXguanMnXG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtDb21tZW50LCBQYXJlbnRzfSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4uL2luZGV4LmpzJ1xuICovXG5cbmltcG9ydCB7c3RyaW5naWZ5RW50aXRpZXN9IGZyb20gJ3N0cmluZ2lmeS1lbnRpdGllcydcblxuY29uc3QgaHRtbENvbW1lbnRSZWdleCA9IC9ePnxeLT58PCEtLXwtLT58LS0hPnw8IS0kL2dcblxuLy8gRGVjbGFyZSBhcnJheXMgYXMgdmFyaWFibGVzIHNvIGl0IGNhbiBiZSBjYWNoZWQgYnkgYHN0cmluZ2lmeUVudGl0aWVzYFxuY29uc3QgYm9ndXNDb21tZW50RW50aXR5U3Vic2V0ID0gWyc+J11cbmNvbnN0IGNvbW1lbnRFbnRpdHlTdWJzZXQgPSBbJzwnLCAnPiddXG5cbi8qKlxuICogU2VyaWFsaXplIGEgY29tbWVudC5cbiAqXG4gKiBAcGFyYW0ge0NvbW1lbnR9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gXzFcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF8yXG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21tZW50KG5vZGUsIF8xLCBfMiwgc3RhdGUpIHtcbiAgLy8gU2VlOiA8aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjY29tbWVudHM+XG4gIHJldHVybiBzdGF0ZS5zZXR0aW5ncy5ib2d1c0NvbW1lbnRzXG4gICAgPyAnPD8nICtcbiAgICAgICAgc3RyaW5naWZ5RW50aXRpZXMoXG4gICAgICAgICAgbm9kZS52YWx1ZSxcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgICAgICBzdWJzZXQ6IGJvZ3VzQ29tbWVudEVudGl0eVN1YnNldFxuICAgICAgICAgIH0pXG4gICAgICAgICkgK1xuICAgICAgICAnPidcbiAgICA6ICc8IS0tJyArIG5vZGUudmFsdWUucmVwbGFjZShodG1sQ29tbWVudFJlZ2V4LCBlbmNvZGUpICsgJy0tPidcblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gICAqL1xuICBmdW5jdGlvbiBlbmNvZGUoJDApIHtcbiAgICByZXR1cm4gc3RyaW5naWZ5RW50aXRpZXMoXG4gICAgICAkMCxcbiAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgICAgc3Vic2V0OiBjb21tZW50RW50aXR5U3Vic2V0XG4gICAgICB9KVxuICAgIClcbiAgfVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RG9jdHlwZSwgUGFyZW50c30gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9pbmRleC5qcydcbiAqL1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGRvY3R5cGUuXG4gKlxuICogQHBhcmFtIHtEb2N0eXBlfSBfMVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBfMlxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gXzNcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRvY3R5cGUoXzEsIF8yLCBfMywgc3RhdGUpIHtcbiAgcmV0dXJuIChcbiAgICAnPCEnICtcbiAgICAoc3RhdGUuc2V0dGluZ3MudXBwZXJEb2N0eXBlID8gJ0RPQ1RZUEUnIDogJ2RvY3R5cGUnKSArXG4gICAgKHN0YXRlLnNldHRpbmdzLnRpZ2h0RG9jdHlwZSA/ICcnIDogJyAnKSArXG4gICAgJ2h0bWw+J1xuICApXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkTGVmdD10cnVlXVxuICogICBXaGV0aGVyIHRvIHBhZCBhIHNwYWNlIGJlZm9yZSBhIHRva2VuLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkUmlnaHQ9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gcGFkIGEgc3BhY2UgYWZ0ZXIgYSB0b2tlbi5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPcHRpb25zfSBTdHJpbmdpZnlPcHRpb25zXG4gKiAgIFBsZWFzZSB1c2UgYFN0cmluZ2lmeU9wdGlvbnNgIGluc3RlYWQuXG4gKi9cblxuLyoqXG4gKiBQYXJzZSBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zIHRvIGFuIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICogQHJldHVybnMge0FycmF5PHN0cmluZz59XG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UodmFsdWUpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCB0b2tlbnMgPSBbXVxuICBjb25zdCBpbnB1dCA9IFN0cmluZyh2YWx1ZSB8fCAnJylcbiAgbGV0IGluZGV4ID0gaW5wdXQuaW5kZXhPZignLCcpXG4gIGxldCBzdGFydCA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgZW5kID0gZmFsc2VcblxuICB3aGlsZSAoIWVuZCkge1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIGluZGV4ID0gaW5wdXQubGVuZ3RoXG4gICAgICBlbmQgPSB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBpbnB1dC5zbGljZShzdGFydCwgaW5kZXgpLnRyaW0oKVxuXG4gICAgaWYgKHRva2VuIHx8ICFlbmQpIHtcbiAgICAgIHRva2Vucy5wdXNoKHRva2VuKVxuICAgIH1cblxuICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgaW5kZXggPSBpbnB1dC5pbmRleE9mKCcsJywgc3RhcnQpXG4gIH1cblxuICByZXR1cm4gdG9rZW5zXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGFycmF5IG9mIHN0cmluZ3Mgb3IgbnVtYmVycyB0byBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nfG51bWJlcj59IHZhbHVlc1xuICogICBMaXN0IG9mIHRva2Vucy5cbiAqIEBwYXJhbSB7T3B0aW9uc30gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlcywgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge31cblxuICAvLyBFbnN1cmUgdGhlIGxhc3QgZW1wdHkgZW50cnkgaXMgc2Vlbi5cbiAgY29uc3QgaW5wdXQgPSB2YWx1ZXNbdmFsdWVzLmxlbmd0aCAtIDFdID09PSAnJyA/IFsuLi52YWx1ZXMsICcnXSA6IHZhbHVlc1xuXG4gIHJldHVybiBpbnB1dFxuICAgIC5qb2luKFxuICAgICAgKHNldHRpbmdzLnBhZFJpZ2h0ID8gJyAnIDogJycpICtcbiAgICAgICAgJywnICtcbiAgICAgICAgKHNldHRpbmdzLnBhZExlZnQgPT09IGZhbHNlID8gJycgOiAnICcpXG4gICAgKVxuICAgIC50cmltKClcbn1cbiIsICIvKipcbiAqIFBhcnNlIHNwYWNlLXNlcGFyYXRlZCB0b2tlbnMgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgU3BhY2Utc2VwYXJhdGVkIHRva2Vucy5cbiAqIEByZXR1cm5zIHtBcnJheTxzdHJpbmc+fVxuICogICBMaXN0IG9mIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKHZhbHVlKSB7XG4gIGNvbnN0IGlucHV0ID0gU3RyaW5nKHZhbHVlIHx8ICcnKS50cmltKClcbiAgcmV0dXJuIGlucHV0ID8gaW5wdXQuc3BsaXQoL1sgXFx0XFxuXFxyXFxmXSsvZykgOiBbXVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBzdHJpbmdzIGFzIHNwYWNlIHNlcGFyYXRlZC10b2tlbnMuXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmd8bnVtYmVyPn0gdmFsdWVzXG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU3BhY2Utc2VwYXJhdGVkIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZXMpIHtcbiAgcmV0dXJuIHZhbHVlcy5qb2luKCcgJykudHJpbSgpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKi9cblxuLy8gSFRNTCB3aGl0ZXNwYWNlIGV4cHJlc3Npb24uXG4vLyBTZWUgPGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNhc2NpaS13aGl0ZXNwYWNlPi5cbmNvbnN0IHJlID0gL1sgXFx0XFxuXFxmXFxyXS9nXG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGdpdmVuIHZhbHVlIGlzICppbnRlci1lbGVtZW50IHdoaXRlc3BhY2UqLlxuICpcbiAqIEBwYXJhbSB7Tm9kZXMgfCBzdHJpbmd9IHRoaW5nXG4gKiAgIFRoaW5nIHRvIGNoZWNrIChgTm9kZWAgb3IgYHN0cmluZ2ApLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGB2YWx1ZWAgaXMgaW50ZXItZWxlbWVudCB3aGl0ZXNwYWNlIChgYm9vbGVhbmApOiBjb25zaXN0aW5nIG9mXG4gKiAgIHplcm8gb3IgbW9yZSBvZiBzcGFjZSwgdGFiIChgXFx0YCksIGxpbmUgZmVlZCAoYFxcbmApLCBjYXJyaWFnZSByZXR1cm5cbiAqICAgKGBcXHJgKSwgb3IgZm9ybSBmZWVkIChgXFxmYCk7IGlmIGEgbm9kZSBpcyBwYXNzZWQgaXQgbXVzdCBiZSBhIGBUZXh0YCBub2RlLFxuICogICB3aG9zZSBgdmFsdWVgIGZpZWxkIGlzIGNoZWNrZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aGl0ZXNwYWNlKHRoaW5nKSB7XG4gIHJldHVybiB0eXBlb2YgdGhpbmcgPT09ICdvYmplY3QnXG4gICAgPyB0aGluZy50eXBlID09PSAndGV4dCdcbiAgICAgID8gZW1wdHkodGhpbmcudmFsdWUpXG4gICAgICA6IGZhbHNlXG4gICAgOiBlbXB0eSh0aGluZylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBlbXB0eSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZShyZSwgJycpID09PSAnJ1xufVxuIiwgImV4cG9ydCB7d2hpdGVzcGFjZX0gZnJvbSAnLi9saWIvaW5kZXguanMnXG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtQYXJlbnRzLCBSb290Q29udGVudH0gZnJvbSAnaGFzdCdcbiAqL1xuXG5pbXBvcnQge3doaXRlc3BhY2V9IGZyb20gJ2hhc3QtdXRpbC13aGl0ZXNwYWNlJ1xuXG5leHBvcnQgY29uc3Qgc2libGluZ0FmdGVyID0gc2libGluZ3MoMSlcbmV4cG9ydCBjb25zdCBzaWJsaW5nQmVmb3JlID0gc2libGluZ3MoLTEpXG5cbi8qKiBAdHlwZSB7QXJyYXk8Um9vdENvbnRlbnQ+fSAqL1xuY29uc3QgZW1wdHlDaGlsZHJlbiA9IFtdXG5cbi8qKlxuICogRmFjdG9yeSB0byBjaGVjayBzaWJsaW5ncyBpbiBhIGRpcmVjdGlvbi5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gaW5jcmVtZW50XG4gKi9cbmZ1bmN0aW9uIHNpYmxpbmdzKGluY3JlbWVudCkge1xuICByZXR1cm4gc2libGluZ1xuXG4gIC8qKlxuICAgKiBGaW5kIGFwcGxpY2FibGUgc2libGluZ3MgaW4gYSBkaXJlY3Rpb24uXG4gICAqXG4gICAqIEB0ZW1wbGF0ZSB7UGFyZW50c30gUGFyZW50XG4gICAqICAgUGFyZW50IHR5cGUuXG4gICAqIEBwYXJhbSB7UGFyZW50IHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogICBQYXJlbnQuXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICAgKiAgIEluZGV4IG9mIGNoaWxkIGluIGBwYXJlbnRgLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW4gfCB1bmRlZmluZWR9IFtpbmNsdWRlV2hpdGVzcGFjZT1mYWxzZV1cbiAgICogICBXaGV0aGVyIHRvIGluY2x1ZGUgd2hpdGVzcGFjZSAoZGVmYXVsdDogYGZhbHNlYCkuXG4gICAqIEByZXR1cm5zIHtQYXJlbnQgZXh0ZW5kcyB7Y2hpbGRyZW46IEFycmF5PGluZmVyIENoaWxkPn0gPyBDaGlsZCB8IHVuZGVmaW5lZCA6IG5ldmVyfVxuICAgKiAgIENoaWxkIG9mIHBhcmVudC5cbiAgICovXG4gIGZ1bmN0aW9uIHNpYmxpbmcocGFyZW50LCBpbmRleCwgaW5jbHVkZVdoaXRlc3BhY2UpIHtcbiAgICBjb25zdCBzaWJsaW5ncyA9IHBhcmVudCA/IHBhcmVudC5jaGlsZHJlbiA6IGVtcHR5Q2hpbGRyZW5cbiAgICBsZXQgb2Zmc2V0ID0gKGluZGV4IHx8IDApICsgaW5jcmVtZW50XG4gICAgbGV0IG5leHQgPSBzaWJsaW5nc1tvZmZzZXRdXG5cbiAgICBpZiAoIWluY2x1ZGVXaGl0ZXNwYWNlKSB7XG4gICAgICB3aGlsZSAobmV4dCAmJiB3aGl0ZXNwYWNlKG5leHQpKSB7XG4gICAgICAgIG9mZnNldCArPSBpbmNyZW1lbnRcbiAgICAgICAgbmV4dCA9IHNpYmxpbmdzW29mZnNldF1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBpdFx1MjAxOXMgYSBjb3JyZWN0IGNoaWxkLlxuICAgIHJldHVybiBuZXh0XG4gIH1cbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0VsZW1lbnQsIFBhcmVudHN9IGZyb20gJ2hhc3QnXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgT21pdEhhbmRsZVxuICogICBDaGVjayBpZiBhIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqIEBwYXJhbSB7RWxlbWVudH0gZWxlbWVudFxuICogICBFbGVtZW50IHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0byBvbWl0IGEgdGFnLlxuICpcbiAqL1xuXG5jb25zdCBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eVxuXG4vKipcbiAqIEZhY3RvcnkgdG8gY2hlY2sgaWYgYSBnaXZlbiBub2RlIGNhbiBoYXZlIGEgdGFnIG9taXR0ZWQuXG4gKlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBPbWl0SGFuZGxlPn0gaGFuZGxlcnNcbiAqICAgT21pc3Npb24gaGFuZGxlcnMsIHdoZXJlIGVhY2gga2V5IGlzIGEgdGFnIG5hbWUsIGFuZCBlYWNoIHZhbHVlIGlzIHRoZVxuICogICBjb3JyZXNwb25kaW5nIGhhbmRsZXIuXG4gKiBAcmV0dXJucyB7T21pdEhhbmRsZX1cbiAqICAgV2hldGhlciB0byBvbWl0IGEgdGFnIG9mIGFuIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbWlzc2lvbihoYW5kbGVycykge1xuICByZXR1cm4gb21pdFxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIGdpdmVuIG5vZGUgY2FuIGhhdmUgYSB0YWcgb21pdHRlZC5cbiAgICpcbiAgICogQHR5cGUge09taXRIYW5kbGV9XG4gICAqL1xuICBmdW5jdGlvbiBvbWl0KG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgb3duLmNhbGwoaGFuZGxlcnMsIG5vZGUudGFnTmFtZSkgJiZcbiAgICAgIGhhbmRsZXJzW25vZGUudGFnTmFtZV0obm9kZSwgaW5kZXgsIHBhcmVudClcbiAgICApXG4gIH1cbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0VsZW1lbnQsIFBhcmVudHN9IGZyb20gJ2hhc3QnXG4gKi9cblxuaW1wb3J0IHt3aGl0ZXNwYWNlfSBmcm9tICdoYXN0LXV0aWwtd2hpdGVzcGFjZSdcbmltcG9ydCB7c2libGluZ0FmdGVyfSBmcm9tICcuL3V0aWwvc2libGluZ3MuanMnXG5pbXBvcnQge29taXNzaW9ufSBmcm9tICcuL29taXNzaW9uLmpzJ1xuXG5leHBvcnQgY29uc3QgY2xvc2luZyA9IG9taXNzaW9uKHtcbiAgYm9keSxcbiAgY2FwdGlvbjogaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24sXG4gIGNvbGdyb3VwOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgZGQsXG4gIGR0LFxuICBoZWFkOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgaHRtbCxcbiAgbGksXG4gIG9wdGdyb3VwLFxuICBvcHRpb24sXG4gIHAsXG4gIHJwOiBydWJ5RWxlbWVudCxcbiAgcnQ6IHJ1YnlFbGVtZW50LFxuICB0Ym9keSxcbiAgdGQ6IGNlbGxzLFxuICB0Zm9vdCxcbiAgdGg6IGNlbGxzLFxuICB0aGVhZCxcbiAgdHJcbn0pXG5cbi8qKlxuICogTWFjcm8gZm9yIGA8L2hlYWQ+YCwgYDwvY29sZ3JvdXA+YCwgYW5kIGA8L2NhcHRpb24+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleCwgdHJ1ZSlcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgIT09ICdjb21tZW50JyAmJlxuICAgICAgIShuZXh0LnR5cGUgPT09ICd0ZXh0JyAmJiB3aGl0ZXNwYWNlKG5leHQudmFsdWUuY2hhckF0KDApKSkpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvaHRtbD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGh0bWwoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCBuZXh0LnR5cGUgIT09ICdjb21tZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9ib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gYm9keShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IG5leHQudHlwZSAhPT0gJ2NvbW1lbnQnXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3A+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBwKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gbmV4dFxuICAgID8gbmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ2FkZHJlc3MnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnYXJ0aWNsZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdhc2lkZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdibG9ja3F1b3RlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RldGFpbHMnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZGl2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RsJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZWxkc2V0JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZ2NhcHRpb24nIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZmlndXJlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2Zvb3RlcicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmb3JtJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gxJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gyJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gzJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g0JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g1JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2hlYWRlcicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoZ3JvdXAnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaHInIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnbWFpbicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdtZW51JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ25hdicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdvbCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdwJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3ByZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdzZWN0aW9uJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3RhYmxlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3VsJylcbiAgICA6ICFwYXJlbnQgfHxcbiAgICAgICAgLy8gQ29uZnVzaW5nIHBhcmVudC5cbiAgICAgICAgIShcbiAgICAgICAgICBwYXJlbnQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAgICAgKHBhcmVudC50YWdOYW1lID09PSAnYScgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnYXVkaW8nIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ2RlbCcgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnaW5zJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdtYXAnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ25vc2NyaXB0JyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICd2aWRlbycpXG4gICAgICAgIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvbGk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBsaShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICdsaScpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2R0PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gZHQoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiBCb29sZWFuKFxuICAgIG5leHQgJiZcbiAgICAgIG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnZHQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ2RkJylcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9kZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGRkKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnZHQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ2RkJykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvcnQ+YCBvciBgPC9ycD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHJ1YnlFbGVtZW50KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAncnAnIHx8IG5leHQudGFnTmFtZSA9PT0gJ3J0JykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvb3B0Z3JvdXA+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBvcHRncm91cChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICdvcHRncm91cCcpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L29wdGlvbj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIG9wdGlvbihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ29wdGlvbicgfHwgbmV4dC50YWdOYW1lID09PSAnb3B0Z3JvdXAnKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90aGVhZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRoZWFkKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gQm9vbGVhbihcbiAgICBuZXh0ICYmXG4gICAgICBuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3Rib2R5JyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0Zm9vdCcpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGJvZHk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0Ym9keShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3Rib2R5JyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0Zm9vdCcpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3Rmb290PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGZvb3QoXywgaW5kZXgsIHBhcmVudCkge1xuICByZXR1cm4gIXNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90cj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRyKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIG5leHQudGFnTmFtZSA9PT0gJ3RyJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGQ+YCBvciBgPC90aD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGNlbGxzKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAndGQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ3RoJykpXG4gIClcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge0VsZW1lbnQsIFBhcmVudHN9IGZyb20gJ2hhc3QnXG4gKi9cblxuaW1wb3J0IHt3aGl0ZXNwYWNlfSBmcm9tICdoYXN0LXV0aWwtd2hpdGVzcGFjZSdcbmltcG9ydCB7c2libGluZ0FmdGVyLCBzaWJsaW5nQmVmb3JlfSBmcm9tICcuL3V0aWwvc2libGluZ3MuanMnXG5pbXBvcnQge2Nsb3Npbmd9IGZyb20gJy4vY2xvc2luZy5qcydcbmltcG9ydCB7b21pc3Npb259IGZyb20gJy4vb21pc3Npb24uanMnXG5cbmV4cG9ydCBjb25zdCBvcGVuaW5nID0gb21pc3Npb24oe1xuICBib2R5LFxuICBjb2xncm91cCxcbiAgaGVhZCxcbiAgaHRtbCxcbiAgdGJvZHlcbn0pXG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8aHRtbD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIG9wZW5pbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBodG1sKG5vZGUpIHtcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSlcbiAgcmV0dXJuICFoZWFkIHx8IGhlYWQudHlwZSAhPT0gJ2NvbW1lbnQnXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8aGVhZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIG9wZW5pbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBoZWFkKG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtTZXQ8c3RyaW5nPn0gKi9cbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQoKVxuXG4gIC8vIFdoZXRoZXIgYHNyY2RvY2Agb3Igbm90LFxuICAvLyBtYWtlIHN1cmUgdGhlIGNvbnRlbnQgbW9kZWwgYXQgbGVhc3QgZG9lc25cdTIwMTl0IGhhdmUgdG9vIG1hbnkgYGJhc2Vgcy9gdGl0bGVgcy5cbiAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgaWYgKFxuICAgICAgY2hpbGQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAoY2hpbGQudGFnTmFtZSA9PT0gJ2Jhc2UnIHx8IGNoaWxkLnRhZ05hbWUgPT09ICd0aXRsZScpXG4gICAgKSB7XG4gICAgICBpZiAoc2Vlbi5oYXMoY2hpbGQudGFnTmFtZSkpIHJldHVybiBmYWxzZVxuICAgICAgc2Vlbi5hZGQoY2hpbGQudGFnTmFtZSlcbiAgICB9XG4gIH1cblxuICAvLyBcdTIwMUNNYXkgYmUgb21pdHRlZCBpZiB0aGUgZWxlbWVudCBpcyBlbXB0eSxcbiAgLy8gb3IgaWYgdGhlIGZpcnN0IHRoaW5nIGluc2lkZSB0aGUgaGVhZCBlbGVtZW50IGlzIGFuIGVsZW1lbnQuXHUyMDFEXG4gIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZHJlblswXVxuICByZXR1cm4gIWNoaWxkIHx8IGNoaWxkLnR5cGUgPT09ICdlbGVtZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGJvZHk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gYm9keShub2RlKSB7XG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEsIHRydWUpXG5cbiAgcmV0dXJuIChcbiAgICAhaGVhZCB8fFxuICAgIChoZWFkLnR5cGUgIT09ICdjb21tZW50JyAmJlxuICAgICAgIShoZWFkLnR5cGUgPT09ICd0ZXh0JyAmJiB3aGl0ZXNwYWNlKGhlYWQudmFsdWUuY2hhckF0KDApKSkgJiZcbiAgICAgICEoXG4gICAgICAgIGhlYWQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAgIChoZWFkLnRhZ05hbWUgPT09ICdtZXRhJyB8fFxuICAgICAgICAgIGhlYWQudGFnTmFtZSA9PT0gJ2xpbmsnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnc2NyaXB0JyB8fFxuICAgICAgICAgIGhlYWQudGFnTmFtZSA9PT0gJ3N0eWxlJyB8fFxuICAgICAgICAgIGhlYWQudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJylcbiAgICAgICkpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDxjb2xncm91cD5gLlxuICogVGhlIHNwZWMgZGVzY3JpYmVzIHNvbWUgbG9naWMgZm9yIHRoZSBvcGVuaW5nIHRhZywgYnV0IGl0XHUyMDE5cyBlYXNpZXIgdG9cbiAqIGltcGxlbWVudCBpbiB0aGUgY2xvc2luZyB0YWcsIHRvIHRoZSBzYW1lIGVmZmVjdCwgc28gd2UgaGFuZGxlIGl0IHRoZXJlXG4gKiBpbnN0ZWFkLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGNvbGdyb3VwKG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgcHJldmlvdXMgPSBzaWJsaW5nQmVmb3JlKHBhcmVudCwgaW5kZXgpXG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEsIHRydWUpXG5cbiAgLy8gUHJldmlvdXMgY29sZ3JvdXAgd2FzIGFscmVhZHkgb21pdHRlZC5cbiAgaWYgKFxuICAgIHBhcmVudCAmJlxuICAgIHByZXZpb3VzICYmXG4gICAgcHJldmlvdXMudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgcHJldmlvdXMudGFnTmFtZSA9PT0gJ2NvbGdyb3VwJyAmJlxuICAgIGNsb3NpbmcocHJldmlvdXMsIHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHByZXZpb3VzKSwgcGFyZW50KVxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBCb29sZWFuKGhlYWQgJiYgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiYgaGVhZC50YWdOYW1lID09PSAnY29sJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDx0Ym9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgb3BlbmluZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRib2R5KG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgcHJldmlvdXMgPSBzaWJsaW5nQmVmb3JlKHBhcmVudCwgaW5kZXgpXG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEpXG5cbiAgLy8gUHJldmlvdXMgdGFibGUgc2VjdGlvbiB3YXMgYWxyZWFkeSBvbWl0dGVkLlxuICBpZiAoXG4gICAgcGFyZW50ICYmXG4gICAgcHJldmlvdXMgJiZcbiAgICBwcmV2aW91cy50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAocHJldmlvdXMudGFnTmFtZSA9PT0gJ3RoZWFkJyB8fCBwcmV2aW91cy50YWdOYW1lID09PSAndGJvZHknKSAmJlxuICAgIGNsb3NpbmcocHJldmlvdXMsIHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHByZXZpb3VzKSwgcGFyZW50KVxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBCb29sZWFuKGhlYWQgJiYgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiYgaGVhZC50YWdOYW1lID09PSAndHInKVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7RWxlbWVudCwgUGFyZW50cywgUHJvcGVydGllc30gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9pbmRleC5qcydcbiAqL1xuXG5pbXBvcnQge2Njb3VudH0gZnJvbSAnY2NvdW50J1xuaW1wb3J0IHtzdHJpbmdpZnkgYXMgY29tbWFzfSBmcm9tICdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtmaW5kLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtzdHJpbmdpZnkgYXMgc3BhY2VzfSBmcm9tICdzcGFjZS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuaW1wb3J0IHtjbG9zaW5nfSBmcm9tICcuLi9vbWlzc2lvbi9jbG9zaW5nLmpzJ1xuaW1wb3J0IHtvcGVuaW5nfSBmcm9tICcuLi9vbWlzc2lvbi9vcGVuaW5nLmpzJ1xuXG4vKipcbiAqIE1hcHMgb2Ygc3Vic2V0cy5cbiAqXG4gKiBFYWNoIHZhbHVlIGlzIGEgbWF0cml4IG9mIHR1cGxlcy5cbiAqIFRoZSB2YWx1ZSBhdCBgMGAgY2F1c2VzIHBhcnNlIGVycm9ycywgdGhlIHZhbHVlIGF0IGAxYCBpcyB2YWxpZC5cbiAqIE9mIGJvdGgsIHRoZSB2YWx1ZSBhdCBgMGAgaXMgdW5zYWZlLCBhbmQgdGhlIHZhbHVlIGF0IGAxYCBpcyBzYWZlLlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8J2RvdWJsZScgfCAnbmFtZScgfCAnc2luZ2xlJyB8ICd1bnF1b3RlZCcsIEFycmF5PFtBcnJheTxzdHJpbmc+LCBBcnJheTxzdHJpbmc+XT4+fVxuICovXG5jb25zdCBjb25zdGFudHMgPSB7XG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS1uYW1lLXN0YXRlPi5cbiAgbmFtZTogW1xuICAgIFsnXFx0XFxuXFxmXFxyICYvPT4nLnNwbGl0KCcnKSwgJ1xcdFxcblxcZlxcciBcIiZcXCcvPT5gJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJy88PT4nLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCcvPD0+YCcuc3BsaXQoJycpXVxuICBdLFxuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZT4uXG4gIHVucXVvdGVkOiBbXG4gICAgWydcXHRcXG5cXGZcXHIgJj4nLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJzw9PmAnLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0oc2luZ2xlLXF1b3RlZCktc3RhdGU+LlxuICBzaW5nbGU6IFtcbiAgICBbXCImJ1wiLnNwbGl0KCcnKSwgJ1wiJlxcJ2AnLnNwbGl0KCcnKV0sXG4gICAgW1wiXFwwJidcIi5zcGxpdCgnJyksICdcXDBcIiZcXCdgJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0oZG91YmxlLXF1b3RlZCktc3RhdGU+LlxuICBkb3VibGU6IFtcbiAgICBbJ1wiJicuc3BsaXQoJycpLCAnXCImXFwnYCcuc3BsaXQoJycpXSxcbiAgICBbJ1xcMFwiJicuc3BsaXQoJycpLCAnXFwwXCImXFwnYCcuc3BsaXQoJycpXVxuICBdXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGVsZW1lbnQgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWxlbWVudChub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSkge1xuICBjb25zdCBzY2hlbWEgPSBzdGF0ZS5zY2hlbWFcbiAgY29uc3Qgb21pdCA9IHNjaGVtYS5zcGFjZSA9PT0gJ3N2ZycgPyBmYWxzZSA6IHN0YXRlLnNldHRpbmdzLm9taXRPcHRpb25hbFRhZ3NcbiAgbGV0IHNlbGZDbG9zaW5nID1cbiAgICBzY2hlbWEuc3BhY2UgPT09ICdzdmcnXG4gICAgICA/IHN0YXRlLnNldHRpbmdzLmNsb3NlRW1wdHlFbGVtZW50c1xuICAgICAgOiBzdGF0ZS5zZXR0aW5ncy52b2lkcy5pbmNsdWRlcyhub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSlcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCBwYXJ0cyA9IFtdXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQgbGFzdFxuXG4gIGlmIChzY2hlbWEuc3BhY2UgPT09ICdodG1sJyAmJiBub2RlLnRhZ05hbWUgPT09ICdzdmcnKSB7XG4gICAgc3RhdGUuc2NoZW1hID0gc3ZnXG4gIH1cblxuICBjb25zdCBhdHRyaWJ1dGVzID0gc2VyaWFsaXplQXR0cmlidXRlcyhzdGF0ZSwgbm9kZS5wcm9wZXJ0aWVzKVxuXG4gIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hbGwoXG4gICAgc2NoZW1hLnNwYWNlID09PSAnaHRtbCcgJiYgbm9kZS50YWdOYW1lID09PSAndGVtcGxhdGUnID8gbm9kZS5jb250ZW50IDogbm9kZVxuICApXG5cbiAgc3RhdGUuc2NoZW1hID0gc2NoZW1hXG5cbiAgLy8gSWYgdGhlIG5vZGUgaXMgY2F0ZWdvcmlzZWQgYXMgdm9pZCwgYnV0IGl0IGhhcyBjaGlsZHJlbiwgcmVtb3ZlIHRoZVxuICAvLyBjYXRlZ29yaXNhdGlvbi5cbiAgLy8gVGhpcyBlbmFibGVzIGZvciBleGFtcGxlIGBtZW51aXRlbWBzLCB3aGljaCBhcmUgdm9pZCBpbiBXM0MgSFRNTCBidXQgbm90XG4gIC8vIHZvaWQgaW4gV0hBVFdHIEhUTUwsIHRvIGJlIHN0cmluZ2lmaWVkIHByb3Blcmx5LlxuICAvLyBOb3RlOiBgbWVudWl0ZW1gIGhhcyBzaW5jZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgSFRNTCBzcGVjLCBhbmQgc28gaXMgbm9cbiAgLy8gbG9uZ2VyIHZvaWQuXG4gIGlmIChjb250ZW50KSBzZWxmQ2xvc2luZyA9IGZhbHNlXG5cbiAgaWYgKGF0dHJpYnV0ZXMgfHwgIW9taXQgfHwgIW9wZW5pbmcobm9kZSwgaW5kZXgsIHBhcmVudCkpIHtcbiAgICBwYXJ0cy5wdXNoKCc8Jywgbm9kZS50YWdOYW1lLCBhdHRyaWJ1dGVzID8gJyAnICsgYXR0cmlidXRlcyA6ICcnKVxuXG4gICAgaWYgKFxuICAgICAgc2VsZkNsb3NpbmcgJiZcbiAgICAgIChzY2hlbWEuc3BhY2UgPT09ICdzdmcnIHx8IHN0YXRlLnNldHRpbmdzLmNsb3NlU2VsZkNsb3NpbmcpXG4gICAgKSB7XG4gICAgICBsYXN0ID0gYXR0cmlidXRlcy5jaGFyQXQoYXR0cmlidXRlcy5sZW5ndGggLSAxKVxuICAgICAgaWYgKFxuICAgICAgICAhc3RhdGUuc2V0dGluZ3MudGlnaHRTZWxmQ2xvc2luZyB8fFxuICAgICAgICBsYXN0ID09PSAnLycgfHxcbiAgICAgICAgKGxhc3QgJiYgbGFzdCAhPT0gJ1wiJyAmJiBsYXN0ICE9PSBcIidcIilcbiAgICAgICkge1xuICAgICAgICBwYXJ0cy5wdXNoKCcgJylcbiAgICAgIH1cblxuICAgICAgcGFydHMucHVzaCgnLycpXG4gICAgfVxuXG4gICAgcGFydHMucHVzaCgnPicpXG4gIH1cblxuICBwYXJ0cy5wdXNoKGNvbnRlbnQpXG5cbiAgaWYgKCFzZWxmQ2xvc2luZyAmJiAoIW9taXQgfHwgIWNsb3Npbmcobm9kZSwgaW5kZXgsIHBhcmVudCkpKSB7XG4gICAgcGFydHMucHVzaCgnPC8nICsgbm9kZS50YWdOYW1lICsgJz4nKVxuICB9XG5cbiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7UHJvcGVydGllcyB8IG51bGwgfCB1bmRlZmluZWR9IHByb3BlcnRpZXNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHNlcmlhbGl6ZUF0dHJpYnV0ZXMoc3RhdGUsIHByb3BlcnRpZXMpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCB2YWx1ZXMgPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGtleVxuXG4gIGlmIChwcm9wZXJ0aWVzKSB7XG4gICAgZm9yIChrZXkgaW4gcHJvcGVydGllcykge1xuICAgICAgaWYgKHByb3BlcnRpZXNba2V5XSAhPT0gbnVsbCAmJiBwcm9wZXJ0aWVzW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHNlcmlhbGl6ZUF0dHJpYnV0ZShzdGF0ZSwga2V5LCBwcm9wZXJ0aWVzW2tleV0pXG4gICAgICAgIGlmICh2YWx1ZSkgdmFsdWVzLnB1c2godmFsdWUpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgd2hpbGUgKCsraW5kZXggPCB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgY29uc3QgbGFzdCA9IHN0YXRlLnNldHRpbmdzLnRpZ2h0QXR0cmlidXRlc1xuICAgICAgPyB2YWx1ZXNbaW5kZXhdLmNoYXJBdCh2YWx1ZXNbaW5kZXhdLmxlbmd0aCAtIDEpXG4gICAgICA6IHVuZGVmaW5lZFxuXG4gICAgLy8gSW4gdGlnaHQgbW9kZSwgZG9uXHUyMDE5dCBhZGQgYSBzcGFjZSBhZnRlciBxdW90ZWQgYXR0cmlidXRlcy5cbiAgICBpZiAoaW5kZXggIT09IHZhbHVlcy5sZW5ndGggLSAxICYmIGxhc3QgIT09ICdcIicgJiYgbGFzdCAhPT0gXCInXCIpIHtcbiAgICAgIHZhbHVlc1tpbmRleF0gKz0gJyAnXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlcy5qb2luKCcnKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiBAcGFyYW0ge1Byb3BlcnRpZXNba2V5b2YgUHJvcGVydGllc119IHZhbHVlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBzZXJpYWxpemVBdHRyaWJ1dGUoc3RhdGUsIGtleSwgdmFsdWUpIHtcbiAgY29uc3QgaW5mbyA9IGZpbmQoc3RhdGUuc2NoZW1hLCBrZXkpXG4gIGNvbnN0IHggPVxuICAgIHN0YXRlLnNldHRpbmdzLmFsbG93UGFyc2VFcnJvcnMgJiYgc3RhdGUuc2NoZW1hLnNwYWNlID09PSAnaHRtbCcgPyAwIDogMVxuICBjb25zdCB5ID0gc3RhdGUuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzID8gMCA6IDFcbiAgbGV0IHF1b3RlID0gc3RhdGUucXVvdGVcbiAgLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gIGxldCByZXN1bHRcblxuICBpZiAoaW5mby5vdmVybG9hZGVkQm9vbGVhbiAmJiAodmFsdWUgPT09IGluZm8uYXR0cmlidXRlIHx8IHZhbHVlID09PSAnJykpIHtcbiAgICB2YWx1ZSA9IHRydWVcbiAgfSBlbHNlIGlmIChcbiAgICAoaW5mby5ib29sZWFuIHx8IGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4pICYmXG4gICAgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgfHwgdmFsdWUgPT09IGluZm8uYXR0cmlidXRlIHx8IHZhbHVlID09PSAnJylcbiAgKSB7XG4gICAgdmFsdWUgPSBCb29sZWFuKHZhbHVlKVxuICB9XG5cbiAgaWYgKFxuICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgIHZhbHVlID09PSBmYWxzZSB8fFxuICAgICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIE51bWJlci5pc05hTih2YWx1ZSkpXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgY29uc3QgbmFtZSA9IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgIGluZm8uYXR0cmlidXRlLFxuICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgIC8vIEFsd2F5cyBlbmNvZGUgd2l0aG91dCBwYXJzZSBlcnJvcnMgaW4gbm9uLUhUTUwuXG4gICAgICBzdWJzZXQ6IGNvbnN0YW50cy5uYW1lW3hdW3ldXG4gICAgfSlcbiAgKVxuXG4gIC8vIE5vIHZhbHVlLlxuICAvLyBUaGVyZSBpcyBjdXJyZW50bHkgb25seSBvbmUgYm9vbGVhbiBwcm9wZXJ0eSBpbiBTVkc6IGBbZG93bmxvYWRdYCBvblxuICAvLyBgPGE+YC5cbiAgLy8gVGhpcyBwcm9wZXJ0eSBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgaW4gYnJvd3NlcnMgKEZpcmVmb3gsIFNhZmFyaSwgQ2hyb21lKSxcbiAgLy8gc28gSSBjYW5cdTIwMTl0IHRlc3QgaWYgZHJvcHBpbmcgdGhlIHZhbHVlIHdvcmtzLlxuICAvLyBCdXQgSSBhc3N1bWUgdGhhdCBpdCBzaG91bGQ6XG4gIC8vXG4gIC8vIGBgYGh0bWxcbiAgLy8gPCFkb2N0eXBlIGh0bWw+XG4gIC8vIDxzdmcgdmlld0JveD1cIjAgMCAxMDAgMTAwXCI+XG4gIC8vICAgPGEgaHJlZj1odHRwczovL2V4YW1wbGUuY29tIGRvd25sb2FkPlxuICAvLyAgICAgPGNpcmNsZSBjeD01MCBjeT00MCByPTM1IC8+XG4gIC8vICAgPC9hPlxuICAvLyA8L3N2Zz5cbiAgLy8gYGBgXG4gIC8vXG4gIC8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vcHJvcGVydHktaW5mb3JtYXRpb24vYmxvYi9tYWluL2xpYi9zdmcuanM+XG4gIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIG5hbWVcblxuICAvLyBgc3BhY2VzYCBkb2Vzblx1MjAxOXQgYWNjZXB0IGEgc2Vjb25kIGFyZ3VtZW50LCBidXQgaXRcdTIwMTlzIGdpdmVuIGhlcmUganVzdCB0b1xuICAvLyBrZWVwIHRoZSBjb2RlIGNsZWFuZXIuXG4gIHZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICA/IChpbmZvLmNvbW1hU2VwYXJhdGVkID8gY29tbWFzIDogc3BhY2VzKSh2YWx1ZSwge1xuICAgICAgICBwYWRMZWZ0OiAhc3RhdGUuc2V0dGluZ3MudGlnaHRDb21tYVNlcGFyYXRlZExpc3RzXG4gICAgICB9KVxuICAgIDogU3RyaW5nKHZhbHVlKVxuXG4gIGlmIChzdGF0ZS5zZXR0aW5ncy5jb2xsYXBzZUVtcHR5QXR0cmlidXRlcyAmJiAhdmFsdWUpIHJldHVybiBuYW1lXG5cbiAgLy8gQ2hlY2sgdW5xdW90ZWQgdmFsdWUuXG4gIGlmIChzdGF0ZS5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCkge1xuICAgIHJlc3VsdCA9IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgdmFsdWUsXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgIGF0dHJpYnV0ZTogdHJ1ZSxcbiAgICAgICAgc3Vic2V0OiBjb25zdGFudHMudW5xdW90ZWRbeF1beV1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLy8gSWYgd2UgZG9uXHUyMDE5dCB3YW50IHVucXVvdGVkLCBvciBpZiBgdmFsdWVgIGNvbnRhaW5zIGNoYXJhY3RlciByZWZlcmVuY2VzIHdoZW5cbiAgLy8gdW5xdW90ZWRcdTIwMjZcbiAgaWYgKHJlc3VsdCAhPT0gdmFsdWUpIHtcbiAgICAvLyBJZiB0aGUgYWx0ZXJuYXRpdmUgaXMgbGVzcyBjb21tb24gdGhhbiBgcXVvdGVgLCBzd2l0Y2guXG4gICAgaWYgKFxuICAgICAgc3RhdGUuc2V0dGluZ3MucXVvdGVTbWFydCAmJlxuICAgICAgY2NvdW50KHZhbHVlLCBxdW90ZSkgPiBjY291bnQodmFsdWUsIHN0YXRlLmFsdGVybmF0aXZlKVxuICAgICkge1xuICAgICAgcXVvdGUgPSBzdGF0ZS5hbHRlcm5hdGl2ZVxuICAgIH1cblxuICAgIHJlc3VsdCA9XG4gICAgICBxdW90ZSArXG4gICAgICBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgICAgICAvLyBBbHdheXMgZW5jb2RlIHdpdGhvdXQgcGFyc2UgZXJyb3JzIGluIG5vbi1IVE1MLlxuICAgICAgICAgIHN1YnNldDogKHF1b3RlID09PSBcIidcIiA/IGNvbnN0YW50cy5zaW5nbGUgOiBjb25zdGFudHMuZG91YmxlKVt4XVt5XSxcbiAgICAgICAgICBhdHRyaWJ1dGU6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICkgK1xuICAgICAgcXVvdGVcbiAgfVxuXG4gIC8vIERvblx1MjAxOXQgYWRkIGEgYD1gIGZvciB1bnF1b3RlZCBlbXB0aWVzLlxuICByZXR1cm4gbmFtZSArIChyZXN1bHQgPyAnPScgKyByZXN1bHQgOiByZXN1bHQpXG59XG4iLCAiLyoqXG4gKiBAaW1wb3J0IHtQYXJlbnRzLCBUZXh0fSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7UmF3fSBmcm9tICdtZGFzdC11dGlsLXRvLWhhc3QnXG4gKiBAaW1wb3J0IHtTdGF0ZX0gZnJvbSAnLi4vaW5kZXguanMnXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuXG4vLyBEZWNsYXJlIGFycmF5IGFzIHZhcmlhYmxlIHNvIGl0IGNhbiBiZSBjYWNoZWQgYnkgYHN0cmluZ2lmeUVudGl0aWVzYFxuY29uc3QgdGV4dEVudGl0eVN1YnNldCA9IFsnPCcsICcmJ11cblxuLyoqXG4gKiBTZXJpYWxpemUgYSB0ZXh0IG5vZGUuXG4gKlxuICogQHBhcmFtIHtSYXcgfCBUZXh0fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF9cbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGV4dChub2RlLCBfLCBwYXJlbnQsIHN0YXRlKSB7XG4gIC8vIENoZWNrIGlmIGNvbnRlbnQgb2YgYG5vZGVgIHNob3VsZCBiZSBlc2NhcGVkLlxuICByZXR1cm4gcGFyZW50ICYmXG4gICAgcGFyZW50LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgIChwYXJlbnQudGFnTmFtZSA9PT0gJ3NjcmlwdCcgfHwgcGFyZW50LnRhZ05hbWUgPT09ICdzdHlsZScpXG4gICAgPyBub2RlLnZhbHVlXG4gICAgOiBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICAgbm9kZS52YWx1ZSxcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge1xuICAgICAgICAgIHN1YnNldDogdGV4dEVudGl0eVN1YnNldFxuICAgICAgICB9KVxuICAgICAgKVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7UGFyZW50c30gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1Jhd30gZnJvbSAnbWRhc3QtdXRpbC10by1oYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4uL2luZGV4LmpzJ1xuICovXG5cbmltcG9ydCB7dGV4dH0gZnJvbSAnLi90ZXh0LmpzJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIHJhdyBub2RlLlxuICpcbiAqIEBwYXJhbSB7UmF3fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGBub2RlYC5cbiAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gKiAgIEluZm8gcGFzc2VkIGFyb3VuZCBhYm91dCB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhdyhub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSkge1xuICByZXR1cm4gc3RhdGUuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNIdG1sXG4gICAgPyBub2RlLnZhbHVlXG4gICAgOiB0ZXh0KG5vZGUsIGluZGV4LCBwYXJlbnQsIHN0YXRlKVxufVxuIiwgIi8qKlxuICogQGltcG9ydCB7UGFyZW50cywgUm9vdH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1N0YXRlfSBmcm9tICcuLi9pbmRleC5qcydcbiAqL1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIHJvb3QuXG4gKlxuICogQHBhcmFtIHtSb290fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8xXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfMlxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdChub2RlLCBfMSwgXzIsIHN0YXRlKSB7XG4gIHJldHVybiBzdGF0ZS5hbGwobm9kZSlcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge05vZGVzLCBQYXJlbnRzfSBmcm9tICdoYXN0J1xuICogQGltcG9ydCB7U3RhdGV9IGZyb20gJy4uL2luZGV4LmpzJ1xuICovXG5cbmltcG9ydCB7endpdGNofSBmcm9tICd6d2l0Y2gnXG5pbXBvcnQge2NvbW1lbnR9IGZyb20gJy4vY29tbWVudC5qcydcbmltcG9ydCB7ZG9jdHlwZX0gZnJvbSAnLi9kb2N0eXBlLmpzJ1xuaW1wb3J0IHtlbGVtZW50fSBmcm9tICcuL2VsZW1lbnQuanMnXG5pbXBvcnQge3Jhd30gZnJvbSAnLi9yYXcuanMnXG5pbXBvcnQge3Jvb3R9IGZyb20gJy4vcm9vdC5qcydcbmltcG9ydCB7dGV4dH0gZnJvbSAnLi90ZXh0LmpzJ1xuXG4vKipcbiAqIEB0eXBlIHsobm9kZTogTm9kZXMsIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQsIHBhcmVudDogUGFyZW50cyB8IHVuZGVmaW5lZCwgc3RhdGU6IFN0YXRlKSA9PiBzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGUgPSB6d2l0Y2goJ3R5cGUnLCB7XG4gIGludmFsaWQsXG4gIHVua25vd24sXG4gIGhhbmRsZXJzOiB7Y29tbWVudCwgZG9jdHlwZSwgZWxlbWVudCwgcmF3LCByb290LCB0ZXh0fVxufSlcblxuLyoqXG4gKiBGYWlsIHdoZW4gYSBub24tbm9kZSBpcyBmb3VuZCBpbiB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVcbiAqICAgVW5rbm93biB2YWx1ZS5cbiAqIEByZXR1cm5zIHtuZXZlcn1cbiAqICAgTmV2ZXIuXG4gKi9cbmZ1bmN0aW9uIGludmFsaWQobm9kZSkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIG5vZGUsIG5vdCBgJyArIG5vZGUgKyAnYCcpXG59XG5cbi8qKlxuICogRmFpbCB3aGVuIGEgbm9kZSB3aXRoIGFuIHVua25vd24gdHlwZSBpcyBmb3VuZCBpbiB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVfXG4gKiAgVW5rbm93biBub2RlLlxuICogQHJldHVybnMge25ldmVyfVxuICogICBOZXZlci5cbiAqL1xuZnVuY3Rpb24gdW5rbm93bihub2RlXykge1xuICAvLyBgdHlwZWAgaXMgZ3VhcmFudGVlZCBieSBydW50aW1lIEpTLlxuICBjb25zdCBub2RlID0gLyoqIEB0eXBlIHtOb2Rlc30gKi8gKG5vZGVfKVxuICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgJyArIG5vZGUudHlwZSArICdgJylcbn1cbiIsICIvKipcbiAqIEBpbXBvcnQge05vZGVzLCBQYXJlbnRzLCBSb290Q29udGVudH0gZnJvbSAnaGFzdCdcbiAqIEBpbXBvcnQge1NjaGVtYX0gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG4gKiBAaW1wb3J0IHtPcHRpb25zIGFzIFN0cmluZ2lmeUVudGl0aWVzT3B0aW9uc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09taXQ8U3RyaW5naWZ5RW50aXRpZXNPcHRpb25zLCAnYXR0cmlidXRlJyB8ICdlc2NhcGVPbmx5JyB8ICdzdWJzZXQnPn0gQ2hhcmFjdGVyUmVmZXJlbmNlc1xuICpcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM9ZmFsc2VdXG4gKiAgIERvIG5vdCBlbmNvZGUgc29tZSBjaGFyYWN0ZXJzIHdoaWNoIGNhdXNlIFhTUyB2dWxuZXJhYmlsaXRpZXMgaW4gb2xkZXJcbiAqICAgYnJvd3NlcnMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdTI2QTBcdUZFMEYgKipEYW5nZXIqKjogb25seSBzZXQgdGhpcyBpZiB5b3UgY29tcGxldGVseSB0cnVzdCB0aGUgY29udGVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0Rhbmdlcm91c0h0bWw9ZmFsc2VdXG4gKiAgIEFsbG93IGByYXdgIG5vZGVzIGFuZCBpbnNlcnQgdGhlbSBhcyByYXcgSFRNTCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBXaGVuIGBmYWxzZWAsIGBSYXdgIG5vZGVzIGFyZSBlbmNvZGVkLlxuICpcbiAqICAgPiBcdTI2QTBcdUZFMEYgKipEYW5nZXIqKjogb25seSBzZXQgdGhpcyBpZiB5b3UgY29tcGxldGVseSB0cnVzdCB0aGUgY29udGVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd1BhcnNlRXJyb3JzPWZhbHNlXVxuICogICBEbyBub3QgZW5jb2RlIGNoYXJhY3RlcnMgd2hpY2ggY2F1c2UgcGFyc2UgZXJyb3JzIChldmVuIHRob3VnaCB0aGV5IHdvcmspLFxuICogICB0byBzYXZlIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtib2d1c0NvbW1lbnRzPWZhbHNlXVxuICogICBVc2UgXHUyMDFDYm9ndXMgY29tbWVudHNcdTIwMUQgaW5zdGVhZCBvZiBjb21tZW50cyB0byBzYXZlIGJ5ZXM6IGA8P2NoYXJsaWU+YFxuICogICBpbnN0ZWFkIG9mIGA8IS0tY2hhcmxpZS0tPmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge0NoYXJhY3RlclJlZmVyZW5jZXMgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2hhcmFjdGVyUmVmZXJlbmNlc11cbiAqICAgQ29uZmlndXJlIGhvdyB0byBzZXJpYWxpemUgY2hhcmFjdGVyIHJlZmVyZW5jZXMgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjbG9zZUVtcHR5RWxlbWVudHM9ZmFsc2VdXG4gKiAgIENsb3NlIFNWRyBlbGVtZW50cyB3aXRob3V0IGFueSBjb250ZW50IHdpdGggc2xhc2ggKGAvYCkgb24gdGhlIG9wZW5pbmcgdGFnXG4gKiAgIGluc3RlYWQgb2YgYW4gZW5kIHRhZzogYDxjaXJjbGUgLz5gIGluc3RlYWQgb2YgYDxjaXJjbGU+PC9jaXJjbGU+YFxuICogICAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBTZWUgYHRpZ2h0U2VsZkNsb3NpbmdgIHRvIGNvbnRyb2wgd2hldGhlciBhIHNwYWNlIGlzIHVzZWQgYmVmb3JlIHRoZVxuICogICBzbGFzaC5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBIVE1MIHNwYWNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Nsb3NlU2VsZkNsb3Npbmc9ZmFsc2VdXG4gKiAgIENsb3NlIHNlbGYtY2xvc2luZyBub2RlcyB3aXRoIGFuIGV4dHJhIHNsYXNoIChgL2ApOiBgPGltZyAvPmAgaW5zdGVhZCBvZlxuICogICBgPGltZz5gIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIFNlZSBgdGlnaHRTZWxmQ2xvc2luZ2AgdG8gY29udHJvbCB3aGV0aGVyIGEgc3BhY2UgaXMgdXNlZCBiZWZvcmUgdGhlXG4gKiAgIHNsYXNoLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjb2xsYXBzZUVtcHR5QXR0cmlidXRlcz1mYWxzZV1cbiAqICAgQ29sbGFwc2UgZW1wdHkgYXR0cmlidXRlczogZ2V0IGBjbGFzc2AgaW5zdGVhZCBvZiBgY2xhc3M9XCJcImAgKGRlZmF1bHQ6XG4gKiAgIGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBib29sZWFuIGF0dHJpYnV0ZXMgKHN1Y2ggYXMgYGhpZGRlbmApIGFyZSBhbHdheXMgY29sbGFwc2VkLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29taXRPcHRpb25hbFRhZ3M9ZmFsc2VdXG4gKiAgIE9taXQgb3B0aW9uYWwgb3BlbmluZyBhbmQgY2xvc2luZyB0YWdzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIEZvciBleGFtcGxlLCBpbiBgPG9sPjxsaT5vbmU8L2xpPjxsaT50d288L2xpPjwvb2w+YCwgYm90aCBgPC9saT5gIGNsb3NpbmdcbiAqICAgdGFncyBjYW4gYmUgb21pdHRlZC5cbiAqICAgVGhlIGZpcnN0IGJlY2F1c2UgaXRcdTIwMTlzIGZvbGxvd2VkIGJ5IGFub3RoZXIgYGxpYCwgdGhlIGxhc3QgYmVjYXVzZSBpdFx1MjAxOXNcbiAqICAgZm9sbG93ZWQgYnkgbm90aGluZy5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcHJlZmVyVW5xdW90ZWQ9ZmFsc2VdXG4gKiAgIExlYXZlIGF0dHJpYnV0ZXMgdW5xdW90ZWQgaWYgdGhhdCByZXN1bHRzIGluIGxlc3MgYnl0ZXMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtxdW90ZVNtYXJ0PWZhbHNlXVxuICogICBVc2UgdGhlIG90aGVyIHF1b3RlIGlmIHRoYXQgcmVzdWx0cyBpbiBsZXNzIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEBwcm9wZXJ0eSB7UXVvdGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbcXVvdGU9J1wiJ11cbiAqICAgUHJlZmVycmVkIHF1b3RlIHRvIHVzZSAoZGVmYXVsdDogYCdcIidgKS5cbiAqIEBwcm9wZXJ0eSB7U3BhY2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3BhY2U9J2h0bWwnXVxuICogICBXaGVuIGFuIGA8c3ZnPmAgZWxlbWVudCBpcyBmb3VuZCBpbiB0aGUgSFRNTCBzcGFjZSwgdGhpcyBwYWNrYWdlIGFscmVhZHlcbiAqICAgYXV0b21hdGljYWxseSBzd2l0Y2hlcyB0byBhbmQgZnJvbSB0aGUgU1ZHIHNwYWNlIHdoZW4gZW50ZXJpbmcgYW5kIGV4aXRpbmdcbiAqICAgaXQgKGRlZmF1bHQ6IGAnaHRtbCdgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBoYXN0IGlzIG5vdCBYTUwuXG4gKiAgID4gSXQgc3VwcG9ydHMgU1ZHIGFzIGVtYmVkZGVkIGluIEhUTUwuXG4gKiAgID4gSXQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZmVhdHVyZXMgYXZhaWxhYmxlIGluIFhNTC5cbiAqICAgPiBQYXNzaW5nIFNWRyBtaWdodCBicmVhayBidXQgZnJhZ21lbnRzIG9mIG1vZGVybiBTVkcgc2hvdWxkIGJlIGZpbmUuXG4gKiAgID4gVXNlIFtgeGFzdGBdW3hhc3RdIGlmIHlvdSBuZWVkIHRvIHN1cHBvcnQgU1ZHIGFzIFhNTC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodEF0dHJpYnV0ZXM9ZmFsc2VdXG4gKiAgIEpvaW4gYXR0cmlidXRlcyB0b2dldGhlciwgd2l0aG91dCB3aGl0ZXNwYWNlLCBpZiBwb3NzaWJsZTogZ2V0XG4gKiAgIGBjbGFzcz1cImEgYlwidGl0bGU9XCJjIGRcImAgaW5zdGVhZCBvZiBgY2xhc3M9XCJhIGJcIiB0aXRsZT1cImMgZFwiYCB0byBzYXZlXG4gKiAgIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM9ZmFsc2VdXG4gKiAgIEpvaW4ga25vd24gY29tbWEtc2VwYXJhdGVkIGF0dHJpYnV0ZSB2YWx1ZXMgd2l0aCBqdXN0IGEgY29tbWEgKGAsYCksXG4gKiAgIGluc3RlYWQgb2YgcGFkZGluZyB0aGVtIG9uIHRoZSByaWdodCBhcyB3ZWxsIChgLFx1MjQyMGAsIHdoZXJlIGBcdTI0MjBgIHJlcHJlc2VudHMgYVxuICogICBzcGFjZSkgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0RG9jdHlwZT1mYWxzZV1cbiAqICAgRHJvcCB1bm5lZWRlZCBzcGFjZXMgaW4gZG9jdHlwZXM6IGA8IWRvY3R5cGVodG1sPmAgaW5zdGVhZCBvZlxuICogICBgPCFkb2N0eXBlIGh0bWw+YCB0byBzYXZlIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBpbnRlbnRpb25hbGx5IGNyZWF0ZXMgcGFyc2UgZXJyb3JzIGluIG1hcmt1cCAoaG93IHBhcnNlXG4gKiAgID4gZXJyb3JzIGFyZSBoYW5kbGVkIGlzIHdlbGwgZGVmaW5lZCwgc28gdGhpcyB3b3JrcyBidXQgaXNuXHUyMDE5dCBwcmV0dHkpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0U2VsZkNsb3Npbmc9ZmFsc2VdXG4gKiAgIERvIG5vdCB1c2UgYW4gZXh0cmEgc3BhY2Ugd2hlbiBjbG9zaW5nIHNlbGYtY2xvc2luZyBlbGVtZW50czogYDxpbWcvPmBcbiAqICAgaW5zdGVhZCBvZiBgPGltZyAvPmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IG9ubHkgdXNlZCBpZiBgY2xvc2VTZWxmQ2xvc2luZzogdHJ1ZWAgb3JcbiAqICAgPiBgY2xvc2VFbXB0eUVsZW1lbnRzOiB0cnVlYC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt1cHBlckRvY3R5cGU9ZmFsc2VdXG4gKiAgIFVzZSBhIGA8IURPQ1RZUEVcdTIwMjZgIGluc3RlYWQgb2YgYDwhZG9jdHlwZVx1MjAyNmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgVXNlbGVzcyBleGNlcHQgZm9yIFhIVE1MLlxuICogQHByb3BlcnR5IHtSZWFkb25seUFycmF5PHN0cmluZz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdm9pZHNdXG4gKiAgIFRhZyBuYW1lcyBvZiBlbGVtZW50cyB0byBzZXJpYWxpemUgd2l0aG91dCBjbG9zaW5nIHRhZyAoZGVmYXVsdDogYGh0bWwtdm9pZC1lbGVtZW50c2ApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBJdFx1MjAxOXMgaGlnaGx5IHVubGlrZWx5IHRoYXQgeW91IHdhbnQgdG8gcGFzcyB0aGlzLCBiZWNhdXNlXG4gKiAgID4gaGFzdCBpcyBub3QgZm9yIFhNTCwgYW5kIEhUTUwgd2lsbCBub3QgYWRkIG1vcmUgdm9pZCBlbGVtZW50cy5cbiAqXG4gKiBAdHlwZWRlZiB7J1wiJyB8IFwiJ1wifSBRdW90ZVxuICogICBIVE1MIHF1b3RlcyBmb3IgYXR0cmlidXRlIHZhbHVlcy5cbiAqXG4gKiBAdHlwZWRlZiB7T21pdDxSZXF1aXJlZDx7W2tleSBpbiBrZXlvZiBPcHRpb25zXTogRXhjbHVkZTxPcHRpb25zW2tleV0sIG51bGwgfCB1bmRlZmluZWQ+fT4sICdzcGFjZScgfCAncXVvdGUnPn0gU2V0dGluZ3NcbiAqXG4gKiBAdHlwZWRlZiB7J2h0bWwnIHwgJ3N2Zyd9IFNwYWNlXG4gKiAgIE5hbWVzcGFjZS5cbiAqXG4gKiBAdHlwZWRlZiBTdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcHJvcGVydHkgeyhub2RlOiBQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmd9IGFsbFxuICogICBTZXJpYWxpemUgdGhlIGNoaWxkcmVuIG9mIGEgcGFyZW50IG5vZGUuXG4gKiBAcHJvcGVydHkge1F1b3RlfSBhbHRlcm5hdGl2ZVxuICogICBBbHRlcm5hdGl2ZSBxdW90ZS5cbiAqIEBwcm9wZXJ0eSB7KG5vZGU6IE5vZGVzLCBpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkLCBwYXJlbnQ6IFBhcmVudHMgfCB1bmRlZmluZWQpID0+IHN0cmluZ30gb25lXG4gKiAgIFNlcmlhbGl6ZSBvbmUgbm9kZS5cbiAqIEBwcm9wZXJ0eSB7UXVvdGV9IHF1b3RlXG4gKiAgIFByZWZlcnJlZCBxdW90ZS5cbiAqIEBwcm9wZXJ0eSB7U2NoZW1hfSBzY2hlbWFcbiAqICAgQ3VycmVudCBzY2hlbWEuXG4gKiBAcHJvcGVydHkge1NldHRpbmdzfSBzZXR0aW5nc1xuICogICBVc2VyIGNvbmZpZ3VyYXRpb24uXG4gKi9cblxuaW1wb3J0IHtodG1sVm9pZEVsZW1lbnRzfSBmcm9tICdodG1sLXZvaWQtZWxlbWVudHMnXG5pbXBvcnQge2h0bWwsIHN2Z30gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge2hhbmRsZX0gZnJvbSAnLi9oYW5kbGUvaW5kZXguanMnXG5cbi8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKiBAdHlwZSB7Q2hhcmFjdGVyUmVmZXJlbmNlc30gKi9cbmNvbnN0IGVtcHR5Q2hhcmFjdGVyUmVmZXJlbmNlcyA9IHt9XG5cbi8qKiBAdHlwZSB7QXJyYXk8bmV2ZXI+fSAqL1xuY29uc3QgZW1wdHlDaGlsZHJlbiA9IFtdXG5cbi8qKlxuICogU2VyaWFsaXplIGhhc3QgYXMgSFRNTC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PFJvb3RDb250ZW50PiB8IE5vZGVzfSB0cmVlXG4gKiAgIFRyZWUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSHRtbCh0cmVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IG9wdGlvbnNfID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3QgcXVvdGUgPSBvcHRpb25zXy5xdW90ZSB8fCAnXCInXG4gIGNvbnN0IGFsdGVybmF0aXZlID0gcXVvdGUgPT09ICdcIicgPyBcIidcIiA6ICdcIidcblxuICBpZiAocXVvdGUgIT09ICdcIicgJiYgcXVvdGUgIT09IFwiJ1wiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHF1b3RlIGAnICsgcXVvdGUgKyAnYCwgZXhwZWN0ZWQgYFxcJ2Agb3IgYFwiYCcpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBjb25zdCBzdGF0ZSA9IHtcbiAgICBvbmUsXG4gICAgYWxsLFxuICAgIHNldHRpbmdzOiB7XG4gICAgICBvbWl0T3B0aW9uYWxUYWdzOiBvcHRpb25zXy5vbWl0T3B0aW9uYWxUYWdzIHx8IGZhbHNlLFxuICAgICAgYWxsb3dQYXJzZUVycm9yczogb3B0aW9uc18uYWxsb3dQYXJzZUVycm9ycyB8fCBmYWxzZSxcbiAgICAgIGFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyczogb3B0aW9uc18uYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzIHx8IGZhbHNlLFxuICAgICAgcXVvdGVTbWFydDogb3B0aW9uc18ucXVvdGVTbWFydCB8fCBmYWxzZSxcbiAgICAgIHByZWZlclVucXVvdGVkOiBvcHRpb25zXy5wcmVmZXJVbnF1b3RlZCB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0QXR0cmlidXRlczogb3B0aW9uc18udGlnaHRBdHRyaWJ1dGVzIHx8IGZhbHNlLFxuICAgICAgdXBwZXJEb2N0eXBlOiBvcHRpb25zXy51cHBlckRvY3R5cGUgfHwgZmFsc2UsXG4gICAgICB0aWdodERvY3R5cGU6IG9wdGlvbnNfLnRpZ2h0RG9jdHlwZSB8fCBmYWxzZSxcbiAgICAgIGJvZ3VzQ29tbWVudHM6IG9wdGlvbnNfLmJvZ3VzQ29tbWVudHMgfHwgZmFsc2UsXG4gICAgICB0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM6IG9wdGlvbnNfLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0cyB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0U2VsZkNsb3Npbmc6IG9wdGlvbnNfLnRpZ2h0U2VsZkNsb3NpbmcgfHwgZmFsc2UsXG4gICAgICBjb2xsYXBzZUVtcHR5QXR0cmlidXRlczogb3B0aW9uc18uY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMgfHwgZmFsc2UsXG4gICAgICBhbGxvd0Rhbmdlcm91c0h0bWw6IG9wdGlvbnNfLmFsbG93RGFuZ2Vyb3VzSHRtbCB8fCBmYWxzZSxcbiAgICAgIHZvaWRzOiBvcHRpb25zXy52b2lkcyB8fCBodG1sVm9pZEVsZW1lbnRzLFxuICAgICAgY2hhcmFjdGVyUmVmZXJlbmNlczpcbiAgICAgICAgb3B0aW9uc18uY2hhcmFjdGVyUmVmZXJlbmNlcyB8fCBlbXB0eUNoYXJhY3RlclJlZmVyZW5jZXMsXG4gICAgICBjbG9zZVNlbGZDbG9zaW5nOiBvcHRpb25zXy5jbG9zZVNlbGZDbG9zaW5nIHx8IGZhbHNlLFxuICAgICAgY2xvc2VFbXB0eUVsZW1lbnRzOiBvcHRpb25zXy5jbG9zZUVtcHR5RWxlbWVudHMgfHwgZmFsc2VcbiAgICB9LFxuICAgIHNjaGVtYTogb3B0aW9uc18uc3BhY2UgPT09ICdzdmcnID8gc3ZnIDogaHRtbCxcbiAgICBxdW90ZSxcbiAgICBhbHRlcm5hdGl2ZVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlLm9uZShcbiAgICBBcnJheS5pc0FycmF5KHRyZWUpID8ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IHRyZWV9IDogdHJlZSxcbiAgICB1bmRlZmluZWQsXG4gICAgdW5kZWZpbmVkXG4gIClcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYSBub2RlLlxuICpcbiAqIEB0aGlzIHtTdGF0ZX1cbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtOb2Rlc30gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmZ1bmN0aW9uIG9uZShub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHJldHVybiBoYW5kbGUobm9kZSwgaW5kZXgsIHBhcmVudCwgdGhpcylcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYWxsIGNoaWxkcmVuIG9mIGBwYXJlbnRgLlxuICpcbiAqIEB0aGlzIHtTdGF0ZX1cbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IHdob3NlIGNoaWxkcmVuIHRvIHNlcmlhbGl6ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGwocGFyZW50KSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0cyA9IFtdXG4gIGNvbnN0IGNoaWxkcmVuID0gKHBhcmVudCAmJiBwYXJlbnQuY2hpbGRyZW4pIHx8IGVtcHR5Q2hpbGRyZW5cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgIHJlc3VsdHNbaW5kZXhdID0gdGhpcy5vbmUoY2hpbGRyZW5baW5kZXhdLCBpbmRleCwgcGFyZW50KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHMuam9pbignJylcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbGliL2luZGV4LmpzJykuQ2hhcmFjdGVyUmVmZXJlbmNlc30gQ2hhcmFjdGVyUmVmZXJlbmNlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5PcHRpb25zfSBPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xpYi9pbmRleC5qcycpLlF1b3RlfSBRdW90ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvaW5kZXguanMnKS5TcGFjZX0gU3BhY2VcbiAqL1xuXG5leHBvcnQge3RvSHRtbH0gZnJvbSAnLi9saWIvaW5kZXguanMnXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0LXV0aWwtc2FuaXRpemUnKS5TY2hlbWF9IFNjaGVtYVxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdC11dGlsLXRvLWh0bWwnKS5PcHRpb25zfSBUb0h0bWxPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8taGFzdCcpLkhhbmRsZXJzfSBIYW5kbGVyc1xuICogQHR5cGVkZWYge2ltcG9ydCgndW5pZmllZCcpLkNvbXBpbGVyPFJvb3QsIHN0cmluZz59IENvbXBpbGVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlmaWVkJykuUHJvY2Vzc29yPHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIFJvb3QsIHN0cmluZz59IFByb2Nlc3NvclxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgRXh0cmFPcHRpb25zRmllbGRzXG4gKiAgIEV4dHJhIGZpZWxkcy5cbiAqIEBwcm9wZXJ0eSB7UmVhZG9ubHk8SGFuZGxlcnM+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2hhbmRsZXJzXVxuICogICBIb3cgdG8gdHVybiBtZGFzdCBub2RlcyBpbnRvIGhhc3Qgbm9kZXMgKG9wdGlvbmFsKTtcbiAqICAgcGFzc2VkIHRvIGBtZGFzdC11dGlsLXRvLWhhc3RgLlxuICogQHByb3BlcnR5IHtSZWFkb25seTxTY2hlbWE+IHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtzYW5pdGl6ZV1cbiAqICAgU2FuaXRpemUgdGhlIG91dHB1dCwgYW5kIGhvdyAoZGVmYXVsdDogYHRydWVgKS5cbiAqXG4gKiBAdHlwZWRlZiB7VG9IdG1sT3B0aW9ucyAmIEV4dHJhT3B0aW9uc0ZpZWxkc30gT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICovXG5cbmltcG9ydCB7c2FuaXRpemV9IGZyb20gJ2hhc3QtdXRpbC1zYW5pdGl6ZSdcbmltcG9ydCB7dG9IYXN0fSBmcm9tICdtZGFzdC11dGlsLXRvLWhhc3QnXG5pbXBvcnQge3RvSHRtbH0gZnJvbSAnaGFzdC11dGlsLXRvLWh0bWwnXG5cbi8qKiBAdHlwZSB7UmVhZG9ubHk8T3B0aW9ucz59ICovXG5jb25zdCBlbXB0eU9wdGlvbnMgPSB7fVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBtYXJrZG93biBhcyBIVE1MLlxuICpcbiAqICMjIyMjIyBOb3Rlc1xuICpcbiAqIFBhc3NpbmcgYHNhbml0aXplOiBmYWxzZWAgaXMgZGFuZ2Vyb3VzLlxuICogSXQgYWxsb3dzIGFyYml0cmFyeSBIVE1MIGFuZCBkb2VzIG5vdCBzYW5pdGl6ZSBlbGVtZW50cy5cbiAqXG4gKiBAcGFyYW0ge1JlYWRvbmx5PE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlbWFya0h0bWwob3B0aW9ucykge1xuICAvKiogQHR5cGUge1Byb2Nlc3Nvcn0gKi9cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgaW4gSlNEb2MgZ2VuZXJhdGVzIHdyb25nIHR5cGVzIGlmIGB0aGlzYCBpcyB0eXBlZCByZWd1bGFybHkuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLXRoaXMtYXNzaWdubWVudFxuICBjb25zdCBzZWxmID0gdGhpc1xuICBjb25zdCB7aGFuZGxlcnMsIHNhbml0aXplOiBjbGVhbiwgLi4udG9IdG1sT3B0aW9uc30gPSBvcHRpb25zIHx8IGVtcHR5T3B0aW9uc1xuICBsZXQgYWxsb3dEYW5nZXJvdXNIdG1sID0gZmFsc2VcbiAgLyoqIEB0eXBlIHtSZWFkb25seTxTY2hlbWE+IHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgc2NoZW1hXG5cbiAgaWYgKHR5cGVvZiBjbGVhbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgYWxsb3dEYW5nZXJvdXNIdG1sID0gIWNsZWFuXG4gIH0gZWxzZSBpZiAoY2xlYW4pIHtcbiAgICBzY2hlbWEgPSBjbGVhblxuICB9XG5cbiAgc2VsZi5jb21waWxlciA9IGNvbXBpbGVyXG5cbiAgLyoqXG4gICAqIEB0eXBlIHtDb21waWxlcn1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBpbGVyKHRyZWUsIGZpbGUpIHtcbiAgICBjb25zdCBoYXN0ID0gdG9IYXN0KHRyZWUsIHtoYW5kbGVycywgYWxsb3dEYW5nZXJvdXNIdG1sfSlcbiAgICBjb25zdCBzYWZlSGFzdCA9IGFsbG93RGFuZ2Vyb3VzSHRtbCA/IGhhc3QgOiBzYW5pdGl6ZShoYXN0LCBzY2hlbWEpXG4gICAgY29uc3QgcmVzdWx0ID0gdG9IdG1sKHNhZmVIYXN0LCB7Li4udG9IdG1sT3B0aW9ucywgYWxsb3dEYW5nZXJvdXNIdG1sfSlcblxuICAgIGlmIChmaWxlLmV4dG5hbWUpIHtcbiAgICAgIGZpbGUuZXh0bmFtZSA9ICcuaHRtbCdcbiAgICB9XG5cbiAgICAvLyBBZGQgYW4gZW9mIGVvbC5cbiAgICByZXR1cm4gdHJlZSAmJlxuICAgICAgdHJlZS50eXBlID09PSAncm9vdCcgJiZcbiAgICAgIHJlc3VsdCAmJlxuICAgICAgL1teXFxyXFxuXS8udGVzdChyZXN1bHQuY2hhckF0KHJlc3VsdC5sZW5ndGggLSAxKSlcbiAgICAgID8gcmVzdWx0ICsgJ1xcbidcbiAgICAgIDogcmVzdWx0XG4gIH1cbn1cbiIsICIvLyBOb3RlOiB0eXBlcyBleHBvc2VkIGZyb20gYGluZGV4LmQudHNgLlxuZXhwb3J0IHtkZWZhdWx0fSBmcm9tICcuL2xpYi9pbmRleC5qcydcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgnbWRhc3QtdXRpbC10by1tYXJrZG93bicpLk9wdGlvbnN9IFRvTWFya2Rvd25PcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlmaWVkJykuQ29tcGlsZXI8Um9vdCwgc3RyaW5nPn0gQ29tcGlsZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaWZpZWQnKS5Qcm9jZXNzb3I8dW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgUm9vdCwgc3RyaW5nPn0gUHJvY2Vzc29yXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7T21pdDxUb01hcmtkb3duT3B0aW9ucywgJ2V4dGVuc2lvbnMnPn0gT3B0aW9uc1xuICovXG5cbmltcG9ydCB7dG9NYXJrZG93bn0gZnJvbSAnbWRhc3QtdXRpbC10by1tYXJrZG93bidcblxuLyoqXG4gKiBBZGQgc3VwcG9ydCBmb3Igc2VyaWFsaXppbmcgdG8gbWFya2Rvd24uXG4gKlxuICogQHBhcmFtIHtSZWFkb25seTxPcHRpb25zPiB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW1hcmtTdHJpbmdpZnkob3B0aW9ucykge1xuICAvKiogQHR5cGUge1Byb2Nlc3Nvcn0gKi9cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgaW4gSlNEb2MgZ2VuZXJhdGVzIHdyb25nIHR5cGVzIGlmIGB0aGlzYCBpcyB0eXBlZCByZWd1bGFybHkuXG4gIGNvbnN0IHNlbGYgPSB0aGlzXG5cbiAgc2VsZi5jb21waWxlciA9IGNvbXBpbGVyXG5cbiAgLyoqXG4gICAqIEB0eXBlIHtDb21waWxlcn1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBpbGVyKHRyZWUpIHtcbiAgICByZXR1cm4gdG9NYXJrZG93bih0cmVlLCB7XG4gICAgICAuLi5zZWxmLmRhdGEoJ3NldHRpbmdzJyksXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgLy8gTm90ZTogdGhpcyBvcHRpb24gaXMgbm90IGluIHRoZSByZWFkbWUuXG4gICAgICAvLyBUaGUgZ29hbCBpcyBmb3IgaXQgdG8gYmUgc2V0IGJ5IHBsdWdpbnMgb24gYGRhdGFgIGluc3RlYWQgb2YgYmVpbmdcbiAgICAgIC8vIHBhc3NlZCBieSB1c2Vycy5cbiAgICAgIGV4dGVuc2lvbnM6IHNlbGYuZGF0YSgndG9NYXJrZG93bkV4dGVuc2lvbnMnKSB8fCBbXVxuICAgIH0pXG4gIH1cbn1cbiIsICIvLyBOb3RlOiB0eXBlcyBleHBvc2VkIGZyb20gYGluZGV4LmQudHNgLlxuZXhwb3J0IHtkZWZhdWx0fSBmcm9tICcuL2xpYi9pbmRleC5qcydcbiIsICJmdW5jdGlvbiBleHRlbmQgKGRlc3RpbmF0aW9uKSB7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTtcbiAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICBpZiAoc291cmNlLmhhc093blByb3BlcnR5KGtleSkpIGRlc3RpbmF0aW9uW2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRlc3RpbmF0aW9uXG59XG5cbmZ1bmN0aW9uIHJlcGVhdCAoY2hhcmFjdGVyLCBjb3VudCkge1xuICByZXR1cm4gQXJyYXkoY291bnQgKyAxKS5qb2luKGNoYXJhY3Rlcilcbn1cblxuZnVuY3Rpb24gdHJpbUxlYWRpbmdOZXdsaW5lcyAoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXlxcbiovLCAnJylcbn1cblxuZnVuY3Rpb24gdHJpbVRyYWlsaW5nTmV3bGluZXMgKHN0cmluZykge1xuICAvLyBhdm9pZCBtYXRjaC1hdC1lbmQgcmVnZXhwIGJvdHRsZW5lY2ssIHNlZSAjMzcwXG4gIHZhciBpbmRleEVuZCA9IHN0cmluZy5sZW5ndGg7XG4gIHdoaWxlIChpbmRleEVuZCA+IDAgJiYgc3RyaW5nW2luZGV4RW5kIC0gMV0gPT09ICdcXG4nKSBpbmRleEVuZC0tO1xuICByZXR1cm4gc3RyaW5nLnN1YnN0cmluZygwLCBpbmRleEVuZClcbn1cblxuZnVuY3Rpb24gdHJpbU5ld2xpbmVzIChzdHJpbmcpIHtcbiAgcmV0dXJuIHRyaW1UcmFpbGluZ05ld2xpbmVzKHRyaW1MZWFkaW5nTmV3bGluZXMoc3RyaW5nKSlcbn1cblxudmFyIGJsb2NrRWxlbWVudHMgPSBbXG4gICdBRERSRVNTJywgJ0FSVElDTEUnLCAnQVNJREUnLCAnQVVESU8nLCAnQkxPQ0tRVU9URScsICdCT0RZJywgJ0NBTlZBUycsXG4gICdDRU5URVInLCAnREQnLCAnRElSJywgJ0RJVicsICdETCcsICdEVCcsICdGSUVMRFNFVCcsICdGSUdDQVBUSU9OJywgJ0ZJR1VSRScsXG4gICdGT09URVInLCAnRk9STScsICdGUkFNRVNFVCcsICdIMScsICdIMicsICdIMycsICdINCcsICdINScsICdINicsICdIRUFERVInLFxuICAnSEdST1VQJywgJ0hSJywgJ0hUTUwnLCAnSVNJTkRFWCcsICdMSScsICdNQUlOJywgJ01FTlUnLCAnTkFWJywgJ05PRlJBTUVTJyxcbiAgJ05PU0NSSVBUJywgJ09MJywgJ09VVFBVVCcsICdQJywgJ1BSRScsICdTRUNUSU9OJywgJ1RBQkxFJywgJ1RCT0RZJywgJ1REJyxcbiAgJ1RGT09UJywgJ1RIJywgJ1RIRUFEJywgJ1RSJywgJ1VMJ1xuXTtcblxuZnVuY3Rpb24gaXNCbG9jayAobm9kZSkge1xuICByZXR1cm4gaXMobm9kZSwgYmxvY2tFbGVtZW50cylcbn1cblxudmFyIHZvaWRFbGVtZW50cyA9IFtcbiAgJ0FSRUEnLCAnQkFTRScsICdCUicsICdDT0wnLCAnQ09NTUFORCcsICdFTUJFRCcsICdIUicsICdJTUcnLCAnSU5QVVQnLFxuICAnS0VZR0VOJywgJ0xJTksnLCAnTUVUQScsICdQQVJBTScsICdTT1VSQ0UnLCAnVFJBQ0snLCAnV0JSJ1xuXTtcblxuZnVuY3Rpb24gaXNWb2lkIChub2RlKSB7XG4gIHJldHVybiBpcyhub2RlLCB2b2lkRWxlbWVudHMpXG59XG5cbmZ1bmN0aW9uIGhhc1ZvaWQgKG5vZGUpIHtcbiAgcmV0dXJuIGhhcyhub2RlLCB2b2lkRWxlbWVudHMpXG59XG5cbnZhciBtZWFuaW5nZnVsV2hlbkJsYW5rRWxlbWVudHMgPSBbXG4gICdBJywgJ1RBQkxFJywgJ1RIRUFEJywgJ1RCT0RZJywgJ1RGT09UJywgJ1RIJywgJ1REJywgJ0lGUkFNRScsICdTQ1JJUFQnLFxuICAnQVVESU8nLCAnVklERU8nXG5dO1xuXG5mdW5jdGlvbiBpc01lYW5pbmdmdWxXaGVuQmxhbmsgKG5vZGUpIHtcbiAgcmV0dXJuIGlzKG5vZGUsIG1lYW5pbmdmdWxXaGVuQmxhbmtFbGVtZW50cylcbn1cblxuZnVuY3Rpb24gaGFzTWVhbmluZ2Z1bFdoZW5CbGFuayAobm9kZSkge1xuICByZXR1cm4gaGFzKG5vZGUsIG1lYW5pbmdmdWxXaGVuQmxhbmtFbGVtZW50cylcbn1cblxuZnVuY3Rpb24gaXMgKG5vZGUsIHRhZ05hbWVzKSB7XG4gIHJldHVybiB0YWdOYW1lcy5pbmRleE9mKG5vZGUubm9kZU5hbWUpID49IDBcbn1cblxuZnVuY3Rpb24gaGFzIChub2RlLCB0YWdOYW1lcykge1xuICByZXR1cm4gKFxuICAgIG5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUgJiZcbiAgICB0YWdOYW1lcy5zb21lKGZ1bmN0aW9uICh0YWdOYW1lKSB7XG4gICAgICByZXR1cm4gbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWdOYW1lKS5sZW5ndGhcbiAgICB9KVxuICApXG59XG5cbnZhciBydWxlcyA9IHt9O1xuXG5ydWxlcy5wYXJhZ3JhcGggPSB7XG4gIGZpbHRlcjogJ3AnLFxuXG4gIHJlcGxhY2VtZW50OiBmdW5jdGlvbiAoY29udGVudCkge1xuICAgIHJldHVybiAnXFxuXFxuJyArIGNvbnRlbnQgKyAnXFxuXFxuJ1xuICB9XG59O1xuXG5ydWxlcy5saW5lQnJlYWsgPSB7XG4gIGZpbHRlcjogJ2JyJyxcblxuICByZXBsYWNlbWVudDogZnVuY3Rpb24gKGNvbnRlbnQsIG5vZGUsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5iciArICdcXG4nXG4gIH1cbn07XG5cbnJ1bGVzLmhlYWRpbmcgPSB7XG4gIGZpbHRlcjogWydoMScsICdoMicsICdoMycsICdoNCcsICdoNScsICdoNiddLFxuXG4gIHJlcGxhY2VtZW50OiBmdW5jdGlvbiAoY29udGVudCwgbm9kZSwgb3B0aW9ucykge1xuICAgIHZhciBoTGV2ZWwgPSBOdW1iZXIobm9kZS5ub2RlTmFtZS5jaGFyQXQoMSkpO1xuXG4gICAgaWYgKG9wdGlvbnMuaGVhZGluZ1N0eWxlID09PSAnc2V0ZXh0JyAmJiBoTGV2ZWwgPCAzKSB7XG4gICAgICB2YXIgdW5kZXJsaW5lID0gcmVwZWF0KChoTGV2ZWwgPT09IDEgPyAnPScgOiAnLScpLCBjb250ZW50Lmxlbmd0aCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAnXFxuXFxuJyArIGNvbnRlbnQgKyAnXFxuJyArIHVuZGVybGluZSArICdcXG5cXG4nXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnXFxuXFxuJyArIHJlcGVhdCgnIycsIGhMZXZlbCkgKyAnICcgKyBjb250ZW50ICsgJ1xcblxcbidcbiAgICB9XG4gIH1cbn07XG5cbnJ1bGVzLmJsb2NrcXVvdGUgPSB7XG4gIGZpbHRlcjogJ2Jsb2NrcXVvdGUnLFxuXG4gIHJlcGxhY2VtZW50OiBmdW5jdGlvbiAoY29udGVudCkge1xuICAgIGNvbnRlbnQgPSB0cmltTmV3bGluZXMoY29udGVudCkucmVwbGFjZSgvXi9nbSwgJz4gJyk7XG4gICAgcmV0dXJuICdcXG5cXG4nICsgY29udGVudCArICdcXG5cXG4nXG4gIH1cbn07XG5cbnJ1bGVzLmxpc3QgPSB7XG4gIGZpbHRlcjogWyd1bCcsICdvbCddLFxuXG4gIHJlcGxhY2VtZW50OiBmdW5jdGlvbiAoY29udGVudCwgbm9kZSkge1xuICAgIHZhciBwYXJlbnQgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgaWYgKHBhcmVudC5ub2RlTmFtZSA9PT0gJ0xJJyAmJiBwYXJlbnQubGFzdEVsZW1lbnRDaGlsZCA9PT0gbm9kZSkge1xuICAgICAgcmV0dXJuICdcXG4nICsgY29udGVudFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ1xcblxcbicgKyBjb250ZW50ICsgJ1xcblxcbidcbiAgICB9XG4gIH1cbn07XG5cbnJ1bGVzLmxpc3RJdGVtID0ge1xuICBmaWx0ZXI6ICdsaScsXG5cbiAgcmVwbGFjZW1lbnQ6IGZ1bmN0aW9uIChjb250ZW50LCBub2RlLCBvcHRpb25zKSB7XG4gICAgdmFyIHByZWZpeCA9IG9wdGlvbnMuYnVsbGV0TGlzdE1hcmtlciArICcgICAnO1xuICAgIHZhciBwYXJlbnQgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgaWYgKHBhcmVudC5ub2RlTmFtZSA9PT0gJ09MJykge1xuICAgICAgdmFyIHN0YXJ0ID0gcGFyZW50LmdldEF0dHJpYnV0ZSgnc3RhcnQnKTtcbiAgICAgIHZhciBpbmRleCA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwocGFyZW50LmNoaWxkcmVuLCBub2RlKTtcbiAgICAgIHByZWZpeCA9IChzdGFydCA/IE51bWJlcihzdGFydCkgKyBpbmRleCA6IGluZGV4ICsgMSkgKyAnLiAgJztcbiAgICB9XG4gICAgdmFyIGlzUGFyYWdyYXBoID0gL1xcbiQvLnRlc3QoY29udGVudCk7XG4gICAgY29udGVudCA9IHRyaW1OZXdsaW5lcyhjb250ZW50KSArIChpc1BhcmFncmFwaCA/ICdcXG4nIDogJycpO1xuICAgIGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoL1xcbi9nbSwgJ1xcbicgKyAnICcucmVwZWF0KHByZWZpeC5sZW5ndGgpKTsgLy8gaW5kZW50XG4gICAgcmV0dXJuIChcbiAgICAgIHByZWZpeCArIGNvbnRlbnQgKyAobm9kZS5uZXh0U2libGluZyA/ICdcXG4nIDogJycpXG4gICAgKVxuICB9XG59O1xuXG5ydWxlcy5pbmRlbnRlZENvZGVCbG9jayA9IHtcbiAgZmlsdGVyOiBmdW5jdGlvbiAobm9kZSwgb3B0aW9ucykge1xuICAgIHJldHVybiAoXG4gICAgICBvcHRpb25zLmNvZGVCbG9ja1N0eWxlID09PSAnaW5kZW50ZWQnICYmXG4gICAgICBub2RlLm5vZGVOYW1lID09PSAnUFJFJyAmJlxuICAgICAgbm9kZS5maXJzdENoaWxkICYmXG4gICAgICBub2RlLmZpcnN0Q2hpbGQubm9kZU5hbWUgPT09ICdDT0RFJ1xuICAgIClcbiAgfSxcblxuICByZXBsYWNlbWVudDogZnVuY3Rpb24gKGNvbnRlbnQsIG5vZGUsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgJ1xcblxcbiAgICAnICtcbiAgICAgIG5vZGUuZmlyc3RDaGlsZC50ZXh0Q29udGVudC5yZXBsYWNlKC9cXG4vZywgJ1xcbiAgICAnKSArXG4gICAgICAnXFxuXFxuJ1xuICAgIClcbiAgfVxufTtcblxucnVsZXMuZmVuY2VkQ29kZUJsb2NrID0ge1xuICBmaWx0ZXI6IGZ1bmN0aW9uIChub2RlLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIG9wdGlvbnMuY29kZUJsb2NrU3R5bGUgPT09ICdmZW5jZWQnICYmXG4gICAgICBub2RlLm5vZGVOYW1lID09PSAnUFJFJyAmJlxuICAgICAgbm9kZS5maXJzdENoaWxkICYmXG4gICAgICBub2RlLmZpcnN0Q2hpbGQubm9kZU5hbWUgPT09ICdDT0RFJ1xuICAgIClcbiAgfSxcblxuICByZXBsYWNlbWVudDogZnVuY3Rpb24gKGNvbnRlbnQsIG5vZGUsIG9wdGlvbnMpIHtcbiAgICB2YXIgY2xhc3NOYW1lID0gbm9kZS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgnY2xhc3MnKSB8fCAnJztcbiAgICB2YXIgbGFuZ3VhZ2UgPSAoY2xhc3NOYW1lLm1hdGNoKC9sYW5ndWFnZS0oXFxTKykvKSB8fCBbbnVsbCwgJyddKVsxXTtcbiAgICB2YXIgY29kZSA9IG5vZGUuZmlyc3RDaGlsZC50ZXh0Q29udGVudDtcblxuICAgIHZhciBmZW5jZUNoYXIgPSBvcHRpb25zLmZlbmNlLmNoYXJBdCgwKTtcbiAgICB2YXIgZmVuY2VTaXplID0gMztcbiAgICB2YXIgZmVuY2VJbkNvZGVSZWdleCA9IG5ldyBSZWdFeHAoJ14nICsgZmVuY2VDaGFyICsgJ3szLH0nLCAnZ20nKTtcblxuICAgIHZhciBtYXRjaDtcbiAgICB3aGlsZSAoKG1hdGNoID0gZmVuY2VJbkNvZGVSZWdleC5leGVjKGNvZGUpKSkge1xuICAgICAgaWYgKG1hdGNoWzBdLmxlbmd0aCA+PSBmZW5jZVNpemUpIHtcbiAgICAgICAgZmVuY2VTaXplID0gbWF0Y2hbMF0ubGVuZ3RoICsgMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZmVuY2UgPSByZXBlYXQoZmVuY2VDaGFyLCBmZW5jZVNpemUpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICdcXG5cXG4nICsgZmVuY2UgKyBsYW5ndWFnZSArICdcXG4nICtcbiAgICAgIGNvZGUucmVwbGFjZSgvXFxuJC8sICcnKSArXG4gICAgICAnXFxuJyArIGZlbmNlICsgJ1xcblxcbidcbiAgICApXG4gIH1cbn07XG5cbnJ1bGVzLmhvcml6b250YWxSdWxlID0ge1xuICBmaWx0ZXI6ICdocicsXG5cbiAgcmVwbGFjZW1lbnQ6IGZ1bmN0aW9uIChjb250ZW50LCBub2RlLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuICdcXG5cXG4nICsgb3B0aW9ucy5ociArICdcXG5cXG4nXG4gIH1cbn07XG5cbnJ1bGVzLmlubGluZUxpbmsgPSB7XG4gIGZpbHRlcjogZnVuY3Rpb24gKG5vZGUsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgb3B0aW9ucy5saW5rU3R5bGUgPT09ICdpbmxpbmVkJyAmJlxuICAgICAgbm9kZS5ub2RlTmFtZSA9PT0gJ0EnICYmXG4gICAgICBub2RlLmdldEF0dHJpYnV0ZSgnaHJlZicpXG4gICAgKVxuICB9LFxuXG4gIHJlcGxhY2VtZW50OiBmdW5jdGlvbiAoY29udGVudCwgbm9kZSkge1xuICAgIHZhciBocmVmID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBpZiAoaHJlZikgaHJlZiA9IGhyZWYucmVwbGFjZSgvKFsoKV0pL2csICdcXFxcJDEnKTtcbiAgICB2YXIgdGl0bGUgPSBjbGVhbkF0dHJpYnV0ZShub2RlLmdldEF0dHJpYnV0ZSgndGl0bGUnKSk7XG4gICAgaWYgKHRpdGxlKSB0aXRsZSA9ICcgXCInICsgdGl0bGUucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpICsgJ1wiJztcbiAgICByZXR1cm4gJ1snICsgY29udGVudCArICddKCcgKyBocmVmICsgdGl0bGUgKyAnKSdcbiAgfVxufTtcblxucnVsZXMucmVmZXJlbmNlTGluayA9IHtcbiAgZmlsdGVyOiBmdW5jdGlvbiAobm9kZSwgb3B0aW9ucykge1xuICAgIHJldHVybiAoXG4gICAgICBvcHRpb25zLmxpbmtTdHlsZSA9PT0gJ3JlZmVyZW5jZWQnICYmXG4gICAgICBub2RlLm5vZGVOYW1lID09PSAnQScgJiZcbiAgICAgIG5vZGUuZ2V0QXR0cmlidXRlKCdocmVmJylcbiAgICApXG4gIH0sXG5cbiAgcmVwbGFjZW1lbnQ6IGZ1bmN0aW9uIChjb250ZW50LCBub2RlLCBvcHRpb25zKSB7XG4gICAgdmFyIGhyZWYgPSBub2RlLmdldEF0dHJpYnV0ZSgnaHJlZicpO1xuICAgIHZhciB0aXRsZSA9IGNsZWFuQXR0cmlidXRlKG5vZGUuZ2V0QXR0cmlidXRlKCd0aXRsZScpKTtcbiAgICBpZiAodGl0bGUpIHRpdGxlID0gJyBcIicgKyB0aXRsZSArICdcIic7XG4gICAgdmFyIHJlcGxhY2VtZW50O1xuICAgIHZhciByZWZlcmVuY2U7XG5cbiAgICBzd2l0Y2ggKG9wdGlvbnMubGlua1JlZmVyZW5jZVN0eWxlKSB7XG4gICAgICBjYXNlICdjb2xsYXBzZWQnOlxuICAgICAgICByZXBsYWNlbWVudCA9ICdbJyArIGNvbnRlbnQgKyAnXVtdJztcbiAgICAgICAgcmVmZXJlbmNlID0gJ1snICsgY29udGVudCArICddOiAnICsgaHJlZiArIHRpdGxlO1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnc2hvcnRjdXQnOlxuICAgICAgICByZXBsYWNlbWVudCA9ICdbJyArIGNvbnRlbnQgKyAnXSc7XG4gICAgICAgIHJlZmVyZW5jZSA9ICdbJyArIGNvbnRlbnQgKyAnXTogJyArIGhyZWYgKyB0aXRsZTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHZhciBpZCA9IHRoaXMucmVmZXJlbmNlcy5sZW5ndGggKyAxO1xuICAgICAgICByZXBsYWNlbWVudCA9ICdbJyArIGNvbnRlbnQgKyAnXVsnICsgaWQgKyAnXSc7XG4gICAgICAgIHJlZmVyZW5jZSA9ICdbJyArIGlkICsgJ106ICcgKyBocmVmICsgdGl0bGU7XG4gICAgfVxuXG4gICAgdGhpcy5yZWZlcmVuY2VzLnB1c2gocmVmZXJlbmNlKTtcbiAgICByZXR1cm4gcmVwbGFjZW1lbnRcbiAgfSxcblxuICByZWZlcmVuY2VzOiBbXSxcblxuICBhcHBlbmQ6IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgdmFyIHJlZmVyZW5jZXMgPSAnJztcbiAgICBpZiAodGhpcy5yZWZlcmVuY2VzLmxlbmd0aCkge1xuICAgICAgcmVmZXJlbmNlcyA9ICdcXG5cXG4nICsgdGhpcy5yZWZlcmVuY2VzLmpvaW4oJ1xcbicpICsgJ1xcblxcbic7XG4gICAgICB0aGlzLnJlZmVyZW5jZXMgPSBbXTsgLy8gUmVzZXQgcmVmZXJlbmNlc1xuICAgIH1cbiAgICByZXR1cm4gcmVmZXJlbmNlc1xuICB9XG59O1xuXG5ydWxlcy5lbXBoYXNpcyA9IHtcbiAgZmlsdGVyOiBbJ2VtJywgJ2knXSxcblxuICByZXBsYWNlbWVudDogZnVuY3Rpb24gKGNvbnRlbnQsIG5vZGUsIG9wdGlvbnMpIHtcbiAgICBpZiAoIWNvbnRlbnQudHJpbSgpKSByZXR1cm4gJydcbiAgICByZXR1cm4gb3B0aW9ucy5lbURlbGltaXRlciArIGNvbnRlbnQgKyBvcHRpb25zLmVtRGVsaW1pdGVyXG4gIH1cbn07XG5cbnJ1bGVzLnN0cm9uZyA9IHtcbiAgZmlsdGVyOiBbJ3N0cm9uZycsICdiJ10sXG5cbiAgcmVwbGFjZW1lbnQ6IGZ1bmN0aW9uIChjb250ZW50LCBub2RlLCBvcHRpb25zKSB7XG4gICAgaWYgKCFjb250ZW50LnRyaW0oKSkgcmV0dXJuICcnXG4gICAgcmV0dXJuIG9wdGlvbnMuc3Ryb25nRGVsaW1pdGVyICsgY29udGVudCArIG9wdGlvbnMuc3Ryb25nRGVsaW1pdGVyXG4gIH1cbn07XG5cbnJ1bGVzLmNvZGUgPSB7XG4gIGZpbHRlcjogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICB2YXIgaGFzU2libGluZ3MgPSBub2RlLnByZXZpb3VzU2libGluZyB8fCBub2RlLm5leHRTaWJsaW5nO1xuICAgIHZhciBpc0NvZGVCbG9jayA9IG5vZGUucGFyZW50Tm9kZS5ub2RlTmFtZSA9PT0gJ1BSRScgJiYgIWhhc1NpYmxpbmdzO1xuXG4gICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICdDT0RFJyAmJiAhaXNDb2RlQmxvY2tcbiAgfSxcblxuICByZXBsYWNlbWVudDogZnVuY3Rpb24gKGNvbnRlbnQpIHtcbiAgICBpZiAoIWNvbnRlbnQpIHJldHVybiAnJ1xuICAgIGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoL1xccj9cXG58XFxyL2csICcgJyk7XG5cbiAgICB2YXIgZXh0cmFTcGFjZSA9IC9eYHxeIC4qP1teIF0uKiAkfGAkLy50ZXN0KGNvbnRlbnQpID8gJyAnIDogJyc7XG4gICAgdmFyIGRlbGltaXRlciA9ICdgJztcbiAgICB2YXIgbWF0Y2hlcyA9IGNvbnRlbnQubWF0Y2goL2ArL2dtKSB8fCBbXTtcbiAgICB3aGlsZSAobWF0Y2hlcy5pbmRleE9mKGRlbGltaXRlcikgIT09IC0xKSBkZWxpbWl0ZXIgPSBkZWxpbWl0ZXIgKyAnYCc7XG5cbiAgICByZXR1cm4gZGVsaW1pdGVyICsgZXh0cmFTcGFjZSArIGNvbnRlbnQgKyBleHRyYVNwYWNlICsgZGVsaW1pdGVyXG4gIH1cbn07XG5cbnJ1bGVzLmltYWdlID0ge1xuICBmaWx0ZXI6ICdpbWcnLFxuXG4gIHJlcGxhY2VtZW50OiBmdW5jdGlvbiAoY29udGVudCwgbm9kZSkge1xuICAgIHZhciBhbHQgPSBjbGVhbkF0dHJpYnV0ZShub2RlLmdldEF0dHJpYnV0ZSgnYWx0JykpO1xuICAgIHZhciBzcmMgPSBub2RlLmdldEF0dHJpYnV0ZSgnc3JjJykgfHwgJyc7XG4gICAgdmFyIHRpdGxlID0gY2xlYW5BdHRyaWJ1dGUobm9kZS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykpO1xuICAgIHZhciB0aXRsZVBhcnQgPSB0aXRsZSA/ICcgXCInICsgdGl0bGUgKyAnXCInIDogJyc7XG4gICAgcmV0dXJuIHNyYyA/ICchWycgKyBhbHQgKyAnXScgKyAnKCcgKyBzcmMgKyB0aXRsZVBhcnQgKyAnKScgOiAnJ1xuICB9XG59O1xuXG5mdW5jdGlvbiBjbGVhbkF0dHJpYnV0ZSAoYXR0cmlidXRlKSB7XG4gIHJldHVybiBhdHRyaWJ1dGUgPyBhdHRyaWJ1dGUucmVwbGFjZSgvKFxcbitcXHMqKSsvZywgJ1xcbicpIDogJydcbn1cblxuLyoqXG4gKiBNYW5hZ2VzIGEgY29sbGVjdGlvbiBvZiBydWxlcyB1c2VkIHRvIGNvbnZlcnQgSFRNTCB0byBNYXJrZG93blxuICovXG5cbmZ1bmN0aW9uIFJ1bGVzIChvcHRpb25zKSB7XG4gIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIHRoaXMuX2tlZXAgPSBbXTtcbiAgdGhpcy5fcmVtb3ZlID0gW107XG5cbiAgdGhpcy5ibGFua1J1bGUgPSB7XG4gICAgcmVwbGFjZW1lbnQ6IG9wdGlvbnMuYmxhbmtSZXBsYWNlbWVudFxuICB9O1xuXG4gIHRoaXMua2VlcFJlcGxhY2VtZW50ID0gb3B0aW9ucy5rZWVwUmVwbGFjZW1lbnQ7XG5cbiAgdGhpcy5kZWZhdWx0UnVsZSA9IHtcbiAgICByZXBsYWNlbWVudDogb3B0aW9ucy5kZWZhdWx0UmVwbGFjZW1lbnRcbiAgfTtcblxuICB0aGlzLmFycmF5ID0gW107XG4gIGZvciAodmFyIGtleSBpbiBvcHRpb25zLnJ1bGVzKSB0aGlzLmFycmF5LnB1c2gob3B0aW9ucy5ydWxlc1trZXldKTtcbn1cblxuUnVsZXMucHJvdG90eXBlID0ge1xuICBhZGQ6IGZ1bmN0aW9uIChrZXksIHJ1bGUpIHtcbiAgICB0aGlzLmFycmF5LnVuc2hpZnQocnVsZSk7XG4gIH0sXG5cbiAga2VlcDogZnVuY3Rpb24gKGZpbHRlcikge1xuICAgIHRoaXMuX2tlZXAudW5zaGlmdCh7XG4gICAgICBmaWx0ZXI6IGZpbHRlcixcbiAgICAgIHJlcGxhY2VtZW50OiB0aGlzLmtlZXBSZXBsYWNlbWVudFxuICAgIH0pO1xuICB9LFxuXG4gIHJlbW92ZTogZnVuY3Rpb24gKGZpbHRlcikge1xuICAgIHRoaXMuX3JlbW92ZS51bnNoaWZ0KHtcbiAgICAgIGZpbHRlcjogZmlsdGVyLFxuICAgICAgcmVwbGFjZW1lbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcnXG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG5cbiAgZm9yTm9kZTogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBpZiAobm9kZS5pc0JsYW5rKSByZXR1cm4gdGhpcy5ibGFua1J1bGVcbiAgICB2YXIgcnVsZTtcblxuICAgIGlmICgocnVsZSA9IGZpbmRSdWxlKHRoaXMuYXJyYXksIG5vZGUsIHRoaXMub3B0aW9ucykpKSByZXR1cm4gcnVsZVxuICAgIGlmICgocnVsZSA9IGZpbmRSdWxlKHRoaXMuX2tlZXAsIG5vZGUsIHRoaXMub3B0aW9ucykpKSByZXR1cm4gcnVsZVxuICAgIGlmICgocnVsZSA9IGZpbmRSdWxlKHRoaXMuX3JlbW92ZSwgbm9kZSwgdGhpcy5vcHRpb25zKSkpIHJldHVybiBydWxlXG5cbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0UnVsZVxuICB9LFxuXG4gIGZvckVhY2g6IGZ1bmN0aW9uIChmbikge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5hcnJheS5sZW5ndGg7IGkrKykgZm4odGhpcy5hcnJheVtpXSwgaSk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGZpbmRSdWxlIChydWxlcywgbm9kZSwgb3B0aW9ucykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHJ1bGUgPSBydWxlc1tpXTtcbiAgICBpZiAoZmlsdGVyVmFsdWUocnVsZSwgbm9kZSwgb3B0aW9ucykpIHJldHVybiBydWxlXG4gIH1cbiAgcmV0dXJuIHZvaWQgMFxufVxuXG5mdW5jdGlvbiBmaWx0ZXJWYWx1ZSAocnVsZSwgbm9kZSwgb3B0aW9ucykge1xuICB2YXIgZmlsdGVyID0gcnVsZS5maWx0ZXI7XG4gIGlmICh0eXBlb2YgZmlsdGVyID09PSAnc3RyaW5nJykge1xuICAgIGlmIChmaWx0ZXIgPT09IG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkgcmV0dXJuIHRydWVcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGZpbHRlcikpIHtcbiAgICBpZiAoZmlsdGVyLmluZGV4T2Yobm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSA+IC0xKSByZXR1cm4gdHJ1ZVxuICB9IGVsc2UgaWYgKHR5cGVvZiBmaWx0ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoZmlsdGVyLmNhbGwocnVsZSwgbm9kZSwgb3B0aW9ucykpIHJldHVybiB0cnVlXG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignYGZpbHRlcmAgbmVlZHMgdG8gYmUgYSBzdHJpbmcsIGFycmF5LCBvciBmdW5jdGlvbicpXG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgY29sbGFwc2VXaGl0ZXNwYWNlIGZ1bmN0aW9uIGlzIGFkYXB0ZWQgZnJvbSBjb2xsYXBzZS13aGl0ZXNwYWNlXG4gKiBieSBMdWMgVGhldmVuYXJkLlxuICpcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNCBMdWMgVGhldmVuYXJkIDxsdWN0aGV2ZW5hcmRAZ21haWwuY29tPlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuLyoqXG4gKiBjb2xsYXBzZVdoaXRlc3BhY2Uob3B0aW9ucykgcmVtb3ZlcyBleHRyYW5lb3VzIHdoaXRlc3BhY2UgZnJvbSBhbiB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICovXG5mdW5jdGlvbiBjb2xsYXBzZVdoaXRlc3BhY2UgKG9wdGlvbnMpIHtcbiAgdmFyIGVsZW1lbnQgPSBvcHRpb25zLmVsZW1lbnQ7XG4gIHZhciBpc0Jsb2NrID0gb3B0aW9ucy5pc0Jsb2NrO1xuICB2YXIgaXNWb2lkID0gb3B0aW9ucy5pc1ZvaWQ7XG4gIHZhciBpc1ByZSA9IG9wdGlvbnMuaXNQcmUgfHwgZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJ1BSRSdcbiAgfTtcblxuICBpZiAoIWVsZW1lbnQuZmlyc3RDaGlsZCB8fCBpc1ByZShlbGVtZW50KSkgcmV0dXJuXG5cbiAgdmFyIHByZXZUZXh0ID0gbnVsbDtcbiAgdmFyIGtlZXBMZWFkaW5nV3MgPSBmYWxzZTtcblxuICB2YXIgcHJldiA9IG51bGw7XG4gIHZhciBub2RlID0gbmV4dChwcmV2LCBlbGVtZW50LCBpc1ByZSk7XG5cbiAgd2hpbGUgKG5vZGUgIT09IGVsZW1lbnQpIHtcbiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gMyB8fCBub2RlLm5vZGVUeXBlID09PSA0KSB7IC8vIE5vZGUuVEVYVF9OT0RFIG9yIE5vZGUuQ0RBVEFfU0VDVElPTl9OT0RFXG4gICAgICB2YXIgdGV4dCA9IG5vZGUuZGF0YS5yZXBsYWNlKC9bIFxcclxcblxcdF0rL2csICcgJyk7XG5cbiAgICAgIGlmICgoIXByZXZUZXh0IHx8IC8gJC8udGVzdChwcmV2VGV4dC5kYXRhKSkgJiZcbiAgICAgICAgICAha2VlcExlYWRpbmdXcyAmJiB0ZXh0WzBdID09PSAnICcpIHtcbiAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyKDEpO1xuICAgICAgfVxuXG4gICAgICAvLyBgdGV4dGAgbWlnaHQgYmUgZW1wdHkgYXQgdGhpcyBwb2ludC5cbiAgICAgIGlmICghdGV4dCkge1xuICAgICAgICBub2RlID0gcmVtb3ZlKG5vZGUpO1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBub2RlLmRhdGEgPSB0ZXh0O1xuXG4gICAgICBwcmV2VGV4dCA9IG5vZGU7XG4gICAgfSBlbHNlIGlmIChub2RlLm5vZGVUeXBlID09PSAxKSB7IC8vIE5vZGUuRUxFTUVOVF9OT0RFXG4gICAgICBpZiAoaXNCbG9jayhub2RlKSB8fCBub2RlLm5vZGVOYW1lID09PSAnQlInKSB7XG4gICAgICAgIGlmIChwcmV2VGV4dCkge1xuICAgICAgICAgIHByZXZUZXh0LmRhdGEgPSBwcmV2VGV4dC5kYXRhLnJlcGxhY2UoLyAkLywgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldlRleHQgPSBudWxsO1xuICAgICAgICBrZWVwTGVhZGluZ1dzID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKGlzVm9pZChub2RlKSB8fCBpc1ByZShub2RlKSkge1xuICAgICAgICAvLyBBdm9pZCB0cmltbWluZyBzcGFjZSBhcm91bmQgbm9uLWJsb2NrLCBub24tQlIgdm9pZCBlbGVtZW50cyBhbmQgaW5saW5lIFBSRS5cbiAgICAgICAgcHJldlRleHQgPSBudWxsO1xuICAgICAgICBrZWVwTGVhZGluZ1dzID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAocHJldlRleHQpIHtcbiAgICAgICAgLy8gRHJvcCBwcm90ZWN0aW9uIGlmIHNldCBwcmV2aW91c2x5LlxuICAgICAgICBrZWVwTGVhZGluZ1dzID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUgPSByZW1vdmUobm9kZSk7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIHZhciBuZXh0Tm9kZSA9IG5leHQocHJldiwgbm9kZSwgaXNQcmUpO1xuICAgIHByZXYgPSBub2RlO1xuICAgIG5vZGUgPSBuZXh0Tm9kZTtcbiAgfVxuXG4gIGlmIChwcmV2VGV4dCkge1xuICAgIHByZXZUZXh0LmRhdGEgPSBwcmV2VGV4dC5kYXRhLnJlcGxhY2UoLyAkLywgJycpO1xuICAgIGlmICghcHJldlRleHQuZGF0YSkge1xuICAgICAgcmVtb3ZlKHByZXZUZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiByZW1vdmUobm9kZSkgcmVtb3ZlcyB0aGUgZ2l2ZW4gbm9kZSBmcm9tIHRoZSBET00gYW5kIHJldHVybnMgdGhlXG4gKiBuZXh0IG5vZGUgaW4gdGhlIHNlcXVlbmNlLlxuICpcbiAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICogQHJldHVybiB7Tm9kZX0gbm9kZVxuICovXG5mdW5jdGlvbiByZW1vdmUgKG5vZGUpIHtcbiAgdmFyIG5leHQgPSBub2RlLm5leHRTaWJsaW5nIHx8IG5vZGUucGFyZW50Tm9kZTtcblxuICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7XG5cbiAgcmV0dXJuIG5leHRcbn1cblxuLyoqXG4gKiBuZXh0KHByZXYsIGN1cnJlbnQsIGlzUHJlKSByZXR1cm5zIHRoZSBuZXh0IG5vZGUgaW4gdGhlIHNlcXVlbmNlLCBnaXZlbiB0aGVcbiAqIGN1cnJlbnQgYW5kIHByZXZpb3VzIG5vZGVzLlxuICpcbiAqIEBwYXJhbSB7Tm9kZX0gcHJldlxuICogQHBhcmFtIHtOb2RlfSBjdXJyZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpc1ByZVxuICogQHJldHVybiB7Tm9kZX1cbiAqL1xuZnVuY3Rpb24gbmV4dCAocHJldiwgY3VycmVudCwgaXNQcmUpIHtcbiAgaWYgKChwcmV2ICYmIHByZXYucGFyZW50Tm9kZSA9PT0gY3VycmVudCkgfHwgaXNQcmUoY3VycmVudCkpIHtcbiAgICByZXR1cm4gY3VycmVudC5uZXh0U2libGluZyB8fCBjdXJyZW50LnBhcmVudE5vZGVcbiAgfVxuXG4gIHJldHVybiBjdXJyZW50LmZpcnN0Q2hpbGQgfHwgY3VycmVudC5uZXh0U2libGluZyB8fCBjdXJyZW50LnBhcmVudE5vZGVcbn1cblxuLypcbiAqIFNldCB1cCB3aW5kb3cgZm9yIE5vZGUuanNcbiAqL1xuXG52YXIgcm9vdCA9ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHt9KTtcblxuLypcbiAqIFBhcnNpbmcgSFRNTCBzdHJpbmdzXG4gKi9cblxuZnVuY3Rpb24gY2FuUGFyc2VIVE1MTmF0aXZlbHkgKCkge1xuICB2YXIgUGFyc2VyID0gcm9vdC5ET01QYXJzZXI7XG4gIHZhciBjYW5QYXJzZSA9IGZhbHNlO1xuXG4gIC8vIEFkYXB0ZWQgZnJvbSBodHRwczovL2dpc3QuZ2l0aHViLmNvbS8xMTI5MDMxXG4gIC8vIEZpcmVmb3gvT3BlcmEvSUUgdGhyb3cgZXJyb3JzIG9uIHVuc3VwcG9ydGVkIHR5cGVzXG4gIHRyeSB7XG4gICAgLy8gV2ViS2l0IHJldHVybnMgbnVsbCBvbiB1bnN1cHBvcnRlZCB0eXBlc1xuICAgIGlmIChuZXcgUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKCcnLCAndGV4dC9odG1sJykpIHtcbiAgICAgIGNhblBhcnNlID0gdHJ1ZTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHt9XG5cbiAgcmV0dXJuIGNhblBhcnNlXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUhUTUxQYXJzZXIgKCkge1xuICB2YXIgUGFyc2VyID0gZnVuY3Rpb24gKCkge307XG5cbiAge1xuICAgIGlmIChzaG91bGRVc2VBY3RpdmVYKCkpIHtcbiAgICAgIFBhcnNlci5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nID0gZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICB2YXIgZG9jID0gbmV3IHdpbmRvdy5BY3RpdmVYT2JqZWN0KCdodG1sZmlsZScpO1xuICAgICAgICBkb2MuZGVzaWduTW9kZSA9ICdvbic7IC8vIGRpc2FibGUgb24tcGFnZSBzY3JpcHRzXG4gICAgICAgIGRvYy5vcGVuKCk7XG4gICAgICAgIGRvYy53cml0ZShzdHJpbmcpO1xuICAgICAgICBkb2MuY2xvc2UoKTtcbiAgICAgICAgcmV0dXJuIGRvY1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgUGFyc2VyLnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmcgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoJycpO1xuICAgICAgICBkb2Mub3BlbigpO1xuICAgICAgICBkb2Mud3JpdGUoc3RyaW5nKTtcbiAgICAgICAgZG9jLmNsb3NlKCk7XG4gICAgICAgIHJldHVybiBkb2NcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHJldHVybiBQYXJzZXJcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlQWN0aXZlWCAoKSB7XG4gIHZhciB1c2VBY3RpdmVYID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCcnKS5vcGVuKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAocm9vdC5BY3RpdmVYT2JqZWN0KSB1c2VBY3RpdmVYID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gdXNlQWN0aXZlWFxufVxuXG52YXIgSFRNTFBhcnNlciA9IGNhblBhcnNlSFRNTE5hdGl2ZWx5KCkgPyByb290LkRPTVBhcnNlciA6IGNyZWF0ZUhUTUxQYXJzZXIoKTtcblxuZnVuY3Rpb24gUm9vdE5vZGUgKGlucHV0LCBvcHRpb25zKSB7XG4gIHZhciByb290O1xuICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgIHZhciBkb2MgPSBodG1sUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgICAgLy8gRE9NIHBhcnNlcnMgYXJyYW5nZSBlbGVtZW50cyBpbiB0aGUgPGhlYWQ+IGFuZCA8Ym9keT4uXG4gICAgICAvLyBXcmFwcGluZyBpbiBhIGN1c3RvbSBlbGVtZW50IGVuc3VyZXMgZWxlbWVudHMgYXJlIHJlbGlhYmx5IGFycmFuZ2VkIGluXG4gICAgICAvLyBhIHNpbmdsZSBlbGVtZW50LlxuICAgICAgJzx4LXR1cm5kb3duIGlkPVwidHVybmRvd24tcm9vdFwiPicgKyBpbnB1dCArICc8L3gtdHVybmRvd24+JyxcbiAgICAgICd0ZXh0L2h0bWwnXG4gICAgKTtcbiAgICByb290ID0gZG9jLmdldEVsZW1lbnRCeUlkKCd0dXJuZG93bi1yb290Jyk7XG4gIH0gZWxzZSB7XG4gICAgcm9vdCA9IGlucHV0LmNsb25lTm9kZSh0cnVlKTtcbiAgfVxuICBjb2xsYXBzZVdoaXRlc3BhY2Uoe1xuICAgIGVsZW1lbnQ6IHJvb3QsXG4gICAgaXNCbG9jazogaXNCbG9jayxcbiAgICBpc1ZvaWQ6IGlzVm9pZCxcbiAgICBpc1ByZTogb3B0aW9ucy5wcmVmb3JtYXR0ZWRDb2RlID8gaXNQcmVPckNvZGUgOiBudWxsXG4gIH0pO1xuXG4gIHJldHVybiByb290XG59XG5cbnZhciBfaHRtbFBhcnNlcjtcbmZ1bmN0aW9uIGh0bWxQYXJzZXIgKCkge1xuICBfaHRtbFBhcnNlciA9IF9odG1sUGFyc2VyIHx8IG5ldyBIVE1MUGFyc2VyKCk7XG4gIHJldHVybiBfaHRtbFBhcnNlclxufVxuXG5mdW5jdGlvbiBpc1ByZU9yQ29kZSAobm9kZSkge1xuICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJ1BSRScgfHwgbm9kZS5ub2RlTmFtZSA9PT0gJ0NPREUnXG59XG5cbmZ1bmN0aW9uIE5vZGUgKG5vZGUsIG9wdGlvbnMpIHtcbiAgbm9kZS5pc0Jsb2NrID0gaXNCbG9jayhub2RlKTtcbiAgbm9kZS5pc0NvZGUgPSBub2RlLm5vZGVOYW1lID09PSAnQ09ERScgfHwgbm9kZS5wYXJlbnROb2RlLmlzQ29kZTtcbiAgbm9kZS5pc0JsYW5rID0gaXNCbGFuayhub2RlKTtcbiAgbm9kZS5mbGFua2luZ1doaXRlc3BhY2UgPSBmbGFua2luZ1doaXRlc3BhY2Uobm9kZSwgb3B0aW9ucyk7XG4gIHJldHVybiBub2RlXG59XG5cbmZ1bmN0aW9uIGlzQmxhbmsgKG5vZGUpIHtcbiAgcmV0dXJuIChcbiAgICAhaXNWb2lkKG5vZGUpICYmXG4gICAgIWlzTWVhbmluZ2Z1bFdoZW5CbGFuayhub2RlKSAmJlxuICAgIC9eXFxzKiQvaS50ZXN0KG5vZGUudGV4dENvbnRlbnQpICYmXG4gICAgIWhhc1ZvaWQobm9kZSkgJiZcbiAgICAhaGFzTWVhbmluZ2Z1bFdoZW5CbGFuayhub2RlKVxuICApXG59XG5cbmZ1bmN0aW9uIGZsYW5raW5nV2hpdGVzcGFjZSAobm9kZSwgb3B0aW9ucykge1xuICBpZiAobm9kZS5pc0Jsb2NrIHx8IChvcHRpb25zLnByZWZvcm1hdHRlZENvZGUgJiYgbm9kZS5pc0NvZGUpKSB7XG4gICAgcmV0dXJuIHsgbGVhZGluZzogJycsIHRyYWlsaW5nOiAnJyB9XG4gIH1cblxuICB2YXIgZWRnZXMgPSBlZGdlV2hpdGVzcGFjZShub2RlLnRleHRDb250ZW50KTtcblxuICAvLyBhYmFuZG9uIGxlYWRpbmcgQVNDSUkgV1MgaWYgbGVmdC1mbGFua2VkIGJ5IEFTQ0lJIFdTXG4gIGlmIChlZGdlcy5sZWFkaW5nQXNjaWkgJiYgaXNGbGFua2VkQnlXaGl0ZXNwYWNlKCdsZWZ0Jywgbm9kZSwgb3B0aW9ucykpIHtcbiAgICBlZGdlcy5sZWFkaW5nID0gZWRnZXMubGVhZGluZ05vbkFzY2lpO1xuICB9XG5cbiAgLy8gYWJhbmRvbiB0cmFpbGluZyBBU0NJSSBXUyBpZiByaWdodC1mbGFua2VkIGJ5IEFTQ0lJIFdTXG4gIGlmIChlZGdlcy50cmFpbGluZ0FzY2lpICYmIGlzRmxhbmtlZEJ5V2hpdGVzcGFjZSgncmlnaHQnLCBub2RlLCBvcHRpb25zKSkge1xuICAgIGVkZ2VzLnRyYWlsaW5nID0gZWRnZXMudHJhaWxpbmdOb25Bc2NpaTtcbiAgfVxuXG4gIHJldHVybiB7IGxlYWRpbmc6IGVkZ2VzLmxlYWRpbmcsIHRyYWlsaW5nOiBlZGdlcy50cmFpbGluZyB9XG59XG5cbmZ1bmN0aW9uIGVkZ2VXaGl0ZXNwYWNlIChzdHJpbmcpIHtcbiAgdmFyIG0gPSBzdHJpbmcubWF0Y2goL14oKFsgXFx0XFxyXFxuXSopKFxccyopKSg/Oig/PVxcUylbXFxzXFxTXSpcXFMpPygoXFxzKj8pKFsgXFx0XFxyXFxuXSopKSQvKTtcbiAgcmV0dXJuIHtcbiAgICBsZWFkaW5nOiBtWzFdLCAvLyB3aG9sZSBzdHJpbmcgZm9yIHdoaXRlc3BhY2Utb25seSBzdHJpbmdzXG4gICAgbGVhZGluZ0FzY2lpOiBtWzJdLFxuICAgIGxlYWRpbmdOb25Bc2NpaTogbVszXSxcbiAgICB0cmFpbGluZzogbVs0XSwgLy8gZW1wdHkgZm9yIHdoaXRlc3BhY2Utb25seSBzdHJpbmdzXG4gICAgdHJhaWxpbmdOb25Bc2NpaTogbVs1XSxcbiAgICB0cmFpbGluZ0FzY2lpOiBtWzZdXG4gIH1cbn1cblxuZnVuY3Rpb24gaXNGbGFua2VkQnlXaGl0ZXNwYWNlIChzaWRlLCBub2RlLCBvcHRpb25zKSB7XG4gIHZhciBzaWJsaW5nO1xuICB2YXIgcmVnRXhwO1xuICB2YXIgaXNGbGFua2VkO1xuXG4gIGlmIChzaWRlID09PSAnbGVmdCcpIHtcbiAgICBzaWJsaW5nID0gbm9kZS5wcmV2aW91c1NpYmxpbmc7XG4gICAgcmVnRXhwID0gLyAkLztcbiAgfSBlbHNlIHtcbiAgICBzaWJsaW5nID0gbm9kZS5uZXh0U2libGluZztcbiAgICByZWdFeHAgPSAvXiAvO1xuICB9XG5cbiAgaWYgKHNpYmxpbmcpIHtcbiAgICBpZiAoc2libGluZy5ub2RlVHlwZSA9PT0gMykge1xuICAgICAgaXNGbGFua2VkID0gcmVnRXhwLnRlc3Qoc2libGluZy5ub2RlVmFsdWUpO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5wcmVmb3JtYXR0ZWRDb2RlICYmIHNpYmxpbmcubm9kZU5hbWUgPT09ICdDT0RFJykge1xuICAgICAgaXNGbGFua2VkID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChzaWJsaW5nLm5vZGVUeXBlID09PSAxICYmICFpc0Jsb2NrKHNpYmxpbmcpKSB7XG4gICAgICBpc0ZsYW5rZWQgPSByZWdFeHAudGVzdChzaWJsaW5nLnRleHRDb250ZW50KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGlzRmxhbmtlZFxufVxuXG52YXIgcmVkdWNlID0gQXJyYXkucHJvdG90eXBlLnJlZHVjZTtcbnZhciBlc2NhcGVzID0gW1xuICBbL1xcXFwvZywgJ1xcXFxcXFxcJ10sXG4gIFsvXFwqL2csICdcXFxcKiddLFxuICBbL14tL2csICdcXFxcLSddLFxuICBbL15cXCsgL2csICdcXFxcKyAnXSxcbiAgWy9eKD0rKS9nLCAnXFxcXCQxJ10sXG4gIFsvXigjezEsNn0pIC9nLCAnXFxcXCQxICddLFxuICBbL2AvZywgJ1xcXFxgJ10sXG4gIFsvXn5+fi9nLCAnXFxcXH5+fiddLFxuICBbL1xcWy9nLCAnXFxcXFsnXSxcbiAgWy9cXF0vZywgJ1xcXFxdJ10sXG4gIFsvXj4vZywgJ1xcXFw+J10sXG4gIFsvXy9nLCAnXFxcXF8nXSxcbiAgWy9eKFxcZCspXFwuIC9nLCAnJDFcXFxcLiAnXVxuXTtcblxuZnVuY3Rpb24gVHVybmRvd25TZXJ2aWNlIChvcHRpb25zKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBUdXJuZG93blNlcnZpY2UpKSByZXR1cm4gbmV3IFR1cm5kb3duU2VydmljZShvcHRpb25zKVxuXG4gIHZhciBkZWZhdWx0cyA9IHtcbiAgICBydWxlczogcnVsZXMsXG4gICAgaGVhZGluZ1N0eWxlOiAnc2V0ZXh0JyxcbiAgICBocjogJyogKiAqJyxcbiAgICBidWxsZXRMaXN0TWFya2VyOiAnKicsXG4gICAgY29kZUJsb2NrU3R5bGU6ICdpbmRlbnRlZCcsXG4gICAgZmVuY2U6ICdgYGAnLFxuICAgIGVtRGVsaW1pdGVyOiAnXycsXG4gICAgc3Ryb25nRGVsaW1pdGVyOiAnKionLFxuICAgIGxpbmtTdHlsZTogJ2lubGluZWQnLFxuICAgIGxpbmtSZWZlcmVuY2VTdHlsZTogJ2Z1bGwnLFxuICAgIGJyOiAnICAnLFxuICAgIHByZWZvcm1hdHRlZENvZGU6IGZhbHNlLFxuICAgIGJsYW5rUmVwbGFjZW1lbnQ6IGZ1bmN0aW9uIChjb250ZW50LCBub2RlKSB7XG4gICAgICByZXR1cm4gbm9kZS5pc0Jsb2NrID8gJ1xcblxcbicgOiAnJ1xuICAgIH0sXG4gICAga2VlcFJlcGxhY2VtZW50OiBmdW5jdGlvbiAoY29udGVudCwgbm9kZSkge1xuICAgICAgcmV0dXJuIG5vZGUuaXNCbG9jayA/ICdcXG5cXG4nICsgbm9kZS5vdXRlckhUTUwgKyAnXFxuXFxuJyA6IG5vZGUub3V0ZXJIVE1MXG4gICAgfSxcbiAgICBkZWZhdWx0UmVwbGFjZW1lbnQ6IGZ1bmN0aW9uIChjb250ZW50LCBub2RlKSB7XG4gICAgICByZXR1cm4gbm9kZS5pc0Jsb2NrID8gJ1xcblxcbicgKyBjb250ZW50ICsgJ1xcblxcbicgOiBjb250ZW50XG4gICAgfVxuICB9O1xuICB0aGlzLm9wdGlvbnMgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBvcHRpb25zKTtcbiAgdGhpcy5ydWxlcyA9IG5ldyBSdWxlcyh0aGlzLm9wdGlvbnMpO1xufVxuXG5UdXJuZG93blNlcnZpY2UucHJvdG90eXBlID0ge1xuICAvKipcbiAgICogVGhlIGVudHJ5IHBvaW50IGZvciBjb252ZXJ0aW5nIGEgc3RyaW5nIG9yIERPTSBub2RlIHRvIE1hcmtkb3duXG4gICAqIEBwdWJsaWNcbiAgICogQHBhcmFtIHtTdHJpbmd8SFRNTEVsZW1lbnR9IGlucHV0IFRoZSBzdHJpbmcgb3IgRE9NIG5vZGUgdG8gY29udmVydFxuICAgKiBAcmV0dXJucyBBIE1hcmtkb3duIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnB1dFxuICAgKiBAdHlwZSBTdHJpbmdcbiAgICovXG5cbiAgdHVybmRvd246IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgIGlmICghY2FuQ29udmVydChpbnB1dCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgIGlucHV0ICsgJyBpcyBub3QgYSBzdHJpbmcsIG9yIGFuIGVsZW1lbnQvZG9jdW1lbnQvZnJhZ21lbnQgbm9kZS4nXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKGlucHV0ID09PSAnJykgcmV0dXJuICcnXG5cbiAgICB2YXIgb3V0cHV0ID0gcHJvY2Vzcy5jYWxsKHRoaXMsIG5ldyBSb290Tm9kZShpbnB1dCwgdGhpcy5vcHRpb25zKSk7XG4gICAgcmV0dXJuIHBvc3RQcm9jZXNzLmNhbGwodGhpcywgb3V0cHV0KVxuICB9LFxuXG4gIC8qKlxuICAgKiBBZGQgb25lIG9yIG1vcmUgcGx1Z2luc1xuICAgKiBAcHVibGljXG4gICAqIEBwYXJhbSB7RnVuY3Rpb258QXJyYXl9IHBsdWdpbiBUaGUgcGx1Z2luIG9yIGFycmF5IG9mIHBsdWdpbnMgdG8gYWRkXG4gICAqIEByZXR1cm5zIFRoZSBUdXJuZG93biBpbnN0YW5jZSBmb3IgY2hhaW5pbmdcbiAgICogQHR5cGUgT2JqZWN0XG4gICAqL1xuXG4gIHVzZTogZnVuY3Rpb24gKHBsdWdpbikge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHBsdWdpbikpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGx1Z2luLmxlbmd0aDsgaSsrKSB0aGlzLnVzZShwbHVnaW5baV0pO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHBsdWdpbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcGx1Z2luKHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwbHVnaW4gbXVzdCBiZSBhIEZ1bmN0aW9uIG9yIGFuIEFycmF5IG9mIEZ1bmN0aW9ucycpXG4gICAgfVxuICAgIHJldHVybiB0aGlzXG4gIH0sXG5cbiAgLyoqXG4gICAqIEFkZHMgYSBydWxlXG4gICAqIEBwdWJsaWNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSBUaGUgdW5pcXVlIGtleSBvZiB0aGUgcnVsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gcnVsZSBUaGUgcnVsZVxuICAgKiBAcmV0dXJucyBUaGUgVHVybmRvd24gaW5zdGFuY2UgZm9yIGNoYWluaW5nXG4gICAqIEB0eXBlIE9iamVjdFxuICAgKi9cblxuICBhZGRSdWxlOiBmdW5jdGlvbiAoa2V5LCBydWxlKSB7XG4gICAgdGhpcy5ydWxlcy5hZGQoa2V5LCBydWxlKTtcbiAgICByZXR1cm4gdGhpc1xuICB9LFxuXG4gIC8qKlxuICAgKiBLZWVwIGEgbm9kZSAoYXMgSFRNTCkgdGhhdCBtYXRjaGVzIHRoZSBmaWx0ZXJcbiAgICogQHB1YmxpY1xuICAgKiBAcGFyYW0ge1N0cmluZ3xBcnJheXxGdW5jdGlvbn0gZmlsdGVyIFRoZSB1bmlxdWUga2V5IG9mIHRoZSBydWxlXG4gICAqIEByZXR1cm5zIFRoZSBUdXJuZG93biBpbnN0YW5jZSBmb3IgY2hhaW5pbmdcbiAgICogQHR5cGUgT2JqZWN0XG4gICAqL1xuXG4gIGtlZXA6IGZ1bmN0aW9uIChmaWx0ZXIpIHtcbiAgICB0aGlzLnJ1bGVzLmtlZXAoZmlsdGVyKTtcbiAgICByZXR1cm4gdGhpc1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSBub2RlIHRoYXQgbWF0Y2hlcyB0aGUgZmlsdGVyXG4gICAqIEBwdWJsaWNcbiAgICogQHBhcmFtIHtTdHJpbmd8QXJyYXl8RnVuY3Rpb259IGZpbHRlciBUaGUgdW5pcXVlIGtleSBvZiB0aGUgcnVsZVxuICAgKiBAcmV0dXJucyBUaGUgVHVybmRvd24gaW5zdGFuY2UgZm9yIGNoYWluaW5nXG4gICAqIEB0eXBlIE9iamVjdFxuICAgKi9cblxuICByZW1vdmU6IGZ1bmN0aW9uIChmaWx0ZXIpIHtcbiAgICB0aGlzLnJ1bGVzLnJlbW92ZShmaWx0ZXIpO1xuICAgIHJldHVybiB0aGlzXG4gIH0sXG5cbiAgLyoqXG4gICAqIEVzY2FwZXMgTWFya2Rvd24gc3ludGF4XG4gICAqIEBwdWJsaWNcbiAgICogQHBhcmFtIHtTdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGVzY2FwZVxuICAgKiBAcmV0dXJucyBBIHN0cmluZyB3aXRoIE1hcmtkb3duIHN5bnRheCBlc2NhcGVkXG4gICAqIEB0eXBlIFN0cmluZ1xuICAgKi9cblxuICBlc2NhcGU6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICByZXR1cm4gZXNjYXBlcy5yZWR1Y2UoZnVuY3Rpb24gKGFjY3VtdWxhdG9yLCBlc2NhcGUpIHtcbiAgICAgIHJldHVybiBhY2N1bXVsYXRvci5yZXBsYWNlKGVzY2FwZVswXSwgZXNjYXBlWzFdKVxuICAgIH0sIHN0cmluZylcbiAgfVxufTtcblxuLyoqXG4gKiBSZWR1Y2VzIGEgRE9NIG5vZGUgZG93biB0byBpdHMgTWFya2Rvd24gc3RyaW5nIGVxdWl2YWxlbnRcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBwYXJlbnROb2RlIFRoZSBub2RlIHRvIGNvbnZlcnRcbiAqIEByZXR1cm5zIEEgTWFya2Rvd24gcmVwcmVzZW50YXRpb24gb2YgdGhlIG5vZGVcbiAqIEB0eXBlIFN0cmluZ1xuICovXG5cbmZ1bmN0aW9uIHByb2Nlc3MgKHBhcmVudE5vZGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICByZXR1cm4gcmVkdWNlLmNhbGwocGFyZW50Tm9kZS5jaGlsZE5vZGVzLCBmdW5jdGlvbiAob3V0cHV0LCBub2RlKSB7XG4gICAgbm9kZSA9IG5ldyBOb2RlKG5vZGUsIHNlbGYub3B0aW9ucyk7XG5cbiAgICB2YXIgcmVwbGFjZW1lbnQgPSAnJztcbiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gMykge1xuICAgICAgcmVwbGFjZW1lbnQgPSBub2RlLmlzQ29kZSA/IG5vZGUubm9kZVZhbHVlIDogc2VsZi5lc2NhcGUobm9kZS5ub2RlVmFsdWUpO1xuICAgIH0gZWxzZSBpZiAobm9kZS5ub2RlVHlwZSA9PT0gMSkge1xuICAgICAgcmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudEZvck5vZGUuY2FsbChzZWxmLCBub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gam9pbihvdXRwdXQsIHJlcGxhY2VtZW50KVxuICB9LCAnJylcbn1cblxuLyoqXG4gKiBBcHBlbmRzIHN0cmluZ3MgYXMgZWFjaCBydWxlIHJlcXVpcmVzIGFuZCB0cmltcyB0aGUgb3V0cHV0XG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtTdHJpbmd9IG91dHB1dCBUaGUgY29udmVyc2lvbiBvdXRwdXRcbiAqIEByZXR1cm5zIEEgdHJpbW1lZCB2ZXJzaW9uIG9mIHRoZSBvdXB1dFxuICogQHR5cGUgU3RyaW5nXG4gKi9cblxuZnVuY3Rpb24gcG9zdFByb2Nlc3MgKG91dHB1dCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMucnVsZXMuZm9yRWFjaChmdW5jdGlvbiAocnVsZSkge1xuICAgIGlmICh0eXBlb2YgcnVsZS5hcHBlbmQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIG91dHB1dCA9IGpvaW4ob3V0cHV0LCBydWxlLmFwcGVuZChzZWxmLm9wdGlvbnMpKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBvdXRwdXQucmVwbGFjZSgvXltcXHRcXHJcXG5dKy8sICcnKS5yZXBsYWNlKC9bXFx0XFxyXFxuXFxzXSskLywgJycpXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gZWxlbWVudCBub2RlIHRvIGl0cyBNYXJrZG93biBlcXVpdmFsZW50XG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gbm9kZSBUaGUgbm9kZSB0byBjb252ZXJ0XG4gKiBAcmV0dXJucyBBIE1hcmtkb3duIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBub2RlXG4gKiBAdHlwZSBTdHJpbmdcbiAqL1xuXG5mdW5jdGlvbiByZXBsYWNlbWVudEZvck5vZGUgKG5vZGUpIHtcbiAgdmFyIHJ1bGUgPSB0aGlzLnJ1bGVzLmZvck5vZGUobm9kZSk7XG4gIHZhciBjb250ZW50ID0gcHJvY2Vzcy5jYWxsKHRoaXMsIG5vZGUpO1xuICB2YXIgd2hpdGVzcGFjZSA9IG5vZGUuZmxhbmtpbmdXaGl0ZXNwYWNlO1xuICBpZiAod2hpdGVzcGFjZS5sZWFkaW5nIHx8IHdoaXRlc3BhY2UudHJhaWxpbmcpIGNvbnRlbnQgPSBjb250ZW50LnRyaW0oKTtcbiAgcmV0dXJuIChcbiAgICB3aGl0ZXNwYWNlLmxlYWRpbmcgK1xuICAgIHJ1bGUucmVwbGFjZW1lbnQoY29udGVudCwgbm9kZSwgdGhpcy5vcHRpb25zKSArXG4gICAgd2hpdGVzcGFjZS50cmFpbGluZ1xuICApXG59XG5cbi8qKlxuICogSm9pbnMgcmVwbGFjZW1lbnQgdG8gdGhlIGN1cnJlbnQgb3V0cHV0IHdpdGggYXBwcm9wcmlhdGUgbnVtYmVyIG9mIG5ldyBsaW5lc1xuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBvdXRwdXQgVGhlIGN1cnJlbnQgY29udmVyc2lvbiBvdXRwdXRcbiAqIEBwYXJhbSB7U3RyaW5nfSByZXBsYWNlbWVudCBUaGUgc3RyaW5nIHRvIGFwcGVuZCB0byB0aGUgb3V0cHV0XG4gKiBAcmV0dXJucyBKb2luZWQgb3V0cHV0XG4gKiBAdHlwZSBTdHJpbmdcbiAqL1xuXG5mdW5jdGlvbiBqb2luIChvdXRwdXQsIHJlcGxhY2VtZW50KSB7XG4gIHZhciBzMSA9IHRyaW1UcmFpbGluZ05ld2xpbmVzKG91dHB1dCk7XG4gIHZhciBzMiA9IHRyaW1MZWFkaW5nTmV3bGluZXMocmVwbGFjZW1lbnQpO1xuICB2YXIgbmxzID0gTWF0aC5tYXgob3V0cHV0Lmxlbmd0aCAtIHMxLmxlbmd0aCwgcmVwbGFjZW1lbnQubGVuZ3RoIC0gczIubGVuZ3RoKTtcbiAgdmFyIHNlcGFyYXRvciA9ICdcXG5cXG4nLnN1YnN0cmluZygwLCBubHMpO1xuXG4gIHJldHVybiBzMSArIHNlcGFyYXRvciArIHMyXG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFuIGlucHV0IGNhbiBiZSBjb252ZXJ0ZWRcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge1N0cmluZ3xIVE1MRWxlbWVudH0gaW5wdXQgRGVzY3JpYmUgdGhpcyBwYXJhbWV0ZXJcbiAqIEByZXR1cm5zIERlc2NyaWJlIHdoYXQgaXQgcmV0dXJuc1xuICogQHR5cGUgU3RyaW5nfE9iamVjdHxBcnJheXxCb29sZWFufE51bWJlclxuICovXG5cbmZ1bmN0aW9uIGNhbkNvbnZlcnQgKGlucHV0KSB7XG4gIHJldHVybiAoXG4gICAgaW5wdXQgIT0gbnVsbCAmJiAoXG4gICAgICB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnIHx8XG4gICAgICAoaW5wdXQubm9kZVR5cGUgJiYgKFxuICAgICAgICBpbnB1dC5ub2RlVHlwZSA9PT0gMSB8fCBpbnB1dC5ub2RlVHlwZSA9PT0gOSB8fCBpbnB1dC5ub2RlVHlwZSA9PT0gMTFcbiAgICAgICkpXG4gICAgKVxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IFR1cm5kb3duU2VydmljZTtcbiIsICJ2YXIgaGlnaGxpZ2h0UmVnRXhwID0gL2hpZ2hsaWdodC0oPzp0ZXh0fHNvdXJjZSktKFthLXowLTldKykvO1xuXG5mdW5jdGlvbiBoaWdobGlnaHRlZENvZGVCbG9jayAodHVybmRvd25TZXJ2aWNlKSB7XG4gIHR1cm5kb3duU2VydmljZS5hZGRSdWxlKCdoaWdobGlnaHRlZENvZGVCbG9jaycsIHtcbiAgICBmaWx0ZXI6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICB2YXIgZmlyc3RDaGlsZCA9IG5vZGUuZmlyc3RDaGlsZDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG5vZGUubm9kZU5hbWUgPT09ICdESVYnICYmXG4gICAgICAgIGhpZ2hsaWdodFJlZ0V4cC50ZXN0KG5vZGUuY2xhc3NOYW1lKSAmJlxuICAgICAgICBmaXJzdENoaWxkICYmXG4gICAgICAgIGZpcnN0Q2hpbGQubm9kZU5hbWUgPT09ICdQUkUnXG4gICAgICApXG4gICAgfSxcbiAgICByZXBsYWNlbWVudDogZnVuY3Rpb24gKGNvbnRlbnQsIG5vZGUsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBjbGFzc05hbWUgPSBub2RlLmNsYXNzTmFtZSB8fCAnJztcbiAgICAgIHZhciBsYW5ndWFnZSA9IChjbGFzc05hbWUubWF0Y2goaGlnaGxpZ2h0UmVnRXhwKSB8fCBbbnVsbCwgJyddKVsxXTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgJ1xcblxcbicgKyBvcHRpb25zLmZlbmNlICsgbGFuZ3VhZ2UgKyAnXFxuJyArXG4gICAgICAgIG5vZGUuZmlyc3RDaGlsZC50ZXh0Q29udGVudCArXG4gICAgICAgICdcXG4nICsgb3B0aW9ucy5mZW5jZSArICdcXG5cXG4nXG4gICAgICApXG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gc3RyaWtldGhyb3VnaCAodHVybmRvd25TZXJ2aWNlKSB7XG4gIHR1cm5kb3duU2VydmljZS5hZGRSdWxlKCdzdHJpa2V0aHJvdWdoJywge1xuICAgIGZpbHRlcjogWydkZWwnLCAncycsICdzdHJpa2UnXSxcbiAgICByZXBsYWNlbWVudDogZnVuY3Rpb24gKGNvbnRlbnQpIHtcbiAgICAgIHJldHVybiAnficgKyBjb250ZW50ICsgJ34nXG4gICAgfVxuICB9KTtcbn1cblxudmFyIGluZGV4T2YgPSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZjtcbnZhciBldmVyeSA9IEFycmF5LnByb3RvdHlwZS5ldmVyeTtcbnZhciBydWxlcyA9IHt9O1xuXG5ydWxlcy50YWJsZUNlbGwgPSB7XG4gIGZpbHRlcjogWyd0aCcsICd0ZCddLFxuICByZXBsYWNlbWVudDogZnVuY3Rpb24gKGNvbnRlbnQsIG5vZGUpIHtcbiAgICByZXR1cm4gY2VsbChjb250ZW50LCBub2RlKVxuICB9XG59O1xuXG5ydWxlcy50YWJsZVJvdyA9IHtcbiAgZmlsdGVyOiAndHInLFxuICByZXBsYWNlbWVudDogZnVuY3Rpb24gKGNvbnRlbnQsIG5vZGUpIHtcbiAgICB2YXIgYm9yZGVyQ2VsbHMgPSAnJztcbiAgICB2YXIgYWxpZ25NYXAgPSB7IGxlZnQ6ICc6LS0nLCByaWdodDogJy0tOicsIGNlbnRlcjogJzotOicgfTtcblxuICAgIGlmIChpc0hlYWRpbmdSb3cobm9kZSkpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBib3JkZXIgPSAnLS0tJztcbiAgICAgICAgdmFyIGFsaWduID0gKFxuICAgICAgICAgIG5vZGUuY2hpbGROb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoJ2FsaWduJykgfHwgJydcbiAgICAgICAgKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIGlmIChhbGlnbikgYm9yZGVyID0gYWxpZ25NYXBbYWxpZ25dIHx8IGJvcmRlcjtcblxuICAgICAgICBib3JkZXJDZWxscyArPSBjZWxsKGJvcmRlciwgbm9kZS5jaGlsZE5vZGVzW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICdcXG4nICsgY29udGVudCArIChib3JkZXJDZWxscyA/ICdcXG4nICsgYm9yZGVyQ2VsbHMgOiAnJylcbiAgfVxufTtcblxucnVsZXMudGFibGUgPSB7XG4gIC8vIE9ubHkgY29udmVydCB0YWJsZXMgd2l0aCBhIGhlYWRpbmcgcm93LlxuICAvLyBUYWJsZXMgd2l0aCBubyBoZWFkaW5nIHJvdyBhcmUga2VwdCB1c2luZyBga2VlcGAgKHNlZSBiZWxvdykuXG4gIGZpbHRlcjogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJ1RBQkxFJyAmJiBpc0hlYWRpbmdSb3cobm9kZS5yb3dzWzBdKVxuICB9LFxuXG4gIHJlcGxhY2VtZW50OiBmdW5jdGlvbiAoY29udGVudCkge1xuICAgIC8vIEVuc3VyZSB0aGVyZSBhcmUgbm8gYmxhbmsgbGluZXNcbiAgICBjb250ZW50ID0gY29udGVudC5yZXBsYWNlKCdcXG5cXG4nLCAnXFxuJyk7XG4gICAgcmV0dXJuICdcXG5cXG4nICsgY29udGVudCArICdcXG5cXG4nXG4gIH1cbn07XG5cbnJ1bGVzLnRhYmxlU2VjdGlvbiA9IHtcbiAgZmlsdGVyOiBbJ3RoZWFkJywgJ3Rib2R5JywgJ3Rmb290J10sXG4gIHJlcGxhY2VtZW50OiBmdW5jdGlvbiAoY29udGVudCkge1xuICAgIHJldHVybiBjb250ZW50XG4gIH1cbn07XG5cbi8vIEEgdHIgaXMgYSBoZWFkaW5nIHJvdyBpZjpcbi8vIC0gdGhlIHBhcmVudCBpcyBhIFRIRUFEXG4vLyAtIG9yIGlmIGl0cyB0aGUgZmlyc3QgY2hpbGQgb2YgdGhlIFRBQkxFIG9yIHRoZSBmaXJzdCBUQk9EWSAocG9zc2libHlcbi8vICAgZm9sbG93aW5nIGEgYmxhbmsgVEhFQUQpXG4vLyAtIGFuZCBldmVyeSBjZWxsIGlzIGEgVEhcbmZ1bmN0aW9uIGlzSGVhZGluZ1JvdyAodHIpIHtcbiAgdmFyIHBhcmVudE5vZGUgPSB0ci5wYXJlbnROb2RlO1xuICByZXR1cm4gKFxuICAgIHBhcmVudE5vZGUubm9kZU5hbWUgPT09ICdUSEVBRCcgfHxcbiAgICAoXG4gICAgICBwYXJlbnROb2RlLmZpcnN0Q2hpbGQgPT09IHRyICYmXG4gICAgICAocGFyZW50Tm9kZS5ub2RlTmFtZSA9PT0gJ1RBQkxFJyB8fCBpc0ZpcnN0VGJvZHkocGFyZW50Tm9kZSkpICYmXG4gICAgICBldmVyeS5jYWxsKHRyLmNoaWxkTm9kZXMsIGZ1bmN0aW9uIChuKSB7IHJldHVybiBuLm5vZGVOYW1lID09PSAnVEgnIH0pXG4gICAgKVxuICApXG59XG5cbmZ1bmN0aW9uIGlzRmlyc3RUYm9keSAoZWxlbWVudCkge1xuICB2YXIgcHJldmlvdXNTaWJsaW5nID0gZWxlbWVudC5wcmV2aW91c1NpYmxpbmc7XG4gIHJldHVybiAoXG4gICAgZWxlbWVudC5ub2RlTmFtZSA9PT0gJ1RCT0RZJyAmJiAoXG4gICAgICAhcHJldmlvdXNTaWJsaW5nIHx8XG4gICAgICAoXG4gICAgICAgIHByZXZpb3VzU2libGluZy5ub2RlTmFtZSA9PT0gJ1RIRUFEJyAmJlxuICAgICAgICAvXlxccyokL2kudGVzdChwcmV2aW91c1NpYmxpbmcudGV4dENvbnRlbnQpXG4gICAgICApXG4gICAgKVxuICApXG59XG5cbmZ1bmN0aW9uIGNlbGwgKGNvbnRlbnQsIG5vZGUpIHtcbiAgdmFyIGluZGV4ID0gaW5kZXhPZi5jYWxsKG5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLCBub2RlKTtcbiAgdmFyIHByZWZpeCA9ICcgJztcbiAgaWYgKGluZGV4ID09PSAwKSBwcmVmaXggPSAnfCAnO1xuICByZXR1cm4gcHJlZml4ICsgY29udGVudCArICcgfCdcbn1cblxuZnVuY3Rpb24gdGFibGVzICh0dXJuZG93blNlcnZpY2UpIHtcbiAgdHVybmRvd25TZXJ2aWNlLmtlZXAoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJ1RBQkxFJyAmJiAhaXNIZWFkaW5nUm93KG5vZGUucm93c1swXSlcbiAgfSk7XG4gIGZvciAodmFyIGtleSBpbiBydWxlcykgdHVybmRvd25TZXJ2aWNlLmFkZFJ1bGUoa2V5LCBydWxlc1trZXldKTtcbn1cblxuZnVuY3Rpb24gdGFza0xpc3RJdGVtcyAodHVybmRvd25TZXJ2aWNlKSB7XG4gIHR1cm5kb3duU2VydmljZS5hZGRSdWxlKCd0YXNrTGlzdEl0ZW1zJywge1xuICAgIGZpbHRlcjogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHJldHVybiBub2RlLnR5cGUgPT09ICdjaGVja2JveCcgJiYgbm9kZS5wYXJlbnROb2RlLm5vZGVOYW1lID09PSAnTEknXG4gICAgfSxcbiAgICByZXBsYWNlbWVudDogZnVuY3Rpb24gKGNvbnRlbnQsIG5vZGUpIHtcbiAgICAgIHJldHVybiAobm9kZS5jaGVja2VkID8gJ1t4XScgOiAnWyBdJykgKyAnICdcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZm0gKHR1cm5kb3duU2VydmljZSkge1xuICB0dXJuZG93blNlcnZpY2UudXNlKFtcbiAgICBoaWdobGlnaHRlZENvZGVCbG9jayxcbiAgICBzdHJpa2V0aHJvdWdoLFxuICAgIHRhYmxlcyxcbiAgICB0YXNrTGlzdEl0ZW1zXG4gIF0pO1xufVxuXG5leHBvcnQgeyBnZm0sIGhpZ2hsaWdodGVkQ29kZUJsb2NrLCBzdHJpa2V0aHJvdWdoLCB0YWJsZXMsIHRhc2tMaXN0SXRlbXMgfTtcbiIsICIvLyBwdXNocm9ja3Mgc2NvcGVcbmltcG9ydCAqIGFzIHNtYXJ0eWFtbCBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHlhbWwnO1xuXG5leHBvcnQge1xuICBzbWFydHlhbWxcbn1cblxuLy8gdGhpcmQgcGFydHkgcmVtYXJrXG5pbXBvcnQgeyB1bmlmaWVkIH0gZnJvbSAndW5pZmllZCc7XG5pbXBvcnQgcmVtYXJrR2ZtIGZyb20gJ3JlbWFyay1nZm0nO1xuaW1wb3J0IHJlbWFya1BhcnNlIGZyb20gJ3JlbWFyay1wYXJzZSc7XG5pbXBvcnQgcmVtYXJrRnJvbnRtYXR0ZXIgZnJvbSAncmVtYXJrLWZyb250bWF0dGVyJztcbmltcG9ydCByZW1hcmtIdG1sIGZyb20gJ3JlbWFyay1odG1sJztcbmltcG9ydCByZW1hcmtTdHJpbmdpZnkgZnJvbSAncmVtYXJrLXN0cmluZ2lmeSc7XG5cbmV4cG9ydCB7IHVuaWZpZWQsIHJlbWFya0dmbSwgcmVtYXJrUGFyc2UsIHJlbWFya0Zyb250bWF0dGVyLCByZW1hcmtIdG1sLCByZW1hcmtTdHJpbmdpZnkgfTtcblxuLy8gb3RoZXIgdGhpcmQgcGFydHkgc3R1ZmZcbmltcG9ydCB0dXJuZG93biBmcm9tICd0dXJuZG93bic7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgKiBhcyB0dXJuZG93blBsdWdpbkdmbSBmcm9tICd0dXJuZG93bi1wbHVnaW4tZ2ZtJztcblxuZXhwb3J0IHsgdHVybmRvd24sIHR1cm5kb3duUGx1Z2luR2ZtIH07XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0bWFya2Rvd24ucGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBNZFBhcnNlZFJlc3VsdCB7XG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgY3JlYXRlRnJvbU1hcmtkb3duU3RyaW5nKG1kU3RyaW5nQXJnOiBzdHJpbmcpOiBQcm9taXNlPE1kUGFyc2VkUmVzdWx0PiB7XG4gICAgY29uc3QgbWRQYXJzZWRSZXN1bHQgPSBuZXcgTWRQYXJzZWRSZXN1bHQoKTtcbiAgICBhd2FpdCBtZFBhcnNlZFJlc3VsdC51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcobWRTdHJpbmdBcmcpO1xuICAgIHJldHVybiBtZFBhcnNlZFJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBvcmlnaW5hbFN0cmluZzogc3RyaW5nO1xuICBwdWJsaWMgdGl0bGU6IHN0cmluZztcbiAgcHVibGljIGh0bWw6IHN0cmluZztcbiAgcHVibGljIGZyb250bWF0dGVyRGF0YToge1trZXk6IHN0cmluZ106IGFueX07XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUZyb21NYXJrZG93blN0cmluZyhtZFN0cmluZ0FyZzogc3RyaW5nKSB7XG4gICAgbGV0IHlhbWxTdHJpbmc6IHN0cmluZztcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwbHVnaW5zLnVuaWZpZWQoKVxuICAgICAgLnVzZShwbHVnaW5zLnJlbWFya1BhcnNlKVxuICAgICAgLnVzZShwbHVnaW5zLnJlbWFya0dmbSlcbiAgICAgIC51c2UocGx1Z2lucy5yZW1hcmtGcm9udG1hdHRlciwgWyd5YW1sJywgJ3RvbWwnXSlcbiAgICAgIC51c2UocGx1Z2lucy5yZW1hcmtTdHJpbmdpZnkpXG4gICAgICAudXNlKHBsdWdpbnMucmVtYXJrSHRtbClcbiAgICAgIC51c2UoKCkgPT4gKHRyZWUpID0+IHtcbiAgICAgICAgY29uc29sZS5kaXIodHJlZSk7XG4gICAgICAgIGNvbnN0IHlhbWxDaGlsZCA9IHRyZWUuY2hpbGRyZW4uZmluZChvYmplY3RBcmcgPT4gb2JqZWN0QXJnLnR5cGUgPT09ICd5YW1sJyk7XG4gICAgICAgIGlmICh5YW1sQ2hpbGQpIHtcbiAgICAgICAgICB5YW1sU3RyaW5nID0gKHlhbWxDaGlsZCBhcyBhbnkpLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLnByb2Nlc3MobWRTdHJpbmdBcmcpO1xuICAgIHRoaXMuaHRtbCA9IHJlc3VsdC50b1N0cmluZygpO1xuICAgIGlmICh5YW1sU3RyaW5nKSB7XG4gICAgICB0aGlzLmZyb250bWF0dGVyRGF0YSA9IGF3YWl0IHBsdWdpbnMuc21hcnR5YW1sLnlhbWxTdHJpbmdUb09iamVjdCh5YW1sU3RyaW5nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mcm9udG1hdHRlckRhdGEgPSB7fTtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vc21hcnRtYXJrZG93bi5wbHVnaW5zLmpzJztcbmltcG9ydCB7IE1kUGFyc2VkUmVzdWx0IH0gZnJvbSAnLi9zbWFydG1hcmtkb3duLmNsYXNzZXMubWRwYXJzZWRyZXN1bHQuanMnO1xuXG5leHBvcnQgY2xhc3MgU21hcnRNYXJrZG93biB7XG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgZWFzeU1hcmtkb3duVG9IdG1sKG1kU3RyaW5nQXJnOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzbWFydG1hcmtkb3duSW5zdGFuY2UgPSBuZXcgU21hcnRNYXJrZG93bigpO1xuICAgIGNvbnN0IG1kUGFyc2VkUmVzdWx0ID0gYXdhaXQgc21hcnRtYXJrZG93bkluc3RhbmNlLmdldE1kUGFyc2VkUmVzdWx0RnJvbU1hcmtkb3duKG1kU3RyaW5nQXJnKTtcbiAgICByZXR1cm4gbWRQYXJzZWRSZXN1bHQuaHRtbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogY3JlYXRlIGEgTWRQYXJzZWRSZXN1bHQgZnJvbSBtYXJrZG93blxuICAgKiBAcGFyYW0gbWRTdHJpbmdBcmdcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bihtZFN0cmluZ0FyZzogc3RyaW5nKTogUHJvbWlzZTxNZFBhcnNlZFJlc3VsdD4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IE1kUGFyc2VkUmVzdWx0LmNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhtZFN0cmluZ0FyZyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBodG1sVG9NYXJrZG93bihodG1sU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR1cm5kb3duSW5zdGFuY2UgPSBuZXcgcGx1Z2lucy50dXJuZG93bih7XG4gICAgICBoZWFkaW5nU3R5bGU6ICdhdHgnLFxuICAgICAgY29kZUJsb2NrU3R5bGU6ICdmZW5jZWQnLFxuICAgIH0pO1xuICAgIHR1cm5kb3duSW5zdGFuY2UudXNlKHBsdWdpbnMudHVybmRvd25QbHVnaW5HZm0uZ2ZtKTtcbiAgICByZXR1cm4gdHVybmRvd25JbnN0YW5jZS50dXJuZG93bihodG1sU3RyaW5nKTtcbiAgfVxufVxuIiwgImNvbnN0IERFRkFVTFRfREVMSU1JVEVSID0gXCIvXCI7XG5jb25zdCBOT09QX1ZBTFVFID0gKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlO1xuY29uc3QgSURfU1RBUlQgPSAvXlskX1xccHtJRF9TdGFydH1dJC91O1xuY29uc3QgSURfQ09OVElOVUUgPSAvXlskXFx1MjAwY1xcdTIwMGRcXHB7SURfQ29udGludWV9XSQvdTtcblxuLyoqXG4gKiBFbmNvZGUgYSBzdHJpbmcgaW50byBhbm90aGVyIHN0cmluZy5cbiAqL1xuZXhwb3J0IHR5cGUgRW5jb2RlID0gKHZhbHVlOiBzdHJpbmcpID0+IHN0cmluZztcblxuLyoqXG4gKiBEZWNvZGUgYSBzdHJpbmcgaW50byBhbm90aGVyIHN0cmluZy5cbiAqL1xuZXhwb3J0IHR5cGUgRGVjb2RlID0gKHZhbHVlOiBzdHJpbmcpID0+IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZU9wdGlvbnMge1xuICAvKipcbiAgICogQSBmdW5jdGlvbiBmb3IgZW5jb2RpbmcgaW5wdXQgc3RyaW5ncy5cbiAgICovXG4gIGVuY29kZVBhdGg/OiBFbmNvZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0aFRvUmVnZXhwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNYXRjaGVzIHRoZSBwYXRoIGNvbXBsZXRlbHkgd2l0aG91dCB0cmFpbGluZyBjaGFyYWN0ZXJzLiAoZGVmYXVsdDogYHRydWVgKVxuICAgKi9cbiAgZW5kPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFsbG93cyBvcHRpb25hbCB0cmFpbGluZyBkZWxpbWl0ZXIgdG8gbWF0Y2guIChkZWZhdWx0OiBgdHJ1ZWApXG4gICAqL1xuICB0cmFpbGluZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBNYXRjaCB3aWxsIGJlIGNhc2Ugc2Vuc2l0aXZlLiAoZGVmYXVsdDogYGZhbHNlYClcbiAgICovXG4gIHNlbnNpdGl2ZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBkZWxpbWl0ZXIgZm9yIHNlZ21lbnRzLiAoZGVmYXVsdDogYCcvJ2ApXG4gICAqL1xuICBkZWxpbWl0ZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF0Y2hPcHRpb25zIGV4dGVuZHMgUGF0aFRvUmVnZXhwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBGdW5jdGlvbiBmb3IgZGVjb2Rpbmcgc3RyaW5ncyBmb3IgcGFyYW1zLCBvciBgZmFsc2VgIHRvIGRpc2FibGUgZW50aXJlbHkuIChkZWZhdWx0OiBgZGVjb2RlVVJJQ29tcG9uZW50YClcbiAgICovXG4gIGRlY29kZT86IERlY29kZSB8IGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBpbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGZvciBlbmNvZGluZyBpbnB1dCBzdHJpbmdzIGZvciBvdXRwdXQgaW50byB0aGUgcGF0aCwgb3IgYGZhbHNlYCB0byBkaXNhYmxlIGVudGlyZWx5LiAoZGVmYXVsdDogYGVuY29kZVVSSUNvbXBvbmVudGApXG4gICAqL1xuICBlbmNvZGU/OiBFbmNvZGUgfCBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGRlbGltaXRlciBmb3Igc2VnbWVudHMuIChkZWZhdWx0OiBgJy8nYClcbiAgICovXG4gIGRlbGltaXRlcj86IHN0cmluZztcbn1cblxudHlwZSBUb2tlblR5cGUgPVxuICB8IFwie1wiXG4gIHwgXCJ9XCJcbiAgfCBcIndpbGRjYXJkXCJcbiAgfCBcInBhcmFtXCJcbiAgfCBcImNoYXJcIlxuICB8IFwiZXNjYXBlXCJcbiAgfCBcImVuZFwiXG4gIC8vIFJlc2VydmVkIGZvciB1c2Ugb3IgYW1iaWd1b3VzIGR1ZSB0byBwYXN0IHVzZS5cbiAgfCBcIihcIlxuICB8IFwiKVwiXG4gIHwgXCJbXCJcbiAgfCBcIl1cIlxuICB8IFwiK1wiXG4gIHwgXCI/XCJcbiAgfCBcIiFcIjtcblxuLyoqXG4gKiBUb2tlbml6ZXIgcmVzdWx0cy5cbiAqL1xuaW50ZXJmYWNlIExleFRva2VuIHtcbiAgdHlwZTogVG9rZW5UeXBlO1xuICBpbmRleDogbnVtYmVyO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5jb25zdCBTSU1QTEVfVE9LRU5TOiBSZWNvcmQ8c3RyaW5nLCBUb2tlblR5cGU+ID0ge1xuICAvLyBHcm91cHMuXG4gIFwie1wiOiBcIntcIixcbiAgXCJ9XCI6IFwifVwiLFxuICAvLyBSZXNlcnZlZC5cbiAgXCIoXCI6IFwiKFwiLFxuICBcIilcIjogXCIpXCIsXG4gIFwiW1wiOiBcIltcIixcbiAgXCJdXCI6IFwiXVwiLFxuICBcIitcIjogXCIrXCIsXG4gIFwiP1wiOiBcIj9cIixcbiAgXCIhXCI6IFwiIVwiLFxufTtcblxuLyoqXG4gKiBFc2NhcGUgdGV4dCBmb3Igc3RyaW5naWZ5IHRvIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGVzY2FwZVRleHQoc3RyOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9be30oKVxcW1xcXSs/IToqXFxcXF0vZywgXCJcXFxcJCZcIik7XG59XG5cbi8qKlxuICogRXNjYXBlIGEgcmVndWxhciBleHByZXNzaW9uIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZXNjYXBlKHN0cjogc3RyaW5nKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvWy4rKj9eJHt9KClbXFxdfC9cXFxcXS9nLCBcIlxcXFwkJlwiKTtcbn1cblxuLyoqXG4gKiBQbGFpbiB0ZXh0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRleHQge1xuICB0eXBlOiBcInRleHRcIjtcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHBhcmFtZXRlciBkZXNpZ25lZCB0byBtYXRjaCBhcmJpdHJhcnkgdGV4dCB3aXRoaW4gYSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlciB7XG4gIHR5cGU6IFwicGFyYW1cIjtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgd2lsZGNhcmQgcGFyYW1ldGVyIGRlc2lnbmVkIHRvIG1hdGNoIG11bHRpcGxlIHNlZ21lbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdpbGRjYXJkIHtcbiAgdHlwZTogXCJ3aWxkY2FyZFwiO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBzZXQgb2YgcG9zc2libGUgdG9rZW5zIHRvIGV4cGFuZCB3aGVuIG1hdGNoaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwIHtcbiAgdHlwZTogXCJncm91cFwiO1xuICB0b2tlbnM6IFRva2VuW107XG59XG5cbi8qKlxuICogQSB0b2tlbiB0aGF0IGNvcnJlc3BvbmRzIHdpdGggYSByZWdleHAgY2FwdHVyZS5cbiAqL1xuZXhwb3J0IHR5cGUgS2V5ID0gUGFyYW1ldGVyIHwgV2lsZGNhcmQ7XG5cbi8qKlxuICogQSBzZXF1ZW5jZSBvZiBgcGF0aC10by1yZWdleHBgIGtleXMgdGhhdCBtYXRjaCBjYXB0dXJpbmcgZ3JvdXBzLlxuICovXG5leHBvcnQgdHlwZSBLZXlzID0gQXJyYXk8S2V5PjtcblxuLyoqXG4gKiBBIHNlcXVlbmNlIG9mIHBhdGggbWF0Y2ggY2hhcmFjdGVycy5cbiAqL1xuZXhwb3J0IHR5cGUgVG9rZW4gPSBUZXh0IHwgUGFyYW1ldGVyIHwgV2lsZGNhcmQgfCBHcm91cDtcblxuLyoqXG4gKiBUb2tlbml6ZWQgcGF0aCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFRva2VuRGF0YSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB0b2tlbnM6IFRva2VuW10sXG4gICAgcHVibGljIHJlYWRvbmx5IG9yaWdpbmFsUGF0aD86IHN0cmluZyxcbiAgKSB7fVxufVxuXG4vKipcbiAqIFBhcnNlRXJyb3IgaXMgdGhyb3duIHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IgcHJvY2Vzc2luZyB0aGUgcGF0aC5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhdGhFcnJvciBleHRlbmRzIFR5cGVFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3JpZ2luYWxQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIGxldCB0ZXh0ID0gbWVzc2FnZTtcbiAgICBpZiAob3JpZ2luYWxQYXRoKSB0ZXh0ICs9IGA6ICR7b3JpZ2luYWxQYXRofWA7XG4gICAgdGV4dCArPSBgOyB2aXNpdCBodHRwczovL2dpdC5uZXcvcGF0aFRvUmVnZXhwRXJyb3IgZm9yIGluZm9gO1xuICAgIHN1cGVyKHRleHQpO1xuICB9XG59XG5cbi8qKlxuICogUGFyc2UgYSBzdHJpbmcgZm9yIHRoZSByYXcgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2Uoc3RyOiBzdHJpbmcsIG9wdGlvbnM6IFBhcnNlT3B0aW9ucyA9IHt9KTogVG9rZW5EYXRhIHtcbiAgY29uc3QgeyBlbmNvZGVQYXRoID0gTk9PUF9WQUxVRSB9ID0gb3B0aW9ucztcbiAgY29uc3QgY2hhcnMgPSBbLi4uc3RyXTtcbiAgY29uc3QgdG9rZW5zOiBBcnJheTxMZXhUb2tlbj4gPSBbXTtcbiAgbGV0IGluZGV4ID0gMDtcbiAgbGV0IHBvcyA9IDA7XG5cbiAgZnVuY3Rpb24gbmFtZSgpIHtcbiAgICBsZXQgdmFsdWUgPSBcIlwiO1xuXG4gICAgaWYgKElEX1NUQVJULnRlc3QoY2hhcnNbaW5kZXhdKSkge1xuICAgICAgZG8ge1xuICAgICAgICB2YWx1ZSArPSBjaGFyc1tpbmRleCsrXTtcbiAgICAgIH0gd2hpbGUgKElEX0NPTlRJTlVFLnRlc3QoY2hhcnNbaW5kZXhdKSk7XG4gICAgfSBlbHNlIGlmIChjaGFyc1tpbmRleF0gPT09ICdcIicpIHtcbiAgICAgIGxldCBxdW90ZVN0YXJ0ID0gaW5kZXg7XG5cbiAgICAgIHdoaWxlIChpbmRleCsrIDwgY2hhcnMubGVuZ3RoKSB7XG4gICAgICAgIGlmIChjaGFyc1tpbmRleF0gPT09ICdcIicpIHtcbiAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgIHF1b3RlU3RhcnQgPSAwO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5jcmVtZW50IG92ZXIgZXNjYXBlIGNoYXJhY3RlcnMuXG4gICAgICAgIGlmIChjaGFyc1tpbmRleF0gPT09IFwiXFxcXFwiKSBpbmRleCsrO1xuXG4gICAgICAgIHZhbHVlICs9IGNoYXJzW2luZGV4XTtcbiAgICAgIH1cblxuICAgICAgaWYgKHF1b3RlU3RhcnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhdGhFcnJvcihgVW50ZXJtaW5hdGVkIHF1b3RlIGF0IGluZGV4ICR7cXVvdGVTdGFydH1gLCBzdHIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBQYXRoRXJyb3IoYE1pc3NpbmcgcGFyYW1ldGVyIG5hbWUgYXQgaW5kZXggJHtpbmRleH1gLCBzdHIpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHdoaWxlIChpbmRleCA8IGNoYXJzLmxlbmd0aCkge1xuICAgIGNvbnN0IHZhbHVlID0gY2hhcnNbaW5kZXhdO1xuICAgIGNvbnN0IHR5cGUgPSBTSU1QTEVfVE9LRU5TW3ZhbHVlXTtcblxuICAgIGlmICh0eXBlKSB7XG4gICAgICB0b2tlbnMucHVzaCh7IHR5cGUsIGluZGV4OiBpbmRleCsrLCB2YWx1ZSB9KTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBcIlxcXFxcIikge1xuICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcImVzY2FwZVwiLCBpbmRleDogaW5kZXgrKywgdmFsdWU6IGNoYXJzW2luZGV4KytdIH0pO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IFwiOlwiKSB7XG4gICAgICB0b2tlbnMucHVzaCh7IHR5cGU6IFwicGFyYW1cIiwgaW5kZXg6IGluZGV4KyssIHZhbHVlOiBuYW1lKCkgfSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gXCIqXCIpIHtcbiAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJ3aWxkY2FyZFwiLCBpbmRleDogaW5kZXgrKywgdmFsdWU6IG5hbWUoKSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBcImNoYXJcIiwgaW5kZXg6IGluZGV4KyssIHZhbHVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHRva2Vucy5wdXNoKHsgdHlwZTogXCJlbmRcIiwgaW5kZXgsIHZhbHVlOiBcIlwiIH0pO1xuXG4gIGZ1bmN0aW9uIGNvbnN1bWVVbnRpbChlbmRUeXBlOiBUb2tlblR5cGUpOiBUb2tlbltdIHtcbiAgICBjb25zdCBvdXRwdXQ6IFRva2VuW10gPSBbXTtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IHRva2Vuc1twb3MrK107XG4gICAgICBpZiAodG9rZW4udHlwZSA9PT0gZW5kVHlwZSkgYnJlYWs7XG5cbiAgICAgIGlmICh0b2tlbi50eXBlID09PSBcImNoYXJcIiB8fCB0b2tlbi50eXBlID09PSBcImVzY2FwZVwiKSB7XG4gICAgICAgIGxldCBwYXRoID0gdG9rZW4udmFsdWU7XG4gICAgICAgIGxldCBjdXIgPSB0b2tlbnNbcG9zXTtcblxuICAgICAgICB3aGlsZSAoY3VyLnR5cGUgPT09IFwiY2hhclwiIHx8IGN1ci50eXBlID09PSBcImVzY2FwZVwiKSB7XG4gICAgICAgICAgcGF0aCArPSBjdXIudmFsdWU7XG4gICAgICAgICAgY3VyID0gdG9rZW5zWysrcG9zXTtcbiAgICAgICAgfVxuXG4gICAgICAgIG91dHB1dC5wdXNoKHtcbiAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICB2YWx1ZTogZW5jb2RlUGF0aChwYXRoKSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJwYXJhbVwiIHx8IHRva2VuLnR5cGUgPT09IFwid2lsZGNhcmRcIikge1xuICAgICAgICBvdXRwdXQucHVzaCh7XG4gICAgICAgICAgdHlwZTogdG9rZW4udHlwZSxcbiAgICAgICAgICBuYW1lOiB0b2tlbi52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJ7XCIpIHtcbiAgICAgICAgb3V0cHV0LnB1c2goe1xuICAgICAgICAgIHR5cGU6IFwiZ3JvdXBcIixcbiAgICAgICAgICB0b2tlbnM6IGNvbnN1bWVVbnRpbChcIn1cIiksXG4gICAgICAgIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IFBhdGhFcnJvcihcbiAgICAgICAgYFVuZXhwZWN0ZWQgJHt0b2tlbi50eXBlfSBhdCBpbmRleCAke3Rva2VuLmluZGV4fSwgZXhwZWN0ZWQgJHtlbmRUeXBlfWAsXG4gICAgICAgIHN0cixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG4gIHJldHVybiBuZXcgVG9rZW5EYXRhKGNvbnN1bWVVbnRpbChcImVuZFwiKSwgc3RyKTtcbn1cblxuLyoqXG4gKiBDb21waWxlIGEgc3RyaW5nIHRvIGEgdGVtcGxhdGUgZnVuY3Rpb24gZm9yIHRoZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZTxQIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhPihcbiAgcGF0aDogUGF0aCxcbiAgb3B0aW9uczogQ29tcGlsZU9wdGlvbnMgJiBQYXJzZU9wdGlvbnMgPSB7fSxcbikge1xuICBjb25zdCB7IGVuY29kZSA9IGVuY29kZVVSSUNvbXBvbmVudCwgZGVsaW1pdGVyID0gREVGQVVMVF9ERUxJTUlURVIgfSA9XG4gICAgb3B0aW9ucztcbiAgY29uc3QgZGF0YSA9IHR5cGVvZiBwYXRoID09PSBcIm9iamVjdFwiID8gcGF0aCA6IHBhcnNlKHBhdGgsIG9wdGlvbnMpO1xuICBjb25zdCBmbiA9IHRva2Vuc1RvRnVuY3Rpb24oZGF0YS50b2tlbnMsIGRlbGltaXRlciwgZW5jb2RlKTtcblxuICByZXR1cm4gZnVuY3Rpb24gcGF0aChwYXJhbXM6IFAgPSB7fSBhcyBQKSB7XG4gICAgY29uc3QgW3BhdGgsIC4uLm1pc3NpbmddID0gZm4ocGFyYW1zKTtcbiAgICBpZiAobWlzc2luZy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE1pc3NpbmcgcGFyYW1ldGVyczogJHttaXNzaW5nLmpvaW4oXCIsIFwiKX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGg7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIFBhcmFtRGF0YSA9IFBhcnRpYWw8UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+PjtcbmV4cG9ydCB0eXBlIFBhdGhGdW5jdGlvbjxQIGV4dGVuZHMgUGFyYW1EYXRhPiA9IChkYXRhPzogUCkgPT4gc3RyaW5nO1xuXG5mdW5jdGlvbiB0b2tlbnNUb0Z1bmN0aW9uKFxuICB0b2tlbnM6IFRva2VuW10sXG4gIGRlbGltaXRlcjogc3RyaW5nLFxuICBlbmNvZGU6IEVuY29kZSB8IGZhbHNlLFxuKSB7XG4gIGNvbnN0IGVuY29kZXJzID0gdG9rZW5zLm1hcCgodG9rZW4pID0+XG4gICAgdG9rZW5Ub0Z1bmN0aW9uKHRva2VuLCBkZWxpbWl0ZXIsIGVuY29kZSksXG4gICk7XG5cbiAgcmV0dXJuIChkYXRhOiBQYXJhbURhdGEpID0+IHtcbiAgICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW1wiXCJdO1xuXG4gICAgZm9yIChjb25zdCBlbmNvZGVyIG9mIGVuY29kZXJzKSB7XG4gICAgICBjb25zdCBbdmFsdWUsIC4uLmV4dHJhc10gPSBlbmNvZGVyKGRhdGEpO1xuICAgICAgcmVzdWx0WzBdICs9IHZhbHVlO1xuICAgICAgcmVzdWx0LnB1c2goLi4uZXh0cmFzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSBzaW5nbGUgdG9rZW4gaW50byBhIHBhdGggYnVpbGRpbmcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIHRva2VuVG9GdW5jdGlvbihcbiAgdG9rZW46IFRva2VuLFxuICBkZWxpbWl0ZXI6IHN0cmluZyxcbiAgZW5jb2RlOiBFbmNvZGUgfCBmYWxzZSxcbik6IChkYXRhOiBQYXJhbURhdGEpID0+IHN0cmluZ1tdIHtcbiAgaWYgKHRva2VuLnR5cGUgPT09IFwidGV4dFwiKSByZXR1cm4gKCkgPT4gW3Rva2VuLnZhbHVlXTtcblxuICBpZiAodG9rZW4udHlwZSA9PT0gXCJncm91cFwiKSB7XG4gICAgY29uc3QgZm4gPSB0b2tlbnNUb0Z1bmN0aW9uKHRva2VuLnRva2VucywgZGVsaW1pdGVyLCBlbmNvZGUpO1xuXG4gICAgcmV0dXJuIChkYXRhKSA9PiB7XG4gICAgICBjb25zdCBbdmFsdWUsIC4uLm1pc3NpbmddID0gZm4oZGF0YSk7XG4gICAgICBpZiAoIW1pc3NpbmcubGVuZ3RoKSByZXR1cm4gW3ZhbHVlXTtcbiAgICAgIHJldHVybiBbXCJcIl07XG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGVuY29kZVZhbHVlID0gZW5jb2RlIHx8IE5PT1BfVkFMVUU7XG5cbiAgaWYgKHRva2VuLnR5cGUgPT09IFwid2lsZGNhcmRcIiAmJiBlbmNvZGUgIT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIChkYXRhKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGRhdGFbdG9rZW4ubmFtZV07XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIFtcIlwiLCB0b2tlbi5uYW1lXTtcblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXCIke3Rva2VuLm5hbWV9XCIgdG8gYmUgYSBub24tZW1wdHkgYXJyYXlgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgdmFsdWVcbiAgICAgICAgICAubWFwKCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBgRXhwZWN0ZWQgXCIke3Rva2VuLm5hbWV9LyR7aW5kZXh9XCIgdG8gYmUgYSBzdHJpbmdgLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlVmFsdWUodmFsdWUpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmpvaW4oZGVsaW1pdGVyKSxcbiAgICAgIF07XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gZGF0YVt0b2tlbi5uYW1lXTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIFtcIlwiLCB0b2tlbi5uYW1lXTtcblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFwiJHt0b2tlbi5uYW1lfVwiIHRvIGJlIGEgc3RyaW5nYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtlbmNvZGVWYWx1ZSh2YWx1ZSldO1xuICB9O1xufVxuXG4vKipcbiAqIEEgbWF0Y2ggcmVzdWx0IGNvbnRhaW5zIGRhdGEgYWJvdXQgdGhlIHBhdGggbWF0Y2guXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF0Y2hSZXN1bHQ8UCBleHRlbmRzIFBhcmFtRGF0YT4ge1xuICBwYXRoOiBzdHJpbmc7XG4gIHBhcmFtczogUDtcbn1cblxuLyoqXG4gKiBBIG1hdGNoIGlzIGVpdGhlciBgZmFsc2VgIChubyBtYXRjaCkgb3IgYSBtYXRjaCByZXN1bHQuXG4gKi9cbmV4cG9ydCB0eXBlIE1hdGNoPFAgZXh0ZW5kcyBQYXJhbURhdGE+ID0gZmFsc2UgfCBNYXRjaFJlc3VsdDxQPjtcblxuLyoqXG4gKiBUaGUgbWF0Y2ggZnVuY3Rpb24gdGFrZXMgYSBzdHJpbmcgYW5kIHJldHVybnMgd2hldGhlciBpdCBtYXRjaGVkIHRoZSBwYXRoLlxuICovXG5leHBvcnQgdHlwZSBNYXRjaEZ1bmN0aW9uPFAgZXh0ZW5kcyBQYXJhbURhdGE+ID0gKHBhdGg6IHN0cmluZykgPT4gTWF0Y2g8UD47XG5cbi8qKlxuICogU3VwcG9ydGVkIHBhdGggdHlwZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFBhdGggPSBzdHJpbmcgfCBUb2tlbkRhdGE7XG5cbi8qKlxuICogVHJhbnNmb3JtIGEgcGF0aCBpbnRvIGEgbWF0Y2ggZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaDxQIGV4dGVuZHMgUGFyYW1EYXRhPihcbiAgcGF0aDogUGF0aCB8IFBhdGhbXSxcbiAgb3B0aW9uczogTWF0Y2hPcHRpb25zICYgUGFyc2VPcHRpb25zID0ge30sXG4pOiBNYXRjaEZ1bmN0aW9uPFA+IHtcbiAgY29uc3QgeyBkZWNvZGUgPSBkZWNvZGVVUklDb21wb25lbnQsIGRlbGltaXRlciA9IERFRkFVTFRfREVMSU1JVEVSIH0gPVxuICAgIG9wdGlvbnM7XG4gIGNvbnN0IHsgcmVnZXhwLCBrZXlzIH0gPSBwYXRoVG9SZWdleHAocGF0aCwgb3B0aW9ucyk7XG5cbiAgY29uc3QgZGVjb2RlcnMgPSBrZXlzLm1hcCgoa2V5KSA9PiB7XG4gICAgaWYgKGRlY29kZSA9PT0gZmFsc2UpIHJldHVybiBOT09QX1ZBTFVFO1xuICAgIGlmIChrZXkudHlwZSA9PT0gXCJwYXJhbVwiKSByZXR1cm4gZGVjb2RlO1xuICAgIHJldHVybiAodmFsdWU6IHN0cmluZykgPT4gdmFsdWUuc3BsaXQoZGVsaW1pdGVyKS5tYXAoZGVjb2RlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIG1hdGNoKGlucHV0OiBzdHJpbmcpIHtcbiAgICBjb25zdCBtID0gcmVnZXhwLmV4ZWMoaW5wdXQpO1xuICAgIGlmICghbSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgcGF0aCA9IG1bMF07XG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKG1baV0gPT09IHVuZGVmaW5lZCkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IGtleSA9IGtleXNbaSAtIDFdO1xuICAgICAgY29uc3QgZGVjb2RlciA9IGRlY29kZXJzW2kgLSAxXTtcbiAgICAgIHBhcmFtc1trZXkubmFtZV0gPSBkZWNvZGVyKG1baV0pO1xuICAgIH1cblxuICAgIHJldHVybiB7IHBhdGgsIHBhcmFtcyB9O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aFRvUmVnZXhwKFxuICBwYXRoOiBQYXRoIHwgUGF0aFtdLFxuICBvcHRpb25zOiBQYXRoVG9SZWdleHBPcHRpb25zICYgUGFyc2VPcHRpb25zID0ge30sXG4pIHtcbiAgY29uc3Qge1xuICAgIGRlbGltaXRlciA9IERFRkFVTFRfREVMSU1JVEVSLFxuICAgIGVuZCA9IHRydWUsXG4gICAgc2Vuc2l0aXZlID0gZmFsc2UsXG4gICAgdHJhaWxpbmcgPSB0cnVlLFxuICB9ID0gb3B0aW9ucztcbiAgY29uc3Qga2V5czogS2V5cyA9IFtdO1xuICBjb25zdCBmbGFncyA9IHNlbnNpdGl2ZSA/IFwiXCIgOiBcImlcIjtcbiAgY29uc3Qgc291cmNlczogc3RyaW5nW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGlucHV0IG9mIHBhdGhzVG9BcnJheShwYXRoLCBbXSkpIHtcbiAgICBjb25zdCBkYXRhID0gdHlwZW9mIGlucHV0ID09PSBcIm9iamVjdFwiID8gaW5wdXQgOiBwYXJzZShpbnB1dCwgb3B0aW9ucyk7XG4gICAgZm9yIChjb25zdCB0b2tlbnMgb2YgZmxhdHRlbihkYXRhLnRva2VucywgMCwgW10pKSB7XG4gICAgICBzb3VyY2VzLnB1c2godG9SZWdFeHBTb3VyY2UodG9rZW5zLCBkZWxpbWl0ZXIsIGtleXMsIGRhdGEub3JpZ2luYWxQYXRoKSk7XG4gICAgfVxuICB9XG5cbiAgbGV0IHBhdHRlcm4gPSBgXig/OiR7c291cmNlcy5qb2luKFwifFwiKX0pYDtcbiAgaWYgKHRyYWlsaW5nKSBwYXR0ZXJuICs9IGAoPzoke2VzY2FwZShkZWxpbWl0ZXIpfSQpP2A7XG4gIHBhdHRlcm4gKz0gZW5kID8gXCIkXCIgOiBgKD89JHtlc2NhcGUoZGVsaW1pdGVyKX18JClgO1xuXG4gIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAocGF0dGVybiwgZmxhZ3MpO1xuICByZXR1cm4geyByZWdleHAsIGtleXMgfTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgcGF0aCBvciBhcnJheSBvZiBwYXRocyBpbnRvIGEgZmxhdCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gcGF0aHNUb0FycmF5KHBhdGhzOiBQYXRoIHwgUGF0aFtdLCBpbml0OiBQYXRoW10pOiBQYXRoW10ge1xuICBpZiAoQXJyYXkuaXNBcnJheShwYXRocykpIHtcbiAgICBmb3IgKGNvbnN0IHAgb2YgcGF0aHMpIHBhdGhzVG9BcnJheShwLCBpbml0KTtcbiAgfSBlbHNlIHtcbiAgICBpbml0LnB1c2gocGF0aHMpO1xuICB9XG4gIHJldHVybiBpbml0O1xufVxuXG4vKipcbiAqIEZsYXR0ZW5lZCB0b2tlbiBzZXQuXG4gKi9cbnR5cGUgRmxhdFRva2VuID0gVGV4dCB8IFBhcmFtZXRlciB8IFdpbGRjYXJkO1xuXG4vKipcbiAqIEdlbmVyYXRlIGEgZmxhdCBsaXN0IG9mIHNlcXVlbmNlIHRva2VucyBmcm9tIHRoZSBnaXZlbiB0b2tlbnMuXG4gKi9cbmZ1bmN0aW9uKiBmbGF0dGVuKFxuICB0b2tlbnM6IFRva2VuW10sXG4gIGluZGV4OiBudW1iZXIsXG4gIGluaXQ6IEZsYXRUb2tlbltdLFxuKTogR2VuZXJhdG9yPEZsYXRUb2tlbltdPiB7XG4gIGlmIChpbmRleCA9PT0gdG9rZW5zLmxlbmd0aCkge1xuICAgIHJldHVybiB5aWVsZCBpbml0O1xuICB9XG5cbiAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaW5kZXhdO1xuXG4gIGlmICh0b2tlbi50eXBlID09PSBcImdyb3VwXCIpIHtcbiAgICBmb3IgKGNvbnN0IHNlcSBvZiBmbGF0dGVuKHRva2VuLnRva2VucywgMCwgaW5pdC5zbGljZSgpKSkge1xuICAgICAgeWllbGQqIGZsYXR0ZW4odG9rZW5zLCBpbmRleCArIDEsIHNlcSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGluaXQucHVzaCh0b2tlbik7XG4gIH1cblxuICB5aWVsZCogZmxhdHRlbih0b2tlbnMsIGluZGV4ICsgMSwgaW5pdCk7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGEgZmxhdCBzZXF1ZW5jZSBvZiB0b2tlbnMgaW50byBhIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqL1xuZnVuY3Rpb24gdG9SZWdFeHBTb3VyY2UoXG4gIHRva2VuczogRmxhdFRva2VuW10sXG4gIGRlbGltaXRlcjogc3RyaW5nLFxuICBrZXlzOiBLZXlzLFxuICBvcmlnaW5hbFBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbik6IHN0cmluZyB7XG4gIGxldCByZXN1bHQgPSBcIlwiO1xuICBsZXQgYmFja3RyYWNrID0gXCJcIjtcbiAgbGV0IGlzU2FmZVNlZ21lbnRQYXJhbSA9IHRydWU7XG5cbiAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbnMpIHtcbiAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICAgIHJlc3VsdCArPSBlc2NhcGUodG9rZW4udmFsdWUpO1xuICAgICAgYmFja3RyYWNrICs9IHRva2VuLnZhbHVlO1xuICAgICAgaXNTYWZlU2VnbWVudFBhcmFtIHx8PSB0b2tlbi52YWx1ZS5pbmNsdWRlcyhkZWxpbWl0ZXIpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuLnR5cGUgPT09IFwicGFyYW1cIiB8fCB0b2tlbi50eXBlID09PSBcIndpbGRjYXJkXCIpIHtcbiAgICAgIGlmICghaXNTYWZlU2VnbWVudFBhcmFtICYmICFiYWNrdHJhY2spIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhdGhFcnJvcihcbiAgICAgICAgICBgTWlzc2luZyB0ZXh0IGJlZm9yZSBcIiR7dG9rZW4ubmFtZX1cIiAke3Rva2VuLnR5cGV9YCxcbiAgICAgICAgICBvcmlnaW5hbFBhdGgsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0b2tlbi50eXBlID09PSBcInBhcmFtXCIpIHtcbiAgICAgICAgcmVzdWx0ICs9IGAoJHtuZWdhdGUoZGVsaW1pdGVyLCBpc1NhZmVTZWdtZW50UGFyYW0gPyBcIlwiIDogYmFja3RyYWNrKX0rKWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgKz0gYChbXFxcXHNcXFxcU10rKWA7XG4gICAgICB9XG5cbiAgICAgIGtleXMucHVzaCh0b2tlbik7XG4gICAgICBiYWNrdHJhY2sgPSBcIlwiO1xuICAgICAgaXNTYWZlU2VnbWVudFBhcmFtID0gZmFsc2U7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEJsb2NrIGJhY2t0cmFja2luZyBvbiBwcmV2aW91cyB0ZXh0IGFuZCBpZ25vcmUgZGVsaW1pdGVyIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gbmVnYXRlKGRlbGltaXRlcjogc3RyaW5nLCBiYWNrdHJhY2s6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChiYWNrdHJhY2subGVuZ3RoIDwgMikge1xuICAgIGlmIChkZWxpbWl0ZXIubGVuZ3RoIDwgMikgcmV0dXJuIGBbXiR7ZXNjYXBlKGRlbGltaXRlciArIGJhY2t0cmFjayl9XWA7XG4gICAgcmV0dXJuIGAoPzooPyEke2VzY2FwZShkZWxpbWl0ZXIpfSlbXiR7ZXNjYXBlKGJhY2t0cmFjayl9XSlgO1xuICB9XG4gIGlmIChkZWxpbWl0ZXIubGVuZ3RoIDwgMikge1xuICAgIHJldHVybiBgKD86KD8hJHtlc2NhcGUoYmFja3RyYWNrKX0pW14ke2VzY2FwZShkZWxpbWl0ZXIpfV0pYDtcbiAgfVxuICByZXR1cm4gYCg/Oig/ISR7ZXNjYXBlKGJhY2t0cmFjayl9fCR7ZXNjYXBlKGRlbGltaXRlcil9KVtcXFxcc1xcXFxTXSlgO1xufVxuXG4vKipcbiAqIFN0cmluZ2lmeSBhbiBhcnJheSBvZiB0b2tlbnMgaW50byBhIHBhdGggc3RyaW5nLlxuICovXG5mdW5jdGlvbiBzdHJpbmdpZnlUb2tlbnModG9rZW5zOiBUb2tlbltdKTogc3RyaW5nIHtcbiAgbGV0IHZhbHVlID0gXCJcIjtcbiAgbGV0IGkgPSAwO1xuXG4gIGZ1bmN0aW9uIG5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IGlzU2FmZSA9IGlzTmFtZVNhZmUodmFsdWUpICYmIGlzTmV4dE5hbWVTYWZlKHRva2Vuc1tpXSk7XG4gICAgcmV0dXJuIGlzU2FmZSA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9XG5cbiAgd2hpbGUgKGkgPCB0b2tlbnMubGVuZ3RoKSB7XG4gICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaSsrXTtcblxuICAgIGlmICh0b2tlbi50eXBlID09PSBcInRleHRcIikge1xuICAgICAgdmFsdWUgKz0gZXNjYXBlVGV4dCh0b2tlbi52YWx1ZSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJncm91cFwiKSB7XG4gICAgICB2YWx1ZSArPSBgeyR7c3RyaW5naWZ5VG9rZW5zKHRva2VuLnRva2Vucyl9fWA7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJwYXJhbVwiKSB7XG4gICAgICB2YWx1ZSArPSBgOiR7bmFtZSh0b2tlbi5uYW1lKX1gO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuLnR5cGUgPT09IFwid2lsZGNhcmRcIikge1xuICAgICAgdmFsdWUgKz0gYCoke25hbWUodG9rZW4ubmFtZSl9YDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFVua25vd24gdG9rZW4gdHlwZTogJHsodG9rZW4gYXMgYW55KS50eXBlfWApO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIFN0cmluZ2lmeSB0b2tlbiBkYXRhIGludG8gYSBwYXRoIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeShkYXRhOiBUb2tlbkRhdGEpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyaW5naWZ5VG9rZW5zKGRhdGEudG9rZW5zKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGUgcGFyYW1ldGVyIG5hbWUgY29udGFpbnMgdmFsaWQgSUQgY2hhcmFjdGVycy5cbiAqL1xuZnVuY3Rpb24gaXNOYW1lU2FmZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgW2ZpcnN0LCAuLi5yZXN0XSA9IG5hbWU7XG4gIHJldHVybiBJRF9TVEFSVC50ZXN0KGZpcnN0KSAmJiByZXN0LmV2ZXJ5KChjaGFyKSA9PiBJRF9DT05USU5VRS50ZXN0KGNoYXIpKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGUgbmV4dCB0b2tlbiBkb2VzIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgY3VycmVudCBwYXJhbSBuYW1lLlxuICovXG5mdW5jdGlvbiBpc05leHROYW1lU2FmZSh0b2tlbjogVG9rZW4gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgaWYgKHRva2VuICYmIHRva2VuLnR5cGUgPT09IFwidGV4dFwiKSByZXR1cm4gIUlEX0NPTlRJTlVFLnRlc3QodG9rZW4udmFsdWVbMF0pO1xuICByZXR1cm4gdHJ1ZTtcbn1cbiIsICIvLyBAcHVzaC5yb2NrcyBzY29wZVxuaW1wb3J0ICogYXMgbGlrIGZyb20gJ0BwdXNoLnJvY2tzL2xpayc7XG5pbXBvcnQgKiBhcyBzbWFydHJ4IGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cngnO1xuXG5leHBvcnQge1xuICBsaWssXG4gIHNtYXJ0cngsXG59XG5cbi8vIHRoaXJkIHBhcnR5IHNjb3BlXG5pbXBvcnQgKiBhcyBwYXRoVG9SZWdFeHAgZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5leHBvcnQgeyBwYXRoVG9SZWdFeHAgfTtcbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vc21hcnRyb3V0ZXIucGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeVBhcmFtcyB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgZ2V0QWxsQXNPYmplY3QoKSB7XG4gICAgY29uc3QgdXJsU2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKCh1cmxTZWFyY2hQYXJhbXMgYXMgYW55KS5lbnRyaWVzKCkpO1xuICB9XG5cbiAgcHVibGljIHNldFF1ZXJ5UGFyYW0oXG4gICAgcXVlcnlLZXlBcmc6IHN0cmluZyxcbiAgICBxdWVyeUNvbnRlbnRBcmc6IHN0cmluZyxcbiAgICBwdXNoT3JSZXBsYWNlQXJnOiAncHVzaCcgfCAncmVwbGFjZScgPSAncmVwbGFjZSdcbiAgKSB7XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICBxdWVyeVBhcmFtcy5zZXQocXVlcnlLZXlBcmcsIHF1ZXJ5Q29udGVudEFyZyk7XG4gICAgcHVzaE9yUmVwbGFjZUFyZyA9PT0gJ3B1c2gnXG4gICAgICA/IGhpc3RvcnkucHVzaFN0YXRlKG51bGwsIG51bGwsICc/JyArIHF1ZXJ5UGFyYW1zLnRvU3RyaW5nKCkpXG4gICAgICA6IGhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsIG51bGwsICc/JyArIHF1ZXJ5UGFyYW1zLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZVF1ZXJ5UGFyYW0ocXVlcnlLZXlBcmc6IHN0cmluZywgcHVzaE9yUmVwbGFjZUFyZzogJ3B1c2gnIHwgJ3JlcGxhY2UnID0gJ3JlcGxhY2UnKSB7XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICBxdWVyeVBhcmFtcy5kZWxldGUocXVlcnlLZXlBcmcpO1xuICAgIHB1c2hPclJlcGxhY2VBcmcgPT09ICdwdXNoJ1xuICAgICAgPyBoaXN0b3J5LnB1c2hTdGF0ZShudWxsLCBudWxsLCAnPycgKyBxdWVyeVBhcmFtcy50b1N0cmluZygpKVxuICAgICAgOiBoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCBudWxsLCAnPycgKyBxdWVyeVBhcmFtcy50b1N0cmluZygpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRRdWVyeVBhcmFtKHF1ZXJ5UGFyYW1OYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMuZ2V0QWxsQXNPYmplY3QoKTtcbiAgICByZXR1cm4gcXVlcnlQYXJhbXNbcXVlcnlQYXJhbU5hbWVdO1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0cm91dGVyLnBsdWdpbnMuanMnO1xuXG5pbXBvcnQgeyBRdWVyeVBhcmFtcyB9IGZyb20gJy4vc21hcnRyb3V0ZXIuY2xhc3Nlcy5xdWVyeXBhcmFtcy5qcyc7XG5cbmNvbnN0IHJvdXRlTG9nID0gKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICBjb25zb2xlLmxvZyhgJWNbUm91dGVyXSVjICR7bWVzc2FnZX1gLCAnY29sb3I6IHJnYigyNTUsIDEwNSwgMTAwKTsnLCAnY29sb3I6IGluaGVyaXQnKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlck9wdGlvbnMge1xuICBkZWJ1Zz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFRIYW5kbGVyRnVuY3Rpb24gPSA8VCBleHRlbmRzIG9iamVjdD4ocm91dGVBcmc6IElSb3V0ZUluZm8pID0+IFByb21pc2U8YW55PjtcbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlSW5mbyB7XG4gIHBhdGg6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbiAgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBxdWVyeVBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBSb3V0ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFNtYXJ0Um91dGVyIHtcbiAgcHVibGljIG9wdGlvbnM6IElSb3V0ZXJPcHRpb25zID0ge1xuICAgIGRlYnVnOiBmYWxzZSxcbiAgfTtcblxuICBwdWJsaWMgcXVlcnlQYXJhbXMgPSBuZXcgUXVlcnlQYXJhbXMoKTtcblxuICAvKipcbiAgICogdGhlIHJvdXRlcyB3ZSBhcmUgaGFuZGxpbmdcbiAgICovXG4gIHB1YmxpYyByb3V0ZXM6IEFycmF5PHtcbiAgICBtYXRjaEZ1bmN0aW9uOiBwbHVnaW5zLnBhdGhUb1JlZ0V4cC5NYXRjaEZ1bmN0aW9uPGFueT47XG4gICAgaGFuZGxlcjogVEhhbmRsZXJGdW5jdGlvbjtcbiAgfT4gPSBbXTtcblxuICAvKipcbiAgICogYmFzZSBwYXRoIGZvciB0aGlzIHJvdXRlclxuICAgKi9cbiAgcHJpdmF0ZSBiYXNlUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyIGZ1bmN0aW9uIGZvciBjbGVhbnVwXG4gICAqL1xuICBwcml2YXRlIHBvcHN0YXRlTGlzdGVuZXI6IChldmVudDogUG9wU3RhdGVFdmVudCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSb3V0ZXIuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zQXJnOiBJUm91dGVyT3B0aW9ucywgYmFzZVBhdGg6IHN0cmluZyA9ICcnKSB7XG4gICAgLy8gbGV0cyBzZXQgdGhlIHJvdXRlciBvcHRpb25zXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgLi4ub3B0aW9uc0FyZyxcbiAgICB9O1xuICAgIHRoaXMuYmFzZVBhdGggPSBiYXNlUGF0aDtcblxuICAgIC8vIGxldHMgc3Vic2NyaWJlIHRvIHJvdXRlIGNoYW5nZXNcbiAgICB0aGlzLnBvcHN0YXRlTGlzdGVuZXIgPSAocG9wU3RhdGVFdmVudEFyZykgPT4ge1xuICAgICAgcG9wU3RhdGVFdmVudEFyZy5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpO1xuICAgIH07XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgdGhpcy5wb3BzdGF0ZUxpc3RlbmVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzdWItcm91dGVyIHdpdGggYSBzcGVjaWZpYyBwcmVmaXhcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN1YlBhdGhcbiAgICogQHBhcmFtIHtJUm91dGVyT3B0aW9uc30gW29wdGlvbnNdXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlU3ViUm91dGVyKHN1YlBhdGg6IHN0cmluZywgb3B0aW9ucz86IElSb3V0ZXJPcHRpb25zKTogU21hcnRSb3V0ZXIge1xuICAgIGNvbnN0IG5ld0Jhc2VQYXRoID0gYCR7dGhpcy5iYXNlUGF0aH0ke3N1YlBhdGh9YDtcbiAgICByZXR1cm4gbmV3IFNtYXJ0Um91dGVyKHsgLi4udGhpcy5vcHRpb25zLCAuLi5vcHRpb25zIH0sIG5ld0Jhc2VQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdXNoIHJvdXRlIHN0YXRlIHRvIGhpc3Rvcnkgc3RhY2tcbiAgICovXG4gIHB1YmxpYyBhc3luYyBwdXNoVXJsKHVybDogc3RyaW5nID0gJy8nLCBzdGF0ZTogYW55ID0ge30pIHtcbiAgICBjb25zdCBmdWxsVXJsID0gYCR7dGhpcy5iYXNlUGF0aH0ke3VybH1gO1xuICAgIGlmIChmdWxsVXJsICE9PSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpIHtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShzdGF0ZSwgd2luZG93LmRvY3VtZW50LnRpdGxlLCBmdWxsVXJsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHN0YXRlLCB3aW5kb3cuZG9jdW1lbnQudGl0bGUsIGZ1bGxVcmwpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLl9oYW5kbGVSb3V0ZVN0YXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoIHJvdXRlIHdpdGggaGFuZGxlclxuICAgKiBAcGFyYW0ge3N0cmluZ3xSZWdFeHB9IHJvdXRlQXJnXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGhhbmRsZXJBcmdcbiAgICovXG4gIHB1YmxpYyBvbihyb3V0ZUFyZzogc3RyaW5nLCBoYW5kbGVyQXJnOiBUSGFuZGxlckZ1bmN0aW9uKSB7XG4gICAgY29uc3QgZnVsbFJvdXRlID0gYCR7dGhpcy5iYXNlUGF0aH0ke3JvdXRlQXJnfWA7XG4gICAgY29uc3Qgcm91dGVPYmplY3QgPSB7XG4gICAgICBtYXRjaEZ1bmN0aW9uOiBwbHVnaW5zLnBhdGhUb1JlZ0V4cC5tYXRjaChmdWxsUm91dGUpLFxuICAgICAgaGFuZGxlcjogaGFuZGxlckFyZyxcbiAgICB9O1xuICAgIHRoaXMucm91dGVzLnB1c2gocm91dGVPYmplY3QpO1xuICAgIGNvbnN0IHJlbW92ZUZ1bmN0aW9uID0gKCkgPT4ge1xuICAgICAgdGhpcy5yb3V0ZXMuc3BsaWNlKHRoaXMucm91dGVzLmluZGV4T2Yocm91dGVPYmplY3QpLCAxKTtcbiAgICB9O1xuICAgIHJldHVybiByZW1vdmVGdW5jdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSByb3V0ZXMgaGFuZGxlciB0byBjdXJyZW50IHJvdXRlXG4gICAqL1xuICBhc3luYyBfaGFuZGxlUm91dGVTdGF0ZSgpIHtcbiAgICBjb25zdCBjdXJyZW50TG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG5cbiAgICAvLyBsZXRzIGZpbmQgYWxsIHdhbnRlZCByb3V0ZXMuXG4gICAgY29uc3Qgd2FudGVkUm91dGVzID0gdGhpcy5yb3V0ZXMuZmlsdGVyKChyb3V0ZUFyZykgPT4ge1xuICAgICAgcmV0dXJuICEhcm91dGVBcmcubWF0Y2hGdW5jdGlvbihjdXJyZW50TG9jYXRpb24pO1xuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCB3YW50ZWRSb3V0ZSBvZiB3YW50ZWRSb3V0ZXMpIHtcbiAgICAgIGNvbnN0IHJvdXRlUmVzdWx0ID0gd2FudGVkUm91dGUubWF0Y2hGdW5jdGlvbihjdXJyZW50TG9jYXRpb24pO1xuICAgICAgd2FudGVkUm91dGUuaGFuZGxlcih7XG4gICAgICAgIC4uLihyb3V0ZVJlc3VsdC52YWx1ZU9mKCkgYXMgT2JqZWN0KSxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHRoaXMucXVlcnlQYXJhbXMuZ2V0QWxsQXNPYmplY3QoKSwgLy8gVE9ETyBjaGVjayB3ZXRoZXIgZW50cmllcyBpcyBzdXBwb3J0ZWQgaW4gdHlwaW5nc1xuICAgICAgfSBhcyBJUm91dGVJbmZvKTsgLy8gbm90IHdhaXRpbmcgaGVyZVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95IHRoZSByb3V0ZXIgaW5zdGFuY2UsIHJlbW92aW5nIGFsbCBleHRlcm5hbCByZWZlcmVuY2VzXG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICAvLyBSZW1vdmUgdGhlIGV2ZW50IGxpc3RlbmVyIGZvciBwb3BzdGF0ZVxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMucG9wc3RhdGVMaXN0ZW5lcik7XG4gICAgLy8gQ2xlYXIgYWxsIHJvdXRlc1xuICAgIHRoaXMucm91dGVzID0gW107XG4gIH1cbn0iLCAiZXhwb3J0ICogZnJvbSAnLi9zbWFydHJvdXRlci5jbGFzc2VzLnNtYXJ0cm91dGVyLmpzJztcbiIsICIvLyBwdXNocm9ja3Mgc2NvcGVcbmltcG9ydCAqIGFzIHNtYXJ0ZW52IGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0ZW52JztcbmltcG9ydCAqIGFzIHNtYXJ0anNvbiBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydGpzb24nO1xuXG5leHBvcnQge1xuICBzbWFydGVudixcbiAgc21hcnRqc29uXG59OyIsICIvKipcbiAqIFB1cmUgSmF2YVNjcmlwdCBTSEEyNTYgaW1wbGVtZW50YXRpb25cbiAqIFVzZWQgYXMgZmFsbGJhY2sgd2hlbiBjcnlwdG8uc3VidGxlIGlzIG5vdCBhdmFpbGFibGUgKG5vbi1IVFRQUyBjb250ZXh0cylcbiAqL1xuXG4vKipcbiAqIFNIQTI1NiBjb25zdGFudHNcbiAqL1xuY29uc3QgSzogbnVtYmVyW10gPSBbXG4gIDB4NDI4YTJmOTgsIDB4NzEzNzQ0OTEsIDB4YjVjMGZiY2YsIDB4ZTliNWRiYTUsIDB4Mzk1NmMyNWIsIDB4NTlmMTExZjEsIDB4OTIzZjgyYTQsIDB4YWIxYzVlZDUsXG4gIDB4ZDgwN2FhOTgsIDB4MTI4MzViMDEsIDB4MjQzMTg1YmUsIDB4NTUwYzdkYzMsIDB4NzJiZTVkNzQsIDB4ODBkZWIxZmUsIDB4OWJkYzA2YTcsIDB4YzE5YmYxNzQsXG4gIDB4ZTQ5YjY5YzEsIDB4ZWZiZTQ3ODYsIDB4MGZjMTlkYzYsIDB4MjQwY2ExY2MsIDB4MmRlOTJjNmYsIDB4NGE3NDg0YWEsIDB4NWNiMGE5ZGMsIDB4NzZmOTg4ZGEsXG4gIDB4OTgzZTUxNTIsIDB4YTgzMWM2NmQsIDB4YjAwMzI3YzgsIDB4YmY1OTdmYzcsIDB4YzZlMDBiZjMsIDB4ZDVhNzkxNDcsIDB4MDZjYTYzNTEsIDB4MTQyOTI5NjcsXG4gIDB4MjdiNzBhODUsIDB4MmUxYjIxMzgsIDB4NGQyYzZkZmMsIDB4NTMzODBkMTMsIDB4NjUwYTczNTQsIDB4NzY2YTBhYmIsIDB4ODFjMmM5MmUsIDB4OTI3MjJjODUsXG4gIDB4YTJiZmU4YTEsIDB4YTgxYTY2NGIsIDB4YzI0YjhiNzAsIDB4Yzc2YzUxYTMsIDB4ZDE5MmU4MTksIDB4ZDY5OTA2MjQsIDB4ZjQwZTM1ODUsIDB4MTA2YWEwNzAsXG4gIDB4MTlhNGMxMTYsIDB4MWUzNzZjMDgsIDB4Mjc0ODc3NGMsIDB4MzRiMGJjYjUsIDB4MzkxYzBjYjMsIDB4NGVkOGFhNGEsIDB4NWI5Y2NhNGYsIDB4NjgyZTZmZjMsXG4gIDB4NzQ4ZjgyZWUsIDB4NzhhNTYzNmYsIDB4ODRjODc4MTQsIDB4OGNjNzAyMDgsIDB4OTBiZWZmZmEsIDB4YTQ1MDZjZWIsIDB4YmVmOWEzZjcsIDB4YzY3MTc4ZjJcbl07XG5cbi8qKlxuICogSW5pdGlhbCBoYXNoIHZhbHVlc1xuICovXG5jb25zdCBIOiBudW1iZXJbXSA9IFtcbiAgMHg2YTA5ZTY2NywgMHhiYjY3YWU4NSwgMHgzYzZlZjM3MiwgMHhhNTRmZjUzYSxcbiAgMHg1MTBlNTI3ZiwgMHg5YjA1Njg4YywgMHgxZjgzZDlhYiwgMHg1YmUwY2QxOVxuXTtcblxuLyoqXG4gKiBSb3RhdGUgcmlnaHRcbiAqL1xuZnVuY3Rpb24gcm90cihuOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiAobiA+Pj4gYikgfCAobiA8PCAoMzIgLSBiKSk7XG59XG5cbi8qKlxuICogU0hBMjU2IGNvbXByZXNzaW9uIGZ1bmN0aW9uXG4gKi9cbmZ1bmN0aW9uIHNoYTI1NlRyYW5zZm9ybShXOiBudW1iZXJbXSwgSDogbnVtYmVyW10pOiB2b2lkIHtcbiAgbGV0IGEgPSBIWzBdO1xuICBsZXQgYiA9IEhbMV07XG4gIGxldCBjID0gSFsyXTtcbiAgbGV0IGQgPSBIWzNdO1xuICBsZXQgZSA9IEhbNF07XG4gIGxldCBmID0gSFs1XTtcbiAgbGV0IGcgPSBIWzZdO1xuICBsZXQgaCA9IEhbN107XG4gIFxuICBmb3IgKGxldCBqID0gMDsgaiA8IDY0OyBqKyspIHtcbiAgICBpZiAoaiA+PSAxNikge1xuICAgICAgY29uc3QgczAgPSByb3RyKFdbaiAtIDE1XSwgNykgXiByb3RyKFdbaiAtIDE1XSwgMTgpIF4gKFdbaiAtIDE1XSA+Pj4gMyk7XG4gICAgICBjb25zdCBzMSA9IHJvdHIoV1tqIC0gMl0sIDE3KSBeIHJvdHIoV1tqIC0gMl0sIDE5KSBeIChXW2ogLSAyXSA+Pj4gMTApO1xuICAgICAgV1tqXSA9IChXW2ogLSAxNl0gKyBzMCArIFdbaiAtIDddICsgczEpID4+PiAwO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBTMSA9IHJvdHIoZSwgNikgXiByb3RyKGUsIDExKSBeIHJvdHIoZSwgMjUpO1xuICAgIGNvbnN0IGNoID0gKGUgJiBmKSBeICgofmUpICYgZyk7XG4gICAgY29uc3QgdGVtcDEgPSAoaCArIFMxICsgY2ggKyBLW2pdICsgV1tqXSkgPj4+IDA7XG4gICAgXG4gICAgY29uc3QgUzAgPSByb3RyKGEsIDIpIF4gcm90cihhLCAxMykgXiByb3RyKGEsIDIyKTtcbiAgICBjb25zdCBtYWogPSAoYSAmIGIpIF4gKGEgJiBjKSBeIChiICYgYyk7XG4gICAgY29uc3QgdGVtcDIgPSAoUzAgKyBtYWopID4+PiAwO1xuICAgIFxuICAgIGggPSBnO1xuICAgIGcgPSBmO1xuICAgIGYgPSBlO1xuICAgIGUgPSAoZCArIHRlbXAxKSA+Pj4gMDtcbiAgICBkID0gYztcbiAgICBjID0gYjtcbiAgICBiID0gYTtcbiAgICBhID0gKHRlbXAxICsgdGVtcDIpID4+PiAwO1xuICB9XG4gIFxuICBIWzBdID0gKEhbMF0gKyBhKSA+Pj4gMDtcbiAgSFsxXSA9IChIWzFdICsgYikgPj4+IDA7XG4gIEhbMl0gPSAoSFsyXSArIGMpID4+PiAwO1xuICBIWzNdID0gKEhbM10gKyBkKSA+Pj4gMDtcbiAgSFs0XSA9IChIWzRdICsgZSkgPj4+IDA7XG4gIEhbNV0gPSAoSFs1XSArIGYpID4+PiAwO1xuICBIWzZdID0gKEhbNl0gKyBnKSA+Pj4gMDtcbiAgSFs3XSA9IChIWzddICsgaCkgPj4+IDA7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIFNIQTI1NiBoYXNoIGZyb20gYnl0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoYTI1NkZhbGxiYWNrKGJ5dGVzOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgY29uc3QgSF9jb3B5ID0gWy4uLkhdO1xuICBjb25zdCBtc2dMZW4gPSBieXRlcy5sZW5ndGg7XG4gIGNvbnN0IG1zZ0JpdExlbiA9IG1zZ0xlbiAqIDg7XG4gIFxuICAvLyBQYWRkaW5nXG4gIGNvbnN0IHBhZExlbiA9IChtc2dMZW4gJSA2NCA8IDU2KSA/IDU2IC0gKG1zZ0xlbiAlIDY0KSA6IDEyMCAtIChtc2dMZW4gJSA2NCk7XG4gIGNvbnN0IHBhZGRlZCA9IG5ldyBVaW50OEFycmF5KG1zZ0xlbiArIHBhZExlbiArIDgpO1xuICBwYWRkZWQuc2V0KGJ5dGVzKTtcbiAgcGFkZGVkW21zZ0xlbl0gPSAweDgwO1xuICBcbiAgLy8gQXBwZW5kIGxlbmd0aCAoNjQtYml0IGJpZy1lbmRpYW4pXG4gIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KHBhZGRlZC5idWZmZXIpO1xuICBkYXRhVmlldy5zZXRVaW50MzIocGFkZGVkLmxlbmd0aCAtIDgsIDAsIGZhbHNlKTsgLy8gaGlnaCAzMiBiaXRzXG4gIGRhdGFWaWV3LnNldFVpbnQzMihwYWRkZWQubGVuZ3RoIC0gNCwgbXNnQml0TGVuID4+PiAwLCBmYWxzZSk7IC8vIGxvdyAzMiBiaXRzXG4gIFxuICAvLyBQcm9jZXNzIGJsb2Nrc1xuICBmb3IgKGxldCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBwYWRkZWQubGVuZ3RoOyBvZmZzZXQgKz0gNjQpIHtcbiAgICBjb25zdCBXID0gbmV3IEFycmF5KDY0KTtcbiAgICBcbiAgICAvLyBDb3B5IGJsb2NrIGludG8gV1swLi4xNV1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE2OyBpKyspIHtcbiAgICAgIFdbaV0gPSBkYXRhVmlldy5nZXRVaW50MzIob2Zmc2V0ICsgaSAqIDQsIGZhbHNlKTtcbiAgICB9XG4gICAgXG4gICAgc2hhMjU2VHJhbnNmb3JtKFcsIEhfY29weSk7XG4gIH1cbiAgXG4gIC8vIENvbnZlcnQgdG8gaGV4IHN0cmluZ1xuICBsZXQgaGV4ID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgODsgaSsrKSB7XG4gICAgaGV4ICs9IEhfY29weVtpXS50b1N0cmluZygxNikucGFkU3RhcnQoOCwgJzAnKTtcbiAgfVxuICBcbiAgcmV0dXJuIGhleDtcbn0iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3BsdWdpbnMuanMnO1xuaW1wb3J0IHsgc2hhMjU2RmFsbGJhY2sgfSBmcm9tICcuL3NoYTI1Ni5mYWxsYmFjay5qcyc7XG5cbi8qKlxuICogQ29udmVydCBBcnJheUJ1ZmZlciB0byBoZXggc3RyaW5nXG4gKi9cbmNvbnN0IGhleCA9IChidWZmZXI6IEFycmF5QnVmZmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgaGV4Q29kZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2aWV3LmJ5dGVMZW5ndGg7IGkgKz0gNCkge1xuICAgIC8vIFVzaW5nIGdldFVpbnQzMiByZWR1Y2VzIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBuZWVkZWQgKHdlIHByb2Nlc3MgNCBieXRlcyBlYWNoIHRpbWUpXG4gICAgY29uc3QgdmFsdWUgPSB2aWV3LmdldFVpbnQzMihpKTtcbiAgICAvLyB0b1N0cmluZygxNikgd2lsbCBnaXZlIHRoZSBoZXggcmVwcmVzZW50YXRpb24gb2YgdGhlIG51bWJlciB3aXRob3V0IHBhZGRpbmdcbiAgICBjb25zdCBzdHJpbmdWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKDE2KTtcbiAgICAvLyBXZSB1c2UgY29uY2F0ZW5hdGlvbiBhbmQgc2xpY2UgZm9yIHBhZGRpbmdcbiAgICBjb25zdCBwYWRkaW5nID0gJzAwMDAwMDAwJztcbiAgICBjb25zdCBwYWRkZWRWYWx1ZSA9IChwYWRkaW5nICsgc3RyaW5nVmFsdWUpLnNsaWNlKC1wYWRkaW5nLmxlbmd0aCk7XG4gICAgaGV4Q29kZXMucHVzaChwYWRkZWRWYWx1ZSk7XG4gIH1cblxuICAvLyBKb2luIGFsbCB0aGUgaGV4IHN0cmluZ3MgaW50byBvbmVcbiAgcmV0dXJuIGhleENvZGVzLmpvaW4oXCJcIik7XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIGNyeXB0by5zdWJ0bGUgaXMgYXZhaWxhYmxlXG4gKi9cbmNvbnN0IGlzQ3J5cHRvU3VidGxlQXZhaWxhYmxlID0gKCk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gdHlwZW9mIGNyeXB0byAhPT0gJ3VuZGVmaW5lZCcgJiYgY3J5cHRvLnN1YnRsZSAhPT0gdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBDb21wdXRlcyBzaGEyNTYgSGFzaCBmcm9tIFN0cmluZ1xuICovXG5leHBvcnQgY29uc3Qgc2hhMjU2RnJvbVN0cmluZyA9IGFzeW5jIChzdHJpbmdBcmc6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIC8vIEdldCB0aGUgc3RyaW5nIGFzIGFycmF5YnVmZmVyLlxuICBjb25zdCBidWZmZXIgPSAobmV3IFRleHRFbmNvZGVyKCkpLmVuY29kZShzdHJpbmdBcmcpO1xuICBcbiAgaWYgKGlzQ3J5cHRvU3VidGxlQXZhaWxhYmxlKCkpIHtcbiAgICBjb25zdCBoYXNoID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoXCJTSEEtMjU2XCIsIGJ1ZmZlcik7XG4gICAgY29uc3QgcmVzdWx0ID0gaGV4KGhhc2gpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlIGZhbGxiYWNrIGZvciBub24tSFRUUFMgZW52aXJvbm1lbnRzXG4gICAgcmV0dXJuIHNoYTI1NkZhbGxiYWNrKGJ1ZmZlcik7XG4gIH1cbn07XG5cbi8qKlxuICogQ29tcHV0ZXMgc2hhMjU2IEhhc2ggZnJvbSBTdHJpbmcgc3luY2hyb25vdXNseVxuICogTm90ZTogSW4gYnJvd3NlciBlbnZpcm9ubWVudCwgdGhpcyBpcyBzdGlsbCBhc3luYyBpbnRlcm5hbGx5IGJ1dCB3ZSBtYWludGFpbiB0aGUgQVBJXG4gKi9cbmV4cG9ydCBjb25zdCBzaGEyNTZGcm9tU3RyaW5nU3luYyA9IChzdHJpbmdBcmc6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnNvbGUud2Fybignc2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHRydWx5IHN5bmNocm9ub3VzIGluIGJyb3dzZXIgZW52aXJvbm1lbnQnKTtcbiAgdGhyb3cgbmV3IEVycm9yKCdzaGEyNTZGcm9tU3RyaW5nU3luYyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFVzZSBzaGEyNTZGcm9tU3RyaW5nIGluc3RlYWQuJyk7XG59O1xuXG4vKipcbiAqIENvbXB1dGVzIHNoYTI1NiBIYXNoIGZyb20gQXJyYXlCdWZmZXJcbiAqL1xuZXhwb3J0IGNvbnN0IHNoYTI1NkZyb21CdWZmZXIgPSBhc3luYyAoYnVmZmVyQXJnOiBBcnJheUJ1ZmZlciB8IFVpbnQ4QXJyYXkpOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICBpZiAoaXNDcnlwdG9TdWJ0bGVBdmFpbGFibGUoKSkge1xuICAgIC8vIEVuc3VyZSB3ZSBwYXNzIGFuIEFycmF5QnVmZmVyIHRvIHNhdGlzZnkgQnVmZmVyU291cmNlIHR5cGluZ1xuICAgIGxldCBpbnB1dEJ1ZmZlcjogQXJyYXlCdWZmZXI7XG4gICAgaWYgKGJ1ZmZlckFyZyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgIGNvbnN0IHZpZXcgPSBidWZmZXJBcmc7XG4gICAgICBpbnB1dEJ1ZmZlciA9IHZpZXcuYnVmZmVyLnNsaWNlKFxuICAgICAgICB2aWV3LmJ5dGVPZmZzZXQsXG4gICAgICAgIHZpZXcuYnl0ZU9mZnNldCArIHZpZXcuYnl0ZUxlbmd0aFxuICAgICAgKSBhcyBBcnJheUJ1ZmZlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5wdXRCdWZmZXIgPSBidWZmZXJBcmc7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzaCA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KFwiU0hBLTI1NlwiLCBpbnB1dEJ1ZmZlcik7XG4gICAgY29uc3QgcmVzdWx0ID0gaGV4KGhhc2gpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlIGZhbGxiYWNrIGZvciBub24tSFRUUFMgZW52aXJvbm1lbnRzXG4gICAgY29uc3QgdWludDhBcnJheSA9IGJ1ZmZlckFyZyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgPyBidWZmZXJBcmcgOiBuZXcgVWludDhBcnJheShidWZmZXJBcmcpO1xuICAgIHJldHVybiBzaGEyNTZGYWxsYmFjayh1aW50OEFycmF5KTtcbiAgfVxufTtcblxuLyoqXG4gKiBjb21wdXRlcyBzaGEyNjUgSGFzaCBmcm9tIE9iamVjdFxuICovXG5leHBvcnQgY29uc3Qgc2hhMjY1RnJvbU9iamVjdCA9IGFzeW5jIChvYmplY3RBcmc6IGFueSk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHN0cmluZ2lmaWVkT2JqZWN0ID0gcGx1Z2lucy5zbWFydGpzb24uc3RyaW5naWZ5KG9iamVjdEFyZyk7XG4gIGNvbnN0IGhhc2hSZXN1bHQgPSBhd2FpdCBzaGEyNTZGcm9tU3RyaW5nKHN0cmluZ2lmaWVkT2JqZWN0KTtcbiAgcmV0dXJuIGhhc2hSZXN1bHQ7XG59O1xuXG4vKipcbiAqIGNyZWF0ZXMgc2hhMjU2IEhhc2ggZnJvbSBTdHJlYW1cbiAqIE5vdGU6IE5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudFxuICovXG5leHBvcnQgY29uc3Qgc2hhMjU2RnJvbVN0cmVhbSA9IChpbnB1dDogYW55KTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKCdzaGEyNTZGcm9tU3RyZWFtIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudCcpO1xufTtcblxuLyoqXG4gKiBjcmVhdGVzIHNoYTI1NiBIYXNoIGZyb20gRmlsZVxuICogTm90ZTogTm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50XG4gKi9cbmV4cG9ydCBjb25zdCBzaGEyNTZGcm9tRmlsZSA9IGFzeW5jIChmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKCdzaGEyNTZGcm9tRmlsZSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQnKTtcbn07XG5cbi8qKlxuICogQ29tcHV0ZXMgTUQ1IEhhc2ggZnJvbSBTdHJpbmdcbiAqIE5vdGU6IE1ENSBpcyBub3QgbmF0aXZlbHkgc3VwcG9ydGVkIGJ5IFdlYiBDcnlwdG8gQVBJXG4gKi9cbmV4cG9ydCBjb25zdCBtZDVGcm9tU3RyaW5nID0gYXN5bmMgKHN0cmluZ1RvSGFzaDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKCdtZDVGcm9tU3RyaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudC4gV2ViIENyeXB0byBBUEkgZG9lcyBub3Qgc3VwcG9ydCBNRDUuJyk7XG59O1xuIiwgImltcG9ydCAqIGFzIHNtYXJ0aGFzaFdlYiBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydGhhc2gvd2ViJztcbmltcG9ydCAqIGFzIHNtYXJ0anNvbiBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydGpzb24nO1xuaW1wb3J0ICogYXMgc21hcnRwcm9taXNlIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSc7XG5pbXBvcnQgKiBhcyBzbWFydHJ4IGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cngnO1xuaW1wb3J0ICogYXMgd2Vic3RvcmUgZnJvbSAnQHB1c2gucm9ja3Mvd2Vic3RvcmUnO1xuXG5leHBvcnQgeyBzbWFydGhhc2hXZWIsIHNtYXJ0anNvbiwgc21hcnRwcm9taXNlLCBzbWFydHJ4LCB3ZWJzdG9yZSB9O1xuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9zbWFydHN0YXRlLnBsdWdpbnMuanMnO1xuaW1wb3J0IHsgU3RhdGVQYXJ0IH0gZnJvbSAnLi9zbWFydHN0YXRlLmNsYXNzZXMuc3RhdGVwYXJ0LmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQWN0aW9uRGVmPFRTdGF0ZVR5cGUsIFRBY3Rpb25QYXlsb2FkVHlwZT4ge1xuICAoc3RhdGVBcmc6IFN0YXRlUGFydDxhbnksIFRTdGF0ZVR5cGU+LCBhY3Rpb25QYXlsb2FkOiBUQWN0aW9uUGF5bG9hZFR5cGUpOiBQcm9taXNlPFRTdGF0ZVR5cGU+O1xufVxuXG4vKipcbiAqIGFuIGFjdGlvbm1vZGlmaWVyIGZvciB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YXRlQWN0aW9uPFRTdGF0ZVR5cGUsIFRBY3Rpb25QYXlsb2FkVHlwZT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3RhdGVQYXJ0UmVmOiBTdGF0ZVBhcnQ8YW55LCBhbnk+LFxuICAgIHB1YmxpYyBhY3Rpb25EZWY6IElBY3Rpb25EZWY8VFN0YXRlVHlwZSwgVEFjdGlvblBheWxvYWRUeXBlPlxuICApIHt9XG5cbiAgcHVibGljIHRyaWdnZXIocGF5bG9hZDogVEFjdGlvblBheWxvYWRUeXBlKTogUHJvbWlzZTxUU3RhdGVUeXBlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVQYXJ0UmVmLmRpc3BhdGNoQWN0aW9uKHRoaXMsIHBheWxvYWQpO1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0c3RhdGUucGx1Z2lucy5qcyc7XG5pbXBvcnQgeyBTdGF0ZUFjdGlvbiwgdHlwZSBJQWN0aW9uRGVmIH0gZnJvbSAnLi9zbWFydHN0YXRlLmNsYXNzZXMuc3RhdGVhY3Rpb24uanMnO1xuXG5leHBvcnQgY2xhc3MgU3RhdGVQYXJ0PFRTdGF0ZVBhcnROYW1lLCBUU3RhdGVQYXlsb2FkPiB7XG4gIHB1YmxpYyBuYW1lOiBUU3RhdGVQYXJ0TmFtZTtcbiAgcHVibGljIHN0YXRlID0gbmV3IHBsdWdpbnMuc21hcnRyeC5yeGpzLlN1YmplY3Q8VFN0YXRlUGF5bG9hZD4oKTtcbiAgcHVibGljIHN0YXRlU3RvcmU6IFRTdGF0ZVBheWxvYWQgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgY3VtdWxhdGl2ZURlZmVycmVkID0gcGx1Z2lucy5zbWFydHByb21pc2UuY3VtdWxhdGl2ZURlZmVyKCk7XG5cbiAgcHJpdmF0ZSB3ZWJTdG9yZU9wdGlvbnM6IHBsdWdpbnMud2Vic3RvcmUuSVdlYlN0b3JlT3B0aW9ucztcbiAgcHJpdmF0ZSB3ZWJTdG9yZTogcGx1Z2lucy53ZWJzdG9yZS5XZWJTdG9yZTxUU3RhdGVQYXlsb2FkPiB8IG51bGwgPSBudWxsOyAvLyBBZGQgV2ViU3RvcmUgaW5zdGFuY2VcblxuICBjb25zdHJ1Y3RvcihuYW1lQXJnOiBUU3RhdGVQYXJ0TmFtZSwgd2ViU3RvcmVPcHRpb25zQXJnPzogcGx1Z2lucy53ZWJzdG9yZS5JV2ViU3RvcmVPcHRpb25zKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZUFyZztcblxuICAgIC8vIEluaXRpYWxpemUgV2ViU3RvcmUgaWYgd2ViU3RvcmVPcHRpb25zIGFyZSBwcm92aWRlZFxuICAgIGlmICh3ZWJTdG9yZU9wdGlvbnNBcmcpIHtcbiAgICAgIHRoaXMud2ViU3RvcmVPcHRpb25zID0gd2ViU3RvcmVPcHRpb25zQXJnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBpbml0aWFsaXplcyB0aGUgd2Vic3RvcmVcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpbml0KCkge1xuICAgIGlmICh0aGlzLndlYlN0b3JlT3B0aW9ucykge1xuICAgICAgdGhpcy53ZWJTdG9yZSA9IG5ldyBwbHVnaW5zLndlYnN0b3JlLldlYlN0b3JlPFRTdGF0ZVBheWxvYWQ+KHRoaXMud2ViU3RvcmVPcHRpb25zKTtcbiAgICAgIGF3YWl0IHRoaXMud2ViU3RvcmUuaW5pdCgpO1xuICAgICAgY29uc3Qgc3RvcmVkU3RhdGUgPSBhd2FpdCB0aGlzLndlYlN0b3JlLmdldChTdHJpbmcodGhpcy5uYW1lKSk7XG4gICAgICBpZiAoc3RvcmVkU3RhdGUgJiYgdGhpcy52YWxpZGF0ZVN0YXRlKHN0b3JlZFN0YXRlKSkge1xuICAgICAgICB0aGlzLnN0YXRlU3RvcmUgPSBzdG9yZWRTdGF0ZTtcbiAgICAgICAgYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogZ2V0cyB0aGUgc3RhdGUgZnJvbSB0aGUgc3RhdGUgc3RvcmVcbiAgICovXG4gIHB1YmxpYyBnZXRTdGF0ZSgpOiBUU3RhdGVQYXlsb2FkIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVN0b3JlO1xuICB9XG5cbiAgLyoqXG4gICAqIHNldHMgdGhlIHN0YXRlU3RvcmUgdG8gdGhlIG5ldyBzdGF0ZVxuICAgKiBAcGFyYW0gbmV3U3RhdGVBcmdcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXRTdGF0ZShuZXdTdGF0ZUFyZzogVFN0YXRlUGF5bG9hZCkge1xuICAgIC8vIFZhbGlkYXRlIHN0YXRlIHN0cnVjdHVyZVxuICAgIGlmICghdGhpcy52YWxpZGF0ZVN0YXRlKG5ld1N0YXRlQXJnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN0YXRlIHN0cnVjdHVyZSBmb3Igc3RhdGUgcGFydCAnJHt0aGlzLm5hbWV9J2ApO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLnN0YXRlU3RvcmUgPSBuZXdTdGF0ZUFyZztcbiAgICBhd2FpdCB0aGlzLm5vdGlmeUNoYW5nZSgpO1xuICAgIFxuICAgIC8vIFNhdmUgc3RhdGUgdG8gV2ViU3RvcmUgaWYgaW5pdGlhbGl6ZWRcbiAgICBpZiAodGhpcy53ZWJTdG9yZSkge1xuICAgICAgYXdhaXQgdGhpcy53ZWJTdG9yZS5zZXQoU3RyaW5nKHRoaXMubmFtZSksIG5ld1N0YXRlQXJnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVTdG9yZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgc3RhdGUgc3RydWN0dXJlIC0gY2FuIGJlIG92ZXJyaWRkZW4gZm9yIGN1c3RvbSB2YWxpZGF0aW9uXG4gICAqIEBwYXJhbSBzdGF0ZUFyZ1xuICAgKi9cbiAgcHJvdGVjdGVkIHZhbGlkYXRlU3RhdGUoc3RhdGVBcmc6IGFueSk6IHN0YXRlQXJnIGlzIFRTdGF0ZVBheWxvYWQge1xuICAgIC8vIEJhc2ljIHZhbGlkYXRpb24gLSBlbnN1cmUgc3RhdGUgaXMgbm90IG51bGwvdW5kZWZpbmVkXG4gICAgLy8gU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgZm9yIG1vcmUgc3BlY2lmaWMgdmFsaWRhdGlvblxuICAgIHJldHVybiBzdGF0ZUFyZyAhPT0gbnVsbCAmJiBzdGF0ZUFyZyAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIG5vdGlmaWVzIG9mIGEgY2hhbmdlIG9uIHRoZSBzdGF0ZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIG5vdGlmeUNoYW5nZSgpIHtcbiAgICBpZiAoIXRoaXMuc3RhdGVTdG9yZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjcmVhdGVTdGF0ZUhhc2ggPSBhc3luYyAoc3RhdGVBcmc6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IHBsdWdpbnMuc21hcnRoYXNoV2ViLnNoYTI1NkZyb21TdHJpbmcocGx1Z2lucy5zbWFydGpzb24uc3RhYmxlT25lV2F5U3RyaW5naWZ5KHN0YXRlQXJnKSk7XG4gICAgfTtcbiAgICBjb25zdCBjdXJyZW50SGFzaCA9IGF3YWl0IGNyZWF0ZVN0YXRlSGFzaCh0aGlzLnN0YXRlU3RvcmUpO1xuICAgIGlmIChcbiAgICAgIHRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2ggJiZcbiAgICAgIGN1cnJlbnRIYXNoID09PSB0aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNoXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2ggPSBjdXJyZW50SGFzaDtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZS5uZXh0KHRoaXMuc3RhdGVTdG9yZSk7XG4gIH1cbiAgcHJpdmF0ZSBsYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaDogYW55O1xuXG4gIC8qKlxuICAgKiBjcmVhdGVzIGEgY3VtdWxhdGl2ZSBub3RpZmljYXRpb24gYnkgYWRkaW5nIGEgY2hhbmdlIG5vdGlmaWNhdGlvbiBhdCB0aGUgZW5kIG9mIHRoZSBjYWxsIHN0YWNrO1xuICAgKi9cbiAgcHVibGljIG5vdGlmeUNoYW5nZUN1bXVsYXRpdmUoKSB7XG4gICAgLy8gVE9ETzogY2hlY2sgdmlhYmlsaXR5XG4gICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zdGF0ZVN0b3JlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCk7XG4gICAgICB9XG4gICAgfSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogc2VsZWN0cyBhIHN0YXRlIG9yIGEgc3Vic3RhdGVcbiAgICovXG4gIHB1YmxpYyBzZWxlY3Q8VCA9IFRTdGF0ZVBheWxvYWQ+KFxuICAgIHNlbGVjdG9yRm4/OiAoc3RhdGU6IFRTdGF0ZVBheWxvYWQpID0+IFRcbiAgKTogcGx1Z2lucy5zbWFydHJ4LnJ4anMuT2JzZXJ2YWJsZTxUPiB7XG4gICAgaWYgKCFzZWxlY3RvckZuKSB7XG4gICAgICBzZWxlY3RvckZuID0gKHN0YXRlOiBUU3RhdGVQYXlsb2FkKSA9PiA8VD4oPGFueT5zdGF0ZSk7XG4gICAgfVxuICAgIGNvbnN0IG1hcHBlZCA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIHBsdWdpbnMuc21hcnRyeC5yeGpzLm9wcy5zdGFydFdpdGgodGhpcy5nZXRTdGF0ZSgpKSxcbiAgICAgIHBsdWdpbnMuc21hcnRyeC5yeGpzLm9wcy5maWx0ZXIoKHN0YXRlQXJnKTogc3RhdGVBcmcgaXMgVFN0YXRlUGF5bG9hZCA9PiBzdGF0ZUFyZyAhPT0gdW5kZWZpbmVkKSxcbiAgICAgIHBsdWdpbnMuc21hcnRyeC5yeGpzLm9wcy5tYXAoKHN0YXRlQXJnKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHNlbGVjdG9yRm4oc3RhdGVBcmcpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gTm90aGluZyBoZXJlXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gbWFwcGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIGNyZWF0ZXMgYW4gYWN0aW9uIGNhcGFibGUgb2YgbW9kaWZ5aW5nIHRoZSBzdGF0ZVxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUFjdGlvbjxUQWN0aW9uUGF5bG9hZD4oXG4gICAgYWN0aW9uRGVmOiBJQWN0aW9uRGVmPFRTdGF0ZVBheWxvYWQsIFRBY3Rpb25QYXlsb2FkPlxuICApOiBTdGF0ZUFjdGlvbjxUU3RhdGVQYXlsb2FkLCBUQWN0aW9uUGF5bG9hZD4ge1xuICAgIHJldHVybiBuZXcgU3RhdGVBY3Rpb24odGhpcywgYWN0aW9uRGVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkaXNwYXRjaGVzIGFuIGFjdGlvbiBvbiB0aGUgc3RhdGVwYXJ0IGxldmVsXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGlzcGF0Y2hBY3Rpb248VD4oc3RhdGVBY3Rpb246IFN0YXRlQWN0aW9uPFRTdGF0ZVBheWxvYWQsIFQ+LCBhY3Rpb25QYXlsb2FkOiBUKTogUHJvbWlzZTxUU3RhdGVQYXlsb2FkPiB7XG4gICAgYXdhaXQgdGhpcy5jdW11bGF0aXZlRGVmZXJyZWQucHJvbWlzZTtcbiAgICBjb25zdCBuZXdTdGF0ZSA9IGF3YWl0IHN0YXRlQWN0aW9uLmFjdGlvbkRlZih0aGlzLCBhY3Rpb25QYXlsb2FkKTtcbiAgICBhd2FpdCB0aGlzLnNldFN0YXRlKG5ld1N0YXRlKTtcbiAgICByZXR1cm4gdGhpcy5nZXRTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHdhaXRzIHVudGlsIGEgY2VydGFpbiBwYXJ0IG9mIHRoZSBzdGF0ZSBiZWNvbWVzIGF2YWlsYWJsZVxuICAgKiBAcGFyYW0gc2VsZWN0b3JGblxuICAgKi9cbiAgcHVibGljIGFzeW5jIHdhaXRVbnRpbFByZXNlbnQ8VCA9IFRTdGF0ZVBheWxvYWQ+KFxuICAgIHNlbGVjdG9yRm4/OiAoc3RhdGU6IFRTdGF0ZVBheWxvYWQpID0+IFRcbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgZG9uZSA9IHBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyPFQ+KCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPYnNlcnZhYmxlID0gdGhpcy5zZWxlY3Qoc2VsZWN0b3JGbik7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gc2VsZWN0ZWRPYnNlcnZhYmxlLnN1YnNjcmliZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBkb25lLnJlc29sdmUodmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRvbmUucHJvbWlzZTtcbiAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIGlzIGV4ZWN1dGVkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc3RhdGVTZXR1cChcbiAgICBmdW5jQXJnOiAoc3RhdGVQYXJ0QXJnPzogU3RhdGVQYXJ0PGFueSwgVFN0YXRlUGF5bG9hZD4pID0+IFByb21pc2U8VFN0YXRlUGF5bG9hZD5cbiAgKSB7XG4gICAgY29uc3QgcmVzdWx0UHJvbWlzZSA9IGZ1bmNBcmcodGhpcyk7XG4gICAgdGhpcy5jdW11bGF0aXZlRGVmZXJyZWQuYWRkUHJvbWlzZShyZXN1bHRQcm9taXNlKTtcbiAgICB0aGlzLnNldFN0YXRlKGF3YWl0IHJlc3VsdFByb21pc2UpO1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0c3RhdGUucGx1Z2lucy5qcyc7XG5pbXBvcnQgeyBTdGF0ZVBhcnQgfSBmcm9tICcuL3NtYXJ0c3RhdGUuY2xhc3Nlcy5zdGF0ZXBhcnQuanMnO1xuXG5leHBvcnQgdHlwZSBUSW5pdE1vZGUgPSAnc29mdCcgfCAnbWFuZGF0b3J5JyB8ICdmb3JjZScgfCAncGVyc2lzdGVudCc7XG5cbi8qKlxuICogU21hcnRzdGF0ZSB0YWtlcyBjYXJlIG9mIHByb3ZpZGluZyBzdGF0ZVxuICovXG5leHBvcnQgY2xhc3MgU21hcnRzdGF0ZTxTdGF0ZVBhcnROYW1lVHlwZSBleHRlbmRzIHN0cmluZz4ge1xuICBwdWJsaWMgc3RhdGVQYXJ0TWFwOiB7IFtrZXkgaW4gU3RhdGVQYXJ0TmFtZVR5cGVdPzogU3RhdGVQYXJ0PFN0YXRlUGFydE5hbWVUeXBlLCBhbnk+IH0gPSB7fTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIEFsbG93cyBnZXR0aW5nIGFuZCBpbml0aWFsaXppbmcgYSBuZXcgc3RhdGVwYXJ0XG4gICAqIGluaXRNb2RlID09PSAnc29mdCcgKGRlZmF1bHQpIC0gcmV0dXJucyBleGlzdGluZyBzdGF0ZXBhcnQgaWYgZXhpc3RzLCBjcmVhdGVzIG5ldyBpZiBub3RcbiAgICogaW5pdE1vZGUgPT09ICdtYW5kYXRvcnknIC0gcmVxdWlyZXMgc3RhdGVwYXJ0IHRvIG5vdCBleGlzdCwgZmFpbHMgaWYgaXQgZG9lc1xuICAgKiBpbml0TW9kZSA9PT0gJ2ZvcmNlJyAtIGFsd2F5cyBjcmVhdGVzIG5ldyBzdGF0ZXBhcnQsIG92ZXJ3cml0aW5nIGFueSBleGlzdGluZ1xuICAgKiBpbml0TW9kZSA9PT0gJ3BlcnNpc3RlbnQnIC0gbGlrZSAnc29mdCcgYnV0IHdpdGggd2Vic3RvcmUgcGVyc2lzdGVuY2VcbiAgICogQHBhcmFtIHN0YXRlUGFydE5hbWVBcmdcbiAgICogQHBhcmFtIGluaXRpYWxBcmdcbiAgICogQHBhcmFtIGluaXRNb2RlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0U3RhdGVQYXJ0PFBheWxvYWRUeXBlPihcbiAgICBzdGF0ZVBhcnROYW1lQXJnOiBTdGF0ZVBhcnROYW1lVHlwZSxcbiAgICBpbml0aWFsQXJnPzogUGF5bG9hZFR5cGUsXG4gICAgaW5pdE1vZGU6IFRJbml0TW9kZSA9ICdzb2Z0J1xuICApOiBQcm9taXNlPFN0YXRlUGFydDxTdGF0ZVBhcnROYW1lVHlwZSwgUGF5bG9hZFR5cGU+PiB7XG4gICAgY29uc3QgZXhpc3RpbmdTdGF0ZVBhcnQgPSB0aGlzLnN0YXRlUGFydE1hcFtzdGF0ZVBhcnROYW1lQXJnXTtcbiAgICBcbiAgICBpZiAoZXhpc3RpbmdTdGF0ZVBhcnQpIHtcbiAgICAgIHN3aXRjaCAoaW5pdE1vZGUpIHtcbiAgICAgICAgY2FzZSAnbWFuZGF0b3J5JzpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgU3RhdGUgcGFydCAnJHtzdGF0ZVBhcnROYW1lQXJnfScgYWxyZWFkeSBleGlzdHMsIGJ1dCBpbml0TW9kZSBpcyAnbWFuZGF0b3J5J2BcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlICdmb3JjZSc6XG4gICAgICAgICAgLy8gRm9yY2UgbW9kZTogY3JlYXRlIG5ldyBzdGF0ZSBwYXJ0XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU3RhdGVQYXJ0PFBheWxvYWRUeXBlPihzdGF0ZVBhcnROYW1lQXJnLCBpbml0aWFsQXJnLCBpbml0TW9kZSk7XG4gICAgICAgIGNhc2UgJ3NvZnQnOlxuICAgICAgICBjYXNlICdwZXJzaXN0ZW50JzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyBSZXR1cm4gZXhpc3Rpbmcgc3RhdGUgcGFydFxuICAgICAgICAgIHJldHVybiBleGlzdGluZ1N0YXRlUGFydCBhcyBTdGF0ZVBhcnQ8U3RhdGVQYXJ0TmFtZVR5cGUsIFBheWxvYWRUeXBlPjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU3RhdGUgcGFydCBkb2Vzbid0IGV4aXN0XG4gICAgICBpZiAoIWluaXRpYWxBcmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBTdGF0ZSBwYXJ0ICcke3N0YXRlUGFydE5hbWVBcmd9JyBkb2VzIG5vdCBleGlzdCBhbmQgbm8gaW5pdGlhbCBzdGF0ZSBwcm92aWRlZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVN0YXRlUGFydDxQYXlsb2FkVHlwZT4oc3RhdGVQYXJ0TmFtZUFyZywgaW5pdGlhbEFyZywgaW5pdE1vZGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3RhdGVwYXJ0XG4gICAqIEBwYXJhbSBzdGF0ZVBhcnROYW1lXG4gICAqIEBwYXJhbSBpbml0aWFsUGF5bG9hZEFyZ1xuICAgKiBAcGFyYW0gaW5pdE1vZGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlU3RhdGVQYXJ0PFBheWxvYWRUeXBlPihcbiAgICBzdGF0ZVBhcnROYW1lOiBTdGF0ZVBhcnROYW1lVHlwZSxcbiAgICBpbml0aWFsUGF5bG9hZEFyZzogUGF5bG9hZFR5cGUsXG4gICAgaW5pdE1vZGU6IFRJbml0TW9kZSA9ICdzb2Z0J1xuICApOiBQcm9taXNlPFN0YXRlUGFydDxTdGF0ZVBhcnROYW1lVHlwZSwgUGF5bG9hZFR5cGU+PiB7XG4gICAgY29uc3QgbmV3U3RhdGUgPSBuZXcgU3RhdGVQYXJ0PFN0YXRlUGFydE5hbWVUeXBlLCBQYXlsb2FkVHlwZT4oXG4gICAgICBzdGF0ZVBhcnROYW1lLFxuICAgICAgaW5pdE1vZGUgPT09ICdwZXJzaXN0ZW50J1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIGRiTmFtZTogJ3NtYXJ0c3RhdGUnLFxuICAgICAgICAgICAgc3RvcmVOYW1lOiBzdGF0ZVBhcnROYW1lLFxuICAgICAgICAgIH1cbiAgICAgICAgOiBudWxsXG4gICAgKTtcbiAgICBhd2FpdCBuZXdTdGF0ZS5pbml0KCk7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gbmV3U3RhdGUuZ2V0U3RhdGUoKTtcbiAgICBhd2FpdCBuZXdTdGF0ZS5zZXRTdGF0ZSh7XG4gICAgICAuLi5jdXJyZW50U3RhdGUsXG4gICAgICAuLi5pbml0aWFsUGF5bG9hZEFyZyxcbiAgICB9KTtcbiAgICB0aGlzLnN0YXRlUGFydE1hcFtzdGF0ZVBhcnROYW1lXSA9IG5ld1N0YXRlO1xuICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgfVxufSIsICJleHBvcnQgKiBmcm9tICcuL3NtYXJ0c3RhdGUuY2xhc3Nlcy5zbWFydHN0YXRlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc21hcnRzdGF0ZS5jbGFzc2VzLnN0YXRlcGFydC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0c3RhdGUuY2xhc3Nlcy5zdGF0ZWFjdGlvbi5qcyc7XG4iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzIxaGNuUjFjbXd1Y0d4MVoybHVjeTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMM1J6TDNOdFlYSjBkWEpzTG5Cc2RXZHBibk11ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWlKOSIsICIvLyBJbXBvcnQgbmVjZXNzYXJ5IHBsdWdpbnMgKGlmIGFueSBhcmUgdXNlZCBpbiB0aGUgbW9kdWxlKVxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3NtYXJ0dXJsLnBsdWdpbnMuanMnO1xuXG4vLyBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSBzdHJ1Y3R1cmUgb2YgYSBVUkwgb2JqZWN0XG5leHBvcnQgaW50ZXJmYWNlIElVcmxPYmplY3Qge1xuICBocmVmOiBzdHJpbmc7XG4gIG9yaWdpbjogc3RyaW5nO1xuICBwcm90b2NvbDogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICBob3N0OiBzdHJpbmc7XG4gIGhvc3RuYW1lOiBzdHJpbmc7XG4gIHBvcnQ6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBwYXRobmFtZTogc3RyaW5nO1xuICBzZWFyY2g6IHN0cmluZztcbiAgc2VhcmNoUGFyYW1zOiBJU2VhcmNoUGFyYW1zO1xuICBoYXNoOiBzdHJpbmc7XG59XG5cbi8vIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIHNlYXJjaCBwYXJhbWV0ZXJzIGFzIGEga2V5LXZhbHVlIHBhaXIgb2JqZWN0XG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hQYXJhbXMge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbi8vIE1haW4gU21hcnR1cmwgY2xhc3MgaW1wbGVtZW50aW5nIHRoZSBJVXJsT2JqZWN0IGludGVyZmFjZVxuZXhwb3J0IGNsYXNzIFNtYXJ0dXJsIGltcGxlbWVudHMgSVVybE9iamVjdCB7XG4gIC8vIFN0YXRpYyBtZXRob2QgdG8gY3JlYXRlIGEgU21hcnR1cmwgaW5zdGFuY2UgZnJvbSBhIFVSTCBzdHJpbmdcbiAgcHVibGljIHN0YXRpYyBjcmVhdGVGcm9tVXJsKFxuICAgIHVybEFyZzogc3RyaW5nLFxuICAgIG9wdGlvbnNBcmc/OiB7XG4gICAgICBzZWFyY2hQYXJhbXM/OiBJU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgKTogU21hcnR1cmwge1xuICAgIC8vIFBhcnNlIHRoZSBVUkwgc3RyaW5nIHVzaW5nIHRoZSBidWlsdC1pbiBVUkwgY2xhc3NcbiAgICBjb25zdCBwYXJzZWRVcmxJbnN0YW5jZSA9IG5ldyBVUkwodXJsQXJnKTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXM6IElTZWFyY2hQYXJhbXMgPSB7fTtcblxuICAgIC8vIEFycmF5IHRvIGhvbGQga2V5LXZhbHVlIHBhaXJzIG9mIHNlYXJjaCBwYXJhbWV0ZXJzXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1QYWlyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB2YWx1ZTogc3RyaW5nO1xuICAgIH1bXSA9IFtdO1xuXG4gICAgLy8gSWYgdGhlIFVSTCBoYXMgc2VhcmNoIHBhcmFtZXRlcnMsIHBhcnNlIHRoZW0gaW50byBrZXktdmFsdWUgcGFpcnNcbiAgICBpZiAocGFyc2VkVXJsSW5zdGFuY2Uuc2VhcmNoKSB7XG4gICAgICBwYXJzZWRVcmxJbnN0YW5jZS5zZWFyY2hcbiAgICAgICAgLnJlcGxhY2UoJz8nLCAnJykgLy8gUmVtb3ZlIHRoZSAnPycgYXQgdGhlIGJlZ2lubmluZ1xuICAgICAgICAuc3BsaXQoJyYnKSAvLyBTcGxpdCB0aGUgcXVlcnkgc3RyaW5nIGludG8gaW5kaXZpZHVhbCBwYXJhbWV0ZXJzXG4gICAgICAgIC5tYXAoKHNlYXJjaFBhcmFtUGFpcikgPT4ge1xuICAgICAgICAgIC8vIFNwbGl0IGVhY2ggcGFyYW1ldGVyIGludG8ga2V5IGFuZCB2YWx1ZSBhbmQgYWRkIHRvIHRoZSBhcnJheVxuICAgICAgICAgIHNlYXJjaFBhcmFtUGFpcnMucHVzaCh7XG4gICAgICAgICAgICBrZXk6IHNlYXJjaFBhcmFtUGFpci5zcGxpdCgnPScpWzBdLFxuICAgICAgICAgICAgdmFsdWU6IHNlYXJjaFBhcmFtUGFpci5zcGxpdCgnPScpWzFdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IHRoZSBhcnJheSBvZiBrZXktdmFsdWUgcGFpcnMgaW50byBhbiBvYmplY3RcbiAgICBmb3IgKGNvbnN0IHNlYXJjaFBhcmFtUGFpciBvZiBzZWFyY2hQYXJhbVBhaXJzKSB7XG4gICAgICBzZWFyY2hQYXJhbXNbc2VhcmNoUGFyYW1QYWlyLmtleV0gPSBzZWFyY2hQYXJhbVBhaXIudmFsdWU7XG4gICAgfVxuXG4gICAgLy8gTWVyZ2UgYW55IGFkZGl0aW9uYWwgc2VhcmNoIHBhcmFtZXRlcnMgcHJvdmlkZWQgaW4gb3B0aW9uc0FyZ1xuICAgIGlmIChvcHRpb25zQXJnPy5zZWFyY2hQYXJhbXMpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9wdGlvbnNBcmcuc2VhcmNoUGFyYW1zKSkge1xuICAgICAgICBzZWFyY2hQYXJhbXNba2V5XSA9IG9wdGlvbnNBcmcuc2VhcmNoUGFyYW1zW2tleV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVjb25zdHJ1Y3QgdGhlIHBhdGggd2l0aCB1cGRhdGVkIHNlYXJjaCBwYXJhbWV0ZXJzXG4gICAgbGV0IHBhdGggPSBwYXJzZWRVcmxJbnN0YW5jZS5wYXRobmFtZSB8fCAnJztcbiAgICBpZiAoT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKS5sZW5ndGggPiAwKSB7XG4gICAgICBwYXRoICs9ICc/JztcbiAgICAgIGxldCBmaXJzdCA9IHRydWU7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpKSB7XG4gICAgICAgIGlmIChmaXJzdCkge1xuICAgICAgICAgIGZpcnN0ID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGF0aCArPSAnJic7XG4gICAgICAgIH1cbiAgICAgICAgcGF0aCArPSBgJHtrZXl9PSR7c2VhcmNoUGFyYW1zW2tleV19YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYW4gSVVybE9iamVjdCBjb250YWluaW5nIGFsbCBwYXJ0cyBvZiB0aGUgVVJMXG4gICAgY29uc3QgcGFyc2VkVXJsOiBJVXJsT2JqZWN0ID0ge1xuICAgICAgLi4ucGFyc2VkVXJsSW5zdGFuY2UsIC8vIFNwcmVhZCBvcGVyYXRvciB0byBpbmNsdWRlIGFsbCBwcm9wZXJ0aWVzIGZyb20gcGFyc2VkVXJsSW5zdGFuY2VcbiAgICAgIGhyZWY6IHBhcnNlZFVybEluc3RhbmNlLmhyZWYsXG4gICAgICBvcmlnaW46IHBhcnNlZFVybEluc3RhbmNlLm9yaWdpbixcbiAgICAgIHByb3RvY29sOiBwYXJzZWRVcmxJbnN0YW5jZS5wcm90b2NvbCxcbiAgICAgIHVzZXJuYW1lOiBwYXJzZWRVcmxJbnN0YW5jZS51c2VybmFtZSxcbiAgICAgIHBhc3N3b3JkOiBwYXJzZWRVcmxJbnN0YW5jZS5wYXNzd29yZCxcbiAgICAgIGhvc3Q6IHBhcnNlZFVybEluc3RhbmNlLmhvc3QsXG4gICAgICBob3N0bmFtZTogcGFyc2VkVXJsSW5zdGFuY2UuaG9zdG5hbWUsXG4gICAgICBwb3J0OiBwYXJzZWRVcmxJbnN0YW5jZS5wb3J0LFxuICAgICAgcGF0aCwgLy8gVXBkYXRlZCBwYXRoIHdpdGggbmV3IHNlYXJjaCBwYXJhbWV0ZXJzXG4gICAgICBwYXRobmFtZTogcGFyc2VkVXJsSW5zdGFuY2UucGF0aG5hbWUsXG4gICAgICBzZWFyY2g6IHBhcnNlZFVybEluc3RhbmNlLnNlYXJjaCxcbiAgICAgIHNlYXJjaFBhcmFtcywgLy8gVGhlIHNlYXJjaFBhcmFtcyBvYmplY3Qgd2UgY29uc3RydWN0ZWRcbiAgICAgIGhhc2g6IHBhcnNlZFVybEluc3RhbmNlLmhhc2gsXG4gICAgfTtcblxuICAgIC8vIEluZmVyIGRlZmF1bHQgcG9ydHMgaWYgbm9uZSBhcmUgc3BlY2lmaWVkIGJhc2VkIG9uIHRoZSBwcm90b2NvbFxuICAgIGlmICghcGFyc2VkVXJsLnBvcnQgJiYgcGFyc2VkVXJsLnByb3RvY29sID09PSAnaHR0cHM6Jykge1xuICAgICAgcGFyc2VkVXJsLnBvcnQgPSAnNDQzJztcbiAgICB9XG4gICAgaWYgKCFwYXJzZWRVcmwucG9ydCAmJiBwYXJzZWRVcmwucHJvdG9jb2wgPT09ICdodHRwOicpIHtcbiAgICAgIHBhcnNlZFVybC5wb3J0ID0gJzgwJztcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBuZXcgU21hcnR1cmwgaW5zdGFuY2UgYW5kIGFzc2lnbiB0aGUgcGFyc2VkIFVSTCBwcm9wZXJ0aWVzXG4gICAgY29uc3QgcmV0dXJuU21hcnR1cmwgPSBuZXcgU21hcnR1cmwoKTtcbiAgICBPYmplY3QuYXNzaWduKHJldHVyblNtYXJ0dXJsLCBwYXJzZWRVcmwpOyAvLyBDb3B5IGFsbCBwcm9wZXJ0aWVzIGZyb20gcGFyc2VkVXJsIHRvIHJldHVyblNtYXJ0dXJsXG4gICAgcmV0dXJuIHJldHVyblNtYXJ0dXJsO1xuICB9XG5cbiAgLy8gU3RhdGljIG1ldGhvZCB0byBjcmVhdGUgYSBTbWFydHVybCBpbnN0YW5jZSBmcm9tIGFuIGV4aXN0aW5nIElVcmxPYmplY3RcbiAgcHVibGljIHN0YXRpYyBjcmVhdGVGcm9tUGFyc2VkVXJsKHBhcnNlZFVybEFyZzogSVVybE9iamVjdCk6IFNtYXJ0dXJsIHtcbiAgICBjb25zdCByZXR1cm5TbWFydHVybCA9IG5ldyBTbWFydHVybCgpO1xuICAgIE9iamVjdC5hc3NpZ24ocmV0dXJuU21hcnR1cmwsIHBhcnNlZFVybEFyZyk7IC8vIENvcHkgYWxsIHByb3BlcnRpZXMgZnJvbSBwYXJzZWRVcmxBcmcgdG8gcmV0dXJuU21hcnR1cmxcbiAgICByZXR1cm4gcmV0dXJuU21hcnR1cmw7XG4gIH1cblxuICAvLyBJTlNUQU5DRSBQUk9QRVJUSUVTIChtYXRjaGluZyBJVXJsT2JqZWN0IGludGVyZmFjZSlcbiAgaHJlZjogc3RyaW5nO1xuICBvcmlnaW46IHN0cmluZztcbiAgcHJvdG9jb2w6IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgaG9zdDogc3RyaW5nO1xuICBob3N0bmFtZTogc3RyaW5nO1xuICBwb3J0OiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgcGF0aG5hbWU6IHN0cmluZztcbiAgc2VhcmNoOiBzdHJpbmc7XG4gIHNlYXJjaFBhcmFtczogSVNlYXJjaFBhcmFtcztcbiAgaGFzaDogc3RyaW5nO1xuXG4gIC8vIENvbnN0cnVjdG9yIGluaXRpYWxpemVzIHNlYXJjaFBhcmFtcyBhcyBhbiBlbXB0eSBvYmplY3RcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zZWFyY2hQYXJhbXMgPSB7fTtcbiAgfVxuXG4gIC8vIE1ldGhvZCB0byBjcmVhdGUgYW4gaW5kZXBlbmRlbnQgY2xvbmUgb2YgdGhlIGN1cnJlbnQgU21hcnR1cmwgaW5zdGFuY2VcbiAgY2xvbmUoKTogU21hcnR1cmwge1xuICAgIGNvbnN0IGNsb25lZEluc3RhbmNlID0gbmV3IFNtYXJ0dXJsKCk7XG4gICAgT2JqZWN0LmFzc2lnbihjbG9uZWRJbnN0YW5jZSwgdGhpcyk7IC8vIENvcHkgYWxsIHByb3BlcnRpZXMgdG8gdGhlIG5ldyBpbnN0YW5jZVxuICAgIGNsb25lZEluc3RhbmNlLnNlYXJjaFBhcmFtcyA9IHsgLi4udGhpcy5zZWFyY2hQYXJhbXMgfTsgLy8gU2hhbGxvdyBjb3B5IG9mIHNlYXJjaFBhcmFtcyB0byBwcmV2ZW50IHNoYXJlZCByZWZlcmVuY2VzXG4gICAgcmV0dXJuIGNsb25lZEluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFR5cGVkIG1ldGhvZCB0byBzZXQgYSBwcm9wZXJ0eSBhbmQgcmV0dXJuIHRoZSBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqIEBwYXJhbSBwcm9wIC0gVGhlIHByb3BlcnR5IG5hbWUgdG8gc2V0IChtdXN0IGJlIGEga2V5IG9mIFNtYXJ0dXJsKVxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gYXNzaWduIHRvIHRoZSBwcm9wZXJ0eVxuICAgKiBAcmV0dXJucyBUaGUgU21hcnR1cmwgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgKi9cbiAgc2V0PEsgZXh0ZW5kcyBrZXlvZiB0aGlzPihwcm9wOiBLLCB2YWx1ZTogdGhpc1tLXSk6IHRoaXMge1xuICAgIHRoaXNbcHJvcF0gPSB2YWx1ZTsgLy8gU2V0IHRoZSBwcm9wZXJ0eSB0byB0aGUgbmV3IHZhbHVlXG4gICAgcmV0dXJuIHRoaXM7IC8vIFJldHVybiB0aGUgaW5zdGFuY2UgZm9yIGNoYWluaW5nXG4gIH1cblxuICAvLyBNZXRob2QgdG8gY29udmVydCB0aGUgU21hcnR1cmwgaW5zdGFuY2UgYmFjayBpbnRvIGEgVVJMIHN0cmluZ1xuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGxldCB1c2VycGFydCA9IGBgOyAvLyBJbml0aWFsaXplIHRoZSB1c2VyIHBhcnQgb2YgdGhlIFVSTCAodXNlcm5hbWUgYW5kIHBhc3N3b3JkKVxuXG4gICAgLy8gQ29uc3RydWN0IHRoZSB1c2VyIHBhcnQgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIHVzZXJuYW1lIGFuZCBwYXNzd29yZFxuICAgIGlmICh0aGlzLnVzZXJuYW1lICYmICF0aGlzLnBhc3N3b3JkKSB7XG4gICAgICB1c2VycGFydCA9IGAke3RoaXMudXNlcm5hbWV9QGA7XG4gICAgfVxuICAgIGlmICh0aGlzLnVzZXJuYW1lICYmIHRoaXMucGFzc3dvcmQpIHtcbiAgICAgIHVzZXJwYXJ0ID0gYCR7dGhpcy51c2VybmFtZX06JHt0aGlzLnBhc3N3b3JkfUBgO1xuICAgIH1cblxuICAgIC8vIENvbnN0cnVjdCBhbmQgcmV0dXJuIHRoZSBmdWxsIFVSTCBzdHJpbmdcbiAgICByZXR1cm4gYCR7dGhpcy5wcm90b2NvbH0vLyR7dXNlcnBhcnR9JHt0aGlzLmhvc3RuYW1lfToke3RoaXMucG9ydH0ke3RoaXMucGF0aH1gO1xuICB9XG59IiwgImV4cG9ydCAqIGZyb20gJy4vc21hcnR1cmwuY2xhc3Nlcy5zbWFydHVybC5qcyc7XG4iLCAiZXhwb3J0IGludGVyZmFjZSBJUmVzb2x2ZTxUPiB7XG4gICh2YWx1ZT86IFQgfCBQcm9taXNlTGlrZTxUPik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlamVjdCB7XG4gIChyZWFzb24/OiBhbnkpOiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBURGVmZXJyZWRTdGF0dXMgPSAncGVuZGluZycgfCAnZnVsZmlsbGVkJyB8ICdyZWplY3RlZCc7XG5cbmV4cG9ydCBjbGFzcyBEZWZlcnJlZDxUPiB7XG4gIHB1YmxpYyBwcm9taXNlOiBQcm9taXNlPFQ+O1xuICBwdWJsaWMgcmVzb2x2ZTogSVJlc29sdmU8VD47XG4gIHB1YmxpYyByZWplY3Q6IElSZWplY3Q7XG4gIHB1YmxpYyBzdGF0dXM6IFREZWZlcnJlZFN0YXR1cztcbiAgcHVibGljIGNsYWltZWQgPSBmYWxzZTtcbiAgcHVibGljIGNsYWltKCkge1xuICAgIGlmICh0aGlzLmNsYWltZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGVmZXJyZWQgYWxyZWFkeSBjbGFpbWVkJyk7XG4gICAgfVxuICAgIHRoaXMuY2xhaW1lZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgc3RhcnRlZEF0OiBudW1iZXI7XG4gIHB1YmxpYyBzdG9wcGVkQXQ6IG51bWJlcjtcbiAgcHVibGljIGdldCBkdXJhdGlvbigpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnN0b3BwZWRBdCkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcHBlZEF0IC0gdGhpcy5zdGFydGVkQXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBEYXRlLm5vdygpIC0gdGhpcy5zdGFydGVkQXQ7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5wcm9taXNlID0gbmV3IFByb21pc2U8VD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5yZXNvbHZlID0gKHZhbHVlQXJnOiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHtcbiAgICAgICAgdGhpcy5zdGF0dXMgPSAnZnVsZmlsbGVkJztcbiAgICAgICAgdGhpcy5zdG9wcGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgICByZXNvbHZlKHZhbHVlQXJnKTtcbiAgICAgIH07XG4gICAgICB0aGlzLnJlamVjdCA9IChyZWFzb246IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnN0YXR1cyA9ICdyZWplY3RlZCc7XG4gICAgICAgIHRoaXMuc3RvcHBlZEF0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgcmVqZWN0KHJlYXNvbik7XG4gICAgICB9O1xuICAgICAgdGhpcy5zdGFydGVkQXQgPSBEYXRlLm5vdygpO1xuICAgICAgdGhpcy5zdGF0dXMgPSAncGVuZGluZyc7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlZmVyID0gPFQ+KCkgPT4ge1xuICByZXR1cm4gbmV3IERlZmVycmVkPFQ+KCk7XG59OyIsICJpbXBvcnQgeyBkZWZlciB9IGZyb20gXCIuL3NtYXJ0cHJvbWlzZS5jbGFzc2VzLmRlZmVycmVkLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBDdW11bGF0aXZlRGVmZXJyZWQge1xuICBwcml2YXRlIGFjY3VtdWxhdGVkUHJvbWlzZXM6IFByb21pc2U8YW55PltdID0gW107XG4gIHByaXZhdGUgZGVmZXJyZWQgPSBkZWZlcigpO1xuICBwdWJsaWMgcHJvbWlzZSA9IHRoaXMuZGVmZXJyZWQucHJvbWlzZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgIHdoaWxlICh0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBwb3BwZWRQcm9taXNlID0gdGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnNoaWZ0KCk7XG4gICAgICAgIGF3YWl0IHBvcHBlZFByb21pc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmRlZmVycmVkLnJlc29sdmUoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRQcm9taXNlKHByb21pc2VBcmc6IFByb21pc2U8YW55Pikge1xuICAgIHRoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5wdXNoKHByb21pc2VBcmcpO1xuICB9XG59XG5cblxuZXhwb3J0IGNvbnN0IGN1bXVsYXRpdmVEZWZlciA9ICgpID0+IHtcbiAgcmV0dXJuIG5ldyBDdW11bGF0aXZlRGVmZXJyZWQoKTtcbn0iLCAiaW1wb3J0IHsgZGVmZXIgfSBmcm9tICcuL3NtYXJ0cHJvbWlzZS5jbGFzc2VzLmRlZmVycmVkLmpzJztcblxuZXhwb3J0ICogZnJvbSAnLi9zbWFydHByb21pc2UuY2xhc3Nlcy5jdW11bGF0aXZlZGVmZXJyZWQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zbWFydHByb21pc2UuY2xhc3Nlcy5kZWZlcnJlZC5qcyc7XG5cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHJlc29sdmVkIHByb21pc2UgZm9yIHRoZSBwcm92aWRlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlc29sdmVkUHJvbWlzZSA9IDxUPih2YWx1ZT86IFQpOiBQcm9taXNlPFQ+ID0+IHtcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2YWx1ZSk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgcmVqZWN0ZWQgcHJvbWlzZSBmb3IgdGhlIHByb3ZpZGVkIHJlYXNvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlamVjdGVkUHJvbWlzZSA9IChlcnIpID0+IHtcbiAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycik7XG59O1xuXG5pbnRlcmZhY2UgSUFzeW5jRnVuY3Rpb248VD4ge1xuICAoc29tZUFyZzogVCk6IFByb21pc2U8VD47XG59XG5cbi8qKlxuICogYWNjZXB0cyBhbiBhcnJheSBvZiBpbnB1dHMgYW5kIGEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHRoZSBpbnB1dC5cbiAqIHJ1bnMgYWxsIGl0ZW1zIHdpdGggdGhlIGZ1bmN0aW9uIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXJyYXkgd2hlbiBhbGwgaXRlbXMgaGF2ZSBydW5cbiAqIEBwYXJhbSBpbnB1dEFyZ1xuICogQHBhcmFtIGZ1bmN0aW9uQXJnXG4gKi9cbmV4cG9ydCBjb25zdCBtYXAgPSBhc3luYyA8VD4oaW5wdXRBcmc6IFRbXSwgZnVuY3Rpb25Bcmc6IElBc3luY0Z1bmN0aW9uPFQ+KSA9PiB7XG4gIGNvbnN0IHByb21pc2VBcnJheTogUHJvbWlzZTxhbnk+W10gPSBbXTtcbiAgY29uc3QgcmVzdWx0QXJyYXkgPSBbXTtcbiAgZm9yIChjb25zdCBpdGVtIG9mIGlucHV0QXJnKSB7XG4gICAgY29uc3QgcHJvbWlzZTogUHJvbWlzZTxhbnk+ID0gZnVuY3Rpb25BcmcoaXRlbSk7XG4gICAgcHJvbWlzZUFycmF5LnB1c2gocHJvbWlzZSk7XG4gICAgcHJvbWlzZS50aGVuKCh4KSA9PiB7XG4gICAgICByZXN1bHRBcnJheS5wdXNoKHgpO1xuICAgIH0pO1xuICB9XG4gIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VBcnJheSk7XG4gIHJldHVybiByZXN1bHRBcnJheTtcbn07XG5cbmV4cG9ydCBjb25zdCB0aW1lb3V0V3JhcCA9IGFzeW5jIDxUID0gYW55PihcbiAgcHJvbWlzZUFyZzogUHJvbWlzZTxUPixcbiAgdGltZW91dEluTXNBcmc6IG51bWJlcixcbiAgcmVqZWN0QXJnID0gdHJ1ZVxuKSA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxUPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAocmVqZWN0QXJnKSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ3RpbWVvdXQnKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgfVxuICAgIH0sIHRpbWVvdXRJbk1zQXJnKTtcbiAgICBwcm9taXNlQXJnLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdGltZW91dEFuZENvbnRpbnVlID0gYXN5bmMgPFQgPSBhbnk+KFxuICBwcm9taXNlQXJnOiBQcm9taXNlPFQ+LFxuICB0aW1lb3V0SW5Nc0FyZyA9IDYwMDAwXG4pID0+IHtcbiAgcmV0dXJuIHRpbWVvdXRXcmFwKHByb21pc2VBcmcsIHRpbWVvdXRJbk1zQXJnLCBmYWxzZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RUcnVlT3JGYWxzZSA9IGFzeW5jIChwcm9taXNlc0FyZzogUHJvbWlzZTxib29sZWFuPltdKSA9PiB7XG4gIGNvbnN0IGRvbmUgPSBkZWZlcjxib29sZWFuPigpO1xuICBmb3IgKGNvbnN0IHByb21pc2VBcmcgb2YgcHJvbWlzZXNBcmcpIHtcbiAgICBwcm9taXNlQXJnLnRoZW4oKHJlc3VsdEFyZykgPT4ge1xuICAgICAgaWYgKHJlc3VsdEFyZyA9PT0gdHJ1ZSkge1xuICAgICAgICBkb25lLnJlc29sdmUodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgUHJvbWlzZS5hbGwocHJvbWlzZXNBcmcpLnRoZW4oKCkgPT4ge1xuICAgIGRvbmUucmVzb2x2ZShmYWxzZSk7XG4gIH0pO1xuICByZXR1cm4gZG9uZS5wcm9taXNlO1xufTtcbiIsICJpbXBvcnQgKiBhcyBzbWFydHByb21pc2UgZnJvbSAnQHB1c2hyb2Nrcy9zbWFydHByb21pc2UnO1xuXG4vKipcbiAqIGRlbGF5IHNvbWV0aGluZywgd29ya3MgbGlrZSBzZXRUaW1lb3V0XG4gKiBAcGFyYW0gdGltZUluTWlsbGlzZWNvbmRBcmdcbiAqIEBwYXJhbSBwYXNzT25BcmdcbiAqL1xuZXhwb3J0IGxldCBkZWxheUZvciA9IGFzeW5jIDxUPihcbiAgdGltZUluTWlsbGlzZWNvbmRBcmc6IG51bWJlcixcbiAgcGFzc09uQXJnPzogVCxcbiAgdW5yZWZlZEFyZyA9IGZhbHNlXG4pID0+IHtcbiAgY29uc3QgdGltZW91dCA9IG5ldyBUaW1lb3V0KHRpbWVJbk1pbGxpc2Vjb25kQXJnLCBudWxsLCB1bnJlZmVkQXJnKTtcbiAgYXdhaXQgdGltZW91dC5wcm9taXNlO1xuICByZXR1cm4gcGFzc09uQXJnO1xufTtcblxuLyoqXG4gKiBkZWxheSBmb3IgYSByYW5kb20gdGltZVxuICovXG5leHBvcnQgbGV0IGRlbGF5Rm9yUmFuZG9tID0gYXN5bmMgPFQ+KFxuICB0aW1lTWluSW5NaWxsaXNlY29uZEFyZzogbnVtYmVyLFxuICB0aW1lTWF4SW5NaWxsaXNlY29uZEFyZzogbnVtYmVyLFxuICBwYXNzT25Bcmc/OiBULFxuICB1bnJlZmVkQXJnID0gZmFsc2VcbikgPT4ge1xuICBhd2FpdCBkZWxheUZvcihcbiAgICBNYXRoLnJhbmRvbSgpICogKHRpbWVNYXhJbk1pbGxpc2Vjb25kQXJnIC0gdGltZU1pbkluTWlsbGlzZWNvbmRBcmcpICsgdGltZU1pbkluTWlsbGlzZWNvbmRBcmcsXG4gICAgbnVsbCxcbiAgICB1bnJlZmVkQXJnXG4gICk7XG4gIHJldHVybiBwYXNzT25Bcmc7XG59O1xuXG5leHBvcnQgY2xhc3MgVGltZW91dDxUPiB7XG4gIHByb21pc2U6IFByb21pc2U8VD47XG4gIHByaXZhdGUgX2RlZmVycmVkOiBzbWFydHByb21pc2UuRGVmZXJyZWQ8VD47XG4gIHByaXZhdGUgX3RpbWVvdXQ7XG4gIHByaXZhdGUgX2NhbmNlbGxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgdGltZW91dEluTWlsbGlzOiBudW1iZXI7XG4gIHByaXZhdGUgc3RhcnRlZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHRpbWVJbk1pbGxpc2Vjb25kQXJnLCBwYXNzT24/OiBULCB1bnJlZmVkQXJnID0gZmFsc2UpIHtcbiAgICB0aGlzLnRpbWVvdXRJbk1pbGxpcyA9IHRpbWVJbk1pbGxpc2Vjb25kQXJnO1xuICAgIHRoaXMuX2RlZmVycmVkID0gc21hcnRwcm9taXNlLmRlZmVyPFQ+KCk7XG4gICAgdGhpcy5wcm9taXNlID0gdGhpcy5fZGVmZXJyZWQucHJvbWlzZTtcbiAgICB0aGlzLl90aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2NhbmNlbGxlZCkge1xuICAgICAgICB0aGlzLl9kZWZlcnJlZC5yZXNvbHZlKHBhc3NPbik7XG4gICAgICB9XG4gICAgfSwgdGltZUluTWlsbGlzZWNvbmRBcmcpO1xuICAgIHRoaXMuc3RhcnRlZCA9IERhdGUubm93KCk7XG4gICAgaWYgKHVucmVmZWRBcmcpIHtcbiAgICAgIHRoaXMubWFrZVVucmVmZWQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogdW5yZWZmaW5nIGEgdGltZW91dCBjYXVzZXMgdGhlIG5vZGUgcHJvY2VzcyB0byBub3Qgd2FpdCBmb3IgY29tcGxldGlvbiBiZWZvcmUgZXhpdFxuICAgKi9cbiAgcHVibGljIG1ha2VVbnJlZmVkKCkge1xuICAgIHRoaXMuX3RpbWVvdXQudW5yZWYoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjYW5jZWxzIHRoZSB0aW1lclxuICAgKi9cbiAgcHVibGljIGNhbmNlbCgpIHtcbiAgICB0aGlzLl9jYW5jZWxsZWQgPSB0cnVlO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUaW1lTGVmdCgpIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnN0YXJ0ZWQgKyB0aGlzLnRpbWVvdXRJbk1pbGxpcyAtIERhdGUubm93KCk7XG4gICAgcmV0dXJuIHJlc3VsdCA+IDAgPyByZXN1bHQgOiAwO1xuICB9XG59XG4iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWVdSa2NtVnpjeTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1TDNSekwySjFjMmx1WlhOekwyRmtaSEpsYzNNdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklpSjkiLCAiaW1wb3J0IHsgYnVzaW5lc3MsIGdlbmVyYWwgfSBmcm9tICcuLi9pbmRleC5qcyc7XG5cbi8qKlxuICogZGVzY3JpYmVzIGEgY29tcGFueSdzIGxpZmVjeWNsZSBzdGF0ZVxuICovXG5leHBvcnQgdHlwZSBUQ29tcGFueVN0YXR1cyA9ICdwbGFuZWQnIHwgJ2ZvdW5kaW5nJyB8ICdhY3RpdmUnIHwgJ2xpcXVpZGF0aW9uJyB8ICdjbG9zZWQnO1xuXG4vKipcbiAqIGRlc2NyaWJlcyBhIGNvbXBhbnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29tcGFueSB7XG4gIG5hbWU6IHN0cmluZztcbiAgc2xvZ2FuPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgbG9nb0xpbms/OiBzdHJpbmc7XG4gIGZvdW5kZWREYXRlOiBnZW5lcmFsLklEYXRlO1xuICBjbG9zZWREYXRlOiBnZW5lcmFsLklEYXRlO1xuICBzdGF0dXM6IGJ1c2luZXNzLlRDb21wYW55U3RhdHVzO1xuICBjb250YWN0OiBidXNpbmVzcy5JQ29udGFjdDtcbn1cbiIsICJpbXBvcnQgeyBmaW5hbmNlIH0gZnJvbSAnLi4vaW5kZXguanMnO1xuaW1wb3J0IHsgYnVzaW5lc3MgfSBmcm9tICcuLi9pbmRleC5qcyc7XG5cbmV4cG9ydCB0eXBlIFRDb250YWN0U2FsdXRhdGlvbiA9ICdNcicgfCAnTXMnIHwgJ01ycyc7XG5cbmV4cG9ydCB0eXBlIFRDb250YWN0VHlwZSA9ICdwZXJzb24nIHwgJ2NvbXBhbnknO1xuXG5leHBvcnQgdHlwZSBUQ29udGFjdFRpdGxlID0gJ0RvY3RvcicgfCAnUHJvZmVzc29yJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ29udGFjdCB7XG4gIC8vID09PT09PT1cbiAgLy8gZ2VuZXJhbFxuICAvLyA9PT09PT09XG4gIHNhbHV0YXRpb24/OiBUQ29udGFjdFNhbHV0YXRpb247XG4gIHR5cGU6IFRDb250YWN0VHlwZTtcbiAgdGl0bGU/OiBUQ29udGFjdFRpdGxlO1xuICByZWxhdGlvbnNoaXA/OiAnY3VzdG9tZXInIHwgJ3N1cHBsaWVyJyB8ICdwYXJ0bmVyJyB8ICdlbXBsb3llZScgfCAnb3RoZXInO1xuICBuYW1lOiBzdHJpbmc7XG4gIHN1cm5hbWU/OiBzdHJpbmc7XG4gIGxlZ2FsRW50aXR5Pzogc3RyaW5nO1xuICBhZGRyZXNzOiBidXNpbmVzcy5JQWRkcmVzcztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgY3VzdG9tZXJOdW1iZXI/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuXG4gIGxvZ29Vcmw/OiBzdHJpbmc7XG4gIHdlYnNpdGU/OiBzdHJpbmc7XG4gIGZhY2Vib29rVXJsPzogc3RyaW5nO1xuICB0d2l0dGVyVXJsPzogc3RyaW5nO1xuXG4gIHBob25lPzogc3RyaW5nO1xuICBmYXg/OiBzdHJpbmc7XG5cbiAgLy8gPT09PT09PT09XG4gIC8vIGZpbmFuY2lhbFxuICAvLyA9PT09PT09PT1cbiAgdmF0SWQ/OiBzdHJpbmc7XG4gIHNlcGFDb25uZWN0aW9uPzogZmluYW5jZS5JU2VwYUNvbm5lY3Rpb247XG59XG4iLCAiaW1wb3J0IHsgZmluYW5jZSB9IGZyb20gJy4uL2luZGV4LmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ2hlY2tpbmdBY2NvdW50IHtcbiAgbmFtZTogc3RyaW5nO1xuICBjdXJyZW5jeTogZmluYW5jZS5UQ3VycmVuY3k7XG4gIHRyYW5zYWN0aW9ucz86IGZpbmFuY2UuSVRyYW5zYWN0aW9uW107XG59XG4iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWTNWeWNtVnVZM2t1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk5MGN5OW1hVzVoYm1ObEwyTjFjbkpsYm1ONUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSWlmUT09IiwgImltcG9ydCB7IGJ1c2luZXNzIH0gZnJvbSAnLi4vaW5kZXguanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFeHBlbnNlSXRlbSB7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGFzc2V0PzogYm9vbGVhbjtcbiAgYWNjb3VudGluZ1R5cGU/OiBhbnk7XG4gIGFtb3VudDogbnVtYmVyO1xuICB0YXhQZXJjZW50YWdlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVZvdWNoZXIge1xuICB2b3VjaGVyRmlsZT86IGFueTtcbiAgZGF0ZTogRGF0ZTtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgZXhwZW5zZUl0ZW1zOiBJRXhwZW5zZUl0ZW1bXTtcbiAgY29udGFjdFJlZjogYnVzaW5lc3MuSUNvbnRhY3Q7XG59XG4iLCAiaW1wb3J0IHsgYnVzaW5lc3MsIGZpbmFuY2UgfSBmcm9tICcuLi9pbmRleC5qcyc7XG5pbXBvcnQgdHlwZSB7IFRDdXJyZW5jeSB9IGZyb20gJy4vY3VycmVuY3kuanMnO1xuXG5leHBvcnQgdHlwZSBUSW52b2ljZVN0YXR1cyA9ICdkcmFmdCcgfCAnaW52b2ljZScgfCAncGFpZCcgfCAncmVmdW5kZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElJbnZvaWNlSXRlbSB7XG4gIHBvc2l0aW9uOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgYXJ0aWNsZU51bWJlcj86IHN0cmluZztcbiAgdW5pdFR5cGU6IHN0cmluZztcbiAgdW5pdFF1YW50aXR5OiBudW1iZXI7XG4gIHVuaXROZXRQcmljZTogbnVtYmVyO1xuICB2YXRQZXJjZW50YWdlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUludm9pY2Uge1xuICBpZDogc3RyaW5nO1xuICBiaWxsZWRCeTogYnVzaW5lc3MuSUNvbnRhY3Q7XG4gIGJpbGxlZFRvOiBidXNpbmVzcy5JQ29udGFjdDtcbiAgdHlwZTogJ2NyZWRpdG5vdGUnIHwgJ2RlYml0bm90ZSc7XG4gIHN0YXR1czogVEludm9pY2VTdGF0dXM7XG4gIGl0ZW1zOiBJSW52b2ljZUl0ZW1bXTtcbiAgcGVyaW9kT2ZQZXJmb3JtYW5jZT86IHtcbiAgICBmcm9tOiBudW1iZXI7XG4gICAgdG86IG51bWJlcjtcbiAgfTtcbiAgZGVsaXZlcnlEYXRlPzogbnVtYmVyO1xuICBkdWVJbkRheXM6IG51bWJlcjtcbiAgcmV2ZXJzZUNoYXJnZTogYm9vbGVhbjtcbiAgcHJpbnRSZXN1bHQ/OiB7XG4gICAgcGRmQnVmZmVyU3RyaW5nOiBzdHJpbmc7XG4gICAgdG90YWxOZXQ6IG51bWJlcjtcbiAgICB0b3RhbEdyb3NzOiBudW1iZXI7XG4gICAgdmF0R3JvdXBzOiB7XG4gICAgICBwZXJjZW50YWdlOiBudW1iZXI7XG4gICAgICBpdGVtczogSUludm9pY2VJdGVtW107XG4gICAgfTtcbiAgfTtcbiAgbm90ZXM6IHN0cmluZ1tdO1xuICBwYXltZW50T3B0aW9ucz86IGZpbmFuY2UuSVBheW1lbnRPcHRpb25JbmZvO1xuICBjdXJyZW5jeTogVEN1cnJlbmN5O1xufVxuIiwgImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWNHRjViV1Z1ZEM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzUnpMMlpwYm1GdVkyVXZjR0Y1YldWdWRDNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lJbjA9IiwgImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRISmhibk5oWTNScGIyNHVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTkwY3k5bWFXNWhibU5sTDNSeVlXNXpZV04wYVc5dUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSWlmUT09IiwgImV4cG9ydCAqIGZyb20gJy4vY2hlY2tpbmdhY2NvdW50LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3kuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9leHBlbnNlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vaW52b2ljZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3BheW1lbnQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbi5qcyc7XG4iLCAiaW1wb3J0ICogYXMgZmluYW5jZSBmcm9tICcuLi9maW5hbmNlL2luZGV4LmpzJztcbmltcG9ydCB7IHR5cGUgSUNvbXBhbnkgfSBmcm9tICcuL2NvbXBhbnkuanMnO1xuaW1wb3J0IHsgdHlwZSBJQ29udGFjdCB9IGZyb20gJy4vY29udGFjdC5qcyc7XG5leHBvcnQgY2xhc3MgSUpvYiB7XG4gIHR5cGU6ICdjb250cmFjdCcgfCAnZW1wbG95bWVudCc7XG4gIHRlY2hUYWdzPzogc3RyaW5nW107XG4gIHF1YWxpZmljYXRpb25UYWdzPzogc3RyaW5nW107XG4gIGxhbmd1YWdlcz86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbGV2ZWw6ICdiYXNpYycgfCAnaW50ZXJtZWRpYXRlJyB8ICdhZHZhbmNlZCcgfCAnbmF0aXZlJztcbiAgfVtdO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIG1vbnRobHlUb3RhbDogbnVtYmVyO1xuICBjdXJyZW5jeTogZmluYW5jZS5UQ3VycmVuY3k7XG4gIGZyb206IElDb21wYW55O1xuICBjb250YWN0OiBJQ29udGFjdDtcbn0iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYlc5dVoyOWtaWE5qY21sd2RHOXlMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2ZEhNdlpHRjBZV0poYzJVdmJXOXVaMjlrWlhOamNtbHdkRzl5TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJaWZRPT0iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYjJKcVpXTjBZV04wYVc5dUxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZkSE12WkdGMFlXSmhjMlV2YjJKcVpXTjBZV04wYVc5dUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSWlmUT09IiwgImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWIySnFaV04wYzNSaGRIVnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2ZEhNdlpHRjBZV0poYzJVdmIySnFaV04wYzNSaGRIVnpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUlpZlE9PSIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkM0poY0hCbFpHUmhkR0V1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk5MGN5OWtZWFJoWW1GelpTOTNjbUZ3Y0dWa1pHRjBZUzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pSW4wPSIsICJleHBvcnQgKiBmcm9tICcuL21vbmdvZGVzY3JpcHRvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL29iamVjdGFjdGlvbi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL29iamVjdHN0YXR1cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3dyYXBwZWRkYXRhLmpzJztcbiIsICJpbXBvcnQgKiBhcyBidXNpbmVzcyBmcm9tICcuL2luZGV4LmpzJztcbmltcG9ydCAqIGFzIGZpbmFuY2UgZnJvbSAnLi4vZmluYW5jZS9pbmRleC5qcyc7XG5pbXBvcnQgKiBhcyBkYXRhYmFzZSBmcm9tICcuLi9kYXRhYmFzZS9pbmRleC5qcyc7XG5leHBvcnQgaW50ZXJmYWNlIElMZXR0ZXIge1xuICB2ZXJzaW9uSW5mbzoge1xuICAgIHR5cGU6ICdkcmFmdCcgfCAnZmluYWwnO1xuICAgIC8qKlxuICAgICAqIHNob3VsZCBmb2xsb3cgc2VtVmVyXG4gICAgICovXG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICB9O1xuICBpbmNpZGVuY2VJZDogc3RyaW5nO1xuICB0eXBlOiAnaW52b2ljZScgfCAnbm90aWNlJyB8ICd3YXJuaW5nJyB8ICd2ZXJpZmljYXRpb24nIHwgJ2NvbnRyYWN0JztcbiAgZGF0ZTogbnVtYmVyO1xuICBmcm9tOiBidXNpbmVzcy5JQ29udGFjdDtcbiAgdG86IGJ1c2luZXNzLklDb250YWN0O1xuICBsZWdhbENvbnRhY3Q6IGJ1c2luZXNzLklDb250YWN0O1xuICBsb2dvVXJsOiBzdHJpbmc7XG4gIHN1YmplY3Q6IHN0cmluZztcbiAgYWNjZW50Q29sb3I/OiBzdHJpbmc7XG4gIG5lZWRzQ292ZXJTaGVldDogYm9vbGVhbjtcbiAgY29udGVudDoge1xuICAgIHRleHREYXRhOiBzdHJpbmdbXTtcbiAgICBpbnZvaWNlRGF0YT86IGZpbmFuY2UuSUludm9pY2U7XG4gICAgY29udHJhY3REYXRhPzoge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGNvbnRyYWN0RGF0ZTogbnVtYmVyO1xuICAgIH07XG4gICAgdGltZXNoZWV0RGF0YTogc3RyaW5nO1xuICB9XG4gIHBkZj86IGJ1c2luZXNzLklQZGY7XG4gIHBkZkF0dGFjaG1lbnRzOiBidXNpbmVzcy5JUGRmW107XG4gIGxhbmd1YWdlOiBzdHJpbmc7XG4gIG9iamVjdEFjdGlvbnM6IGRhdGFiYXNlLklPYmplY3RBY3Rpb25bXTtcbn1cbiIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljR1JtTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmRITXZZblZ6YVc1bGMzTXZjR1JtTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJaWZRPT0iLCAiaW1wb3J0IHsgdHlwZSBJQ29udGFjdCB9IGZyb20gJy4vY29udGFjdC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcnNvbiB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc3VybmFtZTogc3RyaW5nO1xuICBzZXg6ICdtYWxlJyB8ICdmZW1hbGUnIHwgJ3F1ZWVyJztcbiAgbGVnYWxQcm94eUZvcj86IHtcbiAgICB0eXBlOiAnc2VsZicgfCAnb3RoZXInO1xuICAgIGNvbnRhY3Q/OiBJQ29udGFjdDtcbiAgfTtcbn1cbiIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljSEp2YW1WamRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM1J6TDJKMWMybHVaWE56TDNCeWIycGxZM1F1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWlKOSIsICJleHBvcnQgKiBmcm9tICcuL2FkZHJlc3MuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wYW55LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2pvYi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2xldHRlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3BkZi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3BlcnNvbi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2plY3QuanMnO1xuIiwgImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVkyOXRiV2wwYVc1bWJ5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM1J6TDJOdlpHVXZZMjl0YldsMGFXNW1ieTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pSW4wPSIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljM1JoZEhWemIySnFaV04wTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmRITXZZMjlrWlM5emRHRjBkWE52WW1wbFkzUXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJaUo5IiwgImV4cG9ydCAqIGZyb20gJy4vY29tbWl0aW5mby5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXR1c29iamVjdC5qcyc7IiwgImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVkyOXVkR0ZwYm1WeUxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZkSE12WTI5dWRHRnBibVZ5TDJOdmJuUmhhVzVsY2k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaUluMD0iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZG05c2RXMWxiVzkxYm5RdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOTBjeTlqYjI1MFlXbHVaWEl2ZG05c2RXMWxiVzkxYm5RdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklpSjkiLCAiZXhwb3J0ICogZnJvbSAnLi9jb250YWluZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi92b2x1bWVtb3VudC5qcyc7XG4iLCAiaW1wb3J0IHsgY29udGVudCB9IGZyb20gJy4uL2luZGV4LmpzJztcblxuLyoqXG4gKiBhIGdlbmVyYWwgY29udGVudCBhcnRpY2xlOlxuICogKiBjYW4gYmUgbmV3c1xuICogKiBjYW4gYmUgYSBwcm9kdWN0ZGVzY3JpcHRpb24sXG4gKiAqIGNhbiBiZSBhbnl0aGluZyB0aGF0IGhhcyB0ZXh0IHdpdGggYSB0aXRsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBcnRpY2xlPFQgPSBhbnk+IHtcbiAgLyoqXG4gICAqIHRoZSBtYWluIHVybCBvZiBhbiBhcnRpY2xlXG4gICAqL1xuICB1cmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHRoZSBtYWluaW1hZ2Ugb2YgdGhlIGFydGljbGVcbiAgICovXG4gIGZlYXR1cmVkSW1hZ2VVcmw/OiBzdHJpbmc7XG5cbiAgcmVmZXJlbmNlT2JqZWN0PzogVDtcblxuICAvKipcbiAgICogdGhlIHRpdGxlIG9mIGFuIGFydGljbGVcbiAgICovXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHRoZSBBdXRob3Igb2YgYW4gYXJ0aWNsZVxuICAgKi9cbiAgYXV0aG9yOiBjb250ZW50LklBdXRob3I7XG5cbiAgLyoqXG4gICAqIHRoZSBjb250ZW50IG9mIGFuIGFydGljbGVcbiAgICovXG4gIGNvbnRlbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogYSB0aW1lc3RhbXAgZm9yIHdoZW4gdGhlIGFydGljbGUgd2FzIHdyaXR0ZW5cbiAgICovXG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiB0aGUgdGFncyBvZiBhbiBhcnRpY2xlXG4gICAqL1xuICB0YWdzOiBzdHJpbmdbXTtcbn1cbiIsICJpbXBvcnQgeyBnZW5lcmFsLCBjb250ZW50IH0gZnJvbSAnLi4vaW5kZXguanMnO1xuXG4vKipcbiAqIGFuc3dlcnMgdGhlIHF1ZXN0aW9uIFwiV2hvIHdyb3RlIHRoYXQ/XCJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQXV0aG9yIHtcbiAgLyoqXG4gICAqIHRoZSBmaXJzdCBuYW1lIG9mIGFuIGF1dGhvclxuICAgKi9cbiAgZmlyc3ROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHRoZSBzdXJuYW1lIG9mIGFuIGF1dGhvclxuICAgKi9cbiAgc3VyTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiB0aGUgYmlydGhkYXkgb2YgYW4gYXV0aG9yXG4gICAqL1xuICBiaXJ0aGRheTogZ2VuZXJhbC5JRGF0ZTtcblxuICAvKipcbiAgICogYXJ0aWNsZXMgb2YgYW4gYXV0aG9yXG4gICAqL1xuICBhcnRpY2xlczogY29udGVudC5JQXJ0aWNsZVtdO1xufVxuIiwgImltcG9ydCB7IHR5cGUgSUFydGljbGUgfSBmcm9tICcuL2FydGljbGUuanMnO1xuXG4vKipcbiAqIGEgc2V0IG9mIGFydGljbGVzIHRoYXQgdG9nZXRoZXIgZm9ybSBhIGJvZHkgb2YgZG9jdW1lbnRhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIElEb2N1bWVudGF0aW9uU2V0IHtcbiAgaWQ6IHN0cmluZztcbiAgY3JlYXRpb25UaW1lc3RhbXA6IG51bWJlcjtcbiAgYXJ0aWNsZXM6IElBcnRpY2xlW107XG59XG4iLCAiZXhwb3J0ICogZnJvbSAnLi9hcnRpY2xlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZG9jdW1lbnRhdGlvbnNldC5qcyc7XG4iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdGMFpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM1J6TDJkbGJtVnlZV3d2WkdGMFpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lJbjA9IiwgImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRHbHRaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1TDNSekwyZGxibVZ5WVd3dmRHbHRaUzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pSW4wPSIsICJleHBvcnQgKiBmcm9tICcuL2RhdGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lLmpzJztcbiIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZMlZ5ZEM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzUnpMMjVsZEhkdmNtc3ZZMlZ5ZEM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaUluMD0iLCAiaW1wb3J0IHsgdHlwZSBJQ2VydCB9IGZyb20gXCIuL2NlcnQuanNcIjtcblxuZXhwb3J0IGNsYXNzIElDbmFtZURlc2NyaXB0b3Ige1xuICAvKipcbiAgICogdGhlIG9yaWdpbmFsIGRvbWFpbiB0aGF0IGlzIGJlaW5nIGNuYW1lZFxuICAgKi9cbiAgY25hbWVkRG9tYWluOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHRoZSBjbmFtZSBwcm94eSBkb21haW5cbiAgICogdGhlIGRvbWFpbiB0aGF0IGlzIHVzZWQgZm9yIHRoZSBjbmFtZSBkbnMgZW50cnlcbiAgICovXG4gIGNuYW1lUHJveHlEb21haW46IHN0cmluZztcblxuICAvKipcbiAgICogdGhlIGludGVybmFsIHRhcmdldCB1cmxcbiAgICovXG4gIHRhcmdldFVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBhIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiB0aGUgc3NsIGNlcnRpZmljYXRlXG4gICAqL1xuICBzc2xDZXJ0aWZpY2F0ZT86IElDZXJ0O1xufTsiLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdWMmFXTmxMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2ZEhNdmJtVjBkMjl5YXk5a1pYWnBZMlV1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWlKOSIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laRzV6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmRITXZibVYwZDI5eWF5OWtibk11ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWlKOSIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laRzV6WTJoaGJHeGxibWRsTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmRITXZibVYwZDI5eWF5OWtibk5qYUdGc2JHVnVaMlV1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWlKOSIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laRzl0WVdsdVpHVnNaV2RoZEdsdmJpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM1J6TDI1bGRIZHZjbXN2Wkc5dFlXbHVaR1ZzWldkaGRHbHZiaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pSW4wPSIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhbmQwTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmRITXZibVYwZDI5eWF5OXFkM1F1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWlKOSIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2libVYwZDI5eWEyNXZaR1V1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk5MGN5OXVaWFIzYjNKckwyNWxkSGR2Y210dWIyUmxMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUlpZlE9PSIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljbVZ4ZFdWemRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM1J6TDI1bGRIZHZjbXN2Y21WeGRXVnpkQzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pSW4wPSIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljbVYyWlhKelpYQnliM2g1TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmRITXZibVYwZDI5eWF5OXlaWFpsY25ObGNISnZlSGt1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWlKOSIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljM05vTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmRITXZibVYwZDI5eWF5OXpjMmd1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWlKOSIsICJleHBvcnQgKiBmcm9tICcuL2NlcnQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jbmFtZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RldmljZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2Rucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2Ruc2NoYWxsZW5nZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RvbWFpbmRlbGVnYXRpb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9qd3QuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9uZXR3b3Jrbm9kZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3JlcXVlc3QuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXZlcnNlcHJveHkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zc2guanMnO1xuIiwgImltcG9ydCB7IHR5cGUgSUNvbXBhbnkgfSBmcm9tIFwiLi4vYnVzaW5lc3MvY29tcGFueS5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9kdWN0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBzbG9nYW46IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgb3M6ICd3ZWItYmFzZWQnLFxuICBjYXRlZ29yeTogJ0J1c2luZXNzIEFwcGxpY2F0aW9uJyxcbiAgb2ZmZXJzOiBhbnlbXTtcbiAgZmVhdHVyZXM6IElQcm9kdWN0RmVhdHVyZVtdO1xuICBsYW5kaW5nUGFnZTogc3RyaW5nO1xuICBhcHBMaW5rOiBzdHJpbmc7XG4gIGxvZ29MaW5rOiBzdHJpbmc7XG4gIHB1Ymxpc2hlcj86IElDb21wYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9kdWN0RmVhdHVyZSB7XG4gIGhlYWRpbmc6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbGlua1RleHQ6IHN0cmluZztcbiAgbGlua1VybDogc3RyaW5nO1xufSIsICJpbXBvcnQgeyB0eXBlIElQcm9kdWN0IH0gZnJvbSAnLi9wcm9kdWN0LmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJU3Vic2NyaXB0aW9uUGxhbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdW5pdDogJ2RldmljZScgfCAndXNlcic7XG4gIHF1YW50aXR5OiBib29sZWFuO1xuICBhdmFpbGFibGVUZXJtczoge1xuICAgIHBlcmlvZDogJ2RhaWx5JyB8ICd3ZWVrbHknIHwgJ21vbnRobHknIHwgJ3llYXJseSc7XG4gICAgcHJpY2U6IG51bWJlcjtcbiAgICBjdXJyZW5jeTogJ0VVUicgfCAnVVNEJztcbiAgfVtdO1xuICBjb250YWluZWRQcm9kdWN0czogSVByb2R1Y3RbXTtcbiAgbGltaXRzOiBhbnk7XG59XG4iLCAiZXhwb3J0ICogZnJvbSAnLi9zdWJzY3JpcHRpb25wbGFuLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC5qcyc7XG4iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTkwY3k5emRHOXlZV2RsTDJsdVpHVjRMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUlpZlE9PSIsICJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liR2x1YXk1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzUnpMM2RsWW5OcGRHVXZiR2x1YXk1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaUluMD0iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldWdWRXbDBaVzB1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk5MGN5OTNaV0p6YVhSbEwyMWxiblZwZEdWdExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSWlmUT09IiwgImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJHbHVhMkpzYjJOckxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZkSE12ZDJWaWMybDBaUzlzYVc1cllteHZZMnN1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWlKOSIsICJleHBvcnQgKiBmcm9tICcuL2xpbmsuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51aXRlbS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpbmtibG9jay5qcyc7XG4iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pXWmxjM1F1YjNkdUxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dmRITXZkSGx3WldabGMzUXViM2R1TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJaWZRPT0iLCAiLy8gQnVzaW5lc3NcbmltcG9ydCAqIGFzIGJ1c2luZXNzIGZyb20gJy4vYnVzaW5lc3MvaW5kZXguanMnO1xuXG4vLyBDb2RlXG5pbXBvcnQgKiBhcyBjb2RlIGZyb20gJy4vY29kZS9pbmRleC5qcyc7XG5cbi8vIENvbnRhaW5lclxuaW1wb3J0ICogYXMgY29udGFpbmVyIGZyb20gJy4vY29udGFpbmVyL2luZGV4LmpzJztcblxuLy8gRGF0YWJhc2VcbmltcG9ydCAqIGFzIGRhdGFiYXNlIGZyb20gJy4vZGF0YWJhc2UvaW5kZXguanMnO1xuXG4vLyBGaW5hbmNlXG5pbXBvcnQgKiBhcyBmaW5hbmNlIGZyb20gJy4vZmluYW5jZS9pbmRleC5qcyc7XG5cbi8vIENvbnRlbnRcbmltcG9ydCAqIGFzIGNvbnRlbnQgZnJvbSAnLi9jb250ZW50L2luZGV4LmpzJztcblxuLy8gR2VuZXJhbFxuaW1wb3J0ICogYXMgZ2VuZXJhbCBmcm9tICcuL2dlbmVyYWwvaW5kZXguanMnO1xuXG4vLyBOZXR3b3JrXG5pbXBvcnQgKiBhcyBuZXR3b3JrIGZyb20gJy4vbmV0d29yay9pbmRleC5qcyc7XG5cbi8vIFNhYVNcbmltcG9ydCAqIGFzIHNhYXMgZnJvbSAnLi9zYWFzL2luZGV4LmpzJztcblxuLy8gU3RvcmFnZVxuaW1wb3J0ICogYXMgc3RvcmFnZSBmcm9tICcuL3N0b3JhZ2UvaW5kZXguanMnO1xuXG4vLyBXZWJzaXRlXG5pbXBvcnQgKiBhcyB3ZWJzaXRlIGZyb20gJy4vd2Vic2l0ZS9pbmRleC5qcyc7XG5cbmV4cG9ydCB7IGJ1c2luZXNzLCBjb250YWluZXIsIGNvZGUsIGRhdGFiYXNlLCBmaW5hbmNlLCBjb250ZW50LCBnZW5lcmFsLCBuZXR3b3JrLCBzYWFzLCBzdG9yYWdlLCB3ZWJzaXRlIH07XG5cbmltcG9ydCB0eXBlICogYXMgdHlwZUZlc3QgZnJvbSAndHlwZS1mZXN0JztcbmltcG9ydCAqIGFzIHR5cGVGZXN0T3duIGZyb20gJy4vdHlwZWZlc3Qub3duLmpzJztcblxuZXhwb3J0IHsgdHlwZSB0eXBlRmVzdCwgdHlwZSB0eXBlRmVzdE93biB9O1xuIiwgIi8vIHB1c2hyb2NrcyBzY29wZVxuaW1wb3J0ICogYXMgc21hcnRkZWxheSBmcm9tICdAcHVzaHJvY2tzL3NtYXJ0ZGVsYXknO1xuaW1wb3J0ICogYXMgc21hcnRwcm9taXNlIGZyb20gJ0BwdXNocm9ja3Mvc21hcnRwcm9taXNlJztcblxuZXhwb3J0IHsgc21hcnRkZWxheSwgc21hcnRwcm9taXNlIH07XG5cbi8vIHRzY2xhc3Mgc2NvcGVcbmltcG9ydCAqIGFzIHRzY2xhc3MgZnJvbSAnQHRzY2xhc3MvdHNjbGFzcyc7XG5cbmV4cG9ydCB7IHRzY2xhc3MgfTtcbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uL3dlYnNldHVwLnBsdWdpbnMuanMnO1xuZXhwb3J0IGludGVyZmFjZSBJTWV0YU9iamVjdCB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjYW5vbmljYWxEb21haW4/OiBzdHJpbmc7XG4gIGxkQ29tcGFueT86IHBsdWdpbnMudHNjbGFzcy5idXNpbmVzcy5JQ29tcGFueTtcbiAgbGRQcm9kdWN0PzogcGx1Z2lucy50c2NsYXNzLnNhYXMuSVByb2R1Y3Q7XG5cbiAgLy8gaGFuZGxlc1xuICB0d2l0dGVySGFuZGxlPzogc3RyaW5nO1xuICBmYWNlYm9va0hhbmRsZT86IHN0cmluZztcblxuICAvLyBsaW5rc1xuICBjb21wYW55V2Vic2l0ZUxpbms/OiBzdHJpbmc7XG4gIGdvb2dsZU5ld3NMaW5rPzogc3RyaW5nO1xuICBtZWRpdW1MaW5rPzogc3RyaW5nO1xuICBzbGFja0xpbms/OiBzdHJpbmc7XG4gIGFpcm1lZXRMaW5rPzogc3RyaW5nO1xufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi93ZWJzZXR1cC5wbHVnaW5zLmpzJztcblxuZXhwb3J0IGNsYXNzIFRhZyB7XG4gIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50O1xuXG4gIHB1YmxpYyB0YWdMZXZlbDogJ2dsb2JhbCcgfCAnbGV2ZWxib3VuZCc7XG5cbiAgcHVibGljIGFwcGVuZFRvRG9tKCkge1xuICAgIGlmICghdGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQgJiYgIXRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlKSB7XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUZyb21Eb20oKSB7XG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50KSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudFJlZik7XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL3dlYnNldHVwLnBsdWdpbnMuanMnO1xuaW1wb3J0ICogYXMgaW50ZXJmYWNlcyBmcm9tICcuL2ludGVyZmFjZXMvaW5kZXguanMnO1xuXG5pbXBvcnQgeyBUYWcgfSBmcm9tICcuL3dlYnNldHVwLmNsYXNzZXMudGFnLmpzJztcblxuZXhwb3J0IGNsYXNzIEpzb25MZFRhZyBleHRlbmRzIFRhZyB7XG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ29tcGFueUpzb25MZChjb21wYW55RGF0YUFyZzogcGx1Z2lucy50c2NsYXNzLmJ1c2luZXNzLklDb21wYW55KSB7XG4gICAgLy8gU1RBVElDXG4gICAgLy8gbGV0cyBjYXJlIGFib3V0IGxpbmtlZCBkYXRhXG4gICAgY29uc3QgY29tcGFueUxkID0ge1xuICAgICAgJ0Bjb250ZXh0JzogJ2h0dHBzOi8vc2NoZW1hLm9yZycsXG4gICAgICAnQHR5cGUnOiAnQ29ycG9yYXRpb24nLFxuICAgICAgbmFtZTogY29tcGFueURhdGFBcmcubmFtZSxcbiAgICAgIGFsdGVybmF0ZU5hbWU6IGNvbXBhbnlEYXRhQXJnLm5hbWUucmVwbGFjZSgnIEdtYkgnLCAnJyksXG4gICAgICB1cmw6IGNvbXBhbnlEYXRhQXJnLmNvbnRhY3Qud2Vic2l0ZSxcbiAgICAgIGxvZ286IGNvbXBhbnlEYXRhQXJnLmNvbnRhY3QubG9nb1VybCxcbiAgICAgIGNvbnRhY3RQb2ludDoge1xuICAgICAgICAnQHR5cGUnOiAnQ29udGFjdFBvaW50JyxcbiAgICAgICAgdGVsZXBob25lOiBjb21wYW55RGF0YUFyZy5jb250YWN0LnBob25lLFxuICAgICAgICBjb250YWN0VHlwZTogJ2N1c3RvbWVyIHNlcnZpY2UnLFxuICAgICAgICBhcmVhU2VydmVkOiAnREUnLFxuICAgICAgICBhdmFpbGFibGVMYW5ndWFnZTogWydlbicsICdHZXJtYW4nXSxcbiAgICAgIH0sXG4gICAgICBzYW1lQXM6IFtdLFxuICAgIH07XG5cbiAgICBpZiAoY29tcGFueURhdGFBcmcuY29udGFjdC5mYWNlYm9va1VybCkge1xuICAgICAgY29tcGFueUxkLnNhbWVBcy5wdXNoKGNvbXBhbnlEYXRhQXJnLmNvbnRhY3QuZmFjZWJvb2tVcmwpO1xuICAgIH1cblxuICAgIGlmIChjb21wYW55RGF0YUFyZy5jb250YWN0LnR3aXR0ZXJVcmwpIHtcbiAgICAgIGNvbXBhbnlMZC5zYW1lQXMucHVzaChjb21wYW55RGF0YUFyZy5jb250YWN0LnR3aXR0ZXJVcmwpO1xuICAgIH1cblxuICAgIGNvbnN0IGxkVGFnID0gbmV3IEpzb25MZFRhZyhjb21wYW55TGQpO1xuICAgIHJldHVybiBsZFRhZztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlTmV3c0FydGljbGVKc29uTGQobmV3c0FydGljbGVBcmc6IHBsdWdpbnMudHNjbGFzcy5jb250ZW50LklBcnRpY2xlKSB7XG4gICAgY29uc3QgbmV3c0FydGljbGVMZCA9IHtcbiAgICAgICdAY29udGV4dCc6ICdodHRwczovL3NjaGVtYS5vcmcnLFxuICAgICAgJ0B0eXBlJzogJ05ld3NBcnRpY2xlJyxcbiAgICAgIG1haW5FbnRpdHlPZlBhZ2U6IHtcbiAgICAgICAgJ0B0eXBlJzogJ1dlYlBhZ2UnLFxuICAgICAgICAnQGlkJzogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICB9LFxuICAgICAgaGVhZGxpbmU6ICdBcnRpY2xlIGhlYWRsaW5lJyxcbiAgICAgIGltYWdlOiBbbmV3c0FydGljbGVBcmcuZmVhdHVyZWRJbWFnZVVybF0sXG4gICAgICBkYXRlUHVibGlzaGVkOiBuZXcgRGF0ZShuZXdzQXJ0aWNsZUFyZy50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksXG4gICAgICBkYXRlTW9kaWZpZWQ6IG5ldyBEYXRlKG5ld3NBcnRpY2xlQXJnLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxcbiAgICAgIGF1dGhvcjoge1xuICAgICAgICAnQHR5cGUnOiAnUGVyc29uJyxcbiAgICAgICAgbmFtZTogYCR7bmV3c0FydGljbGVBcmcuYXV0aG9yLmZpcnN0TmFtZX0gJHtuZXdzQXJ0aWNsZUFyZy5hdXRob3Iuc3VyTmFtZX1gLFxuICAgICAgfSxcbiAgICAgIHB1Ymxpc2hlcjoge1xuICAgICAgICAnQHR5cGUnOiAnT3JnYW5pemF0aW9uJyxcbiAgICAgICAgbmFtZTogbmV3c0FydGljbGVBcmcuYXV0aG9yLnN1ck5hbWUsIC8vIFRPRE9cbiAgICAgICAgbG9nbzoge1xuICAgICAgICAgICdAdHlwZSc6ICdJbWFnZU9iamVjdCcsXG4gICAgICAgICAgdXJsOiBuZXdzQXJ0aWNsZUFyZy5hdXRob3Iuc3VyTmFtZSwgLy8gVE9ET1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXdzQXJ0aWNsZUFyZy5hdXRob3IuZmlyc3ROYW1lLFxuICAgIH07XG4gICAgY29uc3QgbGRUYWcgPSBuZXcgSnNvbkxkVGFnKG5ld3NBcnRpY2xlTGQpO1xuICAgIHJldHVybiBsZFRhZztcbiAgfVxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVByb2R1Y3RKc29uTGQoXG4gICAgcHJvZHVjdEFyZzogcGx1Z2lucy50c2NsYXNzLnNhYXMuSVByb2R1Y3QsXG4gICAgcHVibGlzaGVyQXJnOiBwbHVnaW5zLnRzY2xhc3MuYnVzaW5lc3MuSUNvbXBhbnlcbiAgKSB7XG4gICAgY29uc3QgcHJvZHVjdExkID0ge1xuICAgICAgJ0Bjb250ZXh0JzogJ2h0dHBzOi8vc2NoZW1hLm9yZycsXG4gICAgICAnQHR5cGUnOiAnU29mdHdhcmVBcHBsaWNhdGlvbicsXG4gICAgICBuYW1lOiBwcm9kdWN0QXJnLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvZHVjdEFyZy5kZXNjcmlwdGlvbixcbiAgICAgIG9wZXJhdGluZ1N5c3RlbTogcHJvZHVjdEFyZy5vcyxcbiAgICAgIGFwcGxpY2F0aW9uQ2F0ZWdvcnk6IHByb2R1Y3RBcmcuY2F0ZWdvcnksXG4gICAgICBvZmZlcnM6IHtcbiAgICAgICAgJ0B0eXBlJzogJ09mZmVyJyxcbiAgICAgICAgbmFtZTogJ1VzZXItYmFzZWQgUGxhbicsXG4gICAgICAgIHByaWNlU3BlY2lmaWNhdGlvbjoge1xuICAgICAgICAgICdAdHlwZSc6ICdQcm9wZXJ0eVZhbHVlU3BlY2lmaWNhdGlvbicsXG4gICAgICAgICAgdmFsdWVOYW1lOiAnTnVtYmVyIG9mIFVzZXJzJyxcbiAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIHByaWNlOiAnNC45OScsXG4gICAgICAgICAgcHJpY2VDdXJyZW5jeTogJ0VVUicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcHVibGlzaGVyOiB0aGlzLmNyZWF0ZUNvbXBhbnlKc29uTGQocHVibGlzaGVyQXJnKS5lbGVtZW50UmVmLnRleHRDb250ZW50LFxuICAgICAgc2NyZWVuc2hvdDogJ2h0dHBzOi8vd3d3LnNvY2lhbC5pby9zY3JlZW5zaG90LnBuZycsXG4gICAgICB1cmw6ICdodHRwczovL3d3dy5zb2NpYWwuaW8vJyxcbiAgICB9O1xuICAgIGNvbnN0IGxkVGFnID0gbmV3IEpzb25MZFRhZyhwcm9kdWN0TGQpO1xuICAgIHJldHVybiBsZFRhZztcbiAgfVxuXG4gIC8vIElOU1RBTkNFXG4gIGNvbnN0cnVjdG9yKGxkT2JqZWN0QXJnOiBhbnkpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IGpzb25MZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBqc29uTGRFbGVtZW50LnR5cGUgPSAnYXBwbGljYXRpb24vbGQranNvbic7XG4gICAganNvbkxkRWxlbWVudC50ZXh0ID0gSlNPTi5zdHJpbmdpZnkobGRPYmplY3RBcmcpO1xuICAgIHRoaXMuZWxlbWVudFJlZiA9IGpzb25MZEVsZW1lbnQ7XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vd2Vic2V0dXAucGx1Z2lucy5qcyc7XG5pbXBvcnQgeyBUYWcgfSBmcm9tICcuL3dlYnNldHVwLmNsYXNzZXMudGFnLmpzJztcblxuZXhwb3J0IGNsYXNzIE9wZW5ncmFwaFRhZyBleHRlbmRzIFRhZyB7XG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlTmV3c0FydGljbGVPZ1RhZ3MobmV3c0FydGljbGVBcmc6IHBsdWdpbnMudHNjbGFzcy5jb250ZW50LklBcnRpY2xlKSB7XG4gICAgY29uc3QgdGFnQXJyYXk6IE9wZW5ncmFwaFRhZ1tdID0gW107XG4gICAgdGFnQXJyYXkucHVzaChuZXcgT3BlbmdyYXBoVGFnKCdvZzp1cmwnLCBuZXdzQXJ0aWNsZUFyZy51cmwpKTtcbiAgICB0YWdBcnJheS5wdXNoKG5ldyBPcGVuZ3JhcGhUYWcoJ29nOnRpdGxlJywgbmV3c0FydGljbGVBcmcudGl0bGUpKTtcbiAgICB0YWdBcnJheS5wdXNoKG5ldyBPcGVuZ3JhcGhUYWcoJ29nOmRlc2NyaXB0aW9uJywgbmV3c0FydGljbGVBcmcuY29udGVudCkpO1xuICAgIHRhZ0FycmF5LnB1c2gobmV3IE9wZW5ncmFwaFRhZygnb2c6aW1hZ2UnLCBuZXdzQXJ0aWNsZUFyZy5mZWF0dXJlZEltYWdlVXJsKSk7XG4gICAgcmV0dXJuIHRhZ0FycmF5O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVQcm9kdWN0T2dUYWdzKHByb2R1Y3RBcmc6IHBsdWdpbnMudHNjbGFzcy5zYWFzLklQcm9kdWN0KSB7XG4gICAgY29uc3QgdGFnQXJyYXk6IE9wZW5ncmFwaFRhZ1tdID0gW107XG4gICAgdGFnQXJyYXkucHVzaChuZXcgT3BlbmdyYXBoVGFnKCdvZzp1cmwnLCBnbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKTtcbiAgICB0YWdBcnJheS5wdXNoKG5ldyBPcGVuZ3JhcGhUYWcoJ29nOnRpdGxlJywgYCR7cHJvZHVjdEFyZy5uYW1lfSAtICR7cHJvZHVjdEFyZy5zbG9nYW59YCkpO1xuICAgIHRhZ0FycmF5LnB1c2gobmV3IE9wZW5ncmFwaFRhZygnb2c6c2l0ZV9uYW1lJywgcHJvZHVjdEFyZy5uYW1lKSlcbiAgICB0YWdBcnJheS5wdXNoKG5ldyBPcGVuZ3JhcGhUYWcoJ29nOmRlc2NyaXB0aW9uJywgcHJvZHVjdEFyZy5kZXNjcmlwdGlvbikpO1xuICAgIHRhZ0FycmF5LnB1c2gobmV3IE9wZW5ncmFwaFRhZygnb2c6aW1hZ2UnLCBwcm9kdWN0QXJnLmxvZ29MaW5rKSk7XG4gICAgcmV0dXJuIHRhZ0FycmF5O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lQXJnOiBzdHJpbmcsIGNvbnRlbnRBcmc6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qgb3BlbkdyYXBoRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGEnKTtcbiAgICBvcGVuR3JhcGhFbGVtZW50LnNldEF0dHJpYnV0ZSgncHJvcGVydHknLCBwcm9wZXJ0eU5hbWVBcmcpO1xuICAgIG9wZW5HcmFwaEVsZW1lbnQuY29udGVudCA9IGNvbnRlbnRBcmc7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gb3BlbkdyYXBoRWxlbWVudDtcbiAgfVxufVxuIiwgImltcG9ydCB7IFRhZyB9IGZyb20gJy4vd2Vic2V0dXAuY2xhc3Nlcy50YWcuanMnO1xuaW1wb3J0IHsgSnNvbkxkVGFnIH0gZnJvbSAnLi93ZWJzZXR1cC5jbGFzc2VzLnRhZy5qc29ubGR0YWcuanMnO1xuaW1wb3J0IHsgT3BlbmdyYXBoVGFnIH0gZnJvbSAnLi93ZWJzZXR1cC5jbGFzc2VzLnRhZy5vcGVuZ3JhcGh0YWcuanMnO1xuaW1wb3J0IHsgVGFnTWFuYWdlciB9IGZyb20gJy4vd2Vic2V0dXAuY2xhc3Nlcy50YWdtYW5hZ2VyLmpzJztcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi93ZWJzZXR1cC5wbHVnaW5zLmpzJztcblxuZXhwb3J0IHR5cGUgVEJhc2VMZXZlbFR5cGUgPSAnZ2xvYmFsJyB8ICdiYXNlJyB8ICdzdWJwYWdlJztcblxuZXhwb3J0IHR5cGUgVExldmVsU3RhdGUgPSAnZW5hYmxlZCcgfCAnZGlzYWJsZWQnO1xuXG5leHBvcnQgY2xhc3MgVGFnTGV2ZWwge1xuICBwdWJsaWMgdGFnTWFuYWdlclJlZjogVGFnTWFuYWdlcjtcblxuICBwcml2YXRlIHRpdGxlU3RvcmU6IHN0cmluZztcbiAgcHVibGljIHNldCB0aXRsZSh0aXRsZUFyZzogc3RyaW5nKSB7XG4gICAgdGhpcy50aXRsZVN0b3JlID0gdGl0bGVBcmc7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdlbmFibGVkJykge1xuICAgICAgZG9jdW1lbnQudGl0bGUgPSB0aGlzLnRpdGxlU3RvcmU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgdGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGVTdG9yZTtcbiAgfVxuXG4gIHB1YmxpYyB0eXBlOiBUQmFzZUxldmVsVHlwZTtcbiAgcHVibGljIHRhZ3M6IFRhZ1tdID0gW107XG5cbiAgcHVibGljIHN0YXRlOiBUTGV2ZWxTdGF0ZSA9ICdkaXNhYmxlZCc7XG5cbiAgY29uc3RydWN0b3IodGFnTWFuYWdlclJlZkFyZzogVGFnTWFuYWdlciwgbGV2ZWxUeXBlOiBUQmFzZUxldmVsVHlwZSkge1xuICAgIHRoaXMudGFnTWFuYWdlclJlZiA9IHRhZ01hbmFnZXJSZWZBcmc7XG4gIH1cblxuICBwdWJsaWMgYWRkVGFnKHRhZ0FyZzogVGFnIHwgVGFnW10pIHtcbiAgICBpZiAodGFnQXJnIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIGZvciAoY29uc3QgdGFnQXJnMiBvZiB0YWdBcmcpIHtcbiAgICAgICAgdGhpcy5hZGRUYWcodGFnQXJnMik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFncy5wdXNoKHRhZ0FyZyk7XG4gICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2VuYWJsZWQnKSB7XG4gICAgICAgIHRhZ0FyZy5hcHBlbmRUb0RvbSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRDb21wYW55SW5mbyhjb21wYW55RGF0YUFyZzogcGx1Z2lucy50c2NsYXNzLmJ1c2luZXNzLklDb21wYW55KSB7XG4gICAgdGhpcy5hZGRUYWcoSnNvbkxkVGFnLmNyZWF0ZUNvbXBhbnlKc29uTGQoY29tcGFueURhdGFBcmcpKTtcblxuICAgIC8vIGxldHMgY2FyZSBhYm91dCBvcGVuIGdyYXBoXG4gICAgdGhpcy5hZGRUYWcobmV3IE9wZW5ncmFwaFRhZygnb2c6dHlwZScsICdidXNpbmVzcy5idXNpbmVzcycpKTtcbiAgICB0aGlzLmFkZFRhZyhuZXcgT3BlbmdyYXBoVGFnKCdvZzp0aXRsZScsIGNvbXBhbnlEYXRhQXJnLm5hbWUpKTtcbiAgICB0aGlzLmFkZFRhZyhuZXcgT3BlbmdyYXBoVGFnKCdvZzp1cmwnLCBjb21wYW55RGF0YUFyZy5jb250YWN0LndlYnNpdGUpKTtcbiAgICB0aGlzLmFkZFRhZyhuZXcgT3BlbmdyYXBoVGFnKCdvZzppbWFnZScsIGNvbXBhbnlEYXRhQXJnLmNvbnRhY3QubG9nb1VybCkpO1xuICAgIHRoaXMuYWRkVGFnKFxuICAgICAgbmV3IE9wZW5ncmFwaFRhZyhcbiAgICAgICAgJ2J1c2luZXNzOmNvbnRhY3RfZGF0YTpzdHJlZXRfYWRkcmVzcycsXG4gICAgICAgIGAke2NvbXBhbnlEYXRhQXJnLmNvbnRhY3QuYWRkcmVzcy5zdHJlZXROYW1lfSAke2NvbXBhbnlEYXRhQXJnLmNvbnRhY3QuYWRkcmVzcy5ob3VzZU51bWJlcn1gXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLmFkZFRhZyhcbiAgICAgIG5ldyBPcGVuZ3JhcGhUYWcoJ2J1c2luZXNzOmNvbnRhY3RfZGF0YTpsb2NhbGl0eScsIGNvbXBhbnlEYXRhQXJnLmNvbnRhY3QuYWRkcmVzcy5wb3N0YWxDb2RlKVxuICAgICk7XG4gICAgdGhpcy5hZGRUYWcoXG4gICAgICBuZXcgT3BlbmdyYXBoVGFnKCdidXNpbmVzczpjb250YWN0X2RhdGE6cmVnaW9uJywgY29tcGFueURhdGFBcmcuY29udGFjdC5hZGRyZXNzLmNpdHkpXG4gICAgKTtcbiAgICB0aGlzLmFkZFRhZyhcbiAgICAgIG5ldyBPcGVuZ3JhcGhUYWcoXG4gICAgICAgICdidXNpbmVzczpjb250YWN0X2RhdGE6cG9zdGFsX2NvZGUnLFxuICAgICAgICBjb21wYW55RGF0YUFyZy5jb250YWN0LmFkZHJlc3MucG9zdGFsQ29kZVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5hZGRUYWcoXG4gICAgICBuZXcgT3BlbmdyYXBoVGFnKCdidXNpbmVzczpjb250YWN0X2RhdGE6Y291bnRyeV9uYW1lJywgY29tcGFueURhdGFBcmcuY29udGFjdC5hZGRyZXNzLmNvdW50cnkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGROZXdzQXJ0aWNsZUluZm8oYXJ0aWNsZUFyZzogcGx1Z2lucy50c2NsYXNzLmNvbnRlbnQuSUFydGljbGUpIHtcbiAgICB0aGlzLmFkZFRhZyhKc29uTGRUYWcuY3JlYXRlTmV3c0FydGljbGVKc29uTGQoYXJ0aWNsZUFyZykpO1xuICAgIHRoaXMuYWRkVGFnKE9wZW5ncmFwaFRhZy5jcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyhhcnRpY2xlQXJnKSk7XG4gIH1cblxuICBwdWJsaWMgYWRkUHJvZHVjdEluZm8ocHJvZHVjdEFyZzogcGx1Z2lucy50c2NsYXNzLnNhYXMuSVByb2R1Y3QsIGNvbXBhbnlBcmc6IHBsdWdpbnMudHNjbGFzcy5idXNpbmVzcy5JQ29tcGFueSkge1xuICAgIHRoaXMuYWRkVGFnKEpzb25MZFRhZy5jcmVhdGVQcm9kdWN0SnNvbkxkKHByb2R1Y3RBcmcsIGNvbXBhbnlBcmcpKTtcbiAgICB0aGlzLmFkZFRhZyhPcGVuZ3JhcGhUYWcuY3JlYXRlUHJvZHVjdE9nVGFncyhwcm9kdWN0QXJnKSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZW5hYmxlKCkge1xuICAgIGlmICh0aGlzLnRpdGxlKSB7XG4gICAgICBkb2N1bWVudC50aXRsZSA9IHRoaXMudGl0bGU7XG4gICAgfVxuICAgIGZvciAoY29uc3QgdGFnQXJnIG9mIHRoaXMudGFncykge1xuICAgICAgdGFnQXJnLmFwcGVuZFRvRG9tKCk7XG4gICAgfVxuICAgIHRoaXMuc3RhdGUgPSAnZW5hYmxlZCc7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzYWJsZSgpIHtcbiAgICBmb3IgKGNvbnN0IHRhZ0FyZyBvZiB0aGlzLnRhZ3MpIHtcbiAgICAgIHRhZ0FyZy5yZW1vdmVGcm9tRG9tKCk7XG4gICAgfVxuICAgIHRoaXMuc3RhdGUgPSAnZGlzYWJsZWQnO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgVGFnIH0gZnJvbSAnLi93ZWJzZXR1cC5jbGFzc2VzLnRhZy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBNZXRhVGFnIGV4dGVuZHMgVGFnIHtcbiAgY29uc3RydWN0b3IobWV0YU5hbWVBcmc6IHN0cmluZywgY29udGVudEFyZzogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCBtZXRhRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGEnKTtcbiAgICBtZXRhRWxlbWVudC5uYW1lID0gbWV0YU5hbWVBcmc7XG4gICAgbWV0YUVsZW1lbnQuY29udGVudCA9IGNvbnRlbnRBcmc7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gbWV0YUVsZW1lbnQ7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBUYWdMZXZlbCB9IGZyb20gJy4vd2Vic2V0dXAuY2xhc3Nlcy50YWdsZXZlbC5qcyc7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vd2Vic2V0dXAucGx1Z2lucy5qcyc7XG5pbXBvcnQgKiBhcyBpbnRlcmZhY2VzIGZyb20gJy4vaW50ZXJmYWNlcy9pbmRleC5qcyc7XG5pbXBvcnQgeyBNZXRhVGFnIH0gZnJvbSAnLi93ZWJzZXR1cC5jbGFzc2VzLnRhZy5tZXRhdGFnLmpzJztcbmltcG9ydCB7IEpzb25MZFRhZyB9IGZyb20gJy4vd2Vic2V0dXAuY2xhc3Nlcy50YWcuanNvbmxkdGFnLmpzJztcbmltcG9ydCB7IE9wZW5ncmFwaFRhZyB9IGZyb20gJy4vd2Vic2V0dXAuY2xhc3Nlcy50YWcub3BlbmdyYXBodGFnLmpzJztcblxuZXhwb3J0IGNsYXNzIFRhZ01hbmFnZXIge1xuICBwdWJsaWMgZ2xvYmFsTGV2ZWw6IFRhZ0xldmVsID0gbmV3IFRhZ0xldmVsKHRoaXMsICdnbG9iYWwnKTtcblxuICBwdWJsaWMgYmFzZUxldmVsOiBUYWdMZXZlbCA9IG5ldyBUYWdMZXZlbCh0aGlzLCAnYmFzZScpO1xuXG4gIHB1YmxpYyBhY3RpdmVMZXZlbDogVGFnTGV2ZWw7XG5cbiAgcHVibGljIGFzeW5jIHNldHVwKG1ldGFPYmplY3RBcmc6IGludGVyZmFjZXMuSU1ldGFPYmplY3QpIHtcbiAgICAvLyBnbG9iYWwgdGFnIGxldmVsXG4gICAgdGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IE1ldGFUYWcoJ2dvb2dsZScsICdub3RyYW5zbGF0ZScpKTtcbiAgICB0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgTWV0YVRhZygncmV2aXNpdC1hZnRlcicsICcxIGRheXMnKSk7XG5cbiAgICBpZiAobWV0YU9iamVjdEFyZy50d2l0dGVySGFuZGxlKSB7XG4gICAgICB0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgTWV0YVRhZygndHdpdHRlcjpjYXJkJywgJ3N1bW1hcnlfbGFyZ2VfaW1hZ2UnKSk7XG4gICAgICB0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgTWV0YVRhZygndHdpdHRlcjpzaXRlJywgbWV0YU9iamVjdEFyZy50d2l0dGVySGFuZGxlKSk7XG4gICAgICB0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgTWV0YVRhZygndHdpdHRlcjpjcmVhdG9yJywgbWV0YU9iamVjdEFyZy50d2l0dGVySGFuZGxlKSk7XG4gICAgfVxuXG4gICAgLy8gYmFzZSB0YWcgbGV2ZWxcbiAgICB0aGlzLmJhc2VMZXZlbC50aXRsZSA9IG1ldGFPYmplY3RBcmcudGl0bGU7XG4gICAgaWYgKG1ldGFPYmplY3RBcmcuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuYmFzZUxldmVsLmFkZFRhZyhuZXcgTWV0YVRhZygnZGVzY3JpcHRpb24nLCBtZXRhT2JqZWN0QXJnLmRlc2NyaXB0aW9uKSk7XG4gICAgfVxuXG4gICAgaWYgKG1ldGFPYmplY3RBcmcuY2Fub25pY2FsRG9tYWluKSB7XG4gICAgICB0aGlzLmJhc2VMZXZlbC5hZGRUYWcobmV3IE1ldGFUYWcoJ2Nhbm9uaWNhbCcsIG1ldGFPYmplY3RBcmcuY2Fub25pY2FsRG9tYWluKSk7XG4gICAgfVxuXG5cbiAgICAvLyBqc29uIGxkXG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIG1ldGFPYmplY3RBcmcubGRDb21wYW55ICYmICFtZXRhT2JqZWN0QXJnLmxkUHJvZHVjdDpcbiAgICAgICAgdGhpcy5iYXNlTGV2ZWwuYWRkQ29tcGFueUluZm8obWV0YU9iamVjdEFyZy5sZENvbXBhbnkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgISFtZXRhT2JqZWN0QXJnLmxkUHJvZHVjdDpcbiAgICAgICAgdGhpcy5iYXNlTGV2ZWwuYWRkUHJvZHVjdEluZm8obWV0YU9iamVjdEFyZy5sZFByb2R1Y3QsIG1ldGFPYmplY3RBcmcubGRDb21wYW55KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5nbG9iYWxMZXZlbC5lbmFibGUoKTtcbiAgICB0aGlzLmFjdGl2ZUxldmVsID0gdGhpcy5iYXNlTGV2ZWw7XG4gICAgYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRTdWJQYWdlTGV2ZWwobWV0YU9iamVjdEFyZzogaW50ZXJmYWNlcy5JTWV0YU9iamVjdCkge1xuICAgIGNvbnN0IHN1YlBhZ2VMZXZlbCA9IG5ldyBUYWdMZXZlbCh0aGlzLCAnc3VicGFnZScpO1xuICAgIHN1YlBhZ2VMZXZlbC50aXRsZSA9IG1ldGFPYmplY3RBcmcudGl0bGU7XG4gICAgaWYgKG1ldGFPYmplY3RBcmcuZGVzY3JpcHRpb24pIHtcbiAgICAgIHN1YlBhZ2VMZXZlbC5hZGRUYWcobmV3IE1ldGFUYWcoJ2Rlc2NyaXB0aW9uJywgbWV0YU9iamVjdEFyZy5kZXNjcmlwdGlvbikpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmRpc2FibGUoKTtcbiAgICB0aGlzLmFjdGl2ZUxldmVsID0gc3ViUGFnZUxldmVsO1xuICAgIGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCk7XG4gICAgcmV0dXJuIHN1YlBhZ2VMZXZlbDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZXZlcnRUb0Jhc2VMZXZlbCgpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVMZXZlbCAhPT0gdGhpcy5iYXNlTGV2ZWwpIHtcbiAgICAgIGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpO1xuICAgICAgdGhpcy5hY3RpdmVMZXZlbCA9IHRoaXMuYmFzZUxldmVsO1xuICAgICAgYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vd2Vic2V0dXAucGx1Z2lucy5qcyc7XG5pbXBvcnQgKiBhcyBpbnRlcmZhY2VzIGZyb20gJy4vaW50ZXJmYWNlcy9pbmRleC5qcyc7XG5pbXBvcnQgeyBUYWdNYW5hZ2VyIH0gZnJvbSAnLi93ZWJzZXR1cC5jbGFzc2VzLnRhZ21hbmFnZXIuanMnO1xuaW1wb3J0IHsgVGFnTGV2ZWwgfSBmcm9tICcuL3dlYnNldHVwLmNsYXNzZXMudGFnbGV2ZWwuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElXZWJTZXR1cENvbnN0cnVjdG9yT3B0aW9ucyB7XG4gIG1ldGFPYmplY3Q6IGludGVyZmFjZXMuSU1ldGFPYmplY3Q7XG4gIHNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiB0aGUgbWFpbiBXZWJTZXR1cCBjbGFzc1xuICovXG5leHBvcnQgY2xhc3MgV2ViU2V0dXAge1xuICBwdWJsaWMgdGFnTWFuYWdlcjogVGFnTWFuYWdlciA9IG5ldyBUYWdNYW5hZ2VyKCk7XG4gIHB1YmxpYyBvcHRpb25zOiBJV2ViU2V0dXBDb25zdHJ1Y3Rvck9wdGlvbnM7XG5cbiAgLy8gcHJpdmF0ZSBkZWZlcnJlZHNcbiAgcHJpdmF0ZSByZWFkeURlZmVycmVkID0gcGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtcbiAgcHJpdmF0ZSByZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQgPSBwbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO1xuXG4gIC8vIHB1YmxpYyBwcm9taXNlc1xuICBwdWJsaWMgcmVhZHlQcm9taXNlID0gdGhpcy5yZWFkeURlZmVycmVkLnByb21pc2U7XG4gIHB1YmxpYyByZWFkeUZvclNtYXJ0c3NyUHJvbWlzZSA9IHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnByb21pc2U7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnNBcmc6IElXZWJTZXR1cENvbnN0cnVjdG9yT3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNBcmc7XG4gICAgdGhpcy5zZXR1cCgpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKTtcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLnNtYXJ0c3NyV2FpdEZvclJlYWR5U2lnbmFsKSB7XG4gICAgICAgIHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnJlc29sdmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhbiBhc3luYyBzZXR1cCBjYWxsZWQgYnkgdGhlIGNvbnN0cnVjdG9yXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0dXAob3B0aW9uc0FyZz86IElXZWJTZXR1cENvbnN0cnVjdG9yT3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zQXJnKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zQXJnO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnRhZ01hbmFnZXIuc2V0dXAodGhpcy5vcHRpb25zLm1ldGFPYmplY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIHJldmVydHMgdGhlIGFjdGl2ZSBsZXZlbCBhbmQgcmV0dXJucyB0byB0aGUgYmFzZSBsZXZlbFxuICAgKi9cbiAgcHVibGljIHJldmVydFRvQmFzZUxldmVsKCkge1xuICAgIHRoaXMudGFnTWFuYWdlci5yZXZlcnRUb0Jhc2VMZXZlbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHNldHMgYSBzdWJwYWdlXG4gICAqIEBwYXJhbSBtZXRhT2JqZWN0QXJnXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0U3ViTGV2ZWwobWV0YU9iamVjdEFyZzogaW50ZXJmYWNlcy5JTWV0YU9iamVjdCkge1xuICAgIGNvbnN0IHN1YkxldmVsID0gYXdhaXQgdGhpcy50YWdNYW5hZ2VyLnNldFN1YlBhZ2VMZXZlbChtZXRhT2JqZWN0QXJnKTtcbiAgICByZXR1cm4gc3ViTGV2ZWw7XG4gIH1cblxuICAvKipcbiAgICogZmxhc2hlcyB0aGUgdGl0bGUgd2l0aCB0aGUgZ2l2ZW4gdGV4dFxuICAgKiBAcGFyYW0gZmxhc2hUZXh0QXJnXG4gICAqL1xuICBwdWJsaWMgZmxhc2hUaXRsZShmbGFzaFRleHRBcmc6IHN0cmluZykge31cblxuICAvKipcbiAgICogaW5mb3JtcyBzbWFydHNzciB0aGF0IHRoZSBwYWdlIGlzIHJlYWR5IHRvIGJlIHJlbmRlcmVkXG4gICAqL1xuICBwdWJsaWMgaW5mb3JtUmVhZHlGb3JTbWFydHNzcigpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5zbWFydHNzcldhaXRGb3JSZWFkeVNpZ25hbCkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFlvdSBoYXZlIG5vdCBpbmRpY2F0ZWQgdGhhdCB5b3UgaW5mb3JtIHNtYXJ0c3NyIGJ5IGEgZGVkaWNhdGVkIHNpZ25hbCEgUGxlYXNlIGNvbnNpZGVyIGRvaW5nIHNvIWBcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnJlc29sdmUoKTtcbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi93ZWJzZXR1cC5wbHVnaW5zLmpzJztcblxuLyoqXG4gKiBhIHRpdGxlIHByb3h5IGNsYXNzXG4gKiAtLT4gdG8gYmUgdXNlZCBpbiB0aGUgZnV0dXJlIHdoZW4gZmxhc2hpbmcgdGl0bGVzIGlzIHN1cHBvcnRlZFxuICovXG5leHBvcnQgY2xhc3MgVGl0bGUge31cbiIsICJleHBvcnQgKiBmcm9tICcuL3dlYnNldHVwLmNsYXNzZXMud2Vic2V0dXAuanMnO1xuZXhwb3J0ICogZnJvbSAnLi93ZWJzZXR1cC5jbGFzc2VzLnRhZy5tZXRhdGFnLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vd2Vic2V0dXAuY2xhc3Nlcy50YWcub3BlbmdyYXBodGFnLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vd2Vic2V0dXAuY2xhc3Nlcy50YWcuanNvbmxkdGFnLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vd2Vic2V0dXAuY2xhc3Nlcy50aXRsZS5qcyc7XG4iLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAie1xuICBcIm5hbWVcIjogXCJsZW5pc1wiLFxuICBcInZlcnNpb25cIjogXCIxLjMuMTdcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIkhvdyBzbW9vdGggc2Nyb2xsIHNob3VsZCBiZVwiLFxuICBcInR5cGVcIjogXCJtb2R1bGVcIixcbiAgXCJzaWRlRWZmZWN0c1wiOiBmYWxzZSxcbiAgXCJhdXRob3JcIjogXCJkYXJrcm9vbS5lbmdpbmVlcmluZ1wiLFxuICBcImxpY2Vuc2VcIjogXCJNSVRcIixcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImdpdCtodHRwczovL2dpdGh1Yi5jb20vZGFya3Jvb21lbmdpbmVlcmluZy9sZW5pcy5naXRcIlxuICB9LFxuICBcImJ1Z3NcIjoge1xuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2Rhcmtyb29tZW5naW5lZXJpbmcvbGVuaXMvaXNzdWVzXCJcbiAgfSxcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9kYXJrcm9vbWVuZ2luZWVyaW5nL2xlbmlzXCIsXG4gIFwiZnVuZGluZ1wiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0aHViXCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvZGFya3Jvb21lbmdpbmVlcmluZ1wiXG4gIH0sXG4gIFwia2V5d29yZHNcIjogW1xuICAgIFwic2Nyb2xsXCIsXG4gICAgXCJzbW9vdGhcIixcbiAgICBcImxlbmlzXCIsXG4gICAgXCJyZWFjdFwiLFxuICAgIFwidnVlXCJcbiAgXSxcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImJ1aWxkXCI6IFwicG5wbSBidWlsZDpjb3JlICYmIHBucG0gYnVpbGQ6YWxsXCIsXG4gICAgXCJidWlsZDpjb3JlXCI6IFwidHN1cCAtLWNvbmZpZyB0c3VwLmNvcmUudHNcIixcbiAgICBcImJ1aWxkOmFsbFwiOiBcInRzdXBcIixcbiAgICBcImRldlwiOiBcInBucG0gcnVuIC13IC0tcGFyYWxsZWwgL15kZXY6LiovXCIsXG4gICAgXCJkZXY6YnVpbGRcIjogXCJ0c3VwIC0td2F0Y2hcIixcbiAgICBcImRldjpwbGF5Z3JvdW5kXCI6IFwicG5wbSAtLWZpbHRlciBwbGF5Z3JvdW5kIGRldlwiLFxuICAgIFwiZGV2Om51eHRcIjogXCJwbnBtIC0tZmlsdGVyIHBsYXlncm91bmQtbnV4dCBkZXZcIixcbiAgICBcInJlYWRtZVwiOiBcIm5vZGUgLi9zY3JpcHRzL3VwZGF0ZS1yZWFkbWUuanNcIixcbiAgICBcInZlcnNpb246ZnJhbWVyXCI6IFwibnBtIHZlcnNpb24gcHJlcmVsZWFzZSAtLXByZWlkIGZyYW1lciAtLWZvcmNlIC0tbm8tZ2l0LXRhZy12ZXJzaW9uXCIsXG4gICAgXCJ2ZXJzaW9uOmRldlwiOiBcIm5wbSB2ZXJzaW9uIHByZXJlbGVhc2UgLS1wcmVpZCBkZXYgLS1mb3JjZSAtLW5vLWdpdC10YWctdmVyc2lvblwiLFxuICAgIFwidmVyc2lvbjpwYXRjaFwiOiBcIm5wbSB2ZXJzaW9uIHBhdGNoIC0tZm9yY2UgLS1uby1naXQtdGFnLXZlcnNpb25cIixcbiAgICBcInZlcnNpb246bWlub3JcIjogXCJucG0gdmVyc2lvbiBtaW5vciAtLWZvcmNlIC0tbm8tZ2l0LXRhZy12ZXJzaW9uXCIsXG4gICAgXCJ2ZXJzaW9uOm1ham9yXCI6IFwibnBtIHZlcnNpb24gbWFqb3IgLS1mb3JjZSAtLW5vLWdpdC10YWctdmVyc2lvblwiLFxuICAgIFwicG9zdHZlcnNpb25cIjogXCJwbnBtIGJ1aWxkICYmIHBucG0gcmVhZG1lXCIsXG4gICAgXCJwdWJsaXNoOmRldlwiOiBcIm5wbSBwdWJsaXNoIC0tdGFnIGRldlwiLFxuICAgIFwicHVibGlzaDpmcmFtZXJcIjogXCJucG0gcHVibGlzaCAtLXRhZyBmcmFtZXJcIixcbiAgICBcInB1Ymxpc2g6bWFpblwiOiBcIm5wbSBwdWJsaXNoXCJcbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJkaXN0XCJcbiAgXSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwidGVyc2VyXCI6IFwiXjUuMzcuMFwiLFxuICAgIFwidHN1cFwiOiBcIl44LjMuNVwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIl41LjcuM1wiXG4gIH0sXG4gIFwicGVlckRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJyZWFjdFwiOiBcIj49MTcuMC4wXCIsXG4gICAgXCJ2dWVcIjogXCI+PTMuMC4wXCIsXG4gICAgXCJAbnV4dC9raXRcIjogXCI+PTMuMC4wXCJcbiAgfSxcbiAgXCJwZWVyRGVwZW5kZW5jaWVzTWV0YVwiOiB7XG4gICAgXCJyZWFjdFwiOiB7XG4gICAgICBcIm9wdGlvbmFsXCI6IHRydWVcbiAgICB9LFxuICAgIFwidnVlXCI6IHtcbiAgICAgIFwib3B0aW9uYWxcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJAbnV4dC9raXRcIjoge1xuICAgICAgXCJvcHRpb25hbFwiOiB0cnVlXG4gICAgfVxuICB9LFxuICBcInVucGtnXCI6IFwiLi9kaXN0L2xlbmlzLm1qc1wiLFxuICBcIm1haW5cIjogXCIuL2Rpc3QvbGVuaXMubWpzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0L2xlbmlzLm1qc1wiLFxuICBcInR5cGVzXCI6IFwiLi9kaXN0L2xlbmlzLmQudHNcIixcbiAgXCJleHBvcnRzXCI6IHtcbiAgICBcIi5cIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9sZW5pcy5kLnRzXCIsXG4gICAgICBcImRlZmF1bHRcIjogXCIuL2Rpc3QvbGVuaXMubWpzXCJcbiAgICB9LFxuICAgIFwiLi9yZWFjdFwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2xlbmlzLXJlYWN0LmQudHNcIixcbiAgICAgIFwiZGVmYXVsdFwiOiBcIi4vZGlzdC9sZW5pcy1yZWFjdC5tanNcIlxuICAgIH0sXG4gICAgXCIuL3NuYXBcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9sZW5pcy1zbmFwLmQudHNcIixcbiAgICAgIFwiZGVmYXVsdFwiOiBcIi4vZGlzdC9sZW5pcy1zbmFwLm1qc1wiXG4gICAgfSxcbiAgICBcIi4vdnVlXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvbGVuaXMtdnVlLmQudHNcIixcbiAgICAgIFwiZGVmYXVsdFwiOiBcIi4vZGlzdC9sZW5pcy12dWUubWpzXCJcbiAgICB9LFxuICAgIFwiLi9udXh0XCI6IHtcbiAgICAgIFwiZGVmYXVsdFwiOiBcIi4vZGlzdC9sZW5pcy12dWUtbnV4dC5tanNcIlxuICAgIH0sXG4gICAgXCIuL251eHQvcnVudGltZS8qXCI6IHtcbiAgICAgIFwiZGVmYXVsdFwiOiBcIi4vZGlzdC9udXh0L3J1bnRpbWUvKi5tanNcIlxuICAgIH0sXG4gICAgXCIuL2Rpc3QvKlwiOiBcIi4vZGlzdC8qXCJcbiAgfVxufVxuIiwgIi8qKlxuICogQ2xhbXAgYSB2YWx1ZSBiZXR3ZWVuIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZVxuICpcbiAqIEBwYXJhbSBtaW4gTWluaW11bSB2YWx1ZVxuICogQHBhcmFtIGlucHV0IFZhbHVlIHRvIGNsYW1wXG4gKiBAcGFyYW0gbWF4IE1heGltdW0gdmFsdWVcbiAqIEByZXR1cm5zIENsYW1wZWQgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsYW1wKG1pbjogbnVtYmVyLCBpbnB1dDogbnVtYmVyLCBtYXg6IG51bWJlcikge1xuICByZXR1cm4gTWF0aC5tYXgobWluLCBNYXRoLm1pbihpbnB1dCwgbWF4KSlcbn1cblxuLyoqXG4gKiBUcnVuY2F0ZSBhIGZsb2F0aW5nLXBvaW50IG51bWJlciB0byBhIHNwZWNpZmllZCBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXNcbiAqXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gdHJ1bmNhdGVcbiAqIEBwYXJhbSBkZWNpbWFscyBOdW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdG8gdHJ1bmNhdGUgdG9cbiAqIEByZXR1cm5zIFRydW5jYXRlZCB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJ1bmNhdGUodmFsdWU6IG51bWJlciwgZGVjaW1hbHMgPSAwKSB7XG4gIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlLnRvRml4ZWQoZGVjaW1hbHMpKVxufVxuXG4vKipcbiAqICBMaW5lYXJseSBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHR3byB2YWx1ZXMgdXNpbmcgYW4gYW1vdW50ICgwIDw9IHQgPD0gMSlcbiAqXG4gKiBAcGFyYW0geCBGaXJzdCB2YWx1ZVxuICogQHBhcmFtIHkgU2Vjb25kIHZhbHVlXG4gKiBAcGFyYW0gdCBBbW91bnQgdG8gaW50ZXJwb2xhdGUgKDAgPD0gdCA8PSAxKVxuICogQHJldHVybnMgSW50ZXJwb2xhdGVkIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsZXJwKHg6IG51bWJlciwgeTogbnVtYmVyLCB0OiBudW1iZXIpIHtcbiAgcmV0dXJuICgxIC0gdCkgKiB4ICsgdCAqIHlcbn1cblxuLyoqXG4gKiBEYW1wIGEgdmFsdWUgb3ZlciB0aW1lIHVzaW5nIGEgZGFtcGluZyBmYWN0b3JcbiAqIHtAbGluayBodHRwOi8vd3d3LnJvcnlkcmlzY29sbC5jb20vMjAxNi8wMy8wNy9mcmFtZS1yYXRlLWluZGVwZW5kZW50LWRhbXBpbmctdXNpbmctbGVycC99XG4gKlxuICogQHBhcmFtIHggSW5pdGlhbCB2YWx1ZVxuICogQHBhcmFtIHkgVGFyZ2V0IHZhbHVlXG4gKiBAcGFyYW0gbGFtYmRhIERhbXBpbmcgZmFjdG9yXG4gKiBAcGFyYW0gZHQgVGltZSBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZVxuICogQHJldHVybnMgRGFtcGVkIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYW1wKHg6IG51bWJlciwgeTogbnVtYmVyLCBsYW1iZGE6IG51bWJlciwgZGVsdGFUaW1lOiBudW1iZXIpIHtcbiAgcmV0dXJuIGxlcnAoeCwgeSwgMSAtIE1hdGguZXhwKC1sYW1iZGEgKiBkZWx0YVRpbWUpKVxufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgbW9kdWxvIG9mIHRoZSBkaXZpZGVuZCBhbmQgZGl2aXNvciB3aGlsZSBrZWVwaW5nIHRoZSByZXN1bHQgd2l0aGluIHRoZSBzYW1lIHNpZ24gYXMgdGhlIGRpdmlzb3JcbiAqIHtAbGluayBodHRwczovL2FuZ3VzY3JvbGwuY29tL2p1c3QvanVzdC1tb2R1bG99XG4gKlxuICogQHBhcmFtIG4gRGl2aWRlbmRcbiAqIEBwYXJhbSBkIERpdmlzb3JcbiAqIEByZXR1cm5zIE1vZHVsb1xuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kdWxvKG46IG51bWJlciwgZDogbnVtYmVyKSB7XG4gIHJldHVybiAoKG4gJSBkKSArIGQpICUgZFxufVxuIiwgImltcG9ydCB7IGNsYW1wLCBkYW1wIH0gZnJvbSAnLi9tYXRocydcclxuaW1wb3J0IHR5cGUgeyBFYXNpbmdGdW5jdGlvbiwgRnJvbVRvT3B0aW9ucywgT25VcGRhdGVDYWxsYmFjayB9IGZyb20gJy4vdHlwZXMnXHJcblxyXG4vKipcclxuICogQW5pbWF0ZSBjbGFzcyB0byBoYW5kbGUgdmFsdWUgYW5pbWF0aW9ucyB3aXRoIGxlcnBpbmcgb3IgZWFzaW5nXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGNvbnN0IGFuaW1hdGUgPSBuZXcgQW5pbWF0ZSgpXHJcbiAqIGFuaW1hdGUuZnJvbVRvKDAsIDEwMCwgeyBkdXJhdGlvbjogMSwgZWFzaW5nOiAodCkgPT4gdCB9KVxyXG4gKiBhbmltYXRlLmFkdmFuY2UoMC41KSAvLyA1MFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFuaW1hdGUge1xyXG4gIGlzUnVubmluZyA9IGZhbHNlXHJcbiAgdmFsdWUgPSAwXHJcbiAgZnJvbSA9IDBcclxuICB0byA9IDBcclxuICBjdXJyZW50VGltZSA9IDBcclxuXHJcbiAgLy8gVGhlc2UgYXJlIGluc3RhbmNpYXRlZCBpbiB0aGUgZnJvbVRvIG1ldGhvZFxyXG4gIGxlcnA/OiBudW1iZXJcclxuICBkdXJhdGlvbj86IG51bWJlclxyXG4gIGVhc2luZz86IEVhc2luZ0Z1bmN0aW9uXHJcbiAgb25VcGRhdGU/OiBPblVwZGF0ZUNhbGxiYWNrXHJcblxyXG4gIC8qKlxyXG4gICAqIEFkdmFuY2UgdGhlIGFuaW1hdGlvbiBieSB0aGUgZ2l2ZW4gZGVsdGEgdGltZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIGRlbHRhVGltZSAtIFRoZSB0aW1lIGluIHNlY29uZHMgdG8gYWR2YW5jZSB0aGUgYW5pbWF0aW9uXHJcbiAgICovXHJcbiAgYWR2YW5jZShkZWx0YVRpbWU6IG51bWJlcikge1xyXG4gICAgaWYgKCF0aGlzLmlzUnVubmluZykgcmV0dXJuXHJcblxyXG4gICAgbGV0IGNvbXBsZXRlZCA9IGZhbHNlXHJcblxyXG4gICAgaWYgKHRoaXMuZHVyYXRpb24gJiYgdGhpcy5lYXNpbmcpIHtcclxuICAgICAgdGhpcy5jdXJyZW50VGltZSArPSBkZWx0YVRpbWVcclxuICAgICAgY29uc3QgbGluZWFyUHJvZ3Jlc3MgPSBjbGFtcCgwLCB0aGlzLmN1cnJlbnRUaW1lIC8gdGhpcy5kdXJhdGlvbiwgMSlcclxuXHJcbiAgICAgIGNvbXBsZXRlZCA9IGxpbmVhclByb2dyZXNzID49IDFcclxuICAgICAgY29uc3QgZWFzZWRQcm9ncmVzcyA9IGNvbXBsZXRlZCA/IDEgOiB0aGlzLmVhc2luZyhsaW5lYXJQcm9ncmVzcylcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZnJvbSArICh0aGlzLnRvIC0gdGhpcy5mcm9tKSAqIGVhc2VkUHJvZ3Jlc3NcclxuICAgIH0gZWxzZSBpZiAodGhpcy5sZXJwKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBkYW1wKHRoaXMudmFsdWUsIHRoaXMudG8sIHRoaXMubGVycCAqIDYwLCBkZWx0YVRpbWUpXHJcbiAgICAgIGlmIChNYXRoLnJvdW5kKHRoaXMudmFsdWUpID09PSB0aGlzLnRvKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudG9cclxuICAgICAgICBjb21wbGV0ZWQgPSB0cnVlXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIElmIG5vIGVhc2luZyBvciBsZXJwLCBqdXN0IGp1bXAgdG8gdGhlIGVuZCB2YWx1ZVxyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy50b1xyXG4gICAgICBjb21wbGV0ZWQgPSB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbXBsZXRlZCkge1xyXG4gICAgICB0aGlzLnN0b3AoKVxyXG4gICAgfVxyXG5cclxuICAgIC8vIENhbGwgdGhlIG9uVXBkYXRlIGNhbGxiYWNrIHdpdGggdGhlIGN1cnJlbnQgdmFsdWUgYW5kIGNvbXBsZXRlZCBzdGF0dXNcclxuICAgIHRoaXMub25VcGRhdGU/Lih0aGlzLnZhbHVlLCBjb21wbGV0ZWQpXHJcbiAgfVxyXG5cclxuICAvKiogU3RvcCB0aGUgYW5pbWF0aW9uICovXHJcbiAgc3RvcCgpIHtcclxuICAgIHRoaXMuaXNSdW5uaW5nID0gZmFsc2VcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB1cCB0aGUgYW5pbWF0aW9uIGZyb20gYSBzdGFydGluZyB2YWx1ZSB0byBhbiBlbmRpbmcgdmFsdWVcclxuICAgKiB3aXRoIG9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIGxlcnBpbmcsIGR1cmF0aW9uLCBlYXNpbmcsIGFuZCBvblVwZGF0ZSBjYWxsYmFja1xyXG4gICAqXHJcbiAgICogQHBhcmFtIGZyb20gLSBUaGUgc3RhcnRpbmcgdmFsdWVcclxuICAgKiBAcGFyYW0gdG8gLSBUaGUgZW5kaW5nIHZhbHVlXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciB0aGUgYW5pbWF0aW9uXHJcbiAgICovXHJcbiAgZnJvbVRvKFxyXG4gICAgZnJvbTogbnVtYmVyLFxyXG4gICAgdG86IG51bWJlcixcclxuICAgIHsgbGVycCwgZHVyYXRpb24sIGVhc2luZywgb25TdGFydCwgb25VcGRhdGUgfTogRnJvbVRvT3B0aW9uc1xyXG4gICkge1xyXG4gICAgdGhpcy5mcm9tID0gdGhpcy52YWx1ZSA9IGZyb21cclxuICAgIHRoaXMudG8gPSB0b1xyXG4gICAgdGhpcy5sZXJwID0gbGVycFxyXG4gICAgdGhpcy5kdXJhdGlvbiA9IGR1cmF0aW9uXHJcbiAgICB0aGlzLmVhc2luZyA9IGVhc2luZ1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IDBcclxuICAgIHRoaXMuaXNSdW5uaW5nID0gdHJ1ZVxyXG5cclxuICAgIG9uU3RhcnQ/LigpXHJcbiAgICB0aGlzLm9uVXBkYXRlID0gb25VcGRhdGVcclxuICB9XHJcbn1cclxuIiwgImV4cG9ydCBmdW5jdGlvbiBkZWJvdW5jZTxDQiBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZD4oXG4gIGNhbGxiYWNrOiBDQixcbiAgZGVsYXk6IG51bWJlclxuKSB7XG4gIGxldCB0aW1lcjogbnVtYmVyIHwgdW5kZWZpbmVkXG4gIHJldHVybiBmdW5jdGlvbiA8VD4odGhpczogVCwgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgY2FsbGJhY2s+KSB7XG4gICAgbGV0IGNvbnRleHQgPSB0aGlzXG4gICAgY2xlYXJUaW1lb3V0KHRpbWVyKVxuICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aW1lciA9IHVuZGVmaW5lZFxuICAgICAgY2FsbGJhY2suYXBwbHkoY29udGV4dCwgYXJncylcbiAgICB9LCBkZWxheSlcbiAgfVxufVxuIiwgImltcG9ydCB7IGRlYm91bmNlIH0gZnJvbSAnLi9kZWJvdW5jZSdcblxuLyoqXG4gKiBEaW1lbnNpb25zIGNsYXNzIHRvIGhhbmRsZSB0aGUgc2l6ZSBvZiB0aGUgY29udGVudCBhbmQgd3JhcHBlclxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBkaW1lbnNpb25zID0gbmV3IERpbWVuc2lvbnMod3JhcHBlciwgY29udGVudClcbiAqIGRpbWVuc2lvbnMub24oJ3Jlc2l6ZScsIChlKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKGUud2lkdGgsIGUuaGVpZ2h0KVxuICogfSlcbiAqL1xuZXhwb3J0IGNsYXNzIERpbWVuc2lvbnMge1xuICB3aWR0aCA9IDBcbiAgaGVpZ2h0ID0gMFxuICBzY3JvbGxIZWlnaHQgPSAwXG4gIHNjcm9sbFdpZHRoID0gMFxuXG4gIC8vIFRoZXNlIGFyZSBpbnN0YW5jaWF0ZWQgaW4gdGhlIGNvbnN0cnVjdG9yIGFzIHRoZXkgbmVlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBvcHRpb25zXG4gIHByaXZhdGUgZGVib3VuY2VkUmVzaXplPzogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdm9pZFxuICBwcml2YXRlIHdyYXBwZXJSZXNpemVPYnNlcnZlcj86IFJlc2l6ZU9ic2VydmVyXG4gIHByaXZhdGUgY29udGVudFJlc2l6ZU9ic2VydmVyPzogUmVzaXplT2JzZXJ2ZXJcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHdyYXBwZXI6IEhUTUxFbGVtZW50IHwgV2luZG93IHwgRWxlbWVudCxcbiAgICBwcml2YXRlIGNvbnRlbnQ6IEhUTUxFbGVtZW50IHwgRWxlbWVudCxcbiAgICB7IGF1dG9SZXNpemUgPSB0cnVlLCBkZWJvdW5jZTogZGVib3VuY2VWYWx1ZSA9IDI1MCB9ID0ge31cbiAgKSB7XG4gICAgaWYgKGF1dG9SZXNpemUpIHtcbiAgICAgIHRoaXMuZGVib3VuY2VkUmVzaXplID0gZGVib3VuY2UodGhpcy5yZXNpemUsIGRlYm91bmNlVmFsdWUpXG5cbiAgICAgIGlmICh0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3cpIHtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuZGVib3VuY2VkUmVzaXplLCBmYWxzZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuZGVib3VuY2VkUmVzaXplKVxuICAgICAgICB0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMud3JhcHBlcilcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpXG4gICAgICB0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY29udGVudClcbiAgICB9XG5cbiAgICB0aGlzLnJlc2l6ZSgpXG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICB0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpXG5cbiAgICBpZiAodGhpcy53cmFwcGVyID09PSB3aW5kb3cgJiYgdGhpcy5kZWJvdW5jZWRSZXNpemUpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmRlYm91bmNlZFJlc2l6ZSwgZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgcmVzaXplID0gKCkgPT4ge1xuICAgIHRoaXMub25XcmFwcGVyUmVzaXplKClcbiAgICB0aGlzLm9uQ29udGVudFJlc2l6ZSgpXG4gIH1cblxuICBvbldyYXBwZXJSZXNpemUgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdykge1xuICAgICAgdGhpcy53aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoXG4gICAgICB0aGlzLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodFxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndpZHRoID0gdGhpcy53cmFwcGVyLmNsaWVudFdpZHRoXG4gICAgICB0aGlzLmhlaWdodCA9IHRoaXMud3JhcHBlci5jbGllbnRIZWlnaHRcbiAgICB9XG4gIH1cblxuICBvbkNvbnRlbnRSZXNpemUgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdykge1xuICAgICAgdGhpcy5zY3JvbGxIZWlnaHQgPSB0aGlzLmNvbnRlbnQuc2Nyb2xsSGVpZ2h0XG4gICAgICB0aGlzLnNjcm9sbFdpZHRoID0gdGhpcy5jb250ZW50LnNjcm9sbFdpZHRoXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2Nyb2xsSGVpZ2h0ID0gdGhpcy53cmFwcGVyLnNjcm9sbEhlaWdodFxuICAgICAgdGhpcy5zY3JvbGxXaWR0aCA9IHRoaXMud3JhcHBlci5zY3JvbGxXaWR0aFxuICAgIH1cbiAgfVxuXG4gIGdldCBsaW1pdCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgeDogdGhpcy5zY3JvbGxXaWR0aCAtIHRoaXMud2lkdGgsXG4gICAgICB5OiB0aGlzLnNjcm9sbEhlaWdodCAtIHRoaXMuaGVpZ2h0LFxuICAgIH1cbiAgfVxufVxuIiwgIi8qKlxuICogRW1pdHRlciBjbGFzcyB0byBoYW5kbGUgZXZlbnRzXG4gKiBAZXhhbXBsZVxuICogY29uc3QgZW1pdHRlciA9IG5ldyBFbWl0dGVyKClcbiAqIGVtaXR0ZXIub24oJ2V2ZW50JywgKGRhdGEpID0+IHtcbiAqICAgY29uc29sZS5sb2coZGF0YSlcbiAqIH0pXG4gKiBlbWl0dGVyLmVtaXQoJ2V2ZW50JywgJ2RhdGEnKVxuICovXG5leHBvcnQgY2xhc3MgRW1pdHRlciB7XG4gIHByaXZhdGUgZXZlbnRzOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIEFycmF5PCguLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQ+IHwgdW5kZWZpbmVkXG4gID4gPSB7fVxuXG4gIC8qKlxuICAgKiBFbWl0IGFuIGV2ZW50IHdpdGggdGhlIGdpdmVuIGRhdGFcbiAgICogQHBhcmFtIGV2ZW50IEV2ZW50IG5hbWVcbiAgICogQHBhcmFtIGFyZ3MgRGF0YSB0byBwYXNzIHRvIHRoZSBldmVudCBoYW5kbGVyc1xuICAgKi9cbiAgZW1pdChldmVudDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pIHtcbiAgICBsZXQgY2FsbGJhY2tzID0gdGhpcy5ldmVudHNbZXZlbnRdIHx8IFtdXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbmd0aCA9IGNhbGxiYWNrcy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgY2FsbGJhY2tzW2ldPy4oLi4uYXJncylcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgY2FsbGJhY2sgdG8gdGhlIGV2ZW50XG4gICAqIEBwYXJhbSBldmVudCBFdmVudCBuYW1lXG4gICAqIEBwYXJhbSBjYiBDYWxsYmFjayBmdW5jdGlvblxuICAgKiBAcmV0dXJucyBVbnN1YnNjcmliZSBmdW5jdGlvblxuICAgKi9cbiAgb248Q0IgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IHZvaWQ+KGV2ZW50OiBzdHJpbmcsIGNiOiBDQikge1xuICAgIC8vIEFkZCB0aGUgY2FsbGJhY2sgdG8gdGhlIGV2ZW50J3MgY2FsbGJhY2sgbGlzdCwgb3IgY3JlYXRlIGEgbmV3IGxpc3Qgd2l0aCB0aGUgY2FsbGJhY2tcbiAgICB0aGlzLmV2ZW50c1tldmVudF0/LnB1c2goY2IpIHx8ICh0aGlzLmV2ZW50c1tldmVudF0gPSBbY2JdKVxuXG4gICAgLy8gUmV0dXJuIGFuIHVuc3Vic2NyaWJlIGZ1bmN0aW9uXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRoaXMuZXZlbnRzW2V2ZW50XSA9IHRoaXMuZXZlbnRzW2V2ZW50XT8uZmlsdGVyKChpKSA9PiBjYiAhPT0gaSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgY2FsbGJhY2sgZnJvbSB0aGUgZXZlbnRcbiAgICogQHBhcmFtIGV2ZW50IEV2ZW50IG5hbWVcbiAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrIGZ1bmN0aW9uXG4gICAqL1xuICBvZmY8Q0IgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IHZvaWQ+KGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiBDQikge1xuICAgIHRoaXMuZXZlbnRzW2V2ZW50XSA9IHRoaXMuZXZlbnRzW2V2ZW50XT8uZmlsdGVyKChpKSA9PiBjYWxsYmFjayAhPT0gaSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYWxsIGV2ZW50IGxpc3RlbmVycyBhbmQgY2xlYW4gdXBcbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5ldmVudHMgPSB7fVxuICB9XG59XG4iLCAiaW1wb3J0IHsgRW1pdHRlciB9IGZyb20gJy4vZW1pdHRlcidcclxuaW1wb3J0IHR5cGUgeyBWaXJ0dWFsU2Nyb2xsQ2FsbGJhY2sgfSBmcm9tICcuL3R5cGVzJ1xyXG5cclxuY29uc3QgTElORV9IRUlHSFQgPSAxMDAgLyA2XHJcbmNvbnN0IGxpc3RlbmVyT3B0aW9uczogQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSB7IHBhc3NpdmU6IGZhbHNlIH1cclxuXHJcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsIHtcclxuICB0b3VjaFN0YXJ0ID0ge1xyXG4gICAgeDogMCxcclxuICAgIHk6IDAsXHJcbiAgfVxyXG4gIGxhc3REZWx0YSA9IHtcclxuICAgIHg6IDAsXHJcbiAgICB5OiAwLFxyXG4gIH1cclxuICB3aW5kb3cgPSB7XHJcbiAgICB3aWR0aDogMCxcclxuICAgIGhlaWdodDogMCxcclxuICB9XHJcbiAgcHJpdmF0ZSBlbWl0dGVyID0gbmV3IEVtaXR0ZXIoKVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxlbWVudDogSFRNTEVsZW1lbnQsXHJcbiAgICBwcml2YXRlIG9wdGlvbnMgPSB7IHdoZWVsTXVsdGlwbGllcjogMSwgdG91Y2hNdWx0aXBsaWVyOiAxIH1cclxuICApIHtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uV2luZG93UmVzaXplLCBmYWxzZSlcclxuICAgIHRoaXMub25XaW5kb3dSZXNpemUoKVxyXG5cclxuICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIHRoaXMub25XaGVlbCwgbGlzdGVuZXJPcHRpb25zKVxyXG4gICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXHJcbiAgICAgICd0b3VjaHN0YXJ0JyxcclxuICAgICAgdGhpcy5vblRvdWNoU3RhcnQsXHJcbiAgICAgIGxpc3RlbmVyT3B0aW9uc1xyXG4gICAgKVxyXG4gICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXHJcbiAgICAgICd0b3VjaG1vdmUnLFxyXG4gICAgICB0aGlzLm9uVG91Y2hNb3ZlLFxyXG4gICAgICBsaXN0ZW5lck9wdGlvbnNcclxuICAgIClcclxuICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRoaXMub25Ub3VjaEVuZCwgbGlzdGVuZXJPcHRpb25zKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGFuIGV2ZW50IGxpc3RlbmVyIGZvciB0aGUgZ2l2ZW4gZXZlbnQgYW5kIGNhbGxiYWNrXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZXZlbnQgRXZlbnQgbmFtZVxyXG4gICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBmdW5jdGlvblxyXG4gICAqL1xyXG4gIG9uKGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiBWaXJ0dWFsU2Nyb2xsQ2FsbGJhY2spIHtcclxuICAgIHJldHVybiB0aGlzLmVtaXR0ZXIub24oZXZlbnQsIGNhbGxiYWNrKVxyXG4gIH1cclxuXHJcbiAgLyoqIFJlbW92ZSBhbGwgZXZlbnQgbGlzdGVuZXJzIGFuZCBjbGVhbiB1cCAqL1xyXG4gIGRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmVtaXR0ZXIuZGVzdHJveSgpXHJcblxyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25XaW5kb3dSZXNpemUsIGZhbHNlKVxyXG5cclxuICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd3aGVlbCcsIHRoaXMub25XaGVlbCwgbGlzdGVuZXJPcHRpb25zKVxyXG4gICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXHJcbiAgICAgICd0b3VjaHN0YXJ0JyxcclxuICAgICAgdGhpcy5vblRvdWNoU3RhcnQsXHJcbiAgICAgIGxpc3RlbmVyT3B0aW9uc1xyXG4gICAgKVxyXG4gICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXHJcbiAgICAgICd0b3VjaG1vdmUnLFxyXG4gICAgICB0aGlzLm9uVG91Y2hNb3ZlLFxyXG4gICAgICBsaXN0ZW5lck9wdGlvbnNcclxuICAgIClcclxuICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFxyXG4gICAgICAndG91Y2hlbmQnLFxyXG4gICAgICB0aGlzLm9uVG91Y2hFbmQsXHJcbiAgICAgIGxpc3RlbmVyT3B0aW9uc1xyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgaGFuZGxlciBmb3IgJ3RvdWNoc3RhcnQnIGV2ZW50XHJcbiAgICpcclxuICAgKiBAcGFyYW0gZXZlbnQgVG91Y2ggZXZlbnRcclxuICAgKi9cclxuICBvblRvdWNoU3RhcnQgPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcclxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBldmVudC50YXJnZXRUb3VjaGVzIGlzIG5vdCBkZWZpbmVkXHJcbiAgICBjb25zdCB7IGNsaWVudFgsIGNsaWVudFkgfSA9IGV2ZW50LnRhcmdldFRvdWNoZXNcclxuICAgICAgPyBldmVudC50YXJnZXRUb3VjaGVzWzBdXHJcbiAgICAgIDogZXZlbnRcclxuXHJcbiAgICB0aGlzLnRvdWNoU3RhcnQueCA9IGNsaWVudFhcclxuICAgIHRoaXMudG91Y2hTdGFydC55ID0gY2xpZW50WVxyXG5cclxuICAgIHRoaXMubGFzdERlbHRhID0ge1xyXG4gICAgICB4OiAwLFxyXG4gICAgICB5OiAwLFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZW1pdHRlci5lbWl0KCdzY3JvbGwnLCB7XHJcbiAgICAgIGRlbHRhWDogMCxcclxuICAgICAgZGVsdGFZOiAwLFxyXG4gICAgICBldmVudCxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvKiogRXZlbnQgaGFuZGxlciBmb3IgJ3RvdWNobW92ZScgZXZlbnQgKi9cclxuICBvblRvdWNoTW92ZSA9IChldmVudDogVG91Y2hFdmVudCkgPT4ge1xyXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIGV2ZW50LnRhcmdldFRvdWNoZXMgaXMgbm90IGRlZmluZWRcclxuICAgIGNvbnN0IHsgY2xpZW50WCwgY2xpZW50WSB9ID0gZXZlbnQudGFyZ2V0VG91Y2hlc1xyXG4gICAgICA/IGV2ZW50LnRhcmdldFRvdWNoZXNbMF1cclxuICAgICAgOiBldmVudFxyXG5cclxuICAgIGNvbnN0IGRlbHRhWCA9IC0oY2xpZW50WCAtIHRoaXMudG91Y2hTdGFydC54KSAqIHRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXJcclxuICAgIGNvbnN0IGRlbHRhWSA9IC0oY2xpZW50WSAtIHRoaXMudG91Y2hTdGFydC55KSAqIHRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXJcclxuXHJcbiAgICB0aGlzLnRvdWNoU3RhcnQueCA9IGNsaWVudFhcclxuICAgIHRoaXMudG91Y2hTdGFydC55ID0gY2xpZW50WVxyXG5cclxuICAgIHRoaXMubGFzdERlbHRhID0ge1xyXG4gICAgICB4OiBkZWx0YVgsXHJcbiAgICAgIHk6IGRlbHRhWSxcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVtaXR0ZXIuZW1pdCgnc2Nyb2xsJywge1xyXG4gICAgICBkZWx0YVgsXHJcbiAgICAgIGRlbHRhWSxcclxuICAgICAgZXZlbnQsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25Ub3VjaEVuZCA9IChldmVudDogVG91Y2hFdmVudCkgPT4ge1xyXG4gICAgdGhpcy5lbWl0dGVyLmVtaXQoJ3Njcm9sbCcsIHtcclxuICAgICAgZGVsdGFYOiB0aGlzLmxhc3REZWx0YS54LFxyXG4gICAgICBkZWx0YVk6IHRoaXMubGFzdERlbHRhLnksXHJcbiAgICAgIGV2ZW50LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIC8qKiBFdmVudCBoYW5kbGVyIGZvciAnd2hlZWwnIGV2ZW50ICovXHJcbiAgb25XaGVlbCA9IChldmVudDogV2hlZWxFdmVudCkgPT4ge1xyXG4gICAgbGV0IHsgZGVsdGFYLCBkZWx0YVksIGRlbHRhTW9kZSB9ID0gZXZlbnRcclxuXHJcbiAgICBjb25zdCBtdWx0aXBsaWVyWCA9XHJcbiAgICAgIGRlbHRhTW9kZSA9PT0gMSA/IExJTkVfSEVJR0hUIDogZGVsdGFNb2RlID09PSAyID8gdGhpcy53aW5kb3cud2lkdGggOiAxXHJcbiAgICBjb25zdCBtdWx0aXBsaWVyWSA9XHJcbiAgICAgIGRlbHRhTW9kZSA9PT0gMSA/IExJTkVfSEVJR0hUIDogZGVsdGFNb2RlID09PSAyID8gdGhpcy53aW5kb3cuaGVpZ2h0IDogMVxyXG5cclxuICAgIGRlbHRhWCAqPSBtdWx0aXBsaWVyWFxyXG4gICAgZGVsdGFZICo9IG11bHRpcGxpZXJZXHJcblxyXG4gICAgZGVsdGFYICo9IHRoaXMub3B0aW9ucy53aGVlbE11bHRpcGxpZXJcclxuICAgIGRlbHRhWSAqPSB0aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyXHJcblxyXG4gICAgdGhpcy5lbWl0dGVyLmVtaXQoJ3Njcm9sbCcsIHsgZGVsdGFYLCBkZWx0YVksIGV2ZW50IH0pXHJcbiAgfVxyXG5cclxuICBvbldpbmRvd1Jlc2l6ZSA9ICgpID0+IHtcclxuICAgIHRoaXMud2luZG93ID0ge1xyXG4gICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGgsXHJcbiAgICAgIGhlaWdodDogd2luZG93LmlubmVySGVpZ2h0LFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCAiaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gJy4uLy4uLy4uL3BhY2thZ2UuanNvbidcbmltcG9ydCB7IEFuaW1hdGUgfSBmcm9tICcuL2FuaW1hdGUnXG5pbXBvcnQgeyBEaW1lbnNpb25zIH0gZnJvbSAnLi9kaW1lbnNpb25zJ1xuaW1wb3J0IHsgRW1pdHRlciB9IGZyb20gJy4vZW1pdHRlcidcbmltcG9ydCB7IGNsYW1wLCBtb2R1bG8gfSBmcm9tICcuL21hdGhzJ1xuaW1wb3J0IHR5cGUge1xuICBMZW5pc0V2ZW50LFxuICBMZW5pc09wdGlvbnMsXG4gIFNjcm9sbENhbGxiYWNrLFxuICBTY3JvbGxpbmcsXG4gIFNjcm9sbFRvT3B0aW9ucyxcbiAgVXNlckRhdGEsXG4gIFZpcnR1YWxTY3JvbGxDYWxsYmFjayxcbiAgVmlydHVhbFNjcm9sbERhdGEsXG59IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsIH0gZnJvbSAnLi92aXJ0dWFsLXNjcm9sbCdcblxuLy8gVGVjaG5pY2FsIGV4cGxhbmF0aW9uXG4vLyAtIGxpc3RlbiB0byAnd2hlZWwnIGV2ZW50c1xuLy8gLSBwcmV2ZW50ICd3aGVlbCcgZXZlbnQgdG8gcHJldmVudCBzY3JvbGxcbi8vIC0gbm9ybWFsaXplIHdoZWVsIGRlbHRhXG4vLyAtIGFkZCBkZWx0YSB0byB0YXJnZXRTY3JvbGxcbi8vIC0gYW5pbWF0ZSBzY3JvbGwgdG8gdGFyZ2V0U2Nyb2xsIChzbW9vdGggY29udGV4dClcbi8vIC0gaWYgYW5pbWF0aW9uIGlzIG5vdCBydW5uaW5nLCBsaXN0ZW4gdG8gJ3Njcm9sbCcgZXZlbnRzIChuYXRpdmUgY29udGV4dClcblxudHlwZSBPcHRpb25hbFBpY2s8VCwgRiBleHRlbmRzIGtleW9mIFQ+ID0gT21pdDxULCBGPiAmIFBhcnRpYWw8UGljazxULCBGPj5cblxuY29uc3QgZGVmYXVsdEVhc2luZyA9ICh0OiBudW1iZXIpID0+IE1hdGgubWluKDEsIDEuMDAxIC0gTWF0aC5wb3coMiwgLTEwICogdCkpXG5cbmV4cG9ydCBjbGFzcyBMZW5pcyB7XG4gIHByaXZhdGUgX2lzU2Nyb2xsaW5nOiBTY3JvbGxpbmcgPSBmYWxzZSAvLyB0cnVlIHdoZW4gc2Nyb2xsIGlzIGFuaW1hdGluZ1xuICBwcml2YXRlIF9pc1N0b3BwZWQgPSBmYWxzZSAvLyB0cnVlIGlmIHVzZXIgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNjcm9sbCAtIGVuYWJsZS9kaXNhYmxlIHByb2dyYW1tYXRpY2FsbHlcbiAgcHJpdmF0ZSBfaXNMb2NrZWQgPSBmYWxzZSAvLyBzYW1lIGFzIGlzU3RvcHBlZCBidXQgZW5hYmxlZC9kaXNhYmxlZCB3aGVuIHNjcm9sbCByZWFjaGVzIHRhcmdldFxuICBwcml2YXRlIF9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50ID0gZmFsc2VcbiAgcHJpdmF0ZSBfcmVzZXRWZWxvY2l0eVRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGxcbiAgcHJpdmF0ZSBfcmFmSWQ6IG51bWJlciB8IG51bGwgPSBudWxsXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSB1c2VyIGlzIHRvdWNoaW5nIHRoZSBzY3JlZW5cbiAgICovXG4gIGlzVG91Y2hpbmc/OiBib29sZWFuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBpbiBtcyBzaW5jZSB0aGUgbGVuaXMgaW5zdGFuY2Ugd2FzIGNyZWF0ZWRcbiAgICovXG4gIHRpbWUgPSAwXG4gIC8qKlxuICAgKiBVc2VyIGRhdGEgdGhhdCB3aWxsIGJlIGZvcndhcmRlZCB0aHJvdWdoIHRoZSBzY3JvbGwgZXZlbnRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogbGVuaXMuc2Nyb2xsVG8oMTAwLCB7XG4gICAqICAgdXNlckRhdGE6IHtcbiAgICogICAgIGZvbzogJ2JhcidcbiAgICogICB9XG4gICAqIH0pXG4gICAqL1xuICB1c2VyRGF0YTogVXNlckRhdGEgPSB7fVxuICAvKipcbiAgICogVGhlIGxhc3QgdmVsb2NpdHkgb2YgdGhlIHNjcm9sbFxuICAgKi9cbiAgbGFzdFZlbG9jaXR5ID0gMFxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgdmVsb2NpdHkgb2YgdGhlIHNjcm9sbFxuICAgKi9cbiAgdmVsb2NpdHkgPSAwXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0aW9uIG9mIHRoZSBzY3JvbGxcbiAgICovXG4gIGRpcmVjdGlvbjogMSB8IC0xIHwgMCA9IDBcbiAgLyoqXG4gICAqIFRoZSBvcHRpb25zIHBhc3NlZCB0byB0aGUgbGVuaXMgaW5zdGFuY2VcbiAgICovXG4gIG9wdGlvbnM6IE9wdGlvbmFsUGljazxcbiAgICBSZXF1aXJlZDxMZW5pc09wdGlvbnM+LFxuICAgICdkdXJhdGlvbicgfCAnZWFzaW5nJyB8ICdwcmV2ZW50JyB8ICd2aXJ0dWFsU2Nyb2xsJ1xuICA+XG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IHNjcm9sbCB2YWx1ZVxuICAgKi9cbiAgdGFyZ2V0U2Nyb2xsOiBudW1iZXJcbiAgLyoqXG4gICAqIFRoZSBhbmltYXRlZCBzY3JvbGwgdmFsdWVcbiAgICovXG4gIGFuaW1hdGVkU2Nyb2xsOiBudW1iZXJcblxuICAvLyBUaGVzZSBhcmUgaW5zdGFuY2lhdGVkIGhlcmUgYXMgdGhleSBkb24ndCBuZWVkIGluZm9ybWF0aW9uIGZyb20gdGhlIG9wdGlvbnNcbiAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRlID0gbmV3IEFuaW1hdGUoKVxuICBwcml2YXRlIHJlYWRvbmx5IGVtaXR0ZXIgPSBuZXcgRW1pdHRlcigpXG4gIC8vIFRoZXNlIGFyZSBpbnN0YW5jaWF0ZWQgaW4gdGhlIGNvbnN0cnVjdG9yIGFzIHRoZXkgbmVlZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBvcHRpb25zXG4gIHJlYWRvbmx5IGRpbWVuc2lvbnM6IERpbWVuc2lvbnMgLy8gVGhpcyBpcyBub3QgcHJpdmF0ZSBiZWNhdXNlIGl0J3MgdXNlZCBpbiB0aGUgU25hcCBjbGFzc1xuICBwcml2YXRlIHJlYWRvbmx5IHZpcnR1YWxTY3JvbGw6IFZpcnR1YWxTY3JvbGxcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgd3JhcHBlciA9IHdpbmRvdyxcbiAgICBjb250ZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFxuICAgIGV2ZW50c1RhcmdldCA9IHdyYXBwZXIsXG4gICAgc21vb3RoV2hlZWwgPSB0cnVlLFxuICAgIHN5bmNUb3VjaCA9IGZhbHNlLFxuICAgIHN5bmNUb3VjaExlcnAgPSAwLjA3NSxcbiAgICB0b3VjaEluZXJ0aWFFeHBvbmVudCA9IDEuNyxcbiAgICBkdXJhdGlvbiwgLy8gaW4gc2Vjb25kc1xuICAgIGVhc2luZyxcbiAgICBsZXJwID0gMC4xLFxuICAgIGluZmluaXRlID0gZmFsc2UsXG4gICAgb3JpZW50YXRpb24gPSAndmVydGljYWwnLCAvLyB2ZXJ0aWNhbCwgaG9yaXpvbnRhbFxuICAgIGdlc3R1cmVPcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAnYm90aCcgOiAndmVydGljYWwnLCAvLyB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCwgYm90aFxuICAgIHRvdWNoTXVsdGlwbGllciA9IDEsXG4gICAgd2hlZWxNdWx0aXBsaWVyID0gMSxcbiAgICBhdXRvUmVzaXplID0gdHJ1ZSxcbiAgICBwcmV2ZW50LFxuICAgIHZpcnR1YWxTY3JvbGwsXG4gICAgb3ZlcnNjcm9sbCA9IHRydWUsXG4gICAgYXV0b1JhZiA9IGZhbHNlLFxuICAgIGFuY2hvcnMgPSBmYWxzZSxcbiAgICBhdXRvVG9nZ2xlID0gZmFsc2UsIC8vIGh0dHBzOi8vY2FuaXVzZS5jb20vP3NlYXJjaD10cmFuc2l0aW9uLWJlaGF2aW9yXG4gICAgYWxsb3dOZXN0ZWRTY3JvbGwgPSBmYWxzZSxcbiAgICAvLyBAdHMtaWdub3JlOiB0aGlzIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiB0aGUgZnV0dXJlXG4gICAgX19leHBlcmltZW50YWxfX25haXZlRGltZW5zaW9ucyA9IGZhbHNlLFxuICAgIG5haXZlRGltZW5zaW9ucyA9IF9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnMsXG4gICAgc3RvcEluZXJ0aWFPbk5hdmlnYXRlID0gZmFsc2UsXG4gIH06IExlbmlzT3B0aW9ucyA9IHt9KSB7XG4gICAgLy8gU2V0IHZlcnNpb25cbiAgICB3aW5kb3cubGVuaXNWZXJzaW9uID0gdmVyc2lvblxuXG4gICAgLy8gQ2hlY2sgaWYgd3JhcHBlciBpcyA8aHRtbD4sIGZhbGxiYWNrIHRvIHdpbmRvd1xuICAgIGlmICghd3JhcHBlciB8fCB3cmFwcGVyID09PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIHdyYXBwZXIgPSB3aW5kb3dcbiAgICB9XG5cbiAgICAvLyBmbGlwIHRvIGVhc2luZy90aW1lIGJhc2VkIGFuaW1hdGlvbiBpZiBhdCBsZWFzdCBvbmUgb2YgdGhlbSBpcyBwcm92aWRlZFxuICAgIGlmICh0eXBlb2YgZHVyYXRpb24gPT09ICdudW1iZXInICYmIHR5cGVvZiBlYXNpbmcgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVhc2luZyA9IGRlZmF1bHRFYXNpbmdcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlYXNpbmcgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGR1cmF0aW9uICE9PSAnbnVtYmVyJykge1xuICAgICAgZHVyYXRpb24gPSAxXG4gICAgfVxuXG4gICAgLy8gU2V0dXAgb3B0aW9uc1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIHdyYXBwZXIsXG4gICAgICBjb250ZW50LFxuICAgICAgZXZlbnRzVGFyZ2V0LFxuICAgICAgc21vb3RoV2hlZWwsXG4gICAgICBzeW5jVG91Y2gsXG4gICAgICBzeW5jVG91Y2hMZXJwLFxuICAgICAgdG91Y2hJbmVydGlhRXhwb25lbnQsXG4gICAgICBkdXJhdGlvbixcbiAgICAgIGVhc2luZyxcbiAgICAgIGxlcnAsXG4gICAgICBpbmZpbml0ZSxcbiAgICAgIGdlc3R1cmVPcmllbnRhdGlvbixcbiAgICAgIG9yaWVudGF0aW9uLFxuICAgICAgdG91Y2hNdWx0aXBsaWVyLFxuICAgICAgd2hlZWxNdWx0aXBsaWVyLFxuICAgICAgYXV0b1Jlc2l6ZSxcbiAgICAgIHByZXZlbnQsXG4gICAgICB2aXJ0dWFsU2Nyb2xsLFxuICAgICAgb3ZlcnNjcm9sbCxcbiAgICAgIGF1dG9SYWYsXG4gICAgICBhbmNob3JzLFxuICAgICAgYXV0b1RvZ2dsZSxcbiAgICAgIGFsbG93TmVzdGVkU2Nyb2xsLFxuICAgICAgbmFpdmVEaW1lbnNpb25zLFxuICAgICAgc3RvcEluZXJ0aWFPbk5hdmlnYXRlLFxuICAgIH1cblxuICAgIC8vIFNldHVwIGRpbWVuc2lvbnMgaW5zdGFuY2VcbiAgICB0aGlzLmRpbWVuc2lvbnMgPSBuZXcgRGltZW5zaW9ucyh3cmFwcGVyLCBjb250ZW50LCB7IGF1dG9SZXNpemUgfSlcblxuICAgIC8vIFNldHVwIGNsYXNzIG5hbWVcbiAgICB0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpXG5cbiAgICAvLyBTZXQgdGhlIGluaXRpYWwgc2Nyb2xsIHZhbHVlIGZvciBhbGwgc2Nyb2xsIGluZm9ybWF0aW9uXG4gICAgdGhpcy50YXJnZXRTY3JvbGwgPSB0aGlzLmFuaW1hdGVkU2Nyb2xsID0gdGhpcy5hY3R1YWxTY3JvbGxcblxuICAgIC8vIEFkZCBldmVudCBsaXN0ZW5lcnNcbiAgICB0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uTmF0aXZlU2Nyb2xsLCBmYWxzZSlcblxuICAgIHRoaXMub3B0aW9ucy53cmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbGVuZCcsIHRoaXMub25TY3JvbGxFbmQsIHtcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSlcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYW5jaG9ycyB8fCB0aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnY2xpY2snLFxuICAgICAgICB0aGlzLm9uQ2xpY2sgYXMgRXZlbnRMaXN0ZW5lcixcbiAgICAgICAgZmFsc2VcbiAgICAgIClcbiAgICB9XG5cbiAgICB0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3BvaW50ZXJkb3duJyxcbiAgICAgIHRoaXMub25Qb2ludGVyRG93biBhcyBFdmVudExpc3RlbmVyLFxuICAgICAgZmFsc2VcbiAgICApXG5cbiAgICAvLyBTZXR1cCB2aXJ0dWFsIHNjcm9sbCBpbnN0YW5jZVxuICAgIHRoaXMudmlydHVhbFNjcm9sbCA9IG5ldyBWaXJ0dWFsU2Nyb2xsKGV2ZW50c1RhcmdldCBhcyBIVE1MRWxlbWVudCwge1xuICAgICAgdG91Y2hNdWx0aXBsaWVyLFxuICAgICAgd2hlZWxNdWx0aXBsaWVyLFxuICAgIH0pXG4gICAgdGhpcy52aXJ0dWFsU2Nyb2xsLm9uKCdzY3JvbGwnLCB0aGlzLm9uVmlydHVhbFNjcm9sbClcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSkge1xuICAgICAgdGhpcy5jaGVja092ZXJmbG93KClcbiAgICAgIHRoaXMucm9vdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kLCB7XG4gICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b1JhZikge1xuICAgICAgdGhpcy5fcmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5yYWYpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3kgdGhlIGxlbmlzIGluc3RhbmNlLCByZW1vdmUgYWxsIGV2ZW50IGxpc3RlbmVycyBhbmQgY2xlYW4gdXAgdGhlIGNsYXNzIG5hbWVcbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5lbWl0dGVyLmRlc3Ryb3koKVxuXG4gICAgdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICdzY3JvbGwnLFxuICAgICAgdGhpcy5vbk5hdGl2ZVNjcm9sbCxcbiAgICAgIGZhbHNlXG4gICAgKVxuXG4gICAgdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsZW5kJywgdGhpcy5vblNjcm9sbEVuZCwge1xuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9KVxuXG4gICAgdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICdwb2ludGVyZG93bicsXG4gICAgICB0aGlzLm9uUG9pbnRlckRvd24gYXMgRXZlbnRMaXN0ZW5lcixcbiAgICAgIGZhbHNlXG4gICAgKVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hbmNob3JzIHx8IHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpIHtcbiAgICAgIHRoaXMub3B0aW9ucy53cmFwcGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdjbGljaycsXG4gICAgICAgIHRoaXMub25DbGljayBhcyBFdmVudExpc3RlbmVyLFxuICAgICAgICBmYWxzZVxuICAgICAgKVxuICAgIH1cblxuICAgIHRoaXMudmlydHVhbFNjcm9sbC5kZXN0cm95KClcbiAgICB0aGlzLmRpbWVuc2lvbnMuZGVzdHJveSgpXG5cbiAgICB0aGlzLmNsZWFuVXBDbGFzc05hbWUoKVxuXG4gICAgaWYgKHRoaXMuX3JhZklkKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWZJZClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGV2ZW50IGxpc3RlbmVyIGZvciB0aGUgZ2l2ZW4gZXZlbnQgYW5kIGNhbGxiYWNrXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCBFdmVudCBuYW1lXG4gICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBmdW5jdGlvblxuICAgKiBAcmV0dXJucyBVbnN1YnNjcmliZSBmdW5jdGlvblxuICAgKi9cbiAgb24oZXZlbnQ6ICdzY3JvbGwnLCBjYWxsYmFjazogU2Nyb2xsQ2FsbGJhY2spOiAoKSA9PiB2b2lkXG4gIG9uKGV2ZW50OiAndmlydHVhbC1zY3JvbGwnLCBjYWxsYmFjazogVmlydHVhbFNjcm9sbENhbGxiYWNrKTogKCkgPT4gdm9pZFxuICBvbihldmVudDogTGVuaXNFdmVudCwgY2FsbGJhY2s6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmVtaXR0ZXIub24oZXZlbnQsIGNhbGxiYWNrKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBldmVudCBsaXN0ZW5lciBmb3IgdGhlIGdpdmVuIGV2ZW50IGFuZCBjYWxsYmFja1xuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgRXZlbnQgbmFtZVxuICAgKiBAcGFyYW0gY2FsbGJhY2sgQ2FsbGJhY2sgZnVuY3Rpb25cbiAgICovXG4gIG9mZihldmVudDogJ3Njcm9sbCcsIGNhbGxiYWNrOiBTY3JvbGxDYWxsYmFjayk6IHZvaWRcbiAgb2ZmKGV2ZW50OiAndmlydHVhbC1zY3JvbGwnLCBjYWxsYmFjazogVmlydHVhbFNjcm9sbENhbGxiYWNrKTogdm9pZFxuICBvZmYoZXZlbnQ6IExlbmlzRXZlbnQsIGNhbGxiYWNrOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5lbWl0dGVyLm9mZihldmVudCwgY2FsbGJhY2spXG4gIH1cblxuICBwcml2YXRlIG9uU2Nyb2xsRW5kID0gKGU6IEV2ZW50IHwgQ3VzdG9tRXZlbnQpID0+IHtcbiAgICBpZiAoIShlIGluc3RhbmNlb2YgQ3VzdG9tRXZlbnQpKSB7XG4gICAgICBpZiAodGhpcy5pc1Njcm9sbGluZyA9PT0gJ3Ntb290aCcgfHwgdGhpcy5pc1Njcm9sbGluZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCA9ICgpID0+IHtcbiAgICB0aGlzLm9wdGlvbnMud3JhcHBlci5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdzY3JvbGxlbmQnLCB7XG4gICAgICAgIGJ1YmJsZXM6IHRoaXMub3B0aW9ucy53cmFwcGVyID09PSB3aW5kb3csXG4gICAgICAgIC8vIGNhbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBsZW5pc1Njcm9sbEVuZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0IG92ZXJmbG93KCkge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5pc0hvcml6b250YWwgPyAnb3ZlcmZsb3cteCcgOiAnb3ZlcmZsb3cteSdcbiAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJvb3RFbGVtZW50KVtcbiAgICAgIHByb3BlcnR5IGFzIGtleW9mIENTU1N0eWxlRGVjbGFyYXRpb25cbiAgICBdIGFzIHN0cmluZ1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja092ZXJmbG93KCkge1xuICAgIGlmIChbJ2hpZGRlbicsICdjbGlwJ10uaW5jbHVkZXModGhpcy5vdmVyZmxvdykpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxTdG9wKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcm5hbFN0YXJ0KClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uVHJhbnNpdGlvbkVuZCA9IChldmVudDogVHJhbnNpdGlvbkV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LnByb3BlcnR5TmFtZS5pbmNsdWRlcygnb3ZlcmZsb3cnKSkge1xuICAgICAgdGhpcy5jaGVja092ZXJmbG93KClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFNjcm9sbChzY3JvbGw6IG51bWJlcikge1xuICAgIC8vIGJlaGF2aW9yOiAnaW5zdGFudCcgYnlwYXNzZXMgdGhlIHNjcm9sbC1iZWhhdmlvciBDU1MgcHJvcGVydHlcblxuICAgIGlmICh0aGlzLmlzSG9yaXpvbnRhbCkge1xuICAgICAgdGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oeyBsZWZ0OiBzY3JvbGwsIGJlaGF2aW9yOiAnaW5zdGFudCcgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oeyB0b3A6IHNjcm9sbCwgYmVoYXZpb3I6ICdpbnN0YW50JyB9KVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25DbGljayA9IChldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBldmVudC5jb21wb3NlZFBhdGgoKVxuXG4gICAgLy8gZmlsdGVyIGFuY2hvciBlbGVtZW50cyAoZWxlbWVudHMgd2l0aCBhIHZhbGlkIGhyZWYgYXR0cmlidXRlKVxuICAgIGNvbnN0IGFuY2hvckVsZW1lbnRzID0gcGF0aC5maWx0ZXIoXG4gICAgICAobm9kZSkgPT4gbm9kZSBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50ICYmIG5vZGUuZ2V0QXR0cmlidXRlKCdocmVmJylcbiAgICApIGFzIEhUTUxBbmNob3JFbGVtZW50W11cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYW5jaG9ycykge1xuICAgICAgY29uc3QgYW5jaG9yID0gYW5jaG9yRWxlbWVudHMuZmluZCgobm9kZSkgPT5cbiAgICAgICAgbm9kZS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKT8uaW5jbHVkZXMoJyMnKVxuICAgICAgKVxuICAgICAgaWYgKGFuY2hvcikge1xuICAgICAgICBjb25zdCBocmVmID0gYW5jaG9yLmdldEF0dHJpYnV0ZSgnaHJlZicpXG5cbiAgICAgICAgaWYgKGhyZWYpIHtcbiAgICAgICAgICBjb25zdCBvcHRpb25zID1cbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLm9wdGlvbnMuYW5jaG9ycyA9PT0gJ29iamVjdCcgJiYgdGhpcy5vcHRpb25zLmFuY2hvcnNcbiAgICAgICAgICAgICAgPyB0aGlzLm9wdGlvbnMuYW5jaG9yc1xuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuXG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gYCMke2hyZWYuc3BsaXQoJyMnKVsxXX1gXG5cbiAgICAgICAgICB0aGlzLnNjcm9sbFRvKHRhcmdldCwgb3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlKSB7XG4gICAgICBjb25zdCBpbnRlcm5hbExpbmsgPSBhbmNob3JFbGVtZW50cy5maW5kKFxuICAgICAgICAobm9kZSkgPT4gbm9kZS5ob3N0ID09PSB3aW5kb3cubG9jYXRpb24uaG9zdFxuICAgICAgKVxuXG4gICAgICBpZiAoaW50ZXJuYWxMaW5rKSB7XG4gICAgICAgIHRoaXMucmVzZXQoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Qb2ludGVyRG93biA9IChldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCkgPT4ge1xuICAgIGlmIChldmVudC5idXR0b24gPT09IDEpIHtcbiAgICAgIHRoaXMucmVzZXQoKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25WaXJ0dWFsU2Nyb2xsID0gKGRhdGE6IFZpcnR1YWxTY3JvbGxEYXRhKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHRoaXMub3B0aW9ucy52aXJ0dWFsU2Nyb2xsID09PSAnZnVuY3Rpb24nICYmXG4gICAgICB0aGlzLm9wdGlvbnMudmlydHVhbFNjcm9sbChkYXRhKSA9PT0gZmFsc2VcbiAgICApXG4gICAgICByZXR1cm5cblxuICAgIGNvbnN0IHsgZGVsdGFYLCBkZWx0YVksIGV2ZW50IH0gPSBkYXRhXG5cbiAgICB0aGlzLmVtaXR0ZXIuZW1pdCgndmlydHVhbC1zY3JvbGwnLCB7IGRlbHRhWCwgZGVsdGFZLCBldmVudCB9KVxuXG4gICAgLy8ga2VlcCB6b29tIGZlYXR1cmVcbiAgICBpZiAoZXZlbnQuY3RybEtleSkgcmV0dXJuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmIChldmVudC5sZW5pc1N0b3BQcm9wYWdhdGlvbikgcmV0dXJuXG5cbiAgICBjb25zdCBpc1RvdWNoID0gZXZlbnQudHlwZS5pbmNsdWRlcygndG91Y2gnKVxuICAgIGNvbnN0IGlzV2hlZWwgPSBldmVudC50eXBlLmluY2x1ZGVzKCd3aGVlbCcpXG5cbiAgICB0aGlzLmlzVG91Y2hpbmcgPSBldmVudC50eXBlID09PSAndG91Y2hzdGFydCcgfHwgZXZlbnQudHlwZSA9PT0gJ3RvdWNobW92ZSdcbiAgICAvLyBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNoZW5kJykge1xuICAgIC8vICAgY29uc29sZS5sb2coJ3RvdWNoZW5kJywgdGhpcy5zY3JvbGwpXG4gICAgLy8gICAvLyB0aGlzLmxhc3RWZWxvY2l0eSA9IHRoaXMudmVsb2NpdHlcbiAgICAvLyAgIC8vIHRoaXMudmVsb2NpdHkgPSAwXG4gICAgLy8gICAvLyB0aGlzLmlzU2Nyb2xsaW5nID0gZmFsc2VcbiAgICAvLyAgIHRoaXMuZW1pdCh7IHR5cGU6ICd0b3VjaGVuZCcgfSlcbiAgICAvLyAgIC8vIGFsZXJ0KCd0b3VjaGVuZCcpXG4gICAgLy8gICByZXR1cm5cbiAgICAvLyB9XG5cbiAgICBjb25zdCBpc0NsaWNrT3JUYXAgPSBkZWx0YVggPT09IDAgJiYgZGVsdGFZID09PSAwXG5cbiAgICBjb25zdCBpc1RhcFRvU3RvcCA9XG4gICAgICB0aGlzLm9wdGlvbnMuc3luY1RvdWNoICYmXG4gICAgICBpc1RvdWNoICYmXG4gICAgICBldmVudC50eXBlID09PSAndG91Y2hzdGFydCcgJiZcbiAgICAgIGlzQ2xpY2tPclRhcCAmJlxuICAgICAgIXRoaXMuaXNTdG9wcGVkICYmXG4gICAgICAhdGhpcy5pc0xvY2tlZFxuXG4gICAgaWYgKGlzVGFwVG9TdG9wKSB7XG4gICAgICB0aGlzLnJlc2V0KClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIGNvbnN0IGlzUHVsbFRvUmVmcmVzaCA9XG4gICAgLy8gICB0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uID09PSAndmVydGljYWwnICYmXG4gICAgLy8gICB0aGlzLnNjcm9sbCA9PT0gMCAmJlxuICAgIC8vICAgIXRoaXMub3B0aW9ucy5pbmZpbml0ZSAmJlxuICAgIC8vICAgZGVsdGFZIDw9IDUgLy8gdG91Y2ggcHVsbCB0byByZWZyZXNoLCBub3QgcmVsaWFibGUgeWV0XG5cbiAgICBjb25zdCBpc1Vua25vd25HZXN0dXJlID1cbiAgICAgICh0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uID09PSAndmVydGljYWwnICYmIGRlbHRhWSA9PT0gMCkgfHxcbiAgICAgICh0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgJiYgZGVsdGFYID09PSAwKVxuXG4gICAgaWYgKGlzQ2xpY2tPclRhcCB8fCBpc1Vua25vd25HZXN0dXJlKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZygncHJldmVudCcpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBjYXRjaCBpZiBzY3JvbGxpbmcgb24gbmVzdGVkIHNjcm9sbCBlbGVtZW50c1xuICAgIGxldCBjb21wb3NlZFBhdGggPSBldmVudC5jb21wb3NlZFBhdGgoKVxuICAgIGNvbXBvc2VkUGF0aCA9IGNvbXBvc2VkUGF0aC5zbGljZSgwLCBjb21wb3NlZFBhdGguaW5kZXhPZih0aGlzLnJvb3RFbGVtZW50KSkgLy8gcmVtb3ZlIHBhcmVudHMgZWxlbWVudHNcblxuICAgIGNvbnN0IHByZXZlbnQgPSB0aGlzLm9wdGlvbnMucHJldmVudFxuXG4gICAgaWYgKFxuICAgICAgISFjb21wb3NlZFBhdGguZmluZChcbiAgICAgICAgKG5vZGUpID0+XG4gICAgICAgICAgbm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmXG4gICAgICAgICAgKCh0eXBlb2YgcHJldmVudCA9PT0gJ2Z1bmN0aW9uJyAmJiBwcmV2ZW50Py4obm9kZSkpIHx8XG4gICAgICAgICAgICBub2RlLmhhc0F0dHJpYnV0ZT8uKCdkYXRhLWxlbmlzLXByZXZlbnQnKSB8fFxuICAgICAgICAgICAgKGlzVG91Y2ggJiYgbm9kZS5oYXNBdHRyaWJ1dGU/LignZGF0YS1sZW5pcy1wcmV2ZW50LXRvdWNoJykpIHx8XG4gICAgICAgICAgICAoaXNXaGVlbCAmJiBub2RlLmhhc0F0dHJpYnV0ZT8uKCdkYXRhLWxlbmlzLXByZXZlbnQtd2hlZWwnKSkgfHxcbiAgICAgICAgICAgICh0aGlzLm9wdGlvbnMuYWxsb3dOZXN0ZWRTY3JvbGwgJiZcbiAgICAgICAgICAgICAgdGhpcy5jaGVja05lc3RlZFNjcm9sbChub2RlLCB7IGRlbHRhWCwgZGVsdGFZIH0pKSlcbiAgICAgIClcbiAgICApXG4gICAgICByZXR1cm5cblxuICAgIGlmICh0aGlzLmlzU3RvcHBlZCB8fCB0aGlzLmlzTG9ja2VkKSB7XG4gICAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpIC8vIHRoaXMgd2lsbCBzdG9wIGZvcndhcmRpbmcgdGhlIGV2ZW50IHRvIHRoZSBwYXJlbnQsIHRoaXMgaXMgcHJvYmxlbWF0aWNcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGlzU21vb3RoID1cbiAgICAgICh0aGlzLm9wdGlvbnMuc3luY1RvdWNoICYmIGlzVG91Y2gpIHx8XG4gICAgICAodGhpcy5vcHRpb25zLnNtb290aFdoZWVsICYmIGlzV2hlZWwpXG5cbiAgICBpZiAoIWlzU21vb3RoKSB7XG4gICAgICB0aGlzLmlzU2Nyb2xsaW5nID0gJ25hdGl2ZSdcbiAgICAgIHRoaXMuYW5pbWF0ZS5zdG9wKClcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGV2ZW50LmxlbmlzU3RvcFByb3BhZ2F0aW9uID0gdHJ1ZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgbGV0IGRlbHRhID0gZGVsdGFZXG4gICAgaWYgKHRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb24gPT09ICdib3RoJykge1xuICAgICAgZGVsdGEgPSBNYXRoLmFicyhkZWx0YVkpID4gTWF0aC5hYnMoZGVsdGFYKSA/IGRlbHRhWSA6IGRlbHRhWFxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICBkZWx0YSA9IGRlbHRhWFxuICAgIH1cblxuICAgIGlmIChcbiAgICAgICF0aGlzLm9wdGlvbnMub3ZlcnNjcm9sbCB8fFxuICAgICAgdGhpcy5vcHRpb25zLmluZmluaXRlIHx8XG4gICAgICAodGhpcy5vcHRpb25zLndyYXBwZXIgIT09IHdpbmRvdyAmJlxuICAgICAgICB0aGlzLmxpbWl0ID4gMCAmJlxuICAgICAgICAoKHRoaXMuYW5pbWF0ZWRTY3JvbGwgPiAwICYmIHRoaXMuYW5pbWF0ZWRTY3JvbGwgPCB0aGlzLmxpbWl0KSB8fFxuICAgICAgICAgICh0aGlzLmFuaW1hdGVkU2Nyb2xsID09PSAwICYmIGRlbHRhWSA+IDApIHx8XG4gICAgICAgICAgKHRoaXMuYW5pbWF0ZWRTY3JvbGwgPT09IHRoaXMubGltaXQgJiYgZGVsdGFZIDwgMCkpKVxuICAgICkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZXZlbnQubGVuaXNTdG9wUHJvcGFnYXRpb24gPSB0cnVlXG4gICAgICAvLyBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIH1cblxuICAgIGlmIChldmVudC5jYW5jZWxhYmxlKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgfVxuXG4gICAgY29uc3QgaXNTeW5jVG91Y2ggPSBpc1RvdWNoICYmIHRoaXMub3B0aW9ucy5zeW5jVG91Y2hcbiAgICBjb25zdCBpc1RvdWNoRW5kID0gaXNUb3VjaCAmJiBldmVudC50eXBlID09PSAndG91Y2hlbmQnXG5cbiAgICBjb25zdCBoYXNUb3VjaEluZXJ0aWEgPSBpc1RvdWNoRW5kXG5cbiAgICBpZiAoaGFzVG91Y2hJbmVydGlhKSB7XG4gICAgICAvLyBkZWx0YSA9IHRoaXMudmVsb2NpdHkgKiB0aGlzLm9wdGlvbnMudG91Y2hJbmVydGlhTXVsdGlwbGllclxuICAgICAgZGVsdGEgPVxuICAgICAgICBNYXRoLnNpZ24odGhpcy52ZWxvY2l0eSkgKlxuICAgICAgICBNYXRoLnBvdyhNYXRoLmFicyh0aGlzLnZlbG9jaXR5KSwgdGhpcy5vcHRpb25zLnRvdWNoSW5lcnRpYUV4cG9uZW50KVxuICAgIH1cblxuICAgIHRoaXMuc2Nyb2xsVG8odGhpcy50YXJnZXRTY3JvbGwgKyBkZWx0YSwge1xuICAgICAgcHJvZ3JhbW1hdGljOiBmYWxzZSxcbiAgICAgIC4uLihpc1N5bmNUb3VjaFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGxlcnA6IGhhc1RvdWNoSW5lcnRpYSA/IHRoaXMub3B0aW9ucy5zeW5jVG91Y2hMZXJwIDogMSxcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgbGVycDogdGhpcy5vcHRpb25zLmxlcnAsXG4gICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5vcHRpb25zLmR1cmF0aW9uLFxuICAgICAgICAgICAgZWFzaW5nOiB0aGlzLm9wdGlvbnMuZWFzaW5nLFxuICAgICAgICAgIH0pLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogRm9yY2UgbGVuaXMgdG8gcmVjYWxjdWxhdGUgdGhlIGRpbWVuc2lvbnNcbiAgICovXG4gIHJlc2l6ZSgpIHtcbiAgICB0aGlzLmRpbWVuc2lvbnMucmVzaXplKClcbiAgICB0aGlzLmFuaW1hdGVkU2Nyb2xsID0gdGhpcy50YXJnZXRTY3JvbGwgPSB0aGlzLmFjdHVhbFNjcm9sbFxuICAgIHRoaXMuZW1pdCgpXG4gIH1cblxuICBwcml2YXRlIGVtaXQoKSB7XG4gICAgdGhpcy5lbWl0dGVyLmVtaXQoJ3Njcm9sbCcsIHRoaXMpXG4gIH1cblxuICBwcml2YXRlIG9uTmF0aXZlU2Nyb2xsID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0KVxuICAgICAgdGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQpIHtcbiAgICAgIHRoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQgPSBmYWxzZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNTY3JvbGxpbmcgPT09IGZhbHNlIHx8IHRoaXMuaXNTY3JvbGxpbmcgPT09ICduYXRpdmUnKSB7XG4gICAgICBjb25zdCBsYXN0U2Nyb2xsID0gdGhpcy5hbmltYXRlZFNjcm9sbFxuICAgICAgdGhpcy5hbmltYXRlZFNjcm9sbCA9IHRoaXMudGFyZ2V0U2Nyb2xsID0gdGhpcy5hY3R1YWxTY3JvbGxcbiAgICAgIHRoaXMubGFzdFZlbG9jaXR5ID0gdGhpcy52ZWxvY2l0eVxuICAgICAgdGhpcy52ZWxvY2l0eSA9IHRoaXMuYW5pbWF0ZWRTY3JvbGwgLSBsYXN0U2Nyb2xsXG4gICAgICB0aGlzLmRpcmVjdGlvbiA9IE1hdGguc2lnbihcbiAgICAgICAgdGhpcy5hbmltYXRlZFNjcm9sbCAtIGxhc3RTY3JvbGxcbiAgICAgICkgYXMgTGVuaXNbJ2RpcmVjdGlvbiddXG5cbiAgICAgIGlmICghdGhpcy5pc1N0b3BwZWQpIHtcbiAgICAgICAgdGhpcy5pc1Njcm9sbGluZyA9ICduYXRpdmUnXG4gICAgICB9XG5cbiAgICAgIHRoaXMuZW1pdCgpXG5cbiAgICAgIGlmICh0aGlzLnZlbG9jaXR5ICE9PSAwKSB7XG4gICAgICAgIHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sYXN0VmVsb2NpdHkgPSB0aGlzLnZlbG9jaXR5XG4gICAgICAgICAgdGhpcy52ZWxvY2l0eSA9IDBcbiAgICAgICAgICB0aGlzLmlzU2Nyb2xsaW5nID0gZmFsc2VcbiAgICAgICAgICB0aGlzLmVtaXQoKVxuICAgICAgICB9LCA0MDApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldCgpIHtcbiAgICB0aGlzLmlzTG9ja2VkID0gZmFsc2VcbiAgICB0aGlzLmlzU2Nyb2xsaW5nID0gZmFsc2VcbiAgICB0aGlzLmFuaW1hdGVkU2Nyb2xsID0gdGhpcy50YXJnZXRTY3JvbGwgPSB0aGlzLmFjdHVhbFNjcm9sbFxuICAgIHRoaXMubGFzdFZlbG9jaXR5ID0gdGhpcy52ZWxvY2l0eSA9IDBcbiAgICB0aGlzLmFuaW1hdGUuc3RvcCgpXG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgbGVuaXMgc2Nyb2xsIGFmdGVyIGl0IGhhcyBiZWVuIHN0b3BwZWRcbiAgICovXG4gIHN0YXJ0KCkge1xuICAgIGlmICghdGhpcy5pc1N0b3BwZWQpIHJldHVyblxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKSB7XG4gICAgICB0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdvdmVyZmxvdycpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmludGVybmFsU3RhcnQoKVxuICB9XG5cbiAgcHJpdmF0ZSBpbnRlcm5hbFN0YXJ0KCkge1xuICAgIGlmICghdGhpcy5pc1N0b3BwZWQpIHJldHVyblxuXG4gICAgdGhpcy5yZXNldCgpXG4gICAgdGhpcy5pc1N0b3BwZWQgPSBmYWxzZVxuICAgIHRoaXMuZW1pdCgpXG4gIH1cblxuICAvKipcbiAgICogU3RvcCBsZW5pcyBzY3JvbGxcbiAgICovXG4gIHN0b3AoKSB7XG4gICAgaWYgKHRoaXMuaXNTdG9wcGVkKSByZXR1cm5cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSkge1xuICAgICAgdGhpcy5yb290RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnb3ZlcmZsb3cnLCAnY2xpcCcpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmludGVybmFsU3RvcCgpXG4gIH1cblxuICBwcml2YXRlIGludGVybmFsU3RvcCgpIHtcbiAgICBpZiAodGhpcy5pc1N0b3BwZWQpIHJldHVyblxuXG4gICAgdGhpcy5yZXNldCgpXG4gICAgdGhpcy5pc1N0b3BwZWQgPSB0cnVlXG4gICAgdGhpcy5lbWl0KClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgZm9yIGxlbmlzXG4gICAqXG4gICAqIEBwYXJhbSB0aW1lIFRoZSB0aW1lIGluIG1zIGZyb20gYW4gZXh0ZXJuYWwgY2xvY2sgbGlrZSBgcmVxdWVzdEFuaW1hdGlvbkZyYW1lYCBvciBUZW1wdXNcbiAgICovXG4gIHJhZiA9ICh0aW1lOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBkZWx0YVRpbWUgPSB0aW1lIC0gKHRoaXMudGltZSB8fCB0aW1lKVxuICAgIHRoaXMudGltZSA9IHRpbWVcblxuICAgIHRoaXMuYW5pbWF0ZS5hZHZhbmNlKGRlbHRhVGltZSAqIDAuMDAxKVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hdXRvUmFmKSB7XG4gICAgICB0aGlzLl9yYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnJhZilcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xsIHRvIGEgdGFyZ2V0IHZhbHVlXG4gICAqXG4gICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCB2YWx1ZSB0byBzY3JvbGwgdG9cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSBzY3JvbGxcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogbGVuaXMuc2Nyb2xsVG8oMTAwLCB7XG4gICAqICAgb2Zmc2V0OiAxMDAsXG4gICAqICAgZHVyYXRpb246IDEsXG4gICAqICAgZWFzaW5nOiAodCkgPT4gMSAtIE1hdGguY29zKCh0ICogTWF0aC5QSSkgLyAyKSxcbiAgICogICBsZXJwOiAwLjEsXG4gICAqICAgb25TdGFydDogKCkgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coJ29uU3RhcnQnKVxuICAgKiAgIH0sXG4gICAqICAgb25Db21wbGV0ZTogKCkgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coJ29uQ29tcGxldGUnKVxuICAgKiAgIH0sXG4gICAqIH0pXG4gICAqL1xuICBzY3JvbGxUbyhcbiAgICB0YXJnZXQ6IG51bWJlciB8IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuICAgIHtcbiAgICAgIG9mZnNldCA9IDAsXG4gICAgICBpbW1lZGlhdGUgPSBmYWxzZSxcbiAgICAgIGxvY2sgPSBmYWxzZSxcbiAgICAgIHByb2dyYW1tYXRpYyA9IHRydWUsIC8vIGNhbGxlZCBmcm9tIG91dHNpZGUgb2YgdGhlIGNsYXNzXG4gICAgICBsZXJwID0gcHJvZ3JhbW1hdGljID8gdGhpcy5vcHRpb25zLmxlcnAgOiB1bmRlZmluZWQsXG4gICAgICBkdXJhdGlvbiA9IHByb2dyYW1tYXRpYyA/IHRoaXMub3B0aW9ucy5kdXJhdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgIGVhc2luZyA9IHByb2dyYW1tYXRpYyA/IHRoaXMub3B0aW9ucy5lYXNpbmcgOiB1bmRlZmluZWQsXG4gICAgICBvblN0YXJ0LFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIGZvcmNlID0gZmFsc2UsIC8vIHNjcm9sbCBldmVuIGlmIHN0b3BwZWRcbiAgICAgIHVzZXJEYXRhLFxuICAgIH06IFNjcm9sbFRvT3B0aW9ucyA9IHt9XG4gICkge1xuICAgIGlmICgodGhpcy5pc1N0b3BwZWQgfHwgdGhpcy5pc0xvY2tlZCkgJiYgIWZvcmNlKSByZXR1cm5cblxuICAgIC8vIGtleXdvcmRzXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHRhcmdldCA9PT0gJ3N0cmluZycgJiZcbiAgICAgIFsndG9wJywgJ2xlZnQnLCAnc3RhcnQnLCAnIyddLmluY2x1ZGVzKHRhcmdldClcbiAgICApIHtcbiAgICAgIHRhcmdldCA9IDBcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdHlwZW9mIHRhcmdldCA9PT0gJ3N0cmluZycgJiZcbiAgICAgIFsnYm90dG9tJywgJ3JpZ2h0JywgJ2VuZCddLmluY2x1ZGVzKHRhcmdldClcbiAgICApIHtcbiAgICAgIHRhcmdldCA9IHRoaXMubGltaXRcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IG5vZGVcblxuICAgICAgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIENTUyBzZWxlY3RvclxuICAgICAgICBub2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpXG5cbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgaWYgKHRhcmdldCA9PT0gJyN0b3AnKSB7XG4gICAgICAgICAgICB0YXJnZXQgPSAwXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignTGVuaXM6IFRhcmdldCBub3QgZm91bmQnLCB0YXJnZXQpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIHRhcmdldD8ubm9kZVR5cGUpIHtcbiAgICAgICAgLy8gTm9kZSBlbGVtZW50XG4gICAgICAgIG5vZGUgPSB0YXJnZXRcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy53cmFwcGVyICE9PSB3aW5kb3cpIHtcbiAgICAgICAgICAvLyBuZXN0ZWQgc2Nyb2xsIG9mZnNldCBjb3JyZWN0aW9uXG4gICAgICAgICAgY29uc3Qgd3JhcHBlclJlY3QgPSB0aGlzLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgICAgb2Zmc2V0IC09IHRoaXMuaXNIb3Jpem9udGFsID8gd3JhcHBlclJlY3QubGVmdCA6IHdyYXBwZXJSZWN0LnRvcFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVjdCA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcblxuICAgICAgICB0YXJnZXQgPVxuICAgICAgICAgICh0aGlzLmlzSG9yaXpvbnRhbCA/IHJlY3QubGVmdCA6IHJlY3QudG9wKSArIHRoaXMuYW5pbWF0ZWRTY3JvbGxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRhcmdldCAhPT0gJ251bWJlcicpIHJldHVyblxuXG4gICAgdGFyZ2V0ICs9IG9mZnNldFxuICAgIHRhcmdldCA9IE1hdGgucm91bmQodGFyZ2V0KVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5pbmZpbml0ZSkge1xuICAgICAgaWYgKHByb2dyYW1tYXRpYykge1xuICAgICAgICB0aGlzLnRhcmdldFNjcm9sbCA9IHRoaXMuYW5pbWF0ZWRTY3JvbGwgPSB0aGlzLnNjcm9sbFxuXG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gdGFyZ2V0IC0gdGhpcy5hbmltYXRlZFNjcm9sbFxuXG4gICAgICAgIGlmIChkaXN0YW5jZSA+IHRoaXMubGltaXQgLyAyKSB7XG4gICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0IC0gdGhpcy5saW1pdFxuICAgICAgICB9IGVsc2UgaWYgKGRpc3RhbmNlIDwgLXRoaXMubGltaXQgLyAyKSB7XG4gICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0ICsgdGhpcy5saW1pdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldCA9IGNsYW1wKDAsIHRhcmdldCwgdGhpcy5saW1pdClcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0ID09PSB0aGlzLnRhcmdldFNjcm9sbCkge1xuICAgICAgb25TdGFydD8uKHRoaXMpXG4gICAgICBvbkNvbXBsZXRlPy4odGhpcylcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMudXNlckRhdGEgPSB1c2VyRGF0YSA/PyB7fVxuXG4gICAgaWYgKGltbWVkaWF0ZSkge1xuICAgICAgdGhpcy5hbmltYXRlZFNjcm9sbCA9IHRoaXMudGFyZ2V0U2Nyb2xsID0gdGFyZ2V0XG4gICAgICB0aGlzLnNldFNjcm9sbCh0aGlzLnNjcm9sbClcbiAgICAgIHRoaXMucmVzZXQoKVxuICAgICAgdGhpcy5wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KClcbiAgICAgIHRoaXMuZW1pdCgpXG4gICAgICBvbkNvbXBsZXRlPy4odGhpcylcbiAgICAgIHRoaXMudXNlckRhdGEgPSB7fVxuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKVxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghcHJvZ3JhbW1hdGljKSB7XG4gICAgICB0aGlzLnRhcmdldFNjcm9sbCA9IHRhcmdldFxuICAgIH1cblxuICAgIC8vIGZsaXAgdG8gZWFzaW5nL3RpbWUgYmFzZWQgYW5pbWF0aW9uIGlmIGF0IGxlYXN0IG9uZSBvZiB0aGVtIGlzIHByb3ZpZGVkXG4gICAgaWYgKHR5cGVvZiBkdXJhdGlvbiA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGVhc2luZyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZWFzaW5nID0gZGVmYXVsdEVhc2luZ1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGVhc2luZyA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZHVyYXRpb24gIT09ICdudW1iZXInKSB7XG4gICAgICBkdXJhdGlvbiA9IDFcbiAgICB9XG5cbiAgICB0aGlzLmFuaW1hdGUuZnJvbVRvKHRoaXMuYW5pbWF0ZWRTY3JvbGwsIHRhcmdldCwge1xuICAgICAgZHVyYXRpb24sXG4gICAgICBlYXNpbmcsXG4gICAgICBsZXJwLFxuICAgICAgb25TdGFydDogKCkgPT4ge1xuICAgICAgICAvLyBzdGFydGVkXG4gICAgICAgIGlmIChsb2NrKSB0aGlzLmlzTG9ja2VkID0gdHJ1ZVxuICAgICAgICB0aGlzLmlzU2Nyb2xsaW5nID0gJ3Ntb290aCdcbiAgICAgICAgb25TdGFydD8uKHRoaXMpXG4gICAgICB9LFxuICAgICAgb25VcGRhdGU6ICh2YWx1ZTogbnVtYmVyLCBjb21wbGV0ZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5pc1Njcm9sbGluZyA9ICdzbW9vdGgnXG5cbiAgICAgICAgLy8gdXBkYXRlZFxuICAgICAgICB0aGlzLmxhc3RWZWxvY2l0eSA9IHRoaXMudmVsb2NpdHlcbiAgICAgICAgdGhpcy52ZWxvY2l0eSA9IHZhbHVlIC0gdGhpcy5hbmltYXRlZFNjcm9sbFxuICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IE1hdGguc2lnbih0aGlzLnZlbG9jaXR5KSBhcyBMZW5pc1snZGlyZWN0aW9uJ11cblxuICAgICAgICB0aGlzLmFuaW1hdGVkU2Nyb2xsID0gdmFsdWVcbiAgICAgICAgdGhpcy5zZXRTY3JvbGwodGhpcy5zY3JvbGwpXG5cbiAgICAgICAgaWYgKHByb2dyYW1tYXRpYykge1xuICAgICAgICAgIC8vIHdoZWVsIGR1cmluZyBwcm9ncmFtbWF0aWMgc2hvdWxkIHN0b3AgaXRcbiAgICAgICAgICB0aGlzLnRhcmdldFNjcm9sbCA9IHZhbHVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNvbXBsZXRlZCkgdGhpcy5lbWl0KClcblxuICAgICAgICBpZiAoY29tcGxldGVkKSB7XG4gICAgICAgICAgdGhpcy5yZXNldCgpXG4gICAgICAgICAgdGhpcy5lbWl0KClcbiAgICAgICAgICBvbkNvbXBsZXRlPy4odGhpcylcbiAgICAgICAgICB0aGlzLnVzZXJEYXRhID0ge31cblxuICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICAvLyBhdm9pZCBlbWl0dGluZyBldmVudCB0d2ljZVxuICAgICAgICAgIHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpIHtcbiAgICB0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50ID0gdHJ1ZVxuXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQgPSBmYWxzZVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGNoZWNrTmVzdGVkU2Nyb2xsKFxuICAgIG5vZGU6IEhUTUxFbGVtZW50LFxuICAgIHsgZGVsdGFYLCBkZWx0YVkgfTogeyBkZWx0YVg6IG51bWJlcjsgZGVsdGFZOiBudW1iZXIgfVxuICApIHtcbiAgICBjb25zdCB0aW1lID0gRGF0ZS5ub3coKVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGNhY2hlID0gKG5vZGUuX2xlbmlzID8/PSB7fSlcblxuICAgIGxldCBoYXNPdmVyZmxvd1gsXG4gICAgICBoYXNPdmVyZmxvd1ksXG4gICAgICBpc1Njcm9sbGFibGVYLFxuICAgICAgaXNTY3JvbGxhYmxlWSxcbiAgICAgIHNjcm9sbFdpZHRoLFxuICAgICAgc2Nyb2xsSGVpZ2h0LFxuICAgICAgY2xpZW50V2lkdGgsXG4gICAgICBjbGllbnRIZWlnaHRcblxuICAgIGNvbnN0IGdlc3R1cmVPcmllbnRhdGlvbiA9IHRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb25cblxuICAgIGlmICh0aW1lIC0gKGNhY2hlLnRpbWUgPz8gMCkgPiAyMDAwKSB7XG4gICAgICBjYWNoZS50aW1lID0gRGF0ZS5ub3coKVxuXG4gICAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSlcbiAgICAgIGNhY2hlLmNvbXB1dGVkU3R5bGUgPSBjb21wdXRlZFN0eWxlXG5cbiAgICAgIGNvbnN0IG92ZXJmbG93WFN0cmluZyA9IGNvbXB1dGVkU3R5bGUub3ZlcmZsb3dYXG4gICAgICBjb25zdCBvdmVyZmxvd1lTdHJpbmcgPSBjb21wdXRlZFN0eWxlLm92ZXJmbG93WVxuXG4gICAgICBoYXNPdmVyZmxvd1ggPSBbJ2F1dG8nLCAnb3ZlcmxheScsICdzY3JvbGwnXS5pbmNsdWRlcyhvdmVyZmxvd1hTdHJpbmcpXG4gICAgICBoYXNPdmVyZmxvd1kgPSBbJ2F1dG8nLCAnb3ZlcmxheScsICdzY3JvbGwnXS5pbmNsdWRlcyhvdmVyZmxvd1lTdHJpbmcpXG4gICAgICBjYWNoZS5oYXNPdmVyZmxvd1ggPSBoYXNPdmVyZmxvd1hcbiAgICAgIGNhY2hlLmhhc092ZXJmbG93WSA9IGhhc092ZXJmbG93WVxuXG4gICAgICBpZiAoIWhhc092ZXJmbG93WCAmJiAhaGFzT3ZlcmZsb3dZKSByZXR1cm4gZmFsc2UgLy8gaWYgbm8gb3ZlcmZsb3csIGl0J3Mgbm90IHNjcm9sbGFibGUgbm8gbWF0dGVyIHdoYXQsIGVhcmx5IHJldHVybiBzYXZlcyBzb21lIGNvbXB1dGF0aW9uc1xuICAgICAgaWYgKGdlc3R1cmVPcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyAmJiAhaGFzT3ZlcmZsb3dZKSByZXR1cm4gZmFsc2VcbiAgICAgIGlmIChnZXN0dXJlT3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJyAmJiAhaGFzT3ZlcmZsb3dYKSByZXR1cm4gZmFsc2VcblxuICAgICAgc2Nyb2xsV2lkdGggPSBub2RlLnNjcm9sbFdpZHRoXG4gICAgICBzY3JvbGxIZWlnaHQgPSBub2RlLnNjcm9sbEhlaWdodFxuXG4gICAgICBjbGllbnRXaWR0aCA9IG5vZGUuY2xpZW50V2lkdGhcbiAgICAgIGNsaWVudEhlaWdodCA9IG5vZGUuY2xpZW50SGVpZ2h0XG5cbiAgICAgIGlzU2Nyb2xsYWJsZVggPSBzY3JvbGxXaWR0aCA+IGNsaWVudFdpZHRoXG4gICAgICBpc1Njcm9sbGFibGVZID0gc2Nyb2xsSGVpZ2h0ID4gY2xpZW50SGVpZ2h0XG5cbiAgICAgIGNhY2hlLmlzU2Nyb2xsYWJsZVggPSBpc1Njcm9sbGFibGVYXG4gICAgICBjYWNoZS5pc1Njcm9sbGFibGVZID0gaXNTY3JvbGxhYmxlWVxuICAgICAgY2FjaGUuc2Nyb2xsV2lkdGggPSBzY3JvbGxXaWR0aFxuICAgICAgY2FjaGUuc2Nyb2xsSGVpZ2h0ID0gc2Nyb2xsSGVpZ2h0XG4gICAgICBjYWNoZS5jbGllbnRXaWR0aCA9IGNsaWVudFdpZHRoXG4gICAgICBjYWNoZS5jbGllbnRIZWlnaHQgPSBjbGllbnRIZWlnaHRcbiAgICB9IGVsc2Uge1xuICAgICAgaXNTY3JvbGxhYmxlWCA9IGNhY2hlLmlzU2Nyb2xsYWJsZVhcbiAgICAgIGlzU2Nyb2xsYWJsZVkgPSBjYWNoZS5pc1Njcm9sbGFibGVZXG4gICAgICBoYXNPdmVyZmxvd1ggPSBjYWNoZS5oYXNPdmVyZmxvd1hcbiAgICAgIGhhc092ZXJmbG93WSA9IGNhY2hlLmhhc092ZXJmbG93WVxuICAgICAgc2Nyb2xsV2lkdGggPSBjYWNoZS5zY3JvbGxXaWR0aFxuICAgICAgc2Nyb2xsSGVpZ2h0ID0gY2FjaGUuc2Nyb2xsSGVpZ2h0XG4gICAgICBjbGllbnRXaWR0aCA9IGNhY2hlLmNsaWVudFdpZHRoXG4gICAgICBjbGllbnRIZWlnaHQgPSBjYWNoZS5jbGllbnRIZWlnaHRcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAoIWhhc092ZXJmbG93WCAmJiAhaGFzT3ZlcmZsb3dZKSB8fFxuICAgICAgKCFpc1Njcm9sbGFibGVYICYmICFpc1Njcm9sbGFibGVZKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKGdlc3R1cmVPcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyAmJiAoIWhhc092ZXJmbG93WSB8fCAhaXNTY3JvbGxhYmxlWSkpXG4gICAgICByZXR1cm4gZmFsc2VcblxuICAgIGlmIChcbiAgICAgIGdlc3R1cmVPcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnICYmXG4gICAgICAoIWhhc092ZXJmbG93WCB8fCAhaXNTY3JvbGxhYmxlWClcbiAgICApXG4gICAgICByZXR1cm4gZmFsc2VcblxuICAgIGxldCBvcmllbnRhdGlvbjogJ3gnIHwgJ3knIHwgdW5kZWZpbmVkXG5cbiAgICBpZiAoZ2VzdHVyZU9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgIG9yaWVudGF0aW9uID0gJ3gnXG4gICAgfSBlbHNlIGlmIChnZXN0dXJlT3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgIG9yaWVudGF0aW9uID0gJ3knXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGlzU2Nyb2xsaW5nWCA9IGRlbHRhWCAhPT0gMFxuICAgICAgY29uc3QgaXNTY3JvbGxpbmdZID0gZGVsdGFZICE9PSAwXG5cbiAgICAgIGlmIChpc1Njcm9sbGluZ1ggJiYgaGFzT3ZlcmZsb3dYICYmIGlzU2Nyb2xsYWJsZVgpIHtcbiAgICAgICAgb3JpZW50YXRpb24gPSAneCdcbiAgICAgIH1cblxuICAgICAgaWYgKGlzU2Nyb2xsaW5nWSAmJiBoYXNPdmVyZmxvd1kgJiYgaXNTY3JvbGxhYmxlWSkge1xuICAgICAgICBvcmllbnRhdGlvbiA9ICd5J1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghb3JpZW50YXRpb24pIHJldHVybiBmYWxzZVxuXG4gICAgbGV0IHNjcm9sbCwgbWF4U2Nyb2xsLCBkZWx0YSwgaGFzT3ZlcmZsb3csIGlzU2Nyb2xsYWJsZVxuXG4gICAgaWYgKG9yaWVudGF0aW9uID09PSAneCcpIHtcbiAgICAgIHNjcm9sbCA9IG5vZGUuc2Nyb2xsTGVmdFxuICAgICAgbWF4U2Nyb2xsID0gc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aFxuICAgICAgZGVsdGEgPSBkZWx0YVhcblxuICAgICAgaGFzT3ZlcmZsb3cgPSBoYXNPdmVyZmxvd1hcbiAgICAgIGlzU2Nyb2xsYWJsZSA9IGlzU2Nyb2xsYWJsZVhcbiAgICB9IGVsc2UgaWYgKG9yaWVudGF0aW9uID09PSAneScpIHtcbiAgICAgIHNjcm9sbCA9IG5vZGUuc2Nyb2xsVG9wXG4gICAgICBtYXhTY3JvbGwgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHRcbiAgICAgIGRlbHRhID0gZGVsdGFZXG5cbiAgICAgIGhhc092ZXJmbG93ID0gaGFzT3ZlcmZsb3dZXG4gICAgICBpc1Njcm9sbGFibGUgPSBpc1Njcm9sbGFibGVZXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IHdpbGxTY3JvbGwgPSBkZWx0YSA+IDAgPyBzY3JvbGwgPCBtYXhTY3JvbGwgOiBzY3JvbGwgPiAwXG5cbiAgICByZXR1cm4gd2lsbFNjcm9sbCAmJiBoYXNPdmVyZmxvdyAmJiBpc1Njcm9sbGFibGVcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBlbGVtZW50IG9uIHdoaWNoIGxlbmlzIGlzIGluc3RhbmNlZFxuICAgKi9cbiAgZ2V0IHJvb3RFbGVtZW50KCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLm9wdGlvbnMud3JhcHBlciA9PT0gd2luZG93XG4gICAgICAgID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICAgICAgIDogdGhpcy5vcHRpb25zLndyYXBwZXJcbiAgICApIGFzIEhUTUxFbGVtZW50XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxpbWl0IHdoaWNoIGlzIHRoZSBtYXhpbXVtIHNjcm9sbCB2YWx1ZVxuICAgKi9cbiAgZ2V0IGxpbWl0KCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMubmFpdmVEaW1lbnNpb25zKSB7XG4gICAgICBpZiAodGhpcy5pc0hvcml6b250YWwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm9vdEVsZW1lbnQuc2Nyb2xsV2lkdGggLSB0aGlzLnJvb3RFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5yb290RWxlbWVudC5zY3JvbGxIZWlnaHQgLSB0aGlzLnJvb3RFbGVtZW50LmNsaWVudEhlaWdodFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5kaW1lbnNpb25zLmxpbWl0W3RoaXMuaXNIb3Jpem9udGFsID8gJ3gnIDogJ3knXVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgc2Nyb2xsIGlzIGhvcml6b250YWxcbiAgICovXG4gIGdldCBpc0hvcml6b250YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnXG4gIH1cblxuICAvKipcbiAgICogVGhlIGFjdHVhbCBzY3JvbGwgdmFsdWVcbiAgICovXG4gIGdldCBhY3R1YWxTY3JvbGwoKSB7XG4gICAgLy8gdmFsdWUgYnJvd3NlciB0YWtlcyBpbnRvIGFjY291bnRcbiAgICAvLyBpdCBoYXMgdG8gYmUgdGhpcyB3YXkgYmVjYXVzZSBvZiBET0NUWVBFIGRlY2xhcmF0aW9uXG4gICAgY29uc3Qgd3JhcHBlciA9IHRoaXMub3B0aW9ucy53cmFwcGVyIGFzIFdpbmRvdyB8IEhUTUxFbGVtZW50XG5cbiAgICByZXR1cm4gdGhpcy5pc0hvcml6b250YWxcbiAgICAgID8gKHdyYXBwZXIgYXMgV2luZG93KS5zY3JvbGxYID8/ICh3cmFwcGVyIGFzIEhUTUxFbGVtZW50KS5zY3JvbGxMZWZ0XG4gICAgICA6ICh3cmFwcGVyIGFzIFdpbmRvdykuc2Nyb2xsWSA/PyAod3JhcHBlciBhcyBIVE1MRWxlbWVudCkuc2Nyb2xsVG9wXG4gIH1cblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgc2Nyb2xsIHZhbHVlXG4gICAqL1xuICBnZXQgc2Nyb2xsKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaW5maW5pdGVcbiAgICAgID8gbW9kdWxvKHRoaXMuYW5pbWF0ZWRTY3JvbGwsIHRoaXMubGltaXQpXG4gICAgICA6IHRoaXMuYW5pbWF0ZWRTY3JvbGxcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcHJvZ3Jlc3Mgb2YgdGhlIHNjcm9sbCByZWxhdGl2ZSB0byB0aGUgbGltaXRcbiAgICovXG4gIGdldCBwcm9ncmVzcygpIHtcbiAgICAvLyBhdm9pZCBwcm9ncmVzcyB0byBiZSBOYU5cbiAgICByZXR1cm4gdGhpcy5saW1pdCA9PT0gMCA/IDEgOiB0aGlzLnNjcm9sbCAvIHRoaXMubGltaXRcbiAgfVxuXG4gIC8qKlxuICAgKiBDdXJyZW50IHNjcm9sbCBzdGF0ZVxuICAgKi9cbiAgZ2V0IGlzU2Nyb2xsaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9pc1Njcm9sbGluZ1xuICB9XG5cbiAgcHJpdmF0ZSBzZXQgaXNTY3JvbGxpbmcodmFsdWU6IFNjcm9sbGluZykge1xuICAgIGlmICh0aGlzLl9pc1Njcm9sbGluZyAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX2lzU2Nyb2xsaW5nID0gdmFsdWVcbiAgICAgIHRoaXMudXBkYXRlQ2xhc3NOYW1lKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbGVuaXMgaXMgc3RvcHBlZFxuICAgKi9cbiAgZ2V0IGlzU3RvcHBlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNTdG9wcGVkXG4gIH1cblxuICBwcml2YXRlIHNldCBpc1N0b3BwZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5faXNTdG9wcGVkICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5faXNTdG9wcGVkID0gdmFsdWVcbiAgICAgIHRoaXMudXBkYXRlQ2xhc3NOYW1lKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbGVuaXMgaXMgbG9ja2VkXG4gICAqL1xuICBnZXQgaXNMb2NrZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTG9ja2VkXG4gIH1cblxuICBwcml2YXRlIHNldCBpc0xvY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl9pc0xvY2tlZCAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX2lzTG9ja2VkID0gdmFsdWVcbiAgICAgIHRoaXMudXBkYXRlQ2xhc3NOYW1lKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbGVuaXMgaXMgc21vb3RoIHNjcm9sbGluZ1xuICAgKi9cbiAgZ2V0IGlzU21vb3RoKCkge1xuICAgIHJldHVybiB0aGlzLmlzU2Nyb2xsaW5nID09PSAnc21vb3RoJ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjbGFzcyBuYW1lIGFwcGxpZWQgdG8gdGhlIHdyYXBwZXIgZWxlbWVudFxuICAgKi9cbiAgZ2V0IGNsYXNzTmFtZSgpIHtcbiAgICBsZXQgY2xhc3NOYW1lID0gJ2xlbmlzJ1xuICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSkgY2xhc3NOYW1lICs9ICcgbGVuaXMtYXV0b1RvZ2dsZSdcbiAgICBpZiAodGhpcy5pc1N0b3BwZWQpIGNsYXNzTmFtZSArPSAnIGxlbmlzLXN0b3BwZWQnXG4gICAgaWYgKHRoaXMuaXNMb2NrZWQpIGNsYXNzTmFtZSArPSAnIGxlbmlzLWxvY2tlZCdcbiAgICBpZiAodGhpcy5pc1Njcm9sbGluZykgY2xhc3NOYW1lICs9ICcgbGVuaXMtc2Nyb2xsaW5nJ1xuICAgIGlmICh0aGlzLmlzU2Nyb2xsaW5nID09PSAnc21vb3RoJykgY2xhc3NOYW1lICs9ICcgbGVuaXMtc21vb3RoJ1xuICAgIHJldHVybiBjbGFzc05hbWVcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2xhc3NOYW1lKCkge1xuICAgIHRoaXMuY2xlYW5VcENsYXNzTmFtZSgpXG5cbiAgICB0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZSA9XG4gICAgICBgJHt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZX0gJHt0aGlzLmNsYXNzTmFtZX1gLnRyaW0oKVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhblVwQ2xhc3NOYW1lKCkge1xuICAgIHRoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5yb290RWxlbWVudC5jbGFzc05hbWVcbiAgICAgIC5yZXBsYWNlKC9sZW5pcygtXFx3Kyk/L2csICcnKVxuICAgICAgLnRyaW0oKVxuICB9XG59XG4iLCAiLyohIEBwcmVzZXJ2ZSBzd2VldC1zY3JvbGwgdjQuMC4wIC0gdHN1eW9zaGl3YWRhIHwgTUlUIExpY2Vuc2UgKi9cbihmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCkgOlxuICAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShmYWN0b3J5KSA6XG4gICAgKGdsb2JhbCA9IGdsb2JhbCB8fCBzZWxmLCBnbG9iYWwuU3dlZXRTY3JvbGwgPSBmYWN0b3J5KCkpO1xufSh0aGlzLCBmdW5jdGlvbiAoKSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2VcclxuICAgIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlXHJcbiAgICBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG5cclxuICAgIFRISVMgQ09ERSBJUyBQUk9WSURFRCBPTiBBTiAqQVMgSVMqIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcclxuICAgIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRURcclxuICAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsXHJcbiAgICBNRVJDSEFOVEFCTElUWSBPUiBOT04tSU5GUklOR0VNRU5ULlxyXG5cclxuICAgIFNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xyXG4gICAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuXHJcbiAgICB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgICAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0O1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgICB9O1xuXG4gICAgLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0plZFdhdHNvbi9leGVudi9ibG9iL21hc3Rlci9pbmRleC5qc1xyXG4gICAgdmFyIGNhblVzZURPTSA9ICEhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXHJcbiAgICAgICAgd2luZG93LmRvY3VtZW50ICYmXHJcbiAgICAgICAgd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xyXG4gICAgdmFyIGNhblVzZUhpc3RvcnkgPSAhY2FuVXNlRE9NXHJcbiAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgIDogd2luZG93Lmhpc3RvcnkgJiYgJ3B1c2hTdGF0ZScgaW4gd2luZG93Lmhpc3RvcnkgJiYgd2luZG93LmxvY2F0aW9uLnByb3RvY29sICE9PSAnZmlsZTonO1xyXG4gICAgdmFyIGNhblVzZVBhc3NpdmVPcHRpb24gPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBzdXBwb3J0ID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKCFjYW5Vc2VET00pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHN1cHBvcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8qIHRzbGludDpkaXNhYmxlOm5vLWVtcHR5ICovXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdmFyIHdpbiA9IHdpbmRvdztcclxuICAgICAgICAgICAgdmFyIG9wdHMgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdwYXNzaXZlJywge1xyXG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VwcG9ydCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBudWxsLCBvcHRzKTtcclxuICAgICAgICAgICAgd2luLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBudWxsLCBvcHRzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxyXG4gICAgICAgIC8qIHRzbGludDplbmFibGUgKi9cclxuICAgICAgICByZXR1cm4gc3VwcG9ydDtcclxuICAgIH0pKCk7XG5cbiAgICB2YXIgaXNTdHJpbmcgPSBmdW5jdGlvbiAob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqID09PSAnc3RyaW5nJzsgfTtcclxuICAgIHZhciBpc0Z1bmN0aW9uID0gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJzsgfTtcclxuICAgIHZhciBpc0FycmF5ID0gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gQXJyYXkuaXNBcnJheShvYmopOyB9O1xyXG4gICAgdmFyIGlzTnVtZXJpYyA9IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuICFpc0FycmF5KG9iaikgJiYgb2JqIC0gcGFyc2VGbG9hdChvYmopICsgMSA+PSAwOyB9O1xyXG4gICAgdmFyIGhhc1Byb3AgPSBmdW5jdGlvbiAob2JqLCBrZXkpIHsgcmV0dXJuIG9iaiAmJiBvYmouaGFzT3duUHJvcGVydHkoa2V5KTsgfTtcblxuICAgIHZhciByYWYgPSBjYW5Vc2VET01cclxuICAgICAgICA/IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgdmFyIGNhZiA9IGNhblVzZURPTVxyXG4gICAgICAgID8gd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KVxyXG4gICAgICAgIDogbnVsbDtcblxuICAgIC8qIHRzbGludDpkaXNhYmxlOmN1cmx5ICovXHJcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1jb25kaXRpb25hbC1hc3NpZ25tZW50ICovXHJcbiAgICB2YXIgY29zID0gTWF0aC5jb3MsIHNpbiA9IE1hdGguc2luLCBwb3cgPSBNYXRoLnBvdywgc3FydCA9IE1hdGguc3FydCwgUEkgPSBNYXRoLlBJO1xyXG4gICAgdmFyIGVhc2luZ3MgPSB7XHJcbiAgICAgICAgbGluZWFyOiBmdW5jdGlvbiAocCkgeyByZXR1cm4gcDsgfSxcclxuICAgICAgICBlYXNlSW5RdWFkOiBmdW5jdGlvbiAoXywgdCwgYiwgYywgZCkgeyByZXR1cm4gYyAqICh0IC89IGQpICogdCArIGI7IH0sXHJcbiAgICAgICAgZWFzZU91dFF1YWQ6IGZ1bmN0aW9uIChfLCB0LCBiLCBjLCBkKSB7IHJldHVybiAtYyAqICh0IC89IGQpICogKHQgLSAyKSArIGI7IH0sXHJcbiAgICAgICAgZWFzZUluT3V0UXVhZDogZnVuY3Rpb24gKF8sIHQsIGIsIGMsIGQpIHtcclxuICAgICAgICAgICAgcmV0dXJuICh0IC89IGQgLyAyKSA8IDEgPyAoYyAvIDIpICogdCAqIHQgKyBiIDogKC1jIC8gMikgKiAoLS10ICogKHQgLSAyKSAtIDEpICsgYjtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVhc2VJbkN1YmljOiBmdW5jdGlvbiAoXywgdCwgYiwgYywgZCkgeyByZXR1cm4gYyAqICh0IC89IGQpICogdCAqIHQgKyBiOyB9LFxyXG4gICAgICAgIGVhc2VPdXRDdWJpYzogZnVuY3Rpb24gKF8sIHQsIGIsIGMsIGQpIHsgcmV0dXJuIGMgKiAoKHQgPSB0IC8gZCAtIDEpICogdCAqIHQgKyAxKSArIGI7IH0sXHJcbiAgICAgICAgZWFzZUluT3V0Q3ViaWM6IGZ1bmN0aW9uIChfLCB0LCBiLCBjLCBkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAodCAvPSBkIC8gMikgPCAxID8gKGMgLyAyKSAqIHQgKiB0ICogdCArIGIgOiAoYyAvIDIpICogKCh0IC09IDIpICogdCAqIHQgKyAyKSArIGI7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlYXNlSW5RdWFydDogZnVuY3Rpb24gKF8sIHQsIGIsIGMsIGQpIHsgcmV0dXJuIGMgKiAodCAvPSBkKSAqIHQgKiB0ICogdCArIGI7IH0sXHJcbiAgICAgICAgZWFzZU91dFF1YXJ0OiBmdW5jdGlvbiAoXywgdCwgYiwgYywgZCkgeyByZXR1cm4gLWMgKiAoKHQgPSB0IC8gZCAtIDEpICogdCAqIHQgKiB0IC0gMSkgKyBiOyB9LFxyXG4gICAgICAgIGVhc2VJbk91dFF1YXJ0OiBmdW5jdGlvbiAoXywgdCwgYiwgYywgZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gKHQgLz0gZCAvIDIpIDwgMSA/IChjIC8gMikgKiB0ICogdCAqIHQgKiB0ICsgYiA6ICgtYyAvIDIpICogKCh0IC09IDIpICogdCAqIHQgKiB0IC0gMikgKyBiO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZWFzZUluUXVpbnQ6IGZ1bmN0aW9uIChfLCB0LCBiLCBjLCBkKSB7IHJldHVybiBjICogKHQgLz0gZCkgKiB0ICogdCAqIHQgKiB0ICsgYjsgfSxcclxuICAgICAgICBlYXNlT3V0UXVpbnQ6IGZ1bmN0aW9uIChfLCB0LCBiLCBjLCBkKSB7IHJldHVybiBjICogKCh0ID0gdCAvIGQgLSAxKSAqIHQgKiB0ICogdCAqIHQgKyAxKSArIGI7IH0sXHJcbiAgICAgICAgZWFzZUluT3V0UXVpbnQ6IGZ1bmN0aW9uIChfLCB0LCBiLCBjLCBkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAodCAvPSBkIC8gMikgPCAxXHJcbiAgICAgICAgICAgICAgICA/IChjIC8gMikgKiB0ICogdCAqIHQgKiB0ICogdCArIGJcclxuICAgICAgICAgICAgICAgIDogKGMgLyAyKSAqICgodCAtPSAyKSAqIHQgKiB0ICogdCAqIHQgKyAyKSArIGI7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlYXNlSW5TaW5lOiBmdW5jdGlvbiAoXywgdCwgYiwgYywgZCkgeyByZXR1cm4gLWMgKiBjb3MoKHQgLyBkKSAqIChQSSAvIDIpKSArIGMgKyBiOyB9LFxyXG4gICAgICAgIGVhc2VPdXRTaW5lOiBmdW5jdGlvbiAoXywgdCwgYiwgYywgZCkgeyByZXR1cm4gYyAqIHNpbigodCAvIGQpICogKFBJIC8gMikpICsgYjsgfSxcclxuICAgICAgICBlYXNlSW5PdXRTaW5lOiBmdW5jdGlvbiAoXywgdCwgYiwgYywgZCkgeyByZXR1cm4gKC1jIC8gMikgKiAoY29zKChQSSAqIHQpIC8gZCkgLSAxKSArIGI7IH0sXHJcbiAgICAgICAgZWFzZUluRXhwbzogZnVuY3Rpb24gKF8sIHQsIGIsIGMsIGQpIHsgcmV0dXJuICh0ID09PSAwID8gYiA6IGMgKiBwb3coMiwgMTAgKiAodCAvIGQgLSAxKSkgKyBiKTsgfSxcclxuICAgICAgICBlYXNlT3V0RXhwbzogZnVuY3Rpb24gKF8sIHQsIGIsIGMsIGQpIHsgcmV0dXJuICh0ID09PSBkID8gYiArIGMgOiBjICogKC1wb3coMiwgKC0xMCAqIHQpIC8gZCkgKyAxKSArIGIpOyB9LFxyXG4gICAgICAgIGVhc2VJbk91dEV4cG86IGZ1bmN0aW9uIChfLCB0LCBiLCBjLCBkKSB7XHJcbiAgICAgICAgICAgIGlmICh0ID09PSAwKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGI7XHJcbiAgICAgICAgICAgIGlmICh0ID09PSBkKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGIgKyBjO1xyXG4gICAgICAgICAgICBpZiAoKHQgLz0gZCAvIDIpIDwgMSlcclxuICAgICAgICAgICAgICAgIHJldHVybiAoYyAvIDIpICogcG93KDIsIDEwICogKHQgLSAxKSkgKyBiO1xyXG4gICAgICAgICAgICByZXR1cm4gKGMgLyAyKSAqICgtcG93KDIsIC0xMCAqIC0tdCkgKyAyKSArIGI7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlYXNlSW5DaXJjOiBmdW5jdGlvbiAoXywgdCwgYiwgYywgZCkgeyByZXR1cm4gLWMgKiAoc3FydCgxIC0gKHQgLz0gZCkgKiB0KSAtIDEpICsgYjsgfSxcclxuICAgICAgICBlYXNlT3V0Q2lyYzogZnVuY3Rpb24gKF8sIHQsIGIsIGMsIGQpIHsgcmV0dXJuIGMgKiBzcXJ0KDEgLSAodCA9IHQgLyBkIC0gMSkgKiB0KSArIGI7IH0sXHJcbiAgICAgICAgZWFzZUluT3V0Q2lyYzogZnVuY3Rpb24gKF8sIHQsIGIsIGMsIGQpIHtcclxuICAgICAgICAgICAgcmV0dXJuICh0IC89IGQgLyAyKSA8IDFcclxuICAgICAgICAgICAgICAgID8gKC1jIC8gMikgKiAoc3FydCgxIC0gdCAqIHQpIC0gMSkgKyBiXHJcbiAgICAgICAgICAgICAgICA6IChjIC8gMikgKiAoc3FydCgxIC0gKHQgLT0gMikgKiB0KSArIDEpICsgYjtcclxuICAgICAgICB9LFxyXG4gICAgfTtcblxuICAgIHZhciAkJCA9IGZ1bmN0aW9uIChzZWxlY3Rvcikge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCgoIXNlbGVjdG9yID8gW10gOiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSkpO1xyXG4gICAgfTtcclxuICAgIHZhciAkID0gZnVuY3Rpb24gKHNlbGVjdG9yKSB7IHJldHVybiAkJChzZWxlY3Rvcikuc2hpZnQoKSB8fCBudWxsOyB9O1xyXG4gICAgdmFyIGlzRWxlbWVudCA9IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIEVsZW1lbnQ7IH07XHJcbiAgICB2YXIgaXNXaW5kb3cgPSBmdW5jdGlvbiAoJGVsKSB7IHJldHVybiAkZWwgPT09IHdpbmRvdzsgfTtcclxuICAgIHZhciBpc1Jvb3RDb250YWluZXIgPSBmdW5jdGlvbiAoJGVsKSB7XHJcbiAgICAgICAgcmV0dXJuICRlbCA9PT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IHx8ICRlbCA9PT0gZG9jdW1lbnQuYm9keTtcclxuICAgIH07XHJcbiAgICB2YXIgbWF0Y2hlcyA9IGZ1bmN0aW9uICgkZWwsIHNlbGVjdG9yKSB7XHJcbiAgICAgICAgaWYgKGlzRWxlbWVudChzZWxlY3RvcikpIHtcclxuICAgICAgICAgICAgcmV0dXJuICRlbCA9PT0gc2VsZWN0b3I7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciByZXN1bHRzID0gJCQoc2VsZWN0b3IpO1xyXG4gICAgICAgIHZhciBpID0gcmVzdWx0cy5sZW5ndGg7XHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5XHJcbiAgICAgICAgd2hpbGUgKC0taSA+PSAwICYmIHJlc3VsdHNbaV0gIT09ICRlbCkgeyB9XHJcbiAgICAgICAgcmV0dXJuIGkgPiAtMTtcclxuICAgIH07XG5cbiAgICB2YXIgZ2V0SGVpZ2h0ID0gZnVuY3Rpb24gKCRlbCkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLm1heCgkZWwuc2Nyb2xsSGVpZ2h0LCAkZWwuY2xpZW50SGVpZ2h0LCAkZWwub2Zmc2V0SGVpZ2h0KTtcclxuICAgIH07XHJcbiAgICB2YXIgZ2V0V2lkdGggPSBmdW5jdGlvbiAoJGVsKSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KCRlbC5zY3JvbGxXaWR0aCwgJGVsLmNsaWVudFdpZHRoLCAkZWwub2Zmc2V0V2lkdGgpO1xyXG4gICAgfTtcclxuICAgIHZhciBnZXRTaXplID0gZnVuY3Rpb24gKCRlbCkgeyByZXR1cm4gKHtcclxuICAgICAgICB3aWR0aDogZ2V0V2lkdGgoJGVsKSxcclxuICAgICAgICBoZWlnaHQ6IGdldEhlaWdodCgkZWwpLFxyXG4gICAgfSk7IH07XHJcbiAgICB2YXIgZ2V0Vmlld3BvcnRBbmRFbGVtZW50U2l6ZXMgPSBmdW5jdGlvbiAoJGVsKSB7XHJcbiAgICAgICAgdmFyIGlzUm9vdCA9IGlzV2luZG93KCRlbCkgfHwgaXNSb290Q29udGFpbmVyKCRlbCk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdmlld3BvcnQ6IHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBpc1Jvb3RcclxuICAgICAgICAgICAgICAgICAgICA/IE1hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoLCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpXHJcbiAgICAgICAgICAgICAgICAgICAgOiAkZWwuY2xpZW50V2lkdGgsXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGlzUm9vdCA/IHdpbmRvdy5pbm5lckhlaWdodCA6ICRlbC5jbGllbnRIZWlnaHQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNpemU6IGlzUm9vdFxyXG4gICAgICAgICAgICAgICAgPyB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IE1hdGgubWF4KGdldFdpZHRoKGRvY3VtZW50LmJvZHkpLCBnZXRXaWR0aChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKSxcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IE1hdGgubWF4KGdldEhlaWdodChkb2N1bWVudC5ib2R5KSwgZ2V0SGVpZ2h0KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgOiBnZXRTaXplKCRlbCksXHJcbiAgICAgICAgfTtcclxuICAgIH07XG5cbiAgICB2YXIgZGlyZWN0aW9uTWV0aG9kTWFwID0ge1xyXG4gICAgICAgIHk6ICdzY3JvbGxUb3AnLFxyXG4gICAgICAgIHg6ICdzY3JvbGxMZWZ0JyxcclxuICAgIH07XHJcbiAgICB2YXIgZGlyZWN0aW9uUHJvcE1hcCA9IHtcclxuICAgICAgICB5OiAncGFnZVlPZmZzZXQnLFxyXG4gICAgICAgIHg6ICdwYWdlWE9mZnNldCcsXHJcbiAgICB9O1xyXG4gICAgdmFyIGdldFNjcm9sbCA9IGZ1bmN0aW9uICgkZWwsIGRpcmVjdGlvbikge1xyXG4gICAgICAgIHJldHVybiBpc1dpbmRvdygkZWwpID8gJGVsW2RpcmVjdGlvblByb3BNYXBbZGlyZWN0aW9uXV0gOiAkZWxbZGlyZWN0aW9uTWV0aG9kTWFwW2RpcmVjdGlvbl1dO1xyXG4gICAgfTtcclxuICAgIHZhciBzZXRTY3JvbGwgPSBmdW5jdGlvbiAoJGVsLCBvZmZzZXQsIGRpcmVjdGlvbikge1xyXG4gICAgICAgIGlmIChpc1dpbmRvdygkZWwpKSB7XHJcbiAgICAgICAgICAgIHZhciB0b3BfMSA9IGRpcmVjdGlvbiA9PT0gJ3knO1xyXG4gICAgICAgICAgICAkZWwuc2Nyb2xsVG8oIXRvcF8xID8gb2Zmc2V0IDogJGVsLnBhZ2VYT2Zmc2V0LCB0b3BfMSA/IG9mZnNldCA6ICRlbC5wYWdlWU9mZnNldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAkZWxbZGlyZWN0aW9uTWV0aG9kTWFwW2RpcmVjdGlvbl1dID0gb2Zmc2V0O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB2YXIgZ2V0T2Zmc2V0ID0gZnVuY3Rpb24gKCRlbCwgJGNvbnRleHQpIHtcclxuICAgICAgICB2YXIgcmVjdCA9ICRlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBpZiAocmVjdC53aWR0aCB8fCByZWN0LmhlaWdodCkge1xyXG4gICAgICAgICAgICB2YXIgc2Nyb2xsXzEgPSB7IHRvcDogMCwgbGVmdDogMCB9O1xyXG4gICAgICAgICAgICB2YXIgJGN0eCA9IHZvaWQgMDtcclxuICAgICAgICAgICAgaWYgKGlzV2luZG93KCRjb250ZXh0KSB8fCBpc1Jvb3RDb250YWluZXIoJGNvbnRleHQpKSB7XHJcbiAgICAgICAgICAgICAgICAkY3R4ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgc2Nyb2xsXzEudG9wID0gd2luZG93W2RpcmVjdGlvblByb3BNYXAueV07XHJcbiAgICAgICAgICAgICAgICBzY3JvbGxfMS5sZWZ0ID0gd2luZG93W2RpcmVjdGlvblByb3BNYXAueF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAkY3R4ID0gJGNvbnRleHQ7XHJcbiAgICAgICAgICAgICAgICB2YXIgY1JlY3QgPSAkY3R4LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICAgICAgc2Nyb2xsXzEudG9wID0gY1JlY3QudG9wICogLTEgKyAkY3R4W2RpcmVjdGlvbk1ldGhvZE1hcC55XTtcclxuICAgICAgICAgICAgICAgIHNjcm9sbF8xLmxlZnQgPSBjUmVjdC5sZWZ0ICogLTEgKyAkY3R4W2RpcmVjdGlvbk1ldGhvZE1hcC54XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgdG9wOiByZWN0LnRvcCArIHNjcm9sbF8xLnRvcCAtICRjdHguY2xpZW50VG9wLFxyXG4gICAgICAgICAgICAgICAgbGVmdDogcmVjdC5sZWZ0ICsgc2Nyb2xsXzEubGVmdCAtICRjdHguY2xpZW50TGVmdCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlY3Q7XHJcbiAgICB9O1xuXG4gICAgdmFyIHdoZWVsRXZlbnROYW1lID0gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBpZiAoIWNhblVzZURPTSkge1xyXG4gICAgICAgICAgICByZXR1cm4gJ3doZWVsJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICdvbndoZWVsJyBpbiBkb2N1bWVudCA/ICd3aGVlbCcgOiAnbW91c2V3aGVlbCc7XHJcbiAgICB9KSgpO1xyXG4gICAgdmFyIGV2ZW50TmFtZSA9IGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiAobmFtZSA9PT0gJ3doZWVsJyA/IHdoZWVsRXZlbnROYW1lIDogbmFtZSk7IH07XHJcbiAgICB2YXIgYXBwbHkgPSBmdW5jdGlvbiAoJGVsLCBtZXRob2QsIGV2ZW50LCBsaXN0ZW5lciwgcGFzc2l2ZSkge1xyXG4gICAgICAgIGV2ZW50LnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xyXG4gICAgICAgICAgICAkZWxbbWV0aG9kXShldmVudE5hbWUobmFtZSksIGxpc3RlbmVyLCBjYW5Vc2VQYXNzaXZlT3B0aW9uID8geyBwYXNzaXZlOiBwYXNzaXZlIH0gOiBmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgdmFyIGFkZEV2ZW50ID0gZnVuY3Rpb24gKCRlbCwgZXZlbnQsIGxpc3RlbmVyLCBwYXNzaXZlKSB7IHJldHVybiBhcHBseSgkZWwsICdhZGRFdmVudExpc3RlbmVyJywgZXZlbnQsIGxpc3RlbmVyLCBwYXNzaXZlKTsgfTtcclxuICAgIHZhciByZW1vdmVFdmVudCA9IGZ1bmN0aW9uICgkZWwsIGV2ZW50LCBsaXN0ZW5lciwgcGFzc2l2ZSkgeyByZXR1cm4gYXBwbHkoJGVsLCAncmVtb3ZlRXZlbnRMaXN0ZW5lcicsIGV2ZW50LCBsaXN0ZW5lciwgcGFzc2l2ZSk7IH07XG5cbiAgICB2YXIgcmVSZWxhdGl2ZVRva2VuID0gL14oXFwrfC0pPShcXGQrKD86XFwuXFxkKyk/KSQvO1xyXG4gICAgdmFyIHBhcnNlQ29vcmRpbmF0ZSA9IGZ1bmN0aW9uIChjb29yZGluYXRlLCBlbmFibGVWZXJ0aWNhbCkge1xyXG4gICAgICAgIHZhciByZXMgPSB7IHRvcDogMCwgbGVmdDogMCwgcmVsYXRpdmU6IGZhbHNlIH07XHJcbiAgICAgICAgLy8gT2JqZWN0ICh7IHRvcDoge259LCBsZWZ0OiB7bn0gfSlcclxuICAgICAgICBpZiAoaGFzUHJvcChjb29yZGluYXRlLCAndG9wJykgfHwgaGFzUHJvcChjb29yZGluYXRlLCAnbGVmdCcpKSB7XHJcbiAgICAgICAgICAgIHJlcyA9IF9fYXNzaWduKHt9LCByZXMsIGNvb3JkaW5hdGUpO1xyXG4gICAgICAgICAgICAvLyBBcnJheSAoW3tufSwgW3tufV0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlzQXJyYXkoY29vcmRpbmF0ZSkpIHtcclxuICAgICAgICAgICAgaWYgKGNvb3JkaW5hdGUubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgcmVzLnRvcCA9IGNvb3JkaW5hdGVbMF07XHJcbiAgICAgICAgICAgICAgICByZXMubGVmdCA9IGNvb3JkaW5hdGVbMV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoY29vcmRpbmF0ZS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgICAgIHJlcy50b3AgPSBlbmFibGVWZXJ0aWNhbCA/IGNvb3JkaW5hdGVbMF0gOiAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLmxlZnQgPSAhZW5hYmxlVmVydGljYWwgPyBjb29yZGluYXRlWzBdIDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIE51bWJlclxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpc051bWVyaWMoY29vcmRpbmF0ZSkpIHtcclxuICAgICAgICAgICAgaWYgKGVuYWJsZVZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICByZXMudG9wID0gY29vcmRpbmF0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlcy5sZWZ0ID0gY29vcmRpbmF0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBTdHJpbmcgKCcrPXtufScsICctPXtufScpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKGNvb3JkaW5hdGUpKSB7XHJcbiAgICAgICAgICAgIHZhciBtID0gY29vcmRpbmF0ZS50cmltKCkubWF0Y2gocmVSZWxhdGl2ZVRva2VuKTtcclxuICAgICAgICAgICAgaWYgKCFtKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgb3AgPSBtWzFdO1xyXG4gICAgICAgICAgICB2YXIgdmFsID0gcGFyc2VJbnQobVsyXSwgMTApO1xyXG4gICAgICAgICAgICBpZiAob3AgPT09ICcrJykge1xyXG4gICAgICAgICAgICAgICAgcmVzLnRvcCA9IGVuYWJsZVZlcnRpY2FsID8gdmFsIDogMDtcclxuICAgICAgICAgICAgICAgIHJlcy5sZWZ0ID0gIWVuYWJsZVZlcnRpY2FsID8gdmFsIDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlcy50b3AgPSBlbmFibGVWZXJ0aWNhbCA/IC12YWwgOiAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLmxlZnQgPSAhZW5hYmxlVmVydGljYWwgPyAtdmFsIDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXMucmVsYXRpdmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXM7XHJcbiAgICB9O1xuXG4gICAgdmFyIGRlZmF1bHRPcHRpb25zID0ge1xyXG4gICAgICAgIHRyaWdnZXI6ICdbZGF0YS1zY3JvbGxdJyxcclxuICAgICAgICBoZWFkZXI6ICdbZGF0YS1zY3JvbGwtaGVhZGVyXScsXHJcbiAgICAgICAgZHVyYXRpb246IDEwMDAsXHJcbiAgICAgICAgZWFzaW5nOiAnZWFzZU91dFF1aW50JyxcclxuICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgdmVydGljYWw6IHRydWUsXHJcbiAgICAgICAgaG9yaXpvbnRhbDogZmFsc2UsXHJcbiAgICAgICAgY2FuY2VsbGFibGU6IHRydWUsXHJcbiAgICAgICAgdXBkYXRlVVJMOiBmYWxzZSxcclxuICAgICAgICBwcmV2ZW50RGVmYXVsdDogdHJ1ZSxcclxuICAgICAgICBzdG9wUHJvcGFnYXRpb246IHRydWUsXHJcbiAgICAgICAgLy8gQ2FsbGJhY2tzXHJcbiAgICAgICAgYmVmb3JlOiBudWxsLFxyXG4gICAgICAgIGFmdGVyOiBudWxsLFxyXG4gICAgICAgIGNhbmNlbDogbnVsbCxcclxuICAgICAgICBjb21wbGV0ZTogbnVsbCxcclxuICAgICAgICBzdGVwOiBudWxsLFxyXG4gICAgfTtcblxuICAgIHZhciBDT05UQUlORVJfQ0xJQ0tfRVZFTlQgPSAnY2xpY2snO1xyXG4gICAgdmFyIENPTlRBSU5FUl9TVE9QX0VWRU5UID0gJ3doZWVsIHRvdWNoc3RhcnQgdG91Y2htb3ZlJztcclxuICAgIHZhciBTd2VldFNjcm9sbCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGZ1bmN0aW9uIFN3ZWV0U2Nyb2xsKG9wdGlvbnMsIGNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgICAgICB0aGlzLiRlbCA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuY3R4ID0ge1xyXG4gICAgICAgICAgICAgICAgJHRyaWdnZXI6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBvcHRzOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgcHJvZ3Jlc3M6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcG9zOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgc3RhcnRQb3M6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBlYXNpbmc6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBzdGFydDogMCxcclxuICAgICAgICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgICAgICAgY2FuY2VsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGhhc2g6IG51bGwsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBIYW5kbGUgZWFjaCBmcmFtZSBvZiB0aGUgYW5pbWF0aW9uLlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgdGhpcy5sb29wID0gZnVuY3Rpb24gKHRpbWUpIHtcclxuICAgICAgICAgICAgICAgIHZhciBfYSA9IF90aGlzLCAkZWwgPSBfYS4kZWwsIGN0eCA9IF9hLmN0eDtcclxuICAgICAgICAgICAgICAgIGlmICghY3R4LnN0YXJ0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3R4LnN0YXJ0ID0gdGltZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghY3R4LnByb2dyZXNzIHx8ICEkZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5zdG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIG9wdGlvbnMgPSBjdHgub3B0cztcclxuICAgICAgICAgICAgICAgIHZhciBvZmZzZXQgPSBjdHgucG9zO1xyXG4gICAgICAgICAgICAgICAgdmFyIHN0YXJ0ID0gY3R4LnN0YXJ0O1xyXG4gICAgICAgICAgICAgICAgdmFyIHN0YXJ0T2Zmc2V0ID0gY3R4LnN0YXJ0UG9zO1xyXG4gICAgICAgICAgICAgICAgdmFyIGVhc2luZyA9IGN0eC5lYXNpbmc7XHJcbiAgICAgICAgICAgICAgICB2YXIgZHVyYXRpb24gPSBvcHRpb25zLmR1cmF0aW9uO1xyXG4gICAgICAgICAgICAgICAgdmFyIGRpcmVjdGlvbk1hcCA9IHsgdG9wOiAneScsIGxlZnQ6ICd4JyB9O1xyXG4gICAgICAgICAgICAgICAgdmFyIHRpbWVFbGFwc2VkID0gdGltZSAtIHN0YXJ0O1xyXG4gICAgICAgICAgICAgICAgdmFyIHQgPSBNYXRoLm1pbigxLCBNYXRoLm1heCh0aW1lRWxhcHNlZCAvIGR1cmF0aW9uLCAwKSk7XHJcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhvZmZzZXQpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IG9mZnNldFtrZXldO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBpbml0aWFsID0gc3RhcnRPZmZzZXRba2V5XTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZGVsdGEgPSB2YWx1ZSAtIGluaXRpYWw7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlbHRhICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWwgPSBlYXNpbmcodCwgZHVyYXRpb24gKiB0LCAwLCAxLCBkdXJhdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNjcm9sbCgkZWwsIE1hdGgucm91bmQoaW5pdGlhbCArIGRlbHRhICogdmFsKSwgZGlyZWN0aW9uTWFwW2tleV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRpbWVFbGFwc2VkIDw9IGR1cmF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuaG9vayhvcHRpb25zLCAnc3RlcCcsIHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGN0eC5pZCA9IFN3ZWV0U2Nyb2xsLnJhZihfdGhpcy5sb29wKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnN0b3AodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBIYW5kbGluZyBvZiBjb250YWluZXIgY2xpY2sgZXZlbnQuXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNsaWNrID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgICAgIHZhciBvcHRzID0gX3RoaXMub3B0cztcclxuICAgICAgICAgICAgICAgIHZhciAkZWwgPSBlLnRhcmdldDtcclxuICAgICAgICAgICAgICAgIGZvciAoOyAkZWwgJiYgJGVsICE9PSBkb2N1bWVudDsgJGVsID0gJGVsLnBhcmVudE5vZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIW1hdGNoZXMoJGVsLCBvcHRzLnRyaWdnZXIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YU9wdGlvbnMgPSBKU09OLnBhcnNlKCRlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2Nyb2xsLW9wdGlvbnMnKSB8fCAne30nKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9ICRlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2Nyb2xsJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRvID0gZGF0YSB8fCAkZWwuZ2V0QXR0cmlidXRlKCdocmVmJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIG9wdGlvbnMgPSBfX2Fzc2lnbih7fSwgb3B0cywgZGF0YU9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBwcmV2ZW50RGVmYXVsdCA9IG9wdGlvbnMucHJldmVudERlZmF1bHQsIHN0b3BQcm9wYWdhdGlvbiA9IG9wdGlvbnMuc3RvcFByb3BhZ2F0aW9uLCB2ZXJ0aWNhbCA9IG9wdGlvbnMudmVydGljYWwsIGhvcml6b250YWwgPSBvcHRpb25zLmhvcml6b250YWw7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZlbnREZWZhdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3BQcm9wYWdhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBQYXNzZXMgdGhlIHRyaWdnZXIgZWxlbWVudCB0byBjYWxsYmFja1xyXG4gICAgICAgICAgICAgICAgICAgIF90aGlzLmN0eC4kdHJpZ2dlciA9ICRlbDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaG9yaXpvbnRhbCAmJiB2ZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy50byh0bywgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnRvVG9wKHRvLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy50b0xlZnQodG8sIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEhhbmRsaW5nIG9mIGNvbnRhaW5lciBzdG9wIGV2ZW50cy5cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU3RvcCA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY3R4ID0gX3RoaXMuY3R4O1xyXG4gICAgICAgICAgICAgICAgdmFyIG9wdHMgPSBjdHgub3B0cztcclxuICAgICAgICAgICAgICAgIGlmIChvcHRzICYmIG9wdHMuY2FuY2VsbGFibGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjdHguY2FuY2VsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5zdG9wKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMub3B0cyA9IF9fYXNzaWduKHt9LCBkZWZhdWx0T3B0aW9ucywgKG9wdGlvbnMgfHwge30pKTtcclxuICAgICAgICAgICAgdmFyICRjb250YWluZXIgPSBudWxsO1xyXG4gICAgICAgICAgICBpZiAoY2FuVXNlRE9NKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRhaW5lciA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICAkY29udGFpbmVyID0gJChjb250YWluZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY29udGFpbmVyICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAkY29udGFpbmVyID0gY29udGFpbmVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGNvbnRhaW5lciA9IHdpbmRvdztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLiRlbCA9ICRjb250YWluZXI7XHJcbiAgICAgICAgICAgIGlmICgkY29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmQodHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFN3ZWV0U2Nyb2xsIGluc3RhbmNlIGZhY3RvcnkuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgU3dlZXRTY3JvbGwuY3JlYXRlID0gZnVuY3Rpb24gKG9wdGlvbnMsIGNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFN3ZWV0U2Nyb2xsKG9wdGlvbnMsIGNvbnRhaW5lcik7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBTY3JvbGwgYW5pbWF0aW9uIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgU3dlZXRTY3JvbGwucHJvdG90eXBlLnRvID0gZnVuY3Rpb24gKGRpc3RhbmNlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGlmICghY2FuVXNlRE9NKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIF9hID0gdGhpcywgJGVsID0gX2EuJGVsLCBjdHggPSBfYS5jdHgsIGN1cnJlbnRPcHRpb25zID0gX2Eub3B0cztcclxuICAgICAgICAgICAgdmFyICR0cmlnZ2VyID0gY3R4LiR0cmlnZ2VyO1xyXG4gICAgICAgICAgICB2YXIgb3B0cyA9IF9fYXNzaWduKHt9LCBjdXJyZW50T3B0aW9ucywgKG9wdGlvbnMgfHwge30pKTtcclxuICAgICAgICAgICAgdmFyIG9wdE9mZnNldCA9IG9wdHMub2Zmc2V0LCB2ZXJ0aWNhbCA9IG9wdHMudmVydGljYWwsIGhvcml6b250YWwgPSBvcHRzLmhvcml6b250YWw7XHJcbiAgICAgICAgICAgIHZhciAkaGVhZGVyID0gaXNFbGVtZW50KG9wdHMuaGVhZGVyKSA/IG9wdHMuaGVhZGVyIDogJChvcHRzLmhlYWRlcik7XHJcbiAgICAgICAgICAgIHZhciByZWcgPSAvXiMvO1xyXG4gICAgICAgICAgICB2YXIgaGFzaCA9IGlzU3RyaW5nKGRpc3RhbmNlKSAmJiByZWcudGVzdChkaXN0YW5jZSkgPyBkaXN0YW5jZSA6IG51bGw7XHJcbiAgICAgICAgICAgIGN0eC5vcHRzID0gb3B0czsgLy8gVGVtcG9yYXJ5IG9wdGlvbnNcclxuICAgICAgICAgICAgY3R4LmNhbmNlbCA9IGZhbHNlOyAvLyBEaXNhYmxlIHRoZSBjYWxsIGZsYWcgb2YgYGNhbmNlbGBcclxuICAgICAgICAgICAgY3R4Lmhhc2ggPSBoYXNoO1xyXG4gICAgICAgICAgICAvLyBTdG9wIGN1cnJlbnQgYW5pbWF0aW9uXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xyXG4gICAgICAgICAgICAvLyBEb2VzIG5vdCBtb3ZlIGlmIHRoZSBjb250YWluZXIgaXMgbm90IGZvdW5kXHJcbiAgICAgICAgICAgIGlmICghJGVsKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gR2V0IHNjcm9sbCBvZmZzZXRcclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IHBhcnNlQ29vcmRpbmF0ZShvcHRPZmZzZXQsIHZlcnRpY2FsKTtcclxuICAgICAgICAgICAgdmFyIGNvb3JkaW5hdGUgPSBwYXJzZUNvb3JkaW5hdGUoZGlzdGFuY2UsIHZlcnRpY2FsKTtcclxuICAgICAgICAgICAgdmFyIHNjcm9sbCA9IHsgdG9wOiAwLCBsZWZ0OiAwIH07XHJcbiAgICAgICAgICAgIGlmIChjb29yZGluYXRlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29vcmRpbmF0ZS5yZWxhdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gZ2V0U2Nyb2xsKCRlbCwgdmVydGljYWwgPyAneScgOiAneCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbC50b3AgPSB2ZXJ0aWNhbCA/IGN1cnJlbnQgKyBjb29yZGluYXRlLnRvcCA6IGNvb3JkaW5hdGUudG9wO1xyXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbC5sZWZ0ID0gIXZlcnRpY2FsID8gY3VycmVudCArIGNvb3JkaW5hdGUubGVmdCA6IGNvb3JkaW5hdGUubGVmdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbCA9IGNvb3JkaW5hdGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaXNTdHJpbmcoZGlzdGFuY2UpICYmIGRpc3RhbmNlICE9PSAnIycpIHtcclxuICAgICAgICAgICAgICAgIHZhciAkdGFyZ2V0ID0gJChkaXN0YW5jZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoISR0YXJnZXQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzY3JvbGwgPSBnZXRPZmZzZXQoJHRhcmdldCwgJGVsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAob2Zmc2V0KSB7XHJcbiAgICAgICAgICAgICAgICBzY3JvbGwudG9wICs9IG9mZnNldC50b3A7XHJcbiAgICAgICAgICAgICAgICBzY3JvbGwubGVmdCArPSBvZmZzZXQubGVmdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoJGhlYWRlcikge1xyXG4gICAgICAgICAgICAgICAgc2Nyb2xsLnRvcCA9IE1hdGgubWF4KDAsIHNjcm9sbC50b3AgLSBnZXRTaXplKCRoZWFkZXIpLmhlaWdodCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gTm9ybWFsaXplIHNjcm9sbCBvZmZzZXRcclxuICAgICAgICAgICAgdmFyIF9iID0gZ2V0Vmlld3BvcnRBbmRFbGVtZW50U2l6ZXMoJGVsKSwgdmlld3BvcnQgPSBfYi52aWV3cG9ydCwgc2l6ZSA9IF9iLnNpemU7XHJcbiAgICAgICAgICAgIHNjcm9sbC50b3AgPSB2ZXJ0aWNhbFxyXG4gICAgICAgICAgICAgICAgPyBNYXRoLm1heCgwLCBNYXRoLm1pbihzaXplLmhlaWdodCAtIHZpZXdwb3J0LmhlaWdodCwgc2Nyb2xsLnRvcCkpXHJcbiAgICAgICAgICAgICAgICA6IGdldFNjcm9sbCgkZWwsICd5Jyk7XHJcbiAgICAgICAgICAgIHNjcm9sbC5sZWZ0ID0gaG9yaXpvbnRhbFxyXG4gICAgICAgICAgICAgICAgPyBNYXRoLm1heCgwLCBNYXRoLm1pbihzaXplLndpZHRoIC0gdmlld3BvcnQud2lkdGgsIHNjcm9sbC5sZWZ0KSlcclxuICAgICAgICAgICAgICAgIDogZ2V0U2Nyb2xsKCRlbCwgJ3gnKTtcclxuICAgICAgICAgICAgLy8gQ2FsbCBgYmVmb3JlYFxyXG4gICAgICAgICAgICAvLyBTdG9wIHNjcm9sbGluZyB3aGVuIGl0IHJldHVybnMgZmFsc2VcclxuICAgICAgICAgICAgaWYgKHRoaXMuaG9vayhvcHRzLCAnYmVmb3JlJywgc2Nyb2xsLCAkdHJpZ2dlcikgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBjdHgub3B0cyA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gU2V0IG9mZnNldFxyXG4gICAgICAgICAgICBjdHgucG9zID0gc2Nyb2xsO1xyXG4gICAgICAgICAgICAvLyBSdW4gYW5pbWF0aW9uISFcclxuICAgICAgICAgICAgdGhpcy5zdGFydChvcHRzKTtcclxuICAgICAgICAgICAgLy8gQmluZCBzdG9wIGV2ZW50c1xyXG4gICAgICAgICAgICB0aGlzLmJpbmQoZmFsc2UsIHRydWUpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogU2Nyb2xsIGFuaW1hdGlvbiB0byBzcGVjaWZpZWQgbGVmdCBwb3NpdGlvbi5cclxuICAgICAgICAgKi9cclxuICAgICAgICBTd2VldFNjcm9sbC5wcm90b3R5cGUudG9Ub3AgPSBmdW5jdGlvbiAoZGlzdGFuY2UsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy50byhkaXN0YW5jZSwgX19hc3NpZ24oe30sIChvcHRpb25zIHx8IHt9KSwgeyB2ZXJ0aWNhbDogdHJ1ZSwgaG9yaXpvbnRhbDogZmFsc2UgfSkpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogU2Nyb2xsIGFuaW1hdGlvbiB0byBzcGVjaWZpZWQgdG9wIHBvc2l0aW9uLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIFN3ZWV0U2Nyb2xsLnByb3RvdHlwZS50b0xlZnQgPSBmdW5jdGlvbiAoZGlzdGFuY2UsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy50byhkaXN0YW5jZSwgX19hc3NpZ24oe30sIChvcHRpb25zIHx8IHt9KSwgeyB2ZXJ0aWNhbDogZmFsc2UsIGhvcml6b250YWw6IHRydWUgfSkpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogU2Nyb2xsIGFuaW1hdGlvbiB0byBzcGVjaWZpZWQgZWxlbWVudC5cclxuICAgICAgICAgKi9cclxuICAgICAgICBTd2VldFNjcm9sbC5wcm90b3R5cGUudG9FbGVtZW50ID0gZnVuY3Rpb24gKCRlbGVtZW50LCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHZhciAkZWwgPSB0aGlzLiRlbDtcclxuICAgICAgICAgICAgaWYgKCFjYW5Vc2VET00gfHwgISRlbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudG8oZ2V0T2Zmc2V0KCRlbGVtZW50LCAkZWwpLCBvcHRpb25zIHx8IHt9KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFN0b3AgdGhlIGN1cnJlbnQgc2Nyb2xsIGFuaW1hdGlvbi5cclxuICAgICAgICAgKi9cclxuICAgICAgICBTd2VldFNjcm9sbC5wcm90b3R5cGUuc3RvcCA9IGZ1bmN0aW9uIChnb3RvRW5kKSB7XHJcbiAgICAgICAgICAgIGlmIChnb3RvRW5kID09PSB2b2lkIDApIHsgZ290b0VuZCA9IGZhbHNlOyB9XHJcbiAgICAgICAgICAgIHZhciBfYSA9IHRoaXMsICRlbCA9IF9hLiRlbCwgY3R4ID0gX2EuY3R4O1xyXG4gICAgICAgICAgICB2YXIgcG9zID0gY3R4LnBvcztcclxuICAgICAgICAgICAgaWYgKCEkZWwgfHwgIWN0eC5wcm9ncmVzcykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFN3ZWV0U2Nyb2xsLmNhZihjdHguaWQpO1xyXG4gICAgICAgICAgICBjdHgucHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgICAgY3R4LnN0YXJ0ID0gMDtcclxuICAgICAgICAgICAgY3R4LmlkID0gMDtcclxuICAgICAgICAgICAgaWYgKGdvdG9FbmQgJiYgcG9zKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRTY3JvbGwoJGVsLCBwb3MubGVmdCwgJ3gnKTtcclxuICAgICAgICAgICAgICAgIHNldFNjcm9sbCgkZWwsIHBvcy50b3AsICd5Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVXBkYXRlIG9wdGlvbnMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgU3dlZXRTY3JvbGwucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLiRlbCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG9wdHMgPSBfX2Fzc2lnbih7fSwgdGhpcy5vcHRzLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51bmJpbmQodHJ1ZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wdHMgPSBvcHRzO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iaW5kKHRydWUsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogRGVzdHJveSBpbnN0YW5jZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICBTd2VldFNjcm9sbC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuJGVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3AoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5iaW5kKHRydWUsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kZWwgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBDYWxsYmFjayBtZXRob2RzLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIC8qIHRzbGludDpkaXNhYmxlOm5vLWVtcHR5ICovXHJcbiAgICAgICAgU3dlZXRTY3JvbGwucHJvdG90eXBlLm9uQmVmb3JlID0gZnVuY3Rpb24gKF8sIF9fKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgU3dlZXRTY3JvbGwucHJvdG90eXBlLm9uU3RlcCA9IGZ1bmN0aW9uIChfKSB7IH07XHJcbiAgICAgICAgU3dlZXRTY3JvbGwucHJvdG90eXBlLm9uQWZ0ZXIgPSBmdW5jdGlvbiAoXywgX18pIHsgfTtcclxuICAgICAgICBTd2VldFNjcm9sbC5wcm90b3R5cGUub25DYW5jZWwgPSBmdW5jdGlvbiAoKSB7IH07XHJcbiAgICAgICAgU3dlZXRTY3JvbGwucHJvdG90eXBlLm9uQ29tcGxldGUgPSBmdW5jdGlvbiAoXykgeyB9O1xyXG4gICAgICAgIC8qIHRzbGludDplbmFibGUgKi9cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBTdGFydCBzY3JvbGxpbmcgYW5pbWF0aW9uLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIFN3ZWV0U2Nyb2xsLnByb3RvdHlwZS5zdGFydCA9IGZ1bmN0aW9uIChvcHRzKSB7XHJcbiAgICAgICAgICAgIHZhciBjdHggPSB0aGlzLmN0eDtcclxuICAgICAgICAgICAgY3R4Lm9wdHMgPSBvcHRzO1xyXG4gICAgICAgICAgICBjdHgucHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICAgICAgICBjdHguZWFzaW5nID0gaXNGdW5jdGlvbihvcHRzLmVhc2luZylcclxuICAgICAgICAgICAgICAgID8gb3B0cy5lYXNpbmdcclxuICAgICAgICAgICAgICAgIDogZWFzaW5nc1tvcHRzLmVhc2luZ107XHJcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBzdGFydCBvZmZzZXQuXHJcbiAgICAgICAgICAgIHZhciAkY29udGFpbmVyID0gdGhpcy4kZWw7XHJcbiAgICAgICAgICAgIHZhciBzdGFydCA9IHtcclxuICAgICAgICAgICAgICAgIHRvcDogZ2V0U2Nyb2xsKCRjb250YWluZXIsICd5JyksXHJcbiAgICAgICAgICAgICAgICBsZWZ0OiBnZXRTY3JvbGwoJGNvbnRhaW5lciwgJ3gnKSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgY3R4LnN0YXJ0UG9zID0gc3RhcnQ7XHJcbiAgICAgICAgICAgIC8vIExvb3BcclxuICAgICAgICAgICAgY3R4LmlkID0gU3dlZXRTY3JvbGwucmFmKHRoaXMubG9vcCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBIYW5kbGUgdGhlIGNvbXBsZXRpb24gb2Ygc2Nyb2xsaW5nIGFuaW1hdGlvbi5cclxuICAgICAgICAgKi9cclxuICAgICAgICBTd2VldFNjcm9sbC5wcm90b3R5cGUuY29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciBfYSA9IHRoaXMsICRlbCA9IF9hLiRlbCwgY3R4ID0gX2EuY3R4O1xyXG4gICAgICAgICAgICB2YXIgaGFzaCA9IGN0eC5oYXNoLCBjYW5jZWwgPSBjdHguY2FuY2VsLCBvcHRzID0gY3R4Lm9wdHMsIHBvcyA9IGN0eC5wb3MsICR0cmlnZ2VyID0gY3R4LiR0cmlnZ2VyO1xyXG4gICAgICAgICAgICBpZiAoISRlbCB8fCAhb3B0cykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChoYXNoICE9IG51bGwgJiYgaGFzaCAhPT0gd2luZG93LmxvY2F0aW9uLmhhc2gpIHtcclxuICAgICAgICAgICAgICAgIHZhciB1cGRhdGVVUkwgPSBvcHRzLnVwZGF0ZVVSTDtcclxuICAgICAgICAgICAgICAgIGlmIChjYW5Vc2VET00gJiYgY2FuVXNlSGlzdG9yeSAmJiB1cGRhdGVVUkwgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93Lmhpc3RvcnlbdXBkYXRlVVJMID09PSAncmVwbGFjZScgPyAncmVwbGFjZVN0YXRlJyA6ICdwdXNoU3RhdGUnXShudWxsLCAnJywgaGFzaCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy51bmJpbmQoZmFsc2UsIHRydWUpO1xyXG4gICAgICAgICAgICBjdHgub3B0cyA9IG51bGw7XHJcbiAgICAgICAgICAgIGN0eC4kdHJpZ2dlciA9IG51bGw7XHJcbiAgICAgICAgICAgIGlmIChjYW5jZWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaG9vayhvcHRzLCAnY2FuY2VsJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhvb2sob3B0cywgJ2FmdGVyJywgcG9zLCAkdHJpZ2dlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5ob29rKG9wdHMsICdjb21wbGV0ZScsIGNhbmNlbCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiBhbmQgbWV0aG9kIGNhbGwuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgU3dlZXRTY3JvbGwucHJvdG90eXBlLmhvb2sgPSBmdW5jdGlvbiAob3B0aW9ucywgdHlwZSkge1xyXG4gICAgICAgICAgICB2YXIgYXJncyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBfaSA9IDI7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICAgICAgYXJnc1tfaSAtIDJdID0gYXJndW1lbnRzW19pXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IG9wdGlvbnNbdHlwZV07XHJcbiAgICAgICAgICAgIHZhciBjYWxsYmFja1Jlc3VsdDtcclxuICAgICAgICAgICAgdmFyIG1ldGhvZFJlc3VsdDtcclxuICAgICAgICAgICAgLy8gY2FsbGJhY2tcclxuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oY2FsbGJhY2spKSB7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFja1Jlc3VsdCA9IGNhbGxiYWNrLmFwcGx5KHRoaXMsIGFyZ3MuY29uY2F0KFt0aGlzXSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIG1ldGhvZFxyXG4gICAgICAgICAgICBtZXRob2RSZXN1bHQgPSAoX2EgPSB0aGlzKVtcIm9uXCIgKyAodHlwZVswXS50b1VwcGVyQ2FzZSgpICsgdHlwZS5zbGljZSgxKSldLmFwcGx5KF9hLCBhcmdzKTtcclxuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrUmVzdWx0ICE9PSB1bmRlZmluZWQgPyBjYWxsYmFja1Jlc3VsdCA6IG1ldGhvZFJlc3VsdDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEJpbmQgZXZlbnRzIG9mIGNvbnRhaW5lciBlbGVtZW50LlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIFN3ZWV0U2Nyb2xsLnByb3RvdHlwZS5iaW5kID0gZnVuY3Rpb24gKGNsaWNrLCBzdG9wKSB7XHJcbiAgICAgICAgICAgIHZhciBfYSA9IHRoaXMsICRlbCA9IF9hLiRlbCwgb3B0cyA9IF9hLmN0eC5vcHRzO1xyXG4gICAgICAgICAgICBpZiAoJGVsKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2xpY2spIHtcclxuICAgICAgICAgICAgICAgICAgICBhZGRFdmVudCgkZWwsIENPTlRBSU5FUl9DTElDS19FVkVOVCwgdGhpcy5oYW5kbGVDbGljaywgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHN0b3ApIHtcclxuICAgICAgICAgICAgICAgICAgICBhZGRFdmVudCgkZWwsIENPTlRBSU5FUl9TVE9QX0VWRU5ULCB0aGlzLmhhbmRsZVN0b3AsIG9wdHMgPyBvcHRzLmNhbmNlbGxhYmxlIDogdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFVuYmluZCBldmVudHMgb2YgY29udGFpbmVyIGVsZW1lbnQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgU3dlZXRTY3JvbGwucHJvdG90eXBlLnVuYmluZCA9IGZ1bmN0aW9uIChjbGljaywgc3RvcCkge1xyXG4gICAgICAgICAgICB2YXIgX2EgPSB0aGlzLCAkZWwgPSBfYS4kZWwsIG9wdHMgPSBfYS5jdHgub3B0cztcclxuICAgICAgICAgICAgaWYgKCRlbCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNsaWNrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlRXZlbnQoJGVsLCBDT05UQUlORVJfQ0xJQ0tfRVZFTlQsIHRoaXMuaGFuZGxlQ2xpY2ssIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChzdG9wKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlRXZlbnQoJGVsLCBDT05UQUlORVJfU1RPUF9FVkVOVCwgdGhpcy5oYW5kbGVTdG9wLCBvcHRzID8gb3B0cy5jYW5jZWxsYWJsZSA6IHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBZb3UgY2FuIHNldCBQb2x5ZmlsbCAob3IgUG9ueWZpbGwpIGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IHJlcXVlc3RBbmltYXRpb25GcmFtZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICBTd2VldFNjcm9sbC5yYWYgPSByYWY7XHJcbiAgICAgICAgU3dlZXRTY3JvbGwuY2FmID0gY2FmO1xyXG4gICAgICAgIHJldHVybiBTd2VldFNjcm9sbDtcclxuICAgIH0oKSk7XG5cbiAgICByZXR1cm4gU3dlZXRTY3JvbGw7XG5cbn0pKTtcbiIsICIvLyBkZXNpZ25lc3RhdGUgc2NvcGVcbmltcG9ydCAqIGFzIGRlZXNDb21tcyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWNvbW1zJztcblxuZXhwb3J0IHsgZGVlc0NvbW1zIH07XG5cbi8vIGFwaWdsb2JhbCBzY29wZVxuaW1wb3J0ICogYXMgdHlwZWRyZXF1ZXN0IGZyb20gJ0BhcGkuZ2xvYmFsL3R5cGVkcmVxdWVzdCc7XG5cbmV4cG9ydCB7IHR5cGVkcmVxdWVzdCB9O1xuXG4vLyBwdXNocm9ja3Mgc2NvcGVcbmltcG9ydCAqIGFzIHNtYXJ0ZGVsYXkgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRkZWxheSc7XG5pbXBvcnQgKiBhcyBzbWFydGpzb24gZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRqc29uJztcbmltcG9ydCAqIGFzIHNtYXJ0bWFya2Rvd24gZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRtYXJrZG93bic7XG5pbXBvcnQgKiBhcyBzbWFydHByb21pc2UgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlJztcbmltcG9ydCAqIGFzIHNtYXJ0cm91dGVyIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cm91dGVyJztcbmltcG9ydCAqIGFzIHNtYXJ0cnggZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRyeCc7XG5pbXBvcnQgKiBhcyBzbWFydHN0YXRlIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0c3RhdGUnO1xuaW1wb3J0ICogYXMgc21hcnRzdHJpbmcgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRzdHJpbmcnO1xuaW1wb3J0ICogYXMgc21hcnR1cmwgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnR1cmwnO1xuaW1wb3J0ICogYXMgd2VicmVxdWVzdCBmcm9tICdAcHVzaC5yb2Nrcy93ZWJyZXF1ZXN0JztcbmltcG9ydCAqIGFzIHdlYnNldHVwIGZyb20gJ0BwdXNoLnJvY2tzL3dlYnNldHVwJztcbmltcG9ydCAqIGFzIHdlYnN0b3JlIGZyb20gJ0BwdXNoLnJvY2tzL3dlYnN0b3JlJztcblxuLy8gc3Vic2NvcGUgbGlrXG5pbXBvcnQgeyBPYmplY3RNYXAgfSBmcm9tICdAcHVzaC5yb2Nrcy9saWsvZGlzdF90cy9saWsub2JqZWN0bWFwLmpzJztcbmltcG9ydCB7IFN0cmluZ21hcCB9IGZyb20gJ0BwdXNoLnJvY2tzL2xpay9kaXN0X3RzL2xpay5zdHJpbmdtYXAuanMnO1xuaW1wb3J0IHsgRmFzdE1hcCB9IGZyb20gJ0BwdXNoLnJvY2tzL2xpay9kaXN0X3RzL2xpay5mYXN0bWFwLmpzJztcbmNvbnN0IGxpayA9IHtcbiAgT2JqZWN0TWFwLFxuICBTdHJpbmdtYXAsXG4gIEZhc3RNYXAsXG59O1xuXG5leHBvcnQge1xuICBsaWssXG4gIHNtYXJ0ZGVsYXksXG4gIHNtYXJ0anNvbixcbiAgc21hcnRtYXJrZG93bixcbiAgc21hcnRwcm9taXNlLFxuICBzbWFydHJvdXRlcixcbiAgc21hcnRyeCxcbiAgc21hcnR1cmwsXG4gIHNtYXJ0c3RhdGUsXG4gIHNtYXJ0c3RyaW5nLFxuICB3ZWJyZXF1ZXN0LFxuICB3ZWJzZXR1cCxcbiAgd2Vic3RvcmUsXG59O1xuXG4vLyB0aGlyZCBwYXJ0eSBzY29wZVxuaW1wb3J0IExlbmlzIGZyb20gJ0B0ZW1wZml4L2xlbmlzJ1xuaW1wb3J0IFN3ZWV0U2Nyb2xsIGZyb20gJ3N3ZWV0LXNjcm9sbCc7XG5cbmV4cG9ydCB7IExlbmlzLCBTd2VldFNjcm9sbCB9O1xuIiwgImltcG9ydCB7IERvbVRvb2xzIH0gZnJvbSAnLi9kb210b29scy5jbGFzc2VzLmRvbXRvb2xzLmpzJztcblxuaW1wb3J0IHsgQ1NTUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5leHBvcnQgY29uc3QgZGVza3RvcCA9IDE2MDA7XG5leHBvcnQgY29uc3Qgbm90ZWJvb2sgPSAxMjQwO1xuZXhwb3J0IGNvbnN0IHRhYmxldCA9IDEwMjQ7XG5leHBvcnQgY29uc3QgcGhhYmxldCA9IDYwMDtcbmV4cG9ydCBjb25zdCBwaG9uZSA9IDQwMDtcblxuZXhwb3J0IHR5cGUgVFZpZXdwb3J0ID0gJ25hdGl2ZScgfCAnZGVza3RvcCcgfCAndGFibGV0JyB8ICdwaGFibGV0JyB8ICdwaG9uZSc7XG5cbmV4cG9ydCBjb25zdCBjc3NGb3JEZXNrdG9wID0gKGNzc0FyZzogQ1NTUmVzdWx0KSA9PiB7XG4gIHJldHVybiB1bnNhZmVDU1MoYFxuICAgIEBjb250YWluZXIgd2NjVG9vbHNWaWV3cG9ydCAobWluLXdpZHRoOiAke2Rlc2t0b3B9cHgpIHtcbiAgICAgICR7Y3NzQXJnLmNzc1RleHR9XG4gICAgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAke2Rlc2t0b3B9cHgpIHtcbiAgICAgICR7Y3NzQXJnLmNzc1RleHR9XG4gICAgfVxuICBgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjc3NGb3JOb3RlYm9vayA9IChjc3NBcmc6IENTU1Jlc3VsdCkgPT4ge1xuICByZXR1cm4gdW5zYWZlQ1NTKGBcbiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtub3RlYm9va31weCkge1xuICAgICAgJHtjc3NBcmcuY3NzVGV4dH1cbiAgICB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICR7bm90ZWJvb2t9cHgpIHtcbiAgICAgICR7Y3NzQXJnLmNzc1RleHR9XG4gICAgfVxuICBgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjc3NGb3JUYWJsZXQgPSAoY3NzQXJnOiBDU1NSZXN1bHQpID0+IHtcbiAgcmV0dXJuIHVuc2FmZUNTUyhgXG4gICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0IChtYXgtd2lkdGg6ICR7dGFibGV0fXB4KSB7XG4gICAgICAke2Nzc0FyZy5jc3NUZXh0fVxuICAgIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHt0YWJsZXR9cHgpIHtcbiAgICAgICR7Y3NzQXJnLmNzc1RleHR9XG4gICAgfVxuICBgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjc3NGb3JQaGFibGV0ID0gKGNzc0FyZzogQ1NTUmVzdWx0KSA9PiB7XG4gIHJldHVybiB1bnNhZmVDU1MoYFxuICAgIEBjb250YWluZXIgd2NjVG9vbHNWaWV3cG9ydCAobWF4LXdpZHRoOiAke3BoYWJsZXR9cHgpIHtcbiAgICAgICR7Y3NzQXJnLmNzc1RleHR9XG4gICAgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke3BoYWJsZXR9cHgpIHtcbiAgICAgICR7Y3NzQXJnLmNzc1RleHR9XG4gICAgfVxuICBgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjc3NGb3JQaG9uZSA9IChjc3NBcmc6IENTU1Jlc3VsdCkgPT4ge1xuICByZXR1cm4gdW5zYWZlQ1NTKGBcbiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtwaG9uZX1weCkge1xuICAgICAgJHtjc3NBcmcuY3NzVGV4dH1cbiAgICB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICR7cGhvbmV9cHgpIHtcbiAgICAgICR7Y3NzQXJnLmNzc1RleHR9XG4gICAgfVxuICBgKTtcbn07XG4iLCAiaW1wb3J0IHR5cGUgeyBEb21Ub29scyB9IGZyb20gJy4vZG9tdG9vbHMuY2xhc3Nlcy5kb210b29scy5qcyc7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vZG9tdG9vbHMucGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBTY3JvbGxlciB7XG4gIHB1YmxpYyBkb210b29sc0luc3RhbmNlOiBEb21Ub29scztcblxuICAvLyBBcnJheSB0byBzdG9yZSBzY3JvbGwgY2FsbGJhY2sgZnVuY3Rpb25zLlxuICBwcml2YXRlIHNjcm9sbENhbGxiYWNrczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcblxuICAvLyBMZW5pcyBpbnN0YW5jZSAoaWYgYWN0aXZhdGVkKSBvciBudWxsLlxuICBwcml2YXRlIGxlbmlzSW5zdGFuY2U6IHBsdWdpbnMuTGVuaXMgfCBudWxsID0gbnVsbDtcblxuICAvLyBCb3VuZCBoYW5kbGVycyB0byBhbGxvdyByZW1vdmFsIGZyb20gZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIGhhbmRsZU5hdGl2ZVNjcm9sbCA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLmV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKTtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZUxlbmlzU2Nyb2xsID0gKGluZm86IGFueSk6IHZvaWQgPT4ge1xuICAgIHRoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKGRvbXRvb2xzSW5zdGFuY2VBcmc6IERvbVRvb2xzKSB7XG4gICAgdGhpcy5kb210b29sc0luc3RhbmNlID0gZG9tdG9vbHNJbnN0YW5jZUFyZztcbiAgICAvLyBBdHRhY2ggdGhlIG5hdGl2ZSBzY3JvbGwgbGlzdGVuZXIgYnkgZGVmYXVsdC5cbiAgICB0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCk7XG4gIH1cblxuICBwcml2YXRlIHN3ZWV0U2Nyb2xsZXIgPSBuZXcgcGx1Z2lucy5Td2VldFNjcm9sbCh7fSk7XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgdG8gYSBnaXZlbiBlbGVtZW50IHdpdGggb3B0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyB0b0VsZW1lbnQoXG4gICAgZWxlbWVudEFyZzogSFRNTEVsZW1lbnQsXG4gICAgb3B0aW9uc0FyZzogUGFyYW1ldGVyczx0eXBlb2YgdGhpcy5zd2VldFNjcm9sbGVyLnRvRWxlbWVudD5bMV1cbiAgKSB7XG4gICAgdGhpcy5zd2VldFNjcm9sbGVyLnRvRWxlbWVudChlbGVtZW50QXJnLCBvcHRpb25zQXJnKTtcbiAgICBhd2FpdCBwbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3Iob3B0aW9uc0FyZy5kdXJhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZWN0cyB3aGV0aGVyIG5hdGl2ZSBzbW9vdGggc2Nyb2xsaW5nIGlzIGVuYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGV0ZWN0TmF0aXZlU21vb3RoU2Nyb2xsKCkge1xuICAgIGNvbnN0IGRvbmUgPSBwbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcjxib29sZWFuPigpO1xuICAgIGNvbnN0IHNhbXBsZVNpemUgPSAxMDA7XG4gICAgY29uc3QgYWNjZXB0YWJsZURlbHRhRGlmZmVyZW5jZSA9IDM7XG4gICAgY29uc3QgbWluaW11bVNtb290aFJhdGlvID0gMC43NTtcblxuICAgIGNvbnN0IGV2ZW50RGVsdGFzOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgZnVuY3Rpb24gb25XaGVlbChldmVudDogV2hlZWxFdmVudCkge1xuICAgICAgZXZlbnREZWx0YXMucHVzaChldmVudC5kZWx0YVkpO1xuXG4gICAgICBpZiAoZXZlbnREZWx0YXMubGVuZ3RoID49IHNhbXBsZVNpemUpIHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3doZWVsJywgb25XaGVlbCk7XG4gICAgICAgIGFuYWx5emVFdmVudHMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhbmFseXplRXZlbnRzKCkge1xuICAgICAgY29uc3QgdG90YWxEaWZmcyA9IGV2ZW50RGVsdGFzLmxlbmd0aCAtIDE7XG4gICAgICBsZXQgc21hbGxEaWZmQ291bnQgPSAwO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRvdGFsRGlmZnM7IGkrKykge1xuICAgICAgICBjb25zdCBkaWZmID0gTWF0aC5hYnMoZXZlbnREZWx0YXNbaSArIDFdIC0gZXZlbnREZWx0YXNbaV0pO1xuICAgICAgICBpZiAoZGlmZiA8PSBhY2NlcHRhYmxlRGVsdGFEaWZmZXJlbmNlKSB7XG4gICAgICAgICAgc21hbGxEaWZmQ291bnQrKztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBzbW9vdGhSYXRpbyA9IHNtYWxsRGlmZkNvdW50IC8gdG90YWxEaWZmcztcbiAgICAgIGlmIChzbW9vdGhSYXRpbyA+PSBtaW5pbXVtU21vb3RoUmF0aW8pIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1Ntb290aCBzY3JvbGxpbmcgZGV0ZWN0ZWQuJyk7XG4gICAgICAgIGRvbmUucmVzb2x2ZSh0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdTbW9vdGggc2Nyb2xsaW5nIE5PVCBkZXRlY3RlZC4nKTtcbiAgICAgICAgZG9uZS5yZXNvbHZlKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBvbldoZWVsKTtcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgTGVuaXMgc2Nyb2xsaW5nLlxuICAgKiBJZiBvcHRpb25zQXJnLmRpc2FibGVPbk5hdGl2ZVNtb290aFNjcm9sbCBpcyB0cnVlIGFuZCBuYXRpdmUgc21vb3RoIHNjcm9sbGluZyBpcyBkZXRlY3RlZCxcbiAgICogTGVuaXMgd2lsbCBiZSBkZXN0cm95ZWQgaW1tZWRpYXRlbHkuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZW5hYmxlTGVuaXNTY3JvbGwob3B0aW9uc0FyZz86IHsgZGlzYWJsZU9uTmF0aXZlU21vb3RoU2Nyb2xsPzogYm9vbGVhbiB9KSB7XG4gICAgY29uc3QgbGVuaXMgPSBuZXcgcGx1Z2lucy5MZW5pcyh7XG4gICAgICBhdXRvUmFmOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnNBcmc/LmRpc2FibGVPbk5hdGl2ZVNtb290aFNjcm9sbCkge1xuICAgICAgaWYgKGF3YWl0IHRoaXMuZGV0ZWN0TmF0aXZlU21vb3RoU2Nyb2xsKCkpIHtcbiAgICAgICAgbGVuaXMuZGVzdHJveSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWN0aXZhdGUgTGVuaXMgc2Nyb2xsaW5nLlxuICAgIHRoaXMubGVuaXNJbnN0YW5jZSA9IGxlbmlzO1xuICAgIC8vIFN3aXRjaCBmcm9tIG5hdGl2ZSBzY3JvbGwgbGlzdGVuZXIgdG8gTGVuaXMgc2Nyb2xsIGxpc3RlbmVyLlxuICAgIHRoaXMuZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKTtcbiAgICB0aGlzLmF0dGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKTtcblxuICAgIC8vIE1vbmtleS1wYXRjaCB0aGUgZGVzdHJveSBtZXRob2Qgc28gdGhhdCB3aGVuIExlbmlzIGlzIGRlc3Ryb3llZCxcbiAgICAvLyB0aGUgbmF0aXZlIHNjcm9sbCBsaXN0ZW5lciBpcyByZWF0dGFjaGVkLlxuICAgIGNvbnN0IG9yaWdpbmFsRGVzdHJveSA9IGxlbmlzLmRlc3Ryb3kuYmluZChsZW5pcyk7XG4gICAgbGVuaXMuZGVzdHJveSA9ICgpID0+IHtcbiAgICAgIG9yaWdpbmFsRGVzdHJveSgpO1xuICAgICAgdGhpcy5kZXRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCk7XG4gICAgICB0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCk7XG4gICAgICB0aGlzLmxlbmlzSW5zdGFuY2UgPSBudWxsO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgdG8gYmUgZXhlY3V0ZWQgb24gc2Nyb2xsLlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgQSBmdW5jdGlvbiB0byBleGVjdXRlIG9uIGVhY2ggc2Nyb2xsIGV2ZW50LlxuICAgKi9cbiAgcHVibGljIG9uU2Nyb2xsKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxDYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgYWxsIHJlZ2lzdGVyZWQgc2Nyb2xsIGNhbGxiYWNrcyBjb25jdXJyZW50bHkuXG4gICAqL1xuICBwcml2YXRlIGV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKTogdm9pZCB7XG4gICAgLy8gRXhlY3V0ZSBhbGwgY2FsbGJhY2tzIGluIHBhcmFsbGVsLlxuICAgIHRoaXMuc2Nyb2xsQ2FsbGJhY2tzLmZvckVhY2goKGNhbGxiYWNrKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gc2Nyb2xsIGNhbGxiYWNrOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyB0aGUgbmF0aXZlIHNjcm9sbCBldmVudCBsaXN0ZW5lci5cbiAgICovXG4gIHByaXZhdGUgYXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlTmF0aXZlU2Nyb2xsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRhY2hlcyB0aGUgbmF0aXZlIHNjcm9sbCBldmVudCBsaXN0ZW5lci5cbiAgICovXG4gIHByaXZhdGUgZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlTmF0aXZlU2Nyb2xsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyB0aGUgTGVuaXMgc2Nyb2xsIGV2ZW50IGxpc3RlbmVyLlxuICAgKi9cbiAgcHJpdmF0ZSBhdHRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxlbmlzSW5zdGFuY2UpIHtcbiAgICAgIC8vIEFzc3VtaW5nIHRoYXQgTGVuaXMgZXhwb3NlcyBhbiBgb25gIG1ldGhvZCB0byBsaXN0ZW4gdG8gc2Nyb2xsIGV2ZW50cy5cbiAgICAgIHRoaXMubGVuaXNJbnN0YW5jZS5vbignc2Nyb2xsJywgdGhpcy5oYW5kbGVMZW5pc1Njcm9sbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldGFjaGVzIHRoZSBMZW5pcyBzY3JvbGwgZXZlbnQgbGlzdGVuZXIuXG4gICAqL1xuICBwcml2YXRlIGRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGVuaXNJbnN0YW5jZSkge1xuICAgICAgLy8gQXNzdW1pbmcgdGhhdCBMZW5pcyBleHBvc2VzIGFuIGBvZmZgIG1ldGhvZCB0byByZW1vdmUgc2Nyb2xsIGV2ZW50IGxpc3RlbmVycy5cbiAgICAgIHRoaXMubGVuaXNJbnN0YW5jZS5vZmYoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlTGVuaXNTY3JvbGwpO1xuICAgIH1cbiAgfVxufSIsICJpbXBvcnQgeyBEb21Ub29scyB9IGZyb20gJy4vZG9tdG9vbHMuY2xhc3Nlcy5kb210b29scy5qcyc7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vZG9tdG9vbHMucGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBUaGVtZU1hbmFnZXIge1xuICBwdWJsaWMgZG9tdG9vbHNSZWY6IERvbVRvb2xzO1xuXG4gIHB1YmxpYyBnb0JyaWdodEJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaCA9IHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KScpO1xuXG4gIHB1YmxpYyB0aGVtZU9ic2VydmFibGUgPSBuZXcgcGx1Z2lucy5zbWFydHJ4LnJ4anMuUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcblxuICBjb25zdHJ1Y3Rvcihkb210b29sc1JlZkFyZzogRG9tVG9vbHMpIHtcbiAgICB0aGlzLmRvbXRvb2xzUmVmID0gZG9tdG9vbHNSZWZBcmc7XG5cbiAgICAvLyBsZXRzIGNhcmVcbiAgICB0aGlzLmdvQnJpZ2h0Qm9vbGVhbiA9IHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLm1hdGNoZXM7XG4gICAgdGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2guYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50QXJnKSA9PiB7XG4gICAgICB0aGlzLmdvQnJpZ2h0Qm9vbGVhbiA9IGV2ZW50QXJnLm1hdGNoZXM7XG4gICAgICB0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCk7XG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGVuYWJsZUF1dG9tYXRpY0dsb2JhbFRoZW1lQ2hhbmdlKCkge1xuICAgIGlmIChkb2N1bWVudC5ib2R5ICYmIGRvY3VtZW50LmJvZHkuc3R5bGUpIHtcbiAgICAgIHRoaXMudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChnb0JyaWdodCkgPT4ge1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZCA9IGdvQnJpZ2h0ID8gJyNmZmYnIDogJyMwMDAnO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCkge1xuICAgIHRoaXMudGhlbWVPYnNlcnZhYmxlLm5leHQodGhpcy5nb0JyaWdodEJvb2xlYW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIHNldCB0aGUgdGhlbWUgb2YgdGhlIHdlYnNpdGUgdG8gYnJpZ2h0XG4gICAqL1xuICBwdWJsaWMgZ29CcmlnaHQoKSB7XG4gICAgdGhpcy5nb0JyaWdodEJvb2xlYW4gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzZXQgdGhlIHRoZW1lIG9mIHRoZSB3ZWJzaXRlIHRvIGRhcmtcbiAgICovXG4gIHB1YmxpYyBnb0RhcmsoKSB7XG4gICAgdGhpcy5nb0JyaWdodEJvb2xlYW4gPSBmYWxzZTtcbiAgICB0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogc2ltcGx5IHRvZ2dsZSBiZXR3ZWVuIGJyaWdodCBhbmQgZGFya1xuICAgKi9cbiAgcHVibGljIHRvZ2dsZURhcmtCcmlnaHQoKSB7XG4gICAgdGhpcy5nb0JyaWdodEJvb2xlYW4gPSAhdGhpcy5nb0JyaWdodEJvb2xlYW47XG4gICAgdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpO1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuL2RvbXRvb2xzLnBsdWdpbnMuanMnO1xuXG5leHBvcnQgZW51bSBLZXkge1xuICBCYWNrc3BhY2UgPSA4LFxuICBUYWIgPSA5LFxuICBFbnRlciA9IDEzLFxuICBTaGlmdCA9IDE2LFxuICBDdHJsID0gMTcsXG4gIEFsdCA9IDE4LFxuICBQYXVzZUJyZWFrID0gMTksXG4gIENhcHNMb2NrID0gMjAsXG4gIEVzY2FwZSA9IDI3LFxuICBTcGFjZSA9IDMyLFxuICBQYWdlVXAgPSAzMyxcbiAgUGFnZURvd24gPSAzNCxcbiAgRW5kID0gMzUsXG4gIEhvbWUgPSAzNixcblxuICBMZWZ0QXJyb3cgPSAzNyxcbiAgVXBBcnJvdyA9IDM4LFxuICBSaWdodEFycm93ID0gMzksXG4gIERvd25BcnJvdyA9IDQwLFxuXG4gIEluc2VydCA9IDQ1LFxuICBEZWxldGUgPSA0NixcblxuICBaZXJvID0gNDgsXG4gIENsb3NlZFBhcmVuID0gWmVybyxcbiAgT25lID0gNDksXG4gIEV4Y2xhbWF0aW9uTWFyayA9IE9uZSxcbiAgVHdvID0gNTAsXG4gIEF0U2lnbiA9IFR3byxcbiAgVGhyZWUgPSA1MSxcbiAgUG91bmRTaWduID0gVGhyZWUsXG4gIEhhc2ggPSBQb3VuZFNpZ24sXG4gIEZvdXIgPSA1MixcbiAgRG9sbGFyU2lnbiA9IEZvdXIsXG4gIEZpdmUgPSA1MyxcbiAgUGVyY2VudFNpZ24gPSBGaXZlLFxuICBTaXggPSA1NCxcbiAgQ2FyZXQgPSBTaXgsXG4gIEhhdCA9IENhcmV0LFxuICBTZXZlbiA9IDU1LFxuICBBbXBlcnNhbmQgPSBTZXZlbixcbiAgRWlnaHQgPSA1NixcbiAgU3RhciA9IEVpZ2h0LFxuICBBc3RlcmlrID0gU3RhcixcbiAgTmluZSA9IDU3LFxuICBPcGVuUGFyZW4gPSBOaW5lLFxuXG4gIEEgPSA2NSxcbiAgQiA9IDY2LFxuICBDID0gNjcsXG4gIEQgPSA2OCxcbiAgRSA9IDY5LFxuICBGID0gNzAsXG4gIEcgPSA3MSxcbiAgSCA9IDcyLFxuICBJID0gNzMsXG4gIEogPSA3NCxcbiAgSyA9IDc1LFxuICBMID0gNzYsXG4gIE0gPSA3NyxcbiAgTiA9IDc4LFxuICBPID0gNzksXG4gIFAgPSA4MCxcbiAgUSA9IDgxLFxuICBSID0gODIsXG4gIFMgPSA4MyxcbiAgVCA9IDg0LFxuICBVID0gODUsXG4gIFYgPSA4NixcbiAgVyA9IDg3LFxuICBYID0gODgsXG4gIFkgPSA4OSxcbiAgWiA9IDkwLFxuXG4gIExlZnRXaW5kb3dLZXkgPSA5MSxcbiAgUmlnaHRXaW5kb3dLZXkgPSA5MixcbiAgU2VsZWN0S2V5ID0gOTMsXG5cbiAgTnVtcGFkMCA9IDk2LFxuICBOdW1wYWQxID0gOTcsXG4gIE51bXBhZDIgPSA5OCxcbiAgTnVtcGFkMyA9IDk5LFxuICBOdW1wYWQ0ID0gMTAwLFxuICBOdW1wYWQ1ID0gMTAxLFxuICBOdW1wYWQ2ID0gMTAyLFxuICBOdW1wYWQ3ID0gMTAzLFxuICBOdW1wYWQ4ID0gMTA0LFxuICBOdW1wYWQ5ID0gMTA1LFxuXG4gIE11bHRpcGx5ID0gMTA2LFxuICBBZGQgPSAxMDcsXG4gIFN1YnRyYWN0ID0gMTA5LFxuICBEZWNpbWFsUG9pbnQgPSAxMTAsXG4gIERpdmlkZSA9IDExMSxcblxuICBGMSA9IDExMixcbiAgRjIgPSAxMTMsXG4gIEYzID0gMTE0LFxuICBGNCA9IDExNSxcbiAgRjUgPSAxMTYsXG4gIEY2ID0gMTE3LFxuICBGNyA9IDExOCxcbiAgRjggPSAxMTksXG4gIEY5ID0gMTIwLFxuICBGMTAgPSAxMjEsXG4gIEYxMSA9IDEyMixcbiAgRjEyID0gMTIzLFxuXG4gIE51bUxvY2sgPSAxNDQsXG4gIFNjcm9sbExvY2sgPSAxNDUsXG5cbiAgU2VtaUNvbG9uID0gMTg2LFxuICBFcXVhbHMgPSAxODcsXG4gIENvbW1hID0gMTg4LFxuICBEYXNoID0gMTg5LFxuICBQZXJpb2QgPSAxOTAsXG4gIFVuZGVyU2NvcmUgPSBEYXNoLFxuICBQbHVzU2lnbiA9IEVxdWFscyxcbiAgRm9yd2FyZFNsYXNoID0gMTkxLFxuICBUaWxkZSA9IDE5MixcbiAgR3JhdmVBY2NlbnQgPSBUaWxkZSxcblxuICBPcGVuQnJhY2tldCA9IDIxOSxcbiAgQ2xvc2VkQnJhY2tldCA9IDIyMSxcbiAgUXVvdGUgPSAyMjIsXG59XG5cbmV4cG9ydCBjbGFzcyBLZXlib2FyZCB7XG4gIHByaXZhdGUgbWFwQ29tYm9zVG9IYW5kbGVycyA9IG5ldyBNYXA8bnVtYmVyW10sIHBsdWdpbnMuc21hcnRyeC5yeGpzLlN1YmplY3Q8S2V5Ym9hcmRFdmVudD4+KCk7XG4gIHByaXZhdGUgcHJlc3NlZEtleXMgPSBuZXcgU2V0PEtleT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRvbU5vZGU6IEVsZW1lbnQgfCBEb2N1bWVudCkge1xuICAgIHRoaXMuc3RhcnRMaXN0ZW5pbmcoKTtcbiAgfVxuXG4gIHB1YmxpYyBrZXlFbnVtID0gS2V5O1xuXG4gIHB1YmxpYyBvbihrZXlzOiBLZXlbXSkge1xuICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgcGx1Z2lucy5zbWFydHJ4LnJ4anMuU3ViamVjdDxLZXlib2FyZEV2ZW50PigpO1xuICAgIHRoaXMucmVnaXN0ZXJLZXlzKGtleXMsIHN1YmplY3QpO1xuICAgIHJldHVybiBzdWJqZWN0O1xuICB9XG5cbiAgcHVibGljIHRyaWdnZXJLZXlQcmVzcyhrZXlzQXJnOiBLZXlbXSkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXNBcmcpIHtcbiAgICAgIHRoaXMucHJlc3NlZEtleXMuYWRkKGtleSk7XG4gICAgfVxuICAgIHRoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHMoKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzQXJnKSB7XG4gICAgICB0aGlzLnByZXNzZWRLZXlzLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGFydExpc3RlbmluZygpIHtcbiAgICB0aGlzLmRvbU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuaGFuZGxlS2V5RG93bik7XG4gICAgdGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5oYW5kbGVLZXlVcCk7XG4gIH1cblxuICBwdWJsaWMgc3RvcExpc3RlbmluZygpIHtcbiAgICB0aGlzLmRvbU5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuaGFuZGxlS2V5RG93bik7XG4gICAgdGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5oYW5kbGVLZXlVcCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy5zdG9wTGlzdGVuaW5nKCk7XG4gICAgdGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLmNsZWFyKCk7XG4gICAgdGhpcy5wcmVzc2VkS2V5cy5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVLZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgdGhpcy5wcmVzc2VkS2V5cy5hZGQoZXZlbnQua2V5Q29kZSk7XG4gICAgdGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cyhldmVudCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBjaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cyhwYXlsb2FkQXJnPykge1xuICAgIHRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5mb3JFYWNoKChzdWJqZWN0QXJnLCBrZXlzQXJnKSA9PiB7XG4gICAgICBpZiAodGhpcy5hcmVBbGxLZXlzUHJlc3NlZChrZXlzQXJnKSkge1xuICAgICAgICBzdWJqZWN0QXJnLm5leHQocGF5bG9hZEFyZyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUtleVVwID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgdGhpcy5wcmVzc2VkS2V5cy5kZWxldGUoZXZlbnQua2V5Q29kZSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBhcmVBbGxLZXlzUHJlc3NlZChrZXlzQXJnOiBLZXlbXSkge1xuICAgIGxldCByZXN1bHQgPSB0cnVlO1xuXG4gICAga2V5c0FyZy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghdGhpcy5wcmVzc2VkS2V5cy5oYXMoa2V5KSkge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyS2V5cyhcbiAgICBrZXlzQXJnOiBBcnJheTxLZXk+LFxuICAgIHN1YmplY3RBcmc6IHBsdWdpbnMuc21hcnRyeC5yeGpzLlN1YmplY3Q8S2V5Ym9hcmRFdmVudD5cbiAgKSB7XG4gICAgaWYgKCF0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuaGFzKGtleXNBcmcpKSB7XG4gICAgICB0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuc2V0KGtleXNBcmcsIHN1YmplY3RBcmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gdGhpcy5tYXBDb21ib3NUb0hhbmRsZXJzLmdldChrZXlzQXJnKTtcbiAgICAgIHJldHVybiBzdWJqZWN0O1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9kb210b29scy5wbHVnaW5zLmpzJztcbmltcG9ydCB7IHR5cGUgVFZpZXdwb3J0IH0gZnJvbSAnLi9kb210b29scy5jc3MuYnJlYWtwb2ludHMuanMnO1xuaW1wb3J0IHsgU2Nyb2xsZXIgfSBmcm9tICcuL2RvbXRvb2xzLmNsYXNzZXMuc2Nyb2xsZXIuanMnO1xuaW1wb3J0IHsgV2ViU2V0dXAgfSBmcm9tICdAcHVzaC5yb2Nrcy93ZWJzZXR1cCc7XG5pbXBvcnQgeyBUaGVtZU1hbmFnZXIgfSBmcm9tICcuL2RvbXRvb2xzLmNsYXNzZXMudGhlbWVtYW5hZ2VyLmpzJztcbmltcG9ydCB7IEtleWJvYXJkIH0gZnJvbSAnLi9kb210b29scy5jbGFzc2VzLmtleWJvYXJkLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJRG9tVG9vbHNTdGF0ZSB7XG4gIHZpcnR1YWxWaWV3cG9ydDogVFZpZXdwb3J0O1xuICBqd3Q6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRG9tVG9vbHNDb250cnVjdG9yT3B0aW9ucyB7XG4gIGlnbm9yZUdsb2JhbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBEb21Ub29scyB7XG4gIC8vID09PT09PVxuICAvLyBTVEFUSUNcbiAgLy8gPT09PT09XG4gIHByaXZhdGUgc3RhdGljIGluaXRpYWxpemF0aW9uUHJvbWlzZTogUHJvbWlzZTxEb21Ub29scz4gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogc2V0dXBzIGRvbXRvb2xzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIHNldHVwRG9tVG9vbHMob3B0aW9uc0FyZzogSURvbVRvb2xzQ29udHJ1Y3Rvck9wdGlvbnMgPSB7fSk6IFByb21pc2U8RG9tVG9vbHM+IHtcbiAgICAvLyBJZiBpbml0aWFsaXphdGlvbiBpcyBhbHJlYWR5IGluIHByb2dyZXNzIGFuZCB3ZSdyZSBub3QgaWdub3JpbmcgZ2xvYmFsLCB3YWl0IGZvciBpdFxuICAgIGlmICghb3B0aW9uc0FyZy5pZ25vcmVHbG9iYWwgJiYgRG9tVG9vbHMuaW5pdGlhbGl6YXRpb25Qcm9taXNlKSB7XG4gICAgICByZXR1cm4gYXdhaXQgRG9tVG9vbHMuaW5pdGlhbGl6YXRpb25Qcm9taXNlO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBpbml0aWFsaXphdGlvbiBwcm9taXNlIHRvIHByZXZlbnQgcmFjZSBjb25kaXRpb25zXG4gICAgaWYgKCFvcHRpb25zQXJnLmlnbm9yZUdsb2JhbCkge1xuICAgICAgRG9tVG9vbHMuaW5pdGlhbGl6YXRpb25Qcm9taXNlID0gKGFzeW5jICgpID0+IHtcbiAgICAgICAgbGV0IGRvbVRvb2xzSW5zdGFuY2U6IERvbVRvb2xzO1xuICAgICAgICBpZiAoIWdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzKSB7XG4gICAgICAgICAgZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMgPSBuZXcgRG9tVG9vbHMob3B0aW9uc0FyZyk7XG4gICAgICAgICAgZG9tVG9vbHNJbnN0YW5jZSA9IGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO1xuXG4gICAgICAgICAgLy8gbGV0cyBtYWtlIHN1cmUgdGhlIGRvbSBpcyByZWFkeVxuICAgICAgICAgIGNvbnN0IHJlYWR5U3RhdGVDaGFuZ2VkRnVuYyA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnaW50ZXJhY3RpdmUnIHx8IGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgICAgICAgICAgZG9tVG9vbHNJbnN0YW5jZS5lbGVtZW50cy5oZWFkRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKTtcbiAgICAgICAgICAgICAgZG9tVG9vbHNJbnN0YW5jZS5lbGVtZW50cy5ib2R5RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKTtcbiAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSBrZXlib2FyZCBub3cgdGhhdCBkb2N1bWVudC5ib2R5IGV4aXN0c1xuICAgICAgICAgICAgICBkb21Ub29sc0luc3RhbmNlLmtleWJvYXJkID0gbmV3IEtleWJvYXJkKGRvY3VtZW50LmJvZHkpO1xuICAgICAgICAgICAgICBkb21Ub29sc0luc3RhbmNlLmRvbVJlYWR5LnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIC8vIENoZWNrIGN1cnJlbnQgc3RhdGUgaW1tZWRpYXRlbHkgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25cbiAgICAgICAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2ludGVyYWN0aXZlJyB8fCBkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICAgICAgICByZWFkeVN0YXRlQ2hhbmdlZEZ1bmMoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVhZHlzdGF0ZWNoYW5nZScsIHJlYWR5U3RhdGVDaGFuZ2VkRnVuYyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRvbVRvb2xzSW5zdGFuY2UuZG9tVG9vbHNSZWFkeS5yZXNvbHZlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9tVG9vbHNJbnN0YW5jZSA9IGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGRvbVRvb2xzSW5zdGFuY2UuZG9tVG9vbHNSZWFkeS5wcm9taXNlO1xuICAgICAgICByZXR1cm4gZG9tVG9vbHNJbnN0YW5jZTtcbiAgICAgIH0pKCk7XG4gICAgICByZXR1cm4gYXdhaXQgRG9tVG9vbHMuaW5pdGlhbGl6YXRpb25Qcm9taXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpZ25vcmVHbG9iYWwgY2FzZSAtIGNyZWF0ZSBpc29sYXRlZCBpbnN0YW5jZVxuICAgICAgY29uc3QgZG9tVG9vbHNJbnN0YW5jZSA9IG5ldyBEb21Ub29scyhvcHRpb25zQXJnKTtcbiAgICAgIHJldHVybiBkb21Ub29sc0luc3RhbmNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBpZiB5b3UgY2FuLCB1c2UgdGhlIHN0YXRpYyBhc3lzbmMgLnNldHVwRG9tVG9vbHMoKSBmdW5jdGlvbiBpbnN0ZWFkIHNpbmNlIGl0IGlzIHNhZmVyIHRvIHVzZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCk6IERvbVRvb2xzIHtcbiAgICBjb25zdCBnbG9iYWxEb21Ub29sczogRG9tVG9vbHMgPSBnbG9iYWxUaGlzLmRlZXNEb21Ub29scztcbiAgICBpZiAoIWdsb2JhbERvbVRvb2xzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSB0cmllZCB0byBhY2Nlc3MgZG9tdG9vbHMgc3luY2hyb25vdXNseSB0b28gZWFybHknKTtcbiAgICB9XG4gICAgcmV0dXJuIGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO1xuICB9XG5cbiAgLy8gPT09PT09PT1cbiAgLy8gSU5TVEFOQ0VcbiAgLy8gPT09PT09PT1cbiAgLy8gZWxlbWVudHNcbiAgcHVibGljIGVsZW1lbnRzOiB7XG4gICAgaGVhZEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIGJvZHlFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgfSA9IHtcbiAgICBoZWFkRWxlbWVudDogbnVsbCxcbiAgICBib2R5RWxlbWVudDogbnVsbCxcbiAgfTtcblxuICBwdWJsaWMgd2Vic2V0dXA6IFdlYlNldHVwID0gbmV3IFdlYlNldHVwKHtcbiAgICBtZXRhT2JqZWN0OiB7XG4gICAgICB0aXRsZTogJ2xvYWRpbmcuLi4nLFxuICAgIH0sXG4gIH0pO1xuXG4gIHB1YmxpYyBzbWFydHN0YXRlID0gbmV3IHBsdWdpbnMuc21hcnRzdGF0ZS5TbWFydHN0YXRlKCk7XG4gIHB1YmxpYyBkb21Ub29sc1N0YXRlUGFydCA9IHRoaXMuc21hcnRzdGF0ZS5nZXRTdGF0ZVBhcnQ8SURvbVRvb2xzU3RhdGU+KCdkb210b29scycsIHtcbiAgICB2aXJ0dWFsVmlld3BvcnQ6ICduYXRpdmUnLFxuICAgIGp3dDogbnVsbCxcbiAgfSk7XG5cbiAgcHVibGljIHJvdXRlciA9IG5ldyBwbHVnaW5zLnNtYXJ0cm91dGVyLlNtYXJ0Um91dGVyKHtcbiAgICBkZWJ1ZzogZmFsc2UsXG4gIH0pO1xuXG4gIHB1YmxpYyBjb252ZW5pZW5jZSA9IHtcbiAgICB0eXBlZHJlcXVlc3Q6IHBsdWdpbnMudHlwZWRyZXF1ZXN0LFxuICAgIHNtYXJ0ZGVsYXk6IHBsdWdpbnMuc21hcnRkZWxheSxcbiAgICBzbWFydGpzb246IHBsdWdpbnMuc21hcnRqc29uLFxuICAgIHNtYXJ0dXJsOiBwbHVnaW5zLnNtYXJ0dXJsLFxuICB9O1xuXG4gIHB1YmxpYyBkZWVzQ29tbXMgPSBuZXcgcGx1Z2lucy5kZWVzQ29tbXMuRGVlc0NvbW1zKCk7XG4gIHB1YmxpYyBzY3JvbGxlciA9IG5ldyBTY3JvbGxlcih0aGlzKTtcbiAgcHVibGljIHRoZW1lTWFuYWdlciA9IG5ldyBUaGVtZU1hbmFnZXIodGhpcyk7XG4gIHB1YmxpYyBrZXlib2FyZDogS2V5Ym9hcmQgPSBudWxsOyAvLyBJbml0aWFsaXplZCBhZnRlciBET00gcmVhZHkgdG8gYXZvaWQgYWNjZXNzaW5nIGRvY3VtZW50LmJvZHkgYmVmb3JlIGl0IGV4aXN0c1xuXG4gIHB1YmxpYyBkb21Ub29sc1JlYWR5ID0gcGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtcbiAgcHVibGljIGRvbVJlYWR5ID0gcGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtcbiAgcHVibGljIGdsb2JhbFN0eWxlc1JlYWR5ID0gcGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zQXJnOiBJRG9tVG9vbHNDb250cnVjdG9yT3B0aW9ucykge31cblxuICBwcml2YXRlIHJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwID0gbmV3IHBsdWdpbnMubGlrLlN0cmluZ21hcCgpO1xuICBwcml2YXRlIHJ1bk9uY2VSZXN1bHRNYXAgPSBuZXcgcGx1Z2lucy5saWsuRmFzdE1hcCgpO1xuICBwcml2YXRlIHJ1bk9uY2VFcnJvck1hcCA9IG5ldyBwbHVnaW5zLmxpay5GYXN0TWFwKCk7XG5cbiAgLyoqXG4gICAqIHJ1biBhIGZ1bmN0aW9uIG9uY2UgYW5kIGFsd2F5cyBnZXQgdGhlIFByb21pc2Ugb2YgdGhlIGZpcnN0IGV4ZWN1dGlvblxuICAgKiBAcGFyYW0gaWRlbnRpZmllckFyZyB0aGUgaW5kZW50aWZpZXIgYXJnIGlkZW50aWZpZXMgZnVuY3Rpb25zLiBmdW5jdGlvbnMgd2l0aCB0aGUgc2FtZSBpZGVudGlmaWVyIGFyZSBjb25zaWRlcmVkIGVxdWFsXG4gICAqIEBwYXJhbSBmdW5jQXJnIHRoZSBhY3R1YWwgZnVuYyBhcmcgdG8gcnVuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcnVuT25jZTxUPihpZGVudGlmaWVyQXJnOiBzdHJpbmcsIGZ1bmNBcmc6ICgpID0+IFByb21pc2U8VD4pIHtcbiAgICBjb25zdCBydW5uaW5nSWQgPSBgJHtpZGVudGlmaWVyQXJnfStydW5uaW5nQ2hlY2tgO1xuICAgIGlmICghdGhpcy5ydW5PbmNlVHJhY2tlclN0cmluZ01hcC5jaGVja1N0cmluZyhpZGVudGlmaWVyQXJnKSkge1xuICAgICAgdGhpcy5ydW5PbmNlVHJhY2tlclN0cmluZ01hcC5hZGRTdHJpbmcoaWRlbnRpZmllckFyZyk7XG4gICAgICB0aGlzLnJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwLmFkZFN0cmluZyhydW5uaW5nSWQpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZnVuY0FyZygpO1xuICAgICAgICB0aGlzLnJ1bk9uY2VSZXN1bHRNYXAuYWRkVG9NYXAoaWRlbnRpZmllckFyZywgcmVzdWx0KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIFN0b3JlIGVycm9yIHNvIHdhaXRpbmcgY2FsbGVycyBjYW4gcmVjZWl2ZSBpdFxuICAgICAgICB0aGlzLnJ1bk9uY2VFcnJvck1hcC5hZGRUb01hcChpZGVudGlmaWVyQXJnLCBlcnJvcik7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICAvLyBBbHdheXMgcmVtb3ZlIHJ1bm5pbmcgZmxhZyB0byBwcmV2ZW50IHBlcm1hbmVudCBzdHVjayBzdGF0ZVxuICAgICAgICB0aGlzLnJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwLnJlbW92ZVN0cmluZyhydW5uaW5nSWQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ydW5PbmNlVHJhY2tlclN0cmluZ01hcC5yZWdpc3RlclVudGlsVHJ1ZShcbiAgICAgIChzdHJpbmdNYXApID0+IHtcbiAgICAgICAgcmV0dXJuICFzdHJpbmdNYXAuaW5jbHVkZXMocnVubmluZ0lkKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZXJlIHdhcyBhbiBlcnJvciBhbmQgcmUtdGhyb3cgaXRcbiAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLnJ1bk9uY2VFcnJvck1hcC5nZXRCeUtleShpZGVudGlmaWVyQXJnKTtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucnVuT25jZVJlc3VsdE1hcC5nZXRCeUtleShpZGVudGlmaWVyQXJnKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLy8gc2V0U3R1ZmZcbiAgLyoqXG4gICAqIGFsbG93cyB0byBzZXQgZ2xvYmFsIHN0eWxlc1xuICAgKiBAcGFyYW0gc3R5bGVzVGV4dCB0aGUgY3NzIHRleHQgeW91IHdhbnQgdG8gc2V0XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0R2xvYmFsU3R5bGVzKHN0eWxlc1RleHQ6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtcbiAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIHN0eWxlRWxlbWVudC50eXBlID0gJ3RleHQvY3NzJztcbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3R5bGVzVGV4dCkpO1xuICAgIHRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhbGxvd3MgdG8gc2V0IGdsb2JhbCBzdHlsZXNcbiAgICogQHBhcmFtIHN0eWxlc1RleHQgdGhlIGNzcyB0ZXh0IHlvdSB3YW50IHRvIHNldFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldEV4dGVybmFsU2NyaXB0KHNjcmlwdExpbmtBcmc6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtcbiAgICBjb25zdCBkb25lID0gcGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtcbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBzY3JpcHQuc3JjID0gc2NyaXB0TGlua0FyZztcbiAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHBhcmVudE5vZGUgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmJvZHk7XG4gICAgcGFyZW50Tm9kZS5hcHBlbmQoc2NyaXB0KTtcbiAgICBhd2FpdCBkb25lLnByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogYWxsb3dzIHNldHRpbmcgZXh0ZXJuYWwgY3NzIGZpbGVzXG4gICAqIEBwYXJhbSBjc3NMaW5rQXJnIGEgdXJsIHRvIGFuIGV4dGVybmFsIHN0eWxlc2hlZXRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXRFeHRlcm5hbENzcyhjc3NMaW5rQXJnOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjc3NUYWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgY3NzVGFnLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICBjc3NUYWcuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcbiAgICBjc3NUYWcuaHJlZiA9IGNzc0xpbmtBcmc7XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmQoY3NzVGFnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhbGxvd3Mgc2V0dGluZyBvZiB3ZWJzaXRlIGluZm9zXG4gICAqIEBwYXJhbSBvcHRpb25zQXJnIHRoZSB3ZWJzaXRlIGluZm9cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXRXZWJzaXRlSW5mbyhvcHRpb25zQXJnOiBwbHVnaW5zLndlYnNldHVwLklXZWJTZXR1cENvbnN0cnVjdG9yT3B0aW9ucykge1xuICAgIGF3YWl0IHRoaXMud2Vic2V0dXAuc2V0dXAob3B0aW9uc0FyZyk7XG4gICAgYXdhaXQgdGhpcy53ZWJzZXR1cC5yZWFkeVByb21pc2U7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBEb21Ub29scyB9IGZyb20gJy4vZG9tdG9vbHMuY2xhc3Nlcy5kb210b29scy5qcyc7XG5cbmltcG9ydCB7IGNzcywgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBjaGFuZ2VzIHNjcm9sbGJhciBzdHlsZXMgdG8gYmUgY29uc2lzdGVudCBhY3Jvc3MgT1MgYm9yZGVyc1xuICovXG5leHBvcnQgY29uc3Qgc2Nyb2xsQmFyU3R5bGVzOiBzdHJpbmcgPSAoKCkgPT4ge1xuICBjb25zdCByZXR1cm5TdHlsZXNPbGQgPSBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ01hYyBPUyBYJykgPT09IC0xID8gY3NzYGAuY3NzVGV4dCA6IGBgO1xuICBjb25zdCByZXR1cm5TdHlsZXMgPSBjc3NgXG4gICAgLyogd2lkdGggKi9cbiAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgIHdpZHRoOiAwcHg7XG4gICAgfVxuICAgIGJvZHkge1xuICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAgIH1cbiAgYC5jc3NUZXh0O1xuICByZXR1cm4gcmV0dXJuU3R5bGVzO1xufSkoKTtcblxuZXhwb3J0IGNvbnN0IGdsb2JhbEJhc2VTdHlsZXM6IHN0cmluZyA9IGNzc2BcbiAgLypcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21hdGVyaWFsaWNvbnMvdjQyL2ZsVWhScTZ0elpjbFFFSi1WZGctSXVpYURzTmNJaFE4dFEud29mZjIpXG4gICAgICBmb3JtYXQoJ3dvZmYyJyk7XG4gIH0gKi9cblxuICAvKiBnbG9iYWwgYm9keSBzdHlsZXMgKi9cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgc2Fucy1zZXJpZjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLyogc2Nyb2xsIGJhciBzdHlsZXMgKi9cbiAgJHt1bnNhZmVDU1Moc2Nyb2xsQmFyU3R5bGVzKX1cbmAuY3NzVGV4dDtcbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vZG9tdG9vbHMucGx1Z2lucy5qcyc7XG5pbXBvcnQgeyBEb21Ub29scywgdHlwZSBJRG9tVG9vbHNDb250cnVjdG9yT3B0aW9ucyB9IGZyb20gJy4vZG9tdG9vbHMuY2xhc3Nlcy5kb210b29scy5qcyc7XG5pbXBvcnQgeyBzY3JvbGxCYXJTdHlsZXMsIGdsb2JhbEJhc2VTdHlsZXMgfSBmcm9tICcuL2RvbXRvb2xzLmNzcy5iYXNlc3R5bGVzLmpzJztcblxuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgY3NzLCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5leHBvcnQgY29uc3Qgc3RhdGljU3R5bGVzID0gY3NzYFxuICAqIHtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIDpob3N0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7XG4gIH1cblxuICAke3Vuc2FmZUNTUyhzY3JvbGxCYXJTdHlsZXMpfVxuYDtcblxuLyoqXG4gKiBzdHlsZXMgdG8gYmUgaW5jbHVkZWQgaW4gZXZlcnkgd2ViY29tcG9uZW50XG4gKi9cbmV4cG9ydCBjb25zdCBzdHlsZXMgPSBodG1sYFxuICA8c3R5bGU+XG4gICAgKiB7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIDpob3N0IHtcbiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7XG4gICAgfVxuXG4gICAgJHtzY3JvbGxCYXJTdHlsZXN9XG4gIDwvc3R5bGU+XG5gO1xuXG4vKipcbiAqIGEgYmFzaWMgc2V0dXAgZm9yIGVsZW1lbnRzXG4gKiBtYWtlcyBzdXJlIGV2ZXJ5dGhpbmcgaXMgaW4gY2hlY2tcbiAqL1xuZXhwb3J0IGNvbnN0IHNldHVwID0gYXN5bmMgKFxuICBlbGVtZW50QXJnPzogTGl0RWxlbWVudCxcbiAgb3B0aW9uc0FyZzogSURvbVRvb2xzQ29udHJ1Y3Rvck9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxEb21Ub29scz4gPT4ge1xuICBjb25zdCBkb21Ub29scyA9IGF3YWl0IERvbVRvb2xzLnNldHVwRG9tVG9vbHMob3B0aW9uc0FyZyk7XG5cbiAgaWYgKGVsZW1lbnRBcmcpIHtcbiAgICAvLyBsZXRzIGRvIHNvbWV0aGluZyB3aXRoIHRoZSBlbGVtZW50XG4gICAgLy8gbm90IHVzZWQgcmlnaHQgbm93XG4gIH1cblxuICBkb21Ub29scy5ydW5PbmNlKCdlbGVtZW50QmFzaWNTZXR1cCcsIGFzeW5jICgpID0+IHtcbiAgICAvLyBib2R5U3R5bGVzXG4gICAgZG9tVG9vbHMuc2V0R2xvYmFsU3R5bGVzKGdsb2JhbEJhc2VTdHlsZXMpO1xuICB9KTtcbiAgcmV0dXJuIGRvbVRvb2xzO1xufTtcbiIsICJleHBvcnQgY29uc3QgY3NzR3JpZENvbHVtbnMgPSAoYW1vdW50T2ZDb2x1bW5zQXJnOiBudW1iZXIsIGdhcFNpemVBcmc6IG51bWJlcikgPT4ge1xuICBsZXQgcmV0dXJuU3RyaW5nID0gYGA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYW1vdW50T2ZDb2x1bW5zQXJnOyBpKyspIHtcbiAgICByZXR1cm5TdHJpbmcgKz0gYCBjYWxjKCgxMDAlLyR7YW1vdW50T2ZDb2x1bW5zQXJnfSkgLSAoJHtcbiAgICAgIGdhcFNpemVBcmcgKiAoYW1vdW50T2ZDb2x1bW5zQXJnIC0gMSlcbiAgICB9cHgvJHthbW91bnRPZkNvbHVtbnNBcmd9KSlgO1xuICB9XG4gIHJldHVybiByZXR1cm5TdHJpbmc7XG59O1xuIiwgImltcG9ydCAqIGFzIHNtYXJ0ZGVsYXkgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRkZWxheSc7XG5pbXBvcnQgKiBhcyBzbWFydG1hcmtkb3duIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0bWFya2Rvd24nO1xuaW1wb3J0ICogYXMgc21hcnRwcm9taXNlIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSc7XG5pbXBvcnQgU3dlZXRTY3JvbGwgZnJvbSAnc3dlZXQtc2Nyb2xsJztcbmltcG9ydCAqIGFzIHNtYXJ0c3RhdGUgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRzdGF0ZSc7XG5pbXBvcnQgKiBhcyBzbWFydHJvdXRlciBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHJvdXRlcic7XG5pbXBvcnQgKiBhcyBzbWFydHJ4IGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cngnO1xuaW1wb3J0ICogYXMgc21hcnRzdHJpbmcgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRzdHJpbmcnO1xuaW1wb3J0ICogYXMgc21hcnR1cmwgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnR1cmwnO1xuaW1wb3J0ICogYXMgdHlwZWRyZXF1ZXN0IGZyb20gJ0BhcGkuZ2xvYmFsL3R5cGVkcmVxdWVzdCc7XG5cbmV4cG9ydCB7IFxuICBzbWFydGRlbGF5LCBcbiAgc21hcnRtYXJrZG93biwgXG4gIHNtYXJ0cHJvbWlzZSwgXG4gIFN3ZWV0U2Nyb2xsLCBcbiAgc21hcnRzdGF0ZSwgXG4gIHNtYXJ0cm91dGVyLFxuICBzbWFydHJ4LCBcbiAgc21hcnRzdHJpbmcsIFxuICBzbWFydHVybCwgXG4gIHR5cGVkcmVxdWVzdCBcbn07XG4iLCAiZXhwb3J0ICogZnJvbSAnLi9kb210b29scy5jb2xvcnMuanMnO1xuXG5pbXBvcnQgKiBhcyBlbGVtZW50QmFzaWMgZnJvbSAnLi9kb210b29scy5lbGVtZW50YmFzaWMuanMnO1xuaW1wb3J0ICogYXMgYnJlYWtwb2ludHMgZnJvbSAnLi9kb210b29scy5jc3MuYnJlYWtwb2ludHMuanMnO1xuaW1wb3J0ICogYXMgY3NzIGZyb20gJy4vZG9tdG9vbHMuY3NzLmpzJztcblxuZXhwb3J0IHsgY3NzLCBicmVha3BvaW50cywgZWxlbWVudEJhc2ljIH07XG5leHBvcnQgeyBEb21Ub29scywgdHlwZSBJRG9tVG9vbHNDb250cnVjdG9yT3B0aW9ucyB9IGZyb20gJy4vZG9tdG9vbHMuY2xhc3Nlcy5kb210b29scy5qcyc7XG5leHBvcnQgeyBUeXBlZFJlcXVlc3QgfSBmcm9tICdAYXBpLmdsb2JhbC90eXBlZHJlcXVlc3QnO1xuZXhwb3J0IHsgdHlwZSBJV2ViU2V0dXBDb25zdHJ1Y3Rvck9wdGlvbnMgfSBmcm9tICdAcHVzaC5yb2Nrcy93ZWJzZXR1cCc7XG5cbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9kb210b29scy5wbHVnaW5leHBvcnRzLmpzJztcbmV4cG9ydCB7IHBsdWdpbnMgfTtcblxuLy8gdHlwZSBleHBvcnRzXG5pbXBvcnQgdHlwZSB7IHJ4anMgfSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHJ4JztcblxuZXhwb3J0IHR5cGUge1xuICByeGpzLFxufVxuIiwgIi8vIHB1c2hyb2NrcyBzY29wZVxuaW1wb3J0ICogYXMgaXNvdW5pcXVlIGZyb20gJ0BwdXNoLnJvY2tzL2lzb3VuaXF1ZSc7XG5pbXBvcnQgKiBhcyBzbWFydHJ4IGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cngnO1xuXG5leHBvcnQgeyBpc291bmlxdWUsIHNtYXJ0cnggfTtcblxuLy8gdGhpcmQgcGFydHkgc2NvcGVcbmltcG9ydCB7IGNzcywgdW5zYWZlQ1NTLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMvcHJvcGVydHkuanMnO1xuY29uc3QgbGl0ID0ge1xuICBjc3MsXG4gIHVuc2FmZUNTUyxcbiAgTGl0RWxlbWVudCxcbiAgcHJvcGVydHksXG59O1xuXG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcblxuZXhwb3J0IHsgbGl0LCBkb210b29scyB9O1xuIiwgImltcG9ydCB7IENTU1Jlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9wbHVnaW5zLmpzJztcbmltcG9ydCAqIGFzIGRvbXRvb2xzIGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElCZFZhclRyaXBsZXQge1xuICBjc3NWYXJOYW1lOiBzdHJpbmc7XG4gIGRhcmtWYWx1ZTogc3RyaW5nO1xuICBicmlnaHRWYWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ3NzTWFuYWdlciB7XG4gIC8vIFNUQVRJQ1xuICBwcml2YXRlIHN0YXRpYyBpbnN0YW5jZTogQ3NzTWFuYWdlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgQ3NzTWFuYWdlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRTaW5nbGV0b24oKTogQ3NzTWFuYWdlciB7XG4gICAgaWYgKCFDc3NNYW5hZ2VyLmluc3RhbmNlKSB7XG4gICAgICBDc3NNYW5hZ2VyLmluc3RhbmNlID0gbmV3IENzc01hbmFnZXIoKTtcbiAgICB9XG4gICAgcmV0dXJuIENzc01hbmFnZXIuaW5zdGFuY2U7XG4gIH1cblxuICBcbiAgLy8gSU5TVEFOQ0VcbiAgcHVibGljIGRvbXRvb2xzUHJvbWlzZSA9IGRvbXRvb2xzLkRvbVRvb2xzLnNldHVwRG9tVG9vbHMoKTtcbiAgcHVibGljIGdvQnJpZ2h0OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBiZFZhclRyaXBsZXRTdG9yZTogSUJkVmFyVHJpcGxldFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kb210b29sc1Byb21pc2UudGhlbihhc3luYyAoZG9tdG9vbHNBcmcpID0+IHtcbiAgICAgIGRvbXRvb2xzQXJnLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGFzeW5jIChnb0JyaWdodEFyZykgPT4ge1xuICAgICAgICB0aGlzLmdvQnJpZ2h0ID0gZ29CcmlnaHRBcmc7XG4gICAgICAgIGF3YWl0IGRvbXRvb2xzQXJnLmRvbVJlYWR5LnByb21pc2U7XG4gICAgICAgIGZvciAoY29uc3QgYmRUcmlwbGV0QXJnIG9mIHRoaXMuYmRWYXJUcmlwbGV0U3RvcmUpIHtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgYmRUcmlwbGV0QXJnLmNzc1Zhck5hbWUsXG4gICAgICAgICAgICB0aGlzLmdvQnJpZ2h0ID8gYmRUcmlwbGV0QXJnLmJyaWdodFZhbHVlIDogYmRUcmlwbGV0QXJnLmRhcmtWYWx1ZVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBkZWZhdWx0U3R5bGVzKCkge1xuICAgIHJldHVybiBkb210b29scy5lbGVtZW50QmFzaWMuc3RhdGljU3R5bGVzO1xuICB9XG5cbiAgcHVibGljIGNzc0ZvckRlc2t0b3AoY29udGVudEFyZzogQ1NTUmVzdWx0KSB7XG4gICAgcmV0dXJuIHVuc2FmZUNTUyhkb210b29scy5icmVha3BvaW50cy5jc3NGb3JEZXNrdG9wKGNvbnRlbnRBcmcpKTtcbiAgfVxuXG4gIHB1YmxpYyBjc3NGb3JOb3RlYm9vayhjb250ZW50QXJnOiBDU1NSZXN1bHQpIHtcbiAgICByZXR1cm4gdW5zYWZlQ1NTKGRvbXRvb2xzLmJyZWFrcG9pbnRzLmNzc0Zvck5vdGVib29rKGNvbnRlbnRBcmcpKTtcbiAgfVxuXG4gIHB1YmxpYyBjc3NGb3JUYWJsZXQoY29udGVudEFyZzogQ1NTUmVzdWx0KSB7XG4gICAgcmV0dXJuIHVuc2FmZUNTUyhkb210b29scy5icmVha3BvaW50cy5jc3NGb3JUYWJsZXQoY29udGVudEFyZykpO1xuICB9XG5cbiAgcHVibGljIGNzc0ZvclBoYWJsZXQoY29udGVudEFyZzogQ1NTUmVzdWx0KSB7XG4gICAgcmV0dXJuIHVuc2FmZUNTUyhkb210b29scy5icmVha3BvaW50cy5jc3NGb3JQaGFibGV0KGNvbnRlbnRBcmcpKTtcbiAgfVxuXG4gIHB1YmxpYyBjc3NGb3JQaG9uZShjb250ZW50QXJnOiBDU1NSZXN1bHQpIHtcbiAgICByZXR1cm4gdW5zYWZlQ1NTKGRvbXRvb2xzLmJyZWFrcG9pbnRzLmNzc0ZvclBob25lKGNvbnRlbnRBcmcpKTtcbiAgfVxuXG4gIHB1YmxpYyBiZFRoZW1lKGJyaWdodFZhbHVlQXJnOiBzdHJpbmcsIGRhcmtWYWx1ZUFyZzogc3RyaW5nKTogQ1NTUmVzdWx0IHtcbiAgICBsZXQgcmV0dXJuQ3NzVmFyOiBzdHJpbmc7XG5cbiAgICAvLyBsZXRzIGRldGVybWluZSB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgcXVpY2sgcGFnZSByZW5kZXJpbmcuXG4gICAgbGV0IGRlZmF1bHRWYWx1ZTogc3RyaW5nO1xuICAgIGlmIChkb210b29scy5Eb21Ub29scy5nZXRHbG9iYWxEb21Ub29sc1N5bmMoKSkge1xuICAgICAgZGVmYXVsdFZhbHVlID0gZG9tdG9vbHMuRG9tVG9vbHMuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCkudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhblxuICAgICAgICA/IGJyaWdodFZhbHVlQXJnXG4gICAgICAgIDogZGFya1ZhbHVlQXJnO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWZhdWx0VmFsdWUgPSBkYXJrVmFsdWVBcmc7XG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RpbmdUcmlwbGV0ID0gdGhpcy5iZFZhclRyaXBsZXRTdG9yZS5maW5kKFxuICAgICAgKHRyaXBsZXRBcmcpID0+XG4gICAgICAgIHRyaXBsZXRBcmcuZGFya1ZhbHVlID09PSBkYXJrVmFsdWVBcmcgJiYgdHJpcGxldEFyZy5icmlnaHRWYWx1ZSA9PT0gYnJpZ2h0VmFsdWVBcmdcbiAgICApO1xuICAgIGlmIChleGlzdGluZ1RyaXBsZXQpIHtcbiAgICAgIHJldHVybkNzc1ZhciA9IGV4aXN0aW5nVHJpcGxldC5jc3NWYXJOYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdUcmlwbGV0OiBJQmRWYXJUcmlwbGV0ID0ge1xuICAgICAgICBjc3NWYXJOYW1lOiBgLS0ke3BsdWdpbnMuaXNvdW5pcXVlLnVuaSgpfWAsXG4gICAgICAgIGJyaWdodFZhbHVlOiBicmlnaHRWYWx1ZUFyZyxcbiAgICAgICAgZGFya1ZhbHVlOiBkYXJrVmFsdWVBcmcsXG4gICAgICB9O1xuICAgICAgdGhpcy5iZFZhclRyaXBsZXRTdG9yZS5wdXNoKG5ld1RyaXBsZXQpO1xuXG4gICAgICB0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIChkb210b29sc0FyZykgPT4ge1xuICAgICAgICBhd2FpdCBkb210b29sc0FyZy5kb21SZWFkeS5wcm9taXNlO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KG5ld1RyaXBsZXQuY3NzVmFyTmFtZSwgZGVmYXVsdFZhbHVlKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuQ3NzVmFyID0gbmV3VHJpcGxldC5jc3NWYXJOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gcGx1Z2lucy5saXQudW5zYWZlQ1NTKGB2YXIoJHtyZXR1cm5Dc3NWYXJ9LCAke2RlZmF1bHRWYWx1ZX0pYCk7XG4gIH1cblxuICBwdWJsaWMgY3NzR3JpZENvbHVtbnMgPSAoYW1vdW50T2ZDb2x1bW5zQXJnOiBudW1iZXIsIGdhcFNpemVBcmc6IG51bWJlcik6IENTU1Jlc3VsdCA9PiB7XG4gICAgbGV0IHJldHVyblN0cmluZyA9IGBgO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYW1vdW50T2ZDb2x1bW5zQXJnOyBpKyspIHtcbiAgICAgIHJldHVyblN0cmluZyArPSBgIGNhbGMoKDEwMCUvJHthbW91bnRPZkNvbHVtbnNBcmd9KSAtICgke1xuICAgICAgICBnYXBTaXplQXJnICogKGFtb3VudE9mQ29sdW1uc0FyZyAtIDEpXG4gICAgICB9cHgvJHthbW91bnRPZkNvbHVtbnNBcmd9KSlgO1xuICAgIH1cbiAgICByZXR1cm4gcGx1Z2lucy5saXQudW5zYWZlQ1NTKHJldHVyblN0cmluZyk7XG4gIH07XG59XG4iLCAiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5cbi8vIEFueSBuZXcgZXhwb3J0cyBuZWVkIHRvIGJlIGFkZGVkIHRvIHRoZSBleHBvcnQgc3RhdGVtZW50IGluXG4vLyBgcGFja2FnZXMvbGl0L3NyYy9pbmRleC5hbGwudHNgLlxuXG5pbXBvcnQge1xuICBodG1sIGFzIGNvcmVIdG1sLFxuICBzdmcgYXMgY29yZVN2ZyxcbiAgbWF0aG1sIGFzIGNvcmVNYXRobWwsXG4gIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICcuL2xpdC1odG1sLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0aWNWYWx1ZSB7XG4gIC8qKiBUaGUgdmFsdWUgdG8gaW50ZXJwb2xhdGUgYXMtaXMgaW50byB0aGUgdGVtcGxhdGUuICovXG4gIF8kbGl0U3RhdGljJDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHZhbHVlIHRoYXQgY2FuJ3QgYmUgZGVjb2RlZCBmcm9tIG9yZGluYXJ5IEpTT04sIG1ha2UgaXQgaGFyZGVyIGZvclxuICAgKiBhbiBhdHRhY2tlci1jb250cm9sbGVkIGRhdGEgdGhhdCBnb2VzIHRocm91Z2ggSlNPTi5wYXJzZSB0byBwcm9kdWNlIGEgdmFsaWRcbiAgICogU3RhdGljVmFsdWUuXG4gICAqL1xuICByOiB0eXBlb2YgYnJhbmQ7XG59XG5cbi8qKlxuICogUHJldmVudHMgSlNPTiBpbmplY3Rpb24gYXR0YWNrcy5cbiAqXG4gKiBUaGUgZ29hbHMgb2YgdGhpcyBicmFuZDpcbiAqICAgMSkgZmFzdCB0byBjaGVja1xuICogICAyKSBjb2RlIGlzIHNtYWxsIG9uIHRoZSB3aXJlXG4gKiAgIDMpIG11bHRpcGxlIHZlcnNpb25zIG9mIExpdCBpbiBhIHNpbmdsZSBwYWdlIHdpbGwgYWxsIHByb2R1Y2UgbXV0dWFsbHlcbiAqICAgICAgaW50ZXJvcGVyYWJsZSBTdGF0aWNWYWx1ZXNcbiAqICAgNCkgbm9ybWFsIEpTT04ucGFyc2UgKHdpdGhvdXQgYW4gdW51c3VhbCByZXZpdmVyKSBjYW4gbm90IHByb2R1Y2UgYVxuICogICAgICBTdGF0aWNWYWx1ZVxuICpcbiAqIFN5bWJvbHMgc2F0aXNmeSAoMSksICgyKSwgYW5kICg0KS4gV2UgdXNlIFN5bWJvbC5mb3IgdG8gc2F0aXNmeSAoMyksIGJ1dFxuICogd2UgZG9uJ3QgY2FyZSBhYm91dCB0aGUga2V5LCBzbyB3ZSBicmVhayB0aWVzIHZpYSAoMikgYW5kIHVzZSB0aGUgZW1wdHlcbiAqIHN0cmluZy5cbiAqL1xuY29uc3QgYnJhbmQgPSBTeW1ib2wuZm9yKCcnKTtcblxuLyoqIFNhZmVseSBleHRyYWN0cyB0aGUgc3RyaW5nIHBhcnQgb2YgYSBTdGF0aWNWYWx1ZS4gKi9cbmNvbnN0IHVud3JhcFN0YXRpY1ZhbHVlID0gKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCh2YWx1ZSBhcyBQYXJ0aWFsPFN0YXRpY1ZhbHVlPik/LnIgIT09IGJyYW5kKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gKHZhbHVlIGFzIFBhcnRpYWw8U3RhdGljVmFsdWU+KT8uWydfJGxpdFN0YXRpYyQnXTtcbn07XG5cbi8qKlxuICogV3JhcHMgYSBzdHJpbmcgc28gdGhhdCBpdCBiZWhhdmVzIGxpa2UgcGFydCBvZiB0aGUgc3RhdGljIHRlbXBsYXRlXG4gKiBzdHJpbmdzIGluc3RlYWQgb2YgYSBkeW5hbWljIHZhbHVlLlxuICpcbiAqIFVzZXJzIG11c3QgdGFrZSBjYXJlIHRvIGVuc3VyZSB0aGF0IGFkZGluZyB0aGUgc3RhdGljIHN0cmluZyB0byB0aGUgdGVtcGxhdGVcbiAqIHJlc3VsdHMgaW4gd2VsbC1mb3JtZWQgSFRNTCwgb3IgZWxzZSB0ZW1wbGF0ZXMgbWF5IGJyZWFrIHVuZXhwZWN0ZWRseS5cbiAqXG4gKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyB1bnNhZmUgdG8gdXNlIG9uIHVudHJ1c3RlZCBjb250ZW50LCBhcyBpdCB3aWxsIGJlXG4gKiBkaXJlY3RseSBwYXJzZWQgaW50byBIVE1MLiBEbyBub3QgcGFzcyB1c2VyIGlucHV0IHRvIHRoaXMgZnVuY3Rpb25cbiAqIHdpdGhvdXQgc2FuaXRpemluZyBpdC5cbiAqXG4gKiBTdGF0aWMgdmFsdWVzIGNhbiBiZSBjaGFuZ2VkLCBidXQgdGhleSB3aWxsIGNhdXNlIGEgY29tcGxldGUgcmUtcmVuZGVyXG4gKiBzaW5jZSB0aGV5IGVmZmVjdGl2ZWx5IGNyZWF0ZSBhIG5ldyB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVuc2FmZVN0YXRpYyA9ICh2YWx1ZTogc3RyaW5nKTogU3RhdGljVmFsdWUgPT4gKHtcbiAgWydfJGxpdFN0YXRpYyQnXTogdmFsdWUsXG4gIHI6IGJyYW5kLFxufSk7XG5cbmNvbnN0IHRleHRGcm9tU3RhdGljID0gKHZhbHVlOiBTdGF0aWNWYWx1ZSkgPT4ge1xuICBpZiAodmFsdWVbJ18kbGl0U3RhdGljJCddICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdmFsdWVbJ18kbGl0U3RhdGljJCddO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBWYWx1ZSBwYXNzZWQgdG8gJ2xpdGVyYWwnIGZ1bmN0aW9uIG11c3QgYmUgYSAnbGl0ZXJhbCcgcmVzdWx0OiAke3ZhbHVlfS4gVXNlICd1bnNhZmVTdGF0aWMnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXRcbiAgICAgICAgICAgIHRha2UgY2FyZSB0byBlbnN1cmUgcGFnZSBzZWN1cml0eS5gXG4gICAgKTtcbiAgfVxufTtcblxuLyoqXG4gKiBUYWdzIGEgc3RyaW5nIGxpdGVyYWwgc28gdGhhdCBpdCBiZWhhdmVzIGxpa2UgcGFydCBvZiB0aGUgc3RhdGljIHRlbXBsYXRlXG4gKiBzdHJpbmdzIGluc3RlYWQgb2YgYSBkeW5hbWljIHZhbHVlLlxuICpcbiAqIFRoZSBvbmx5IHZhbHVlcyB0aGF0IG1heSBiZSB1c2VkIGluIHRlbXBsYXRlIGV4cHJlc3Npb25zIGFyZSBvdGhlciB0YWdnZWRcbiAqIGBsaXRlcmFsYCByZXN1bHRzIG9yIGB1bnNhZmVTdGF0aWNgIHZhbHVlcyAobm90ZSB0aGF0IHVudHJ1c3RlZCBjb250ZW50XG4gKiBzaG91bGQgbmV2ZXIgYmUgcGFzc2VkIHRvIGB1bnNhZmVTdGF0aWNgKS5cbiAqXG4gKiBVc2VycyBtdXN0IHRha2UgY2FyZSB0byBlbnN1cmUgdGhhdCBhZGRpbmcgdGhlIHN0YXRpYyBzdHJpbmcgdG8gdGhlIHRlbXBsYXRlXG4gKiByZXN1bHRzIGluIHdlbGwtZm9ybWVkIEhUTUwsIG9yIGVsc2UgdGVtcGxhdGVzIG1heSBicmVhayB1bmV4cGVjdGVkbHkuXG4gKlxuICogU3RhdGljIHZhbHVlcyBjYW4gYmUgY2hhbmdlZCwgYnV0IHRoZXkgd2lsbCBjYXVzZSBhIGNvbXBsZXRlIHJlLXJlbmRlciBzaW5jZVxuICogdGhleSBlZmZlY3RpdmVseSBjcmVhdGUgYSBuZXcgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBjb25zdCBsaXRlcmFsID0gKFxuICBzdHJpbmdzOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSxcbiAgLi4udmFsdWVzOiB1bmtub3duW11cbik6IFN0YXRpY1ZhbHVlID0+ICh7XG4gIFsnXyRsaXRTdGF0aWMkJ106IHZhbHVlcy5yZWR1Y2UoXG4gICAgKGFjYywgdiwgaWR4KSA9PiBhY2MgKyB0ZXh0RnJvbVN0YXRpYyh2IGFzIFN0YXRpY1ZhbHVlKSArIHN0cmluZ3NbaWR4ICsgMV0sXG4gICAgc3RyaW5nc1swXVxuICApIGFzIHN0cmluZyxcbiAgcjogYnJhbmQsXG59KTtcblxuY29uc3Qgc3RyaW5nc0NhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFRlbXBsYXRlU3RyaW5nc0FycmF5PigpO1xuXG4vKipcbiAqIFdyYXBzIGEgbGl0LWh0bWwgdGVtcGxhdGUgdGFnIChgaHRtbGAgb3IgYHN2Z2ApIHRvIGFkZCBzdGF0aWMgdmFsdWUgc3VwcG9ydC5cbiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhTdGF0aWMgPVxuICAoY29yZVRhZzogdHlwZW9mIGNvcmVIdG1sIHwgdHlwZW9mIGNvcmVTdmcgfCB0eXBlb2YgY29yZU1hdGhtbCkgPT5cbiAgKHN0cmluZ3M6IFRlbXBsYXRlU3RyaW5nc0FycmF5LCAuLi52YWx1ZXM6IHVua25vd25bXSk6IFRlbXBsYXRlUmVzdWx0ID0+IHtcbiAgICBjb25zdCBsID0gdmFsdWVzLmxlbmd0aDtcbiAgICBsZXQgc3RhdGljVmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZHluYW1pY1ZhbHVlOiB1bmtub3duO1xuICAgIGNvbnN0IHN0YXRpY1N0cmluZ3M6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICBjb25zdCBkeW5hbWljVmFsdWVzOiBBcnJheTx1bmtub3duPiA9IFtdO1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgaGFzU3RhdGljcyA9IGZhbHNlO1xuICAgIGxldCBzOiBzdHJpbmc7XG5cbiAgICB3aGlsZSAoaSA8IGwpIHtcbiAgICAgIHMgPSBzdHJpbmdzW2ldO1xuICAgICAgLy8gQ29sbGVjdCBhbnkgdW5zYWZlU3RhdGljIHZhbHVlcywgYW5kIHRoZWlyIGZvbGxvd2luZyB0ZW1wbGF0ZSBzdHJpbmdzXG4gICAgICAvLyBzbyB0aGF0IHdlIHRyZWF0IGEgcnVuIG9mIHRlbXBsYXRlIHN0cmluZ3MgYW5kIHVuc2FmZSBzdGF0aWMgdmFsdWVzIGFzXG4gICAgICAvLyBhIHNpbmdsZSB0ZW1wbGF0ZSBzdHJpbmcuXG4gICAgICB3aGlsZSAoXG4gICAgICAgIGkgPCBsICYmXG4gICAgICAgICgoZHluYW1pY1ZhbHVlID0gdmFsdWVzW2ldKSxcbiAgICAgICAgKHN0YXRpY1ZhbHVlID0gdW53cmFwU3RhdGljVmFsdWUoZHluYW1pY1ZhbHVlKSkpICE9PSB1bmRlZmluZWRcbiAgICAgICkge1xuICAgICAgICBzICs9IHN0YXRpY1ZhbHVlICsgc3RyaW5nc1srK2ldO1xuICAgICAgICBoYXNTdGF0aWNzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSBsYXN0IHZhbHVlIGlzIHN0YXRpYywgd2UgZG9uJ3QgbmVlZCB0byBwdXNoIGl0LlxuICAgICAgaWYgKGkgIT09IGwpIHtcbiAgICAgICAgZHluYW1pY1ZhbHVlcy5wdXNoKGR5bmFtaWNWYWx1ZSk7XG4gICAgICB9XG4gICAgICBzdGF0aWNTdHJpbmdzLnB1c2gocyk7XG4gICAgICBpKys7XG4gICAgfVxuICAgIC8vIElmIHRoZSBsYXN0IHZhbHVlIGlzbid0IHN0YXRpYyAod2hpY2ggd291bGQgaGF2ZSBjb25zdW1lZCB0aGUgbGFzdFxuICAgIC8vIHN0cmluZyksIHRoZW4gd2UgbmVlZCB0byBhZGQgdGhlIGxhc3Qgc3RyaW5nLlxuICAgIGlmIChpID09PSBsKSB7XG4gICAgICBzdGF0aWNTdHJpbmdzLnB1c2goc3RyaW5nc1tsXSk7XG4gICAgfVxuXG4gICAgaWYgKGhhc1N0YXRpY3MpIHtcbiAgICAgIGNvbnN0IGtleSA9IHN0YXRpY1N0cmluZ3Muam9pbignJCRsaXQkJCcpO1xuICAgICAgc3RyaW5ncyA9IHN0cmluZ3NDYWNoZS5nZXQoa2V5KSE7XG4gICAgICBpZiAoc3RyaW5ncyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIEJld2FyZTogaW4gZ2VuZXJhbCB0aGlzIHBhdHRlcm4gaXMgdW5zYWZlLCBhbmQgZG9pbmcgc28gbWF5IGJ5cGFzc1xuICAgICAgICAvLyBsaXQncyBzZWN1cml0eSBjaGVja3MgYW5kIGFsbG93IGFuIGF0dGFja2VyIHRvIGV4ZWN1dGUgYXJiaXRyYXJ5XG4gICAgICAgIC8vIGNvZGUgYW5kIGluamVjdCBhcmJpdHJhcnkgY29udGVudC5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgKHN0YXRpY1N0cmluZ3MgYXMgYW55KS5yYXcgPSBzdGF0aWNTdHJpbmdzO1xuICAgICAgICBzdHJpbmdzQ2FjaGUuc2V0KFxuICAgICAgICAgIGtleSxcbiAgICAgICAgICAoc3RyaW5ncyA9IHN0YXRpY1N0cmluZ3MgYXMgdW5rbm93biBhcyBUZW1wbGF0ZVN0cmluZ3NBcnJheSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHZhbHVlcyA9IGR5bmFtaWNWYWx1ZXM7XG4gICAgfVxuICAgIHJldHVybiBjb3JlVGFnKHN0cmluZ3MsIC4uLnZhbHVlcyk7XG4gIH07XG5cbi8qKlxuICogSW50ZXJwcmV0cyBhIHRlbXBsYXRlIGxpdGVyYWwgYXMgYW4gSFRNTCB0ZW1wbGF0ZSB0aGF0IGNhbiBlZmZpY2llbnRseVxuICogcmVuZGVyIHRvIGFuZCB1cGRhdGUgYSBjb250YWluZXIuXG4gKlxuICogSW5jbHVkZXMgc3RhdGljIHZhbHVlIHN1cHBvcnQgZnJvbSBgbGl0LWh0bWwvc3RhdGljLmpzYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGh0bWwgPSB3aXRoU3RhdGljKGNvcmVIdG1sKTtcblxuLyoqXG4gKiBJbnRlcnByZXRzIGEgdGVtcGxhdGUgbGl0ZXJhbCBhcyBhbiBTVkcgdGVtcGxhdGUgdGhhdCBjYW4gZWZmaWNpZW50bHlcbiAqIHJlbmRlciB0byBhbmQgdXBkYXRlIGEgY29udGFpbmVyLlxuICpcbiAqIEluY2x1ZGVzIHN0YXRpYyB2YWx1ZSBzdXBwb3J0IGZyb20gYGxpdC1odG1sL3N0YXRpYy5qc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBzdmcgPSB3aXRoU3RhdGljKGNvcmVTdmcpO1xuXG4vKipcbiAqIEludGVycHJldHMgYSB0ZW1wbGF0ZSBsaXRlcmFsIGFzIE1hdGhNTCBmcmFnbWVudCB0aGF0IGNhbiBlZmZpY2llbnRseSByZW5kZXJcbiAqIHRvIGFuZCB1cGRhdGUgYSBjb250YWluZXIuXG4gKlxuICogSW5jbHVkZXMgc3RhdGljIHZhbHVlIHN1cHBvcnQgZnJvbSBgbGl0LWh0bWwvc3RhdGljLmpzYC5cbiAqL1xuZXhwb3J0IGNvbnN0IG1hdGhtbCA9IHdpdGhTdGF0aWMoY29yZU1hdGhtbCk7XG4iLCAiZXhwb3J0KmZyb21cImxpdC1odG1sL3N0YXRpYy5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RhdGljLWh0bWwuanMubWFwXG4iLCAiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5cbmltcG9ydCB7RGlzY29ubmVjdGFibGUsIFBhcnR9IGZyb20gJy4vbGl0LWh0bWwuanMnO1xuXG5leHBvcnQge1xuICBBdHRyaWJ1dGVQYXJ0LFxuICBCb29sZWFuQXR0cmlidXRlUGFydCxcbiAgQ2hpbGRQYXJ0LFxuICBFbGVtZW50UGFydCxcbiAgRXZlbnRQYXJ0LFxuICBQYXJ0LFxuICBQcm9wZXJ0eVBhcnQsXG59IGZyb20gJy4vbGl0LWh0bWwuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGl2ZUNsYXNzIHtcbiAgbmV3IChwYXJ0OiBQYXJ0SW5mbyk6IERpcmVjdGl2ZTtcbn1cblxuLyoqXG4gKiBUaGlzIHV0aWxpdHkgdHlwZSBleHRyYWN0cyB0aGUgc2lnbmF0dXJlIG9mIGEgZGlyZWN0aXZlIGNsYXNzJ3MgcmVuZGVyKClcbiAqIG1ldGhvZCBzbyB3ZSBjYW4gdXNlIGl0IGZvciB0aGUgdHlwZSBvZiB0aGUgZ2VuZXJhdGVkIGRpcmVjdGl2ZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgRGlyZWN0aXZlUGFyYW1ldGVyczxDIGV4dGVuZHMgRGlyZWN0aXZlPiA9IFBhcmFtZXRlcnM8Q1sncmVuZGVyJ10+O1xuXG4vKipcbiAqIEEgZ2VuZXJhdGVkIGRpcmVjdGl2ZSBmdW5jdGlvbiBkb2Vzbid0IGV2YWx1YXRlIHRoZSBkaXJlY3RpdmUsIGJ1dCBqdXN0XG4gKiByZXR1cm5zIGEgRGlyZWN0aXZlUmVzdWx0IG9iamVjdCB0aGF0IGNhcHR1cmVzIHRoZSBhcmd1bWVudHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0aXZlUmVzdWx0PEMgZXh0ZW5kcyBEaXJlY3RpdmVDbGFzcyA9IERpcmVjdGl2ZUNsYXNzPiB7XG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IG5lZWRzIHRvIHJlbWFpbiB1bm1pbmlmaWVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIFsnXyRsaXREaXJlY3RpdmUkJ106IEM7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgdmFsdWVzOiBEaXJlY3RpdmVQYXJhbWV0ZXJzPEluc3RhbmNlVHlwZTxDPj47XG59XG5cbmV4cG9ydCBjb25zdCBQYXJ0VHlwZSA9IHtcbiAgQVRUUklCVVRFOiAxLFxuICBDSElMRDogMixcbiAgUFJPUEVSVFk6IDMsXG4gIEJPT0xFQU5fQVRUUklCVVRFOiA0LFxuICBFVkVOVDogNSxcbiAgRUxFTUVOVDogNixcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFBhcnRUeXBlID0gKHR5cGVvZiBQYXJ0VHlwZSlba2V5b2YgdHlwZW9mIFBhcnRUeXBlXTtcblxuZXhwb3J0IGludGVyZmFjZSBDaGlsZFBhcnRJbmZvIHtcbiAgcmVhZG9ubHkgdHlwZTogdHlwZW9mIFBhcnRUeXBlLkNISUxEO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZVBhcnRJbmZvIHtcbiAgcmVhZG9ubHkgdHlwZTpcbiAgICB8IHR5cGVvZiBQYXJ0VHlwZS5BVFRSSUJVVEVcbiAgICB8IHR5cGVvZiBQYXJ0VHlwZS5QUk9QRVJUWVxuICAgIHwgdHlwZW9mIFBhcnRUeXBlLkJPT0xFQU5fQVRUUklCVVRFXG4gICAgfCB0eXBlb2YgUGFydFR5cGUuRVZFTlQ7XG4gIHJlYWRvbmx5IHN0cmluZ3M/OiBSZWFkb25seUFycmF5PHN0cmluZz47XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGFnTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRQYXJ0SW5mbyB7XG4gIHJlYWRvbmx5IHR5cGU6IHR5cGVvZiBQYXJ0VHlwZS5FTEVNRU5UO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBwYXJ0IGEgZGlyZWN0aXZlIGlzIGJvdW5kIHRvLlxuICpcbiAqIFRoaXMgaXMgdXNlZnVsIGZvciBjaGVja2luZyB0aGF0IGEgZGlyZWN0aXZlIGlzIGF0dGFjaGVkIHRvIGEgdmFsaWQgcGFydCxcbiAqIHN1Y2ggYXMgd2l0aCBkaXJlY3RpdmUgdGhhdCBjYW4gb25seSBiZSB1c2VkIG9uIGF0dHJpYnV0ZSBiaW5kaW5ncy5cbiAqL1xuZXhwb3J0IHR5cGUgUGFydEluZm8gPSBDaGlsZFBhcnRJbmZvIHwgQXR0cmlidXRlUGFydEluZm8gfCBFbGVtZW50UGFydEluZm87XG5cbi8qKlxuICogQ3JlYXRlcyBhIHVzZXItZmFjaW5nIGRpcmVjdGl2ZSBmdW5jdGlvbiBmcm9tIGEgRGlyZWN0aXZlIGNsYXNzLiBUaGlzXG4gKiBmdW5jdGlvbiBoYXMgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyB0aGUgZGlyZWN0aXZlJ3MgcmVuZGVyKCkgbWV0aG9kLlxuICovXG5leHBvcnQgY29uc3QgZGlyZWN0aXZlID1cbiAgPEMgZXh0ZW5kcyBEaXJlY3RpdmVDbGFzcz4oYzogQykgPT5cbiAgKC4uLnZhbHVlczogRGlyZWN0aXZlUGFyYW1ldGVyczxJbnN0YW5jZVR5cGU8Qz4+KTogRGlyZWN0aXZlUmVzdWx0PEM+ID0+ICh7XG4gICAgLy8gVGhpcyBwcm9wZXJ0eSBuZWVkcyB0byByZW1haW4gdW5taW5pZmllZC5cbiAgICBbJ18kbGl0RGlyZWN0aXZlJCddOiBjLFxuICAgIHZhbHVlcyxcbiAgfSk7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgY3VzdG9tIGRpcmVjdGl2ZXMuIFVzZXJzIHNob3VsZCBleHRlbmQgdGhpcyBjbGFzcyxcbiAqIGltcGxlbWVudCBgcmVuZGVyYCBhbmQvb3IgYHVwZGF0ZWAsIGFuZCB0aGVuIHBhc3MgdGhlaXIgc3ViY2xhc3MgdG9cbiAqIGBkaXJlY3RpdmVgLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGlyZWN0aXZlIGltcGxlbWVudHMgRGlzY29ubmVjdGFibGUge1xuICAvL0BpbnRlcm5hbFxuICBfX3BhcnQhOiBQYXJ0O1xuICAvL0BpbnRlcm5hbFxuICBfX2F0dHJpYnV0ZUluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIC8vQGludGVybmFsXG4gIF9fZGlyZWN0aXZlPzogRGlyZWN0aXZlO1xuXG4gIC8vQGludGVybmFsXG4gIF8kcGFyZW50ITogRGlzY29ubmVjdGFibGU7XG5cbiAgLy8gVGhlc2Ugd2lsbCBvbmx5IGV4aXN0IG9uIHRoZSBBc3luY0RpcmVjdGl2ZSBzdWJjbGFzc1xuICAvL0BpbnRlcm5hbFxuICBfJGRpc2Nvbm5lY3RhYmxlQ2hpbGRyZW4/OiBTZXQ8RGlzY29ubmVjdGFibGU+O1xuICAvLyBUaGlzIHByb3BlcnR5IG5lZWRzIHRvIHJlbWFpbiB1bm1pbmlmaWVkLlxuICAvL0BpbnRlcm5hbFxuICBbJ18kbm90aWZ5RGlyZWN0aXZlQ29ubmVjdGlvbkNoYW5nZWQnXT8oaXNDb25uZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKF9wYXJ0SW5mbzogUGFydEluZm8pIHt9XG5cbiAgLy8gU2VlIGNvbW1lbnQgaW4gRGlzY29ubmVjdGFibGUgaW50ZXJmYWNlIGZvciB3aHkgdGhpcyBpcyBhIGdldHRlclxuICBnZXQgXyRpc0Nvbm5lY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fJHBhcmVudC5fJGlzQ29ubmVjdGVkO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfJGluaXRpYWxpemUoXG4gICAgcGFydDogUGFydCxcbiAgICBwYXJlbnQ6IERpc2Nvbm5lY3RhYmxlLFxuICAgIGF0dHJpYnV0ZUluZGV4OiBudW1iZXIgfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgdGhpcy5fX3BhcnQgPSBwYXJ0O1xuICAgIHRoaXMuXyRwYXJlbnQgPSBwYXJlbnQ7XG4gICAgdGhpcy5fX2F0dHJpYnV0ZUluZGV4ID0gYXR0cmlidXRlSW5kZXg7XG4gIH1cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfJHJlc29sdmUocGFydDogUGFydCwgcHJvcHM6IEFycmF5PHVua25vd24+KTogdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKHBhcnQsIHByb3BzKTtcbiAgfVxuXG4gIGFic3RyYWN0IHJlbmRlciguLi5wcm9wczogQXJyYXk8dW5rbm93bj4pOiB1bmtub3duO1xuXG4gIHVwZGF0ZShfcGFydDogUGFydCwgcHJvcHM6IEFycmF5PHVua25vd24+KTogdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMucmVuZGVyKC4uLnByb3BzKTtcbiAgfVxufVxuIiwgIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2VcbiAqL1xuXG5pbXBvcnQge25vdGhpbmcsIFRlbXBsYXRlUmVzdWx0LCBub0NoYW5nZX0gZnJvbSAnLi4vbGl0LWh0bWwuanMnO1xuaW1wb3J0IHtkaXJlY3RpdmUsIERpcmVjdGl2ZSwgUGFydEluZm8sIFBhcnRUeXBlfSBmcm9tICcuLi9kaXJlY3RpdmUuanMnO1xuXG5jb25zdCBIVE1MX1JFU1VMVCA9IDE7XG5cbmV4cG9ydCBjbGFzcyBVbnNhZmVIVE1MRGlyZWN0aXZlIGV4dGVuZHMgRGlyZWN0aXZlIHtcbiAgc3RhdGljIGRpcmVjdGl2ZU5hbWUgPSAndW5zYWZlSFRNTCc7XG4gIHN0YXRpYyByZXN1bHRUeXBlID0gSFRNTF9SRVNVTFQ7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHVua25vd24gPSBub3RoaW5nO1xuICBwcml2YXRlIF90ZW1wbGF0ZVJlc3VsdD86IFRlbXBsYXRlUmVzdWx0O1xuXG4gIGNvbnN0cnVjdG9yKHBhcnRJbmZvOiBQYXJ0SW5mbykge1xuICAgIHN1cGVyKHBhcnRJbmZvKTtcbiAgICBpZiAocGFydEluZm8udHlwZSAhPT0gUGFydFR5cGUuQ0hJTEQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7XG4gICAgICAgICAgKHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFVuc2FmZUhUTUxEaXJlY3RpdmUpLmRpcmVjdGl2ZU5hbWVcbiAgICAgICAgfSgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgYmluZGluZ3NgXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlcih2YWx1ZTogc3RyaW5nIHwgdHlwZW9mIG5vdGhpbmcgfCB0eXBlb2Ygbm9DaGFuZ2UgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgaWYgKHZhbHVlID09PSBub3RoaW5nIHx8IHZhbHVlID09IG51bGwpIHtcbiAgICAgIHRoaXMuX3RlbXBsYXRlUmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuICh0aGlzLl92YWx1ZSA9IHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSBub0NoYW5nZSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAke1xuICAgICAgICAgICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBVbnNhZmVIVE1MRGlyZWN0aXZlKS5kaXJlY3RpdmVOYW1lXG4gICAgICAgIH0oKSBjYWxsZWQgd2l0aCBhIG5vbi1zdHJpbmcgdmFsdWVgXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09IHRoaXMuX3ZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVSZXN1bHQ7XG4gICAgfVxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgY29uc3Qgc3RyaW5ncyA9IFt2YWx1ZV0gYXMgdW5rbm93biBhcyBUZW1wbGF0ZVN0cmluZ3NBcnJheTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIChzdHJpbmdzIGFzIGFueSkucmF3ID0gc3RyaW5ncztcbiAgICAvLyBXQVJOSU5HOiBpbXBlcnNvbmF0aW5nIGEgVGVtcGxhdGVSZXN1bHQgbGlrZSB0aGlzIGlzIGV4dHJlbWVseVxuICAgIC8vIGRhbmdlcm91cy4gVGhpcmQtcGFydHkgZGlyZWN0aXZlcyBzaG91bGQgbm90IGRvIHRoaXMuXG4gICAgcmV0dXJuICh0aGlzLl90ZW1wbGF0ZVJlc3VsdCA9IHtcbiAgICAgIC8vIENhc3QgdG8gYSBrbm93biBzZXQgb2YgaW50ZWdlcnMgdGhhdCBzYXRpc2Z5IFJlc3VsdFR5cGUgc28gdGhhdCB3ZVxuICAgICAgLy8gZG9uJ3QgaGF2ZSB0byBleHBvcnQgUmVzdWx0VHlwZSBhbmQgcG9zc2libHkgZW5jb3VyYWdlIHRoaXMgcGF0dGVybi5cbiAgICAgIC8vIFRoaXMgcHJvcGVydHkgbmVlZHMgdG8gcmVtYWluIHVubWluaWZpZWQuXG4gICAgICBbJ18kbGl0VHlwZSQnXTogKHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFVuc2FmZUhUTUxEaXJlY3RpdmUpXG4gICAgICAgIC5yZXN1bHRUeXBlIGFzIDEgfCAyLFxuICAgICAgc3RyaW5ncyxcbiAgICAgIHZhbHVlczogW10sXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSByZXN1bHQgYXMgSFRNTCwgcmF0aGVyIHRoYW4gdGV4dC5cbiAqXG4gKiBUaGUgdmFsdWVzIGB1bmRlZmluZWRgLCBgbnVsbGAsIGFuZCBgbm90aGluZ2AsIHdpbGwgYWxsIHJlc3VsdCBpbiBubyBjb250ZW50XG4gKiAoZW1wdHkgc3RyaW5nKSBiZWluZyByZW5kZXJlZC5cbiAqXG4gKiBOb3RlLCB0aGlzIGlzIHVuc2FmZSB0byB1c2Ugd2l0aCBhbnkgdXNlci1wcm92aWRlZCBpbnB1dCB0aGF0IGhhc24ndCBiZWVuXG4gKiBzYW5pdGl6ZWQgb3IgZXNjYXBlZCwgYXMgaXQgbWF5IGxlYWQgdG8gY3Jvc3Mtc2l0ZS1zY3JpcHRpbmdcbiAqIHZ1bG5lcmFiaWxpdGllcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHVuc2FmZUhUTUwgPSBkaXJlY3RpdmUoVW5zYWZlSFRNTERpcmVjdGl2ZSk7XG4iLCAiZXhwb3J0KmZyb21cImxpdC1odG1sL2RpcmVjdGl2ZXMvdW5zYWZlLWh0bWwuanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVuc2FmZS1odG1sLmpzLm1hcFxuIiwgIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2VcbiAqL1xuXG4vKlxuICogSU1QT1JUQU5UOiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRzaWNrbGUgYW5kIHRoZSBDbG9zdXJlIEpTIGNvbXBpbGVyLCBhbGxcbiAqIHByb3BlcnR5IGRlY29yYXRvcnMgKGJ1dCBub3QgY2xhc3MgZGVjb3JhdG9ycykgaW4gdGhpcyBmaWxlIHRoYXQgaGF2ZVxuICogYW4gQEV4cG9ydERlY29yYXRlZEl0ZW1zIGFubm90YXRpb24gbXVzdCBiZSBkZWZpbmVkIGFzIGEgcmVndWxhciBmdW5jdGlvbixcbiAqIG5vdCBhbiBhcnJvdyBmdW5jdGlvbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7Q29uc3RydWN0b3J9IGZyb20gJy4vYmFzZS5qcyc7XG5cbi8qKlxuICogQWxsb3cgZm9yIGN1c3RvbSBlbGVtZW50IGNsYXNzZXMgd2l0aCBwcml2YXRlIGNvbnN0cnVjdG9yc1xuICovXG50eXBlIEN1c3RvbUVsZW1lbnRDbGFzcyA9IE9taXQ8dHlwZW9mIEhUTUxFbGVtZW50LCAnbmV3Jz47XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUVsZW1lbnREZWNvcmF0b3IgPSB7XG4gIC8vIGxlZ2FjeVxuICAoY2xzOiBDdXN0b21FbGVtZW50Q2xhc3MpOiB2b2lkO1xuXG4gIC8vIHN0YW5kYXJkXG4gIChcbiAgICB0YXJnZXQ6IEN1c3RvbUVsZW1lbnRDbGFzcyxcbiAgICBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHQ8Q29uc3RydWN0b3I8SFRNTEVsZW1lbnQ+PlxuICApOiB2b2lkO1xufTtcblxuLyoqXG4gKiBDbGFzcyBkZWNvcmF0b3IgZmFjdG9yeSB0aGF0IGRlZmluZXMgdGhlIGRlY29yYXRlZCBjbGFzcyBhcyBhIGN1c3RvbSBlbGVtZW50LlxuICpcbiAqIGBgYGpzXG4gKiBAY3VzdG9tRWxlbWVudCgnbXktZWxlbWVudCcpXG4gKiBjbGFzcyBNeUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAqICAgcmVuZGVyKCkge1xuICogICAgIHJldHVybiBodG1sYGA7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICogQGNhdGVnb3J5IERlY29yYXRvclxuICogQHBhcmFtIHRhZ05hbWUgVGhlIHRhZyBuYW1lIG9mIHRoZSBjdXN0b20gZWxlbWVudCB0byBkZWZpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBjdXN0b21FbGVtZW50ID1cbiAgKHRhZ05hbWU6IHN0cmluZyk6IEN1c3RvbUVsZW1lbnREZWNvcmF0b3IgPT5cbiAgKFxuICAgIGNsYXNzT3JUYXJnZXQ6IEN1c3RvbUVsZW1lbnRDbGFzcyB8IENvbnN0cnVjdG9yPEhUTUxFbGVtZW50PixcbiAgICBjb250ZXh0PzogQ2xhc3NEZWNvcmF0b3JDb250ZXh0PENvbnN0cnVjdG9yPEhUTUxFbGVtZW50Pj5cbiAgKSA9PiB7XG4gICAgaWYgKGNvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplcigoKSA9PiB7XG4gICAgICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZShcbiAgICAgICAgICB0YWdOYW1lLFxuICAgICAgICAgIGNsYXNzT3JUYXJnZXQgYXMgQ3VzdG9tRWxlbWVudENvbnN0cnVjdG9yXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIGNsYXNzT3JUYXJnZXQgYXMgQ3VzdG9tRWxlbWVudENvbnN0cnVjdG9yKTtcbiAgICB9XG4gIH07XG4iLCAiZXhwb3J0KmZyb21cIkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2N1c3RvbS1lbGVtZW50LmpzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jdXN0b20tZWxlbWVudC5qcy5tYXBcbiIsICIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gKi9cblxuLypcbiAqIElNUE9SVEFOVDogRm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0c2lja2xlIGFuZCB0aGUgQ2xvc3VyZSBKUyBjb21waWxlciwgYWxsXG4gKiBwcm9wZXJ0eSBkZWNvcmF0b3JzIChidXQgbm90IGNsYXNzIGRlY29yYXRvcnMpIGluIHRoaXMgZmlsZSB0aGF0IGhhdmVcbiAqIGFuIEBFeHBvcnREZWNvcmF0ZWRJdGVtcyBhbm5vdGF0aW9uIG11c3QgYmUgZGVmaW5lZCBhcyBhIHJlZ3VsYXIgZnVuY3Rpb24sXG4gKiBub3QgYW4gYXJyb3cgZnVuY3Rpb24uXG4gKi9cblxuaW1wb3J0IHtwcm9wZXJ0eX0gZnJvbSAnLi9wcm9wZXJ0eS5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVEZWNsYXJhdGlvbjxUeXBlID0gdW5rbm93bj4ge1xuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGluZGljYXRlcyBpZiBhIHByb3BlcnR5IHNob3VsZCBiZSBjb25zaWRlcmVkIGNoYW5nZWQgd2hlblxuICAgKiBpdCBpcyBzZXQuIFRoZSBmdW5jdGlvbiBzaG91bGQgdGFrZSB0aGUgYG5ld1ZhbHVlYCBhbmQgYG9sZFZhbHVlYCBhbmRcbiAgICogcmV0dXJuIGB0cnVlYCBpZiBhbiB1cGRhdGUgc2hvdWxkIGJlIHJlcXVlc3RlZC5cbiAgICovXG4gIGhhc0NoYW5nZWQ/KHZhbHVlOiBUeXBlLCBvbGRWYWx1ZTogVHlwZSk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIFN0YXRlRGVjbGFyYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxQcm9wZXJ0eURlY2xhcmF0aW9uPFR5cGUgPSB1bmtub3duPiA9XG4gIFN0YXRlRGVjbGFyYXRpb248VHlwZT47XG5cbi8qKlxuICogRGVjbGFyZXMgYSBwcml2YXRlIG9yIHByb3RlY3RlZCByZWFjdGl2ZSBwcm9wZXJ0eSB0aGF0IHN0aWxsIHRyaWdnZXJzXG4gKiB1cGRhdGVzIHRvIHRoZSBlbGVtZW50IHdoZW4gaXQgY2hhbmdlcy4gSXQgZG9lcyBub3QgcmVmbGVjdCBmcm9tIHRoZVxuICogY29ycmVzcG9uZGluZyBhdHRyaWJ1dGUuXG4gKlxuICogUHJvcGVydGllcyBkZWNsYXJlZCB0aGlzIHdheSBtdXN0IG5vdCBiZSB1c2VkIGZyb20gSFRNTCBvciBIVE1MIHRlbXBsYXRpbmdcbiAqIHN5c3RlbXMsIHRoZXkncmUgc29sZWx5IGZvciBwcm9wZXJ0aWVzIGludGVybmFsIHRvIHRoZSBlbGVtZW50LiBUaGVzZVxuICogcHJvcGVydGllcyBtYXkgYmUgcmVuYW1lZCBieSBvcHRpbWl6YXRpb24gdG9vbHMgbGlrZSBjbG9zdXJlIGNvbXBpbGVyLlxuICogQGNhdGVnb3J5IERlY29yYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RhdGUob3B0aW9ucz86IFN0YXRlRGVjbGFyYXRpb24pIHtcbiAgcmV0dXJuIHByb3BlcnR5KHtcbiAgICAuLi5vcHRpb25zLFxuICAgIC8vIEFkZCBib3RoIGBzdGF0ZWAgYW5kIGBhdHRyaWJ1dGVgIGJlY2F1c2Ugd2UgZm91bmQgYSB0aGlyZCBwYXJ0eVxuICAgIC8vIGNvbnRyb2xsZXIgdGhhdCBpcyBrZXlpbmcgb2ZmIG9mIFByb3BlcnR5T3B0aW9ucy5zdGF0ZSB0byBkZXRlcm1pbmVcbiAgICAvLyB3aGV0aGVyIGEgZmllbGQgaXMgYSBwcml2YXRlIGludGVybmFsIHByb3BlcnR5IG9yIG5vdC5cbiAgICBzdGF0ZTogdHJ1ZSxcbiAgICBhdHRyaWJ1dGU6IGZhbHNlLFxuICB9KTtcbn1cbiIsICIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gKi9cblxuLypcbiAqIElNUE9SVEFOVDogRm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0c2lja2xlIGFuZCB0aGUgQ2xvc3VyZSBKUyBjb21waWxlciwgYWxsXG4gKiBwcm9wZXJ0eSBkZWNvcmF0b3JzIChidXQgbm90IGNsYXNzIGRlY29yYXRvcnMpIGluIHRoaXMgZmlsZSB0aGF0IGhhdmVcbiAqIGFuIEBFeHBvcnREZWNvcmF0ZWRJdGVtcyBhbm5vdGF0aW9uIG11c3QgYmUgZGVmaW5lZCBhcyBhIHJlZ3VsYXIgZnVuY3Rpb24sXG4gKiBub3QgYW4gYXJyb3cgZnVuY3Rpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUge1JlYWN0aXZlRWxlbWVudH0gZnJvbSAnLi4vcmVhY3RpdmUtZWxlbWVudC5qcyc7XG5pbXBvcnQgdHlwZSB7SW50ZXJmYWNlfSBmcm9tICcuL2Jhc2UuanMnO1xuXG5leHBvcnQgdHlwZSBFdmVudE9wdGlvbnNEZWNvcmF0b3IgPSB7XG4gIC8vIGxlZ2FjeVxuICAoXG4gICAgcHJvdG86IEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LFxuICAgIG5hbWU6IFByb3BlcnR5S2V5XG4gICAgLy8gTm90ZSBUeXBlU2NyaXB0IHJlcXVpcmVzIHRoZSByZXR1cm4gdHlwZSB0byBiZSBgdm9pZHxhbnlgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgKTogdm9pZCB8IGFueTtcblxuICAvLyBzdGFuZGFyZFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICA8QywgViBleHRlbmRzICh0aGlzOiBDLCAuLi5hcmdzOiBhbnkpID0+IGFueT4oXG4gICAgdmFsdWU6IFYsXG4gICAgX2NvbnRleHQ6IENsYXNzTWV0aG9kRGVjb3JhdG9yQ29udGV4dDxDLCBWPlxuICApOiB2b2lkO1xufTtcblxuLyoqXG4gKiBBZGRzIGV2ZW50IGxpc3RlbmVyIG9wdGlvbnMgdG8gYSBtZXRob2QgdXNlZCBhcyBhbiBldmVudCBsaXN0ZW5lciBpbiBhXG4gKiBsaXQtaHRtbCB0ZW1wbGF0ZS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBBbiBvYmplY3QgdGhhdCBzcGVjaWZpZXMgZXZlbnQgbGlzdGVuZXIgb3B0aW9ucyBhcyBhY2NlcHRlZCBieVxuICogYEV2ZW50VGFyZ2V0I2FkZEV2ZW50TGlzdGVuZXJgIGFuZCBgRXZlbnRUYXJnZXQjcmVtb3ZlRXZlbnRMaXN0ZW5lcmAuXG4gKlxuICogQ3VycmVudCBicm93c2VycyBzdXBwb3J0IHRoZSBgY2FwdHVyZWAsIGBwYXNzaXZlYCwgYW5kIGBvbmNlYCBvcHRpb25zLiBTZWU6XG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRXZlbnRUYXJnZXQvYWRkRXZlbnRMaXN0ZW5lciNQYXJhbWV0ZXJzXG4gKlxuICogYGBgdHNcbiAqIGNsYXNzIE15RWxlbWVudCB7XG4gKiAgIGNsaWNrZWQgPSBmYWxzZTtcbiAqXG4gKiAgIHJlbmRlcigpIHtcbiAqICAgICByZXR1cm4gaHRtbGBcbiAqICAgICAgIDxkaXYgQGNsaWNrPSR7dGhpcy5fb25DbGlja30+XG4gKiAgICAgICAgIDxidXR0b24+PC9idXR0b24+XG4gKiAgICAgICA8L2Rpdj5cbiAqICAgICBgO1xuICogICB9XG4gKlxuICogICBAZXZlbnRPcHRpb25zKHtjYXB0dXJlOiB0cnVlfSlcbiAqICAgX29uQ2xpY2soZSkge1xuICogICAgIHRoaXMuY2xpY2tlZCA9IHRydWU7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICogQGNhdGVnb3J5IERlY29yYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gZXZlbnRPcHRpb25zKFxuICBvcHRpb25zOiBBZGRFdmVudExpc3RlbmVyT3B0aW9uc1xuKTogRXZlbnRPcHRpb25zRGVjb3JhdG9yIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcmV0dXJuICg8QywgViBleHRlbmRzICh0aGlzOiBDLCAuLi5hcmdzOiBhbnkpID0+IGFueT4oXG4gICAgcHJvdG9PclZhbHVlOiBWLFxuICAgIG5hbWVPckNvbnRleHQ6IFByb3BlcnR5S2V5IHwgQ2xhc3NNZXRob2REZWNvcmF0b3JDb250ZXh0PEMsIFY+XG4gICkgPT4ge1xuICAgIGNvbnN0IG1ldGhvZCA9XG4gICAgICB0eXBlb2YgcHJvdG9PclZhbHVlID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gcHJvdG9PclZhbHVlXG4gICAgICAgIDogcHJvdG9PclZhbHVlW25hbWVPckNvbnRleHQgYXMga2V5b2YgUmVhY3RpdmVFbGVtZW50XTtcbiAgICBPYmplY3QuYXNzaWduKG1ldGhvZCwgb3B0aW9ucyk7XG4gIH0pIGFzIEV2ZW50T3B0aW9uc0RlY29yYXRvcjtcbn1cbiIsICIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gKi9cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBwdWJsaWMgaW50ZXJmYWNlIHR5cGUgdGhhdCByZW1vdmVzIHByaXZhdGUgYW5kIHByb3RlY3RlZCBmaWVsZHMuXG4gKiBUaGlzIGFsbG93cyBhY2NlcHRpbmcgb3RoZXJ3aXNlIGluY29tcGF0aWJsZSB2ZXJzaW9ucyBvZiB0aGUgdHlwZSAoZS5nLiBmcm9tXG4gKiBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIHNhbWUgcGFja2FnZSBpbiBgbm9kZV9tb2R1bGVzYCkuXG4gKi9cbmV4cG9ydCB0eXBlIEludGVyZmFjZTxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF06IFRbS107XG59O1xuXG5leHBvcnQgdHlwZSBDb25zdHJ1Y3RvcjxUPiA9IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IFQ7XG59O1xuXG4vKipcbiAqIFdyYXBzIHVwIGEgZmV3IGJlc3QgcHJhY3RpY2VzIHdoZW4gcmV0dXJuaW5nIGEgcHJvcGVydHkgZGVzY3JpcHRvciBmcm9tIGFcbiAqIGRlY29yYXRvci5cbiAqXG4gKiBNYXJrcyB0aGUgZGVmaW5lZCBwcm9wZXJ0eSBhcyBjb25maWd1cmFibGUsIGFuZCBlbnVtZXJhYmxlLCBhbmQgaGFuZGxlc1xuICogdGhlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBhIGJ1c3RlZCBSZWZsZWN0LmRlY29yYXRlIHpvbWJpZWZpbGwgKGUuZy4gaW4gQW5ndWxhclxuICogYXBwcykuXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBkZXNjID0gKFxuICBvYmo6IG9iamVjdCxcbiAgbmFtZTogUHJvcGVydHlLZXkgfCBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yQ29udGV4dDx1bmtub3duLCB1bmtub3duPixcbiAgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yXG4pID0+IHtcbiAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3ZSBrZWVwIHRoZW0gY29uZmlndXJhYmxlIGFuZCBlbnVtZXJhYmxlLlxuICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7XG4gIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IHRydWU7XG4gIGlmIChcbiAgICAvLyBXZSBjaGVjayBmb3IgUmVmbGVjdC5kZWNvcmF0ZSBlYWNoIHRpbWUsIGluIGNhc2UgdGhlIHpvbWJpZWZpbGxcbiAgICAvLyBpcyBhcHBsaWVkIHZpYSBsYXp5IGxvYWRpbmcgc29tZSBBbmd1bGFyIGNvZGUuXG4gICAgKFJlZmxlY3QgYXMgdHlwZW9mIFJlZmxlY3QgJiB7ZGVjb3JhdGU/OiB1bmtub3dufSkuZGVjb3JhdGUgJiZcbiAgICB0eXBlb2YgbmFtZSAhPT0gJ29iamVjdCdcbiAgKSB7XG4gICAgLy8gSWYgd2UncmUgY2FsbGVkIGFzIGEgbGVnYWN5IGRlY29yYXRvciwgYW5kIFJlZmxlY3QuZGVjb3JhdGUgaXMgcHJlc2VudFxuICAgIC8vIHRoZW4gd2UgaGF2ZSBubyBndWFyYW50ZWVzIHRoYXQgdGhlIHJldHVybmVkIGRlc2NyaXB0b3Igd2lsbCBiZVxuICAgIC8vIGRlZmluZWQgb24gdGhlIGNsYXNzLCBzbyB3ZSBtdXN0IGFwcGx5IGl0IGRpcmVjdGx5IG91cnNlbHZlcy5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIG5hbWUsIGRlc2NyaXB0b3IpO1xuICB9XG4gIHJldHVybiBkZXNjcmlwdG9yO1xufTtcbiIsICIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gKi9cblxuLypcbiAqIElNUE9SVEFOVDogRm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0c2lja2xlIGFuZCB0aGUgQ2xvc3VyZSBKUyBjb21waWxlciwgYWxsXG4gKiBwcm9wZXJ0eSBkZWNvcmF0b3JzIChidXQgbm90IGNsYXNzIGRlY29yYXRvcnMpIGluIHRoaXMgZmlsZSB0aGF0IGhhdmVcbiAqIGFuIEBFeHBvcnREZWNvcmF0ZWRJdGVtcyBhbm5vdGF0aW9uIG11c3QgYmUgZGVmaW5lZCBhcyBhIHJlZ3VsYXIgZnVuY3Rpb24sXG4gKiBub3QgYW4gYXJyb3cgZnVuY3Rpb24uXG4gKi9cbmltcG9ydCB0eXBlIHtSZWFjdGl2ZUVsZW1lbnR9IGZyb20gJy4uL3JlYWN0aXZlLWVsZW1lbnQuanMnO1xuaW1wb3J0IHtkZXNjLCB0eXBlIEludGVyZmFjZX0gZnJvbSAnLi9iYXNlLmpzJztcblxuY29uc3QgREVWX01PREUgPSB0cnVlO1xuXG5sZXQgaXNzdWVXYXJuaW5nOiAoY29kZTogc3RyaW5nLCB3YXJuaW5nOiBzdHJpbmcpID0+IHZvaWQ7XG5cbmlmIChERVZfTU9ERSkge1xuICAvLyBFbnN1cmUgd2FybmluZ3MgYXJlIGlzc3VlZCBvbmx5IDF4LCBldmVuIGlmIG11bHRpcGxlIHZlcnNpb25zIG9mIExpdFxuICAvLyBhcmUgbG9hZGVkLlxuICBnbG9iYWxUaGlzLmxpdElzc3VlZFdhcm5pbmdzID8/PSBuZXcgU2V0KCk7XG5cbiAgLyoqXG4gICAqIElzc3VlIGEgd2FybmluZyBpZiB3ZSBoYXZlbid0IGFscmVhZHksIGJhc2VkIGVpdGhlciBvbiBgY29kZWAgb3IgYHdhcm5pbmdgLlxuICAgKiBXYXJuaW5ncyBhcmUgZGlzYWJsZWQgYXV0b21hdGljYWxseSBvbmx5IGJ5IGB3YXJuaW5nYDsgZGlzYWJsaW5nIHZpYSBgY29kZWBcbiAgICogY2FuIGJlIGRvbmUgYnkgdXNlcnMuXG4gICAqL1xuICBpc3N1ZVdhcm5pbmcgPSAoY29kZTogc3RyaW5nLCB3YXJuaW5nOiBzdHJpbmcpID0+IHtcbiAgICB3YXJuaW5nICs9IGNvZGVcbiAgICAgID8gYCBTZWUgaHR0cHM6Ly9saXQuZGV2L21zZy8ke2NvZGV9IGZvciBtb3JlIGluZm9ybWF0aW9uLmBcbiAgICAgIDogJyc7XG4gICAgaWYgKFxuICAgICAgIWdsb2JhbFRoaXMubGl0SXNzdWVkV2FybmluZ3MhLmhhcyh3YXJuaW5nKSAmJlxuICAgICAgIWdsb2JhbFRoaXMubGl0SXNzdWVkV2FybmluZ3MhLmhhcyhjb2RlKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKHdhcm5pbmcpO1xuICAgICAgZ2xvYmFsVGhpcy5saXRJc3N1ZWRXYXJuaW5ncyEuYWRkKHdhcm5pbmcpO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgUXVlcnlEZWNvcmF0b3IgPSB7XG4gIC8vIGxlZ2FjeVxuICAoXG4gICAgcHJvdG86IEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LFxuICAgIG5hbWU6IFByb3BlcnR5S2V5LFxuICAgIGRlc2NyaXB0b3I/OiBQcm9wZXJ0eURlc2NyaXB0b3JcbiAgICAvLyBOb3RlIFR5cGVTY3JpcHQgcmVxdWlyZXMgdGhlIHJldHVybiB0eXBlIHRvIGJlIGB2b2lkfGFueWBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICApOiB2b2lkIHwgYW55O1xuXG4gIC8vIHN0YW5kYXJkXG4gIDxDIGV4dGVuZHMgSW50ZXJmYWNlPFJlYWN0aXZlRWxlbWVudD4sIFYgZXh0ZW5kcyBFbGVtZW50IHwgbnVsbD4oXG4gICAgdmFsdWU6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4sXG4gICAgY29udGV4dDogQ2xhc3NBY2Nlc3NvckRlY29yYXRvckNvbnRleHQ8QywgVj5cbiAgKTogQ2xhc3NBY2Nlc3NvckRlY29yYXRvclJlc3VsdDxDLCBWPjtcbn07XG5cbi8qKlxuICogQSBwcm9wZXJ0eSBkZWNvcmF0b3IgdGhhdCBjb252ZXJ0cyBhIGNsYXNzIHByb3BlcnR5IGludG8gYSBnZXR0ZXIgdGhhdFxuICogZXhlY3V0ZXMgYSBxdWVyeVNlbGVjdG9yIG9uIHRoZSBlbGVtZW50J3MgcmVuZGVyUm9vdC5cbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3IgQSBET01TdHJpbmcgY29udGFpbmluZyBvbmUgb3IgbW9yZSBzZWxlY3RvcnMgdG8gbWF0Y2guXG4gKiBAcGFyYW0gY2FjaGUgQW4gb3B0aW9uYWwgYm9vbGVhbiB3aGljaCB3aGVuIHRydWUgcGVyZm9ybXMgdGhlIERPTSBxdWVyeSBvbmx5XG4gKiAgICAgb25jZSBhbmQgY2FjaGVzIHRoZSByZXN1bHQuXG4gKlxuICogU2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRG9jdW1lbnQvcXVlcnlTZWxlY3RvclxuICpcbiAqIGBgYHRzXG4gKiBjbGFzcyBNeUVsZW1lbnQge1xuICogICBAcXVlcnkoJyNmaXJzdCcpXG4gKiAgIGZpcnN0OiBIVE1MRGl2RWxlbWVudDtcbiAqXG4gKiAgIHJlbmRlcigpIHtcbiAqICAgICByZXR1cm4gaHRtbGBcbiAqICAgICAgIDxkaXYgaWQ9XCJmaXJzdFwiPjwvZGl2PlxuICogICAgICAgPGRpdiBpZD1cInNlY29uZFwiPjwvZGl2PlxuICogICAgIGA7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICogQGNhdGVnb3J5IERlY29yYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gcXVlcnkoc2VsZWN0b3I6IHN0cmluZywgY2FjaGU/OiBib29sZWFuKTogUXVlcnlEZWNvcmF0b3Ige1xuICByZXR1cm4gKDxDIGV4dGVuZHMgSW50ZXJmYWNlPFJlYWN0aXZlRWxlbWVudD4sIFYgZXh0ZW5kcyBFbGVtZW50IHwgbnVsbD4oXG4gICAgcHJvdG9PclRhcmdldDogQ2xhc3NBY2Nlc3NvckRlY29yYXRvclRhcmdldDxDLCBWPixcbiAgICBuYW1lT3JDb250ZXh0OiBQcm9wZXJ0eUtleSB8IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PEMsIFY+LFxuICAgIGRlc2NyaXB0b3I/OiBQcm9wZXJ0eURlc2NyaXB0b3JcbiAgKSA9PiB7XG4gICAgY29uc3QgZG9RdWVyeSA9IChlbDogSW50ZXJmYWNlPFJlYWN0aXZlRWxlbWVudD4pOiBWID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IChlbC5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSA/PyBudWxsKSBhcyBWO1xuICAgICAgaWYgKERFVl9NT0RFICYmIHJlc3VsdCA9PT0gbnVsbCAmJiBjYWNoZSAmJiAhZWwuaGFzVXBkYXRlZCkge1xuICAgICAgICBjb25zdCBuYW1lID1cbiAgICAgICAgICB0eXBlb2YgbmFtZU9yQ29udGV4dCA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgID8gbmFtZU9yQ29udGV4dC5uYW1lXG4gICAgICAgICAgICA6IG5hbWVPckNvbnRleHQ7XG4gICAgICAgIGlzc3VlV2FybmluZyhcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBgQHF1ZXJ5J2QgZmllbGQgJHtKU09OLnN0cmluZ2lmeShTdHJpbmcobmFtZSkpfSB3aXRoIHRoZSAnY2FjaGUnIGAgK1xuICAgICAgICAgICAgYGZsYWcgc2V0IGZvciBzZWxlY3RvciAnJHtzZWxlY3Rvcn0nIGhhcyBiZWVuIGFjY2Vzc2VkIGJlZm9yZSBgICtcbiAgICAgICAgICAgIGB0aGUgZmlyc3QgdXBkYXRlIGFuZCByZXR1cm5lZCBudWxsLiBUaGlzIGlzIGV4cGVjdGVkIGlmIHRoZSBgICtcbiAgICAgICAgICAgIGByZW5kZXJSb290IHRyZWUgaGFzIG5vdCBiZWVuIHByb3ZpZGVkIGJlZm9yZWhhbmQgKGUuZy4gdmlhIGAgK1xuICAgICAgICAgICAgYERlY2xhcmF0aXZlIFNoYWRvdyBET00pLiBUaGVyZWZvcmUgdGhlIHZhbHVlIGhhc24ndCBiZWVuIGNhY2hlZC5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICAvLyBUT0RPOiBpZiB3ZSB3YW50IHRvIGFsbG93IHVzZXJzIHRvIGFzc2VydCB0aGF0IHRoZSBxdWVyeSB3aWxsIG5ldmVyXG4gICAgICAvLyByZXR1cm4gbnVsbCwgd2UgbmVlZCBhIG5ldyBvcHRpb24gYW5kIHRvIHRocm93IGhlcmUgaWYgdGhlIHJlc3VsdFxuICAgICAgLy8gaXMgbnVsbC5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgIC8vIEFjY2Vzc29ycyB0byB3cmFwIGZyb20gZWl0aGVyOlxuICAgICAgLy8gICAxLiBUaGUgZGVjb3JhdG9yIHRhcmdldCwgaW4gdGhlIGNhc2Ugb2Ygc3RhbmRhcmQgZGVjb3JhdG9yc1xuICAgICAgLy8gICAyLiBUaGUgcHJvcGVydHkgZGVzY3JpcHRvciwgaW4gdGhlIGNhc2Ugb2YgZXhwZXJpbWVudGFsIGRlY29yYXRvcnNcbiAgICAgIC8vICAgICAgb24gYXV0by1hY2Nlc3NvcnMuXG4gICAgICAvLyAgIDMuIEZ1bmN0aW9ucyB0aGF0IGFjY2VzcyBvdXIgb3duIGNhY2hlLWtleSBwcm9wZXJ0eSBvbiB0aGUgaW5zdGFuY2UsXG4gICAgICAvLyAgICAgIGluIHRoZSBjYXNlIG9mIGV4cGVyaW1lbnRhbCBkZWNvcmF0b3JzIG9uIGZpZWxkcy5cbiAgICAgIGNvbnN0IHtnZXQsIHNldH0gPVxuICAgICAgICB0eXBlb2YgbmFtZU9yQ29udGV4dCA9PT0gJ29iamVjdCdcbiAgICAgICAgICA/IHByb3RvT3JUYXJnZXRcbiAgICAgICAgICA6IChkZXNjcmlwdG9yID8/XG4gICAgICAgICAgICAoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBrZXkgPSBERVZfTU9ERVxuICAgICAgICAgICAgICAgID8gU3ltYm9sKGAke1N0cmluZyhuYW1lT3JDb250ZXh0KX0gKEBxdWVyeSgpIGNhY2hlKWApXG4gICAgICAgICAgICAgICAgOiBTeW1ib2woKTtcbiAgICAgICAgICAgICAgdHlwZSBXaXRoQ2FjaGUgPSBSZWFjdGl2ZUVsZW1lbnQgJiB7XG4gICAgICAgICAgICAgICAgW2tleTogc3ltYm9sXTogRWxlbWVudCB8IG51bGw7XG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZ2V0KCkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzIGFzIFdpdGhDYWNoZSlba2V5XTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldCh2KSB7XG4gICAgICAgICAgICAgICAgICAodGhpcyBhcyBXaXRoQ2FjaGUpW2tleV0gPSB2O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSgpKTtcbiAgICAgIHJldHVybiBkZXNjKHByb3RvT3JUYXJnZXQsIG5hbWVPckNvbnRleHQsIHtcbiAgICAgICAgZ2V0KHRoaXM6IFJlYWN0aXZlRWxlbWVudCk6IFYge1xuICAgICAgICAgIGxldCByZXN1bHQ6IFYgPSBnZXQhLmNhbGwodGhpcyk7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBkb1F1ZXJ5KHRoaXMpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCB8fCB0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgICAgICAgICAgc2V0IS5jYWxsKHRoaXMsIHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhpcyBvYmplY3Qgd29ya3MgYXMgdGhlIHJldHVybiB0eXBlIGZvciBib3RoIHN0YW5kYXJkIGFuZFxuICAgICAgLy8gZXhwZXJpbWVudGFsIGRlY29yYXRvcnMuXG4gICAgICByZXR1cm4gZGVzYyhwcm90b09yVGFyZ2V0LCBuYW1lT3JDb250ZXh0LCB7XG4gICAgICAgIGdldCh0aGlzOiBSZWFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICByZXR1cm4gZG9RdWVyeSh0aGlzKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSkgYXMgUXVlcnlEZWNvcmF0b3I7XG59XG4iLCAiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5cbi8qXG4gKiBJTVBPUlRBTlQ6IEZvciBjb21wYXRpYmlsaXR5IHdpdGggdHNpY2tsZSBhbmQgdGhlIENsb3N1cmUgSlMgY29tcGlsZXIsIGFsbFxuICogcHJvcGVydHkgZGVjb3JhdG9ycyAoYnV0IG5vdCBjbGFzcyBkZWNvcmF0b3JzKSBpbiB0aGlzIGZpbGUgdGhhdCBoYXZlXG4gKiBhbiBARXhwb3J0RGVjb3JhdGVkSXRlbXMgYW5ub3RhdGlvbiBtdXN0IGJlIGRlZmluZWQgYXMgYSByZWd1bGFyIGZ1bmN0aW9uLFxuICogbm90IGFuIGFycm93IGZ1bmN0aW9uLlxuICovXG5pbXBvcnQgdHlwZSB7UmVhY3RpdmVFbGVtZW50fSBmcm9tICcuLi9yZWFjdGl2ZS1lbGVtZW50LmpzJztcbmltcG9ydCB7ZGVzYywgdHlwZSBJbnRlcmZhY2V9IGZyb20gJy4vYmFzZS5qcyc7XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5QWxsRGVjb3JhdG9yID0ge1xuICAvLyBsZWdhY3lcbiAgKFxuICAgIHByb3RvOiBJbnRlcmZhY2U8UmVhY3RpdmVFbGVtZW50PixcbiAgICBuYW1lOiBQcm9wZXJ0eUtleSxcbiAgICBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yXG4gICAgLy8gTm90ZSBUeXBlU2NyaXB0IHJlcXVpcmVzIHRoZSByZXR1cm4gdHlwZSB0byBiZSBgdm9pZHxhbnlgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgKTogdm9pZCB8IGFueTtcblxuICAvLyBzdGFuZGFyZFxuICA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWIGV4dGVuZHMgTm9kZUxpc3Q+KFxuICAgIHZhbHVlOiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+LFxuICAgIGNvbnRleHQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PEMsIFY+XG4gICk6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JSZXN1bHQ8QywgVj47XG59O1xuXG4vLyBTaGFyZWQgZnJhZ21lbnQgdXNlZCB0byBnZW5lcmF0ZSBlbXB0eSBOb2RlTGlzdHMgd2hlbiBhIHJlbmRlciByb290IGlzXG4vLyB1bmRlZmluZWRcbmxldCBmcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudDtcblxuLyoqXG4gKiBBIHByb3BlcnR5IGRlY29yYXRvciB0aGF0IGNvbnZlcnRzIGEgY2xhc3MgcHJvcGVydHkgaW50byBhIGdldHRlclxuICogdGhhdCBleGVjdXRlcyBhIHF1ZXJ5U2VsZWN0b3JBbGwgb24gdGhlIGVsZW1lbnQncyByZW5kZXJSb290LlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciBBIERPTVN0cmluZyBjb250YWluaW5nIG9uZSBvciBtb3JlIHNlbGVjdG9ycyB0byBtYXRjaC5cbiAqXG4gKiBTZWU6XG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRG9jdW1lbnQvcXVlcnlTZWxlY3RvckFsbFxuICpcbiAqIGBgYHRzXG4gKiBjbGFzcyBNeUVsZW1lbnQge1xuICogICBAcXVlcnlBbGwoJ2RpdicpXG4gKiAgIGRpdnM6IE5vZGVMaXN0T2Y8SFRNTERpdkVsZW1lbnQ+O1xuICpcbiAqICAgcmVuZGVyKCkge1xuICogICAgIHJldHVybiBodG1sYFxuICogICAgICAgPGRpdiBpZD1cImZpcnN0XCI+PC9kaXY+XG4gKiAgICAgICA8ZGl2IGlkPVwic2Vjb25kXCI+PC9kaXY+XG4gKiAgICAgYDtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeUFsbChzZWxlY3Rvcjogc3RyaW5nKTogUXVlcnlBbGxEZWNvcmF0b3Ige1xuICByZXR1cm4gKChcbiAgICBvYmo6IG9iamVjdCxcbiAgICBuYW1lOiBQcm9wZXJ0eUtleSB8IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PHVua25vd24sIHVua25vd24+XG4gICkgPT4ge1xuICAgIHJldHVybiBkZXNjKG9iaiwgbmFtZSwge1xuICAgICAgZ2V0KHRoaXM6IFJlYWN0aXZlRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPVxuICAgICAgICAgIHRoaXMucmVuZGVyUm9vdCA/PyAoZnJhZ21lbnQgPz89IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSk7XG4gICAgICAgIHJldHVybiBjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KSBhcyBRdWVyeUFsbERlY29yYXRvcjtcbn1cbiIsICIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gKi9cblxuLypcbiAqIElNUE9SVEFOVDogRm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0c2lja2xlIGFuZCB0aGUgQ2xvc3VyZSBKUyBjb21waWxlciwgYWxsXG4gKiBwcm9wZXJ0eSBkZWNvcmF0b3JzIChidXQgbm90IGNsYXNzIGRlY29yYXRvcnMpIGluIHRoaXMgZmlsZSB0aGF0IGhhdmVcbiAqIGFuIEBFeHBvcnREZWNvcmF0ZWRJdGVtcyBhbm5vdGF0aW9uIG11c3QgYmUgZGVmaW5lZCBhcyBhIHJlZ3VsYXIgZnVuY3Rpb24sXG4gKiBub3QgYW4gYXJyb3cgZnVuY3Rpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUge1JlYWN0aXZlRWxlbWVudH0gZnJvbSAnLi4vcmVhY3RpdmUtZWxlbWVudC5qcyc7XG5pbXBvcnQge2Rlc2MsIHR5cGUgSW50ZXJmYWNlfSBmcm9tICcuL2Jhc2UuanMnO1xuXG5leHBvcnQgdHlwZSBRdWVyeUFzeW5jRGVjb3JhdG9yID0ge1xuICAvLyBsZWdhY3lcbiAgKFxuICAgIHByb3RvOiBJbnRlcmZhY2U8UmVhY3RpdmVFbGVtZW50PixcbiAgICBuYW1lOiBQcm9wZXJ0eUtleSxcbiAgICBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yXG4gICAgLy8gTm90ZSBUeXBlU2NyaXB0IHJlcXVpcmVzIHRoZSByZXR1cm4gdHlwZSB0byBiZSBgdm9pZHxhbnlgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgKTogdm9pZCB8IGFueTtcblxuICAvLyBzdGFuZGFyZFxuICA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWIGV4dGVuZHMgUHJvbWlzZTxFbGVtZW50IHwgbnVsbD4+KFxuICAgIHZhbHVlOiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+LFxuICAgIGNvbnRleHQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PEMsIFY+XG4gICk6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JSZXN1bHQ8QywgVj47XG59O1xuXG4vLyBOb3RlLCBpbiB0aGUgZnV0dXJlLCB3ZSBtYXkgZXh0ZW5kIHRoaXMgZGVjb3JhdG9yIHRvIHN1cHBvcnQgdGhlIHVzZSBjYXNlXG4vLyB3aGVyZSB0aGUgcXVlcmllZCBlbGVtZW50IG1heSBuZWVkIHRvIGRvIHdvcmsgdG8gYmVjb21lIHJlYWR5IHRvIGludGVyYWN0XG4vLyB3aXRoIChlLmcuIGxvYWQgc29tZSBpbXBsZW1lbnRhdGlvbiBjb2RlKS4gSWYgc28sIHdlIG1pZ2h0IGVsZWN0IHRvXG4vLyBhZGQgYSBzZWNvbmQgYXJndW1lbnQgZGVmaW5pbmcgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBydW4gdG8gbWFrZSB0aGVcbi8vIHF1ZXJpZWQgZWxlbWVudCBsb2FkZWQvdXBkYXRlZC9yZWFkeS5cbi8qKlxuICogQSBwcm9wZXJ0eSBkZWNvcmF0b3IgdGhhdCBjb252ZXJ0cyBhIGNsYXNzIHByb3BlcnR5IGludG8gYSBnZXR0ZXIgdGhhdFxuICogcmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzdWx0IG9mIGEgcXVlcnlTZWxlY3RvciBvbiB0aGVcbiAqIGVsZW1lbnQncyByZW5kZXJSb290IGRvbmUgYWZ0ZXIgdGhlIGVsZW1lbnQncyBgdXBkYXRlQ29tcGxldGVgIHByb21pc2VcbiAqIHJlc29sdmVzLiBXaGVuIHRoZSBxdWVyaWVkIHByb3BlcnR5IG1heSBjaGFuZ2Ugd2l0aCBlbGVtZW50IHN0YXRlLCB0aGlzXG4gKiBkZWNvcmF0b3IgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiByZXF1aXJpbmcgdXNlcnMgdG8gYXdhaXQgdGhlXG4gKiBgdXBkYXRlQ29tcGxldGVgIGJlZm9yZSBhY2Nlc3NpbmcgdGhlIHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciBBIERPTVN0cmluZyBjb250YWluaW5nIG9uZSBvciBtb3JlIHNlbGVjdG9ycyB0byBtYXRjaC5cbiAqXG4gKiBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9Eb2N1bWVudC9xdWVyeVNlbGVjdG9yXG4gKlxuICogYGBgdHNcbiAqIGNsYXNzIE15RWxlbWVudCB7XG4gKiAgIEBxdWVyeUFzeW5jKCcjZmlyc3QnKVxuICogICBmaXJzdDogUHJvbWlzZTxIVE1MRGl2RWxlbWVudD47XG4gKlxuICogICByZW5kZXIoKSB7XG4gKiAgICAgcmV0dXJuIGh0bWxgXG4gKiAgICAgICA8ZGl2IGlkPVwiZmlyc3RcIj48L2Rpdj5cbiAqICAgICAgIDxkaXYgaWQ9XCJzZWNvbmRcIj48L2Rpdj5cbiAqICAgICBgO1xuICogICB9XG4gKiB9XG4gKlxuICogLy8gZXh0ZXJuYWwgdXNhZ2VcbiAqIGFzeW5jIGRvU29tZXRoaW5nV2l0aEZpcnN0KCkge1xuICogIChhd2FpdCBhTXlFbGVtZW50LmZpcnN0KS5kb1NvbWV0aGluZygpO1xuICogfVxuICogYGBgXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeUFzeW5jKHNlbGVjdG9yOiBzdHJpbmcpIHtcbiAgcmV0dXJuICgoXG4gICAgb2JqOiBvYmplY3QsXG4gICAgbmFtZTogUHJvcGVydHlLZXkgfCBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yQ29udGV4dDx1bmtub3duLCB1bmtub3duPlxuICApID0+IHtcbiAgICByZXR1cm4gZGVzYyhvYmosIG5hbWUsIHtcbiAgICAgIGFzeW5jIGdldCh0aGlzOiBSZWFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihzZWxlY3RvcikgPz8gbnVsbDtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pIGFzIFF1ZXJ5QXN5bmNEZWNvcmF0b3I7XG59XG4iLCAiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjEgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5cbi8qXG4gKiBJTVBPUlRBTlQ6IEZvciBjb21wYXRpYmlsaXR5IHdpdGggdHNpY2tsZSBhbmQgdGhlIENsb3N1cmUgSlMgY29tcGlsZXIsIGFsbFxuICogcHJvcGVydHkgZGVjb3JhdG9ycyAoYnV0IG5vdCBjbGFzcyBkZWNvcmF0b3JzKSBpbiB0aGlzIGZpbGUgdGhhdCBoYXZlXG4gKiBhbiBARXhwb3J0RGVjb3JhdGVkSXRlbXMgYW5ub3RhdGlvbiBtdXN0IGJlIGRlZmluZWQgYXMgYSByZWd1bGFyIGZ1bmN0aW9uLFxuICogbm90IGFuIGFycm93IGZ1bmN0aW9uLlxuICovXG5cbmltcG9ydCB0eXBlIHtSZWFjdGl2ZUVsZW1lbnR9IGZyb20gJy4uL3JlYWN0aXZlLWVsZW1lbnQuanMnO1xuaW1wb3J0IHR5cGUge1F1ZXJ5QXNzaWduZWROb2Rlc09wdGlvbnN9IGZyb20gJy4vcXVlcnktYXNzaWduZWQtbm9kZXMuanMnO1xuaW1wb3J0IHtkZXNjLCB0eXBlIEludGVyZmFjZX0gZnJvbSAnLi9iYXNlLmpzJztcblxuZXhwb3J0IHR5cGUgUXVlcnlBc3NpZ25lZEVsZW1lbnRzRGVjb3JhdG9yID0ge1xuICAvLyBsZWdhY3lcbiAgKFxuICAgIHByb3RvOiBJbnRlcmZhY2U8UmVhY3RpdmVFbGVtZW50PixcbiAgICBuYW1lOiBQcm9wZXJ0eUtleSxcbiAgICBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yXG4gICAgLy8gTm90ZSBUeXBlU2NyaXB0IHJlcXVpcmVzIHRoZSByZXR1cm4gdHlwZSB0byBiZSBgdm9pZHxhbnlgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgKTogdm9pZCB8IGFueTtcblxuICAvLyBzdGFuZGFyZFxuICA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWIGV4dGVuZHMgQXJyYXk8RWxlbWVudD4+KFxuICAgIHZhbHVlOiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+LFxuICAgIGNvbnRleHQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PEMsIFY+XG4gICk6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JSZXN1bHQ8QywgVj47XG59O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSB7QGxpbmtjb2RlIHF1ZXJ5QXNzaWduZWRFbGVtZW50c30gZGVjb3JhdG9yLiBFeHRlbmRzIHRoZVxuICogb3B0aW9ucyB0aGF0IGNhbiBiZSBwYXNzZWQgaW50b1xuICogW0hUTUxTbG90RWxlbWVudC5hc3NpZ25lZEVsZW1lbnRzXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvSFRNTFNsb3RFbGVtZW50L2Fzc2lnbmVkRWxlbWVudHMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5QXNzaWduZWRFbGVtZW50c09wdGlvbnNcbiAgZXh0ZW5kcyBRdWVyeUFzc2lnbmVkTm9kZXNPcHRpb25zIHtcbiAgLyoqXG4gICAqIENTUyBzZWxlY3RvciB1c2VkIHRvIGZpbHRlciB0aGUgZWxlbWVudHMgcmV0dXJuZWQuIEZvciBleGFtcGxlLCBhIHNlbGVjdG9yXG4gICAqIG9mIGBcIi5pdGVtXCJgIHdpbGwgb25seSBpbmNsdWRlIGVsZW1lbnRzIHdpdGggdGhlIGBpdGVtYCBjbGFzcy5cbiAgICovXG4gIHNlbGVjdG9yPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcHJvcGVydHkgZGVjb3JhdG9yIHRoYXQgY29udmVydHMgYSBjbGFzcyBwcm9wZXJ0eSBpbnRvIGEgZ2V0dGVyIHRoYXRcbiAqIHJldHVybnMgdGhlIGBhc3NpZ25lZEVsZW1lbnRzYCBvZiB0aGUgZ2l2ZW4gYHNsb3RgLiBQcm92aWRlcyBhIGRlY2xhcmF0aXZlXG4gKiB3YXkgdG8gdXNlXG4gKiBbYEhUTUxTbG90RWxlbWVudC5hc3NpZ25lZEVsZW1lbnRzYF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hUTUxTbG90RWxlbWVudC9hc3NpZ25lZEVsZW1lbnRzKS5cbiAqXG4gKiBDYW4gYmUgcGFzc2VkIGFuIG9wdGlvbmFsIHtAbGlua2NvZGUgUXVlcnlBc3NpZ25lZEVsZW1lbnRzT3B0aW9uc30gb2JqZWN0LlxuICpcbiAqIEV4YW1wbGUgdXNhZ2U6XG4gKiBgYGB0c1xuICogY2xhc3MgTXlFbGVtZW50IHtcbiAqICAgQHF1ZXJ5QXNzaWduZWRFbGVtZW50cyh7IHNsb3Q6ICdsaXN0JyB9KVxuICogICBsaXN0SXRlbXMhOiBBcnJheTxIVE1MRWxlbWVudD47XG4gKiAgIEBxdWVyeUFzc2lnbmVkRWxlbWVudHMoKVxuICogICB1bm5hbWVkU2xvdEVscyE6IEFycmF5PEhUTUxFbGVtZW50PjtcbiAqXG4gKiAgIHJlbmRlcigpIHtcbiAqICAgICByZXR1cm4gaHRtbGBcbiAqICAgICAgIDxzbG90IG5hbWU9XCJsaXN0XCI+PC9zbG90PlxuICogICAgICAgPHNsb3Q+PC9zbG90PlxuICogICAgIGA7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIE5vdGUsIHRoZSB0eXBlIG9mIHRoaXMgcHJvcGVydHkgc2hvdWxkIGJlIGFubm90YXRlZCBhcyBgQXJyYXk8SFRNTEVsZW1lbnQ+YC5cbiAqXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeUFzc2lnbmVkRWxlbWVudHMoXG4gIG9wdGlvbnM/OiBRdWVyeUFzc2lnbmVkRWxlbWVudHNPcHRpb25zXG4pOiBRdWVyeUFzc2lnbmVkRWxlbWVudHNEZWNvcmF0b3Ige1xuICByZXR1cm4gKDxWIGV4dGVuZHMgQXJyYXk8RWxlbWVudD4+KFxuICAgIG9iajogb2JqZWN0LFxuICAgIG5hbWU6IFByb3BlcnR5S2V5IHwgQ2xhc3NBY2Nlc3NvckRlY29yYXRvckNvbnRleHQ8dW5rbm93biwgdW5rbm93bj5cbiAgKSA9PiB7XG4gICAgY29uc3Qge3Nsb3QsIHNlbGVjdG9yfSA9IG9wdGlvbnMgPz8ge307XG4gICAgY29uc3Qgc2xvdFNlbGVjdG9yID0gYHNsb3Qke3Nsb3QgPyBgW25hbWU9JHtzbG90fV1gIDogJzpub3QoW25hbWVdKSd9YDtcbiAgICByZXR1cm4gZGVzYyhvYmosIG5hbWUsIHtcbiAgICAgIGdldCh0aGlzOiBSZWFjdGl2ZUVsZW1lbnQpOiBWIHtcbiAgICAgICAgY29uc3Qgc2xvdEVsID1cbiAgICAgICAgICB0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3I8SFRNTFNsb3RFbGVtZW50PihzbG90U2VsZWN0b3IpO1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9IHNsb3RFbD8uYXNzaWduZWRFbGVtZW50cyhvcHRpb25zKSA/PyBbXTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBzZWxlY3RvciA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IGVsZW1lbnRzXG4gICAgICAgICAgICA6IGVsZW1lbnRzLmZpbHRlcigobm9kZSkgPT4gbm9kZS5tYXRjaGVzKHNlbGVjdG9yKSlcbiAgICAgICAgKSBhcyBWO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSkgYXMgUXVlcnlBc3NpZ25lZEVsZW1lbnRzRGVjb3JhdG9yO1xufVxuIiwgIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2VcbiAqL1xuXG4vKlxuICogSU1QT1JUQU5UOiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRzaWNrbGUgYW5kIHRoZSBDbG9zdXJlIEpTIGNvbXBpbGVyLCBhbGxcbiAqIHByb3BlcnR5IGRlY29yYXRvcnMgKGJ1dCBub3QgY2xhc3MgZGVjb3JhdG9ycykgaW4gdGhpcyBmaWxlIHRoYXQgaGF2ZVxuICogYW4gQEV4cG9ydERlY29yYXRlZEl0ZW1zIGFubm90YXRpb24gbXVzdCBiZSBkZWZpbmVkIGFzIGEgcmVndWxhciBmdW5jdGlvbixcbiAqIG5vdCBhbiBhcnJvdyBmdW5jdGlvbi5cbiAqL1xuaW1wb3J0IHR5cGUge1JlYWN0aXZlRWxlbWVudH0gZnJvbSAnLi4vcmVhY3RpdmUtZWxlbWVudC5qcyc7XG5pbXBvcnQge2Rlc2MsIHR5cGUgSW50ZXJmYWNlfSBmcm9tICcuL2Jhc2UuanMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSB7QGxpbmtjb2RlIHF1ZXJ5QXNzaWduZWROb2Rlc30gZGVjb3JhdG9yLiBFeHRlbmRzIHRoZSBvcHRpb25zXG4gKiB0aGF0IGNhbiBiZSBwYXNzZWQgaW50byBbSFRNTFNsb3RFbGVtZW50LmFzc2lnbmVkTm9kZXNdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IVE1MU2xvdEVsZW1lbnQvYXNzaWduZWROb2RlcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlBc3NpZ25lZE5vZGVzT3B0aW9ucyBleHRlbmRzIEFzc2lnbmVkTm9kZXNPcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHNsb3QgdG8gcXVlcnkuIExlYXZlIGVtcHR5IGZvciB0aGUgZGVmYXVsdCBzbG90LlxuICAgKi9cbiAgc2xvdD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUXVlcnlBc3NpZ25lZE5vZGVzRGVjb3JhdG9yID0ge1xuICAvLyBsZWdhY3lcbiAgKFxuICAgIHByb3RvOiBJbnRlcmZhY2U8UmVhY3RpdmVFbGVtZW50PixcbiAgICBuYW1lOiBQcm9wZXJ0eUtleSxcbiAgICBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yXG4gICAgLy8gTm90ZSBUeXBlU2NyaXB0IHJlcXVpcmVzIHRoZSByZXR1cm4gdHlwZSB0byBiZSBgdm9pZHxhbnlgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgKTogdm9pZCB8IGFueTtcblxuICAvLyBzdGFuZGFyZFxuICA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWIGV4dGVuZHMgQXJyYXk8Tm9kZT4+KFxuICAgIHZhbHVlOiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+LFxuICAgIGNvbnRleHQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PEMsIFY+XG4gICk6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JSZXN1bHQ8QywgVj47XG59O1xuXG4vKipcbiAqIEEgcHJvcGVydHkgZGVjb3JhdG9yIHRoYXQgY29udmVydHMgYSBjbGFzcyBwcm9wZXJ0eSBpbnRvIGEgZ2V0dGVyIHRoYXRcbiAqIHJldHVybnMgdGhlIGBhc3NpZ25lZE5vZGVzYCBvZiB0aGUgZ2l2ZW4gYHNsb3RgLlxuICpcbiAqIENhbiBiZSBwYXNzZWQgYW4gb3B0aW9uYWwge0BsaW5rY29kZSBRdWVyeUFzc2lnbmVkTm9kZXNPcHRpb25zfSBvYmplY3QuXG4gKlxuICogRXhhbXBsZSB1c2FnZTpcbiAqIGBgYHRzXG4gKiBjbGFzcyBNeUVsZW1lbnQge1xuICogICBAcXVlcnlBc3NpZ25lZE5vZGVzKHtzbG90OiAnbGlzdCcsIGZsYXR0ZW46IHRydWV9KVxuICogICBsaXN0SXRlbXMhOiBBcnJheTxOb2RlPjtcbiAqXG4gKiAgIHJlbmRlcigpIHtcbiAqICAgICByZXR1cm4gaHRtbGBcbiAqICAgICAgIDxzbG90IG5hbWU9XCJsaXN0XCI+PC9zbG90PlxuICogICAgIGA7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIE5vdGUgdGhlIHR5cGUgb2YgdGhpcyBwcm9wZXJ0eSBzaG91bGQgYmUgYW5ub3RhdGVkIGFzIGBBcnJheTxOb2RlPmAuIFVzZSB0aGVcbiAqIHF1ZXJ5QXNzaWduZWRFbGVtZW50cyBkZWNvcmF0b3IgdG8gbGlzdCBvbmx5IGVsZW1lbnRzLCBhbmQgb3B0aW9uYWxseSBmaWx0ZXJcbiAqIHRoZSBlbGVtZW50IGxpc3QgdXNpbmcgYSBDU1Mgc2VsZWN0b3IuXG4gKlxuICogQGNhdGVnb3J5IERlY29yYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlBc3NpZ25lZE5vZGVzKFxuICBvcHRpb25zPzogUXVlcnlBc3NpZ25lZE5vZGVzT3B0aW9uc1xuKTogUXVlcnlBc3NpZ25lZE5vZGVzRGVjb3JhdG9yIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcmV0dXJuICg8ViBleHRlbmRzIEFycmF5PE5vZGU+PihcbiAgICBvYmo6IG9iamVjdCxcbiAgICBuYW1lOiBQcm9wZXJ0eUtleSB8IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PHVua25vd24sIHVua25vd24+XG4gICkgPT4ge1xuICAgIGNvbnN0IHtzbG90fSA9IG9wdGlvbnMgPz8ge307XG4gICAgY29uc3Qgc2xvdFNlbGVjdG9yID0gYHNsb3Qke3Nsb3QgPyBgW25hbWU9JHtzbG90fV1gIDogJzpub3QoW25hbWVdKSd9YDtcbiAgICByZXR1cm4gZGVzYyhvYmosIG5hbWUsIHtcbiAgICAgIGdldCh0aGlzOiBSZWFjdGl2ZUVsZW1lbnQpOiBWIHtcbiAgICAgICAgY29uc3Qgc2xvdEVsID1cbiAgICAgICAgICB0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3I8SFRNTFNsb3RFbGVtZW50PihzbG90U2VsZWN0b3IpO1xuICAgICAgICByZXR1cm4gKHNsb3RFbD8uYXNzaWduZWROb2RlcyhvcHRpb25zKSA/PyBbXSkgYXMgdW5rbm93biBhcyBWO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSkgYXMgUXVlcnlBc3NpZ25lZE5vZGVzRGVjb3JhdG9yO1xufVxuIiwgImV4cG9ydCpmcm9tXCJAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9jdXN0b20tZWxlbWVudC5qc1wiO2V4cG9ydCpmcm9tXCJAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9wcm9wZXJ0eS5qc1wiO2V4cG9ydCpmcm9tXCJAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9zdGF0ZS5qc1wiO2V4cG9ydCpmcm9tXCJAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9ldmVudC1vcHRpb25zLmpzXCI7ZXhwb3J0KmZyb21cIkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LmpzXCI7ZXhwb3J0KmZyb21cIkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFsbC5qc1wiO2V4cG9ydCpmcm9tXCJAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3luYy5qc1wiO2V4cG9ydCpmcm9tXCJAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1lbGVtZW50cy5qc1wiO2V4cG9ydCpmcm9tXCJAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1ub2Rlcy5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVjb3JhdG9ycy5qcy5tYXBcbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4vcGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBEZWVzRWxlbWVudCBleHRlbmRzIHBsdWdpbnMubGl0LkxpdEVsZW1lbnQge1xuICAvLyBJTlNUQU5DRVxuICBAcGx1Z2lucy5saXQucHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBnb0JyaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIGRvbXRvb2xzXG4gIHB1YmxpYyBkb210b29sc1Byb21pc2U6IFByb21pc2U8cGx1Z2lucy5kb210b29scy5Eb21Ub29scz47XG5cbiAgQHBsdWdpbnMubGl0LnByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIGRvbXRvb2xzOiBwbHVnaW5zLmRvbXRvb2xzLkRvbVRvb2xzO1xuXG4gIHB1YmxpYyByeFN1YnNjcmlwdGlvbnM6IHBsdWdpbnMuc21hcnRyeC5yeGpzLlN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgdGhlbWVTdWJzY3JpcHRpb246IHBsdWdpbnMuc21hcnRyeC5yeGpzLlN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGVsZW1lbnREb21SZWFkeURlZmVycmVkID0gcGx1Z2lucy5kb210b29scy5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO1xuICBwdWJsaWMgZWxlbWVudERvbVJlYWR5ID0gdGhpcy5lbGVtZW50RG9tUmVhZHlEZWZlcnJlZC5wcm9taXNlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnNBcmc6IHBsdWdpbnMuZG9tdG9vbHMuSURvbVRvb2xzQ29udHJ1Y3Rvck9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5kb210b29sc1Byb21pc2UgPSBwbHVnaW5zLmRvbXRvb2xzLmVsZW1lbnRCYXNpYy5zZXR1cCh0aGlzLCBvcHRpb25zQXJnKTtcbiAgICB0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKChkb210b29sc0FyZykgPT4ge1xuICAgICAgdGhpcy5kb210b29scyA9IGRvbXRvb2xzQXJnO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSB0aGVtZSBjaGFuZ2VzIGJldHdlZW4gYnJpZ2h0IGFuZCBkYXJrLlxuICAgKiBPdmVycmlkZSB0aGlzIG1ldGhvZCB0byBoYW5kbGUgdGhlbWUgY2hhbmdlcy5cbiAgICogQHBhcmFtIGdvQnJpZ2h0IC0gdHJ1ZSBpZiBzd2l0Y2hpbmcgdG8gYnJpZ2h0IHRoZW1lLCBmYWxzZSBpZiBzd2l0Y2hpbmcgdG8gZGFyayB0aGVtZVxuICAgKi9cbiAgcHJvdGVjdGVkIHRoZW1lQ2hhbmdlZD8oZ29CcmlnaHQ6IGJvb2xlYW4pOiB2b2lkO1xuXG4gIHB1YmxpYyBhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IGRvbXRvb2xzID0gYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7XG4gICAgdGhpcy50aGVtZVN1YnNjcmlwdGlvbiA9IGRvbXRvb2xzLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKChnb0JyaWdodEFyZykgPT4ge1xuICAgICAgdGhpcy5nb0JyaWdodCA9IGdvQnJpZ2h0QXJnO1xuICAgICAgLy8gQ2FsbCB0aGVtZUNoYW5nZWQgaWYgaXQncyBkZWZpbmVkXG4gICAgICBpZiAodGhpcy50aGVtZUNoYW5nZWQpIHtcbiAgICAgICAgdGhpcy50aGVtZUNoYW5nZWQoZ29CcmlnaHRBcmcpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucnhTdWJzY3JpcHRpb25zLnB1c2godGhpcy50aGVtZVN1YnNjcmlwdGlvbik7XG4gICAgZm9yIChjb25zdCBzdGFydHVwRnVuY3Rpb24gb2YgdGhpcy5zdGFydHVwRnVuY3Rpb25zKSB7XG4gICAgICBhd2FpdCBzdGFydHVwRnVuY3Rpb24oKTtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnZGVlc0VsZW1lbnRDb25uZWN0ZWQnKSk7XG4gIH1cblxuICBwdWJsaWMgZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllczogTWFwPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgdW5rbm93bj4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoX2NoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLmVsZW1lbnREb21SZWFkeURlZmVycmVkLnJlc29sdmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnR1cEZ1bmN0aW9uczogKCgpID0+IHZvaWQgfCBQcm9taXNlPGFueT4pW10gPSBbXTtcbiAgcHVibGljIHJlZ2lzdGVyU3RhcnR1cEZ1bmN0aW9uKHN0YXJ0dXBGdW5jdGlvbkFyZzogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuc3RhcnR1cEZ1bmN0aW9ucy5wdXNoKHN0YXJ0dXBGdW5jdGlvbkFyZyk7XG4gIH1cblxuICBwcml2YXRlIGdhcmJhZ2VGdW5jdGlvbnM6ICgoKSA9PiB2b2lkIHwgUHJvbWlzZTxhbnk+KVtdID0gW107XG4gIHB1YmxpYyByZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihnYXJiYWdlRnVuY3Rpb25Bcmc6ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLmdhcmJhZ2VGdW5jdGlvbnMucHVzaChnYXJiYWdlRnVuY3Rpb25BcmcpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgdGhpcy5yeFN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGdhcmJhZ2VGdW5jdGlvbiBvZiB0aGlzLmdhcmJhZ2VGdW5jdGlvbnMpIHtcbiAgICAgIGF3YWl0IGdhcmJhZ2VGdW5jdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdkZWVzRWxlbWVudERpc2Nvbm5lY3RlZCcpKTtcbiAgfVxufVxuIiwgIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEdvb2dsZSBMTENcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2VcbiAqL1xuXG5pbXBvcnQge1xuICBfJExILFxuICBQYXJ0LFxuICBEaXJlY3RpdmVQYXJlbnQsXG4gIENvbXBpbGVkVGVtcGxhdGVSZXN1bHQsXG4gIE1heWJlQ29tcGlsZWRUZW1wbGF0ZVJlc3VsdCxcbiAgVW5jb21waWxlZFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICcuL2xpdC1odG1sLmpzJztcbmltcG9ydCB7XG4gIERpcmVjdGl2ZVJlc3VsdCxcbiAgRGlyZWN0aXZlQ2xhc3MsXG4gIFBhcnRJbmZvLFxuICBBdHRyaWJ1dGVQYXJ0SW5mbyxcbn0gZnJvbSAnLi9kaXJlY3RpdmUuanMnO1xudHlwZSBQcmltaXRpdmUgPSBudWxsIHwgdW5kZWZpbmVkIHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbCB8IGJpZ2ludDtcblxuY29uc3Qge19DaGlsZFBhcnQ6IENoaWxkUGFydH0gPSBfJExIO1xuXG50eXBlIENoaWxkUGFydCA9IEluc3RhbmNlVHlwZTx0eXBlb2YgQ2hpbGRQYXJ0PjtcblxuY29uc3QgRU5BQkxFX1NIQURZRE9NX05PUEFUQ0ggPSB0cnVlO1xuXG5jb25zdCB3cmFwID1cbiAgRU5BQkxFX1NIQURZRE9NX05PUEFUQ0ggJiZcbiAgd2luZG93LlNoYWR5RE9NPy5pblVzZSAmJlxuICB3aW5kb3cuU2hhZHlET00/Lm5vUGF0Y2ggPT09IHRydWVcbiAgICA/IHdpbmRvdy5TaGFkeURPTSEud3JhcFxuICAgIDogKG5vZGU6IE5vZGUpID0+IG5vZGU7XG5cbi8qKlxuICogVGVzdHMgaWYgYSB2YWx1ZSBpcyBhIHByaW1pdGl2ZSB2YWx1ZS5cbiAqXG4gKiBTZWUgaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdHlwZW9mLW9wZXJhdG9yXG4gKi9cbmV4cG9ydCBjb25zdCBpc1ByaW1pdGl2ZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFByaW1pdGl2ZSA9PlxuICB2YWx1ZSA9PT0gbnVsbCB8fCAodHlwZW9mIHZhbHVlICE9ICdvYmplY3QnICYmIHR5cGVvZiB2YWx1ZSAhPSAnZnVuY3Rpb24nKTtcblxuZXhwb3J0IGNvbnN0IFRlbXBsYXRlUmVzdWx0VHlwZSA9IHtcbiAgSFRNTDogMSxcbiAgU1ZHOiAyLFxuICBNQVRITUw6IDMsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBUZW1wbGF0ZVJlc3VsdFR5cGUgPVxuICAodHlwZW9mIFRlbXBsYXRlUmVzdWx0VHlwZSlba2V5b2YgdHlwZW9mIFRlbXBsYXRlUmVzdWx0VHlwZV07XG5cbnR5cGUgSXNUZW1wbGF0ZVJlc3VsdCA9IHtcbiAgKHZhbDogdW5rbm93bik6IHZhbCBpcyBNYXliZUNvbXBpbGVkVGVtcGxhdGVSZXN1bHQ7XG4gIDxUIGV4dGVuZHMgVGVtcGxhdGVSZXN1bHRUeXBlPihcbiAgICB2YWw6IHVua25vd24sXG4gICAgdHlwZTogVFxuICApOiB2YWwgaXMgVW5jb21waWxlZFRlbXBsYXRlUmVzdWx0PFQ+O1xufTtcblxuLyoqXG4gKiBUZXN0cyBpZiBhIHZhbHVlIGlzIGEgVGVtcGxhdGVSZXN1bHQgb3IgYSBDb21waWxlZFRlbXBsYXRlUmVzdWx0LlxuICovXG5leHBvcnQgY29uc3QgaXNUZW1wbGF0ZVJlc3VsdDogSXNUZW1wbGF0ZVJlc3VsdCA9IChcbiAgdmFsdWU6IHVua25vd24sXG4gIHR5cGU/OiBUZW1wbGF0ZVJlc3VsdFR5cGVcbik6IHZhbHVlIGlzIFVuY29tcGlsZWRUZW1wbGF0ZVJlc3VsdCA9PlxuICB0eXBlID09PSB1bmRlZmluZWRcbiAgICA/IC8vIFRoaXMgcHJvcGVydHkgbmVlZHMgdG8gcmVtYWluIHVubWluaWZpZWQuXG4gICAgICAodmFsdWUgYXMgVW5jb21waWxlZFRlbXBsYXRlUmVzdWx0KT8uWydfJGxpdFR5cGUkJ10gIT09IHVuZGVmaW5lZFxuICAgIDogKHZhbHVlIGFzIFVuY29tcGlsZWRUZW1wbGF0ZVJlc3VsdCk/LlsnXyRsaXRUeXBlJCddID09PSB0eXBlO1xuXG4vKipcbiAqIFRlc3RzIGlmIGEgdmFsdWUgaXMgYSBDb21waWxlZFRlbXBsYXRlUmVzdWx0LlxuICovXG5leHBvcnQgY29uc3QgaXNDb21waWxlZFRlbXBsYXRlUmVzdWx0ID0gKFxuICB2YWx1ZTogdW5rbm93blxuKTogdmFsdWUgaXMgQ29tcGlsZWRUZW1wbGF0ZVJlc3VsdCA9PiB7XG4gIHJldHVybiAodmFsdWUgYXMgQ29tcGlsZWRUZW1wbGF0ZVJlc3VsdCk/LlsnXyRsaXRUeXBlJCddPy5oICE9IG51bGw7XG59O1xuXG4vKipcbiAqIFRlc3RzIGlmIGEgdmFsdWUgaXMgYSBEaXJlY3RpdmVSZXN1bHQuXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RpcmVjdGl2ZVJlc3VsdCA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERpcmVjdGl2ZVJlc3VsdCA9PlxuICAvLyBUaGlzIHByb3BlcnR5IG5lZWRzIHRvIHJlbWFpbiB1bm1pbmlmaWVkLlxuICAodmFsdWUgYXMgRGlyZWN0aXZlUmVzdWx0KT8uWydfJGxpdERpcmVjdGl2ZSQnXSAhPT0gdW5kZWZpbmVkO1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgRGlyZWN0aXZlIGNsYXNzIGZvciBhIERpcmVjdGl2ZVJlc3VsdFxuICovXG5leHBvcnQgY29uc3QgZ2V0RGlyZWN0aXZlQ2xhc3MgPSAodmFsdWU6IHVua25vd24pOiBEaXJlY3RpdmVDbGFzcyB8IHVuZGVmaW5lZCA9PlxuICAvLyBUaGlzIHByb3BlcnR5IG5lZWRzIHRvIHJlbWFpbiB1bm1pbmlmaWVkLlxuICAodmFsdWUgYXMgRGlyZWN0aXZlUmVzdWx0KT8uWydfJGxpdERpcmVjdGl2ZSQnXTtcblxuLyoqXG4gKiBUZXN0cyB3aGV0aGVyIGEgcGFydCBoYXMgb25seSBhIHNpbmdsZS1leHByZXNzaW9uIHdpdGggbm8gc3RyaW5ncyB0b1xuICogaW50ZXJwb2xhdGUgYmV0d2Vlbi5cbiAqXG4gKiBPbmx5IEF0dHJpYnV0ZVBhcnQgYW5kIFByb3BlcnR5UGFydCBjYW4gaGF2ZSBtdWx0aXBsZSBleHByZXNzaW9ucy5cbiAqIE11bHRpLWV4cHJlc3Npb24gcGFydHMgaGF2ZSBhIGBzdHJpbmdzYCBwcm9wZXJ0eSBhbmQgc2luZ2xlLWV4cHJlc3Npb25cbiAqIHBhcnRzIGRvIG5vdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzU2luZ2xlRXhwcmVzc2lvbiA9IChwYXJ0OiBQYXJ0SW5mbykgPT5cbiAgKHBhcnQgYXMgQXR0cmlidXRlUGFydEluZm8pLnN0cmluZ3MgPT09IHVuZGVmaW5lZDtcblxuY29uc3QgY3JlYXRlTWFya2VyID0gKCkgPT4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgnJyk7XG5cbi8qKlxuICogSW5zZXJ0cyBhIENoaWxkUGFydCBpbnRvIHRoZSBnaXZlbiBjb250YWluZXIgQ2hpbGRQYXJ0J3MgRE9NLCBlaXRoZXIgYXQgdGhlXG4gKiBlbmQgb2YgdGhlIGNvbnRhaW5lciBDaGlsZFBhcnQsIG9yIGJlZm9yZSB0aGUgb3B0aW9uYWwgYHJlZlBhcnRgLlxuICpcbiAqIFRoaXMgZG9lcyBub3QgYWRkIHRoZSBwYXJ0IHRvIHRoZSBjb250YWluZXJQYXJ0J3MgY29tbWl0dGVkIHZhbHVlLiBUaGF0IG11c3RcbiAqIGJlIGRvbmUgYnkgY2FsbGVycy5cbiAqXG4gKiBAcGFyYW0gY29udGFpbmVyUGFydCBQYXJ0IHdpdGhpbiB3aGljaCB0byBhZGQgdGhlIG5ldyBDaGlsZFBhcnRcbiAqIEBwYXJhbSByZWZQYXJ0IFBhcnQgYmVmb3JlIHdoaWNoIHRvIGFkZCB0aGUgbmV3IENoaWxkUGFydDsgd2hlbiBvbWl0dGVkIHRoZVxuICogICAgIHBhcnQgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgYGNvbnRhaW5lclBhcnRgXG4gKiBAcGFyYW0gcGFydCBQYXJ0IHRvIGluc2VydCwgb3IgdW5kZWZpbmVkIHRvIGNyZWF0ZSBhIG5ldyBwYXJ0XG4gKi9cbmV4cG9ydCBjb25zdCBpbnNlcnRQYXJ0ID0gKFxuICBjb250YWluZXJQYXJ0OiBDaGlsZFBhcnQsXG4gIHJlZlBhcnQ/OiBDaGlsZFBhcnQsXG4gIHBhcnQ/OiBDaGlsZFBhcnRcbik6IENoaWxkUGFydCA9PiB7XG4gIGNvbnN0IGNvbnRhaW5lciA9IHdyYXAoY29udGFpbmVyUGFydC5fJHN0YXJ0Tm9kZSkucGFyZW50Tm9kZSE7XG5cbiAgY29uc3QgcmVmTm9kZSA9XG4gICAgcmVmUGFydCA9PT0gdW5kZWZpbmVkID8gY29udGFpbmVyUGFydC5fJGVuZE5vZGUgOiByZWZQYXJ0Ll8kc3RhcnROb2RlO1xuXG4gIGlmIChwYXJ0ID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBzdGFydE5vZGUgPSB3cmFwKGNvbnRhaW5lcikuaW5zZXJ0QmVmb3JlKGNyZWF0ZU1hcmtlcigpLCByZWZOb2RlKTtcbiAgICBjb25zdCBlbmROb2RlID0gd3JhcChjb250YWluZXIpLmluc2VydEJlZm9yZShjcmVhdGVNYXJrZXIoKSwgcmVmTm9kZSk7XG4gICAgcGFydCA9IG5ldyBDaGlsZFBhcnQoXG4gICAgICBzdGFydE5vZGUsXG4gICAgICBlbmROb2RlLFxuICAgICAgY29udGFpbmVyUGFydCxcbiAgICAgIGNvbnRhaW5lclBhcnQub3B0aW9uc1xuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZW5kTm9kZSA9IHdyYXAocGFydC5fJGVuZE5vZGUhKS5uZXh0U2libGluZztcbiAgICBjb25zdCBvbGRQYXJlbnQgPSBwYXJ0Ll8kcGFyZW50O1xuICAgIGNvbnN0IHBhcmVudENoYW5nZWQgPSBvbGRQYXJlbnQgIT09IGNvbnRhaW5lclBhcnQ7XG4gICAgaWYgKHBhcmVudENoYW5nZWQpIHtcbiAgICAgIHBhcnQuXyRyZXBhcmVudERpc2Nvbm5lY3RhYmxlcz8uKGNvbnRhaW5lclBhcnQpO1xuICAgICAgLy8gTm90ZSB0aGF0IGFsdGhvdWdoIGBfJHJlcGFyZW50RGlzY29ubmVjdGFibGVzYCB1cGRhdGVzIHRoZSBwYXJ0J3NcbiAgICAgIC8vIGBfJHBhcmVudGAgcmVmZXJlbmNlIGFmdGVyIHVubGlua2luZyBmcm9tIGl0cyBjdXJyZW50IHBhcmVudCwgdGhhdFxuICAgICAgLy8gbWV0aG9kIG9ubHkgZXhpc3RzIGlmIERpc2Nvbm5lY3RhYmxlcyBhcmUgcHJlc2VudCwgc28gd2UgbmVlZCB0b1xuICAgICAgLy8gdW5jb25kaXRpb25hbGx5IHNldCBpdCBoZXJlXG4gICAgICBwYXJ0Ll8kcGFyZW50ID0gY29udGFpbmVyUGFydDtcbiAgICAgIC8vIFNpbmNlIHRoZSBfJGlzQ29ubmVjdGVkIGdldHRlciBpcyBzb21ld2hhdCBjb3N0bHksIG9ubHlcbiAgICAgIC8vIHJlYWQgaXQgb25jZSB3ZSBrbm93IHRoZSBzdWJ0cmVlIGhhcyBkaXJlY3RpdmVzIHRoYXQgbmVlZFxuICAgICAgLy8gdG8gYmUgbm90aWZpZWRcbiAgICAgIGxldCBuZXdDb25uZWN0aW9uU3RhdGU7XG4gICAgICBpZiAoXG4gICAgICAgIHBhcnQuXyRub3RpZnlDb25uZWN0aW9uQ2hhbmdlZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIChuZXdDb25uZWN0aW9uU3RhdGUgPSBjb250YWluZXJQYXJ0Ll8kaXNDb25uZWN0ZWQpICE9PVxuICAgICAgICAgIG9sZFBhcmVudCEuXyRpc0Nvbm5lY3RlZFxuICAgICAgKSB7XG4gICAgICAgIHBhcnQuXyRub3RpZnlDb25uZWN0aW9uQ2hhbmdlZChuZXdDb25uZWN0aW9uU3RhdGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5kTm9kZSAhPT0gcmVmTm9kZSB8fCBwYXJlbnRDaGFuZ2VkKSB7XG4gICAgICBsZXQgc3RhcnQ6IE5vZGUgfCBudWxsID0gcGFydC5fJHN0YXJ0Tm9kZTtcbiAgICAgIHdoaWxlIChzdGFydCAhPT0gZW5kTm9kZSkge1xuICAgICAgICBjb25zdCBuOiBOb2RlIHwgbnVsbCA9IHdyYXAoc3RhcnQhKS5uZXh0U2libGluZztcbiAgICAgICAgd3JhcChjb250YWluZXIpLmluc2VydEJlZm9yZShzdGFydCEsIHJlZk5vZGUpO1xuICAgICAgICBzdGFydCA9IG47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhcnQ7XG59O1xuXG4vKipcbiAqIFNldHMgdGhlIHZhbHVlIG9mIGEgUGFydC5cbiAqXG4gKiBOb3RlIHRoYXQgdGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHRvIHNldC91cGRhdGUgdGhlIHZhbHVlIG9mIHVzZXItY3JlYXRlZFxuICogcGFydHMgKGkuZS4gdGhvc2UgY3JlYXRlZCB1c2luZyBgaW5zZXJ0UGFydGApOyBpdCBzaG91bGQgbm90IGJlIHVzZWRcbiAqIGJ5IGRpcmVjdGl2ZXMgdG8gc2V0IHRoZSB2YWx1ZSBvZiB0aGUgZGlyZWN0aXZlJ3MgY29udGFpbmVyIHBhcnQuIERpcmVjdGl2ZXNcbiAqIHNob3VsZCByZXR1cm4gYSB2YWx1ZSBmcm9tIGB1cGRhdGVgL2ByZW5kZXJgIHRvIHVwZGF0ZSB0aGVpciBwYXJ0IHN0YXRlLlxuICpcbiAqIEZvciBkaXJlY3RpdmVzIHRoYXQgcmVxdWlyZSBzZXR0aW5nIHRoZWlyIHBhcnQgdmFsdWUgYXN5bmNocm9ub3VzbHksIHRoZXlcbiAqIHNob3VsZCBleHRlbmQgYEFzeW5jRGlyZWN0aXZlYCBhbmQgY2FsbCBgdGhpcy5zZXRWYWx1ZSgpYC5cbiAqXG4gKiBAcGFyYW0gcGFydCBQYXJ0IHRvIHNldFxuICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIHNldFxuICogQHBhcmFtIGluZGV4IEZvciBgQXR0cmlidXRlUGFydGBzLCB0aGUgaW5kZXggdG8gc2V0XG4gKiBAcGFyYW0gZGlyZWN0aXZlUGFyZW50IFVzZWQgaW50ZXJuYWxseTsgc2hvdWxkIG5vdCBiZSBzZXQgYnkgdXNlclxuICovXG5leHBvcnQgY29uc3Qgc2V0Q2hpbGRQYXJ0VmFsdWUgPSA8VCBleHRlbmRzIENoaWxkUGFydD4oXG4gIHBhcnQ6IFQsXG4gIHZhbHVlOiB1bmtub3duLFxuICBkaXJlY3RpdmVQYXJlbnQ6IERpcmVjdGl2ZVBhcmVudCA9IHBhcnRcbik6IFQgPT4ge1xuICBwYXJ0Ll8kc2V0VmFsdWUodmFsdWUsIGRpcmVjdGl2ZVBhcmVudCk7XG4gIHJldHVybiBwYXJ0O1xufTtcblxuLy8gQSBzZW50aW5lbCB2YWx1ZSB0aGF0IGNhbiBuZXZlciBhcHBlYXIgYXMgYSBwYXJ0IHZhbHVlIGV4Y2VwdCB3aGVuIHNldCBieVxuLy8gbGl2ZSgpLiBVc2VkIHRvIGZvcmNlIGEgZGlydHktY2hlY2sgdG8gZmFpbCBhbmQgY2F1c2UgYSByZS1yZW5kZXIuXG5jb25zdCBSRVNFVF9WQUxVRSA9IHt9O1xuXG4vKipcbiAqIFNldHMgdGhlIGNvbW1pdHRlZCB2YWx1ZSBvZiBhIENoaWxkUGFydCBkaXJlY3RseSB3aXRob3V0IHRyaWdnZXJpbmcgdGhlXG4gKiBjb21taXQgc3RhZ2Ugb2YgdGhlIHBhcnQuXG4gKlxuICogVGhpcyBpcyB1c2VmdWwgaW4gY2FzZXMgd2hlcmUgYSBkaXJlY3RpdmUgbmVlZHMgdG8gdXBkYXRlIHRoZSBwYXJ0IHN1Y2hcbiAqIHRoYXQgdGhlIG5leHQgdXBkYXRlIGRldGVjdHMgYSB2YWx1ZSBjaGFuZ2Ugb3Igbm90LiBXaGVuIHZhbHVlIGlzIG9taXR0ZWQsXG4gKiB0aGUgbmV4dCB1cGRhdGUgd2lsbCBiZSBndWFyYW50ZWVkIHRvIGJlIGRldGVjdGVkIGFzIGEgY2hhbmdlLlxuICpcbiAqIEBwYXJhbSBwYXJ0XG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuZXhwb3J0IGNvbnN0IHNldENvbW1pdHRlZFZhbHVlID0gKHBhcnQ6IFBhcnQsIHZhbHVlOiB1bmtub3duID0gUkVTRVRfVkFMVUUpID0+XG4gIChwYXJ0Ll8kY29tbWl0dGVkVmFsdWUgPSB2YWx1ZSk7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY29tbWl0dGVkIHZhbHVlIG9mIGEgQ2hpbGRQYXJ0LlxuICpcbiAqIFRoZSBjb21taXR0ZWQgdmFsdWUgaXMgdXNlZCBmb3IgY2hhbmdlIGRldGVjdGlvbiBhbmQgZWZmaWNpZW50IHVwZGF0ZXMgb2ZcbiAqIHRoZSBwYXJ0LiBJdCBjYW4gZGlmZmVyIGZyb20gdGhlIHZhbHVlIHNldCBieSB0aGUgdGVtcGxhdGUgb3IgZGlyZWN0aXZlIGluXG4gKiBjYXNlcyB3aGVyZSB0aGUgdGVtcGxhdGUgdmFsdWUgaXMgdHJhbnNmb3JtZWQgYmVmb3JlIGJlaW5nIGNvbW1pdHRlZC5cbiAqXG4gKiAtIGBUZW1wbGF0ZVJlc3VsdGBzIGFyZSBjb21taXR0ZWQgYXMgYSBgVGVtcGxhdGVJbnN0YW5jZWBcbiAqIC0gSXRlcmFibGVzIGFyZSBjb21taXR0ZWQgYXMgYEFycmF5PENoaWxkUGFydD5gXG4gKiAtIEFsbCBvdGhlciB0eXBlcyBhcmUgY29tbWl0dGVkIGFzIHRoZSB0ZW1wbGF0ZSB2YWx1ZSBvciB2YWx1ZSByZXR1cm5lZCBvclxuICogICBzZXQgYnkgYSBkaXJlY3RpdmUuXG4gKlxuICogQHBhcmFtIHBhcnRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldENvbW1pdHRlZFZhbHVlID0gKHBhcnQ6IENoaWxkUGFydCkgPT4gcGFydC5fJGNvbW1pdHRlZFZhbHVlO1xuXG4vKipcbiAqIFJlbW92ZXMgYSBDaGlsZFBhcnQgZnJvbSB0aGUgRE9NLCBpbmNsdWRpbmcgYW55IG9mIGl0cyBjb250ZW50IGFuZCBtYXJrZXJzLlxuICpcbiAqIE5vdGU6IFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGFuZCBjbGVhclBhcnQoKSBpcyB0aGF0IHRoaXMgYWxzb1xuICogcmVtb3ZlcyB0aGUgcGFydCdzIHN0YXJ0IG5vZGUuIFRoaXMgbWVhbnMgdGhhdCB0aGUgQ2hpbGRQYXJ0IG11c3Qgb3duIGl0c1xuICogc3RhcnQgbm9kZSwgaWUgaXQgbXVzdCBiZSBhIG1hcmtlciBub2RlIHNwZWNpZmljYWxseSBmb3IgdGhpcyBwYXJ0IGFuZCBub3QgYW5cbiAqIGFuY2hvciBmcm9tIHN1cnJvdW5kaW5nIGNvbnRlbnQuXG4gKlxuICogQHBhcmFtIHBhcnQgVGhlIFBhcnQgdG8gcmVtb3ZlXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVQYXJ0ID0gKHBhcnQ6IENoaWxkUGFydCkgPT4ge1xuICBwYXJ0Ll8kY2xlYXIoKTtcbiAgcGFydC5fJHN0YXJ0Tm9kZS5yZW1vdmUoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbGVhclBhcnQgPSAocGFydDogQ2hpbGRQYXJ0KSA9PiB7XG4gIHBhcnQuXyRjbGVhcigpO1xufTtcbiIsICIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gKi9cblxuLyoqXG4gKiBPdmVydmlldzpcbiAqXG4gKiBUaGlzIG1vZHVsZSBpcyBkZXNpZ25lZCB0byBhZGQgc3VwcG9ydCBmb3IgYW4gYXN5bmMgYHNldFZhbHVlYCBBUEkgYW5kXG4gKiBgZGlzY29ubmVjdGVkYCBjYWxsYmFjayB0byBkaXJlY3RpdmVzIHdpdGggdGhlIGxlYXN0IGltcGFjdCBvbiB0aGUgY29yZVxuICogcnVudGltZSBvciBwYXlsb2FkIHdoZW4gdGhhdCBmZWF0dXJlIGlzIG5vdCB1c2VkLlxuICpcbiAqIFRoZSBzdHJhdGVneSBpcyB0byBpbnRyb2R1Y2UgYSBgQXN5bmNEaXJlY3RpdmVgIHN1YmNsYXNzIG9mXG4gKiBgRGlyZWN0aXZlYCB0aGF0IGNsaW1icyB0aGUgXCJwYXJlbnRcIiB0cmVlIGluIGl0cyBjb25zdHJ1Y3RvciB0byBub3RlIHdoaWNoXG4gKiBicmFuY2hlcyBvZiBsaXQtaHRtbCdzIFwibG9naWNhbCB0cmVlXCIgb2YgZGF0YSBzdHJ1Y3R1cmVzIGNvbnRhaW4gc3VjaFxuICogZGlyZWN0aXZlcyBhbmQgdGh1cyBuZWVkIHRvIGJlIGNyYXdsZWQgd2hlbiBhIHN1YnRyZWUgaXMgYmVpbmcgY2xlYXJlZCAob3JcbiAqIG1hbnVhbGx5IGRpc2Nvbm5lY3RlZCkgaW4gb3JkZXIgdG8gcnVuIHRoZSBgZGlzY29ubmVjdGVkYCBjYWxsYmFjay5cbiAqXG4gKiBUaGUgXCJub2Rlc1wiIG9mIHRoZSBsb2dpY2FsIHRyZWUgaW5jbHVkZSBQYXJ0cywgVGVtcGxhdGVJbnN0YW5jZXMgKGZvciB3aGVuIGFcbiAqIFRlbXBsYXRlUmVzdWx0IGlzIGNvbW1pdHRlZCB0byBhIHZhbHVlIG9mIGEgQ2hpbGRQYXJ0KSwgYW5kIERpcmVjdGl2ZXM7IHRoZXNlXG4gKiBhbGwgaW1wbGVtZW50IGEgY29tbW9uIGludGVyZmFjZSBjYWxsZWQgYERpc2Nvbm5lY3RhYmxlQ2hpbGRgLiBFYWNoIGhhcyBhXG4gKiBgXyRwYXJlbnRgIHJlZmVyZW5jZSB3aGljaCBpcyBzZXQgZHVyaW5nIGNvbnN0cnVjdGlvbiBpbiB0aGUgY29yZSBjb2RlLCBhbmQgYVxuICogYF8kZGlzY29ubmVjdGFibGVDaGlsZHJlbmAgZmllbGQgd2hpY2ggaXMgaW5pdGlhbGx5IHVuZGVmaW5lZC5cbiAqXG4gKiBUaGUgc3BhcnNlIHRyZWUgY3JlYXRlZCBieSBtZWFucyBvZiB0aGUgYEFzeW5jRGlyZWN0aXZlYCBjb25zdHJ1Y3RvclxuICogY3Jhd2xpbmcgdXAgdGhlIGBfJHBhcmVudGAgdHJlZSBhbmQgcGxhY2luZyBhIGBfJGRpc2Nvbm5lY3RhYmxlQ2hpbGRyZW5gIFNldFxuICogb24gZWFjaCBwYXJlbnQgdGhhdCBpbmNsdWRlcyBlYWNoIGNoaWxkIHRoYXQgY29udGFpbnMgYVxuICogYEFzeW5jRGlyZWN0aXZlYCBkaXJlY3RseSBvciB0cmFuc2l0aXZlbHkgdmlhIGl0cyBjaGlsZHJlbi4gSW4gb3JkZXIgdG9cbiAqIG5vdGlmeSBjb25uZWN0aW9uIHN0YXRlIGNoYW5nZXMgYW5kIGRpc2Nvbm5lY3QgKG9yIHJlY29ubmVjdCkgYSB0cmVlLCB0aGVcbiAqIGBfJG5vdGlmeUNvbm5lY3Rpb25DaGFuZ2VkYCBBUEkgaXMgcGF0Y2hlZCBvbnRvIENoaWxkUGFydHMgYXMgYSBkaXJlY3RpdmVcbiAqIGNsaW1icyB0aGUgcGFyZW50IHRyZWUsIHdoaWNoIGlzIGNhbGxlZCBieSB0aGUgY29yZSB3aGVuIGNsZWFyaW5nIGEgcGFydCBpZlxuICogaXQgZXhpc3RzLiBXaGVuIGNhbGxlZCwgdGhhdCBtZXRob2QgaXRlcmF0ZXMgb3ZlciB0aGUgc3BhcnNlIHRyZWUgb2ZcbiAqIFNldDxEaXNjb25uZWN0YWJsZUNoaWxkcmVuPiBidWlsdCB1cCBieSBBc3luY0RpcmVjdGl2ZXMsIGFuZCBjYWxsc1xuICogYF8kbm90aWZ5RGlyZWN0aXZlQ29ubmVjdGlvbkNoYW5nZWRgIG9uIGFueSBkaXJlY3RpdmVzIHRoYXQgYXJlIGVuY291bnRlcmVkXG4gKiBpbiB0aGF0IHRyZWUsIHJ1bm5pbmcgdGhlIHJlcXVpcmVkIGNhbGxiYWNrcy5cbiAqXG4gKiBBIGdpdmVuIFwibG9naWNhbCB0cmVlXCIgb2YgbGl0LWh0bWwgZGF0YS1zdHJ1Y3R1cmVzIG1pZ2h0IGxvb2sgbGlrZSB0aGlzOlxuICpcbiAqICBDaGlsZFBhcnQoTjEpIF8kZEM9W0QyLFQzXVxuICogICAuX2RpcmVjdGl2ZVxuICogICAgIEFzeW5jRGlyZWN0aXZlKEQyKVxuICogICAuX3ZhbHVlIC8vIHVzZXIgdmFsdWUgd2FzIFRlbXBsYXRlUmVzdWx0XG4gKiAgICAgVGVtcGxhdGVJbnN0YW5jZShUMykgXyRkQz1bQTQsQTYsTjEwLE4xMl1cbiAqICAgICAgLl8kcGFydHNbXVxuICogICAgICAgIEF0dHJpYnV0ZVBhcnQoQTQpIF8kZEM9W0Q1XVxuICogICAgICAgICAuX2RpcmVjdGl2ZXNbXVxuICogICAgICAgICAgIEFzeW5jRGlyZWN0aXZlKEQ1KVxuICogICAgICAgIEF0dHJpYnV0ZVBhcnQoQTYpIF8kZEM9W0Q3LEQ4XVxuICogICAgICAgICAuX2RpcmVjdGl2ZXNbXVxuICogICAgICAgICAgIEFzeW5jRGlyZWN0aXZlKEQ3KVxuICogICAgICAgICAgIERpcmVjdGl2ZShEOCkgXyRkQz1bRDldXG4gKiAgICAgICAgICAgIC5fZGlyZWN0aXZlXG4gKiAgICAgICAgICAgICAgQXN5bmNEaXJlY3RpdmUoRDkpXG4gKiAgICAgICAgQ2hpbGRQYXJ0KE4xMCkgXyRkQz1bRDExXVxuICogICAgICAgICAuX2RpcmVjdGl2ZVxuICogICAgICAgICAgIEFzeW5jRGlyZWN0aXZlKEQxMSlcbiAqICAgICAgICAgLl92YWx1ZVxuICogICAgICAgICAgIHN0cmluZ1xuICogICAgICAgIENoaWxkUGFydChOMTIpIF8kZEM9W0QxMyxOMTQsTjE2XVxuICogICAgICAgICAuX2RpcmVjdGl2ZVxuICogICAgICAgICAgIEFzeW5jRGlyZWN0aXZlKEQxMylcbiAqICAgICAgICAgLl92YWx1ZSAvLyB1c2VyIHZhbHVlIHdhcyBpdGVyYWJsZVxuICogICAgICAgICAgIEFycmF5PENoaWxkUGFydD5cbiAqICAgICAgICAgICAgIENoaWxkUGFydChOMTQpIF8kZEM9W0QxNV1cbiAqICAgICAgICAgICAgICAuX3ZhbHVlXG4gKiAgICAgICAgICAgICAgICBzdHJpbmdcbiAqICAgICAgICAgICAgIENoaWxkUGFydChOMTYpIF8kZEM9W0QxNyxUMThdXG4gKiAgICAgICAgICAgICAgLl9kaXJlY3RpdmVcbiAqICAgICAgICAgICAgICAgIEFzeW5jRGlyZWN0aXZlKEQxNylcbiAqICAgICAgICAgICAgICAuX3ZhbHVlIC8vIHVzZXIgdmFsdWUgd2FzIFRlbXBsYXRlUmVzdWx0XG4gKiAgICAgICAgICAgICAgICBUZW1wbGF0ZUluc3RhbmNlKFQxOCkgXyRkQz1bQTE5LEEyMSxOMjVdXG4gKiAgICAgICAgICAgICAgICAgLl8kcGFydHNbXVxuICogICAgICAgICAgICAgICAgICAgQXR0cmlidXRlUGFydChBMTkpIF8kZEM9W0QyMF1cbiAqICAgICAgICAgICAgICAgICAgICAuX2RpcmVjdGl2ZXNbXVxuICogICAgICAgICAgICAgICAgICAgICAgQXN5bmNEaXJlY3RpdmUoRDIwKVxuICogICAgICAgICAgICAgICAgICAgQXR0cmlidXRlUGFydChBMjEpIF8kZEM9WzIyLDIzXVxuICogICAgICAgICAgICAgICAgICAgIC5fZGlyZWN0aXZlc1tdXG4gKiAgICAgICAgICAgICAgICAgICAgICBBc3luY0RpcmVjdGl2ZShEMjIpXG4gKiAgICAgICAgICAgICAgICAgICAgICBEaXJlY3RpdmUoRDIzKSBfJGRDPVtEMjRdXG4gKiAgICAgICAgICAgICAgICAgICAgICAgLl9kaXJlY3RpdmVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgIEFzeW5jRGlyZWN0aXZlKEQyNClcbiAqICAgICAgICAgICAgICAgICAgIENoaWxkUGFydChOMjUpIF8kZEM9W0QyNl1cbiAqICAgICAgICAgICAgICAgICAgICAuX2RpcmVjdGl2ZVxuICogICAgICAgICAgICAgICAgICAgICAgQXN5bmNEaXJlY3RpdmUoRDI2KVxuICogICAgICAgICAgICAgICAgICAgIC5fdmFsdWVcbiAqICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1xuICpcbiAqIEV4YW1wbGUgMTogVGhlIGRpcmVjdGl2ZSBpbiBDaGlsZFBhcnQoTjEyKSB1cGRhdGVzIGFuZCByZXR1cm5zIGBub3RoaW5nYC4gVGhlXG4gKiBDaGlsZFBhcnQgd2lsbCBfY2xlYXIoKSBpdHNlbGYsIGFuZCBzbyB3ZSBuZWVkIHRvIGRpc2Nvbm5lY3QgdGhlIFwidmFsdWVcIiBvZlxuICogdGhlIENoaWxkUGFydCAoYnV0IG5vdCBpdHMgZGlyZWN0aXZlKS4gSW4gdGhpcyBjYXNlLCB3aGVuIGBfY2xlYXIoKWAgY2FsbHNcbiAqIGBfJG5vdGlmeUNvbm5lY3Rpb25DaGFuZ2VkKClgLCB3ZSBkb24ndCBpdGVyYXRlIGFsbCBvZiB0aGVcbiAqIF8kZGlzY29ubmVjdGFibGVDaGlsZHJlbiwgcmF0aGVyIHdlIGRvIGEgdmFsdWUtc3BlY2lmaWMgZGlzY29ubmVjdGlvbjogaS5lLlxuICogc2luY2UgdGhlIF92YWx1ZSB3YXMgYW4gQXJyYXk8Q2hpbGRQYXJ0PiAoYmVjYXVzZSBhbiBpdGVyYWJsZSBoYWQgYmVlblxuICogY29tbWl0dGVkKSwgd2UgaXRlcmF0ZSB0aGUgYXJyYXkgb2YgQ2hpbGRQYXJ0cyAoTjE0LCBOMTYpIGFuZCBydW5cbiAqIGBzZXRDb25uZWN0ZWRgIG9uIHRoZW0gKHdoaWNoIGRvZXMgcmVjdXJzZSBkb3duIHRoZSBmdWxsIHRyZWUgb2ZcbiAqIGBfJGRpc2Nvbm5lY3RhYmxlQ2hpbGRyZW5gIGJlbG93IGl0LCBhbmQgYWxzbyByZW1vdmVzIE4xNCBhbmQgTjE2IGZyb20gTjEyJ3NcbiAqIGBfJGRpc2Nvbm5lY3RhYmxlQ2hpbGRyZW5gKS4gT25jZSB0aGUgdmFsdWVzIGhhdmUgYmVlbiBkaXNjb25uZWN0ZWQsIHdlIHRoZW5cbiAqIGNoZWNrIHdoZXRoZXIgdGhlIENoaWxkUGFydChOMTIpJ3MgbGlzdCBvZiBgXyRkaXNjb25uZWN0YWJsZUNoaWxkcmVuYCBpcyBlbXB0eVxuICogKGFuZCB3b3VsZCByZW1vdmUgaXQgZnJvbSBpdHMgcGFyZW50IFRlbXBsYXRlSW5zdGFuY2UoVDMpIGlmIHNvKSwgYnV0IHNpbmNlXG4gKiBpdCB3b3VsZCBzdGlsbCBjb250YWluIGl0cyBkaXJlY3RpdmUgRDEzLCBpdCBzdGF5cyBpbiB0aGUgZGlzY29ubmVjdGFibGVcbiAqIHRyZWUuXG4gKlxuICogRXhhbXBsZSAyOiBJbiB0aGUgY291cnNlIG9mIEV4YW1wbGUgMSwgYHNldENvbm5lY3RlZGAgd2lsbCByZWFjaFxuICogQ2hpbGRQYXJ0KE4xNik7IGluIHRoaXMgY2FzZSB0aGUgZW50aXJlIHBhcnQgaXMgYmVpbmcgZGlzY29ubmVjdGVkLCBzbyB3ZVxuICogc2ltcGx5IGl0ZXJhdGUgYWxsIG9mIE4xNidzIGBfJGRpc2Nvbm5lY3RhYmxlQ2hpbGRyZW5gIChEMTcsVDE4KSBhbmRcbiAqIHJlY3Vyc2l2ZWx5IHJ1biBgc2V0Q29ubmVjdGVkYCBvbiB0aGVtLiBOb3RlIHRoYXQgd2Ugb25seSByZW1vdmUgY2hpbGRyZW5cbiAqIGZyb20gYF8kZGlzY29ubmVjdGFibGVDaGlsZHJlbmAgZm9yIHRoZSB0b3AtbGV2ZWwgdmFsdWVzIGJlaW5nIGRpc2Nvbm5lY3RlZFxuICogb24gYSBjbGVhcjsgZG9pbmcgdGhpcyBib29ra2VlcGluZyBsb3dlciBpbiB0aGUgdHJlZSBpcyB3YXN0ZWZ1bCBzaW5jZSBpdCdzXG4gKiBhbGwgYmVpbmcgdGhyb3duIGF3YXkuXG4gKlxuICogRXhhbXBsZSAzOiBJZiB0aGUgTGl0RWxlbWVudCBjb250YWluaW5nIHRoZSBlbnRpcmUgdHJlZSBhYm92ZSBiZWNvbWVzXG4gKiBkaXNjb25uZWN0ZWQsIGl0IHdpbGwgcnVuIGBjaGlsZFBhcnQuc2V0Q29ubmVjdGVkKClgICh3aGljaCBjYWxsc1xuICogYGNoaWxkUGFydC5fJG5vdGlmeUNvbm5lY3Rpb25DaGFuZ2VkKClgIGlmIGl0IGV4aXN0cyk7IGluIHRoaXMgY2FzZSwgd2VcbiAqIHJlY3Vyc2l2ZWx5IHJ1biBgc2V0Q29ubmVjdGVkKClgIG92ZXIgdGhlIGVudGlyZSB0cmVlLCB3aXRob3V0IHJlbW92aW5nIGFueVxuICogY2hpbGRyZW4gZnJvbSBgXyRkaXNjb25uZWN0YWJsZUNoaWxkcmVuYCwgc2luY2UgdGhpcyB0cmVlIGlzIHJlcXVpcmVkIHRvXG4gKiByZS1jb25uZWN0IHRoZSB0cmVlLCB3aGljaCBkb2VzIHRoZSBzYW1lIG9wZXJhdGlvbiwgc2ltcGx5IHBhc3NpbmdcbiAqIGBpc0Nvbm5lY3RlZDogdHJ1ZWAgZG93biB0aGUgdHJlZSwgc2lnbmFsaW5nIHdoaWNoIGNhbGxiYWNrIHRvIHJ1bi5cbiAqL1xuXG5pbXBvcnQge0F0dHJpYnV0ZVBhcnQsIENoaWxkUGFydCwgRGlzY29ubmVjdGFibGUsIFBhcnR9IGZyb20gJy4vbGl0LWh0bWwuanMnO1xuaW1wb3J0IHtpc1NpbmdsZUV4cHJlc3Npb259IGZyb20gJy4vZGlyZWN0aXZlLWhlbHBlcnMuanMnO1xuaW1wb3J0IHtEaXJlY3RpdmUsIFBhcnRJbmZvLCBQYXJ0VHlwZX0gZnJvbSAnLi9kaXJlY3RpdmUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmUuanMnO1xuXG5jb25zdCBERVZfTU9ERSA9IHRydWU7XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgd2Fsa3MgZG93biB0aGUgdHJlZSBvZiBQYXJ0cy9UZW1wbGF0ZUluc3RhbmNlcy9EaXJlY3RpdmVzIHRvIHNldFxuICogdGhlIGNvbm5lY3RlZCBzdGF0ZSBvZiBkaXJlY3RpdmVzIGFuZCBydW4gYGRpc2Nvbm5lY3RlZGAvIGByZWNvbm5lY3RlZGBcbiAqIGNhbGxiYWNrcy5cbiAqXG4gKiBAcmV0dXJuIFRydWUgaWYgdGhlcmUgd2VyZSBjaGlsZHJlbiB0byBkaXNjb25uZWN0OyBmYWxzZSBvdGhlcndpc2VcbiAqL1xuY29uc3Qgbm90aWZ5Q2hpbGRyZW5Db25uZWN0ZWRDaGFuZ2VkID0gKFxuICBwYXJlbnQ6IERpc2Nvbm5lY3RhYmxlLFxuICBpc0Nvbm5lY3RlZDogYm9vbGVhblxuKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50Ll8kZGlzY29ubmVjdGFibGVDaGlsZHJlbjtcbiAgaWYgKGNoaWxkcmVuID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgZm9yIChjb25zdCBvYmogb2YgY2hpbGRyZW4pIHtcbiAgICAvLyBUaGUgZXhpc3RlbmNlIG9mIGBfJG5vdGlmeURpcmVjdGl2ZUNvbm5lY3Rpb25DaGFuZ2VkYCBpcyB1c2VkIGFzIGEgXCJicmFuZFwiIHRvXG4gICAgLy8gZGlzYW1iaWd1YXRlIEFzeW5jRGlyZWN0aXZlcyBmcm9tIG90aGVyIERpc2Nvbm5lY3RhYmxlQ2hpbGRyZW5cbiAgICAvLyAoYXMgb3Bwb3NlZCB0byB1c2luZyBhbiBpbnN0YW5jZW9mIGNoZWNrIHRvIGtub3cgd2hlbiB0byBjYWxsIGl0KTsgdGhlXG4gICAgLy8gcmVkdW5kYW5jeSBvZiBcIkRpcmVjdGl2ZVwiIGluIHRoZSBBUEkgbmFtZSBpcyB0byBhdm9pZCBjb25mbGljdGluZyB3aXRoXG4gICAgLy8gYF8kbm90aWZ5Q29ubmVjdGlvbkNoYW5nZWRgLCB3aGljaCBleGlzdHMgYENoaWxkUGFydHNgIHdoaWNoIGFyZSBhbHNvIGluXG4gICAgLy8gdGhpcyBsaXN0XG4gICAgLy8gRGlzY29ubmVjdCBEaXJlY3RpdmUgKGFuZCBhbnkgbmVzdGVkIGRpcmVjdGl2ZXMgY29udGFpbmVkIHdpdGhpbilcbiAgICAvLyBUaGlzIHByb3BlcnR5IG5lZWRzIHRvIHJlbWFpbiB1bm1pbmlmaWVkLlxuICAgIChvYmogYXMgQXN5bmNEaXJlY3RpdmUpWydfJG5vdGlmeURpcmVjdGl2ZUNvbm5lY3Rpb25DaGFuZ2VkJ10/LihcbiAgICAgIGlzQ29ubmVjdGVkLFxuICAgICAgZmFsc2VcbiAgICApO1xuICAgIC8vIERpc2Nvbm5lY3QgUGFydC9UZW1wbGF0ZUluc3RhbmNlXG4gICAgbm90aWZ5Q2hpbGRyZW5Db25uZWN0ZWRDaGFuZ2VkKG9iaiwgaXNDb25uZWN0ZWQpO1xuICB9XG4gIHJldHVybiB0cnVlO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBnaXZlbiBjaGlsZCBmcm9tIGl0cyBwYXJlbnQgbGlzdCBvZiBkaXNjb25uZWN0YWJsZSBjaGlsZHJlbiwgYW5kXG4gKiBpZiB0aGUgcGFyZW50IGxpc3QgYmVjb21lcyBlbXB0eSBhcyBhIHJlc3VsdCwgcmVtb3ZlcyB0aGUgcGFyZW50IGZyb20gaXRzXG4gKiBwYXJlbnQsIGFuZCBzbyBmb3J0aCB1cCB0aGUgdHJlZSB3aGVuIHRoYXQgY2F1c2VzIHN1YnNlcXVlbnQgcGFyZW50IGxpc3RzIHRvXG4gKiBiZWNvbWUgZW1wdHkuXG4gKi9cbmNvbnN0IHJlbW92ZURpc2Nvbm5lY3RhYmxlRnJvbVBhcmVudCA9IChvYmo6IERpc2Nvbm5lY3RhYmxlKSA9PiB7XG4gIGxldCBwYXJlbnQsIGNoaWxkcmVuO1xuICBkbyB7XG4gICAgaWYgKChwYXJlbnQgPSBvYmouXyRwYXJlbnQpID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjaGlsZHJlbiA9IHBhcmVudC5fJGRpc2Nvbm5lY3RhYmxlQ2hpbGRyZW4hO1xuICAgIGNoaWxkcmVuLmRlbGV0ZShvYmopO1xuICAgIG9iaiA9IHBhcmVudDtcbiAgfSB3aGlsZSAoY2hpbGRyZW4/LnNpemUgPT09IDApO1xufTtcblxuY29uc3QgYWRkRGlzY29ubmVjdGFibGVUb1BhcmVudCA9IChvYmo6IERpc2Nvbm5lY3RhYmxlKSA9PiB7XG4gIC8vIENsaW1iIHRoZSBwYXJlbnQgdHJlZSwgY3JlYXRpbmcgYSBzcGFyc2UgdHJlZSBvZiBjaGlsZHJlbiBuZWVkaW5nXG4gIC8vIGRpc2Nvbm5lY3Rpb25cbiAgZm9yIChsZXQgcGFyZW50OyAocGFyZW50ID0gb2JqLl8kcGFyZW50KTsgb2JqID0gcGFyZW50KSB7XG4gICAgbGV0IGNoaWxkcmVuID0gcGFyZW50Ll8kZGlzY29ubmVjdGFibGVDaGlsZHJlbjtcbiAgICBpZiAoY2hpbGRyZW4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcGFyZW50Ll8kZGlzY29ubmVjdGFibGVDaGlsZHJlbiA9IGNoaWxkcmVuID0gbmV3IFNldCgpO1xuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4uaGFzKG9iaikpIHtcbiAgICAgIC8vIE9uY2Ugd2UndmUgcmVhY2hlZCBhIHBhcmVudCB0aGF0IGFscmVhZHkgY29udGFpbnMgdGhpcyBjaGlsZCwgd2VcbiAgICAgIC8vIGNhbiBzaG9ydC1jaXJjdWl0XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2hpbGRyZW4uYWRkKG9iaik7XG4gICAgaW5zdGFsbERpc2Nvbm5lY3RBUEkocGFyZW50KTtcbiAgfVxufTtcblxuLyoqXG4gKiBDaGFuZ2VzIHRoZSBwYXJlbnQgcmVmZXJlbmNlIG9mIHRoZSBDaGlsZFBhcnQsIGFuZCB1cGRhdGVzIHRoZSBzcGFyc2UgdHJlZSBvZlxuICogRGlzY29ubmVjdGFibGUgY2hpbGRyZW4gYWNjb3JkaW5nbHkuXG4gKlxuICogTm90ZSwgdGhpcyBtZXRob2Qgd2lsbCBiZSBwYXRjaGVkIG9udG8gQ2hpbGRQYXJ0IGluc3RhbmNlcyBhbmQgY2FsbGVkIGZyb21cbiAqIHRoZSBjb3JlIGNvZGUgd2hlbiBwYXJ0cyBhcmUgbW92ZWQgYmV0d2VlbiBkaWZmZXJlbnQgcGFyZW50cy5cbiAqL1xuZnVuY3Rpb24gcmVwYXJlbnREaXNjb25uZWN0YWJsZXModGhpczogQ2hpbGRQYXJ0LCBuZXdQYXJlbnQ6IERpc2Nvbm5lY3RhYmxlKSB7XG4gIGlmICh0aGlzLl8kZGlzY29ubmVjdGFibGVDaGlsZHJlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmVtb3ZlRGlzY29ubmVjdGFibGVGcm9tUGFyZW50KHRoaXMpO1xuICAgIHRoaXMuXyRwYXJlbnQgPSBuZXdQYXJlbnQ7XG4gICAgYWRkRGlzY29ubmVjdGFibGVUb1BhcmVudCh0aGlzKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLl8kcGFyZW50ID0gbmV3UGFyZW50O1xuICB9XG59XG5cbi8qKlxuICogU2V0cyB0aGUgY29ubmVjdGVkIHN0YXRlIG9uIGFueSBkaXJlY3RpdmVzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGNvbW1pdHRlZFxuICogdmFsdWUgb2YgdGhpcyBwYXJ0IChpLmUuIHdpdGhpbiBhIFRlbXBsYXRlSW5zdGFuY2Ugb3IgaXRlcmFibGUgb2ZcbiAqIENoaWxkUGFydHMpIGFuZCBydW5zIHRoZWlyIGBkaXNjb25uZWN0ZWRgL2ByZWNvbm5lY3RlZGBzLCBhcyB3ZWxsIGFzIHdpdGhpblxuICogYW55IGRpcmVjdGl2ZXMgc3RvcmVkIG9uIHRoZSBDaGlsZFBhcnQgKHdoZW4gYHZhbHVlT25seWAgaXMgZmFsc2UpLlxuICpcbiAqIGBpc0NsZWFyaW5nVmFsdWVgIHNob3VsZCBiZSBwYXNzZWQgYXMgYHRydWVgIG9uIGEgdG9wLWxldmVsIHBhcnQgdGhhdCBpc1xuICogY2xlYXJpbmcgaXRzZWxmLCBhbmQgbm90IGFzIGEgcmVzdWx0IG9mIHJlY3Vyc2l2ZWx5IGRpc2Nvbm5lY3RpbmcgZGlyZWN0aXZlc1xuICogYXMgcGFydCBvZiBhIGBjbGVhcmAgb3BlcmF0aW9uIGhpZ2hlciB1cCB0aGUgdHJlZS4gVGhpcyBib3RoIGVuc3VyZXMgdGhhdCBhbnlcbiAqIGRpcmVjdGl2ZSBvbiB0aGlzIENoaWxkUGFydCB0aGF0IHByb2R1Y2VkIGEgdmFsdWUgdGhhdCBjYXVzZWQgdGhlIGNsZWFyXG4gKiBvcGVyYXRpb24gaXMgbm90IGRpc2Nvbm5lY3RlZCwgYW5kIGFsc28gc2VydmVzIGFzIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uXG4gKiB0byBhdm9pZCBuZWVkbGVzcyBib29ra2VlcGluZyB3aGVuIGEgc3VidHJlZSBpcyBnb2luZyBhd2F5OyB3aGVuIGNsZWFyaW5nIGFcbiAqIHN1YnRyZWUsIG9ubHkgdGhlIHRvcC1tb3N0IHBhcnQgbmVlZCB0byByZW1vdmUgaXRzZWxmIGZyb20gdGhlIHBhcmVudC5cbiAqXG4gKiBgZnJvbVBhcnRJbmRleGAgaXMgcGFzc2VkIG9ubHkgaW4gdGhlIGNhc2Ugb2YgYSBwYXJ0aWFsIGBfY2xlYXJgIHJ1bm5pbmcgYXMgYVxuICogcmVzdWx0IG9mIHRydW5jYXRpbmcgYW4gaXRlcmFibGUuXG4gKlxuICogTm90ZSwgdGhpcyBtZXRob2Qgd2lsbCBiZSBwYXRjaGVkIG9udG8gQ2hpbGRQYXJ0IGluc3RhbmNlcyBhbmQgY2FsbGVkIGZyb20gdGhlXG4gKiBjb3JlIGNvZGUgd2hlbiBwYXJ0cyBhcmUgY2xlYXJlZCBvciB0aGUgY29ubmVjdGlvbiBzdGF0ZSBpcyBjaGFuZ2VkIGJ5IHRoZVxuICogdXNlci5cbiAqL1xuZnVuY3Rpb24gbm90aWZ5Q2hpbGRQYXJ0Q29ubmVjdGVkQ2hhbmdlZChcbiAgdGhpczogQ2hpbGRQYXJ0LFxuICBpc0Nvbm5lY3RlZDogYm9vbGVhbixcbiAgaXNDbGVhcmluZ1ZhbHVlID0gZmFsc2UsXG4gIGZyb21QYXJ0SW5kZXggPSAwXG4pIHtcbiAgY29uc3QgdmFsdWUgPSB0aGlzLl8kY29tbWl0dGVkVmFsdWU7XG4gIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5fJGRpc2Nvbm5lY3RhYmxlQ2hpbGRyZW47XG4gIGlmIChjaGlsZHJlbiA9PT0gdW5kZWZpbmVkIHx8IGNoaWxkcmVuLnNpemUgPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGlzQ2xlYXJpbmdWYWx1ZSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgLy8gSXRlcmFibGUgY2FzZTogQW55IENoaWxkUGFydHMgY3JlYXRlZCBieSB0aGUgaXRlcmFibGUgc2hvdWxkIGJlXG4gICAgICAvLyBkaXNjb25uZWN0ZWQgYW5kIHJlbW92ZWQgZnJvbSB0aGlzIENoaWxkUGFydCdzIGRpc2Nvbm5lY3RhYmxlXG4gICAgICAvLyBjaGlsZHJlbiAoc3RhcnRpbmcgYXQgYGZyb21QYXJ0SW5kZXhgIGluIHRoZSBjYXNlIG9mIHRydW5jYXRpb24pXG4gICAgICBmb3IgKGxldCBpID0gZnJvbVBhcnRJbmRleDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG5vdGlmeUNoaWxkcmVuQ29ubmVjdGVkQ2hhbmdlZCh2YWx1ZVtpXSwgZmFsc2UpO1xuICAgICAgICByZW1vdmVEaXNjb25uZWN0YWJsZUZyb21QYXJlbnQodmFsdWVbaV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgLy8gVGVtcGxhdGVJbnN0YW5jZSBjYXNlOiBJZiB0aGUgdmFsdWUgaGFzIGRpc2Nvbm5lY3RhYmxlIGNoaWxkcmVuICh3aWxsXG4gICAgICAvLyBvbmx5IGJlIGluIHRoZSBjYXNlIHRoYXQgaXQgaXMgYSBUZW1wbGF0ZUluc3RhbmNlKSwgd2UgZGlzY29ubmVjdCBpdFxuICAgICAgLy8gYW5kIHJlbW92ZSBpdCBmcm9tIHRoaXMgQ2hpbGRQYXJ0J3MgZGlzY29ubmVjdGFibGUgY2hpbGRyZW5cbiAgICAgIG5vdGlmeUNoaWxkcmVuQ29ubmVjdGVkQ2hhbmdlZCh2YWx1ZSBhcyBEaXNjb25uZWN0YWJsZSwgZmFsc2UpO1xuICAgICAgcmVtb3ZlRGlzY29ubmVjdGFibGVGcm9tUGFyZW50KHZhbHVlIGFzIERpc2Nvbm5lY3RhYmxlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbm90aWZ5Q2hpbGRyZW5Db25uZWN0ZWRDaGFuZ2VkKHRoaXMsIGlzQ29ubmVjdGVkKTtcbiAgfVxufVxuXG4vKipcbiAqIFBhdGNoZXMgZGlzY29ubmVjdGlvbiBBUEkgb250byBDaGlsZFBhcnRzLlxuICovXG5jb25zdCBpbnN0YWxsRGlzY29ubmVjdEFQSSA9IChvYmo6IERpc2Nvbm5lY3RhYmxlKSA9PiB7XG4gIGlmICgob2JqIGFzIENoaWxkUGFydCkudHlwZSA9PSBQYXJ0VHlwZS5DSElMRCkge1xuICAgIChvYmogYXMgQ2hpbGRQYXJ0KS5fJG5vdGlmeUNvbm5lY3Rpb25DaGFuZ2VkID8/PVxuICAgICAgbm90aWZ5Q2hpbGRQYXJ0Q29ubmVjdGVkQ2hhbmdlZDtcbiAgICAob2JqIGFzIENoaWxkUGFydCkuXyRyZXBhcmVudERpc2Nvbm5lY3RhYmxlcyA/Pz0gcmVwYXJlbnREaXNjb25uZWN0YWJsZXM7XG4gIH1cbn07XG5cbi8qKlxuICogQW4gYWJzdHJhY3QgYERpcmVjdGl2ZWAgYmFzZSBjbGFzcyB3aG9zZSBgZGlzY29ubmVjdGVkYCBtZXRob2Qgd2lsbCBiZVxuICogY2FsbGVkIHdoZW4gdGhlIHBhcnQgY29udGFpbmluZyB0aGUgZGlyZWN0aXZlIGlzIGNsZWFyZWQgYXMgYSByZXN1bHQgb2ZcbiAqIHJlLXJlbmRlcmluZywgb3Igd2hlbiB0aGUgdXNlciBjYWxscyBgcGFydC5zZXRDb25uZWN0ZWQoZmFsc2UpYCBvblxuICogYSBwYXJ0IHRoYXQgd2FzIHByZXZpb3VzbHkgcmVuZGVyZWQgY29udGFpbmluZyB0aGUgZGlyZWN0aXZlIChhcyBoYXBwZW5zXG4gKiB3aGVuIGUuZy4gYSBMaXRFbGVtZW50IGRpc2Nvbm5lY3RzIGZyb20gdGhlIERPTSkuXG4gKlxuICogSWYgYHBhcnQuc2V0Q29ubmVjdGVkKHRydWUpYCBpcyBzdWJzZXF1ZW50bHkgY2FsbGVkIG9uIGFcbiAqIGNvbnRhaW5pbmcgcGFydCwgdGhlIGRpcmVjdGl2ZSdzIGByZWNvbm5lY3RlZGAgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHByaW9yXG4gKiB0byBpdHMgbmV4dCBgdXBkYXRlYC9gcmVuZGVyYCBjYWxsYmFja3MuIFdoZW4gaW1wbGVtZW50aW5nIGBkaXNjb25uZWN0ZWRgLFxuICogYHJlY29ubmVjdGVkYCBzaG91bGQgYWxzbyBiZSBpbXBsZW1lbnRlZCB0byBiZSBjb21wYXRpYmxlIHdpdGggcmVjb25uZWN0aW9uLlxuICpcbiAqIE5vdGUgdGhhdCB1cGRhdGVzIG1heSBvY2N1ciB3aGlsZSB0aGUgZGlyZWN0aXZlIGlzIGRpc2Nvbm5lY3RlZC4gQXMgc3VjaCxcbiAqIGRpcmVjdGl2ZXMgc2hvdWxkIGdlbmVyYWxseSBjaGVjayB0aGUgYHRoaXMuaXNDb25uZWN0ZWRgIGZsYWcgZHVyaW5nXG4gKiByZW5kZXIvdXBkYXRlIHRvIGRldGVybWluZSB3aGV0aGVyIGl0IGlzIHNhZmUgdG8gc3Vic2NyaWJlIHRvIHJlc291cmNlc1xuICogdGhhdCBtYXkgcHJldmVudCBnYXJiYWdlIGNvbGxlY3Rpb24uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBc3luY0RpcmVjdGl2ZSBleHRlbmRzIERpcmVjdGl2ZSB7XG4gIC8vIEFzIG9wcG9zZWQgdG8gb3RoZXIgRGlzY29ubmVjdGFibGVzLCBBc3luY0RpcmVjdGl2ZXMgYWx3YXlzIGdldCBub3RpZmllZFxuICAvLyB3aGVuIHRoZSBSb290UGFydCBjb25uZWN0aW9uIGNoYW5nZXMsIHNvIHRoZSBwdWJsaWMgYGlzQ29ubmVjdGVkYFxuICAvLyBpcyBhIGxvY2FsbHkgc3RvcmVkIHZhcmlhYmxlIGluaXRpYWxpemVkIHZpYSBpdHMgcGFydCdzIGdldHRlciBhbmQgc3luY2VkXG4gIC8vIHZpYSBgXyRub3RpZnlEaXJlY3RpdmVDb25uZWN0aW9uQ2hhbmdlZGAuIFRoaXMgaXMgY2hlYXBlciB0aGFuIHVzaW5nXG4gIC8vIHRoZSBfJGlzQ29ubmVjdGVkIGdldHRlciwgd2hpY2ggaGFzIHRvIGxvb2sgYmFjayB1cCB0aGUgdHJlZSBlYWNoIHRpbWUuXG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbiBzdGF0ZSBmb3IgdGhpcyBEaXJlY3RpdmUuXG4gICAqL1xuICBpc0Nvbm5lY3RlZCE6IGJvb2xlYW47XG5cbiAgLy8gQGludGVybmFsXG4gIG92ZXJyaWRlIF8kZGlzY29ubmVjdGFibGVDaGlsZHJlbj86IFNldDxEaXNjb25uZWN0YWJsZT4gPSB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBwYXJ0IHdpdGggaW50ZXJuYWwgZmllbGRzXG4gICAqIEBwYXJhbSBwYXJ0XG4gICAqIEBwYXJhbSBwYXJlbnRcbiAgICogQHBhcmFtIGF0dHJpYnV0ZUluZGV4XG4gICAqL1xuICBvdmVycmlkZSBfJGluaXRpYWxpemUoXG4gICAgcGFydDogUGFydCxcbiAgICBwYXJlbnQ6IERpc2Nvbm5lY3RhYmxlLFxuICAgIGF0dHJpYnV0ZUluZGV4OiBudW1iZXIgfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgc3VwZXIuXyRpbml0aWFsaXplKHBhcnQsIHBhcmVudCwgYXR0cmlidXRlSW5kZXgpO1xuICAgIGFkZERpc2Nvbm5lY3RhYmxlVG9QYXJlbnQodGhpcyk7XG4gICAgdGhpcy5pc0Nvbm5lY3RlZCA9IHBhcnQuXyRpc0Nvbm5lY3RlZDtcbiAgfVxuICAvLyBUaGlzIHByb3BlcnR5IG5lZWRzIHRvIHJlbWFpbiB1bm1pbmlmaWVkLlxuICAvKipcbiAgICogQ2FsbGVkIGZyb20gdGhlIGNvcmUgY29kZSB3aGVuIGEgZGlyZWN0aXZlIGlzIGdvaW5nIGF3YXkgZnJvbSBhIHBhcnQgKGluXG4gICAqIHdoaWNoIGNhc2UgYHNob3VsZFJlbW92ZUZyb21QYXJlbnRgIHNob3VsZCBiZSB0cnVlKSwgYW5kIGZyb20gdGhlXG4gICAqIGBzZXRDaGlsZHJlbkNvbm5lY3RlZGAgaGVscGVyIGZ1bmN0aW9uIHdoZW4gcmVjdXJzaXZlbHkgY2hhbmdpbmcgdGhlXG4gICAqIGNvbm5lY3Rpb24gc3RhdGUgb2YgYSB0cmVlIChpbiB3aGljaCBjYXNlIGBzaG91bGRSZW1vdmVGcm9tUGFyZW50YCBzaG91bGRcbiAgICogYmUgZmFsc2UpLlxuICAgKlxuICAgKiBAcGFyYW0gaXNDb25uZWN0ZWRcbiAgICogQHBhcmFtIGlzQ2xlYXJpbmdEaXJlY3RpdmUgLSBUcnVlIHdoZW4gdGhlIGRpcmVjdGl2ZSBpdHNlbGYgaXMgYmVpbmdcbiAgICogICAgIHJlbW92ZWQ7IGZhbHNlIHdoZW4gdGhlIHRyZWUgaXMgYmVpbmcgZGlzY29ubmVjdGVkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgb3ZlcnJpZGUgWydfJG5vdGlmeURpcmVjdGl2ZUNvbm5lY3Rpb25DaGFuZ2VkJ10oXG4gICAgaXNDb25uZWN0ZWQ6IGJvb2xlYW4sXG4gICAgaXNDbGVhcmluZ0RpcmVjdGl2ZSA9IHRydWVcbiAgKSB7XG4gICAgaWYgKGlzQ29ubmVjdGVkICE9PSB0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICB0aGlzLmlzQ29ubmVjdGVkID0gaXNDb25uZWN0ZWQ7XG4gICAgICBpZiAoaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5yZWNvbm5lY3RlZD8uKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc2Nvbm5lY3RlZD8uKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc0NsZWFyaW5nRGlyZWN0aXZlKSB7XG4gICAgICBub3RpZnlDaGlsZHJlbkNvbm5lY3RlZENoYW5nZWQodGhpcywgaXNDb25uZWN0ZWQpO1xuICAgICAgcmVtb3ZlRGlzY29ubmVjdGFibGVGcm9tUGFyZW50KHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgZGlyZWN0aXZlJ3MgUGFydCBvdXRzaWRlIHRoZSBub3JtYWwgYHVwZGF0ZWAvYHJlbmRlcmBcbiAgICogbGlmZWN5Y2xlIG9mIGEgZGlyZWN0aXZlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBzeW5jaHJvbm91c2x5IGZyb20gYSBkaXJlY3RpdmUncyBgdXBkYXRlYFxuICAgKiBvciBgcmVuZGVyYC5cbiAgICpcbiAgICogQHBhcmFtIGRpcmVjdGl2ZSBUaGUgZGlyZWN0aXZlIHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldFxuICAgKi9cbiAgc2V0VmFsdWUodmFsdWU6IHVua25vd24pIHtcbiAgICBpZiAoaXNTaW5nbGVFeHByZXNzaW9uKHRoaXMuX19wYXJ0IGFzIHVua25vd24gYXMgUGFydEluZm8pKSB7XG4gICAgICB0aGlzLl9fcGFydC5fJHNldFZhbHVlKHZhbHVlLCB0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhpcy5fX2F0dHJpYnV0ZUluZGV4IHdpbGwgYmUgZGVmaW5lZCBpbiB0aGlzIGNhc2UsIGJ1dFxuICAgICAgLy8gYXNzZXJ0IGl0IGluIGRldiBtb2RlXG4gICAgICBpZiAoREVWX01PREUgJiYgdGhpcy5fX2F0dHJpYnV0ZUluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCB0aGlzLl9fYXR0cmlidXRlSW5kZXggdG8gYmUgYSBudW1iZXJgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ld1ZhbHVlcyA9IFsuLi4odGhpcy5fX3BhcnQuXyRjb21taXR0ZWRWYWx1ZSBhcyBBcnJheTx1bmtub3duPildO1xuICAgICAgbmV3VmFsdWVzW3RoaXMuX19hdHRyaWJ1dGVJbmRleCFdID0gdmFsdWU7XG4gICAgICAodGhpcy5fX3BhcnQgYXMgQXR0cmlidXRlUGFydCkuXyRzZXRWYWx1ZShuZXdWYWx1ZXMsIHRoaXMsIDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VyIGNhbGxiYWNrcyBmb3IgaW1wbGVtZW50aW5nIGxvZ2ljIHRvIHJlbGVhc2UgYW55IHJlc291cmNlcy9zdWJzY3JpcHRpb25zXG4gICAqIHRoYXQgbWF5IGhhdmUgYmVlbiByZXRhaW5lZCBieSB0aGlzIGRpcmVjdGl2ZS4gU2luY2UgZGlyZWN0aXZlcyBtYXkgYWxzbyBiZVxuICAgKiByZS1jb25uZWN0ZWQsIGByZWNvbm5lY3RlZGAgc2hvdWxkIGFsc28gYmUgaW1wbGVtZW50ZWQgdG8gcmVzdG9yZSB0aGVcbiAgICogd29ya2luZyBzdGF0ZSBvZiB0aGUgZGlyZWN0aXZlIHByaW9yIHRvIHRoZSBuZXh0IHJlbmRlci5cbiAgICovXG4gIHByb3RlY3RlZCBkaXNjb25uZWN0ZWQoKSB7fVxuICBwcm90ZWN0ZWQgcmVjb25uZWN0ZWQoKSB7fVxufVxuIiwgImV4cG9ydCpmcm9tXCJsaXQtaHRtbC9hc3luYy1kaXJlY3RpdmUuanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFzeW5jLWRpcmVjdGl2ZS5qcy5tYXBcbiIsICJpbXBvcnQgeyB0eXBlIFRlbXBsYXRlUmVzdWx0LCBub0NoYW5nZSB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBBc3luY0RpcmVjdGl2ZSwgZGlyZWN0aXZlIH0gZnJvbSAnbGl0L2FzeW5jLWRpcmVjdGl2ZS5qcyc7XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBwcm9taXNlIGFuZCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgZGlyZWN0aXZlXG4gKi9cbmNsYXNzIFJlc29sdmVEaXJlY3RpdmUgZXh0ZW5kcyBBc3luY0RpcmVjdGl2ZSB7XG4gIHByb21pc2U6IFByb21pc2U8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gIGhhc1Byb21pc2VTZXR0bGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcmVuZGVyKHByb21pc2U6IFByb21pc2U8dW5rbm93bj4pIHtcbiAgICBpZiAodGhpcy5wcm9taXNlICE9PSBwcm9taXNlKSB7XG4gICAgICB0aGlzLnByb21pc2UgPSBwcm9taXNlO1xuXG4gICAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLmhhbmRsZVByb21pc2UocHJvbWlzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vQ2hhbmdlO1xuICB9XG5cbiAgaGFuZGxlUHJvbWlzZShwcm9taXNlOiBQcm9taXNlPHVua25vd24+KSB7XG4gICAgdGhpcy5oYXNQcm9taXNlU2V0dGxlZCA9IGZhbHNlO1xuXG4gICAgcHJvbWlzZS50aGVuKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHRoaXMucHJvbWlzZSA9PT0gcHJvbWlzZSAmJiAhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5oYXNQcm9taXNlU2V0dGxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICBpZiAodGhpcy5wcm9taXNlID09PSBwcm9taXNlICYmICF0aGlzLmhhc1Byb21pc2VTZXR0bGVkKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXJyb3IpO1xuICAgICAgICB0aGlzLmhhc1Byb21pc2VTZXR0bGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGRpc2Nvbm5lY3RlZCgpIHtcbiAgICB0aGlzLmhhc1Byb21pc2VTZXR0bGVkID0gdHJ1ZTsgLy8gcHJldmVudCBzZXR0aW5nIHZhbHVlIGlmIHRoZSBwcm9taXNlIHNldHRsZXMgYWZ0ZXIgZGlzY29ubmVjdGlvblxuICB9XG5cbiAgcmVjb25uZWN0ZWQoKSB7XG4gICAgaWYgKCF0aGlzLmhhc1Byb21pc2VTZXR0bGVkKSB7XG4gICAgICB0aGlzLmhhbmRsZVByb21pc2UodGhpcy5wcm9taXNlISk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlID0gZGlyZWN0aXZlKFJlc29sdmVEaXJlY3RpdmUpO1xuZXhwb3J0IGNvbnN0IHJlc29sdmVFeGVjID0gKGZ1bmNBcmc6ICgpID0+IFByb21pc2U8VGVtcGxhdGVSZXN1bHQgfCB1bmtub3duPikgPT4ge1xuICByZXR1cm4gcmVzb2x2ZShmdW5jQXJnKCkpO1xufVxuIiwgImltcG9ydCB7IG5vQ2hhbmdlIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IEFzeW5jRGlyZWN0aXZlLCBkaXJlY3RpdmUgfSBmcm9tICdsaXQvYXN5bmMtZGlyZWN0aXZlLmpzJztcbmltcG9ydCB7IHJ4anMgfSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHJ4JztcblxuLyoqXG4gKiBTdWJzY3JpYmVzIHRvIGFuIG9ic2VydmFibGVcbiAqL1xuY2xhc3MgU3Vic2NyaWJlRGlyZWN0aXZlIGV4dGVuZHMgQXN5bmNEaXJlY3RpdmUge1xuICBvYnNlcnZhYmxlOiByeGpzLk9ic2VydmFibGU8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gIHN1Yjogcnhqcy5TdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICByZW5kZXIob2JzZXJ2YWJsZTogcnhqcy5PYnNlcnZhYmxlPHVua25vd24+KSB7XG4gICAgaWYgKHRoaXMub2JzZXJ2YWJsZSAhPT0gb2JzZXJ2YWJsZSkge1xuICAgICAgdGhpcy5zdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLm9ic2VydmFibGUgPSBvYnNlcnZhYmxlO1xuXG4gICAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLnN1YnNjcmliZShvYnNlcnZhYmxlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9DaGFuZ2U7XG4gIH1cblxuICBzdWJzY3JpYmUob2JzZXJ2YWJsZTogcnhqcy5PYnNlcnZhYmxlPHVua25vd24+KSB7XG4gICAgdGhpcy5zdWIgPSBvYnNlcnZhYmxlLnN1YnNjcmliZSgodjogdW5rbm93bikgPT4ge1xuICAgICAgdGhpcy5zZXRWYWx1ZSh2KTtcbiAgICB9KTtcbiAgfVxuXG4gIGRpc2Nvbm5lY3RlZCgpIHtcbiAgICB0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHJlY29ubmVjdGVkKCkge1xuICAgIHRoaXMuc3Vic2NyaWJlKHRoaXMub2JzZXJ2YWJsZSEpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBzdWJzY3JpYmUgPSBkaXJlY3RpdmUoU3Vic2NyaWJlRGlyZWN0aXZlKTtcbiIsICJpbXBvcnQgeyB0eXBlIFRlbXBsYXRlUmVzdWx0LCBub0NoYW5nZSB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgdHlwZSB7IERpcmVjdGl2ZVJlc3VsdCB9IGZyb20gJ2xpdC9kaXJlY3RpdmUuanMnO1xuaW1wb3J0IHsgQXN5bmNEaXJlY3RpdmUsIGRpcmVjdGl2ZSB9IGZyb20gJ2xpdC9hc3luYy1kaXJlY3RpdmUuanMnO1xuaW1wb3J0IHsgcnhqcyB9IGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cngnO1xuXG4vKipcbiAqIFN1YnNjcmliZXMgdG8gYW4gb2JzZXJ2YWJsZSBhbmQgYXBwbGllcyBhIHRlbXBsYXRlIGZ1bmN0aW9uIHRvIGVhY2ggZW1pc3Npb24uXG4gKiBAcGFyYW0gb2JzZXJ2YWJsZSAtIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZVxuICogQHBhcmFtIHRlbXBsYXRlRm4gLSBmdW5jdGlvbiBtYXBwaW5nIGVhY2ggZW1pdHRlZCB2YWx1ZSB0byBhIFRlbXBsYXRlUmVzdWx0IG9yIG90aGVyIHJlbmRlcmFibGUgY29udGVudFxuICovXG5jbGFzcyBTdWJzY3JpYmVXaXRoVGVtcGxhdGVEaXJlY3RpdmUgZXh0ZW5kcyBBc3luY0RpcmVjdGl2ZSB7XG4gIHByaXZhdGUgb2JzZXJ2YWJsZT86IHJ4anMuT2JzZXJ2YWJsZTx1bmtub3duPjtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZUZuPzogKHZhbHVlOiB1bmtub3duKSA9PiBUZW1wbGF0ZVJlc3VsdCB8IHVua25vd247XG4gIHByaXZhdGUgc3ViOiByeGpzLlN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHJlbmRlcihcbiAgICBvYnNlcnZhYmxlOiByeGpzLk9ic2VydmFibGU8dW5rbm93bj4sXG4gICAgdGVtcGxhdGVGbjogKHZhbHVlOiB1bmtub3duKSA9PiBUZW1wbGF0ZVJlc3VsdCB8IHVua25vd25cbiAgKSB7XG4gICAgY29uc3QgY2hhbmdlZCA9IHRoaXMub2JzZXJ2YWJsZSAhPT0gb2JzZXJ2YWJsZSB8fCB0aGlzLnRlbXBsYXRlRm4gIT09IHRlbXBsYXRlRm47XG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgIHRoaXMuc3ViPy51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5vYnNlcnZhYmxlID0gb2JzZXJ2YWJsZTtcbiAgICAgIHRoaXMudGVtcGxhdGVGbiA9IHRlbXBsYXRlRm47XG4gICAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLnN0YXJ0U3Vic2NyaXB0aW9uKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBub0NoYW5nZTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRTdWJzY3JpcHRpb24oKSB7XG4gICAgdGhpcy5zdWIgPSB0aGlzLm9ic2VydmFibGUhLnN1YnNjcmliZSgodjogdW5rbm93bikgPT4ge1xuICAgICAgY29uc3Qgb3V0ID0gdGhpcy50ZW1wbGF0ZUZuISh2KTtcbiAgICAgIHRoaXMuc2V0VmFsdWUob3V0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGRpc2Nvbm5lY3RlZCgpIHtcbiAgICB0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHJlY29ubmVjdGVkKCkge1xuICAgIHRoaXMuc3RhcnRTdWJzY3JpcHRpb24oKTtcbiAgfVxufVxuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IHJlbmRlcnMgdGVtcGxhdGVzIGZvciBlYWNoIGVtaXNzaW9uIG9mIGFuIE9ic2VydmFibGUuXG4gKiBVc2FnZTogaHRtbGAke3N1YnNjcmliZVdpdGhUZW1wbGF0ZShteU9ic2VydmFibGUsIHYgPT4gaHRtbGA8c3Bhbj4ke3Z9PC9zcGFuPmApfWBcbiAqL1xuLyoqXG4gKiBUeXBlZCBkaXJlY3RpdmUgZnVuY3Rpb24gc2lnbmF0dXJlOiByZXR1cm5zIGEgTGl0IERpcmVjdGl2ZVJlc3VsdC5cbiAqL1xudHlwZSBTdWJzY3JpYmVXaXRoVGVtcGxhdGVGbiA9IDxUPihcbiAgb2JzZXJ2YWJsZTogcnhqcy5PYnNlcnZhYmxlPFQ+LFxuICB0ZW1wbGF0ZUZuOiAodmFsdWU6IFQpID0+IFRlbXBsYXRlUmVzdWx0IHwgdW5rbm93blxuKSA9PiBEaXJlY3RpdmVSZXN1bHQ7XG5leHBvcnQgY29uc3Qgc3Vic2NyaWJlV2l0aFRlbXBsYXRlID0gZGlyZWN0aXZlKFxuICBTdWJzY3JpYmVXaXRoVGVtcGxhdGVEaXJlY3RpdmVcbikgYXMgU3Vic2NyaWJlV2l0aFRlbXBsYXRlRm47IiwgIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIxIEdvb2dsZSBMTENcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2VcbiAqL1xuXG4vLyBOb3RlLCB0aGlzIG1vZHVsZSBpcyBub3QgaW5jbHVkZWQgaW4gcGFja2FnZSBleHBvcnRzIHNvIHRoYXQgaXQncyBwcml2YXRlIHRvXG4vLyBvdXIgZmlyc3QtcGFydHkgZGlyZWN0aXZlcy4gSWYgaXQgZW5kcyB1cCBiZWluZyB1c2VmdWwsIHdlIGNhbiBvcGVuIGl0IHVwIGFuZFxuLy8gZXhwb3J0IGl0LlxuXG4vKipcbiAqIEhlbHBlciB0byBpdGVyYXRlIGFuIEFzeW5jSXRlcmFibGUgaW4gaXRzIG93biBjbG9zdXJlLlxuICogQHBhcmFtIGl0ZXJhYmxlIFRoZSBpdGVyYWJsZSB0byBpdGVyYXRlXG4gKiBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIHRvIGNhbGwgZm9yIGVhY2ggdmFsdWUuIElmIHRoZSBjYWxsYmFjayByZXR1cm5zXG4gKiBgZmFsc2VgLCB0aGUgbG9vcCB3aWxsIGJlIGJyb2tlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGZvckF3YWl0T2YgPSBhc3luYyA8VD4oXG4gIGl0ZXJhYmxlOiBBc3luY0l0ZXJhYmxlPFQ+LFxuICBjYWxsYmFjazogKHZhbHVlOiBUKSA9PiBQcm9taXNlPGJvb2xlYW4+XG4pID0+IHtcbiAgZm9yIGF3YWl0IChjb25zdCB2IG9mIGl0ZXJhYmxlKSB7XG4gICAgaWYgKChhd2FpdCBjYWxsYmFjayh2KSkgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIEhvbGRzIGEgcmVmZXJlbmNlIHRvIGFuIGluc3RhbmNlIHRoYXQgY2FuIGJlIGRpc2Nvbm5lY3RlZCBhbmQgcmVjb25uZWN0ZWQsXG4gKiBzbyB0aGF0IGEgY2xvc3VyZSBvdmVyIHRoZSByZWYgKGUuZy4gaW4gYSB0aGVuIGZ1bmN0aW9uIHRvIGEgcHJvbWlzZSkgZG9lc1xuICogbm90IHN0cm9uZ2x5IGhvbGQgYSByZWYgdG8gdGhlIGluc3RhbmNlLiBBcHByb3hpbWF0ZXMgYSBXZWFrUmVmIGJ1dCBtdXN0XG4gKiBiZSBtYW51YWxseSBjb25uZWN0ZWQgJiBkaXNjb25uZWN0ZWQgdG8gdGhlIGJhY2tpbmcgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBQc2V1ZG9XZWFrUmVmPFQ+IHtcbiAgcHJpdmF0ZSBfcmVmPzogVDtcbiAgY29uc3RydWN0b3IocmVmOiBUKSB7XG4gICAgdGhpcy5fcmVmID0gcmVmO1xuICB9XG4gIC8qKlxuICAgKiBEaXNhc3NvY2lhdGVzIHRoZSByZWYgd2l0aCB0aGUgYmFja2luZyBpbnN0YW5jZS5cbiAgICovXG4gIGRpc2Nvbm5lY3QoKSB7XG4gICAgdGhpcy5fcmVmID0gdW5kZWZpbmVkO1xuICB9XG4gIC8qKlxuICAgKiBSZWFzc29jaWF0ZXMgdGhlIHJlZiB3aXRoIHRoZSBiYWNraW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcmVjb25uZWN0KHJlZjogVCkge1xuICAgIHRoaXMuX3JlZiA9IHJlZjtcbiAgfVxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBiYWNraW5nIGluc3RhbmNlICh3aWxsIGJlIHVuZGVmaW5lZCB3aGVuIGRpc2Nvbm5lY3RlZClcbiAgICovXG4gIGRlcmVmKCkge1xuICAgIHJldHVybiB0aGlzLl9yZWY7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGhlbHBlciB0byBwYXVzZSBhbmQgcmVzdW1lIHdhaXRpbmcgb24gYSBjb25kaXRpb24gaW4gYW4gYXN5bmMgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFBhdXNlciB7XG4gIHByaXZhdGUgX3Byb21pc2U/OiBQcm9taXNlPHZvaWQ+ID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIF9yZXNvbHZlPzogKCkgPT4gdm9pZCA9IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFdoZW4gcGF1c2VkLCByZXR1cm5zIGEgcHJvbWlzZSB0byBiZSBhd2FpdGVkOyB3aGVuIHVucGF1c2VkLCByZXR1cm5zXG4gICAqIHVuZGVmaW5lZC4gTm90ZSB0aGF0IGluIHRoZSBtaWNyb3Rhc2sgYmV0d2VlbiB0aGUgcGF1c2VyIGJlaW5nIHJlc3VtZWRcbiAgICogYW4gYXdhaXQgb2YgdGhpcyBwcm9taXNlIHJlc29sdmluZywgdGhlIHBhdXNlciBjb3VsZCBiZSBwYXVzZWQgYWdhaW4sXG4gICAqIGhlbmNlIGNhbGxlcnMgc2hvdWxkIGNoZWNrIHRoZSBwcm9taXNlIGluIGEgbG9vcCB3aGVuIGF3YWl0aW5nLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdG8gYmUgYXdhaXRlZCB3aGVuIHBhdXNlZCBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJvbWlzZTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhIHByb21pc2UgdG8gYmUgYXdhaXRlZFxuICAgKi9cbiAgcGF1c2UoKSB7XG4gICAgdGhpcy5fcHJvbWlzZSA/Pz0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+ICh0aGlzLl9yZXNvbHZlID0gcmVzb2x2ZSkpO1xuICB9XG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgcHJvbWlzZSB3aGljaCBtYXkgYmUgYXdhaXRlZFxuICAgKi9cbiAgcmVzdW1lKCkge1xuICAgIHRoaXMuX3Jlc29sdmU/LigpO1xuICAgIHRoaXMuX3Byb21pc2UgPSB0aGlzLl9yZXNvbHZlID0gdW5kZWZpbmVkO1xuICB9XG59XG4iLCAiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5cbmltcG9ydCB7UGFydCwgbm9DaGFuZ2V9IGZyb20gJy4uL2xpdC1odG1sLmpzJztcbmltcG9ydCB7aXNQcmltaXRpdmV9IGZyb20gJy4uL2RpcmVjdGl2ZS1oZWxwZXJzLmpzJztcbmltcG9ydCB7XG4gIGRpcmVjdGl2ZSxcbiAgQXN5bmNEaXJlY3RpdmUsXG4gIERpcmVjdGl2ZVJlc3VsdCxcbn0gZnJvbSAnLi4vYXN5bmMtZGlyZWN0aXZlLmpzJztcbmltcG9ydCB7UGF1c2VyLCBQc2V1ZG9XZWFrUmVmfSBmcm9tICcuL3ByaXZhdGUtYXN5bmMtaGVscGVycy5qcyc7XG5cbmNvbnN0IGlzUHJvbWlzZSA9ICh4OiB1bmtub3duKTogeCBpcyBQcm9taXNlPHVua25vd24+ID0+IHtcbiAgcmV0dXJuICFpc1ByaW1pdGl2ZSh4KSAmJiB0eXBlb2YgKHggYXMge3RoZW4/OiB1bmtub3dufSkudGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn07XG4vLyBFZmZlY3RpdmVseSBpbmZpbml0eSwgYnV0IGEgU01JLlxuY29uc3QgX2luZmluaXR5ID0gMHgzZmZmZmZmZjtcblxudHlwZSBVbndyYXBQcm9taXNlPFQ+ID0gVCBleHRlbmRzIFByb21pc2U8aW5mZXIgVT4gPyBVIDogVDtcblxuZXhwb3J0IGNsYXNzIFVudGlsRGlyZWN0aXZlPFQ+IGV4dGVuZHMgQXN5bmNEaXJlY3RpdmUge1xuICBwcml2YXRlIF9fbGFzdFJlbmRlcmVkSW5kZXg6IG51bWJlciA9IF9pbmZpbml0eTtcbiAgcHJpdmF0ZSBfX3ZhbHVlczogdW5rbm93bltdID0gW107XG4gIHByaXZhdGUgX193ZWFrVGhpcyA9IG5ldyBQc2V1ZG9XZWFrUmVmKHRoaXMpO1xuICBwcml2YXRlIF9fcGF1c2VyID0gbmV3IFBhdXNlcigpO1xuXG4gIHJlbmRlciguLi5hcmdzOiBBcnJheTxUPik6IFVud3JhcFByb21pc2U8VD4ge1xuICAgIHJldHVybiAoYXJncy5maW5kKCh4KSA9PiAhaXNQcm9taXNlKHgpKSA/PyBub0NoYW5nZSkgYXMgVW53cmFwUHJvbWlzZTxUPjtcbiAgfVxuXG4gIG92ZXJyaWRlIHVwZGF0ZShfcGFydDogUGFydCwgYXJnczogQXJyYXk8dW5rbm93bj4pIHtcbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlcyA9IHRoaXMuX192YWx1ZXM7XG4gICAgbGV0IHByZXZpb3VzTGVuZ3RoID0gcHJldmlvdXNWYWx1ZXMubGVuZ3RoO1xuICAgIHRoaXMuX192YWx1ZXMgPSBhcmdzO1xuXG4gICAgY29uc3Qgd2Vha1RoaXMgPSB0aGlzLl9fd2Vha1RoaXM7XG4gICAgY29uc3QgcGF1c2VyID0gdGhpcy5fX3BhdXNlcjtcblxuICAgIC8vIElmIG91ciBpbml0aWFsIHJlbmRlciBvY2N1cnMgd2hpbGUgZGlzY29ubmVjdGVkLCBlbnN1cmUgdGhhdCB0aGUgcGF1c2VyXG4gICAgLy8gYW5kIHdlYWtUaGlzIGFyZSBpbiB0aGUgZGlzY29ubmVjdGVkIHN0YXRlXG4gICAgaWYgKCF0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICB0aGlzLmRpc2Nvbm5lY3RlZCgpO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgLy8gSWYgd2UndmUgcmVuZGVyZWQgYSBoaWdoZXItcHJpb3JpdHkgdmFsdWUgYWxyZWFkeSwgc3RvcC5cbiAgICAgIGlmIChpID4gdGhpcy5fX2xhc3RSZW5kZXJlZEluZGV4KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IGFyZ3NbaV07XG5cbiAgICAgIC8vIFJlbmRlciBub24tUHJvbWlzZSB2YWx1ZXMgaW1tZWRpYXRlbHlcbiAgICAgIGlmICghaXNQcm9taXNlKHZhbHVlKSkge1xuICAgICAgICB0aGlzLl9fbGFzdFJlbmRlcmVkSW5kZXggPSBpO1xuICAgICAgICAvLyBTaW5jZSBhIGxvd2VyLXByaW9yaXR5IHZhbHVlIHdpbGwgbmV2ZXIgb3ZlcndyaXRlIGEgaGlnaGVyLXByaW9yaXR5XG4gICAgICAgIC8vIHN5bmNocm9ub3VzIHZhbHVlLCB3ZSBjYW4gc3RvcCBwcm9jZXNzaW5nIG5vdy5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGlzIGlzIGEgUHJvbWlzZSB3ZSd2ZSBhbHJlYWR5IGhhbmRsZWQsIHNraXAgaXQuXG4gICAgICBpZiAoaSA8IHByZXZpb3VzTGVuZ3RoICYmIHZhbHVlID09PSBwcmV2aW91c1ZhbHVlc1tpXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gV2UgaGF2ZSBhIFByb21pc2UgdGhhdCB3ZSBoYXZlbid0IHNlZW4gYmVmb3JlLCBzbyBwcmlvcml0aWVzIG1heSBoYXZlXG4gICAgICAvLyBjaGFuZ2VkLiBGb3JnZXQgd2hhdCB3ZSByZW5kZXJlZCBiZWZvcmUuXG4gICAgICB0aGlzLl9fbGFzdFJlbmRlcmVkSW5kZXggPSBfaW5maW5pdHk7XG4gICAgICBwcmV2aW91c0xlbmd0aCA9IDA7XG5cbiAgICAgIC8vIE5vdGUsIHRoZSBjYWxsYmFjayBhdm9pZHMgY2xvc2luZyBvdmVyIGB0aGlzYCBzbyB0aGF0IHRoZSBkaXJlY3RpdmVcbiAgICAgIC8vIGNhbiBiZSBnYydlZCBiZWZvcmUgdGhlIHByb21pc2UgcmVzb2x2ZXM7IGluc3RlYWQgYHRoaXNgIGlzIHJldHJpZXZlZFxuICAgICAgLy8gZnJvbSBgd2Vha1RoaXNgLCB3aGljaCBjYW4gYnJlYWsgdGhlIGhhcmQgcmVmZXJlbmNlIGluIHRoZSBjbG9zdXJlIHdoZW5cbiAgICAgIC8vIHRoZSBkaXJlY3RpdmUgZGlzY29ubmVjdHNcbiAgICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihhc3luYyAocmVzdWx0OiB1bmtub3duKSA9PiB7XG4gICAgICAgIC8vIElmIHdlJ3JlIGRpc2Nvbm5lY3RlZCwgd2FpdCB1bnRpbCB3ZSdyZSAobWF5YmUpIHJlY29ubmVjdGVkXG4gICAgICAgIC8vIFRoZSB3aGlsZSBsb29wIGhlcmUgaGFuZGxlcyB0aGUgY2FzZSB0aGF0IHRoZSBjb25uZWN0aW9uIHN0YXRlXG4gICAgICAgIC8vIHRocmFzaGVzLCBjYXVzaW5nIHRoZSBwYXVzZXIgdG8gcmVzdW1lIGFuZCB0aGVuIGdldCByZS1wYXVzZWRcbiAgICAgICAgd2hpbGUgKHBhdXNlci5nZXQoKSkge1xuICAgICAgICAgIGF3YWl0IHBhdXNlci5nZXQoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgY2FsbGJhY2sgZ2V0cyBoZXJlIGFuZCB0aGVyZSBpcyBubyBgdGhpc2AsIGl0IG1lYW5zIHRoYXQgdGhlXG4gICAgICAgIC8vIGRpcmVjdGl2ZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQgYW5kIGdhcmJhZ2UgY29sbGVjdGVkIGFuZCB3ZSBkb24ndFxuICAgICAgICAvLyBuZWVkIHRvIGRvIGFueXRoaW5nIGVsc2VcbiAgICAgICAgY29uc3QgX3RoaXMgPSB3ZWFrVGhpcy5kZXJlZigpO1xuICAgICAgICBpZiAoX3RoaXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gX3RoaXMuX192YWx1ZXMuaW5kZXhPZih2YWx1ZSk7XG4gICAgICAgICAgLy8gSWYgc3RhdGUudmFsdWVzIGRvZXNuJ3QgY29udGFpbiB0aGUgdmFsdWUsIHdlJ3ZlIHJlLXJlbmRlcmVkIHdpdGhvdXRcbiAgICAgICAgICAvLyB0aGUgdmFsdWUsIHNvIGRvbid0IHJlbmRlciBpdC4gVGhlbiwgb25seSByZW5kZXIgaWYgdGhlIHZhbHVlIGlzXG4gICAgICAgICAgLy8gaGlnaGVyLXByaW9yaXR5IHRoYW4gd2hhdCdzIGFscmVhZHkgYmVlbiByZW5kZXJlZC5cbiAgICAgICAgICBpZiAoaW5kZXggPiAtMSAmJiBpbmRleCA8IF90aGlzLl9fbGFzdFJlbmRlcmVkSW5kZXgpIHtcbiAgICAgICAgICAgIF90aGlzLl9fbGFzdFJlbmRlcmVkSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIF90aGlzLnNldFZhbHVlKHJlc3VsdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9DaGFuZ2U7XG4gIH1cblxuICBvdmVycmlkZSBkaXNjb25uZWN0ZWQoKSB7XG4gICAgdGhpcy5fX3dlYWtUaGlzLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9fcGF1c2VyLnBhdXNlKCk7XG4gIH1cblxuICBvdmVycmlkZSByZWNvbm5lY3RlZCgpIHtcbiAgICB0aGlzLl9fd2Vha1RoaXMucmVjb25uZWN0KHRoaXMpO1xuICAgIHRoaXMuX19wYXVzZXIucmVzdW1lKCk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIFVudGlsIHtcbiAgPFQgZXh0ZW5kcyBBcnJheTx1bmtub3duPj4oXG4gICAgLi4uYXJnczogVFxuICApOiBEaXJlY3RpdmVSZXN1bHQ8dHlwZW9mIFVudGlsRGlyZWN0aXZlPFRbbnVtYmVyXT4+O1xufVxuXG4vKipcbiAqIFJlbmRlcnMgb25lIG9mIGEgc2VyaWVzIG9mIHZhbHVlcywgaW5jbHVkaW5nIFByb21pc2VzLCB0byBhIFBhcnQuXG4gKlxuICogVmFsdWVzIGFyZSByZW5kZXJlZCBpbiBwcmlvcml0eSBvcmRlciwgd2l0aCB0aGUgZmlyc3QgYXJndW1lbnQgaGF2aW5nIHRoZVxuICogaGlnaGVzdCBwcmlvcml0eSBhbmQgdGhlIGxhc3QgYXJndW1lbnQgaGF2aW5nIHRoZSBsb3dlc3QgcHJpb3JpdHkuIElmIGFcbiAqIHZhbHVlIGlzIGEgUHJvbWlzZSwgbG93LXByaW9yaXR5IHZhbHVlcyB3aWxsIGJlIHJlbmRlcmVkIHVudGlsIGl0IHJlc29sdmVzLlxuICpcbiAqIFRoZSBwcmlvcml0eSBvZiB2YWx1ZXMgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIHBsYWNlaG9sZGVyIGNvbnRlbnQgZm9yIGFzeW5jXG4gKiBkYXRhLiBGb3IgZXhhbXBsZSwgYSBQcm9taXNlIHdpdGggcGVuZGluZyBjb250ZW50IGNhbiBiZSB0aGUgZmlyc3QsXG4gKiBoaWdoZXN0LXByaW9yaXR5LCBhcmd1bWVudCwgYW5kIGEgbm9uX3Byb21pc2UgbG9hZGluZyBpbmRpY2F0b3IgdGVtcGxhdGUgY2FuXG4gKiBiZSB1c2VkIGFzIHRoZSBzZWNvbmQsIGxvd2VyLXByaW9yaXR5LCBhcmd1bWVudC4gVGhlIGxvYWRpbmcgaW5kaWNhdG9yIHdpbGxcbiAqIHJlbmRlciBpbW1lZGlhdGVseSwgYW5kIHRoZSBwcmltYXJ5IGNvbnRlbnQgd2lsbCByZW5kZXIgd2hlbiB0aGUgUHJvbWlzZVxuICogcmVzb2x2ZXMuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgY29udGVudCA9IGZldGNoKCcuL2NvbnRlbnQudHh0JykudGhlbihyID0+IHIudGV4dCgpKTtcbiAqIGh0bWxgJHt1bnRpbChjb250ZW50LCBodG1sYDxzcGFuPkxvYWRpbmcuLi48L3NwYW4+YCl9YFxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB1bnRpbDogVW50aWwgPSBkaXJlY3RpdmUoVW50aWxEaXJlY3RpdmUpO1xuXG4vKipcbiAqIFRoZSB0eXBlIG9mIHRoZSBjbGFzcyB0aGF0IHBvd2VycyB0aGlzIGRpcmVjdGl2ZS4gTmVjZXNzYXJ5IGZvciBuYW1pbmcgdGhlXG4gKiBkaXJlY3RpdmUncyByZXR1cm4gdHlwZS5cbiAqL1xuLy8gZXhwb3J0IHR5cGUge1VudGlsRGlyZWN0aXZlfTtcbiIsICJleHBvcnQqZnJvbVwibGl0LWh0bWwvZGlyZWN0aXZlcy91bnRpbC5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dW50aWwuanMubWFwXG4iLCAiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5cbmltcG9ydCB7Q2hpbGRQYXJ0LCBub0NoYW5nZX0gZnJvbSAnLi4vbGl0LWh0bWwuanMnO1xuaW1wb3J0IHtcbiAgQXN5bmNEaXJlY3RpdmUsXG4gIGRpcmVjdGl2ZSxcbiAgRGlyZWN0aXZlUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vYXN5bmMtZGlyZWN0aXZlLmpzJztcbmltcG9ydCB7UGF1c2VyLCBQc2V1ZG9XZWFrUmVmLCBmb3JBd2FpdE9mfSBmcm9tICcuL3ByaXZhdGUtYXN5bmMtaGVscGVycy5qcyc7XG5cbnR5cGUgTWFwcGVyPFQ+ID0gKHY6IFQsIGluZGV4PzogbnVtYmVyKSA9PiB1bmtub3duO1xuXG5leHBvcnQgY2xhc3MgQXN5bmNSZXBsYWNlRGlyZWN0aXZlIGV4dGVuZHMgQXN5bmNEaXJlY3RpdmUge1xuICBwcml2YXRlIF9fdmFsdWU/OiBBc3luY0l0ZXJhYmxlPHVua25vd24+O1xuICBwcml2YXRlIF9fd2Vha1RoaXMgPSBuZXcgUHNldWRvV2Vha1JlZih0aGlzKTtcbiAgcHJpdmF0ZSBfX3BhdXNlciA9IG5ldyBQYXVzZXIoKTtcblxuICAvLyBAdHMtZXhwZWN0LWVycm9yIHZhbHVlIG5vdCB1c2VkLCBidXQgd2Ugd2FudCBhIG5pY2UgcGFyYW1ldGVyIGZvciBkb2NzXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcmVuZGVyPFQ+KHZhbHVlOiBBc3luY0l0ZXJhYmxlPFQ+LCBfbWFwcGVyPzogTWFwcGVyPFQ+KSB7XG4gICAgcmV0dXJuIG5vQ2hhbmdlO1xuICB9XG5cbiAgb3ZlcnJpZGUgdXBkYXRlKFxuICAgIF9wYXJ0OiBDaGlsZFBhcnQsXG4gICAgW3ZhbHVlLCBtYXBwZXJdOiBEaXJlY3RpdmVQYXJhbWV0ZXJzPHRoaXM+XG4gICkge1xuICAgIC8vIElmIG91ciBpbml0aWFsIHJlbmRlciBvY2N1cnMgd2hpbGUgZGlzY29ubmVjdGVkLCBlbnN1cmUgdGhhdCB0aGUgcGF1c2VyXG4gICAgLy8gYW5kIHdlYWtUaGlzIGFyZSBpbiB0aGUgZGlzY29ubmVjdGVkIHN0YXRlXG4gICAgaWYgKCF0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICB0aGlzLmRpc2Nvbm5lY3RlZCgpO1xuICAgIH1cbiAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IHNldCB1cCB0aGlzIHBhcnRpY3VsYXIgaXRlcmFibGUsIHdlIGRvbid0IG5lZWRcbiAgICAvLyB0byBkbyBhbnl0aGluZy5cbiAgICBpZiAodmFsdWUgPT09IHRoaXMuX192YWx1ZSkge1xuICAgICAgcmV0dXJuIG5vQ2hhbmdlO1xuICAgIH1cbiAgICB0aGlzLl9fdmFsdWUgPSB2YWx1ZTtcbiAgICBsZXQgaSA9IDA7XG4gICAgY29uc3Qge19fd2Vha1RoaXM6IHdlYWtUaGlzLCBfX3BhdXNlcjogcGF1c2VyfSA9IHRoaXM7XG4gICAgLy8gTm90ZSwgdGhlIGNhbGxiYWNrIGF2b2lkcyBjbG9zaW5nIG92ZXIgYHRoaXNgIHNvIHRoYXQgdGhlIGRpcmVjdGl2ZVxuICAgIC8vIGNhbiBiZSBnYydlZCBiZWZvcmUgdGhlIHByb21pc2UgcmVzb2x2ZXM7IGluc3RlYWQgYHRoaXNgIGlzIHJldHJpZXZlZFxuICAgIC8vIGZyb20gYHdlYWtUaGlzYCwgd2hpY2ggY2FuIGJyZWFrIHRoZSBoYXJkIHJlZmVyZW5jZSBpbiB0aGUgY2xvc3VyZSB3aGVuXG4gICAgLy8gdGhlIGRpcmVjdGl2ZSBkaXNjb25uZWN0c1xuICAgIGZvckF3YWl0T2YodmFsdWUsIGFzeW5jICh2OiB1bmtub3duKSA9PiB7XG4gICAgICAvLyBUaGUgd2hpbGUgbG9vcCBoZXJlIGhhbmRsZXMgdGhlIGNhc2UgdGhhdCB0aGUgY29ubmVjdGlvbiBzdGF0ZVxuICAgICAgLy8gdGhyYXNoZXMsIGNhdXNpbmcgdGhlIHBhdXNlciB0byByZXN1bWUgYW5kIHRoZW4gZ2V0IHJlLXBhdXNlZFxuICAgICAgd2hpbGUgKHBhdXNlci5nZXQoKSkge1xuICAgICAgICBhd2FpdCBwYXVzZXIuZ2V0KCk7XG4gICAgICB9XG4gICAgICAvLyBJZiB0aGUgY2FsbGJhY2sgZ2V0cyBoZXJlIGFuZCB0aGVyZSBpcyBubyBgdGhpc2AsIGl0IG1lYW5zIHRoYXQgdGhlXG4gICAgICAvLyBkaXJlY3RpdmUgaGFzIGJlZW4gZGlzY29ubmVjdGVkIGFuZCBnYXJiYWdlIGNvbGxlY3RlZCBhbmQgd2UgZG9uJ3RcbiAgICAgIC8vIG5lZWQgdG8gZG8gYW55dGhpbmcgZWxzZVxuICAgICAgY29uc3QgX3RoaXMgPSB3ZWFrVGhpcy5kZXJlZigpO1xuICAgICAgaWYgKF90aGlzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdmFsdWUgaXMgdGhlIHN0aWxsIHRoZSBjdXJyZW50IHZhbHVlIG9mXG4gICAgICAgIC8vIHRoZSBwYXJ0LCBhbmQgaWYgbm90IGJhaWwgYmVjYXVzZSBhIG5ldyB2YWx1ZSBvd25zIHRoaXMgcGFydFxuICAgICAgICBpZiAoX3RoaXMuX192YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcyBhIGNvbnZlbmllbmNlLCBiZWNhdXNlIGZ1bmN0aW9uYWwtcHJvZ3JhbW1pbmctc3R5bGVcbiAgICAgICAgLy8gdHJhbnNmb3JtcyBvZiBpdGVyYWJsZXMgYW5kIGFzeW5jIGl0ZXJhYmxlcyByZXF1aXJlcyBhIGxpYnJhcnksXG4gICAgICAgIC8vIHdlIGFjY2VwdCBhIG1hcHBlciBmdW5jdGlvbi4gVGhpcyBpcyBlc3BlY2lhbGx5IGNvbnZlbmllbnQgZm9yXG4gICAgICAgIC8vIHJlbmRlcmluZyBhIHRlbXBsYXRlIGZvciBlYWNoIGl0ZW0uXG4gICAgICAgIGlmIChtYXBwZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHYgPSBtYXBwZXIodiwgaSk7XG4gICAgICAgIH1cblxuICAgICAgICBfdGhpcy5jb21taXRWYWx1ZSh2LCBpKTtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vQ2hhbmdlO1xuICB9XG5cbiAgLy8gT3ZlcnJpZGUgcG9pbnQgZm9yIEFzeW5jQXBwZW5kIHRvIGFwcGVuZCByYXRoZXIgdGhhbiByZXBsYWNlXG4gIHByb3RlY3RlZCBjb21taXRWYWx1ZSh2YWx1ZTogdW5rbm93biwgX2luZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZCgpIHtcbiAgICB0aGlzLl9fd2Vha1RoaXMuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX19wYXVzZXIucGF1c2UoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHJlY29ubmVjdGVkKCkge1xuICAgIHRoaXMuX193ZWFrVGhpcy5yZWNvbm5lY3QodGhpcyk7XG4gICAgdGhpcy5fX3BhdXNlci5yZXN1bWUoKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRoYXQgcmVuZGVycyB0aGUgaXRlbXMgb2YgYW4gYXN5bmMgaXRlcmFibGVbMV0sIHJlcGxhY2luZ1xuICogcHJldmlvdXMgdmFsdWVzIHdpdGggbmV3IHZhbHVlcywgc28gdGhhdCBvbmx5IG9uZSB2YWx1ZSBpcyBldmVyIHJlbmRlcmVkXG4gKiBhdCBhIHRpbWUuIFRoaXMgZGlyZWN0aXZlIG1heSBiZSB1c2VkIGluIGFueSBleHByZXNzaW9uIHR5cGUuXG4gKlxuICogQXN5bmMgaXRlcmFibGVzIGFyZSBvYmplY3RzIHdpdGggYSBgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXWAgbWV0aG9kLCB3aGljaFxuICogcmV0dXJucyBhbiBpdGVyYXRvciB3aG8ncyBgbmV4dCgpYCBtZXRob2QgcmV0dXJucyBhIFByb21pc2UuIFdoZW4gYSBuZXdcbiAqIHZhbHVlIGlzIGF2YWlsYWJsZSwgdGhlIFByb21pc2UgcmVzb2x2ZXMgYW5kIHRoZSB2YWx1ZSBpcyByZW5kZXJlZCB0byB0aGVcbiAqIFBhcnQgY29udHJvbGxlZCBieSB0aGUgZGlyZWN0aXZlLiBJZiBhbm90aGVyIHZhbHVlIG90aGVyIHRoYW4gdGhpc1xuICogZGlyZWN0aXZlIGhhcyBiZWVuIHNldCBvbiB0aGUgUGFydCwgdGhlIGl0ZXJhYmxlIHdpbGwgbm8gbG9uZ2VyIGJlIGxpc3RlbmVkXG4gKiB0byBhbmQgbmV3IHZhbHVlcyB3b24ndCBiZSB3cml0dGVuIHRvIHRoZSBQYXJ0LlxuICpcbiAqIFsxXTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvU3RhdGVtZW50cy9mb3ItYXdhaXQuLi5vZlxuICpcbiAqIEBwYXJhbSB2YWx1ZSBBbiBhc3luYyBpdGVyYWJsZVxuICogQHBhcmFtIG1hcHBlciBBbiBvcHRpb25hbCBmdW5jdGlvbiB0aGF0IG1hcHMgZnJvbSAodmFsdWUsIGluZGV4KSB0byBhbm90aGVyXG4gKiAgICAgdmFsdWUuIFVzZWZ1bCBmb3IgZ2VuZXJhdGluZyB0ZW1wbGF0ZXMgZm9yIGVhY2ggaXRlbSBpbiB0aGUgaXRlcmFibGUuXG4gKi9cbmV4cG9ydCBjb25zdCBhc3luY1JlcGxhY2UgPSBkaXJlY3RpdmUoQXN5bmNSZXBsYWNlRGlyZWN0aXZlKTtcbiIsICIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gKi9cblxuaW1wb3J0IHtDaGlsZFBhcnR9IGZyb20gJy4uL2xpdC1odG1sLmpzJztcbmltcG9ydCB7XG4gIGRpcmVjdGl2ZSxcbiAgRGlyZWN0aXZlUGFyYW1ldGVycyxcbiAgUGFydEluZm8sXG4gIFBhcnRUeXBlLFxufSBmcm9tICcuLi9kaXJlY3RpdmUuanMnO1xuaW1wb3J0IHtBc3luY1JlcGxhY2VEaXJlY3RpdmV9IGZyb20gJy4vYXN5bmMtcmVwbGFjZS5qcyc7XG5pbXBvcnQge1xuICBjbGVhclBhcnQsXG4gIGluc2VydFBhcnQsXG4gIHNldENoaWxkUGFydFZhbHVlLFxufSBmcm9tICcuLi9kaXJlY3RpdmUtaGVscGVycy5qcyc7XG5cbmNsYXNzIEFzeW5jQXBwZW5kRGlyZWN0aXZlIGV4dGVuZHMgQXN5bmNSZXBsYWNlRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBfX2NoaWxkUGFydCE6IENoaWxkUGFydDtcblxuICAvLyBPdmVycmlkZSBBc3luY1JlcGxhY2UgdG8gbmFycm93IHRoZSBhbGxvd2VkIHBhcnQgdHlwZSB0byBDaGlsZFBhcnQgb25seVxuICBjb25zdHJ1Y3RvcihwYXJ0SW5mbzogUGFydEluZm8pIHtcbiAgICBzdXBlcihwYXJ0SW5mbyk7XG4gICAgaWYgKHBhcnRJbmZvLnR5cGUgIT09IFBhcnRUeXBlLkNISUxEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FzeW5jQXBwZW5kIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgZXhwcmVzc2lvbnMnKTtcbiAgICB9XG4gIH1cblxuICAvLyBPdmVycmlkZSBBc3luY1JlcGxhY2UgdG8gc2F2ZSB0aGUgcGFydCBzaW5jZSB3ZSBuZWVkIHRvIGFwcGVuZCBpbnRvIGl0XG4gIG92ZXJyaWRlIHVwZGF0ZShwYXJ0OiBDaGlsZFBhcnQsIHBhcmFtczogRGlyZWN0aXZlUGFyYW1ldGVyczx0aGlzPikge1xuICAgIHRoaXMuX19jaGlsZFBhcnQgPSBwYXJ0O1xuICAgIHJldHVybiBzdXBlci51cGRhdGUocGFydCwgcGFyYW1zKTtcbiAgfVxuXG4gIC8vIE92ZXJyaWRlIEFzeW5jUmVwbGFjZSB0byBhcHBlbmQgcmF0aGVyIHRoYW4gcmVwbGFjZVxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY29tbWl0VmFsdWUodmFsdWU6IHVua25vd24sIGluZGV4OiBudW1iZXIpIHtcbiAgICAvLyBXaGVuIHdlIGdldCB0aGUgZmlyc3QgdmFsdWUsIGNsZWFyIHRoZSBwYXJ0LiBUaGlzIGxldHMgdGhlXG4gICAgLy8gcHJldmlvdXMgdmFsdWUgZGlzcGxheSB1bnRpbCB3ZSBjYW4gcmVwbGFjZSBpdC5cbiAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIGNsZWFyUGFydCh0aGlzLl9fY2hpbGRQYXJ0KTtcbiAgICB9XG4gICAgLy8gQ3JlYXRlIGFuZCBpbnNlcnQgYSBuZXcgcGFydCBhbmQgc2V0IGl0cyB2YWx1ZSB0byB0aGUgbmV4dCB2YWx1ZVxuICAgIGNvbnN0IG5ld1BhcnQgPSBpbnNlcnRQYXJ0KHRoaXMuX19jaGlsZFBhcnQpO1xuICAgIHNldENoaWxkUGFydFZhbHVlKG5ld1BhcnQsIHZhbHVlKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRoYXQgcmVuZGVycyB0aGUgaXRlbXMgb2YgYW4gYXN5bmMgaXRlcmFibGVbMV0sIGFwcGVuZGluZyBuZXdcbiAqIHZhbHVlcyBhZnRlciBwcmV2aW91cyB2YWx1ZXMsIHNpbWlsYXIgdG8gdGhlIGJ1aWx0LWluIHN1cHBvcnQgZm9yIGl0ZXJhYmxlcy5cbiAqIFRoaXMgZGlyZWN0aXZlIGlzIHVzYWJsZSBvbmx5IGluIGNoaWxkIGV4cHJlc3Npb25zLlxuICpcbiAqIEFzeW5jIGl0ZXJhYmxlcyBhcmUgb2JqZWN0cyB3aXRoIGEgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSBtZXRob2QsIHdoaWNoXG4gKiByZXR1cm5zIGFuIGl0ZXJhdG9yIHdobydzIGBuZXh0KClgIG1ldGhvZCByZXR1cm5zIGEgUHJvbWlzZS4gV2hlbiBhIG5ld1xuICogdmFsdWUgaXMgYXZhaWxhYmxlLCB0aGUgUHJvbWlzZSByZXNvbHZlcyBhbmQgdGhlIHZhbHVlIGlzIGFwcGVuZGVkIHRvIHRoZVxuICogUGFydCBjb250cm9sbGVkIGJ5IHRoZSBkaXJlY3RpdmUuIElmIGFub3RoZXIgdmFsdWUgb3RoZXIgdGhhbiB0aGlzXG4gKiBkaXJlY3RpdmUgaGFzIGJlZW4gc2V0IG9uIHRoZSBQYXJ0LCB0aGUgaXRlcmFibGUgd2lsbCBubyBsb25nZXIgYmUgbGlzdGVuZWRcbiAqIHRvIGFuZCBuZXcgdmFsdWVzIHdvbid0IGJlIHdyaXR0ZW4gdG8gdGhlIFBhcnQuXG4gKlxuICogWzFdOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9TdGF0ZW1lbnRzL2Zvci1hd2FpdC4uLm9mXG4gKlxuICogQHBhcmFtIHZhbHVlIEFuIGFzeW5jIGl0ZXJhYmxlXG4gKiBAcGFyYW0gbWFwcGVyIEFuIG9wdGlvbmFsIGZ1bmN0aW9uIHRoYXQgbWFwcyBmcm9tICh2YWx1ZSwgaW5kZXgpIHRvIGFub3RoZXJcbiAqICAgICB2YWx1ZS4gVXNlZnVsIGZvciBnZW5lcmF0aW5nIHRlbXBsYXRlcyBmb3IgZWFjaCBpdGVtIGluIHRoZSBpdGVyYWJsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGFzeW5jQXBwZW5kID0gZGlyZWN0aXZlKEFzeW5jQXBwZW5kRGlyZWN0aXZlKTtcblxuLyoqXG4gKiBUaGUgdHlwZSBvZiB0aGUgY2xhc3MgdGhhdCBwb3dlcnMgdGhpcyBkaXJlY3RpdmUuIE5lY2Vzc2FyeSBmb3IgbmFtaW5nIHRoZVxuICogZGlyZWN0aXZlJ3MgcmV0dXJuIHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIHtBc3luY0FwcGVuZERpcmVjdGl2ZX07XG4iLCAiZXhwb3J0KmZyb21cImxpdC1odG1sL2RpcmVjdGl2ZXMvYXN5bmMtYXBwZW5kLmpzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hc3luYy1hcHBlbmQuanMubWFwXG4iLCAiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjEgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5cbmltcG9ydCB7bm90aGluZ30gZnJvbSAnLi4vbGl0LWh0bWwuanMnO1xuaW1wb3J0IHtcbiAgZGlyZWN0aXZlLFxuICBEaXJlY3RpdmUsXG4gIENoaWxkUGFydCxcbiAgRGlyZWN0aXZlUGFyYW1ldGVycyxcbiAgRGlyZWN0aXZlUmVzdWx0LFxufSBmcm9tICcuLi9kaXJlY3RpdmUuanMnO1xuaW1wb3J0IHtzZXRDb21taXR0ZWRWYWx1ZX0gZnJvbSAnLi4vZGlyZWN0aXZlLWhlbHBlcnMuanMnO1xuXG5jbGFzcyBLZXllZDxUPiBleHRlbmRzIERpcmVjdGl2ZSB7XG4gIGtleTogdW5rbm93biA9IG5vdGhpbmc7XG5cbiAgcmVuZGVyKGs6IHVua25vd24sIHY6IFQpOiBUIHtcbiAgICB0aGlzLmtleSA9IGs7XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICBvdmVycmlkZSB1cGRhdGUocGFydDogQ2hpbGRQYXJ0LCBbaywgdl06IERpcmVjdGl2ZVBhcmFtZXRlcnM8dGhpcz4pIHtcbiAgICBpZiAoayAhPT0gdGhpcy5rZXkpIHtcbiAgICAgIC8vIENsZWFyIHRoZSBwYXJ0IGJlZm9yZSByZXR1cm5pbmcgYSB2YWx1ZS4gVGhlIG9uZS1hcmcgZm9ybSBvZlxuICAgICAgLy8gc2V0Q29tbWl0dGVkVmFsdWUgc2V0cyB0aGUgdmFsdWUgdG8gYSBzZW50aW5lbCB3aGljaCBmb3JjZXMgYVxuICAgICAgLy8gY29tbWl0IHRoZSBuZXh0IHJlbmRlci5cbiAgICAgIHNldENvbW1pdHRlZFZhbHVlKHBhcnQpO1xuICAgICAgdGhpcy5rZXkgPSBrO1xuICAgIH1cbiAgICByZXR1cm4gdjtcbiAgfVxufVxuXG5pbnRlcmZhY2UgS2V5ZWRGdW5jIHtcbiAgPFY+KGs6IHVua25vd24sIHY6IFYpOiBEaXJlY3RpdmVSZXN1bHQ8dHlwZW9mIEtleWVkPFY+Pjtcbn1cblxuLyoqXG4gKiBBc3NvY2lhdGVzIGEgcmVuZGVyYWJsZSB2YWx1ZSB3aXRoIGEgdW5pcXVlIGtleS4gV2hlbiB0aGUga2V5IGNoYW5nZXMsIHRoZVxuICogcHJldmlvdXMgRE9NIGlzIHJlbW92ZWQgYW5kIGRpc3Bvc2VkIGJlZm9yZSByZW5kZXJpbmcgdGhlIG5leHQgdmFsdWUsIGV2ZW5cbiAqIGlmIHRoZSB2YWx1ZSAtIHN1Y2ggYXMgYSB0ZW1wbGF0ZSAtIGlzIHRoZSBzYW1lLlxuICpcbiAqIFRoaXMgaXMgdXNlZnVsIGZvciBmb3JjaW5nIHJlLXJlbmRlcnMgb2Ygc3RhdGVmdWwgY29tcG9uZW50cywgb3Igd29ya2luZ1xuICogd2l0aCBjb2RlIHRoYXQgZXhwZWN0cyBuZXcgZGF0YSB0byBnZW5lcmF0ZSBuZXcgSFRNTCBlbGVtZW50cywgc3VjaCBhcyBzb21lXG4gKiBhbmltYXRpb24gdGVjaG5pcXVlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGtleWVkOiBLZXllZEZ1bmMgPSBkaXJlY3RpdmUoS2V5ZWQpO1xuXG4vKipcbiAqIFRoZSB0eXBlIG9mIHRoZSBjbGFzcyB0aGF0IHBvd2VycyB0aGlzIGRpcmVjdGl2ZS4gTmVjZXNzYXJ5IGZvciBuYW1pbmcgdGhlXG4gKiBkaXJlY3RpdmUncyByZXR1cm4gdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUge0tleWVkfTtcbiIsICJleHBvcnQqZnJvbVwibGl0LWh0bWwvZGlyZWN0aXZlcy9rZXllZC5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9a2V5ZWQuanMubWFwXG4iLCAiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5cbmltcG9ydCB7Q2hpbGRQYXJ0LCBub0NoYW5nZX0gZnJvbSAnLi4vbGl0LWh0bWwuanMnO1xuaW1wb3J0IHtkaXJlY3RpdmUsIERpcmVjdGl2ZSwgUGFydEluZm8sIFBhcnRUeXBlfSBmcm9tICcuLi9kaXJlY3RpdmUuanMnO1xuaW1wb3J0IHtcbiAgaW5zZXJ0UGFydCxcbiAgZ2V0Q29tbWl0dGVkVmFsdWUsXG4gIHJlbW92ZVBhcnQsXG4gIHNldENvbW1pdHRlZFZhbHVlLFxuICBzZXRDaGlsZFBhcnRWYWx1ZSxcbn0gZnJvbSAnLi4vZGlyZWN0aXZlLWhlbHBlcnMuanMnO1xuXG5leHBvcnQgdHlwZSBLZXlGbjxUPiA9IChpdGVtOiBULCBpbmRleDogbnVtYmVyKSA9PiB1bmtub3duO1xuZXhwb3J0IHR5cGUgSXRlbVRlbXBsYXRlPFQ+ID0gKGl0ZW06IFQsIGluZGV4OiBudW1iZXIpID0+IHVua25vd247XG5cbi8vIEhlbHBlciBmb3IgZ2VuZXJhdGluZyBhIG1hcCBvZiBhcnJheSBpdGVtIHRvIGl0cyBpbmRleCBvdmVyIGEgc3Vic2V0XG4vLyBvZiBhbiBhcnJheSAodXNlZCB0byBsYXppbHkgZ2VuZXJhdGUgYG5ld0tleVRvSW5kZXhNYXBgIGFuZFxuLy8gYG9sZEtleVRvSW5kZXhNYXBgKVxuY29uc3QgZ2VuZXJhdGVNYXAgPSAobGlzdDogdW5rbm93bltdLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikgPT4ge1xuICBjb25zdCBtYXAgPSBuZXcgTWFwPHVua25vd24sIG51bWJlcj4oKTtcbiAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgbWFwLnNldChsaXN0W2ldLCBpKTtcbiAgfVxuICByZXR1cm4gbWFwO1xufTtcblxuY2xhc3MgUmVwZWF0RGlyZWN0aXZlIGV4dGVuZHMgRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBfaXRlbUtleXM/OiB1bmtub3duW107XG5cbiAgY29uc3RydWN0b3IocGFydEluZm86IFBhcnRJbmZvKSB7XG4gICAgc3VwZXIocGFydEluZm8pO1xuICAgIGlmIChwYXJ0SW5mby50eXBlICE9PSBQYXJ0VHlwZS5DSElMRCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZXBlYXQoKSBjYW4gb25seSBiZSB1c2VkIGluIHRleHQgZXhwcmVzc2lvbnMnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRWYWx1ZXNBbmRLZXlzPFQ+KFxuICAgIGl0ZW1zOiBJdGVyYWJsZTxUPixcbiAgICBrZXlGbk9yVGVtcGxhdGU6IEtleUZuPFQ+IHwgSXRlbVRlbXBsYXRlPFQ+LFxuICAgIHRlbXBsYXRlPzogSXRlbVRlbXBsYXRlPFQ+XG4gICkge1xuICAgIGxldCBrZXlGbjogS2V5Rm48VD4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKHRlbXBsYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRlbXBsYXRlID0ga2V5Rm5PclRlbXBsYXRlO1xuICAgIH0gZWxzZSBpZiAoa2V5Rm5PclRlbXBsYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGtleUZuID0ga2V5Rm5PclRlbXBsYXRlIGFzIEtleUZuPFQ+O1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gW107XG4gICAgY29uc3QgdmFsdWVzID0gW107XG4gICAgbGV0IGluZGV4ID0gMDtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGtleXNbaW5kZXhdID0ga2V5Rm4gPyBrZXlGbihpdGVtLCBpbmRleCkgOiBpbmRleDtcbiAgICAgIHZhbHVlc1tpbmRleF0gPSB0ZW1wbGF0ZSEoaXRlbSwgaW5kZXgpO1xuICAgICAgaW5kZXgrKztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlcyxcbiAgICAgIGtleXMsXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlcjxUPihpdGVtczogSXRlcmFibGU8VD4sIHRlbXBsYXRlOiBJdGVtVGVtcGxhdGU8VD4pOiBBcnJheTx1bmtub3duPjtcbiAgcmVuZGVyPFQ+KFxuICAgIGl0ZW1zOiBJdGVyYWJsZTxUPixcbiAgICBrZXlGbjogS2V5Rm48VD4gfCBJdGVtVGVtcGxhdGU8VD4sXG4gICAgdGVtcGxhdGU6IEl0ZW1UZW1wbGF0ZTxUPlxuICApOiBBcnJheTx1bmtub3duPjtcbiAgcmVuZGVyPFQ+KFxuICAgIGl0ZW1zOiBJdGVyYWJsZTxUPixcbiAgICBrZXlGbk9yVGVtcGxhdGU6IEtleUZuPFQ+IHwgSXRlbVRlbXBsYXRlPFQ+LFxuICAgIHRlbXBsYXRlPzogSXRlbVRlbXBsYXRlPFQ+XG4gICkge1xuICAgIHJldHVybiB0aGlzLl9nZXRWYWx1ZXNBbmRLZXlzKGl0ZW1zLCBrZXlGbk9yVGVtcGxhdGUsIHRlbXBsYXRlKS52YWx1ZXM7XG4gIH1cblxuICBvdmVycmlkZSB1cGRhdGU8VD4oXG4gICAgY29udGFpbmVyUGFydDogQ2hpbGRQYXJ0LFxuICAgIFtpdGVtcywga2V5Rm5PclRlbXBsYXRlLCB0ZW1wbGF0ZV06IFtcbiAgICAgIEl0ZXJhYmxlPFQ+LFxuICAgICAgS2V5Rm48VD4gfCBJdGVtVGVtcGxhdGU8VD4sXG4gICAgICBJdGVtVGVtcGxhdGU8VD4sXG4gICAgXVxuICApIHtcbiAgICAvLyBPbGQgcGFydCAmIGtleSBsaXN0cyBhcmUgcmV0cmlldmVkIGZyb20gdGhlIGxhc3QgdXBkYXRlICh3aGljaCBtYXlcbiAgICAvLyBiZSBwcmltZWQgYnkgaHlkcmF0aW9uKVxuICAgIGNvbnN0IG9sZFBhcnRzID0gZ2V0Q29tbWl0dGVkVmFsdWUoXG4gICAgICBjb250YWluZXJQYXJ0XG4gICAgKSBhcyBBcnJheTxDaGlsZFBhcnQgfCBudWxsPjtcbiAgICBjb25zdCB7dmFsdWVzOiBuZXdWYWx1ZXMsIGtleXM6IG5ld0tleXN9ID0gdGhpcy5fZ2V0VmFsdWVzQW5kS2V5cyhcbiAgICAgIGl0ZW1zLFxuICAgICAga2V5Rm5PclRlbXBsYXRlLFxuICAgICAgdGVtcGxhdGVcbiAgICApO1xuXG4gICAgLy8gV2UgY2hlY2sgdGhhdCBvbGRQYXJ0cywgdGhlIGNvbW1pdHRlZCB2YWx1ZSwgaXMgYW4gQXJyYXkgYXMgYW5cbiAgICAvLyBpbmRpY2F0b3IgdGhhdCB0aGUgcHJldmlvdXMgdmFsdWUgY2FtZSBmcm9tIGEgcmVwZWF0KCkgY2FsbC4gSWZcbiAgICAvLyBvbGRQYXJ0cyBpcyBub3QgYW4gQXJyYXkgdGhlbiB0aGlzIGlzIHRoZSBmaXJzdCByZW5kZXIgYW5kIHdlIHJldHVyblxuICAgIC8vIGFuIGFycmF5IGZvciBsaXQtaHRtbCdzIGFycmF5IGhhbmRsaW5nIHRvIHJlbmRlciwgYW5kIHJlbWVtYmVyIHRoZVxuICAgIC8vIGtleXMuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG9sZFBhcnRzKSkge1xuICAgICAgdGhpcy5faXRlbUtleXMgPSBuZXdLZXlzO1xuICAgICAgcmV0dXJuIG5ld1ZhbHVlcztcbiAgICB9XG5cbiAgICAvLyBJbiBTU1IgaHlkcmF0aW9uIGl0J3MgcG9zc2libGUgZm9yIG9sZFBhcnRzIHRvIGJlIGFuIGFycmF5IGJ1dCBmb3IgdXNcbiAgICAvLyB0byBub3QgaGF2ZSBpdGVtIGtleXMgYmVjYXVzZSB0aGUgdXBkYXRlKCkgaGFzbid0IHJ1biB5ZXQuIFdlIHNldCB0aGVcbiAgICAvLyBrZXlzIHRvIGFuIGVtcHR5IGFycmF5LiBUaGlzIHdpbGwgY2F1c2UgYWxsIG9sZEtleS9uZXdLZXkgY29tcGFyaXNvbnNcbiAgICAvLyB0byBmYWlsIGFuZCBleGVjdXRpb24gdG8gZmFsbCB0byB0aGUgbGFzdCBuZXN0ZWQgYnJhY2ggYmVsb3cgd2hpY2hcbiAgICAvLyByZXVzZXMgdGhlIG9sZFBhcnQuXG4gICAgY29uc3Qgb2xkS2V5cyA9ICh0aGlzLl9pdGVtS2V5cyA/Pz0gW10pO1xuXG4gICAgLy8gTmV3IHBhcnQgbGlzdCB3aWxsIGJlIGJ1aWx0IHVwIGFzIHdlIGdvIChlaXRoZXIgcmV1c2VkIGZyb21cbiAgICAvLyBvbGQgcGFydHMgb3IgY3JlYXRlZCBmb3IgbmV3IGtleXMgaW4gdGhpcyB1cGRhdGUpLiBUaGlzIGlzXG4gICAgLy8gc2F2ZWQgaW4gdGhlIGFib3ZlIGNhY2hlIGF0IHRoZSBlbmQgb2YgdGhlIHVwZGF0ZS5cbiAgICBjb25zdCBuZXdQYXJ0czogQ2hpbGRQYXJ0W10gPSBbXTtcblxuICAgIC8vIE1hcHMgZnJvbSBrZXkgdG8gaW5kZXggZm9yIGN1cnJlbnQgYW5kIHByZXZpb3VzIHVwZGF0ZTsgdGhlc2VcbiAgICAvLyBhcmUgZ2VuZXJhdGVkIGxhemlseSBvbmx5IHdoZW4gbmVlZGVkIGFzIGEgcGVyZm9ybWFuY2VcbiAgICAvLyBvcHRpbWl6YXRpb24sIHNpbmNlIHRoZXkgYXJlIG9ubHkgcmVxdWlyZWQgZm9yIG11bHRpcGxlXG4gICAgLy8gbm9uLWNvbnRpZ3VvdXMgY2hhbmdlcyBpbiB0aGUgbGlzdCwgd2hpY2ggYXJlIGxlc3MgY29tbW9uLlxuICAgIGxldCBuZXdLZXlUb0luZGV4TWFwITogTWFwPHVua25vd24sIG51bWJlcj47XG4gICAgbGV0IG9sZEtleVRvSW5kZXhNYXAhOiBNYXA8dW5rbm93biwgbnVtYmVyPjtcblxuICAgIC8vIEhlYWQgYW5kIHRhaWwgcG9pbnRlcnMgdG8gb2xkIHBhcnRzIGFuZCBuZXcgdmFsdWVzXG4gICAgbGV0IG9sZEhlYWQgPSAwO1xuICAgIGxldCBvbGRUYWlsID0gb2xkUGFydHMubGVuZ3RoIC0gMTtcbiAgICBsZXQgbmV3SGVhZCA9IDA7XG4gICAgbGV0IG5ld1RhaWwgPSBuZXdWYWx1ZXMubGVuZ3RoIC0gMTtcblxuICAgIC8vIE92ZXJ2aWV3IG9mIE8obikgcmVjb25jaWxpYXRpb24gYWxnb3JpdGhtIChnZW5lcmFsIGFwcHJvYWNoXG4gICAgLy8gYmFzZWQgb24gaWRlYXMgZm91bmQgaW4gaXZpLCB2dWUsIHNuYWJiZG9tLCBldGMuKTpcbiAgICAvL1xuICAgIC8vICogV2Ugc3RhcnQgd2l0aCB0aGUgbGlzdCBvZiBvbGQgcGFydHMgYW5kIG5ldyB2YWx1ZXMgKGFuZFxuICAgIC8vICAgYXJyYXlzIG9mIHRoZWlyIHJlc3BlY3RpdmUga2V5cyksIGhlYWQvdGFpbCBwb2ludGVycyBpbnRvXG4gICAgLy8gICBlYWNoLCBhbmQgd2UgYnVpbGQgdXAgdGhlIG5ldyBsaXN0IG9mIHBhcnRzIGJ5IHVwZGF0aW5nXG4gICAgLy8gICAoYW5kIHdoZW4gbmVlZGVkLCBtb3ZpbmcpIG9sZCBwYXJ0cyBvciBjcmVhdGluZyBuZXcgb25lcy5cbiAgICAvLyAgIFRoZSBpbml0aWFsIHNjZW5hcmlvIG1pZ2h0IGxvb2sgbGlrZSB0aGlzIChmb3IgYnJldml0eSBvZlxuICAgIC8vICAgdGhlIGRpYWdyYW1zLCB0aGUgbnVtYmVycyBpbiB0aGUgYXJyYXkgcmVmbGVjdCBrZXlzXG4gICAgLy8gICBhc3NvY2lhdGVkIHdpdGggdGhlIG9sZCBwYXJ0cyBvciBuZXcgdmFsdWVzLCBhbHRob3VnaCBrZXlzXG4gICAgLy8gICBhbmQgcGFydHMvdmFsdWVzIGFyZSBhY3R1YWxseSBzdG9yZWQgaW4gcGFyYWxsZWwgYXJyYXlzXG4gICAgLy8gICBpbmRleGVkIHVzaW5nIHRoZSBzYW1lIGhlYWQvdGFpbCBwb2ludGVycyk6XG4gICAgLy9cbiAgICAvLyAgICAgIG9sZEhlYWQgdiAgICAgICAgICAgICAgICAgdiBvbGRUYWlsXG4gICAgLy8gICBvbGRLZXlzOiAgWzAsIDEsIDIsIDMsIDQsIDUsIDZdXG4gICAgLy8gICBuZXdQYXJ0czogWyAsICAsICAsICAsICAsICAsICBdXG4gICAgLy8gICBuZXdLZXlzOiAgWzAsIDIsIDEsIDQsIDMsIDcsIDZdIDwtIHJlZmxlY3RzIHRoZSB1c2VyJ3MgbmV3XG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gb3JkZXJcbiAgICAvLyAgICAgIG5ld0hlYWQgXiAgICAgICAgICAgICAgICAgXiBuZXdUYWlsXG4gICAgLy9cbiAgICAvLyAqIEl0ZXJhdGUgb2xkICYgbmV3IGxpc3RzIGZyb20gYm90aCBzaWRlcywgdXBkYXRpbmcsXG4gICAgLy8gICBzd2FwcGluZywgb3IgcmVtb3ZpbmcgcGFydHMgYXQgdGhlIGhlYWQvdGFpbCBsb2NhdGlvbnNcbiAgICAvLyAgIHVudGlsIG5laXRoZXIgaGVhZCBub3IgdGFpbCBjYW4gbW92ZS5cbiAgICAvL1xuICAgIC8vICogRXhhbXBsZSBiZWxvdzoga2V5cyBhdCBoZWFkIHBvaW50ZXJzIG1hdGNoLCBzbyB1cGRhdGUgb2xkXG4gICAgLy8gICBwYXJ0IDAgaW4tcGxhY2UgKG5vIG5lZWQgdG8gbW92ZSBpdCkgYW5kIHJlY29yZCBwYXJ0IDAgaW5cbiAgICAvLyAgIHRoZSBgbmV3UGFydHNgIGxpc3QuIFRoZSBsYXN0IHRoaW5nIHdlIGRvIGlzIGFkdmFuY2UgdGhlXG4gICAgLy8gICBgb2xkSGVhZGAgYW5kIGBuZXdIZWFkYCBwb2ludGVycyAod2lsbCBiZSByZWZsZWN0ZWQgaW4gdGhlXG4gICAgLy8gICBuZXh0IGRpYWdyYW0pLlxuICAgIC8vXG4gICAgLy8gICAgICBvbGRIZWFkIHYgICAgICAgICAgICAgICAgIHYgb2xkVGFpbFxuICAgIC8vICAgb2xkS2V5czogIFswLCAxLCAyLCAzLCA0LCA1LCA2XVxuICAgIC8vICAgbmV3UGFydHM6IFswLCAgLCAgLCAgLCAgLCAgLCAgXSA8LSBoZWFkcyBtYXRjaGVkOiB1cGRhdGUgMFxuICAgIC8vICAgbmV3S2V5czogIFswLCAyLCAxLCA0LCAzLCA3LCA2XSAgICBhbmQgYWR2YW5jZSBib3RoIG9sZEhlYWRcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBuZXdIZWFkXG4gICAgLy8gICAgICBuZXdIZWFkIF4gICAgICAgICAgICAgICAgIF4gbmV3VGFpbFxuICAgIC8vXG4gICAgLy8gKiBFeGFtcGxlIGJlbG93OiBoZWFkIHBvaW50ZXJzIGRvbid0IG1hdGNoLCBidXQgdGFpbFxuICAgIC8vICAgcG9pbnRlcnMgZG8sIHNvIHVwZGF0ZSBwYXJ0IDYgaW4gcGxhY2UgKG5vIG5lZWQgdG8gbW92ZVxuICAgIC8vICAgaXQpLCBhbmQgcmVjb3JkIHBhcnQgNiBpbiB0aGUgYG5ld1BhcnRzYCBsaXN0LiBMYXN0LFxuICAgIC8vICAgYWR2YW5jZSB0aGUgYG9sZFRhaWxgIGFuZCBgb2xkSGVhZGAgcG9pbnRlcnMuXG4gICAgLy9cbiAgICAvLyAgICAgICAgIG9sZEhlYWQgdiAgICAgICAgICAgICAgdiBvbGRUYWlsXG4gICAgLy8gICBvbGRLZXlzOiAgWzAsIDEsIDIsIDMsIDQsIDUsIDZdXG4gICAgLy8gICBuZXdQYXJ0czogWzAsICAsICAsICAsICAsICAsIDZdIDwtIHRhaWxzIG1hdGNoZWQ6IHVwZGF0ZSA2XG4gICAgLy8gICBuZXdLZXlzOiAgWzAsIDIsIDEsIDQsIDMsIDcsIDZdICAgIGFuZCBhZHZhbmNlIGJvdGggb2xkVGFpbFxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIG5ld1RhaWxcbiAgICAvLyAgICAgICAgIG5ld0hlYWQgXiAgICAgICAgICAgICAgXiBuZXdUYWlsXG4gICAgLy9cbiAgICAvLyAqIElmIG5laXRoZXIgaGVhZCBub3IgdGFpbCBtYXRjaDsgbmV4dCBjaGVjayBpZiBvbmUgb2YgdGhlXG4gICAgLy8gICBvbGQgaGVhZC90YWlsIGl0ZW1zIHdhcyByZW1vdmVkLiBXZSBmaXJzdCBuZWVkIHRvIGdlbmVyYXRlXG4gICAgLy8gICB0aGUgcmV2ZXJzZSBtYXAgb2YgbmV3IGtleXMgdG8gaW5kZXggKGBuZXdLZXlUb0luZGV4TWFwYCksXG4gICAgLy8gICB3aGljaCBpcyBkb25lIG9uY2UgbGF6aWx5IGFzIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLFxuICAgIC8vICAgc2luY2Ugd2Ugb25seSBoaXQgdGhpcyBjYXNlIGlmIG11bHRpcGxlIG5vbi1jb250aWd1b3VzXG4gICAgLy8gICBjaGFuZ2VzIHdlcmUgbWFkZS4gTm90ZSB0aGF0IGZvciBjb250aWd1b3VzIHJlbW92YWxcbiAgICAvLyAgIGFueXdoZXJlIGluIHRoZSBsaXN0LCB0aGUgaGVhZCBhbmQgdGFpbHMgd291bGQgYWR2YW5jZVxuICAgIC8vICAgZnJvbSBlaXRoZXIgZW5kIGFuZCBwYXNzIGVhY2ggb3RoZXIgYmVmb3JlIHdlIGdldCB0byB0aGlzXG4gICAgLy8gICBjYXNlIGFuZCByZW1vdmFscyB3b3VsZCBiZSBoYW5kbGVkIGluIHRoZSBmaW5hbCB3aGlsZSBsb29wXG4gICAgLy8gICB3aXRob3V0IG5lZWRpbmcgdG8gZ2VuZXJhdGUgdGhlIG1hcC5cbiAgICAvL1xuICAgIC8vICogRXhhbXBsZSBiZWxvdzogVGhlIGtleSBhdCBgb2xkVGFpbGAgd2FzIHJlbW92ZWQgKG5vIGxvbmdlclxuICAgIC8vICAgaW4gdGhlIGBuZXdLZXlUb0luZGV4TWFwYCksIHNvIHJlbW92ZSB0aGF0IHBhcnQgZnJvbSB0aGVcbiAgICAvLyAgIERPTSBhbmQgYWR2YW5jZSBqdXN0IHRoZSBgb2xkVGFpbGAgcG9pbnRlci5cbiAgICAvL1xuICAgIC8vICAgICAgICAgb2xkSGVhZCB2ICAgICAgICAgICB2IG9sZFRhaWxcbiAgICAvLyAgIG9sZEtleXM6ICBbMCwgMSwgMiwgMywgNCwgNSwgNl1cbiAgICAvLyAgIG5ld1BhcnRzOiBbMCwgICwgICwgICwgICwgICwgNl0gPC0gNSBub3QgaW4gbmV3IG1hcDogcmVtb3ZlXG4gICAgLy8gICBuZXdLZXlzOiAgWzAsIDIsIDEsIDQsIDMsIDcsIDZdICAgIDUgYW5kIGFkdmFuY2Ugb2xkVGFpbFxuICAgIC8vICAgICAgICAgbmV3SGVhZCBeICAgICAgICAgICBeIG5ld1RhaWxcbiAgICAvL1xuICAgIC8vICogT25jZSBoZWFkIGFuZCB0YWlsIGNhbm5vdCBtb3ZlLCBhbnkgbWlzbWF0Y2hlcyBhcmUgZHVlIHRvXG4gICAgLy8gICBlaXRoZXIgbmV3IG9yIG1vdmVkIGl0ZW1zOyBpZiBhIG5ldyBrZXkgaXMgaW4gdGhlIHByZXZpb3VzXG4gICAgLy8gICBcIm9sZCBrZXkgdG8gb2xkIGluZGV4XCIgbWFwLCBtb3ZlIHRoZSBvbGQgcGFydCB0byB0aGUgbmV3XG4gICAgLy8gICBsb2NhdGlvbiwgb3RoZXJ3aXNlIGNyZWF0ZSBhbmQgaW5zZXJ0IGEgbmV3IHBhcnQuIE5vdGVcbiAgICAvLyAgIHRoYXQgd2hlbiBtb3ZpbmcgYW4gb2xkIHBhcnQgd2UgbnVsbCBpdHMgcG9zaXRpb24gaW4gdGhlXG4gICAgLy8gICBvbGRQYXJ0cyBhcnJheSBpZiBpdCBsaWVzIGJldHdlZW4gdGhlIGhlYWQgYW5kIHRhaWwgc28gd2VcbiAgICAvLyAgIGtub3cgdG8gc2tpcCBpdCB3aGVuIHRoZSBwb2ludGVycyBnZXQgdGhlcmUuXG4gICAgLy9cbiAgICAvLyAqIEV4YW1wbGUgYmVsb3c6IG5laXRoZXIgaGVhZCBub3IgdGFpbCBtYXRjaCwgYW5kIG5laXRoZXJcbiAgICAvLyAgIHdlcmUgcmVtb3ZlZDsgc28gZmluZCB0aGUgYG5ld0hlYWRgIGtleSBpbiB0aGVcbiAgICAvLyAgIGBvbGRLZXlUb0luZGV4TWFwYCwgYW5kIG1vdmUgdGhhdCBvbGQgcGFydCdzIERPTSBpbnRvIHRoZVxuICAgIC8vICAgbmV4dCBoZWFkIHBvc2l0aW9uIChiZWZvcmUgYG9sZFBhcnRzW29sZEhlYWRdYCkuIExhc3QsXG4gICAgLy8gICBudWxsIHRoZSBwYXJ0IGluIHRoZSBgb2xkUGFydGAgYXJyYXkgc2luY2UgaXQgd2FzXG4gICAgLy8gICBzb21ld2hlcmUgaW4gdGhlIHJlbWFpbmluZyBvbGRQYXJ0cyBzdGlsbCB0byBiZSBzY2FubmVkXG4gICAgLy8gICAoYmV0d2VlbiB0aGUgaGVhZCBhbmQgdGFpbCBwb2ludGVycykgc28gdGhhdCB3ZSBrbm93IHRvXG4gICAgLy8gICBza2lwIHRoYXQgb2xkIHBhcnQgb24gZnV0dXJlIGl0ZXJhdGlvbnMuXG4gICAgLy9cbiAgICAvLyAgICAgICAgIG9sZEhlYWQgdiAgICAgICAgdiBvbGRUYWlsXG4gICAgLy8gICBvbGRLZXlzOiAgWzAsIDEsIC0sIDMsIDQsIDUsIDZdXG4gICAgLy8gICBuZXdQYXJ0czogWzAsIDIsICAsICAsICAsICAsIDZdIDwtIHN0dWNrOiB1cGRhdGUgJiBtb3ZlIDJcbiAgICAvLyAgIG5ld0tleXM6ICBbMCwgMiwgMSwgNCwgMywgNywgNl0gICAgaW50byBwbGFjZSBhbmQgYWR2YW5jZVxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdIZWFkXG4gICAgLy8gICAgICAgICBuZXdIZWFkIF4gICAgICAgICAgIF4gbmV3VGFpbFxuICAgIC8vXG4gICAgLy8gKiBOb3RlIHRoYXQgZm9yIG1vdmVzL2luc2VydGlvbnMgbGlrZSB0aGUgb25lIGFib3ZlLCBhIHBhcnRcbiAgICAvLyAgIGluc2VydGVkIGF0IHRoZSBoZWFkIHBvaW50ZXIgaXMgaW5zZXJ0ZWQgYmVmb3JlIHRoZVxuICAgIC8vICAgY3VycmVudCBgb2xkUGFydHNbb2xkSGVhZF1gLCBhbmQgYSBwYXJ0IGluc2VydGVkIGF0IHRoZVxuICAgIC8vICAgdGFpbCBwb2ludGVyIGlzIGluc2VydGVkIGJlZm9yZSBgbmV3UGFydHNbbmV3VGFpbCsxXWAuIFRoZVxuICAgIC8vICAgc2VlbWluZyBhc3ltbWV0cnkgbGllcyBpbiB0aGUgZmFjdCB0aGF0IG5ldyBwYXJ0cyBhcmVcbiAgICAvLyAgIG1vdmVkIGludG8gcGxhY2Ugb3V0c2lkZSBpbiwgc28gdG8gdGhlIHJpZ2h0IG9mIHRoZSBoZWFkXG4gICAgLy8gICBwb2ludGVyIGFyZSBvbGQgcGFydHMsIGFuZCB0byB0aGUgcmlnaHQgb2YgdGhlIHRhaWxcbiAgICAvLyAgIHBvaW50ZXIgYXJlIG5ldyBwYXJ0cy5cbiAgICAvL1xuICAgIC8vICogV2UgYWx3YXlzIHJlc3RhcnQgYmFjayBmcm9tIHRoZSB0b3Agb2YgdGhlIGFsZ29yaXRobSxcbiAgICAvLyAgIGFsbG93aW5nIG1hdGNoaW5nIGFuZCBzaW1wbGUgdXBkYXRlcyBpbiBwbGFjZSB0b1xuICAgIC8vICAgY29udGludWUuLi5cbiAgICAvL1xuICAgIC8vICogRXhhbXBsZSBiZWxvdzogdGhlIGhlYWQgcG9pbnRlcnMgb25jZSBhZ2FpbiBtYXRjaCwgc29cbiAgICAvLyAgIHNpbXBseSB1cGRhdGUgcGFydCAxIGFuZCByZWNvcmQgaXQgaW4gdGhlIGBuZXdQYXJ0c2BcbiAgICAvLyAgIGFycmF5LiAgTGFzdCwgYWR2YW5jZSBib3RoIGhlYWQgcG9pbnRlcnMuXG4gICAgLy9cbiAgICAvLyAgICAgICAgIG9sZEhlYWQgdiAgICAgICAgdiBvbGRUYWlsXG4gICAgLy8gICBvbGRLZXlzOiAgWzAsIDEsIC0sIDMsIDQsIDUsIDZdXG4gICAgLy8gICBuZXdQYXJ0czogWzAsIDIsIDEsICAsICAsICAsIDZdIDwtIGhlYWRzIG1hdGNoZWQ6IHVwZGF0ZSAxXG4gICAgLy8gICBuZXdLZXlzOiAgWzAsIDIsIDEsIDQsIDMsIDcsIDZdICAgIGFuZCBhZHZhbmNlIGJvdGggb2xkSGVhZFxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIG5ld0hlYWRcbiAgICAvLyAgICAgICAgICAgIG5ld0hlYWQgXiAgICAgICAgXiBuZXdUYWlsXG4gICAgLy9cbiAgICAvLyAqIEFzIG1lbnRpb25lZCBhYm92ZSwgaXRlbXMgdGhhdCB3ZXJlIG1vdmVkIGFzIGEgcmVzdWx0IG9mXG4gICAgLy8gICBiZWluZyBzdHVjayAodGhlIGZpbmFsIGVsc2UgY2xhdXNlIGluIHRoZSBjb2RlIGJlbG93KSBhcmVcbiAgICAvLyAgIG1hcmtlZCB3aXRoIG51bGwsIHNvIHdlIGFsd2F5cyBhZHZhbmNlIG9sZCBwb2ludGVycyBvdmVyXG4gICAgLy8gICB0aGVzZSBzbyB3ZSdyZSBjb21wYXJpbmcgdGhlIG5leHQgYWN0dWFsIG9sZCB2YWx1ZSBvblxuICAgIC8vICAgZWl0aGVyIGVuZC5cbiAgICAvL1xuICAgIC8vICogRXhhbXBsZSBiZWxvdzogYG9sZEhlYWRgIGlzIG51bGwgKGFscmVhZHkgcGxhY2VkIGluXG4gICAgLy8gICBuZXdQYXJ0cyksIHNvIGFkdmFuY2UgYG9sZEhlYWRgLlxuICAgIC8vXG4gICAgLy8gICAgICAgICAgICBvbGRIZWFkIHYgICAgIHYgb2xkVGFpbFxuICAgIC8vICAgb2xkS2V5czogIFswLCAxLCAtLCAzLCA0LCA1LCA2XSA8LSBvbGQgaGVhZCBhbHJlYWR5IHVzZWQ6XG4gICAgLy8gICBuZXdQYXJ0czogWzAsIDIsIDEsICAsICAsICAsIDZdICAgIGFkdmFuY2Ugb2xkSGVhZFxuICAgIC8vICAgbmV3S2V5czogIFswLCAyLCAxLCA0LCAzLCA3LCA2XVxuICAgIC8vICAgICAgICAgICAgICAgbmV3SGVhZCBeICAgICBeIG5ld1RhaWxcbiAgICAvL1xuICAgIC8vICogTm90ZSBpdCdzIG5vdCBjcml0aWNhbCB0byBtYXJrIG9sZCBwYXJ0cyBhcyBudWxsIHdoZW4gdGhleVxuICAgIC8vICAgYXJlIG1vdmVkIGZyb20gaGVhZCB0byB0YWlsIG9yIHRhaWwgdG8gaGVhZCwgc2luY2UgdGhleVxuICAgIC8vICAgd2lsbCBiZSBvdXRzaWRlIHRoZSBwb2ludGVyIHJhbmdlIGFuZCBuZXZlciB2aXNpdGVkIGFnYWluLlxuICAgIC8vXG4gICAgLy8gKiBFeGFtcGxlIGJlbG93OiBIZXJlIHRoZSBvbGQgdGFpbCBrZXkgbWF0Y2hlcyB0aGUgbmV3IGhlYWRcbiAgICAvLyAgIGtleSwgc28gdGhlIHBhcnQgYXQgdGhlIGBvbGRUYWlsYCBwb3NpdGlvbiBhbmQgbW92ZSBpdHNcbiAgICAvLyAgIERPTSB0byB0aGUgbmV3IGhlYWQgcG9zaXRpb24gKGJlZm9yZSBgb2xkUGFydHNbb2xkSGVhZF1gKS5cbiAgICAvLyAgIExhc3QsIGFkdmFuY2UgYG9sZFRhaWxgIGFuZCBgbmV3SGVhZGAgcG9pbnRlcnMuXG4gICAgLy9cbiAgICAvLyAgICAgICAgICAgICAgIG9sZEhlYWQgdiAgdiBvbGRUYWlsXG4gICAgLy8gICBvbGRLZXlzOiAgWzAsIDEsIC0sIDMsIDQsIDUsIDZdXG4gICAgLy8gICBuZXdQYXJ0czogWzAsIDIsIDEsIDQsICAsICAsIDZdIDwtIG9sZCB0YWlsIG1hdGNoZXMgbmV3XG4gICAgLy8gICBuZXdLZXlzOiAgWzAsIDIsIDEsIDQsIDMsIDcsIDZdICAgaGVhZDogdXBkYXRlICYgbW92ZSA0LFxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmFuY2Ugb2xkVGFpbCAmIG5ld0hlYWRcbiAgICAvLyAgICAgICAgICAgICAgIG5ld0hlYWQgXiAgICAgXiBuZXdUYWlsXG4gICAgLy9cbiAgICAvLyAqIEV4YW1wbGUgYmVsb3c6IE9sZCBhbmQgbmV3IGhlYWQga2V5cyBtYXRjaCwgc28gdXBkYXRlIHRoZVxuICAgIC8vICAgb2xkIGhlYWQgcGFydCBpbiBwbGFjZSwgYW5kIGFkdmFuY2UgdGhlIGBvbGRIZWFkYCBhbmRcbiAgICAvLyAgIGBuZXdIZWFkYCBwb2ludGVycy5cbiAgICAvL1xuICAgIC8vICAgICAgICAgICAgICAgb2xkSGVhZCB2IG9sZFRhaWxcbiAgICAvLyAgIG9sZEtleXM6ICBbMCwgMSwgLSwgMywgNCwgNSwgNl1cbiAgICAvLyAgIG5ld1BhcnRzOiBbMCwgMiwgMSwgNCwgMywgICAsNl0gPC0gaGVhZHMgbWF0Y2g6IHVwZGF0ZSAzXG4gICAgLy8gICBuZXdLZXlzOiAgWzAsIDIsIDEsIDQsIDMsIDcsIDZdICAgIGFuZCBhZHZhbmNlIG9sZEhlYWQgJlxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdIZWFkXG4gICAgLy8gICAgICAgICAgICAgICAgICBuZXdIZWFkIF4gIF4gbmV3VGFpbFxuICAgIC8vXG4gICAgLy8gKiBPbmNlIHRoZSBuZXcgb3Igb2xkIHBvaW50ZXJzIG1vdmUgcGFzdCBlYWNoIG90aGVyIHRoZW4gYWxsXG4gICAgLy8gICB3ZSBoYXZlIGxlZnQgaXMgYWRkaXRpb25zIChpZiBvbGQgbGlzdCBleGhhdXN0ZWQpIG9yXG4gICAgLy8gICByZW1vdmFscyAoaWYgbmV3IGxpc3QgZXhoYXVzdGVkKS4gVGhvc2UgYXJlIGhhbmRsZWQgaW4gdGhlXG4gICAgLy8gICBmaW5hbCB3aGlsZSBsb29wcyBhdCB0aGUgZW5kLlxuICAgIC8vXG4gICAgLy8gKiBFeGFtcGxlIGJlbG93OiBgb2xkSGVhZGAgZXhjZWVkZWQgYG9sZFRhaWxgLCBzbyB3ZSdyZSBkb25lXG4gICAgLy8gICB3aXRoIHRoZSBtYWluIGxvb3AuICBDcmVhdGUgdGhlIHJlbWFpbmluZyBwYXJ0IGFuZCBpbnNlcnRcbiAgICAvLyAgIGl0IGF0IHRoZSBuZXcgaGVhZCBwb3NpdGlvbiwgYW5kIHRoZSB1cGRhdGUgaXMgY29tcGxldGUuXG4gICAgLy9cbiAgICAvLyAgICAgICAgICAgICAgICAgICAob2xkSGVhZCA+IG9sZFRhaWwpXG4gICAgLy8gICBvbGRLZXlzOiAgWzAsIDEsIC0sIDMsIDQsIDUsIDZdXG4gICAgLy8gICBuZXdQYXJ0czogWzAsIDIsIDEsIDQsIDMsIDcgLDZdIDwtIGNyZWF0ZSBhbmQgaW5zZXJ0IDdcbiAgICAvLyAgIG5ld0tleXM6ICBbMCwgMiwgMSwgNCwgMywgNywgNl1cbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIG5ld0hlYWQgXiBuZXdUYWlsXG4gICAgLy9cbiAgICAvLyAqIE5vdGUgdGhhdCB0aGUgb3JkZXIgb2YgdGhlIGlmL2Vsc2UgY2xhdXNlcyBpcyBub3RcbiAgICAvLyAgIGltcG9ydGFudCB0byB0aGUgYWxnb3JpdGhtLCBhcyBsb25nIGFzIHRoZSBudWxsIGNoZWNrc1xuICAgIC8vICAgY29tZSBmaXJzdCAodG8gZW5zdXJlIHdlJ3JlIGFsd2F5cyB3b3JraW5nIG9uIHZhbGlkIG9sZFxuICAgIC8vICAgcGFydHMpIGFuZCB0aGF0IHRoZSBmaW5hbCBlbHNlIGNsYXVzZSBjb21lcyBsYXN0IChzaW5jZVxuICAgIC8vICAgdGhhdCdzIHdoZXJlIHRoZSBleHBlbnNpdmUgbW92ZXMgb2NjdXIpLiBUaGUgb3JkZXIgb2ZcbiAgICAvLyAgIHJlbWFpbmluZyBjbGF1c2VzIGlzIGp1c3QgYSBzaW1wbGUgZ3Vlc3MgYXQgd2hpY2ggY2FzZXNcbiAgICAvLyAgIHdpbGwgYmUgbW9zdCBjb21tb24uXG4gICAgLy9cbiAgICAvLyAqIE5vdGUsIHdlIGNvdWxkIGNhbGN1bGF0ZSB0aGUgbG9uZ2VzdFxuICAgIC8vICAgaW5jcmVhc2luZyBzdWJzZXF1ZW5jZSAoTElTKSBvZiBvbGQgaXRlbXMgaW4gbmV3IHBvc2l0aW9uLFxuICAgIC8vICAgYW5kIG9ubHkgbW92ZSB0aG9zZSBub3QgaW4gdGhlIExJUyBzZXQuIEhvd2V2ZXIgdGhhdCBjb3N0c1xuICAgIC8vICAgTyhubG9nbikgdGltZSBhbmQgYWRkcyBhIGJpdCBtb3JlIGNvZGUsIGFuZCBvbmx5IGhlbHBzXG4gICAgLy8gICBtYWtlIHJhcmUgdHlwZXMgb2YgbXV0YXRpb25zIHJlcXVpcmUgZmV3ZXIgbW92ZXMuIFRoZVxuICAgIC8vICAgYWJvdmUgaGFuZGxlcyByZW1vdmVzLCBhZGRzLCByZXZlcnNhbCwgc3dhcHMsIGFuZCBzaW5nbGVcbiAgICAvLyAgIG1vdmVzIG9mIGNvbnRpZ3VvdXMgaXRlbXMgaW4gbGluZWFyIHRpbWUsIGluIHRoZSBtaW5pbXVtXG4gICAgLy8gICBudW1iZXIgb2YgbW92ZXMuIEFzIHRoZSBudW1iZXIgb2YgbXVsdGlwbGUgbW92ZXMgd2hlcmUgTElTXG4gICAgLy8gICBtaWdodCBoZWxwIGFwcHJvYWNoZXMgYSByYW5kb20gc2h1ZmZsZSwgdGhlIExJU1xuICAgIC8vICAgb3B0aW1pemF0aW9uIGJlY29tZXMgbGVzcyBoZWxwZnVsLCBzbyBpdCBzZWVtcyBub3Qgd29ydGhcbiAgICAvLyAgIHRoZSBjb2RlIGF0IHRoaXMgcG9pbnQuIENvdWxkIHJlY29uc2lkZXIgaWYgYSBjb21wZWxsaW5nXG4gICAgLy8gICBjYXNlIGFyaXNlcy5cblxuICAgIHdoaWxlIChvbGRIZWFkIDw9IG9sZFRhaWwgJiYgbmV3SGVhZCA8PSBuZXdUYWlsKSB7XG4gICAgICBpZiAob2xkUGFydHNbb2xkSGVhZF0gPT09IG51bGwpIHtcbiAgICAgICAgLy8gYG51bGxgIG1lYW5zIG9sZCBwYXJ0IGF0IGhlYWQgaGFzIGFscmVhZHkgYmVlbiB1c2VkXG4gICAgICAgIC8vIGJlbG93OyBza2lwXG4gICAgICAgIG9sZEhlYWQrKztcbiAgICAgIH0gZWxzZSBpZiAob2xkUGFydHNbb2xkVGFpbF0gPT09IG51bGwpIHtcbiAgICAgICAgLy8gYG51bGxgIG1lYW5zIG9sZCBwYXJ0IGF0IHRhaWwgaGFzIGFscmVhZHkgYmVlbiB1c2VkXG4gICAgICAgIC8vIGJlbG93OyBza2lwXG4gICAgICAgIG9sZFRhaWwtLTtcbiAgICAgIH0gZWxzZSBpZiAob2xkS2V5c1tvbGRIZWFkXSA9PT0gbmV3S2V5c1tuZXdIZWFkXSkge1xuICAgICAgICAvLyBPbGQgaGVhZCBtYXRjaGVzIG5ldyBoZWFkOyB1cGRhdGUgaW4gcGxhY2VcbiAgICAgICAgbmV3UGFydHNbbmV3SGVhZF0gPSBzZXRDaGlsZFBhcnRWYWx1ZShcbiAgICAgICAgICBvbGRQYXJ0c1tvbGRIZWFkXSEsXG4gICAgICAgICAgbmV3VmFsdWVzW25ld0hlYWRdXG4gICAgICAgICk7XG4gICAgICAgIG9sZEhlYWQrKztcbiAgICAgICAgbmV3SGVhZCsrO1xuICAgICAgfSBlbHNlIGlmIChvbGRLZXlzW29sZFRhaWxdID09PSBuZXdLZXlzW25ld1RhaWxdKSB7XG4gICAgICAgIC8vIE9sZCB0YWlsIG1hdGNoZXMgbmV3IHRhaWw7IHVwZGF0ZSBpbiBwbGFjZVxuICAgICAgICBuZXdQYXJ0c1tuZXdUYWlsXSA9IHNldENoaWxkUGFydFZhbHVlKFxuICAgICAgICAgIG9sZFBhcnRzW29sZFRhaWxdISxcbiAgICAgICAgICBuZXdWYWx1ZXNbbmV3VGFpbF1cbiAgICAgICAgKTtcbiAgICAgICAgb2xkVGFpbC0tO1xuICAgICAgICBuZXdUYWlsLS07XG4gICAgICB9IGVsc2UgaWYgKG9sZEtleXNbb2xkSGVhZF0gPT09IG5ld0tleXNbbmV3VGFpbF0pIHtcbiAgICAgICAgLy8gT2xkIGhlYWQgbWF0Y2hlcyBuZXcgdGFpbDsgdXBkYXRlIGFuZCBtb3ZlIHRvIG5ldyB0YWlsXG4gICAgICAgIG5ld1BhcnRzW25ld1RhaWxdID0gc2V0Q2hpbGRQYXJ0VmFsdWUoXG4gICAgICAgICAgb2xkUGFydHNbb2xkSGVhZF0hLFxuICAgICAgICAgIG5ld1ZhbHVlc1tuZXdUYWlsXVxuICAgICAgICApO1xuICAgICAgICBpbnNlcnRQYXJ0KGNvbnRhaW5lclBhcnQsIG5ld1BhcnRzW25ld1RhaWwgKyAxXSwgb2xkUGFydHNbb2xkSGVhZF0hKTtcbiAgICAgICAgb2xkSGVhZCsrO1xuICAgICAgICBuZXdUYWlsLS07XG4gICAgICB9IGVsc2UgaWYgKG9sZEtleXNbb2xkVGFpbF0gPT09IG5ld0tleXNbbmV3SGVhZF0pIHtcbiAgICAgICAgLy8gT2xkIHRhaWwgbWF0Y2hlcyBuZXcgaGVhZDsgdXBkYXRlIGFuZCBtb3ZlIHRvIG5ldyBoZWFkXG4gICAgICAgIG5ld1BhcnRzW25ld0hlYWRdID0gc2V0Q2hpbGRQYXJ0VmFsdWUoXG4gICAgICAgICAgb2xkUGFydHNbb2xkVGFpbF0hLFxuICAgICAgICAgIG5ld1ZhbHVlc1tuZXdIZWFkXVxuICAgICAgICApO1xuICAgICAgICBpbnNlcnRQYXJ0KGNvbnRhaW5lclBhcnQsIG9sZFBhcnRzW29sZEhlYWRdISwgb2xkUGFydHNbb2xkVGFpbF0hKTtcbiAgICAgICAgb2xkVGFpbC0tO1xuICAgICAgICBuZXdIZWFkKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobmV3S2V5VG9JbmRleE1hcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gTGF6aWx5IGdlbmVyYXRlIGtleS10by1pbmRleCBtYXBzLCB1c2VkIGZvciByZW1vdmFscyAmXG4gICAgICAgICAgLy8gbW92ZXMgYmVsb3dcbiAgICAgICAgICBuZXdLZXlUb0luZGV4TWFwID0gZ2VuZXJhdGVNYXAobmV3S2V5cywgbmV3SGVhZCwgbmV3VGFpbCk7XG4gICAgICAgICAgb2xkS2V5VG9JbmRleE1hcCA9IGdlbmVyYXRlTWFwKG9sZEtleXMsIG9sZEhlYWQsIG9sZFRhaWwpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbmV3S2V5VG9JbmRleE1hcC5oYXMob2xkS2V5c1tvbGRIZWFkXSkpIHtcbiAgICAgICAgICAvLyBPbGQgaGVhZCBpcyBubyBsb25nZXIgaW4gbmV3IGxpc3Q7IHJlbW92ZVxuICAgICAgICAgIHJlbW92ZVBhcnQob2xkUGFydHNbb2xkSGVhZF0hKTtcbiAgICAgICAgICBvbGRIZWFkKys7XG4gICAgICAgIH0gZWxzZSBpZiAoIW5ld0tleVRvSW5kZXhNYXAuaGFzKG9sZEtleXNbb2xkVGFpbF0pKSB7XG4gICAgICAgICAgLy8gT2xkIHRhaWwgaXMgbm8gbG9uZ2VyIGluIG5ldyBsaXN0OyByZW1vdmVcbiAgICAgICAgICByZW1vdmVQYXJ0KG9sZFBhcnRzW29sZFRhaWxdISk7XG4gICAgICAgICAgb2xkVGFpbC0tO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFueSBtaXNtYXRjaGVzIGF0IHRoaXMgcG9pbnQgYXJlIGR1ZSB0byBhZGRpdGlvbnMgb3JcbiAgICAgICAgICAvLyBtb3Zlczsgc2VlIGlmIHdlIGhhdmUgYW4gb2xkIHBhcnQgd2UgY2FuIHJldXNlIGFuZCBtb3ZlXG4gICAgICAgICAgLy8gaW50byBwbGFjZVxuICAgICAgICAgIGNvbnN0IG9sZEluZGV4ID0gb2xkS2V5VG9JbmRleE1hcC5nZXQobmV3S2V5c1tuZXdIZWFkXSk7XG4gICAgICAgICAgY29uc3Qgb2xkUGFydCA9IG9sZEluZGV4ICE9PSB1bmRlZmluZWQgPyBvbGRQYXJ0c1tvbGRJbmRleF0gOiBudWxsO1xuICAgICAgICAgIGlmIChvbGRQYXJ0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBObyBvbGQgcGFydCBmb3IgdGhpcyB2YWx1ZTsgY3JlYXRlIGEgbmV3IG9uZSBhbmRcbiAgICAgICAgICAgIC8vIGluc2VydCBpdFxuICAgICAgICAgICAgY29uc3QgbmV3UGFydCA9IGluc2VydFBhcnQoY29udGFpbmVyUGFydCwgb2xkUGFydHNbb2xkSGVhZF0hKTtcbiAgICAgICAgICAgIHNldENoaWxkUGFydFZhbHVlKG5ld1BhcnQsIG5ld1ZhbHVlc1tuZXdIZWFkXSk7XG4gICAgICAgICAgICBuZXdQYXJ0c1tuZXdIZWFkXSA9IG5ld1BhcnQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFJldXNlIG9sZCBwYXJ0XG4gICAgICAgICAgICBuZXdQYXJ0c1tuZXdIZWFkXSA9IHNldENoaWxkUGFydFZhbHVlKG9sZFBhcnQsIG5ld1ZhbHVlc1tuZXdIZWFkXSk7XG4gICAgICAgICAgICBpbnNlcnRQYXJ0KGNvbnRhaW5lclBhcnQsIG9sZFBhcnRzW29sZEhlYWRdISwgb2xkUGFydCk7XG4gICAgICAgICAgICAvLyBUaGlzIG1hcmtzIHRoZSBvbGQgcGFydCBhcyBoYXZpbmcgYmVlbiB1c2VkLCBzbyB0aGF0XG4gICAgICAgICAgICAvLyBpdCB3aWxsIGJlIHNraXBwZWQgaW4gdGhlIGZpcnN0IHR3byBjaGVja3MgYWJvdmVcbiAgICAgICAgICAgIG9sZFBhcnRzW29sZEluZGV4IGFzIG51bWJlcl0gPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuZXdIZWFkKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQWRkIHBhcnRzIGZvciBhbnkgcmVtYWluaW5nIG5ldyB2YWx1ZXNcbiAgICB3aGlsZSAobmV3SGVhZCA8PSBuZXdUYWlsKSB7XG4gICAgICAvLyBGb3IgYWxsIHJlbWFpbmluZyBhZGRpdGlvbnMsIHdlIGluc2VydCBiZWZvcmUgbGFzdCBuZXdcbiAgICAgIC8vIHRhaWwsIHNpbmNlIG9sZCBwb2ludGVycyBhcmUgbm8gbG9uZ2VyIHZhbGlkXG4gICAgICBjb25zdCBuZXdQYXJ0ID0gaW5zZXJ0UGFydChjb250YWluZXJQYXJ0LCBuZXdQYXJ0c1tuZXdUYWlsICsgMV0pO1xuICAgICAgc2V0Q2hpbGRQYXJ0VmFsdWUobmV3UGFydCwgbmV3VmFsdWVzW25ld0hlYWRdKTtcbiAgICAgIG5ld1BhcnRzW25ld0hlYWQrK10gPSBuZXdQYXJ0O1xuICAgIH1cbiAgICAvLyBSZW1vdmUgYW55IHJlbWFpbmluZyB1bnVzZWQgb2xkIHBhcnRzXG4gICAgd2hpbGUgKG9sZEhlYWQgPD0gb2xkVGFpbCkge1xuICAgICAgY29uc3Qgb2xkUGFydCA9IG9sZFBhcnRzW29sZEhlYWQrK107XG4gICAgICBpZiAob2xkUGFydCAhPT0gbnVsbCkge1xuICAgICAgICByZW1vdmVQYXJ0KG9sZFBhcnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNhdmUgb3JkZXIgb2YgbmV3IHBhcnRzIGZvciBuZXh0IHJvdW5kXG4gICAgdGhpcy5faXRlbUtleXMgPSBuZXdLZXlzO1xuICAgIC8vIERpcmVjdGx5IHNldCBwYXJ0IHZhbHVlLCBieXBhc3NpbmcgaXQncyBkaXJ0eS1jaGVja2luZ1xuICAgIHNldENvbW1pdHRlZFZhbHVlKGNvbnRhaW5lclBhcnQsIG5ld1BhcnRzKTtcbiAgICByZXR1cm4gbm9DaGFuZ2U7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBlYXREaXJlY3RpdmVGbiB7XG4gIDxUPihcbiAgICBpdGVtczogSXRlcmFibGU8VD4sXG4gICAga2V5Rm5PclRlbXBsYXRlOiBLZXlGbjxUPiB8IEl0ZW1UZW1wbGF0ZTxUPixcbiAgICB0ZW1wbGF0ZT86IEl0ZW1UZW1wbGF0ZTxUPlxuICApOiB1bmtub3duO1xuICA8VD4oaXRlbXM6IEl0ZXJhYmxlPFQ+LCB0ZW1wbGF0ZTogSXRlbVRlbXBsYXRlPFQ+KTogdW5rbm93bjtcbiAgPFQ+KFxuICAgIGl0ZW1zOiBJdGVyYWJsZTxUPixcbiAgICBrZXlGbjogS2V5Rm48VD4gfCBJdGVtVGVtcGxhdGU8VD4sXG4gICAgdGVtcGxhdGU6IEl0ZW1UZW1wbGF0ZTxUPlxuICApOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRoYXQgcmVwZWF0cyBhIHNlcmllcyBvZiB2YWx1ZXMgKHVzdWFsbHkgYFRlbXBsYXRlUmVzdWx0c2ApXG4gKiBnZW5lcmF0ZWQgZnJvbSBhbiBpdGVyYWJsZSwgYW5kIHVwZGF0ZXMgdGhvc2UgaXRlbXMgZWZmaWNpZW50bHkgd2hlbiB0aGVcbiAqIGl0ZXJhYmxlIGNoYW5nZXMgYmFzZWQgb24gdXNlci1wcm92aWRlZCBga2V5c2AgYXNzb2NpYXRlZCB3aXRoIGVhY2ggaXRlbS5cbiAqXG4gKiBOb3RlIHRoYXQgaWYgYSBga2V5Rm5gIGlzIHByb3ZpZGVkLCBzdHJpY3Qga2V5LXRvLURPTSBtYXBwaW5nIGlzIG1haW50YWluZWQsXG4gKiBtZWFuaW5nIHByZXZpb3VzIERPTSBmb3IgYSBnaXZlbiBrZXkgaXMgbW92ZWQgaW50byB0aGUgbmV3IHBvc2l0aW9uIGlmXG4gKiBuZWVkZWQsIGFuZCBET00gd2lsbCBuZXZlciBiZSByZXVzZWQgd2l0aCB2YWx1ZXMgZm9yIGRpZmZlcmVudCBrZXlzIChuZXcgRE9NXG4gKiB3aWxsIGFsd2F5cyBiZSBjcmVhdGVkIGZvciBuZXcga2V5cykuIFRoaXMgaXMgZ2VuZXJhbGx5IHRoZSBtb3N0IGVmZmljaWVudFxuICogd2F5IHRvIHVzZSBgcmVwZWF0YCBzaW5jZSBpdCBwZXJmb3JtcyBtaW5pbXVtIHVubmVjZXNzYXJ5IHdvcmsgZm9yIGluc2VydGlvbnNcbiAqIGFuZCByZW1vdmFscy5cbiAqXG4gKiBUaGUgYGtleUZuYCB0YWtlcyB0d28gcGFyYW1ldGVycywgdGhlIGl0ZW0gYW5kIGl0cyBpbmRleCwgYW5kIHJldHVybnMgYSB1bmlxdWUga2V5IHZhbHVlLlxuICpcbiAqIGBgYGpzXG4gKiBodG1sYFxuICogICA8b2w+XG4gKiAgICAgJHtyZXBlYXQodGhpcy5pdGVtcywgKGl0ZW0pID0+IGl0ZW0uaWQsIChpdGVtLCBpbmRleCkgPT4ge1xuICogICAgICAgcmV0dXJuIGh0bWxgPGxpPiR7aW5kZXh9OiAke2l0ZW0ubmFtZX08L2xpPmA7XG4gKiAgICAgfSl9XG4gKiAgIDwvb2w+XG4gKiBgXG4gKiBgYGBcbiAqXG4gKiAqKkltcG9ydGFudCoqOiBJZiBwcm92aWRpbmcgYSBga2V5Rm5gLCBrZXlzICptdXN0KiBiZSB1bmlxdWUgZm9yIGFsbCBpdGVtcyBpbiBhXG4gKiBnaXZlbiBjYWxsIHRvIGByZXBlYXRgLiBUaGUgYmVoYXZpb3Igd2hlbiB0d28gb3IgbW9yZSBpdGVtcyBoYXZlIHRoZSBzYW1lIGtleVxuICogaXMgdW5kZWZpbmVkLlxuICpcbiAqIElmIG5vIGBrZXlGbmAgaXMgcHJvdmlkZWQsIHRoaXMgZGlyZWN0aXZlIHdpbGwgcGVyZm9ybSBzaW1pbGFyIHRvIG1hcHBpbmdcbiAqIGl0ZW1zIHRvIHZhbHVlcywgYW5kIERPTSB3aWxsIGJlIHJldXNlZCBhZ2FpbnN0IHBvdGVudGlhbGx5IGRpZmZlcmVudCBpdGVtcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlcGVhdCA9IGRpcmVjdGl2ZShSZXBlYXREaXJlY3RpdmUpIGFzIFJlcGVhdERpcmVjdGl2ZUZuO1xuXG4vKipcbiAqIFRoZSB0eXBlIG9mIHRoZSBjbGFzcyB0aGF0IHBvd2VycyB0aGlzIGRpcmVjdGl2ZS4gTmVjZXNzYXJ5IGZvciBuYW1pbmcgdGhlXG4gKiBkaXJlY3RpdmUncyByZXR1cm4gdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUge1JlcGVhdERpcmVjdGl2ZX07XG4iLCAiZXhwb3J0KmZyb21cImxpdC1odG1sL2RpcmVjdGl2ZXMvcmVwZWF0LmpzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXBlYXQuanMubWFwXG4iLCAiLy8gYmV0dGVyIHNjb3BlZCBleHBvcnRzXG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMucmVzb2x2ZWRpcmVjdGl2ZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMuc3Vic2NyaWJlZGlyZWN0aXZlLmpzJztcblxuXG5leHBvcnQgeyBzdWJzY3JpYmVXaXRoVGVtcGxhdGUgfSBmcm9tICcuL2NsYXNzZXMuc3Vic2NyaWJld2l0aHRlbXBsYXRlLmpzJztcblxuZXhwb3J0IHsgdW50aWwgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy91bnRpbC5qcyc7XG5leHBvcnQgeyBhc3luY0FwcGVuZCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2FzeW5jLWFwcGVuZC5qcyc7XG5leHBvcnQgeyBrZXllZCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2tleWVkLmpzJztcbmV4cG9ydCB7IHJlcGVhdCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlcGVhdC5qcyc7IiwgImltcG9ydCB7IENzc01hbmFnZXIgfSBmcm9tICcuL2NsYXNzZXMuY3NzbWFuYWdlci5qcyc7XG5cbi8vIGxpdCBleHBvcnRzXG5leHBvcnQgeyBodG1sLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCBjc3MsIHVuc2FmZUNTUywgcmVuZGVyLCB0eXBlIENTU1Jlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCB7IGh0bWwgYXMgc3RhdGljLCB1bnNhZmVTdGF0aWMgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5leHBvcnQgeyB1bnNhZmVIVE1MIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvdW5zYWZlLWh0bWwuanMnO1xuXG5leHBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMvY3VzdG9tLWVsZW1lbnQuanMnO1xuXG5leHBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUsIHF1ZXJ5LCBxdWVyeUFsbCwgcXVlcnlBc3luYyB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuLy8gZG9tdG9vbHMgZXhwb3J0c1xuaW1wb3J0ICogYXMgZG9tdG9vbHMgZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyc7XG5leHBvcnQgeyBkb210b29scyB9O1xuXG4vLyBEZWVzRWxlbWVudHMgZXhwb3J0c1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzLmRlZXMtZWxlbWVudC5qcyc7XG5cbi8vIGRpcmVjdGl2ZXMgZXhwb3J0c1xuaW1wb3J0ICogYXMgZGlyZWN0aXZlcyBmcm9tICcuL2RpcmVjdGl2ZXMvaW5kZXguanMnO1xuXG5leHBvcnQgeyBkaXJlY3RpdmVzIH07XG5cbi8qKlxuICogYSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgQ3NzTWFuYWdlclxuICovXG5leHBvcnQgY29uc3QgY3NzTWFuYWdlciA9IENzc01hbmFnZXIuZ2V0U2luZ2xldG9uKCk7XG5cblxuXG4vLyB0eXBlIGV4cG9ydHNcbmltcG9ydCB0eXBlIHsgcnhqcyB9IGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cngnO1xuXG5leHBvcnQgdHlwZSB7XG4gIHJ4anMsXG59IiwgImltcG9ydCB7IGNzcywgdHlwZSBDU1NSZXN1bHQgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVGhlbWUgVG9rZW4gVHlwZSBEZWZpbml0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJVGhlbWVDb2xvcnMge1xuICBiZ1ByaW1hcnk6IHN0cmluZztcbiAgYmdTZWNvbmRhcnk6IHN0cmluZztcbiAgYmdUZXJ0aWFyeTogc3RyaW5nO1xuICB0ZXh0UHJpbWFyeTogc3RyaW5nO1xuICB0ZXh0U2Vjb25kYXJ5OiBzdHJpbmc7XG4gIHRleHRNdXRlZDogc3RyaW5nO1xuICBib3JkZXJEZWZhdWx0OiBzdHJpbmc7XG4gIGJvcmRlclN1YnRsZTogc3RyaW5nO1xuICBib3JkZXJTdHJvbmc6IHN0cmluZztcbiAgYWNjZW50UHJpbWFyeTogc3RyaW5nO1xuICBhY2NlbnRTdWNjZXNzOiBzdHJpbmc7XG4gIGFjY2VudFdhcm5pbmc6IHN0cmluZztcbiAgYWNjZW50RXJyb3I6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGhlbWVTcGFjaW5nIHtcbiAgeHM6IHN0cmluZztcbiAgc206IHN0cmluZztcbiAgbWQ6IHN0cmluZztcbiAgbGc6IHN0cmluZztcbiAgeGw6IHN0cmluZztcbiAgJzJ4bCc6IHN0cmluZztcbiAgJzN4bCc6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGhlbWVSYWRpdXMge1xuICB4czogc3RyaW5nO1xuICBzbTogc3RyaW5nO1xuICBtZDogc3RyaW5nO1xuICBsZzogc3RyaW5nO1xuICB4bDogc3RyaW5nO1xuICBmdWxsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRoZW1lU2hhZG93cyB7XG4gIHhzOiBzdHJpbmc7XG4gIHNtOiBzdHJpbmc7XG4gIG1kOiBzdHJpbmc7XG4gIGxnOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRoZW1lVHJhbnNpdGlvbnMge1xuICBmYXN0OiBzdHJpbmc7XG4gIGRlZmF1bHQ6IHN0cmluZztcbiAgc2xvdzogc3RyaW5nO1xuICBzbG93ZXI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGhlbWVDb250cm9sSGVpZ2h0cyB7XG4gIHNtOiBzdHJpbmc7XG4gIG1kOiBzdHJpbmc7XG4gIGxnOiBzdHJpbmc7XG4gIHhsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRoZW1lIHtcbiAgY29sb3JzOiB7XG4gICAgbGlnaHQ6IElUaGVtZUNvbG9ycztcbiAgICBkYXJrOiBJVGhlbWVDb2xvcnM7XG4gIH07XG4gIHNwYWNpbmc6IElUaGVtZVNwYWNpbmc7XG4gIHJhZGl1czogSVRoZW1lUmFkaXVzO1xuICBzaGFkb3dzOiBJVGhlbWVTaGFkb3dzO1xuICB0cmFuc2l0aW9uczogSVRoZW1lVHJhbnNpdGlvbnM7XG4gIGNvbnRyb2xIZWlnaHRzOiBJVGhlbWVDb250cm9sSGVpZ2h0cztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERlZmF1bHQgVGhlbWUgVmFsdWVzIChUeXBlU2NyaXB0IE9iamVjdClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCB0aGVtZURlZmF1bHRzOiBJVGhlbWUgPSB7XG4gIGNvbG9yczoge1xuICAgIGxpZ2h0OiB7XG4gICAgICBiZ1ByaW1hcnk6ICcjZmZmZmZmJyxcbiAgICAgIGJnU2Vjb25kYXJ5OiAnI2ZhZmFmYScsXG4gICAgICBiZ1RlcnRpYXJ5OiAnI2Y0ZjRmNScsXG4gICAgICB0ZXh0UHJpbWFyeTogJyMwOTA5MGInLFxuICAgICAgdGV4dFNlY29uZGFyeTogJyMzNzQxNTEnLFxuICAgICAgdGV4dE11dGVkOiAnIzcxNzE3YScsXG4gICAgICBib3JkZXJEZWZhdWx0OiAnI2U1ZTdlYicsXG4gICAgICBib3JkZXJTdWJ0bGU6ICcjZjRmNGY1JyxcbiAgICAgIGJvcmRlclN0cm9uZzogJyNkMWQ1ZGInLFxuICAgICAgYWNjZW50UHJpbWFyeTogJyMzYjgyZjYnLFxuICAgICAgYWNjZW50U3VjY2VzczogJyMyMmM1NWUnLFxuICAgICAgYWNjZW50V2FybmluZzogJyNmNTllMGInLFxuICAgICAgYWNjZW50RXJyb3I6ICcjZWY0NDQ0JyxcbiAgICB9LFxuICAgIGRhcms6IHtcbiAgICAgIGJnUHJpbWFyeTogJyMwOTA5MGInLFxuICAgICAgYmdTZWNvbmRhcnk6ICcjMGEwYTBhJyxcbiAgICAgIGJnVGVydGlhcnk6ICcjMTgxODFiJyxcbiAgICAgIHRleHRQcmltYXJ5OiAnI2ZhZmFmYScsXG4gICAgICB0ZXh0U2Vjb25kYXJ5OiAnI2Q0ZDRkOCcsXG4gICAgICB0ZXh0TXV0ZWQ6ICcjYTFhMWFhJyxcbiAgICAgIGJvcmRlckRlZmF1bHQ6ICcjMjcyNzJhJyxcbiAgICAgIGJvcmRlclN1YnRsZTogJyMxYTFhMWEnLFxuICAgICAgYm9yZGVyU3Ryb25nOiAnIzNmM2Y0NicsXG4gICAgICBhY2NlbnRQcmltYXJ5OiAnIzNiODJmNicsXG4gICAgICBhY2NlbnRTdWNjZXNzOiAnIzIyYzU1ZScsXG4gICAgICBhY2NlbnRXYXJuaW5nOiAnI2Y1OWUwYicsXG4gICAgICBhY2NlbnRFcnJvcjogJyNlZjQ0NDQnLFxuICAgIH0sXG4gIH0sXG4gIHNwYWNpbmc6IHtcbiAgICB4czogJzRweCcsXG4gICAgc206ICc4cHgnLFxuICAgIG1kOiAnMTJweCcsXG4gICAgbGc6ICcxNnB4JyxcbiAgICB4bDogJzI0cHgnLFxuICAgICcyeGwnOiAnMzJweCcsXG4gICAgJzN4bCc6ICc0OHB4JyxcbiAgfSxcbiAgcmFkaXVzOiB7XG4gICAgeHM6ICcycHgnLFxuICAgIHNtOiAnNHB4JyxcbiAgICBtZDogJzZweCcsXG4gICAgbGc6ICc4cHgnLFxuICAgIHhsOiAnMTJweCcsXG4gICAgZnVsbDogJzk5OXB4JyxcbiAgfSxcbiAgc2hhZG93czoge1xuICAgIHhzOiAnMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSknLFxuICAgIHNtOiAnMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKScsXG4gICAgbWQ6ICcwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KScsXG4gICAgbGc6ICcwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSknLFxuICB9LFxuICB0cmFuc2l0aW9uczoge1xuICAgIGZhc3Q6ICcwLjFzJyxcbiAgICBkZWZhdWx0OiAnMC4xNXMnLFxuICAgIHNsb3c6ICcwLjJzJyxcbiAgICBzbG93ZXI6ICcwLjNzJyxcbiAgfSxcbiAgY29udHJvbEhlaWdodHM6IHtcbiAgICBzbTogJzMycHgnLFxuICAgIG1kOiAnMzZweCcsXG4gICAgbGc6ICc0MHB4JyxcbiAgICB4bDogJzQ4cHgnLFxuICB9LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENTUyBCbG9jayBmb3IgQ29tcG9uZW50IEltcG9ydFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBEZWZhdWx0IHRoZW1lIHN0eWxlcyB0byBiZSBpbXBvcnRlZCBpbnRvIGV2ZXJ5IGNvbXBvbmVudCdzIHN0YXRpYyBzdHlsZXMgYXJyYXkuXG4gKiBQcm92aWRlcyBDU1MgY3VzdG9tIHByb3BlcnRpZXMgZm9yIHNwYWNpbmcsIHJhZGl1cywgc2hhZG93cywgdHJhbnNpdGlvbnMsIGFuZCBjb250cm9sIGhlaWdodHMuXG4gKlxuICogVXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8wMHRoZW1lLmpzJztcbiAqXG4gKiBAY3VzdG9tRWxlbWVudCgnbXktY29tcG9uZW50JylcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAqICAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gKiAgICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICogICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAqICAgICBjc3NgLi4uYFxuICogICBdO1xuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB0aGVtZURlZmF1bHRTdHlsZXM6IENTU1Jlc3VsdCA9IGNzc2BcbiAgOmhvc3Qge1xuICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgKiBTcGFjaW5nIFNjYWxlXG4gICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuICAgIC0tZGVlcy1zcGFjaW5nLXhzOiA0cHg7XG4gICAgLS1kZWVzLXNwYWNpbmctc206IDhweDtcbiAgICAtLWRlZXMtc3BhY2luZy1tZDogMTJweDtcbiAgICAtLWRlZXMtc3BhY2luZy1sZzogMTZweDtcbiAgICAtLWRlZXMtc3BhY2luZy14bDogMjRweDtcbiAgICAtLWRlZXMtc3BhY2luZy0yeGw6IDMycHg7XG4gICAgLS1kZWVzLXNwYWNpbmctM3hsOiA0OHB4O1xuXG4gICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAqIEJvcmRlciBSYWRpdXMgU2NhbGVcbiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4gICAgLS1kZWVzLXJhZGl1cy14czogMnB4O1xuICAgIC0tZGVlcy1yYWRpdXMtc206IDRweDtcbiAgICAtLWRlZXMtcmFkaXVzLW1kOiA2cHg7XG4gICAgLS1kZWVzLXJhZGl1cy1sZzogOHB4O1xuICAgIC0tZGVlcy1yYWRpdXMteGw6IDEycHg7XG4gICAgLS1kZWVzLXJhZGl1cy1mdWxsOiA5OTlweDtcblxuICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgKiBTaGFkb3cgRWxldmF0aW9uIFNjYWxlXG4gICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuICAgIC0tZGVlcy1zaGFkb3cteHM6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpO1xuICAgIC0tZGVlcy1zaGFkb3ctc206IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgLS1kZWVzLXNoYWRvdy1tZDogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgLS1kZWVzLXNoYWRvdy1sZzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuXG4gICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAqIFRyYW5zaXRpb24gRHVyYXRpb24gU2NhbGVcbiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4gICAgLS1kZWVzLXRyYW5zaXRpb24tZmFzdDogMC4xcztcbiAgICAtLWRlZXMtdHJhbnNpdGlvbi1kZWZhdWx0OiAwLjE1cztcbiAgICAtLWRlZXMtdHJhbnNpdGlvbi1zbG93OiAwLjJzO1xuICAgIC0tZGVlcy10cmFuc2l0aW9uLXNsb3dlcjogMC4zcztcblxuICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgKiBDb250cm9sIEhlaWdodCBTY2FsZVxuICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtc206IDMycHg7XG4gICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LW1kOiAzNnB4O1xuICAgIC0tZGVlcy1jb250cm9sLWhlaWdodC1sZzogNDBweDtcbiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQteGw6IDQ4cHg7XG4gIH1cbmA7XG4iLCAiLyohXG4gKiBGb250IEF3ZXNvbWUgRnJlZSA3LjEuMCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbVxuICogTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSlcbiAqIENvcHlyaWdodCAyMDI1IEZvbnRpY29ucywgSW5jLlxuICovXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShyLCBhKSB7XG4gIChudWxsID09IGEgfHwgYSA+IHIubGVuZ3RoKSAmJiAoYSA9IHIubGVuZ3RoKTtcbiAgZm9yICh2YXIgZSA9IDAsIG4gPSBBcnJheShhKTsgZSA8IGE7IGUrKykgbltlXSA9IHJbZV07XG4gIHJldHVybiBuO1xufVxuZnVuY3Rpb24gX2FycmF5V2l0aEhvbGVzKHIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocikpIHJldHVybiByO1xufVxuZnVuY3Rpb24gX2FycmF5V2l0aG91dEhvbGVzKHIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShyKTtcbn1cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhhLCBuKSB7XG4gIGlmICghKGEgaW5zdGFuY2VvZiBuKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbn1cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKGUsIHIpIHtcbiAgZm9yICh2YXIgdCA9IDA7IHQgPCByLmxlbmd0aDsgdCsrKSB7XG4gICAgdmFyIG8gPSByW3RdO1xuICAgIG8uZW51bWVyYWJsZSA9IG8uZW51bWVyYWJsZSB8fCAhMSwgby5jb25maWd1cmFibGUgPSAhMCwgXCJ2YWx1ZVwiIGluIG8gJiYgKG8ud3JpdGFibGUgPSAhMCksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBfdG9Qcm9wZXJ0eUtleShvLmtleSksIG8pO1xuICB9XG59XG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoZSwgciwgdCkge1xuICByZXR1cm4gciAmJiBfZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSwgciksIHQgJiYgX2RlZmluZVByb3BlcnRpZXMoZSwgdCksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcInByb3RvdHlwZVwiLCB7XG4gICAgd3JpdGFibGU6ICExXG4gIH0pLCBlO1xufVxuZnVuY3Rpb24gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIociwgZSkge1xuICB2YXIgdCA9IFwidW5kZWZpbmVkXCIgIT0gdHlwZW9mIFN5bWJvbCAmJiByW1N5bWJvbC5pdGVyYXRvcl0gfHwgcltcIkBAaXRlcmF0b3JcIl07XG4gIGlmICghdCkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHIpIHx8ICh0ID0gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KHIpKSB8fCBlICYmIHIgJiYgXCJudW1iZXJcIiA9PSB0eXBlb2Ygci5sZW5ndGgpIHtcbiAgICAgIHQgJiYgKHIgPSB0KTtcbiAgICAgIHZhciBuID0gMCxcbiAgICAgICAgRiA9IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgczogRixcbiAgICAgICAgbjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBuID49IHIubGVuZ3RoID8ge1xuICAgICAgICAgICAgZG9uZTogITBcbiAgICAgICAgICB9IDoge1xuICAgICAgICAgICAgZG9uZTogITEsXG4gICAgICAgICAgICB2YWx1ZTogcltuKytdXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgZTogZnVuY3Rpb24gKHIpIHtcbiAgICAgICAgICB0aHJvdyByO1xuICAgICAgICB9LFxuICAgICAgICBmOiBGXG4gICAgICB9O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG4gIH1cbiAgdmFyIG8sXG4gICAgYSA9ICEwLFxuICAgIHUgPSAhMTtcbiAgcmV0dXJuIHtcbiAgICBzOiBmdW5jdGlvbiAoKSB7XG4gICAgICB0ID0gdC5jYWxsKHIpO1xuICAgIH0sXG4gICAgbjogZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHIgPSB0Lm5leHQoKTtcbiAgICAgIHJldHVybiBhID0gci5kb25lLCByO1xuICAgIH0sXG4gICAgZTogZnVuY3Rpb24gKHIpIHtcbiAgICAgIHUgPSAhMCwgbyA9IHI7XG4gICAgfSxcbiAgICBmOiBmdW5jdGlvbiAoKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhIHx8IG51bGwgPT0gdC5yZXR1cm4gfHwgdC5yZXR1cm4oKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmICh1KSB0aHJvdyBvO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShlLCByLCB0KSB7XG4gIHJldHVybiAociA9IF90b1Byb3BlcnR5S2V5KHIpKSBpbiBlID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIHtcbiAgICB2YWx1ZTogdCxcbiAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICBjb25maWd1cmFibGU6ICEwLFxuICAgIHdyaXRhYmxlOiAhMFxuICB9KSA6IGVbcl0gPSB0LCBlO1xufVxuZnVuY3Rpb24gX2luaGVyaXRzKHQsIGUpIHtcbiAgaWYgKFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZSAmJiBudWxsICE9PSBlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIHQucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShlICYmIGUucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiB0LFxuICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgY29uZmlndXJhYmxlOiAhMFxuICAgIH1cbiAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCBcInByb3RvdHlwZVwiLCB7XG4gICAgd3JpdGFibGU6ICExXG4gIH0pLCBlICYmIF9zZXRQcm90b3R5cGVPZih0LCBlKTtcbn1cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkocikge1xuICBpZiAoXCJ1bmRlZmluZWRcIiAhPSB0eXBlb2YgU3ltYm9sICYmIG51bGwgIT0gcltTeW1ib2wuaXRlcmF0b3JdIHx8IG51bGwgIT0gcltcIkBAaXRlcmF0b3JcIl0pIHJldHVybiBBcnJheS5mcm9tKHIpO1xufVxuZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KHIsIGwpIHtcbiAgdmFyIHQgPSBudWxsID09IHIgPyBudWxsIDogXCJ1bmRlZmluZWRcIiAhPSB0eXBlb2YgU3ltYm9sICYmIHJbU3ltYm9sLml0ZXJhdG9yXSB8fCByW1wiQEBpdGVyYXRvclwiXTtcbiAgaWYgKG51bGwgIT0gdCkge1xuICAgIHZhciBlLFxuICAgICAgbixcbiAgICAgIGksXG4gICAgICB1LFxuICAgICAgYSA9IFtdLFxuICAgICAgZiA9ICEwLFxuICAgICAgbyA9ICExO1xuICAgIHRyeSB7XG4gICAgICBpZiAoaSA9ICh0ID0gdC5jYWxsKHIpKS5uZXh0LCAwID09PSBsKSB7XG4gICAgICAgIGlmIChPYmplY3QodCkgIT09IHQpIHJldHVybjtcbiAgICAgICAgZiA9ICExO1xuICAgICAgfSBlbHNlIGZvciAoOyAhKGYgPSAoZSA9IGkuY2FsbCh0KSkuZG9uZSkgJiYgKGEucHVzaChlLnZhbHVlKSwgYS5sZW5ndGggIT09IGwpOyBmID0gITApO1xuICAgIH0gY2F0Y2ggKHIpIHtcbiAgICAgIG8gPSAhMCwgbiA9IHI7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghZiAmJiBudWxsICE9IHQucmV0dXJuICYmICh1ID0gdC5yZXR1cm4oKSwgT2JqZWN0KHUpICE9PSB1KSkgcmV0dXJuO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKG8pIHRocm93IG47XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhO1xuICB9XG59XG5mdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufVxuZnVuY3Rpb24gX25vbkl0ZXJhYmxlU3ByZWFkKCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cbmZ1bmN0aW9uIG93bktleXMoZSwgcikge1xuICB2YXIgdCA9IE9iamVjdC5rZXlzKGUpO1xuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBvID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtcbiAgICByICYmIChvID0gby5maWx0ZXIoZnVuY3Rpb24gKHIpIHtcbiAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsIHIpLmVudW1lcmFibGU7XG4gICAgfSkpLCB0LnB1c2guYXBwbHkodCwgbyk7XG4gIH1cbiAgcmV0dXJuIHQ7XG59XG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkMihlKSB7XG4gIGZvciAodmFyIHIgPSAxOyByIDwgYXJndW1lbnRzLmxlbmd0aDsgcisrKSB7XG4gICAgdmFyIHQgPSBudWxsICE9IGFyZ3VtZW50c1tyXSA/IGFyZ3VtZW50c1tyXSA6IHt9O1xuICAgIHIgJSAyID8gb3duS2V5cyhPYmplY3QodCksICEwKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7XG4gICAgICBfZGVmaW5lUHJvcGVydHkoZSwgciwgdFtyXSk7XG4gICAgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKSA6IG93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LCByKSk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGU7XG59XG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YodCwgZSkge1xuICByZXR1cm4gX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKSA6IGZ1bmN0aW9uICh0LCBlKSB7XG4gICAgcmV0dXJuIHQuX19wcm90b19fID0gZSwgdDtcbiAgfSwgX3NldFByb3RvdHlwZU9mKHQsIGUpO1xufVxuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkociwgZSkge1xuICByZXR1cm4gX2FycmF5V2l0aEhvbGVzKHIpIHx8IF9pdGVyYWJsZVRvQXJyYXlMaW1pdChyLCBlKSB8fCBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkociwgZSkgfHwgX25vbkl0ZXJhYmxlUmVzdCgpO1xufVxuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KHIpIHtcbiAgcmV0dXJuIF9hcnJheVdpdGhvdXRIb2xlcyhyKSB8fCBfaXRlcmFibGVUb0FycmF5KHIpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShyKSB8fCBfbm9uSXRlcmFibGVTcHJlYWQoKTtcbn1cbmZ1bmN0aW9uIF90b1ByaW1pdGl2ZSh0LCByKSB7XG4gIGlmIChcIm9iamVjdFwiICE9IHR5cGVvZiB0IHx8ICF0KSByZXR1cm4gdDtcbiAgdmFyIGUgPSB0W1N5bWJvbC50b1ByaW1pdGl2ZV07XG4gIGlmICh2b2lkIDAgIT09IGUpIHtcbiAgICB2YXIgaSA9IGUuY2FsbCh0LCByIHx8IFwiZGVmYXVsdFwiKTtcbiAgICBpZiAoXCJvYmplY3RcIiAhPSB0eXBlb2YgaSkgcmV0dXJuIGk7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpO1xuICB9XG4gIHJldHVybiAoXCJzdHJpbmdcIiA9PT0gciA/IFN0cmluZyA6IE51bWJlcikodCk7XG59XG5mdW5jdGlvbiBfdG9Qcm9wZXJ0eUtleSh0KSB7XG4gIHZhciBpID0gX3RvUHJpbWl0aXZlKHQsIFwic3RyaW5nXCIpO1xuICByZXR1cm4gXCJzeW1ib2xcIiA9PSB0eXBlb2YgaSA/IGkgOiBpICsgXCJcIjtcbn1cbmZ1bmN0aW9uIF90eXBlb2Yobykge1xuICBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7XG5cbiAgcmV0dXJuIF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiB0eXBlb2YgbztcbiAgfSA6IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIG8gJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgby5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG8gIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG87XG4gIH0sIF90eXBlb2Yobyk7XG59XG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkociwgYSkge1xuICBpZiAocikge1xuICAgIGlmIChcInN0cmluZ1wiID09IHR5cGVvZiByKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkociwgYSk7XG4gICAgdmFyIHQgPSB7fS50b1N0cmluZy5jYWxsKHIpLnNsaWNlKDgsIC0xKTtcbiAgICByZXR1cm4gXCJPYmplY3RcIiA9PT0gdCAmJiByLmNvbnN0cnVjdG9yICYmICh0ID0gci5jb25zdHJ1Y3Rvci5uYW1lKSwgXCJNYXBcIiA9PT0gdCB8fCBcIlNldFwiID09PSB0ID8gQXJyYXkuZnJvbShyKSA6IFwiQXJndW1lbnRzXCIgPT09IHQgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkgPyBfYXJyYXlMaWtlVG9BcnJheShyLCBhKSA6IHZvaWQgMDtcbiAgfVxufVxuZnVuY3Rpb24gX3dyYXBSZWdFeHAoKSB7XG4gIF93cmFwUmVnRXhwID0gZnVuY3Rpb24gKGUsIHIpIHtcbiAgICByZXR1cm4gbmV3IEJhYmVsUmVnRXhwKGUsIHZvaWQgMCwgcik7XG4gIH07XG4gIHZhciBlID0gUmVnRXhwLnByb3RvdHlwZSxcbiAgICByID0gbmV3IFdlYWtNYXAoKTtcbiAgZnVuY3Rpb24gQmFiZWxSZWdFeHAoZSwgdCwgcCkge1xuICAgIHZhciBvID0gUmVnRXhwKGUsIHQpO1xuICAgIHJldHVybiByLnNldChvLCBwIHx8IHIuZ2V0KGUpKSwgX3NldFByb3RvdHlwZU9mKG8sIEJhYmVsUmVnRXhwLnByb3RvdHlwZSk7XG4gIH1cbiAgZnVuY3Rpb24gYnVpbGRHcm91cHMoZSwgdCkge1xuICAgIHZhciBwID0gci5nZXQodCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHApLnJlZHVjZShmdW5jdGlvbiAociwgdCkge1xuICAgICAgdmFyIG8gPSBwW3RdO1xuICAgICAgaWYgKFwibnVtYmVyXCIgPT0gdHlwZW9mIG8pIHJbdF0gPSBlW29dO2Vsc2Uge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgdm9pZCAwID09PSBlW29baV1dICYmIGkgKyAxIDwgby5sZW5ndGg7KSBpKys7XG4gICAgICAgIHJbdF0gPSBlW29baV1dO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHI7XG4gICAgfSwgT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gIH1cbiAgcmV0dXJuIF9pbmhlcml0cyhCYWJlbFJlZ0V4cCwgUmVnRXhwKSwgQmFiZWxSZWdFeHAucHJvdG90eXBlLmV4ZWMgPSBmdW5jdGlvbiAocikge1xuICAgIHZhciB0ID0gZS5leGVjLmNhbGwodGhpcywgcik7XG4gICAgaWYgKHQpIHtcbiAgICAgIHQuZ3JvdXBzID0gYnVpbGRHcm91cHModCwgdGhpcyk7XG4gICAgICB2YXIgcCA9IHQuaW5kaWNlcztcbiAgICAgIHAgJiYgKHAuZ3JvdXBzID0gYnVpbGRHcm91cHMocCwgdGhpcykpO1xuICAgIH1cbiAgICByZXR1cm4gdDtcbiAgfSwgQmFiZWxSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXSA9IGZ1bmN0aW9uICh0LCBwKSB7XG4gICAgaWYgKFwic3RyaW5nXCIgPT0gdHlwZW9mIHApIHtcbiAgICAgIHZhciBvID0gci5nZXQodGhpcyk7XG4gICAgICByZXR1cm4gZVtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLCB0LCBwLnJlcGxhY2UoL1xcJDwoW14+XSspKD58JCkvZywgZnVuY3Rpb24gKGUsIHIsIHQpIHtcbiAgICAgICAgaWYgKFwiXCIgPT09IHQpIHJldHVybiBlO1xuICAgICAgICB2YXIgcCA9IG9bcl07XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHApID8gXCIkXCIgKyBwLmpvaW4oXCIkXCIpIDogXCJudW1iZXJcIiA9PSB0eXBlb2YgcCA/IFwiJFwiICsgcCA6IFwiXCI7XG4gICAgICB9KSk7XG4gICAgfVxuICAgIGlmIChcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHApIHtcbiAgICAgIHZhciBpID0gdGhpcztcbiAgICAgIHJldHVybiBlW1N5bWJvbC5yZXBsYWNlXS5jYWxsKHRoaXMsIHQsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGUgPSBhcmd1bWVudHM7XG4gICAgICAgIHJldHVybiBcIm9iamVjdFwiICE9IHR5cGVvZiBlW2UubGVuZ3RoIC0gMV0gJiYgKGUgPSBbXS5zbGljZS5jYWxsKGUpKS5wdXNoKGJ1aWxkR3JvdXBzKGUsIGkpKSwgcC5hcHBseSh0aGlzLCBlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZVtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLCB0LCBwKTtcbiAgfSwgX3dyYXBSZWdFeHAuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxudmFyIG5vb3AgPSBmdW5jdGlvbiBub29wKCkge307XG52YXIgX1dJTkRPVyA9IHt9O1xudmFyIF9ET0NVTUVOVCA9IHt9O1xudmFyIF9NVVRBVElPTl9PQlNFUlZFUiA9IG51bGw7XG52YXIgX1BFUkZPUk1BTkNFID0ge1xuICBtYXJrOiBub29wLFxuICBtZWFzdXJlOiBub29wXG59O1xudHJ5IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSBfV0lORE9XID0gd2luZG93O1xuICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykgX0RPQ1VNRU5UID0gZG9jdW1lbnQ7XG4gIGlmICh0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcpIF9NVVRBVElPTl9PQlNFUlZFUiA9IE11dGF0aW9uT2JzZXJ2ZXI7XG4gIGlmICh0eXBlb2YgcGVyZm9ybWFuY2UgIT09ICd1bmRlZmluZWQnKSBfUEVSRk9STUFOQ0UgPSBwZXJmb3JtYW5jZTtcbn0gY2F0Y2ggKGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZW1wdHlcblxudmFyIF9yZWYgPSBfV0lORE9XLm5hdmlnYXRvciB8fCB7fSxcbiAgX3JlZiR1c2VyQWdlbnQgPSBfcmVmLnVzZXJBZ2VudCxcbiAgdXNlckFnZW50ID0gX3JlZiR1c2VyQWdlbnQgPT09IHZvaWQgMCA/ICcnIDogX3JlZiR1c2VyQWdlbnQ7XG52YXIgV0lORE9XID0gX1dJTkRPVztcbnZhciBET0NVTUVOVCA9IF9ET0NVTUVOVDtcbnZhciBNVVRBVElPTl9PQlNFUlZFUiA9IF9NVVRBVElPTl9PQlNFUlZFUjtcbnZhciBQRVJGT1JNQU5DRSA9IF9QRVJGT1JNQU5DRTtcbnZhciBJU19CUk9XU0VSID0gISFXSU5ET1cuZG9jdW1lbnQ7XG52YXIgSVNfRE9NID0gISFET0NVTUVOVC5kb2N1bWVudEVsZW1lbnQgJiYgISFET0NVTUVOVC5oZWFkICYmIHR5cGVvZiBET0NVTUVOVC5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBET0NVTUVOVC5jcmVhdGVFbGVtZW50ID09PSAnZnVuY3Rpb24nO1xudmFyIElTX0lFID0gfnVzZXJBZ2VudC5pbmRleE9mKCdNU0lFJykgfHwgfnVzZXJBZ2VudC5pbmRleE9mKCdUcmlkZW50LycpO1xuXG52YXIgX2R0O1xudmFyIEUgPSAvZmEoa3xrZHxzfHJ8bHx0fGR8ZHJ8ZGx8ZHR8YnxzbHJ8c2xwcnx3c2J8dGx8bnN8bmRzfGVzfGpyfGpmcnxqZHJ8dXNifHVmc2J8dWRzYnxjcnxzc3xzcnxzbHxzdHxzZHN8c2RyfHNkbHxzZHQpP1tcXC1cXCBdLyxcbiAgXyA9IC9Gb250ID9Bd2Vzb21lID8oWzU2NyBdKikoU29saWR8UmVndWxhcnxMaWdodHxUaGlufER1b3RvbmV8QnJhbmRzfEZyZWV8UHJvfFNoYXJwIER1b3RvbmV8U2hhcnB8S2l0fE5vdGRvZyBEdW98Tm90ZG9nfENoaXNlbHxFdGNofFRodW1icHJpbnR8SmVsbHkgRmlsbHxKZWxseSBEdW98SmVsbHl8VXRpbGl0eXxVdGlsaXR5IEZpbGx8VXRpbGl0eSBEdW98U2xhYiBQcmVzc3xTbGFifFdoaXRlYm9hcmQpPy4qL2k7XG52YXIgcSA9IHtcbiAgICBjbGFzc2ljOiB7XG4gICAgICBmYTogXCJzb2xpZFwiLFxuICAgICAgZmFzOiBcInNvbGlkXCIsXG4gICAgICBcImZhLXNvbGlkXCI6IFwic29saWRcIixcbiAgICAgIGZhcjogXCJyZWd1bGFyXCIsXG4gICAgICBcImZhLXJlZ3VsYXJcIjogXCJyZWd1bGFyXCIsXG4gICAgICBmYWw6IFwibGlnaHRcIixcbiAgICAgIFwiZmEtbGlnaHRcIjogXCJsaWdodFwiLFxuICAgICAgZmF0OiBcInRoaW5cIixcbiAgICAgIFwiZmEtdGhpblwiOiBcInRoaW5cIixcbiAgICAgIGZhYjogXCJicmFuZHNcIixcbiAgICAgIFwiZmEtYnJhbmRzXCI6IFwiYnJhbmRzXCJcbiAgICB9LFxuICAgIGR1b3RvbmU6IHtcbiAgICAgIGZhOiBcInNvbGlkXCIsXG4gICAgICBmYWQ6IFwic29saWRcIixcbiAgICAgIFwiZmEtc29saWRcIjogXCJzb2xpZFwiLFxuICAgICAgXCJmYS1kdW90b25lXCI6IFwic29saWRcIixcbiAgICAgIGZhZHI6IFwicmVndWxhclwiLFxuICAgICAgXCJmYS1yZWd1bGFyXCI6IFwicmVndWxhclwiLFxuICAgICAgZmFkbDogXCJsaWdodFwiLFxuICAgICAgXCJmYS1saWdodFwiOiBcImxpZ2h0XCIsXG4gICAgICBmYWR0OiBcInRoaW5cIixcbiAgICAgIFwiZmEtdGhpblwiOiBcInRoaW5cIlxuICAgIH0sXG4gICAgc2hhcnA6IHtcbiAgICAgIGZhOiBcInNvbGlkXCIsXG4gICAgICBmYXNzOiBcInNvbGlkXCIsXG4gICAgICBcImZhLXNvbGlkXCI6IFwic29saWRcIixcbiAgICAgIGZhc3I6IFwicmVndWxhclwiLFxuICAgICAgXCJmYS1yZWd1bGFyXCI6IFwicmVndWxhclwiLFxuICAgICAgZmFzbDogXCJsaWdodFwiLFxuICAgICAgXCJmYS1saWdodFwiOiBcImxpZ2h0XCIsXG4gICAgICBmYXN0OiBcInRoaW5cIixcbiAgICAgIFwiZmEtdGhpblwiOiBcInRoaW5cIlxuICAgIH0sXG4gICAgXCJzaGFycC1kdW90b25lXCI6IHtcbiAgICAgIGZhOiBcInNvbGlkXCIsXG4gICAgICBmYXNkczogXCJzb2xpZFwiLFxuICAgICAgXCJmYS1zb2xpZFwiOiBcInNvbGlkXCIsXG4gICAgICBmYXNkcjogXCJyZWd1bGFyXCIsXG4gICAgICBcImZhLXJlZ3VsYXJcIjogXCJyZWd1bGFyXCIsXG4gICAgICBmYXNkbDogXCJsaWdodFwiLFxuICAgICAgXCJmYS1saWdodFwiOiBcImxpZ2h0XCIsXG4gICAgICBmYXNkdDogXCJ0aGluXCIsXG4gICAgICBcImZhLXRoaW5cIjogXCJ0aGluXCJcbiAgICB9LFxuICAgIHNsYWI6IHtcbiAgICAgIFwiZmEtcmVndWxhclwiOiBcInJlZ3VsYXJcIixcbiAgICAgIGZhc2xyOiBcInJlZ3VsYXJcIlxuICAgIH0sXG4gICAgXCJzbGFiLXByZXNzXCI6IHtcbiAgICAgIFwiZmEtcmVndWxhclwiOiBcInJlZ3VsYXJcIixcbiAgICAgIGZhc2xwcjogXCJyZWd1bGFyXCJcbiAgICB9LFxuICAgIHRodW1icHJpbnQ6IHtcbiAgICAgIFwiZmEtbGlnaHRcIjogXCJsaWdodFwiLFxuICAgICAgZmF0bDogXCJsaWdodFwiXG4gICAgfSxcbiAgICB3aGl0ZWJvYXJkOiB7XG4gICAgICBcImZhLXNlbWlib2xkXCI6IFwic2VtaWJvbGRcIixcbiAgICAgIGZhd3NiOiBcInNlbWlib2xkXCJcbiAgICB9LFxuICAgIG5vdGRvZzoge1xuICAgICAgXCJmYS1zb2xpZFwiOiBcInNvbGlkXCIsXG4gICAgICBmYW5zOiBcInNvbGlkXCJcbiAgICB9LFxuICAgIFwibm90ZG9nLWR1b1wiOiB7XG4gICAgICBcImZhLXNvbGlkXCI6IFwic29saWRcIixcbiAgICAgIGZhbmRzOiBcInNvbGlkXCJcbiAgICB9LFxuICAgIGV0Y2g6IHtcbiAgICAgIFwiZmEtc29saWRcIjogXCJzb2xpZFwiLFxuICAgICAgZmFlczogXCJzb2xpZFwiXG4gICAgfSxcbiAgICBqZWxseToge1xuICAgICAgXCJmYS1yZWd1bGFyXCI6IFwicmVndWxhclwiLFxuICAgICAgZmFqcjogXCJyZWd1bGFyXCJcbiAgICB9LFxuICAgIFwiamVsbHktZmlsbFwiOiB7XG4gICAgICBcImZhLXJlZ3VsYXJcIjogXCJyZWd1bGFyXCIsXG4gICAgICBmYWpmcjogXCJyZWd1bGFyXCJcbiAgICB9LFxuICAgIFwiamVsbHktZHVvXCI6IHtcbiAgICAgIFwiZmEtcmVndWxhclwiOiBcInJlZ3VsYXJcIixcbiAgICAgIGZhamRyOiBcInJlZ3VsYXJcIlxuICAgIH0sXG4gICAgY2hpc2VsOiB7XG4gICAgICBcImZhLXJlZ3VsYXJcIjogXCJyZWd1bGFyXCIsXG4gICAgICBmYWNyOiBcInJlZ3VsYXJcIlxuICAgIH0sXG4gICAgdXRpbGl0eToge1xuICAgICAgXCJmYS1zZW1pYm9sZFwiOiBcInNlbWlib2xkXCIsXG4gICAgICBmYXVzYjogXCJzZW1pYm9sZFwiXG4gICAgfSxcbiAgICBcInV0aWxpdHktZHVvXCI6IHtcbiAgICAgIFwiZmEtc2VtaWJvbGRcIjogXCJzZW1pYm9sZFwiLFxuICAgICAgZmF1ZHNiOiBcInNlbWlib2xkXCJcbiAgICB9LFxuICAgIFwidXRpbGl0eS1maWxsXCI6IHtcbiAgICAgIFwiZmEtc2VtaWJvbGRcIjogXCJzZW1pYm9sZFwiLFxuICAgICAgZmF1ZnNiOiBcInNlbWlib2xkXCJcbiAgICB9XG4gIH0sXG4gIEggPSB7XG4gICAgR1JPVVA6IFwiZHVvdG9uZS1ncm91cFwiLFxuICAgIFNXQVBfT1BBQ0lUWTogXCJzd2FwLW9wYWNpdHlcIixcbiAgICBQUklNQVJZOiBcInByaW1hcnlcIixcbiAgICBTRUNPTkRBUlk6IFwic2Vjb25kYXJ5XCJcbiAgfSxcbiAgUSA9IFtcImZhLWNsYXNzaWNcIiwgXCJmYS1kdW90b25lXCIsIFwiZmEtc2hhcnBcIiwgXCJmYS1zaGFycC1kdW90b25lXCIsIFwiZmEtdGh1bWJwcmludFwiLCBcImZhLXdoaXRlYm9hcmRcIiwgXCJmYS1ub3Rkb2dcIiwgXCJmYS1ub3Rkb2ctZHVvXCIsIFwiZmEtY2hpc2VsXCIsIFwiZmEtZXRjaFwiLCBcImZhLWplbGx5XCIsIFwiZmEtamVsbHktZmlsbFwiLCBcImZhLWplbGx5LWR1b1wiLCBcImZhLXNsYWJcIiwgXCJmYS1zbGFiLXByZXNzXCIsIFwiZmEtdXRpbGl0eVwiLCBcImZhLXV0aWxpdHktZHVvXCIsIFwiZmEtdXRpbGl0eS1maWxsXCJdO1xudmFyIGkgPSBcImNsYXNzaWNcIixcbiAgdCA9IFwiZHVvdG9uZVwiLFxuICBkID0gXCJzaGFycFwiLFxuICBsID0gXCJzaGFycC1kdW90b25lXCIsXG4gIGYgPSBcImNoaXNlbFwiLFxuICBuID0gXCJldGNoXCIsXG4gIGggPSBcImplbGx5XCIsXG4gIG8gPSBcImplbGx5LWR1b1wiLFxuICB1ID0gXCJqZWxseS1maWxsXCIsXG4gIGcgPSBcIm5vdGRvZ1wiLFxuICBzID0gXCJub3Rkb2ctZHVvXCIsXG4gIHkgPSBcInNsYWJcIixcbiAgbSA9IFwic2xhYi1wcmVzc1wiLFxuICBlID0gXCJ0aHVtYnByaW50XCIsXG4gIHAgPSBcInV0aWxpdHlcIixcbiAgYSA9IFwidXRpbGl0eS1kdW9cIixcbiAgdyA9IFwidXRpbGl0eS1maWxsXCIsXG4gIHggPSBcIndoaXRlYm9hcmRcIixcbiAgYiA9IFwiQ2xhc3NpY1wiLFxuICBjID0gXCJEdW90b25lXCIsXG4gIEkgPSBcIlNoYXJwXCIsXG4gIEYgPSBcIlNoYXJwIER1b3RvbmVcIixcbiAgdiA9IFwiQ2hpc2VsXCIsXG4gIFMgPSBcIkV0Y2hcIixcbiAgQSA9IFwiSmVsbHlcIixcbiAgUCA9IFwiSmVsbHkgRHVvXCIsXG4gIGogPSBcIkplbGx5IEZpbGxcIixcbiAgQiA9IFwiTm90ZG9nXCIsXG4gIE4gPSBcIk5vdGRvZyBEdW9cIixcbiAgayA9IFwiU2xhYlwiLFxuICBEID0gXCJTbGFiIFByZXNzXCIsXG4gIFQgPSBcIlRodW1icHJpbnRcIixcbiAgQyA9IFwiVXRpbGl0eVwiLFxuICBXID0gXCJVdGlsaXR5IER1b1wiLFxuICBLID0gXCJVdGlsaXR5IEZpbGxcIixcbiAgUiA9IFwiV2hpdGVib2FyZFwiLFxuICBydCA9IFtpLCB0LCBkLCBsLCBmLCBuLCBoLCBvLCB1LCBnLCBzLCB5LCBtLCBlLCBwLCBhLCB3LCB4XSxcbiAgZHQgPSAoX2R0ID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZHQsIGksIGIpLCB0LCBjKSwgZCwgSSksIGwsIEYpLCBmLCB2KSwgbiwgUyksIGgsIEEpLCBvLCBQKSwgdSwgaiksIGcsIEIpLCBfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kdCwgcywgTiksIHksIGspLCBtLCBEKSwgZSwgVCksIHAsIEMpLCBhLCBXKSwgdywgSyksIHgsIFIpKTtcbnZhciBndCA9IHtcbiAgICBjbGFzc2ljOiB7XG4gICAgICA5MDA6IFwiZmFzXCIsXG4gICAgICA0MDA6IFwiZmFyXCIsXG4gICAgICBub3JtYWw6IFwiZmFyXCIsXG4gICAgICAzMDA6IFwiZmFsXCIsXG4gICAgICAxMDA6IFwiZmF0XCJcbiAgICB9LFxuICAgIGR1b3RvbmU6IHtcbiAgICAgIDkwMDogXCJmYWRcIixcbiAgICAgIDQwMDogXCJmYWRyXCIsXG4gICAgICAzMDA6IFwiZmFkbFwiLFxuICAgICAgMTAwOiBcImZhZHRcIlxuICAgIH0sXG4gICAgc2hhcnA6IHtcbiAgICAgIDkwMDogXCJmYXNzXCIsXG4gICAgICA0MDA6IFwiZmFzclwiLFxuICAgICAgMzAwOiBcImZhc2xcIixcbiAgICAgIDEwMDogXCJmYXN0XCJcbiAgICB9LFxuICAgIFwic2hhcnAtZHVvdG9uZVwiOiB7XG4gICAgICA5MDA6IFwiZmFzZHNcIixcbiAgICAgIDQwMDogXCJmYXNkclwiLFxuICAgICAgMzAwOiBcImZhc2RsXCIsXG4gICAgICAxMDA6IFwiZmFzZHRcIlxuICAgIH0sXG4gICAgc2xhYjoge1xuICAgICAgNDAwOiBcImZhc2xyXCJcbiAgICB9LFxuICAgIFwic2xhYi1wcmVzc1wiOiB7XG4gICAgICA0MDA6IFwiZmFzbHByXCJcbiAgICB9LFxuICAgIHdoaXRlYm9hcmQ6IHtcbiAgICAgIDYwMDogXCJmYXdzYlwiXG4gICAgfSxcbiAgICB0aHVtYnByaW50OiB7XG4gICAgICAzMDA6IFwiZmF0bFwiXG4gICAgfSxcbiAgICBub3Rkb2c6IHtcbiAgICAgIDkwMDogXCJmYW5zXCJcbiAgICB9LFxuICAgIFwibm90ZG9nLWR1b1wiOiB7XG4gICAgICA5MDA6IFwiZmFuZHNcIlxuICAgIH0sXG4gICAgZXRjaDoge1xuICAgICAgOTAwOiBcImZhZXNcIlxuICAgIH0sXG4gICAgY2hpc2VsOiB7XG4gICAgICA0MDA6IFwiZmFjclwiXG4gICAgfSxcbiAgICBqZWxseToge1xuICAgICAgNDAwOiBcImZhanJcIlxuICAgIH0sXG4gICAgXCJqZWxseS1maWxsXCI6IHtcbiAgICAgIDQwMDogXCJmYWpmclwiXG4gICAgfSxcbiAgICBcImplbGx5LWR1b1wiOiB7XG4gICAgICA0MDA6IFwiZmFqZHJcIlxuICAgIH0sXG4gICAgdXRpbGl0eToge1xuICAgICAgNjAwOiBcImZhdXNiXCJcbiAgICB9LFxuICAgIFwidXRpbGl0eS1kdW9cIjoge1xuICAgICAgNjAwOiBcImZhdWRzYlwiXG4gICAgfSxcbiAgICBcInV0aWxpdHktZmlsbFwiOiB7XG4gICAgICA2MDA6IFwiZmF1ZnNiXCJcbiAgICB9XG4gIH07XG52YXIgQ3QgPSB7XG4gICAgXCJGb250IEF3ZXNvbWUgNyBGcmVlXCI6IHtcbiAgICAgIDkwMDogXCJmYXNcIixcbiAgICAgIDQwMDogXCJmYXJcIlxuICAgIH0sXG4gICAgXCJGb250IEF3ZXNvbWUgNyBQcm9cIjoge1xuICAgICAgOTAwOiBcImZhc1wiLFxuICAgICAgNDAwOiBcImZhclwiLFxuICAgICAgbm9ybWFsOiBcImZhclwiLFxuICAgICAgMzAwOiBcImZhbFwiLFxuICAgICAgMTAwOiBcImZhdFwiXG4gICAgfSxcbiAgICBcIkZvbnQgQXdlc29tZSA3IEJyYW5kc1wiOiB7XG4gICAgICA0MDA6IFwiZmFiXCIsXG4gICAgICBub3JtYWw6IFwiZmFiXCJcbiAgICB9LFxuICAgIFwiRm9udCBBd2Vzb21lIDcgRHVvdG9uZVwiOiB7XG4gICAgICA5MDA6IFwiZmFkXCIsXG4gICAgICA0MDA6IFwiZmFkclwiLFxuICAgICAgbm9ybWFsOiBcImZhZHJcIixcbiAgICAgIDMwMDogXCJmYWRsXCIsXG4gICAgICAxMDA6IFwiZmFkdFwiXG4gICAgfSxcbiAgICBcIkZvbnQgQXdlc29tZSA3IFNoYXJwXCI6IHtcbiAgICAgIDkwMDogXCJmYXNzXCIsXG4gICAgICA0MDA6IFwiZmFzclwiLFxuICAgICAgbm9ybWFsOiBcImZhc3JcIixcbiAgICAgIDMwMDogXCJmYXNsXCIsXG4gICAgICAxMDA6IFwiZmFzdFwiXG4gICAgfSxcbiAgICBcIkZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmVcIjoge1xuICAgICAgOTAwOiBcImZhc2RzXCIsXG4gICAgICA0MDA6IFwiZmFzZHJcIixcbiAgICAgIG5vcm1hbDogXCJmYXNkclwiLFxuICAgICAgMzAwOiBcImZhc2RsXCIsXG4gICAgICAxMDA6IFwiZmFzZHRcIlxuICAgIH0sXG4gICAgXCJGb250IEF3ZXNvbWUgNyBKZWxseVwiOiB7XG4gICAgICA0MDA6IFwiZmFqclwiLFxuICAgICAgbm9ybWFsOiBcImZhanJcIlxuICAgIH0sXG4gICAgXCJGb250IEF3ZXNvbWUgNyBKZWxseSBGaWxsXCI6IHtcbiAgICAgIDQwMDogXCJmYWpmclwiLFxuICAgICAgbm9ybWFsOiBcImZhamZyXCJcbiAgICB9LFxuICAgIFwiRm9udCBBd2Vzb21lIDcgSmVsbHkgRHVvXCI6IHtcbiAgICAgIDQwMDogXCJmYWpkclwiLFxuICAgICAgbm9ybWFsOiBcImZhamRyXCJcbiAgICB9LFxuICAgIFwiRm9udCBBd2Vzb21lIDcgU2xhYlwiOiB7XG4gICAgICA0MDA6IFwiZmFzbHJcIixcbiAgICAgIG5vcm1hbDogXCJmYXNsclwiXG4gICAgfSxcbiAgICBcIkZvbnQgQXdlc29tZSA3IFNsYWIgUHJlc3NcIjoge1xuICAgICAgNDAwOiBcImZhc2xwclwiLFxuICAgICAgbm9ybWFsOiBcImZhc2xwclwiXG4gICAgfSxcbiAgICBcIkZvbnQgQXdlc29tZSA3IFRodW1icHJpbnRcIjoge1xuICAgICAgMzAwOiBcImZhdGxcIixcbiAgICAgIG5vcm1hbDogXCJmYXRsXCJcbiAgICB9LFxuICAgIFwiRm9udCBBd2Vzb21lIDcgTm90ZG9nXCI6IHtcbiAgICAgIDkwMDogXCJmYW5zXCIsXG4gICAgICBub3JtYWw6IFwiZmFuc1wiXG4gICAgfSxcbiAgICBcIkZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW9cIjoge1xuICAgICAgOTAwOiBcImZhbmRzXCIsXG4gICAgICBub3JtYWw6IFwiZmFuZHNcIlxuICAgIH0sXG4gICAgXCJGb250IEF3ZXNvbWUgNyBFdGNoXCI6IHtcbiAgICAgIDkwMDogXCJmYWVzXCIsXG4gICAgICBub3JtYWw6IFwiZmFlc1wiXG4gICAgfSxcbiAgICBcIkZvbnQgQXdlc29tZSA3IENoaXNlbFwiOiB7XG4gICAgICA0MDA6IFwiZmFjclwiLFxuICAgICAgbm9ybWFsOiBcImZhY3JcIlxuICAgIH0sXG4gICAgXCJGb250IEF3ZXNvbWUgNyBXaGl0ZWJvYXJkXCI6IHtcbiAgICAgIDYwMDogXCJmYXdzYlwiLFxuICAgICAgbm9ybWFsOiBcImZhd3NiXCJcbiAgICB9LFxuICAgIFwiRm9udCBBd2Vzb21lIDcgVXRpbGl0eVwiOiB7XG4gICAgICA2MDA6IFwiZmF1c2JcIixcbiAgICAgIG5vcm1hbDogXCJmYXVzYlwiXG4gICAgfSxcbiAgICBcIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRHVvXCI6IHtcbiAgICAgIDYwMDogXCJmYXVkc2JcIixcbiAgICAgIG5vcm1hbDogXCJmYXVkc2JcIlxuICAgIH0sXG4gICAgXCJGb250IEF3ZXNvbWUgNyBVdGlsaXR5IEZpbGxcIjoge1xuICAgICAgNjAwOiBcImZhdWZzYlwiLFxuICAgICAgbm9ybWFsOiBcImZhdWZzYlwiXG4gICAgfVxuICB9O1xudmFyIFV0ID0gbmV3IE1hcChbW1wiY2xhc3NpY1wiLCB7XG4gICAgZGVmYXVsdFNob3J0UHJlZml4SWQ6IFwiZmFzXCIsXG4gICAgZGVmYXVsdFN0eWxlSWQ6IFwic29saWRcIixcbiAgICBzdHlsZUlkczogW1wic29saWRcIiwgXCJyZWd1bGFyXCIsIFwibGlnaHRcIiwgXCJ0aGluXCIsIFwiYnJhbmRzXCJdLFxuICAgIGZ1dHVyZVN0eWxlSWRzOiBbXSxcbiAgICBkZWZhdWx0Rm9udFdlaWdodDogOTAwXG4gIH1dLCBbXCJkdW90b25lXCIsIHtcbiAgICBkZWZhdWx0U2hvcnRQcmVmaXhJZDogXCJmYWRcIixcbiAgICBkZWZhdWx0U3R5bGVJZDogXCJzb2xpZFwiLFxuICAgIHN0eWxlSWRzOiBbXCJzb2xpZFwiLCBcInJlZ3VsYXJcIiwgXCJsaWdodFwiLCBcInRoaW5cIl0sXG4gICAgZnV0dXJlU3R5bGVJZHM6IFtdLFxuICAgIGRlZmF1bHRGb250V2VpZ2h0OiA5MDBcbiAgfV0sIFtcInNoYXJwXCIsIHtcbiAgICBkZWZhdWx0U2hvcnRQcmVmaXhJZDogXCJmYXNzXCIsXG4gICAgZGVmYXVsdFN0eWxlSWQ6IFwic29saWRcIixcbiAgICBzdHlsZUlkczogW1wic29saWRcIiwgXCJyZWd1bGFyXCIsIFwibGlnaHRcIiwgXCJ0aGluXCJdLFxuICAgIGZ1dHVyZVN0eWxlSWRzOiBbXSxcbiAgICBkZWZhdWx0Rm9udFdlaWdodDogOTAwXG4gIH1dLCBbXCJzaGFycC1kdW90b25lXCIsIHtcbiAgICBkZWZhdWx0U2hvcnRQcmVmaXhJZDogXCJmYXNkc1wiLFxuICAgIGRlZmF1bHRTdHlsZUlkOiBcInNvbGlkXCIsXG4gICAgc3R5bGVJZHM6IFtcInNvbGlkXCIsIFwicmVndWxhclwiLCBcImxpZ2h0XCIsIFwidGhpblwiXSxcbiAgICBmdXR1cmVTdHlsZUlkczogW10sXG4gICAgZGVmYXVsdEZvbnRXZWlnaHQ6IDkwMFxuICB9XSwgW1wiY2hpc2VsXCIsIHtcbiAgICBkZWZhdWx0U2hvcnRQcmVmaXhJZDogXCJmYWNyXCIsXG4gICAgZGVmYXVsdFN0eWxlSWQ6IFwicmVndWxhclwiLFxuICAgIHN0eWxlSWRzOiBbXCJyZWd1bGFyXCJdLFxuICAgIGZ1dHVyZVN0eWxlSWRzOiBbXSxcbiAgICBkZWZhdWx0Rm9udFdlaWdodDogNDAwXG4gIH1dLCBbXCJldGNoXCIsIHtcbiAgICBkZWZhdWx0U2hvcnRQcmVmaXhJZDogXCJmYWVzXCIsXG4gICAgZGVmYXVsdFN0eWxlSWQ6IFwic29saWRcIixcbiAgICBzdHlsZUlkczogW1wic29saWRcIl0sXG4gICAgZnV0dXJlU3R5bGVJZHM6IFtdLFxuICAgIGRlZmF1bHRGb250V2VpZ2h0OiA5MDBcbiAgfV0sIFtcImplbGx5XCIsIHtcbiAgICBkZWZhdWx0U2hvcnRQcmVmaXhJZDogXCJmYWpyXCIsXG4gICAgZGVmYXVsdFN0eWxlSWQ6IFwicmVndWxhclwiLFxuICAgIHN0eWxlSWRzOiBbXCJyZWd1bGFyXCJdLFxuICAgIGZ1dHVyZVN0eWxlSWRzOiBbXSxcbiAgICBkZWZhdWx0Rm9udFdlaWdodDogNDAwXG4gIH1dLCBbXCJqZWxseS1kdW9cIiwge1xuICAgIGRlZmF1bHRTaG9ydFByZWZpeElkOiBcImZhamRyXCIsXG4gICAgZGVmYXVsdFN0eWxlSWQ6IFwicmVndWxhclwiLFxuICAgIHN0eWxlSWRzOiBbXCJyZWd1bGFyXCJdLFxuICAgIGZ1dHVyZVN0eWxlSWRzOiBbXSxcbiAgICBkZWZhdWx0Rm9udFdlaWdodDogNDAwXG4gIH1dLCBbXCJqZWxseS1maWxsXCIsIHtcbiAgICBkZWZhdWx0U2hvcnRQcmVmaXhJZDogXCJmYWpmclwiLFxuICAgIGRlZmF1bHRTdHlsZUlkOiBcInJlZ3VsYXJcIixcbiAgICBzdHlsZUlkczogW1wicmVndWxhclwiXSxcbiAgICBmdXR1cmVTdHlsZUlkczogW10sXG4gICAgZGVmYXVsdEZvbnRXZWlnaHQ6IDQwMFxuICB9XSwgW1wibm90ZG9nXCIsIHtcbiAgICBkZWZhdWx0U2hvcnRQcmVmaXhJZDogXCJmYW5zXCIsXG4gICAgZGVmYXVsdFN0eWxlSWQ6IFwic29saWRcIixcbiAgICBzdHlsZUlkczogW1wic29saWRcIl0sXG4gICAgZnV0dXJlU3R5bGVJZHM6IFtdLFxuICAgIGRlZmF1bHRGb250V2VpZ2h0OiA5MDBcbiAgfV0sIFtcIm5vdGRvZy1kdW9cIiwge1xuICAgIGRlZmF1bHRTaG9ydFByZWZpeElkOiBcImZhbmRzXCIsXG4gICAgZGVmYXVsdFN0eWxlSWQ6IFwic29saWRcIixcbiAgICBzdHlsZUlkczogW1wic29saWRcIl0sXG4gICAgZnV0dXJlU3R5bGVJZHM6IFtdLFxuICAgIGRlZmF1bHRGb250V2VpZ2h0OiA5MDBcbiAgfV0sIFtcInNsYWJcIiwge1xuICAgIGRlZmF1bHRTaG9ydFByZWZpeElkOiBcImZhc2xyXCIsXG4gICAgZGVmYXVsdFN0eWxlSWQ6IFwicmVndWxhclwiLFxuICAgIHN0eWxlSWRzOiBbXCJyZWd1bGFyXCJdLFxuICAgIGZ1dHVyZVN0eWxlSWRzOiBbXSxcbiAgICBkZWZhdWx0Rm9udFdlaWdodDogNDAwXG4gIH1dLCBbXCJzbGFiLXByZXNzXCIsIHtcbiAgICBkZWZhdWx0U2hvcnRQcmVmaXhJZDogXCJmYXNscHJcIixcbiAgICBkZWZhdWx0U3R5bGVJZDogXCJyZWd1bGFyXCIsXG4gICAgc3R5bGVJZHM6IFtcInJlZ3VsYXJcIl0sXG4gICAgZnV0dXJlU3R5bGVJZHM6IFtdLFxuICAgIGRlZmF1bHRGb250V2VpZ2h0OiA0MDBcbiAgfV0sIFtcInRodW1icHJpbnRcIiwge1xuICAgIGRlZmF1bHRTaG9ydFByZWZpeElkOiBcImZhdGxcIixcbiAgICBkZWZhdWx0U3R5bGVJZDogXCJsaWdodFwiLFxuICAgIHN0eWxlSWRzOiBbXCJsaWdodFwiXSxcbiAgICBmdXR1cmVTdHlsZUlkczogW10sXG4gICAgZGVmYXVsdEZvbnRXZWlnaHQ6IDMwMFxuICB9XSwgW1widXRpbGl0eVwiLCB7XG4gICAgZGVmYXVsdFNob3J0UHJlZml4SWQ6IFwiZmF1c2JcIixcbiAgICBkZWZhdWx0U3R5bGVJZDogXCJzZW1pYm9sZFwiLFxuICAgIHN0eWxlSWRzOiBbXCJzZW1pYm9sZFwiXSxcbiAgICBmdXR1cmVTdHlsZUlkczogW10sXG4gICAgZGVmYXVsdEZvbnRXZWlnaHQ6IDYwMFxuICB9XSwgW1widXRpbGl0eS1kdW9cIiwge1xuICAgIGRlZmF1bHRTaG9ydFByZWZpeElkOiBcImZhdWRzYlwiLFxuICAgIGRlZmF1bHRTdHlsZUlkOiBcInNlbWlib2xkXCIsXG4gICAgc3R5bGVJZHM6IFtcInNlbWlib2xkXCJdLFxuICAgIGZ1dHVyZVN0eWxlSWRzOiBbXSxcbiAgICBkZWZhdWx0Rm9udFdlaWdodDogNjAwXG4gIH1dLCBbXCJ1dGlsaXR5LWZpbGxcIiwge1xuICAgIGRlZmF1bHRTaG9ydFByZWZpeElkOiBcImZhdWZzYlwiLFxuICAgIGRlZmF1bHRTdHlsZUlkOiBcInNlbWlib2xkXCIsXG4gICAgc3R5bGVJZHM6IFtcInNlbWlib2xkXCJdLFxuICAgIGZ1dHVyZVN0eWxlSWRzOiBbXSxcbiAgICBkZWZhdWx0Rm9udFdlaWdodDogNjAwXG4gIH1dLCBbXCJ3aGl0ZWJvYXJkXCIsIHtcbiAgICBkZWZhdWx0U2hvcnRQcmVmaXhJZDogXCJmYXdzYlwiLFxuICAgIGRlZmF1bHRTdHlsZUlkOiBcInNlbWlib2xkXCIsXG4gICAgc3R5bGVJZHM6IFtcInNlbWlib2xkXCJdLFxuICAgIGZ1dHVyZVN0eWxlSWRzOiBbXSxcbiAgICBkZWZhdWx0Rm9udFdlaWdodDogNjAwXG4gIH1dXSksXG4gIF90ID0ge1xuICAgIGNoaXNlbDoge1xuICAgICAgcmVndWxhcjogXCJmYWNyXCJcbiAgICB9LFxuICAgIGNsYXNzaWM6IHtcbiAgICAgIGJyYW5kczogXCJmYWJcIixcbiAgICAgIGxpZ2h0OiBcImZhbFwiLFxuICAgICAgcmVndWxhcjogXCJmYXJcIixcbiAgICAgIHNvbGlkOiBcImZhc1wiLFxuICAgICAgdGhpbjogXCJmYXRcIlxuICAgIH0sXG4gICAgZHVvdG9uZToge1xuICAgICAgbGlnaHQ6IFwiZmFkbFwiLFxuICAgICAgcmVndWxhcjogXCJmYWRyXCIsXG4gICAgICBzb2xpZDogXCJmYWRcIixcbiAgICAgIHRoaW46IFwiZmFkdFwiXG4gICAgfSxcbiAgICBldGNoOiB7XG4gICAgICBzb2xpZDogXCJmYWVzXCJcbiAgICB9LFxuICAgIGplbGx5OiB7XG4gICAgICByZWd1bGFyOiBcImZhanJcIlxuICAgIH0sXG4gICAgXCJqZWxseS1kdW9cIjoge1xuICAgICAgcmVndWxhcjogXCJmYWpkclwiXG4gICAgfSxcbiAgICBcImplbGx5LWZpbGxcIjoge1xuICAgICAgcmVndWxhcjogXCJmYWpmclwiXG4gICAgfSxcbiAgICBub3Rkb2c6IHtcbiAgICAgIHNvbGlkOiBcImZhbnNcIlxuICAgIH0sXG4gICAgXCJub3Rkb2ctZHVvXCI6IHtcbiAgICAgIHNvbGlkOiBcImZhbmRzXCJcbiAgICB9LFxuICAgIHNoYXJwOiB7XG4gICAgICBsaWdodDogXCJmYXNsXCIsXG4gICAgICByZWd1bGFyOiBcImZhc3JcIixcbiAgICAgIHNvbGlkOiBcImZhc3NcIixcbiAgICAgIHRoaW46IFwiZmFzdFwiXG4gICAgfSxcbiAgICBcInNoYXJwLWR1b3RvbmVcIjoge1xuICAgICAgbGlnaHQ6IFwiZmFzZGxcIixcbiAgICAgIHJlZ3VsYXI6IFwiZmFzZHJcIixcbiAgICAgIHNvbGlkOiBcImZhc2RzXCIsXG4gICAgICB0aGluOiBcImZhc2R0XCJcbiAgICB9LFxuICAgIHNsYWI6IHtcbiAgICAgIHJlZ3VsYXI6IFwiZmFzbHJcIlxuICAgIH0sXG4gICAgXCJzbGFiLXByZXNzXCI6IHtcbiAgICAgIHJlZ3VsYXI6IFwiZmFzbHByXCJcbiAgICB9LFxuICAgIHRodW1icHJpbnQ6IHtcbiAgICAgIGxpZ2h0OiBcImZhdGxcIlxuICAgIH0sXG4gICAgdXRpbGl0eToge1xuICAgICAgc2VtaWJvbGQ6IFwiZmF1c2JcIlxuICAgIH0sXG4gICAgXCJ1dGlsaXR5LWR1b1wiOiB7XG4gICAgICBzZW1pYm9sZDogXCJmYXVkc2JcIlxuICAgIH0sXG4gICAgXCJ1dGlsaXR5LWZpbGxcIjoge1xuICAgICAgc2VtaWJvbGQ6IFwiZmF1ZnNiXCJcbiAgICB9LFxuICAgIHdoaXRlYm9hcmQ6IHtcbiAgICAgIHNlbWlib2xkOiBcImZhd3NiXCJcbiAgICB9XG4gIH07XG52YXIgWXQgPSBbXCJmYWtcIiwgXCJmYS1raXRcIiwgXCJmYWtkXCIsIFwiZmEta2l0LWR1b3RvbmVcIl0sXG4gIHF0ID0ge1xuICAgIGtpdDoge1xuICAgICAgZmFrOiBcImtpdFwiLFxuICAgICAgXCJmYS1raXRcIjogXCJraXRcIlxuICAgIH0sXG4gICAgXCJraXQtZHVvdG9uZVwiOiB7XG4gICAgICBmYWtkOiBcImtpdC1kdW90b25lXCIsXG4gICAgICBcImZhLWtpdC1kdW90b25lXCI6IFwia2l0LWR1b3RvbmVcIlxuICAgIH1cbiAgfSxcbiAgSHQgPSBbXCJraXRcIl07XG52YXIgTCA9IFwia2l0XCIsXG4gIHIgPSBcImtpdC1kdW90b25lXCIsXG4gIFUgPSBcIktpdFwiLFxuICBKID0gXCJLaXQgRHVvdG9uZVwiLFxuICAkdCA9IF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoe30sIEwsIFUpLCByLCBKKTtcbnZhciBvbCA9IHtcbiAga2l0OiB7XG4gICAgXCJmYS1raXRcIjogXCJmYWtcIlxuICB9LFxuICBcImtpdC1kdW90b25lXCI6IHtcbiAgICBcImZhLWtpdC1kdW90b25lXCI6IFwiZmFrZFwiXG4gIH1cbn07XG52YXIgZGwgPSB7XG4gICAgXCJGb250IEF3ZXNvbWUgS2l0XCI6IHtcbiAgICAgIDQwMDogXCJmYWtcIixcbiAgICAgIG5vcm1hbDogXCJmYWtcIlxuICAgIH0sXG4gICAgXCJGb250IEF3ZXNvbWUgS2l0IER1b3RvbmVcIjoge1xuICAgICAgNDAwOiBcImZha2RcIixcbiAgICAgIG5vcm1hbDogXCJmYWtkXCJcbiAgICB9XG4gIH0sXG4gIGZsID0ge1xuICAgIGtpdDoge1xuICAgICAgZmFrOiBcImZhLWtpdFwiXG4gICAgfSxcbiAgICBcImtpdC1kdW90b25lXCI6IHtcbiAgICAgIGZha2Q6IFwiZmEta2l0LWR1b3RvbmVcIlxuICAgIH1cbiAgfTtcbnZhciB1bCA9IHtcbiAgICBraXQ6IHtcbiAgICAgIGtpdDogXCJmYWtcIlxuICAgIH0sXG4gICAgXCJraXQtZHVvdG9uZVwiOiB7XG4gICAgICBcImtpdC1kdW90b25lXCI6IFwiZmFrZFwiXG4gICAgfVxuICB9O1xuXG52YXIgX21sO1xudmFyIGwkMSA9IHtcbiAgICBHUk9VUDogXCJkdW90b25lLWdyb3VwXCIsXG4gICAgU1dBUF9PUEFDSVRZOiBcInN3YXAtb3BhY2l0eVwiLFxuICAgIFBSSU1BUlk6IFwicHJpbWFyeVwiLFxuICAgIFNFQ09OREFSWTogXCJzZWNvbmRhcnlcIlxuICB9LFxuICBmJDEgPSBbXCJmYS1jbGFzc2ljXCIsIFwiZmEtZHVvdG9uZVwiLCBcImZhLXNoYXJwXCIsIFwiZmEtc2hhcnAtZHVvdG9uZVwiLCBcImZhLXRodW1icHJpbnRcIiwgXCJmYS13aGl0ZWJvYXJkXCIsIFwiZmEtbm90ZG9nXCIsIFwiZmEtbm90ZG9nLWR1b1wiLCBcImZhLWNoaXNlbFwiLCBcImZhLWV0Y2hcIiwgXCJmYS1qZWxseVwiLCBcImZhLWplbGx5LWZpbGxcIiwgXCJmYS1qZWxseS1kdW9cIiwgXCJmYS1zbGFiXCIsIFwiZmEtc2xhYi1wcmVzc1wiLCBcImZhLXV0aWxpdHlcIiwgXCJmYS11dGlsaXR5LWR1b1wiLCBcImZhLXV0aWxpdHktZmlsbFwiXTtcbnZhciBuJDEgPSBcImNsYXNzaWNcIixcbiAgbyQxID0gXCJkdW90b25lXCIsXG4gIHUkMSA9IFwic2hhcnBcIixcbiAgcyQxID0gXCJzaGFycC1kdW90b25lXCIsXG4gIGgkMSA9IFwiY2hpc2VsXCIsXG4gIGckMSA9IFwiZXRjaFwiLFxuICB5JDEgPSBcImplbGx5XCIsXG4gIGUkMSA9IFwiamVsbHktZHVvXCIsXG4gIG0kMSA9IFwiamVsbHktZmlsbFwiLFxuICBwJDEgPSBcIm5vdGRvZ1wiLFxuICBhJDEgPSBcIm5vdGRvZy1kdW9cIixcbiAgdyQxID0gXCJzbGFiXCIsXG4gIGIkMSA9IFwic2xhYi1wcmVzc1wiLFxuICByJDEgPSBcInRodW1icHJpbnRcIixcbiAgYyQxID0gXCJ1dGlsaXR5XCIsXG4gIGkkMSA9IFwidXRpbGl0eS1kdW9cIixcbiAgeCQxID0gXCJ1dGlsaXR5LWZpbGxcIixcbiAgSSQxID0gXCJ3aGl0ZWJvYXJkXCIsXG4gIEYkMSA9IFwiQ2xhc3NpY1wiLFxuICB2JDEgPSBcIkR1b3RvbmVcIixcbiAgUyQxID0gXCJTaGFycFwiLFxuICBBJDEgPSBcIlNoYXJwIER1b3RvbmVcIixcbiAgUCQxID0gXCJDaGlzZWxcIixcbiAgaiQxID0gXCJFdGNoXCIsXG4gIEIkMSA9IFwiSmVsbHlcIixcbiAgTiQxID0gXCJKZWxseSBEdW9cIixcbiAgayQxID0gXCJKZWxseSBGaWxsXCIsXG4gIEQkMSA9IFwiTm90ZG9nXCIsXG4gIEMkMSA9IFwiTm90ZG9nIER1b1wiLFxuICBUJDEgPSBcIlNsYWJcIixcbiAgTCQxID0gXCJTbGFiIFByZXNzXCIsXG4gIFckMSA9IFwiVGh1bWJwcmludFwiLFxuICBSJDEgPSBcIlV0aWxpdHlcIixcbiAgSyQxID0gXCJVdGlsaXR5IER1b1wiLFxuICBVJDEgPSBcIlV0aWxpdHkgRmlsbFwiLFxuICBKJDEgPSBcIldoaXRlYm9hcmRcIixcbiAgbWwkMSA9IChfbWwgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9tbCwgbiQxLCBGJDEpLCBvJDEsIHYkMSksIHUkMSwgUyQxKSwgcyQxLCBBJDEpLCBoJDEsIFAkMSksIGckMSwgaiQxKSwgeSQxLCBCJDEpLCBlJDEsIE4kMSksIG0kMSwgayQxKSwgcCQxLCBEJDEpLCBfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9tbCwgYSQxLCBDJDEpLCB3JDEsIFQkMSksIGIkMSwgTCQxKSwgciQxLCBXJDEpLCBjJDEsIFIkMSksIGkkMSwgSyQxKSwgeCQxLCBVJDEpLCBJJDEsIEokMSkpO1xudmFyIEUkMSA9IFwia2l0XCIsXG4gIGQkMSA9IFwia2l0LWR1b3RvbmVcIixcbiAgXyQxID0gXCJLaXRcIixcbiAgTSQxID0gXCJLaXQgRHVvdG9uZVwiLFxuICBydCQxID0gX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eSh7fSwgRSQxLCBfJDEpLCBkJDEsIE0kMSk7XG52YXIgJHQkMSA9IHtcbiAgICBjbGFzc2ljOiB7XG4gICAgICBcImZhLWJyYW5kc1wiOiBcImZhYlwiLFxuICAgICAgXCJmYS1kdW90b25lXCI6IFwiZmFkXCIsXG4gICAgICBcImZhLWxpZ2h0XCI6IFwiZmFsXCIsXG4gICAgICBcImZhLXJlZ3VsYXJcIjogXCJmYXJcIixcbiAgICAgIFwiZmEtc29saWRcIjogXCJmYXNcIixcbiAgICAgIFwiZmEtdGhpblwiOiBcImZhdFwiXG4gICAgfSxcbiAgICBkdW90b25lOiB7XG4gICAgICBcImZhLXJlZ3VsYXJcIjogXCJmYWRyXCIsXG4gICAgICBcImZhLWxpZ2h0XCI6IFwiZmFkbFwiLFxuICAgICAgXCJmYS10aGluXCI6IFwiZmFkdFwiXG4gICAgfSxcbiAgICBzaGFycDoge1xuICAgICAgXCJmYS1zb2xpZFwiOiBcImZhc3NcIixcbiAgICAgIFwiZmEtcmVndWxhclwiOiBcImZhc3JcIixcbiAgICAgIFwiZmEtbGlnaHRcIjogXCJmYXNsXCIsXG4gICAgICBcImZhLXRoaW5cIjogXCJmYXN0XCJcbiAgICB9LFxuICAgIFwic2hhcnAtZHVvdG9uZVwiOiB7XG4gICAgICBcImZhLXNvbGlkXCI6IFwiZmFzZHNcIixcbiAgICAgIFwiZmEtcmVndWxhclwiOiBcImZhc2RyXCIsXG4gICAgICBcImZhLWxpZ2h0XCI6IFwiZmFzZGxcIixcbiAgICAgIFwiZmEtdGhpblwiOiBcImZhc2R0XCJcbiAgICB9LFxuICAgIHNsYWI6IHtcbiAgICAgIFwiZmEtcmVndWxhclwiOiBcImZhc2xyXCJcbiAgICB9LFxuICAgIFwic2xhYi1wcmVzc1wiOiB7XG4gICAgICBcImZhLXJlZ3VsYXJcIjogXCJmYXNscHJcIlxuICAgIH0sXG4gICAgd2hpdGVib2FyZDoge1xuICAgICAgXCJmYS1zZW1pYm9sZFwiOiBcImZhd3NiXCJcbiAgICB9LFxuICAgIHRodW1icHJpbnQ6IHtcbiAgICAgIFwiZmEtbGlnaHRcIjogXCJmYXRsXCJcbiAgICB9LFxuICAgIG5vdGRvZzoge1xuICAgICAgXCJmYS1zb2xpZFwiOiBcImZhbnNcIlxuICAgIH0sXG4gICAgXCJub3Rkb2ctZHVvXCI6IHtcbiAgICAgIFwiZmEtc29saWRcIjogXCJmYW5kc1wiXG4gICAgfSxcbiAgICBldGNoOiB7XG4gICAgICBcImZhLXNvbGlkXCI6IFwiZmFlc1wiXG4gICAgfSxcbiAgICBqZWxseToge1xuICAgICAgXCJmYS1yZWd1bGFyXCI6IFwiZmFqclwiXG4gICAgfSxcbiAgICBcImplbGx5LWZpbGxcIjoge1xuICAgICAgXCJmYS1yZWd1bGFyXCI6IFwiZmFqZnJcIlxuICAgIH0sXG4gICAgXCJqZWxseS1kdW9cIjoge1xuICAgICAgXCJmYS1yZWd1bGFyXCI6IFwiZmFqZHJcIlxuICAgIH0sXG4gICAgY2hpc2VsOiB7XG4gICAgICBcImZhLXJlZ3VsYXJcIjogXCJmYWNyXCJcbiAgICB9LFxuICAgIHV0aWxpdHk6IHtcbiAgICAgIFwiZmEtc2VtaWJvbGRcIjogXCJmYXVzYlwiXG4gICAgfSxcbiAgICBcInV0aWxpdHktZHVvXCI6IHtcbiAgICAgIFwiZmEtc2VtaWJvbGRcIjogXCJmYXVkc2JcIlxuICAgIH0sXG4gICAgXCJ1dGlsaXR5LWZpbGxcIjoge1xuICAgICAgXCJmYS1zZW1pYm9sZFwiOiBcImZhdWZzYlwiXG4gICAgfVxuICB9LFxuICB6ID0ge1xuICAgIGNsYXNzaWM6IFtcImZhc1wiLCBcImZhclwiLCBcImZhbFwiLCBcImZhdFwiLCBcImZhZFwiXSxcbiAgICBkdW90b25lOiBbXCJmYWRyXCIsIFwiZmFkbFwiLCBcImZhZHRcIl0sXG4gICAgc2hhcnA6IFtcImZhc3NcIiwgXCJmYXNyXCIsIFwiZmFzbFwiLCBcImZhc3RcIl0sXG4gICAgXCJzaGFycC1kdW90b25lXCI6IFtcImZhc2RzXCIsIFwiZmFzZHJcIiwgXCJmYXNkbFwiLCBcImZhc2R0XCJdLFxuICAgIHNsYWI6IFtcImZhc2xyXCJdLFxuICAgIFwic2xhYi1wcmVzc1wiOiBbXCJmYXNscHJcIl0sXG4gICAgd2hpdGVib2FyZDogW1wiZmF3c2JcIl0sXG4gICAgdGh1bWJwcmludDogW1wiZmF0bFwiXSxcbiAgICBub3Rkb2c6IFtcImZhbnNcIl0sXG4gICAgXCJub3Rkb2ctZHVvXCI6IFtcImZhbmRzXCJdLFxuICAgIGV0Y2g6IFtcImZhZXNcIl0sXG4gICAgamVsbHk6IFtcImZhanJcIl0sXG4gICAgXCJqZWxseS1maWxsXCI6IFtcImZhamZyXCJdLFxuICAgIFwiamVsbHktZHVvXCI6IFtcImZhamRyXCJdLFxuICAgIGNoaXNlbDogW1wiZmFjclwiXSxcbiAgICB1dGlsaXR5OiBbXCJmYXVzYlwiXSxcbiAgICBcInV0aWxpdHktZHVvXCI6IFtcImZhdWRzYlwiXSxcbiAgICBcInV0aWxpdHktZmlsbFwiOiBbXCJmYXVmc2JcIl1cbiAgfSxcbiAgSHQkMSA9IHtcbiAgICBjbGFzc2ljOiB7XG4gICAgICBmYWI6IFwiZmEtYnJhbmRzXCIsXG4gICAgICBmYWQ6IFwiZmEtZHVvdG9uZVwiLFxuICAgICAgZmFsOiBcImZhLWxpZ2h0XCIsXG4gICAgICBmYXI6IFwiZmEtcmVndWxhclwiLFxuICAgICAgZmFzOiBcImZhLXNvbGlkXCIsXG4gICAgICBmYXQ6IFwiZmEtdGhpblwiXG4gICAgfSxcbiAgICBkdW90b25lOiB7XG4gICAgICBmYWRyOiBcImZhLXJlZ3VsYXJcIixcbiAgICAgIGZhZGw6IFwiZmEtbGlnaHRcIixcbiAgICAgIGZhZHQ6IFwiZmEtdGhpblwiXG4gICAgfSxcbiAgICBzaGFycDoge1xuICAgICAgZmFzczogXCJmYS1zb2xpZFwiLFxuICAgICAgZmFzcjogXCJmYS1yZWd1bGFyXCIsXG4gICAgICBmYXNsOiBcImZhLWxpZ2h0XCIsXG4gICAgICBmYXN0OiBcImZhLXRoaW5cIlxuICAgIH0sXG4gICAgXCJzaGFycC1kdW90b25lXCI6IHtcbiAgICAgIGZhc2RzOiBcImZhLXNvbGlkXCIsXG4gICAgICBmYXNkcjogXCJmYS1yZWd1bGFyXCIsXG4gICAgICBmYXNkbDogXCJmYS1saWdodFwiLFxuICAgICAgZmFzZHQ6IFwiZmEtdGhpblwiXG4gICAgfSxcbiAgICBzbGFiOiB7XG4gICAgICBmYXNscjogXCJmYS1yZWd1bGFyXCJcbiAgICB9LFxuICAgIFwic2xhYi1wcmVzc1wiOiB7XG4gICAgICBmYXNscHI6IFwiZmEtcmVndWxhclwiXG4gICAgfSxcbiAgICB3aGl0ZWJvYXJkOiB7XG4gICAgICBmYXdzYjogXCJmYS1zZW1pYm9sZFwiXG4gICAgfSxcbiAgICB0aHVtYnByaW50OiB7XG4gICAgICBmYXRsOiBcImZhLWxpZ2h0XCJcbiAgICB9LFxuICAgIG5vdGRvZzoge1xuICAgICAgZmFuczogXCJmYS1zb2xpZFwiXG4gICAgfSxcbiAgICBcIm5vdGRvZy1kdW9cIjoge1xuICAgICAgZmFuZHM6IFwiZmEtc29saWRcIlxuICAgIH0sXG4gICAgZXRjaDoge1xuICAgICAgZmFlczogXCJmYS1zb2xpZFwiXG4gICAgfSxcbiAgICBqZWxseToge1xuICAgICAgZmFqcjogXCJmYS1yZWd1bGFyXCJcbiAgICB9LFxuICAgIFwiamVsbHktZmlsbFwiOiB7XG4gICAgICBmYWpmcjogXCJmYS1yZWd1bGFyXCJcbiAgICB9LFxuICAgIFwiamVsbHktZHVvXCI6IHtcbiAgICAgIGZhamRyOiBcImZhLXJlZ3VsYXJcIlxuICAgIH0sXG4gICAgY2hpc2VsOiB7XG4gICAgICBmYWNyOiBcImZhLXJlZ3VsYXJcIlxuICAgIH0sXG4gICAgdXRpbGl0eToge1xuICAgICAgZmF1c2I6IFwiZmEtc2VtaWJvbGRcIlxuICAgIH0sXG4gICAgXCJ1dGlsaXR5LWR1b1wiOiB7XG4gICAgICBmYXVkc2I6IFwiZmEtc2VtaWJvbGRcIlxuICAgIH0sXG4gICAgXCJ1dGlsaXR5LWZpbGxcIjoge1xuICAgICAgZmF1ZnNiOiBcImZhLXNlbWlib2xkXCJcbiAgICB9XG4gIH0sXG4gIFkkMSA9IFtcImZhLXNvbGlkXCIsIFwiZmEtcmVndWxhclwiLCBcImZhLWxpZ2h0XCIsIFwiZmEtdGhpblwiLCBcImZhLWR1b3RvbmVcIiwgXCJmYS1icmFuZHNcIiwgXCJmYS1zZW1pYm9sZFwiXSxcbiAgWnQkMSA9IFtcImZhXCIsIFwiZmFzXCIsIFwiZmFyXCIsIFwiZmFsXCIsIFwiZmF0XCIsIFwiZmFkXCIsIFwiZmFkclwiLCBcImZhZGxcIiwgXCJmYWR0XCIsIFwiZmFiXCIsIFwiZmFzc1wiLCBcImZhc3JcIiwgXCJmYXNsXCIsIFwiZmFzdFwiLCBcImZhc2RzXCIsIFwiZmFzZHJcIiwgXCJmYXNkbFwiLCBcImZhc2R0XCIsIFwiZmFzbHJcIiwgXCJmYXNscHJcIiwgXCJmYXdzYlwiLCBcImZhdGxcIiwgXCJmYW5zXCIsIFwiZmFuZHNcIiwgXCJmYWVzXCIsIFwiZmFqclwiLCBcImZhamZyXCIsIFwiZmFqZHJcIiwgXCJmYWNyXCIsIFwiZmF1c2JcIiwgXCJmYXVkc2JcIiwgXCJmYXVmc2JcIl0uY29uY2F0KGYkMSwgWSQxKSxcbiAgRyQxID0gW1wic29saWRcIiwgXCJyZWd1bGFyXCIsIFwibGlnaHRcIiwgXCJ0aGluXCIsIFwiZHVvdG9uZVwiLCBcImJyYW5kc1wiLCBcInNlbWlib2xkXCJdLFxuICBPJDEgPSBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdLFxuICBWJDEgPSBPJDEuY29uY2F0KFsxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMF0pLFxuICAkJDEgPSBbXCJhd1wiLCBcImZ3XCIsIFwicHVsbC1sZWZ0XCIsIFwicHVsbC1yaWdodFwiXSxcbiAgdG8gPSBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KE9iamVjdC5rZXlzKHopKSwgRyQxLCAkJDEsIFtcIjJ4c1wiLCBcInhzXCIsIFwic21cIiwgXCJsZ1wiLCBcInhsXCIsIFwiMnhsXCIsIFwiYmVhdFwiLCBcImJvcmRlclwiLCBcImZhZGVcIiwgXCJiZWF0LWZhZGVcIiwgXCJib3VuY2VcIiwgXCJmbGlwLWJvdGhcIiwgXCJmbGlwLWhvcml6b250YWxcIiwgXCJmbGlwLXZlcnRpY2FsXCIsIFwiZmxpcFwiLCBcImludmVyc2VcIiwgXCJsYXllcnNcIiwgXCJsYXllcnMtYm90dG9tLWxlZnRcIiwgXCJsYXllcnMtYm90dG9tLXJpZ2h0XCIsIFwibGF5ZXJzLWNvdW50ZXJcIiwgXCJsYXllcnMtdGV4dFwiLCBcImxheWVycy10b3AtbGVmdFwiLCBcImxheWVycy10b3AtcmlnaHRcIiwgXCJsaVwiLCBcInB1bGwtZW5kXCIsIFwicHVsbC1zdGFydFwiLCBcInB1bHNlXCIsIFwicm90YXRlLTE4MFwiLCBcInJvdGF0ZS0yNzBcIiwgXCJyb3RhdGUtOTBcIiwgXCJyb3RhdGUtYnlcIiwgXCJzaGFrZVwiLCBcInNwaW4tcHVsc2VcIiwgXCJzcGluLXJldmVyc2VcIiwgXCJzcGluXCIsIFwic3RhY2stMXhcIiwgXCJzdGFjay0yeFwiLCBcInN0YWNrXCIsIFwidWxcIiwgXCJ3aWR0aC1hdXRvXCIsIFwid2lkdGgtZml4ZWRcIiwgbCQxLkdST1VQLCBsJDEuU1dBUF9PUEFDSVRZLCBsJDEuUFJJTUFSWSwgbCQxLlNFQ09OREFSWV0pLmNvbmNhdChPJDEubWFwKGZ1bmN0aW9uICh0KSB7XG4gICAgcmV0dXJuIFwiXCIuY29uY2F0KHQsIFwieFwiKTtcbiAgfSkpLmNvbmNhdChWJDEubWFwKGZ1bmN0aW9uICh0KSB7XG4gICAgcmV0dXJuIFwidy1cIi5jb25jYXQodCk7XG4gIH0pKTtcbnZhciBybyA9IHtcbiAgICBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIjoge1xuICAgICAgOTAwOiBcImZhc1wiLFxuICAgICAgNDAwOiBcImZhclwiXG4gICAgfSxcbiAgICBcIkZvbnQgQXdlc29tZSA1IFByb1wiOiB7XG4gICAgICA5MDA6IFwiZmFzXCIsXG4gICAgICA0MDA6IFwiZmFyXCIsXG4gICAgICBub3JtYWw6IFwiZmFyXCIsXG4gICAgICAzMDA6IFwiZmFsXCJcbiAgICB9LFxuICAgIFwiRm9udCBBd2Vzb21lIDUgQnJhbmRzXCI6IHtcbiAgICAgIDQwMDogXCJmYWJcIixcbiAgICAgIG5vcm1hbDogXCJmYWJcIlxuICAgIH0sXG4gICAgXCJGb250IEF3ZXNvbWUgNSBEdW90b25lXCI6IHtcbiAgICAgIDkwMDogXCJmYWRcIlxuICAgIH1cbiAgfTtcblxudmFyIE5BTUVTUEFDRV9JREVOVElGSUVSID0gJ19fX0ZPTlRfQVdFU09NRV9fXyc7XG52YXIgVU5JVFNfSU5fR1JJRCA9IDE2O1xudmFyIERFRkFVTFRfQ1NTX1BSRUZJWCA9ICdmYSc7XG52YXIgREVGQVVMVF9SRVBMQUNFTUVOVF9DTEFTUyA9ICdzdmctaW5saW5lLS1mYSc7XG52YXIgREFUQV9GQV9JMlNWRyA9ICdkYXRhLWZhLWkyc3ZnJztcbnZhciBEQVRBX0ZBX1BTRVVET19FTEVNRU5UID0gJ2RhdGEtZmEtcHNldWRvLWVsZW1lbnQnO1xudmFyIERBVEFfRkFfUFNFVURPX0VMRU1FTlRfUEVORElORyA9ICdkYXRhLWZhLXBzZXVkby1lbGVtZW50LXBlbmRpbmcnO1xudmFyIERBVEFfUFJFRklYID0gJ2RhdGEtcHJlZml4JztcbnZhciBEQVRBX0lDT04gPSAnZGF0YS1pY29uJztcbnZhciBIVE1MX0NMQVNTX0kyU1ZHX0JBU0VfQ0xBU1MgPSAnZm9udGF3ZXNvbWUtaTJzdmcnO1xudmFyIE1VVEFUSU9OX0FQUFJPQUNIX0FTWU5DID0gJ2FzeW5jJztcbnZhciBUQUdOQU1FU19UT19TS0lQX0ZPUl9QU0VVRE9FTEVNRU5UUyA9IFsnSFRNTCcsICdIRUFEJywgJ1NUWUxFJywgJ1NDUklQVCddO1xudmFyIFBTRVVET19FTEVNRU5UUyA9IFsnOjpiZWZvcmUnLCAnOjphZnRlcicsICc6YmVmb3JlJywgJzphZnRlciddO1xudmFyIFBST0RVQ1RJT04gPSBmdW5jdGlvbiAoKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbic7XG4gIH0gY2F0Y2ggKGUkJDEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn0oKTtcbmZ1bmN0aW9uIGZhbWlseVByb3h5KG9iaikge1xuICAvLyBEZWZhdWx0cyB0byB0aGUgY2xhc3NpYyBmYW1pbHkgaWYgZmFtaWx5IGlzIG5vdCBhdmFpbGFibGVcbiAgcmV0dXJuIG5ldyBQcm94eShvYmosIHtcbiAgICBnZXQ6IGZ1bmN0aW9uIGdldCh0YXJnZXQsIHByb3ApIHtcbiAgICAgIHJldHVybiBwcm9wIGluIHRhcmdldCA/IHRhcmdldFtwcm9wXSA6IHRhcmdldFtpXTtcbiAgICB9XG4gIH0pO1xufVxudmFyIF9QUkVGSVhfVE9fU1RZTEUgPSBfb2JqZWN0U3ByZWFkMih7fSwgcSk7XG5cbi8vIFdlIGNoYW5nZWQgRkFDU1NDbGFzc2VzVG9TdHlsZUlkIGluIHRoZSBpY29ucyByZXBvIHRvIGJlIGNhbm9uaWNhbCBhbmQgYXMgc3VjaCwgXCJjbGFzc2ljXCIgZmFtaWx5IGRvZXMgbm90IGhhdmUgYW55XG4vLyBkdW90b25lIHN0eWxlcy4gIEJ1dCB3ZSBkbyBzdGlsbCBuZWVkIGR1b3RvbmUgaW4gX1BSRUZJWF9UT19TVFlMRSBiZWxvdywgc28gd2UgYXJlIG1hbnVhbGx5IGFkZGluZ1xuLy8geydmYS1kdW90b25lJzogJ2R1b3RvbmUnfVxuX1BSRUZJWF9UT19TVFlMRVtpXSA9IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCB7XG4gICdmYS1kdW90b25lJzogJ2R1b3RvbmUnXG59KSwgcVtpXSksIHF0WydraXQnXSksIHF0WydraXQtZHVvdG9uZSddKTtcbnZhciBQUkVGSVhfVE9fU1RZTEUgPSBmYW1pbHlQcm94eShfUFJFRklYX1RPX1NUWUxFKTtcbnZhciBfU1RZTEVfVE9fUFJFRklYID0gX29iamVjdFNwcmVhZDIoe30sIF90KTtcblxuLy8gV2UgY2hhbmdlZCBGQVN0eWxlSWRUb1Nob3J0UHJlZml4SWQgaW4gdGhlIGljb25zIHJlcG8gdG8gYmUgY2Fub25pY2FsIGFuZCBhcyBzdWNoLCBcImNsYXNzaWNcIiBmYW1pbHkgZG9lcyBub3QgaGF2ZSBhbnlcbi8vIGR1b3RvbmUgc3R5bGVzLiAgQnV0IHdlIGRvIHN0aWxsIG5lZWQgZHVvdG9uZSBpbiBfU1RZTEVfVE9fUFJFRklYIGJlbG93LCBzbyB3ZSBhcmUgbWFudWFsbHkgYWRkaW5nIHtkdW90b25lOiAnZmFkJ31cbl9TVFlMRV9UT19QUkVGSVhbaV0gPSBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwge1xuICBkdW90b25lOiAnZmFkJ1xufSksIF9TVFlMRV9UT19QUkVGSVhbaV0pLCB1bFsna2l0J10pLCB1bFsna2l0LWR1b3RvbmUnXSk7XG52YXIgU1RZTEVfVE9fUFJFRklYID0gZmFtaWx5UHJveHkoX1NUWUxFX1RPX1BSRUZJWCk7XG52YXIgX1BSRUZJWF9UT19MT05HX1NUWUxFID0gX29iamVjdFNwcmVhZDIoe30sIEh0JDEpO1xuX1BSRUZJWF9UT19MT05HX1NUWUxFW2ldID0gX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIF9QUkVGSVhfVE9fTE9OR19TVFlMRVtpXSksIGZsWydraXQnXSk7XG52YXIgUFJFRklYX1RPX0xPTkdfU1RZTEUgPSBmYW1pbHlQcm94eShfUFJFRklYX1RPX0xPTkdfU1RZTEUpO1xudmFyIF9MT05HX1NUWUxFX1RPX1BSRUZJWCA9IF9vYmplY3RTcHJlYWQyKHt9LCAkdCQxKTtcbl9MT05HX1NUWUxFX1RPX1BSRUZJWFtpXSA9IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBfTE9OR19TVFlMRV9UT19QUkVGSVhbaV0pLCBvbFsna2l0J10pO1xudmFyIExPTkdfU1RZTEVfVE9fUFJFRklYID0gZmFtaWx5UHJveHkoX0xPTkdfU1RZTEVfVE9fUFJFRklYKTtcbnZhciBJQ09OX1NFTEVDVElPTl9TWU5UQVhfUEFUVEVSTiA9IEU7XG52YXIgTEFZRVJTX1RFWFRfQ0xBU1NOQU1FID0gJ2ZhLWxheWVycy10ZXh0JztcbnZhciBGT05UX0ZBTUlMWV9QQVRURVJOID0gXztcbnZhciBfRk9OVF9XRUlHSFRfVE9fUFJFRklYID0gX29iamVjdFNwcmVhZDIoe30sIGd0KTtcbnZhciBGT05UX1dFSUdIVF9UT19QUkVGSVggPSBmYW1pbHlQcm94eShfRk9OVF9XRUlHSFRfVE9fUFJFRklYKTtcbnZhciBBVFRSSUJVVEVTX1dBVENIRURfRk9SX01VVEFUSU9OID0gWydjbGFzcycsICdkYXRhLXByZWZpeCcsICdkYXRhLWljb24nLCAnZGF0YS1mYS10cmFuc2Zvcm0nLCAnZGF0YS1mYS1tYXNrJ107XG52YXIgRFVPVE9ORV9DTEFTU0VTID0gSDtcbnZhciBSRVNFUlZFRF9DTEFTU0VTID0gW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShIdCksIF90b0NvbnN1bWFibGVBcnJheSh0bykpO1xuXG52YXIgaW5pdGlhbCA9IFdJTkRPVy5Gb250QXdlc29tZUNvbmZpZyB8fCB7fTtcbmZ1bmN0aW9uIGdldEF0dHJDb25maWcoYXR0cikge1xuICB2YXIgZWxlbWVudCA9IERPQ1VNRU5ULnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFsnICsgYXR0ciArICddJyk7XG4gIGlmIChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHIpO1xuICB9XG59XG5mdW5jdGlvbiBjb2VyY2UodmFsKSB7XG4gIC8vIEdldHRpbmcgYW4gZW1wdHkgc3RyaW5nIHdpbGwgb2NjdXIgaWYgdGhlIGF0dHJpYnV0ZSBpcyBzZXQgb24gdGhlIEhUTUwgdGFnIGJ1dCB3aXRob3V0IGEgdmFsdWVcbiAgLy8gV2UnbGwgYXNzdW1lIHRoYXQgdGhpcyBpcyBhbiBpbmRpY2F0aW9uIHRoYXQgaXQgc2hvdWxkIGJlIHRvZ2dsZWQgdG8gdHJ1ZVxuICBpZiAodmFsID09PSAnJykgcmV0dXJuIHRydWU7XG4gIGlmICh2YWwgPT09ICdmYWxzZScpIHJldHVybiBmYWxzZTtcbiAgaWYgKHZhbCA9PT0gJ3RydWUnKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIHZhbDtcbn1cbmlmIChET0NVTUVOVCAmJiB0eXBlb2YgRE9DVU1FTlQucXVlcnlTZWxlY3RvciA9PT0gJ2Z1bmN0aW9uJykge1xuICB2YXIgYXR0cnMgPSBbWydkYXRhLWZhbWlseS1wcmVmaXgnLCAnZmFtaWx5UHJlZml4J10sIFsnZGF0YS1jc3MtcHJlZml4JywgJ2Nzc1ByZWZpeCddLCBbJ2RhdGEtZmFtaWx5LWRlZmF1bHQnLCAnZmFtaWx5RGVmYXVsdCddLCBbJ2RhdGEtc3R5bGUtZGVmYXVsdCcsICdzdHlsZURlZmF1bHQnXSwgWydkYXRhLXJlcGxhY2VtZW50LWNsYXNzJywgJ3JlcGxhY2VtZW50Q2xhc3MnXSwgWydkYXRhLWF1dG8tcmVwbGFjZS1zdmcnLCAnYXV0b1JlcGxhY2VTdmcnXSwgWydkYXRhLWF1dG8tYWRkLWNzcycsICdhdXRvQWRkQ3NzJ10sIFsnZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzJywgJ3NlYXJjaFBzZXVkb0VsZW1lbnRzJ10sIFsnZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzLXdhcm5pbmdzJywgJ3NlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MnXSwgWydkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMtZnVsbC1zY2FuJywgJ3NlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW4nXSwgWydkYXRhLW9ic2VydmUtbXV0YXRpb25zJywgJ29ic2VydmVNdXRhdGlvbnMnXSwgWydkYXRhLW11dGF0ZS1hcHByb2FjaCcsICdtdXRhdGVBcHByb2FjaCddLCBbJ2RhdGEta2VlcC1vcmlnaW5hbC1zb3VyY2UnLCAna2VlcE9yaWdpbmFsU291cmNlJ10sIFsnZGF0YS1tZWFzdXJlLXBlcmZvcm1hbmNlJywgJ21lYXN1cmVQZXJmb3JtYW5jZSddLCBbJ2RhdGEtc2hvdy1taXNzaW5nLWljb25zJywgJ3Nob3dNaXNzaW5nSWNvbnMnXV07XG4gIGF0dHJzLmZvckVhY2goZnVuY3Rpb24gKF9yZWYpIHtcbiAgICB2YXIgX3JlZjIgPSBfc2xpY2VkVG9BcnJheShfcmVmLCAyKSxcbiAgICAgIGF0dHIgPSBfcmVmMlswXSxcbiAgICAgIGtleSA9IF9yZWYyWzFdO1xuICAgIHZhciB2YWwgPSBjb2VyY2UoZ2V0QXR0ckNvbmZpZyhhdHRyKSk7XG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCkge1xuICAgICAgaW5pdGlhbFtrZXldID0gdmFsO1xuICAgIH1cbiAgfSk7XG59XG52YXIgX2RlZmF1bHQgPSB7XG4gIHN0eWxlRGVmYXVsdDogJ3NvbGlkJyxcbiAgZmFtaWx5RGVmYXVsdDogaSxcbiAgY3NzUHJlZml4OiBERUZBVUxUX0NTU19QUkVGSVgsXG4gIHJlcGxhY2VtZW50Q2xhc3M6IERFRkFVTFRfUkVQTEFDRU1FTlRfQ0xBU1MsXG4gIGF1dG9SZXBsYWNlU3ZnOiB0cnVlLFxuICBhdXRvQWRkQ3NzOiB0cnVlLFxuICBzZWFyY2hQc2V1ZG9FbGVtZW50czogZmFsc2UsXG4gIHNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3M6IHRydWUsXG4gIHNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW46IGZhbHNlLFxuICBvYnNlcnZlTXV0YXRpb25zOiB0cnVlLFxuICBtdXRhdGVBcHByb2FjaDogJ2FzeW5jJyxcbiAga2VlcE9yaWdpbmFsU291cmNlOiB0cnVlLFxuICBtZWFzdXJlUGVyZm9ybWFuY2U6IGZhbHNlLFxuICBzaG93TWlzc2luZ0ljb25zOiB0cnVlXG59O1xuXG4vLyBmYW1pbHlQcmVmaXggaXMgZGVwcmVjYXRlZCBidXQgd2UgbXVzdCBzdGlsbCBzdXBwb3J0IGl0IGlmIHByZXNlbnRcbmlmIChpbml0aWFsLmZhbWlseVByZWZpeCkge1xuICBpbml0aWFsLmNzc1ByZWZpeCA9IGluaXRpYWwuZmFtaWx5UHJlZml4O1xufVxudmFyIF9jb25maWcgPSBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgX2RlZmF1bHQpLCBpbml0aWFsKTtcbmlmICghX2NvbmZpZy5hdXRvUmVwbGFjZVN2ZykgX2NvbmZpZy5vYnNlcnZlTXV0YXRpb25zID0gZmFsc2U7XG52YXIgY29uZmlnID0ge307XG5PYmplY3Qua2V5cyhfZGVmYXVsdCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWcsIGtleSwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgc2V0OiBmdW5jdGlvbiBzZXQodmFsKSB7XG4gICAgICBfY29uZmlnW2tleV0gPSB2YWw7XG4gICAgICBfb25DaGFuZ2VDYi5mb3JFYWNoKGZ1bmN0aW9uIChjYikge1xuICAgICAgICByZXR1cm4gY2IoY29uZmlnKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICByZXR1cm4gX2NvbmZpZ1trZXldO1xuICAgIH1cbiAgfSk7XG59KTtcblxuLy8gZmFtaWx5UHJlZml4IGlzIGRlcHJlY2F0ZWQgYXMgb2YgNi4yLjAgYW5kIHNob3VsZCBiZSByZW1vdmVkIGluIDcuMC4wXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoY29uZmlnLCAnZmFtaWx5UHJlZml4Jywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBzZXQ6IGZ1bmN0aW9uIHNldCh2YWwpIHtcbiAgICBfY29uZmlnLmNzc1ByZWZpeCA9IHZhbDtcbiAgICBfb25DaGFuZ2VDYi5mb3JFYWNoKGZ1bmN0aW9uIChjYikge1xuICAgICAgcmV0dXJuIGNiKGNvbmZpZyk7XG4gICAgfSk7XG4gIH0sXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfY29uZmlnLmNzc1ByZWZpeDtcbiAgfVxufSk7XG5XSU5ET1cuRm9udEF3ZXNvbWVDb25maWcgPSBjb25maWc7XG52YXIgX29uQ2hhbmdlQ2IgPSBbXTtcbmZ1bmN0aW9uIG9uQ2hhbmdlKGNiKSB7XG4gIF9vbkNoYW5nZUNiLnB1c2goY2IpO1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIF9vbkNoYW5nZUNiLnNwbGljZShfb25DaGFuZ2VDYi5pbmRleE9mKGNiKSwgMSk7XG4gIH07XG59XG5cbnZhciBkJDIgPSBVTklUU19JTl9HUklEO1xudmFyIG1lYW5pbmdsZXNzVHJhbnNmb3JtID0ge1xuICBzaXplOiAxNixcbiAgeDogMCxcbiAgeTogMCxcbiAgcm90YXRlOiAwLFxuICBmbGlwWDogZmFsc2UsXG4gIGZsaXBZOiBmYWxzZVxufTtcbmZ1bmN0aW9uIGluc2VydENzcyhjc3MpIHtcbiAgaWYgKCFjc3MgfHwgIUlTX0RPTSkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgc3R5bGUgPSBET0NVTUVOVC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICBzdHlsZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9jc3MnKTtcbiAgc3R5bGUuaW5uZXJIVE1MID0gY3NzO1xuICB2YXIgaGVhZENoaWxkcmVuID0gRE9DVU1FTlQuaGVhZC5jaGlsZE5vZGVzO1xuICB2YXIgYmVmb3JlQ2hpbGQgPSBudWxsO1xuICBmb3IgKHZhciBpID0gaGVhZENoaWxkcmVuLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XG4gICAgdmFyIGNoaWxkID0gaGVhZENoaWxkcmVuW2ldO1xuICAgIHZhciB0YWdOYW1lID0gKGNoaWxkLnRhZ05hbWUgfHwgJycpLnRvVXBwZXJDYXNlKCk7XG4gICAgaWYgKFsnU1RZTEUnLCAnTElOSyddLmluZGV4T2YodGFnTmFtZSkgPiAtMSkge1xuICAgICAgYmVmb3JlQ2hpbGQgPSBjaGlsZDtcbiAgICB9XG4gIH1cbiAgRE9DVU1FTlQuaGVhZC5pbnNlcnRCZWZvcmUoc3R5bGUsIGJlZm9yZUNoaWxkKTtcbiAgcmV0dXJuIGNzcztcbn1cbnZhciBpZFBvb2wgPSAnMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonO1xuZnVuY3Rpb24gbmV4dFVuaXF1ZUlkKCkge1xuICB2YXIgc2l6ZSA9IDEyO1xuICB2YXIgaWQgPSAnJztcbiAgd2hpbGUgKHNpemUtLSA+IDApIHtcbiAgICBpZCArPSBpZFBvb2xbTWF0aC5yYW5kb20oKSAqIDYyIHwgMF07XG4gIH1cbiAgcmV0dXJuIGlkO1xufVxuZnVuY3Rpb24gdG9BcnJheShvYmopIHtcbiAgdmFyIGFycmF5ID0gW107XG4gIGZvciAodmFyIGkgPSAob2JqIHx8IFtdKS5sZW5ndGggPj4+IDA7IGktLTspIHtcbiAgICBhcnJheVtpXSA9IG9ialtpXTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5mdW5jdGlvbiBjbGFzc0FycmF5KG5vZGUpIHtcbiAgaWYgKG5vZGUuY2xhc3NMaXN0KSB7XG4gICAgcmV0dXJuIHRvQXJyYXkobm9kZS5jbGFzc0xpc3QpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAobm9kZS5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJycpLnNwbGl0KCcgJykuZmlsdGVyKGZ1bmN0aW9uIChpKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9KTtcbiAgfVxufVxuZnVuY3Rpb24gaHRtbEVzY2FwZShzdHIpIHtcbiAgcmV0dXJuIFwiXCIuY29uY2F0KHN0cikucmVwbGFjZSgvJi9nLCAnJmFtcDsnKS5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JykucmVwbGFjZSgvJy9nLCAnJiMzOTsnKS5yZXBsYWNlKC88L2csICcmbHQ7JykucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xufVxuZnVuY3Rpb24gam9pbkF0dHJpYnV0ZXMoYXR0cmlidXRlcykge1xuICByZXR1cm4gT2JqZWN0LmtleXMoYXR0cmlidXRlcyB8fCB7fSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGF0dHJpYnV0ZU5hbWUpIHtcbiAgICByZXR1cm4gYWNjICsgXCJcIi5jb25jYXQoYXR0cmlidXRlTmFtZSwgXCI9XFxcIlwiKS5jb25jYXQoaHRtbEVzY2FwZShhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdKSwgXCJcXFwiIFwiKTtcbiAgfSwgJycpLnRyaW0oKTtcbn1cbmZ1bmN0aW9uIGpvaW5TdHlsZXMoc3R5bGVzKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhzdHlsZXMgfHwge30pLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBzdHlsZU5hbWUpIHtcbiAgICByZXR1cm4gYWNjICsgXCJcIi5jb25jYXQoc3R5bGVOYW1lLCBcIjogXCIpLmNvbmNhdChzdHlsZXNbc3R5bGVOYW1lXS50cmltKCksIFwiO1wiKTtcbiAgfSwgJycpO1xufVxuZnVuY3Rpb24gdHJhbnNmb3JtSXNNZWFuaW5nZnVsKHRyYW5zZm9ybSkge1xuICByZXR1cm4gdHJhbnNmb3JtLnNpemUgIT09IG1lYW5pbmdsZXNzVHJhbnNmb3JtLnNpemUgfHwgdHJhbnNmb3JtLnggIT09IG1lYW5pbmdsZXNzVHJhbnNmb3JtLnggfHwgdHJhbnNmb3JtLnkgIT09IG1lYW5pbmdsZXNzVHJhbnNmb3JtLnkgfHwgdHJhbnNmb3JtLnJvdGF0ZSAhPT0gbWVhbmluZ2xlc3NUcmFuc2Zvcm0ucm90YXRlIHx8IHRyYW5zZm9ybS5mbGlwWCB8fCB0cmFuc2Zvcm0uZmxpcFk7XG59XG5mdW5jdGlvbiB0cmFuc2Zvcm1Gb3JTdmcoX3JlZikge1xuICB2YXIgdHJhbnNmb3JtID0gX3JlZi50cmFuc2Zvcm0sXG4gICAgY29udGFpbmVyV2lkdGggPSBfcmVmLmNvbnRhaW5lcldpZHRoLFxuICAgIGljb25XaWR0aCA9IF9yZWYuaWNvbldpZHRoO1xuICB2YXIgb3V0ZXIgPSB7XG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIi5jb25jYXQoY29udGFpbmVyV2lkdGggLyAyLCBcIiAyNTYpXCIpXG4gIH07XG4gIHZhciBpbm5lclRyYW5zbGF0ZSA9IFwidHJhbnNsYXRlKFwiLmNvbmNhdCh0cmFuc2Zvcm0ueCAqIDMyLCBcIiwgXCIpLmNvbmNhdCh0cmFuc2Zvcm0ueSAqIDMyLCBcIikgXCIpO1xuICB2YXIgaW5uZXJTY2FsZSA9IFwic2NhbGUoXCIuY29uY2F0KHRyYW5zZm9ybS5zaXplIC8gMTYgKiAodHJhbnNmb3JtLmZsaXBYID8gLTEgOiAxKSwgXCIsIFwiKS5jb25jYXQodHJhbnNmb3JtLnNpemUgLyAxNiAqICh0cmFuc2Zvcm0uZmxpcFkgPyAtMSA6IDEpLCBcIikgXCIpO1xuICB2YXIgaW5uZXJSb3RhdGUgPSBcInJvdGF0ZShcIi5jb25jYXQodHJhbnNmb3JtLnJvdGF0ZSwgXCIgMCAwKVwiKTtcbiAgdmFyIGlubmVyID0ge1xuICAgIHRyYW5zZm9ybTogXCJcIi5jb25jYXQoaW5uZXJUcmFuc2xhdGUsIFwiIFwiKS5jb25jYXQoaW5uZXJTY2FsZSwgXCIgXCIpLmNvbmNhdChpbm5lclJvdGF0ZSlcbiAgfTtcbiAgdmFyIHBhdGggPSB7XG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIi5jb25jYXQoaWNvbldpZHRoIC8gMiAqIC0xLCBcIiAtMjU2KVwiKVxuICB9O1xuICByZXR1cm4ge1xuICAgIG91dGVyOiBvdXRlcixcbiAgICBpbm5lcjogaW5uZXIsXG4gICAgcGF0aDogcGF0aFxuICB9O1xufVxuZnVuY3Rpb24gdHJhbnNmb3JtRm9yQ3NzKF9yZWYyKSB7XG4gIHZhciB0cmFuc2Zvcm0gPSBfcmVmMi50cmFuc2Zvcm0sXG4gICAgX3JlZjIkd2lkdGggPSBfcmVmMi53aWR0aCxcbiAgICB3aWR0aCA9IF9yZWYyJHdpZHRoID09PSB2b2lkIDAgPyBVTklUU19JTl9HUklEIDogX3JlZjIkd2lkdGgsXG4gICAgX3JlZjIkaGVpZ2h0ID0gX3JlZjIuaGVpZ2h0LFxuICAgIGhlaWdodCA9IF9yZWYyJGhlaWdodCA9PT0gdm9pZCAwID8gVU5JVFNfSU5fR1JJRCA6IF9yZWYyJGhlaWdodCxcbiAgICBfcmVmMiRzdGFydENlbnRlcmVkID0gX3JlZjIuc3RhcnRDZW50ZXJlZCxcbiAgICBzdGFydENlbnRlcmVkID0gX3JlZjIkc3RhcnRDZW50ZXJlZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmMiRzdGFydENlbnRlcmVkO1xuICB2YXIgdmFsID0gJyc7XG4gIGlmIChzdGFydENlbnRlcmVkICYmIElTX0lFKSB7XG4gICAgdmFsICs9IFwidHJhbnNsYXRlKFwiLmNvbmNhdCh0cmFuc2Zvcm0ueCAvIGQkMiAtIHdpZHRoIC8gMiwgXCJlbSwgXCIpLmNvbmNhdCh0cmFuc2Zvcm0ueSAvIGQkMiAtIGhlaWdodCAvIDIsIFwiZW0pIFwiKTtcbiAgfSBlbHNlIGlmIChzdGFydENlbnRlcmVkKSB7XG4gICAgdmFsICs9IFwidHJhbnNsYXRlKGNhbGMoLTUwJSArIFwiLmNvbmNhdCh0cmFuc2Zvcm0ueCAvIGQkMiwgXCJlbSksIGNhbGMoLTUwJSArIFwiKS5jb25jYXQodHJhbnNmb3JtLnkgLyBkJDIsIFwiZW0pKSBcIik7XG4gIH0gZWxzZSB7XG4gICAgdmFsICs9IFwidHJhbnNsYXRlKFwiLmNvbmNhdCh0cmFuc2Zvcm0ueCAvIGQkMiwgXCJlbSwgXCIpLmNvbmNhdCh0cmFuc2Zvcm0ueSAvIGQkMiwgXCJlbSkgXCIpO1xuICB9XG4gIHZhbCArPSBcInNjYWxlKFwiLmNvbmNhdCh0cmFuc2Zvcm0uc2l6ZSAvIGQkMiAqICh0cmFuc2Zvcm0uZmxpcFggPyAtMSA6IDEpLCBcIiwgXCIpLmNvbmNhdCh0cmFuc2Zvcm0uc2l6ZSAvIGQkMiAqICh0cmFuc2Zvcm0uZmxpcFkgPyAtMSA6IDEpLCBcIikgXCIpO1xuICB2YWwgKz0gXCJyb3RhdGUoXCIuY29uY2F0KHRyYW5zZm9ybS5yb3RhdGUsIFwiZGVnKSBcIik7XG4gIHJldHVybiB2YWw7XG59XG5cbnZhciBiYXNlU3R5bGVzID0gXCI6cm9vdCwgOmhvc3Qge1xcbiAgLS1mYS1mb250LXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNyBGcmVlXFxcIjtcXG4gIC0tZmEtZm9udC1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNyBGcmVlXFxcIjtcXG4gIC0tZmEtZm9udC1saWdodDogbm9ybWFsIDMwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDcgUHJvXFxcIjtcXG4gIC0tZmEtZm9udC10aGluOiBub3JtYWwgMTAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNyBQcm9cXFwiO1xcbiAgLS1mYS1mb250LWR1b3RvbmU6IG5vcm1hbCA5MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA3IER1b3RvbmVcXFwiO1xcbiAgLS1mYS1mb250LWR1b3RvbmUtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDcgRHVvdG9uZVxcXCI7XFxuICAtLWZhLWZvbnQtZHVvdG9uZS1saWdodDogbm9ybWFsIDMwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDcgRHVvdG9uZVxcXCI7XFxuICAtLWZhLWZvbnQtZHVvdG9uZS10aGluOiBub3JtYWwgMTAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNyBEdW90b25lXFxcIjtcXG4gIC0tZmEtZm9udC1icmFuZHM6IG5vcm1hbCA0MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA3IEJyYW5kc1xcXCI7XFxuICAtLWZhLWZvbnQtc2hhcnAtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA3IFNoYXJwXFxcIjtcXG4gIC0tZmEtZm9udC1zaGFycC1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNyBTaGFycFxcXCI7XFxuICAtLWZhLWZvbnQtc2hhcnAtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA3IFNoYXJwXFxcIjtcXG4gIC0tZmEtZm9udC1zaGFycC10aGluOiBub3JtYWwgMTAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNyBTaGFycFxcXCI7XFxuICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZVxcXCI7XFxuICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lXFxcIjtcXG4gIC0tZmEtZm9udC1zaGFycC1kdW90b25lLWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lXFxcIjtcXG4gIC0tZmEtZm9udC1zaGFycC1kdW90b25lLXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmVcXFwiO1xcbiAgLS1mYS1mb250LXNsYWItcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDcgU2xhYlxcXCI7XFxuICAtLWZhLWZvbnQtc2xhYi1wcmVzcy1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNyBTbGFiIFByZXNzXFxcIjtcXG4gIC0tZmEtZm9udC13aGl0ZWJvYXJkLXNlbWlib2xkOiBub3JtYWwgNjAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNyBXaGl0ZWJvYXJkXFxcIjtcXG4gIC0tZmEtZm9udC10aHVtYnByaW50LWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xIFxcXCJGb250IEF3ZXNvbWUgNyBUaHVtYnByaW50XFxcIjtcXG4gIC0tZmEtZm9udC1ub3Rkb2ctc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA3IE5vdGRvZ1xcXCI7XFxuICAtLWZhLWZvbnQtbm90ZG9nLWR1by1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDcgTm90ZG9nIER1b1xcXCI7XFxuICAtLWZhLWZvbnQtZXRjaC1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDcgRXRjaFxcXCI7XFxuICAtLWZhLWZvbnQtamVsbHktcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDcgSmVsbHlcXFwiO1xcbiAgLS1mYS1mb250LWplbGx5LWZpbGwtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDcgSmVsbHkgRmlsbFxcXCI7XFxuICAtLWZhLWZvbnQtamVsbHktZHVvLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA3IEplbGx5IER1b1xcXCI7XFxuICAtLWZhLWZvbnQtY2hpc2VsLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA3IENoaXNlbFxcXCI7XFxuICAtLWZhLWZvbnQtdXRpbGl0eS1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSBcXFwiRm9udCBBd2Vzb21lIDcgVXRpbGl0eVxcXCI7XFxuICAtLWZhLWZvbnQtdXRpbGl0eS1kdW8tc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRHVvXFxcIjtcXG4gIC0tZmEtZm9udC11dGlsaXR5LWZpbGwtc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgXFxcIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRmlsbFxcXCI7XFxufVxcblxcbi5zdmctaW5saW5lLS1mYSB7XFxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gIGRpc3BsYXk6IHZhcigtLWZhLWRpc3BsYXksIGlubGluZS1ibG9jayk7XFxuICBoZWlnaHQ6IDFlbTtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbiAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtO1xcbiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoLCAxLjI1ZW0pO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtMnhzIHtcXG4gIHZlcnRpY2FsLWFsaWduOiAwLjFlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXhzIHtcXG4gIHZlcnRpY2FsLWFsaWduOiAwZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1zbSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMDcxNDI4NTcxNGVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtbGcge1xcbiAgdmVydGljYWwtYWxpZ246IC0wLjJlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXhsIHtcXG4gIHZlcnRpY2FsLWFsaWduOiAtMC4yNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtMnhsIHtcXG4gIHZlcnRpY2FsLWFsaWduOiAtMC4zMTI1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1wdWxsLWxlZnQsXFxuLnN2Zy1pbmxpbmUtLWZhIC5mYS1wdWxsLXN0YXJ0IHtcXG4gIGZsb2F0OiBpbmxpbmUtc3RhcnQ7XFxuICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXB1bGwtcmlnaHQsXFxuLnN2Zy1pbmxpbmUtLWZhIC5mYS1wdWxsLWVuZCB7XFxuICBmbG9hdDogaW5saW5lLWVuZDtcXG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1saSB7XFxuICB3aWR0aDogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSk7XFxuICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoLTEgKiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKSk7XFxuICBpbnNldC1ibG9jay1zdGFydDogMC4yNWVtOyAvKiBzeW5jaW5nIHZlcnRpY2FsIGFsaWdubWVudCB3aXRoIFdlYiBGb250IHJlbmRlcmluZyAqL1xcbn1cXG5cXG4uZmEtbGF5ZXJzLWNvdW50ZXIsIC5mYS1sYXllcnMtdGV4dCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcblxcbi5mYS1sYXllcnMge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgaGVpZ2h0OiAxZW07XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07XFxuICB3aWR0aDogdmFyKC0tZmEtd2lkdGgsIDEuMjVlbSk7XFxufVxcbi5mYS1sYXllcnMgLnN2Zy1pbmxpbmUtLWZhIHtcXG4gIGluc2V0OiAwO1xcbiAgbWFyZ2luOiBhdXRvO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcXG59XFxuXFxuLmZhLWxheWVycy10ZXh0IHtcXG4gIGxlZnQ6IDUwJTtcXG4gIHRvcDogNTAlO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xcbn1cXG5cXG4uZmEtbGF5ZXJzLWNvdW50ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZmEtY291bnRlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZmYyNTNhKTtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZhLWNvdW50ZXItYm9yZGVyLXJhZGl1cywgMWVtKTtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBjb2xvcjogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7XFxuICBsaW5lLWhlaWdodDogdmFyKC0tZmEtY291bnRlci1saW5lLWhlaWdodCwgMSk7XFxuICBtYXgtd2lkdGg6IHZhcigtLWZhLWNvdW50ZXItbWF4LXdpZHRoLCA1ZW0pO1xcbiAgbWluLXdpZHRoOiB2YXIoLS1mYS1jb3VudGVyLW1pbi13aWR0aCwgMS41ZW0pO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBhZGRpbmc6IHZhcigtLWZhLWNvdW50ZXItcGFkZGluZywgMC4yNWVtIDAuNWVtKTtcXG4gIHJpZ2h0OiB2YXIoLS1mYS1yaWdodCwgMCk7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHRvcDogdmFyKC0tZmEtdG9wLCAwKTtcXG4gIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtY291bnRlci1zY2FsZSwgMC4yNSkpO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0O1xcbn1cXG5cXG4uZmEtbGF5ZXJzLWJvdHRvbS1yaWdodCB7XFxuICBib3R0b206IHZhcigtLWZhLWJvdHRvbSwgMCk7XFxuICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApO1xcbiAgdG9wOiBhdXRvO1xcbiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSByaWdodDtcXG59XFxuXFxuLmZhLWxheWVycy1ib3R0b20tbGVmdCB7XFxuICBib3R0b206IHZhcigtLWZhLWJvdHRvbSwgMCk7XFxuICBsZWZ0OiB2YXIoLS1mYS1sZWZ0LCAwKTtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgdG9wOiBhdXRvO1xcbiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xcbn1cXG5cXG4uZmEtbGF5ZXJzLXRvcC1yaWdodCB7XFxuICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7XFxuICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApO1xcbiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDtcXG59XFxuXFxuLmZhLWxheWVycy10b3AtbGVmdCB7XFxuICBsZWZ0OiB2YXIoLS1mYS1sZWZ0LCAwKTtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgdG9wOiB2YXIoLS1mYS10b3AsIDApO1xcbiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTtcXG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xcbn1cXG5cXG4uZmEtMXgge1xcbiAgZm9udC1zaXplOiAxZW07XFxufVxcblxcbi5mYS0yeCB7XFxuICBmb250LXNpemU6IDJlbTtcXG59XFxuXFxuLmZhLTN4IHtcXG4gIGZvbnQtc2l6ZTogM2VtO1xcbn1cXG5cXG4uZmEtNHgge1xcbiAgZm9udC1zaXplOiA0ZW07XFxufVxcblxcbi5mYS01eCB7XFxuICBmb250LXNpemU6IDVlbTtcXG59XFxuXFxuLmZhLTZ4IHtcXG4gIGZvbnQtc2l6ZTogNmVtO1xcbn1cXG5cXG4uZmEtN3gge1xcbiAgZm9udC1zaXplOiA3ZW07XFxufVxcblxcbi5mYS04eCB7XFxuICBmb250LXNpemU6IDhlbTtcXG59XFxuXFxuLmZhLTl4IHtcXG4gIGZvbnQtc2l6ZTogOWVtO1xcbn1cXG5cXG4uZmEtMTB4IHtcXG4gIGZvbnQtc2l6ZTogMTBlbTtcXG59XFxuXFxuLmZhLTJ4cyB7XFxuICBmb250LXNpemU6IGNhbGMoMTAgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMTBweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqL1xcbiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDEwICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovXFxuICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDEwIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi9cXG59XFxuXFxuLmZhLXhzIHtcXG4gIGZvbnQtc2l6ZTogY2FsYygxMiAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAxMnB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovXFxuICBsaW5lLWhlaWdodDogY2FsYygxIC8gMTIgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi9cXG4gIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMTIgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqL1xcbn1cXG5cXG4uZmEtc20ge1xcbiAgZm9udC1zaXplOiBjYWxjKDE0IC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDE0cHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi9cXG4gIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAxNCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqL1xcbiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAxNCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovXFxufVxcblxcbi5mYS1sZyB7XFxuICBmb250LXNpemU6IGNhbGMoMjAgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMjBweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqL1xcbiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDIwICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovXFxuICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDIwIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi9cXG59XFxuXFxuLmZhLXhsIHtcXG4gIGZvbnQtc2l6ZTogY2FsYygyNCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAyNHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovXFxuICBsaW5lLWhlaWdodDogY2FsYygxIC8gMjQgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi9cXG4gIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMjQgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqL1xcbn1cXG5cXG4uZmEtMnhsIHtcXG4gIGZvbnQtc2l6ZTogY2FsYygzMiAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAzMnB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovXFxuICBsaW5lLWhlaWdodDogY2FsYygxIC8gMzIgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi9cXG4gIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMzIgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqL1xcbn1cXG5cXG4uZmEtd2lkdGgtYXV0byB7XFxuICAtLWZhLXdpZHRoOiBhdXRvO1xcbn1cXG5cXG4uZmEtZncsXFxuLmZhLXdpZHRoLWZpeGVkIHtcXG4gIC0tZmEtd2lkdGg6IDEuMjVlbTtcXG59XFxuXFxuLmZhLXVsIHtcXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcXG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWZhLWxpLW1hcmdpbiwgMi41ZW0pO1xcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XFxufVxcbi5mYS11bCA+IGxpIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuXFxuLmZhLWxpIHtcXG4gIGluc2V0LWlubGluZS1zdGFydDogY2FsYygtMSAqIHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pKTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHdpZHRoOiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKTtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbn1cXG5cXG4vKiBIZWFkcyBVcDogQm9yZGVyZWQgSWNvbnMgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIHRoZSBmdXR1cmUhXFxuICAtIFRoaXMgZmVhdHVyZSB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZSBvZiBGb250IEF3ZXNvbWUgKHY4KSFcXG4gIC0gWW91IG1heSBjb250aW51ZSB0byB1c2UgaXQgaW4gdGhpcyB2ZXJzaW9uICp2NyksIGJ1dCBpdCB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgaW4gRm9udCBBd2Vzb21lIHY4LlxcbiovXFxuLyogTm90ZXM6XFxuKiAtLUB7di4kY3NzLXByZWZpeH0tYm9yZGVyLXdpZHRoID0gMS8xNiBieSBkZWZhdWx0ICh0byByZW5kZXIgYXMgfjFweCBiYXNlZCBvbiBhIDE2cHggZGVmYXVsdCBmb250LXNpemUpXFxuKiAtLUB7di4kY3NzLXByZWZpeH0tYm9yZGVyLXBhZGRpbmcgPVxcbiAgKiogMy8xNiBmb3IgdmVydGljYWwgcGFkZGluZyAodG8gZ2l2ZSB+MnB4IG9mIHZlcnRpY2FsIHdoaXRlc3BhY2UgYXJvdW5kIGFuIGljb24gY29uc2lkZXJpbmcgaXQncyB2ZXJ0aWNhbCBhbGlnbm1lbnQpXFxuICAqKiA0LzE2IGZvciBob3Jpem9udGFsIHBhZGRpbmcgKHRvIGdpdmUgfjRweCBvZiBob3Jpem9udGFsIHdoaXRlc3BhY2UgYXJvdW5kIGFuIGljb24pXFxuKi9cXG4uZmEtYm9yZGVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZmEtYm9yZGVyLWNvbG9yLCAjZWVlKTtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZhLWJvcmRlci1yYWRpdXMsIDAuMWVtKTtcXG4gIGJvcmRlci1zdHlsZTogdmFyKC0tZmEtYm9yZGVyLXN0eWxlLCBzb2xpZCk7XFxuICBib3JkZXItd2lkdGg6IHZhcigtLWZhLWJvcmRlci13aWR0aCwgMC4wNjI1ZW0pO1xcbiAgYm94LXNpemluZzogdmFyKC0tZmEtYm9yZGVyLWJveC1zaXppbmcsIGNvbnRlbnQtYm94KTtcXG4gIHBhZGRpbmc6IHZhcigtLWZhLWJvcmRlci1wYWRkaW5nLCAwLjE4NzVlbSAwLjI1ZW0pO1xcbn1cXG5cXG4uZmEtcHVsbC1sZWZ0LFxcbi5mYS1wdWxsLXN0YXJ0IHtcXG4gIGZsb2F0OiBpbmxpbmUtc3RhcnQ7XFxuICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTtcXG59XFxuXFxuLmZhLXB1bGwtcmlnaHQsXFxuLmZhLXB1bGwtZW5kIHtcXG4gIGZsb2F0OiBpbmxpbmUtZW5kO1xcbiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTtcXG59XFxuXFxuLmZhLWJlYXQge1xcbiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJlYXQ7XFxuICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpO1xcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XFxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBlYXNlLWluLW91dCk7XFxufVxcblxcbi5mYS1ib3VuY2Uge1xcbiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJvdW5jZTtcXG4gIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7XFxuICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpO1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTtcXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjI4LCAwLjg0LCAwLjQyLCAxKSk7XFxufVxcblxcbi5mYS1mYWRlIHtcXG4gIGFuaW1hdGlvbi1uYW1lOiBmYS1mYWRlO1xcbiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7XFxuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSk7XFxufVxcblxcbi5mYS1iZWF0LWZhZGUge1xcbiAgYW5pbWF0aW9uLW5hbWU6IGZhLWJlYXQtZmFkZTtcXG4gIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7XFxuICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpO1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTtcXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSkpO1xcbn1cXG5cXG4uZmEtZmxpcCB7XFxuICBhbmltYXRpb24tbmFtZTogZmEtZmxpcDtcXG4gIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7XFxuICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpO1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTtcXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGVhc2UtaW4tb3V0KTtcXG59XFxuXFxuLmZhLXNoYWtlIHtcXG4gIGFuaW1hdGlvbi1uYW1lOiBmYS1zaGFrZTtcXG4gIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7XFxuICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpO1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTtcXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGxpbmVhcik7XFxufVxcblxcbi5mYS1zcGluIHtcXG4gIGFuaW1hdGlvbi1uYW1lOiBmYS1zcGluO1xcbiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7XFxuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMnMpO1xcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgbGluZWFyKTtcXG59XFxuXFxuLmZhLXNwaW4tcmV2ZXJzZSB7XFxuICAtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7XFxufVxcblxcbi5mYS1wdWxzZSxcXG4uZmEtc3Bpbi1wdWxzZSB7XFxuICBhbmltYXRpb24tbmFtZTogZmEtc3BpbjtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7XFxuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgc3RlcHMoOCkpO1xcbn1cXG5cXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xcbiAgLmZhLWJlYXQsXFxuICAuZmEtYm91bmNlLFxcbiAgLmZhLWZhZGUsXFxuICAuZmEtYmVhdC1mYWRlLFxcbiAgLmZhLWZsaXAsXFxuICAuZmEtcHVsc2UsXFxuICAuZmEtc2hha2UsXFxuICAuZmEtc3BpbixcXG4gIC5mYS1zcGluLXB1bHNlIHtcXG4gICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XFxuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBmYS1iZWF0IHtcXG4gIDAlLCA5MCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbiAgNDUlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1iZWF0LXNjYWxlLCAxLjI1KSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgZmEtYm91bmNlIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApO1xcbiAgfVxcbiAgMTAlIHtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteCwgMS4xKSwgdmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXksIDAuOSkpIHRyYW5zbGF0ZVkoMCk7XFxuICB9XFxuICAzMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXgsIDAuOSksIHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXksIDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tZmEtYm91bmNlLWhlaWdodCwgLTAuNWVtKSk7XFxuICB9XFxuICA1MCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXgsIDEuMDUpLCB2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS15LCAwLjk1KSkgdHJhbnNsYXRlWSgwKTtcXG4gIH1cXG4gIDU3JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtcmVib3VuZCwgLTAuMTI1ZW0pKTtcXG4gIH1cXG4gIDY0JSB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgZmEtZmFkZSB7XFxuICA1MCUge1xcbiAgICBvcGFjaXR5OiB2YXIoLS1mYS1mYWRlLW9wYWNpdHksIDAuNCk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgZmEtYmVhdC1mYWRlIHtcXG4gIDAlLCAxMDAlIHtcXG4gICAgb3BhY2l0eTogdmFyKC0tZmEtYmVhdC1mYWRlLW9wYWNpdHksIDAuNCk7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxuICA1MCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJlYXQtZmFkZS1zY2FsZSwgMS4xMjUpKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBmYS1mbGlwIHtcXG4gIDUwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlM2QodmFyKC0tZmEtZmxpcC14LCAwKSwgdmFyKC0tZmEtZmxpcC15LCAxKSwgdmFyKC0tZmEtZmxpcC16LCAwKSwgdmFyKC0tZmEtZmxpcC1hbmdsZSwgLTE4MGRlZykpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIGZhLXNoYWtlIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTtcXG4gIH1cXG4gIDQlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpO1xcbiAgfVxcbiAgOCUsIDI0JSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xOGRlZyk7XFxuICB9XFxuICAxMiUsIDI4JSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4ZGVnKTtcXG4gIH1cXG4gIDE2JSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKC0yMmRlZyk7XFxuICB9XFxuICAyMCUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMmRlZyk7XFxuICB9XFxuICAzMiUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTJkZWcpO1xcbiAgfVxcbiAgMzYlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTJkZWcpO1xcbiAgfVxcbiAgNDAlLCAxMDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgZmEtc3BpbiB7XFxuICAwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcbi5mYS1yb3RhdGUtOTAge1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcbn1cXG5cXG4uZmEtcm90YXRlLTE4MCB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xcbn1cXG5cXG4uZmEtcm90YXRlLTI3MCB7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xcbn1cXG5cXG4uZmEtZmxpcC1ob3Jpem9udGFsIHtcXG4gIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xcbn1cXG5cXG4uZmEtZmxpcC12ZXJ0aWNhbCB7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcXG59XFxuXFxuLmZhLWZsaXAtYm90aCxcXG4uZmEtZmxpcC1ob3Jpem9udGFsLmZhLWZsaXAtdmVydGljYWwge1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgLTEpO1xcbn1cXG5cXG4uZmEtcm90YXRlLWJ5IHtcXG4gIHRyYW5zZm9ybTogcm90YXRlKHZhcigtLWZhLXJvdGF0ZS1hbmdsZSwgMCkpO1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEgLmZhLXByaW1hcnkge1xcbiAgZmlsbDogdmFyKC0tZmEtcHJpbWFyeS1jb2xvciwgY3VycmVudENvbG9yKTtcXG4gIG9wYWNpdHk6IHZhcigtLWZhLXByaW1hcnktb3BhY2l0eSwgMSk7XFxufVxcblxcbi5zdmctaW5saW5lLS1mYSAuZmEtc2Vjb25kYXJ5IHtcXG4gIGZpbGw6IHZhcigtLWZhLXNlY29uZGFyeS1jb2xvciwgY3VycmVudENvbG9yKTtcXG4gIG9wYWNpdHk6IHZhcigtLWZhLXNlY29uZGFyeS1vcGFjaXR5LCAwLjQpO1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEuZmEtc3dhcC1vcGFjaXR5IC5mYS1wcmltYXJ5IHtcXG4gIG9wYWNpdHk6IHZhcigtLWZhLXNlY29uZGFyeS1vcGFjaXR5LCAwLjQpO1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEuZmEtc3dhcC1vcGFjaXR5IC5mYS1zZWNvbmRhcnkge1xcbiAgb3BhY2l0eTogdmFyKC0tZmEtcHJpbWFyeS1vcGFjaXR5LCAxKTtcXG59XFxuXFxuLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXByaW1hcnksXFxuLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXNlY29uZGFyeSB7XFxuICBmaWxsOiBibGFjaztcXG59XFxuXFxuLnN2Zy1pbmxpbmUtLWZhLmZhLWludmVyc2Uge1xcbiAgZmlsbDogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7XFxufVxcblxcbi5mYS1zdGFjayB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBoZWlnaHQ6IDJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAyZW07XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgd2lkdGg6IDIuNWVtO1xcbn1cXG5cXG4uZmEtaW52ZXJzZSB7XFxuICBjb2xvcjogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7XFxufVxcblxcbi5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0xeCB7XFxuICAtLWZhLXdpZHRoOiAxLjI1ZW07XFxuICBoZWlnaHQ6IDFlbTtcXG4gIHdpZHRoOiB2YXIoLS1mYS13aWR0aCk7XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0yeCB7XFxuICAtLWZhLXdpZHRoOiAyLjVlbTtcXG4gIGhlaWdodDogMmVtO1xcbiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoKTtcXG59XFxuXFxuLmZhLXN0YWNrLTF4LFxcbi5mYS1zdGFjay0yeCB7XFxuICBpbnNldDogMDtcXG4gIG1hcmdpbjogYXV0bztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHotaW5kZXg6IHZhcigtLWZhLXN0YWNrLXotaW5kZXgsIGF1dG8pO1xcbn1cIjtcblxuZnVuY3Rpb24gY3NzKCkge1xuICB2YXIgZGNwID0gREVGQVVMVF9DU1NfUFJFRklYO1xuICB2YXIgZHJjID0gREVGQVVMVF9SRVBMQUNFTUVOVF9DTEFTUztcbiAgdmFyIGZwID0gY29uZmlnLmNzc1ByZWZpeDtcbiAgdmFyIHJjID0gY29uZmlnLnJlcGxhY2VtZW50Q2xhc3M7XG4gIHZhciBzID0gYmFzZVN0eWxlcztcbiAgaWYgKGZwICE9PSBkY3AgfHwgcmMgIT09IGRyYykge1xuICAgIHZhciBkUGF0dCA9IG5ldyBSZWdFeHAoXCJcXFxcLlwiLmNvbmNhdChkY3AsIFwiXFxcXC1cIiksICdnJyk7XG4gICAgdmFyIGN1c3RvbVByb3BQYXR0ID0gbmV3IFJlZ0V4cChcIlxcXFwtLVwiLmNvbmNhdChkY3AsIFwiXFxcXC1cIiksICdnJyk7XG4gICAgdmFyIHJQYXR0ID0gbmV3IFJlZ0V4cChcIlxcXFwuXCIuY29uY2F0KGRyYyksICdnJyk7XG4gICAgcyA9IHMucmVwbGFjZShkUGF0dCwgXCIuXCIuY29uY2F0KGZwLCBcIi1cIikpLnJlcGxhY2UoY3VzdG9tUHJvcFBhdHQsIFwiLS1cIi5jb25jYXQoZnAsIFwiLVwiKSkucmVwbGFjZShyUGF0dCwgXCIuXCIuY29uY2F0KHJjKSk7XG4gIH1cbiAgcmV0dXJuIHM7XG59XG52YXIgX2Nzc0luc2VydGVkID0gZmFsc2U7XG5mdW5jdGlvbiBlbnN1cmVDc3MoKSB7XG4gIGlmIChjb25maWcuYXV0b0FkZENzcyAmJiAhX2Nzc0luc2VydGVkKSB7XG4gICAgaW5zZXJ0Q3NzKGNzcygpKTtcbiAgICBfY3NzSW5zZXJ0ZWQgPSB0cnVlO1xuICB9XG59XG52YXIgSW5qZWN0Q1NTID0ge1xuICBtaXhvdXQ6IGZ1bmN0aW9uIG1peG91dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZG9tOiB7XG4gICAgICAgIGNzczogY3NzLFxuICAgICAgICBpbnNlcnRDc3M6IGVuc3VyZUNzc1xuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIGhvb2tzOiBmdW5jdGlvbiBob29rcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uOiBmdW5jdGlvbiBiZWZvcmVET01FbGVtZW50Q3JlYXRpb24oKSB7XG4gICAgICAgIGVuc3VyZUNzcygpO1xuICAgICAgfSxcbiAgICAgIGJlZm9yZUkyc3ZnOiBmdW5jdGlvbiBiZWZvcmVJMnN2ZygpIHtcbiAgICAgICAgZW5zdXJlQ3NzKCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufTtcblxudmFyIHckMiA9IFdJTkRPVyB8fCB7fTtcbmlmICghdyQyW05BTUVTUEFDRV9JREVOVElGSUVSXSkgdyQyW05BTUVTUEFDRV9JREVOVElGSUVSXSA9IHt9O1xuaWYgKCF3JDJbTkFNRVNQQUNFX0lERU5USUZJRVJdLnN0eWxlcykgdyQyW05BTUVTUEFDRV9JREVOVElGSUVSXS5zdHlsZXMgPSB7fTtcbmlmICghdyQyW05BTUVTUEFDRV9JREVOVElGSUVSXS5ob29rcykgdyQyW05BTUVTUEFDRV9JREVOVElGSUVSXS5ob29rcyA9IHt9O1xuaWYgKCF3JDJbTkFNRVNQQUNFX0lERU5USUZJRVJdLnNoaW1zKSB3JDJbTkFNRVNQQUNFX0lERU5USUZJRVJdLnNoaW1zID0gW107XG52YXIgbmFtZXNwYWNlID0gdyQyW05BTUVTUEFDRV9JREVOVElGSUVSXTtcblxudmFyIGZ1bmN0aW9ucyA9IFtdO1xudmFyIF9saXN0ZW5lciA9IGZ1bmN0aW9uIGxpc3RlbmVyKCkge1xuICBET0NVTUVOVC5yZW1vdmVFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgX2xpc3RlbmVyKTtcbiAgbG9hZGVkID0gMTtcbiAgZnVuY3Rpb25zLm1hcChmdW5jdGlvbiAoZm4pIHtcbiAgICByZXR1cm4gZm4oKTtcbiAgfSk7XG59O1xudmFyIGxvYWRlZCA9IGZhbHNlO1xuaWYgKElTX0RPTSkge1xuICBsb2FkZWQgPSAoRE9DVU1FTlQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsID8gL15sb2FkZWR8XmMvIDogL15sb2FkZWR8Xml8XmMvKS50ZXN0KERPQ1VNRU5ULnJlYWR5U3RhdGUpO1xuICBpZiAoIWxvYWRlZCkgRE9DVU1FTlQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIF9saXN0ZW5lcik7XG59XG5mdW5jdGlvbiBkb21yZWFkeSAoZm4pIHtcbiAgaWYgKCFJU19ET00pIHJldHVybjtcbiAgbG9hZGVkID8gc2V0VGltZW91dChmbiwgMCkgOiBmdW5jdGlvbnMucHVzaChmbik7XG59XG5cbmZ1bmN0aW9uIHRvSHRtbChhYnN0cmFjdE5vZGVzKSB7XG4gIHZhciB0YWcgPSBhYnN0cmFjdE5vZGVzLnRhZyxcbiAgICBfYWJzdHJhY3ROb2RlcyRhdHRyaWIgPSBhYnN0cmFjdE5vZGVzLmF0dHJpYnV0ZXMsXG4gICAgYXR0cmlidXRlcyA9IF9hYnN0cmFjdE5vZGVzJGF0dHJpYiA9PT0gdm9pZCAwID8ge30gOiBfYWJzdHJhY3ROb2RlcyRhdHRyaWIsXG4gICAgX2Fic3RyYWN0Tm9kZXMkY2hpbGRyID0gYWJzdHJhY3ROb2Rlcy5jaGlsZHJlbixcbiAgICBjaGlsZHJlbiA9IF9hYnN0cmFjdE5vZGVzJGNoaWxkciA9PT0gdm9pZCAwID8gW10gOiBfYWJzdHJhY3ROb2RlcyRjaGlsZHI7XG4gIGlmICh0eXBlb2YgYWJzdHJhY3ROb2RlcyA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gaHRtbEVzY2FwZShhYnN0cmFjdE5vZGVzKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gXCI8XCIuY29uY2F0KHRhZywgXCIgXCIpLmNvbmNhdChqb2luQXR0cmlidXRlcyhhdHRyaWJ1dGVzKSwgXCI+XCIpLmNvbmNhdChjaGlsZHJlbi5tYXAodG9IdG1sKS5qb2luKCcnKSwgXCI8L1wiKS5jb25jYXQodGFnLCBcIj5cIik7XG4gIH1cbn1cblxuZnVuY3Rpb24gaWNvbkZyb21NYXBwaW5nKG1hcHBpbmcsIHByZWZpeCwgaWNvbk5hbWUpIHtcbiAgaWYgKG1hcHBpbmcgJiYgbWFwcGluZ1twcmVmaXhdICYmIG1hcHBpbmdbcHJlZml4XVtpY29uTmFtZV0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJlZml4OiBwcmVmaXgsXG4gICAgICBpY29uTmFtZTogaWNvbk5hbWUsXG4gICAgICBpY29uOiBtYXBwaW5nW3ByZWZpeF1baWNvbk5hbWVdXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEludGVybmFsIGhlbHBlciB0byBiaW5kIGEgZnVuY3Rpb24ga25vd24gdG8gaGF2ZSA0IGFyZ3VtZW50c1xuICogdG8gYSBnaXZlbiBjb250ZXh0LlxuICovXG52YXIgYmluZEludGVybmFsNCA9IGZ1bmN0aW9uIGJpbmRJbnRlcm5hbDQoZnVuYywgdGhpc0NvbnRleHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XG4gICAgcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQ29udGV4dCwgYSwgYiwgYywgZCk7XG4gIH07XG59O1xuXG4vKipcbiAqICMgUmVkdWNlXG4gKlxuICogQSBmYXN0IG9iamVjdCBgLnJlZHVjZSgpYCBpbXBsZW1lbnRhdGlvbi5cbiAqXG4gKiBAcGFyYW0gIHtPYmplY3R9ICAgc3ViamVjdCAgICAgIFRoZSBvYmplY3QgdG8gcmVkdWNlIG92ZXIuXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gZm4gICAgICAgICAgIFRoZSByZWR1Y2VyIGZ1bmN0aW9uLlxuICogQHBhcmFtICB7bWl4ZWR9ICAgIGluaXRpYWxWYWx1ZSBUaGUgaW5pdGlhbCB2YWx1ZSBmb3IgdGhlIHJlZHVjZXIsIGRlZmF1bHRzIHRvIHN1YmplY3RbMF0uXG4gKiBAcGFyYW0gIHtPYmplY3R9ICAgdGhpc0NvbnRleHQgIFRoZSBjb250ZXh0IGZvciB0aGUgcmVkdWNlci5cbiAqIEByZXR1cm4ge21peGVkfSAgICAgICAgICAgICAgICAgVGhlIGZpbmFsIHJlc3VsdC5cbiAqL1xudmFyIHJlZHVjZSA9IGZ1bmN0aW9uIGZhc3RSZWR1Y2VPYmplY3Qoc3ViamVjdCwgZm4sIGluaXRpYWxWYWx1ZSwgdGhpc0NvbnRleHQpIHtcbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzdWJqZWN0KSxcbiAgICBsZW5ndGggPSBrZXlzLmxlbmd0aCxcbiAgICBpdGVyYXRvciA9IHRoaXNDb250ZXh0ICE9PSB1bmRlZmluZWQgPyBiaW5kSW50ZXJuYWw0KGZuLCB0aGlzQ29udGV4dCkgOiBmbixcbiAgICBpLFxuICAgIGtleSxcbiAgICByZXN1bHQ7XG4gIGlmIChpbml0aWFsVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIGkgPSAxO1xuICAgIHJlc3VsdCA9IHN1YmplY3Rba2V5c1swXV07XG4gIH0gZWxzZSB7XG4gICAgaSA9IDA7XG4gICAgcmVzdWx0ID0gaW5pdGlhbFZhbHVlO1xuICB9XG4gIGZvciAoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBrZXlzW2ldO1xuICAgIHJlc3VsdCA9IGl0ZXJhdG9yKHJlc3VsdCwgc3ViamVjdFtrZXldLCBrZXksIHN1YmplY3QpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIFJldHVybiBoZXhhZGVjaW1hbCBzdHJpbmcgZm9yIGEgdW5pY29kZSBjaGFyYWN0ZXJcbiAqIFJldHVybnMgYG51bGxgIHdoZW4gbW9yZSB0aGFuIG9uZSBjaGFyYWN0ZXIgKG5vdCBieXRlcyEpIGFyZSBwYXNzZWRcbiAqIEZvciBleGFtcGxlOiAnSycgXHUyMTkyICc3QidcbiAqL1xuZnVuY3Rpb24gdG9IZXgodW5pY29kZSkge1xuICBpZiAoX3RvQ29uc3VtYWJsZUFycmF5KHVuaWNvZGUpLmxlbmd0aCAhPT0gMSkgcmV0dXJuIG51bGw7XG4gIHJldHVybiB1bmljb2RlLmNvZGVQb2ludEF0KDApLnRvU3RyaW5nKDE2KTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplSWNvbnMoaWNvbnMpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGljb25zKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgaWNvbk5hbWUpIHtcbiAgICB2YXIgaWNvbiA9IGljb25zW2ljb25OYW1lXTtcbiAgICB2YXIgZXhwYW5kZWQgPSAhIWljb24uaWNvbjtcbiAgICBpZiAoZXhwYW5kZWQpIHtcbiAgICAgIGFjY1tpY29uLmljb25OYW1lXSA9IGljb24uaWNvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjW2ljb25OYW1lXSA9IGljb247XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cbmZ1bmN0aW9uIGRlZmluZUljb25zKHByZWZpeCwgaWNvbnMpIHtcbiAgdmFyIHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDoge307XG4gIHZhciBfcGFyYW1zJHNraXBIb29rcyA9IHBhcmFtcy5za2lwSG9va3MsXG4gICAgc2tpcEhvb2tzID0gX3BhcmFtcyRza2lwSG9va3MgPT09IHZvaWQgMCA/IGZhbHNlIDogX3BhcmFtcyRza2lwSG9va3M7XG4gIHZhciBub3JtYWxpemVkID0gbm9ybWFsaXplSWNvbnMoaWNvbnMpO1xuICBpZiAodHlwZW9mIG5hbWVzcGFjZS5ob29rcy5hZGRQYWNrID09PSAnZnVuY3Rpb24nICYmICFza2lwSG9va3MpIHtcbiAgICBuYW1lc3BhY2UuaG9va3MuYWRkUGFjayhwcmVmaXgsIG5vcm1hbGl6ZUljb25zKGljb25zKSk7XG4gIH0gZWxzZSB7XG4gICAgbmFtZXNwYWNlLnN0eWxlc1twcmVmaXhdID0gX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIG5hbWVzcGFjZS5zdHlsZXNbcHJlZml4XSB8fCB7fSksIG5vcm1hbGl6ZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvbnQgQXdlc29tZSA0IHVzZWQgdGhlIHByZWZpeCBvZiBgZmFgIGZvciBhbGwgaWNvbnMuIFdpdGggdGhlIGludHJvZHVjdGlvblxuICAgKiBvZiBuZXcgc3R5bGVzIHdlIG5lZWRlZCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gdGhlbS4gUHJlZml4IGBmYWAgaXMgbm93IGFuIGFsaWFzXG4gICAqIGZvciBgZmFzYCBzbyB3ZSdsbCBlYXNlIHRoZSB1cGdyYWRlIHByb2Nlc3MgZm9yIG91ciB1c2VycyBieSBhdXRvbWF0aWNhbGx5IGRlZmluaW5nXG4gICAqIHRoaXMgYXMgd2VsbC5cbiAgICovXG4gIGlmIChwcmVmaXggPT09ICdmYXMnKSB7XG4gICAgZGVmaW5lSWNvbnMoJ2ZhJywgaWNvbnMpO1xuICB9XG59XG5cbnZhciBNT05PID0gMHgxO1xudmFyIERVTyA9IDB4MjtcblxuLy8gTmV3IHY3IGNvbXBhdGlibGUgbWF0Y2hlcnMgdXNpbmcgdGhlIHN0eWxlIGF0dHJpYnV0ZSB0byBkZXRlcm1pbmUgbGF5ZXIgbWVtYmVyc2hpcFxudmFyIG1vZGVybk1hdGNoZXMgPSBbW0RVTywgLyojX19QVVJFX18qL193cmFwUmVnRXhwKC9wYXRoIG9wYWNpdHk9XCIoW15cIl0qKVwiLipkPVwiKFteXCJdKilcIi4qcGF0aC4qZD1cIihbXlwiXSopXCIvLCB7XG4gIGQyOiAyLFxuICBkMTogM1xufSldLCBbRFVPLCAvKiNfX1BVUkVfXyovX3dyYXBSZWdFeHAoL3BhdGggb3BhY2l0eT1cIihbXlwiXSopXCIuKmQ9XCIoW15cIl0qKVwiLywge1xuICBkMjogMlxufSldLCBbTU9OTywgLyojX19QVVJFX18qL193cmFwUmVnRXhwKC9wYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIi4qZD1cIihbXlwiXSspXCIvLCB7XG4gIGQxOiAxXG59KV1dO1xuXG4vLyBPbGQgPD0gdjYgbWF0Y2hlcnMsIHRoZXNlIHNob3VsZCByYXJlbHkgZ2V0IHVzZWQuXG4vL1xuLy8gV2h5IGFyZSB0aGVyZSBzbyBtYW55PyBPdmVyIHRoZSBsaWZlY3ljbGUgb2YgdmVyc2lvbiA1IGFuZCA2IHdlIG1vZGlmaWVkIHRoZVxuLy8gc3ludGF4IGZvciBvdXIgc291cmNlIFNWRyBmaWxlcyBzZXZlcmFsIHRpbWVzLiBUaGVzZSBwYXR0ZXJucyBtYXRjaCB0aGVcbi8vIGhpc3RvcmljYWwgcmVjb3JkIGFuZCBhdHRlbXB0IHRvIGhhbmRsZSBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBpbiByYXJlIGVkZ2Vcbi8vIGNhc2VzIChsb2FkaW5nIHZlcnNpb24gNiBTVkcgc291cmNlIGZpbGVzIHVzaW5nIHRoZSB2ZXJzaW9uIDcgU1ZHIHBhcnNlcilcbnZhciBsZWdhY3lNYXRjaGVzID0gW1tEVU8sIC8qI19fUFVSRV9fKi9fd3JhcFJlZ0V4cCgvcGF0aCBjbGFzcz1cIihbXlwiXSpzZWNvbmRhcnlbXlwiXSopXCIuKmQ9XCIoW15cIl0rKVwiLipwYXRoIGNsYXNzPVwiKFteXCJdKnByaW1hcnlbXlwiXSopXCIuKmQ9XCIoW15cIl0rKVwiLywge1xuICBhdHRyMjogMSxcbiAgZDI6IDIsXG4gIGF0dHIxOiAzLFxuICBkMTogNFxufSldLCBbRFVPLCAvKiNfX1BVUkVfXyovX3dyYXBSZWdFeHAoL3BhdGggY2xhc3M9XCIoW15cIl0qcHJpbWFyeVteXCJdKilcIi4qZD1cIihbXlwiXSspXCIuKnBhdGggY2xhc3M9XCIoW15cIl0qc2Vjb25kYXJ5W15cIl0qKVwiLipkPVwiKFteXCJdKylcIi8sIHtcbiAgYXR0cjE6IDEsXG4gIGQxOiAyLFxuICBhdHRyMjogMyxcbiAgZDI6IDRcbn0pXSwgW0RVTywgLyojX19QVVJFX18qL193cmFwUmVnRXhwKC9wYXRoIGNsYXNzPVwiKFteXCJdKnByaW1hcnlbXlwiXSopXCIuKmQ9XCIoW15cIl0rKVwiLywge1xuICBhdHRyMTogMSxcbiAgZDE6IDJcbn0pXSwgW0RVTywgLyojX19QVVJFX18qL193cmFwUmVnRXhwKC9wYXRoIGNsYXNzPVwiKFteXCJdKnNlY29uZGFyeVteXCJdKilcIi4qZD1cIihbXlwiXSspXCIvLCB7XG4gIGF0dHIyOiAxLFxuICBkMjogMlxufSldLCBbRFVPLCAvKiNfX1BVUkVfXyovX3dyYXBSZWdFeHAoL3BhdGggZD1cIihbXlwiXSspXCIuKmNsYXNzPVwiKFteXCJdKnNlY29uZGFyeVteXCJdKilcIi4qcGF0aCBkPVwiKFteXCJdKylcIi4qY2xhc3M9XCIoW15cIl0qcHJpbWFyeVteXCJdKilcIi8sIHtcbiAgZDI6IDEsXG4gIGF0dHIyOiAyLFxuICBkMTogMyxcbiAgYXR0cjE6IDRcbn0pXSwgW0RVTywgLyojX19QVVJFX18qL193cmFwUmVnRXhwKC9wYXRoIGQ9XCIoW15cIl0rKVwiLipjbGFzcz1cIihbXlwiXSpwcmltYXJ5W15cIl0qKVwiLipwYXRoIGQ9XCIoW15cIl0rKVwiLipjbGFzcz1cIihbXlwiXSpzZWNvbmRhcnlbXlwiXSopXCIvLCB7XG4gIGQxOiAxLFxuICBhdHRyMTogMixcbiAgZDI6IDMsXG4gIGF0dHIyOiA0XG59KV0sIFtEVU8sIC8qI19fUFVSRV9fKi9fd3JhcFJlZ0V4cCgvcGF0aCBkPVwiKFteXCJdKylcIi4qY2xhc3M9XCIoW15cIl0qcHJpbWFyeVteXCJdKilcIi8sIHtcbiAgZDE6IDEsXG4gIGF0dHIxOiAyXG59KV0sIFtEVU8sIC8qI19fUFVSRV9fKi9fd3JhcFJlZ0V4cCgvcGF0aCBkPVwiKFteXCJdKylcIi4qY2xhc3M9XCIoW15cIl0qc2Vjb25kYXJ5W15cIl0qKVwiLywge1xuICBkMjogMSxcbiAgYXR0cjI6IDJcbn0pXSwgW0RVTywgLyojX19QVVJFX18qL193cmFwUmVnRXhwKC9wYXRoIGQ9XCIoW15cIl0rKVwiLipwYXRoIGQ9XCIoW15cIl0rKVwiLywge1xuICBkMTogMSxcbiAgZDI6IDJcbn0pXSwgW01PTk8sIC8qI19fUFVSRV9fKi9fd3JhcFJlZ0V4cCgvcGF0aCBkPVwiKFteXCJdKylcIi8sIHtcbiAgZDE6IDFcbn0pXSwgW01PTk8sIC8qI19fUFVSRV9fKi9fd3JhcFJlZ0V4cCgvcGF0aCBzdHlsZT1cIihbXlwiXSspXCIuKmQ9XCIoW15cIl0rKVwiLywge1xuICBhdHRyMTogMSxcbiAgZDE6IDJcbn0pXV07XG5cbnZhciBzdHlsZXMgPSBuYW1lc3BhY2Uuc3R5bGVzLFxuICBzaGltcyA9IG5hbWVzcGFjZS5zaGltcztcbnZhciBGQU1JTFlfTkFNRVMgPSBPYmplY3Qua2V5cyhQUkVGSVhfVE9fTE9OR19TVFlMRSk7XG52YXIgUFJFRklYRVNfRk9SX0ZBTUlMWSA9IEZBTUlMWV9OQU1FUy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgZmFtaWx5SWQpIHtcbiAgYWNjW2ZhbWlseUlkXSA9IE9iamVjdC5rZXlzKFBSRUZJWF9UT19MT05HX1NUWUxFW2ZhbWlseUlkXSk7XG4gIHJldHVybiBhY2M7XG59LCB7fSk7XG52YXIgX2RlZmF1bHRVc2FibGVQcmVmaXggPSBudWxsO1xudmFyIF9ieVVuaWNvZGUgPSB7fTtcbnZhciBfYnlMaWdhdHVyZSA9IHt9O1xudmFyIF9ieU9sZE5hbWUgPSB7fTtcbnZhciBfYnlPbGRVbmljb2RlID0ge307XG52YXIgX2J5QWxpYXMgPSB7fTtcbmZ1bmN0aW9uIGlzUmVzZXJ2ZWQobmFtZSkge1xuICByZXR1cm4gflJFU0VSVkVEX0NMQVNTRVMuaW5kZXhPZihuYW1lKTtcbn1cbmZ1bmN0aW9uIGdldEljb25OYW1lKGNzc1ByZWZpeCwgY2xzKSB7XG4gIHZhciBwYXJ0cyA9IGNscy5zcGxpdCgnLScpO1xuICB2YXIgcHJlZml4ID0gcGFydHNbMF07XG4gIHZhciBpY29uTmFtZSA9IHBhcnRzLnNsaWNlKDEpLmpvaW4oJy0nKTtcbiAgaWYgKHByZWZpeCA9PT0gY3NzUHJlZml4ICYmIGljb25OYW1lICE9PSAnJyAmJiAhaXNSZXNlcnZlZChpY29uTmFtZSkpIHtcbiAgICByZXR1cm4gaWNvbk5hbWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbnZhciBidWlsZCA9IGZ1bmN0aW9uIGJ1aWxkKCkge1xuICB2YXIgbG9va3VwID0gZnVuY3Rpb24gbG9va3VwKHJlZHVjZXIpIHtcbiAgICByZXR1cm4gcmVkdWNlKHN0eWxlcywgZnVuY3Rpb24gKG8kJDEsIHN0eWxlLCBwcmVmaXgpIHtcbiAgICAgIG8kJDFbcHJlZml4XSA9IHJlZHVjZShzdHlsZSwgcmVkdWNlciwge30pO1xuICAgICAgcmV0dXJuIG8kJDE7XG4gICAgfSwge30pO1xuICB9O1xuICBfYnlVbmljb2RlID0gbG9va3VwKGZ1bmN0aW9uIChhY2MsIGljb24sIGljb25OYW1lKSB7XG4gICAgaWYgKGljb25bM10pIHtcbiAgICAgIGFjY1tpY29uWzNdXSA9IGljb25OYW1lO1xuICAgIH1cbiAgICBpZiAoaWNvblsyXSkge1xuICAgICAgdmFyIGFsaWFzZXMgPSBpY29uWzJdLmZpbHRlcihmdW5jdGlvbiAoYSQkMSkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGEkJDEgPT09ICdudW1iZXInO1xuICAgICAgfSk7XG4gICAgICBhbGlhc2VzLmZvckVhY2goZnVuY3Rpb24gKGFsaWFzKSB7XG4gICAgICAgIGFjY1thbGlhcy50b1N0cmluZygxNildID0gaWNvbk5hbWU7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSk7XG4gIF9ieUxpZ2F0dXJlID0gbG9va3VwKGZ1bmN0aW9uIChhY2MsIGljb24sIGljb25OYW1lKSB7XG4gICAgYWNjW2ljb25OYW1lXSA9IGljb25OYW1lO1xuICAgIGlmIChpY29uWzJdKSB7XG4gICAgICB2YXIgYWxpYXNlcyA9IGljb25bMl0uZmlsdGVyKGZ1bmN0aW9uIChhJCQxKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgYSQkMSA9PT0gJ3N0cmluZyc7XG4gICAgICB9KTtcbiAgICAgIGFsaWFzZXMuZm9yRWFjaChmdW5jdGlvbiAoYWxpYXMpIHtcbiAgICAgICAgYWNjW2FsaWFzXSA9IGljb25OYW1lO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0pO1xuICBfYnlBbGlhcyA9IGxvb2t1cChmdW5jdGlvbiAoYWNjLCBpY29uLCBpY29uTmFtZSkge1xuICAgIHZhciBhbGlhc2VzID0gaWNvblsyXTtcbiAgICBhY2NbaWNvbk5hbWVdID0gaWNvbk5hbWU7XG4gICAgYWxpYXNlcy5mb3JFYWNoKGZ1bmN0aW9uIChhbGlhcykge1xuICAgICAgYWNjW2FsaWFzXSA9IGljb25OYW1lO1xuICAgIH0pO1xuICAgIHJldHVybiBhY2M7XG4gIH0pO1xuXG4gIC8vIElmIHdlIGhhdmUgYSBLaXQsIHdlIGNhbid0IGRldGVybWluZSBpZiByZWd1bGFyIGlzIGF2YWlsYWJsZSBzaW5jZSB3ZVxuICAvLyBjb3VsZCBiZSBhdXRvLWZldGNoaW5nIGl0LiBXZSdsbCBoYXZlIHRvIGFzc3VtZSB0aGF0IGl0IGlzIGF2YWlsYWJsZS5cbiAgdmFyIGhhc1JlZ3VsYXIgPSAnZmFyJyBpbiBzdHlsZXMgfHwgY29uZmlnLmF1dG9GZXRjaFN2ZztcbiAgdmFyIHNoaW1Mb29rdXBzID0gcmVkdWNlKHNoaW1zLCBmdW5jdGlvbiAoYWNjLCBzaGltKSB7XG4gICAgdmFyIG1heWJlTmFtZU1heWJlVW5pY29kZSA9IHNoaW1bMF07XG4gICAgdmFyIHByZWZpeCA9IHNoaW1bMV07XG4gICAgdmFyIGljb25OYW1lID0gc2hpbVsyXTtcbiAgICBpZiAocHJlZml4ID09PSAnZmFyJyAmJiAhaGFzUmVndWxhcikge1xuICAgICAgcHJlZml4ID0gJ2Zhcyc7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgbWF5YmVOYW1lTWF5YmVVbmljb2RlID09PSAnc3RyaW5nJykge1xuICAgICAgYWNjLm5hbWVzW21heWJlTmFtZU1heWJlVW5pY29kZV0gPSB7XG4gICAgICAgIHByZWZpeDogcHJlZml4LFxuICAgICAgICBpY29uTmFtZTogaWNvbk5hbWVcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh0eXBlb2YgbWF5YmVOYW1lTWF5YmVVbmljb2RlID09PSAnbnVtYmVyJykge1xuICAgICAgYWNjLnVuaWNvZGVzW21heWJlTmFtZU1heWJlVW5pY29kZS50b1N0cmluZygxNildID0ge1xuICAgICAgICBwcmVmaXg6IHByZWZpeCxcbiAgICAgICAgaWNvbk5hbWU6IGljb25OYW1lXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7XG4gICAgbmFtZXM6IHt9LFxuICAgIHVuaWNvZGVzOiB7fVxuICB9KTtcbiAgX2J5T2xkTmFtZSA9IHNoaW1Mb29rdXBzLm5hbWVzO1xuICBfYnlPbGRVbmljb2RlID0gc2hpbUxvb2t1cHMudW5pY29kZXM7XG4gIF9kZWZhdWx0VXNhYmxlUHJlZml4ID0gZ2V0Q2Fub25pY2FsUHJlZml4KGNvbmZpZy5zdHlsZURlZmF1bHQsIHtcbiAgICBmYW1pbHk6IGNvbmZpZy5mYW1pbHlEZWZhdWx0XG4gIH0pO1xufTtcbm9uQ2hhbmdlKGZ1bmN0aW9uIChjJCQxKSB7XG4gIF9kZWZhdWx0VXNhYmxlUHJlZml4ID0gZ2V0Q2Fub25pY2FsUHJlZml4KGMkJDEuc3R5bGVEZWZhdWx0LCB7XG4gICAgZmFtaWx5OiBjb25maWcuZmFtaWx5RGVmYXVsdFxuICB9KTtcbn0pO1xuYnVpbGQoKTtcbmZ1bmN0aW9uIGJ5VW5pY29kZShwcmVmaXgsIHVuaWNvZGUpIHtcbiAgcmV0dXJuIChfYnlVbmljb2RlW3ByZWZpeF0gfHwge30pW3VuaWNvZGVdO1xufVxuZnVuY3Rpb24gYnlMaWdhdHVyZShwcmVmaXgsIGxpZ2F0dXJlKSB7XG4gIHJldHVybiAoX2J5TGlnYXR1cmVbcHJlZml4XSB8fCB7fSlbbGlnYXR1cmVdO1xufVxuZnVuY3Rpb24gYnlBbGlhcyhwcmVmaXgsIGFsaWFzKSB7XG4gIHJldHVybiAoX2J5QWxpYXNbcHJlZml4XSB8fCB7fSlbYWxpYXNdO1xufVxuZnVuY3Rpb24gYnlPbGROYW1lKG5hbWUpIHtcbiAgcmV0dXJuIF9ieU9sZE5hbWVbbmFtZV0gfHwge1xuICAgIHByZWZpeDogbnVsbCxcbiAgICBpY29uTmFtZTogbnVsbFxuICB9O1xufVxuZnVuY3Rpb24gYnlPbGRVbmljb2RlKHVuaWNvZGUpIHtcbiAgdmFyIG9sZFVuaWNvZGUgPSBfYnlPbGRVbmljb2RlW3VuaWNvZGVdO1xuICB2YXIgbmV3VW5pY29kZSA9IGJ5VW5pY29kZSgnZmFzJywgdW5pY29kZSk7XG4gIHJldHVybiBvbGRVbmljb2RlIHx8IChuZXdVbmljb2RlID8ge1xuICAgIHByZWZpeDogJ2ZhcycsXG4gICAgaWNvbk5hbWU6IG5ld1VuaWNvZGVcbiAgfSA6IG51bGwpIHx8IHtcbiAgICBwcmVmaXg6IG51bGwsXG4gICAgaWNvbk5hbWU6IG51bGxcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldERlZmF1bHRVc2FibGVQcmVmaXgoKSB7XG4gIHJldHVybiBfZGVmYXVsdFVzYWJsZVByZWZpeDtcbn1cbnZhciBlbXB0eUNhbm9uaWNhbEljb24gPSBmdW5jdGlvbiBlbXB0eUNhbm9uaWNhbEljb24oKSB7XG4gIHJldHVybiB7XG4gICAgcHJlZml4OiBudWxsLFxuICAgIGljb25OYW1lOiBudWxsLFxuICAgIHJlc3Q6IFtdXG4gIH07XG59O1xuZnVuY3Rpb24gZ2V0RmFtaWx5SWQodmFsdWVzKSB7XG4gIHZhciBmYW1pbHkgPSBpO1xuICB2YXIgZmFtUHJvcHMgPSBGQU1JTFlfTkFNRVMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGZhbWlseUlkKSB7XG4gICAgYWNjW2ZhbWlseUlkXSA9IFwiXCIuY29uY2F0KGNvbmZpZy5jc3NQcmVmaXgsIFwiLVwiKS5jb25jYXQoZmFtaWx5SWQpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbiAgcnQuZm9yRWFjaChmdW5jdGlvbiAoZmFtaWx5SWQpIHtcbiAgICBpZiAodmFsdWVzLmluY2x1ZGVzKGZhbVByb3BzW2ZhbWlseUlkXSkgfHwgdmFsdWVzLnNvbWUoZnVuY3Rpb24gKHYkJDEpIHtcbiAgICAgIHJldHVybiBQUkVGSVhFU19GT1JfRkFNSUxZW2ZhbWlseUlkXS5pbmNsdWRlcyh2JCQxKTtcbiAgICB9KSkge1xuICAgICAgZmFtaWx5ID0gZmFtaWx5SWQ7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGZhbWlseTtcbn1cbmZ1bmN0aW9uIGdldENhbm9uaWNhbFByZWZpeChzdHlsZU9yUHJlZml4KSB7XG4gIHZhciBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICB2YXIgX3BhcmFtcyRmYW1pbHkgPSBwYXJhbXMuZmFtaWx5LFxuICAgIGZhbWlseSA9IF9wYXJhbXMkZmFtaWx5ID09PSB2b2lkIDAgPyBpIDogX3BhcmFtcyRmYW1pbHk7XG4gIHZhciBzdHlsZSA9IFBSRUZJWF9UT19TVFlMRVtmYW1pbHldW3N0eWxlT3JQcmVmaXhdO1xuXG4gIC8vIGhhbmRsZXMgdGhlIGV4Y2VwdGlvbiBvZiBwYXNzaW5nIGluIG9ubHkgYSBmYW1pbHkgb2YgJ2R1b3RvbmUnIHdpdGggbm8gc3R5bGVcbiAgaWYgKGZhbWlseSA9PT0gdCAmJiAhc3R5bGVPclByZWZpeCkge1xuICAgIHJldHVybiAnZmFkJztcbiAgfVxuICB2YXIgcHJlZml4ID0gU1RZTEVfVE9fUFJFRklYW2ZhbWlseV1bc3R5bGVPclByZWZpeF0gfHwgU1RZTEVfVE9fUFJFRklYW2ZhbWlseV1bc3R5bGVdO1xuICB2YXIgZGVmaW5lZCA9IHN0eWxlT3JQcmVmaXggaW4gbmFtZXNwYWNlLnN0eWxlcyA/IHN0eWxlT3JQcmVmaXggOiBudWxsO1xuICB2YXIgcmVzdWx0ID0gcHJlZml4IHx8IGRlZmluZWQgfHwgbnVsbDtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG1vdmVOb25GYUNsYXNzZXNUb1Jlc3QoY2xhc3NOYW1lcykge1xuICB2YXIgcmVzdCA9IFtdO1xuICB2YXIgaWNvbk5hbWUgPSBudWxsO1xuICBjbGFzc05hbWVzLmZvckVhY2goZnVuY3Rpb24gKGNscykge1xuICAgIHZhciByZXN1bHQgPSBnZXRJY29uTmFtZShjb25maWcuY3NzUHJlZml4LCBjbHMpO1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIGljb25OYW1lID0gcmVzdWx0O1xuICAgIH0gZWxzZSBpZiAoY2xzKSB7XG4gICAgICByZXN0LnB1c2goY2xzKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGljb25OYW1lOiBpY29uTmFtZSxcbiAgICByZXN0OiByZXN0XG4gIH07XG59XG5mdW5jdGlvbiBzb3J0ZWRVbmlxdWVWYWx1ZXMoYXJyKSB7XG4gIHJldHVybiBhcnIuc29ydCgpLmZpbHRlcihmdW5jdGlvbiAodmFsdWUsIGluZGV4LCBhcnIpIHtcbiAgICByZXR1cm4gYXJyLmluZGV4T2YodmFsdWUpID09PSBpbmRleDtcbiAgfSk7XG59XG52YXIgX2ZhQ29tYmluZWRDbGFzc2VzID0gWnQkMS5jb25jYXQoWXQpO1xuZnVuY3Rpb24gZ2V0Q2Fub25pY2FsSWNvbih2YWx1ZXMpIHtcbiAgdmFyIHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gIHZhciBfcGFyYW1zJHNraXBMb29rdXBzID0gcGFyYW1zLnNraXBMb29rdXBzLFxuICAgIHNraXBMb29rdXBzID0gX3BhcmFtcyRza2lwTG9va3VwcyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcGFyYW1zJHNraXBMb29rdXBzO1xuICB2YXIgZ2l2ZW5QcmVmaXggPSBudWxsO1xuICB2YXIgZmFTdHlsZU9yRmFtaWx5Q2xhc3NlcyA9IHNvcnRlZFVuaXF1ZVZhbHVlcyh2YWx1ZXMuZmlsdGVyKGZ1bmN0aW9uIChjbHMpIHtcbiAgICByZXR1cm4gX2ZhQ29tYmluZWRDbGFzc2VzLmluY2x1ZGVzKGNscyk7XG4gIH0pKTtcbiAgdmFyIG5vblN0eWxlT3JGYW1pbHlDbGFzc2VzID0gc29ydGVkVW5pcXVlVmFsdWVzKHZhbHVlcy5maWx0ZXIoZnVuY3Rpb24gKGNscykge1xuICAgIHJldHVybiAhX2ZhQ29tYmluZWRDbGFzc2VzLmluY2x1ZGVzKGNscyk7XG4gIH0pKTtcbiAgdmFyIGZhU3R5bGVzID0gZmFTdHlsZU9yRmFtaWx5Q2xhc3Nlcy5maWx0ZXIoZnVuY3Rpb24gKGNscykge1xuICAgIGdpdmVuUHJlZml4ID0gY2xzO1xuICAgIHJldHVybiAhUS5pbmNsdWRlcyhjbHMpO1xuICB9KTtcbiAgdmFyIF9mYVN0eWxlcyA9IF9zbGljZWRUb0FycmF5KGZhU3R5bGVzLCAxKSxcbiAgICBfZmFTdHlsZXMkID0gX2ZhU3R5bGVzWzBdLFxuICAgIHN0eWxlRnJvbVZhbHVlcyA9IF9mYVN0eWxlcyQgPT09IHZvaWQgMCA/IG51bGwgOiBfZmFTdHlsZXMkO1xuICB2YXIgZmFtaWx5ID0gZ2V0RmFtaWx5SWQoZmFTdHlsZU9yRmFtaWx5Q2xhc3Nlcyk7XG4gIHZhciBjYW5vbmljYWwgPSBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgbW92ZU5vbkZhQ2xhc3Nlc1RvUmVzdChub25TdHlsZU9yRmFtaWx5Q2xhc3NlcykpLCB7fSwge1xuICAgIHByZWZpeDogZ2V0Q2Fub25pY2FsUHJlZml4KHN0eWxlRnJvbVZhbHVlcywge1xuICAgICAgZmFtaWx5OiBmYW1pbHlcbiAgICB9KVxuICB9KTtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBjYW5vbmljYWwpLCBnZXREZWZhdWx0Q2Fub25pY2FsUHJlZml4KHtcbiAgICB2YWx1ZXM6IHZhbHVlcyxcbiAgICBmYW1pbHk6IGZhbWlseSxcbiAgICBzdHlsZXM6IHN0eWxlcyxcbiAgICBjb25maWc6IGNvbmZpZyxcbiAgICBjYW5vbmljYWw6IGNhbm9uaWNhbCxcbiAgICBnaXZlblByZWZpeDogZ2l2ZW5QcmVmaXhcbiAgfSkpLCBhcHBseVNoaW1BbmRBbGlhcyhza2lwTG9va3VwcywgZ2l2ZW5QcmVmaXgsIGNhbm9uaWNhbCkpO1xufVxuZnVuY3Rpb24gYXBwbHlTaGltQW5kQWxpYXMoc2tpcExvb2t1cHMsIGdpdmVuUHJlZml4LCBjYW5vbmljYWwpIHtcbiAgdmFyIHByZWZpeCA9IGNhbm9uaWNhbC5wcmVmaXgsXG4gICAgaWNvbk5hbWUgPSBjYW5vbmljYWwuaWNvbk5hbWU7XG4gIGlmIChza2lwTG9va3VwcyB8fCAhcHJlZml4IHx8ICFpY29uTmFtZSkge1xuICAgIHJldHVybiB7XG4gICAgICBwcmVmaXg6IHByZWZpeCxcbiAgICAgIGljb25OYW1lOiBpY29uTmFtZVxuICAgIH07XG4gIH1cbiAgdmFyIHNoaW0gPSBnaXZlblByZWZpeCA9PT0gJ2ZhJyA/IGJ5T2xkTmFtZShpY29uTmFtZSkgOiB7fTtcbiAgdmFyIGFsaWFzSWNvbk5hbWUgPSBieUFsaWFzKHByZWZpeCwgaWNvbk5hbWUpO1xuICBpY29uTmFtZSA9IHNoaW0uaWNvbk5hbWUgfHwgYWxpYXNJY29uTmFtZSB8fCBpY29uTmFtZTtcbiAgcHJlZml4ID0gc2hpbS5wcmVmaXggfHwgcHJlZml4O1xuICBpZiAocHJlZml4ID09PSAnZmFyJyAmJiAhc3R5bGVzWydmYXInXSAmJiBzdHlsZXNbJ2ZhcyddICYmICFjb25maWcuYXV0b0ZldGNoU3ZnKSB7XG4gICAgLy8gQWxsb3cgYSBmYWxsYmFjayBmcm9tIHRoZSByZWd1bGFyIHN0eWxlIHRvIHNvbGlkIGlmIHJlZ3VsYXIgaXMgbm90IGF2YWlsYWJsZVxuICAgIC8vIGJ1dCBvbmx5IGlmIHdlIGFyZW4ndCBhdXRvLWZldGNoaW5nIFNWR3NcbiAgICBwcmVmaXggPSAnZmFzJztcbiAgfVxuICByZXR1cm4ge1xuICAgIHByZWZpeDogcHJlZml4LFxuICAgIGljb25OYW1lOiBpY29uTmFtZVxuICB9O1xufVxudmFyIG5ld0Nhbm9uaWNhbEZhbWlsaWVzID0gcnQuZmlsdGVyKGZ1bmN0aW9uIChmYW1pbHlJZCkge1xuICByZXR1cm4gZmFtaWx5SWQgIT09IGkgfHwgZmFtaWx5SWQgIT09IHQ7XG59KTtcbnZhciBuZXdDYW5vbmljYWxTdHlsZXMgPSBPYmplY3Qua2V5cyhIdCQxKS5maWx0ZXIoZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4ga2V5ICE9PSBpO1xufSkubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKEh0JDFba2V5XSk7XG59KS5mbGF0KCk7XG5mdW5jdGlvbiBnZXREZWZhdWx0Q2Fub25pY2FsUHJlZml4KHByZWZpeE9wdGlvbnMpIHtcbiAgdmFyIHZhbHVlcyA9IHByZWZpeE9wdGlvbnMudmFsdWVzLFxuICAgIGZhbWlseSA9IHByZWZpeE9wdGlvbnMuZmFtaWx5LFxuICAgIGNhbm9uaWNhbCA9IHByZWZpeE9wdGlvbnMuY2Fub25pY2FsLFxuICAgIF9wcmVmaXhPcHRpb25zJGdpdmVuUCA9IHByZWZpeE9wdGlvbnMuZ2l2ZW5QcmVmaXgsXG4gICAgZ2l2ZW5QcmVmaXggPSBfcHJlZml4T3B0aW9ucyRnaXZlblAgPT09IHZvaWQgMCA/ICcnIDogX3ByZWZpeE9wdGlvbnMkZ2l2ZW5QLFxuICAgIF9wcmVmaXhPcHRpb25zJHN0eWxlcyA9IHByZWZpeE9wdGlvbnMuc3R5bGVzLFxuICAgIHN0eWxlcyA9IF9wcmVmaXhPcHRpb25zJHN0eWxlcyA9PT0gdm9pZCAwID8ge30gOiBfcHJlZml4T3B0aW9ucyRzdHlsZXMsXG4gICAgX3ByZWZpeE9wdGlvbnMkY29uZmlnID0gcHJlZml4T3B0aW9ucy5jb25maWcsXG4gICAgY29uZmlnJCQxID0gX3ByZWZpeE9wdGlvbnMkY29uZmlnID09PSB2b2lkIDAgPyB7fSA6IF9wcmVmaXhPcHRpb25zJGNvbmZpZztcbiAgdmFyIGlzRHVvdG9uZUZhbWlseSA9IGZhbWlseSA9PT0gdDtcbiAgdmFyIHZhbHVlc0hhc0R1b3RvbmUgPSB2YWx1ZXMuaW5jbHVkZXMoJ2ZhLWR1b3RvbmUnKSB8fCB2YWx1ZXMuaW5jbHVkZXMoJ2ZhZCcpO1xuICB2YXIgZGVmYXVsdEZhbWlseUlzRHVvdG9uZSA9IGNvbmZpZyQkMS5mYW1pbHlEZWZhdWx0ID09PSAnZHVvdG9uZSc7XG4gIHZhciBjYW5vbmljYWxQcmVmaXhJc0R1b3RvbmUgPSBjYW5vbmljYWwucHJlZml4ID09PSAnZmFkJyB8fCBjYW5vbmljYWwucHJlZml4ID09PSAnZmEtZHVvdG9uZSc7XG4gIGlmICghaXNEdW90b25lRmFtaWx5ICYmICh2YWx1ZXNIYXNEdW90b25lIHx8IGRlZmF1bHRGYW1pbHlJc0R1b3RvbmUgfHwgY2Fub25pY2FsUHJlZml4SXNEdW90b25lKSkge1xuICAgIGNhbm9uaWNhbC5wcmVmaXggPSAnZmFkJztcbiAgfVxuICBpZiAodmFsdWVzLmluY2x1ZGVzKCdmYS1icmFuZHMnKSB8fCB2YWx1ZXMuaW5jbHVkZXMoJ2ZhYicpKSB7XG4gICAgY2Fub25pY2FsLnByZWZpeCA9ICdmYWInO1xuICB9XG4gIGlmICghY2Fub25pY2FsLnByZWZpeCAmJiBuZXdDYW5vbmljYWxGYW1pbGllcy5pbmNsdWRlcyhmYW1pbHkpKSB7XG4gICAgdmFyIHZhbGlkUHJlZml4ID0gT2JqZWN0LmtleXMoc3R5bGVzKS5maW5kKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHJldHVybiBuZXdDYW5vbmljYWxTdHlsZXMuaW5jbHVkZXMoa2V5KTtcbiAgICB9KTtcbiAgICBpZiAodmFsaWRQcmVmaXggfHwgY29uZmlnJCQxLmF1dG9GZXRjaFN2Zykge1xuICAgICAgdmFyIGRlZmF1bHRQcmVmaXggPSBVdC5nZXQoZmFtaWx5KS5kZWZhdWx0U2hvcnRQcmVmaXhJZDtcbiAgICAgIGNhbm9uaWNhbC5wcmVmaXggPSBkZWZhdWx0UHJlZml4O1xuICAgICAgY2Fub25pY2FsLmljb25OYW1lID0gYnlBbGlhcyhjYW5vbmljYWwucHJlZml4LCBjYW5vbmljYWwuaWNvbk5hbWUpIHx8IGNhbm9uaWNhbC5pY29uTmFtZTtcbiAgICB9XG4gIH1cbiAgaWYgKGNhbm9uaWNhbC5wcmVmaXggPT09ICdmYScgfHwgZ2l2ZW5QcmVmaXggPT09ICdmYScpIHtcbiAgICAvLyBUaGUgZmEgcHJlZml4IGlzIG5vdCBjYW5vbmljYWwuIFNvIGlmIGl0IGhhcyBtYWRlIGl0IHRocm91Z2ggdW50aWwgdGhpcyBwb2ludFxuICAgIC8vIHdlIHdpbGwgc2hpZnQgaXQgdG8gdGhlIGNvcnJlY3QgcHJlZml4LlxuICAgIGNhbm9uaWNhbC5wcmVmaXggPSBnZXREZWZhdWx0VXNhYmxlUHJlZml4KCkgfHwgJ2Zhcyc7XG4gIH1cbiAgcmV0dXJuIGNhbm9uaWNhbDtcbn1cblxudmFyIExpYnJhcnkgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBMaWJyYXJ5KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMaWJyYXJ5KTtcbiAgICB0aGlzLmRlZmluaXRpb25zID0ge307XG4gIH1cbiAgcmV0dXJuIF9jcmVhdGVDbGFzcyhMaWJyYXJ5LCBbe1xuICAgIGtleTogXCJhZGRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkKCkge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBkZWZpbml0aW9ucyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgZGVmaW5pdGlvbnNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG4gICAgICB2YXIgYWRkaXRpb25zID0gZGVmaW5pdGlvbnMucmVkdWNlKHRoaXMuX3B1bGxEZWZpbml0aW9ucywge30pO1xuICAgICAgT2JqZWN0LmtleXMoYWRkaXRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgX3RoaXMuZGVmaW5pdGlvbnNba2V5XSA9IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBfdGhpcy5kZWZpbml0aW9uc1trZXldIHx8IHt9KSwgYWRkaXRpb25zW2tleV0pO1xuICAgICAgICBkZWZpbmVJY29ucyhrZXksIGFkZGl0aW9uc1trZXldKTtcblxuICAgICAgICAvLyBUbyBrZWVwIHN1cHBvcnQgZm9yIG9sZGVyIENsYXNzaWMgc3R5bGVzLCBhbHNvIGFkZCBsb25nZXIgcHJlZml4ZXNcbiAgICAgICAgdmFyIGxvbmdQcmVmaXggPSBQUkVGSVhfVE9fTE9OR19TVFlMRVtpXVtrZXldO1xuICAgICAgICBpZiAobG9uZ1ByZWZpeCkgZGVmaW5lSWNvbnMobG9uZ1ByZWZpeCwgYWRkaXRpb25zW2tleV0pO1xuICAgICAgICBidWlsZCgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlc2V0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlc2V0KCkge1xuICAgICAgdGhpcy5kZWZpbml0aW9ucyA9IHt9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJfcHVsbERlZmluaXRpb25zXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIF9wdWxsRGVmaW5pdGlvbnMoYWRkaXRpb25zLCBkZWZpbml0aW9uKSB7XG4gICAgICB2YXIgbm9ybWFsaXplZCA9IGRlZmluaXRpb24ucHJlZml4ICYmIGRlZmluaXRpb24uaWNvbk5hbWUgJiYgZGVmaW5pdGlvbi5pY29uID8ge1xuICAgICAgICAwOiBkZWZpbml0aW9uXG4gICAgICB9IDogZGVmaW5pdGlvbjtcbiAgICAgIE9iamVjdC5rZXlzKG5vcm1hbGl6ZWQpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHZhciBfbm9ybWFsaXplZCRrZXkgPSBub3JtYWxpemVkW2tleV0sXG4gICAgICAgICAgcHJlZml4ID0gX25vcm1hbGl6ZWQka2V5LnByZWZpeCxcbiAgICAgICAgICBpY29uTmFtZSA9IF9ub3JtYWxpemVkJGtleS5pY29uTmFtZSxcbiAgICAgICAgICBpY29uID0gX25vcm1hbGl6ZWQka2V5Lmljb247XG4gICAgICAgIHZhciBhbGlhc2VzID0gaWNvblsyXTtcbiAgICAgICAgaWYgKCFhZGRpdGlvbnNbcHJlZml4XSkgYWRkaXRpb25zW3ByZWZpeF0gPSB7fTtcbiAgICAgICAgaWYgKGFsaWFzZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGFsaWFzZXMuZm9yRWFjaChmdW5jdGlvbiAoYWxpYXMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgYWxpYXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGFkZGl0aW9uc1twcmVmaXhdW2FsaWFzXSA9IGljb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYWRkaXRpb25zW3ByZWZpeF1baWNvbk5hbWVdID0gaWNvbjtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGFkZGl0aW9ucztcbiAgICB9XG4gIH1dKTtcbn0oKTtcblxudmFyIF9wbHVnaW5zID0gW107XG52YXIgX2hvb2tzID0ge307XG52YXIgcHJvdmlkZXJzID0ge307XG52YXIgZGVmYXVsdFByb3ZpZGVyS2V5cyA9IE9iamVjdC5rZXlzKHByb3ZpZGVycyk7XG5mdW5jdGlvbiByZWdpc3RlclBsdWdpbnMobmV4dFBsdWdpbnMsIF9yZWYpIHtcbiAgdmFyIG9iaiA9IF9yZWYubWl4b3V0c1RvO1xuICBfcGx1Z2lucyA9IG5leHRQbHVnaW5zO1xuICBfaG9va3MgPSB7fTtcbiAgT2JqZWN0LmtleXMocHJvdmlkZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgaWYgKGRlZmF1bHRQcm92aWRlcktleXMuaW5kZXhPZihrKSA9PT0gLTEpIHtcbiAgICAgIGRlbGV0ZSBwcm92aWRlcnNba107XG4gICAgfVxuICB9KTtcbiAgX3BsdWdpbnMuZm9yRWFjaChmdW5jdGlvbiAocGx1Z2luKSB7XG4gICAgdmFyIG1peG91dCA9IHBsdWdpbi5taXhvdXQgPyBwbHVnaW4ubWl4b3V0KCkgOiB7fTtcbiAgICBPYmplY3Qua2V5cyhtaXhvdXQpLmZvckVhY2goZnVuY3Rpb24gKHRrKSB7XG4gICAgICBpZiAodHlwZW9mIG1peG91dFt0a10gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb2JqW3RrXSA9IG1peG91dFt0a107XG4gICAgICB9XG4gICAgICBpZiAoX3R5cGVvZihtaXhvdXRbdGtdKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgT2JqZWN0LmtleXMobWl4b3V0W3RrXSkuZm9yRWFjaChmdW5jdGlvbiAoc2spIHtcbiAgICAgICAgICBpZiAoIW9ialt0a10pIHtcbiAgICAgICAgICAgIG9ialt0a10gPSB7fTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JqW3RrXVtza10gPSBtaXhvdXRbdGtdW3NrXTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHBsdWdpbi5ob29rcykge1xuICAgICAgdmFyIGhvb2tzID0gcGx1Z2luLmhvb2tzKCk7XG4gICAgICBPYmplY3Qua2V5cyhob29rcykuZm9yRWFjaChmdW5jdGlvbiAoaG9vaykge1xuICAgICAgICBpZiAoIV9ob29rc1tob29rXSkge1xuICAgICAgICAgIF9ob29rc1tob29rXSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIF9ob29rc1tob29rXS5wdXNoKGhvb2tzW2hvb2tdKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocGx1Z2luLnByb3ZpZGVzKSB7XG4gICAgICBwbHVnaW4ucHJvdmlkZXMocHJvdmlkZXJzKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gb2JqO1xufVxuZnVuY3Rpb24gY2hhaW5Ib29rcyhob29rLCBhY2N1bXVsYXRvcikge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMiA/IF9sZW4gLSAyIDogMCksIF9rZXkgPSAyOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5IC0gMl0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cbiAgdmFyIGhvb2tGbnMgPSBfaG9va3NbaG9va10gfHwgW107XG4gIGhvb2tGbnMuZm9yRWFjaChmdW5jdGlvbiAoaG9va0ZuKSB7XG4gICAgYWNjdW11bGF0b3IgPSBob29rRm4uYXBwbHkobnVsbCwgW2FjY3VtdWxhdG9yXS5jb25jYXQoYXJncykpO1xuICB9KTtcbiAgcmV0dXJuIGFjY3VtdWxhdG9yO1xufVxuZnVuY3Rpb24gY2FsbEhvb2tzKGhvb2spIHtcbiAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICB9XG4gIHZhciBob29rRm5zID0gX2hvb2tzW2hvb2tdIHx8IFtdO1xuICBob29rRm5zLmZvckVhY2goZnVuY3Rpb24gKGhvb2tGbikge1xuICAgIGhvb2tGbi5hcHBseShudWxsLCBhcmdzKTtcbiAgfSk7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBjYWxsUHJvdmlkZWQoKSB7XG4gIHZhciBob29rID0gYXJndW1lbnRzWzBdO1xuICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gIHJldHVybiBwcm92aWRlcnNbaG9va10gPyBwcm92aWRlcnNbaG9va10uYXBwbHkobnVsbCwgYXJncykgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGZpbmRJY29uRGVmaW5pdGlvbihpY29uTG9va3VwKSB7XG4gIGlmIChpY29uTG9va3VwLnByZWZpeCA9PT0gJ2ZhJykge1xuICAgIGljb25Mb29rdXAucHJlZml4ID0gJ2Zhcyc7XG4gIH1cbiAgdmFyIGljb25OYW1lID0gaWNvbkxvb2t1cC5pY29uTmFtZTtcbiAgdmFyIHByZWZpeCA9IGljb25Mb29rdXAucHJlZml4IHx8IGdldERlZmF1bHRVc2FibGVQcmVmaXgoKTtcbiAgaWYgKCFpY29uTmFtZSkgcmV0dXJuO1xuICBpY29uTmFtZSA9IGJ5QWxpYXMocHJlZml4LCBpY29uTmFtZSkgfHwgaWNvbk5hbWU7XG4gIHJldHVybiBpY29uRnJvbU1hcHBpbmcobGlicmFyeS5kZWZpbml0aW9ucywgcHJlZml4LCBpY29uTmFtZSkgfHwgaWNvbkZyb21NYXBwaW5nKG5hbWVzcGFjZS5zdHlsZXMsIHByZWZpeCwgaWNvbk5hbWUpO1xufVxudmFyIGxpYnJhcnkgPSBuZXcgTGlicmFyeSgpO1xudmFyIG5vQXV0byA9IGZ1bmN0aW9uIG5vQXV0bygpIHtcbiAgY29uZmlnLmF1dG9SZXBsYWNlU3ZnID0gZmFsc2U7XG4gIGNvbmZpZy5vYnNlcnZlTXV0YXRpb25zID0gZmFsc2U7XG4gIGNhbGxIb29rcygnbm9BdXRvJyk7XG59O1xudmFyIGRvbSA9IHtcbiAgaTJzdmc6IGZ1bmN0aW9uIGkyc3ZnKCkge1xuICAgIHZhciBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIGlmIChJU19ET00pIHtcbiAgICAgIGNhbGxIb29rcygnYmVmb3JlSTJzdmcnLCBwYXJhbXMpO1xuICAgICAgY2FsbFByb3ZpZGVkKCdwc2V1ZG9FbGVtZW50czJzdmcnLCBwYXJhbXMpO1xuICAgICAgcmV0dXJuIGNhbGxQcm92aWRlZCgnaTJzdmcnLCBwYXJhbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCdPcGVyYXRpb24gcmVxdWlyZXMgYSBET00gb2Ygc29tZSBraW5kLicpKTtcbiAgICB9XG4gIH0sXG4gIHdhdGNoOiBmdW5jdGlvbiB3YXRjaCgpIHtcbiAgICB2YXIgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICB2YXIgYXV0b1JlcGxhY2VTdmdSb290ID0gcGFyYW1zLmF1dG9SZXBsYWNlU3ZnUm9vdDtcbiAgICBpZiAoY29uZmlnLmF1dG9SZXBsYWNlU3ZnID09PSBmYWxzZSkge1xuICAgICAgY29uZmlnLmF1dG9SZXBsYWNlU3ZnID0gdHJ1ZTtcbiAgICB9XG4gICAgY29uZmlnLm9ic2VydmVNdXRhdGlvbnMgPSB0cnVlO1xuICAgIGRvbXJlYWR5KGZ1bmN0aW9uICgpIHtcbiAgICAgIGF1dG9SZXBsYWNlKHtcbiAgICAgICAgYXV0b1JlcGxhY2VTdmdSb290OiBhdXRvUmVwbGFjZVN2Z1Jvb3RcbiAgICAgIH0pO1xuICAgICAgY2FsbEhvb2tzKCd3YXRjaCcsIHBhcmFtcyk7XG4gICAgfSk7XG4gIH1cbn07XG52YXIgcGFyc2UgPSB7XG4gIGljb246IGZ1bmN0aW9uIGljb24oX2ljb24pIHtcbiAgICBpZiAoX2ljb24gPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoX3R5cGVvZihfaWNvbikgPT09ICdvYmplY3QnICYmIF9pY29uLnByZWZpeCAmJiBfaWNvbi5pY29uTmFtZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJlZml4OiBfaWNvbi5wcmVmaXgsXG4gICAgICAgIGljb25OYW1lOiBieUFsaWFzKF9pY29uLnByZWZpeCwgX2ljb24uaWNvbk5hbWUpIHx8IF9pY29uLmljb25OYW1lXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShfaWNvbikgJiYgX2ljb24ubGVuZ3RoID09PSAyKSB7XG4gICAgICB2YXIgaWNvbk5hbWUgPSBfaWNvblsxXS5pbmRleE9mKCdmYS0nKSA9PT0gMCA/IF9pY29uWzFdLnNsaWNlKDMpIDogX2ljb25bMV07XG4gICAgICB2YXIgcHJlZml4ID0gZ2V0Q2Fub25pY2FsUHJlZml4KF9pY29uWzBdKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByZWZpeDogcHJlZml4LFxuICAgICAgICBpY29uTmFtZTogYnlBbGlhcyhwcmVmaXgsIGljb25OYW1lKSB8fCBpY29uTmFtZVxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBfaWNvbiA9PT0gJ3N0cmluZycgJiYgKF9pY29uLmluZGV4T2YoXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItXCIpKSA+IC0xIHx8IF9pY29uLm1hdGNoKElDT05fU0VMRUNUSU9OX1NZTlRBWF9QQVRURVJOKSkpIHtcbiAgICAgIHZhciBjYW5vbmljYWxJY29uID0gZ2V0Q2Fub25pY2FsSWNvbihfaWNvbi5zcGxpdCgnICcpLCB7XG4gICAgICAgIHNraXBMb29rdXBzOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByZWZpeDogY2Fub25pY2FsSWNvbi5wcmVmaXggfHwgZ2V0RGVmYXVsdFVzYWJsZVByZWZpeCgpLFxuICAgICAgICBpY29uTmFtZTogYnlBbGlhcyhjYW5vbmljYWxJY29uLnByZWZpeCwgY2Fub25pY2FsSWNvbi5pY29uTmFtZSkgfHwgY2Fub25pY2FsSWNvbi5pY29uTmFtZVxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBfaWNvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBfcHJlZml4ID0gZ2V0RGVmYXVsdFVzYWJsZVByZWZpeCgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJlZml4OiBfcHJlZml4LFxuICAgICAgICBpY29uTmFtZTogYnlBbGlhcyhfcHJlZml4LCBfaWNvbikgfHwgX2ljb25cbiAgICAgIH07XG4gICAgfVxuICB9XG59O1xudmFyIGFwaSA9IHtcbiAgbm9BdXRvOiBub0F1dG8sXG4gIGNvbmZpZzogY29uZmlnLFxuICBkb206IGRvbSxcbiAgcGFyc2U6IHBhcnNlLFxuICBsaWJyYXJ5OiBsaWJyYXJ5LFxuICBmaW5kSWNvbkRlZmluaXRpb246IGZpbmRJY29uRGVmaW5pdGlvbixcbiAgdG9IdG1sOiB0b0h0bWxcbn07XG52YXIgYXV0b1JlcGxhY2UgPSBmdW5jdGlvbiBhdXRvUmVwbGFjZSgpIHtcbiAgdmFyIHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gIHZhciBfcGFyYW1zJGF1dG9SZXBsYWNlU3YgPSBwYXJhbXMuYXV0b1JlcGxhY2VTdmdSb290LFxuICAgIGF1dG9SZXBsYWNlU3ZnUm9vdCA9IF9wYXJhbXMkYXV0b1JlcGxhY2VTdiA9PT0gdm9pZCAwID8gRE9DVU1FTlQgOiBfcGFyYW1zJGF1dG9SZXBsYWNlU3Y7XG4gIGlmICgoT2JqZWN0LmtleXMobmFtZXNwYWNlLnN0eWxlcykubGVuZ3RoID4gMCB8fCBjb25maWcuYXV0b0ZldGNoU3ZnKSAmJiBJU19ET00gJiYgY29uZmlnLmF1dG9SZXBsYWNlU3ZnKSBhcGkuZG9tLmkyc3ZnKHtcbiAgICBub2RlOiBhdXRvUmVwbGFjZVN2Z1Jvb3RcbiAgfSk7XG59O1xuXG5mdW5jdGlvbiBkb21WYXJpYW50cyh2YWwsIGFic3RyYWN0Q3JlYXRvcikge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsLCAnYWJzdHJhY3QnLCB7XG4gICAgZ2V0OiBhYnN0cmFjdENyZWF0b3JcbiAgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWwsICdodG1sJywge1xuICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgcmV0dXJuIHZhbC5hYnN0cmFjdC5tYXAoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgcmV0dXJuIHRvSHRtbChhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWwsICdub2RlJywge1xuICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgaWYgKCFJU19ET00pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB2YXIgY29udGFpbmVyID0gRE9DVU1FTlQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gdmFsLmh0bWw7XG4gICAgICByZXR1cm4gY29udGFpbmVyLmNoaWxkcmVuO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiB2YWw7XG59XG5cbmZ1bmN0aW9uIGFzSWNvbiAoX3JlZikge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmLmNoaWxkcmVuLFxuICAgIG1haW4gPSBfcmVmLm1haW4sXG4gICAgbWFzayA9IF9yZWYubWFzayxcbiAgICBhdHRyaWJ1dGVzID0gX3JlZi5hdHRyaWJ1dGVzLFxuICAgIHN0eWxlcyA9IF9yZWYuc3R5bGVzLFxuICAgIHRyYW5zZm9ybSA9IF9yZWYudHJhbnNmb3JtO1xuICBpZiAodHJhbnNmb3JtSXNNZWFuaW5nZnVsKHRyYW5zZm9ybSkgJiYgbWFpbi5mb3VuZCAmJiAhbWFzay5mb3VuZCkge1xuICAgIHZhciB3aWR0aCA9IG1haW4ud2lkdGgsXG4gICAgICBoZWlnaHQgPSBtYWluLmhlaWdodDtcbiAgICB2YXIgb2Zmc2V0ID0ge1xuICAgICAgeDogd2lkdGggLyBoZWlnaHQgLyAyLFxuICAgICAgeTogMC41XG4gICAgfTtcbiAgICBhdHRyaWJ1dGVzWydzdHlsZSddID0gam9pblN0eWxlcyhfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgc3R5bGVzKSwge30sIHtcbiAgICAgICd0cmFuc2Zvcm0tb3JpZ2luJzogXCJcIi5jb25jYXQob2Zmc2V0LnggKyB0cmFuc2Zvcm0ueCAvIDE2LCBcImVtIFwiKS5jb25jYXQob2Zmc2V0LnkgKyB0cmFuc2Zvcm0ueSAvIDE2LCBcImVtXCIpXG4gICAgfSkpO1xuICB9XG4gIHJldHVybiBbe1xuICAgIHRhZzogJ3N2ZycsXG4gICAgYXR0cmlidXRlczogYXR0cmlidXRlcyxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgfV07XG59XG5cbmZ1bmN0aW9uIGFzU3ltYm9sIChfcmVmKSB7XG4gIHZhciBwcmVmaXggPSBfcmVmLnByZWZpeCxcbiAgICBpY29uTmFtZSA9IF9yZWYuaWNvbk5hbWUsXG4gICAgY2hpbGRyZW4gPSBfcmVmLmNoaWxkcmVuLFxuICAgIGF0dHJpYnV0ZXMgPSBfcmVmLmF0dHJpYnV0ZXMsXG4gICAgc3ltYm9sID0gX3JlZi5zeW1ib2w7XG4gIHZhciBpZCA9IHN5bWJvbCA9PT0gdHJ1ZSA/IFwiXCIuY29uY2F0KHByZWZpeCwgXCItXCIpLmNvbmNhdChjb25maWcuY3NzUHJlZml4LCBcIi1cIikuY29uY2F0KGljb25OYW1lKSA6IHN5bWJvbDtcbiAgcmV0dXJuIFt7XG4gICAgdGFnOiAnc3ZnJyxcbiAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICBzdHlsZTogJ2Rpc3BsYXk6IG5vbmU7J1xuICAgIH0sXG4gICAgY2hpbGRyZW46IFt7XG4gICAgICB0YWc6ICdzeW1ib2wnLFxuICAgICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIGF0dHJpYnV0ZXMpLCB7fSwge1xuICAgICAgICBpZDogaWRcbiAgICAgIH0pLFxuICAgICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gICAgfV1cbiAgfV07XG59XG5cbi8vIElmIGFueSBvZiB0aGVzZSBhdHRyaWJ1dGVzIGFyZSBwcmVzZW50LCBkb24ndCBhc3N1bWUgdGhlIGljb24gaXMgZGVjb3JhdGl2ZVxuZnVuY3Rpb24gaXNMYWJlbGVkKGF0dHJpYnV0ZXMpIHtcbiAgdmFyIGxhYmVscyA9IFsnYXJpYS1sYWJlbCcsICdhcmlhLWxhYmVsbGVkYnknLCAndGl0bGUnLCAncm9sZSddO1xuICByZXR1cm4gbGFiZWxzLnNvbWUoZnVuY3Rpb24gKGxhYmVsKSB7XG4gICAgcmV0dXJuIGxhYmVsIGluIGF0dHJpYnV0ZXM7XG4gIH0pO1xufVxuZnVuY3Rpb24gbWFrZUlubGluZVN2Z0Fic3RyYWN0KHBhcmFtcykge1xuICB2YXIgX3BhcmFtcyRpY29ucyA9IHBhcmFtcy5pY29ucyxcbiAgICBtYWluID0gX3BhcmFtcyRpY29ucy5tYWluLFxuICAgIG1hc2sgPSBfcGFyYW1zJGljb25zLm1hc2ssXG4gICAgcHJlZml4ID0gcGFyYW1zLnByZWZpeCxcbiAgICBpY29uTmFtZSA9IHBhcmFtcy5pY29uTmFtZSxcbiAgICB0cmFuc2Zvcm0gPSBwYXJhbXMudHJhbnNmb3JtLFxuICAgIHN5bWJvbCA9IHBhcmFtcy5zeW1ib2wsXG4gICAgbWFza0lkID0gcGFyYW1zLm1hc2tJZCxcbiAgICBleHRyYSA9IHBhcmFtcy5leHRyYSxcbiAgICBfcGFyYW1zJHdhdGNoYWJsZSA9IHBhcmFtcy53YXRjaGFibGUsXG4gICAgd2F0Y2hhYmxlID0gX3BhcmFtcyR3YXRjaGFibGUgPT09IHZvaWQgMCA/IGZhbHNlIDogX3BhcmFtcyR3YXRjaGFibGU7XG4gIHZhciBfcmVmID0gbWFzay5mb3VuZCA/IG1hc2sgOiBtYWluLFxuICAgIHdpZHRoID0gX3JlZi53aWR0aCxcbiAgICBoZWlnaHQgPSBfcmVmLmhlaWdodDtcbiAgdmFyIGF0dHJDbGFzcyA9IFtjb25maWcucmVwbGFjZW1lbnRDbGFzcywgaWNvbk5hbWUgPyBcIlwiLmNvbmNhdChjb25maWcuY3NzUHJlZml4LCBcIi1cIikuY29uY2F0KGljb25OYW1lKSA6ICcnXS5maWx0ZXIoZnVuY3Rpb24gKGMpIHtcbiAgICByZXR1cm4gZXh0cmEuY2xhc3Nlcy5pbmRleE9mKGMpID09PSAtMTtcbiAgfSkuZmlsdGVyKGZ1bmN0aW9uIChjKSB7XG4gICAgcmV0dXJuIGMgIT09ICcnIHx8ICEhYztcbiAgfSkuY29uY2F0KGV4dHJhLmNsYXNzZXMpLmpvaW4oJyAnKTtcbiAgdmFyIGNvbnRlbnQgPSB7XG4gICAgY2hpbGRyZW46IFtdLFxuICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBleHRyYS5hdHRyaWJ1dGVzKSwge30sIHtcbiAgICAgICdkYXRhLXByZWZpeCc6IHByZWZpeCxcbiAgICAgICdkYXRhLWljb24nOiBpY29uTmFtZSxcbiAgICAgICdjbGFzcyc6IGF0dHJDbGFzcyxcbiAgICAgICdyb2xlJzogZXh0cmEuYXR0cmlidXRlcy5yb2xlIHx8ICdpbWcnLFxuICAgICAgJ3ZpZXdCb3gnOiBcIjAgMCBcIi5jb25jYXQod2lkdGgsIFwiIFwiKS5jb25jYXQoaGVpZ2h0KVxuICAgIH0pXG4gIH07XG4gIGlmICghaXNMYWJlbGVkKGV4dHJhLmF0dHJpYnV0ZXMpICYmICFleHRyYS5hdHRyaWJ1dGVzWydhcmlhLWhpZGRlbiddKSB7XG4gICAgY29udGVudC5hdHRyaWJ1dGVzWydhcmlhLWhpZGRlbiddID0gJ3RydWUnO1xuICB9XG4gIGlmICh3YXRjaGFibGUpIHtcbiAgICBjb250ZW50LmF0dHJpYnV0ZXNbREFUQV9GQV9JMlNWR10gPSAnJztcbiAgfVxuICB2YXIgYXJncyA9IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBjb250ZW50KSwge30sIHtcbiAgICBwcmVmaXg6IHByZWZpeCxcbiAgICBpY29uTmFtZTogaWNvbk5hbWUsXG4gICAgbWFpbjogbWFpbixcbiAgICBtYXNrOiBtYXNrLFxuICAgIG1hc2tJZDogbWFza0lkLFxuICAgIHRyYW5zZm9ybTogdHJhbnNmb3JtLFxuICAgIHN5bWJvbDogc3ltYm9sLFxuICAgIHN0eWxlczogX29iamVjdFNwcmVhZDIoe30sIGV4dHJhLnN0eWxlcylcbiAgfSk7XG4gIHZhciBfcmVmMiA9IG1hc2suZm91bmQgJiYgbWFpbi5mb3VuZCA/IGNhbGxQcm92aWRlZCgnZ2VuZXJhdGVBYnN0cmFjdE1hc2snLCBhcmdzKSB8fCB7XG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgICBhdHRyaWJ1dGVzOiB7fVxuICAgIH0gOiBjYWxsUHJvdmlkZWQoJ2dlbmVyYXRlQWJzdHJhY3RJY29uJywgYXJncykgfHwge1xuICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgYXR0cmlidXRlczoge31cbiAgICB9LFxuICAgIGNoaWxkcmVuID0gX3JlZjIuY2hpbGRyZW4sXG4gICAgYXR0cmlidXRlcyA9IF9yZWYyLmF0dHJpYnV0ZXM7XG4gIGFyZ3MuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgYXJncy5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgaWYgKHN5bWJvbCkge1xuICAgIHJldHVybiBhc1N5bWJvbChhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXNJY29uKGFyZ3MpO1xuICB9XG59XG5mdW5jdGlvbiBtYWtlTGF5ZXJzVGV4dEFic3RyYWN0KHBhcmFtcykge1xuICB2YXIgY29udGVudCA9IHBhcmFtcy5jb250ZW50LFxuICAgIHdpZHRoID0gcGFyYW1zLndpZHRoLFxuICAgIGhlaWdodCA9IHBhcmFtcy5oZWlnaHQsXG4gICAgdHJhbnNmb3JtID0gcGFyYW1zLnRyYW5zZm9ybSxcbiAgICBleHRyYSA9IHBhcmFtcy5leHRyYSxcbiAgICBfcGFyYW1zJHdhdGNoYWJsZTIgPSBwYXJhbXMud2F0Y2hhYmxlLFxuICAgIHdhdGNoYWJsZSA9IF9wYXJhbXMkd2F0Y2hhYmxlMiA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcGFyYW1zJHdhdGNoYWJsZTI7XG4gIHZhciBhdHRyaWJ1dGVzID0gX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIGV4dHJhLmF0dHJpYnV0ZXMpLCB7fSwge1xuICAgIGNsYXNzOiBleHRyYS5jbGFzc2VzLmpvaW4oJyAnKVxuICB9KTtcbiAgaWYgKHdhdGNoYWJsZSkge1xuICAgIGF0dHJpYnV0ZXNbREFUQV9GQV9JMlNWR10gPSAnJztcbiAgfVxuICB2YXIgc3R5bGVzID0gX29iamVjdFNwcmVhZDIoe30sIGV4dHJhLnN0eWxlcyk7XG4gIGlmICh0cmFuc2Zvcm1Jc01lYW5pbmdmdWwodHJhbnNmb3JtKSkge1xuICAgIHN0eWxlc1sndHJhbnNmb3JtJ10gPSB0cmFuc2Zvcm1Gb3JDc3Moe1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2Zvcm0sXG4gICAgICBzdGFydENlbnRlcmVkOiB0cnVlLFxuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgaGVpZ2h0OiBoZWlnaHRcbiAgICB9KTtcbiAgICBzdHlsZXNbJy13ZWJraXQtdHJhbnNmb3JtJ10gPSBzdHlsZXNbJ3RyYW5zZm9ybSddO1xuICB9XG4gIHZhciBzdHlsZVN0cmluZyA9IGpvaW5TdHlsZXMoc3R5bGVzKTtcbiAgaWYgKHN0eWxlU3RyaW5nLmxlbmd0aCA+IDApIHtcbiAgICBhdHRyaWJ1dGVzWydzdHlsZSddID0gc3R5bGVTdHJpbmc7XG4gIH1cbiAgdmFyIHZhbCA9IFtdO1xuICB2YWwucHVzaCh7XG4gICAgdGFnOiAnc3BhbicsXG4gICAgYXR0cmlidXRlczogYXR0cmlidXRlcyxcbiAgICBjaGlsZHJlbjogW2NvbnRlbnRdXG4gIH0pO1xuICByZXR1cm4gdmFsO1xufVxuZnVuY3Rpb24gbWFrZUxheWVyc0NvdW50ZXJBYnN0cmFjdChwYXJhbXMpIHtcbiAgdmFyIGNvbnRlbnQgPSBwYXJhbXMuY29udGVudCxcbiAgICBleHRyYSA9IHBhcmFtcy5leHRyYTtcbiAgdmFyIGF0dHJpYnV0ZXMgPSBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgZXh0cmEuYXR0cmlidXRlcyksIHt9LCB7XG4gICAgY2xhc3M6IGV4dHJhLmNsYXNzZXMuam9pbignICcpXG4gIH0pO1xuICB2YXIgc3R5bGVTdHJpbmcgPSBqb2luU3R5bGVzKGV4dHJhLnN0eWxlcyk7XG4gIGlmIChzdHlsZVN0cmluZy5sZW5ndGggPiAwKSB7XG4gICAgYXR0cmlidXRlc1snc3R5bGUnXSA9IHN0eWxlU3RyaW5nO1xuICB9XG4gIHZhciB2YWwgPSBbXTtcbiAgdmFsLnB1c2goe1xuICAgIHRhZzogJ3NwYW4nLFxuICAgIGF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMsXG4gICAgY2hpbGRyZW46IFtjb250ZW50XVxuICB9KTtcbiAgcmV0dXJuIHZhbDtcbn1cblxudmFyIHN0eWxlcyQxID0gbmFtZXNwYWNlLnN0eWxlcztcbmZ1bmN0aW9uIGFzRm91bmRJY29uKGljb24pIHtcbiAgdmFyIHdpZHRoID0gaWNvblswXTtcbiAgdmFyIGhlaWdodCA9IGljb25bMV07XG4gIHZhciBfaWNvbiRzbGljZSA9IGljb24uc2xpY2UoNCksXG4gICAgX2ljb24kc2xpY2UyID0gX3NsaWNlZFRvQXJyYXkoX2ljb24kc2xpY2UsIDEpLFxuICAgIHZlY3RvckRhdGEgPSBfaWNvbiRzbGljZTJbMF07XG4gIHZhciBlbGVtZW50ID0gbnVsbDtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmVjdG9yRGF0YSkpIHtcbiAgICBlbGVtZW50ID0ge1xuICAgICAgdGFnOiAnZycsXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGNsYXNzOiBcIlwiLmNvbmNhdChjb25maWcuY3NzUHJlZml4LCBcIi1cIikuY29uY2F0KERVT1RPTkVfQ0xBU1NFUy5HUk9VUClcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgdGFnOiAncGF0aCcsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBjbGFzczogXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItXCIpLmNvbmNhdChEVU9UT05FX0NMQVNTRVMuU0VDT05EQVJZKSxcbiAgICAgICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgICAgICBkOiB2ZWN0b3JEYXRhWzBdXG4gICAgICAgIH1cbiAgICAgIH0sIHtcbiAgICAgICAgdGFnOiAncGF0aCcsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBjbGFzczogXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItXCIpLmNvbmNhdChEVU9UT05FX0NMQVNTRVMuUFJJTUFSWSksXG4gICAgICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICAgICAgZDogdmVjdG9yRGF0YVsxXVxuICAgICAgICB9XG4gICAgICB9XVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgZWxlbWVudCA9IHtcbiAgICAgIHRhZzogJ3BhdGgnLFxuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgICAgZDogdmVjdG9yRGF0YVxuICAgICAgfVxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBmb3VuZDogdHJ1ZSxcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgaWNvbjogZWxlbWVudFxuICB9O1xufVxudmFyIG1pc3NpbmdJY29uUmVzb2x1dGlvbk1peGluID0ge1xuICBmb3VuZDogZmFsc2UsXG4gIHdpZHRoOiA1MTIsXG4gIGhlaWdodDogNTEyXG59O1xuZnVuY3Rpb24gbWF5YmVOb3RpZnlNaXNzaW5nKGljb25OYW1lLCBwcmVmaXgpIHtcbiAgaWYgKCFQUk9EVUNUSU9OICYmICFjb25maWcuc2hvd01pc3NpbmdJY29ucyAmJiBpY29uTmFtZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJJY29uIHdpdGggbmFtZSBcXFwiXCIuY29uY2F0KGljb25OYW1lLCBcIlxcXCIgYW5kIHByZWZpeCBcXFwiXCIpLmNvbmNhdChwcmVmaXgsIFwiXFxcIiBpcyBtaXNzaW5nLlwiKSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGZpbmRJY29uKGljb25OYW1lLCBwcmVmaXgpIHtcbiAgdmFyIGdpdmVuUHJlZml4ID0gcHJlZml4O1xuICBpZiAocHJlZml4ID09PSAnZmEnICYmIGNvbmZpZy5zdHlsZURlZmF1bHQgIT09IG51bGwpIHtcbiAgICBwcmVmaXggPSBnZXREZWZhdWx0VXNhYmxlUHJlZml4KCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBpZiAoZ2l2ZW5QcmVmaXggPT09ICdmYScpIHtcbiAgICAgIHZhciBzaGltID0gYnlPbGROYW1lKGljb25OYW1lKSB8fCB7fTtcbiAgICAgIGljb25OYW1lID0gc2hpbS5pY29uTmFtZSB8fCBpY29uTmFtZTtcbiAgICAgIHByZWZpeCA9IHNoaW0ucHJlZml4IHx8IHByZWZpeDtcbiAgICB9XG4gICAgaWYgKGljb25OYW1lICYmIHByZWZpeCAmJiBzdHlsZXMkMVtwcmVmaXhdICYmIHN0eWxlcyQxW3ByZWZpeF1baWNvbk5hbWVdKSB7XG4gICAgICB2YXIgaWNvbiA9IHN0eWxlcyQxW3ByZWZpeF1baWNvbk5hbWVdO1xuICAgICAgcmV0dXJuIHJlc29sdmUoYXNGb3VuZEljb24oaWNvbikpO1xuICAgIH1cbiAgICBtYXliZU5vdGlmeU1pc3NpbmcoaWNvbk5hbWUsIHByZWZpeCk7XG4gICAgcmVzb2x2ZShfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgbWlzc2luZ0ljb25SZXNvbHV0aW9uTWl4aW4pLCB7fSwge1xuICAgICAgaWNvbjogY29uZmlnLnNob3dNaXNzaW5nSWNvbnMgJiYgaWNvbk5hbWUgPyBjYWxsUHJvdmlkZWQoJ21pc3NpbmdJY29uQWJzdHJhY3QnKSB8fCB7fSA6IHt9XG4gICAgfSkpO1xuICB9KTtcbn1cblxudmFyIG5vb3AkMSA9IGZ1bmN0aW9uIG5vb3AoKSB7fTtcbnZhciBwJDIgPSBjb25maWcubWVhc3VyZVBlcmZvcm1hbmNlICYmIFBFUkZPUk1BTkNFICYmIFBFUkZPUk1BTkNFLm1hcmsgJiYgUEVSRk9STUFOQ0UubWVhc3VyZSA/IFBFUkZPUk1BTkNFIDoge1xuICBtYXJrOiBub29wJDEsXG4gIG1lYXN1cmU6IG5vb3AkMVxufTtcbnZhciBwcmVhbWJsZSA9IFwiRkEgXFxcIjcuMS4wXFxcIlwiO1xudmFyIGJlZ2luID0gZnVuY3Rpb24gYmVnaW4obmFtZSkge1xuICBwJDIubWFyayhcIlwiLmNvbmNhdChwcmVhbWJsZSwgXCIgXCIpLmNvbmNhdChuYW1lLCBcIiBiZWdpbnNcIikpO1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBlbmQobmFtZSk7XG4gIH07XG59O1xudmFyIGVuZCA9IGZ1bmN0aW9uIGVuZChuYW1lKSB7XG4gIHAkMi5tYXJrKFwiXCIuY29uY2F0KHByZWFtYmxlLCBcIiBcIikuY29uY2F0KG5hbWUsIFwiIGVuZHNcIikpO1xuICBwJDIubWVhc3VyZShcIlwiLmNvbmNhdChwcmVhbWJsZSwgXCIgXCIpLmNvbmNhdChuYW1lKSwgXCJcIi5jb25jYXQocHJlYW1ibGUsIFwiIFwiKS5jb25jYXQobmFtZSwgXCIgYmVnaW5zXCIpLCBcIlwiLmNvbmNhdChwcmVhbWJsZSwgXCIgXCIpLmNvbmNhdChuYW1lLCBcIiBlbmRzXCIpKTtcbn07XG52YXIgcGVyZiA9IHtcbiAgYmVnaW46IGJlZ2luLFxuICBlbmQ6IGVuZFxufTtcblxudmFyIG5vb3AkMiA9IGZ1bmN0aW9uIG5vb3AoKSB7fTtcbmZ1bmN0aW9uIGlzV2F0Y2hlZChub2RlKSB7XG4gIHZhciBpMnN2ZyA9IG5vZGUuZ2V0QXR0cmlidXRlID8gbm9kZS5nZXRBdHRyaWJ1dGUoREFUQV9GQV9JMlNWRykgOiBudWxsO1xuICByZXR1cm4gdHlwZW9mIGkyc3ZnID09PSAnc3RyaW5nJztcbn1cbmZ1bmN0aW9uIGhhc1ByZWZpeEFuZEljb24obm9kZSkge1xuICB2YXIgcHJlZml4ID0gbm9kZS5nZXRBdHRyaWJ1dGUgPyBub2RlLmdldEF0dHJpYnV0ZShEQVRBX1BSRUZJWCkgOiBudWxsO1xuICB2YXIgaWNvbiA9IG5vZGUuZ2V0QXR0cmlidXRlID8gbm9kZS5nZXRBdHRyaWJ1dGUoREFUQV9JQ09OKSA6IG51bGw7XG4gIHJldHVybiBwcmVmaXggJiYgaWNvbjtcbn1cbmZ1bmN0aW9uIGhhc0JlZW5SZXBsYWNlZChub2RlKSB7XG4gIHJldHVybiBub2RlICYmIG5vZGUuY2xhc3NMaXN0ICYmIG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zICYmIG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKGNvbmZpZy5yZXBsYWNlbWVudENsYXNzKTtcbn1cbmZ1bmN0aW9uIGdldE11dGF0b3IoKSB7XG4gIGlmIChjb25maWcuYXV0b1JlcGxhY2VTdmcgPT09IHRydWUpIHtcbiAgICByZXR1cm4gbXV0YXRvcnMucmVwbGFjZTtcbiAgfVxuICB2YXIgbXV0YXRvciA9IG11dGF0b3JzW2NvbmZpZy5hdXRvUmVwbGFjZVN2Z107XG4gIHJldHVybiBtdXRhdG9yIHx8IG11dGF0b3JzLnJlcGxhY2U7XG59XG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50TlModGFnKSB7XG4gIHJldHVybiBET0NVTUVOVC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgdGFnKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQodGFnKSB7XG4gIHJldHVybiBET0NVTUVOVC5jcmVhdGVFbGVtZW50KHRhZyk7XG59XG5mdW5jdGlvbiBjb252ZXJ0U1ZHKGFic3RyYWN0T2JqKSB7XG4gIHZhciBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICB2YXIgX3BhcmFtcyRjZUZuID0gcGFyYW1zLmNlRm4sXG4gICAgY2VGbiA9IF9wYXJhbXMkY2VGbiA9PT0gdm9pZCAwID8gYWJzdHJhY3RPYmoudGFnID09PSAnc3ZnJyA/IGNyZWF0ZUVsZW1lbnROUyA6IGNyZWF0ZUVsZW1lbnQgOiBfcGFyYW1zJGNlRm47XG4gIGlmICh0eXBlb2YgYWJzdHJhY3RPYmogPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIERPQ1VNRU5ULmNyZWF0ZVRleHROb2RlKGFic3RyYWN0T2JqKTtcbiAgfVxuICB2YXIgdGFnID0gY2VGbihhYnN0cmFjdE9iai50YWcpO1xuICBPYmplY3Qua2V5cyhhYnN0cmFjdE9iai5hdHRyaWJ1dGVzIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICB0YWcuc2V0QXR0cmlidXRlKGtleSwgYWJzdHJhY3RPYmouYXR0cmlidXRlc1trZXldKTtcbiAgfSk7XG4gIHZhciBjaGlsZHJlbiA9IGFic3RyYWN0T2JqLmNoaWxkcmVuIHx8IFtdO1xuICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHRhZy5hcHBlbmRDaGlsZChjb252ZXJ0U1ZHKGNoaWxkLCB7XG4gICAgICBjZUZuOiBjZUZuXG4gICAgfSkpO1xuICB9KTtcbiAgcmV0dXJuIHRhZztcbn1cbmZ1bmN0aW9uIG5vZGVBc0NvbW1lbnQobm9kZSkge1xuICB2YXIgY29tbWVudCA9IFwiIFwiLmNvbmNhdChub2RlLm91dGVySFRNTCwgXCIgXCIpO1xuICAvKiBCRUdJTi5BVFRSSUJVVElPTiAqL1xuICBjb21tZW50ID0gXCJcIi5jb25jYXQoY29tbWVudCwgXCJGb250IEF3ZXNvbWUgZm9udGF3ZXNvbWUuY29tIFwiKTtcbiAgLyogRU5ELkFUVFJJQlVUSU9OICovXG4gIHJldHVybiBjb21tZW50O1xufVxudmFyIG11dGF0b3JzID0ge1xuICByZXBsYWNlOiBmdW5jdGlvbiByZXBsYWNlKG11dGF0aW9uKSB7XG4gICAgdmFyIG5vZGUgPSBtdXRhdGlvblswXTtcbiAgICBpZiAobm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICBtdXRhdGlvblsxXS5mb3JFYWNoKGZ1bmN0aW9uIChhYnN0cmFjdCkge1xuICAgICAgICBub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNvbnZlcnRTVkcoYWJzdHJhY3QpLCBub2RlKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKG5vZGUuZ2V0QXR0cmlidXRlKERBVEFfRkFfSTJTVkcpID09PSBudWxsICYmIGNvbmZpZy5rZWVwT3JpZ2luYWxTb3VyY2UpIHtcbiAgICAgICAgdmFyIGNvbW1lbnQgPSBET0NVTUVOVC5jcmVhdGVDb21tZW50KG5vZGVBc0NvbW1lbnQobm9kZSkpO1xuICAgICAgICBub2RlLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGNvbW1lbnQsIG5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5yZW1vdmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIG5lc3Q6IGZ1bmN0aW9uIG5lc3QobXV0YXRpb24pIHtcbiAgICB2YXIgbm9kZSA9IG11dGF0aW9uWzBdO1xuICAgIHZhciBhYnN0cmFjdCA9IG11dGF0aW9uWzFdO1xuXG4gICAgLy8gSWYgd2UgYWxyZWFkeSBoYXZlIGEgcmVwbGFjZWQgbm9kZSB3ZSBkbyBub3Qgd2FudCB0byBjb250aW51ZSBuZXN0aW5nIHdpdGhpbiBpdC5cbiAgICAvLyBTaG9ydC1jaXJjdWl0IHRvIHRoZSBzdGFuZGFyZCByZXBsYWNlbWVudFxuICAgIGlmICh+Y2xhc3NBcnJheShub2RlKS5pbmRleE9mKGNvbmZpZy5yZXBsYWNlbWVudENsYXNzKSkge1xuICAgICAgcmV0dXJuIG11dGF0b3JzLnJlcGxhY2UobXV0YXRpb24pO1xuICAgIH1cbiAgICB2YXIgZm9yU3ZnID0gbmV3IFJlZ0V4cChcIlwiLmNvbmNhdChjb25maWcuY3NzUHJlZml4LCBcIi0uKlwiKSk7XG4gICAgZGVsZXRlIGFic3RyYWN0WzBdLmF0dHJpYnV0ZXMuaWQ7XG4gICAgaWYgKGFic3RyYWN0WzBdLmF0dHJpYnV0ZXMuY2xhc3MpIHtcbiAgICAgIHZhciBzcGxpdENsYXNzZXMgPSBhYnN0cmFjdFswXS5hdHRyaWJ1dGVzLmNsYXNzLnNwbGl0KCcgJykucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGNscykge1xuICAgICAgICBpZiAoY2xzID09PSBjb25maWcucmVwbGFjZW1lbnRDbGFzcyB8fCBjbHMubWF0Y2goZm9yU3ZnKSkge1xuICAgICAgICAgIGFjYy50b1N2Zy5wdXNoKGNscyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjLnRvTm9kZS5wdXNoKGNscyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHtcbiAgICAgICAgdG9Ob2RlOiBbXSxcbiAgICAgICAgdG9Tdmc6IFtdXG4gICAgICB9KTtcbiAgICAgIGFic3RyYWN0WzBdLmF0dHJpYnV0ZXMuY2xhc3MgPSBzcGxpdENsYXNzZXMudG9Tdmcuam9pbignICcpO1xuICAgICAgaWYgKHNwbGl0Q2xhc3Nlcy50b05vZGUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKCdjbGFzcycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgc3BsaXRDbGFzc2VzLnRvTm9kZS5qb2luKCcgJykpO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgbmV3SW5uZXJIVE1MID0gYWJzdHJhY3QubWFwKGZ1bmN0aW9uIChhKSB7XG4gICAgICByZXR1cm4gdG9IdG1sKGEpO1xuICAgIH0pLmpvaW4oJ1xcbicpO1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKERBVEFfRkFfSTJTVkcsICcnKTtcbiAgICBub2RlLmlubmVySFRNTCA9IG5ld0lubmVySFRNTDtcbiAgfVxufTtcbmZ1bmN0aW9uIHBlcmZvcm1PcGVyYXRpb25TeW5jKG9wKSB7XG4gIG9wKCk7XG59XG5mdW5jdGlvbiBwZXJmb3JtKG11dGF0aW9ucywgY2FsbGJhY2spIHtcbiAgdmFyIGNhbGxiYWNrRnVuY3Rpb24gPSB0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicgPyBjYWxsYmFjayA6IG5vb3AkMjtcbiAgaWYgKG11dGF0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICBjYWxsYmFja0Z1bmN0aW9uKCk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGZyYW1lID0gcGVyZm9ybU9wZXJhdGlvblN5bmM7XG4gICAgaWYgKGNvbmZpZy5tdXRhdGVBcHByb2FjaCA9PT0gTVVUQVRJT05fQVBQUk9BQ0hfQVNZTkMpIHtcbiAgICAgIGZyYW1lID0gV0lORE9XLnJlcXVlc3RBbmltYXRpb25GcmFtZSB8fCBwZXJmb3JtT3BlcmF0aW9uU3luYztcbiAgICB9XG4gICAgZnJhbWUoZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIG11dGF0b3IgPSBnZXRNdXRhdG9yKCk7XG4gICAgICB2YXIgbWFyayA9IHBlcmYuYmVnaW4oJ211dGF0ZScpO1xuICAgICAgbXV0YXRpb25zLm1hcChtdXRhdG9yKTtcbiAgICAgIG1hcmsoKTtcbiAgICAgIGNhbGxiYWNrRnVuY3Rpb24oKTtcbiAgICB9KTtcbiAgfVxufVxudmFyIGRpc2FibGVkID0gZmFsc2U7XG5mdW5jdGlvbiBkaXNhYmxlT2JzZXJ2YXRpb24oKSB7XG4gIGRpc2FibGVkID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGVuYWJsZU9ic2VydmF0aW9uKCkge1xuICBkaXNhYmxlZCA9IGZhbHNlO1xufVxudmFyIG1vID0gbnVsbDtcbmZ1bmN0aW9uIG9ic2VydmUob3B0aW9ucykge1xuICBpZiAoIU1VVEFUSU9OX09CU0VSVkVSKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICghY29uZmlnLm9ic2VydmVNdXRhdGlvbnMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIF9vcHRpb25zJHRyZWVDYWxsYmFjayA9IG9wdGlvbnMudHJlZUNhbGxiYWNrLFxuICAgIHRyZWVDYWxsYmFjayA9IF9vcHRpb25zJHRyZWVDYWxsYmFjayA9PT0gdm9pZCAwID8gbm9vcCQyIDogX29wdGlvbnMkdHJlZUNhbGxiYWNrLFxuICAgIF9vcHRpb25zJG5vZGVDYWxsYmFjayA9IG9wdGlvbnMubm9kZUNhbGxiYWNrLFxuICAgIG5vZGVDYWxsYmFjayA9IF9vcHRpb25zJG5vZGVDYWxsYmFjayA9PT0gdm9pZCAwID8gbm9vcCQyIDogX29wdGlvbnMkbm9kZUNhbGxiYWNrLFxuICAgIF9vcHRpb25zJHBzZXVkb0VsZW1lbiA9IG9wdGlvbnMucHNldWRvRWxlbWVudHNDYWxsYmFjayxcbiAgICBwc2V1ZG9FbGVtZW50c0NhbGxiYWNrID0gX29wdGlvbnMkcHNldWRvRWxlbWVuID09PSB2b2lkIDAgPyBub29wJDIgOiBfb3B0aW9ucyRwc2V1ZG9FbGVtZW4sXG4gICAgX29wdGlvbnMkb2JzZXJ2ZU11dGF0ID0gb3B0aW9ucy5vYnNlcnZlTXV0YXRpb25zUm9vdCxcbiAgICBvYnNlcnZlTXV0YXRpb25zUm9vdCA9IF9vcHRpb25zJG9ic2VydmVNdXRhdCA9PT0gdm9pZCAwID8gRE9DVU1FTlQgOiBfb3B0aW9ucyRvYnNlcnZlTXV0YXQ7XG4gIG1vID0gbmV3IE1VVEFUSU9OX09CU0VSVkVSKGZ1bmN0aW9uIChvYmplY3RzKSB7XG4gICAgaWYgKGRpc2FibGVkKSByZXR1cm47XG4gICAgdmFyIGRlZmF1bHRQcmVmaXggPSBnZXREZWZhdWx0VXNhYmxlUHJlZml4KCk7XG4gICAgdG9BcnJheShvYmplY3RzKS5mb3JFYWNoKGZ1bmN0aW9uIChtdXRhdGlvblJlY29yZCkge1xuICAgICAgaWYgKG11dGF0aW9uUmVjb3JkLnR5cGUgPT09ICdjaGlsZExpc3QnICYmIG11dGF0aW9uUmVjb3JkLmFkZGVkTm9kZXMubGVuZ3RoID4gMCAmJiAhaXNXYXRjaGVkKG11dGF0aW9uUmVjb3JkLmFkZGVkTm9kZXNbMF0pKSB7XG4gICAgICAgIGlmIChjb25maWcuc2VhcmNoUHNldWRvRWxlbWVudHMpIHtcbiAgICAgICAgICBwc2V1ZG9FbGVtZW50c0NhbGxiYWNrKG11dGF0aW9uUmVjb3JkLnRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJlZUNhbGxiYWNrKG11dGF0aW9uUmVjb3JkLnRhcmdldCk7XG4gICAgICB9XG4gICAgICBpZiAobXV0YXRpb25SZWNvcmQudHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICYmIG11dGF0aW9uUmVjb3JkLnRhcmdldC5wYXJlbnROb2RlICYmIGNvbmZpZy5zZWFyY2hQc2V1ZG9FbGVtZW50cykge1xuICAgICAgICBwc2V1ZG9FbGVtZW50c0NhbGxiYWNrKFttdXRhdGlvblJlY29yZC50YXJnZXRdLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIGlmIChtdXRhdGlvblJlY29yZC50eXBlID09PSAnYXR0cmlidXRlcycgJiYgaXNXYXRjaGVkKG11dGF0aW9uUmVjb3JkLnRhcmdldCkgJiYgfkFUVFJJQlVURVNfV0FUQ0hFRF9GT1JfTVVUQVRJT04uaW5kZXhPZihtdXRhdGlvblJlY29yZC5hdHRyaWJ1dGVOYW1lKSkge1xuICAgICAgICBpZiAobXV0YXRpb25SZWNvcmQuYXR0cmlidXRlTmFtZSA9PT0gJ2NsYXNzJyAmJiBoYXNQcmVmaXhBbmRJY29uKG11dGF0aW9uUmVjb3JkLnRhcmdldCkpIHtcbiAgICAgICAgICB2YXIgX2dldENhbm9uaWNhbEljb24gPSBnZXRDYW5vbmljYWxJY29uKGNsYXNzQXJyYXkobXV0YXRpb25SZWNvcmQudGFyZ2V0KSksXG4gICAgICAgICAgICBwcmVmaXggPSBfZ2V0Q2Fub25pY2FsSWNvbi5wcmVmaXgsXG4gICAgICAgICAgICBpY29uTmFtZSA9IF9nZXRDYW5vbmljYWxJY29uLmljb25OYW1lO1xuICAgICAgICAgIG11dGF0aW9uUmVjb3JkLnRhcmdldC5zZXRBdHRyaWJ1dGUoREFUQV9QUkVGSVgsIHByZWZpeCB8fCBkZWZhdWx0UHJlZml4KTtcbiAgICAgICAgICBpZiAoaWNvbk5hbWUpIG11dGF0aW9uUmVjb3JkLnRhcmdldC5zZXRBdHRyaWJ1dGUoREFUQV9JQ09OLCBpY29uTmFtZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaGFzQmVlblJlcGxhY2VkKG11dGF0aW9uUmVjb3JkLnRhcmdldCkpIHtcbiAgICAgICAgICBub2RlQ2FsbGJhY2sobXV0YXRpb25SZWNvcmQudGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbiAgaWYgKCFJU19ET00pIHJldHVybjtcbiAgbW8ub2JzZXJ2ZShvYnNlcnZlTXV0YXRpb25zUm9vdCwge1xuICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgIGNoYXJhY3RlckRhdGE6IHRydWUsXG4gICAgc3VidHJlZTogdHJ1ZVxuICB9KTtcbn1cbmZ1bmN0aW9uIGRpc2Nvbm5lY3QoKSB7XG4gIGlmICghbW8pIHJldHVybjtcbiAgbW8uZGlzY29ubmVjdCgpO1xufVxuXG5mdW5jdGlvbiBzdHlsZVBhcnNlciAobm9kZSkge1xuICB2YXIgc3R5bGUgPSBub2RlLmdldEF0dHJpYnV0ZSgnc3R5bGUnKTtcbiAgdmFyIHZhbCA9IFtdO1xuICBpZiAoc3R5bGUpIHtcbiAgICB2YWwgPSBzdHlsZS5zcGxpdCgnOycpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBzdHlsZSkge1xuICAgICAgdmFyIHN0eWxlcyA9IHN0eWxlLnNwbGl0KCc6Jyk7XG4gICAgICB2YXIgcHJvcCA9IHN0eWxlc1swXTtcbiAgICAgIHZhciB2YWx1ZSA9IHN0eWxlcy5zbGljZSgxKTtcbiAgICAgIGlmIChwcm9wICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYWNjW3Byb3BdID0gdmFsdWUuam9pbignOicpLnRyaW0oKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG4gIHJldHVybiB2YWw7XG59XG5cbmZ1bmN0aW9uIGNsYXNzUGFyc2VyIChub2RlKSB7XG4gIHZhciBleGlzdGluZ1ByZWZpeCA9IG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXByZWZpeCcpO1xuICB2YXIgZXhpc3RpbmdJY29uTmFtZSA9IG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLWljb24nKTtcbiAgdmFyIGlubmVyVGV4dCA9IG5vZGUuaW5uZXJUZXh0ICE9PSB1bmRlZmluZWQgPyBub2RlLmlubmVyVGV4dC50cmltKCkgOiAnJztcbiAgdmFyIHZhbCA9IGdldENhbm9uaWNhbEljb24oY2xhc3NBcnJheShub2RlKSk7XG4gIGlmICghdmFsLnByZWZpeCkge1xuICAgIHZhbC5wcmVmaXggPSBnZXREZWZhdWx0VXNhYmxlUHJlZml4KCk7XG4gIH1cbiAgaWYgKGV4aXN0aW5nUHJlZml4ICYmIGV4aXN0aW5nSWNvbk5hbWUpIHtcbiAgICB2YWwucHJlZml4ID0gZXhpc3RpbmdQcmVmaXg7XG4gICAgdmFsLmljb25OYW1lID0gZXhpc3RpbmdJY29uTmFtZTtcbiAgfVxuICBpZiAodmFsLmljb25OYW1lICYmIHZhbC5wcmVmaXgpIHtcbiAgICByZXR1cm4gdmFsO1xuICB9XG4gIGlmICh2YWwucHJlZml4ICYmIGlubmVyVGV4dC5sZW5ndGggPiAwKSB7XG4gICAgdmFsLmljb25OYW1lID0gYnlMaWdhdHVyZSh2YWwucHJlZml4LCBub2RlLmlubmVyVGV4dCkgfHwgYnlVbmljb2RlKHZhbC5wcmVmaXgsIHRvSGV4KG5vZGUuaW5uZXJUZXh0KSk7XG4gIH1cbiAgaWYgKCF2YWwuaWNvbk5hbWUgJiYgY29uZmlnLmF1dG9GZXRjaFN2ZyAmJiBub2RlLmZpcnN0Q2hpbGQgJiYgbm9kZS5maXJzdENoaWxkLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgIHZhbC5pY29uTmFtZSA9IG5vZGUuZmlyc3RDaGlsZC5kYXRhO1xuICB9XG4gIHJldHVybiB2YWw7XG59XG5cbmZ1bmN0aW9uIGF0dHJpYnV0ZXNQYXJzZXIgKG5vZGUpIHtcbiAgdmFyIGV4dHJhQXR0cmlidXRlcyA9IHRvQXJyYXkobm9kZS5hdHRyaWJ1dGVzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgYXR0cikge1xuICAgIGlmIChhY2MubmFtZSAhPT0gJ2NsYXNzJyAmJiBhY2MubmFtZSAhPT0gJ3N0eWxlJykge1xuICAgICAgYWNjW2F0dHIubmFtZV0gPSBhdHRyLnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG4gIHJldHVybiBleHRyYUF0dHJpYnV0ZXM7XG59XG5cbmZ1bmN0aW9uIGJsYW5rTWV0YSgpIHtcbiAgcmV0dXJuIHtcbiAgICBpY29uTmFtZTogbnVsbCxcbiAgICBwcmVmaXg6IG51bGwsXG4gICAgdHJhbnNmb3JtOiBtZWFuaW5nbGVzc1RyYW5zZm9ybSxcbiAgICBzeW1ib2w6IGZhbHNlLFxuICAgIG1hc2s6IHtcbiAgICAgIGljb25OYW1lOiBudWxsLFxuICAgICAgcHJlZml4OiBudWxsLFxuICAgICAgcmVzdDogW11cbiAgICB9LFxuICAgIG1hc2tJZDogbnVsbCxcbiAgICBleHRyYToge1xuICAgICAgY2xhc3NlczogW10sXG4gICAgICBzdHlsZXM6IHt9LFxuICAgICAgYXR0cmlidXRlczoge31cbiAgICB9XG4gIH07XG59XG5mdW5jdGlvbiBwYXJzZU1ldGEobm9kZSkge1xuICB2YXIgcGFyc2VyID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7XG4gICAgc3R5bGVQYXJzZXI6IHRydWVcbiAgfTtcbiAgdmFyIF9jbGFzc1BhcnNlciA9IGNsYXNzUGFyc2VyKG5vZGUpLFxuICAgIGljb25OYW1lID0gX2NsYXNzUGFyc2VyLmljb25OYW1lLFxuICAgIHByZWZpeCA9IF9jbGFzc1BhcnNlci5wcmVmaXgsXG4gICAgZXh0cmFDbGFzc2VzID0gX2NsYXNzUGFyc2VyLnJlc3Q7XG4gIHZhciBleHRyYUF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzUGFyc2VyKG5vZGUpO1xuICB2YXIgcGx1Z2luTWV0YSA9IGNoYWluSG9va3MoJ3BhcnNlTm9kZUF0dHJpYnV0ZXMnLCB7fSwgbm9kZSk7XG4gIHZhciBleHRyYVN0eWxlcyA9IHBhcnNlci5zdHlsZVBhcnNlciA/IHN0eWxlUGFyc2VyKG5vZGUpIDogW107XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkMih7XG4gICAgaWNvbk5hbWU6IGljb25OYW1lLFxuICAgIHByZWZpeDogcHJlZml4LFxuICAgIHRyYW5zZm9ybTogbWVhbmluZ2xlc3NUcmFuc2Zvcm0sXG4gICAgbWFzazoge1xuICAgICAgaWNvbk5hbWU6IG51bGwsXG4gICAgICBwcmVmaXg6IG51bGwsXG4gICAgICByZXN0OiBbXVxuICAgIH0sXG4gICAgbWFza0lkOiBudWxsLFxuICAgIHN5bWJvbDogZmFsc2UsXG4gICAgZXh0cmE6IHtcbiAgICAgIGNsYXNzZXM6IGV4dHJhQ2xhc3NlcyxcbiAgICAgIHN0eWxlczogZXh0cmFTdHlsZXMsXG4gICAgICBhdHRyaWJ1dGVzOiBleHRyYUF0dHJpYnV0ZXNcbiAgICB9XG4gIH0sIHBsdWdpbk1ldGEpO1xufVxuXG52YXIgc3R5bGVzJDIgPSBuYW1lc3BhY2Uuc3R5bGVzO1xuZnVuY3Rpb24gZ2VuZXJhdGVNdXRhdGlvbihub2RlKSB7XG4gIHZhciBub2RlTWV0YSA9IGNvbmZpZy5hdXRvUmVwbGFjZVN2ZyA9PT0gJ25lc3QnID8gcGFyc2VNZXRhKG5vZGUsIHtcbiAgICBzdHlsZVBhcnNlcjogZmFsc2VcbiAgfSkgOiBwYXJzZU1ldGEobm9kZSk7XG4gIGlmICh+bm9kZU1ldGEuZXh0cmEuY2xhc3Nlcy5pbmRleE9mKExBWUVSU19URVhUX0NMQVNTTkFNRSkpIHtcbiAgICByZXR1cm4gY2FsbFByb3ZpZGVkKCdnZW5lcmF0ZUxheWVyc1RleHQnLCBub2RlLCBub2RlTWV0YSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNhbGxQcm92aWRlZCgnZ2VuZXJhdGVTdmdSZXBsYWNlbWVudE11dGF0aW9uJywgbm9kZSwgbm9kZU1ldGEpO1xuICB9XG59XG5mdW5jdGlvbiBnZXRLbm93blByZWZpeGVzKCkge1xuICByZXR1cm4gW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShZdCksIF90b0NvbnN1bWFibGVBcnJheShadCQxKSk7XG59XG5mdW5jdGlvbiBvblRyZWUocm9vdCkge1xuICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IG51bGw7XG4gIGlmICghSVNfRE9NKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIHZhciBodG1sQ2xhc3NMaXN0ID0gRE9DVU1FTlQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdDtcbiAgdmFyIGhjbEFkZCA9IGZ1bmN0aW9uIGhjbEFkZChzdWZmaXgpIHtcbiAgICByZXR1cm4gaHRtbENsYXNzTGlzdC5hZGQoXCJcIi5jb25jYXQoSFRNTF9DTEFTU19JMlNWR19CQVNFX0NMQVNTLCBcIi1cIikuY29uY2F0KHN1ZmZpeCkpO1xuICB9O1xuICB2YXIgaGNsUmVtb3ZlID0gZnVuY3Rpb24gaGNsUmVtb3ZlKHN1ZmZpeCkge1xuICAgIHJldHVybiBodG1sQ2xhc3NMaXN0LnJlbW92ZShcIlwiLmNvbmNhdChIVE1MX0NMQVNTX0kyU1ZHX0JBU0VfQ0xBU1MsIFwiLVwiKS5jb25jYXQoc3VmZml4KSk7XG4gIH07XG4gIHZhciBwcmVmaXhlcyA9IGNvbmZpZy5hdXRvRmV0Y2hTdmcgPyBnZXRLbm93blByZWZpeGVzKCkgOiBRLmNvbmNhdChPYmplY3Qua2V5cyhzdHlsZXMkMikpO1xuICBpZiAoIXByZWZpeGVzLmluY2x1ZGVzKCdmYScpKSB7XG4gICAgcHJlZml4ZXMucHVzaCgnZmEnKTtcbiAgfVxuICB2YXIgcHJlZml4ZXNEb21RdWVyeSA9IFtcIi5cIi5jb25jYXQoTEFZRVJTX1RFWFRfQ0xBU1NOQU1FLCBcIjpub3QoW1wiKS5jb25jYXQoREFUQV9GQV9JMlNWRywgXCJdKVwiKV0uY29uY2F0KHByZWZpeGVzLm1hcChmdW5jdGlvbiAocCQkMSkge1xuICAgIHJldHVybiBcIi5cIi5jb25jYXQocCQkMSwgXCI6bm90KFtcIikuY29uY2F0KERBVEFfRkFfSTJTVkcsIFwiXSlcIik7XG4gIH0pKS5qb2luKCcsICcpO1xuICBpZiAocHJlZml4ZXNEb21RdWVyeS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cbiAgdmFyIGNhbmRpZGF0ZXMgPSBbXTtcbiAgdHJ5IHtcbiAgICBjYW5kaWRhdGVzID0gdG9BcnJheShyb290LnF1ZXJ5U2VsZWN0b3JBbGwocHJlZml4ZXNEb21RdWVyeSkpO1xuICB9IGNhdGNoIChlJCQxKSB7XG4gICAgLy8gbm9vcFxuICB9XG4gIGlmIChjYW5kaWRhdGVzLmxlbmd0aCA+IDApIHtcbiAgICBoY2xBZGQoJ3BlbmRpbmcnKTtcbiAgICBoY2xSZW1vdmUoJ2NvbXBsZXRlJyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG4gIHZhciBtYXJrID0gcGVyZi5iZWdpbignb25UcmVlJyk7XG4gIHZhciBtdXRhdGlvbnMgPSBjYW5kaWRhdGVzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBub2RlKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBtdXRhdGlvbiA9IGdlbmVyYXRlTXV0YXRpb24obm9kZSk7XG4gICAgICBpZiAobXV0YXRpb24pIHtcbiAgICAgICAgYWNjLnB1c2gobXV0YXRpb24pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUkJDEpIHtcbiAgICAgIGlmICghUFJPRFVDVElPTikge1xuICAgICAgICBpZiAoZSQkMS5uYW1lID09PSAnTWlzc2luZ0ljb24nKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlJCQxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSk7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgUHJvbWlzZS5hbGwobXV0YXRpb25zKS50aGVuKGZ1bmN0aW9uIChyZXNvbHZlZE11dGF0aW9ucykge1xuICAgICAgcGVyZm9ybShyZXNvbHZlZE11dGF0aW9ucywgZnVuY3Rpb24gKCkge1xuICAgICAgICBoY2xBZGQoJ2FjdGl2ZScpO1xuICAgICAgICBoY2xBZGQoJ2NvbXBsZXRlJyk7XG4gICAgICAgIGhjbFJlbW92ZSgncGVuZGluZycpO1xuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSBjYWxsYmFjaygpO1xuICAgICAgICBtYXJrKCk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlJCQxKSB7XG4gICAgICBtYXJrKCk7XG4gICAgICByZWplY3QoZSQkMSk7XG4gICAgfSk7XG4gIH0pO1xufVxuZnVuY3Rpb24gb25Ob2RlKG5vZGUpIHtcbiAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBudWxsO1xuICBnZW5lcmF0ZU11dGF0aW9uKG5vZGUpLnRoZW4oZnVuY3Rpb24gKG11dGF0aW9uKSB7XG4gICAgaWYgKG11dGF0aW9uKSB7XG4gICAgICBwZXJmb3JtKFttdXRhdGlvbl0sIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gcmVzb2x2ZUljb25zKG5leHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChtYXliZUljb25EZWZpbml0aW9uKSB7XG4gICAgdmFyIHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgdmFyIGljb25EZWZpbml0aW9uID0gKG1heWJlSWNvbkRlZmluaXRpb24gfHwge30pLmljb24gPyBtYXliZUljb25EZWZpbml0aW9uIDogZmluZEljb25EZWZpbml0aW9uKG1heWJlSWNvbkRlZmluaXRpb24gfHwge30pO1xuICAgIHZhciBtYXNrID0gcGFyYW1zLm1hc2s7XG4gICAgaWYgKG1hc2spIHtcbiAgICAgIG1hc2sgPSAobWFzayB8fCB7fSkuaWNvbiA/IG1hc2sgOiBmaW5kSWNvbkRlZmluaXRpb24obWFzayB8fCB7fSk7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KGljb25EZWZpbml0aW9uLCBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgcGFyYW1zKSwge30sIHtcbiAgICAgIG1hc2s6IG1hc2tcbiAgICB9KSk7XG4gIH07XG59XG52YXIgcmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKGljb25EZWZpbml0aW9uKSB7XG4gIHZhciBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICB2YXIgX3BhcmFtcyR0cmFuc2Zvcm0gPSBwYXJhbXMudHJhbnNmb3JtLFxuICAgIHRyYW5zZm9ybSA9IF9wYXJhbXMkdHJhbnNmb3JtID09PSB2b2lkIDAgPyBtZWFuaW5nbGVzc1RyYW5zZm9ybSA6IF9wYXJhbXMkdHJhbnNmb3JtLFxuICAgIF9wYXJhbXMkc3ltYm9sID0gcGFyYW1zLnN5bWJvbCxcbiAgICBzeW1ib2wgPSBfcGFyYW1zJHN5bWJvbCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcGFyYW1zJHN5bWJvbCxcbiAgICBfcGFyYW1zJG1hc2sgPSBwYXJhbXMubWFzayxcbiAgICBtYXNrID0gX3BhcmFtcyRtYXNrID09PSB2b2lkIDAgPyBudWxsIDogX3BhcmFtcyRtYXNrLFxuICAgIF9wYXJhbXMkbWFza0lkID0gcGFyYW1zLm1hc2tJZCxcbiAgICBtYXNrSWQgPSBfcGFyYW1zJG1hc2tJZCA9PT0gdm9pZCAwID8gbnVsbCA6IF9wYXJhbXMkbWFza0lkLFxuICAgIF9wYXJhbXMkY2xhc3NlcyA9IHBhcmFtcy5jbGFzc2VzLFxuICAgIGNsYXNzZXMgPSBfcGFyYW1zJGNsYXNzZXMgPT09IHZvaWQgMCA/IFtdIDogX3BhcmFtcyRjbGFzc2VzLFxuICAgIF9wYXJhbXMkYXR0cmlidXRlcyA9IHBhcmFtcy5hdHRyaWJ1dGVzLFxuICAgIGF0dHJpYnV0ZXMgPSBfcGFyYW1zJGF0dHJpYnV0ZXMgPT09IHZvaWQgMCA/IHt9IDogX3BhcmFtcyRhdHRyaWJ1dGVzLFxuICAgIF9wYXJhbXMkc3R5bGVzID0gcGFyYW1zLnN0eWxlcyxcbiAgICBzdHlsZXMgPSBfcGFyYW1zJHN0eWxlcyA9PT0gdm9pZCAwID8ge30gOiBfcGFyYW1zJHN0eWxlcztcbiAgaWYgKCFpY29uRGVmaW5pdGlvbikgcmV0dXJuO1xuICB2YXIgcHJlZml4ID0gaWNvbkRlZmluaXRpb24ucHJlZml4LFxuICAgIGljb25OYW1lID0gaWNvbkRlZmluaXRpb24uaWNvbk5hbWUsXG4gICAgaWNvbiA9IGljb25EZWZpbml0aW9uLmljb247XG4gIHJldHVybiBkb21WYXJpYW50cyhfb2JqZWN0U3ByZWFkMih7XG4gICAgdHlwZTogJ2ljb24nXG4gIH0sIGljb25EZWZpbml0aW9uKSwgZnVuY3Rpb24gKCkge1xuICAgIGNhbGxIb29rcygnYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uJywge1xuICAgICAgaWNvbkRlZmluaXRpb246IGljb25EZWZpbml0aW9uLFxuICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICB9KTtcbiAgICByZXR1cm4gbWFrZUlubGluZVN2Z0Fic3RyYWN0KHtcbiAgICAgIGljb25zOiB7XG4gICAgICAgIG1haW46IGFzRm91bmRJY29uKGljb24pLFxuICAgICAgICBtYXNrOiBtYXNrID8gYXNGb3VuZEljb24obWFzay5pY29uKSA6IHtcbiAgICAgICAgICBmb3VuZDogZmFsc2UsXG4gICAgICAgICAgd2lkdGg6IG51bGwsXG4gICAgICAgICAgaGVpZ2h0OiBudWxsLFxuICAgICAgICAgIGljb246IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBwcmVmaXg6IHByZWZpeCxcbiAgICAgIGljb25OYW1lOiBpY29uTmFtZSxcbiAgICAgIHRyYW5zZm9ybTogX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIG1lYW5pbmdsZXNzVHJhbnNmb3JtKSwgdHJhbnNmb3JtKSxcbiAgICAgIHN5bWJvbDogc3ltYm9sLFxuICAgICAgbWFza0lkOiBtYXNrSWQsXG4gICAgICBleHRyYToge1xuICAgICAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzLFxuICAgICAgICBzdHlsZXM6IHN0eWxlcyxcbiAgICAgICAgY2xhc3NlczogY2xhc3Nlc1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG52YXIgUmVwbGFjZUVsZW1lbnRzID0ge1xuICBtaXhvdXQ6IGZ1bmN0aW9uIG1peG91dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogcmVzb2x2ZUljb25zKHJlbmRlcilcbiAgICB9O1xuICB9LFxuICBob29rczogZnVuY3Rpb24gaG9va3MoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3M6IGZ1bmN0aW9uIG11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MoYWNjdW11bGF0b3IpIHtcbiAgICAgICAgYWNjdW11bGF0b3IudHJlZUNhbGxiYWNrID0gb25UcmVlO1xuICAgICAgICBhY2N1bXVsYXRvci5ub2RlQ2FsbGJhY2sgPSBvbk5vZGU7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBwcm92aWRlczogZnVuY3Rpb24gcHJvdmlkZXMocHJvdmlkZXJzJCQxKSB7XG4gICAgcHJvdmlkZXJzJCQxLmkyc3ZnID0gZnVuY3Rpb24gKHBhcmFtcykge1xuICAgICAgdmFyIF9wYXJhbXMkbm9kZSA9IHBhcmFtcy5ub2RlLFxuICAgICAgICBub2RlID0gX3BhcmFtcyRub2RlID09PSB2b2lkIDAgPyBET0NVTUVOVCA6IF9wYXJhbXMkbm9kZSxcbiAgICAgICAgX3BhcmFtcyRjYWxsYmFjayA9IHBhcmFtcy5jYWxsYmFjayxcbiAgICAgICAgY2FsbGJhY2sgPSBfcGFyYW1zJGNhbGxiYWNrID09PSB2b2lkIDAgPyBmdW5jdGlvbiAoKSB7fSA6IF9wYXJhbXMkY2FsbGJhY2s7XG4gICAgICByZXR1cm4gb25UcmVlKG5vZGUsIGNhbGxiYWNrKTtcbiAgICB9O1xuICAgIHByb3ZpZGVycyQkMS5nZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb24gPSBmdW5jdGlvbiAobm9kZSwgbm9kZU1ldGEpIHtcbiAgICAgIHZhciBpY29uTmFtZSA9IG5vZGVNZXRhLmljb25OYW1lLFxuICAgICAgICBwcmVmaXggPSBub2RlTWV0YS5wcmVmaXgsXG4gICAgICAgIHRyYW5zZm9ybSA9IG5vZGVNZXRhLnRyYW5zZm9ybSxcbiAgICAgICAgc3ltYm9sID0gbm9kZU1ldGEuc3ltYm9sLFxuICAgICAgICBtYXNrID0gbm9kZU1ldGEubWFzayxcbiAgICAgICAgbWFza0lkID0gbm9kZU1ldGEubWFza0lkLFxuICAgICAgICBleHRyYSA9IG5vZGVNZXRhLmV4dHJhO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgUHJvbWlzZS5hbGwoW2ZpbmRJY29uKGljb25OYW1lLCBwcmVmaXgpLCBtYXNrLmljb25OYW1lID8gZmluZEljb24obWFzay5pY29uTmFtZSwgbWFzay5wcmVmaXgpIDogUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICBmb3VuZDogZmFsc2UsXG4gICAgICAgICAgd2lkdGg6IDUxMixcbiAgICAgICAgICBoZWlnaHQ6IDUxMixcbiAgICAgICAgICBpY29uOiB7fVxuICAgICAgICB9KV0pLnRoZW4oZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgICAgICB2YXIgX3JlZjIgPSBfc2xpY2VkVG9BcnJheShfcmVmLCAyKSxcbiAgICAgICAgICAgIG1haW4gPSBfcmVmMlswXSxcbiAgICAgICAgICAgIG1hc2sgPSBfcmVmMlsxXTtcbiAgICAgICAgICByZXNvbHZlKFtub2RlLCBtYWtlSW5saW5lU3ZnQWJzdHJhY3Qoe1xuICAgICAgICAgICAgaWNvbnM6IHtcbiAgICAgICAgICAgICAgbWFpbjogbWFpbixcbiAgICAgICAgICAgICAgbWFzazogbWFza1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByZWZpeDogcHJlZml4LFxuICAgICAgICAgICAgaWNvbk5hbWU6IGljb25OYW1lLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2Zvcm0sXG4gICAgICAgICAgICBzeW1ib2w6IHN5bWJvbCxcbiAgICAgICAgICAgIG1hc2tJZDogbWFza0lkLFxuICAgICAgICAgICAgZXh0cmE6IGV4dHJhLFxuICAgICAgICAgICAgd2F0Y2hhYmxlOiB0cnVlXG4gICAgICAgICAgfSldKTtcbiAgICAgICAgfSkuY2F0Y2gocmVqZWN0KTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgcHJvdmlkZXJzJCQxLmdlbmVyYXRlQWJzdHJhY3RJY29uID0gZnVuY3Rpb24gKF9yZWYzKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBfcmVmMy5jaGlsZHJlbixcbiAgICAgICAgYXR0cmlidXRlcyA9IF9yZWYzLmF0dHJpYnV0ZXMsXG4gICAgICAgIG1haW4gPSBfcmVmMy5tYWluLFxuICAgICAgICB0cmFuc2Zvcm0gPSBfcmVmMy50cmFuc2Zvcm0sXG4gICAgICAgIHN0eWxlcyA9IF9yZWYzLnN0eWxlcztcbiAgICAgIHZhciBzdHlsZVN0cmluZyA9IGpvaW5TdHlsZXMoc3R5bGVzKTtcbiAgICAgIGlmIChzdHlsZVN0cmluZy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGF0dHJpYnV0ZXNbJ3N0eWxlJ10gPSBzdHlsZVN0cmluZztcbiAgICAgIH1cbiAgICAgIHZhciBuZXh0Q2hpbGQ7XG4gICAgICBpZiAodHJhbnNmb3JtSXNNZWFuaW5nZnVsKHRyYW5zZm9ybSkpIHtcbiAgICAgICAgbmV4dENoaWxkID0gY2FsbFByb3ZpZGVkKCdnZW5lcmF0ZUFic3RyYWN0VHJhbnNmb3JtR3JvdXBpbmcnLCB7XG4gICAgICAgICAgbWFpbjogbWFpbixcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zZm9ybSxcbiAgICAgICAgICBjb250YWluZXJXaWR0aDogbWFpbi53aWR0aCxcbiAgICAgICAgICBpY29uV2lkdGg6IG1haW4ud2lkdGhcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjaGlsZHJlbi5wdXNoKG5leHRDaGlsZCB8fCBtYWluLmljb24pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxuICAgICAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzXG4gICAgICB9O1xuICAgIH07XG4gIH1cbn07XG5cbnZhciBMYXllcnMgPSB7XG4gIG1peG91dDogZnVuY3Rpb24gbWl4b3V0KCkge1xuICAgIHJldHVybiB7XG4gICAgICBsYXllcjogZnVuY3Rpb24gbGF5ZXIoYXNzZW1ibGVyKSB7XG4gICAgICAgIHZhciBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgICAgICB2YXIgX3BhcmFtcyRjbGFzc2VzID0gcGFyYW1zLmNsYXNzZXMsXG4gICAgICAgICAgY2xhc3NlcyA9IF9wYXJhbXMkY2xhc3NlcyA9PT0gdm9pZCAwID8gW10gOiBfcGFyYW1zJGNsYXNzZXM7XG4gICAgICAgIHJldHVybiBkb21WYXJpYW50cyh7XG4gICAgICAgICAgdHlwZTogJ2xheWVyJ1xuICAgICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY2FsbEhvb2tzKCdiZWZvcmVET01FbGVtZW50Q3JlYXRpb24nLCB7XG4gICAgICAgICAgICBhc3NlbWJsZXI6IGFzc2VtYmxlcixcbiAgICAgICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdmFyIGNoaWxkcmVuID0gW107XG4gICAgICAgICAgYXNzZW1ibGVyKGZ1bmN0aW9uIChhcmdzKSB7XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KGFyZ3MpID8gYXJncy5tYXAoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5jb25jYXQoYS5hYnN0cmFjdCk7XG4gICAgICAgICAgICB9KSA6IGNoaWxkcmVuID0gY2hpbGRyZW4uY29uY2F0KGFyZ3MuYWJzdHJhY3QpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBbe1xuICAgICAgICAgICAgdGFnOiAnc3BhbicsXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgIGNsYXNzOiBbXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItbGF5ZXJzXCIpXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGNsYXNzZXMpKS5qb2luKCcgJylcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgICAgICAgICB9XTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufTtcblxudmFyIExheWVyc0NvdW50ZXIgPSB7XG4gIG1peG91dDogZnVuY3Rpb24gbWl4b3V0KCkge1xuICAgIHJldHVybiB7XG4gICAgICBjb3VudGVyOiBmdW5jdGlvbiBjb3VudGVyKGNvbnRlbnQpIHtcbiAgICAgICAgdmFyIHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgICAgIHZhciBfcGFyYW1zJHRpdGxlID0gcGFyYW1zLnRpdGxlLFxuICAgICAgICAgIHRpdGxlID0gX3BhcmFtcyR0aXRsZSA9PT0gdm9pZCAwID8gbnVsbCA6IF9wYXJhbXMkdGl0bGUsXG4gICAgICAgICAgX3BhcmFtcyRjbGFzc2VzID0gcGFyYW1zLmNsYXNzZXMsXG4gICAgICAgICAgY2xhc3NlcyA9IF9wYXJhbXMkY2xhc3NlcyA9PT0gdm9pZCAwID8gW10gOiBfcGFyYW1zJGNsYXNzZXMsXG4gICAgICAgICAgX3BhcmFtcyRhdHRyaWJ1dGVzID0gcGFyYW1zLmF0dHJpYnV0ZXMsXG4gICAgICAgICAgYXR0cmlidXRlcyA9IF9wYXJhbXMkYXR0cmlidXRlcyA9PT0gdm9pZCAwID8ge30gOiBfcGFyYW1zJGF0dHJpYnV0ZXMsXG4gICAgICAgICAgX3BhcmFtcyRzdHlsZXMgPSBwYXJhbXMuc3R5bGVzLFxuICAgICAgICAgIHN0eWxlcyA9IF9wYXJhbXMkc3R5bGVzID09PSB2b2lkIDAgPyB7fSA6IF9wYXJhbXMkc3R5bGVzO1xuICAgICAgICByZXR1cm4gZG9tVmFyaWFudHMoe1xuICAgICAgICAgIHR5cGU6ICdjb3VudGVyJyxcbiAgICAgICAgICBjb250ZW50OiBjb250ZW50XG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBjYWxsSG9va3MoJ2JlZm9yZURPTUVsZW1lbnRDcmVhdGlvbicsIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQsXG4gICAgICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBtYWtlTGF5ZXJzQ291bnRlckFic3RyYWN0KHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgIHN0eWxlczogc3R5bGVzLFxuICAgICAgICAgICAgICBjbGFzc2VzOiBbXCJcIi5jb25jYXQoY29uZmlnLmNzc1ByZWZpeCwgXCItbGF5ZXJzLWNvdW50ZXJcIildLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkoY2xhc3NlcykpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn07XG5cbnZhciBMYXllcnNUZXh0ID0ge1xuICBtaXhvdXQ6IGZ1bmN0aW9uIG1peG91dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dDogZnVuY3Rpb24gdGV4dChjb250ZW50KSB7XG4gICAgICAgIHZhciBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgICAgICB2YXIgX3BhcmFtcyR0cmFuc2Zvcm0gPSBwYXJhbXMudHJhbnNmb3JtLFxuICAgICAgICAgIHRyYW5zZm9ybSA9IF9wYXJhbXMkdHJhbnNmb3JtID09PSB2b2lkIDAgPyBtZWFuaW5nbGVzc1RyYW5zZm9ybSA6IF9wYXJhbXMkdHJhbnNmb3JtLFxuICAgICAgICAgIF9wYXJhbXMkY2xhc3NlcyA9IHBhcmFtcy5jbGFzc2VzLFxuICAgICAgICAgIGNsYXNzZXMgPSBfcGFyYW1zJGNsYXNzZXMgPT09IHZvaWQgMCA/IFtdIDogX3BhcmFtcyRjbGFzc2VzLFxuICAgICAgICAgIF9wYXJhbXMkYXR0cmlidXRlcyA9IHBhcmFtcy5hdHRyaWJ1dGVzLFxuICAgICAgICAgIGF0dHJpYnV0ZXMgPSBfcGFyYW1zJGF0dHJpYnV0ZXMgPT09IHZvaWQgMCA/IHt9IDogX3BhcmFtcyRhdHRyaWJ1dGVzLFxuICAgICAgICAgIF9wYXJhbXMkc3R5bGVzID0gcGFyYW1zLnN0eWxlcyxcbiAgICAgICAgICBzdHlsZXMgPSBfcGFyYW1zJHN0eWxlcyA9PT0gdm9pZCAwID8ge30gOiBfcGFyYW1zJHN0eWxlcztcbiAgICAgICAgcmV0dXJuIGRvbVZhcmlhbnRzKHtcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgY29udGVudDogY29udGVudFxuICAgICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY2FsbEhvb2tzKCdiZWZvcmVET01FbGVtZW50Q3JlYXRpb24nLCB7XG4gICAgICAgICAgICBjb250ZW50OiBjb250ZW50LFxuICAgICAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gbWFrZUxheWVyc1RleHRBYnN0cmFjdCh7XG4gICAgICAgICAgICBjb250ZW50OiBjb250ZW50LFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgbWVhbmluZ2xlc3NUcmFuc2Zvcm0pLCB0cmFuc2Zvcm0pLFxuICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlczogYXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgc3R5bGVzOiBzdHlsZXMsXG4gICAgICAgICAgICAgIGNsYXNzZXM6IFtcIlwiLmNvbmNhdChjb25maWcuY3NzUHJlZml4LCBcIi1sYXllcnMtdGV4dFwiKV0uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShjbGFzc2VzKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgcHJvdmlkZXM6IGZ1bmN0aW9uIHByb3ZpZGVzKHByb3ZpZGVycyQkMSkge1xuICAgIHByb3ZpZGVycyQkMS5nZW5lcmF0ZUxheWVyc1RleHQgPSBmdW5jdGlvbiAobm9kZSwgbm9kZU1ldGEpIHtcbiAgICAgIHZhciB0cmFuc2Zvcm0gPSBub2RlTWV0YS50cmFuc2Zvcm0sXG4gICAgICAgIGV4dHJhID0gbm9kZU1ldGEuZXh0cmE7XG4gICAgICB2YXIgd2lkdGggPSBudWxsO1xuICAgICAgdmFyIGhlaWdodCA9IG51bGw7XG4gICAgICBpZiAoSVNfSUUpIHtcbiAgICAgICAgdmFyIGNvbXB1dGVkRm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKG5vZGUpLmZvbnRTaXplLCAxMCk7XG4gICAgICAgIHZhciBib3VuZGluZ0NsaWVudFJlY3QgPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICB3aWR0aCA9IGJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aCAvIGNvbXB1dGVkRm9udFNpemU7XG4gICAgICAgIGhlaWdodCA9IGJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQgLyBjb21wdXRlZEZvbnRTaXplO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbbm9kZSwgbWFrZUxheWVyc1RleHRBYnN0cmFjdCh7XG4gICAgICAgIGNvbnRlbnQ6IG5vZGUuaW5uZXJIVE1MLFxuICAgICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zZm9ybSxcbiAgICAgICAgZXh0cmE6IGV4dHJhLFxuICAgICAgICB3YXRjaGFibGU6IHRydWVcbiAgICAgIH0pXSk7XG4gICAgfTtcbiAgfVxufTtcblxudmFyIENMRUFOX0NPTlRFTlRfUEFUVEVSTiA9IG5ldyBSZWdFeHAoXCJcXFwiXCIsICd1ZycpO1xudmFyIFNFQ09OREFSWV9VTklDT0RFX1JBTkdFID0gWzExMDU5MjAsIDExMTIzMTldO1xudmFyIF9GT05UX0ZBTUlMWV9XRUlHSFRfVE9fUFJFRklYID0gX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIHtcbiAgRm9udEF3ZXNvbWU6IHtcbiAgICBub3JtYWw6ICdmYXMnLFxuICAgIDQwMDogJ2ZhcydcbiAgfVxufSksIEN0KSwgcm8pLCBkbCk7XG52YXIgRk9OVF9GQU1JTFlfV0VJR0hUX1RPX1BSRUZJWCA9IE9iamVjdC5rZXlzKF9GT05UX0ZBTUlMWV9XRUlHSFRfVE9fUFJFRklYKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywga2V5KSB7XG4gIGFjY1trZXkudG9Mb3dlckNhc2UoKV0gPSBfRk9OVF9GQU1JTFlfV0VJR0hUX1RPX1BSRUZJWFtrZXldO1xuICByZXR1cm4gYWNjO1xufSwge30pO1xudmFyIEZPTlRfRkFNSUxZX1dFSUdIVF9GQUxMQkFDSyA9IE9iamVjdC5rZXlzKEZPTlRfRkFNSUxZX1dFSUdIVF9UT19QUkVGSVgpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBmb250RmFtaWx5KSB7XG4gIHZhciB3ZWlnaHRzID0gRk9OVF9GQU1JTFlfV0VJR0hUX1RPX1BSRUZJWFtmb250RmFtaWx5XTtcbiAgYWNjW2ZvbnRGYW1pbHldID0gd2VpZ2h0c1s5MDBdIHx8IF90b0NvbnN1bWFibGVBcnJheShPYmplY3QuZW50cmllcyh3ZWlnaHRzKSlbMF1bMV07XG4gIHJldHVybiBhY2M7XG59LCB7fSk7XG5cbi8vIFJldHVybiBoZXggdmFsdWUgb2YgKmZpcnN0KiBjaGFyYWN0ZXIgaW4gYGNvbnRlbnRgXG5mdW5jdGlvbiBoZXhWYWx1ZUZyb21Db250ZW50KGNvbnRlbnQpIHtcbiAgdmFyIGNsZWFuZWQgPSBjb250ZW50LnJlcGxhY2UoQ0xFQU5fQ09OVEVOVF9QQVRURVJOLCAnJyk7XG4gIHJldHVybiB0b0hleChfdG9Db25zdW1hYmxlQXJyYXkoY2xlYW5lZClbMF0gfHwgJycpO1xufVxuXG4vLyBDaGVjayBpZiBpdCdzIGEgc2Vjb25kYXJ5IER1b3RvbmUgbGF5ZXIsIGJ5IGNoZWNraW5nIGlmOlxuLy8gLSBVbmljb2RlIHZhbHVlIGluIGBjb250ZW50YCBpcyByZXBlYXRlZFxuLy8gLSBVbmljb2RlIHZhbHVlIGluIGBjb250ZW50YCBpcyBhYm92ZSAweDEwMDAwXG4vLyAtIFRoZSBcInNzMDFcIiBmb250IGZlYXR1cmUgaXMgZW5hYmxlZCBvbiB0aGUgYGNvbnRlbnRgXG5mdW5jdGlvbiBpc1NlY29uZGFyeUxheWVyKHN0eWxlcykge1xuICB2YXIgaGFzU3R5bGlzdGljU2V0ID0gc3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmVhdHVyZS1zZXR0aW5ncycpLmluY2x1ZGVzKCdzczAxJyk7XG4gIHZhciBjb250ZW50ID0gc3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2NvbnRlbnQnKTtcbiAgdmFyIGNsZWFuZWQgPSBjb250ZW50LnJlcGxhY2UoQ0xFQU5fQ09OVEVOVF9QQVRURVJOLCAnJyk7XG4gIHZhciBjb2RlUG9pbnQgPSBjbGVhbmVkLmNvZGVQb2ludEF0KDApO1xuICB2YXIgaXNQcmVwZW5kVGVuID0gY29kZVBvaW50ID49IFNFQ09OREFSWV9VTklDT0RFX1JBTkdFWzBdICYmIGNvZGVQb2ludCA8PSBTRUNPTkRBUllfVU5JQ09ERV9SQU5HRVsxXTtcbiAgdmFyIGlzRG91YmxlZCA9IGNsZWFuZWQubGVuZ3RoID09PSAyID8gY2xlYW5lZFswXSA9PT0gY2xlYW5lZFsxXSA6IGZhbHNlO1xuICByZXR1cm4gaXNQcmVwZW5kVGVuIHx8IGlzRG91YmxlZCB8fCBoYXNTdHlsaXN0aWNTZXQ7XG59XG5mdW5jdGlvbiBnZXRQcmVmaXgoZm9udEZhbWlseSwgZm9udFdlaWdodCkge1xuICB2YXIgZm9udEZhbWlseVNhbml0aXplZCA9IGZvbnRGYW1pbHkucmVwbGFjZSgvXlsnXCJdfFsnXCJdJC9nLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgdmFyIGZvbnRXZWlnaHRJbnRlZ2VyID0gcGFyc2VJbnQoZm9udFdlaWdodCk7XG4gIHZhciBmb250V2VpZ2h0U2FuaXRpemVkID0gaXNOYU4oZm9udFdlaWdodEludGVnZXIpID8gJ25vcm1hbCcgOiBmb250V2VpZ2h0SW50ZWdlcjtcbiAgcmV0dXJuIChGT05UX0ZBTUlMWV9XRUlHSFRfVE9fUFJFRklYW2ZvbnRGYW1pbHlTYW5pdGl6ZWRdIHx8IHt9KVtmb250V2VpZ2h0U2FuaXRpemVkXSB8fCBGT05UX0ZBTUlMWV9XRUlHSFRfRkFMTEJBQ0tbZm9udEZhbWlseVNhbml0aXplZF07XG59XG5mdW5jdGlvbiByZXBsYWNlRm9yUG9zaXRpb24obm9kZSwgcG9zaXRpb24pIHtcbiAgdmFyIHBlbmRpbmdBdHRyaWJ1dGUgPSBcIlwiLmNvbmNhdChEQVRBX0ZBX1BTRVVET19FTEVNRU5UX1BFTkRJTkcpLmNvbmNhdChwb3NpdGlvbi5yZXBsYWNlKCc6JywgJy0nKSk7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgaWYgKG5vZGUuZ2V0QXR0cmlidXRlKHBlbmRpbmdBdHRyaWJ1dGUpICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIG5vZGUgaXMgYWxyZWFkeSBiZWluZyBwcm9jZXNzZWRcbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfVxuICAgIHZhciBjaGlsZHJlbiA9IHRvQXJyYXkobm9kZS5jaGlsZHJlbik7XG4gICAgdmFyIGFscmVhZHlQcm9jZXNzZWRQc2V1ZG9FbGVtZW50ID0gY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uIChjJCQxKSB7XG4gICAgICByZXR1cm4gYyQkMS5nZXRBdHRyaWJ1dGUoREFUQV9GQV9QU0VVRE9fRUxFTUVOVCkgPT09IHBvc2l0aW9uO1xuICAgIH0pWzBdO1xuICAgIHZhciBzdHlsZXMgPSBXSU5ET1cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlLCBwb3NpdGlvbik7XG4gICAgdmFyIGZvbnRGYW1pbHkgPSBzdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1mYW1pbHknKTtcbiAgICB2YXIgZm9udEZhbWlseU1hdGNoID0gZm9udEZhbWlseS5tYXRjaChGT05UX0ZBTUlMWV9QQVRURVJOKTtcbiAgICB2YXIgZm9udFdlaWdodCA9IHN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LXdlaWdodCcpO1xuICAgIHZhciBjb250ZW50ID0gc3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2NvbnRlbnQnKTtcbiAgICBpZiAoYWxyZWFkeVByb2Nlc3NlZFBzZXVkb0VsZW1lbnQgJiYgIWZvbnRGYW1pbHlNYXRjaCkge1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBwcm9jZXNzZWQgaXQgYnV0IHRoZSBjdXJyZW50IGNvbXB1dGVkIHN0eWxlIGRvZXMgbm90IHJlc3VsdCBpbiBhIGZvbnQtZmFtaWx5LFxuICAgICAgLy8gdGhhdCBwcm9iYWJseSBtZWFucyB0aGF0IGEgY2xhc3MgbmFtZSB0aGF0IHdhcyBwcmV2aW91c2x5IHByZXNlbnQgdG8gbWFrZSB0aGUgaWNvbiBoYXMgYmVlblxuICAgICAgLy8gcmVtb3ZlZC4gU28gd2Ugbm93IHNob3VsZCBkZWxldGUgdGhlIGljb24uXG4gICAgICBub2RlLnJlbW92ZUNoaWxkKGFscmVhZHlQcm9jZXNzZWRQc2V1ZG9FbGVtZW50KTtcbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfSBlbHNlIGlmIChmb250RmFtaWx5TWF0Y2ggJiYgY29udGVudCAhPT0gJ25vbmUnICYmIGNvbnRlbnQgIT09ICcnKSB7XG4gICAgICB2YXIgX2NvbnRlbnQgPSBzdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgnY29udGVudCcpO1xuICAgICAgdmFyIHByZWZpeCA9IGdldFByZWZpeChmb250RmFtaWx5LCBmb250V2VpZ2h0KTtcbiAgICAgIHZhciBoZXhWYWx1ZSA9IGhleFZhbHVlRnJvbUNvbnRlbnQoX2NvbnRlbnQpO1xuICAgICAgdmFyIGlzVjQgPSBmb250RmFtaWx5TWF0Y2hbMF0uc3RhcnRzV2l0aCgnRm9udEF3ZXNvbWUnKTtcbiAgICAgIHZhciBpc1NlY29uZGFyeSA9IGlzU2Vjb25kYXJ5TGF5ZXIoc3R5bGVzKTtcbiAgICAgIHZhciBpY29uTmFtZSA9IGJ5VW5pY29kZShwcmVmaXgsIGhleFZhbHVlKTtcbiAgICAgIHZhciBpY29uSWRlbnRpZmllciA9IGljb25OYW1lO1xuICAgICAgaWYgKGlzVjQpIHtcbiAgICAgICAgdmFyIGljb25OYW1lNCA9IGJ5T2xkVW5pY29kZShoZXhWYWx1ZSk7XG4gICAgICAgIGlmIChpY29uTmFtZTQuaWNvbk5hbWUgJiYgaWNvbk5hbWU0LnByZWZpeCkge1xuICAgICAgICAgIGljb25OYW1lID0gaWNvbk5hbWU0Lmljb25OYW1lO1xuICAgICAgICAgIHByZWZpeCA9IGljb25OYW1lNC5wcmVmaXg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT25seSBjb252ZXJ0IHRoZSBwc2V1ZG8gZWxlbWVudCBpbiB0aGlzIDo6YmVmb3JlLzo6YWZ0ZXIgcG9zaXRpb24gaW50byBhbiBpY29uIGlmIHdlIGhhdmVuJ3RcbiAgICAgIC8vIGFscmVhZHkgZG9uZSBzbyB3aXRoIHRoZSBzYW1lIHByZWZpeCBhbmQgaWNvbk5hbWVcbiAgICAgIGlmIChpY29uTmFtZSAmJiAhaXNTZWNvbmRhcnkgJiYgKCFhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudCB8fCBhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudC5nZXRBdHRyaWJ1dGUoREFUQV9QUkVGSVgpICE9PSBwcmVmaXggfHwgYWxyZWFkeVByb2Nlc3NlZFBzZXVkb0VsZW1lbnQuZ2V0QXR0cmlidXRlKERBVEFfSUNPTikgIT09IGljb25JZGVudGlmaWVyKSkge1xuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShwZW5kaW5nQXR0cmlidXRlLCBpY29uSWRlbnRpZmllcik7XG4gICAgICAgIGlmIChhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudCkge1xuICAgICAgICAgIC8vIERlbGV0ZSB0aGUgb2xkIG9uZSwgc2luY2Ugd2UncmUgcmVwbGFjaW5nIGl0IHdpdGggYSBuZXcgb25lXG4gICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZChhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1ldGEgPSBibGFua01ldGEoKTtcbiAgICAgICAgdmFyIGV4dHJhID0gbWV0YS5leHRyYTtcbiAgICAgICAgZXh0cmEuYXR0cmlidXRlc1tEQVRBX0ZBX1BTRVVET19FTEVNRU5UXSA9IHBvc2l0aW9uO1xuICAgICAgICBmaW5kSWNvbihpY29uTmFtZSwgcHJlZml4KS50aGVuKGZ1bmN0aW9uIChtYWluKSB7XG4gICAgICAgICAgdmFyIGFic3RyYWN0ID0gbWFrZUlubGluZVN2Z0Fic3RyYWN0KF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBtZXRhKSwge30sIHtcbiAgICAgICAgICAgIGljb25zOiB7XG4gICAgICAgICAgICAgIG1haW46IG1haW4sXG4gICAgICAgICAgICAgIG1hc2s6IGVtcHR5Q2Fub25pY2FsSWNvbigpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJlZml4OiBwcmVmaXgsXG4gICAgICAgICAgICBpY29uTmFtZTogaWNvbklkZW50aWZpZXIsXG4gICAgICAgICAgICBleHRyYTogZXh0cmEsXG4gICAgICAgICAgICB3YXRjaGFibGU6IHRydWVcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgdmFyIGVsZW1lbnQgPSBET0NVTUVOVC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ3N2ZycpO1xuICAgICAgICAgIGlmIChwb3NpdGlvbiA9PT0gJzo6YmVmb3JlJykge1xuICAgICAgICAgICAgbm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudCwgbm9kZS5maXJzdENoaWxkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxlbWVudC5vdXRlckhUTUwgPSBhYnN0cmFjdC5tYXAoZnVuY3Rpb24gKGEkJDEpIHtcbiAgICAgICAgICAgIHJldHVybiB0b0h0bWwoYSQkMSk7XG4gICAgICAgICAgfSkuam9pbignXFxuJyk7XG4gICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUocGVuZGluZ0F0dHJpYnV0ZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KS5jYXRjaChyZWplY3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfVxuICB9KTtcbn1cbmZ1bmN0aW9uIHJlcGxhY2Uobm9kZSkge1xuICByZXR1cm4gUHJvbWlzZS5hbGwoW3JlcGxhY2VGb3JQb3NpdGlvbihub2RlLCAnOjpiZWZvcmUnKSwgcmVwbGFjZUZvclBvc2l0aW9uKG5vZGUsICc6OmFmdGVyJyldKTtcbn1cbmZ1bmN0aW9uIHByb2Nlc3NhYmxlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZSAhPT0gZG9jdW1lbnQuaGVhZCAmJiAhflRBR05BTUVTX1RPX1NLSVBfRk9SX1BTRVVET0VMRU1FTlRTLmluZGV4T2Yobm9kZS50YWdOYW1lLnRvVXBwZXJDYXNlKCkpICYmICFub2RlLmdldEF0dHJpYnV0ZShEQVRBX0ZBX1BTRVVET19FTEVNRU5UKSAmJiAoIW5vZGUucGFyZW50Tm9kZSB8fCBub2RlLnBhcmVudE5vZGUudGFnTmFtZSAhPT0gJ3N2ZycpO1xufVxudmFyIGhhc1BzZXVkb0VsZW1lbnQgPSBmdW5jdGlvbiBoYXNQc2V1ZG9FbGVtZW50KHNlbGVjdG9yKSB7XG4gIHJldHVybiAhIXNlbGVjdG9yICYmIFBTRVVET19FTEVNRU5UUy5zb21lKGZ1bmN0aW9uIChwc2V1ZG9TZWxlY3Rvcikge1xuICAgIHJldHVybiBzZWxlY3Rvci5pbmNsdWRlcyhwc2V1ZG9TZWxlY3Rvcik7XG4gIH0pO1xufTtcblxuLy8gUmV0dXJuIHNlbGVjdG9ycyBmcm9tIGFsbCBhdmFpbGFibGUgc3R5bGVzaGVldHMgdGhhdCBoYXZlXG4vLyBwc2V1ZG8tZWxlbWVudHMgZGVmaW5lZC5cbnZhciBwYXJzZUNTU1J1bGVGb3JQc2V1ZG9zID0gZnVuY3Rpb24gcGFyc2VDU1NSdWxlRm9yUHNldWRvcyhzZWxlY3RvclRleHQpIHtcbiAgaWYgKCFzZWxlY3RvclRleHQpIHJldHVybiBbXTtcbiAgdmFyIHNlbGVjdG9yU2V0ID0gbmV3IFNldCgpO1xuICB2YXIgc2VsZWN0b3JzID0gc2VsZWN0b3JUZXh0LnNwbGl0KC8sKD8hW14oKV0qXFwpKS8pLm1hcChmdW5jdGlvbiAocyQkMSkge1xuICAgIHJldHVybiBzJCQxLnRyaW0oKTtcbiAgfSk7XG4gIHNlbGVjdG9ycyA9IHNlbGVjdG9ycy5mbGF0TWFwKGZ1bmN0aW9uIChzZWxlY3Rvcikge1xuICAgIHJldHVybiBzZWxlY3Rvci5pbmNsdWRlcygnKCcpID8gc2VsZWN0b3IgOiBzZWxlY3Rvci5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAocyQkMSkge1xuICAgICAgcmV0dXJuIHMkJDEudHJpbSgpO1xuICAgIH0pO1xuICB9KTtcbiAgdmFyIF9pdGVyYXRvciA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyKHNlbGVjdG9ycyksXG4gICAgX3N0ZXA7XG4gIHRyeSB7XG4gICAgZm9yIChfaXRlcmF0b3IucygpOyAhKF9zdGVwID0gX2l0ZXJhdG9yLm4oKSkuZG9uZTspIHtcbiAgICAgIHZhciBzZWxlY3RvciA9IF9zdGVwLnZhbHVlO1xuICAgICAgaWYgKGhhc1BzZXVkb0VsZW1lbnQoc2VsZWN0b3IpKSB7XG4gICAgICAgIC8vIFJlbW92ZSBwc2V1ZG8tZWxlbWVudHMgZnJvbSB0aGUgc2VsZWN0b3JcbiAgICAgICAgdmFyIHNlbGVjdG9yV2l0aG91dFBzZXVkbyA9IFBTRVVET19FTEVNRU5UUy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcHNldWRvU2VsZWN0b3IpIHtcbiAgICAgICAgICByZXR1cm4gYWNjLnJlcGxhY2UocHNldWRvU2VsZWN0b3IsICcnKTtcbiAgICAgICAgfSwgc2VsZWN0b3IpO1xuICAgICAgICBpZiAoc2VsZWN0b3JXaXRob3V0UHNldWRvICE9PSAnJyAmJiBzZWxlY3RvcldpdGhvdXRQc2V1ZG8gIT09ICcqJykge1xuICAgICAgICAgIHNlbGVjdG9yU2V0LmFkZChzZWxlY3RvcldpdGhvdXRQc2V1ZG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBfaXRlcmF0b3IuZShlcnIpO1xuICB9IGZpbmFsbHkge1xuICAgIF9pdGVyYXRvci5mKCk7XG4gIH1cbiAgcmV0dXJuIHNlbGVjdG9yU2V0O1xufTtcbmZ1bmN0aW9uIHNlYXJjaFBzZXVkb0VsZW1lbnRzKHJvb3QpIHtcbiAgdmFyIHVzZUFzTm9kZUxpc3QgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IGZhbHNlO1xuICBpZiAoIUlTX0RPTSkgcmV0dXJuO1xuICB2YXIgbm9kZUxpc3Q7XG4gIGlmICh1c2VBc05vZGVMaXN0KSB7XG4gICAgbm9kZUxpc3QgPSByb290O1xuICB9IGVsc2UgaWYgKGNvbmZpZy5zZWFyY2hQc2V1ZG9FbGVtZW50c0Z1bGxTY2FuKSB7XG4gICAgbm9kZUxpc3QgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJyonKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBHZXQgZWxlbWVudHMgdGhhdCBoYXZlIHBzZXVkbyBlbGVtZW50cyBkZWZpbmVkIGluIHRoZSBDU1NcbiAgICB2YXIgc2VsZWN0b3JTZXQgPSBuZXcgU2V0KCk7XG4gICAgdmFyIF9pdGVyYXRvcjIgPSBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlcihkb2N1bWVudC5zdHlsZVNoZWV0cyksXG4gICAgICBfc3RlcDI7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoX2l0ZXJhdG9yMi5zKCk7ICEoX3N0ZXAyID0gX2l0ZXJhdG9yMi5uKCkpLmRvbmU7KSB7XG4gICAgICAgIHZhciBzdHlsZXNoZWV0ID0gX3N0ZXAyLnZhbHVlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciBfaXRlcmF0b3IzID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIoc3R5bGVzaGVldC5jc3NSdWxlcyksXG4gICAgICAgICAgICBfc3RlcDM7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGZvciAoX2l0ZXJhdG9yMy5zKCk7ICEoX3N0ZXAzID0gX2l0ZXJhdG9yMy5uKCkpLmRvbmU7KSB7XG4gICAgICAgICAgICAgIHZhciBydWxlID0gX3N0ZXAzLnZhbHVlO1xuICAgICAgICAgICAgICB2YXIgcGFyc2VkU2VsZWN0b3JzID0gcGFyc2VDU1NSdWxlRm9yUHNldWRvcyhydWxlLnNlbGVjdG9yVGV4dCk7XG4gICAgICAgICAgICAgIHZhciBfaXRlcmF0b3I0ID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIocGFyc2VkU2VsZWN0b3JzKSxcbiAgICAgICAgICAgICAgICBfc3RlcDQ7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZm9yIChfaXRlcmF0b3I0LnMoKTsgIShfc3RlcDQgPSBfaXRlcmF0b3I0Lm4oKSkuZG9uZTspIHtcbiAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RvciA9IF9zdGVwNC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgIHNlbGVjdG9yU2V0LmFkZChzZWxlY3Rvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICBfaXRlcmF0b3I0LmUoZXJyKTtcbiAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBfaXRlcmF0b3I0LmYoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgX2l0ZXJhdG9yMy5lKGVycik7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIF9pdGVyYXRvcjMuZigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSQkMSkge1xuICAgICAgICAgIGlmIChjb25maWcuc2VhcmNoUHNldWRvRWxlbWVudHNXYXJuaW5ncykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiRm9udCBBd2Vzb21lOiBjYW5ub3QgcGFyc2Ugc3R5bGVzaGVldDogXCIuY29uY2F0KHN0eWxlc2hlZXQuaHJlZiwgXCIgKFwiKS5jb25jYXQoZSQkMS5tZXNzYWdlLCBcIilcXG5JZiBpdCBkZWNsYXJlcyBhbnkgRm9udCBBd2Vzb21lIENTUyBwc2V1ZG8tZWxlbWVudHMsIHRoZXkgd2lsbCBub3QgYmUgcmVuZGVyZWQgYXMgU1ZHIGljb25zLiBBZGQgY3Jvc3NvcmlnaW49XFxcImFub255bW91c1xcXCIgdG8gdGhlIDxsaW5rPiwgZW5hYmxlIHNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW4gZm9yIHNsb3dlciBidXQgbW9yZSB0aG9yb3VnaCBET00gcGFyc2luZywgb3Igc3VwcHJlc3MgdGhpcyB3YXJuaW5nIGJ5IHNldHRpbmcgc2VhcmNoUHNldWRvRWxlbWVudHNXYXJuaW5ncyB0byBmYWxzZS5cIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgX2l0ZXJhdG9yMi5lKGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIF9pdGVyYXRvcjIuZigpO1xuICAgIH1cbiAgICBpZiAoIXNlbGVjdG9yU2V0LnNpemUpIHJldHVybjtcbiAgICB2YXIgY2xlYW5TZWxlY3RvcnMgPSBBcnJheS5mcm9tKHNlbGVjdG9yU2V0KS5qb2luKCcsICcpO1xuICAgIHRyeSB7XG4gICAgICBub2RlTGlzdCA9IHJvb3QucXVlcnlTZWxlY3RvckFsbChjbGVhblNlbGVjdG9ycyk7XG4gICAgfSBjYXRjaCAoX3VudXNlZCkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1lbXB0eVxuICB9XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdmFyIG9wZXJhdGlvbnMgPSB0b0FycmF5KG5vZGVMaXN0KS5maWx0ZXIocHJvY2Vzc2FibGUpLm1hcChyZXBsYWNlKTtcbiAgICB2YXIgZW5kID0gcGVyZi5iZWdpbignc2VhcmNoUHNldWRvRWxlbWVudHMnKTtcbiAgICBkaXNhYmxlT2JzZXJ2YXRpb24oKTtcbiAgICBQcm9taXNlLmFsbChvcGVyYXRpb25zKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIGVuZCgpO1xuICAgICAgZW5hYmxlT2JzZXJ2YXRpb24oKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICBlbmQoKTtcbiAgICAgIGVuYWJsZU9ic2VydmF0aW9uKCk7XG4gICAgICByZWplY3QoKTtcbiAgICB9KTtcbiAgfSk7XG59XG52YXIgUHNldWRvRWxlbWVudHMgPSB7XG4gIGhvb2tzOiBmdW5jdGlvbiBob29rcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbXV0YXRpb25PYnNlcnZlckNhbGxiYWNrczogZnVuY3Rpb24gbXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyhhY2N1bXVsYXRvcikge1xuICAgICAgICBhY2N1bXVsYXRvci5wc2V1ZG9FbGVtZW50c0NhbGxiYWNrID0gc2VhcmNoUHNldWRvRWxlbWVudHM7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBwcm92aWRlczogZnVuY3Rpb24gcHJvdmlkZXMocHJvdmlkZXJzKSB7XG4gICAgcHJvdmlkZXJzLnBzZXVkb0VsZW1lbnRzMnN2ZyA9IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgIHZhciBfcGFyYW1zJG5vZGUgPSBwYXJhbXMubm9kZSxcbiAgICAgICAgbm9kZSA9IF9wYXJhbXMkbm9kZSA9PT0gdm9pZCAwID8gRE9DVU1FTlQgOiBfcGFyYW1zJG5vZGU7XG4gICAgICBpZiAoY29uZmlnLnNlYXJjaFBzZXVkb0VsZW1lbnRzKSB7XG4gICAgICAgIHNlYXJjaFBzZXVkb0VsZW1lbnRzKG5vZGUpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn07XG5cbnZhciBfdW53YXRjaGVkID0gZmFsc2U7XG52YXIgTXV0YXRpb25PYnNlcnZlciQxID0ge1xuICBtaXhvdXQ6IGZ1bmN0aW9uIG1peG91dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZG9tOiB7XG4gICAgICAgIHVud2F0Y2g6IGZ1bmN0aW9uIHVud2F0Y2goKSB7XG4gICAgICAgICAgZGlzYWJsZU9ic2VydmF0aW9uKCk7XG4gICAgICAgICAgX3Vud2F0Y2hlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBob29rczogZnVuY3Rpb24gaG9va3MoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvb3RzdHJhcDogZnVuY3Rpb24gYm9vdHN0cmFwKCkge1xuICAgICAgICBvYnNlcnZlKGNoYWluSG9va3MoJ211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MnLCB7fSkpO1xuICAgICAgfSxcbiAgICAgIG5vQXV0bzogZnVuY3Rpb24gbm9BdXRvKCkge1xuICAgICAgICBkaXNjb25uZWN0KCk7XG4gICAgICB9LFxuICAgICAgd2F0Y2g6IGZ1bmN0aW9uIHdhdGNoKHBhcmFtcykge1xuICAgICAgICB2YXIgb2JzZXJ2ZU11dGF0aW9uc1Jvb3QgPSBwYXJhbXMub2JzZXJ2ZU11dGF0aW9uc1Jvb3Q7XG4gICAgICAgIGlmIChfdW53YXRjaGVkKSB7XG4gICAgICAgICAgZW5hYmxlT2JzZXJ2YXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYnNlcnZlKGNoYWluSG9va3MoJ211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MnLCB7XG4gICAgICAgICAgICBvYnNlcnZlTXV0YXRpb25zUm9vdDogb2JzZXJ2ZU11dGF0aW9uc1Jvb3RcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG59O1xuXG52YXIgcGFyc2VUcmFuc2Zvcm1TdHJpbmcgPSBmdW5jdGlvbiBwYXJzZVRyYW5zZm9ybVN0cmluZyh0cmFuc2Zvcm1TdHJpbmcpIHtcbiAgdmFyIHRyYW5zZm9ybSA9IHtcbiAgICBzaXplOiAxNixcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgZmxpcFg6IGZhbHNlLFxuICAgIGZsaXBZOiBmYWxzZSxcbiAgICByb3RhdGU6IDBcbiAgfTtcbiAgcmV0dXJuIHRyYW5zZm9ybVN0cmluZy50b0xvd2VyQ2FzZSgpLnNwbGl0KCcgJykucmVkdWNlKGZ1bmN0aW9uIChhY2MsIG4pIHtcbiAgICB2YXIgcGFydHMgPSBuLnRvTG93ZXJDYXNlKCkuc3BsaXQoJy0nKTtcbiAgICB2YXIgZmlyc3QgPSBwYXJ0c1swXTtcbiAgICB2YXIgcmVzdCA9IHBhcnRzLnNsaWNlKDEpLmpvaW4oJy0nKTtcbiAgICBpZiAoZmlyc3QgJiYgcmVzdCA9PT0gJ2gnKSB7XG4gICAgICBhY2MuZmxpcFggPSB0cnVlO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9XG4gICAgaWYgKGZpcnN0ICYmIHJlc3QgPT09ICd2Jykge1xuICAgICAgYWNjLmZsaXBZID0gdHJ1ZTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfVxuICAgIHJlc3QgPSBwYXJzZUZsb2F0KHJlc3QpO1xuICAgIGlmIChpc05hTihyZXN0KSkge1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9XG4gICAgc3dpdGNoIChmaXJzdCkge1xuICAgICAgY2FzZSAnZ3Jvdyc6XG4gICAgICAgIGFjYy5zaXplID0gYWNjLnNpemUgKyByZXN0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Nocmluayc6XG4gICAgICAgIGFjYy5zaXplID0gYWNjLnNpemUgLSByZXN0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBhY2MueCA9IGFjYy54IC0gcmVzdDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGFjYy54ID0gYWNjLnggKyByZXN0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VwJzpcbiAgICAgICAgYWNjLnkgPSBhY2MueSAtIHJlc3Q7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG93bic6XG4gICAgICAgIGFjYy55ID0gYWNjLnkgKyByZXN0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JvdGF0ZSc6XG4gICAgICAgIGFjYy5yb3RhdGUgPSBhY2Mucm90YXRlICsgcmVzdDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIHRyYW5zZm9ybSk7XG59O1xudmFyIFBvd2VyVHJhbnNmb3JtcyA9IHtcbiAgbWl4b3V0OiBmdW5jdGlvbiBtaXhvdXQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcnNlOiB7XG4gICAgICAgIHRyYW5zZm9ybTogZnVuY3Rpb24gdHJhbnNmb3JtKHRyYW5zZm9ybVN0cmluZykge1xuICAgICAgICAgIHJldHVybiBwYXJzZVRyYW5zZm9ybVN0cmluZyh0cmFuc2Zvcm1TdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgaG9va3M6IGZ1bmN0aW9uIGhvb2tzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXJzZU5vZGVBdHRyaWJ1dGVzOiBmdW5jdGlvbiBwYXJzZU5vZGVBdHRyaWJ1dGVzKGFjY3VtdWxhdG9yLCBub2RlKSB7XG4gICAgICAgIHZhciB0cmFuc2Zvcm1TdHJpbmcgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1mYS10cmFuc2Zvcm0nKTtcbiAgICAgICAgaWYgKHRyYW5zZm9ybVN0cmluZykge1xuICAgICAgICAgIGFjY3VtdWxhdG9yLnRyYW5zZm9ybSA9IHBhcnNlVHJhbnNmb3JtU3RyaW5nKHRyYW5zZm9ybVN0cmluZyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIHByb3ZpZGVzOiBmdW5jdGlvbiBwcm92aWRlcyhwcm92aWRlcnMpIHtcbiAgICBwcm92aWRlcnMuZ2VuZXJhdGVBYnN0cmFjdFRyYW5zZm9ybUdyb3VwaW5nID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBtYWluID0gX3JlZi5tYWluLFxuICAgICAgICB0cmFuc2Zvcm0gPSBfcmVmLnRyYW5zZm9ybSxcbiAgICAgICAgY29udGFpbmVyV2lkdGggPSBfcmVmLmNvbnRhaW5lcldpZHRoLFxuICAgICAgICBpY29uV2lkdGggPSBfcmVmLmljb25XaWR0aDtcbiAgICAgIHZhciBvdXRlciA9IHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIi5jb25jYXQoY29udGFpbmVyV2lkdGggLyAyLCBcIiAyNTYpXCIpXG4gICAgICB9O1xuICAgICAgdmFyIGlubmVyVHJhbnNsYXRlID0gXCJ0cmFuc2xhdGUoXCIuY29uY2F0KHRyYW5zZm9ybS54ICogMzIsIFwiLCBcIikuY29uY2F0KHRyYW5zZm9ybS55ICogMzIsIFwiKSBcIik7XG4gICAgICB2YXIgaW5uZXJTY2FsZSA9IFwic2NhbGUoXCIuY29uY2F0KHRyYW5zZm9ybS5zaXplIC8gMTYgKiAodHJhbnNmb3JtLmZsaXBYID8gLTEgOiAxKSwgXCIsIFwiKS5jb25jYXQodHJhbnNmb3JtLnNpemUgLyAxNiAqICh0cmFuc2Zvcm0uZmxpcFkgPyAtMSA6IDEpLCBcIikgXCIpO1xuICAgICAgdmFyIGlubmVyUm90YXRlID0gXCJyb3RhdGUoXCIuY29uY2F0KHRyYW5zZm9ybS5yb3RhdGUsIFwiIDAgMClcIik7XG4gICAgICB2YXIgaW5uZXIgPSB7XG4gICAgICAgIHRyYW5zZm9ybTogXCJcIi5jb25jYXQoaW5uZXJUcmFuc2xhdGUsIFwiIFwiKS5jb25jYXQoaW5uZXJTY2FsZSwgXCIgXCIpLmNvbmNhdChpbm5lclJvdGF0ZSlcbiAgICAgIH07XG4gICAgICB2YXIgcGF0aCA9IHtcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIi5jb25jYXQoaWNvbldpZHRoIC8gMiAqIC0xLCBcIiAtMjU2KVwiKVxuICAgICAgfTtcbiAgICAgIHZhciBvcGVyYXRpb25zID0ge1xuICAgICAgICBvdXRlcjogb3V0ZXIsXG4gICAgICAgIGlubmVyOiBpbm5lcixcbiAgICAgICAgcGF0aDogcGF0aFxuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRhZzogJ2cnLFxuICAgICAgICBhdHRyaWJ1dGVzOiBfb2JqZWN0U3ByZWFkMih7fSwgb3BlcmF0aW9ucy5vdXRlciksXG4gICAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICAgIHRhZzogJ2cnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQyKHt9LCBvcGVyYXRpb25zLmlubmVyKSxcbiAgICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICAgIHRhZzogbWFpbi5pY29uLnRhZyxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBtYWluLmljb24uY2hpbGRyZW4sXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgbWFpbi5pY29uLmF0dHJpYnV0ZXMpLCBvcGVyYXRpb25zLnBhdGgpXG4gICAgICAgICAgfV1cbiAgICAgICAgfV1cbiAgICAgIH07XG4gICAgfTtcbiAgfVxufTtcblxudmFyIEFMTF9TUEFDRSA9IHtcbiAgeDogMCxcbiAgeTogMCxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgaGVpZ2h0OiAnMTAwJSdcbn07XG5mdW5jdGlvbiBmaWxsQmxhY2soYWJzdHJhY3QpIHtcbiAgdmFyIGZvcmNlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB0cnVlO1xuICBpZiAoYWJzdHJhY3QuYXR0cmlidXRlcyAmJiAoYWJzdHJhY3QuYXR0cmlidXRlcy5maWxsIHx8IGZvcmNlKSkge1xuICAgIGFic3RyYWN0LmF0dHJpYnV0ZXMuZmlsbCA9ICdibGFjayc7XG4gIH1cbiAgcmV0dXJuIGFic3RyYWN0O1xufVxuZnVuY3Rpb24gZGVHcm91cChhYnN0cmFjdCkge1xuICBpZiAoYWJzdHJhY3QudGFnID09PSAnZycpIHtcbiAgICByZXR1cm4gYWJzdHJhY3QuY2hpbGRyZW47XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFthYnN0cmFjdF07XG4gIH1cbn1cbnZhciBNYXNrcyA9IHtcbiAgaG9va3M6IGZ1bmN0aW9uIGhvb2tzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXJzZU5vZGVBdHRyaWJ1dGVzOiBmdW5jdGlvbiBwYXJzZU5vZGVBdHRyaWJ1dGVzKGFjY3VtdWxhdG9yLCBub2RlKSB7XG4gICAgICAgIHZhciBtYXNrRGF0YSA9IG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLWZhLW1hc2snKTtcbiAgICAgICAgdmFyIG1hc2sgPSAhbWFza0RhdGEgPyBlbXB0eUNhbm9uaWNhbEljb24oKSA6IGdldENhbm9uaWNhbEljb24obWFza0RhdGEuc3BsaXQoJyAnKS5tYXAoZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICByZXR1cm4gaS50cmltKCk7XG4gICAgICAgIH0pKTtcbiAgICAgICAgaWYgKCFtYXNrLnByZWZpeCkge1xuICAgICAgICAgIG1hc2sucHJlZml4ID0gZ2V0RGVmYXVsdFVzYWJsZVByZWZpeCgpO1xuICAgICAgICB9XG4gICAgICAgIGFjY3VtdWxhdG9yLm1hc2sgPSBtYXNrO1xuICAgICAgICBhY2N1bXVsYXRvci5tYXNrSWQgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1mYS1tYXNrLWlkJyk7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBwcm92aWRlczogZnVuY3Rpb24gcHJvdmlkZXMocHJvdmlkZXJzKSB7XG4gICAgcHJvdmlkZXJzLmdlbmVyYXRlQWJzdHJhY3RNYXNrID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgICAgIGF0dHJpYnV0ZXMgPSBfcmVmLmF0dHJpYnV0ZXMsXG4gICAgICAgIG1haW4gPSBfcmVmLm1haW4sXG4gICAgICAgIG1hc2sgPSBfcmVmLm1hc2ssXG4gICAgICAgIGV4cGxpY2l0TWFza0lkID0gX3JlZi5tYXNrSWQsXG4gICAgICAgIHRyYW5zZm9ybSA9IF9yZWYudHJhbnNmb3JtO1xuICAgICAgdmFyIG1haW5XaWR0aCA9IG1haW4ud2lkdGgsXG4gICAgICAgIG1haW5QYXRoID0gbWFpbi5pY29uO1xuICAgICAgdmFyIG1hc2tXaWR0aCA9IG1hc2sud2lkdGgsXG4gICAgICAgIG1hc2tQYXRoID0gbWFzay5pY29uO1xuICAgICAgdmFyIHRyYW5zID0gdHJhbnNmb3JtRm9yU3ZnKHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2Zvcm0sXG4gICAgICAgIGNvbnRhaW5lcldpZHRoOiBtYXNrV2lkdGgsXG4gICAgICAgIGljb25XaWR0aDogbWFpbldpZHRoXG4gICAgICB9KTtcbiAgICAgIHZhciBtYXNrUmVjdCA9IHtcbiAgICAgICAgdGFnOiAncmVjdCcsXG4gICAgICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBBTExfU1BBQ0UpLCB7fSwge1xuICAgICAgICAgIGZpbGw6ICd3aGl0ZSdcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgICB2YXIgbWFza0lubmVyR3JvdXBDaGlsZHJlbk1peGluID0gbWFpblBhdGguY2hpbGRyZW4gPyB7XG4gICAgICAgIGNoaWxkcmVuOiBtYWluUGF0aC5jaGlsZHJlbi5tYXAoZmlsbEJsYWNrKVxuICAgICAgfSA6IHt9O1xuICAgICAgdmFyIG1hc2tJbm5lckdyb3VwID0ge1xuICAgICAgICB0YWc6ICdnJyxcbiAgICAgICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZDIoe30sIHRyYW5zLmlubmVyKSxcbiAgICAgICAgY2hpbGRyZW46IFtmaWxsQmxhY2soX29iamVjdFNwcmVhZDIoe1xuICAgICAgICAgIHRhZzogbWFpblBhdGgudGFnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBtYWluUGF0aC5hdHRyaWJ1dGVzKSwgdHJhbnMucGF0aClcbiAgICAgICAgfSwgbWFza0lubmVyR3JvdXBDaGlsZHJlbk1peGluKSldXG4gICAgICB9O1xuICAgICAgdmFyIG1hc2tPdXRlckdyb3VwID0ge1xuICAgICAgICB0YWc6ICdnJyxcbiAgICAgICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZDIoe30sIHRyYW5zLm91dGVyKSxcbiAgICAgICAgY2hpbGRyZW46IFttYXNrSW5uZXJHcm91cF1cbiAgICAgIH07XG4gICAgICB2YXIgbWFza0lkID0gXCJtYXNrLVwiLmNvbmNhdChleHBsaWNpdE1hc2tJZCB8fCBuZXh0VW5pcXVlSWQoKSk7XG4gICAgICB2YXIgY2xpcElkID0gXCJjbGlwLVwiLmNvbmNhdChleHBsaWNpdE1hc2tJZCB8fCBuZXh0VW5pcXVlSWQoKSk7XG4gICAgICB2YXIgbWFza1RhZyA9IHtcbiAgICAgICAgdGFnOiAnbWFzaycsXG4gICAgICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBBTExfU1BBQ0UpLCB7fSwge1xuICAgICAgICAgIGlkOiBtYXNrSWQsXG4gICAgICAgICAgbWFza1VuaXRzOiAndXNlclNwYWNlT25Vc2UnLFxuICAgICAgICAgIG1hc2tDb250ZW50VW5pdHM6ICd1c2VyU3BhY2VPblVzZSdcbiAgICAgICAgfSksXG4gICAgICAgIGNoaWxkcmVuOiBbbWFza1JlY3QsIG1hc2tPdXRlckdyb3VwXVxuICAgICAgfTtcbiAgICAgIHZhciBkZWZzID0ge1xuICAgICAgICB0YWc6ICdkZWZzJyxcbiAgICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgICAgdGFnOiAnY2xpcFBhdGgnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgIGlkOiBjbGlwSWRcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNoaWxkcmVuOiBkZUdyb3VwKG1hc2tQYXRoKVxuICAgICAgICB9LCBtYXNrVGFnXVxuICAgICAgfTtcbiAgICAgIGNoaWxkcmVuLnB1c2goZGVmcywge1xuICAgICAgICB0YWc6ICdyZWN0JyxcbiAgICAgICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZDIoe1xuICAgICAgICAgICdmaWxsJzogJ2N1cnJlbnRDb2xvcicsXG4gICAgICAgICAgJ2NsaXAtcGF0aCc6IFwidXJsKCNcIi5jb25jYXQoY2xpcElkLCBcIilcIiksXG4gICAgICAgICAgJ21hc2snOiBcInVybCgjXCIuY29uY2F0KG1hc2tJZCwgXCIpXCIpXG4gICAgICAgIH0sIEFMTF9TUEFDRSlcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxuICAgICAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzXG4gICAgICB9O1xuICAgIH07XG4gIH1cbn07XG5cbnZhciBNaXNzaW5nSWNvbkluZGljYXRvciA9IHtcbiAgcHJvdmlkZXM6IGZ1bmN0aW9uIHByb3ZpZGVzKHByb3ZpZGVycykge1xuICAgIHZhciByZWR1Y2VNb3Rpb24gPSBmYWxzZTtcbiAgICBpZiAoV0lORE9XLm1hdGNoTWVkaWEpIHtcbiAgICAgIHJlZHVjZU1vdGlvbiA9IFdJTkRPVy5tYXRjaE1lZGlhKCcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScpLm1hdGNoZXM7XG4gICAgfVxuICAgIHByb3ZpZGVycy5taXNzaW5nSWNvbkFic3RyYWN0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGdDaGlsZHJlbiA9IFtdO1xuICAgICAgdmFyIEZJTEwgPSB7XG4gICAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InXG4gICAgICB9O1xuICAgICAgdmFyIEFOSU1BVElPTl9CQVNFID0ge1xuICAgICAgICBhdHRyaWJ1dGVUeXBlOiAnWE1MJyxcbiAgICAgICAgcmVwZWF0Q291bnQ6ICdpbmRlZmluaXRlJyxcbiAgICAgICAgZHVyOiAnMnMnXG4gICAgICB9O1xuXG4gICAgICAvLyBSaW5nXG4gICAgICBnQ2hpbGRyZW4ucHVzaCh7XG4gICAgICAgIHRhZzogJ3BhdGgnLFxuICAgICAgICBhdHRyaWJ1dGVzOiBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgRklMTCksIHt9LCB7XG4gICAgICAgICAgZDogJ00xNTYuNSw0NDcuN2wtMTIuNiwyOS41Yy0xOC43LTkuNS0zNS45LTIxLjItNTEuNS0zNC45bDIyLjctMjIuN0MxMjcuNiw0MzAuNSwxNDEuNSw0NDAsMTU2LjUsNDQ3Ljd6IE00MC42LDI3Mkg4LjUgYzEuNCwyMS4yLDUuNCw0MS43LDExLjcsNjEuMUw1MCwzMjEuMkM0NS4xLDMwNS41LDQxLjgsMjg5LDQwLjYsMjcyeiBNNDAuNiwyNDBjMS40LTE4LjgsNS4yLTM3LDExLjEtNTQuMWwtMjkuNS0xMi42IEMxNC43LDE5NC4zLDEwLDIxNi43LDguNSwyNDBINDAuNnogTTY0LjMsMTU2LjVjNy44LTE0LjksMTcuMi0yOC44LDI4LjEtNDEuNUw2OS43LDkyLjNjLTEzLjcsMTUuNi0yNS41LDMyLjgtMzQuOSw1MS41IEw2NC4zLDE1Ni41eiBNMzk3LDQxOS42Yy0xMy45LDEyLTI5LjQsMjIuMy00Ni4xLDMwLjRsMTEuOSwyOS44YzIwLjctOS45LDM5LjgtMjIuNiw1Ni45LTM3LjZMMzk3LDQxOS42eiBNMTE1LDkyLjQgYzEzLjktMTIsMjkuNC0yMi4zLDQ2LjEtMzAuNGwtMTEuOS0yOS44Yy0yMC43LDkuOS0zOS44LDIyLjYtNTYuOCwzNy42TDExNSw5Mi40eiBNNDQ3LjcsMzU1LjVjLTcuOCwxNC45LTE3LjIsMjguOC0yOC4xLDQxLjUgbDIyLjcsMjIuN2MxMy43LTE1LjYsMjUuNS0zMi45LDM0LjktNTEuNUw0NDcuNywzNTUuNXogTTQ3MS40LDI3MmMtMS40LDE4LjgtNS4yLDM3LTExLjEsNTQuMWwyOS41LDEyLjYgYzcuNS0yMS4xLDEyLjItNDMuNSwxMy42LTY2LjhINDcxLjR6IE0zMjEuMiw0NjJjLTE1LjcsNS0zMi4yLDguMi00OS4yLDkuNHYzMi4xYzIxLjItMS40LDQxLjctNS40LDYxLjEtMTEuN0wzMjEuMiw0NjJ6IE0yNDAsNDcxLjRjLTE4LjgtMS40LTM3LTUuMi01NC4xLTExLjFsLTEyLjYsMjkuNWMyMS4xLDcuNSw0My41LDEyLjIsNjYuOCwxMy42VjQ3MS40eiBNNDYyLDE5MC44YzUsMTUuNyw4LjIsMzIuMiw5LjQsNDkuMmgzMi4xIGMtMS40LTIxLjItNS40LTQxLjctMTEuNy02MS4xTDQ2MiwxOTAuOHogTTkyLjQsMzk3Yy0xMi0xMy45LTIyLjMtMjkuNC0zMC40LTQ2LjFsLTI5LjgsMTEuOWM5LjksMjAuNywyMi42LDM5LjgsMzcuNiw1Ni45IEw5Mi40LDM5N3ogTTI3Miw0MC42YzE4LjgsMS40LDM2LjksNS4yLDU0LjEsMTEuMWwxMi42LTI5LjVDMzE3LjcsMTQuNywyOTUuMywxMCwyNzIsOC41VjQwLjZ6IE0xOTAuOCw1MCBjMTUuNy01LDMyLjItOC4yLDQ5LjItOS40VjguNWMtMjEuMiwxLjQtNDEuNyw1LjQtNjEuMSwxMS43TDE5MC44LDUweiBNNDQyLjMsOTIuM0w0MTkuNiwxMTVjMTIsMTMuOSwyMi4zLDI5LjQsMzAuNSw0Ni4xIGwyOS44LTExLjlDNDcwLDEyOC41LDQ1Ny4zLDEwOS40LDQ0Mi4zLDkyLjN6IE0zOTcsOTIuNGwyMi43LTIyLjdjLTE1LjYtMTMuNy0zMi44LTI1LjUtNTEuNS0zNC45bC0xMi42LDI5LjUgQzM3MC40LDcyLjEsMzg0LjQsODEuNSwzOTcsOTIuNHonXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICAgIHZhciBPUEFDSVRZX0FOSU1BVEUgPSBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgQU5JTUFUSU9OX0JBU0UpLCB7fSwge1xuICAgICAgICBhdHRyaWJ1dGVOYW1lOiAnb3BhY2l0eSdcbiAgICAgIH0pO1xuICAgICAgdmFyIGRvdCA9IHtcbiAgICAgICAgdGFnOiAnY2lyY2xlJyxcbiAgICAgICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIEZJTEwpLCB7fSwge1xuICAgICAgICAgIGN4OiAnMjU2JyxcbiAgICAgICAgICBjeTogJzM2NCcsXG4gICAgICAgICAgcjogJzI4J1xuICAgICAgICB9KSxcbiAgICAgICAgY2hpbGRyZW46IFtdXG4gICAgICB9O1xuICAgICAgaWYgKCFyZWR1Y2VNb3Rpb24pIHtcbiAgICAgICAgZG90LmNoaWxkcmVuLnB1c2goe1xuICAgICAgICAgIHRhZzogJ2FuaW1hdGUnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBBTklNQVRJT05fQkFTRSksIHt9LCB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVOYW1lOiAncicsXG4gICAgICAgICAgICB2YWx1ZXM6ICcyODsxNDsyODsyODsxNDsyODsnXG4gICAgICAgICAgfSlcbiAgICAgICAgfSwge1xuICAgICAgICAgIHRhZzogJ2FuaW1hdGUnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBPUEFDSVRZX0FOSU1BVEUpLCB7fSwge1xuICAgICAgICAgICAgdmFsdWVzOiAnMTswOzE7MTswOzE7J1xuICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgZ0NoaWxkcmVuLnB1c2goZG90KTtcbiAgICAgIGdDaGlsZHJlbi5wdXNoKHtcbiAgICAgICAgdGFnOiAncGF0aCcsXG4gICAgICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBGSUxMKSwge30sIHtcbiAgICAgICAgICBvcGFjaXR5OiAnMScsXG4gICAgICAgICAgZDogJ00yNjMuNywzMTJoLTE2Yy02LjYsMC0xMi01LjQtMTItMTJjMC03MSw3Ny40LTYzLjksNzcuNC0xMDcuOGMwLTIwLTE3LjgtNDAuMi01Ny40LTQwLjJjLTI5LjEsMC00NC4zLDkuNi01OS4yLDI4LjcgYy0zLjksNS0xMS4xLDYtMTYuMiwyLjRsLTEzLjEtOS4yYy01LjYtMy45LTYuOS0xMS44LTIuNi0xNy4yYzIxLjItMjcuMiw0Ni40LTQ0LjcsOTEuMi00NC43YzUyLjMsMCw5Ny40LDI5LjgsOTcuNCw4MC4yIGMwLDY3LjYtNzcuNCw2My41LTc3LjQsMTA3LjhDMjc1LjcsMzA2LjYsMjcwLjMsMzEyLDI2My43LDMxMnonXG4gICAgICAgIH0pLFxuICAgICAgICBjaGlsZHJlbjogcmVkdWNlTW90aW9uID8gW10gOiBbe1xuICAgICAgICAgIHRhZzogJ2FuaW1hdGUnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LCBPUEFDSVRZX0FOSU1BVEUpLCB7fSwge1xuICAgICAgICAgICAgdmFsdWVzOiAnMTswOzA7MDswOzE7J1xuICAgICAgICAgIH0pXG4gICAgICAgIH1dXG4gICAgICB9KTtcbiAgICAgIGlmICghcmVkdWNlTW90aW9uKSB7XG4gICAgICAgIC8vIEV4Y2xhbWF0aW9uXG4gICAgICAgIGdDaGlsZHJlbi5wdXNoKHtcbiAgICAgICAgICB0YWc6ICdwYXRoJyxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSwgRklMTCksIHt9LCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAnMCcsXG4gICAgICAgICAgICBkOiAnTTIzMi41LDEzNC41bDcsMTY4YzAuMyw2LjQsNS42LDExLjUsMTIsMTEuNWg5YzYuNCwwLDExLjctNS4xLDEyLTExLjVsNy0xNjhjMC4zLTYuOC01LjItMTIuNS0xMi0xMi41aC0yMyBDMjM3LjcsMTIyLDIzMi4yLDEyNy43LDIzMi41LDEzNC41eidcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICAgIHRhZzogJ2FuaW1hdGUnLFxuICAgICAgICAgICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sIE9QQUNJVFlfQU5JTUFURSksIHt9LCB7XG4gICAgICAgICAgICAgIHZhbHVlczogJzA7MDsxOzE7MDswOydcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfV1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0YWc6ICdnJyxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIGNsYXNzOiAnbWlzc2luZydcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IGdDaGlsZHJlblxuICAgICAgfTtcbiAgICB9O1xuICB9XG59O1xuXG52YXIgU3ZnU3ltYm9scyA9IHtcbiAgaG9va3M6IGZ1bmN0aW9uIGhvb2tzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXJzZU5vZGVBdHRyaWJ1dGVzOiBmdW5jdGlvbiBwYXJzZU5vZGVBdHRyaWJ1dGVzKGFjY3VtdWxhdG9yLCBub2RlKSB7XG4gICAgICAgIHZhciBzeW1ib2xEYXRhID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmEtc3ltYm9sJyk7XG4gICAgICAgIHZhciBzeW1ib2wgPSBzeW1ib2xEYXRhID09PSBudWxsID8gZmFsc2UgOiBzeW1ib2xEYXRhID09PSAnJyA/IHRydWUgOiBzeW1ib2xEYXRhO1xuICAgICAgICBhY2N1bXVsYXRvclsnc3ltYm9sJ10gPSBzeW1ib2w7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59O1xuXG52YXIgcGx1Z2lucyA9IFtJbmplY3RDU1MsIFJlcGxhY2VFbGVtZW50cywgTGF5ZXJzLCBMYXllcnNDb3VudGVyLCBMYXllcnNUZXh0LCBQc2V1ZG9FbGVtZW50cywgTXV0YXRpb25PYnNlcnZlciQxLCBQb3dlclRyYW5zZm9ybXMsIE1hc2tzLCBNaXNzaW5nSWNvbkluZGljYXRvciwgU3ZnU3ltYm9sc107XG5cbnJlZ2lzdGVyUGx1Z2lucyhwbHVnaW5zLCB7XG4gIG1peG91dHNUbzogYXBpXG59KTtcbnZhciBub0F1dG8kMSA9IGFwaS5ub0F1dG87XG52YXIgY29uZmlnJDEgPSBhcGkuY29uZmlnO1xudmFyIGxpYnJhcnkkMSA9IGFwaS5saWJyYXJ5O1xudmFyIGRvbSQxID0gYXBpLmRvbTtcbnZhciBwYXJzZSQxID0gYXBpLnBhcnNlO1xudmFyIGZpbmRJY29uRGVmaW5pdGlvbiQxID0gYXBpLmZpbmRJY29uRGVmaW5pdGlvbjtcbnZhciB0b0h0bWwkMSA9IGFwaS50b0h0bWw7XG52YXIgaWNvbiA9IGFwaS5pY29uO1xudmFyIGxheWVyID0gYXBpLmxheWVyO1xudmFyIHRleHQgPSBhcGkudGV4dDtcbnZhciBjb3VudGVyID0gYXBpLmNvdW50ZXI7XG5cbmV4cG9ydCB7IG5vQXV0byQxIGFzIG5vQXV0bywgY29uZmlnJDEgYXMgY29uZmlnLCBsaWJyYXJ5JDEgYXMgbGlicmFyeSwgZG9tJDEgYXMgZG9tLCBwYXJzZSQxIGFzIHBhcnNlLCBmaW5kSWNvbkRlZmluaXRpb24kMSBhcyBmaW5kSWNvbkRlZmluaXRpb24sIHRvSHRtbCQxIGFzIHRvSHRtbCwgaWNvbiwgbGF5ZXIsIHRleHQsIGNvdW50ZXIsIGFwaSB9O1xuIiwgIi8qIVxuICogRm9udCBBd2Vzb21lIEZyZWUgNy4xLjAgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb21cbiAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpXG4gKiBDb3B5cmlnaHQgMjAyNSBGb250aWNvbnMsIEluYy5cbiAqL1xudmFyIHByZWZpeCA9IFwiZmFiXCI7XG52YXIgZmFTcXVhcmVHaXRodWIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3F1YXJlLWdpdGh1YicsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiZ2l0aHViLXNxdWFyZVwiXSwgXCJmMDkyXCIsIFwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNjUuOCA0MDcuN2MwLTEuOCAwLTYgLjEtMTEuNiAuMS0xMS40IC4xLTI4LjggLjEtNDMuNyAwLTE1LjYtNS4yLTI1LjUtMTEuMy0zMC43IDM3LTQuMSA3Ni05LjIgNzYtNzMuMSAwLTE4LjItNi41LTI3LjMtMTcuMS0zOSAxLjctNC4zIDcuNC0yMi0xLjctNDUtMTMuOS00LjMtNDUuNyAxNy45LTQ1LjcgMTcuOS0yNi42LTcuNS01Ni42LTcuNS04My4yIDAgMCAwLTMxLjgtMjIuMi00NS43LTE3LjktOS4xIDIyLjktMy41IDQwLjYtMS43IDQ1LTEwLjYgMTEuNy0xNS42IDIwLjgtMTUuNiAzOSAwIDYzLjYgMzcuMyA2OSA3NC4zIDczLjEtNC44IDQuMy05LjEgMTEuNy0xMC42IDIyLjMtOS41IDQuMy0zMy44IDExLjctNDguMy0xMy45LTkuMS0xNS44LTI1LjUtMTcuMS0yNS41LTE3LjEtMTYuMi0uMi0xLjEgMTAuMi0xLjEgMTAuMiAxMC44IDUgMTguNCAyNC4yIDE4LjQgMjQuMiA5LjcgMjkuNyA1Ni4xIDE5LjcgNTYuMSAxOS43IDAgOSAuMSAyMS43IC4xIDMwLjYgMCA0LjggLjEgOC42IC4xIDEwIDAgNC4zLTMgOS41LTExLjUgOC02Ni0yMi4xLTExMi4yLTg0LjktMTEyLjItMTU4LjMgMC05MS44IDcwLjItMTYxLjUgMTYyLTE2MS41UzM4OCAxNjUuNiAzODggMjU3LjRjLjEgNzMuNC00NC43IDEzNi4zLTExMC43IDE1OC4zLTguNCAxLjUtMTEuNS0zLjctMTEuNS04em0tOTAuNS01NC44Yy0uMi0xLjUgMS4xLTIuOCAzLTMuMiAxLjktLjIgMy43IC42IDMuOSAxLjkgLjMgMS4zLTEgMi42LTMgMy0xLjkgLjQtMy43LS40LTMuOS0xLjd6bS05LjEgMy4yYy0yLjIgLjItMy43LS45LTMuNy0yLjQgMC0xLjMgMS41LTIuNCAzLjUtMi40IDEuOS0uMiAzLjcgLjkgMy43IDIuNCAwIDEuMy0xLjUgMi40LTMuNSAyLjR6bS0xNC4zLTIuMmMtMS45LS40LTMuMi0xLjktMi44LTMuMnMyLjQtMS45IDQuMS0xLjVjMiAuNiAzLjMgMi4xIDIuOCAzLjQtLjQgMS4zLTIuNCAxLjktNC4xIDEuM3ptLTEyLjUtNy4zYy0xLjUtMS4zLTEuOS0zLjItLjktNC4xIC45LTEuMSAyLjgtLjkgNC4zIC42IDEuMyAxLjMgMS44IDMuMyAuOSA0LjEtLjkgMS4xLTIuOCAuOS00LjMtLjZ6bS04LjUtMTBjLTEuMS0xLjUtMS4xLTMuMiAwLTMuOSAxLjEtLjkgMi44LS4yIDMuNyAxLjMgMS4xIDEuNSAxLjEgMy4zIDAgNC4xLS45IC42LTIuNiAwLTMuNy0xLjV6bS02LjMtOC44Yy0xLjEtMS4zLTEuMy0yLjgtLjQtMy41IC45LS45IDIuNC0uNCAzLjUgLjYgMS4xIDEuMyAxLjMgMi44IC40IDMuNS0uOSAuOS0yLjQgLjQtMy41LS42em0tNi02LjRjLTEuMy0uNi0xLjktMS43LTEuNS0yLjYgLjQtLjYgMS41LS45IDIuOC0uNCAxLjMgLjcgMS45IDEuOCAxLjUgMi42LS40IC45LTEuNyAxLjEtMi44IC40elwiXVxufTtcbnZhciBmYUdpdGh1YlNxdWFyZSA9IGZhU3F1YXJlR2l0aHViO1xudmFyIGZhVGhpbmtQZWFrcyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd0aGluay1wZWFrcycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjczMVwiLCBcIk00NjUuNCA0MDkuNGw4Ny4xLTE1MC4yLTMyLS4zLTU1LjEgOTUtMjA2LjItMzUzLjktMjM2LjIgNDA3LjQgMzIgLjMgMjA0LjItMzUyLjEgMjA2LjIgMzUzLjh6TTExMC4xIDM2NS4zbDMyLjEgMCAxMTcuNC0yMDIuNSAyMDMuNCAzNDkuMSAzMi41IC4xLTIzNS44LTQwNC42LTE0OS42IDI1Ny45elwiXVxufTtcbnZhciBmYUdvb2dsZURyaXZlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2dvb2dsZS1kcml2ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjNhYVwiLCBcIk0zMzkgMzE0LjlMMTc1LjQgMzIgMzM2LjYgMzIgNTAwLjIgMzE0LjkgMzM5IDMxNC45ek0yMDEuNSAzMzguNWwtODAuNiAxNDEuNSAzMTAuNSAwIDgwLjYtMTQxLjUtMzEwLjUgMHpNMTU0LjEgNjcuNEwwIDMzOC41IDgwLjYgNDgwIDIzNyAyMDguOCAxNTQuMSA2Ny40elwiXVxufTtcbnZhciBmYUF1dG9wcmVmaXhlciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdhdXRvcHJlZml4ZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0MWNcIiwgXCJNMzE4LjQgMTZsLTE2MSA0ODAgNzcuNSAwIDI1LjQtODEuNCAxMTkuNSAwIDI1LjIgODEuNCA3Ny41IDAtMTY0LjEtNDgwek0yNzguMSAzNTcuOWw0MS4yLTEzMC40IDEuNSAwIDQwLjkgMTMwLjQtODMuNiAwek02NDAgNDA1TDYzMCAzNzMuNiA0NjIuMSAzNTggNDgxLjUgNDE0LjUgNjQwIDQwNXpNMTc3LjkgMzU4TDEwIDM3My43IDAgNDA1IDE1OC41IDQxNC40IDE3Ny45IDM1OHpcIl1cbn07XG52YXIgZmFTcXVhcmVWaWFkZW8gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3F1YXJlLXZpYWRlbycsXG4gIGljb246IFs0NDgsIDUxMiwgW1widmlhZGVvLXNxdWFyZVwiXSwgXCJmMmFhXCIsIFwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xMTguMyAzODEuMmMtNjgtNzMuNi0xOS44LTE5Ni4xIDgxLjItMTk2LjEgMTMuMyAwIDI2LjYgMi4xIDM5LjEgNi43LTQuMyA4LjQtNy4zIDE3LjYtOC40IDI3LjEtOS43LTQuMS0yMC4yLTYtMzAuNy02LTQ4LjggMC04NC42IDQxLjctODQuNiA4OC45IDAgNDMgMjguNSA3OC43IDY5LjUgODUuOSA2MS41LTI0IDcyLjktMTE3LjYgNzIuOS0xNzUgMC03LjMgMC0xNC44LS42LTIyLjEtMTEuMi0zMi45LTI2LjYtNjQuNi00NC4yLTk0LjUgMjcuMSAxOC4zIDQxLjkgNjIuNSA0NC4yIDk0LjFsMCAuNGM3LjcgMjIuNSAxMS44IDQ2LjIgMTEuOCA3MCAwIDU0LjEtMjEuOSA5OS02OC4zIDEyOC4ybC0yLjQgLjJjNTAgMSA4Ni4yLTM4LjYgODYuMi04Ny4yIDAtMTIuMi0yLjEtMjQuMy02LjktMzUuNyA5LjUtMS45IDE4LjUtNS42IDI2LjQtMTAuNSAxNS4zIDM2LjYgMTIuNiA4Ny4zLTIyLjggMTI1LjYtNDIuNCA0Ni4yLTEyMCA0Ni42LTE2Mi40IDB6TTI3NC42IDIxNy42YzIxLjktMTIgNDkuNi0zMC43IDYyLjMtNTMgMS41LTMgNC4xLTguNiA0LjUtMTItMTIuNSAyNy45LTQ0LjIgNDkuOC03My45IDU2LjctNC43LTcuMy03LjUtMTUuNS03LjUtMjQuMyAwLTEwLjMgNS4yLTI0LjEgMTIuOS0zMS42IDguMy03LjkgMTgtMTAuOSAyNy45LTE0LjEgMTYtNS4xIDMyLjUtMTAuMyA0NC41LTM1LjkgMzIuNSA0Ni4yIDEzLjEgMTMwLjMtMzYuMyAxMzAuMy0xMy4zIDAtMjUuMS03LjEtMzQuNC0xNi4xelwiXVxufTtcbnZhciBmYVZpYWRlb1NxdWFyZSA9IGZhU3F1YXJlVmlhZGVvO1xudmFyIGZhQ3BhbmVsID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NwYW5lbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjM4OFwiLCBcIk0yMTAuMyAyMjAuMmMtNS42LTI0LjgtMjYuOS00MS4yLTUxLTQxLjJsLTM3IDBjLTcuMSAwLTEyLjUgNC41LTE0LjMgMTAuOUw3My4xIDMyMCA5Ny44IDMxOS45YzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2wyNS44LTk1LjcgMTkuOCAwYzguNCAwIDE2LjIgNS42IDE4LjMgMTQuOCAyLjUgMTAuOS01LjkgMjIuNi0xOC4zIDIyLjZsLTEwLjMgMGMtNyAwLTEyLjUgNC42LTE0LjMgMTAuOGwtNi40IDIzLjggMzIgMGMzNy4yIDAgNTguMy0zNi4yIDUxLjctNjUuM3ptLTE1Ni41IDI4bDE4LjYgMGM2LjkgMCAxMi40LTQuNCAxNC4zLTEwLjlsNi4yLTIzLjYtNDAgMEMzMCAyMTMuNyA5IDIyNy44IDEuNyAyNTQuOC03IDI4OC42IDE4LjUgMzIwIDUyIDMyMGwxMi40IDAgNy4xLTI2LjFjMS4yLTQuNC0yLjItOC4zLTYuNC04LjNsLTExLjMgMGMtMjQuNyAwLTI0LjktMzcuNCAwLTM3LjR6bTI0Ny41LTM0LjhsLTc3LjkgMC0zLjUgMTMuNGMtMi40IDkuNiA0LjUgMTguNSAxNC4yIDE4LjVsNTcuNSAwYzQgMCAyLjQgNC4zIDIuMSA1LjNsLTguNiAzMS44Yy0uNCAxLjQtLjkgNS4zLTUuNSA1LjNsLTM0LjkgMGMtNS4zIDAtNS4zLTcuOSAwLTcuOWwyMS42IDBjNi44IDAgMTIuMy00LjYgMTQuMi0xMC44bDMuNS0xMy4yLTQ4LjQgMGMtMzkuMiAwLTQzLjYgNjMuOC0uNyA2My44bDU3LjUgLjJjMTEuMiAwIDIwLjYtNy4yIDIzLjQtMTcuOGwxNC01MS44YzQuOC0xOS4yLTkuNy0zNi44LTI4LjUtMzYuOHpNNjMzLjEgMTc5bC0xOC45IDBjLTQuOSAwLTkuMiAzLjItMTAuNCA3LjlMNTY4LjIgMzIwYzIwLjcgMCAzOS44LTEzLjggNDQuOS0zNC41bDI2LjUtOTguMmMxLjItNC4zLTItOC4zLTYuNS04LjN6TTM5Ni44IDIxMy43bDAgLjEtNDguMyAwLTI2LjIgOThjLTEuMiA0LjQgMi4yIDguMyA2LjQgOC4zbDE4LjkgMGM0LjggMCA5LjItMyAxMC40LTcuOGwxNy4yLTY0IDE5LjggMGMxMi41IDAgMjEuNCAxMS44IDE4LjEgMjMuNGwtMTAuNiA0MGMtMS4yIDQuMyAxLjkgOC4zIDYuNCA4LjNsMTkuMSAwYzQuNiAwIDkuMS0yLjkgMTAuMy03LjhsOC44LTMzLjFjOS0zMy4xLTE1LjktNjUuNC01MC4zLTY1LjR6bTk4LjMgNzQuNmMtMy42IDAtNi0zLjQtNS4xLTYuN2w4LTMwYy45LTMuOSAzLjctNiA3LjgtNmwzMi45IDBjMi42IDAgNC42IDIuNCAzLjkgNS4xbC0uNyAyLjZjLS42IDItMS45IDMtMy45IDNsLTIxLjYgMGMtNyAwLTEyLjYgNC42LTE0LjIgMTAuOGwtMy41IDEzIDUzLjQgMGMxMC41IDAgMjAuMy02LjYgMjMuMi0xNy42bDMuMi0xMmM0LjktMTkuMS05LjMtMzYuOC0yOC4zLTM2LjhsLTQ3LjMgMGMtMTcuOSAwLTMzLjggMTItMzguNiAyOS42bC0xMC44IDQwYy01IDE3LjcgOC4zIDM2LjcgMjguMyAzNi43bDY2LjcgMGM2LjggMCAxMi4zLTQuNSAxNC4yLTEwLjdsNS43LTIxLTczLjMgMHpcIl1cbn07XG52YXIgZmFNZW5kZWxleSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdtZW5kZWxleScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjdiM1wiLCBcIk02MjQuNiAzMjUuMmMtMTIuMy0xMi40LTI5LjctMTkuMi00OC40LTE3LjItNDMuMy0xLTQ5LjctMzQuOS0zNy41LTk4LjggMjIuOC01Ny41LTE0LjktMTMxLjUtODcuNC0xMzAuOC03Ny40IC43LTgxLjcgODItMTMwLjkgODItNDguMSAwLTU0LTgxLjMtMTMwLjktODItNzIuOS0uOC0xMTAuMSA3My4zLTg3LjQgMTMwLjggMTIuMiA2My45IDUuOCA5Ny44LTM3LjUgOTguOC0yMS4yLTIuMy0zNyA2LjUtNTMgMjIuNS0xOS45IDE5LjctMTkuMyA5NC44IDQyLjYgMTAyLjYgNDcuMSA1LjkgODEuNi00Mi45IDYxLjItODcuOC00Ny4zLTEwMy43IDE4NS45LTEwNi4xIDE0Ni41LTguMi0uMSAuMS0uMiAuMi0uMyAuNC0yNi44IDQyLjggNi44IDk3LjQgNTguOCA5NS4yIDUyLjEgMi4xIDg1LjQtNTIuNiA1OC44LTk1LjItLjEtLjItLjItLjMtLjMtLjQtMzkuNC05Ny45IDE5My44LTk1LjUgMTQ2LjUgOC4yLTQuNiAxMC02LjcgMjEuMy01LjcgMzMgNC45IDUzLjQgNjguNyA3NC4xIDEwNC45IDM1LjIgMTcuOC0xNC44IDIzLjEtNjUuNiAwLTg4LjN6TTMyMC43IDMwNi4xbC0uNiAwYy00My40IDAtNjIuOC0zNy41LTYyLjgtNjIuOCAwLTM0LjcgMjguMi02Mi44IDYyLjgtNjIuOGwuNiAwYzM0LjcgMCA2Mi44IDI4LjEgNjIuOCA2Mi44IDAgMjUtMTkuMiA2Mi44LTYyLjggNjIuOHpcIl1cbn07XG52YXIgZmFEcmFmdDJkaWdpdGFsID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2RyYWZ0MmRpZ2l0YWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzOTZcIiwgXCJNNDk2IDM5OC4xbC0xNDQtODIuMiAwIDY0LjctOTEuMyAwYzMwLjgtMzUgODEuOC05NS45IDExMS44LTE0OS4zIDM1LjItNjIuNiAxNi4xLTEyMy40LTEyLjgtMTUzLjMtNC40LTQuNi02Mi4yLTYyLjktMTY2LTQxLjItNTkuMSAxMi40LTg5LjQgNDMuNC0xMDQuMyA2Ny4zLTEzLjEgMjAuOS0xNyAzOS44LTE4LjIgNDcuNy01LjUgMzMgMTkuNCA2Ny4xIDU2LjcgNjcuMSAzMS43IDAgNTcuMy0yNS43IDU3LjMtNTcuNCAwLTI3LjEtMTkuNy01Mi4xLTQ4LTU2LjggMS44LTcuMyAxNy43LTIxLjEgMjYuMy0yNC43IDQxLjEtMTcuMyA3OCA1LjIgODMuMyAzMy41IDguMyA0NC4zLTM3LjEgOTAuNC02OS43IDEyNy42LTc2LjYgODctMTQyLjggMTU1LjctMTYxLjEgMTc0LjhsMzM2LS4xIDAgNjQuMiAxNDQtODEuOXpNMzg1LjkgMzcxbDQ3LjEgMjcuMi00Ny4xIDI3LjIgMC01NC40ek0xMDUuNCAxNjEuNGEyMi40IDIyLjQgMCAxIDEgNDQuOCAwIDIyLjQgMjIuNCAwIDEgMSAtNDQuOCAwek05OC41IDM4MC41YzI1LjYtMjcuNCA5Ny43LTEwNC43IDE1MC44LTE2OS45IDM1LjEtNDMuMSA0MC4zLTgyLjQgMjguNC0xMTIuNy03LjQtMTguOC0xNy41LTMwLjItMjQuMy0zNS43IDQ1LjMgMi4xIDY4IDIzLjQgODIuMiAzOC4zIDAgMCA0Mi40IDQ4LjIgNS44IDExMy4zLTM3IDY1LjktMTEwLjkgMTQ3LjUtMTI4LjUgMTY2LjdsLTExNC40IDB6XCJdXG59O1xudmFyIGZhUmVwbHlkID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3JlcGx5ZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjNlNlwiLCBcIk0zMjAgNDgwbC0xOTIgMEM1Ny42IDQ4MCAwIDQyMi40IDAgMzUyTDAgMTYwQzAgODkuNiA1Ny42IDMyIDEyOCAzMmwxOTIgMGM3MC40IDAgMTI4IDU3LjYgMTI4IDEyOGwwIDE5MmMwIDcwLjQtNTcuNiAxMjgtMTI4IDEyOHpNMTkzLjQgMjczLjJjLTYuMS0yLTExLjYtMy4xLTE2LjQtMy4xLTcuMiAwLTEzLjUgMS45LTE4LjkgNS42cy05LjYgOS0xMi44IDE1LjhsLTEuMSAwLTQuMi0xOC4zLTI4IDAgMCAxMzguOSAzNi4xIDAgMC04OS43YzEuNS01LjQgNC40LTkuOCA4LjctMTMuMnM5LjgtNS4xIDE2LjItNS4xYzQuNiAwIDkuOCAxIDE1LjYgMy4xbDQuOC0zNHpNMzA4LjYgMzc2LjZjLTMuMiAyLjQtNy43IDQuOC0xMy43IDcuMXMtMTIuOCAzLjUtMjAuNCAzLjVjLTEyLjIgMC0yMS4xLTMtMjYuNS04LjktNS41LTUuOS04LjUtMTQuNy05LTI2LjRsODMuMyAwYy45LTQuOCAxLjYtOS40IDIuMS0xMy45IC41LTQuNCAuNy04LjYgLjctMTIuNSAwLTEwLjctMS42LTE5LjctNC43LTI2LjktMy4yLTcuMi03LjMtMTMtMTIuNS0xNy4yLTUuMi00LjMtMTEuMS03LjMtMTcuOC05LjItNi43LTEuOC0xMy41LTIuOC0yMC42LTIuOC0yMS4xIDAtMzcuNSA2LjEtNDkuMiAxOC4zcy0xNy41IDMwLjUtMTcuNSA1NWMwIDIyLjggNS4yIDQwLjcgMTUuNiA1My43IDEwLjQgMTMuMSAyNi44IDE5LjYgNDkuMiAxOS42IDEwLjcgMCAyMC45LTEuNSAzMC40LTQuNnMxNy4xLTYuOCAyMi42LTExLjJsLTEyLTIzLjZ6bS0yMS44LTcwLjNjMy44IDUuNCA1LjMgMTMuMSA0LjYgMjMuMWwtNTEuNyAwYy45LTkuNCAzLjctMTcgOC4yLTIyLjZzMTEuNS04LjUgMjEtOC41YzguMi0uMSAxNC4xIDIuNiAxNy45IDh6bTc5LjkgMi41YzQuMSAzLjkgOS40IDUuOCAxNi4xIDUuOCA3IDAgMTIuNi0xLjkgMTYuNy01LjhzNi4xLTkuMSA2LjEtMTUuNi0yLTExLjYtNi4xLTE1LjQtOS42LTUuNy0xNi43LTUuN2MtNi43IDAtMTIgMS45LTE2LjEgNS43cy02LjEgOC45LTYuMSAxNS40IDIgMTEuNyA2LjEgMTUuNnptMCAxMDAuNWM0LjEgMy45IDkuNCA1LjggMTYuMSA1LjggNyAwIDEyLjYtMS45IDE2LjctNS44czYuMS05LjEgNi4xLTE1LjYtMi0xMS42LTYuMS0xNS40LTkuNi01LjctMTYuNy01LjdjLTYuNyAwLTEyIDEuOS0xNi4xIDUuN3MtNi4xIDguOS02LjEgMTUuNGMwIDYuNiAyIDExLjcgNi4xIDE1LjZ6XCJdXG59O1xudmFyIGZhRW1waXJlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2VtcGlyZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFkMVwiLCBcIk0yOTUuNiA1NC4yYy0xMC44LTIuMi0yMi4xLTMuMy0zMy41LTMuNmwwLTE4LjJjNzguMSAyLjIgMTQ2LjEgNDQgMTg0LjYgMTA2LjZsLTE1LjggOS4xYy02LjEtOS43LTEyLjctMTguOC0yMC4yLTI3LjFsLTE4IDE1LjVjLTI2LTI5LjYtNjEuNC01MC43LTEwMS45LTU4LjRsNC44LTIzLjl6TTYxLjQgMzIyLjRsMjMtNy43Yy02LjQtMTguMy0xMC0zOC4yLTEwLTU4LjdzMy4zLTQwLjQgOS43LTU4LjdsLTIyLjctNy43YzMuNi0xMC44IDguMy0yMS4zIDEzLjYtMzFsLTE1LjgtOS4xQzQyIDE4MSAzMi4xIDIxNy41IDMyLjEgMjU2czEwIDc1IDI3LjEgMTA2LjZMNzUgMzUzLjVjLTUuMy0xMC05LjctMjAuMy0xMy42LTMxLjF6TTIyMS4xIDQzNGMtNDAuNC04LTc1LjgtMjkuMS0xMDEuOS01OC43bC0xOCAxNS44Yy03LjUtOC42LTE0LjQtMTcuNy0yMC4yLTI3LjRsLTE2IDkuNGMzOC41IDYyLjMgMTA2LjggMTA0LjMgMTg0LjkgMTA2LjZsMC0xOC4zYy0xMS4zLS4zLTIyLjctMS43LTMzLjUtMy42bDQuNy0yMy44ek0xMDEuMyAxMjAuOWwxOCAxNS41YzI2LTI5LjYgNjEuNC01MC43IDEwMS45LTU4LjRsLTQuNy0yMy44YzEwLjgtMi4yIDIyLjEtMy4zIDMzLjUtMy42bDAtMTguMkMxNzEuOSAzNC42IDEwMy45IDc2LjQgNjUuNCAxMzlsMTUuOCA5LjFjNi05LjcgMTIuNi0xOC45IDIwLjEtMjcuMnpNNDEwLjcgMzkxLjFsLTE4LTE1LjhjLTI2IDI5LjYtNjEuNCA1MC43LTEwMS45IDU4LjdsNC43IDIzLjhjLTEwLjggMS45LTIyLjEgMy4zLTMzLjUgMy42bDAgMTguM2M3OC4xLTIuMiAxNDYuNC00NC4zIDE4NC45LTEwNi42bC0xNi4xLTkuNGMtNS43IDkuNy0xMi42IDE4LjgtMjAuMSAyNy40ek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00ODMuOCAwYTIzNS44IDIzNS44IDAgMSAwIC00NzEuNiAwIDIzNS44IDIzNS44IDAgMSAwIDQ3MS42IDB6bS0zOS0xMDYuNkw0MzcgMTU4LjVjNS4zIDkuNyAxMCAyMC4yIDEzLjYgMzFsLTIyLjcgNy43YzYuNCAxOC4zIDkuNyAzOC4yIDkuNyA1OC43cy0zLjYgNDAuNC0xMCA1OC43bDIzIDcuN2MtMy45IDEwLjgtOC4zIDIxLTEzLjYgMzFsMTUuOCA5LjFDNDcwIDMzMSA0NzkuOSAyOTQuNSA0NzkuOSAyNTZzLTkuOS03NS0yNy4xLTEwNi42em0tMTgzIDE3Ny43YzE2LjMtMy4zIDMwLjQtMTEuNiA0MC43LTIzLjVsNTEuMiA0NC44YzExLjktMTMuNiAyMS4zLTI5LjMgMjcuMS00Ni44bC02NC4yLTIyLjFjMi41LTcuNSAzLjktMTUuMiAzLjktMjMuNXMtMS40LTE2LjEtMy45LTIzLjVsNjQuNS0yMi4xYy02LjEtMTcuNC0xNS41LTMzLjItMjcuNC00Ni44bC01MS4yIDQ0LjhjLTEwLjItMTEuOS0yNC40LTIwLjUtNDAuNy0yMy44bDEzLjMtNjYuNGMtOC42LTEuOS0xNy43LTIuOC0yNy4xLTIuOHMtMTguNSAuOC0yNy4xIDIuOGwxMy4zIDY2LjRjLTE2LjMgMy4zLTMwLjQgMTEuOS00MC43IDIzLjhsLTUxLjItNDQuOGMtMTEuOSAxMy42LTIxLjMgMjkuMy0yNy40IDQ2LjhsNjQuNSAyMi4xYy0yLjUgNy41LTMuOSAxNS4yLTMuOSAyMy41czEuNCAxNi4xIDMuOSAyMy41bC02NC4yIDIyLjFjNS44IDE3LjQgMTUuMiAzMy4yIDI3LjEgNDYuOGw1MS4yLTQ0LjhjMTAuMiAxMS45IDI0LjQgMjAuMiA0MC43IDIzLjVsLTEzLjMgNjYuN2M4LjYgMS43IDE3LjcgMi44IDI3LjEgMi44czE4LjUtMS4xIDI3LjEtMi44bC0xMy4zLTY2Ljd6XCJdXG59O1xudmFyIGZhQWNjZXNzaWJsZUljb24gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYWNjZXNzaWJsZS1pY29uJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjIxMDddLCBcImYzNjhcIiwgXCJNNDIzLjkgMjU1LjhMNDExIDQxMy4xYy0zLjMgNDAuNy02My45IDM1LjEtNjAuNi00LjlsMTAtMTIyLjUtNDEuMSAyLjNjMTAuMSAyMC43IDE1LjggNDMuOSAxNS44IDY4LjUgMCA0MS4yLTE2LjEgNzguNy00Mi4zIDEwNi41bC0zOS4zLTM5LjNjNTcuOS02My43IDEzLjEtMTY3LjItNzQtMTY3LjItMjUuOSAwLTQ5LjUgOS45LTY3LjIgMjZMNzMgMjQzLjJjMjItMjAuNyA1MC4xLTM1LjEgODEuNC00MC4ybDc1LjMtODUuNy00Mi42LTI0LjgtNTEuNiA0NkMxMDUuNSAxNjUuMyA2NC45IDEyMCA5NSA5My4xbDY4LTYwLjdjOS44LTguOCAyNC4xLTEwLjIgMzUuNS0zLjYgMCAwIDEzOS4zIDgwLjkgMTM5LjUgODEuMSAxNi4yIDEwLjEgMjAuNyAzNiA2LjEgNTIuNmwtNTguNCA2Ni41IDEwNi4xLTUuOWMxOC41LTEuMSAzMy42IDE0LjQgMzIuMSAzMi43ek0zNTkgMTAxLjhBNTAuOSA1MC45IDAgMSAwIDM1OSAwIDUwLjkgNTAuOSAwIDEgMCAzNTkgMTAxLjh6TTE3OS42IDQ1Ni41Yy04MC42IDAtMTI3LjQtOTAuNi04Mi43LTE1Ni4xTDU3LjIgMjYwLjdDMzYuNCAyODcgMjQgMzIwLjMgMjQgMzU2LjQgMjQgNDg3LjEgMTc0LjcgNTU3LjggMjc1LjQgNDc4LjlsLTM5LjctMzkuN2MtMTYgMTAuOS0zNS4zIDE3LjMtNTYuMSAxNy4zelwiXVxufTtcbnZhciBmYVF1b3JhID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3F1b3JhJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMmM0XCIsIFwiTTQ0MC43IDM4Ni43bC0yOS4zIDBjLTEuNSAxMy41LTEwLjUgMzAuOC0zMyAzMC44LTIwLjUgMC0zNS4zLTE0LjItNDkuNS0zNS44IDQ0LjItMzQuMiA3NC43LTg3LjUgNzQuNy0xNTMgLjEtMTE3LjUtOTYuNi0xOTYuNy0xOTguNC0xOTYuNy05OS43IDAtMTk3LjcgNzkuNy0xOTcuNyAxOTYuNyAwIDEzNC4xIDEzMS4zIDIyMS42IDI0OSAxODkgMTkuNyAzMy42IDQ1LjcgNjIuMyA5NS4yIDYyLjMgODEuOCAwIDkwLjgtNzUuMyA4OS05My4zek0yOTcuMiAzMjkuMmMtMTkuNS0yOS4yLTQzLjctNTIuMi05MS41LTUyLjItMzAuNSAwLTU0LjMgMTAtNjkgMjIuOGwxMi4yIDI0LjNjNi4yLTMgMTMtNCAxOS44LTQgMzUuNSAwIDUzLjcgMzAuOCA2OS4yIDYxLjMtMTAgMy0yMC43IDQuMi0zMi43IDQuMi03NSAwLTEwNy41LTUzLTEwNy41LTE1Ni43IDAtMTA0LjQgMzIuNS0xNTcuOSAxMDcuNS0xNTcuOSA3Ni4yIDAgMTA4LjcgNTMuNSAxMDguNyAxNTcuNyAuMSA0MS44LTUuNCA3NS42LTE2LjcgMTAwLjV6XCJdXG59O1xudmFyIGZhQ2NKY2IgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY2MtamNiJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMjRiXCIsIFwiTTQzMS41IDI0NC4zbDAtMzIuM2M0MS4yIDAgMzguNSAuMiAzOC41IC4yIDcuMyAxLjMgMTMuMyA3LjMgMTMuMyAxNiAwIDguOC02IDE0LjUtMTMuMyAxNS44LTEuMiAuNC0zLjMgLjMtMzguNSAuM3ptNDIuOCAyMC4yYy0yLjgtLjctMy4zLS41LTQyLjgtLjVsMCAzNWMzOS42IDAgNDAgLjIgNDIuOC0uNSA3LjUtMS41IDEzLjUtOCAxMy41LTE3IDAtOC43LTYtMTUuNS0xMy41LTE3ek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODIgMTkyLjNsLTU3IDBjMCA2Ny4xIDEwLjcgMTA5LjctMzUuOCAxMDkuNy0xOS41IDAtMzguOC01LjctNTcuMi0xNC44bDAgMjhjMzAgOC4zIDY4IDguMyA2OCA4LjMgOTcuOSAwIDgyLTQ3LjcgODItMTMxLjJ6bTE3OC41IDQuNWMtNjMuNC0xNi0xNjUtMTQuOS0xNjUgNTkuMyAwIDc3LjEgMTA4LjIgNzMuNiAxNjUgNTkuMmwwLTI4LjNDMzEyLjkgMzExLjcgMjUzIDMwOSAyNTMgMjU2czU5LjgtNTUuNiAxMDcuNS0zMS4ybDAtMjh6TTU0NCAyODYuNWMwLTE4LjUtMTYuNS0zMC41LTM4LTMybDAtLjhjMTkuNS0yLjcgMzAuMy0xNS41IDMwLjMtMzAuMiAwLTE5LTE1LjctMzAtMzctMzEgMCAwIDYuMy0uMy0xMjAuMy0uM2wwIDEyNy41IDEyMi43IDBjMjQuMyAuMSA0Mi4zLTEyLjkgNDIuMy0zMy4yelwiXVxufTtcbnZhciBmYUZlZG9yYSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdmZWRvcmEnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY3OThcIiwgXCJNMCAyNTUuOEMuMSAxMzIuMiAxMDAuMyAzMiAyMjQgMzJTNDQ4IDEzMi4zIDQ0OCAyNTYgMzQ3LjggNDc5LjkgMjI0LjEgNDgwTDUwLjkgNDgwQzIyLjggNDgwIC4xIDQ1Ny4zIDAgNDI5LjJsMCAwIDAtMTczLjQgMCAwem0zNDIuNi02My4xYzAtMzkuNy0zNS42LTY4LjUtNzMuMi02OC41LTM0LjkgMC02NS44IDI2LjMtNzAuMSA1OS45LS4yIDMuOC0uNCA1LS40IDguNS0uMSAyMS4xIDAgNDIuOC0uOCA2NC40IC45IDI2LjEgMSA1Mi4xIDAgNzYuNiAwIDI3LjEtMTkuNCA0NS41LTQ0LjcgNDUuNXMtNDUuOC0yMC4yLTQ1LjgtNDUuNWMuNS0yNy43IDIyLjYtNDUuMyA0OC41LTQ2LjFsLjIgMCAyNi4zLS4yIDAtMzcuMy0yNi4zIC4yYy00Ny4xLS40LTg0LjYgMzYuNS04NS45IDgzLjQgMCA0NS42IDM3LjUgODIuOSA4MyA4Mi45IDQzIDAgNzguNy0zMy42IDgyLjYtNzUuNmwuMi01My41IDMyLjYtLjNjMjUuMyAuMiAyNS0zNy44LS4yLTM3LjNsLTMyLjQgLjNjMC02LjQgLjEtMTIuOCAuMS0xOS4yIC4xLTEyLjcgLjEtMjUuNC0uMS0zOC4yIC4xLTE2LjUgMTUuOC0zMS4yIDMzLjItMzEuMiAxNy41IDAgMzUuOSA4LjcgMzUuOSAzMS4yIDAgMy4yLS4xIDUuMS0uMyA2LjMtMS45IDEwLjUgNS4yIDIwLjQgMTUuNyAyMS45IDEwLjYgMS41IDIwLjItNi4xIDIxLjItMTYuNiAuNi00LjIgLjctNy45IC43LTExLjZ6XCJdXG59O1xudmFyIGZhRHVvbGluZ28gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZHVvbGluZ28nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU4MTJcIiwgXCJNNTA0LjMgMjMwLjVjMTAuNCA4OC41LTQzLjQgMTcyLjEtMTI4LjIgMTk5cy0xNzYuNi0xMC4zLTIxOC45LTg4LjdjLTcyIDMtMTM3LjQtMzkuOC0xNjMuMi0xMDUuNS0yLjYtNi42LTEuOS0xNCAxLjktMTkuOXMxMC4yLTkuNyAxNy4yLTEwLjFsOTYuMS02LTIzLjgtNzUuOWMtNi4zLTIwLTIuMi00MS45IDExLTU4LjNzMzMuNy0yNSA1NC41LTIzYzUyLjIgNSA4Ni44IDQuOCAxMDQtLjZTMzAwIDE2LjcgMzM5LTE2LjljMTUuOS0xMy43IDM3LjctMTguNSA1Ny44LTEyLjdzMzYuMSAyMS4zIDQyLjQgNDEuNEw0NjIuOCA4NyA1NDMuNiAzNy4zYzYtMy43IDEzLjQtNC4zIDE5LjktMS42czExLjMgOC4zIDEyLjkgMTUuMmMxNi4yIDY4LjItMTIuNCAxNDAuMy03Mi4xIDE3OS41ek0yNTguNSA0NzUuOWwwIDBjMTUuMSA3LjUgMjEuNSAyNS44IDE0LjIgNDFzLTI1LjQgMjEuOS00MC43IDE0LjlsLTQzLjktMjFjLTE1LjEtNy41LTIxLjUtMjUuOC0xNC4yLTQxczI1LjQtMjEuOSA0MC43LTE0LjlsNDMuOCAyMXpNNTY0LjYgMzQ1LjdjMTQuOCA4LjQgMjAgMjcuMyAxMS42IDQyLjJsLTIzLjkgNDIuNGMtOC43IDE0LjMtMjcuMSAxOS4yLTQxLjYgMTAuOXMtMTkuOS0yNi42LTEyLTQxLjRsMjMuOS00Mi40YzQtNy4xIDEwLjctMTIuNCAxOC42LTE0LjZzMTYuMy0xLjIgMjMuNCAyLjl6XCJdXG59O1xudmFyIGZhRmlyc3RkcmFmdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdmaXJzdGRyYWZ0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmM2ExXCIsIFwiTTM4NCAxOTJsLTY0IDAgMCAxMjgtMTI4IDAgMCAxMjgtMTkyIDAgMC0yNS42IDE2Ni40IDAgMC0xMjggMTI4IDAgMC0xMjggODkuNiAwIDAgMjUuNnptLTI1LjYgMzguNGwwIDEyOC0xMjggMCAwIDEyOC0xNjYuNCAwIDAgMjUuNiAxOTIgMCAwLTEyOCAxMjggMCAwLTE1My42LTI1LjYgMHptMjUuNiAxOTJsLTg5LjYgMCAwIDg5LjYgMjUuNiAwIDAtNjQgNjQgMCAwLTI1LjZ6TTAgMGwwIDM4NCAxMjggMCAwLTEyOCAxMjggMCAwLTEyOCAxMjggMCAwLTEyOC0zODQgMHpcIl1cbn07XG52YXIgZmFGcmVlYnNkID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ZyZWVic2QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzYTRcIiwgXCJNMzAzLjcgOTYuMmMxMS4xLTExLjEgMTE1LjUtNzcgMTM5LjItNTMuMiAyMy43IDIzLjctNDIuMSAxMjguMS01My4yIDEzOS4ycy0zOS40IC45LTYzLjEtMjIuOWMtMjMuOC0yMy43LTM0LjEtNTItMjIuOS02My4xek0xMDkuOSA2OC4xQzczLjYgNDcuNSAyMiAyNC42IDUuNiA0MS4xLTExIDU3LjcgMTIuNyAxMTAuNSAzMy41IDE0Ni44IDUyIDExNC42IDc4LjMgODcuNSAxMDkuOSA2OC4xek00MDYuNyAxNzRjMy4zIDExLjMgMi43IDIwLjctMi43IDI2LjEtMjAuMyAyMC4zLTg3LjUtMjctMTA5LjMtNzAuMS0xOC0zMi4zLTExLjEtNTMuNCAxNC45LTQ4LjcgNS43LTMuNiAxMi4zLTcuNiAxOS42LTExLjYtMjkuOC0xNS41LTYzLjYtMjQuMy05OS41LTI0LjMtMTE5LjEgMC0yMTUuNiA5Ni41LTIxNS42IDIxNS42IDAgMTE5IDk2LjUgMjE1LjYgMjE1LjYgMjE1LjZTNDQ1LjMgMzgwLjEgNDQ1LjMgMjYxYzAtMzguNC0xMC4xLTc0LjUtMjcuNy0xMDUuOC0zLjkgNy03LjYgMTMuMy0xMC45IDE4Ljh6XCJdXG59O1xudmFyIGZhT2R5c2VlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ29keXNlZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTVjNlwiLCBcIk00MDYuNyA0NjNjLTQyLjMgMzAuOC05NC40IDQ5LTE1MC43IDQ5LTExMS4xIDAtMjA1LjctNzAuOC0yNDEuMS0xNjkuOCAyLjQgMS43IDUuOSAzLjYgNy45IDQuNCAxNi4zIDcuNCA0MC4xLTUuNCA2Mi45LTI4LjcgNi45LTYuOSAxNC40LTEyLjQgMjIuOC0xNy4zIDE4LjMtMTEuOSAzNy42LTIwLjggNTguNC0yNy4yIDAgMCAyMi4zIDM0LjIgNDMuMSA3NC44cy0yMi4zIDU0LTI3LjIgNTRjLS4zIDAtLjggMC0xLjUtLjEtMTEtLjUtNzAtMy01NiA1MS4xIDE0LjkgNTcuNCA5Ny41IDM2LjYgMTM5LjYgOC45czMxLjctMTE4LjMgMzEuNy0xMTguM2M0MS4xLTYuNCA1NCAzNy4xIDU3LjkgNTkuNCAuOCA0LjYgMS4xIDkuOSAxLjQgMTUuNSAxLjEgMjEuMiAyLjMgNDUuNiAzNS4zIDQ2LjQgNS4zIDAgMTAuNi0uOCAxNS41LTJsMC0uMXptLTk1LjMtMjMuN2MtMi0uNS0zLjUtMi41LTMtNSAxLTIuNSAzLTMuNSA1LTNzMy41IDMgMyA1LTIuNSAzLjUtNSAzem0tMjA3LTk1LjZjMS41LS41IDMuNSAxIDQgMyAwIDItMSA0LTMgNC0xLjUgLjUtMy41LTEtNC0zLS41LTEuNSAxLTMuNSAzLTR6TTQ1MS44IDQyMWMzNy41LTQ0LjYgNjAuMi0xMDIuMiA2MC4yLTE2NSAwLTY3LjUtMjYuMS0xMjguOS02OC44LTE3NC43LS4xIDIzLjUtNi4xIDQ4LjItMTYuOCA2OS4yLTExLjkgMjAuMy00OSA1OC45LTY5LjggNzguNy0uNyAuMy0xLjEgLjktMS41IDEuNC0uMiAuMi0uMyAuNC0uNSAuNi01IDYuOS00IDE2LjggMyAyMS44IDIxLjMgMTUuOCA1Ni40IDQ1LjYgNTkuNCA3Mi44IDMuNSAzNC45IDI3LjkgNzUuNiAzNC4yIDg2LjIgLjggMS4zIDEuMyAyLjEgMS40IDIuNCAwIDIuMi0uNCA0LjMtLjggNi41bDAgLjF6TTM5MC43IDI1MWMtLjUgMyAxIDUuOSA0IDYuNHM1LjktMSA2LjQtNC0xLTUuOS00LTYuNGMtMy0xLTUuOSAxLTYuNCA0em02MS40LTYwLjlsLTExLjQgNS40LTMgMTIuOS01LjQtMTEuNC0xMi45LTMgMTEuNC01LjQgMy0xMi45IDUuNCAxMS40IDEyLjkgM3pNMzk1LjUgNDEuM2MtMTYuMiA4LjItMjIuMSAzMi44LTI5IDYxLjQtLjMgMS40LS43IDIuOC0xIDQuMi05LjUgMzguNS0zMC42IDM3LjYtNDEuNyAzNy4yLTEuMSAwLTItLjEtMi45LS4xLTUuMSAwLTYtNC04LjktMTcuMS0yLjYtMTIuMS02LjktMzItMTcuOS02My42LTIyLjctNjUuOC04Mi43LTQ5LjQtMTI4LjItMjIuMi01NS4zIDMzLjEtMzQuNCAxMDEuOS0xOS44IDE0OS40IC43IDIuMiAxLjQgNC40IDIgNi42LTQgNC0xMy44IDcuNS0yNiAxMS45LTEyLjEgNC4zLTI2LjYgOS41LTQwLjMgMTYuOS0zMy45IDE4LTcwLjMgNDktNzkuOCA2Mi42LTEuMy0xMC43LTItMjEuNS0yLTMyLjUgMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiA1MS40IDAgOTkuNCAxNS4yIDEzOS41IDQxLjN6TTU4LjkgMTg5LjZjLTEuNS0yLTQuNS0zLTYuNC0xLjVzLTMgNC41LTEuNSA2LjQgNC41IDMgNi40IDEuNWMyLjUtMS41IDMtNC41IDEuNS02LjR6TTMyNy4zIDY0LjljMi0xLjUgNS0uNSA2LjQgMS41IDEuNSAyLjUgMSA1LjQtMS41IDYuNC0yIDEuNS01IC41LTYuNC0xLjVzLS41LTUgMS41LTYuNHpNOTUuMSAxMDVjLS41IDEuNSAuNSAzIDIgMyAxLjUgLjUgMy0uNSAzLTIgLjUtMS41LS41LTMtMi0zcy0zIC41LTMgMnptODQuNy0uNWMtMy41LTQzLjEgMzcuMS01NCAzNy4xLTU0IDQ0LjEtMTUuNCA1NiA1LjkgNjYuNCAzNy42czMgNDIuNi0zOC42IDU4LjktNjEuOS00LjUtNjQuOS00Mi42bDAgLjF6bTg5LjYgMTQuOWwxIDBjMi41IDAgNS0yIDUtNSAyLTYuOSAxLTE0LjQtMi0yMC44LTEuNS0yLTQtMy41LTYuNC0yLjUtMyAxLTQuNSA0LTMuNSA2LjkgMiA0LjUgMyA5LjkgMS41IDE0LjktLjUgMyAxLjUgNS45IDQuNSA2LjRsLS4xIC4xem0tOS45LTQxLjZjLTIgMC00LTEtNS0zcy0yLTMuNS0zLTVjLTItMi0yLTUuNCAwLTcuNHM1LjQtMiA3LjQgMGMyIDIuNSAzLjUgNSA1IDcuNHMuNSA1LjktMi41IDcuNGMtLjYgMC0xIC4yLTEuMyAuMy0uMiAuMS0uNCAuMi0uNiAuMmwwIC4xelwiXVxufTtcbnZhciBmYUdnQ2lyY2xlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2dnLWNpcmNsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI2MVwiLCBcIk0yNTcuNSA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMjA4IDM4Mi44bC0xMjUuNy0xMjUuNyAxMjUuNy0xMjUuNyAzNS4yIDM1LjQtMjQuMiAyNC4yLTExLjEtMTEuMS03Ny4yIDc3LjIgNzcuMiA3Ny4yIDI2LjYtMjYuNi01My4xLTUyLjkgMjQuNC0yNC40IDc3LjIgNzcuMi03NSA3NS4yem05OS0yLjJsLTM1LjItMzUuMiAyNC4xLTI0LjQgMTEuMSAxMS4xIDc3LjItNzcuMi03Ny4yLTc3LjItMjYuNSAyNi41IDUzLjEgNTIuOS0yNC40IDI0LjQtNzcuMi03Ny4yIDc1LTc1IDEyNS43IDEyNS43LTEyNS43IDEyNS42elwiXVxufTtcbnZhciBmYUNsb3VkZmxhcmUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY2xvdWRmbGFyZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA3ZFwiLCBcIk00MDcuOSAzMTkuOUwxNzcuMSAzMTdjLS43IDAtMS40LS4yLTItLjVzLTEuMi0uOC0xLjYtMS40Yy0uNC0uNi0uNy0xLjMtLjctMnMwLTEuNCAuMi0yLjFjLjQtMS4xIDEuMS0yLjEgMi4xLTIuOHMyLjEtMS4yIDMuMy0xLjJsMjMyLjktMi45YzI3LjYtMS4zIDU3LjUtMjMuNiA2OC01MC44bDEzLjMtMzQuNWMuNC0uOSAuNS0xLjkgLjUtMi45IDAtLjUtLjEtMS4xLS4yLTEuNi03LjQtMzIuMi0yNS02MS4xLTUwLjMtODIuM3MtNTYuNy0zMy43LTg5LjctMzUuNS02NS42IDcuMy05MyAyNS43LTQ4IDQ1LjMtNTguOCA3Ni41Yy0xMS4zLTguNS0yNC45LTEzLjMtMzktMTMuN3MtMjggMy41LTM5LjggMTEuNC0yMC44IDE5LjEtMjUuOSAzMi4zLTUuOSAyNy42LTIuNCA0MS4zYy01Mi4zIDEuNS05NC4yIDQ0LjEtOTQuMiA5Ni41IDAgNC43IC4zIDkuMyAxIDE0IC4yIDEuMSAuNyAyLjEgMS41IDIuOHMxLjkgMS4xIDIuOSAxLjFsNDI2LjEgLjFjMCAwIC4xIDAgLjEgMCAxLjIgMCAyLjMtLjQgMy4zLTEuMXMxLjYtMS43IDItMi45bDMuMy0xMS4zYzMuOS0xMy40IDIuNC0yNS44LTQuMS0zNC45LTYtOC40LTE2LjEtMTMuMy0yOC4yLTEzLjl6bTEwNS45LTk4LjhjLTIuMSAwLTQuMyAuMS02LjQgLjItLjggLjEtMS41IC4zLTIuMSAuOHMtMSAxLjEtMS4zIDEuOGwtOS4xIDMxLjJjLTMuOSAxMy40LTIuNCAyNS44IDQuMSAzNC45IDYgOC40IDE2LjEgMTMuMyAyOC4yIDEzLjlsNDkuMiAyLjljLjcgMCAxLjQgLjIgMiAuNXMxLjEgLjggMS41IDEuNGMuNCAuNiAuNyAxLjMgLjggMnMwIDEuNS0uMiAyLjFjLS40IDEuMS0xLjEgMi4xLTIuMSAyLjhzLTIuMSAxLjItMy4zIDEuMmwtNTEuMSAyLjljLTI3LjggMS4zLTU3LjcgMjMuNi02OC4xIDUwLjhsLTMuNyA5LjZjLS4yIC40LS4yIC44LS4yIDEuM3MuMiAuOCAuNCAxLjIgLjYgLjcgLjkgLjkgLjggLjMgMS4yIC4zYzAgMCAuMSAwIC4xIDBsMTc1LjkgMGMxIDAgMi0uMyAyLjgtLjlzMS40LTEuNSAxLjctMi40YzMuMS0xMS4xIDQuNy0yMi41IDQuNy0zNCAwLTY5LjMtNTYuNS0xMjUuNS0xMjYuMS0xMjUuNXpcIl1cbn07XG52YXIgZmFIYWNrZXJyYW5rID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2hhY2tlcnJhbmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1ZjdcIiwgXCJNNDc3LjkgMTI4QzQ2My40IDEwMyAyODUuNSAwIDI1Ni41IDBzLTIwNi45IDEwMi44LTIyMS4zIDEyOC0xNC41IDIzMC44IDAgMjU2IDE5Mi40IDEyOCAyMjEuMyAxMjggMjA2LjgtMTAyLjkgMjIxLjMtMTI4IDE0LjUtMjMxIDAtMjU2ek0zMTYuNSA0MTQuMmMtNCAwLTQwLjktMzUuOC0zOC0zOC43IC45LS45IDYuMy0xLjUgMTcuNS0xLjggMC0yNi4yIC42LTY4LjYgLjktODYuMyAwLTItLjQtMy40LS40LTUuOGwtNzkuOSAwYzAgNy4xLS41IDM2LjIgMS40IDcyLjkgLjIgNC41LTEuNiA2LTUuNyA1LjktMTAuMSAwLTIwLjMtLjEtMzAuNC0uMS00LjEgMC01LjktMS41LTUuNy02LjEgLjktMzMuNCAzLTg0LS4yLTIxMi43bDAtMy4yYy05LjctLjQtMTYuNC0xLTE3LjMtMS44LTIuOS0yLjkgMzQuNS0zOC43IDM4LjUtMzguN3M0MS4yIDM1LjggMzguMyAzOC43Yy0uOSAuOS03LjkgMS41LTE2LjggMS44bDAgMy4yYy0yLjQgMjUuOC0yIDc5LjYtMi42IDEwNS40bDgwLjMgMGMwLTQuNiAuNC0zNC43LTEuMi04My42LS4xLTMuNCAxLTUuMiA0LjItNS4yIDExLjEtLjEgMjIuMi0uMSAzMy4yLS4xIDMuNSAwIDQuNiAxLjcgNC41IDUuNC0zLjcgMTkxLjMtLjcgMTc3LjktLjcgMjEwLjMgOC45IC40IDE2LjggMSAxNy43IDEuOCAyLjkgMi45LTMzLjYgMzguNy0zNy42IDM4LjdsMCAwelwiXVxufTtcbnZhciBmYVNreWF0bGFzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NreWF0bGFzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMjE2XCIsIFwiTTY0MCAzMjkuM2MwIDY1LjktNTIuNSAxMTQuNC0xMTcuNSAxMTQuNC0xNjUuOSAwLTE5Ni42LTI0OS43LTM1OS43LTI0OS43LTE0Ni45IDAtMTQ3LjEgMjEyLjIgNS42IDIxMi4yIDQyLjUgMCA5MC45LTE3LjggMTI1LjMtNDIuNSA1LjYtNC4xIDE2LjktMTYuMyAyMi44LTE2LjNzMTAuOSA1IDEwLjkgMTAuOWMwIDcuOC0xMy4xIDE5LjEtMTguNyAyNC4xLTQwLjkgMzUuNi0xMDAuMyA2MS4yLTE1NC43IDYxLjItODMuNCAuMS0xNTQtNTktMTU0LTE0NC45UzY3LjUgMTQ5LjYgMTUyLjggMTQ5LjZjMTg1LjMgMCAyMjIuNSAyNDUuOSAzNjEuOSAyNDUuOSA5OS45IDAgOTQuOC0xMzkuNyAzLjQtMTM5LjctMTcuNSAwLTM1IDExLjYtNDYuOSAxMS42LTguNCAwLTE1LjktNy4yLTE1LjktMTUuNiAwLTExLjYgNS4zLTIzLjcgNS4zLTM2LjMgMC02Ni42LTUwLjktMTE0LjctMTE2LjktMTE0LjctNTMuMSAwLTgwIDM2LjktODguOCAzNi45LTYuMiAwLTExLjItNS0xMS4yLTExLjIgMC01LjYgNC4xLTEwLjMgNy44LTE0LjQgMjUuMy0yOC44IDY0LjctNDMuNyAxMDIuOC00My43IDc5LjQgMCAxMzkuMSA1OC40IDEzOS4xIDEzNy44IDAgNi45LS4zIDEzLjctMS4yIDIwLjYgMTEuOS0zLjEgMjQuMS00LjcgMzUuOS00LjcgNjAuNyAwIDExMS45IDQ1LjMgMTExLjkgMTA3LjJ6XCJdXG59O1xudmFyIGZhRGVza3BybyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdkZXNrcHJvJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMzhmXCIsIFwiTTIyMiA1MTJsMzEuMS0zOC40YzEyLjMtLjIgMjUuNi0xLjQgMzYuNS02LjYgMzguOS0xOC42IDM4LjQtNjEuOSAzOC4zLTYzLjgtLjEtNS0uOC00LjQtMjguOS0zNy40bDc5LjEgMGMtLjIgNTAuMS03LjMgNjguNS0xMC4yIDc1LjctOS40IDIzLjctNDMuOSA2Mi44LTk1LjIgNjkuNC04LjcgMS4xLTMyLjggMS4yLTUwLjcgMS4xek00MjIuNCAzNDQuM2MzOC42IDAgNTguNS0xMy42IDczLjctMzAuOWwtMTc1LjUtLjMtMTcuNCAzMS4zIDExOS4yLS4xek0zNzguOCAxMjAuNGwwIDE2OC4zLTczLjUgMC0zMi43IDU1LjUtNi41IDBjLTUyLjMgMC01OC4xLTU2LjUtNTguMy01OC45LTEuMi0xMy4yLTIxLjMtMTEuNi0yMC4xIDEuOCAxLjQgMTUuOCA4LjggNDAgMjYuNCA1Ny4xbC05MSAwYy0yNS41IDAtMTEwLjgtMjYuOC0xMDctMTE0bDAtMjEzLjNjMC0xNiA5LjctMTYuNiAxNS0xNi44bDgyIDBjLjIgMCAuMyAuMSAuNSAuMSA0LjMtLjQgNTAuMS0yLjEgNTAuMSA0My43IDAgMTMuMyAyMC4yIDEzLjQgMjAuMiAwIDAtMTguMi01LjUtMzIuOC0xNS44LTQzLjdsODQuMiAwQzM2MS0uMiAzNzguOCA3OS42IDM3OC44IDEyMC40em0tMTMyLjUgNTZsNjQgMjkuM2MxMy4zLTQ1LjUtNDIuMi03MS43LTY0LTI5LjN6XCJdXG59O1xudmFyIGZhUmVzb2x2aW5nID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3Jlc29sdmluZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjNlN1wiLCBcIk0yODkuMiAyNzguMmM0Ni0xMy4zIDQ5LjYtMjMuNSA0NC00My40TDMyMiAxOTUuNWMtNi4xLTIwLjktMTguNC0yOC4xLTcxLjEtMTIuOGwtMTg4LjIgNTQuMSAyOC42IDk4LjYgMTk3LjktNTcuMnpNMjU2LjUgOEMxMzkuNCA4IDQxLjIgODguNyAxNS4yIDE5Ny41bDIyMS45LTYzLjljMzQuOC0xMC4yIDU0LjItMTEuNyA3OS4zLTguMiAzNi4zIDYuMSA1Mi43IDI1IDYxLjQgNTUuMmwxMC43IDM3LjhjOC4yIDI4LjEgMSA1MC42LTIzLjUgNzMuNi0xOS40IDE3LjQtMzEuMiAyNC41LTYxLjQgMzMuMmwtOTIuNiAyNi42IDIyMC40IDI3LjEgOS43IDM0LjItNDguMSAxMy4zLTI4Ni44LTM3LjMgMjMgODAuMkMxNjYgNDkxLjMgMjA5LjUgNTA0IDI1NS41IDUwNCAzOTIuNSA1MDQgNTA0IDM5Mi42IDUwNCAyNTUuNyA1MDUgMTE5LjQgMzkzLjUgOCAyNTYuNSA4ek00Ni4zIDM4OC42TDggMjU2LjhjMCA0OC41IDE0LjMgOTMuNCAzOC4zIDEzMS44elwiXVxufTtcbnZhciBmYUJsYWNrYmVycnkgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYmxhY2tiZXJyeScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjM3YlwiLCBcIk0xNjYgMTE2LjljMCAyMy40LTE2LjQgNDkuMS03Mi41IDQ5LjFsLTcwLjEgMCAyMS04OC44IDY3LjggMGM0Mi4xIDAgNTMuOCAyMy4zIDUzLjggMzkuN3pNMjkyLjIgNzcuMmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTMuOCAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuNC0xMS42LTM5LjctNTMuNy0zOS43ek04OC44IDIwOC4xbC02Ny44IDAtMjEgODguOCA3MC4xIDBjNTYuMSAwIDcyLjUtMjMuNCA3Mi41LTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My44LTM5Ljd6bTE4MC4xIDBsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuNy0zOS43em0xODkuMy01My44bC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMSAuMS0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6bS0yOCAxMzcuOWwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6TTI0MC44IDM0NmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43elwiXVxufTtcbnZhciBmYVN0cmlwZVMgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3RyaXBlLXMnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY0MmFcIiwgXCJNMTU1LjYgMTU0LjZjMC0yMi4zIDE4LjYtMzAuOSA0OC40LTMwLjkgNDMuNCAwIDk4LjUgMTMuMyAxNDEuOSAzNi43bDAtMTM0LjNjLTQ3LjMtMTguOS05NC41LTI2LjEtMTQxLjgtMjYuMS0xMTUuNyAwLTE5Mi44IDYwLjQtMTkyLjggMTYxLjQgMCAxNTcuOSAyMTYuOCAxMzIuMyAyMTYuOCAyMDAuNCAwIDI2LjQtMjIuOSAzNC45LTU0LjcgMzQuOS00Ny4yIDAtMTA4LjItMTkuNS0xNTYuMS00NS41bDAgMTI4LjVjNDkuMyAyMS4zIDEwMi4zIDMyLjMgMTU2IDMyLjQgMTE4LjYgMCAyMDAuMy01MSAyMDAuMy0xNTMuNiAwLTE3MC4yLTIxOC0xMzkuNy0yMTgtMjAzLjl6XCJdXG59O1xudmFyIGZhU3F1YXJlQmVoYW5jZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtYmVoYW5jZScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiYmVoYW5jZS1zcXVhcmVcIl0sIFwiZjFiNVwiLCBcIk0xNTUuMyAzMTguNGMxNy4yIDAgMzEuMi02LjEgMzEuMi0yNS40IDAtMTkuNy0xMS43LTI3LjQtMzAuMy0yNy41bC00NiAwIDAgNTIuOSA0NS4xIDB6bS01LjQtMTI5LjZsLTM5LjYgMCAwIDQ0LjggNDIuNyAwYzE1LjEgMCAyNS44LTYuNiAyNS44LTIyLjkgMC0xNy43LTEzLjctMjEuOS0yOC45LTIxLjl6bTEyOS41IDc0LjhsNjIuMiAwYy0xLjctMTguNS0xMS4zLTI5LjctMzAuNS0yOS43LTE4LjMgMC0zMC41IDExLjQtMzEuNyAyOS43ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMzQ5LjUgMTg1bC03Ny44IDAgMC0xOC45IDc3LjggMCAwIDE4Ljl6TTE5My43IDI0My43YzIzLjYgNi43IDM1IDI3LjUgMzUgNTEuNiAwIDM5LTMyLjcgNTUuNy02Ny42IDU1LjlsLTkzLjEgMCAwLTE5MiA5MC41IDBjMzIuOSAwIDYxLjQgOS4zIDYxLjQgNDcuNSAwIDE5LjMtOSAyOC44LTI2LjIgMzd6bTExOC43LTM4LjZjNDMuNSAwIDY3LjYgMzQuMyA2Ny42IDc1LjQgMCAxLjYtLjEgMy4zLS4yIDUgMCAuOC0uMSAxLjUtLjEgMi4ybC0xMDAuMiAwYzAgMjIuMiAxMS43IDM1LjMgMzQuMSAzNS4zIDExLjYgMCAyNi41LTYuMiAzMC4yLTE4LjFsMzMuNyAwYy0xMC40IDMxLjktMzEuOSA0Ni44LTY1LjEgNDYuOC00My44IDAtNzEuMS0yOS43LTcxLjEtNzMgMC00MS44IDI4LjctNzMuNiA3MS4xLTczLjZ6XCJdXG59O1xudmFyIGZhQmVoYW5jZVNxdWFyZSA9IGZhU3F1YXJlQmVoYW5jZTtcbnZhciBmYVNlcnZpY2VzdGFjayA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzZXJ2aWNlc3RhY2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzZWNcIiwgXCJNOTYgMjE2YzgxLjcgMTAuMiAyNzMuNyAxMDIuMyAzMDQgMjMyTDggNDQ4Yzk5LjUtOC4xIDE4NC41LTEzNyA4OC0yMzJ6TTEyOCA2NGMzMi4zIDM1LjYgNDcuNyA4My45IDQ2LjQgMTMzLjYgODIuOSAzMy43IDIwNy4zIDEyMy43IDIzMy42IDI1MC40bDk2IDBDNDYzLjMgMjMxLjkgMjMwLjggNzkuNSAxMjggNjR6XCJdXG59O1xudmFyIGZhUm9ja2V0Y2hhdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdyb2NrZXRjaGF0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmM2U4XCIsIFwiTTI4NC41IDIyNC44Yy02LjcgMC0xMy4zIDIuMS0xOC45IDUuOHMtOS45IDkuMS0xMi41IDE1LjQtMy4yIDEzLjEtMS45IDE5LjcgNC42IDEyLjcgOS40IDE3LjQgMTAuOSA4IDE3LjUgOS4zIDEzLjUgLjYgMTkuNy0yIDExLjUtNyAxNS4zLTEyLjYgNS43LTEyLjIgNS43LTE4LjljMC05LjEtMy43LTE3LjgtMTAuMS0yNC4ycy0xNS4xLTEwLTI0LjItOS45em0tMTEwLjQgMGMtNi43IDAtMTMuMyAyLjEtMTguOSA1LjhzLTkuOSA5LjEtMTIuNSAxNS40LTMuMiAxMy4xLTEuOSAxOS43IDQuNiAxMi43IDkuNCAxNy40IDEwLjkgOCAxNy41IDkuMyAxMy41IC42IDE5LjctMiAxMS41LTcgMTUuMy0xMi42IDUuNy0xMi4yIDUuNy0xOC45YzAtOS4xLTMuNy0xNy44LTEwLjEtMjQuMnMtMTUuMS0xMC0yNC4yLTEwbDAgMHptMjIwLjkgMGEzNC4xIDM0LjEgMCAxIDAgLjQgNjguMiAzNC4xIDM0LjEgMCAxIDAgLS40LTY4LjJ6bTE1My44LTU1LjNjLTE1LjUtMjQuMi0zNy4zLTQ1LjYtNjQuNy02My42LTUyLjktMzQuOC0xMjIuNC01NC0xOTUuNy01NC0yNC4yIDAtNDguMyAyLjEtNzIgNi40LTE0LjktMTQuMy0zMS41LTI2LjYtNDkuNS0zNi42LTY2LjgtMzMuMy0xMjUuNi0yMC45LTE1NS4zLTEwLjItMi4zIC44LTQuMyAyLjEtNS45IDMuOXMtMi43IDMuOS0zLjMgNi4yLS41IDQuNyAuMSA3LjEgMS44IDQuNCAzLjUgNi4xQzI3IDU2LjUgNjEuNiA5OS4zIDUzLjEgMTM4LjMgMjAgMTcyLjIgMiAyMTMgMiAyNTUuNiAyIDI5OSAyMCAzMzkuOCA1My4xIDM3My43IDYxLjYgNDEyLjcgMjcgNDU1LjYgNiA0NzcuMiA0LjMgNDc5IDMuMiA0ODEuMSAyLjUgNDgzLjRzLS43IDQuNy0uMSA3IDEuNyA0LjUgMy4zIDYuMiAzLjYgMy4xIDUuOSAzLjljMjkuNyAxMC43IDg4LjUgMjMuMSAxNTUuMy0xMC4yIDE4LTEwIDM0LjctMjIuMyA0OS41LTM2LjYgMjMuOCA0LjMgNDcuOSA2LjQgNzIgNi40IDczLjMgMCAxNDIuOC0xOS4yIDE5NS43LTU0IDI3LjQtMTggNDkuMS0zOS40IDY0LjctNjMuNiAxNy4zLTI2LjkgMjYuMS01NS45IDI2LjEtODYuMSAwLTMxLTguOC02MC0yNi4xLTg2LjlsMCAwek0yODUuNCA0MDkuOWMtMzAuMiAuMS02MC4zLTMuOC04OS40LTExLjVsLTIwLjEgMTkuNGMtMTEuMiAxMC43LTIzLjYgMjAtMzcuMSAyNy42LTE2LjQgOC4yLTM0LjIgMTMuMy01Mi41IDE0LjkgMS0xLjggMS45LTMuNiAyLjgtNS40IDIwLjItMzcuMSAyNS42LTcwLjUgMTYuMy0xMDAuMS0zMy0yNi01Mi44LTU5LjItNTIuOC05NS40IDAtODMuMSAxMDQuMy0xNTAuNSAyMzIuOC0xNTAuNXMyMzIuOSA2Ny40IDIzMi45IDE1MC41YzAgODMuMS0xMDQuMyAxNTAuNS0yMzIuOSAxNTAuNXpcIl1cbn07XG52YXIgZmFSZWJlbCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdyZWJlbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFkMFwiLCBcIk0yNTYuOSA1MDRjLTEzOS4zIDAtMjQ3LjUtMTE2LjItMjQzLjMtMjU0LjEgMi44LTc5LjIgNDMuMi0xNTIuMiAxMTYuNS0yMDAuNCAuMyAwIDEuOS0uNiAxLjEgLjgtNS44IDUuNS0xMTEuMyAxMjkuOC0xNC4xIDIyNi40IDQ5LjggNDkuNSA5MCAyLjUgOTAgMi41IDM4LjUtNTAuMS0uNi0xMjUuOS0uNi0xMjUuOS0xMC0yNC45LTQ1LjctNDAuMS00NS43LTQwLjFsMjguOC0zMS44YzI0LjQgMTAuNSA0My4yIDM4LjcgNDMuMiAzOC43IC44LTI5LjYtMjEuOS02MS40LTIxLjktNjEuNEwyNTUuNSA4IDI5OS44IDU4LjFjLTIwLjUgMjguOC0yMS45IDYyLjYtMjEuOSA2Mi42IDEzLjgtMjMgNDMuNS0zOS4zIDQzLjUtMzkuM2wyOC41IDMxLjhjLTI3LjQgOC45LTQ1LjQgMzkuOS00NS40IDM5LjktMTUuOCAyOC41LTI3LjEgODkuNCAuNiAxMjcuMyAzMi40IDQ0LjYgODcuNy0yLjggODcuNy0yLjggMTAyLjctOTEuOS0xMC41LTIyNS0xMC41LTIyNS02LjEtNS41IC44LTIuOCAuOC0yLjggNTAuMSAzNi41IDExNC42IDg0LjQgMTE2LjIgMjA0LjggMiAxNDUuNi05OS45IDI0OS40LTI0Mi40IDI0OS40elwiXVxufTtcbnZhciBmYVNxdWFyZVdlYkF3ZXNvbWUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3F1YXJlLXdlYi1hd2Vzb21lJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNjgzXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIzNSAxNzcuNmw1MyA0Ni40IDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRjLTEyLjktLjQtMjMuMi0xMS0yMy4yLTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNCAyMTMuMSAxNzcuNmMtOC45LTQuMS0xNS0xMy4xLTE1LTIzLjYgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNmMwIDEwLjUtNi4yIDE5LjUtMTUuMSAyMy42elwiXVxufTtcbnZhciBmYUxpbmt0cmVlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2xpbmt0cmVlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlN2Q4XCIsIFwiTTMyIDE3My40bDEyNS44IDAtODkuNC04NS40IDQ5LjUtNTEgODUuMiA4Ny44IDAtMTI0LjggNzMuOSAwIDAgMTI0LjggODUuMi04Ny42IDQ5LjQgNTAuOC04OS40IDg1LjIgMTI1LjcgMCAwIDcwLjUtMTI2LjQgMCA5MCA4Ny42LTQ5LjMgNDkuOC0xMjIuMi0xMjMtMTIyLjIgMTIzLTQ5LjUtNDkuNiA5MC04Ny42LTEyNi40IDAgMC03MC41ek0yMDIuOSAzNDQuOGw3My45IDAgMCAxNjcuMi03My45IDAgMC0xNjcuMnpcIl1cbn07XG52YXIgZmFTaW1wbHlidWlsdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzaW1wbHlidWlsdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjIxNVwiLCBcIk00ODEuNiA2NGwtMTA2IDBDMzYxLjEgNjQgMzQ5IDc1LjggMzQ5IDkwLjNsMCAzOS42LTE4NS4zIDAgMC0zOS42YzAtMTQuNS0xMi0yNi4zLTI2LjYtMjYuM2wtMTA2IDBDMTYuNSA2NCA0LjcgNzUuOCA0LjcgOTAuM2wwIDMzMS40YzAgMTQuNSAxMS44IDI2LjMgMjYuNiAyNi4zbDQ1MC40IDBjMTQuOCAwIDI2LjYtMTEuOCAyNi42LTI2LjNsMC0zMzEuNGMtLjItMTQuNS0xMi0yNi4zLTI2LjctMjYuM3pNMTUwLjUgMjIyLjdhNjYuNSA2Ni41IDAgMSAxIC0uMyAxMzMuMSA2Ni41IDY2LjUgMCAxIDEgLjMtMTMzLjF6bTIxMS45IC4xYTY2LjUgNjYuNSAwIDEgMSAuMyAxMzIuOSA2Ni41IDY2LjUgMCAxIDEgLS4zLTEzMi45elwiXVxufTtcbnZhciBmYVN0dWJiZXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3R1YmJlcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTVjN1wiLCBcIk0xMzYuNSAyOTQuMmw1OC44IDIyLjljOS4xLTM2LjggMjUuNC02MS4xIDU1LTYxLjEgNDkuNCAwIDcxLjQgNjMuNiAxNDIuNCA2My42IDE1LjYgMCAzNS45LTIuOCA1NS4zLTEzLjNsMCA2MS43YzAgNjEuOC01MC40IDExMi0xMTIuMyAxMTJMMCA0ODAgNDEuOCA0MjQgMCAzNjggNDEuNyAzMTIgMCAyNTYuMSA0MS44IDIwMC4xIDAgMTQ0LjEgNDEuOCA4OCAwIDMyIDMzNS43IDMyQzM5Ny42IDMyIDQ0OCA4Mi4zIDQ0OCAxNDQuMWwwIDUxLjNjLTkuMiAzNi4zLTI1LjkgNjAuNi01NSA2MC42LTQ5LjYgMC03MS42LTYzLjUtMTQyLjQtNjMuNS0zNS45IDAtOTUuMiAxNC42LTExNC4xIDEwMS42bDAgLjF6XCJdXG59O1xudmFyIGZhQXBwZXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYXBwZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYzNzFcIiwgXCJNNDIuMSAyMzkuMWMyMi4yIDAgMjkgMi44IDMzLjUgMTQuNmwuOCAwIDAtMjIuOWMwLTExLjMtNC44LTE1LjQtMTcuOS0xNS40LTExLjMgMC0xNC40IDIuNS0xNS4xIDEyLjhsLTM4LjYgMGMuMy0xMy45IDEuNS0xOS4xIDUuOC0yNC40IDcuMy04LjggMTguOS0xMS44IDQ2LjEtMTEuOCAzMyAwIDQ3LjEgNSA1My45IDE4LjkgMiA0LjMgNCAxNS42IDQgMjMuN2wwIDc2LjMtMzguMyAwIDEuMy0xOS4xLTEgMGMtNS4zIDE1LjYtMTMuNiAyMC40LTM1LjUgMjAuNC0zMC4zIDAtNDEuMS0xMC4xLTQxLjEtMzcuMyAwLTI1LjIgMTIuMy0zNS44IDQyLjEtMzUuOHptMTcuMSA0OC4xYzEzLjEgMCAxNi45LTMgMTYuOS0xMy40IDAtOS4xLTQuMy0xMS42LTE5LjYtMTEuNi0xMy4xIDAtMTcuOSAzLTE3LjkgMTIuMS0uMSAxMC40IDMuNyAxMi45IDIwLjYgMTIuOXpNMTM3IDE5Mi4zbDM4LjMgMC0xLjUgMjAuNiAuOCAwYzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjIgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4ybC0uOCAwIDAgNzAuMy0zOS41IDAgMC0xNjl6TTIxNy45IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTU3LjktNjAuN2wzOC4zIDAtMS41IDIwLjYgLjggMGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4zIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmwtLjggMCAwIDcwLjMtMzkuNSAwIDAtMTY5IC4xIDB6TTM1Ni43IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTUzLjgtMy44YzAtMjUuNCAzLjMtMzcuOCAxMi4zLTQ1LjggOC44LTguMSAyMi4yLTExLjMgNDUuMS0xMS4zIDQyLjggMCA1NS43IDEyLjggNTUuNyA1NS43bDAgMTEuMS03NS4zIDBjLS4zIDItLjMgNC0uMyA0LjggMCAxNi45IDQuNSAyMS45IDIwLjEgMjEuOSAxMy45IDAgMTcuOS0zIDE3LjktMTMuOWwzNy41IDAgMCAyLjNjMCA5LjgtMi41IDE4LjktNi44IDI0LjctNy4zIDkuOC0xOS42IDEzLjYtNDQuMyAxMy42LTI3LjUgMC00MS42LTMuMy01MC42LTEyLjMtOC41LTguNS0xMS4zLTIxLjMtMTEuMy01MC44em03Ni40LTExLjZjLS4zLTEuOC0uMy0zLjMtLjMtMy44IDAtMTIuMy0zLjMtMTQuNi0xOS42LTE0LjYtMTQuNCAwLTE3LjEgMy0xOC4xIDE1LjFsLS4zIDMuMyAzOC4zIDB6bTU1LjYtNDUuM2wzOC4zIDAtMS44IDE5LjkgLjcgMGM2LjgtMTQuOSAxNC40LTIwLjIgMjkuNy0yMC4yIDEwLjggMCAxOS4xIDMuMyAyMy40IDkuMyA1LjMgNy4zIDYuOCAxNC40IDYuOCAzNCAwIDEuNSAwIDUgLjIgOS4zbC0zNSAwYy4zLTEuOCAuMy0zLjMgLjMtNCAwLTE1LjQtMi0xOS40LTEwLjMtMTkuNC02LjMgMC0xMC44IDMuMy0xMy4xIDkuMy0xIDMtMSA0LjMtMSAxMi4zbDAgNjgtMzguMyAwIDAtMTE4LjUgLjEgMHpcIl1cbn07XG52YXIgZmFHb29nbGVTY2hvbGFyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2dvb2dsZS1zY2hvbGFyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNjNiXCIsIFwiTTM5MC45IDI5OC41czAgLjEgLjEgLjFjOS4yIDE5LjQgMTQuNCA0MS4xIDE0LjQgNjQtLjEgODIuNS02Ni45IDE0OS40LTE0OS40IDE0OS40UzEwNi43IDQ0NS4xIDEwNi43IDM2Mi43YzAtMjIuOSA1LjItNDQuNiAxNC40LTY0IDEuNy0zLjYgMy42LTcuMiA1LjYtMTAuNyA0LjQtNy42IDkuNC0xNC43IDE1LTIxLjMgMjcuNC0zMi42IDY4LjUtNTMuMyAxMTQuNC01My4zIDMzLjYgMCA2NC42IDExLjEgODkuNiAyOS45IDkuMSA2LjkgMTcuNCAxNC43IDI0LjggMjMuNSA1LjYgNi42IDEwLjYgMTMuOCAxNSAyMS4zIDIgMy40IDMuOCA3IDUuNSAxMC41bC0uMS0uMXptMjYuNC0xOC44Yy0zMC4xLTU4LjQtOTEtOTguNC0xNjEuMy05OC40cy0xMzEuMiA0MC0xNjEuMyA5OC40bC05NC43LTc3IDI1Ni0yMDIuNyAyNTYgMjAyLjctOTQuNyA3Ny4xIDAtLjF6XCJdXG59O1xudmFyIGZhWWFybiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd5YXJuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2UzXCIsIFwiTTQwMS45IDM0NS4yYy0zOSA5LjMtNDguNCAzMi4xLTEwNCA0Ny40IDAgMC0yLjcgNC0xMC40IDUuOC0xMy40IDMuMy02My45IDYtNjguNSA2LjEtMTIuNCAuMS0xOS45LTMuMi0yMi04LjItNi40LTE1LjMgOS4yLTIyIDkuMi0yMi04LjEtNS05LTkuOS05LjgtOC4xLTIuNCA1LjgtMy42IDIwLjEtMTAuMSAyNi41LTguOCA4LjktMjUuNSA1LjktMzUuMyAuOC0xMC44LTUuNyAuOC0xOS4yIC44LTE5LjJzLTUuOCAzLjQtMTAuNS0zLjZjLTYtOS4zLTE3LjEtMzcuMyAxMS41LTYyLTEuMy0xMC4xLTQuNi01My43IDQwLjYtODUuNiAwIDAtMjAuNi0yMi44LTEyLjktNDMuMyA1LTEzLjQgNy0xMy4zIDguNi0xMy45IDUuNy0yLjIgMTEuMy00LjYgMTUuNC05LjEgMjAuNi0yMi4yIDQ2LjgtMTggNDYuOC0xOHMxMi40LTM3LjggMjMuOS0zMC40YzMuNSAyLjMgMTYuMyAzMC42IDE2LjMgMzAuNnMxMy42LTcuOSAxNS4xLTVjOC4yIDE2IDkuMiA0Ni41IDUuNiA2NS4xLTYuMSAzMC42LTIxLjQgNDcuMS0yNy42IDU3LjUtMS40IDIuNCAxNi41IDEwIDI3LjggNDEuMyAxMC40IDI4LjYgMS4xIDUyLjcgMi44IDU1LjMgLjggMS40IDEzLjcgLjggMzYuNC0xMy4yIDEyLjgtNy45IDI4LjEtMTYuOSA0NS40LTE3IDE2LjctLjUgMTcuNiAxOS4yIDQuOSAyMi4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00MTYuNyA3NS4yYy0xLjctMTMuNi0xMy4yLTIzLTI4LTIyLjgtMjIgLjMtNDAuNSAxMS43LTUyLjggMTkuMi00LjggMy04LjkgNS4yLTEyLjQgNi44IDMuMS00NC41LTIyLjUtNzMuMS0yOC43LTc5LjQgNy44LTExLjMgMTguNC0yNy44IDIzLjQtNTMuMiA0LjMtMjEuNyAzLTU1LjUtNi45LTc0LjUtMS42LTMuMS03LjQtMTEuMi0yMS03LjQtOS43LTIwLTEzLTIyLjEtMTUuNi0yMy44LTEuMS0uNy0yMy42LTE2LjQtNDEuNCAyOC0xMi4yIC45LTMxLjMgNS4zLTQ3LjUgMjIuOC0yIDIuMi01LjkgMy44LTEwLjEgNS40bC4xIDBjLTguNCAzLTEyLjMgOS45LTE2LjkgMjIuMy02LjUgMTcuNCAuMiAzNC42IDYuOCA0NS43LTE3LjggMTUuOS0zNyAzOS44LTM1LjcgODIuNS0zNCAzNi0xMS44IDczLTUuNiA3OS42LTEuNiAxMS4xIDMuNyAxOS40IDEyIDIzLjggMTIuNiA2LjcgMzAuMyA5LjYgNDMuOSAyLjggNC45IDUuMiAxMy44IDEwLjEgMzAgMTAuMSA2LjggMCA1OC0yLjkgNzIuNi02LjUgNi44LTEuNiAxMS41LTQuNSAxNC42LTcuMSA5LjgtMy4xIDM2LjgtMTIuMyA2Mi4yLTI4LjcgMTgtMTEuNyAyNC4yLTE0LjIgMzcuNi0xNy40IDEyLjktMy4yIDIxLTE1LjEgMTkuNC0yOC4yelwiXVxufTtcbnZhciBmYVN0YWNrT3ZlcmZsb3cgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3RhY2stb3ZlcmZsb3cnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxNmNcIiwgXCJNMjkxIDMxMWwtMTk1LjctNDEuMy04LjIgMzkuMyAxOTUuNyA0MSA4LjItMzl6bTUxLTg3TDE4OC41IDk1LjcgMTYzIDEyNi41IDMxNi41IDI1NC44IDM0MiAyMjR6bS0zMS4yIDM5LjdMMTI5LjUgMTc5IDExMi44IDIxNS41IDI5NCAzMDAgMzEwLjggMjYzLjd6TTI2Mi4zIDMybC0zMiAyNCAxMTkuMyAxNjAuMyAzMi0yNC0xMTkuMy0xNjAuM3ptMjAuNSAzMjhsLTIwMCAwIDAgMzkuNyAyMDAgMCAwLTM5Ljd6bTM5LjcgODBsLTI3OS41IDAgMC0xMjAtNDAgMCAwIDE2MCAzNTkuNSAwIDAtMTYwLTQwIDAgMCAxMjB6XCJdXG59O1xudmFyIGZhQmx1ZXRvb3RoID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2JsdWV0b290aCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjI5M1wiLCBcIk0yNjAuNiAxNzEuMWwtNDIuOSA0Mi45LS4zLTg2IDQzLjIgNDMuMXpNMjE3LjQgMzkwLjlsNDMuMS00My4xLTQyLjktNDIuOS0uMiA4NnpNMzg0IDI1OS40QzM4NCA0NjUgMzEyLjEgNTEyIDE5OC45IDUxMlMwIDQ2NSAwIDI1OS40IDgzLjQgMCAxOTYuNiAwIDM4NCA1My45IDM4NCAyNTkuNHptLTE1OC41IDBsNzkuNC04OC42LTEyNS4xLTEzNC4zIDAgMTc2LjktNzMuOC03My44LTI3IDI2LjkgOTIuNyA5My05Mi43IDkzIDI2LjkgMjYuOSA3My44LTczLjggMi4zIDE3MCAxMjcuNC0xMjcuNS04My45LTg4Ljd6XCJdXG59O1xudmFyIGZhQ3JlYXRpdmVDb21tb25zTmNKcCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjcmVhdGl2ZS1jb21tb25zLW5jLWpwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGVhXCIsIFwiTTI1NS43IDhDMTExLjYgOCA4IDEyNC44IDggMjU2IDggMzkyLjQgMTE5LjggNTA0IDI1NS43IDUwNCAzODUuOSA1MDQgNTA0IDQwMy4yIDUwNCAyNTYgNTA0IDExNy4yIDM5Ni41IDggMjU1LjcgOHptLjYgNDUwLjdjLTExMiAwLTIwMy42LTkyLjUtMjAzLjYtMjAyLjcgMC0yMS4xIDMtNDEuMiA5LTYwLjNsMTI3IDU2LjUtMjcuOSAwIDAgMzguNiA1OC4xIDAgNS43IDExLjggMCAxOC43LTYzLjggMCAwIDM4LjcgNjMuOCAwIDAgNTYgNjEuNyAwIDAtNTYgNjQuMiAwIDAtMzUuNyA4MSAzNi4xYy0xLjUgMi4yLTU3LjEgOTguMy0xNzUuMiA5OC4zem04Ny42LTEzNy4zbC01Ny42IDAgMC0xOC43IDIuOS01LjYgNTQuNyAyNC4zem02LjUtNTEuNGwwLTE3LjgtMzguNiAwIDYzLTExNi02NS44IDAtNDMuNCA5Ni0yMy0xMC4yLTM5LjYtODUuNy02NS44IDAgMjcuMyA1MS04MS45LTM2LjVjMjcuOC00NC4xIDgyLjYtOTguMSAxNzMuNy05OC4xIDExMi44IDAgMjAzIDkwIDIwMyAyMDMuNCAwIDIxLTIuNyA0MC42LTcuOSA1OUwzNTAuNCAyNzB6XCJdXG59O1xudmFyIGZhUmVkZGl0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3JlZGRpdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFhMVwiLCBcIk0wIDI1NkMwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTYgMzk3LjQgNTEyIDI1NiA1MTJMMzcuMSA1MTJjLTEzLjcgMC0yMC41LTE2LjUtMTAuOS0yNi4yTDc1IDQzN0MyOC43IDM5MC43IDAgMzI2LjcgMCAyNTZ6TTM0OS42IDE1My42YzIzLjYgMCA0Mi43LTE5LjEgNDIuNy00Mi43cy0xOS4xLTQyLjctNDIuNy00Mi43Yy0yMC42IDAtMzcuOCAxNC42LTQxLjggMzQtMzQuNSAzLjctNjEuNCAzMy02MS40IDY4LjRsMCAuMmMtMzcuNSAxLjYtNzEuOCAxMi4zLTk5IDI5LjEtMTAuMS03LjgtMjIuOC0xMi41LTM2LjUtMTIuNS0zMyAwLTU5LjggMjYuOC01OS44IDU5LjggMCAyNCAxNC4xIDQ0LjYgMzQuNCA1NC4xIDIgNjkuNCA3Ny42IDEyNS4yIDE3MC42IDEyNS4yczE2OC43LTU1LjkgMTcwLjYtMTI1LjNjMjAuMi05LjYgMzQuMS0zMC4yIDM0LjEtNTQgMC0zMy0yNi44LTU5LjgtNTkuOC01OS44LTEzLjcgMC0yNi4zIDQuNi0zNi40IDEyLjQtMjcuNC0xNy02Mi4xLTI3LjctMTAwLTI5LjFsMC0uMmMwLTI1LjQgMTguOS00Ni41IDQzLjQtNDkuOSA0LjQgMTguOCAyMS4zIDMyLjggNDEuNSAzMi44bC4xIC4yek0xNzcuMSAyNDYuOWMxNi43IDAgMjkuNSAxNy42IDI4LjUgMzkuM3MtMTMuNSAyOS42LTMwLjMgMjkuNi0zMS40LTguOC0zMC40LTMwLjUgMTUuNC0zOC4zIDMyLjEtMzguM2wuMS0uMXptMTkwLjEgMzguM2MxIDIxLjctMTMuNyAzMC41LTMwLjQgMzAuNXMtMjkuMy03LjktMzAuMy0yOS42IDExLjgtMzkuMyAyOC41LTM5LjMgMzEuMiAxNi42IDMyLjEgMzguM2wuMSAuMXptLTQ4LjEgNTYuN2MtMTAuMyAyNC42LTM0LjYgNDEuOS02MyA0MS45cy01Mi43LTE3LjMtNjMtNDEuOWMtMS4yLTIuOSAuOC02LjIgMy45LTYuNSAxOC40LTEuOSAzOC4zLTIuOSA1OS4xLTIuOXM0MC43IDEgNTkuMSAyLjljMy4xIC4zIDUuMSAzLjYgMy45IDYuNXpcIl1cbn07XG52YXIgZmFDb25uZWN0ZGV2ZWxvcCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjb25uZWN0ZGV2ZWxvcCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjIwZVwiLCBcIk01NTAuOCAyNDFsLTUwLjEtODYuOGMxLjEtMi4xIDEuOS00LjYgMS45LTcuMiAwLTgtNi43LTE0LjctMTQuNy0xNUw0MzIuNCAzNi4xYy41LTEuNiAxLjEtMy4yIDEuMS00LjggMC04LjYtNy0xNS4zLTE1LjMtMTUuMy00LjggMC04LjggMi4xLTExLjggNS42bC0xMDYuNiAwYy0yLjctMy41LTYuNy01LjYtMTEuNS01LjZzLTguOCAyLjEtMTEuNSA1LjZsLTEwNi4xIDBjLTIuOS0zLjUtNy01LjYtMTEuOC01LjYtOC4zIDAtMTUuMyA2LjctMTUuMyAxNS4zIDAgMS42IC41IDMuNSAxLjEgNC44bC01NiA5Ny4yYy01LjQgMi40LTkuMSA3LjUtOS4xIDEzLjcgMCAuNSAuMyAxLjEgLjMgMS42TDI2LjYgMjQwLjdjLTcuMiAxLjMtMTIuNiA3LjUtMTIuNiAxNSAwIDcuMiA1LjEgMTMuNCAxMi4xIDE1bDU1LjIgOTUuNGMtLjUgMS42LS44IDIuOS0uOCA0LjggMCA3LjIgNS4xIDEzLjQgMTIuMSAxNC43bDUxLjcgODkuN2MtLjUgMS42LTEuMSAzLjUtMS4xIDUuNCAwIDguNiA3IDE1LjMgMTUuMyAxNS4zIDQuOCAwIDguOC0yLjEgMTEuNS01LjRsMTA2LjkgMGMyLjcgMy4yIDcgNS40IDExLjUgNS40czguOC0yLjEgMTEuNS01LjRsMTA3LjEgMGMyLjcgMi45IDYuNyA0LjggMTEgNC44IDguNiAwIDE1LjMtNyAxNS4zLTE1LjMgMC0xLjYtLjMtMi45LS44LTQuM2w1MS43LTkwLjNjNy0xLjMgMTIuMS03LjUgMTIuMS0xNC43IDAtMS42LS4zLTMuMi0uOC00LjhsNTQuOS05NS40YzctMS4zIDEyLjMtNy41IDEyLjMtMTUgMC03LjItNS4xLTEzLjQtMTEuOC0xNC43em0tMzk3IDIwOS43bC00My43LTc1LjggNDMuNyAwIDAgNzUuOHptMC04My44bC00My43IDBjLS4zLTEuMS0uOC0yLjEtMS4zLTMuMmw0NS00Ny40IDAgNTAuNnptMC02Mi40bC01MC40IDUzLjNjLTEuMy0uNS0yLjctMS4zLTQtMS42TDQzLjcgMjU5LjhjLjUtMS4zIC41LTIuNyAuNS00czAtMi40LS4zLTMuNWw1Mi05MGMyLjctLjMgNS40LTEuMSA3LjgtMi43bDUwLjEgNTIgMCA5Mi45em0wLTEwMi4zTDEwOCAxNTQuOGMxLjMtMi4xIDIuMS00LjggMi4xLTcuOCAwLS4zLS4zLS44LS4zLTEuMWw0My45LTE1LjggMCA3Mi4xem0wLTgwLjZsLTQzLjcgMTUuOCA0My43LTc1LjUgMCA1OS43em0zMjYuNSAzOS4xbC44IDEuMy0zNS40IDE2Ny4xLTYzLjgtNjcuMiA5OC0xMDEuNSAuMyAuM3pNMjkyLjEgMzU1LjFsMTEuNSAxMS44LTIyLjggMCAxMS4zLTExLjh6bS0uMy0xMS4zbC04My4zLTg1LjQgNzkuNi04NC40IDgzIDg3LjYtNzkuMyA4Mi4yem01LjQgNS45bDc5LjMtODIuMiA2Ny41IDcxLjMtNS45IDI4LjEtMTI0IDAtMTYuOS0xNy4xek00MTAuNyA0NC40YzEuMSAuNSAyLjEgMS4xIDMuNSAxLjNsNTcuOSAxMDAuNyAwIC41YzAgMi45IC44IDUuNiAyLjEgNy44bC05Ny41IDEwMS4yLTgzLTg3LjYgMTE3LjEtMTI0em0tOS4xLTIuMWwtMTEzLjYgMTIwLjMtNTcuMS02MC4zIDE2Ni4zLTYwIDQuMyAwem0tMTIzLjUgMGMyLjcgMi43IDYuMiA0LjMgMTAuMiA0LjNzNy41LTEuNiAxMC4yLTQuM2w3NSAwLTE0OC40IDUzLjYtNTAuOS01My42IDEwMy45IDB6TTE2MS45IDQ3LjlsMS4xLTIuMWMuOS0uMiAxLjgtLjUgMi43LS44bDUxLjIgNTMuOC01NC45IDE5LjggMC03MC43em0wIDc5LjNsNjAuOC0yMiA1OS43IDYzLjItNzkuNiA4NC4xLTQxLTQyLjEgMC04My4zem0wIDkyLjdsMzYuNCAzNy44LTM2LjQgMzguMyAwLTc2LjF6bTAgODcuOWw0Mi4xLTQ0LjUgODIuOCA4Ni0xNy4xIDE3LjctMTA3LjcgMCAwLTU5LjJ6bTcgMTYyLjFjLTEuNi0xLjYtMy41LTIuNy01LjktMy41bC0xLjEtMS42IDAtODkuNyA5OS45IDAtOTEuNiA5NC44LTEuMyAwem0xMjkuOSAwYy0yLjctMi40LTYuNC00LjMtMTAuNC00LjNzLTcuOCAxLjktMTAuNCA0LjNsLTk2LjQgMCA5MS42LTk0LjggMzguMyAwIDkxLjYgOTQuOC0xMDQuMiAwem0xMjAtMTEuOGwtNC4zIDcuNWMtMS4zIC4zLTIuNCAuOC0zLjUgMS4zbC04OS4yLTkxLjkgMTE0LjQgMC0xNy40IDgzem0xMi45LTIyLjJsMTIuOS02MC44IDIyIDAtMzQuOCA2MC44em0zNC44LTY4LjhsLTIwLjQgMCA0LjYtMjEuMiAxNy4xIDE4LjJjLS41IC44LTEuMSAxLjktMS4zIDIuOXptNjYuMi0xMDcuNGwtNTUuNCA5Ni43Yy0xLjMgLjUtMi43IDEuMS00IDEuOWwtMjAuNi0yMiAzNC42LTE2My45IDQ1LjggNzkuM2MtLjMgMS4zLS44IDIuNy0uOCA0LjMgMCAxLjMgLjMgMi40IC41IDMuN3pcIl1cbn07XG52YXIgZmFSZXNlYXJjaGdhdGUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncmVzZWFyY2hnYXRlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNGY4XCIsIFwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTI2Mi4yIDM2Ni40Yy02LjYgMy0zMy4yIDYtNTAtMTQuMi05LjItMTAuNi0yNS4zLTMzLjMtNDIuMi02My42LTguOSAwLTE0LjcgMC0yMS40LS42bDAgNDYuNGMwIDIzLjUgNiAyMS4yIDI1LjggMjMuOWwwIDguMWMtNi45LS4zLTIzLjEtLjgtMzUuNi0uOC0xMy4xIDAtMjYuMSAuNi0zMy42IC44bDAtOC4xYzE1LjUtMi45IDIyLTEuMyAyMi0yMy45bDAtMTA5LjRjMC0yMi42LTYuNC0yMS0yMi0yMy45bDAtOC4xYzI1LjggMSA1My4xLS42IDcwLjktLjYgMzEuNyAwIDU1LjkgMTQuNCA1NS45IDQ1LjYgMCAyMS4xLTE2LjcgNDIuMi0zOS4yIDQ3LjUgMTMuNiAyNC4yIDMwIDQ1LjYgNDIuMiA1OC45IDcuMiA3LjggMTcuMiAxNC43IDI3LjIgMTQuN2wwIDcuM3ptMjIuOS0xMzVjLTIzLjMgMC0zMi4yLTE1LjctMzIuMi0zMi4ybDAtMzIuMmMwLTEyLjIgOC44LTMwLjQgMzQtMzAuNHMzMC40IDE3LjkgMzAuNCAxNy45bC0xMC43IDcuMnMtNS41LTEyLjUtMTkuNy0xMi41Yy03LjkgMC0xOS43IDcuMy0xOS43IDE5LjdsMCAyNi44YzAgMTMuNCA2LjYgMjMuMyAxNy45IDIzLjMgMTQuMSAwIDIxLjUtMTAuOSAyMS41LTI2LjhsLTE3LjkgMCAwLTEwLjcgMzAuNCAwYzAgMjAuNSA0LjcgNDkuOS0zNCA0OS45ek0xNjguNiAyNzYuMWMtOS40IDAtMTMuNi0uMy0yMC0uOGwwLTY5LjdjNi40LS42IDE1LS42IDIyLjUtLjYgMjMuMyAwIDM3LjIgMTIuMiAzNy4yIDM0LjUgMCAyMS45LTE1IDM2LjYtMzkuNyAzNi42elwiXVxufTtcbnZhciBmYVNpZ25hbE1lc3NlbmdlciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzaWduYWwtbWVzc2VuZ2VyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNjYzXCIsIFwiTTI1NiAwYy0xMy4zIDAtMjYuMyAxLTM5LjEgM2wzLjcgMjMuN0MyMzIuMSAyNC45IDI0NCAyNCAyNTYgMjRzMjMuOSAuOSAzNS40IDIuN0wyOTUuMSAzQzI4Mi4zIDEgMjY5LjMgMCAyNTYgMHptNjAuOCA3LjNsLTUuNyAyMy4zYzIzLjQgNS43IDQ1LjQgMTQuOSA2NS40IDI3LjFsMTIuNS0yMC41Yy0yMi4xLTEzLjQtNDYuNC0yMy42LTcyLjItMjkuOXptNzYuNCA2MS42YzE5LjEgMTQgMzYgMzAuOSA1MC4xIDUwLjFsMTkuNC0xNC4yQzQ0NyA4My42IDQyOC40IDY1IDQwNy4zIDQ5LjVMMzkzLjEgNjguOHptODEuNyA1NC4ybC0yMC41IDEyLjVjMTIuMiAyMCAyMS40IDQyIDI3LjEgNjUuNGwyMy4zLTUuN2MtNi4zLTI1LjgtMTYuNS01MC4xLTI5LjktNzIuMnptMTAuNSA5Ny41YzEuOCAxMS41IDIuNyAyMy40IDIuNyAzNS40cy0uOSAyMy45LTIuNyAzNS40bDIzLjcgMy43YzEuOS0xMi43IDMtMjUuOCAzLTM5LjFzLTEtMjYuMy0zLTM5LjFsLTIzLjcgMy43em0tMzEgMTU1LjlsMjAuNSAxMi41YzEzLjQtMjIuMSAyMy42LTQ2LjQgMjkuOS03Mi4ybC0yMy4zLTUuN2MtNS43IDIzLjQtMTQuOSA0NS40LTI3LjEgNjUuNHptOC4yIDMwLjhsLTE5LjQtMTQuMmMtMTQgMTkuMS0zMC45IDM2LTUwLjEgNTAuMWwxNC4yIDE5LjRjMjEuMS0xNS41IDM5LjgtMzQuMSA1NS4yLTU1LjJ6bS04Ni4xIDQ3Yy0yMCAxMi4yLTQyIDIxLjQtNjUuNCAyNy4xbDUuNyAyMy4zYzI1LjgtNi4zIDUwLjEtMTYuNSA3Mi4yLTI5LjlsLTEyLjUtMjAuNXpNMjk1LjEgNTA5bC0zLjctMjMuN0MyNzkuOSA0ODcuMSAyNjggNDg4IDI1NiA0ODhzLTIzLjktLjktMzUuNC0yLjdMMjE2LjkgNTA5YzEyLjcgMS45IDI1LjggMyAzOS4xIDNzMjYuMy0xIDM5LjEtM3ptLTk0LjEtMjcuNmMtMTcuNi00LjMtMzQuNC0xMC42LTUwLjEtMTguNmwtNy44LTQtMzIuOCA3LjcgNS41IDIzLjQgMjQuMy01LjdjMTcuNCA4LjkgMzUuOSAxNS44IDU1LjMgMjAuNWw1LjctMjMuM3pNOTUuNCA0OTQuNkw5MCA0NzEuMyA0OC4zIDQ4MWMtMTAuNCAyLjQtMTkuNy02LjktMTcuMy0xNy4zbDkuNy00MS42LTIzLjQtNS41LTkuNyA0MS42QzEuMiA0ODYgMjYgNTEwLjggNTMuOCA1MDQuNGw0MS42LTkuN3ptLTUwLTkyLjlsNy43LTMyLjgtNC03LjhjLTgtMTUuNy0xNC4zLTMyLjUtMTguNi01MC4xTDcuMyAzMTYuN0MxMiAzMzYuMSAxOC45IDM1NC43IDI3LjcgMzcybC01LjcgMjQuMyAyMy40IDUuNXpNMyAyOTUuMWwyMy43LTMuN0MyNC45IDI3OS45IDI0IDI2OCAyNCAyNTZzLjktMjMuOSAyLjctMzUuNEwzIDIxNi45QzEgMjI5LjcgMCAyNDIuNyAwIDI1NnMxIDI2LjMgMyAzOS4xem0yNy42LTk0LjFjNS43LTIzLjQgMTQuOS00NS40IDI3LjEtNjUuNEwzNy4yIDEyMy4xYy0xMy40IDIyLjEtMjMuNiA0Ni40LTI5LjkgNzIuMmwyMy4zIDUuN3ptMTguOS05Ni4ybDE5LjQgMTQuMmMxNC0xOS4xIDMwLjktMzYgNTAuMS01MC4xTDEwNC43IDQ5LjVDODMuNiA2NSA2NSA4My42IDQ5LjUgMTA0Ljd6bTg2LjEtNDdjMjAtMTIuMiA0Mi0yMS40IDY1LjQtMjcuMUwxOTUuMiA3LjNjLTI1LjggNi4zLTUwLjEgMTYuNS03Mi4yIDI5LjlsMTIuNSAyMC41ek0yNTYgNDY0YzExNC45IDAgMjA4LTkzLjEgMjA4LTIwOFMzNzAuOSA0OCAyNTYgNDggNDggMTQxLjEgNDggMjU2YzAgMzYuNCA5LjQgNzAuNyAyNS44IDEwMC41IDEuNiAyLjkgMi4xIDYuMiAxLjQgOS40bC0yMS42IDkyLjUgOTIuNS0yMS42YzMuMi0uNyA2LjUtLjIgOS40IDEuNCAyOS44IDE2LjUgNjQgMjUuOCAxMDAuNSAyNS44elwiXVxufTtcbnZhciBmYVhpbmcgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAneGluZycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjE2OFwiLCBcIk0xNjIuNyAyMTBjLTEuOCAzLjMtMjUuMiA0NC40LTcwLjEgMTIzLjUtNC45IDguMy0xMC44IDEyLjUtMTcuNyAxMi41TDkuOCAzNDZjLTcuNyAwLTEyLjEtNy41LTguNS0xNC40bDY5LTEyMS4zYy4yIDAgLjItLjEgMC0uM0wyNi40IDEzNC40Yy00LjMtNy44IC4zLTE0LjEgOC41LTE0LjFsNjUuMSAwYzcuMyAwIDEzLjMgNC4xIDE4IDEyLjJMMTYyLjcgMjEwek0zODIuNiA0Ni4xbC0xNDQgMjUzIDAgLjMgOTEuNiAxNjYuNmMzLjkgNy4xIC4yIDE0LjEtOC41IDE0LjFsLTY1LjIgMGMtNy42IDAtMTMuNi00LTE4LTEyLjJMMTQ2LjEgMjk5LjRjMy4zLTUuOCA1MS41LTkwLjggMTQ0LjgtMjU1LjIgNC42LTguMSAxMC40LTEyLjIgMTcuNS0xMi4ybDY1LjcgMGM4IDAgMTIuMyA2LjcgOC41IDE0LjF6XCJdXG59O1xudmFyIGZhU3F1YXJlSnMgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3F1YXJlLWpzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJqcy1zcXVhcmVcIl0sIFwiZjNiOVwiLCBcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMTgwLjkgNDQ0LjljLTMzLjcgMC01My4yLTE3LjQtNjMuMi0zOC41TDE1MiAzODUuN2M2LjYgMTEuNyAxMi42IDIxLjYgMjcuMSAyMS42IDEzLjggMCAyMi42LTUuNCAyMi42LTI2LjVsMC0xNDMuMSA0Mi4xIDAgMCAxNDMuN2MwIDQzLjYtMjUuNiA2My41LTYyLjkgNjMuNXptODUuOC00M0wzMDEgMzgyLjFjOSAxNC43IDIwLjggMjUuNiA0MS41IDI1LjYgMTcuNCAwIDI4LjYtOC43IDI4LjYtMjAuOCAwLTE0LjQtMTEuNC0xOS41LTMwLjctMjhsLTEwLjUtNC41Yy0zMC40LTEyLjktNTAuNS0yOS4yLTUwLjUtNjMuNSAwLTMxLjYgMjQuMS01NS42IDYxLjYtNTUuNiAyNi44IDAgNDYgOS4zIDU5LjggMzMuN0wzNjggMjkwYy03LjItMTIuOS0xNS0xOC0yNy4xLTE4LTEyLjMgMC0yMC4xIDcuOC0yMC4xIDE4IDAgMTIuNiA3LjggMTcuNyAyNS45IDI1LjZsMTAuNSA0LjVjMzUuOCAxNS4zIDU1LjkgMzEgNTUuOSA2Ni4yIDAgMzcuOC0yOS44IDU4LjYtNjkuNyA1OC42LTM5LjEgMC02NC40LTE4LjYtNzYuNy00M3pcIl1cbn07XG52YXIgZmFKc1NxdWFyZSA9IGZhU3F1YXJlSnM7XG52YXIgZmFGb250aWNvbnMgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZm9udGljb25zJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjgwXCIsIFwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTE4NyAxNzIuOWMtMTguNCAwLTE5IDkuOS0xOSAyNy40bDAgMjMuM2MwIDIuNC0zLjUgNC40LS42IDQuNGw2Ny40IDAtMTEuMSAzNy4zLTU1LjcgMCAwIDExMi45YzAgNS44LTIgNi43IDMuMiA3LjNsNDMuNSA0LjEgMCAyNS4xLTEzMC43IDAgMC0yNS43IDIxLjMtMmM1LjItLjYgNi43LTIuMyA2LjctNy45bDAtMTExLjRjMC0yLjMtMi45LTIuMy01LjgtMi4zbC0yMi4yIDAgMC0zNy40IDI4IDAgMC0yMWMwLTQ5LjYgMjYuNS03MCA3Ny4zLTcwIDM0LjEgMCA2NC43IDguMiA2NC43IDUyLjhsLTUwLjcgNi4xYy4zLTE4LjctNC40LTIzLTE2LjMtMjN6bTc0LjMgMjQxLjhsMC0yNS4xIDIwLjQtMi42YzUuMi0uNiA3LjYtMS43IDcuNi03LjNsMC0xMDcuOWMwLTQuMS0yLjktNi43LTYuNy03LjlsLTI0LjItNi40IDYuNy0yOS41IDgwLjIgMCAwIDE1MS43YzAgNS44LTIuNiA2LjQgMi45IDcuM2wxNS43IDIuNiAwIDI1LjEtMTAyLjYgMHptODAuOC0yNTUuNWw5IDMzLjItNy4zIDcuMy0zMS4yLTE2LjYtMzEuMiAxNi42LTcuMy03LjMgOS0zMy4yLTIxLjgtMjQuMiAzLjUtOS42IDI3LjcgMCAxNS41LTI4IDkuMyAwIDE1LjUgMjggMjcuNyAwIDMuNSA5LjYtMjEuOSAyNC4yelwiXVxufTtcbnZhciBmYVVwcyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd1cHMnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY3ZTBcIiwgXCJNMTAzLjIgMzAzYy01LjIgMy42LTMyLjYgMTMuMS0zMi42LTE5bDAtMTA0LTMyLjcgMCAwIDEwMi42YzAgNzQuOSA4MC4yIDUxLjEgOTcuOSAzOWwwLTE0MS42LTMyLjYgMCAwIDEyM3pNNCA3NC44TDQgMjk1LjdjMCAxMDMuNyA3NC45IDEzNS4yIDE4Ny43IDE4NC4xIDExMi40LTQ4LjkgMTg3LjctODAuMiAxODcuNy0xODQuMWwwLTIyMC45QzI2My4xIDEzLjIgOTcuNiAyNS4yIDQgNzQuOHpNMzYyLjEgMjk1LjdjMCA4Ni42LTUzLjIgMTEzLjYtMTcwLjQgMTY1LjMtMTE3LjUtNTEuOC0xNzAuNS03OC43LTE3MC41LTE2NS4zbDAtMTI2LjRjMTAyLjMtOTMuOCAyMzEuNi0xMDAgMzQwLjktODkuOGwwIDIxNi4yek0xNTIuNSAxODguM2wwIDIxMi44IDMyLjcgMCAwLTY4LjdjMjQuNCA3LjMgNzEuNy0yLjYgNzEuNy03OC41IDAtOTcuNC04MC43LTgwLjktMTA0LjQtNjUuNnptMzIuNyAxMTcuM2wwLTEwMC4zYzguNC00LjIgMzguNC0xMi43IDM4LjQgNDkuMyAwIDY3LjktMzYuNCA1MS44LTM4LjQgNTF6bTc5LjEtODYuNGMuMSA0Ny4zIDUxLjYgNDIuNSA1Mi4yIDcwLjQgLjYgMjMuNS0zMC40IDIzLTUwLjggNC45bDAgMzAuMWMzNi4yIDIxLjUgODEuOSA4LjEgODMuMi0zMy41IDEuNy01MS41LTU0LjEtNDYuNi01My40LTczLjIgLjYtMjAuMyAzMC42LTIwLjUgNDguNS0yLjJsMC0yOC40Yy0yOC41LTIyLTc5LjktOS4yLTc5LjcgMzEuOXpcIl1cbn07XG52YXIgZmFBbWF6b25QYXkgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYW1hem9uLXBheScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjQyY1wiLCBcIk0xNCAzMjUuM2MyLjMtNC4yIDUuMi00LjkgOS43LTIuNSAxMC40IDUuNiAyMC42IDExLjQgMzEuMiAxNi43IDQwLjYgMjAuMiA4My4zIDM1LjggMTI3LjQgNDYuMyAyMC44IDUgNDEuOSA5IDYzLjIgMTEuOCAzMS41IDQuMiA2My4yIDYgOTUgNS4yIDE3LjQtLjQgMzQuOC0xLjggNTIuMS0zLjggNTYuMi02LjYgMTExLjEtMjEgMTYzLjMtNDIuOCAyLjktMS4yIDUuOS0yIDkuMS0xLjIgNi43IDEuOCA5IDkgNC4xIDEzLjktMyAyLjctNi4yIDUuMi05LjYgNy40LTMwLjcgMjEuMS02NC4yIDM2LjQtOTkuNiA0Ny45LTI0LjUgNy45LTQ5LjYgMTMuOC03NS4xIDE3LjYtMTcuNiAyLjctMzUuNCA0LjMtNTMuMiA0LjgtLjggMC0xLjcgLjItMi41IC4zbC0yMS4xIDBjLS44LS4xLTEuNy0uMi0yLjUtLjMtMy42LS4yLTcuMi0uMy0xMC43LS40LTE2LjktLjgtMzMuNy0yLjUtNTAuNC01LjMtMjcuNC00LjUtNTQuMy0xMS41LTgwLjQtMjAuOS01My43LTE5LjQtMTAzLjEtNDguOS0xNDUuNi04Ny0xLjgtMS42LTMtMy44LTQuNC01LjdsMC0yek0xNzIgNjUuMWwtNC4zIC42Yy0xMy44IDEuNy0yNi44IDYuOS0zOCAxNS4xLTIuNCAxLjctNC42IDMuNS03LjEgNS40LS4yLS40LS4zLS45LS40LTEuNC0uNC0yLjctLjgtNS41LTEuMy04LjItLjctNC42LTMtNi42LTcuNi02LjZsLTExLjUgMGMtNi45IDAtOC4yIDEuMy04LjIgOC4ybDAgMjA5LjNjMCAxIDAgMiAuMSAzIC4yIDMgMiA0LjkgNC45IDUgNyAuMSAxNC4xIC4xIDIxLjEgMCAyLjkgMCA0LjctMiA1LTUgLjEtMSAuMS0yIC4xLTNsMC03Mi40YzEuMSAuOSAxLjcgMS40IDIuMiAxLjkgMTcuOSAxNC45IDM4LjUgMTkuOCA2MSAxNS40IDIwLjQtNCAzNC42LTE2LjUgNDMuOC0zNC45IDctMTMuOSA5LjktMjguNyAxMC4zLTQ0LjEgLjUtMTcuMS0xLjItMzMuOS04LjEtNDkuOC04LjUtMTkuNi0yMi42LTMyLjUtNDMuOS0zNi45LTMuMi0uNy02LjUtMS05LjgtMS41LTIuOC0uMS01LjUtLjEtOC4zLS4xek0xMjQuNiAxMDdjLS4xLS43IC4xLTEuMyAuNC0xLjlzLjgtMS4xIDEuMy0xLjRjMTMuNy05LjUgMjguOC0xNC41IDQ1LjYtMTMuMiAxNC45IDEuMSAyNy4xIDguNCAzMy41IDI1LjkgMy45IDEwLjcgNC45IDIxLjggNC45IDMzIDAgMTAuNC0uOCAyMC42LTQgMzAuNi02LjggMjEuMy0yMi40IDI5LjQtNDIuNiAyOC41LTE0LS42LTI2LjItNi0zNy40LTEzLjktLjYtLjMtMS0uOC0xLjMtMS40cy0uNC0xLjItLjQtMS45Yy4xLTE0LjEgMC0yOC4xIDAtNDIuMnMuMS0yOCAwLTQyLjF6TTMzMC4zIDY1LjFjLTEgLjEtMiAuMy0yLjkgLjQtOS43IC40LTE5LjQgMS44LTI4LjkgNC4xLTYuMSAxLjYtMTIgMy44LTE3LjkgNS44LTMuNiAxLjItNS40IDMuOC01LjMgNy43IC4xIDMuMy0uMSA2LjYgMCA5LjkgLjEgNC44IDIuMSA2LjEgNi44IDQuOSA3LjgtMiAxNS42LTQuMiAyMy41LTUuNyAxMi4zLTIuMyAyNC43LTMuMyAzNy4yLTEuNCA2LjUgMSAxMi42IDIuOSAxNi44IDguNCAzLjcgNC44IDUuMSAxMC41IDUuMyAxNi40IC4zIDguMyAuMiAxNi42IC4zIDI0LjkgMCAuNS0uMSAuOS0uMiAxLjQtLjUtLjEtLjkgMC0xLjMtLjEtMTAuNS0yLjYtMjEuMi00LjItMzItNC45LTExLjMtLjYtMjIuNSAuMS0zMy4zIDMuOS0xMi45IDQuNS0yMy4zIDEyLjMtMjkuNCAyNC45LTQuNyA5LjgtNS40IDIwLjItMy45IDMwLjcgMiAxNCA5IDI0LjggMjEuNCAzMS43IDExLjkgNi42IDI0LjggNy40IDM3LjkgNS40IDE1LjEtMi4zIDI4LjUtOC43IDQwLjMtMTguNCAuNS0uNCAxLS44IDEuNi0xLjEgLjYgMy44IDEuMSA3LjQgMS44IDExIC42IDMuMSAyLjUgNS4xIDUuNCA1LjIgNS40IC4xIDEwLjkgLjEgMTYuMyAwIDEuMyAwIDIuNS0uNSAzLjQtMS40czEuNC0yLjEgMS41LTMuM2MuMS0uOSAuMS0xLjkgLjEtMi44bDAtMTA2YzAtNC4zLS4zLTguNi0uOS0xMi45LTEuOS0xMi45LTcuNC0yMy41LTE5LTMwLjQtNi43LTQtMTQuMS02LTIxLjgtNy4xLTMuNi0uNS03LjItLjgtMTAuOC0xLjMtMy45IC4xLTcuOSAuMS0xMS45IC4xem0zNSAxMjcuN2MwIC42LS4xIDEuMi0uMyAxLjdzLS43IDEtMS4yIDEuM2MtMTEuMiA4LjEtMjMuNSAxMy41LTM3LjQgMTQuOS01LjcgLjYtMTEuNCAuNC0xNi44LTEuOC0zLTEuMS01LjYtMi45LTcuOC01LjJzLTMuNy01LjEtNC42LTguMWMtMi02LjMtMi0xMy4xLS4xLTE5LjQgMi41LTguMyA4LjQtMTMgMTYuNC0xNS42IDgtMi40IDE2LjUtMy4yIDI0LjgtMi4yIDguNCAuNyAxNi42IDIuMyAyNSAzLjQgMS42IC4yIDIuMSAxIDIuMSAyLjYtLjEgNC44IDAgOS41IDAgMTQuM3MtLjIgOS40LS4xIDE0LjF6TTYyNS4yIDMyMi4yYy0xLTUtNC44LTYuOS05LjEtOC4zLTYuOC0yLjEtMTMuOS0zLjUtMjEtMy45LTEzLjEtMS4xLTI2LjMtLjUtMzkuMiAxLjktMTQuMyAyLjctMjcuOSA3LjMtNDAgMTUuNi0xLjQgLjktMi43IDIuMS0zLjcgMy41LS40IC42LS42IDEuMy0uNyAxLjlzMCAxLjQgLjIgMi4xYy40IDEuNSAyLjEgMS45IDMuNiAxLjggLjcgMCAxLjUgMCAyLjItLjEgNy44LS44IDE1LjUtMS43IDIzLjMtMi41IDExLjQtMS4xIDIyLjktMS44IDM0LjMtLjkgNC45IC40IDkuNyAxLjMgMTQuNCAyLjcgNS4xIDEuNCA3LjQgNS4yIDcuNiAxMC40IC40IDgtMS40IDE1LjctMy41IDIzLjMtNC4xIDE1LjQtMTAgMzAuMy0xNS44IDQ1LjEtLjQgMS0uOCAyLTEgMy0uNSAyLjkgMS4yIDQuOCA0LjEgNC4xIDEuOC0uNCAzLjQtMS4zIDQuOC0yLjUgNC41LTQuMiA4LjgtOC43IDEyLjctMTMuNCAxMi44LTE2LjQgMjAuMy0zNS4zIDI0LjctNTUuNiAuOC0zLjYgMS40LTcuMyAyLjEtMTAuOWwwLTE3LjN6TTQ5My4xIDE5OWMtMTIuOS0zNS43LTI1LjgtNzEuNC0zOC43LTEwNy4yLTItNS43LTQuMi0xMS4zLTYuMy0xNi45LTEuMS0yLjktMy4yLTQuOC02LjQtNC44LTcuNi0uMS0xNS4yLS4yLTIyLjktLjEtMi41IDAtMy43IDItMy4yIDQuNSAuNSAyLjEgMS4xIDQuMSAxLjkgNi4xIDE5LjYgNDguNSAzOS4zIDk3IDU5LjEgMTQ1LjUgMS43IDQuMSAyLjEgNy42IC4yIDExLjgtMy4zIDcuMy01LjkgMTUtOS4zIDIyLjMtMyA2LjUtOCAxMS40LTE1LjIgMTMuMy01IDEuMy0xMC4yIDEuNy0xNS40IDEuMS0yLjUtLjItNS0uOC03LjUtMS0zLjQtLjItNS4xIDEuMy01LjIgNC44LS4xIDMuMy0uMSA2LjYgMCA5LjkgLjEgNS41IDIgOCA3LjQgOC45IDUuNiAxLjEgMTEuMiAxLjggMTYuOSAyIDE3LjEgLjQgMzAuNy02LjUgMzkuNS0yMS40IDMuNS01LjkgNi42LTEyIDkuMi0xOC40IDIzLjctNTkuOCA0Ny4yLTExOS43IDcwLjYtMTc5LjYgLjctMS44IDEuMy0zLjYgMS42LTUuNSAuNC0yLjgtLjktNC40LTMuNy00LjQtNi42LS4xLTEzLjMgMC0xOS45IDAtMS43LS4xLTMuNCAuMy00LjcgMS4zcy0yLjQgMi4zLTMgMy45Yy0uNSAxLjQtMS4xIDIuNy0xLjYgNC4xbC0zNC44IDEwMGMtMi41IDcuMi01LjEgMTQuNS03LjcgMjIuMi0uNC0xLjEtLjYtMS43LS45LTIuNHpcIl1cbn07XG52YXIgZmFQYW5kb3JhID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3BhbmRvcmEnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImU3ZGFcIiwgXCJNMjAxLjMgMzJMMCAzMiAwIDQ4MCAxMjAuMiA0ODBjMTEuMiAwIDIwLjMtOS4xIDIwLjMtMjAuM2wwLTg2LjEgMzAuMSAwYzE0Ny4xIDAgMjA3LjMtODIuOSAyMDcuMy0xNzkuOSAwLTExOS43LTkwLjktMTYxLjgtMTc2LjUtMTYxLjh6XCJdXG59O1xudmFyIGZhT3BlbmlkID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ29wZW5pZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjE5YlwiLCBcIk0yNzEuNSA0MzJsLTY4IDMyQzg4LjUgNDUzLjcgMCAzOTIuNSAwIDMxOC4yIDAgMjQ2LjcgODIuNSAxODcuMiAxOTEuNyAxNzMuOWwwIDQzYy03MS41IDEyLjUtMTI0IDUzLTEyNCAxMDEuMyAwIDUxIDU4LjUgOTMuMyAxMzUuNyAxMDNsMC0zNDAgNjgtMzMuMiAwIDM4NCAuMSAwek00NDggMjkxbC0xMzEuMy0yOC41IDM2LjgtMjAuN2MtMTkuNS0xMS41LTQzLjUtMjAtNzAtMjQuOGwwLTQzYzQ2LjIgNS41IDg3LjcgMTkuNSAxMjAuMyAzOS4zbDM1LTE5LjggOS4yIDk3LjV6XCJdXG59O1xudmFyIGZhVnNjbyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd2c2NvJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlN2RkXCIsIFwiTTM1Ny42IDI1NmMwLTI3LjEtMTAuNi01Mi41LTI5LjctNzEuN3MtNDQuNi0yOS43LTcxLjctMjkuN2wtLjEgMGMtMjcuMSAwLTUyLjYgMTAuNi03MS43IDI5LjdzLTI5LjcgNDQuNi0yOS43IDcxLjdjMCAyNy4xIDEwLjYgNTIuNSAyOS43IDcxLjcgMTkuMiAxOS4yIDQ0LjYgMjkuNyA3MS43IDI5LjdsLjEgMGMyNy4xIDAgNTIuNi0xMC42IDcxLjctMjkuNyAxOS4yLTE5LjIgMjkuNy00NC42IDI5LjctNzEuN3pNMTc2LjMgNDgyLjFjMjMgOC4xIDQ3IDEyLjYgNzEuNiAxMy40bDAtNTkuMWMtMTcuMS0uNy0zMy41LTMuOC00OS04LjlsLTIyLjYgNTQuNnptMTM3LTU0LjZjLTE1LjUgNS4xLTMyIDguMi00OSA4LjlsMCA1OS4xYzI0LjYtLjggNDguNi01LjMgNzEuNi0xMy40bC0yMi42LTU0LjZ6TTkyLjUgNDMxLjJjMjAuMiAxOC45IDQzLjMgMzQgNjguNyA0NWwyMi41LTU0LjVjLTE4LjMtNy45LTM1LjEtMTguOC00OS44LTMxLjlMOTIuNSA0MzEuMnptMjg1LjktNDEuNGMtMTQuNiAxMy4yLTMxLjQgMjQtNDkuOCAzMS45bDIyLjUgNTQuNWMyNS40LTExIDQ4LjQtMjYuMSA2OC43LTQ1bC00MS40LTQxLjR6TTE0NS40IDM3OC4yYzEzLjYgMTIuMSAyOSAyMS45IDQ1LjggMjkgMTggNy42IDM3LjEgMTIgNTYuNyAxMi45bDAtNDYuOGMtMjYuNC0xLjgtNTAuMy0xMi4zLTY5LjEtMjguNmwtMzMuNCAzMy40em0xODgtMzMuNGMtMTguOCAxNi4zLTQyLjcgMjYuOC02OS4xIDI4LjZsMCA0Ni44YzE5LjYtLjkgMzguNy01LjMgNTYuNy0xMi45IDE2LjgtNy4xIDMyLjItMTYuOSA0NS44LTI5bC0zMy40LTMzLjR6TTM4LjUgMzU2LjZjMTAuNyAyMy4yIDI1IDQ0LjMgNDIuNSA2My4xbDQxLjMtNDEuM2MtMTIuNC0xMy40LTIyLjktMjguNi0zMC45LTQ1LjJMMzguNSAzNTYuNnptMzgyLjQtMjMuNWMtOCAxNi42LTE4LjUgMzEuOS0zMC45IDQ1LjJsNDEuMyA0MS4zYzE3LjUtMTguNyAzMS44LTM5LjkgNDIuNS02My4xbC01Mi45LTIzLjV6bS0zMzEtNjljMS4xIDE4LjggNS40IDM3LjIgMTIuOCA1NC41IDcuNSAxNy44IDE4IDM0IDMxLjIgNDguMmwzMy41LTMzLjVjLTE2LjQtMTguOC0yNi45LTQyLjgtMjguNy02OS4ybC00OC44IDB6bTI4My43IDBjLTEuOCAyNi40LTEyLjMgNTAuNC0yOC43IDY5LjJsMzMuNSAzMy41YzEzLjEtMTQuMiAyMy42LTMwLjQgMzEuMi00OC4yIDcuMy0xNy40IDExLjYtMzUuNyAxMi43LTU0LjVsLTQ4LjcgMHptLTM1Ny4xIDBjLjkgMjYuNyA2LjEgNTIuNyAxNS42IDc3LjVMODUgMzE4LjJjLTYuNC0xNy0xMC4zLTM1LjEtMTEuMy01NGwtNTcuMSAwem00MjIuMSAwYy0xIDE4LjktNSAzNy4xLTExLjMgNTRsNTIuOCAyMy41YzkuNS0yNC44IDE0LjctNTAuOCAxNS42LTc3LjVsLTU3LjEgMHpNMzIuMSAxNzAuNGMtOS41IDI0LjgtMTQuNyA1MC44LTE1LjYgNzcuNWw1Ny4xIDBjMS0xOC45IDUtMzcuMSAxMS4zLTU0TDMyLjEgMTcwLjR6bTEwMS43LTI1LjJjLTEzLjEgMTQuMi0yMy42IDMwLjQtMzEuMiA0OC4yLTcuMyAxNy40LTExLjYgMzUuNy0xMi44IDU0LjVsNDguOCAwYzEuOC0yNi40IDEyLjMtNTAuNCAyOC43LTY5LjJsLTMzLjUtMzMuNXptMjExLjEgMzMuNWMxNi40IDE4LjggMjYuOSA0Mi44IDI4LjcgNjkuMmw0OC43IDBjLTEuMS0xOC44LTUuNC0zNy4yLTEyLjctNTQuNS03LjUtMTcuOC0xOC0zNC0zMS4yLTQ4LjJsLTMzLjUgMzMuNXptODIuNCAxNS4yYzYuNCAxNyAxMC4zIDM1LjEgMTEuMyA1NGw1Ny4xIDBjLS45LTI2LjctNi4xLTUyLjctMTUuNi03Ny41bC01Mi44IDIzLjV6TTgxIDkyLjNDNjMuNCAxMTEgNDkuMiAxMzIuMiAzOC41IDE1NS40bDUyLjkgMjMuNWM4LTE2LjYgMTguNS0zMS45IDMwLjktNDUuMkw4MSA5Mi4zem0zMDkgNDEuM2MxMi40IDEzLjQgMjIuOSAyOC42IDMwLjkgNDUuMmw1Mi45LTIzLjVjLTEwLjctMjMuMi0yNS00NC4zLTQyLjUtNjMuMUwzOTAgMTMzLjd6TTI0OCA5MS44Yy0xOS42IC45LTM4LjcgNS4zLTU2LjcgMTIuOS0xNi44IDcuMS0zMi4yIDE2LjktNDUuOCAyOWwzMy40IDMzLjRjMTguOC0xNi4zIDQyLjctMjYuOCA2OS4xLTI4LjZsMC00Ni43em0xNi4zIDQ2LjdjMjYuNCAxLjggNTAuMyAxMi4zIDY5LjEgMjguNmwzMy40LTMzLjRjLTEzLjYtMTIuMS0yOS0yMS45LTQ1LjgtMjktMTgtNy42LTM3LjEtMTItNTYuNy0xMi45bDAgNDYuN3pNMTYxLjIgMzUuOGMtMjUuNCAxMS00OC40IDI2LjEtNjguNyA0NWw0MS40IDQxLjRjMTQuNy0xMy4yIDMxLjQtMjQgNDkuOC0zMS45TDE2MS4yIDM1Ljh6TTMyOC42IDkwLjNjMTguMyA3LjkgMzUuMSAxOC44IDQ5LjggMzEuOWw0MS40LTQxLjRjLTIwLjItMTguOS00My4zLTM0LTY4LjctNDVMMzI4LjYgOTAuM3pNMjQ4IDE2LjRjLTI0LjYgLjgtNDguNiA1LjMtNzEuNiAxMy40bDIyLjYgNTQuNmMxNS41LTUuMSAzMi04LjIgNDktOC45bDAtNTkuMXptMTYuMyA1OS4xYzE3LjEgLjcgMzMuNSAzLjggNDkgOC45bDIyLjYtNTQuNmMtMjMtOC4xLTQ3LTEyLjYtNzEuNi0xMy40bDAgNTkuMXpNNTEyLjIgMjY0LjJsLS4yIDBDNTA3LjggMzk5IDM5OS4yIDUwNy43IDI2NC4zIDUxMS45bDAgLjEtMTYuMyAwIDAtLjFDMTEzLjEgNTA3LjcgNC41IDM5OSAuMiAyNjQuMWwtLjIgMCAwLTE2LjMgLjIgMEM0LjUgMTEzIDExMy4xIDQuMyAyNDggLjFsMC0uMSAxNi4zIDAgMCAuMUMzOTkuMiA0LjMgNTA3LjggMTEzIDUxMiAyNDcuOWwuMiAwIDAgMTYuM3pcIl1cbn07XG52YXIgZmFVYnVudHUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndWJ1bnR1JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmN2RmXCIsIFwiTTQ2OS4yIDc1YzAtMjAuMS04LTM5LjMtMjIuMi01My41cy0zMy40LTIyLjItNTMuNS0yMi4yLTM5LjMgOC01My41IDIyLjItMjIuMiAzMy40LTIyLjIgNTMuNWMwIDIwLjEgOCAzOS4zIDIyLjEgNTMuNXMzMy40IDIyLjEgNTMuNSAyMi4xIDM5LjMtOCA1My41LTIyLjEgMjIuMS0zMy40IDIyLjEtNTMuNWwuMSAwem0tMzE1IDE2NS43YTc1LjYgNzUuNiAwIDEgMCAtMTUxLjIgMCA3NS42IDc1LjYgMCAxIDAgMTUxLjIgMHpNNTcgMzQ2YzE4LjYgNDYuOSA1MSA4NyA5MyAxMTUuMXM5MS41IDQyLjYgMTQyIDQxLjdjLTE0LjctMTguNi0yMi45LTQxLjUtMjMuMi02NS4yLTYuOC0uOS0xMy4zLTIuMS0xOS41LTMuNC0yNi44LTUuNy01MS45LTE3LjMtNzMuNi0zNHMtMzkuMy0zOC4xLTUxLjctNjIuNWMtMjAuOSA5LjktNDQuNSAxMi44LTY3LjEgOC4ybC4xIC4xem0zOTUuMSA4OS44YTc1LjYgNzUuNiAwIDEgMCAtMTUxLjIgMCA3NS42IDc1LjYgMCAxIDAgMTUxLjIgMHpNNDQ0IDM1MS42YzE4LjUgMTQuOCAzMS42IDM1LjIgMzcuMiA1OC4yIDMzLjMtNDEuMyA1Mi42LTkyLjIgNTQuOC0xNDUuMnMtMTIuNS0xMDUuNC00Mi4yLTE0OS40Yy04LjYgMjEuNS0yNCAzOS42LTQzLjggNTEuNiAxNS40IDI4LjYgMjIuOSA2MC44IDIxLjkgOTMuMnMtMTAuNyA2NC0yOCA5MS42bC4xIDB6TTEwMS4xIDEzNS40YzEyLjQgMi43IDI0LjMgNy41IDM1LjEgMTQuMyAxNi42LTI0LjIgMzguOS00NC4xIDY0LjgtNThTMjU1LjggNzAuNCAyODUuMiA3MGMuMi01LjkgLjktMTEuOSAyLTE3LjcgMy42LTE2LjcgMTEuMS0zMi4zIDIxLjgtNDUuNS00Ny43LTMuOC05NS40IDYtMTM3LjYgMjguNVM5NC4zIDkxLjcgNzAuOCAxMzMuNGMyLjctLjIgNS4zLS4zIDgtLjMgNy41IDAgMTUgLjggMjIuNCAyLjNsLS4xIDB6XCJdXG59O1xudmFyIGZhVmlhY29pbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd2aWFjb2luJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMjM3XCIsIFwiTTM4NCAzMmwtNjQgMC04MC43IDE5Mi05NC41IDAtODAuOC0xOTItNjQgMCA0OCAxMTItNDggMCAwIDQ4IDY4LjUgMCAxMy44IDMyLTgyLjMgMCAwIDQ4IDEwMi44IDAgODkuMiAyMDggODkuMi0yMDggMTAyLjggMCAwLTQ4LTgyLjMgMCAxMy44LTMyIDY4LjUgMCAwLTQ4LTQ4IDAgNDgtMTEyek0xOTIgMzM2bC0yNy02NCA1NCAwLTI3IDY0elwiXVxufTtcbnZhciBmYVpoaWh1ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3poaWh1JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNjNmXCIsIFwiTTE3MC41IDE0OC4xbDAgMjE3LjUgMjMuNCAwIDcuNyAyNi40IDQyLTI2LjQgNDkuNSAwIDAtMjE3LjUtMTIyLjcgMHptOTcuOCAxOTMuOWwtMjcuOSAwLTI3LjkgMTcuNS01LjEtMTcuNS0xMS45IDAgMC0xNzAuMyA3Mi44IDAgMCAxNzAuM3pNMTQ5LjggMjQ3LjdsLTUyLjMgMGMxLjctMjcuMSAyLjItNTEuNiAyLjItNzMuNWw1MS4yIDBzMi0yMi42LTguNi0yMi4zbC04OC41IDBjMy41LTEzLjEgNy45LTI2LjcgMTMuMS00MC43IDAgMC0yNC4xIDAtMzIuMyAyMS42LTMuNCA4LjktMTMuMiA0My4xLTMwLjcgNzguMSA1LjktLjYgMjUuNC0xLjIgMzYuOC0yMi4yIDIuMS01LjkgMi41LTYuNyA1LjEtMTQuNWwyOC45IDBjMCAxMC41LTEuMiA2Ni45LTEuNyA3My40bC01Mi4zIDBjLTExLjcgMC0xNS42IDIzLjYtMTUuNiAyMy42bDY1LjYgMGMtNC40IDQ5LjktMjggOTEuOS03MC44IDEyNS4xIDIwLjUgNS45IDQwLjktLjkgNTEtOS45IDAgMCAyMy0yMC45IDM1LjYtNjkuM2w1NCA2NC45czcuOS0yNi45LTEuMi00MGMtNy42LTguOS0yOC4xLTMzLjEtMzYuOC00MS44TDg3LjkgMzEyYzQuNC0xNCA3LTI3LjYgNy45LTQwLjdsNjEuNiAwcy0uMS0yMy42LTcuNi0yMy42bDAgMHptNDEyLTEuNmMyMC44LTI1LjYgNDUtNTguNiA0NS01OC42cy0xOC42LTE0LjgtMjcuNC00LjFjLTYgOC4yLTM2LjggNDguMi0zNi44IDQ4LjJsMTkuMiAxNC40ek00MTEuOCAxODdjLTktOC4yLTI1LjkgMi4xLTI1LjkgMi4xczM5LjUgNTUgNDEuMSA1Ny40bDE5LjUtMTMuN3MtMjUuNy0zNy42LTM0LjctNDUuOWwwIDAgMCAwek02NDAgMjU4LjRjLTE5LjggMC0xMzAuOSAuOS0xMzEuMSAuOWwwLTEwMWM0LjggMCAxMi40LS40IDIyLjgtMS4yIDQwLjktMi40IDcwLjEtNCA4Ny44LTQuOCAwIDAgMTIuMi0yNy4yLS42LTMzLjQtMy4xLTEuMi0yMy4yIDQuNi0yMy4yIDQuNnMtMTY1LjIgMTYuNS0yMzIuNCAxOGMxLjYgOC44IDcuNiAxNy4xIDE1LjggMTkuNiAxMy4zIDMuNSAyMi43IDEuNyA0OS4yIC45IDI0LjgtMS42IDQzLjctMi40IDU2LjUtMi40bDAgOTkuOC0xMzMuNSAwczIuOCAyMi4zIDI1LjUgMjIuOWwxMDcuOSAwIDAgNzAuOWMwIDE0LTExLjIgMjItMjQuNSAyMS4xLTE0LjEgLjEtMjYuMS0xLjEtNDEuNy0xLjggMiA0IDYuMyAxNC40IDE5LjMgMjEuOCA5LjkgNC44IDE2LjIgNi42IDI2IDYuNiAyOS42IDAgNDUuNy0xNy4zIDQ0LjktNDUuM2wwLTczLjMgMTIyLjQgMGM5LjcgMCA4LjctMjMuOCA4LjctMjMuOGwwIDB6XCJdXG59O1xudmFyIGZhWWFuZGV4ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3lhbmRleCcsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiZjQxM1wiLCBcIk0xNTMuMSAzMTUuOEw2NS43IDUxMiAyIDUxMiA5OCAzMDIuMkM1Mi45IDI3OS4zIDIyLjggMjM3LjggMjIuOCAxNjEuMSAyMi43IDUzLjcgOTAuOCAwIDE3MS43IDBsODIuMyAwIDAgNTEyLTU1LjEgMCAwLTE5Ni4yLTQ1LjggMHpNMTk4LjkgNDYuNWwtMjkuNCAwYy00NC40IDAtODcuNCAyOS40LTg3LjQgMTE0LjYgMCA4Mi4zIDM5LjQgMTA4LjggODcuNCAxMDguOGwyOS40IDAgMC0yMjMuNHpcIl1cbn07XG52YXIgZmFQaXhpdiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdwaXhpdicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTY0MFwiLCBcIk05NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2TDk2IDMyem03Ny43IDIxNy4zYTYwLjEgNjAuMSAwIDEgMCAxMjAuMyAwIDYwLjEgNjAuMSAwIDEgMCAtMTIwLjMgMHpNMTE5LjEgMzg3LjhjLS4zLS44LS41LTEuNy0uNS0yLjZsMC0yNDQuM2MwLTEuOCAuNy0zLjYgMi00LjlzMy0yIDQuOS0ybDE2LjkgMGMxLjIgMCAyLjMgLjMgMy4zIC44czEuOSAxLjMgMi41IDIuM2wxNCAyMS44YzE5LjctMTUuNiA0NC41LTI1IDcxLjYtMjUgNjMuNiAwIDExNS4yIDUxLjYgMTE1LjIgMTE1LjJTMjk3LjUgMzY0LjUgMjMzLjggMzY0LjVjLTIyIDAtNDIuNi02LjItNjAuMS0xNi45bDAgMzcuNmMwIC45LS4yIDEuOC0uNSAyLjZzLS45IDEuNi0xLjUgMi4yLTEuNCAxLjEtMi4yIDEuNS0xLjcgLjUtMi42IC41bC00MS4zIDBjLS45IDAtMS44LS4yLTIuNi0uNXMtMS42LS45LTIuMi0xLjUtMS4xLTEuNC0xLjUtMi4yelwiXVxufTtcbnZhciBmYU9wZW5haSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdvcGVuYWknLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU3Y2ZcIiwgXCJNMTk2LjQgMTg1LjhsMC00OC42YzAtNC4xIDEuNS03LjIgNS4xLTkuMmw5Ny44LTU2LjNjMTMuMy03LjcgMjkuMi0xMS4zIDQ1LjYtMTEuMyA2MS40IDAgMTAwLjQgNDcuNiAxMDAuNCA5OC4zIDAgMy42IDAgNy43LS41IDExLjhMMzQzLjMgMTExLjFjLTYuMS0zLjYtMTIuMy0zLjYtMTguNCAwTDE5Ni40IDE4NS44ek00MjQuNyAzNzUuMmwwLTExNi4yYzAtNy4yLTMuMS0xMi4zLTkuMi0xNS45TDI4NyAxNjguNCAzMjkgMTQ0LjNjMy42LTIgNi43LTIgMTAuMiAwTDQzNyAyMDAuN2MyOC4yIDE2LjQgNDcuMSA1MS4yIDQ3LjEgODUgMCAzOC45LTIzIDc0LjgtNTkuNCA4OS42bDAgMHpNMTY2LjIgMjcyLjhsLTQyLTI0LjZjLTMuNi0yLTUuMS01LjEtNS4xLTkuMmwwLTExMi42YzAtNTQuOCA0Mi05Ni4zIDk4LjgtOTYuMyAyMS41IDAgNDEuNSA3LjIgNTguNCAyMEwxNzUuNCAxMDguNWMtNi4xIDMuNi05LjIgOC43LTkuMiAxNS45bDAgMTQ4LjUgMCAwem05MC40IDUyLjJsLTYwLjItMzMuOCAwLTcxLjcgNjAuMi0zMy44IDYwLjIgMzMuOCAwIDcxLjctNjAuMiAzMy44em0zOC43IDE1NS43Yy0yMS41IDAtNDEuNS03LjItNTguNC0yMGwxMDAuOS01OC40YzYuMS0zLjYgOS4yLTguNyA5LjItMTUuOWwwLTE0OC41IDQyLjUgMjQuNmMzLjYgMiA1LjEgNS4xIDUuMSA5LjJsMCAxMTIuNmMwIDU0LjgtNDIuNSA5Ni4zLTk5LjMgOTYuM2wwIDB6TTE3My44IDM2Ni41TDc2LjEgMzEwLjJjLTI4LjItMTYuNC00Ny4xLTUxLjItNDcuMS04NSAwLTM5LjQgMjMuNi03NC44IDU5LjktODkuNmwwIDExNi43YzAgNy4yIDMuMSAxMi4zIDkuMiAxNS45bDEyOCA3NC4yLTQyIDI0LjFjLTMuNiAyLTYuNyAyLTEwLjIgMHptLTUuNiA4NGMtNTcuOSAwLTEwMC40LTQzLjUtMTAwLjQtOTcuMyAwLTQuMSAuNS04LjIgMS0xMi4zbDEwMC45IDU4LjRjNi4xIDMuNiAxMi4zIDMuNiAxOC40IDBsMTI4LjUtNzQuMiAwIDQ4LjZjMCA0LjEtMS41IDcuMi01LjEgOS4ybC05Ny44IDU2LjNjLTEzLjMgNy43LTI5LjIgMTEuMy00NS42IDExLjNsMCAwem0xMjcgNjAuOWM2MiAwIDExMy43LTQ0IDEyNS40LTEwMi40IDU3LjMtMTQuOSA5NC4yLTY4LjYgOTQuMi0xMjMuNCAwLTM1LjgtMTUuNC03MC43LTQzLTk1LjcgMi42LTEwLjggNC4xLTIxLjUgNC4xLTMyLjMgMC03My4yLTU5LjQtMTI4LTEyOC0xMjgtMTMuOCAwLTI3LjEgMi00MC40IDYuNy0yMy0yMi41LTU0LjgtMzYuOS04OS42LTM2LjktNjIgMC0xMTMuNyA0NC0xMjUuNCAxMDIuNC01Ny4zIDE0LjgtOTQuMiA2OC42LTk0LjIgMTIzLjQgMCAzNS44IDE1LjQgNzAuNyA0MyA5NS43LTIuNiAxMC44LTQuMSAyMS41LTQuMSAzMi4zIDAgNzMuMiA1OS40IDEyOCAxMjggMTI4IDEzLjggMCAyNy4xLTIgNDAuNC02LjcgMjMgMjIuNSA1NC44IDM2LjkgODkuNiAzNi45elwiXVxufTtcbnZhciBmYVNpdGggPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc2l0aCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUxMlwiLCBcIk0wIDMybDY5LjcgMTE4LjgtNTguOS0xMS41IDY5LjggOTFjLTMgMTctMyAzNC40IDAgNTEuNGwtNjkuOCA5MSA1OC45LTExLjUtNjkuNyAxMTguOCAxMTguOC02OS43LTExLjUgNTguOSA5MS02OS44YzE3IDMgMzQuNSAzIDUxLjUgMGw5MSA2OS44LTExLjUtNTguOSAxMTguNyA2OS43LTY5LjctMTE4LjggNTguOSAxMS41LTY5LjgtOTFjMy0xNyAzLTM0LjQgMC01MS40bDY5LjgtOTEtNTguOSAxMS41IDY5LjctMTE4LjgtMTE4LjcgNjkuNyAxMS41LTU4LjktOTEuMSA2OS45Yy04LjUtMS41LTE3LjEtMi4zLTI1LjctMi4zcy0xNy4yIC44LTI1LjcgMi4zTDEwNy4yIDQyLjggMTE4LjggMTAxLjcgMCAzMnpNMjI0IDM4MC4yYTEyNC4yIDEyNC4yIDAgMSAxIDAtMjQ4LjQgMTI0LjIgMTI0LjIgMCAxIDEgMCAyNDguNHptMC0yMTEuOGE4Ny42IDg3LjYgMCAxIDAgMCAxNzUuMSA4Ny42IDg3LjYgMCAxIDAgMC0xNzUuMXpcIl1cbn07XG52YXIgZmFOZmNEaXJlY3Rpb25hbCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICduZmMtZGlyZWN0aW9uYWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1MzBcIiwgXCJNMjExLjggNDg4LjZjMS42IDIuNSAyLjEgNS42IDEuNCA4LjUtLjYgMi45LTIuNCA1LjUtNC45IDcuMS0yLjYgMS42LTUuNiAyLjEtOC42IDEuNS02MS40LTEzLjktMTE1LjYtNDkuOS0xNTIuMi0xMDEuMlMtNS40IDI5MC4zIDEuNiAyMjcuN2M3LTYyLjcgMzYuOC0xMjAuNSA4My43LTE2Mi41IDQ2LjktNDIgMTA3LjctNjUuMiAxNzAuNy02NS4yIDEuNSAwIDIuMSAuMyA0LjMgLjkgMS40IC42IDEuOCAxLjQgMy43IDIuNSAxLjEgMS4xIDEuOSAyLjMgMi41IDMuNyAuNSAxLjQgLjggMi44IC44IDQuM2wwIDEwMSAyNC41LTI1LjljMS0xLjEgMi4yLTIgMy42LTIuNiAxLjMtLjYgMi44LS45IDQuMy0xIDEuNS0uMSAyLjkgLjIgNC4zIC43czIuNyAxLjMgMy44IDIuNGMxIDEgMS45IDIuMiAyLjUgMy42IC42IDEuMyAxIDIuOCAxIDQuM3MtLjIgMy0uNyA0LjNjLS42IDEuNC0xLjQgMi42LTIuNCAzLjdsLTQ0IDQ2LjZjLTEuMSAxLjEtMi4zIDItMy43IDIuNi0xLjUgLjYtMyAuOS01LjQgLjktLjYgMC0yLjItLjMtMy42LS45cy0yLjctMS41LTMuNy0yLjZsLTQ0LjEtNDYuNmMtMi0yLjItMy4xLTUuMS0zLTguMSAwLTMgMS4zLTYuNyAzLjUtNy45IDIuMi0yLjEgNS4xLTMuMiA4LjEtMy4xIDMgLjEgNS44IDEuMyA3LjkgMy41bDI0LjUgMjYgMC04OS41Yy01Ni40IDIuOC0xMDkuOCAyNS44LTE1MC41IDY1LTQwLjYgMzkuMS02NS43IDkxLjctNzAuNiAxNDcuOVMzNC40IDM0OC4xIDY3LjcgMzkzLjdjMzIuNCA0NS41IDgyIDc3LjUgMTM3IDg5LjkgMi45IC43IDUuNSAyLjUgNy4xIDV6TTE3MS40IDEyNi4xYy0uOCAxLjMtMS45IDIuNC0zLjEgMy4yLTIwLjUgMTMuOS0zNy4yIDMyLjYtNDguOCA1NC41cy0xNy43IDQ2LjMtMTcuNyA3MS4xIDYuMSA0OS4yIDE3LjcgNzAuMmMxMS42IDIyLjggMjguMyA0MS41IDQ4LjggNTUuNCAyLjUgMS43IDQuMiA0LjMgNC43IDcuMyAuNiAyLjktLjkgNi0xLjcgOC40LTEuNyAyLjUtNS4yIDQuMi03LjMgMy45LTIuOSAxLjQtNiAuOC04LjQtLjktMjMuNi0xNi00Mi44LTM3LjUtNTYuMS02Mi43LTEzLjMtMjUuMS0yMC4zLTUzLjEtMjAuMy04MS42IDAtMjguNCA3LTU2LjUgMjAuMy04MS42IDEzLjMtMjUuMiAzMi41LTQ2LjcgNTYuMS02Mi43IDEuMi0uOCAyLjYtMS40IDQtMS44IDEuNS0uMyAzLS4zIDQuNSAwIDEuNCAuMiAyLjggLjggNC4xIDEuNnMyLjMgMS45IDMuMiAzLjFjLjggMS4yIDEuNCAyLjYgMS43IDQuMXMuMyAzIDAgNC40Yy0uMyAxLjUtLjggMi45LTEuNyA0LjF6TTM0MC45IDM4My41Yy44LTEuMiAxLjktMi4zIDIuMi0zLjFsMC0uMWMyMS4zLTE0IDM4LTMyLjcgNDkuNi01NC42IDExLjUtMjEuOCAxNy41LTQ2LjIgMTcuNS03MC45cy02LTQ5LjEtMTcuNS03MWMtMTEuNi0yMi43LTI4LjMtNDAuNS00OS42LTU0LjUtLjMtLjgtMS40LTEuOS0yLjItMy4xLS44LTEuMy0xLjQtMi43LTEuNi00LjEtMS4yLTEuNS0uMy0zIDAtNC40IC4zLTEuNSAuOS0yLjkgMS43LTQuMSAuOS0xLjIgMS4xLTIuMyAzLjItMy4xIDEuMi0uOCAyLjYtMS4zIDQuMS0xLjZzMi45LS4zIDQuNCAwIDIuOCAuOSA0LjEgMS44YzIzLjQgMTYgNDIuNyAzNy41IDU1LjkgNjIuNiAxMy4zIDI1LjEgMTkuNCA1My4xIDE5LjQgODEuNSAwIDI4LjUtNi4xIDU2LjUtMTkuNCA4MS42LTEzLjIgMjUuMS0zMi41IDQ2LjYtNTUuOSA2Mi42LTEuMyAuOS0yLjYgMS41LTQuMSAxLjhzLTIuOSAuMy00LjQgMC0yLjktMS43LTQuMS0xLjZjLTIuMS0uOC0yLjMtMS45LTMuMi0zLjEtLjgtMS4yLTEuNC0yLjYtMS43LTQuMS0uMy0xLjQtMS4yLTIuOSAwLTQuNCAuMi0xLjQgLjgtMi44IDEuNi00LjF6TTMxMi4zIDYuM2M1Ni4yIDEyLjcgMTA2LjQgNDQgMTQyLjcgODguNyAzMC40IDM3LjYgNDkuNiA4MyA1NS4zIDEzMSA1LjYgNDgtMi40IDk2LjctMjMuMiAxNDAuMy0yMC45IDQzLjYtNTMuNiA4MC41LTk0LjUgMTA2LjMtNDAuOSAyNS43LTg4LjIgMzkuNC0xMzYuNiAzOS40LTEuNSAwLTIuOS0uMy00LjMtLjktMS40LS41LTIuNi0xLjQtMy43LTIuNC0xLjktMS4xLTEuOS0yLjMtMi40LTMuNy0uNi0xLjQtLjktMi44LS45LTQuM2wwLTk5LjItMjQuNSAyNmMtMi4xIDIuMi00LjkgMi42LTcuOSAzLjYtMyAuMS01LjktMS4xLTguMS00LTIuMi0xLjItMy41LTQtMy41LTctLjEtMyAxLTUuOSAzLTguMWw0NC4xLTQ2LjZjMS4zLTIuMiA1LjEtMy40IDcuMy0zLjQgNCAwIDYuOSAxLjIgOS4xIDMuNGw0NCA0Ni42YzIuMSAyLjIgMy4yIDUuMSAzLjEgOC4xcy0xLjQgNS44LTMuNSA3Yy0yLjIgMi45LTUuMSA0LjEtOC4xIDQtMy0xLTUuOS0xLjQtNy45LTMuNmwtMjQuNS0yNS45IDAgODcuNWM1Ni40LTIuOCAxMDkuOC0yNS44IDE1MC41LTY1IDQwLjctNDAgNjUuOC05MS43IDcwLjctMTQ3LjkgNC44LTU3LjEtMTAuOC0xMTIuMy00NC4xLTE1Ny45LTMzLjMtNDUuNi04Mi03Ny41LTEzNy04OS45LTEuNS0uMy0yLjgtLjktNC4xLTEuOC0xLjItLjktMi4yLTEuOS0zLTMuMi0uOC0xLjItMi4yLTIuNi0xLjYtNC4xLS4yLTEuNS0uMi0zIC4xLTQuNCAuNC0xLjQgMS0yLjggMS44LTQgLjktMS4yIDItMi4yIDMuMi0zIDEuMy0uOCAyLjctMS4zIDQuMS0xLjYgMS41LS4zIDMtLjIgNC40IC4xem00MC44IDI0OS44YzAgMzEuNC0xNy41IDYxLjEtNDkuMyA4My41LTIuMSAxLjUtNC44IDIuMy03LjQgMi0yLjctLjItNS4yLTEuMy03LTMuMmwtNzAuMS02OS44Yy0yLjItMi4xLTQuMi01LTMuNC04IDAtMyAxLjItNS45IDMuMy04IDIuMi0yLjEgNS0zLjMgOC0zLjNzNS45IDEuMiA4IDMuM2w2My4xIDYyLjhjMjAuOC0xNy4xIDMyLjItMzcuOSAzMi4yLTU5LjMgMC0yMy45LTE0LjEtNDctMzkuNy02NS4xLTIuNS0xLjctNC4xLTQuMy00LjYtNy4zLS41LTIuOSAuMS02IDEuOS04LjQgMS43LTIuNSA0LjMtNC4xIDcuMy00LjYgMi45LS41IDYgLjEgOC40IDEuOSAzMS44IDIyLjQgNDkuMyA1Mi4xIDQ5LjMgODMuNXpNMjE2LjcgMzQxLjVjLTMgLjUtNi0uMi04LjUtMS45LTMxLjctMjIuNC01MC4xLTUyLjEtNTAuMS04My41czE4LjQtNjEuMSA1MC4xLTgzLjVjMi4yLTEuNiA0LjktMi4zIDcuNS0yLjEgMi43IC4zIDUuMSAxLjQgNyAzLjNsNzAuMSA2OS44YzIuMSAyLjEgMy4zIDUgMy4zIDhzLTIgNS44LTMuMyA4Yy0yLjEgMi4xLTUgMy4zLTcuOSAzLjMtMyAwLTYuOC0xLjItOC0zLjNsLTYzLjEtNjIuOWMtMjAuOSAxNy4zLTMyLjIgMzgtMzIuMiA1OS40IDAgMjMgMTQuMSA0NyAzOS43IDY1IDIuNCAxLjggNC4xIDQuNCA0LjYgNy40IC41IDIuOS0uMiA1LjktMS45IDguNC0xLjcgMi40LTQuNCA0LjEtNy4zIDQuNnpcIl1cbn07XG52YXIgZmFDcmVhdGl2ZUNvbW1vbnNCeSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjcmVhdGl2ZS1jb21tb25zLWJ5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGU3XCIsIFwiTTMyMi45IDE5NC40bDAgMTAxLjQtMjguMyAwIDAgMTIwLjUtNzcuMSAwIDAtMTIwLjQtMjguMyAwIDAtMTAxLjVjMC00LjQgMS42LTguMiA0LjYtMTEuMyAzLjEtMy4xIDYuOS00LjcgMTEuMy00LjdsMTAxLjkgMGM0LjEgMCA3LjggMS42IDExLjEgNC43IDMuMSAzLjIgNC44IDYuOSA0LjggMTEuM3ptLTMyLjUtNjQuNWEzNC41IDM0LjUgMCAxIDEgLTY5IC44IDM0LjUgMzQuNSAwIDEgMSA2OS0uOHpNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zelwiXVxufTtcbnZhciBmYVVtYnJhY28gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndW1icmFjbycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjhlOFwiLCBcIk0yNTYuMyA4YTI0OCAyNDggMCAxIDAgLS43IDQ5NiAyNDggMjQ4IDAgMSAwIC43LTQ5NnptMTQ1IDI2NmMtLjggMjcuMS01LjQgNDguOC0xNCA2NXMtMjMuMSAyNy45LTQzLjUgMzVjLTIwLjQgNy4xLTQ4LjkgMTAuNi04NS40IDEwLjVsLTQuNiAwYy0zNi41IC4xLTY1LTMuMy04NS40LTEwLjVzLTM0LjktMTguOC00My41LTM1Yy04LjYtMTYuMi0xMy4yLTM3LjktMTQtNjUtLjctMTAuMi0uNy0yMC41IDAtMzAuNyAuNC0xNC43IDEuNi0yOS4zIDMuNi00My45IDEuOS0xMy40IDMuNi0yMi42IDUuNC0zMiAxLTQuOSAxLjMtNi40IDEuOC04LjQgLjMtMS4xIC45LTIuMSAxLjgtMi44czItMS4xIDMuMS0xLjFsLjcgMCAzMiA1YzEuMiAuMiAyLjIgLjggMyAxLjdzMS4yIDIuMSAxLjIgMy4zYzAgLjMgMCAuNSAwIC44bC0xLjcgOC44Yy0xLjYgOC44LTMuMiAyMC4xLTQuOCAzMy43LTEuNyAxNC0yLjUgMjguMS0yLjYgNDIuMi0uMiAyNyAyLjUgNDYuOSA4LjEgNTkuOCAyLjggNi40IDcuMiAxMiAxMi42IDE2LjRzMTEuOSA3LjQgMTguNyA4LjhjMTguOCA0IDM4LjEgNS43IDU3LjMgNS4xbDEwLjMgMGMxOS4yIC42IDM4LjUtMS4yIDU3LjMtNS4yIDYuOC0xLjQgMTMuMi00LjUgMTguNi04LjhzOS43LTEwIDEyLjUtMTYuNGM1LjctMTIuOSA4LjQtMzIuOSA4LjEtNTkuOC0uMS0xNC4xLTEtMjguMi0yLjYtNDIuMS0xLjctMTMuNi0zLjMtMjQuOC00LjktMzMuN2wtMS43LTguOGMwLS4zIDAtLjUgMC0uOCAwLTEuMiAuNC0yLjQgMS4yLTMuM3MxLjgtMS41IDMtMS43bDMyLTUgLjggMGMxLjEgMCAyLjIgLjQgMy4xIDEuMXMxLjUgMS43IDEuOCAyLjhjLjYgMiAuOCAzLjYgMS44IDguNCAxLjggOS42IDMuNSAxOC44IDUuNCAzMiAyIDE0LjYgMy4yIDI5LjIgMy42IDQzLjkgLjcgMTAuMiAuNyAyMC41IDAgMzAuN2wwIDB6XCJdXG59O1xudmFyIGZhSG9vbGkgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnaG9vbGknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0MjdcIiwgXCJNMTQ0LjUgMzUybDM4LjMgLjhjLTEzLjItNC42LTI2LTEwLjItMzguMy0xNi44bDAgMTZ6bTU3LjctNS4zbDAgNS4zLTE5LjQgLjhjMzYuNSAxMi41IDY5LjkgMTQuMiA5NC43IDcuMi0xOS45IC4yLTQ1LjgtMi42LTc1LjMtMTMuM3pNNjExLjEgMjMxLjVjMTUuOSAwIDI4LjktMTIuOSAyOC45LTI4LjlzLTEyLjktMjQuNS0yOC45LTI0LjVjLTE1LjkgMC0yOC45IDguNi0yOC45IDI0LjVzMTIuOSAyOC45IDI4LjkgMjguOXpNNTgyLjEgMzUybDU3LjkgMCAwLTExMC41LTU3LjkgMCAwIDExMC41em0tNzMuNyAwbDU3LjkgMCAwLTE5NS4zLTU3LjkgMjcuMyAwIDE2OHptLTMxLTExOS40Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMy0xLjEtNTAuNCAxNy4xYy0xOC4yIDE4LjItMTYuOCAzMy45LTE2LjggNTIuNnMtMS40IDM0LjMgMTYuOCA1Mi41IDUwLjQgMTcuMSA1MC40IDE3LjEgMzIuMyAxLjEgNTAuNC0xNy4xYzE4LjItMTguMiAxNi44LTMzLjggMTYuOC01Mi41LS4xLTE4LjggMS4zLTM0LjUtMTYuOC01Mi42em0tMzkuOCA3MS45YzAgMy42LTEuOCAxMi41LTEwLjcgMTIuNXMtMTAuNy04LjktMTAuNy0xMi41bDAtNDAuNGMwLTguNyA3LjMtMTAuOSAxMC43LTEwLjlzMTAuNyAyLjEgMTAuNyAxMC45bDAgNDAuNHpNMzMxLjQgMjMyLjZjLTE4LjItMTguMi01MC40LTE3LjEtNTAuNC0xNy4xcy0zMi4yLTEuMS01MC40IDE3LjFjLTEuOSAxLjktMy43IDMuOS01LjMgNi0zOC4yLTI5LjYtNzIuNS00Ni41LTEwMi4xLTYxLjFsMC0yMC43LTIyLjUgMTAuNmMtNTQuNC0yMi4xLTg5LTE4LjItOTcuMyAuMSAwIDAtMjQuOSAzMi44IDYxLjggMTEwLjhsMCA3My43IDU3LjkgMCAwLTI4LjZjLTYuNS00LjItMTMtOC43LTE5LjQtMTMuNi0xNC44LTExLjItMjcuNC0yMS42LTM4LjQtMzEuNGwwLTMxYzEzLjEgMTQuNyAzMC41IDMxLjQgNTMuNCA1MC4zbDQuNSAzLjYgMC0yOS44YzAtNi45IDEuNy0xOC4yIDEwLjgtMTguMnMxMC42IDYuOSAxMC42IDE1bDAgNDguN2MxOCAxMi4yIDM3LjMgMjIuMSA1Ny43IDI5LjZsMC05My45YzAtMTguNy0xMy40LTM3LjQtNDAuNi0zNy40LTE1LjgtLjEtMzAuNSA4LjItMzguNSAyMS45bDAtNTQuM2M0MS45IDIwLjkgODMuOSA0Ni41IDk5LjkgNTguMy0xMC4yIDE0LjYtOS4zIDI4LjEtOS4zIDQzLjcgMCAxOC43LTEuNCAzNC4zIDE2LjggNTIuNXM1MC40IDE3LjEgNTAuNCAxNy4xIDMyLjMgMS4xIDUwLjQtMTcuMWMxOC4yLTE4LjIgMTYuNy0zMy44IDE2LjctNTIuNSAwLTE4LjUgMS41LTM0LjItMTYuNy01Mi4zek02NS4yIDE4NGwwIDYzLjNjLTQ4LjctNTQuNS0zOC45LTc2LTM1LjItNzkuMSAxMy41LTExLjQgMzcuNS04IDY0LjQgMi4xTDY1LjIgMTg0ek0yOTEuNyAzMDQuNWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNWwwLTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOWwwIDQwLjR6XCJdXG59O1xudmFyIGZhU3F1YXJlR2l0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NxdWFyZS1naXQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImdpdC1zcXVhcmVcIl0sIFwiZjFkMlwiLCBcIk0xMjAuOCAzMzUuNWMtNS45LS40LTEyLjYtLjgtMjAuMi0xLjMtMy4zIDQuMS02LjYgOC40LTYuNiAxMy41IDAgMTguNSA2NS41IDE4LjUgNjUuNS0xLjUgMC04LjMtNy40LTguNy0zOC44LTEwLjdsLjEgMHptNy44LTExNy45Yy0zMi4zIDAtMzMuNyA0NC41LS43IDQ0LjUgMzIuNSAwIDMxLjctNDQuNSAuNy00NC41ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMjQzLjkgMTcyLjJjLTE0LjUgMC0yMi45LTguNC0yMi45LTIyLjlzOC40LTIyLjMgMjIuOS0yMi4zYzE0LjcgMCAyMy4xIDcuOCAyMy4xIDIyLjNzLTguNCAyMi45LTIzLjEgMjIuOXpNMTQ5LjYgMTk1bDQ5LjUgMCAwIDIxLjYtMjMuNCAxLjhjNC42IDUuOCA5LjQgMTQgOS40IDI1LjcgMCA0OC43LTU3LjIgNDcuMi03NC4yIDQyLjRsLTguNCAxMy40YzUgLjMgOS44IC42IDE0LjMgLjggNTYuMyAzLjIgODAuNSA0LjYgODAuNSAzOC41IDAgMjkuMi0yNS43IDQ1LjctNjkuOSA0NS43LTQ2IDAtNjMuNS0xMS42LTYzLjUtMzEuNyAwLTExLjQgNS4xLTE3LjUgMTQtMjUuOS04LjQtMy41LTExLjItOS45LTExLjItMTYuOCAwLTkuNiA3LjQtMTYuMyAyMy0zMC42bC4yLS4yYy0xMi40LTYuMS0yMS44LTE5LjMtMjEuOC0zOC4xIDAtNTEuNiA1Ni42LTUzLjMgODEuNi00Ni44bC0uMSAuMnpNMjcwLjUgMzAzLjFsMTMgMS44IDAgMjAuMS03Mi40IDAgMC0yMC4xYzIuNy0uNCA1LS43IDYuOS0uOSA5LjktMS4yIDEwLjEtMS4zIDEwLjEtNmwwLTc0LjdjMC00LjQtLjktNC43LTEwLjEtNy44LTEuOS0uNy00LjItMS40LTYuOS0yLjRsMi44LTIwLjYgNTIuNiAwIDAgMTA1LjVjMCA0LjEgLjIgNC42IDQuMSA1LjFsLS4xIDB6bTEwNi42LTEwLjRMMzg0IDMxNWMtMTAuOSA1LjQtMjYuOSAxMC4yLTQxLjQgMTAuMi0zMC4yIDAtNDEuNy0xMi4yLTQxLjctNDAuOWwwLTY2LjZjMC0uOCAwLTEuNC0uMi0xLjgtLjgtMS4yLTQuMi0uNy0xOS42LS43bDAtMjIuNmMyMi4zLTIuNSAzMS4yLTEzLjcgMzQtNDEuNGwyNC4yIDBjMCAzMy4zLS42IDM4IC43IDM4LjYgLjMgLjEgLjcgMCAxLjMgMGwzNS44IDAgMCAyNS40LTM3LjggMCAwIDYxLjZjLS4yIDYuMy0uOSAzMC40IDM3LjkgMTUuOWwtLjEgMHpcIl1cbn07XG52YXIgZmFHaXRTcXVhcmUgPSBmYVNxdWFyZUdpdDtcbnZhciBmYU9kbm9rbGFzc25pa2kgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnb2Rub2tsYXNzbmlraScsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjI2M1wiLCBcIk0yNzUuMSAzMzRjLTI3LjQgMTcuNC02NS4xIDI0LjMtOTAgMjYuOWwyMC45IDIwLjYgNzYuMyA3Ni4zYzI3LjkgMjguNi0xNy41IDczLjMtNDUuNyA0NS43LTE5LjEtMTkuNC00Ny4xLTQ3LjQtNzYuMy03Ni42TDg0IDUwMy40Yy0yOC4yIDI3LjUtNzMuNi0xNy42LTQ1LjQtNDUuNyAxOS40LTE5LjQgNDcuMS00Ny40IDc2LjMtNzYuM2wyMC42LTIwLjZjLTI0LjYtMi42LTYyLjktOS4xLTkwLjYtMjYuOS0zMi42LTIxLTQ2LjktMzMuMy0zNC4zLTU5IDcuNC0xNC42IDI3LjctMjYuOSA1NC42LTUuNyAwIDAgMzYuMyAyOC45IDk0LjkgMjguOVMyNTUgMjY5LjIgMjU1IDI2OS4yYzI2LjktMjEuMSA0Ny4xLTguOSA1NC42IDUuNyAxMi40IDI1LjctMS45IDM4LTM0LjUgNTkuMXptMTQuNi0yMDQuN2ExMjkuNyAxMjkuNyAwIDEgMSAtMjU5LjQgLjQgMTI5LjcgMTI5LjcgMCAxIDEgMjU5LjQtLjR6bS0xOTMuNCAuNGE2My43IDYzLjcgMCAxIDAgMTI3LjQtLjQgNjMuNyA2My43IDAgMSAwIC0xMjcuNCAuNHpcIl1cbn07XG52YXIgZmFEcnVwYWwgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZHJ1cGFsJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWE5XCIsIFwiTTI3Mi4zIDEwOC4xQzIzNi41IDcyLjUgMjAyLjUgMzguNCAxOTIuNCAwIDE4Mi40IDM4LjQgMTQ4LjEgNzIuNSAxMTIuNCAxMDguMSA1OC44IDE2MS43LTEuOSAyMjIuNC0xLjkgMzEzLjQtNC4zIDQyMC43IDgwLjggNTA5LjYgMTg4LjEgNTEyczE5Ni4yLTgyLjggMTk4LjUtMTkwLjFjLjEtMi44IC4xLTUuNiAwLTguNSAwLTkxLjEtNjAuOC0xNTEuNy0xMTQuMy0yMDUuM3pNOTggMzMxLjFjLTUuOSA3LjUtMTEgMTUuNi0xNS4yIDI0LjItLjMgLjctLjggMS4zLTEuMyAxLjhzLTEuMiAuOC0yIDFsLTEuNyAwYy00LjMgMC05LjItOC41LTkuMi04LjUtMS4zLTItMi41LTQuMi0zLjctNi40bC0uOC0xLjhjLTExLjItMjUuNy0xLjUtNjIuMy0xLjUtNjIuMyA0LjgtMTcuOCAxMi43LTM0LjcgMjMuMi00OS45IDYuNC05LjYgMTMuNS0xOC45IDIxLTI3LjdsOS4yIDkuMiA0My41IDQ0LjRjLjggLjkgMS4zIDIuMSAxLjMgMy4zcy0uNSAyLjQtMS4zIDMuM0wxMTQuMSAzMTIuMyA5OCAzMzEuMXptOTYuNiAxMjcuM2MtMTIuOS0uMS0yNS42LTMuOS0zNi40LTExcy0xOS40LTE3LjEtMjQuNi0yOC45LTctMjQuOS01LTM3LjcgNy42LTI0LjcgMTYuMi0zNC40YzE0LjItMTYuOSAzMS41LTMzLjUgNTAuMy01NS4zIDIyLjMgMjMuOCAzNi45IDQwLjEgNTEuMiA1OCAxLjEgMS40IDIuMSAyLjkgMyA0LjQgNy44IDExLjEgMTIgMjQuNCAxMiAzOCAwIDguOC0xLjcgMTcuNC01IDI1LjVzLTguMiAxNS41LTE0LjQgMjEuNy0xMy41IDExLjEtMjEuNiAxNC41LTE2LjcgNS4xLTI1LjUgNS4xbC0uMiAwek0zMjAuNyAzNTEuNmMtLjQgMS40LTEuMiAyLjYtMi4zIDMuNnMtMi40IDEuNi0zLjggMS44bC0xLjMgMGMtMi42LS45LTQuOS0yLjctNi4zLTUuMS0xMS42LTE3LjUtMjQuOS0zMy45LTM5LjUtNDlsLTE3LjgtMTguNC01OS4xLTYxLjNjLTEyLjQtMTEuNS0yNC4yLTIzLjYtMzUuNC0zNi4zLS4zLS41LS42LS45LS45LTEuNC0yLTIuOC0zLjYtNS45LTQuNy05LjJsMC0xLjhjLS44LTUtLjQtMTAuMSAxLjItMTVzNC40LTkuMiA4LTEyLjdjMTEuNC0xMS40IDIzLTIzIDMzLjgtMzQuOSAxMiAxMy4zIDI0LjggMjYgMzcuNCAzOC42IDI1LjggMjQgNDkuMSA1MC41IDY5LjYgNzkuMSAxNy4zIDI0LjUgMjYuNyA1My44IDI3IDgzLjgtLjEgMTIuOS0yLjIgMjUuOC02IDM4LjJ6XCJdXG59O1xudmFyIGZhQmxvZ2dlckIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYmxvZ2dlci1iJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMzdkXCIsIFwiTTQ0Ni42IDIyMi43Yy0xLjgtOC02LjgtMTUuNC0xMi41LTE4LjUtMS44LTEtMTMtMi4yLTI1LTIuNy0yMC4xLS45LTIyLjMtMS4zLTI4LjctNS0xMC4xLTUuOS0xMi44LTEyLjMtMTIuOS0yOS41LS4xLTMzLTEzLjgtNjMuNy00MC45LTkxLjMtMTkuMy0xOS43LTQwLjktMzMtNjUuNS00MC41LTUuOS0xLjgtMTkuMS0yLjQtNjMuMy0yLjktNjkuNC0uOC04NC44IC42LTEwOC40IDEwLTQzLjUgMTcuMi03NC43IDUzLjgtODYuMSAxMDAuNi0yLjEgOC44LTIuNiAyMi45LTMuMSAxMDMuOS0uNiAxMDEuNSAuMSAxMTYuNCA2LjQgMTM2LjUgMTUuNiA0OS42IDU5LjkgODYuMyAxMDQuNCA5NC4zIDE0LjggMi43IDE5Ny4zIDMuMyAyMTYgLjggMzIuNS00LjQgNTgtMTcuNSA4MS45LTQxLjkgMTcuMy0xNy43IDI4LjEtMzYuOCAzNS4yLTYyLjEgNC45LTE3LjYgNC41LTE0Mi44IDIuNS0xNTEuN3pNMTI0LjUgMTU5LjFjNy44LTcuOSAxMC04LjIgNTguOC04LjIgNDMuOSAwIDQ1LjQgLjEgNTEuOCAzLjQgOS4zIDQuNyAxMy40IDExLjMgMTMuNCAyMS45IDAgOS41LTMuOCAxNi4yLTEyLjMgMjEuNi00LjYgMi45LTcuMyAzLjEtNTAuMyAzLjMtMjYuNSAuMi00Ny43LS40LTUwLjgtMS4yLTE2LjYtNC43LTIyLjgtMjguNS0xMC42LTQwLjh6TTMxNi4zIDM1OC45bC0xNC45IDIuNC03Ny41IC45Yy02OC4xIC44LTg3LjMtLjQtOTAuOS0yLTcuMS0zLjEtMTMuOC0xMS43LTE0LjktMTkuNC0xLjEtNy4zIDIuNi0xNy4zIDguMi0yMi40IDcuMS02LjQgMTAuMi02LjYgOTcuMy02LjcgODkuNi0uMSA4OS4xLS4xIDk3LjYgNy44IDEyLjEgMTEuMyA5LjUgMzEuMi00LjkgMzkuNHpcIl1cbn07XG52YXIgZmFJbnZpc2lvbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdpbnZpc2lvbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdiMFwiLCBcIk00MDcuNCAzMkw0MC42IDMyQzE4LjIgMzIgMCA1MC4yIDAgNzIuNkwwIDQzOS40QzAgNDYxLjggMTguMiA0ODAgNDAuNiA0ODBsMzY2LjggMGMyMi40IDAgNDAuNi0xOC4yIDQwLjYtNDAuNmwwLTM2Ni44QzQ0OCA1MC4yIDQyOS44IDMyIDQwNy40IDMyek0xNzYuMSAxNDUuNmMuNCAyMy40LTIyLjQgMjcuMy0yNi42IDI3LjQtMTQuOSAwLTI3LjEtMTItMjcuMS0yNyAuMS0zNS4yIDUzLjEtMzUuNSA1My43LS40ek0zMzIuOCAzNzdjLTY1LjYgMC0zNC4xLTc0LTI1LTEwNi42IDE0LjEtNDYuNC00NS4yLTU5LTU5LjkgLjdsLTI1LjggMTAzLjMtNDUuMSAwIDguMS0zMi41Yy0zMS41IDUxLjgtOTQuNiA0NC40LTk0LjYtNC4zIC4xLTE0LjMgLjktMTQgMjMtMTA0LjFsLTMxLjggMCA5LjctMzUuNiA3Ni40IDBjLTMzLjYgMTMzLjctMzIuNiAxMjYuOS0zMi45IDEzOC4yIDAgMjAuOSA0MC45IDEzLjUgNTcuNC0yMy4ybDE5LjgtNzkuNC0zMi4zIDAgOS43LTM1LjYgNjguOCAwLTguOSA0MC41YzQwLjUtNzUuNSAxMjcuOS00Ny44IDEwMS44IDM4LTE0LjIgNTEuMS0xNC42IDUwLjctMTQuOSA1OC44IDAgMTUuNSAxNy41IDIyLjYgMzEuOC0xNi45TDM4NiAzMjVjLTEwLjUgMzYuNy0yOS40IDUyLTUzLjIgNTJ6XCJdXG59O1xudmFyIGZhRmFjZWJvb2tGID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ZhY2Vib29rLWYnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYzOWVcIiwgXCJNODAgMjk5LjNsMCAyMTIuNyAxMTYgMCAwLTIxMi43IDg2LjUgMCAxOC05Ny44LTEwNC41IDAgMC0zNC42YzAtNTEuNyAyMC4zLTcxLjUgNzIuNy03MS41IDE2LjMgMCAyOS40IC40IDM3IDEuMmwwLTg4LjdDMjkxLjQgNCAyNTYuNCAwIDIzNi4yIDAgMTI5LjMgMCA4MCA1MC41IDgwIDE1OS40bDAgNDIuMS02NiAwIDAgOTcuOCA2NiAwelwiXVxufTtcbnZhciBmYUNlbnRvcyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjZW50b3MnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY3ODlcIiwgXCJNMjg5LjYgOTcuNWwzMS42IDMxLjctNzYuMyA3Ni41IDAtMTA4LjIgNDQuNyAwek0xMjcuMiAxMjkuMmw3Ni4zIDc2LjUgMC0xMDguMi00NC43IDAtMzEuNiAzMS43em00MS41LTQxLjZsNDQuNyAwIDAgMTI3LjkgMTAuOCAxMC44IDEwLjgtMTAuOCAwLTEyNy45IDQ0LjcgMC01NS41LTU1LjYtNTUuNSA1NS42em0yNi4yIDE2OC4xbC0xMC44LTEwLjgtMTI4LjYgMCAwLTQ0LjgtNTUuNSA1NS42IDU1LjUgNTUuNiAwLTQ0LjggMTI4LjYgMCAxMC44LTEwLjh6TTI3NC4yIDIzNWwxMDcuOSAwIDAtNDQuOC0zMS42LTMxLjctNzYuMyA3Ni41em0xNzMuMyAyMC43bC01NS41LTU1LjYgMCA0NC44LTEyNy43IDAtMTAuOCAxMC44IDEwLjggMTAuOCAxMjcuNyAwIDAgNDQuOCA1NS41LTU1LjZ6TTY1LjQgMTc2LjJsMzIuNS0zMS43IDkwLjMgOTAuNSAxNS4zIDAgMC0xNS4zLTkwLjMtOTAuNSAzMS42LTMxLjctNzkuNCAwIDAgNzguN3pNMzgyLjEgOTcuNWwtNzguNSAwIDMxLjYgMzEuNy05MC4zIDkwLjUgMCAxNS4zIDE1LjMgMCA5MC4zLTkwLjUgMzEuNiAzMS43IDAtNzguN3pNMjAzLjUgNDEzLjlsMC0xMDguMS03Ni4zIDc2LjUgMzEuNiAzMS43IDQ0LjcgMCAwLS4xek02NS40IDIzNWwxMDguOCAwLTc2LjMtNzYuNS0zMi41IDMxLjcgMCA0NC44ek0zODIuMSAzMzUuMmwtMzEuNiAzMS43LTkwLjMtOTAuNS0xNS4zIDAgMCAxNS4zIDkwLjMgOTAuNS0zMS42IDMxLjcgNzguNSAwIDAtNzguN3ptMC01OC44bC0xMDcuOSAwIDc2LjMgNzYuNSAzMS42LTMxLjcgMC00NC44ek0zMjEuMiAzODIuMmwtNzYuMy03Ni41IDAgMTA4LjEgNDQuNyAwIDMxLjYtMzEuNnpNOTcuOSAzNTIuOWw3Ni4zLTc2LjUtMTA4LjggMCAwIDQ0LjggMzIuNSAzMS43em0xODEuOCA3MC45bC00NC43IDAgMC0xMjcuOS0xMC44LTEwLjgtMTAuOCAxMC44IDAgMTI3LjktNDQuNyAwIDU1LjUgNTUuNiA1NS41LTU1LjZ6TTExMy4yIDM4Mi4ybDkwLjMtOTAuNSAwLTE1LjMtMTUuMyAwLTkwLjMgOTAuNS0zMi41LTMxLjcgMCA3OC43IDc5LjQgMC0zMS42LTMxLjd6XCJdXG59O1xudmFyIGZhQ2NBbWF6b25QYXkgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY2MtYW1hem9uLXBheScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjQyZFwiLCBcIk0xMjQuNyAyMDEuOGMuMS0xMS44IDAtMjMuNSAwLTM1LjNsMC0zNS4zYzAtMS4zIC40LTIgMS40LTIuNyAxMS41LTggMjQuMS0xMi4xIDM4LjItMTEuMSAxMi41IC45IDIyLjcgNyAyOC4xIDIxLjcgMy4zIDguOSA0LjEgMTguMiA0LjEgMjcuNyAwIDguNy0uNyAxNy4zLTMuNCAyNS42LTUuNyAxNy44LTE4LjcgMjQuNy0zNS43IDIzLjktMTEuNy0uNS0yMS45LTUtMzEuNC0xMS43LS45LS44LTEuNC0xLjYtMS4zLTIuOHptMTU0LjkgMTQuNmM0LjYgMS44IDkuMyAyIDE0LjEgMS41IDExLjYtMS4yIDIxLjktNS43IDMxLjMtMTIuNSAuOS0uNiAxLjMtMS4zIDEuMy0yLjUtLjEtMy45IDAtNy45IDAtMTEuOCAwLTQtLjEtOCAwLTEyIDAtMS40LS40LTItMS44LTIuMi03LS45LTEzLjktMi4yLTIwLjktMi45LTctLjYtMTQtLjMtMjAuOCAxLjktNi43IDIuMi0xMS43IDYuMi0xMy43IDEzLjEtMS42IDUuNC0xLjYgMTAuOCAuMSAxNi4yIDEuNiA1LjUgNS4yIDkuMiAxMC40IDExLjJ6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTM2OC41IDEwMy45Yy40IDEuNyAuOSAzLjQgMS42IDUuMSAxNi41IDQwLjYgMzIuOSA4MS4zIDQ5LjUgMTIxLjkgMS40IDMuNSAxLjcgNi40IC4yIDkuOS0yLjggNi4yLTQuOSAxMi42LTcuOCAxOC43LTIuNiA1LjUtNi43IDkuNS0xMi43IDExLjItNC4yIDEuMS04LjUgMS4zLTEyLjkgLjktMi4xLS4yLTQuMi0uNy02LjMtLjgtMi44LS4yLTQuMiAxLjEtNC4zIDQtLjEgMi44LS4xIDUuNiAwIDguMyAuMSA0LjYgMS42IDYuNyA2LjIgNy41IDQuNyAuOCA5LjQgMS42IDE0LjIgMS43IDE0LjMgLjMgMjUuNy01LjQgMzMuMS0xNy45IDIuOS00LjkgNS42LTEwLjEgNy43LTE1LjQgMTkuOC01MC4xIDM5LjUtMTAwLjMgNTkuMi0xNTAuNSAuNi0xLjUgMS4xLTMgMS4zLTQuNiAuNC0yLjQtLjctMy42LTMuMS0zLjctNS42LS4xLTExLjEgMC0xNi43IDAtMy4xIDAtNS4zIDEuNC02LjQgNC4zLS40IDEuMS0uOSAyLjMtMS4zIDMuNGwtMjkuMSA4My43Yy0yLjEgNi4xLTQuMiAxMi4xLTYuNSAxOC42LS40LS45LS42LTEuNC0uOC0xLjktMTAuOC0yOS45LTIxLjYtNTkuOS0zMi40LTg5LjgtMS43LTQuNy0zLjUtOS41LTUuMy0xNC4yLS45LTIuNS0yLjctNC01LjQtNC02LjQtLjEtMTIuOC0uMi0xOS4yLS4xLTIuMiAwLTMuMyAxLjYtMi44IDMuN3pNMjQyLjQgMjA2YzEuNyAxMS43IDcuNiAyMC44IDE4IDI2LjYgOS45IDUuNSAyMC43IDYuMiAzMS43IDQuNiAxMi43LTEuOSAyMy45LTcuMyAzMy44LTE1LjUgLjQtLjMgLjgtLjYgMS40LTEgLjUgMy4yIC45IDYuMiAxLjUgOS4yIC41IDIuNiAyLjEgNC4zIDQuNSA0LjQgNC42IC4xIDkuMSAuMSAxMy43IDAgMi4zLS4xIDMuOC0xLjYgNC0zLjkgLjEtLjggLjEtMS42IC4xLTIuM2wwLTg4LjhjMC0zLjYtLjItNy4yLS43LTEwLjgtMS42LTEwLjgtNi4yLTE5LjctMTUuOS0yNS40LTUuNi0zLjMtMTEuOC01LTE4LjItNS45LTMtLjQtNi0uNy05LjEtMS4xbC0xMCAwYy0uOCAuMS0xLjYgLjMtMi41IC4zLTguMiAuNC0xNi4zIDEuNC0yNC4yIDMuNS01LjEgMS4zLTEwIDMuMi0xNSA0LjktMyAxLTQuNSAzLjItNC40IDYuNSAuMSAyLjgtLjEgNS42IDAgOC4zIC4xIDQuMSAxLjggNS4yIDUuNyA0LjEgNi41LTEuNyAxMy4xLTMuNSAxOS43LTQuOCAxMC4zLTEuOSAyMC43LTIuNyAzMS4xLTEuMiA1LjQgLjggMTAuNSAyLjQgMTQuMSA3IDMuMSA0IDQuMiA4LjggNC40IDEzLjcgLjMgNi45IC4yIDEzLjkgLjMgMjAuOCAwIC40LS4xIC43LS4yIDEuMi0uNCAwLS44IDAtMS4xLS4xLTguOC0yLjEtMTcuNy0zLjYtMjYuOC00LjEtOS41LS41LTE4LjkgLjEtMjcuOSAzLjItMTAuOCAzLjgtMTkuNSAxMC4zLTI0LjYgMjAuOC00LjEgOC4zLTQuNiAxNy0zLjQgMjUuOHpNOTguNyAxMDYuOWwwIDE3NS4zYzAgLjggMCAxLjcgLjEgMi41IC4yIDIuNSAxLjcgNC4xIDQuMSA0LjIgNS45IC4xIDExLjggLjEgMTcuNyAwIDIuNSAwIDQtMS43IDQuMS00LjEgLjEtLjggLjEtMS43IC4xLTIuNWwwLTYwLjdjLjkgLjcgMS40IDEuMiAxLjkgMS42IDE1IDEyLjUgMzIuMiAxNi42IDUxLjEgMTIuOSAxNy4xLTMuNCAyOC45LTEzLjkgMzYuNy0yOS4yIDUuOC0xMS42IDguMy0yNC4xIDguNy0zNyAuNS0xNC4zLTEtMjguNC02LjgtNDEuNy03LjEtMTYuNC0xOC45LTI3LjMtMzYuNy0zMC45LTIuNy0uNi01LjUtLjgtOC4yLTEuMmwtNyAwYy0xLjIgLjItMi40IC4zLTMuNiAuNS0xMS43IDEuNC0yMi4zIDUuOC0zMS44IDEyLjctMiAxLjQtMy45IDMtNS45IDQuNS0uMS0uNS0uMy0uOC0uNC0xLjItLjQtMi4zLS43LTQuNi0xLjEtNi45LS42LTMuOS0yLjUtNS41LTYuNC01LjZsLTkuNyAwYy01LjktLjEtNi45IDEtNi45IDYuOHpNNDkzLjYgMzM5Yy0yLjctLjctNS4xIDAtNy42IDEtNDMuOSAxOC40LTg5LjUgMzAuMi0xMzYuOCAzNS44LTE0LjUgMS43LTI5LjEgMi44LTQzLjcgMy4yLTI2LjYgLjctNTMuMi0uOC03OS42LTQuMy0xNy44LTIuNC0zNS41LTUuNy01My05LjktMzctOC45LTcyLjctMjEuNy0xMDYuNy0zOC44LTguOC00LjQtMTcuNC05LjMtMjYuMS0xNC0zLjgtMi4xLTYuMi0xLjUtOC4yIDIuMWwwIDEuN2MxLjIgMS42IDIuMiAzLjQgMy43IDQuOCAzNiAzMi4yIDc2LjYgNTYuNSAxMjIgNzIuOSAyMS45IDcuOSA0NC40IDEzLjcgNjcuMyAxNy41IDE0IDIuMyAyOCAzLjggNDIuMiA0LjUgMyAuMSA2IC4yIDkgLjQgLjcgMCAxLjQgLjIgMi4xIC4zbDE3LjcgMGMuNy0uMSAxLjQtLjMgMi4xLS4zIDE0LjktLjQgMjkuOC0xLjggNDQuNi00IDIxLjQtMy4yIDQyLjQtOC4xIDYyLjktMTQuNyAyOS42LTkuNiA1Ny43LTIyLjQgODMuNC00MC4xIDIuOC0xLjkgNS43LTMuOCA4LTYuMiA0LjMtNC40IDIuMy0xMC40LTMuMy0xMS45ek01NDQgMzExLjNjLS44LTQuMi00LTUuOC03LjYtNy01LjctMS45LTExLjYtMi44LTE3LjYtMy4zLTExLS45LTIyLS40LTMyLjggMS42LTEyIDIuMi0yMy40IDYuMS0zMy41IDEzLjEtMS4yIC44LTIuNCAxLjgtMy4xIDMtLjYgLjktLjcgMi4zLS41IDMuNCAuMyAxLjMgMS43IDEuNiAzIDEuNSAuNiAwIDEuMiAwIDEuOC0uMWwxOS41LTIuMWM5LjYtLjkgMTkuMi0xLjUgMjguOC0uOCA0LjEgLjMgOC4xIDEuMiAxMiAyLjIgNC4zIDEuMSA2LjIgNC40IDYuNCA4LjcgLjMgNi43LTEuMiAxMy4xLTIuOSAxOS41LTMuNSAxMi45LTguMyAyNS40LTEzLjMgMzcuOC0uMyAuOC0uNyAxLjctLjggMi41LS40IDIuNSAxIDQgMy40IDMuNSAxLjQtLjMgMy0xLjEgNC0yLjEgMy43LTMuNiA3LjUtNy4yIDEwLjYtMTEuMiAxMC43LTEzLjggMTctMjkuNiAyMC43LTQ2LjYgLjctMyAxLjItNi4xIDEuNy05LjEgLjItNC43IC4yLTkuNiAuMi0xNC41elwiXVxufTtcbnZhciBmYUViYXkgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZWJheScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRmNFwiLCBcIk02MDYuNSAxODkuNWwtNTQuOCAxMDkuOS01NC45LTEwOS45LTM3LjUgMCAxMC45IDIwLjZjLTExLjUtMTktMzUuOS0yNi02My4zLTI2LTMxLjggMC02Ny45IDguNy03MS41IDQzLjFsMzMuNyAwYzEuNC0xMy44IDE1LjctMjEuOCAzNS0yMS44IDI2IDAgNDEgOS42IDQxIDMzbDAgMy40Yy0xMi43IDAtMjggLjEtNDEuNyAuNC00Mi40IC45LTY5LjYgMTAtNzYuNyAzNC40IDEtNS4yIDEuNS0xMC42IDEuNS0xNi4yIDAtNTIuMS0zOS43LTc2LjItNzUuNC03Ni4yLTIxLjMgMC00MyA1LjUtNTguNyAyNC4ybDAtODAuNi0zMi4xIDAgMCAxNjkuNWMwIDEwLjMtLjYgMjIuOS0xLjEgMzMuMWwzMS41IDBjLjctNi4zIDEuMS0xMi45IDEuMS0xOS41IDEzLjYgMTYuNiAzNS40IDI0LjkgNTguNyAyNC45IDM2LjkgMCA2NC45LTIxLjkgNzMuMy01NC4yLS41IDIuOC0uNyA1LjgtLjcgOSAwIDI0LjEgMjEuMSA0NSA2MC42IDQ1IDI2LjYgMCA0NS44LTUuNyA2MS45LTI1LjUgMCA2LjYgLjMgMTMuMyAxLjEgMjAuMmwyOS44IDBjLS43LTguMi0xLTE3LjUtMS0yNi44bDAtNjUuNmMwLTkuMy0xLjctMTcuMi00LjgtMjMuOGw2MS41IDExNi4xLTI4LjUgNTQuMSAzNS45IDAgOTkuMi0xOTQuOC0zNCAwek0yNDQuMiAzMTMuOGMtMjkuNiAwLTUwLjItMjEuNS01MC4yLTUzLjggMC0zMi40IDIwLjYtNTMuOCA1MC4yLTUzLjggMjkuOCAwIDUwLjIgMjEuNCA1MC4yIDUzLjggMCAzMi4zLTIwLjQgNTMuOC01MC4yIDUzLjh6bTIwMC45LTQ3LjNjMCAzMC0xNy45IDQ4LjQtNTEuNiA0OC40LTI1LjEgMC0zNS0xMy40LTM1LTI1LjggMC0xOS4xIDE4LjEtMjQuNCA0Ny4yLTI1LjMgMTMuMS0uNSAyNy42LS42IDM5LjQtLjZsMCAzLjN6TTMzLjIgMjY4LjFsMTI4LjggMCAwLTguNWMwLTUxLjctMzMuMS03NS40LTc4LjQtNzUuNC01Ni44IDAtODMgMzAuOC04MyA3Ny42IDAgNDIuNSAyNS4zIDc0IDgyLjUgNzQgMzEuNCAwIDY4LTExLjcgNzQuNC00Ni4xbC0zMy4xIDBjLTEyIDM1LjgtODcuNyAzNi43LTkxLjItMjEuNnptOTUtMjEuNGwtOTQuNCAwYzYuOS01Ni42IDkyLjEtNTQuNyA5NC40IDB6XCJdXG59O1xudmFyIGZhQ29udGFvID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NvbnRhbycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI2ZFwiLCBcIk00NS40IDMwNWMxNC40IDY3LjEgMjYuNCAxMjkgNjguMiAxNzVMMzQgNDgwYy0xOC43IDAtMzQtMTUuMi0zNC0zNEwwIDY2QzAgNDcuMyAxNS4yIDMyIDM0IDMybDU3LjcgMGMtMTMuOCAxMi42LTI2LjEgMjcuMi0zNi45IDQzLjYtNDUuNCA3MC0yNyAxNDYuOC05LjQgMjI5LjR6TTQ3OCAzMmwtOTAuMiAwYzIxLjQgMjEuNCAzOS4yIDQ5LjUgNTIuNyA4NC4xTDMwMy40IDE0NS40Yy0xNC45LTI5LTM3LjgtNTMuMy04Mi42LTQzLjktMjQuNiA1LjMtNDEgMTkuMy00OC4zIDM0LjYtOC44IDE4LjctMTMuMiAzOS44IDguMiAxNDAuMyAyMS4xIDEwMC4yIDMzLjcgMTE3LjcgNDkuNSAxMzEuMiAxMi45IDExLjEgMzMuNCAxNyA1OC4zIDExLjcgNDQuNS05LjQgNTUuNy00MC43IDU3LjQtNzMuMmwxMzcuNC0yOS42YzMuMiA3MS41LTE4LjcgMTI1LjItNTcuNCAxNjMuNmw1Mi4xIDBjMTguNyAwIDM0LTE1LjIgMzQtMzRMNTEyIDY2YzAtMTguOC0xNS4yLTM0LTM0LTM0elwiXVxufTtcbnZhciBmYUVsbG8gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZWxsbycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVmMVwiLCBcIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM5OS44IDI5My4yQzM4My4zIDM1OC41IDMyMy44IDQwNC44IDI1NiA0MDQuOFMxMjguNyAzNTguNSAxMTIuMiAyOTMuMmMtMS42LTcuNCAyLjUtMTUuNyA5LjktMTcuNHMxNS43IDIuNSAxNy40IDkuOWMxNCA1Mi45IDYyIDkwLjEgMTE2LjYgOTAuMXMxMDIuNS0zNy4yIDExNi42LTkwLjFjMS43LTcuNCA5LjktMTIuNCAxNy40LTkuOSA3LjQgMS43IDEyLjQgOS45IDkuOSAxNy40elwiXVxufTtcbnZhciBmYVNpc3RyaXggPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc2lzdHJpeCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjNlZVwiLCBcIk00NDggNDQ5TDMwMS4yIDMwMC4yYzIwLTI3LjkgMzEuOS02Mi4yIDMxLjktOTkuMiAwLTkzLjEtNzQuNy0xNjguOS0xNjYuNS0xNjguOS05MS45LS4xLTE2Ni42IDc1LjctMTY2LjYgMTY4LjhTNzQuNyAzNjkuOCAxNjYuNSAzNjkuOGMzOS44IDAgNzYuMy0xNC4yIDEwNS0zNy45TDQxNy41IDQ4MCA0NDggNDQ5ek0xNjYuNSAzMzAuOGMtNzAuNiAwLTEyOC4xLTU4LjMtMTI4LjEtMTI5LjlTOTUuOSA3MSAxNjYuNSA3MSAyOTQuNiAxMjkuMyAyOTQuNiAyMDAuOSAyMzcuMiAzMzAuOCAxNjYuNSAzMzAuOHpcIl1cbn07XG52YXIgZmFQZXJpc2NvcGUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncGVyaXNjb3BlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmM2RhXCIsIFwiTTM3MCA2My42Yy0zOC42LTQxLTg5LjUtNjMuNi0xNDMuNC02My42LTExNC43IDAtMjA4LjEgOTYuMi0yMDguMSAyMTQuNCAwIDc1LjEgNTcuOCAxNTkuOCA4Mi43IDE5Mi43IDM2LjYgNDguNCA5MS40IDEwNC45IDEyNS40IDEwNC45IDQxLjYgMCAxMTIuOS05NC4yIDEyMC45LTEwNSAyNC42LTMzLjEgODItMTE4LjMgODItMTkyLjYgMC01Ni41LTIxLjEtMTEwLjEtNTkuNS0xNTAuOHpNMjI2LjYgNDkzLjljLTQyLjUgMC0xOTAtMTY3LjMtMTkwLTI3OS40IDAtMTA3LjQgODMuOS0xOTYuMyAxOTAtMTk2LjMgMTAwLjggMCAxODQuNyA4OSAxODQuNyAxOTYuMyAuMSAxMTIuMS0xNDcuNCAyNzkuNC0xODQuNyAyNzkuNHpNMzM4IDIwNi44YzAgNTkuMS01MS4xIDEwOS43LTExMC44IDEwOS43LTEwMC42IDAtMTUwLjctMTA4LjItOTIuOS0xODEuOGwwIC40YzAgMjQuNSAyMC4xIDQ0LjQgNDQuOCA0NC40czQ0LjgtMTkuOSA0NC44LTQ0LjRjMC0xOC4yLTExLjEtMzMuOC0yNi45LTQwLjcgNzYuNi0xOS4yIDE0MSAzOS4zIDE0MSAxMTIuNHpcIl1cbn07XG52YXIgZmFFeHBlZGl0ZWRzc2wgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZXhwZWRpdGVkc3NsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjNlXCIsIFwiTTI1NiA0My40YTIxMi42IDIxMi42IDAgMSAwIDAgNDI1LjIgMjEyLjYgMjEyLjYgMCAxIDAgMC00MjUuMnpNMTU4LjYgMTc2LjNjMC01My43IDQzLjctOTcuNCA5Ny40LTk3LjRzOTcuNCA0My43IDk3LjQgOTcuNGwwIDI2LjZjMCA1LTMuOSA4LjktOC45IDguOWwtMTcuNyAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMjYuNmMwLTgyLjEtMTI0LTgyLjEtMTI0IDBsMCAyNi42YzAgNS0zLjkgOC45LTguOSA4LjlsLTE3LjcgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjYgLjIgMHpNMzk3LjcgMzgwYzAgOS43LTggMTcuNy0xNy43IDE3LjdsLTI0OCAwYy05LjcgMC0xNy43LTgtMTcuNy0xNy43bDAtMTQxLjdjMC05LjcgOC0xNy43IDE3LjctMTcuN2wyNDggMGM5LjcgMCAxNy43IDggMTcuNyAxNy43bDAgMTQxLjd6bS0yNDgtMTM3LjNsMCAxMzIuOWMwIDIuNS0xLjkgNC40LTQuNCA0LjRsLTguOSAwYy0yLjUgMC00LjQtMS45LTQuNC00LjRsMC0xMzIuOWMwLTIuNSAxLjktNC40IDQuNC00LjRsOC45IDBjMi41IDAgNC40IDEuOSA0LjQgNC40em0xNDEuNyA0OC43YzAgMTMtNy4yIDI0LjQtMTcuNyAzMC40bDAgMzEuNmMwIDUtMy45IDguOS04LjkgOC45bC0xNy43IDBjLTUgMC04LjktMy45LTguOS04LjlsMC0zMS42Yy0xMC41LTYuMS0xNy43LTE3LjQtMTcuNy0zMC40IDAtMTkuNyAxNS44LTM1LjQgMzUuNC0zNS40czM1LjUgMTUuOCAzNS41IDM1LjR6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCAxNy43YTIzMC4zIDIzMC4zIDAgMSAxIDAgNDYwLjYgMjMwLjMgMjMwLjMgMCAxIDEgMC00NjAuNnpcIl1cbn07XG52YXIgZmFOYXBzdGVyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ25hcHN0ZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzZDJcIiwgXCJNMzA2LjMgMzczLjZjLTE0LjIgMTMuNi0zMS4zIDI0LjEtNTAuNCAzMC41LTE5LTYuNC0zNi4yLTE2LjktNTAuMy0zMC41bDEwMC43IDB6bTQ0LTE5OS42YzIwLTE2LjkgNDMuNi0yOS4yIDY5LjYtMzYuMmwwIDE2MS4yYzAgMjE5LjQtMzI4IDIxNy42LTMyOCAuM2wwLTE2MS42YzI1LjkgNi45IDQ5LjYgMTkuNiA2OS41IDM2LjQgNTYuOC00MCAxMzIuNS0zOS45IDE4OC45LS4xek0xNDEuNSAxMTUuNWM2NC40LTYwIDE2NC4zLTYwLjEgMjI4LjktLjItNy4xIDMuNS0xMy45IDcuMy0yMC42IDExLjUtNTguNy0zMC41LTEyOS4yLTMwLjQtMTg3LjkgLjEtNi4zLTQtMTMuOS04LjItMjAuNC0xMS40ek01MS44IDkzLjJsMCA2OS4zYy01OC40IDM2LjUtNTguNCAxMjEuMSAuMSAxNTguMyAyNi40IDI0NS4xIDM4MS43IDI0MC4zIDQwNy42IDEuNWwuMy0xLjdjNTguNy0zNi4zIDU4LjktMTIxLjcgLjItMTU4LjJsMC02OS4yYy0xNy4zIC41LTM0IDMtNTAuMSA3LjQtODItOTEuNS0yMjUuNS05MS41LTMwNy41IC4xLTE2LjMtNC40LTMzLjEtNy01MC42LTcuNXpNMjY3LjIgMzUyczM2LS4zIDYxLjMtMS41YzEwLjItLjUgMjEuMS00IDI1LjUtNi41IDI2LjMtMTUuMSAyNS40LTM5LjIgMjYuMi00Ny40LTc5LjUtLjYtOTkuOS0zLjktMTEzIDU1LjR6TTEzMS43IDI5Ni43Yy44IDguMi0uMSAzMi4zIDI2LjIgNDcuNCA0LjQgMi41IDE1LjIgNiAyNS41IDYuNSAyNS4zIDEuMSA2MS4zIDEuNSA2MS4zIDEuNS0xMy4yLTU5LjQtMzMuNy01Ni4xLTExMy01NS40ek0zMDAuOCA0MjAuMWMtMy4yLTUuMy02LjktNy4zLTYuOS03LjMtMjQuOCA3LjMtNTIuMiA2LjktNzUuOSAwIDAgMC0yLjkgMS41LTYuNCA2LjYtMi44IDQuMS0zLjcgOS42LTMuNyA5LjYgMjkuMSAxNy42IDY3LjEgMTcuNiA5Ni4yIDAtLjEtLjEtLjMtNC0zLjMtOC45elwiXVxufTtcbnZhciBmYURlbGljaW91cyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdkZWxpY2lvdXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxYTVcIiwgXCJNNDQ2LjYgNjhjLS40LTEuNS0uOS0zLTEuNC00LjUtLjktMi41LTItNC44LTMuMy03LjEtMS40LTIuNC0zLTQuOC00LjctNi45LTIuMS0yLjUtNC40LTQuOC02LjktNi44LTEuMS0uOS0yLjItMS43LTMuMy0yLjUtMS4zLS45LTIuNi0xLjctNC0yLjQtMS44LTEtMy42LTEuOC01LjUtMi41LTEuNy0uNy0zLjUtMS4zLTUuNC0xLjctMy44LTEtNy45LTEuNS0xMi0xLjVsLTM1MiAwQzIxLjYgMzIgLjEgNTMuNSAuMSA4MGwwIDM1MmMwIDQuMSAuNSA4LjIgMS41IDEyIDIgNy43IDUuOCAxNC42IDExIDIwLjMgMSAxLjEgMi4xIDIuMiAzLjMgMy4zIDUuNyA1LjIgMTIuNiA5IDIwLjMgMTEgMy44IDEgNy45IDEuNSAxMiAxLjVsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTIuMWMtLjEtNC4xLS42LTguMi0xLjYtMTJ6TTQxNi4xIDQzMmMwIDguOC03LjIgMTYtMTYgMTZsLTE3NiAwIDAtMTkyLTE5MiAwIDAtMTc2YzAtOC44IDcuMi0xNiAxNi0xNmwxNzYgMCAwIDE5MiAxOTIgMCAwIDE3NnpcIl1cbn07XG52YXIgZmFHdWlsZGVkID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2d1aWxkZWQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwN2VcIiwgXCJNNDQzLjkgNjRMNSA2NGMwIDEwMy4zIDIyLjIgMTgwLjEgNDMuNCAyMjIuNCA2NC4xIDEyNy44IDE3NiAxNjEuNiAxNzcuMyAxNjEuNiA1NS43LTIwLjUgMTA0LjUtNTYuMyAxNDAuNi0xMDMuNSAyNS45LTMzLjkgNTMuMS04Ny4yIDY1LjktMTQ1LjhsLTI1OS45IDBjNC4xIDM2LjQgMjIuMiA2Ny45IDQ1LjEgODYuOWw4OC42IDBjLTE3IDI4LjItNDguMiA1NC40LTgwLjUgNjkuNS0zMS4yLTEzLjMtNjkuMS00Ni41LTk2LjUtOTguNC0yNi43LTUzLjgtMjcuMS0xMDUuOS0yNy4xLTEwNS45bDMzNi4xIDBjNC0yOC44IDUuOS01Ny45IDUuOS04Ni45elwiXVxufTtcbnZhciBmYVhib3ggPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAneGJveCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQxMlwiLCBcIk0zNjkuOSAzMTguMmM0NC4zIDU0LjMgNjQuNyA5OC44IDU0LjQgMTE4LjctNy45IDE1LjEtNTYuNyA0NC42LTkyLjYgNTUuOS0yOS42IDkuMy02OC40IDEzLjMtMTAwLjQgMTAuMi0zOC4yLTMuNy03Ni45LTE3LjQtMTEwLjEtMzktMjcuOS0xOC4yLTM0LjItMjUuNy0zNC4yLTQwLjYgMC0yOS45IDMyLjktODIuMyA4OS4yLTE0Mi4xIDMyLTMzLjkgNzYuNS03My43IDgxLjQtNzIuNiA5LjQgMi4xIDg0LjMgNzUuMSAxMTIuMyAxMDkuNXpNMTg4LjYgMTQzLjhjLTI5LjctMjYuOS01OC4xLTUzLjktODYuNC02My40LTE1LjItNS4xLTE2LjMtNC44LTI4LjcgOC4xLTI5LjIgMzAuNC01My41IDc5LjctNjAuMyAxMjIuNC01LjQgMzQuMi02LjEgNDMuOC00LjIgNjAuNSA1LjYgNTAuNSAxNy4zIDg1LjQgNDAuNSAxMjAuOSA5LjUgMTQuNiAxMi4xIDE3LjMgOS4zIDkuOS00LjItMTEtLjMtMzcuNSA5LjUtNjQgMTQuMy0zOSA1My45LTExMi45IDEyMC4zLTE5NC40em0zMTEuNiA2My41Yy0xNi45LTgwLTY3LjUtMTMwLjMtNzQuNi0xMzAuMy03LjMgMC0yNC4yIDYuNS0zNiAxMy45LTIzLjMgMTQuNS00MSAzMS40LTY0LjMgNTIuOCA0Mi40IDUzLjMgMTAyLjIgMTM5LjQgMTIyLjkgMjAyLjMgNi44IDIwLjcgOS43IDQxLjEgNy40IDUyLjMtMS43IDguNS0xLjcgOC41IDEuNCA0LjYgNi4xLTcuNyAxOS45LTMxLjMgMjUuNC00My41IDcuNC0xNi4yIDE1LTQwLjIgMTguNi01OC43IDQuMy0yMi41IDMuOS03MC44LS44LTkzLjR6TTE0MS4zIDQzYzQ3LjctMi41IDEwOS43IDM0LjUgMTE0LjMgMzUuNCAuNyAuMSAxMC40LTQuMiAyMS42LTkuNyA2My45LTMxLjEgOTQtMjUuOCAxMDcuNC0yNS4yLTYzLjktMzkuMy0xNTIuNy01MC0yMzMuOS0xMS43LTIzLjQgMTEuMS0yNCAxMS45LTkuNCAxMS4yelwiXVxufTtcbnZhciBmYVVudGFwcGQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndW50YXBwZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjQwNVwiLCBcIk00MDEuNSA0OS45QzMyMS43IDIxMCAzMTYuOSAyMDIuNCAzMTMuNiAyMjMuMWwtNS4yIDMyLjhjLTEuOSAxMi02LjYgMjMuNS0xMy43IDMzLjRMMTQ1LjggNDk3LjFjLTcuNiAxMC42LTIwLjQgMTYuMi0zMy40IDE0LjYtNDAuMy01LTc3LjgtMzIuMi05NS4zLTY4LjUtNS43LTExLjgtNC41LTI1LjggMy4xLTM2LjRMMTY5LjEgMTk4LjljNy4xLTkuOSAxNi40LTE4IDI3LjItMjMuN2wyOS4zLTE1LjVjMTguNS05LjggOS43LTExLjkgMTM1LjYtMTM4LjkgMS00LjggMS03LjMgMy42LTggMy0uNyA2LjYtMSA2LjMtNC42bC0uNC00LjZjLS4yLTEuOSAxLjMtMy42IDMuMi0zLjYgNC41LS4xIDEzLjIgMS4yIDI1LjYgMTAgMTIuMyA4LjkgMTYuNCAxNi44IDE3LjcgMjEuMSAuNiAxLjgtLjYgMy43LTIuNCA0LjJsLTQuNSAxLjFjLTMuNCAuOS0yLjUgNC40LTIuMyA3LjQgLjEgMi44LTIuMyAzLjYtNi41IDYuMXpNMjMwLjMgMzYuNGMzLjQgLjkgMi41IDQuNCAyLjMgNy40LS4yIDIuNyAyLjEgMy41IDYuNCA2IDcuOSAxNS45IDE1LjMgMzAuNSAyMi4yIDQ0IC43IDEuMyAyLjMgMS41IDMuMyAuNSAxMS4yLTEyIDI0LjYtMjYuMiA0MC41LTQyLjYgMS4zLTEuNCAxLjQtMy41IC4xLTQuOS04LTguMi0xNi41LTE2LjktMjUuNi0yNi4xLTEtNC43LTEtNy4zLTMuNi04LTMtLjgtNi42LTEtNi4zLTQuNiAuMy0zLjMgMS40LTguMS0yLjgtOC4yLTQuNS0uMS0xMy4yIDEuMS0yNS42IDEwLTEyLjMgOC45LTE2LjQgMTYuOC0xNy43IDIxLjEtMS40IDQuMiAzLjYgNC42IDYuOCA1LjR6TTYyMC4yIDQwNi43TDQ3MS40IDE5OC44Yy0xMy4yLTE4LjUtMjYuNi0yMy40LTU2LjQtMzkuMS0xMS4yLTUuOS0xNC4yLTEwLjktMzAuNS0yOC45LTEtMS4xLTIuOS0uOS0zLjYgLjUtNDYuMyA4OC44LTQ3LjEgODIuOC00OSA5NC44LTEuNyAxMC43LTEuMyAyMCAuMyAyOS44IDEuOSAxMiA2LjYgMjMuNSAxMy43IDMzLjRMNDk0LjggNDk3LjJjNy42IDEwLjYgMjAuMiAxNi4yIDMzLjEgMTQuNyA0MC4zLTQuOSA3OC0zMiA5NS43LTY4LjYgNS40LTExLjkgNC4zLTI1LjktMy40LTM2LjZ6XCJdXG59O1xudmFyIGZhR29vZ2xlUGx1c0cgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZ29vZ2xlLXBsdXMtZycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjBkNVwiLCBcIk0zODYuMyAyMjguNWMxLjggOS43IDMuMSAxOS40IDMuMSAzMiAwIDEwOS44LTczLjYgMTg3LjUtMTg0LjQgMTg3LjUtMTA2LjEgMC0xOTItODUuOS0xOTItMTkyUzk4LjkgNjQgMjA1IDY0YzUxLjkgMCA5NS4xIDE4LjkgMTI4LjYgNTAuM2wtNTIuMSA1MGMtMTQuMS0xMy42LTM5LTI5LjYtNzYuNS0yOS42LTY1LjUgMC0xMTguOSA1NC4yLTExOC45IDEyMS4zUzEzOS41IDM3Ny4zIDIwNSAzNzcuM2M3NiAwIDEwNC41LTU0LjcgMTA5LTgyLjhsLTEwOSAwIDAtNjYgMTgxLjMgMCAwIDB6bTE4NS40IDYuNGwwLTU1LjctNTYgMCAwIDU1LjctNTUuNyAwIDAgNTYgNTUuNyAwIDAgNTUuNyA1NiAwIDAtNTUuNyA1NS43IDAgMC01Ni01NS43IDB6XCJdXG59O1xudmFyIGZhR2l0aHViQWx0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2dpdGh1Yi1hbHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMTNcIiwgXCJNMjAyLjEgMzI4LjdjMCAyMC45LTEwLjkgNTUuMS0zNi43IDU1LjFzLTM2LjctMzQuMi0zNi43LTU1LjEgMTAuOS01NS4xIDM2LjctNTUuMSAzNi43IDM0LjIgMzYuNyA1NS4xek00OTYgMjc4LjJjMCAzMS45LTMuMiA2NS43LTE3LjUgOTUtMzcuOSA3Ni42LTE0Mi4xIDc0LjgtMjE2LjcgNzQuOC03NS44IDAtMTg2LjIgMi43LTIyNS42LTc0LjgtMTQuNi0yOS0yMC4yLTYzLjEtMjAuMi05NSAwLTQxLjkgMTMuOS04MS41IDQxLjUtMTEzLjYtNS4yLTE1LjgtNy43LTMyLjQtNy43LTQ4LjggMC0yMS41IDQuOS0zMi4zIDE0LjYtNTEuOCA0NS4zIDAgNzQuMyA5IDEwOC44IDM2IDI5LTYuOSA1OC44LTEwIDg4LjctMTAgMjcgMCA1NC4yIDIuOSA4MC40IDkuMiAzNC0yNi43IDYzLTM1LjIgMTA3LjgtMzUuMiA5LjggMTkuNSAxNC42IDMwLjMgMTQuNiA1MS44IDAgMTYuNC0yLjYgMzIuNy03LjcgNDguMiAyNy41IDMyLjQgMzkgNzIuMyAzOSAxMTQuMnptLTY0LjMgNTAuNWMwLTQzLjktMjYuNy04Mi42LTczLjUtODIuNi0xOC45IDAtMzcgMy40LTU2IDYtMTQuOSAyLjMtMjkuOCAzLjItNDUuMSAzLjItMTUuMiAwLTMwLjEtLjktNDUuMS0zLjItMTguNy0yLjYtMzctNi01Ni02LTQ2LjggMC03My41IDM4LjctNzMuNSA4Mi42IDAgODcuOCA4MC40IDEwMS4zIDE1MC40IDEwMS4zbDQ4LjIgMGM3MC4zIDAgMTUwLjYtMTMuNCAxNTAuNi0xMDEuM3ptLTgyLjYtNTUuMWMtMjUuOCAwLTM2LjcgMzQuMi0zNi43IDU1LjFzMTAuOSA1NS4xIDM2LjcgNTUuMSAzNi43LTM0LjIgMzYuNy01NS4xLTEwLjktNTUuMS0zNi43LTU1LjF6XCJdXG59O1xudmFyIGZhR2V0UG9ja2V0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2dldC1wb2NrZXQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyNjVcIiwgXCJNNDA3LjYgNjRsLTM2NyAwQzE4LjUgNjQgMCA4Mi41IDAgMTA0LjZMMCAyMzkuOEMwIDM2NC41IDk5LjcgNDY0IDIyNC4yIDQ2NCAzNDguMiA0NjQgNDQ4IDM2NC41IDQ0OCAyMzkuOGwwLTEzNS4yQzQ0OCA4Mi4yIDQzMC4zIDY0IDQwNy42IDY0em0tMTYyIDI2OC41Yy0xMi40IDExLjgtMzEuNCAxMS4xLTQyLjQgMC0xMTMuNy0xMDguOS0xMTQuOS0xMDUuMS0xMTQuOS0xMjMuMiAwLTE2LjkgMTMuOC0zMC43IDMwLjctMzAuNyAxNyAwIDE2LjEgMy44IDEwNS4yIDg5LjMgOTAuNi04Ni45IDg4LjYtODkuMyAxMDUuNS04OS4zczMwLjcgMTMuOCAzMC43IDMwLjdjMCAxNy44LTIuOSAxNS43LTExNC44IDEyMy4yelwiXVxufTtcbnZhciBmYUdsaWRlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2dsaWRlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMmE1XCIsIFwiTTI1Mi44IDE0OC42YzAgOC44LTEuNiAxNy43LTMuNCAyNi40LTUuOCAyNy44LTExLjYgNTUuOC0xNy4zIDgzLjYtMS40IDYuMy04LjMgNC45LTEzLjcgNC45LTIzLjggMC0zMC41LTI2LTMwLjUtNDUuNSAwLTI5LjMgMTEuMi02OC4xIDM4LjUtODMuMSA0LjMtMi41IDkuMi00LjIgMTQuMS00LjIgMTEuNCAwIDEyLjMgOC4zIDEyLjMgMTcuOXpNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzg0IDI2N2MwLTUuMS0yMC44LTM3LjctMjUuNS0zOS41LTIuMi0uOS03LjItMi4zLTkuNi0yLjMtMjMuMSAwLTM4LjcgMTAuNS01OC4yIDIxLjVsLS41LS41YzQuMy0yOS40IDE0LjYtNTcuMiAxNC42LTg3LjQgMC00NC42LTIzLjgtNjIuNy02Ny41LTYyLjctNzEuNyAwLTEwOCA3MC44LTEwOCAxMjMuNSAwIDU0LjcgMzIgODUgODYuMyA4NSA3LjUgMCA2LjktLjYgNi45IDIuMy0xMC41IDgwLjMtNTYuNSA4Mi45LTU2LjUgNTguOSAwLTI0LjQgMjgtMzYuNSAyOC4zLTM4LS4yLTcuNi0yOS4zLTE3LjItMzYuNy0xNy4yLTIxLjEgMC0zMi43IDMzLTMyLjcgNTAuNiAwIDMyLjMgMjAuNCA1NC43IDUzLjMgNTQuNyA0OC4yIDAgODMuNC00OS43IDk0LjMtOTEuNyA5LjQtMzcuNyA3LTM5LjQgMTIuMy00Mi4xIDIwLTEwLjEgMzUuOC0xNi44IDU4LjQtMTYuOCAxMS4xIDAgMTkgMi4zIDM2LjcgNS4yIDEuOCAuMSA0LjEtMS43IDQuMS0zLjV6XCJdXG59O1xudmFyIGZhQml0eSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdiaXR5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMzdhXCIsIFwiTTg2LjUgNjcuMmM5NS40LTg5LjIgMjQ2LjEtOTEuMiAzNDMuMSAzLjggMTQuMyAxNC4xLTYuNCAzNy4xLTIyLjQgMjEuNS04NC44LTgyLjQtMjE1LjgtODAuMy0yOTguOS0zLjItMTYuMyAxNS4xLTM2LjUtOC4zLTIxLjgtMjIuMXptOTguOSA0MTguNmMxOS4zIDUuNyAyOS4zLTIzLjYgNy45LTMwLTExMi4yLTMzLjktMTc1LjgtMTQ5LjctMTQ3LjUtMjYxIDUtMTkuNi0yNC45LTI4LjEtMzAuMi03LjEtMzIuMSAxMjcuNCA0MS4xIDI1OS44IDE2OS44IDI5OC4xem0xNDguMS0yYzEyMS45LTQwLjIgMTkyLjktMTY2LjkgMTY0LjQtMjkxLTQuNS0xOS43LTM0LjktMTMuOC0zMCA3LjkgMjQuMiAxMDcuNy0zNy4xIDIxNy45LTE0My4yIDI1My40LTIxLjIgNy0xMC40IDM2IDguOCAyOS43em0tNjIuOS03OWwuMi03MS44YzAtOC4yLTYuNi0xNC44LTE0LjgtMTQuOHMtMTQuOCA2LjctMTQuOCAxNC44bC0uMiA3MS44YzAgOC4yIDYuNiAxNC44IDE0LjggMTQuOHMxNC44LTYuNiAxNC44LTE0Ljh6bTcxLTI2OWMyLjEgOTAuOSA0LjcgMTMxLjktODUuNSAxMzIuNS05Mi41LS43LTg2LjktNDQuMy04NS41LTEzMi41IDAtMjEuOC0zMi41LTE5LjYtMzIuNSAwbDAgNzEuNmMwIDY5LjMgNjAuNyA5MC45IDExOCA5MC4xIDU3LjMgLjggMTE4LTIwLjggMTE4LTkwLjFsMC03MS42YzAtMTkuNi0zMi41LTIxLjgtMzIuNSAwelwiXVxufTtcbnZhciBmYVdwZXhwbG9yZXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnd3BleHBsb3JlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjJkZVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem00ODAgMGEyMjQgMjI0IDAgMSAwIC00NDggMCAyMjQgMjI0IDAgMSAwIDQ0OCAwek0xNjAuOSAxMjQuNmw4Ni45IDM3LjEtMzcuMSA4Ni45LTg2LjktMzcuMSAzNy4xLTg2Ljl6bTExMCAxNjkuMWw0Ni42IDk0LTE0LjYgMC01MC0xMDAtNDguOSAxMDAtMTQgMCA1MS4xLTEwNi45LTIyLjMtOS40IDYtMTQgNjguNiAyOS4xLTYgMTQuMy0xNi41LTcuMXpNMjU5LjEgMTc3LjRsNjguNiAyOS40LTI5LjQgNjguMy02OC4zLTI5LjEgMjkuMS02OC42em04MC4zIDQyLjlsNTQuNiAyMy4xLTIzLjQgNTQuMy01NC4zLTIzLjEgMjMuMS01NC4zelwiXVxufTtcbnZhciBmYU1lZ2Fwb3J0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ21lZ2Fwb3J0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWEzXCIsIFwiTTIyMi41IDIwOS42bDAgNjYuMiAzMy41IDMzLjUgMzMuMy0zMy4zIDAtNjYuNC0zMy40LTMzLjQtMzMuNCAzMy40ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQwMS4xIDQyMi40bC0yNi4xIDE5LjItMjYtMTkuMiAwLTY1LjUtMzMuNC0zMy40LTMzLjQgMzMuNCAwIDY1LjUtMjYuMiAxOS4yLTI2LjEtMTkuMiAwLTY1LjUtMzMuNC0zMy40LTMzLjUgMzMuNCAwIDY1LjUtMjYuMSAxOS4yLTI2LjEtMTkuMiAwLTg3IDU5LjUtNTkuNSAwLTg3LjkgNTkuNS01OS41IDAtNzUuNiAyNi4xLTE5LjIgMjYuMSAxOS4yIDAgNzUuNiA1OS41IDU5LjUgMCA4Ny42IDU5LjcgNTkuNyAwIDg3LjEtLjEgMHpcIl1cbn07XG52YXIgZmFNZGIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnbWRiJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmOGNhXCIsIFwiTTE3LjQgMTYwLjRsLTEwLjQgMTkxLjYgNDMuOSAwIDUuNi03OS44IDI3LjkgNzkuOCA0NC43IDAgMjUuNS03Ny40IDQuOCA3Ny40IDQ1LjUgMC0xMi44LTE5MS42LTQ1LjUgMC00MC43IDExNy4zLTQyLjMtMTE3LjMtNDYuMyAwem0yODEgMGwtNDcuOSAwIDAgMTkxLjYgNDcuOSAwczk1IC44IDk0LjItOTUuOGMtLjgtOTQuMi05NC4yLTk1LjgtOTQuMi05NS44bDAgMHptLTEuMiAxNDYuNWwwLTEwMi4xczQ2IDQuMyA0Ni44IDUwLjYtNDYuOCA1MS41LTQ2LjggNTEuNWwwIDB6bTIzOC4zLTc0LjJjNy4yLTExLjQgMTAtMjUgOC0zOC4zLTUuMy0zNS44LTU1LjEtMzQuMy01NS4xLTM0LjNsLTUxLjkgMCAwIDE5MS42IDQ1LjUgMHM4NyA0LjggODctNjMuOGMwLTQzLjEtMzMuNS01NS4xLTMzLjUtNTUuMWwwIDB6bS01MS45LTMxLjlzMTMuNi0xLjYgMTYgOS42YzEuNCA2LjctNCAxMi00IDEybC0xMiAwIDAtMjEuNnptLS4xIDEwOS41bC4xLTI0LjkgMC0xOC4yIC4xIDBzNDEuNi00LjcgNDEuMiAyMi40Yy0uMyAyNS43LTQxLjMgMjAuNy00MS4zIDIwLjdsMCAwelwiXVxufTtcbnZhciBmYVBhZ2U0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3BhZ2U0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmM2Q3XCIsIFwiTTI1NiA1MDRDMTE5IDUwNCA4IDM5MyA4IDI1NlMxMTkgOCAyNTYgOGMyMC45IDAgNDEuMyAyLjYgNjAuNyA3LjVMNTAuMyAzOTIgMjU2IDM5MiAyNTYgNTA0em0wLTE0My42bDAtMjEzLjYtMTQ5LjQgMjEzLjYgMTQ5LjQgMHpNMzUyIDM5MmwwIDkyLjdjNDUuNy0xOS4yIDg0LjUtNTEuNyAxMTEuNC05Mi43TDM1MiAzOTJ6bTU3LjQtMTM4LjJsLTIxLjIgOC40IDIxLjIgOC4zIDAtMTYuN3ptLTIwLjMgNTQuNWMtNi43IDAtOCA2LjMtOCAxMi45bDAgNy43IDE2LjIgMCAwLTEwYzAtNS45LTIuMy0xMC42LTguMi0xMC42ek01MDQgMjU2YzAgMzcuMy04LjIgNzIuNy0yMyAxMDQuNGwtMTI5IDAgMC0zMzMuMUM0NDEuMyA2NC44IDUwNCAxNTMuMSA1MDQgMjU2ek0zNjguNCAxNDMuNmw2OC4yIDAgMC00Ny42LTEzLjkgMCAwIDMyLjYtMTMuOSAwIDAtMjkuNi0xMy45IDAgMCAyOS42LTEyLjcgMCAwLTMyLjYtMTMuOSAwIDAgNDcuNiAuMSAwem02OC4xIDE4NS4zbC0yNi41IDAgMC0xMWMwLTE1LjQtNS42LTI1LjItMjAuOS0yNS4yLTE1LjQgMC0yMC43IDEwLjYtMjAuNyAyNS45bDAgMjUuMyA2OC4yIDAgMC0xNS0uMSAwem0wLTEwM2wtNjguMiAyOS43IDAgMTIuNCA2OC4yIDI5LjUgMC0xNi42LTE0LjQtNS43IDAtMjYuNSAxNC40LTUuOSAwLTE2Ljl6bS00LjgtNjguNWwtMzUuNiAwIDAgMjYuNiAxMy45IDAgMC0xMi4yIDExIDBjOC42IDE1LjggMS4zIDM1LjMtMTguNiAzNS4zLTIyLjUgMC0yOC4zLTI1LjMtMTUuNS0zNy43bC0xMS42LTEwLjZjLTE2LjIgMTcuNS0xMi4yIDYzLjkgMjcuMSA2My45IDM0IDAgNDQuNy0zNS45IDI5LjMtNjUuM3pcIl1cbn07XG52YXIgZmFUaGVSZWRZZXRpID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3RoZS1yZWQteWV0aScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY5ZFwiLCBcIk00ODguNyAyNDEuN2wyMC43IDcuMWMtOS42LTIzLjktMjMuOS0zNy0zMS43LTQ0LjhsNy4xLTE4LjJjLjIgMCAxMi4zLTI3LjgtMi41LTMwLjctLjYtMTEuMy02LjYtMjctMTguNC0yNy03LjYtMTAuNi0xNy43LTEyLjMtMzAuNy01LjktOS4xIDQuNC0xNy42IDEwLTI1LjMgMTYuNS01LjMtNi40LTMgLjQtMy0yOS44LTM3LjEtMjQuMy00NS40LTExLjctNzQuOCAzbC41IC41Yy0yMi03LjctNDUuMS0xMi4yLTY4LjQtMTMuMy01LjUtOC43LTE4LjYtMTkuMS0yNS4xLTI1LjFsMjQuOCA3LjFjLTUuNS01LjUtMjYuOC0xMi45LTM0LjItMTUuMiAxOC4yLTQuMSAyOS44LTIwLjggNDIuNS0zMy0zNC45LTEwLjEtNjcuOS01LjktOTcuOSAxMS44bDEyLTQ0LjItMS44LS41Yy0zMS42IDI0LjItMzMgNDEuOS0zMy43IDQ1LjUtLjktMi40LTYuMy0xOS42LTE1LjItMjctMy4zIDguMS0zLjUgMTcuMS0uNSAyNS4zIDMgOC40IDUuOSAxNC44IDguNCAxOC45LTE2LTMuMy0yOC4zLTQuOS00OS4yIDBsLTMuNyAwIDMzIDE0LjNjLTIwLjIgMTguOS0zNi4xIDQxLjktNDYuNyA2Ny40bC0xLjcgOC40IDEuNyAxLjcgNy42LTQuN2MtMy4zIDExLjYtNS4zIDE5LjQtNi42IDI1LjgtMTAuOSAxMi4yLTIwLjIgMjUuOC0yNy44IDQwLjMtMTUgMS0zMS44IDEwLjgtNDAuMyAxNC4zbDMgMy40IDI4LjggMWMtLjUgMS0uNyAyLjItMS4yIDMuMi03LjMgNi40LTM5LjggMzcuNy0zMyA4MC43bDIwLjItMjIuNGMuNSAxLjcgLjcgMy40IDEuMiA1LjIgMCAyNS41IC40IDg5LjYgNjQuOSAxNTAuNSA0My42IDQwIDk2IDYwLjIgMTU3LjUgNjAuMiAxMjEuNyAwIDIyMy04Ny4zIDIyMy0yMTEuNSA2LjgtOS43LTEuMiAzIDE2LjctMjUuMWwxMyAxNC4zIDIuNS0uNWMtMS44LTExLjctNC44LTIzLjEtOC45LTM0LjItMS41LTQuOC0zLjgtOS4zLTYuOC0xMy4zbDAgMHpNMzk4LjUgMTExLjJsLS41IDIxLjljNS41IDE4LjEgMTYuOSAxNy4yIDIyLjQgMTcuMmwtMy40LTQuNyAyMi40LTUuNGMtOSAuNS0xOCAuNS0yNyAwIDEyLjgtMi4xIDMzLjMtMjkgNDMtMTEuMyAzLjQgNy42IDYuNCAxNy4yIDkuMyAyNy44bDEuNy01LjljLTEuMy01LTEuOC0xMC4xLTEuNy0xNS4yIDUuNCAuNSA4LjggMy40IDkuMyAxMC4xIC41IDYuNCAxLjcgMTQuOCAzLjQgMjUuM2w0LjctMTEuM2M0LjYgMCA0LjUtMy42LTIuNSAyMC43LTIwLjktOC43LTM1LjEtOC40LTQ2LjUtOC40bDE4LjItMTZjLTI1LjMgOC4yLTMzIDEwLjgtNTQuOCAyMC45LTEuMS01LjQtNS0xMy41LTE2LTE5LjktMy4yIDMuOC0yLjggLjktLjcgMTQuOGwtMi41IDBjLTEuMi04LjItNC4xLTE2LTguNC0yMy4xbDQuMi0zLjRjOC40LTcuMSAxMS44LTE0LjMgMTAuNi0yMS45LS41LTYuNC01LjQtMTMuNS0xMy41LTIwLjcgNS42LTMuNCAxNS4yLS40IDI4LjMgOC41em0tMzkuNi0xMC4xYzIuNyAxLjkgMTEuNCA1LjQgMTguOSAxNy4yIDQuMiA4LjQgNCA5LjggMy40IDExLjEtLjUgMi40LS41IDQuMy0zIDcuMS0xLjcgMi41LTUuNCA0LjctMTEuOCA3LjYtNy42LTEzLTE2LjUtMjMuNi0yNy44LTMxLjJsMjAuMy0xMS44em0tMjY3LjQgNDJsMS4yLTEuN2MxLjItMi45IDQuMi03LjYgOS4zLTE1LjJsMi41LTMuNC0xMyAxMi4zIDUuNC00LjctMTAuMSA5LjMtNC4yIDEuMmMxMi4zLTI0LjEgMjMuMS00MS4zIDMyLjUtNTAuMiA5LjMtOS4zIDE2LTE2IDIwLjItMTkuNGwtNi40IDEuMmMtMTEuMy00LjItMTkuNC03LjEtMjQuOC04LjQgMi41LS41IDMuNy0uNSAzLjItLjUgMTAuMyAwIDE3LjUgLjUgMjAuOSAxLjIgNS4yIDEuNyAxMC42IDIuNSAxNiAyLjVsLjUtMS43LTguNC0zNS44IDEzLjUgMjljMi44LTQuNCA0LjgtOS4yIDUuOS0xNC4zIDEuNy02LjQgNS40LTEzIDEwLjEtMTkuNHM3LjYtMTAuNiA5LjMtMTEuM2MtMi42IDguMy00LjcgMTYuOC02LjQgMjUuM2wtMS43IDcuMS0uNSA0LjcgMi41IDIuNWMyMS45LTEzLjUgNDUuNS0xOS40IDcxLjMtMTguOWwyMS4xIC41Yy0xMS44IDEzLjUtMjcuOCAyMS45LTQ4LjUgMjQuOC03LjcgMS40LTE1LjYgMi40LTIzLjQgMi45bC0uMi0uNS0yLjUtMS4yYy00LjgtMS05LjctLjMtMTQgMi0yLjUtLjItNC45LS41LTcuMS0uN2wtMi41IDEuNyAuNSAxLjJjMiAuMiAzLjkgLjUgNi4yIC43bC0yIDMuNCAzLjQtLjUtMTAuNiAxMS4zYy00LjIgMy01LjQgNi40LTQuMiA5LjNsNS40LTMuNCAxLjIgMGM2LjEtOC4yIDE1LjItMTMuNiAyNS4zLTE1LjJsMC0zYzYuNCAuNSAxMyAxIDE5LjQgMS4yIDYuNCAwIDguNCAuNSA1LjQgMS4yIDcuMiA0IDE0LjEgOC42IDIwLjcgMTMuNSAxMy41IDEwLjEgMjMuNiAyMS45IDMwIDM1LjQgOC44IDE4LjIgMTMuNSAzNy4xIDEzLjUgNTYuNiAwIDkuNS0xIDE5LTMgMjguMy0zLjUgMTUuOS04LjkgMzEuMy0xNiA0NmwyLjUgLjVjMTguMi0xOS43IDQxLjktMTYgNDkuMi0xNmwtNi40IDUuOSAyMi40IDE3LjctMS43IDMwLjdjLTUuNC0xMi4zLTE2LjUtMjEuMS0zMy0yNy44IDE2LjUgMTQuOCAyMy42IDIxLjEgMjEuOSAyMC4yLTQuOC0yLjgtMy41LTEuOS0xMC44LTMuNyA0LjEgNC4xIDE3LjUgMTguOCAxOC4yIDIwLjdsLjIgLjItLjIgLjJjMCAxLjggMS42LTEuMi0xNCAyMi45LTc1LjItMTUuMy0xMDYuMy00Mi43LTE0MS4yLTYzLjJsMTEuOCAxLjJjLTExLjgtMTguNS0xNS42LTE3LjctMzguNC0yNi4xbDEwLjYtOC40Yy04LjgtMy0xOC4yLTMtMjguMyAuNWw3LjYtMTAuNi0xLjItMS43Yy0xNC45IDQuMy0xOS44IDkuMi0yMi42IDExLjMtMS4xLTUuNS0yLjgtMTIuNC0xMi4zLTI4LjhsLTEuMiAyNy0xMy4yLTVjMS41LTI1LjIgNS40LTUwLjUgMTMuMi03NC42ek0zNjggNDczLjFjLTQ5LjkgMjUtNTYuMSAyMi40LTU5IDIzLjktMjkuOC0xMS44LTUwLjktMzEuNy02My41LTU4LjhsMzAgMTYuNWMtOS44LTkuMy0xOC4zLTE2LjUtMzguNC00NC4zbDExLjggMjMuMS0xNy43LTcuNmMxNC4yIDIxLjEgMjMuNSA1MS43IDY2LjYgNzMuNS0xMjAuOCAyNC4yLTE5OS03Mi4xLTIwMC45LTc0LjMgMTEuMSA5LjIgMjIuOSAxNy41IDM1LjQgMjQuOCAzLjQgMS43IDcuMSAyLjUgMTAuMSAxLjJsLTE2LTIwLjdjOS4yIDQuMiA5LjUgNC41IDY5LjEgMjktNDIuNS0yMC43LTczLjgtNDAuOC05My4yLTYwLjItLjUgNi40LTEuMiAxMC4xLTEuMiAxMC4xIDguNyA3LjMgMTUuOCAxNi40IDIwLjcgMjYuNi0zOS0xOC45LTU3LjYtNDcuNi03MS4zLTgyLjYgNDkuOSA1NS4xIDExOC45IDM3LjUgMTIwLjUgMzcuMSAzNC44IDE2LjQgNjkuOSAyMy42IDExMy45IDEwLjYgMy4zIDAgMjAuMyAxNyAyNS4zIDM5LjFsNC4yLTMtMi41LTIzLjZjOSA5IDI0LjkgMjIuNiAzNC40IDEzLTE1LjYtNS4zLTIzLjUtOS41LTI5LjUtMzEuNyA0LjYgNC4yIDcuNiA5IDI3LjggMTVsMS4yLTEuMi0xMC41LTE0LjJjMTEuNy00LjgtMy41IDEgMzItMTAuOCA0LjMgMzQuMyA5IDQ5LjIgLjcgODkuNXpNNDgzLjMgMjU4LjdsLTIuNSAuNSAzIDkuM2MtMy41IDUuOS0yMy43IDQ0LjMtNzEuNiA3OS43LTM5LjUgMjkuOC03Ni42IDM5LjEtODAuOSA0MC4zbC03LjYtNy4xLTEuMiAzIDE0LjMgMTYtNy4xLTQuNyAzLjQgNC4yLTEuMiAwLTIxLjktMTMuNSA5LjMgMjYuNi0xOS0yNy45LTEuMiAyLjUgNy42IDI5Yy02LjEtOC4yLTIxLTMyLjYtNTYuOC0zOS42bDMyLjUgMjEuMmMtMzEuMiA0LjctNjMgMi41LTkzLjItNi40LTQuMi0xLjItOC45LTIuNS0xMy41LTQuMmwxLjItMy00NC44LTIyLjQgMjYuMSAyMi40Yy01Ny43IDkuMS0xMTMtMjUuNC0xMjYuNC04My40TDI5LjMgMjg0LjggNyAzMDcuMWMxOS41LTU3LjUgMjUuNi01Ny45IDUxLjQtNzAuMS05LjEtNS4zLTEuNi0zLjMtMzguNC05LjMgMTUuOC01LjggMzMtMTUuNCA3MyA1LjIgMS4yLS43IDIuNC0xLjMgMy43LTEuNyAuNi0zLjIgLjQtLjggMS0xMS44IDMuOSAxMCAzLjYgOC43IDMgOS4zbDEuNyAuNWMxMi43LTYuNSA4LjktNC41IDE3LTguOWwtNS40IDEzLjUgMjIuMy01LjgtOC40IDguNCAyLjUgMi41YzQuNS0xLjggMzAuMyAzLjQgNDAuOCAxNmwtMjMuNi0yLjVjMzkuNCAyMyA1MS41IDU0IDU1LjggNjkuNmwxLjctMS4yYy0yLjgtMjIuMy0xMi40LTMzLjktMTYtNDAuMSA0LjIgNSAzOS4yIDM0LjYgMTEwLjQgNDYtMTEuMy0uNS0yMy4xIDUuNC0zNC45IDE4LjlsNDYuNy0yMC4yLTkuMyAyMS45YzcuNi0xMC4xIDE0LjgtMjMuNiAyMS4yLTM5LjZsMC0uNSAxLjItMy0xLjIgMTZjMTMuNS00MS44IDI1LjMtNzguNSAzNS40LTEwOS43bDEzLjUtMjcuOCAwLTItNS40LTQuMiAxMC4xIDAgNS45IDQuMiAyLjUtMS4yLTMuNC0xNiAxMi4zIDE4LjkgNDEuOC0yMC4yLTE0LjggMTMgLjUgMi45IDE3LjctLjVjMTEuMSAuNCAyMi4xIDEuOCAzMyA0LjJsLTIzLjYgMi41LTEuMiAzIDI2LjYgMjMuMWM5LjkgOS45IDE4LjkgMjAuNiAyNyAzMi0xMS4yLTMuMy0xMC4zLTMuNC0yMS4yLTMuNGwxMi4zIDMyLjUtOC45LTEyLjh6bS02LjEtNzEuM2wtMy45IDEzLTE0LjMtMTEuOCAxOC4yLTEuMnptLTI1NC44IDcuMWMxLjcgMTAuNiA0LjcgMTcuNyA4LjggMjEuOS05LjMgNi42LTI3LjUgMTMuOS00Ni41IDE2bC41IDEuMmM4LjMgMS4zIDE2LjkgLjQgMjQuOC0yLjVsLTcuMSAxM2M0LjItMS43IDEwLjEtNy4xIDE3LjctMTQuOCAxMS45LTUuNSAxMi43LTUuMSAyMC4yLTE2LTEyLjctNi40LTE1LjctMTMuNy0xOC40LTE4Ljh6bTMuNy0xMDIuM2MtNi40LTMuNC0xMC42IDMtMTIuMyAxOC45czIuNSAyOS41IDExLjggMzkuNiAxOC4yIDEwLjYgMjYuMSAzIDMuNC0yMy42LTExLjMtNDcuN2MtMy41LTUuNy04LjQtMTAuNS0xNC4zLTEzLjhsMCAwem0tNC43IDQ2LjNjNS40IDIuMiAxMC41IDEuOSAxMi4zLTEwLjZsMC00LjctMS4yIC41Yy00LjMtMy4xLTIuNS00LjUtMS43LTYuMmwuNS0uNWMtLjktMS4yLTUtOC4xLTEyLjUgNC43LS41LTEzLjUgLjUtMjEuOSAzLTI0LjggMS4yLTIuNSA0LjctMS4yIDExLjMgNC4yIDYuNCA1LjQgMTEuMyAxNiAxNS4yIDMyLjUgNi41IDI4LTE5LjggMjYuMi0yNi45IDQuOXptLTQ1LTUuNWMxLjYgLjMgOS4zLTEuMSA5LjMtMTQuOGwtLjUgMGMtNS40LTEuMS0yLjItNS41LS43LTUuOS0xLjctMy0zLjQtNC4yLTUuNC00LjctOC4xIDAtMTEuNiAxMi43LTguMSAyMS4yIC41IDEuMSAxLjMgMiAyLjIgMi44czIgMS4yIDMuMiAxLjRsMCAwem00MC4xLTUwLjFsLTIuNSAuNSAuNSAzYzkuMS0uNSAxOC4xIDEuNSAyNi4xIDUuOS0yLjUtNS41LTEwLTE0LjMtMjguMy0xNC4zbC41IDIuNSAzLjcgMi40em0tNzEuOCA0OS40YzIxLjcgMTYuOCAxNi41IDIxLjQgNDYuNSAyMy42bC0yLjktNC43YzguNC03LjIgMTMuNy0xNy4zIDE0LjgtMjguMyAxLjctMTYtMS4yLTI5LjUtOC44LTQxLjNsMTMtNy42YzAtLjMgMC0uNi0uMS0uOXMtLjItLjYtLjQtLjhjLTIuMi0uOS00LjYtMS4yLTctLjlzLTQuNiAxLjItNi41IDIuNmMtMTIuNyA2LjctMjggMjAuOS0yOSAyMi40LTEuNyAxLjctMy40IDUuOS01LjQgMTMuNS0xLjkgNy43LTIuOSAxNS42LTIuOSAyMy42LTQuNy04LTEwLjUtNi40LTE5LjktNS45bDcuMSA3LjZjLTE2LjUgMC0yMy4zIDE1LjQtMjMuNiAxNiA2LjggMCA0LjYtNy42IDMwLTEyLjMtNC4zLTYuMy0zLjMtNS00LjktNi42em0xOC43LTE4LjdjMS4yLTcuNiAzLjQtMTMgNi40LTE3LjIgNS40LTYuNCAxMC42LTEwLjEgMTYtMTEuOCA0LjItMS43IDcuMSAxLjIgMTAuMSA5LjMgMi41IDguMiAzLjUgMTYuOCAzIDI1LjMtLjUgOS4zLTMuNCAxNy4yLTguNCAyMy4xLTIuOSAzLjQtNS40IDUuOS02LjQgNy42LTMuOCAuNC03LjYgLjItMTEuMy0uNWwtNy4xLTMuNC01LjQtNi40Yy44LTEwIDEuMy0xOC44IDMuMS0yNnptNDIgNTYuMWMtMzQuOCAxNC40LTM0LjcgMTQtMzYuMSAxNC4zLTIwLjggNC43LTE5LTI0LjQtMTguOS0yNC44bDUuOS0xLjItLjUtMi41Yy0yMC4yLTIuNi0zMSA0LjItMzIuNSA0LjkgLjUgLjUgMyAzLjQgNS45IDkuMyA0LjItNi40IDguOC0xMC4xIDE1LjItMTAuNi0xLjcgMTEuMi0xLjIgMjIuNyAxLjcgMzMuNyAuMSAuNSAyLjYgMTcuNCAyNy41IDI0LjEgMTEuMyAzIDI3IDEuMiA0OC45LTUuNGwtOS4yIC41Yy00LjItMTQuOC02LjQtMjQuOC01LjktMjkuNSAxMS4zLTguOCAyMS45LTExLjMgMzAuNy03LjZsMi41IDAtMTEuOC03LjYtNy4xIC41Yy01LjkgMS4yLTEyLjMgNC4yLTE5LjQgOC40bDMuMS02LjV6XCJdXG59O1xudmFyIGZhSmlyYSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdqaXJhJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2IxXCIsIFwiTTQ5OC41IDI0MS43Yy03Mi45LTcyLjctMTY5LjQtMTY5LjktMjQxLjUtMjQxLjctMTY1LjUgMTY0LjktMjQyLjUgMjQxLjctMjQyLjUgMjQxLjctNy45IDcuOS03LjkgMjAuNyAwIDI4LjcgMTMyLjggMTMyLjMgNjEuOCA2MS41IDI0Mi41IDI0MS42IDM3OS40LTM3OCAxNS43LTE2LjcgMjQxLjUtMjQxLjcgOC03LjkgOC0yMC43IDAtMjguNnpNMjU3IDMzMS43bC03Ni03NS43IDc2LTc1LjcgNzYgNzUuNy03NiA3NS43elwiXVxufTtcbnZhciBmYUZlZGV4ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ZlZGV4JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNzk3XCIsIFwiTTU4NiAyODQuNWw1My4zLTU5LjktNjIuNCAwLTIxLjcgMjQuOC0yMi41LTI0LjgtMTE4LjcgMCAwLTE2IDU2LjEgMCAwLTQ4LjEtMTUxLjIgMCAwIDc1LjUtLjUgMGMtOS42LTExLTIxLjUtMTQuOC0zNS40LTE0LjgtMjguNCAwLTQ5LjggMTkuNC01Ny4zIDQ0LjktMTgtNTkuNC05Ny40LTU3LjYtMTIxLjktMTRsMC0yNC4yLTU0LjggMCAwLTI2LjIgNjAgMCAwLTQxLjEtMTA5IDAgMCAxODQuNCA0OSAwIDAtNzcuNSA0OC45IDBjLTEuNSA1LjctMi4zIDExLjgtMi4zIDE4LjIgMCA3My4xIDEwMi42IDkxLjQgMTMwLjIgMjMuN2wtNDIgMGMtMTQuNyAyMC45LTQ1LjggOC45LTQ1LjgtMTQuNmw4NS41IDBjMy43IDMwLjUgMjcuNCA1Ni45IDYwLjEgNTYuOSAxNC4xIDAgMjctNi45IDM0LjktMTguNmwuNSAwIDAgMTEuOSAyMTIuMiAwIDIyLjEtMjUgMjIuMyAyNSA2NC40IDAtNTQtNjAuNXpNMTM5LjMgMjY3LjljNi4xLTI2LjMgNDEuNy0yNS42IDQ2LjUgMGwtNDYuNSAwem0xNTMuNCA0OC45Yy0zNC42IDAtMzQtNjIuOCAwLTYyLjggMzIuNiAwIDM0LjUgNjIuOCAwIDYyLjh6bTE2Ny44IDE5LjFsLTk0LjQgMCAwLTE2Ni41IDk1IDAgMCAzMC4yLTU2LjEgMCAwIDMzLjkgNTUuNSAwIDAgMjguMS01Ni4xIDAgMCA0NC43IDU2LjEgMCAwIDI5LjZ6bS00NS45LTM5LjhsMC0yNC40IDU2LjEgMCAwLTQ0IDUwLjcgNTctNTAuNyA1NyAwLTQ1LjYtNTYuMSAwem0xMzguNiAxMC4zbC0yNi4xIDI5LjUtMzguMSAwIDQ1LjYtNTEuMi00NS42LTUxLjIgMzkuNyAwIDI2LjYgMjkuMyAyNS42LTI5LjMgMzguNSAwLTQ1LjQgNTEgNDYgNTEuNC00MC41IDAtMjYuMy0yOS41elwiXVxufTtcbnZhciBmYUV2ZXJub3RlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2V2ZXJub3RlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmODM5XCIsIFwiTTEyMS4xIDEzMi4yYzEuNiAyMi4zLTE3LjYgMjEuNi0yMS42IDIxLjYtNjguOSAwLTczLjYtMS04My42IDMuMy0uNiAuMi0uNyAwLS40LS40TDEyNC4xIDQ2LjRjLjQtLjQgLjYtLjIgLjQgLjQtNC40IDEwLTMuNCAxNS4xLTMuNCA4NS40em03OSAzMDhjLTE0LjctMzcuMSAxMy03Ni45IDUyLjUtNzYuNiAxNy41IDAgMjIuNiAyMy4yIDcuOSAzMS40LTYuMiAzLjMtMjQuOSAxLjctMjUuMSAxOS4yIDAgMTcuMSAxOS43IDI1IDMxLjIgMjQuOSA2IDAgMTEuOS0xLjIgMTcuNS0zLjVzMTAuNi01LjcgMTQuOC05LjkgNy42LTkuMyA5LjktMTQuOCAzLjUtMTEuNSAzLjUtMTcuNWwwLS4xYzAtMTEuNi03LjgtNDcuMi00Ny41LTU1LjMtNy43LTEuNS02NS02LjMtNjguNC01MC41LTMuNyAxNi45LTE3LjQgNjMuNS00My4xIDY5LjEtOC43IDEuOS02OS43IDcuNi0xMTIuOS0zNi44IDAgMC0xOC42LTE1LjItMjguMi01OC0zLjQtMTUuNy05LjMtMzkuNy0xMS4xLTYyIDAtMTggMTEuMS0zMC40IDI1LjEtMzIuMiA4MSAwIDkwIDIuMyAxMDEtNy44IDkuOC05LjIgNy44LTE1LjUgNy44LTEwMi44IDEtOC4zIDcuOC0zMC44IDUzLjQtMjQuMSA2IC45IDMxLjkgNC4yIDM3LjUgMzAuNkwyOTAgNzQuOGMyMC40IDMuNyA3MC45IDcgODAuNiA1Ny45IDIyLjcgMTIxLjEgOC45IDIzOC41IDcuOCAyMzguNS0xNiAxMTQuNC0xMTEuMSAxMDguOS0xMTEuMSAxMDguOS0xOS0uMi01NC4yLTkuNC02Ny4zLTM5LjhsMCAwek0yODEgMjM1LjRjLTEgMS45LTIuMiA2IC45IDcgMTQuMSA0LjkgMzkuOCA2LjggNDUuOSA1LjUgMy4xLS4yIDMuMS00LjQgMi41LTYuNi0zLjUtMjEuOC00MC44LTI2LjUtNDkuMi01LjlsMCAwelwiXVxufTtcbnZhciBmYVVzYiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd1c2InLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyODdcIiwgXCJNNjMzLjUgMjU2YzAgMy4xLTEuNyA2LjEtNC41IDcuNUw1MzkuOSAzMTdjLTEuNCAuOC0yLjggMS40LTQuNSAxLjQtMS40IDAtMy4xLS4zLTQuNS0xLjEtMi44LTEuNy00LjUtNC41LTQuNS03LjhsMC0zNS42LTIzMC43IDBjMjUuMyAzOS42IDQwLjUgMTA2LjkgNjkuNiAxMDYuOWwyNi43IDAgMC0yNi44YzAtNSAzLjktOC45IDguOS04LjlsODkuMSAwYzUgMCA4LjkgMy45IDguOSA4LjlsMCA4OS4xYzAgNS0zLjkgOC45LTguOSA4LjlsLTg5LjEgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjctMjYuNyAwYy03NS40IDAtODEuMS0xNDIuNS0xMjQuNy0xNDIuNWwtMTAwLjMgMGMtOC4xIDMwLjYtMzUuOSA1My41LTY5IDUzLjUtMzkuMy0uMS03MS4zLTMyLjEtNzEuMy03MS40czMyLTcxLjMgNzEuMy03MS4zYzMzLjEgMCA2MSAyMi44IDY5IDUzLjUgMzkuMSAwIDQzLjkgOS41IDc0LjYtNjAuNCA0MC4xLTg5LjEgNTguMS04Mi4xIDEwOC45LTgyLjEgNy41LTIwLjkgMjctMzUuNiA1MC40LTM1LjYgMjkuNSAwIDUzLjUgMjMuOSA1My41IDUzLjVzLTIzLjkgNTMuNS01My41IDUzLjVjLTIzLjQgMC00Mi45LTE0LjgtNTAuNC0zNS42bC0yOS44IDBjLTI5LjEgMC00NC4zIDY3LjQtNjkuNiAxMDYuOWwzMDIuMSAwIDAtMzUuNmMwLTMuMyAxLjctNi4xIDQuNS03LjhzNi40LTEuNCA4LjkgLjNMNjI5IDI0OC44YzIuOCAxLjEgNC41IDQuMSA0LjUgNy4yelwiXVxufTtcbnZhciBmYUFuZ3J5Y3JlYXRpdmUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYW5ncnljcmVhdGl2ZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjM2ZVwiLCBcIk02NDAgMjM4LjJsLTMuMiAyOC4yLTM0LjUgMi4zLTIgMTguMSAzNC41LTIuMy0zLjIgMjguMi0zNC40IDIuMi0yLjMgMjAuMSAzNC40LTIuMi0zIDI2LjEtNjQuNyA0LjEgMTIuNy0xMTMuMi00Ny4zIDExNS40LTMxLjkgMi0yMy44LTExNy44IDMwLjMtMiAxMy42IDc5LjQgMzEuNy04Mi40IDkzLjEtNi4yek00MjYuOCAzNzEuNWwyOC4zLTEuOCAxMi45LTEyMC4xLTI4LjQgMS45LTEyLjggMTIwek0xNjIgMzg4LjFsLTE5LjQtMzYtMy41IDM3LjQtMjguMiAxLjcgMi43LTI5LjFjLTExIDE4LTMyIDM0LjMtNTYuOSAzNS44LTMyLjggMi01OS43LTIwLjktNTYuNC01OC4yIDIuNi0yOS4zIDI2LjctNjIuOCA2Ny41LTY1LjQgMzcuNy0yLjQgNDcuNiAyMy4yIDUxLjMgMjguOGwyLjgtMzAuOCAzOC45LTIuNWMyMC4xLTEuMyAzOC43IDMuNyA0Mi41IDIzLjdsMi42LTI2LjYgNjQuOC00LjItMi43IDI3LjktMzYuNCAyLjQtMS43IDE3LjkgMzYuNC0yLjMtMi43IDI3LjktMzYuNCAyLjMtMS45IDE5LjkgMzYuMy0yLjMtMi4xIDIwLjggNTUtMTE3LjIgMjMuOC0xLjYgMzIuMSAxMTAuNiA4LjktODUuNi0yMi4zIDEuNCAyLjktMjcuOSA3NS00LjktMyAyOC0yNC4zIDEuNi05LjcgOTEuOS01OCAzLjctNC4zLTE1LjYtMzkuNCAyLjUtOCAxNi4zLTEyNi4yIDcuN3ptLTQ0LjMtNzAuMmwtMjYuNCAxLjdjLTYuNy0xMi40LTE0LjQtMTYuNi0yNi4zLTE1LjgtMTkgMS4yLTMzLjMgMTcuNS0zNC42IDMzLjMtMS40IDE2IDcuMyAzMi41IDI4LjcgMzEuMiAxMi44LS44IDIxLjMtOC42IDI4LjktMTguOWwyNy0xLjcgMi43LTI5Ljh6bTU2LjEtNy43YzEuMi0xMi45LTcuNi0xMy42LTI2LjEtMTIuNEwxNDUgMzI2LjNjMTQuMi0uOSAyNy41LTIuMSAyOC44LTE2LjF6TTE5NC45IDM4MWw1LjgtNjBjLTUgMTMuNS0xNC43IDIxLjEtMjcuOSAyNi42TDE5NC45IDM4MXptMTM1LjQtNDVsLTcuOS0zNy44LTE1LjggMzkuMyAyMy43LTEuNXpNMTYwLjIgMjYxLjRsLTQuMy0xNy41LTM5LjYgMi42LTguMSAxOC4yLTMxLjkgMi4xIDU3LTEyMS45IDIzLjktMS42IDMwLjcgMTAyIDkuOS0xMDQuNyAyNy0xLjggMzcuOCA2My42IDYuNS02Ni42IDI4LjUtMS45LTQgNDEuMmM3LjQtMTMuNSAyMi45LTQ0LjcgNjMuNi00Ny41IDQwLjUtMi44IDUyLjQgMjkuMyA1My40IDMwLjNsMy4zLTMyIDM5LjMtMi43YzEyLjctLjkgMjcuOCAuMyAzNi4zIDkuN2wtNC40LTExLjkgMzIuMi0yLjIgMTIuOSA0My4yIDIzLTQ1LjcgMzEtMi4yLTQzLjYgNzguNC00LjggNDQuMy0yOC40IDEuOSA0LjgtNDQuMy0xNS44LTQzYzEgMjIuMy05LjIgNDAuMS0zMiA0OS42bDI1LjIgMzguOC0zNi40IDIuNC0xOS4yLTM2LjgtNCAzOC4zLTI4LjQgMS45IDMuMy0zMS41Yy02LjcgOS4zLTE5LjcgMzUuNC01OS42IDM4LTI2LjIgMS43LTQ1LjYtMTAuMy01NS40LTM5LjJsLTQgNDAuMy0yNSAxLjYtMzcuNi02My4zLTYuMyA2Ni4yLTU2LjggMy43em0yNzYuNi04Mi4xYzEwLjItLjcgMTcuNS0yLjEgMjEuNi00LjMgNC41LTIuNCA3LTYuNCA3LjYtMTIuMSAuNi01LjMtLjYtOC44LTMuNC0xMC40LTMuNi0yLjEtMTAuNi0yLjgtMjIuOS0ybC0yLjkgMjguOHpNMzI3LjcgMjE0YzUuNiA1LjkgMTIuNyA4LjUgMjEuMyA3LjkgNC43LS4zIDkuMS0xLjggMTMuMy00LjEgNS41LTMgMTAuNi04IDE1LjEtMTQuM2wtMzQuMiAyLjMgMi40LTIzLjkgNjMuMS00LjMgMS4yLTEyLTMxLjIgMi4xYy00LjEtMy43LTcuOC02LjYtMTEuMS04LjEtNC0xLjctOC4xLTIuOC0xMi4yLTIuNS04IC41LTE1LjMgMy42LTIyIDkuMi03LjcgNi40LTEyIDE0LjUtMTIuOSAyNC40LTEuMSA5LjYgMS40IDE3LjMgNy4yIDIzLjN6bS0yMDEuMyA4LjJsMjMuOC0xLjYtOC4zLTM3LjYtMTUuNSAzOS4yelwiXVxufTtcbnZhciBmYU1penVuaSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdtaXp1bmknLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzY2NcIiwgXCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0xNzYgMzU5LjljLTMxLjQgMTAuNi01OC44IDI3LjMtODAgNDguMkw5NiAxMzZjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDIyMy45ek0yOTYgMzUwYy0xMi45LTItMjYuMi0zLjEtMzkuOC0zLjEtMTMuOCAwLTI3LjIgMS4xLTQwLjIgMy4xbDAtMjE0YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMTR6bTEyMCA1Ny43Yy0yMS4yLTIwLjgtNDguNi0zNy40LTgwLTQ4TDMzNiAxMzZjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDI3MS43elwiXVxufTtcbnZhciBmYUl0Y2hJbyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdpdGNoLWlvJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmODNhXCIsIFwiTTcxLjkgMzQuOEM1MC4yIDQ3LjcgNy40IDk2LjggNyAxMDkuN2wwIDIxLjNjMCAyNy4xIDI1LjMgNTAuOCA0OC4yIDUwLjggMjcuNiAwIDUwLjUtMjIuOCA1MC41LTUwIDAgMjcuMSAyMi4yIDUwIDQ5LjggNTBzNDktMjIuOCA0OS01MGMwIDI3LjEgMjMuNiA1MCA1MS4yIDUwbC41IDBjMjcuNiAwIDUxLjItMjIuOCA1MS4yLTUwIDAgMjcuMSAyMS41IDUwIDQ5IDUwczQ5LjgtMjIuOCA0OS44LTUwYzAgMjcuMSAyMyA1MCA1MC41IDUwIDIzIDAgNDguMy0yMy44IDQ4LjMtNTAuOGwwLTIxLjNjLS40LTEyLjktNDMuMi02Mi4xLTY0LjktNzUtNjcuNC0yLjMtMTE0LjItMi43LTE4NC0yLjdTOTEuMSAzMy4xIDcxLjkgMzQuOHpNMjA0LjIgMTY5LjJjLTIyIDM4LjQtNzcuOSAzOC43LTk5LjggLjItMTMuMiAyMy4xLTQzLjIgMzIuMS01NiAyNy43LTMuOSA0MC4yLTEzLjcgMjM3LjEgMTcuNyAyNjkuMiA4MCAxOC43IDMwMi4xIDE4LjEgMzc5LjggMCAzMS42LTMyLjMgMjEuMy0yMzIgMTcuNy0yNjkuMi0xMi45IDQuNC00Mi45LTQuNi01Ni0yNy43LTIyIDM4LjUtNzcuOCAzOC4xLTk5LjgtLjItNy4xIDEyLjUtMjMgMjguOS01MS44IDI4LjktMTAuNCAuMy0yMC44LTIuMi0yOS45LTcuM3MtMTYuNy0xMi42LTIxLjktMjEuNmwwIDB6bS00MS42IDUzLjhjMTYuNSAwIDMxLjEgMCA0OS4yIDE5LjggMjkuMy0zIDU4LjktMyA4OC4yIDAgMTguMi0xOS43IDMyLjgtMTkuNyA0OS4yLTE5LjcgNTIuMyAwIDY1LjIgNzcuNSA4My45IDE0NC40IDE3LjMgNjIuMi01LjUgNjMuNy0zNCA2My43LTQyLjEtMS42LTY1LjUtMzIuMi02NS41LTYyLjgtMzkuMyA2LjQtMTAxLjkgOC44LTE1NS42IDAgMCAzMC42LTIzLjMgNjEuMi02NS41IDYyLjgtMjguNC0uMS01MS4yLTEuNi0zMy45LTYzLjcgMTguNy02NyAzMS42LTE0NC40IDgzLjktMTQ0LjRsMC0uMXpNMjU2IDI3MC44cy00NC40IDQwLjgtNTIuNCA1NS4ybDI5LTEuMiAwIDI1LjNjMCAxLjUgMjEuMyAuMiAyMy4zIC4yIDExLjYgLjUgMjMuMyAxIDIzLjMtLjJsMC0yNS4zIDI5IDEuMmMtOC0xNC41LTUyLjQtNTUuMi01Mi40LTU1LjJsLjEgMHpcIl1cbn07XG52YXIgZmFXaW5kb3dzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3dpbmRvd3MnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxN2FcIiwgXCJNMCA5My43bDE4My42LTI1LjMgMCAxNzcuNC0xODMuNiAwIDAtMTUyLjF6TTAgNDE4LjNsMTgzLjYgMjUuMyAwLTE3NS4yLTE4My42IDAgMCAxNDkuOXptMjAzLjggMjhsMjQ0LjIgMzMuNyAwLTIxMS42LTI0NC4yIDAgMCAxNzcuOXptMC0zODAuNmwwIDE4MC4xIDI0NC4yIDAgMC0yMTMuOC0yNDQuMiAzMy43elwiXVxufTtcbnZhciBmYVN0dW1ibGV1cG9uID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3N0dW1ibGV1cG9uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWE0XCIsIFwiTTUwMi45IDI2NmwwIDY5LjdjMCA2Mi4xLTUwLjMgMTEyLjQtMTEyLjQgMTEyLjQtNjEuOCAwLTExMi40LTQ5LjgtMTEyLjQtMTExLjNsMC03MC4yIDM0LjMgMTYgNTEuMS0xNS4yIDAgNzAuNmMwIDE0LjcgMTIgMjYuNSAyNi43IDI2LjVTNDE3IDM1Mi43IDQxNyAzMzhsMC03MiA4NS45IDB6TTI3OC4yIDIwNy44bDM0LjMgMTYgNTEuMS0xNS4yIDAtMzUuNmMwLTYwLjUtNTEuMS0xMDktMTEyLjEtMTA5LTYwLjggMC0xMTIuMSA0OC4yLTExMi4xIDEwOC4ybDAgMTYyLjRjMCAxNC45LTEyIDI2LjctMjYuNyAyNi43Uzg2IDM0OS41IDg2IDMzNC42bDAtNjguNi04NiAwIDAgNjkuN2MwIDYyIDUwLjMgMTEyLjMgMTEyLjQgMTEyLjMgNjEuNiAwIDExMi40LTQ5LjUgMTEyLjQtMTEwLjhsMC0xNjAuM2MwLTE0LjcgMTItMjYuNyAyNi43LTI2LjdzMjYuNyAxMiAyNi43IDI2LjdsMCAzMC45elwiXVxufTtcbnZhciBmYUdvb2dsZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdnb29nbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxYTBcIiwgXCJNNTAwIDI2MS44QzUwMCA0MDMuMyA0MDMuMSA1MDQgMjYwIDUwNCAxMjIuOCA1MDQgMTIgMzkzLjIgMTIgMjU2UzEyMi44IDggMjYwIDhjNjYuOCAwIDEyMyAyNC41IDE2Ni4zIDY0LjlsLTY3LjUgNjQuOWMtODguMy04NS4yLTI1Mi41LTIxLjItMjUyLjUgMTE4LjIgMCA4Ni41IDY5LjEgMTU2LjYgMTUzLjcgMTU2LjYgOTguMiAwIDEzNS03MC40IDE0MC44LTEwNi45bC0xNDAuOCAwIDAtODUuMyAyMzYuMSAwYzIuMyAxMi43IDMuOSAyNC45IDMuOSA0MS40elwiXVxufTtcbnZhciBmYURpc2NvcmQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZGlzY29yZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjM5MlwiLCBcIk00OTIuNSA2OS44Yy0uMi0uMy0uNC0uNi0uOC0uNy0zOC4xLTE3LjUtNzguNC0zMC0xMTkuNy0zNy4xLS40LS4xLS44IDAtMS4xIC4xcy0uNiAuNC0uOCAuOGMtNS41IDkuOS0xMC41IDIwLjItMTQuOSAzMC42LTQ0LjYtNi44LTg5LjktNi44LTEzNC40IDAtNC41LTEwLjUtOS41LTIwLjctMTUuMS0zMC42LS4yLS4zLS41LS42LS44LS44cy0uNy0uMi0xLjEtLjJjLTQxLjMgNy4xLTgxLjYgMTkuNi0xMTkuNyAzNy4xLS4zIC4xLS42IC40LS44IC43LTc2LjIgMTEzLjgtOTcuMSAyMjQuOS04Ni45IDMzNC41IDAgLjMgLjEgLjUgLjIgLjhzLjMgLjQgLjUgLjZjNDQuNCAzMi45IDk0IDU4IDE0Ni44IDc0LjIgLjQgLjEgLjggLjEgMS4xIDBzLjctLjQgLjktLjdjMTEuMy0xNS40IDIxLjQtMzEuOCAzMC00OC44IC4xLS4yIC4yLS41IC4yLS44czAtLjUtLjEtLjgtLjItLjUtLjQtLjYtLjQtLjMtLjctLjRjLTE1LjgtNi4xLTMxLjItMTMuNC00NS45LTIxLjktLjMtLjItLjUtLjQtLjctLjZzLS4zLS42LS4zLS45IDAtLjYgLjItLjkgLjMtLjUgLjYtLjdjMy4xLTIuMyA2LjItNC43IDkuMS03LjEgLjMtLjIgLjYtLjQgLjktLjRzLjcgMCAxIC4xYzk2LjIgNDMuOSAyMDAuNCA0My45IDI5NS41IDAgLjMtLjEgLjctLjIgMS0uMnMuNyAuMiAuOSAuNGMyLjkgMi40IDYgNC45IDkuMSA3LjIgLjIgLjIgLjQgLjQgLjYgLjdzLjIgLjYgLjIgLjktLjEgLjYtLjMgLjktLjQgLjUtLjYgLjZjLTE0LjcgOC42LTMwIDE1LjktNDUuOSAyMS44LS4yIC4xLS41IC4yLS43IC40cy0uMyAuNC0uNCAuNy0uMSAuNS0uMSAuOCAuMSAuNSAuMiAuOGM4LjggMTcgMTguOCAzMy4zIDMwIDQ4LjggLjIgLjMgLjYgLjYgLjkgLjdzLjggLjEgMS4xIDBjNTIuOS0xNi4yIDEwMi42LTQxLjMgMTQ3LjEtNzQuMiAuMi0uMiAuNC0uNCAuNS0uNnMuMi0uNSAuMi0uOGMxMi4zLTEyNi44LTIwLjUtMjM2LjktODYuOS0zMzQuNXptLTMwMiAyNjcuN2MtMjkgMC01Mi44LTI2LjYtNTIuOC01OS4yczIzLjQtNTkuMiA1Mi44LTU5LjJjMjkuNyAwIDUzLjMgMjYuOCA1Mi44IDU5LjIgMCAzMi43LTIzLjQgNTkuMi01Mi44IDU5LjJ6bTE5NS40IDBjLTI5IDAtNTIuOC0yNi42LTUyLjgtNTkuMnMyMy40LTU5LjIgNTIuOC01OS4yYzI5LjcgMCA1My4zIDI2LjggNTIuOCA1OS4yIDAgMzIuNy0yMy4yIDU5LjItNTIuOCA1OS4yelwiXVxufTtcbnZhciBmYUhhY2tlck5ld3MgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnaGFja2VyLW5ld3MnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxZDRcIiwgXCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMjEuMiAyMjkuMmwtLjIgMGMuMS0uMSAuMi0uMyAuMy0uNCAwIC4xIDAgLjMtLjEgLjR6bTIxOCA1My45bDAgMTAwLjktMzEuNCAwIDAtMTAyLjctNzkuOC0xNTMuMyAzNy4zIDBjNTIuNSA5OC4zIDQ5LjIgMTAxLjIgNTkuMyAxMjUuNiAxMi4zLTI3IDUuOC0yNC40IDYwLjYtMTI1LjZsMzQuOCAwLTgwLjggMTU1LjF6XCJdXG59O1xudmFyIGZhRWxldmVudHkgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZWxldmVudHknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcIjExdHlcIl0sIFwiZTdkNlwiLCBcIk02MTUuMyAxNjguNWMyLjMgMCA0LjYgLjcgNi42IDIuMiAxLjkgMS40IDMuMSAzLjMgMy44IDUgMS40IDMuMyAxLjggNy4zIDEuOCAxMS4zIDAgMi4yLS4zIDQuOS0uNyA3LjZsMCAuNC01MC45IDI2NC45IDAgMGMtNCAyMi4xLTguNSAzOS40LTEzLjYgNTEuNy01IDEyLjEtMTAuOSAyMS42LTE4LjYgMjdsMCAwYy03LjUgNS4zLTE2LjkgNy43LTI3LjYgOGwtMyAwYy0xNiAwLTI5LjMtNC4yLTM2LjktMTQuOC0uMS0uMS0uMS0uMS0uMi0uMi0uMS0uMi0uMy0uNC0uNS0uNmwwIDBjLTEuOC0yLjQtMi41LTUuMi0yLjktNy40LS41LTIuOC0uNy02LjEtLjctOS44IDAtNy4zIC42LTEzLjUgMi4xLTE4LjIgMS40LTQuNCA0LjgtMTAuNCAxMi4yLTEwLjRsMS4zIC4xYy4yIDAgLjQgLjEgLjUgLjEgLjMgLjEgLjYgLjEgLjggLjIgLjYgLjEgMS4zIC4zIDIuMiAuNmw3LjYgMi4yIC4xIDAgNy42IDIuMWMuOSAuMiAxLjcgLjQgMi4yIC41IC40IC4xIC42IC4xIC43IC4xIDAgMCAuMSAwIC4yLS4xIC4xLS4xIC40LS4yIC44LS42IC45LS45IDIuMi0yLjYgMy42LTUuNyAyLjYtNS44IDQuMi0xNC43IDQuMi0yNy40IDAtLjctLjMtMy40LTEuMy04LjktLjktNS4xLTIuMy0xMi4yLTQuMi0yMS4xbC01Ni0yMzIuOS0uMS0uNCAwLS4zYy0uNC0yLjctLjctNS4zLS43LTcuMyAwLTMuNyAuNC03LjUgMS43LTEwLjYgLjctMS42IDEuOC0zLjQgMy41LTQuOSAxLjktMS41IDQuMi0yLjMgNi41LTIuM2wzNC42IDBjNC42IDAgOC43IDEuNyAxMS45IDVsMS4zIDEuNWMxLjIgMS42IDIgMy40IDIuNyA1LjIgLjkgMi40IDEuNSA1LjEgMiA4LjFsMzAuNCAxNjEuMiAyMy44LTE2MGMuOC01LjggMi4yLTExLjQgNS4xLTE1LjEgMy0zLjggNy4yLTUuOCAxMi01LjhsMjQgMHpNMzc1LjEgMzQuNmMyLjYgMCA1LjEgLjcgNy40IDIuMyAyLjIgMS41IDMuNyAzLjYgNC43IDUuNyAxLjkgNCAyLjUgOS4xIDIuNSAxNC41bDAgMTExLjJjMCAuMSAwIC4yIDAgLjNsMzIuNCAwYzIuNSAwIDUgLjYgNy4yIDIuMSAyLjIgMS40IDMuNyAzLjQgNC44IDUuNSAyIDMuOSAyLjYgOC44IDIuNiAxMy45bDAgMTUuNGMwIDUtLjYgOS44LTIuNiAxMy43LTEuMSAyLTIuNiA0LTQuOCA1LjQtMi4yIDEuNC00LjcgMi03LjEgMmwtMzIuNSAwIDAgMTQ1LjhjMCAxMC44IC43IDE5LjUgMiAyNi4yIDEuNCA2LjkgMy4xIDEwLjkgNC43IDEyLjkgMS4yIDEuNSAyLjIgMi41IDMuMSAzLjJsMi4yIDEuNCAuMSAuMSAyLjkgLjhjMS4yIC4yIDIuNiAuMyA0LjMgLjNsMjAuMyAwYzQuNSAwIDguOSAxLjcgMTEuOCA1LjggMi42IDMuNiAzLjMgOC4xIDMuMyAxMi4ybDAgMTcuMmMwIDQuNS0uOCA5LjMtMy40IDEzLjEtMyA0LjItNy41IDYtMTIuMyA2bDAgMC0yOS4xIC4xYy04IDAtMTUtLjYtMjEuMi0xLjctNi43LTEuMy0xMy40LTQuMS0yMC4xLTguMS03LjItNC40LTEzLTEwLjMtMTcuNS0xNy44LTQuNS03LjUtNy45LTE3LjUtMTAuNS0yOS41LTIuNi0xMi4yLTMuOS0yNi42LTMuOS00M2wwLTE0NC45LTEzLjQgMGMtMi40IDAtNC45LS42LTcuMS0yLTIuMi0xLjQtMy43LTMuNC00LjgtNS40LTItMy45LTIuNi04LjctMi42LTEzLjdsMC0xNS40YzAtNS4xIC42LTEwIDIuNi0xMy45IDEuMS0yLjEgMi42LTQgNC44LTUuNSAyLjItMS41IDQuNy0yLjEgNy4yLTIuMWwxMy40IDAgMC0uNiA1LjItMTExLjIgMC0uMSAuMy0zLjljLjUtMy44IDEuMy03LjQgMi43LTEwLjMgMi4xLTQuMiA2LTcuOSAxMS44LTcuOWwyOC42IDB6bS0yNjggMTEuN2MxLjggLjMgMy42IC45IDUuMyAyLjEgMi4xIDEuNSAzLjUgMy41IDQuNCA1LjQgMS43IDMuNyAyLjMgOC40IDIuMyAxMy4ybDAgMzc3LjhjMCA2LjctLjYgMTIuNi0yLjQgMTcuMS0uOSAyLjMtMi4zIDQuNy00LjQgNi41LTIuMyAyLTUuMSAzLTguMSAzbC00My43IDBjLTMgMC01LjgtMS4xLTguMS0zLjEtMi4xLTEuOS0zLjQtNC4zLTQuMi02LjUtMS43LTQuNS0yLjMtMTAuMy0yLjMtMTdsMC0zMTUuOGMtNC44IDEuMi04LjcgMi4yLTExLjUgMi45LTEuOSAuNS0zLjQgLjgtNC40IDEuMS0uNSAuMS0uOSAuMi0xLjIgLjMtLjEgMC0uMyAuMS0uNSAuMS0uMSAwLS4yIDAtLjMgLjEgMCAwLS4yIDAtLjMgMCAwIDAtLjIgMC0uNCAwbDAgMGMtLjEgMC0uMyAwLS40IDAtLjEgMC0uMiAwLS4yIDAtMi4yIC4xLTQuNS0uNC02LjYtMS43LTIuMy0xLjQtMy44LTMuNC00LjctNS4zLTEuOC0zLjctMi4zLTguNC0yLjMtMTNsMC0yNy40YzAtNC40IC43LTguOCAyLjYtMTIuNCAyLjEtMy45IDUuNS02LjYgOS44LTcuNmw3NS41LTE5LjVjMS40LS40IDIuOS0uNSA0LjQtLjVsMS44IC4xem0xNDMuOC0uNWMxLjggLjMgMy42IC45IDUuMiAyLjEgMi4xIDEuNSAzLjUgMy41IDQuNCA1LjQgMS43IDMuNyAyLjIgOC40IDIuMiAxMy4ybDAgMzc3LjhjMCA2LjctLjYgMTIuNi0yLjQgMTcuMS0uOSAyLjMtMi4zIDQuNy00LjQgNi41LTIuMyAyLTUuMSAzLTguMSAzbC00My43IDBjLTMgMC01LjgtMS4xLTguMS0zLjEtMi4xLTEuOS0zLjQtNC4zLTQuMi02LjUtMS43LTQuNS0yLjMtMTAuMy0yLjMtMTdsMC0zMTUuOGMtNC44IDEuMi04LjcgMi4yLTExLjUgMi45LTEuOSAuNS0zLjQgLjgtNC40IDEuMS0uNSAuMS0uOSAuMi0xLjIgLjMtLjEgMC0uMyAuMS0uNSAuMS0uMSAwLS4yIDAtLjMgLjEtLjEgMC0uMiAwLS4zIDAgMCAwLS4yIDAtLjQgMGwwIDBjLS4xIDAtLjIgMC0uMyAwLS4xIDAtLjIgMC0uMyAwLTIuMiAuMS00LjUtLjQtNi42LTEuNy0yLjMtMS40LTMuOC0zLjQtNC43LTUuMy0xLjgtMy43LTIuMy04LjMtMi4zLTEzbDAtMjcuNGMwLTQuNCAuNy04LjcgMi42LTEyLjQgMi4xLTMuOSA1LjUtNi42IDkuOC03LjZsNzUuNC0xOS40YzEuNC0uNCAyLjktLjUgNC40LS41bDEuOCAuMXpcIl1cbn07XG52YXIgZmExMXR5ID0gZmFFbGV2ZW50eTtcbnZhciBmYVRlYW1zcGVhayA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd0ZWFtc3BlYWsnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0ZjlcIiwgXCJNMTUyLjggMzcuMmMtMzIuMiAzOC4xLTU2LjEgODIuNi02OS45IDEzMC41IDAgLjItLjEgLjMtLjEgLjUtMzkuMyAxNi4yLTY2LjggNTQuOC02Ni44IDk5LjggMCA1OS42IDQ4LjQgMTA4IDEwOCAxMDhzMTA4LTQ4LjQgMTA4LTEwOGMwLTUzLjUtMzguOS05Ny45LTkwLTEwNi41IDE1LjctNDEuOCA0MC40LTc5LjYgNzIuMy0xMTAuNyAxLjgtMS42IDQtMi42IDYuMy0zLjEgMzcuMi0xMS41IDc2LjctMTMuMyAxMTQuOC01LjIgMTE5LjMgMjUuMSAxOTguNiAxMzguMiAxODEuNyAyNTguOC04LjQgNjIuNi0zOC42IDExMi43LTg3LjcgMTUxLjQtNTAuMSAzOS43LTEwNy41IDU0LjMtMTcwLjIgNTIuMmwtMjQtMWMxMi40IDIuOCAyNSA0LjkgMzcuNiA2LjMgNDAuNyA0LjIgODEuNCAyLjEgMTIwLjEtMTIuNSA5NC0zNS41IDE0OS4zLTEwMi4zIDE2Mi45LTIwMi41IDQuOC01Mi42LTUuOC0xMDUuNC0zMC44LTE1Mi03MC40LTEzMS45LTIzNC4yLTE4MS42LTM2Ni0xMTEuMi0yLjQgMS40LTQuNSAzLjEtNi4zIDUuMmwuMSAwek0zMDkuNCA0MzMuOWMtMi4xIDExLjUtNC4yIDIxLjktMTQuNiAzMS4zIDUzLjItMSAxMjMuMi0yOS4yIDE2MS44LTk3LjEgMzkuNy02OS45IDM3LjYtMTM5LjktNi4zLTIwNy44LTM2LjUtNTUuMy04OS44LTgyLjQtMTU2LjYtODYuNiAxLjUgMi4zIDMuMiA0LjQgNS4yIDYuM2w1LjIgNi4zYzI1LjEgMzEuMyAzNy42IDY3LjkgNDIuOCAxMDcuNSAyLjEgMTUuNy0xIDMwLjMtMTMuNiA0MS44LTQuMiAzLjEtNS4yIDYuMy00LjIgMTAuNGw3LjMgMTcuNyAyOS4zIDU0LjNjNS4yIDExLjUgNC4yIDE5LjgtNi4zIDI4LjItMy4yIDIuNS02LjcgNC42LTEwLjQgNi4zbC0xOC44IDguNCAzLjEgMTMuNmMzLjEgNi4zIDEgMTIuNS0zLjEgMTcuNy0yLjUgMi40LTMuOCA1LjktMy4xIDkuNCAyLjEgMTEuNS0yLjEgMTkuOC0xMi41IDI1LjEtMi4xIDEtNC4yIDUuMi01LjIgNy4zbDAtLjF6bS0xMzMuNi0zLjFjMTYuNyAxMS41IDM0LjUgMjAuOSA1My4yIDI2LjEgMjQgNS4yIDQxLjgtNi4zIDQ0LjktMzAuMyAxLTguNCA1LjItMTQuNiAxMi41LTE3LjcgNy4zLTQuMiA4LjQtNy4zIDIuMS0xMy42bC05LjQtOC40IDEzLjYtNC4yYzYuMy0yLjEgNy4zLTUuMiA1LjItMTEuNS0xLjQtMy0yLjQtNi4yLTMuMS05LjQtMy4xLTE0LjYtMi4xLTE1LjcgMTEuNS0xOC44IDguNC0zLjEgMTUuNy02LjMgMjEuOS0xMi41IDMuMS0yLjEgMy4xLTQuMiAxLTguNGwtMTYuNy0zMC4zYy0xLTEuOS0yLjEtMy44LTMuMS01LjctNi40LTExLjctMTMtMjMuNi0xNS43LTM3LjEtMi4xLTkuNC0xLTE3LjcgOC40LTI0IDUuMi00LjIgOC40LTkuNCA4LjQtMTYuNy0uNC0xMC4xLTEuNS0yMC4zLTMuMS0zMC4zLTYuMy0zNy42LTIzLTY4LjktNTEuMi05NS01LjItNC4yLTkuNC02LjMtMTYuNy00LjJsLTM1LjYgMTIuNyA2IDMuNmM2LjMgMy43IDEyLjIgNy4zIDE3IDEyLjEgMzAuMyAyNi4xIDQxLjggNjEuNiA0NS45IDEwMC4yIDEgOC40IDAgMTYuNy03LjMgMjEuOS04LjQgNS4yLTEwLjQgMTIuNS03LjMgMjAuOSA0LjkgMTMuMiAxMC40IDI2IDE2LjcgMzguNkwyOTEuNiAzMThjLTYuMyA4LjQtMTMuNiAxMS41LTIxLjkgMTQuNi0xMi41IDMuMS0xNC42IDcuMy0xMC40IDIwLjkgLjYgMS41IDEuNCAyLjggMi4xIDQuMiAyLjEgNS4yIDEgOC40LTQuMiAxMC40bC0xMi41IDMuMSA1LjIgNC4yIDQuMiA0LjJjNC4yIDUuMiA0LjIgOC40LTIuMSAxMC40LTcuMyA0LjItMTEuNSA5LjQtMTEuNSAxNy43IDAgMTIuNS03LjMgMTkuOC0xOC44IDI0LTMuOCAxLTcuNiAxLjUtMTEuNSAxbC0zNC41LTIuMSAuMSAuMnpcIl1cbn07XG52YXIgZmFTdXBwbGUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3VwcGxlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmM2Y5XCIsIFwiTTY0MCAyNjIuNWMwIDY0LjEtMTA5IDExNi4xLTI0My41IDExNi4xLTI0LjggMC00OC42LTEuOC03MS4xLTUgNy43IC40IDE1LjUgLjYgMjMuNCAuNiAxMzQuNSAwIDI0My41LTU2LjkgMjQzLjUtMTI3LjEgMC0yOS40LTE5LjEtNTYuNC01MS4yLTc4IDYwIDIxLjEgOTguOSA1NS4xIDk4LjkgOTMuNHpNNDcuNyAyMjcuOWMtLjEtNzAuMiAxMDguOC0xMjcuMyAyNDMuMy0xMjcuNiA3LjkgMCAxNS42IC4yIDIzLjMgLjUtMjIuNS0zLjItNDYuMy00LjktNzEtNC45LTEzNC41IC40LTI0My40IDUyLjYtMjQzLjMgMTE2LjcgLjEgMzguMyAzOS4xIDcyLjMgOTkuMyA5My4zLTMyLjMtMjEuNS01MS41LTQ4LjYtNTEuNi03OHptNjAuMiAzOS45UzExOC40IDI4MSAxMzcuMiAyODFjMTcuOSAwIDI4LjQtMTEuNSAyOC40LTI1LjEgMC0yOC00MC4yLTI1LjEtNDAuMi0zOS43IDAtNS40IDUuMy05LjEgMTIuNS05LjEgNS43IDAgMTEuMyAyLjYgMTEuMyA2LjZsMCAzLjkgMTQuMiAwIDAtNy45YzAtMTIuMS0xNS40LTE2LjgtMjUuNC0xNi44LTE2LjUgMC0yOC41IDEwLjItMjguNSAyNC4xIDAgMjYuNiA0MC4yIDI1LjQgNDAuMiAzOS45IDAgNi42LTUuOCAxMC4xLTEyLjMgMTAuMS0xMS45IDAtMjAuNy0xMC4xLTIwLjctMTAuMWwtOC44IDEwLjl6bTEyMC44LTczLjZsMCA1NC40YzAgMTEuMy03LjEgMTcuOC0xNy44IDE3LjhzLTE3LjgtNi41LTE3LjgtMTcuN2wwLTU0LjUtMTUuOCAwIDAgNTVjMCAxOC45IDEzLjQgMzEuOSAzMy43IDMxLjkgMjAuMSAwIDMzLjQtMTMgMzMuNC0zMS45bDAtNTUtMTUuNyAwem0zNC40IDg1LjRsMTUuOCAwIDAtMjkuNSAxNS41IDBjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44bC0zOS4xIDAgMCAxMy40IDcuOCAwIDAgNzJ6bTE1LjgtNDNsMC0yOS4xIDEyLjkgMGM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNS4xIDE0LjctMTQgMTQuN2wtMTIuNiAwem01NyA0M2wxNS44IDAgMC0yOS41IDE1LjUgMGMxNiAwIDI3LjItMTEuNSAyNy4yLTI4LjFzLTExLjItMjcuOC0yNy4yLTI3LjhsLTM5LjEgMCAwIDEzLjQgNy44IDAgMCA3MnptMTUuNy00M2wwLTI5LjEgMTIuOSAwYzguNyAwIDEzLjcgNS43IDEzLjcgMTQuNCAwIDguOS01IDE0LjctMTQgMTQuN2wtMTIuNiAwem01Ny4xIDM0LjhjMCA1LjggMi40IDguMiA4LjIgOC4ybDM3LjYgMGM1LjggMCA4LjItMi40IDguMi04LjJsMC0xMy0xNC4zIDAgMCA1LjJjMCAxLjctMSAyLjYtMi42IDIuNmwtMTguNiAwYy0xLjcgMC0yLjYtMS0yLjYtMi42bDAtNjEuMmMwLTUuNy0yLjQtOC4yLTguMi04LjJsLTE1LjQgMCAwIDEzLjQgNS4yIDBjMS43IDAgMi42IDEgMi42IDIuNmwwIDYxLjItLjEgMHptNjMuNCAwYzAgNS44IDIuNCA4LjIgOC4yIDguMmwzOC43IDBjNS43IDAgOC4yLTIuNCA4LjItOC4ybDAtMTMtMTQuMyAwIDAgNS4yYzAgMS43LTEgMi42LTIuNiAyLjZsLTE5LjcgMGMtMS43IDAtMi42LTEtMi42LTIuNmwwLTIwLjMgMjcuNyAwIDAtMTMuNC0yNy43IDAgMC0yMi40IDE5LjIgMGMxLjcgMCAyLjYgMSAyLjYgMi42bDAgNS4yIDE0LjIgMCAwLTEzYzAtNS43LTIuNS04LjItOC4yLTguMmwtNTEuNiAwIDAgMTMuNCA3LjggMCAwIDYzLjkgLjEgMHptNTguOS03NmwwIDUuOSAxLjYgMCAwLTUuOSAyLjcgMCAwLTEuMi03IDAgMCAxLjIgMi43IDB6bTUuNy0xLjJsMCA3LjEgMS41IDAgMC01LjcgMi4zIDUuNyAxLjMgMCAyLjMtNS43IDAgNS43IDEuNSAwIDAtNy4xLTIuMyAwLTIuMSA1LjEtMi4xLTUuMS0yLjQgMHpcIl1cbn07XG52YXIgZmFTcXVhcmVUd2l0dGVyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NxdWFyZS10d2l0dGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0d2l0dGVyLXNxdWFyZVwiXSwgXCJmMDgxXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTM1MS4zIDE5OS4zYzAgODYuNy02NiAxODYuNi0xODYuNiAxODYuNi0zNy4yIDAtNzEuNy0xMC44LTEwMC43LTI5LjQgNS4zIC42IDEwLjQgLjggMTUuOCAuOCAzMC43IDAgNTguOS0xMC40IDgxLjQtMjgtMjguOC0uNi01My0xOS41LTYxLjMtNDUuNSAxMC4xIDEuNSAxOS4yIDEuNSAyOS42LTEuMi0zMC02LjEtNTIuNS0zMi41LTUyLjUtNjQuNGwwLS44YzguNyA0LjkgMTguOSA3LjkgMjkuNiA4LjMtOS02LTE2LjQtMTQuMS0yMS41LTIzLjZzLTcuOC0yMC4yLTcuNy0zMWMwLTEyLjIgMy4yLTIzLjQgOC45LTMzLjEgMzIuMyAzOS44IDgwLjggNjUuOCAxMzUuMiA2OC42LTkuMy00NC41IDI0LTgwLjYgNjQtODAuNiAxOC45IDAgMzUuOSA3LjkgNDcuOSAyMC43IDE0LjgtMi44IDI5LTguMyA0MS42LTE1LjgtNC45IDE1LjItMTUuMiAyOC0yOC44IDM2LjEgMTMuMi0xLjQgMjYtNS4xIDM3LjgtMTAuMi04LjkgMTMuMS0yMC4xIDI0LjctMzIuOSAzNCAuMiAyLjggLjIgNS43IC4yIDguNXpcIl1cbn07XG52YXIgZmFUd2l0dGVyU3F1YXJlID0gZmFTcXVhcmVUd2l0dGVyO1xudmFyIGZhRm9udEF3ZXNvbWUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZm9udC1hd2Vzb21lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjI1MDEsIDYyNjk0LCBcImZvbnQtYXdlc29tZS1mbGFnXCIsIFwiZm9udC1hd2Vzb21lLWxvZ28tZnVsbFwiXSwgXCJmMmI0XCIsIFwiTTkxLjcgOTZDMTA2LjMgODYuOCAxMTYgNzAuNSAxMTYgNTIgMTE2IDIzLjMgOTIuNyAwIDY0IDBTMTIgMjMuMyAxMiA1MmMwIDE2LjcgNy44IDMxLjUgMjAgNDFsMCA0MTkgNjQgMCAwLTY0IDM3My42IDBjMTQuNiAwIDI2LjQtMTEuOCAyNi40LTI2LjQgMC0zLjctLjgtNy4zLTIuMy0xMC43TDQzMiAyNzIgNDkzLjcgMTMzLjFjMS41LTMuNCAyLjMtNyAyLjMtMTAuNyAwLTE0LjYtMTEuOC0yNi40LTI2LjQtMjYuNEw5MS43IDk2elwiXVxufTtcbnZhciBmYUZvbnRBd2Vzb21lRmxhZyA9IGZhRm9udEF3ZXNvbWU7XG52YXIgZmFGb250QXdlc29tZUxvZ29GdWxsID0gZmFGb250QXdlc29tZTtcbnZhciBmYVdpcnNpbmRoYW5kd2VyayA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd3aXJzaW5kaGFuZHdlcmsnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcIndzaFwiXSwgXCJlMmQwXCIsIFwiTTE4LjkgNDc5LjhsODMuNCAwIDAtMTEyLTgzLjQgNDcgMCA2NXptMzI5IDBsODIuNCAwIDAtNjUtODIuNC00NyAwIDExMnptMC00NDhsMCAyMTkuOC0xMjMuNi03Mi40LTEyMS43IDcyLjQgMC0yMTkuOC04My43IDAgMCAzNjAuOCAyMDUuNC0xMjIuMyAyMDYgMTIyLjMgMC0zNjAuOC04Mi4zIDB6XCJdXG59O1xudmFyIGZhV3NoID0gZmFXaXJzaW5kaGFuZHdlcms7XG52YXIgZmFDb25mbHVlbmNlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NvbmZsdWVuY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3OGRcIiwgXCJNMi44IDQxMi4yYy00LjUgNy42LTIuMSAxNy41IDUuNSAyMi4ybDEwNS45IDY1LjJjNy43IDQuNyAxNy43IDIuNCAyMi40LTUuMyAwLS4xIC4xLS4yIC4xLS4yIDY3LjEtMTEyLjIgODAuNS05NS45IDI4MC45LS43IDguMSAzLjkgMTcuOCAuNCAyMS43LTcuNyAuMS0uMSAuMS0uMyAuMi0uNGw1MC40LTExNC4xYzMuNi04LjEtLjEtMTcuNi04LjEtMjEuMy0yMi4yLTEwLjQtNjYuMi0zMS4yLTEwNS45LTUwLjMtMjQ3LjktMTIwLjYtMzMwLjggNDUuNy0zNzMuMSAxMTIuNnpNNTEwLjIgMTAwLjFjNC41LTcuNiAyLjEtMTcuNS01LjUtMjIuMkwzOTguOSAxMi44Yy03LjUtNS0xNy42LTMuMS0yMi42IDQuNC0uMiAuMy0uNCAuNi0uNiAxLTY3LjMgMTEyLjYtODEuMSA5NS42LTI4MC42IC45LTguMS0zLjktMTcuOC0uNC0yMS43IDcuNy0uMSAuMS0uMSAuMy0uMiAuNEwyMi43IDE0MS4zYy0zLjYgOC4xIC4xIDE3LjYgOC4xIDIxLjMgMjIuMiAxMC40IDY2LjMgMzEuMiAxMDYgNTAuNCAyNDggMTIwIDMzMC44LTQ1LjQgMzczLjQtMTEyLjl6XCJdXG59O1xudmFyIGZhRGlnZyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdkaWdnJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWE2XCIsIFwiTTgxLjcgMTcyLjNsLTgxLjcgMCAwIDE3NC40IDEzMi43IDAgMC0yNTAuNy01MSAwIDAgNzYuM3ptMCAxMzMuNGwtMzAuOCAwIDAtOTIuMyAzMC44IDAgMCA5Mi4zek0zNzguOSAxNzIuM2wwIDE3NC40IDgxLjggMCAwIDI4LjUtODEuOCAwIDAgNDAuOCAxMzMuMSAwIDAtMjQzLjctMTMzLjEgMHptODEuOCAxMzMuNGwtMzAuOCAwIDAtOTIuMyAzMC44IDAgMCA5Mi4zem0tMjM1LjYgNDFsODIuMSAwIDAgMjguNS04Mi4xIDAgMCA0MC44IDEzMy4zIDAgMC0yNDMuNy0xMzMuMyAwIDAgMTc0LjR6bTUxLjItMTMzLjNsMzAuOCAwIDAgOTIuMy0zMC44IDAgMC05Mi4zek0xNTMuMyA5Nmw1MS4zIDAgMCA1MS01MS4zIDAgMC01MXptMCA3Ni4zbDUxLjMgMCAwIDE3NC40LTUxLjMgMCAwLTE3NC40elwiXVxufTtcbnZhciBmYVRocmVhZHMgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndGhyZWFkcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTYxOFwiLCBcIk0zMzEuNSAyMzUuN2MyLjIgLjkgNC4yIDEuOSA2LjMgMi44IDI5LjIgMTQuMSA1MC42IDM1LjIgNjEuOCA2MS40IDE1LjcgMzYuNSAxNy4yIDk1LjgtMzAuMyAxNDMuMi0zNi4yIDM2LjItODAuMyA1Mi41LTE0Mi42IDUzbC0uMyAwYy03MC4yLS41LTEyNC4xLTI0LjEtMTYwLjQtNzAuMi0zMi4zLTQxLTQ4LjktOTguMS00OS41LTE2OS42bDAtLjVDMTcgMTg0LjMgMzMuNiAxMjcuMiA2NS45IDg2LjIgMTAyLjIgNDAuMSAxNTYuMiAxNi41IDIyNi40IDE2bC4zIDBjNzAuMyAuNSAxMjQuOSAyNCAxNjIuMyA2OS45IDE4LjQgMjIuNyAzMiA1MCA0MC42IDgxLjdsLTQwLjQgMTAuOGMtNy4xLTI1LjgtMTcuOC00Ny44LTMyLjItNjUuNC0yOS4yLTM1LjgtNzMtNTQuMi0xMzAuNS01NC42LTU3IC41LTEwMC4xIDE4LjgtMTI4LjIgNTQuNC0yNi4yIDMzLjMtMzkuOCA4MS41LTQwLjMgMTQzLjIgLjUgNjEuNyAxNC4xIDEwOS45IDQwLjMgMTQzLjMgMjggMzUuNiA3MS4yIDUzLjkgMTI4LjIgNTQuNCA1MS40LS40IDg1LjQtMTIuNiAxMTMuNy00MC45IDMyLjMtMzIuMiAzMS43LTcxLjggMjEuNC05NS45LTYuMS0xNC4yLTE3LjEtMjYtMzEuOS0zNC45LTMuNyAyNi45LTExLjggNDguMy0yNC43IDY0LjgtMTcuMSAyMS44LTQxLjQgMzMuNi03Mi43IDM1LjMtMjMuNiAxLjMtNDYuMy00LjQtNjMuOS0xNi0yMC44LTEzLjgtMzMtMzQuOC0zNC4zLTU5LjMtMi41LTQ4LjMgMzUuNy04MyA5NS4yLTg2LjQgMjEuMS0xLjIgNDAuOS0uMyA1OS4yIDIuOC0yLjQtMTQuOC03LjMtMjYuNi0xNC42LTM1LjItMTAtMTEuNy0yNS42LTE3LjctNDYuMi0xNy44bC0uNyAwYy0xNi42IDAtMzkgNC42LTUzLjMgMjYuM2wtMzQuNC0yMy42YzE5LjItMjkuMSA1MC4zLTQ1LjEgODcuOC00NS4xbC44IDBjNjIuNiAuNCA5OS45IDM5LjUgMTAzLjcgMTA3LjdsLS4yIC4yIC4xIDB6bS0xNTYgNjguOGMxLjMgMjUuMSAyOC40IDM2LjggNTQuNiAzNS4zIDI1LjYtMS40IDU0LjYtMTEuNCA1OS41LTczLjItMTMuMi0yLjktMjcuOC00LjQtNDMuNC00LjQtNC44IDAtOS42IC4xLTE0LjQgLjQtNDIuOSAyLjQtNTcuMiAyMy4yLTU2LjIgNDEuOGwtLjEgLjF6XCJdXG59O1xudmFyIGZhV3ByZXNzciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd3cHJlc3NyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJyZW5kYWN0XCJdLCBcImYzZTRcIiwgXCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MjcuMyAxNjYuNmMtMTUuMiAzNC41LTMwLjQgNjktNDUuNiAxMDMuNS0yLjQgNS41LTYuOSA4LjItMTMgOC4yLTIzIDAtNDYgLjEtNjkgMC01LjEgMC04LjIgMS45LTEwLjMgNi43LTEwLjIgMjMuNi0yMC42IDQ3LTMxIDcwLjUtMS41IDMuNS00LjEgNS4zLTcuOSA1LjMtNDUuOSAwLTkxLjkgMC0xMzcuOCAwLTMuMSAwLTUuNi0xLjEtNy43LTMuNC0xMS4yLTEyLjMtMjIuNS0yNC42LTMzLjctMzYuOS0yLjctMy0yLjgtNi4yLTEuMi05LjcgOC43LTE5LjUgMTcuMy0zOS4xIDI1LjktNTguNyAxMi45LTI5LjQgMjUuOS01OC43IDM4LjctODguMSAxLjctMy45IDQuMy01LjcgOC41LTUuNyAxNC4yIC4xIDI4LjUgMCA0Mi43IDAgNi4yIDAgOS4yIDQuOCA2LjcgMTAuNi0xMy42IDMwLjgtMjcuMiA2MS42LTQwLjcgOTIuMy01LjcgMTMtMTEuNCAyNi0xNy4xIDM5LTMuOSA5IDcuMSAxMiAxMSA1LjYgLjItLjQtMS40IDQuMiAzMC02Ny43IDEuNC0zLjEgMy40LTQuNCA2LjgtNC40IDE1LjIgLjEgMzAuNCAwIDQ1LjYgMCA1LjYgMCA3LjkgMy42IDUuNyA4LjctOC4zIDE5LTE2LjcgMzcuOS0yNSA1Ni45LTUgMTEuNCA4LjEgMTIuNSAxMS4zIDUuMyAwLS4xIDI3LjktNjMuMyAzMi4yLTczLjIgMi00LjYgNS40LTYuNSAxMC4zLTYuNSAyNi40IC4xIDUyLjkgMCA3OS4zIDAgMTIuNCAwIDEzLjktMTMuNiAzLjktMTMuNi0yNS4zIDAtNTAuNSAwLTc1LjggMC02LjMgMC03LjgtMi41LTUuMy04LjMgNS44LTEzLjEgMTEuNi0yNi4xIDE3LjMtMzkuMiAxLjctNCA0LjUtNS44IDguOC01LjggMjMuMSAuMSAyNiAwIDEzMC44IDAgNi4xIDAgOCAyLjggNS42IDguM3pcIl1cbn07XG52YXIgZmFSZW5kYWN0ID0gZmFXcHJlc3NyO1xudmFyIGZhWW9hc3QgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAneW9hc3QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyYjFcIiwgXCJNOTEuMyA3NmwxODYgMC03IDE4LjktMTc5IDBjLTM5LjcgMC03MS45IDMxLjYtNzEuOSA3MC4zbDAgMjA1LjRjMCAzNS40IDI0LjkgNzAuMyA4NCA3MC4zbDAgMTkuMS0xMi4xIDBDNDEuMiA0NjAgMCA0MTkuOCAwIDM3MC41TDAgMTY1LjJDMCAxMTUuOSA0MC43IDc2IDkxLjMgNzZ6TTMyMC40IDIwbDY2LjUgMGMtMTQzLjggMzc4LjEtMTQ1LjcgMzk4LjktMTg0LjcgNDM5LjMtMjAuOCAyMS42LTQ5LjMgMzEuNy03OC4zIDMyLjdsMC01MS4xYzQ5LjItNy43IDY0LjYtNDkuOSA2NC42LTc1LjMgMC0yMC4xIC42LTEyLjYtODIuMS0yMjMuMmw2MS40IDAgNTAuNCAxNTYuNiAxMDIuMi0yNzl6TTQ0OCAxNjEuNWwwIDI5OC41LTIxNCAwYzYuNi05LjYgMTAuNy0xNi4zIDEyLjEtMTkuNGwxODIuNSAwIDAtMjc5LjFjMC0zMi41LTE3LjEtNTEuOS00OC4yLTYyLjlMMzg3LjEgODFjNDEuNyAxMy42IDYwLjkgNDMuMSA2MC45IDgwLjV6XCJdXG59O1xudmFyIGZhTmltYmxyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ25pbWJscicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjVhOFwiLCBcIk0yNDYuNiAzNTMuM2EyNyAyNyAwIDEgMSAwLTU0IDI3IDI3IDAgMSAxIDAgNTR6bS03OS40LTI3YTI3LjEgMjcuMSAwIDEgMSAtNTQuMyAwIDI3LjEgMjcuMSAwIDEgMSA1NC4zIDB6TTE5MS44IDE1OUMxNTcgMTU5IDg5LjQgMTc4LjggNTkuMiAyMjdMMTQgMCAxNCAzMzUuNUMxNCA0MzMuMSA5My42IDUxMiAxOTEuOCA1MTJTMzY5LjUgNDMzIDM2OS41IDMzNS41IDI5MC4xIDE1OSAxOTEuOCAxNTl6bTAgMzA4LjFjLTczLjMgMC0xMzIuNS01OC45LTEzMi41LTEzMS42czU5LjItMTMxLjYgMTMyLjUtMTMxLjYgMTMyLjUgNTguOSAxMzIuNSAxMzEuNS01OS4zIDEzMS42LTEzMi41IDEzMS42bDAgLjF6XCJdXG59O1xudmFyIGZhUGl4ZWxmZWQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncGl4ZWxmZWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU3ZGJcIiwgXCJNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyek0yMzUuNyAzMTEuOWw0NyAwYzQ0LjIgMCA4MC4xLTM0LjkgODAuMS03OHMtMzUuOS03OC04MC4xLTc4bC02Ny44IDBjLTI1LjUgMC00Ni4yIDIwLjEtNDYuMiA0NWwwIDE3NS4xIDY3LTY0LjF6XCJdXG59O1xudmFyIGZhWWFob28gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAneWFob28nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxOWVcIiwgXCJNMjIzLjggMTQxLjFsLTU2LjcgMTQzLjItNTYtMTQzLjItOTYuMSAwIDEwNS44IDI0OS4xLTM4LjYgODkuOCA5NC4yIDAgMTQwLjktMzM4LjktOTMuNiAwek0zMjkuMiAyNzYuOWE1OC4yIDU4LjIgMCAxIDAgMCAxMTYuNCA1OC4yIDU4LjIgMCAxIDAgMC0xMTYuNHpNMzk0LjcgMzJsLTkzIDIyMy41IDEwNC44IDAgOTIuNi0yMjMuNS0xMDQuNCAwelwiXVxufTtcbnZhciBmYUJsdWVza3kgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYmx1ZXNreScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTY3MVwiLCBcIk00MDcuOCAyOTQuN2MtMy4zLS40LTYuNy0uOC0xMC0xLjMgMy40IC40IDYuNyAuOSAxMCAxLjN6TTI4OCAyMjcuMUMyNjEuOSAxNzYuNCAxOTAuOSA4MS45IDEyNC45IDM1LjMgNjEuNi05LjQgMzcuNS0xLjcgMjEuNiA1LjUgMy4zIDEzLjggMCA0MS45IDAgNTguNFM5LjEgMTk0IDE1IDIxMy45YzE5LjUgNjUuNyA4OS4xIDg3LjkgMTUzLjIgODAuNyAzLjMtLjUgNi42LS45IDEwLTEuNC0zLjMgLjUtNi42IDEtMTAgMS40LTkzLjkgMTQtMTc3LjMgNDguMi02Ny45IDE2OS45IDEyMC4zIDEyNC42IDE2NC44LTI2LjcgMTg3LjctMTAzLjQgMjIuOSA3Ni43IDQ5LjIgMjIyLjUgMTg1LjYgMTAzLjQgMTAyLjQtMTAzLjQgMjguMS0xNTYtNjUuOC0xNjkuOS0zLjMtLjQtNi43LS44LTEwLTEuMyAzLjQgLjQgNi43IC45IDEwIDEuMyA2NC4xIDcuMSAxMzMuNi0xNS4xIDE1My4yLTgwLjcgNS45LTE5LjkgMTUtMTM4LjkgMTUtMTU1LjVzLTMuMy00NC43LTIxLjYtNTIuOWMtMTUuOC03LjEtNDAtMTQuOS0xMDMuMiAyOS44LTY2LjEgNDYuNi0xMzcuMSAxNDEuMS0xNjMuMiAxOTEuOHpcIl1cbn07XG52YXIgZmFTY3JpYmQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc2NyaWJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMjhhXCIsIFwiTTQyLjYgMjUyLjdjLTE2LjEtMTktMjQuNy00NS45LTI0LjgtNzkuOSAwLTEwMC40IDc1LjItMTUzLjEgMTY3LjItMTUzLjEgOTguNi0xLjYgMTU2LjggNDkgMTg0LjMgNzAuNmwtNTAuNSA3Mi4xLTM3LjMtMjQuNiAyNi45LTM4LjZjLTM2LjUtMjQtNzkuNC0zNi41LTEyMy0zNS44LTUwLjctLjgtMTExLjcgMjcuMi0xMTEuNyA3Ni4yIDAgMTguNyAxMS4yIDIwLjcgMjguNiAxNS42IDIzLjMtNS4zIDQxLjkgLjYgNTUuOCAxNCAyNi40IDI0LjMgMjMuMiA2Ny42LS43IDkxLjktMjkuMiAyOS41LTg1LjIgMjcuMy0xMTQuOC04LjR6bTMxNy43IDUuOWMtMTUuNS0xOC44LTM4LjktMjkuNC02My4yLTI4LjYtMzguMS0yLTcxLjEgMjgtNzAuNSA2Ny4yLS43IDE2LjggNiAzMyAxOC40IDQ0LjMgMTQuMSAxMy45IDMzIDE5LjcgNTYuMyAxNC40IDE3LjQtNS4xIDI4LjYtMy4xIDI4LjYgMTUuNiAwIDQuMy0uNSA4LjUtMS40IDEyLjctMTYuNyA0MC45LTU5LjUgNjQuNC0xMjEuNCA2NC40LTUxLjkgLjItMTAyLjQtMTYuNC0xNDQuMS00Ny4zbDMzLjctMzkuNC0zNS42LTI3LjQtNjAuOCA3MS44IDE1LjQgMTMuOGM1Mi41IDQ2LjggMTIwLjQgNzIuNSAxOTAuNyA3Mi4yIDUxLjQgMCA5NC40LTEwLjUgMTMzLjYtNDQuMSA1Ny4xLTUxLjQgNTQuMi0xNDkuMiAyMC4zLTE4OS42elwiXVxufTtcbnZhciBmYUNyZWF0aXZlQ29tbW9uc1BkID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NyZWF0aXZlLWNvbW1vbnMtcGQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0ZWNcIiwgXCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em0wIDQ0OS41Yy0xMzkuMiAwLTIzNS44LTEzOC0xOTAuMi0yNjcuOWw3OC44IDM1LjFjLTIuMSAxMC41LTMuMyAyMS41LTMuMyAzMi45IDAgOTkgNzMuOSAxMjYuOSAxMjAuNCAxMjYuOSAyMi45IDAgNTMuNS02LjcgNzkuNC0yOS41TDMwNSAzMTEuMWMtNS41IDYuMy0xNy42IDE2LjctMzYuMyAxNi43LTM3LjggMC01My43LTM5LjktNTMuOS03MS45IDIzMC40IDEwMi42IDIxNi41IDk2LjUgMjE3LjkgOTYuOC0zNC4zIDYyLjQtMTAwLjYgMTA0LjgtMTc2LjcgMTA0Ljh6bTE5NC4yLTE1MGwtMjI0LTEwMGMxOC44LTM0IDU0LjktMzAuNyA3NC43LTExbDQwLjQtNDEuNmMtMjcuMS0yMy4zLTU4LTI3LjUtNzguMS0yNy41LTQ3LjQgMC04MC45IDIwLjUtMTAwLjcgNTEuNkw4Ny42IDE0NS42YzM2LjEtNTQuOSA5OC4xLTkxLjIgMTY4LjUtOTEuMiAxMTEuMSAwIDIwMS41IDkwLjQgMjAxLjUgMjAxLjUgMCAxOC0yLjQgMzUuNC02LjggNTItLjMtLjEtLjQtLjItLjYtLjR6XCJdXG59O1xudmFyIGZhRWFybHliaXJkcyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdlYXJseWJpcmRzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMzlhXCIsIFwiTTMyOS4zIDQ3LjVjMS4yLTEzIDIxLjMtMTQgMzYuNi04LjcgLjkgLjMgMjYuMiA5LjcgMTkgMTUuMi0yNy45LTcuNC01Ni40IDE4LjItNTUuNi02LjV6bS0yMDEgNi45YzMwLjctOC4xIDYyIDIwIDYxLjEtNy4xLTEuMy0xNC4yLTIzLjQtMTUuMy00MC4yLTkuNi0xIC4zLTI4LjcgMTAuNS0yMC45IDE2Ljd6TTMzNS41IDE2MGExNiAxNiAwIDEgMCAwIDMyIDE2IDE2IDAgMSAwIDAtMzJ6bS0xNTkuNyAwYTE2IDE2IDAgMSAwIDAgMzIgMTYgMTYgMCAxIDAgMC0zMnpNNDk0LjMgMzIzLjJjLTkuOSAyNC00MC43IDExLTYzLjktMS4yLTEzLjUgNjkuMS01OC4xIDExMS40LTEyNi4zIDEyNC4yIC4zIC45LTItLjEgMjQgMSAzMy42IDEuNCA2My44LTMuMSA5Ny40LTgtMTkuOC0xMy44LTExLjQtMzcuMS05LjgtMzguMSAxLjQtLjkgMTQuNyAxLjcgMjEuNiAxMS41IDguNi0xMi41IDI4LjQtMTQuOCAzMC4yLTEzLjYgMS42IDEuMSA2LjYgMjAuOS02LjkgMzQuNiA0LjctLjkgOC4yLTEuNiA5LjgtMi4xIDIuNi0uOCAxNy43IDExLjMgMy4xIDEzLjMtMTQuMyAyLjMtMjIuNiA1LjEtNDcuMSAxMC44LTQ1LjkgMTAuNy04NS45IDExLjgtMTE3LjcgMTIuOGwxIDExLjZjMy44IDE4LjEtMjMuNCAyNC4zLTI3LjYgNi4yIC44IDE3LjktMjcuMSAyMS44LTI4LjQtMWwtLjUgNS4zYy0uNyAxOC40LTI4LjQgMTcuOS0yOC4zLS42LTcuNSAxMy41LTI4LjEgNi44LTI2LjQtOC41bDEuMi0xMi40Yy0zNi43IC45LTU5LjcgMy4xLTYxLjggMy4xLTIwLjkgMC0yMC45LTMxLjYgMC0zMS42IDIuNCAwIDI3LjcgMS4zIDYzLjIgMi44LTYxLjEtMTUuNS0xMDMuNy01NS0xMTQuOS0xMTguMi0yNSAxMi44LTU3LjUgMjYuOC02OC4yIC44LTEwLjUtMjUuNCAyMS41LTQyLjYgNjYuOC03My40IC43LTYuNiAxLjYtMTMuMyAyLjctMTkuOC0xNC40LTE5LjYtMTEuNi0zNi4zLTE2LjEtNjAuNC0xNi44IDIuNC0yMy4yLTkuMS0yMy42LTIzLjEgLjMtNy4zIDIuMS0xNC45IDIuNC0xNS40IDEuMS0xLjggMTAuMS0yIDEyLjctMi42IDYtMzEuNyA1MC42LTMzLjIgOTAuOS0zNC41IDE5LjctMjEuOCA0NS4yLTQxLjUgODAuOS00OC4zLTE1LjMtMTkuNC0zLjQtMzkuOS0yLjQtNDAuNCAxLjctLjggMjEuMiA0LjMgMjYuMyAyMy4yIDUuMi04LjggMTguMy0xMS40IDE5LjYtMTAuNyAxLjEgLjYgNi40IDE1LTQuOSAyNS45IDQwLjMgMy41IDcyLjIgMjQuNyA5NiA1MC43IDM2LjEgMS41IDcxLjggNS45IDc3LjEgMzQgMi43IC42IDExLjYgLjggMTIuNyAyLjYgLjMgLjUgMi4xIDguMSAyLjQgMTUuNC0uNSAxMy45LTYuOCAyNS40LTIzLjYgMjMuMS0zLjIgMTcuMy0yLjcgMzIuOS04LjcgNDcuNyAyLjQgMTEuNyA0IDIzLjggNC44IDM2LjQgMzcgMjUuNCA3MC4zIDQyLjUgNjAuMyA2Ni45ek0yMjMuNSAxNTkuOWMuOS00NC0zNy45LTQyLjItNzguNi00MC4zLTIxLjcgMS0zOC45IDEuOS00NS41IDEzLjktMTEuNCAyMC45IDUuOSA5Mi45IDIzLjIgMTAxLjIgOS44IDQuNyA3My40IDcuOSA4Ni4zLTcuMSA4LjItOS40IDE1LTQ5LjQgMTQuNi02Ny43em01MiA1OC4zYy00LjMtMTIuNC02LTMwLjEtMTUuMy0zMi43LTItLjUtOS0uNS0xMSAwLTEwIDIuOC0xMC44IDIyLjEtMTcgMzcuMiAxNS40IDAgMTkuMyA5LjcgMjMuNyA5LjcgNC4zIDAgNi4zLTExLjMgMTkuNi0xNC4yem0xMzUuNy04NC43Yy02LjYtMTIuMS0yNC44LTEyLjktNDYuNS0xMy45LTQwLjItMS45LTc4LjItMy44LTc3LjMgNDAuMy0uNSAxOC4zIDUgNTguMyAxMy4yIDY3LjggMTMgMTQuOSA3Ni42IDExLjggODYuMyA3LjEgMTUuOC03LjYgMzYuNS03OC45IDI0LjMtMTAxLjN6XCJdXG59O1xudmFyIGZhU3F1YXJlT2Rub2tsYXNzbmlraSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtb2Rub2tsYXNzbmlraScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wib2Rub2tsYXNzbmlraS1zcXVhcmVcIl0sIFwiZjI2NFwiLCBcIk0yMjQgMTM3LjFjLTUuNC0uMy0xMC44IC42LTE1LjkgMi40cy05LjcgNC44LTEzLjYgOC41LTcgOC4yLTkuMiAxMy4yLTMuMiAxMC4zLTMuMiAxNS43IDEuMSAxMC44IDMuMiAxNS43IDUuMyA5LjUgOS4yIDEzLjIgOC42IDYuNiAxMy42IDguNSAxMC41IDIuNyAxNS45IDIuNGM1LjQgLjMgMTAuOC0uNiAxNS45LTIuNHM5LjctNC44IDEzLjYtOC41IDctOC4yIDkuMi0xMy4yIDMuMi0xMC4zIDMuMi0xNS43LTEuMS0xMC44LTMuMi0xNS43LTUuMy05LjUtOS4yLTEzLjItOC42LTYuNi0xMy42LTguNS0xMC41LTIuNy0xNS45LTIuNHpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCAyNThhODEgODEgMCAxIDEgMC0xNjIuMSA4MSA4MSAwIDEgMSAwIDE2Mi4xem01OS4zIDYuMmMxNi44LTEzLjIgMjkuNS01LjUgMzQuMSAzLjYgNy44IDE2LTEuMSAyMy43LTIxLjUgMzctMTcuMSAxMC45LTQwLjcgMTUuMi01Ni4yIDE2LjhsMTMgMTIuOSA0Ny43IDQ3LjdjMTcuNCAxNy45LTExIDQ1LjgtMjguNiAyOC42LTEyLTEyLjItMjkuNS0yOS43LTQ3LjctNDcuOWwtNDcuNyA0Ny45Yy0xNy43IDE3LjItNDYtMTEtMjguNC0yOC42IDMuNy0zLjcgNy45LTcuOSAxMi41LTEyLjUgMTAuNC0xMC40IDIyLjYtMjIuNyAzNS4yLTM1LjJsMTIuOS0xMi45Yy0xNS40LTEuNi0zOS4zLTUuNy01Ni42LTE2LjgtMjAuMy0xMy4zLTI5LjMtMjAuOS0yMS40LTM3IDQuNi05LjEgMTcuMy0xNi44IDM0LjEtMy42IDAgMCAyMi43IDE4IDU5LjMgMThzNTkuMy0xOCA1OS4zLTE4elwiXVxufTtcbnZhciBmYU9kbm9rbGFzc25pa2lTcXVhcmUgPSBmYVNxdWFyZU9kbm9rbGFzc25pa2k7XG52YXIgZmFNYXJrZG93biA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdtYXJrZG93bicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjYwZlwiLCBcIk01OTMuOCA1OS4xbC01NDcuNiAwQzIwLjcgNTkuMSAwIDc5LjggMCAxMDUuMkwwIDQwNi43YzAgMjUuNSAyMC43IDQ2LjIgNDYuMiA0Ni4ybDU0Ny43IDBjMjUuNSAwIDQ2LjItMjAuNyA0Ni4xLTQ2LjFsMC0zMDEuNmMwLTI1LjQtMjAuNy00Ni4xLTQ2LjItNDYuMXpNMzM4LjUgMzYwLjZsLTYxLjUgMCAwLTEyMC02MS41IDc2LjktNjEuNS03Ni45IDAgMTIwLTYxLjcgMCAwLTIwOS4yIDYxLjUgMCA2MS41IDc2LjkgNjEuNS03Ni45IDYxLjUgMCAwIDIwOS4yIC4yIDB6bTEzNS4zIDMuMWwtOTIuMy0xMDcuNyA2MS41IDAgMC0xMDQuNiA2MS41IDAgMCAxMDQuNiA2MS41IDAtOTIuMiAxMDcuN3pcIl1cbn07XG52YXIgZmFUeXBvMyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd0eXBvMycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjQyYlwiLCBcIk0xNzguNyA3OC40YzAtMjQuNyA1LjQtMzIuNCAxMy45LTM5LjQtNjkuNSA4LjUtMTQ5LjMgMzQtMTc2LjMgNjYuNC01LjQgNy43LTkuMyAyMC44LTkuMyAzNy4xIDAgMTAzLjUgMTA2LjggMzM3LjUgMTg0LjEgMzM3LjUgMzYuMyAwIDk3LjMtNTkuNSAxNDYuNy0xMzktNyAyLjMtMTEuNiAyLjMtMTguNSAyLjMtNTcuMiAwLTE0MC42LTE5OC41LTE0MC42LTI2NC45ek0zMDEuNSAzMmMtMzAuMSAwLTQxLjcgNS40LTQxLjcgMzYuMyAwIDY2LjQgNTMuOCAxOTguNSAxMDEuNyAxOTguNSAyNi4zIDAgNzguOC05OS43IDc4LjgtMTgyLjMgMC00MC45LTY3LTUyLjUtMTM4LjgtNTIuNXpcIl1cbn07XG52YXIgZmFKb29tbGEgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnam9vbWxhJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMWFhXCIsIFwiTS42IDkyLjFjMC0zMy4zIDI2LjgtNjAuMSA1OS44LTYwLjEgMzAgMCA1NC41IDIxLjkgNTkuMiA1MC4yIDMyLjYtNy42IDY3LjEgLjYgOTYuNSAzMGwtNDQuMyA0NC4zYy0yMC41LTIwLjUtNDIuNi0xNi4zLTU1LjQtMy41LTE0LjMgMTQuMy0xNC4zIDM3LjkgMCA1Mi4ybDk5LjUgOTkuNS00NCA0NC4zYy04Ny43LTg3LjItNDkuNy00OS43LTk5LjgtOTkuNy0yNi44LTI2LjUtMzUtNjQuOC0yNC44LTk4LjktMjYuOS01LjgtNDYuNy0yOS43LTQ2LjctNTguM3pNMTMwLjEgMjA4LjVsNDQuMyA0NC4zYzEwLTEwIDg5LjctODkuNyA5OS43LTk5LjggMTQuMy0xNC4zIDM3LjYtMTQuMyA1MS45IDAgMTIuOCAxMi44IDE3IDM1LTMuNSA1NS40bDQ0IDQ0LjNjMzEuMi0zMS4yIDM4LjUtNjcuNiAyOC45LTEwMS4yIDI5LjItNC4xIDUxLjktMjkuMiA1MS45LTU5LjUgMC0zMy4yLTI2LjgtNjAuMS01OS44LTYwLjEtMzAuMyAwLTU1LjQgMjIuNS01OS41IDUxLjYtMzMuOC05LjktNzEuNy0xLjUtOTguMyAyNS4xLTE4LjMgMTkuMS03MS4xIDcxLjUtOTkuNiA5OS45ek0zOTYuNCAzNjAuN2M4LjItMzIuNy0uOS02OC41LTI2LjMtOTMuOS0xMS44LTEyLjIgNSA0LjctOTkuNS05OS43bC00NC4zIDQ0LjMgOTkuNyA5OS43YzE0LjMgMTQuMyAxNC4zIDM3LjYgMCA1MS45LTEyLjggMTIuOC0zNSAxNy01NS40LTMuNWwtNDQgNDQuM2MyNy42IDMwLjIgNjggMzguOCAxMDIuNyAyOCA1LjUgMjcuNCAyOS43IDQ4LjEgNTguOSA0OC4xIDMzIDAgNTkuOC0yNi44IDU5LjgtNjAuMSAwLTMwLjItMjIuNS01NS01MS42LTU5LjF6bS04NC4zLTUzLjFsLTQ0LTQ0LjNjLTg3IDg2LjQtNTAuNCA1MC40LTk5LjcgOTkuOC0xNC4zIDE0LjMtMzcuNiAxNC4zLTUxLjkgMC0xMy4xLTEzLjQtMTYuOS0zNS4zIDMuMi01NS40bC00NC00NC4zYy0zMC4yIDMwLjItMzggNjUuMi0yOS41IDk4LjMtMjYuNyA2LTQ2LjIgMjkuOS00Ni4yIDU4LjIgMCAzMy4zIDI2LjggNjAuMSA1OS44IDYwLjEgMjguNiAwIDUyLjUtMTkuOCA1OC42LTQ2LjcgMzIuNyA4LjIgNjguNS0uNiA5NC4yLTI2IDMyLjEtMzIgMTIuMi0xMi40IDk5LjUtOTkuN3pcIl1cbn07XG52YXIgZmFXZWl4aW4gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnd2VpeGluJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMWQ3XCIsIFwiTTM4NS4yIDE2Ny42YzYuNCAwIDEyLjYgLjMgMTguOCAxLjEtMTYuNi03OC40LTEwMC43LTEzNi43LTE5Ni4zLTEzNi43LTEwNy4yIDAtMTk0LjcgNzIuOC0xOTQuNyAxNjUuNCAwIDUzLjQgMjkuMyA5Ny41IDc3LjkgMTMxLjZsLTE5LjMgNTguNiA2OC0zNC4xYzI0LjQgNC44IDQzLjggOS43IDY4LjIgOS43IDYuMiAwIDEyLjEtLjMgMTguMy0uOC00LTEyLjktNi4yLTI2LjYtNi4yLTQwLjgtLjEtODQuOSA3Mi45LTE1NCAxNjUuMy0xNTR6TTI4MC43IDExNC43YzE0LjUgMCAyNC4yIDkuNyAyNC4yIDI0LjQgMCAxNC41LTkuNyAyNC4yLTI0LjIgMjQuMi0xNC44IDAtMjkuMy05LjctMjkuMy0yNC4yIC4xLTE0LjcgMTQuNi0yNC40IDI5LjMtMjQuNHpNMTQ0LjMgMTYzLjNjLTE0LjUgMC0yOS4zLTkuNy0yOS4zLTI0LjIgMC0xNC44IDE0LjgtMjQuNCAyOS4zLTI0LjQgMTQuOCAwIDI0LjQgOS43IDI0LjQgMjQuNCAwIDE0LjYtOS42IDI0LjItMjQuNCAyNC4yek01NjMgMzE5LjRjMC03Ny45LTc3LjktMTQxLjMtMTY1LjQtMTQxLjMtOTIuNyAwLTE2NS40IDYzLjQtMTY1LjQgMTQxLjNTMzA1IDQ2MC43IDM5Ny42IDQ2MC43YzE5LjMgMCAzOC45LTUuMSA1OC42LTkuOWw1My40IDI5LjMtMTQuOC00OC42QzUzNCA0MDIuMSA1NjMgMzYzLjIgNTYzIDMxOS40ek0zNDMuOSAyOTQuOWMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC44IDAgMjQuNCA5LjcgMjQuNCAxOS4zIDAgMTAtOS43IDE5LjYtMjQuNCAxOS42em0xMDcuMSAwYy05LjcgMC0xOS4zLTkuNy0xOS4zLTE5LjYgMC05LjcgOS43LTE5LjMgMTkuMy0xOS4zIDE0LjUgMCAyNC40IDkuNyAyNC40IDE5LjMgLjEgMTAtOS45IDE5LjYtMjQuNCAxOS42elwiXVxufTtcbnZhciBmYUdydW50ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2dydW50JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmM2FkXCIsIFwiTTYxLjYgMTg5LjNjLTEuMSAxMCA1LjIgMTkuMSA1LjIgMTkuMSAuNy03LjUgMi4yLTEyLjggNC0xNi42IC40IDEwLjMgMy4yIDIzLjUgMTIuOCAzNC4xIDYuOSA3LjYgMzUuNiAyMy4zIDU0LjkgNi4xIDEgMi40IDIuMSA1LjMgMyA4LjUgMi45IDEwLjMtMi43IDI1LjMtMi43IDI1LjNzMTUuMS0xNy4xIDEzLjktMzIuNWMxMC44LS41IDIxLjQtOC40IDIxLjEtMTkuNSAwIDAtMTguOSAxMC40LTM1LjUtOC44LTkuNy0xMS4yLTQwLjktNDItODMuMS0zMS44IDQuMyAxIDguOSAyLjQgMTMuNSA0LjFsLS4xIDBjLTQuMiAyLTYuNSA3LjEtNyAxMnptMjguMy0xLjhjMTkuNSAxMSAzNy40IDI1LjcgNDQuOSAzNy01LjcgMy4zLTIxLjcgMTAuNC0zOC0xLjctMTAuMy03LjYtOS44LTI2LjItNi45LTM1LjN6TTIzMiAyMzMuM2MtMS4yIDE1LjUgMTMuOSAzMi41IDEzLjkgMzIuNXMtNS42LTE1LTIuNy0yNS4zYy45LTMuMiAyLTYgMy04LjUgMTkuMyAxNy4zIDQ4IDEuNSA1NC44LTYuMSA5LjYtMTAuNiAxMi4zLTIzLjggMTIuOC0zNC4xIDEuOCAzLjggMy40IDkuMSA0IDE2LjYgMCAwIDYuNC05LjEgNS4yLTE5LjEtLjYtNS0yLjktMTAtNy0xMS44bC0uMSAwYzQuNi0xLjggOS4yLTMuMiAxMy41LTQuMS00Mi4zLTEwLjItNzMuNCAyMC42LTgzLjEgMzEuOC0xNi43IDE5LjItMzUuNSA4LjgtMzUuNSA4LjgtLjIgMTAuOSAxMC40IDE4LjkgMjEuMiAxOS4zem02Mi43LTQ1LjhjMyA5LjEgMy40IDI3LjctNyAzNS40LTE2LjMgMTIuMS0zMi4yIDUtMzcuOSAxLjYgNy41LTExLjQgMjUuNC0yNiA0NC45LTM3em0tMTM0LjQgMjMxbC0yOS40IDBjLTUuNSAwLTguMiAxLjYtOS41IDIuOS0xLjkgMi0yLjIgNC43LS45IDguMSAzLjUgOS4xIDExLjQgMTYuNSAxMy43IDE4LjYgMy4xIDIuNyA3LjUgNC4zIDExLjggNC4zIDQuNCAwIDguMy0xLjcgMTEtNC42IDcuNS04LjIgMTEuOS0xNy4xIDEzLTE5LjggLjYtMS41IDEuMy00LjUtLjktNi44LTEuOC0xLjgtNC43LTIuNy04LjgtMi43ek0zNDkuNSAzMTcuM2MtMi40IDE3LjktMTMgMzMuOC0yNC42IDQzLjctMy4xLTIyLjctMy43LTU1LjUtMy43LTYyLjQgMC0xNC43IDkuNS0yNC41IDEyLjItMjYuMSAyLjUtMS41IDUuNC0zIDguMy00LjYgMTgtOS42IDQwLjQtMjEuNiA0MC40LTQzLjcgMC0xNi4yLTkuMy0yMy4yLTE1LjQtMjcuOC0uOC0uNi0xLjUtMS4xLTIuMi0xLjctMi4xLTEuNy0zLjctMy00LjMtNC40LTQuNC05LjgtMy42LTM0LjItMS43LTM3LjYgLjYtLjYgMTYuNy0yMC45IDExLjgtMzkuMi0yLTcuNC02LjktMTMuMy0xNC4xLTE3LTUuMy0yLjctMTEuOS00LjItMTkuNS00LjUtLjEtMi0uNS0zLjktLjktNS45LS42LTIuNi0xLjEtNS4zLS45LTguMSAuNC00LjcgLjgtOSAyLjItMTEuMyA4LjQtMTMuMyAyOC44LTE3LjYgMjktMTcuNmwxMi4zLTIuNC04LjEtOS41Yy0uMS0uMi0xNy4zLTE3LjUtNDYuMy0xNy41LTcuOSAwLTE2IDEuMy0yNC4xIDMuOS0yNC4yIDcuOC00Mi45IDMwLjUtNDkuNCAzOS4zLTMuMS0xLTYuMy0xLjktOS42LTIuNy00LjItMTUuOCA5LTM4LjUgOS0zOC41cy0xMy42LTMtMzMuNyAxNS4yYy0yLjYtNi41LTguMS0yMC41LTEuOC0zNy4yLTI5LjUgMTAuNC0zNi45IDI2LjMtMzkuMSA0MC43LTcuNi01LjQtNi43LTIzLjEtNy4yLTI3LjYtNy41IC45LTI5LjIgMjEuOS0yOC4yIDQ4LjMtMiAuNS0zLjkgMS4xLTUuOSAxLjctNi41LTguOC0yNS4xLTMxLjUtNDkuNC0zOS4zLTcuOS0yLjItMTYtMy41LTIzLjktMy41LTI5IDAtNDYuMSAxNy4zLTQ2LjMgMTcuNWwtOC4xIDkuNCAxMi4zIDIuNGMuMiAwIDIwLjYgNC4zIDI5IDE3LjYgMS40IDIuMiAxLjggNi42IDIuMiAxMS4zIC4yIDIuOC0uNCA1LjUtLjkgOC4xLS40IDEuOS0uOCAzLjktLjkgNS45LTcuNyAuMy0xNC4yIDEuOC0xOS41IDQuNS03LjIgMy43LTEyLjEgOS42LTE0LjEgMTctNSAxOC4yIDExLjIgMzguNSAxMS44IDM5LjIgMS45IDMuNCAyLjcgMjcuOC0xLjcgMzcuNi0uNiAxLjQtMi4yIDIuNy00LjMgNC40LS43IC41LTEuNCAxLjEtMi4yIDEuNy02LjEgNC42LTE1LjQgMTEuNy0xNS40IDI3LjggMCAyMi4xIDIyLjQgMzQuMSA0MC40IDQzLjcgMyAxLjYgNS44IDMuMSA4LjMgNC42IDIuNyAxLjYgMTIuMiAxMS40IDEyLjIgMjYuMSAwIDYuOS0uNiAzOS43LTMuNyA2Mi40LTExLjYtOS45LTIyLjItMjUuOS0yNC42LTQzLjggMCAwLTI5LjIgMjIuNi0yMC42IDcwLjggNS4yIDI5LjUgMjMuMiA0Ni4xIDQ3IDU0LjcgOC44IDE5LjEgMjkuNCA0NS43IDY3LjMgNDkuNiAxNC40IDExLjggMzQuNCAxOS41IDYzLjYgMTkuNWwuMiAwYzI5LjEgMCA0OS4xLTcuNyA2My42LTE5LjUgMzcuOS0zLjkgNTguNS0zMC41IDY3LjMtNDkuNiAyMy44LTguNyA0MS43LTI1LjIgNDctNTQuNyA4LjItNDguNC0yMS4xLTcwLjktMjEuMS03MC45ek0zMDYgMzcuN2M1LjYtMS44IDExLjYtMi43IDE3LjctMi43IDExIDAgMTkuOSAzIDI0LjcgNS0zLjEgMS40LTYuNCAzLjItOS43IDUuMy0yLjQtLjQtNS42LS44LTkuMi0uOC0xMC41IDAtMjAuNSAzLjEtMjguNyA4LjktMTIuMyA4LjctMTggMTYuOS0yMC43IDIyLjQtMi4yLTEuMy00LjUtMi41LTcuMS0zLjctMS42LS44LTMuMS0xLjUtNC43LTIuMiA2LjEtOS4xIDE5LjktMjYuNSAzNy43LTMyLjJ6bTIxIDE4LjJjLS44IDEtMS42IDIuMS0yLjMgMy4yLTMuMyA1LjItMy45IDExLjYtNC40IDE3LjgtLjUgNi40LTEuMSAxMi41LTQuNCAxNy00LjIgLjgtOC4xIDEuNy0xMS41IDIuNy0yLjMtMy4xLTUuNi03LTEwLjUtMTEuMiAxLjQtNC44IDUuNS0xNi4xIDEzLjUtMjIuNSA1LjYtNC4zIDEyLjItNi43IDE5LjYtN3pNNDUuOSA0NS4zYy0zLjMtMi4yLTYuNi00LTkuNy01LjMgNC44LTIgMTMuNy01IDI0LjctNSA2LjEgMCAxMiAuOSAxNy43IDIuNyAxNy44IDUuOCAzMS42IDIzLjIgMzcuNyAzMi4xLTEuNiAuNy0zLjIgMS40LTQuOCAyLjItMi41IDEuMi00LjkgMi41LTcuMSAzLjctMi42LTUuNC04LjMtMTMuNy0yMC43LTIyLjQtOC4zLTUuOC0xOC4yLTguOS0yOC44LTguOS0zLjQgLjEtNi42IC41LTkgLjl6TTkwLjYgODUuNGMtNC45IDQuMi04LjMgOC0xMC41IDExLjItMy40LS45LTcuMy0xLjktMTEuNS0yLjctMy4zLTQuNC0zLjgtMTAuNS00LjMtMTYuOS0uNS02LjItMS4xLTEyLjYtNC40LTE3LjgtLjctMS4xLTEuNS0yLjItMi4zLTMuMiA3LjQgLjMgMTQgMi42IDE5LjUgNyA4IDYuMyAxMi4xIDE3LjYgMTMuNSAyMi40ek01OC40IDI1OS45Yy0yLjctMS42LTUuNi0zLjEtOC40LTQuNi0xNC45LTgtMzAuMi0xNi4zLTMwLjItMzAuNSAwLTExLjEgNC4zLTE0LjYgOC45LTE4LjJsLjUtLjRjLjctLjYgMS40LTEuMiAyLjItMS44LS45IDcuMi0xLjkgMTMuMy0yLjcgMTQuOSAwIDAgMTIuMS0xNSAxNS43LTQ0LjMgMS40LTExLjUtMS4xLTM0LjMtNS4xLTQzIC4yIDQuOSAwIDkuOC0uMyAxNC40LS40LS44LS44LTEuNi0xLjMtMi4yLTMuMi00LTExLjgtMTcuNS05LjQtMjYuNiAuOS0zLjUgMy4xLTYgNi43LTcuOCAzLjgtMS45IDguOC0yLjkgMTUuMS0yLjkgMTIuMyAwIDI1LjkgMy43IDMyLjkgNiAyNS4xIDggNTUuNCAzMC45IDY0LjEgMzcuNyAuMiAuMiAuNCAuMyAuNCAuM2w1LjYgMy45LTMuNS01LjhjLS4yLS4zLTE5LjEtMzEuNC01My4yLTQ2LjUgMi0yLjkgNy40LTguMSAyMS42LTE1LjEgMjEuNC0xMC41IDQ2LjUtMTUuOCA3NC4zLTE1LjggMjcuOSAwIDUyLjkgNS4zIDc0LjMgMTUuOCAxNC4yIDYuOSAxOS42IDEyLjIgMjEuNiAxNS4xLTM0IDE1LjEtNTIuOSA0Ni4yLTUzLjEgNDYuNWwtMy41IDUuOCA1LjYtMy45cy4yLS4xIC40LS4zYzguNy02LjggMzktMjkuOCA2NC4xLTM3LjcgNy0yLjIgMjAuNi02IDMyLjktNiA2LjMgMCAxMS4zIDEgMTUuMSAyLjkgMy41IDEuOCA1LjcgNC40IDYuNyA3LjggMi41IDkuMS02LjEgMjIuNi05LjQgMjYuNi0uNSAuNi0uOSAxLjMtMS4zIDIuMi0uMy00LjYtLjUtOS41LS4zLTE0LjQtNCA4LjgtNi41IDMxLjUtNS4xIDQzIDMuNiAyOS4zIDE1LjcgNDQuMyAxNS43IDQ0LjMtLjgtMS42LTEuOC03LjctMi43LTE0LjkgLjcgLjYgMS41IDEuMiAyLjIgMS44bC41IC40YzQuNiAzLjcgOC45IDcuMSA4LjkgMTguMiAwIDE0LjItMTUuNCAyMi41LTMwLjIgMzAuNS0yLjkgMS41LTUuNyAzLjEtOC40IDQuNi04LjcgNS0xOCAxNi43LTE5LjEgMzQuMi0uOSAxNC42IC45IDQ5LjkgMy40IDc1LjktMTIuNCA0LjgtMjYuNyA2LjQtMzkuNyA2LjgtMi00LjEtMy45LTguNS01LjUtMTMuMS0uNy0yLTE5LjYtNTEuMS0yNi40LTYyLjIgNS41IDM5IDE3LjUgNzMuNyAyMy41IDg5LjYtMy41LS41LTcuMy0uNy0xMS43LS43bC0xMTcgMGMtNC40IDAtOC4zIC4zLTExLjcgLjcgNi0xNS45IDE4LjEtNTAuNiAyMy41LTg5LjYtNi44IDExLjItMjUuNyA2MC4zLTI2LjQgNjIuMi0xLjYgNC42LTMuNSA5LTUuNSAxMy4xLTEzLS40LTI3LjItMi0zOS43LTYuOCAyLjUtMjYgNC4zLTYxLjIgMy40LTc1LjktLjktMTcuNC0xMC4zLTI5LjItMTktMzQuMnpNMzUuMSA0MDQuNmMtMTIuMS0yMC04LjctNTQuMS0zLjctNTkuMSAxMC45IDM0LjQgNDcuMiA0NC4zIDc0LjQgNDUuNC0yLjcgNC4yLTUuMiA3LjYtNyAxMGwtMS40IDEuNGMtNy4yIDcuOC04LjYgMTguNS00LjEgMzEuOC0yMi43LS4xLTQ2LjMtOS44LTU4LjItMjkuNXptNDUuNyA0My41YzYgMS4xIDEyLjIgMS45IDE4LjYgMi40IDMuNSA4IDcuNCAxNS45IDEyLjMgMjMuMS0xNC40LTUuOS0yNC40LTE2LTMwLjktMjUuNXptMTExLjUgNTAuMWMtNjAuNi0uMS03OC4zLTQ1LjgtODQuOS02NC43LTMuNy0xMC41LTMuNC0xOC4yIC45LTIzLjEgMi45LTMuMyA5LjUtNy4yIDI0LjYtNy4ybDExOC44IDBjMTUuMSAwIDIxLjggMy45IDI0LjYgNy4yIDQuMiA0LjggNC41IDEyLjYgLjkgMjMuMS02LjYgMTguOC0yNC4zIDY0LjYtODQuOSA2NC43em04MC42LTI0LjZjNC45LTcuMiA4LjgtMTUuMSAxMi4zLTIzLjEgNi40LS41IDEyLjYtMS4zIDE4LjYtMi40LTYuNSA5LjUtMTYuNSAxOS42LTMwLjkgMjUuNXptNzYuNi02OWMtMTIgMTkuNy0zNS42IDI5LjMtNTguMSAyOS43IDQuNS0xMy4zIDMuMS0yNC4xLTQuMS0zMS44LS40LS41LS45LTEtMS40LTEuNS0xLjgtMi40LTQuMy01LjgtNy0xMCAyNy4yLTEuMiA2My41LTExIDc0LjQtNDUuNCA1IDUgOC40IDM5LjEtMy44IDU5ek0xOTIuMiAxODcuN2wuMiAwYzEyLjctLjEgMjcuMi0xNy44IDI3LjItMTcuOC05LjkgNi0xOC44IDguMS0yNy4zIDguMy04LjUtLjItMTcuNC0yLjMtMjcuMy04LjMgMCAwIDE0LjUgMTcuNiAyNy4yIDE3Ljh6bTYxLjcgMjMwLjdsLTI5LjQgMGMtNC4yIDAtNy4yIC45LTguOSAyLjctMi4yIDIuMy0xLjUgNS4yLS45IDYuNyAxIDIuNiA1LjUgMTEuMyAxMyAxOS4zIDIuNyAyLjkgNi42IDQuNSAxMSA0LjVzOC43LTEuNiAxMS44LTQuMmMyLjMtMiAxMC4yLTkuMiAxMy43LTE4LjEgMS4zLTMuMyAxLTYtLjktNy45LTEuMy0xLjMtNC0yLjktOS40LTN6XCJdXG59O1xudmFyIGZhUm9ja3JtcyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdyb2Nrcm1zJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmM2U5XCIsIFwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDEzLjQgNDI3LjVsLTkwIDAtMTEyLTEzMS4zYy0xNy45LTIwLjQtMy45LTU2LjEgMjYuNi01Ni4xbDc1LjMgMC04NC42LTk5LjMtODQuMyA5OC45LTkwIDAgMTQ3LjEtMTcyLjVjMTQuNC0xOC40IDQxLjMtMTcuMyA1NC41IDBMNDEzLjcgMjUyLjNjMTkgMjIuOCAyIDU3LjItMjcuNiA1Ni4xLS42IDAtNzQuMiAuMi03NC4yIC4yTDQxMy40IDQyNy41elwiXVxufTtcbnZhciBmYVVuc3BsYXNoID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3Vuc3BsYXNoJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMDdjXCIsIFwiTTQ0OCAyMzAuMmwwIDI0OS44LTQ0OCAwIDAtMjQ5LjggMTQxLjEgMCAwIDEyNC45IDE2NS43IDAgMC0xMjQuOSAxNDEuMSAwek0zMDYuOSAzMmwtMTY1LjcgMCAwIDEyNC45IDE2NS43IDAgMC0xMjQuOXpcIl1cbn07XG52YXIgZmFTcXVhcmVJbnN0YWdyYW0gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3F1YXJlLWluc3RhZ3JhbScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiaW5zdGFncmFtLXNxdWFyZVwiXSwgXCJlMDU1XCIsIFwiTTE5NC40IDIxMS43YTUzLjMgNTMuMyAwIDEgMCA1OS4yIDg4LjYgNTMuMyA1My4zIDAgMSAwIC01OS4yLTg4LjZ6bTE0Mi4zLTY4LjRjLTUuMi01LjItMTEuNS05LjMtMTguNC0xMi0xOC4xLTcuMS01Ny42LTYuOC04My4xLTYuNS00LjEgMC03LjkgLjEtMTEuMiAuMXMtNy4yIDAtMTEuNC0uMWMtMjUuNS0uMy02NC44LS43LTgyLjkgNi41LTYuOSAyLjctMTMuMSA2LjgtMTguNCAxMnMtOS4zIDExLjUtMTIgMTguNGMtNy4xIDE4LjEtNi43IDU3LjctNi41IDgzLjIgMCA0LjEgLjEgNy45IC4xIDExLjFzMCA3LS4xIDExLjFjLS4yIDI1LjUtLjYgNjUuMSA2LjUgODMuMiAyLjcgNi45IDYuOCAxMy4xIDEyIDE4LjRzMTEuNSA5LjMgMTguNCAxMmMxOC4xIDcuMSA1Ny42IDYuOCA4My4xIDYuNSA0LjEgMCA3LjktLjEgMTEuMi0uMXM3LjIgMCAxMS40IC4xYzI1LjUgLjMgNjQuOCAuNyA4Mi45LTYuNSA2LjktMi43IDEzLjEtNi44IDE4LjQtMTJzOS4zLTExLjUgMTItMTguNGM3LjItMTggNi44LTU3LjQgNi41LTgzIDAtNC4yLS4xLTguMS0uMS0xMS40czAtNy4xIC4xLTExLjRjLjMtMjUuNSAuNy02NC45LTYuNS04My0yLjctNi45LTYuOC0xMy4xLTEyLTE4LjRsMCAuMnptLTY3LjEgNDQuNWMxOC4xIDEyLjEgMzAuNiAzMC45IDM0LjkgNTIuMnMtLjIgNDMuNS0xMi4zIDYxLjZjLTYgOS0xMy43IDE2LjYtMjIuNiAyMi42cy0xOSAxMC4xLTI5LjYgMTIuMmMtMjEuMyA0LjItNDMuNS0uMi02MS42LTEyLjNzLTMwLjYtMzAuOS0zNC45LTUyLjIgLjItNDMuNSAxMi4yLTYxLjYgMzAuOS0zMC42IDUyLjItMzQuOSA0My41IC4yIDYxLjYgMTIuMmwuMSAwem0yOS4yLTEuM2MtMy4xLTIuMS01LjYtNS4xLTcuMS04LjZzLTEuOC03LjMtMS4xLTExLjEgMi42LTcuMSA1LjItOS44IDYuMS00LjUgOS44LTUuMiA3LjYtLjQgMTEuMSAxLjEgNi41IDMuOSA4LjYgNyAzLjIgNi44IDMuMiAxMC42YzAgMi41LS41IDUtMS40IDcuM3MtMi40IDQuNC00LjEgNi4yLTMuOSAzLjItNi4yIDQuMi00LjggMS41LTcuMyAxLjVjLTMuOCAwLTcuNS0xLjEtMTAuNi0zLjJsLS4xIDB6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zNTcgMzg5Yy0xOC43IDE4LjctNDEuNCAyNC42LTY3IDI1LjktMjYuNCAxLjUtMTA1LjYgMS41LTEzMiAwLTI1LjYtMS4zLTQ4LjMtNy4yLTY3LTI1LjlzLTI0LjYtNDEuNC0yNS44LTY3Yy0xLjUtMjYuNC0xLjUtMTA1LjYgMC0xMzIgMS4zLTI1LjYgNy4xLTQ4LjMgMjUuOC02N3M0MS41LTI0LjYgNjctMjUuOGMyNi40LTEuNSAxMDUuNi0xLjUgMTMyIDAgMjUuNiAxLjMgNDguMyA3LjEgNjcgMjUuOHMyNC42IDQxLjQgMjUuOCA2N2MxLjUgMjYuMyAxLjUgMTA1LjQgMCAxMzEuOS0xLjMgMjUuNi03LjEgNDguMy0yNS44IDY3bDAgLjF6XCJdXG59O1xudmFyIGZhSW5zdGFncmFtU3F1YXJlID0gZmFTcXVhcmVJbnN0YWdyYW07XG52YXIgZmFGaXJzdE9yZGVyQWx0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ZpcnN0LW9yZGVyLWFsdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjUwYVwiLCBcIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgNy44YTI0MC4yIDI0MC4yIDAgMSAxIDAgNDgwLjQgMjQwLjIgMjQwLjIgMCAxIDEgMC00ODAuNHptMCAyMC41YTIxOS43IDIxOS43IDAgMSAwIDAgNDM5LjQgMjE5LjcgMjE5LjcgMCAxIDAgMC00MzkuNHptMCA4LjJhMjExLjUgMjExLjUgMCAxIDEgMCA0MjMgMjExLjUgMjExLjUgMCAxIDEgMC00MjN6bTE4Ni4yIDI2MGMtNC40IDE3LjEtMTEuMiAzMy41LTIwLjEgNDguN2wtNzQuMS0zNS45IDYxLjUgNTQuOGMtMTAuNiAxNC4xLTIzLjIgMjYuNi0zNy4yIDM3LjNsLTU0LjgtNjEuNiAzNS45IDc0LjNjLTE1LjIgOS0zMS42IDE1LjgtNDguNiAyMC4ybC0yNy4zLTc4LjUgNC44IDgyLjljLTguNiAxLjItMTcuNCAxLjgtMjYuMyAxLjhzLTE3LjctLjYtMjYuMy0xLjhsNC44LTgyLjUtMjcuMiA3OGMtMTcuMS00LjUtMzMuNC0xMS4zLTQ4LjctMjAuMmwzNS45LTc0LjMtNTQuOSA2MS42Yy0xNC0xMC43LTI2LjYtMjMuMi0zNy4yLTM3LjNsNjEuNi01NC45LTc0LjMgMzUuOUM4MC43IDMzOCA3NCAzMjEuNyA2OS41IDMwNC42bDc3LjgtMjcuMS04Mi4yIDQuOGMtMS4yLTguNi0xLjgtMTcuMy0xLjgtMjYuMiAwLTkgLjYtMTcuOCAxLjgtMjYuNWw4Mi40IDQuOC03Ny45LTI3LjJjNC41LTE3LjEgMTEuMy0zMy41IDIwLjItNDguN2w3NC4yIDM1LjktNjEuNS01NC45YzEwLjctMTQgMjMuMi0yNi42IDM3LjMtMzcuMmw1NC44IDYxLjUtMzUuOC03NC4yYzE1LjItOC45IDMxLjYtMTUuNyA0OC42LTIwLjFsMjYuOSA3Ny4yLTQuNy04MS42YzguNi0xLjIgMTcuNC0xLjggMjYuMy0xLjhzMTcuNyAuNiAyNi4zIDEuOGwtNC43IDgyLjIgMjctNzcuOGMxNy4zIDQuNSAzMy42IDExLjQgNDguNiAyMC4ybC0zNS44IDc0LjEgNTQuNy02MS41YzE0LjEgMTAuNyAyNi42IDIzLjIgMzcuMiAzNy4ybC02MS40IDU0LjggNzQuMS0zNS45YzguOSAxNS4yIDE1LjcgMzEuNiAyMC4yIDQ4LjZsLTc3LjggMjcuMSA4Mi4yLTQuN2MxLjIgOC43IDEuOCAxNy41IDEuOCAyNi41IDAgOC45LS42IDE3LjYtMS44IDI2LjJsLTgyLjEtNC43IDc3LjcgMjcuMXpcIl1cbn07XG52YXIgZmFGdWxjcnVtID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2Z1bGNydW0nLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImY1MGJcIiwgXCJNNjMuOCAxNjQuMUwyOC40IDIwNy43LTcgMTY0LjEgMjguNCAxMjAuNiA2My44IDE2NC4xek0xMTIuMiAwbC0yMC41IDE5OC4yLTUxIDU3LjggNTEgNTcuOCAyMC41IDE5OC4yIDAtMjExLjEtNDEuMS00NC45IDQxLjEtNDQuOSAwLTIxMS4xem03OS43IDE2NC4xbDM1LjQgNDMuNiAzNS40LTQzLjYtMzUuNC00My41LTM1LjQgNDMuNXptLTQ4LjUgNDdsNDEuMSA0NC45LTQxLjEgNDQuOSAwIDIxMS4xIDIwLjYtMTk4LjIgNTEtNTcuOC01MS01Ny44LTIwLjYtMTk4LjIgMCAyMTEuMXpcIl1cbn07XG52YXIgZmFCcmF2ZVJldmVyc2UgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYnJhdmUtcmV2ZXJzZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTYzZFwiLCBcIk0yOTguNSAwYzMgMCA1LjggMS4zIDcuOCAzLjZsMzguMSA0NGMuNS0uMSAxLS4yIDEuNS0uMyA5LjItMS42IDE4LjYtMi4yIDI3LjctMS4yIDExLjYgMS40IDIxLjUgNS40IDI4LjkgMTIuOSA3LjcgNy44IDE1LjQgMTUuOCAyMi42IDIzLjYgMi41IDIuNyA0LjkgNS4yIDYuOSA3LjQgLjcgLjggMS40IDEuNSAxLjkgMiAzLjQgMy43IDQuMiA4LjEgMi43IDExLjlsLTkuOCAyNC42IDEzLjEgMzguMWMuNyAyIC44IDQuMSAuMiA2LjItLjEgLjQtLjEgLjQtLjUgMi4xbC0xLjUgNS44Yy0xLjYgNi4zLTMuNSAxMy4zLTUuNCAyMC45LTUuNiAyMS42LTExLjIgNDMuMi0xNi40IDYzLjQtMTIuOSA0OS45LTIxLjQgODIuNy0yMy40IDkwLjktMTEuMSA0NC41LTE5LjkgNjAtNDguMyA4MC4zLTI0LjkgMTcuOC03Ni44IDUzLjYtODYuOCA2MC0xIC42LTIgMS4zLTMuNCAyLjMtLjUgLjQtMy4yIDIuMi0zLjkgMi43LTQuOSAzLjMtOC4zIDUuNS0xMi4xIDcuMy00LjcgMi4yLTkuMyAzLjUtMTMuOSAzLjVzLTkuMS0xLjItMTMuOS0zLjVjLTMuNy0xLjgtNy4yLTMuOS0xMi4xLTcuMy0uOC0uNS0zLjQtMi40LTMuOS0yLjctMS40LTEtMi41LTEuNy0zLjQtMi4zLTEwLTYuNC02MS45LTQyLjEtODYuOC02MC0yOC40LTIwLjQtMzcuMi0zNS44LTQ4LjMtODAuMy0yLTguMi0xMC41LTQxLTIzLjMtOTAuNS01LjMtMjAuNi0xMC45LTQyLjItMTYuNS02My44LTItNy42LTMuOC0xNC42LTUuNC0yMC45bC0xLjUtNS44LS41LTIuMWMtLjUtMi0uNC00LjIgLjItNi4ybDEzLjEtMzguMS05LjktMjQuNWMtMS41LTMuOC0uNy04LjIgMi0xMS4yIDEuMi0xLjMgMS44LTIgMi42LTIuOCAyLTIuMiA0LjQtNC43IDYuOS03LjQgNy4zLTcuNyAxNS0xNS43IDIyLjctMjMuNSA3LjQtNy41IDE3LjMtMTEuNiAyOC45LTEyLjkgOS4xLTEuMSAxOC41LS41IDI3LjcgMS4yIC41IC4xIDEgLjIgMS41IC4zbDM4LjEtNDRjMi0yLjQgNC44LTMuNyA3LjgtMy43bDE0OCAwem0tNC43IDIxLjFsLTEzOC42IDAtMzkuMSA0NS4xYy0yLjYgMy02LjcgNC4zLTEwLjYgMy4yLS4yLS4xLS43LS4yLTEuNS0uNC0xLjMtLjMtMi45LS42LTQuNS0uOS03LjQtMS4zLTE0LjktMS44LTIxLjctMS03LjMgLjktMTMgMy4yLTE2LjYgNi45LTcuNiA3LjctMTUuMiAxNS42LTIyLjMgMjMuMy0xLjcgMS44LTMuMyAzLjUtNC44IDUuMWw4LjggMjJjMSAyLjQgMSA1IC4yIDcuNUwyOS43IDE3MC42Yy40IDEuNCAuNSAxLjkgMS4yIDQuOCAxLjYgNi4zIDMuNSAxMy4zIDUuNCAyMC45IDUuNiAyMS42IDExLjIgNDMuMiAxNi40IDYzLjQgMTIuOSA1MCAyMS40IDgyLjggMjMuNCA5MSAxMC4xIDQwLjEgMTYuNCA1MS4zIDQwLjIgNjguMyAyNC42IDE3LjYgNzYuMyA1My4yIDg1LjkgNTkuMyAxLjIgLjggMi41IDEuNiA0IDIuNyAuNiAuNCAzLjIgMi4yIDMuOSAyLjcgNCAyLjggNi43IDQuNCA5LjIgNS42IDIuMiAxIDMuOSAxLjUgNS4xIDEuNXMyLjktLjUgNS4xLTEuNWMyLjUtMS4yIDUuMi0yLjggOS4yLTUuNiAuNy0uNSAzLjMtMi4zIDMuOS0yLjcgMS42LTEuMSAyLjgtMS45IDQtMi43IDkuNi02LjEgNjEuMy00MS43IDg1LjktNTkuMyAyMy44LTE3LjEgMzAuMi0yOC4yIDQwLjEtNjguMyAyLjEtOC4zIDEwLjUtNDEuMSAyMy4zLTkwLjcgNS4zLTIwLjYgMTAuOS00Mi4yIDE2LjUtNjMuOCAyLTcuNiAzLjgtMTQuNiA1LjQtMjAuOSAuNy0yLjkgLjktMy40IDEuMi00LjhsLTEzLjMtMzguOGMtLjgtMi40LS44LTUuMSAuMi03LjVsOC44LTIyYy0xLjUtMS42LTMuMS0zLjMtNC44LTUuMS03LjItNy42LTE0LjctMTUuNS0yMi4zLTIzLjMtMy43LTMuNy05LjMtNi0xNi42LTYuOS02LjgtLjgtMTQuNC0uMy0yMS43IDEtMS43IC4zLTMuMiAuNi00LjUgLjktLjggLjItMS4zIC4zLTEuNSAuNC0zLjggMS4xLTcuOS0uMi0xMC42LTMuMkwyOTMuOCAyMS4xek0yMjQuNSAzMTZjMi44IDAgMjAuOSA2LjUgMzUuNCAxNC4xczI1IDEzIDI4LjMgMTUuMiAxLjMgNi4yLTEuNyA4LjQtNDQuMSAzNC42LTQ4LjEgMzguMi05LjggOS41LTEzLjggOS41LTkuOC01LjktMTMuOC05LjUtNDUuMS0zNi00OC4xLTM4LjItNS4xLTYuMi0xLjctOC40IDEzLjktNy41IDI4LjMtMTUuMiAzMi41LTE0LjEgMzUuNC0xNC4xbC0uMiAwem0uMS0yMzAuN2MuNyAwIDguOCAuMiAyMC41IDQuMiAxMi4zIDQuMiAyNS43IDkuNCAzMS45IDkuNHM1MS45LTguOSA1MS45LTguOSA1NC4yIDY2LjcgNTQuMiA4MS02LjggMTgtMTMuNyAyNS40LTM2LjggMzkuOC00MC43IDQzLjktMTEuOSAxMC41LTcuMSAyMS44IDExLjcgMjUuOCAzLjkgNDAuNC0yMSAyNC40LTI5LjQgMjIuOC0yOC40LTEyLjItMzUuNy0xNy4xLTMwLjUtMjQuMy0zMC41LTMxLjggMjQtMjAuOCAyOC40LTIzLjkgMjQuNy0xNC44IDI1LjEtMTkuNCAuMy02LTUuNy0xNy40LTE2LjctMjYuNy0xNC45LTM2LjggMTkuMS0xNS40IDMxLjUtMjAuMiAzNi4yLTEzLjcgMzkuMi0xNS4xIDIuMi0yLjctNi44LTMuNi0zNC42LTQuMy00Ni4xLTEuMS0zMS4yIDguMi0zMi44IDEwLjktMyAyLjctMS40IDExLjggMTAuMSA1Mi44IDEwLjkgNjAuNiAyLjQgMTIuOS01LjggMTQuOC0yMi4xIDUuMi0yNi44IDUuMi0xOC42LTMuMy0yNi44LTUuMi02LjYtNy01LjgtMTQuOCA5LjMtNTEuNSAxMC45LTYwLjYgLjItOS4yLTEuNC0xMS44LTIxLjMtNy42LTMyLjgtMTAuOS0zNy4xIC4yLTQ2LjEgMS4xLTkuOCAyLjItNi44IDMuNiAyNi44IDEwLjQgMzkuMiAxNS4xIDI5LjcgMTAgMzEuNSAyMC4yLTkgMjUuNC0xNC45IDM2LjgtNi4xIDEyLjgtNS43IDE3LjQgMjAuNiAxNi40IDI1LjEgMTkuNCAyOC40IDE2LjQgMjguNCAyMy45LTIzLjIgMjctMzAuNSAzMS44LTI3LjIgMTUuNC0zNS43IDE3LjEtMjEuNy04LjItMjkuNC0yMi44LS44LTI5LjEgMy45LTQwLjQtMy4zLTE3LjctNy4xLTIxLjgtMzMuOC0zNi41LTQwLjctNDMuOS0xMy43LTExLjItMTMuNy0yNS40IDU0LjItODEgNTQuMi04MSA0NS44IDguOSA1MS45IDguOSAxOS41LTUuMiAzMS45LTkuNCAyMC42LTQuMiAyMC42LTQuMmwtLjMgMHpcIl1cbn07XG52YXIgZmFBdmlhbmV4ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2F2aWFuZXgnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzNzRcIiwgXCJNNDUzLjIgMzJsLTMxMiAwQzEwMi4zIDMyIDY1IDYzLjIgNTcuOSAxMDEuN0wxLjMgNDEwLjNDLTUuOCA0NDguOCAyMCA0ODAgNTkgNDgwbDMxMiAwYzM4LjkgMCA3Ni4yLTMxLjIgODMuMy02OS43TDUxMSAxMDEuOEM1MTggNjMuMiA0OTIuMiAzMiA0NTMuMiAzMnpNMzk1IDM3OS4zbC0zMiAxMy41LTExNS40LTExMGMtMTQuNyAxMC0yOS4yIDE5LjUtNDEuNyAyNy4xbDIyLjEgNjQuMi0xNy45IDEyLjctNDAuNi02MS01Mi40LTQ4LjEgMTUuNy0xNS40IDU4IDMxLjFjOS4zLTEwLjUgMjAuOC0yMi42IDMyLjgtMzQuOWwtMjAuNS0yOS42LTY4LjgtOTkuOCAxOC44LTI4LjkgOC45LTQuOCAxMDMuMSAxMTIuNCA0LjkgNC41YzE5LjQtMTguOCAzMy44LTMyLjQgMzMuOC0zMi40IDcuNy02LjUgMjEuNS0yLjkgMzAuNyA3LjkgOSAxMC41IDEwLjYgMjQuNyAyLjcgMzEuMy0xLjggMS4zLTE1LjUgMTEuNC0zNS4zIDI1LjZsNC41IDcuMyA5NC45IDExOS40LTYuMyA3Ljl6XCJdXG59O1xudmFyIGZhTnM4ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ25zOCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjNkNVwiLCBcIk0xMDQuMyAyNjkuMmwyNi4xIDAgMC0yNi4yLTI2LjEgMCAwIDI2LjJ6TTE1Ni44IDI0M2wtLjEtMjYuMiAwLS45Yy0uMi0xMC40LTQuNC0yMC4zLTExLjktMjcuNnMtMTcuNS0xMS4zLTI3LjktMTEuMS0yMC4zIDQuNC0yNy42IDExLjgtMTEuMyAxNy41LTExLjIgMjcuOWwwIC4yIDI2LjQgMCAwLS4yYy4xLTMuNCAxLjUtNi42IDMuOS05czUuNy0zLjcgOS4xLTMuNyA2LjcgMS4zIDkuMSAzLjcgMy44IDUuNiAzLjkgOWwwIDI2LjIgMjYuMyAwem01Mi40IDI1LjhjMCAxMi0yLjQgMjMuOC02LjkgMzQuOXMtMTEuMyAyMS4xLTE5LjcgMjkuNi0xOC41IDE1LjItMjkuNiAxOS43LTIyLjkgNi45LTM0LjkgNi45bC0uNiAwYy0yNC4yIDAtNDcuMy05LjYtNjQuNC0yNi43UzI2LjMgMjkzIDI2LjMgMjY4LjhsLTI2LjMgMCAwIC4yYzAgMTUuNCAzLjEgMzAuNyA5IDQ0LjlzMTQuNiAyNy4yIDI1LjUgMzguMSAyMy45IDE5LjUgMzguMSAyNS40IDI5LjUgOC45IDQ0LjkgOC45bC44IDBjMTUuNCAwIDMwLjctMyA0NC45LTlzMjcuMi0xNC42IDM4LjEtMjUuNSAxOS41LTIzLjggMjUuNC0zOC4xIDguOS0yOS41IDguOS00NC45bDAtMjYtMjYuMyAwIDAgMjZ6bS0xNTcuMiAwYy4xIDE3LjMgNyAzMy45IDE5LjIgNDYuMXMyOC44IDE5LjEgNDYuMSAxOS4xIDMzLjktNi45IDQ2LjEtMTkuMSAxOS4yLTI4LjggMTkuMi00Ni4xbC0yNi4zIDBjLS4yIDEwLjItNC40IDIwLTExLjcgMjcuMnMtMTcuMSAxMS4yLTI3LjQgMTEuMi0yMC4xLTQtMjcuNC0xMS4yLTExLjUtMTYuOS0xMS43LTI3LjJsMC0yNi0yNi4zIDAgMC0yNi42Yy4zLTE3LjMgNy40LTMzLjggMTkuNy00NS44czI5LTE4LjggNDYuMy0xOC42IDMzLjggNy4yIDQ1LjkgMTkuNSAxOC45IDI4LjkgMTguOSA0Ni4ybDAgMjUuMyAyNi4zIDAgMC0yNS4zYzAtMjQuMy05LjctNDcuNy0yNi45LTY0LjlzLTQwLjUtMjYuOS02NC45LTI2LjktNDcuNyA5LjctNjQuOSAyNi45LTI2LjkgNDAuNS0yNi45IDY0LjlsMCAyNS40IDI2LjMgMCAwIDI2em00MTguNC03MS4yYzEzLjcgMCAyNC42IDYuNiAzMC4xIDE4LjNsLjcgMS41IDIzLjItMTEuNS0uNi0xLjRjLTgtMTkuMy0yOC41LTMxLjMtNTMuNC0zMS4zLTIzLjEgMC00My42IDExLjQtNTEgMjguNC0uMSAyNi45LS4yIDIzLjkgMCAyNC44IDQuNyAxMSAxNC42IDE5LjQgMjguNyAyNC4yIDYuNSAyIDEzLjEgMy4zIDE5LjggNCA1LjUgLjcgMTAuNiAxLjQgMTUuOCAzLjEgNi40IDIuMSAxMC41IDUuMyAxMi44IDkuOGwwIDkuOWMtMy43IDcuNS0xMy44IDEyLjMtMjUuOCAxMi4zLTE0LjMgMC0yNi02LjktMzEuOS0xOWwtLjctMS41LTIzIDExLjUgLjYgMS40YzcuOSAxOS40IDI5LjYgMzIgNTUuMyAzMiAyMy42IDAgNDQuNi0xMS40IDUyLjMtMjguNGwuMi0yNS45LS4yLS43Yy00LjktMTEtMTUuMi0xOS42LTI4LjktMjQuMi03LjctMi43LTE0LjMtMy42LTIwLjctNC40LTUtLjUtMTAtMS41LTE0LjgtMi45LTYuMy0xLjktMTAuNC01LjEtMTIuNi05LjZsMC04LjRjMy40LTcuNCAxMi45LTEyLjEgMjQuMi0xMi4xbDAgMHpNMjg3LjYgMzExLjNsMjYuMSAwIDAtNjguNC0yNi4xIDAgMCA2OC40ek02MzkuOCAyNThjLTIuOS02LjMtOC4zLTEyLTE1LjQtMTYuNyA1LjYtMy44IDEwLjEtOS4xIDEzLTE1LjNsLjItMjUuMy0uMi0uN2MtNy40LTE2LTI2LjctMjYuNy00OC4yLTI2LjdTNTQ4LjUgMTg0IDU0MS4xIDIwMGwtLjIgMjUuMyAuMiAuN2MyLjkgNi4xIDcuNCAxMS40IDEzIDE1LjMtNy4yIDQuNy0xMi41IDEwLjUtMTUuNCAxNi43bC0uMiAyOC45IC4yIC43YzcuNiAxNiAyNy45IDI2LjcgNTAuNiAyNi43czQzLjEtMTAuNyA1MC42LTI2LjdsLjItMjguOS0uMi0uN3ptLTczLjItNTAuOGMzLjYtNi4zIDEyLjYtMTAuNSAyMi42LTEwLjVzMTkgNC4yIDIyLjYgMTAuNWwwIDEzLjdjLTMuNSA2LjItMTIuNiAxMC4zLTIyLjYgMTAuM3MtMTkuMS00LjItMjIuNi0xMC4zbDAtMTMuN3ptNDcuMyA3Mi4yYy0zLjggNi42LTEzLjMgMTAuOS0yNC43IDEwLjktMTEuMSAwLTIxLTQuNC0yNC43LTEwLjlsMC0xNi4yYzMuNy02LjMgMTMuNS0xMC41IDI0LjctMTAuNSAxMS4zIDAgMjAuOSA0LjEgMjQuNyAxMC41bDAgMTYuMnpNMzc2LjQgMjY2bC01OS44LTg5LjctMjkgMCAwIDQwLjYgMjYuNSAwIDAgLjQgNjIuNSA5NC4xIDI1LjcgMCAwLTEzNS4xLTI1LjkgMCAwIDg5Ljd6XCJdXG59O1xudmFyIGZhU3F1YXJlUGludGVyZXN0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NxdWFyZS1waW50ZXJlc3QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInBpbnRlcmVzdC1zcXVhcmVcIl0sIFwiZjBkM1wiLCBcIk0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw3Mi42IDAtMi4yLS44Yy01LjQtNDguMS0zLjEtNTcuNSAxNS43LTEzNC43IDMuOS0xNiA4LjUtMzUgMTMuOS01Ny45IDAgMC03LjMtMTQuOC03LjMtMzYuNSAwLTcwLjcgNzUuNS03OCA3NS41LTI1IDAgMTMuNS01LjQgMzEuMS0xMS4yIDQ5LjgtMy4zIDEwLjYtNi42IDIxLjUtOS4xIDMyLTUuNyAyNC41IDEyLjMgNDQuNCAzNi40IDQ0LjQgNDMuNyAwIDc3LjItNDYgNzcuMi0xMTIuNCAwLTU4LjgtNDIuMy05OS45LTEwMi42LTk5LjktNjkuOSAwLTExMC45IDUyLjQtMTEwLjkgMTA2LjYgMCAyMS4xIDguMiA0My43IDE4LjMgNTYgMiAyLjQgMi4zIDQuNSAxLjcgNy0xLjEgNC43LTMuMSAxMi45LTQuNyAxOS4yLTEgNC0xLjggNy4zLTIuMSA4LjYtMS4xIDQuNS0zLjUgNS41LTguMiAzLjMtMzAuNi0xNC4zLTQ5LjgtNTkuMS00OS44LTk1LjEgMC03Ny41IDU2LjItMTQ4LjYgMTYyLjItMTQ4LjYgODUuMiAwIDE1MS40IDYwLjcgMTUxLjQgMTQxLjggMCA4NC42LTUzLjMgMTUyLjctMTI3LjQgMTUyLjctMjQuOSAwLTQ4LjMtMTIuOS01Ni4zLTI4LjIgMCAwLTEyLjMgNDYuOS0xNS4zIDU4LjQtNSAxOS4zLTE3LjYgNDIuOS0yNy40IDU5LjNMMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpcIl1cbn07XG52YXIgZmFQaW50ZXJlc3RTcXVhcmUgPSBmYVNxdWFyZVBpbnRlcmVzdDtcbnZhciBmYUJsdWV0b290aEIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYmx1ZXRvb3RoLWInLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImYyOTRcIiwgXCJNMTY0LjkgMjYwTDI1Ny41IDE1Ni43IDExMS42IDAgMTExLjYgMjA2LjMgMjUuNCAxMjAuMi02IDE1MS42IDEwMi4xIDI2MC02IDM2OC40IDI1LjQgMzk5LjggMTExLjYgMzEzLjcgMTE0LjMgNTEyIDI2Mi44IDM2My40IDE2NC45IDI2MHptNDAuOS0xMDNsLTUwIDUwLS4zLTEwMC4zIDUwLjMgNTAuM3ptLTUwIDE1Nmw1MCA1MC01MC4zIDUwLjMgLjMtMTAwLjN6XCJdXG59O1xudmFyIGZhR3JpcGZpcmUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZ3JpcGZpcmUnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYzYWNcIiwgXCJNODAuNSAzMDEuNGMwLTczLjggMTA1LjEtMTIyLjUgMTA1LjEtMjAzIDAtNDcuMS0zNC04OC0zOS4xLTkwLjQgLjQgMy4zIC42IDYuNyAuNiAxMCAwIDkyLjEtMTQ3LjEgMTUzLjktMTQ3LjEgMjY4LjYgMCA0OS44IDMyLjIgNzkuMiA2Ni41IDEwOC4zIDY1LjEgNDYuNyA3OC4xIDcxLjQgNzguMSA4Ni42IDAgMTAuMS00LjggMTctNC44IDIyLjMgMTMuMS0xNi43IDE3LjQtMzEuOSAxNy41LTQ2LjQgMC0yOS42LTIxLjctNTYuMy00NC4yLTg2LjUtMTYtMjIuMy0zMi42LTQyLjYtMzIuNi02OS41em0yMDUuMy0zOWMtMTIuMS02Ni44LTc4LTEyNC40LTk0LjctMTMwLjlsNCA3LjJjMi40IDUuMSAzLjQgMTAuOSAzLjQgMTcuMSAwIDQ0LjctNTQuMiAxMTEuMi01Ni42IDExNi43LTIuMiA1LjEtMy4yIDEwLjUtMy4yIDE1LjggMCAyMC4xIDE1LjIgNDIuMSAxNy45IDQyLjEgMi40IDAgNTYuNi01NS40IDU4LjEtODcuNyA2LjQgMTEuNyA5LjEgMjIuNiA5LjEgMzMuNCAwIDQxLjItNDEuOCA5Ni45LTQxLjggOTYuOSAwIDExLjYgMzEuOSA1My4yIDM1LjUgNTMuMiAxIDAgMi4yLTEuNCAzLjItMi40IDM3LjktMzkuMyA2Ny4zLTg1IDY3LjMtMTM2LjggMC04LS43LTE2LjItMi4yLTI0LjZ6XCJdXG59O1xudmFyIGZhU3F1YXJlR29vZ2xlUGx1cyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtZ29vZ2xlLXBsdXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImdvb2dsZS1wbHVzLXNxdWFyZVwiXSwgXCJmMGQ0XCIsIFwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek02NCAyNTZjMC01NS4zIDQ0LjctMTAwIDEwMC0xMDAgMjcgMCA0OS41IDkuOCA2NyAyNi4ybC0yNy4xIDI2LjFjLTcuNC03LjEtMjAuMy0xNS40LTM5LjgtMTUuNC0zNC4xIDAtNjEuOSAyOC4yLTYxLjkgNjMuMiAwIDM0LjkgMjcuOCA2My4yIDYxLjkgNjMuMiAzOS42IDAgNTQuNC0yOC41IDU2LjgtNDMuMWwtNTYuOSAwIDAtMzQuNCA5NC40IDBjMSA1IDEuNiAxMC4xIDEuNiAxNi42IDAgNTcuMS0zOC4zIDk3LjYtOTYgOTcuNi01NS4zIDAtMTAwLTQ0LjctMTAwLTEwMHptMjkxIDE4LjJsMCAyOS0yOS4yIDAgMC0yOS0yOSAwIDAtMjkuMiAyOSAwIDAtMjkgMjkuMiAwIDAgMjkgMjkgMCAwIDI5LjItMjkgMHpcIl1cbn07XG52YXIgZmFHb29nbGVQbHVzU3F1YXJlID0gZmFTcXVhcmVHb29nbGVQbHVzO1xudmFyIGZhQXBwU3RvcmUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYXBwLXN0b3JlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMzZmXCIsIFwiTTI1NS45IDEyMC45bDkuMS0xNS43YzUuNi05LjggMTguMS0xMy4xIDI3LjktNy41czEzLjEgMTguMSA3LjUgMjcuOWwtODcuNSAxNTEuNSA2My4zIDBjMjAuNSAwIDMyIDI0LjEgMjMuMSA0MC44bC0xODUuNSAwYy0xMS4zIDAtMjAuNC05LjEtMjAuNC0yMC40czkuMS0yMC40IDIwLjQtMjAuNGw1MiAwIDY2LjYtMTE1LjQtMjAuOC0zNi4xYy01LjYtOS44LTIuMy0yMi4yIDcuNS0yNy45IDkuOC01LjYgMjIuMi0yLjMgMjcuOSA3LjVsOC45IDE1Ljd6bS03OC43IDIxOGwtMTkuNiAzNGMtNS42IDkuOC0xOC4xIDEzLjEtMjcuOSA3LjVzLTEzLjEtMTguMS03LjUtMjcuOWwxNC42LTI1LjJjMTYuNC01LjEgMjkuOC0xLjIgNDAuNCAxMS42em0xNjguOS02MS43bDUzLjEgMGMxMS4zIDAgMjAuNCA5LjEgMjAuNCAyMC40UzQxMC41IDMxOCAzOTkuMiAzMThsLTI5LjUgMCAxOS45IDM0LjVjNS42IDkuOCAyLjMgMjIuMi03LjUgMjcuOS05LjggNS42LTIyLjIgMi4zLTI3LjktNy41LTMzLjUtNTguMS01OC43LTEwMS42LTc1LjQtMTMwLjYtMTcuMS0yOS41LTQuOS01OS4xIDcuMi02OS4xIDEzLjQgMjMgMzMuNCA1Ny43IDYwLjEgMTA0ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQwIDI1NmEyMTYgMjE2IDAgMSAxIDQzMiAwIDIxNiAyMTYgMCAxIDEgLTQzMiAwelwiXVxufTtcbnZhciBmYVdpeCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd3aXgnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1Y2ZcIiwgXCJNMzkzLjQgMTMxLjdjMCAxMyAyLjEgMzIuNy0yOC43IDQzLjgtOS41IDMuNC0xNiA5LjctMTYgOS43IDAtMzEgNC43LTQyLjIgMTcuNC00OC45IDkuOC01LjEgMjcuMi00LjYgMjcuMi00LjZ6TTI3Ny42IDE2Ny4ybC0zNC4yIDEzMi43LTI4LjUtMTA4LjZjLTcuNy0zMi0yMC44LTQ4LjUtNDguNC00OC41LTI3LjQgMC00MC43IDE2LjItNDguNCA0OC41TDg5LjUgMjk5LjkgNTUuMyAxNjcuMkM0OS43IDE0MC41IDIzLjkgMTI5IDAgMTMyTDY1LjYgMzc5LjlzMjEuNiAxLjYgMzIuNS00YzE0LjItNy4yIDIxLTEyLjggMjkuNi00Ni42IDcuNy0zMC4xIDI5LjEtMTE4LjQgMzEuMS0xMjQuNyA0LjgtMTQuOSAxMS4xLTEzLjggMTUuNCAwIDIgNi4zIDIzLjUgOTQuNiAzMS4xIDEyNC43IDguNiAzMy43IDE1LjQgMzkuMyAyOS42IDQ2LjYgMTAuOCA1LjUgMzIuNSA0IDMyLjUgNEwzMzIuOSAxMzJjLTI0LjQtMy4xLTQ5LjggOC45LTU1LjMgMzUuM3ptMTE1LjggNS4ycy00LjEgNi4zLTEzLjUgMTEuNmMtNiAzLjQtMTEuOCA1LjYtMTggOC42LTE1LjEgNy4zLTEzLjIgMTMuOS0xMy4yIDM1LjJsMCAxNTIuMXMxNi42IDIuMSAyNy40LTMuNGMxMy45LTcuMSAxNy4xLTE0IDE3LjMtNDQuOGwwLTE1MC4zIDAgMCAwLTl6bTE2My40IDg0LjFMNjQwIDEzMi44cy0zNS4xLTYtNTIuNSA5LjhjLTEzLjMgMTIuMS0yNC40IDI5LjYtNTQuMiA3Mi41LS41IC43LTYuMyAxMC41LTEzLjEgMC0yOS4zLTQyLjItNDAuOC02MC4zLTU0LjItNzIuNS0xNy40LTE1LjgtNTIuNS05LjgtNTIuNS05LjhsODMuMiAxMjMuNy04MyAxMjMuNHMzNi42IDQuNiA1NC0xMS4yYzExLjUtMTAuNSAxNy42LTIwLjQgNTIuNS03MC43IDYuOC0xMC41IDEyLjYtLjggMTMuMSAwIDI5LjQgNDIuNCAzOS4yIDU4LjEgNTMuMSA3MC43IDE3LjQgMTUuOCA1My4zIDExLjIgNTMuMyAxMS4ybC04My0xMjMuNHpcIl1cbn07XG52YXIgZmFJbnRlcmNvbSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdpbnRlcmNvbScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdhZlwiLCBcIk0zOTIgMzJMNTYgMzJDMjUuMSAzMiAwIDU3LjEgMCA4OEwwIDQyNGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMzYgMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTMzNmMwLTMwLjktMjUuMS01Ni01Ni01NnpNMjgzLjcgMTE0LjFjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxOTkuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTE5OS41em0tNzQuNi03LjVjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAyMTYuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTIxNi41em0tNzQuNyA3LjVjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxOTkuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTE5OS41ek01OS43IDE0NGMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDEzNC4zYzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTM0LjN6TTM4My4xIDM3MS44Yy03Mi44IDYzLTI0MS43IDY1LjQtMzE4LjEgMC0xNS0xMi44IDQuNC0zNS41IDE5LjQtMjIuNyA2NS45IDU1LjMgMjE2LjEgNTMuOSAyNzkuMyAwIDE0LjktMTIuOSAzNC4zIDkuOCAxOS40IDIyLjd6bTUuMi05My41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTM0LjNjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxMzQuM3pcIl1cbn07XG52YXIgZmFSZWFjdGV1cm9wZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdyZWFjdGV1cm9wZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjc1ZFwiLCBcIk0yNTAuNyAyMTEuN2w1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMS0yLjMtNi44LTIuMyA2LjgtNy4yIC4xIDUuNyA0LjMtMiA2Ljh6bTYzLjcgMGw1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMi0uMS0yLjMtNi44LTIuMyA2LjgtNy4yIC4xIDUuNyA0LjMtMS45IDYuOHptLTkxLjMgNTAuNWwtMy40IDBjLTQuOCAwLTMuOCA0LTMuOCAxMi4xIDAgNC43LTIuMyA2LjEtNS44IDYuMXMtNS44LTEuNC01LjgtNi4xbDAtMzYuNmMwLTQuNyAyLjMtNi4xIDUuOC02LjFzNS44IDEuNCA1LjggNi4xYzAgNy4yLS43IDEwLjUgMy44IDEwLjVsMy40IDBjNC43LS4xIDMuOC0zLjkgMy44LTEyLjMgMC05LjktNi43LTE0LjEtMTYuOC0xNC4xbC0uMiAwYy0xMC4xIDAtMTYuOCA0LjItMTYuOCAxNC4xbDAgNDAuMWMwIDEwLjQgNi43IDE0LjEgMTYuOCAxNC4xbC4yIDBjMTAuMSAwIDE2LjgtMy44IDE2LjgtMTQuMSAwLTkuOSAxLjEtMTMuOC0zLjgtMTMuOHptLTgwLjcgMTcuNGwtMTQuNyAwIDAtMTkuMyAxMS40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMTEuNCAwIDAtMTguMyAxNC40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMjEuNyAwYy0yLjQtLjEtMy43IDEuMy0zLjcgMy44bDAgNTkuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsMjEuOSAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjh6bS00Mi0xOC41YzQuNi0yIDcuMy02IDcuMy0xMi40bDAtMTEuOWMwLTEwLjEtNi43LTE0LjEtMTYuOC0xNC4xbC0xMy40IDBjLTIuNSAwLTMuOCAxLjMtMy44IDMuOGwwIDU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDMuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIyLjkgNS42IDAgNy40IDIzLjVjLjIgMSAuOCAxLjggMS42IDIuNHMxLjggLjkgMi43IC44bDMuMyAwYzIuOCAwIDQtMS44IDMuMi00LjRsLTguMS0yMy45em0tMy44LTE0YzAgNC44LTIuNSA2LjEtNi4xIDYuMWwtNS44IDAgMC0yMC45IDUuOCAwYzMuNiAwIDYuMSAxLjMgNi4xIDYuMWwwIDguN3pNMTc2LjEgMjI2Yy0uMS0uNS0uMi0xLS40LTEuNHMtLjYtLjgtMS0xLjEtLjgtLjYtMS4zLS43LTEtLjItMS41LS4xbC02LjkgMGMtLjUgMC0xIDAtMS40IC4ycy0uOSAuNC0xLjMgLjctLjcgLjctLjkgMS4xLS40IC45LS40IDEuNGwtMTEgNTkuMmMtLjUgMi43IC45IDQuMSAzLjQgNC4xbDMgMGMuNSAuMSAxIDAgMS41LS4ycy45LS40IDEuMy0uNyAuNy0uNyAuOS0xLjIgLjQtLjkgLjQtMS40bDEuOC0xMS4zIDEyLjIgMCAxLjggMTEuM2MwIC41IC4yIDEgLjQgMS40cy41IC45IC45IDEuMiAuOCAuNiAxLjMgLjcgMSAuMiAxLjUgLjJsMy41IDBjMi42IDAgMy45LTEuNCAzLjQtNC4xTDE3Ni4xIDIyNnptLTEyLjMgMzkuM2w0LjctMjkuNyA0LjcgMjkuNy05LjQgMHptODkuMyAyMC4ybDAtNTMuMiA3LjUgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44bC0yNS44IDBjLTIuNSAwLTMuOCAxLjMtMy44IDMuOGwwIDIuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsNy4zIDAgMCA1My4yYzAgMi41IDEuMyAzLjggMy44IDMuOGwzLjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMCAwem0yNDgtLjhsLTE5LjQgMCAwLTI2LjcgMTYuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTE2LjEgMCAwLTI1LjggMTkuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTIyLjIgMGMtLjMtLjEtLjUtLjEtLjggMHMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMjIuNSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsMCAwek00MDggMjIxLjhsLS44IDBjLTEwLjEgMC0xNS4zIDQuNy0xNS4zIDE0LjFsMCA0MC4xYzAgOS4zIDUuMiAxNC4xIDE1LjMgMTQuMWwuOCAwYzEwLjEgMCAxNS4zLTQuOCAxNS4zLTE0LjFsMC00MC4xYzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMWwwIDB6bTEwLjIgNTIuNGMtLjEgOC0zIDExLjEtMTAuNSAxMS4xcy0xMC41LTMuMS0xMC41LTExLjFsMC0zNi42YzAtNy45IDMtMTEuMSAxMC41LTExLjFzMTAuNSAzLjIgMTAuNSAxMS4xbDAgMzYuNnptLTQ2LjUtMTQuNWM2LjEtMS42IDkuMi02LjEgOS4yLTEzLjNsMC05LjdjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xbC0xMy43IDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMS4yIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC42LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtMjYuOSAxMS42IDAgMTAuNCAyNy4yYy4yIC41IC41IC45IC45IDEuMXMuOSAuNCAxLjQgLjRsMS41IDBjMS40IDAgMi0xIDEuNS0yLjNsLTEwLjYtMjcuM3ptLTYuNC0zLjlsLTEwLjIgMCAwLTI4LjUgMTAuMiAwYzcuNSAwIDEwLjUgMy4xIDEwLjUgMTEuMWwwIDYuNGMwIDcuOC0zIDExLTEwLjUgMTFsMCAwem04NS45LTMzLjFsLTEzLjcgMGMtLjMtLjEtLjUtLjEtLjggMHMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMS4yIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC42LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtMjYuMSAxMC42IDBjMTAuMSAwIDE1LjMtNC44IDE1LjMtMTQuMWwwLTEwLjVjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xem0xMC4yIDIyLjhjMCA3LjktMyAxMS4xLTEwLjUgMTEuMWwtMTAuMiAwIDAtMjkuMiAxMC4yIDBjNy41LS4xIDEwLjUgMy4xIDEwLjUgMTFsMCA3LjF6TTI1OS42IDMwOGwtMi4zLTYuOC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjF6TTQ4Ny4yIDE3MS45Yy0xMS43LTQuNC0yMy41LTguMS0zNS42LTExLjMgMTkuNi03OCAxMS42LTEzNC43LTIyLjMtMTUzLjktMzQuNS0xOS40LTg1LjkgNC4zLTEzOC4yIDU1LjIgMy40IDMuMyA2LjggNi43IDEwLjIgMTAuMiA4Mi41LTgwIDExOS42LTUzLjUgMTIwLjktNTIuOCAyMi40IDEyLjcgMzYgNTUuOCAxNS41IDEzNy44LTI3LjgtNi40LTU2LjEtMTAuNy04NC42LTEzLTcxLjktMTAwLjUtMTQwLjYtMTQyLjEtMTgyLjItMTQyLjEtMzAuOCAwLTQzLjggMjEtNDcuNiAyNy43LTE4LjEgMzItMTMuMyA4NC4yIC4xIDEzMy44LTcwLjUgMjAuMy0xMjAuNyA1NC4xLTEyMC4zIDk1IC41IDU5LjYgMTAzLjIgODcuOCAxMjIuMSA5Mi44LTIwLjUgODEuOS0xMC4xIDEzNS42IDIyLjMgMTUzLjkgMjggMTUuOCA3NS4xIDYgMTM4LjItNTUuMi0zLjQtMy4zLTYuOC02LjctMTAuMi0xMC4yLTgyLjUgODAtMTE5LjcgNTMuNS0xMjAuOSA1Mi44LTIyLjMtMTIuNi0zNi01NS42LTE1LjUtMTM3LjkgMTIuNCAyLjkgNDEuOCA5LjUgODQuNiAxMyA3MS45IDEwMC40IDE0MC42IDE0MiAxODIuMSAxNDIgMzAuOCAwIDQzLjgtMjEgNDcuNi0yNy43IDE4LTMxLjkgMTMuMy04NC4xLS4xLTEzMy44IDE1Mi4zLTQzLjggMTU2LjItMTMwLjIgMzMuOS0xNzYuM2wwIDB6TTEzNiAzNi44YzIuOS01LjEgMTEuOS0yMC4zIDM0LjktMjAuMyAzNi44IDAgOTguOCAzOS42IDE2My4zIDEyNi4yLTMxLjMtMS44LTYyLjctMS41LTkzLjkgLjkgMTMtMTguMyAyNy4xLTM1LjggNDIuMi01Mi40LTMuNC0zLjUtNi44LTYuOS0xMC4yLTEwLjItMTguMyAyMC4yLTM1LjMgNDEuNy01MC43IDY0LjItMjguNSAyLjctNTYuNyA3LjYtODQuNCAxNC42LS4yLTEuNC0yNC4zLTgyLjItMS4yLTEyM2wwIDB6TTQ0MC44IDQ3NS4xYy0yLjkgNS4xLTExLjggMjAuMy0zNC45IDIwLjMtMzYuNyAwLTk4LjctMzkuNC0xNjMuMy0xMjYuMiAzMS4zIDEuOCA2Mi43IDEuNSA5My45LS45LTEzIDE4LjMtMjcuMSAzNS44LTQyLjIgNTIuNCAzLjQgMy41IDYuOCA2LjkgMTAuMiAxMC4yIDE4LjQtMjAuMiAzNS4zLTQxLjcgNTAuNy02NC4yIDQ3LjMtNC43IDgwLjMtMTMuNSA4NC40LTE0LjYgMjIuNyA4NC40IDQuNSAxMTcgMS4yIDEyM3ptOS4xLTEzOC42Yy0zLjYtMTEuOS03LjctMjQuMS0xMi40LTM2LjQtMi4xIDAtNC4yLS41LTYuMS0xLjVzLTMuNS0yLjQtNC42LTQuMmwtLjEgLjFjLTEuNiAxLjUtMy40IDIuNy01LjQgMy42IDUuNyAxNC4zIDEwLjYgMjguNCAxNC43IDQyLjItMjMuNyA2LTQ3LjcgMTAuMy03MiAxMyAzLjUtNS4zIDE3LjItMjYuMiAzMi4yLTU0LjItMi4xLS44LTQuMi0xLjktNi0zLjItMS4xIDEuMi0zLjYgNC4yLTEwLjkgNC4yLTYuMiAxMS4yLTE3LjQgMzAuOS0zMy45IDU1LjItMzcuNCAzLjMtNzUgMy42LTExMi40IDEtNy45LTExLjItMjEuNS0zMS4xLTM2LjgtNTcuOC0xLS40LTItLjktMy0xLjUtMS45IDEuNi0zLjkgMy4yLTEyLjYgMy4yIDYuMyAxMS4yIDE3LjUgMzAuNyAzMy44IDU0LjYtMjQuMy0yLjMtNDguNC02LjItNzIuMi0xMS43IDMuOS0xNCA4LjYtMjguMyAxNC4xLTQyLjktMy4yIDAtNS40IC4yLTguNC0xLTIuMiAuOC00LjYgMS4xLTYuOSAxLTQuOSAxMy40LTkuMSAyNi41LTEyLjcgMzkuNC0xNTkuOS00Mi42LTE0MC4zLTEyMy42LTEuNS0xNjQgMy42IDExLjkgNy43IDI0LjEgMTIuNCAzNi40IDEwLjQgMCAxMi45IDMuNCAxNC40IDUuMyAuNy0uOCAxLjQtMS42IDIuMy0yLjItNS44LTE0LjctMTAuOS0yOS4yLTE1LjItNDMuMyA3LTEuOCAzMi40LTguNCA3Mi0xMy0xNS45IDI0LjMtMjYuNyA0My45LTMyLjggNTUuMyAzLjEgMS44IDUuMyA0LjYgNi40IDggMi41LTMuNyA2LjEtNi42IDEwLjItOC40IDYuNS0xMS43IDE3LjktMzEuOSAzNC44LTU2LjkgMzcuNC0zLjMgNzUtMy42IDExMi40LTEgMzEuNSA0NC42IDI4LjkgNDguMSA0Mi41IDY0LjUgMi42LTMuNSA2LjMtNiAxMC40LTcuNC02LjQtMTEuNC0xNy42LTMxLTM0LjMtNTUuNSA0MC40IDQuMSA2NSAxMCA3Mi4yIDExLjctNCAxNC40LTguOSAyOS4yLTE0LjYgNDQuMiAyLjUgMSA0LjggMi40IDYuOCA0LjNsLjEgLjFjMS0xLjUgMi4zLTIuOCAzLjgtMy44czMuMy0xLjYgNS4xLTEuOGM0LjktMTMuNCA5LjItMjYuNiAxMi44LTM5LjUgMTEuNyAzLjEgMjMuMiA2LjggMzQuNSAxMSAxMDYuMSAzOS45IDc0IDg3LjkgNzIuNiA5MC40LTE5LjggMzUuMS04MC4xIDU1LjItMTA1LjcgNjIuNXptLTExNC40LTExNGwtMS4yIDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjYgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA0OS44YzAgNy45LTIuNiAxMS4xLTEwLjEgMTEuMXMtMTAuMS0zLjEtMTAuMS0xMS4xbDAtNDkuOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0xLjIgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDUxLjVjMCA5LjYgNSAxNC4xIDE1LjEgMTQuMWwuNCAwYzEwLjEgMCAxNS4xLTQuNiAxNS4xLTE0LjFsMC01MS41YzAtLjMtLjEtLjUtLjItLjhzLS4zLS41LS41LS42LS40LS4zLS43LS40LS41LS4xLS44LS4xek0zMjEuOCAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xem0tMzEuMSA3LjRsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xem01LjEtMzAuOGwtMTkuNCAwIDAtMjYuNyAxNi4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMTYuMSAwIDAtMjUuOCAxOS4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMjIuMiAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS43IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDIyLjUgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjYtLjEtLjhzLS4yLS41LS40LS43LS40LS40LS43LS40LS41LS4xLS44LS4xbDAgMHptLTcuNC05OS40bC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjEtMi4zLTYuOHpcIl1cbn07XG52YXIgZmFXYXplID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3dhemUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY4M2ZcIiwgXCJNNTAyLjYgMjAxLjdjMTQuNSA4NS45LTMwLjkgMTY3LjktMTEzLjIgMjA4LjEgMTMgMzQuMS0xMi40IDcwLjItNDguMyA3MC4yLTEzLjIgMC0yNi01LjEtMzUuNi0xNC4ycy0xNS4zLTIxLjYtMTYtMzQuOGMtNi40IC4yLTY0LjIgMC03Ni4zLS42LS4zIDYuOC0xLjkgMTMuNS00LjcgMTkuNnMtNi45IDExLjctMTEuOSAxNi4zLTEwLjggOC4yLTE3LjIgMTAuNS0xMy4yIDMuNC0xOS45IDMuMWMtMzMuOS0xLjQtNTgtMzQuOC00Ny02Ny45LTM3LjItMTMuMS03Mi41LTM0LjktOTkuNi03MC44LTEzLTE3LjMtLjUtNDEuOCAyMC44LTQxLjggNDYuMyAwIDMyLjItNTQuMiA0My4yLTExMC4zIDE4LjQtOTMuOSAxMTYuOC0xNTcuMSAyMTEuNy0xNTcuMSAxMDIuNSAwIDE5Ny4yIDcwLjcgMjE0LjEgMTY5Ljd6TTM3My45IDM4OC4zYzQyLTE5LjIgODEuMy01Ni43IDk2LjMtMTAyLjEgNDAuNS0xMjMuMS02NC4yLTIyOC0xODEuNy0yMjgtODMuNCAwLTE3MC4zIDU1LjQtMTg2LjEgMTM2LTkuNSA0OC45IDUgMTMxLjQtNjguNyAxMzEuNCAyNC45IDMzLjEgNTguMyA1Mi42IDkzLjcgNjQgMjQuNy0yMS44IDYzLjktMTUuNSA3OS44IDE0LjMgMTQuMiAxIDc5LjIgMS4yIDg3LjkgLjggMy41LTYuOSA4LjUtMTIuOSAxNC43LTE3LjVzMTMuMi03LjkgMjAuOC05LjUgMTUuNC0xLjQgMjIuOSAuNCAxNC41IDUuMyAyMC41IDEwLjJ6TTIwNS41IDE4Ny4xYzAtMzQuNyA1MC44LTM0LjcgNTAuOCAwcy01MC44IDM0LjctNTAuOCAwem0xMTYuNiAwYzAtMzQuNyA1MC45LTM0LjcgNTAuOSAwcy01MC45IDM0LjgtNTAuOSAwek0xOTkuNSAyNTcuOGMtMy40LTE2LjkgMjIuMi0yMi4yIDI1LjYtNS4ybC4xIC4zYzQuMSAyMS40IDI5LjggNDQgNjQuMSA0My4xIDM1LjctLjkgNTkuMy0yMi4yIDY0LjEtNDIuOCA0LjUtMTYuMSAyOC42LTEwLjQgMjUuNSA2LTUuMiAyMi4yLTMxLjIgNjItOTEuNSA2Mi45LTQyLjYgMC04MC45LTI3LjgtODcuOS02NC4ybDAgMHpcIl1cbn07XG52YXIgZmFDcmVhdGl2ZUNvbW1vbnNSZW1peCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjcmVhdGl2ZS1jb21tb25zLXJlbWl4JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGVlXCIsIFwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3pNNDE4LjEgMjYwLjRsNC45IDIuMiAwIDcwYy03LjIgMy42LTYzLjQgMjcuNS02Ny4zIDI4LjgtNi41LTEuOC0xMTMuNy00Ni44LTEzNy4zLTU2LjJsLTY0LjIgMjYuNi02My4zLTI3LjUgMC02My44IDU5LjMtMjQuOGMtLjctLjctLjQgNS0uNC03MC40bDY3LjMtMjkuNyAxNTEuOSA2Mi45IDAgNjEuNiA0OS4xIDIwLjN6bS03MC40IDgxLjVsMC00My44LS40IDAgMC0xLjgtMTEzLjgtNDYuNSAwIDQ1LjIgMTEzLjggNDYuOSAwLS40IC40IC40em03LjUtNTcuNmwzOS45LTE2LjQtMzYuOC0xNS41LTM5IDE2LjQgMzUuOSAxNS41em01Mi4zIDM4LjFsMC00My00NC4zIDE4LjYgMCA0My40IDQ0LjMtMTl6XCJdXG59O1xudmFyIGZhQmFuZGNhbXAgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYmFuZGNhbXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyZDVcIiwgXCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em00OC4yIDMyNi4xbC0xODEgMCA4NC43LTE1Ni4xIDE4MSAwLTg0LjcgMTU2LjF6XCJdXG59O1xudmFyIGZhU3F1YXJlV2ViQXdlc29tZVN0cm9rZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtd2ViLWF3ZXNvbWUtc3Ryb2tlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNjg0XCIsIFwiTTY0IDY0QzQ2LjMgNjQgMzIgNzguMyAzMiA5NmwwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMkw2NCA2NHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTIzNSA4MS42bDUzIDQ2LjQgNTIuMi0xMC40Yy0yLjYtMy45LTQuMi04LjUtNC4yLTEzLjYgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDEzLTEwLjMgMjMuNi0yMy4yIDI0TDMwNC41IDM0OS4xYy01LjIgMTEuNS0xNi42IDE4LjktMjkuMiAxOC45bC0xMDIuNiAwYy0xMi42IDAtMjQtNy40LTI5LjItMTguOUw4Ny4yIDIyNGMtMTIuOS0uNC0yMy4yLTExLTIzLjItMjQgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDUtMS41IDkuNy00LjIgMTMuNkwxNjAgMjI0IDIxMy4xIDE3Ny42Yy04LjktNC4xLTE1LTEzLjEtMTUtMjMuNiAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2YzAgMTAuNS02LjIgMTkuNS0xNS4xIDIzLjZ6XCJdXG59O1xudmFyIGZhVmltZW9WID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3ZpbWVvLXYnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyN2RcIiwgXCJNNDQ3LjggMTUzLjZjLTIgNDMuNi0zMi40IDEwMy4zLTkxLjQgMTc5LjEtNjAuOSA3OS4yLTExMi40IDExOC44LTE1NC42IDExOC44LTI2LjEgMC00OC4yLTI0LjEtNjYuMy03Mi4zLTM1LjItMTI5LjItNTAuMi0yMDQuOS03OS4zLTIwNC45LTMuNCAwLTE1LjEgNy4xLTM1LjIgMjEuMUwwIDE2OC4yYzUxLjYtNDUuMyAxMDAuOS05NS43IDEzMS44LTk4LjUgMzQuOS0zLjQgNTYuMyAyMC41IDY0LjQgNzEuNSAyOC43IDE4MS41IDQxLjQgMjA4LjkgOTMuNiAxMjYuNyAxOC43LTI5LjYgMjguOC01Mi4xIDMwLjItNjcuNiA0LjgtNDUuOS0zNS44LTQyLjgtNjMuMy0zMSAyMi03Mi4xIDY0LjEtMTA3LjEgMTI2LjItMTA1LjEgNDUuOCAxLjIgNjcuNSAzMS4xIDY0LjkgODkuNHpcIl1cbn07XG52YXIgZmFTdHJhdmEgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3RyYXZhJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDI4XCIsIFwiTTE1OC40IDBMNyAyOTIgOTYuMiAyOTIgMTU4LjQgMTc1LjkgMjIwLjEgMjkyIDMwOC42IDI5MiAxNTguNCAwek0zMDguNiAyOTJsLTQzLjkgODguMi00NC42LTg4LjItNjcuNiAwIDExMi4yIDIyMCAxMTEuNS0yMjAtNjcuNiAwelwiXVxufTtcbnZhciBmYVVuaXJlZ2lzdHJ5ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3VuaXJlZ2lzdHJ5JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDA0XCIsIFwiTTE5MiA0ODBjMzkuNSAwIDc2LjItMTEuOCAxMDYuOC0zMi4ybC0yMTMuNSAwQzExNS44IDQ2OC4yIDE1Mi41IDQ4MCAxOTIgNDgwek0xMDIuOSAyODYuOWwwLTEyLjQtMTAyLjkgMCAwIDEyLjRjMCAyLjUgMCA1IC4xIDcuNGwxMDMuMSAwYy0uMi0yLjQtLjMtNC45LS4zLTcuNHptMjAuNSA1N2wtMTE0LjkgMGMyLjYgOC41IDUuOCAxNi44IDkuNiAyNC44bDEzOC4zIDBjLTEyLjktNS43LTI0LjEtMTQuMi0zMy0yNC44em0tMTcuNy0zNC43bC0xMDQuNCAwYy45IDcuNiAyLjIgMTUgMy45IDIyLjNsMTA5LjcgMGMtNC02LjktNy4yLTE0LjQtOS4yLTIyLjN6bS0yLjgtNjkuM2wtMTAyLjkgMCAwIDE3LjMgMTAyLjkgMCAwLTE3LjN6bTAtMTczLjJsLTEwMi45IDAgMCA0LjkgMTAyLjkgMCAwLTQuOXptMC0zNC43bC0xMDIuOSAwIDAgMi41IDEwMi45IDAgMC0yLjV6bTAgNjkuM2wtMTAyLjkgMCAwIDcuNCAxMDIuOSAwIDAtNy40em0wIDEwNGwtMTAyLjkgMCAwIDE0LjggMTAyLjkgMCAwLTE0Ljh6bTAtNjkuM2wtMTAyLjkgMCAwIDkuOSAxMDIuOSAwIDAtOS45em0wIDM0LjZsLTEwMi45IDAgMCAxMi40IDEwMi45IDAgMC0xMi40ek0yNjkuMSAzMzEuNWwxMDkuNyAwYzEuOC03LjMgMy4xLTE0LjcgMy45LTIyLjNsLTEwNC40IDBjLTIuMSA3LjktNS4yIDE1LjQtOS4yIDIyLjN6bTEyLTE4NS43bDEwMi45IDAgMC05LjgtMTAyLjkgMCAwIDkuOHptMCAzNy4ybDEwMi45IDAgMC0xMi40LTEwMi45IDAgMCAxMi40em0wLTc0LjNsMTAyLjkgMCAwLTcuNC0xMDIuOSAwIDAgNy40em0wLTc2LjdsMCAyLjUgMTAyLjkgMCAwLTIuNS0xMDIuOSAwek03OC4xIDQ0Mi45bDIyNy43IDBjMTEuOC04LjcgMjIuNy0xOC42IDMyLjItMjkuN2wtMjkzLjEgMGM5LjYgMTEgMjEuNCAyMSAzMy4yIDI5Ljd6bTIwMy0zNzEuM2wxMDIuOSAwIDAtNC45LTEwMi45IDAgMCA0Ljl6bTAgMTQ4LjVsMTAyLjkgMCAwLTE0LjgtMTAyLjkgMCAwIDE0Ljh6TTM4LjggNDA1LjdsMzA1LjMgMGM2LjctOC41IDEyLjYtMTcuNiAxNy44LTI3LjJMMjMgMzc4LjVjNS4yIDkuNiA5LjIgMTguNyAxNS44IDI3LjJ6bTE4OC44LTM3LjFsMTM5LjQgMGMzLjctOCA1LjgtMTYuMiA4LjUtMjQuOGwtMTE1IDBjLTguOCAxMC43LTIwLjEgMTkuMi0zMi45IDI0Ljh6bTUzLjUtODEuN2MwIDIuNS0uMSA1LS40IDcuNGwxMDMuMSAwYy4xLTIuNSAuMi00LjkgLjItNy40bDAtMTIuNC0xMDIuOSAwIDAgMTIuNHptMC0yOS43bDEwMi45IDAgMC0xNy4zLTEwMi45IDAgMCAxNy4zelwiXVxufTtcbnZhciBmYUNjRGluZXJzQ2x1YiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjYy1kaW5lcnMtY2x1YicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjI0Y1wiLCBcIk0yMzkuNyA3OS45YTE3NS44IDE3NS44IDAgMSAwIDAgMzUxLjYgMTc1LjggMTc1LjggMCAxIDAgMC0zNTEuNnpNMTk5LjggMzU5LjVjLTQxLjctMTUuOS03MS40LTU2LjQtNzEuNC0xMDMuOHMyOS43LTg3LjkgNzEuNC0xMDQuMWwwIDIwNy45em03OS44IC4zbDAtMjA4LjJjNDEuNyAxNi4yIDcxLjQgNTYuNyA3MS40IDEwNC4xcy0yOS43IDg3LjktNzEuNCAxMDQuMXpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTMyOS43IDQ0OGwtOTAuMyAwQzEzMy4yIDQ0OCA0NS42IDM2Mi41IDQ1LjYgMjU3LjggNDUuNiAxNDMuMiAxMzMuMiA2NCAyMzkuNCA2NGw5MC4zIDBjMTA1IDAgMjAwLjcgNzkuMiAyMDAuNyAxOTMuOCAwIDEwNC43LTk1LjcgMTkwLjItMjAwLjcgMTkwLjJ6XCJdXG59O1xudmFyIGZhUGludGVyZXN0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3BpbnRlcmVzdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBkMlwiLCBcIk01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OC0yNS42IDAtNTAuMi0zLjktNzMuNC0xMS4xIDEwLjEtMTYuNSAyNS4yLTQzLjUgMzAuOC02NSAzLTExLjYgMTUuNC01OSAxNS40LTU5IDguMSAxNS40IDMxLjcgMjguNSA1Ni44IDI4LjUgNzQuOCAwIDEyOC43LTY4LjggMTI4LjctMTU0LjMgMC04MS45LTY2LjktMTQzLjItMTUyLjktMTQzLjItMTA3IDAtMTYzLjkgNzEuOC0xNjMuOSAxNTAuMSAwIDM2LjQgMTkuNCA4MS43IDUwLjMgOTYuMSA0LjcgMi4yIDcuMiAxLjIgOC4zLTMuMyAuOC0zLjQgNS0yMC4zIDYuOS0yOC4xIC42LTIuNSAuMy00LjctMS43LTcuMS0xMC4xLTEyLjUtMTguMy0zNS4zLTE4LjMtNTYuNiAwLTU0LjcgNDEuNC0xMDcuNiAxMTItMTA3LjYgNjAuOSAwIDEwMy42IDQxLjUgMTAzLjYgMTAwLjkgMCA2Ny4xLTMzLjkgMTEzLjYtNzggMTEzLjYtMjQuMyAwLTQyLjYtMjAuMS0zNi43LTQ0LjggNy0yOS41IDIwLjUtNjEuMyAyMC41LTgyLjYgMC0xOS0xMC4yLTM0LjktMzEuNC0zNC45LTI0LjkgMC00NC45IDI1LjctNDQuOSA2MC4yIDAgMjIgNy40IDM2LjggNy40IDM2LjhzLTI0LjUgMTAzLjgtMjkgMTIzLjJDMTYxLjUgNDM3LjIgMTYzLjUgNDY3LjQgMTY1LjYgNDg3IDczLjQgNDUwLjkgOCAzNjEuMSA4IDI1NiA4IDExOSAxMTkgOCAyNTYgOFM1MDQgMTE5IDUwNCAyNTZ6XCJdXG59O1xudmFyIGZhQWxnb2xpYSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdhbGdvbGlhJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMzZjXCIsIFwiTTI1NiAwYy0xMzkuOSAwLTI1NCAxMTIuNy0yNTYgMjUyLjEtMiAxNDEuNSAxMTIuOSAyNTguNyAyNTQuNSAyNTkuNSA0My43IC4zIDg1LjktMTAuNCAxMjMuMy0zMC43IDMuNi0yIDQuMi03IDEuMS05LjdsLTI0LTIxLjJjLTQuOS00LjMtMTEuOC01LjUtMTcuOC0zLTI2LjEgMTEuMS01NC41IDE2LjgtODMuNyAxNi40LTExNC40LTEuNS0yMDYuOS05Ni42LTIwNS4xLTIxMSAxLjgtMTEyLjkgOTQuMy0yMDQuMiAyMDcuNy0yMDQuMmwyMDcuNyAwIDAgMzY5LTExNy44LTEwNC43Yy0zLjgtMy40LTkuNy0yLjctMTIuNyAxLjMtMTguOSAyNS00OS43IDQwLjYtODMuOSAzOC4yLTQ3LjUtMy4zLTg1LjktNDEuNS04OS41LTg4LjktNC4yLTU2LjYgNDAuNi0xMDMuOSA5Ni4zLTEwMy45IDUwLjQgMCA5MS45IDM4LjggOTYuMiA4OCAuNCA0LjQgMi40IDguNSA1LjcgMTEuNGwzMC43IDI3LjJjMy41IDMuMSA5IDEuMiA5LjktMy40IDIuMi0xMS44IDMtMjQuMiAyLjEtMzYuOC00LjktNzItNjMuMy0xMzAtMTM1LjQtMTM0LjQtODIuNy01LjEtMTUxLjggNTkuNS0xNTQgMTQwLjYtMi4xIDc4LjkgNjIuNiAxNDcgMTQxLjYgMTQ4LjcgMzMgLjcgNjMuNi05LjYgODguMy0yNy42TDQ5NSA1MDkuNGM2LjYgNS44IDE3IDEuMiAxNy03LjdsMC00OTJjMC01LjQtNC40LTkuNy05LjctOS43TDI1NiAwelwiXVxufTtcbnZhciBmYVN0YWNrcGF0aCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzdGFja3BhdGgnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY4NDJcIiwgXCJNMjQ0LjYgMjMyLjRjMCA4LjUtNC4zIDIwLjUtMjEuMyAyMC41bC0xOS42IDAgMC00MS41IDE5LjYgMGMxNy4xIDAgMjEuMyAxMi40IDIxLjMgMjF6TTQ0OCAzMmwwIDQ0OC00NDggMCAwLTQ0OCA0NDggMHpNMTUxLjMgMjg3LjhjMC0yMS4yLTEyLjEtMzQuNS00Ni43LTQ0LjgtMjAuNi03LjQtMjYtMTAuOS0yNi0xOC42czctMTQuNiAyMC40LTE0LjZjMTQuMSAwIDIwLjggOC40IDIwLjggMTguNGwzMC43IDAgLjItLjZjLjUtMTkuNi0xNS4xLTQxLjYtNTEuMS00MS42LTIzLjQgMC01Mi42IDEwLjgtNTIuNiAzOC4zIDAgMTkuNCA5LjIgMzEuMyA1MC43IDQ0LjQgMTcuMyA2LjIgMjEuOSAxMC40IDIxLjkgMTkuNSAwIDE1LjItMTkuMSAxNC4yLTE5LjUgMTQuMi0yMC40IDAtMjUuNy05LjEtMjUuNy0yMS45bC0zMC44IDAtLjIgLjZjLS43IDMxLjMgMjguNCA0NS4yIDU2LjYgNDUuMiAzMCAwIDUxLjEtMTMuNiA1MS4xLTM4LjN6bTEyNS40LTU1LjZjMC0yNS4zLTE4LjQtNDUuNS01My40LTQ1LjVsLTUxLjggMCAwIDEzOC4yIDMyLjIgMCAwLTQ3LjQgMTkuNiAwYzMwLjMgMCA1My40LTE2IDUzLjQtNDUuNHpNMjk3LjkgMzI1bDQ5LjEtMTM4LjItMzEuMSAwLTQ3LjkgMTM4LjIgMjkuOSAwek00MDQuNSAxODYuOGwtMzEuMSAwLTQ3LjkgMTM4LjIgMjkuOSAwIDQ5LjEtMTM4LjJ6XCJdXG59O1xudmFyIGZhT2N0b3B1c0RlcGxveSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdvY3RvcHVzLWRlcGxveScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA4MlwiLCBcIk00NTUuNyAzNDkuMmMtNDUuOS0zOS4xLTM2LjctNzcuOS0xNi4xLTEyOC4xIDM1LjctODctMjMuNS0xODYuOS0xMDkuNi0yMTIuOC05Mi45LTI3LjktMTk1LjcgMTYtMjMwLjMgMTA4LjgtOC43IDIzLjUtMTIuNSA0OC41LTExIDczLjUgMS43IDI5LjUgMTQuNyA1MyAyNC4xIDgwLjMgMTcuMiA1MC4yLTI4LjEgOTIuNy02Ni43IDExNy42LTQ2LjggMzAuMi0zNi4zIDM5LjktOC40IDQxLjkgMjMuNCAxLjcgNDQuNS00LjUgNjUuMy0xNSA5LjItNC42IDQwLjctMTguOSA0NS4xLTI4LjYtMTIuMiAyNi42LTM3IDcyLjctMjEuNSAxMDIuMSAxOS4xIDM2LjIgNjcuMS0zMS44IDc2LjctNDUuOCA4LjYtMTIuNiA0My04MS4zIDYzLjYtNDYuOSAxOC45IDMxLjQgOC42IDc2LjQgMzUuNyAxMDQuNiAzMi45IDM0LjIgNTEuMi0xOC4zIDUxLjQtNDQuMiAuMi0xNi40LTYuMS05NS45IDI5LjktNTkuOSAyMS40IDIxLjQgNTIuOSA3MS4yIDg4LjYgNjcgMzguNy00LjUtMjIuMS02OC0yOC4zLTc4LjcgNS40IDQuMyA1My43IDM0LjEgNTMuOCA5LjUgLjEtMTguOC0zMC4xLTM0LjctNDIuNS00NS4zelwiXVxufTtcbnZhciBmYVlhbW1lciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd5YW1tZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY4NDBcIiwgXCJNNTAwLjcgMTU5LjVjLS40LTEuOC0xLjItMy40LTIuMy00LjhzLTIuNS0yLjYtNC4xLTMuNWMtMy4xLTEuNi02LjctMi0xMC4xLTEuMWwtMjYuNCA2LjYgMC0uMi0yMi4zIDUuOC0xLjIgLjMtLjYtMi4yYy0xNS41LTU4LjMtNDUtMTExLjktODYuMS0xNTYuMi0yLjYtMi43LTYuMS00LjItOS44LTQuM3MtNy4zIDEuMy0xMCAzLjhsLTEwMi45IDEwMi43LTE5OS45IDBjLTYuNiAwLTEyLjkgMi42LTE3LjYgNy4zUzAgMTI0LjggMCAxMzEuNGwwIDI0OUMwIDM4NyAyLjYgMzkzLjMgNy4zIDM5OHMxMSA3LjMgMTcuNiA3LjNMMjI1IDQwNS4zIDMyOC4xIDUwOGMyLjYgMi42IDYgNCA5LjcgNHM3LjEtMS40IDkuNy00Yy4xLS4xIC4yLS4zIC40LS40IDI5LjMtMzEuNSA1Mi44LTY3LjggNjkuNi0xMDcuNCA2LjktMTYuNSAxMi43LTMzLjUgMTcuMy01MC44bDAgMCAyMC40IDUuMyAwLS4xIDI4LjMgNy4zYy45IC4yIDEuNyAuNCAyLjYgLjUgMS40IC4yIDIuOCAuMiA0LjEtLjEgMi41LS41IDQuOC0xLjcgNi43LTMuNHMzLjItNCAzLjgtNi41YzE1LjItNjMuNCAxNS4yLTEyOS42IC4xLTE5M2wwIDB6TTMzNy4xIDI0LjdsMCAwIDAgMCAwIDB6TTIyNi45IDE4OS44bC01Mi42IDkxLjNjLTEgMS43LTEuNSAzLjctMS41IDUuN2wwIDQ2LjJjMCA1LjgtMi4zIDExLjQtNi41IDE1LjZzLTkuNyA2LjQtMTUuNiA2LjRsLTMuNCAwYy01LjggMC0xMS40LTIuMy0xNS42LTYuNHMtNi41LTkuNy02LjUtMTUuNmwwLTQ1LjdjMC0xLjktLjUtMy44LTEuNC01LjVMNzIuMyAxODkuNmMtMS45LTMuNC0yLjgtNy4xLTIuOC0xMXMxLjEtNy42IDMtMTAuOSA0LjctNi4xIDguMS04IDcuMS0yLjkgMTEtMi45bDMuMyAwYzQgMCA4IDEuMSAxMS41IDMuMnM2LjMgNS4xIDguMSA4LjdsMzYuNCA3MC4zIDM3LjUtNzAuNWMxLjgtMy41IDQuNi02LjQgNy45LTguNHM3LjItMy4yIDExLjEtMy4yIDcuOCAuOSAxMS4yIDIuOCA2LjMgNC43IDguMiA4LjFjMiAzLjMgMyA3LjEgMyAxMXMtMSA3LjctMyAxMWwwIDB6TTMzNy4xIDI0LjdjMzUuOSA0MC42IDYxLjkgODkgNzUuOCAxNDEuM2wuNiAyLTExNC4xIDI5LjYgMC02Ni4xYzAtNi42LTIuNy0xMi45LTcuMy0xNy42cy0xMS03LjMtMTcuNi03LjNsLTE5LjQgMCA4Mi4xLTgxLjh6TTM5Ny42IDM5MmwwIDAgMCAwYy0xNC43IDM0LjgtMzUuMSA2Ny02MC4yIDk1LjJsLTgyLjItODEuOSAxOS4yIDBjNi42IDAgMTIuOS0yLjYgMTcuNi03LjNzNy4zLTExIDcuMy0xNy42bDAtNjYuMiAxMTQuNiAyOS45Yy00LjQgMTYuMy05LjggMzIuMy0xNi4zIDQ3LjlsMCAwem04NC01Mi40bDAgMC01MC42LTEzLjEtMTMxLjctMzQuMyAwLTcyLjUgMTE5LjctMzEgNC41LTEuMmMyOS45LTcuNyA0OS4yLTEyLjggNTguMS0xNS4xIDEyIDU1LjEgMTIgMTEyLjEgMCAxNjcuMnpcIl1cbn07XG52YXIgZmFNb2R4ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ21vZHgnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyODVcIiwgXCJNMzU2IDI0MS44bDM2LjcgMjMuNyAwIDIxNC41LTEzMy04My44IDk2LjMtMTU0LjR6TTQ0MCA3NWwtMjEzLjcgMC0yMyAzNy44IDE1My41IDk2LjUgODMuMi0xMzQuM3pNMzUxIDIxNy44bC0yOTUuOC0xODUuOCAwIDIxNC41IDQ2IDI5IDI0OS44LTU3Ljd6TTk3IDI5NC4yTDggNDM3IDIyMS43IDQzNyAzNDYuNyAyMzYuNSA5NyAyOTQuMnpcIl1cbn07XG52YXIgZmFTcXVhcmVUaHJlYWRzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NxdWFyZS10aHJlYWRzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNjE5XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTI5NC4yIDI0NC4zYzE5LjUgOS4zIDMzLjcgMjMuNSA0MS4yIDQwLjkgMTAuNCAyNC4zIDExLjQgNjMuOS0yMC4yIDk1LjQtMjQuMiAyNC4xLTUzLjUgMzUtOTUuMSAzNS4zbC0uMiAwYy00Ni44LS4zLTgyLjgtMTYuMS0xMDYuOS00Ni44LTIxLjUtMjcuMy0zMi42LTY1LjQtMzMtMTEzLjFsMC0uMmMuNC00Ny43IDExLjUtODUuNyAzMy0xMTMuMSAyNC4yLTMwLjcgNjAuMi00Ni41IDEwNi45LTQ2LjhsLjIgMGM0Ni45IC4zIDgzLjMgMTYgMTA4LjIgNDYuNiAxMi4zIDE1LjEgMjEuMyAzMy4zIDI3IDU0LjRsLTI2LjkgNy4yYy00LjctMTcuMi0xMS45LTMxLjktMjEuNC00My42LTE5LjQtMjMuOS00OC43LTM2LjEtODctMzYuNC0zOCAuMy02Ni44IDEyLjUtODUuNSAzNi4yLTE3LjUgMjIuMy0yNi42IDU0LjQtMjYuOSA5NS41IC4zIDQxLjEgOS40IDczLjMgMjYuOSA5NS41IDE4LjcgMjMuOCA0Ny40IDM2IDg1LjUgMzYuMiAzNC4zLS4zIDU2LjktOC40IDc1LjgtMjcuMyAyMS41LTIxLjUgMjEuMS00Ny45IDE0LjItNjQtNC05LjQtMTEuNC0xNy4zLTIxLjMtMjMuMy0yLjQgMTgtNy45IDMyLjItMTYuNSA0My4yLTExLjQgMTQuNS0yNy43IDIyLjQtNDguNCAyMy41LTE1LjcgLjktMzAuOC0yLjktNDIuNi0xMC43LTEzLjktOS4yLTIyLTIzLjItMjIuOS0zOS41LTEuNy0zMi4yIDIzLjgtNTUuMyA2My41LTU3LjYgMTQuMS0uOCAyNy4zLS4yIDM5LjUgMS45LTEuNi05LjktNC45LTE3LjctOS44LTIzLjQtNi43LTcuOC0xNy4xLTExLjgtMzAuOC0xMS45bC0uNCAwYy0xMSAwLTI2IDMuMS0zNS42IDE3LjZsLTIzLTE1LjhjMTIuOC0xOS40IDMzLjYtMzAuMSA1OC41LTMwLjFsLjYgMGM0MS44IC4zIDY2LjYgMjYuMyA2OS4xIDcxLjggMS40IC42IDIuOCAxLjIgNC4yIDEuOWwuMSAuNXptLTcxLjggNjcuNWMxNy0uOSAzNi40LTcuNiAzOS43LTQ4LjgtOC44LTEuOS0xOC42LTIuOS0yOS0yLjktMy4yIDAtNi40IC4xLTkuNiAuMy0yOC42IDEuNi0zOC4xIDE1LjUtMzcuNCAyNy45IC45IDE2LjcgMTkgMjQuNSAzNi40IDIzLjZsLS4xLS4xelwiXVxufTtcbnZhciBmYU9sZFJlcHVibGljID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ29sZC1yZXB1YmxpYycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjUxMFwiLCBcIk0yNDMuOCAxMC4yYzcuNS0uMyAxNS0uMyAyMi41LS4xIDMuNiAuMSA3LjIgLjQgMTAuOCAuNyA0LjkgLjMgOS44IDEgMTQuNyAxLjYgMi45IC40IDUuOCAxIDguNyAxLjUgNy45IDEuMyAxNS43IDMuMyAyMy40IDUuNCAxMi4yIDMuNSAyNC4yIDcuOSAzNS44IDEzLjIgMjYuNiAxMi4yIDUwLjkgMjkuMiA3MS42IDQ5LjkgMjAgMjAuMSAzNi43IDQzLjUgNDguOSA2OS4yIDEuMSAyLjYgMi40IDUuMSAzLjUgNy43IDIuOCA2LjQgNS40IDEzIDcuNiAxOS42IDQuMSAxMi4zIDcuMyAyNSA5LjQgMzcuOCAuNiAzLjEgMSA2LjMgMS40IDkuNSAuNSAzLjggLjkgNy43IDEuMiAxMS42IC44IDguMyAuOCAxNi43IC44IDI1LjEtLjEgNS0uMyA5LjktLjcgMTQuOS0uMiAzLjQtLjUgNi44LTEgMTAuMS0uNCAyLjctLjYgNS41LTEuMSA4LjItLjkgNS4xLTEuNyAxMC4zLTIuOSAxNS40LTQuMSAxOC41LTEwLjMgMzYuNi0xOC41IDUzLjYtMTUuOCAzMi44LTM4LjggNjIuMi02Ny4xIDg1LjEtMTcuMyAxNC4xLTM2LjQgMjUuOS01Ni45IDM0LjktNi4yIDIuNy0xMi41IDUuMy0xOC45IDcuNC0zLjUgMS4yLTcgMi40LTEwLjYgMy40LTYuNiAxLjktMTMuMyAzLjYtMjAgNS00LjcgLjktOS4zIDEuNy0xNCAyLjUtNS4zIC43LTEwLjUgMS40LTE1LjggMS43LTYuNyAuNy0xMy40IC44LTIwLjEgLjgtNi44IDAtMTMuNi0uMS0yMC40LS44LTMuMy0uMi02LjYtLjUtOS44LTEtMi43LS40LTUuNS0uNi04LjItMS4xLTQuMS0uNy04LjItMS40LTEyLjQtMi4yLTQuMi0uOS04LjUtMS45LTEyLjctMy04LjYtMi4yLTE3LjEtNS0yNS40LTguMS0xMC41LTQuMS0yMC44LTguNy0zMC42LTE0LjItMi4xLTEuMi00LjMtMi4zLTYuNC0zLjYtMTEuMi02LjYtMjEuOS0xNC4xLTMxLjktMjIuMy0zNC43LTI4LjQtNjEuNC02Ni40LTc2LjQtMTA4LjctMy4xLTguNy01LjctMTcuNi03LjgtMjYuNy0xLjUtNi4yLTIuNS0xMi40LTMuNi0xOC43LS40LTIuMy0uNi00LjctMS03LjEtLjYtNC0uOC04LTEuMi0xMS45LS44LTkuNS0uNy0xOS0uNS0yOC41IC4xLTMuNSAuMy03IC43LTEwLjUgLjMtMy4yIC41LTYuNCAuOS05LjUgLjQtMi44IC43LTUuNiAxLjItOC40IC43LTMuOSAxLjMtNy45IDIuMS0xMS44IDMuNC0xNi41IDguNS0zMi43IDE1LjMtNDguMiAxLjItMi45IDIuNi01LjcgMy45LTguNiA4LjEtMTYuNyAxNy45LTMyLjYgMjkuNS00Ny4xIDIwLTI1LjQgNDUuMS00Ni43IDczLjMtNjIuNSA3LjUtNC4yIDE1LjItOCAyMy4xLTExLjQgMTUuOC02LjkgMzIuNC0xMiA0OS4zLTE1LjQgMy41LS43IDctMS4yIDEwLjYtMS44IDIuNi0uNSA1LjMtLjcgNy45LTEuMSAzLjUtLjUgNy4xLS43IDEwLjYtMSAyLjUtLjIgNC45LS40IDcuNC0uNXptOC42IDI0LjRjLTkuMiAuMS0xOC40IDEtMjcuNiAyLjItNy4zIDEuMS0xNC41IDIuNi0yMS43IDQuMy0xMy45IDMuNS0yNy41IDguMy00MC41IDE0LjQtMTAuNSA1LTIwLjYgMTAuNy0zMC4yIDE3LjItNC4yIDIuOS04LjQgNS44LTEyLjMgOS01LjEgNC0xMCA4LjItMTQuNyAxMi42LTIuNSAyLjItNC44IDQuNy03LjIgNy4xLTI4LjIgMjguOC00OC40IDY1LjQtNTcuNSAxMDQuNy0yIDguNC0zLjUgMTctNC40IDI1LjYtMS4xIDguOS0xLjQgMTcuOS0xLjQgMjYuOCAuMSA3LjEgLjQgMTQuMyAxLjIgMjEuNCAuNiA3LjEgMS45IDE0LjIgMy4yIDIxLjIgMS4xIDQuNiAyIDkuMyAzLjMgMTMuOSA2LjMgMjMuNCAxNi41IDQ1LjcgMzAuMSA2NS44IDguNiAxMyAxOC44IDI0LjkgMzAgMzUuOCAxNi4zIDE1LjggMzUgMjkgNTUuMyAzOS4yIDcuMyAzLjUgMTQuNyA2LjkgMjIuMyA5LjYgNSAxLjggMTAuMSAzLjYgMTUuMiA1IDExLjMgMy4yIDIyLjggNS42IDM0LjQgNy4xIDIuOSAuMyA1LjggLjYgOC43IC45IDEzLjggMS4xIDI3LjcgMSA0MS41LS40IDQuNC0uNiA4LjktMSAxMy4zLTEuOCAzLjYtLjcgNy4zLTEuMiAxMC45LTIuMSA0LjEtMSA4LjMtMS45IDEyLjQtMy4xIDI2LjUtNy4zIDUxLjYtMTkuNyA3My42LTM2LjIgMTUuOC0xMS44IDMwLTI1LjggNDIuMS00MS4zIDMuMy00IDYuMi04LjMgOS4xLTEyLjYgMy40LTUuMSA2LjYtMTAuMiA5LjYtMTUuNSAyLjQtNC40IDQuNy04LjkgNy0xMy40IDUuNy0xMi4xIDEwLjMtMjQuNiAxMy44LTM3LjUgMi42LTEwIDQuNy0yMC4yIDUuOS0zMC40IDEuOC0xMy41IDEuOS0yNy4xIDEuMy00MC43LS4zLTMuOS0uNy03LjgtMS0xMS43LTIuMi0xOS4xLTYuOC0zNy45LTEzLjgtNTUuOC02LTE1LjEtMTMuNS0yOS42LTIyLjYtNDMuMS0xMi43LTE4LjgtMjguMi0zNS43LTQ2LTQ5LjgtMjUtMjAtNTQuNS0zNC41LTg1LjYtNDIuMS03LjgtMS45LTE1LjctMy4zLTIzLjYtNC40LTMuOS0uNi03LjgtLjgtMTEuOC0xLjItNy40LS42LTE0LjgtLjctMjIuMi0uNnpNMTQ3LjMgODMuNWMxMy4zLTguOSAyOC4xLTE1LjQgNDMuMy0yMC4yLTMuMiAxLjgtNi40IDMuNC05LjUgNS4zLTExLjIgNi43LTIxLjUgMTQuOS0zMC40IDI0LjUtNi44IDcuNC0xMi44IDE1LjctMTcgMjQuOS0zLjMgNi45LTUuNiAxNC4yLTYuOSAyMS43LS45IDQuOC0xLjMgOS44LTEuMiAxNC44IC4xIDEzLjcgNC40IDI3LjEgMTEuMyAzOC44IDUuOSAxMC4yIDEzLjYgMTkuMyAyMi40IDI3LjMgNC45IDQuNCAxMC4yIDguMSAxNSAxMi42IDIuMyAyLjIgNC41IDQuNCA2LjQgNi45IDIuNiAzLjMgNC45IDcgNiAxMS4xIC45IDMgLjcgNi4yIC43IDkuMyAwIDQuMSAwIDguMiAwIDEyLjMgLjEgMy41IDAgNy4xIC4xIDEwLjYgLjEgMi40IDAgNC44IC4xIDcuMSAuMiA1LjggLjEgMTEuNSAuMSAxNy4zIC4xIDIuOSAwIDUuOCAuMSA4LjcgMCAxLjYgLjEgMy4zIDAgNC45LS45IC4xLTEuOCAuMi0yLjcgLjItMTEgMC0yMS45LTIuNi0zMi02LjktNi0yLjctMTEuOC01LjktMTcuMS05LjgtNS44LTQuMi0xMS4xLTktMTUuOC0xNC4zLTYuNS03LjItMTItMTUuNC0xNi42LTIzLjktMS4xLTItMi4yLTQtMy4yLTYuMS0xLjItMi42LTIuNi01LjEtMy43LTcuOC00LTkuNy02LjYtMTkuOS04LjEtMzAuMy0uNS00LjQtMS4xLTguOS0xLjItMTMuMy0uNy0xNS43IC44LTMxLjYgNC43LTQ2LjggMi4xLTguMiA0LjgtMTYuMiA4LjMtMjMuOCA2LjMtMTQuMiAxNS4zLTI3LjIgMjYuMy0zOC4yIDYuMy02LjIgMTMuMS0xMS44IDIwLjUtMTYuN3pNMzIyLjcgNjMuNGMyLjcgLjcgNS40IDEuNyA4LjEgMi43IDYuNCAyLjMgMTIuNyA0LjggMTguNyA4IDEzLjEgNi40IDI1LjMgMTQuOCAzNS44IDI1IDEwLjIgMTAgMTguNyAyMS42IDI1LjEgMzQuMyAxLjMgMi43IDIuNiA1LjUgMy44IDguMyA2LjMgMTUuMSAxMCAzMS4zIDExLjIgNDcuNiAuNCA0LjUgLjQgOS4xIC41IDEzLjYgLjEgMTEuNi0xLjUgMjMuMy00LjMgMzQuNS0yIDcuMy00LjMgMTQuNS03LjkgMjEuMi0zLjIgNi42LTYuNyAxMy4yLTEwLjggMTkuMi02LjkgMTAuNS0xNS42IDE5LjktMjUuOCAyNy4yLTEwLjUgNy42LTIyLjYgMTMtMzUuNCAxNS40LTMuNSAuNy03LjEgMS4xLTEwLjcgMS4yLTEuOCAuMS0zLjcgLjItNS42LS4xLS4zLTIuMSAwLTQuMyAwLTYuNSAwLTMuNyAuMS03LjQgLjEtMTEuMiAuMi03IDAtMTQuMSAuMi0yMS4xIDAtMi40IDAtNC44IDAtNy4xIC4yLTUuMSAwLTEwLjEgLjEtMTUuMiAuMS0zLS4yLTYgLjUtOSAuNy0yLjUgMS44LTQuOSAzLjEtNy4xIDQuNS03LjMgMTEuMS0xMyAxNy43LTE4LjMgNS40LTQuMiAxMC41LTguOCAxNS0xMy44IDcuNy04LjQgMTQuMi0xNy45IDE4LjgtMjguMyAyLjUtNS45IDQuNS0xMi4xIDUuNS0xOC41IC45LTQuNCAxLjEtOC44IDEtMTMuMyAwLTcuOC0xLjQtMTUuNi0zLjYtMjMuMi0xLjgtNS43LTQuMy0xMS4yLTcuMS0xNi40LTMuOS02LjktOC42LTEzLjMtMTQtMTkuMi05LjktMTAuOC0yMS44LTE5LjktMzQuNi0yNy4xLTEuOC0xLTMuOC0xLjgtNS42LTN6TTIyMS45IDEyMS45YzEtMS4yIDItMi4zIDMuMS0zLjQtLjYgLjktMS4zIDEuOC0yIDIuNy0zLjEgMy45LTUuNSA4LjMtNyAxMy4xLS45IDMuMy0xLjcgNi42LTEuNyAxMC0uMSAyLjUtLjEgNS4xIC4zIDcuNiAxLjEgNy42IDQuMyAxNC45IDguOCAyMS4xIDIgMi43IDQuMiA1LjMgNi45IDcuMyAxLjYgMS4zIDMuNSAyLjEgNS4zIDMgMy4xIDEuNyA2LjMgMy4yIDkuMSA1LjUgMi43IDIuMSA0LjYgNS4zIDQuNCA4LjggMCA3My43IDAgMTQ3LjMgMCAyMjEgMCAxLjQtLjEgMi43IDAgNCAuMSAxLjUgLjggMi44IDEuNSA0LjEgLjkgMS43IDEuOCAzLjMgMy4yIDQuNiAuOSAuOCAyIDEuNCAzLjIgMS4yIDEuNS0uMiAyLjctMS40IDMuNC0yLjYgMS0xLjUgMS43LTMuMiAyLjMtNC45IC44LTIuMSAuNC00LjQgLjUtNi42IC4xLTQgMC04LjEgLjEtMTIuMSAwLTUuOSAwLTExLjggLjEtMTcuNyAuMS0zLjYgMC03LjIgLjEtMTAuOSAuMi00IDAtOC4xIC4xLTEyLjEgMC02IDAtMTIgLjEtMTggLjEtMy42IDAtNy4yIC4xLTEwLjkgLjEtMy45IDAtNy45IC4xLTExLjggMC02IDAtMTIgLjEtMTggLjItMy45IDAtNy45IC4yLTExLjggLjMgMS40IC4xIDIuOSAuMiA0LjQgLjIgMy42IC40IDcuMiAuOCAxMC44IC4zIDMuNCAuNCA2LjkgLjkgMTAuMyAuNCAzLjEgLjUgNi4yIDEgOS4zIC42IDQuMSAuOSA4LjIgMS41IDEyLjMgMS41IDkgMi44IDE4LjEgNS4xIDI3IDEuMSA0LjggMi40IDkuNiA0IDE0LjMgMi41IDcuOSA1LjcgMTUuNyAxMC4zIDIyLjYgMS43IDIuNiAzLjkgNSA2LjEgNy4yIC4zIC4yIC42IC41IC45IC43IC42IC4zIDEuMy0uMSAxLjctLjYgLjctLjkgMS4yLTEuOSAxLjctMi45IDQuMS03LjggOC4yLTE1LjYgMTIuMy0yMy4zIC43LTEuMyAxLjQtMi42IDIuNi0zLjYgMS44LTEuNiAzLjgtMi43IDYtMy42IDIuOS0xLjIgNS45LTIuMiA5LTIuNCA2LjYtLjYgMTMuMSAuNyAxOS42IDEuOCAzLjcgLjYgNy40IDEuMiAxMS4xIDEuNCAzLjcgLjEgNy41IC4xIDExLjItLjMgOC42LS45IDE3LTMgMjQuOS02LjIgNS4zLTIuMiAxMC41LTQuOCAxNS4zLTcuOSAxMS41LTcuMiAyMS41LTE2LjYgMzAtMjcgMS4yLTEuNCAyLjItMi45IDMuNS00LjMtMS4yIDMuMi0yLjcgNi40LTQuMiA5LjUtMS4zIDIuOS0yLjggNS42LTQuMyA4LjQtNS4yIDkuNi0xMSAxOC45LTE3LjggMjcuNS00IDUuMi04LjUgMTAuMS0xMy4zIDE0LjYtNi42IDYuMS0xNC4xIDExLjQtMjIuNCAxNC44LTguMiAzLjQtMTcuMyA0LjYtMjYuMSAzLjMtMy42LS42LTctMS43LTEwLjQtMi45LTIuOC0xLTUuNC0yLjQtOC0zLjctMy40LTEuNy02LjYtMy44LTkuNy02LjEgMi43IDMuMSA1LjcgNS45IDguNyA4LjYgNC4zIDMuOCA4LjcgNy4zIDEzLjYgMTAuMiA0IDIuNSA4LjMgNC40IDEyLjggNS41IDEuNSAuNCAzIC41IDQuNSAuNi0xLjMgMS4xLTIuNiAyLTQgMy05LjYgNi41LTIwIDExLjktMzAuNyAxNi40LTIwLjkgOC43LTQzLjIgMTQtNjUuNyAxNS4zLTQuNyAuMi05LjMgLjQtMTQgLjQtNS0uMS0xMC0uMS0xNC45LS43LTExLjItLjgtMjIuMy0yLjctMzMuMi01LjQtMTAuNC0yLjctMjAuNi02LjEtMzAuMy0xMC42LTguNy0zLjktMTcuMS04LjQtMjUtMTMuOC0xLjgtMS4zLTMuNy0yLjUtNS40LTQuMSA2LjYtMS4yIDEzLTMuNCAxOS02LjUgNS43LTIuOSAxMS02LjcgMTUuNi0xMS4xIDIuMi0yLjIgNC4zLTQuNiA2LjItNy4xLTMuNCAyLjEtNi45IDQuMi0xMC42IDUuOC00LjQgMi4yLTkuMSAzLjgtMTMuOCA1LTUuNyAxLjUtMTEuNyAxLjctMTcuNiAxLjEtOC4xLTEtMTUuOS00LjMtMjIuNS05LTQuMy0yLjktOC4yLTYuNC0xMi0xMC4xLTkuOS0xMC4yLTE4LjItMjEuOC0yNS43LTMzLjktMy45LTYuMy03LjUtMTIuNy0xMS4xLTE5LjItMS0yLTIuMS00LjEtMy4yLTYuMSAyLjggMi45IDUuNiA2IDguNCA4LjkgMTkuMiAxOS4yIDM3LjYgMzIuMyA1My43IDM1LjUgMy4xIC43IDYuMyAuNSA5LjUgLjggMi44IC4zIDUuNiAuMiA4LjMgLjMgNSAuMSAxMC4xIDAgMTUuMi0uMiAzLjYtLjIgNy4zLS43IDEwLjktMS4xIDIuMS0uMiA0LjEtLjcgNi4xLTEuMiAzLjktMSA4LjEtMSAxMS44IC42IDQuOCAxLjggOC40IDUuNiAxMS40IDkuNyAyLjIgMyA0LjEgNi4yIDUuNyA5LjYgMS4yIDIuNCAyLjUgNC44IDMuNiA3LjMgMSAyLjIgMi4yIDQuNCAzLjQgNi41IC43IDEgMS40IDIuMiAyLjYgMi42IDEuMS0uOCAxLjctMS45IDIuMy0zIDIuMS00LjIgMy40LTguNiA0LjktMTMgMi02LjYgMy44LTEzLjMgNS4yLTIwIDIuMi05LjMgMy4yLTE4LjcgNC41LTI4LjEgLjYtNCAuOC04IDEuMy0xMiAuOS0xMC42IDEuOS0yMS4zIDIuMi0zMS45IC4xLTEuOSAuMi0zLjcgLjMtNS42IDAtNC4zIC4yLTguNyAuMi0xMyAwLTIuNCAwLTQuOCAwLTcuMSAwLTUuMS0uMi0xMC4xLS4yLTE1LjItLjItNi42LS43LTEzLjItMS4zLTE5LjgtLjctNS45LTEuNS0xMS44LTMuMS0xNy41LTItNy43LTUuNi0xNS05LjgtMjEuOC0zLjItNS4xLTYuOC05LjktMTEuMS0xNC0zLjktMy45LTguNi03LjEtMTMuOS04LjQtMS41LS40LTMuMS0uNC00LjYtLjYgLjEtMyAuNy01LjkgMS4zLTguOCAxLjYtNy43IDMuOC0xNS4zIDYuOC0yMi42IDEuNS00IDMuNC03LjkgNS40LTExLjcgMy40LTYuNiA3LjYtMTIuOCAxMi41LTE4LjV6bTMxLjMgMS43Yy40LS4xIC43LS4xIDEuMS0uMiAuMiAxLjggLjEgMy42IC4xIDUuNGwwIDM4LjFjMCAxLjcgLjEgMy41LS4yIDUuMi0uNCAwLS43IDAtMS4xIDAtLjktMy44LTEuNy03LjYtMi42LTExLjMtLjQtMS41LS42LTMuMS0xLjEtNC42LTEuNy0uMi0zLjQtLjItNS4yLS4yLTUuMSAwLTEwLjEgMC0xNS4yIDAtMS43IDAtMy4zIC4xLTUgMCAwLS40LS4zLS45IC4yLTEuMiAxLjMtLjcgMi43LS45IDQuMS0xLjQgMy40LTEuMSA2LjktMi4yIDEwLjMtMy4zIDEuNC0uNSAyLjktLjcgNC4yLTEuNSAwLS42IDAtMS4xIDAtMS43LTEuMi0uNi0yLjUtLjktMy44LTEuMy0zLjEtMS02LjMtMi05LjQtMy0xLjgtLjYtMy43LTEtNS40LTEuOCAwLS40LS4xLS43LS4xLTEuMSA1LjEtLjIgMTAuMiAuMSAxNS4zLS4xIDMuNC0uMSA2LjcgLjEgMTAuMS0uMSAuMS0uNCAuMy0uOCAuNC0xLjIgMS4xLTQuOSAyLjMtOS44IDMuNC0xNC43em02LS4yYy40IDAgLjcgLjEgMS4xIC4yIDEgMy44IDEuNyA3LjggMi43IDExLjYgLjQgMS40IC42IDIuOSAxIDQuMyAyLjUgLjIgNS4xIDAgNy42IDAgNS4yIC4xIDEwLjMgLjEgMTUuNSAuMSAuOCAwIDEuNSAwIDIuMyAuMSAwIC40LS4xIC43LS4xIDEuMS0xLjggLjgtMy44IDEuMi01LjcgMS45LTMuNyAxLjItNy41IDIuNC0xMS4yIDMuNi0uNiAuMi0xLjEgLjQtMS43IC42LS4yIC42LS4yIDEuMS0uMSAxLjcgLjkgLjUgMS44IC44IDIuOCAxLjEgNC45IDEuNSA5LjcgMy4xIDE0LjYgNC42IC40IC4xIC44IC4zIDEuMSAuNSAuNCAuMyAuMiAuOCAuMiAxLjItMS43IC4xLTMuMyAwLTUgMC01LjIgMC0xMC4zIDAtMTUuNSAwLTEuNiAwLTMuMiAwLTQuOCAuMi0uNSAxLjctLjcgMy40LTEuMiA1LjEtLjkgMy42LTEuNSA3LjItMi41IDEwLjgtLjQgMC0uNyAwLTEuMSAuMS0uMy0xLjctLjItMy41LS4yLTUuMmwwLTM4LjFjMC0xLjgtLjEtMy42IC4xLTUuNHptLTE4NiA0NWMxLjEtMi4yIDIuMS00LjQgMy40LTYuNS0xLjggNy42LTIuOSAxNS4zLTMuNiAyMy0uOCA3LjctLjggMTUuNS0uNSAyMy4yIDEuMSAxOS45IDUuNSAzOS44IDE0LjIgNTcuOSAzIDYgNi40IDExLjggMTAuNSAxNy4xIDYuMSA3LjUgMTIuNSAxNC44IDE5LjggMjEuMSA0LjggNC4xIDEwIDcuOCAxNS41IDEwLjggMy4zIDEuNyA2LjUgMy40IDkuOSA0LjcgNSAyIDEwLjIgMy42IDE1LjQgNC45IDMuOCAxIDcuOCAxLjQgMTEuNSAyLjcgNSAxLjYgOS41IDQuNiAxMyA4LjQgNC45IDUuMiA4LjEgMTEuOSAxMC4yIDE4LjcgMSAyLjkgMS42IDUuOSAyLjIgOC45IC4yIC44IC4yIDEuNSAuMiAyLjMtNi41IDIuOC0xMy4zIDUuMS0yMC4zIDYuMi00LjEgLjgtOC4zIDEtMTIuNSAxLjEtMTAuMiAuMi0yMC41LTEuOC0zMC4xLTUuMS0zLjctMS40LTcuNS0yLjktMTEtNC43LTguMS0zLjgtMTUuNi04LjctMjIuNS0xNC41LTIuOS0yLjYtNS44LTUuMS04LjQtOC05LjItOS44LTE2LjMtMjEuNC0yMS44LTMzLjctMi40LTUuNS00LjYtMTEuMi02LjQtMTctMS4yLTMuOS0yLjQtNy45LTMuMy0xMS45LS43LTIuOS0xLjItNS45LTEuOS04LjktLjUtMi4xLS43LTQuMy0xLTYuNS0uOC01LjQtMS4zLTEwLjktMS4zLTE2LjQgLjEtNi4yIC4yLTEyLjQgMS4xLTE4LjUgLjQtMi45IC43LTUuNyAxLjItOC42IDEtNS43IDIuMS0xMS40IDMuNy0xNi45IDMuMS0xMS42IDcuNS0yMyAxMi43LTMzLjh6bTM2My43LTYuNGMxLjEgMS43IDEuOSAzLjUgMi44IDUuMyAyLjEgNC41IDQuMiA4LjkgNiAxMy41IDcuNiAxOC44IDEyLjMgMzguOCAxMyA1OSAwIDEuOCAuMSAzLjUgLjEgNS4zIC4xIDkuNi0xLjMgMTkuMS0zLjIgMjguNS0uNyAzLjYtMS41IDcuMi0yLjYgMTAuNy00IDE0LjctMTAgMjktMTguNCA0MS44LTguMiAxMi42LTE5IDIzLjUtMzEuOCAzMS40LTUuNyAzLjYtMTEuOCA2LjYtMTggOS4yLTUuOCAyLjItMTEuNyA0LTE3LjggNS4xLTYuNCAxLTEyLjkgMS41LTE5LjQgMS4yLTcuOS0uNS0xNS44LTIuMS0yMy4yLTQuOC0xLjktLjgtMy45LTEuNS01LjgtMi4zLS4yLTEuNSAuMi0zIC41LTQuNSAxLjItNS43IDMtMTEuNCA1LjctMTYuNiAyLjQtNC41IDUuNS04LjcgOS41LTExLjkgMi40LTIuMSA1LjItMy42IDguMi00LjggMy42LTEuNSA3LjUtMiAxMS4yLTIuOCA3LjItMS43IDE0LjQtMy45IDIxLjItNyAxMC4zLTQuNyAxOS43LTExLjQgMjcuNi0xOS41IDEuNi0xLjYgMy4yLTMuMiA0LjctNC45IDMuNC0zLjggNi43LTcuNiA5LjgtMTEuNSA3LjUtMTAuMSAxMi44LTIxLjYgMTYuNy0zMy41IDEuNi01LjMgMy4yLTEwLjYgNC4yLTE2LjEgLjYtMi45IDEtNS44IDEuNS04LjcgLjktNi4xIDEuNi0xMi4yIDEuNy0xOC40IC4xLTYuNiAuMS0xMy4zLS41LTE5LjktLjctOC0xLjktMTYtMy43LTIzLjh6XCJdXG59O1xudmFyIGZhU3VzZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzdXNlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmN2Q2XCIsIFwiTTYwNC41IDIxMGExMC40IDEwLjQgMCAxIDEgLTExLjQtMTcuNCAxMC40IDEwLjQgMCAxIDEgMTEuNCAxNy40ek02MjEgMTg3LjJhMzguNSAzOC41IDAgMSAxIC03NSAxNy42IDM4LjUgMzguNSAwIDEgMSA3NS0xNy42ek00MzMuNyAzMzYuN2MzLjIgNC42IDUuOCA5IDcuMyAxMy40IDEgMy4xIDIuNCA3LjMgNS41IDguOSAuMiAuMSAuMyAuMiAuNSAuMiA1LjcgMi4xIDIwLjMgMS43IDIwLjMgMS43bDI2LjggMGMyLjMgMCAyMi40IDAgMjEuOS0yLjMtMi40LTEwLjgtMTQuOS0xMi43LTI0LjQtMTguMy04LjctNS4yLTE3LTExLjEtMjAuOC0yMS4zLTItNS4yLS44LTE3LjQgMi42LTIxLjggMi41LTMuMiA2LjEtNS4zIDEwLTYuMiA0LjMtLjkgOC44LS4xIDEzLjEgLjMgNS4zIC41IDEwLjYgMS41IDE1LjkgMi4yIDEwLjMgMS4zIDIwLjYgMS45IDMxIDEuNiAxNy4xLS41IDM0LjItMy4yIDUwLjQtOC43IDExLjMtMy44IDIyLjQtOC45IDMyLTE2LjEgMTAuOS04LjEgOC4xLTcuNC0zLTYuMi0xMy4zIDEuNC0yNi42IDEuNi0zOS45IC44LTEyLjQtLjctMjQuNy0yLjItMzUuOS03LjktOC44LTQuNi0xNi40LTkuMS0yMy40LTE2LjItMS0xLjEtMS43LTQuMiAuMi02LjIgMS45LTEuOSA1LjgtLjggNyAuMiAxMi4yIDEwLjIgMzAuNSAxOC42IDQ5LjMgMTkuNSAxMC4yIC41IDIwLjEgLjcgMzAuNCAuMyA1LjEtLjIgMTIuOC0uMiAxNy45LS4zIDIuNiAwIDkuOCAuNyAxMS4yLTIuMSAuNC0uOCAuNC0xLjggLjMtMi43LTEuNS00MC45LTQuNS04Ni45LTQ3LjMtMTA2LjUtMzEuOS0xNC42LTc5LjctMzcuMi05OS45LTQ2LjYtNC43LTIuMi0xMC4yIDEuMy0xMC4yIDYuNSAwIDEzLjYgLjcgMzMuMyAuNyA1MS4xLTkuNy05LjktMjYtMTYuMS0zOC40LTIxLjgtMTQuMS02LjUtMjguNy0xMi00My41LTE2LjYtMjkuOC05LjItNjAuNy0xNC45LTkxLjctMTgtMzUuMi0zLjUtNzEtMS44LTEwNS43IDUuMy01Ni45IDEyLjItMTEzLjEgMzkuNy0xNTUuNyA3OS44LTI2LjEgMjQuNi00Ni42IDU5LjctNDggOTUuMi0yIDUwLjMgMTIuMSA3Ny4zIDM4IDEwNS4yIDQxLjMgNDQuNCAxMzAuMiA1MC42IDE2Ni4yLTIgMTYuMi0yMy43IDE5LjctNTUuOCA4LTgyLTExLjgtMjYuMi0zOC44LTQ1LjEtNjcuNC00Ni0yMi4yLS43LTQ1LjkgMTAuNi01NC41IDMxLjEtNi41IDE1LjctMi44IDM1LjEgOSA0Ny4zIDQuNiA0LjggMTAuOSA4LjcgMTcuNyA3LjEgNC0uOSA3LjQtMy45IDgtOCAuOS02LTQuNC05LjktNy42LTE0LjUtNS44LTguMy00LjctMjAuOSAyLjctMjcuOSA2LjItNiAxNS4zLTcuOCAyMy45LTcuNyA4IDAgMTYuMiAxLjQgMjMuMSA1LjUgOS43IDUuNyAxNi4yIDE2LjIgMTguNCAyNy4yIDYuNyAzMy0yMC4yIDU5LjktNTYuNiA2Mi0xOC42IDEuMS0zNy42LTMuOC01Mi4xLTE1LjUtMzYuOS0yOS44LTQ1LjktOTAuMy0zLjgtMTIyLjcgNDAtMzAuNyA5MC40LTIyLjggMTIwLjItNi44IDIzLjggMTIuOCA0MS41IDMzLjYgNTUgNTYuNyA2LjcgMTEuNiAxMi41IDIzLjcgMTcuOCAzNi4xIDUuMSAxMS44IDkuOSAyMy44IDIwLjIgMzIuNSA2LjggNS44IDE1LjIgNS42IDI0LjEgNS42bDUwLjggMGM2LjkgMCA1LjItNC42IDIuMi03LjctNi43LTYuOS0xNi40LTguNC0yNS40LTEwLjktMjAuNS01LjYtMTguNC0zMi44LTEyLjctMzIuOCAxOC4zIDAgMTguOSAuNiAzNC45IC4zIDIzLjItLjMgMzAuMi0xLjcgNDguMyA1IDkuNyAzLjYgMTkgMTMuMSAyNS4xIDIxLjd6XCJdXG59O1xudmFyIGZhQXBwU3RvcmVJb3MgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYXBwLXN0b3JlLWlvcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjM3MFwiLCBcIk00MDAgMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTI3IDM4NC41Yy01LjUgOS42LTE3LjggMTIuOC0yNy4zIDcuMy05LjYtNS41LTEyLjgtMTcuOC03LjMtMjcuM2wxNC4zLTI0LjdjMTYuMS00LjkgMjkuMy0xLjEgMzkuNiAxMS40TDEyNyAzODQuNXptMTM4LjktNTMuOUw4NCAzMzAuNmMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTEgMCA2NS40LTExMy4yLTIwLjUtMzUuNGMtNS41LTkuNi0yLjItMjEuOCA3LjMtMjcuMyA5LjYtNS41IDIxLjgtMi4yIDI3LjMgNy4zbDguOSAxNS40IDguOS0xNS40YzUuNS05LjYgMTcuOC0xMi44IDI3LjMtNy4zIDkuNiA1LjUgMTIuOCAxNy44IDcuMyAyNy4zbC04NS44IDE0OC42IDYyLjEgMGMyMC4yIDAgMzEuNSAyMy43IDIyLjcgNDB6bTk4LjEgMGwtMjkgMCAxOS42IDMzLjljNS41IDkuNiAyLjIgMjEuOC03LjMgMjcuMy05LjYgNS41LTIxLjggMi4yLTI3LjMtNy4zLTMyLjktNTYuOS01Ny41LTk5LjctNzQtMTI4LjEtMTYuNy0yOS00LjgtNTggNy4xLTY3LjggMTMuMSAyMi43IDMyLjcgNTYuNyA1OC45IDEwMmw1MiAwYzExIDAgMjAgOSAyMCAyMCAwIDExLjEtOSAyMC0yMCAyMHpcIl1cbn07XG52YXIgZmFTcXVhcmVEcmliYmJsZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtZHJpYmJibGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImRyaWJiYmxlLXNxdWFyZVwiXSwgXCJmMzk3XCIsIFwiTTE2NS45IDEzMi41Yy0zOC4zIDE4LTY2LjggNTMuMy03NS43IDk1LjcgNi4xIC4xIDYyLjQgLjMgMTI2LjQtMTYuNy0yMi43LTQwLjItNDcuMS03NC4xLTUwLjctNzl6bTI2LjEtOS4xYzMuOCA1LjEgMjguNiAzOC45IDUxIDgwIDQ4LjYtMTguMyA2OS4xLTQ1LjkgNzEuNi00OS40LTMzLjYtMjkuOC03OS4zLTQxLjEtMTIyLjYtMzAuNnpNMjc3LjQgMzgyYy0yLTEyLTEwLTUzLjgtMjkuMi0xMDMuNi01NS4xIDE4LjgtOTMuOCA1Ni40LTEwOC4xIDg1LjYgNDAuNSAzMS42IDkzLjMgMzYuNyAxMzcuMyAxOHpNMjI3LjggMjMyLjZDMTU5LjYgMjUzIDkzLjQgMjUyLjIgODcuNCAyNTJsMCA0LjJjMCAzNS4xIDEzLjMgNjcuMSAzNS4xIDkxLjQgMjIuMi0zNy45IDY3LjEtNzcuOSAxMTYuNS05MS44LTMuNC03LjgtNy4yLTE1LjUtMTEuMS0yMy4ybC0uMSAwem03Mi41IDEzNi45YzMwLjctMjAuNyA1Mi41LTUzLjYgNTguNi05MS42LTQuNi0xLjUtNDIuMy0xMi43LTg1LjEtNS44IDE3LjkgNDkuMSAyNS4xIDg5LjEgMjYuNSA5Ny40em0tMzQuOC0xMTljNDUuNS01LjcgOTAuNyAzLjQgOTUuMiA0LjQtLjMtMzIuMy0xMS44LTYxLjktMzAuOS04NS4xLTIuOSAzLjktMjUuOCAzMy4yLTc2LjMgNTMuOSA0LjggOS44IDguMyAxNy44IDEyIDI2Ljh6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0yMjQgOTZhMTYwIDE2MCAwIDEgMSAwIDMyMCAxNjAgMTYwIDAgMSAxIDAtMzIwelwiXVxufTtcbnZhciBmYURyaWJiYmxlU3F1YXJlID0gZmFTcXVhcmVEcmliYmJsZTtcbnZhciBmYVVpa2l0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3Vpa2l0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNDAzXCIsIFwiTTQ0My45IDEyOGwwIDI1Ni0yMjUuOSAxMjgtMjE4LTEyOCAwLTIxNC4zIDg3LjYgNDUuMSAwIDExNyAxMzMuNSA3NS41IDEzNS44LTc1LjUgMC0xNTEtMTAxLjEtNTcuNiA4Ny42LTUzLjEgMTAwLjUgNTcuOXpNMzA4LjYgNDkuMWwtODQuOC00OS4xLTg4LjYgNTQuOCA4NiA0Ny4zIDg3LjQtNTN6XCJdXG59O1xudmFyIGZhU3VwZXJwb3dlcnMgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3VwZXJwb3dlcnMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyZGRcIiwgXCJNNDQ4IDMyYy04My4zIDExLTE2Ni44IDIyLTI1MCAzMy05MiAxMi41LTE2My4zIDg2LjctMTY5IDE4MC0zLjMgNTUuNSAxOCAxMDkuNSA1Ny44IDE0OC4yTDAgNDgwYzgzLjMtMTEgMTY2LjUtMjIgMjQ5LjgtMzMgOTEuOC0xMi41IDE2My4zLTg2LjggMTY4LjctMTc5LjggMy41LTU1LjUtMTgtMTA5LjUtNTcuNy0xNDguMkw0NDggMzJ6TTM2OC4zIDI2NC4zYy00LjIgNzkuNS03NCAxMzkuMi0xNTIuOCAxMzQuNS03OS41LTQuNy0xNDAuNy03MS0xMzYuMy0xNTEgNC41LTc5LjIgNzQuMy0xMzkuMyAxNTMtMTM0LjUgNzkuMyA0LjcgMTQwLjUgNzEgMTM2LjEgMTUxelwiXVxufTtcbnZhciBmYVlvdXR1YmUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAneW91dHViZScsXG4gIGljb246IFs1NzYsIDUxMiwgWzYxODAyXSwgXCJmMTY3XCIsIFwiTTU0OS43IDEyNC4xQzU0My41IDEwMC40IDUyNC45IDgxLjggNTAxLjQgNzUuNSA0NTguOSA2NCAyODguMSA2NCAyODguMSA2NFMxMTcuMyA2NCA3NC43IDc1LjVDNTEuMiA4MS44IDMyLjcgMTAwLjQgMjYuNCAxMjQuMSAxNSAxNjcgMTUgMjU2LjQgMTUgMjU2LjRzMCA4OS40IDExLjQgMTMyLjNjNi4zIDIzLjYgMjQuOCA0MS41IDQ4LjMgNDcuOCA0Mi42IDExLjUgMjEzLjQgMTEuNSAyMTMuNCAxMS41czE3MC44IDAgMjEzLjQtMTEuNWMyMy41LTYuMyA0Mi0yNC4yIDQ4LjMtNDcuOCAxMS40LTQyLjkgMTEuNC0xMzIuMyAxMS40LTEzMi4zczAtODkuNC0xMS40LTEzMi4zek0yMzIuMiAzMzcuNmwwLTE2Mi40IDE0Mi43IDgxLjItMTQyLjcgODEuMnpcIl1cbn07XG52YXIgZmFFbWJlciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdlbWJlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjQyM1wiLCBcIk02MzkuOSAyNTQuNmMtMS4xLTEwLjctMTAuNy02LjgtMTAuNy02LjhzLTE1LjYgMTIuMS0yOS4zIDEwLjdjLTEzLjctMS4zLTkuNC0zMi05LjQtMzJzMy0yOC4xLTUuMS0zMC40Yy04LjEtMi40LTE4IDcuMy0xOCA3LjNzLTEyLjQgMTMuNy0xOC4zIDMxLjJsLTEuNiAuNXMxLjktMzAuNi0uMy0zNy42Yy0xLjYtMy41LTE2LjQtMy4yLTE4LjggM3MtMTQuMiA0OS4yLTE1IDY3LjJjMCAwLTIzLjEgMTkuNi00My4zIDIyLjhzLTI1LTkuNC0yNS05LjQgNTQuOC0xNS4zIDUyLjktNTkuMS00NC4yLTI3LjYtNDktMjRjLTQuNiAzLjUtMjkuNCAxOC40LTM2LjYgNTkuNy0uMiAxLjQtLjcgNy41LS43IDcuNXMtMjEuMiAxNC4yLTMzIDE4YzAgMCAzMy01NS42LTcuMy04MC45LTExLjQtNi44LTIxLjMtLjUtMjcuMiA1LjMgMTMuNi0xNy4zIDQ2LjQtNjQuMiAzNi45LTEwNS4yLTUuOC0yNC40LTE4LTI3LjEtMjkuMi0yMy4xLTE3IDYuNy0yMy41IDE2LjctMjMuNSAxNi43cy0yMiAzMi0yNy4xIDc5LjUtMTIuNiAxMDUuMS0xMi42IDEwNS4xLTEwLjUgMTAuMi0yMC4yIDEwLjctNS40LTI4LjctNS40LTI4LjcgNy41LTQ0LjYgNy01Mi4xLTEuMS0xMS42LTkuOS0xNC4yYy04LjktMi43LTE4LjUgOC42LTE4LjUgOC42cy0yNS41IDM4LjctMjcuNyA0NC42bC0xLjMgMi40LTEuMy0xLjZzMTgtNTIuNyAuOC01My41LTI4LjUgMTguOC0yOC41IDE4LjgtMTkuNiAzMi44LTIwLjQgMzYuNWwtMS4zLTEuNnM4LjEtMzguMiA2LjQtNDcuNmMtMS42LTkuNC0xMC41LTcuNS0xMC41LTcuNXMtMTEuMy0xLjMtMTQuMiA1LjktMTMuNyA1NS4zLTE1IDcwLjdjMCAwLTI4LjIgMjAuMi00Ni44IDIwLjQtMTguNSAuMy0xNi43LTExLjgtMTYuNy0xMS44czY4LTIzLjMgNDkuNC02OS4yYy04LjMtMTEuOC0xOC0xNS41LTMxLjctMTUuMy0xMy43IC4zLTMwLjMgOC42LTQxLjMgMzMuMy01LjMgMTEuOC02LjggMjMtNy44IDMxLjUgMCAwLTEyLjMgMi40LTE4LjgtMi45cy0xMCAwLTEwIDAtMTEuMiAxNC0uMSAxOC4zIDI4LjEgNi4xIDI4LjEgNi4xYzEuNiA3LjUgNi4yIDE5LjUgMTkuNiAyOS43IDIwLjIgMTUuMyA1OC44LTEuMyA1OC44LTEuM2wxNS45LTguOHMuNSAxNC42IDEyLjEgMTYuNyAxNi40IDEgMzYuNS00Ny45YzExLjgtMjUgMTIuNi0yMy42IDEyLjYtMjMuNmwxLjMtLjNzLTkuMSA0Ni44LTUuNiA1OS43QzE4Ny43IDMxOS40IDIwMyAzMTggMjAzIDMxOHM4LjMgMi40IDE1LTIxLjIgMTkuNi00OS45IDE5LjYtNDkuOWwxLjYgMHMtNS42IDQ4LjEgMyA2My43IDMwLjkgNS4zIDMwLjkgNS4zIDE1LjYtNy44IDE4LTEwLjJjMCAwIDE4LjUgMTUuOCA0NC42IDEyLjkgNTguMy0xMS41IDc5LjEtMjUuOSA3OS4xLTI1LjlzMTAgMjQuNCA0MS4xIDI2LjdjMzUuNSAyLjcgNTQuOC0xOC42IDU0LjgtMTguNnMtLjMgMTMuNSAxMi4xIDE4LjYgMjAuNy0yMi44IDIwLjctMjIuOGwyMC43LTU3LjIgMS45IDBzMS4xIDM3LjMgMjEuNSA0My4yIDQ3LTEzLjcgNDctMTMuNyA2LjQtMy41IDUuMy0xNC4zem0tNTc4IDUuM2MuOC0zMiAyMS44LTQ1LjkgMjktMzkgNy4zIDcgNC42IDIyLTkuMSAzMS40LTEzLjcgOS41LTE5LjkgNy42LTE5LjkgNy42ek0zMzQuNyAxMzYuMXMxOS4xLTQ5LjcgMjMuNi0yNS41LTQwIDk2LjItNDAgOTYuMmMuNS0xNi4yIDE2LjQtNzAuNyAxNi40LTcwLjd6bTIyLjggMTM4LjRjLTEyLjYgMzMtNDMuMyAxOS42LTQzLjMgMTkuNnMtMy41LTExLjggNi40LTQ0LjkgMzMuMy0yMC4yIDMzLjMtMjAuMiAxNi4yIDEyLjQgMy42IDQ1LjV6bTg0LjYtMTQuNnMtMy0xMC41IDguMS0zMC42YzExLTIwLjIgMTkuNi05LjEgMTkuNi05LjFzOS40IDEwLjItMS4zIDI1LjUtMjYuNCAxNC4yLTI2LjQgMTQuMnpcIl1cbn07XG52YXIgZmFCb290c3RyYXAgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYm9vdHN0cmFwJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmODM2XCIsIFwiTTMzMy41IDIwMS40YzAtMjIuMS0xNS42LTM0LjMtNDMtMzQuM2wtNTAuNCAwIDAgNzEuMiA0Mi41IDBjMzIuOC0uMSA1MC45LTEzLjMgNTAuOS0zNi45ek01MTcgMTg4LjZjLTkuNS0zMC45LTEwLjktNjguOC05LjgtOTguMSAxLjEtMzAuNS0yMi43LTU4LjUtNTQuNy01OC41TDEyMy43IDMyYy0zMi4xIDAtNTUuOCAyOC4xLTU0LjcgNTguNSAxIDI5LjMtLjMgNjcuMi05LjggOTguMS05LjYgMzEtMjUuNyA1MC42LTUyLjIgNTMuMWwwIDI4LjVjMjYuNCAyLjUgNDIuNiAyMi4xIDUyLjIgNTMuMSA5LjUgMzAuOSAxMC45IDY4LjggOS44IDk4LjEtMS4xIDMwLjUgMjIuNyA1OC41IDU0LjcgNTguNWwzMjguNyAwYzMyLjEgMCA1NS44LTI4LjEgNTQuNy01OC41LTEtMjkuMyAuMy02Ny4yIDkuOC05OC4xIDkuNi0zMSAyNS43LTUwLjYgNTIuMS01My4xbDAtMjguNWMtMjYuMy0yLjUtNDIuNS0yMi4xLTUyLTUzLjF6TTMwMC4yIDM3NS4xbC05Ny45IDAgMC0yMzguMyA5Ny40IDBjNDMuMyAwIDcxLjcgMjMuNCA3MS43IDU5LjQgMCAyNS4zLTE5LjEgNDcuOS00My41IDUxLjhsMCAxLjNjMzMuMiAzLjYgNTUuNSAyNi42IDU1LjUgNTguMyAwIDQyLjEtMzEuMyA2Ny41LTgzLjIgNjcuNXptLTEwLTEwOC43bC01MC4xIDAgMCA3OC40IDUyLjMgMGMzNC4yIDAgNTIuMy0xMy43IDUyLjMtMzkuNSAwLTI1LjctMTguNi0zOC45LTU0LjUtMzguOXpcIl1cbn07XG52YXIgZmFJdHVuZXMgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnaXR1bmVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmM2I0XCIsIFwiTTIyMy42IDgwLjNhMTcxLjMgMTcxLjMgMCAxIDAgLjIgMzQyLjUgMTcxLjMgMTcxLjMgMCAxIDAgLS4yLTM0Mi41em03OS40IDI0MGMtMy4yIDEzLjYtMTMuNSAyMS4yLTI3LjMgMjMuOC0xMi4xIDIuMi0yMi4yIDIuOC0zMS45LTUtMTEuOC0xMC0xMi0yNi40LTEuNC0zNi44IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgMy4yLTMuNiAyLjItMiAyLjItODAuOCAwLTUuNi0yLjctNy4xLTguNC02LjEtNCAuNy05MS45IDE3LjEtOTEuOSAxNy4xLTUgMS4xLTYuNyAyLjYtNi43IDguMyAwIDExNi4xIC41IDExMC44LTEuMiAxMTguNS0yLjEgOS03LjYgMTUuOC0xNC45IDE5LjYtOC4zIDQuNi0yMy40IDYuNi0zMS40IDUuMi0yMS40LTQtMjguOS0yOC43LTE0LjQtNDIuOSA4LjQtOCAyMC4zLTkuNiAzOC0xMi44IDMtLjUgNS42LTEuMiA3LjctMy43IDUtNS43IC45LTEyNyAyLjYtMTMzLjcgLjQtMi42IDEuNS00LjggMy41LTYuNCAyLjEtMS43IDUuOC0yLjcgNi43LTIuNyAxMDEtMTkgMTEzLjMtMjEuNCAxMTUuMS0yMS40IDUuNy0uNCA5IDMgOSA4LjctLjEgMTcwLjYgLjQgMTYxLjQtMSAxNjcuNnpNMzQ1LjIgMzJMMTAyLjggMzJDNDUuOSAzMiAwIDc3LjkgMCAxMzQuOEwwIDM3Ny4yQzAgNDM0LjEgNDUuOSA0ODAgMTAyLjggNDgwbDI0Mi40IDBjNTcgMCAxMDIuOC00NS45IDEwMi44LTEwMi44bDAtMjQyLjRDNDQ4IDc3LjkgNDAyLjEgMzIgMzQ1LjIgMzJ6TTIyMy42IDU5YTE5Mi41IDE5Mi41IDAgMSAxIDAgMzg1IDE5Mi41IDE5Mi41IDAgMSAxIDAtMzg1elwiXVxufTtcbnZhciBmYVNxdWFyZVhpbmcgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3F1YXJlLXhpbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInhpbmctc3F1YXJlXCJdLCBcImYxNjlcIiwgXCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTkzLjggMzIwLjJjLTUuNSAwLTguNy01LjMtNi0xMC4zbDQ5LjMtODYuN2MuMSAwIC4xLS4xIDAtLjJsLTMxLjQtNTRjLTMtNS42IC4yLTEwLjEgNi0xMC4xbDQ2LjYgMGM1LjIgMCA5LjUgMi45IDEyLjkgOC43bDMxLjkgNTUuM2MtMS4zIDIuMy0xOCAzMS43LTUwLjEgODguMi0zLjUgNi4yLTcuNyA5LjEtMTIuNiA5LjFsLTQ2LjYgMHptMTYzLjUtMzMuNGwwIC4yIDY1LjUgMTE5YzIuOCA1LjEgLjEgMTAuMS02IDEwLjFsLTQ2LjYgMGMtNS41IDAtOS43LTIuOS0xMi45LTguN2wtNjYtMTIwLjNjMS44LTMuMiAyMi45LTQwLjQgNjMuMy0xMTEuNiAxMS43LTIwLjcgMjUuMS00NC4zIDQwLjEtNzAuOCAzLjMtNS44IDcuNC04LjcgMTIuNS04LjdsNDYuOSAwYzUuNy0uMSA4LjggNC43IDYgMTBMMjU3LjMgMjg2Ljh6XCJdXG59O1xudmFyIGZhWGluZ1NxdWFyZSA9IGZhU3F1YXJlWGluZztcbnZhciBmYUNzczNBbHQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY3NzMy1hbHQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYzOGJcIiwgXCJNMCAzMkwzNC45IDQyNy44IDE5MiA0ODAgMzQ5LjEgNDI3LjggMzg0IDMyIDAgMzJ6bTMxMy4xIDgwbC00LjggNDcuMy0xMTUuMyA0OS4zLS4zIC4xIDExMS41IDAtMTIuOCAxNDYuNi05OC4yIDI4LjctOTguOC0yOS4yLTYuNC03My45IDQ4LjkgMCAzLjIgMzguMyA1Mi42IDEzLjMgNTQuNy0xNS40IDMuNy02MS42LTE2Ni4zLS41IDAtLjEtLjIgLjEtMy42LTQ2LjMgMTEyLjEtNDYuNyA2LjUtMi43LTEyMi45IDAtNS44LTQ3LjMgMjQyLjIgMHpcIl1cbn07XG52YXIgZmFTcXVhcmVzcGFjZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmVzcGFjZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjViZVwiLCBcIk0xODYuMSAzNDMuM2MtOS43IDkuNy05LjcgMjUuMyAwIDM0LjlzMjUuMyA5LjYgMzQuOSAwTDM3OC4zIDIyMS4xYzE5LjMtMTkuMyA1MC42LTE5LjMgNjkuOSAwczE5LjMgNTAuNiAwIDY5LjlMMjk0IDQ0NS4xYzE5LjMgMTkuMyA1MC41IDE5LjMgNjkuOCAwbDAgMCAxMTkuMy0xMTkuMmMzOC42LTM4LjYgMzguNi0xMDEuMSAwLTEzOS43LTM4LjYtMzguNi0xMDEuMi0zOC42LTEzOS43IDBMMTg2LjEgMzQzLjN6TTQzMC43IDIzOC41Yy05LjctOS43LTI1LjMtOS43LTM0LjkgMEwyMzguNSAzOTUuN2MtMTkuMyAxOS4zLTUwLjUgMTkuMy02OS44IDBsMCAwYy05LjYtOS42LTI1LjMtOS43LTM0LjkgMGwwIDBjLTkuNyA5LjYtOS43IDI1LjMgMCAzNC45bDAgMGMzOC42IDM4LjYgMTAxLjEgMzguNiAxMzkuNyAwTDQzMC43IDI3My41YzkuNi05LjcgOS42LTI1LjMgMC0zNC45em0tMjYyIDg3LjNMMzI1LjkgMTY4LjdjOS42LTkuNiA5LjYtMjUuMyAwLTM0LjktOS42LTkuNi0yNS4zLTkuNi0zNC45IDBMMTMzLjcgMjkwLjljLTE5LjMgMTkuMy01MC42IDE5LjMtNjkuOSAwbDAgMGMtMTkuMy0xOS4zLTE5LjMtNTAuNSAwLTY5LjhsMCAwIDE1NC4yLTE1NC4yYy0xOS4zLTE5LjMtNTAuNS0xOS4zLTY5LjggMGwwIDAtMTE5LjIgMTE5LjNjLTM4LjYgMzguNi0zOC42IDEwMS4xIDAgMTM5LjcgMzguNiAzOC42IDEwMS4xIDM4LjYgMTM5LjcgMHpNODEuMyAyNzMuNWM5LjYgOS42IDI1LjMgOS42IDM0LjkgMEwyNzMuNSAxMTYuM2MxOS4zLTE5LjMgNTAuNi0xOS4zIDY5LjggMGwwIDBjOS43IDkuNiAyNS4zIDkuNiAzNC45IDBzOS42LTI1LjMgMC0zNC45Yy0zOC42LTM4LjYtMTAxLjEtMzguNi0xMzkuNyAwTDgxLjMgMjM4LjVjLTkuNiA5LjYtOS42IDI1LjMgMCAzNC45bDAgMHpcIl1cbn07XG52YXIgZmFUcmVsbG8gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndHJlbGxvJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMTgxXCIsIFwiTTM5Mi4zIDMyTDU2LjEgMzJjLTMxIDAtNTYuMSAyNS4xLTU2LjEgNTYtLjEgMCAwLTQgMCAzMzYgMCAzMC45IDI1LjEgNTYgNTYgNTZsMzM2LjIgMGMzMC44LS4yIDU1LjctMjUuMiA1NS43LTU2bDAtMzM2Yy4xLTMwLjgtMjQuOC01NS44LTU1LjYtNTZ6TTE5NyAzNzEuM2MtLjIgMTQuNy0xMi4xIDI2LjYtMjYuOSAyNi42bC04Mi43IDBjLTE0LjggLjEtMjYuOS0xMS44LTI3LTI2LjZsMC0yNTQuMmMwLTE0LjggMTItMjYuOSAyNi45LTI2LjlsODIuOSAwYzE0LjggMCAyNi45IDEyIDI2LjkgMjYuOWwwIDI1NC4yLS4xIDB6bTE5My4xLTExMmMwIDE0LjgtMTIgMjYuOS0yNi45IDI2LjlsLTgxIDBjLTE0LjggMC0yNi45LTEyLTI2LjktMjYuOWwwLTE0Mi4xYzAtMTQuOCAxMi0yNi45IDI2LjgtMjYuOWw4MS4xIDBjMTQuOCAwIDI2LjkgMTIgMjYuOSAyNi45bDAgMTQyLjF6XCJdXG59O1xudmFyIGZhVmlhZGVvID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3ZpYWRlbycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjJhOVwiLCBcIk0yNzYuNCAxNTAuNWwwIC43Yy0xNy45LTUyLjYtNDIuNi0xMDMuNC03MC44LTE1MS4yIDQzLjMgMjkuMiA2NyAxMDAgNzAuOCAxNTAuNXptMzIuNyAxMjEuN2M3LjYgMTguMiAxMSAzNy41IDExIDU3IDAgNzcuNy01Ny44IDE0MS0xMzcuOCAxMzkuNGwzLjgtLjNjNzQuMi00Ni43IDEwOS4zLTExOC42IDEwOS4zLTIwNS4xIDAtMzguMS02LjUtNzUuOS0xOC45LTExMiAxIDExLjcgMSAyMy43IDEgMzUuNCAwIDkxLjgtMTguMSAyNDEuNi0xMTYuNiAyODAtNjUuNy0xMS40LTExMS4zLTY4LjYtMTExLjMtMTM3LjQgMC03NS42IDU3LjQtMTQyLjMgMTM1LjQtMTQyLjMgMTYuOCAwIDMzLjcgMy4xIDQ5LjEgOS42IDEuNy0xNS4xIDYuNS0yOS45IDEzLjQtNDMuMy0xOS45LTcuMi00MS4yLTEwLjctNjIuNS0xMC43LTE2MS41IDAtMjM4LjcgMTk1LjktMTI5LjkgMzEzLjcgNjcuOSA3NC42IDE5MiA3My45IDI1OS44IDAgNTYuNi02MS4zIDYwLjktMTQyLjQgMzYuNC0yMDEtMTIuNyA4LTI3LjEgMTMuOS00Mi4yIDE3ek00MTguMyAxMS43Yy0zMSA2Ni41LTgxLjMgNDcuMi0xMTUuOCA4MC4xLTEyLjQgMTItMjAuNiAzNC0yMC42IDUwLjUgMCAxNC4xIDQuNSAyNy4xIDEyIDM4LjggNDcuNC0xMSA5OC4zLTQ2IDExOC4yLTkwLjctLjcgNS41LTQuOCAxNC40LTcuMiAxOS4yLTIwLjMgMzUuNy02NC42IDY1LjYtOTkuNyA4NC45IDE0LjggMTQuNCAzMy43IDI1LjggNTUgMjUuOCA3OSAwIDExMC4xLTEzNC42IDU4LjEtMjA4LjZ6XCJdXG59O1xudmFyIGZhU2VhcmNoZW5naW4gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc2VhcmNoZW5naW4nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzZWJcIiwgXCJNMjE0LjYgMTMwLjNsLTY3LjIgMjguMiAwLTExNS4zLTU0LjcgMTkwLjMgNTQuNy0yNC4yIDAgMTMwLjMgNjcuMi0yMDkuM3pNMTMxLjQgMzMuNmwtMS4zIDQuNy0xNS4yIDUyLjlDNzQuNiAxMDYuNyA0NiAxNDUuOCA0NiAxOTEuNSA0NiAyNDMuOCA4MC4zIDI4Ny40IDEyOS40IDI5N2wwIDUzLjZDNTEuNSAzNDAuMS02IDI3Mi40LTYgMTkxLjYtNiAxMTEuMSA1My44IDQ0LjQgMTMxLjQgMzMuNnpNNDQyLjggNDgwLjhjLTExLjIgMTEuMi0yMy4xIDEyLjMtMjguNiAxMC41LTUuNC0xLjgtMjcuMS0xOS45LTYwLjQtNDQuNC0zMy4zLTI0LjYtMzMuNi0zNS43LTQzLTU2LjctOS40LTIwLjktMzAuNC00Mi42LTU3LjUtNTIuNGwtOS43LTE0LjdjLTI0LjcgMTYuOS01MyAyNi45LTgxLjMgMjguN2wyLjEtNi42IDE1LjktNDkuNWM0Ni41LTExLjkgODAuOS01NCA4MC45LTEwNC4yIDAtNTQuNS0zOC40LTEwMi4xLTk2LTEwNy4xbDAtNTIuMWM4My4yIDUuMSAxNDguOCA3NC41IDE0OC44IDE1OS4zIDAgMzMuNi0xMS4yIDY0LjctMjkgOTAuNGwxNC42IDkuNmM5LjggMjcuMSAzMS41IDQ4IDUyLjQgNTcuNHMzMi4yIDkuNyA1Ni44IDQzYzI0LjYgMzMuMiA0Mi43IDU0LjkgNDQuNSA2MC4zcy43IDE3LjMtMTAuNSAyOC41em0tOS45LTE3LjljMC00LjQtMy42LTgtOC04cy04IDMuNi04IDggMy42IDggOCA4IDgtMy42IDgtOHpcIl1cbn07XG52YXIgZmFQYXlwYWwgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncGF5cGFsJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWVkXCIsIFwiTTExMS45IDI5NS45Yy0zLjUgMTkuMi0xNy40IDEwOC43LTIxLjUgMTM0LS4zIDEuOC0xIDIuNS0zIDIuNWwtNzQuNiAwYy03LjYgMC0xMy4xLTYuNi0xMi4xLTEzLjlMNTkuMyA0Ni42YzEuNS05LjYgMTAuMS0xNi45IDIwLTE2LjkgMTUyLjMgMCAxNjUuMS0zLjcgMjA0IDExLjQgNjAuMSAyMy4zIDY1LjYgNzkuNSA0NCAxNDAuMy0yMS41IDYyLjYtNzIuNSA4OS41LTE0MC4xIDkwLjMtNDMuNCAuNy02OS41LTctNzUuMyAyNC4yek0zNTcuNiAxNTJjLTEuOC0xLjMtMi41LTEuOC0zIDEuMy0yIDExLjQtNS4xIDIyLjUtOC44IDMzLjYtMzkuOSAxMTMuOC0xNTAuNSAxMDMuOS0yMDQuNSAxMDMuOS02LjEgMC0xMC4xIDMuMy0xMC45IDkuNC0yMi42IDE0MC40LTI3LjEgMTY5LjctMjcuMSAxNjkuNy0xIDcuMSAzLjUgMTIuOSAxMC42IDEyLjlsNjMuNSAwYzguNiAwIDE1LjctNi4zIDE3LjQtMTQuOSAuNy01LjQtMS4xIDYuMSAxNC40LTkxLjMgNC42LTIyIDE0LjMtMTkuNyAyOS4zLTE5LjcgNzEgMCAxMjYuNC0yOC44IDE0Mi45LTExMi4zIDYuNS0zNC44IDQuNi03MS40LTIzLjgtOTIuNnpcIl1cbn07XG52YXIgZmFTcXVhcmVCbHVlc2t5ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NxdWFyZS1ibHVlc2t5JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNmEzXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyNDcuNGMxNC41LTMwIDU0LTg1LjggOTAuNy0xMTMuMyAyNi41LTE5LjkgNjkuMy0zNS4yIDY5LjMgMTMuNyAwIDkuOC01LjYgODIuMS04LjkgOTMuOC0xMS40IDQwLjgtNTMgNTEuMi05MCA0NC45IDY0LjcgMTEgODEuMiA0Ny41IDQ1LjYgODQtNjcuNSA2OS4zLTk3LTE3LjQtMTA0LjYtMzkuNmwtLjMtLjljLS45LTIuNi0xLjQtNC4xLTEuOC00LjFzLS45IDEuNS0xLjggNC4xYy0uMSAuMy0uMiAuNi0uMyAuOS03LjYgMjIuMi0zNy4xIDEwOC44LTEwNC42IDM5LjYtMzUuNS0zNi41LTE5LjEtNzMgNDUuNi04NC0zNyA2LjMtNzguNi00LjEtOTAtNDQuOS0zLjMtMTEuNy04LjktODQtOC45LTkzLjggMC00OC45IDQyLjktMzMuNSA2OS4zLTEzLjcgMzYuNyAyNy41IDc2LjIgODMuNCA5MC43IDExMy4zelwiXVxufTtcbnZhciBmYURBbmREQmV5b25kID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2QtYW5kLWQtYmV5b25kJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNmNhXCIsIFwiTTMxMy44IDI0MS41YzEzLjggMCAyMS0xMC4xIDI0LjgtMTcuOS0xLTEuMS01LTQuMi03LjQtNi42LTIuNCA0LjMtOC4yIDEwLjctMTMuOSAxMC43LTEwLjIgMC0xNS40LTE0LjctMy4yLTI2LjYtLjUtLjItNC4zLTEuOC04IDIuNCAwLTMgMS01LjEgMi4xLTYuNi0zLjUgMS4zLTkuOCA1LjYtMTEuNCA3LjkgLjItNS44IDEuNi03LjUgLjYtOWwtLjItLjJzLTguNSA1LjYtOS4zIDE0LjdjMCAwIDEuMS0xLjYgMi4xLTEuOSAuNi0uMyAxLjMgMCAuNiAxLjktLjIgLjYtNS44IDE1LjcgNS4xIDI2LS42LTEuNi0xLjktNy42IDIuNC0xLjktLjMgLjEgNS44IDcuMSAxNS43IDcuMXptNTIuNC0yMS4xYzAtNC00LjktNC40LTUuNi00LjUgMiAzLjkgLjkgNy41IC4yIDkgMi41LS40IDUuNC0xLjYgNS40LTQuNXptMTAuMyA1LjJjMC02LjQtNi4yLTExLjQtMTMuNS0xMC43IDggMS4zIDUuNiAxMy44LTUgMTEuNCAzLjctMi42IDMuMi05LjktMS4zLTEyLjUgMS40IDQuMi0zIDguMi03LjQgNC42LTIuNC0xLjktOC02LjYtMTAuNi04LjYtMi40LTIuMS01LjUtMS02LjYtMS44LTEuMy0xLjEtLjUtMy44LTIuMi01LTEuNi0uOC0zLS4zLTQuOC0xLTEuNi0uNi0yLjctMS45LTIuNi0zLjUtMi41IDQuNCAzLjQgNi4zIDQuNSA4LjUgMSAxLjktLjggNC44IDQgOC41IDE0LjggMTEuNiA5LjEgOCAxMC40IDE4LjEgLjYgNC4zIDQuMiA2LjcgNi40IDcuNC0yLjEtMS45LTIuOS02LjQgMC05LjMgMCAxMy45IDE5LjIgMTMuMyAyMy4xIDYuNC0yLjQgMS4xLTctLjItOS0xLjkgNy43IDEgMTQuMi00LjEgMTQuNi0xMC42em0tMzkuNC0xOC40YzIgLjggMS42IC43IDYuNCA0LjUgMTAuMi0yNC41IDIxLjctMTUuNyAyMi0xNS41IDIuMi0xLjkgOS44LTMuOCAxMy44LTIuNy0yLjQtMi43LTcuNS02LjItMTMuMy02LjItNC43IDAtNy40IDIuMi04IDEuMy0uOC0xLjQgMy4yLTMuNCAzLjItMy40LTUuNCAuMi05LjYgNi43LTExLjIgNS45LTEuMS0uNSAxLjQtMy43IDEuNC0zLjctNS4xIDIuOS05LjMgOS4xLTEwLjIgMTMgNC42LTUuOCAxMy44LTkuOCAxOS43LTktMTAuNSAuNS0xOS41IDkuNy0yMy44IDE1Ljh6bTI0Mi41IDUxLjljLTIwLjcgMC00MCAxLjMtNTAuMyAyLjFsNy40IDguMiAwIDc3LjItNy40IDguMmMxMC40IC44IDMwLjkgMi4xIDUxLjYgMi4xIDQyLjEgMCA1OS4xLTIwLjcgNTkuMS00OC45IDAtMjkuMy0yMy4yLTQ4LjktNjAuNC00OC45em0tMTUuMSA3NS42bDAtNTMuM2MzMC4xLTMuMyA0Ni44IDMuOCA0Ni44IDI2LjMgMCAyNS42LTIxLjQgMzAuMi00Ni44IDI3ek0zMDEuNiAxODFjLTEtMy40LS4yLTYuOSAxLjEtOS40IDEgMyAyLjYgNi40IDcuNSA5LS41LTIuNC0uMi01LjYgLjUtOC0xLjQtNS40IDIuMS05LjkgNi40LTkuOSA2LjkgMCA4LjUgOC44IDQuNyAxNC40IDIuMSAzLjIgNS41IDUuNiA3LjcgNy44IDMuMi0zLjcgNS41LTkuNSA1LjUtMTMuOCAwLTguMi01LjUtMTUuOS0xNi43LTE2LjUtMjAtLjktMjAuMiAxNi42LTIwIDE4LjkgLjUgNS4yIDMuNCA3LjggMy4zIDcuNXptLS40IDZjLS41IDEuOC03IDMuNy0xMC4yIDYuOSA0LjgtMSA3LS4yIDcuOCAxLjggLjUgMS40LS4yIDMuNC0uNSA1LjYgMS42LTEuOCA3LTUuNSAxMS02LjItMS0uMy0zLjQtLjgtNC4zLS44IDIuOS0zLjQgOS4zLTQuNSAxMi44LTMuNy0yLjItLjItNi43IDEuMS04LjUgMi42IDEuNiAuMyAzIC42IDQuMyAxLjEtMi4xIC44LTQuOCAzLjQtNS44IDYuMSA3LTUgMTMuMSA1LjIgNyA4LjIgLjggLjIgMi43IDAgMy41LS41LS4zIDEuMS0xLjkgMy0zIDMuNCAyLjkgMCA3LTEuOSA4LjItNC42IDAgMC0xLjggLjYtMi42LS4ycy4zLTQuMyAuMy00LjNjLTIuMyAyLjktMy40LTEuMy0xLjMtNC4yLTEtLjMtMy41LS42LTQuNi0uNSAzLjItMS4xIDEwLjQtMS44IDExLjItLjMgLjYgMS4xLTEgMy40LTEgMy40IDQtLjUgOC4zIDEuMSA2LjcgNS4xIDIuOS0xLjQgNS41LTUuOSA0LjgtMTAuNC0uMyAxLTEuNiAyLjQtMi45IDIuNyAuMi0xLjQtMS0yLjItMS45LTIuNiAxLjctOS42LTE0LjYtMTQuMi0xNC4xLTIzLjktMSAxLjMtMS44IDUtLjggNy4xIDIuNyAzLjIgOC43IDYuNyAxMC4xIDEyLjItMi42LTYuNC0xNS4xLTExLjQtMTQuNi0yMC4yLTEuNiAxLjYtMi42IDcuOC0xLjMgMTEgMi40IDEuNCA0LjUgMy44IDQuOCA2LjEtMi4yLTUuMS0xMS40LTYuMS0xMy45LTEyLjItLjYgMi4yLS4zIDUgMSA2LjcgMCAwLTIuMi0uOC03LS42IDEuNyAuNiA1LjEgMy41IDQuOCA1LjJ6bTI1LjkgNy40Yy0yLjcgMC0zLjUtMi4xLTQuMi00LjMgMy4zIDEuMyA0LjIgNC4zIDQuMiA0LjN6bTM4LjkgMy43bC0xLS42Yy0xLjEtMS0yLjktMS40LTQuNy0xLjQtMi45IDAtNS44IDEuMy03LjUgMy40LS44IC44LTEuNCAxLjgtMi4xIDIuNmwwIDE1LjdjMy41IDIuNiA3LjEtMi45IDMtNy4yIDEuNSAuMyA0LjYgMi43IDUuMSAzLjIgMCAwIDIuNi0uNSA1LS41IDIuMSAwIDMuOSAuMyA1LjYgMS4xbDAtMTguNGMtMS4xIC41LTIuMiAxLTIuNyAxLjRsLS43IC43ek03OS45IDMwNS45YzE3LjItNC42IDE2LjItMTggMTYuMi0xOS45IDAtMjAuNi0yNC4xLTI1LTM3LTI1bC01Ni4xIDAgOC4zIDguNiAwIDI5LjUtMTEuMyAwIDExLjQgMTQuNiAwIDMyLjMtOC40IDguNmM2MS43IDAgNzMuOCAxLjUgODYuNC01LjkgNi43LTQgOS45LTkuOCA5LjktMTcuNiAwLTUuMSAyLjYtMTguOC0xOS40LTI1LjJ6TTM4LjYgMjc4LjRjMjAgMCAyOS42LS44IDI5LjYgOS4xbDAgM2MwIDEyLjEtMTkgOC44LTI5LjYgOC44bDAtMjAuOXptMCA1OS4ybDAtMjIuNmMxMi4yIDAgMzIuNy0yLjMgMzIuNyA4LjhsMCA0LjUgLjIgMGMwIDExLjItMTIuNSA5LjMtMzIuOSA5LjN6bTEwMS4yLTE5LjNsMjMuMSAuMiAwLS4yIDE0LjEtMjEuMi0zNy4yIDAgMC0xNC45IDUyLjQgMC0xNC4xLTIxIDAtLjItNzMuNSAuMiA3LjQgOC4yIDAgNzcuMS03LjQgOC4yIDgxLjIgMCAxNC4xLTIxLjItNjAuMSAuMiAwLTE1LjR6bTIxNC43LTYwLjFjLTczLjkgMC03Ny41IDk5LjMtLjMgOTkuMyA3Ny45IDAgNzQuMS05OS4zIC4zLTk5LjN6bS0uMyA3Ny41Yy0zNy40IDAtMzYuOS01NS4zIC4yLTU1LjMgMzYuOCAuMSAzOC44IDU1LjMtLjIgNTUuM3ptLTkxLjMtOC4zbDQ0LjEtNjYuMi00MS43IDAgNi4xIDcuMi0yMC41IDM3LjItLjMgMC0yMS0zNy4yIDYuNC03LjItNDQuOSAwIDQ0LjEgNjUuOCAuMiAxOS40LTcuNyA4LjIgNDIuNiAwLTcuMi04LjItLjItMTl6TTIzNC41IDE3Ni4xYzEuNiAxLjMgMi45IDIuNCAyLjkgNi42bDAgMzguOGMwIDQuMi0uOCA1LjMtMi43IDYuNC0uMSAuMS03LjUgNC41LTcuOSA0LjZsMzUuMSAwYzEwIDAgMTcuNC0xLjUgMjYtOC42LS42LTUgLjItOS41IC44LTEyIDAtLjItMS44IDEuNC0yLjcgMy41IDAtNS43IDEuNi0xNS40IDkuNi0yMC41LS4xIDAtMy43LS44LTkgMS4xIDItMy4xIDEwLTcuOSAxMC40LTcuOS04LjItMjYtMzgtMjIuOS0zMi4yLTIyLjktMzAuOSAwLTMyLjYgLjMtMzkuOS00IC4xIC44IC41IDguMiA5LjYgMTQuOXptMjEuNSA1LjVjNC42IDAgMjMuMS0zLjMgMjMuMSAxNy4zIDAgMjAuNy0xOC40IDE3LjMtMjMuMSAxNy4zbDAtMzQuNnptMjI4LjkgNzkuNmw3IDguMyAwIDQyLjUtLjMgMGMtNS40LTE0LjQtNDIuMy00MS41LTQ1LjItNTAuOWwtMzEuNiAwIDcuNCA4LjUgMCA3Ni45LTcuMiA4LjMgMzkgMC03LjQtOC4yIDAtNDcuNCAuMyAwYzMuNyAxMC42IDQ0LjUgNDIuOSA0OC41IDU1LjZsMjEuMyAwIDAtODUuMiA3LjQtOC4zLTM5LjItLjF6TTM3OC4yIDE2NS4xYy0zMi4yIDAtMzIuOCAuMi0zOS45LTQgLjEgLjcgLjUgOC4zIDkuNiAxNC45IDMuMSAyIDIuOSA0LjMgMi45IDkuNSAxLjgtMS4xIDMuOC0yLjIgNi4xLTMtMS4xIDEuMS0yLjcgMi43LTMuNSA0LjUgMS0xLjEgNy41LTUuMSAxNC42LTMuNS0xLjYgLjMtNCAxLjEtNi4xIDIuOSAuMSAwIDIuMS0xLjEgNy41LS4zbDAtNC4zYzQuNyAwIDIzLjEtMy40IDIzLjEgMTcuMyAwIDIwLjUtMTguNSAxNy4zLTE5LjcgMTcuMyA1LjcgNC40IDUuOCAxMiAyLjIgMTYuM2wuMyAwYzMzLjQgMCAzNi43LTI3LjMgMzYuNy0zNCAwLTMuOC0xLjEtMzItMzMuOC0zMy42elwiXVxufTtcbnZhciBmYU1pY3Jvc29mdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdtaWNyb3NvZnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzY2FcIiwgXCJNMCAzMmwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42em0yMzMuNCAwbDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6TTAgMjY1LjRsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnptMjMzLjQgMGwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42elwiXVxufTtcbnZhciBmYUZseSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdmbHknLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImY0MTdcIiwgXCJNMTY1LjkgNDI3LjhjMTIuOSAxMS43IDMzLjcgMzMuMyAzMy4yIDUwLjcgMCAuOC0uMSAxLjYtLjEgMi41LTEuOCAxOS44LTE4LjggMzEuMS0zOS4xIDMxLTI1LS4xLTM5LjktMTYuOC0zOC43LTM1LjggMS0xNi4yIDIwLjUtMzYuNyAzMi40LTQ3LjYgMi4zLTIuMSAyLjctMi43IDUuNi0zLjYgMy40IDAgMy45IC4zIDYuNyAyLjh6TTMwMCA2Ny4zYy0xNi4zLTI1LjctMzguNi00MC42LTYzLjMtNTIuMS0yNS41LTEwLjctNTQuNi0xNS40LTc2LjYtMTUuMi00NC4xIDAtNzEuMiAxMy4yLTgxLjEgMTcuMy01My42IDI3LjktODQuNCA2OS45LTgyLjkgMTQxLjMgNy4xIDgyLjIgOTcgMTc2IDE1NS44IDIzMy44IDEuNyAxLjYgNC41IDQuNSA2LjIgNS4xbDMuMyAuMWMyLjEtLjcgMS44LS41IDMuNS0yLjEgNTIuMy00OS4yIDE0MC43LTE0NS44IDE1NS45LTIxNS43IDctMzkuMiAzLjEtNzIuNS0yMC44LTExMi41ek0xNTQuOSAzNTEuOWMtMjgtNTEuMS02NS4yLTEzMC43LTY5LjMtMTg5LTMuNC00Ny41IDExLjQtMTMxLjIgNjkuMy0xMzYuN2wwIDMyNS43ek0yOTYuOCAxODBjLTE2LjQgNTYuOC03Ny4zIDEyOC0xMTguOSAxNzAuMyAyNy44LTUxLjkgNjUuMi0xMzMuMyA2Ny4yLTE5MS45IDEuNi00NS45LTkuOC0xMDUuOC00OC0xMzEuNCA4OC44IDE4LjMgMTE1LjUgOTguMSA5OS43IDE1M3pcIl1cbn07XG52YXIgZmFDY1N0cmlwZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjYy1zdHJpcGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYxZjVcIiwgXCJNNDkyLjQgMjIwLjhjLTguOSAwLTE4LjcgNi43LTE4LjcgMjIuN2wzNi43IDBjMC0xNi05LjMtMjIuNy0xOC0yMi43ek0zNzUgMjIzLjRjLTguMiAwLTEzLjMgMi45LTE3IDdsLjIgNTIuOGMzLjUgMy43IDguNSA2LjcgMTYuOCA2LjcgMTMuMSAwIDIxLjktMTQuMyAyMS45LTMzLjQgMC0xOC42LTktMzMuMi0yMS45LTMzLjF6TTUyOCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjIuMiAyODEuMWMwIDI1LjYtMjAuMyA0MC4xLTQ5LjkgNDAuMy0xMi4yIDAtMjUuNi0yLjQtMzguOC04LjFsMC0zMy45YzEyIDYuNCAyNy4xIDExLjMgMzguOSAxMS4zIDcuOSAwIDEzLjYtMi4xIDEzLjYtOC43IDAtMTctNTQtMTAuNi01NC00OS45IDAtMjUuMiAxOS4yLTQwLjIgNDgtNDAuMiAxMS44IDAgMjMuNSAxLjggMzUuMyA2LjVsMCAzMy40Yy0xMC44LTUuOC0yNC41LTkuMS0zNS4zLTkuMS03LjUgMC0xMi4xIDIuMi0xMi4xIDcuNyAwIDE2IDU0LjMgOC40IDU0LjMgNTAuN3pNMTkxIDIyNC41bC0yNyAwIDAgNTAuNWMwIDIwLjkgMjIuNSAxNC40IDI3IDEyLjZsMCAyOC45Yy00LjcgMi42LTEzLjMgNC43LTI0LjkgNC43LTIxLjEgMC0zNi45LTE1LjUtMzYuOS0zNi41bC4yLTExMy45IDM0LjctNy40IDAgMzAuOCAyNi45IDAgMCAzMC4zem03NCAyLjRjLTQuNS0xLjUtMTguNy0zLjYtMjcuMSA3LjRsMCA4NC40LTM1LjUgMCAwLTEyNC41IDMwLjcgMCAyLjIgMTAuNWM4LjMtMTUuMyAyNC45LTEyLjIgMjkuNi0xMC41bC4xIDAgMCAzMi43em00NC4xIDkxLjhsLTM1LjcgMCAwLTEyNC41IDM1LjcgMCAwIDEyNC41em0wLTE0Mi45bC0zNS43IDcuNiAwLTI4LjkgMzUuNy03LjYgMCAyOC45em03NC4xIDE0NS41Yy0xMi40IDAtMjAtNS4zLTI1LjEtOWwtLjEgNDAuMi0zNS41IDcuNSAwLTE2NS44IDMxLjMgMCAxLjggOC44YzQuOS00LjUgMTMuOS0xMS4xIDI3LjgtMTEuMSAyNC45IDAgNDguNCAyMi41IDQ4LjQgNjMuOCAwIDQ1LjEtMjMuMiA2NS41LTQ4LjYgNjUuNnptMTYwLjQtNTEuNWwtNjkuNSAwYzEuNiAxNi42IDEzLjggMjEuNSAyNy42IDIxLjUgMTQuMSAwIDI1LjItMyAzNC45LTcuOWwwIDI4LjZjLTkuNyA1LjMtMjIuNCA5LjItMzkuNCA5LjItMzQuNiAwLTU4LjgtMjEuNy01OC44LTY0LjUgMC0zNi4yIDIwLjUtNjQuOSA1NC4zLTY0LjkgMzMuNyAwIDUxLjMgMjguNyA1MS4zIDY1LjEgMCAzLjUtLjMgMTAuOS0uNCAxMi45elwiXVxufTtcbnZhciBmYVdvcmRwcmVzc1NpbXBsZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd3b3JkcHJlc3Mtc2ltcGxlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDExXCIsIFwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzMgMjU2YzAtMzIuMyA2LjktNjMgMTkuMy05MC43TDE1OC43IDQ1Ni43Qzg0LjMgNDIwLjUgMzMgMzQ0LjIgMzMgMjU2ek0yNTYgNDc5Yy0yMS45IDAtNDMtMy4yLTYzLTkuMWw2Ni45LTE5NC40IDY4LjUgMTg3LjhjLjUgMS4xIDEgMi4xIDEuNiAzLjEtMjMuMSA4LjEtNDggMTIuNi03NCAxMi42em0zMC43LTMyNy41YzEzLjQtLjcgMjUuNS0yLjEgMjUuNS0yLjEgMTItMS40IDEwLjYtMTkuMS0xLjQtMTguNCAwIDAtMzYuMSAyLjgtNTkuNCAyLjgtMjEuOSAwLTU4LjctMi44LTU4LjctMi44LTEyLS43LTEzLjQgMTcuNy0xLjQgMTguNCAwIDAgMTEuNCAxLjQgMjMuNCAyLjFsMzQuNyA5NS4yLTQ4LjggMTQ2LjMtODEuMi0yNDEuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTQuMiAwLTkuMS0uMS0xNC40LS4zIDM5LjktNjAuNSAxMDguNC0xMDAuNSAxODYuMy0xMDAuNSA1OCAwIDExMC45IDIyLjIgMTUwLjYgNTguNS0xLS4xLTEuOS0uMi0yLjktLjItMjEuOSAwLTM3LjQgMTkuMS0zNy40IDM5LjYgMCAxOC40IDEwLjYgMzMuOSAyMS45IDUyLjMgOC41IDE0LjggMTguNCAzMy45IDE4LjQgNjEuNSAwIDE5LjEtNy4zIDQxLjItMTcgNzIuMWwtMjIuMiA3NC4zLTgwLjctMjM5LjZ6bTgxLjQgMjk3LjJsNjguMS0xOTYuOWMxMi43LTMxLjggMTctNTcuMiAxNy03OS45IDAtOC4yLS41LTE1LjgtMS41LTIyLjkgMTcuNCAzMS44IDI3LjMgNjguMiAyNy4zIDEwNyAwIDgyLjMtNDQuNiAxNTQuMS0xMTAuOSAxOTIuN3pcIl1cbn07XG52YXIgZmFTZWxsc3kgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc2VsbHN5JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMjEzXCIsIFwiTTU0MCAyMzcuM2MzLjEtMTIuMyA0LjMtMjQuOCA0LjMtMzcuNCAwLTkyLjUtNzUuNC0xNjcuOS0xNjcuOS0xNjcuOS03Ny4yIDAtMTQ0LjYgNTMtMTYzIDEyNy44LTE1LjMtMTMuMi0zNC45LTIwLjUtNTUuMi0yMC41LTQ2LjMgMC04NCAzNy43LTg0IDg0IDAgNy40IC45IDE1IDMuMSAyMi40LTQyLjkgMjAuMi03MC44IDYzLjctNzAuOCAxMTEuMiAwIDY4IDU1LjUgMTIzLjIgMTIzLjIgMTIzLjJsMzgxLjIgMGM2Ny43IDAgMTIzLjItNTUuMiAxMjMuMi0xMjMuMiAwLTU2LjQtMzguOS0xMDYtOTQuMS0xMTkuNXpNMjAwLjIgNDAxLjZjMCA4LjMtNyAxNS4zLTE1LjMgMTUuM2wtMzAuOSAwYy04LjMgMC0xNS4zLTctMTUuMy0xNS4zbDAtMTEwLjljMC04LjMgNy0xNS4zIDE1LjMtMTUuM2wzMC45IDBjOC4zIDAgMTUuMyA3IDE1LjMgMTUuM2wwIDExMC45em04OS41IDBjMCA4LjMtNyAxNS4zLTE1LjMgMTUuM2wtMzAuOSAwYy04LjMgMC0xNS4zLTctMTUuMy0xNS4zbDAtMTMxLjVjMC04LjMgNy0xNS4zIDE1LjMtMTUuM2wzMC45IDBjOC4zIDAgMTUuMyA3IDE1LjMgMTUuM2wwIDEzMS41em04OS41IDBjMCA4LjMtNyAxNS4zLTE1LjMgMTUuM2wtMzEgMGMtOC4zIDAtMTUuMy03LTE1LjMtMTUuM2wwLTE2Mi43YzAtOC4zIDctMTUuMyAxNS4zLTE1LjNsMzEgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS4zbDAgMTYyLjd6bTg3IDBjMCA4LjMtNyAxNS4zLTE1LjMgMTUuM2wtMjguNSAwYy04LjMgMC0xNS4zLTctMTUuMy0xNS4zbDAtMjI0LjZjMC04LjYgNy0xNS42IDE1LjMtMTUuNmwyOC41IDBjOC4zIDAgMTUuMyA3IDE1LjMgMTUuNmwwIDIyNC42elwiXVxufTtcbnZhciBmYURhc2hjdWJlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2Rhc2hjdWJlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjEwXCIsIFwiTTMyNi45IDEwNGwtMjE2LjIgMGMtNTEuMSAwLTkxLjIgNDMuMy05MS4yIDkzLjVsMCAyMjkuNWMwIDUwLjUgNDAuMSA4NSA5MS4yIDg1bDIyNy4yIDBjNTEuMSAwIDkxLjItMzQuNSA5MS4yLTg1bDAtNDI3LTEwMi4yIDEwNHpNMTU0LjIgNDE2LjVjLTE3LjcgMC0zMi40LTE1LjEtMzIuNC0zMi44bDAtMTQyLjljMC0xNy43IDE0LjctMzIuNSAzMi40LTMyLjVsMTQwLjcgMGMxNy43IDAgMzIgMTQuOCAzMiAzMi41bDAgMTIzLjUgNTEuMSA1Mi4zLTIyMy44IDAgMC0uMXpcIl1cbn07XG52YXIgZmFHaXR0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZ2l0dGVyJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDI2XCIsIFwiTTY2LjQgMzIyLjVsLTUwLjQgMCAwLTMyMi41IDUwLjQgMCAwIDMyMi41ek0xNjYuOSA3Ni4xbC01MC40IDAgMCA0MzUuOSA1MC40IDAgMC00MzUuOXptMTAwLjYgMGwtNTAuNCAwIDAgNDM1LjkgNTAuNCAwIDAtNDM1Ljl6TTM2OCA3NmwtNTAuNCAwIDAgMjQ3IDUwLjQgMCAwLTI0N3pcIl1cbn07XG52YXIgZmFXb2xmUGFja0JhdHRhbGlvbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd3b2xmLXBhY2stYmF0dGFsaW9uJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTE0XCIsIFwiTTIzNi4yIDQ3MS41bDEwLjYgMTUuOCA1LjMtMTIuMyA1LjMgNyAwIDI5LjljMjEuMS03LjkgMjEuMS02Ni45IDI1LjUtOTcuMiA0LjYtMzEuOS0uOS05Mi44IDgxLjQtMTQ5LjEtOC45LTIzLjYtMTItNDkuNC0yLjYtODAgMjcuOSAzLjQgNTMuOSAxMC42IDYzLjMgNTQuMWwtMzAuMyA4LjRjMTEuMSAyMyAxNyA0Ni44IDEzLjIgNzIuMWwtMjcuMy03LTYuMiAzMy40LTE4LjUtNy04LjggMzMuNC0xOS40LTcgMjYuNCAyMS4xIDguOC0yOC4yIDI0LjYgNS4yIDctMzUuNiAyNi40IDE0LjVjLjItMjAgNy01OC4xLTguOC04NC41bDI2LjQgNS4zYzQtMjIuMS0yLjQtMzkuMi03LjktNTYuN2wyMi40IDkuN2MtLjQtMjUuMS0yOS45LTU2LjgtNjEuNi01OC41LTIwLjItMS4xLTU2LjctMjUuMi01NC4xLTUxLjkgMi0xOS45IDE3LjQtNDIuNiA0My4xLTQ5LjctNDQgMzYuNS05LjcgNjcuMyA1LjMgNzMuNSA0LjQtMTEuNCAxNy41LTY5LjEgMC0xMzAuMi00MC40IDIyLjktODkuNyA2NS4xLTkzLjIgMTQ3LjhsLTU4IDM4LjctMy41IDkzLjIgMTA3LjMtNTkuOCA3IDctMTcuNiAzLjUtNDQgMzguNy0xNS44LTUuMy0yOC4xIDQ5LjMtMy41IDExOS42IDIxLjEgMTUuOC0zMi41IDE1LjgtMzIuNi0xNS44IDIxLjEtMTUuOC0zLjUtMTE5LjYtMjguMi00OS4zLTE1LjggNS4zLTQ0LTM4LjctMTcuNi0zLjUgNy03IDEwNy4zIDU5LjgtMy41LTkzLjMtNTguMS0zOC43Yy0zLjUtODIuOC01Mi43LTEyNS05My4yLTE0Ny45LTE3LjUgNjEuMS00LjQgMTE4LjggMCAxMzAuMiAxNS02LjIgNDkuMy0zNyA1LjMtNzMuNSAyNS43IDcuMSA0MS4xIDI5LjggNDMuMSA0OS43IDIuNiAyNi43LTMzLjkgNTAuOC01NC4xIDUxLjktMzEuNyAxLjctNjEuMiAzMy40LTYxLjYgNTguNWwyMi40LTkuN0MxMy40IDIyNC43IDcgMjQxLjggMTEgMjYzLjlsMjYuNC01LjNjLTE1LjggMjYuNC05LjEgNjQuNC04LjggODQuNGwyNi40LTE0LjUgNyAzNS42IDI0LjYtNS4zIDguOCAyOC4yIDI2LjQtMjEuMS0xOS40IDctOC44LTMzLjQtMTguNSA3LTYuMi0zMy40LTI3LjMgN0MzOCAyOTQuOCA0My44IDI3MSA1NSAyNDhsLTMwLjMtOC40YzkuNC00My41IDM1LjUtNTAuOCA2My4zLTU0LjEgOS40IDMwLjYgNi4yIDU2LjUtMi42IDgwLjEgODIuMyA1Ni4zIDc2LjggMTE3LjIgODEuNCAxNDkuMSA0LjQgMzAuMyA0LjQgODkuMyAyNS41IDk3LjJsMC0yOS44IDUuMy03IDUuMyAxMi4zIDEwLjYtMTUuOCAxMS40IDIxLjEgMTEuNC0yMS4xIDAgMHptNzkuMi05NUwyOTkuNSAzNjZjNy41LTQuNCAxMy44LTguNCAxOS40LTEyLjMtLjYgNy4yLS4zIDEzLjgtMy41IDIyLjhsMCAwem0yOC4yLTQ5LjNjLS40IDEwLjktLjkgMjEuNy0xLjggMzEuNy03LjgtMS45LTE1LjYtMy44LTIxLjEtNyA4LjItNy45IDE1LjYtMTYuMyAyMi45LTI0LjdsMCAwem0yNC42IDUuM2MwLTEzLjQtMi4xLTI0LjItNS4zLTMzLjQtNS41IDkuNS0xMS43IDE4LjYtMTguNSAyNy4zbDIzLjggNi4yem0zLjUtODAuOWMxOS40IDEyLjggMjcuOCAzMy43IDI5LjkgNTYuMy0xMi4zLTQuNS0yNC42LTkuMy0zNy0xMC42IDUuMS0xMiA2LjYtMjguMSA3LTQ1LjdsMCAwem0tMS44LTQ1LjdjLjggMTQuMyAxLjggMjguOCAxLjggNDIuMiAxOS4yLTguMSAyOS44LTkuNyA0NC0xNC4xLTEwLjYtMTktMjcuMi0yNS41LTQ1LjgtMjguMmwwIDB6TTEzNC4yIDM3Ni41TDE1MCAzNjZjLTcuNS00LjQtMTMuOC04LjQtMTkuNC0xMi4zIC42IDcuMyAuMyAxMy45IDMuNSAyMi45bDAgMHpNMTA2IDMyNy4zYy40IDEwLjkgLjkgMjEuNyAxLjggMzEuNyA3LjgtMS45IDE1LjYtMy44IDIxLjEtNy04LjItNy45LTE1LjYtMTYuMy0yMi45LTI0Ljd6bS0yNC42IDUuM2MwLTEzLjQgMi0yNC4yIDUuMy0zMy40IDUuNSA5LjUgMTEuNyAxOC42IDE4LjUgMjcuM2wtMjMuOCA2LjJ6bS0zLjUtODAuOWMtMTkuNCAxMi44LTI3LjggMzMuNy0yOS45IDU2LjMgMTIuMy00LjUgMjQuNi05LjMgMzctMTAuNi01LTEyLTYuNi0yOC4xLTctNDUuN2wtLjEgMHptMS44LTQ1LjdjLS44IDE0LjMtMS44IDI4LjgtMS44IDQyLjItMTkuMi04LjEtMjkuOC05LjctNDQtMTQuMSAxMC42LTE5IDI3LjItMjUuNSA0NS44LTI4LjF6XCJdXG59O1xudmFyIGZhTGFzdGZtID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2xhc3RmbScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjIwMlwiLCBcIk0yMjUuOCAzNjcuMWwtMTguOC01MXMtMzAuNSAzNC03Ni4yIDM0Yy00MC41IDAtNjkuMi0zNS4yLTY5LjItOTEuNSAwLTcyLjEgMzYuNC05Ny45IDcyLjEtOTcuOSA2Ni41IDAgNzQuOCA1My4zIDEwMC45IDEzNC45IDE4LjggNTYuOSA1NCAxMDIuNiAxNTUuNCAxMDIuNiA3Mi43IDAgMTIyLTIyLjMgMTIyLTgwLjkgMC03Mi45LTYyLjctODAuNi0xMTUtOTIuMS0yNS44LTUuOS0zMy40LTE2LjQtMzMuNC0zNCAwLTE5LjkgMTUuOC0zMS43IDQxLjYtMzEuNyAyOC4yIDAgNDMuNCAxMC42IDQ1LjcgMzUuOGw1OC42LTdjLTQuNy01Mi44LTQxLjEtNzQuNS0xMDAuOS03NC41LTUyLjggMC0xMDQuNCAxOS45LTEwNC40IDgzLjkgMCAzOS45IDE5LjQgNjUuMSA2OCA3Ni44IDQ0LjkgMTAuNiA3OS44IDEzLjggNzkuOCA0NS43IDAgMjEuNy0yMS4xIDMwLjUtNjEgMzAuNS01OS4yIDAtODMuOS0zMS4xLTk3LjktNzMuOS0zMi05Ni44LTQzLjYtMTYzLTE2MS4zLTE2My04Ni4xIDAtMTMxLjggNTQuNS0xMzEuOCAxNDcuMiAwIDg5LjEgNDUuNyAxMzcuMiAxMjcuOSAxMzcuMiA2Ni4yIDAgOTcuOS0zMS4xIDk3LjktMzEuMXpcIl1cbn07XG52YXIgZmFTaG9wd2FyZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzaG9wd2FyZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjViNVwiLCBcIk00MDMuNSA0NTUuNGMtNDIuNiAzMS43LTk0LjQgNDguNy0xNDcuNSA0OC42LTEzNy4yIDAtMjQ4LTExMS0yNDgtMjQ4IDAtMTM3LjIgMTExLTI0OCAyNDgtMjQ4IDYxLjItLjEgMTIwLjIgMjIuNiAxNjUuNyA2My41IC42IC41IC45IDEuMiAxLjEgMS45cy4xIDEuNS0uMyAyLjItLjggMS4zLTEuNSAxLjYtMS40IC41LTIuMiAuNGMtMTguOC0yLjUtMzcuNy0zLjctNTYuNy0zLjctMTI5LjQgMC0yMjIuNCA1My41LTIyMi40IDE1NS40IDAgMTA5IDkyLjEgMTQ1LjkgMTc2LjggMTc4LjcgMzMuNiAxMyA2NS40IDI1LjQgODcgNDEuNiAuNCAuMyAuOCAuOCAxLjEgMS4zcy40IDEgLjQgMS42LS4xIDEuMS0uNCAxLjYtLjYgLjktMS4xIDEuM2wtLjEgMHpNNTAzIDIzMy4xYy0uMS0uOS0uNS0xLjgtMS4zLTIuNC01MS44LTQzLTkzLjYtNjAuNS0xNDQuNS02MC41LTg0LjEgMC04MC4zIDUyLjItODAuMyA1My42IDAgNDIuNiA1Mi4xIDYyIDExMi4zIDg0LjUgMzEuMSAxMS42IDYzLjIgMjMuNiA5Mi43IDM5LjkgLjQgLjIgLjkgLjQgMS40IC40czEgMCAxLjUtLjIgLjktLjQgMS4zLS44IC42LS44IC44LTEuMmMxNC4xLTM2IDE5LjUtNzQuOCAxNi0xMTMuM3pcIl1cbn07XG52YXIgZmFCbG9nZ2VyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2Jsb2dnZXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzN2NcIiwgXCJNMTYyLjQgMTk2YzQuOC00LjkgNi4yLTUuMSAzNi40LTUuMSAyNy4yIDAgMjguMSAuMSAzMi4xIDIuMSA1LjggMi45IDguMyA3IDguMyAxMy42IDAgNS45LTIuNCAxMC03LjYgMTMuNC0yLjggMS44LTQuNSAxLjktMzEuMSAyLjEtMTYuNCAuMS0yOS41LS4yLTMxLjUtLjgtMTAuMy0yLjktMTQuMS0xNy43LTYuNi0yNS4zem02MS40IDk0LjVjLTUzLjkgMC01NS44IC4yLTYwLjIgNC4xLTMuNSAzLjEtNS43IDkuNC01LjEgMTMuOSAuNyA0LjcgNC44IDEwLjEgOS4yIDEyIDIuMiAxIDE0LjEgMS43IDU2LjMgMS4ybDQ3LjktLjYgOS4yLTEuNWM5LTUuMSAxMC41LTE3LjQgMy4xLTI0LjQtNS4zLTQuNy01LTQuNy02MC40LTQuN3pNNDQ3LjIgNDIwLjZjLTMuNSAyOC40LTIzIDUwLjQtNTEuMSA1Ny41LTcuMiAxLjgtOS43IDEuOS0xNzIuOSAxLjgtMTU3LjggMC0xNjUuOS0uMS0xNzItMS44LTguNC0yLjItMTUuNi01LjUtMjIuMy0xMC01LjYtMy44LTEzLjktMTEuOC0xNy0xNi40LTMuOC01LjYtOC4yLTE1LjMtMTAtMjJTMCA0MjAuMyAwIDI1Ni4zYzAtMTYzLjEgMC0xNjYuNiAxLjgtMTczLjcgNi4zLTI0LjcgMjUuOS00My42IDUxLjItNDkuMiA3LjMtMS42IDMzMi4xLTEuOSAzNDAtLjMgMjEuMiA0LjMgMzcuOSAxNy4xIDQ3LjYgMzYuNCA3LjcgMTUuMyA3LTEuNSA3LjMgMTgwLjYgLjIgMTE1LjggMCAxNjQuNS0uNyAxNzAuNXpNMzYxLjggMjM1LjRjLTEuMS01LTQuMi05LjYtNy43LTExLjUtMS4xLS42LTgtMS4zLTE1LjUtMS43LTEyLjQtLjYtMTMuOC0uOC0xNy44LTMuMS02LjItMy42LTcuOS03LjYtOC0xOC4zIDAtMjAuNC04LjUtMzkuNC0yNS4zLTU2LjUtMTItMTIuMi0yNS4zLTIwLjUtNDAuNi0yNS4xLTMuNi0xLjEtMTEuOC0xLjUtMzkuMi0xLjgtNDIuOS0uNS01Mi41IC40LTY3LjEgNi4yLTI3IDEwLjctNDYuMyAzMy40LTUzLjQgNjIuNC0xLjMgNS40LTEuNiAxNC4yLTEuOSA2NC4zLS40IDYyLjggMCA3Mi4xIDQgODQuNSA5LjcgMzAuNyAzNy4xIDUzLjQgNjQuNiA1OC40IDkuMiAxLjcgMTIyLjIgMi4xIDEzMy43IC41IDIwLjEtMi43IDM1LjktMTAuOCA1MC43LTI1LjkgMTAuNy0xMC45IDE3LjQtMjIuOCAyMS44LTM4LjUgMy4yLTEwLjkgMi45LTg4LjQgMS43LTkzLjl6XCJdXG59O1xudmFyIGZhRWRnZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdlZGdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjgyXCIsIFwiTTEyMC4xIDM3LjRjNDEtMjUuMiA4Ny42LTM4LjIgMTM0LjktMzcuNCAxNjggMCAyNTcgMTIzLjggMjU3IDIxOS41LS4xIDMyLjctMTMgNjMuOS0zNS45IDg3LjItMjIuOSAyMy4yLTU0IDM2LjUtODYuNyAzNy03NS4yIDAtOTEuNS0yMy4xLTkxLjUtMzIgMC0zLjggMS4yLTYuMiA0LjgtOS40bDEtMS4yIC40LTEuNmMxMC41LTExLjUgMTUuOS0yNi4yIDE1LjktNDEuNiAwLTc4LjctODIuMi0xNDIuNy0xODQtMTQyLjctMzcuNS0uMy03NC41IDguOS0xMDcuNSAyNi45IDI3LTU3LjUgODIuNy05Ny42IDkxLjMtMTAzLjggLjgtLjYgLjMtLjggLjMtLjh6bTE1LjYgMzE4LjFjLTEuNCAzMCA0LjYgNjAgMTYuNCA4Ny4yIDEzLjYgMjYuNCAzMi43IDUxIDU2LjUgNjkuMy01OS41LTExLjUtMTExLjUtNDMuOS0xNDkuNC04OS4zLTM4LjEtNDYuNC01OS4yLTEwNC4zLTU5LjItMTY0LjggMC01MS4yIDYyLjQtOTQuNCAxMzYtOTQuNCAzNi42LS42IDcyLjQgMTAuOSAxMDEuOCAzMi43bC0zLjYgMS4yYy01MS41IDE3LjYtOTguNSA5MC43LTk4LjUgMTU4LjF6TTQ2OS44IDQwMGwtLjcgLjFjLTExLjggMTguOC0yNS45IDM1LjEtNDIuMiA0OS41LTMwLjggMjgtNjguMSA0NS41LTEwOC44IDQ5LjktMTguNiAuMy0zNi44LTMuMi01My44LTExLjQtMjUuNi0xMC4zLTQ3LjEtMzAtNjEuNi01My0xNC40LTIzLjktMjEuMS01MS43LTE5LTc5LjYtLjYtMjAuMSA1LjQtNDAuMyAxNS01OC4yIDEzLjkgMzMuMSAzNy41IDYxLjMgNjcuNiA4MC44czY1LjUgMjkuNSAxMDEuNCAyOC42YzMxIC4zIDYyLjEtNi43IDkwLjItMjAuNWwxLjktLjljMy45LTIuMyA3LjctMy45IDExLjYgMCA0LjUgNC45IDEuOCA5LjItMS4yIDE0LS4yIC4yLS4zIC41LS40IC43elwiXVxufTtcbnZhciBmYUlveGhvc3QgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnaW94aG9zdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjIwOFwiLCBcIk02MTYgMTYwbC02Ny4zIDBDNTExLjIgNzAuNyA0MjIuOSA4IDMyMCA4IDE4MyA4IDcyIDExOSA3MiAyNTYgNzIgMjcyLjQgNzMuNiAyODguNSA3Ni43IDMwNEwyNCAzMDRjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0bDY3LjMgMGMzNy41IDg5LjMgMTI1LjggMTUyIDIyOC43IDE1MiAxMzcgMCAyNDgtMTExIDI0OC0yNDggMC0xNi40LTEuNi0zMi41LTQuNy00OGw1Mi43IDBjMTMuMyAwIDI0LTEwLjggMjQtMjQgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS05NiA5NmMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDAtNzUuNyAwLTE0MS42LTQyLTE3NS41LTEwNEw0MjQgMzUyYzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0bC0yOTguMiAwYy0zLjgtMTUuNC01LjgtMzEuNC01LjgtNDggMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwIDc1LjcgMCAxNDEuNiA0MiAxNzUuNSAxMDRMMjE2IDE2MGMtMTMuMyAwLTI0IDEwLjgtMjQgMjQgMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjk4LjIgMGMzLjggMTUuNCA1LjggMzEuNCA1LjggNDh6TTIxNiAyMzJsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAxMy4yLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEzLjIgMTAuNy0yNCAyNC0yNHpcIl1cbn07XG52YXIgZmFTY2hsaXggPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc2NobGl4JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmM2VhXCIsIFwiTTM1MC41IDE1Ny43bC01NC4yLTQ2LjEgNzMuNC0zOSA3OC4zIDQ0LjItOTcuNSA0MC45ek0xOTIgMTIyLjFsNDUuNy0yOC4yIDM0LjcgMzQuNi01NS40IDI5LTI1LTM1LjR6bS02NS4xIDYuNmwzMS45LTIyLjEgMTcuMiAyOC40LTM2LjcgMjIuNS0xMi40LTI4Ljh6bS0yMy4zIDg4LjJsLTguOC0zNC44IDI5LjYtMTguMyAxMy4xIDM1LjMtMzMuOSAxNy44ek04Mi40IDEzMy4ybDIzLjktMTguMSA4LjkgMjQtMjYuNyAxOC4zLTYuMS0yNC4yek01OSAyMDYuNWwtMy42LTI4LjQgMjIuMy0xNS41IDYuMSAyOC43LTI0LjggMTUuMnpNMjguNCAyMjMuMWwyMC44LTEyLjggMy4zIDMzLjQtMjIuOSAxMi0xLjItMzIuNnpNMS40IDI2OEwyMC42IDI1Ny44IDIxIDI5NiAwIDMwNC44IDEuNCAyNjh6bTU5LjEgNTkuM2wtMjguMyA4LjMtMS42LTQ2LjggMjUuMS0xMC43IDQuOCA0OS4yek05OSAyNjMuMmwtMzEuMSAxMy01LjItNDAuOCAyNy40LTE0LjQgOC45IDQyLjJ6TTEyMy4yIDM3N2wtNDEuNiA1LjktOC4xLTYzLjUgMzUuMi0xMC44IDE0LjUgNjguNHptMjguNS0xMzkuOWwyMS4yIDU3LjEtNDYuMiAxMy42LTEzLjctNTQuMSAzOC43LTE2LjZ6bTg1LjcgMjMwLjVsLTcwLjktMy4zLTI0LjMtOTUuOCA1NS4yLTguNiA0MCAxMDcuN3pNMTUyLjUgMTg3LjlsNDIuMi0yMi40IDI4IDQ1LjktNTAuOCAyMS4zLTE5LjQtNDQuOHptNDEgOTQuOWw2MS4zLTE4LjcgNTIuOCA4Ni42LTc5LjggMTEuMy0zNC4zLTc5LjJ6bTUxLjQtODUuNmw2Ny4zLTI4LjggNjUuNSA2NS40LTg4LjYgMjYuMi00NC4yLTYyLjh6XCJdXG59O1xudmFyIGZhREFuZEQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZC1hbmQtZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjM4ZFwiLCBcIk04Mi45IDk4LjljLS42LTE3LjIgMi0zMy44IDEyLjctNDguMiAuMyA3LjQgMS4yIDE0LjUgNC4yIDIxLjYgNS45LTI3LjUgMTkuNy00OS4zIDQyLjMtNjUuNS0xLjkgNS45LTMuNSAxMS44LTMgMTcuNyA4LjctNy40IDE4LjgtMTcuOCA0NC40LTIyLjcgMTQuNy0yLjggMjkuNy0yIDQyLjEgMSAzOC41IDkuMyA2MSAzNC4zIDY5LjcgNzIuMyA1LjMgMjMuMSAuNyA0NS04LjMgNjYuNC01LjIgMTIuNC0xMiAyNC40LTIwLjcgMzUuMS0yLTEuOS0zLjktMy44LTUuOC01LjYtNDIuOC00MC44LTI2LjgtMjUuMi0zNy40LTM3LjQtMS4xLTEuMi0xLTIuMi0uMS0zLjYgOC4zLTEzLjUgMTEuOC0yOC4yIDEwLTQ0LTEuMS05LjgtNC4zLTE4LjktMTEuMy0yNi4yLTE0LjUtMTUuMy0zOS4yLTE1LTUzLjUgLjYtMTEuNCAxMi41LTE0LjEgMjcuNC0xMC45IDQzLjYgLjIgMS4zIC40IDIuNyAwIDMuOS0zLjQgMTMuNy00LjYgMjcuNi0yLjUgNDEuNiAuMSAuNSAuMSAxLjEgLjEgMS42IDAgLjMtLjEgLjUtLjIgMS4xLTIxLjgtMTEtMzYtMjguMy00My4yLTUyLjItOC4zIDE3LjgtMTEuMSAzNS41LTYuNiA1NC4xLTE1LjYtMTUuMi0yMS4zLTM0LjMtMjItNTUuMnpNNTUyLjUgMjIyLjFjLTExLjYtMTEuNi0yNS0yMC40LTQwLjEtMjYuNi0xMi44LTUuMi0yNi03LjktMzkuOS03LjEtMTAgLjYtMTkuNiAzLjEtMjkgNi40LTIuNSAuOS01LjEgMS42LTcuNyAyLjItNC45IDEuMi03LjMtMy4xLTQuNy02LjggMy4yLTQuNiAzLjQtNC4yIDE1LTEyIC42LS40IDEuMi0uOCAyLjItMS41bC0yLjUgMGMtLjYgMC0xLjIgLjItMS45IC4zLTE5LjMgMy4zLTMwLjcgMTUuNS00OC45IDI5LjYtMTAuNCA4LjEtMTMuOCAzLjgtMTItLjUgMS40LTMuNSAzLjMtNi43IDUuMS0xMCAxLTEuOCAyLjMtMy40IDMuNS01LjEtLjItLjItLjUtLjMtLjctLjUtMjcgMTguMy00Ni43IDQyLjQtNTcuNyA3My4zIC4zIC4zIC43IC42IDEgLjkgLjMtLjYgLjUtMS4yIC45LTEuNyAxMC40LTEyLjEgMjIuOC0yMS44IDM2LjYtMjkuOCAxOC4yLTEwLjYgMzcuNS0xOC4zIDU4LjctMjAuMiA0LjMtLjQgOC43LS4xIDEzLjEtLjEtMS44IC43LTMuNSAuOS01LjMgMS4xLTE4LjUgMi40LTM1LjUgOS01MS41IDE4LjUtMzAuMiAxNy45LTU0LjUgNDIuMi03NS4xIDcwLjQtLjMgLjQtLjQgLjktLjcgMS4zIDE0LjUgNS4zIDI0IDE3LjMgMzYuMSAyNS42IC4yLS4xIC4zLS4yIC40LS40bDEuMi0yLjdjMTIuMi0yNi45IDI3LTUyLjMgNDYuNy03NC41IDE2LjctMTguOCAzOC0yNS4zIDYyLjUtMjAgNS45IDEuMyAxMS40IDQuNCAxNy4yIDYuOCAyLjMtMS40IDUuMS0zLjIgOC00LjcgOC40LTQuMyAxNy40LTcgMjYuNy05IDE0LjctMy4xIDI5LjUtNC45IDQ0LjUtMS4zbDAtLjVjLS41LS40LTEuMi0uOC0xLjctMS40ek0zMTcuMSAzOTcuNmMtMzkuNC0zMy0yMi44LTE5LjUtNDIuNy0zNS42LS44IC45IDAtLjItMS45IDMtMTEuMiAxOS4xLTI1LjUgMzUuMy00NCA0Ny42LTEwLjMgNi44LTIxLjUgMTEuOC0zNC4xIDExLjgtMjEuNiAwLTM4LjItOS41LTQ5LjQtMjcuOC0xMi0xOS41LTEzLjMtNDAuNy04LjItNjIuNiA3LjgtMzMuOCAzMC4xLTU1LjIgMzguNi02NC4zLTE4LjctNi4yLTMzIDEuNy00Ni40IDEzLjkgLjgtMTMuOSA0LjMtMjYuMiAxMS44LTM3LjMtMjQuMyAxMC42LTQ1LjkgMjUtNjQuOCA0My45LS4zLTUuOCA1LjQtNDMuNyA1LjYtNDQuNyAuMy0yLjctLjYtNS4zLTMtNy40LTI0LjIgMjQuNy00NC41IDUxLjgtNTYuMSA4NC42IDcuNC01LjkgMTQuOS0xMS40IDIzLjYtMTYuMi04LjMgMjIuMy0xOS42IDUyLjgtNy44IDEwMS4xIDQuNiAxOSAxMS45IDM2LjggMjQuMSA1Mi4zIDIuOSAzLjcgNi4zIDYuOSA5LjUgMTAuMyAuMi0uMiAuNC0uMyAuNi0uNS0xLjQtNy0yLjItMTQuMS0xLjUtMjEuOSAyLjIgMy4yIDMuOSA2IDUuOSA4LjYgMTIuNiAxNiAyOC43IDI3LjQgNDcuMiAzNS42IDI1IDExLjMgNTEuMSAxMy4zIDc3LjkgOC42IDU0LjktOS43IDkwLjctNDguNiAxMTYtOTguOCAxLTEuOCAuNi0yLjktLjktNC4yem0xNzItNDYuNGMtOS41LTMuMS0yMi4yLTQuMi0yOC43LTIuOSA5LjkgNCAxNC4xIDYuNiAxOC44IDEyIDEyLjYgMTQuNCAxMC40IDM0LjctNS40IDQ1LjYtMTEuNyA4LjEtMjQuOSAxMC41LTM4LjkgOS4xLTEuMi0uMS0yLjMtLjQtMy0uNiAyLjgtMy43IDYtNyA4LjEtMTAuOCA5LjQtMTYuOCA1LjQtNDIuMS04LjctNTYuMS0yLjEtMi4xLTQuNi0zLjktNy01LjktLjMgMS4zLS4xIDIuMSAuMSAyLjggNC4yIDE2LjYtOC4xIDMyLjQtMjQuOCAzMS44LTcuNi0uMy0xMy45LTMuOC0xOS42LTguNS0xOS41LTE2LjEtMzkuMS0zMi4xLTU4LjUtNDguMy01LjktNC45LTEyLjUtOC4xLTIwLjEtOC43LTQuNi0uNC05LjMtLjYtMTMuOS0uOS01LjktLjQtOC44LTIuOC0xMC40LTguNC0uOS0zLjQtMS41LTYuOC0yLjItMTAuMi0xLjUtOC4xLTYuMi0xMy0xNC4zLTE0LjItNC40LS43LTguOS0xLTEzLjMtMS41LTEzLTEuNC0xOS44LTcuNC0yMi42LTIwLjMtNSAxMS0xLjYgMjIuNCA3LjMgMjkuOSA0LjUgMy44IDkuMyA3LjMgMTMuOCAxMS4yIDQuNiAzLjggNy40IDguNyA3LjkgMTQuOCAuNCA0LjcgLjggOS41IDEuOCAxNC4xIDIuMiAxMC42IDguOSAxOC40IDE3IDI1LjEgMTYuNSAxMy43IDMzIDI3LjMgNDkuNSA0MS4xIDE3LjkgMTUgMTMuOSAzMi44IDEzIDU2LS45IDIyLjkgMTIuMiA0Mi45IDMzLjUgNTEuMiAxIC40IDIgLjYgMy42IDEuMS0xNS43LTE4LjItMTAuMS00NC4xIC43LTUyLjMgLjMgMi4yIC40IDQuMyAuOSA2LjQgOS40IDQ0LjEgNDUuNCA2NC4yIDg1IDU2LjkgMTYtMi45IDMwLjYtOC45IDQyLjktMTkuOCAyLTEuOCAzLjctNC4xIDUuOS02LjUtMTkuMyA0LjYtMzUuOCAuMS01MC45LTEwLjYgLjctLjMgMS4zLS4zIDEuOS0uMyAyMS4zIDEuOCA0MC42LTMuNCA1Ny0xNy40IDE5LjUtMTYuNiAyNi42LTQyLjkgMTcuNC02Ni04LjMtMjAuMS0yMy42LTMyLjMtNDMuOC0zOC45ek05OS44IDE3OS4zYy01LjMtOS4yLTEzLjItMTUuNi0yMi4xLTIxLjMgMTMuNy0uNSAyNi42IC4yIDM5LjYgMy43LTctMTIuMi04LjUtMjQuNy01LTM4LjcgNS4zIDExLjkgMTMuNyAyMC4xIDIzLjYgMjYuOCAxOS43IDEzLjIgMzUuNyAxOS42IDQ2LjcgMzAuMiAzLjQgMy4zIDYuMyA3LjEgOS42IDEwLjktLjgtMi4xLTEuNC00LjEtMi4yLTYtNS0xMC42LTEzLTE4LjYtMjIuNi0yNS0xLjgtMS4yLTIuOC0yLjUtMy40LTQuNS0zLjMtMTIuNS0zLTI1LjEtLjctMzcuNiAxLTUuNSAyLjgtMTAuOSA0LjUtMTYuMyAuOC0yLjQgMi4zLTQuNiA0LTYuNiAuNiA2LjkgMCAyNS41IDE5LjYgNDYgMTAuOCAxMS4zIDIyLjQgMjEuOSAzMy45IDMyLjcgOSA4LjUgMTguMyAxNi43IDI1LjUgMjYuOCAxLjEgMS42IDIuMiAzLjMgMy44IDQuNy01LTEzLTE0LjItMjQuMS0yNC4yLTMzLjgtOS42LTkuMy0xOS40LTE4LjQtMjkuMi0yNy40LTMuMy0zLTQuNi02LjctNS4xLTEwLjktMS4yLTEwLjQgMC0yMC42IDQuMy0zMC4yIC41LTEgMS4xLTIgMS45LTMuMyAuNSA0LjIgLjYgNy45IDEuNCAxMS42IDQuOCAyMy4xIDIwLjQgMzYuMyA0OS4zIDYzLjUgMTAgOS40IDE5LjMgMTkuMiAyNS42IDMxLjYgNC44IDkuMyA3LjMgMTkgNS43IDI5LjYtLjEgLjYgLjUgMS43IDEuMSAyIDYuMiAyLjYgMTAgNi45IDkuNyAxNC4zIDcuNy0yLjYgMTIuNS04IDE2LjQtMTQuNSA0LjIgMjAuMi05LjEgNTAuMy0yNy4yIDU4LjcgLjQtNC41IDUtMjMuNC0xNi41LTI3LjctNi44LTEuMy0xMi44LTEuMy0yMi45LTIuMSA0LjctOSAxMC40LTIwLjYgLjUtMjIuNC0yNC45LTQuNi01Mi44IDEuOS01Ny44IDQuNiA4LjIgLjQgMTYuMyAxIDIzLjUgMy4zLTIgNi41LTQgMTIuNy01LjggMTguOS0xLjkgNi41IDIuMSAxNC42IDkuMyA5LjYgMS4yLS45IDIuMy0xLjkgMy4zLTIuNy0zLjEgMTcuOS0yLjkgMTUuOS0yLjggMTguMyAuMyAxMC4yIDkuNSA3LjggMTUuNyA3LjMtMi41IDExLjgtMjkuNSAyNy4zLTQ1LjQgMjUuOCA3LTQuNyAxMi43LTEwLjMgMTUuOS0xNy45LTYuNSAuOC0xMi45IDEuNi0xOS4yIDIuNGwtLjMtLjljNC43LTMuNCA4LTcuOCAxMC4yLTEzLjEgOC43LTIxLjEtMy42LTM4LTI1LTM5LjktOS4xLS44LTE3LjggLjgtMjUuOSA1LjUgNi4yLTE1LjYgMTcuMi0yNi42IDMyLjYtMzQuNS0xNS4yLTQuMy04LjktMi43LTI0LjYtNi4zIDE0LjYtOS4zIDMwLjItMTMuMiA0Ni41LTE0LjYtNS4yLTMuMi00OC4xLTMuNi03MC4yIDIwLjkgNy45IDEuNCAxNS41IDIuOCAyMy4yIDQuMi0yMy44IDctNDQgMTkuNy02Mi40IDM1LjYgMS4xLTQuOCAyLjctOS41IDMuMy0xNC4zIC42LTQuNSAuOC05LjIgLjEtMTMuNi0xLjUtOS40LTguOS0xNS4xLTE5LjctMTYuMy03LjktLjktMTUuNiAuMS0yMy4zIDEuMy0uOSAuMS0xLjcgLjMtMi45IDAgMTUuOC0xNC44IDM2LTIxLjcgNTMuMS0zMy41IDYtNC41IDYuOC04LjIgMy0xNC45em0xMjguNCAyNi44YzMuMyAxNiAxMi42IDI1LjUgMjMuOCAyNC4zLTQuNi0xMS4zLTEyLjEtMTkuNS0yMy44LTI0LjN6XCJdXG59O1xudmFyIGZhVnVlanMgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndnVlanMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY0MWZcIiwgXCJNMzU2LjkgNjQuM2wtNzYuOSAwLTU2IDg4LjYtNDgtODguNi0xNzYgMCAyMjQgMzgzLjcgMjI0LTM4My43LTkxLjEgMHpNNTUuNyA5Ni4zbDUzLjggMCAxMTQuNSAxOTguMiAxMTQuNC0xOTguMiA1My44IDAtMTY4LjIgMjg4LjItMTY4LjMtMjg4LjJ6XCJdXG59O1xudmFyIGZhTWV0YSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdtZXRhJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNDliXCIsIFwiTTY0MCAzMTcuOWMwIDkxLjMtMzkuNCAxNDguNS0xMTAuMyAxNDguNS02Mi42IDAtOTUuOC0zNC42LTE1Ni45LTEzNi42bC0zMS40LTUyLjZjLTguMy0xMi41LTE0LjUtMjQuMi0yMS4yLTM1LTIwLjEgMzMuOC00Ny4xIDgzLTQ3LjEgODMtNjcgMTE2LjYtMTA0LjYgMTQxLjItMTU2LjkgMTQxLjItNzIuOCAwLTExNi4yLTU3LjMtMTE2LjItMTQ1LjkgMC0xNDMgNzkuOC0yNzguMSAxODMuOS0yNzguMSA1MC4yIDAgOTMuOCAyNC43IDE0NC44IDg5LjUgMzcuMS01MC4xIDc4LjEtODkuNSAxMzAuNi04OS41IDk5LjEgMCAxODAuNyAxMjUuNyAxODAuNyAyNzUuNXpNMjg3LjQgMTkyLjJjLTQyLjktNjIuMS03MC45LTgwLjUtMTA0LjQtODAuNS02MS45IDAtMTEzLjggMTA2LjEtMTEzLjggMjEwIDAgNDguNSAxOC41IDc1LjcgNDkuNiA3NS43IDMwLjIgMCA0OS0xOSAxMDMuMi0xMDMuOCAwIDAgMjQuNy0zOS4xIDY1LjQtMTAxLjR6TTUzMS4yIDM5Ny40YzMyLjIgMCA0Ni45LTI3LjUgNDYuOS03NC45IDAtMTI0LjItNTQuMy0yMjUuNC0xMjMuMi0yMjUuNC0zMy4yIDAtNjEuMSAyNS45LTk0LjkgNzggOS40IDEzLjggMTkuMSAyOSAyOS4zIDQ1LjRsMzcuNSA2Mi40YzU4LjcgOTQuMSA3My41IDExNC41IDEwNC40IDExNC41elwiXVxufTtcbnZhciBmYUNyZWF0aXZlQ29tbW9uc1NoYXJlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NyZWF0aXZlLWNvbW1vbnMtc2hhcmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0ZjJcIiwgXCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0xMDEgMTMyLjRjNy44IDAgMTMuNyA2LjEgMTMuNyAxMy43bDAgMTgyLjVjMCA3LjctNi4xIDEzLjctMTMuNyAxMy43bC0xMzUuMSAwYy03LjcgMC0xMy43LTYtMTMuNy0xMy43bDAtNTQtNTQgMGMtNy44IDAtMTMuNy02LTEzLjctMTMuN2wwLTE4Mi41YzAtOC4yIDYuNi0xMi43IDEyLjQtMTMuN2wxMzYuNCAwYzcuNyAwIDEzLjcgNiAxMy43IDEzLjdsMCA1NCA1NCAwek0xNjcuOSAzMDAuM2w0MC43IDAgMC0xMDEuNGMwLTcuNCA1LjgtMTIuNiAxMi0xMy43bDU1LjggMCAwLTQwLjMtMTA4LjUgMCAwIDE1NS40em0xNzYuMi04OC4xbC0xMDguNSAwIDAgMTU1LjQgMTA4LjUgMCAwLTE1NS40elwiXVxufTtcbnZhciBmYVN0dWRpb3ZpbmFyaSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzdHVkaW92aW5hcmknLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzZjhcIiwgXCJNNDgwLjcgMTg3LjdsNC4yIDI4IDAgMjgtMjUuMSA0NC4xLTM5LjggNzguNC01Ni4xIDY3LjUtNzkuMSAzNy44LTE3LjcgMjQuNS03LjcgMTItOS42IDRzMTcuMy02My42IDE5LjQtNjMuNiAyMC4zIC43IDIwLjMgLjdsNjYuNy0zOC42LTkyLjUgMjYuMS01NS45IDM2LjgtMjIuOCAyOC02LjYgMS40IDIwLjgtNzMuNiA2LjktNS41IDIwLjcgMTIuOSA4OC4zLTQ1LjIgNTYuOC01MS41IDE0LjgtNjguNC0xMjUuNCAyMy4zIDE1LjItMTguMi0xNzMuNC01My4zIDgxLjktMTAuNS0xNjYtMTIyLjkgMTE0LjkgMTguMS0xMDEuMy0xMDggMjUyLjkgMTI2LjYtMzEuNS0zOCAxMjQuNCA3NC40LTE0My4zLTk5IDE4LjcgMzguNC00OS42LTE4LjEtNDUuNS04NC4zIDE5NC42IDEyMi00Mi45LTU1LjggMTA4IDk2LjQgMTItOC45LTIxLTE2LjQgNC4yLTM3LjggMzcuOC0xMC40IDI5LjIgMjQuNyAxMS41IDQuMi03IDYuMiA4LjUgMTItMTMuMSA3LjQtMTAuMyAyMC4yIDEwLjUgMjMuOXpcIl1cbn07XG52YXIgZmFCaXRidWNrZXQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYml0YnVja2V0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE4MTBdLCBcImYxNzFcIiwgXCJNMjIuMiAzMmMtMi4xIDAtNC4yIC40LTYuMSAxLjFzLTMuNyAxLjktNS4yIDMuNC0yLjcgMy4yLTMuNSA1LjEtMS4zIDQtMS4zIDYuMWMwIC45IC4xIDEuOSAuMiAyLjhMNzQuMSA0NjIuN2MuOCA1LjEgMy40IDkuNyA3LjMgMTNzOC44IDUuMiAxNCA1LjJsMzI1LjcgMGMzLjggLjEgNy41LTEuMyAxMC41LTMuN3M0LjktNS45IDUuNS05LjdMNTA1IDUwLjdjLjctNC4yLS4zLTguNC0yLjgtMTEuOXMtNi4yLTUuNy0xMC40LTYuNGMtLjktLjEtMS45LS4yLTIuOC0uMkwyMi4yIDMyek0zMDguMSAzMjkuOGwtMTA0IDAtMjguMS0xNDcgMTU3LjMgMC0yNS4yIDE0N3pcIl1cbn07XG52YXIgZmFWayA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd2aycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjE4OVwiLCBcIk0zMS41IDYzLjVDMCA5NSAwIDE0NS43IDAgMjQ3TDAgMjY1QzAgMzY2LjMgMCA0MTcgMzEuNSA0NDguNVMxMTMuNyA0ODAgMjE1IDQ4MGwxNy45IDBjMTAxLjQgMCAxNTIuMSAwIDE4My41LTMxLjVTNDQ4IDM2Ni4zIDQ0OCAyNjVsMC0xNy45YzAtMTAxLjQgMC0xNTIuMS0zMS41LTE4My41UzMzNC4zIDMyIDIzMyAzMkwyMTUgMzJDMTEzLjcgMzIgNjMgMzIgMzEuNSA2My41ek03NS42IDE2OC4zbDUxLjEgMGMxLjcgODUuNSAzOS40IDEyMS43IDY5LjMgMTI5LjJsMC0xMjkuMiA0OC4yIDAgMCA3My43YzI5LjUtMy4yIDYwLjUtMzYuOCA3MC45LTczLjdsNDguMiAwYy0zLjkgMTkuMi0xMS44IDM3LjMtMjMuMSA1My4zcy0yNS43IDI5LjUtNDIuNSAzOS42YzE4LjcgOS4zIDM1LjIgMjIuNCA0OC40IDM4LjVzMjIuOSAzNC45IDI4LjMgNTVsLTUzIDBjLTQuOS0xNy41LTE0LjgtMzMuMS0yOC42LTQ1cy0zMC43LTE5LjQtNDguNy0yMS42bDAgNjYuNi01LjggMGMtMTAyLjEgMC0xNjAuMy03MC0xNjIuOC0xODYuNXpcIl1cbn07XG52YXIgZmFHaXRodWIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZ2l0aHViJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDliXCIsIFwiTTE3My45IDM5Ny40YzAgMi0yLjMgMy42LTUuMiAzLjYtMy4zIC4zLTUuNi0xLjMtNS42LTMuNiAwLTIgMi4zLTMuNiA1LjItMy42IDMtLjMgNS42IDEuMyA1LjYgMy42em0tMzEuMS00LjVjLS43IDIgMS4zIDQuMyA0LjMgNC45IDIuNiAxIDUuNiAwIDYuMi0ycy0xLjMtNC4zLTQuMy01LjJjLTIuNi0uNy01LjUgLjMtNi4yIDIuM3ptNDQuMi0xLjdjLTIuOSAuNy00LjkgMi42LTQuNiA0LjkgLjMgMiAyLjkgMy4zIDUuOSAyLjYgMi45LS43IDQuOS0yLjYgNC42LTQuNi0uMy0xLjktMy0zLjItNS45LTIuOXpNMjUyLjggOGMtMTM4LjcgMC0yNDQuOCAxMDUuMy0yNDQuOCAyNDQgMCAxMTAuOSA2OS44IDIwNS44IDE2OS41IDIzOS4yIDEyLjggMi4zIDE3LjMtNS42IDE3LjMtMTIuMSAwLTYuMi0uMy00MC40LS4zLTYxLjQgMCAwLTcwIDE1LTg0LjctMjkuOCAwIDAtMTEuNC0yOS4xLTI3LjgtMzYuNiAwIDAtMjIuOS0xNS43IDEuNi0xNS40IDAgMCAyNC45IDIgMzguNiAyNS44IDIxLjkgMzguNiA1OC42IDI3LjUgNzIuOSAyMC45IDIuMy0xNiA4LjgtMjcuMSAxNi0zMy43LTU1LjktNi4yLTExMi4zLTE0LjMtMTEyLjMtMTEwLjUgMC0yNy41IDcuNi00MS4zIDIzLjYtNTguOS0yLjYtNi41LTExLjEtMzMuMyAyLjYtNjcuOSAyMC45LTYuNSA2OSAyNyA2OSAyNyAyMC01LjYgNDEuNS04LjUgNjIuOC04LjVzNDIuOCAyLjkgNjIuOCA4LjVjMCAwIDQ4LjEtMzMuNiA2OS0yNyAxMy43IDM0LjcgNS4yIDYxLjQgMi42IDY3LjkgMTYgMTcuNyAyNS44IDMxLjUgMjUuOCA1OC45IDAgOTYuNS01OC45IDEwNC4yLTExNC44IDExMC41IDkuMiA3LjkgMTcgMjIuOSAxNyA0Ni40IDAgMzMuNy0uMyA3NS40LS4zIDgzLjYgMCA2LjUgNC42IDE0LjQgMTcuMyAxMi4xIDEwMC0zMy4yIDE2Ny44LTEyOC4xIDE2Ny44LTIzOSAwLTEzOC43LTExMi41LTI0NC0yNTEuMi0yNDR6TTEwNS4yIDM1Mi45Yy0xLjMgMS0xIDMuMyAuNyA1LjIgMS42IDEuNiAzLjkgMi4zIDUuMiAxIDEuMy0xIDEtMy4zLS43LTUuMi0xLjYtMS42LTMuOS0yLjMtNS4yLTF6bS0xMC44LTguMWMtLjcgMS4zIC4zIDIuOSAyLjMgMy45IDEuNiAxIDMuNiAuNyA0LjMtLjcgLjctMS4zLS4zLTIuOS0yLjMtMy45LTItLjYtMy42LS4zLTQuMyAuN3ptMzIuNCAzNS42Yy0xLjYgMS4zLTEgNC4zIDEuMyA2LjIgMi4zIDIuMyA1LjIgMi42IDYuNSAxIDEuMy0xLjMgLjctNC4zLTEuMy02LjItMi4yLTIuMy01LjItMi42LTYuNS0xem0tMTEuNC0xNC43Yy0xLjYgMS0xLjYgMy42IDAgNS45czQuMyAzLjMgNS42IDIuM2MxLjYtMS4zIDEuNi0zLjkgMC02LjItMS40LTIuMy00LTMuMy01LjYtMnpcIl1cbn07XG52YXIgZmFDb2RpZXBpZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjb2RpZXBpZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI4NFwiLCBcIk00NDIuNSAyMDIuOWMzMC43IDAgMzMuNSA1My4xLS4zIDUzLjFsLTEwLjggMCAwIDQ0LjMtMjYuNiAwIDAtOTcuNCAzNy43IDB6TTQ5MiAzNTIuNkM0NDkuOSA0NDQuNSAzNzAuNCA1MDQgMjY4IDUwNCAxMzEgNTA0IDIwIDM5MyAyMCAyNTZTMTMxIDggMjY4IDhjOTcuNCAwIDE3Mi44IDUzLjcgMjE4LjIgMTM4LjRMMzAwLjIgMjU1LjIgNDkyIDM1Mi42em0tMzguNSAxMi41bC02MC4zLTMwLjdjLTI3LjEgNDQuMy03MC40IDcxLjQtMTIyLjQgNzEuNC04Mi41IDAtMTQ5LjItNjYuNy0xNDkuMi0xNDguOSAwLTgyLjUgNjYuNy0xNDkuMiAxNDkuMi0xNDkuMiA0OC40IDAgODguOSAyMy41IDExNi45IDYzLjRsNTkuNS0zNC42QzQwNi41IDczLjkgMzQyLjUgMzYuNSAyNjggMzYuNSAxNDYuOCAzNi41IDQ4LjUgMTM0LjggNDguNSAyNTZTMTQ2LjggNDc1LjUgMjY4IDQ3NS41Yzc4LjYgMCAxNDYuNS00Mi4xIDE4NS41LTExMC40elwiXVxufTtcbnZhciBmYVBpZWRQaXBlciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdwaWVkLXBpcGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMmFlXCIsIFwiTTQ0MC4yIDIzLjJjLTI2LjcgNi44LTY4LjEgMjguNS0xMTQuNiA2Ny41LTMwLjktMTcuNS02NS44LTI2LjctMTAxLjQtMjYuNy0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOCAyMDgtOTMuMSAyMDgtMjA4Yy4xLTU0LjEtMjEtMTA2LjEtNTguNy0xNDQuOC02LjYgOC41LTEyLjMgMTcuNy0xNyAyNy40IDI4LjkgMzIuMyA0NC44IDc0LjEgNDQuOSAxMTcuNCAwIDk3LjctNzkuNCAxNzcuMS0xNzcuMSAxNzcuMS0zMC44IDAtNjEtOC4xLTg3LjYtMjMuNCA4Mi45LTEwNy4zIDE1MC44LTM3LjggMTg0LjMtMjI2LjYgNS44LTMyLjYgMjgtOTQuMyAxMjYuMi0xNjAuMiA4LjEtNS40IDIuNC0xOC4xLTctMTUuN3pNMTA5LjMgNDA2LjRDODkuOCAzODkuOCA3NC4yIDM2OS4yIDYzLjUgMzQ2cy0xNi4zLTQ4LjUtMTYuMy03NGMwLTk3LjcgNzkuNC0xNzcuMSAxNzcuMS0xNzcuMSAyNi42IDAgNTIuOCA2LjEgNzYuNiAxNy44LTY2IDYyLjEtMTI2LjkgMTUyLjktMTkxLjYgMjkzLjh6XCJdXG59O1xudmFyIGZhUmFzcGJlcnJ5UGkgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncmFzcGJlcnJ5LXBpJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmN2JiXCIsIFwiTTM5Mi41IDIzMi41bC0zLjctNi41Yy4xLTQ2LjQtMjEuNC02NS4zLTQ2LjUtNzkuNyA3LjYtMiAxNS40LTMuNiAxNy42LTEzLjIgMTMuMS0zLjMgMTUuOC05LjQgMTcuMS0xNS44IDMuNC0yLjMgMTQuOC04LjcgMTMuNi0xOS43IDYuNC00LjQgMTAtMTAuMSA4LjEtMTguMSA2LjktNy41IDguNy0xMy43IDUuOC0xOS40IDguMy0xMC4zIDQuNi0xNS42IDEuMS0yMC45IDYuMi0xMS4yIC43LTIzLjItMTYuNi0yMS4yLTYuOS0xMC4xLTIxLjktNy44LTI0LjItNy44LTIuNi0zLjItNi02LTE2LjUtNC43LTYuOC02LjEtMTQuNC01LTIyLjMtMi4xLTkuMy03LjMtMTUuNS0xLjQtMjIuNiAuOC0xMS4zLTMuNi0xMy45IDEuMy0xOS40IDMuNC0xMi4zLTIuNi0xNi4xIDMtMjIgOC45bC02LjktLjFjLTE4LjYgMTAuOC0yNy44IDMyLjgtMzEuMSA0NC4xLTMuMy0xMS4zLTEyLjUtMzMuMy0zMS4xLTQ0LjFsLTYuOSAuMWMtNS45LTUuOS05LjctMTEuNS0yMi04LjktNS42LTItOC4xLTctMTkuNC0zLjQtNC42LTEuNC04LjktNC40LTEzLjktNC4zLTIuNiAuMS01LjUgMS04LjcgMy41LTcuOS0zLTE1LjUtNC0yMi4zIDIuMS0xMC41LTEuMy0xNCAxLjQtMTYuNSA0LjctMi4zIDAtMTcuMy0yLjMtMjQuMiA3LjgtMTcuMy0yLTIyLjcgMTAtMTYuNSAyMS4yLTMuNSA1LjQtNy4yIDEwLjcgMS4xIDIwLjktMi45IDUuNy0xLjEgMTEuOSA1LjggMTkuNC0xLjggOCAxLjggMTMuNyA4LjEgMTguMS0xLjIgMTEgMTAuMiAxNy40IDEzLjYgMTkuNyAxLjMgNi40IDQgMTIuNCAxNy4xIDE1LjggMi4yIDkuNSAxMCAxMS4yIDE3LjYgMTMuMi0yNS4xIDE0LjQtNDYuNiAzMy4zLTQ2LjUgNzkuN2wtMy43IDYuNWMtMjguOCAxNy4yLTU0LjcgNzIuNy0xNC4yIDExNy43IDIuNiAxNC4xIDcuMSAyNC4yIDExIDM1LjQgNS45IDQ1LjIgNDQuNSA2Ni4zIDU0LjYgNjguOCAxNC45IDExLjIgMzAuOCAyMS44IDUyLjIgMjkuMiAyMC4zIDIwLjYgNDIuMyAyOC40IDY0LjMgMjguNGwxIDBjMjIuMSAwIDQ0LTcuOCA2NC4yLTI4LjQgMjEuNS03LjQgMzcuMy0xOCA1Mi4yLTI5LjIgMTAuMi0yLjUgNDguNy0yMy42IDU0LjYtNjguOCAzLjktMTEuMiA4LjQtMjEuMyAxMS0zNS40IDQwLjYtNDUuMSAxNC43LTEwMC41LTE0LTExNy43em0tMjIuMi04Yy0xLjUgMTguNy05OC45LTY1LjEtODIuMS02Ny45IDQ1LjctNy41IDgzLjYgMTkuMiA4Mi4xIDY3Ljl6bS00MyA5My4xYy0yNC41IDE1LjgtNTkuOCA1LjYtNzguOC0yMi44cy0xNC42LTY0LjIgOS45LTgwIDU5LjgtNS42IDc4LjggMjIuOCAxNC42IDY0LjItOS45IDgwek0yNTkuNCAyOS4zYy44IDQuMiAxLjggNi44IDIuOSA3LjYgNS40LTUuOCA5LjgtMTEuNyAxNi44LTE3LjMgMCAzLjMtMS43IDYuOCAyLjUgOS40IDMuNy01IDguOC05LjUgMTUuNS0xMy4zLTMuMiA1LjYtLjYgNy4zIDEuMiA5LjYgNS4xLTQuNCAxMC04LjggMTkuNC0xMi4zLTIuNiAzLjEtNi4yIDYuMi0yLjQgOS44IDUuMy0zLjMgMTAuNi02LjYgMjMuMS04LjktMi44IDMuMS04LjcgNi4zLTUuMSA5LjQgNi42LTIuNSAxNC00LjQgMjIuMS01LjQtMy45IDMuMi03LjEgNi4zLTMuOSA4LjggNy4xLTIuMiAxNi45LTUuMSAyNi40LTIuNmwtNiA2LjFjLS43IC44IDE0LjEgLjYgMjMuOSAuOC0zLjYgNS03LjIgOS43LTkuMyAxOC4yIDEgMSA1LjggLjQgMTAuNCAwLTQuNyA5LjktMTIuOCAxMi4zLTE0LjcgMTYuNiAyLjkgMi4yIDYuOCAxLjYgMTEuMiAuMS0zLjQgNi45LTEwLjQgMTEuNy0xNiAxNy4zIDEuNCAxIDMuOSAxLjYgOS43IC45LTUuMiA1LjUtMTEuNCAxMC41LTE4LjggMTUgMS4zIDEuNSA1LjggMS41IDEwIDEuNi02LjcgNi41LTE1LjMgOS45LTIzLjQgMTQuMiA0IDIuNyA2LjkgMi4xIDEwIDIuMS01LjcgNC43LTE1LjQgNy4xLTI0LjQgMTAgMS43IDIuNyAzLjQgMy40IDcuMSA0LjEtOS41IDUuMy0yMy4yIDIuOS0yNyA1LjYgLjkgMi43IDMuNiA0LjQgNi43IDUuOC0xNS40IC45LTU3LjMtLjYtNjUuNC0zMi4zIDE1LjctMTcuMyA0NC40LTM3LjUgOTMuNy02Mi42LTM4LjQgMTIuOC03MyAzMC0xMDIgNTMuNS0zNC4zLTE1LjktMTAuOC01NS45IDUuOC03MS44ek0yMjUgMTQzLjljMjQuMi0uMyA1NC4xIDE3LjggNTQgMzQuNy0uMSAxNS0yMSAyNy4xLTUzLjggMjYuOS0zMi4xLS40LTUzLjctMTUuMi01My42LTI5LjggMC0xMS45IDI2LjItMzIuNSA1My40LTMxLjh6TTEwMiAxMzEuMWMzLjctLjcgNS40LTEuNSA3LjEtNC4xLTktMi44LTE4LjctNS4zLTI0LjQtMTAgMy4xIDAgNiAuNyAxMC0yLjEtOC4xLTQuMy0xNi43LTcuNy0yMy40LTE0LjIgNC4yLS4xIDguNyAwIDEwLTEuNi03LjQtNC41LTEzLjYtOS41LTE4LjgtMTUgNS44IC43IDguMyAuMSA5LjctLjktNS42LTUuNi0xMi43LTEwLjQtMTYtMTcuMyA0LjMgMS41IDguMyAyIDExLjItLjEtMS45LTQuMi0xMC02LjctMTQuNy0xNi42IDQuNiAuNCA5LjQgMSAxMC40IDAtMi4xLTguNS01LjgtMTMuMy05LjMtMTguMiA5LjgtLjEgMjQuNiAwIDIzLjktLjhsLTYtNi4xYzkuNS0yLjUgMTkuMyAuNCAyNi40IDIuNiAzLjItMi41LS4xLTUuNi0zLjktOC44IDguMSAxLjEgMTUuNCAyLjkgMjIuMSA1LjQgMy41LTMuMS0yLjMtNi4zLTUuMS05LjQgMTIuNSAyLjMgMTcuOCA1LjYgMjMuMSA4LjkgMy44LTMuNiAuMi02LjctMi40LTkuOCA5LjQgMy40IDE0LjMgNy45IDE5LjQgMTIuMyAxLjctMi4zIDQuNC00IDEuMi05LjYgNi43IDMuOCAxMS44IDguMyAxNS41IDEzLjMgNC4xLTIuNiAyLjUtNi4yIDIuNS05LjQgNyA1LjYgMTEuNCAxMS41IDE2LjggMTcuMyAxLjEtLjggMi0zLjQgMi45LTcuNiAxNi42IDE1LjkgNDAuMSA1NS45IDYgNzEuOC0yOS0yMy41LTYzLjYtNDAuNy0xMDItNTMuNSA0OS4zIDI1IDc4IDQ1LjMgOTMuNyA2Mi42LTggMzEuOC01MCAzMy4yLTY1LjQgMzIuMyAzLjEtMS40IDUuOC0zLjIgNi43LTUuOC00LTIuOC0xNy42LS40LTI3LjItNS42em02MC4xIDI0LjFjMTYuOCAyLjgtODAuNiA4Ni41LTgyLjEgNjcuOS0xLjUtNDguNyAzNi41LTc1LjUgODIuMS02Ny45ek01OC43IDM0MmMtMjMuNy0xOC44LTMxLjMtNzMuNyAxMi42LTk4LjMgMjYuNS03IDkgMTA3LjgtMTIuNiA5OC4zem05MSA5OC4yYy0xMy4zIDcuOS00NS44IDQuNy02OC44LTI3LjktMTUuNS0yNy40LTEzLjUtNTUuMi0yLjYtNjMuNCAxNi4zLTkuOCA0MS41IDMuNCA2MC45IDI1LjYgMTYuOSAyMCAyNC42IDU1LjMgMTAuNSA2NS43ek0xMjMuMyAzMjAuNWMtMjQuNS0xNS44LTI4LjktNTEuNi05LjktODBzNTQuMy0zOC42IDc4LjgtMjIuOCAyOC45IDUxLjYgOS45IDgwYy0xOS4xIDI4LjQtNTQuNCAzOC42LTc4LjggMjIuOHpNMjI1LjUgNDk2Yy0yOS40IDEuMi01OC4yLTIzLjctNTcuOC0zMi4zLS40LTEyLjcgMzUuOC0yMi42IDU5LjMtMjIgMjMuNy0xIDU1LjYgNy41IDU1LjcgMTguOSAuNSAxMS0yOC44IDM1LjktNTcuMiAzNS40em01OC45LTEyNC45Yy4yIDI5LjctMjYuMiA1My44LTU4LjggNTRzLTU5LjItMjMuOC01OS40LTUzLjRsMC0uNmMtLjItMjkuNyAyNi4yLTUzLjggNTguOC01NHM1OS4yIDIzLjggNTkuNCA1My40bDAgLjZ6bTgyLjIgNDIuN2MtMjUuMyAzNC42LTU5LjYgMzUuOS03Mi4zIDI2LjMtMTMuMy0xMi40LTMuMi01MC45IDE1LjEtNzIgMjAuOS0yMy4zIDQzLjMtMzguNSA1OC45LTI2LjYgMTAuNSAxMC4zIDE2LjcgNDkuMS0xLjcgNzIuM3ptMjIuOS03My4yYy0yMS41IDkuNC0zOS0xMDUuMy0xMi42LTk4LjMgNDMuOSAyNC43IDM2LjMgNzkuNiAxMi42IDk4LjN6XCJdXG59O1xudmFyIGZhQ3NzMyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjc3MzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTNjXCIsIFwiTTQ4MCAzMmwtNjQgMzY4LTIyMy4zIDgwLTE5Mi43LTgwIDE5LjYtOTQuOCA4MiAwLTggNDAuNiAxMTYuNCA0NC40IDEzNC4xLTQ0LjQgMTguOC05Ny4xLTMzMy40IDAgMTYtODIgMzMzLjcgMCAxMC41LTUyLjctMzMzLjQgMCAxNi4zLTgyIDQwNy40IDB6XCJdXG59O1xudmFyIGZhSHVic3BvdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdodWJzcG90JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmM2IyXCIsIFwiTTIzNS44IDIxMS42Yy0yNS4xIDIzLjctNDAuOCA1Ny4zLTQwLjggOTQuNiAwIDI5LjMgOS43IDU2LjMgMjYgNzhMMTcxLjUgNDM0Yy00LjQtMS42LTkuMS0yLjUtMTQtMi41LTEwLjggMC0yMC45IDQuMi0yOC41IDExLjhzLTExLjggMTcuOC0xMS44IDI4LjYgNC4yIDIwLjkgMTEuOCAyOC41IDE3LjggMTEuNiAyOC41IDExLjZjMTAuOCAwIDIwLjktMy45IDI4LjYtMTEuNiA3LjYtNy42IDExLjgtMTcuOCAxMS44LTI4LjUgMC00LjItLjYtOC4yLTEuOS0xMi4xbDUwLTUwLjJjMjIgMTYuOSA0OS40IDI2LjkgNzkuMyAyNi45IDcxLjkgMCAxMzAtNTguMyAxMzAtMTMwLjIgMC02NS4yLTQ3LjctMTE5LjItMTEwLjItMTI4LjdsMC02MS42YzE3LjUtNy40IDI4LjItMjMuOCAyOC4yLTQyLjkgMC0yNi4xLTIwLjktNDcuOS00Ny00Ny45UzI3OS42IDQ3IDI3OS42IDczLjFjMCAxOS4xIDEwLjcgMzUuNSAyOC4yIDQyLjlsMCA2MS4yYy0xNS4yIDIuMS0yOS42IDYuNy00Mi43IDEzLjYtMjcuNi0yMC45LTExNy41LTg1LjctMTY4LjktMTI0LjggMS4yLTQuNCAyLTkgMi0xMy44IDAtMjguOC0yMy41LTUyLjItNTIuNC01Mi4yLTI4LjggMC01Mi4yIDIzLjQtNTIuMiA1Mi4yIDAgMjguOSAyMy40IDUyLjMgNTIuMiA1Mi4zIDkuOCAwIDE4LjktMi45IDI2LjgtNy42TDIzNS44IDIxMS42em04OS41IDI1LjZhNjkgNjkgMCAxIDEgMCAxMzggNjkgNjkgMCAxIDEgMC0xMzh6XCJdXG59O1xudmFyIGZhQ21wbGlkID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NtcGxpZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTM2MFwiLCBcIk0yMjYuMSAzODguMmMwLS43LS4yLTEuNS0uNi0yLjFzLTEtMS4xLTEuNy0xLjRjLS41LS4yLTEuMS0uNC0xLjYtLjRsLTE0OS42IDBjLTMuMSAwLTYuMi0uOC04LjktMi4ycy01LjEtMy41LTYuOS02LjEtMi45LTUuNS0zLjMtOC42IDAtNi4yIDEuMS05LjFMODEuNiAyNTUuN2MyLTcuMiA2LjItMTMuNSAxMi0xOC4yczEyLjktNy40IDIwLjQtNy44bDE0OC42IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuNC0xIC4zLTItLjEtMi45cy0xLjItMS42LTIuMS0yYy0uNC0uMi0uOS0uMy0xLjQtLjMtLjEgMC0uMSAwLS4yIDBsLTE0OC41IDBjLTIyLjIgMS4yLTQzLjQgOS4yLTYwLjggMjNzLTMwIDMyLjctMzYuMiA1NC4xTDMuNSAzNTguOGMtMy4yIDguNy00LjIgMTgtMyAyNy4xczQuNiAxNy45IDkuOSAyNS41IDEyLjMgMTMuOCAyMC41IDE4IDE3LjMgNi41IDI2LjUgNi42YzEgMCAxLjkgMCAyLjktLjFsMTQ4LjYgMGMxLjUtLjEgMi45LS43IDQtMS42czItMi4yIDIuNC0zLjZsMTAuNy00MS4xYy4yLS41IC4zLS45IC4zLTEuNHptODAuNS0zMDdjLjItLjQgLjMtLjkgLjMtMS40IDAtLjUtLjEtMS0uMy0xLjVzLS41LS45LS44LTEuMi0uOC0uNi0xLjItLjgtMS0uMy0xLjUtLjNsLTQxLjIgMGMtMS41IC4xLTIuOSAuNi00IDEuNnMtMiAyLjItMi40IDMuNmwtMjEuMyA4MC45IDUxLjEgMCAyMS40LTgwLjl6bS0xMjYuMyAyODdsNTEuMSAwIDMyLTEyMi42LTUxLjEgMC0zMiAxMjIuNnpNNTExLjkgNzkuN2MwLTEtLjUtMS45LTEuMi0yLjZzLTEuNy0xLjEtMi42LTEuMWMtLjEgMC0uMSAwLS4yIDBsLTQxIDBjLTEuNSAuMS0yLjkgLjYtNC4xIDEuNXMtMiAyLjItMi41IDMuNkwzNjguOSA0MzAuNmMtLjIgLjQtLjMgLjktLjMgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjIgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNTExLjUgODEuMmMuMi0uNSAuMy0xIC4zLTEuNXpNMzI0LjYgMzg0LjVsLTQxIDBjLTEuNSAuMS0yLjkgLjctNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTEwLjcgNDEuMWMtLjIgLjQtLjMgLjktLjMgMS40IDAgLjUgLjEgMSAuMyAxLjVzLjUgLjkgLjggMS4yIC44IC42IDEuMiAuOCAxIC4zIDEuNSAuM2MuMSAwIC4yIDAgLjMgMGw0MC45IDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjgtNDEuMWMuMi0uNiAuMy0xLjIgLjMtMS44cy0uMy0xLjItLjYtMS43LS44LS45LTEuMy0xLjItMS4yLS40LTEuOC0uNGMtLjEgMC0uMiAwLS4zIDBsMCAwek02MzYgNzYuMWwtNDEgMGMtMS41IC4xLTIuOSAuNi00IDEuNXMtMiAyLjItMi40IDMuNkw0OTcuMSA0MzAuNmMtLjIgLjQtLjIgLjktLjIgMS4zIDAgMSAuNCAyIDEuMSAyLjdzMS43IDEuMSAyLjcgMS4xbDQxLjEgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZMNjM5LjcgODEuMmMuMi0uNSAuMy0xIC4zLTEuNS0uMS0xLS41LTEuOS0xLjItMi41cy0xLjYtMS0yLjYtMWMtLjEgMC0uMSAwLS4yIDBsMC0uMXpNMzcxLjYgMjI1LjJsMTAuOC00MS4xYy4yLS40IC4yLS45IC4yLTEuNCAwLTEtLjQtMi0xLjEtMi43cy0xLjctMS4xLTIuNy0xLjFsLTQxLjMgMGMtMS41IC4xLTIuOSAuNy00IDEuNnMtMiAyLjItMi40IDMuNmwtMTAuOCA0MS4xYy0uMiAuNS0uMyAxLS4zIDEuNWwwIC4yYy4xIDEgLjUgMS44IDEuMiAyLjVzMS42IDEgMi42IDFjLjEgMCAuMiAwIC4zIDBsNDEuMSAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNnpcIl1cbn07XG52YXIgZmFEeWFsb2cgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZHlhbG9nJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMzk5XCIsIFwiTTE2IDMybDAgMTE5LjIgNjQgMCAwLTU1LjIgMTA3LjIgMEMzMDAuNiA5NiAzNjggMTc2LjIgMzY4IDI1NS45IDM2OCAzMzIgMzA5LjQgNDE2IDE4Ny4yIDQxNmwtMTcxLjIgMCAwIDY0IDE3MS4yIDBDMzQ3LjkgNDgwIDQzMiAzNjcuMyA0MzIgMjU1LjkgNDMyIDE5Ny4yIDQwOS45IDE0Mi41IDM2OS43IDEwMS42IDMyNC45IDU2IDI2MS43IDMyIDE4Ny4yIDMyTDE2IDMyelwiXVxufTtcbnZhciBmYUVsZW1lbnRvciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdlbGVtZW50b3InLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0MzBcIiwgXCJNLjUgMjU2YzAgMTQxIDExMy42IDI1NSAyNTQuNiAyNTUgMTQyIDAgMjU2LTExNCAyNTYtMjU1IDAtMTQwLTExNC0yNTMuOS0yNTYtMjUzLjktMTQxIDAtMjU0LjYgMTEzLjktMjU0LjYgMjUzLjl6TTE5Mi4xIDE1MGwwIDIxMy00MyAwIDAtMjEzIDQzIDB6bTQyIDBsMTI4IDAgMCA0My0xMjggMCAwLTQzem0xMjggODVsMCA0My0xMjggMCAwLTQzIDEyOCAwem0tMTI4IDg1bDEyOCAwIDAgNDMtMTI4IDAgMC00M3pcIl1cbn07XG52YXIgZmFGaXJzdE9yZGVyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ZpcnN0LW9yZGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMmIwXCIsIFwiTTEzLjMgMjI5LjJjLjEtLjEgLjItLjMgLjMtLjQgMCAuMSAwIC4zLS4xIC40bC0uMiAwek0yMjQuNCA5Ni42Yy03LjEgMC0xNC42IC42LTIxLjQgMS43bDMuNyA2Ny40LTIyLTY0Yy0xNC4zIDMuNy0yNy43IDkuNC00MCAxNi42bDI5LjQgNjEuNC00NS4xLTUwLjljLTExLjQgOC45LTIxLjcgMTkuMS0zMC42IDMwLjlsNTAuNiA0NS40LTYxLjEtMjkuN2MtNy4xIDEyLjMtMTIuOSAyNS43LTE2LjYgNDBsNjQuMyAyMi42LTY4LTRjLS45IDcuMS0xLjQgMTQuNi0xLjQgMjJzLjYgMTQuNiAxLjQgMjEuN2w2Ny43LTQtNjQgMjIuNmMzLjcgMTQuMyA5LjQgMjcuNyAxNi42IDQwLjNMMTQ5IDMwNi45IDk4LjEgMzUyYzguOSAxMS43IDE5LjEgMjIuMyAzMC45IDMwLjlsNDQuOS01MC45LTI5LjUgNjEuNGMxMi4zIDcuNCAyNS43IDEzLjEgNDAgMTYuOWwyMi4zLTY0LjYtNCA2OGM3LjEgMS4xIDE0LjYgMS43IDIxLjcgMS43IDcuNCAwIDE0LjYtLjYgMjEuNy0xLjdsLTQtNjguNiAyMi42IDY1LjFjMTQuMy00IDI3LjctOS40IDQwLTE2LjlsLTI5LjQtNjEuMyA0NC45IDUwLjljMTEuNy04LjkgMjItMTkuMSAzMC42LTMwLjlsLTUwLjYtNDUuMSA2MS4xIDI5LjRjNy4xLTEyLjMgMTIuOS0yNS43IDE2LjYtNDAuM2wtNjQtMjIuMyA2Ny40IDRjMS4xLTcuMSAxLjQtMTQuMyAxLjQtMjEuN3MtLjMtMTQuOS0xLjQtMjJsLTY3LjcgNCA2NC0yMi4zYy0zLjctMTQuMy05LjEtMjgtMTYuNi00MC4zbC02MC45IDI5LjcgNTAuNi00NS40Yy04LjktMTEuNy0xOS4xLTIyLTMwLjYtMzAuOWwtNDUuMSA1MC45IDI5LjQtNjEuMWMtMTIuMy03LjQtMjUuNy0xMy4xLTQwLTE2LjlsLTIyLjMgNjQuMyA0LTY3LjdjLTcuMS0xLjItMTQuMy0xLjctMjEuNy0xLjd6TTQ0My44IDEyOEw0NDMuOCAzODQgMjI0LjQgNTEyIDUgMzg0IDUgMTI4IDIyNC40IDAgNDQzLjggMTI4em0tMTcuMSAxMC4zbC0yMDIuMy0xMTcuNC0yMDIuMyAxMTcuNCAwIDIzNS4xIDIwMi4zIDExNy43IDIwMi4zLTExNy43IDAtMjM1LjF6TTIyNC40IDM3LjFsMTg3LjcgMTA5LjQgMCAyMTguOS0xODcuNyAxMDkuNS0xODcuNy0xMDkuNSAwLTIxOC44IDE4Ny43LTEwOS41em0wIDUwLjljLTkyLjMgMC0xNjYuOSA3NS4xLTE2Ni45IDE2OCAwIDkyLjYgNzQuNiAxNjcuNyAxNjYuOSAxNjcuNyA5MiAwIDE2Ni45LTc1LjEgMTY2LjktMTY3LjcgMC05Mi45LTc0LjktMTY4LTE2Ni45LTE2OHpcIl1cbn07XG52YXIgZmFEcmliYmJsZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdkcmliYmJsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE3ZFwiLCBcIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQyMCAxMjIuNGMyOS41IDM2IDQ3LjQgODIgNDcuOCAxMzItNy0xLjUtNzctMTUuNy0xNDcuNS02LjgtNS44LTE0LTExLjItMjYuNC0xOC42LTQxLjYgNzguMy0zMiAxMTMuOC03Ny41IDExOC4zLTgzLjV6TTM5Ni40IDk3LjljLTMuOCA1LjQtMzUuNyA0OC4zLTExMSA3Ni41LTM0LjctNjMuOC03My4yLTExNi4yLTc5LTEyNCA2Ny4yLTE2LjIgMTM4IDEuMyAxOTAuMSA0Ny41ek0xNjUuOSA2NC42YzUuNiA3LjcgNDMuNCA2MC4xIDc4LjUgMTIyLjUtOTkuMSAyNi4zLTE4Ni40IDI1LjktMTk1LjggMjUuOCAxMy43LTY1LjcgNTgtMTIwLjQgMTE3LjMtMTQ4LjN6TTQ0LjIgMjU2LjNjMC0yLjIgMC00LjMgLjEtNi41IDkuMyAuMiAxMTEuOSAxLjUgMjE3LjctMzAuMSA2LjEgMTEuOSAxMS45IDIzLjkgMTcuMiAzNS45LTc2LjYgMjEuNi0xNDYuMiA4My41LTE4MC41IDE0Mi4zLTMzLjgtMzcuNi01NC41LTg3LjItNTQuNS0xNDEuNnpNMTI2IDQyMy40YzIyLjEtNDUuMiA4Mi4yLTEwMy42IDE2Ny42LTEzMi44IDI5LjcgNzcuMyA0MiAxNDIuMSA0NS4yIDE2MC42LTY4LjEgMjktMTUwIDIxLjEtMjEyLjgtMjcuOXptMjQ4LjQgOC41Yy0yLjItMTIuOS0xMy40LTc0LjktNDEuMi0xNTEgNjYuNC0xMC42IDEyNC43IDYuOCAxMzEuOSA5LjEtOS40IDU4LjktNDMuMyAxMDkuOC05MC44IDE0MnpcIl1cbn07XG52YXIgZmFMaW5rZWRpbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdsaW5rZWRpbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA4Y1wiLCBcIk00MTYgMzJMMzEuOSAzMkMxNC4zIDMyIDAgNDYuNSAwIDY0LjNMMCA0NDcuN0MwIDQ2NS41IDE0LjMgNDgwIDMxLjkgNDgwTDQxNiA0ODBjMTcuNiAwIDMyLTE0LjUgMzItMzIuM2wwLTM4My40QzQ0OCA0Ni41IDQzMy42IDMyIDQxNiAzMnpNMTM1LjQgNDE2bC02Ni40IDAgMC0yMTMuOCA2Ni41IDAgMCAyMTMuOC0uMSAwek0xMDIuMiA5NmEzOC41IDM4LjUgMCAxIDEgMCA3NyAzOC41IDM4LjUgMCAxIDEgMC03N3pNMzg0LjMgNDE2bC02Ni40IDAgMC0xMDRjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOWwwIDEwNS44LTY2LjQgMCAwLTIxMy44IDYzLjcgMCAwIDI5LjIgLjkgMGM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOWwwIDExNy4yelwiXVxufTtcbnZhciBmYUNjUGF5cGFsID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NjLXBheXBhbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjFmNFwiLCBcIk0xODYuMyAyNTguMmMwIDEyLjItOS43IDIxLjUtMjIgMjEuNS05LjIgMC0xNi01LjItMTYtMTUgMC0xMi4yIDkuNS0yMiAyMS43LTIyIDkuMyAwIDE2LjMgNS43IDE2LjMgMTUuNXpNODAuNSAyMDkuN2wtNC43IDBjLTEuNSAwLTMgMS0zLjIgMi43bC00LjMgMjYuNyA4LjItLjNjMTEgMCAxOS41LTEuNSAyMS41LTE0LjIgMi4zLTEzLjQtNi4yLTE0LjktMTcuNS0xNC45em0yODQgMGwtNC41IDBjLTEuOCAwLTMgMS0zLjIgMi43bC00LjIgMjYuNyA4LS4zYzEzIDAgMjItMyAyMi0xOC0uMS0xMC42LTkuNi0xMS4xLTE4LjEtMTEuMXpNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTI4LjMgMjE1LjRjMC0yMS0xNi4yLTI4LTM0LjctMjhsLTQwIDBjLTIuNSAwLTUgMi01LjIgNC43TDMyIDI5NC4yYy0uMyAyIDEuMiA0IDMuMiA0bDE5IDBjMi43IDAgNS4yLTIuOSA1LjUtNS43bDQuNS0yNi42YzEtNy4yIDEzLjItNC43IDE4LTQuNyAyOC42IDAgNDYuMS0xNyA0Ni4xLTQ1Ljh6bTg0LjIgOC44bC0xOSAwYy0zLjggMC00IDUuNS00LjIgOC4yLTUuOC04LjUtMTQuMi0xMC0yMy43LTEwLTI0LjUgMC00My4yIDIxLjUtNDMuMiA0NS4yIDAgMTkuNSAxMi4yIDMyLjIgMzEuNyAzMi4yIDkgMCAyMC4yLTQuOSAyNi41LTExLjktLjUgMS41LTEgNC43LTEgNi4yIDAgMi4zIDEgNCAzLjIgNGwxNy4yIDBjMi43IDAgNS0yLjkgNS41LTUuN2wxMC4yLTY0LjNjLjMtMS45LTEuMi0zLjktMy4yLTMuOXpNMjUzIDMyMi4xbDYzLjctOTIuNmMuNS0uNSAuNS0xIC41LTEuNyAwLTEuNy0xLjUtMy41LTMuMi0zLjVsLTE5LjIgMGMtMS43IDAtMy41IDEtNC41IDIuNWwtMjYuNSAzOS0xMS0zNy41Yy0uOC0yLjItMy00LTUuNS00bC0xOC43IDBjLTEuNyAwLTMuMiAxLjgtMy4yIDMuNSAwIDEuMiAxOS41IDU2LjggMjEuMiA2Mi4xLTIuNyAzLjgtMjAuNSAyOC42LTIwLjUgMzEuNiAwIDEuOCAxLjUgMy4yIDMuMiAzLjJsMTkuMiAwYzEuOC0uMSAzLjUtMS4xIDQuNS0yLjZ6TTQxMi4zIDIxNS40YzAtMjEtMTYuMi0yOC0zNC43LTI4bC0zOS43IDBjLTIuNyAwLTUuMiAyLTUuNSA0LjdsLTE2LjIgMTAyYy0uMiAyIDEuMyA0IDMuMiA0bDIwLjUgMGMyIDAgMy41LTEuNSA0LTMuMmw0LjUtMjljMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjQgMCA0NS45LTE3IDQ1LjktNDUuOHptODQuMiA4LjhsLTE5IDBjLTMuOCAwLTQgNS41LTQuMyA4LjItNS41LTguNS0xNC0xMC0yMy43LTEwLTI0LjUgMC00My4yIDIxLjUtNDMuMiA0NS4yIDAgMTkuNSAxMi4yIDMyLjIgMzEuNyAzMi4yIDkuMyAwIDIwLjUtNC45IDI2LjUtMTEuOS0uMyAxLjUtMSA0LjctMSA2LjIgMCAyLjMgMSA0IDMuMiA0bDE3LjMgMGMyLjcgMCA1LTIuOSA1LjUtNS43bDEwLjItNjQuM2MuMy0xLjktMS4yLTMuOS0zLjItMy45ek01NDQgMTkwLjljMC0yLTEuNS0zLjUtMy4yLTMuNWwtMTguNSAwYy0xLjUgMC0zIDEuMi0zLjIgMi43bC0xNi4yIDEwNC0uMyAuNWMwIDEuOCAxLjUgMy41IDMuNSAzLjVsMTYuNSAwYzIuNSAwIDUtMi45IDUuMi01LjdsMTYuMi0xMDEuMiAwLS4zem0tOTAgNTEuOGMtMTIuMiAwLTIxLjcgOS43LTIxLjcgMjIgMCA5LjcgNyAxNSAxNi4yIDE1IDEyIDAgMjEuNy05LjIgMjEuNy0yMS41IC4xLTkuOC02LjktMTUuNS0xNi4yLTE1LjV6XCJdXG59O1xudmFyIGZhRGhsID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2RobCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjc5MFwiLCBcIk0yMzggMzAxLjJsNTguNyAwIDIyLjMtMzAuMi01OC43IDAtMjIuMyAzMC4yek0wIDI4Mi45bDAgNi40IDgxLjggMCA0LjctNi40LTg2LjUgMHpNMTcyLjkgMjcxYy04LjcgMC02LTMuNi00LjYtNS41IDIuOC0zLjggNy42LTEwLjQgMTAuNC0xNC4xczIuOC01LjktMi44LTUuOWwtNTEgMC00MS4xIDU1LjggMTAwLjEgMGMzMy4xIDAgNTEuNS0yMi41IDU3LjItMzAuM2wtNjguMiAwem0zMTcuNS02LjlsMzkuMy01My40LTYyLjIgMC0zOS4zIDUzLjQgNjIuMiAwek05NS4zIDI3MWwtOTUuMyAwIDAgNi40IDkwLjYgMCA0LjctNi40em0xMTEtMjYuNmMtMi44IDMuOC03LjUgMTAuNC0xMC4zIDE0LjItMS40IDItNC4xIDUuNSA0LjYgNS41bDQ1LjYgMHM3LjMtMTAgMTMuNS0xOC40YzguNC0xMS40IC43LTM1LTI5LjItMzVsLTExNy45IDAtMjAuNCAyNy44IDExMS40IDBjNS42IDAgNS41IDIuMiAyLjcgNS45ek0wIDMwMS4ybDczLjEgMCA0LjctNi40LTc3LjggMCAwIDYuNHptMzIzIDBsNTguNyAwIDIyLjMtMzAuMi01OC43IDBjLS4xIDAtMjIuMyAzMC4yLTIyLjMgMzAuMnptMjIyIC4xbDk1IDAgMC02LjQtOTAuMyAwLTQuNyA2LjR6TTU2Ny4zIDI3MWwtNC43IDYuNCA3Ny40IDAgMC02LjQtNzIuNyAwem0tMTMuNSAxOC4zbDg2LjIgMCAwLTYuNC04MS41IDAtNC43IDYuNHpNMzg5LjYgMjEwLjdsLTIyLjUgMzAuNi0yNi4yIDAgMjIuNS0zMC42LTU4LjcgMC0zOS4zIDUzLjQgMTQzLjYgMCAzOS4zLTUzLjQtNTguNyAwek00MjMuMSAyNzFzLTQuMyA1LjktNi40IDguN2MtNy40IDEwLS45IDIxLjYgMjMuMiAyMS42bDk0LjMgMCAyMi4zLTMwLjMtMTMzLjQgMHpcIl1cbn07XG52YXIgZmFUZXggPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndGV4JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlN2ZmXCIsIFwiTTYyMC44IDk1LjRjLTMwLjggLjQtNDIuMSAxNi42LTQ3LjcgMjQuNWwtLjEgLjEtNTUuNyA4MC41IDgyLjggMTIxLjFjNy41IDEwLjYgMTEuMyAxMi41IDM1LjQgMTIuNWwwIDkuMWMtOS4xLS43LTI4LS43LTM3LjctLjctMTIuNCAwLTMwLjggMC00Mi45IC43bDAtOS4xYzEzLjItLjggMTYuNi03LjMgMTYuNi0xMC4yIDAtMS4xIDAtMi4zLTMtNi40bC02NS41LTk2LjMtNjAuMiA4Ny45Yy0xLjkgMi43LTMuOCA1LjQtMy44IDEwLjIgMCA2LjEgMy40IDEzLjYgMTUgMTQuN2wwIDkuMWMtOS40LS43LTI3LjEtLjctMzcuMi0uN2wtMi44IDAtMTEuNyA4Mi42LTE5NS45IDAgMC05LjFjMjYuNyAwIDMwLjkgMCAzMC45LTE2LjlsMC0yMDMuMmMwLTE2LjktNC4zLTE2LjktMzAuOS0xNi45bDAtMTAuMyAxOS44IDBjLTQuOC02MS4xLTEwLjgtNzEuNy02OC03MS44bC0yMC43IDBjLTYuOCAxLjUtNi44IDYuMS02LjggMTQuNGwwIDIwNWMwIDEzLjYgMS4xIDE3LjggMzIuNCAxNy44bDEwLjUgMCAwIDkuMS0uNCAwYy0xNy45LS4zLTM2LjctLjctNTQuOS0uN3MtMzYuOSAuMy01NC44IC43bC0uNiAwIDAtOS4xIDEwLjcgMGMzMS43IDAgMzIuOC00LjEgMzIuOC0xNy44bDAtMjA1YzAtOC43IDAtMTMuMi03LjItMTQuM2wtMjAuOCAwYy01OC40IDAtNjMuNyAxMC45LTY4LjYgNzMuM2wtNi44IDAgNi4zLTgzLjMgMjE3LjUgMCA2LjEgODEuOCAxNjQuMSAwIDkgODMuMy02LjggMGMtNS4zLTQ5LjgtMTIuMS03My03MC4zLTczbC01MS41IDBjLTE1IDAtMTUuOCAxLjktMTUuOCAxNC42bDAgOTMuMyAzNS41IDBjMzUuNSAwIDM4LjktMTIuOCAzOC45LTQ0bDYgMCAwIDk3LjktNiAwYzAtMzEuOC0zLjQtNDQuOC0zOC45LTQ0LjhsLTM1LjUgMCAwIDEwNS4yYzAgMTMgLjcgMTQuOCAxNS44IDE0LjhsNTIuMiAwYzYxLjEgMCA2OS45LTI1LjggNzcuNC03My42LTcuNyAwLTE2LjMgLjItMjIuMiAuN2wwLTkuMWM3LjIgMCAzMS43LS40IDQ3LjgtMjMuOGw2NS41LTk1LjctNzIuNy0xMDYuN2MtOC4zLTExLjctMTUuMS0xMi41LTM1LjgtMTIuNWwwLTkuMWM5LjEgLjcgMjcuOSAuNyAzNy43IC43IDEyLjQgMCAzMC44IDAgNDIuOS0uN2wwIDkuMWMtMTIuNSAuNC0xNi42IDYuOC0xNi42IDEwLjIgMCAxLjEgLjQgMi4zIDMgNi40bDU1LjcgODEuNiA0OS43LTcyLjFjMi43LTMuNyA0LjUtNi44IDQuNS0xMS4zIDAtNi4xLTMtMTMuNi0xNS0xNC44bDAtOS4xYzkuNCAuNyAyNC44IC43IDM3LjIgLjcgOSAwIDIzLjMgMCAzMi0uN2wwIDkuMXpcIl1cbn07XG52YXIgZmFTaG9waWZ5ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3Nob3BpZnknLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwNTdcIiwgXCJNMzg4LjUgMTA0LjFjLS4yLTEuMS0uNy0yLjEtMS41LTIuOHMtMS44LTEuMi0yLjktMS4yYy0yIDAtMzcuMi0uOC0zNy4yLS44cy0yMS42LTIwLjgtMjkuNi0yOC44bDAgNDMyLjcgMTI1LjctMzEuMnMtNTQtMzY1LjUtNTQuNC0zNjcuOXpNMjg4LjkgNzAuNWMtMS45LTYuMS00LjMtMTEuOS03LjItMTcuNi0xMC40LTIwLTI2LTMwLjktNDQuNC0zMC45LTEuMyAwLTIuNyAuMS00IC40LS40LS44LTEuMi0xLjItMS42LTItOC04LjgtMTguNC0xMi44LTMwLjgtMTIuNC0yNCAuOC00OCAxOC02Ny4yIDQ4LjgtMTMuNiAyMS42LTI0IDQ4LjgtMjYuOCA3MC4xLTI3LjYgOC40LTQ2LjggMTQuNC00Ny4yIDE0LjgtMTQgNC40LTE0LjQgNC44LTE2IDE4LTEuMiAxMC0zOCAyOTEuOC0zOCAyOTEuOGwzMDIuNiA1Mi41IDAtNDM4LjNjLTEuNSAuMS0yLjkgLjItNC40IC40IDAgMC01LjYgMS42LTE0LjggNC40ek0yMzMuNiA4Ny43Yy0xNiA0LjgtMzMuNiAxMC40LTUwLjggMTUuNiA0LjgtMTguOCAxNC40LTM3LjYgMjUuNi01MCA0LjQtNC40IDEwLjQtOS42IDE3LjItMTIuOCA2LjggMTQuNCA4LjQgMzQgOCA0Ny4yek0yMDAuOCAyNC40YzUtLjIgMTAgMS4xIDE0LjQgMy42LTYuNCAzLjItMTIuOCA4LjQtMTguOCAxNC40LTE1LjIgMTYuNC0yNi44IDQyLTMxLjYgNjYuNS0xNC40IDQuNC0yOC44IDguOC00MiAxMi44IDguOC0zOC40IDQxLjItOTYuNCA3OC05Ny4yek0xNTQuNCAyNDQuNmMxLjYgMjUuNiA2OS4yIDMxLjIgNzMuMiA5MS43IDIuOCA0Ny42LTI1LjIgODAuMS02NS42IDgyLjUtNDguOCAzLjItNzUuNi0yNS42LTc1LjYtMjUuNmwxMC40LTQ0czI2LjggMjAuNCA0OC40IDE4LjhjMTQtLjggMTkuMi0xMi40IDE4LjgtMjAuNC0yLTMzLjYtNTcuMi0zMS42LTYwLjgtODYuOS0zLjItNDYuNCAyNy4yLTkzLjMgOTQuNS05Ny43IDI2LTEuNiAzOS4yIDQuOCAzOS4yIDQuOGwtMTUuMiA1Ny42cy0xNy4yLTgtMzcuNi02LjRjLTI5LjYgMi0zMCAyMC44LTI5LjYgMjUuNnpNMjQ5LjYgODIuOWMwLTEyLTEuNi0yOS4yLTcuMi00My42IDE4LjQgMy42IDI3LjIgMjQgMzEuMiAzNi40LTcuMiAyLTE1LjIgNC40LTI0IDcuMnpcIl1cbn07XG52YXIgZmFTcXVhcmVSZWRkaXQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3F1YXJlLXJlZGRpdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wicmVkZGl0LXNxdWFyZVwiXSwgXCJmMWEyXCIsIFwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnpNMzA1LjkgMTY2LjRjMjAuNiAwIDM3LjMtMTYuNyAzNy4zLTM3LjNzLTE2LjctMzcuMy0zNy4zLTM3LjNjLTE4IDAtMzMuMSAxMi44LTM2LjYgMjkuOC0zMC4yIDMuMi01My44IDI4LjgtNTMuOCA1OS45bDAgLjJjLTMyLjggMS40LTYyLjggMTAuNy04Ni42IDI1LjUtOC44LTYuOC0xOS45LTEwLjktMzItMTAuOS0yOC45IDAtNTIuMyAyMy40LTUyLjMgNTIuMyAwIDIxIDEyLjMgMzkgMzAuMSA0Ny40IDEuNyA2MC43IDY3LjkgMTA5LjYgMTQ5LjMgMTA5LjZzMTQ3LjYtNDguOSAxNDkuMy0xMDkuN2MxNy43LTguNCAyOS45LTI2LjQgMjkuOS00Ny4zIDAtMjguOS0yMy40LTUyLjMtNTIuMy01Mi4zLTEyIDAtMjMgNC0zMS45IDEwLjgtMjQtMTQuOS01NC4zLTI0LjItODcuNS0yNS40bDAtLjFjMC0yMi4yIDE2LjUtNDAuNyAzNy45LTQzLjcgMy45IDE2LjUgMTguNyAyOC43IDM2LjMgMjguN2wuMi0uMnpNMTU1IDI0OC4xYzE0LjYgMCAyNS44IDE1LjQgMjUgMzQuNHMtMTEuOCAyNS45LTI2LjUgMjUuOS0yNy41LTcuNy0yNi42LTI2LjcgMTMuNS0zMy41IDI4LjEtMzMuNWwwLS4xem0xNjYuNCAzMy41Yy45IDE5LTEyIDI2LjctMjYuNiAyNi43cy0yNS42LTYuOS0yNi41LTI1LjkgMTAuMy0zNC40IDI1LTM0LjQgMjcuMyAxNC42IDI4LjEgMzMuNWwwIC4xem0tNDIuMSA0OS42Yy05IDIxLjUtMzAuMyAzNi43LTU1LjEgMzYuN3MtNDYuMS0xNS4xLTU1LjEtMzYuN2MtMS4xLTIuNiAuNy01LjQgMy40LTUuNyAxNi4xLTEuNiAzMy41LTIuNSA1MS43LTIuNXMzNS42IC45IDUxLjcgMi41YzIuNyAuMyA0LjUgMy4xIDMuNCA1Ljd6XCJdXG59O1xudmFyIGZhUmVkZGl0U3F1YXJlID0gZmFTcXVhcmVSZWRkaXQ7XG52YXIgZmFDcmVhdGl2ZUNvbW1vbnNOYyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjcmVhdGl2ZS1jb21tb25zLW5jJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGU4XCIsIFwiTTI1NS42IDhDMzk1LjQgOCA1MDQgMTE1LjkgNTA0IDI1NiA1MDQgNDAzLjIgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuMSA1MDQgOCAzOTMuMiA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHpNNjMuOCAxODkuMWMtNy40IDIwLjQtMTEuMSA0Mi43LTExLjEgNjYuOSAwIDExMC45IDkyLjEgMjAyLjQgMjAzLjcgMjAyLjQgMTIyLjQgMCAxNzcuMi0xMDEuOCAxNzguNS0xMDQuMWwtOTMuNC00MS42Yy03LjcgMzcuMS00MS4yIDUzLTY4LjIgNTUuNGwwIDM4LjEtMjguOCAwIDAtMzguMmMtMjcuNS0uMy01Mi42LTEwLjItNzUuMy0yOS43bDM0LjEtMzQuNWMzMS43IDI5LjQgODYuNCAzMS44IDg2LjQtMi4yIDAtNi4yLTIuMi0xMS4yLTYuNi0xNS4xLTE0LjItNi0xLjgtLjEtMjE5LjMtOTcuNHpNMjU2LjQgNTIuM0MyMTggNTIuMyAxNDQgNjEgODUuOSAxNDUuM2w5NC44IDQyLjVjMTAtMzEuMyA0MC40LTQyLjkgNjMuOC00NC4zbDAtMzguMSAyOC44IDAgMCAzOC4xYzIyLjcgMS4yIDQzLjQgOC45IDYyIDIzTDMwMyAxOTkuN2MtNDIuNy0yOS45LTgzLjUtOC03MCAxMS4xIDUzLjQgMjQuMSA0My44IDE5LjggOTMgNDEuNmwxMjcuMSA1Ni43YzQuMS0xNy40IDYuMi0zNS4xIDYuMi01My4xIDAtNTctMTkuOC0xMDUtNTkuMy0xNDMuOS0zOS4zLTM5LjktODcuMi01OS44LTE0My42LTU5Ljh6XCJdXG59O1xudmFyIGZhR2FsYWN0aWNSZXB1YmxpYyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdnYWxhY3RpYy1yZXB1YmxpYycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjUwY1wiLCBcIk0yNTYgOGEyNDggMjQ4IDAgMSAxIDAgNDk2IDI0OCAyNDggMCAxIDEgMC00OTZ6bTAgMTYuNWEyMzEuNSAyMzEuNSAwIDEgMCAwIDQ2Mi45IDIzMS41IDIzMS41IDAgMSAwIDAtNDYyLjl6bTI3LjYgMjEuOGwwIDI0LjZjMzAuMyA0LjUgNTkgMTYuMyA4My42IDM0LjVsMTcuNC0xNy40Yy0yOC43LTIyLjEtNjMuMy0zNi45LTEwMS00MS44em0tNTUuNCAuMWMtMzcuNiA0LjktNzIuMiAxOS44LTEwMC45IDQxLjlsMTcuMyAxNy40IC4xIDBjMjQuMS0xNy44IDUyLjYtMzAuMSA4My41LTM0LjdsMC0yNC41em0xMi4yIDUwLjJsMCA4Mi45Yy0xMCAyLTE5LjQgNS45LTI3LjcgMTEuNGwtNTguNi01OC42LTIxLjkgMjEuOSA1OC43IDU4LjdjLTUuNSA4LjItOS40IDE3LjYtMTEuNSAyNy42bC04Mi45IDAgMCAzMSA4Mi45IDBjMiAxMCA2IDE5LjMgMTEuNSAyNy41bC01OC43IDU4LjcgMjEuOSAyMS45IDU4LjYtNTguNmM4LjQgNS42IDE3LjggOS41IDI3LjcgMTEuNWwwIDgyLjkgMzEgMCAwLTgyLjljMTAtMiAxOS40LTYuMSAyNy42LTExLjVsNTguNyA1OC43IDIxLjktMjEuOS01OC43LTU4LjdjNS41LTguMiA5LjUtMTcuNSAxMS41LTI3LjVsODIuOSAwIDAtMzEtODIuOSAwYy0yLTEwLTYtMTkuNC0xMS41LTI3LjZsNTguNy01OC43LTIxLjktMjEuOS01OC43IDU4LjdjLTguMi01LjUtMTcuNi05LjUtMjcuNi0xMS41bDAtODIuOS0zMSAwem0xODMuMiAzMC43bC0xNy40IDE3LjRjMTguMyAyNC42IDMwLjIgNTMuNCAzNC43IDgzLjdsMjQuNiAwYy01LTM3LjctMTkuOC03Mi4zLTQxLjktMTAxem0tMzM1LjYgLjFjLTIyLjEgMjguNy0zNi45IDYzLjMtNDEuOCAxMDAuOWwyNC42IDBjNC42LTMxIDE2LjgtNTkuNCAzNC42LTgzLjVMODguMiAxMjcuNHpNNDYuMyAyODMuN2M0LjkgMzcuNiAxOS43IDcyLjIgNDEuOCAxMDAuOWwxNy40LTE3LjRDODcuNyAzNDMuMSA3NS42IDMxNC42IDcxIDI4My43bC0yNC42IDAgMCAwem0zOTQuNyAwYy00LjYgMzEtMTYuOCA1OS41LTM0LjcgODMuNmwxNy40IDE3LjRjMjIuMS0yOC43IDM3LTYzLjMgNDEuOS0xMDFsLTI0LjYgMHpNMTQ0LjcgNDA2LjRsLTE3LjQgMTcuNGMyOC43IDIyLjEgNjMuMyAzNyAxMDEgNDEuOWwwLTI0LjZjLTMxLTQuNi01OS41LTE2LjgtODMuNi0zNC42em0yMjIuNSAwYy0yNC4xIDE3LjgtNTIuNiAzMC4xLTgzLjYgMzQuN2wwIDI0LjZjMzcuNy00LjkgNzIuMi0xOS44IDEwMS00MS44bC0xNy4zLTE3LjQtLjEgMHpcIl1cbn07XG52YXIgZmFGYWNlYm9vayA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdmYWNlYm9vaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMDAwXSwgXCJmMDlhXCIsIFwiTTUxMiAyNTZDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NkMwIDM3NiA4Mi43IDQ3Ni44IDE5NC4yIDUwNC41bDAtMTcwLjMtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE3NS45QzQxMy44IDQ5NC44IDUxMiAzODYuOSA1MTIgMjU2elwiXVxufTtcbnZhciBmYUdpdGxhYiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdnaXRsYWInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyOTZcIiwgXCJNNTA0IDIwNC42bC0uNy0xLjgtNjkuNy0xODEuOGMtMS40LTMuNi0zLjktNi42LTcuMi04LjYtMi40LTEuNi01LjEtMi41LTgtMi44cy01LjcgLjEtOC40IDEuMS01LjEgMi43LTcuMSA0LjhjLTEuOSAyLjEtMy4zIDQuNy00LjEgNy40bC00NyAxNDQtMTkwLjUgMC00Ny4xLTE0NGMtLjgtMi44LTIuMi01LjMtNC4xLTcuNC0yLTIuMS00LjQtMy43LTcuMS00LjgtMi42LTEtNS41LTEuNC04LjQtMS4xcy01LjYgMS4yLTggMi44Yy0zLjIgMi01LjggNS4xLTcuMiA4LjZMOS44IDIwMi44IDkgMjA0LjZjLTEwIDI2LjItMTEuMyA1NS0zLjUgODIgNy43IDI2LjkgMjQgNTAuNyA0Ni40IDY3LjZsLjMgLjIgLjYgLjQgMTA2IDc5LjVjMzguNSAyOS4xIDY2LjcgNTAuMyA4NC42IDYzLjkgMy43IDEuOSA4LjMgNC4zIDEzIDQuM3M5LjMtMi40IDEzLTQuM2MxNy45LTEzLjUgNDYuMS0zNC45IDg0LjYtNjMuOWwxMDYuNy03OS45IC4zLS4zYzIyLjQtMTYuOSAzOC43LTQwLjYgNDUuNi02Ny41IDguNi0yNyA3LjQtNTUuOC0yLjYtODJ6XCJdXG59O1xudmFyIGZhUXEgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncXEnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxZDZcIiwgXCJNNDM0LjEgNDIwLjRjLTExLjUgMS40LTQ0LjktNTIuNy00NC45LTUyLjcgMCAzMS4zLTE2LjEgNzIuMi01MSAxMDEuOCAxNi44IDUuMiA1NC44IDE5LjIgNDUuOCAzNC40LTcuMyAxMi4zLTEyNS41IDcuOS0xNTkuNiA0LTM0LjEgMy44LTE1Mi4zIDguMy0xNTkuNi00LTktMTUuMiAyOC45LTI5LjIgNDUuOC0zNC40LTM0LjktMjkuNS01MS4xLTcwLjQtNTEuMS0xMDEuOCAwIDAtMzMuMyA1NC4xLTQ0LjkgNTIuNy01LjQtLjYtMTIuNC0yOS42IDkuMy05OS43IDEwLjMtMzMgMjItNjAuNSA0MC4xLTEwNS44LTMuMS0xMTYuOSA0NS4yLTIxNSAxNjAuMy0yMTUgMTEzLjcgMCAxNjMuMiA5Ni4xIDE2MC4zIDIxNSAxOC4xIDQ1LjIgMjkuOSA3Mi45IDQwLjEgMTA1LjggMjEuOCA3MC4xIDE0LjcgOTkuMSA5LjMgOTkuN3pcIl1cbn07XG52YXIgZmFTdHJpcGUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3RyaXBlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNDI5XCIsIFwiTTE2NSAxNDQuN2wtNDMuMyA5LjItLjIgMTQyLjRjMCAyNi4zIDE5LjggNDMuMyA0Ni4xIDQzLjMgMTQuNiAwIDI1LjMtMi43IDMxLjItNS45bDAtMzMuOGMtNS43IDIuMy0zMy43IDEwLjUtMzMuNy0xNS43bDAtNjMuMiAzMy43IDAgMC0zNy44LTMzLjcgMC0uMS0zOC41em04OS4xIDUxLjZsLTIuNy0xMy4xLTM4LjQgMCAwIDE1My4yIDQ0LjMgMCAwLTEwMy4xYzEwLjUtMTMuOCAyOC4yLTExLjEgMzMuOS05LjNsMC00MC44Yy02LTIuMS0yNi43LTYtMzcuMSAxMy4xek0zNDYuNCAxMjRsLTQ0LjYgOS41IDAgMzYuMiA0NC42LTkuNSAwLTM2LjJ6TTQ0LjkgMjI4LjNjMC02LjkgNS44LTkuNiAxNS4xLTkuNyAxMy41IDAgMzAuNyA0LjEgNDQuMiAxMS40bDAtNDEuOGMtMTQuNy01LjgtMjkuNC04LjEtNDQuMS04LjEtMzYgMC02MCAxOC44LTYwIDUwLjIgMCA0OS4yIDY3LjUgNDEuMiA2Ny41IDYyLjQgMCA4LjItNy4xIDEwLjktMTcgMTAuOS0xNC43IDAtMzMuNy02LjEtNDguNi0xNC4ybDAgNDBjMTYuNSA3LjEgMzMuMiAxMC4xIDQ4LjUgMTAuMSAzNi45IDAgNjIuMy0xNS44IDYyLjMtNDcuOCAwLTUyLjktNjcuOS00My40LTY3LjktNjMuNHpNNjQwIDI2MS42YzAtNDUuNS0yMi04MS40LTY0LjItODEuNHMtNjcuOSAzNS45LTY3LjkgODEuMWMwIDUzLjUgMzAuMyA3OC4yIDczLjUgNzguMiAyMS4yIDAgMzcuMS00LjggNDkuMi0xMS41bDAtMzMuNGMtMTIuMSA2LjEtMjYgOS44LTQzLjYgOS44LTE3LjMgMC0zMi41LTYuMS0zNC41LTI2LjlsODYuOSAwYy4yLTIuMyAuNi0xMS42IC42LTE1Ljl6bS04Ny45LTE2LjhjMC0yMCAxMi4zLTI4LjQgMjMuNC0yOC40IDEwLjkgMCAyMi41IDguNCAyMi41IDI4LjRsLTQ1LjkgMHpNNDM5LjIgMTgwLjJjLTE3LjQgMC0yOC42IDguMi0zNC44IDEzLjlsLTIuMy0xMS0zOS4xIDAgMCAyMDQuOCA0NC40LTkuNCAuMS01MC4yYzYuNCA0LjcgMTUuOSAxMS4yIDMxLjQgMTEuMiAzMS44IDAgNjAuOC0yMy4yIDYwLjgtNzkuNiAuMS01MS42LTI5LjMtNzkuNy02MC41LTc5Ljd6TTQyOC42IDMwMi43Yy0xMC40IDAtMTYuNi0zLjgtMjAuOS04LjRsLS4zLTY2YzQuNi01LjEgMTEtOC44IDIxLjItOC44IDE2LjIgMCAyNy40IDE4LjIgMjcuNCA0MS40IC4xIDIzLjktMTAuOSA0MS44LTI3LjQgNDEuOHpNMzAxLjkgMzM2LjRsNDQuNiAwIDAtMTUzLjItNDQuNiAwIDAgMTUzLjJ6XCJdXG59O1xudmFyIGZhRGFpbHltb3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZGFpbHltb3Rpb24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwNTJcIiwgXCJNMjk4LjkgMjY3Yy03LjQtNC4yLTE1LjgtNi4zLTI0LjQtNi4yLTEzLjIgMC0yNC40IDQuNC0zMy40IDEzLjNzLTEzLjYgMjAtMTMuNiAzMy40YzAgMTQuMSA0LjQgMjUuNiAxMy4zIDM0LjZzMjAgMTMuNCAzMy40IDEzLjRjMTMuNyAwIDI1LTQuNiAzNC4xLTEzLjhTMzIyIDMyMS4xIDMyMiAzMDcuNWMwLTguMi0yLjEtMTYuMy02LjEtMjMuNS00LTcuMS05LjgtMTMtMTctMTd6TTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTM3NC43IDQwNS4zbC01My4xIDAgMC0yMy45LS43IDBjLTEwLjUgMTcuNS0yOS4xIDI2LjItNTUuOCAyNi4yLTE4LjQgMC0zNC43LTQuNC00OC45LTEzLjEtMTQuMS04LjYtMjUuNS0yMS0zMi45LTM1LjgtNy43LTE1LjEtMTEuNi0zMi4xLTExLjYtNTAuOSAwLTE4LjQgMy45LTM1LjEgMTEuOC01MC4yIDcuNS0xNC43IDE4LjktMjcuMSAzMi45LTM1LjggMTQuMS04LjcgMzAtMTMuMSA0Ny43LTEzLjEgMTAuMi0uMSAyMC4yIDEuNiAyOS43IDUuMiA4LjkgMy41IDE3LjIgOS4xIDI1IDE3bDAtNzcuOSA1NS44LTEyLjEgMCAyNjQuNHpcIl1cbn07XG52YXIgZmFTdGVhbSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzdGVhbScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFiNlwiLCBcIk01MDQgMjU2YzAgMTM3LTExMS4yIDI0OC0yNDguNCAyNDgtMTEzLjggMC0yMDkuNi03Ni4zLTIzOS0xODAuNGw5NS4yIDM5LjNjNi40IDMyLjEgMzQuOSA1Ni40IDY4LjkgNTYuNCAzOS4yIDAgNzEuOS0zMi40IDcwLjItNzMuNWw4NC41LTYwLjJjNTIuMSAxLjMgOTUuOC00MC45IDk1LjgtOTMuNSAwLTUxLjYtNDItOTMuNS05My43LTkzLjVzLTkzLjcgNDItOTMuNyA5My41bDAgMS4yLTU5LjIgODUuN2MtMTUuNS0uOS0zMC43IDMuNC00My41IDEyLjFMOCAyMzYuMUMxOC4yIDEwOC40IDEyNS4xIDggMjU1LjYgOCAzOTIuOCA4IDUwNCAxMTkgNTA0IDI1NnpNMTYzLjcgMzg0LjNsLTMwLjUtMTIuNmM1LjYgMTEuNiAxNS4zIDIwLjggMjcuMiAyNS44IDI2LjkgMTEuMiA1Ny44LTEuNiA2OS0yOC40IDUuNC0xMyA1LjUtMjcuMyAuMS00MC4zUzIxNCAzMDUuNiAyMDEgMzAwLjJjLTEyLjktNS40LTI2LjctNS4yLTM4LjktLjZsMzEuNSAxM2MxOS44IDguMiAyOS4yIDMwLjkgMjAuOSA1MC43LTguMyAxOS45LTMxIDI5LjItNTAuOCAyMXpNMzM3LjUgMTI5LjhhNjIuMyA2Mi4zIDAgMSAxIDAgMTI0LjYgNjIuMyA2Mi4zIDAgMSAxIDAtMTI0LjZ6bS4xIDEwOWE0Ni44IDQ2LjggMCAxIDAgMC05My42IDQ2LjggNDYuOCAwIDEgMCAwIDkzLjZ6XCJdXG59O1xudmFyIGZhU25hcGNoYXQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc25hcGNoYXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjEyNCwgXCJzbmFwY2hhdC1naG9zdFwiXSwgXCJmMmFiXCIsIFwiTTQ5Ny4xIDM2Ni42Yy0zLjQtOS4yLTkuOC0xNC4xLTE3LjEtMTguMi0xLjQtLjgtMi42LTEuNS0zLjctMS45LTIuMi0xLjEtNC40LTIuMi02LjYtMy40LTIyLjgtMTIuMS00MC42LTI3LjMtNTMtNDUuNC0zLjUtNS4xLTYuNi0xMC41LTkuMS0xNi4xLTEuMS0zLTEtNC43LS4yLTYuMyAuOC0xLjIgMS43LTIuMiAyLjktMyAzLjktMi42IDgtNS4yIDEwLjctNyA0LjktMy4yIDguOC01LjcgMTEuMi03LjQgOS40LTYuNSAxNS45LTEzLjUgMjAtMjEuMyAyLjktNS40IDQuNS0xMS4zIDQuOS0xNy40cy0uNi0xMi4yLTIuOC0xNy44Yy02LjItMTYuMy0yMS42LTI2LjQtNDAuMy0yNi40LTMuOSAwLTcuOSAuNC0xMS43IDEuMi0xIC4yLTIuMSAuNS0zLjEgLjcgLjItMTEuMi0uMS0yMi45LTEuMS0zNC41LTMuNS00MC44LTE3LjgtNjIuMS0zMi43LTc5LjItOS41LTEwLjctMjAuNy0xOS43LTMzLjItMjYuNy0yMi42LTEyLjktNDguMi0xOS40LTc2LjEtMTkuNHMtNTMuNCA2LjUtNzYgMTkuNGMtMTIuNSA3LTIzLjcgMTYuMS0zMy4zIDI2LjgtMTQuOSAxNy0yOS4yIDM4LjQtMzIuNyA3OS4yLTEgMTEuNi0xLjIgMjMuNC0xLjEgMzQuNS0xLS4zLTItLjUtMy4xLS43LTMuOS0uOC03LjgtMS4yLTExLjctMS4yLTE4LjcgMC0zNC4xIDEwLjEtNDAuMyAyNi40LTIuMiA1LjctMy4yIDExLjgtMi44IDE3LjhzMiAxMiA0LjkgMTcuNGM0LjEgNy44IDEwLjcgMTQuNyAyMCAyMS4zIDIuNSAxLjcgNi40IDQuMiAxMS4yIDcuNCAyLjYgMS43IDYuNSA0LjIgMTAuMyA2LjcgMS4zIC45IDIuNCAyIDMuMyAzLjMgLjggMS42IC44IDMuNC0uNCA2LjYtMi41IDUuNS01LjUgMTAuOC04LjkgMTUuOC0xMi4xIDE3LjctMjkuNCAzMi42LTUxLjQgNDQuNi0xMS43IDYuMi0yMy45IDEwLjMtMjkgMjQuMy0zLjkgMTAuNS0xLjMgMjIuNSA4LjUgMzIuNiAzLjYgMy44IDcuOCA2LjkgMTIuNCA5LjQgOS42IDUuMyAxOS44IDkuMyAzMC4zIDEyLjEgMi4yIC42IDQuMyAxLjUgNi4xIDIuNyAzLjYgMy4xIDMuMSA3LjkgNy44IDE0LjggMi40IDMuNiA1LjQgNi43IDkgOS4xIDEwIDYuOSAyMS4zIDcuNCAzMy4yIDcuOCAxMC44IC40IDIzIC45IDM2LjkgNS41IDUuOCAxLjkgMTEuOCA1LjYgMTguNyA5LjkgMTYuNyAxMC4zIDM5LjYgMjQuMyA3Ny44IDI0LjNzNjEuMy0xNC4xIDc4LjEtMjQuNGM2LjktNC4yIDEyLjktNy45IDE4LjUtOS44IDEzLjktNC42IDI2LjItNS4xIDM2LjktNS41IDExLjktLjUgMjMuMi0uOSAzMy4yLTcuOCA0LjItMi45IDcuNy02LjcgMTAuMi0xMS4yIDMuNC01LjggMy40LTkuOSA2LjYtMTIuOCAxLjgtMS4yIDMuNy0yLjEgNS44LTIuNiAxMC43LTIuOCAyMS02LjkgMzAuOC0xMi4yIDQuOS0yLjYgOS4zLTYuMSAxMy0xMC4ybC4xLS4yYzkuMi05LjkgMTEuNS0yMS41IDcuOC0zMS44em0tMzQgMTguM2MtMjAuNyAxMS41LTM0LjUgMTAuMi00NS4zIDE3LjEtOS4xIDUuOS0zLjcgMTguNS0xMC4zIDIzLjEtOC4xIDUuNi0zMi4yLS40LTYzLjIgOS45LTI1LjYgOC41LTQyIDMyLjgtODggMzIuOHMtNjItMjQuMy04OC4xLTMyLjljLTMxLTEwLjMtNTUuMS00LjItNjMuMi05LjktNi42LTQuNi0xLjItMTcuMi0xMC4zLTIzLjEtMTAuNy02LjktMjQuNS01LjctNDUuMy0xNy4xLTEzLjItNy4zLTUuNy0xMS44LTEuMy0xMy45IDc1LjEtMzYuNCA4Ny4xLTkyLjYgODcuNy05Ni43IC42LTUgMS40LTktNC4yLTE0LjEtNS40LTUtMjkuMi0xOS43LTM1LjgtMjQuMy0xMC45LTcuNi0xNS43LTE1LjMtMTIuMi0yNC42IDIuNS02LjUgOC41LTguOSAxNC45LTguOSAyIDAgNCAuMiA2IC43IDEyIDIuNiAyMy43IDguNiAzMC40IDEwLjIgLjggLjIgMS42IC4zIDIuNSAuMyAzLjYgMCA0LjktMS44IDQuNi01LjktLjgtMTMuMS0yLjYtMzguNy0uNi02Mi42IDIuOC0zMi45IDEzLjQtNDkuMiAyNi02My42IDYuMS02LjkgMzQuNS0zNyA4OC45LTM3UzMzOSA3NC4yIDM0NSA4MS4xYzEyLjYgMTQuNCAyMy4yIDMwLjcgMjYgNjMuNiAyLjEgMjMuOSAuMyA0OS41LS42IDYyLjYtLjMgNC4zIDEgNS45IDQuNiA1LjkgLjggMCAxLjctLjEgMi41LS4zIDYuNy0xLjYgMTguNC03LjYgMzAuNC0xMC4yIDItLjQgNC0uNyA2LS43IDYuNCAwIDEyLjQgMi41IDE0LjkgOC45IDMuNSA5LjQtMS4yIDE3LTEyLjIgMjQuNi02LjYgNC42LTMwLjQgMTkuMy0zNS44IDI0LjMtNS42IDUuMS00LjggOS4xLTQuMiAxNC4yIC41IDQuMiAxMi41IDYwLjQgODcuNyA5Ni43IDQuNCAyLjIgMTEuOSA2LjctMS4zIDE0LjF6XCJdXG59O1xudmFyIGZhU25hcGNoYXRHaG9zdCA9IGZhU25hcGNoYXQ7XG52YXIgZmFHYWxhY3RpY1NlbmF0ZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdnYWxhY3RpYy1zZW5hdGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1MGRcIiwgXCJNMjQ5LjkgMzMuNWwwIDI2LjFjLTEzLjYgMjAuNi0yMy45IDEwOC42LTI0LjUgMjE1LjMgMTEuNy0xNS42IDE5LjEtMzMuMyAxOS4xLTQ4LjJsMC0xNi45YzAtNS4zIC44LTEwLjUgMi4yLTE1LjYgLjYtMi4xIDEuNC00LjEgMi42LTUuOHMzLjQtMy44IDYuNy0zLjggNS40IDIuMSA2LjcgMy44YzEuMiAxLjggMiAzLjcgMi42IDUuOCAxLjQgNS4xIDIuMiAxMC4zIDIuMiAxNS42bDAgMTYuOWMwIDE0LjkgNy40IDMyLjYgMTkuMSA0OC4yLS42LTEwNi44LTEwLjktMTk0LjctMjQuNS0yMTUuM2wwLTI2LjEtMTIuMyAwek0yMjMuNSAxODEuM2MtOS41IDIuMS0xOC43IDUuMi0yNy41IDkuMSA4LjkgMTYuMSA5LjggMzIuNiAxLjcgMzcuMy04IDQuNi0yMS44LTQuMi0zMS40LTE5LjgtMTEuNiA4LjgtMjEuOSAxOS4zLTMwLjYgMzEuMSAxNC43IDkuNiAyMi45IDIyLjkgMTguMyAzMC43LTQuNSA3LjctMjAgNy4xLTM1LjUtMS01LjggMTMuMi05LjcgMjcuNS0xMS42IDQyLjQgOS43IC4yIDE4LjcgMi40IDI2LjIgNiAxNy44LS4zIDMyLjgtMiA0MC41LTQuMiA1LjYtMjYuNCAyMy00OC4yIDQ2LjMtNTkuNSAuNy0yNS42IDEuOS00OS43IDMuNS03Mi4xem02NSAwYzEuNiAyMi40IDIuNyA0Ni41IDMuNSA3Mi4xIDIzLjMgMTEuMyA0MC44IDMzLjIgNDYuMyA1OS41IDcuNyAyLjMgMjIuNyAzLjkgNDAuNSA0LjIgNy41LTMuNyAxNi41LTUuOCAyNi4yLTYtMS45LTE0LjktNS45LTI5LjItMTEuNy00Mi40LTE1LjQgOC4xLTMwLjkgOC43LTM1LjUgMS00LjYtNy43IDMuNi0yMS4xIDE4LjMtMzAuNy04LjctMTEuOC0xOS0yMi4zLTMwLjYtMzEuMS05LjUgMTUuNi0yMy40IDI0LjQtMzEuNCAxOS44LTguMS00LjYtNy4yLTIxLjIgMS43LTM3LjMtOC44LTMuOS0xOC03LTI3LjQtOS4xek0yNTYgMTg5LjljLTMuMiAwLTUuOSA4LjgtNi4xIDE5LjlsMCAwIDAgMTYuOWMwIDQxLjQtNDkgOTUtOTMuNSA5NS01MiAwLTEyMi44LTEuNC0xNTYuNCAyOS4ybDAgMi41YzkuNCAxNy4xIDIwLjYgMzMuMiAzMy4yIDQ4IDEyLjUtMjEuMSA1MS42LTQxIDEwOC00MS40IDQ1LjcgMSA3OSAyMC4zIDkwLjggNDAuOSAwIDAgMCAwIDAgLjEgNy43IDIuMSAxNS44IDMuMiAyNCAzLjIgOC4yIDAgMTYuNC0xLjEgMjQtMy4yIDAgMCAwIDAgMC0uMSAxMS43LTIwLjUgNDUuMS0zOS44IDkwLjgtNDAuOSA1Ni40IC40IDk1LjUgMjAuMyAxMDggNDEuNCAxMi42LTE0LjggMjMuOC0zMC45IDMzLjItNDhsMC0yLjVjLTMzLjYtMzAuNi0xMDQuNC0yOS4yLTE1Ni40LTI5LjItNDQuNSAwLTkzLjUtNTMuNi05My41LTk1bDAtMTYuOS0uMSAwYy0uMi0xMS4xLTIuOS0xOS45LTYuMS0xOS45em0wIDE3Ny45YTQwLjYgNDAuNiAwIDEgMSAwLTgxLjMgNDAuNiA0MC42IDAgMSAxIDAgODEuM3ptMC03My42YTMzIDMzIDAgMSAwIDAgNjUuOSAzMyAzMyAwIDEgMCAwLTY1Ljl6bTAgNTkuOGEyNi44IDI2LjggMCAxIDEgMC01My42IDI2LjggMjYuOCAwIDEgMSAwIDUzLjZ6bS0xMTQuOCAxM2MtMTAuMiAuMS0yMS42IC40LTMwLjUgMS43IC40IDQuNCAxLjUgMTguNiA3LjEgMjkuOCA5LjEtMi42IDE4LjQtMy45IDI3LjYtMy45IDQxLjMgLjkgNzEuNSAzNC40IDc4LjMgNzQuNWwuMSA0LjdjMTAuNCAxLjkgMjEuMiAyLjkgMzIuMiAyLjkgMTEgMCAyMS44LTEgMzIuMi0yLjlsLjEtNC43YzYuOC00MC4xIDM3LTczLjUgNzguMy03NC41IDkuMyAwIDE4LjUgMS4zIDI3LjYgMy45IDUuNi0xMS4xIDYuNy0yNS4zIDcuMS0yOS44LTguOS0xLjMtMjAuMy0xLjYtMzAuNS0xLjctMTguOCAuNC0zNS4yIDQuMi00OC42IDkuNy0xMi41IDE2LTI5LjIgMzAtNDkuNiAzMy4xLS4xIDAtLjIgMC0uMyAwIDAgMC0uMSAwLS4yIC4xLTUuMiAxLjEtMTAuNiAxLjYtMTYuMiAxLjYtNS41IDAtMTAuOS0uNS0xNi4yLTEuNi0uMSAwLS4xIDAtLjItLjEtLjEgMC0uMiAwLS4zIDAtMjAuNC0zLTM3LTE3LTQ5LjYtMzMuMS0xMy40LTUuNS0yOS45LTkuMi00OC42LTkuN3pcIl1cbn07XG52YXIgZmFQaG9lbml4RnJhbWV3b3JrID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3Bob2VuaXgtZnJhbWV3b3JrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmM2RjXCIsIFwiTTIxMi45IDM0NC4zYzMuOC0uMSAyMi44LTEuNCAyNS42LTIuMi0yLjQtMi42LTQzLjYtMS02OC00OS42LTQuMy04LjYtNy41LTE3LjYtNi40LTI3LjYgMi45LTI1LjUgMzIuOS0zMCA1Mi0xOC41IDM2IDIxLjYgNjMuMyA5MS4zIDExMy43IDk3LjUgMzcgNC41IDg0LjYtMTcgMTA4LjItNDUuNC0uNi0uMS0uOC0uMi0xLS4xLS40IC4xLS44IC4yLTEuMSAuMy0zMy4zIDEyLjEtOTQuMyA5LjctMTM0LjctMTQuOC0zNy42LTIyLjgtNTMuMS01OC43LTUxLjgtNzQuNiAxLjgtMjEuMyAyMi45LTIzLjIgMzUuOS0xOS42IDE0LjQgMy45IDI0LjQgMTcuNiAzOC45IDI3LjQgMTUuNiAxMC40IDMyLjkgMTMuNyA1MS4zIDEwLjMgMTQuOS0yLjcgMzQuNC0xMi4zIDM2LjUtMTQuNS0xLjEtLjEtMS44LS4xLTIuNS0uMi02LjItLjYtMTIuNC0uOC0xOC41LTEuNy0xMTEuMi0xNi41LTEyOC45LTE2My42LTI1Mi41LTE3My4xLTQ0LjMtMy40LTk5LjQgOC4xLTEzNi4zIDM1LS44IC42LTEuNSAxLjItMi4yIDEuOCAuMSAuMiAuMSAuMyAuMiAuNSAuOCAwIDEuNi0uMSAyLjQtLjIgNi4zLTEgMTIuNS0uOCAxOC43IC4zIDIzLjggNC4zIDQ3LjcgMjMuMSA1NS45IDc2LjUgNS4zIDM0LjMtLjcgNTAuOCA4IDg2LjEgMTkgNzcuMSA5MSAxMDcuNiAxMjcuNyAxMDYuNHpNNzUuMyA2NC45Yy0uOS0xLS45LTEuMi0xLjMtMiAxMi4xLTIuNiAyNC4yLTQuMSAzNi42LTQuOC0xLjEgMTQuNy0yMi4yIDIxLjMtMzUuMyA2Ljh6TTI3Mi4yIDQxNS40Yy00Mi44IDEuMi05Mi0yNi43LTEyMy41LTYxLjQtNC42LTUtMTYuOC0yMC4yLTE4LjYtMjMuNGwuNC0uNGM2LjYgNC4xIDI1LjcgMTguNiA1NC44IDI3IDI0LjIgNyA0OC4xIDYuMyA3MS42LTMuMyAyMi43LTkuMyA0MS0uNSA0My4xIDIuOS0xOC41IDMuOC0yMC4xIDQuNC0yNCA3LjktNS4xIDQuNC00LjYgMTEuNyA3IDE3LjIgMjYuMiAxMi40IDYzLTIuOCA5Ny4yIDI1LjQgMi40IDIgOC4xIDcuOCAxMC4xIDEwLjctLjEgLjItLjMgLjMtLjQgLjUtNC44LTEuNS0xNi40LTcuNS00MC4yLTkuMy0yNC43LTItNDYuMyA1LjMtNzcuNSA2LjJ6TTQ0NyAxNjMuNGMxNi40LTUuMiA0MS4zLTEzLjQgNjYuNS0zLjMgMTYuMSA2LjUgMjYuMiAxOC43IDMyLjEgMzQuNiAzLjUgOS40IDUuMSAxOS43IDUuMSAyOC43LS4yIDAtLjQgMC0uNiAuMS0uMi0uNC0uNC0uOS0uNS0xLjMtNS0yMi0yOS45LTQzLjgtNjcuNi0yOS45LTUwLjIgMTguNi0xMzAuNCA5LjctMTc2LjktNDgtLjctLjktMi40LTEuNy0xLjMtMy4yIC4xLS4yIDIuMSAuNiAzIDEuMyAxOC4xIDEzLjQgMzguMyAyMS45IDYwLjMgMjYuMiAzMC41IDYuMSA1NC42IDIuOSA3OS45LTUuMnpNNTQ5LjcgMjgwLjljLTMyLjQgLjItMzMuOCA1MC4xLTEwMy42IDY0LjQtMTguMiAzLjctMzguNyA0LjYtNDQuOSA0LjJsMC0uNGMyLjgtMS41IDE0LjctMi42IDI5LjctMTYuNiA3LjktNy4zIDE1LjMtMTUuMSAyMi44LTIyLjkgMTkuNS0yMC4yIDQxLjQtNDIuMiA4MS45LTM5IDIzLjEgMS44IDI5LjMgOC4yIDM2LjEgMTIuNyAuMyAuMiAuNCAuNSAuNyAuOS0uNSAwLS43IC4xLS45IDAtNy0yLjctMTQuMy0zLjMtMjEuOC0zLjN6bS0xMi4zLTI0LjFjLS4xIC4yLS4xIC40LS4yIC42LTI4LjktNC40LTQ4LTcuOS02OC41IDQtMTcgOS45LTMxLjQgMjAuNS02MiAyNC40LTI3LjEgMy40LTQ1LjEgMi40LTY2LjEtOC0uMy0uMi0uNi0uNC0xLS42IDAtLjIgLjEtLjMgLjEtLjUgMjQuOSAzLjggMzYuNCA1LjEgNTUuNS01LjggMjIuMy0xMi45IDQwLjEtMjYuNiA3MS4zLTMxIDI5LjYtNC4xIDUxLjMgMi41IDcwLjkgMTYuOXpNMjY4LjYgOTcuM2MtLjYtLjYtMS4xLTEuMi0yLjEtMi4zIDcuNiAwIDI5LjctMS4yIDUzLjQgOC40IDE5LjcgOCAzMi4yIDIxIDUwLjIgMzIuOSAxMS4xIDcuMyAyMy40IDkuMyAzNi40IDguMSA0LjMtLjQgOC41LTEuMiAxMi44LTEuNyAuNC0uMSAuOSAwIDEuNSAuMy0uNiAuNC0xLjIgLjktMS44IDEuMi04LjEgNC0xNi43IDYuMy0yNS42IDcuMS0yNi4xIDIuNi01MC4zLTMuNy03My40LTE1LjQtMTkuMy05LjktMzYuNC0yMi45LTUxLjQtMzguNnpNNjQwIDMzNS43Yy0zLjUgMy4xLTIyLjcgMTEuNi00Mi43IDUuMy0xMi4zLTMuOS0xOS41LTE0LjktMzEuNi0yNC4xLTEwLTcuNi0yMC45LTcuOS0yOC4xLTguNCAuNi0uOCAuOS0xLjIgMS4yLTEuNCAxNC44LTkuMiAzMC41LTEyLjIgNDcuMy02LjUgMTIuNSA0LjIgMTkuMiAxMy41IDMwLjQgMjQuMiAxMC44IDEwLjQgMjEgOS45IDIzLjEgMTAuNSAuMS0uMSAuMiAwIC40IC40em0tMjEyLjUgMTM3YzIuMiAxLjIgMS42IDEuNSAxLjUgMi0xOC41LTEuNC0zMy45LTcuNi00Ni44LTIyLjItMjEuOC0yNC43LTQxLjctMjcuOS00OC42LTI5LjcgLjUtLjIgLjgtLjQgMS4xLS40IDEzLjEgLjEgMjYuMSAuNyAzOC45IDMuOSAyNS4zIDYuNCAzNSAyNS40IDQxLjYgMzUuMyAzLjIgNC44IDcuMyA4LjMgMTIuMyAxMS4xelwiXVxufTtcbnZhciBmYUdpdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdnaXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxZDNcIiwgXCJNMjE2LjMgMTU4LjRsLTc5LjMgMGMtNDAtMTAuNS0xMzAuNS03LjgtMTMwLjUgNzQuOCAwIDMwLjEgMTUgNTEuMiAzNSA2MS0yNS4xIDIzLTM3IDMzLjgtMzcgNDkuMiAwIDExIDQuNSAyMS4xIDE3LjkgMjYuOC0xNC4zIDEzLjQtMjIuNCAyMy4xLTIyLjQgNDEuNCAwIDMyLjEgMjggNTAuOCAxMDEuNiA1MC44IDcwLjggMCAxMTEuOC0yNi40IDExMS44LTczLjIgMC01OC43LTQ1LjItNTYuNS0xNTEuNi02M2wxMy40LTIxLjZjMjcuMyA3LjYgMTE4LjcgMTAgMTE4LjctNjcuOSAwLTE4LjctNy43LTMxLjctMTUtNDEuMWwzNy40LTIuOCAwLTM0LjV6TTE1Mi45IDQwMC4zYzAgMzIuMS0xMDQuOSAzMi4xLTEwNC45IDIuNCAwLTguMSA1LjMtMTUgMTAuNi0yMS41IDc3LjcgNS4zIDk0LjMgMy40IDk0LjMgMTkuMXpNMTAyLjEgMjY1LjdjLTUyLjggMC01MC41LTcxLjIgMS4yLTcxLjIgNDkuNSAwIDUwLjggNzEuMi0xLjIgNzEuMnpNMjM1LjQgMzY2LjJsMC0zMi4xYzI2LjctMy43IDI3LjItMiAyNy4yLTExbDAtMTE5LjVjMC04LjUtMi4xLTcuNC0yNy4yLTE2LjNsNC41LTMyLjkgODQuMiAwIDAgMTY4LjdjMCA2LjUgLjQgNy4zIDYuNSA4LjFsMjAuNyAyLjggMCAzMi4xLTExNS45IDB6bTUyLjUtMjQ0LjNjLTIzLjIgMC0zNi42LTEzLjQtMzYuNi0zNi42czEzLjQtMzUuOCAzNi42LTM1LjhjMjMuNiAwIDM3IDEyLjYgMzcgMzUuOHMtMTMuNCAzNi42LTM3IDM2LjZ6TTUxMiAzNTAuNWMtMTcuNSA4LjUtNDMuMSAxNi4zLTY2LjMgMTYuMy00OC40IDAtNjYuNy0xOS41LTY2LjctNjUuNWwwLTEwNi41YzAtNS40IDEtNC4xLTMxLjctNC4xbDAtMzYuMmMzNS44LTQuMSA1MC0yMiA1NC41LTY2LjNsMzguNiAwYzAgNjUuOC0xLjMgNjEuOCAzLjMgNjEuOGw1Ny4zIDAgMCA0MC42LTYwLjYgMCAwIDk3LjFjMCA2LjktNC45IDUxLjQgNjAuNiAyNi44bDExIDM1Ljh6XCJdXG59O1xudmFyIGZhT3B0aW5Nb25zdGVyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ29wdGluLW1vbnN0ZXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyM2NcIiwgXCJNNTcyLjggNDIxLjRjNS42LTkuNSA0LjctMTUuMi01LjQtMTEuNi0zLTQuOS03LTkuNS0xMS4xLTEzLjggMi45LTkuNy0uNy0xNC4yLTEwLjgtOS4yLTQuNi0zLjItMTAuMy02LjUtMTUuOS05LjIgMC0xNS4xLTExLjYtMTEuNi0xNy42LTUuNy0xMC40LTEuNS0xOC43LS4zLTI2LjggNS43IC4zLTYuNSAuMy0xMyAuMy0xOS43IDEyLjYgMCA0MC4yLTExIDQ1LjktMzYuMiAxLjQtNi44IDEuNi0xMy44LS4zLTIxLjktMy0xMy41LTE0LjMtMjEuMy0yNS4xLTI1LjctLjgtNS45LTcuNi0xNC4zLTE0LjktMTUuOXMtMTIuNCA0LjktMTQuMSAxMC4zYy04LjUgMC0xOS4yIDIuOC0yMS4xIDguNC01LjQtLjUtMTEuMS0xLjQtMTYuOC0xLjkgMi43LTEuOSA1LjQtMy41IDguNC00LjYgNS40LTkuMiAxNC42LTExLjQgMjUuNy0xMS42bDAtMi44YzE5LjUtLjUgNDMtNS45IDUzLjgtMTguMSAxMi43LTEzLjggMTQuNi0zNy4zIDEyLjQtNTUuMS0yLjQtMTcuMy05LjctMzcuNi0yNC42LTQ4LjEtOC40LTUuOS0yMS42LS44LTIyLjcgOS41LTIuMiAxOS42IDEuMiAzMC0zOC42IDI1LjEtMTAuMy0yMy44LTI0LjYtNDQuNi00Mi43LTYwLTY5LjYtNTkuNy0xNjcuNy01My44LTI0NC4yLTM3LjYgMTkuNyA0LjYgNDEuMSA4LjYgNTkuNyAxNi41LTI2LjIgMi40LTUyLjcgMTEuMy03Ni4yIDIzLjItMzIuOCAxNy00NCAyOS45LTU2LjcgNDIuNCAxNC45LTIuMiAyOC45LTUuMSA0My44LTMuOC05LjcgNS40LTE4LjQgMTIuMi0yNi41IDIwLTI1LjggLjktMjMuOC01LjMtMjYuMi0yNS45LTEuMS0xMC41LTE0LjMtMTUuNC0yMi43LTkuNy0yOC4xIDE5LjktMzMuNSA3OS45LTEyLjIgMTAzLjUgMTAuOCAxMi4yIDM1LjEgMTcuMyA1NC45IDE3LjgtLjMgMS4xLS4zIDEuOS0uMyAyLjcgMTAuOCAuNSAxOS41IDIuNyAyNC42IDExLjYgMyAxLjEgNS43IDIuNyA4LjEgNC42LTUuNCAuNS0xMS4xIDEuNC0xNi41IDEuOS0zLjMtNi42LTEzLjctOC4xLTIxLjEtOC4xLTEuNi01LjctNi41LTEyLjItMTQuMS0xMC4zLTYuOCAxLjktMTQuMSAxMC0xNC45IDE1LjktMjIuNSA5LjUtMzAuMSAyNi44LTI1LjEgNDcuNiA1LjMgMjQuOCAzMyAzNi4yIDQ1LjkgMzYuMmwwIDE5LjdjLTYuNi01LTE0LjMtNy41LTI2LjgtNS43LTUuNS01LjUtMTcuMy0xMC4xLTE3LjMgNS43LTUuOSAyLjctMTEuNCA1LjktMTUuOSA5LjItOS44LTQuOS0xMy42LTEuNy0xMS4xIDkuMi00LjEgNC4zLTcuOCA4LjYtMTEuMSAxMy44LTEwLjItMy43LTExIDIuMi01LjQgMTEuNi0xLjEgMy41LTEuNiA3LTEuOSAxMC44LS41IDMxLjYgNDQuNiA2NCA3My41IDY1LjEgMTcuMyAuNSAzNC42LTguNCA0My0yMy41IDExMy4yIDQuOSAyMjYuNyA0LjEgMzQwLjIgMCA4LjEgMTUuMSAyNS40IDI0LjMgNDIuNyAyMy41IDI5LjItMS4xIDc0LjMtMzMuNSA3My41LTY1LjEgLjItMy43LS43LTcuMi0xLjctMTAuN3pNNDk5IDE2Ny40YzEuMS0zIDIuNC04LjQgMi40LTE0LjYgMC01LjkgNi44LTguMSAxNC4xLS44IDExLjEgMTEuNiAxNC45IDQwLjUgMTMuOCA1MS4xLTQuMS0xMy42LTEzLTI5LTMwLjMtMzUuN3ptLTQuNiA2LjdjMTkuNSA2LjIgMjguNiAyNy42IDI5LjcgNDguOS0xLjEgMi43LTMgNS40LTQuOSA3LjYtNS43IDUuOS0xNS40IDEwLTI2LjIgMTIuMiA0LjMtMjEuMyAuMy00Ny4zLTEyLjctNjMgNC45LS44IDEwLjktMi40IDE0LjEtNS43em0tMjQuMSA2LjhjMTMuOCAxMS45IDIwIDM5LjIgMTQuMSA2My41LTQuMSAuNS04LjEgLjgtMTEuNiAuOC0xLjktMjEuOS02LjgtNDQtMTQuMy02NC42IDMuNyAuMyA4LjEgLjMgMTEuOCAuM3pNNDcuNyAyMDNjLTEuMS0xMC41IDIuNC0zOS41IDEzLjgtNTEuMSA3LTcuMyAxNC4xLTUuMSAxNC4xIC44IDAgNi4yIDEuNCAxMS42IDIuNCAxNC42LTE3LjMgNi44LTI2LjIgMjIuMi0zMC4zIDM1Ljd6bTkuNyAyNy42Yy0xLjktMi4yLTMuNS00LjktNC45LTcuNiAxLjQtMjEuMyAxMC4zLTQyLjcgMjkuNy00OC45IDMuMiAzLjIgOS4yIDQuOSAxNC4xIDUuNy0xMyAxNS43LTE3IDQxLjYtMTIuNyA2My0xMC44LTIuMi0yMC41LTYtMjYuMi0xMi4yem00Ny45IDE0LjZjLTQuMSAwLTguMS0uMy0xMi43LS44LTQuNi0xOC42LTEuOS0zOC45IDUuNC01M2wwIC4zIDEyLjItNS4xYzQuOS0xLjkgOS43LTMuOCAxNC45LTQuOS0xMC43IDE5LjctMTcuNCA0MS4zLTE5LjggNjMuNXptMTg0LTEwLjVhNzYuMSA3Ni4xIDAgMSAxIDAtMTUyLjIgNzYuMSA3Ni4xIDAgMSAxIDAgMTUyLjJ6bTExNS42IDIyLjFjLS4zIDE3LjgtNyA0OC45LTIzIDU3LTEzLjIgNi42LTYuNS03LjUtMTYuNS01OC4xIDEzLjMgLjMgMjYuNiAuMyAzOS41IDEuMXptLTU0LTEuNmMuOCA0LjkgMy44IDQwLjMtMS42IDQxLjktMTEuNiAzLjUtNDAgNC4zLTUxLjEtMS4xLTQuMS0zLTQuNi0zNS45LTQuMy00MS4xbDAgLjNjMTguOS0uMyAzOC4xLS4zIDU3IDB6TTI3OC41IDMwOWMtMTMgMy41LTQxLjYgNC4xLTU0LjYtMS42LTYuNS0yLjctMy44LTQyLjQtMS45LTUxLjYgMTkuMi0uNSAzOC40LS41IDU3LjgtLjhsMCAuM2MxLjEgOC4zIDMuMyA1MS4yLTEuMyA1My43ek0xNzIgMjU3LjljMTIuMi0uOCAyNC42LTEuNCAzNi44LTEuNi0yLjQgMTUuNC0zIDQzLjUtNC45IDUyLjItMS4xIDYuOC00LjMgNi44LTkuNyA0LjMtMjEuOS05LjgtMjcuNi0zNS4yLTIyLjItNTQuOXptLTM1LjQgMzEuM2M3LjgtMS4xIDE1LjctMS45IDIzLjUtMi43IDEuNiA2LjIgMy44IDExLjkgNyAxNy42IDEwIDE3IDQ0IDM1LjcgNDUuMSA3IDYuMiAxNC45IDQwLjggMTIuMiA1NC45IDEwLjggMTUuNy0xLjQgMjMuOC0xLjQgMjYuOC0xNC4zIDEyLjQgNC4zIDMwLjggNC4xIDQ0IDMgMTEuMy0uOCAyMC44LS41IDI0LjYtOC45IDEuMSA1LjEgMS45IDExLjYgNC42IDE2LjggMTAuOCAyMS4zIDM3LjMgMS40IDQ2LjgtMzEuNiA4LjYgLjggMTcuNiAxLjkgMjYuNSAyLjctLjQgMS4zLTMuOCA3LjMgNy4zIDExLjYtNDcuNiA0Ny05NS43IDg3LjgtMTYzLjIgMTA3LTYzLjItMjAuOC0xMTIuMS01OS41LTE1NS45LTEwNi41IDkuNi0zLjQgMTAuNC04LjggOC0xMi41ek0xMTUgNDYxLjdjLTMuOCAxNy44LTIxLjkgMjkuNy0zOS43IDI4LjktMTkuMi0uOC00Ni41LTE3LTU5LjItMzYuNS0yLjctMzEuMSA0My44LTYxLjMgNjYuMi01NC42IDE0LjkgNC4zIDI3LjggMzAuOCAzMy41IDU0IDAgMy0uMyA1LjctLjggOC4yem0tOC43LTY2Yy0uNS0xMy41LS41LTI3LS4zLTQwLjVsLjMgMGMyLjctMS42IDUuNy0zLjggNy44LTYuNSA2LjUtMS42IDEzLTUuMSAxNS4xLTkuMiAzLjMtNy4xLTctNy41LTUuNC0xMi40IDIuNy0xLjEgNS43LTIuMiA3LjgtMy41IDI5LjIgMjkuMiA1OC42IDU2LjUgOTcuMyA3Ny0zNi44IDExLjMtNzIuNCAyNy42LTEwNS45IDQ3LTEuMi0xOC42LTcuNy0zNS45LTE2LjctNTEuOXptMzM3LjYgNjQuNmMtMTAzIDMuNS0yMDYuMiA0LjEtMzA5LjQgMCAwIC4zIDAgLjMtLjMgLjNsMC0uMyAuMyAwYzM1LjEtMjEuNiA3Mi4yLTM5LjIgMTEyLjQtNTAuOCAxMS42IDUuMSAyMyA5LjUgMzQuOSAxMy4yIDIuMiAuOCAyLjIgLjggNC4zIDAgMTQuMy00LjEgMjguNC05LjIgNDIuMi0xNS40IDQxLjUgMTEuNyA3OC44IDMxLjcgMTE1LjYgNTN6bTEwLjUtMTIuNGMtMzUuOS0xOS41LTczLTM1LjktMTExLjktNDcuNiAzOC4xLTIwIDcxLjktNDcuMyAxMDMuNS03Ni43IDIuMiAxLjQgNC42IDIuNCA3LjYgMy4yIDAgLjggLjMgMS45IC41IDIuNC00LjYgMi43LTcuOCA2LjItNS45IDEwLjMgMi4yIDMuOCA4LjYgNy42IDE1LjEgOC45IDIuNCAyLjcgNS4xIDUuMSA4LjEgNi44IDAgMTMuOC0uMyAyNy42LS44IDQxLjNsLjMtLjNjLTkuMyAxNS45LTE1LjUgMzctMTYuNSA1MS43em0xMDUuOSA2LjJjLTEyLjcgMTkuNS00MCAzNS43LTU5LjIgMzYuNS0xOS4zIC45LTQwLjUtMTMuMi00MC41LTM3IDUuNy0yMy4yIDE4LjktNDkuNyAzMy41LTU0IDIyLjctNi45IDY5LjIgMjMuNCA2Ni4yIDU0LjV6TTM3My4xIDc1LjJjLTMuOC03Mi4xLTEwMC44LTc5LjctMTI2LTIzLjUgNDQuNi0yNC4zIDkwLjMtMTUuNyAxMjYgMjMuNXpNNzUgNDA3LjFjLTE1LjcgMS42LTQ5LjUgMjUuNC00OS41IDQzLjIgMCAxMS42IDE1LjcgMTkuNSAzMi4yIDE0LjkgMTIuMi0zLjIgMzEuMS0xNy42IDM1LjktMjcuMyA2LTExLjYtMy43LTMyLjctMTguNi0zMC44ek0yOTAuOSAyMzAuOWMyOC42IDAgNTEuOS0yMS42IDUxLjktNDguNCAwLTM2LjEtNDAuNS01OC4xLTcyLjItNDQuMyA5LjUgMyAxNi41IDExLjYgMTYuNSAyMS42IDAgMjMuMy0zMy4zIDMyLTQ2LjUgMTEuMy03LjMgMzQuMSAxOS40IDU5LjggNTAuMyA1OS44ek02OC4yIDQ3NC4xYy41IDYuNSAxMi4yIDEyLjcgMjEuNiA5LjUgNi44LTIuNyAxNC42LTEwLjUgMTcuMy0xNi4yIDMtNy0xLjEtMjAtOS43LTE4LjQtOC45IDEuNi0yOS43IDE2LjctMjkuMiAyNS4xem00MzMuMi02N2MtMTQuOS0xLjktMjQuNiAxOS4yLTE4LjkgMzAuOCA0LjkgOS43IDI0LjEgMjQuMSAzNi4yIDI3LjMgMTYuNSA0LjYgMzIuMi0zLjIgMzIuMi0xNC45IDAtMTcuOC0zMy44LTQxLjYtNDkuNS00My4yek00NzkgNDQ5Yy04LjQtMS42LTEyLjQgMTEuMy05LjUgMTguNCAyLjQgNS43IDEwLjMgMTMuNSAxNy4zIDE2LjIgOS4yIDMuMiAyMS4xLTMgMjEuMy05LjUgLjktOC40LTIwLjItMjMuNS0yOS4xLTI1LjF6XCJdXG59O1xudmFyIGZhSmVua2lucyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdqZW5raW5zJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmM2I2XCIsIFwiTTQ1NS40IDQyNWMtMS40LTExLjItMTktMjMuMS0yOC4yLTMxLjktNS4xLTUtMjktMjMuMS0zMC40LTI5LjktMS40LTYuNiA5LjctMjEuNSAxMy4zLTI4LjkgNS4xLTEwLjcgOC44LTIzLjcgMTEuMy0zMi42IDE4LjgtNjYuMSAyMC43LTE1Ni45LTYuMi0yMTEuMi0xMC4yLTIwLjYtMzguNi00OS01Ni40LTYyLjUtNDItMzEuNy0xMTkuNi0zNS4zLTE3MC4xLTE2LjYtMTQuMSA1LjItMjcuOCA5LjgtNDAuMSAxNy4xLTMzLjEgMTkuNC02OC4zIDMyLjUtNzguMSA3MS42LTI0LjIgMTAuOC0zMS41IDQxLjgtMzAuMyA3Ny44IC4yIDcgNC4xIDE1LjggMi43IDIyLjQtLjcgMy4zLTUuMiA3LjYtNi4xIDkuOC0xMS42IDI3LjctMi4zIDY0IDExLjEgODMuNyA4LjEgMTEuOSAyMS41IDIyLjQgMzkuMiAyNS4yIC43IDEwLjYgMy4zIDE5LjcgOC4yIDMwLjQgMy4xIDYuOCAxNC43IDE5IDEwLjQgMjcuNy0yLjIgNC40LTIxIDEzLjgtMjcuMyAxNy42LTIxLjEgMTIuNS0zNi40IDIwLjMtNTUuOSAzNC4zLTEyLjYgOS0zMi4zIDEwLjItMjkuMiAzMS4xIDIuMSAxNC4xIDEwLjEgMzEuNiAxNC43IDQ1LjggLjcgMiAxLjQgNC4xIDIuMSA2bDQyMiAwYzQuOS0xNS4zIDkuNy0zMC45IDE0LjYtNDcuMiAzLjQtMTEuNCAxMC4yLTI3LjggOC43LTM5Ljd6TTE3NC4yIDMzLjdjMS44LS41IDMuNCAuNyA0LjkgMi40LS4yIDUuMi01LjQgNS4xLTguOSA2LjgtNS40IDYuNy0xMy40IDkuOC0yMCAxNy4yLTYuOCA3LjUtMTQuNCAyNy43LTIzLjQgMzAtNC41IDEuMS05LjctLjgtMTMuNi0uNS0xMC40IC43LTE3LjcgNi0yOC4zIDcuNSAxMy42LTI5LjkgNTYuMS01NCA4OS4zLTYzLjR6TTY5LjQgMTI3LjNjMTMuNS0xNC45IDMyLjEtMjQuMSA1NC44LTI1LjkgMTEuNyAyOS43LTguNCA2NS0uOSA5Ny42IDIuMyA5LjkgMTAuMiAyNS40LTIuNCAyNS43IC4zLTI4LjMtMzQuOC00Ni4zLTYxLjMtMjkuNi0xLjgtMjEuNS00LjktNTEuNyA5LjgtNjcuOHptMzYuNyAyMDAuMmMtMS00LjEtMi43LTEyLjktMi4zLTE1LjEgMS42LTguNyAxNy4xLTEyLjUgMTEtMjQuNy0xMS4zLS4xLTEzLjggMTAuMi0yNC4xIDExLjMtMjYuNyAyLjYtNDUuNi0zNS40LTQ0LjQtNTguNCAxLTE5LjUgMTcuNi0zOC4yIDQwLjEtMzUuOCAxNiAxLjggMjEuNCAxOS4yIDI0LjUgMzQuNyA5LjIgLjUgMjIuNS0uNCAyNi45LTcuNi0uNi0xNy41LTguOC0zMS42LTguMi00Ny43IDEtMzAuMyAxNy41LTU3LjYgNC44LTg3LjQgMTMuNi0zMC45IDUzLjUtNTUuMyA4My4xLTcwIDM2LjYtMTguMyA5NC45LTMuNyAxMjkuMyAxNS44IDE5LjcgMTEuMSAzNC40IDMyLjcgNDguMyA1MC43LTE5LjUtNS44LTM2LjEgNC4yLTMzLjEgMjAuMyAxNi4zLTE0LjkgNDQuMi0uMiA1Mi41IDE2LjQgNy45IDE1LjggNy44IDM5LjMgOSA2Mi44IDIuOSA1Ny0xMC40IDExNS45LTM5LjEgMTU3LjEtNy43IDExLTE0LjEgMjMtMjQuOSAzMC42LTI2IDE4LjItNjUuNCAzNC43LTk5LjIgMjMuNC00NC43LTE1LTY1LTQ0LjgtODkuNS03OC44IC43IDE4LjcgMTMuOCAzNC4xIDI2LjggNDguNCAxMS4zIDEyLjUgMjUgMjYuNiAzOS43IDMyLjQtMTIuMy0yLjktMzEuMS0zLjgtMzYuMiA3LjItMjguNi0xLjktNTUuMS00LjgtNjguNy0yNC4yLTEwLjYtMTUuNC0yMS40LTQxLjQtMjYuMy02MS40em0yMjIgMTI0LjFjNC4xLTMgMTEuMS0yLjkgMTcuNC0zLjYtNS40LTIuNy0xMy0zLjctMTkuMy0yLjItLjEtNC4yLTItNi44LTMuMi0xMC4yIDEwLjYtMy44IDM1LjUtMjguNSA0OS42LTIwLjMgNi43IDMuOSA5LjUgMjYuMiAxMC4xIDM3IC40IDktLjggMTgtNC41IDIyLjgtMTguOC0uNi0zNS44LTIuOC01MC43LTcgLjktNi4xLTEtMTIuMSAuNi0xNi41em0tMTcuMi0yMGMtMTYuOCAuOC0yNi0xLjItMzguMy0xMC44IC4yLS44IDEuNC0uNSAxLjUtMS40IDE4IDggNDAuOC0zLjMgNTktNC45LTcuOSA1LjEtMTQuNiAxMS42LTIyLjIgMTcuMXptLTEyLjEgMzMuMmMtMS42LTkuNC0zLjUtMTItMi44LTIwLjIgMjUtMTYuNiAyOS43IDI4LjYgMi44IDIwLjJ6TTE5NC4zIDQzOC42Yy0xMS42LS43LTQ4LjEtMTQtMzguNS0yMy43IDkuNCA2LjUgMjcuNSA0LjkgNDEuMyA3LjMgLjggNC40LTIuOCAxMC4yLTIuOCAxNi40ek0yNiA0OTcuMWMtNC4zLTEyLjctOS4yLTI1LjEtMTQuOC0zNi45IDMwLjgtMjMuOCA2NS4zLTQ4LjkgMTAyLjItNjMuNSAyLjgtMS4xIDIzLjIgMjUuNCAyNi4yIDI3LjYgMTYuNSAxMS43IDM3IDIxIDU2LjIgMzAuMiAxLjIgOC44IDMuOSAyMC4yIDguNyAzNS41IC43IDIuMyAxLjQgNC43IDIuMiA3LjJsLTE4MC43IDAgMC0uMXptMjQwLjYgNS43bC0uOCAwYy4zLS4yIC41LS40IC44LS41bDAgLjV6bTcuNS01LjdjMi4xLTEuNCA0LjMtMi44IDYuNC00LjMgMS4xIDEuNCAyLjIgMi44IDMuMiA0LjNsLTkuNiAwem0xNS4xLTI0LjdjLTEwLjggNy4zLTIwLjYgMTguMy0zMy4zIDI1LjItNiAzLjMtMjcgMTEuNy0zMy40IDEwLjItMy42LS44LTMuOS01LjMtNS40LTkuNS0zLjEtOS0xMC4xLTIzLjQtMTAuOC0zNy0uOC0xNy4yLTIuNS00NiAxNi00Mi40IDE0LjkgMi45IDMyLjMgOS43IDQzLjkgMTYuMSA3LjEgMy45IDExLjEgOC42IDIxLjkgOS41LS4xIDEuNC0uMSAyLjgtLjIgNC4zLTUuOSAzLjktMTUuMyAzLjgtMjEuOCA3LjEgOS41IC40IDE3IDIuNyAyMy41IDUuOS0uMSAzLjQtLjMgNy0uNCAxMC42em01My40IDI0LjdsLTE0IDBjLS4xLTMuMi0yLjgtNS44LTYuMS01LjhzLTUuOSAyLjYtNi4xIDUuOGwtMTcuNCAwYy0yLjgtNC40LTUuNy04LjYtOC45LTEyLjUgMi4xLTIuMiA0LTQuNyA2LTYuOSA5IDMuNyAxNC44LTQuOSAyMS43LTQuMiA3LjkgLjggMTQuMiAxMS43IDI1LjQgMTFsLS42IDEyLjZ6bTguNyAwYy4yLTQgLjQtNy44IC42LTExLjUgMTUuNi03LjMgMjkgMS4zIDM1LjcgMTEuNWwtMzYuMyAwem04My40LTM3Yy0yLjMgMTEuMi01LjggMjQtOS45IDM3LjEtLjItLjEtLjQtLjEtLjYtLjFsLTI3LjkgMGMuNi0xLjEgMS4yLTIuMiAxLjktMy4zLTIuNi02LjEtOS04LjctMTAuOS0xNS41IDEyLjEtMjIuNyA2LjUtOTMuNC0yNC4yLTc4LjUgNC4zLTYuMyAxNS42LTExLjUgMjAuOC0xOS4zIDEzIDEwLjQgMjAuOCAyMC4zIDMzLjIgMzEuNCA2LjggNiAyMCAxMy4zIDIxLjQgMjMuMSAuOCA1LjUtMi42IDE4LjktMy44IDI1LjF6TTE5MC41IDEzMC41YzUuNC0xNC45IDI3LjItMzQuNyA0NS0zMiA3LjcgMS4yIDE4IDguMiAxMi4yIDE3LjctMzAuMi03LTQ1LjIgMTIuNi01NC40IDMzLjEtOC4xLTItNC45LTEzLjEtMi44LTE4Ljh6bTE4NC4xIDYzLjFjOC4yLTMuNiAyMi40LS43IDI5LjYtNS4zLTQuMi0xMS41LTEwLjMtMjEuNC05LjMtMzcuNyAuNSAwIDEgMCAxLjQgLjEgNi44IDE0LjIgMTIuNyAyOS4yIDIxLjQgNDEuNy01LjcgMTMuNS00My42IDI1LjQtNDMuMSAxLjJ6bS05Ni44IDIuN2MtNi44LTEwLjktMTktMzIuNS0xNC41LTQ1LjMgNi41IDExLjkgOC42IDI0LjQgMTcuOCAzMy4zIDQuMSA0IDEyLjIgOSA4LjIgMjAuMi0uOSAyLjctNy44IDguNi0xMS43IDkuNy0xNC40IDQuMy00Ny45IC45LTM2LjYtMTcuMSAxMS45IC43IDI3LjkgNy44IDM2LjgtLjh6bTI3LjMgNzBjMy44IDYuNiAxLjQgMTguNyAxMi4xIDIwLjYgMjAuMiAzLjQgNDMuNi0xMi4zIDU4LjEtMTcuOCA5LTE1LjItLjgtMjAuNy04LjktMzAuNS0xNi42LTIwLTM4LjgtNDQuOC0zOC03NC43IDYuNy00LjkgNy4zIDcuNCA4LjIgOS43IDguNyAyMC4zIDMwLjQgNDYuMiA0Ni4zIDYzLjUgMy45IDQuMyAxMC4zIDguNCAxMSAxMS4yIDIuMSA4LjItNS40IDE4LTQuNSAyMy41LTIxLjcgMTMuOS00NS44IDI5LjEtODEuNCAyNS42LTcuNC02LjctMTAuMy0yMS40LTIuOS0zMS4xem0tMjAxLjMtOS4yYy02LjgtMy45LTguNC0yMS0xNi40LTIxLjQtMTEuNC0uNy05LjMgMjIuMi05LjMgMzUuNS03LjgtNy4xLTkuMi0yOS4xLTMuNS00MC4zLTYuNi0zLjItOS41IDMuNi0xMy4xIDUuOSA0LjctMzQuMSA0OS44LTE1LjggNDIuMyAyMC4zem0yOTkuNiAyOC44Yy0xMC4xIDE5LjItMjQuNCA0MC40LTU0IDQxLS42LTYuMi0xLjEtMTUuNiAwLTE5LjQgMjIuNy0yLjIgMzYuNi0xMy43IDU0LTIxLjZ6TTI2MS41IDI5OC4zYzE4LjkgOS45IDUzLjYgMTEgNzkuMyAxMC4yIDEuNCA1LjYgMS4zIDEyLjYgMS40IDE5LjQtMzMgMS44LTcyLTYuNC04MC43LTI5LjZ6TTM1My43IDM0NWMtMS43IDQuMy01LjMgOS4zLTkuOCAxMS4xLTEyLjEgNC45LTQ1LjYgOC43LTYyLjQtLjMtMTAuNy01LjctMTcuNS0xOC41LTIzLjQtMjYtMi44LTMuNi0xNi45LTEyLjktLjItMTIuOSAxMy4xIDMyLjcgNTggMjkgOTUuOCAyOC4xelwiXVxufTtcbnZhciBmYVNsaWRlc2hhcmUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc2xpZGVzaGFyZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFlN1wiLCBcIk0xODcuOSAxNTMuN2MtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43czYxLjctMjYgNjEuNy01Ny43YzAtMzItMjcuNy01Ny43LTYxLjctNTcuN3ptMTQzLjQgMGMtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43IDM0LjMgMCA2MS43LTI2IDYxLjctNTcuNyAuMS0zMi0yNy40LTU3LjctNjEuNy01Ny43em0xNTYuNiA5MGwtNiA0LjMgMC0xOTguM2MwLTI3LjQtMjAuNi00OS43LTQ2LTQ5LjdMNzYuOCAwYy0yNS40IDAtNDYgMjIuMy00NiA0OS43bDAgMTk4LjNjLTItMS40LTQuMy0yLjktNi4zLTQuMy0xNS4xLTEwLjYtMjUuMSA0LTE2IDE3LjcgMTguMyAyMi42IDUzLjEgNTAuMyAxMDYuMyA3Mi01Ni4zIDE5MS43IDEzNy40IDIyMi4zIDEzNC4zIDEyNC4xIDAtLjcgLjMtNTYuNiAuMy05Ni42IDUuMSAxLjEgOS40IDIuMyAxMy43IDMuMSAwIDM5LjcgLjMgOTIuOCAuMyA5My41LTMuMSA5OC4zIDE5MC42IDY3LjcgMTM0LjMtMTI0IDUzLjEtMjEuNyA4OC00OS40IDEwNi4zLTcyIDkuMS0xMy44LS45LTI4LjMtMTYuMS0xNy44em0tMzAuNSAxOS4yYy02OC45IDM3LjQtMTI4LjMgMzEuMS0xNjAuNiAyOS43LTIzLjctLjktMzIuNiA5LjEtMzMuNyAyNC45LTEwLjMtNy43LTE4LjYtMTUuNS0yMC4zLTE3LjEtNS4xLTUuNC0xMy43LTgtMjcuMS03LjctMzEuNyAxLjEtODkuNyA3LjQtMTU3LjQtMjhsMC0xOTIuNGMwLTM0LjkgOC45LTQ1LjcgNDAuNi00NS43bDMxNy43IDBjMzAuMyAwIDQwLjkgMTIuOSA0MC45IDQ1LjdsMCAxOTAuNi0uMSAwelwiXVxufTtcbnZhciBmYVViZXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndWJlcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjQwMlwiLCBcIk00MTQuMSAzMkwzMy45IDMyQzE1LjIgMzIgMCA0Ny4yIDAgNjUuOUwwIDQ0NmMwIDE4LjggMTUuMiAzNCAzMy45IDM0TDQxNCA0ODBjMTguNyAwIDMzLjktMTUuMiAzMy45LTMzLjlsMC0zODAuMkM0NDggNDcuMiA0MzIuOCAzMiA0MTQuMSAzMnpNMjM3LjYgMzkxLjFDMTYzIDM5OC42IDk2LjQgMzQ0LjIgODguOSAyNjkuNmw5NC40IDAgMCAyMC40YzAgMy43IDMgNi44IDYuOCA2LjhsNjcuOSAwYzMuNyAwIDYuOC0zIDYuOC02LjhsMC02Ny45YzAtMy43LTMtNi44LTYuOC02LjhsLTY3LjkgMGMtMy43IDAtNi44IDMtNi44IDYuOGwwIDIwLjQtOTQuNCAwYzctNjkuNCA2NS40LTEyMi4yIDEzNS4xLTEyMi4yczEyOC4xIDUyLjggMTM1LjEgMTIyLjJjNy41IDc0LjUtNDYuOSAxNDEuMS0xMjEuNSAxNDguNnpcIl1cbn07XG52YXIgZmFEaWdpdGFsT2NlYW4gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZGlnaXRhbC1vY2VhbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjM5MVwiLCBcIk04NyA0ODEuOGw3My43IDAgMC03My42LTczLjcgMCAwIDczLjZ6TTI1LjQgMzQ2LjZsMCA2MS42IDYxLjYgMCAwLTYxLjYtNjEuNiAwek00OTEuNiAxNzYuOUM0NjguNiAxMDIuNyA0MDkuMiA0My42IDMzNSAyMC4zIDE2NC45LTMyLjggOCA5My43IDggMjU1LjlsOTUuOCAwYzAtMTAxLjggMTAxLTE4MC41IDIwOC4xLTE0MS43IDM5LjcgMTQuMyA3MS41IDQ2LjEgODUuOCA4NS43IDM5LjEgMTA3LTM5LjcgMjA3LjgtMTQxLjQgMjA4bDAgLjMtLjMgMCAwIDk1LjhjMTYyLjYgMCAyODguOC0xNTYuOCAyMzUuNi0zMjcuMXptLTIzNS4zIDIzMWwwLTk1LjMtOTUuNiAwIDAgOTUuNiA5NS4zIDAgMC0uMyAuMyAwelwiXVxufTtcbnZhciBmYVNvdW5kY2xvdWQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc291bmRjbG91ZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjFiZVwiLCBcIk02NDAuMiAyOTguNmMtMS4zIDIzLjEtMTEuNSA0NC44LTI4LjQgNjAuNXMtMzkuMiAyNC40LTYyLjMgMjQuMWwtMjE4IDBjLTQuOCAwLTkuNC0yLTEyLjgtNS40cy01LjMtOC01LjMtMTIuOGwwLTIzNC44Yy0uMi00IC45LTggMy4xLTExLjRzNS4zLTYuMSA5LTcuN2MwIDAgMjAuMS0xMy45IDYyLjMtMTMuOSAyNS44IDAgNTEuMSA2LjkgNzMuMyAyMC4xIDE3LjMgMTAuMiAzMi4zIDIzLjggNDQuMSA0MC4xczIwIDM0LjggMjQuMiA1NC40YzcuNS0yLjEgMTUuMy0zLjIgMjMuMS0zLjIgMTEuNy0uMSAyMy4zIDIuMiAzNC4yIDYuN3MyMC41IDExLjMgMjguNyAxOS43IDE0LjYgMTguMyAxOC45IDI5LjMgNi4zIDIyLjYgNS45IDM0LjN6bS0zNTQtMTUzLjVjLjEtMSAwLTItLjMtMi45cy0uOC0xLjgtMS41LTIuNi0xLjUtMS4zLTIuNC0xLjdjLTEuOC0uOC00LS44LTUuOCAwLS45IC40LTEuNyAxLTIuNCAxLjdzLTEuMiAxLjYtMS41IDIuNi0uNCAxLjktLjMgMi45Yy02IDc4LjktMTAuNiAxNTIuOSAwIDIzMS42IC4yIDEuNyAxIDMuMyAyLjMgNC41IDIuNiAyLjQgNi44IDIuNCA5LjQgMCAxLjMtMS4yIDIuMS0yLjggMi4zLTQuNSAxMS4zLTc5LjQgNi42LTE1MiAwLTIzMS42bC4yIDB6bS00NCAyNy4zYy0uMi0xLjgtMS4xLTMuNS0yLjQtNC43cy0zLjEtMS45LTUtMS45LTMuNiAuNy01IDEuOS0yLjIgMi45LTIuNCA0LjdjLTcuOSA2Ny45LTcuOSAxMzYuNSAwIDIwNC40IC4zIDEuOCAxLjIgMy40IDIuNSA0LjVzMy4xIDEuOCA0LjggMS44IDMuNS0uNiA0LjgtMS44IDIuMi0yLjggMi41LTQuNWM4LjgtNjcuOCA4LjgtMTM2LjUgLjEtMjA0LjRsLjEgMHptLTQ0LjMtNi45Yy0uMi0xLjgtMS0zLjQtMi4zLTQuNnMtMy0xLjgtNC44LTEuOC0zLjUgLjctNC44IDEuOC0yLjEgMi44LTIuMyA0LjZjLTYuNyA3Mi0xMC4yIDEzOS4zIDAgMjExLjEgMCAxLjkgLjcgMy43IDIuMSA1czMuMSAyLjEgNSAyLjEgMy43LS43IDUtMi4xIDIuMS0zLjEgMi4xLTVjMTAuNS03Mi44IDcuMy0xMzguMiAuMS0yMTEuMWwtLjEgMHptLTQ0IDIwLjZjMC0xLjktLjgtMy44LTIuMS01LjJzLTMuMi0yLjEtNS4yLTIuMS0zLjggLjgtNS4yIDIuMS0yLjEgMy4yLTIuMSA1LjJjLTguMSA2My4zLTguMSAxMjcuNSAwIDE5MC44IC4yIDEuOCAxIDMuNCAyLjQgNC42czMuMSAxLjkgNC44IDEuOSAzLjUtLjcgNC44LTEuOSAyLjItMi44IDIuNC00LjZjOC44LTYzLjMgOC45LTEyNy41IC4zLTE5MC44bC0uMSAwem0tNDQuNSA0Ny42YzAtMS45LS44LTMuOC0yLjEtNS4xcy0zLjItMi4xLTUuMS0yLjEtMy44IC44LTUuMSAyLjEtMi4xIDMuMi0yLjEgNS4xYy0xMC41IDQ5LjItNS41IDkzLjkgLjQgMTQzLjYgLjMgMS42IDEuMSAzLjEgMi4zIDQuMnMyLjggMS43IDQuNSAxLjcgMy4yLS42IDQuNS0xLjcgMi4xLTIuNSAyLjMtNC4yYzYuNi01MC40IDExLjYtOTQuMSAuNC0xNDMuNnptLTQ0LjEtNy41Yy0uMi0xLjgtMS4xLTMuNS0yLjQtNC44cy0zLjItMS45LTUtMS45LTMuNiAuNy01IDEuOS0yLjIgMi45LTIuNCA0LjhjLTkuMyA1MC4yLTYuMiA5NC40IC4zIDE0NC41IC43IDcuNiAxMy42IDcuNSAxNC40IDAgNy4yLTUwLjkgMTAuNS05My44IC4zLTE0NC41bC0uMiAwek0yMC43IDI1MC44Yy0uMi0xLjgtMS4xLTMuNS0yLjQtNC44cy0zLjItMS45LTUtMS45LTMuNiAuNy01IDEuOS0yLjMgMi45LTIuNCA0LjhjLTguNSAzMy43LTUuOSA2MS42IC42IDk1LjQgLjIgMS43IDEgMy4zIDIuMyA0LjRzMi45IDEuOCA0LjcgMS44IDMuNC0uNiA0LjctMS44IDIuMS0yLjcgMi4zLTQuNGM3LjUtMzQuNSAxMS4yLTYxLjggLjQtOTUuNGwtLjIgMHpcIl1cbn07XG52YXIgZmFTcXVhcmVGaWdtYSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtZmlnbWEnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU3ZTRcIiwgXCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTczLjcgOTZjLTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOCAwIDIxIDEwLjggMzkuNCAyNy4yIDUwLjEtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjFzMTAuOCAzOS41IDI3LjIgNTAuMWMtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjEgMCAzMy4xIDI3LjEgNTkuOCA2MC4xIDU5LjggMzMuMiAwIDYwLjYtMjYuOSA2MC42LTYwLjNsMC01NS43YzEwLjYgOS44IDI0LjggMTUuOCA0MC40IDE1LjhsMS4xIDBjMzMgMCA1OS44LTI2LjggNTkuOC01OS44IDAtMjEtMTAuOC0zOS41LTI3LjItNTAuMSAxNi40LTEwLjcgMjcuMi0yOS4xIDI3LjItNTAuMSAwLTMzLTI2LjgtNTkuOC01OS44LTU5LjhMMTczLjcgOTZ6bTQxLjYgMjE5LjhsMCAzOS45YzAgMjIuNi0xOC42IDQxLTQxLjMgNDEtMjIuNCAwLTQwLjctMTguMi00MC43LTQwLjUgMC0yMi4zIDE4LjEtNDAuNCA0MC4zLTQwLjRsNDEuNyAwem0wLTEwMC4zbDAgODAuOS00MS43IDBjLTIyLjMtLjEtNDAuMy0xOC4yLTQwLjMtNDAuNSAwLTIyLjMgMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDB6bTYwLjggMGMyMi4zIDAgNDAuNSAxOC4xIDQwLjUgNDAuNXMtMTguMSA0MC41LTQwLjUgNDAuNWwtMS4xIDBjLTIyLjMgMC00MC40LTE4LjEtNDAuNC00MC41czE4LjEtNDAuNSA0MC40LTQwLjVsMS4xIDB6bS02MC44LTE5LjNsLTQxLjYgMGMtMjIuMyAwLTQwLjUtMTguMS00MC41LTQwLjRzMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDAgMCA4MC45em02MC44LTgwLjljMjIuMyAwIDQwLjUgMTguMSA0MC41IDQwLjVzLTE4LjEgNDAuNC00MC41IDQwLjRsLTQxLjUgMCAwLTgwLjkgNDEuNSAwelwiXVxufTtcbnZhciBmYUNyZWF0aXZlQ29tbW9uc1NhID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NyZWF0aXZlLWNvbW1vbnMtc2EnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0ZWZcIiwgXCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zek0xNDUuNyAyMjFjMTMtODMuOSA4MC41LTk1LjcgMTA4LjktOTUuNyA5OS44IDAgMTI3LjUgODIuNSAxMjcuNSAxMzQuMiAwIDYzLjYtNDEgMTMyLjktMTI4LjkgMTMyLjktMzguOSAwLTk5LjEtMjAtMTA5LjQtOTdsNjIuNSAwYzEuNSAzMC4xIDE5LjYgNDUuMiA1NC41IDQ1LjIgMjMuMyAwIDU4LTE4LjIgNTgtODIuOCAwLTgyLjUtNDkuMS04MC42LTU2LjctODAuNi0zMy4xIDAtNTEuNyAxNC42LTU1LjggNDMuOGwxOC4yIDAtNDkuMiA0OS4yLTQ5LTQ5LjIgMTkuNCAwelwiXVxufTtcbnZhciBmYUNocm9tZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjaHJvbWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyNjhcIiwgXCJNMCAyNTZjMC00Ni42IDEyLjUtOTAuNCAzNC4zLTEyOC45TDE0NC4xIDMxOC4zYzIxLjkgMzkuMiA2My44IDY1LjcgMTExLjkgNjUuNyAxNC4zIDAgMjcuMS0yLjMgNDAuOC02LjZMMjIwLjUgNTA5LjZDOTUuOSA0OTIuMyAwIDM4NS4zIDAgMjU2em0zNjUuMSA2NS42YzEyLjMtMTkuMiAxOC45LTQyLjUgMTguOS02NS42IDAtMzguMi0xNi44LTcyLjUtNDMuMy05NmwxNTIuNyAwYzEyIDI5LjYgMTguNiA2Mi4xIDE4LjYgOTYgMCAxNDEuNC0xMTQuNiAyNTUuMS0yNTYgMjU2TDM2NS4xIDMyMS42ek00NzcuOCAxMjhMMjU2IDEyOGMtNjIuOSAwLTExMy43IDQ0LjEtMTI1LjUgMTAyLjdMNTQuMiA5OC41QzEwMSAzOC41IDE3NCAwIDI1NiAwIDM1MC44IDAgNDMzLjUgNTEuNSA0NzcuOCAxMjh6TTM0NCAyNTZhODggODggMCAxIDEgLTE3NiAwIDg4IDg4IDAgMSAxIDE3NiAwelwiXVxufTtcbnZhciBmYVRyYWRlRmVkZXJhdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd0cmFkZS1mZWRlcmF0aW9uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTEzXCIsIFwiTTI1NiA4LjhhMjQ3LjIgMjQ3LjIgMCAxIDAgMCA0OTQuNCAyNDcuMiAyNDcuMiAwIDEgMCAwLTQ5NC40em0wIDExLjZhMjM1LjYgMjM1LjYgMCAxIDEgMCA0NzEuMiAyMzUuNiAyMzUuNiAwIDEgMSAwLTQ3MS4yek00MTEuMSAxNjMuMWwwLTQ2LjgtMTkzLjggMCAwIDgxLjctMTU1LjEgMCAzNi43IDQ2IDExNy43IDAgMCAxOTYuOCA0OC44IDAgMC0xOTUuOCA4My4zIDAgMC00Ny04My4zIDAgMC0zNC44IDE0NS43IDAgMC0uMXptLTczLjMgNDUuMWwwIDIzLjktODIuOSAwIDAgMTk3LjQtMjYuOCAwIDAtMTk3LjQtMTIzLjggMC0yMC4xLTIzLjkgMTQzLjkgMCAwLTgwLjYgMTcxLjggMCAwIDI0LjQtMTQ1IDAgMCA1Ni4yIDgyLjkgMHptLTE2MS4zLTY5bC0xMi40LTIwLjcgMi4xIDIzLjgtMjMuNSA1LjQgMjMuMyA1LjQtMi4xIDI0IDEyLjMtMjAuNSAyMi4yIDkuNS0xNS43LTE4LjEgMTUuOC0xOC4xLTIyIDkuM3ptLTI5LjYtMTkuN2w5LjMtMTEuNS0xMi43IDUuOS04LTEyLjQgMS43IDEzLjktMTQuMyAzLjggMTMuNyAyLjctLjggMTQuNyA2LjgtMTIuMiAxMy44IDUuMy05LjUtMTAuMnpNMzEyLjMgMjY0LjdsLTEzLjEgNS42LTcuMy0xMi4yIDEuMyAxNC4yLTEzLjkgMy4yIDEzLjkgMy4yLTEuMiAxNC4yIDcuMy0xMi4yIDEzLjEgNS41LTkuNC0xMC43IDkuMy0xMC44em0xMDYuOS03Ny4ybC0yMC45IDkuMS0xMi0xOS42IDIuMiAyMi43LTIyLjMgNS40IDIyLjIgNC45LTEuOCAyMi45IDExLjUtMTkuNiAyMS4yIDguOC0xNS4xLTE3IDE1LTE3LjZ6TTI1NiAyOS45YTIyNi4xIDIyNi4xIDAgMSAwIDAgNDUyLjIgMjI2LjEgMjI2LjEgMCAxIDAgMC00NTIuMnpNMzUwLjYgMTk2bDAgNTEtODMuMyAwIDAgMTk1LjctNTIuNyAwIDAtMTk2LjgtMTE2LjcgMC00MC00OS45IDE1Ny40IDAgMC04MS42IDE5Ny44IDAgMCA1MC43LTE0NS43IDAgMCAzMC45IDgzLjIgMHpNMjU2IDQzLjJjNjAuMyAwIDExNC44IDI1IDE1My42IDY1LjJsLTE5OS4xIDAgMCA4MS42LTE1Ny40IDBDODEuMSAxMDQuOCAxNjEuNCA0My4yIDI1NiA0My4yem0wIDQyNy4xYy0xMTcuOSAwLTIxMy42LTk1LjYtMjEzLjYtMjEzLjUgMC0yMS4yIDMuMS00MS44IDguOS02MS4xbDQzLjggNTYuMyAxMTQuNyAwIDAgMTk2LjggNjQuNiAwIDAtMTk1LjggODMuMyAwIDAtNjIuNy04My4yIDAgMC0xOS4yIDE0NS42IDAgMC01MC44YzMwLjggMzcgNDkuMyA4NC42IDQ5LjMgMTM2LjUgLjEgMTE3LjktOTUuNSAyMTMuNS0yMTMuNCAyMTMuNXpNMTg2LjggMjc1bC0xMS0yMS40IDEuNyAyNC41LTIzLjcgMy45IDIzLjggNS45LTMuNyAyMy44IDEzLTIwLjkgMjEuNSAxMC44LTE1LjgtMTguOCAxNi45LTE3LjEtMjIuNyA5LjN6XCJdXG59O1xudmFyIGZhVmFhZGluID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3ZhYWRpbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjQwOFwiLCBcIk0yMjQuNSAxNDAuN0MyMjYgMTIzLjEgMjI5LjQgODggMjc0LjMgODhsOTguNiAwYzIwLjcgMCAzMi4xLTcuOCAzMi4xLTIxLjZsMC0xMi4zYzAtMTIuMiA5LjMtMjIuMSAyMS41LTIyLjFTNDQ4IDQxLjkgNDQ4IDU0LjFsMCAzNi41YzAgNDIuOS0yMS41IDYyLTY2LjggNjJsLTEwMC41IDBjLTMwLjEgMC0zMyAxNC43LTMzIDI3LjEgMCAxLjMtLjEgMi41LS4yIDMuNy0uNyAxMi4zLTEwLjkgMjIuMi0yMy40IDIyLjJzLTIyLjctOS44LTIzLjQtMjIuMmMtLjEtMS4yLS4yLTIuNC0uMi0zLjcgMC0xMi4zLTMtMjcuMS0zMy0yNy4xbC0xMDAuNyAwQzIxLjUgMTUyLjYgMCAxMzMuNSAwIDkwLjZMMCA1NC4xQzAgNDEuOSA5LjQgMzIgMjEuNiAzMnMyMS41IDkuOSAyMS41IDIyLjFsMCAxMi4zQzQzLjEgODAuMiA1NC41IDg4IDc1LjIgODhsOTguNiAwYzQ0LjggMCA0OC4zIDM1LjEgNDkuOCA1Mi43bC45IDB6TTIyNCA0NTZjMTEuNSAwIDIxLjQtNyAyNS43LTE2LjMgMS4xLTEuOCA5Ny4xLTE2OS42IDk4LjItMTcxLjQgMTEuOS0xOS42LTMuMi00NC4zLTI3LjItNDQuMy0xMy45IDAtMjMuMyA2LjQtMjkuOCAyMC4zTDIyNCAzNjIgMTU3LjEgMjQ0LjNjLTYuNC0xMy45LTE1LjktMjAuMy0yOS44LTIwLjMtMjQgMC0zOS4xIDI0LjYtMjcuMiA0NC4zIDEuMSAxLjkgOTcuMSAxNjkuNiA5OC4yIDE3MS40IDQuMyA5LjMgMTQuMiAxNi4zIDI1LjcgMTYuM3pcIl1cbn07XG52YXIgZmFEZXZpYW50YXJ0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2RldmlhbnRhcnQnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYxYmRcIiwgXCJNMzIwIDkzLjJsLTk4LjIgMTc5LjEgNy40IDkuNSA5MC44IDAgMCAxMjcuNy0xNjAuOSAwLTEzLjUgOS4yLTQzLjcgODRjLS4zIDAtOC42IDguNi05LjIgOS4ybC05Mi43IDAgMC05My4yIDkzLjItMTc5LjQtNy40LTkuMi04NS44IDAgMC0xMjcuNiAxNTYgMCAxMy41LTkuMiA0My43LTg0Yy4zIDAgOC42LTguNiA5LjItOS4ybDk3LjYgMCAwIDkzLjF6XCJdXG59O1xudmFyIGZhTWVkaXVtID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ21lZGl1bScsXG4gIGljb246IFs0NDgsIDUxMiwgWzYyNDA3LCBcIm1lZGl1bS1tXCJdLCBcImYyM2FcIiwgXCJNMzY5LjQgMzJjNDMuNCAwIDc4LjYgMzUuMiA3OC42IDc4LjZsMCA4My44Yy0xLjktLjEtMy44LS4yLTUuNy0uMmwtLjQgMGMtMTAgMC0yMi4zIDIuNC0zMS4xIDYuOC0xMCA0LjYtMTguNyAxMS41LTI2IDIwLjYtMTEuOCAxNC42LTE4LjkgMzQuMy0yMC42IDU2LjQtLjEgLjctLjEgMS4zLS4yIDJzLS4xIDEuMi0uMSAxLjljLS4xIDEuMi0uMSAyLjQtLjEgMy42IDAgMS45LS4xIDMuOCAwIDUuOCAxLjIgNTAuMSAyOC4yIDkwLjIgNzYuMyA5MC4yIDIuNyAwIDUuMy0uMSA3LjktLjRsMCAyMC40YzAgNDMuNC0zNS4yIDc4LjYtNzguNiA3OC42TDc4LjYgNDgwQzM1LjIgNDgwIDAgNDQ0LjggMCA0MDEuNEwwIDExMC42QzAgNjcuMiAzNS4yIDMyIDc4LjYgMzJsMjkwLjggMHpNODIuMyAxMzguOWwuMyAuMWMxMy4yIDMgMTkuOCA3LjQgMTkuOCAyMy40bDAgMTg3LjJjMCAxNi02LjcgMjAuNC0xOS45IDIzLjRsLS4zIC4xIDAgMi44IDUyLjggMCAwLTIuOC0uMy0uMWMtMTMuMi0zLTE5LjktNy40LTE5LjktMjMuNGwwLTE3Ni4zIDg2LjEgMjAyLjUgNC45IDAgODguNi0yMDguMiAwIDE4Ni42Yy0xLjEgMTIuNi03LjggMTYuNS0xOS43IDE5LjJsLS4zIC4xIDAgMi43IDkxLjkgMCAwLTIuNy0uMy0uMWMtMTEuOS0yLjctMTguNy02LjYtMTkuOS0xOS4ybC0uMS0xOTEuOCAuMSAwYzAtMTYgNi43LTIwLjQgMTkuOS0yMy40bC4zLS4xIDAtMi43LTcyLjIgMC02NyAxNTcuNC02Ny0xNTcuNC03Ny44IDAgMCAyLjd6TTQ0OCAzNDAuM2MtMjUuMS03LjQtNDMtMzUuMS00MS4yLTY3LjhsMCAwIDQxLjEgMCAwIDY3Ljh6bS02LjQtMTM1LjZjMi4zIDAgNC40IC4zIDYuNCAuOWwwIDU3LjQtNDAuMiAwYzEuNS0zMy42IDEzLjYtNTcuOSAzMy44LTU4LjN6XCJdXG59O1xudmFyIGZhTWVkaXVtTSA9IGZhTWVkaXVtO1xudmFyIGZhT3BlbmNhcnQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnb3BlbmNhcnQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyM2RcIiwgXCJNMzMxLjggNDQwLjRhNDUuOCA0NS44IDAgMSAxIDkxLjUgLjMgNDUuOCA0NS44IDAgMSAxIC05MS41LS4zek0xNjkuNCAzOTQuOWE0NS43IDQ1LjcgMCAxIDAgLjMgOTEuMyA0NS43IDQ1LjcgMCAxIDAgLS4zLTkxLjN6bTI5MS43LTI3MGMtMzAyLjIgMC0zNzkuMi0xMi44LTQ2MS4xLTk5LjIgMzQuNCA1MS43IDUzLjMgMTQ4LjkgMzczLjEgMTQ0LjIgMzMzLjMtNSAxMzAgODYuMSA3MC44IDE4OC45IDE4Ni43LTE2Ni43IDMxOS40LTIzMy45IDE3LjItMjMzLjl6XCJdXG59O1xudmFyIGZhWUNvbWJpbmF0b3IgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAneS1jb21iaW5hdG9yJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjNiXCIsIFwiTTQ0OCAzMmwwIDQ0OC00NDggMCAwLTQ0OCA0NDggMHpNMjM2IDI4Ny41bDc3LjUtMTQ1LjUtMzIuNyAwLTQ1LjggOTFjLTQuNyA5LjMtOSAxOC4zLTEyLjggMjYuOGwtMTIuMi0yNi44LTQ1LjItOTEtMzUgMCA3Ni43IDE0My44IDAgOTQuNSAyOS41IDAgMC05Mi44elwiXVxufTtcbnZhciBmYUxpbmUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnbGluZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjNjMFwiLCBcIk0zMTEgMTk2LjhsMCA4MS4zYzAgMi4xLTEuNiAzLjctMy43IDMuN2wtMTMgMGMtMS4zIDAtMi40LS43LTMtMS41TDI1NCAyMzAgMjU0IDI3OC4yYzAgMi4xLTEuNiAzLjctMy43IDMuN2wtMTMgMGMtMi4xIDAtMy43LTEuNi0zLjctMy43bDAtODEuM2MwLTIuMSAxLjYtMy43IDMuNy0zLjdsMTIuOSAwYzEuMSAwIDIuNCAuNiAzIDEuNmwzNy4zIDUwLjMgMC00OC4yYzAtMi4xIDEuNi0zLjcgMy43LTMuN2wxMyAwYzIuMS0uMSAzLjggMS42IDMuOCAzLjVsMCAuMXptLTkzLjctMy43bC0xMyAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA4MS4zYzAgMi4xIDEuNiAzLjcgMy43IDMuN2wxMyAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTgxLjNjMC0xLjktMS42LTMuNy0zLjctMy43em0tMzEuNCA2OC4xbC0zNS42IDAgMC02NC40YzAtMi4xLTEuNi0zLjctMy43LTMuN2wtMTMgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDEgLjMgMS44IDEgMi41IC43IC42IDEuNSAxIDIuNSAxbDUyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xM2MwLTEuOS0xLjYtMy43LTMuNS0zLjdsLjEgMHptMTkzLjctNjguMWwtNTIuMyAwYy0xLjkgMC0zLjcgMS42LTMuNyAzLjdsMCA4MS4zYzAgMS45IDEuNiAzLjcgMy43IDMuN2w1Mi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTMuMWMwLTIuMS0xLjYtMy43LTMuNy0zLjdsLTM1LjUgMCAwLTEzLjYgMzUuNSAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzLjFjMC0yLjEtMS42LTMuNy0zLjctMy43bC0zNS41IDAgMC0xMy43IDM1LjUgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xM2MtLjEtMS45LTEuNy0zLjctMy43LTMuN2wuMSAwek01MTIgOTMuNGwwIDMyNmMtLjEgNTEuMi00Mi4xIDkyLjctOTMuNCA5Mi42bC0zMjYgMEM0MS40IDUxMS45LS4xIDQ2OS44IDAgNDE4LjZsMC0zMjZDLjEgNDEuNCA0Mi4yLS4xIDkzLjQgMGwzMjYgMGM1MS4yIC4xIDkyLjcgNDIuMSA5Mi42IDkzLjR6TTQ0MS42IDIzMy41YzAtODMuNC04My43LTE1MS4zLTE4Ni40LTE1MS4zUzY4LjggMTUwLjEgNjguOCAyMzMuNWMwIDc0LjcgNjYuMyAxMzcuNCAxNTUuOSAxNDkuMyAyMS44IDQuNyAxOS4zIDEyLjcgMTQuNCA0Mi4xLS44IDQuNy0zLjggMTguNCAxNi4xIDEwLjFzMTA3LjMtNjMuMiAxNDYuNS0xMDguMmMyNy0yOS43IDM5LjktNTkuOCAzOS45LTkzLjFsMC0uMnpcIl1cbn07XG52YXIgZmFBbWlsaWEgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYW1pbGlhJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMzZkXCIsIFwiTTI0MC4yIDMyYy02MS45IDAtMTMxLjUgMTYuOS0xODQuMiA1NS40LTUuMSAzLjEtOS4xIDkuMi03LjIgMTkuNCAxLjEgNS4xIDUuMSAyNy40IDEwLjIgMzkuNiA0LjEgMTAuMiAxNC4yIDEwLjIgMjAuMyA2LjEgMzIuNS0yMi4zIDk2LjUtNDcuNyAxNTIuMy00Ny43IDU3LjkgMCA1OC45IDI4LjQgNTguOSA3My4xbDAgMzguNUMyMDMuMSAyMjcuNyA3OC4zIDI1MSA0Ni44IDI2NC4yIDExLjMgMjgwLjUgMTYuNCAzNTcuNyAxNi40IDM3NlMzMS42IDQ4MCAxNDEuMyA0ODBjNDcuOCAwIDExMy43LTIwLjcgMTUzLjMtNDIuMWwwIDI1LjRjMCAzIDIuMSA4LjIgNi4xIDkuMSAzLjEgMSA1MC43IDIgNTkuOSAyczYyLjUgLjMgNjYuNS0uN2M0LjEtMSA1LjEtNi4xIDUuMS05LjFsMC0yOTYuNmMtLjEtODAuMy01Ny45LTEzNi0xOTItMTM2em01MC4yIDM0OGMtMjEuNCAxMy4yLTQ4LjcgMjQuNC03OS4xIDI0LjQtNTIuOCAwLTU4LjktMzMuNS01OS00NC43IDAtMTIuMi0zLTQyLjcgMTguMy01Mi45IDI0LjMtMTMuMiA3NS4xLTI5LjQgMTE5LjgtMzMuNWwwIDEwNi43elwiXVxufTtcbnZhciBmYUFzeW1tZXRyaWsgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYXN5bW1ldHJpaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjM3MlwiLCBcIk01MTcuNSAzMDkuMmMzOC44LTQwIDU4LjEtODAgNTguNS0xMTYuMSAuOC02NS41LTU5LjQtMTE4LjItMTY5LjQtMTM1LTEyOC43LTE5LjctMjg4LjUgMTUuNS00MDYuNiA4Mi40IDUyLTI2LjUgMTEwLjYtNDguMiAxNzAuNy01OC4yIDc0LjUtMjAuNSAxNTMtMjUuNCAyMjEuMy0xNC44IDE1Mi41IDIzLjggMTk2LjggMTI3LjUgOTguOCAyMzEuNy0xMC4yIDEwLjgtMjIgMjEuMS0zNSAzMC42TDMwNC45IDEwMy40IDExNC43IDM4OC45Yy02NS42LTI5LjQtNzYuNS05MC4yLTE5LjEtMTUxLjIgMjAuOC0yMi4yIDQ4LjMtNDEuOSA3OS41LTU4LjEgMjAtMTIuMiAzOS43LTIyLjYgNjItMzAuNy02NS4xIDIwLjMtMTIyLjcgNTIuOS0xNjEuNiA5Mi45LTI3LjcgMjguNi00MS40IDU3LjEtNDEuNyA4Mi45LS41IDM1LjEgMjMuNCA2NS4xIDY4LjQgODNsLTM0LjUgNTEuNyAxMDEuNiAwIDIyLTM0LjRjMjIuMiAxIDQ1LjMgMCA2OC42LTIuN2wtMjIuOCAzNy4xIDEzNS41IDAtMzIuNi01My4xYzE4LjYtNS4zIDM2LjktMTEuNSA1NC41LTE4LjdsNDUuOSA3MS44IDEwMS42IDAtNzMuNC0xMTAuNGMxOC41LTEyLjEgMzUtMjUuNSA0OC45LTM5Ljh6TTMyOS45IDM4OS43bC0yNS00MC42LTMyLjcgNTMuM2MtMjMuNCAzLjUtNDYuNyA1LjEtNjkuMiA0LjRsMTAxLjktMTU5LjMgNzguNyAxMjNjLTE3LjIgNy40LTM1LjMgMTMuOS01My43IDE5LjJ6XCJdXG59O1xudmFyIGZhUGhhYnJpY2F0b3IgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncGhhYnJpY2F0b3InLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzZGJcIiwgXCJNMzMxLjEgMjYyLjFsLS4xLTEzczIxLjctMTkuOCAyMS4xLTIxLjJsLTkuNS0yMGMtLjYtMS40LTI5LjUtLjUtMjkuNS0uNWwtOS40LTkuM3MuMi0yOC41LTEuMi0yOS4xbC0yMC4xLTkuMmMtMS40LS42LTIwLjcgMjEtMjAuNyAyMWwtMTMuMS0uMnMtMjAuNS0yMS40LTIxLjktMjAuOGwtMjAgOC4zYy0xLjQgLjUgLjIgMjguOSAuMiAyOC45bC05LjEgOS4xcy0yOS4yLS45LTI5LjcgLjRMMTYwIDIyNi4zYy0uNiAxLjQgMjEgMjEgMjEgMjFsLjEgMTIuOVMxNTkuNCAyODAgMTYwIDI4MS40bDkuNSAyMGMuNiAxLjQgMjkuNSAuNSAyOS41IC41bDkuNCA5LjNzLS4yIDMxLjggMS4yIDMyLjNsMjAuMSA4LjNjMS40IC42IDIwLjctMjMuNSAyMC43LTIzLjVsMTMuMSAuMnMyMC41IDIzLjggMjEuOCAyMy4zbDIwLTcuNWMxLjQtLjYtLjItMzIuMS0uMi0zMi4xbDkuMS05LjFzMjkuMiAuOSAyOS43LS41bDguMS0xOS44Yy43LTEuMS0yMC45LTIwLjctMjAuOS0yMC43em0tNDQuOS04LjdjLjcgMTcuMS0xMi44IDMxLjYtMzAuMSAzMi40cy0zMi4xLTEyLjUtMzIuOC0yOS42IDEyLjgtMzEuNiAzMC4xLTMyLjNjMTcuMy0uOCAzMi4xIDEyLjUgMzIuOCAyOS41em0yMDEuMi0zNy45bC05Ny05Ny0uMSAuMWMtNzUuMS03My4zLTE5NS40LTcyLjgtMjY5LjggMS42LTUwLjkgNTEtMjcuOCAyNy45LTk1LjcgOTUuMy0yMi4zIDIyLjMtMjIuMyA1OC43IDAgODEgNjkuOSA2OS40IDQ2LjQgNDYgOTcuNCA5N2wuMS0uMWM3NS4xIDczLjMgMTk1LjQgNzIuOSAyNjkuOC0xLjYgNTEtNTAuOSAyNy45LTI3LjkgOTUuMy05NS4zIDIyLjMtMjIuMyAyMi4zLTU4LjcgMC04MXpNMzYzLjUgMTQ4LjJhMTUyLjMgMTUyLjMgMCAxIDEgLTIxNSAyMTUuNiAxNTIuMyAxNTIuMyAwIDEgMSAyMTUtMjE1LjZ6XCJdXG59O1xudmFyIGZhQm90cyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdib3RzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMzQwXCIsIFwiTTg2LjMgMTk3LjhjLTgtLjEtMTUuOSAxLjctMjMuMSA1LjFzLTEzLjUgOC42LTE4LjQgMTQuOWwwLTYxLjljMC0yLjItLjktNC4zLTIuNC01LjhzLTMuNi0yLjQtNS44LTIuNGwtMjguNCAwYy0yLjIgMC00LjMgLjktNS44IDIuNFMwIDE1My44IDAgMTU2TDAgMzMzLjZjMCAxLjEgLjIgMi4xIC42IDMuMXMxIDEuOSAxLjggMi43IDEuNyAxLjQgMi43IDEuOCAyLjEgLjYgMy4xIC42bDI4LjQgMGMxLjEgMCAyLjEtLjIgMy4xLS42czEuOS0xIDIuNy0xLjggMS40LTEuNyAxLjgtMi43IC42LTIuMSAuNi0zLjFsMC04LjFjMTEuNiAxMy40IDI1LjkgMTkuOCA0MS42IDE5LjggMzQuNiAwIDYxLjktMjYuMiA2MS45LTczLjggMC00NS45LTI3LTczLjYtNjEuOS03My42ek03MS41IDMwNS43Yy05LjYgMC0yMS4yLTQuOS0yNi43LTEyLjVsMC00M2M1LjUtNy42IDE3LjItMTIuOCAyNi43LTEyLjggMTcuNyAwIDMxLjEgMTMuMSAzMS4xIDM0IDAgMjEuMi0xMy40IDM0LjMtMzEuMSAzNC4zem0xNTYuNC01OWExNy40IDE3LjQgMCAxIDAgMCAzNC44IDE3LjQgMTcuNCAwIDEgMCAwLTM0Ljh6bTQ2LjEtOTBsMC00NC43YzIuOC0xLjIgNS4yLTMuMyA2LjYtNnMxLjktNS44IDEuMy04LjktMi4yLTUuNy00LjYtNy43LTUuNC0zLTguNC0zLTYuMSAxLjEtOC40IDMtNCA0LjctNC42IDcuNy0uMSA2LjEgMS4zIDguOSAzLjggNC44IDYuNiA2bDAgNDQuN2MtMjggMS4zLTU0LjQgMTMuNi03My42IDM0LjFzLTI5LjUgNDcuNy0yOC44IDc1LjggMTIuMyA1NC43IDMyLjQgNzQuMyA0NyAzMC42IDc1LjEgMzAuNiA1NS0xMSA3NS4xLTMwLjYgMzEuNy00Ni4zIDMyLjQtNzQuMy05LjctNTUuMy0yOC44LTc1LjgtNDUuNS0zMi44LTczLjYtMzQuMXptODYgMTA3LjRjMCAzMC41LTQwLjggNTUuMy05MS4xIDU1LjNzLTkxLjEtMjQuNy05MS4xLTU1LjMgNDAuOC01NS4zIDkxLjEtNTUuMyA5MS4xIDI0LjcgOTEuMSA1NS4zbDAgMHptLTUwLjIgMTcuNGMzLjQgMCA2LjgtMSA5LjctMi45czUuMS00LjYgNi40LTcuOCAxLjctNi43IDEtMTAuMS0yLjMtNi41LTQuOC04LjktNS41LTQuMS04LjktNC44LTYuOS0uMy0xMC4xIDEtNS45IDMuNS03LjggNi40LTIuOSA2LjItMi45IDkuN2MwIDQuNiAxLjggOSA1LjEgMTIuM3M3LjcgNS4xIDEyLjMgNS4xbDAgMHptMjcwLjktMzFjLTE0LjgtMi42LTIyLjQtMy44LTIyLjQtOS45IDAtNS41IDcuMy05LjkgMTcuNy05LjkgMTIuMiAuMSAyNC4yIDMuNiAzNC41IDEwLjEgMS44IDEuMiA0IDEuNiA2LjIgMS4xczQtMS43IDUuMS0zLjZjLjEtLjEgLjEtLjIgLjItLjNsOC42LTE0LjljMS4xLTEuOSAxLjQtNC4xIC44LTYuMXMtMS45LTMuOS0zLjctNWMtMTUuNy05LjQtMzMuNy0xNC4zLTUyLTE0LjEtMzkgMC02MC4yIDIxLjUtNjAuMiA0Ni4yIDAgMzYuMyAzMy43IDQxLjkgNTcuNiA0NS42IDEzLjQgMi4zIDI0LjEgNC40IDI0LjEgMTEgMCA2LjQtNS41IDEwLjgtMTguOSAxMC44LTEzLjYgMC0zMS02LjItNDIuNi0xMy42LS45LS42LTEuOS0xLTMtMS4ycy0yLjEtLjItMy4yIC4xLTIuMSAuNy0yLjkgMS4zLTEuNiAxLjQtMi4yIDIuM2MwIC4xLS4xIC4xLS4xIC4ybC0xMC4yIDE2LjljLTEuMSAxLjgtMS40IDQtMSA2czEuNyAzLjkgMy41IDVjMTUuMiAxMC4zIDM3LjcgMTYuNyA1OS40IDE2LjcgNDAuNCAwIDY0LTE5LjggNjQtNDYuNSAwLTM4LjEtMzUuNS00My45LTU5LjMtNDguM3ptLTk1LjkgNjAuOGMtLjUtMi0xLjgtMy43LTMuNi00LjhzLTMuOS0xLjUtNS45LTEuMWMtMS40IC4zLTIuOCAuNC00LjIgLjQtNy44IDAtMTIuNS02LjEtMTIuNS0xNC4ybDAtNTEuMiAyMC4zIDBjMi4yIDAgNC4yLS45IDUuOC0yLjRzMi40LTMuNiAyLjQtNS44bDAtMjIuN2MwLTIuMi0uOS00LjItMi40LTUuOHMtMy42LTIuNC01LjgtMi40bC0yMC4zIDAgMC0zMC4yYzAtMi4yLS45LTQuMi0yLjQtNS44cy0zLjYtMi40LTUuOC0yLjRsLTI4LjIgMGMtMi4yIDAtNC4yIC45LTUuOCAyLjRzLTIuNCAzLjYtMi40IDUuOGwwIDMwLjItMTUuMSAwYy0xLjEgMC0yLjEgLjItMy4xIC42cy0xLjkgMS0yLjYgMS44LTEuNCAxLjctMS44IDIuNi0uNiAyLS42IDMuMWwwIDIyLjdjMCAxLjEgLjIgMi4xIC42IDMuMXMxIDEuOSAxLjggMi42IDEuNyAxLjQgMi42IDEuOCAyIC42IDMuMSAuNmwxNS4xIDAgMCA2My43YzAgMjcgMTUuNCA0MS4zIDQzLjkgNDEuMyAxMi4yIDAgMjEuNC0yLjIgMjcuNi01LjQgMS42LS44IDIuOS0yLjIgMy43LTMuOXMuOS0zLjYgLjUtNS40bC01LTE5LjN6XCJdXG59O1xudmFyIGZhVmluZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd2aW5lJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWNhXCIsIFwiTTM4NCAyNTQuN2wwIDUyLjFjLTE4LjQgNC4yLTM2LjkgNi4xLTUyLjEgNi4xLTM2LjkgNzcuNC0xMDMgMTQzLjgtMTI1LjEgMTU2LjItMTQgNy45LTI3LjEgOC40LTQyLjctLjgtMjcuMS0xNi4zLTEyOS45LTEwMC42LTE2NC4xLTM2NS42bDc0LjUgMGMxOC43IDE1OS4xIDY0LjUgMjQwLjcgMTE0LjggMzAxLjggMjcuOS0yNy45IDU0LjgtNjUuMSA3NS42LTEwNi45LTQ5LjgtMjUuMy04MC4xLTgwLjktODAuMS0xNDUuNiAwLTY1LjYgMzcuNy0xMTUuMSAxMDIuMi0xMTUuMSAxMTQuOSAwIDEwNi4yIDEyNy45IDgxLjYgMTgxLjUgMCAwLTQ2LjQgOS4yLTYzLjUtMjAuNSAzLjQtMTEuMyA4LjItMzAuOCA4LjItNDguNSAwLTMxLjMtMTEuMy00Ni42LTI4LjQtNDYuNi0xOC4yIDAtMzAuOCAxNy4xLTMwLjggNTAgLjEgNzkuMiA1OS40IDExOC43IDEyOS45IDEwMS45elwiXVxufTtcbnZhciBmYU1lZHJ0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ21lZHJ0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmM2M4XCIsIFwiTTEyOS43IDI1NmMwIDEyMS44IDgzLjkgMjIyLjggMTkzLjUgMjQxLjEtMTguNyA0LjUtMzguMiA2LjktNTguMiA2LjktMTM3LjYgMC0yNDktMTExLTI0OS0yNDhTMTI3LjQgOCAyNjQuOSA4YzIwLjEgMCAzOS42IDIuNCA1OC4yIDYuOS0xMDkuNiAxOC4zLTE5My40IDExOS4zLTE5My40IDI0MS4xek00MjcuMSAzNTYuM2MtNzcuNyA1NS40LTE3OS42IDQ3LjUtMjQwLjQtMTQuNiA1LjUgMTQuMSAxMi43IDI3LjcgMjEuNyA0MC41IDYxLjYgODguMiAxODIuNCAxMDkuMyAyNjkuNyA0N3MxMDguMS0xODQuMyA0Ni41LTI3Mi42Yy05LTEyLjktMTkuMy0yNC4zLTMwLjUtMzQuMiAzNy40IDc4LjggMTAuNyAxNzguNS02NyAyMzMuOXptLTIxOC44LTI0NGMtMS40IDEtMi43IDIuMS00IDMuMSA2NC4zLTE3LjggMTM1LjkgNCAxNzguOSA2MC41IDM1LjcgNDcgNDIuOSAxMDYuNiAyNC40IDE1OCA1Ni43LTU2LjIgNjcuNi0xNDIuMSAyMi4zLTIwMS44LTUwLTY1LjUtMTQ5LjEtNzQuNC0yMjEuNi0xOS44ek0zMTIgMjI0Yy00LjQgMC04LTMuNi04LThsMC00MGMwLTQuNC0zLjYtOC04LThsLTQ4IDBjLTQuNCAwLTggMy42LTggOGwwIDQwYzAgNC40LTMuNiA4LTggOGwtNDAgMGMtNC40IDAtOCAzLjYtOCA4bDAgNDhjMCA0LjQgMy42IDggOCA4bDQwIDBjNC40IDAgOCAzLjYgOCA4bDAgNDBjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC0zLjYgOC04bDAtNDBjMC00LjQgMy42LTggOC04bDQwIDBjNC40IDAgOC0zLjYgOC04bDAtNDhjMC00LjQtMy42LTgtOC04bC00MCAwelwiXVxufTtcbnZhciBmYU9zaSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdvc2knLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0MWFcIiwgXCJNOCAyNjYuNGMyLjMtMTM1LjggOTcuNC0yMzIuNCAyMTMuOC0yNDguMSAxMzguOC0xOC42IDI1NS42IDc1LjggMjc4IDIwMS4xIDIxLjMgMTE4LjgtNDQgMjMwLTE1MS42IDI3NC05LjMgMy44LTE0LjQgMS43LTE4LTcuNy0xNy44LTQ2LjMtMzUuNi05Mi42LTUzLjQtMTM5LTMuMS04LjEtMS0xMy4yIDctMTYuOCAyNC4yLTExIDM5LjMtMjkuNCA0My4zLTU1LjggMS41LTkuNyAxLTE5LjYtMS41LTI5LjFzLTYuOS0xOC40LTEyLjktMjYuMS0xMy42LTE0LjEtMjIuMi0xOC44LTE4LjEtNy41LTI3LjktOC4zYy0zOS0zLjQtNzEuOCAyMy43LTc3LjUgNTkuNy01LjIgMzMgMTEuMSA2My43IDQxLjkgNzcuNyA5LjYgNC40IDExLjUgOC42IDcuOCAxOC40LTE3LjkgNDYuNi0zNS44IDkzLjItNTMuNyAxMzkuOS0yLjYgNi45LTguMyA5LjMtMTUuNSA2LjUtNTIuNi0yMC4zLTEwMS40LTYxLTEzMC44LTExOS0yNC45LTQ5LjItMjUuMi04Ny43LTI2LjgtMTA4Ljd6bTIwLjktMS45Yy40IDYuNiAuNiAxNC4zIDEuMyAyMi4xIDYuMyA3MS45IDQ5LjYgMTQzLjUgMTMxIDE4My4xIDMuMiAxLjUgNC40IC44IDUuNi0yLjMgMTQuOS0zOS4xIDI5LjktNzguMiA0NS0xMTcuMyAxLjMtMy4zIC42LTQuOC0yLjQtNi43LTMxLjYtMTkuOS00Ny4zLTQ4LjUtNDUuNi04NiAxLTIxLjYgOS4zLTQwLjUgMjMuOC01Ni4zIDMwLTMyLjcgNzctMzkuOCAxMTUuNS0xNy42IDE1LjYgOSAyOC4yIDIyLjMgMzYuMiAzOC40czExLjIgMzQuMiA5IDUyYy0zLjYgMzAuNi0xOS4zIDUzLjktNDUuNyA2OS44LTIuNyAxLjYtMy41IDIuOS0yLjMgNiAxNS4yIDM5LjIgMzAuMyA3OC40IDQ1LjIgMTE3LjcgMS4yIDMuMSAyLjQgMy44IDUuNiAyLjMgMzUuNS0xNi42IDY1LjItNDAuMyA4OC4xLTcyIDM0LjgtNDguMiA0OS4xLTEwMS45IDQyLjMtMTYxLTEzLjctMTE3LjUtMTE5LjQtMjE0LjgtMjU1LjUtMTk4LTEwNi4xIDEzLTE5NS4zIDEwMi41LTE5Ny4xIDIyNS44elwiXVxufTtcbnZhciBmYUdnID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2dnJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjYwXCIsIFwiTTE3OS4yIDIzMC40bDEwMi40IDEwMi40LTEwMi40IDEwMi40LTE3OS4yLTE3OS4yIDE3OS4yLTE3OS4yIDQ0LjggNDQuOC0yNS42IDI1LjYtMTkuMi0xOS4yLTEyOCAxMjggMTI4IDEyOCA1MS41LTUxLjUtNzcuMS03Ni41IDI1LjYtMjUuNnpNMzMyLjggNzYuOGwtMTAyLjQgMTAyLjQgMTAyLjQgMTAyLjQgMjUuNi0yNS42LTc3LjEtNzYuNSA1MS41LTUxLjUgMTI4IDEyOC0xMjggMTI4LTE5LjItMTkuMi0yNS42IDI1LjYgNDQuOCA0NC44IDE3OS4yLTE3OS4yLTE3OS4yLTE3OS4yelwiXVxufTtcbnZhciBmYUJ1eXNlbGxhZHMgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYnV5c2VsbGFkcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjIwZFwiLCBcIk0yMjQgMTUwLjdsNDIuOSAxNjAuNy04NS44IDAgNDIuOS0xNjAuN3pNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzgyLjcgNDA1LjNsLTk0LjUtMjk4LjctMTI4LjQgMC05NC41IDI5OC43IDkwLjcgMCAxMTEuNy05MS42IDI0LjIgOTEuNiA5MC44IDB6XCJdXG59O1xudmFyIGZhR29vZ2xlUGx1cyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdnb29nbGUtcGx1cycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjJiM1wiLCBcIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTE4NS4zIDM4MGMtMzIuOSAwLTY0LjQtMTMuMS04Ny43LTM2LjNzLTM2LjMtNTQuOC0zNi4zLTg3LjcgMTMuMS02NC40IDM2LjMtODcuNyA1NC44LTM2LjMgODcuNy0zNi4zYzMxLjMgMCA2MC4xIDExIDgzIDMyLjNsLTMzLjYgMzIuNmMtMTMuMi0xMi45LTMxLjMtMTkuMS00OS40LTE5LjEtNDIuOSAwLTc3LjIgMzUuNS03Ny4yIDc4LjFTMTQyLjMgMzM0IDE4NS4zIDMzNGMzMi42IDAgNjQuOS0xOS4xIDcwLjEtNTMuM2wtNzAuMSAwIDAtNDIuNiAxMTYuOSAwYzEuMyA2LjggMS45IDEzLjggMS45IDIwLjcgMCA3MC44LTQ3LjUgMTIxLjItMTE4LjggMTIxLjJ6TTQxNS41IDI3My44bDAgMzUuNS0zNS41IDAgMC0zNS41LTM1LjUgMCAwLTM1LjUgMzUuNSAwIDAtMzUuNSAzNS41IDAgMCAzNS41IDM1LjIgMCAwIDM1LjUtMzUuMiAwelwiXVxufTtcbnZhciBmYVNjcmVlbnBhbCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzY3JlZW5wYWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NzBcIiwgXCJNMjc4LjYgMjIuNWEyMi41IDIyLjUgMCAxIDEgLTQ1IDAgMjIuNSAyMi41IDAgMSAxIDQ1IDB6TTE5OC43IDI1OWE1Ny40IDU3LjQgMCAxIDEgMTE0LjggMCA1Ny40IDU3LjQgMCAxIDEgLTExNC44IDB6bTEzOC42IDkxYzIyLjMtMTkuOSAzNi41LTQ3LjMgMzkuOS03N2wxMTkuNSAwYy0zLjUgNjEuNC0zMC40IDExOS4yLTc1LjIgMTYxLjQtNDQuNyA0Mi4yLTEwMy45IDY1LjgtMTY1LjQgNjUuOFMxMzUuNCA0NzYuNiA5MC43IDQzNC40QzQ1LjkgMzkyLjIgMTkuMSAzMzQuNCAxNS41IDI3M2wxMTkuNyAwYzMuNCAyOS43IDE3LjYgNTcuMSAzOS45IDc3czUxLjIgMzAuOSA4MS4xIDMwLjljMjkgMCA1OC43LTExIDgxLjEtMzAuOXpNMjguMyAxNDEuN2EyMi41IDIyLjUgMCAxIDEgNDUtMS40IDIyLjUgMjIuNSAwIDEgMSAtNDUgMS40em00NTUuNi0uN2EyMi40IDIyLjQgMCAxIDEgLTQ0LjkgMCAyMi40IDIyLjQgMCAxIDEgNDQuOSAwek0zMTggOTUuM2MtMTcuMyAxMy44LTM5LjIgMjIuOC02MS45IDIyLjhzLTQ0LjYtOS02MS45LTIyLjhjLTE3LjMtMTQuNy0yOC44LTM1LjEtMzIuNC01Ny41IDE1LjEtNi40IDMwLjgtMTEuMyA0Ni45LTE0LjUgMCAxMi42IDUgMjQuNiAxMy45IDMzLjVzMjAuOSAxMy45IDMzLjUgMTMuOSAyNC42LTUgMzMuNS0xMy45IDEzLjktMjAuOSAxMy45LTMzLjVjMTYuMSAzLjIgMzEuOCA4LjEgNDYuOSAxNC41LTMuNiAyMi40LTE1LjEgNDIuOC0zMi40IDU3LjV6TTgyLjkgMjMxYy0yMS40IDcuNi00NC43IDcuNC02NS45LS42IDItMTYuMyA1LjYtMzIuMyAxMC44LTQ3LjkgNS40IDMuMSAxMS4zIDUuMSAxNy41IDYgNi4yIC44IDEyLjQgLjQgMTguNS0xLjIgNi0xLjcgMTEuNi00LjQgMTYuNi04LjJzOS4xLTguNSAxMi4yLTEzLjkgNS4xLTExLjQgNi0xNy41Yy44LTYuMiAuNC0xMi41LTEuMi0xOC41cy00LjQtMTEuNi04LjItMTYuNmMtMy44LTQuOS04LjUtOS4xLTEzLjktMTIuMiAxMC44LTEyLjMgMjIuOS0yMy41IDM2LTMzLjMgMTcuNiAxNC4zIDI5LjUgMzQuNSAzMy42IDU2LjhzLjEgNDUuNC0xMS4yIDY1Yy0xMS40IDE5LjYtMjkuNCAzNC41LTUwLjcgNDIuMXptMzQ2LjQgLjFjLTIxLjMtNy42LTM5LjMtMjIuNi01MC43LTQyLjItMTEuMy0xOS42LTE1LjItNDIuNy0xMS4xLTY1IDQuMS0yMi4yIDE2LTQyLjQgMzMuNS01Ni43IDEzLjEgOS44IDI1LjIgMjEgMzYgMzMuMy0xMC43IDYuNC0xOC40IDE2LjctMjEuNSAyOC44LTMuMiAxMi0yLjMgMjQuOCA0LjggMzUuNiA2LjIgMTAuOCAxNi40IDE4LjcgMjguNCAyMnMyNC45IDEuNyAzNS43LTQuM2M1LjMgMTUuNSA4LjkgMzEuNiAxMC45IDQ3LjgtMjIuMSA4LjEtNDQuNiA4LjMtNjYgLjd6XCJdXG59O1xudmFyIGZhQml0Y29pbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdiaXRjb2luJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMzc5XCIsIFwiTTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTM1NC4zLTM1LjNjNC45LTMzLTIwLjItNTAuNy01NC42LTYyLjZsMTEuMS00NC43LTI3LjItNi44LTEwLjkgNDMuNWMtNy4yLTEuOC0xNC41LTMuNS0yMS44LTUuMWwxMC45LTQzLjgtMjcuMi02LjgtMTEuMiA0NC43Yy01LjktMS4zLTExLjctMi43LTE3LjQtNC4xbDAtLjEtMzcuNS05LjQtNy4yIDI5LjFzMjAuMiA0LjYgMTkuOCA0LjljMTEgMi44IDEzIDEwIDEyLjcgMTUuOGwtMTIuNyA1MC45Yy44IC4yIDEuNyAuNSAyLjggLjktLjktLjItMS45LS41LTIuOS0uN2wtMTcuOCA3MS4zYy0xLjMgMy4zLTQuOCA4LjQtMTIuNSA2LjUgLjMgLjQtMTkuOC00LjktMTkuOC00LjlsLTEzLjUgMzEuMSAzNS40IDguOGM2LjYgMS43IDEzIDMuNCAxOS40IDVsLTExLjMgNDUuMiAyNy4yIDYuOCAxMS4yLTQ0LjdjNy4yIDIgMTQuNCAzLjggMjEuNyA1LjZsLTExLjEgNDQuNSAyNy4yIDYuOCAxMS4zLTQ1LjFjNDYuNCA4LjggODEuMyA1LjIgOTYtMzYuNyAxMS44LTMzLjgtLjYtNTMuMy0yNS02NiAxNy44LTQuMSAzMS4yLTE1LjggMzQuNy0zOS45em0tNjIuMiA4Ny4yYy04LjQgMzMuOC02NS4zIDE1LjUtODMuOCAxMC45bDE0LjktNTkuOWMxOC40IDQuNiA3Ny42IDEzLjcgNjguOCA0OXptOC40LTg3LjdjLTcuNyAzMC43LTU1IDE1LjEtNzAuNCAxMS4zbDEzLjUtNTQuM2MxNS40IDMuOCA2NC44IDExIDU2LjggNDN6XCJdXG59O1xudmFyIGZhU3dpZnQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3dpZnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY4ZTFcIiwgXCJNNDQ4IDE1Ni4xYzAtNC41LS4xLTktLjItMTMuNS0uMS05LjktMS0xOS43LTIuNi0yOS40LTEuNy05LjctNC44LTE5LjItOS4yLTI4LTktMTcuNy0yMy40LTMyLjEtNDEuMi00MS4xLTguOC00LjUtMTguMy03LjYtMjgtOS4yLTkuNy0xLjYtMTkuNi0yLjUtMjkuNC0yLjYtNC41LS4xLTktLjItMTMuNS0uMkwxMjQuMSAzMmMtNC41IDAtOSAuMS0xMy41IC4yLTIuNCAuMS00LjkgLjItNy40IC4zLTcuNCAuMy0xNC44IDEuMS0yMi4xIDIuMy03LjMgMS4zLTE0LjQgMy4zLTIxLjIgNi4xLTIuMyAxLTQuNiAyLTYuOCAzLjEtNi42IDMuNC0xMi44IDcuNS0xOC40IDEyLjMtMS45IDEuNi0zLjcgMy4zLTUuNCA1LTcgNy0xMi45IDE1LTE3LjQgMjMuOC00LjQgOC44LTcuNiAxOC4zLTkuMiAyOC0xLjYgOS43LTIuNCAxOS42LTIuNSAyOS40LS4xIDQuNS0uMiA5LS4yIDEzLjVMMCAzNTUuOWMwIDQuNSAuMSA5IC4yIDEzLjUgLjEgOS45IDEgMTkuNyAyLjYgMjkuNCAxLjcgOS43IDQuOCAxOS4yIDkuMiAyOCA5IDE3LjcgMjMuNCAzMi4xIDQxLjEgNDEuMSA4LjggNC40IDE4LjMgNy41IDI4IDkuMiA5LjcgMS42IDE5LjYgMi41IDI5LjQgMi42IDQuNSAuMSA5IC4yIDEzLjUgLjJsMTk5LjggMGM0LjUgMCA5LS4xIDEzLjUtLjIgOS45LS4xIDE5LjctMSAyOS40LTIuNiA5LjctMS43IDE5LjItNC44IDI4LTkuMiAxNy43LTkgMzIuMS0yMy40IDQxLjEtNDEuMiA0LjQtOC44IDcuNi0xOC4zIDkuMi0yOCAxLjYtOS43IDIuNS0xOS42IDIuNi0yOS40IC4xLTQuNSAuMi05IC4yLTEzLjVsMC0xODMuOGMwLTUuNCAwLTEwLjcgMC0xNnptLTY5LjkgMjQxYy0yMC0zOC45LTU3LjItMjkuMy03Ni4zLTE5LjUtMS43IDEtMy41IDItNS4yIDNsLS40IC4yYy0zOS41IDIxLTkyLjUgMjIuNS0xNDUuOC0uNC00My40LTE4LjgtODAuMS01MC4zLTEwNS4zLTkwLjQgMTIuMyA5LjEgMjUuNCAxNi45IDM5LjIgMjMuNCA1Ni40IDI2LjQgMTEzIDI0LjUgMTUzIDAtNTctNDMuOC0xMDQuNi0xMDEtMTQxLjEtMTQ3LjItNy04LjEtMTMuMi0xNi44LTE4LjgtMjUuOSA0My43IDQwIDExMi43IDkwLjIgMTM3LjUgMTA0LjEtNTIuNi01NS41LTk4LjktMTIzLjktOTYuNy0xMjEuNyA4Mi44IDgzLjQgMTU5LjIgMTMwLjYgMTU5LjIgMTMwLjYgMi45IDEuNiA1IDIuOCA2LjcgNCAxLjYtNC4xIDMtOC4yIDQuMi0xMi41IDEzLjItNDguMy0xLjctMTAzLjYtMzUuMy0xNDkuMiA3Ni44IDQ2LjEgMTIyLjIgMTMzLjcgMTAzLjYgMjA3LjgtLjQgMS43LTEgMy40LTEuNCA1LjEgMzguNSA0Ny40IDI4IDk4LjIgMjMuMSA4OC42bDAgMHpcIl1cbn07XG52YXIgZmFGaWxlc1BpbndoZWVsID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ZpbGVzLXBpbndoZWVsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNjlmXCIsIFwiTTI1My41IDI0Ni40TDEzNy4yIDEzMC4yYy0uNi0uNi0xLTEuMy0xLjQtMnMtLjUtMS42LS41LTIuNCAuMi0xLjYgLjUtMi40IC44LTEuNCAxLjQtMkwyNTMuNiA1LjFjLjktLjkgMi0xLjUgMy4yLTEuN3MyLjUtLjEgMy42IC4zIDIuMSAxLjMgMi44IDIuMyAxLjEgMi4yIDEuMSAzLjVsMCAyMzIuNWMwIDEuMy0uMyAyLjUtMSAzLjZzLTEuNyAxLjktMi45IDIuNC0yLjUgLjYtMy43IC4zLTIuNC0uOS0zLjItMS45em00MC4zLTQuNGwwLTEzNC40YzAtLjggLjEtMS42IC41LTIuNHMuOC0xLjUgMS4zLTIuMSAxLjMtMS4xIDItMS40IDEuNi0uNSAyLjQtLjVsMTM0LjQgMGMxLjIgMCAyLjUgLjQgMy41IDEuMXMxLjggMS43IDIuMyAyLjggLjYgMi40IC4zIDMuNi0uOSAyLjMtMS43IDMuMkwzMDQuMyAyNDYuNGMtLjkgLjgtMiAxLjQtMy4yIDEuNnMtMi40IC4xLTMuNS0uNC0yLjEtMS4zLTIuOC0yLjMtMS4xLTIuMi0xLjEtMy40bC4xIC4xem0zMC42IDM1Yy0xLjIgMC0yLjUtLjMtMy41LTFzLTEuOS0xLjYtMi40LTIuOC0uNi0yLjQtLjQtMy42IC44LTIuMyAxLjctMy4yTDQwNCAxODIuMmMuNi0uNiAxLjMtMSAyLTEuNHMxLjYtLjUgMi40LS41IDEuNiAuMiAyLjQgLjUgMS40IC44IDIgMS40bDg0LjQgODQuMmMuOSAuOSAxLjUgMiAxLjcgMy4ycy4xIDIuNS0uMyAzLjYtMS4zIDIuMS0yLjMgMi44LTIuMiAxLjEtMy41IDEuMWwtMTY4LjUgMCAuMS0uMXptOTAuNyAxMzFsLTk1LjMtOTUuMmMtLjktLjktMS41LTItMS43LTMuMnMtLjEtMi41IC40LTMuNyAxLjMtMi4xIDIuNC0yLjggMi4zLTEgMy41LTFsOTUuMiAwYzEuNyAwIDMuMiAuNyA0LjQgMS44czEuOCAyLjggMS44IDQuNGwwIDk1LjNjMCAxLjItLjQgMi41LTEuMSAzLjVzLTEuNyAxLjgtMi44IDIuMy0yLjQgLjYtMy42IC4zLTIuMy0uOS0zLjItMS43ek0xNi44IDMwMi4xbDIxNi45IDBjMS4yIDAgMi41IC40IDMuNSAxLjFzMS44IDEuNyAyLjMgMi44IC42IDIuNCAuMyAzLjYtLjggMi4zLTEuNyAzLjJMMTI5LjcgNDIxLjJjLS42IC42LTEuMyAxLTIgMS40cy0xLjYgLjUtMi40IC41LTEuNi0uMi0yLjQtLjUtMS40LS44LTItMS40TDEyLjMgMzEyLjhjLS45LS45LTEuNS0yLTEuNy0zLjJzLS4xLTIuNSAuNC0zLjYgMS4zLTIuMSAyLjMtMi44IDIuMy0xIDMuNS0xbDAtLjF6TTI2NC4zIDQ2NS4zYzAgLjgtLjIgMS42LS41IDIuNHMtLjggMS41LTEuNCAyLTEuMyAxLTIgMS40LTEuNiAuNS0yLjQgLjVsLTEyOCAwYy0xLjIgMC0yLjUtLjQtMy41LTEuMXMtMS44LTEuNy0yLjMtMi44LS42LTIuNC0uMy0zLjYgLjgtMi4zIDEuNy0zLjJsMTI4LTEyOGMuOS0uOSAyLTEuNSAzLjItMS43czIuNS0uMSAzLjYgLjMgMi4xIDEuMyAyLjggMi4zIDEuMSAyLjIgMS4xIDMuNWwwIDEyOHptNDAtMTMyLjVsODIuOCA4Mi43Yy42IC42IDEgMS4zIDEuNCAycy41IDEuNiAuNSAyLjQtLjIgMS42LS41IDIuNC0uOCAxLjQtMS40IDJMMzA0LjMgNTA3Yy0uOSAuOS0yIDEuNS0zLjIgMS43cy0yLjUgLjEtMy42LS4zLTIuMS0xLjMtMi44LTIuMy0xLjEtMi4yLTEuMS0zLjVsMC0xNjUuNGMwLTEuMiAuNC0yLjUgMS4xLTMuNXMxLjctMS44IDIuOC0yLjMgMi40LS42IDMuNi0uMyAyLjMgLjggMy4yIDEuN3pNNzkgMTIyLjRjMC0xLjIgLjMtMi41IDEtMy41czEuNy0xLjggMi44LTIuMyAyLjQtLjYgMy42LS40IDIuMyAuOCAzLjIgMS43TDIzOC4xIDI2Ni40Yy45IC45IDEuNSAyIDEuNyAzLjJzLjEgMi41LS4zIDMuNi0xLjMgMi4xLTIuMyAyLjgtMi4yIDEuMS0zLjUgMS4xbC0xNDguNCAwYy0xLjcgMC0zLjItLjctNC40LTEuOHMtMS44LTIuOC0xLjgtNC40bDAtMTQ4LjQtLjEtLjF6XCJdXG59O1xudmFyIGZhTGFyYXZlbCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdsYXJhdmVsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmM2JkXCIsIFwiTTUwNC42IDExNS44Yy0uMS0uMi0uMi0uNS0uMy0uNy0uMS0uNC0uMy0uOC0uNS0xLjItLjItLjItLjMtLjUtLjUtLjctLjItLjMtLjUtLjYtLjctLjktLjItLjItLjUtLjQtLjgtLjYtLjMtLjItLjYtLjUtLjktLjdMNDA0LjYgNTUuNWMtMS4yLS43LTIuNi0xLjEtNC0xLjFzLTIuOCAuNC00IDEuMUwzMDAuMyAxMTFjLS4zIC4yLS42IC40LS45IC43LS4zIC4yLS41IC40LS44IC42LS4zIC4zLS41IC42LS43IC45LS4yIC4yLS40IC40LS41IC43LS4yIC40LS40IC44LS41IDEuMi0uMSAuMi0uMiAuNC0uMyAuNy0uMiAuNy0uMyAxLjQtLjMgMi4xbDAgMTA1LjItODAuMiA0Ni4yIDAtMjA1LjljMC0uNy0uMS0xLjQtLjMtMi4xLS4xLS4yLS4yLS40LS4zLS43LS4xLS40LS4zLS44LS41LTEuMi0uMS0uMy0uNC0uNS0uNS0uNy0uMi0uMy0uNS0uNi0uNy0uOS0uMi0uMi0uNS0uNC0uOC0uNi0uMy0uMi0uNi0uNS0uOS0uN0wxMTUuOCAxLjFjLTEuMi0uNy0yLjYtMS4xLTQtMS4xcy0yLjggLjQtNCAxLjFMMTEuNSA1Ni41Yy0uMyAuMi0uNiAuNC0uOSAuNy0uMyAuMi0uNSAuNC0uOCAuNi0uMyAuMy0uNSAuNi0uNyAuOS0uMiAuMy0uNCAuNS0uNiAuNy0uMiAuNC0uNCAuOC0uNSAxLjItLjEgLjItLjIgLjQtLjMgLjctLjIgLjctLjMgMS40LS4zIDIuMWwwIDMyOS43YzAgMS40IC40IDIuOCAxLjEgNHMxLjcgMi4yIDIuOSAyLjlMMjA0IDUxMC45Yy40IC4yIC45IC40IDEuMyAuNSAuMiAuMSAuNCAuMiAuNiAuMyAxLjMgLjQgMi44IC40IDQuMSAwIC4yLS4xIC40LS4yIC42LS4yIC41LS4yIDEtLjMgMS40LS42TDQwNC42IDQwMC4xYzEuMi0uNyAyLjItMS43IDIuOS0yLjlzMS4xLTIuNiAxLjEtNGwwLTEwNS4zIDkyLjItNTMuMWMxLjItLjcgMi4yLTEuNyAyLjktM3MxLjEtMi42IDEuMS00bDAtMTA5LjhjMC0uNy0uMS0xLjQtLjItMi4xek0xMTEuOCAxNy4zbDgwLjIgNDYuMS04MC4yIDQ2LjItODAuMi00Ni4yIDgwLjItNDYuMnptODguMiA2MGwwIDIwMS4zYy0zMy4yIDE5LjEtNTkuOSAzNC41LTgwLjIgNDYuMmwwLTIwMS4zQzE1MyAxMDQuNCAxNzkuNyA4OSAyMDAgNzcuM3ptMCA0MTIuOEwyMy41IDM4OC41IDIzLjUgNzcuM2MyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDIxNS4yYzAgLjMgLjEgLjYgLjEgLjkgMCAuNCAuMSAuOCAuMiAxLjIgLjEgLjMgLjIgLjYgLjQgLjkgLjEgLjMgLjMgLjcgLjQgMSAuMiAuMyAuNCAuNSAuNiAuOCAuMiAuMyAuNCAuNiAuNyAuOCAuMiAuMiAuNSAuNCAuOCAuNiAuMyAuMiAuNiAuNSAuOSAuN2w5Mi4yIDUyLjIgLjEgOTIuNHptOC0xMDYuMkwxMjggMzM4LjZjNTQuNy0zMS41IDExMy41LTY1LjMgMTc2LjMtMTAxLjVsODAuMSA0Ni4xQzM1NSAzMDAgMjk2LjIgMzMzLjUgMjA4IDM4My45em0xODQuNSA0LjZsLTE3Ni41IDEwMS42IDAtOTIuM0MzMTcuNCAzNDAgMzc2LjIgMzA2LjQgMzkyLjUgMjk3bDAgOTEuNHptMC0xMTkuMWMtMjAuMy0xMS42LTQ3LjEtMjctODAuMi00Ni4xbDAtOTEuNGMyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDkxLjN6bTgtMTA1LjNsLTgwLjItNDYuMiA4MC4yLTQ2LjIgODAuMiA0Ni4xLTgwLjIgNDYuMnptOCAxMDUuM2wwLTkxLjNjMzMuMi0xOS4xIDYwLTM0LjUgODAuMy00Ni4ybDAgOTEuNC04MC4zIDQ2LjJ6XCJdXG59O1xudmFyIGZhV3Bmb3JtcyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd3cGZvcm1zJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjk4XCIsIFwiTTQ0OCA3NS4ybDAgMzYxLjdjMCAyNC4zLTE5IDQzLjItNDMuMiA0My4ybC0zNjEuNiAwQzE5LjMgNDgwIDAgNDYxLjQgMCA0MzYuOEwwIDc1LjJDMCA1MS4xIDE4LjggMzIgNDMuMiAzMmwzNjEuNyAwYzI0IDAgNDMuMSAxOC44IDQzLjEgNDMuMnpNNDEwLjcgNDM2LjhsMC0zNjEuNmMwLTMtMi42LTUuOC01LjgtNS44bC05LjMgMC0xMTAuMyA3NC42LTYxLjMtNDkuOS02MS4yIDQ5LjktMTEwLjMtNzQuNy05LjMgMGMtMy4yIDAtNS44IDIuOC01LjggNS44bDAgMzYxLjdjMCAzIDIuNiA1LjggNS44IDUuOGwzNjEuNyAwYzMuMiAuMSA1LjgtMi43IDUuOC01Ljh6TTE1MC4yIDE4NmwwIDM3LTczLjUgMCAwLTM3IDczLjUgMHptMCA3NC40bDAgMzcuMy03My41IDAgMC0zNy4zIDczLjUgMHptMTEuMS0xNDcuM2w1NC00My43LTExOC41IDAgNjQuNSA0My43em0yMTAgNzIuOWwwIDM3LTE5NiAwIDAtMzcgMTk2IDB6bTAgNzQuNGwwIDM3LjMtMTk2IDAgMC0zNy4zIDE5NiAwek0yODYuNyAxMTMuMWw2NC41LTQzLjctMTE4LjQgMCA1My45IDQzLjd6TTM3MS4zIDMzNWwwIDM3LjMtOTkuNCAwIDAtMzcuMyA5OS40IDB6XCJdXG59O1xudmFyIGZhU3BlYWtlckRlY2sgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3BlYWtlci1kZWNrJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmODNjXCIsIFwiTTIxMy45IDI5NkwxMDAgMjk2Yy0yNi41IDAtNTItMTAuNS03MC43LTI5LjNTMCAyMjIuNSAwIDE5NiAxMC41IDE0NCAyOS4zIDEyNS4zIDczLjUgOTYgMTAwIDk2bDEzMi44IDBjMTAuNiAwIDIwLjggNC4yIDI4LjMgMTEuN3MxMS43IDE3LjcgMTEuNyAyOC4zLTQuMiAyMC44LTExLjcgMjguMy0xNy43IDExLjctMjguMyAxMS43TDk4IDE3NmMtMjYuNSAwLTI2LjQgNDAgMCA0MGwxMTMuOCAwYzI2LjUgMCA1MiAxMC41IDcwLjcgMjkuM3MyOS4zIDQ0LjIgMjkuMyA3MC43LTEwLjUgNTItMjkuMyA3MC43LTQ0LjIgMjkuMy03MC43IDI5LjNMNDAgNDE2Yy0xMC42IDAtMjAuOC00LjItMjguMy0xMS43UzAgMzg2LjYgMCAzNzYgNC4yIDM1NS4yIDExLjcgMzQ3LjcgMjkuNCAzMzYgNDAgMzM2bDE3My45IDBjMjYuNSAwIDI2LjUtNDAgMC00MHpNMjk4IDQxNmMxMy41LTkuMiAyNS0yMSAzMy44LTM0LjdzMTQuNy0yOS4yIDE3LjMtNDUuM2w2NC42IDBjMi42IDAgNS4yLS42IDcuNi0xLjZzNC42LTIuNSA2LjQtNC40IDMuMy00LjEgNC4yLTYuNSAxLjUtNSAxLjQtNy42bDAtMTIwYzAtMi42LS41LTUuMi0xLjQtNy42cy0yLjQtNC42LTQuMi02LjUtNC0zLjMtNi40LTQuNC01LTEuNi03LjYtMS42bC0xMTcuMiAwYzkuNy0xMS4xIDE1LTI1LjMgMTUtNDBzLTUuMy0yOC45LTE1LTQwbDEzNi45IDBjNDMuNCAwIDc4LjYgMzUuOCA3OC42IDgwbDAgMTYwYzAgNDQuMi0zNS4yIDgwLTc4LjYgODBMMjk4IDQxNnpcIl1cbn07XG52YXIgZmFGbGlja3IgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZmxpY2tyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMTZlXCIsIFwiTTQwMCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNDQuNSAxOTJhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3ptMTU5IDBhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3pcIl1cbn07XG52YXIgZmFDY1Zpc2EgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY2MtdmlzYScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjFmMFwiLCBcIk00NzAuMSAyMzEuM3M3LjYgMzcuMiA5LjMgNDVsLTMzLjQgMGMzLjMtOC45IDE2LTQzLjUgMTYtNDMuNS0uMiAuMyAzLjMtOS4xIDUuMy0xNC45bDIuOCAxMy40ek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xNTIuNSAzMzEuMmw2My4yLTE1NS4yLTQyLjUgMC0zOS4zIDEwNi00LjMtMjEuNS0xNC03MS40Yy0yLjMtOS45LTkuNC0xMi43LTE4LjItMTMuMWwtNjQuNyAwLS43IDMuMWMxNS44IDQgMjkuOSA5LjggNDIuMiAxNy4xbDM1LjggMTM1IDQyLjUgMHptOTQuNCAuMmwyNS4yLTE1NS40LTQwLjIgMC0yNS4xIDE1NS40IDQwLjEgMHptMTM5LjktNTAuOGMuMi0xNy43LTEwLjYtMzEuMi0zMy43LTQyLjMtMTQuMS03LjEtMjIuNy0xMS45LTIyLjctMTkuMiAuMi02LjYgNy4zLTEzLjQgMjMuMS0xMy40IDEzLjEtLjMgMjIuNyAyLjggMjkuOSA1LjlsMy42IDEuNyA1LjUtMzMuNmMtNy45LTMuMS0yMC41LTYuNi0zNi02LjYtMzkuNyAwLTY3LjYgMjEuMi02Ny44IDUxLjQtLjMgMjIuMyAyMCAzNC43IDM1LjIgNDIuMiAxNS41IDcuNiAyMC44IDEyLjYgMjAuOCAxOS4zLS4yIDEwLjQtMTIuNiAxNS4yLTI0LjEgMTUuMi0xNiAwLTI0LjYtMi41LTM3LjctOC4zbC01LjMtMi41LTUuNiAzNC45YzkuNCA0LjMgMjYuOCA4LjEgNDQuOCA4LjMgNDIuMiAuMSA2OS43LTIwLjggNzAtNTN6TTUyOCAzMzEuNGwtMzIuNC0xNTUuNC0zMS4xIDBjLTkuNiAwLTE2LjkgMi44LTIxIDEyLjlsLTU5LjcgMTQyLjUgNDIuMiAwczYuOS0xOS4yIDguNC0yMy4zbDUxLjYgMGMxLjIgNS41IDQuOCAyMy4zIDQuOCAyMy4zbDM3LjIgMHpcIl1cbn07XG52YXIgZmFVcHdvcmsgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndXB3b3JrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNjQxXCIsIFwiTTQ5My45IDI5NS42Yy01MC4zIDAtODMuNS0zOC45LTkyLjgtNTMuOSAxMS45LTk1LjMgNDYuOC0xMjUuNCA5Mi44LTEyNS40IDQ1LjUgMCA4MC45IDM2LjQgODAuOSA4OS43cy0zNS40IDg5LjctODAuOSA4OS43bDAtLjF6bTAtMjM3LjhjLTgxLjkgMC0xMjcuOCA1My40LTE0MSAxMDguNC0xNC45LTI4LTI1LjktNjUuNS0zNC41LTEwMC4zbC0xMTMuMiAwIDAgMTQxYzAgNTEuMS0yMy4zIDg5LTY4LjggODlzLTcxLjYtMzcuOC03MS42LTg5bC41LTE0MS02NS4zIDAgMCAxNDFjMCA0MS4xIDEzLjMgNzguNCAzNy42IDEwNS4xIDI1IDI3LjUgNTkuMiA0MS44IDk4LjggNDEuOCA3OC44IDAgMTMzLjgtNjAuNCAxMzMuOC0xNDYuOWwwLTk0LjhjOC4yIDMxLjIgMjcuOCA5MS4xIDY1LjMgMTQzLjZsLTM1IDE5OS40IDY2LjQgMCAyMy4xLTE0MS4zYzcuNiA2LjMgMTUuNyAxMiAyNC4yIDE3IDIyLjIgMTQgNDcuNyAyMS45IDczLjkgMjIuOCAwIDAgNCAuMiA2LjEgLjIgODEuMiAwIDE0NS45LTYyLjkgMTQ1LjktMTQ3LjhTNTc1LjMgNTcuOSA0OTQuMSA1Ny45bC0uMi0uMXpcIl1cbn07XG52YXIgZmFLYWthb1RhbGsgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAna2FrYW8tdGFsaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTdkN1wiLCBcIk0yODggMi41YzE1OS4xIDAgMjg4IDEwMS43IDI4OCAyMjcuMSAwIDEyNS40LTEyOC45IDIyNy4xLTI4OCAyMjcuMS0xNy41IDAtMzQuNi0xLjItNTEuMi0zLjYtMTYuNiAxMS43LTExMi42IDc5LjEtMTIxLjcgODAuNCAwIDAtMy43IDEuNC02LjktLjRzLTIuNi02LjctMi42LTYuN0MxMDYuNiA1MTkuOCAxMzAuNiA0MzcuMiAxMzUgNDIxLjkgNTMuOSAzODEuOCAwIDMxMC42IDAgMjI5LjUgMCAxMDQuMSAxMjguOSAyLjUgMjg4IDIuNXpNODYuMiAxNjEuN2MtOSAwLTE2LjMgNy4zLTE2LjMgMTYuM3M3LjMgMTYuMyAxNi4zIDE2LjNsMjUuOSAwIDAgOTguN2MwIDguOCA3LjUgMTUuOSAxNi42IDE1LjlzMTYuNi03LjEgMTYuNi0xNS45bDAtOTguNyAyNS45IDBjOSAwIDE2LjMtNy4zIDE2LjMtMTYuM3MtNy4zLTE2LjMtMTYuMy0xNi4zbC04NS4xIDB6bTE0MC44IDBjLTEwLjggLjItMTkuMyA4LjQtMjIuMSAxNi40TDE2NS4yIDI4Mi43Yy01IDE1LjctLjYgMjEuNSAzLjkgMjMuNiAzLjIgMS41IDYuOSAyLjMgMTAuNiAyLjMgNi45IDAgMTIuMi0yLjggMTMuOC03LjNsOC4yLTIxLjYgNTAuNyAwIDguMiAyMS41YzEuNiA0LjUgNi45IDcuMyAxMy44IDcuMyAzLjcgMCA3LjMtLjggMTAuNi0yLjMgNC42LTIuMSA5LTcuOSAzLjktMjMuNkwyNDkuMiAxNzguMWMtMi44LTgtMTEuMy0xNi4yLTIyLjItMTYuNHptMTgwLjkgMGMtOS4yIDAtMTYuNiA3LjUtMTYuNiAxNi42bDAgMTEzLjdjMCA5LjIgNy41IDE2LjYgMTYuNiAxNi42czE2LjYtNy41IDE2LjYtMTYuNmwwLTM2LjIgNS44LTUuOCAzOC45IDUxLjZjMy4yIDQuMiA4IDYuNiAxMy4zIDYuNiAzLjYgMCA3LjEtMS4xIDEwLTMuMyAzLjUtMi43IDUuOC02LjYgNi40LTExcy0uNS04LjgtMy4yLTEyLjNsLTQwLjktNTQuMiAzNy45LTM3LjhjMi42LTIuNiAzLjktNi4yIDMuNy0xMC4xLS4yLTMuOS0yLTcuNi00LjktMTAuNS0zLjEtMy4xLTcuMy00LjktMTEuNC00LjktMy42IDAtNi44IDEuMy05LjIgMy43bC00Ni4zIDQ2LjQgMC0zNS43YzAtOS4yLTcuNS0xNi42LTE2LjYtMTYuNnptLTkxLjMgMGMtOS4zIDAtMTYuOSA3LjUtMTYuOSAxNi42bDAgMTEyLjhjMCA4LjQgNy4xIDE1LjIgMTUuOSAxNS4zbDUzLjMgMGM4LjggMCAxNS45LTYuOSAxNS45LTE1LjNzLTcuMi0xNS4yLTE1LjktMTUuMmwtMzUuMyAwIDAtOTcuNmMwLTkuMi03LjYtMTYuNi0xNy0xNi42em0tNzMgODguNmwtMzMuMiAwIDE2LjYtNDcuMSAxNi42IDQ3LjF6XCJdXG59O1xudmFyIGZhRmx1dHRlciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdmbHV0dGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNjk0XCIsIFwiTTQyOS41IDIzNi4zTDI5MS43IDM3NC4xIDQyOS41IDUxMiAyNzIgNTEyYy0zNi4xLTM2LjEtODIuMS04Mi4xLTEzNy45LTEzNy45bDEzNy45LTEzNy44IDE1Ny41IDB6TTI3MiAwTDE2IDI1NiA5NC44IDMzNC44IDQyOS41IDAgMjcyIDB6XCJdXG59O1xudmFyIGZhQnVmZmVyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2J1ZmZlcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjgzN1wiLCBcIk00MjguMiAzODAuN0wyMzEuNyA0NzguNWMtMi4zIDEtNC44IDEuNS03LjMgMS41cy01LS41LTcuMy0xLjVMMjAuNSAzODAuN2MtNC0yLTQtNS4zIDAtNy4zTDY3LjYgMzUwYzIuMy0xIDQuOC0xLjUgNy4zLTEuNXM1IC41IDcuMyAxLjVsMTM0LjggNjdjMi4zIDEgNC44IDEuNSA3LjMgMS41czUtLjUgNy4zLTEuNWwxMzQuOC02N2MyLjMtMSA0LjgtMS41IDcuMy0xLjVzNSAuNSA3LjMgMS41bDQ3LjEgMjMuNGM0IDIgNCA1LjIgMCA3LjJ6bTAtMTM2LjVsLTQ3LjEtMjMuNGMtMi4zLTEtNC44LTEuNS03LjMtMS41cy01IC41LTcuMyAxLjVMMjMxLjcgMjg3LjhjLTIuMyAxLTQuOCAxLjUtNy4zIDEuNXMtNS0uNS03LjMtMS41TDgyLjMgMjIwLjdjLTIuMy0xLTQuOC0xLjUtNy4zLTEuNXMtNSAuNS03LjMgMS41TDIwLjUgMjQ0LjFjLTQgMi00IDUuMyAwIDcuM2wxOTYuNSA5Ny44YzIuMyAxIDQuOCAxLjUgNy4zIDEuNXM1LS41IDcuMy0xLjVsMTk2LjUtOTcuOGM0LTIgNC01LjMgMC03LjN6TTIwLjUgMTMwLjRMMjE3IDIyMC43YzQuNyAxLjkgMTAgMS45IDE0LjcgMGwxOTYuNS05MC4zYzQtMS45IDQtNC45IDAtNi43TDIzMS43IDMzLjRjLTQuNy0xLjktMTAtMS45LTE0LjcgMEwyMC41IDEyMy43Yy00IDEuOC00IDQuOSAwIDYuN3pcIl1cbn07XG52YXIgZmFHcmF0aXBheSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdncmF0aXBheScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE4NFwiLCBcIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTM3NC4zIDIzMy43TDI1Ny43IDM5MS4zIDE0MS4zIDIzMy43Yy05LTEyLjMtMTkuNy01MiAxNC03NC4zIDI5LTE4LjcgNTYuNC00LjMgNzAuNyAxMi4zIDE2LjQgMTguNSA0OC4xIDE3LjQgNjMuNyAwIDE0LjMtMTYuNiA0MS43LTMxIDcwLjMtMTIuMyAzNCAyMi4zIDIzLjMgNjEuOSAxNC4yIDc0LjN6XCJdXG59O1xudmFyIGZhR29vZ2xlUGF5ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2dvb2dsZS1wYXknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImUwNzlcIiwgXCJNMTA1LjcgMjE1bDAgNDEuMiA1Ny4xIDBjLTEuMiA2LjYtMy42IDEyLjktNy4yIDE4LjVzLTguNCAxMC40LTEzLjkgMTQuMWMtOS41IDYuNi0yMS43IDEwLjMtMzYgMTAuMy0yNy42IDAtNTAuOS0xOC45LTU5LjMtNDQuMi00LjQtMTMuMy00LjQtMjcuNyAwLTQxIDguNC0yNS41IDMxLjctNDQuNCA1OS4zLTQ0LjQgNy41LS4xIDE0LjkgMS4yIDIxLjkgNHMxMy4zIDYuOSAxOC42IDEyLjFMMTc2LjUgMTU1Yy0xOS4xLTE4LjEtNDQuNC0yOC4xLTcwLjctMjcuOC0xOS43IC4xLTM4LjkgNS43LTU1LjYgMTYuMXMtMzAuMSAyNS4zLTM4LjggNDNDMy45IDIwMS4yIDAgMjE3LjcgMCAyMzQuNHMzLjkgMzMuMiAxMS4zIDQ4LjFsMCAuMmM4LjcgMTcuNyAyMi4xIDMyLjUgMzguOCA0M3MzNS45IDE2IDU1LjYgMTZjMjguNSAwIDUyLjUtOS41IDcwLTI1LjkgMjAtMTguNiAzMS40LTQ2LjIgMzEuNC03OC45IDAtNy4zLS42LTE0LjYtMS44LTIxLjhsLTk5LjcgMHptMzg5LjQtNGMtMTAuMS05LjQtMjMuOS0xNC4xLTQxLjQtMTQuMS0yMi41IDAtMzkuMyA4LjMtNTAuNSAyNC45TDQyNC4xIDIzNWM3LjYtMTEuMyAxOC4xLTE3IDMxLjMtMTcgOC40IDAgMTYuNSAzLjIgMjIuNyA4LjggMyAyLjYgNS41IDUuOSA3LjEgOS42czIuNSA3LjYgMi41IDExLjdsMCA1LjVjLTkuMS01LjEtMjAuNi03LjgtMzQuNi03LjgtMTYuNCAwLTI5LjYgMy45LTM5LjUgMTEuOHMtMTQuOCAxOC4zLTE0LjggMzEuNmMtLjIgNS45IDEgMTEuOCAzLjQgMTcuMnM2IDEwLjIgMTAuNSAxNC4xYzkuMiA4LjMgMjEgMTIuNSAzNC44IDEyLjUgMTYuMyAwIDI5LjItNy4zIDM5LTIxLjlsMSAwIDAgMTcuNyAyMi42IDAgMC03OC43Yy4xLTE2LjYtNC45LTI5LjctMTUtMzl6bS0xOS4yIDg5LjNjLTMuNSAzLjUtNy42IDYuMy0xMi4yIDguMnMtOS41IDIuOS0xNC40IDIuOWMtNi43IC4xLTEzLjEtMi4xLTE4LjMtNi4yLTIuNC0xLjgtNC40LTQuMi01LjctNi45cy0yLTUuNy0yLTguN2MwLTcgMy4yLTEyLjggOS41LTE3LjRzMTQuNS03IDI0LjEtN2MxMy4yLS4yIDIzLjUgMi44IDMwLjggOC44IDAgMTAuMS00IDE4LjktMTEuNyAyNi40em0tOTMuNy0xNDJjLTUuMy01LjMtMTEuNi05LjUtMTguNi0xMi4zcy0xNC40LTQuMi0yMS45LTRsLTYyLjcgMCAwIDE4Ni43IDIzLjYgMCAwLTc1LjYgMzkgMGMxNiAwIDI5LjUtNS40IDQwLjUtMTUuOSAuOS0uOSAxLjgtMS44IDIuNi0yLjcgOS42LTEwLjUgMTQuOC0yNC40IDE0LjMtMzguNnMtNi42LTI3LjctMTYuOS0zNy42bDAgMHptLTE2LjYgNjIuMmMtMyAzLjItNi42IDUuNy0xMC42IDcuNHMtOC40IDIuNS0xMi43IDIuM2wtMzkuNiAwIDAtNjUuMiAzOS42IDBjOC41IDAgMTYuNiAzLjMgMjIuNiA5LjIgNi4xIDYuMSA5LjYgMTQuMyA5LjggMjNzLTMuMSAxNy05IDIzLjNsMCAwek02MTQuMyAyMDFsLTM2LjUgOTEuNy0uNSAwLTM3LjQtOTEuNy0yNS43IDAgNTEuOCAxMTkuNi0yOS40IDY0LjMgMjQuMyAwIDc5LTE4My45LTI1LjcgMHpcIl1cbn07XG52YXIgZmFBcHBsZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdhcHBsZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjE3OVwiLCBcIk0zMTkuMSAyNjguN2MtLjItMzYuNyAxNi40LTY0LjQgNTAtODQuOC0xOC44LTI2LjktNDcuMi00MS43LTg0LjctNDQuNi0zNS41LTIuOC03NC4zIDIwLjctODguNSAyMC43LTE1IDAtNDkuNC0xOS43LTc2LjQtMTkuNy01NS44IC45LTExNS4xIDQ0LjUtMTE1LjEgMTMzLjIgMCAyNi4yIDQuOCA1My4zIDE0LjQgODEuMiAxMi44IDM2LjcgNTkgMTI2LjcgMTA3LjIgMTI1LjIgMjUuMi0uNiA0My0xNy45IDc1LjgtMTcuOSAzMS44IDAgNDguMyAxNy45IDc2LjQgMTcuOSA0OC42LS43IDkwLjQtODIuNSAxMDIuNi0xMTkuMy02NS4yLTMwLjctNjEuNy05MC02MS43LTkxLjl6TTI2Mi41IDEwNC41YzI3LjMtMzIuNCAyNC44LTYxLjkgMjQtNzIuNS0yNC4xIDEuNC01MiAxNi40LTY3LjkgMzQuOS0xNy41IDE5LjgtMjcuOCA0NC4zLTI1LjYgNzEuOSAyNi4xIDIgNDkuOS0xMS40IDY5LjUtMzQuM3pcIl1cbn07XG52YXIgZmFUdW1ibHIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndHVtYmxyJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMTczXCIsIFwiTTMwOS45IDQ4MC4zYy0xMy42IDE0LjUtNTAgMzEuNy05Ny40IDMxLjctMTIwLjggMC0xNDctODguOC0xNDctMTQwLjZsMC0xNDQtNDcuNSAwYy01LjUgMC0xMC00LjUtMTAtMTBsMC02OGMwLTcuMiA0LjUtMTMuNiAxMS4zLTE2IDYyLTIxLjggODEuNS03NiA4NC4zLTExNy4xIC44LTExIDYuNS0xNi4zIDE2LjEtMTYuM2w3MC45IDBjNS41IDAgMTAgNC41IDEwIDEwbDAgMTE1LjIgODMgMGM1LjUgMCAxMCA0LjQgMTAgOS45bDAgODEuN2MwIDUuNS00LjUgMTAtMTAgMTBsLTgzLjQgMCAwIDEzMy4yYzAgMzQuMiAyMy43IDUzLjYgNjggMzUuOCA0LjgtMS45IDktMy4yIDEyLjctMi4yIDMuNSAuOSA1LjggMy40IDcuNCA3LjlsMjIgNjQuM2MxLjggNSAzLjMgMTAuNi0uNCAxNC41elwiXVxufTtcbnZhciBmYVBob2VuaXhTcXVhZHJvbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdwaG9lbml4LXNxdWFkcm9uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTExXCIsIFwiTTk2IDYzLjRjNDYuNS0zNi4xIDEwNS42LTU2LjEgMTY0LjUtNTQuNiAyOS42LS40IDU5LjEgNS40IDg2LjkgMTUuMy0yNC4xLTQuNi00OS02LjMtNzMuNC0yLjUtNDIuOSA1LjMtODMgMjcuMi0xMTEuOCA1OS4yIDUuNy0xIDEwLjgtMy43IDE2LTUuOSAxOC4xLTcuOSAzNy41LTEzLjMgNTcuMi0xNC44IDE5LjctMi4xIDM5LjYtLjQgNTkuMyAxLjktMTQuNCAyLjgtMjkuMSA0LjYtNDMgOS42LTM0LjQgMTEuMS02NS4zIDMzLjItODYuMyA2Mi42LTEzLjggMTkuNy0yMy42IDQyLjktMjQuNyA2Ny4xLS40IDE2LjUgNS4yIDM0LjggMTkuOCA0NCAxMS4yIDYuOCAyNC42IDkuMiAzNy41IDYuNyAxNS40LTIuNSAzMC4xLTguNiA0My42LTE2LjMgMTEuNS02LjggMjIuNy0xNC42IDMyLTI0LjMgMy44LTMuMiAyLjUtOC40IDIuNi0xMi44LTIuMS0uMy00LjQtMS4xLTYuMyAuMy0xMS40IDYuMy0yMy40IDExLjQtMzUuOCAxNS40LTIwIDYuMi00Mi4yIDguNS02Mi4xIC44IDEyLjggMS43IDI2LjEgLjMgMzcuNy01LjQgMjAuMi05LjcgMzYuOC0yNS4yIDU0LjQtMzguOCAyNy43LTIxLjMgNTcuNS0zOS45IDg4LjktNTUuMyAyNS43LTEyIDUyLjktMjIuOCA4MS42LTI0LjEtMTUuNiAxMy43LTMyLjEgMjYuNS00Ni44IDQxLjQtMTQuNSAxNC0yNy41IDI5LjUtNDAuMSA0NS4yLTMuNSA0LjYtOSA2LjktMTMuNiAxMC4yLTIyLjQgMTUtNDAuMyAzNS44LTUxLjkgNjAuMS05LjMgMTkuNy0xNC41IDQxLjktMTEuOCA2My42IDEuOSAxMy43IDguNyAyNy42IDIwLjkgMzQuOSAxMi45IDggMjkgOC4xIDQzLjUgNS4xIDMyLjgtNy40IDYxLjQtMjguOSA4MS01NS44IDIwLjQtMjcuNSAzMC41LTYyLjIgMjkuMi05Ni4zLS41LTcuNS0xLjYtMTUtMS43LTIyLjUgOCAxOS41IDE0LjggMzkuNyAxNi42IDYwLjggMiAxNC4zIC43IDI4LjgtMS42IDQyLjktMS45IDExLTUuNyAyMS41LTcuOCAzMi40IDIwLjQtMjIuOSAzNC01MC45IDM5LjMtODEuMSA1LjYtMzUuNSAuNy03MS45LTE0LjItMTA0LjYgMjAuOCAzMiAzMi4zIDY5LjYgMzUuNyAxMDcuNSAuNSAxMi43IC41IDI1LjUgMCAzOC4yLTIuOCAzNC4zLTEyLjkgNjcuNi0yOS42IDk3LjgtMjYuMSA0Ny4zLTY4IDg1LjYtMTE3LjIgMTA4LTc4LjMgMzYuMi0xNzQuNyAzMS4zLTI0OC0xNC43LTM5LTIzLjgtNzAuNi01OC05MS40LTk4LjctMTQuNy0yOC45LTIzLjMtNjAuNS0yNS40LTkyLjlsMC0zMS4zQzMuOSAxNzIgNDAuOSAxMDUuOCA5NiA2My40em0yMjIgODAuM2M1LjUtLjkgMTAuOC0yLjQgMTYtNC41IDUtMS44IDkuMi01LjkgMTAuMy0xMS4yLTkgNS0xOCA5LjktMjYuMyAxNS43elwiXVxufTtcbnZhciBmYUNlbnRlcmNvZGUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY2VudGVyY29kZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjM4MFwiLCBcIk0yMDEuOCAyNTQuOGE2NC4xIDY0LjEgMCAxIDEgMTI3LjQgMTMuOCA2NC4xIDY0LjEgMCAxIDEgLTEyNy40LTEzLjh6bTQxLjYgMjQ4LjlDOTYuNyA0OTYtOC4yIDM2NS41IDEwLjEgMjI0LjMgMjEuMyAxMzcuNyA3NS45IDY3LjQgMTQ5LjIgMzIuMyAzMTAuMi00NC44IDQ5OC45IDY5LjcgNTAzLjkgMjQ4LjkgNTA4IDM5NS45IDM4NS41IDUxMS4xIDI0My40IDUwMy43em0xNzkuOS0xODBjMjcuOS0xMTgtMTYwLjUtMjA1LjktMjM3LjItMjM0LjItNTcuNSA1Ni4zLTY5LjEgMTg4LjYtMzMuOCAzNDQuNCA2OC44IDE1LjggMTY5LjEtMjYuNCAyNzEtMTEwLjJ6XCJdXG59O1xudmFyIGZhRGViaWFuID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2RlYmlhbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTYwYlwiLCBcIk0zODAuNCAyNDUuNmMzLTcuNiA1LjUtMTQgNS4yLTI0LjRsLTQuMyA5YzQuNC0xMy4yIDQtMjcuMSAzLjYtNDAuNC0uMi02LS4zLTExLjggMC0xNy40bC0xLjgtLjVjLTEuNS00NS4yLTQwLjYtOTMuMS03NS4zLTEwOS40LTMwLTEzLjgtNzYuMS0xNi4yLTk3LjMtNS44IDEuMy0xLjEgNC4yLTIgNi44LTIuN2wuMy0uMWMzLjMtMSA2LTEuNyA0LTIuOS0xOS4yIDEuOS0yNC45IDUuNS0zMS4xIDkuNGwtLjEgMGMtNC42IDIuOS05LjUgNi0yMC4zIDguNy0zLjUgMy40IDEuNyAyIDUuOCAuOXM3LjItMS45LS4xIDIuNGMtMy41IDEtNi42IDEuMy05LjYgMS42bC0uMSAwYy04LjMgLjgtMTUuOCAxLjYtMzAuNyAxNyAuOCAxLjMgMy40LS4yIDUuMy0xLjNsLjEtLjFjMi4zLTEuNCAzLjQtMi0xLjcgNC40LTE5LjEtMi40LTYwLjMgNDMuNy02OS4xIDU5bDQuNiAuOGMtMy4yIDgtNi44IDE0LjgtMTAgMjAuOC00LjMgOC4xLTcuOSAxNC45LTguNyAyMS4zLS4zIDUuMS0xIDExLTEuNyAxNy4zLS4xIDEtLjIgMi0uMyAzbC0uMSAuNmMtMyAyNy4zLTYuNyA2MC44IDMuOSA3M2wtMS4zIDEzYy42IDEuMiAxLjEgMi4zIDEuNiAzLjUgLjIgLjQgLjQgLjggLjUgMS4xIDEgMi4xIDIgNC4yIDMuMyA2LjJsLTMgLjJjNyAyMi4xIDEwLjggMjIuNSAxNS4xIDIyLjkgNC40IC40IDkuMyAuOSAxOC43IDI0LjItMi43LS45LTUuNS0xLjktOS40LTcuMi0uNSA0LjEgNS44IDE2LjMgMTMuMSAyNS44bC0zLjEgMy42YzIuMSAzLjcgNC44IDYuMiA3LjYgOC44IDEgLjkgMi4xIDEuOSAzLjEgMi45LTExLjktNi41IDMuMiAxMy43IDExLjkgMjUuMiAuOCAxLjEgMS41IDIgMi4yIDIuOSAxLjQgMS45IDIuNSAzLjQgMi45IDQuMWwyLjQtNC4yYy0uMyA2LjEgNC4zIDEzLjkgMTMuMSAyNC43bDcuMy0uM2MzIDYgMTQgMTYuNyAyMC43IDE3LjJsLTQuNCA1LjhjOC4xIDIuNiAxMC4zIDQuMyAxMi43IDYuMiAyLjYgMi4xIDUuNCA0LjMgMTYuMSA4LjFsLTQuMi03LjRjMy41IDMgNi4yIDUuOSA4LjggOC43bC4xIC4xYzUuMiA1LjYgOS45IDEwLjYgMTkuNyAxNS4zIDEwLjcgMy43IDE2LjYgNC43IDIyLjcgNS44IC4zIDAgLjYgLjEgLjkgLjEgNS40IC44IDExLjIgMS44IDIwLjggNC41LTEuMS0uMS0yLjItLjEtMy4zLS4xLTIuMy0uMS00LjctLjEtNy0uMS0xNC40LS4yLTI5LjItLjQtNDIuNy01LjItOTYuNi0yNS43LTE4NC45LTEzOS0xNzguNC0yNTUuNi0uNi05LjktLjMtMjAuOSAwLTMwLjcgLjQtMTMuNSAuNy0yNC44LTEuNi0yOC4zbDEtMy4xYzUuMy0xNy40IDExLjctMzguMiAyMy44LTYyLjhsLS4xLS4yIDAtLjFjLjQgLjQgMy40IDMuNCA4LjgtNS44IC44LTEuOCAxLjYtMy43IDIuNC01LjYgLjUtMS4xIC45LTIuMiAxLjQtMy4yIDIuNS02LjEgNS4xLTEyLjMgOC40LTE3LjlsMi42LS42YzEuNy0xMC4xIDE3LTIzLjggMjkuOC0zNS4ybDEuMS0xYzUuNy01LjEgMTAuNy05LjcgMTMuNi0xMy4xbC43IDQuNGMxNy0xNS45IDQ0LjYtMjcuNSA2NS42LTM2LjRsLjUtLjJjNC44LTIgOS4zLTMuOSAxMy4zLTUuNy0zLjQgMy44IDIuMiAyLjcgMTAgMSA0LjgtMSAxMC40LTIuMSAxNS4zLTIuNGwtMy45IDIuMWMtMi43IDEuNC01LjQgMi44LTggNC42IDguMS0yIDExLjctMS40IDE1LjctLjhsLjMgMGMzLjUgLjYgNy4zIDEuMiAxNC42IC4yLTUuNiAuOC0xMi4zIDMtMTEuMiAzLjggNy45IC45IDEyLjgtLjEgMTcuMi0xbC4yIDBjNS41LTEuMSAxMC4zLTIgMTkuMyAuOWwtMS00LjhjNy4zIDIuNiAxMi43IDQuMyAxNy41IDUuOGwuNSAuMWMxMCAzIDE3LjYgNS4zIDM0LjIgMTQuMSAzLjIgLjIgNS4zLS41IDcuNC0xLjJsLjEgMGMzLjYtMS4xIDctMi4xIDE1LjIgMS4yIC4zIC41IC41IDEgLjcgMS40IC4xIC4yIC4yIC41IC4zIC43bDAgLjFjMSAyLjYgMS44IDQuNiAxNC42IDEyLjEgMS43LS43LTIuNy00LjctNi40LTguMmwtLjEtLjFjLS4yLS4xLS4zLS4zLS41LS40IDMyLjIgMTcuMyA2Ny4zIDU0LjEgNzggOTMuNS02LTExLjEtNS4yLTUuNS00LjMgLjUgLjYgNCAxLjIgOC4xLS4yIDcuNSA0LjUgMTIuMSA4LjEgMjQuNSAxMC40IDM3LjRsLS44LTIuOS0uMS0uM2MtMy4zLTExLjktOS42LTM0LjMtMTkuOS00OS4zLS40IDQuMy0yLjggMy45LTUuMiAzLjVsLS4xIDBjLTMuMy0uNi02LjItMS4xLTEuOSAxMi42IDIuNiAzLjggMy4xIDIuNCAzLjUgMS4xIC41LTEuNSAuOS0yLjcgNC43IDUuMiAuMSA0LjEgMSA4LjIgMi4xIDEyLjdsLjEgLjZjLjEgLjMgLjEgLjUgLjIgLjhsLjEgLjZjLjYgMi42IDEuMyA1LjQgMS44IDguNC0xLjEtLjItMi4zLTIuMi0zLjQtNC4yLTEuNC0yLjQtMi44LTQuNy0zLjctMy4yIDIuNCAxMS41IDYuNSAxNy40IDggMTguMy0uMyAuNi0uNiAuNy0xLjEgLjctLjggMC0xLjggLjEtMS45IDUuMyAuNyAxMy43IDMuMyAxMi41IDUuMyAxMS42IC42LS4zIDEuMi0uNiAxLjctLjQtLjYgMi41LTEuNiA1LjEtMi43IDcuOS0yLjggNy4xLTYgMTUuNC0zLjQgMjYuMS0uOC0zLTItNi0zLjEtOC45bC0uMS0uNGMtLjItLjUtLjQtMS0uNi0xLjUtLjMtLjgtLjYtMS42LS45LTIuMy0uNiA0LjQtLjMgNy43LS4xIDEwLjZsMCAuN2MuNCA1LjMgLjcgMTAtMyAxOS45IDQuMy0xNC4yIDMuOC0yNi45LS4yLTIwLjggMSAxMC45LTMuNyAyMC40LTggMjguOWwtLjEgLjJjLTMuNiA3LjEtNi44IDEzLjUtNS45IDE5LjNsLTUuMi03LjFjLTcuNSAxMC45LTcgMTMuMy02LjUgMTUuNWwwIC4xYy41IDEuOSAxIDMuOC0zLjQgMTAuOCAxLjctMi45IDEuMy0zLjYgMS00LjItLjQtLjgtLjctMS41IDEuNy01LjEtMS42IC4xLTUuNSAzLjktMTAuMSA4LjUtMy45IDMuOS04LjUgOC40LTEyLjggMTEuOC0zNy41IDMwLjEtODIuMyAzNC0xMjUuNiAxNy44IC4yLTEtLjItMi4xLTMuMS00LjEtMzYuOC0yOC4yLTU4LjUtNTIuMS01MC45LTEwNy41IDIuMS0xLjYgMy42LTUuOCA1LjMtMTAuOGwuMi0uNCAuMS0uMyAwLS4xYzIuOS04LjQgNi41LTE4LjggMTQuMy0yMy44IDcuOC0xNy4zIDMxLjMtMzMuMyA1Ni40LTMzLjcgMjUuNi0xLjQgNDcuMiAxMy43IDU4LjEgMjcuOS0xOS44LTE4LjQtNTIuMS0yNC03OS43LTEwLjQtMjguMiAxMi43LTQ1IDQzLjgtNDIuNSA3NC43IC4zLS40IC42LS42IC45LS44bC4yLS4yYy42LS41IDEuMS0uOSAxLjQtMy4zLS45IDYwLjIgNjQuOCAxMDQuMyAxMTIuMSA4MmwuNiAxLjNjMTIuNy0zLjUgMTUuOS02LjUgMjAuMy0xMC43bC4xLS4xYzIuMi0yLjEgNC43LTQuNSA4LjktNy4zLS4zIC43LTEuMyAxLjctMi40IDIuNy0yLjIgMi4xLTQuNiA0LjUtMS42IDQuNiA1LTEuMyAxOC41LTEzLjQgMjguNS0yMi4zIC42LS41IDEuMi0xIDEuNy0xLjUgMS41LTEuMyAyLjgtMi41IDQtMy42bC4zLS4zYzEuOS00LjIgMS42LTUuNiAxLjMtN2wwLS4xYy0uNC0xLjYtLjgtMy4zIDIuNC05LjZsNy4zLTMuN2MuOC0yLjEgMS41LTQuMSAyLjItNiAuMi0uNiAuNS0xLjIgLjctMS44bC0uNC0uMi0uMS0uMXpNMjQ4IDMzNC4xYy02LTMtMTMuNy04LjktMTQuOC0xMS40bC0uNCAuM2MtLjMgLjYtLjUgMS4zLS4yIDIuMi0xMi4yLTUuNy0yMy40LTE0LjMtMzIuNi0yNC45IDQuOSA3LjEgMTAuMSAxNC4xIDE3IDE5LjUtNi45LTIuMy0xNS4xLTExLjgtMjEuNi0xOS4zbC0uMS0uMWMtNC4zLTUtNy45LTkuMS05LjctOS41IDE5LjggMzUuNSA4MC41IDYyLjMgMTEyLjMgNDktMTQuNyAuNS0zMy40IC4zLTQ5LjktNS44em03OS4zLTExOS43bC0uMS0uMmMtLjUtMS41LTEuMS0zLjEtMS43LTMuNCAxLjQtNS44IDUuNC0xMC43IDQuNCA0LjYtMSAzLjgtMS44IDEuNS0yLjYtMXptLTQuMiAyMi4yYy0xLjMgNy45LTUgMTUuNS0xMC4xIDIyLjUgLjItMi0xLjItMi40LTIuNi0yLjgtMi45LS44LTUuOS0xLjYgNS42LTE2LjEtLjUgMS45LTIuMSA0LjYtMy43IDcuM2wtLjMgLjRjLTMuNiA1LjktNi43IDExIDQgNC4zbDEtMS44YzIuNi00LjUgNS04LjggNi0xMy44bC4xIDB6bS01NS42IDMzLjljNy4xIC42IDE0LjEgLjYgMjEtMS4xLTIuNSAyLjQtNS4yIDQuOC04LjMgNy4yLTExLjEtMS43LTIxLjItNi0xMi43LTYuMXptLTkyLjYgMTEuNmMzLjYgNy4xIDYuNCAxMS41IDkgMTUuN2wuMSAuMmMyLjMgMy43IDQuNCA3LjEgNi44IDExLjctNS4xLTQuMi04LjctOS41LTEyLjUtMTVsLS4zLS41Yy0xLjQtMi4xLTIuOC00LjItNC40LTYuMmwxLjItNS45IC4xIDB6bTcuNS05LjZjMS42IDMuMyAzLjIgNi40IDUuNyA5LjFsMi42IDcuNy0xLjMtMi4xYy0zLjItNS4zLTYuMy0xMC42LTgtMTYuN2wxIDJ6bTIzOC45LTQxLjZjLTIuMyAxNy40LTcuNyAzNC42LTE2IDUwLjMgNy42LTE0LjkgMTIuNS0zMC45IDE0LjgtNDcuMmwxLjItMy4xek0zNS44IDExMC42Yy40IC44IDEuNCAuNSAyLjMgLjMgMS45LS41IDMuNi0uOS0uMSA3LjYtLjUgLjMtMSAuNy0xLjUgMS0xLjQgLjktMi44IDEuOS0zLjkgMyAxLjktMy44IDMuNS03LjQgMy4yLTExLjl6TTI1LjUgMTUyLjNjLS43IDMuNy0xLjUgNy45LTMuNCAxMy45IC4yLTEuOSAwLTMuNS0uMi00LjlsMC0uMWMtLjQtMy40LS43LTYuMyA0LjMtMTIuOC0uMyAxLjItLjUgMi41LS43IDMuOGwwIC4xelwiXVxufTtcbnZhciBmYU1hc3RvZG9uID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ21hc3RvZG9uJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNGY2XCIsIFwiTTQzMyAxNzkuMWMwLTk3LjItNjMuNy0xMjUuNy02My43LTEyNS43LTYyLjUtMjguNy0yMjguNi0yOC40LTI5MC41IDAgMCAwLTYzLjcgMjguNS02My43IDEyNS43IDAgMTE1LjctNi42IDI1OS40IDEwNS42IDI4OS4xIDQwLjUgMTAuNyA3NS4zIDEzIDEwMy4zIDExLjQgNTAuOC0yLjggNzkuMy0xOC4xIDc5LjMtMTguMWwtMS43LTM2LjlzLTM2LjMgMTEuNC03Ny4xIDEwLjFjLTQwLjQtMS40LTgzLTQuNC04OS42LTU0LS42LTQuNi0uOS05LjMtLjktMTMuOSA4NS42IDIwLjkgMTU4LjcgOS4xIDE3OC43IDYuNyA1Ni4xLTYuNyAxMDUtNDEuMyAxMTEuMi03Mi45IDkuOC00OS44IDktMTIxLjUgOS0xMjEuNXpNMzU3LjkgMzA0LjNsLTQ2LjYgMCAwLTExNC4yYzAtNDkuNy02NC01MS42LTY0IDYuOWwwIDYyLjUtNDYuMyAwIDAtNjIuNWMwLTU4LjUtNjQtNTYuNi02NC02LjlsMCAxMTQuMi00Ni43IDBjMC0xMjIuMS01LjItMTQ3LjkgMTguNC0xNzUgMjUuOS0yOC45IDc5LjgtMzAuOCAxMDMuOCA2LjFsMTEuNiAxOS41IDExLjYtMTkuNWMyNC4xLTM3LjEgNzguMS0zNC44IDEwMy44LTYuMSAyMy43IDI3LjMgMTguNCA1MyAxOC40IDE3NWwwIDB6XCJdXG59O1xudmFyIGZhU2tldGNoID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NrZXRjaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdjNlwiLCBcIk0yNy44IDE2Mi4ybC0xOC41IDI0LjkgOTAuNSAwIDYuOS0xMzAuNy03OC45IDEwNS44ek0zOTYuNiA0NS43TDI2OCAzMiA0MDMuNyAxNzkuMiAzOTYuNiA0NS43ek0xMTIuNSAyMTguM2wtMTEuMi0yMi05MS4xIDAgMjI0LjkgMjYxLjctMTIyLjYtMjM5Ljd6bTItMzEuMmwyODQgMEMzNDAuNiAxMjQuMyAyOTMuMyA3Mi45IDI1Ni42IDMzTDExNC41IDE4Ny4xem0yOTcuMyA5LjFsLTEzMy45IDI2MS44IDIyNC44LTI2MS43LTkwLjkgMCAwLS4xek00MTUuNyA2OWwtOS40LTEyLjYgLjkgMTcuMyA2LjEgMTEzLjQgOTAuMyAwLTg3LjktMTE4LjF6TTExMy44IDkzLjVMMTA5LjIgMTc5LjEgMjQ1IDMyIDExNi40IDQ1LjcgMTEzLjggOTMuNXpNNDAxLjUgMTk2LjJsLTI5MCAwYzE4LjIgMzUuNiA2Ni42IDEzMC4yIDE0NS4xIDI4My44TDQwMS41IDE5Ni4yelwiXVxufTtcbnZhciBmYVdlYkF3ZXNvbWUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnd2ViLWF3ZXNvbWUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU2ODJcIiwgXCJNMzcyLjIgNTJjMCAyMC45LTEyLjQgMzktMzAuMiA0Ny4yTDQ0OCAxOTIgNTUyLjQgMTcxLjFjLTUuMy03LjctOC40LTE3LjEtOC40LTI3LjEgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDI2LTIwLjYgNDcuMS00Ni40IDQ4TDQ4MSA0NDIuM2MtMTAuMyAyMy0zMy4yIDM3LjctNTguNCAzNy43bC0yMDUuMiAwYy0yNS4yIDAtNDgtMTQuOC01OC40LTM3LjdMNDYuNCAxOTJDMjAuNiAxOTEuMSAwIDE3MCAwIDE0NCAwIDExNy41IDIxLjUgOTYgNDggOTZzNDggMjEuNSA0OCA0OGMwIDEwLjEtMy4xIDE5LjQtOC40IDI3LjFMMTkyIDE5MiAyOTguMSA5OS4xYy0xNy43LTguMy0zMC0yNi4zLTMwLTQ3LjEgMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwuMSAwelwiXVxufTtcbnZhciBmYVNhc3MgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc2FzcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjQxZVwiLCBcIk0zMDEuOCAzNzguOWwwIDB6bTI0OS4xLTg3Yy0yMC4xIDAtNDAgNC42LTU4IDEzLjUtNS45LTExLjktMTItMjIuMy0xMy0zMC4xLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4zLTYuNy0yNCAyLjUtMjUuMyA1LjljLTIuMyA2LjItNC4xIDEyLjYtNS4zIDE5LjEtMi4zIDExLjctMjUuOCA1My41LTM5LjEgNzUuMy00LjQtOC41LTguMS0xNi04LjktMjItMS4yLTkuMS0yLjUtMTQuNS0xLjEtMjUuM3M3LjctMjYuMSA3LjYtMjcuMi0xLjQtNi42LTE0LjMtNi43LTI0IDIuNS0yNS4zIDUuOS0yLjcgMTEuNC01LjMgMTkuMS0zMy45IDc3LjMtNDIuMSA5NS40Yy00LjIgOS4yLTcuOCAxNi42LTEwLjQgMjEuNi0uNCAuOC0uNyAxLjMtLjkgMS43IC4zLS41IC41LTEgLjUtLjgtMi4yIDQuMy0zLjUgNi43LTMuNSA2LjdsMCAuMWMtMS43IDMuMi0zLjYgNi4xLTQuNSA2LjEtLjYgMC0xLjktOC40IC4zLTE5LjkgNC43LTI0LjIgMTUuOC02MS44IDE1LjctNjMuMS0uMS0uNyAyLjEtNy4yLTcuMy0xMC43LTkuMS0zLjMtMTIuNCAyLjItMTMuMiAyLjJzLTEuNCAyLTEuNCAyIDEwLjEtNDIuNC0xOS40LTQyLjRjLTE4LjQgMC00NCAyMC4yLTU2LjYgMzguNS03LjkgNC4zLTI1IDEzLjYtNDMgMjMuNS02LjkgMy44LTE0IDcuNy0yMC43IDExLjQtLjUtLjUtLjktMS0xLjQtMS41LTM1LjgtMzguMi0xMDEuOS02NS4yLTk5LjEtMTE2LjUgMS0xOC43IDcuNS02Ny44IDEyNy4xLTEyNy40IDk4LTQ4LjggMTc2LjMtMzUuNCAxODkuOC01LjYgMTkuNCA0Mi41LTQxLjkgMTIxLjYtMTQzLjcgMTMzLTM4LjggNC4zLTU5LjItMTAuNy02NC4zLTE2LjMtNS4zLTUuOS02LjEtNi4yLTguMS01LjEtMy4zIDEuOC0xLjIgNyAwIDEwLjEgMyA3LjkgMTUuNSAyMS45IDM2LjggMjguOSAxOC43IDYuMSA2NC4yIDkuNSAxMTkuMi0xMS44IDYxLjgtMjMuOCAxMDkuOS05MC4xIDk1LjgtMTQ1LjYtMTQuNC01Ni40LTEwNy45LTc0LjktMTk2LjMtNDMuNS01Mi43IDE4LjctMTA5LjcgNDguMS0xNTAuNyA4Ni40LTQ4LjcgNDUuNi01Ni41IDg1LjMtNTMuMyAxMDEuOSAxMS40IDU4LjkgOTIuNiA5Ny4zIDEyNS4xIDEyNS43LTEuNiAuOS0zLjEgMS43LTQuNSAyLjUtMTYuMyA4LjEtNzguMiA0MC41LTkzLjcgNzQuNy0xNy41IDM4LjggMi45IDY2LjYgMTYuMyA3MC40IDQxLjggMTEuNiA4NC42LTkuMyAxMDcuNi00My42czIwLjItNzkuMSA5LjYtOTkuNWMtLjEtLjMtLjMtLjUtLjQtLjggNC4yLTIuNSA4LjUtNSAxMi44LTcuNSA4LjMtNC45IDE2LjQtOS40IDIzLjUtMTMuMy00IDEwLjgtNi45IDIzLjgtOC40IDQyLjYtMS44IDIyIDcuMyA1MC41IDE5LjEgNjEuNyA1LjIgNC45IDExLjUgNSAxNS40IDUgMTMuOCAwIDIwLTExLjQgMjYuOS0yNSA4LjUtMTYuNiAxNi0zNS45IDE2LTM1LjlzLTkuNCA1Mi4yIDE2LjMgNTIuMmM5LjQgMCAxOC44LTEyLjEgMjMtMTguM2wwIC4xcy4yLS40IC43LTEuMmMxLTEuNSAxLjUtMi40IDEuNS0yLjRsMC0uM2MzLjgtNi41IDEyLjEtMjEuNCAyNC42LTQ2IDE2LjItMzEuOCAzMS43LTcxLjUgMzEuNy03MS41IDEuNSA4LjcgMy42IDE3LjMgNi4yIDI1LjggMi44IDkuNSA4LjcgMTkuOSAxMy40IDMwLTMuOCA1LjItNi4xIDguMi02LjEgOC4yIDAgLjEgMCAuMSAuMSAuMi0zIDQtNi40IDguMy05LjkgMTIuNS0xMi44IDE1LjItMjggMzIuNi0zMCAzNy42LTIuNCA1LjktMS44IDEwLjMgMi44IDEzLjcgMy40IDIuNiA5LjQgMyAxNS43IDIuNSAxMS41LS44IDE5LjYtMy42IDIzLjUtNS40IDcuMi0yLjYgMTQtNi4xIDIwLjItMTAuNiAxMi41LTkuMiAyMC4xLTIyLjQgMTkuNC0zOS44LS40LTkuNi0zLjUtMTkuMi03LjMtMjguMiAxLjEtMS42IDIuMy0zLjMgMy40LTUgMTkuOC0yOC45IDM1LjEtNjAuNiAzNS4xLTYwLjYgMS41IDguNyAzLjYgMTcuMyA2LjIgMjUuOCAyLjQgOC4xIDcuMSAxNyAxMS40IDI1LjctMTguNiAxNS4xLTMwLjEgMzIuNi0zNC4xIDQ0LjEtNy40IDIxLjMtMS42IDMwLjkgOS4zIDMzLjEgNC45IDEgMTEuOS0xLjMgMTcuMS0zLjUgNy43LTIuNiAxNS02LjMgMjEuNi0xMS4xIDEyLjUtOS4yIDI0LjYtMjIuMSAyMy44LTM5LjYtLjMtNy45LTIuNS0xNS44LTUuNC0yMy40IDE1LjctNi42IDM2LjEtMTAuMiA2Mi4xLTcuMiA1NS43IDYuNSA2Ni42IDQxLjMgNjQuNSA1NS44cy0xMy44IDIyLjYtMTcuNyAyNS01LjEgMy4zLTQuOCA1LjFjLjUgMi42IDIuMyAyLjUgNS42IDEuOSA0LjYtLjggMjkuMi0xMS44IDMwLjMtMzguNyAxLjYtMzQtMzEuMS03MS40LTg5LTcxLjFsMCAwek0xMjEuOCA0MzYuNmMtMTguNCAyMC4xLTQ0LjIgMjcuNy01NS4zIDIxLjMtMTEuOS02LjktNy4yLTM2LjUgMTUuNS01Ny45IDEzLjgtMTMgMzEuNi0yNSA0My40LTMyLjQgMi43LTEuNiA2LjYtNCAxMS40LTYuOSAuOC0uNSAxLjItLjcgMS4yLS43IC45LS42IDEuOS0xLjEgMi45LTEuNyA4LjMgMzAuNCAuMyA1Ny4yLTE5LjEgNzguM2wwIDB6bTEzNC40LTkxLjRjLTYuNCAxNS43LTE5LjkgNTUuNy0yOC4xIDUzLjYtNy0xLjgtMTEuMy0zMi4zLTEuNC02Mi4zIDUtMTUuMSAxNS42LTMzLjEgMjEuOS00MC4xIDEwLjEtMTEuMyAyMS4yLTE0LjkgMjMuOC0xMC40IDMuNSA1LjktMTIuMiA0OS40LTE2LjIgNTkuMnptMTExIDUzYy0yLjcgMS40LTUuMiAyLjMtNi40IDEuNi0uOS0uNSAxLjEtMi40IDEuMS0yLjRzMTMuOS0xNC45IDE5LjQtMjEuN2MzLjItNCA2LjktOC43IDEwLjktMTMuOSAwIC41IC4xIDEgLjEgMS42LS4xIDE3LjktMTcuMyAzMC0yNS4xIDM0LjhsMCAwem04NS42LTE5LjVjLTItMS40LTEuNy02LjEgNS0yMC43IDIuNi01LjcgOC42LTE1LjMgMTktMjQuNSAxLjIgMy41IDEuOCA3LjEgMS45IDEwLjgtLjEgMjIuNS0xNi4yIDMwLjktMjUuOSAzNC40bDAgMHpcIl1cbn07XG52YXIgZmFTcXVhcmVXaGF0c2FwcCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtd2hhdHNhcHAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcIndoYXRzYXBwLXNxdWFyZVwiXSwgXCJmNDBjXCIsIFwiTTkyLjEgMjU0LjZjMCAyNC45IDcgNDkuMiAyMC4yIDcwLjFsMy4xIDUtMTMuMyA0OC42IDQ5LjktMTMuMSA0LjggMi45YzIwLjIgMTIgNDMuNCAxOC40IDY3LjEgMTguNGwuMSAwYzcyLjYgMCAxMzMuMy01OS4xIDEzMy4zLTEzMS44IDAtMzUuMi0xNS4yLTY4LjMtNDAuMS05My4yLTI1LTI1LTU4LTM4LjctOTMuMi0zOC43LTcyLjcgMC0xMzEuOCA1OS4xLTEzMS45IDEzMS44ek0yNzQuOCAzMzBjLTEyLjYgMS45LTIyLjQgLjktNDcuNS05LjktMzYuOC0xNS45LTYxLjgtNTEuNS02Ni45LTU4LjctLjQtLjYtLjctLjktLjgtMS4xLTItMi42LTE2LjItMjEuNS0xNi4yLTQxIDAtMTguNCA5LTI3LjkgMTMuMi0zMi4zIC4zLS4zIC41LS41IC43LS44IDMuNi00IDcuOS01IDEwLjYtNSAyLjYgMCA1LjMgMCA3LjYgLjFsLjggMGMyLjMgMCA1LjIgMCA4LjEgNi44IDEuMiAyLjkgMyA3LjMgNC45IDExLjggMy4zIDggNi43IDE2LjMgNy4zIDE3LjYgMSAyIDEuNyA0LjMgLjMgNi45LTMuNCA2LjgtNi45IDEwLjQtOS4zIDEzLTMuMSAzLjItNC41IDQuNy0yLjMgOC42IDE1LjMgMjYuMyAzMC42IDM1LjQgNTMuOSA0Ny4xIDQgMiA2LjMgMS43IDguNi0xIDIuMy0yLjYgOS45LTExLjYgMTIuNS0xNS41IDIuNi00IDUuMy0zLjMgOC45LTJzMjMuMSAxMC45IDI3LjEgMTIuOWMuOCAuNCAxLjUgLjcgMi4xIDEgMi44IDEuNCA0LjcgMi4zIDUuNSAzLjYgLjkgMS45IC45IDkuOS0yLjQgMTkuMS0zLjMgOS4zLTE5LjEgMTcuNy0yNi43IDE4Ljh6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xNDguMSAzOTMuOUw2NCA0MTYgODYuNSAzMzMuOGMtMTMuOS0yNC0yMS4yLTUxLjMtMjEuMi03OS4zIC4xLTg3LjQgNzEuMi0xNTguNSAxNTguNi0xNTguNSA0Mi40IDAgODIuMiAxNi41IDExMi4yIDQ2LjUgMjkuOSAzMCA0Ny45IDY5LjggNDcuOSAxMTIuMiAwIDg3LjQtNzIuNyAxNTguNS0xNjAuMSAxNTguNS0yNi42IDAtNTIuNy02LjctNzUuOC0xOS4zelwiXVxufTtcbnZhciBmYVdoYXRzYXBwU3F1YXJlID0gZmFTcXVhcmVXaGF0c2FwcDtcbnZhciBmYVNreXBlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NreXBlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMTdlXCIsIFwiTTQyNC43IDI5OS44YzIuOS0xNCA0LjctMjguOSA0LjctNDMuOCAwLTExMy41LTkxLjktMjA1LjMtMjA1LjMtMjA1LjMtMTQuOSAwLTI5LjcgMS43LTQzLjggNC43LTE5LTE0LjctNDIuNi0yMy40LTY4LjMtMjMuNC02MS44IDAtMTEyIDUwLjItMTEyIDExMiAwIDI1LjcgOC43IDQ5LjMgMjMuMyA2OC4yLTIuOSAxNC00LjcgMjguOS00LjcgNDMuOCAwIDExMy41IDkxLjkgMjA1LjMgMjA1LjMgMjA1LjMgMTQuOSAwIDI5LjctMS43IDQzLjgtNC43IDE5IDE0LjYgNDIuNiAyMy4zIDY4LjIgMjMuMyA2MS44IDAgMTEyLTUwLjIgMTEyLTExMiAuMS0yNS42LTguNi00OS4yLTIzLjItNjguMXpNMjMwLjEgMzkxLjNjLTY1LjYgMC0xMjAuNS0yOS4yLTEyMC41LTY1IDAtMTYgOS0zMC42IDI5LjUtMzAuNiAzMS4yIDAgMzQuMSA0NC45IDg4LjEgNDQuOSAyNS43IDAgNDIuMy0xMS40IDQyLjMtMjYuMyAwLTE4LjctMTYtMjEuNi00Mi0yOC02Mi41LTE1LjQtMTE3LjgtMjItMTE3LjgtODcuMiAwLTU5LjIgNTguNi04MS4xIDEwOS4xLTgxLjEgNTUuMSAwIDExMC44IDIxLjkgMTEwLjggNTUuNCAwIDE2LjktMTEuNCAzMS44LTMwLjMgMzEuOC0yOC4zIDAtMjkuMi0zMy41LTc1LTMzLjUtMjUuNyAwLTQyIDctNDIgMjIuNSAwIDE5LjggMjAuOCAyMS44IDY5LjEgMzMgNDEuNCA5LjMgOTAuNyAyNi44IDkwLjcgNzcuNiAwIDU5LjEtNTcuMSA4Ni41LTExMiA4Ni41elwiXVxufTtcbnZhciBmYUFuZ3VsYXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYW5ndWxhcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjQyMFwiLCBcIk0xODUuNyAyNjguMWw3Ni4yIDAtMzguMS05MS42LTM4LjEgOTEuNnpNMjIzLjggMzJMMTYgMTA2LjQgNDcuOCAzODIuMSAyMjMuOCA0ODAgMzk5LjggMzgyLjEgNDMxLjYgMTA2LjQgMjIzLjggMzJ6TTM1NCAzNzMuOGwtNDguNiAwLTI2LjItNjUuNC0xMTAuNiAwLTI2LjIgNjUuNC00OC43IDAgMTMwLjEtMjkyLjMgMTMwLjIgMjkyLjN6XCJdXG59O1xudmFyIGZhT3BlbnN1c2UgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnb3BlbnN1c2UnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU2MmJcIiwgXCJNNDcxLjEgMTAyLjdzLS4zIDE4LjMtLjMgMjAuM2MtOS4xLTMtNzQuNC0yNC4xLTEzNS43LTI2LjMtNTEuOS0xLjgtMTIyLjgtNC4zLTIyMyA1Ny4zLTE5LjQgMTIuNC03My45IDQ2LjEtOTkuNiAxMDkuNy01LjUgMTMuMy0xMi42IDQzLjMtNS41IDcxLjQgMy4zIDEyLjggOC45IDI0LjkgMTYuNSAzNS43IDE3LjQgMjUgNDYuNiA0MS42IDc4LjEgNDQuNCA0NC40IDMuOSA3OC4xLTE2IDkwLTUzLjMgOC4yLTI1LjggMC02My42LTMxLjUtODIuOS0yNS42LTE1LjctNTMuMy0xMi4xLTY5LjItMS42LTEzLjkgOS4yLTIxLjggMjMuNS0yMS42IDM5LjIgLjMgMjcuOCAyNC4zIDQyLjYgNDEuNSA0Mi42IDUuNCAwIDEwLjctLjkgMTUuOC0yLjcgNi41LTEuOCAxMy4zLTYuNSAxMy4zLTE0LjkgMC0xMi4xLTExLjYtMTQuOC0xNi44LTEzLjktMi45IC41LTQuNSAyLTExLjggMi40LTItLjItMTItMy4xLTEyLTE0bDAtLjFjLjItMTIuMyAxMy4yLTE4IDI1LjUtMTYuOSAzMi4zIDIuOCA0Ny43IDQwLjcgMjguNSA2NS43LTE4LjMgMjMuNy03Ni42IDIzLjItOTkuNy0yMC40LTI2LTQ5LjIgMTIuNy0xMTEuMiA4Ny05OC40IDMzLjIgNS43IDgzLjYgMzUuNSAxMDIuNCAxMDQuM2w0NS45IDBjLTUuNy0xNy42LTguOS02OC4zIDQyLjctNjguMyA1Ni43IDAgNjMuOSAzOS45IDc5LjggNjguM2w0OC42IDBjLTEyLjgtMTguMy0yMS43LTM4LjctMTguOS01NS44IDUuNi0zMy44IDM5LjctMTguNCA4Mi40LTE3LjQgNjYuNSAuNCAxMDIuMS0yNyAxMDMuMS0yOCAzLjctMy4xIDYuNS0xNS44IDctMTcuNyAxLjMtNS4xLTMuMi0yLjQtMy4yLTIuNC04LjcgNS4yLTMwLjUgMTUuMi01MC45IDE1LjYtMjUuMyAuNS03Ni4yLTI1LjQtODEuNi0yOC4yLS4zLS40IC4xIDEuMi0xMS0yNS41IDg4LjQgNTguMyAxMTguMyA0MC41IDE0NS4yIDIxLjcgLjgtLjYgNC4zLTIuOSAzLjYtNS43LTEzLjgtNDguMS0yMi40LTYyLjctMzQuNS02OS42LTM3LTIxLjYtMTI1LTM0LjctMTI5LjItMzUuMyAuMS0uMS0uOS0uMy0uOSAuN3ptNjAuNCA3Mi44YTM3LjYgMzcuNiAwIDEgMSA3NS4yIDIuNiAzNy42IDM3LjYgMCAxIDEgLTc1LjItMi42em0zOC42LTI1LjNjLTMuNi0uMy03LjEgLjEtMTAuNSAxLjJzLTYuNSAyLjktOS4yIDUuMy00LjggNS4zLTYuMyA4LjUtMi40IDYuNy0yLjUgMTAuMyAuNSA3LjEgMS44IDEwLjQgMy4zIDYuMyA1LjggOC45IDUuNSA0LjUgOC44IDUuOSA2LjkgMiAxMC40IDEuOWMzLjYgLjMgNy4xLS4xIDEwLjUtMS4yczYuNS0yLjkgOS4yLTUuMyA0LjgtNS4zIDYuMy04LjUgMi40LTYuNyAyLjUtMTAuMy0uNS03LjEtMS44LTEwLjQtMy4zLTYuMy01LjgtOC45LTUuNS00LjUtOC44LTUuOS02LjktMi0xMC40LTEuOXptNC4zIDI4LjhjLTE1LjQgMC0xNS40LTE1LjYgMC0xNS42czE1LjQgMTUuNiAwIDE1LjZ6XCJdXG59O1xudmFyIGZhRHJvcGJveCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdkcm9wYm94JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMTZiXCIsIFwiTTI4OC40IDExNi4zbC0xMzIgODQuMyAxMzIgODQuMy0xMzIgODQuMy0xMzIuNC04NS4xIDEzMi4zLTg0LjMtMTMyLjMtODMuNSAxMzIuMy04NC4zIDEzMi4xIDg0LjN6TTE1NS42IDM5NS43bDEzMi04NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi04NC4zek0yODguNCAyODQuMWwxMzItODQuMy0xMzItODMuNiAxMzEuMy04NC4yIDEzMi4zIDg0LjMtMTMyLjMgODQuMyAxMzIuMyA4NC4yLTEzMi4zIDg0LjMtMTMxLjMtODV6XCJdXG59O1xudmFyIGZhRGVlemVyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2RlZXplcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA3N1wiLCBcIk0xNC44IDEwMS4xQzYuNiAxMDEuMSAwIDEyNy42IDAgMTYwLjNzNi42IDU5LjIgMTQuOCA1OS4yIDE0LjgtMjYuNSAxNC44LTU5LjItNi42LTU5LjItMTQuOC01OS4yek00NDguNyA0MC45Yy03LjcgMC0xNC41IDE3LjEtMTkuNCA0NC4xLTcuNy00Ni43LTIwLjItNzctMzQuMi03Ny0xNi44IDAtMzEuMSA0Mi45LTM4IDEwNS40LTYuNi00NS40LTE2LjgtNzQuMi0yOC4zLTc0LjItMTYuMSAwLTI5LjYgNTYuOS0zNC43IDEzNi4yLTkuNC00MC44LTIzLjItNjYuMy0zOC4zLTY2LjNzLTI4LjggMjUuNS0zOC4zIDY2LjNjLTUuMS03OS4zLTE4LjYtMTM2LjItMzQuNy0xMzYuMi0xMS41IDAtMjEuNyAyOC44LTI4LjMgNzQuMi02LjYtNjIuNS0yMS4yLTEwNS40LTM3LjgtMTA1LjQtMTQgMC0yNi41IDMwLjQtMzQuMiA3Ny00LjgtMjctMTEuNy00NC4xLTE5LjQtNDQuMS0xNC4zIDAtMjYgNTkuMi0yNiAxMzIuMVM0OSAzMDUuMiA2My4zIDMwNS4yYzUuOSAwIDExLjUtOS45IDE1LjgtMjYuOCA2LjkgNjEuNyAyMS4yIDEwNC4xIDM4IDEwNC4xIDEzIDAgMjQuNS0yNS41IDMyLjEtNjUuNiA1LjQgNzYuMyAxOC42IDEzMC40IDM0LjIgMTMwLjQgOS43IDAgMTguNi0yMS40IDI1LjMtNTYuNCA3LjkgNzIuMiAyNi4zIDEyMi43IDQ3LjcgMTIyLjdzMzkuNS01MC41IDQ3LjctMTIyLjdjNi42IDM1IDE1LjYgNTYuNCAyNS4zIDU2LjQgMTUuNiAwIDI4LjgtNTQuMSAzNC4yLTEzMC40IDcuNyA0MC4xIDE5LjQgNjUuNiAzMi4xIDY1LjYgMTYuNiAwIDMwLjktNDIuMyAzOC0xMDQuMSA0LjMgMTYuOCA5LjcgMjYuOCAxNS44IDI2LjggMTQuMyAwIDI2LTU5LjIgMjYtMTMyLjFTNDYzIDQwLjkgNDQ4LjcgNDAuOXptNDguNSA2MC4yYy04LjIgMC0xNC44IDI2LjUtMTQuOCA1OS4yczYuNiA1OS4yIDE0LjggNTkuMiAxNC44LTI2LjUgMTQuOC01OS4yLTYuNi01OS4yLTE0LjgtNTkuMnpcIl1cbn07XG52YXIgZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjcmVhdGl2ZS1jb21tb25zLXNhbXBsaW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGYwXCIsIFwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMy42IDUzLjJjMi44LS4zIDExLjUgMSAxMS41IDExLjVsNi42IDEwNy4yIDQuOS01OS4zYzAtNiA0LjctMTAuNiAxMC42LTEwLjZzMTAuNiA0LjcgMTAuNiAxMC42YzAgMi41LS41LTUuNyA1LjcgODEuNWw1LjgtNjQuMmMuMy0yLjkgMi45LTkuMyAxMC4yLTkuMyAzLjggMCA5LjkgMi4zIDEwLjYgOC45bDExLjUgOTYuNSA1LjMtMTIuOGMxLjgtNC40IDUuMi02LjYgMTAuMi02LjZsNTggMCAwIDIxLjMtNTAuOSAwLTE4LjIgNDQuM2MtMy45IDkuOS0xOS41IDkuMS0yMC44LTMuMWwtNC0zMS45LTcuNSA5Mi42Yy0uMyAzLTMgOS4zLTEwLjIgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtMS45IC42IDUuOC02LjItNzcuOWwtNS4zIDcyLjJjLTEuMSA0LjgtNC44IDkuMy0xMC42IDkuMy0yLjkgMC05LjgtMi0xMC42LTkuMyAwLTEuOSAuNSA2LjctNS44LTg3LjdMMjU1IDM4My45YzAgNi4zLTMuNiAxMi40LTEwLjYgMTIuNC01LjIgMC0xMC42LTQuMS0xMC42LTEyTDIyOCAyOTYuNmMtNS44IDkyLjUtNS4zIDg0LTUuMyA4NS45LTEuMSA0LjgtNC44IDkuMy0xMC42IDkuMy0zIDAtOS44LTIuMS0xMC42LTkuMyAwLS43LS40LTEuMS0uNC0yLjZsLTYuMi04OC42LTQuOSA1Ni43Yy0uNyA2LjUtNi43IDkuMy0xMC42IDkuMy01LjggMC05LjYtNC4xLTEwLjYtOC45TDE1Ny43IDI3MmMtMiA0LTMuNSA4LjQtMTEuMSA4LjRsLTUxLjQgMCAwLTIxLjMgNDQuOCAwIDEzLjctMjcuOWM0LjQtOS45IDE4LjItNy4yIDE5LjkgMi43bDMuMSAyMC40IDguNC05Ny45YzAtNiA0LjgtMTAuNiAxMC42LTEwLjYgLjUgMCAxMC42LS4yIDEwLjYgMTIuNGw0LjkgNjkuMSA2LjYtOTIuNmMwLTEwLjEgOS41LTEwLjYgMTAuMi0xMC42IC42IDAgMTAuNiAuNyAxMC42IDEwLjZsNS4zIDgwLjYgNi4yLTk3LjljLjEtMS4xLS42LTEwLjMgOS45LTExLjV6XCJdXG59O1xudmFyIGZhSmVkaU9yZGVyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2plZGktb3JkZXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1MGVcIiwgXCJNMzk4LjkgMzczLjZjOTUuOS0xMjIuMSAxNy4yLTIzMy4xIDE3LjItMjMzLjEgNDUuNCA4NS44LTQxLjQgMTcwLjUtNDEuNCAxNzAuNSAxMDUtMTcxLjUtNjAuNS0yNzEuNS02MC41LTI3MS41IDk2LjkgNzIuNy0xMC4xIDE5MC43LTEwLjEgMTkwLjcgODUuOCAxNTguNC02OC42IDIzMC4xLTY4LjYgMjMwLjFzLS40LTE2LjktMi4yLTg1LjdjNC4zIDQuNSAzNC41IDM2LjIgMzQuNSAzNi4ybC0yNC4yLTQ3LjQgNjIuNi05LjEtNjIuNi05LjEgMjAuMi01NS41LTMxLjQgNDUuOWMtMi4yLTg3LjctNy44LTMwNS4xLTcuOS0zMDYuOSAwIDEtNS42IDIxOS03LjkgMzA2LjlsLTMxLjQtNDUuOSAyMC4yIDU1LjUtNjIuNiA5LjEgNjIuNiA5LjEtMjQuMiA0Ny40IDM0LjUtMzYuMmMtMS44IDY4LjgtMi4yIDg1LjctMi4yIDg1LjdTNTkuMSAzODguNiAxNDQuOSAyMzAuMmMwIDAtMTA3LTExOC4xLTEwLjEtMTkwLjcgMCAwLTE2NS41IDk5LjktNjAuNSAyNzEuNSAwIDAtODYuOC04NC44LTQxLjQtMTcwLjUgMCAwLTc4LjcgMTExIDE3LjIgMjMzLjEgMCAwLTI2LjItMTYuMS00OS40LTc3LjcgMCAwIDE2LjkgMTgzLjMgMjIyIDE4NS43bDQuMSAwYzIwNS0yLjQgMjIyLTE4NS43IDIyMi0xODUuNy0yMy42IDYxLjUtNDkuOSA3Ny43LTQ5LjkgNzcuN3pcIl1cbn07XG52YXIgZmFSUHJvamVjdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdyLXByb2plY3QnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0ZjdcIiwgXCJNNTc4LjUgMjI2LjZDNTc4LjUgMTE5LjEgNDQ4LjQgMzIgMjg4IDMyUy0yLjUgMTE5LjEtMi41IDIyNi42YzAgOTUuOCAxMDMuMyAxNzUuNCAyMzkuNCAxOTEuNWwwIDYxLjkgOTkuMSAwIDAtNjEuNWMyNC4zLTIuNyA0Ny42LTcuNCA2OS40LTEzLjlsNDAuMSA3NS40IDExMiAwLTY3LjQtMTEzLjdjNTQuNS0zNS40IDg4LjQtODQuOSA4OC40LTEzOS43ek0xMTEuNyAyNDEuMWMwLTczLjUgOTguOS0xMzMgMjIwLjgtMTMzczIxMS45IDQwLjcgMjExLjkgMTMzYzAgNTAuMS0yNi41IDg1LTcwLjMgMTA2LjQtMi40LTEuNi00LjctMi45LTYuNC0zLjctMTAuMi01LjItMjcuOC0xMC41LTI3LjgtMTAuNXM4Ni42LTYuNCA4Ni42LTkyLjctOTAuNi04Ny45LTkwLjYtODcuOWwtMTk5IDAgMCAyMDguM2MtNzQuMS0yMS41LTEyNS4yLTY3LjEtMTI1LjItMTE5Ljl6bTIyNS4xIDM4LjNsMC01NS42YzU3LjggMCA4Ny44LTYuOCA4Ny44IDI3LjMgMCAzNi41LTM4LjIgMjguMy04Ny44IDI4LjN6bS0uOSA3Mi41bDI2LjYgMGMxMC44IDAgMTguOSAxMS43IDI0IDE5LjItMTYuMSAxLjktMzMgMi44LTUwLjYgMi45bDAtMjIuMXpcIl1cbn07XG52YXIgZmFJbnN0YWxvZCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdpbnN0YWxvZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA4MVwiLCBcIk0xNTMuNiA0ODBsMjMzLjcgMCAxMTUuNC0yMDQuMi0yOTguMyA1Ny40LTUwLjggMTQ2Ljh6TTUwNSAyNDAuMUwzODcuNCAzMiAxNTUuOSAzMiAzNjAuNSAyNjcuOSA1MDUgMjQwLjF6TTEyNC42IDQ4LjhMNy41IDI1NiAxMjMuNSA0NjEuMiAyMjUuOSAxNjUuNiAxMjQuNiA0OC44elwiXVxufTtcbnZhciBmYUNhbmFkaWFuTWFwbGVMZWFmID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NhbmFkaWFuLW1hcGxlLWxlYWYnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3ODVcIiwgXCJNMzgzLjggMzUxLjdjMi41LTIuNSAxMDUuMi05Mi40IDEwNS4yLTkyLjRsLTE3LjUtNy41Yy0xMC00LjktNy40LTExLjUtNS0xNy40IDIuNC03LjYgMjAuMS02Ny4zIDIwLjEtNjcuM3MtNDcuNyAxMC01Ny43IDEyLjVjLTcuNSAyLjQtMTAtMi41LTEyLjUtNy41cy0xNS0zMi40LTE1LTMyLjQtNTIuNiA1OS45LTU1LjEgNjIuM2MtMTAgNy41LTIwLjEgMC0xNy42LTEwIDAtMTAgMjcuNi0xMjkuNiAyNy42LTEyOS42cy0zMC4xIDE3LjQtNDAuMSAyMi40Yy03LjUgNS0xMi42IDUtMTcuNi01LTUuMS03LjUtNDIuNy03OS44LTQyLjctNzkuOHMtMzcuNSA3Mi4zLTQyLjUgNzkuOGMtNSAxMC0xMCAxMC0xNy42IDUtMTAtNS00MC4xLTIyLjQtNDAuMS0yMi40UzE4My4zIDE4MiAxODMuMyAxOTJjMi41IDEwLTcuNSAxNy41LTE3LjYgMTAtMi41LTIuNS01NS4xLTYyLjMtNTUuMS02Mi4zcy0xMi41IDI3LjMtMTUgMzIuMy01IDkuOS0xMi41IDcuNUM3MyAxNzcgMjUuNCAxNjcgMjUuNCAxNjdTNDMgMjI2LjcgNDUuNSAyMzQuM2MyLjQgNiA1IDEyLjUtNSAxNy40TDIzIDI1OS4zczEwMi42IDg5LjkgMTA1LjIgOTIuNGM1LjEgNSAxMCA3LjUgNS4xIDIyLjUtNS4xIDE1LTEwLjEgMzUuMS0xMC4xIDM1LjFzOTUuMi0yMC4xIDEwNS4zLTIyLjZjOC43LS45IDE4LjMgMi41IDE4LjMgMTIuNVMyNDEgNTEyIDI0MSA1MTJsMzAgMHMtNS44LTEwMi43LTUuOC0xMTIuOCA5LjUtMTMuNCAxOC40LTEyLjVjMTAgMi41IDEwNS4yIDIyLjYgMTA1LjIgMjIuNnMtNS0yMC4xLTEwLTM1LjEgMC0xNy41IDUtMjIuNXpcIl1cbn07XG52YXIgZmFFdGhlcmV1bSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdldGhlcmV1bScsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjQyZVwiLCBcIk0zMTEuOSAyNjAuOEwxNjAgMzUzLjYgOCAyNjAuOCAxNjAgMCAzMTEuOSAyNjAuOHpNMTYwIDM4My40TDggMjkwLjYgMTYwIDUxMiAzMTIgMjkwLjYgMTYwIDM4My40elwiXVxufTtcbnZhciBmYUhvdXp6ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2hvdXp6JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjdjXCIsIFwiTTI3NiAzMzAuN2wtMTA0LjYgMCAwIDE0OS4zLTE1NC4zIDAgMC00NDggMTA5LjUgMCAwIDEwNC41IDMwNS4xIDg1LjYgMCAyNTcuOS0xNTUuNyAwIDAtMTQ5LjN6XCJdXG59O1xudmFyIGZhVmliZXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndmliZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0MDlcIiwgXCJNNDQ0LjMgNDkuOWMtMTIuNy0xMS43LTY0LjEtNDktMTc4LjctNDkuNSAwIDAtMTM1LjEtOC4xLTIwMC45IDUyLjMtMzYuNiAzNi42LTQ5LjUgOTAuMy01MC45IDE1Ni44cy0zLjEgMTkxLjEgMTE3IDIyNC45bC4xIDAtLjEgNTEuNnMtLjggMjAuOSAxMyAyNS4xYzE2LjYgNS4yIDI2LjQtMTAuNyA0Mi4zLTI3LjggOC43LTkuNCAyMC43LTIzLjIgMjkuOC0zMy43IDgyLjIgNi45IDE0NS4zLTguOSAxNTIuNS0xMS4yIDE2LjYtNS40IDExMC41LTE3LjQgMTI1LjctMTQyIDE1LjgtMTI4LjYtNy42LTIwOS44LTQ5LjgtMjQ2LjV6TTQ1OC4yIDI4N2MtMTIuOSAxMDQtODkgMTEwLjYtMTAzIDExNS4xLTYgMS45LTYxLjUgMTUuNy0xMzEuMiAxMS4yIDAgMC01MiA2Mi43LTY4LjIgNzktNS4zIDUuMy0xMS4xIDQuOC0xMS01LjcgMC02LjkgLjQtODUuNyAuNC04NS43bDAgMEM0My40IDM3Mi43IDQ5LjQgMjY2LjYgNTAuNSAyMTEuMXMxMS42LTEwMSA0Mi42LTEzMS42YzU1LjctNTAuNSAxNzAuNC00MyAxNzAuNC00MyA5Ni45IC40IDE0My4zIDI5LjYgMTU0LjEgMzkuNCAzNS43IDMwLjYgNTMuOSAxMDMuOCA0MC42IDIxMS4xem0tMTM5LTgwLjhjLjQgOC42LTEyLjUgOS4yLTEyLjkgLjYtMS4xLTIyLTExLjQtMzIuNy0zMi42LTMzLjktOC42LS41LTcuOC0xMy40IC43LTEyLjkgMjcuOSAxLjUgNDMuNCAxNy41IDQ0LjggNDYuMnptMjAuMyAxMS4zYzEtNDIuNC0yNS41LTc1LjYtNzUuOC03OS4zLTguNS0uNi03LjYtMTMuNSAuOS0xMi45IDU4IDQuMiA4OC45IDQ0LjEgODcuOCA5Mi41LS4xIDguNi0xMy4xIDguMi0xMi45LS4zem00NyAxMy40Yy4xIDguNi0xMi45IDguNy0xMi45IC4xLS42LTgxLjUtNTQuOS0xMjUuOS0xMjAuOC0xMjYuNC04LjUtLjEtOC41LTEyLjkgMC0xMi45IDczLjcgLjUgMTMzIDUxLjQgMTMzLjcgMTM5LjJ6TTM3NS4yIDMyOWwwIC4yYy0xMC44IDE5LTMxIDQwLTUxLjggMzMuM2wtLjItLjNjLTIxLjEtNS45LTcwLjgtMzEuNS0xMDIuMi01Ni41LTE2LjItMTIuOC0zMS0yNy45LTQyLjQtNDIuNC0xMC4zLTEyLjktMjAuNy0yOC4yLTMwLjgtNDYuNi0yMS4zLTM4LjUtMjYtNTUuNy0yNi01NS43LTYuNy0yMC44IDE0LjItNDEgMzMuMy01MS44bC4yIDBjOS4yLTQuOCAxOC0zLjIgMjMuOSAzLjkgMCAwIDEyLjQgMTQuOCAxNy43IDIyLjEgNSA2LjggMTEuNyAxNy43IDE1LjIgMjMuOCA2LjEgMTAuOSAyLjMgMjItMy43IDI2LjZsLTEyIDkuNmMtNi4xIDQuOS01LjMgMTQtNS4zIDE0czE3LjggNjcuMyA4NC4zIDg0LjNjMCAwIDkuMSAuOCAxNC01LjNsOS42LTEyYzQuNi02IDE1LjctOS44IDI2LjYtMy43IDE0LjcgOC4zIDMzLjQgMjEuMiA0NS44IDMyLjkgNyA1LjcgOC42IDE0LjQgMy44IDIzLjZ6XCJdXG59O1xudmFyIGZhS2lja3N0YXJ0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAna2lja3N0YXJ0ZXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInNxdWFyZS1raWNrc3RhcnRlclwiXSwgXCJmM2JiXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTMyMC44IDIzM2wtMjMuMyAyMy4xIDIzLjMgMjIuOWMyNC4xIDIzLjkgMjQuMSA2MyAwIDg2LjlzLTYzLjQgMjMuOS04Ny42IDBsLTguNS04LjRjLTExLjMgMTYtMjkuNyAyNi41LTUwLjkgMjYuNS0zNC4xIDAtNjEuOS0yNy41LTYxLjktNjEuNGwwLTEzMy4yYzAtMzMuOCAyNy43LTYxLjQgNjEuOS02MS40IDIxLjEgMCAzOS42IDEwLjUgNTAuOSAyNi41bDguNS04LjRjMjQuMS0yMy45IDYzLjQtMjMuOSA4Ny42IDBzMjQuMSA2MyAwIDg2Ljl6XCJdXG59O1xudmFyIGZhU3F1YXJlS2lja3N0YXJ0ZXIgPSBmYUtpY2tzdGFydGVyO1xudmFyIGZhU3BvdGlmeSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcG90aWZ5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWJjXCIsIFwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzU2LjcgMzcyLjljLTQuMiAwLTYuOC0xLjMtMTAuNy0zLjYtNjIuNC0zNy42LTEzNS0zOS4yLTIwNi43LTI0LjUtMy45IDEtOSAyLjYtMTEuOSAyLjYtOS43IDAtMTUuOC03LjctMTUuOC0xNS44IDAtMTAuMyA2LjEtMTUuMiAxMy42LTE2LjggODEuOS0xOC4xIDE2NS42LTE2LjUgMjM3IDI2LjIgNi4xIDMuOSA5LjcgNy40IDkuNyAxNi41cy03LjEgMTUuNC0xNS4yIDE1LjR6bTI2LjktNjUuNmMtNS4yIDAtOC43LTIuMy0xMi4zLTQuMi02Mi41LTM3LTE1NS43LTUxLjktMjM4LjYtMjkuNC00LjggMS4zLTcuNCAyLjYtMTEuOSAyLjYtMTAuNyAwLTE5LjQtOC43LTE5LjQtMTkuNHM1LjItMTcuOCAxNS41LTIwLjdjMjcuOC03LjggNTYuMi0xMy42IDk3LjgtMTMuNiA2NC45IDAgMTI3LjYgMTYuMSAxNzcgNDUuNSA4LjEgNC44IDExLjMgMTEgMTEuMyAxOS43LS4xIDEwLjgtOC41IDE5LjUtMTkuNCAxOS41em0zMS03Ni4yYy01LjIgMC04LjQtMS4zLTEyLjktMy45LTcxLjItNDIuNS0xOTguNS01Mi43LTI4MC45LTI5LjctMy42IDEtOC4xIDIuNi0xMi45IDIuNi0xMy4yIDAtMjMuMy0xMC4zLTIzLjMtMjMuNiAwLTEzLjYgOC40LTIxLjMgMTcuNC0yMy45IDM1LjItMTAuMyA3NC42LTE1LjIgMTE3LjUtMTUuMiA3MyAwIDE0OS41IDE1LjIgMjA1LjQgNDcuOCA3LjggNC41IDEyLjkgMTAuNyAxMi45IDIyLjYgMCAxMy42LTExIDIzLjMtMjMuMiAyMy4zelwiXVxufTtcbnZhciBmYUxlYW5wdWIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnbGVhbnB1YicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjIxMlwiLCBcIk0zODYuNiAxMTEuNWwxNS4xIDI0OS0xMS0uM2MtMzYuMi0uOC03MS42IDguOC0xMDIuNyAyOC0zMS0xOS4yLTY2LjQtMjgtMTAyLjctMjgtNDUuNiAwLTgyLjEgMTAuNy0xMjMuNSAyNy43TDkzLjIgMTI5LjZjMjguNS0xMS44IDYxLjUtMTguMSA5Mi4yLTE4LjEgNDEuMiAwIDczLjggMTMuMiAxMDIuNyA0Mi41IDI3LjctMjguMyA1OS00MS43IDk4LjUtNDIuNXpNNTY5LjIgNDQ4Yy0yNS41IDAtNDcuNS01LjItNzAuNS0xNS42LTM0LjMtMTUuNi03MC0yNS0xMDcuOS0yNS0zOSAwLTc0LjkgMTIuOS0xMDIuNyA0MC42LTI3LjctMjcuNy02My43LTQwLjYtMTAyLjctNDAuNi0zNy45IDAtNzMuNiA5LjMtMTA3LjkgMjUtMjIuMiA5LjktNDQuNyAxNS42LTY5LjIgMTUuNkw3IDQ0OCA0OS42IDk4LjljMzkuMy0yMi4yIDg3LTM0LjkgMTMyLjMtMzQuOSAzNy4xIDAgNzUuMiA3LjcgMTA2LjIgMjkuMSAzMS0yMS40IDY5LjItMjkuMSAxMDYuMi0yOS4xIDQ1LjMgMCA5MyAxMi42IDEzMi4zIDM0LjlMNTY5LjIgNDQ4em0tNDMuNC00NC43TDQ5MS44IDEyM2MtMzAuNy0xNC02Ny4yLTIxLjQtMTAxLTIxLjQtMzguNCAwLTc0LjQgMTIuMS0xMDIuNyAzOC43LTI4LjMtMjYuNi02NC4yLTM4LjctMTAyLjctMzguNy0zMy44IDAtNzAuMyA3LjQtMTAxIDIxLjRsLTM0IDI4MC4yYzQ3LjItMTkuNSA4Mi45LTMzLjUgMTM1LTMzLjUgMzcuNiAwIDcwLjggOS42IDEwMi43IDI5LjYgMzEuOC0yMCA2NS4xLTI5LjYgMTAyLjctMjkuNiA1Mi4yIDAgODcuOCAxNCAxMzUgMzMuNXpcIl1cbn07XG52YXIgZmFKYXZhID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2phdmEnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY0ZTRcIiwgXCJNMjc3LjggMzEyLjljOS44LTYuNyAyMy40LTEyLjUgMjMuNC0xMi41cy0zOC43IDctNzcuMiAxMC4yYy00Ny4xIDMuOS05Ny43IDQuNy0xMjMuMSAxLjMtNjAuMS04IDMzLTMwLjEgMzMtMzAuMXMtMzYuMS0yLjQtODAuNiAxOWMtNTIuNSAyNS40IDEzMCAzNyAyMjQuNSAxMi4xem0tODUuNC0zMi4xYy0xOS00Mi43LTgzLjEtODAuMiAwLTE0NS44IDEwMy43LTgxLjggNTAuNS0xMzUgNTAuNS0xMzUgMjEuNSA4NC41LTc1LjYgMTEwLjEtMTEwLjcgMTYyLjYtMjMuOSAzNS45IDExLjcgNzQuNCA2MC4yIDExOC4yek0zMDcgMTA0LjZjLjEgMC0xNzUuMiA0My44LTkxLjUgMTQwLjIgMjQuNyAyOC40LTYuNSA1NC02LjUgNTRzNjIuNy0zMi40IDMzLjktNzIuOUMyMTYgMTg4LjEgMTk1LjQgMTY5LjMgMzA3IDEwNC42em0tNi4xIDI3MC41Yy0uNSAxLTEuMiAxLjgtMiAyLjYgMTI4LjMtMzMuNyA4MS4xLTExOC45IDE5LjgtOTcuMy0zLjMgMS4yLTYuMiAzLjQtOC4yIDYuMyAzLjYtMS4zIDcuMy0yLjMgMTEtMyAzMS02LjUgNzUuNSA0MS41LTIwLjYgOTEuNHpNMzQ4IDQzNy40czE0LjUgMTEuOS0xNS45IDIxLjJjLTU3LjkgMTcuNS0yNDAuOCAyMi44LTI5MS42IC43LTE4LjMtNy45IDE2LTE5IDI2LjgtMjEuMyAxMS4yLTIuNCAxNy43LTIgMTcuNy0yLTIwLjMtMTQuMy0xMzEuMyAyOC4xLTU2LjQgNDAuMiAyMDQuMiAzMy4yIDM3Mi40LTE0LjkgMzE5LjQtMzguOHpNMTI0LjUgMzk2Yy03OC43IDIyIDQ3LjkgNjcuNCAxNDguMSAyNC41LTkuOC0zLjgtMTkuMi04LjQtMjguMi0xMy44LTQ0LjcgOC41LTY1LjQgOS4xLTEwNiA0LjUtMzMuNS0zLjgtMTMuOS0xNS4yLTEzLjktMTUuMnptMTc5LjggOTcuMmMtNzguNyAxNC44LTE3NS44IDEzLjEtMjMzLjMgMy42IDAtLjEgMTEuOCA5LjcgNzIuNCAxMy42IDkyLjIgNS45IDIzMy44LTMuMyAyMzcuMS00Ni45IDAgMC02LjQgMTYuNS03Ni4yIDI5Ljd6TTI2MC43IDM1M2MtNTkuMiAxMS40LTkzLjUgMTEuMS0xMzYuOCA2LjYtMzMuNS0zLjUtMTEuNi0xOS43LTExLjYtMTkuNy04Ni44IDI4LjggNDguMiA2MS40IDE2OS41IDI1LjktNy44LTIuOC0xNS03LjEtMjEuMS0xMi44elwiXVxufTtcbnZhciBmYU5mY1N5bWJvbCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICduZmMtc3ltYm9sJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTMxXCIsIFwiTTM2MC45IDMyLjRjNy43LTEuMyAxNS43IC41IDIxLjIgNSA4NC4xIDU4LjcgMTI5LjkgMTM2LjMgMTI5LjkgMjE3LjcgMCA4My4xLTQ1LjggMTYwLjgtMTI5LjkgMjE5LjUtNC44IDQtMTEuNyA1LjktMTguNiA1LjMtNy0uNi0xMy41LTMuNi0xOC40LTguNUwxNjEuNyAyODguN2MtNS42LTUuNS04LjctMTMtOS42LTIwLjkgMC03LjggNC0xNS4zIDkuNS0yMC45IDUuNi01LjUgMTMuMS04LjcgMjAuOS04LjcgNy45IDAgMTUuNCAzLjEgMjAuOSA4LjZMMzY4LjUgNDExLjJjNTQuNi00NC43IDg0LjMtOTkuMiA4NC4zLTE1Ni4xIDAtNjEuNi0zNi45LTEyMi4yLTEwMy45LTE2OS4zLTYuNC00LjUtMTAuOC0xMS40LTEyLjEtMTkuMS0xLjQtNy43IC40LTE1LjcgNS0yMi4xIDQuNS02LjQgMTEuNC0xMC44IDE5LjEtMTIuMXptLTIwNiA0NDcuMmMtNy43IDEuMy0xNS42LS41LTIyLjEtNS04My4xLTU4LjctMTI5LTEzNi40LTEyOS0yMTkuNSAwLTgxLjQgNDUuOC0xNTkgMTI5LTIxNy43IDUuNy00IDEyLjYtNS45IDE5LjYtNS4zIDYuOSAuNiAxMy40IDMuNiAxOC4zIDguNUwzNTQuMSAyMjMuM2M1LjYgNS41IDguNyAxMyA4LjcgMjAuOSAuMSA2LjktMyAxNS4zLTguNiAyMC45LTUuNSA1LjUtMTMgOC43LTIwLjkgOC43LTcuOCAwLTE2LjItMy4xLTIwLjktOC42TDE0Ny4zIDEwMC43Yy01NC42IDQ1LjItODQuMyA5OS4yLTg0LjMgMTU0LjQgMCA2My40IDM2LjkgMTI0IDEwMy4xIDE3MS4xIDcuMyA0LjYgMTEuNiAxMS40IDEzIDE5LjIgMS4zIDcuNy0uNSAxNS43LTUgMjIuMXMtMTEuNCAxMC43LTE5LjIgMTIuMXpcIl1cbn07XG52YXIgZmFXb2R1ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3dvZHUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImUwODhcIiwgXCJNMTc4LjQgMzM5LjdsLTM3LjMgMC0yOC45LTExNi4yLS41IDAtMjguNSAxMTYuMi0zOCAwLTQ1LjItMTcwLjggMzcuNSAwIDI3IDExNi4yIC41IDAgMjkuNy0xMTYuMiAzNS4yIDAgMjkuMiAxMTcuNyAuNSAwIDI4LTExNy43IDM2LjggMC00NS45IDE3MC44em05My0xMjdjMzkgMCA2NC4xIDI1LjggNjQuMSA2NS4zIDAgMzkuMi0yNS4xIDY1LTY0LjEgNjUtMzguNyAwLTYzLjktMjUuOC02My45LTY1IDAtMzkuNSAyNS4xLTY1LjMgNjMuOS02NS4zem0wIDEwNC44YzIzLjIgMCAzMC4xLTE5LjkgMzAuMS0zOS41IDAtMTkuOS02LjktMzkuNy0zMC4xLTM5LjctMjcuNyAwLTI5LjkgMTkuOS0yOS45IDM5LjcgMCAxOS42IDYuOSAzOS41IDI5LjkgMzkuNXptMTYzLjcgNi41bC0uNSAwYy03LjkgMTMuNC0yMS44IDE5LjEtMzcuNSAxOS4xLTM3LjMgMC01NS41LTMyLTU1LjUtNjYuMiAwLTMzLjIgMTguNC02NC4xIDU0LjgtNjQuMSAxNC42IDAgMjguOSA2LjIgMzYuOCAxOC40bC4yIDAgMC02Mi4yIDM0IDAgMCAxNzAuOC0zMi4zIDAgMC0xNS44em0tMjkuNy04NS42Yy0yMi4yIDAtMjkuOSAxOS4xLTI5LjkgMzkuNSAwIDE5LjQgOC44IDM5LjcgMjkuOSAzOS43IDIyLjUgMCAyOS4yLTE5LjYgMjkuMi0zOS45IDAtMjAuMS03LjItMzkuMi0yOS4yLTM5LjJ6TTU5MyAzMzkuN2wtMzIuMyAwIDAtMTcuMi0uNyAwYy04LjYgMTMuOS0yMy40IDIwLjYtMzcuOCAyMC42LTM2LjEgMC00NS4yLTIwLjMtNDUuMi01MC45bDAtNzYuMSAzNCAwIDAgNjkuOGMwIDIwLjMgNiAzMC40IDIxLjggMzAuNCAxOC40IDAgMjYuMy0xMC4zIDI2LjMtMzUuNGwwLTY0LjggMzQgMCAwIDEyMy42em05LjUtMzYuOGwzNy41IDAgMCAzNi44LTM3LjUgMCAwLTM2Ljh6XCJdXG59O1xudmFyIGZhU3F1YXJlU3RlYW0gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3F1YXJlLXN0ZWFtJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJzdGVhbS1zcXVhcmVcIl0sIFwiZjFiN1wiLCBcIk0xNjUuNiAzMDkuMWMxOC42IDcuNyAyNy4zIDI4LjkgMTkuNiA0Ny40cy0yOSAyNy4yLTQ3LjYgMTkuNGwtMjguNS0xMS44YzUgMTAuNiAxMy44IDE5LjQgMjUuNCAyNC4yIDI1LjIgMTAuNSA1NC4xLTEuNCA2NC42LTI2LjUgNS4xLTEyLjEgNS4xLTI1LjUgLjEtMzcuNy01LjEtMTIuMS0xNC41LTIxLjYtMjYuNy0yNi43LTEyLjEtNS0yNS00LjgtMzYuNC0uNWwyOS41IDEyLjJ6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgMTQ0LjcgMTE2LjYgNDguMWMxMi04LjIgMjYuMi0xMi4xIDQwLjctMTEuM2w1NS40LTgwLjIgMC0xLjFjMC00OC4yIDM5LjMtODcuNSA4Ny42LTg3LjVzODcuNiAzOS4zIDg3LjYgODcuNWMwIDQ5LjItNDAuOSA4OC43LTg5LjYgODcuNWwtNzkgNTYuM2MxLjYgMzguNS0yOS4xIDY4LjgtNjUuNyA2OC44LTMxLjggMC01OC41LTIyLjctNjQuNS01Mi43TDAgMzE5LjIgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI0MS45IDE5Ni4yYTU4LjQgNTguNCAwIDEgMCAxMTYuOCAwIDU4LjQgNTguNCAwIDEgMCAtMTE2LjggMHptMTAyLjQtLjFhNDMuOSA0My45IDAgMSAxIC04Ny44IDAgNDMuOSA0My45IDAgMSAxIDg3LjggMHpcIl1cbn07XG52YXIgZmFTdGVhbVNxdWFyZSA9IGZhU3F1YXJlU3RlYW07XG52YXIgZmFDcmVhdGl2ZUNvbW1vbnNOY0V1ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NyZWF0aXZlLWNvbW1vbnMtbmMtZXUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0ZTlcIiwgXCJNMjU1LjcgOEMxMTEuNiA4IDggMTI0LjggOCAyNTYgOCAzOTIuMyAxMTkuNyA1MDQgMjU1LjcgNTA0IDM4NS45IDUwNCA1MDQgNDAzLjEgNTA0IDI1NiA1MDQgMTE3IDM5Ni40IDggMjU1LjcgOHptLjYgNDUwLjdjLTExMiAwLTIwMy42LTkyLjUtMjAzLjYtMjAyLjcgMC0yMy4yIDMuNy00NS4yIDEwLjktNjZsNjUuNyAyOS4xLTQuNyAwIDAgMjkuNSAyMy4zIDBjMCA2LjItLjQgMy4yLS40IDE5LjVsLTIyLjggMCAwIDI5LjUgMjcgMGMxMS40IDY3IDY3LjIgMTAxLjMgMTI0LjYgMTAxLjMgMjYuNiAwIDUwLjYtNy45IDY0LjgtMTUuOGwtMTAtNDYuMWMtOC43IDQuNi0yOC4yIDEwLjgtNDcuMyAxMC44LTI4LjIgMC01OC4xLTEwLjktNjcuMy01MC4ybDkwLjMgMCAxMjguMyA1Ni44Yy0xLjUgMi4xLTU2LjIgMTA0LjMtMTc4LjggMTA0LjN6TTIzOS42IDI2OC4xbC0uNS0uNCAuOSAuNC0uNCAwem03Ny4yLTE5LjVsMy43IDAgMC0yOS41LTcwLjMgMC0yOC42LTEyLjZjMi41LTUuNSA1LjQtMTAuNSA4LjgtMTQuMyAxMi45LTE1LjggMzEuMS0yMi40IDUxLjEtMjIuNCAxOC4zIDAgMzUuMyA1LjQgNDYuMSAxMGwxMS42LTQ3LjNjLTE1LTYuNi0zNy0xMi40LTYyLjMtMTIuNC0zOSAwLTcyLjIgMTUuOC05NS45IDQyLjMtNS4zIDYuMS05LjggMTIuOS0xMy45IDIwLjFMODUuNSAxNDYuNGM2NC42LTk2LjggMTU3LjctOTMuNiAxNzAuNy05My42IDExMyAwIDIwMyA5MC4yIDIwMyAyMDMuNCAwIDE4LjctMi4xIDM2LjMtNi4zIDUyLjlMMzE2LjggMjQ4LjZ6XCJdXG59O1xudmFyIGZhTnBtID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ25wbScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjNkNFwiLCBcIk0yODggMjg4bC0zMiAwIDAtNjQgMzIgMCAwIDY0ek01NzYgMTYwbDAgMTkyLTI4OCAwIDAgMzItMTI4IDAgMC0zMi0xNjAgMCAwLTE5MiA1NzYgMHpNMTYwIDE5MmwtMTI4IDAgMCAxMjggNjQgMCAwLTk2IDMyIDAgMCA5NiAzMiAwIDAtMTI4em0xNjAgMGwtMTI4IDAgMCAxNjAgNjQgMCAwLTMyIDY0IDAgMC0xMjh6bTIyNCAwbC0xOTIgMCAwIDEyOCA2NCAwIDAtOTYgMzIgMCAwIDk2IDMyIDAgMC05NiAzMiAwIDAgOTYgMzIgMCAwLTEyOHpcIl1cbn07XG52YXIgZmFDbG91ZHNjYWxlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2Nsb3Vkc2NhbGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzODNcIiwgXCJNMzE4LjEgMTU0bC05LjQgNy42Yy0yMi41LTE5LjMtNTEuNS0zMy42LTgzLjMtMzMuNi03MS42IDAtMTI5LjQgNjAuOC0xMjkuNCAxMzIuMyAwIDYuNiAuNCAxMy4xIDEuNCAxOS40LTItNTYgNDEuOC05Ny40IDkyLjYtOTcuNCAyNC4yIDAgNDYuMiA5LjQgNjIuNiAyNC43bC0yNS4yIDIwLjRjLTguMy0uOS0xNi44IDEuOC0yMy4xIDguMS0xMS4xIDExLTExLjEgMjguOSAwIDQwIDExLjEgMTEgMjguOSAxMSA0MCAwIDYuMy02LjMgOS0xNC45IDguMS0yMy4xbDc1LjItODguOGM2LjMtNi41LTMuMy0xNS45LTkuNS05LjZ6TTIxMy43IDI0Ni41YTE0IDE0IDAgMSAxIDIwLjYgMTkgMTQgMTQgMCAxIDEgLTIwLjYtMTl6TTIyNCAzMmEyMjQgMjI0IDAgMSAwIDAgNDQ4IDIyNCAyMjQgMCAxIDAgMC00NDh6bTAgNjRhMTYwIDE2MCAwIDEgMSAwIDMyMCAxNjAgMTYwIDAgMSAxIDAtMzIwelwiXVxufTtcbnZhciBmYVRoZW1lY28gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndGhlbWVjbycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjVjNlwiLCBcIk0yMDIuOSA4LjRjOS45LTUuNyAyNi01LjggMzYtLjJMNDMwIDExNS45YzEwIDUuNiAxOCAxOS40IDE4IDMwLjlMNDQ4IDM2NGMwIDExLjQtOC4xIDI1LjMtMTggMzFMMjM4LjggNTAzLjdjLTkuOSA1LjctMjYgNS42LTM1LjgtLjJMMTcuOSAzOTUuMUM4IDM4OS4zIDAgMzc1LjQgMCAzNjRMMCAxNDYuN2MwLTExLjQgOC0yNS40IDE3LjktMzEuMUwyMDIuOSA4LjR6TTEyNS41IDIwOC4zYy0xNS45IDAtMzEuOSAuMS00Ny44IC4xbDAgMTAxLjQgMTkuMSAwIDAtMjkuOCAyOC43IDBjNDkuNyAwIDQ5LjYtNzEuNyAwLTcxLjd6TTI2NS42IDMwOC42bC0zMC43LTM0LjZjMzctNy41IDM0LjgtNjUuMi0xMC45LTY1LjUtMTYuMSAwLTMyLjItLjEtNDguMy0uMWwwIDEwMS42IDE5LjEgMCAwLTMzLjkgMTguNCAwIDI5LjYgMzMuOSAyMi44IDAgMC0xLjN6bS00MS42LTgyLjNjMjMuMyAwIDIzLjMgMzIuNSAwIDMyLjVsLTI5LjEgMCAwLTMyLjUgMjkuMSAwem0tOTUuNi0xLjZjMjEuMiAwIDIxLjEgMzguOSAwIDM4LjlsLTMyLjMgMCAwLTM4LjggMzIuMyAwem0xOTIuNi0xOC4yYy02OC41IDAtNzEgMTA1LjggMCAxMDUuOCA2OS41IDAgNjkuNC0xMDUuOCAwLTEwNS44em0wIDE3LjRjNDQuMSAwIDQ0LjggNzAuOSAwIDcwLjlzLTQ0LjQtNzAuOSAwLTcwLjl6XCJdXG59O1xudmFyIGZhR29vZ2xlUGxheSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdnb29nbGUtcGxheScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjNhYlwiLCBcIk0yOTMuNiAyMzQuM0w3Mi45IDEzIDM1My43IDE3NC4yIDI5My42IDIzNC4zek0xNS4zIDBDMi4zIDYuOC02LjQgMTkuMi02LjQgMzUuM2wwIDQ0MS4zYzAgMTYuMSA4LjcgMjguNSAyMS43IDM1LjNMMjcxLjkgMjU1LjkgMTUuMyAwek00NDAuNSAyMjUuNmwtNTguOS0zNC4xLTY1LjcgNjQuNSA2NS43IDY0LjUgNjAuMS0zNC4xYzE4LTE0LjMgMTgtNDYuNS0xLjItNjAuOHpNNzIuOSA0OTlMMzUzLjcgMzM3LjggMjkzLjYgMjc3LjcgNzIuOSA0OTl6XCJdXG59O1xudmFyIGZhS29ydnVlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2tvcnZ1ZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjQyZlwiLCBcIk0zODcuNiAzNGwtMzI3IDBDMjcuOSAzNCAxLjEgNjAuOCAxLjEgOTMuNWwwIDMyNy4xYzAgMzIuNiAyNi44IDU5LjQgNTkuNSA1OS40bDMyNy4xIDBjMzMgMCA1OS41LTI2LjggNTkuNS01OS41bDAtMzI3QzQ0Ny4xIDYwLjggNDIwLjMgMzQgMzg3LjYgMzR6TTg4LjIgMTIwLjhsOTYgMCAwIDExNiA2MS44LTExNiAxMTAuOSAwLTgxLjIgMTMyLTE4Ny41IDAgMC0xMzJ6TTI1MCAzOTIuOWwtNjUuNy0xMTMuNiAwIDExMy42LTk2IDAgMC0xMzAuOCAxOTEuNSAwIDg4LjYgMTMwLjgtMTE4LjQgMHpcIl1cbn07XG52YXIgZmFXM2MgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndzNjJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlN2RlXCIsIFwiTTEwNS4yIDMwNS4zbDMwLjktMTA0LjdjNy45LTI2LjcgOC42LTQwLjYgLjItNjguOGwtMTAuMS0zMy45IDQ0LjEgMCA2MSAyMDcuNCA0NS43LTE1NS41YzEzLjMtNDUuMyAyMS4xLTUxLjkgNTkuNC01MS45bDEzMi44IDBjLTI0LjIgNDIuOS00OS4zIDg1LjItNzMuOSAxMjcuOSAyLjYgLjggNS4yIDEuOCA3LjcgMi44IDE3LjMgNy4xIDMyLjIgMTkuNCA0MiAzNS41IDExLjIgMTguNSAxNi44IDQwLjIgMTYuOCA2NS4yIDAgMzAuOC04LjIgNTYuOC0yNC42IDc3LjgtMTQuNSAxOC42LTM1IDI5LjUtNTguMiAzMS4yIDAgLjMtNS4yIC40LTUuOCAuNC0zOS43LS4xLTcwLjgtMzIuMS04My4xLTY4LjdsNDIuOSAwYzMuNSA1LjMgNi44IDEwLjcgMTEuMiAxNS41IDguMSA3LjMgMTguNSAxMC45IDI5LjMgMTEuMSAxMy4xIDAgMjMuMy05LjEgMjkuOS0xOS44IDguMS0xMy4yIDEyLjItMjkgMTIuMi00Ny41IDAtMTMuMS0xLjgtMjQuMy01LjMtMzMuNi0uOS0yLjMtMS45LTQuNS0zLTYuNi0xLjQtMi42LTIuOS01LjEtNC43LTcuNC0xMC4xLTEzLjItMjkuMy0xOS43LTQ3LjUtMTkuOGwtMjguMiAwIDcwLjMtMTIyLTM1LjYgMGMtNDMuMSAwLTM1LjktNS40LTUwLjQgNDMuM2wtNzUuNyAyNTUuMy00LjIgMC02My4xLTIxMS4xLTYzLjEgMjExLjEtNC4yIDAtMTAxLTM0MC43IDQ0LjIgMCA2MSAyMDcuNHpNNDY3IDMzNS43Yy4zIC42IDExLjMgMjAuMyAxOC4zIDMwLjMgNy4xIDEwLjEgMTkuOCAyMC45IDI0LjggMjQuNnMxOS4xIDEyLjUgMzQuMyAxMy45YzE1LjIgMS41IDIzLjMgLjIgMzguNy02LjYgMTUuNC02LjggMjcuOS0yMC40IDM0LjktMjguMSA2LjktNy42IDE3LjktMjcuMyAxOC4yLTI3LjdsMy4zIDE2LjhjMS43IDktMSAyMy43LTQuMSAzMC00LjMgOC42LTcuNiAxMy41LTE0IDIwLjMtNi4xIDYuNS0xNi43IDEzLjUtMjEuMyAxNi40LTQuNiAyLjktMjMuMSAxNS4xLTUwLjEgMTAuM3MtNDQuNy0yNS45LTUzLjktMzguMmMtOS44LTEzLjItMTYuNy0yOC4zLTE5LTMzLjItMy44LTguNC05LjktMjguMi0xMC4xLTI4Ljh6bTE2OS43LTIxOGMzLjMgMjAuMy0uMSAyOC43LTkuMSA0NmwtMTIuNyAyNC4yYy0uMy0uNi0xMC0yMC43LTI1LjktMzEuOS0xMy42LTkuNi0yMi41LTExLjctMzYuMy04LjgtMTcuOCAzLjctMzggMjUtNDYuOCA1MS4yLTEwLjUgMzEuNC0xMC43IDQ2LjYtMTEgNjAuNi0uNiAyMi40IDIuOSAzNS42IDIuOSAzNS42cy0xNS40LTI4LjUtMTUuMi03MC4xYy4xLTI5LjcgNC44LTU2LjcgMTguNS04My4zIDEyLjEtMjMuNCAzMC4xLTM3LjQgNDYuMS0zOS4xIDE2LjUtMS43IDI5LjYgNi4zIDM5LjcgMTQuOSAxMC42IDkgMjEuMyAyOC44IDIxLjMgMjguOGwyNC45LTQ5LjggMy42IDIxLjh6XCJdXG59O1xudmFyIGZhR3JhdiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdncmF2JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMmQ2XCIsIFwiTTMwMi42IDIxMC42YzQuNSA0LjUgNC41IDEyLjMgMCAxNi44bC0xMCAxMGMtNC41IDQuOS0xMi4zIDQuOS0xNy4xIDBsLTEwLjgtMTAuOGMtNC41LTQuOS00LjUtMTIuMyAwLTE3LjFsMTAtMTBjNC41LTQuNSAxMi4zLTQuNSAxNy4xIDBsMTAuOCAxMS4xem0tMzEuMi0yMC4zYTcuNyA3LjcgMCAxIDAgLTEwLjYtMTEgNy43IDcuNyAwIDEgMCAxMC42IDExem0tMjYuOCA1LjVhNy41IDcuNSAwIDEgMCAxMC43IDEwLjUgNy41IDcuNSAwIDEgMCAtMTAuNy0xMC41ek0zMTkuNCAxODJjLTIwLjUtMTQuOS0zNC45LTQ0LjYtMTIuMy03MC4zIDIyLjMtMjUuNyA0Mi0xNy44IDYxLjcgLjggMTIuMyAxMS43IDMwLjIgMjUuNyAxNy44IDQ5LjgtMTIuOSAyNC4zLTQ2LjYgMzQuMy02Ny4yIDE5Ljd6bTQ5LjItNDUuOWMtOS4yLTEwLjMtMjQuMSA3LjEtMTYgMTYuNiA3LjYgOS4zIDMzLjEgMi41IDE2LTE2LjZ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTQ0My43IDQ0YzIuNi0xNi42LTIwLjktMTcuMS0yNi0yNi41LTE0LTI0LjktMjguNi0zOC01Ni4zLTMxLjQgMTItOC4zIDI0LjMtNi4zIDI0LjMtNi4zIC4zLTYuNiAwLTEzLjQtOS43LTI1LjcgNC0xMi45IC4zLTIzLjEgLjMtMjMuMSAxNi04LjkgMjcuNy0yNS4yIDMwLTQ0LjYgMy43LTMyLTE5LjQtNjEuMS01MS40LTY0LjgtMjIuOC0yLjYtNDUuMSA3LjktNTYuMSAyNi41LTIzLjkgNDEuNCAxLjQgNzMuMiAyMy4xIDg0LTE0LjktMS40LTM1LjQtMTIuMy00MS40LTM1LjQtNi44LTI2LjUgMi45LTUxLjQgOS4yLTYzLjQgMCAwLTQuNS02LTguMy05LjIgMCAwLTE0LjIgMC0yNS40IDUuNSAxMi4zLTE1LjcgMjYtMTQuOSAyNi0xNC45IDAtNi42LS42LTE1LjQtMy43LTIyLjMtNS42LTExLjQtMjQuNi0xMy4zLTMyLjcgMi45IC4xLS4yIC4zLS40IC40LS41LTUuMiAxMi4zLTEuMSA1Ny43IDE3LjQgOTAtMi42IDEuNC05LjQgNi4zLTEzLjQgMTAuMy0yMi4zIDEwLTU4IDYyLjItNTggNjIuMi0yOS4xIDExLjEtNzkuNyA1Mi41LTcyLjkgODIuMyAuMyAzLjEgMS40IDUuNyAzLjEgNy43LTIuOSAyLjMtNS43IDUuMi04LjYgOC42LTEyLjMgMTQuMi01LjUgMzYuMyAxOC4zIDI1LjIgMTYuMy03LjQgMzAuNi0yMC45IDM3LjUtMzEuNCAwIDAtNS43LTUuMi0xNi44LTQuNSAyOC42LTYuOCAzNS40LTkuNyA0Ny43LTkuNCA4LjMgNCA4LjMtMzUuNCA4LjMtMzUuNCAwLTE1LjItMi4zLTMyLTExLjUtNDIuOCAxMi45IDEyLjYgMzAgMzMuOCAyOC45IDYyLjYtLjggMTguOS0xNS43IDIzLjctMTUuNyAyMy43LTkuNCAxNy4xLTQ0LjYgNjgtMzEuNCAxMDkuNCAwIDAtMTAtMTUuNC0xMC41LTIyLjgtMTggMjAtNDggNTQtMjUuNCA2Ni42IDI3LjUgMTUuMiAxMTIuMy05MS41IDEzMC4zLTE0Ni45IDM1LjctMjEuNSA1Ny4yLTQ4LjggNjYtNjcuMSAyMi43IDQ0LjkgOTguNCA5Ny41IDEwNC40IDYwLjl6XCJdXG59O1xudmFyIGZhQXdzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2F3cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjM3NVwiLCBcIk0xODAuNCAyMDNjLS43IDIyLjYgMTAuNiAzMi43IDEwLjkgMzktLjEgMS4zLS42IDIuNS0xLjMgMy42cy0xLjcgMi0yLjggMi42bC0xMi44IDljLTEuNyAxLjItMy42IDEuOC01LjYgMS45LS40IDAtOC4yIDEuOC0yMC41LTI1LjYtNy41IDkuNC0xNyAxNi45LTI3LjkgMjJzLTIyLjcgNy43LTM0LjcgNy41Yy0xNi4zIC45LTYwLjQtOS4yLTU4LjEtNTYuMi0xLjYtMzguMyAzNC4xLTYyLjEgNzAuOS02MCA3LjEgMCAyMS42IC40IDQ3IDYuM2wwLTE1LjZjMi43LTI2LjUtMTQuNy00Ny00NC44LTQzLjktMi40IDAtMTkuNC0uNS00NS44IDEwLjEtNy40IDMuNC04LjMgMi44LTEwLjggMi44LTcuNCAwLTQuNC0yMS41LTIuOS0yNC4yIDUuMi02LjQgMzUuOS0xOC40IDY1LjktMTguMiAyMC4xLTEuOCA0MC4xIDQuNCA1NS43IDE3LjMgNi4zIDcuMSAxMS4yIDE1LjQgMTQuMiAyNC40czQuMiAxOC41IDMuNSAyOGwwIDY5LjN6TTk0IDIzNS40YzMyLjQtLjUgNDYuMi0yMCA0OS4zLTMwLjUgMi41LTEwLjEgMi4xLTE2LjQgMi4xLTI3LjQtOS43LTIuMy0yMy42LTQuOS0zOS42LTQuOS0xNS4yLTEuMS00Mi44IDUuNi00MS43IDMyLjMtMS4yIDE2LjggMTEuMSAzMS40IDMwIDMwLjV6bTE3MC45IDIzLjFjLTcuOSAuNy0xMS41LTQuOS0xMi43LTEwLjRMMjAyLjQgODMuNGMtMS0yLjgtMS42LTUuNi0xLjktOC42LS4yLTEuMiAuMS0yLjQgLjgtMy40czEuOC0xLjYgMy0xLjhjLjIgMC0yLjEgMCAyMi4yIDAgOC44LS45IDExLjYgNiAxMi42IDEwLjRMMjc0LjkgMjIwLjggMzA4LjEgODBjLjUtMy4yIDIuOS0xMS4xIDEyLjgtMTAuMmwxNy4yIDBjMi4yLS4yIDExLjEtLjUgMTIuNyAxMC40TDM4NC4xIDIyMi43IDQyMSA4MC4xYy41LTIuMiAyLjctMTEuNCAxMi43LTEwLjRsMTkuNyAwYy45LS4xIDYuMi0uOCA1LjMgOC42LS40IDEuOCAzLjQtMTAuNy01Mi44IDE2OS45LTEuMSA1LjUtNC44IDExLjEtMTIuNyAxMC40bC0xOC43IDBjLTEwLjkgMS4yLTEyLjUtOS43LTEyLjctMTAuN2wtMzMuMi0xMzcuMS0zMi44IDEzN2MtLjIgMS4xLTEuNyAxMS45LTEyLjcgMTAuN2wtMTguMyAwIDAgMHptMjczLjUgNS42Yy01LjkgMC0zMy45LS4zLTU3LjQtMTIuMy0yLjMtMS00LjMtMi42LTUuNy00LjhzLTIuMS00LjYtMi4xLTcuMWwwLTEwLjdjMC04LjUgNi4yLTYuOSA4LjgtNS45IDEwIDQuMSAxNi41IDcuMSAyOC44IDkuNiAzNi43IDcuNSA1Mi44LTIuMyA1Ni43LTQuNSAxMy4yLTcuOCAxNC4yLTI1LjcgNS4zLTM0LjktMTAuNS04LjgtMTUuNS05LjEtNTMuMS0yMS00LjYtMS4zLTQzLjctMTMuNi00My44LTUyLjQtLjYtMjguMiAyNS01Ni4yIDY5LjUtNTYgMTIuNyAwIDQ2LjQgNC4xIDU1LjYgMTUuNiAxLjQgMi4xIDIgNC42IDEuOSA3bDAgMTAuMWMwIDQuNC0xLjYgNi43LTQuOSA2LjctNy43LS45LTIxLjQtMTEuMi00OS4yLTEwLjgtNi45LS40LTM5LjkgLjktMzguNCAyNS0uNCAxOSAyNi42IDI2LjEgMjkuNyAyNi45IDM2LjUgMTEgNDguNiAxMi44IDYzLjEgMjkuNiAxNy4xIDIyLjIgNy45IDQ4LjMgNC4zIDU1LjQtMTkuMSAzNy41LTY4LjQgMzQuNC02OS4zIDM0LjR6bTQwLjIgMTA0LjljLTcwIDUxLjctMTcxLjcgNzkuMi0yNTguNSA3OS4yLTExNy4xIC44LTIzMC4zLTQyLjMtMzE3LjMtMTIwLjctNi41LTUuOS0uOC0xNCA3LjItOS41IDk2LjUgNTUuMiAyMDUuNyA4NC4yIDMxNi45IDg0LjEgODMtLjQgMTY1LjEtMTcuMyAyNDEuNi00OS41IDExLjgtNSAyMS44IDcuOCAxMC4xIDE2LjR6bTI5LjItMzMuM2MtOS0xMS41LTU5LjMtNS40LTgxLjgtMi43LTYuOCAuOC03LjktNS4xLTEuOC05LjUgNDAuMS0yOC4yIDEwNS45LTIwLjEgMTEzLjQtMTAuNiA3LjUgOS41LTIuMSA3NS40LTM5LjYgMTA2LjktNS44IDQuOS0xMS4zIDIuMy04LjctNC4xIDguNC0yMS4zIDI3LjQtNjguNSAxOC40LTgwelwiXVxufTtcbnZhciBmYUdsaWRlRyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdnbGlkZS1nJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMmE2XCIsIFwiTTQwNy4xIDIxMS4yYy0zLjUtMS40LTExLjYtMy44LTE1LjQtMy44LTM3LjEgMC02Mi4yIDE2LjgtOTMuNSAzNC41bC0uOS0uOWM3LTQ3LjMgMjMuNS05MS45IDIzLjUtMTQwLjQgMC03MS41LTM4LjItMTAwLjYtMTA4LjQtMTAwLjYtMTE1LjEgMC0xNzMuNCAxMTMuNy0xNzMuNCAxOTguNCAwIDg3LjkgNTEuMyAxMzYuNiAxMzguNiAxMzYuNiAxMiAwIDExLTEgMTEgMy44LTE2LjkgMTI4LjktOTAuOCAxMzMuMS05MC44IDk0LjYgMC0zOS4yIDQ1LTU4LjYgNDUuNS02MS0uMy0xMi4yLTQ3LTI3LjYtNTguOS0yNy42LTMzLjkgLjEtNTIuNCA1MS4yLTUyLjQgNzkuMyAwIDUxLjkgMzIuOCA4Ny45IDg1LjUgODcuOSA3Ny40IDAgMTM0LTc3LjggMTUxLjQtMTQ1LjQgMTUuMS02MC41IDExLjItNjMuMyAxOS43LTY3LjYgMzIuMi0xNi4yIDU3LjUtMjcgOTMuOC0yNyAxNy44IDAgMzAuNSAzLjcgNTguOSA4LjQgMi45IDAgNi43LTIuOSA2LjctNS44IDAtOC0zMy40LTYwLjUtNDAuOS02My40ek0yMzEuOCAxMjYuOGMtOS4zIDQ0LjctMTguNiA4OS42LTI3LjggMTM0LjMtMi4zIDEwLjItMTMuMyA3LjgtMjIgNy44LTM4LjMgMC00OS00MS44LTQ5LTczLjEgMC00NyAxOC0xMDkuMyA2MS44LTEzMy40IDctNC4xIDE0LjgtNi43IDIyLjYtNi43IDE4LjYgMCAyMCAxMy4zIDIwIDI4LjctLjEgMTQuMy0yLjcgMjguNS01LjYgNDIuNHpcIl1cbn07XG52YXIgZmFKc2ZpZGRsZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdqc2ZpZGRsZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjFjY1wiLCBcIk01MTEuMSAyMzcuNWMtNC43LTIuNi01LjctNS43LTYuNC0xMC44LTIuNC0xNi41LTMuNS0zMy42LTkuMS00OS4xLTM1LjktMTAwLTE1NC0xNDMuNC0yNDYuOC05MS42LTI3LjQgMTUuMi00OSAzNi40LTY1LjUgNjMuOS0zLjItMS41LTUuNS0yLjctNy44LTMuNy0zMC4xLTEyLjQtNTktMTAuMS04NS4zIDkuMi0yNS41IDE4LjctMzYuNCA0NC41LTMyLjcgNzYuNCAuNCAzLTIgNy42LTQuNSA5LjUtMzkuNyAzMC01NiA3OC4xLTQxLjkgMTI0LjYgMTMuOCA0NS42IDU3LjUgNzkuOCAxMDUuNiA4MS40IDMwLjMgMSA2MC42IC41IDkxIC41IDg0IDAgMTY4LjEgLjUgMjUyLjEtLjUgNTIuNy0uNiA5Ni4xLTM2LjkgMTA4LjItODcuMyAxMS41LTQ4LjEtMTEuMS05Ny4zLTU2LjgtMTIyLjZ6bTIxLjEgMTU2LjljLTE4LjIgMjIuNC00Mi4zIDM1LjMtNzEuMyAzNS43LTU2LjkgLjgtMTEzLjggLjItMTcwLjcgLjIgMCAuNy0xNjMgLjItMTYzLjcgLjItNDMuOS0uMy03Ni43LTE5LjgtOTUuMi02MC0xOC45LTQxLjItNC05MC44IDM0LjItMTE2LjEgOS4yLTYuMSAxMi41LTExLjYgMTAuMS0yMy4xLTUuNS0yNi40IDQuNS00OCAyNi40LTYzIDIzLTE1LjcgNDcuNC0xNi4xIDcyLTMuMSAxMC4zIDUuNCAxNC42IDExLjYgMjIuMi0yLjUgMTQuMi0yNi40IDM0LjYtNDYuNyA2MC43LTYxLjMgOTcuNS01NC40IDIyOC40IDcuNiAyMzAuMiAxMzIuNyAuMSA4LjIgMi40IDEyLjQgOS44IDE1LjkgNTcuNiAyNi44IDc0LjUgOTYuMSAzNS4xIDE0NC41em0tODcuOC04MC41Yy01LjggMzEuMi0zNC42IDU1LjEtNjYuNyA1NS4xLTE3IDAtMzIuMS02LjUtNDQuMS0xNy43LTI3LjctMjUuNy03MS4xLTc1LTk1LjktOTMuNC0yMC4xLTE0LjktNDItMTIuMy02MC4zIDMuOC01MCA0NC4xIDE1LjkgMTIxLjggNjcuMSA3Ny4yIDQuNS00IDcuOC05LjUgMTIuNy0xMi44IDguMi01LjUgMjAuOC0uOSAxMy4yIDEwLjYtMTcuNCAyNi4zLTQ5LjMgMzguMi03OC45IDI5LjMtMjguOS04LjctNDguOC0zNi00OC42LTcwLjIgMS4yLTIyLjUgMTIuNC00My4xIDM1LjQtNTYgMjIuNi0xMi42IDQ2LjQtMTMuMSA2NyAyLjUgNTAuOCAzOC41IDc1LjYgODEuNyAxMDcuMyAxMDEuMiAyNC42IDE1LjEgNTQuMyA3LjQgNjguOC0xNy41IDI4LjgtNDkuMi0zNC42LTEwNS03OC45LTYzLjUtNCAzLjctNi45IDguOS0xMS40IDExLjctMTEgNi44LTE3LjMtNC4xLTEyLjgtMTAuNCAyMC43LTI4LjYgNTAuNS00MC40IDgzLjMtMjguMiAzMS40IDExLjcgNDkuMSA0NC40IDQyLjggNzguMnpcIl1cbn07XG52YXIgZmFLZXliYXNlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2tleWJhc2UnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY0ZjVcIiwgXCJNMjg2LjIgNDE5YTE4IDE4IDAgMSAwIDAgMzYgMTggMTggMCAxIDAgMC0zNnpNMzk4LjEgMjcxLjRjLTkuNS0xNC42LTM5LjQtNTIuNC04Ny4zLTczLjctNi4xLTIuNy0xMi4yLTUuMS0xOC40LTcuMyA0LjEtOS45IDYtMjAuNiA1LjgtMzEuNHMtMi43LTIxLjMtNy4yLTMxLjEtMTAuOS0xOC41LTE4LjktMjUuNy0xNy40LTEyLjYtMjcuNi0xNmMtMTIuNC00LjEtMjMuMy02LTMyLjQtNS44LS42LTItMS45LTExIDkuNC0zNWwtMjIuOS0xMy41LTUuNSA3LjZjLTguNyAxMi4xLTE2LjkgMjMuNi0yNC4zIDM0LjktMi43LS42LTUuNS0xLjEtOC4zLTEuMi00MS41LTIuNC0zOS0yLjMtNDEuMS0yLjMtNTAuNiAwLTUwLjggNTIuMS01MC44IDQ1LjlsLTIuNCAzNi43Yy0xLjYgMjcgMTkuOCA1MC4yIDQ3LjYgNTEuOGw4LjkgLjVDMTA2IDIxNS41IDkwLjQgMjI3LjUgNzYuNiAyNDEuNCAxNCAzMDQuNyAxNCAzNzQgMTQgNDI5LjhsMCAzMy42IDIzLjMtMjkuOGMzLjEgMTMuMSA4IDI1LjggMTQuNiAzNy42IDUuOCAxMC4xIDE0LjkgOS40IDE5LjYgNy4zIDQuMi0xLjkgMTAtNi45IDMuOC0yMC4xLTgtMTYuOC0xMy4zLTM0LjctMTUuOC01My4xbDQ2LjgtNTkuOC0yNC43IDc0LjFjNTguMi00Mi40IDE1Ny40LTYxLjggMjM2LjItMzguNiAzNC4yIDEwLjEgNjcuNCAuNyA4NC43LTIzLjggLjctMSAxLjItMi4yIDEuOC0zLjIgMS44IDkuNCAyLjcgMTguOSAyLjggMjguNCAwIDIzLjMtMy43IDUyLjktMTQuOSA4MS42LTIuNSA2LjUgMS44IDE0LjUgOC42IDE1LjcgNy40IDEuNiAxNS4zLTMuMSAxOC40LTExLjEgOS42LTI1LjUgMTQuNi01NC42IDE0LjYtODYuMiAwLTM4LjYtMTMtNzcuNS0zNS45LTExMC45ek0xNDIuNCAxMjguNmwtMTUuNy0uOS0xLjQgMjEuOCAxMy4xIC44Yy0uNiA2LjUtLjUgMTMuMSAuMyAxOS42bC0yMi40LTEuM2MtMS42LS4xLTMuMi0uNS00LjctMS4xcy0yLjgtMS42LTMuOS0yLjgtMS45LTIuNi0yLjUtNC4xLS44LTMuMS0uNy00LjdMMTA3IDExOWMxLTEyLjIgMTMuOS0xMS4zIDEzLjMtMTEuM2wyOS4xIDEuN2MtMi44IDYuMi01LjEgMTIuNi03IDE5LjJ6TTI5MC44IDMwMC44Yy0yLjEgMS42LTQuOCAyLjQtNy41IDIuMnMtNS4xLTEuNS02LjktMy41bC05LjctMTEuNS0zNC40IDI3Yy0xLjYgMS4zLTMuNyAxLjktNS44IDEuN3MtNC0xLjItNS4zLTIuOGwtMTUuOC0xOC42Yy0xLjItMS42LTEuNy0zLjUtMS41LTUuNHMxLjMtMy43IDIuOC00LjlsMzQuNi0yNy4yLTE0LjEtMTYuNy0xNy4xIDEzLjVjLTEuNiAxLjItMy41IDEuOC01LjUgMS42cy0zLjgtMS4xLTUuMS0yLjZjMCAwLTMuNy00LjQtMy44LTQuNS0xLjItMS42LTEuNy0zLjUtMS41LTUuNXMxLjMtMy43IDIuOC00LjlMMjE0IDIyNS4ycy0xOC41LTIyLTE4LjYtMjIuMWMtLjgtMS0xLjMtMi4xLTEuNy0zLjNzLS40LTIuNS0uMy0zLjcgLjYtMi40IDEuMi0zLjUgMS41LTIgMi41LTIuOGMyLjEtMS43IDQuOC0yLjQgNy40LTIuMnM1LjEgMS41IDYuOSAzLjZsODEuMSA5Ni4zYy44IDEgMS4zIDIuMSAxLjcgMy4zcy40IDIuNSAuMyAzLjctLjYgMi41LTEuMiAzLjUtMS41IDIuMS0yLjUgMi44ek0xODcuNCA0MTlhMTggMTggMCAxIDAgMCAzNiAxOCAxOCAwIDEgMCAwLTM2elwiXVxufTtcbnZhciBmYUx1bW9uRHJvcCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdsdW1vbi1kcm9wJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlN2UzXCIsIFwiTTQ4MCAzMmM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZMOTYgNDQ4Yy01MyAwLTk2LTQzLTk2LTk2TDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzg0IDB6TTMwMi40IDExNC43Yy05LjgtMTYuNC0yMC41LTE2LjQtMjkuNiAwbC02OC45IDExNGMtMTAuNyAxNS42LTE2LjQgMzIuOC0xNi40IDUyLjUgMCA1MC45IDQ0LjMgOTQuMyAxMDAuMSA5NC4zIDU1IDAgMTAwLjktNDMuNSAxMDAuOS05NC4zIDAtMTkuNy02LjYtMzcuOC0xNy4yLTUyLjVsLTY4LjktMTE0elwiXVxufTtcbnZhciBmYVdlZWJseSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd3ZWVibHknLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1Y2NcIiwgXCJNNDI1LjEgNjUuOGMtMzkuOSAwLTczLjMgMjUuNy04My43IDY0LjMtMTguMi01OC4xLTY1LjUtNjQuMy04NS02NC4zLTE5LjggMC02Ni44IDYuMy04NS4zIDY0LjMtMTAuNC0zOC42LTQzLjQtNjQuMy04My43LTY0LjMtNDkgMC04Ny41IDMzLjktODcuNSA3Ny4yIDAgMjkgNC4yIDMzLjMgNzcuMiAyMzMuNSAyMi40IDYwLjYgNjcuOCA2OS40IDkyLjcgNjkuNCAzOS4yIDAgNzAtMTkuNSA4NS45LTU0IDE1LjkgMzQuOCA0Ni43IDU0LjMgODUuOSA1NC4zIDI1IDAgNzAuNC05LjEgOTIuNy02OS43IDc2LjYtMjA4LjYgNzcuNS0yMDUuNiA3Ny41LTIyNy4yIC42LTQ4LjMtMzYtODMuNS04Ni45LTgzLjV6bTI2LjMgMTE0LjhMMzg1LjkgMzU3LjFjLTcuOSAyMS41LTIxLjIgMzcuMi00Ni4yIDM3LjItMjMuNCAwLTM3LjQtMTIuNC00NC0zMy45bC0zOS4zLTExNy40LTEgMC0zOS4zIDExNy40Yy03IDIxLjUtMjAuOSAzMy42LTQ0IDMzLjYtMjUgMC0zOC4zLTE1LjctNDYuMi0zNy4yTDYwLjkgMTgxLjZjLTUuNC0xNC44LTcuOS0yMy45LTcuOS0zNC41IDAtMTYuMyAxNS44LTI5LjQgMzguMy0yOS40IDE4LjcgMCAzMiAxMS44IDM2LjEgMjkuMWw0NCAxMzkuOCAxIDAgNDQuNy0xMzYuOGM2LTE5LjcgMTYuNS0zMi4xIDM5LTMyLjFzMzIuOSAxMi4xIDM5IDMyLjFsNDQuNyAxMzYuOCAxIDAgNDQtMTM5LjhjNC4xLTE3LjIgMTcuNC0yOS4xIDM2LjEtMjkuMSAyMi4yIDAgMzguMyAxMy4zIDM4LjMgMzUuNy0uMyA3LjktNC4xIDE2LTcuNiAyNy4yelwiXVxufTtcbnZhciBmYURvY2tlciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdkb2NrZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYzOTVcIiwgXCJNMzQ5LjkgMjM2LjNsLTY2LjEgMCAwLTU5LjQgNjYuMSAwIDAgNTkuNHptMC0yMDQuM2wtNjYuMSAwIDAgNjAuNyA2Ni4xIDAgMC02MC43em03OC4yIDE0NC44bC02Ni4xIDAgMCA1OS40IDY2LjEgMCAwLTU5LjR6TTI3MS44IDEwNC43bC02Ni4xIDAgMCA2MC4xIDY2LjEgMCAwLTYwLjF6bTc4LjEgMGwtNjYuMSAwIDAgNjAuMSA2Ni4xIDAgMC02MC4xem0yNzYuOCAxMDBjLTE0LjQtOS43LTQ3LjYtMTMuMi03My4xLTguNC0zLjMtMjQtMTYuNy00NC45LTQxLjEtNjMuN2wtMTQtOS4zLTkuMyAxNGMtMTguNCAyNy44LTIzLjQgNzMuNi0zLjcgMTAzLjgtOC43IDQuNy0yNS44IDExLjEtNDguNCAxMC43bC00MzQuNyAwYy04LjcgNTAuOCA1LjggMTE2LjggNDQgMTYyLjEgMzcuMSA0My45IDkyLjcgNjYuMiAxNjUuNCA2Ni4yIDE1Ny40IDAgMjczLjktNzIuNSAzMjguNC0yMDQuMiAyMS40IC40IDY3LjYgLjEgOTEuMy00NS4yIDEuNS0yLjUgNi42LTEzLjIgOC41LTE3LjFsLTEzLjMtOC45ek0xMTUuNiAxNzYuOGwtNjYgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNC0uMSAwem03OC4xIDBsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHptNzguMSAwbC02Ni4xIDAgMCA1OS40IDY2LjEgMCAwLTU5LjR6bS03OC4xLTcyLjFsLTY2LjEgMCAwIDYwLjEgNjYuMSAwIDAtNjAuMXpcIl1cbn07XG52YXIgZmFNYWdlbnRvID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ21hZ2VudG8nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzYzRcIiwgXCJNNDQ1LjkgMTI3LjlsMCAyNTYuMS02My40IDM2LjUgMC0yNTUuOC0xNTguNS05MS42LTE1OC42IDkxLjYgLjQgMjU1LjktNjMuMy0zNi42IDAtMjU1LjkgMjIxLjktMTI4LjEgMjIxLjUgMTI3Ljl6TTI1NS44IDQyMC41bC0zMS42IDE4LjQtMzEuOC0xOC4yIDAtMjU2LTYzLjMgMzYuNiAuMSAyNTUuOSA5NC45IDU0LjkgOTUuMS01NC45IDAtMjU2LTYzLjQtMzYuNiAwIDI1NS45elwiXVxufTtcbnZhciBmYUdpdEFsdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdnaXQtYWx0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmODQxXCIsIFwiTTQzOS42IDIzNi4xTDI0NCA0MC41QzIzOC42IDM1IDIzMS4yIDMyIDIyMy42IDMycy0xNSAzLTIwLjQgOC40bC00MC43IDQwLjYgNTEuNSA1MS41YzI3LjEtOS4xIDUyLjcgMTYuOCA0My40IDQzLjdsNDkuNyA0OS43YzM0LjItMTEuOCA2MS4yIDMxIDM1LjUgNTYuNy0yNi41IDI2LjUtNzAuMi0yLjktNTYtMzcuM2wtNDYuMy00Ni4zIDAgMTIxLjljMjUuMyAxMi41IDIyLjMgNDEuOCA5LjEgNTUtNi40IDYuNC0xNS4yIDEwLjEtMjQuMyAxMC4xcy0xNy44LTMuNi0yNC4zLTEwLjFjLTE3LjYtMTcuNi0xMS4xLTQ2LjkgMTEuMi01NmwwLTEyM2MtMjAuOC04LjUtMjQuNi0zMC43LTE4LjYtNDVMMTQyLjYgMTAxIDguNSAyMzUuMUMzIDI0MC42IDAgMjQ3LjkgMCAyNTUuNXMzIDE1IDguNSAyMC40TDIwNC4xIDQ3MS42YzUuNCA1LjQgMTIuNyA4LjQgMjAuNCA4LjRzMTUtMyAyMC40LTguNEw0MzkuNiAyNzYuOWM1LjQtNS40IDguNC0xMi44IDguNC0yMC40cy0zLTE1LTguNC0yMC40elwiXVxufTtcbnZhciBmYUZpcmVmb3hCcm93c2VyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ZpcmVmb3gtYnJvd3NlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTAwN1wiLCBcIk0xMzAuMiAxMjcuNWwwIDB6bTM1MS40IDQ1LjRjLTEwLjYtMjUuNS0zMi4xLTUzLTQ4LjktNjEuNyAxMy43IDI2LjkgMjEuNyA1My45IDI0LjcgNzQgMCAuMSAwIC4zIC4xIC40LTI3LjYtNjguOC03NC40LTk2LjUtMTEyLjYtMTU2LjgtMTUtMjMuNy0xMC45LTI1LjItMTMuMS0yNC43bC0uMSAuMWMtNDYuNyAyNi03NS4zIDc4LjQtODIuNiAxMjIuNy0xNi42IC45LTMyLjkgNS00Ny45IDEyLjEtMS40IC42LTIuNSAxLjctMy4xIDNzLS45IDIuOC0uNiA0LjNjLjIgLjggLjYgMS42IDEuMSAyLjNzMS4yIDEuMyAxLjkgMS43IDEuNiAuNyAyLjQgLjggMS43IDAgMi41LS4zbC41LS4yYzE1LjUtNy4zIDMyLjQtMTEuMiA0OS41LTExLjMgNjIuOC0uNiA5Ny4yIDQ0IDEwNy42IDYyLjMtMTMtOS4yLTM2LjQtMTguMi01OC44LTE0LjMgODcuNyA0My45IDY0LjIgMTk0LjUtNTcuNCAxODkuMi01OS41LTIuNi05Ny4xLTUxLTEwMC41LTkwLjggMCAwIDExLjItNDEuOSA4MC42LTQxLjkgNy41IDAgMjguOS0yMC45IDI5LjMtMjctLjEtMi00Mi41LTE4LjktNTkuMS0zNS4yLTguOC04LjctMTMuMS0xMi45LTE2LjgtMTYuMS0yLTEuNy00LjEtMy4zLTYuMy00LjgtNS42LTE5LjUtNS44LTQwLS43LTU5LjYtMjUuMSAxMS40LTQ0LjYgMjkuNC01OC43IDQ1LjRsLS4xIDBjLTkuNy0xMi4yLTktNTIuNi04LjQtNjEuMS0uMS0uNS03LjIgMy43LTguMiA0LjMtOC42IDYuMS0xNi41IDEyLjktMjMuOCAyMC40LTE2LjMgMTYuNi00NC4xIDUwLjItNTUuNSAxMDEuMi00LjUgMjAuNC02LjggNDQuNC02LjggNTIuMyAwIDEzNC43IDEwOS4yIDI0My45IDI0My45IDI0My45IDEyMC42IDAgMjIzLTg3LjIgMjQwLjQtMjAyLjYgMTEuNi03Ni43LTE0LjctMTMxLjEtMTQuNy0xMzJ6XCJdXG59O1xudmFyIGZhQ2xvdWRzbWl0aCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjbG91ZHNtaXRoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMzg0XCIsIFwiTTUxMiAyMjcuNkw1MTIgMjg0LjUgMjg0LjQgNTEyIDIyNy42IDUxMiAwIDI4NC40IDAgMjI3LjYgMjI3LjYgMCAyODQuNSAwIDUxMiAyMjcuNnptLTI1NiAxNjJjMTcuOCAuNSAzNS42LTIuNiA1Mi4yLTkuMXMzMS44LTE2LjIgNDQuNi0yOC43IDIzLTI3LjMgMjkuOS00My44IDEwLjUtMzQuMSAxMC41LTUyLTMuNi0zNS41LTEwLjUtNTItMTcuMS0zMS4zLTI5LjktNDMuOC0yOC0yMi4yLTQ0LjYtMjguNy0zNC40LTkuNi01Mi4yLTkuMWMtMTcuOC0uNS0zNS42IDIuNi01Mi4yIDkuMXMtMzEuOCAxNi4zLTQ0LjYgMjguNy0yMyAyNy4zLTI5LjkgNDMuOC0xMC41IDM0LjEtMTAuNSA1MiAzLjYgMzUuNSAxMC41IDUyIDE3LjEgMzEuMyAyOS45IDQzLjggMjggMjIuMiA0NC42IDI4LjcgMzQuNCA5LjYgNTIuMiA5LjF6XCJdXG59O1xudmFyIGZhV2l6YXJkc09mVGhlQ29hc3QgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnd2l6YXJkcy1vZi10aGUtY29hc3QnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3MzBcIiwgXCJNMjE5LjIgMzQ1LjdjLTEuOSAxLjQtMTEuMSA4LjQtLjMgMjMuNiA0LjYgNi40IDE0LjEgMTIuOCAyMS43IDYuNiA2LjUtNC45IDcuNC0xMi45IC4zLTIzLTUuNS03LjgtMTQuMy0xMi45LTIxLjctNy4xem0zMzYuOCA3NS45Yy0uMyAxLjctLjYgMS43IC44IDAgMi4xLTQuMiA0LjItMTAuMiA1LTE5LjkgMy4xLTM4LjUtNDAuMy03MS41LTEwMS4zLTc4LTU0LjctNi0xMjQuNCA5LjItMTg4LjggNjAuNWwtLjMgMS42YzIuNiA1IDUgMTAuNyAzLjQgMjEuMmwuOCAuM2M2My45LTU4LjQgMTMxLjItNzcuMiAxODQuNC03My44IDU4LjQgMy43IDEwMCAzNCAxMDAgNjguMSAwIDEwLTIuNiAxNS43LTMuOSAyMC4yek0zOTIuMyAyNDAuNGMuOCA3LjEgNC4yIDEwLjIgOS4yIDEwLjUgNS41IC4zIDkuNC0yLjYgMTAuNS02LjYgLjgtMy40IDIuMS0yOS44IDIuMS0yOS44UzQwMi44IDIyMSAzOTkuMSAyMjVjLTMuNyAzLjctNy4zIDguNC02LjggMTUuNXptLTUwLTE1MS4xYy0yMDQuNSAwLTMyOS4yIDEzNy41LTM0MS41IDE1MS45LTEgLjUtMS4zIC44IC44IDEuMyA2MC41IDE2LjUgMTU1LjggODEuMiAxOTYuMSAyMDIuMmwxIC4zYzU1LjItNjkuOSAxNDAuOS0xMjguMSAyMzctMTI4LjEgODAuOSAwIDEzMC4yIDQyLjIgMTMwLjIgODAuNCAwIDE4LjMtNi42IDMzLjUtMjIuMyA0Ni4zIDAgMS0uMiAuOCAuOCAuOCAxNC43LTEwLjcgMjcuNS0yOC44IDI3LjUtNDguMiAwLTIyLjgtMTIuMS0zOC4yLTEyLjEtMzguMiA3LjEgNy4xIDEwLjcgMTYuMiAxMC43IDE2LjIgNS44LTQwLjkgMjctNjIuMyAyNy02Mi4zLTIuNC05LjctNi44LTE3LjgtNi44LTE3LjggNy42IDguMSAxNC40IDI3LjUgMTQuNCA0MS40IDAgMTAuNS0zLjQgMjIuOC0xMi42IDMxLjlsLjMgLjVjOC4xLTUgMTYuNS0xNi44IDE2LjUtMzggMC0xNS43LTQuNy0yNS45LTQuNy0yNS45IDUuOC01LjIgMTEuMy05LjIgMTYtMTEuOCAuOCAzLjQgMi4xIDkuNyAyLjQgMTQuOSAwIDEgLjggMS44IDEgMCAuOC01LjgtLjMtMTYuMi0uMy0xNi41IDYtMy4xIDkuNy00LjUgOS43LTQuNS0xNS43LTExMC4zLTE0NC0xOTYuOS0yOTEuMi0xOTYuOXpNMjQzIDM3OC45Yy0xMS4xIDktMjQuMiA0LjEtMzAuNi00LjItNy40LTkuNi02LjgtMjQuMSA0LjItMzIuNSAxNC44LTExLjQgMjcuMS0uNSAzMS4yIDUuNSAuMyAuNCAxMi4xIDE2LjYtNC43IDMxLjJ6bTIuMS0xMzYuNGw5LjQtMTcuOCAxMS44IDcxLTEyLjYgNi0yNC42LTI4LjggMTQuMS0yNi43IDMuNyA0LjQtMS44LTguMXptMTguNiAxMTcuNmwtLjMtLjNjMi00LjEtMi41LTYuNi0xNy41LTMxLjctMS4zLTIuNC0zLjEtMi45LTQuNC0yLjZsLS4zLS41YzcuOS01LjggMTUuNC0xMC4yIDI1LjQtMTUuN2wuNSAuM2MxLjMgMS44IDIuMSAyLjkgMy40IDQuN2wtLjMgLjVjLTEtLjMtMi40LS44LTUuMiAuMy0yLjEgLjgtNy45IDMuNy0xMi4zIDcuNmwwIDEuM2MxLjYgMi40IDMuOSA2LjYgNS44IDkuN2wuMyAwYzEwLTYuMyA3LjYtNC41IDExLjUtNy45bC4zIDBjLjUgMS44IC41IDEuOCAxLjggNS41bC0uMyAuM2MtMy4xIC42LTQuNyAuMy0xMS41IDUuNWwwIC4zYzkuNSAxNyAxMSAxNi44IDEyLjYgMTZsLjMgLjNjLTIuMyAxLjYtNi4zIDQuMi05LjcgNi42ek0zMTkgMzI3LjZjLTMuMSAxLjYtNiAyLjktMTAgNWwtLjMtLjNjMS4zLTIuNiAxLjItMi43LTExLjgtMzIuNWwtLjMtLjNjLS4yIDAtOC45IDMuNy0xMCA3LjNsLS41IDAtMS01LjggLjMtLjVjNy4zLTQuNiAyNS41LTExLjYgMjcuOC0xMi42bC41IC4zIDMuMSA1LS4zIC41Yy0zLjUtMS44LTcuNCAuOC0xMi4zIDIuNmwwIC4zYzEyLjMgMzIgMTIuNyAzMC42IDE0LjcgMzAuNmwwIC4yem00NC44LTE2LjVjLTQuMiAxLTUuMiAxLjMtOS43IDIuOWwtLjMtLjMgLjUtNC41Yy0xLTMuNC0zLjEtMTEuNS0zLjctMTMuNmwtLjMtLjNjLTMuNCAuOC04LjkgMi42LTEyLjggMy45bC0uMyAuM2MuOCAyLjYgMy4xIDkuOSA0LjIgMTMuOSAuOCAyLjQgMS44IDIuOSAyLjkgMy4xbDAgLjVjLTMuNyAxLTcuMSAyLjYtMTAuMiAzLjlsLS4zLS4zYzEtMS4zIDEtMi45IC4zLTUtMS0zLjEtOC4xLTIzLjgtOS4yLTI3LjItLjUtMS44LTEuNi0zLjEtMi42LTMuMWwwLS41YzMuMS0xIDYtMi4xIDEwLjctMy40bC4zIC4zLS4zIDQuN2MxLjMgMy45IDIuNCA3LjYgMy4xIDkuN2wuMyAwYzMuOS0xLjMgOS40LTIuOSAxMi44LTMuOWwuMy0uMy0yLjYtOS40Yy0uNS0xLjgtMS0zLjQtMi42LTMuOWwwLS4zYzQuNC0xIDcuMy0xLjggMTAuNy0yLjRsLjMgLjNjLTEgMS4zLTEgMi45LS41IDQuNCAxLjYgNi4zIDQuNyAyMC40IDYuMyAyNi41IC41IDIuNiAxLjggMy40IDIuNiAzLjl6bTMyLjItNi44bC0uMyAuM2MtNC43IC41LTE0LjEgMi40LTIyLjUgNC4ybC0uMy0uMyAuOC00LjJjLTEuNi03LjktMy40LTE4LjYtNS0yNi4yLS4zLTEuOC0uOC0yLjktMi42LTMuN2wuOC0uNWM5LjItMS42IDIwLjItMi40IDI0LjktMi42bC4zIC4zYy41IDIuNCAuOCAzLjEgMS42IDUuNWwtLjMgLjNjLTEuMS0xLjEtMy4zLTMuMi0xNi4yLS44bC0uMyAuM2MuMyAxLjYgMSA2LjYgMS42IDkuOWwuMyAuM2M5LjUtMS43IDQuOC0uMSAxMC43LTIuNGwuMyAwYzAgMS42LS4zIDEuOC0uMyA1LjJsLS4zIDBjLTQuOC0xLTIuMi0uOS0xMC4yIDBsLS4zIC4zYy4zIDIuMSAxLjYgOS40IDIuMSAxMi42bC4zIC4zYzEuMiAuNCAxNC4yLS42IDE2LjItNC43bC4zIDBjLS41IDIuNC0xIDQuMi0xLjYgNnptMTAuNy00NC41Yy00LjUgMi40LTguMSAyLjktMTEgMi45LS4yIDAtMTEuNCAxLjEtMTcuNS0xMC02LjctMTAuOC0xLTI1LjIgNS41LTMxLjcgOC44LTguMSAyMy40LTEwLjEgMjguNS0xNyA4LTEwLjMtMTMtMjIuMy0yOS42LTUuOGwtMi42LTIuOSA1LjItMTYuMmMyNS42LTEuNiA0NS4yLTMgNTAgMTYuMiAuOCAzLjEgMCA5LjQtLjMgMTIuMSAwIDIuNi0xLjggMTguOC0yLjEgMjMtLjUgNC4yLS44IDE4LjMtLjggMjAuNyAuMyAyLjQgLjUgNC4yIDEuNiA1LjUgMS42IDEuOCA1LjggMS44IDUuOCAxLjhsLS44IDQuN2MtMTEuOC0xLjEtMTAuMy0uNi0yMC40LTEtMy4yLTUuMS0yLjItMy4zLTQuMi03LjkgMCAwLTQuMiAzLjktNy4zIDUuNXpNNDQzLjkgMjgxYy02LjQtMTAuNi0xOS44LTcuMi0yMS43IDUuNS0yLjYgMTcuMSAxNC4zIDE5LjggMjAuNyAxMC4ybC4zIC4zYy0uNSAxLjgtMS44IDYtMS44IDYuM2wtLjUgLjVjLTEwLjMgNi45LTI4LjUtMi41LTI1LjctMTguNiAxLjktMTAuOSAxNC40LTE4LjkgMjguOC05LjlsLjMgLjVjMCAxLjEtLjMgMy40LS4zIDUuM3ptNS44LTg3LjdsMC02LjZjLjcgMCAxOS42IDMuMyAyNy44IDcuM2wtMS42IDE3LjVzMTAuMi05LjQgMTUuNC0xMC43YzUuMi0xLjYgMTQuOSA3LjMgMTQuOSA3LjNsLTExLjMgMTEuM2MtMTIuMS02LjQtMTkuNi0uMS0yMC43IC44LTUuMyAzOC43LTguNiA0Mi4yIDQuNCA0Ni4xbC0uNSA0LjdjLTE3LjYtNC4zLTE4LjUtNC41LTM2LjktNy4zbC44LTQuN2M3LjMgMCA3LjUtNS4zIDcuNi02LjggMCAwIDUtNTMuMiA1LTU1LjMgMC0yLjktNS0zLjctNS0zLjd6bTExIDExNC40Yy04LjEtMi4xLTE0LjEtMTEtMTAuNy0yMC43IDMuMS05LjQgMTIuMy0xMi4zIDE4LjktMTAuMiA5LjIgMi42IDEyLjggMTEuOCAxMC43IDE5LjQtMi42IDguOS05LjQgMTMuOS0xOC45IDExLjV6bTQyLjIgOS43Yy0yLjQtLjUtNy4xLTIuNC04LjYtMi45bDAtLjMgMS42LTEuOGMuNi04LjIgLjYtNy4zIC4zLTcuNi00LjgtMS44LTYuNy0yLjQtNy4xLTIuNC0xLjMgMS44LTIuOSA0LjUtMy43IDUuNWwtLjggMy40IDAgLjNjLTEuMy0uMy0zLjktMS4zLTYtMS42bDAtLjMgMi42LTEuOGMzLjQtNC43IDEwLTE0LjEgMTMuOS0yMC4ybDAtMi4xIC41LS4zYzIuMSAuOCA1LjUgMi4xIDcuNiAyLjkgLjUgLjUgLjItMS45LTEgMjUuMS0uMiAxLjggMCAyLjYgLjggMy45em0tNC43LTg5LjhjMTEuMy0xOC4zIDMwLjgtMTYuMiAzNC0zLjRsNy42LTI2LjJjMi4zLTYuMi0yLjgtOS45LTQuNS0xMS4zbDEuOC0zLjdjMTIuMiAxMC40IDE2LjQgMTQgMjIuNSAyMC40LTI1LjkgNzMuMS0zMC44IDgwLjgtMjQuNiA4NC4zbC0xLjggNC40Yy02LjQtMy4zLTguOS00LjQtMTcuOC04LjZsMi4xLTYuOGMtLjMtLjMtMy45IDMuOS05LjcgMy43LTE5LjEtMS4zLTIyLjktMzEuNy05LjctNTIuOXptMjkuMyA3OS4zYzAtNS43LTYuMy03LjktNy45LTUuMi0xLjMgMi4xIDEgNSAyLjkgOC40IDEuNiAyLjYgMi42IDYuMyAxIDkuNC0yLjYgNi4zLTEyLjQgNS4zLTE1LjQtLjggMC0uNy0uMyAuMSAxLjgtNC43bC44LS4zYy0uNiA1LjcgNi4xIDkuNiA4LjQgNSAxLTIuMS0uNS01LjUtMi4xLTguNC0xLjYtMi42LTMuNy02LjMtMS44LTkuNyAyLjctNS4xIDExLjMtNC41IDE0LjcgMi40bDAgLjUtMi40IDMuNHptMjEuMiAxMy40Yy0yLTMuMy0uOS0yLjEtNC41LTQuN2wtLjMgMGMtMi40IDQuMi01LjggMTAuNS04LjYgMTYuMi0xLjMgMi40LTEgMy40LS44IDMuOWwtLjMgLjMtNS44LTQuNCAuMy0uMyAyLjEtMS4zYzMuMS01LjggNi42LTEyLjEgOS4yLTE3bDAtLjNjLTIuNi0yLTEuMi0xLjUtNi0xLjhsMC0uMyAzLjEtMy40IC4zIDBjMy43IDIuNCAxMCA2LjggMTIuMyA4LjlsLjMgLjMtMS4zIDMuOXpNNTc1LjggMjc2bC0yLjktMi45Yy44LTIuNCAxLjgtNSAyLjEtNy42IC43LTkuNy0xMS41LTExLjgtMTEuNS01IDAgNSA3LjkgMTkuNCA3LjkgMjcuOCAwIDEwLjItNS44IDE1LjctMTMuOSAxNi41LTguNCAuOC0yMC4yLTEwLjUtMjAuMi0xMC41bDUtMTQuNCAyLjkgMi4xYy0zIDE3LjggMTcuNyAyMC40IDEzLjMgNS4yLTEuMS00LTE4LjctMzQuMiAyLjEtMzguMiAxMy42LTIuNCAyMyAxNi41IDIzIDE2LjVMNTc1LjggMjc2em0zNS42LTEwLjJjLTExLTMwLjQtNjAuNS0xMjcuNS0xOTItMTI5LjYtNTMuNC0xLTk0LjMgMTUuNC0xMzIuOCAzOGw4NS42LTkuMi05MS40IDIwLjcgMjUuMSAxOS42LTMuOS0xNi41YzcuNS0xLjcgMzkuMS04LjUgNjYuOC04LjlsLTIyLjMgODAuNGMxMy42LS43IDE5LTkgMTkuNi0yMi44bDUtMSAuMyAyNi43Yy0yMi41IDMuMi0zNy4zIDYuNy00OS41IDkuOWwxMy4xLTQzLjItNjEuNS0zNi43IDIuNCA4LjEgMTAuMiA1YzYuMyAxOC42IDE5LjQgNTYuNiAyMC40IDU4LjcgMiA0LjMgMy4yIDUuOCAxMiA0LjVsMS4xIDVjLTE2LjEgNC45LTIzLjcgNy42LTM5IDE0LjRsLTIuNC00LjdjNC40LTIuOSA4LjctMy45IDUuNS0xMi44LTIzLjctNjIuNS0yMS41LTU4LjEtMjIuOC01OS40bDIuNC00LjQgMzMuNSA2Ny4zYy0zLjgtMTEuOSAxLjcgMS43LTMzLTc4LjhsLTQxLjkgODguNSA0LjctMTMuOS0zNS45LTQyLjIgMjcuOCA5My41LTExLjggOC40Yy0xMTEuOS0xMDEuNy0xMDUuOC05OC40LTExMy43LTk4LjctNS41LS4zLTEzLjYgNS41LTEzLjYgNS41bC01LTZjMzAuNi0yMy41IDMxLjYtMjQuMyA1OC40LTQyLjdsNC4yIDcuMXMtNS44IDQuMi03LjkgNy4xYy01LjkgOS4zIDEuNyAxMy4zIDYxLjggNzUuN2wtMTguOC01OC45IDM5LjgtMTAuMiAyNS43IDMwLjYgNC40LTEyLjMtNS0yNC42IDEzLjEtMy40IC41IDMuMSAzLjctMTAuNS05NC4zIDI5LjMgMTEuMy01LTEzLjYtNDIuNCAxNy4zLTkuMiAzMC4xIDM2LjEgMjguNS0xMy4xYy0xLjQtNy41LTIuNS0xNC41LTQuNy0xOS42bDE3LjMgMTMuOSA0LjctMi4xLTU5LjItNDIuNyAyMy4xIDExLjVjMTktNi4xIDI1LjItNy41IDMyLjItOS43bDIuNiAxMWMtMTIuNiAxMi42IDEuNCAxNi44IDYuNSAxOS40bC0xMy42LTYxIDEyIDI4LjNjNC4yLTEuMyA3LjMtMi4xIDcuMy0yLjFsMi42IDguNnMtMy4xIDEtNi4zIDIuMWw4LjkgMjEgMzMuOC02NS43LTIwLjcgNjFjNDIuNC0yNC4xIDgxLjQtMzYuNyAxMzItMzUuOSA2NyAxIDE2Ny4zIDQwLjggMTk5LjggMTM5LjggLjggMi4xIDAgMi42LS44IC4zem0tNDA4LTExMy40czEuOC0uNSA0LjItMS4zbDkuNCA3LjZjLS40IDAtMy40LS4zLTExLjMgMi40bC0yLjQtOC42em0xNDMuOCAzOC41Yy0xLjYtLjYtMjYuNS00LjgtMzMuMyAyMC43bDIxLjcgMTcgMTEuNS0zNy43ek0zMTguNCA2Ny4xYy01OC40IDAtMTA2LjEgMTItMTE1IDE0LjRsMCAuOGM4LjQgMi4xIDE0LjQgNC4yIDIxLjIgMTEuOGwxLjYgLjNjNi42LTEuOCA0OS0xMy45IDExMC4yLTEzLjkgMTgwLjIgMCAzMDEuNyAxMTYuOCAzMDEuNyAyMjMuNGwwIDEwYzAgMS4zIC44IDIuNiAxLjEgLjUgLjUtMi4xIC44LTguNiAuOC0xOS42IC4zLTgzLjgtOTYuNi0yMjcuNi0zMjEuNi0yMjcuNnpNNTI5LjUgMjM2LjhjMS4zLTUuOCAwLTEyLjMtNy4zLTEzLjEtOS42LTEuMS0xNi4xIDIzLjgtMTcgMzMuNS0uOCA1LjUtMS4zIDE0LjkgNiAxNC45IDQuNyAwIDkuNy0uOSAxOC4zLTM1LjR6TTQ2OCAyNzkuN2MtMi42LS44LTkuNC0uOC0xMi42IDEwLjUtMS44IDYuOCAuNSAxMy40IDYgMTQuNyAzLjcgMS4xIDguOSAuNSAxMS44LTEwLjcgMi42LTkuOS0xLjgtMTMuNi01LjItMTQuNHptMjMgMjFjMS44IC41IDMuMSAxIDUuOCAxLjggMC0xLjggLjUtOC40IC44LTEyLjEtMSAxLjMtNS41IDguMS02LjYgMTBsMCAuM3pcIl1cbn07XG52YXIgZmFDcmVhdGl2ZUNvbW1vbnNOZCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjcmVhdGl2ZS1jb21tb25zLW5kJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGViXCIsIFwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptOTQgMTQ0LjNsMCA0Mi41LTE4MC4zIDAgMC00Mi41IDE4MC4zIDB6bTAgNzkuOGwwIDQyLjUtMTgwLjMgMCAwLTQyLjUgMTgwLjMgMHpcIl1cbn07XG52YXIgZmFVc3BzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3VzcHMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3ZTFcIiwgXCJNNDI4LjMgMjQxLjdjMjUuOC00MS4zIDE1LjItNDguOC0xMS43LTQ4LjhsLTI3IDBjLS4xIDAtMS41LTEuNC0xMC45IDgtMTEuMiA1LjYtMzcuOSA2LjMtMzcuOSA4LjcgMCA0LjUgNzAuMy0zLjEgODguMSAwIDkuNSAxLjUtMS41IDIwLjQtNC40IDMyLS41IDQuNSAyLjQgMi4zIDMuOCAuMXpNMzE2LjIgMjY0LjNjNjQtMjEuMyA5Ny4zLTIzLjkgMTAyLTI2LjIgNC40LTIuOS00LjQtNi42LTI2LjItNS44LTUxLjcgMi4yLTEzNy42IDM3LjEtMTcyLjYgNTMuOWwtMzAuNy05My4zIDE5Ni42IDBjLTIuNy0yOC4yLTE1Mi45LTIyLjYtMzM3LjktMjIuNkwtNSA0MTUuOGMxOTYuNC05Ny4zIDI1OC45LTEzMC4zIDMyMS4yLTE1MS41ek02Mi43IDk2YzI1My4zIDUzLjcgMzMwIDY1LjcgMzMyLjEgODUuMiAzNi40IDAgNDUuOSAwIDUyLjQgNi42IDIxLjEgMTkuNy0xNC42IDY3LjctMTQuNiA2Ny43LTQuNCAyLjktNDA2LjQgMTYwLjItNDA2LjQgMTYwLjJMNDQ5LjMgNDE1LjcgNTE3IDk2IDYyLjcgOTZ6XCJdXG59O1xudmFyIGZhU3F1YXJlTGV0dGVyYm94ZCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtbGV0dGVyYm94ZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTYyZVwiLCBcIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xMDUuMSAxODdDNjYuNCAxODcgMzUgMjE4LjMgMzUgMjU3czMxLjQgNzAgNzAuMSA3MGMyNC44IDAgNDYuNS0xMi44IDU5LTMyLjJsLjUtLjctLjQtLjZjLTYuNS0xMC42LTEwLjItMjMuMS0xMC4yLTM2LjUgMC0xMy42IDMuOS0yNi4zIDEwLjYtMzcuMS0xMi40LTE5LjgtMzQuNC0zMi45LTU5LjUtMzIuOXpNMjI0IDE4N2MtMjQuOCAwLTQ2LjUgMTIuOC01OSAzMi4ybC0uNSAuNyAuNCAuNmM2LjUgMTAuNiAxMC4yIDIzLjEgMTAuMiAzNi41IDAgMTMuNi0zLjkgMjYuMy0xMC42IDM3LjEgMTIuNCAxOS43IDM0LjQgMzIuOSA1OS41IDMyLjkgMjQuOCAwIDQ2LjUtMTIuOCA1OS0zMi4ybC41LS43LS40LS42Yy02LjUtMTAuNi0xMC4yLTIzLjEtMTAuMi0zNi41IDAtMTMuNiAzLjktMjYuMyAxMC42LTM3LjEtMTIuNC0xOS43LTM0LjQtMzIuOS01OS41LTMyLjl6bTExOC45IDBjLTI0LjggMC00Ni41IDEyLjgtNTkgMzIuMmwtLjUgLjcgLjQgLjZjNi41IDEwLjYgMTAuMiAyMy4xIDEwLjIgMzYuNSAwIDEzLjYtMy45IDI2LjMtMTAuNiAzNy4xIDEyLjQgMTkuOCAzNC40IDMyLjkgNTkuNSAzMi45IDM4LjcgMCA3MC4xLTMxLjMgNzAuMS03MHMtMzEuNC03MC03MC4xLTcwelwiXVxufTtcbnZhciBmYU1hbmRhbG9yaWFuID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ21hbmRhbG9yaWFuJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTBmXCIsIFwiTTIwMC42IDUxMS45Yy0xLTMuMy0xLjctMTUuOC0xLjQtMjQuNiAuNi0xNS45IDEtMjQuNyAxLjQtMjguOCAuNi02LjIgMi45LTIwLjcgMy4zLTIxLjQgLjYtMSAuNC0yNy45LS4yLTMzLjEtLjMtMi42LS42LTExLjktLjctMjAuNy0uMS0xNi41LS41LTIwLjEtMi43LTI0LjgtMS4xLTIuMy0xLjItMy44LTEtMTEuNCAuMi00LjIgLjEtOC41LS4zLTEyLjctMi0xMy0zLjUtMjcuNy0zLjItMzMuOXMuNC03LjEgMi4xLTkuN2MzLjEtNC43IDYuNS0xNCA4LjYtMjMuMyAyLjMtOS45IDMuOS0xNy4yIDQuNi0yMC43IDEuMS01LjEgMi42LTEwLjEgNC40LTE1LjEgMi4zLTYuMiAyLjUtMTUuNCAuNC0xNS40LS4zIDAtMS40IDEuMi0yLjQgMi43cy00LjggNC44LTguMyA3LjRjLTguNCA2LjEtMTEuNyA5LjQtMTIuNyAxMi42cy0xIDcuMi0uMiA3LjhjLjMgLjIgMS4zIDIuNCAyLjEgNC45IDEuNiA1IDEuOSAxMC4zIC43IDE1LjQtLjQgMS44LTEgNS41LTEuNSA4LjJzLTEgNi41LTEuMyA4LjJjLS4yIDEuNS0uNyAzLTEuNSA0LjMtMSAxLTEuMSAuOS0yLjEtLjUtLjctMS41LTEuMi0zLjEtMS40LTQuNy0uMi0xLjctMS42LTcuMS0zLjEtMTEuOS0zLjMtMTAuOS0zLjUtMTYuMi0xLTIxIC44LTEuNCAxLjQtMyAxLjctNC42IDAtMi40LTIuMi01LjMtNy40LTkuOS03LTYuMi04LjYtNy45LTEwLjItMTEuMy0xLjctMy42LTMuMS00LjEtNC41LTEuNS0xLjggMy0yLjYgOS4xLTMgMjJsLS4zIDEyLjIgMiAyLjJjMy4yIDMuNyAxMi4xIDE2LjUgMTMuOCAxOS44IDMuNCA2LjcgNC4zIDExLjcgNC40IDIzLjZzMSAyMi44IDIgMjQuN2MuNCAuNyAuNSAxLjQgLjMgMS41cy40IDIuMSAxLjMgNC4zYzEgMi45IDEuNyA1LjkgMi4xIDkgLjQgMy41IC45IDcgMS43IDEwLjQgMi4yIDkuNiAyLjggMTQuMSAyLjQgMjAuMS0uMiAzLjMtLjUgMTEuMS0uNyAxNy4zLTEuMyA0MS44LTEuOCA1OC0yIDYxLjItLjEgMi0uNCAxMS41LS42IDIxLjEtLjQgMTYuMy0xLjMgMjcuNC0yLjQgMjguNi0uNiAuNy04LjEtNC45LTEyLjUtOS41LTMuOC0zLjktNC00LjgtMi44LTkuOSAuNy0zIDIuMy0xOC4zIDMuMy0zMi42IC40LTQuOCAuOC0xMC41IDEtMTIuNyAuOC05LjQgMS43LTIwLjMgMi42LTM0LjggLjYtOC41IDEuMy0xNi40IDEuNy0xNy43cy45LTkuOSAxLjEtMTkuMWwuNC0xNi44LTIuMy00LjNjLTEuNy0zLjMtNC45LTYuOS0xMy4yLTE1LjMtNi02LjEtMTEuOC0xMi4zLTEyLjktMTMuOGwtMi0yLjggLjgtMTAuOWMxLjEtMTUuNyAxLjEtNDguNiAwLTU5LjFsLS45LTguNy0zLjMtNC41Yy01LjktOC4xLTUuOC03LjctNi4yLTMzLjMtLjEtNi4xLS40LTExLjUtLjYtMTIuMS0uOC0xLjktMy0yLjctOC41LTMtOC45LS42LTExLTEuOS0yMy44LTE0LjYtNi4yLTYtMTIuMy0xMi0xMy44LTEzLjItMi44LTIuNC0yLjgtMi0uNi05LjZsMS40LTQuNi0xLjctM2MtLjgtMS40LTEuNi0yLjgtMi42LTQuMS0xLjMtMS41LTUuNS0xMC45LTYtMTMuNS0uMi0uNy0uMi0xLjQtLjEtMi4xcy41LTEuMyAuOS0xLjhjMi4yLTIuOSAzLjQtNS43IDQuNS0xMC43IDIuMy0xMS4yIDcuNy0yNi4xIDEwLjYtMjkuMiAzLjItMy41IDcuNy0xIDkuNCA1IDEuMyA0LjggMS40IDkuOCAuMSAxOC42LS41IDMuNy0uOSA3LjQtMSAxMS4xIDAgNCAuMiA0LjcgMi4zIDcuNCAzLjMgNC40IDcuNyA3LjQgMTUuMiAxMC41IDEuNyAuNyAzLjMgMS43IDQuNyAyLjggMTEuMiAxMC43IDE4LjYgMTYuMiAyMi45IDE2LjkgNS4yIC44IDggNC41IDEwIDEzLjQgMS4zIDUuNyA0IDExLjEgNS41IDExLjEgMS4yLS4yIDIuMy0uNyAzLjMtMS40IDItMS4yIDIuMi0xLjcgMi4yLTQuMi0uMy02LS45LTExLjktMi0xNy44LS40LTEuNy0uOC00LjEtLjktNS40cy0uNi0zLjgtMS01LjdjLTIuNi0xMS4yLTMuNi0xNS41LTQuMS0xNi0xLjYtMi00LjEtMTAuMi00LjktMTUuOS0xLjYtMTEuMS00LTE0LjItMTIuOS0xNy40LTQuOS0xLjgtOS40LTQuNS0xMy4zLTcuOS0xLjItMS00LTMuMi02LjQtNS4xcy00LjQtMy41LTQuNi0zLjhjLS44LS43LTEuNy0xLjQtMi43LTItNi4yLTQuMi04LjgtNy0xMS4zLTEybC0yLjQtNWMtLjEtOC43LS4zLTE3LjMtLjQtMjZsNi45LTYuNmM0LTMuOCA4LjUtNy40IDEwLjYtOC40IDMuMy0xLjcgNC40LTEuOSAxMS40LTIgOC41LS4yIDEwLjEgMCAxMS43IDEuNnMxLjQgNi40LS4zIDguNWMtLjYgLjctMS4xIDEuNS0xLjMgMi4zIDAgLjYtMi42IDQuOS01LjQgOS0xLjEgMi4yLTEuOSA0LjUtMi40IDYuOCAyMC40IDEzLjQgMjEuNiAzLjggMTQuMSAyOWwxMS40IDIuNWMzLjEtOC43IDYuNS0xNy4zIDguNi0yNi4yIC4zLTcuNi0xMi00LjItMTUuNC04LjctMi4zLTUuOSAzLjEtMTQuMiA2LjEtMTkuMiAxLjYtMi4zIDYuNi00LjcgOC44LTQuMSAuOSAuMiA0LjItLjQgNy40LTEuMyAyLjUtLjggNS0xLjMgNy41LTEuNyAyLS4yIDQuMS0uNyA2LTEuMyAzLjctMS4xIDQuNS0xLjIgNi4zLS40IDEuOSAuNiAzLjggMS4xIDUuOCAxLjQgMi4xIC4zIDQuMSAuOSA2IDEuOSAxLjYgLjkgMy4zIDEuNyA1IDIuMiAyLjUgLjcgMyAuNiA3LTEuN0wyMjYgNS40IDIzNi43IDVjMTAuNC0uNCAxMC44LS41IDE1LjMtMi43TDI1Ni41IDAgMjU5IDEuNGMxLjggMSAzLjEgMi43IDQuOSA2IDIuNCA0LjUgMi40IDQuNiAxLjQgNy40LS45IDIuNC0uOSAzLjMtLjEgNi40IC41IDIgMS4yIDQgMi4xIDUuOSAuNiAxLjMgMS4xIDIuNiAxLjMgNCAuMyA0LjMgMCA1LjMtMi40IDYuOS0yLjIgMS41LTcgNy45LTcgOS4zLS4yIDEtLjYgMi0xLjEgMy01IDExLjUtNi44IDEzLjYtMTQuMyAxNy05LjIgNC4yLTEyLjMgNS4yLTE2LjIgNS4yLTMuMSAwLTQgLjItNC41IDEuMy0xLjIgMS40LTIuNSAyLjctNC4xIDMuNy0xLjggMS4yLTMuMyAyLjktNC40IDQuOC0uNSAxLjItMS40IDIuMi0yLjUgMi45LS45IC40LTEuOCAxLTIuNSAxLjctMi4yIDEuOS00LjYgMy43LTcgNS40LTMuMyAyLjMtNi45IDUtNy45IDYtLjcgLjctMS41IDEuMy0yLjQgMS43LS44IC40LTEuNiAuOS0yLjEgMS42LTEuMyAxLjQtMS41IDIuMS0xLjEgNC42IC4zIDIgLjggNCAxLjQgNS45IDEuMyAzLjggMS4zIDcuOSAwIDEwLjZzLS45IDYuNyAxLjQgOS42YzIgMi42IDIuMiA0LjYgLjcgOC44LS44IDIuOS0xLjEgNS45LTEuMSA4LjkgMCA0LjkgLjIgNi4zIDEuNSA4LjRzMS44IDIuNSAzLjIgMi4zYzItLjIgMi4zLTEuMSA0LjctMTIuMSAyLjItMTAgMy43LTExLjkgMTMuOC0xNy4xIDIuOS0xLjUgNy41LTQgMTAtNS40czYuOC0zLjcgOS40LTQuOWM1LjktMi42IDExLjItNi42IDE1LjItMTEuNyA3LjEtOC44IDEwLTE2LjIgMTIuOC0zMy4zIC40LTIuOCAxLjMtNS40IDIuOS03LjcgMS40LTIuMiAyLjQtNC43IDIuOS03LjMgMS01LjMgMi45LTkuMSA1LjYtMTEuNSA0LjctNC4yIDYtMS4xIDQuNiAxMC45LS41IDMuOS0xLjEgMTAuMy0xLjQgMTQuNGwtLjYgNy40YzMgMi43IDUuOSA1LjUgOC45IDguMmwuMSA4LjRjLjEgNC42IC41IDkuNSAuOSAxMC45bC44IDIuNS02LjQgNi4zYy04LjUgOC4zLTEyLjkgMTMuOS0xNi44IDIxLjYtMS44IDMuNS0zLjcgNy4xLTQuNCA4LTIuMiAzLjEtNi41IDEzLTguOCAyMC4zbC0yLjMgNy4yLTcgNi41Yy0zLjggMy42LTggNy4yLTkuMiA4LjItMyAyLjMtNC4zIDUuMS00LjMgMTAtLjEgMi41IC40IDUgMS42IDcuMyAuOCAxLjYgMS41IDMuMiAyLjEgNC44IC4zIDEgLjkgMiAxLjYgMi45IDEuNCAxLjYgMS45IDE2LjEgLjggMjMuMi0uNyA0LjUtMy42IDEyLTQuNyAxMi0xLjggMC00LjEgOS4zLTUuMSAyMC43LS4yIDItLjYgNS45LTEgOC43cy0xIDEwLTEuNCAxNmMtLjggMTIuMi0uMiAxOC44IDIgMjMuMiAzLjQgNi43IC41IDEyLjctMTEgMjIuOGwtNCAzLjUgLjEgNS4yYy4xIDMgLjQgNiAxLjEgOC45IDQuNiAxNiA0LjcgMTYuOSA0LjQgMzcuMS0uNSAyNi40LS4zIDQwLjMgLjYgNDQuMiAuNSAyLjMgLjkgNC42IDEuMSA3IC4yIDIgLjcgNS4zIDEuMSA3LjQgLjUgMi4zIC44IDExIC44IDIyLjdsMCAxOS4xLTEuOCAyLjZjLTIuNyAzLjktMTUuMSAxMy41LTE1LjUgMTIuM2wuMSAwem0yOS41LTQ1LjFjLS4yLS4zLS4zLTYuOS0uMy0xNC42IDAtMTQuMS0uOS0yNy41LTIuMy0zNC40LS40LTItLjgtOS43LS45LTE3LjEtLjItMTEuOS0xLjQtMjQuNC0yLjYtMjYuNC0uNy0xLjEtMy0xNy43LTMtMjEuMyAwLTQuMiAxLTYgNS4zLTkuMXM0LjktMy4xIDUuNS0uN2MuMyAxLjEgMS40IDUuNiAyLjYgMTAgMy45IDE1LjEgNC4xIDE2LjMgNCAyMS43LS4xIDUuOC0uMSA2LjEtMS43IDE3LjctMSA3LjEtMS4yIDEyLjQtMSAyOC40IC4yIDE5LjQtLjYgMzUuNy0yIDQxLjMtLjcgMi44LTIuOCA1LjUtMy40IDQuNGwtLjEgMHptLTcxLTM3LjZjLS44LTMuNi0xLjMtNy4yLTEuNy0xMC44cy0xLTcuMi0xLjctMTAuOGMtLjUtMi4xLS45LTQuMy0xLTYuNS0uMy0zLjItLjktNy41LTEuMy05LjUtMS00LjgtMy4zLTE5LjQtMy40LTIxLjEgMC0uNy0uMy00LS43LTcuNC0uNy02LjItLjgtMjcuNy0uMi0yOC4zIDEtMSA2LjYgMi44IDExLjMgNy40bDUuMyA1LjMtLjQgNi41Yy0uMiAzLjYtLjYgMTAuMi0uOCAxNC44LS41IDEzLjMtLjcgOC43LTEuNiAyOC40LS44IDE3LjQtMS45IDMxLjMtMi42IDMyLS4xIC4xLS4yIC4xLS4yIC4ycy0uMiAwLS4zIDAtLjIgMC0uMy0uMS0uMS0uMS0uMi0uMmwwIDB6TTcyIDE2Mi42YzIxLjEgMTIuOCAxNy44IDE0LjIgMjguNSAxNy43IDEzIDQuMyAxOC45IDcuMSAyMy4yIDE2LjktNDMuNyAzNi4xLTY5IDU3LjktNzYuNyA3MC45LTMxIDUyLTYgMTAxLjYgNjIuOCA4Ny4yLTE0LjIgMjkuMi03OCAyOC42LTk4LjctNC45LTI0LjctNDAtMjIuMS0xMTguMyA2MS0xODcuN2wwIDB6bTIxMC44IDE3OWM1Ni43IDYuOSA4Mi4zLTM3LjcgNDYuNS04OS4yIDAgMC0yNi45LTI5LjMtNjQuMy02OCAzLTE1LjUgOS41LTMyLjEgMzAuNi01My44IDg5LjIgNjMuNSA5MiAxNDEuNiA5Mi41IDE0OS40IDQuMyA3MC42LTc4LjcgOTEuMi0xMDUuMyA2MS43bDAgMHpcIl1cbn07XG52YXIgZmFTbGFjayA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzbGFjaycsXG4gIGljb246IFs0NDgsIDUxMiwgWzYyNDQ3LCBcInNsYWNrLWhhc2hcIl0sIFwiZjE5OFwiLCBcIk05NC4xIDMxNS4xYzAgMjUuOS0yMS4yIDQ3LjEtNDcuMSA0Ny4xUzAgMzQxIDAgMzE1LjEgMjEuMiAyNjggNDcuMSAyNjhsNDcuMSAwIDAgNDcuMXptMjMuNyAwYzAtMjUuOSAyMS4yLTQ3LjEgNDcuMS00Ny4xUzIxMiAyODkuMiAyMTIgMzE1LjFsMCAxMTcuOGMwIDI1LjktMjEuMiA0Ny4xLTQ3LjEgNDcuMXMtNDcuMS0yMS4yLTQ3LjEtNDcuMWwwLTExNy44em00Ny4xLTE4OWMtMjUuOSAwLTQ3LjEtMjEuMi00Ny4xLTQ3LjFTMTM5IDMyIDE2NC45IDMyIDIxMiA1My4yIDIxMiA3OS4xbDAgNDcuMS00Ny4xIDB6bTAgMjMuN2MyNS45IDAgNDcuMSAyMS4yIDQ3LjEgNDcuMVMxOTAuOCAyNDQgMTY0LjkgMjQ0TDQ3LjEgMjQ0QzIxLjIgMjQ0IDAgMjIyLjggMCAxOTYuOXMyMS4yLTQ3LjEgNDcuMS00Ny4xbDExNy44IDB6bTE4OSA0Ny4xYzAtMjUuOSAyMS4yLTQ3LjEgNDcuMS00Ny4xUzQ0OCAxNzEgNDQ4IDE5Ni45IDQyNi44IDI0NCA0MDAuOSAyNDRsLTQ3LjEgMCAwLTQ3LjF6bS0yMy43IDBjMCAyNS45LTIxLjIgNDcuMS00Ny4xIDQ3LjFTMjM2IDIyMi44IDIzNiAxOTYuOWwwLTExNy44QzIzNiA1My4yIDI1Ny4yIDMyIDI4My4xIDMyczQ3LjEgMjEuMiA0Ny4xIDQ3LjFsMCAxMTcuOHptLTQ3LjEgMTg5YzI1LjkgMCA0Ny4xIDIxLjIgNDcuMSA0Ny4xUzMwOSA0ODAgMjgzLjEgNDgwIDIzNiA0NTguOCAyMzYgNDMyLjlsMC00Ny4xIDQ3LjEgMHptMC0yMy43Yy0yNS45IDAtNDcuMS0yMS4yLTQ3LjEtNDcuMVMyNTcuMiAyNjggMjgzLjEgMjY4bDExNy44IDBjMjUuOSAwIDQ3LjEgMjEuMiA0Ny4xIDQ3LjFzLTIxLjIgNDcuMS00Ny4xIDQ3LjFsLTExNy44IDB6XCJdXG59O1xudmFyIGZhU2xhY2tIYXNoID0gZmFTbGFjaztcbnZhciBmYUFuZ2VsbGlzdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdhbmdlbGxpc3QnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYyMDlcIiwgXCJNMzE1LjYgMjE1LjRjMTEuNy0zMi42IDQ1LjQtMTI2LjkgNDUuNC0xNTcuMSAwLTI2LjYtMTUuNy00OC45LTQzLjctNDguOS00NC42IDAtODQuNiAxMzEuNy05Ny4xIDE2My4xLTkuNy0yOC41LTU1LjEtMTcyLjUtOTUuMS0xNzIuNS0zMS4xIDAtNDUuNyAyMi45LTQ1LjcgNTEuNyAwIDM1LjMgMzQuMiAxMjYuOCA0Ni42IDE2Mi02LjMtMi4zLTEzLjEtNC4zLTIwLTQuMy0yMy40IDAtNDguMyAyOS4xLTQ4LjMgNTIuNiAwIDguOSA0LjkgMjEuNCA4IDI5LjctMzYuOSAxMC01MS4xIDM0LjYtNTEuMSA3MS43LS4xIDcyLjIgNjguMyAxNDguNiAxNjQuNSAxNDguNiAxMTggMCAxOTEuNC04OC42IDE5MS40LTIwMi45IDAtNDMuMS02LjktODItNTQuOS05My43ek0yODAuMiAxMDhjNC0xMi4zIDIxLjEtNjQuMyAzNy4xLTY0LjMgOC42IDAgMTAuOSA4LjkgMTAuOSAxNiAwIDE5LjEtMzguNiAxMjQuNi00Ny4xIDE0OGwtMzQtNiAzMy4xLTkzLjd6TTExMC44IDQ4LjNjMC0xMS45IDE0LjUtNDUuNyA0Ni4zIDQ3LjFsMzQuNiAxMDAuM2MtMTUuNi0xLjMtMjcuNy0zLTM1LjQgMS40LTEwLjktMjguOC00NS41LTExOS43LTQ1LjUtMTQ4Ljh6TTEwOC41IDI0NGMyOS4zIDAgNjcuMSA5NC42IDY3LjEgMTA3LjQgMCA1LjEtNC45IDExLjQtMTAuNiAxMS40LTIwLjkgMC03Ni45LTc2LjktNzYuOS05Ny43IC4xLTcuNyAxMi43LTIxLjEgMjAuNC0yMS4xek0yOTIuOCA0MzAuM2MtMjkuMSAzMi02Ni4zIDQ4LjYtMTA5LjcgNDguNi01OS40IDAtMTA2LjMtMzIuNi0xMjguOS04OC4zLTE3LjEtNDMuNCAzLjgtNjguMyAyMC42LTY4LjMgMTEuNCAwIDU0LjMgNjAuMyA1NC4zIDczLjEgMCA0LjktNy43IDguMy0xMS43IDguMy0xNi4xIDAtMjIuNC0xNS41LTUxLjEtNTEuNC0yOS43IDI5LjcgMjAuNSA4Ni45IDU4LjMgODYuOSAyNi4xIDAgNDMuMS0yNC4yIDM4LTQyIDMuNyAwIDguMyAuMyAxMS43LS42IDEuMSAyNy4xIDkuMSA1OS40IDQxLjcgNjEuNyAwLS45IDItNy4xIDItNy40IDAtMTcuNC0xMC42LTMyLjYtMTAuNi01MC4zIDAtMjguMyAyMS43LTU1LjcgNDMuNy03MS43IDgtNiAxNy43LTkuNyAyNy4xLTEzLjEgOS43LTMuNyAyMC04IDI3LjQtMTUuNC0xLjEtMTEuMi01LjctMjEuMS0xNi45LTIxLjEtMjcuNyAwLTEyMC42IDQtMTIwLjYtMzkuNyAwLTYuNyAuMS0xMy4xIDE3LjQtMTMuMSAzMi4zIDAgMTE0LjMgOCAxMzguMyAyOS4xIDE4LjEgMTYuMSAyNC4zIDExMy4yLTMxIDE3NC43em0tOTguNi0xMjZjOS43IDMuMSAxOS43IDQgMjkuNyA2LTcuNCA1LjQtMTQgMTItMjAuMyAxOS4xLTIuOC04LjUtNi4yLTE2LjgtOS40LTI1LjF6XCJdXG59O1xudmFyIGZhQW5kcm9pZCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdhbmRyb2lkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMTdiXCIsIFwiTTQyMC41IDI1My45YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptLTI2NS4xIDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0yNzMuNy05Ni41bDQ3LjktODNjLjgtMS4xIDEuMy0yLjQgMS41LTMuOHMuMi0yLjctLjEtNC4xLS45LTIuNi0xLjctMy43LTEuOC0yLTMtMi43LTIuNS0xLjEtMy45LTEuMy0yLjcgMC00IC40LTIuNSAxLjEtMy42IDEuOS0xLjkgMi0yLjUgMy4ybC00OC41IDg0LjFjLTM4LjgtMTcuNC04MC44LTI2LjQtMTIzLjMtMjYuNHMtODQuNSA5LTEyMy4zIDI2LjRMMTE2LjIgNjQuNGMtLjYtMS4yLTEuNS0yLjMtMi41LTMuMnMtMi4zLTEuNS0zLjYtMS45LTIuNy0uNS00LS40LTIuNyAuNi0zLjkgMS4zLTIuMiAxLjYtMyAyLjctMS40IDIuNC0xLjcgMy43LS4zIDIuNy0uMSA0LjEgLjggMi42IDEuNSAzLjhsNDcuOSA4M0M2NC41IDIwMi4yIDguMiAyODUuNSAwIDM4NGw1NzYgMGMtOC4yLTk4LjUtNjQuNS0xODEuOC0xNDYuOS0yMjYuNnpcIl1cbn07XG52YXIgZmFNZWV0dXAgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnbWVldHVwJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMmUwXCIsIFwiTTEzMS4xIDQxNC4zYzEuMSA1LjctMi4zIDExLjEtOCAxMi4zLTUuNCAxLjEtMTAuOS0yLjMtMTItOC0xLjEtNS40IDIuMy0xMS4xIDcuNy0xMi4zczExLjEgMi4zIDEyLjMgOHptMTQzLjEgNzEuNGMtNi4zIDQuNi04IDEzLjQtMy43IDIwIDQuNiA2LjYgMTMuNCA4LjMgMjAgMy43IDYuMy00LjYgOC0xMy40IDMuNC0yMC00LjItNi41LTEzLjEtOC4zLTE5LjctMy43em0tODYtNDYyLjNhMTEuOCAxMS44IDAgMSAwIC00LjktMjMgMTEuOCAxMS44IDAgMSAwIDQuOSAyM3pNNjYuNSAyMjYuM2EyMi4yIDIyLjIgMCAxIDAgLTI0LjcgMzYuOSAyMi4yIDIyLjIgMCAxIDAgMjQuNy0zNi45em0yNzItMTcwLjlhMjIuMSAyMi4xIDAgMSAwIC0yMi40LTM4IDIyLjEgMjIuMSAwIDEgMCAyMi40IDM4em0tMTkxLjEgNThhMTYuOSAxNi45IDAgMSAwIC0xOC44LTI4IDE2LjkgMTYuOSAwIDEgMCAxOC44IDI4em0zNzIuMyAxNTZjLTcuNCAxLjctMTIuMyA5LjEtMTAuNiAxNi45IDEuNCA3LjQgOC45IDEyLjMgMTYuMyAxMC42IDcuNC0xLjQgMTIuMy04LjkgMTAuNi0xNi42LTEuNS03LjQtOC45LTEyLjMtMTYuMy0xMC45em0zOS43LTU2LjhhMTAuMSAxMC4xIDAgMSAwIC0xOS44IDQuMyAxMC4xIDEwLjEgMCAxIDAgMTkuOC00LjN6bS04MC4zLTczLjdhMTguOCAxOC44IDAgMSAwIDIwLjcgMzEuMyAxOC44IDE4LjggMCAxIDAgLTIwLjctMzEuM3ptLTYuMyAxMzkuNGMyNi4zIDQzLjEgMTUuMSAxMDAtMjYuMyAxMjkuMS0xNy40IDEyLjMtMzcuMSAxNy43LTU2LjkgMTcuMS0xMiA0Ny4xLTY5LjQgNjQuNi0xMDUuMSAzMi42LTEuMSAuOS0yLjYgMS43LTMuNyAyLjktMzkuMSAyNy4xLTkyLjMgMTcuNC0xMTkuNC0yMi4zLTkuNy0xNC4zLTE0LjYtMzAuNi0xNS4xLTQ2LjktNjUuNC0xMC45LTkwLTk0LTQxLjEtMTM5LjctMjguMy00Ni45IC42LTEwNy40IDUzLjQtMTE0LjkgMjUuMS02Ni4yIDEwNy42LTk3LjYgMTYzLjYtNTQuMiA2Ny40LTIyLjMgMTM2LjMgMjkuNCAxMzAuOSAxMDEuMSA0MS4xIDEyLjYgNTIuOCA2Ni45IDE5LjcgOTUuMnptLTcwIDc0LjNjLTMuMS0yMC42LTQwLjktNC42LTQzLjEtMjcuMS0zLjEtMzIgNDMuNy0xMDEuMSA0MC0xMjgtMy40LTI0LTE5LjQtMjkuMS0zMy40LTI5LjQtMTMuNC0uMy0xNi45IDItMjEuNCA0LjYtMi45IDEuNy02LjYgNC45LTExLjctLjMtNi4zLTYtMTEuMS0xMS43LTE5LjQtMTIuOS0xMi4zLTItMTcuNyAyLTI2LjYgOS43LTMuNCAyLjktMTIgMTIuOS0yMCA5LjEtMy40LTEuNy0xNS40LTcuNy0yNC0xMS40LTE2LjMtNy4xLTQwIDQuNi00OC42IDIwLTEyLjkgMjIuOS0zOCAxMTMuMS00MS43IDEyNS4xLTguNiAyNi42IDEwLjkgNDguNiAzNi45IDQ3LjEgMTEuMS0uNiAxOC4zLTQuNiAyNS40LTE3LjQgNC03LjQgNDEuNy0xMDcuNyA0NC42LTExMi42IDItMy40IDguOS04IDE0LjYtNS4xIDUuNyAzLjEgNi45IDkuNCA2IDE1LjEtMS4xIDkuNy0yOCA3MC45LTI4LjkgNzcuNy0zLjQgMjIuOSAyNi45IDI2LjYgMzguNiA0IDMuNy03LjEgNDUuNy05Mi42IDQ5LjQtOTguMyA0LjMtNi4zIDcuNC04LjMgMTEuNy04IDMuMSAwIDguMyAuOSA3LjEgMTAuOS0xLjQgOS40LTM1LjEgNzIuMy0zOC45IDg3LjctNC42IDIwLjYgNi42IDQxLjQgMjQuOSA1MC42IDExLjQgNS43IDYyLjUgMTUuNyA1OC41LTExLjF6bTUuNyA5Mi4zYTIzLjMgMjMuMyAwIDEgMCAyNi4yIDM4LjQgMjMuMyAyMy4zIDAgMSAwIC0yNi4yLTM4LjR6XCJdXG59O1xudmFyIGZhRm9udGljb25zRmkgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZm9udGljb25zLWZpJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmM2EyXCIsIFwiTTExNC40IDIyNGw5Mi40IDAtMTUuMiA1MS4yLTc2LjQgMCAwIDE1Ny44YzAgOC0yLjggOS4yIDQuNCAxMGw1OS42IDUuNiAwIDM0LjQtMTc5LjIgMCAwLTM1LjIgMjkuMi0yLjhjNy4yLS44IDkuMi0zLjIgOS4yLTEwLjhsMC0xNTUuOGMwLTMuMi00LTMuMi04LTMuMmwtMzAuNCAwIDAtNTEuMiAzOC40IDAgMC0yOC44YzAtNjggMzYuNC05NiAxMDYtOTYgNDYuOCAwIDg4LjggMTEuMiA4OC44IDcyLjRMMTYzLjYgMTgwYy40LTI1LjYtNi0zMS42LTIyLjQtMzEuNi0yNS4yIDAtMjYgMTMuNi0yNiAzNy42bDAgMzJjMCAzLjItNC44IDYtLjggNnpNMzg0IDQ4M2wtMTQwLjggMCAwLTM0LjQgMjgtMy42YzcuMi0uOCAxMC40LTIuNCAxMC40LTEwbDAtMTQ4YzAtNS42LTQtOS4yLTkuMi0xMC44bC0zMy4yLTguOCA5LjItNDAuNCAxMTAgMCAwIDIwOGMwIDgtMy42IDguOCA0IDEwbDIxLjYgMy42IDAgMzQuNHpNMzU0IDEzNS44bDEyLjQgNDUuNi0xMCAxMC00Mi44LTIyLjgtNDIuOCAyMi44LTEwLTEwIDEyLjQtNDUuNi0zMC0zNi40IDQuOC0xMCAzOCAwIDIxLjItMzguNCAxMi44IDAgMjEuMiAzOC40IDM4IDAgNC44IDEzLjItMzAgMzMuMnpcIl1cbn07XG52YXIgZmFQYWxmZWQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncGFsZmVkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmM2Q4XCIsIFwiTTM4NC45IDE5My45YzAtNDcuNC01NS4yLTQ0LjItOTUuNC0yOS44LTEuMyAzOS40LTIuNSA4MC43LTMgMTE5LjggLjcgMi44IDIuNiA2LjIgMTUuMSA2LjIgMzYuOCAwIDgzLjQtNDIuOCA4My4zLTk2LjJ6TTE5MC40IDI2Ni4xYy4yIDAgNi41LTIuNyAxMS4yLTIuNyAyNi42IDAgMjAuNyA0NC4xLTE0LjQgNDQuMS0yMS41IDAtMzcuMS0xOC4xLTM3LjEtNDMgMC00MiA0Mi45LTk1LjYgMTAwLjctMTI2LjUgMS0xMi40IDMtMjIgMTAuNS0yOC4yIDExLjItOSAyNi42LTMuNSAyOS41IDExLjEgNzIuMi0yMi4yIDEzNS4yIDEgMTM1LjIgNzIgMCA3Ny45LTc5LjMgMTUyLjYtMTQwLjEgMTM4LjItLjEgMzkuNCAuOSA3NC40IDIuNyAxMDBsMCAuMmMuMiAzLjQgLjYgMTIuNS01LjMgMTkuMS05LjYgMTAuNi0zMy40IDEwLTM2LjQtMjIuMy00LjEtNDQuNCAuMi0yMDYuMSAxLjQtMjQyLjUtMjEuNSAxNS01OC41IDUwLjMtNTguNSA3NS45IC4yIDIuNSAuNCA0IC42IDQuNnpNOCAxODEuMXMtLjEgMzcuNCAzOC40IDM3LjRsMzAgMCAyMi40IDIxNy4yczAgNDQuMyA0NC43IDQ0LjNsMjg4LjkgMHM0NC43LS40IDQ0LjctNDQuM2wyMi40LTIxNy4yIDMwIDBzMzguNCAxLjIgMzguNC0zNy40YzAgMCAuMS0zNy40LTM4LjQtMzcuNGwtMzAuMSAwYy03LjMtMjUuNi0zMC4yLTc0LjMtMTE5LjQtNzQuM2wtMjggMCAwLTE5LjFzLTIuNy0xOC40LTIxLjEtMTguNGwtODUuOCAwUzIyNCAzMS45IDIyNCA1MC4zbDAgMTkuMS0yOC4xIDBzLTEwNSA0LjItMTIwLjUgNzQuM2wtMjkgMFM4IDE0Mi41IDggMTgxLjF6XCJdXG59O1xudmFyIGZhV3BiZWdpbm5lciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd3cGJlZ2lubmVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjk3XCIsIFwiTTQ2My4yIDMyMi40YzU2LjIgNjQuMyA0LjIgMTU3LjYtOTEuOSAxNTcuNi0zOS42IDAtNzguOC0xNy43LTEwMC4xLTUwLTYuOSAuNC0yMi43IC40LTI5LjYgMC0yMS40IDMyLjQtNjAuNiA1MC0xMDAuMSA1MC05NS41IDAtMTQ4LjMtOTMtOTEuOS0xNTcuNi03OS4xLTEzMS45IDMxLjMtMjkwLjQgMjA2LjgtMjkwLjQgMTc1LjYgMCAyODUuOSAxNTguNiAyMDYuOCAyOTAuNHptLTMzOS42LTgzbDQxLjUgMCAwLTU4LjEtNDEuNSAwIDAgNTguMXptMjE3LjIgODYuMWwwLTIzLjhjLTYwLjUgMjAuOS0xMzIuNCA5LjItMTg3LjYtMzRsLjIgMjQuOWM1MS4xIDQ2LjQgMTMxLjcgNTcuOSAxODcuMyAzMi45ek0xOTAgMjM5LjRsMTY2LjEgMCAwLTU4LjEtMTY2LjEgMCAwIDU4LjF6XCJdXG59O1xudmFyIGZhRGlhc3BvcmEgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZGlhc3BvcmEnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY3OTFcIiwgXCJNMjE5LjcgMzU0LjZjLTEuNCAwLTg4IDExOS45LTg4LjcgMTE5LjlTNDQuNCA0MTQgNDQgNDEzLjMgMTMwLjYgMjg3LjUgMTMwLjYgMjg1LjhjMC0yLjItMTI5LjYtNDQtMTM3LjYtNDcuMS0xLjMtLjUgMzEuNC0xMDEuOCAzMS43LTEwMi4xIC42LS43IDE0NC40IDQ3IDE0NS41IDQ3IC40IDAgLjktLjYgMS0xLjMgLjQtMiAxLTE0OC42IDEuNy0xNDkuNiAuOC0xLjIgMTA0LjUtLjcgMTA1LjEtLjMgMS41IDEgMy41IDE1Ni4xIDYuMSAxNTYuMSAxLjQgMCAxMzguNy00NyAxMzkuMy00Ni4zIC44IC45IDMxLjkgMTAyLjIgMzEuNSAxMDIuNi0uOSAuOS0xNDAuMiA0Ny4xLTE0MC42IDQ4LjgtLjMgMS40IDgyLjggMTIyLjEgODIuNSAxMjIuOXMtODUuNSA2My41LTg2LjMgNjMuNWMtMS0uMi04OS0xMjUuNS05MC45LTEyNS41bDAgMHpcIl1cbn07XG52YXIgZmFQcm9kdWN0SHVudCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdwcm9kdWN0LWh1bnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyODhcIiwgXCJNMzI2LjMgMjE4LjhjMCAyMC41LTE2LjcgMzcuMi0zNy4yIDM3LjJsLTcwLjMgMCAwLTc0LjQgNzAuMyAwYzIwLjUgMCAzNy4yIDE2LjcgMzcuMiAzNy4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zNjcuOS0zNy4yYzAtNDcuOS0zOC45LTg2LjgtODYuOC04Ni44bC0xMTkuOSAwIDAgMjQ4IDQ5LjYgMCAwLTc0LjQgNzAuMyAwYzQ3LjkgMCA4Ni44LTM4LjkgODYuOC04Ni44elwiXVxufTtcbnZhciBmYVNxdWFyZVVwd29yayA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtdXB3b3JrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNjdjXCIsIFwiTTU2IDMybDMzNiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgMzM2YzAgMzAuOS0yNS4xIDU2LTU2IDU2TDU2IDQ4MGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCA4OEMwIDU3LjEgMjUuMSAzMiA1NiAzMnpNMjcwLjkgMjc0LjJjNi42LTUyLjkgMjUuOS02OS41IDUxLjQtNjkuNSAyNS4zIDAgNDQuOSAyMC4yIDQ0LjkgNDkuN3MtMTkuNyA0OS43LTQ0LjkgNDkuN2MtMjcuOSAwLTQ2LjMtMjEuNS01MS40LTI5Ljl6bS0yNi43LTQxLjhjLTguMi0xNS41LTE0LjMtMzYuMy0xOS4yLTU1LjZsLTYyLjkgMCAwIDc4LjFjMCAyOC40LTEyLjkgNDkuNC0zOC4yIDQ5LjRTODQuMSAyODMuNCA4NC4xIDI1NWwuMy03OC4xLTM2LjIgMCAwIDc4LjFjMCAyMi44IDcuNCA0My41IDIwLjkgNTguMiAxMy45IDE1LjIgMzIuOCAyMy4yIDU0LjggMjMuMiA0My43IDAgNzQuMi0zMy41IDc0LjItODEuNWwwLTUyLjVjNC42IDE3LjMgMTUuNCA1MC41IDM2LjIgNzkuN2wtMTkuMyAxMTAuNSAzNi44IDAgMTIuOC03OC40YzQuMiAzLjUgOC43IDYuNiAxMy40IDkuNCAxMi4zIDcuOCAyNi40IDEyLjIgNDAuOSAxMi42bDMuNCAwYzQ1LjEgMCA4MC45LTM0LjkgODAuOS04MS45cy0zNS45LTgyLjItODAuOS04Mi4yYy00NS40IDAtNzAuOSAyOS43LTc4LjEgNjAuMWwwIC4yelwiXVxufTtcbnZhciBmYUN1dHRsZWZpc2ggPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY3V0dGxlZmlzaCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjM4Y1wiLCBcIk0zNDggMzA1LjVjLTE3LjUgMzEuNi01Ny40IDU0LjUtOTYgNTQuNS01Ni42IDAtMTA0LTQ3LjQtMTA0LTEwNHM0Ny40LTEwNCAxMDQtMTA0YzM4LjYgMCA3OC41IDIyLjkgOTYgNTQuNSAxMy43LTUwLjkgNDEuNy05My4zIDg3LTExNy44LTQ1LjMtNDkuNi0xMTAuNS04MC43LTE4My04MC43LTEzNyAwLTI0OCAxMTEtMjQ4IDI0OFMxMTUgNTA0IDI1MiA1MDRjNzIuNSAwIDEzNy43LTMxLjEgMTgzLTgwLjctNDUuMy0yNC41LTczLjMtNjYuOS04Ny0xMTcuOHpcIl1cbn07XG52YXIgZmFNZWRhcHBzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ21lZGFwcHMnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYzYzZcIiwgXCJNMTE4LjMgMjM4LjRjMy41LTEyLjUgNi45LTMzLjYgMTMuMi0zMy42IDguMyAxLjggOS42IDIzLjQgMTguNiAzNi42IDQuNi0yMy41IDUuMy04NS4xIDE0LjEtODYuNyA5LS43IDE5LjcgNjYuNSAyMiA3Ny41IDkuOSA0LjEgNDguOSA2LjYgNDguOSA2LjYgMS45IDcuMy0yNCA3LjYtNDAgNy44LTQuNiAxNC44LTUuNCAyNy43LTExLjQgMjgtNC43IC4yLTguMi0yOC44LTE3LjUtNDkuNmwtOS40IDY1LjVjLTQuNCAxMy0xNS41LTIyLjUtMjEuOS0zOS4zLTMuMy0uMS02Mi40LTEuNi00Ny42LTcuOGwzMS01ek0yMjggNDQ4YzIxLjIgMCAyMS4yLTMyIDAtMzJMOTIgNDE2Yy0yMS4yIDAtMjEuMiAzMiAwIDMybDEzNiAwem0tMjQgNjRjMjEuMiAwIDIxLjItMzIgMC0zMmwtODggMGMtMjEuMiAwLTIxLjIgMzIgMCAzMmw4OCAwem0zNC4yLTE0MS41YzMuMi0xOC45IDUuMi0zNi40IDExLjktNDguOCA3LjktMTQuNyAxNi4xLTI4LjEgMjQtNDEgMjQuNi00MC40IDQ1LjktNzUuMiA0NS45LTEyNS41IDAtODUuNi03MS44LTE1NS4yLTE2MC0xNTUuMlMwIDY5LjYgMCAxNTUuMmMwIDUwLjIgMjEuMyA4NS4xIDQ1LjkgMTI1LjUgNy45IDEyLjkgMTYgMjYuMyAyNCA0MSA2LjcgMTIuNSA4LjcgMjkuOCAxMS45IDQ4LjkgMy41IDIxIDM2LjEgMTUuNyAzMi42LTUuMS0zLjYtMjEuNy01LjYtNDAuNy0xNS4zLTU4LjYtMzIuNi02MC40LTY2LjEtOTUuNi02Ni4xLTE1MS43IDAtNjcuOSA1Ny0xMjMuMiAxMjctMTIzLjJTMjg3IDg3LjMgMjg3IDE1NS4yYzAgNTYuMS0zMy41IDkxLjMtNjYuMSAxNTEuNi05LjcgMTgtMTEuNyAzNy40LTE1LjMgNTguNi0zLjQgMjAuNiAyOSAyNi40IDMyLjYgNS4xelwiXVxufTtcbnZhciBmYVBpeCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdwaXgnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0M2FcIiwgXCJNMjQyLjQgMjkyLjVjNS40LTUuNCAxNC43LTUuNCAyMC4xIDBsNzcgNzdjMTQuMiAxNC4yIDMzLjEgMjIgNTMuMSAyMmwxNS4xIDAtOTcuMSA5Ny4xYy0zMC4zIDI5LjUtNzkuNSAyOS41LTEwOS44IDBsLTk3LjUtOTcuNCA5LjMgMGMyMCAwIDM4LjktNy44IDUzLjEtMjJsNzYuNy03Ni43em0yMC4xLTczLjZjLTYuNCA1LjUtMTQuNiA1LjYtMjAuMSAwbC03Ni43LTc2LjdjLTE0LjItMTUuMS0zMy4xLTIyLTUzLjEtMjJsLTkuMyAwIDk3LjQtOTcuNGMzMC40LTMwLjMgNzkuNi0zMC4zIDEwOS45IDBsOTcuMiA5Ny4xLTE1LjIgMGMtMjAgMC0zOC45IDcuOC01My4xIDIybC03NyA3N3pNMTEyLjYgMTQyLjdjMTMuOCAwIDI2LjUgNS42IDM3LjEgMTUuNGw3Ni43IDc2LjdjNy4yIDYuMyAxNi42IDEwLjggMjYuMSAxMC44IDkuNCAwIDE4LjgtNC41IDI2LTEwLjhsNzctNzdjOS44LTkuNyAyMy4zLTE1LjMgMzcuMS0xNS4zbDM3LjcgMCA1OC4zIDU4LjNjMzAuMyAzMC4zIDMwLjMgNzkuNSAwIDEwOS44bC01OC4zIDU4LjMtMzcuNyAwYy0xMy44IDAtMjcuMy01LjYtMzcuMS0xNS40bC03Ny03N2MtMTMuOS0xMy45LTM4LjItMTMuOS01Mi4xIC4xbC03Ni43IDc2LjZjLTEwLjYgOS44LTIzLjMgMTUuNC0zNy4xIDE1LjRsLTMxLjggMC01OC01OGMtMzAuMy0zMC4zLTMwLjMtNzkuNSAwLTEwOS44bDU4LTU4LjEgMzEuOCAwelwiXVxufTtcbnZhciBmYVNxdWFyZVR1bWJsciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtdHVtYmxyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0dW1ibHItc3F1YXJlXCJdLCBcImYxNzRcIiwgXCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI1Ni44IDQxNmMtNzUuNSAwLTkxLjktNTUuNS05MS45LTg3LjlsMC05MC0yOS43IDBjLTMuNCAwLTYuMi0yLjgtNi4yLTYuMmwwLTQyLjVjMC00LjUgMi44LTguNSA3LjEtMTAgMzguOC0xMy43IDUwLjktNDcuNSA1Mi43LTczLjIgLjUtNi45IDQuMS0xMC4yIDEwLTEwLjJsNDQuMyAwYzMuNCAwIDYuMiAyLjggNi4yIDYuMmwwIDcyIDUxLjkgMGMzLjQgMCA2LjIgMi44IDYuMiA2LjJsMCA1MS4xYzAgMy40LTIuOCA2LjItNi4yIDYuMmwtNTIuMSAwIDAgODMuM2MwIDIxLjQgMTQuOCAzMy41IDQyLjUgMjIuNCAzLTEuMiA1LjYtMiA4LTEuNCAyLjIgLjUgMy42IDIuMSA0LjYgNC45TDMxOCAzODcuMWMxIDMuMiAyIDYuNy0uMyA5LjEtOC41IDkuMS0zMS4yIDE5LjgtNjAuOSAxOS44elwiXVxufTtcbnZhciBmYVR1bWJsclNxdWFyZSA9IGZhU3F1YXJlVHVtYmxyO1xudmFyIGZhUmVhY3QgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncmVhY3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0MWJcIiwgXCJNNDE4LjIgMTc3LjJjLTUuNC0xLjgtMTAuOC0zLjUtMTYuMi01LjEgLjktMy43IDEuNy03LjQgMi41LTExLjEgMTIuMy01OS42IDQuMi0xMDcuNS0yMy4xLTEyMy4zLTI2LjMtMTUuMS02OS4yIC42LTExMi42IDM4LjQtNC4zIDMuNy04LjUgNy42LTEyLjUgMTEuNS0yLjctMi42LTUuNS01LjItOC4zLTcuNy00NS41LTQwLjQtOTEuMS01Ny40LTExOC40LTQxLjUtMjYuMiAxNS4yLTM0IDYwLjMtMjMgMTE2LjcgMS4xIDUuNiAyLjMgMTEuMSAzLjcgMTYuNy02LjQgMS44LTEyLjcgMy44LTE4LjYgNS45LTUzLjQgMTguNS05MS43IDQ3LjctOTEuNyA3Ny45IDAgMzEuMiA0MC44IDYyLjUgOTYuMyA4MS41IDQuNSAxLjUgOSAzIDEzLjYgNC4zLTEuNSA2LTIuOCAxMS45LTQgMTgtMTAuNSA1NS41LTIuMyA5OS41IDIzLjkgMTE0LjYgMjcgMTUuNiA3Mi40LS40IDExNi42LTM5LjEgMy41LTMuMSA3LTYuMyAxMC41LTkuNyA0LjQgNC4zIDkgOC40IDEzLjYgMTIuNCA0Mi44IDM2LjggODUuMSA1MS43IDExMS4yIDM2LjYgMjctMTUuNiAzNS44LTYyLjkgMjQuNC0xMjAuNS0uOS00LjQtMS45LTguOS0zLTEzLjUgMy4yLS45IDYuMy0xLjkgOS40LTIuOSA1Ny43LTE5LjEgOTkuNS01MCA5OS41LTgxLjcgMC0zMC4zLTM5LjQtNTkuNy05My44LTc4LjR6TTI4Mi45IDkyLjNjMzcuMi0zMi40IDcxLjktNDUuMSA4Ny43LTM2IDE2LjkgOS43IDIzLjQgNDguOSAxMi44IDEwMC40LS43IDMuNC0xLjQgNi43LTIuMyAxMC0yMi4yLTUtNDQuNy04LjYtNjcuMy0xMC42LTEzLTE4LjYtMjcuMi0zNi40LTQyLjYtNTMuMSAzLjktMy43IDcuNy03LjIgMTEuNy0xMC43ek0xNjcuMiAzMDcuNWM1LjEgOC43IDEwLjMgMTcuNCAxNS44IDI1LjktMTUuNi0xLjctMzEuMS00LjItNDYuNC03LjUgNC40LTE0LjQgOS45LTI5LjMgMTYuMy00NC41IDQuNiA4LjggOS4zIDE3LjUgMTQuMyAyNi4xek0xMzYuOSAxODcuMmMxNC40LTMuMiAyOS43LTUuOCA0NS42LTcuOC01LjMgOC4zLTEwLjUgMTYuOC0xNS40IDI1LjQtNC45IDguNS05LjcgMTcuMi0xNC4yIDI2LTYuMy0xNC45LTExLjYtMjkuNS0xNi00My42em0yNy40IDY4LjljNi42LTEzLjggMTMuOC0yNy4zIDIxLjQtNDAuNnMxNS44LTI2LjIgMjQuNC0zOC45YzE1LTEuMSAzMC4zLTEuNyA0NS45LTEuN3MzMSAuNiA0NS45IDEuN2M4LjUgMTIuNiAxNi42IDI1LjUgMjQuMyAzOC43czE0LjkgMjYuNyAyMS43IDQwLjRjLTYuNyAxMy44LTEzLjkgMjcuNC0yMS42IDQwLjgtNy42IDEzLjMtMTUuNyAyNi4yLTI0LjIgMzktMTQuOSAxLjEtMzAuNCAxLjYtNDYuMSAxLjZzLTMwLjktLjUtNDUuNi0xLjRjLTguNy0xMi43LTE2LjktMjUuNy0yNC42LTM5cy0xNC44LTI2LjgtMjEuNS00MC42em0xODAuNiA1MS4yYzUuMS04LjggOS45LTE3LjcgMTQuNi0yNi43IDYuNCAxNC41IDEyIDI5LjIgMTYuOSA0NC4zLTE1LjUgMy41LTMxLjIgNi4yLTQ3IDggNS40LTguNCAxMC41LTE3IDE1LjUtMjUuNnptMTQuNC03Ni41Yy00LjctOC44LTkuNS0xNy42LTE0LjUtMjYuMi00LjktOC41LTEwLTE2LjktMTUuMy0yNS4yIDE2LjEgMiAzMS41IDQuNyA0NS45IDgtNC42IDE0LjgtMTAgMjkuMi0xNi4xIDQzLjR6TTI1Ni4yIDExOC4zYzEwLjUgMTEuNCAyMC40IDIzLjQgMjkuNiAzNS44LTE5LjgtLjktMzkuNy0uOS01OS41IDAgOS44LTEyLjkgMTkuOS0yNC45IDI5LjktMzUuOHpNMTQwLjIgNTdjMTYuOC05LjggNTQuMSA0LjIgOTMuNCAzOSAyLjUgMi4yIDUgNC42IDcuNiA3LTE1LjUgMTYuNy0yOS44IDM0LjUtNDIuOSA1My4xLTIyLjYgMi00NSA1LjUtNjcuMiAxMC40LTEuMy01LjEtMi40LTEwLjMtMy41LTE1LjUtOS40LTQ4LjQtMy4yLTg0LjkgMTIuNi05NHpNMTE1LjcgMzIwLjZjLTQuMi0xLjItOC4zLTIuNS0xMi40LTMuOS0yMS4zLTYuNy00NS41LTE3LjMtNjMtMzEuMi0xMC4xLTctMTYuOS0xNy44LTE4LjgtMjkuOSAwLTE4LjMgMzEuNi00MS43IDc3LjItNTcuNiA1LjctMiAxMS41LTMuOCAxNy4zLTUuNSA2LjggMjEuNyAxNSA0MyAyNC41IDYzLjYtOS42IDIwLjktMTcuOSA0Mi41LTI0LjggNjQuNXptMTE2LjYgOThjLTE2LjUgMTUuMS0zNS42IDI3LjEtNTYuNCAzNS4zLTExLjEgNS4zLTIzLjkgNS44LTM1LjMgMS4zLTE1LjktOS4yLTIyLjUtNDQuNS0xMy41LTkyIDEuMS01LjYgMi4zLTExLjIgMy43LTE2LjcgMjIuNCA0LjggNDUgOC4xIDY3LjkgOS44IDEzLjIgMTguNyAyNy43IDM2LjYgNDMuMiA1My40LTMuMiAzLjEtNi40IDYuMS05LjYgOC45em0yNC41LTI0LjNjLTEwLjItMTEtMjAuNC0yMy4yLTMwLjMtMzYuMyA5LjYgLjQgMTkuNSAuNiAyOS41IC42IDEwLjMgMCAyMC40LS4yIDMwLjQtLjctOS4yIDEyLjctMTkuMSAyNC44LTI5LjYgMzYuNHptMTMwLjcgMzBjLS45IDEyLjItNi45IDIzLjYtMTYuNSAzMS4zLTE1LjkgOS4yLTQ5LjgtMi44LTg2LjQtMzQuMi00LjItMy42LTguNC03LjUtMTIuNy0xMS41IDE1LjMtMTYuOSAyOS40LTM0LjggNDIuMi01My42IDIyLjktMS45IDQ1LjctNS40IDY4LjItMTAuNSAxIDQuMSAxLjkgOC4yIDIuNyAxMi4yIDQuOSAyMS42IDUuNyA0NC4xIDIuNSA2Ni4zem0xOC4yLTEwNy41Yy0yLjggLjktNS42IDEuOC04LjUgMi42LTctMjEuOC0xNS42LTQzLjEtMjUuNS02My44IDkuNi0yMC40IDE3LjctNDEuNCAyNC41LTYyLjkgNS4yIDEuNSAxMC4yIDMuMSAxNSA0LjcgNDYuNiAxNiA3OS4zIDM5LjggNzkuMyA1OCAwIDE5LjYtMzQuOSA0NC45LTg0LjggNjEuNHpNMjU2IDMwMS44YTQ1LjggNDUuOCAwIDEgMCAwLTkxLjYgNDUuOCA0NS44IDAgMSAwIDAgOTEuNnpcIl1cbn07XG52YXIgZmFKeGwgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnanhsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNjdiXCIsIFwiTTQxMi4yIDMyTDM1LjggMzJDMTYgMzIgMCA0OCAwIDY3LjhMMCA0NDQuMkMwIDQ2NCAxNiA0ODAgMzUuOCA0ODBsMzc2LjQgMGMxOS44IDAgMzUuOC0xNiAzNS44LTM1LjhsMC0zNzYuNEM0NDggNDggNDMyIDMyIDQxMi4yIDMyek0zNzguNiAzMzMuN2MwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOGwtMjM1LjYgMGMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOGwyMzUuNiAwem0wLTExMy45YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44bC0yMzUuNiAwYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44bDIzNS42IDB6bTAtMTEzLjljMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhsLTIzNS42IDBjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhsMjM1LjYgMHpcIl1cbn07XG52YXIgZmFTcXVhcmVMaW5rZWRpbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtbGlua2VkaW4nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU3ZDBcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNSAxNzAuMmw2Ni41IDAgMCAyMTMuOC02Ni41IDAgMC0yMTMuOHptNzEuNy02Ny43YTM4LjUgMzguNSAwIDEgMSAtNzcgMCAzOC41IDM4LjUgMCAxIDEgNzcgMHpNMzE3LjkgNDE2bDAtMTA0YzAtMjQuOC0uNS01Ni43LTM0LjUtNTYuNy0zNC42IDAtMzkuOSAyNy0zOS45IDU0LjlsMCAxMDUuOC02Ni40IDAgMC0yMTMuOCA2My43IDAgMCAyOS4yIC45IDBjOC45LTE2LjggMzAuNi0zNC41IDYyLjktMzQuNSA2Ny4yIDAgNzkuNyA0NC4zIDc5LjcgMTAxLjlsMCAxMTcuMi02Ni40IDB6XCJdXG59O1xudmFyIGZhQ3NzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NzcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTZhMlwiLCBcIk0zNzYuMyAzMkwwIDMyIDAgNDA4LjNjMCAxOSA3LjYgMzcuMiAyMSA1MC43czMxLjcgMjEgNTAuNyAyMWwzMDQuNiAwYzE5IDAgMzcuMi03LjYgNTAuNy0yMXMyMS0zMS43IDIxLTUwLjdsMC0zMDQuNmMwLTE5LTcuNi0zNy4yLTIxLTUwLjdzLTMxLjctMjEtNTAuNy0yMXpNMzMyLjQgNDMxLjRjLTcuNy04LjUtMTEuNy0yMC43LTEyLTM2LjZsMzEuMyAwYy4yIDE0LjEgNS4xIDIxLjEgMTQuOCAyMS4xYzQuOSAwIDguNC0xLjYgMTAuNS00LjdjMi0zLjEgMy04IDMtMTQuOGMwLTUuNC0xLjMtOS45LTQtMTMuNGMtMy41LTQuMi04LjEtNy41LTEzLjItOS41TDM1MS4yIDM2OGMtMTAuMy00LjktMTcuOC0xMC44LTIyLjUtMTcuNmMtNC41LTYuOC02LjctMTYuMy02LjctMjguNGMwLTEzLjYgNC0yNC42IDExLjgtMzMuMWM4LjEtOC41IDE5LjEtMTIuNyAzMy4yLTEyLjdjMTMuNiAwIDI0LjEgNC4yIDMxLjUgMTIuNWM3LjUgOC40IDExLjUgMjAuMyAxMS44IDM1LjlsLTMwLjEgMGMuMi01LjEtLjktMTAuMi0zLTE0LjhjLTEuNy0zLjQtNS01LjEtMTAtNS4xYy04LjggMC0xMy4yIDUuMi0xMy4yIDE1LjdjMCA1LjMgMS4xIDkuNCAzLjIgMTIuNmMzLjEgMy41IDcgNi4yIDExLjQgNy44bDExLjEgNC45YzExLjUgNS4zIDE5LjcgMTEuNyAyNC44IDE5LjRjNS4xIDcuNyA3LjYgMTggNy42IDMxYzAgMTUuNS00IDI3LjQtMTIuMyAzNS43Yy04LjIgOC4zLTE5LjUgMTIuNS0zNC4xIDEyLjVzLTI1LjYtNC4yLTMzLjQtMTIuN3ptLTEwMSAwYy03LjctOC41LTExLjctMjAuNy0xMi0zNi42bDMxLjMgMGMuMiAxNC4xIDUuMSAyMS4xIDE0LjggMjEuMWM0LjkgMCA4LjQtMS42IDEwLjQtNC43YzItMy4xIDMtOCAzLTE0LjhjMC01LjQtMS4zLTkuOS0zLjktMTMuNGMtMy41LTQuMi04LjEtNy41LTEzLjItOS41TDI1MC4yIDM2OGMtMTAuMy00LjktMTcuOC0xMC44LTIyLjUtMTcuNmMtNC41LTYuOC02LjctMTYuMy02LjctMjguNGMwLTEzLjYgNC0yNC42IDExLjgtMzMuMWM4LjEtOC41IDE5LjEtMTIuNyAzMy4yLTEyLjdjMTMuNiAwIDI0LjEgNC4yIDMxLjQgMTIuNWM3LjYgOC40IDExLjUgMjAuMyAxMS45IDM1LjlsLTMwLjEgMGMuMi01LjEtLjktMTAuMi0zLTE0LjhjLTEuNy0zLjQtNS01LjEtMTAtNS4xYy04LjggMC0xMy4yIDUuMi0xMy4yIDE1LjdjMCA1LjMgMS4xIDkuNCAzLjIgMTIuNmMzLjEgMy41IDcgNi4yIDExLjQgNy44bDExLjEgNC45YzExLjUgNS4zIDE5LjcgMTEuNyAyNC44IDE5LjRjNS4xIDcuNyA3LjYgMTggNy42IDMxYzAgMTUuNS00LjEgMjcuNC0xMi4zIDM1LjdzLTE5LjUgMTIuNS0zNC4xIDEyLjVzLTI1LjYtNC4yLTMzLjQtMTIuN3ptLTEwNS42IDEuMWMtOC40LTcuNy0xMi41LTE5LjItMTIuNS0zNC41bDAtNzUuNGMwLTE1LjIgNC40LTI2LjcgMTMuMi0zNC42YzguOS03LjggMjAuNy0xMS44IDM1LjItMTEuOGMxNC4xIDAgMjUuMiA0IDMzLjQgMTJjOC4zIDggMTIuNSAyMCAxMi41IDM1LjlsMCA2LTMzLjEgMCAwLTUuOGMwLTYuMS0xLjMtMTAuNy00LTEzLjZjLTEuMS0xLjUtMi42LTIuNy00LjMtMy41cy0zLjUtMS4yLTUuNC0xLjFjLTUuNCAwLTkuMiAxLjgtMTEuNCA1LjZjLTIuMyA1LjItMy4zIDEwLjgtMyAxNi40bDAgNjUuNWMwIDEzLjcgNC44IDIwLjYgMTQuNCAyMC44YzQuNSAwIDcuOS0xLjYgMTAuMi00LjhjMi41LTQuMSAzLjctOC44IDMuNS0xMy42bDAtNC45IDMzLjEgMCAwIDUuMWMwIDEwLjYtMi4xIDE5LjUtNi4yIDI2LjZjLTQgNi45LTkuOSAxMi41LTE3LjEgMTZjLTcuNyAzLjctMTYuMSA1LjUtMjQuNiA1LjNjLTE0LjIgMC0yNS41LTMuOS0zMy44LTExLjZ6XCJdXG59O1xudmFyIGZhSGFzaG5vZGUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnaGFzaG5vZGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0OTlcIiwgXCJNMzUuNyAxNzEuMWMtNDYuOSA0Ni00Ni45IDEyMi45IDAgMTY5LjhMMTcxLjYgNDc2LjhjNDYgNDYuOSAxMjIuOSA0Ni45IDE2OS44IDBMNDc3LjMgMzQwLjljNDYuOS00Ni45IDQ2LjktMTIzLjggMC0xNjkuOEwzNDEuNCAzNS4yYy00Ni45LTQ2LjktMTIzLjgtNDYuOS0xNjkuOCAwTDM1LjcgMTcxLjF6TTE5NiAxOTYuNWE4NC41IDg0LjUgMCAxIDEgMTIwIDExOSA4NC41IDg0LjUgMCAxIDEgLTEyMC0xMTl6XCJdXG59O1xudmFyIGZhUmVkZGl0QWxpZW4gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncmVkZGl0LWFsaWVuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjgxXCIsIFwiTTM3MyAxMzguNmMtMjUuMiAwLTQ2LjMtMTcuNS01MS45LTQxLTMwLjYgNC4zLTU0LjIgMzAuNy01NC4yIDYyLjRsMCAuMmM0Ny40IDEuOCA5MC42IDE1LjEgMTI0LjkgMzYuMyAxMi42LTkuNyAyOC40LTE1LjUgNDUuNS0xNS41IDQxLjMgMCA3NC43IDMzLjQgNzQuNyA3NC43IDAgMjkuOC0xNy40IDU1LjUtNDIuNyA2Ny41LTIuNCA4Ni44LTk3IDE1Ni42LTIxMy4yIDE1Ni42UzQ1LjUgNDEwLjEgNDMgMzIzLjRjLTI1LjQtMTEuOS00My0zNy43LTQzLTY3LjcgMC00MS4zIDMzLjQtNzQuNyA3NC43LTc0LjcgMTcuMiAwIDMzIDUuOCA0NS43IDE1LjYgMzQtMjEuMSA3Ni44LTM0LjQgMTIzLjctMzYuNGwwLS4zYzAtNDQuMyAzMy43LTgwLjkgNzYuOC04NS41IDQuOS0yNC4yIDI2LjMtNDIuNCA1Mi4xLTQyLjQgMjkuNCAwIDUzLjMgMjMuOSA1My4zIDUzLjNzLTIzLjkgNTMuMy01My4zIDUzLjN6TTE1Ny41IDI1NS4zYy0yMC45IDAtMzguOSAyMC44LTQwLjIgNDcuOXMxNy4xIDM4LjEgMzggMzguMSAzNi42LTkuOCAzNy44LTM2LjktMTQuNy00OS4xLTM1LjctNDkuMWwuMSAwek0zOTUgMzAzLjFjLTEuMi0yNy4xLTE5LjItNDcuOS00MC4yLTQ3LjlzLTM2LjkgMjItMzUuNyA0OS4xIDE2LjkgMzYuOSAzNy44IDM2LjkgMzkuMy0xMSAzOC0zOC4xbC4xIDB6bS02MC4xIDcwLjhjMS41LTMuNi0xLTcuNy00LjktOC4xLTIzLTIuMy00Ny45LTMuNi03My44LTMuNnMtNTAuOCAxLjMtNzMuOCAzLjZjLTMuOSAuNC02LjQgNC41LTQuOSA4LjEgMTIuOSAzMC44IDQzLjMgNTIuNCA3OC43IDUyLjRzNjUuOC0yMS42IDc4LjctNTIuNHpcIl1cbn07XG52YXIgZmFUaWt0b2sgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndGlrdG9rJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMDdiXCIsIFwiTTQ0OC41IDIwOS45Yy00NCAuMS04Ny0xMy42LTEyMi44LTM5LjJsMCAxNzguN2MwIDMzLjEtMTAuMSA2NS40LTI5IDkyLjZzLTQ1LjYgNDgtNzYuNiA1OS42LTY0LjggMTMuNS05Ni45IDUuMy02MC45LTI1LjktODIuNy01MC44LTM1LjMtNTYtMzktODguOSAyLjktNjYuMSAxOC42LTk1LjIgNDAtNTIuNyA2OS42LTY3LjcgNjIuOS0yMC41IDk1LjctMTZsMCA4OS45Yy0xNS00LjctMzEuMS00LjYtNDYgLjRzLTI3LjkgMTQuNi0zNyAyNy4zLTE0IDI4LjEtMTMuOSA0My45IDUuMiAzMSAxNC41IDQzLjcgMjIuNCAyMi4xIDM3LjQgMjYuOSAzMS4xIDQuOCA0Ni0uMSAyOC0xNC40IDM3LjItMjcuMSAxNC4yLTI4LjEgMTQuMi00My44bDAtMzQ5LjQgODggMGMtLjEgNy40IC42IDE0LjkgMS45IDIyLjIgMy4xIDE2LjMgOS40IDMxLjkgMTguNyA0NS43czIxLjMgMjUuNiAzNS4yIDM0LjZjMTkuOSAxMy4xIDQzLjIgMjAuMSA2NyAyMC4xbDAgODcuNHpcIl1cbn07XG52YXIgZmFXb3JkcHJlc3MgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnd29yZHByZXNzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTlhXCIsIFwiTTYxLjcgMTY5LjRsMTAxLjUgMjc4Yy03MS0zNC40LTExOS45LTEwNy4yLTExOS45LTE5MS40IDAtMzAuOSA2LjYtNjAuMSAxOC40LTg2LjZ6bTMzNy45IDc1LjljMC0yNi4zLTkuNC00NC41LTE3LjUtNTguNy0xMC44LTE3LjUtMjAuOS0zMi40LTIwLjktNDkuOSAwLTE5LjYgMTQuOC0zNy44IDM1LjctMzcuOCAuOSAwIDEuOCAuMSAyLjggLjItMzcuOS0zNC43LTg4LjMtNTUuOS0xNDMuNy01NS45LTc0LjMgMC0xMzkuNyAzOC4xLTE3Ny44IDk1LjkgNSAuMiA5LjcgLjMgMTMuNyAuMyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ny41IDIzMC40IDQ2LjYtMTM5LjYtMzMuMS05MC44Yy0xMS41LS43LTIyLjMtMi0yMi4zLTItMTEuNS0uNy0xMC4xLTE4LjIgMS4zLTE3LjUgMCAwIDM1LjEgMi43IDU2IDIuNyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ni45IDIyOC43IDIxLjItNzAuOWM5LTI5LjQgMTYtNTAuNSAxNi02OC43ek0yNTkuNyAyNzQuNkwxOTUuOSA0NjAuMWMxOS4xIDUuNiAzOS4yIDguNyA2MC4xIDguNyAyNC44IDAgNDguNS00LjMgNzAuNi0xMi4xLS42LS45LTEuMS0xLjktMS41LTIuOUwyNTkuNyAyNzQuNnptMTgzLTEyMC43Yy45IDYuOCAxLjQgMTQgMS40IDIxLjkgMCAyMS42LTQgNDUuOC0xNi4yIDc2LjJsLTY1IDE4Ny45YzYzLjMtMzYuOSAxMDUuOC0xMDUuNCAxMDUuOC0xODMuOSAwLTM3LTkuNC03MS44LTI2LTEwMi4xek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00ODQuNiAwYTIzNi42IDIzNi42IDAgMSAwIC00NzMuMiAwIDIzNi42IDIzNi42IDAgMSAwIDQ3My4yIDB6XCJdXG59O1xudmFyIGZhSWRlYWwgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnaWRlYWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUwMTNcIiwgXCJNOTMuOCAxNjUuNWE0OS4xIDQ5LjEgMCAxIDAgMCA5OC4xIDQ5LjEgNDkuMSAwIDEgMCAwLTk4LjF6TTU0LjMgNDI1LjhsNzguOSAwIDAtMTQwLjUtNzguOSAwIDAgMTQwLjV6TTIwNS44IDIxNC4yYzAtMjAtMTAtMjIuNS0xOC43LTIyLjVsLTE0IDAgMCA0NS44IDE0IDBjOS43IDAgMTguNy0yLjggMTguNy0yMy4zem0yMDEuNyA0NmwwLTkxLjMgMjIuOCAwIDAgNjguNiAzMy43IDBDNDU0LjYgMTEzLjEgMzU2LjggODYuMiAyNjcuOCA4Ni4ybC05NC44IDAgMCA4Mi44IDE0IDBjMjUuNiAwIDQxLjUgMTcuNCA0MS41IDQ1LjMgMCAyOC44LTE1LjUgNDYtNDEuNSA0NmwtMTQgMCAwIDE2NS42IDk0LjggMGMxNDQuNiAwIDE5NC45LTY3LjIgMTk2LjctMTY1LjZsLTU3LjEgMHptLTEwOS44IDBsLTU2LjIgMCAwLTkxLjIgNTQuNCAwIDAgMjIuNy0zMS43IDAgMCAxMC42IDMwIDAgMCAyMi43LTMwIDAgMCAxMi41IDMzLjUgMCAwIDIyLjd6bTc0LjcgMGwtNS4yLTE3LjctMjkuNyAwLTUuMiAxNy43LTIzLjcgMCAyNy41LTkxLjMgMzIuMyAwIDI3LjUgOTEuMy0yMy43IDB6TTI2Ny44IDMyTC4xIDMyIC4xIDQ4MCAyNjcuOCA0ODBjMTYxLjggMCAyNTEtNzkuNyAyNTEtMjI0LjUgMC04My41LTMyLjYtMjIzLjUtMjUxLTIyMy41em0wIDQyNi45bC0yNDYuNiAwIDAtNDA1LjkgMjQ2LjYgMGMxNDIuMSAwIDIyOS45IDY0LjYgMjI5LjkgMjAyLjQgMCAxMzQuMS04MSAyMDMuNC0yMjkuOSAyMDMuNHptODMuOS0yNjQuOWwtNy41IDI1LjggMTYuNCAwLTcuNS0yNS44LTEuNCAwelwiXVxufTtcbnZhciBmYVBpZWRQaXBlclBwID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3BpZWQtcGlwZXItcHAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxYTdcIiwgXCJNMjA1LjMgMTc0LjZjMCAyMS4xLTE0LjIgMzguMS0zMS43IDM4LjEtNy4xIDAtMTIuOC0xLjItMTcuMi0zLjdsMC02OGM0LjQtMi43IDEwLjEtNC4yIDE3LjItNC4yIDE3LjUgMCAzMS43IDE2LjkgMzEuNyAzNy44em01Mi42IDY3Yy03LjEgMC0xMi44IDEuNS0xNy4yIDQuMmwwIDY4YzQuNCAyLjUgMTAuMSAzLjcgMTcuMiAzLjcgMTcuNCAwIDMxLjctMTYuOSAzMS43LTM3LjggMC0yMS4xLTE0LjMtMzguMS0zMS43LTM4LjF6TTQ0OCA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE4NSAyNTUuMWM0MSAwIDc0LjItMzUuNiA3NC4yLTc5LjZTMjI2IDk1LjkgMTg1IDk1LjljLTEyIDAtMjQuMSAzLjItMzQuNiA4LjhsLTQ1LjcgMCAwIDIwNi4zIDUxLjgtMTAuMSAwLTUwLjZjOC42IDMuMSAxOC4xIDQuOCAyOC41IDQuOHptMTU4LjQgMjUuM2MwLTQ0LTMzLjItNzkuNi03My45LTc5LjYtMy4yIDAtNi40IC4yLTkuNiAuNy0zLjcgMTIuNS0xMC4xIDIzLjgtMTkuMiAzMy40LTEzLjggMTUtMzIuMiAyMy44LTUxLjggMjQuOGwwIDE1Ni4zIDUxLjgtMTAuMSAwLTUwLjZjOC42IDMuMiAxOC4yIDQuNyAyOC43IDQuNyA0MC44IDAgNzQtMzUuNiA3NC03OS42elwiXVxufTtcbnZhciBmYVVzc3VubmFoID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3Vzc3VubmFoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDA3XCIsIFwiTTQ5Ni45IDI2OC4xYzAgNjMuOS0yNS40IDEyNS4yLTcwLjYgMTcwLjNTMzE5LjkgNTA5IDI1NiA1MDkgMTMwLjggNDgzLjUgODUuNyA0MzguNCAxNS4xIDMzMS45IDE1LjEgMjY4YzAtNjMuOSAyNS40LTEyNS4yIDcwLjYtMTcwLjRTMTkyLjIgMjcuMSAyNTYuMSAyNy4xIDM4MS4zIDUyLjQgNDI2LjUgOTcuNiA0OTcgMjA0LjEgNDk3IDI2OGwtLjEgLjF6TTM5LjUgMjY4Yy0uNiAyOC44IDQuNSA1Ny41IDE1LjEgODQuM3MyNi40IDUxLjIgNDYuNiA3MS44IDQ0LjIgMzcgNzAuOCA0OC4xIDU1LjEgMTYuOSA4My45IDE2LjkgNTcuNC01LjggODMuOS0xNi45IDUwLjYtMjcuNSA3MC44LTQ4LjEgMzYtNDUgNDYuNi03MS44IDE1LjctNTUuNSAxNS4xLTg0LjNjLjYtMjguOC00LjUtNTcuNS0xNS4xLTg0LjNzLTI2LjQtNTEuMi00Ni42LTcxLjgtNDQuMi0zNy03MC44LTQ4LjEtNTUuMS0xNi45LTgzLjktMTYuOS01Ny40IDUuOC04My45IDE2LjktNTAuNiAyNy41LTcwLjggNDguMS0zNiA0NS00Ni42IDcxLjgtMTUuNyA1NS41LTE1LjEgODQuM3ptMzg1LjkgNjMuM2MtMTIuNyAwLTIxLjYtMS45LTI2LjctNS45LTUuNS00LjMtOC4yLTEyLjMtOC4yLTIzLjhsMC05Ni41YzAtNi41LTUuMi0yMC4yLTE1LjctNDEuMiA3IDAgMTctOS4xIDMwLTI3LjJsMCAxNDcuOGMwIDExIDIuNCAxOS40IDcgMjUuMyAzLjcgNC43IDEwLjEgOC45IDE5IDEyLjYgMS4yIC40IDIuNiAuOSA0LjEgMS40IDIuOSAuOSA2LjMgMi4xIDEwLjMgMy41LTEuOCAyLjctOC4zIDQtMTkuOSA0bC4xIDB6bS0yMTkgMGMtMS4zIDIuNC0zLjYgNS41LTYuOCA5LjRsLTE4LjUgMjIuNWMtMS02LjEtNC0xMy05LjMtMjAuNnMtOS43LTExLjQtMTMuNC0xMS40bC04OS44IDBjMy4zLTUuMyA0LjktOC44IDQuOS0xMC44cy0uOC01LjMtMi40LTkuN2MtMS41LTQuNC0yLjQtOC41LTIuNC0xMi40IDAtNy40IDIuMS0xMy45IDYuMy0xOS4zbDIwLTI1LjYtNy4xLTE3LjcgMTYuMS0xOS44IDYuNyAxNi44IDgtMTAuM2MtMS44IDYuNC0yLjYgMTIuMy0yLjYgMTcuNyAwIDQuMiAyLjggMTMuMyA4LjMgMjcuM2wxNi4yIDQwLjcgMTcuNyAwYzIuOCAuNCA3LjcgNSAxNC42IDEzLjkgMS44IDIuNCA0LjMgNS44IDcuNyAxMC4yIDEuNCAxLjkgMi45IDMuOSA0LjYgNi4xIDEuMy0yLjMgMi00LjYgMi03LjEgMC0yLTEuMy02LjYtNC0xMy40TDE3OCAzMDQuMWMtNC0xMC42LTYuMS0xNy43LTYuMS0yMS4zIDAtNi4zIDEuOS0xMi4zIDUuOC0xNy45IC41LS42IDEtMS4zIDEuNS0xLjkgNC40LTUuNiA4LjgtMTEuMSAxMy4zLTE2LjUtMS4xIDQuNi0xLjcgOC43LTEuNyAxMiAwIDMuNyAxLjcgOS45IDUuMSAxOC44bDcuOSAyMC40YzEuOSA0LjcgMyA4LjIgMy43IDEwLjNsMjUuOSAwLS45LTIuNmMtMS40LTMuOS00LTctNy43LTkuM2wxNS42LTIwLjEgMTIuMyAzMiAxMy40IDAtNi4xLTE1LjhjLTEuNS0zLjktNC03LTcuNy05LjNsMTUuNy0yMC4xIDE3LjMgNDUuMiAxMy40IDAtMTEuNC0yOS40Yy0xLjUtMy45LTQtNy03LjctOS4zbDE1LjYtMjAgMjIuNCA1OC43IDI2LjIgMGMxLjUgMCAzLTEuMSA0LjUtMy4xczIuMi00LjEgMi4yLTYuM2wwLTkzLjVjMC02LjUtNC41LTIwLjMtMTMuNy00MS4yIDUuNCAwIDE0LjEtOS4xIDI2LjItMjcuMmwwIDE2My41YzAgNy4yIC42IDEyIDEuNyAxNC42IDEuNiAzLjQgNS4zIDYuMiAxMS4xIDguMi0zLjkgNS42LTguNyA4LjUtMTQuNSA4LjVsLTE1NC44IDAtLjEtLjJ6bS05OC00NGMtMi43LTYuNy00LTExLjctNC0xNS0uNiAxLjItMi40IDMuNy01LjQgNy42LTEuNCAxLjktMi4yIDMuNy0yLjIgNS4zIDAgMi42IC44IDUuNyAyLjIgOS4zbDUuNiAxMy45YzUgMCA5IDAgMTEuOS0uMWwtOC4yLTIwLjkgLjEtLjF6bTEzLjUtNzIuNGMtMy01LjItNy05LjMtMTEuOS0xMS45LTMuNS0xLjktNS4zLTQuMy01LjMtNy40IDAtMi40IDQuNi04LjYgMTQtMTguMyAuMiAzLjggMS45IDcuNiA0LjkgMTEuMiAzLjEgMy42IDQuNiA3IDQuNiAxMC4xIDAgMi42LTIuMSA4LTYuMiAxNi4zbC0uMSAwem0tMjcuNiAwYy0zLTUuMi03LTkuMy0xMS45LTExLjktMy41LTEuOS01LjMtNC4zLTUuMy03LjQgMC0yLjQgNC42LTguNiAxNC0xOC4zIC4yIDMuOCAxLjkgNy42IDQuOSAxMS4yIDMuMSAzLjYgNC42IDcgNC42IDEwLjEgMCAyLjYtMi4xIDgtNi4yIDE2LjNsLS4xIDB6bTg3IDI3LjVjLTMtNS4yLTctOS4zLTExLjktMTEuOS0zLjUtMS45LTUuMy00LjMtNS4zLTcuNCAwLTIuNCA0LjYtOC42IDE0LTE4LjMgLjIgMy44IDEuOSA3LjYgNC45IDExLjIgMy4xIDMuNiA0LjYgNyA0LjYgMTAuMSAwIDIuNi0yLjEgOC02LjIgMTYuM2wtLjEgMHpcIl1cbn07XG52YXIgZmFGb3J0QXdlc29tZUFsdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdmb3J0LWF3ZXNvbWUtYWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmM2EzXCIsIFwiTTIwOCAyMzcuNGwtMjIuMiAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN2wyMi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtNTEuN2MwLTIuMS0xLjYtMy43LTMuNy0zLjd6bTExOC4yIDBsLTIyLjIgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgNTEuN2MwIDIuMSAxLjYgMy43IDMuNyAzLjdsMjIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTUxLjdjLS4xLTIuMS0xLjctMy43LTMuNy0zLjd6bTEzMi0xMjUuMWMtMi4zLTMuMi00LjYtNi40LTcuMS05LjUtOS44LTEyLjUtMjAuOC0yNC0zMi44LTM0LjQtNC41LTMuOS05LjEtNy42LTEzLjktMTEuMi0xLjYtMS4yLTMuMi0yLjMtNC44LTMuNS0yNy42LTE5LjYtNTkuMy0zMy43LTkzLjYtNDAuNy0xNi4yLTMuMy0zMi45LTUtNTAtNXMtMzMuOSAxLjctNTAgNWMtMzQuMyA3LjEtNjYgMjEuMi05My4zIDQwLjgtMS42IDEuMS0zLjIgMi4zLTQuOCAzLjUtNC44IDMuNi05LjQgNy4zLTEzLjkgMTEuMi0zIDIuNi01LjkgNS4zLTguOCA4cy01LjcgNS41LTguNCA4LjRjLTUuNSA1LjctMTAuNyAxMS44LTE1LjYgMTgtMi40IDMuMS00LjggNi4zLTcuMSA5LjUtMjguOSA0MC42LTQ1LjggOTAuMS00NS44IDE0My42IDAgMiAuMSA0IC4xIDYgLjEgLjcgLjEgMS4zIC4xIDIgLjEgMS4zIC4xIDIuNyAuMiA0IDAgLjggLjEgMS41IC4xIDIuMyAwIDEuMyAuMSAyLjUgLjIgMy43IC4xIC44IC4xIDEuNiAuMiAyLjQgLjEgMS4xIC4yIDIuMyAuMyAzLjUgMCAuOCAuMSAxLjYgLjIgMi40IC4xIDEuMiAuMyAyLjQgLjQgMy42IC4xIC44IC4yIDEuNSAuMyAyLjMgLjEgMS4zIC4zIDIuNiAuNSAzLjkgLjEgLjYgLjIgMS4zIC4zIDEuOWwuOSA1LjdjLjEgLjYgLjIgMS4xIC4zIDEuNyAuMyAxLjMgLjUgMi43IC44IDQgLjIgLjggLjMgMS42IC41IDIuNCAuMiAxIC41IDIuMSAuNyAzLjIgLjIgLjkgLjQgMS43IC42IDIuNiAuMiAxIC40IDIgLjcgMyAuMiAuOSAuNSAxLjggLjcgMi43IC4zIDEgLjUgMS45IC44IDIuOSAuMyAuOSAuNSAxLjggLjggMi43IC4yIC45IC41IDEuOSAuOCAyLjhzLjUgMS44IC44IDIuN2MuMyAxIC42IDEuOSAuOSAyLjggLjYgMS42IDEuMSAzLjMgMS43IDQuOSAuNCAxIC43IDEuOSAxIDIuOCAuMyAxIC43IDIgMS4xIDMgLjMgLjggLjYgMS41IC45IDIuM2wxLjIgM2MuMyAuNyAuNiAxLjUgLjkgMi4yIC40IDEgLjkgMiAxLjMgM2wuOSAyLjFjLjUgMSAuOSAyIDEuNCAzIC4zIC43IC42IDEuMyAuOSAyIC41IDEgMSAyLjEgMS41IDMuMSAuMiAuNiAuNSAxLjEgLjggMS43IC42IDEuMSAxLjEgMi4yIDEuNyAzLjMgLjEgLjIgLjIgLjMgLjMgLjUgMi4yIDQuMSA0LjQgOC4yIDYuOCAxMi4yIC4yIC40IC41IC44IC43IDEuMiAuNyAxLjEgMS4zIDIuMiAyIDMuMyAuMyAuNSAuNiAuOSAuOSAxLjQgLjYgMS4xIDEuMyAyLjEgMiAzLjIgLjMgLjUgLjYgLjkgLjkgMS40IC43IDEuMSAxLjQgMi4xIDIuMSAzLjIgLjIgLjQgLjUgLjggLjggMS4yIC43IDEuMSAxLjUgMi4yIDIuMyAzLjMgLjIgLjIgLjMgLjUgLjUgLjcgMzcuNSA1MS43IDk0LjQgODguNSAxNjAgOTkuNCAuOSAuMSAxLjcgLjMgMi42IC40IDEgLjIgMi4xIC40IDMuMSAuNXMxLjkgLjMgMi44IC40YzEgLjIgMiAuMyAzIC40IC45IC4xIDEuOSAuMiAyLjkgLjNzMS45IC4yIDIuOSAuMyAyLjEgLjIgMy4xIC4zYy45IC4xIDEuOCAuMSAyLjcgLjIgMS4xIC4xIDIuMyAuMSAzLjQgLjIgLjggMCAxLjcgLjEgMi41IC4xIDEuMyAwIDIuNiAuMSAzLjkgLjEgLjcgLjEgMS40IC4xIDIuMSAuMSAyIC4xIDQgLjEgNiAuMXM0LS4xIDYtLjFjLjcgMCAxLjQtLjEgMi4xLS4xIDEuMyAwIDIuNiAwIDMuOS0uMSAuOCAwIDEuNy0uMSAyLjUtLjEgMS4xLS4xIDIuMy0uMSAzLjQtLjIgLjkgMCAxLjgtLjEgMi43LS4yIDEtLjEgMi4xLS4yIDMuMS0uM3MxLjktLjIgMi45LS4zYy45LS4xIDEuOS0uMiAyLjktLjNzMi0uMyAzLS40IDEuOS0uMyAyLjgtLjRjMS0uMiAyLjEtLjMgMy4xLS41IC45LS4xIDEuNy0uMyAyLjYtLjQgNjUuNi0xMSAxMjIuNS00Ny43IDE2MC4xLTEwMi40IC4yLS4yIC4zLS41IC41LS43IC44LTEuMSAxLjUtMi4yIDIuMy0zLjMgLjItLjQgLjUtLjggLjgtMS4yIC43LTEuMSAxLjQtMi4xIDIuMS0zLjIgLjMtLjUgLjYtLjkgLjktMS40IC42LTEuMSAxLjMtMi4xIDItMy4yIC4zLS41IC42LS45IC45LTEuNCAuNy0xLjEgMS4zLTIuMiAyLTMuMyAuMi0uNCAuNS0uOCAuNy0xLjIgMi40LTQgNC42LTguMSA2LjgtMTIuMiAuMS0uMiAuMi0uMyAuMy0uNSAuNi0xLjEgMS4xLTIuMiAxLjctMy4zIC4yLS42IC41LTEuMSAuOC0xLjcgLjUtMSAxLTIuMSAxLjUtMy4xIC4zLS43IC42LTEuMyAuOS0yIC41LTEgMS0yIDEuNC0zbC45LTIuMWMuNS0xIC45LTIgMS4zLTMgLjMtLjcgLjYtMS41IC45LTIuMmwxLjItM2MuMy0uOCAuNi0xLjUgLjktMi4zIC40LTEgLjctMiAxLjEtM3MuNy0xLjkgMS0yLjhjLjYtMS42IDEuMi0zLjMgMS43LTQuOSAuMy0xIC42LTEuOSAuOS0yLjhzLjUtMS44IC44LTIuN2MuMi0uOSAuNS0xLjkgLjgtMi44cy42LTEuOCAuOC0yLjdjLjMtMSAuNS0xLjkgLjgtMi45IC4yLS45IC41LTEuOCAuNy0yLjcgLjItMSAuNS0yIC43LTMgLjItLjkgLjQtMS43IC42LTIuNiAuMi0xIC41LTIuMSAuNy0zLjIgLjItLjggLjMtMS42IC41LTIuNCAuMy0xLjMgLjYtMi43IC44LTQgLjEtLjYgLjItMS4xIC4zLTEuN2wuOS01LjdjLjEtLjYgLjItMS4zIC4zLTEuOSAuMS0xLjMgLjMtMi42IC41LTMuOSAuMS0uOCAuMi0xLjUgLjMtMi4zIC4xLTEuMiAuMy0yLjQgLjQtMy42IDAtLjggLjEtMS42IC4yLTIuNCAuMS0xLjEgLjItMi4zIC4zLTMuNSAuMS0uOCAuMS0xLjYgLjItMi40IC4xIDEuNyAuMSAuNSAuMi0uNyAwLS44IC4xLTEuNSAuMS0yLjMgLjEtMS4zIC4yLTIuNyAuMi00IC4xLS43IC4xLTEuMyAuMS0yIC4xLTIgLjEtNCAuMS02IDAtNTMuNS0xNi45LTEwMy00NS44LTE0My43ek00NDggMzcxLjVjLTkuNCAxNS41LTIwLjYgMjkuOS0zMy42IDQyLjktMjAuNiAyMC42LTQ0LjUgMzYuNy03MS4yIDQ4LTEzLjkgNS44LTI4LjIgMTAuMy00Mi45IDEzLjJsMC03NS44YzAtNTguNi04OC42LTU4LjYtODguNiAwbDAgNzUuOGMtMTQuNy0yLjktMjktNy4zLTQyLjktMTMuMi0yNi43LTExLjMtNTAuNi0yNy40LTcxLjItNDgtMTMtMTMtMjQuMi0yNy40LTMzLjYtNDIuOWwwLTcxLjNjMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjEgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS44IDI5LjYgMCAwLTE0NGMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMiAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTQuOCA2LjUtMy43IDkuNS0zLjdsMC05MC4yYy00LjQtMi03LjQtNi43LTcuNC0xMS41IDAtMTYuOCAyNS40LTE2LjggMjUuNCAwIDAgNC44LTMgOS40LTcuNCAxMS41bDAgMy45YzYuMy0xLjQgMTIuNy0yLjMgMTkuMi0yLjMgOS40IDAgMTguNCAzLjUgMjYuMyAzLjUgNy4yIDAgMTUuMi0zLjUgMTkuNC0zLjUgMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgNDguNGMwIDUuNi0xOC43IDYuNS0yMi40IDYuNS04LjYgMC0xNi42LTMuNS0yNS40LTMuNS03IDAtMTQuMSAxLjItMjAuOCAyLjhsMCAzMC43YzMgMCA5LjUtMS4xIDkuNSAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjIgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjEgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAxNDQgMjkuNSAwIDAtMjUuOGMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMiAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDcxLjN6XCJdXG59O1xudmFyIGZhQnVyb21vYmVsZXhwZXJ0ZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdidXJvbW9iZWxleHBlcnRlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMzdmXCIsIFwiTTAgMzJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTEyMCAxNTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0xNjAgMzJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTI4MCAxNTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0zMjAgMzJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTQ0MCAxNTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0wIDE5MmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMTIwIDMxMmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMjgwIDMxMmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNNDQwIDMxMmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTAgMzUybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0xMjAgNDcybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0yODAgNDcybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwelwiXVxufTtcbnZhciBmYUJpbGliaWxpID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2JpbGliaWxpJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlM2Q5XCIsIFwiTTQ4OC42IDEwNC4xYzE2LjcgMTguMSAyNC40IDM5LjcgMjMuMyA2NS43bDAgMjAyLjRjLS40IDI2LjQtOS4yIDQ4LjEtMjYuNSA2NS4xLTE3LjIgMTctMzkuMSAyNS45LTY1LjUgMjYuN0w5MiA0NjRjLTI2LjQtLjgtNDguMi05LjgtNjUuMy0yNy4yLTE3LjEtMTcuNC0yNi00MC4zLTI2LjctNjguNkwwIDE2OS44Yy44LTI2IDkuNy00Ny42IDI2LjctNjUuNyAxNy4xLTE2LjMgMzguOC0yNS4zIDY1LjMtMjYuMWwyOS40IDAtMjUuNC0yNS44Yy01LjctNS43LTguNi0xMy04LjYtMjEuOHMyLjktMTYuMSA4LjYtMjEuOCAxMy04LjYgMjEuOS04LjYgMTYuMSAyLjkgMjEuOSA4LjZsNzMuMyA2OS40IDg4IDAgNzQuNS02OS40QzM4MS43IDIuOSAzODkuMiAwIDM5OCAwczE2LjEgMi45IDIxLjkgOC42YzUuNyA1LjcgOC42IDEzIDguNiAyMS44cy0yLjkgMTYuMS04LjYgMjEuOEwzOTQuNiA3OCA0MjMuOSA3OGMyNi40IC44IDQ4IDkuOCA2NC43IDI2LjF6bS0zOC44IDY5LjdjLS40LTkuNi0zLjctMTcuNC0xMC43LTIzLjUtNS4yLTYuMS0xNC05LjQtMjIuNy05LjhsLTMyMC40IDBjLTkuNiAuNC0xNy40IDMuNy0yMy42IDkuOC02LjEgNi4xLTkuNCAxMy45LTkuOCAyMy41bDAgMTk0LjRjMCA5LjIgMy4zIDE3IDkuOCAyMy41czE0LjQgOS44IDIzLjYgOS44bDMyMC40IDBjOS4yIDAgMTctMy4zIDIzLjMtOS44czkuNy0xNC4zIDEwLjEtMjMuNWwwLTE5NC40ek0xODUuNSAyMTYuNWM2LjMgNi4zIDkuNyAxNC4xIDEwLjEgMjMuMmwwIDMzLjNjLS40IDkuMi0zLjcgMTYuOS05LjggMjMuMi02LjIgNi4zLTE0IDkuNS0yMy42IDkuNXMtMTcuNS0zLjItMjMuNi05LjUtOS40LTE0LTkuOC0yMy4ybDAtMzMuM2MuNC05LjEgMy44LTE2LjkgMTAuMS0yMy4yczEzLjItOS42IDIzLjMtMTBjOS4yIC40IDE3IDMuNyAyMy4zIDEwem0xOTEuNSAwYzYuMyA2LjMgOS43IDE0LjEgMTAuMSAyMy4ybDAgMzMuM2MtLjQgOS4yLTMuNyAxNi45LTkuOCAyMy4ycy0xNCA5LjUtMjMuNiA5LjUtMTcuNC0zLjItMjMuNi05LjVjLTctNi4zLTkuNC0xNC05LjctMjMuMmwwLTMzLjNjLjMtOS4xIDMuNy0xNi45IDEwLTIzLjJzMTQuMS05LjYgMjMuMy0xMGM5LjIgLjQgMTcgMy43IDIzLjMgMTB6XCJdXG59O1xudmFyIGZhTmVvcyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICduZW9zJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNjEyXCIsIFwiTTM4My44IDUxMmwtOTUuMSAwLTEwOC4yLTE1NC41IDAgOTEuMS04Ni40IDYzLjQtOTcuNyAwIDAtNDgyLjIgNDAuNS0yOS44IDEwOCAwIDEyMy43IDE3Ni4xIDAtMTEyLjcgODYuNC02My40IDk3LjcgMCAwIDQ2MS41LTY4LjkgNTAuNXpNNy4yIDM1LjNsMCA0NjAuNyA3Mi01Mi45IDAtMjQ5LjEgMjE1LjUgMzA3LjYgODQuOCAwIDUyLjQtMzguMi03OC4zIDAtMzE2LjEtNDUwLjUtMzAuMiAyMi4zek04OS43IDUwMS45bDgwLTU4LjggMC0xMDEtNzkuOC0xMTQuNCAwIDIyMC45LTcyLjYgNTMuMyA3Mi4zIDAgMCAwek00OSAxMC44bDMxMC42IDQ0Mi42IDgyLjQgMCAwLTQ0Mi42LTc5LjggMCAwIDMxNy42LTIyMi45LTMxNy42LTkwLjMgMHpNMjc5LjQgMTkxLjZsNzIgMTAyLjggMC0yNzguNS03MiA1MyAwIDEyMi43elwiXVxufTtcbnZhciBmYURldiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdkZXYnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY2Y2NcIiwgXCJNMTIwLjEgMjA4LjNjLTMuOS0yLjktNy44LTQuMy0xMS42LTQuM2wtMTcuNCAwIDAgMTA0LjUgMTcuNCAwYzMuOSAwIDcuOC0xLjQgMTEuNi00LjNzNS44LTcuMyA1LjgtMTMuMWwwLTY5LjdjMC01LjgtMi0xMC4yLTUuOC0xMy4xek00MDQuMSAzMkw0My45IDMyQzE5LjcgMzIgLjEgNTEuNiAwIDc1LjhMMCA0MzYuMkMuMSA0NjAuNCAxOS43IDQ4MCA0My45IDQ4MGwzNjAuMiAwYzI0LjIgMCA0My44LTE5LjYgNDMuOS00My44bDAtMzYwLjRDNDQ3LjkgNTEuNiA0MjguMyAzMiA0MDQuMSAzMnpNMTU0LjIgMjkxLjJjMCAxOC44LTExLjYgNDcuMy00OC40IDQ3LjNsLTQ2LjQgMCAwLTE2NS41IDQ3LjQgMGMzNS40IDAgNDcuNCAyOC41IDQ3LjQgNDcuM2wwIDcwLjl6bTEwMC43LTg4LjdsLTUzLjMgMCAwIDM4LjQgMzIuNiAwIDAgMjkuNi0zMi42IDAgMCAzOC40IDUzLjMgMCAwIDI5LjYtNjIuMiAwYy0xMS4yIC4zLTIwLjQtOC41LTIwLjctMTkuN2wwLTEyNS4xYy0uMy0xMS4xIDguNi0yMC40IDE5LjctMjAuN2w2My4yIDAgMCAyOS41ek0zNTguNSAzMTcuOGMtMTMuMiAzMC43LTM2LjggMjQuNi00Ny40IDBsLTM4LjUtMTQ0LjggMzIuNiAwIDI5LjcgMTEzLjcgMjkuNi0xMTMuNyAzMi42IDAtMzguNSAxNDQuOHpcIl1cbn07XG52YXIgZmFIb3RqYXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnaG90amFyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmM2IxXCIsIFwiTTM2MS44IDBjMCAxMzEuNi04MC43IDE3Ni44LTE0MC4yIDIwOS40LS42IC4zLTEuMSAuNi0xLjYgLjktNTMuOCAzMC4yLTg4LjcgNDkuOC04OS42IDEyMmwtOTguMSAwYzAtMTMxLjUgODAuNy0xNzYuNyAxNDAuMi0yMDkuMyA1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OSAwek0zMDEuMyAzMDIuNmM1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OCAwYzAgMTMxLjYtODAuNyAxNzYuNy0xNDAuMiAyMDkuNC01NC44IDI5LjgtOTAuMyA1MC05MC4zIDEyM2wtOTggMGMwLTEzMS42IDgwLjctMTc2LjggMTQwLjItMjA5LjR6XCJdXG59O1xudmFyIGZhRG9jaHViID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2RvY2h1YicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjM5NFwiLCBcIk00MTMuOSAxNjBMMjcyIDE2MCAyNzIgMTkuNiA0MTMuOSAxNjB6TTMyMCAxOTJsMCAxMzBjMCA2Ni44LTM2LjUgMTAwLjEtMTEzLjMgMTAwLjFsLTk0LjcgMCAwLTMzNy4zIDk0LjcgMGMxMiAwIDIzLjEgLjggMzMuMSAyLjVsMC04NEMyMjguOSAxLjEgMjE3LjQgMCAyMDUuMiAwTDE2IDAgMTYgNTEyIDIwNS4yIDUxMkMzNDUuNyA1MTIgNDE2IDQ0Ny40IDQxNiAzMTguMWwwLTEyNi4xLTk2IDB6XCJdXG59O1xudmFyIGZhVmltZW8gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndmltZW8nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY0MGFcIiwgXCJNNDAzLjIgMzJMNDQuOCAzMkMyMC4xIDMyIDAgNTIuMSAwIDc2LjhMMCA0MzUuMkMwIDQ1OS45IDIwLjEgNDgwIDQ0LjggNDgwbDM1OC40IDBjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0LjhsMC0zNTguNEM0NDggNTIuMSA0MjcuOSAzMiA0MDMuMiAzMnpNMzc3IDE4MC44Yy0xLjQgMzEuNS0yMy40IDc0LjctNjYgMTI5LjQtNDQgNTcuMi04MS4zIDg1LjgtMTExLjcgODUuOC0xOC45IDAtMzQuOC0xNy40LTQ3LjktNTIuMy0yNS41LTkzLjMtMzYuNC0xNDgtNTcuNC0xNDgtMi40IDAtMTAuOSA1LjEtMjUuNCAxNS4yTDUzLjQgMTkxLjNjMzcuMy0zMi44IDcyLjktNjkuMiA5NS4yLTcxLjIgMjUuMi0yLjQgNDAuNyAxNC44IDQ2LjUgNTEuNyAyMC43IDEzMS4yIDI5LjkgMTUxIDY3LjYgOTEuNiAxMy41LTIxLjQgMjAuOC0zNy43IDIxLjgtNDguOSAzLjUtMzMuMi0yNS45LTMwLjktNDUuOC0yMi40IDE1LjktNTIuMSA0Ni4zLTc3LjQgOTEuMi03NiAzMy4zIC45IDQ5IDIyLjUgNDcuMSA2NC43elwiXVxufTtcbnZhciBmYU1heGNkbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdtYXhjZG4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMzZcIiwgXCJNNDYxLjEgNDQyLjdsLTk3LjQgMCA1MS45LTI0Mi43YzIuMy0xMC4yIC45LTE5LjUtNC40LTI1LjctNS02LjEtMTMuNy05LjYtMjQuMi05LjZsLTQ5LjMgMC01OS41IDI3OC05Ny40IDAgNTkuNS0yNzgtODMuNCAwLTU5LjUgMjc4LTk3LjQgMCA1OS41LTI3OC00NC42LTk1LjQgMzcyLjEgMGMzOS40IDAgNzUuMyAxNi4zIDk4LjMgNDQuOSAyMy4zIDI4LjYgMzEuOCA2Ny40IDIzLjYgMTA1LjlMNDYxLjEgNDQyLjd6XCJdXG59O1xudmFyIGZhU3F1YXJlRm9udEF3ZXNvbWVTdHJva2UgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3F1YXJlLWZvbnQtYXdlc29tZS1zdHJva2UnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImZvbnQtYXdlc29tZS1hbHRcIl0sIFwiZjM1Y1wiLCBcIk02NCA2NEM0Ni4zIDY0IDMyIDc4LjMgMzIgOTZsMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJMNjQgNjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNTQgNThjMCA5LjMtNC44IDE3LjQtMTIuMSAyMmwxODguOSAwYzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDEuOC0uNCAzLjctMS4xIDUuNEwzMTIgMjY0IDM0Mi45IDMzMy40Yy44IDEuNyAxLjEgMy41IDEuMSA1LjQgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ybC0xODYuOCAwIDAgMzItMzIgMCAwLTIwOS41Yy02LjEtNC44LTEwLTEyLjItMTAtMjAuNSAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2elwiXVxufTtcbnZhciBmYUZvbnRBd2Vzb21lQWx0ID0gZmFTcXVhcmVGb250QXdlc29tZVN0cm9rZTtcbnZhciBmYVNwZWFrYXAgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3BlYWthcCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjNmM1wiLCBcIk02NC40IDM5MS44Qy0xNSAzMDMuNi03LjYgMTY3LjQgODEuMSA4Ny42czIyNC44LTczIDMwNC4yIDE1LjIgNzIgMjI0LjQtMTYuNiAzMDQuMWMtMTguNyAxNi45IDY0IDQzLjEgNDIgNTIuMy04Mi4xIDM0LjItMjUzLjkgMzUtMzQ2LjItNjcuNWwwIDB6TTI3Ny43IDE4MC4ybDM4LjUtNDAuOWMtOS42LTguOS0zMi0yNi44LTc2LjItMjcuNi01Mi4zLS45LTk1LjkgMjguMy05Ni44IDgwLS4yIDExLjMgLjMgMzYuNyAyOS40IDU0LjggMzQuNSAyMS40IDg2LjUgMjEuNSA4NiA1Mi4zLS40IDIxLjMtMjYuNCAyNS44LTM4LjYgMjUuNi0zIDAtMzAuMi0uNS00Ny42LTI0LjZsLTQwIDQyLjZjMjguMiAyNyA1OSAzMi42IDgzLjUgMzMgMTAuMiAuMiA5Ni40IC4zIDk3LjgtODEgLjMtMTUuOC0yLjEtMzkuNy0yOC45LTU2LjYtMzQuNC0yMS42LTg1LTE5LjQtODQuNC00OS43IC40LTIzLjMgMzEtMjUuNCAzNy41LTI1LjMgLjQgMCAyNi42IC4zIDM5LjYgMTcuNGwwIDB6XCJdXG59O1xudmFyIGZhRmFudGFzeUZsaWdodEdhbWVzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ZhbnRhc3ktZmxpZ2h0LWdhbWVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNmRjXCIsIFwiTTI1NiAzMi45TDMyLjkgMjU2IDI1NiA0NzkuMSA0NzkuMSAyNTYgMjU2IDMyLjl6TTg4LjMgMjU1LjhjMi0yIDExLjktMTIuMyA5Ni41LTk3LjUgNDEuNC00MS44IDg2LjItNDMuOCAxMTkuOC0xOC43IDI0LjYgMTguNCA2Mi4xIDU4LjkgNjIuMSA1OSAuNyAuNyAxLjEgMi45IC42IDMuNC0xMS4zIDExLjgtMjIuNyAyMy41LTMzLjUgMzQuNy0zNC4yLTMyLjMtNDAuNS0zOC4yLTQ4LjUtNDQtMTcuOC0xMi43LTQxLjQtMTAuMS01NyA1LjEtMi4yIDIuMS0xLjggMy40IC4xIDUuNCAyLjkgMi45IDI4LjEgMjguMyAzNS4xIDM1LjgtMTEuOSAxMS42LTIzLjcgMjMtMzUuNyAzNC43LTEyLTEyLjUtMjQuNS0yNS41LTM2LjUtMzguMS0yMS40IDIxLjEtNDEuNyA0MS4xLTYxLjggNjFMODguMyAyNTUuOHpNMzIzLjIgMzU3LjRjLTM1LjUgMzUuNC03OC4xIDM4LjEtMTA3IDIwLjUtMjIuMS0xMy41LTM5LjQtMzIuMS03Mi45LTY2LjggMTItMTIuNCAyMy44LTI0LjQgMzUuNC0zNi4zIDMzIDMxLjkgMzcuMSAzNiA0NC43IDQyLjEgMTguNSAxNC43IDQyLjUgMTMuNyA1OS4zLTEuOCAzLjctMy40IDMuNy0zLjYgLjEtNy4yLTEwLjYtMTAuNy0yMS4yLTIxLjQtMzEuOC0zMi4yLTEuMy0xLjMtMy0yLjUtLjgtNC43IDEwLjgtMTAuNyAyMS41LTIxLjUgMzIuMi0zMi4zIC4zLS4zIC42LS40IDEuOS0xLjEgMTIuNCAxMi45IDI0LjkgMjUuOSAzNy4yIDM4LjggMjEtMjAuNyA0MS4yLTQwLjcgNjEuMy02MC40IDEzLjcgMTMuNCAyNy4xIDI2LjYgNDAuOSA0MC0yMC4yIDIwLjktODEuNyA4Mi43LTEwMC41IDEwMS41ek0yNTYgMEwwIDI1NiAyNTYgNTEyIDUxMiAyNTYgMjU2IDB6TTE2IDI1NkwyNTYgMTYgNDk2IDI1NiAyNTYgNDk2IDE2IDI1NnpcIl1cbn07XG52YXIgZmFMaW51eCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdsaW51eCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjE3Y1wiLCBcIk0yMjAuOSAxMjMuM2MxIC41IDEuOCAxLjcgMyAxLjcgMS4xIDAgMi44LS40IDIuOS0xLjUgLjItMS40LTEuOS0yLjMtMy4yLTIuOS0xLjctLjctMy45LTEtNS41LS4xLS40IC4yLS44IC43LS42IDEuMSAuMyAxLjMgMi4zIDEuMSAzLjQgMS43ek0xOTkgMTI1YzEuMiAwIDItMS4yIDMtMS43IDEuMS0uNiAzLjEtLjQgMy41LTEuNiAuMi0uNC0uMi0uOS0uNi0xLjEtMS42LS45LTMuOC0uNi01LjUgLjEtMS4zIC42LTMuNCAxLjUtMy4yIDIuOSAuMSAxIDEuOCAxLjUgMi44IDEuNHpNNDIwIDQwMy44Yy0zLjYtNC01LjMtMTEuNi03LjItMTkuNy0xLjgtOC4xLTMuOS0xNi44LTEwLjUtMjIuNC0xLjMtMS4xLTIuNi0yLjEtNC0yLjktMS4zLS44LTIuNy0xLjUtNC4xLTIgOS4yLTI3LjMgNS42LTU0LjUtMy43LTc5LjEtMTEuNC0zMC4xLTMxLjMtNTYuNC00Ni41LTc0LjQtMTcuMS0yMS41LTMzLjctNDEuOS0zMy40LTcyIC41LTQ1LjkgNS4xLTEzMS4yLTc1LjgtMTMxLjMtMTAyLjQtLjItNzYuOCAxMDMuNC03Ny45IDEzNS4yLTEuNyAyMy40LTYuNCA0MS44LTIyLjUgNjQuNy0xOC45IDIyLjUtNDUuNSA1OC44LTU4LjEgOTYuNy02IDE3LjktOC44IDM2LjEtNi4yIDUzLjMtNi41IDUuOC0xMS40IDE0LjctMTYuNiAyMC4yLTQuMiA0LjMtMTAuMyA1LjktMTcgOC4zcy0xNCA2LTE4LjUgMTQuNWMtMi4xIDMuOS0yLjggOC4xLTIuOCAxMi40IDAgMy45IC42IDcuOSAxLjIgMTEuOCAxLjIgOC4xIDIuNSAxNS43IC44IDIwLjgtNS4yIDE0LjQtNS45IDI0LjQtMi4yIDMxLjcgMy44IDcuMyAxMS40IDEwLjUgMjAuMSAxMi4zIDE3LjMgMy42IDQwLjggMi43IDU5LjMgMTIuNSAxOS44IDEwLjQgMzkuOSAxNC4xIDU1LjkgMTAuNCAxMS42LTIuNiAyMS4xLTkuNiAyNS45LTIwLjIgMTIuNS0uMSAyNi4zLTUuNCA0OC4zLTYuNiAxNC45LTEuMiAzMy42IDUuMyA1NS4xIDQuMSAuNiAyLjMgMS40IDQuNiAyLjUgNi43bDAgLjFjOC4zIDE2LjcgMjMuOCAyNC4zIDQwLjMgMjMgMTYuNi0xLjMgMzQuMS0xMSA0OC4zLTI3LjkgMTMuNi0xNi40IDM2LTIzLjIgNTAuOS0zMi4yIDcuNC00LjUgMTMuNC0xMC4xIDEzLjktMTguMyAuNC04LjItNC40LTE3LjMtMTUuNS0yOS43ek0yMjMuOCA4Ny4zYzkuOC0yMi4yIDM0LjItMjEuOCA0NC0uNCA2LjUgMTQuMiAzLjYgMzAuOS00LjMgNDAuNC0xLjYtLjgtNS45LTIuNi0xMi42LTQuOSAxLjEtMS4yIDMuMS0yLjcgMy45LTQuNiA0LjgtMTEuOC0uMi0yNy05LjEtMjcuMy03LjMtLjUtMTMuOSAxMC44LTExLjggMjMtNC4xLTItOS40LTMuNS0xMy00LjQtMS02LjktLjMtMTQuNiAyLjktMjEuOHpNMTgzLjEgNzUuOGMxMC4xIDAgMjAuOCAxNC4yIDE5LjEgMzMuNS0zLjUgMS03LjEgMi41LTEwLjIgNC42IDEuMi04LjktMy4zLTIwLjEtOS42LTE5LjYtOC40IC43LTkuOCAyMS4yLTEuOCAyOC4xIDEgLjggMS45LS4yLTUuOSA1LjUtMTUuNi0xNC42LTEwLjUtNTIuMSA4LjQtNTIuMXptLTEzLjYgNjAuN2M2LjItNC42IDEzLjYtMTAgMTQuMS0xMC41IDQuNy00LjQgMTMuNS0xNC4yIDI3LjktMTQuMiA3LjEgMCAxNS42IDIuMyAyNS45IDguOSA2LjMgNC4xIDExLjMgNC40IDIyLjYgOS4zIDguNCAzLjUgMTMuNyA5LjcgMTAuNSAxOC4yLTIuNiA3LjEtMTEgMTQuNC0yMi43IDE4LjEtMTEuMSAzLjYtMTkuOCAxNi0zOC4yIDE0LjktMy45LS4yLTctMS05LjYtMi4xLTgtMy41LTEyLjItMTAuNC0yMC0xNS04LjYtNC44LTEzLjItMTAuNC0xNC43LTE1LjMtMS40LTQuOSAwLTkgNC4yLTEyLjN6bTMuMyAzMzRjLTIuNyAzNS4xLTQzLjkgMzQuNC03NS4zIDE4LTI5LjktMTUuOC02OC42LTYuNS03Ni41LTIxLjktMi40LTQuNy0yLjQtMTIuNyAyLjYtMjYuNGwwLS4yYzIuNC03LjYgLjYtMTYtLjYtMjMuOS0xLjItNy44LTEuOC0xNSAuOS0yMCAzLjUtNi43IDguNS05LjEgMTQuOC0xMS4zIDEwLjMtMy43IDExLjgtMy40IDE5LjYtOS45IDUuNS01LjcgOS41LTEyLjkgMTQuMy0xOCA1LjEtNS41IDEwLTguMSAxNy43LTYuOSA4LjEgMS4yIDE1LjEgNi44IDIxLjkgMTZsMTkuNiAzNS42YzkuNSAxOS45IDQzLjEgNDguNCA0MSA2OC45em0tMS40LTI1LjljLTQuMS02LjYtOS42LTEzLjYtMTQuNC0xOS42IDcuMSAwIDE0LjItMi4yIDE2LjctOC45IDIuMy02LjIgMC0xNC45LTcuNC0yNC45LTEzLjUtMTguMi0zOC4zLTMyLjUtMzguMy0zMi41LTEzLjUtOC40LTIxLjEtMTguNy0yNC42LTI5LjlzLTMtMjMuMy0uMy0zNS4yYzUuMi0yMi45IDE4LjYtNDUuMiAyNy4yLTU5LjIgMi4zLTEuNyAuOCAzLjItOC43IDIwLjgtOC41IDE2LjEtMjQuNCA1My4zLTIuNiA4Mi40IC42LTIwLjcgNS41LTQxLjggMTMuOC02MS41IDEyLTI3LjQgMzcuMy03NC45IDM5LjMtMTEyLjcgMS4xIC44IDQuNiAzLjIgNi4yIDQuMSA0LjYgMi43IDguMSA2LjcgMTIuNiAxMC4zIDEyLjQgMTAgMjguNSA5LjIgNDIuNCAxLjIgNi4yLTMuNSAxMS4yLTcuNSAxNS45LTkgOS45LTMuMSAxNy44LTguNiAyMi4zLTE1IDcuNyAzMC40IDI1LjcgNzQuMyAzNy4yIDk1LjcgNi4xIDExLjQgMTguMyAzNS41IDIzLjYgNjQuNiAzLjMtLjEgNyAuNCAxMC45IDEuNCAxMy44LTM1LjctMTEuNy03NC4yLTIzLjMtODQuOS00LjctNC42LTQuOS02LjYtMi42LTYuNSAxMi42IDExLjIgMjkuMiAzMy43IDM1LjIgNTkgMi44IDExLjYgMy4zIDIzLjcgLjQgMzUuNyAxNi40IDYuOCAzNS45IDE3LjkgMzAuNyAzNC44LTIuMi0uMS0zLjIgMC00LjIgMCAzLjItMTAuMS0zLjktMTcuNi0yMi44LTI2LjEtMTkuNi04LjYtMzYtOC42LTM4LjMgMTIuNS0xMi4xIDQuMi0xOC4zIDE0LjctMjEuNCAyNy4zLTIuOCAxMS4yLTMuNiAyNC43LTQuNCAzOS45LS41IDcuNy0zLjYgMTgtNi44IDI5LTMyLjEgMjIuOS03Ni43IDMyLjktMTE0LjMgNy4yem0yNTcuNC0xMS41Yy0uOSAxNi44LTQxLjIgMTkuOS02My4yIDQ2LjUtMTMuMiAxNS43LTI5LjQgMjQuNC00My42IDI1LjVzLTI2LjUtNC44LTMzLjctMTkuM2MtNC43LTExLjEtMi40LTIzLjEgMS4xLTM2LjMgMy43LTE0LjIgOS4yLTI4LjggOS45LTQwLjYgLjgtMTUuMiAxLjctMjguNSA0LjItMzguNyAyLjYtMTAuMyA2LjYtMTcuMiAxMy43LTIxLjEgLjMtLjIgLjctLjMgMS0uNSAuOCAxMy4yIDcuMyAyNi42IDE4LjggMjkuNSAxMi42IDMuMyAzMC43LTcuNSAzOC40LTE2LjMgOS0uMyAxNS43LS45IDIyLjYgNS4xIDkuOSA4LjUgNy4xIDMwLjMgMTcuMSA0MS42IDEwLjYgMTEuNiAxNCAxOS41IDEzLjcgMjQuNnpNMTczLjQgMTQ4LjdjMiAxLjkgNC43IDQuNSA4IDcuMSA2LjYgNS4yIDE1LjggMTAuNiAyNy4zIDEwLjYgMTEuNiAwIDIyLjUtNS45IDMxLjgtMTAuOCA0LjktMi42IDEwLjktNyAxNC44LTEwLjRzNS45LTYuMyAzLjEtNi42LTIuNiAyLjYtNiA1LjFjLTQuNCAzLjItOS43IDcuNC0xMy45IDkuOC03LjQgNC4yLTE5LjUgMTAuMi0yOS45IDEwLjJzLTE4LjctNC44LTI0LjktOS43Yy0zLjEtMi41LTUuNy01LTcuNy02LjktMS41LTEuNC0xLjktNC42LTQuMy00LjktMS40LS4xLTEuOCAzLjcgMS43IDYuNXpcIl1cbn07XG52YXIgZmFDb3R0b25CdXJlYXUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY290dG9uLWJ1cmVhdScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjg5ZVwiLCBcIk00NzQuMyAzMzAuNEM0NTAuNiA0MjIuMyAzODAuMSA0NzUgMjcyLjQgNDc4LjhsMC00OS4yYzAtNDggMjYuNC03NC40IDc0LjQtNzQuNCA2MiAwIDk5LjItMzcuMiA5OS4yLTk5LjIgMC02MS40LTM2LjUtOTguMy05Ny40LTk5LjEtMzMtNjkuMy0xNDYuNS02NC43LTE3Ny4yIDAtNjAuOSAuOC05Ny40IDM3LjctOTcuNCA5OS4xIDAgNjIuMSAzNy4zIDk5LjQgOTkuNCA5OS40IDQ4IDAgNzQuNiAyNi4yIDc0LjYgNzQuNGwwIDQ5LjJjLTEzNC40LTUtMjExLjEtODUuMS0yMTEuMS0yMjMgMC0xNDEuOCA4MS40LTIyMy4yIDIyMy4yLTIyMy4yIDExNC44IDAgMTg5LjggNTMuMiAyMTQuNyAxNDguOGwyNS4zIDBDNDczLjkgNzEuNSAzODguMiA4IDI1OS44IDggMTA1IDggMTIgMTAxLjIgMTIgMjU1LjggMTIgNDExLjEgMTA1LjIgNTA0LjMgMjU5LjggNTA0IDM4OC4xIDUwNCA0NzMuNyA0NDAuMiA0OTkuNSAzMzAuNGwtMjUuMiAwek0zNTcgMTgyLjNjNDEuNCAzLjQgNjQuMiAyOSA2NC4yIDczLjcgMCA0OC0yNi40IDc0LjQtNzQuNCA3NC40LTI4LjYgMC00OS4zLTkuNi02MS42LTI3LjMgODMuMS0xNi41IDc1LjYtOTkuNyA3MS44LTEyMC43em0tODEuNyA5Ny40Yy0yLjUtMTAuMy0xNi4zLTg3IDU2LjItOTcgMi4zIDEwLjEgMTYuNSA4Ny4xLTU2LjMgOTdsMCAwek0yNjAgMTMyYzI4LjYgMCA0OSA5LjcgNjEuNCAyNy42LTI4LjQgNS41LTQ5LjQgMjAuNi02MS42IDQzLjQtMTIuMi0yMi45LTMzLjItMzgtNjEuNi00My40IDEyLjQtMTcuNyAzMy4zLTI3LjQgNjEuNi0yNy40bC4yLS4zem0tNzEuNSA1MC43YzczLjIgMTAuNiA1OC45IDg2LjggNTYuNSA5Ny03Mi40LTkuOC01OS04Ny01Ni4yLTk3bC0uMiAwek0xNzMuMiAzMzAuNGMtNDggMC03NC40LTI2LjQtNzQuNC03NC40IDAtNDQuNCAyMi45LTcwIDY0LjItNzMuNy02LjggMzcuMi0xLjQgMTA2LjUgNzEuNiAxMjAuNy0xMi4xIDE3LjYtMzIuOCAyNy4zLTYxLjEgMjcuM2wtLjMgMHptNTMuMiAxMi40YzE0LjMtNy42IDI2LTE5LjMgMzMuNi0zMy41IDcuOCAxNC41IDE5LjMgMjUuNSAzMy44IDMzLjUtMTQuNCA3LjYtMjYuMSAxOS40LTMzLjYgMzMuOC04LTE0LjUtMTkuMS0yNi4yLTMzLjYtMzMuOGwtLjMgMHpcIl1cbn07XG52YXIgZmFHb29nbGVXYWxsZXQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZ29vZ2xlLXdhbGxldCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjFlZVwiLCBcIk0xNTYuOCAxMjYuOGMzNy42IDYwLjYgNjQuMiAxMTMuMSA4NC4zIDE2Mi41LTguMyAzMy44LTE4LjggNjYuNS0zMS4zIDk4LjMtMTMuMi01Mi4zLTI2LjUtMTAxLjMtNTYtMTQ4LjUgNi41LTM2LjQgMi4zLTczLjYgMy0xMTIuM3pNMTA5LjMgMjAwbC05My4yIDBjLTYuNSAwLTEwLjUgNy41LTYuNSAxMi43IDQyLjIgNTQuMyA3MS43IDExNy44IDkxLjcgMTg3LjNsMTAzLjUgMGMtMTYuMi02OS43LTM4LjctMTMzLjctODIuNS0xOTMuNS0zLTQtOC02LjUtMTMtNi41em00Ny44LTg4YzY4LjUgMTA4IDEzMCAyMzQuNSAxMzguMiAzNjhMNDA5IDQ4MGMtMTItMTM4LTY4LjQtMjY1LTE0My4yLTM2OGwtMTA4LjcgMHpNNDA4LjkgNDMuNWMtMS44LTYuOC04LjItMTEuNS0xNS4yLTExLjVsLTg4LjMgMGMtNS4zIDAtOSA1LTcuOCAxMC4zIDEzLjIgNDYuNSAyMi4zIDk1LjUgMjYuNSAxNDYgNDguMiA4Ni4yIDc5LjcgMTc4LjMgOTAuNiAyNzAuOCAxNS44LTYwLjUgMjUuMy0xMzMuNSAyNS4zLTIwMyAwLTczLjYtMTIuMS0xNDUuMS0zMS4xLTIxMi42elwiXVxufTtcbnZhciBmYUZvdXJzcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZm91cnNxdWFyZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjE4MFwiLCBcIk0zMzEuMSAzTDU3LjkgM0MyMC40IDMgOCAzMS4zIDggNDkuMUw4IDQ4Mi45YzAgMjAuMyAxMi4xIDI3LjcgMTguMiAzMC4xIDYuMiAyLjUgMjIuOCA0LjYgMzIuOS03LjEgMTI4LjktMTQ5LjQgMTMxLjEtMTUxLjkgMTMxLjEtMTUxLjkgMy4xLTMuNCAzLjQtMy4xIDYuOC0zLjFsODMuNCAwYzM1LjEgMCA0MC42LTI1LjIgNDQuMy0zOS43bDQ4LjYtMjQzQzM4MS44IDI1LjggMzcxLjEgMyAzMzEuMSAzek0zMTQuOCA3Ni44bC0xMS40IDU5LjdjLTEuMiA2LjUtOS41IDEzLjItMTYuOSAxMy4ybC0xMDYuNCAwYy0xMiAwLTIwLjYgOC4zLTIwLjYgMjAuM2wwIDEzYzAgMTIgOC42IDIwLjYgMjAuNiAyMC42bDkwLjQgMGM4LjMgMCAxNi42IDkuMiAxNC44IDE4LjItMS44IDguOS0xMC41IDUzLjgtMTEuNCA1OC44LS45IDQuOS02LjggMTMuNS0xNi45IDEzLjVsLTczLjUgMGMtMTMuNSAwLTE3LjIgMS44LTI2LjUgMTIuNiAwIDAtOC45IDExLjQtODkuNSAxMDguMy0uOSAuOS0xLjggLjYtMS44LS4zbDAtMzM4LjhjMC03LjcgNi44LTE2LjYgMTYuNi0xNi42bDIxOSAwYzguMiAwIDE1LjYgNy43IDEzLjUgMTcuNXpcIl1cbn07XG52YXIgZmFTaGlydHNpbmJ1bGsgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc2hpcnRzaW5idWxrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjE0XCIsIFwiTTEwMCA0MTAuM2wzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjQtNC40IDkuOXptMzkuNCAxNy41bDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNC00LjQgOS45em0xNzIuMS0xNGw0LjQgOS45IDMwLjYtMTMuNC00LjQtOS45LTMwLjYgMTMuNHpNMTc5LjEgNDQ1bDMwLjMgMTMuNyA0LjQtOS45LTMwLjMtMTMuNC00LjQgOS42ek02MC40IDM5Mi44bDMwLjYgMTMuNCA0LjQtOS42LTMwLjYtMTMuNy00LjQgOS45em0yMTEuNCAzOC41bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy40em0tMzkuMyAxNy41bDQuNCA5LjkgMzAuNi0xMy43LTQuNC05LjYtMzAuNiAxMy40em0xMTguNC01Mi4ybDQuNCA5LjYgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy43ek0xNzAgNDYuNmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em0tNDcuMiAwbC0zMy42IDAgMCAxMC41IDMzLjUgMCAuMS0xMC41em0tNDcuMyAwbC0zMy4yIDAgMCAxMC41IDMzLjMgMC0uMS0xMC41em0xNDEuNSAwbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTk0LjUgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptLTk0LjYgMGwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em0xNDEuNSAwbC0zMy4zIDAgMCAxMC41IDMzLjMgMCAwLTEwLjV6TTUyLjggMzUxLjFsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptNzAtMjE1LjlsLTMzLjYgMCAwIDEwLjUgMzMuNSAwIC4xLTEwLjV6bS03MCAxMC42bDIyLjggMCAwLTEwLjUtMzMuNiAwIDAgMzMuNSAxMC44IDAgMC0yM3pNMjIxLjcgMzc0LjRhOTEuMyA5MS4zIDAgMSAwIDAtMTgyLjYgOTEuMyA5MS4zIDAgMSAwIDAgMTgyLjZ6TTE3My41IDI2My4zYzAtMjUuNCAyOS41LTMxLjggNDkuNi0zMS44IDE2LjkgMCAyOS4yIDUuOCA0NC4zIDEybC04LjggMTYuOS0uOSAwYy02LjQtOS45LTI0LjgtMTMuMS0zNS42LTEzLjEtOSAwLTI5LjggMS44LTI5LjggMTQuOSAwIDIxLjYgNzguNS0xMC4yIDc4LjUgMzcuOSAwIDI1LjQtMzEuNSAzMS4yLTUxIDMxLjItMTguMSAwLTMyLjQtMi45LTQ3LjItMTIuMmw5LTE4LjQgLjkgMGM2LjEgMTIuMiAyMy42IDE0LjkgMzUuOSAxNC45IDguNyAwIDMyLjctMS4yIDMyLjctMTQuMyAwLTI2LjEtNzcuNiA2LjMtNzcuNi0zOHpNNTIuOCAxNzguNGwtMTAuOCAwIDAgMzMuNiAxMC44IDAgMC0zMy42ek0zOTUuMiAzODQuNmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTUyLjggMzA3LjlsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXpNMCAzLjdsMCA0MDYgMjIxLjcgOTguNiAyMjYuMy05OC42IDAtNDA2LTQ0OCAwek00MTguOCAzOTAuOGwtMTk2LjggODUuNy0xOTIuOC04NS43IDAtMjcwLjEgMzg5LjcgMCAwIDI3MC4xLS4xIDB6bTAtMjk5LjNsLTM4OS42IDAgMC01OC42IDM4OS43IDAgMCA1OC42LS4xIDB6TTUyLjggMjIxLjZsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptMCA0My4ybC0xMC44IDAgMCAzMy41IDEwLjggMCAwLTMzLjV6TTE3MCAxMzUuMmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41ek0zOTUuMiAyOTguM2wxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6bTAtNDMuMmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTIxNyAxMzUuMmwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41ek0zOTUuMiAyMTJsMTAuOCAwIDAtMzMuNS0xMC44IDAgMCAzMy41em0wIDEyOS41bDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXptLTEzMS0yMDYuM2wtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptODMuNyAzMy42bDEwLjggMCAwLTMzLjUtMzMuNSAwIDAgMTAuNSAyMi44IDAtLjEgMjN6bS0zNi40LTMzLjZsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXpcIl1cbn07XG52YXIgZmFNaW50Yml0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ21pbnRiaXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU2MmZcIiwgXCJNNzMuMiA1MTJsMC03My4xIDI5Mi41IDAgMC03My4yIDczLjIgMCAwLTE0Ni4zIDczLjEgMCAwLTIxOS40LTIxOS40IDAgMCA3My4xLTE0Ni4zIDAgMCA3My4yLTczLjEgMCAwIDI5Mi42LTczLjIgMCAwIDczLjEgNzMuMiAwem03My4xLTIxOS40bDczLjIgMCAwIDczLjEtNzMuMiAwIDAtNzMuMXptNzMuMi03My4xbDczLjEgMCAwIDczLjEtNzMuMiAwIDAtNzMuMiAuMSAuMXptNzMuMSAwbDAtNzMuMiA3My4yIDAgMCA3My4xLTczLjIgMCAwIC4xek0zNjUuNyA3My4xbDczLjIgMCAwIDczLjItNzMuMiAwIDAtNzMuMnpcIl1cbn07XG52YXIgZmFTdGF5bGlua2VkID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3N0YXlsaW5rZWQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzZjVcIiwgXCJNMzg2LjcgMjkyLjVsMi43IDIuNy0xNzAtMTY3LjNjLTMuNS0zLjUtOS43LTMuNy0xMy44LS41TDE0OC4zIDE3MWMtNC4yIDMuMi00LjYgOC43LTEuMSAxMi4ybDY4LjEgNjQuM2MzLjYgMy41IDkuOSAzLjcgMTQgLjVsLjEtLjFjNC4xLTMuMiAxMC40LTMgMTQgLjVsODQgODEuM2MzLjYgMy41IDMuMiA5LS45IDEyLjJsLTkzLjIgNzRjLTQuMiAzLjMtMTAuNSAzLjEtMTQuMi0uNEw2Ny4yIDI2OGMtMy41LTMuNS05LjctMy43LTEzLjktLjVMNy41IDMwMi40Yy00LjIgMy4yLTQuNyA4LjctMS4yIDEyLjJMMjE1IDUxMC43czcuNCA2LjggMTcuMy0uOEw0MzAuMyAzNDZjNC0zLjIgNC40LTguNyAuNy0xMi4ybC00NC4zLTQxLjN6bTU0LjUtODMuNEwyMzAuNyAyLjVjLTEuNS0xLjItOC01LjUtMTYuMyAxLjFMNy42IDE2NS43Yy00LjIgMy4yLTQuOCA4LjctMS4yIDEyLjJsNDIuMyA0MS43IDE3MS43IDE2NS4xYzMuNyAzLjUgMTAuMSAzLjcgMTQuMyAuNGw1MC4yLTM4LjgtLjMtLjMgNy43LTZjNC4yLTMuMiA0LjYtOC43IC45LTEyLjJsLTU3LjEtNTQuNGMtMy42LTMuNS0xMC0zLjctMTQuMi0uNWwtLjEgLjFjLTQuMiAzLjItMTAuNSAzLjEtMTQuMi0uNEwxMTMgMTgwLjhjLTMuNi0zLjUtMy4xLTguOSAxLjEtMTIuMmw5Mi4yLTcxLjVjNC4xLTMuMiAxMC4zLTMgMTMuOSAuNWwxNjAuNCAxNTljMy43IDMuNSAxMCAzLjcgMTQuMSAuNWw0NS44LTM1LjhjNC4xLTMuMiA0LjQtOC43IC43LTEyLjJ6XCJdXG59O1xudmFyIGZhV2ViZmxvdyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd3ZWJmbG93JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNjVjXCIsIFwiTTY0MCA2NGwtMjA0LjIgMzk5LjItMTkxLjggMCA4NS41LTE2NS41LTMuOCAwQzI1NS4xIDM4OS4zIDE0OS45IDQ0OS41IDAgNDYzLjJMMCAzMDAuMXM5NS45LTUuNyAxNTIuMy02NC45bC0xNTIuMyAwIDAtMTcxLjIgMTcxLjEgMCAwIDE0MC44IDMuOCAwIDcwLTE0MC44IDEyOS40IDAgMCAxMzkuOSAzLjggMCA3Mi42LTEzOS45IDE4OS4zIDB6XCJdXG59O1xudmFyIGZhUmVucmVuID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3JlbnJlbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE4YlwiLCBcIk0yMTQgMTY5LjFDMjE0IDI3OS41IDE1MyAzNzQuNSA2Ni40IDQxNi41IDMwIDM3My4yIDggMzE3LjcgOCAyNTYuNiA4IDEzMy45IDk3LjEgMzIuMiAyMTQgMTIuNWwwIDE1Ni42ek0yNTUgNTA0Yy00Mi45IDAtODMuMy0xMS0xMTguNS0zMC40IDU3LjItMzYuMSAxMDMuNC05MC43IDExOC41LTE1NC42IDE1LjUgNjMuOSA2MS43IDExOC41IDExOC44IDE1NC43LTM1LjEgMTkuMy03NS41IDMwLjMtMTE4LjggMzAuM3ptMTkwLjYtODcuNUMzNTkgMzc0LjUgMjk4IDI3OS42IDI5OCAxNjkuMWwwLTE1Ni42YzExNi45IDE5LjcgMjA2IDEyMS40IDIwNiAyNDQuMSAwIDYxLjEtMjIgMTE2LjYtNTguNCAxNTkuOXpcIl1cbn07XG52YXIgZmFSZXYgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncmV2JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNWIyXCIsIFwiTTE1OC43IDI3NC45YTY1LjYgNjUuNiAwIDEgMSAxMzEuMiAwIDY1LjYgNjUuNiAwIDEgMSAtMTMxLjIgMHptMjcwLjctNS4xbC0uMSAwYy0uNy0yOS4zLTcuNy01OC4yLTIwLjUtODQuNnMtMzEuMi00OS43LTUzLjgtNjguNEwzMDkuNiAxNDNjMjIgMTQuMiA0MC4xIDMzLjggNTIuNyA1Ni44czE5LjEgNDguOCAxOS4xIDc1LjFjMCA4Ni42LTcwLjUgMTU3LjEtMTU3LjEgMTU3LjFTNjcuMiAzNjEuNSA2Ny4yIDI3NC45YzAtODEuOSA2My0xNDkuMyAxNDMtMTU2LjRsMCAzOS4xIDEwOC44LTYyLjgtMTA4LjgtNjIuOCAwIDM4LjNjLTEwNi43IDcuMi0xOTEgOTYtMTkxIDIwNC42IDAgMTExLjYgODkuMSAyMDIuMyAyMDAuMSAyMDVsMCAuMSAyMTAuMiAwIDAtMjEwLjJ6XCJdXG59O1xudmFyIGZhS2V5Y2RuID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2tleWNkbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjNiYVwiLCBcIk02My44IDQwOS4zbDYwLjUtNTljMzIuMSA0Mi44IDcxLjEgNjYgMTI2LjYgNjcuNCAzMC41IC43IDYwLjMtNyA4Ni40LTIyLjQgNS4xIDUuMyAxOC41IDE5LjUgMjAuOSAyMi0zMi4yIDIwLjctNjkuNiAzMS4xLTEwOC4xIDMwLjItNDMuMy0xLjEtODQuNi0xNi43LTExNy43LTQ0LjQgLjMtLjYtMzguMiAzNy41LTM4LjYgMzcuOSA5LjUgMjkuOC0xMy4xIDYyLjQtNDYuMyA2Mi40LTI2LjgtLjEtNDcuNS0yMS43LTQ3LjUtNDguNSAwLTM0LjMgMzMuMS01Ni42IDYzLjgtNDUuNnpNNDE4LjcgMTU2LjljMTkuMSAzMS4zIDI5LjYgNjcuNCAyOC43IDEwNC0xLjEgNDQuOC0xOSA4Ny41LTQ4LjYgMTIxIC4zIC4zIDIzLjggMjUuMiAyNC4xIDI1LjUgOS42LTEuMyAxOS4yIDIgMjUuOSA5LjEgMTEuMyAxMiAxMC45IDMwLjktMS4xIDQyLjQtMTIgMTEuMy0zMC45IDEwLjktNDIuNC0xLjEtNi43LTctOS40LTE2LjgtNy42LTI2LjMtMjQuOS0yNi42LTQ0LjQtNDcuMi00NC40LTQ3LjIgNDIuNy0zNC4xIDYzLjMtNzkuNiA2NC40LTEyNC4yIC43LTI4LjktNy4yLTU3LjItMjEuMS04Mi4ybDIyLjEtMjF6TTEwNCA1My4xYzYuNyA3IDkuNCAxNi44IDcuNiAyNi4zbDQ1LjkgNDguMWMtNC43IDMuOC0xMy4zIDEwLjQtMjIuOCAyMS4zLTI1LjQgMjguNS0zOS42IDY0LjgtNDAuNyAxMDIuOS0uNyAyOC45IDYuMSA1Ny4yIDIwIDgyLjRMOTIgMzU1LjZjLTE5LjMtMzEuNi0yOC45LTY3LjctMjcuOC0xMDQuNyAxLTQ0LjYgMTguMy04Ny42IDQ3LjUtMTIxLjFMODYuNCAxMDMuNGMtOS42IDEuMy0xOS4yLTItMjUuOS05LjEtMTEuMy0xMi0xMC45LTMwLjkgMS4xLTQyLjQgMTEuOS0xMS4yIDMwLjYtMTAuOSA0Mi40IDEuMnpNNDY0LjkgOGMyNiAwIDQ3LjEgMjIuNCA0Ny4xIDQ4LjNTNDkwLjkgMTA0IDQ2NC45IDEwNGMtNi4zIC4xLTE0LTEuMS0xNS45LTEuOGwtNjIuOSA1OS43Yy0zMi43LTQzLjYtNzYuNy02NS45LTEyNi45LTY3LjItMzAuNS0uNy02MC4zIDYuOC04Ni4yIDIyLjRsLTIxLjEtMjJDMTg0LjEgNzQuMyAyMjEuNSA2NCAyNjAgNjQuOSAzMDMuMyA2NiAzNDQuNiA4MS42IDM3Ny43IDEwOS41bDQxLjEtMzguNmMtMS41LTQuNy0yLjItOS42LTIuMi0xNC41LS4xLTI2LjcgMjIuMy00OC40IDQ4LjMtNDguNHpNMjU2LjcgMTEzLjRjNS41IDAgMTAuOSAuNCAxNi40IDEuMSA3OC4xIDkuOCAxMzMuNCA4MS4xIDEyMy44IDE1OS4xLTkuOCA3OC4xLTgxLjEgMTMzLjQtMTU5LjEgMTIzLjgtNzguMS05LjgtMTMzLjQtODEuMS0xMjMuOC0xNTkuMiA5LjMtNzIuNCA3MC4xLTEyNC42IDE0Mi43LTEyNC44em0tNTkgMTE5LjRjLjYgMjIuNyAxMi4yIDQxLjggMzIuNCA1Mi4ybC0xMSA1MS43IDczLjcgMC0xMS01MS43YzIwLjEtMTAuOSAzMi4xLTI5IDMyLjQtNTIuMi0uNC0zMi44LTI1LjgtNTcuNS01OC4zLTU4LjMtMzIuMSAuOC01Ny4zIDI0LjgtNTguMiA1OC4zelwiXVxufTtcbnZhciBmYUhpcmVBSGVscGVyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2hpcmUtYS1oZWxwZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzYjBcIiwgXCJNNDQzLjEgMEw3MS45IDBDNjcuOSAzNy4zIDM3LjQgNjcuOCAwIDcxLjdMMCA0NDMuMmMzNy40IDQuOSA2NiAzMi40IDcxLjkgNjguOGwzNzIuMiAwYzMtMzYuNCAzMi41LTY1LjggNjcuOS02OS44bDAtMzcwLjVDNDc1LjYgNjUuOCA0NDcgMzYuNCA0NDMuMSAwem0tMzcgNDA0LjljLTM2LjMgMC0xOC44LTItNTUuMS0yLTM1LjggMC0yMSAyLTU2LjEgMi01LjkgMC00LjktOC4yIDAtOS44IDIyLjgtNy42IDIyLjktMTAuMiAyNC42LTEyLjggMTAuNC0xNS42IDUuOS04MyA1LjktMTEzIDAtNS4zLTYuNC0xMi44LTEzLjgtMTIuOGwtMTExLjIgMGMtNy40IDAtMTMuOCA3LjUtMTMuOCAxMi44IDAgMzAtNC41IDk3LjQgNS45IDExMyAxLjcgMi41IDEuOCA1LjIgMjQuNiAxMi44IDQuOSAxLjYgNiA5LjggMCA5LjgtMzUuMSAwLTIwLjMtMi01Ni4xLTItMzYuMyAwLTE4LjggMi01NS4xIDItNy45IDAtNS44LTEwLjggMC0xMC44IDEwLjItMy40IDEzLjUtMy41IDIxLjctMTMuOCA3LjctMTIuOSA3LjktNDQuNCA3LjktMTI3LjhsMC0xMDEuMmMwLTIyLjItMTIuMi0yOC4zLTI4LjYtMzIuNC04LjgtMi4yLTQtMTEuOCAxLTExLjggMzYuNSAwIDIwLjYgMiA1Ny4xIDIgMzIuNyAwIDE2LjUtMiA0OS4yLTIgMy4zIDAgOC41IDguMyAxIDEwLjgtNC45IDEuNi0yNy42IDMuNy0yNy42IDM5LjMgMCA0NS42LS4yIDU1LjggMSA2OC44IDAgMS4zIDIuMyAxMi44IDEyLjggMTIuOGwxMDkuMiAwYzEwLjUgMCAxMi44LTExLjUgMTIuOC0xMi44IDEuMi0xMyAxLTIzLjIgMS02OC44IDAtMzUuNi0yMi43LTM3LjctMjcuNi0zOS4zLTcuNS0yLjUtMi4zLTEwLjggMS0xMC44IDMyLjcgMCAxNi41IDIgNDkuMiAyIDM2LjUgMCAyMC42LTIgNTcuMS0yIDQuOSAwIDkuOSA5LjYgMSAxMS44LTE2LjQgNC4xLTI4LjYgMTAuMy0yOC42IDMyLjRsMCAxMDEuMmMwIDgzLjQgLjEgMTE0LjkgNy45IDEyNy44IDguMiAxMC4yIDExLjQgMTAuNCAyMS43IDEzLjggNS44IDAgNy44IDEwLjggMCAxMC44elwiXVxufTtcbnZhciBmYVNxdWFyZUhhY2tlck5ld3MgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3F1YXJlLWhhY2tlci1uZXdzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJoYWNrZXItbmV3cy1zcXVhcmVcIl0sIFwiZjNhZlwiLCBcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjEgMjI5LjJzLjEtLjEgLjEtLjIgLjEtLjIgLjItLjJjMCAuMSAwIC4zLS4xIC40bC0uMiAwek0yMzkuMiAzODRsLTMxLjQgMCAwLTEwMi43LTc5LjgtMTUzLjMgMzcuMyAwYzQxLjUgNzcuNyA0OC4xIDk1LjggNTQuMSAxMTIgMS42IDQuMyAzLjEgOC41IDUuMiAxMy42IDMuMi03IDUuMS0xMS45IDcuMS0xNy4zIDUuOS0xNS4zIDEyLjgtMzMuMiA1My41LTEwOC4zbDM0LjggMC04MC44IDE1NS4xIDAgMTAwLjl6XCJdXG59O1xudmFyIGZhSGFja2VyTmV3c1NxdWFyZSA9IGZhU3F1YXJlSGFja2VyTmV3cztcbnZhciBmYUNyZWF0aXZlQ29tbW9uc1BkQWx0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NyZWF0aXZlLWNvbW1vbnMtcGQtYWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGVkXCIsIFwiTTI1NS42IDhDMTEyLjcgOCA4IDEyMy4xIDggMjU2IDggMzk0LjUgMTIxLjYgNTA0IDI1NS42IDUwNCAzODUuNSA1MDQgNTA0IDQwMy4xIDUwNCAyNTYgNTA0IDExOC4xIDM5Ny40IDggMjU1LjYgOHptLjggNDUwLjhjLTExMi41IDAtMjAzLjctOTMtMjAzLjctMjAyLjggMC0xMDUuNCA4NS41LTIwMy4zIDIwMy43LTIwMy4zIDExMi42IDAgMjAyLjkgODkuNSAyMDIuOCAyMDMuMyAwIDEyMS43LTk5LjYgMjAyLjgtMjAyLjggMjAyLjh6TTMyNC43IDE4NmwtNTMuMiAwIDAgMTM3LjIgNTMuMiAwYzIxLjQgMCA3MC01LjEgNzAtNjguNiAwLTYzLjQtNDguNi02OC42LTcwLTY4LjZ6bS44IDEwOC41bC0xOS45IDAgMC03OS43IDE5LjQtLjFjMy44IDAgMzUtMi4xIDM1IDM5LjkgMCAyNC42LTEwLjUgMzkuOS0zNC41IDM5Ljl6TTIxMS43IDE4NmwtNjguMiAwIDAgMTM3LjMgMzQuNiAwIDAtNDQuMyAyNyAwYzU0LjEgMCA1Ny4xLTM3LjUgNTcuMS00Ni41IDAtMzEtMTYuOC00Ni41LTUwLjUtNDYuNXptLTQuOSA2Ny4zbC0yOS4yIDAgMC00MS42IDI4LjMgMGMzMC45IDAgMjguOCA0MS42IC45IDQxLjZ6XCJdXG59O1xudmFyIGZhT3JjaWQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnb3JjaWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY4ZDJcIiwgXCJNMjk0LjcgMTg4LjJsLTQ1LjkgMCAwIDE1My44IDQ3LjUgMGM2Ny42IDAgODMuMS01MS4zIDgzLjEtNzYuOSAwLTQxLjYtMjYuNS03Ni45LTg0LjctNzYuOXpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0xNzUuMiAzNjguOGwtMjkuOCAwIDAtMjA3LjUgMjkuOCAwIDAgMjA3LjV6TTE2MC4zIDk4LjVhMTkuNiAxOS42IDAgMSAxIDAgMzkuMiAxOS42IDE5LjYgMCAxIDEgMC0zOS4yek0zMDAgMzY5bC04MSAwIDAtMjA3LjcgODAuNiAwYzc2LjcgMCAxMTAuNCA1NC44IDExMC40IDEwMy45IDAgNTMuMy00MS43IDEwMy45LTExMCAxMDMuOXpcIl1cbn07XG52YXIgZmFCZWhhbmNlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2JlaGFuY2UnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYxYjRcIiwgXCJNMjMyIDIzNy4yYzMxLjgtMTUuMiA0OC40LTM4LjIgNDguNC03NCAwLTcwLjYtNTIuNi04Ny44LTExMy4zLTg3LjhsLTE2Ny4xIDAgMCAzNTQuNCAxNzEuOCAwYzY0LjQgMCAxMjQuOS0zMC45IDEyNC45LTEwMi45IDAtNDQuNS0yMS4xLTc3LjQtNjQuNy04OS43ek03Ny45IDEzNS45bDczLjEgMGMyOC4xIDAgNTMuNCA3LjkgNTMuNCA0MC41IDAgMzAuMS0xOS43IDQyLjItNDcuNSA0Mi4ybC03OSAwIDAtODIuN3ptODMuMyAyMzMuN2wtODMuMyAwIDAtOTcuNiA4NC45IDBjMzQuMyAwIDU2IDE0LjMgNTYgNTAuNiAwIDM1LjgtMjUuOSA0Ny01Ny42IDQ3ek01MTkuNyAxMjguOWwtMTQzLjcgMCAwLTM0LjkgMTQzLjcgMCAwIDM0Ljl6TTU3NiAzMDUuMmMwLTc1LjktNDQuNC0xMzkuMi0xMjQuOS0xMzkuMi03OC4yIDAtMTMxLjMgNTguOC0xMzEuMyAxMzUuOCAwIDc5LjkgNTAuMyAxMzQuNyAxMzEuMyAxMzQuNyA2MS4zIDAgMTAxLTI3LjYgMTIwLjEtODYuM2wtNjIuMiAwYy02LjcgMjEuOS0zNC4zIDMzLjUtNTUuNyAzMy41LTQxLjMgMC02My0yNC4yLTYzLTY1LjNsMTg1LjEgMGMuMy00LjIgLjYtOC43IC42LTEzLjJ6TTM5MC40IDI3NGMyLjMtMzMuNyAyNC43LTU0LjggNTguNS01NC44IDM1LjQgMCA1My4yIDIwLjggNTYuMiA1NC44bC0xMTQuNyAwelwiXVxufTtcbnZhciBmYU1vbmVybyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdtb25lcm8nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzZDBcIiwgXCJNMzYwIDM4NGwxMDguNCAwQzQyNSA0NTUuOSAzNDYuMSA1MDQgMjU2IDUwNFM4NyA0NTUuOSA0My42IDM4NGwxMDguNCAwIDAtMTI3LjggMTA0IDEwNC44IDEwNC0xMDUgMCAxMjh6TTk2IDMzNmwwLTIwOCAxNTkuNCAxNTkuNCAxNjAuNi0xNTkuNCAwIDIwOCA3NC44IDBjOC41LTI1LjEgMTMuMi01MiAxMy4yLTgwIDAtMTM3LTExMS0yNDgtMjQ4LTI0OFM4IDExOSA4IDI1NmMwIDI4IDQuNiA1NC45IDEzLjIgODBMOTYgMzM2elwiXVxufTtcbnZhciBmYUZpZ21hID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ZpZ21hJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNzk5XCIsIFwiTTE0IDk1LjhDMTQgNDIuOSA1Ni45IDAgMTA5LjggMEwyNzQuMiAwYzUyLjkgMCA5NS44IDQyLjkgOTUuOCA5NS44IDAgMzMuNS0xNy4yIDYzLTQzLjIgODAuMSAyNiAxNy4xIDQzLjIgNDYuNiA0My4yIDgwLjEgMCA1Mi45LTQyLjkgOTUuOC05NS44IDk1LjhsLTIuMSAwYy0yNC44IDAtNDcuNC05LjQtNjQuNC0yNC45bDAgODguM2MwIDUzLjYtNDQgOTYuOC05Ny40IDk2LjgtNTIuOCAwLTk2LjMtNDIuOC05Ni4zLTk1LjggMC0zMy41IDE3LjItNjMgNDMuMi04MC4xLTI2LTE3LjEtNDMuMi00Ni42LTQzLjItODAuMXMxNy4yLTYzIDQzLjItODAuMUMzMS4yIDE1OC44IDE0IDEyOS4zIDE0IDk1Ljh6bTE2Mi4zIDk1LjhsLTY2LjUgMGMtMzUuNiAwLTY0LjQgMjguOC02NC40IDY0LjQgMCAzNS40IDI4LjYgNjQuMiA2NCA2NC40bDY2LjkgMCAwLTEyOC44ek0yMDcuNyAyNTZjMCAzNS42IDI4LjggNjQuNCA2NC40IDY0LjRsMi4xIDBjMzUuNiAwIDY0LjQtMjguOCA2NC40LTY0LjRzLTI4LjgtNjQuNC02NC40LTY0LjRsLTIuMSAwYy0zNS42IDAtNjQuNCAyOC44LTY0LjQgNjQuNHptLTk3LjkgOTUuOGwtLjQgMGMtMzUuNCAuMi02NCAyOS02NCA2NC40czI5LjIgNjQuNCA2NC45IDY0LjRjMzYuMyAwIDY2LTI5LjQgNjYtNjUuNWwwLTYzLjQtNjYuNSAwem0wLTMyMC40Yy0zNS42IDAtNjQuNCAyOC44LTY0LjQgNjQuNHMyOC44IDY0LjQgNjQuNCA2NC40bDY2LjUgMCAwLTEyOC44LTY2LjUgMHptOTcuOSAxMjguOGw2Ni41IDBjMzUuNiAwIDY0LjQtMjguOCA2NC40LTY0LjRzLTI4LjgtNjQuNC02NC40LTY0LjRsLTY2LjUgMCAwIDEyOC44elwiXVxufTtcbnZhciBmYUluc3RhZ3JhbSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdpbnN0YWdyYW0nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxNmRcIiwgXCJNMjI0LjMgMTQxYTExNSAxMTUgMCAxIDAgLS42IDIzMCAxMTUgMTE1IDAgMSAwIC42LTIzMHptLS42IDQwLjRhNzQuNiA3NC42IDAgMSAxIC42IDE0OS4yIDc0LjYgNzQuNiAwIDEgMSAtLjYtMTQ5LjJ6bTkzLjQtNDUuMWEyNi44IDI2LjggMCAxIDEgNTMuNiAwIDI2LjggMjYuOCAwIDEgMSAtNTMuNiAwem0xMjkuNyAyNy4yYy0xLjctMzUuOS05LjktNjcuNy0zNi4yLTkzLjktMjYuMi0yNi4yLTU4LTM0LjQtOTMuOS0zNi4yLTM3LTIuMS0xNDcuOS0yLjEtMTg0LjkgMC0zNS44IDEuNy02Ny42IDkuOS05My45IDM2LjFzLTM0LjQgNTgtMzYuMiA5My45Yy0yLjEgMzctMi4xIDE0Ny45IDAgMTg0LjkgMS43IDM1LjkgOS45IDY3LjcgMzYuMiA5My45czU4IDM0LjQgOTMuOSAzNi4yYzM3IDIuMSAxNDcuOSAyLjEgMTg0LjkgMCAzNS45LTEuNyA2Ny43LTkuOSA5My45LTM2LjIgMjYuMi0yNi4yIDM0LjQtNTggMzYuMi05My45IDIuMS0zNyAyLjEtMTQ3LjggMC0xODQuOHpNMzk5IDM4OGMtNy44IDE5LjYtMjIuOSAzNC43LTQyLjYgNDIuNi0yOS41IDExLjctOTkuNSA5LTEzMi4xIDlzLTEwMi43IDIuNi0xMzIuMS05Yy0xOS42LTcuOC0zNC43LTIyLjktNDIuNi00Mi42LTExLjctMjkuNS05LTk5LjUtOS0xMzIuMXMtMi42LTEwMi43IDktMTMyLjFjNy44LTE5LjYgMjIuOS0zNC43IDQyLjYtNDIuNiAyOS41LTExLjcgOTkuNS05IDEzMi4xLTlzMTAyLjctMi42IDEzMi4xIDljMTkuNiA3LjggMzQuNyAyMi45IDQyLjYgNDIuNiAxMS43IDI5LjUgOSA5OS41IDkgMTMyLjFzMi43IDEwMi43LTkgMTMyLjF6XCJdXG59O1xudmFyIGZhUGVyYnl0ZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdwZXJieXRlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMDgzXCIsIFwiTTMwNS4zIDI4NC42bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXpNMTQ5LjQgMTI4LjdsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41ek0zNjYuNiAzMkw4MS40IDMyYy0yMS42IDAtNDIuMiA4LjYtNTcuNSAyMy45UzAgOTEuOCAwIDExMy40TDAgMzk4LjZjMCAyMS42IDguNiA0Mi4yIDIzLjkgNTcuNVM1OS44IDQ4MCA4MS40IDQ4MGwyODUuMyAwYzIxLjYgMCA0Mi4yLTguNiA1Ny41LTIzLjlTNDQ4IDQyMC4yIDQ0OCAzOTguNmwwLTI4NS4zYzAtMjEuNi04LjYtNDIuMi0yMy45LTU3LjVTMzg4LjIgMzIgMzY2LjYgMzJ6bTYzLjYgMzY2LjZjMCAxNi45LTYuNyAzMy0xOC43IDQ1cy0yOC4xIDE4LjYtNDUgMTguN2wtMjg1LjMgMGMtMTYuOSAwLTMzLTYuNy00NS0xOC43cy0xOC42LTI4LjEtMTguNy00NWwwLTI4NS4zYzAtMTYuOSA2LjctMzMgMTguNy00NXMyOC4xLTE4LjYgNDUtMTguN2wyODUuMyAwYzE2LjkgMCAzMyA2LjcgNDUgMTguN3MxOC42IDI4LjEgMTguNyA0NWwwIDI4NS4zem0tMTI1LTI2OS45bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXpcIl1cbn07XG52YXIgZmFTcXVhcmVWaW1lbyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtdmltZW8nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInZpbWVvLXNxdWFyZVwiXSwgXCJmMTk0XCIsIFwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zMTguNSAzMDkuNWMtNDMuNSA1Ni41LTgwLjMgODQuOC0xMTAuNCA4NC44LTE4LjcgMC0zNC40LTE3LjItNDcuMy01MS42LTMuOC0xMy45LTcuMy0yNi45LTEwLjUtMzktMTguMi02OC4zLTI4LjYtMTA3LjQtNDYuMi0xMDcuNC0yLjQgMC0xMC44IDUtMjUuMSAxNS4xTDY0IDE5MmM3LTYuMSAxMy45LTEyLjQgMjAuNi0xOC41IDI5LjEtMjYuMyA1NS42LTUwLjMgNzMuNS01MS45IDI0LjktMi40IDQwLjIgMTQuNiA0NiA1MS4xIDIwLjUgMTI5LjYgMjkuNiAxNDkuMiA2Ni44IDkwLjUgMTMuNC0yMS4yIDIwLjYtMzcuMiAyMS41LTQ4LjMgMy40LTMyLjgtMjUuNi0zMC42LTQ1LjItMjIuMiAxNS43LTUxLjUgNDUuOC03Ni41IDkwLjEtNzUuMSAzMi45IDEgNDguNCAyMi40IDQ2LjUgNjQtMS40IDMxLjEtMjMuMiA3My44LTY1LjMgMTI3Ljl6XCJdXG59O1xudmFyIGZhVmltZW9TcXVhcmUgPSBmYVNxdWFyZVZpbWVvO1xudmFyIGZhUHVzaGVkID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3B1c2hlZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjNlMVwiLCBcIk00MTUuMSAxMTEuOWwtOTguNS05IDE0LTMzLjRjMTAuNC0yMy41LTEwLjgtNDAuNC0yOC43LTM3TDMwLjYgNzYuOWMtMTUuMSAyLjctMjYgMTguMy0yMS40IDM2LjZMMTE0LjMgNDYxLjhjNi41IDIxLjMgMzYuNyAyNC4yIDQ3LjcgN0wxOTcuMyAzODggNDMyLjUgMTU2LjdjMTYuNC0xNi44IDQuMy00Mi45LTE3LjQtNDQuOHpNMzA1LjcgNTMuNmM1LjEtLjcgNy41IDIuNSA1LjIgNy40bC0xNi44IDM5LjktMTc3LjQtMTYuMyAxODktMzF6TTMwLjggMTA3LjljLTMuMS01LjEgMS0xMCA2LjEtOS4xbDI0OC43IDIyLjctOTYuOSAyMzAuNy0xNTcuOS0yNDQuM3pNMTQ0LjEgNDU2LjRjLTIuNiA0LTcuOSAzLjEtOS40LTEuMkw1MS42IDE3OS43IDE3OS4zIDM3Ny4zYy03IDE1LTM1LjIgNzkuMS0zNS4yIDc5LjF6TTQxNi45IDE0MS45bC0xOTguNyAxOTUuNCA4OS43LTIxMy43IDEwNi40IDkuN2M0IDEuMSA1LjcgNS4zIDIuNiA4LjZ6XCJdXG59O1xudmFyIGZhTWl4Y2xvdWQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnbWl4Y2xvdWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyODlcIiwgXCJNMjEzIDM0Ni42bC0zMy4yIDAgMC0xNTEuNSA2LjItMjEuNi0xMC43IDAtMzguMSAxNzMuMS02MSAwLTM4LjQtMTczLjEtMTAuNSAwIDUuOSAyMS42IDAgMTUxLjUtMzMuMiAwIDAtMTgxLjYgNjUuNyAwIDM2LjYgMTczLjEgOC41IDAgMzYuNi0xNzMuMSA2NS43IDAgMCAxODEuNnptMzMxLjUtNjNsLTg2IDYyLjEgMC0zOC4xIDcyLjktNTEuOC03Mi45LTUxLjggMC0zOC4xIDg2IDYyLjMgOS4zIDAgODYuMy02Mi4zIDAgMzguMS03My4xIDUxLjggNzMuMSA1MS44IDAgMzguMS04Ni4zLTYyLjEtOS4zIDB6TTQzMC4yIDI3Mi4zbC0xODIgMCAwLTMzLjEgMTgyIDAgMCAzMy4xelwiXVxufTtcbnZhciBmYVlhbmRleEludGVybmF0aW9uYWwgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAneWFuZGV4LWludGVybmF0aW9uYWwnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImY0MTRcIiwgXCJNMTI5LjUgNTEybDAtMTY2LjEtMTExLTI5Ny45IDU1LjggMCA4MS44IDIyOS43IDk0LjEtMjc3LjcgNTEuMyAwLTEyMC43IDM0Ny44IDAgMTY0LjItNTEuMyAwelwiXVxufTtcbnZhciBmYUhpdmUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnaGl2ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA3ZlwiLCBcIk0yNjAuNCAyNTQuOUwxMzEuNSAzMy4xYy0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjMtMS4xLS4zLS44IC4xLTEuMSAuMy0uNiAuNS0uOCAuOEwuMyAyNTQuOWMtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMUwxMjkuMSA0NzguOWMuMiAuMyAuNSAuNiAuOCAuOHMuNyAuMyAxLjEgLjMgLjgtLjEgMS4xLS4zIC42LS41IC44LS44TDI2MC40IDI1Ny4xYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xem0zOS4xLTI1LjdjLjIgLjMgLjUgLjYgLjggLjhzLjcgLjMgMS4xIC4zbDY2LjUgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOCAuMy0uNyAuMy0xLjEtLjEtLjgtLjMtMS4xTDI1OS4xIDMzLjFjLS4yLS4zLS41LS42LS44LS44cy0uNy0uMy0xLjEtLjNsLTY2LjUgMGMtLjQgMC0uOCAuMS0xLjEgLjNzLS42IC41LS44IC44LS4zIC43LS4zIDEuMSAuMSAuOCAuMyAxLjFMMjk5LjQgMjI5LjJ6bTIxMi4zIDI1LjdMMzg0LjkgMzMuMWMtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4zLTEuMS0uM2wtNjYuNiAwYy0uNCAwLS44IC4xLTEuMSAuM3MtLjYgLjUtLjggLjgtLjMgLjctLjMgMS4xIC4xIC44IC4zIDEuMUw0NDAuNyAyNTYgMzE0LjUgNDc2LjdjLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjEgLjUgLjYgLjggLjggLjcgLjMgMS4xIC4zbDY2LjYgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOEw1MTEuNyAyNTcuMWMuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMXpNMzY2IDI4NC45bC02Ni41IDBjLS40IDAtLjggLjEtMS4xIC4zcy0uNiAuNS0uOCAuOEwxODguOCA0NzYuN2MtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMSAuNSAuNiAuOCAuOCAuNyAuMyAxLjEgLjNsNjYuNSAwYy40IDAgLjgtLjEgMS4xLS4zcy42LS41IC44LS44TDM2Ny45IDI4OC4zYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xLS41LS42LS44LS44LS43LS4zLTEuMS0uM3pcIl1cbn07XG52YXIgZmFDcmVhdGl2ZUNvbW1vbnNaZXJvID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NyZWF0aXZlLWNvbW1vbnMtemVybycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjRmM1wiLCBcIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bS0uNCA2MC41Yy04MS45IDAtMTAyLjUgNzcuMy0xMDIuNSAxNDIuOFMxNzQuMSAzOTguOCAyNTYgMzk4LjggMzU4LjUgMzIxLjUgMzU4LjUgMjU2IDMzNy45IDExMy4yIDI1NiAxMTMuMnptMCA1My45YzMuMyAwIDYuNCAuNSA5LjIgMS4yIDUuOSA1LjEgOC44IDEyLjEgMy4xIDIxLjlMMjEzLjggMjkwLjRjLTEuNy0xMi43LTEuOS0yNS4xLTEuOS0zNC40IDAtMjguOCAyLTg4LjkgNDQuMS04OC45em00MC44IDQ2LjJjMi45IDE1LjQgMy4zIDMxLjQgMy4zIDQyLjcgMCAyOC45LTIgODguOS00NC4xIDg4LjktMTMuNSAwLTMyLjYtNy43LTIwLjEtMjYuNGw2MC45LTEwNS4yelwiXVxufTtcbnZhciBmYVNxdWFyZVNuYXBjaGF0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NxdWFyZS1zbmFwY2hhdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wic25hcGNoYXQtc3F1YXJlXCJdLCBcImYyYWRcIiwgXCJNMzg0IDMyTDY0IDMyYy0xNyAwLTMzLjMgNi43LTQ1LjMgMTguN1MwIDc5IDAgOTZMMCA0MTZjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNTNDcgNDgwIDY0IDQ4MGwzMjAgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN1M0NDggNDMzIDQ0OCA0MTZsMC0zMjBjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNTNDAxIDMyIDM4NCAzMnptLTMuOSAzMTkuM2wtLjEgLjFjLTIuNSAyLjgtNS40IDUuMS04LjcgNi44LTYuNSAzLjYtMTMuNCA2LjMtMjAuNiA4LjItMS40IC40LTIuNyAxLTMuOSAxLjgtMi4yIDEuOS0yLjEgNC42LTQuNCA4LjYtMS43IDMtNCA1LjUtNi44IDcuNS02LjcgNC42LTE0LjIgNC45LTIyLjIgNS4yLTcuMiAuMy0xNS40IC42LTI0LjcgMy43LTMuOCAxLjItNy44IDMuNy0xMi40IDYuNS0xMS4zIDYuOS0yNi43IDE2LjQtNTIuMyAxNi40cy00MC45LTkuNC01Mi4xLTE2LjNjLTQuNy0yLjktOC43LTUuNC0xMi41LTYuNi05LjMtMy4xLTE3LjUtMy40LTI0LjctMy43LTgtLjMtMTUuNS0uNi0yMi4yLTUuMi0yLjQtMS42LTQuNC0zLjctNi02LjEtMy4yLTQuNi0yLjktNy44LTUuMy05LjktMS4zLS44LTIuNi0xLjUtNC4xLTEuOC03LjEtMS45LTEzLjktNC42LTIwLjMtOC4xLTMuMS0xLjYtNS45LTMuOC04LjMtNi4zLTYuNi02LjgtOC4zLTE0LjgtNS43LTIxLjggMy40LTkuMyAxMS42LTEyLjEgMTkuNC0xNi4zIDE0LjgtOCAyNi4zLTE4LjEgMzQuNC0yOS45IDIuMy0zLjMgNC4zLTYuOSA2LTEwLjYgLjgtMi4yIC44LTMuMyAuMi00LjQtLjYtLjktMS4zLTEuNi0yLjItMi4yLTIuNS0xLjctNS4xLTMuNC02LjktNC41LTMuMy0yLjEtNS45LTMuOC03LjUtNS02LjMtNC40LTEwLjYtOS0xMy40LTE0LjItMS45LTMuNi0zLTcuNi0zLjMtMTEuNnMuNC04LjEgMS45LTExLjljNC4xLTEwLjkgMTQuNS0xNy43IDI3LTE3LjcgMi42IDAgNS4zIC4zIDcuOCAuOCAuNyAuMiAxLjQgLjMgMiAuNS0uMS03LjQgLjEtMTUuNCAuNy0yMy4xIDIuNC0yNy4zIDExLjktNDEuNiAyMS45LTUzIDYuNC03LjIgMTMuOS0xMy4yIDIyLjMtMTcuOSAxNS4xLTguNiAzMi4yLTEzIDUwLjktMTNzMzUuOCA0LjQgNTAuOSAxM2M4LjMgNC43IDE1LjkgMTAuOCAyMi4yIDE3LjkgMTAgMTEuNCAxOS41IDI1LjcgMjEuOSA1MyAuNiA3LjcgLjkgMTUuNCAuNyAyMy4xIC43LS4yIDEuNC0uMyAyLjEtLjUgMi42LS42IDUuMi0uOCA3LjgtLjggMTIuNSAwIDIyLjggNi44IDI3IDE3LjcgMS41IDMuOCAyLjEgNy45IDEuOSAxMS45cy0xLjQgOC0zLjMgMTEuNmMtMi43IDUuMi03LjEgOS45LTEzLjQgMTQuMi0xLjcgMS4yLTQuMyAyLjktNy41IDUtMS44IDEuMi00LjUgMi45LTcuMiA0LjctLjggLjUtMS40IDEuMi0xLjkgMi0uNSAxLS41IDIuMiAuMiA0LjIgMS43IDMuOCAzLjcgNy40IDYuMSAxMC44IDguMyAxMi4xIDIwLjIgMjIuMyAzNS41IDMwLjQgMS41IC44IDMgMS41IDQuNCAyLjMgLjcgLjMgMS42IC44IDIuNSAxLjMgNC45IDIuNyA5LjIgNiAxMS41IDEyLjIgMi41IDYuOSAxIDE0LjctNS4yIDIxLjN6bS0xNi43LTE4LjVjLTUwLjMtMjQuMy01OC4zLTYxLjktNTguNy02NC43LS40LTMuNC0uOS02IDIuOC05LjUgMy42LTMuMyAxOS41LTEzLjIgMjQtMTYuMyA3LjMtNS4xIDEwLjUtMTAuMiA4LjItMTYuNS0xLjctNC4zLTUuNy02LTEwLTYtMS4zIDAtMi43IC4yLTQgLjQtOCAxLjctMTUuOCA1LjgtMjAuNCA2LjktLjUgLjEtMS4xIC4yLTEuNyAuMi0yLjQgMC0zLjMtMS4xLTMuMS00IC42LTguOCAxLjgtMjUuOSAuNC00MS45LTEuOS0yMi05LTMyLjktMTcuNC00Mi42LTQuMS00LjYtMjMuMS0yNC43LTU5LjUtMjQuN3MtNTUuNCAyMC4xLTU5LjUgMjQuOGMtOC40IDkuNy0xNS41IDIwLjYtMTcuNCA0Mi42LTEuNCAxNi0uMSAzMy4xIC40IDQxLjkgLjIgMi44LS43IDQtMy4xIDQtLjYgMC0xLjEtLjEtMS43LS4yLTQuNS0xLjEtMTIuMy01LjEtMjAuMy02LjktMS4zLS4zLTIuNi0uNC00LS40LTQuMyAwLTguMyAxLjYtMTAgNi0yLjQgNi4zIC44IDExLjQgOC4yIDE2LjUgNC40IDMuMSAyMC40IDEzIDI0IDE2LjMgMy43IDMuNCAzLjIgNi4xIDIuOCA5LjUtLjQgMi44LTguNCA0MC40LTU4LjcgNjQuNy0yLjkgMS40LTggNC40IC45IDkuMyAxMy45IDcuNiAyMy4xIDYuOCAzMC4zIDExLjQgNi4xIDMuOSAyLjUgMTIuNCA2LjkgMTUuNCA1LjUgMy44IDIxLjYtLjMgNDIuMyA2LjYgMTcuNCA1LjcgMjguMSAyMiA1OSAyMnM0MS44LTE2LjMgNTguOS0yMmMyMC44LTYuOSAzNi45LTIuOCA0Mi4zLTYuNiA0LjQtMy4xIC44LTExLjUgNi45LTE1LjQgNy4yLTQuNiAxNi40LTMuOCAzMC4zLTExLjUgOC44LTQuOSAzLjgtNy45IC45LTkuNHpcIl1cbn07XG52YXIgZmFTbmFwY2hhdFNxdWFyZSA9IGZhU3F1YXJlU25hcGNoYXQ7XG52YXIgZmFUaGVtZWlzbGUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndGhlbWVpc2xlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMmIyXCIsIFwiTTIwOCA4OC4zYzAtMTAgNi4zLTIxLjcgMTcuNy0yMS43IDExLjEgMCAxNy43IDExLjcgMTcuNyAyMS43IDAgMTAuMy02LjYgMjEuNy0xNy43IDIxLjctMTEuNCAwLTE3LjctMTEuNC0xNy43LTIxLjd6bTMwNCAxNjBjMCAzNi0xMS40IDEwMi4zLTM2LjMgMTI5LjctMjIuOSAyNC45LTg3LjQgNjEuMS0xMjAuOSA3MC42bC0xLjEgLjMgMCAzMi42YzAgMTYuMy0xMi42IDMwLjYtMjkuMSAzMC42LTEwIDAtMTkuNC01LjctMjQuNi0xNC4zLTUuNCA4LjYtMTQuOSAxNC4zLTI0LjkgMTQuM3MtMTkuNC01LjctMjQuOS0xNC4zYy01LjEgOC42LTE0LjYgMTQuMy0yNC42IDE0LjMtMTAuMyAwLTE5LjQtNS43LTI0LjktMTQuMy01LjEgOC42LTE0LjYgMTQuMy0yNC42IDE0LjMtMTguOSAwLTI5LjQtMTUuNy0yOS40LTMyLjktMTYuMyAxMi4zLTM1LjcgMTkuNC01Ni42IDE5LjQtMjIgMC00My40LTguMy02MC4zLTIyLjkgMTAuMy0uMyAyMC42LTIuMyAzMC4zLTUuNy0yMC45LTUuNy0zOS40LTE4LjktNTItMzYuMyAyMS40IDQuNiA0Ni4yIDEuNyA2Ny4xLTExLjEtMjItMjItNTYuNi01OC45LTY4LjYtODcuNC01LjctMTMuNC02LjktMzEuNC02LjktNDUuNyAwLTQ5LjcgMjAuMy0xNjAgODYuMy0xNjAgMTAuNiAwIDE4LjkgNC45IDIzLjEgMTQuOSAzLjctNS40IDcuNy0xMC41IDEyLTE1LjQgMi0yLjYgNS43LTUuNCA3LjEtOC4zIDgtMTIuNiAxMS43LTIxLjEgMjEuNy0zNCAzMi4zLTQxLjEgODEuNy02OS40IDEzNC45LTY5LjQgNiAwIDEyIC4zIDE3LjcgMS4xIDEwLjktMTEuNyAyNi0xOC4zIDQxLjctMTguMyAxNC42IDAgMjkuNyA2IDQwIDE2LjMgLjkgLjkgMS40IDIuMyAxLjQgMy40IDAgMy43LTEwLjMgMTMuNC0xMi45IDE2LjMgNC4zIDEuNCAxNS43IDYuOSAxNS43IDEyIDAgMi45LTIuOSA1LjEtNC42IDcuMSAzMS40IDI3LjcgNDkuNCA2Ny4xIDU2LjMgMTA4IDQuMy01LjEgMTAuMy04LjYgMTcuMS04LjYgMTAuNiAwIDIwLjkgNy4xIDI4LjYgMTQgMjAuOSAxOC42IDI1LjcgNTMuMSAyNS43IDc5Ljd6TTE4OCA4OS40YzAgMTguMyAxMi42IDM3LjEgMzIuMyAzNy4xczMyLjMtMTguOSAzMi4zLTM3LjFjMC0xOC0xMi42LTM2LjktMzIuMy0zNi45UzE4OCA3MS40IDE4OCA4OS40ek0yMzcuNyAxOTRjMC0xOS43IDMuNy0zOS4xIDguNi01OC4zLTUyIDc5LjUtMTMuNSAxODQuNiA2OC45IDE4NC42IDIxLjQgMCA0Mi42LTcuNyA2MC0yMCAyLTcuNCAzLjctMTQuOSAzLjctMjIuNiAwLTE0LjMtNi4zLTIxLjQtMjAuNi0yMS40LTQuNiAwLTkuMSAuOS0xMy40IDEuNy02My4zIDEyLjctMTA3LjEgMy43LTEwNy4xLTY0ek0xOTYuNiA0NDguOWMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMCA5LjctMjAgMjAuOWwwIDMyLjZjMCAxMS4xIDguNiAyMS4xIDIwIDIxLjFzMjAuMy05LjcgMjAuMy0yMS4xbDAtMzIuNnptNDkuMSAwYzAtMTEuMS04LjYtMjAuOS0yMC0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAtMTAgMjAtMjEuMWwwLTMyLjZ6bTQ5LjcgMGMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAuMy05LjcgMjAuMy0yMS4xbDAtMzIuNnptNDkuNyAwYzAtMTEuMS04LjktMjAuOS0yMC4zLTIwLjlzLTIwLjMgOS43LTIwLjMgMjAuOWwwIDMyLjZjMCAxMS4xIDguOSAyMS4xIDIwLjMgMjEuMXMyMC4zLTEwIDIwLjMtMjEuMWwwLTMyLjZ6TTQyMS43IDI4NmMtMzAuOSA1OS4xLTkwLjMgMTAyLjYtMTU4LjYgMTAyLjYtOTYuNiAwLTE2MC42LTg0LjYtMTYwLjYtMTc2LjYgMC0xNi45IDItMzMuNCA2LTQ5LjctMjAgMzMuNy0yOS43IDcyLjYtMjkuNyAxMTEuNCAwIDYwLjMgMjQuOSAxMjEuNyA3MS40IDE2MC45IDUuMS05LjcgMTQuOS0xNi4zIDI2LTE2LjMgMTAgMCAxOS40IDUuNyAyNC42IDE0LjMgNS40LTguNiAxNC42LTE0LjMgMjQuOS0xNC4zIDEwIDAgMTkuNCA1LjcgMjQuNiAxNC4zIDUuNC04LjYgMTQuOS0xNC4zIDI0LjktMTQuM3MxOS40IDUuNyAyNC45IDE0LjNjNS4xLTguNiAxNC42LTE0LjMgMjQuNi0xNC4zIDEwLjkgMCAyMC45IDYuNiAyNS43IDE2IDQzLjQtMzYuMyA2OC42LTkyIDcxLjQtMTQ4LjN6bTEwLjYtOTkuN2MwLTUzLjctMzQuNi0xMDUuNy05Mi42LTEwNS43LTMwLjMgMC01OC42IDE1LjEtNzguOSAzNi45LTIwIDY2LjQtMjcuNCAxMzYuNiA0MS40IDEzNi42IDI4LjggMCA5Ny40LTI4LjUgODQuMyAzNi45IDI4LjktMjYgNDUuNy02NS43IDQ1LjctMTA0LjZ6XCJdXG59O1xudmFyIGZhRGFydExhbmcgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZGFydC1sYW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNjkzXCIsIFwiTTM3OC42IDc4LjljLTIuOC0uMS01LjYtLjItOC41LS4ybC0yNjQuMSAwIDE0My4yLTcyYzcuNC00LjQgMTguOC02LjcgMzAuNC02LjcgMTMuNSAwIDI5LjQgOS4yIDM3IDE2LjhsNjIgNjIgMCAuMXpNMTA3LjMgOTYuNWwyNjIuOCAwYzE2IDAgMjUuNCAxLjQgMzUuNCA5LjNsMTA2LjUgMTA2LjQgMCAyMDguOC03OS4zIC43LTMyNS40LTMyNS4yek05Ni41IDM3M2wwLTI2Mi4yIDMyMy44IDMyMy44IC43IDc3LjQtMjEyLjIgMC05OC4xLTk4LjJDOTkuNCA0MDIuNSA5Ni41IDM5OC41IDk2LjUgMzczek03OC43IDEwNS4zbDAgMjY3LjdjMCAzLjMgLjEgNi4zIC4yIDkuMWwtNjItNjJDNi41IDMwOS4zIDAgMjk0LjMgMCAyNzkuNiAwIDI3Mi44IDMuOSAyNjIuMSA2LjcgMjU2bDcyLTE1MC43elwiXVxufTtcbnZhciBmYURlcGxveWRvZyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdkZXBsb3lkb2cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzOGVcIiwgXCJNMzgyLjIgMTM2bDUxLjcgMCAwIDIzOS42LTUxLjcgMCAwLTIwLjdjLTE5LjggMjQuOC01Mi44IDI0LjEtNzMuOCAxNC43LTI2LjItMTEuNy00NC4zLTM4LjEtNDQuMy03MS44IDAtMjkuOCAxNC44LTU3LjkgNDMuMy03MC44IDIwLjItOS4xIDUyLjctMTAuNiA3NC44IDEyLjlsMC0xMDMuOXpNMzE3LjUgMjk3LjhhMzMuMiAzMy4yIDAgMSAwIDY2LjQgMSAzMy4yIDMzLjIgMCAxIDAgLTY2LjQtMXpNMTg4LjUgMTM2bDUxLjcgMCAwIDIzOS42LTUxLjcgMCAwLTIwLjdjLTE5LjggMjQuOC01Mi44IDI0LjEtNzMuOCAxNC43LTI2LjItMTEuNy00NC4zLTM4LjEtNDQuMy03MS44IDAtMjkuOCAxNC44LTU3LjkgNDMuMy03MC44IDIwLjItOS4xIDUyLjctMTAuNiA3NC44IDEyLjlsMC0xMDMuOXpNMTIzLjggMjk3LjhhMzMuMiAzMy4yIDAgMSAwIDY2LjQgMSAzMy4yIDMzLjIgMCAxIDAgLTY2LjQtMXpNNDQ4IDk2YzE3LjUgMCAzMiAxNC40IDMyIDMybDAgMjU2YzAgMTcuNS0xNC40IDMyLTMyIDMyTDY0IDQxNmMtMTcuNSAwLTMyLTE0LjQtMzItMzJsMC0yNTZjMC0xNy41IDE0LjQtMzIgMzItMzJsMzg0IDB6bTAtMzJMNjQgNjRDMjguOCA2NCAwIDkyLjggMCAxMjhMMCAzODRjMCAzNS4yIDI4LjggNjQgNjQgNjRsMzg0IDBjMzUuMiAwIDY0LTI4LjggNjQtNjRsMC0yNTZjMC0zNS4yLTI4LjgtNjQtNjQtNjR6XCJdXG59O1xudmFyIGZhRmxpcGJvYXJkID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ZsaXBib2FyZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjQ0ZFwiLCBcIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0zNTguNCAyMTEuMmwtODkuNiAwIDAgODkuNi04OS42IDAgMCA4OS42LTg5LjYgMCAwLTI2OC44IDI2OC44IDAgMCA4OS42elwiXVxufTtcbnZhciBmYUJ1eU5MYXJnZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdidXktbi1sYXJnZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjhhNlwiLCBcIk0yODguMiAzMkMxMzMuNSAzMiA4IDEzMi4zIDggMjU2UzEzMy41IDQ4MCAyODguMiA0ODAgNTY4LjQgMzc5LjcgNTY4LjQgMjU2IDQ0Mi45IDMyIDI4OC4yIDMyek0yMDIuOCAzODkuMmwtMTM4LjUgMS40IDc3LjItMjkwLjcgMTMzLjQgMGM2My4yIDAgODQuOSAyOC42IDc4IDcyLjgtLjQgMi4zLS45IDQuNi0xLjUgNi45LTUuNi0xLjMtMTEuNC0xLjktMTcuMi0xLjktNDIuMyAwLTc2LjcgMzMuOS03Ni43IDc1LjcgMCAzNy4xIDI3LjEgNjggNjIuOSA3NC41LTE4LjIgMzcuMi01Ni4yIDYwLjktMTE3LjcgNjEuNXpNMzU4LjIgMjA3LjFsMzIgMC0yMi4yIDkwLjMtMzUuNCAwLTExLjItMzUuNi03LjggMzUuNi0zNy44IDAgMjYuNi05MC4zIDMxLjMgMCAxNSAzNi44IDkuNC0zNi44ek01MDQuMSAzODkuMmwtMTk3LjEgMCAxNS44LTYxLjJjMy44IC42IDcuNiAuOCAxMS41IC44IDQyLjMgMCA3Ni43LTMzLjkgNzYuNy03NS42IDAtMzIuNi0yMS02MC41LTUwLjQtNzEuMWwyMS4zLTgyLjQgOTIuNSAwLTUzIDIwNS40IDEwMy45IDAtMjEuMiA4NC4xek0yMTEuOSAyNjkuNGwtMjQuNyAwLTEzLjggNTYuNSAyNC43IDBjMTYuMSAwIDMyLjEtMy4yIDM3LjktMjYuNiA1LjYtMjIuMy04LTI5LjgtMjQuMS0yOS44ek0yMzMuMiAxNzBsLTIxLjMgMC0xMS43IDQ3LjcgMjEuNCAwYzE4IDAgMzUuNC0xNC42IDM5LjItMzAuMSA0LjYtMTguOS05LjUtMTcuNi0yNy42LTE3LjZ6XCJdXG59O1xudmFyIGZhV2F0Y2htYW5Nb25pdG9yaW5nID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3dhdGNobWFuLW1vbml0b3JpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUwODdcIiwgXCJNMjU2IDE2YTI0MCAyNDAgMCAxIDAgMCA0ODAgMjQwIDI0MCAwIDEgMCAwLTQ4MHpNMTIxLjcgNDI5LjFjLTUxLjYtNDAuMi04NC45LTEwMi44LTg0LjktMTczLjEgMC0yMS43IDMuMi00My4zIDkuNi02NC4xbDEwMi45LTE3LjktLjEgMTEtMTMuOSAycy0uMSAxMi41LS4xIDE5LjVjMCAyIC40IDQgMS4yIDUuOHMyLjEgMy40IDMuNyA0LjZsOS41IDcuNC0yNy43IDIwNC45ek0yMjcuNCAxNDUuOWw4LjUtNy42czYuOS01LjQtLjEtOS4zYy03LjItNC0zOS41LTM0LjUtMzkuNS0zNC41LTUuMy01LjUtOC4zLTcuMy0xNS41IDAgMCAwLTMyLjMgMzAuNS0zOS41IDM0LjUtNy4xIDQtLjEgOS4zLS4xIDkuM2w4LjUgNy42IDAgNC40LTczLjUtMTkuMmMzOS42LTU2LjkgMTA1LjUtOTQuMyAxODAtOTQuMyAzMS4zIDAgNjIuMiA2LjcgOTAuNiAxOS42czUzLjggMzEuOCA3NC4zIDU1LjRsLTE5My41IDM3LjcgMC0zLjZ6bTM0LjEgMzI5LjNsLTMzLjktMjUwLjkgOS41LTcuNGMxLjYtMS4yIDIuOC0yLjggMy43LTQuNnMxLjMtMy44IDEuMi01LjhjMC03LS4xLTE5LjUtLjEtMTkuNWwtMTMuOS0yLS4xLTEwLjUgMjQxLjcgMzEuNGMzLjkgMTYuNCA1LjggMzMuMyA1LjggNTAuMSAwIDExOS4xLTk1LjQgMjE2LjItMjEzLjggMjE5LjF6XCJdXG59O1xudmFyIGZhSGlwcyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdoaXBzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNDUyXCIsIFwiTTI1MS42IDE1Ny42YzAtMS45LS45LTIuOC0yLjgtMi44bC00MC45IDBjLTEuNiAwLTIuNyAxLjQtMi43IDIuOGwwIDIwMS44YzAgMS40IDEuMSAyLjggMi43IDIuOGw0MC45IDBjMS45IDAgMi44LS45IDIuOC0yLjhsMC0yMDEuOHpNMTU2LjUgMTY4Yy0xNi4xLTExLjgtMzYuMy0xNy45LTYwLjMtMTgtMTguMS0uMS0zNC42IDMuNy00OS44IDExLjRsMC04MS4yYzAtMS44LS45LTIuNy0yLjgtMi43bC00MC45IDBDLjkgNzcuNSAwIDc4LjQgMCA4MC4yTDAgMzU5LjRjMCAxLjkgLjkgMi44IDIuNyAyLjhsNDEgMGMxLjkgMCAyLjgtLjkgMi44LTIuOGwwLTEzNi4xYzAtLjgtMi44LTI3IDQ1LjgtMjcgNDguNSAwIDQ1LjggMjYuMSA0NS44IDI3bDAgMTIyLjZjMCA5IDcuMyAxNi4zIDE2LjQgMTYuM2wyNy4zIDBjMS44IDAgMi43LS45IDIuNy0yLjhsMC0xMzYuMWMwLTIzLjQtOS4zLTQxLjgtMjgtNTUuM3pNNjM0LjkgMjc4LjFjLTYuOC0xNS43LTE4LjQtMjctMzQuOS0zNC4xbC01Ny42LTI1LjNjLTguNi0zLjYtOS4yLTExLjItMi42LTE2LjEgNy40LTUuNSA0NC4zLTEzLjkgODQgNi44IDEuNyAxIDQtLjMgNC0yLjRsMC00NC43YzAtMS4zLS42LTIuMS0xLjktMi42LTE3LjctNi42LTM2LjEtOS45LTU1LjEtOS45LTI2LjUgMC00NS4zIDUuOC01OC41IDE1LjQtLjUgLjQtMjguNCAyMC0yMi43IDUzLjcgMy40IDE5LjYgMTUuOCAzNC4yIDM3LjIgNDMuNkw1ODAuNCAyODZjMTEuNiA1LjEgMTUuMiAxMy4zIDEyLjIgMjEuMi0zLjcgOS4xLTEzLjIgMTMuNi0zNi41IDEzLjYtMjQuMyAwLTQ0LjctOC45LTU4LjQtMTkuMS0yLjEtMS40LTQuNCAuMi00LjQgMi4zbDAgMzQuNGMwIDEwLjQgNC45IDE3LjMgMTQuNiAyMC43IDE1LjYgNS41IDMxLjYgOC4yIDQ4LjIgOC4yIDEyLjcgMCAyNS44LTEuMiAzNi4zLTQuMyAuNy0uMyAzNi04LjkgNDUuNi00NS44IDMuNS0xMy41IDIuNC0yNi41LTMuMS0zOS4xek0zNzYuMiAxNDkuOGMtMzEuNyAwLTEwNC4yIDIwLjEtMTA0LjIgMTAzLjVsMCAxODMuNWMwIC44IC42IDIuNyAyLjcgMi43bDQwLjkgMGMxLjkgMCAyLjgtLjkgMi44LTIuN2wwLTg4LjhjMTYuNSAxMi43IDM1LjggMTkuMSA1Ny43IDE5LjEgNjAuNSAwIDEwOC43LTQ4LjUgMTA4LjctMTA4LjcgLjEtNjAuMy00OC4yLTEwOC42LTEwOC42LTEwOC42em0wIDQ2LjZhNjIuMiA2Mi4yIDAgMSAxIDAgMTI0LjMgNjIuMiA2Mi4yIDAgMSAxIDAtMTI0LjN6TTIyOC4zIDcyLjVjLTE1LjkgMC0yOC44IDEyLjktMjguOSAyOC45IDAgMTUuNiAxMi43IDI4LjkgMjguOSAyOC45czI4LjktMTMuMSAyOC45LTI4LjljMC0xNi4yLTEzLTI4LjktMjguOS0yOC45elwiXVxufTtcbnZhciBmYUNsb3VkdmVyc2lmeSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjbG91ZHZlcnNpZnknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYzODVcIiwgXCJNMTYwLjYgMzA0YzguMiA2OC41IDY3LjQgMTE1LjUgMTQ2IDExMS4zIDUxLjIgNDMuMyAxMzYuOCA0NS44IDE4Ni40LTUuNiA2OS4yIDEuMSAxMTguNS00NC42IDEzMS41LTk5LjUgMTQuOC02Mi41LTE4LjItMTMyLjUtOTIuMS0xNTUuMS0zMy04OC4xLTEzMS40LTEwMS41LTE4Ni41LTg1LTU3LjMgMTcuMy04NC4zIDUzLjItOTkuMyAxMDkuNy03LjggMi43LTI2LjUgOC45LTQ1IDI0LjEgMTEuNyAwIDE1LjIgOC45IDE1LjIgMTkuNWwwIDIwLjRjMCAxMC43LTguNyAxOS41LTE5LjUgMTkuNWwtMjAuMiAwYy0xMC43IDAtMTkuNS02LTE5LjUtMTYuN2wwLTYuNi00Ni44IDBjLTMuOCAwLTEwLjggNC4zLTEwLjggMTEuOWwwIDQwLjRjMCA2LjQgNS4zIDExLjggMTEuNyAxMS44bDQ4LjkgMCAwLS4xek0zODggMzEyYy0xMC43IDQ2LjMgMjEuNyA3Mi40IDU1LjMgODYuOC0xMDcuMiAzMy44LTE3MS42LTUwLjgtMTM1LjMtMTEwLjgtMzMuMiAyMS42LTMzLjcgNzEuMi0yOS4yIDkyLjktMTcuOS0xMi40LTUzLjgtMzIuNC01Ny40LTc5LjgtMy0zOS45IDIxLjUtNzUuNyA1Ny05My45IDMwLjYtMTUuOCAxMDMuNS04LjUgMTMzLjYgNDAuOC0xNC4xLTQ4LTUzLjgtNzAuMS0xMDEuOC03NC44IDMwLjktMzAuNyA2NC40LTUwLjMgMTE0LjItNDMuNyA2OS44IDkuMyAxMzMuMiA4Mi44IDY3LjcgMTUwLjUgMzUtMTYuMyA0OC43LTU0LjQgNDcuNS03Ni45bDEwLjUgMTkuNmMxMS44IDIyIDE1LjIgNDcuNiA5LjQgNzItOS4yIDM5LTQwLjYgNjguOC03OS43IDc2LjUtMzIuMSA2LjMtODMuMS01LjEtOTEuOC01OS4yek0xNDAgMjA4bC0zOS44IDBjLTguOSAwLTE2LjItNy4zLTE2LjItMTYuMmwwLTM5LjZjMC04LjkgNy4zLTE2LjIgMTYuMi0xNi4ybDM5LjggMGM4LjkgMCAxNi4yIDcuMyAxNi4yIDE2LjJsMCAzOS42YzAgOC45LTcuMyAxNi4yLTE2LjIgMTYuMnpNMjIuMSAxNjhjLTUuNiAwLTEwLjEtNC41LTEwLjEtMTAuMWwwLTI3LjhjMC01LjYgNC41LTEwLjEgMTAuMS0xMC4xbDI3LjcgMGM1LjUgMCAxMC4xIDQuNSAxMC4xIDEwLjFsMCAyNy44YzAgNS42LTQuNSAxMC4xLTEwLjEgMTAuMWwtMjcuNyAwek0xODAgMTQyLjdsMC0yMS40YzAtNS4xIDQuMi05LjMgOS4zLTkuM2wyMS40IDBjNS4xIDAgOS4zIDQuMiA5LjMgOS4zbDAgMjEuNGMwIDUuMS00LjIgOS4zLTkuMyA5LjNsLTIxLjQgMGMtNS4xIDAtOS4zLTQuMi05LjMtOS4zek02OCAyMzUuNWwwIDI1YzAgNi4zLTUuMSAxMS41LTExLjQgMTEuNWwtMjUuMiAwYy02LjMgMC0xMS40LTUuMi0xMS40LTExLjVsMC0yNWMwLTYuMyA1LjEtMTEuNSAxMS40LTExLjVsMjUuMSAwYzYuNCAwIDExLjUgNS4yIDExLjUgMTEuNXpcIl1cbn07XG52YXIgZmFHb29kcmVhZHMgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZ29vZHJlYWRzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmM2E4XCIsIFwiTTI5OS45IDE5MS4yYzUuMSAzNy4zLTQuNyA3OS0zNS45IDEwMC43LTIyLjMgMTUuNS01Mi44IDE0LjEtNzAuOCA1LjctMzcuMS0xNy4zLTQ5LjUtNTguNi00Ni44LTk3LjIgNC4zLTYwLjkgNDAuOS04Ny45IDc1LjMtODcuNSA0Ni45LS4yIDcxLjggMzEuOCA3OC4yIDc4LjN6TTQ0OCA4OGwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6TTMzMCAzMTMuMnMtLjEtMzQtLjEtMjE3LjNsLTI5IDAgMCA0MC4zYy0uOCAuMy0xLjItLjUtMS42LTEuMi05LjYtMjAuNy0zNS45LTQ2LjMtNzYtNDYtNTEuOSAuNC04Ny4yIDMxLjItMTAwLjYgNzcuOC00LjMgMTQuOS01LjggMzAuMS01LjUgNDUuNiAxLjcgNzcuOSA0NS4xIDExNy44IDExMi40IDExNS4yIDI4LjktMS4xIDU0LjUtMTcgNjktNDUuMiAuNS0xIDEuMS0xLjkgMS43LTIuOSAuMiAuMSAuNCAuMSAuNiAuMiAuMyAzLjggLjIgMzAuNyAuMSAzNC41LS4yIDE0LjgtMiAyOS41LTcuMiA0My41LTcuOCAyMS0yMi4zIDM0LjctNDQuNSAzOS41LTE3LjggMy45LTM1LjYgMy44LTUzLjItMS4yLTIxLjUtNi4xLTM2LjUtMTktNDEuMS00MS44LS4zLTEuNi0xLjMtMS4zLTIuMy0xLjNsLTI2LjggMGMuOCAxMC42IDMuMiAyMC4zIDguNSAyOS4yIDI0LjIgNDAuNSA4Mi43IDQ4LjUgMTI4LjIgMzcuNCA0OS45LTEyLjMgNjcuMy01NC45IDY3LjQtMTA2LjN6XCJdXG59O1xudmFyIGZhVGlkYWwgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndGlkYWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU3ZGNcIiwgXCJNMTA3LjIgNDhsLTEuMyAwYy0zMi4zIDMzLjEtNjUuNCA2NS41LTk4IDk4LjUtMi42IDIuOC02LjEgNS4xLTcuOSA4LjYgMzUuNiAzNS40IDcxIDcxIDEwNi42IDEwNi40IDM1LjQtMzUuMyA3MC43LTcwLjggMTA2LjEtMTA2LjFsMC0xLjMtNzMuMi03My4yQzEyOC44IDY5LjggMTE3LjMgNTkuNiAxMDcuMiA0OHptMjEzLjUgMGwtMS4zIDBjLTM0LjkgMzYuMS03MS41IDcxLTEwNi4zIDEwNy4yIDM1LjkgMzUuMSA3MSA3MSAxMDYuNyAxMDYuMyAzNC4zLTM0LjEgNjguNC02OC40IDEwMi42LTEwMi40IDEuNS0xLjUgMy4zLTIuOCA0LjEtNC44LTM0LjYtMzMuOC02OC40LTY4LjItMTAyLjYtMTAyLjEtMS4zLTEuMy0yLjMtMi42LTMuMy00LjF6bTIxMy41IDBsLTEuMyAwYy0xNy4yIDE4LTM1LjEgMzUuMy01Mi42IDUzLTE3LjkgMTcuNy0zNS40IDM1LjctNTMuNSA1My4zIC44IDIuMyAzIDMuNiA0LjYgNS41TDUzMy4zIDI2MS41YzM2LjEtMzQuOSA3MC44LTcxLjIgMTA2LjctMTA2LjEtLjUtMi4yLTIuNi0zLjUtNC01TDU1NS44IDcwLjJjLTcuMS03LjQtMTQuOS0xNC4yLTIxLjUtMjIuMnpNMzE5LjYgMjYxLjdjLTM0LjkgMzUuMS03MCA3MC0xMDQuOSAxMDQuOS0uMyAuNy0uNyAxLjctMSAyLjMgMjQgMjMuNyA0Ny43IDQ3LjUgNzEuNSA3MS4zIDExLjggMTEuMyAyMi44IDIzLjUgMzQuOSAzNC40IDguNC03LjQgMTYuNC0xNi40IDI0LjctMjQuMyAyNS41LTI1LjMgNTEtNTEgNzYuNS03Ni4zIDEuOC0yLjIgNC4zLTMuNiA1LjUtNi4zLTM1LjQtMzQuOS03MC41LTcwLjItMTA1LjYtMTA1LjRsLTEuNS0uN3pcIl1cbn07XG52YXIgZmFVbml0eSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd1bml0eScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTA0OVwiLCBcIk0yNDMuNiA5MS42bDgwLjEgNDYuOGMyLjkgMS42IDMgNi4yIDAgNy44bC05NS4yIDU1LjZjLTIuOSAxLjctNi4zIDEuNi05IDBsLTk1LjItNTUuNmMtMi45LTEuNi0zLTYuMyAwLTcuOGw4MC4xLTQ2LjggMC05MS42LTIwNC40IDExOS40IDAgMjM4LjggNzguNC00NS44IDAtOTMuNmMtLjEtMy4zIDMuOC01LjcgNi43LTMuOWw5NS4yIDU1LjZjMi45IDEuNyA0LjUgNC43IDQuNSA3LjhsMCAxMTEuMmMuMSAzLjMtMy44IDUuNy02LjcgMy45TDk4IDM0Ni44IDE5LjYgMzkyLjYgMjI0IDUxMiA0MjguNCAzOTIuNiAzNTAgMzQ2LjggMjY5LjkgMzkzLjZjLTIuOCAxLjctNi44LS41LTYuNy0zLjlsMC0xMTEuMmMwLTMuMyAxLjgtNi4zIDQuNS03LjhMMzYyLjkgMjE1YzIuOC0xLjcgNi44IC41IDYuNyAzLjlsMCA5My42IDc4LjQgNDUuOCAwLTIzOC44LTIwNC40LTExOS40IDAgOTEuNnpcIl1cbn07XG52YXIgZmFUZW5jZW50V2VpYm8gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAndGVuY2VudC13ZWlibycsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjFkNVwiLCBcIk00MC41IDQ5NS44YzEuNCAxOS45LTI3LjYgMjIuMi0yOS43IDIuOS0xMS42LTEyOS45IDMxLjEtMjM5LjUgMTAxLjQtMzEzLjItMTUuNi0zNCA5LjItNzcuMSA1MC42LTc3LjEgMzAuMyAwIDU1LjEgMjQuNiA1NS4xIDU1LjEgMCA0NC00OS41IDcwLjgtODYuOSA0NS4xLTY1LjcgNzEuMy0xMDEuNCAxNjkuOC05MC41IDI4Ny4yek0xNjAuMiAuMWMtMTI1LjkgMC0yMDQuMyAxMzQuMi0xNDguMyAyNDIuMyA4LjcgMTcuNCAzNS4zIDQuNSAyNi4zLTEzLjQtNDYuMy05Mi42IDIxLTE5OS4yIDEyMi0xOTkuMiA3NS40IDAgMTM2LjkgNjEuNCAxMzYuOSAxMzYuOSAwIDkwLjgtODYuOSAxNTMuOS0xNjcuNyAxMzMuMS0xOS4xLTQuMS0yNS42IDI0LjQtNi42IDI5LjEgMTEwLjcgMjMuMiAyMDQtNjAgMjA0LTE2Mi4zIDAtOTEuOS03NC42LTE2Ni41LTE2Ni42LTE2Ni41elwiXVxufTtcbnZhciBmYUZyZWVDb2RlQ2FtcCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdmcmVlLWNvZGUtY2FtcCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjJjNVwiLCBcIk05Ny40IDk2LjJjMTAuNC0xMC42IDE2LTE3LjEgMTYtMjEuOSAwLTIuOC0xLjktNS41LTMuOC03LjQtMi40LTEuOC01LjQtMi44LTguNC0yLjgtOC41IDAtMjAuOSA4LjgtMzUuOCAyNS43LTQxLjUgNDcuMy02Mi43IDkzLjEtNjEuOCAxNjAuNlMyMSAzNjcuMyA1Ny42IDQxMi4yYzE4LjggMjMuNiAzMy4yIDM1LjggNDMuNSAzNS44IDMuMi0uMyA2LjEtMS42IDguNC0zLjggMS45LTIuOCAzLjgtNS42IDMuOC04LjQgMC01LjYtMy45LTEyLjItMTMuMi0yMC42LTQ0LjUtNDIuMy02Ny4zLTk3LTY3LjUtMTY1LS4yLTYxLjQgMjEuNi0xMTIuNCA2NC44LTE1NHpNMjM5LjYgNDIwLjFjLjYgLjQgLjkgLjYgLjkgLjZsLS45LS42em05My44IC42bC4yLS4xYy0uMiAuMS0uMyAuMi0uMiAuMXptMy4xLTE1OC4yYy0xNi4yLTQuMiA1MC40LTgyLjktNjguMS0xNzcuMiAwIDAgMTUuNSA0OS40LTYyLjggMTU5LjYtNzQuMyAxMDQuNCAyMy41IDE2OC43IDM0IDE3NS4yLTYuNy00LjMtNDcuNC0zNS43IDkuNi0xMjguNiAxMS0xOC4zIDI1LjUtMzQuOSA0My41LTcyLjIgMCAwIDE1LjkgMjIuNCA3LjYgNzEuMS0xMi41IDczLjYgNTMuOCA1Mi41IDU0LjggNTMuNSAyMi44IDI2LjgtMTcuNyA3My41LTIxLjYgNzYuNiA1LjUtMy43IDExNy43LTc4IDMzLTE4OC4xLTYgNi0xMy44IDM0LjItMzAgMzAuMXpNNTExIDg5LjdjLTE0LjktMTYuOS0yNy40LTI1LjctMzUuOS0yNS43LTMgLjEtNS45IDEuMS04LjQgMi44LTEuOSAxLjktMy44IDQuNy0zLjggNy40IDAgNC44IDUuNiAxMS4zIDE2IDIxLjkgNDMuMiA0MS42IDY1IDkyLjYgNjQuOCAxNTQuMS0uMiA2OC0yMyAxMjIuNi02Ny41IDE2NS05LjMgOC40LTEzLjIgMTQuOS0xMy4yIDIwLjYgMCAyLjcgMS45IDUuNiAzLjggOC40IDIuMyAyLjIgNS4yIDMuNiA4LjQgMy44IDEwLjMgMCAyNC43LTEyLjEgNDMuNS0zNS44IDM2LjYtNDQuOSA1My4xLTk0LjQgNTQuMS0xNjEuOVM1NTIuNSAxMzcgNTExIDg5Ljd6XCJdXG59O1xudmFyIGZhWFR3aXR0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAneC10d2l0dGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNjFiXCIsIFwiTTM1Ny4yIDQ4TDQyNy44IDQ4IDI3My42IDIyNC4yIDQ1NSA0NjQgMzEzIDQ2NCAyMDEuNyAzMTguNiA3NC41IDQ2NCAzLjggNDY0IDE2OC43IDI3NS41LTUuMiA0OCAxNDAuNCA0OCAyNDAuOSAxODAuOSAzNTcuMiA0OHpNMzMyLjQgNDIxLjhsMzkuMSAwLTI1Mi40LTMzMy44LTQyIDAgMjU1LjMgMzMzLjh6XCJdXG59O1xudmFyIGZhU3RpY2tlck11bGUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3RpY2tlci1tdWxlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmM2Y3XCIsIFwiTTU2MS43IDE5OS42bDAgMHptLTYuMi03Ny40Yy03LjctMjIuMy01LjEtNy4yLTEzLjQtMzYuOS0xLjYtNi41LTMuNi0xNC41LTYuMi0yMC00LjQtOC43LTQuNi03LjUtNC42LTkuNSAwLTUuMyAzMC43LTQ1LjMgMTktNDYuOS01LjctLjYtMTIuMiAxMS42LTIwLjYgMTctOC42IDQuMi04IDUtMTAuMyA1LTIuNiAwLTUuNy0zLTYuMi01LTItNS43IDEuOS0yNS45LTMuNi0yNS45LTMuNiAwLTEyLjMgMjQuOC0xNyAyNS44LTUuMiAxLjMtMjcuOS0xMS40LTc1LjEgMTgtMjUuMyAxMy4yLTg2LjkgNjUuMi04NyA2NS4zLTYuNyA0LjctMjAgNC43LTM1LjUgMTYtNDQuNCAzMC4xLTEwOS42IDkuNC0xMTAuNyA5LTExMC42LTI2LjgtMTI4LTE1LjItMTU5IDExLjUtMjAuOCAxNy45LTIzLjcgMzYuNS0yNC4yIDM4LjktNC4yIDIwLjQgNS4yIDQ4LjMgNi43IDY0LjMgMS44IDE5LjMtMi43IDE3LjcgNy43IDk4LjMgLjUgMSA0LjEgMCA1LjEgMS41IDAgOC40LTMuOCAxMi4xLTQuMSAxMy0xLjUgNC41LTEuNSAxMC41IDAgMTYgMi4zIDguMiA4LjIgMzcuMiA4LjIgNDYuOSAwIDQxLjggLjQgNDQgMi42IDQ5LjQgMy45IDEwIDEyLjUgOS4xIDE3IDEyIDMuMSAzLjUtLjUgOC41IDEgMTIuNSAuNSAyIDMuNiA0IDYuMiA1IDkuMiAzLjYgMjcgLjMgMjkuOS0yLjUgMS42LTEuNSAuNS00LjUgMy4xLTUgNS4xIDAgMTAuOC0uNSAxNC40LTIuNSA1LjEtMi41IDQuMS02IDEuNS0xMC41LS40LS44LTctMTMuMy05LjgtMTYtMi4xLTItNS4xLTMtNy4yLTQuNS01LjgtNC45LTEwLjMtMTkuNC0xMC4zLTE5LjUtNC42LTE5LjQtMTAuMy00Ni4zLTQuMS02Ni44IDQuNi0xNy4yIDM5LjUtODcuNyAzOS42LTg3LjggNC4xLTYuNSAxNy0xMS41IDI3LjMtNyA2IDEuOSAxOS4zIDIyIDY1LjQgMzAuOSA0Ny45IDguNyA5Ny40LTIgMTEyLjItMiAyLjggMi0xLjkgMTMtLjUgMzguOSAwIDI2LjQtLjQgMTMuNy00LjEgMjkuOS0yLjIgOS43IDMuNCAyMy4yLTEuNSA0Ni45LTEuNCA5LjgtOS45IDMyLjctOC4yIDQzLjQgLjUgMSAxIDIgMS41IDMuNSAuNSA0LjUgMS41IDguNSA0LjYgMTAgNy4zIDMuNiAxMi0zLjUgOS44IDExLjUtLjcgMy4xLTIuNiAxMiAxLjUgMTUgNC40IDMuNyAzMC42IDMuNCAzNi41IC41IDIuNi0xLjUgMS42LTQuNSA2LjQtNy40IDEuOS0uOSAxMS4zLS40IDExLjMtNi41IC4zLTEuOC05LjItMTkuOS05LjMtMjAtMi42LTMuNS05LjItNC41LTExLjMtOC02LjktMTAuMS0xLjctNTIuNiAuNS01OS40IDMtMTEgNS42LTIyLjQgOC43LTMyLjQgMTEtNDIuNSAxMC4zLTUwLjYgMTYuNS02OC4zIC44LTEuOCA2LjQtMjMuMSAxMC4zLTI5LjkgOS4zLTE3IDIxLjctMzIuNCAzMy41LTQ3LjQgMTgtMjIuOSAzNC00Ni45IDUyLTY5LjggNi4xLTcgOC4yLTEzLjcgMTgtOCAxMC44IDUuNyAyMS42IDcgMzEuOSAxNyAxNC42IDEyLjggMTAuMiAxOC4yIDExLjggMjIuOSAxLjUgNSA3LjcgMTAuNSAxNC45IDkuNSAxMC40LTIgMTMtMi41IDEzLjQtMi41IDIuNi0uNSA1LjctNSA3LjItOCAzLjEtNS41IDcuMi05IDcuMi0xNi41IDAtNy43LS40LTIuOC0yMC42LTUyLjl6XCJdXG59O1xudmFyIGZhVHdpdGNoID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3R3aXRjaCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjFlOFwiLCBcIk0zNTkuNCAxMDMuNWwtMzguNiAwIDAgMTA5LjcgMzguNiAwIDAtMTA5Ljd6TTI1My4yIDEwM2wtMzguNiAwIDAgMTA5LjggMzguNiAwIDAtMTA5Ljh6TTg5IDBsLTk2LjUgOTEuNCAwIDMyOS4yIDExNS44IDAgMCA5MS40IDk2LjUtOTEuNCA3Ny4zIDAgMTczLjgtMTY0LjYgMC0yNTYtMzY2LjkgMHpNNDE3LjMgMjM3LjhsLTc3LjIgNzMuMS03Ny4yIDAtNjcuNiA2NCAwLTY0LTg2LjkgMCAwLTI3NC4zIDMwOC45IDAgMCAyMDEuMnpcIl1cbn07XG52YXIgZmFLaWNrc3RhcnRlcksgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAna2lja3N0YXJ0ZXItaycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjNiY1wiLCBcIk0zNTYuNyAyNTYuMmw0MC44LTQwLjVjNDIuMi00MS45IDQyLjItMTEwLjMgMC0xNTIuMXMtMTExLTQxLjktMTUzLjIgMEwyMjkuMyA3OC40QzIwOS42IDUwLjMgMTc3LjEgMzIgMTQwLjIgMzIgODAuNSAzMiAzMiA4MC4yIDMyIDEzOS41bDAgMjMzYzAgNTkuNCA0OC41IDEwNy41IDEwOC4yIDEwNy41IDM3LjEgMCA2OS4zLTE4LjMgODktNDYuNGwxNC45IDE0LjdjNDIuMiA0MS45IDExMSA0MS45IDE1My4yIDBzNDIuMi0xMTAuMyAwLTE1Mi4xbC00MC44LTQwIC4xIDB6XCJdXG59O1xudmFyIGZhQ3JpdGljYWxSb2xlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NyaXRpY2FsLXJvbGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY2YzlcIiwgXCJNMjI1LjggMGMuMyAuMiAyMTYuNiAxMjQuNSAyMTcuMSAxMjQuNyAzIDEuMiAzLjcgMy41IDMuNyA2LjYtLjEgODMuNC0uMSAxNjYuOSAwIDI1MC40IC4xIDEuMi0uMiAyLjQtLjggMy40cy0xLjUgMS45LTIuNiAyLjRjLTIxLjQgMTItMjA3LjkgMTE4LjMtMjE4LjkgMTI0LjZsLTMgMGMtNzkuMy00NS43LTIxOC4zLTEyNS40LTIxOC40LTEyNS41LS42LS4zLTEuMS0uNy0xLjQtMS4zcy0uNS0xLjItLjQtMS45YzAtLjkgMC0yMjUuOS0uMS0yNTMuMS0uMS0xIC4yLTIgLjctMi45czEuMy0xLjYgMi4yLTJDMjcuMiAxMTIuMSAyMTMuMiA2IDIyNC4xIDBsMS44IDB6TTIxNS40IDIwLjRsLS4yLS4yYy02NC43IDM2LjktMTI5LjUgNzMuNy0xOTQuMiAxMTAuNiAwIC4xIC4xIC4yIC4xIC40TDUyIDE0Mi45Yy03LjcgNi04LjMgNi0xMC42IDUuMS0uMSAwLTI0LjItOS4zLTI2LjgtMTBsMCAyMzAuNGMuOS0xLjQgNjQuMS0xMTAuOSA2NC4xLTExMSAxLjYtMi44IDMtMS45IDkuMS0xLjUgMS40IC4xIDEuNSAuMiAuOCAxLjQtNDEuMiA3MS4zLTM2LjQgNjMtNjcuNSAxMTYuOS0uOCAxLjQtLjYgMS4xIDEuMiAxLjFsMTg2LjUgMGMxLjQgMCAxLjctLjIgMS43LTEuNmwwLTguOWMwLTEuMyAyLjQtLjgtMTguNC0xLTcuNS0uMS0xNC4xLTMuMi0yMS40LTEyLjctNy40LTkuNy0xNC42LTE5LjQtMjEuOC0yOS4yLTIuMy0zLjEtMy40LTIuNC0xNi44LTIuNC0xLjggMC0xLjggMC0xLjggMS44IC4zIDI2LjIgLjIgMjUuMyAxIDMyLjcgLjUgNC40IDIuMiA0LjIgOS43IDQuOCAzLjEgLjMgMy45IDQuMSAuNSA0LjktMS42IC40LTMxLjYgLjUtMzMuNy0uMS0uNS0uMS0xLS41LTEuMy0uOXMtLjUtMS0uNC0xLjYgLjMtMS4xIC42LTEuNSAuOS0uNyAxLjQtLjhjMy4zLS44IDYuMiAuOCA2LjctNC40IDEuMy0xMy43IDEuMi05IDEuMS03OS40IDAtMTAuOC0uNC0xMi42LTUuNC0xMy42LTEuMi0uMi0zLjUtLjItNC43LS42LTIuOS0xLTItNC44IDEuOC00LjggMzMuNyAwIDQ2LjEtMS4xIDU2LjEgNC45IDcuNyA0LjYgMTIgMTEuNSAxMi41IDIwLjQgLjkgMTQuNi02LjUgMjIuMy0xNSAzMi42LS4yIC4xLS4zIC4zLS40IC41cy0uMSAuNC0uMSAuNiAwIC40IC4xIC42IC4yIC40IC40IC41YzIuNiAzLjIgNSA2LjYgNy43IDkuOCAyNy42IDMzLjIgMjQuMSAzMC41IDQxLjMgMzMuMSAuOSAuMSAxLS40IDEtMS4ybDAtMTFjMC0xIC4zLTEuNCAxLjQtMS4zIDcuOCAxLjIgMTUuOCAxLjEgMjMuNi0uMyAxLjEtLjEgMS41IC4yIDEuNSAxLjMgMCAuMSAuOSAyNi43IC45IDI2LjggMCAxLjUgLjcgMS42IDEuOSAxLjZsMTg2LjcgMGMtMjcuMi00Ny01NC4yLTk0LTgxLjItMTQwLjggMi4zLS43LS40IDAgNi43LTEuNCAyLS40IDIuMS0uNCAzLjEgMS40IDcuMyAxMi42IDc3LjMgMTM0IDc3LjQgMTM0LjFsMC0yMzAuNGMtMS43IC41LTEwMy4zIDM4LjctMTA1LjggMzkuNy0xLjEgLjQtMS41IC4yLTEuOS0uOS0uNi0xLjktMS4zLTMuOC0yLjEtNS42LS4zLS44LS4xLTEuMSAuNi0xLjQgLjEgMCA5NS41LTM1LjggMTAzLTM4LjgtNjUuNC0zNy42LTEzMC42LTc1LTE5Ni0xMTIuNmw4Ni44IDE1MC40LS4zIC4zYy05LjYtLjktMTAuNS0xLjYtMTEuOC0zLjktMS0xLjctNzMuNS0xMjcuNy04Mi0xNDIuMi05LjEgMTQuNy04My42IDE0Ni4yLTg1LjQgMTQ2LjMtMi45IC4yLTUuOSAuMS05LjIgLjEgMjguOC00OS44IDU3LjYtOTkuNSA4Ni4yLTE0OWwwIDB6bTUxLjkgMTI5LjljMS45LS4xIDMuNy0uNCA1LjUtLjggMS43LS4zIDIuNSAuMiAyLjYgMS45IDAgLjEgLjEgMTkuMS0uOSAyMC41cy0xLjkgMS4yLTIuNi0uMmMtNS05LjcgNi4yLTkuNy0zOS4xLTEyLS43IDAtMSAuMi0xIC45IDAgLjEgMy43IDEyMiAzLjcgMTIyLjEgMCAuOSAuNSAxLjIgMS4yIDEuNSAzIDEuMiA1LjkgMi41IDguNyA0IDcuMyA0LjMgMTEuNCAxMC44IDEyLjQgMTkuMyAxLjQgMTEuOC0yLjggMzUuOC0zMi4yIDM3LjEtMi44IC4xLTI4LjMgMS4xLTM0LjEtMjMuMy00LjctMTkuMyA4LjMtMzIuNyAxOS45LTM2LjQgLjYtLjEgMS4yLS40IDEuNS0uOXMuNS0xLjEgLjUtMS43Yy4xLTUuNiAzLTEwNy4xIDMuNy0xMjEuMyAwLTEuMS0uNi0xLjItMS40LTEuMS0zMi4zIC41LTM2LjctLjMtNDAuMiA4LjUtMi40IDYuMi00LjEgMS4zLTQgLjIgMS4xLTYgMi4yLTEyIDMuMy0xOCAuNC0yLjEgMS40LTIuNiAzLjQtMS45IDUuNiAyLjEgNi43IDEuNyAzNy4yIDEuOSAxLjcgMCAxLjgtLjEgMS44LTEuOCAuNy0yNy41IC42LTIyLjYgMS0yOS42IC4xLS42LS4xLTEuMi0uMy0xLjdzLS43LS45LTEuMy0xLjFjLTUuNi0yLjktOC44LTcuNi04LjktMTMuOS0uNC0xNC44IDE3LjctMjEuNyAyNy40LTExLjUgNi44IDcuMiA1LjggMTguOS0yLjUgMjQuMi0uOCAuNC0xLjQgMS4xLTEuOCAxLjhzLS42IDEuNi0uNCAyLjVjMCAuNi0uMS00LjMgMSAzMCAwIC45IC40IDEuMSAxLjIgMS4xIC4xIDAgMjMtLjEgMzQuNS0uNGwwLS4xek02OC4zIDE0MS43YzE5LjgtNC41IDMyLjctLjYgNTIuNSAxLjcgMi44IC4zIDMuNyAxLjIgMy42IDQtLjIgNS0xLjIgMjIuMy0xLjIgMjMuMSAwIC41LS4yIDEtLjUgMS40cy0uNyAuNy0xLjIgLjljLTQuMSAxLjctMy42LTQuNC00LTcuMy0zLjEtMjIuNC03My45LTMyLjctNzQuNiAyNS40LS4zIDIzLjkgMTcgNTMuNiA1NC4xIDUwLjkgMjcuMi0yIDE5LTIwLjIgMjQuOC0yMC41IC40LS4xIC45IDAgMS4zIC4xcy44IC40IDEuMSAuNyAuNSAuNyAuNiAxLjIgLjEgLjkgMCAxLjNjLTEuOCAxMC44LTMuNCAxOS0zLjQgMTkuMi0xLjUgOS4yLTg2LjcgMjIuMS05My40LTQyLjEtMi43LTI1LjggMTAuNC01My40IDQwLjMtNjAuMnptODAgODcuN2wtMTkuNSAwYy0uNiAwLTEuMi0uMS0xLjYtLjRzLS44LS44LTEtMS40YzIuNC0zLjggNS45IC45IDUuOS02LjEtLjEtMjUuOCAuMi0zOCAuMi00MC4xIDAtMy40LS41LTQuNi0zLjMtNC45LTctLjctMy4xLTMuNC0xLjEtMy40IDExLjgtLjEgMjIuNi0uMiAzMCAuNyA4LjggMS4xIDE2LjcgMTIuNiA3LjkgMjIuNi0yIDIuMi00IDQuNC02LjEgNi43IDEgMS4yIDYuOSA4LjggMTcuMyAxOS43IDIuNyAyLjggNi4yIDMuNSA5LjkgMy4xIC42IDAgMS4xLS4yIDEuNS0uNnMuNy0uOSAuNy0xLjVjLjMtMy40IC4zIDQuNyAuNC00MC42IDAtNS42LS4zLTYuNi0zLjItNi44LTQtLjQtNC0yLjMtLjctMy40bDE5LjEtLjFjLjMgMCA0LjUgLjUgMSAzLjQgMCAwLS4yIDAtLjIgMC0zLjYgLjMtMy45IDEtNCA0LjYtLjMgNDMuOSAuMSA0MC4yIC40IDQyLjggLjEgLjggLjMgMi4yIDUuMSAyLjEgMi41IDAgMy45IDMuNCAwIDMuNC0xMC40IC4xLTIwLjcgMC0zMS4xIC4xLTEwLjcgMC0xMy41LTYuMi0yNC4yLTIwLjgtMS42LTIuMi04LjMtMi40LTguMi0uNCAuOSAxNi41IDAgMTcuOCA0IDE3LjcgNC44LS4xIDQuNyAzLjYgLjggMy41bC4xIDB6bTI3NS0xMC4xYy0xLjIgNy4xIC4yIDEwLjQtNS4zIDEwLjMtNjEuNS0uNC00Ny44LS4yLTUwLjctLjMtMS4yLS4xLTIuNC0uNC0zLjYtLjctMi41LS42IDEuNS0xLjItLjQtNS42LTEuNC0zLjQtMi44LTYuOC00LjEtMTAuMi0uMS0uNC0uNC0uOC0uNy0xLjFzLS44LS40LTEuMy0uNGMtNC45LS4yLTkuNy0uMi0xNC42IC4xLS4zIDAtLjYgLjItLjkgLjNzLS41IC40LS43IC43Yy0xLjYgMy42LTMuMSA3LjMtNC41IDExLTEuMyAzLjIgNy45IDEuMyAxMi4yIDIuMiAzIC42IDQuNSAzLjcgLjcgMy43bC0yNi40IDBjLTIuOSAwLTMuMS0zLjItLjctMy4yIDEuMiAuMSAyLjQtLjIgMy41LS45czEuOS0xLjUgMi40LTIuNmMxLjUtMyAyLjgtNiA0LjEtOS4xIDE4LjItNDIuMSAxNy4xLTQwLjIgMTguNC00MS42IC4yLS4yIC40LS40IC43LS42cy42LS4yIC44LS4yIC42IC4xIC44IC4yIC41IC4zIC43IC42YzIuOSAzLjMgMTguNCA0NC43IDIzLjYgNTEuOSAyIDIuNyA1LjcgMiA2LjQgMiAzLjYgLjEgNC0xLjEgNC4xLTQuMyAuMS0xLjkgLjEgMS4yIC4xLTQxLjIgMC00LjUtMi40LTMuNy01LjYtNC4zLS4zIDAtMi42LS42LS4xLTMuMSAuMi0uMi0uOS0uMiAyMS43LS4yIDIuMyAwIDUuMyAyLjgtMS4yIDMuNC0uNCAwLS43IDAtMS4xIC4ycy0uNiAuMy0uOSAuNi0uNCAuNi0uNiAuOS0uMiAuNy0uMSAxLjFjLS4xIDEuNi0uMiAzOC45IC4zIDQxLjIgLjIgLjcgLjYgMS40IDEuMiAxLjhzMS4zIC43IDIuMSAuNmMxMy4zIC40IDE0LjkgLjQgMTYtMy40IDEuNy01LjggNC4xLTIuNSAzLjctLjJsMCAuMXpNMzE4LjYgMjgzLjZjLTQuMiAwLTQuNC0zLjQtLjYtMy40IDM1LjktLjIgMjguMSAuNCAzNy4yLS42IDEuNy0uMiAyLjQgLjIgMi4zIDEuOS0uMyAzLjQtLjYgNi44LTEgMTAuMi0uMiAyLjItMy4yIDIuNi0zLjQtLjItLjQtNS4zLTIuMi00LjUtMTUuNi01LjEtMS42LS4xLTEuNiAwLTEuNiAxLjVsMCAxNi4xYzAgMS43IDAgMS42IDEuNiAxLjUgMy4xLS4yIDEwLjMgLjMgMTUuNy0xLjUgLjUtLjIgMy4zLTEuOCAzLjEgMS44IDAgLjItLjggMTAuNC0xLjIgMTEuNC0uNSAxLjMtMS45IDEuNS0yLjYgLjMtMS4yLTIgMC01LjEtMy43LTUuMy0xNS40LS45LTEyLjktMi41LTEyLjkgNiAwIDEyLjMtLjggMTYuMSAzLjkgMTYuMiAxNi42IC41IDE0LjQgMCAxNi40LTUuNyAuOC0yLjQgMy41LTEuOCAzLjIgLjYtLjQgMy4yLS44IDYuNC0xLjIgOS42IDAgLjQtLjIgMi40LTQuNyAyLjQtMzcuMi0uMS0zNC41LS4yLTM1LjItLjMtMi43LS41LTIuMi0zIC4yLTMuNCAxLjEtLjIgNCAuNSA0LjItMi42IDIuNC01Ni4yLS4xLTUxLjMtMy45LTUxLjNsMCAwem0tLjQtMTA5LjVjMi41IC42IDMuMSAxLjggMyA0LjYtLjMgNS4zLS4zIDktLjYgOS43LS43IDIuMi0zLjEgMi4xLTMuMy0uMy0uNC00LjgtMy03LjgtNy42LTkuMS0yNi4zLTcuNy0zMi44IDE1LjUtMjcuMiAzMC4yIDUuOSAxNS40IDIyIDE1LjkgMjguOSAxMy44IDUuOS0xLjkgNS45LTYuNSA2LjktNy42IDEuMi0xLjMgMi4yLTEuOCAzLjEgMS4xIDAgLjEgLjYgMTEuOS02IDEyLjctMS42IC4yLTE5LjQgMy43LTMyLjctMy40LTIxLTExLjItMTYuNy0zNS41LTYuOS00NS4zIDE0LTE0LjEgMzkuOS03LjEgNDIuMy02LjVsMCAwek0yODkuOCAyODAuMWMzLjMgMCAzLjcgMyAuMiAzLjQtMi42IC4zLTUtLjQtNSA1LjUgMCAyLS4yIDI5IC40IDQxLjQgLjEgMi4zIDEuMiAzLjUgMy40IDMuNyAyMiAxLjIgMTUtMS43IDE4LjgtNi4zIDEuOC0yLjIgMi44IC44IDIuOCAxLjEgLjMgMTMuNi00IDEyLjQtNS4yIDEyLjRsLTM4LjItLjJjLTEuOS0uMi0yLjEtMy0uNC0zLjQgMi0uNSA0LjkgLjQgNS4xLTIuOCAxLTE1LjkgLjYtNDQuNiAuMy00Ny44LS4zLTMuOC0yLjgtMy4zLTUuNy0zLjctMi41LS40LTItMy4yIC4zLTMuMiAxLjQgMCAxOCAwIDIzLjEgMHptLTMxLjYtNTcuOGMuMSA0LjEgMi45IDMuNSA2IDMuNiAyLjYgLjEgMi41IDMuNC0uMSAzLjQtNi41IDAtMTMuNyAwLTIxLjYtLjEtMy44IDAtMy40LTMuNCAwLTMuNCA0LjUgMCAzLjIgMS42IDMuNC00NS41IDAtNS4xLTMuMy0zLjUtNC43LTQuMi0yLjYtMS4yLTEuNC0zLjEgLjQtMy4yIDEuMyAwIDIwLjItLjQgMjEuMiAuMnMxLjkgMS42LS40IDIuOWMtMSAuNS0zLjktLjMtNC4yIDIuNSAwIC4yLS44IDEuNi0uMSA0My44bDAgMHpNMjIxLjMgNDk2LjZjLjUgLjMgMSAuNSAxLjYgLjVzMS4xLS4yIDEuNi0uNWMxNy05LjggMTgyLTEwMy42IDE5Ny40LTExMi41LS4xLS40IDExLjMtLjItMTgxLjUtLjMtMS4yIDAtMS42IC40LTEuNSAxLjYgMCAuMSAxLjMgNDQuNSAxLjIgNTAuNC0uMSAyLjYtLjYgNS4yLTEuNCA3LjctLjYgMS44IC40LS41LTEzLjUgMzIuMi0uNyAxLjctMSAyLjItMi0uMS00LjItMTAuMy04LjMtMjAuNy0xMi42LTMxLTEuNS0zLjQtMi4yLTcuMS0yLTEwLjggLjItMi41IC44LTE2LjEgMS41LTQ4IDAtMS45IDAtMi0yLTJsLTE4MyAwYzIuNiAxLjYgMTc4LjMgMTAyLjYgMTk2IDExMi44bC4xIDB6TTEzMC40IDMwNy45YzAgMi40IC40IDIuOCAyLjggMyAxMS41IDEuMiAyMSAzLjcgMjUuNi03LjMgNi0xNC41IDIuNy0zNC40LTEyLjUtMzguOC0yLS42LTE2LTIuOC0xNS45IDEuNSAwIDggMCAxMS42IDAgNDEuNnptMTA1LjgtMTVjMCAyLjEgMS4xIDM4LjcgMS4xIDM5LjEgLjMgOS45LTI1LjYgNS44LTI1LjItMi42IC4xLTIgMS40LTM3LjQgMS4xLTM5LjQtMTQuMSA3LjQtMTQuNCA0MC4yIDYuNCA0OC44IDQgMS43IDguNCAxLjkgMTIuNSAuNnM3LjYtNCA5LjktNy43YzQuOS03LjggNi44LTI5LjUtNS40LTM5LS4xIC4xLS4yIC4xLS40IC4xbDAgMHptLTEyLjMtMTk4Yy05LjggMC05LjcgMTQuOC0uMSAxNC45czEwLjEtMTQuOSAuMS0xNC45bDAgMHpNMTQzLjcgMTk4LjZjMCAxLjggLjQgMi40IDIuMiAyLjYgMTMuNiAxLjQgMTIuNS0xMSAxMi4yLTEzLjQtMS43LTExLjItMTQuNC0xMC4yLTE0LjQtNy44IDAgNC41IDAgMTMuNyAwIDE4LjZ6TTM1NiAyMDVsLTYuMS0xNS44Yy0yLjIgNS41LTQuMiAxMC42LTYuMiAxNS44bDEyLjMgMHpcIl1cbn07XG52YXIgZmFTdGVhbVN5bWJvbCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzdGVhbS1zeW1ib2wnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzZjZcIiwgXCJNMjczLjUgMTc3LjVhNjEgNjEgMCAxIDEgMTIyIDAgNjEgNjEgMCAxIDEgLTEyMiAwem0xNzQuNSAuMmMwIDYzLTUxIDExMy44LTExMy43IDExMy44TDIyNSAzNzEuM2MtNCA0My00MC41IDc2LjgtODQuNSA3Ni44LTQwLjUgMC03NC43LTI4LjgtODMtNjdMMCAzNTggMCAyNTAuNyA5Ny4yIDI5MGMxNS4xLTkuMiAzMi4yLTEzLjMgNTItMTEuNWw3MS0xMDEuN0MyMjAuNyAxMTQuNSAyNzEuNyA2NCAzMzQuMiA2NCAzOTcgNjQgNDQ4IDExNSA0NDggMTc3Ljd6TTIwMyAzNjNjMC0zNC43LTI3LjgtNjIuNS02Mi41LTYyLjUtNC41IDAtOSAuNS0xMy41IDEuNWwyNiAxMC41YzI1LjUgMTAuMiAzOCAzOSAyNy43IDY0LjUtMTAuMiAyNS41LTM5LjIgMzgtNjQuNyAyNy41LTEwLjItNC0yMC41LTguMy0zMC43LTEyLjIgMTAuNSAxOS43IDMxLjIgMzMuMiA1NS4yIDMzLjIgMzQuNyAwIDYyLjUtMjcuOCA2Mi41LTYyLjV6TTQxMC41IDE3Ny43YTc2LjQgNzYuNCAwIDEgMCAtMTUyLjggMCA3Ni40IDc2LjQgMCAxIDAgMTUyLjggMHpcIl1cbn07XG52YXIgZmFNYWlsY2hpbXAgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnbWFpbGNoaW1wJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTllXCIsIFwiTTMzMSAyNDMuNWMzLjEtLjQgNi4yLS40IDkuMyAwIDEuNy0zLjggMi0xMC40IC41LTE3LjYtMi4yLTEwLjctNS4zLTE3LjEtMTEuNS0xNi4xcy02LjUgOC43LTQuMiAxOS40YzEuMyA2IDMuNSAxMS4xIDYgMTQuM2wwIDB6TTI3Ny40IDI1MmM0LjUgMiA3LjIgMy4zIDguMyAyLjEgMS45LTEuOS0zLjUtOS40LTEyLjEtMTMuMS01LTIuMS0xMC40LTIuOC0xNS44LTIuMnMtMTAuNSAyLjctMTQuOCA1LjhjLTMgMi4yLTUuOCA1LjItNS40IDcuMSAuOSAzLjcgMTAtMi43IDIyLjYtMy41IDctLjQgMTIuOCAxLjggMTcuMyAzLjdsMCAwem0tOSA1LjFjLTkuMSAxLjQtMTUgNi41LTEzLjUgMTAuMSAuOSAuMyAxLjIgLjggNS4yLS44IDYtMi4zIDEyLjQtMi45IDE4LjctMS45IDIuOSAuMyA0LjMgLjUgNC45LS41IDEuNS0yLjItNS43LTgtMTUuNC02LjlsMCAwem01NC4yIDE3LjFjMy40LTYuOS0xMC45LTEzLjktMTQuMy03czEwLjkgMTMuOSAxNC4zIDdsMCAwem0xNS43LTIwLjVjLTcuNy0uMS04IDE1LjgtLjMgMTUuOXM4LTE1LjggLjMtMTZsMCAwek0xMTkuNSAzMzIuN2MtMS4zIC4zLTYgMS41LTguNS0yLjMtNS4yLTggMTEuMS0yMC40IDMtMzUuOC05LjEtMTcuNS0yNy44LTEzLjUtMzUtNS41LTguNyA5LjYtOC43IDIzLjUtNSAyNC4xIDQuMyAuNiA0LjEtNi41IDcuNC0xMS42IC45LTEuNCAyLjEtMi42IDMuNS0zLjZzMy0xLjYgNC42LTIgMy40LS40IDUgMCAzLjMgMSA0LjcgMS45YzExLjYgNy42IDEuNCAxNy44IDIuMyAyOC42IDEuNCAxNi43IDE4LjQgMTYuNCAyMS42IDkgLjItLjQgLjMtLjggLjMtMS4ycy0uMi0uOC0uNS0xLjFjMCAuOSAuNy0xLjMtMy40LS40bDAgMHptMjk5LjctMTcuMWMtMy4zLTExLjctMi42LTkuMi02LjgtMjAuNSAyLjQtMy43IDE1LjMtMjQtMy4xLTQzLjMtMTAuNC0xMC45LTMzLjktMTYuNS00MS4xLTE4LjUtMS41LTExLjQgNC42LTU4LjctMjEuNS04MyAyMC44LTIxLjYgMzMuOC00NS4zIDMzLjctNjUuNy0uMS0zOS4yLTQ4LjItNTEtMTA3LjQtMjYuNWwtMTIuNSA1LjNjLS4xIDAtMjIuNy0yMi4zLTIzLjEtMjIuNi02Ny41LTU4LjktMjc4LjggMTc1LjktMjExLjMgMjMyLjlsMTQuOCAxMi41Yy00IDEwLjctNS40IDIyLjItNC4xIDMzLjUgMy40IDMzLjQgMzYgNjAuNCA2Ny41IDYwLjQgNTcuNyAxMzMuMSAyNjcuOSAxMzMuMyAzMjIuMyAzIDEuNy00LjUgOS4xLTI0LjYgOS4xLTQyLjRzLTEwLjEtMjUuMy0xNi41LTI1LjNsMCAwem0tMzE2IDQ4LjJjLTIyLjgtLjYtNDcuNS0yMS4xLTQ5LjktNDUuNS02LjItNjEuMyA3NC4zLTc1LjMgODQtMTIuMyA0LjUgMjkuNi00LjcgNTguNS0zNC4xIDU3LjhsMCAwek04NC43IDI0OS42Yy0xNS4yIDMtMjguNSAxMS41LTM2LjcgMjMuNS00LjktNC4xLTE0LTEyLTE1LjYtMTUtMTMtMjQuOCAxNC4yLTczIDMzLjMtMTAwLjIgNDcuMS02Ny4yIDEyMC45LTExOC4xIDE1NS0xMDguOSA1LjUgMS42IDIzLjkgMjIuOSAyMy45IDIyLjlzLTM0LjEgMTguOS02NS44IDQ1LjNDMTM2LjIgMTUwIDEwNCAxOTcuNyA4NC43IDI0OS42ek0zMjMuNiAzNTAuN3MtMzUuNyA1LjMtNjkuNS03LjFjNi4yLTIwLjIgMjcgNi4xIDk2LjQtMTMuOCAxNS4zLTQuNCAzNS40LTEzIDUxLTI1LjQgMy40IDcuOCA1LjggMTUuOSA3LjEgMjQuMyAzLjctLjcgMTQuMi0uNSAxMS40IDE4LjEtMy4zIDE5LjktMTEuNyAzNi0yNS45IDUwLjgtOC45IDkuNi0xOS40IDE3LjUtMzEuMiAyMy4zLTYuNSAzLjQtMTMuMyA2LjMtMjAuMyA4LjYtNTMuNSAxNy41LTEwOC4zLTEuNy0xMjYtNDMtMS40LTMuMS0yLjYtNi40LTMuNi05LjctNy41LTI3LjItMS4xLTU5LjggMTguOC04MC40IDEuMi0xLjMgMi41LTIuOSAyLjUtNC44LS4yLTEuNy0uOC0zLjMtMS45LTQuNS03LTEwLjEtMzEuMi0yNy40LTI2LjMtNjAuOCAzLjUtMjQgMjQuNS00MC45IDQ0LjEtMzkuOWw1IC4zYzguNSAuNSAxNS45IDEuNiAyMi45IDEuOSAxMS43IC41IDIyLjItMS4yIDM0LjYtMTEuNiA0LjItMy41IDcuNi02LjUgMTMuMy03LjUgMi4zLS42IDQuNy0uNyA3LS4zczQuNiAxLjIgNi42IDIuNWMxMCA2LjYgMTEuNCAyMi43IDExLjkgMzQuNSAuMyA2LjcgMS4xIDIzIDEuNCAyNy42IC42IDEwLjcgMy40IDEyLjIgOS4xIDE0IDMuMiAxIDYuMiAxLjggMTAuNSAzLjEgMTMuMiAzLjcgMjEgNy41IDI2IDEyLjMgMi41IDIuNSA0LjIgNS44IDQuNyA5LjMgMS42IDExLjQtOC44IDI1LjQtMzYuMyAzOC4yLTQ2LjcgMjEuNy05My43IDE0LjQtMTAwLjUgMTMuNy0yMC4yLTIuNy0zMS42IDIzLjMtMTkuNSA0MS4xIDIyLjYgMzMuNCAxMjIuNCAyMCAxNTEuNC0yMS40IC43LTEgLjEtMS42LS43LTEtNDEuOCAyOC42LTk3LjEgMzguMi0xMjguNSAyNi00LjgtMS44LTE0LjctNi40LTE1LjktMTYuNyA0My42IDEzLjUgNzEgLjcgNzEgLjdzMi0yLjgtLjYtMi41ek0xNzEuNyAxNTcuNWMxNi43LTE5LjQgMzcuNC0zNi4yIDU1LjgtNDUuNiAuMS0uMSAuMy0uMSAuNS0uMXMuMyAuMSAuNCAuMiAuMiAuMyAuMiAuNCAwIC4zLS4xIC41Yy0xLjUgMi43LTQuMyA4LjMtNS4yIDEyLjcgMCAuMSAwIC4zIDAgLjRzLjIgLjMgLjMgLjQgLjMgLjEgLjQgLjEgLjMgMCAuNC0uMWMxMS41LTcuOCAzMS41LTE2LjIgNDktMTcuMyAuMiAwIC4zIDAgLjUgLjFzLjIgLjIgLjMgLjQgLjEgLjMgMCAuNS0uMSAuMy0uMyAuNGMtMi45IDIuMi01LjUgNC44LTcuNyA3LjctLjEgLjEtLjEgLjItLjEgLjRzMCAuMyAuMSAuNCAuMiAuMiAuMyAuMyAuMiAuMSAuNCAuMWMxMi4zIC4xIDI5LjcgNC40IDQxIDEwLjcgLjggLjQgLjIgMS45LS42IDEuNy02OS41LTE1LjktMTIzLjEgMTguNS0xMzQuNSAyNi44LS4yIC4xLS4zIC4xLS41IC4xcy0uMy0uMS0uNS0uMi0uMi0uMy0uMi0uNSAuMS0uNCAuMi0uNWwtLjEgMHpcIl1cbn07XG52YXIgZmFMdW1vbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdsdW1vbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTdlMlwiLCBcIk00NTIuNSAyMjMuNWM5LjggMCAxNi41IDYuMyAxNi41IDE2LjZsMCAzMS44YzAgMTAuMy02LjYgMTYuNi0xNi42IDE2LjZsLTU2LjIgMGMtOS44IDAtMTYuNS02LjMtMTYuNS0xNi42bDAtMzEuOGMwLTEwLjMgNi43LTE2LjYgMTYuNS0xNi42bDU2LjMgMHptLTI1LjcgMTMuMWMtMS41LTIuNi0zLjItMi42LTQuNiAwbC0xMC43IDE3LjZjLTEuNyAyLjQtMi42IDUuMS0yLjYgOC4yIDAgNy45IDYuOSAxNC42IDE1LjYgMTQuNiA4LjUgMCAxNS42LTYuNyAxNS42LTE0LjYgMC0zLTEtNS44LTIuNy04LjJsLTEwLjctMTcuNnpNODUuOCAyMjMuOGMxIDAgMS41IC42IDEuNSAxLjVsMCA1MC4zIDY0LjYgMGMxIDAgMS42IC42IDEuNiAxLjVsMCA5LjdjMCAuOS0uNiAxLjUtMS42IDEuNWwtNzguNCAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTIuMyAwem04OC4zIDBjMSAwIDEuNSAuNiAxLjUgMS41bDAgNDVjMCA0IDIgNS4yIDUuNyA1LjJsNDYuOSAwYzMuOCAwIDUuNy0xLjMgNS43LTUuMmwwLTQ1YzAtLjkgLjUtMS41IDEuNS0xLjVsMTIuMyAwYzEgMCAxLjYgLjYgMS42IDEuNWwwIDQ2YzAgMTAuNS01LjMgMTYuOC0xNy42IDE2LjhsLTU0IDBjLTEyLjMgMC0xNy42LTYuMy0xNy42LTE2LjhsMC00NmMwLS45IC42LTEuNSAxLjYtMS41bDEyLjMgMHptMTA4LjIgMGMxIDAgMS42IC41IDIuMiAxLjRsMzAuNSA0Ni40IDEuNCAwIDMwLjUtNDYuNGMuNi0uOSAxLjItMS40IDIuMi0xLjRsMTggMGMxIDAgMS41IC42IDEuNSAxLjVsMCA2MS40YzAgLjktLjUgMS41LTEuNSAxLjVsLTEyLjMgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNDMuOC0xLjEgMC0yOC43IDQzLjhjLS42IC45LTEuMyAxLjUtMi40IDEuNWwtMTAuNyAwYy0xIDAtMS43LS42LTIuMy0xLjVsLTI4LjctNDMuOC0xLjEgMCAwIDQzLjhjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTcuOSAwem0yMTQuNCAwYy45IDAgMS4zIC40IDIuMiAxLjFsNTIuNyA0Ni4zIDEuMyAwIDAtNDZjMC0uOSAuNi0xLjUgMS42LTEuNWwxMi4zIDBjMSAwIDEuNiAuNiAxLjYgMS41bDAgNjEuNGMwIC45LS42IDEuNS0xLjYgMS41bC0xNC40IDBjLTEgMC0xLjQtLjQtMi4zLTEuMWwtNTIuNi00Ni4zLTEuNCAwIDAgNDZjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTQuNCAwek0zMjAgMTE0LjFjODcuOSAwIDE2Ny43IDE1LjcgMjI1LjUgNDFsMi43IDEuMkM1ODcuMSAxNzMuOCA2NDAgMjA2LjUgNjQwIDI1NnMtNTIuOSA4Mi4yLTkxLjggOTkuNmwtMi43IDEuMmMtNTcuOCAyNS40LTEzNy42IDQxLTIyNS41IDQxLTc2LjIgMC0xNTUuMS0xMC41LTIyNS41LTQxLTM5LjYtMTcuNC05NC41LTUwLjMtOTQuNS0xMDAuOHM1NC45LTgzLjUgOTQuNS0xMDAuOGM3MC40LTMwLjUgMTQ5LjMtNDEgMjI1LjUtNDF6bS04OC45IDIyOWMyMC4zIDI5IDUyLjggNDkuNiA4OC45IDQ5LjYgMzYuMiAwIDY4LjctMjAuNiA4OS00OS43bC0xNzcuOSAuMXptLTk2LjEgMGM0My4zIDI5LjcgOTYuNyA0My41IDE0OC40IDQ4LTI0LjItOS4xLTQ0LjQtMjYuNy01OC42LTQ4LjFsLTg5LjkgMHptMjgwLjMtLjFjLTE0LjIgMjEuNC0zNC40IDM5LjEtNTguNiA0OC4xIDUxLjgtNC41IDEwNS4zLTE4LjMgMTQ4LjYtNDguMmwtOTAgMHptLTMzNy40IC4xYzQ0LjEgMjMuMSA5My43IDM1LjQgMTQyLjcgNDIuNi0zMy40LTguNi02Ni41LTIxLjktOTQuNC00Mi42bC00OC4zIDB6bTQzNi4yLS4yYy0yNy45IDIwLjgtNjEuMSAzNC4yLTk0LjYgNDIuOCA0Ny4zLTYuOSA4OS42LTE4LjUgMTIzLjktMzMuNmwxLjctLjhjNi4xLTIuNyAxMS45LTUuNSAxNy40LTguNGwtNDguNSAwek01MjAgMTczLjZjMTAuNyA4LjcgMTkuOCAxOC4xIDI3IDI4LjIgLjQgLjYgLjUgMS4zIC4xIDJzLTEgMS0xLjcgMWwtMS42IDBjLS42IDAtMS4yLS4zLTEuNS0uOC03LjktMTAuOS0xOC4yLTIxLjEtMzAuNi0zMC40bC05My41IDBjNS40IDguOCA5LjkgMTguNSAxMy40IDI4LjYgLjIgLjYgLjEgMS4yLS4yIDEuN3MtLjkgLjgtMS42IC44bC0xLjQgMGMtLjggMC0xLjUtLjUtMS44LTEuMy0zLjgtMTAuNy04LjctMjAuOC0xNC41LTI5LjlsLTE4NC4zIC4xYy01LjggOS4xLTEwLjcgMTkuMS0xNC40IDI5LjgtLjMgLjgtMSAxLjMtMS44IDEuM2wtMS40IDBjLS42IDAtMS4yLS4zLTEuNi0uOHMtLjUtMS4xLS4yLTEuN2MzLjUtMTAuMiA4LTE5LjcgMTMuNC0yOC42bC05My42IDBjLTEyLjMgOS4zLTIyLjYgMTkuNC0zMC40IDMwLjMtLjQgLjUtLjkgLjgtMS41IC44bC0xLjYgMGMtLjcgMC0xLjQtLjQtMS43LTFzLS4zLTEuNCAuMS0yYzcuNi0xMC41IDE2LjctMTkuOSAyNi44LTI4bC01MSAwYy0yOC45IDE2LjYtNjIgNDMuMy02My41IDc5LjdsNDQuNyAwYy41IDAgMSAuMiAxLjMgLjZzLjYgLjggLjYgMS4zbDAgMS4zYzAgMS4xLS45IDEuOS0xLjkgMS45bC00NC43IDBDNi44IDI5NSA0MCAzMjEuNyA2OSAzMzguM2w1MC45IDBjLTEwLjMtOC40LTE5LjEtMTcuNC0yNi4xLTI3bC0uOC0xLjFjLS40LS42LS41LTEuMy0uMS0yczEtMSAxLjctMWwxLjYgMCAuMiAwYy41IC4xIDEgLjMgMS4zIC44IDcuOSAxMC45IDE4LjEgMjEgMzAuNSAzMC4zbDkzLjYgMGMtNS4zLTguOC05LjgtMTguNC0xMy40LTI4LjUtLjItLjYtLjEtMS4yIC4yLTEuN3MuOS0uOCAxLjYtLjhsMS40IDAgLjIgMGMuNyAuMSAxLjQgLjYgMS43IDEuMyAzLjggMTAuNyA4LjYgMjAuNyAxNC40IDI5LjhsMTg0LjUtLjFjNS44LTkuMSAxMC42LTE5LjEgMTQuNC0yOS43bC4xLS4xYy4zLS43IDEtMS4xIDEuNy0xLjFsMS40IDBjLjYgMCAxLjIgLjMgMS42IC44cy41IDEuMiAuMiAxLjdjLTMuNSAxMC4xLTggMTkuNy0xMy4zIDI4LjVsOTMuNyAwYzEyLjMtOS4zIDIyLjUtMTkuNCAzMC4zLTMwLjJsLjEtLjJjLjQtLjQgLjktLjYgMS40LS42bDEuNiAwYy43IDAgMS40IC40IDEuNyAxcy4zIDEuNC0uMSAyYy03LjEgMTAtMTYuMSAxOS4zLTI2LjcgMjcuOWw1MS4xIDBjMjguOC0xNi42IDYxLjgtNDMuMyA2My40LTc5LjZsLTQ0LjcgMGMtMSAwLTEuOS0uOS0xLjktMS45bDAtMS4zYzAtMS4xIC45LTEuOSAxLjktMS45bDQ0LjcgMGMtMS42LTM2LjUtMzQuOS02My4zLTYzLjktNzkuOWwtNTAuOSAwek0yMjAuNSAxMjYuMmMtNDkuMSA3LjEtOTguNyAxOS41LTE0MyA0Mi43bDQ4LjQgMGMyNy45LTIwLjggNjEtMzQuMSA5NC41LTQyLjd6bTYyLjgtNS40Yy01MS44IDQuNS0xMDUuMiAxOC4zLTE0OC42IDQ4LjFsOTAgMGMxNC4yLTIxLjQgMzQuNC0zOSA1OC42LTQ4LjF6bTM2LjYtMS42Yy0zNi4yIDAtNjguNyAyMC42LTg5IDQ5LjdsMTc3LjktLjFjLTIwLjMtMjkuMS01Mi43LTQ5LjYtODguOS00OS42em0zNi42IDEuNmMyNC4yIDkuMSA0NC40IDI2LjYgNTguNSA0OGw4OS44IDBjLTQzLjMtMjkuNy05Ni42LTQzLjUtMTQ4LjMtNDh6bTYyLjggNS40YzMzLjQgOC41IDY2LjQgMjEuOSA5NC4zIDQyLjVsNDguMyAwYy00NC4xLTIzLjEtOTMuNi0zNS40LTE0Mi42LTQyLjV6XCJdXG59O1xudmFyIGZhTnV0cml0aW9uaXggPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnbnV0cml0aW9uaXgnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzZDZcIiwgXCJNMTEyIDguMVMyNDUuNC0uMSAyMzMgMTEyLjVjMCAwIDE5LjEtNzQuOSAxMDMtNDAuNiAwIDAtMTcuNyA3NC04OCA1NiAwIDAgMTQuNi01NC42IDY2LjEtNTYuNiAwIDAtMzkuOS0xMC4zLTgyLjEgNDguOCAwIDAtMTkuOC05NC41LTkzLjYtOTkuNyAwIDAgNzUuMiAxOS40IDc3LjYgMTA3LjUgMCAuMS0xMDYuNCA3LTEwNC0xMTkuOHpNNDI0IDMyMy43YzAgNDguNS05LjcgOTUuMy0zMiAxMzIuMy00Mi4yIDMwLjktMTA1IDQ4LTE2OCA0OC02Mi45IDAtMTI1LjgtMTcuMS0xNjgtNDgtMjIuMy0zNy0zMi04My44LTMyLTEzMi4zIDAtNDguNCAxNy43LTk0LjcgNDAtMTMxLjcgNDIuMi0zMC45IDk3LjEtNDguNiAxNjAtNDguNiA2MyAwIDExNy44IDE3LjYgMTYwIDQ4LjYgMjIuMyAzNyA0MCA4My4zIDQwIDEzMS43ek0xNDQgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMjE2IDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTI4OCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0zNjAgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMzg0IDI1NmMtNC44LTIyLjMtNy40LTM2LjktMTYtNTYtMzguOC0xOS45LTkwLjUtMzItMTQ0LTMyUzExOC44IDE4MC4xIDgwIDIwMGMtOC44IDE5LjUtMTEuMiAzMy45LTE2IDU2IDQyLjItNy45IDk4LjctMTQuOCAxNjAtMTQuOHMxMTcuOCA2LjkgMTYwIDE0Ljh6XCJdXG59O1xudmFyIGZhQ3JlYXRpdmVDb21tb25zU2FtcGxpbmdQbHVzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmctcGx1cycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjRmMVwiLCBcIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwNyAyMDUuNmMtNC43IDAtOSAyLjgtMTAuNyA3LjJsLTQgOS41LTExLTkyLjhjLTEuNy0xMy45LTIyLTEzLjQtMjMuMSAuNGwtNC4zIDUxLjQtNS4yLTY4LjhjLTEuMS0xNC4zLTIyLjEtMTQuMi0yMy4yIDBsLTMuNSA0NC45LTUuOS05NC4zYy0uOS0xNC41LTIyLjMtMTQuNC0yMy4yIDBsLTUuMSA4My43LTQuMy02Ni4zYy0uOS0xNC40LTIyLjItMTQuNC0yMy4yIDBsLTUuMyA4MC4yLTQuMS01N2MtMS4xLTE0LjMtMjItMTQuMy0yMy4yLS4ybC03LjcgODkuOC0xLjgtMTIuMmMtMS43LTExLjQtMTcuMS0xMy42LTIyLTMuM2wtMTMuMiAyNy43LTQzLjkgMCAwIDIzLjIgNTEuMyAwYzQuNCAwIDguNC0yLjUgMTAuNC02LjRsMTAuNyA3My4xYzIgMTMuNSAyMS45IDEzIDIzLjEtLjdsMy44LTQzLjYgNS43IDc4LjNjMS4xIDE0LjQgMjIuMyAxNC4yIDIzLjItLjFsNC42LTcwLjQgNC44IDczLjNjLjkgMTQuNCAyMi4zIDE0LjQgMjMuMi0uMWw0LjktODAuNSA0LjUgNzEuOGMuOSAxNC4zIDIyLjEgMTQuNSAyMy4yIC4ybDQuNi01OC42IDQuOSA2NC40YzEuMSAxNC4zIDIyIDE0LjIgMjMuMSAuMWw2LjgtODMgMi43IDIyLjNjMS40IDExLjggMTcuNyAxNC4xIDIyLjMgMy4xbDE4LTQzLjQgNTAuNSAwIDAtMjMuMi01OC40IC4zem0tNzggNS4ybC0yMS45IDAgMCAyMS45YzAgNC4xLTMuMyA3LjUtNy41IDcuNS00LjEgMC03LjUtMy4zLTcuNS03LjVsMC0yMS45LTIxLjkgMGMtNC4xIDAtNy41LTMuMy03LjUtNy41IDAtNC4xIDMuNC03LjUgNy41LTcuNWwyMS45IDAgMC0yMS45YzAtNC4xIDMuNC03LjUgNy41LTcuNXM3LjUgMy4zIDcuNSA3LjVsMCAyMS45IDIxLjkgMGM0LjEgMCA3LjUgMy4zIDcuNSA3LjUgMCA0LjEtMy40IDcuNS03LjUgNy41elwiXVxufTtcbnZhciBmYVJlZGhhdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdyZWRoYXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3YmNcIiwgXCJNMzQxLjUgMjg1LjZjMzMuNyAwIDgyLjMtNi45IDgyLjMtNDcgLjItNi43IC45LTEuOC0yMC45LTk2LjItNC42LTE5LjEtOC43LTI3LjgtNDIuMy00NC42LTI2LjEtMTMuMy04Mi45LTM1LjQtOTkuNy0zNS40LTE1LjcgMC0yMC4yIDIwLjItMzguOSAyMC4yLTE4IDAtMzEuMy0xNS4xLTQ4LjEtMTUuMS0xNi4xIDAtMjYuNyAxMS0zNC44IDMzLjYtMjcuNSA3Ny42LTI2LjMgNzQuMy0yNi4xIDc4LjMgMCAyNC44IDk3LjYgMTA2LjEgMjI4LjUgMTA2LjF6TTQyOSAyNTQuOGM0LjcgMjIgNC43IDI0LjMgNC43IDI3LjIgMCAzNy43LTQyLjMgNTguNi05OCA1OC42LTEyNS43IC4xLTIzNS45LTczLjYtMjM1LjktMTIyLjMgMC02LjggMS40LTEzLjUgNC4xLTE5LjctNDUuMiAyLjMtMTAzLjggMTAuMy0xMDMuOCA2MiAwIDg0LjcgMjAwLjYgMTg5IDM1OS41IDE4OSAxMjEuOCAwIDE1Mi41LTU1LjEgMTUyLjUtOTguNiAwLTM0LjItMjkuNi03My04Mi45LTk2LjJ6XCJdXG59O1xudmFyIGZhU3F1YXJlUGllZFBpcGVyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NxdWFyZS1waWVkLXBpcGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJwaWVkLXBpcGVyLXNxdWFyZVwiXSwgXCJlMDFlXCIsIFwiTTMyLjEgNDE5bC0zMiA2MC4yIC44LTMyOEMuOSA4NS4zIDU0LjEgMzIgMTIwLjEgMzJsMzI3LjIgMEMzNTQuMyA2MC45IDI1Ny40IDEyNi4yIDE5My40IDIwMC42IDEyMi44IDI4MiA4Mi43IDMzOCAzMi4xIDQxOXptNDE2LTM4N1MzMDUuMyA5OC44IDI2MS43IDE5OS4xYy0yMy4yIDUzLjYtMjguOSAxMTguMS03MSAxNTguNi0yOC45IDI3LjgtNjkuOCAzOC4yLTEwNS4zIDU2LjMtMjMuMiAxMi02Ni40IDQwLjUtODQuOSA2NmwzMjguNCAwYzY2IDAgMTE5LjMtNTMuMyAxMTkuMy0xMTkuMi0uMSAwLS4xLTMyOC44LS4xLTMyOC44elwiXVxufTtcbnZhciBmYVBpZWRQaXBlclNxdWFyZSA9IGZhU3F1YXJlUGllZFBpcGVyO1xudmFyIGZhV2hhdHNhcHAgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnd2hhdHNhcHAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyMzJcIiwgXCJNMzgwLjkgOTcuMWMtNDEuOS00Mi05Ny43LTY1LjEtMTU3LTY1LjEtMTIyLjQgMC0yMjIgOTkuNi0yMjIgMjIyIDAgMzkuMSAxMC4yIDc3LjMgMjkuNiAxMTFMMCA0ODAgMTE3LjcgNDQ5LjFjMzIuNCAxNy43IDY4LjkgMjcgMTA2LjEgMjdsLjEgMGMxMjIuMyAwIDIyNC4xLTk5LjYgMjI0LjEtMjIyIDAtNTkuMy0yNS4yLTExNS02Ny4xLTE1N3ptLTE1NyAzNDEuNmMtMzMuMiAwLTY1LjctOC45LTk0LTI1LjdsLTYuNy00LTY5LjggMTguMyAxOC42LTY4LjEtNC40LTdjLTE4LjUtMjkuNC0yOC4yLTYzLjMtMjguMi05OC4yIDAtMTAxLjcgODIuOC0xODQuNSAxODQuNi0xODQuNSA0OS4zIDAgOTUuNiAxOS4yIDEzMC40IDU0LjFzNTYuMiA4MS4yIDU2LjEgMTMwLjVjMCAxMDEuOC04NC45IDE4NC42LTE4Ni42IDE4NC42ek0zMjUuMSAzMDAuNWMtNS41LTIuOC0zMi44LTE2LjItMzcuOS0xOC01LjEtMS45LTguOC0yLjgtMTIuNSAyLjhzLTE0LjMgMTgtMTcuNiAyMS44Yy0zLjIgMy43LTYuNSA0LjItMTIgMS40LTMyLjYtMTYuMy01NC0yOS4xLTc1LjUtNjYtNS43LTkuOCA1LjctOS4xIDE2LjMtMzAuMyAxLjgtMy43IC45LTYuOS0uNS05LjdzLTEyLjUtMzAuMS0xNy4xLTQxLjJjLTQuNS0xMC44LTkuMS05LjMtMTIuNS05LjUtMy4yLS4yLTYuOS0uMi0xMC42LS4ycy05LjcgMS40LTE0LjggNi45Yy01LjEgNS42LTE5LjQgMTktMTkuNCA0Ni4zczE5LjkgNTMuNyAyMi42IDU3LjRjMi44IDMuNyAzOS4xIDU5LjcgOTQuOCA4My44IDM1LjIgMTUuMiA0OSAxNi41IDY2LjYgMTMuOSAxMC43LTEuNiAzMi44LTEzLjQgMzcuNC0yNi40czQuNi0yNC4xIDMuMi0yNi40Yy0xLjMtMi41LTUtMy45LTEwLjUtNi42elwiXVxufTtcbnZhciBmYUltZGIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnaW1kYicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjJkOFwiLCBcIk04OS41IDMyMy42bC0zNS42IDAgMC0xMzcuNCAzNS42IDAgMCAxMzcuNHptNjYuNi03My4xbDkuMS02NC4zIDQ2LjMgMCAwIDEzNy40LTMxIDAgMC05Mi43LTEzLjQgOTIuNy0yMS4zIDAtMTMtOTAuNy0uMSA5MC43LTMxLjIgMCAwLTEzNy40IDQ2LjEgMGMuNSA4LjMgMi44IDE4LjEgNC4zIDI5LjRsNC4yIDM0Ljl6bTY3LjYgNzMuMWwwLTEzNy40IDI2LjYgMGMxNyAwIDI3IC45IDMzIDIuNCA2LjEgMS43IDEwLjcgNC4yIDEzLjkgNy45IDMuMSAzLjMgNS4xIDYuNiA1LjggMTIgLjkgNC40IDEuNCAxMy4xIDEuNCAyNi4ybDAgNDguMmMwIDEyLjMtLjcgMjAuNS0xLjkgMjQuNy0xLjEgNC4xLTMuMSA3LjQtNiA5LjctMi44IDIuNC02LjQgNC4xLTEwLjcgNS00LjIgLjgtMTAuNiAxLjMtMTkuMSAxLjNsLTQzIDB6bTM1LjUtMTEzLjlsMCA4OS40YzUuMSAwIDguMy0xIDkuNC0yLjMgMS4xLTIgMS44LTcuNiAxLjgtMTYuN2wwLTUzLjNjMC02LjItLjEtMTAuMi0uNy0xMi0uMy0xLjgtMS4yLTMtMi42LTQuNy0xLjQgMC00LjEtLjQtNy45LS40em01Ny4zIDExMy45bDAtMTM3LjQgMzQuMSAwIDAgNDMuOWMyLjktMi40IDYuMS00LjkgOS41LTYuNiAzLjYtMS41IDguOC0yLjQgMTIuOC0yLjQgNC44IDAgOC45IC44IDEyLjMgMi4yIDMuNCAxLjUgNiAzLjUgOCA2LjIgMS43IDIuNiAyLjcgNS4zIDMuMSA3LjggLjQgMi42LS4yIDgtLjIgMTYuMmwwIDM4LjZjMCA4LjIgLjIgMTQuMy0uOCAxOC40LTEuMSA0LTMuOCA3LjYtNy44IDkuNi00LjEgMy45LTguOSA1LjMtMTQuNiA1LjMtNCAwLTkuMi0uOS0xMi43LTIuNS0zLjUtMS44LTYuNy00LjUtOS42LThsLTIuMSA4LjctMzIgMHptNDUuMS0yMC43Yy43LTEuOCAxLTYgMS0xMi41bDAtMzUuNGMwLTUuNi0uMy05LjUtMS4xLTExLjItLjctMS45LTMuNy0yLjctNS44LTIuNy0yIDAtMy40IC44LTQuMSAyLjMtLjYgMS41LTEgNS40LTEgMTEuNmwwIDM2LjRjMCA2LjEgLjQgMTAgMS4yIDExLjYgLjYgMS43IDIuMSAyLjUgNC4xIDIuNSAyLjIgMCA0LjItLjggNS43LTIuNnpNNDE4LjQgMzJjMTUuNyAxLjIgMjguNyAxNS4yIDI4LjcgMzEuOWwwIDM4NC4yYzAgMTYuNC0xMS45IDMwLjQtMjguMiAzMS0uMyAwLS41IC45LS44IC45TDI5LjkgNDgwYy0uMyAwLS42LS45LS44LS4xLTE1LjctMS40LTI3LjktMTMuOC0yOS0zMC4yTDAgNjEuOEMxLjEgNDUuOSAxMy44IDMzLjEgMzAuMyAzMS4xbDM4Ny40IDBjLjIgMCAuNSAuOSAuNyAuOXpNMzAuMyA0MS4zQzE5IDQyIDEwIDUxIDkuMyA2Mi40bDAgMzg3LjNjLjQgNS40IDIuNyAxMC41IDYuNCAxNC4zIDMuOCAzLjkgOC44IDYuMyAxNC4yIDYuN2wzODguMiAwYzExLjUtMSAyMC42LTExLjYgMjAuNi0yMi42bDAtMzg0LjJjMC01LjctMi4xLTExLjMtNi0xNS41cy05LjMtNi44LTE1LTcuMmwtMzg3LjQgMHpcIl1cbn07XG52YXIgZmFQeXRob24gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncHl0aG9uJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmM2UyXCIsIFwiTTQzOS44IDIwMC41Yy03LjctMzAuOS0yMi4zLTU0LjItNTMuNC01NC4ybC00MC4xIDAgMCA0Ny40YzAgMzYuOC0zMS4yIDY3LjgtNjYuOCA2Ny44bC0xMDYuOCAwYy0yOS4yIDAtNTMuNCAyNS01My40IDU0LjNsMCAxMDEuOGMwIDI5IDI1LjIgNDYgNTMuNCA1NC4zIDMzLjggOS45IDY2LjMgMTEuNyAxMDYuOCAwIDI2LjktNy44IDUzLjQtMjMuNSA1My40LTU0LjNsMC00MC43LTEwNi43IDAgMC0xMy42IDE2MC4yIDBjMzEuMSAwIDQyLjYtMjEuNyA1My40LTU0LjIgMTEuMi0zMy41IDEwLjctNjUuNyAwLTEwOC42ek0yODYuMiA0NDQuN2EyMC40IDIwLjQgMCAxIDEgMC00MC43IDIwLjQgMjAuNCAwIDEgMSAwIDQwLjd6TTE2Ny44IDI0OC4xbDEwNi44IDBjMjkuNyAwIDUzLjQtMjQuNSA1My40LTU0LjNsMC0xMDEuOWMwLTI5LTI0LjQtNTAuNy01My40LTU1LjYtMzUuOC01LjktNzQuNy01LjYtMTA2LjggLjEtNDUuMiA4LTUzLjQgMjQuNy01My40IDU1LjZsMCA0MC43IDEwNi45IDAgMCAxMy42LTE0NyAwYy0zMS4xIDAtNTguMyAxOC43LTY2LjggNTQuMi05LjggNDAuNy0xMC4yIDY2LjEgMCAxMDguNiA3LjYgMzEuNiAyNS43IDU0LjIgNTYuOCA1NC4ybDM2LjcgMCAwLTQ4LjhjMC0zNS4zIDMwLjUtNjYuNCA2Ni44LTY2LjR6TTE2MS4yIDY0LjdhMjAuNCAyMC40IDAgMSAxIDAgNDAuOCAyMC40IDIwLjQgMCAxIDEgMC00MC44elwiXVxufTtcbnZhciBmYUNhc2hBcHAgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY2FzaC1hcHAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU3ZDRcIiwgXCJNNDQwLjMgOTYuOWMtOS40LTI2LjUtMzAuMy00Ny40LTU2LjgtNTctMjQuMS03LjktNDYuMy03LjktOTEuNi03LjlMMTU2IDMyYy00NC44IDAtNjcuMiAwLTkxLjMgNy41LTI2LjUgOS42LTQ3LjQgMzAuNS01NyA1Ny03LjcgMjQuMy03LjcgNDYuNy03LjcgOTEuN0wwIDMyMy44YzAgNDUuMiAwIDY3LjQgNy41IDkxLjUgOS42IDI2LjUgMzAuNSA0Ny40IDU3IDU3IDI0LjMgNy43IDQ2LjcgNy43IDkxLjYgNy43bDEzNS43IDBjNDUgMCA2Ny40IDAgOTEuNi03LjcgMjYuNS05LjYgNDcuNC0zMC41IDU3LTU3IDcuNy0yNC4zIDcuNy00Ni43IDcuNy05MS41bDAtMTM1LjVjMC00NSAwLTY3LjQtNy43LTkxLjV6TTMyMy4xIDE4NS40bC0yNS44IDIxLjFjLTIuMyAxLjktNS41IDEuNS03LjMtLjktMTMuMi0xNi4yLTMzLjctMjUuNC01Ni4xLTI1LjQtMjUgMC00MC42IDEwLjktNDAuNiAyNi4yLS40IDEyLjggMTEuNyAxOS42IDQ5LjEgMjcuNyA0Ny4yIDEwIDY4LjcgMjkuNyA2OC43IDYyLjcgMCA0MS40LTMzLjcgNzEuOS04Ni40IDc1LjNsLTUuMSAyNC41Yy0uNCAyLjMtMi42IDQuMS01LjEgNC4xbC00MC42IDBjLTMuNCAwLTUuOC0zLjItNS4xLTYuNGw2LjQtMjcuM2MtMjYtNy41LTQ3LjItMjItNTkuMy0zOS43LTEuNS0yLjMtMS4xLTUuMyAxLjEtN2wyOC4yLTIyYzIuMy0xLjkgNS44LTEuMyA3LjUgMS4xIDE0LjkgMjAuOSAzOCAzMy4zIDY1LjcgMzMuMyAyNSAwIDQzLjgtMTIuMiA0My44LTI5LjcgMC0xMy40LTkuNC0xOS42LTQxLjItMjYuMi01NC4yLTExLjctNzUuOC0zMS44LTc1LjgtNjQuOSAwLTM4LjQgMzIuMi02Ny4yIDgwLjktNzFsNS4zLTI1LjRjLjQtMi4zIDIuNi00LjEgNS4xLTQuMWwzOS45IDBjMy4yIDAgNS44IDMgNS4xIDYuMmwtNi4yIDI4LjRjMjAuOSA2LjQgMzggMTcuOSA0OC43IDMyLjIgMS43IDIuMSAxLjMgNS4zLS45IDd6XCJdXG59O1xudmFyIGZhUGludGVyZXN0UCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdwaW50ZXJlc3QtcCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjIzMVwiLCBcIk0yMDQgNi41Yy0xMDIuNiAwLTIwNCA2OC40LTIwNCAxNzkuMSAwIDcwLjQgMzkuNiAxMTAuNCA2My42IDExMC40IDkuOSAwIDE1LjYtMjcuNiAxNS42LTM1LjQgMC05LjMtMjMuNy0yOS4xLTIzLjctNjcuOCAwLTgwLjQgNjEuMi0xMzcuNCAxNDAuNC0xMzcuNCA2OC4xIDAgMTE4LjUgMzguNyAxMTguNSAxMDkuOCAwIDUzLjEtMjEuMyAxNTIuNy05MC4zIDE1Mi43LTI0LjkgMC00Ni4yLTE4LTQ2LjItNDMuOCAwLTM3LjggMjYuNC03NC40IDI2LjQtMTEzLjQgMC02Ni4yLTkzLjktNTQuMi05My45IDI1LjggMCAxNi44IDIuMSAzNS40IDkuNiA1MC43LTEzLjggNTkuNC00MiAxNDcuOS00MiAyMDkuMSAwIDE4LjkgMi43IDM3LjUgNC41IDU2LjQgMy40IDMuOCAxLjcgMy40IDYuOSAxLjUgNTAuNC02OSA0OC42LTgyLjUgNzEuNC0xNzIuOCAxMi4zIDIzLjQgNDQuMSAzNiA2OS4zIDM2IDEwNi4yIDAgMTUzLjktMTAzLjUgMTUzLjktMTk2LjggMC05OS4zLTg1LjgtMTY0LjEtMTgwLTE2NC4xelwiXVxufTtcbnZhciBmYVdobWNzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3dobWNzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNDBkXCIsIFwiTTQ0OCAxNjFsMC0yMS4zLTI4LjUtOC44LTIuMi0xMC40IDIwLjEtMjAuNy0xMC40LTE5LjQtMjkgNy41LTcuMi03LjUgNy41LTI4LjItMTkuMS0xMS42LTIxLjMgMjEtMTAuNy0zLjItNy0yNi40LTIyLjYgMC02LjIgMjYuNC0xMi4xIDMuMi0xOS43LTIxLTE5LjQgMTEgOC4xIDI3LjctOC4xIDguNC0yOC41LTcuNS0xMSAxOS4xIDIwLjcgMjEtMi45IDEwLjQtMjguNSA3LjgtLjMgMjEuNyAyOC44IDcuNSAyLjQgMTIuMS0yMC4xIDE5LjkgMTAuNCAxOC41IDI5LjYtNy41IDcuMiA4LjYtOC4xIDI2LjkgMTkuOSAxMS42IDE5LjQtMjAuNCAxMS42IDIuOSA2LjcgMjguNSAyMi42IC4zIDYuNy0yOC44IDExLjYtMy41IDIwLjcgMjEuNiAyMC40LTEyLjEtOC44LTI4IDcuOC04LjEgMjguOCA4LjggMTAuMy0yMC4xLTIwLjktMTguOCAyLjItMTIuMSAyOS4xLTd6TTMyOC44IDkyLjZhNTYuOCA1Ni44IDAgMSAxIDAgMTEzLjYgNTYuOCA1Ni44IDAgMSAxIDAtMTEzLjZ6bTcyLjMgMTMwbDQ2LjkgMTQuNSAwIDM5LjktNTUuMSAxMy40LTQuMSAyMi43IDM4LjkgMzUuMy0xOS4yIDM3LjktNTQtMTYuNy0xNC42IDE1LjIgMTYuNyA1Mi41LTM4LjMgMjIuNy0zOC45LTQwLjUtMjEuNyA2LjYtMTIuNiA1NC00Mi40LS41LTEyLjYtNTMuNi0yMS43LTUuNi0zNi40IDM4LjQtMzcuNC0yMS43IDE1LjItNTAuNS0xMy43LTE2LjEtNTUuNSAxNC4xLTE5LjctMzQuOCAzNy45LTM3LjQtNC44LTIyLjgtNTQtMTQuMSAuNS00MC45IDUzLjUtMTQuNyA1LjctMTkuNy0zOC45LTM5LjQgMjAuNy0zNS44IDUzLjYgMTQuMSAxNS4yLTE1LjctMTUuMi01MiAzNi40LTIwLjcgMzYuOCAzOS40IDIyLjctNi4xIDExLjYtNTIgNDIuNCAwIDExLjYgNDUuOS0yMi42LTUuOS02LjMtMS43LTMuMyA1LjctMTEgMTkuMS0zLjMgNS42IDQuNiA0LjYgMTcuMiAxNy40LS4zIDEtMjMuOCA2LjUtNi4yIDEuN2MwIDMuMi0uMSA5LjYtLjMgMTkuMy00Ny41IDEwLjQtODMuMyA1Mi44LTgzLjMgMTAzLjUgMCA1OC4zIDQ3LjMgMTA1LjcgMTA1LjcgMTA1LjcgNTAuNSAwIDkyLjctMzUuNCAxMDMuMi04Mi44IDkuOSAuMSAxNi42IC4yIDIwLjEgLjNsMS42LTYuNyA1LjYtMjQgMS45LS42IDE3LjEgMTcuOCA0LjcgNC45IDUuOC0zLjQgMjAuNC0xMi4xIDUuOC0zLjUtMi02LjUtNi44LTIxLjJ6XCJdXG59O1xudmFyIGZhSm9nZXQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnam9nZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzYjdcIiwgXCJNMzg2LjEgNDVDMzQ1LjYgMTkuOSAzMDAuNiA4IDI1Ni4yIDggMTczIDggOTEuOCA0OS45IDQ0LjkgMTI1LjktMjcgMjQyLjUgOS4zIDM5NS4yIDEyNS45IDQ2Ny4xczI2OS4zIDM1LjYgMzQxLjItODAuOUM1MzkgMjY5LjYgNTAyLjcgMTE2LjggMzg2LjEgNDV6bTUxLjggMzIzLjJjLTQwLjQgNjUuNS0xMTAuNCAxMDEuNS0xODIgMTAxLjUtNi44IDAtMTMuNi0uNC0yMC40LTEtOS0xMy42LTE5LjktMzMuMy0yMy43LTQyLjQtNS43LTEzLjctMjcuMi00NS42IDMxLjItNjcuMSA1MS43LTE5LjEgMTc2LjctMTYuNSAyMDguOC0xNy42LTQgOS04LjYgMTcuOS0xMy45IDI2LjZ6TTIzNy4xIDI4MS45Yy01NS41LTEuNC04MS43LTIwLjgtNTguNS00OC4yczUxLjEtNDAuNyA2OC45LTUxLjJjMTcuOS0xMC41IDI3LjMtMzMuNy0yMy42LTI5LjctMTI4LjYgOC43LTE2Ny4zIDk5LjMtMTc4LjMgMTQwLjItOC44LTQ5LjctLjEtMTAyLjcgMjguNS0xNDkuMSA2MS45LTEwMC41IDE5My41LTEzMS43IDI5NC02OS44IDc0LjggNDYuMSAxMTEuMiAxMzAuOSA5OS4zIDIxMi43LTI0LjktLjUtMTc5LjMtMy42LTIzMC4zLTQuOXptMTgzLjgtNTQuOGMtMjIuNy02LTU3IDExLjMtODYuNyAyNy4yLTI5LjcgMTUuOC0zMS4xIDguMi0zMS4xIDguMnM0MC4yLTI4LjEgNTAuNy0zNC41IDMxLjktMTQgMTMuNC0yNC42Yy0zLjItMS44LTYuNy0yLjctMTAuNC0yLjctMTcuOCAwLTQxLjUgMTguNy02Ny41IDM1LjYtMzEuNSAyMC41LTY1LjMgMzEuMy02NS4zIDMxLjNMMzkzLjUgMjY2IDQ0MCAyNDIuNnMzLjYtOS41LTE5LjEtMTUuNXpcIl1cbn07XG52YXIgZmFTcXVhcmVZb3V0dWJlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NxdWFyZS15b3V0dWJlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjE3OTgsIFwieW91dHViZS1zcXVhcmVcIl0sIFwiZjQzMVwiLCBcIk0yODIgMjU2LjJsLTk1LjItNTQuMSAwIDEwOC4yIDk1LjItNTQuMXpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6bTE0LjQgMTM2LjFjNy42IDI4LjYgNy42IDg4LjIgNy42IDg4LjJzMCA1OS42LTcuNiA4OC4xYy00LjIgMTUuOC0xNi41IDI3LjctMzIuMiAzMS45LTI4LjMgNy43LTE0Mi4yIDcuNy0xNDIuMiA3LjdzLTExMy45IDAtMTQyLjItNy42Yy0xNS43LTQuMi0yOC0xNi4xLTMyLjItMzEuOS03LjYtMjguNi03LjYtODguMi03LjYtODguMnMwLTU5LjcgNy42LTg4LjJjNC4yLTE1LjggMTYuNS0yOC4yIDMyLjItMzIuNCAyOC4zLTcuNyAxNDIuMi03LjcgMTQyLjItNy43czExMy45IDAgMTQyLjIgNy43YzE1LjcgNC4yIDI4IDE2LjYgMzIuMiAzMi40elwiXVxufTtcbnZhciBmYVlvdXR1YmVTcXVhcmUgPSBmYVNxdWFyZVlvdXR1YmU7XG52YXIgZmFBdGxhc3NpYW4gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYXRsYXNzaWFuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzdiXCIsIFwiTTE1Mi4yIDIzNi40Yy03LjctOC4yLTE5LjctNy43LTI0LjggMi44TDEuNiA0OTAuMmMtNSAxMCAyLjQgMjEuNyAxMy40IDIxLjdsMTc1IDBjNS44IC4xIDExLTMuMiAxMy40LTguNCAzNy45LTc3LjggMTUuMS0xOTYuMy01MS4yLTI2Ny4xek0yNDQuNCA4LjFjLTEyMi4zIDE5My40LTguNSAzNDguNiA2NSA0OTUuNSAyLjUgNS4xIDcuNyA4LjQgMTMuNCA4LjRMNDk3IDUxMmMxMS4yIDAgMTguNC0xMS44IDEzLjQtMjEuNyAwIDAtMjM0LjUtNDcwLjYtMjQwLjQtNDgyLjMtNS4zLTEwLjYtMTguOC0xMC44LTI1LjYgLjF6XCJdXG59O1xudmFyIGZhUGllZFBpcGVySGF0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3BpZWQtcGlwZXItaGF0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNGU1XCIsIFwiTTY0MCAyNC45Yy04MC44IDUzLjYtODkuNCA5Mi41LTk2LjQgMTA0LjQtNi43IDEyLjItMTEuNyA2MC4zLTIzLjMgODMuNi0xMS43IDIzLjYtNTQuMiA0Mi4yLTY2LjEgNTAtMTEuNyA3LjgtMjguMyAzOC4xLTQxLjkgNjQuMi0xMDguMS00LjQtMTY3LjQgMzguOC0yNTkuMiA5My42IDI5LjQtOS43IDQzLjMtMTYuNyA0My4zLTE2LjcgOTQuMi0zNiAxMzkuMy02OC4zIDI4MS4xLTQ5LjIgMS4xIDAgMS45IC42IDIuOCAuOCAzLjkgMi4yIDUuMyA2LjkgMy4xIDEwLjhsLTUzLjkgOTUuOGMtMi41IDQuNy03LjggNy4yLTEzLjEgNi4xLTEyNi44LTIzLjgtMjI2LjkgMTcuMy0zMTguOSAxOC42LTczLjQgMS4xLTk3LjUtMzMuNS05Ny41LTM1LjEgMC0xLjEgLjYtMS43IDEuNy0xLjcgMCAwIDM4LjMgMCAxMDMuMS0xNS4zIDczLjYtMTQwLjMgMTM5LjItMTg5LjQgMjEwLjYtMTg5LjQgMCAwIDcxLjcgMCA5MC42IDYxLjkgMjIuOC0zOS43IDI4LjMtNDkuMiAyOC4zLTQ5LjIgNS4zLTkuNCAzNS03Ny4yIDg2LjQtMTQxLjQgNTEuNS02NCA5MC40LTc5LjkgMTE5LjMtOTEuOHpcIl1cbn07XG52YXIgZmFJbnRlcm5ldEV4cGxvcmVyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ludGVybmV0LWV4cGxvcmVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjZiXCIsIFwiTTQ4My4xIDE1OS43YzEwLjktMjQuNiAyMS40LTYwLjQgMjEuNC04Ny45IDAtNzIuNy03OS42LTk4LjQtMjA5LjctMzguNi0xMDcuNi03LjItMjExLjIgNzMuNy0yMzcuMSAxODYuNSAzMC45LTM0LjkgNzguMy04Mi4zIDEyMi0xMDEuMi01NC4zIDQ4LjMtMTAwLjYgMTA5LjQtMTM1LjcgMTczLjItMjAuNyAzNy45LTQ0IDk5LjItNDQgMTQ1IDAgOTguNiA5Mi45IDg2LjUgMTgwLjMgNDIgMzEuNCAxNS40IDY2LjYgMTUuNiAxMDEuNyAxNS42IDk3LjEgMCAxODQuMi01NC4zIDIxNi44LTE0NmwtMTIwLjggMGMtNTIuNSA4OC42LTE5Ni44IDUzLTE5Ni44LTQ3LjRsMzI4LjggMGM2LjQtNDMuNi0xLjctOTUuNy0yNi45LTE0MS4yek02NC42IDM0Ni45QzgyLjMgMzk4IDExOC4zIDQ0Mi43IDE2NC44IDQ3MC4yIDc2LjEgNTE5LjEtOC40IDQ5OS4zIDY0LjYgMzQ2Ljl6TTE4MC41IDIzOGMyLTU1LjIgNTAuMy05NC45IDEwNC05NC45IDUzLjQgMCAxMDIgMzkuNyAxMDQgOTQuOWwtMjA4IDB6TTM2NS4xIDUwLjRjMjEuNC0xMC4zIDQ4LjYtMjIgNzIuNi0yMiAzMS40IDAgNTQuMyAyMS43IDU0LjMgNTMuNyAwIDIwLTcuNCA0OS0xNC42IDY3LjktMjYuMy00Mi4zLTY2LTgxLjYtMTEyLjMtOTkuNnpcIl1cbn07XG52YXIgZmFBaXJibmIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYWlyYm5iJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmODM0XCIsIFwiTTIyNC41IDM3My4xYy0yNS4yLTMxLjctNDAuMS01OS40LTQ1LTgzLjItMjIuNS04OCAxMTIuNi04OCA5MC4xIDAtNS40IDI0LjItMjAuMyA1Mi00NSA4My4ybC0uMSAwem0xMzguMiA3My4yYy00Mi4xIDE4LjMtODMuNy0xMC45LTExOS4zLTUwLjUgMTAzLjktMTMwLjEgNDYuMS0yMDAtMTguOC0yMDAtNTQuOSAwLTg1LjIgNDYuNS03My4zIDEwMC41IDYuOSAyOS4yIDI1LjIgNjIuNCA1NC40IDk5LjUtMzIuNSAzNi02MC41IDUyLjctODUuMiA1NC45LTUwIDcuNC04OS4xLTQxLjEtNzEuMy05MS4xIDE1LjEtMzkuMiAxMTEuNy0yMzEuMiAxMTUuOS0yNDEuNiAxNS44LTMwLjEgMjUuNi01Ny40IDU5LjQtNTcuNCAzMi4zIDAgNDMuNCAyNS45IDYwLjQgNTkuOSAzNiA3MC42IDg5LjQgMTc3LjUgMTE0LjggMjM5LjEgMTMuMiAzMy4xLTEuNCA3MS4zLTM3IDg2LjZ6bTQ3LTEzNi4xYy0xMjguOS0yNzQuMy0xMzYtMjc4LjItMTg1LjEtMjc4LjItNDUuNSAwLTY0LjkgMzEuNy04NC43IDcyLjgtMTA2LjIgMjEyLjMtMTE2LjQgMjQyLjQtMTE3LjMgMjQ1LTI1LjIgNjkuMyAyNi43IDEzMC4yIDg5LjYgMTMwLjIgMjEuNyAwIDYwLjYtNi4xIDExMi40LTYyLjQgNTguNyA2My44IDEwMS4zIDYyLjQgMTEyLjQgNjIuNCA2Mi45IC4xIDExNC45LTYwLjkgODkuNi0xMzAuMiAwLTMuOS0xNi44LTM4LjktMTYuOC0zOS42bDAgMHpcIl1cbn07XG52YXIgZmFKcyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdqcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjNiOFwiLCBcIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0yNDMuOCAzODEuNGMwIDQzLjYtMjUuNiA2My41LTYyLjkgNjMuNS0zMy43IDAtNTMuMi0xNy40LTYzLjItMzguNUwxNTIgMzg1LjdjNi42IDExLjcgMTIuNiAyMS42IDI3LjEgMjEuNiAxMy44IDAgMjIuNi01LjQgMjIuNi0yNi41bDAtMTQzLjEgNDIuMSAwIDAgMTQzLjd6bTk5LjYgNjMuNWMtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzTDMwMSAzODIuMWM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjZ6XCJdXG59O1xudmFyIGZhUXVpbnNjYXBlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3F1aW5zY2FwZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQ1OVwiLCBcIk0zMTMuNyA0NzQuNmwtMSAwYy00MS45IDAtODIuMS0xNi43LTExMS44LTQ2LjNzLTQ2LjMtNjkuOS00Ni4zLTExMS44IDE2LjctODIuMSA0Ni4zLTExMS44IDY5LjktNDYuMyAxMTEuOC00Ni4zYzk0LjkgMCAxNjguMiA4My4xIDE1NyAxNzYuNiA0IDUuMSA4LjIgOS42IDExLjIgMTUuMyAxMy40LTMwLjMgMjAuMy02Mi40IDIwLjMtOTcuNyAwLTEzNS4xLTEwOS41LTI0NC42LTI0NC42LTI0NC42UzEyLjEgMTE3LjUgMTIuMSAyNTIuNiAxMjEuNiA0OTcuMiAyNTYuNiA0OTcuMmMyMy44IC4yIDQ3LjYtMy4yIDcwLjQtMTAuMS01LjItMy41LTguOS04LjEtMTMuMy0xMi41em03OC4zLTE2OWE5OS4yIDk5LjIgMCAxIDAgMCAxOTguNCA5OS4yIDk5LjIgMCAxIDAgMC0xOTguNHpcIl1cbn07XG52YXIgZmFBZHZlcnNhbCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdhZHZlcnNhbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjM2YVwiLCBcIk00ODIuMSAzMkwyOC43IDMyQzUuOCAzMiAwIDM3LjkgMCA2MC45TDAgNDUxLjFDMCA0NzQuNCA1LjggNDgwIDI4LjcgNDgwbDQ1My40IDBjMjQuNCAwIDI5LjktNS4yIDI5LjktMjkuN2wwLTM4OC4xYzAtMjQuNi01LjQtMzAuMi0yOS45LTMwLjJ6TTE3OC40IDIyMC4zYy0yNy41LTIwLjItNzIuMS04LjctODQuMiAyMy40LTQuMyAxMS4xLTkuMyA5LjUtMTcuNSA4LjMtOS43LTEuNS0xNy4yLTMuMi0yMi41LTUuNS0yOC44LTExLjQgOC42LTU1LjMgMjQuOS02NC4zIDQxLjEtMjEuNCA4My40LTIyLjIgMTI1LjMtNC44IDQwLjkgMTYuOCAzNC41IDU5LjIgMzQuNSAxMjguNSAyLjcgMjUuOC00LjMgNTguMyA5LjMgODguOCAxLjkgNC40IC40IDcuOS0yLjcgMTAuNy04LjQgNi43LTM5LjMgMi4yLTQ2LjYtNy40LTEuOS0yLjItMS44LTMuNi0zLjktNi4yLTMuNi0zLjktNy4zLTIuMi0xMS45IDEtNTcuNCAzNi40LTE0MC4zIDIxLjQtMTQ3LTQzLjMtMy4xLTI5LjMgMTIuNC01Ny4xIDM5LjYtNzEgMzguMi0xOS41IDExMi4yLTExLjggMTE0LTMwLjkgMS4xLTEwLjItMS45LTIwLjEtMTEuMy0yNy4zem0yODYuNyAyMjJjMCAxNS4xLTExLjEgOS45LTE3LjggOS45bC0zOTQuOSAwYy03LjQgMC0xOC4yIDQuOC0xNy44LTEwLjcgLjQtMTMuOSAxMC41LTkuMSAxNy4xLTkuMSAxMzIuMy0uNCAyNjQuNS0uNCAzOTYuOCAwIDYuOCAwIDE2LjYtNC40IDE2LjYgOS45em0zLjgtMzQwLjVsMCAyOTFjMCA1LjctLjcgMTMuOS04LjEgMTMuOS0xMi40LS40LTI3LjUgNy4xLTM2LjEtNS42LTUuOC04LjctNy44LTQtMTIuNC0xLjItNTMuNCAyOS43LTEyOC4xIDcuMS0xNDQuNC04NS4yLTYuMS0zMy40LS43LTY3LjEgMTUuNy0xMDAgMTEuOC0yMy45IDU2LjktNzYuMSAxMzYuMS0zMC41bDAtNzFjMC0yNi4yLS4xLTI2LjIgMjYtMjYuMiAzLjEgMCA2LjYgLjQgOS43IDAgMTAuMS0uOCAxMy42IDQuNCAxMy42IDE0LjMtLjEgLjItLjEgLjMtLjEgLjV6TTQxNy40IDMzNC4xYy0xOS41IDQ3LjYtNzIuOSA0My4zLTkwIDUuMi0xNS4xLTMzLjMtMTUuNS02OC4yIC40LTEwMS41IDE2LjMtMzQuMSA1OS43LTM1LjcgODEuNS00LjggMjAuNiAyOC44IDE0LjkgODQuNiA4LjEgMTAxLjF6TTEyMi42IDM2OS40Yy03LjUtMS4zLTMzLTMuMy0zMy43LTI3LjgtLjQtMTMuOSA3LjgtMjMgMTkuOC0yNS44IDI0LjQtNS45IDQ5LjMtOS45IDczLjctMTQuNyA4LjktMiA3LjQgNC40IDcuOCA5LjUgMS40IDMzLTI2LjEgNTkuMi02Ny42IDU4Ljh6XCJdXG59O1xudmFyIGZhQ3JlYXRpdmVDb21tb25zID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NyZWF0aXZlLWNvbW1vbnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyNWVcIiwgXCJNMjUzLjggMjE0LjlsLTMzLjIgMTcuM2MtOS40LTE5LjYtMjUuMi0xOS45LTI3LjUtMTkuOS0yMi4xIDAtMzMuMiAxNC42LTMzLjIgNDMuOCAwIDIzLjYgOS4yIDQzLjggMzMuMiA0My44IDE0LjUgMCAyNC42LTcuMSAzMC42LTIxLjNsMzAuNiAxNS41Yy02LjIgMTEuNS0yNS43IDM5LTY1LjEgMzktMjIuNiAwLTc0LTEwLjMtNzQtNzcgMC01OC43IDQzLTc3LjEgNzIuNi03Ny4xIDMwLjcgMCA1Mi43IDExLjkgNjYgMzUuOXptMTQzIDBsLTMyLjggMTcuM2MtOS41LTE5LjgtMjUuNy0xOS45LTI3LjktMTkuOS0yMi4xIDAtMzMuMiAxNC42LTMzLjIgNDMuOCAwIDIzLjUgOS4yIDQzLjggMzMuMiA0My44IDE0LjQgMCAyNC42LTcuMSAzMC41LTIxLjNsMzEgMTUuNWMtMi4xIDMuOC0yMS40IDM5LTY1LjEgMzktMjIuNyAwLTc0LTkuOS03NC03NyAwLTU4LjcgNDMtNzcuMSA3Mi42LTc3LjEgMzAuNyAwIDUyLjYgMTEuOSA2NS42IDM1Ljl6TTI1NS42IDhDMTEyLjcgOCA4IDEyMy4xIDggMjU2LjEgOCAzOTQuNSAxMjEuNiA1MDQuMSAyNTUuNiA1MDQuMSAzODUuNSA1MDQuMSA1MDQgNDAzLjIgNTA0IDI1Ni4xIDUwNCAxMTguMiAzOTcuNCA4IDI1NS42IDh6bS45IDQ1MC44Yy0xMTIuNSAwLTIwMy43LTkzLTIwMy43LTIwMi44IDAtMTA1LjQgODUuNC0yMDMuMyAyMDMuNy0yMDMuMyAxMTIuNSAwIDIwMi44IDg5LjUgMjAyLjggMjAzLjMgMCAxMjEuNy05OS43IDIwMi44LTIwMi44IDIwMi44elwiXVxufTtcbnZhciBmYU5vdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdub3Rpb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU3ZDlcIiwgXCJNOTQuOSAxMDAuMmMxNC45IDEyLjEgMjAuNSAxMS4yIDQ4LjYgOS4zTDQwNy44IDkzLjZjNS42IDAgLjktNS42LS45LTYuNUwzNjIuOSA1NS40Yy04LjQtNi41LTE5LjYtMTQtNDEuMS0xMi4xTDY1LjkgNjEuOWMtOS4zIC45LTExLjIgNS42LTcuNSA5LjNsMzYuNCAyOC45em0xNS45IDYxLjZsMCAyNzguMWMwIDE0LjkgNy41IDIwLjUgMjQuMyAxOS42bDI5MC41LTE2LjhjMTYuOC0uOSAxOC43LTExLjIgMTguNy0yMy4zbDAtMjc2LjJjMC0xMi4xLTQuNy0xOC43LTE1LTE3LjdMMTI1LjcgMTQzLjFjLTExLjIgLjktMTQuOSA2LjUtMTQuOSAxOC43em0yODYuNyAxNC45YzEuOSA4LjQgMCAxNi44LTguNCAxNy44bC0xNCAyLjggMCAyMDUuM2MtMTIuMiA2LjUtMjMuNCAxMC4zLTMyLjcgMTAuMy0xNSAwLTE4LjctNC43LTI5LjktMTguN2wtOTEuNS0xNDMuNyAwIDEzOSAyOSA2LjVzMCAxNi44LTIzLjQgMTYuOGwtNjQuNCAzLjdjLTEuOS0zLjcgMC0xMy4xIDYuNS0xNC45bDE2LjgtNC43IDAtMTgzLjgtMjMuMy0xLjljLTEuOS04LjQgMi44LTIwLjUgMTUuOS0yMS41bDY5LjEtNC43IDk1LjMgMTQ1LjYgMC0xMjguOC0yNC4zLTIuOGMtMS45LTEwLjMgNS42LTE3LjcgMTQuOS0xOC43bDY0LjUtMy44ek00NC40IDM2LjdMMzEwLjYgMTcuMWMzMi43LTIuOCA0MS4xLS45IDYxLjYgMTRsODUgNTkuN2MxNCAxMC4zIDE4LjcgMTMuMSAxOC43IDI0LjNsMCAzMjcuNmMwIDIwLjUtNy41IDMyLjctMzMuNiAzNC41TDEzMy4yIDQ5NS44Yy0xOS42IC45LTI5LTEuOS0zOS4yLTE0LjlMMzEuNCAzOTkuN2MtMTEuMi0xNC45LTE1LjktMjYuMS0xNS45LTM5LjJsMC0yOTEuMmMwLTE2LjggNy41LTMwLjggMjguOS0zMi43elwiXVxufTtcbnZhciBmYUNocm9tZWNhc3QgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY2hyb21lY2FzdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjgzOFwiLCBcIk00NDggNjRMNjQuMiA2NGMtMjMuNiAwLTQyLjcgMTkuMS00Mi43IDQyLjdsMCA2My45IDQyLjcgMCAwLTYzLjkgMzgzLjggMCAwIDI5OC42LTE0OS4yIDAgMCA0Mi43IDE0OS40IDBjMjMuNiAwIDQyLjctMTkuMSA0Mi43LTQyLjdsMC0yOTguNkM0OTAuOSA4My4xIDQ3MS42IDY0IDQ0OCA2NHpNMjEuNSAzODMuNmwwIDYzLjkgNjMuOSAwYzAtMzUuMy0yOC42LTYzLjktNjMuOS02My45em0wLTg1bDAgNDIuNGM1OC45IDAgMTA2LjYgNDguMSAxMDYuNiAxMDdsNDIuNyAwYy4xLTgyLjQtNjYuOS0xNDkuMy0xNDkuMy0xNDkuNHpNMjEzLjYgNDQ4bDQyLjcgMEMyNTUuOCAzMTguNSAxNTEgMjEzLjcgMjEuNSAyMTMuNGwwIDQyLjRjMTA2LS4yIDE5MiA4Ni4yIDE5Mi4xIDE5Mi4yelwiXVxufTtcbnZhciBmYVdpa2lwZWRpYVcgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnd2lraXBlZGlhLXcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyNjZcIiwgXCJNNjQwIDUxLjJsLS4zIDEyLjJjLTI4LjEgLjgtNDUgMTUuOC01NS44IDQwLjMtMjUgNTcuOC0xMDMuMyAyNDAtMTU1LjMgMzU4LjZsLTEzLjYgMC04MS45LTE5My4xYy0zMi41IDYzLjYtNjguMyAxMzAtOTkuMiAxOTMuMS0uMyAuMy0xNSAwLTE1LS4zLTQ2LjktMTA5LjctOTYuMS0yMTguNi0xNDMuMS0zMjguNi0xMS40LTI2LjctNDkuNC03MC03NS42LTY5LjcgMC0zLjEtLjMtMTAtLjMtMTQuMmwxNjEuOSAwIDAgMTMuOWMtMTkuMiAxLjEtNTIuOCAxMy4zLTQzLjMgMzQuMiAyMS45IDQ5LjcgMTAzLjYgMjQwLjMgMTI1LjYgMjg4LjYgMTUtMjkuNyA1Ny44LTEwOS4yIDc1LjMtMTQyLjgtMTMuOS0yOC4zLTU4LjYtMTMzLjktNzIuOC0xNjAtOS43LTE3LjgtMzYuMS0xOS40LTU1LjgtMTkuN2wwLTEzLjkgMTQyLjUgLjMgMCAxMy4xYy0xOS40IC42LTM4LjEgNy44LTI5LjQgMjYuMSAxOC45IDQwIDMwLjYgNjguMSA0OC4xIDEwNC43IDUuNi0xMC44IDM0LjctNjkuNCA0OC4xLTEwMC44IDguOS0yMC42LTMuOS0yOC42LTM4LjYtMjkuNCAuMy0zLjYgMC0xMC4zIC4zLTEzLjYgNDQuNC0uMyAxMTEuMS0uMyAxMjMuMS0uNmwwIDEzLjZDNDYyLjQgNjQgNDM5LjEgNzYgNDI2LjggOTQuOUwzNjcuNiAyMTcuN2M2LjQgMTYuMSA2My4zIDE0Mi44IDY5LjIgMTU2LjdMNTU5LjIgOTEuOGMtOC42LTIzLjEtMzYuNC0yOC4xLTQ3LjItMjguM2wwLTEzLjkgMTI3LjggMS4xIC4yIC41elwiXVxufTtcbnZhciBmYVNpdHJveCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzaXRyb3gnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU0NGFcIiwgXCJNMjEyLjQgMGwwIDAgMjM1LjYgMCAwIDEyOC0zODQgMEM2NCA1Ny42IDE0MS44IC41IDIxMi40IDB6bTI0LjggMTkybDAgMGM2OS45IC41IDE0Ni43IDU3LjYgMTQ2LjcgMTI4bC0xNzMuMiAwIDAgMEMxNDAuOSAzMTkuNiA2NCAyNjIuNCA2NCAxOTJsMTczLjMgMHptLTEuNyAzMjBjNzAuNy0uNSAxNDguNC01Ny42IDE0OC40LTEyOGwtMzg0IDAgMCAxMjggMjM1LjYgMCAwIDB6XCJdXG59O1xudmFyIGZhU3F1YXJlR2l0bGFiID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NxdWFyZS1naXRsYWInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImdpdGxhYi1zcXVhcmVcIl0sIFwiZTVhZVwiLCBcIk0wIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZ6bTMzNy41IDEyLjVsNDQuNiAxMTYuNCAuNCAxLjJjNS42IDE2LjggNy4yIDM1LjIgMi4zIDUyLjUtNSAxNy4yLTE1LjQgMzIuNC0yOS44IDQzLjNsLS4yIC4xLTY4LjQgNTEuMi01NC4xIDQwLjljLS41IC4yLTEuMSAuNS0xLjcgLjgtMiAxLTQuNCAyLTYuNyAyLTMgMC02LjgtMS44LTguMy0yLjhsLTU0LjItNDAuOS02Ny45LTUwLjktLjQtLjMtLjItLjFjLTE0LjMtMTAuOC0yNC44LTI2LTI5LjctNDMuM3MtNC4yLTM1LjcgMi4yLTUyLjVsLjUtMS4yIDQ0LjctMTE2LjRjLjktMi4zIDIuNS00LjMgNC41LTUuNiAxLjYtMSAzLjQtMS42IDUuMi0xLjggMS4zLS43IDIuMS0uNCAzLjQgLjEgLjYgLjIgMS4yIC41IDIgLjcgMSAuNCAxLjYgLjkgMi40IDEuNSAuNiAuNCAxLjIgMSAyLjEgMS41IDEuMiAxLjQgMi4yIDMgMi43IDQuOGwyOS4yIDkyLjIgMTIyLjkgMCAzMC4yLTkyLjJjLjUtMS44IDEuNC0zLjQgMi42LTQuOHMyLjgtMi40IDQuNS0zLjFjMS43LS42IDMuNi0uOSA1LjQtLjdzMy42IC44IDUuMiAxLjhjMiAxLjMgMy43IDMuMyA0LjYgNS42elwiXVxufTtcbnZhciBmYUdpdGxhYlNxdWFyZSA9IGZhU3F1YXJlR2l0bGFiO1xudmFyIGZhU2hvZWxhY2UgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc2hvZWxhY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU2MGNcIiwgXCJNNDA1LjIgMzMxYzIuMi0xLjEgNC40LTIuMyA2LjUtMy43bDguMy00LjhjMS41LTEuMSA0LjQtMy40IDguNy02LjdsLjUtLjVjMy40LTMuNCA3LjItNSAxMS4zLTQuOSAxLjggMCAzLjkgLjUgNi40IDEuNWwzMS0yNy41Yy45LS43IDEuNy0xLjMgMi42LTEuOGwuMiAwYzMuMy0xLjkgNi0xLjggOC4yIC40IDMuOSAyLjEgNC4yIDUuNiAuOSAxMC42TDQ1Ny4yIDMyMmMuMiAuNSAuNCAxIC40IDEuNSAuNSAyLjIgLjMgNC40LS41IDYuNi0uNyAxLjUtMS44IDIuOS0zLjEgNC4yLTEuNCAxLjQtMi43IDIuOC00LjIgNC4yTDQzMSAzNTIuMmMtMS43IDEuMi0zLjQgMi4zLTUuMSAzLjMtMi4xIDEuMy00LjMgMi41LTYuNiAzLjYtMSAuNC0xLjkgLjktMi45IDEuMy01LjkgMi41LTExLjkgNC4yLTE4LjIgNS0yLjkgMjQuNS0xMS4zIDQ3LjEtMjUuMSA2Ny44LTE3LjUgMjUuNy00MS40IDQ1LjQtNzEuOCA1OC44LTMwLjIgMTMuNS02MyAyMC4yLTk4LjIgMjAuMi00OC42LS41LTg4LTExLjQtMTE4LjItMzIuOC0zNS4xLTI1LTUyLjYtNTcuOS01Mi42LTk5LjFsMC01LjZjMS4yLTI4LjEgOS41LTU0LjYgMjQuOC03OS44IDE1LjEtMjQuOSAzNy4xLTQxLjcgNjYuMS01MC41IDE0LjktNC40IDI5LjktNi42IDQ1LTYuNiAxNS41IDAgMzEuNiAyLjkgNDguMSA4LjZzMzUuMiAxNS41IDU1LjkgMjkuNWw1NC4xIDM2LjNjMTUuMSA5LjggMjguOCAxNi41IDQxLjIgMjAtMi42LTI1LjEtMTEuNy00Ni42LTI3LjMtNjQuNS0xNS43LTE4LjEtMzUuNi0zMS4zLTU5LjktMzkuN0wyNTcgMjIwYy0yMS40LTcuNS0zNy4zLTE0LjktNDcuNy0yMi4yLTI4LjItMTkuMS00My44LTQ1LjItNDctNzguNWwtLjUtOS44YzAtMzIuMSAxMy01OC45IDM5LTgwLjUgMjMtMTkuMyA1MC42LTI5IDgyLjUtMjkgMjQgMCA0NS42IDYuOSA2NC43IDIwLjggMTkuMiAxNCAzMC4xIDMzLjggMzIuNiA1OS40bC41IDEwYzAgMTguNi00LjggMzQuNS0xNC40IDQ3LjctOS44IDEzLjItMTguNSAxOS45LTI2IDE5LjktMS42LS4xLTMuMS0uMy00LjUtLjZsLTM0IDMyYy01LjUgMy05LjIgMi41LTExLjEtMS42LTEuOS0yLjItMS44LTQuOSAuNS04LjJsLjItLjJjLjUtLjcgMS4yLTEuNSAyLTIuNGwzMS42LTMwYy0uNC0xLjUtLjYtMy4xLS42LTQuOCAwLTQuMSAxLjYtNy42IDQuOS0xMC40IDEzLjgtMTIuNCAyMC44LTI2LjcgMjAuOC00Mi44IDAtMTYtNi4xLTI5LjUtMTguMi00MC40cy0yOC43LTE2LjUtNDkuNy0xNi44Yy0yNi4yIDAtNDcuOCA3LjktNjQuNyAyMy43UzE5Mi42IDg5LjkgMTkyLjYgMTEyYzAgMTcuOCA2LjkgMzMuOSAyMC42IDQ4LjMgMTMuNiAxNC4yIDM0LjYgMjUuNCA2MyAzMy41IDM5LjggMTEuNSA3MC4yIDMxIDkxLjMgNTguMyAxOC43IDI0LjIgMjkuMSA1MS4zIDMxLjMgODEuNCAyLjItLjcgNC4zLTEuNSA2LjUtMi42bC0uMSAuMXpNMjk0LjQgMTc4LjdjMCAxLjEgLjYgMS42IDEuOCAxLjYgLjEgMCA5LjctOC45IDI4LjgtMjYuNiAwLTIuNC01LjEgLjktMTUuMyAxMC0xMC4yIDkuMi0xNS4zIDE0LjItMTUuMyAxNC45bDAgLjF6bTggNi40YzAtMS0uNS0xLjUtMS41LTEuNS0xLjEgMC0yLjEgLjUtMi45IDEuNi0xLjktLjEtMy4zIC4xLTQuMiAuNy0uNCAuMi0uNSAuNS0uNSAuNyAwIC43IC41IDEuMyAxLjUgMS42bDMuMyAwYzIuOS0xLjEgNC40LTIuMiA0LjQtMy4zbC0uMSAuMnpNMzI1IDE2NS4yYzAtMi44LTEuNi0yLjgtNC45IDAtMS42IDEuNS0zLjYgMy41LTYgNi4yLS44IC42LTIuNiAyLjItNS4zIDQuOS0yLjggMi45LTQuMiA0LjctNC4yIDUuM2wuMiAxLjNjLjcgLjIgMS4yIC40IDEuNSAuNCAuMSAwIDMuMy0yLjkgOS41LTguN3M5LjMtOC45IDkuMy05LjNsLS4xLS4xem0xNTkuNyAxMjBsLTMwLjYgMjdjMS44IDEgMy4yIDIuNCA0IDQuMmwzMC4yLTI3Yy4yLTEuMiAuMS0yLjItLjUtMi45LS42LS41LTEuNi0uOS0zLjEtMS4zem0tMS42LS45bC0uNy0uNy0yNyAyMS45IDEuNiAyIDI2LTIzLjEgLjEtLjF6TTM2Ni45IDM2My45Yy04LTIuMS0xNS40LTQuNi0yMi4yLTcuNS0xNS4zLTYuMi0zNC4zLTE3LTU3LTMyLjRsLTM3LjQtMjUuM2MtMTUuOC0xMC4xLTMwLjItMTcuNi00My4yLTIyLjYtMTMuMS00LjktMjYtNy4zLTM4LjYtNy4zbC01LjUgMGMtMzIuMiAxLjctNTcuMiAxMy44LTc1IDM2LjItMTYuNiAyMC44LTI1IDQ1LjMtMjUgNzMuNiAwIDMxLjggMTIuOCA1Ni43IDM4LjIgNzQuNyAyNS40IDE4LjEgNjAuMiAyNy4xIDEwNC40IDI3LjEgMzQuNyAwIDY0LTYuMiA4Ny44LTE4LjYgMjMuNy0xMi40IDQyLjEtMjguOCA1NS4yLTQ5LjIgOS44LTE1LjUgMTUuOS0zMS44IDE4LjItNDguOGwuMSAuMXpcIl1cbn07XG52YXIgZmFTZWxsY2FzdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzZWxsY2FzdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjJkYVwiLCBcIk0zNTMuNSAzMkw5NC44IDMyQzQyLjcgMzIgLjEgNzQuNiAuMSAxMjYuNmwwIDI1OC43Qy4xIDQzNy40IDQyLjcgNDgwIDk0LjggNDgwbDI1OC43IDBjNTIuMSAwIDk0LjctNDIuNiA5NC43LTk0LjZsMC0yNTguOGMwLTUyLTQyLjYtOTQuNi05NC43LTk0LjZ6bS01MCAzMTYuNGMtMjcuOSA0OC4yLTg5LjkgNjQuOS0xMzguMiAzNy4yLTIyLjkgMzkuOC01NC45IDguNi00Mi4zLTEzLjJsMTUuNy0yNy4yYzUuOS0xMC4zIDE5LjItMTMuOSAyOS41LTcuOSAxOC42IDEwLjgtLjEtLjEgMTguNSAxMC43IDI3LjYgMTUuOSA2My40IDYuMyA3OS40LTIxLjMgMTUuOS0yNy42IDYuMy02My40LTIxLjMtNzkuNC0xNy44LTEwLjItLjYtLjQtMTguNi0xMC42LTI0LjYtMTQuMi0zLjQtNTEuOSAyMS42LTM3LjUgMTguNiAxMC44LS4xLS4xIDE4LjUgMTAuNyA0OC40IDI4IDY1LjEgOTAuMyAzNy4yIDEzOC41em0yMS44LTIwOC44Yy0xNyAyOS41LTE2LjMgMjguOC0xOSAzMS41LTYuNSA2LjUtMTYuMyA4LjctMjYuNSAzLjYtMTguNi0xMC44IC4xIC4xLTE4LjUtMTAuNy0yNy42LTE1LjktNjMuNC02LjMtNzkuNCAyMS4zcy02LjMgNjMuNCAyMS4zIDc5LjRjMCAwIDE4LjUgMTAuNiAxOC42IDEwLjYgMjQuNiAxNC4yIDMuNCA1MS45LTIxLjYgMzcuNS0xOC42LTEwLjggLjEgLjEtMTguNS0xMC43LTQ4LjItMjcuOC02NC45LTkwLjEtMzcuMS0xMzguNCAyNy45LTQ4LjIgODkuOS02NC45IDEzOC4yLTM3LjJsNC44LTguNGMxNC4zLTI0LjkgNTItMy4zIDM3LjcgMjEuNXpcIl1cbn07XG52YXIgZmFNaXggPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnbWl4JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmM2NiXCIsIFwiTTAgNjRMMCA0MTIuOWMwIDU2LjIgODggNTguMSA4OCAwbDAtMjM4LjZjNy45LTUyLjkgODgtNTAuNCA4OCA2LjVsMCAxNzUuM2MwIDU3LjkgOTYgNTggOTYgMEwyNzIgMjQwYzUuMy01NC43IDg4LTUyLjUgODggNC4zbDAgMjMuOGMwIDU5LjkgODggNTYuNiA4OCAwTDQ0OCA2NCAwIDY0elwiXVxufTtcbnZhciBmYUNjQXBwbGVQYXkgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY2MtYXBwbGUtcGF5JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNDE2XCIsIFwiTTMwMi4yIDIxOC40YzAgMTcuMi0xMC41IDI3LjEtMjkgMjcuMWwtMjQuMyAwIDAtNTQuMiAyNC40IDBjMTguNCAwIDI4LjkgOS44IDI4LjkgMjcuMXpNMzQ5LjcgMjgxYzAgOC4zIDcuMiAxMy43IDE4LjUgMTMuNyAxNC40IDAgMjUuMi05LjEgMjUuMi0yMS45bDAtNy43LTIzLjUgMS41Yy0xMy4zIC45LTIwLjIgNS44LTIwLjIgMTQuNHpNNTc2IDc5bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ3OWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA3OUMwIDUyLjUgMjEuNSAzMSA0OCAzMWw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTI3LjggMTk3LjJjOC40IC43IDE2LjgtNC4yIDIyLjEtMTAuNCA1LjItNi40IDguNi0xNSA3LjctMjMuNy03LjQgLjMtMTYuNiA0LjktMjEuOSAxMS4zLTQuOCA1LjUtOC45IDE0LjQtNy45IDIyLjh6bTYwLjYgNzQuNWMtLjItLjItMTkuNi03LjYtMTkuOC0zMC0uMi0xOC43IDE1LjMtMjcuNyAxNi0yOC4yLTguOC0xMy0yMi40LTE0LjQtMjcuMS0xNC43LTEyLjItLjctMjIuNiA2LjktMjguNCA2LjktNS45IDAtMTQuNy02LjYtMjQuMy02LjQtMTIuNSAuMi0yNC4yIDcuMy0zMC41IDE4LjYtMTMuMSAyMi42LTMuNCA1NiA5LjMgNzQuNCA2LjIgOS4xIDEzLjcgMTkuMSAyMy41IDE4LjcgOS4zLS40IDEzLTYgMjQuMi02IDExLjMgMCAxNC41IDYgMjQuMyA1LjkgMTAuMi0uMiAxNi41LTkuMSAyMi44LTE4LjIgNi45LTEwLjQgOS44LTIwLjQgMTAtMjF6bTEzNS40LTUzLjRjMC0yNi42LTE4LjUtNDQuOC00NC45LTQ0LjhsLTUxLjIgMCAwIDEzNi40IDIxLjIgMCAwLTQ2LjYgMjkuMyAwYzI2LjggMCA0NS42LTE4LjQgNDUuNi00NXptOTAgMjMuN2MwLTE5LjctMTUuOC0zMi40LTQwLTMyLjQtMjIuNSAwLTM5LjEgMTIuOS0zOS43IDMwLjVsMTkuMSAwYzEuNi04LjQgOS40LTEzLjkgMjAtMTMuOSAxMyAwIDIwLjIgNiAyMC4yIDE3LjJsMCA3LjUtMjYuNCAxLjZjLTI0LjYgMS41LTM3LjkgMTEuNi0zNy45IDI5LjEgMCAxNy43IDEzLjcgMjkuNCAzMy40IDI5LjQgMTMuMyAwIDI1LjYtNi43IDMxLjItMTcuNGwuNCAwIDAgMTYuNCAxOS42IDAgMC02OCAuMSAwek01MTYgMjEwLjlsLTIxLjUgMC0yNC45IDgwLjYtLjQgMC0yNC45LTgwLjYtMjIuMyAwIDM1LjkgOTkuMy0xLjkgNmMtMy4yIDEwLjItOC41IDE0LjItMTcuOSAxNC4yLTEuNyAwLTQuOS0uMi02LjItLjNsMCAxNi40YzEuMiAuNCA2LjUgLjUgOC4xIC41IDIwLjcgMCAzMC40LTcuOSAzOC45LTMxLjhMNTE2IDIxMC45elwiXVxufTtcbnZhciBmYUJyYXZlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2JyYXZlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNjNjXCIsIFwiTTE0NS42IDBsMTU3IDAgNDQuNyA1MC44czM5LjMtMTAuOSA1Ny44IDcuNiAzMy44IDM0LjkgMzMuOCAzNC45bC0xMiAyOS41IDE1LjMgNDMuN3MtNDQuOSAxNzAuMi01MC4xIDE5MWMtMTAuNCA0MC45LTE3LjQgNTYuOC00Ni45IDc3LjVzLTgyLjkgNTYuOC05MS42IDYyLjJjLTEuOSAxLjItMy45IDIuNS01LjkgMy45LTcuNSA1LjEtMTUuOCAxMC44LTIzLjUgMTAuOHMtMTYuMS01LjctMjMuNS0xMC44Yy0yLTEuNC00LTIuOC01LjktMy45LTguNy01LjUtNjIuMS00MS41LTkxLjYtNjIuMnMtMzYuNS0zNi42LTQ2LjktNzcuNWMtNS4zLTIwLjgtNTAuMS0xOTEtNTAuMS0xOTFMMjEuNSAxMjIuOCA5LjMgOTMuM3MxNS4zLTE2LjQgMzMuOC0zNC45IDU3LjgtNy42IDU3LjgtNy42TDE0NS42IDB6bTc4LjUgNDA3LjZjMy43IDAgOC45LTQuNyAxMy04LjQgLjYtLjUgMS4yLTEuMSAxLjctMS41IDQuMi0zLjcgNDcuOC0zNy41IDUxLTM5LjhzNS40LTYuNSAxLjktOC43Yy0yLjgtMS43LTEwLTUuNS0yMC4zLTEwLjgtMy0xLjYtNi4zLTMuMi05LjctNS0xNS40LTgtMzQuNS0xNC43LTM3LjUtMTQuN3MtMjIuMSA2LjgtMzcuNSAxNC43Yy0zLjUgMS44LTYuNyAzLjUtOS43IDUtMTAuMyA1LjMtMTcuNiA5LjEtMjAuMyAxMC44LTMuNiAyLjItMS40IDYuNCAxLjkgOC43czQ2LjggMzYuMSA1MSAzOS44Yy41IC41IDEuMSAxIDEuNyAxLjUgNC4xIDMuNyA5LjMgOC40IDEzIDguNGwtLjIgMHptMC0xNjUuN2M0LjcgMCAxNy42LTMgMjYuNC01bDItLjVjNy44LTEuOCA3LjMtNi4zIDYuNC0xMy0uMS0uOC0uMi0xLjYtLjMtMi40LS42LTYuMS01LjgtMzMuMS05LjEtNTAuMy0xLjEtNS44LTItMTAuNS0yLjQtMTIuOS0xLjUtOC4xLS42LTkuNCAuNy0xMS4zIC4yLS4zIC41LS43IC43LTEuMSAxLjQtMi4zIDE2LTYuMiAyNy45LTkuNSAyLjUtLjcgNC44LTEuMyA2LjktMS45IDEwLjYtMyAzMi40LS42IDQ0LjIgLjYgMS44IC4yIDMuNCAuNCA0LjcgLjUgOS42IC45IDEwLjQgMi4zIDcuMiAzLjgtMi4zIDEuMS0xNi4yIDYuMy0yOC43IDEwLjktNC43IDEuOC05LjIgMy41LTEyLjggNC44LTEuNSAuNS0zIDEuMS00LjUgMS43LTEyLjUgNC42LTI3LjIgMTAtMjguOSAxOS40LTEuNSA4LjMgNS4yIDE5LjkgMTEuMyAzMC4zIDEuNiAyLjggMy4yIDUuNSA0LjYgOC4xIDYuMyAxMS45IDYuNSAxMy4zIDYuMSAxOC4xLS40IDMuOS0xNC41IDEyLjctMjIuNCAxNy42LTEuOCAxLjEtMy4zIDIuMS00LjIgMi43LS44IC41LTIuMSAxLjQtMy44IDIuNC04LjYgNS4yLTI2LjMgMTYtMjYuMyAyMi41IDAgNy44IDI0LjYgMjguMSAzMi40IDMzLjJzMjguOSAxNi4xIDM3LjkgMTcuOCAyMy04LjUgMzEuMi0yMy44YzcuNy0xNC40IDEuNy0yOC41LTMuMi00MGwtLjktMi4yYy00LjUtMTAuNiAxLjktMTcgNi4yLTIxLjMgLjUtLjUgMS0xIDEuNC0xLjRsNDMtNDUuN2MxLjMtMS4zIDIuNS0yLjYgMy43LTMuOCA1LjgtNS43IDEwLjgtMTAuNSAxMC44LTIyLjggMC0xNC45LTU3LjUtODQuNS01Ny41LTg0LjVzLTQ4LjUgOS4zLTU1LjEgOS4zYy01LjIgMC0xNS4zLTMuNS0yNS44LTcuMS0yLjctLjktNS40LTEuOS04LTIuNy0xMy00LjMtMjEuOC00LjQtMjEuOC00LjRzLTguNyAwLTIxLjggNC40Yy0yLjcgLjktNS40IDEuOC04IDIuNy0xMC41IDMuNi0yMC42IDcuMS0yNS44IDcuMS02LjUgMC01NS4xLTkuMy01NS4xLTkuM3MtNTcuNSA2OS42LTU3LjUgODQuNWMwIDEyLjMgNC45IDE3LjEgMTAuOCAyMi44IDEuMiAxLjIgMi41IDIuNCAzLjcgMy44bDQzLjEgNDUuOGMuNCAuNSAuOSAuOSAxLjQgMS40IDQuMyA0LjMgMTAuNiAxMC43IDYuMiAyMS4zbC0uOSAyLjJjLTQuOSAxMS41LTExIDI1LjYtMy4yIDQwIDguMiAxNS4zIDIyLjIgMjUuNSAzMS4yIDIzLjhzMzAuMS0xMi43IDM3LjktMTcuOCAzMi40LTI1LjQgMzIuNC0zMy4yYzAtNi41LTE3LjctMTcuMy0yNi4zLTIyLjUtMS43LTEtMy4xLTEuOS0zLjgtMi40LS45LS42LTIuNC0xLjUtNC4yLTIuNy03LjktNC45LTIyLTEzLjctMjIuNC0xNy42LS40LTQuOC0uMy02LjIgNi4xLTE4LjEgMS4zLTIuNSAyLjktNS4zIDQuNi04LjEgNi0xMC40IDEyLjgtMjIgMTEuMy0zMC4zLTEuNy05LjQtMTYuNC0xNC44LTI4LjktMTkuNC0xLjYtLjYtMy4xLTEuMS00LjUtMS43LTMuNi0xLjQtOC4xLTMuMS0xMi44LTQuOGwtLjEgMGMtMTIuNS00LjctMjYuNC05LjktMjguNy0xMC45LTMuMi0xLjUtMi4zLTIuOCA3LjItMy44IDEuMy0uMSAyLjktLjMgNC43LS41IDExLjgtMS4zIDMzLjYtMy42IDQ0LjItLjYgMi4xIC42IDQuNCAxLjIgNi45IDEuOSAxMS45IDMuMiAyNi41IDcuMiAyNy45IDkuNSAuMiAuNCAuNSAuNyAuNyAxLjEgMS4zIDEuOSAyLjIgMy4yIC43IDExLjMtLjQgMi40LTEuMyA3LjEtMi40IDEyLjktMy4zIDE3LjItOC41IDQ0LjItOS4xIDUwLjMtLjEgLjgtLjIgMS43LS4zIDIuNC0uOCA2LjctMS40IDExLjIgNi40IDEzbDIgLjVjOC44IDIgMjEuOCA1IDI2LjQgNWwwLS4xelwiXVxufTtcbnZhciBmYUV0c3kgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZXRzeScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjJkN1wiLCBcIk0zODQgMzQ4Yy0xLjggMTAuNy0xMy44IDExMC0xNS41IDEzMi0xMTcuOS00LjMtMjE5LjktNC43LTM2OC41IDBsMC0yNS41YzQ1LjUtOC45IDYwLjYtOCA2MS0zNS4yIDEuOC03Mi4zIDMuNS0yNDQuMSAwLTMyMi0xLTI4LjUtMTIuMS0yNi44LTYxLTM2TDAgMzUuOGM3My45IDIuNCAyNTUuOSA4LjYgMzYzLTMuOC0zLjUgMzguMi03LjggMTI2LjUtNy44IDEyNi41bC0yMy4yIDBDMzIwLjkgMTE1LjcgMzEzLjIgNjggMjc3LjMgNjhsLTEzNyAwYy0xMC4yIDAtMTAuNyAzLjUtMTAuNyA5LjhsMCAxNjMuOGM1OCAuNSA4OC41LTIuNSA4OC41LTIuNSAyOS44LTEgMjcuNi04LjUgNDAuNy02NS4zbDI1LjggMGMtNC40IDEwMS40LTMuOSA2MS44LTEuOCAxNjAuM0wyNTcgMzM0Yy05LjItNDAuMS05LjEtNjEtMzkuNS02MS41IDAgMC0yMS41LTItODgtMmwwIDEzOWMwIDI2IDE0LjMgMzguMyA0NC4zIDM4LjNsODkuMyAwYzYzLjYgMCA2Ni42LTI1IDk4LjctOTkuOGwyMi4yIDB6XCJdXG59O1xudmFyIGZhQnRjID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2J0YycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjE1YVwiLCBcIk0zMTAuNCAyNDIuNmMyNy43LTE0LjIgNDUuNC0zOS40IDQxLjMtODEuMy01LjQtNTcuNC01Mi41LTc2LjYtMTE0LjgtODEuOWwwLTc5LjQtNDguNSAwIDAgNzcuMmMtMTIuNiAwLTI1LjUgLjMtMzguNCAuNmwwLTc3LjgtNDguNSAwIDAgNzkuNGMtMTcuOCAuNS0zOC42IC4zLTk3LjQgMGwwIDUxLjdjMzguMy0uNyA1OC40LTMuMSA2MyAyMS40bDAgMjE3LjRjLTIuOSAxOS41LTE4LjUgMTYuNy01My4zIDE2LjFMNCA0NDMuN2M4OC41IDAgOTcuNCAuMyA5Ny40IC4zbDAgNjggNDguNSAwIDAtNjcuMWMxMy4yIC4zIDI2LjIgLjMgMzguNCAuM2wwIDY2LjcgNDguNSAwIDAtNjhjODEuMy00LjQgMTM1LjYtMjQuOSAxNDIuOS0xMDEuNSA1LjctNjEuNC0yMy4zLTg4LjktNjkuMy05OS45ek0xNTAuOCAxMzQuNmMyNy40IDAgMTEzLjEtOC41IDExMy4xIDQ4LjUgMCA1NC41LTg1LjcgNDguMi0xMTMuMSA0OC4ybDAtOTYuN3ptMCAyNTEuOGwwLTEwNi41YzMyLjggMCAxMzMuMS05LjEgMTMzLjEgNTMuMyAwIDYwLjItMTAwLjQgNTMuMy0xMzMuMSA1My4zelwiXVxufTtcbnZhciBmYUFkbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdhZG4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxNzBcIiwgXCJNMjU2IDE2Ny41bDY0LjkgOTguOC0xMjkuOCAwIDY0LjktOTguOHpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzk2LjIgODIuN2wtMTQ4LjItMjIzLjItMTQ4LjIgMjIzLjIgMzAuNCAwIDMzLjYtNTEuNyAxNjguNiAwIDMzLjYgNTEuNyAzMC4yIDB6XCJdXG59O1xudmFyIGZhU3F1YXJlWFR3aXR0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3F1YXJlLXgtdHdpdHRlcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTYxYVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yOTcuMSA4NGwtMTAzLjggMTE4LjYgMTIyLjEgMTYxLjQtOTUuNiAwLTc0LjgtOTcuOS04NS43IDk3LjktNDcuNSAwIDExMS0xMjYuOS0xMTcuMS0xNTMuMSA5OCAwIDY3LjcgODkuNSA3OC4yLTg5LjUgNDcuNSAwek0zMjMuMyAzNjcuNmwtMTY5LjktMjI0LjctMjguMyAwIDE3MS44IDIyNC43IDI2LjQgMHpcIl1cbn07XG52YXIgZmFTcXVhcmVGb250QXdlc29tZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtZm9udC1hd2Vzb21lJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNWFkXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTkwIDEyMmMwIDkuMy00LjggMTcuNC0xMi4xIDIybDE4OC45IDBjNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yIDAgMS44LS40IDMuNy0xLjEgNS40TDMxMiAyNjQgMzQyLjkgMzMzLjRjLjcgMS43IDEuMSAzLjUgMS4xIDUuNCAwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjJsLTE4Ni44IDAgMCAzMi0zMiAwIDAtMjA5LjVjLTYuMS00LjgtMTAtMTIuMi0xMC0yMC41IDAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZ6XCJdXG59O1xudmFyIGZhRm9ydW1iZWUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZm9ydW1iZWUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyMTFcIiwgXCJNNS44IDMwOS43QzIgMjkyLjcgMCAyNzUuNSAwIDI1OC4zIDAgMTM1IDk5LjggMzUgMjIzLjEgMzUgMjM5LjcgMzUgMjU2LjQgMzcgMjcyLjQgNDAuNSAxNDkgODcuNSA1MS45IDE4NiA1LjggMzA5Ljd6TTM5OC43IDEyMC41Yy0xMy43LTE3LjUtMjkuNy0zMi43LTQ3LjgtNDUuMy0xNDkuNiA0NC4zLTI2Ni4zIDE2Mi4xLTMwOS43IDMxMiAxMi41IDE4LjEgMjggMzUuNiA0NS4yIDQ5IDQzLjEtMTUxLjMgMTYxLjItMjcxLjcgMzEyLjMtMzE1Ljd6bTE1LjggMjUyLjdjMTUuMi0yNS4xIDI1LjQtNTMuNyAyOS41LTgyLjgtNzkuNCA0Mi45LTE0NSAxMTAuNi0xODcuNiAxOTAuMyAzMC00LjQgNTguOS0xNS4zIDg0LjYtMzEuMyAzNSAxMy4xIDcwLjkgMjQuMyAxMDcgMzMuNi05LjMtMzYuNS0yMC40LTc0LjUtMzMuNS0xMDkuOHptMjkuNy0xNDUuNWMtMi42LTE5LjUtNy45LTM4LjctMTUuOC01Ni44LTEzNy45IDQ1LjgtMjQ2LjQgMTU2LjYtMjkxLjMgMjk1LjEgMTguMSA3LjYgMzcgMTIuNSA1Ni42IDE1LjIgNDYuMy0xMTQuMSAxMzYuOC0yMDYuOCAyNTAuNS0yNTMuNXpcIl1cbn07XG52YXIgZmE0Mkdyb3VwID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJzQyLWdyb3VwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJpbm5vc29mdFwiXSwgXCJlMDgwXCIsIFwiTTMyMCA5NmwwIDMyMGMyMSAwIDQxLjgtNC4xIDYxLjItMTIuMnMzNy0xOS44IDUxLjktMzQuNyAyNi42LTMyLjUgMzQuNy01MS45IDEyLjItNDAuMiAxMi4yLTYxLjItNC4xLTQxLjgtMTIuMi02MS4yLTE5LjgtMzcuMS0zNC43LTUxLjktMzIuNS0yNi42LTUxLjktMzQuNy00MC4yLTEyLjItNjEuMi0xMi4yek0wIDI1NkwxNjAgNDE2IDMyMCAyNTYgMTYwIDk2IDAgMjU2em00ODAgMGMwIDIxIDQuMSA0MS44IDEyLjIgNjEuMnMxOS44IDM3IDM0LjcgNTEuOSAzMi41IDI2LjYgNTEuOSAzNC43IDQwLjIgMTIuMiA2MS4yIDEyLjJsMC0zMjBjLTQyLjQgMC04My4xIDE2LjktMTEzLjEgNDYuOVM0ODAgMjEzLjYgNDgwIDI1NnpcIl1cbn07XG52YXIgZmFJbm5vc29mdCA9IGZhNDJHcm91cDtcbnZhciBmYVN0dW1ibGV1cG9uQ2lyY2xlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3N0dW1ibGV1cG9uLWNpcmNsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFhM1wiLCBcIk0yNjQgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgMTc3LjVjLTkuOCAwLTE3LjggOC0xNy44IDE3LjhsMCAxMDYuOWMwIDQwLjktMzMuOSA3My45LTc0LjkgNzMuOS00MS40IDAtNzQuOS0zMy41LTc0LjktNzQuOWwwLTQ2LjUgNTcuMyAwIDAgNDUuOGMwIDEwIDggMTcuOCAxNy44IDE3LjhzMTcuOC03LjkgMTcuOC0xNy44bDAtMTA4LjRjMC00MCAzNC4yLTcyLjEgNzQuNy03Mi4xIDQwLjcgMCA3NC43IDMyLjMgNzQuNyA3Mi42bDAgMjMuNy0zNC4xIDEwLjEtMjIuOS0xMC43IDAtMjAuNmMuMS05LjYtNy45LTE3LjYtMTcuNy0xNy42ek00MzEuNiAzMDkuMWMwIDQxLjQtMzMuNSA3NC45LTc0LjkgNzQuOS00MS4yIDAtNzQuOS0zMy4yLTc0LjktNzQuMmwwLTQ2LjggMjIuOSAxMC43IDM0LjEtMTAuMSAwIDQ3LjFjMCA5LjggOCAxNy42IDE3LjggMTcuNnMxNy44LTcuOSAxNy44LTE3LjZsMC00OCA1Ny4zIDBjLS4xIDQ1LjktLjEgNDYuNC0uMSA0Ni40elwiXVxufTtcbnZhciBmYVN5bWZvbnkgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnc3ltZm9ueScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjgzZFwiLCBcIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM4OS43IDE1MS41Yy0xMS41IC40LTE5LjQtNi40LTE5LjgtMTYuOS0uMy05LjIgNi43LTEzLjQgNi41LTE4LjktLjItNi41LTEwLjItNi44LTEyLjktNi43LTM5LjggMS4zLTQ4LjYgNTctNTguOSAxMTMuOCAyMS40IDMuMiAzNi42LS43IDQ1LjEtNi4yIDEyLTcuNy0zLjMtMTUuNy0xLjQtMjQuNiA0LTE4LjIgMzIuNi0xOSAzMiA1LjMtLjQgMTcuOS0yNS45IDQxLjgtNzcuNiAzNS43LTEwLjggNTkuNS0xOC40IDExNS01OC4yIDE2MS43LTI5IDM0LjUtNTguNCAzOS44LTcxLjYgNDAuMy0yNC42IC45LTQxLTEyLjMtNDEuNi0yOS44LS42LTE3IDE0LjQtMjYuMyAyNC4zLTI2LjYgMjEuOS0uOCAzMC4xIDI1LjcgMTQuOSAzNC0xMi4xIDkuNyAuMSAxMi42IDIuMSAxMi42IDEwLjQtLjQgMTcuMy01LjUgMjIuMi05IDI0LTIwIDMzLjItNTQuOSA0NS40LTExOC4zIDguMi00OS43IDE3LTc4IDE4LjItODItMTYuOS0xMi43LTI3LjEtMjguNi00OS44LTM0LjctMTUuNi00LjItMjUuMS0uNi0zMS44IDcuOC03LjkgMTAtNS4zIDIzIDIuNCAzMC43bDEyLjYgMTRjMTUuNSAxNy45IDI0IDMxLjkgMjAuOCA1MC42LTUuMSAyOS45LTQwLjcgNTIuOS04Mi45IDM5LjktMzYtMTEuMS00Mi43LTM2LjYtMzguNC01MC42IDcuNS0yNC4yIDQyLjQtMTEuNyAzNC42IDEzLjYtMi44IDguNi00LjkgOC43LTYuMyAxMy4xLTQuNiAxNC44IDQxLjggMjguNCA1MS0xLjQgNC41LTE0LjUtNS4zLTIxLjctMjIuMi0zOS45LTI4LjUtMzEuNy0xNi02NS41IDIuOS03OS43IDUyLjgtMzkuNCAxMDAuNSAxNy41IDExMC42IDI1LjggMzcuMi0xMDkgMTAwLjUtMTA1LjUgMTAyLjQtMTA1LjUgMjUuMi0uOCA0NC4yIDEwLjYgNDQuOCAyOC42IC4yIDcuNy00LjIgMjIuNi0xOS41IDIzLjF6XCJdXG59O1xudmFyIGZhU2FsZXNmb3JjZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzYWxlc2ZvcmNlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmODNiXCIsIFwiTTI0OS40IDI0NS42bC0yNi40IDBjLjctNS4yIDMuMy0xNC4xIDEzLjYtMTQuMSA2LjggMCAxMiAzLjggMTIuNyAxNC4xek0zODYgMjMxLjhjLS41IDAtMTQuMS0xLjgtMTQuMSAyMHMxMy42IDIwIDE0LjEgMjBjMTMgMCAxNC4xLTEzLjUgMTQuMS0yMCAwLTIxLjgtMTMuNy0yMC0xNC4xLTIwek0xNDIuOCAyNTUuNWMtMS4xIC45LTIgMi0yLjUgMy4ycy0uOCAyLjctLjcgNGMwIDQuOCAyLjEgNi4xIDMuMyA3IDQuNyAzLjcgMTUuMSAyLjEgMjAuOSAxbDAtMTYuOWMtNS4zLTEuMS0xNi43LTItMjAuOSAxLjZ6TTY0MC41IDIzMmMwIDg3LjYtODAgMTU0LjQtMTY1LjQgMTM2LjQtMTguNCAzMy03MC43IDcwLjgtMTMyLjIgNDEuNi00MS4yIDk2LTE3Ny45IDkyLjItMjEzLjgtNS4yLTExOS43IDIzLjktMTc4LjgtMTM4LjQtNzUuMy0xOTkuMy0zNC44LTc5LjQgMjIuNi0xNzMuNiAxMTQuMy0xNzMuNiAxOS4xIDAgMzcuOSA0LjQgNTUgMTIuOXMzMiAyMC43IDQzLjYgMzUuOGMyMC43LTIxLjQgNDkuNC0zNC44IDgxLjEtMzQuOCA0Mi4zIDAgNzkgMjMuNSA5OC44IDU4LjYgOTIuOC00MC43IDE5My44IDI4LjIgMTkzLjggMTI3LjV6TTEyMC45IDI2My44YzAtMTEuOC0xMS43LTE1LjItMTcuOS0xNy4yLTUuMy0yLjEtMTMuNC0zLjUtMTMuNC04LjkgMC05LjUgMTctNi43IDI1LjItMi4xIDAgMCAxLjIgLjcgMS42LS41IC4yLS43IDIuNC02LjYgMi42LTcuMyAuMS0uMyAuMS0uNi0uMS0uOHMtLjQtLjUtLjYtLjZjLTEyLjMtNy42LTQwLjctOC41LTQwLjcgMTIuNyAwIDEyLjUgMTEuNSAxNS40IDE3LjkgMTcuMiA0LjcgMS42IDEzLjIgMyAxMy4yIDguNyAwIDQtMy41IDcuMS05LjIgNy4xLTYuOSAwLTEzLjUtMi4yLTE5LTYuMy0uNS0uMi0xLjQtLjctMS42IC43bC0yLjQgNy41Yy0uNSAuOSAuMiAxLjIgLjIgMS40IDEuOCAxLjQgMTAuMyA2LjYgMjIuOCA2LjYgMTMuMiAwIDIxLjQtNy4xIDIxLjQtMTguMWwwIDB6bTMyLTQyLjZjLTEwLjEgMC0xOC43IDMuMi0yMS40IDUuMi0uMSAuMS0uMiAuMi0uMyAuM3MtLjEgLjItLjEgLjQgMCAuMyAwIC40IC4xIC4zIC4yIC40bDIuNiA3LjFjLjEgLjIgLjIgLjUgLjUgLjZzLjUgLjIgLjcgLjFjLjYgMCA2LjgtNCAxNi45LTQgNCAwIDcuMSAuNyA5LjIgMi40IDMuNiAyLjggMy4xIDguMyAzLjEgMTAuNi00LjgtLjMtMTkuMS0zLjQtMjkuNCAzLjgtMi4zIDEuNi00LjMgMy44LTUuNSA2LjNzLTEuOSA1LjQtMS44IDguMmMwIDUuOSAxLjUgMTAuNCA2LjYgMTQuNCAxMi4yIDguMiAzNi4zIDIgMzguMSAxLjQgMS42LS4zIDMuNS0uNyAzLjUtMS45bDAtMzMuOWMwLTQuNiAuMy0yMS42LTIyLjgtMjEuNmwwIC4xem00Ni42LTIxYzAtLjIgMC0uMy0uMS0uNXMtLjEtLjMtLjMtLjQtLjItLjItLjQtLjMtLjMtLjEtLjUtLjFsLTkuOCAwYy0uMiAwLS4zIDAtLjUgLjFzLS4zIC4xLS40IC4zLS4yIC4yLS4zIC40LS4xIC4zLS4xIC41bDAgNzljMCAuMiAwIC4zIC4xIC41cy4xIC4zIC4zIC40IC4yIC4yIC40IC4zIC4zIC4xIC41IC4xbDkuOSAwYy4yIDAgLjMgMCAuNS0uMXMuMy0uMSAuNC0uMyAuMi0uMiAuMy0uNCAuMS0uMyAuMS0uNWwtLjEtNzl6bTU1LjcgMjguOWMtMi4xLTIuMy02LjgtNy41LTE3LjYtNy41LTMuNSAwLTE0LjIgLjItMjAuNyA4LjktNi40IDcuNi02LjYgMTguMS02LjYgMjEuNCAwIDMuMSAuMiAxNC4zIDcuMSAyMS4yIDIuNiAyLjkgOS4xIDguMiAyMi44IDguMiAxMC44IDAgMTYuNS0yLjMgMTguNi0zLjggLjUtLjIgLjctLjcgLjItMS45bC0yLjMtNi44Yy0uMS0uMy0uMy0uNS0uNi0uNnMtLjUtLjItLjgtLjFjLTIuNiAuOS02LjMgMi44LTE1LjMgMi44LTE3LjQgMC0xNi44LTE0LjctMTYuOS0xNi43bDM3LjIgMGMuMyAwIC41LS4xIC43LS4zcy40LS40IC40LS43Yy0uMyAwIDIuMS0xNC43LTYuMS0yNC4ybDAgMHptMzYuNyA1Mi43YzEzLjIgMCAyMS40LTcuMSAyMS40LTE4LjEgMC0xMS44LTExLjctMTUuMi0xNy45LTE3LjItNC4xLTEuNy0xMy40LTMuNC0xMy40LTguOSAwLTMuOCAzLjMtNi40IDguNS02LjQgNS44IC4xIDExLjUgMS42IDE2LjcgNC4yIDAgMCAxLjIgLjcgMS42LS41IC4yLS43IDIuNC02LjYgMi42LTcuMyAuMS0uMyAuMS0uNi0uMS0uOHMtLjQtLjUtLjYtLjZjLTcuOS00LjktMTYuNy00LjktMjAuMi00LjktMTIgMC0yMC41IDcuMy0yMC41IDE3LjYgMCAxMi41IDExLjUgMTUuNCAxNy45IDE3LjIgNi4xIDIgMTMuMiAzLjMgMTMuMiA4LjcgMCA0LTMuNSA3LjEtOS4yIDcuMS02LjkgMC0xMy41LTIuMi0xOS02LjQtLjEtLjEtLjMtLjItLjUtLjJzLS40IDAtLjUgLjEtLjMgLjItLjQgLjMtLjIgLjMtLjIgLjVsLTIuMyA3LjVjLS41IC45IC4yIDEuMiAuMiAxLjQgMS43IDEuNCAxMC4zIDYuNiAyMi44IDYuNmwwIDB6TTM1Ny42IDIyNGMwLS43LS4yLTEuMi0xLjItMS4ybC0xMS44IDBjMC0uMSAuOS04LjkgNC41LTEyLjUgNC4yLTQuMiAxMS44LTEuNiAxMi0xLjYgMS4yIC41IDEuNCAwIDEuNi0uNWwyLjgtNy44Yy43LS45IDAtMS4yLS4yLTEuNC01LjEtMi0xNy40LTIuOS0yNC41IDQuMi01LjUgNS41LTcgMTMuOS04IDE5LjVsLTguNSAwYy0uMyAwLS42IC4yLS44IC40cy0uMyAuNS0uNCAuOGwtMS40IDcuOGMwIC43IC4yIDEuMiAxLjIgMS4ybDguMiAwYy04LjUgNDcuOS04LjcgNTAuMi0xMC4zIDU1LjUtMS4xIDMuNi0zLjMgNi45LTUuOSA3LjgtLjEgMC0zLjkgMS43LTkuNi0uMiAwIDAtLjktLjUtMS40IC43LS4yIC43LTIuNiA2LjgtMi44IDcuNXMwIDEuNCAuNSAxLjRjNS4xIDIgMTMgMS44IDE3LjkgMCA2LjMtMi4zIDkuNy03LjkgMTEuNS0xMi45IDIuOC03LjcgMi44LTkuOCAxMS44LTU5LjdsMTIuMiAwYy4zIDAgLjYtLjIgLjgtLjRzLjMtLjUgLjQtLjhsMS40LTcuOHpNNDExIDI0MGMtLjYtMS43LTUuMS0xOC4xLTI1LjItMTguMS0xNS4yIDAtMjMgMTAtMjUuMiAxOC4xLTEgMy0zLjIgMTQgMCAyMy41IC4xIC4zIDQuNCAxOC4xIDI1LjIgMTguMSAxNSAwIDIyLjktOS42IDI1LjItMTguMSAzLjItOS42IDEtMjAuNSAwLTIzLjV6bTQ1LjQtMTYuN2MtNS0xLjctMTYuNi0xLjktMjIuMSA1LjRsMC00LjVjMC0uMiAwLS4zLS4xLS41cy0uMS0uMy0uMy0uNC0uMi0uMi0uNC0uMy0uMy0uMS0uNS0uMWwtOS40IDBjLS4yIDAtLjMgMC0uNSAuMXMtLjMgLjEtLjQgLjMtLjIgLjItLjMgLjQtLjEgLjMtLjEgLjVsMCA1NS4zYzAgLjIgMCAuMyAuMSAuNXMuMSAuMyAuMyAuNCAuMiAuMiAuNCAuMyAuMyAuMSAuNSAuMWw5LjYgMGMuMiAwIC4zIDAgLjUtLjFzLjMtLjEgLjQtLjMgLjItLjIgLjMtLjQgLjEtLjMgLjEtLjVsMC0yNy44YzAtMi45IC4xLTExLjQgNC41LTE1LjEgNC45LTQuOSAxMi0zLjQgMTMuNC0zLjEgLjMgMCAuNi0uMSAuOC0uM3MuNC0uNCAuNi0uN2MxLjItMi42IDIuMi01LjMgMy4xLTggLjEtLjMgLjEtLjUgMC0uOHMtLjMtLjUtLjUtLjZsMCAwem00Ni44IDU0LjFsLTIuMS03LjNjLS41LTEuMi0xLjQtLjctMS40LS43LTQuMiAxLjgtMTAuMSAxLjktMTEuMyAxLjktNC42IDAtMTcuMi0xLjEtMTcuMi0xOS44IDAtNi4yIDEuOC0xOS44IDE2LjUtMTkuOCAzLjktLjEgNy44IC41IDExLjUgMS42IDAgMCAuOSAuNSAxLjItLjcgLjktMi42IDEuNi00LjUgMi42LTcuNSAuMi0uOS0uNS0xLjItLjctMS4yLTExLjYtMy45LTIyLjMtMi41LTI3LjggMC0xLjYgLjctMTYuMiA2LjUtMTYuMiAyNy41IDAgMi45LS42IDMwLjEgMjguOSAzMC4xIDUuMyAwIDEwLjYtMSAxNS41LTIuOCAuMi0uMiAuNC0uNCAuNS0uNnMuMS0uNSAwLS44bDAgMHptNTMuOS0zOS41Yy0uOC0zLTUuNC0xNi4yLTIyLjMtMTYuMi0xNiAwLTIzLjUgMTAuMS0yNS42IDE4LjYtMS4yIDMuOC0xLjcgNy44LTEuNyAxMS44IDAgMjUuOSAxOC44IDI5LjQgMjkuOSAyOS40IDEwLjggMCAxNi41LTIuMyAxOC42LTMuOCAuNS0uMiAuNy0uNyAuMi0xLjlsLTIuNC02LjhjLS4xLS4zLS4zLS41LS42LS42cy0uNi0uMi0uOC0uMWMtMi42IC45LTYuMyAyLjgtMTUuMyAyLjgtMTcuNCAwLTE2LjktMTQuNy0xNi45LTE2LjdsMzcuMiAwYy4zIDAgLjUtLjEgLjctLjNzLjQtLjQgLjQtLjdjLS4yIDAgLjktNy4xLTEuNC0xNS41bDAgMHptLTIzLjMtNi40Yy0xMC4zIDAtMTMgOS0xMy42IDE0LjFsMjYuNCAwYy0uOS0xMS45LTcuNi0xNC4xLTEyLjctMTQuMWwwIDB6XCJdXG59O1xudmFyIGZhU291cmNldHJlZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzb3VyY2V0cmVlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmN2QzXCIsIFwiTTQyNy40IDIwM2MwLTExMi4xLTkwLjktMjAzLTIwMy0yMDMtMTEyLjEtLjItMjAzIDkwLjYtMjAzLjIgMjAyLjYtLjEgNDMgMTMuNSA4NC44IDM4LjcgMTE5LjZzNjAuOSA2MC42IDEwMS44IDczLjhsMCAxMDEuN2MwIDMuOCAxLjUgNy40IDQuMiAxMC4xczYuMyA0LjIgMTAuMSA0LjJsOTYuNCAwYzMuOCAwIDcuNC0xLjUgMTAuMS00LjJzNC4yLTYuMyA0LjItMTAuMWwwLTEwMS42YzQwLjgtMTMuMiA3Ni41LTM5IDEwMS43LTczLjdzMzguOS03Ni41IDM5LTExOS40em0tMjcxLjYgMGMwLTkwLjggMTM3LjMtOTAuOCAxMzcuMyAwLS4xIDg5LjktMTM3LjMgOTEtMTM3LjMgMHpcIl1cbn07XG52YXIgZmFMaW5rZWRpbkluID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2xpbmtlZGluLWluJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMGUxXCIsIFwiTTEwMC4zIDQ0OGwtOTIuOSAwIDAtMjk5LjEgOTIuOSAwIDAgMjk5LjF6TTUzLjggMTA4LjFDMjQuMSAxMDguMSAwIDgzLjUgMCA1My44IDAgMzkuNSA1LjcgMjUuOSAxNS44IDE1LjhzMjMuOC0xNS44IDM4LTE1LjggMjcuOSA1LjcgMzggMTUuOCAxNS44IDIzLjggMTUuOCAzOGMwIDI5LjctMjQuMSA1NC4zLTUzLjggNTQuM3pNNDQ3LjkgNDQ4bC05Mi43IDAgMC0xNDUuNmMwLTM0LjctLjctNzkuMi00OC4zLTc5LjItNDguMyAwLTU1LjcgMzcuNy01NS43IDc2LjdsMCAxNDguMS05Mi44IDAgMC0yOTkuMSA4OS4xIDAgMCA0MC44IDEuMyAwYzEyLjQtMjMuNSA0Mi43LTQ4LjMgODcuOS00OC4zIDk0IDAgMTExLjMgNjEuOSAxMTEuMyAxNDIuM2wwIDE2NC4zLS4xIDB6XCJdXG59O1xudmFyIGZhSHRtbDUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnaHRtbDUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxM2JcIiwgXCJNMCAzMkwzNC45IDQyNy44IDE5MS41IDQ4MCAzNDkuMSA0MjcuOCAzODQgMzIgMCAzMnpNMzA4LjIgMTU5LjlsLTE4My44IDAgNC4xIDQ5LjQgMTc1LjYgMC0xMy42IDE0OC40LTk3LjkgMjcgMCAuMy0xLjEgMC05OC43LTI3LjMtNi03NS44IDQ3LjcgMCAzLjUgMzguMSA1My41IDE0LjUgNTMuNy0xNC41IDYtNjIuMi0xNjYuOSAwLTEyLjgtMTQ1LjYgMjQxLjEgMC00LjQgNDcuN3pcIl1cbn07XG52YXIgZmFSdXN0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3J1c3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUwN2FcIiwgXCJNNTA4LjUgMjQ5LjhsLTIxLjgtMTMuNWMtLjItMi0uMy0zLjktLjUtNS45bDE4LjctMTcuNWMuOS0uOSAxLjYtMS45IDItMy4xcy41LTIuNSAuMi0zLjctLjgtMi40LTEuNi0zLjMtMS44LTEuNy0zLTIuMWwtMjQtOWMtLjUtMS45LTEuMS0zLjgtMS43LTUuNmwxNS0yMC44Yy43LTEgMS4yLTIuMiAxLjMtMy40czAtMi41LS41LTMuNy0xLjItMi4yLTIuMi0yLjktMi4xLTEuMy0zLjQtMS41bC0yNS40LTQuMmMtLjktMS43LTEuOC0zLjQtMi43LTUuMmwxMC43LTIzLjRjLjUtMS4xIC43LTIuNCAuNi0zLjZzLS41LTIuNC0xLjItMy41LTEuNi0xLjktMi44LTIuNS0yLjQtLjgtMy42LS44bC0yNS44IC45Yy0xLjItMS41LTIuNC0yLjktMy42LTQuNEw0MzkgODEuOGMuMy0xLjIgLjMtMi41LS4xLTMuN3MtMS0yLjMtMS45LTMuMi0yLTEuNS0zLjItMS45LTIuNS0uNC0zLjctLjFMNDA1IDc4LjljLTEuNC0xLjItMi45LTIuNC00LjQtMy42bC45LTI1LjhjLjEtMS4zLS4yLTIuNS0uOC0zLjZzLTEuNC0yLjEtMi41LTIuOC0yLjItMS4xLTMuNS0xLjItMi41IC4xLTMuNyAuNkwzNjcuNyA1My4yYy0xLjctLjktMy40LTEuOC01LjEtMi43bC00LjItMjUuNGMtLjItMS4yLS43LTIuNC0xLjUtMy40cy0xLjgtMS43LTIuOS0yLjItMi40LS43LTMuNy0uNS0yLjQgLjYtMy40IDEuM0wzMjYgMzUuM2MtMS45LS42LTMuOC0xLjEtNS42LTEuN2wtOS0yNGMtLjQtMS4yLTEuMi0yLjItMi4xLTNzLTIuMS0xLjQtMy4zLTEuNi0yLjUtLjItMy43IC4yLTIuMyAxLjEtMy4xIDJMMjgxLjYgMjUuOWMtMi0uMi0zLjktLjQtNS45LS41TDI2Mi4zIDMuNWMtLjctMS4xLTEuNi0xLjktMi43LTIuNnMtMi4zLS45LTMuNi0uOS0yLjUgLjMtMy42IC45LTIgMS41LTIuNyAyLjZMMjM2LjIgMjUuM2MtMiAuMi0zLjkgLjMtNS45IC42TDIxMi45IDcuMWMtLjktLjktMS45LTEuNi0zLjEtMnMtMi41LS41LTMuNy0uMi0yLjQgLjgtMy4zIDEuNi0xLjcgMS44LTIuMSAzbC05IDI0Yy0xLjkgLjYtMy44IDEuMS01LjcgMS43bC0yMC44LTE1Yy0xLS43LTIuMi0xLjItMy40LTEuM3MtMi41IDAtMy43IC41LTIuMiAxLjItMi45IDIuMi0xLjMgMi4xLTEuNSAzLjRsLTQuMiAyNS40Yy0xLjcgLjktMy40IDEuOC01LjIgMi43TDEyMC45IDQyLjZjLTEuMS0uNS0yLjQtLjctMy43LS42cy0yLjUgLjUtMy41IDEuMi0xLjkgMS43LTIuNSAyLjgtLjggMi40LS44IDMuNmwuOSAyNS44Yy0xLjUgMS4yLTMgMi40LTQuNCAzLjZMODEuOCA3M2MtMS4yLS4zLTIuNS0uMy0zLjcgLjFzLTIuMyAxLTMuMiAxLjktMS41IDItMS45IDMuMi0uNCAyLjUtLjEgMy43TDc4LjkgMTA3Yy0xLjIgMS40LTIuNCAyLjktMy42IDQuNGwtMjUuOC0uOWMtMS4zIDAtMi41IC4yLTMuNiAuOHMtMi4xIDEuNC0yLjggMi40LTEuMSAyLjItMS4yIDMuNSAuMSAyLjUgLjYgMy42bDEwLjcgMjMuNGMtLjkgMS43LTEuOCAzLjQtMi43IDUuMmwtMjUuNCA0LjFjLTEuMiAuMi0yLjQgLjctMy40IDEuNXMtMS43IDEuOC0yLjIgMi45LS43IDIuNC0uNSAzLjcgLjYgMi40IDEuMyAzLjRsMTUgMjAuOGMtLjYgMS45LTEuMSAzLjgtMS43IDUuN2wtMjQgOWMtMS4yIC40LTIuMiAxLjItMyAyLjFzLTEuNCAyLjEtMS42IDMuMy0uMiAyLjUgLjIgMy43IDEuMSAyLjMgMiAzLjFsMTguNyAxNy41Yy0uMiAyLS40IDMuOS0uNiA1LjlMMy41IDI0OS44Yy0xLjEgLjctMS45IDEuNi0yLjYgMi43cy0uOSAyLjMtLjkgMy42IC4zIDIuNSAuOSAzLjYgMS41IDIgMi42IDIuN2wyMS44IDEzLjVjLjIgMiAuMyAzLjkgLjYgNS45TDcuMSAyOTkuMWMtLjkgLjktMS42IDEuOS0yIDMuMXMtLjUgMi41LS4yIDMuNyAuOCAyLjQgMS42IDMuMyAxLjggMS43IDMgMi4xbDI0IDljLjYgMS45IDEuMSAzLjggMS43IDUuNmwtMTUgMjAuOGMtLjcgMS0xLjIgMi4yLTEuMyAzLjRzMCAyLjUgLjUgMy43IDEuMiAyLjIgMi4yIDIuOSAyLjEgMS4zIDMuNCAxLjVsMjUuNCA0LjJjLjkgMS43IDEuOCAzLjQgMi43IDUuMUw0Mi42IDM5MS4xYy0uNSAxLjEtLjcgMi40LS42IDMuNnMuNSAyLjUgMS4yIDMuNWMuNyAxLjEgMS42IDEuOSAyLjcgMi41czIuNCAuOCAzLjYgLjhsMjUuOC0uOWMxLjIgMS41IDIuNCAyLjkgMy42IDQuNEw3MyA0MzAuMmMtLjMgMS4yLS4zIDIuNSAuMSAzLjdzMSAyLjMgMS45IDMuMiAyIDEuNSAzLjIgMS45IDIuNSAuNCAzLjcgLjFsMjUuMi01LjljMS41IDEuMiAyLjkgMi40IDQuNCAzLjZsLS45IDI1LjhjMCAxLjMgLjIgMi41IC44IDMuNnMxLjQgMi4xIDIuNSAyLjggMi4yIDEuMSAzLjUgMS4yIDIuNS0uMSAzLjYtLjZsMjMuNC0xMC43YzEuNyAuOSAzLjQgMS44IDUuMSAyLjdsNC4yIDI1LjRjLjIgMS4yIC43IDIuNCAxLjUgMy40czEuOCAxLjggMi45IDIuMiAyLjQgLjcgMy43IC41IDIuNC0uNiAzLjQtMS4zbDIwLjgtMTVjMS45IC42IDMuOCAxLjEgNS42IDEuN2w5IDI0Yy40IDEuMiAxLjIgMi4yIDIuMSAzczIuMSAxLjQgMy4zIDEuNiAyLjUgLjIgMy43LS4yIDIuMy0xLjEgMy4xLTJsMTcuNS0xOC43YzIgLjIgMy45IC40IDUuOSAuNmwxMy41IDIxLjhjLjcgMS4xIDEuNiAxLjkgMi43IDIuNnMyLjMgLjkgMy42IC45IDIuNS0uMyAzLjYtLjkgMi0xLjUgMi43LTIuNmwxMy41LTIxLjhjMi0uMiAzLjktLjMgNS45LS42bDE3LjUgMTguN2MuOSAuOSAxLjkgMS42IDMuMSAyczIuNSAuNSAzLjcgLjIgMi40LS44IDMuMy0xLjYgMS43LTEuOCAyLjEtM2w5LTI0YzEuOS0uNiAzLjgtMS4xIDUuNi0xLjdsMjAuOCAxNWMxIC43IDIuMiAxLjIgMy40IDEuM3MyLjUgMCAzLjctLjUgMi4yLTEuMiAyLjktMi4yIDEuMy0yLjEgMS41LTMuNGw0LjItMjUuNGMxLjctLjkgMy40LTEuOCA1LjEtMi43bDIzLjQgMTAuN2MxLjEgLjUgMi40IC43IDMuNiAuNnMyLjQtLjUgMy41LTEuMiAxLjktMS42IDIuNS0yLjggLjgtMi40IC44LTMuNmwtLjktMjUuOGMxLjUtMS4yIDIuOS0yLjQgNC40LTMuNmwyNS4yIDUuOWMxLjIgLjMgMi41IC4zIDMuNy0uMXMyLjMtMSAzLjItMS45IDEuNS0yIDEuOS0zLjIgLjQtMi41IC4xLTMuN0w0MzMuMSA0MDVjMS4yLTEuNCAyLjQtMi45IDMuNi00LjRsMjUuOCAuOWMxLjMgLjEgMi41LS4yIDMuNi0uOHMyLjEtMS40IDIuOC0yLjVjLjctMSAxLjEtMi4yIDEuMi0zLjVzLS4xLTIuNS0uNi0zLjZsLTEwLjctMjMuNGMuOS0xLjcgMS44LTMuNCAyLjctNS4xbDI1LjQtNC4yYzEuMi0uMiAyLjQtLjcgMy40LTEuNXMxLjgtMS44IDIuMi0yLjkgLjctMi40IC41LTMuNy0uNi0yLjQtMS4zLTMuNGwtMTUtMjAuOGMuNi0xLjkgMS4xLTMuOCAxLjctNS42bDI0LTljMS4yLS40IDIuMi0xLjIgMy0yLjFzMS40LTIuMSAxLjYtMy4zIC4yLTIuNS0uMi0zLjctMS4xLTIuMy0yLTMuMWwtMTguNy0xNy41Yy4yLTEuOSAuNC0zLjkgLjYtNS45bDIxLjgtMTMuNWMxLjEtLjcgMS45LTEuNiAyLjYtMi43cy45LTIuMyAuOS0zLjYtLjMtMi41LS45LTMuNi0xLjUtMi0yLjYtMi43bDAgMHptLTE1MSAxMjkuMWMtMy42LS44LTcuNC0uMS0xMC41IDEuOXMtNS4zIDUuMi02IDguOGwtNy42IDM1LjdjLTI0LjYgMTEuMS01MS4zIDE2LjgtNzguMyAxNi43cy01My42LTYuMS03OC4xLTE3LjRsLTcuNi0zNS43Yy0uNC0xLjgtMS4xLTMuNS0yLjEtNXMtMi40LTIuOC0zLjktMy44LTMuMi0xLjctNS0yLTMuNi0uMy01LjQgLjFsLTMxLjUgNi44Yy01LjgtNi0xMS4zLTEyLjUtMTYuMy0xOS4ybDE1My4yIDBjMS43IDAgMi45LS4zIDIuOS0xLjlsMC01NC4yYzAtMS42LTEuMi0xLjktMi45LTEuOWwtNDQuOCAwIDAtMzQuNCA0OC41IDBjNC40IDAgMjMuNyAxLjMgMjkuOCAyNS45IDEuOSA3LjUgNi4yIDMyLjEgOS4xIDQwIDIuOSA4LjggMTQuNiAyNi41IDI3LjEgMjYuNWw3OSAwYy01LjMgNy4xLTExLjEgMTMuOC0xNy4zIDIwLjFsLTMyLjEtNi45em0yNS44IDM0LjVjMCAzLS45IDYtMi42IDguNXMtNCA0LjUtNi44IDUuNi01LjggMS41LTguOCAuOS01LjctMi03LjgtNC4yLTMuNi00LjgtNC4yLTcuOC0uMy02IC44LTguOCAzLjEtNS4yIDUuNi02LjkgNS40LTIuNiA4LjUtMi42bC40IDBjNCAuMSA3LjcgMS44IDEwLjUgNC42czQuMyA2LjcgNC4zIDEwLjZsLjEgMHptLTIyNS42LS43YzAgMy0uOSA2LTIuNiA4LjVzLTQuMSA0LjUtNi44IDUuNi01LjggMS41LTguOCAuOS01LjctMi03LjgtNC4yLTMuNi00LjgtNC4yLTcuOC0uMy02IC45LTguOCAzLjEtNS4yIDUuNi02LjggNS40LTIuNiA4LjUtMi42bC41IDBjNCAuMSA3LjcgMS44IDEwLjUgNC42czQuMyA2LjcgNC4zIDEwLjZsLjEgMHpNNjkuNiAyMzQuMmwzMi44LTE0LjZjMS43LS43IDMuMi0xLjggNC40LTMuMXMyLjItMi45IDIuOS00LjYgMS0zLjUgLjktNS4zLS41LTMuNi0xLjItNS4zbC02LjgtMTUuMiAyNi42IDAgMCAxMTkuNy01My42IDBjLTYuNi0yMy4yLTguNy00Ny42LTYuMS03MS42ek01OC4zIDE5OC4xYzAtMiAuNC00IDEuMi01LjhzMS45LTMuNSAzLjMtNC45IDMuMS0yLjUgNC45LTMuMyAzLjgtMS4yIDUuOC0xLjJsLjUgMGMzIC4xIDUuOSAxIDguMyAyLjhzNC4zIDQuMSA1LjQgNi45IDEuMyA1LjggLjcgOC44LTIuMSA1LjYtNC4zIDcuNy00LjkgMy41LTcuOCA0LjEtNiAuMi04LjctLjktNS4xLTMuMS02LjgtNS42LTIuNS01LjQtMi41LTguNGwwIDB6bTE1NS4yIDI0LjVsMC0zNS4zIDYzLjMgMGMzLjMgMCAyMy4xIDMuOCAyMy4xIDE4LjYgMCAxMi4zLTE1LjIgMTYuNy0yNy43IDE2LjdsLTU4LjcgMHpNMzk5IDMwNi43Yy05LjggMS4xLTIwLjYtNC4xLTIyLTEwLjEtNS44LTMyLjUtMTUuNC0zOS40LTMwLjYtNTEuNCAxOC45LTEyIDM4LjUtMjkuNiAzOC41LTUzLjMgMC0yNS41LTE3LjUtNDEuNi0yOS40LTQ5LjUtMTYuOC0xMS0zNS4zLTEzLjItNDAuMy0xMy4ybC0xOTguOSAwYzI3LjUtMzAuNyA2NC40LTUxLjUgMTA0LjktNTkuMmwyMy41IDI0LjZjMS4zIDEuMyAyLjggMi40IDQuNCAzLjFzMy41IDEuMSA1LjMgMS4yIDMuNi0uMyA1LjMtLjkgMy4yLTEuNyA0LjYtMi45bDI2LjMtMjVjMjYuOCA1IDUyLjEgMTUuOCA3NC4zIDMxLjZzNDAuNiAzNi4yIDU0LjEgNTkuOWwtMTggNDAuNmMtMS41IDMuNC0xLjUgNy4yLS4yIDEwLjZzMy45IDYuMiA3LjMgNy43bDM0LjYgMTUuM2MxLjEgMTAuOCAxLjIgMjEuNyAuNCAzMi41bC0xOS4zIDBjLTEuOSAwLTIuNyAxLjMtMi43IDMuMWwwIDguOGMwIDIwLjgtMTEuNyAyNS4zLTIyIDI2LjV6TTI0MCA2MC4yYzAtNCAxLjYtNy45IDQuNS0xMC43czYuNy00LjUgMTAuNy00LjVsLjQgMGMzIC4xIDUuOSAxIDguNCAyLjhzNC4zIDQuMSA1LjQgNi45IDEuMyA1LjggLjcgOC44LTIuMSA1LjYtNC4zIDcuNy00LjkgMy41LTcuOCA0LTYgLjItOC43LS45LTUuMS0zLjEtNi44LTUuNi0yLjUtNS40LTIuNS04LjR6TTQzNi44IDIxNGMtMiAwLTQtLjQtNS44LTEuMnMtMy41LTEuOS00LjktMy4zLTIuNS0zLjEtMy4zLTQuOS0xLjItMy44LTEuMi01LjggLjQtNCAxLjItNS44IDEuOS0zLjUgMy4zLTQuOSAzLjEtMi41IDQuOS0zLjMgMy44LTEuMiA1LjgtMS4ybC40IDBjNCAuMSA3LjkgMS43IDEwLjcgNC42czQuNCA2LjggNC4zIDEwLjgtMS43IDcuOS00LjYgMTAuNy02LjggNC40LTEwLjggNC4zelwiXVxufTtcbnZhciBmYUhvcm5iaWxsID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2hvcm5iaWxsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTkyXCIsIFwiTTc2LjggMzcwLjNjMSA3LjgtLjQgMTUuOC00LjEgMjIuOHMtOS42IDEyLjYtMTYuNyAxNi4xLTE1LjEgNC43LTIyLjkgMy4zLTE1LTUuMS0yMC42LTEwLjctOS4yLTEyLjktMTAuNS0yMC43IDAtMTUuOCAzLjYtMjIuOSA5LjMtMTIuOCAxNi4zLTE2LjUgMTUtNSAyMi45LTMuOWMtNzguMy0xMTEuMyA1Mi0xOTAuNSA1Mi0xOTAuNS01LjkgNDMtOC4yIDkxLjItOC4yIDkxLjItNjcuMyA0MS41IC45IDY0LjEgMzkuOCA3Mi45IDkuOSAyNyAyNy44IDUwLjIgNTEuNCA2Ni43czUxLjYgMjUuMyA4MC4zIDI1LjNjMS45IDAgMy44LS4yIDUuNy0uM2wuMSAxOC45Yy05OS4yIDEuNC0xNTguNy0yOS4xLTE4OC45LTUxLjZ6bTEwOC0zMjcuN2MuOS03LjItLjItMTQuNi0zLjQtMjEuMi0zLTYuMi03LjYtMTEuNS0xMy40LTE1LjNzLTEyLjUtNS45LTE5LjQtNi4yLTEzLjggMS40LTE5LjggNC43LTExLjEgOC4zLTE0LjUgMTQuMy01LjIgMTIuOC01IDE5LjcgMi4yIDEzLjcgNS45IDE5LjUgOC45IDEwLjYgMTUuMSAxMy42IDEzLjEgNC40IDIwIDMuOWMtMjIuNiAyOS45LTUzLjggODkuNi01Mi40IDE5MGwyMS44LS4yYzAtLjktLjEtMS44LS4xLTIuNyAwLTI4IDguNC01NS4zIDI0LjEtNzguNXMzNy45LTQxLjIgNjMuOC01MS42YzgtMzcuNyAzMC43LTExNC4zIDczLjgtNDQuMyAwIDAgNDguMSAyLjQgOTEuMiA4LjIgMCAwLTc3LjgtMTI4LTE4Ny42LTU0LjFsMCAwek00ODkgMTc2LjhjNi4zLTMgMTEuNy03LjcgMTUuNS0xMy42czUuOS0xMi43IDYuMS0xOS44LTEuNi0xNC01LjItMjAtOC43LTExLTE0LjktMTQuMy0xMy4yLTQuOC0yMC4yLTQuNC0xMy44IDIuOC0xOS41IDYuOS0xMC4yIDkuNi0xMyAxNi4xLTMuNyAxMy42LTIuNyAyMC41Yy0zMS43LTIxLjktODkuOC00OS4xLTE4My40LTQ3LjdsLjEgMjIuNWMyLjctLjIgNS40LS40IDguMS0uNCAyOC4xIDAgNTUuNiA4LjUgNzguOSAyNC4zczQxLjIgMzguMyA1MS42IDY0LjVjMzkuMSA5IDEwNS4xIDMxLjYgMzguNSA3Mi41IDAgMC0yLjMgNDguMS04LjIgOTEuMiAwIDAgMTMzLjQtODEuMiA0OS0xOTQuNiA2LjYgLjYgMTMuMy0uNiAxOS4zLTMuNWwwIDB6TTM3NC40IDQzNi4yYzIxLjQtMzIuNSA0Ni40LTg5LjcgNDUuMS0xNzkuN2wtMTkuNSAuMWMuMSAyLjEgLjMgNC4xIC4zIDYuMiAwIDI4LjYtOC44IDU2LjUtMjUuMSA4MHMtMzkuNSA0MS40LTY2LjMgNTEuNGMtOC45IDM5LTMxLjQgMTA2LjctNzIuOCAzOS41IDAgMC00OC4xLTIuMy05MS4yLTguMiAwIDAgNzkuOSAxMzEuMyAxOTEuOSA1MSAuMyA0LjkgMS41IDkuNiAzLjYgMTQgMi45IDYuMSA3LjUgMTEuNCAxMy4xIDE1LjFzMTIuMiA2IDE5IDYuNCAxMy42LTEuMSAxOS42LTQuMiAxMS4xLTcuOCAxNC43LTEzLjYgNS42LTEyLjQgNS43LTE5LjItMS41LTEzLjUtNC44LTE5LjQtOC4yLTEwLjktMTQuMS0xNC4zLTEyLjYtNS4yLTE5LjQtNS4xbDAtLjF6XCJdXG59O1xudmFyIGZhUGhwID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3BocCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjQ1N1wiLCBcIk0zMjAgMTA0LjVjMTcxLjQgMCAzMDMuMiA3Mi4yIDMwMy4yIDE1MS41UzQ5MS4zIDQwNy41IDMyMCA0MDcuNUMxNDguNiA0MDcuNSAxNi44IDMzNS4zIDE2LjggMjU2UzE0OC43IDEwNC41IDMyMCAxMDQuNXptMC0xNi44QzE0My4zIDg3LjcgMCAxNjMgMCAyNTZTMTQzLjMgNDI0LjMgMzIwIDQyNC4zIDY0MCAzNDkgNjQwIDI1NiA0OTYuNyA4Ny43IDMyMCA4Ny43ek0yMTguMiAyNDIuNWMtNy45IDQwLjUtMzUuOCAzNi4zLTcwLjEgMzYuM2wxMy43LTcwLjZjMzggMCA2My44LTQuMSA1Ni40IDM0LjN6TTk3LjQgMzUwLjNsMzYuNyAwIDguNy00NC44YzQxLjEgMCA2Ni42IDMgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43bC03MC43IDAtMzIuNyAxNjguN3pNMjgzLjEgMTM2LjdsMzYuNSAwLTguNyA0NC44YzMxLjUgMCA2MC43LTIuMyA3NC44IDEwLjcgMTQuOCAxMy42IDcuNyAzMS04LjMgMTEzLjFsLTM3IDBjMTUuNC03OS40IDE4LjMtODYgMTIuNy05Mi01LjQtNS44LTE3LjctNC42LTQ3LjQtNC42bC0xOC44IDk2LjYtMzYuNSAwIDMyLjctMTY4LjZ6TTUwNSAyNDIuNWMtOCA0MS4xLTM2LjcgMzYuMy03MC4xIDM2LjNsMTMuNy03MC42YzM4LjIgMCA2My44LTQuMSA1Ni40IDM0LjN6TTM4NC4yIDM1MC4zbDM2LjggMCA4LjctNDQuOGM0My4yIDAgNjcuMSAyLjUgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43bC03MC43IDAtMzIuOCAxNjguN3pcIl1cbn07XG52YXIgZmFEaXNxdXMgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZGlzcXVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlN2Q1XCIsIFwiTTI5MC4yIDUxMmMtNjIuNiAwLTExOS45LTIyLjktMTY0LjItNjAuOEwxNyA0NjYuMSA1OS4xIDM2Mi4yYy0xNC43LTMyLjQtMjIuOS02OC4zLTIyLjktMTA2LjIgMC0xNDEuNCAxMTMuNy0yNTYgMjU0LTI1NiAxNDAuMyAwIDI1NCAxMTQuNiAyNTQgMjU2IDAgMTQxLjQtMTEzLjcgMjU2LTI1NCAyNTZ6TTQyOC45IDI1NS4zbDAtLjdDNDI4LjkgMTgwLjcgMzc2LjggMTI4IDI4NyAxMjhsLTk3IDAgMCAyNTYgOTUuNiAwYzkwLjUgMCAxNDMuNC01NC45IDE0My40LTEyOC43ek0yODggMzIxLjFsLTI4LjQgMCAwLTEzMC4yIDI4LjQgMGM0MS43IDAgNjkuMyAyMy44IDY5LjMgNjQuN2wwIC43YzAgNDEuMy0yNy43IDY0LjctNjkuMyA2NC43elwiXVxufTtcbnZhciBmYTUwMHB4ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJzUwMHB4JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMjZlXCIsIFwiTTcxLjggMzQ0LjNjLTYuNS0xNC4yLTYuOS0xOC4zIDcuNC0yMy4xIDI1LjYtOCA4IDkuMiA0My4yIDQ5LjJsLjMgMCAwLTkzLjljMS4yLTUwLjIgNDQtOTIuMiA5Ny43LTkyLjIgNTMuOSAwIDk3LjcgNDMuNSA5Ny43IDk2LjggMCA2My40LTYwLjggMTEzLjItMTI4LjUgOTMuMy0xMC41LTQuMi0yLjEtMzEuNyA4LjUtMjguNiA1MyAwIDg5LjQtMTAuMSA4OS40LTY0LjQgMC02MS03Ny4xLTg5LjYtMTE2LjktNDQuNi0yMy41IDI2LjQtMTcuNiA0Mi4xLTE3LjYgMTU3LjYgNTAuNyAzMSAxMTguMyAyMiAxNjAuNC0yMC4xIDI0LjgtMjQuOCAzOC41LTU4IDM4LjUtOTMgMC0zNS4yLTEzLjgtNjguMi0zOC44LTkzLjMtMjQuOC0yNC44LTU3LjgtMzguNS05My4zLTM4LjVTMTUxIDE2My4zIDEyNi4zIDE4OGMtLjMgLjMtMTYgMTYuNS0yMS4yIDIzLjlsLS41IC42Yy0zLjMgNC43LTYuMyA5LjEtMjAuMSA2LjEtNi45LTEuNy0xNC4zLTUuOC0xNC4zLTExLjhMNzAuMiAyMGMwLTUgMy45LTEwLjUgMTAuNS0xMC41TDMyMiA5LjVjOC4zIDAgOC4zIDExLjYgOC4zIDE1LjEgMCAzLjkgMCAxNS4xLTguMyAxNS4xbC0yMjMuMiAwIDAgMTMyLjkgLjMgMGMxMDQuMi0xMDkuOCAyODIuOC0zNiAyODIuOCAxMDguOSAwIDE3OC4xLTI0NC44IDIyMC4zLTMxMC4xIDYyLjh6TTEzNS4xIDgzLjVjLS41IDQuMiA0LjYgMjQuNSAxNC42IDIwLjYgMTI0LjgtNDcuNSAyMDIuOCA0MC40IDIwOS40IDQwLjQgNC44IDAgMjIuOC0xNS4zIDE0LjMtMjIuOC05My4yLTg5LTIzNC41LTU3LTIzOC4zLTM4LjJ6TTM2MS41IDQxNC43Yy0xMTAgMTA5LjktMjk5IDYwLjgtMzMyLTEwNC4yIDAtMTIuMi0zMC40LTcuNC0yOC45IDMuMyAyNCAxNzMuNCAyNDYgMjU2LjkgMzgxLjYgMTIxLjMgNi45LTcuOC0xMi42LTI4LjQtMjAuNy0yMC40ek0xODIuMSAzMDYuNmMwIDQgNC4zIDcuMyA1LjUgOC41IDMgMyA2LjEgNC40IDguNSA0LjQgMy44IDAgMi42IC4yIDIyLjMtMTkuNSAxOS42IDE5LjMgMTkuMSAxOS41IDIyLjMgMTkuNSA1LjQgMCAxOC41LTEwLjQgMTAuNy0xOC4ybC0xNy4zLTE3LjMgMTguMi0xOC4yYzYuMy02LjgtMTAuMS0yMS44LTE2LjItMTUuN0wyMTguMiAyNjhjLTE4LjYtMTguOC0xOC40LTE5LjUtMjEuNS0xOS41LTUgMC0xOCAxMS43LTEyLjQgMTcuM0wyMDIuNSAyODRjLTE4LjEgMTcuOS0yMC40IDE5LjItMjAuNCAyMi42elwiXVxufTtcbnZhciBmYUFmZmlsaWF0ZXRoZW1lID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2FmZmlsaWF0ZXRoZW1lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMzZiXCIsIFwiTTE1OS43IDIzNy40QzEwOC40IDMwOC4zIDQzLjEgMzQ4LjIgMTQgMzI2LjYtMTUuMiAzMDQuOSAyLjggMjMwIDU0LjIgMTU5LjEgMTA1LjUgODguMiAxNzAuOCA0OC4zIDE5OS45IDY5LjlzMTEuMSA5Ni42LTQwLjIgMTY3LjV6bTM1MS4yLTU3LjNjLTczLjggMTIzLjQtMTkxLjkgMTg3LjctMjY0LjUgMTQzLjYtMjUtMTUuMi00MS4zLTQxLjItNDktNzMuOC0zMy42IDY0LjgtOTIuOCAxMTMuOC0xNjQuMSAxMzMuMiA0OS44IDU5LjMgMTI0LjEgOTYuOSAyMDcgOTYuOSAxNTAgMCAyNzEuNi0xMjMuMSAyNzEuNi0yNzQuOSAuMS04LjUtLjMtMTYuOC0xLTI1elwiXVxufTtcbnZhciBmYVJlZFJpdmVyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3JlZC1yaXZlcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjNlM1wiLCBcIk0zNTMuMiAzMkw5NC44IDMyQzQyLjQgMzIgMCA3NC40IDAgMTI2LjhMMCAzODUuMkMwIDQzNy42IDQyLjQgNDgwIDk0LjggNDgwbDI1OC40IDBjNTIuNCAwIDk0LjgtNDIuNCA5NC44LTk0LjhsMC0yNTguNEM0NDggNzQuNCA0MDUuNiAzMiAzNTMuMiAzMnpNMTQ0LjkgMjAwLjlsMCA1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwwLTE1NC4yYzAtMTMuMiAxMC43LTIzLjkgMjMuOS0yMy45bDE1NC4yIDBjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bC01Ni4zIDBjLTEyLjMtLjYtMjQuNiAxMS42LTI0IDI0em0xNzYuMyA3MmwtNTYuMyAwYy0xMi4zLS42LTI0LjYgMTEuNi0yNCAyNGwwIDU2LjNjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bDAtMTU0LjJjMC0xMy4yIDEwLjctMjMuOSAyMy45LTIzLjlsMTU0LjIgMGMwIDI3LTIxLjkgNDguOS00OC45IDQ4Ljl6XCJdXG59O1xudmFyIGZhVHdpdHRlciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd0d2l0dGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDk5XCIsIFwiTTQ1OS40IDE1MS43Yy4zIDQuNSAuMyA5LjEgLjMgMTMuNiAwIDEzOC43LTEwNS42IDI5OC42LTI5OC42IDI5OC42LTU5LjUgMC0xMTQuNy0xNy4yLTE2MS4xLTQ3LjEgOC40IDEgMTYuNiAxLjMgMjUuMyAxLjMgNDkuMSAwIDk0LjItMTYuNiAxMzAuMy00NC44LTQ2LjEtMS04NC44LTMxLjItOTguMS03Mi44IDYuNSAxIDEzIDEuNiAxOS44IDEuNiA5LjQgMCAxOC44LTEuMyAyNy42LTMuNi00OC4xLTkuNy04NC4xLTUyLTg0LjEtMTAzbDAtMS4zYzE0IDcuOCAzMC4yIDEyLjcgNDcuNCAxMy4zLTI4LjMtMTguOC00Ni44LTUxLTQ2LjgtODcuNCAwLTE5LjUgNS4yLTM3LjQgMTQuMy01MyA1MS43IDYzLjcgMTI5LjMgMTA1LjMgMjE2LjQgMTA5LjgtMS42LTcuOC0yLjYtMTUuOS0yLjYtMjQgMC01Ny44IDQ2LjgtMTA0LjkgMTA0LjktMTA0LjkgMzAuMiAwIDU3LjUgMTIuNyA3Ni43IDMzLjEgMjMuNy00LjUgNDYuNS0xMy4zIDY2LjYtMjUuMy03LjggMjQuNC0yNC40IDQ0LjgtNDYuMSA1Ny44IDIxLjEtMi4zIDQxLjYtOC4xIDYwLjQtMTYuMi0xNC4zIDIwLjgtMzIuMiAzOS4zLTUyLjYgNTQuM3pcIl1cbn07XG52YXIgZmFGb3J0QXdlc29tZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdmb3J0LWF3ZXNvbWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyODZcIiwgXCJNNDg5LjUgMjg3LjlsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTE3OC4zYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtNi04LTQuNi0xMS43LTQuNmwwLTM4YzguMy0yIDE3LjEtMy40IDI1LjctMy40IDEwLjkgMCAyMC45IDQuMyAzMS40IDQuMyA0LjYgMCAyNy43LTEuMSAyNy43LThsMC02MGMwLTIuNi0yLTQuNi00LjYtNC42LTUuMSAwLTE1LjEgNC4zLTI0IDQuMy05LjcgMC0yMC45LTQuMy0zMi42LTQuMy04IDAtMTYgMS4xLTIzLjcgMi45bDAtNC45YzUuNC0yLjYgOS4xLTguMyA5LjEtMTQuMyAwLTIwLjctMzEuNC0yMC44LTMxLjQgMCAwIDYgMy43IDExLjcgOS4xIDE0LjNsMCAxMTEuN2MtMy43IDAtMTEuNy0xLjQtMTEuNyA0LjZsMCAzMi0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi4zIDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAxNzguMy0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAyMTkuNSAxODIuOSAwIDAtOTZjMC03Mi42IDEwOS43LTcyLjYgMTA5LjcgMGwwIDk2IDE4Mi45IDAgMC0yMTkuNWMuMS0yLjYtMS45LTQuNi00LjUtNC42em0tMjg4LjEtNC41YzAgMi42LTIgNC42LTQuNiA0LjZsLTI3LjQgMGMtMi42IDAtNC42LTItNC42LTQuNmwwLTY0YzAtMi42IDItNC42IDQuNi00LjZsMjcuNCAwYzIuNiAwIDQuNiAyIDQuNiA0LjZsMCA2NHptMTQ2LjQgMGMwIDIuNi0yIDQuNi00LjYgNC42bC0yNy40IDBjLTIuNiAwLTQuNi0yLTQuNi00LjZsMC02NGMwLTIuNiAyLTQuNiA0LjYtNC42bDI3LjQgMGMyLjYgMCA0LjYgMiA0LjYgNC42bDAgNjR6XCJdXG59O1xudmFyIGZhTWl4ZXIgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnbWl4ZXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwNTZcIiwgXCJNODIuNiA3Ni4xYy0zLjgtNS4xLTguNy05LjQtMTQuMi0xMi41cy0xMS43LTUuMS0xOC4xLTUuNy0xMi44IC4xLTE4LjggMi4yLTExLjYgNS4zLTE2LjMgOS42Yy0xNy42IDE2LjItMTkgNDMuNS00LjggNjIuOGw5MS44IDEyMy05Mi4zIDEyNC4xYy0xNC4yIDE5LjMtMTMuMSA0Ni42IDQuNyA2Mi44IDQuNyA0LjMgMTAuMyA3LjYgMTYuMyA5LjZzMTIuNSAyLjggMTguOCAyLjIgMTIuNS0yLjUgMTguMS01LjcgMTAuNC03LjQgMTQuMi0xMi41TDIxMC45IDI2Mi43YzEuNS0yLjEgMi4zLTQuNiAyLjMtNy4xcy0uOC01LTIuMy03LjFMODIuNiA3Ni4xek00MzguMiAzNzkuNmwtOTIuMy0xMjQuMSA5MS44LTEyM2MxNC4yLTE5LjIgMTIuOC00Ni42LTQuNy02Mi44LTQuNy00LjMtMTAuMy03LjYtMTYuMy05LjZzLTEyLjUtMi44LTE4LjgtMi4yLTEyLjUgMi41LTE4LjEgNS43LTEwLjQgNy40LTE0LjIgMTIuNWwtMTI4IDE3Mi4xYy0xLjUgMi4xLTIuMyA0LjYtMi4zIDcuMXMuOCA1IDIuMyA3LjFMMzY2IDQzNS45YzMuOCA1LjEgOC43IDkuNCAxNC4yIDEyLjVzMTEuNyA1LjEgMTguMSA1LjcgMTIuOC0uMSAxOC44LTIuMiAxMS42LTUuMyAxNi4zLTkuNmMxNy44LTE2LjIgMTktNDMuNSA0LjctNjIuOHpcIl1cbn07XG52YXIgZmFMeWZ0ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2x5ZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzYzNcIiwgXCJNMCA4MS4xbDc3LjggMCAwIDIwOC43YzAgMzMuMSAxNSA1Mi44IDI3LjIgNjEtMTIuNyAxMS4xLTUxLjIgMjAuOS04MC4yLTIuOC0xNy0xNC0yNC44LTM3LjMtMjQuOC01OUwwIDgxLjF6TTQ4NS45IDI1NC42bDAtMjIgMjMuOCAwIDAtNzYuOC0yNi4xIDBjLTEwLjEtNDYuMy01MS4yLTgwLjctMTAwLjMtODAuNy01Ni42IDAtMTAyLjcgNDYtMTAyLjcgMTAyLjdsMCAxNzkuMmMxNiAyLjMgMzUuNC0uMyA1MS43LTE0IDE3LjEtMTQgMjQuOC0zNy4yIDI0LjgtNTlsMC02LjcgMzguOCAwIDAtNzYuOC0zOC44IDAgMC0yMy4zYzAtMzQuNiA1Mi4yLTM0LjYgNTIuMiAwbDAgNzcuMWMwIDU2LjYgNDYgMTAyLjcgMTAyLjcgMTAyLjdsMC03Ni41Yy0xNC41IDAtMjYuMS0xMS43LTI2LjEtMjUuOXptLTI5NC4zLTk5bDAgMTEzYzAgMTUuNC0yMy44IDE1LjQtMjMuOCAwbDAtMTEzLTc2LjggMCAwIDEzMi43YzAgMjMuOCA4IDU0IDQ1IDYzLjkgMzcgOS44IDU4LjItMTAuNiA1OC4yLTEwLjYtMi4xIDEzLjQtMTQuNSAyMy4zLTM0LjkgMjUuMy0xNS41IDEuNi0zNS4yLTMuNi00NS03LjhsMCA3MC4zYzI1LjEgNy41IDUxLjUgOS44IDc3LjYgNC43IDQ3LjEtOS4xIDc2LjgtNDguNCA3Ni44LTEwMC44bDAtMTc4LjItNzcuMSAwIDAgLjV6XCJdXG59O1xudmFyIGZhQXBwbGVQYXkgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYXBwbGUtcGF5JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNDE1XCIsIFwiTTExNi45IDE1OC41Yy03LjUgOC45LTE5LjUgMTUuOS0zMS41IDE0LjktMS41LTEyIDQuNC0yNC44IDExLjMtMzIuNiA3LjUtOS4xIDIwLjYtMTUuNiAzMS4zLTE2LjEgMS4yIDEyLjQtMy43IDI0LjctMTEuMSAzMy44em0xMC45IDE3LjJjLTE3LjQtMS0zMi4zIDkuOS00MC41IDkuOS04LjQgMC0yMS05LjQtMzQuOC05LjEtMTcuOSAuMy0zNC41IDEwLjQtNDMuNiAyNi41LTE4LjggMzIuMy00LjkgODAgMTMuMyAxMDYuMyA4LjkgMTMgMTkuNSAyNy4zIDMzLjUgMjYuOCAxMy4zLS41IDE4LjUtOC42IDM0LjUtOC42IDE2LjEgMCAyMC44IDguNiAzNC44IDguNCAxNC41LS4zIDIzLjYtMTMgMzIuNS0yNiAxMC4xLTE0LjggMTQuMy0yOS4xIDE0LjUtMjkuOS0uMy0uMy0yOC0xMC45LTI4LjMtNDIuOS0uMy0yNi44IDIxLjktMzkuNSAyMi45LTQwLjMtMTIuNS0xOC42LTMyLTIwLjYtMzguOC0yMS4xem0xMDAuNC0zNi4ybDAgMTk0LjkgMzAuMyAwIDAtNjYuNiA0MS45IDBjMzguMyAwIDY1LjEtMjYuMyA2NS4xLTY0LjNzLTI2LjQtNjQtNjQuMS02NGwtNzMuMiAwek0yNTguNSAxNjVsMzQuOSAwYzI2LjMgMCA0MS4zIDE0IDQxLjMgMzguNnMtMTUgMzguOC00MS40IDM4LjhsLTM0LjggMCAwLTc3LjR6TTQyMC43IDMzNS45YzE5IDAgMzYuNi05LjYgNDQuNi0yNC45bC42IDAgMCAyMy40IDI4IDAgMC05N2MwLTI4LjEtMjIuNS00Ni4zLTU3LjEtNDYuMy0zMi4xIDAtNTUuOSAxOC40LTU2LjggNDMuNmwyNy4zIDBjMi4zLTEyIDEzLjQtMTkuOSAyOC42LTE5LjkgMTguNSAwIDI4LjkgOC42IDI4LjkgMjQuNWwwIDEwLjgtMzcuOCAyLjNjLTM1LjEgMi4xLTU0LjEgMTYuNS01NC4xIDQxLjUgLjEgMjUuMiAxOS43IDQyIDQ3LjggNDJ6bTguMi0yMy4xYy0xNi4xIDAtMjYuNC03LjgtMjYuNC0xOS42IDAtMTIuMyA5LjktMTkuNCAyOC44LTIwLjVsMzMuNi0yLjEgMCAxMWMwIDE4LjItMTUuNSAzMS4yLTM2IDMxLjJ6bTEwMi41IDc0LjZjMjkuNSAwIDQzLjQtMTEuMyA1NS41LTQ1LjRsNTMuMS0xNDktMzAuOCAwLTM1LjYgMTE1LjEtLjYgMC0zNS42LTExNS4xLTMxLjYgMCA1MS4yIDE0MS45LTIuOCA4LjZjLTQuNiAxNC42LTEyLjEgMjAuMy0yNS41IDIwLjMtMi40IDAtNy0uMy04LjktLjVsMCAyMy40YzEuOCAuNCA5LjMgLjcgMTEuNiAuN3pcIl1cbn07XG52YXIgZmFBcnRzdGF0aW9uID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2FydHN0YXRpb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3N2FcIiwgXCJNMi4xIDM3Ny40bDQzIDc0LjNjNC4zIDguNSAxMC44IDE1LjcgMTguOSAyMC43czE3LjQgNy42IDI3IDcuNmwyODUuNCAwLTU5LjItMTAyLjYtMzE1LjEgMHpNNTAxLjkgMzUwTDMzNS43IDU5LjNjLTQuNC04LjItMTAuOS0xNS4xLTE4LjktMjBTMjk5LjcgMzIgMjkwLjQgMzJsLTg4LjQgMCAyNTcuMyA0NDcuNiA0MC43LTcwLjVjMS45LTMuMiAyMS0yOS43IDItNTkuMXpNMjc1LjIgMzA0LjVsLTExNS41LTIwMC0xMTUuNSAyMDAgMjMxIDB6XCJdXG59O1xudmFyIGZhTm9kZUpzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ25vZGUtanMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzZDNcIiwgXCJNMjI0LjUgNTA4Yy02LjcgMC0xMy41LTEuOC0xOS40LTUuMmwtNjEuNy0zNi41Yy05LjItNS4yLTQuNy03LTEuNy04IDEyLjMtNC4zIDE0LjgtNS4yIDI3LjktMTIuNyAxLjQtLjggMy4yLS41IDQuNiAuNGw0Ny40IDI4LjFjMS43IDEgNC4xIDEgNS43IDBMNDEyIDM2Ny41YzEuNy0xIDIuOC0zIDIuOC01bDAtMjEzLjJjMC0yLjEtMS4xLTQtMi45LTUuMUwyMjcuMyAzNy43Yy0xLjctMS00LTEtNS43IDBMMzcuMSAxNDQuM2MtMS44IDEtMi45IDMtMi45IDUuMWwwIDIxMy4xYzAgMiAxLjEgNCAyLjkgNC45bDUwLjYgMjkuMmMyNy41IDEzLjcgNDQuMy0yLjQgNDQuMy0xOC43bDAtMjEwLjRjMC0zIDIuNC01LjMgNS40LTUuM2wyMy40IDBjMi45IDAgNS40IDIuMyA1LjQgNS4zbDAgMjEwLjVjMCAzNi42LTIwIDU3LjYtNTQuNyA1Ny42LTEwLjcgMC0xOS4xIDAtNDIuNS0xMS42TDIwLjYgMzk2LjFjLTEyLTYuOS0xOS40LTE5LjgtMTkuNC0zMy43bDAtMjEzLjFjMC0xMy44IDcuNC0yNi44IDE5LjQtMzMuN0wyMDUuMSA5YzExLjctNi42IDI3LjItNi42IDM4LjggMEw0MjguNiAxMTUuN2MxMiA2LjkgMTkuNCAxOS44IDE5LjQgMzMuN2wwIDIxMy4xYzAgMTMuOC03LjQgMjYuNy0xOS40IDMzLjdMMjQzLjkgNTAyLjhjLTUuOSAzLjQtMTIuNiA1LjItMTkuNCA1LjJ6TTM3My42IDI5Ny45YzAtMzkuOS0yNy01MC41LTgzLjctNTgtNTcuNC03LjYtNjMuMi0xMS41LTYzLjItMjQuOSAwLTExLjEgNC45LTI1LjkgNDcuNC0yNS45IDM3LjkgMCA1MS45IDguMiA1Ny43IDMzLjggLjUgMi40IDIuNyA0LjIgNS4yIDQuMmwyNCAwYzEuNSAwIDIuOS0uNiAzLjktMS43czEuNS0yLjYgMS40LTQuMWMtMy43LTQ0LjEtMzMtNjQuNi05Mi4yLTY0LjYtNTIuNyAwLTg0LjEgMjIuMi04NC4xIDU5LjUgMCA0MC40IDMxLjMgNTEuNiA4MS44IDU2LjYgNjAuNSA1LjkgNjUuMiAxNC44IDY1LjIgMjYuNyAwIDIwLjYtMTYuNiAyOS40LTU1LjUgMjkuNC00OC45IDAtNTkuNi0xMi4zLTYzLjItMzYuNi0uNC0yLjYtMi42LTQuNS01LjMtNC41bC0yMy45IDBjLTMgMC01LjMgMi40LTUuMyA1LjMgMCAzMS4xIDE2LjkgNjguMiA5Ny44IDY4LjIgNTguNC0uMSA5Mi0yMy4yIDkyLTYzLjR6XCJdXG59O1xudmFyIGZhVW5jaGFydGVkID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3VuY2hhcnRlZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTA4NFwiLCBcIk0xNzEuOCAyMzIuOGMxLjEgMCAyLjEtLjMgMy0uOXMxLjYtMS40IDItMi40YzIuMi05LjggNy40LTE4LjYgMTQuOS0yNS4zIDEuMi0uOCAxLjctMi41IDEuNy00LjEtLjEtLjctLjMtMS4zLS42LTEuOXMtLjktMS4xLTEuNC0xLjRMNzQuNSAxMjguNSAxNDkuMSA4NWMxLjUtLjggMi43LTIgMy42LTMuNXMxLjQtMy4xIDEuNC00LjhjMC0xLjctLjQtMy40LTEuMy00LjlzLTIuMi0yLjctMy43LTMuNEwxMjYuNyA1NS42Yy0xLjUtLjgtMy4xLTEuMi00LjgtMS4ycy0zLjMgLjQtNC44IDEuMkwxNyAxMTMuNmMtMS41IC44LTIuNyAyLTMuNiAzLjVzLTEuNCAzLjEtMS40IDQuOEwxMiAyMzdjMCAxLjcgLjQgMy40IDEuMyA0LjlzMi4yIDIuNyAzLjcgMy40bDIyLjQgMTIuOGMxLjUgLjkgMy4yIDEuMyA1IDEuMiAyLjQgLjEgNC44LS44IDYuNi0yLjUgMS44LTEuOSAyLjgtNC40IDIuOS03bDAtODUuMyAxMTUuOSA2Ny45Yy42IC4zIDEuNCAuNCAyLjEgLjR6TTMyMy40IDM3Ny43Yy0xLjcgLjEtMy40IC41LTUgMS4ybC03NC41IDQzLjEgMC0xMzQuMmMwLTIuOS0yLjktNS44LTYuMi00LjYtOS40IDIuOC0xOS41IDMtMjkgLjQtLjctLjItMS41LS4yLTIuMi0uMXMtMS40IC40LTIgLjktMS4xIDEtMS40IDEuNy0uNSAxLjQtLjUgMi4xbDAgMTMzLjMtNzQuNS00My4xYy0xLjUtLjktMy4yLTEuMy01LTEuMi0yLjUgMC00LjkgMS02LjcgMi44cy0yLjggNC4yLTIuOCA2LjdsMCAyNi4xYzAgMS43IC40IDMuNCAxLjMgNC45czIuMiAyLjcgMy43IDMuNGwxMDAuMiA1Ny42YzEuNSAuOSAzLjIgMS4zIDUgMS4yIDEuNyAwIDMuNC0uNCA1LTEuMmwxMDAuMi01Ny42YzEuNS0uOCAyLjctMiAzLjYtMy41czEuNC0zLjEgMS40LTQuOGwwLTI2LjFjLS44LTQuNi01LjQtOS4xLTEwLjQtOS4xek0yODYuMSA3OGEyMyAyMyAwIDEgMCAwLTQ2IDIzIDIzIDAgMSAwIDAgNDZ6bTYzLjYtMTAuMWEyMyAyMyAwIDEgMCAwIDQ2IDIzIDIzIDAgMSAwIDAtNDZ6bTYzLjIgODMuN2EyMyAyMyAwIDEgMCAwLTQ2IDIzIDIzIDAgMSAwIDAgNDZ6bS02My4yLTkuMmEyMyAyMyAwIDEgMCAwIDQ2IDIzIDIzIDAgMSAwIDAtNDZ6bS02My42IDgzLjJjNC41IDAgOS0xLjMgMTIuOC0zLjlzNi43LTYuMSA4LjUtMTAuMyAyLjItOC44IDEuMy0xMy4zLTMuMS04LjYtNi4zLTExLjgtNy4zLTUuNC0xMS44LTYuMy05LjEtLjQtMTMuMyAxLjMtNy44IDQuNy0xMC4zIDguNS0zLjkgOC4yLTMuOSAxMi44YzAgMyAuNiA2IDEuOCA4LjhzMi45IDUuMyA1IDcuNSA0LjcgMy44IDcuNSA1IDUuOCAxLjggOC44IDEuOGwwIDB6TTIyNCAyNjJjNC41IDAgOS0xLjQgMTIuOC0zLjlzNi43LTYuMSA4LjUtMTAuMyAyLjItOC44IDEuMy0xMy4zLTMuMS04LjYtNi4zLTExLjgtNy4zLTUuNC0xMS44LTYuMy05LjEtLjQtMTMuMyAxLjMtNy44IDQuNy0xMC4zIDguNS0zLjkgOC4yLTMuOSAxMi44YzAgMyAuNiA2IDEuNyA4LjhzMi44IDUuMyA1IDcuNSA0LjcgMy44IDcuNSA1IDUuOCAxLjggOC44IDEuOGwwIDB6bTE4OC45LTgyLjRjLTQuNiAwLTkgMS4zLTEyLjggMy45cy02LjcgNi4xLTguNSAxMC4zLTIuMiA4LjgtMS4zIDEzLjMgMy4xIDguNiA2LjMgMTEuOCA3LjMgNS40IDExLjggNi4zIDkuMSAuNCAxMy4zLTEuMyA3LjgtNC43IDEwLjMtOC41IDMuOS04LjIgMy45LTEyLjhjMC02LjEtMi40LTExLjktNi43LTE2LjNzLTEwLjItNi43LTE2LjMtNi43bDAgMHptMCA3Mi4zYy00LjYgMC05IDEuMy0xMi44IDMuOXMtNi43IDYuMS04LjUgMTAuMy0yLjIgOC44LTEuMyAxMy4zIDMuMSA4LjYgNi4zIDExLjggNy4zIDUuNCAxMS44IDYuMyA5LjEgLjQgMTMuMy0xLjMgNy44LTQuNyAxMC4zLTguNSAzLjktOC4yIDMuOS0xMi44YzAtNi4xLTIuNC0xMS45LTYuNy0xNi4zcy0xMC4yLTYuNy0xNi4zLTYuN2wwIDB6XCJdXG59O1xudmFyIGZhUGxheXN0YXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncGxheXN0YXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYzZGZcIiwgXCJNNTcxIDM3Mi4zYy0xMS4zIDE0LjItMzguOCAyNC4zLTM4LjggMjQuM2wtMjA1LjEgNzMuNiAwLTU0LjMgMTUwLjktNTMuOGMxNy4xLTYuMSAxOS44LTE0LjggNS44LTE5LjQtMTMuOS00LjYtMzkuMS0zLjMtNTYuMiAyLjlsLTEwMC41IDM1LjUgMC01Ni40YzIzLjItNy44IDQ3LjEtMTMuNiA3NS43LTE2LjggNDAuOS00LjUgOTAuOSAuNiAxMzAuMiAxNS41IDQ0LjIgMTQgNDkuMiAzNC43IDM4IDQ4Ljl6TTM0Ni42IDI3OS44bDAtMTM5YzAtMTYuMy0zLTMxLjMtMTguMy0zNS42LTExLjctMy44LTE5IDcuMS0xOSAyMy40bDAgMzQ3LjktOTMuOC0yOS44IDAtNDE0LjdjMzkuOSA3LjQgOTggMjQuOSAxMjkuMiAzNS40IDc5LjUgMjcuMyAxMDYuNCA2MS4zIDEwNi40IDEzNy44IDAgNzQuNS00NiAxMDIuOC0xMDQuNSA3NC42ek00My4zIDQxMC4yYy00NS40LTEyLjgtNTMtMzkuNS0zMi4zLTU0LjggMTkuMS0xNC4yIDUxLjctMjQuOSA1MS43LTI0LjlsMTM0LjUtNDcuOCAwIDU0LjUtOTYuOCAzNC42Yy0xNy4xIDYuMS0xOS43IDE0LjgtNS44IDE5LjRzMzkuMSAzLjMgNTYuMi0yLjlsNDYuNC0xNi45IDAgNDguOGMtNTEuNiA5LjMtMTAxLjQgNy4zLTE1My45LTEwelwiXVxufTtcbnZhciBmYU1pY3JvYmxvZyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdtaWNyb2Jsb2cnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwMWFcIiwgXCJNMzk5LjggMzYyLjJjMjkuNS0zNC43IDQ3LjEtNzguMyA0Ny4xLTEyNS44IDAtMTEzLTk5LjYtMjA0LjQtMjIyLjUtMjA0LjRTMiAxMjMuNSAyIDIzNi40IDEwMS42IDQ0MC45IDIyNC41IDQ0MC45YzI3IDAgNTMuOS00LjUgNzkuNC0xMy40IDEuNC0uNSAzLS41IDQuNS0uMXMyLjcgMS40IDMuNiAyLjZjMTguNiAyNS4xIDQ3LjYgNDIuNyA3OS45IDQ5LjkgMS4xIC4yIDIuMyAwIDMuMy0uNnMxLjctMS42IDEuOS0yLjhjLjEtLjYgLjEtMS4zIDAtMS45cy0uNC0xLjItLjgtMS43Yy0xMi4zLTE2LTE4LjctMzUuOC0xOC01NnM4LjQtMzkuNSAyMS43LTU0LjdsLS4yIC4xek0zMzAgMjEyLjRsLTU3LjMgNDMuNSAyMC44IDY4LjljLjQgMS4zIC40IDIuNy0uMSA0cy0xLjIgMi40LTIuMyAzLjItMi40IDEuMi0zLjggMS4yLTIuNy0uNC0zLjgtMS4ybC01OS4xLTQxLTU5LjEgNDEuMWMtMS4xIC44LTIuNCAxLjItMy44IDEuMnMtMi43LS40LTMuOC0xLjItMS45LTEuOS0yLjMtMy4yLS41LTIuNy0uMS00bDIwLjgtNjguOS01Ny4zLTQzLjVjLTEuMS0uOC0xLjktMS45LTIuMy0zLjJzLS40LTIuNyAwLTQgMS4yLTIuNCAyLjMtMy4yIDIuNC0xLjMgMy43LTEuM2w3MS45LTEuNSAyMy43LTY3LjljLjQtMS4zIDEuMy0yLjQgMi40LTMuMnMyLjQtMS4yIDMuOC0xLjIgMi43IC40IDMuOCAxLjIgMS45IDEuOSAyLjQgMy4ybDIzLjcgNjcuOSA3MS45IDEuNWMxLjQgMCAyLjcgLjQgMy44IDEuMnMxLjkgMS45IDIuMyAzLjIgLjQgMi43IDAgNC0xLjIgMi40LTIuMyAzLjNsMCAwelwiXVxufTtcbnZhciBmYUdpdGtyYWtlbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdnaXRrcmFrZW4nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYzYTZcIiwgXCJNNTU3LjcgMTE4LjFjLTIuMy02LjEtOS4zLTkuMi0xNS4zLTYuNi01LjcgMi40LTguNSA4LjktNi4zIDE0LjYgMTAuOSAyOSAxNi45IDYwLjUgMTYuOSA5My4zIDAgMTM0LjYtMTAwLjMgMjQ1LjctMjMwLjIgMjYyLjdsMC0xMjMuN2M3LjktMS41IDE1LjUtMy42IDIzLTYuMmwwIDEwNGMxMDYuNy0yNS45IDE4NS45LTEyMi4xIDE4NS45LTIzNi44IDAtOTEuOC01MC44LTE3MS44LTEyNS44LTIxMy4zLTUuNy0zLjItMTMtLjktMTUuOSA1LTIuNyA1LjUtLjYgMTIuMiA0LjcgMTUuMSA2Ny45IDM3LjYgMTEzLjkgMTEwIDExMy45IDE5My4yIDAgOTMuMy01Ny45IDE3My4xLTEzOS44IDIwNS40bDAtOTIuMmMxNC4yLTQuNSAyNC45LTE3LjcgMjQuOS0zMy41IDAtMTMuMS02LjgtMjQuNC0xNy4zLTMwLjUgOC4zLTc5LjUgNDQuNS01OC42IDQ0LjUtODMuOWwwLTE0LjdjMC0zOC04Ny45LTE2MS44LTEyOS0xNjQuNy0yLjUtLjItNS0uMi03LjYgMC00MS4yIDMtMTI5LjEgMTI2LjctMTI5LjEgMTY0LjdsMCAxNC44YzAgMjUuMyAzNi4zIDQuMyA0NC41IDgzLjktMTAuNiA2LjEtMTcuMyAxNy40LTE3LjMgMzAuNSAwIDE1LjggMTAuNiAyOSAyNC44IDMzLjVsMCA5Mi4yYy04MS45LTMyLjItMTM5LjgtMTEyLTEzOS44LTIwNS40IDAtODMuMSA0Ni0xNTUuNSAxMTMuOS0xOTMuMiA1LjQtMyA3LjQtOS42IDQuNy0xNS4xLTIuOS01LjktMTAuMS04LjItMTUuOS01LTc1IDQxLjUtMTI1LjggMTIxLjUtMTI1LjggMjEzLjMgMCAxMTQuNyA3OS4yIDIxMC44IDE4NS45IDIzNi44bDAtMTA0YzcuNiAyLjUgMTUuMSA0LjYgMjMgNi4ybDAgMTIzLjdjLTEyOS44LTE3LTIzMC4yLTEyOC4xLTIzMC4yLTI2Mi43IDAtMzIuOCA2LTY0LjMgMTYuOS05My4zIDIuMi01LjgtLjYtMTIuMi02LjMtMTQuNi02LTIuNi0xMyAuNC0xNS4zIDYuNi0xMS44IDMxLjUtMTguMyA2NS42LTE4LjMgMTAxLjMgMCAxNTUuMSAxMjIuNiAyODEuNiAyNzYuMyAyODcuOGwwLTE0NS45YzYuOCAuNCAxNSAuNSAyMy40IDBsMCAxNDUuOGMxNTMuNy02LjEgMjc2LjMtMTMyLjYgMjc2LjMtMjg3LjcgMC0zNS43LTYuNS02OS44LTE4LjMtMTAxLjR6TTM1Ny45IDMyMi45YTIzLjcgMjMuNyAwIDEgMSAwLTQ3LjQgMjMuNyAyMy43IDAgMSAxIDAgNDcuNHpNMjE4LjEgMjc1LjRhMjMuNyAyMy43IDAgMSAxIDAgNDcuNCAyMy43IDIzLjcgMCAxIDEgMC00Ny40elwiXVxufTtcbnZhciBmYVRlbGVncmFtID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3RlbGVncmFtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjI0NjIsIFwidGVsZWdyYW0tcGxhbmVcIl0sIFwiZjJjNlwiLCBcIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM3MSAxNzYuN2MtMy43IDM5LjItMTkuOSAxMzQuNC0yOC4xIDE3OC4zLTMuNSAxOC42LTEwLjMgMjQuOC0xNi45IDI1LjQtMTQuNCAxLjMtMjUuMy05LjUtMzkuMy0xOC43LTIxLjgtMTQuMy0zNC4yLTIzLjItNTUuMy0zNy4yLTI0LjUtMTYuMS04LjYtMjUgNS4zLTM5LjUgMy43LTMuOCA2Ny4xLTYxLjUgNjguMy02Ni43IC4yLS43IC4zLTMuMS0xLjItNC40cy0zLjYtLjgtNS4xLS41Yy0yLjIgLjUtMzcuMSAyMy41LTEwNC42IDY5LjEtOS45IDYuOC0xOC45IDEwLjEtMjYuOSA5LjktOC45LS4yLTI1LjktNS0zOC42LTkuMS0xNS41LTUtMjcuOS03LjctMjYuOC0xNi4zIC42LTQuNSA2LjctOSAxOC40LTEzLjcgNzIuMy0zMS41IDEyMC41LTUyLjMgMTQ0LjYtNjIuMyA2OC45LTI4LjYgODMuMi0zMy42IDkyLjUtMzMuOCAyLjEgMCA2LjYgLjUgOS42IDIuOSAyIDEuNyAzLjIgNC4xIDMuNSA2LjcgLjUgMy4yIC42IDYuNSAuNCA5Ljh6XCJdXG59O1xudmFyIGZhVGVsZWdyYW1QbGFuZSA9IGZhVGVsZWdyYW07XG52YXIgZmFJdHVuZXNOb3RlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2l0dW5lcy1ub3RlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmM2I1XCIsIFwiTTM4MS45IDM4OC4yYy02LjQgMjcuNC0yNy4yIDQyLjgtNTUuMSA0OC0yNC41IDQuNS00NC45IDUuNi02NC41LTEwLjItMjMuOS0yMC4xLTI0LjItNTMuNC0yLjctNzQuNCAxNy0xNi4yIDQwLjktMTkuNSA3Ni44LTI1LjggNi0xLjEgMTEuMi0yLjUgMTUuNi03LjQgNi40LTcuMiA0LjQtNC4xIDQuNC0xNjMuMiAwLTExLjItNS41LTE0LjMtMTctMTIuMy04LjIgMS40LTE4NS43IDM0LjYtMTg1LjcgMzQuNi0xMC4yIDIuMi0xMy40IDUuMi0xMy40IDE2LjcgMCAyMzQuNyAxLjEgMjIzLjktMi41IDIzOS41LTQuMiAxOC4yLTE1LjQgMzEuOS0zMC4yIDM5LjUtMTYuOCA5LjMtNDcuMiAxMy40LTYzLjQgMTAuNC00My4yLTguMS01OC40LTU4LTI5LjEtODYuNiAxNy0xNi4yIDQwLjktMTkuNSA3Ni44LTI1LjggNi0xLjEgMTEuMi0yLjUgMTUuNi03LjQgMTAuMS0xMS41IDEuOC0yNTYuNiA1LjItMjcwLjIgLjgtNS4yIDMtOS42IDcuMS0xMi45IDQuMi0zLjUgMTEuOC01LjUgMTMuNC01LjUgMjA0LTM4LjIgMjI4LjktNDMuMSAyMzIuNC00My4xIDExLjUtLjggMTguMSA2IDE4LjEgMTcuNiAuMiAzNDQuNSAxLjEgMzI2LTEuOCAzMzguNXpcIl1cbn07XG52YXIgZmFMZXNzID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2xlc3MnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0MWRcIiwgXCJNNjEzLjIgMjE5YzAtMjAuNSAzLjItMzIuNiAzLjItNTQuNiAwLTM0LjItMTIuNi00NS4yLTQwLjUtNDUuMmwtMjAuNSAwIDAgMjQuMiA2LjMgMGMxNC4yIDAgMTcuMyA0LjcgMTcuMyAyMi4xIDAgMTYuMy0xLjYgMzIuNi0xLjYgNTEuNSAwIDI0LjIgNy45IDMzLjYgMjMuNiAzNy4zbDAgMS42Yy0xNS44IDMuNy0yMy42IDEzLjEtMjMuNiAzNy4zIDAgMTguOSAxLjYgMzQuMiAxLjYgNTEuNSAwIDE3LjktMy43IDIyLjYtMTcuMyAyMi42bDAgLjUtNi4zIDAgMCAyNS4yIDIwLjUgMGMyNy44IDAgNDAuNS0xMSA0MC41LTQ1LjIgMC0yMi42LTMuMi0zNC4yLTMuMi01NC42IDAtMTEgNi44LTIyLjYgMjcuMy0yMy42bDAtMjcuM2MtMjAuNS0uNy0yNy4zLTEyLjMtMjcuMy0yMy4zek01MDcuNiAyNTFjLTE1LjgtNi4zLTMwLjUtMTAtMzAuNS0yMC41IDAtNy45IDYuMy0xMi42IDE3LjktMTIuNnMyMi4xIDQuNyAzMy42IDEzLjFsMjEtMjcuOGMtMTMuMS0xMC0zMS0yMC41LTU1LjItMjAuNS0zNS43IDAtNTkuOSAyMC41LTU5LjkgNDkuNCAwIDI1LjcgMjIuNiAzOC45IDQxLjUgNDYuMiAxNi4zIDYuMyAzMi4xIDExLjYgMzIuMSAyMi4xIDAgNy45LTYuMyAxMy4xLTIwLjUgMTMuMS0xMy4xIDAtMjYuMy01LjMtNDAuNS0xNi4zbC0yMSAzMC41YzE1LjggMTMuMSAzOS45IDIyLjEgNTkuOSAyMi4xIDQyIDAgNjQuNi0yMi4xIDY0LjYtNTFzLTIyLjUtNDEtNDMtNDcuOHpNMTQ4LjcgMzEwLjRjLTMuNyAwLTguNC0zLjItOC40LTEzLjFsMC0xNzguMi03NC42IDBjLTI4LjQgMC00MSAxMS00MSA0NS4yIDAgMjIuNiAzLjIgMzUuMiAzLjIgNTQuNiAwIDExLTYuOCAyMi42LTI3LjMgMjMuNmwwIDI3LjNjMjAuNSAuNSAyNy4zIDEyLjEgMjcuMyAyMy4xIDAgMTkuNC0zLjIgMzEtMy4yIDUzLjYgMCAzNC4yIDEyLjYgNDUuMiA0MC41IDQ1LjJsMjAuNSAwIDAtMjQuMi02LjMgMGMtMTMuMSAwLTE3LjMtNS4zLTE3LjMtMjIuNnMxLjYtMzIuMSAxLjYtNTEuNWMwLTI0LjItNy45LTMzLjYtMjMuNi0zNy4zbDAtMS42YzE1LjgtMy43IDIzLjYtMTMuMSAyMy42LTM3LjMgMC0xOC45LTEuNi0zNC4yLTEuNi01MS41czMuNy0yMi4xIDE3LjMtMjIuMWwxNC4xIDAgMCAxNTAuOGMwIDMyLjEgMTEgNTMuMSA0My4xIDUzLjEgMTAgMCAxNy45LTEuNiAyMy42LTMuN2wtNS4zLTM0LjJjLTMuMSAuOC00LjYgLjgtNi4yIC44ek0zODAuNCAyNTFjLTE2LjMtNi4zLTMxLTEwLTMxLTIwLjUgMC03LjkgNi4zLTEyLjYgMTcuOS0xMi42czIyLjEgNC43IDMzLjYgMTMuMWwyMS0yNy44Yy0xMy4xLTEwLTMxLTIwLjUtNTUuMi0yMC41LTM1LjcgMC01OS45IDIwLjUtNTkuOSA0OS40IDAgMjUuNyAyMi42IDM4LjkgNDEuNSA0Ni4yIDE2LjMgNi4zIDMyLjEgMTEuNiAzMi4xIDIyLjEgMCA3LjktNi4zIDEzLjEtMjAuNSAxMy4xLTEzLjEgMC0yNi4zLTUuMy00MC41LTE2LjNsLTIwLjUgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxIC4xLTI4LjktMjIuNS00MS00My00Ny44em0tMTU1LTY4LjhjLTM4LjQgMC03NS4xIDMyLjEtNzQuMSA4Mi41IDAgNTIgMzQuMiA4Mi41IDc5LjMgODIuNSAxOC45IDAgMzkuOS02LjggNTYuMi0xNy45TDI3MSAzMDEuNWMtMTEuNiA2LjgtMjIuNiAxMC0zNC4yIDEwLTIxIDAtMzcuMy0xMC00MS41LTM0LjJsOTUuMiAwYy41LTMuNyAxLjYtMTEgMS42LTE5LjQgLjYtNDIuNi0yMi42LTc1LjctNjYuNy03NS43em0tMzAgNjYuMmMzLjItMjEgMTUuOC0zMSAzMC41LTMxIDE4LjkgMCAyNi4zIDEzLjEgMjYuMyAzMWwtNTYuOCAwelwiXVxufTtcbnZhciBmYUZpcmVmb3ggPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZmlyZWZveCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI2OVwiLCBcIk01MDMuNSAyNDEuNWMtLjEtMS42LS4yLTMuMS0uMi00LjdsMC0uMS0uNC00LjcgMC0uMWMtMS4zLTEzLjktMy43LTI3LjctNy4zLTQxLjIgMC0uMSAwLS4xLS4xLS4ybC0xLjEtNGMtLjEtLjItLjEtLjUtLjItLjYtLjQtMS4yLS43LTIuNS0xLjEtMy43LS4xLS4yLS4xLS42LS4yLS44LS40LTEuMi0uNy0yLjQtMS4xLTMuNS0uMS0uNC0uMi0uNi0uNC0xLS40LTEuMi0uNy0yLjMtMS4yLTMuNWwtLjQtMS4xYy0uNC0xLjEtLjgtMi4zLTEuMi0zLjQtLjEtLjMtLjItLjctLjQtMS0uNS0xLjEtLjgtMi4zLTEuMy0zLjQtLjEtLjItLjItLjYtLjQtLjgtLjUtMS4yLTEtMi4zLTEuNC0zLjUgMC0uMS0uMS0uMi0uMS0uNC0xLjYtMy44LTMuMi03LjctNS0xMS40bC0uNC0uN2MtLjUtMS0uOC0xLjgtMS4zLTIuNi0uMi0uNS0uNS0xLjEtLjctMS42LS40LS44LS44LTEuNi0xLjItMi40LS40LS42LS42LTEuMi0xLTEuOHMtLjgtMS40LTEuMi0yLjNjLS40LS42LS43LTEuMy0xLjEtMS45cy0uOC0xLjQtMS4yLTIuMmMtLjQtLjctLjgtMS40LTEuMi0yLS40LS43LS44LTEuMy0xLjItMnMtLjgtMS4zLTEuMi0yLS44LTEuMy0xLjItMS45LS44LTEuNC0xLjMtMi4yYy0uNC0uNi0uOC0xLjItMS4yLTEuOGwtMS40LTIuMWMtLjQtLjYtLjgtMS4yLTEuMi0xLjgtLjUtLjctMS4xLTEuNi0xLjYtMi4zLS40LS41LS43LTEuMS0xLjEtMS42bC0xLjgtMi41Yy0uNC0uNS0uNi0uOC0xLTEuMy0xLTEuMy0xLjgtMi41LTIuOC0zLjctNy4yLTkuNC0xNS0xOC4zLTIzLjUtMjYuNi01LjctNi0xMS44LTExLjUtMTguMy0xNi43LTQtMy41LTguMi02LjctMTIuNS05LjgtNy43LTUuOC0xNi0xMC44LTI0LjYtMTUuMS0yLjQtMS4zLTQuOC0yLjUtNy4yLTMuNy0xNy43LTguNi0zNi4zLTE1LjItNTUuNC0xOS42LTEuOS0uNC0zLjgtLjgtNS42LTEuMmwtLjEgMGMtMS0uMS0xLjgtLjQtMi44LS41LTEyLjUtMi40LTI1LjItMy43LTM4LTRsLTEwLjYgMGMtMTUuMyAuMi0zMC41IDEuOS00NS41IDUtMzMuNiA3LjEtNjMuMiAyMS4yLTgyLjkgMzktMS4xIDEtMS45IDEuNy0yLjQgMi4ybC0uNSAuNSAuMSAwYzAgMCAuMSAwIC4xIDBzMC0uMSAwLS4xbC0uMSAuMWMuMS0uMSAuMS0uMSAuMi0uMSAxNC42LTguOCAzNC45LTE2IDQ5LjQtMTkuNmw1LjktMS40Yy40LS4xIC44LS4xIDEuMi0uMiAxLjctLjQgMy40LS43IDUuMi0xLjEgLjIgMCAuNi0uMSAuOC0uMSA2NC4yLTExLjcgMTMyLjYgNy41IDE4MC4yIDUzIDEwLjMgOS44IDE5LjMgMjAuOCAyNi45IDMyLjggMzAuNCA0OS4yIDI3LjUgMTExLjEgMy44IDE0Ny42LTM0LjQgNTMtMTExLjQgNzEuMy0xNTkgMjQuOC0xNi0xNS41LTI1LjItMzYuNy0yNS42LTU5LS4yLTEwLjcgMi0yMS4yIDYuMi0zMSAxLjctMy44IDEzLjEtMjUuNyAxOC4yLTI0LjYtMTMuMS0yLjgtMzcuNSAyLjYtNTQuNyAyOC4yLTE1LjQgMjIuOS0xNC41IDU4LjItNSA4My4zLTYtMTIuNC0xMC4xLTI1LjYtMTIuMS0zOS4yLTEyLjItODIuNiA0My4zLTE1MyA5NC4zLTE3MC41LTI3LjUtMjQtOTYuNS0yMi4zLTE0Ny43IDE1LjQtMjkuOSAyMi01MS4yIDUzLjItNjIuNSA5MC40IDEuNy0yMC45IDkuNi01Mi4xIDI1LjgtODMuOS0xNy4yIDguOS0zOSAzNy00OS44IDYyLjktMTUuNiAzNy40LTIxIDgyLjItMTYuMSAxMjQuOCAuNCAzLjIgLjcgNi40IDEuMSA5LjYgMTkuOSAxMTcuMSAxMjIgMjA2LjQgMjQ0LjggMjA2LjQgMTM3LjEgMCAyNDguMy0xMTEuMiAyNDguMy0yNDguNC0uMS00LjUtLjItOS4xLS41LTEzLjV6XCJdXG59O1xudmFyIGZhS2FnZ2xlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2thZ2dsZScsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjVmYVwiLCBcIk0zMDQuMiA1MDEuNUwxNTguNCAzMjAuMyAyOTguMiAxODVjMi42LTIuNyAxLjctMTAuNS01LjMtMTAuNWwtNjkuMiAwYy0zLjUgMC03IDEuOC0xMC41IDUuM2wtMTMyLjMgMTMzLjcgMC0zMDZjMC01LTIuNS03LjUtNy41LTcuNUwyMS41IDBDMTYuNSAwIDE0IDIuNSAxNCA3LjVsMCA0OTdjMCA1IDIuNSA3LjUgNy41IDcuNWw1MS45IDBjNSAwIDcuNS0yLjUgNy41LTcuNWwwLTEwOSAzMC44LTI5LjMgMTEwLjUgMTQwLjZjMyAzLjUgNi41IDUuMyAxMC41IDUuM2w2Ni45IDBjMy41IDAgNS41LTEgNi0zbC0xLjQtNy42elwiXVxufTtcbnZhciBmYUZhY2Vib29rTWVzc2VuZ2VyID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2ZhY2Vib29rLW1lc3NlbmdlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjM5ZlwiLCBcIk0yNTYuNiA4Yy0xNDAgMC0yNDguNiAxMDIuMy0yNDguNiAyNDAuNiAwIDcyLjMgMjkuNyAxMzQuOCA3OC4xIDE3Ny45IDguMyA3LjUgNi42IDExLjkgOCA1OC4yIC4xIDMuMiAxIDYuNCAyLjYgOS4yczMuOSA1LjIgNi43IDYuOSA1LjkgMi44IDkuMSAzIDYuNS0uMyA5LjUtMS42QzE3NC45IDQ3OSAxNzUuNiA0NzcuMiAxODQuNiA0NzkuNiAzMzcuOCA1MjEuOCA1MDQgNDIzLjcgNTA0IDI0OC42IDUwNCAxMTAuMyAzOTYuNiA4IDI1Ni42IDh6TTQwNS44IDE5My4xbC03MyAxMTUuNmMtMi44IDQuMy02LjQgOC4xLTEwLjYgMTFzLTkuMSA0LjgtMTQuMSA1LjgtMTAuMyAuOC0xNS4zLS40LTkuNy0zLjQtMTMuOC02LjRsLTU4LjEtNDMuNWMtMi42LTEuOS01LjgtMy05LTNzLTYuNCAxLjEtOSAzbC03OC40IDU5LjRjLTEwLjUgNy45LTI0LjItNC42LTE3LjEtMTUuN2w3My0xMTUuNmMyLjgtNC4zIDYuNC04LjEgMTAuNi0xMXM5LjEtNC44IDE0LjEtNS44IDEwLjMtLjggMTUuMyAuNCA5LjcgMy40IDEzLjkgNi40bDU4LjEgNDMuNWMyLjYgMS45IDUuOCAzIDkgM3M2LjQtMS4xIDktM2w3OC40LTU5LjRjMTAuNC04IDI0LjEgNC41IDE3LjEgMTUuNnpcIl1cbn07XG52YXIgZmFBdWRpYmxlID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2F1ZGlibGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYzNzNcIiwgXCJNNjQwIDE5OS45bDAgNTQtMzIwIDIwMC0zMjAtMTk5LjkgMC01NCAzMjAgMjAwIDMyMC0yMDAuMXptLTE5NC41IDcybDQ3LjEtMjkuNGMtMzcuMi01NS44LTEwMC43LTkyLjYtMTcyLjctOTIuNnMtMTM1LjUgMzYuNy0xNzIuNiA5Mi40bC4zIDBjMi41LTIuMyA1LjEtNC41IDcuNy02LjcgODkuNy03NC40IDIxOS40LTU4LjEgMjkwLjIgMzYuM3pNMjI1LjQgMjkwLjdjMTYuOS0xMS45IDM2LjUtMTguNyA1Ny40LTE4LjcgMzQuNCAwIDY1LjIgMTguNCA4Ni40IDQ3LjZsNDUuNC0yOC40Yy0yMC45LTI5LjktNTUuNi00OS41LTk0LjgtNDkuNS0zOC45IDAtNzMuNCAxOS40LTk0LjQgNDl6TTEwMy42IDE2MS4xQzIzNS40IDU2LjggNDIxLjggODQuNyA1MjEuMSAyMjMuMmwuNyAxIDQ4LjgtMzAuNGMtNTMuNS04MS43LTE0NS44LTEzNS43LTI1MC43LTEzNS43LTEwMy41IDAtMTk2LjYgNTMuNS0yNTAuNSAxMzUuNiA5LjktMTAuNSAyMi43LTIzLjUgMzQuMi0zMi42elwiXVxufTtcbnZhciBmYVBhdHJlb24gPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncGF0cmVvbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjNkOVwiLCBcIk00OTAgMTUzLjhjLS4xLTY1LjQtNTEtMTE5LTExMC43LTEzOC4zLTc0LjItMjQtMTcyLTIwLjUtMjQyLjkgMTIuOS04NS44IDQwLjUtMTEyLjggMTI5LjMtMTEzLjggMjE3LjgtLjggNzIuOCA2LjQgMjY0LjQgMTE0LjYgMjY1LjggODAuMyAxIDkyLjMtMTAyLjUgMTI5LjUtMTUyLjMgMjYuNC0zNS41IDYwLjUtNDUuNSAxMDIuNC01NS45IDcyLTE3LjggMTIxLjEtNzQuNyAxMjEtMTUwbC0uMSAwelwiXVxufTtcbnZhciBmYVZudiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICd2bnYnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0MGJcIiwgXCJNMTA0LjkgMzUyYy0zNC4xIDAtNDYuNC0zMC40LTQ2LjQtMzAuNEwyLjYgMjEwLjFTLTcuOCAxOTIgMTMgMTkybDMyLjggMGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi43LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFsMzIuOCAwYzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xTDE4Ni40IDMyMS42UzE3NC4yIDM1MiAxNDAgMzUybC0zNS4xIDB6bTM5NSAwYy0zNC4xIDAtNDYuNC0zMC40LTQ2LjQtMzAuNEwzOTcuNiAyMTAuMVMzODcuMiAxOTIgNDA4IDE5MmwzMi44IDBjMTAuNCAwIDEzLjIgOC43IDE4LjggMTguMWwzNi43IDc0LjVzNS4yIDEzLjEgMjEuMSAxMy4xIDIxLjEtMTMuMSAyMS4xLTEzLjFsMzYuOC03NC41YzUuNi05LjUgOC40LTE4LjEgMTguOC0xOC4xbDMyLjkgMGMyMC44IDAgMTAuNCAxOC4xIDEwLjQgMTguMUw1ODEuNSAzMjEuNlM1NjkuMyAzNTIgNTM1LjEgMzUybC0zNS4yIDB6TTMzNy42IDE5MmMzNC4xIDAgNDYuNCAzMC40IDQ2LjQgMzAuNGw1NS45IDExMS41UzQ1MC4zIDM1MiA0MjkuNSAzNTJsLTMyLjggMGMtMTAuNCAwLTEzLjItOC43LTE4LjgtMTguMWwtMzYuNy03NC41cy01LjItMTMuMS0yMS4xLTEzLjEtMjEuMSAxMy4xLTIxLjEgMTMuMWwtMzYuNyA3NC41Yy01LjYgOS40LTguNCAxOC4xLTE4LjggMTguMWwtMzIuOSAwYy0yMC44IDAtMTAuNC0xOC4xLTEwLjQtMTguMWw1NS45LTExMS41UzI2OC4zIDE5MiAzMDIuNSAxOTJsMzUuMSAwelwiXVxufTtcbnZhciBmYVBhZ2VsaW5lcyA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdwYWdlbGluZXMnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxOGNcIiwgXCJNMzg0LjEgMzEyLjdjLTU1LjEgMTM2LjctMTg3LjEgNTQtMTg3LjEgNTQtNDAuNSA4MS44LTEwNy40IDEzNC40LTE4NC42IDEzNC43LTE2LjEgMC0xNi42LTI0LjQgMC0yNC40IDY0LjQtLjMgMTIwLjUtNDIuNyAxNTcuMi0xMTAuMS00MS4xIDE1LjktMTE4LjYgMjcuOS0xNjEuNi04Mi4yIDEwOS00NC45IDE1OS4xIDExLjIgMTc4LjMgNDUuNSA5LjktMjQuNCAxNy01MC45IDIxLjYtNzkuNyAwIDAtMTM5LjcgMjEuOS0xNDkuNS05OC4xIDExOS4xLTQ3LjkgMTUyLjYgNzYuNyAxNTIuNiA3Ni43IDEuNi0xNi43IDMuMy01Mi42IDMuMy01My40IDAgMC0xMDYuMy03My43LTM4LjEtMTY1LjIgMTI0LjYgNDMgNjEuNCAxNjIuNCA2MS40IDE2Mi40IC41IDEuNiAuNSAyMy44IDAgMzMuNCAwIDAgNDUuMi04OSAxMzYuNC01Ny41LTQuMiAxMzQtMTQxLjkgMTA2LjQtMTQxLjkgMTA2LjQtNC40IDI3LjQtMTEuMiA1My40LTIwIDc3LjUgMCAwIDgzLTkxLjggMTcyLTIwelwiXVxufTtcbnZhciBmYUFtYXpvbiA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdhbWF6b24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyNzBcIiwgXCJNMjU3LjcgMTYyLjdjLTQ4LjcgMS44LTE2OS41IDE1LjUtMTY5LjUgMTE3LjUgMCAxMDkuNSAxMzguMyAxMTQgMTgzLjUgNDMuMiA2LjUgMTAuMiAzNS40IDM3LjUgNDUuMyA0Ni44bDU2LjgtNTZzLTMyLjMtMjUuMy0zMi4zLTUyLjhsMC0xNDcuMUMzNDEuNSA4OSAzMTcgMzIgMjI5LjIgMzIgMTQxLjIgMzIgOTQuNSA4NyA5NC41IDEzNi4zbDczLjUgNi44YzE2LjMtNDkuNSA1NC4yLTQ5LjUgNTQuMi00OS41IDQwLjctLjEgMzUuNSAyOS44IDM1LjUgNjkuMXptMCA4Ni44YzAgODAtODQuMiA2OC04NC4yIDE3LjIgMC00Ny4yIDUwLjUtNTYuNyA4NC4yLTU3LjhsMCA0MC42ek0zOTMuNyA0MTNjLTcuNyAxMC03MCA2Ny0xNzQuNSA2N1MzNC43IDQwOC41IDEwLjIgMzc5Yy02LjgtNy43IDEtMTEuMyA1LjUtOC4zIDczLjMgNDQuNSAxODcuOCAxMTcuOCAzNzIuNSAzMC4zIDcuNS0zLjcgMTMuMyAyIDUuNSAxMnptMzkuOCAyLjJjLTYuNSAxNS44LTE2IDI2LjgtMjEuMiAzMS01LjUgNC41LTkuNSAyLjctNi41LTMuOHMxOS4zLTQ2LjUgMTIuNy01NWMtNi41LTguMy0zNy00LjMtNDgtMy4yLTEwLjggMS0xMyAyLTE0LS4zLTIuMy01LjcgMjEuNy0xNS41IDM3LjUtMTcuNSAxNS43LTEuOCA0MS0uOCA0NiA1LjcgMy43IDUuMSAwIDI3LjEtNi41IDQzLjF6XCJdXG59O1xudmFyIGZhRW52aXJhID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2VudmlyYScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI5OVwiLCBcIk0wIDMyYzQ3Ny42IDAgMzY2LjYgMzE3LjMgMzY3LjEgMzY2LjNsODAuOSA4MS43LTI2IDAtNzAuNC03MS4yQzMxMi42IDQxMyAyMjcuMiA0NDMuMyAxMzcuMiAzNzEuOCA0NyAzMDAuMyA1MiAyMTQuNyAwIDMyek03OS43IDc4Yy00OS43LTIzLjUtNS4yIDkuMi01LjIgOS4yIDQ1LjIgMzEuMiA2NiA3My43IDkwLjIgMTE5LjkgMzEuNSA2MC4yIDc5IDEzOS43IDE0NC4yIDE2Ny43IDY1IDI4IDM0LjIgMTIuNSA2LTguNS0yOC4yLTIxLjItNjguMi04Ny05MS0xMzAuMi0zMS43LTYwLTYxLTExOC42LTE0NC4yLTE1OC4xelwiXVxufTtcbnZhciBmYUxpbm9kZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdsaW5vZGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyYjhcIiwgXCJNMzY2LjMgMTg2LjlsLTU5LjUgMzYuOS0uOCAzNi45LTI5LjMtMTkuMy0zOS40IDI0LjNjMi4yIDU1LjIgMi41IDU5LjMgMi41IDU5LjVsLTk3LjIgNjUuNC0xNS4xLTEwNC43IDEwOC4xLTYyLTQwLjItMjYtNzUuNCAzOC41LTIxLTE0My4zIDEyOS00OS40LTkxLjMtNDMuNi0xMjUuNyAzOS40IDI3LjcgMTM0LjkgNDEuOSAzMi43LTMxLjggMTUuMSAyMC45IDEwMS40IDI5LjMgMjcuNy0yMC45IDEyLjYgMTYuOCA3OC44IDY2LjIgNjkuNmMtMTAuOC03NC44LTExLjctNzguNi0xMS43LTc4LjhsNzcuOS01NS4zQzI0NCAzNjUuNCAyNDIuMyAzNjcgMjQyLjMgMzY3bC44IDI0LjMgMzMuNSAyOC41LS44LTc3LjEgNDYuOS0zMy41IDI2LjgtMTguNC0yLjUgMzYgMjUuMSAxNy42IDYuNy03NC42IDU4LjctNDMuNi03MS4yLTM5LjR6XCJdXG59O1xudmFyIGZhQWNjdXNvZnQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYWNjdXNvZnQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYzNjlcIiwgXCJNMzIyLjEgMjUybDAtMS01MS4yLTY1LjhzLTEyIDEuNi0yNSAxNS4xYy05IDkuMy0yNDIuMSAyMzkuMS0yNDMuNCAyNDAuOS03IDEwIDEuNiA2LjggMTUuNyAxLjcgLjggMCAxMTQuNS0zNi42IDExNC41LTM2LjYgLjUtLjYtLjEtLjEgLjYtLjYtLjQtNS4xLS44LTI2LjItMS0yNy43LS42LTUuMiAyLjItNi45IDctOC45bDkyLjYtMzMuOGMuNi0uOCA4OC41LTgxLjcgOTAuMi04My4zek00ODIuMiAzNzIuMWMxMy4zIDE2LjEgMjAuNyAxMy4zIDMwLjggOS4zIDMuMi0xLjIgMTE1LjQtNDcuNiAxMTcuOC00OC45IDgtNC4zLTEuNy0xNi43LTcuMi0yMy40LTIuMS0yLjUtMjA1LjEtMjQ1LjYtMjA3LjItMjQ4LjMtOS43LTEyLjItMTQuMy0xMi45LTM4LjQtMTIuOC0xMC4yIDAtMTA2LjggLjUtMTE2LjUgLjYtMTkuMiAuMS0zMi45LS4zLTE5LjIgMTYuOSA3LjcgOS41IDIzNC4yIDI5OS43IDIzOS45IDMwNi42em0xNTIuNyAxLjZjLTIuMy0uMy0yNC42LTQuNy0zOC03LjIgMCAwLTExNSA1MC40LTExNy41IDUxLjYtMTYgNy4zLTI2LjktMy4yLTM2LjctMTQuNmwtNTcuMS03NGMtNS40LS45LTYwLjQtOS42LTY1LjMtOS4zLTMuMSAuMi05LjYgLjgtMTQuNCAyLjktNC45IDIuMS0xNDUuMiA1Mi44LTE1MC4yIDU0LjctNS4xIDItMTEuNCAzLjYtMTEuMSA3LjYgLjIgMi41IDIgMi42IDQuNiAzLjUgMi43IC44IDMwMC45IDY3LjYgMzA4IDY5LjEgMTUuNiAzLjMgMzguNSAxMC41IDUzLjYgMS43IDIuMS0xLjIgMTIzLjgtNzYuNCAxMjUuOC03Ny44IDUuNC00IDQuMy02LjgtMS43LTguMnpcIl1cbn07XG52YXIgZmFFcmxhbmcgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZXJsYW5nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMzlkXCIsIFwiTTg3LjIgNTMuNWwtODcuMiAwIDAgNDA1IDEwMC40IDBjLTQ5LjctNTIuNi03OC44LTEyNS4zLTc4LjctMjEyLjEtLjEtNzYuNyAyNC0xNDIuNyA2NS41LTE5Mi45em0yMzguMiA5LjdjLTQ1LjkgLjEtODUuMSAzMy41LTg5LjIgODMuMmwxNjkuOSAwYy0xLjEtNDkuNy0zNC41LTgzLjEtODAuNy04My4yem0yMzAuNy05LjZsLjMgMC0uMS0uMS0uMiAuMXptLjMgMGMzMS40IDQyLjcgNDguNyA5Ny41IDQ2LjIgMTYyLjcgLjUgNiAuNSAxMS43IDAgMjQuMWwtMzcyLjQgMGMtLjIgMTA5LjcgMzguOSAxOTQuOSAxMzguNiAxOTUuMyA2OC41LS4zIDExOC01MSAxNTEuOS0xMDYuMWw5Ni40IDQ4LjJjLTE3LjQgMzAuOS0zNi41IDU3LjgtNTcuOSA4MC44bDgwLjggMCAwLTQwNS04My42IDB6XCJdXG59O1xudmFyIGZhQ2NEaXNjb3ZlciA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdjYy1kaXNjb3ZlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjFmMlwiLCBcIk01MjAuNCAxOTYuMWMwLTcuOS01LjUtMTIuMS0xNS42LTEyLjFsLTQuOSAwIDAgMjQuOSA0LjcgMGMxMC4zIDAgMTUuOC00LjQgMTUuOC0xMi44ek01MjggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0ODAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNNDgzLjkgMTcwLjljMjIuNiAwIDUyLjktNC4xIDUyLjkgMjQuNCAwIDEyLjYtNi42IDIwLjctMTguNyAyMy4ybDI1LjggMzQuNC0xOS42IDAtMjIuMi0zMi44LTIuMiAwIDAgMzIuOC0xNiAwIDAtODJ6TTQyOCAxNzFsNDUuMyAwIDAgMTQtMjkuMyAwIDAgMTguMiAyOC4zIDAgMCAxMy44LTI4LjMgMCAwIDIyLjIgMjkuMyAwIDAgMTMuOC00NS4zIDAgMC04MnptLTY4LjcgMGwyMS45IDU1LjIgMjIuMi01NS4yIDE3LjUgMC0zNS41IDg0LjItOC42IDAtMzUtODQuMiAxNy41IDB6bS01NS45IDg2LjJhNDQuNiA0NC42IDAgMSAxIDAtODkuMiA0NC42IDQ0LjYgMCAxIDEgMCA4OS4yem0tNDkuMy04My4xbDAgMTljLTIwLjEtMjAuMS00Ni44LTQuNy00Ni44IDE5IDAgMjUgMjcuNSAzOC41IDQ2LjggMTkuMmwwIDE5Yy0yOS43IDE0LjMtNjMuMy01LjctNjMuMy0zOC4yIDAtMzEuMiAzMy4xLTUzIDYzLjMtMzh6bS05Ny4yIDY2LjNjMTEuNCAwIDIyLjQtMTUuMy0zLjMtMjQuNC0xNS01LjUtMjAuMi0xMS40LTIwLjItMjIuNyAwLTIzLjIgMzAuNi0zMS40IDQ5LjctMTQuM2wtOC40IDEwLjhjLTEwLjQtMTEuNi0yNC45LTYuMi0yNC45IDIuNSAwIDQuNCAyLjcgNi45IDEyLjMgMTAuMyAxOC4yIDYuNiAyMy42IDEyLjUgMjMuNiAyNS42IDAgMjkuNS0zOC44IDM3LjQtNTYuNiAxMS4zbDEwLjMtOS45YzMuNyA3LjEgOS45IDEwLjggMTcuNSAxMC44ek01NS40IDI1M2wtMjMuNCAwIDAtODIgMjMuNCAwYzI2LjEgMCA0NC4xIDE3IDQ0LjEgNDEuMSAwIDE4LjUtMTMuMiA0MC45LTQ0LjEgNDAuOXptNjcuNSAwbC0xNiAwIDAtODIgMTYgMCAwIDgyek01NDQgNDMzYzAgOC4yLTYuOCAxNS0xNSAxNWwtNDAxIDBjMTg5LjYtMzUuNiAzODIuNy0xMzkuMiA0MTYtMTYwbDAgMTQ1ek03NC4xIDE5MS42Yy01LjItNC45LTExLjYtNi42LTIxLjktNi42bC00LjIgMCAwIDU0LjIgNC4yIDBjMTAuMyAwIDE3LTIgMjEuOS02LjQgNS43LTUuMiA4LjktMTIuOCA4LjktMjAuN3MtMy4yLTE1LjUtOC45LTIwLjV6XCJdXG59O1xudmFyIGZhU2FmYXJpID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NhZmFyaScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI2N1wiLCBcIk0yNzQuNyAyNzQuN0wyMzcuMyAyMzcuMyAxNjYgMzQ2IDI3NC43IDI3NC43ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQxMS44IDE4Mi44bDE0LjgtNi4xYzEtLjQgMi0uNiAzLjEtLjZzMi4xIC4yIDMuMSAuNiAxLjggMSAyLjYgMS43IDEuMyAxLjYgMS43IDIuNiAuNiAyIC42IDMuMS0uMiAyLjEtLjYgMy4xLTEgMS45LTEuNyAyLjYtMS42IDEuMy0yLjYgMS43TDQxOCAxOTcuNmMtMiAuOC00LjIgLjgtNi4xIDBzLTMuNS0yLjQtNC4zLTQuMy0uOC00LjIgMC02LjEgMi40LTMuNSA0LjMtNC4zek0zMTQuNCA5NGw2LjEtMTQuOGMuOC0yIDIuNC0zLjUgNC4zLTQuM3M0LjItLjggNi4xIDAgMy41IDIuNCA0LjMgNC4zIC44IDQuMiAwIDYuMWwtNi4xIDE0LjhjLS44IDItMi40IDMuNS00LjMgNC4zcy00LjIgLjgtNi4xIDBjLTEtLjQtMS45LTEtMi42LTEuN3MtMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjF6TTI1NiA2MGMyLjEgMCA0LjIgLjggNS43IDIuM1MyNjQgNjUuOSAyNjQgNjhsMCAxNmMwIDIuMS0uOCA0LjItMi4zIDUuN3MtMy41IDIuMy01LjcgMi4zLTQuMi0uOC01LjctMi4zLTIuMy0zLjUtMi4zLTUuN2wwLTE2YzAtMi4xIC44LTQuMiAyLjMtNS43UzI1My45IDYwIDI1NiA2MHpNMTgxIDc0LjljMS0uNCAyLS42IDMuMS0uNnMyLjEgLjIgMy4xIC42IDEuOSAxIDIuNiAxLjcgMS4zIDEuNiAxLjcgMi42TDE5Ny42IDk0Yy40IDEgLjcgMiAuNyAzLjFzLS4yIDIuMS0uNiAzLjEtMSAxLjktMS43IDIuNi0xLjYgMS40LTIuNiAxLjgtMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS44LTEuMy0xLjctMS43LTIuN2wtNi4xLTE0LjhjLS44LTItLjgtNC4yIDAtNi4xczIuNC0zLjUgNC4zLTQuM3ptLTYzLjYgNDIuNWMxLjUtMS41IDMuNS0yLjMgNS43LTIuM3M0LjIgLjggNS43IDIuM0wxNDAgMTI4LjdjMS41IDEuNSAyLjMgMy41IDIuMyA1LjZzLS44IDQuMS0yLjMgNS42Yy0xLjUgMS41LTMuNSAyLjMtNS43IDIuM3MtNC4yLS44LTUuNy0yLjNsLTExLjMtMTEuM2MtMS41LTEuNS0yLjMtMy41LTIuMy01LjZzLjgtNC4xIDIuMy01LjZsMCAwek02MCAyNTZjMC0yLjEgLjgtNC4yIDIuMy01LjdTNjUuOSAyNDggNjggMjQ4bDE2IDBjMi4xIDAgNC4yIC44IDUuNyAyLjNzMi4zIDMuNSAyLjMgNS43LS44IDQuMi0yLjMgNS43LTMuNSAyLjMtNS43IDIuM2wtMTYgMGMtMi4xIDAtNC4yLS44LTUuNy0yLjNTNjAgMjU4LjEgNjAgMjU2em00MC4yIDczLjJsLTE0LjggNi4xYy0xIC40LTIgLjYtMy4xIC42cy0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjctMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjEgMS0xLjkgMS43LTIuNiAxLjYtMS4zIDIuNi0xLjdMOTQgMzE0LjRjMi0uOCA0LjItLjggNi4xIDBzMy41IDIuNCA0LjMgNC4zIC44IDQuMiAwIDYuMS0yLjQgMy41LTQuMyA0LjN6bTQuMy0xMzZjLS40IDEtMSAxLjktMS43IDIuNnMtMS42IDEuMy0yLjYgMS43LTIgLjYtMy4xIC42LTIuMS0uMi0zLjEtLjZsLTE0LjgtNi4xYy0yLS44LTMuNS0yLjQtNC4zLTQuM3MtLjgtNC4yIDAtNi4xIDIuNC0zLjUgNC4zLTQuMyA0LjItLjggNi4xIDBsMTQuOCA2LjFjMiAuOCAzLjUgMi40IDQuMyA0LjNzLjggNC4yIDAgNi4xbDAgMHpNMTk3LjYgNDE4bC02LjEgMTQuOGMtLjQgMS0xIDEuOS0xLjcgMi42cy0xLjYgMS4zLTIuNiAxLjctMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS43LTEuMy0xLjYtMS43LTIuNi0uNi0yLS42LTMuMSAuMi0yLjEgLjYtMy4xbDYuMS0xNC44Yy40LTEgMS0xLjkgMS43LTIuN3MxLjYtMS40IDIuNi0xLjggMi0uNiAzLjEtLjYgMi4xIC4yIDMuMSAuNiAxLjkgMSAyLjYgMS44IDEuMyAxLjcgMS43IDIuNiAuNiAyIC42IDMuMS0uMiAyLjEtLjcgMy4xek0yNjQgNDQ0YzAgMi4xLS44IDQuMi0yLjMgNS43cy0zLjUgMi4zLTUuNyAyLjMtNC4yLS44LTUuNy0yLjMtMi4zLTMuNS0yLjMtNS43bDAtMTZjMC0yLjEgLjgtNC4yIDIuMy01LjdzMy41LTIuMyA1LjctMi4zIDQuMiAuOCA1LjcgMi4zIDIuMyAzLjUgMi4zIDUuN2wwIDE2em02Ny02LjljLTEgLjQtMiAuNi0zLjEgLjZzLTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuNy0xLjMtMS42LTEuNy0yLjZMMzE0LjQgNDE4Yy0uOC0yLS44LTQuMiAwLTYuMXMyLjQtMy41IDQuMy00LjMgNC4yLS44IDYuMSAwIDMuNSAyLjQgNC4zIDQuM2w2LjEgMTQuOGMuOCAyIC44IDQuMiAwIDYuMXMtMi40IDMuNS00LjMgNC4zem02My42LTQyLjVjLTEuNSAxLjUtMy41IDIuMy01LjcgMi4zcy00LjItLjgtNS43LTIuM0wzNzIgMzgzLjNjLTEuNS0xLjUtMi4zLTMuNS0yLjMtNS42cy44LTQuMSAyLjMtNS42IDMuNS0yLjMgNS43LTIuMyA0LjIgLjggNS43IDIuM2wxMS4zIDExLjNjMS41IDEuNSAyLjMgMy41IDIuMyA1LjZzLS44IDQuMS0yLjMgNS42bDAgMHpNMjg2LjIgMjg2LjJMMTEwLjMgNDAxLjcgMjI1LjggMjI1LjggNDAxLjcgMTEwLjMgMjg2LjIgMjg2LjJ6TTQzNy4xIDMzMWMtLjggMi0yLjQgMy41LTQuMyA0LjNzLTQuMiAuOC02LjEgMGwtMTQuOC02LjFjLTItLjgtMy41LTIuNC00LjMtNC4zcy0uOC00LjIgMC02LjFjLjQtMSAxLTEuOSAxLjctMi42czEuNi0xLjMgMi42LTEuNyAyLS42IDMuMS0uNiAyLjEgLjIgMy4xIC42bDE0LjggNi4xYzIgLjggMy41IDIuNCA0LjMgNC4zcy44IDQuMiAwIDYuMXptNi45LTY3bC0xNiAwYy0yLjEgMC00LjItLjgtNS43LTIuM3MtMi4zLTMuNS0yLjMtNS43IC44LTQuMiAyLjMtNS43IDMuNS0yLjMgNS43LTIuM2wxNiAwYzIuMSAwIDQuMiAuOCA1LjcgMi4zczIuMyAzLjUgMi4zIDUuNy0uOCA0LjItMi4zIDUuNy0zLjUgMi4zLTUuNyAyLjN6XCJdXG59O1xudmFyIGZhU3BhY2VBd2Vzb21lID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NwYWNlLWF3ZXNvbWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1YWNcIiwgXCJNOTYgMjU2bDMyIDAgMCAyNTYtMTI4IDAgMC0xNjAgMzIgMCAwLTMyIDMyIDAgMC0zMiAzMiAwIDAtMzJ6bTQxNiA5NmwwIDE2MC0xMjggMCAwLTI1NiAzMiAwIDAgMzIgMzIgMCAwIDMyIDMyIDAgMCAzMiAzMiAwek0zMjAgNjRsMzIgMCAwIDM4NC0zMiAwIDAtMzItMTI4IDAgMCAzMi0zMiAwIDAtMzg0IDMyIDAgMC0zMiAzMiAwIDAtMzIgNjQgMCAwIDMyIDMyIDAgMCAzMnptLTMyIDY0bC02NCAwIDAgNjQgNjQgMCAwLTY0elwiXVxufTtcbnZhciBmYU5vZGUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnbm9kZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjQxOVwiLCBcIk0zMTYuMyA0NTJjLTIuMSAwLTQuMi0uNi02LjEtMS42TDI5MSA0MzljLTIuOS0xLjYtMS41LTIuMi0uNS0yLjUgMy44LTEuMyA0LjYtMS42IDguNy00IC40LS4yIDEtLjEgMS40IC4xbDE0LjggOC44Yy41IC4zIDEuMyAuMyAxLjggMEwzNzUgNDA4Yy41LS4zIC45LS45IC45LTEuNmwwLTY2LjdjMC0uNy0uMy0xLjMtLjktMS42bC01Ny44LTMzLjNjLS41LS4zLTEuMi0uMy0xLjggMGwtNTcuOCAzMy4zYy0uNiAuMy0uOSAxLS45IDEuNmwwIDY2LjdjMCAuNiAuNCAxLjIgLjkgMS41bDE1LjggOS4xYzguNiA0LjMgMTMuOS0uOCAxMy45LTUuOGwwLTY1LjljMC0uOSAuNy0xLjcgMS43LTEuN2w3LjMgMGMuOSAwIDEuNyAuNyAxLjcgMS43bDAgNjUuOWMwIDExLjUtNi4yIDE4LTE3LjEgMTgtMy4zIDAtNiAwLTEzLjMtMy42bC0xNS4yLTguN2MtMy43LTIuMi02LjEtNi4yLTYuMS0xMC41bDAtNjYuN2MwLTQuMyAyLjMtOC40IDYuMS0xMC41bDU3LjgtMzMuNGMzLjctMi4xIDguNS0yLjEgMTIuMSAwbDU3LjggMzMuNGMzLjcgMi4yIDYuMSA2LjIgNi4xIDEwLjVsMCA2Ni43YzAgNC4zLTIuMyA4LjQtNi4xIDEwLjVsLTU3LjggMzMuNGMtMS43IDEuMS0zLjggMS43LTYgMS43ek0zNjMgMzg2LjJjMC0xMi41LTguNC0xNS44LTI2LjItMTguMi0xOC0yLjQtMTkuOC0zLjYtMTkuOC03LjggMC0zLjUgMS41LTguMSAxNC44LTguMSAxMS45IDAgMTYuMyAyLjYgMTguMSAxMC42IC4yIC44IC44IDEuMyAxLjYgMS4zbDcuNSAwYy41IDAgLjktLjIgMS4yLS41IC4zLS40IC41LS44IC40LTEuMy0xLjItMTMuOC0xMC4zLTIwLjItMjguOC0yMC4yLTE2LjUgMC0yNi4zIDctMjYuMyAxOC42IDAgMTIuNyA5LjggMTYuMSAyNS42IDE3LjcgMTguOSAxLjkgMjAuNCA0LjYgMjAuNCA4LjMgMCA2LjUtNS4yIDkuMi0xNy40IDkuMi0xNS4zIDAtMTguNy0zLjgtMTkuOC0xMS40LS4xLS44LS44LTEuNC0xLjctMS40bC03LjUgMGMtLjkgMC0xLjcgLjctMS43IDEuNyAwIDkuNyA1LjMgMjEuMyAzMC42IDIxLjMgMTguNSAwIDI5LTcuMiAyOS0xOS44em01NC41LTUwLjFjMCA2LjEtNSAxMS4xLTExLjEgMTEuMXMtMTEuMS01LTExLjEtMTEuMWMwLTYuMyA1LjItMTEuMSAxMS4xLTExLjEgNi0uMSAxMS4xIDQuOCAxMS4xIDExLjF6bS0xLjggMGMwLTUuMi00LjItOS4zLTkuNC05LjMtNS4xIDAtOS4zIDQuMS05LjMgOS4zczQuMiA5LjQgOS4zIDkuNGM1LjItLjEgOS40LTQuMyA5LjQtOS40em0tNC41IDYuMmwtMi42IDBjLS4xLS42LS41LTMuOC0uNS0zLjktLjItLjctLjQtMS4xLTEuMy0xLjFsLTIuMiAwIDAgNS0yLjQgMCAwLTEyLjUgNC4zIDBjMS41IDAgNC40IDAgNC40IDMuMyAwIDIuMy0xLjUgMi44LTIuNCAzLjEgMS43IC4xIDEuOCAxLjIgMi4xIDIuOCAuMSAxIC4zIDIuNyAuNiAzLjN6bS0yLjgtOC44YzAtMS43LTEuMi0xLjctMS44LTEuN2wtMiAwIDAgMy41IDEuOSAwYzEuNiAwIDEuOS0xLjEgMS45LTEuOHpNMTM3LjMgMTkxYzAtMi43LTEuNC01LjEtMy43LTYuNEw3Mi4zIDE0OS4zYy0xLS42LTIuMi0uOS0zLjQtMWwtLjYgMGMtMS4yIDAtMi4zIC40LTMuNCAxTDMuNyAxODQuNkMxLjQgMTg1LjkgMCAxODguNCAwIDE5MWwuMSA5NWMwIDEuMyAuNyAyLjUgMS44IDMuMnMyLjUgLjcgMy43IDBMNDIgMjY4LjNjMi4zLTEuNCAzLjctMy44IDMuNy02LjRsMC00NC40YzAtMi42IDEuNC01LjEgMy43LTYuNGwxNS41LTguOWMxLjItLjcgMi40LTEgMy43LTFzMi42IC4zIDMuNyAxbDE1LjUgOC45YzIuMyAxLjMgMy43IDMuOCAzLjcgNi40bDAgNDQuNGMwIDIuNiAxLjQgNS4xIDMuNyA2LjRsMzYuNCAyMC45YzEuMSAuNyAyLjYgLjcgMy43IDAgMS4xLS42IDEuOC0xLjkgMS44LTMuMmwuMi05NXpNNDcyLjUgODcuM2wwIDE3Ni40YzAgMi42LTEuNCA1LjEtMy43IDYuNGwtNjEuMyAzNS40Yy0yLjMgMS4zLTUuMSAxLjMtNy40IDBsLTYxLjMtMzUuNGMtMi4zLTEuMy0zLjctMy44LTMuNy02LjRsMC03MC44YzAtMi42IDEuNC01LjEgMy43LTYuNGw2MS4zLTM1LjRjMi4zLTEuMyA1LjEtMS4zIDcuNCAwbDE1LjMgOC44YzEuNyAxIDMuOS0uMyAzLjktMi4ybDAtOTRjMC0yLjggMy00LjYgNS41LTMuMmwzNi41IDIwLjRjMi4zIDEuMiAzLjggMy43IDMuOCA2LjR6bS00NiAxMjguOWMwLS43LS40LTEuMy0uOS0xLjZsLTIxLTEyLjJjLS42LS4zLTEuMy0uMy0xLjkgMGwtMjEgMTIuMmMtLjYgLjMtLjkgLjktLjkgMS42bDAgMjQuM2MwIC43IC40IDEuMyAuOSAxLjZsMjEgMTIuMWMuNiAuMyAxLjMgLjMgMS44IDBsMjEtMTIuMWMuNi0uMyAuOS0uOSAuOS0xLjZsMC0yNC4zIC4xIDB6bTIwOS44LS43YzIuMy0xLjMgMy43LTMuOCAzLjctNi40bDAtMTcuMWMwLTIuNi0xLjQtNS4xLTMuNy02LjRsLTYwLjktMzUuNGMtMi4zLTEuMy01LjEtMS4zLTcuNCAwbC02MS4zIDM1LjRjLTIuMyAxLjMtMy43IDMuOC0zLjcgNi40bDAgNzAuOGMwIDIuNyAxLjQgNS4xIDMuNyA2LjRsNjAuOSAzNC43YzIuMiAxLjMgNSAxLjMgNy4zIDBsMzYuOC0yMC41YzIuNS0xLjQgMi41LTUgMC02LjRMNTUwIDI0MS42Yy0xLjItLjctMS45LTEuOS0xLjktMy4ybDAtMjIuMmMwLTEuMyAuNy0yLjUgMS45LTMuMmwxOS4yLTExLjFjMS4xLS43IDIuNi0uNyAzLjcgMEw1OTIuMSAyMTNjMS4xIC43IDEuOSAxLjkgMS45IDMuMmwwIDE3LjRjMCAyLjggMy4xIDQuNiA1LjYgMy4ybDM2LjctMjEuM3pNNTU5IDIxOWMtLjQgLjMtLjcgLjctLjcgMS4ybDAgMTMuNmMwIC41IC4zIDEgLjcgMS4ybDExLjggNi44Yy40IC4zIDEgLjMgMS40IDBMNTg0IDIzNWMuNC0uMyAuNy0uNyAuNy0xLjJsMC0xMy42YzAtLjUtLjMtMS0uNy0xLjJsLTExLjgtNi44Yy0uNC0uMy0xLS4zLTEuNCAwTDU1OSAyMTl6TTMwNC44IDI2Mi41bDAtNzAuNGMwLTIuNi0xLjYtNS4xLTMuOS02LjRsLTYxLjEtMzUuMmMtMi4xLTEuMi01LTEuNC03LjQgMGwtNjEuMSAzNS4yYy0yLjMgMS4zLTMuOSAzLjctMy45IDYuNGwwIDcwLjRjMCAyLjggMS45IDUuMiA0IDYuNGw2MS4yIDM1LjJjMi40IDEuNCA1LjIgMS4zIDcuNCAwbDYxLTM1LjJjMS44LTEgMy4xLTIuNyAzLjYtNC43IC4xLS41IC4yLTEuMSAuMi0xLjd6TTIzMC41IDEzNy42bC0uOCAuNSAxLjEgMC0uMy0uNXptNzYuMiAxMzAuMmwtLjQtLjcgMCAuOSAuNC0uMnpcIl1cbn07XG52YXIgZmFDb2RlcGVuID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2NvZGVwZW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxY2JcIiwgXCJNNTAyLjMgMTU5LjdsLTIzNC0xNTZjLTgtNC45LTE2LjUtNS0yNC42IDBsLTIzNCAxNTZjLTYgNC05LjcgMTEuMS05LjcgMTguM0wwIDMzNGMwIDcuMSAzLjcgMTQuMyA5LjcgMTguM2wyMzQgMTU2YzggNC45IDE2LjUgNSAyNC42IDBsMjM0LTE1NmM2LTQgOS43LTExLjEgOS43LTE4LjNsMC0xNTZjMC03LjEtMy43LTE0LjMtOS43LTE4LjN6TTI3OCA2My4xbDE3Mi4zIDExNC45LTc2LjkgNTEuNC05NS40LTYzLjcgMC0xMDIuNnptLTQ0IDBMMjM0IDE2NS43IDEzOC42IDIyOS40IDYxLjcgMTc4IDIzNCA2My4xek00NCAyMTkuMUw5OS4xIDI1NiA0NCAyOTIuOCA0NCAyMTkuMXpNMjM0IDQ0OC44TDYxLjcgMzM0IDEzOC42IDI4Mi42IDIzNCAzNDYuMyAyMzQgNDQ4Ljh6TTI1NiAzMDhsLTc3LjctNTIgNzcuNy01MiA3Ny43IDUyLTc3LjcgNTJ6bTIyIDE0MC45bDAtMTAyLjYgOTUuNC02My43IDc2LjkgNTEuNC0xNzIuMyAxMTQuOXptMTkwLTE1NmwtNTUuMS0zNi45IDU1LjEtMzYuOSAwIDczLjd6XCJdXG59O1xudmFyIGZhUmF2ZWxyeSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdyYXZlbHJ5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMmQ5XCIsIFwiTTQ5OC42IDIzNC4yYy0xLjItMTAuMy0xLjctMjAuOC0zLjctMzEtMi41LTEyLjQtNS43LTI0LjYtOS42LTM2LjYtNi44LTIwLjktMTcuMi00MC4zLTMwLjktNTcuNS01LjktNy42LTEyLjEtMTQuOC0xOC44LTIxLjctMTQuMS0xNC0zMC0yNi4xLTQ3LjEtMzYuMS0xNy44LTEwLjYtMzYuOC0xOC45LTU2LjctMjQuNy0xMS0zLjEtMjIuMy01LjQtMzMuNS03LjYtNi44LTEuMy0xMy43LTEuNy0yMC42LTIuNS0uMyAwLS42LS40LS45LS42LTEwLjggMC0yMS41IDAtMzIuMyAwLTIuNCAuNC00LjggLjktNy4yIDEuMi0xMS42IDEuMi0yMy4xIDMuNi0zNC4zIDcuMS0xMy44IDQuMS0yNy4xIDkuNi0zOS44IDE2LjQtMTMuMyA3LTI2LjEgMTUuMS0zOC4xIDI0LjItNi4yIDQuNi0xMi4zIDkuNC0xOCAxNC41LTEwLjIgOS4yLTIwLjQgMTguNC0yOS45IDI4LjMtMTIuOCAxMy4zLTI0LjEgMjguMS0zMy42IDQ0LTguNiAxNC0xNS41IDI5LTIwLjUgNDQuNi03LjIgMjIuNy0xMC4zIDQ2LjYtOS4yIDcwLjMgLjYgMTMuNSAyIDI2LjkgNC40IDQwLjIgMy40IDE4LjQgOSAzNi4zIDE2LjcgNTMuMyAxMy42IDI5LjIgMzIuMSA1MS41IDUwLjQgNjcuOSAxMi44IDExLjYgMjYuOCAyMS45IDQxLjggMzAuNiAxNy43IDEwLjQgMzYuNCAxOC45IDU1LjkgMjUuMyAxMy4zIDQuMyAyNi45IDcuNiA0MC42IDkuOCA2LjEgMSAxMi4zIDEuMyAxOC40IDEuOSAuNCAuMSAuOCAuMyAxLjIgLjZsMzIuMyAwYzIuNS0uNCA1LS45IDcuNS0xLjEgMTYuMy0xLjMgMzIuMS01LjMgNDcuNS0xMC43IDE3LjItNS45IDMzLjctMTMuOSA0OS0yMy44IDkuNy02LjQgMTkuNC0xMy4xIDI4LjctMjAuMSA1LjgtNC4zIDExLTkuNSAxNi4zLTE0LjUgNC0zLjcgNy44LTcuNiAxMS41LTExLjUgMTItMTIuNyAyMi42LTI2LjYgMzEuNC00MS42IDkuNS0xNiAxNy40LTMyLjkgMjIuMy01MC45IDIuOS0xMC40IDQuOS0yMSA3LTMxLjcgMS01LjMgMS4zLTEwLjcgMS45LTE2LjEgMC0uMyAuNC0uNiAuNi0uOWwwLTM3LjFjLS4yLS42LS40LTEuMi0uNi0xLjh6bS0xNjEuMS0xLjJzLTE2LjYtMy0yOC41LTNjLTI3LjIgMC0zMy42IDE0LjktMzMuNiAzN2wwIDkzLjctNzMuNSAwIDAtMTkwLjcgNzMuNSAwIDAgMzEuOWM4LjktMjYuOCAyNi44LTM2LjIgNjItMzYuMmwwIDY3LjN6XCJdXG59O1xudmFyIGZhQWxpcGF5ID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2FsaXBheScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjY0MlwiLCBcIk0zNzcuNyAzMkw3MC4zIDMyQzMxLjQgMzIgMCA2My40IDAgMTAyLjNMMCA0MDkuN0MwIDQ0OC42IDMxLjQgNDgwIDcwLjMgNDgwbDMwNy41IDBjMzguNSAwIDY5LjgtMzEuMSA3MC4zLTY5LjYtNDYtMjUuNi0xMTAuNi02MC4zLTE3MS42LTg4LjQtMzIuMSA0NC04NC4xIDgxLTE0OC42IDgxLTcwLjYgMC05My43LTQ1LjMtOTctNzYuNC00LTM5IDE0LjktODEuNSA5OS41LTgxLjUgMzUuNCAwIDc5LjQgMTAuMiAxMjcuMSAyNSAxNi41LTMwLjEgMjYuNS02MC4zIDI2LjUtNjAuM2wtMTc4LjIgMCAwLTE2LjcgOTIuMSAwIDAtMzEuMi0xMDkuNCAwIDAtMTkgMTA5LjQgMCAwLTUwLjQgNTAuOSAwIDAgNTAuNCAxMDkuNCAwIDAgMTktMTA5LjQgMCAwIDMxLjIgODguOCAwcy0xNS4yIDQ2LjYtMzguMyA5MC45YzQ4LjkgMTYuNyAxMDAgMzYgMTQ4LjYgNTIuN2wwLTIzNC40Yy4yLTM4LjctMzEuMi03MC4zLTY5LjktNzAuM3pNNDcuMyAzMjNjMSAyMC4yIDEwLjIgNTMuNyA2OS45IDUzLjcgNTIuMSAwIDkyLjYtMzkuNyAxMTcuOS03Mi45LTQ0LjYtMTguNy04NC41LTMxLjQtMTA5LjQtMzEuNC02Ny40IDAtNzkuNCAzMy4xLTc4LjQgNTAuNnpcIl1cbn07XG52YXIgZmFDY0FtZXggPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY2MtYW1leCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjFmM1wiLCBcIk0wIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0ODAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEuMS02MS43IDAtMzEuOS0zNS4xLTMxLjkgMzUuMS0yMDMuNyAwIDAtMTYzLjgtNjUuOCAwIDgxLjctMTg0LjcgNzguNiAwIDI4LjEgNjMuMiAwLTYzLjIgOTcuMiAwIDE2LjkgNDcuNiAxNy00Ny42IDc1LjUgMCAwLTIuNGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyem00NDAuNC0yMS43bDQyLjItNDYuMyA0MiA0Ni4zIDUxLjQgMC02OC03Mi4xIDY4LTcyLjEtNTAuNiAwLTQyIDQ2LjctNDEuNS00Ni43LTUxLjQgMCA2Ny41IDcyLjUtNjcuNCA3MS42IDAtMzMuMS04MyAwIDAtMjIuMiA4MC45IDAgMC0zMi4zLTgwLjkgMCAwLTIyLjQgODMgMCAwLTMzLjEtMTIyIDAgMCAxNDMuMiAxNzEuOCAwem05Ni4zLTcybDM5LjMgNDEuOSAwLTgzLjMtMzkuMyA0MS40em0tMzYuMy05MmwzNi45LTEwMC42IDAgMTAwLjYgMzguNyAwIDAtMTQzLjMtNjAuMiAwLTMyLjIgODkuMy0zMS45LTg5LjMtNjEuMiAwIDAgMTQzLjEtNjMuMi0xNDMuMS01MS4yIDAtNjIuNCAxNDMuMyA0MyAwIDExLjktMjguNyA2NS45IDAgMTIgMjguNyA4Mi43IDAgMC0xMDAuMyAzNi44IDEwMC4zIDM0LjQgMHpNMjgyIDE4NS40bDE5LjUtNDYuOSAxOS40IDQ2LjktMzguOSAwelwiXVxufTtcbnZhciBmYVBpZWRQaXBlckFsdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdwaWVkLXBpcGVyLWFsdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjFhOFwiLCBcIk0yNDQgMjQ2Yy0zLjItMi02LjMtMi45LTEwLjEtMi45LTYuNiAwLTEyLjYgMy4yLTE5LjMgMy43bDEuNyA0LjkgMjcuNy01Ljd6TTM3OS45IDQ0My45Yy0xOSAwLTY0LjEgOS41LTc5LjkgMTkuOGw2LjkgNDUuMWMzNS43IDYuMSA3MC4xIDMuNiAxMDYtOS44LTQuOC0xMC0yMy41LTU1LjEtMzMtNTUuMXpNMzQwLjggMTc3YzYuNiAyLjggMTEuNSA5LjIgMjIuNyAyMi4xIDItMS40IDcuNS01LjIgNy41LTguNiAwLTQuOS0xMS44LTEzLjItMTMuMi0yMyAxMS4yLTUuNyAyNS4yLTYgMzcuNi04LjkgNjguMS0xNi40IDExNi4zLTUyLjkgMTQ2LjgtMTE2LjcgNi4xLTEyLjYgMTEuOC0yNS44IDEyLjQtMzkuOWwtMiAyLjZjLTI4LjQgNTAtMzMgNjMuMi04MS4zIDEwMC0zMS45IDI0LjQtNjkuMiA0MC4yLTEwNi42IDU0LjZsLTYuMy0uMyAwLTIxLjhjLTE5LjYgMS42LTE5LjctMTQuNi0zMS42LTIzLTE4LjcgMjAuNi0zMS42IDQwLjgtNTguOSA1MS4xLTEyLjcgNC44LTE5LjYgMTAtMjUuOSAyMS44IDM0LjktMTYuNCA5MS4yLTEzLjUgOTguOC0xMHpNNTU1LjUgMGwtLjYgMS4xLS4zIC45IC42LS42IC4zLTEuNHpNNDk2LjMgMzgyLjFjLTMzLjktNTYuOS03NS4zLTExOC40LTE1MC0xMTUuNWwtLjMtNmMtMS4xLTEzLjUgMzIuOCAzLjIgMzUuMS0zMWwtMTQuNCA3LjJjLTE5LjgtNDUuNy04LjYtNTQuMy02NS41LTU0LjMtMTQuNyAwLTI2LjcgMS43LTQxLjQgNC42IDIuOSAxOC42IDIuMiAzNi43LTEwLjkgNTAuM2wxOS41IDUuNWMtMS43IDMuMi0yLjkgNi4zLTIuOSA5LjggMCAyMSA0Mi44IDIuOSA0Mi44IDMzLjYgMCAxOC40LTM2LjggNjAuMS01NC45IDYwLjEtOCAwLTUzLjctNTAtNTMuNC02MC4xbC4zLTQuNiA1Mi4zLTExLjVjMTMtMi42IDEyLjMtMjIuNy0yLjktMjIuNy0zLjcgMC00My4xIDkuMi00OS40IDEwLjYtMi01LjItNy41LTE0LjEtMTMuOC0xNC4xLTMuMiAwLTYuMyAzLjItOS41IDQtOS4yIDIuNi0zMSAyLjktMjEuNSAyMC4xTDE1LjkgMjk4LjVjLTUuNSAxLjEtOC45IDYuMy04LjkgMTEuOCAwIDYgNS41IDEwLjkgMTEuNSAxMC45IDggMCAxMzEuMy0yOC40IDE0Ny40LTMyLjIgMi42IDMuMiA0LjYgNi4zIDcuOCA4LjYgMjAuMSAxNC40IDU5LjggODUuOSA3Ni40IDg1LjkgMjQuMSAwIDU4LTIyLjQgNzEuMy00MS45IDMuMi00LjMgNi45LTcuNSAxMi40LTYuOSAuNiAxMy44LTMxLjYgMzQuMi0zMyA0My43LTEuNCAxMC4yLTEgMzUuMi0uMyA0MS4xIDI2LjcgOC4xIDUyLTMuNiA3Ny45LTIuOSA0LjMtMjEgMTAuNi00MS45IDkuOC02My41bC0uMy05LjVjLTEuNC0zNC4yLTEwLjktMzguNS0zNC44LTU4LjYtMS4xLTEuMS0yLjYtMi42LTMuNy00IDIuMi0xLjQgMS4xLTEgNC42LTEuNyA4OC41IDAgNTYuMyAxODMuNiAxMTEuNSAyMjkuOSAzMy4xLTE1IDcyLjUtMjcuOSAxMDMuNS00Ny4yLTI5LTI1LjYtNTIuNi00NS43LTcyLjctNzkuOXpNMzAwLjEgNDI4LjJsMCAyNy4yIDExLjgtMy40LTIuOS0yMy44LTguOSAwek0yMzEuNCAyNzcuOGwyNC4xIDYxLjIgMjEtMTMuOC0zMS4zLTUwLjktMTMuOCAzLjV6bTg0LjQgMTU0LjlsMiAxMi40YzktMS41IDU4LjQtNi42IDU4LjQtMTQuMSAwLTEuNC0uNi0zLjItLjktNC42LTI2LjggMC0zNi45IDMuOC01OS41IDYuM3pcIl1cbn07XG52YXIgZmFMZXR0ZXJib3hkID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2xldHRlcmJveGQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU2MmRcIiwgXCJNNTIxLjMgMTI4QzU4Ni45IDEyOCA2NDAgMTgxLjEgNjQwIDI0Ni42UzU4Ni45IDM2NS4yIDUyMS4zIDM2NS4yYy00Mi41IDAtNzkuNy0yMi4zLTEwMC43LTU1LjggMTEuNC0xOC4yIDE4LTM5LjcgMTgtNjIuOHMtNi42LTQ0LjYtMTgtNjIuOGwuOC0xLjJjMjAuOC0zMi4zIDU2LjgtNTMuOSA5Ny45LTU0LjZsMiAwek0zMjAgMTI4YzQyLjUgMCA3OS43IDIyLjMgMTAwLjcgNTUuOC0xMS40IDE4LjItMTggMzkuNy0xOCA2Mi44czYuNiA0NC42IDE4IDYyLjhsLS44IDEuMmMtMjAuOCAzMi4zLTU2LjggNTMuOS05Ny45IDU0LjZsLTIgMGMtNDIuNSAwLTc5LjctMjIuMy0xMDAuNy01NS44IDExLjQtMTguMiAxOC0zOS43IDE4LTYyLjhzLTYuNi00NC42LTE4LTYyLjhsLjgtMS4yYzIwLjgtMzIuMyA1Ni44LTUzLjkgOTcuOS01NC42bDIgMHptLTIwMS4zIDBjNDIuNSAwIDc5LjcgMjIuMyAxMDAuNyA1NS44LTExLjQgMTguMi0xOCAzOS43LTE4IDYyLjhzNi42IDQ0LjYgMTggNjIuOGwtLjggMS4yYy0yMC44IDMyLjMtNTYuOCA1My45LTk3LjkgNTQuNmwtMiAwQzUzLjEgMzY1LjEgMCAzMTIuMSAwIDI0Ni42UzUzLjEgMTI4IDExOC43IDEyOHpcIl1cbn07XG52YXIgZmFPcGVyYSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdvcGVyYScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI2YVwiLCBcIk0zMjEuOSAzMi43Yy0xNzAuMiAwLTI1Mi42IDIyMy44LTE0Ny41IDM1NS4xIDM2LjUgNDUuNCA4OC42IDc1LjYgMTQ3LjUgNzUuNiAzNi4zIDAgNzAuMy0xMS4xIDk5LjQtMzAuNC00My44IDM5LjItMTAxLjkgNjMtMTY1LjMgNjMtMy45IDAtOCAwLTExLjktLjMtMTMxLjUtNi4xLTIzNi4xLTExNC42LTIzNi4xLTI0Ny43IDAtMTM3IDExMS0yNDggMjQ4LTI0OGwuOCAwYzYzLjEgLjMgMTIwLjcgMjQuMSAxNjQuNCA2My4xLTI5LTE5LjQtNjMuMS0zMC40LTk5LjMtMzAuNHpNNDIzLjcgNDMwLjRjLTQwLjkgMjQuNy05MC43IDIzLjYtMTMyLTUuOCA1Ni4yLTIwLjUgOTcuNy05MS42IDk3LjctMTc2LjYgMC04NC43LTQxLjItMTU1LjgtOTcuNC0xNzYuNiA0MS44LTI5LjIgOTEuMi0zMC4zIDEzMi45LTUgMTA1LjkgOTguNyAxMDUuNSAyNjUuNy0xLjIgMzY0elwiXVxufTtcbnZhciBmYVdlaWJvID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3dlaWJvJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMThhXCIsIFwiTTQwNyAxNzcuNmM3LjYtMjQtMTMuNC00Ni44LTM3LjQtNDEuNy0yMiA0LjgtMjguOC0yOC4xLTcuMS0zMi44IDUwLjEtMTAuOSA5Mi4zIDM3LjEgNzYuNSA4NC44LTYuOCAyMS4yLTM4LjggMTAuOC0zMi0xMC4zek0yMTQuOCA0NDYuN2MtMTA2LjMgMC0yMTQuOC01MS40LTIxNC44LTEzNi4zIDAtNDQuMyAyOC05NS40IDc2LjMtMTQzLjcgOTkuNy05OS43IDIwMy4yLTEwMC45IDE3My42LTUuNy00IDEzLjEgMTIuMyA1LjcgMTIuMyA2IDc5LjUtMzMuNiAxNDAuNS0xNi44IDExNCA1MS40LTMuNyA5LjQgMS4xIDEwLjkgOC4zIDEzLjEgMTM1LjcgNDIuMyAzNC44IDIxNS4yLTE2OS43IDIxNS4yek0zNTguNSAzMDAuNGMtNS40LTU1LjctNzguNS05NC0xNjMuNC04NS43LTg0LjggOC42LTE0OC44IDYwLjMtMTQzLjQgMTE2czc4LjUgOTQgMTYzLjQgODUuN2M4NC44LTguNiAxNDguOC02MC4zIDE0My40LTExNnpNMzQ3LjkgMzUuMWMtMjUuOSA1LjYtMTYuOCA0My43IDguMyAzOC4zIDcyLjMtMTUuMiAxMzQuOCA1Mi44IDExMS43IDEyNC03LjQgMjQuMiAyOS4xIDM3IDM3LjQgMTIgMzEuOS05OS44LTU1LjEtMTk1LjktMTU3LjQtMTc0LjN6bS03OC41IDMxMWMtMTcuMSAzOC44LTY2LjggNjAtMTA5LjEgNDYuMy00MC44LTEzLjEtNTgtNTMuNC00MC4zLTg5LjcgMTcuNy0zNS40IDYzLjEtNTUuNCAxMDMuNC00NS4xIDQyIDEwLjggNjMuMSA1MC4yIDQ2IDg4LjV6bS04Ni4zLTMwYy0xMi45LTUuNC0zMCAuMy0zOCAxMi45LTguMyAxMi45LTQuMyAyOCA4LjYgMzQgMTMuMSA2IDMwLjggLjMgMzkuMS0xMi45IDgtMTMuMSAzLjctMjguMy05LjctMzR6bTMyLjYtMTMuNGMtNS4xLTEuNy0xMS40IC42LTE0LjMgNS40LTIuOSA1LjEtMS40IDEwLjYgMy43IDEyLjkgNS4xIDIgMTEuNy0uMyAxNC42LTUuNCAyLjgtNS4yIDEuMS0xMC45LTQtMTIuOXpcIl1cbn07XG52YXIgZmFSZWFkbWUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncmVhZG1lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNGQ1XCIsIFwiTTUyOC4zIDQ2LjVsLTEzOS44IDBjLTQ4LjEgMC04OS45IDMzLjMtMTAwLjQgODAuMy0xMC42LTQ3LTUyLjMtODAuMy0xMDAuNC04MC4zTDQ4IDQ2LjVDMjEuNSA0Ni41IDAgNjggMCA5NC41TDAgMzQwLjNjMCAyNi41IDIxLjUgNDggNDggNDhsODkuNyAwYzEwMi4yIDAgMTMyLjcgMjQuNCAxNDcuMyA3NSAuNyAyLjggNS4yIDIuOCA2IDAgMTQuNy01MC42IDQ1LjItNzUgMTQ3LjMtNzVsODkuNyAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjQ1LjdjMC0yNi40LTIxLjMtNDcuOS00Ny43LTQ4LjF6TTI0MiAzMTEuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6TTUwMS4zIDMxMS44YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi44YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjgtLjEgMHpcIl1cbn07XG52YXIgZmFHb2xhbmcgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZ29sYW5nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNDBmXCIsIFwiTTQwMC4xIDE5NC44Yy0xMC45IDIuOC0xOS45IDQuMy0yOS4xIDcuNi03LjMgMS45LTE0LjcgMy45LTIzLjIgNi4xbC0uNiAuMWMtNC4yIDEuMi00LjYgMS4zLTguNS0zLjItNC43LTUuMy04LjEtOC43LTE0LjYtMTEuOS0xOS43LTkuNi0zOC43LTYuOC01Ni40IDQuNy0yMS4yIDEzLjctMzIuMSAzNC0zMS44IDU5LjIgLjMgMjUgMTcuNCA0NS41IDQxLjIgNDguOSAyMiAyLjggMzkuOC00LjYgNTMuOC0yMC41IDIuMS0yLjYgNC01LjMgNi4xLTguMyAuOC0xIDEuNS0yLjEgMi4zLTMuM2wtNjAuMSAwYy02LjUgMC04LjEtNC01LjktOS4zIDQtOS43IDExLjUtMjUuOSAxNS45LTM0IC45LTEuOCAzLjEtNS44IDYuOS01LjhsMTAxLjEgMGM0LjUtMTMuNCAxMS44LTI2LjkgMjEuNi0zOS43IDIyLjctMjkuOSA0OS4zLTQ1LjUgODcuMi01MiAzMS44LTUuNiA2MS43LTIuNSA4OC45IDE1LjkgMjQuNiAxNi44IDM5LjggMzkuNiA0My45IDY5LjUgNS4zIDQyLjEtNi45IDc2LjMtMzYuNyAxMDUuNi0xOS43IDIwLjktNDQuOSAzNC03My45IDM5LjktNS42IDEtMTEuMSAxLjUtMTYuNSAyLTIuOSAuMi01LjcgLjUtOC41IC44LTI4LjMtLjYtNTQuMi04LjctNzYtMjcuNC0xNS4zLTEzLjMtMjUuOS0yOS42LTMxLjEtNDguNS0zLjcgNy4zLTggMTQuNC0xNCAyMS4xLTIxLjYgMjkuNi01MC45IDQ4LTg3LjkgNTIuOS0zMC42IDQuMS01OC45LTEuOC04My45LTIwLjUtMjMtMTcuNS0zNi4xLTQwLjUtMzkuNS02OS4yLTQuMS0zNCA1LjktNjUuNCAyNi40LTkxLjMgMjIuMi0yOSA1MS41LTQ3LjQgODcuMy01My45IDI5LjMtNi4yIDU3LjMtMS45IDgyLjYgMTUuMyAxNi41IDEwLjkgMjguMyAyNS44IDM2LjEgNDMuOSAxLjkgMi44IC42IDQuNC0zLjEgNS4zek00OC4zIDIwMC40Yy0xLjMgMC0xLjYtLjYtLjktMS42bDYuNi04LjRjLjYtLjkgMi4yLTEuNSAzLjQtMS41bDExMS4zIDBjMS4yIDAgMS41IC45IC45IDEuOGwtNS4zIDguMWMtLjYgMS0yLjIgMS45LTMuMSAxLjlsLTExMi44LS4zek0xLjIgMjI5LjFjLTEuMiAwLTEuNi0uNy0uOS0xLjZsNi41LTguNGMuNi0uOSAyLjItMS42IDMuNC0xLjZsMTQyLjEgMGMxLjIgMCAxLjggMSAxLjUgMS45bC0yLjUgNy41Yy0uMyAxLjItMS41IDEuOS0yLjggMS45TDEuMiAyMjkuMXptNzQuNSAyNi44Yy0uNiAuOS0uMyAxLjggLjkgMS44bDY4IC4zYy45IDAgMi4yLS45IDIuMi0yLjFsLjYtNy41YzAtMS4zLS42LTIuMi0xLjktMi4ybC02Mi4zIDBjLTEuMiAwLTIuNSAuOS0zLjEgMS45bC00LjQgNy44em01MDEuNS0xOGMtLjItMi42LS4zLTQuOC0uNy03LTUuNi0zMC44LTM0LTQ4LjMtNjMuNi00MS40LTI5IDYuNS00Ny43IDI0LjktNTQuNSA1NC4yLTUuNiAyNC4zIDYuMiA0OC45IDI4LjYgNTguOSAxNy4yIDcuNSAzNC4zIDYuNiA1MC44LTEuOSAyNC42LTEzLjYgMzgtMzIuNyAzOS42LTU5LjUtLjEtMS4yLS4xLTIuMy0uMi0zLjN6XCJdXG59O1xudmFyIGZhU3RhY2tFeGNoYW5nZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzdGFjay1leGNoYW5nZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjE4ZFwiLCBcIk0xOC4xIDMzMi4zbDQxMi43IDAgMCAyMmMwIDM3LjctMjkuMyA2OC02NS4zIDY4bC0xOSAwLTg2LjggODkuNyAwLTg5LjctMTc2LjMgMGMtMzYgMC02NS4zLTMwLjMtNjUuMy02OGwwLTIyem0wLTIzLjZsNDEyLjcgMCAwLTg1LTQxMi43IDAgMCA4NXptMC0xMDkuNGw0MTIuNyAwIDAtODUtNDEyLjcgMCAwIDg1ek0zNjUuNCAwTDgzLjQgMGMtMzYgMC02NS4zIDMwLjMtNjUuMyA2Ny43bDAgMjIuMyA0MTIuNyAwIDAtMjIuM0M0MzAuNyAzMC4zIDQwMS40IDAgMzY1LjQgMHpcIl1cbn07XG52YXIgZmFHdWxwID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2d1bHAnLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImYzYWVcIiwgXCJNMjEwIDM5MS4xbC0xNC4xIDI0LjYtNC42IDgwLjJjMCA4LjktMjguMyAxNi4xLTYzLjEgMTYuMXMtNjMuMS03LjItNjMuMS0xNi4xbC01LjgtNzkuNC0xNC45LTI1LjRjNDEuMiAxNy4zIDEyNiAxNi43IDE2NS42IDB6TTE0IDEzNy44TDI3LjYgMjYzLjNjNS45LTIwIDIwLjgtNDcgNDAtNTUuMiA2LjMtMi43IDEyLjctMi43IDE4LjcgLjkgNS4yIDMgOS42IDkuMyAxMC4xIDExLjggMS4yIDYuNS0yIDkuMS00LjUgOS4xLTMgMC01LjMtNC42LTYuOC03LjMtNC4xLTcuMy0xMC4zLTcuNi0xNi45LTIuOC02LjkgNS0xMi45IDEzLjQtMTcuMSAyMC43LTUuMSA4LjgtOS40IDE4LjUtMTIgMjguMi0xLjUgNS42LTIuOSAxNC42LS42IDE5LjkgMSAyLjIgMi41IDMuNiA0LjkgMy42IDUgMCAxMi4zLTYuNiAxNS44LTEwLjEgNC41LTQuNSAxMC4zLTExLjUgMTIuNS0xNmw1LjItMTUuNWMyLjYtNi44IDkuOS01LjYgOS45IDAgMCAxMC4yLTMuNyAxMy42LTEwIDM0LjctNS44IDE5LjUtNy42IDI1LjgtNy42IDI1LjgtLjcgMi44LTMuNCA3LjUtNi4zIDcuNS0xLjIgMC0yLjEtLjQtMi42LTEuMi0xLTEuNC0uOS01LjMtLjgtNi4zIC4yLTMuMiA2LjMtMjIuMiA3LjMtMjUuMi0yIDIuMi00LjEgNC40LTYuNCA2LjYtNS40IDUuMS0xNC4xIDExLjgtMjEuNSAxMS44LTMuNCAwLTUuNi0uOS03LjctMi40bDcuNiA3OS42YzIgNSAzOS4yIDE3LjEgODguMiAxNy4xIDQ5LjEgMCA4Ni4zLTEyLjIgODguMi0xNy4xbDEwLjktOTQuNmMtNS43IDUuMi0xMi4zIDExLjYtMTkuNiAxNC44LTUuNCAyLjMtMTcuNCAzLjgtMTcuNC01LjcgMC01LjIgOS4xLTE0LjggMTQuNC0yMS41IDEuNC0xLjcgNC43LTUuOSA0LjctOC4xIDAtMi45LTYtMi4yLTExLjcgMi41LTMuMiAyLjctNi4yIDYuMy04LjcgOS43LTQuMyA2LTYuNiAxMS4yLTguNSAxNS41LTYuMiAxNC4yLTQuMSA4LjYtOS4xIDIyLTUgMTMuMy00LjIgMTEuOC01LjIgMTQtLjkgMS45LTIuMiAzLjUtNCA0LjUtMS45IDEtNC41IC45LTYuMS0uMy0uOS0uNi0xLjMtMS45LTEuMy0zLjcgMC0uOSAuMS0xLjggLjMtMi43IDEuNS02LjEgNy44LTE4LjEgMTUtMzQuMyAxLjYtMy43IDEtMi42IC44LTIuMy02LjIgNi0xMC45IDguOS0xNC40IDEwLjUtNS44IDIuNi0xMyAyLjYtMTQuNS00LjEtLjEtLjQtLjEtLjgtLjItMS4yLTExLjggOS4yLTI0LjMgMTEuNy0yMC04LjEtNC42IDguMi0xMi42IDE0LjktMjIuNCAxNC45LTQuMSAwLTcuMS0xLjQtOC42LTUuMS0yLjMtNS41IDEuMy0xNC45IDQuNi0yMy44IDEuNy00LjUgNC05LjkgNy4xLTE2LjIgMS42LTMuNCA0LjItNS40IDcuNi00LjUgLjYgLjIgMS4xIC40IDEuNiAuNyAyLjYgMS44IDEuNiA0LjUgLjMgNy4yLTMuOCA3LjUtNy4xIDEzLTkuMyAyMC44LS45IDMuMy0yIDkgMS41IDkgMi40IDAgNC43LS44IDYuOS0yLjQgNC42LTMuNCA4LjMtOC41IDExLjEtMTMuNSAyLTMuNiA0LjQtOC4zIDUuNi0xMi4zIC41LTEuNyAxLjEtMy4zIDEuOC00LjggMS4xLTIuNSAyLjYtNS4xIDUuMi01LjEgMS4zIDAgMi40IC41IDMuMiAxLjUgMS43IDIuMiAxLjMgNC41IC40IDYuOS0yIDUuNi00LjcgMTAuNi02LjkgMTYuNy0xLjMgMy41LTIuNyA4LTIuNyAxMS43IDAgMy40IDMuNyAyLjYgNi44IDEuMiAyLjQtMS4xIDQuOC0yLjggNi44LTQuNSAxLjItNC45IC45LTMuOCAyNi40LTY4LjIgMS4zLTMuMyAzLjctNC43IDYuMS00LjcgMS4yIDAgMi4yIC40IDMuMiAxLjEgMS43IDEuMyAxLjcgNC4xIDEgNi4yLS43IDEuOS0uNiAxLjMtNC41IDEwLjUtNS4yIDEyLjEtOC42IDIwLjgtMTMuMiAzMS45LTEuOSA0LjYtNy43IDE4LjktOC43IDIyLjMtLjYgMi4yLTEuMyA1LjggMSA1LjggNS40IDAgMTkuMy0xMy4xIDIzLjEtMTcgLjItLjMgLjUtLjQgLjktLjYgLjYtMS45IDEuMi0zLjcgMS43LTUuNSAxLjQtMy44IDIuNy04LjIgNS4zLTExLjMgLjgtMSAxLjctMS42IDIuNy0xLjYgMi44IDAgNC4yIDEuMiA0LjIgNCAwIDEuMS0uNyA1LjEtMS4xIDYuMiAxLjQtMS41IDIuOS0zIDQuNS00LjUgMTUtMTMuOSAyNS43LTYuOCAyNS43IC4yIDAgNy40LTguOSAxNy43LTEzLjggMjMuNC0xLjYgMS45LTQuOSA1LjQtNSA2LjQgMCAxLjMgLjkgMS44IDIuMiAxLjggMiAwIDYuNC0zLjUgOC00LjcgNS0zLjkgMTEuOC05LjkgMTYuNi0xNC4xbDE0LjgtMTM2LjhjLTMwLjUgMTcuMS0xOTcuNiAxNy4yLTIyOC4zIC4yem0yMjkuNy04LjVjMCAyMS0yMzEuMiAyMS0yMzEuMiAwIDAtOC44IDUxLjgtMTUuOSAxMTUuNi0xNS45IDkgMCAxNy44IC4xIDI2LjMgLjRMMTY3IDY1LjEgMjI4LjMgLjZjMS40LTEuNCA1LjgtLjIgOS45IDMuNXM2LjYgNy45IDUuMyA5LjNsLS4xIC4xLTU3LjMgNjAuNS0xMCA0MC43YzM5LjkgMi42IDY3LjYgOC4xIDY3LjYgMTQuNnptLTY5LjQgNC42YzAtLjgtLjktMS41LTIuNS0yLjFsLS4yIC44YzAgMS4zLTUgMi40LTExLjEgMi40cy0xMS4xLTEuMS0xMS4xLTIuNGMwLS4xIDAtLjIgLjEtLjNsLjItLjdjLTEuOCAuNi0zIDEuNC0zIDIuMyAwIDIuMSA2LjIgMy43IDEzLjcgMy43IDcuNyAuMSAxMy45LTEuNiAxMy45LTMuN3pcIl1cbn07XG52YXIgZmFZZWxwID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3llbHAnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxZTlcIiwgXCJNNDIuOSAyNDAuM2w5OS42IDQ4LjZjMTkuMiA5LjQgMTYuMiAzNy41LTQuNSA0Mi43TDMwLjUgMzU4LjVjLTMuMiAuOC02LjQgLjktOS42IC4zcy02LjItMS44LTguOS0zLjctNC45LTQuMy02LjYtNy4xLTIuNy01LjktMy4xLTkuMmMtMy4zLTI4LjgtLjItNTcuOSA5LTg1LjMgMS0zLjEgMi43LTUuOSA0LjktOC4zczQuOS00LjIgNy45LTUuNSA2LjItMS44IDkuNS0xLjggNi40IC45IDkuMyAyLjN6bTQ0IDIzOS4zYzIzLjggMTYuMyA1MC45IDI3LjMgNzkuNCAzMi4xIDMuMiAuNiA2LjUgLjQgOS42LS40czYuMS0yLjMgOC42LTQuNCA0LjYtNC42IDYtNy41IDIuMy02LjEgMi40LTkuNGwzLjktMTEwLjhjLjctMjEuMy0yNS41LTMxLjktMzkuOC0xNi4xTDgyLjggNDQ1LjVjLTIuMiAyLjQtMy44IDUuMy00LjggOC40cy0xLjMgNi40LS45IDkuNiAxLjUgNi4zIDMuMSA5LjEgMy45IDUuMiA2LjYgN2wwIDB6TTIzMi4yIDM2OS43bDU4LjggOTRjMS43IDIuOCA0IDUuMSA2LjggNi45czUuOCAzIDkgMy41IDYuNSAuMyA5LjctLjUgNi4xLTIuNCA4LjYtNC40YzIyLjMtMTguNCA0MC4zLTQxLjUgNTIuNy02Ny42IDEuNC0yLjkgMi4xLTYuMSAyLjItOS40cy0uNi02LjUtMS45LTkuNC0zLjItNS43LTUuNi03LjgtNS4yLTMuOS04LjMtNC45TDI1OC43IDMzNS43Yy0yMC4zLTYuNS0zNy44IDE1LjgtMjYuNSAzMy45ek0zODAuNiAyMzcuNGMtMTEuNS0yNi41LTI4LjctNTAuMi01MC40LTY5LjMtMi40LTIuMS01LjMtMy43LTguNC00LjdzLTYuNC0xLjItOS42LS44LTYuMyAxLjUtOS4xIDMuMi01LjEgNC02LjkgNi43bC02MiA5MS45Yy0xMS45IDE3LjcgNC43IDQwLjYgMjUuMiAzNC43TDM2NiAyNjguNmMzLjEtLjkgNi0yLjUgOC41LTQuNnM0LjUtNC43IDUuOC03LjcgMi4xLTYuMiAyLjItOS40LS42LTYuNS0xLjktOS41bDAgMHpNNjIuMSAzMC4yYy0yLjggMS40LTUuNCAzLjMtNy40IDUuN3MtMy42IDUuMi00LjUgOC4yLTEuMiA2LjItLjkgOS4zIDEuMyA2LjEgMi45IDguOUwxNTYuMyAyNDIuNmMxMS43IDIwLjIgNDIuNiAxMS45IDQyLjYtMTEuNGwwLTIwOC4zYzAtMy4xLS42LTYuMy0xLjgtOS4ycy0zLjEtNS41LTUuNC03LjYtNS0zLjgtOC00LjgtNi4xLTEuNC05LjMtMS4yYy0zOSAzLjEtNzcgMTMuMy0xMTIuMyAzMC4xelwiXVxufTtcbnZhciBmYUdvZm9yZSA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdnb2ZvcmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzYTdcIiwgXCJNMzQ4IDMxOS44bC0xMy4yIDAgMCAzNC43Yy0yNC41IDIzLjEtNTYuMyAzNS44LTg5LjkgMzUuOC03My4yIDAtMTMyLjQtNjAuMi0xMzIuNC0xMzQuNCAwLTc0LjEgNTkuMi0xMzQuNCAxMzIuNC0xMzQuNCAzNS4zIDAgNjguNiAxNCA5My42IDM5LjRsNjIuMy02My4zYy00MS44LTQyLjMtOTcuMS02NS42LTE1Ni4xLTY1LjYtMTIyLjcgMC0yMjAuNyAxMDAuNi0yMjAuNyAyMjQgMCAxMjIuNSA5NyAyMjQgMjIwLjcgMjI0IDYzLjIgMCAxMjQuNS0yNi4yIDE3MS04Mi41LTItMjcuNi0xMy40LTc3LjctNjcuNy03Ny43ek0zMzUuOSAyMDcuM2wtMTA2LjMgMCAwIDg5IDExOC40IDBjMzMuNSAwIDYwLjUgMTUuMSA3NiA0MS44bDAtMzAuNmMwLTY1LjItNDAuNC0xMDAuMi04OC4xLTEwMC4yelwiXVxufTtcbnZhciBmYUF2aWF0byA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdhdmlhdG8nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0MjFcIiwgXCJNMTA3LjIgMjgzLjVsLTE5LTQxLjgtNTIuMSAwLTE5IDQxLjgtMTcuMSAwIDYyLjItMTMxLjQgNjIuMiAxMzEuNC0xNy4yIDB6bS00NS05OC4xbC0xOS42IDQyLjUgMzkuMiAwLTE5LjYtNDIuNXpNMTc0LjkgMjg3LjhsLTYyLjItMTMxLjQgMTcuMSAwIDQ1LjEgOTYgNDUuMS05NiAxNyAwLTYyLjEgMTMxLjR6bTgwLjYtNC4zbDAtMTI3LjEgMTUuNSAwIDAgMTI3LjEtMTUuNSAwek00NjQuNiAxNjcuOWwwIDExNS42LTE3LjMgMCAwLTExNS42LTQxLjIgMCAwLTExLjUgOTkuNiAwIDAgMTEuNS00MS4xIDB6TTY0MCAyMTguOGMwIDkuMi0xLjcgMTcuOC01LjEgMjUuOHMtOC4yIDE1LjEtMTQuMiAyMS4xLTEzLjEgMTAuOC0yMS4xIDE0LjItMTYuNiA1LjEtMjUuOCA1LjEtMTcuOC0xLjctMjUuOC01LjEtMTUuMS04LjItMjEuMS0xNC4yLTEwLjgtMTMtMTQuMi0yMS4xYy0zLjQtOC01LjEtMTYuNi01LjEtMjUuOHMxLjctMTcuOCA1LjEtMjUuOCA4LjItMTUuMSAxNC4yLTIxLjEgMTMtOC40IDIxLjEtMTEuOWM4LTMuNCAxNi42LTUuMSAyNS44LTUuMXMxNy44IDEuNyAyNS44IDUuMSAxNS4xIDUuOCAyMS4xIDExLjljNiA2IDEwLjcgMTMuMSAxNC4yIDIxLjEgMy40IDggNS4xIDE2LjYgNS4xIDI1Ljh6bS0xNS41IDBjMC03LjMtMS4zLTE0LTMuOS0yMC4zcy02LjItMTEuNy0xMC44LTE2LjMtMTAtOC4yLTE2LjItMTAuOS0xMi44LTQtMTkuOC00LTEzLjYgMS4zLTE5LjggNC0xMS42IDYuMy0xNi4yIDEwLjktOC4yIDEwLTEwLjggMTYuMy0zLjkgMTMuMS0zLjkgMjAuM2MwIDcuMyAxLjMgMTQgMy45IDIwLjNzNi4yIDExLjcgMTAuOCAxNi4zIDEwIDguMiAxNi4yIDEwLjkgMTIuOCA0IDE5LjggNCAxMy42LTEuMyAxOS44LTQgMTEuNi02LjMgMTYuMi0xMC45IDguMi0xMCAxMC44LTE2LjMgMy45LTEzLjEgMy45LTIwLjN6bS05NC44IDk2LjdsMC02LjMgODguOS0xMC0yNDIuOSAxMy40Yy42LTIuMiAxLjEtNC42IDEuNC03LjIgLjMtMiAuNS00LjIgLjYtNi41bDY0LjgtOC4xLTY0LjkgMS45YzAtLjQtLjEtLjctLjEtMS4xLTIuOC0xNy4yLTI1LjUtMjMuNy0yNS41LTIzLjdsLTEuMS0yNi4zIDIzLjggMCAxOSA0MS44IDE3LjEgMC02Mi4yLTEzMS40LTYyLjIgMTMxLjQgMTcuMSAwIDE5LTQxLjggMjMuNiAwLTEuMSAyNi40cy0yMi43IDYuNS0yNS41IDIzLjdjLS4xIC4zLS4xIC43LS4xIDEuMWwtNjQuOS0xLjkgNjQuOCA4LjFjLjEgMi4zIC4zIDQuNCAuNiA2LjUgLjMgMi42IC44IDUgMS40IDcuMmwtMjQyLjktMTMuNSA4OC45IDEwIDAgNi4zYy01LjkgLjktMTAuNSA2LTEwLjUgMTIuMiAwIDYuOCA1LjYgMTIuNCAxMi40IDEyLjRzMTIuNC01LjYgMTIuNC0xMi40YzAtNi4yLTQuNi0xMS4zLTEwLjUtMTIuMmwwLTUuOCA4MC4zIDkgMCA1LjRjLTUuNyAxLjEtOS45IDYuMi05LjkgMTIuMSAwIDYuOCA1LjYgMTAuMiAxMi40IDEwLjJzMTIuNC0zLjQgMTIuNC0xMC4yYzAtNi00LjMtMTEtOS45LTEyLjFsMC00LjkgMjguNCAzLjIgMCAyMy43LTUuOSAwIDAgMTMuOSA1LjkgMCAwLTYuNiA1IDAgMCA2LjYgNS45IDAgMC0xMy44LTUuOSAwIDAtMjMuMiAzOC4zIDQuM2M4LjEgMTEuNCAxOSAxMy42IDE5IDEzLjZsLS4xIDYuNy01LjEgLjItLjEgMTIuMSA0LjEgMCAuMS01IDUuMiAwIC4xIDUgNC4xIDAtLjEtMTIuMS01LjEtLjItLjEtNi43czEwLjktMi4xIDE5LTEzLjZsMzguMy00LjMgMCAyMy4yLTUuOSAwIDAgMTMuOCA1LjkgMCAwLTYuNiA1IDAgMCA2LjYgNS45IDAgMC0xMy44LTUuOSAwIDAtMjMuNyAyOC40LTMuMiAwIDQuOWMtNS43IDEuMS05LjkgNi4yLTkuOSAxMi4xIDAgNi44IDUuNiAxMC4yIDEyLjQgMTAuMnMxMi40LTMuNCAxMi40LTEwLjJjMC02LTQuMy0xMS05LjktMTIuMWwwLTUuNCA4MC4zLTkgMCA1LjhjLTUuOSAuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNHMxMi40LTUuNiAxMi40LTEyLjRjLS4yLTYuMy00LjctMTEuNC0xMC43LTEyLjN6TTMyOC45IDIyNy45bDE5LjYtNDIuNSAxOS42IDQyLjUtMTcuOSAwLTEuNy00MC4zLTEuNyA0MC4zLTE3LjkgMHpcIl1cbn07XG52YXIgZmFQYWRsZXQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAncGFkbGV0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGEwXCIsIFwiTTI5Ny45IDBsLjEgMGM3LjYgLjEgMTQuNCA0LjcgMTcuNSAxMS44bDEzMiAzMDguNSAuMy0uMSAuMiAuNC0yLjggMTAtNDIuOSAxNThjLTMuNyAxNi4yLTE5LjcgMjYuMy0zNS44IDIyLjZsLTY4LjQtMTUuNi02OC41IDE1LjZjLTE2LjEgMy43LTMyLjEtNi40LTM1LjgtMjIuNmwtNDIuOS0xNTgtMi43LTEwIC4xLS40IDEzMi4xLTMwOC40YzMtNyA5LjktMTEuNiAxNy41LTExLjh6TTE2MC4xIDMyMi4xbDEzMSAzOS4xIDYuOSAxMjIuNSA3LjktMTIxLjUgMTMwLjYtMzkuMyAuMi0uMS0xMzEgMjUuMS04LjYtMzIwLjItNS4yIDMyMC4yLTEzMS44LTI1Ljh6TTQyNiAyMjIuNmw5NC40LTQxIDczLjggMC0xNTcgMjQ3LjYgMzEuNi0xMDktNDIuOC05Ny42em0xNzEuNS00MS4ybDQxLjQgNzYuMmM0IDcuNS0zLjkgMTUuOS0xMS42IDEyLjJsLTQ3LjYtMjIuNyAxNy44LTY1Ljd6TTEyNy4zIDMxOC41TDE1OC43IDQzMCAxLjYgMTU0LjVjLTUuOS0xMC40IDUuNS0yMiAxNS45LTE2LjJsMTUxLjggODQuMi00Mi4xIDk2elwiXVxufTtcbnZhciBmYUVkZ2VMZWdhY3kgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZWRnZS1sZWdhY3knLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUwNzhcIiwgXCJNLTYgMjI4LjJsLjQtLjVjMCAuMiAwIC4zLS4xIC41bC0uMyAwem00NjAuNiAxNS41YzAtNDQtNy44LTg0LjUtMjguOC0xMjIuNC00MS03My40LTExMy42LTExMy4zLTE5OC42LTExMy4zLTEzOS45LS4zLTIxOC4zIDEwNS4yLTIzMi44IDIxOS43IDQyLjQtNjEuMyAxMTcuMS0xMjEuNCAyMjAuNC0xMjUgMCAwIDEwOS43IDAgOTkuNCAxMDVsLTE3NS44IDBjNi40LTM3LjQgMTguNS01OSAzNC4zLTc4LjktNzUgMzQuOS0xMjEuOCA5Ni4xLTEyMC44IDE4OC4zIC44IDcxLjUgNTAuMSAxNDQuOCAxMjAuOCAxNzIgODMuNCAzMS44IDE5Mi44IDcuMiAyNDAuMS0yMS4zbDAtMTA0LjRjLTgwLjkgNTYuNS0yNzAuOSA2MC45LTI3Mi4zLTY3LjZsMzE0LjEgMCAwLTUyLjF6XCJdXG59O1xudmFyIGZhU3F1YXJlTGFzdGZtID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ3NxdWFyZS1sYXN0Zm0nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImxhc3RmbS1zcXVhcmVcIl0sIFwiZjIwM1wiLCBcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjEwLjcgMjgwLjhjLTEuOC01LjUtMy40LTEwLjgtNS0xNS45LTEyLjktNDEuOS0yMS02OC40LTU4LTY4LjQtMjIuNCAwLTQ1LjEgMTYuMS00NS4xIDYxLjIgMCAzNS4yIDE4IDU3LjIgNDMuMyA1Ny4yIDI4LjYgMCA0Ny42LTIxLjMgNDcuNi0yMS4zbDExLjcgMzEuOXMtMTkuOCAxOS40LTYxLjIgMTkuNGMtNTEuMyAwLTc5LjktMzAuMS03OS45LTg1LjggMC01Ny45IDI4LjYtOTIgODIuNS05MiA2Ny45IDAgNzkuMyAzNS4zIDk2LjQgODguNCAxLjQgNC40IDIuOSA4LjkgNC40IDEzLjUgOC44IDI2LjggMjQuMiA0Ni4yIDYxLjIgNDYuMiAyNC45IDAgMzguMS01LjUgMzguMS0xOS4xIDAtMTcuNS0xNi45LTIxLjItNDAtMjYuNC0zLjItLjctNi41LTEuNC05LjktMi4yLTMwLjQtNy4zLTQyLjUtMjMuMS00Mi41LTQ4IDAtNDAgMzIuMy01Mi40IDY1LjItNTIuNCAzNy40IDAgNjAuMSAxMy42IDYzIDQ2LjZsLTM2LjcgNC40Yy0xLjUtMTUuOC0xMS0yMi40LTI4LjYtMjIuNC0xNi4xIDAtMjYgNy4zLTI2IDE5LjggMCAxMSA0LjggMTcuNiAyMC45IDIxLjMgMi4yIC41IDQuNSAxIDYuNyAxLjQgMzEuMSA2LjUgNjUuMSAxMy43IDY1LjEgNTYuMSAuMSAzNi43LTMwLjcgNTAuNi03Ni4xIDUwLjYtNjMuNCAwLTg1LjQtMjguNi05Ny4xLTY0LjF6XCJdXG59O1xudmFyIGZhTGFzdGZtU3F1YXJlID0gZmFTcXVhcmVMYXN0Zm07XG52YXIgZmFHb29kcmVhZHNHID0ge1xuICBwcmVmaXg6ICdmYWInLFxuICBpY29uTmFtZTogJ2dvb2RyZWFkcy1nJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmM2E5XCIsIFwiTTEwLjggNDAzLjNsMi44IDBjMTIuNyAwIDI1LjUgMCAzOC4yIC4xIDEuNiAwIDMuMS0uNCAzLjYgMi4xIDcuMSAzNC45IDMwIDU0LjYgNjIuOSA2My45IDI2LjkgNy42IDU0LjEgNy44IDgxLjMgMS44IDMzLjgtNy40IDU2LTI4LjMgNjgtNjAuNCA4LTIxLjUgMTAuNy00My44IDExLTY2LjUgLjEtNS44IC4zLTQ3LS4yLTUyLjhsLS45LS4zYy0uOCAxLjUtMS43IDIuOS0yLjUgNC40LTIyLjEgNDMuMS02MS4zIDY3LjQtMTA1LjQgNjkuMS0xMDMgNC0xNjkuNC01Ny0xNzItMTc2LjItLjUtMjMuNyAxLjgtNDYuOSA4LjMtNjkuNyAyMC42LTcxLjEgNzQuNi0xMTguMiAxNTMuOS0xMTguOCA2MS4zLS40IDEwMS41IDM4LjcgMTE2LjIgNzAuMyAuNSAxLjEgMS4zIDIuMyAyLjQgMS45bDAtNjEuNiA0NC4zIDBjMCAyODAuMyAuMSAzMzIuMiAuMSAzMzIuMi0uMSA3OC41LTI2LjcgMTQzLjctMTAzIDE2Mi4yLTY5LjUgMTYuOS0xNTkgNC44LTE5Ni01Ny4yLTgtMTMuNS0xMS44LTI4LjMtMTMtNDQuNXpNMTU3LjEgMzYuNWMtNTIuNS0uNS0xMDguNSA0MC43LTExNSAxMzMuOC00LjEgNTkgMTQuOCAxMjIuMiA3MS41IDE0OC42IDI3LjYgMTIuOSA3NC4zIDE1IDEwOC4zLTguNyA0Ny42LTMzLjIgNjIuNy05NyA1NC44LTE1NC05LjctNzEuMS00Ny44LTEyMC0xMTkuNi0xMTkuN3pcIl1cbn07XG52YXIgZmFDY01hc3RlcmNhcmQgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnY2MtbWFzdGVyY2FyZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjFmMVwiLCBcIk00ODIuOSA0MTAuM2MwIDYuOC00LjYgMTEuNy0xMS4yIDExLjctNi44IDAtMTEuMi01LjItMTEuMi0xMS43czQuNC0xMS43IDExLjItMTEuN2M2LjYgMCAxMS4yIDUuMiAxMS4yIDExLjd6TTE3Mi4xIDM5OC42Yy03LjEgMC0xMS4yIDUuMi0xMS4yIDExLjdTMTY1IDQyMiAxNzIuMSA0MjJjNi41IDAgMTAuOS00LjkgMTAuOS0xMS43LS4xLTYuNS00LjQtMTEuNy0xMC45LTExLjd6bTExNy41LS4zYy01LjQgMC04LjcgMy41LTkuNSA4LjdsMTkuMSAwYy0uOS01LjctNC40LTguNy05LjYtOC43em0xMDcuOCAuM2MtNi44IDAtMTAuOSA1LjItMTAuOSAxMS43czQuMSAxMS43IDEwLjkgMTEuNyAxMS4yLTQuOSAxMS4yLTExLjdjMC02LjUtNC40LTExLjctMTEuMi0xMS43em0xMDUuOSAyNi4xYzAgLjMgLjMgLjUgLjMgMS4xIDAgLjMtLjMgLjUtLjMgMS4xLS4zIC4zLS4zIC41LS41IC44LS4zIC4zLS41IC41LTEuMSAuNS0uMyAuMy0uNSAuMy0xLjEgLjMtLjMgMC0uNSAwLTEuMS0uMy0uMyAwLS41LS4zLS44LS41LS4zLS4zLS41LS41LS41LS44LS4zLS41LS4zLS44LS4zLTEuMSAwLS41IDAtLjggLjMtMS4xIDAtLjUgLjMtLjggLjUtMS4xIC4zLS4zIC41LS4zIC44LS41IC41LS4zIC44LS4zIDEuMS0uMyAuNSAwIC44IDAgMS4xIC4zIC41IC4zIC44IC4zIDEuMSAuNXMuMiAuNiAuNSAxLjF6bS0yLjIgMS40Yy41IDAgLjUtLjMgLjgtLjMgLjMtLjMgLjMtLjUgLjMtLjhzMC0uNS0uMy0uOGMtLjMgMC0uNS0uMy0xLjEtLjNsLTEuNiAwIDAgMy41IC44IDAgMC0xLjQgLjMgMCAxLjEgMS40IC44IDAtMS4xLTEuM3pNNTc2IDgxbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MUMwIDU0LjUgMjEuNSAzMyA0OCAzM2w0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNNjQgMjIwLjZjMCA3Ni41IDYyLjEgMTM4LjUgMTM4LjUgMTM4LjUgMjcuMiAwIDUzLjktOC4yIDc2LjUtMjMuMS03Mi45LTU5LjMtNzIuNC0xNzEuMiAwLTIzMC41LTIyLjYtMTUtNDkuMy0yMy4xLTc2LjUtMjMuMS03Ni40LS4xLTEzOC41IDYyLTEzOC41IDEzOC4yek0yODggMzI5LjRjNzAuNS01NSA3MC4yLTE2Mi4yIDAtMjE3LjUtNzAuMiA1NS4zLTcwLjUgMTYyLjYgMCAyMTcuNXpNMTQ1LjcgNDA1LjdjMC04LjctNS43LTE0LjQtMTQuNy0xNC43LTQuNiAwLTkuNSAxLjQtMTIuOCA2LjUtMi40LTQuMS02LjUtNi41LTEyLjItNi41LTMuOCAwLTcuNiAxLjQtMTAuNiA1LjRsMC00LjQtOC4yIDAgMCAzNi43IDguMiAwYzAtMTguOS0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMC4yIDguMiAzMC4ybDcuOSAwYzAtMTguMy0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMCA4LjIgMzAuMmw4LjIgMCAwLTIzLS4yIDB6TTE5MC42IDM5MmwtNy45IDAgMCA0LjRjLTIuNy0zLjMtNi41LTUuNC0xMS43LTUuNC0xMC4zIDAtMTguMiA4LjItMTguMiAxOS4zIDAgMTEuMiA3LjkgMTkuMyAxOC4yIDE5LjMgNS4yIDAgOS0xLjkgMTEuNy01LjRsMCA0LjYgNy45IDAgMC0zNi44em00MC41IDI1LjZjMC0xNS0yMi45LTguMi0yMi45LTE1LjIgMC01LjcgMTEuOS00LjggMTguNS0xLjFsMy4zLTYuNWMtOS40LTYuMS0zMC4yLTYtMzAuMiA4LjIgMCAxNC4zIDIyLjkgOC4zIDIyLjkgMTUgMCA2LjMtMTMuNSA1LjgtMjAuNyAuOGwtMy41IDYuM2MxMS4yIDcuNiAzMi42IDYgMzIuNi03LjV6bTM1LjQgOS4zbC0yLjItNi44Yy0zLjggMi4xLTEyLjIgNC40LTEyLjItNC4xbDAtMTYuNiAxMy4xIDAgMC03LjQtMTMuMSAwIDAtMTEuMi04LjIgMCAwIDExLjItNy42IDAgMCA3LjMgNy42IDAgMCAxNi43YzAgMTcuNiAxNy4zIDE0LjQgMjIuNiAxMC45em0xMy4zLTEzLjRsMjcuNSAwYzAtMTYuMi03LjQtMjIuNi0xNy40LTIyLjYtMTAuNiAwLTE4LjIgNy45LTE4LjIgMTkuMyAwIDIwLjUgMjIuNiAyMy45IDMzLjggMTQuMmwtMy44LTZjLTcuOCA2LjQtMTkuNiA1LjgtMjEuOS00Ljl6TTMzOC45IDM5MmMtNC42LTItMTEuNi0xLjgtMTUuMiA0LjRsMC00LjQtOC4yIDAgMCAzNi43IDguMiAwIDAtMjAuN2MwLTExLjYgOS41LTEwLjEgMTIuOC04LjRsMi40LTcuNnptMTAuNiAxOC4zYzAtMTEuNCAxMS42LTE1LjEgMjAuNy04LjRsMy44LTYuNWMtMTEuNi05LjEtMzIuNy00LjEtMzIuNyAxNSAwIDE5LjggMjIuNCAyMy44IDMyLjcgMTVsLTMuOC02LjVjLTkuMiA2LjUtMjAuNyAyLjYtMjAuNy04LjZ6TTQxNi4yIDM5MmwtOC4yIDAgMCA0LjRjLTguMy0xMS0yOS45LTQuOC0yOS45IDEzLjkgMCAxOS4yIDIyLjQgMjQuNyAyOS45IDEzLjlsMCA0LjYgOC4yIDAgMC0zNi44em0zMy43IDBjLTIuNC0xLjItMTEtMi45LTE1LjIgNC40bDAtNC40LTcuOSAwIDAgMzYuNyA3LjkgMCAwLTIwLjdjMC0xMSA5LTEwLjMgMTIuOC04LjRsMi40LTcuNnptNDAuMy0xNC45bC03LjkgMCAwIDE5LjNjLTguMi0xMC45LTI5LjktNS4xLTI5LjkgMTMuOSAwIDE5LjQgMjIuNSAyNC42IDI5LjkgMTMuOWwwIDQuNiA3LjkgMCAwLTUxLjd6bTcuNi03NS4xbDAgNC42IC44IDAgMC00LjYgMS45IDAgMC0uOC00LjYgMCAwIC44IDEuOSAwem02LjYgMTIzLjhjMC0uNSAwLTEuMS0uMy0xLjYtLjMtLjMtLjUtLjgtLjgtMS4xcy0uOC0uNS0xLjEtLjhjLS41IDAtMS4xLS4zLTEuNi0uMy0uMyAwLS44IC4zLTEuNCAuMy0uNSAuMy0uOCAuNS0xLjEgLjgtLjUgLjMtLjggLjgtLjggMS4xLS4zIC41LS4zIDEuMS0uMyAxLjYgMCAuMyAwIC44IC4zIDEuNCAwIC4zIC4zIC44IC44IDEuMSAuMyAuMyAuNSAuNSAxLjEgLjggLjUgLjMgMS4xIC4zIDEuNCAuMyAuNSAwIDEuMSAwIDEuNi0uMyAuMy0uMyAuOC0uNSAxLjEtLjhzLjUtLjggLjgtMS4xYy4zLS42IC4zLTEuMSAuMy0xLjR6bTMuMi0xMjQuN2wtMS40IDAtMS42IDMuNS0xLjYtMy41LTEuNCAwIDAgNS40IC44IDAgMC00LjEgMS42IDMuNSAxLjEgMCAxLjQtMy41IDAgNC4xIDEuMSAwIDAtNS40em00LjQtODAuNWMwLTc2LjItNjIuMS0xMzguMy0xMzguNS0xMzguMy0yNy4yIDAtNTMuOSA4LjItNzYuNSAyMy4xIDcyLjEgNTkuMyA3My4yIDE3MS41IDAgMjMwLjUgMjIuNiAxNSA0OS41IDIzLjEgNzYuNSAyMy4xIDc2LjQgLjEgMTM4LjUtNjEuOSAxMzguNS0xMzguNHpcIl1cbn07XG52YXIgZmFEaXNjb3Vyc2UgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnZGlzY291cnNlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMzkzXCIsIFwiTTIyNS45IDMyQzEwMy4zIDMyIDAgMTMwLjUgMCAyNTIuMSAwIDI1NiAuMSA0ODAgLjEgNDgwbDIyNS44LS4yQzM0OC42IDQ3OS44IDQ0OCAzNzcuNSA0NDggMjU1LjlTMzQ4LjYgMzIgMjI1LjkgMzJ6TTIyNCAzODRjLTE5LjQgMC0zNy45LTQuMy01NC40LTEyLjFMODguNSAzOTIgMTExLjQgMzE3Yy05LjgtMTguMS0xNS40LTM4LjktMTUuNC02MSAwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4LTU3LjMgMTI4LTEyOCAxMjh6XCJdXG59O1xudmFyIGZhQmxhY2tUaWUgPSB7XG4gIHByZWZpeDogJ2ZhYicsXG4gIGljb25OYW1lOiAnYmxhY2stdGllJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjdlXCIsIFwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTMxNi41IDM1Ny4ybC05Mi41IDg4LjctOTIuNS04OC43IDY0LjUtMTg0LTY0LjUtODYuNiAxODQuOSAwLTY0LjQgODYuNiA2NC41IDE4NHpcIl1cbn07XG52YXIgZmFTcXVhcmVGYWNlYm9vayA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtZmFjZWJvb2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImZhY2Vib29rLXNxdWFyZVwiXSwgXCJmMDgyXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsOTguMiAwIDAtMTQ1LjgtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE0NS44IDEyOSAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyelwiXVxufTtcbnZhciBmYUZhY2Vib29rU3F1YXJlID0gZmFTcXVhcmVGYWNlYm9vaztcbnZhciBmYUJhdHRsZU5ldCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdiYXR0bGUtbmV0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmODM1XCIsIFwiTTQ0OC44IDIyNS42YzI2LjkgLjIgMzUuNi03LjQgMzguOS0xMi40IDEyLjUtMTYuMy03LjEtNDcuNi01Mi44LTcxLjMgMTcuOC0zMy42IDMwLjEtNjMuNyAzNi4zLTg1LjMgMy40LTExLjggMS4xLTE5IC41LTIwLjMtMS43IDEwLjUtMTUuOCA0OC41LTQ4LjIgMTAwLTI1LTExLjItNTYuNS0yMC4xLTkzLjgtMjMuOC04LjktMTYuOS0zNC45LTYzLjktNjAuNS04OC45LTE2LjgtMTYuNS0zMC4zLTIyLjYtNDAuOC0yMy41bDAgMGMtMTMuOC0xLjYtMjIuNyA1LjgtMjcuNCAxMS0xNy4yIDE4LjUtMjQuMyA0OC45LTI1IDg0LjEtNy4yLTEyLjMtMTcuMi0yNC42LTI4LjUtMjUuOWwtLjIgMGMtMjAuNy0zLjUtMzguNCAyOS4yLTM2IDgxLjMtMzguNCAxLjQtNzEgNS44LTkzIDExLjItOS45IDIuNC0xNi4yIDcuMy0xNy44IDkuNyAxLS40IDIyLjQtOS4yIDExMS42LTkuMiA1LjIgNTMgMjkuOCAxMDEuOCAyNiA5My4yLTkuNyAxNS40LTM4LjIgNjIuNC00Ny4zIDk3LjctNS45IDIyLjktNC40IDM3LjYgLjIgNDcuMSA1LjYgMTIuOCAxNi40IDE2LjcgMjMuMiAxOC4zIDI1IDUuNyA1NS40LTMuNiA4Ni43LTIxLjEtNy41IDEyLjgtMTMuOSAyOC41LTkuMSAzOS4zIDcuMyAxOS42IDQ0LjUgMTguNyA4OC40LTkuNCAyMC4yIDMyLjIgNDAuMSA1Ny45IDU1LjcgNzQuMSAyLjYgMi44IDUuNSA1LjIgOC44IDcuMSA1LjEgMy4yIDguNiAzLjQgOC42IDMuNC04LjItNi43LTM0LTM4LTYyLjUtOTEuOCAyMi4yLTE2IDQ1LjctMzguOSA2Ny41LTY5LjMgMTIyLjggNC42IDE0My4zLTI0LjggMTQ4LTMxLjYgMTQuNy0xOS45IDMuNC01Ny40LTU3LjMtOTMuN3pNMzcxIDMzMS44YzIzLjgtMzcuNyAzMC4zLTY3LjggMjkuNC05Mi4zIDI3LjkgMTcuNiA0Ny4yIDM3LjYgNDkuMSA1OC44IDEuMSAxMi45LTguMSAyOS4xLTc4LjUgMzMuNXpNMjE3LjEgMzg3LjdjOS44LTYuMiAxOS41LTEzLjEgMjkuMi0yMC41IDYuNyAxMy4zIDEzLjYgMjYuMSAyMC42IDM4LjItNDAuNiAyMS45LTY4LjggMTIuOC00OS44LTE3Ljd6bTIxNS0xNzEuM2MtMTAuMy01LjMtMjEuMi0xMC4zLTMyLjQtMTUgNy45LTEyLjEgMTUuNS0yNC40IDIyLjctMzYuOSAzOS4xIDI0LjEgNDUuOSA1My4yIDkuNiA1MS45ek0yNzkuNCAzOThjLTUuNS0xMS40LTExLTIzLjUtMTYuNS0zNi40IDQzLjIgMS4zIDYyLjQtMTguNyA2My4zLTIwLjQgMCAuMS0yNSAxNS42LTYyLjUgMTIuMiAzMC42LTI1LjYgNTkuMS01My43IDg1LjEtODQgOC43LTEwLjIgMTctMjAuNiAyNC45LTMxLjEtLjQtLjMtMS41LTMtMTYuNS0xMi01MS43IDYwLjMtMTAyLjMgOTgtMTMyLjggMTE1LjktMjAuNi0xMS4yLTQwLjgtMzEuOC01NS43LTYxLjUtMjAtMzkuOS0zMC04Mi40LTMxLjYtMTE2LjEgMTIuMyAuOSAyNS4zIDIuMiAzOC44IDMuOS0yMi4zIDM2LjgtMTQuNCA2My0xMy41IDY0LjIgMC0uMS0xLTI5LjIgMjAuMS01OS42IDkgNTIuNSAyNCAxMDMuOCA0NC43IDE1Mi44IC45LS40IDEuOCAuOSAxOC43LTguMi0yNi4zLTc0LjUtMzMuOC0xMzguMi0zNC0xNzMuNCAyMC0xMi40IDQ4LjItMTkuOCA4MS42LTE3LjggNDQuNiAyLjcgODYuNCAxNS4yIDExNi4zIDMwLjctNy4xIDEwLjQtMTQuOSAyMS4zLTIzLjMgMzIuNS0yMC43LTM3LjctNDcuMy00My45LTQ4LjktNDMuNyAuMSAwIDI1LjkgMTQuMSA0MS41IDQ3LjItMzcuNS0xMy44LTc2LjEtMjQuNC0xMTUuMy0zMS43LTEzLjEtMi40LTI2LjItNC40LTM5LjQtNi0uMSAuNC0xLjggMS44LTIuMiAyMC4zIDc3LjkgMTQuNSAxMzYuNiAzOS45IDE2Ny4yIDU3LjIgLjcgMjMuNi03IDUxLjYtMjUuNCA3OS42LTI0LjYgMzcuMy01Ni40IDY3LjItODQuOCA4NS40em0yNy40LTI4N2MtNDQuNi0xLjctNzMuNiA3LjQtOTQuNyAyMC43IDItNTIuMyAyMS4zLTc2LjQgMzguMi03NS4zIDE2LjktNC4yIDU0LjkgNTIuMiA1Ni41IDU0LjZ6bS0xMzAuNyAzLjFjLjUgMTIuMSAxLjYgMjQuNiAzLjIgMzcuMy0xNC42LS45LTI4LjctMS4zLTQyLjQtMS4zLS4xIDMuMi0uMS01MSAyNC43LTQ5LjZsLjEgMGM1LjggMS4xIDEwLjYgNi45IDE0LjQgMTMuNnptLTI4LjEgMTYyYzIwLjggMzkuNyA0My4zIDYwLjYgNjUuMyA3Mi4zLTQ2LjggMjQuOC03Ny41IDIwLTg0LjkgNC41LS4yLS4yLTExLjEtMTUuMyAxOS43LTc2LjhsMCAwelwiXVxufTtcbnZhciBmYUJpbW9iamVjdCA9IHtcbiAgcHJlZml4OiAnZmFiJyxcbiAgaWNvbk5hbWU6ICdiaW1vYmplY3QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzNzhcIiwgXCJNNDE2IDMyTDMyIDMyQzE0LjQgMzIgMCA0Ni40IDAgNjRMMCA0NDhjMCAxNy42IDE0LjQgMzIgMzIgMzJsMzg0IDBjMTcuNiAwIDMyLTE0LjQgMzItMzJsMC0zODRjMC0xNy42LTE0LjQtMzItMzItMzJ6TTM1MiAyODkuNGMwIDQ5LjQtMTEuNCA4Mi42LTEwMy44IDgyLjZsLTE2LjkgMGMtNDQuMSAwLTYyLjQtMTQuOS03MC40LTM4LjhsLS45IDAgMCAzNC44LTY0IDAgMC0yMzIgNjQgMCAwIDc0LjcgMS4xIDBjNC42LTMwLjUgMzkuNy0zOC44IDY5LjctMzguOGwxNy4zIDBjOTIuNCAwIDEwMy44IDMzLjEgMTAzLjggODIuNWwwIDM1IC4xIDB6bS02NC0yOC45bDAgMjIuOWMwIDIxLjctMy40IDMzLjgtMzguNCAzMy44bC00NS4zIDBjLTI4LjkgMC00NC4xLTYuNS00NC4xLTM1LjdsMC0xOWMwLTI5LjMgMTUuMi0zNS43IDQ0LjEtMzUuN2w0NS4zIDBjMzUtLjIgMzguNCAxMiAzOC40IDMzLjd6XCJdXG59O1xudmFyIGljb25zID0ge1xuICBmYVNxdWFyZUdpdGh1YjogZmFTcXVhcmVHaXRodWIsXG4gIGZhR2l0aHViU3F1YXJlOiBmYUdpdGh1YlNxdWFyZSxcbiAgZmFUaGlua1BlYWtzOiBmYVRoaW5rUGVha3MsXG4gIGZhR29vZ2xlRHJpdmU6IGZhR29vZ2xlRHJpdmUsXG4gIGZhQXV0b3ByZWZpeGVyOiBmYUF1dG9wcmVmaXhlcixcbiAgZmFTcXVhcmVWaWFkZW86IGZhU3F1YXJlVmlhZGVvLFxuICBmYVZpYWRlb1NxdWFyZTogZmFWaWFkZW9TcXVhcmUsXG4gIGZhQ3BhbmVsOiBmYUNwYW5lbCxcbiAgZmFNZW5kZWxleTogZmFNZW5kZWxleSxcbiAgZmFEcmFmdDJkaWdpdGFsOiBmYURyYWZ0MmRpZ2l0YWwsXG4gIGZhUmVwbHlkOiBmYVJlcGx5ZCxcbiAgZmFFbXBpcmU6IGZhRW1waXJlLFxuICBmYUFjY2Vzc2libGVJY29uOiBmYUFjY2Vzc2libGVJY29uLFxuICBmYVF1b3JhOiBmYVF1b3JhLFxuICBmYUNjSmNiOiBmYUNjSmNiLFxuICBmYUZlZG9yYTogZmFGZWRvcmEsXG4gIGZhRHVvbGluZ286IGZhRHVvbGluZ28sXG4gIGZhRmlyc3RkcmFmdDogZmFGaXJzdGRyYWZ0LFxuICBmYUZyZWVic2Q6IGZhRnJlZWJzZCxcbiAgZmFPZHlzZWU6IGZhT2R5c2VlLFxuICBmYUdnQ2lyY2xlOiBmYUdnQ2lyY2xlLFxuICBmYUNsb3VkZmxhcmU6IGZhQ2xvdWRmbGFyZSxcbiAgZmFIYWNrZXJyYW5rOiBmYUhhY2tlcnJhbmssXG4gIGZhU2t5YXRsYXM6IGZhU2t5YXRsYXMsXG4gIGZhRGVza3BybzogZmFEZXNrcHJvLFxuICBmYVJlc29sdmluZzogZmFSZXNvbHZpbmcsXG4gIGZhQmxhY2tiZXJyeTogZmFCbGFja2JlcnJ5LFxuICBmYVN0cmlwZVM6IGZhU3RyaXBlUyxcbiAgZmFTcXVhcmVCZWhhbmNlOiBmYVNxdWFyZUJlaGFuY2UsXG4gIGZhQmVoYW5jZVNxdWFyZTogZmFCZWhhbmNlU3F1YXJlLFxuICBmYVNlcnZpY2VzdGFjazogZmFTZXJ2aWNlc3RhY2ssXG4gIGZhUm9ja2V0Y2hhdDogZmFSb2NrZXRjaGF0LFxuICBmYVJlYmVsOiBmYVJlYmVsLFxuICBmYVNxdWFyZVdlYkF3ZXNvbWU6IGZhU3F1YXJlV2ViQXdlc29tZSxcbiAgZmFMaW5rdHJlZTogZmFMaW5rdHJlZSxcbiAgZmFTaW1wbHlidWlsdDogZmFTaW1wbHlidWlsdCxcbiAgZmFTdHViYmVyOiBmYVN0dWJiZXIsXG4gIGZhQXBwZXI6IGZhQXBwZXIsXG4gIGZhR29vZ2xlU2Nob2xhcjogZmFHb29nbGVTY2hvbGFyLFxuICBmYVlhcm46IGZhWWFybixcbiAgZmFTdGFja092ZXJmbG93OiBmYVN0YWNrT3ZlcmZsb3csXG4gIGZhQmx1ZXRvb3RoOiBmYUJsdWV0b290aCxcbiAgZmFDcmVhdGl2ZUNvbW1vbnNOY0pwOiBmYUNyZWF0aXZlQ29tbW9uc05jSnAsXG4gIGZhUmVkZGl0OiBmYVJlZGRpdCxcbiAgZmFDb25uZWN0ZGV2ZWxvcDogZmFDb25uZWN0ZGV2ZWxvcCxcbiAgZmFSZXNlYXJjaGdhdGU6IGZhUmVzZWFyY2hnYXRlLFxuICBmYVNpZ25hbE1lc3NlbmdlcjogZmFTaWduYWxNZXNzZW5nZXIsXG4gIGZhWGluZzogZmFYaW5nLFxuICBmYVNxdWFyZUpzOiBmYVNxdWFyZUpzLFxuICBmYUpzU3F1YXJlOiBmYUpzU3F1YXJlLFxuICBmYUZvbnRpY29uczogZmFGb250aWNvbnMsXG4gIGZhVXBzOiBmYVVwcyxcbiAgZmFBbWF6b25QYXk6IGZhQW1hem9uUGF5LFxuICBmYVBhbmRvcmE6IGZhUGFuZG9yYSxcbiAgZmFPcGVuaWQ6IGZhT3BlbmlkLFxuICBmYVZzY286IGZhVnNjbyxcbiAgZmFVYnVudHU6IGZhVWJ1bnR1LFxuICBmYVZpYWNvaW46IGZhVmlhY29pbixcbiAgZmFaaGlodTogZmFaaGlodSxcbiAgZmFZYW5kZXg6IGZhWWFuZGV4LFxuICBmYVBpeGl2OiBmYVBpeGl2LFxuICBmYU9wZW5haTogZmFPcGVuYWksXG4gIGZhU2l0aDogZmFTaXRoLFxuICBmYU5mY0RpcmVjdGlvbmFsOiBmYU5mY0RpcmVjdGlvbmFsLFxuICBmYUNyZWF0aXZlQ29tbW9uc0J5OiBmYUNyZWF0aXZlQ29tbW9uc0J5LFxuICBmYVVtYnJhY286IGZhVW1icmFjbyxcbiAgZmFIb29saTogZmFIb29saSxcbiAgZmFTcXVhcmVHaXQ6IGZhU3F1YXJlR2l0LFxuICBmYUdpdFNxdWFyZTogZmFHaXRTcXVhcmUsXG4gIGZhT2Rub2tsYXNzbmlraTogZmFPZG5va2xhc3NuaWtpLFxuICBmYURydXBhbDogZmFEcnVwYWwsXG4gIGZhQmxvZ2dlckI6IGZhQmxvZ2dlckIsXG4gIGZhSW52aXNpb246IGZhSW52aXNpb24sXG4gIGZhRmFjZWJvb2tGOiBmYUZhY2Vib29rRixcbiAgZmFDZW50b3M6IGZhQ2VudG9zLFxuICBmYUNjQW1hem9uUGF5OiBmYUNjQW1hem9uUGF5LFxuICBmYUViYXk6IGZhRWJheSxcbiAgZmFDb250YW86IGZhQ29udGFvLFxuICBmYUVsbG86IGZhRWxsbyxcbiAgZmFTaXN0cml4OiBmYVNpc3RyaXgsXG4gIGZhUGVyaXNjb3BlOiBmYVBlcmlzY29wZSxcbiAgZmFFeHBlZGl0ZWRzc2w6IGZhRXhwZWRpdGVkc3NsLFxuICBmYU5hcHN0ZXI6IGZhTmFwc3RlcixcbiAgZmFEZWxpY2lvdXM6IGZhRGVsaWNpb3VzLFxuICBmYUd1aWxkZWQ6IGZhR3VpbGRlZCxcbiAgZmFYYm94OiBmYVhib3gsXG4gIGZhVW50YXBwZDogZmFVbnRhcHBkLFxuICBmYUdvb2dsZVBsdXNHOiBmYUdvb2dsZVBsdXNHLFxuICBmYUdpdGh1YkFsdDogZmFHaXRodWJBbHQsXG4gIGZhR2V0UG9ja2V0OiBmYUdldFBvY2tldCxcbiAgZmFHbGlkZTogZmFHbGlkZSxcbiAgZmFCaXR5OiBmYUJpdHksXG4gIGZhV3BleHBsb3JlcjogZmFXcGV4cGxvcmVyLFxuICBmYU1lZ2Fwb3J0OiBmYU1lZ2Fwb3J0LFxuICBmYU1kYjogZmFNZGIsXG4gIGZhUGFnZTQ6IGZhUGFnZTQsXG4gIGZhVGhlUmVkWWV0aTogZmFUaGVSZWRZZXRpLFxuICBmYUppcmE6IGZhSmlyYSxcbiAgZmFGZWRleDogZmFGZWRleCxcbiAgZmFFdmVybm90ZTogZmFFdmVybm90ZSxcbiAgZmFVc2I6IGZhVXNiLFxuICBmYUFuZ3J5Y3JlYXRpdmU6IGZhQW5ncnljcmVhdGl2ZSxcbiAgZmFNaXp1bmk6IGZhTWl6dW5pLFxuICBmYUl0Y2hJbzogZmFJdGNoSW8sXG4gIGZhV2luZG93czogZmFXaW5kb3dzLFxuICBmYVN0dW1ibGV1cG9uOiBmYVN0dW1ibGV1cG9uLFxuICBmYUdvb2dsZTogZmFHb29nbGUsXG4gIGZhRGlzY29yZDogZmFEaXNjb3JkLFxuICBmYUhhY2tlck5ld3M6IGZhSGFja2VyTmV3cyxcbiAgZmFFbGV2ZW50eTogZmFFbGV2ZW50eSxcbiAgZmExMXR5OiBmYTExdHksXG4gIGZhVGVhbXNwZWFrOiBmYVRlYW1zcGVhayxcbiAgZmFTdXBwbGU6IGZhU3VwcGxlLFxuICBmYVNxdWFyZVR3aXR0ZXI6IGZhU3F1YXJlVHdpdHRlcixcbiAgZmFUd2l0dGVyU3F1YXJlOiBmYVR3aXR0ZXJTcXVhcmUsXG4gIGZhRm9udEF3ZXNvbWU6IGZhRm9udEF3ZXNvbWUsXG4gIGZhRm9udEF3ZXNvbWVGbGFnOiBmYUZvbnRBd2Vzb21lRmxhZyxcbiAgZmFGb250QXdlc29tZUxvZ29GdWxsOiBmYUZvbnRBd2Vzb21lTG9nb0Z1bGwsXG4gIGZhV2lyc2luZGhhbmR3ZXJrOiBmYVdpcnNpbmRoYW5kd2VyayxcbiAgZmFXc2g6IGZhV3NoLFxuICBmYUNvbmZsdWVuY2U6IGZhQ29uZmx1ZW5jZSxcbiAgZmFEaWdnOiBmYURpZ2csXG4gIGZhVGhyZWFkczogZmFUaHJlYWRzLFxuICBmYVdwcmVzc3I6IGZhV3ByZXNzcixcbiAgZmFSZW5kYWN0OiBmYVJlbmRhY3QsXG4gIGZhWW9hc3Q6IGZhWW9hc3QsXG4gIGZhTmltYmxyOiBmYU5pbWJscixcbiAgZmFQaXhlbGZlZDogZmFQaXhlbGZlZCxcbiAgZmFZYWhvbzogZmFZYWhvbyxcbiAgZmFCbHVlc2t5OiBmYUJsdWVza3ksXG4gIGZhU2NyaWJkOiBmYVNjcmliZCxcbiAgZmFDcmVhdGl2ZUNvbW1vbnNQZDogZmFDcmVhdGl2ZUNvbW1vbnNQZCxcbiAgZmFFYXJseWJpcmRzOiBmYUVhcmx5YmlyZHMsXG4gIGZhU3F1YXJlT2Rub2tsYXNzbmlraTogZmFTcXVhcmVPZG5va2xhc3NuaWtpLFxuICBmYU9kbm9rbGFzc25pa2lTcXVhcmU6IGZhT2Rub2tsYXNzbmlraVNxdWFyZSxcbiAgZmFNYXJrZG93bjogZmFNYXJrZG93bixcbiAgZmFUeXBvMzogZmFUeXBvMyxcbiAgZmFKb29tbGE6IGZhSm9vbWxhLFxuICBmYVdlaXhpbjogZmFXZWl4aW4sXG4gIGZhR3J1bnQ6IGZhR3J1bnQsXG4gIGZhUm9ja3JtczogZmFSb2Nrcm1zLFxuICBmYVVuc3BsYXNoOiBmYVVuc3BsYXNoLFxuICBmYVNxdWFyZUluc3RhZ3JhbTogZmFTcXVhcmVJbnN0YWdyYW0sXG4gIGZhSW5zdGFncmFtU3F1YXJlOiBmYUluc3RhZ3JhbVNxdWFyZSxcbiAgZmFGaXJzdE9yZGVyQWx0OiBmYUZpcnN0T3JkZXJBbHQsXG4gIGZhRnVsY3J1bTogZmFGdWxjcnVtLFxuICBmYUJyYXZlUmV2ZXJzZTogZmFCcmF2ZVJldmVyc2UsXG4gIGZhQXZpYW5leDogZmFBdmlhbmV4LFxuICBmYU5zODogZmFOczgsXG4gIGZhU3F1YXJlUGludGVyZXN0OiBmYVNxdWFyZVBpbnRlcmVzdCxcbiAgZmFQaW50ZXJlc3RTcXVhcmU6IGZhUGludGVyZXN0U3F1YXJlLFxuICBmYUJsdWV0b290aEI6IGZhQmx1ZXRvb3RoQixcbiAgZmFHcmlwZmlyZTogZmFHcmlwZmlyZSxcbiAgZmFTcXVhcmVHb29nbGVQbHVzOiBmYVNxdWFyZUdvb2dsZVBsdXMsXG4gIGZhR29vZ2xlUGx1c1NxdWFyZTogZmFHb29nbGVQbHVzU3F1YXJlLFxuICBmYUFwcFN0b3JlOiBmYUFwcFN0b3JlLFxuICBmYVdpeDogZmFXaXgsXG4gIGZhSW50ZXJjb206IGZhSW50ZXJjb20sXG4gIGZhUmVhY3RldXJvcGU6IGZhUmVhY3RldXJvcGUsXG4gIGZhV2F6ZTogZmFXYXplLFxuICBmYUNyZWF0aXZlQ29tbW9uc1JlbWl4OiBmYUNyZWF0aXZlQ29tbW9uc1JlbWl4LFxuICBmYUJhbmRjYW1wOiBmYUJhbmRjYW1wLFxuICBmYVNxdWFyZVdlYkF3ZXNvbWVTdHJva2U6IGZhU3F1YXJlV2ViQXdlc29tZVN0cm9rZSxcbiAgZmFWaW1lb1Y6IGZhVmltZW9WLFxuICBmYVN0cmF2YTogZmFTdHJhdmEsXG4gIGZhVW5pcmVnaXN0cnk6IGZhVW5pcmVnaXN0cnksXG4gIGZhQ2NEaW5lcnNDbHViOiBmYUNjRGluZXJzQ2x1YixcbiAgZmFQaW50ZXJlc3Q6IGZhUGludGVyZXN0LFxuICBmYUFsZ29saWE6IGZhQWxnb2xpYSxcbiAgZmFTdGFja3BhdGg6IGZhU3RhY2twYXRoLFxuICBmYU9jdG9wdXNEZXBsb3k6IGZhT2N0b3B1c0RlcGxveSxcbiAgZmFZYW1tZXI6IGZhWWFtbWVyLFxuICBmYU1vZHg6IGZhTW9keCxcbiAgZmFTcXVhcmVUaHJlYWRzOiBmYVNxdWFyZVRocmVhZHMsXG4gIGZhT2xkUmVwdWJsaWM6IGZhT2xkUmVwdWJsaWMsXG4gIGZhU3VzZTogZmFTdXNlLFxuICBmYUFwcFN0b3JlSW9zOiBmYUFwcFN0b3JlSW9zLFxuICBmYVNxdWFyZURyaWJiYmxlOiBmYVNxdWFyZURyaWJiYmxlLFxuICBmYURyaWJiYmxlU3F1YXJlOiBmYURyaWJiYmxlU3F1YXJlLFxuICBmYVVpa2l0OiBmYVVpa2l0LFxuICBmYVN1cGVycG93ZXJzOiBmYVN1cGVycG93ZXJzLFxuICBmYVlvdXR1YmU6IGZhWW91dHViZSxcbiAgZmFFbWJlcjogZmFFbWJlcixcbiAgZmFCb290c3RyYXA6IGZhQm9vdHN0cmFwLFxuICBmYUl0dW5lczogZmFJdHVuZXMsXG4gIGZhU3F1YXJlWGluZzogZmFTcXVhcmVYaW5nLFxuICBmYVhpbmdTcXVhcmU6IGZhWGluZ1NxdWFyZSxcbiAgZmFDc3MzQWx0OiBmYUNzczNBbHQsXG4gIGZhU3F1YXJlc3BhY2U6IGZhU3F1YXJlc3BhY2UsXG4gIGZhVHJlbGxvOiBmYVRyZWxsbyxcbiAgZmFWaWFkZW86IGZhVmlhZGVvLFxuICBmYVNlYXJjaGVuZ2luOiBmYVNlYXJjaGVuZ2luLFxuICBmYVBheXBhbDogZmFQYXlwYWwsXG4gIGZhU3F1YXJlQmx1ZXNreTogZmFTcXVhcmVCbHVlc2t5LFxuICBmYURBbmREQmV5b25kOiBmYURBbmREQmV5b25kLFxuICBmYU1pY3Jvc29mdDogZmFNaWNyb3NvZnQsXG4gIGZhRmx5OiBmYUZseSxcbiAgZmFDY1N0cmlwZTogZmFDY1N0cmlwZSxcbiAgZmFXb3JkcHJlc3NTaW1wbGU6IGZhV29yZHByZXNzU2ltcGxlLFxuICBmYVNlbGxzeTogZmFTZWxsc3ksXG4gIGZhRGFzaGN1YmU6IGZhRGFzaGN1YmUsXG4gIGZhR2l0dGVyOiBmYUdpdHRlcixcbiAgZmFXb2xmUGFja0JhdHRhbGlvbjogZmFXb2xmUGFja0JhdHRhbGlvbixcbiAgZmFMYXN0Zm06IGZhTGFzdGZtLFxuICBmYVNob3B3YXJlOiBmYVNob3B3YXJlLFxuICBmYUJsb2dnZXI6IGZhQmxvZ2dlcixcbiAgZmFFZGdlOiBmYUVkZ2UsXG4gIGZhSW94aG9zdDogZmFJb3hob3N0LFxuICBmYVNjaGxpeDogZmFTY2hsaXgsXG4gIGZhREFuZEQ6IGZhREFuZEQsXG4gIGZhVnVlanM6IGZhVnVlanMsXG4gIGZhTWV0YTogZmFNZXRhLFxuICBmYUNyZWF0aXZlQ29tbW9uc1NoYXJlOiBmYUNyZWF0aXZlQ29tbW9uc1NoYXJlLFxuICBmYVN0dWRpb3ZpbmFyaTogZmFTdHVkaW92aW5hcmksXG4gIGZhQml0YnVja2V0OiBmYUJpdGJ1Y2tldCxcbiAgZmFWazogZmFWayxcbiAgZmFHaXRodWI6IGZhR2l0aHViLFxuICBmYUNvZGllcGllOiBmYUNvZGllcGllLFxuICBmYVBpZWRQaXBlcjogZmFQaWVkUGlwZXIsXG4gIGZhUmFzcGJlcnJ5UGk6IGZhUmFzcGJlcnJ5UGksXG4gIGZhQ3NzMzogZmFDc3MzLFxuICBmYUh1YnNwb3Q6IGZhSHVic3BvdCxcbiAgZmFDbXBsaWQ6IGZhQ21wbGlkLFxuICBmYUR5YWxvZzogZmFEeWFsb2csXG4gIGZhRWxlbWVudG9yOiBmYUVsZW1lbnRvcixcbiAgZmFGaXJzdE9yZGVyOiBmYUZpcnN0T3JkZXIsXG4gIGZhRHJpYmJibGU6IGZhRHJpYmJibGUsXG4gIGZhTGlua2VkaW46IGZhTGlua2VkaW4sXG4gIGZhQ2NQYXlwYWw6IGZhQ2NQYXlwYWwsXG4gIGZhRGhsOiBmYURobCxcbiAgZmFUZXg6IGZhVGV4LFxuICBmYVNob3BpZnk6IGZhU2hvcGlmeSxcbiAgZmFTcXVhcmVSZWRkaXQ6IGZhU3F1YXJlUmVkZGl0LFxuICBmYVJlZGRpdFNxdWFyZTogZmFSZWRkaXRTcXVhcmUsXG4gIGZhQ3JlYXRpdmVDb21tb25zTmM6IGZhQ3JlYXRpdmVDb21tb25zTmMsXG4gIGZhR2FsYWN0aWNSZXB1YmxpYzogZmFHYWxhY3RpY1JlcHVibGljLFxuICBmYUZhY2Vib29rOiBmYUZhY2Vib29rLFxuICBmYUdpdGxhYjogZmFHaXRsYWIsXG4gIGZhUXE6IGZhUXEsXG4gIGZhU3RyaXBlOiBmYVN0cmlwZSxcbiAgZmFEYWlseW1vdGlvbjogZmFEYWlseW1vdGlvbixcbiAgZmFTdGVhbTogZmFTdGVhbSxcbiAgZmFTbmFwY2hhdDogZmFTbmFwY2hhdCxcbiAgZmFTbmFwY2hhdEdob3N0OiBmYVNuYXBjaGF0R2hvc3QsXG4gIGZhR2FsYWN0aWNTZW5hdGU6IGZhR2FsYWN0aWNTZW5hdGUsXG4gIGZhUGhvZW5peEZyYW1ld29yazogZmFQaG9lbml4RnJhbWV3b3JrLFxuICBmYUdpdDogZmFHaXQsXG4gIGZhT3B0aW5Nb25zdGVyOiBmYU9wdGluTW9uc3RlcixcbiAgZmFKZW5raW5zOiBmYUplbmtpbnMsXG4gIGZhU2xpZGVzaGFyZTogZmFTbGlkZXNoYXJlLFxuICBmYVViZXI6IGZhVWJlcixcbiAgZmFEaWdpdGFsT2NlYW46IGZhRGlnaXRhbE9jZWFuLFxuICBmYVNvdW5kY2xvdWQ6IGZhU291bmRjbG91ZCxcbiAgZmFTcXVhcmVGaWdtYTogZmFTcXVhcmVGaWdtYSxcbiAgZmFDcmVhdGl2ZUNvbW1vbnNTYTogZmFDcmVhdGl2ZUNvbW1vbnNTYSxcbiAgZmFDaHJvbWU6IGZhQ2hyb21lLFxuICBmYVRyYWRlRmVkZXJhdGlvbjogZmFUcmFkZUZlZGVyYXRpb24sXG4gIGZhVmFhZGluOiBmYVZhYWRpbixcbiAgZmFEZXZpYW50YXJ0OiBmYURldmlhbnRhcnQsXG4gIGZhTWVkaXVtOiBmYU1lZGl1bSxcbiAgZmFNZWRpdW1NOiBmYU1lZGl1bU0sXG4gIGZhT3BlbmNhcnQ6IGZhT3BlbmNhcnQsXG4gIGZhWUNvbWJpbmF0b3I6IGZhWUNvbWJpbmF0b3IsXG4gIGZhTGluZTogZmFMaW5lLFxuICBmYUFtaWxpYTogZmFBbWlsaWEsXG4gIGZhQXN5bW1ldHJpazogZmFBc3ltbWV0cmlrLFxuICBmYVBoYWJyaWNhdG9yOiBmYVBoYWJyaWNhdG9yLFxuICBmYUJvdHM6IGZhQm90cyxcbiAgZmFWaW5lOiBmYVZpbmUsXG4gIGZhTWVkcnQ6IGZhTWVkcnQsXG4gIGZhT3NpOiBmYU9zaSxcbiAgZmFHZzogZmFHZyxcbiAgZmFCdXlzZWxsYWRzOiBmYUJ1eXNlbGxhZHMsXG4gIGZhR29vZ2xlUGx1czogZmFHb29nbGVQbHVzLFxuICBmYVNjcmVlbnBhbDogZmFTY3JlZW5wYWwsXG4gIGZhQml0Y29pbjogZmFCaXRjb2luLFxuICBmYVN3aWZ0OiBmYVN3aWZ0LFxuICBmYUZpbGVzUGlud2hlZWw6IGZhRmlsZXNQaW53aGVlbCxcbiAgZmFMYXJhdmVsOiBmYUxhcmF2ZWwsXG4gIGZhV3Bmb3JtczogZmFXcGZvcm1zLFxuICBmYVNwZWFrZXJEZWNrOiBmYVNwZWFrZXJEZWNrLFxuICBmYUZsaWNrcjogZmFGbGlja3IsXG4gIGZhQ2NWaXNhOiBmYUNjVmlzYSxcbiAgZmFVcHdvcms6IGZhVXB3b3JrLFxuICBmYUtha2FvVGFsazogZmFLYWthb1RhbGssXG4gIGZhRmx1dHRlcjogZmFGbHV0dGVyLFxuICBmYUJ1ZmZlcjogZmFCdWZmZXIsXG4gIGZhR3JhdGlwYXk6IGZhR3JhdGlwYXksXG4gIGZhR29vZ2xlUGF5OiBmYUdvb2dsZVBheSxcbiAgZmFBcHBsZTogZmFBcHBsZSxcbiAgZmFUdW1ibHI6IGZhVHVtYmxyLFxuICBmYVBob2VuaXhTcXVhZHJvbjogZmFQaG9lbml4U3F1YWRyb24sXG4gIGZhQ2VudGVyY29kZTogZmFDZW50ZXJjb2RlLFxuICBmYURlYmlhbjogZmFEZWJpYW4sXG4gIGZhTWFzdG9kb246IGZhTWFzdG9kb24sXG4gIGZhU2tldGNoOiBmYVNrZXRjaCxcbiAgZmFXZWJBd2Vzb21lOiBmYVdlYkF3ZXNvbWUsXG4gIGZhU2FzczogZmFTYXNzLFxuICBmYVNxdWFyZVdoYXRzYXBwOiBmYVNxdWFyZVdoYXRzYXBwLFxuICBmYVdoYXRzYXBwU3F1YXJlOiBmYVdoYXRzYXBwU3F1YXJlLFxuICBmYVNreXBlOiBmYVNreXBlLFxuICBmYUFuZ3VsYXI6IGZhQW5ndWxhcixcbiAgZmFPcGVuc3VzZTogZmFPcGVuc3VzZSxcbiAgZmFEcm9wYm94OiBmYURyb3Bib3gsXG4gIGZhRGVlemVyOiBmYURlZXplcixcbiAgZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZzogZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZyxcbiAgZmFKZWRpT3JkZXI6IGZhSmVkaU9yZGVyLFxuICBmYVJQcm9qZWN0OiBmYVJQcm9qZWN0LFxuICBmYUluc3RhbG9kOiBmYUluc3RhbG9kLFxuICBmYUNhbmFkaWFuTWFwbGVMZWFmOiBmYUNhbmFkaWFuTWFwbGVMZWFmLFxuICBmYUV0aGVyZXVtOiBmYUV0aGVyZXVtLFxuICBmYUhvdXp6OiBmYUhvdXp6LFxuICBmYVZpYmVyOiBmYVZpYmVyLFxuICBmYUtpY2tzdGFydGVyOiBmYUtpY2tzdGFydGVyLFxuICBmYVNxdWFyZUtpY2tzdGFydGVyOiBmYVNxdWFyZUtpY2tzdGFydGVyLFxuICBmYVNwb3RpZnk6IGZhU3BvdGlmeSxcbiAgZmFMZWFucHViOiBmYUxlYW5wdWIsXG4gIGZhSmF2YTogZmFKYXZhLFxuICBmYU5mY1N5bWJvbDogZmFOZmNTeW1ib2wsXG4gIGZhV29kdTogZmFXb2R1LFxuICBmYVNxdWFyZVN0ZWFtOiBmYVNxdWFyZVN0ZWFtLFxuICBmYVN0ZWFtU3F1YXJlOiBmYVN0ZWFtU3F1YXJlLFxuICBmYUNyZWF0aXZlQ29tbW9uc05jRXU6IGZhQ3JlYXRpdmVDb21tb25zTmNFdSxcbiAgZmFOcG06IGZhTnBtLFxuICBmYUNsb3Vkc2NhbGU6IGZhQ2xvdWRzY2FsZSxcbiAgZmFUaGVtZWNvOiBmYVRoZW1lY28sXG4gIGZhR29vZ2xlUGxheTogZmFHb29nbGVQbGF5LFxuICBmYUtvcnZ1ZTogZmFLb3J2dWUsXG4gIGZhVzNjOiBmYVczYyxcbiAgZmFHcmF2OiBmYUdyYXYsXG4gIGZhQXdzOiBmYUF3cyxcbiAgZmFHbGlkZUc6IGZhR2xpZGVHLFxuICBmYUpzZmlkZGxlOiBmYUpzZmlkZGxlLFxuICBmYUtleWJhc2U6IGZhS2V5YmFzZSxcbiAgZmFMdW1vbkRyb3A6IGZhTHVtb25Ecm9wLFxuICBmYVdlZWJseTogZmFXZWVibHksXG4gIGZhRG9ja2VyOiBmYURvY2tlcixcbiAgZmFNYWdlbnRvOiBmYU1hZ2VudG8sXG4gIGZhR2l0QWx0OiBmYUdpdEFsdCxcbiAgZmFGaXJlZm94QnJvd3NlcjogZmFGaXJlZm94QnJvd3NlcixcbiAgZmFDbG91ZHNtaXRoOiBmYUNsb3Vkc21pdGgsXG4gIGZhV2l6YXJkc09mVGhlQ29hc3Q6IGZhV2l6YXJkc09mVGhlQ29hc3QsXG4gIGZhQ3JlYXRpdmVDb21tb25zTmQ6IGZhQ3JlYXRpdmVDb21tb25zTmQsXG4gIGZhVXNwczogZmFVc3BzLFxuICBmYVNxdWFyZUxldHRlcmJveGQ6IGZhU3F1YXJlTGV0dGVyYm94ZCxcbiAgZmFNYW5kYWxvcmlhbjogZmFNYW5kYWxvcmlhbixcbiAgZmFTbGFjazogZmFTbGFjayxcbiAgZmFTbGFja0hhc2g6IGZhU2xhY2tIYXNoLFxuICBmYUFuZ2VsbGlzdDogZmFBbmdlbGxpc3QsXG4gIGZhQW5kcm9pZDogZmFBbmRyb2lkLFxuICBmYU1lZXR1cDogZmFNZWV0dXAsXG4gIGZhRm9udGljb25zRmk6IGZhRm9udGljb25zRmksXG4gIGZhUGFsZmVkOiBmYVBhbGZlZCxcbiAgZmFXcGJlZ2lubmVyOiBmYVdwYmVnaW5uZXIsXG4gIGZhRGlhc3BvcmE6IGZhRGlhc3BvcmEsXG4gIGZhUHJvZHVjdEh1bnQ6IGZhUHJvZHVjdEh1bnQsXG4gIGZhU3F1YXJlVXB3b3JrOiBmYVNxdWFyZVVwd29yayxcbiAgZmFDdXR0bGVmaXNoOiBmYUN1dHRsZWZpc2gsXG4gIGZhTWVkYXBwczogZmFNZWRhcHBzLFxuICBmYVBpeDogZmFQaXgsXG4gIGZhU3F1YXJlVHVtYmxyOiBmYVNxdWFyZVR1bWJscixcbiAgZmFUdW1ibHJTcXVhcmU6IGZhVHVtYmxyU3F1YXJlLFxuICBmYVJlYWN0OiBmYVJlYWN0LFxuICBmYUp4bDogZmFKeGwsXG4gIGZhU3F1YXJlTGlua2VkaW46IGZhU3F1YXJlTGlua2VkaW4sXG4gIGZhQ3NzOiBmYUNzcyxcbiAgZmFIYXNobm9kZTogZmFIYXNobm9kZSxcbiAgZmFSZWRkaXRBbGllbjogZmFSZWRkaXRBbGllbixcbiAgZmFUaWt0b2s6IGZhVGlrdG9rLFxuICBmYVdvcmRwcmVzczogZmFXb3JkcHJlc3MsXG4gIGZhSWRlYWw6IGZhSWRlYWwsXG4gIGZhUGllZFBpcGVyUHA6IGZhUGllZFBpcGVyUHAsXG4gIGZhVXNzdW5uYWg6IGZhVXNzdW5uYWgsXG4gIGZhRm9ydEF3ZXNvbWVBbHQ6IGZhRm9ydEF3ZXNvbWVBbHQsXG4gIGZhQnVyb21vYmVsZXhwZXJ0ZTogZmFCdXJvbW9iZWxleHBlcnRlLFxuICBmYUJpbGliaWxpOiBmYUJpbGliaWxpLFxuICBmYU5lb3M6IGZhTmVvcyxcbiAgZmFEZXY6IGZhRGV2LFxuICBmYUhvdGphcjogZmFIb3RqYXIsXG4gIGZhRG9jaHViOiBmYURvY2h1YixcbiAgZmFWaW1lbzogZmFWaW1lbyxcbiAgZmFNYXhjZG46IGZhTWF4Y2RuLFxuICBmYVNxdWFyZUZvbnRBd2Vzb21lU3Ryb2tlOiBmYVNxdWFyZUZvbnRBd2Vzb21lU3Ryb2tlLFxuICBmYUZvbnRBd2Vzb21lQWx0OiBmYUZvbnRBd2Vzb21lQWx0LFxuICBmYVNwZWFrYXA6IGZhU3BlYWthcCxcbiAgZmFGYW50YXN5RmxpZ2h0R2FtZXM6IGZhRmFudGFzeUZsaWdodEdhbWVzLFxuICBmYUxpbnV4OiBmYUxpbnV4LFxuICBmYUNvdHRvbkJ1cmVhdTogZmFDb3R0b25CdXJlYXUsXG4gIGZhR29vZ2xlV2FsbGV0OiBmYUdvb2dsZVdhbGxldCxcbiAgZmFGb3Vyc3F1YXJlOiBmYUZvdXJzcXVhcmUsXG4gIGZhU2hpcnRzaW5idWxrOiBmYVNoaXJ0c2luYnVsayxcbiAgZmFNaW50Yml0OiBmYU1pbnRiaXQsXG4gIGZhU3RheWxpbmtlZDogZmFTdGF5bGlua2VkLFxuICBmYVdlYmZsb3c6IGZhV2ViZmxvdyxcbiAgZmFSZW5yZW46IGZhUmVucmVuLFxuICBmYVJldjogZmFSZXYsXG4gIGZhS2V5Y2RuOiBmYUtleWNkbixcbiAgZmFIaXJlQUhlbHBlcjogZmFIaXJlQUhlbHBlcixcbiAgZmFTcXVhcmVIYWNrZXJOZXdzOiBmYVNxdWFyZUhhY2tlck5ld3MsXG4gIGZhSGFja2VyTmV3c1NxdWFyZTogZmFIYWNrZXJOZXdzU3F1YXJlLFxuICBmYUNyZWF0aXZlQ29tbW9uc1BkQWx0OiBmYUNyZWF0aXZlQ29tbW9uc1BkQWx0LFxuICBmYU9yY2lkOiBmYU9yY2lkLFxuICBmYUJlaGFuY2U6IGZhQmVoYW5jZSxcbiAgZmFNb25lcm86IGZhTW9uZXJvLFxuICBmYUZpZ21hOiBmYUZpZ21hLFxuICBmYUluc3RhZ3JhbTogZmFJbnN0YWdyYW0sXG4gIGZhUGVyYnl0ZTogZmFQZXJieXRlLFxuICBmYVNxdWFyZVZpbWVvOiBmYVNxdWFyZVZpbWVvLFxuICBmYVZpbWVvU3F1YXJlOiBmYVZpbWVvU3F1YXJlLFxuICBmYVB1c2hlZDogZmFQdXNoZWQsXG4gIGZhTWl4Y2xvdWQ6IGZhTWl4Y2xvdWQsXG4gIGZhWWFuZGV4SW50ZXJuYXRpb25hbDogZmFZYW5kZXhJbnRlcm5hdGlvbmFsLFxuICBmYUhpdmU6IGZhSGl2ZSxcbiAgZmFDcmVhdGl2ZUNvbW1vbnNaZXJvOiBmYUNyZWF0aXZlQ29tbW9uc1plcm8sXG4gIGZhU3F1YXJlU25hcGNoYXQ6IGZhU3F1YXJlU25hcGNoYXQsXG4gIGZhU25hcGNoYXRTcXVhcmU6IGZhU25hcGNoYXRTcXVhcmUsXG4gIGZhVGhlbWVpc2xlOiBmYVRoZW1laXNsZSxcbiAgZmFEYXJ0TGFuZzogZmFEYXJ0TGFuZyxcbiAgZmFEZXBsb3lkb2c6IGZhRGVwbG95ZG9nLFxuICBmYUZsaXBib2FyZDogZmFGbGlwYm9hcmQsXG4gIGZhQnV5TkxhcmdlOiBmYUJ1eU5MYXJnZSxcbiAgZmFXYXRjaG1hbk1vbml0b3Jpbmc6IGZhV2F0Y2htYW5Nb25pdG9yaW5nLFxuICBmYUhpcHM6IGZhSGlwcyxcbiAgZmFDbG91ZHZlcnNpZnk6IGZhQ2xvdWR2ZXJzaWZ5LFxuICBmYUdvb2RyZWFkczogZmFHb29kcmVhZHMsXG4gIGZhVGlkYWw6IGZhVGlkYWwsXG4gIGZhVW5pdHk6IGZhVW5pdHksXG4gIGZhVGVuY2VudFdlaWJvOiBmYVRlbmNlbnRXZWlibyxcbiAgZmFGcmVlQ29kZUNhbXA6IGZhRnJlZUNvZGVDYW1wLFxuICBmYVhUd2l0dGVyOiBmYVhUd2l0dGVyLFxuICBmYVN0aWNrZXJNdWxlOiBmYVN0aWNrZXJNdWxlLFxuICBmYVR3aXRjaDogZmFUd2l0Y2gsXG4gIGZhS2lja3N0YXJ0ZXJLOiBmYUtpY2tzdGFydGVySyxcbiAgZmFDcml0aWNhbFJvbGU6IGZhQ3JpdGljYWxSb2xlLFxuICBmYVN0ZWFtU3ltYm9sOiBmYVN0ZWFtU3ltYm9sLFxuICBmYU1haWxjaGltcDogZmFNYWlsY2hpbXAsXG4gIGZhTHVtb246IGZhTHVtb24sXG4gIGZhTnV0cml0aW9uaXg6IGZhTnV0cml0aW9uaXgsXG4gIGZhQ3JlYXRpdmVDb21tb25zU2FtcGxpbmdQbHVzOiBmYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nUGx1cyxcbiAgZmFSZWRoYXQ6IGZhUmVkaGF0LFxuICBmYVNxdWFyZVBpZWRQaXBlcjogZmFTcXVhcmVQaWVkUGlwZXIsXG4gIGZhUGllZFBpcGVyU3F1YXJlOiBmYVBpZWRQaXBlclNxdWFyZSxcbiAgZmFXaGF0c2FwcDogZmFXaGF0c2FwcCxcbiAgZmFJbWRiOiBmYUltZGIsXG4gIGZhUHl0aG9uOiBmYVB5dGhvbixcbiAgZmFDYXNoQXBwOiBmYUNhc2hBcHAsXG4gIGZhUGludGVyZXN0UDogZmFQaW50ZXJlc3RQLFxuICBmYVdobWNzOiBmYVdobWNzLFxuICBmYUpvZ2V0OiBmYUpvZ2V0LFxuICBmYVNxdWFyZVlvdXR1YmU6IGZhU3F1YXJlWW91dHViZSxcbiAgZmFZb3V0dWJlU3F1YXJlOiBmYVlvdXR1YmVTcXVhcmUsXG4gIGZhQXRsYXNzaWFuOiBmYUF0bGFzc2lhbixcbiAgZmFQaWVkUGlwZXJIYXQ6IGZhUGllZFBpcGVySGF0LFxuICBmYUludGVybmV0RXhwbG9yZXI6IGZhSW50ZXJuZXRFeHBsb3JlcixcbiAgZmFBaXJibmI6IGZhQWlyYm5iLFxuICBmYUpzOiBmYUpzLFxuICBmYVF1aW5zY2FwZTogZmFRdWluc2NhcGUsXG4gIGZhQWR2ZXJzYWw6IGZhQWR2ZXJzYWwsXG4gIGZhQ3JlYXRpdmVDb21tb25zOiBmYUNyZWF0aXZlQ29tbW9ucyxcbiAgZmFOb3Rpb246IGZhTm90aW9uLFxuICBmYUNocm9tZWNhc3Q6IGZhQ2hyb21lY2FzdCxcbiAgZmFXaWtpcGVkaWFXOiBmYVdpa2lwZWRpYVcsXG4gIGZhU2l0cm94OiBmYVNpdHJveCxcbiAgZmFTcXVhcmVHaXRsYWI6IGZhU3F1YXJlR2l0bGFiLFxuICBmYUdpdGxhYlNxdWFyZTogZmFHaXRsYWJTcXVhcmUsXG4gIGZhU2hvZWxhY2U6IGZhU2hvZWxhY2UsXG4gIGZhU2VsbGNhc3Q6IGZhU2VsbGNhc3QsXG4gIGZhTWl4OiBmYU1peCxcbiAgZmFDY0FwcGxlUGF5OiBmYUNjQXBwbGVQYXksXG4gIGZhQnJhdmU6IGZhQnJhdmUsXG4gIGZhRXRzeTogZmFFdHN5LFxuICBmYUJ0YzogZmFCdGMsXG4gIGZhQWRuOiBmYUFkbixcbiAgZmFTcXVhcmVYVHdpdHRlcjogZmFTcXVhcmVYVHdpdHRlcixcbiAgZmFTcXVhcmVGb250QXdlc29tZTogZmFTcXVhcmVGb250QXdlc29tZSxcbiAgZmFGb3J1bWJlZTogZmFGb3J1bWJlZSxcbiAgZmE0Mkdyb3VwOiBmYTQyR3JvdXAsXG4gIGZhSW5ub3NvZnQ6IGZhSW5ub3NvZnQsXG4gIGZhU3R1bWJsZXVwb25DaXJjbGU6IGZhU3R1bWJsZXVwb25DaXJjbGUsXG4gIGZhU3ltZm9ueTogZmFTeW1mb255LFxuICBmYVNhbGVzZm9yY2U6IGZhU2FsZXNmb3JjZSxcbiAgZmFTb3VyY2V0cmVlOiBmYVNvdXJjZXRyZWUsXG4gIGZhTGlua2VkaW5JbjogZmFMaW5rZWRpbkluLFxuICBmYUh0bWw1OiBmYUh0bWw1LFxuICBmYVJ1c3Q6IGZhUnVzdCxcbiAgZmFIb3JuYmlsbDogZmFIb3JuYmlsbCxcbiAgZmFQaHA6IGZhUGhwLFxuICBmYURpc3F1czogZmFEaXNxdXMsXG4gIGZhNTAwcHg6IGZhNTAwcHgsXG4gIGZhQWZmaWxpYXRldGhlbWU6IGZhQWZmaWxpYXRldGhlbWUsXG4gIGZhUmVkUml2ZXI6IGZhUmVkUml2ZXIsXG4gIGZhVHdpdHRlcjogZmFUd2l0dGVyLFxuICBmYUZvcnRBd2Vzb21lOiBmYUZvcnRBd2Vzb21lLFxuICBmYU1peGVyOiBmYU1peGVyLFxuICBmYUx5ZnQ6IGZhTHlmdCxcbiAgZmFBcHBsZVBheTogZmFBcHBsZVBheSxcbiAgZmFBcnRzdGF0aW9uOiBmYUFydHN0YXRpb24sXG4gIGZhTm9kZUpzOiBmYU5vZGVKcyxcbiAgZmFVbmNoYXJ0ZWQ6IGZhVW5jaGFydGVkLFxuICBmYVBsYXlzdGF0aW9uOiBmYVBsYXlzdGF0aW9uLFxuICBmYU1pY3JvYmxvZzogZmFNaWNyb2Jsb2csXG4gIGZhR2l0a3Jha2VuOiBmYUdpdGtyYWtlbixcbiAgZmFUZWxlZ3JhbTogZmFUZWxlZ3JhbSxcbiAgZmFUZWxlZ3JhbVBsYW5lOiBmYVRlbGVncmFtUGxhbmUsXG4gIGZhSXR1bmVzTm90ZTogZmFJdHVuZXNOb3RlLFxuICBmYUxlc3M6IGZhTGVzcyxcbiAgZmFGaXJlZm94OiBmYUZpcmVmb3gsXG4gIGZhS2FnZ2xlOiBmYUthZ2dsZSxcbiAgZmFGYWNlYm9va01lc3NlbmdlcjogZmFGYWNlYm9va01lc3NlbmdlcixcbiAgZmFBdWRpYmxlOiBmYUF1ZGlibGUsXG4gIGZhUGF0cmVvbjogZmFQYXRyZW9uLFxuICBmYVZudjogZmFWbnYsXG4gIGZhUGFnZWxpbmVzOiBmYVBhZ2VsaW5lcyxcbiAgZmFBbWF6b246IGZhQW1hem9uLFxuICBmYUVudmlyYTogZmFFbnZpcmEsXG4gIGZhTGlub2RlOiBmYUxpbm9kZSxcbiAgZmFBY2N1c29mdDogZmFBY2N1c29mdCxcbiAgZmFFcmxhbmc6IGZhRXJsYW5nLFxuICBmYUNjRGlzY292ZXI6IGZhQ2NEaXNjb3ZlcixcbiAgZmFTYWZhcmk6IGZhU2FmYXJpLFxuICBmYVNwYWNlQXdlc29tZTogZmFTcGFjZUF3ZXNvbWUsXG4gIGZhTm9kZTogZmFOb2RlLFxuICBmYUNvZGVwZW46IGZhQ29kZXBlbixcbiAgZmFSYXZlbHJ5OiBmYVJhdmVscnksXG4gIGZhQWxpcGF5OiBmYUFsaXBheSxcbiAgZmFDY0FtZXg6IGZhQ2NBbWV4LFxuICBmYVBpZWRQaXBlckFsdDogZmFQaWVkUGlwZXJBbHQsXG4gIGZhTGV0dGVyYm94ZDogZmFMZXR0ZXJib3hkLFxuICBmYU9wZXJhOiBmYU9wZXJhLFxuICBmYVdlaWJvOiBmYVdlaWJvLFxuICBmYVJlYWRtZTogZmFSZWFkbWUsXG4gIGZhR29sYW5nOiBmYUdvbGFuZyxcbiAgZmFTdGFja0V4Y2hhbmdlOiBmYVN0YWNrRXhjaGFuZ2UsXG4gIGZhR3VscDogZmFHdWxwLFxuICBmYVllbHA6IGZhWWVscCxcbiAgZmFHb2ZvcmU6IGZhR29mb3JlLFxuICBmYUF2aWF0bzogZmFBdmlhdG8sXG4gIGZhUGFkbGV0OiBmYVBhZGxldCxcbiAgZmFFZGdlTGVnYWN5OiBmYUVkZ2VMZWdhY3ksXG4gIGZhU3F1YXJlTGFzdGZtOiBmYVNxdWFyZUxhc3RmbSxcbiAgZmFMYXN0Zm1TcXVhcmU6IGZhTGFzdGZtU3F1YXJlLFxuICBmYUdvb2RyZWFkc0c6IGZhR29vZHJlYWRzRyxcbiAgZmFDY01hc3RlcmNhcmQ6IGZhQ2NNYXN0ZXJjYXJkLFxuICBmYURpc2NvdXJzZTogZmFEaXNjb3Vyc2UsXG4gIGZhQmxhY2tUaWU6IGZhQmxhY2tUaWUsXG4gIGZhU3F1YXJlRmFjZWJvb2s6IGZhU3F1YXJlRmFjZWJvb2ssXG4gIGZhRmFjZWJvb2tTcXVhcmU6IGZhRmFjZWJvb2tTcXVhcmUsXG4gIGZhQmF0dGxlTmV0OiBmYUJhdHRsZU5ldCxcbiAgZmFCaW1vYmplY3Q6IGZhQmltb2JqZWN0XG59O1xuXG5leHBvcnQgeyBpY29ucyBhcyBmYWIsIHByZWZpeCwgZmFTcXVhcmVHaXRodWIsIGZhR2l0aHViU3F1YXJlLCBmYVRoaW5rUGVha3MsIGZhR29vZ2xlRHJpdmUsIGZhQXV0b3ByZWZpeGVyLCBmYVNxdWFyZVZpYWRlbywgZmFWaWFkZW9TcXVhcmUsIGZhQ3BhbmVsLCBmYU1lbmRlbGV5LCBmYURyYWZ0MmRpZ2l0YWwsIGZhUmVwbHlkLCBmYUVtcGlyZSwgZmFBY2Nlc3NpYmxlSWNvbiwgZmFRdW9yYSwgZmFDY0pjYiwgZmFGZWRvcmEsIGZhRHVvbGluZ28sIGZhRmlyc3RkcmFmdCwgZmFGcmVlYnNkLCBmYU9keXNlZSwgZmFHZ0NpcmNsZSwgZmFDbG91ZGZsYXJlLCBmYUhhY2tlcnJhbmssIGZhU2t5YXRsYXMsIGZhRGVza3BybywgZmFSZXNvbHZpbmcsIGZhQmxhY2tiZXJyeSwgZmFTdHJpcGVTLCBmYVNxdWFyZUJlaGFuY2UsIGZhQmVoYW5jZVNxdWFyZSwgZmFTZXJ2aWNlc3RhY2ssIGZhUm9ja2V0Y2hhdCwgZmFSZWJlbCwgZmFTcXVhcmVXZWJBd2Vzb21lLCBmYUxpbmt0cmVlLCBmYVNpbXBseWJ1aWx0LCBmYVN0dWJiZXIsIGZhQXBwZXIsIGZhR29vZ2xlU2Nob2xhciwgZmFZYXJuLCBmYVN0YWNrT3ZlcmZsb3csIGZhQmx1ZXRvb3RoLCBmYUNyZWF0aXZlQ29tbW9uc05jSnAsIGZhUmVkZGl0LCBmYUNvbm5lY3RkZXZlbG9wLCBmYVJlc2VhcmNoZ2F0ZSwgZmFTaWduYWxNZXNzZW5nZXIsIGZhWGluZywgZmFTcXVhcmVKcywgZmFKc1NxdWFyZSwgZmFGb250aWNvbnMsIGZhVXBzLCBmYUFtYXpvblBheSwgZmFQYW5kb3JhLCBmYU9wZW5pZCwgZmFWc2NvLCBmYVVidW50dSwgZmFWaWFjb2luLCBmYVpoaWh1LCBmYVlhbmRleCwgZmFQaXhpdiwgZmFPcGVuYWksIGZhU2l0aCwgZmFOZmNEaXJlY3Rpb25hbCwgZmFDcmVhdGl2ZUNvbW1vbnNCeSwgZmFVbWJyYWNvLCBmYUhvb2xpLCBmYVNxdWFyZUdpdCwgZmFHaXRTcXVhcmUsIGZhT2Rub2tsYXNzbmlraSwgZmFEcnVwYWwsIGZhQmxvZ2dlckIsIGZhSW52aXNpb24sIGZhRmFjZWJvb2tGLCBmYUNlbnRvcywgZmFDY0FtYXpvblBheSwgZmFFYmF5LCBmYUNvbnRhbywgZmFFbGxvLCBmYVNpc3RyaXgsIGZhUGVyaXNjb3BlLCBmYUV4cGVkaXRlZHNzbCwgZmFOYXBzdGVyLCBmYURlbGljaW91cywgZmFHdWlsZGVkLCBmYVhib3gsIGZhVW50YXBwZCwgZmFHb29nbGVQbHVzRywgZmFHaXRodWJBbHQsIGZhR2V0UG9ja2V0LCBmYUdsaWRlLCBmYUJpdHksIGZhV3BleHBsb3JlciwgZmFNZWdhcG9ydCwgZmFNZGIsIGZhUGFnZTQsIGZhVGhlUmVkWWV0aSwgZmFKaXJhLCBmYUZlZGV4LCBmYUV2ZXJub3RlLCBmYVVzYiwgZmFBbmdyeWNyZWF0aXZlLCBmYU1penVuaSwgZmFJdGNoSW8sIGZhV2luZG93cywgZmFTdHVtYmxldXBvbiwgZmFHb29nbGUsIGZhRGlzY29yZCwgZmFIYWNrZXJOZXdzLCBmYUVsZXZlbnR5LCBmYTExdHksIGZhVGVhbXNwZWFrLCBmYVN1cHBsZSwgZmFTcXVhcmVUd2l0dGVyLCBmYVR3aXR0ZXJTcXVhcmUsIGZhRm9udEF3ZXNvbWUsIGZhRm9udEF3ZXNvbWVGbGFnLCBmYUZvbnRBd2Vzb21lTG9nb0Z1bGwsIGZhV2lyc2luZGhhbmR3ZXJrLCBmYVdzaCwgZmFDb25mbHVlbmNlLCBmYURpZ2csIGZhVGhyZWFkcywgZmFXcHJlc3NyLCBmYVJlbmRhY3QsIGZhWW9hc3QsIGZhTmltYmxyLCBmYVBpeGVsZmVkLCBmYVlhaG9vLCBmYUJsdWVza3ksIGZhU2NyaWJkLCBmYUNyZWF0aXZlQ29tbW9uc1BkLCBmYUVhcmx5YmlyZHMsIGZhU3F1YXJlT2Rub2tsYXNzbmlraSwgZmFPZG5va2xhc3NuaWtpU3F1YXJlLCBmYU1hcmtkb3duLCBmYVR5cG8zLCBmYUpvb21sYSwgZmFXZWl4aW4sIGZhR3J1bnQsIGZhUm9ja3JtcywgZmFVbnNwbGFzaCwgZmFTcXVhcmVJbnN0YWdyYW0sIGZhSW5zdGFncmFtU3F1YXJlLCBmYUZpcnN0T3JkZXJBbHQsIGZhRnVsY3J1bSwgZmFCcmF2ZVJldmVyc2UsIGZhQXZpYW5leCwgZmFOczgsIGZhU3F1YXJlUGludGVyZXN0LCBmYVBpbnRlcmVzdFNxdWFyZSwgZmFCbHVldG9vdGhCLCBmYUdyaXBmaXJlLCBmYVNxdWFyZUdvb2dsZVBsdXMsIGZhR29vZ2xlUGx1c1NxdWFyZSwgZmFBcHBTdG9yZSwgZmFXaXgsIGZhSW50ZXJjb20sIGZhUmVhY3RldXJvcGUsIGZhV2F6ZSwgZmFDcmVhdGl2ZUNvbW1vbnNSZW1peCwgZmFCYW5kY2FtcCwgZmFTcXVhcmVXZWJBd2Vzb21lU3Ryb2tlLCBmYVZpbWVvViwgZmFTdHJhdmEsIGZhVW5pcmVnaXN0cnksIGZhQ2NEaW5lcnNDbHViLCBmYVBpbnRlcmVzdCwgZmFBbGdvbGlhLCBmYVN0YWNrcGF0aCwgZmFPY3RvcHVzRGVwbG95LCBmYVlhbW1lciwgZmFNb2R4LCBmYVNxdWFyZVRocmVhZHMsIGZhT2xkUmVwdWJsaWMsIGZhU3VzZSwgZmFBcHBTdG9yZUlvcywgZmFTcXVhcmVEcmliYmJsZSwgZmFEcmliYmJsZVNxdWFyZSwgZmFVaWtpdCwgZmFTdXBlcnBvd2VycywgZmFZb3V0dWJlLCBmYUVtYmVyLCBmYUJvb3RzdHJhcCwgZmFJdHVuZXMsIGZhU3F1YXJlWGluZywgZmFYaW5nU3F1YXJlLCBmYUNzczNBbHQsIGZhU3F1YXJlc3BhY2UsIGZhVHJlbGxvLCBmYVZpYWRlbywgZmFTZWFyY2hlbmdpbiwgZmFQYXlwYWwsIGZhU3F1YXJlQmx1ZXNreSwgZmFEQW5kREJleW9uZCwgZmFNaWNyb3NvZnQsIGZhRmx5LCBmYUNjU3RyaXBlLCBmYVdvcmRwcmVzc1NpbXBsZSwgZmFTZWxsc3ksIGZhRGFzaGN1YmUsIGZhR2l0dGVyLCBmYVdvbGZQYWNrQmF0dGFsaW9uLCBmYUxhc3RmbSwgZmFTaG9wd2FyZSwgZmFCbG9nZ2VyLCBmYUVkZ2UsIGZhSW94aG9zdCwgZmFTY2hsaXgsIGZhREFuZEQsIGZhVnVlanMsIGZhTWV0YSwgZmFDcmVhdGl2ZUNvbW1vbnNTaGFyZSwgZmFTdHVkaW92aW5hcmksIGZhQml0YnVja2V0LCBmYVZrLCBmYUdpdGh1YiwgZmFDb2RpZXBpZSwgZmFQaWVkUGlwZXIsIGZhUmFzcGJlcnJ5UGksIGZhQ3NzMywgZmFIdWJzcG90LCBmYUNtcGxpZCwgZmFEeWFsb2csIGZhRWxlbWVudG9yLCBmYUZpcnN0T3JkZXIsIGZhRHJpYmJibGUsIGZhTGlua2VkaW4sIGZhQ2NQYXlwYWwsIGZhRGhsLCBmYVRleCwgZmFTaG9waWZ5LCBmYVNxdWFyZVJlZGRpdCwgZmFSZWRkaXRTcXVhcmUsIGZhQ3JlYXRpdmVDb21tb25zTmMsIGZhR2FsYWN0aWNSZXB1YmxpYywgZmFGYWNlYm9vaywgZmFHaXRsYWIsIGZhUXEsIGZhU3RyaXBlLCBmYURhaWx5bW90aW9uLCBmYVN0ZWFtLCBmYVNuYXBjaGF0LCBmYVNuYXBjaGF0R2hvc3QsIGZhR2FsYWN0aWNTZW5hdGUsIGZhUGhvZW5peEZyYW1ld29yaywgZmFHaXQsIGZhT3B0aW5Nb25zdGVyLCBmYUplbmtpbnMsIGZhU2xpZGVzaGFyZSwgZmFVYmVyLCBmYURpZ2l0YWxPY2VhbiwgZmFTb3VuZGNsb3VkLCBmYVNxdWFyZUZpZ21hLCBmYUNyZWF0aXZlQ29tbW9uc1NhLCBmYUNocm9tZSwgZmFUcmFkZUZlZGVyYXRpb24sIGZhVmFhZGluLCBmYURldmlhbnRhcnQsIGZhTWVkaXVtLCBmYU1lZGl1bU0sIGZhT3BlbmNhcnQsIGZhWUNvbWJpbmF0b3IsIGZhTGluZSwgZmFBbWlsaWEsIGZhQXN5bW1ldHJpaywgZmFQaGFicmljYXRvciwgZmFCb3RzLCBmYVZpbmUsIGZhTWVkcnQsIGZhT3NpLCBmYUdnLCBmYUJ1eXNlbGxhZHMsIGZhR29vZ2xlUGx1cywgZmFTY3JlZW5wYWwsIGZhQml0Y29pbiwgZmFTd2lmdCwgZmFGaWxlc1BpbndoZWVsLCBmYUxhcmF2ZWwsIGZhV3Bmb3JtcywgZmFTcGVha2VyRGVjaywgZmFGbGlja3IsIGZhQ2NWaXNhLCBmYVVwd29yaywgZmFLYWthb1RhbGssIGZhRmx1dHRlciwgZmFCdWZmZXIsIGZhR3JhdGlwYXksIGZhR29vZ2xlUGF5LCBmYUFwcGxlLCBmYVR1bWJsciwgZmFQaG9lbml4U3F1YWRyb24sIGZhQ2VudGVyY29kZSwgZmFEZWJpYW4sIGZhTWFzdG9kb24sIGZhU2tldGNoLCBmYVdlYkF3ZXNvbWUsIGZhU2FzcywgZmFTcXVhcmVXaGF0c2FwcCwgZmFXaGF0c2FwcFNxdWFyZSwgZmFTa3lwZSwgZmFBbmd1bGFyLCBmYU9wZW5zdXNlLCBmYURyb3Bib3gsIGZhRGVlemVyLCBmYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nLCBmYUplZGlPcmRlciwgZmFSUHJvamVjdCwgZmFJbnN0YWxvZCwgZmFDYW5hZGlhbk1hcGxlTGVhZiwgZmFFdGhlcmV1bSwgZmFIb3V6eiwgZmFWaWJlciwgZmFLaWNrc3RhcnRlciwgZmFTcXVhcmVLaWNrc3RhcnRlciwgZmFTcG90aWZ5LCBmYUxlYW5wdWIsIGZhSmF2YSwgZmFOZmNTeW1ib2wsIGZhV29kdSwgZmFTcXVhcmVTdGVhbSwgZmFTdGVhbVNxdWFyZSwgZmFDcmVhdGl2ZUNvbW1vbnNOY0V1LCBmYU5wbSwgZmFDbG91ZHNjYWxlLCBmYVRoZW1lY28sIGZhR29vZ2xlUGxheSwgZmFLb3J2dWUsIGZhVzNjLCBmYUdyYXYsIGZhQXdzLCBmYUdsaWRlRywgZmFKc2ZpZGRsZSwgZmFLZXliYXNlLCBmYUx1bW9uRHJvcCwgZmFXZWVibHksIGZhRG9ja2VyLCBmYU1hZ2VudG8sIGZhR2l0QWx0LCBmYUZpcmVmb3hCcm93c2VyLCBmYUNsb3Vkc21pdGgsIGZhV2l6YXJkc09mVGhlQ29hc3QsIGZhQ3JlYXRpdmVDb21tb25zTmQsIGZhVXNwcywgZmFTcXVhcmVMZXR0ZXJib3hkLCBmYU1hbmRhbG9yaWFuLCBmYVNsYWNrLCBmYVNsYWNrSGFzaCwgZmFBbmdlbGxpc3QsIGZhQW5kcm9pZCwgZmFNZWV0dXAsIGZhRm9udGljb25zRmksIGZhUGFsZmVkLCBmYVdwYmVnaW5uZXIsIGZhRGlhc3BvcmEsIGZhUHJvZHVjdEh1bnQsIGZhU3F1YXJlVXB3b3JrLCBmYUN1dHRsZWZpc2gsIGZhTWVkYXBwcywgZmFQaXgsIGZhU3F1YXJlVHVtYmxyLCBmYVR1bWJsclNxdWFyZSwgZmFSZWFjdCwgZmFKeGwsIGZhU3F1YXJlTGlua2VkaW4sIGZhQ3NzLCBmYUhhc2hub2RlLCBmYVJlZGRpdEFsaWVuLCBmYVRpa3RvaywgZmFXb3JkcHJlc3MsIGZhSWRlYWwsIGZhUGllZFBpcGVyUHAsIGZhVXNzdW5uYWgsIGZhRm9ydEF3ZXNvbWVBbHQsIGZhQnVyb21vYmVsZXhwZXJ0ZSwgZmFCaWxpYmlsaSwgZmFOZW9zLCBmYURldiwgZmFIb3RqYXIsIGZhRG9jaHViLCBmYVZpbWVvLCBmYU1heGNkbiwgZmFTcXVhcmVGb250QXdlc29tZVN0cm9rZSwgZmFGb250QXdlc29tZUFsdCwgZmFTcGVha2FwLCBmYUZhbnRhc3lGbGlnaHRHYW1lcywgZmFMaW51eCwgZmFDb3R0b25CdXJlYXUsIGZhR29vZ2xlV2FsbGV0LCBmYUZvdXJzcXVhcmUsIGZhU2hpcnRzaW5idWxrLCBmYU1pbnRiaXQsIGZhU3RheWxpbmtlZCwgZmFXZWJmbG93LCBmYVJlbnJlbiwgZmFSZXYsIGZhS2V5Y2RuLCBmYUhpcmVBSGVscGVyLCBmYVNxdWFyZUhhY2tlck5ld3MsIGZhSGFja2VyTmV3c1NxdWFyZSwgZmFDcmVhdGl2ZUNvbW1vbnNQZEFsdCwgZmFPcmNpZCwgZmFCZWhhbmNlLCBmYU1vbmVybywgZmFGaWdtYSwgZmFJbnN0YWdyYW0sIGZhUGVyYnl0ZSwgZmFTcXVhcmVWaW1lbywgZmFWaW1lb1NxdWFyZSwgZmFQdXNoZWQsIGZhTWl4Y2xvdWQsIGZhWWFuZGV4SW50ZXJuYXRpb25hbCwgZmFIaXZlLCBmYUNyZWF0aXZlQ29tbW9uc1plcm8sIGZhU3F1YXJlU25hcGNoYXQsIGZhU25hcGNoYXRTcXVhcmUsIGZhVGhlbWVpc2xlLCBmYURhcnRMYW5nLCBmYURlcGxveWRvZywgZmFGbGlwYm9hcmQsIGZhQnV5TkxhcmdlLCBmYVdhdGNobWFuTW9uaXRvcmluZywgZmFIaXBzLCBmYUNsb3VkdmVyc2lmeSwgZmFHb29kcmVhZHMsIGZhVGlkYWwsIGZhVW5pdHksIGZhVGVuY2VudFdlaWJvLCBmYUZyZWVDb2RlQ2FtcCwgZmFYVHdpdHRlciwgZmFTdGlja2VyTXVsZSwgZmFUd2l0Y2gsIGZhS2lja3N0YXJ0ZXJLLCBmYUNyaXRpY2FsUm9sZSwgZmFTdGVhbVN5bWJvbCwgZmFNYWlsY2hpbXAsIGZhTHVtb24sIGZhTnV0cml0aW9uaXgsIGZhQ3JlYXRpdmVDb21tb25zU2FtcGxpbmdQbHVzLCBmYVJlZGhhdCwgZmFTcXVhcmVQaWVkUGlwZXIsIGZhUGllZFBpcGVyU3F1YXJlLCBmYVdoYXRzYXBwLCBmYUltZGIsIGZhUHl0aG9uLCBmYUNhc2hBcHAsIGZhUGludGVyZXN0UCwgZmFXaG1jcywgZmFKb2dldCwgZmFTcXVhcmVZb3V0dWJlLCBmYVlvdXR1YmVTcXVhcmUsIGZhQXRsYXNzaWFuLCBmYVBpZWRQaXBlckhhdCwgZmFJbnRlcm5ldEV4cGxvcmVyLCBmYUFpcmJuYiwgZmFKcywgZmFRdWluc2NhcGUsIGZhQWR2ZXJzYWwsIGZhQ3JlYXRpdmVDb21tb25zLCBmYU5vdGlvbiwgZmFDaHJvbWVjYXN0LCBmYVdpa2lwZWRpYVcsIGZhU2l0cm94LCBmYVNxdWFyZUdpdGxhYiwgZmFHaXRsYWJTcXVhcmUsIGZhU2hvZWxhY2UsIGZhU2VsbGNhc3QsIGZhTWl4LCBmYUNjQXBwbGVQYXksIGZhQnJhdmUsIGZhRXRzeSwgZmFCdGMsIGZhQWRuLCBmYVNxdWFyZVhUd2l0dGVyLCBmYVNxdWFyZUZvbnRBd2Vzb21lLCBmYUZvcnVtYmVlLCBmYTQyR3JvdXAsIGZhSW5ub3NvZnQsIGZhU3R1bWJsZXVwb25DaXJjbGUsIGZhU3ltZm9ueSwgZmFTYWxlc2ZvcmNlLCBmYVNvdXJjZXRyZWUsIGZhTGlua2VkaW5JbiwgZmFIdG1sNSwgZmFSdXN0LCBmYUhvcm5iaWxsLCBmYVBocCwgZmFEaXNxdXMsIGZhNTAwcHgsIGZhQWZmaWxpYXRldGhlbWUsIGZhUmVkUml2ZXIsIGZhVHdpdHRlciwgZmFGb3J0QXdlc29tZSwgZmFNaXhlciwgZmFMeWZ0LCBmYUFwcGxlUGF5LCBmYUFydHN0YXRpb24sIGZhTm9kZUpzLCBmYVVuY2hhcnRlZCwgZmFQbGF5c3RhdGlvbiwgZmFNaWNyb2Jsb2csIGZhR2l0a3Jha2VuLCBmYVRlbGVncmFtLCBmYVRlbGVncmFtUGxhbmUsIGZhSXR1bmVzTm90ZSwgZmFMZXNzLCBmYUZpcmVmb3gsIGZhS2FnZ2xlLCBmYUZhY2Vib29rTWVzc2VuZ2VyLCBmYUF1ZGlibGUsIGZhUGF0cmVvbiwgZmFWbnYsIGZhUGFnZWxpbmVzLCBmYUFtYXpvbiwgZmFFbnZpcmEsIGZhTGlub2RlLCBmYUFjY3Vzb2Z0LCBmYUVybGFuZywgZmFDY0Rpc2NvdmVyLCBmYVNhZmFyaSwgZmFTcGFjZUF3ZXNvbWUsIGZhTm9kZSwgZmFDb2RlcGVuLCBmYVJhdmVscnksIGZhQWxpcGF5LCBmYUNjQW1leCwgZmFQaWVkUGlwZXJBbHQsIGZhTGV0dGVyYm94ZCwgZmFPcGVyYSwgZmFXZWlibywgZmFSZWFkbWUsIGZhR29sYW5nLCBmYVN0YWNrRXhjaGFuZ2UsIGZhR3VscCwgZmFZZWxwLCBmYUdvZm9yZSwgZmFBdmlhdG8sIGZhUGFkbGV0LCBmYUVkZ2VMZWdhY3ksIGZhU3F1YXJlTGFzdGZtLCBmYUxhc3RmbVNxdWFyZSwgZmFHb29kcmVhZHNHLCBmYUNjTWFzdGVyY2FyZCwgZmFEaXNjb3Vyc2UsIGZhQmxhY2tUaWUsIGZhU3F1YXJlRmFjZWJvb2ssIGZhRmFjZWJvb2tTcXVhcmUsIGZhQmF0dGxlTmV0LCBmYUJpbW9iamVjdCB9O1xuIiwgIi8qIVxuICogRm9udCBBd2Vzb21lIEZyZWUgNy4xLjAgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb21cbiAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpXG4gKiBDb3B5cmlnaHQgMjAyNSBGb250aWNvbnMsIEluYy5cbiAqL1xudmFyIHByZWZpeCA9IFwiZmFyXCI7XG52YXIgZmFTcXVhcmVNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtbWludXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs2MTc2NywgXCJtaW51cy1zcXVhcmVcIl0sIFwiZjE0NlwiLCBcIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTM2IDIzMmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhTWludXNTcXVhcmUgPSBmYVNxdWFyZU1pbnVzO1xudmFyIGZhQ2FsZW5kYXJDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1jaGVjaycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI3NFwiLCBcIk0zMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDExMnptMjMwLjcgNjUuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM3NC4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnpcIl1cbn07XG52YXIgZmFGYWNlS2lzcyA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWtpc3MnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MzUsIFwia2lzc1wiXSwgXCJmNTk2XCIsIFwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjQwIDBsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTk2LTQ4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xudmFyIGZhS2lzcyA9IGZhRmFjZUtpc3M7XG52YXIgZmFQYXN0ZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdwYXN0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZmlsZS1jbGlwYm9hcmRcIl0sIFwiZjBlYVwiLCBcIk02NCA0OGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTEyIDAgMC00OC0xMTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnptMTc2IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDEwNCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDUuNiAwYzguOC04LjYgMTktMTUuOCAzMC4yLTIxLjEgLjEtLjkgLjItMS45IC4yLTIuOXpNNDQ4IDQ2NGwtMTYwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsMTAxLjUgMGM0LjIgMCA4LjMgMS43IDExLjMgNC43bDU4LjUgNTguNWMzIDMgNC43IDcuMSA0LjcgMTEuM0w0NjQgNDQ4YzAgOC44LTcuMiAxNi0xNiAxNnpNMjI0IDIyNGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zbC01OC41LTU4LjVjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdMMjg4IDE2MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6XCJdXG59O1xudmFyIGZhRmlsZUNsaXBib2FyZCA9IGZhUGFzdGU7XG52YXIgZmFIYW5kUG9pbnRMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2hhbmQtcG9pbnQtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBhNVwiLCBcIk02NCAxMjhsMTc3LjYgMGMtMSA1LjItMS42IDEwLjUtMS42IDE2bDAgMTYtMTc2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTIyNCAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNCAwYzY2LjMgMCAxMjAgNTMuNyAxMjAgMTIwbDAgNDhjMCA1Mi41LTMzLjcgOTcuMS04MC43IDExMy40IC41LTMuMSAuNy02LjIgLjctOS40IDAtMjAtOS4yLTM3LjktMjMuNi00OS43IDQuOS05IDcuNi0xOS40IDcuNi0zMC4zIDAtMTUuMS01LjMtMjktMTQtNDAgOC44LTExIDE0LTI0LjkgMTQtNDBsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODB6bTMyLTgwbDAgMGMtMTggMC0zNC42IDYtNDggMTZMNjQgODBDMjguNyA4MCAwIDEwOC43IDAgMTQ0czI4LjcgNjQgNjQgNjRsODIgMGMtMS4zIDUuMS0yIDEwLjUtMiAxNiAwIDI1LjMgMTQuNyA0Ny4yIDM2IDU3LjYtMi42IDctNCAxNC41LTQgMjIuNCAwIDIwIDkuMiAzNy45IDIzLjYgNDkuNy00LjkgOS03LjYgMTkuNC03LjYgMzAuMyAwIDM1LjMgMjguNyA2NCA2NCA2NGw4OCAwYzkyLjggMCAxNjgtNzUuMiAxNjgtMTY4bDAtNDhjMC05Mi44LTc1LjItMTY4LTE2OC0xNjhsLTI0IDB6TTI1NiA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMHpNMjQwIDIyNGMwIDUuNSAuNyAxMC45IDIgMTZsLTM0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMzIgMCAwIDE2em0yNCA2NGw0MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDI0IDB6XCJdXG59O1xudmFyIGZhRmlsZUV4Y2VsID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZpbGUtZXhjZWwnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzNcIiwgXCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptOTkuMiAyNjUuNmMtOC0xMC42LTIzLTEyLjgtMzMuNi00LjhzLTEyLjggMjMtNC44IDMzLjZMMTYyIDM0NCAxMjQuOCAzOTMuNmMtOCAxMC42LTUuOCAyNS42IDQuOCAzMy42czI1LjYgNS44IDMzLjYtNC44TDE5MiAzODQgMjIwLjggNDIyLjRjOCAxMC42IDIzIDEyLjggMzMuNiA0LjhzMTIuOC0yMyA0LjgtMzMuNkwyMjIgMzQ0IDI1OS4yIDI5NC40YzgtMTAuNiA1LjgtMjUuNi00LjgtMzMuNnMtMjUuNi01LjgtMzMuNiA0LjhMMTkyIDMwNCAxNjMuMiAyNjUuNnpcIl1cbn07XG52YXIgZmFFbnZlbG9wZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdlbnZlbG9wZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODM4NiwgOTk5MywgNjE0NDNdLCBcImYwZTBcIiwgXCJNNjEuNCA2NEMyNy41IDY0IDAgOTEuNSAwIDEyNS40IDAgMTI2LjMgMCAxMjcuMSAuMSAxMjhMMCAxMjggMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTYtLjEgMGMwLS45IC4xLTEuNyAuMS0yLjYgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjRMNjEuNCA2NHpNNDY0IDE5Mi4zTDQ2NCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTkxLjcgMTU0LjggMTE3LjRjMzEuNCAyMy45IDc0LjkgMjMuOSAxMDYuNCAwTDQ2NCAxOTIuM3pNNDggMTI1LjRDNDggMTE4IDU0IDExMiA2MS40IDExMmwzODkuMiAwYzcuNCAwIDEzLjQgNiAxMy40IDEzLjQgMCA0LjItMiA4LjItNS4zIDEwLjdMMjgwLjIgMjcxLjVjLTE0LjMgMTAuOC0zNC4xIDEwLjgtNDguNCAwTDUzLjMgMTM2LjFjLTMuMy0yLjUtNS4zLTYuNS01LjMtMTAuN3pcIl1cbn07XG52YXIgZmFTcXVhcmVDYXJldERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnc3F1YXJlLWNhcmV0LWRvd24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImNhcmV0LXNxdWFyZS1kb3duXCJdLCBcImYxNTBcIiwgXCJNMzg0IDQzMmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwem02NC0xNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjB6TTIyNCAzNTJjLTYuNyAwLTEzLTIuOC0xNy42LTcuN2wtMTA0LTExMmMtNi41LTctOC4yLTE3LjItNC40LTI1LjlTMTEwLjUgMTkyIDEyMCAxOTJsMjA4IDBjOS41IDAgMTguMiA1LjcgMjIgMTQuNHMyLjEgMTguOS00LjQgMjUuOWwtMTA0IDExMmMtNC41IDQuOS0xMC45IDcuNy0xNy42IDcuN3pcIl1cbn07XG52YXIgZmFDYXJldFNxdWFyZURvd24gPSBmYVNxdWFyZUNhcmV0RG93bjtcbnZhciBmYVRydWNrID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ3RydWNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4NjY2LCA5OTUxXSwgXCJmMGQxXCIsIFwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMuMyAwYzEwLjQtMzYuOSA0NC40LTY0IDg0LjctNjRzNzQuMiAyNy4xIDg0LjcgNjRsMTAyLjYgMGM0LjktMTcuNCAxNS4xLTMyLjcgMjguNy00My45TDM2OCA5NmMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6bTMuMyAzNjhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTUuNCAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQwLjYgNDAuNmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjR6TTQxNiAyNTZsMTEyIDAgMC0yMy40YzAtNC4yLTEuNy04LjMtNC43LTExLjNsLTQwLjYtNDAuNmMtMy0zLTcuMS00LjctMTEuMy00LjdsLTU1LjQgMCAwIDgwem0wIDQ4bDAgMzIuNGMyLjYtLjIgNS4zLS40IDgtLjQgNDAuMyAwIDc0LjIgMjcuMSA4NC43IDY0bDMuMyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwLTExMiAwek0xNTIgNDY0YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMjcyIDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwiXVxufTtcbnZhciBmYUJlbGwgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnYmVsbCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODI3NiwgNjE2MDJdLCBcImYwZjNcIiwgXCJNMjI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOS43QzExOC42IDQ1LjMgNTYgMTE1LjQgNTYgMjAwbDAgMTQuNWMwIDM3LjctMTAgNzQuNy0yOSAxMDcuM0w1LjEgMzU5LjJDMS44IDM2NSAwIDM3MS41IDAgMzc4LjIgMCAzOTkuMSAxNi45IDQxNiAzNy44IDQxNmwzNzIuNCAwYzIwLjkgMCAzNy44LTE2LjkgMzcuOC0zNy44IDAtNi43LTEuOC0xMy4zLTUuMS0xOUw0MjEgMzIxLjdjLTE5LTMyLjYtMjktNjkuNi0yOS0xMDcuM2wwLTE0LjVjMC04NC42LTYyLjYtMTU0LjctMTQ0LTE2Ni4zbDAtOS43YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0zOTIuNCAzNjhsLTMzNi45IDAgMTIuOS0yMi4xQzkxLjcgMzA2IDEwNCAyNjAuNiAxMDQgMjE0LjVsMC0xNC41YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwczEyMCA1My43IDEyMCAxMjBsMCAxNC41YzAgNDYuMiAxMi4zIDkxLjUgMzUuNSAxMzEuNEwzOTIuNCAzNjh6TTE1Ni4xIDQ2NGM5LjkgMjggMzYuNiA0OCA2Ny45IDQ4czU4LTIwIDY3LjktNDhsLTEzNS44IDB6XCJdXG59O1xudmFyIGZhTWVzc2FnZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdtZXNzYWdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJjb21tZW50LWFsdFwiXSwgXCJmMjdhXCIsIFwiTTIwMy43IDUxMi45czAgMCAwIDBsLTM3LjggMjYuN2MtNy4zIDUuMi0xNi45IDUuOC0yNC45IDEuN1MxMjggNTI5IDEyOCA1MjBsMC03Mi0zMiAwYy01MyAwLTk2LTQzLTk2LTk2TDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzIwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDUzLTQzIDk2LTk2IDk2bC0xMjAuNCAwLTkxLjkgNjQuOXptNjQuMy0xMDQuMWM4LjEtNS43IDE3LjgtOC44IDI3LjctOC44TDQxNiA0MDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgODBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMjI0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDU2IDBjMTAuNCAwIDE5LjMgNi42IDIyLjYgMTUuOSAuOSAyLjUgMS40IDUuMiAxLjQgOC4xbDAgNDkuN2MzMi43LTIzLjEgNjMuMy00NC43IDkxLjktNjQuOXpcIl1cbn07XG52YXIgZmFDb21tZW50QWx0ID0gZmFNZXNzYWdlO1xudmFyIGZhRmFjZURpenp5ID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZhY2UtZGl6enknLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImRpenp5XCJdLCBcImY1NjdcIiwgXCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xMzQuMSAxNTMuOWwyNS45IDI1LjkgMjUuOS0yNS45YzcuOC03LjggMjAuNS03LjggMjguMyAwczcuOCAyMC41IDAgMjguM2wtMjUuOSAyNS45IDI1LjkgMjUuOWM3LjggNy44IDcuOCAyMC41IDAgMjguM3MtMjAuNSA3LjgtMjguMyAwbC0yNS45LTI1LjktMjUuOSAyNS45Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMHMtNy44LTIwLjUgMC0yOC4zbDI1LjktMjUuOS0yNS45LTI1LjljLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMHptMTkyIDBsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6TTI1NiAyODhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6XCJdXG59O1xudmFyIGZhRGl6enkgPSBmYUZhY2VEaXp6eTtcbnZhciBmYUNhbGVuZGFyRGF5cyA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1kYXlzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJjYWxlbmRhci1hbHRcIl0sIFwiZjA3M1wiLCBcIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTM4NCA0MzJjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjQtODggMCAwIDgwIDcyIDB6bTE2LTEyOGwwLTgwLTg4IDAgMCA4MCA4OCAwem0tMTM2IDBsMC04MC04MCAwIDAgODAgODAgMHptLTEyOCAwbDAtODAtODggMCAwIDgwIDg4IDB6TTQ4IDM1MmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw3MiAwIDAtODAtODggMHptMTM2IDBsMCA4MCA4MCAwIDAtODAtODAgMHpNMTIwIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDggMzUyIDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwelwiXVxufTtcbnZhciBmYUNhbGVuZGFyQWx0ID0gZmFDYWxlbmRhckRheXM7XG52YXIgZmFIYW5kUG9pbnRVcCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBvaW50LXVwJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbOTc1N10sIFwiZjBhNlwiLCBcIk02NCA2NGwwIDE3Ny42YzUuMi0xIDEwLjUtMS42IDE2LTEuNmwxNiAwIDAtMTc2YzAtOC44LTcuMi0xNi0xNi0xNlM2NCA1NS4yIDY0IDY0ek04MCAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjRjMCA2Ni4zIDUzLjcgMTIwIDEyMCAxMjBsNDggMGM1Mi41IDAgOTcuMS0zMy43IDExMy40LTgwLjctMy4xIC41LTYuMiAuNy05LjQgLjctMjAgMC0zNy45LTkuMi00OS43LTIzLjYtOSA0LjktMTkuNCA3LjYtMzAuMyA3LjYtMTUuMSAwLTI5LTUuMy00MC0xNC0xMSA4LjgtMjQuOSAxNC00MCAxNGwtNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0MCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC04MCAwek0wIDMyMGwwIDBjMC0xOCA2LTM0LjYgMTYtNDhMMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMHM2NCAyOC43IDY0IDY0bDAgODJjNS4xLTEuMyAxMC41LTIgMTYtMiAyNS4zIDAgNDcuMiAxNC43IDU3LjYgMzYgNy0yLjYgMTQuNS00IDIyLjQtNCAyMCAwIDM3LjkgOS4yIDQ5LjcgMjMuNiA5LTQuOSAxOS40LTcuNiAzMC4zLTcuNiAzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDg4YzAgOTIuOC03NS4yIDE2OC0xNjggMTY4bC00OCAwQzc1LjIgNTEyIDAgNDM2LjggMCAzNDRsMC0yNHptMzM2LTY0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0ek0xNjAgMjQwYzUuNSAwIDEwLjkgLjcgMTYgMmwwLTM0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMzIgMTYgMHptNjQgMjRsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyNHpcIl1cbn07XG52YXIgZmFIYW5kTGl6YXJkID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2hhbmQtbGl6YXJkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjU4XCIsIFwiTTcyIDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTUyIDBjNC41IDAgOC45IDEuMyAxMi43IDMuNmw2NCA0MGM3IDQuNCAxMS4zIDEyLjEgMTEuMyAyMC40bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMC43LTQ2LjktMjkuMy0xNDUuMSAwYy0zOS44IDAtNzItMzIuMi03Mi03MnMzMi4yLTcyIDcyLTcybDEwNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDcyIDIwOGMtMzkuOCAwLTcyLTMyLjItNzItNzJTMzIuMiA2NCA3MiA2NGwyMDkuNiAwYzQ2LjcgMCA5MC45IDIxLjUgMTE5LjcgNTguM2w3OC40IDEwMC4xYzIwLjkgMjYuNyAzMi4zIDU5LjcgMzIuMyA5My43TDUxMiA0MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDcuOWMwLTIzLjItNy44LTQ1LjgtMjIuMS02NC4xTDM2My41IDE1MS45Yy0xOS43LTI1LjItNDkuOS0zOS45LTgxLjktMzkuOUw3MiAxMTJ6XCJdXG59O1xudmFyIGZhU3F1YXJlRnVsbCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtZnVsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODk5NywgMTI4OTk4LCAxMjg5OTksIDEyOTAwMCwgMTI5MDAxLCAxMjkwMDIsIDEyOTAwMywgMTEwMzUsIDExMDM2XSwgXCJmNDVjXCIsIFwiTTQ0OCA0OGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpcIl1cbn07XG52YXIgZmFDaXJjbGVQYXVzZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtcGF1c2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjA5MiwgXCJwYXVzZS1jaXJjbGVcIl0sIFwiZjI4YlwiLCBcIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHptMTEyIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE0NHpcIl1cbn07XG52YXIgZmFQYXVzZUNpcmNsZSA9IGZhQ2lyY2xlUGF1c2U7XG52YXIgZmFIYXJkRHJpdmUgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnaGFyZC1kcml2ZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODQzNiwgXCJoZGRcIl0sIFwiZjBhMFwiLCBcIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYyYzUuMS0xLjMgMTAuNS0yIDE2LTJsMzIwIDBjNS41IDAgMTAuOSAuNyAxNiAybDAtMTYyYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNNDggMzIwbDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAzMDRjLTguOCAwLTE2IDcuMi0xNiAxNnpNMCAzMjBMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtOTZ6bTIxNiA0OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbnZhciBmYUhkZCA9IGZhSGFyZERyaXZlO1xudmFyIGZhRmlsZVppcHBlciA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXppcHBlcicsXG4gIGljb246IFszODQsIDUxMiwgW1wiZmlsZS1hcmNoaXZlXCJdLCBcImYxYzZcIiwgXCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNODAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0wIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em02NCA1NmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4bDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0xNiA2NGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6XCJdXG59O1xudmFyIGZhRmlsZUFyY2hpdmUgPSBmYUZpbGVaaXBwZXI7XG52YXIgZmFGbG9wcHlEaXNrID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2Zsb3BweS1kaXNrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4MTkwLCAxMjg0MjYsIFwic2F2ZVwiXSwgXCJmMGM3XCIsIFwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0Mi43YzAtNC4yLTEuNy04LjMtNC43LTExLjNMMzIwIDg2LjYgMzIwIDE3NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTYtMzIgMHptODAgMGwwIDgwIDEyOCAwIDAtODAtMTI4IDB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjQyLjcgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjhjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0w0NDggNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMTYwIDMyMGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6XCJdXG59O1xudmFyIGZhU2F2ZSA9IGZhRmxvcHB5RGlzaztcbnZhciBmYUZhY2VHcmluVG9uZ3VlU3F1aW50ID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3Jpbi10b25ndWUtc3F1aW50JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTQxLCBcImdyaW4tdG9uZ3VlLXNxdWludFwiXSwgXCJmNThhXCIsIFwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDc1LjkgNDAuNyAxNDIuNCAxMDEuNSAxNzguNy0zLjYtMTAuOS01LjUtMjIuNi01LjUtMzQuN2wwLTM3LjVjLTEwLjItMTIuNi0xOC4zLTI2LjktMjMuOC00Mi40LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNiAxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtNS41IDE1LjYtMTMuNiAyOS45LTIzLjggNDIuNWwwIDM3LjVjMCAxMi4xLTEuOSAyMy44LTUuNSAzNC43IDYwLjgtMzYuMyAxMDEuNS0xMDIuNyAxMDEuNS0xNzguN3pNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTI1LjgtNzUuN2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXMxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjN6bTI2My42LTIxLjFjNC41IDYuOCAzLjEgMTUuOS0zLjEgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41ek0zMjAgNDE2bDAtMzcuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDM3LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpcIl1cbn07XG52YXIgZmFHcmluVG9uZ3VlU3F1aW50ID0gZmFGYWNlR3JpblRvbmd1ZVNxdWludDtcbnZhciBmYUNhbWVyYSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjYW1lcmEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjI1OCwgXCJjYW1lcmEtYWx0XCJdLCBcImYwMzBcIiwgXCJNMTkzLjEgMzJjLTE4LjcgMC0zNi4yIDkuNC00Ni42IDI0LjlMMTIwLjUgOTYgNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC01Ni41IDAtMjYtMzkuMUMzNTUuMSA0MS40IDMzNy42IDMyIDMxOC45IDMyTDE5My4xIDMyem0tNi43IDUxLjZjMS41LTIuMiA0LTMuNiA2LjctMy42bDEyNS43IDBjMi43IDAgNS4yIDEuMyA2LjcgMy42bDMzLjIgNDkuOGM0LjUgNi43IDExLjkgMTAuNyAyMCAxMC43bDY5LjMgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmw2OS4zIDBjOCAwIDE1LjUtNCAyMC0xMC43bDMzLjItNDkuOHpNMjU2IDM4NGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTE5MiAyNzJhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwelwiXVxufTtcbnZhciBmYUNhbWVyYUFsdCA9IGZhQ2FtZXJhO1xudmFyIGZhRmFjZUdyaW5TdGFycyA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tc3RhcnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjkzMjEsIFwiZ3Jpbi1zdGFyc1wiXSwgXCJmNTg3XCIsIFwiTTAgMjU2YzAtMjkuNiA1LTU3LjkgMTQuMi04NC40bDE3LjMgMTYuOS00LjYgMjdjLTQuMiAyNC40IDUuNiA0Ni4yIDIyIDU5LjkgOS44IDEwNS44IDk4LjggMTg4LjcgMjA3LjEgMTg4LjdzMTk3LjQtODIuOCAyMDcuMS0xODguNmMxNi40LTEzLjcgMjYuMS0zNS40IDIyLTU5LjlsLTQuNi0yNyAxNy4zLTE2LjljOS4yIDI2LjQgMTQuMiA1NC44IDE0LjIgODQuNCAwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2UzAgMzk3LjQgMCAyNTZ6TTI1NiA0OGMtMTUuMiAwLTMwIDEuNi00NC4zIDQuN0wyMDEuNCAzMS44QzE5NyAyMyAxOTEuMSAxNS44IDE4NC4yIDEwLjIgMjA3IDMuNiAyMzEuMSAwIDI1NiAwczQ5IDMuNiA3MS44IDEwLjJDMzIwLjkgMTUuOCAzMTUgMjMgMzEwLjYgMzEuOEwzMDAuMyA1Mi43QzI4NiA0OS42IDI3MS4yIDQ4IDI1NiA0OHpNMzcyLjIgMzAyLjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTM1My43IDUzLjFjNS45LTExLjkgMjIuOC0xMS45IDI4LjcgMGwyMy4zIDQ3LjIgNTIgNy42YzEzLjEgMS45IDE4LjQgMTggOC45IDI3LjNsLTM3LjcgMzYuNyA4LjkgNTEuOGMyLjIgMTMuMS0xMS41IDIzLTIzLjIgMTYuOUwzNjggMjE2IDMyMS41IDI0MC41Yy0xMS43IDYuMi0yNS41LTMuOC0yMy4yLTE2LjlsOC45LTUxLjgtMzcuNy0zNi43Yy05LjUtOS4zLTQuMy0yNS40IDguOS0yNy4zbDUyLTcuNiAyMy4zLTQ3LjJ6bS0xOTUuMyAwbDIzLjMgNDcuMiA1MiA3LjZjMTMuMSAxLjkgMTguNCAxOCA4LjkgMjcuM2wtMzcuNyAzNi43IDguOSA1MS44YzIuMiAxMy4xLTExLjUgMjMtMjMuMiAxNi45TDE0NCAyMTYgOTcuNSAyNDAuNWMtMTEuNyA2LjItMjUuNS0zLjgtMjMuMi0xNi45bDguOS01MS44LTM3LjctMzYuN2MtOS41LTkuMy00LjMtMjUuNCA4LjktMjcuM2w1Mi03LjYgMjMuMy00Ny4yYzUuOS0xMS45IDIyLjgtMTEuOSAyOC43IDB6XCJdXG59O1xudmFyIGZhR3JpblN0YXJzID0gZmFGYWNlR3JpblN0YXJzO1xudmFyIGZhRXllID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2V5ZScsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODA2NV0sIFwiZjA2ZVwiLCBcIk0yODggODBDMjIyLjggODAgMTY5LjIgMTA5LjYgMTI4LjEgMTQ3LjcgODkuNiAxODMuNSA2MyAyMjYgNDkuNCAyNTYgNjMgMjg2IDg5LjYgMzI4LjUgMTI4LjEgMzY0LjMgMTY5LjIgNDAyLjQgMjIyLjggNDMyIDI4OCA0MzJzMTE4LjgtMjkuNiAxNTkuOS02Ny43QzQ4Ni40IDMyOC41IDUxMyAyODYgNTI2LjYgMjU2IDUxMyAyMjYgNDg2LjQgMTgzLjUgNDQ3LjkgMTQ3LjcgNDA2LjggMTA5LjYgMzUzLjIgODAgMjg4IDgwek05NS40IDExMi42QzE0Mi41IDY4LjggMjA3LjIgMzIgMjg4IDMyczE0NS41IDM2LjggMTkyLjYgODAuNmM0Ni44IDQzLjUgNzguMSA5NS40IDkzIDEzMS4xIDMuMyA3LjkgMy4zIDE2LjcgMCAyNC42LTE0LjkgMzUuNy00Ni4yIDg3LjctOTMgMTMxLjEtNDcuMSA0My43LTExMS44IDgwLjYtMTkyLjYgODAuNlMxNDIuNSA0NDMuMiA5NS40IDM5OS40Yy00Ni44LTQzLjUtNzguMS05NS40LTkzLTEzMS4xLTMuMy03LjktMy4zLTE2LjcgMC0yNC42IDE0LjktMzUuNyA0Ni4yLTg3LjcgOTMtMTMxLjF6TTI4OCAzMzZjNDQuMiAwIDgwLTM1LjggODAtODAgMC0yOS42LTE2LjEtNTUuNS00MC02OS4zLTEuNCA1OS43LTQ5LjYgMTA3LjktMTA5LjMgMTA5LjMgMTMuOCAyMy45IDM5LjcgNDAgNjkuMyA0MHptLTc5LjYtODguNGMyLjUgLjMgNSAuNCA3LjYgLjQgMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yLjYtLjItNS4xLS40LTcuNi0zNy40IDMuOS02Ny4yIDMzLjctNzEuMSA3MS4xem00NS42LTExNWMxMC44LTMgMjIuMi00LjUgMzMuOS00LjUgOC44IDAgMTcuNSAuOSAyNS44IDIuNiAuMyAuMSAuNSAuMSAuOCAuMiA1Ny45IDEyLjIgMTAxLjQgNjMuNyAxMDEuNCAxMjUuMiAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOC02MS42IDAtMTEzLTQzLjUtMTI1LjItMTAxLjQtMS44LTguNi0yLjgtMTcuNS0yLjgtMjYuNiAwLTExIDEuNC0yMS44IDQtMzIgLjItLjcgLjMtMS4zIC41LTEuOSAxMS45LTQzLjQgNDYuMS03Ny42IDg5LjUtODkuNXpcIl1cbn07XG52YXIgZmFGYWNlU2FkVGVhciA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLXNhZC10ZWFyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTQ2LCBcInNhZC10ZWFyXCJdLCBcImY1YjRcIiwgXCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNDEuOCAxMi4zIDgwLjcgMzMuNiAxMTMuMyA4LjIgNDQuNyA0Ny4zIDc4LjYgOTQuMyA3OC43IDI0LjcgMTAuMyA1MS43IDE2IDgwLjEgMTYgMTE0LjkgMCAyMDgtOTMuMSAyMDgtMjA4ek0yODggMzUyYy01LjUgMC0xMC45IC42LTE2IDEuOCAwLS42IDAtMS4yIDAtMS44IDAtMTYuMi00LTMxLjUtMTEuMS00NC45IDguNy0yIDE3LjgtMy4xIDI3LjEtMy4xIDQwLjIgMCA3NS43IDE5LjggOTcuNSA1MCA3LjcgMTAuOCA1LjMgMjUuOC01LjUgMzMuNXMtMjUuOCA1LjMtMzMuNS01LjVjLTEzLjEtMTguMi0zNC40LTMwLTU4LjUtMzB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODUuNCAyNzYuOGM2LjUgNy44IDEyLjYgMTYuMSAxOC4zIDI0LjYgOSAxMy40IDIwLjMgMzAuMiAyMC4zIDQ3LjQgMCAyOC4zLTIxLjUgNTEuMi00OCA1MS4ycy00OC0yMi45LTQ4LTUxLjJjMC0xNy4yIDExLjItMzQgMjAuMy00Ny40IDUuNy04LjUgMTEuOS0xNi43IDE4LjMtMjQuNiAyLjQtMi45IDUuNy00LjggOS40LTQuOHM3IDEuOSA5LjQgNC44elwiXVxufTtcbnZhciBmYVNhZFRlYXIgPSBmYUZhY2VTYWRUZWFyO1xudmFyIGZhU2hhcmVGcm9tU3F1YXJlID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ3NoYXJlLWZyb20tc3F1YXJlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbNjE1MDksIFwic2hhcmUtc3F1YXJlXCJdLCBcImYxNGRcIiwgXCJNNDI1LjUgN2MtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzODQuNSAxNC4zIDM4NC41IDI0bDAgNTYtNDggMGMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCA0Ni43IDIwLjcgODAuNCA0My42IDEwMy40IDguMSA4LjIgMTYuNSAxNC45IDI0LjMgMjAuNCA5LjIgNi41IDIxLjcgNS43IDMwLjEtMS45czEwLjItMjAgNC41LTI5LjhjLTMuNi02LjMtNi41LTE0LjktNi41LTI2LjcgMC0zNi4yIDI5LjMtNjUuNSA2NS41LTY1LjVsNDYuNSAwIDAgNTZjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4ybDEzNi0xMzZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMNDI1LjUgN3ptNyA5N2wwLTIyLjEgNzguMSA3OC4xLTc4LjEgNzguMSAwLTIyLjFjMC0xMy4zLTEwLjctMjQtMjQtMjRMMzM4IDE5MmMtNTAuOSAwLTkzLjkgMzMuNS0xMDguMyA3OS42LTMuMy05LjQtNS4yLTE5LjgtNS4yLTMxLjYgMC02MS45IDUwLjEtMTEyIDExMi0xMTJsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHptLTMyMC04Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDI1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwyNTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNCAwelwiXVxufTtcbnZhciBmYVNoYXJlU3F1YXJlID0gZmFTaGFyZUZyb21TcXVhcmU7XG52YXIgZmFOb3RlU3RpY2t5ID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ25vdGUtc3RpY2t5JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjIwMjYsIFwic3RpY2t5LW5vdGVcIl0sIFwiZjI0OVwiLCBcIk0yNDAgNDMyTDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNzYtODggMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA4OHpNMzgwLjEgMzIwTDI4OCA0MTIuMSAyODggMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDY4LjEgMHpNMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk3LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0MjkuMyAzMzguN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2elwiXVxufTtcbnZhciBmYVN0aWNreU5vdGUgPSBmYU5vdGVTdGlja3k7XG52YXIgZmFIYW5kQmFja0Zpc3QgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnaGFuZC1iYWNrLWZpc3QnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImhhbmQtcm9ja1wiXSwgXCJmMjU1XCIsIFwiTTk2IDQwMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDQwMHpNNzMuMiAzNTJsNjQuNiAwLTc5LjUtODguM0M1MS43IDI1Ni4zIDQ4IDI0Ni44IDQ4IDIzNi45TDQ4IDIwNGMwLTE2LjEgMTEuOS0yOS41IDI3LjQtMzEuNyAxMS44LTEuNyAyMC42LTExLjggMjAuNi0yMy44TDk2IDcyYzAtMTMuMyAxMC43LTI0IDI0LTI0IDcuMiAwIDEzLjYgMy4xIDE4IDguMSA0LjYgNS4yIDExLjEgOC4xIDE4IDguMXMxMy40LTMgMTgtOC4xYzQuNC01IDEwLjgtOC4xIDE4LTguMSA4LjUgMCAxNS45IDQuNCAyMC4yIDExLjEgNi45IDEwLjcgMjAuOSAxNC4yIDMyIDggMy41LTEuOSA3LjQtMy4xIDExLjgtMy4xIDEwLjYgMCAxOS43IDYuOSAyMi44IDE2LjYgMy44IDExLjcgMTUuOSAxOC43IDI4IDE2IDEuNy0uNCAzLjQtLjYgNS4yLS42IDEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOTIuMmMwIDE0LjQtMy41IDI4LjUtMTAuMiA0MS4ybC01Mi4yIDk4LjYgNTQuMyAwIDQwLjMtNzYuMmMxMC40LTE5LjYgMTUuOC00MS41IDE1LjgtNjMuNmwwLTkyLjJjMC0zOC40LTMwLjEtNjkuOC02OC4xLTcxLjktMTIuOS0xOS4zLTM0LjktMzIuMS01OS45LTMyLjEtNS43IDAtMTEuMiAuNy0xNi41IDEuOS0xMi43LTExLjEtMjkuMy0xNy45LTQ3LjUtMTcuOS0xMy4xIDAtMjUuNCAzLjUtMzYgOS42LTEwLjYtNi4xLTIyLjktOS42LTM2LTkuNi0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDU4LjdDMTkuNyAxNDMgMCAxNzEuMiAwIDIwNGwwIDMyLjljMCAyMS43IDggNDIuNyAyMi42IDU4LjlMNzMuMiAzNTJ6XCJdXG59O1xudmFyIGZhSGFuZFJvY2sgPSBmYUhhbmRCYWNrRmlzdDtcbnZhciBmYUNoZXNzUXVlZW4gPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY2hlc3MtcXVlZW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5ODE5XSwgXCJmNDQ1XCIsIFwiTTMyNS4zIDkwLjhjOS4xLTQuOCAyMC42LTMuMyAyOC4yIDQuM2wzOS44IDM5LjggMy43IDMuM2M5LjEgNy4xIDIwLjkgMTAgMzIuNCA3LjdsNDYuNC05LjMgMy41LS40YzgtLjQgMTUuOCAzLjIgMjAuNiA5LjggNS41IDcuNiA2LjEgMTcuNiAxLjYgMjUuOGwtMTEyLjYgMjAyLjYgNTEuNSA3MC45IDEuOCAyLjdjNCA2LjYgNi4yIDE0LjIgNi4yIDIyIDAgMjMuMy0xOC45IDQyLjEtNDIuMSA0Mi4xbC0yOTkuOCAwYy0yMS44IDAtMzkuOC0xNi42LTQxLjktMzcuOGwtLjItNC4zIC4xLTMuM2MuNi03LjcgMy40LTE1LjEgNy45LTIxLjRsNTEuNS03MC45LTExMi41LTIwMi42Yy00LjUtOC4yLTMuOS0xOC4zIDEuNi0yNS44czE0LjktMTEuMiAyNC4xLTkuNGw0Ni40IDkuM2MxMy4xIDIuNiAyNi43LTEuNSAzNi4xLTEwLjlMMTU5LjUgOTUgMTYzIDkyLjJjOC42LTUuOCAyMC4xLTUuNiAyOC41IDEuMWw0MCAzMiAyLjggMi4xYzE0LjQgOS42IDMzLjUgOC45IDQ3LjItMi4xbDQwLTMyIDMuOC0yLjV6TTE2NC43IDQwMGwtNDYuNiA2NCAyNzYuNyAwLTQ2LjYtNjQtMTgzLjYgMHpNMzExLjUgMTYyLjhjLTMwLjEgMjQuMS03Mi4xIDI1LjYtMTAzLjggNC41bC02LjItNC41LTIzLjMtMTguNi0yNC42IDI0LjZjLTE5LjggMTkuOC00Ny43IDI4LjktNzUuMSAyNC44bDg4LjEgMTU4LjUgMTc5LjggMCA4OC0xNTguNWMtMjUuNyAzLjgtNTEuNy0zLjktNzEuMS0yMWwtNC0zLjctMjQuNi0yNC42LTIzLjIgMTguNnpNMjU2LjUgNzJhNDAgNDAgMCAxIDEgMC04MCA0MCA0MCAwIDEgMSAwIDgwelwiXVxufTtcbnZhciBmYUZhY2VHcmluVGVhcnMgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXRlYXJzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NTE0LCBcImdyaW4tdGVhcnNcIl0sIFwiZjU4OFwiLCBcIk01MDQuMSAzNTNDNTEyLjkgMzY3LjIgNTI1LjMgMzc5IDUzOS44IDM4Ny4yIDQ5NS4xIDQ2MiA0MTMuNCA1MTIgMzIwIDUxMlMxNDQuOSA0NjIgMTAwLjIgMzg3LjJjMTQuNi04LjIgMjYuOS0yMCAzNS44LTM0LjMgMzQuOSA2NiAxMDQuMiAxMTEgMTg0LjEgMTExczE0OS4yLTQ1IDE4NC4xLTExMXptMTYuNC0xNTIuNUM0OTYuMiAxMTIuNiA0MTUuNyA0OCAzMjAgNDhTMTQzLjggMTEyLjYgMTE5LjUgMjAwLjVjLTEwLjYtNC44LTIyLjctNi44LTM1LjQtNWwtMTMuNCAxLjlDOTcuMiA4NC4zIDE5OC44IDAgMzIwIDBTNTQyLjggODQuMyA1NjkuMyAxOTcuNGwtMTMuNC0xLjljLTEyLjctMS44LTI0LjggLjItMzUuNCA1ek00NTUuOCAzMjBjLTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44ek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAgMjguNC0yMyA1MS40LTUxLjQgNTEuNC0yNS42IDAtNDcuMy0xOC44LTUwLjktNDQuMUw1MzEgMjYxLjFjLTEuNS0xMC42IDcuNS0xOS42IDE4LjEtMTguMWw0Ni43IDYuN2MyNS4zIDMuNiA0NC4xIDI1LjMgNDQuMSA1MC45em0tNjQwIDBjMC0yNS42IDE4LjgtNDcuMyA0NC4xLTUwLjlMOTAuOSAyNDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDMzMy4yIDc3IDM1MiA1MS40IDM1MiAyMyAzNTIgMCAzMjkgMCAzMDAuNnpcIl1cbn07XG52YXIgZmFHcmluVGVhcnMgPSBmYUZhY2VHcmluVGVhcnM7XG52YXIgZmFQZW5Ub1NxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdwZW4tdG8tc3F1YXJlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJlZGl0XCJdLCBcImYwNDRcIiwgXCJNNDQxIDU4LjlMNDUzLjEgNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNDI0IDEzNC4xIDM3Ny45IDg4IDQwNyA1OC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwek0yMDkuOCAyNTYuMkwzNDQgMTIxLjkgMzkwLjEgMTY4IDI1NS44IDMwMi4yYy0yLjkgMi45LTYuNSA1LTEwLjQgNi4xbC01OC41IDE2LjcgMTYuNy01OC41YzEuMS0zLjkgMy4yLTcuNSA2LjEtMTAuNHpNMzczLjEgMjVMMTc1LjggMjIyLjJjLTguNyA4LjctMTUgMTkuNC0xOC4zIDMxLjFsLTI4LjYgMTAwYy0yLjQgOC40LS4xIDE3LjQgNi4xIDIzLjZzMTUuMiA4LjUgMjMuNiA2LjFsMTAwLTI4LjZjMTEuOC0zLjQgMjIuNS05LjcgMzEuMS0xOC4zTDQ4NyAxMzguOWMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjhMNDc0LjkgMjVDNDQ2LjgtMy4xIDQwMS4yLTMuMSAzNzMuMSAyNXpNODggNjRDMzkuNCA2NCAwIDEwMy40IDAgMTUyTDAgNDI0YzAgNDguNiAzOS40IDg4IDg4IDg4bDI3MiAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMjIuMS0xNy45IDQwLTQwIDQwTDg4IDQ2NGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0yNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6XCJdXG59O1xudmFyIGZhRWRpdCA9IGZhUGVuVG9TcXVhcmU7XG52YXIgZmFGYWNlR3JpbkJlYW1Td2VhdCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tYmVhbS1zd2VhdCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODUxNywgXCJncmluLWJlYW0tc3dlYXRcIl0sIFwiZjU4M1wiLCBcIk01MzAuMiAxNS45Yy04LjgtMTAuNy0xOC41LTIwLjktMjktMzAtMy0yLjYtNy40LTIuNi0xMC40IDAtMTAuNSA5LjEtMjAuMSAxOS4zLTI5IDMwLTE0LjcgMTcuOC0yOS44IDQwLjEtMjkuOCA2NC4xIDAgMzYuNCAyNy42IDY0IDY0IDY0czY0LTI3LjYgNjQtNjRjMC0yNC0xNS4yLTQ2LjMtMjkuOC02NC4xem0tMTMyIDguOUMzNjQuOCA4LjkgMzI3LjQgMCAyODggMCAxNDYuNiAwIDMyIDExNC42IDMyIDI1NlMxNDYuNiA1MTIgMjg4IDUxMiA1NDQgMzk3LjQgNTQ0IDI1NmMwLTI0LjQtMy40LTQ4LTkuOC03MC40LTExLjkgNC4yLTI0LjcgNi40LTM4LjIgNi40LTMuNCAwLTYuOC0uMS0xMC4yLS40IDYuNiAyMC4zIDEwLjIgNDEuOSAxMC4yIDY0LjQgMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzgwIDM3MC45IDgwIDI1NiAxNzMuMSA0OCAyODggNDhjMzQuOCAwIDY3LjUgOC41IDk2LjMgMjMuNiAxLjQtMTcuNCA2LjktMzMuMSAxMy44LTQ2Ljh6TTQyMy44IDMyMGM0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3LjgtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggMTkuOCA1NS45IDczLjEgOTUuOSAxMzUuOCA5NS45IDYyLjcgMCAxMTYtNDAuMSAxMzUuOC05NnpNMTgwIDIwOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHMyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOHptMTg4LTI4YzE1LjUgMCAyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHpcIl1cbn07XG52YXIgZmFHcmluQmVhbVN3ZWF0ID0gZmFGYWNlR3JpbkJlYW1Td2VhdDtcbnZhciBmYUNsb2NrID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2Nsb2NrJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MzM5LCBcImNsb2NrLWZvdXJcIl0sIFwiZjAxN1wiLCBcIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHpcIl1cbn07XG52YXIgZmFDbG9ja0ZvdXIgPSBmYUNsb2NrO1xudmFyIGZhRmFjZUxhdWdoV2luayA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWxhdWdoLXdpbmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxhdWdoLXdpbmtcIl0sIFwiZjU5Y1wiLCBcIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIwelwiXVxufTtcbnZhciBmYUxhdWdoV2luayA9IGZhRmFjZUxhdWdoV2luaztcbnZhciBmYVBhcGVyUGxhbmUgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAncGFwZXItcGxhbmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs2MTkxM10sIFwiZjFkOFwiLCBcIk0yOTAuNSAyODcuN0w0OTEuNCA4Ni45IDM1OSA0NTYuMyAyOTAuNSAyODcuN3pNNDU3LjQgNTNMMjU2LjYgMjUzLjggODggMTg1LjMgNDU3LjQgNTN6TTM4LjEgMjE2LjhsMjA1LjggODMuNiA4My42IDIwNS44YzUuMyAxMy4xIDE4LjEgMjEuNyAzMi4zIDIxLjcgMTQuNyAwIDI3LjgtOS4yIDMyLjgtMjMuMUw1NzAuNiA4YzMuNS05LjggMS0yMC42LTYuMy0yOHMtMTguMi05LjgtMjgtNi4zTDM5LjQgMTUxLjdjLTEzLjkgNS0yMy4xIDE4LjEtMjMuMSAzMi44IDAgMTQuMiA4LjYgMjcgMjEuNyAzMi4zelwiXVxufTtcbnZhciBmYUhlYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2hlYXJ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTUzLCAxMjgxNTQsIDEyODE1NSwgMTI4MTU2LCAxMjg0MjAsIDEyOTI5MywgMTI5Mjk0LCAxMjk1MDUsIDk4MjksIDEwMDg0LCA2MTU3OF0sIFwiZjAwNFwiLCBcIk0zNzguOSA4MGMtMjcuMyAwLTUzIDEzLjEtNjkgMzUuMmwtMzQuNCA0Ny42Yy00LjUgNi4yLTExLjcgOS45LTE5LjQgOS45cy0xNC45LTMuNy0xOS40LTkuOWwtMzQuNC00Ny42Yy0xNi0yMi4xLTQxLjctMzUuMi02OS0zNS4yLTQ3IDAtODUuMSAzOC4xLTg1LjEgODUuMSAwIDQ5LjkgMzIgOTguNCA2OC4xIDE0Mi4zIDQxLjEgNTAgOTEuNCA5NCAxMjUuOSAxMjAuMyAzLjIgMi40IDcuOSA0LjIgMTQgNC4yczEwLjgtMS44IDE0LTQuMmMzNC41LTI2LjMgODQuOC03MC40IDEyNS45LTEyMC4zIDM2LjItNDMuOSA2OC4xLTkyLjQgNjguMS0xNDIuMyAwLTQ3LTM4LjEtODUuMS04NS4xLTg1LjF6TTI3MSA4Ny4xYzI1LTM0LjYgNjUuMi01NS4xIDEwNy45LTU1LjEgNzMuNSAwIDEzMy4xIDU5LjYgMTMzLjEgMTMzLjEgMCA2OC42LTQyLjkgMTI4LjktNzkuMSAxNzIuOC00NC4xIDUzLjYtOTcuMyAxMDAuMS0xMzMuOCAxMjcuOS0xMi4zIDkuNC0yNy41IDE0LjEtNDMuMSAxNC4xcy0zMC44LTQuNy00My4xLTE0LjFDMTc2LjQgNDM4IDEyMy4yIDM5MS41IDc5LjEgMzM4IDQyLjkgMjk0LjEgMCAyMzMuNyAwIDE2NS4xIDAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN3pcIl1cbn07XG52YXIgZmFGb250QXdlc29tZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmb250LWF3ZXNvbWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjUwMSwgNjI2OTQsIFwiZm9udC1hd2Vzb21lLWZsYWdcIiwgXCJmb250LWF3ZXNvbWUtbG9nby1mdWxsXCJdLCBcImYyYjRcIiwgXCJNOTEuNyA5NkMxMDYuMyA4Ni44IDExNiA3MC41IDExNiA1MiAxMTYgMjMuMyA5Mi43IDAgNjQgMFMxMiAyMy4zIDEyIDUyYzAgMTYuNyA3LjggMzEuNSAyMCA0MWwwIDQxOSA0OCAwIDAtNjQgMzg5LjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNCAwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3MiA0OTMuNyAxMzMuMWMxLjUtMy40IDIuMy03IDIuMy0xMC43IDAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6TTgwIDQwMGwwLTI1NiAzNTYuNCAwLTQ4LjIgMTA4LjVjLTUuNSAxMi40LTUuNSAyNi42IDAgMzlMNDM2LjQgNDAwIDgwIDQwMHpcIl1cbn07XG52YXIgZmFGb250QXdlc29tZUZsYWcgPSBmYUZvbnRBd2Vzb21lO1xudmFyIGZhRm9udEF3ZXNvbWVMb2dvRnVsbCA9IGZhRm9udEF3ZXNvbWU7XG52YXIgZmFDbG9uZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjbG9uZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI0ZFwiLCBcIk0yODggNDY0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yMjQgMzA0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwem0tNjQtMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0elwiXVxufTtcbnZhciBmYUZvbGRlck9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZm9sZGVyLW9wZW4nLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgxOTQsIDEyODQ0OSwgNjE3MTddLCBcImYwN2NcIiwgXCJNOTcuNSA0MDBsNTAtMTYwIDM3OS40IDAtNTAgMTYwLTM3OS40IDB6bTE5MC43IDQ4TDQ3NyA0NDhjMjEgMCAzOS42LTEzLjYgNDUuOC0zMy43bDUwLTE2MGM5LjctMzAuOS0xMy40LTYyLjMtNDUuOC02Mi4zbC0zNzkuNCAwYy0yMSAwLTM5LjYgMTMuNi00NS44IDMzLjdMODAuMiAyOTQuNCA4MC4yIDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxMzguNyAwYzMuNSAwIDYuOCAxLjEgOS42IDMuMkwyODIuOSAxMTJjMTMuOCAxMC40IDMwLjcgMTYgNDggMTZsMTE3LjMgMGM4LjggMCAxNiA3LjIgMTYgMTZsNDggMGMwLTM1LjMtMjguNy02NC02NC02NEwzMzAuOSA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjczLjMgNDQuOEMyNjIuMiAzNi41IDI0OC44IDMyIDIzNC45IDMyTDk2LjIgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwelwiXVxufTtcbnZhciBmYVdpbmRvd01pbmltaXplID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ3dpbmRvdy1taW5pbWl6ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODQ2OV0sIFwiZjJkMVwiLCBcIk0wIDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0elwiXVxufTtcbnZhciBmYVN0YXJIYWxmID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ3N0YXItaGFsZicsXG4gIGljb246IFs1NzYsIDUxMiwgWzYxNzMxXSwgXCJmMDg5XCIsIFwiTTI4NS43LTE1LjhjMTAuOCAyLjYgMTguNCAxMi4yIDE4LjQgMjMuM2wwIDM4Ny4xYzAgOS01LjEgMTcuMy0xMy4xIDIxLjRMMTQzLjggNDkxYy04IDQuMS0xNy43IDMuMy0yNS0ycy0xMS0xNC4yLTkuNi0yMy4yTDEzNC40IDMwNS45IDIwIDE5MS40Yy02LjQtNi40LTguNi0xNS44LTUuOC0yNC40czEwLjEtMTQuOSAxOS4xLTE2LjNMMTkzLjEgMTI1LjMgMjU4LjgtMy4zYzUtOS45IDE2LjItMTUgMjctMTIuNHpNMjU2LjEgMTA3LjRMMjMwLjMgMTU4Yy0zLjUgNi44LTEwIDExLjYtMTcuNiAxMi44bC0xMjUuNSAyMCA4OS44IDg5LjljNS40IDUuNCA3LjkgMTMuMSA2LjcgMjAuN2wtMTkuOCAxMjUuNSA5Mi4yLTQ2LjkgMC0yNzIuNnpcIl1cbn07XG52YXIgZmFBbGFybUNsb2NrID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2FsYXJtLWNsb2NrJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTIwMF0sIFwiZjM0ZVwiLCBcIk00MDIuNiA1MC4yYy01LjQgMS43LTExLjMgMS44LTE2LjItLjktNS44LTMuMi0xMS44LTYuMi0xNy44LTguOS0xMC40LTQuNy0xMy43LTE4LjMtNC4xLTI0LjYgMTUtOS45IDMzLTE1LjcgNTIuMy0xNS43IDUyLjYgMCA5NS4yIDQyLjYgOTUuMiA5NS4yIDAgMTMuMi0yLjcgMjUuOC03LjYgMzcuMy00LjUgMTAuNS0xOC40IDkuOC0yNC45IC40LTMuOC01LjUtNy44LTEwLjgtMTItMTYtMy41LTQuNC00LjUtMTAuMi0zLjgtMTUuOCAuMi0xLjkgLjQtMy45IC40LTUuOSAwLTI2LjEtMjEuMi00Ny4yLTQ3LjItNDcuMi00LjkgMC05LjcgLjgtMTQuMiAyLjJ6TTMyLjUgMTMyLjljLTYuNSA5LjQtMjAuNSAxMC4xLTI0LjktLjQtNC45LTExLjUtNy42LTI0LjEtNy42LTM3LjMgMC01Mi42IDQyLjYtOTUuMiA5NS4yLTk1LjIgMTkuMyAwIDM3LjMgNS44IDUyLjMgMTUuNyA5LjYgNi4zIDYuMyAxOS45LTQuMSAyNC42LTYuMSAyLjgtMTIgNS43LTE3LjggOC45LTQuOSAyLjctMTAuOSAyLjYtMTYuMiAuOS00LjUtMS40LTkuMi0yLjItMTQuMi0yLjItMjYuMSAwLTQ3LjIgMjEuMi00Ny4yIDQ3LjIgMCAyIC4xIDQgLjQgNS45IC43IDUuNi0uMyAxMS40LTMuOCAxNS44LTQuMiA1LjItOC4yIDEwLjUtMTIgMTZ6TTQzMiAyODhhMTc2IDE3NiAwIDEgMCAtMzUyIDAgMTc2IDE3NiAwIDEgMCAzNTIgMHpNMzk2LjUgNDYyLjVDMzU4LjEgNDkzLjQgMzA5LjIgNTEyIDI1NiA1MTJzLTEwMi4xLTE4LjYtMTQwLjUtNDkuNUw3MyA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDIuNS00Mi41QzUwLjYgMzkwLjEgMzIgMzQxLjIgMzIgMjg4IDMyIDE2NC4zIDEzMi4zIDY0IDI1NiA2NFM0ODAgMTY0LjMgNDgwIDI4OGMwIDUzLjItMTguNiAxMDIuMS00OS41IDE0MC41TDQ3MyA0NzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDIuNS00Mi41ek0yODAgMTg0bDAgOTQuMSA0MSA0MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00OC00OGMtNC41LTQuNS03LTEwLjYtNy0xN2wwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0elwiXVxufTtcbnZhciBmYU5ld3NwYXBlciA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICduZXdzcGFwZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyNDBdLCBcImYxZWFcIiwgXCJNMTY4IDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDguNC0xLjQgMTYuNS00LjEgMjRMNDQwIDQzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwxNjggODB6TTcyIDQ4MGMtMzkuOCAwLTcyLTMyLjItNzItNzJMMCAxMTJDMCA5OC43IDEwLjcgODggMjQgODhzMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDI3MiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMzA0YzAgMzkuOC0zMi4yIDcyLTcyIDcyTDcyIDQ4MHpNMTkyIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6bTE1MiAyNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yMTYgMjU2bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA4MGwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhSG9zcGl0YWwgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnaG9zcGl0YWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjc5NzMsIDYyNTg5LCBcImhvc3BpdGFsLWFsdFwiLCBcImhvc3BpdGFsLXdpZGVcIl0sIFwiZjBmOFwiLCBcIk0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA0OC00OCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3MmMwLTM1LjMtMjguNy02NC02NC02NGwtNDggMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE3NiAwek0xNjAgNjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjcyYzAgOC44LTcuMiAxNi0xNiAxNmwtMTc2IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA4MC0xNzYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjcyYzAtOC44IDcuMi0xNiAxNi0xNmw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNzJ6TTExMiAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNOTYgMzM2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMyMCAwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2LTExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0yNjQgMTA0bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMiAzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2elwiXVxufTtcbnZhciBmYUhvc3BpdGFsQWx0ID0gZmFIb3NwaXRhbDtcbnZhciBmYUhvc3BpdGFsV2lkZSA9IGZhSG9zcGl0YWw7XG52YXIgZmFDaXJjbGVTdG9wID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2NpcmNsZS1zdG9wJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjIwOTQsIFwic3RvcC1jaXJjbGVcIl0sIFwiZjI4ZFwiLCBcIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2MCAxOTJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNDggMTEybDAtOTYgOTYgMCAwIDk2LTk2IDB6XCJdXG59O1xudmFyIGZhU3RvcENpcmNsZSA9IGZhQ2lyY2xlU3RvcDtcbnZhciBmYU9iamVjdFVuZ3JvdXAgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnb2JqZWN0LXVuZ3JvdXAnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyNDhcIiwgXCJNNDguMiA2Ni44Yy0uMS0uOC0uMi0xLjctLjItMi41bDAtLjJjMC04LjggNy4yLTE2IDE2LTE2IC45IDAgMS45IC4xIDIuOCAuMiA3LjUgMS4zIDEzLjIgNy45IDEzLjIgMTUuOCAwIDguOC03LjIgMTYtMTYgMTYtNy45IDAtMTQuNS01LjctMTUuOC0xMy4yek0wIDY0YzAgMjYuOSAxNi41IDQ5LjkgNDAgNTkuM2wwIDEwNS4zYy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDIwMS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTEwNS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NC0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBMMTIzLjMgNDBDMTEzLjkgMTYuNSA5MC45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjR6bTM2OCAwYTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTMyNC43IDg4YzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMTA1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0yMDEuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTEwNS4zYzE2LTYuNSAyOC45LTE5LjMgMzUuMy0zNS4zbDIwMS4zIDB6TTM4NCAyNzJhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyek04MCAyODhjMCA3LjktNS43IDE0LjUtMTMuMiAxNS44LS44IC4xLTEuNyAuMi0yLjUgLjJsLS4yIDBjLTguOCAwLTE2LTcuMi0xNi0xNiAwLS45IC4xLTEuOSAuMi0yLjggMS4zLTcuNSA3LjktMTMuMiAxNS44LTEzLjIgOC44IDAgMTYgNy4yIDE2IDE2em00MzYuNy00MGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM2wwIDEwNS4zYy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM2wtMjAxLjMgMGMtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNsMC0yMC43LTQ4IDAgMCAyMC43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDIwMS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTEwNS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NC0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBsLTUyLjcgMCAwIDkuNmMxMC43IDEwLjkgMTkuMSAyMy45IDI0LjYgMzguNGwyOCAwem01OS4zLThhMTYgMTYgMCAxIDEgMC0zMiAxNiAxNiAwIDEgMSAwIDMyek0yNzEuOCA0NTAuN2ExNiAxNiAwIDEgMSAtMzEuNS01LjUgMTYgMTYgMCAxIDEgMzEuNSA1LjV6bTMwMS41IDEzYy03LjUtMS4zLTEzLjItNy45LTEzLjItMTUuOCAwLTguOCA3LjItMTYgMTYtMTYgNy45IDAgMTQuNSA1LjcgMTUuOCAxMy4ybDAgLjFjLjEgLjkgLjIgMS44IC4yIDIuNyAwIDguOC03LjIgMTYtMTYgMTYtLjkgMC0xLjktLjEtMi44LS4yelwiXVxufTtcbnZhciBmYUNvbW1lbnQgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY29tbWVudCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODQ4OSwgNjE2NjldLCBcImYwNzVcIiwgXCJNNTEuOSAzODQuOUMxOS4zIDM0NC42IDAgMjk0LjQgMCAyNDAgMCAxMDcuNSAxMTQuNiAwIDI1NiAwUzUxMiAxMDcuNSA1MTIgMjQwIDM5Ny40IDQ4MCAyNTYgNDgwYy0zNi41IDAtNzEuMi03LjItMTAyLjYtMjBMMzcgNTA5LjljLTMuNyAxLjYtNy41IDIuMS0xMS41IDIuMS0xNC4xIDAtMjUuNS0xMS40LTI1LjUtMjUuNSAwLTQuMyAxLjEtOC41IDMuMS0xMi4ybDQ4LjgtODkuNHptMzcuMy0zMC4yYzEyLjIgMTUuMSAxNC4xIDM2LjEgNC44IDUzLjJsLTE4IDMzLjEgNTguNS0yNS4xYzExLjgtNS4xIDI1LjItNS4yIDM3LjEtLjMgMjUuNyAxMC41IDU0LjIgMTYuNCA4NC4zIDE2LjQgMTE3LjggMCAyMDgtODguOCAyMDgtMTkyUzM3My44IDQ4IDI1NiA0OCA0OCAxMzYuOCA0OCAyNDBjMCA0Mi44IDE1LjEgODIuNCA0MS4yIDExNC43elwiXVxufTtcbnZhciBmYUNoZXNzUGF3biA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1wYXduJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbOTgyM10sIFwiZjQ0M1wiLCBcIk0xOTItMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAyNy42LTkuMyA1Mi45LTI0LjkgNzMuMiA5LjggMyAxNi45IDEyLjEgMTYuOSAyMi44IDAgMTMuMy0xMC43IDI0LTI0IDI0bC0uNiAwIDI0LjYgMTYwIDUzLjYgNjdjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDYzLjQgNTEyYy0yNi4yIDAtNDcuNC0yMS4yLTQ3LjQtNDcuNCAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42bDUzLjYtNjcgMjQuNi0xNjAtLjYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC44IDcuMS0xOS44IDE2LjktMjIuOC0xNS42LTIwLjMtMjQuOS00NS42LTI0LjktNzMuMiAwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHpNMTE1LjkgNDAwbC01MS4yIDY0IDI1NC43IDAtNTEuMi02NC0xNTIuMiAwem0zNi4yLTE4NC43bC0yMSAxMzYuNyAxMjEuOSAwLTIxLTEzNi43LTEuMS03LjMtNzcuNiAwLTEuMSA3LjN6TTE5MiAxNmE3MiA3MiAwIDEgMCAwIDE0NCA3MiA3MiAwIDEgMCAwLTE0NHpcIl1cbn07XG52YXIgZmFDYWxlbmRhclBsdXMgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY2FsZW5kYXItcGx1cycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI3MVwiLCBcIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0xMDQgNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpcIl1cbn07XG52YXIgZmFDbGlwYm9hcmQgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY2xpcGJvYXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4MjAzXSwgXCJmMzI4XCIsIFwiTTIzMiA5NmwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0em0wIDQ4YzM3LjEgMCA2Ny42LTI4IDcxLjYtNjRMMzIwIDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDM1MmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2LjQgMGM0IDM2IDM0LjUgNjQgNzEuNiA2NGw4MCAwek0yOTEuOSAzMkMyNzkgMTIuNyAyNTcgMCAyMzIgMEwxNTIgMGMtMjUgMC00NyAxMi43LTU5LjkgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM1MmMwLTM1LjMtMjguNy02NC02NC02NGwtMjguMSAwelwiXVxufTtcbnZhciBmYVRodW1ic0Rvd24gPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAndGh1bWJzLWRvd24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgwNzgsIDYxNTc2XSwgXCJmMTY1XCIsIFwiTTM2MCAzMmw3LjQgLjRjMzUgMy42IDYyLjUgMzIuMiA2NC40IDY3LjcgMTcuOCAxMS44IDMwLjEgMzEuNCAzMiA1My45bC4yIDZjMCA1LjctLjcgMTEuMi0yIDE2LjUgMTAuMiAxMS41IDE2LjggMjYuMyAxNy44IDQyLjdsLjIgNC44YzAgMTMuMi0zLjYgMjUuNC05LjggMzYgNC45IDguNCA4LjIgMTcuOSA5LjMgMjhsLjQgOGMwIDM3LjMtMjguMyA2Ny45LTY0LjYgNzEuNmwtNy40IC40LTEwOS43IDAgMTQuMSAzMCAzLjEgNy42YzEyLjUgMzUuNy0xLjggNzUuNS0zNC4yIDk1bC03LjIgMy45Yy0zNy41IDE3LjYtODEuNyAzLjYtMTAyLjYtMzEuMmwtLjYtLjktMi43LTUtLjYtMS4yLTMwLjEtNjRjLTkuNCAxNy44LTI4IDI5LjktNDkuNSAyOS45bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDE1MmMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEyLjQgMCAyMy45IDQuMSAzMy4yIDExIDEzLjItMjEuNCAzMi0zOS40IDU1LTUxLjZsMTIuMi02LjUgLjctLjMgNi42LTMuMiAuNy0uMyA3LjEtM2MxNi43LTYuNiAzNC41LTkuOSA1Mi42LTkuOUwzNjAgMzJ6TTI1NS45IDgwYy0xMiAwLTIzLjkgMi4zLTM1LjEgNi42bC00LjcgMi01LjMgMi42IDAgMC0xMi4yIDYuNWMtMjkuMiAxNS41LTQ4LjMgNDQuOS01MC43IDc3LjZsLS4yIDggMCAxMTIuOSAuMSA0LjFjLjUgOC4yIDIuNSAxNi4yIDYgMjMuN2w1Ni44IDEyMC45IDIuMSAzLjhjOC40IDEzLjcgMjYgMTkuMSA0MC44IDEyLjJsMi45LTEuNmMxMy03LjggMTguNy0yMy43IDEzLjctMzhsLTEuMi0zLTMwLjItNjQuMmMtMy41LTcuNC0yLjktMTYuMSAxLjUtMjMuMXMxMi0xMS4xIDIwLjItMTEuMWwxNDcuNSAwIDIuNC0uMWMxMS4zLTEuMSAyMC4zLTEwLjEgMjEuNC0yMS40bC4xLTIuNWMwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM0LjQtMy45IDcuNC05LjMgOC0xNS4zbC4yLTIuN2MwLTguNC00LjQtMTUuOS0xMS4yLTIwLjItMTAuNy02LjktMTQuMi0yMC45LTgtMzIgMS41LTIuNiAyLjUtNS42IDIuOS04LjZsLjItMy4yYzAtMTAuNi02LjktMTkuNi0xNi42LTIyLjgtMTEuNy0zLjgtMTguNy0xNS45LTE2LTI4IC4yLS45IC4zLTEuOCAuNC0yLjZsLjItMi42YzAtMTIuNC05LjUtMjIuNi0yMS42LTIzLjhMMzYwIDgwIDI1NS45IDgwek01NiAxNDRjLTQuNCAwLTggMy42LTggOGwwIDIyNGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC0yMjRjMC00LjQtMy42LTgtOC04bC0zMiAwelwiXVxufTtcbnZhciBmYUlkQmFkZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnaWQtYmFkZ2UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYyYzFcIiwgXCJNMjU2IDQ4bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmwyNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTE2MCAzMjBsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMOTYgNDE2Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6XCJdXG59O1xudmFyIGZhU3F1YXJlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnc3F1YXJlLWNoZWNrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbOTc0NSwgOTk4OSwgNjE1MTAsIFwiY2hlY2stc3F1YXJlXCJdLCBcImYxNGFcIiwgXCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHptMjMwLjcgODkuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnpcIl1cbn07XG52YXIgZmFDaGVja1NxdWFyZSA9IGZhU3F1YXJlQ2hlY2s7XG52YXIgZmFDaGVzc0Jpc2hvcCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1iaXNob3AnLFxuICBpY29uOiBbMzIwLCA1MTIsIFs5ODIxXSwgXCJmNDNhXCIsIFwiTTIxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDgxLjggOTguMWMyNC43IDI5LjYgMzguMiA2NyAzOC4yIDEwNS42IDAgNDMuNy0xNy40IDg1LjctNDguMyAxMTYuNmwtOC42IDguNiA0Ni41IDU4LjJjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDQ3LjQgNTEyQzIxLjIgNTEyIDAgNDkwLjggMCA0NjQuNiAwIDQ1My45IDMuNyA0NDMuNCAxMC40IDQzNWw0Ni41LTU4LjItOC42LTguNkMxNy40IDMzNy40IDAgMjk1LjQgMCAyNTEuNyAwIDIxMy4xIDEzLjUgMTc1LjggMzguMiAxNDYuMUwxMjAgNDggMTA0IDQ4QzkwLjcgNDggODAgMzcuMyA4MCAyNFM5MC43IDAgMTA0IDBMMjE2IDB6TTk0LjQgNDA2LjhsLTQ1LjcgNTcuMiAyMjIuNyAwLTQ1LjctNTcuMS01LjUtNi45LTEyMC4zIDAtNS41IDYuOHpNMTU2LjkgNzguN0w3NS4xIDE3Ni44Yy0xNS4zIDE4LjQtMjQuNiA0MS0yNi43IDY0LjdMNDggMjUxLjdjMCAzMSAxMi4zIDYwLjcgMzQuMiA4Mi43bDE3LjcgMTcuNyAxMjAuMiAwYzYuMi02LjIgMTIuMS0xMi4xIDE3LjgtMTcuNyAyMS45LTIxLjkgMzQuMi01MS42IDM0LjItODIuNmwtLjQtMTAuMmMtMS41LTE3LTYuNy0zMy4zLTE1LjItNDhMMjA5IDI0MWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1MS44LTUxLjgtNjMuNy03Ni41LTMuMS0zLjgtMy4xIDMuOHpcIl1cbn07XG52YXIgZmFFbnZlbG9wZU9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZW52ZWxvcGUtb3BlbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMTM1XSwgXCJmMmI2XCIsIFwiTTUxMiA0MTZjMCAzNS4zLTI4LjUgNjQtNjMuOSA2NEw2NCA0ODBjLTM1LjQgMC02NC0yOC43LTY0LTY0TDAgMTY0Yy4xLTE1LjUgNy44LTMwIDIwLjUtMzguOEwyMDYtMi43YzMwLjEtMjAuNyA2OS44LTIwLjcgOTkuOSAwTDQ5MS41IDEyNS4yYzEyLjggOC44IDIwLjQgMjMuMyAyMC41IDM4LjhsMCAyNTJ6TTY0IDQzMmwzODQuMSAwYzguOCAwIDE1LjktNy4xIDE1LjktMTZsMC0xOTEuNy0xNTQuOCAxMTcuNGMtMzEuNCAyMy45LTc0LjkgMjMuOS0xMDYuNCAwTDQ4IDIyNC4zIDQ4IDQxNmMwIDguOSA3LjIgMTYgMTYgMTZ6TTQ2My42IDE2NC40TDI3OC43IDM2LjhjLTEzLjctOS40LTMxLjctOS40LTQ1LjQgMEw0OC40IDE2NC40IDIzMS44IDMwMy41YzE0LjMgMTAuOCAzNC4xIDEwLjggNDguNCAwTDQ2My42IDE2NC40elwiXVxufTtcbnZhciBmYUNpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2NpcmNsZS14bWFyaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxNTMyLCBcInRpbWVzLWNpcmNsZVwiLCBcInhtYXJrLWNpcmNsZVwiXSwgXCJmMDU3XCIsIFwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY3IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpcIl1cbn07XG52YXIgZmFUaW1lc0NpcmNsZSA9IGZhQ2lyY2xlWG1hcms7XG52YXIgZmFYbWFya0NpcmNsZSA9IGZhQ2lyY2xlWG1hcms7XG52YXIgZmFTcXVhcmVDYXJldFVwID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ3NxdWFyZS1jYXJldC11cCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiY2FyZXQtc3F1YXJlLXVwXCJdLCBcImYxNTFcIiwgXCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTIyNCA2NGM2LjcgMCAxMyAyLjggMTcuNiA3LjdsMTA0IDExMmM2LjUgNyA4LjIgMTcuMiA0LjQgMjUuOVMzMzcuNSAzMjAgMzI4IDMyMGwtMjA4IDBjLTkuNSAwLTE4LjItNS43LTIyLTE0LjRzLTIuMS0xOC45IDQuNC0yNS45bDEwNC0xMTJjNC41LTQuOSAxMC45LTcuNyAxNy42LTcuN3pcIl1cbn07XG52YXIgZmFDYXJldFNxdWFyZVVwID0gZmFTcXVhcmVDYXJldFVwO1xudmFyIGZhRmlsZUltYWdlID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZpbGUtaW1hZ2UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjg0NDNdLCBcImYxYzVcIiwgXCJNMTc2IDQ4TDY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDI1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0MC04OCAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTg4ek0zMTYuMSAxNjBMMjI0IDY3LjkgMjI0IDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2OC4xIDB6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDE5Ny41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTQxLjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNMjU5LjQgNDMybC0xMzQuOCAwYy0xNS44IDAtMjguNi0xMi44LTI4LjYtMjguNiAwLTYuNCAyLjEtMTIuNSA2LTE3LjZsNjcuNi04Ni45QzE3NSAyOTIgMTgzLjMgMjg4IDE5MiAyODhzMTcgNCAyMi40IDEwLjlMMjgyIDM4NS45YzMuOSA1IDYgMTEuMiA2IDE3LjYgMCAxNS44LTEyLjggMjguNi0yOC42IDI4LjZ6TTExMiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYVNxdWFyZUNhcmV0UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnc3F1YXJlLWNhcmV0LXJpZ2h0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJjYXJldC1zcXVhcmUtcmlnaHRcIl0sIFwiZjE1MlwiLCBcIk00MDAgOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMHpNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzIwIDI1NmMwIDYuNy0yLjggMTMtNy43IDE3LjZsLTExMiAxMDRjLTcgNi41LTE3LjIgOC4yLTI1LjkgNC40UzE2MCAzNjkuNSAxNjAgMzYwbDAtMjA4YzAtOS41IDUuNy0xOC4yIDE0LjQtMjJzMTguOS0yLjEgMjUuOSA0LjRsMTEyIDEwNGM0LjkgNC41IDcuNyAxMC45IDcuNyAxNy42elwiXVxufTtcbnZhciBmYUNhcmV0U3F1YXJlUmlnaHQgPSBmYVNxdWFyZUNhcmV0UmlnaHQ7XG52YXIgZmFTdW4gPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnc3VuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbOTcyOF0sIFwiZjE4NVwiLCBcIk0yMDAuNi03LjljLTYuNy00LjQtMTUuMS01LjItMjIuNS0yLjJTMTY1LjQtLjUgMTYzLjkgNy4zTDE0MyAxMTAuNiAzOS43IDEzMS40Yy03LjggMS42LTE0LjQgNy0xNy40IDE0LjNzLTIuMiAxNS44IDIuMiAyMi41TDgyLjcgMjU2IDI0LjUgMzQzLjhjLTQuNCA2LjctNS4yIDE1LjEtMi4yIDIyLjVzOS42IDEyLjggMTcuNCAxNC4zTDE0MyA0MDEuNCAxNjMuOSA1MDQuN2MxLjYgNy44IDcgMTQuNCAxNC4zIDE3LjRzMTUuOCAyLjIgMjIuNS0yLjJsODcuOC01OC4yIDg3LjggNTguMmM2LjcgNC40IDE1LjEgNS4yIDIyLjUgMi4yczEyLjgtOS42IDE0LjMtMTcuNGwyMC45LTEwMy4yIDEwMy4yLTIwLjljNy44LTEuNiAxNC40LTcgMTcuNC0xNC4zczIuMi0xNS44LTIuMi0yMi41bC01OC4yLTg3LjggNTguMi04Ny44YzQuNC02LjcgNS4yLTE1LjEgMi4yLTIyLjVzLTkuNi0xMi44LTE3LjQtMTQuM0w0MzMuOCAxMTAuNiA0MTMgNy4zQzQxMS40LS41IDQwNi03IDM5OC42LTEwLjFzLTE1LjgtMi4yLTIyLjUgMi4yTDI4OC40IDUwLjMgMjAwLjYtNy45ek0xODYuOSAxMzUuN2wxNy04My45IDcxLjMgNDcuM2M4IDUuMyAxOC41IDUuMyAyNi41IDBsNzEuMy00Ny4zIDE3IDgzLjljMS45IDkuNSA5LjMgMTYuOCAxOC44IDE4LjhsODMuOSAxNy00Ny4zIDcxLjNjLTUuMyA4LTUuMyAxOC41IDAgMjYuNWw0Ny4zIDcxLjMtODMuOSAxN2MtOS41IDEuOS0xNi45IDkuMy0xOC44IDE4LjhsLTE3IDgzLjktNzEuMy00Ny4zYy04LTUuMy0xOC41LTUuMy0yNi41IDBsLTcxLjMgNDcuMy0xNy04My45Yy0xLjktOS41LTkuMy0xNi45LTE4LjgtMTguOGwtODMuOS0xNyA0Ny4zLTcxLjNjNS4zLTggNS4zLTE4LjUgMC0yNi41bC00Ny4zLTcxLjMgODMuOS0xN2M5LjUtMS45IDE2LjgtOS4zIDE4LjgtMTguOHpNMjM5LjYgMjU2YTQ4LjQgNDguNCAwIDEgMSA5Ni44IDAgNDguNCA0OC40IDAgMSAxIC05Ni44IDB6bTE0NC44IDBhOTYuNCA5Ni40IDAgMSAwIC0xOTIuOCAwIDk2LjQgOTYuNCAwIDEgMCAxOTIuOCAwelwiXVxufTtcbnZhciBmYUltYWdlID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ltYWdlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDNlXCIsIFwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xMjggMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMzYgNzJjOC41IDAgMTYuNCA0LjUgMjAuNyAxMS44bDgwIDEzNmM0LjQgNy40IDQuNCAxNi42IC4xIDI0LjFTMzUyLjYgMzg0IDM0NCAzODRsLTI0MCAwYy04LjkgMC0xNy4yLTUtMjEuMy0xMi45cy0zLjUtMTcuNSAxLjYtMjQuOGw1Ni04MGM0LjUtNi40IDExLjgtMTAuMiAxOS43LTEwLjJzMTUuMiAzLjggMTkuNyAxMC4ybDE3LjIgMjQuNiA0Ni41LTc5YzQuMy03LjMgMTIuMi0xMS44IDIwLjctMTEuOHpcIl1cbn07XG52YXIgZmFMaWdodGJ1bGIgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnbGlnaHRidWxiJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4MTYxXSwgXCJmMGViXCIsIFwiTTI5Ni41IDI5MS4xQzMyMSAyNjUuMiAzMzYgMjMwLjQgMzM2IDE5MiAzMzYgMTEyLjUgMjcxLjUgNDggMTkyIDQ4UzQ4IDExMi41IDQ4IDE5MmMwIDM4LjQgMTUgNzMuMiAzOS41IDk5LjEgMjEuMyAyMi40IDQ0LjkgNTQgNTMuMyA5Mi45bDEwMi40IDBjOC40LTM5IDMyLTcwLjUgNTMuMy05Mi45em0zNC44IDMzQzMwNy43IDM0OSAyODggMzc5LjQgMjg4IDQxMy43bDAgMTguM2MwIDQ0LjItMzUuOCA4MC04MCA4MGwtMzIgMGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xOC4zQzk2IDM3OS40IDc2LjMgMzQ5IDUyLjcgMzI0LjEgMjAgMjg5LjcgMCAyNDMuMiAwIDE5MiAwIDg2IDg2IDAgMTkyIDBTMzg0IDg2IDM4NCAxOTJjMCA1MS4yLTIwIDk3LjctNTIuNyAxMzIuMXpNMTQ0IDE4NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ4LjYgMzkuNC04OCA4OC04OCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6XCJdXG59O1xudmFyIGZhQWRkcmVzc0NhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnYWRkcmVzcy1jYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbNjIxNDAsIFwiY29udGFjdC1jYXJkXCIsIFwidmNhcmRcIl0sIFwiZjJiYlwiLCBcIk01MTIgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsNDQ4IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOCAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bS0zMiA0MGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpNMzc2IDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6XCJdXG59O1xudmFyIGZhQ29udGFjdENhcmQgPSBmYUFkZHJlc3NDYXJkO1xudmFyIGZhVmNhcmQgPSBmYUFkZHJlc3NDYXJkO1xudmFyIGZhRmFjZU1laCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLW1laCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUyOCwgXCJtZWhcIl0sIFwiZjExYVwiLCBcIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMTc2IDI0MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE5Mi0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xODQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHpcIl1cbn07XG52YXIgZmFNZWggPSBmYUZhY2VNZWg7XG52YXIgZmFNYXAgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnbWFwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTA2LCA2MjA3Ml0sIFwiZjI3OVwiLCBcIk01MTIgNDhjMC04LjMtNC4zLTE2LTExLjMtMjAuNHMtMTUuOS00LjgtMjMuMy0xLjFMMzUyLjUgODguMSAxODAgMjkuNGMtMTMuNy00LjctMjguNy0zLjgtNDEuOSAyLjNMMTMuOCA5MC4zQzUuNCA5NC4yIDAgMTAyLjcgMCAxMTJMMCA0NjRjMCA4LjIgNC4yIDE1LjkgMTEuMSAyMC4zczE1LjYgNC45IDIzLjEgMS40bDEyNy4zLTU5LjkgMTcwLjcgNTYuOWMxMy43IDQuNiAyOC41IDMuNyA0MS42LTIuNWwxMjQuNC01OC41YzguNC00IDEzLjgtMTIuNCAxMy44LTIxLjdsMC0zNTJ6TTE0NCA4Mi4xbDAgMjk5LTk2IDQ1LjIgMC0yOTkgOTYtNDUuMnptNDggMzAzLjNsMC0zMDEuMSAxMjggNDMuNSAwIDMwMC4zLTEyOC00Mi43ek0zNjggMTM0bDk2LTQ3LjQgMCAyOTguMi05NiA0NS4yIDAtMjk2elwiXVxufTtcbnZhciBmYUhhbmRQb2ludERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnaGFuZC1wb2ludC1kb3duJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMGE3XCIsIFwiTTY0IDQ0OGwwLTE3Ny42YzUuMiAxIDEwLjUgMS42IDE2IDEuNmwxNiAwIDAgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2ek04MCAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjRjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBsNDggMGM1Mi41IDAgOTcuMSAzMy43IDExMy40IDgwLjctMy4xLS41LTYuMi0uNy05LjQtLjctMjAgMC0zNy45IDkuMi00OS43IDIzLjYtOS00LjktMTkuNC03LjYtMzAuMy03LjYtMTUuMSAwLTI5IDUuMy00MCAxNC0xMS04LjgtMjQuOS0xNC00MC0xNGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC04MCAwek0wIDE5MmwwIDBjMCAxOCA2IDM0LjYgMTYgNDhsMCAyMDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTgyYzUuMSAxLjMgMTAuNSAyIDE2IDIgMjUuMyAwIDQ3LjItMTQuNyA1Ny42LTM2IDcgMi42IDE0LjUgNCAyMi40IDQgMjAgMCAzNy45LTkuMiA0OS43LTIzLjYgOSA0LjkgMTkuNCA3LjYgMzAuMyA3LjYgMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC04OEMzODQgNzUuMiAzMDguOCAwIDIxNiAwTDE2OCAwQzc1LjIgMCAwIDc1LjIgMCAxNjhsMCAyNHptMzM2IDY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0ek0xNjAgMjcyYzUuNSAwIDEwLjktLjcgMTYtMmwwIDM0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzIgMTYgMHptNjQtMjRsMC00MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yNHpcIl1cbn07XG52YXIgZmFGYWNlTWVoQmxhbmsgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZmFjZS1tZWgtYmxhbmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NjYsIFwibWVoLWJsYW5rXCJdLCBcImY1YTRcIiwgXCJNMjU2IDQ4YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnpNNTEyIDI1NmEyNTYgMjU2IDAgMSAxIC01MTIgMCAyNTYgMjU2IDAgMSAxIDUxMiAwek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xudmFyIGZhTWVoQmxhbmsgPSBmYUZhY2VNZWhCbGFuaztcbnZhciBmYUZhY2VHcmluVG9uZ3VlID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3Jpbi10b25ndWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MzksIFwiZ3Jpbi10b25ndWVcIl0sIFwiZjU4OVwiLCBcIk00NjQgMjU2YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOFM0OCAxNDEuMSA0OCAyNTZjMCA3NC4xIDM4LjggMTM5LjIgOTcuMSAxNzYtLjctNS4yLTEuMS0xMC42LTEuMS0xNmwwLTUzLjVjLTEwLjItMTIuNi0xOC4zLTI2LjktMjMuOC00Mi40LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNiAxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtNS41IDE1LjYtMTMuNiAyOS45LTIzLjggNDIuNWwwIDUzLjVjMCA1LjQtLjQgMTAuOC0xLjEgMTYgNTguNC0zNi44IDk3LjEtMTAxLjkgOTcuMS0xNzZ6bTQ4IDBjMCAxMTYuMy03Ny42IDIxNC42LTE4My45IDI0NS43LTE5LjUgMTYuNC00NC42IDI2LjMtNzIuMSAyNi4zcy01Mi42LTkuOS03Mi4xLTI2LjNDNzcuNiA0NzAuNiAwIDM3Mi4zIDAgMjU2IDAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNiAyMDhsMC0zNy40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgMzcuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwiXVxufTtcbnZhciBmYUdyaW5Ub25ndWUgPSBmYUZhY2VHcmluVG9uZ3VlO1xudmFyIGZhRnV0Ym9sID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2Z1dGJvbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5MTcsIFwiZnV0Ym9sLWJhbGxcIiwgXCJzb2NjZXItYmFsbFwiXSwgXCJmMWUzXCIsIFwiTTM4NyAyMjguM2MtNC40LTIuOC03LjYtNy05LjItMTEuOXMtMS40LTEwLjIgLjUtMTVMNDExLjYgMTE4Yy0xOS45LTIyLjQtNDQuNi00MC41LTcyLjQtNTIuN2wtNjkuMSA1Ny42Yy00IDMuMy05IDUuMS0xNC4xIDUuMXMtMTAuMi0xLjgtMTQuMS01LjFMMTcyLjggNjUuM2MtMjcuOCAxMi4yLTUyLjUgMzAuMy03Mi40IDUyLjdsMzMuNCA4My40YzEuOSA0LjggMi4xIDEwLjEgLjUgMTVzLTQuOSA5LjEtOS4yIDExLjlMNDkgMjc2LjJjMyAzMC45IDEyLjcgNTkuNyAyNy42IDg1LjJsODkuNy02YzUuMi0uMyAxMC4zIDEuMSAxNC41IDQuMnM3LjIgNy40IDguNCAxMi41bDIyIDg3LjJjMTQuNCAzLjIgMjkuNCA0LjggNDQuOCA0LjhzMzAuMy0xLjcgNDQuOC00LjhsMjItODcuMmMxLjMtNSA0LjItOS40IDguNC0xMi41czkuMy00LjUgMTQuNS00LjJsODkuNyA2YzE1LTI1LjQgMjQuNy01NC4zIDI3LjYtODUuMUwzODcgMjI4LjN6TTI1NiAwYTI1NiAyNTYgMCAxIDEgMCA1MTIgMjU2IDI1NiAwIDEgMSAwLTUxMnptNjIgMjIxYzguNCA2LjEgMTEuOSAxNi45IDguNyAyNi44bC0xOC4zIDU2LjNjLTMuMiA5LjktMTIuNCAxNi42LTIyLjggMTYuNmwtNTkuMiAwYy0xMC40IDAtMTkuNi02LjctMjIuOC0xNi42bC0xOC4zLTU2LjNjLTMuMi05LjkgLjMtMjAuNyA4LjctMjYuOGw0Ny45LTM0LjhjOC40LTYuMSAxOS44LTYuMSAyOC4yIDBMMzE4IDIyMXpcIl1cbn07XG52YXIgZmFGdXRib2xCYWxsID0gZmFGdXRib2w7XG52YXIgZmFTb2NjZXJCYWxsID0gZmFGdXRib2w7XG52YXIgZmFGYWNlU3VycHJpc2UgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZmFjZS1zdXJwcmlzZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU1OCwgXCJzdXJwcmlzZVwiXSwgXCJmNWMyXCIsIFwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc2LTgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS00OCA4MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIl1cbn07XG52YXIgZmFTdXJwcmlzZSA9IGZhRmFjZVN1cnByaXNlO1xudmFyIGZhRm9sZGVyID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZvbGRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE5MywgMTI4NDQ3LCA2MTcxNiwgXCJmb2xkZXItYmxhbmtcIl0sIFwiZjA3YlwiLCBcIk02NCA0MDBsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMTQ5LjMgMGMtMTcuMyAwLTM0LjItNS42LTQ4LTE2TDIxMi4zIDgzLjJjLTIuOC0yLjEtNi4xLTMuMi05LjYtMy4yTDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2em0zODQgNDhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNEw0NDggODBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjR6XCJdXG59O1xudmFyIGZhRm9sZGVyQmxhbmsgPSBmYUZvbGRlcjtcbnZhciBmYUNsb3VkID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2Nsb3VkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbOTcyOV0sIFwiZjBjMlwiLCBcIk04MCAxOTJjMC04OC40IDcxLjYtMTYwIDE2MC0xNjAgNDcuMSAwIDg5LjQgMjAuNCAxMTguNyA1Mi43IDEwLjYtMy4xIDIxLjgtNC43IDMzLjMtNC43IDY2LjMgMCAxMjAgNTMuNyAxMjAgMTIwIDAgMTMuMi0yLjEgMjUuOS02LjEgMzcuOCA0MS42IDIxLjEgNzAuMSA2NC4zIDcwLjEgMTE0LjIgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTMwNCAwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTU2LjggMzIuOS0xMDUuOSA4MC43LTEyOS40LS40LTQuOC0uNy05LjctLjctMTQuNnpNMjQwIDgwYy02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDguNCAuOSAxNi42IDIuNyAyNC41IDIuNyAxMi4xLTQuMyAyNC4zLTE2LjEgMjguMS0zOC43IDEyLjQtNjYuNiA0OC43LTY2LjYgOTEuNCAwIDUzIDQzIDk2IDk2IDk2bDMwNCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMzcuNC0yNS43LTY4LjktNjAuNS03Ny42LTcuNS0xLjktMTMuNi03LjItMTYuNS0xNC4zcy0yLjEtMTUuMiAyLTIxLjdjNy0xMS4xIDExLTI0LjIgMTEtMzguMyAwLTM5LjgtMzIuMi03Mi03Mi03Mi0xMS4xIDAtMjEuNSAyLjUtMzAuOCA2LjktMTAuNSA1LTIzLjEgMS43LTI5LjgtNy44LTIwLjMtMjguNi01My43LTQ3LjEtOTEuMy00Ny4xelwiXVxufTtcbnZhciBmYUNpcmNsZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzMDgsIDEyODMwOSwgMTI4OTkyLCAxMjg5OTMsIDEyODk5NCwgMTI4OTk1LCAxMjg5OTYsIDk2NzksIDk4OTgsIDk4OTksIDExMDQ0LCA2MTcwOCwgNjE5MTVdLCBcImYxMTFcIiwgXCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwelwiXVxufTtcbnZhciBmYUZhY2VHcmluU3F1aW50ID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3Jpbi1zcXVpbnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MTgsIFwiZ3Jpbi1zcXVpbnRcIl0sIFwiZjU4NVwiLCBcIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6bS0yNDkuNi0xNDNjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXpcIl1cbn07XG52YXIgZmFHcmluU3F1aW50ID0gZmFGYWNlR3JpblNxdWludDtcbnZhciBmYUNpcmNsZVVzZXIgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY2lyY2xlLXVzZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjE0MiwgXCJ1c2VyLWNpcmNsZVwiXSwgXCJmMmJkXCIsIFwiTTQwNi41IDM5OS42QzM4Ny40IDM1Mi45IDM0MS41IDMyMCAyODggMzIwbC02NCAwYy01My41IDAtOTkuNCAzMi45LTExOC41IDc5LjYtMzUuNi0zNy4zLTU3LjUtODcuOS01Ny41LTE0My42IDAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOHMyMDggOTMuMSAyMDggMjA4YzAgNTUuNy0yMS45IDEwNi4yLTU3LjUgMTQzLjZ6bS00MC4xIDMyLjdDMzM0LjQgNDUyLjQgMjk2LjYgNDY0IDI1NiA0NjRzLTc4LjQtMTEuNi0xMTAuNS0zMS43YzcuMy0zNi43IDM5LjctNjQuMyA3OC41LTY0LjNsNjQgMGMzOC44IDAgNzEuMiAyNy42IDc4LjUgNjQuM3pNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMjcyYTQwIDQwIDAgMSAxIDAtODAgNDAgNDAgMCAxIDEgMCA4MHptLTg4LTQwYTg4IDg4IDAgMSAwIDE3NiAwIDg4IDg4IDAgMSAwIC0xNzYgMHpcIl1cbn07XG52YXIgZmFVc2VyQ2lyY2xlID0gZmFDaXJjbGVVc2VyO1xudmFyIGZhUmVjdGFuZ2xlTGlzdCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdyZWN0YW5nbGUtbGlzdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGlzdC1hbHRcIl0sIFwiZjAyMlwiLCBcIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTE2MCAzMjBhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTA0LTU2bDE2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNjAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCAxMjhsMTYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYUxpc3RBbHQgPSBmYVJlY3RhbmdsZUxpc3Q7XG52YXIgZmFIYW5kID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2hhbmQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjkzMDYsIDk5OTUsIFwiaGFuZC1wYXBlclwiXSwgXCJmMjU2XCIsIFwiTTI1Ni41IDBjLTI1LjMgMC00Ny4yIDE0LjctNTcuNiAzNi03LTIuNi0xNC41LTQtMjIuNC00LTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMTY1LjUtMi43LTIuN2MtMjUtMjUtNjUuNS0yNS05MC41IDBzLTI1IDY1LjUgMCA5MC41TDEwNyA0MzdjNDggNDggMTEzLjEgNzUgMTgxIDc1bDE2LjUgMGMxLjUgMCAzLS4xIDQuNS0uNCA5MS43LTYuMiAxNjUtNzkuNCAxNzEuMS0xNzEuMSAuMy0xLjUgLjQtMyAuNC00LjVsMC0xNzZjMC0zNS4zLTI4LjctNjQtNjQtNjQtNS41IDAtMTAuOSAuNy0xNiAybDAtMmMwLTM1LjMtMjguNy02NC02NC02NC03LjkgMC0xNS40IDEuNC0yMi40IDQtMTAuNC0yMS4zLTMyLjMtMzYtNTcuNi0zNnptLTE2IDk2LjFsMC0uMSAwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTcyLjljLS4xIC42LS4xIDEuMy0uMiAxLjktMy40IDY5LjctNTkuMyAxMjUuNi0xMjkgMTI5LS42IDAtMS4zIC4xLTEuOSAuMkwyODggNDY0QzIzMi45IDQ2NCAxODAgNDQyLjEgMTQxIDQwMy4xTDUzLjIgMzE1LjNjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGw0My43IDQzLjdjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4ybDAtMjIzLjRjMC04LjggNy4yLTE2IDE2LTE2IDguOCAwIDE2IDcuMSAxNiAxNS45bDAgMTM2LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEzNS45elwiXVxufTtcbnZhciBmYUhhbmRQYXBlciA9IGZhSGFuZDtcbnZhciBmYVRodW1ic1VwID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ3RodW1icy11cCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODA3NywgNjE1NzVdLCBcImYxNjRcIiwgXCJNMTcxLjUgMzguOEMxOTIuMyA0IDIzNi41LTEwIDI3NCA3LjZsNy4yIDMuOEMzMTYgMzIuMyAzMzAgNzYuNSAzMTIuNCAxMTRsMCAwLTE0LjEgMzAgMTA5LjcgMCA3LjQgLjRjMzYuMyAzLjcgNjQuNiAzNC40IDY0LjYgNzEuNiAwIDEzLjItMy42IDI1LjQtOS44IDM2IDYuMSAxMC42IDkuNyAyMi44IDkuOCAzNiAwIDE4LjMtNi45IDM0LjgtMTggNDcuNSAxLjMgNS4zIDIgMTAuOCAyIDE2LjUgMCAyNS4xLTEyLjkgNDctMzIuMiA1OS45LTEuOSAzNS41LTI5LjQgNjQuMi02NC40IDY3LjdsLTcuNCAuNC0xMDQuMSAwYy0xOCAwLTM1LjktMy40LTUyLjYtOS45bC03LjEtMy0uNy0uMy02LjYtMy4yLS43LS4zLTEyLjItNi41Yy0xMi4zLTYuNS0yMy4zLTE0LjctMzIuOS0yNC4xLTQuMSAyNi45LTI3LjMgNDcuNC01NS4zIDQ3LjRsLTMyIDBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgMjAwYzAtMzAuOSAyNS4xLTU2IDU2LTU2bDMyIDBjMTAuOCAwIDIwLjkgMy4xIDI5LjUgOC41bDUwLjEtMTA2LjUgLjYtMS4yIDIuNy01IC42LS45ek01NiAxOTJjLTQuNCAwLTggMy42LTggOGwwIDIyNGMwIDQuNCAzLjYgOCA4IDhsMzIgMGM0LjQgMCA4LTMuNiA4LThsMC0yMjRjMC00LjQtMy42LTgtOC04bC0zMiAwek0yNTMuNiA1MWMtMTQuOC02LjktMzIuMy0xLjYtNDAuNyAxMmwtMi4yIDQtNTYuOCAxMjAuOWMtMy41IDcuNS01LjUgMTUuNS02IDIzLjdsLS4xIDQuMiAwIDExMi45IC4yIDcuOWMyLjQgMzIuNyAyMS40IDYyLjEgNTAuNyA3Ny43bDExLjUgNi4xIDYuMyAzLjFjMTIuNCA1LjYgMjUuOCA4LjUgMzkuNCA4LjVsMTA0LjEgMCAyLjQtLjFjMTIuMS0xLjIgMjEuNi0xMS41IDIxLjYtMjMuOWwtLjItMi42Yy0uMS0uOS0uMi0xLjctLjQtMi42LTIuNy0xMi4xIDQuMy0yNC4yIDE2LTI4IDkuNy0zLjEgMTYuNi0xMi4yIDE2LjYtMjIuOCAwLTQuMy0xLjEtOC4yLTMuMS0xMS44LTYuMy0xMS4xLTIuOC0yNS4yIDgtMzIgNi44LTQuMyAxMS4yLTExLjggMTEuMi0yMC4yIDAtNy4xLTMuMS0xMy41LTguMi0xOC01LjItNC42LTguMi0xMS4xLTguMi0xOHMzLTEzLjQgOC4yLTE4YzUuMS00LjUgOC4yLTEwLjkgOC4yLTE4bC0uMS0yLjRjLTEuMS0xMS4zLTEwLjEtMjAuMy0yMS40LTIxLjRsLTIuNC0uMS0xNDcuNSAwYy04LjIgMC0xNS44LTQuMi0yMC4yLTExLjEtNC40LTYuOS01LTE1LjctMS41LTIzLjFMMjY5IDkzLjZjNy0xNSAxLjQtMzIuNy0xMi41LTQxTDI1My42IDUxelwiXVxufTtcbnZhciBmYUJ1aWxkaW5nID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI3OTcwLCA2MTY4N10sIFwiZjFhZFwiLCBcIk02NCA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmw4MCAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwIDgwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzg0YzAtOC44LTcuMi0xNi0xNi0xNkw2NCA0OHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em05NiA0OGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNDAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNOTYgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbnZhciBmYUNoZXNzUm9vayA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1yb29rJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbOTgyMF0sIFwiZjQ0N1wiLCBcIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEzOC43YzAgMTMuOC00LjUgMjcuMy0xMi44IDM4LjRsLTM1LjIgNDYuOSAwIDExMiA0MC44IDY4LjFjNC43IDcuOCA3LjIgMTYuNyA3LjIgMjUuOCAwIDI3LjctMjIuNCA1MC4xLTUwLjEgNTAuMUw1MC4xIDUxMmMtMjcuNyAwLTUwLjEtMjIuNC01MC4xLTUwLjEgMC05LjEgMi41LTE4IDcuMi0yNS44TDQ4IDM2OCA0OCAyNTYgMTIuOCAyMDkuMUM0LjUgMTk4IDAgMTg0LjUgMCAxNzAuN0wwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMHpNNDguMyA0NjAuOGwtLjMgMS4xYzAgMS4yIDEgMi4xIDIuMSAyLjFsMjgzLjggMGMxLjIgMCAyLjEtMSAyLjEtMi4xbC0uMy0xLjEtMzYuNS02MC44LTIxNC40IDAtMzYuNSA2MC44ek00OCAxNzAuN2MwIDIuNiAuNiA1LjEgMS44IDcuNGwxLjQgMi4yIDAgMCAzNS4yIDQ2LjkgOS42IDEyLjggMCAxMTIgMTkyIDAgMC0xMTIgOS42LTEyLjggMzUuMi00Ni45IDAgMCAxLjQtMi4yYzEuMi0yLjMgMS44LTQuOCAxLjgtNy40bDAtMTIyLjctNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDEyMi43elwiXVxufTtcbnZhciBmYUNpcmNsZVF1ZXN0aW9uID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2NpcmNsZS1xdWVzdGlvbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMTA4LCBcInF1ZXN0aW9uLWNpcmNsZVwiXSwgXCJmMDU5XCIsIFwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2LTgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgNDcuMi0zNiA2Ny4yLTU2IDc0LjVsMCAzLjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LjFjMC0yMC41IDE0LjgtMzUuMiAzMC4xLTQwLjIgNi40LTIuMSAxMy4yLTUuNSAxOC4yLTEwLjMgNC4zLTQuMiA3LjctMTAgNy43LTE5LjYgMC0xNy43LTE0LjMtMzItMzItMzJ6TTIyNCAzNjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG52YXIgZmFRdWVzdGlvbkNpcmNsZSA9IGZhQ2lyY2xlUXVlc3Rpb247XG52YXIgZmFGaWxlID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZpbGUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgxOTYsIDEyODQ1OSwgNjE0NjJdLCBcImYxNWJcIiwgXCJNMTc2IDQ4TDY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDI1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0MC04OCAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTg4ek0zMTYuMSAxNjBMMjI0IDY3LjkgMjI0IDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2OC4xIDB6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDE5Ny41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTQxLjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpcIl1cbn07XG52YXIgZmFGYWNlU2FkQ3J5ID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZhY2Utc2FkLWNyeScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU1NywgXCJzYWQtY3J5XCJdLCBcImY1YjNcIiwgXCJNNDAwIDQwNi4xTDQwMCAyODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNTIuNmMtMjguNyAxNS02MS40IDIzLjQtOTYgMjMuNHMtNjcuMy04LjUtOTYtMjMuNEwxNjAgMjg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTE4LjFDNzIuNiAzNjguMiA0OCAzMTUgNDggMjU2IDQ4IDE0MS4xIDE0MS4xIDQ4IDI1NiA0OHMyMDggOTMuMSAyMDggMjA4YzAgNTktMjQuNiAxMTIuMi02NCAxNTAuMXpNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE1MiAxOTZsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwem0xNzIgMjBjMC0xMSA5LTIwIDIwLTIwbDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjB6TTIwOCAzMzZsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4bDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6XCJdXG59O1xudmFyIGZhU2FkQ3J5ID0gZmFGYWNlU2FkQ3J5O1xudmFyIGZhQ2FsZW5kYXJNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1taW51cycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI3MlwiLCBcIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0zMiAxMzZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYUZhY2VUaXJlZCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLXRpcmVkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTU1LCBcInRpcmVkXCJdLCBcImY1YzhcIiwgXCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzYuNSA2NC4zQzE5Ni4xIDMwMi4xIDIyMy44IDI4OCAyNTYgMjg4czU5LjkgMTQuMSA3OS41IDMyLjNjMTkgMTcuOCAzMi41IDQxLjcgMzIuNSA2My43IDAgNS40LTIuNyAxMC40LTcuMiAxMy40cy0xMC4yIDMuNC0xNS4yIDEuM2wtMTcuMi03LjVjLTIyLjgtMTAtNDcuNS0xNS4xLTcyLjQtMTUuMXMtNDkuNiA1LjItNzIuNCAxNS4xbC0xNy4yIDcuNWMtNC45IDIuMi0xMC43IDEuNy0xNS4yLTEuM3MtNy4yLTgtNy4yLTEzLjRjMC0yMiAxMy41LTQ1LjkgMzIuNS02My43ek0xMjIuNiAxNTkuMmM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xelwiXVxufTtcbnZhciBmYVRpcmVkID0gZmFGYWNlVGlyZWQ7XG52YXIgZmFIYW5kUG9pbnRSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBvaW50LXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGE0XCIsIFwiTTQ0OCAxMjhsLTE3Ny42IDBjMSA1LjIgMS42IDEwLjUgMS42IDE2bDAgMTYgMTc2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZ6TTIyNCAxNDRjMC0xNy43LTE0LjMtMzItMzItMzJsLTI0IDBjLTY2LjMgMC0xMjAgNTMuNy0xMjAgMTIwbDAgNDhjMCA1Mi41IDMzLjcgOTcuMSA4MC43IDExMy40LS41LTMuMS0uNy02LjItLjctOS40IDAtMjAgOS4yLTM3LjkgMjMuNi00OS43LTQuOS05LTcuNi0xOS40LTcuNi0zMC4zIDAtMTUuMSA1LjMtMjkgMTQtNDAtOC44LTExLTE0LTI0LjktMTQtNDBsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTgwek0xOTIgNjRsMCAwYzE4IDAgMzQuNiA2IDQ4IDE2bDIwOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC04MiAwYzEuMyA1LjEgMiAxMC41IDIgMTYgMCAyNS4zLTE0LjcgNDcuMi0zNiA1Ny42IDIuNiA3IDQgMTQuNSA0IDIyLjQgMCAyMC05LjIgMzcuOS0yMy42IDQ5LjcgNC45IDkgNy42IDE5LjQgNy42IDMwLjMgMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTg4IDBDNzUuMiA0NDggMCAzNzIuOCAwIDI4MGwwLTQ4QzAgMTM5LjIgNzUuMiA2NCAxNjggNjRsMjQgMHptNjQgMzM2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDY0IDB6bTE2LTE3NmMwIDUuNS0uNyAxMC45LTIgMTZsMzQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzIgMCAwIDE2em0tMjQgNjRsLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNjQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMjQgMHpcIl1cbn07XG52YXIgZmFDaXJjbGVVcCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MTQ2NywgXCJhcnJvdy1hbHQtY2lyY2xlLXVwXCJdLCBcImYzNWJcIiwgXCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMTA0IDEwNGMtNC42IDQuNi01LjkgMTEuNS0zLjUgMTcuNHM4LjMgOS45IDE0LjggOS45bDcyIDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTEwNCA3MiAwYzYuNSAwIDEyLjMtMy45IDE0LjgtOS45czEuMS0xMi45LTMuNS0xNy40bC0xMDQtMTA0elwiXVxufTtcbnZhciBmYUFycm93QWx0Q2lyY2xlVXAgPSBmYUNpcmNsZVVwO1xudmFyIGZhSGFuZFNjaXNzb3JzID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2hhbmQtc2Npc3NvcnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyNTdcIiwgXCJNLjIgMjc2LjNjLTEuMi0zNS4zIDI2LjQtNjUgNjEuNy02Ni4ybDMuMy0uMS04LjItMS44QzIyLjUgMjAwLjUgLjcgMTY2LjMgOC4zIDEzMS44UzUwLjIgNzUuNSA4NC43IDgzLjJsMTczIDM4LjNjMi4zLTIuOSA0LjYtNS43IDcuMS04LjVsMTguNC0yMC4zQzI5OS45IDc0LjUgMzIzLjUgNjQgMzQ4LjMgNjRsMTAuMiAwYzU0LjEgMCAxMDQuMSAyOC43IDEzMS4zIDc1LjRsMS41IDIuNmMxMy42IDIzLjIgMjAuNyA0OS43IDIwLjcgNzYuNkw1MTIgMzQ0YzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC0xMDQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yLjggLjItNS42IC41LTguMy0xOS40LTExLTMyLjUtMzEuOC0zMi41LTU1LjcgMC0uOCAwLTEuNiAwLTIuNEw2Ni40IDMzOGMtMzUuMyAxLjItNjUtMjYuNC02Ni4yLTYxLjd6bTYzLjQtMTguMmMtOC44IC4zLTE1LjcgNy43LTE1LjQgMTYuNnM3LjcgMTUuNyAxNi41IDE1LjRsMTYxLjUtNS42YzkuOC0uMyAxOC43IDUuMyAyMi43IDE0LjJzMi4yIDE5LjMtNC41IDI2LjRjLTIuOCAyLjktNC40IDYuNy00LjQgMTEgMCA4LjggNy4yIDE2IDE2IDE2IDkuMSAwIDE3LjQgNS4xIDIxLjUgMTMuM3MzLjIgMTcuOS0yLjMgMjUuMWMtMiAyLjctMy4yIDYtMy4yIDkuNiAwIDguOCA3LjIgMTYgMTYgMTZsMTA0IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0xMjUuNGMwLTE4LjQtNC45LTM2LjUtMTQuMi01Mi40bC0xLjUtMi42Yy0xOC42LTMyLTUyLjgtNTEuNi04OS44LTUxLjZsLTEwLjIgMGMtMTEuMyAwLTIyIDQuOC0yOS42IDEzLjFsMCAwLTE4LjQgMjAuM2MtLjYgLjYtMS4xIDEuMy0xLjcgMS45bDU3IDEzLjJjOC42IDIgMTQgMTAuNiAxMiAxOS4ycy0xMC42IDE0LTE5LjIgMTJMMjYyLjggMTcxLjggNzQuMyAxMzBjLTguNi0xLjktMTcuMiAzLjUtMTkuMSAxMi4yczMuNSAxNy4yIDEyLjIgMTkuMWwxODcuNSA0MS42YzEwLjIgMi4zIDE3LjggMTAuOSAxOC43IDIxLjRsLjEgMWMuNiA2LjYtMS41IDEzLjEtNS44IDE4LjFzLTEwLjYgNy45LTE3LjIgOC4yTDYzLjYgMjU4LjF6XCJdXG59O1xudmFyIGZhR2VtID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2dlbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE0Ml0sIFwiZjNhNVwiLCBcIk0xNjguNSA3Mmw4Ny41IDkzIDg3LjUtOTMtMTc1IDB6TTM4My45IDk5LjFsLTcyLjMgNzYuOSAxMjkgMC01Ni42LTc2Ljl6bTUwIDEyNC45TDc4LjEgMjI0IDI1NiA0MjAuMyA0MzMuOSAyMjR6TTcxLjUgMTc2bDEyOSAwLTcyLjMtNzYuOS01Ni42IDc2Ljl6bTQzNC4zIDQwLjFsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MmM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44bDI0MCAwYzcuNiAwIDE0LjggMy42IDE5LjMgOS44bDExMiAxNTJjNi44IDkuMiA2LjEgMjEuOS0xLjUgMzAuNHpcIl1cbn07XG52YXIgZmFSZWN0YW5nbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdyZWN0YW5nbGUteG1hcmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjE2NCwgXCJyZWN0YW5nbGUtdGltZXNcIiwgXCJ0aW1lcy1yZWN0YW5nbGVcIiwgXCJ3aW5kb3ctY2xvc2VcIl0sIFwiZjQxMFwiLCBcIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTMzNC4xIDQ5LjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ0LjEgNDQuMSA0NC4xIDQ0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDQuMS00NC4xLTQ0LjEgNDQuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0NC4xLTQ0LjEtNDQuMS00NC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDQuMSA0NC4xIDQ0LjEtNDQuMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHpcIl1cbn07XG52YXIgZmFSZWN0YW5nbGVUaW1lcyA9IGZhUmVjdGFuZ2xlWG1hcms7XG52YXIgZmFUaW1lc1JlY3RhbmdsZSA9IGZhUmVjdGFuZ2xlWG1hcms7XG52YXIgZmFXaW5kb3dDbG9zZSA9IGZhUmVjdGFuZ2xlWG1hcms7XG52YXIgZmFUcmFzaENhbiA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICd0cmFzaC1jYW4nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs2MTQ2MCwgXCJ0cmFzaC1hbHRcIl0sIFwiZjJlZFwiLCBcIk0xNjYuMi0xNmMtMTMuMyAwLTI1LjMgOC4zLTMwIDIwLjhMMTIwIDQ4IDI0IDQ4QzEwLjcgNDggMCA1OC43IDAgNzJTMTAuNyA5NiAyNCA5Nmw0MDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMC0xNi4yLTQzLjJDMzA3LjEtNy43IDI5NS4yLTE2IDI4MS44LTE2TDE2Ni4yLTE2ek0zMiAxNDRsMCAzMDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMDQtNDggMCAwIDMwNGMwIDguOC03LjIgMTYtMTYgMTZMOTYgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0zMDQtNDggMHptMTYwIDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNzZ6bTExMiAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNzZ6XCJdXG59O1xudmFyIGZhVHJhc2hBbHQgPSBmYVRyYXNoQ2FuO1xudmFyIGZhTGlmZVJpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnbGlmZS1yaW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWNkXCIsIFwiTTM4NS4xIDQxOS4xQzM0OS43IDQ0Ny4yIDMwNC44IDQ2NCAyNTYgNDY0cy05My43LTE2LjgtMTI5LjEtNDQuOWw4MC40LTgwLjRjMTQuMyA4LjQgMzEgMTMuMyA0OC44IDEzLjNzMzQuNS00LjggNDguOC0xMy4zbDgwLjQgODAuNHptNjguMSAuMkM0ODkuOSAzNzQuOSA1MTIgMzE4LjEgNTEyIDI1NlM0ODkuOSAxMzcuMSA0NTMuMiA5Mi43TDQ2NSA4MWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQxOS4zIDU4LjhDMzc0LjkgMjIuMSAzMTguMSAwIDI1NiAwUzEzNy4xIDIyLjEgOTIuNyA1OC44TDgxIDQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMzNy43IDcxLjYgNDcgODFMNTguOCA5Mi43QzIyLjEgMTM3LjEgMCAxOTMuOSAwIDI1NlMyMi4xIDM3NC45IDU4LjggNDE5LjNMNDcgNDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTEuOC0xMS44QzEzNy4xIDQ4OS45IDE5My45IDUxMiAyNTYgNTEyczExOC45LTIyLjEgMTYzLjMtNTguOEw0MzEgNDY1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTEuOC0xMS44em0tMzQuMS0zNC4xbC04MC40LTgwLjRjOC40LTE0LjMgMTMuMy0zMSAxMy4zLTQ4LjhzLTQuOC0zNC41LTEzLjMtNDguOGw4MC40LTgwLjRDNDQ3LjIgMTYyLjMgNDY0IDIwNy4yIDQ2NCAyNTZzLTE2LjggOTMuNy00NC45IDEyOS4xek0zODUuMSA5Mi45bC04MC40IDgwLjRjLTE0LjMtOC40LTMxLTEzLjMtNDguOC0xMy4zcy0zNC41IDQuOC00OC44IDEzLjNMMTI2LjkgOTIuOUMxNjIuMyA2NC44IDIwNy4yIDQ4IDI1NiA0OHM5My43IDE2LjggMTI5LjEgNDQuOXpNMTczLjMgMzA0LjhMOTIuOSAzODUuMUM2NC44IDM0OS43IDQ4IDMwNC44IDQ4IDI1NnMxNi44LTkzLjcgNDQuOS0xMjkuMWw4MC40IDgwLjRjLTguNCAxNC4zLTEzLjMgMzEtMTMuMyA0OC44czQuOCAzNC41IDEzLjMgNDguOHpNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwelwiXVxufTtcbnZhciBmYUNvcHlyaWdodCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjb3B5cmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxNjldLCBcImYxZjlcIiwgXCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDUuMSAzMDYuOWMtMjguMS0yOC4xLTI4LjEtNzMuNyAwLTEwMS44czczLjctMjguMSAxMDEuOCAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtNDYuOS00Ni45LTEyMi44LTQ2LjktMTY5LjcgMHMtNDYuOSAxMjIuOCAwIDE2OS43IDEyMi44IDQ2LjkgMTY5LjcgMGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwYy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDB6XCJdXG59O1xudmFyIGZhQ2lyY2xlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxODQwLCBcImFycm93LWFsdC1jaXJjbGUtbGVmdFwiXSwgXCJmMzU5XCIsIFwiTTQ4IDI1NmEyMDggMjA4IDAgMSAxIDQxNiAwIDIwOCAyMDggMCAxIDEgLTQxNiAwem00NjQgMGEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMTA0IDEwNGM0LjYgNC42IDExLjUgNS45IDE3LjQgMy41czkuOS04LjMgOS45LTE0LjhsMC03MiAxMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMDQgMCAwLTcyYzAtNi41LTMuOS0xMi4zLTkuOS0xNC44cy0xMi45LTEuMS0xNy40IDMuNWwtMTA0IDEwNHpcIl1cbn07XG52YXIgZmFBcnJvd0FsdENpcmNsZUxlZnQgPSBmYUNpcmNsZUxlZnQ7XG52YXIgZmFDYWxlbmRhciA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhcicsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODE5NywgMTI4MTk4XSwgXCJmMTMzXCIsIFwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHpNNDggMjI0bDAgMTkyYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xOTItMzUyIDB6XCJdXG59O1xudmFyIGZhRmFjZUZyb3duT3BlbiA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWZyb3duLW9wZW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NTAsIFwiZnJvd24tb3BlblwiXSwgXCJmNTdhXCIsIFwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTgyLjQgMzgyLjVjLTEyLjQgNS4yLTI2LjUtNC4xLTIxLjEtMTYuNCAxNi0zNi42IDUyLjQtNjIuMSA5NC44LTYyLjFzNzguOCAyNS42IDk0LjggNjIuMWM1LjQgMTIuMy04LjcgMjEuNi0yMS4xIDE2LjQtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xudmFyIGZhRnJvd25PcGVuID0gZmFGYWNlRnJvd25PcGVuO1xudmFyIGZhQ2hhcnRCYXIgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY2hhcnQtYmFyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJiYXItY2hhcnRcIl0sIFwiZjA4MFwiLCBcIk00OCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDQyLjcgMCA1NkwwIDQwMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4MCA0MzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDQ4IDU2em0xMDQgNzJsMjA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTUyIDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0em0wIDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI3MiAwelwiXVxufTtcbnZhciBmYUJhckNoYXJ0ID0gZmFDaGFydEJhcjtcbnZhciBmYUhvdXNlID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2hvdXNlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTY4LCA2MzQ5OCwgNjM1MDAsIFwiaG9tZVwiLCBcImhvbWUtYWx0XCIsIFwiaG9tZS1sZy1hbHRcIl0sIFwiZjAxNVwiLCBcIk0yNDAgNi4xYzkuMS04LjIgMjIuOS04LjIgMzIgMGwyMzIgMjA4YzkuOSA4LjggMTAuNyAyNCAxLjggMzMuOXMtMjQgMTAuNy0zMy45IDEuOGwtOC03LjIgMCAyMDUuM2MwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjA1LjMtOCA3LjJjLTkuOSA4LjgtMjUgOC0zMy45LTEuOHMtOC0yNSAxLjgtMzMuOUwyNDAgNi4xem0xNiA1MC4xTDk2IDE5OS43IDk2IDQ0OGMwIDguOCA3LjIgMTYgMTYgMTZsNDggMCAwLTEwNGMwLTM5LjggMzIuMi03MiA3Mi03Mmw0OCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMTA0IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQ4LjMtMTYwLTE0My40ek0yMDggNDY0bDk2IDAgMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0elwiXVxufTtcbnZhciBmYUhvbWUgPSBmYUhvdXNlO1xudmFyIGZhSG9tZUFsdCA9IGZhSG91c2U7XG52YXIgZmFIb21lTGdBbHQgPSBmYUhvdXNlO1xudmFyIGZhRmFjZUZyb3duID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZhY2UtZnJvd24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5Nzg1LCBcImZyb3duXCJdLCBcImYxMTlcIiwgXCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0zMzQuNyAzODQuNkMzMTkuNyAzNjkgMjkzLjYgMzUyIDI1NiAzNTJzLTYzLjcgMTctNzguNyAzMi42Yy05LjIgOS42LTI0LjQgOS45LTMzLjkgLjdzLTkuOS0yNC40LS43LTMzLjljMjIuMS0yMyA2MC00Ny40IDExMy4zLTQ3LjRzOTEuMiAyNC40IDExMy4zIDQ3LjRjOS4yIDkuNiA4LjkgMjQuOC0uNyAzMy45cy0yNC44IDguOS0zMy45LS43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xudmFyIGZhRnJvd24gPSBmYUZhY2VGcm93bjtcbnZhciBmYVVzZXIgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAndXNlcicsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODEwMCwgNjIxNDQsIDYyNDcwLCBcInVzZXItYWx0XCIsIFwidXNlci1sYXJnZVwiXSwgXCJmMDA3XCIsIFwiTTE0NCAxMjhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwem0yMDggMGExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAwek00OCA0ODBjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsOTYgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLThjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZsLTk2IDBDNzguOCAzMDQgMCAzODIuOCAwIDQ4MGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTh6XCJdXG59O1xudmFyIGZhVXNlckFsdCA9IGZhVXNlcjtcbnZhciBmYVVzZXJMYXJnZSA9IGZhVXNlcjtcbnZhciBmYVNub3dmbGFrZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdzbm93Zmxha2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMDA1MiwgMTAwNTRdLCBcImYyZGNcIiwgXCJNMjgwLjEtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDc4LjEtMjMtMjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTcgNTcgMCA3Ni41LTY2LjItMzguMi0yMC45LTc3LjhjLTMuNC0xMi44LTE2LjYtMjAuNC0yOS40LTE3Uzk1LjIgOTggOTguNyAxMTAuOGw4LjQgMzEuNS02Ny42LTM5QzI4IDk2LjYgMTMuMyAxMDAuNSA2LjcgMTEyUzQgMTM4LjIgMTUuNSAxNDQuOGw2Ny42IDM5LTMxLjUgOC40Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w3Ny44LTIwLjkgNjYuMiAzOC4yLTY2LjIgMzguMi03Ny44LTIwLjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDMxLjUgOC40LTY3LjYgMzlDNCAzNzMuOCAuMSAzODguNSA2LjcgNDAwczIxLjMgMTUuNCAzMi44IDguOGw2Ny42LTM5LTguNCAzMS41Yy0zLjQgMTIuOCA0LjIgMjYgMTcgMjkuNHMyNi00LjIgMjkuNC0xN2wyMC45LTc3LjggNjYuMi0zOC4yIDAgNzYuNS01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDIzLTIzIDAgNzguMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzguMSAyMyAyM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU3LTU3IDAtNzYuNSA2Ni4yIDM4LjIgMjAuOSA3Ny44YzMuNCAxMi44IDE2LjYgMjAuNCAyOS40IDE3czIwLjQtMTYuNiAxNy0yOS40bC04LjQtMzEuNSA2Ny42IDM5YzExLjUgNi42IDI2LjIgMi43IDMyLjgtOC44czIuNy0yNi4yLTguOC0zMi44bC02Ny42LTM5IDMxLjUtOC40YzEyLjgtMy40IDIwLjQtMTYuNiAxNy0yOS40cy0xNi42LTIwLjQtMjkuNC0xN2wtNzcuOCAyMC45LTY2LjItMzguMiA2Ni4yLTM4LjIgNzcuOCAyMC45YzEyLjggMy40IDI2LTQuMiAyOS40LTE3cy00LjItMjYtMTctMjkuNGwtMzEuNS04LjQgNjcuNi0zOWMxMS41LTYuNiAxNS40LTIxLjMgOC44LTMyLjhzLTIxLjMtMTUuNC0zMi44LTguOGwtNjcuNiAzOSA4LjQtMzEuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTIwLjkgNzcuOC02Ni4yIDM4LjIgMC03Ni41IDU3LTU3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzIDAtNzguMXpcIl1cbn07XG52YXIgZmFCb29rbWFyayA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdib29rbWFyaycsXG4gIGljb246IFszODQsIDUxMiwgWzEyODI3OCwgNjE1OTFdLCBcImYwMmVcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA0MTcuMWMwIDI1LjYtMjguNSA0MC44LTQ5LjggMjYuNkwxOTIgNDEyLjggNDkuOCA1MDcuN0MyOC41IDUyMS45IDAgNTA2LjYgMCA0ODEuMUwwIDY0ek02NCA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg3LjIgMTE3LjQtNzguMmMxNi4xLTEwLjcgMzcuMS0xMC43IDUzLjIgMEwzMzYgNDUxLjIgMzM2IDY0YzAtOC44LTcuMi0xNi0xNi0xNkw2NCA0OHpcIl1cbn07XG52YXIgZmFTcXVhcmVDYXJldExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnc3F1YXJlLWNhcmV0LWxlZnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImNhcmV0LXNxdWFyZS1sZWZ0XCJdLCBcImYxOTFcIiwgXCJNNDggNDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjB6bTE2IDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MHptNjQtMjI0YzAtNi43IDIuOC0xMyA3LjctMTcuNmwxMTItMTA0YzctNi41IDE3LjItOC4yIDI1LjktNC40UzI4OCAxNDIuNSAyODggMTUybDAgMjA4YzAgOS41LTUuNyAxOC4yLTE0LjQgMjJzLTE4LjkgMi4xLTI1LjktNC40bC0xMTItMTA0Yy00LjktNC41LTcuNy0xMC45LTcuNy0xNy42elwiXVxufTtcbnZhciBmYUNhcmV0U3F1YXJlTGVmdCA9IGZhU3F1YXJlQ2FyZXRMZWZ0O1xudmFyIGZhSGFuZHNoYWtlID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2hhbmRzaGFrZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyOTMwOSwgNjI2NjIsIFwiaGFuZHNoYWtlLWFsdFwiLCBcImhhbmRzaGFrZS1zaW1wbGVcIl0sIFwiZjJiNVwiLCBcIk01OTguMSA3NS40YzEwLjctNy44IDEzLjEtMjIuOCA1LjMtMzMuNXMtMjIuOC0xMy4xLTMzLjUtNS4zbC03NC41IDU0LjItOS45LTYuNkM0NjUuOCA3MSA0NDIuNiA2NCA0MTguOSA2NGwtNTkuMiAwLS40IDAtMTQzLjYgMGMtMjYuNyAwLTUyLjUgOC45LTczLjQgMjUuMUw3MC4xIDM2LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zcy01LjQgMjUuNyA1LjMgMzMuNWw4OCA2NGM5LjYgNi45IDIyLjcgNS45IDMxLjEtMi40bDMuOS0zLjljMTMuNS0xMy41IDMxLjgtMjEuMSA1MC45LTIxLjFsNDYuMyAwLTkxLjcgOTEuN2MtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZsLjggLjhDMjE4IDMwOCAyOTQgMzA4IDM0MC45IDI2MS4xbDI3LjEtMjcuMSA5Ny44IDk3LjhjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTkuOCA5LjgtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMjggMjhjLTE3LjUgMTAuNC0zNy4yIDE2LjctNTcuNiAxOC41TDMxMyAzOTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTUgMTUtMy44IDBjLTM2LjEgMC03MC43LTE0LjMtOTYuMi0zOS44TDY1IDI3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwxNjAuMiA0NDIuMWMzNC41IDM0LjUgODEuMyA1My45IDEzMC4xIDUzLjlsNTEuOCAwIDEgMSAxLTEgNS43IDBjNDguOCAwIDk1LjYtMTkuNCAxMzAuMS01My45bDE5LjktMTkuOWMxLjItMS4yIDIuMy0yLjMgMy40LTMuNSAuNy0uNSAxLjMtMS4xIDEuOS0xLjdMNjA5IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01My44IDUzLjhjLTQuMi0xMi44LTExLjMtMjQuOS0yMS41LTM1LjFMMzg1IDE4M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTQ0LjEgNDQuMWMtMjYuNSAyNi41LTY4LjUgMjgtOTYuNyA0LjZsOTguNy05OC43YzEzLjQtMTMuNCAzMS42LTIxIDUwLjYtMjEuMWw4LjUgMCAuMiAwIDUwLjggMGMxNC4yIDAgMjguMSA0LjIgMzkuOSAxMi4xTDQ4Mi43IDE0MGM4LjQgNS42IDE5LjMgNS4zIDI3LjQtLjZsODgtNjR6XCJdXG59O1xudmFyIGZhSGFuZHNoYWtlQWx0ID0gZmFIYW5kc2hha2U7XG52YXIgZmFIYW5kc2hha2VTaW1wbGUgPSBmYUhhbmRzaGFrZTtcbnZhciBmYUZhY2VTbWlsZVdpbmsgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZmFjZS1zbWlsZS13aW5rJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTIxLCBcInNtaWxlLXdpbmtcIl0sIFwiZjRkYVwiLCBcIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6XCJdXG59O1xudmFyIGZhU21pbGVXaW5rID0gZmFGYWNlU21pbGVXaW5rO1xudmFyIGZhRmFjZUdyaW5TcXVpbnRUZWFycyA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tc3F1aW50LXRlYXJzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5MzE1LCBcImdyaW4tc3F1aW50LXRlYXJzXCJdLCBcImY1ODZcIiwgXCJNNDAzLjEgNDAzLjFjNjcuMi02Ny4yIDc4LjgtMTY4LjkgMzQuOS0yNDhsMzYuNy01LjJjNC41LS42IDguOC0xLjYgMTMuMS0yLjggNDQuNiA5NC45IDI3LjcgMjExLjUtNTAuNyAyOTBzLTE5NS4xIDk1LjMtMjkwIDUwLjdjMS4yLTQuMiAyLjEtOC42IDIuOC0xMy4xbDUuMi0zNi43Yzc5LjEgNDMuOSAxODAuOCAzMi4zIDI0OC0zNC45ek03NSA3NWM3OC40LTc4LjQgMTk1LjEtOTUuMyAyOTAtNTAuNy0xLjIgNC4yLTIuMSA4LjYtMi44IDEzLjFsLTUuMiAzNi43Yy03OS4xLTQzLjktMTgwLjgtMzIuMy0yNDggMzQuOXMtNzguOCAxNjguOS0zNC45IDI0OGwtMzYuNyA1LjJjLTQuNSAuNi04LjggMS42LTEzLjEgMi44LTQ0LjYtOTQuOS0yNy43LTIxMS41IDUwLjctMjkwek0zNzAuOSAyMDYuNWM1LjgtMTAuOSAyMS4xLTEyLjQgMjYuNC0xLjMgMjUuNiA1My41IDE2LjIgMTE5LjYtMjguMiAxNjMuOS00NC4zIDQ0LjMtMTEwLjMgNTMuNy0xNjMuOCAyOC4yLTExLjEtNS4zLTkuNi0yMC42IDEuMy0yNi40IDMyLTE3LjEgNjQuMi00MC44IDkzLjgtNzAuNCAyOS43LTI5LjcgNTMuNC02MS45IDcwLjUtOTR6TTkzLjMgMjgxLjljLTEuNy04IDIuOS0xNS45IDEwLjYtMTguNGw4NC42LTI4YzUuNy0xLjkgMTIuMS0uNCAxNi4zIDMuOXM1LjggMTAuNiAzLjkgMTYuM2wtMjggODQuNmMtMi42IDcuNy0xMC41IDEyLjMtMTguNCAxMC42cy0xMy40LTktMTIuNy0xNy4xbDMuOS00My4xLTQzLjEgMy45Yy04LjEgLjctMTUuNS00LjctMTcuMS0xMi43ek0yOTQuNiAxMTAuNGwtMy45IDQzLjEgNDMuMS0zLjljOC4xLS43IDE1LjUgNC43IDE3LjEgMTIuN3MtMi45IDE1LjktMTAuNiAxOC40bC04NC42IDI4Yy01LjcgMS45LTEyLjEgLjQtMTYuMy0zLjlzLTUuOC0xMC42LTMuOS0xNi4zbDI4LTg0LjZjMi42LTcuNyAxMC41LTEyLjMgMTguNC0xMC42czEzLjQgOSAxMi43IDE3LjF6TTUxMiA1MS40YzAgMjUuNi0xOC44IDQ3LjMtNDQuMSA1MC45TDQyMS4xIDEwOWMtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQxMy4zIDE4LjggNDM1IDAgNDYwLjYgMCA0ODkgMCA1MTIgMjMgNTEyIDUxLjR6TTQ0LjEgNDA5LjdMOTAuOSA0MDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDQ5My4yIDc3IDUxMiA1MS40IDUxMiAyMyA1MTIgMCA0ODkgMCA0NjAuNiAwIDQzNSAxOC44IDQxMy4zIDQ0LjEgNDA5Ljd6XCJdXG59O1xudmFyIGZhR3JpblNxdWludFRlYXJzID0gZmFGYWNlR3JpblNxdWludFRlYXJzO1xudmFyIGZhRmlsZUF1ZGlvID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZpbGUtYXVkaW8nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzdcIiwgXCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNMjIxLjkgMjY3LjZjLTQuNyAxMC0uMyAyMS45IDkuNyAyNi42IDE5LjIgOC45IDMyLjQgMjguMyAzMi40IDUwLjhzLTEzLjIgNDEuOS0zMi40IDUwLjhjLTEwIDQuNy0xNC40IDE2LjYtOS43IDI2LjZzMTYuNiAxNC40IDI2LjYgOS43QzI4MS4yIDQxNi44IDMwNCAzODMuNiAzMDQgMzQ1cy0yMi44LTcxLjktNTUuNi04Ny4xYy0xMC00LjctMjEuOS0uMy0yNi42IDkuN3pNMTA0IDMwNWMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwIDI3LjIgMzRjMyAzLjggNy42IDYgMTIuNSA2bC4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtLjMgMGMtNC45IDAtOS41IDIuMi0xMi41IDZsLTI3LjIgMzQtMTYgMHpNMjIzLjMgMzczYzkuOS01LjQgMTYuNy0xNiAxNi43LTI4LjFzLTYuNy0yMi43LTE2LjctMjguMWMtNy44LTQuMi0xNS4zIDMuMy0xNS4zIDEyLjFsMCAzMmMwIDguOCA3LjYgMTYuMyAxNS4zIDEyLjF6XCJdXG59O1xudmFyIGZhQ2FsZW5kYXJYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci14bWFyaycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiY2FsZW5kYXItdGltZXNcIl0sIFwiZjI3M1wiLCBcIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0xNzEuOSA5Mi4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjkgMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTMzLjktMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45LTMzLjktMzMuOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOSAzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDB6XCJdXG59O1xudmFyIGZhQ2FsZW5kYXJUaW1lcyA9IGZhQ2FsZW5kYXJYbWFyaztcbnZhciBmYUNpcmNsZURvd24gPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY2lyY2xlLWRvd24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MTQ2NiwgXCJhcnJvdy1hbHQtY2lyY2xlLWRvd25cIl0sIFwiZjM1OFwiLCBcIk0yNTYgNDY0YTIwOCAyMDggMCAxIDEgMC00MTYgMjA4IDIwOCAwIDEgMSAwIDQxNnpNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0yNDQuNyAzODcuM2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGwxMDQtMTA0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTMzY2LjUgMjU2IDM2MCAyNTZsLTcyIDAgMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTE2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0LTcyIDBjLTYuNSAwLTEyLjMgMy45LTE0LjggOS45cy0xLjEgMTIuOSAzLjUgMTcuNGwxMDQgMTA0elwiXVxufTtcbnZhciBmYUFycm93QWx0Q2lyY2xlRG93biA9IGZhQ2lyY2xlRG93bjtcbnZhciBmYUZpbGVMaW5lcyA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWxpbmVzJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4NDQxLCAxMjg0NjIsIDYxNjg2LCBcImZpbGUtYWx0XCIsIFwiZmlsZS10ZXh0XCJdLCBcImYxNWNcIiwgXCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptNTYgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6XCJdXG59O1xudmFyIGZhRmlsZUFsdCA9IGZhRmlsZUxpbmVzO1xudmFyIGZhRmlsZVRleHQgPSBmYUZpbGVMaW5lcztcbnZhciBmYUNvbW1lbnRzID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2NvbW1lbnRzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4NDkwLCA2MTY3MF0sIFwiZjA4NlwiLCBcIk03Ni4yIDI1OC43YzYuMS0xNS4yIDQtMzIuNi01LjYtNDUuOS0xNC41LTIwLjEtMjIuNi00My43LTIyLjYtNjguOCAwLTY2LjggNjAuNS0xMjggMTQ0LTEyOHMxNDQgNjEuMiAxNDQgMTI4LTYwLjUgMTI4LTE0NCAxMjhjLTE1LjkgMC0zMS4xLTIuMy00NS4zLTYuNS0xMC4zLTMuMS0yMS40LTIuNS0zMS40IDEuNWwtNTAuNCAyMC4yIDExLjQtMjguNXpNMCAxNDRjMCAzNS44IDExLjYgNjkuMSAzMS43IDk2LjhMMS45IDMxNS4yYy0xLjMgMy4yLTEuOSA2LjYtMS45IDEwIDAgMTQuOCAxMiAyNi44IDI2LjggMjYuOCAzLjQgMCA2LjgtLjcgMTAtMS45bDk2LjMtMzguNWMxOC42IDUuNSAzOC40IDguNCA1OC45IDguNCAxMDYgMCAxOTItNzguOCAxOTItMTc2UzI5OC0zMiAxOTItMzIgMCA0Ni44IDAgMTQ0ek0zODQgNTEyYzIwLjYgMCA0MC4zLTMgNTguOS04LjRsOTYuMyAzOC41YzMuMiAxLjMgNi42IDEuOSAxMCAxLjkgMTQuOCAwIDI2LjgtMTIgMjYuOC0yNi44IDAtMy40LS43LTYuOC0xLjktMTBsLTI5LjctNzQuNGMyMC0yNy44IDMxLjctNjEuMSAzMS43LTk2LjggMC04Mi40LTYxLjctMTUxLjUtMTQ1LTE3MC43LTEuNiAxNi4zLTUuMSAzMS45LTEwLjEgNDYuOSA2My45IDE0LjggMTA3LjIgNjcuMyAxMDcuMiAxMjMuOSAwIDI1LjEtOC4xIDQ4LjctMjIuNiA2OC44LTkuNiAxMy4zLTExLjcgMzAuNi01LjYgNDUuOWwxMS40IDI4LjUtNTAuNC0yMC4yYy0xMC00LTIxLjEtNC41LTMxLjQtMS41LTE0LjIgNC4yLTI5LjQgNi41LTQ1LjMgNi41LTcyLjIgMC0xMjcuMS00NS43LTE0MC43LTEwMS4yLTE1LjYgMy4yLTMxLjcgNS00OC4xIDUuMiAxNi40IDgxLjkgOTQuNyAxNDQgMTg4LjggMTQ0elwiXVxufTtcbnZhciBmYUNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2NpcmNsZS1jaGVjaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxNTMzLCBcImNoZWNrLWNpcmNsZVwiXSwgXCJmMDU4XCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTQ2NGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6bTcwLjcgMTIxLjljNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zIDEwLjcgNy44IDEzLjEgMjIuOCA1LjMgMzMuNUwyNDMuNCAzNjYuMWMtNC4xIDUuNy0xMC41IDkuMy0xNy41IDkuOC03IC41LTEzLjktMi0xOC44LTYuOWwtNTUuOS01NS45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzYgMzYgMTA1LjYtMTQ1LjJ6XCJdXG59O1xudmFyIGZhQ2hlY2tDaXJjbGUgPSBmYUNpcmNsZUNoZWNrO1xudmFyIGZhTW9vbiA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdtb29uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3NzY5LCA5MjE0XSwgXCJmMTg2XCIsIFwiTTIzOS4zIDQ4LjdjLTEwNy4xIDguNS0xOTEuMyA5OC4xLTE5MS4zIDIwNy4zIDAgMTE0LjkgOTMuMSAyMDggMjA4IDIwOCAzMy4zIDAgNjQuNy03LjggOTIuNi0yMS43LTEwMy40LTIzLjQtMTgwLjYtMTE1LjgtMTgwLjYtMjI2LjMgMC02NS44IDI3LjQtMTI1LjEgNzEuMy0xNjcuM3pNMCAyNTZjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiAxOS40IDAgMzguNCAyLjIgNTYuNyA2LjMgOS45IDIuMiAxNy4zIDEwLjUgMTguNSAyMC41cy00IDE5LjgtMTMuMSAyNC40Yy02MC42IDMwLjItMTAyLjEgOTIuNy0xMDIuMSAxNjQuOCAwIDEwMS42IDgyLjQgMTg0IDE4NCAxODQgNSAwIDkuOS0uMiAxNC44LS42IDEwLjEtLjggMTkuNiA0LjggMjMuOCAxNC4xczIgMjAuMS01LjMgMjcuMUMzODcuMyA0ODQuOCAzMjQuOCA1MTIgMjU2IDUxMiAxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NnpcIl1cbn07XG52YXIgZmFDbG9zZWRDYXB0aW9uaW5nID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2Nsb3NlZC1jYXB0aW9uaW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjBhXCIsIFwiTTQ0OCAxMTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6TTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em04OCAxNDRsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODBjMC00LjQgMy42LTggOC04em0xNjggOGMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODB6XCJdXG59O1xudmFyIGZhSW1hZ2VzID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ltYWdlcycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjMwMlwiLCBcIk00ODAgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMzIwIDB6TTE2MCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTYwIDMyem04MCAxMTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTQwLjcgMy44Yy00LjMtNy4zLTEyLjItMTEuOC0yMC43LTExLjhzLTE2LjQgNC41LTIwLjcgMTEuOGwtNDYuNSA3OS0xNy4yLTI0LjZjLTQuNS02LjQtMTEuOC0xMC4yLTE5LjctMTAuMnMtMTUuMiAzLjgtMTkuNyAxMC4ybC01NiA4MGMtNS4xIDcuMy01LjggMTYuOS0xLjYgMjQuOFMxOTEuMSAzMjAgMjAwIDMyMGwyNDAgMGM4LjYgMCAxNi42LTQuNiAyMC44LTEyLjFzNC4yLTE2LjctLjEtMjQuMWwtODAtMTM2ek00OCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMzguNyAwIDE1MkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNjAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI5NnpcIl1cbn07XG52YXIgZmFDaXJjbGVSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MTgzOCwgXCJhcnJvdy1hbHQtY2lyY2xlLXJpZ2h0XCJdLCBcImYzNWFcIiwgXCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwem0zODcuMyAxMS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC0xMDQtMTA0Yy00LjYtNC42LTExLjUtNS45LTE3LjQtMy41UzI1NiAxNDUuNSAyNTYgMTUybDAgNzItMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTA0IDAgMCA3MmMwIDYuNSAzLjkgMTIuMyA5LjkgMTQuOHMxMi45IDEuMSAxNy40LTMuNWwxMDQtMTA0elwiXVxufTtcbnZhciBmYUFycm93QWx0Q2lyY2xlUmlnaHQgPSBmYUNpcmNsZVJpZ2h0O1xudmFyIGZhSWRDYXJkID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2lkLWNhcmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs2MjE0NywgXCJkcml2ZXJzLWxpY2Vuc2VcIl0sIFwiZjJjMlwiLCBcIk00OCA0MTZsMC0yNTYgNDgwIDAgMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjA4IDMxMmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMzc2IDIwOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6XCJdXG59O1xudmFyIGZhRHJpdmVyc0xpY2Vuc2UgPSBmYUlkQ2FyZDtcbnZhciBmYUNpcmNsZVBsYXkgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY2lyY2xlLXBsYXknLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MTQ2OSwgXCJwbGF5LWNpcmNsZVwiXSwgXCJmMTQ0XCIsIFwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjEyLjUgMTQ3LjVjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNVMxNzYgMTU5LjMgMTc2IDE2OGwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OHpNMjk4IDI1NmwtNzQgNDUuMiAwLTkwLjQgNzQgNDUuMnpcIl1cbn07XG52YXIgZmFQbGF5Q2lyY2xlID0gZmFDaXJjbGVQbGF5O1xudmFyIGZhRmFjZUxhdWdoQmVhbSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWxhdWdoLWJlYW0nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MTMsIFwibGF1Z2gtYmVhbVwiXSwgXCJmNTlhXCIsIFwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTE4LjMgNTguMmMtNC4yLTEzLjcgNy4xLTI2LjIgMjEuNC0yNi4ybDIzMi42IDBjMTQuMyAwIDI1LjYgMTIuNSAyMS40IDI2LjItMTggNTguOS03Mi45IDEwMS44LTEzNy43IDEwMS44UzEzNi4zIDM3My4xIDExOC4zIDMxNC4yek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHpcIl1cbn07XG52YXIgZmFMYXVnaEJlYW0gPSBmYUZhY2VMYXVnaEJlYW07XG52YXIgZmFBZGRyZXNzQm9vayA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdhZGRyZXNzLWJvb2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjEzOCwgXCJjb250YWN0LWJvb2tcIl0sIFwiZjJiOVwiLCBcIk0zODQgNDhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw5NiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw4MCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMjg4IDB6TTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHpNMjQwIDI0OGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptLTMyIDQwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwek01MTIgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6TTQ5NiAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6bTE2IDE0NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpcIl1cbn07XG52YXIgZmFDb250YWN0Qm9vayA9IGZhQWRkcmVzc0Jvb2s7XG52YXIgZmFIb3VyZ2xhc3MgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnaG91cmdsYXNzJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbOTIwMywgNjIwMzIsIFwiaG91cmdsYXNzLWVtcHR5XCJdLCBcImYyNTRcIiwgXCJNMjQgMEMxMC43IDAgMCAxMC43IDAgMjRTMTAuNyA0OCAyNCA0OGw4IDAgMCAxOWMwIDQwLjMgMTYgNzkgNDQuNSAxMDcuNWw4MS41IDgxLjUtODEuNSA4MS41QzQ4IDM2NiAzMiA0MDQuNyAzMiA0NDVsMCAxOS04IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzM2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTggMCAwLTE5YzAtNDAuMy0xNi03OS00NC41LTEwNy41bC04MS41LTgxLjUgODEuNS04MS41QzMzNiAxNDYgMzUyIDEwNy4zIDM1MiA2N2wwLTE5IDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzNzMuMyAwIDM2MCAwTDI0IDB6TTE5MiAyODkuOWw4MS41IDgxLjVDMjkzIDM5MSAzMDQgNDE3LjQgMzA0IDQ0NWwwIDE5LTIyNCAwIDAtMTljMC0yNy42IDExLTU0IDMwLjUtNzMuNUwxOTIgMjg5Ljl6bTAtNjcuOWwtODEuNS04MS41QzkxIDEyMSA4MCA5NC42IDgwIDY3bDAtMTkgMjI0IDAgMCAxOWMwIDI3LjYtMTEgNTQtMzAuNSA3My41TDE5MiAyMjIuMXpcIl1cbn07XG52YXIgZmFIb3VyZ2xhc3NFbXB0eSA9IGZhSG91cmdsYXNzO1xudmFyIGZhSGVhZHBob25lcyA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdoZWFkcGhvbmVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3OTExLCA2Mjg2MywgXCJoZWFkcGhvbmVzLWFsdFwiLCBcImhlYWRwaG9uZXMtc2ltcGxlXCJdLCBcImYwMjVcIiwgXCJNNDggMjI0YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2czE3NiA3OC44IDE3NiAxNzZsMCA0NC44Yy0xNC4xLTguMi0zMC41LTEyLjgtNDgtMTIuOGwtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMjhjMCAyNi41IDIxLjUgNDggNDggNDhsMTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTYwQzQ0OCAxMDAuMyAzNDcuNyAwIDIyNCAwUzAgMTAwLjMgMCAyMjRMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTI4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwYy0xNy41IDAtMzMuOSA0LjctNDggMTIuOEw0OCAyMjR6bTAgMTI4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMCAxMjgtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zMnptMzUyIDBsMCAzMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYgMCAwLTEyOCAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4elwiXVxufTtcbnZhciBmYUhlYWRwaG9uZXNBbHQgPSBmYUhlYWRwaG9uZXM7XG52YXIgZmFIZWFkcGhvbmVzU2ltcGxlID0gZmFIZWFkcGhvbmVzO1xudmFyIGZhRmlsZVBvd2VycG9pbnQgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZmlsZS1wb3dlcnBvaW50JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWM0XCIsIFwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTg4IDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDI4IDBjMzcuNiAwIDY4LTMwLjQgNjgtNjhzLTMwLjQtNjgtNjgtNjhsLTUyIDB6bTUyIDg4bC0yOCAwIDAtNDAgMjggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjB6XCJdXG59O1xudmFyIGZhV2luZG93TWF4aW1pemUgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnd2luZG93LW1heGltaXplJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NDcwXSwgXCJmMmQwXCIsIFwiTTQ4IDIyNGwwIDE2MGMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTYwLTQxNiAwek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4elwiXVxufTtcbnZhciBmYUNvbW1lbnREb3RzID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2NvbW1lbnQtZG90cycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE3MiwgNjIwNzUsIFwiY29tbWVudGluZ1wiXSwgXCJmNGFkXCIsIFwiTTAgMjQwYzAgNTQuNCAxOS4zIDEwNC42IDUxLjkgMTQ0LjlMMy4xIDQ3NC4zYy0yIDMuNy0zLjEgNy45LTMuMSAxMi4yIDAgMTQuMSAxMS40IDI1LjUgMjUuNSAyNS41IDQgMCA3LjgtLjYgMTEuNS0yLjFMMTUzLjQgNDYwYzMxLjQgMTIuOSA2Ni4xIDIwIDEwMi42IDIwIDE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwek05NCA0MDcuOWM5LjMtMTcuMSA3LjQtMzguMS00LjgtNTMuMi0yNi4xLTMyLjMtNDEuMi03MS45LTQxLjItMTE0LjcgMC0xMDMuMiA5MC4yLTE5MiAyMDgtMTkyczIwOCA4OC44IDIwOCAxOTItOTAuMiAxOTItMjA4IDE5MmMtMzAuMiAwLTU4LjctNS45LTg0LjMtMTYuNC0xMS45LTQuOS0yNS4zLTQuOC0zNy4xIC4zTDc2IDQ0MC45IDk0IDQwNy45ek0xNDQgMjcyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTQ0LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTgwIDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFDb21tZW50aW5nID0gZmFDb21tZW50RG90cztcbnZhciBmYUZhY2VHcmluVG9uZ3VlV2luayA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tdG9uZ3VlLXdpbmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NDAsIFwiZ3Jpbi10b25ndWUtd2lua1wiXSwgXCJmNThiXCIsIFwiTTM2Ni45IDQzMmMuOC01LjIgMS4xLTEwLjYgMS4xLTE2bDAtNTMuNWMxMC4yLTEyLjYgMTguMy0yNi45IDIzLjgtNDIuNSA0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3LjgtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggNS41IDE1LjUgMTMuNiAyOS45IDIzLjggNDIuNGwwIDUzLjVjMCA1LjQgLjQgMTAuOCAxLjEgMTYtNTguNC0zNi44LTk3LjEtMTAxLjktOTcuMS0xNzYgMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4czIwOCA5My4xIDIwOCAyMDhjMCA3NC4xLTM4LjggMTM5LjItOTcuMSAxNzZ6bS0zOC44IDY5LjdDNDM0LjQgNDcwLjYgNTEyIDM3Mi4zIDUxMiAyNTYgNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NkMwIDM3Mi4zIDc3LjYgNDcwLjYgMTgzLjkgNTAxLjcgMjAzLjQgNTE4LjEgMjI4LjUgNTI4IDI1NiA1MjhzNTIuNi05LjkgNzIuMS0yNi4zek0zMjAgMzc4LjZsMCAzNy40YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0bDAtMzcuNGMwLTE0LjcgMTEuOS0yNi42IDI2LjYtMjYuNmwyIDBjMTEuMyAwIDIxLjEgNy45IDIzLjYgMTguOSAyLjggMTIuNiAyMC44IDEyLjYgMjMuNiAwIDIuNS0xMS4xIDEyLjMtMTguOSAyMy42LTE4LjlsMiAwYzE0LjcgMCAyNi42IDExLjkgMjYuNiAyNi42ek0xMzIgMjMyYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwem0yMjguNC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0yODggMjA4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCAwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHpcIl1cbn07XG52YXIgZmFHcmluVG9uZ3VlV2luayA9IGZhRmFjZUdyaW5Ub25ndWVXaW5rO1xudmFyIGZhSG91cmdsYXNzSGFsZiA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdob3VyZ2xhc3MtaGFsZicsXG4gIGljb246IFszODQsIDUxMiwgW1wiaG91cmdsYXNzLTJcIl0sIFwiZjI1MlwiLCBcIk0wIDI0QzAgMTAuNyAxMC43IDAgMjQgMEwzNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMTljMCA0MC4zLTE2IDc5LTQ0LjUgMTA3LjVsLTgxLjUgODEuNSA4MS41IDgxLjVDMzM2IDM2NiAzNTIgNDA0LjcgMzUyIDQ0NWwwIDE5IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMTljMC00MC4zIDE2LTc5IDQ0LjUtMTA3LjVsODEuNS04MS41LTgxLjUtODEuNUM0OCAxNDYgMzIgMTA3LjMgMzIgNjdsMC0xOS04IDBDMTAuNyA0OCAwIDM3LjMgMCAyNHpNMTEwLjUgMzcxLjVjLTMuOSAzLjktNy41IDguMS0xMC43IDEyLjVsMTg0LjQgMGMtMy4yLTQuNC02LjgtOC42LTEwLjctMTIuNWwtODEuNS04MS41LTgxLjUgODEuNXpNODAuOCA0MzJjLS41IDQuMy0uOCA4LjYtLjggMTNsMCAxOSAyMjQgMCAwLTE5YzAtNC40LS4zLTguNy0uOC0xM0w4MC44IDQzMnpNMjU0LjEgMTYwbC0xMjQuMSAwIDYyLjEgNjIuMSA2Mi4xLTYyLjF6bTM5LjctNDhDMzAwLjQgOTguMSAzMDQgODIuNyAzMDQgNjdsMC0xOS0yMjQgMCAwIDE5YzAgMTUuNyAzLjYgMzEuMSAxMC4yIDQ1bDIwMy41IDB6XCJdXG59O1xudmFyIGZhSG91cmdsYXNzMiA9IGZhSG91cmdsYXNzSGFsZjtcbnZhciBmYUNyZWRpdENhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY3JlZGl0LWNhcmQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgxNzksIDYyMDgzLCBcImNyZWRpdC1jYXJkLWFsdFwiXSwgXCJmMDlkXCIsIFwiTTQ0OCAxMTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzItNDE2IDAgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6bTE2IDExMmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjAgNDE2IDB6TTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek04MCAzNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTE0NCAwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0elwiXVxufTtcbnZhciBmYUNyZWRpdENhcmRBbHQgPSBmYUNyZWRpdENhcmQ7XG52YXIgZmFIYW5kU3BvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnaGFuZC1zcG9jaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODQwNl0sIFwiZjI1OVwiLCBcIk0xMzguMyA4MC44Yy05LjItMzMuOCAxMC41LTY4LjggNDQuMy03OC40IDM0LTkuNiA2OS40IDEwLjIgNzkgNDQuMkwyOTEuOSAxNTMuNyAzMDUuMSA4NGM2LjYtMzQuNyA0MC4xLTU3LjUgNzQuOC01MC45IDMxLjQgNiA1MyAzMy45IDUyIDY0LjkgMTAtMi42IDIwLjgtMi44IDMxLjUtLjEgMzQuMyA4LjYgNTUuMSA0My4zIDQ2LjYgNzcuNkw0NTQuNyAzOTcuMkM0MzcuOCA0NjQuNyAzNzcuMiA1MTIgMzA3LjYgNTEybC0zMy43IDBjLTU2LjkgMC0xMTIuMi0xOS0xNTcuMi01My45bC05Mi03MS42Yy0yNy45LTIxLjctMzIuOS02MS45LTExLjItODkuOHM2MS45LTMyLjkgODkuOC0xMS4ybDE3IDEzLjItNTEuOC0xMzEuMmMtMTMtMzIuOSAzLjItNzAuMSAzNi04MyAxMS4xLTQuNCAyMi43LTUuNCAzMy43LTMuN3ptNzcuMS0yMS4yYy0yLjQtOC41LTExLjItMTMuNC0xOS43LTExcy0xMy40IDExLjItMTEgMTkuN2w1NC44IDE4Mi40YzMuNSAxMi4zLTMuMyAyNS4yLTE1LjQgMjkuM3MtMjUuMy0yLTMwLTEzLjlMMTQyLjkgMTM4LjFjLTMuMi04LjItMTIuNS0xMi4zLTIwLjgtOXMtMTIuMyAxMi41LTkgMjAuOGw3My4zIDE4NS42YzEyIDMwLjMtMjMuNyA1Ny00OS40IDM3TDczLjggMzIzLjRjLTctNS40LTE3LTQuMi0yMi41IDIuOHMtNC4yIDE3IDIuOCAyMi41bDkyIDcxLjZjMzYuNSAyOC40IDgxLjQgNDMuOCAxMjcuNyA0My44bDMzLjcgMGM0Ny41IDAgODktMzIuNCAxMDAuNS03OC41bDU1LjQtMjIxLjZjMi4xLTguNi0zLjEtMTcuMy0xMS42LTE5LjRzLTE3LjMgMy4xLTE5LjQgMTEuNmwtMjYgMTA0Yy0yLjkgMTEuNy0xMy40IDE5LjktMjUuNSAxOS45LTE2LjUgMC0yOC45LTE1LTI1LjgtMzEuMkwzODMuNyA5OWMxLjctOC43LTQtMTcuMS0xMi43LTE4LjdTMzU0IDg0LjMgMzUyLjMgOTNMMzIwLjUgMjYwYy0yLjIgMTEuNi0xMi40IDIwLTI0LjIgMjAtMTEgMC0yMC43LTcuMy0yMy43LTE3LjlMMjE1LjQgNTkuNnpcIl1cbn07XG52YXIgZmFCZWxsU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnYmVsbC1zbGFzaCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODI3NywgNjE5NDNdLCBcImYxZjZcIiwgXCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODcuOC04Ny44YzE3LjUtMy4zIDMwLjgtMTguNyAzMC44LTM3LjEgMC02LjctMS44LTEzLjMtNS4xLTE5TDQ4NSAzMjEuN2MtMTktMzIuNi0yOS02OS42LTI5LTEwNy4zbDAtMTQuNWMwLTg0LjYtNjIuNi0xNTQuNy0xNDQtMTY2LjNsMC05LjdjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA5LjdjLTQyLjIgNi03OS40IDI3LjgtMTA1LjQgNTkuMUw0MS0yNC45ek0xOTIuOCAxMjYuOUMyMTQuNyA5OC40IDI0OS4yIDgwIDI4OCA4MCAzNTQuMyA4MCA0MDggMTMzLjcgNDA4IDIwMGwwIDE0LjVjMCA0Ni4yIDEyLjMgOTEuNSAzNS41IDEzMS40bDEyLjkgMjIuMS0yMi42IDAtMjQxLjEtMjQxLjF6TTEzMi41IDM0NS45YzE5LjUtMzMuNCAzMS4zLTcwLjcgMzQuNi0xMDlsLTQ2LjctNDYuN2MtLjIgMy4zLS4zIDYuNi0uMyA5LjlsMCAxNC41YzAgMzcuNy0xMCA3NC43LTI5IDEwNy4zTDY5LjEgMzU5LjJjLTMuNCA1LjgtNS4xIDEyLjMtNS4xIDE5IDAgMjAuOSAxNi45IDM3LjggMzcuOCAzNy44bDI0NC40IDAtNDgtNDgtMTc4LjYgMCAxMi45LTIyLjF6TTIyMC4xIDQ2NGM5LjkgMjggMzYuNiA0OCA2Ny45IDQ4czU4LTIwIDY3LjktNDhsLTEzNS44IDB6XCJdXG59O1xudmFyIGZhU3RhciA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdzdGFyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTEwODgsIDYxNDQ2XSwgXCJmMDA1XCIsIFwiTTI4OC4xLTMyYzkgMCAxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4ycy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXptMCA3Ni44TDIzMC4zIDE1OGMtMy41IDYuOC0xMCAxMS42LTE3LjYgMTIuOGwtMTI1LjUgMjAgODkuOCA4OS45YzUuNCA1LjQgNy45IDEzLjEgNi43IDIwLjdsLTE5LjggMTI1LjUgMTEzLjMtNTcuNmM2LjgtMy41IDE0LjktMy41IDIxLjggMGwxMTMuMyA1Ny42LTE5LjgtMTI1LjVjLTEuMi03LjYgMS4zLTE1LjMgNi43LTIwLjdsODkuOC04OS45LTEyNS41LTIwYy03LjYtMS4yLTE0LjEtNi0xNy42LTEyLjhMMjg4LjEgNDQuOHpcIl1cbn07XG52YXIgZmFGbGFnID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZsYWcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjc5ODgsIDYxNzI1XSwgXCJmMDI0XCIsIFwiTTQ4IDI0QzQ4IDEwLjcgMzcuMyAwIDI0IDBTMCAxMC43IDAgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMCA4MC4zLTIwLjFjNDEuMS0xMC4zIDg0LjYtNS41IDEyMi41IDEzLjQgNDQuMiAyMi4xIDk1LjUgMjQuOCAxNDEuNyA3LjRsMzQuNy0xM2MxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI3OS43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTkuNiA0LjhjLTQ2LjMgMjMuMi0xMDAuOCAyMy4yLTE0Ny4xIDAtMzUuMS0xNy42LTc1LjQtMjItMTEzLjUtMTIuNUw0OCA1MiA0OCAyNHptMCA3Ny41bDk2LjYtMjQuMmMyNy02LjcgNTUuNS0zLjYgODAuNCA4LjggNTQuOSAyNy40IDExOC43IDI5LjcgMTc1IDYuOGwwIDI0MS44LTI0LjQgOS4xYy0zMy43IDEyLjYtNzEuMiAxMC43LTEwMy40LTUuNC00OC4yLTI0LjEtMTAzLjMtMzAuMS0xNTUuNi0xNy4xbC02OC42IDE3LjIgMC0yMzd6XCJdXG59O1xudmFyIGZhTGVtb24gPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnbGVtb24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjc4MTldLCBcImYwOTRcIiwgXCJNMzY4IDgwYy0zLjIgMC02LjIgLjQtOC45IDEuMy0xOS4xIDUuNS00Ni4xIDEwLjctNzQuMyAzLjMtNTcuNC0xNC45LTEyNC42IDcuNC0xNzQuNyA1Ny41UzM3LjcgMjU5LjQgNTIuNiAzMTYuOGM3LjMgMjguMiAyLjIgNTUuMi0zLjMgNzQuMy0uOCAyLjgtMS4zIDUuOC0xLjMgOC45IDAgMTcuNyAxNC4zIDMyIDMyIDMyIDMuMiAwIDYuMi0uNCA4LjktMS4zIDE5LjEtNS41IDQ2LjEtMTAuNyA3NC4zLTMuMyA1Ny40IDE0LjkgMTI0LjYtNy40IDE3NC43LTU3LjVzNzIuNC0xMTcuMyA1Ny41LTE3NC43Yy03LjMtMjguMi0yLjItNTUuMiAzLjMtNzQuMyAuOC0yLjggMS4zLTUuOCAxLjMtOC45IDAtMTcuNy0xNC4zLTMyLTMyLTMyem0wLTQ4YzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNy43LTEuMSAxNS4yLTMuMSAyMi4zLTQuNiAxNS44LTcuMSAzMi45LTMgNDguOSAyMC4xIDc3LjYtMTAuOSAxNjEuNS03MCAyMjAuN3MtMTQzLjEgOTAuMi0yMjAuNyA3MGMtMTYtNC4xLTMzLTEuNi00OC45IDMtNy4xIDItMTQuNiAzLjEtMjIuMyAzLjEtNDQuMiAwLTgwLTM1LjgtODAtODAgMC03LjcgMS4xLTE1LjIgMy4xLTIyLjMgNC42LTE1LjggNy4xLTMyLjkgMy00OC45LTIwLjEtNzcuNiAxMC45LTE2MS41IDcwLTIyMC43UzIxOS4zIDE4IDI5Ni44IDM4LjFjMTYgNC4xIDMzIDEuNiA0OC45LTMgNy4xLTIgMTQuNi0zLjEgMjIuMy0zLjF6TTI0Ni43IDE2N2MtNTIgMTUuMi05Ni41IDU5LjctMTExLjcgMTExLjctMy43IDEyLjctMTcuMSAyMC0yOS44IDE2LjNTODUuMiAyNzggODkgMjY1LjNjMTkuOC02Ny43IDc2LjYtMTI0LjUgMTQ0LjMtMTQ0LjMgMTIuNy0zLjcgMjYuMSAzLjYgMjkuOCAxNi4zcy0zLjYgMjYuMS0xNi4zIDI5Ljh6XCJdXG59O1xudmFyIGZhV2luZG93UmVzdG9yZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICd3aW5kb3ctcmVzdG9yZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjJkMlwiLCBcIk01MTIgODBMMjI0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNi00OCAwIDAtMTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTQ4IDAgMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE5MmMwLTguOC03LjItMTYtMTYtMTZ6TTM2OCAyODhsLTMyMCAwIDAgMTI4YzAgOC44IDcuMiAxNiAxNiAxNmwyODggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMjh6TTY0IDE2MGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0elwiXVxufTtcbnZhciBmYUZhY2VHcmluSGVhcnRzID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3Jpbi1oZWFydHMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MjUsIFwiZ3Jpbi1oZWFydHNcIl0sIFwiZjU4NFwiLCBcIk00NjQgMjU2YzAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFM0OCAzNzAuOSA0OCAyNTZjMC0zLjUgLjEtNy4xIC4zLTEwLjYtMTQtMTMuOS0yOS43LTMzLjEtMzkuMy01Ni43LTUuOCAyMS40LTguOSA0NC04LjkgNjcuMyAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2UzUxMiAzOTcuNCA1MTIgMjU2YzAtMjMuMy0zLjEtNDUuOS04LjktNjcuMy05LjYgMjMuNy0yNS40IDQyLjgtMzkuMyA1Ni43IC4yIDMuNSAuMyA3IC4zIDEwLjZ6TTM2OCA1OC45YzExLjctNiAyNC41LTkuNiAzNy43LTEwLjYtNDIuMS0zMC40LTkzLjgtNDguMy0xNDkuNy00OC4zUzE0OC40IDE3LjkgMTA2LjMgNDguM2MxMy4yIDEgMjYgNC42IDM3LjcgMTAuNiAxMy44LTcuMSAyOS4zLTEwLjkgNDUuMS0xMC45bDIuOSAwYzguOSAwIDE3LjYgMS4yIDI1LjggMy41IDEyLjQtMi4zIDI1LjItMy41IDM4LjItMy41czI1LjggMS4yIDM4LjIgMy41YzguMi0yLjMgMTYuOS0zLjUgMjUuOC0zLjVsMi45IDBjMTUuOCAwIDMxLjMgMy44IDQ1LjEgMTAuOXptNC4yIDI0My40Yy0zNC44IDEwLjYtNzQuMyAxNi42LTExNi4zIDE2LjYtNDEuOSAwLTgxLjQtNi0xMTYuMS0xNi41LTExLjgtMy42LTIzLjcgNi4xLTE5LjYgMTcuOCAxOS44IDU1LjkgNzMuMSA5NS45IDEzNS44IDk1LjkgNjIuNyAwIDExNi00MC4xIDEzNS44LTk2IDQuMS0xMS42LTcuOC0yMS40LTE5LjYtMTcuOHpNMzIyLjkgOTZMMzIwIDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDUzLjQgNjYuOSA5NS43IDg5IDEwOC4yIDQuNCAyLjUgOS42IDIuNSAxNCAwIDIyLjEtMTIuNSA4OS01NC44IDg5LTEwOC4yIDAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yLjkgMGMtMTMuNSAwLTI2LjUgNS40LTM2IDE0LjlsLTkuMSA5LjEtOS4xLTkuMWMtOS41LTkuNS0yMi41LTE0LjktMzYtMTQuOXptLTE4OCAxNC45Yy05LjUtOS41LTIyLjUtMTQuOS0zNi0xNC45TDk2IDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDUzLjQgNjYuOSA5NS43IDg5IDEwOC4yIDQuNCAyLjUgOS42IDIuNSAxNCAwIDIyLjEtMTIuNSA4OS01NC44IDg5LTEwOC4yIDAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yLjkgMGMtMTMuNSAwLTI2LjUgNS40LTM2IDE0LjlsLTkuMSA5LjEtOS4xLTkuMXpcIl1cbn07XG52YXIgZmFHcmluSGVhcnRzID0gZmFGYWNlR3JpbkhlYXJ0cztcbnZhciBmYUZhY2VLaXNzQmVhbSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWtpc3MtYmVhbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUzNywgXCJraXNzLWJlYW1cIl0sIFwiZjU5N1wiLCBcIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI0MCAxNmwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0tNjQtOTJjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4elwiXVxufTtcbnZhciBmYUtpc3NCZWFtID0gZmFGYWNlS2lzc0JlYW07XG52YXIgZmFGaWxlUGRmID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZpbGUtcGRmJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMWMxXCIsIFwiTTIwOCA0OEw5NiA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmw4MCAwIDAgNDgtODAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwyMjkuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM5Ny4zIDE0MS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNsMCAxNDkuNS00OCAwIDAtMTI4LTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTM0OC4xIDE2MEwyNTYgNjcuOSAyNTYgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMjQwIDM4MGwzMiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwcy0yNi45IDYwLTYwIDYwbC0xMiAwIDAgMjhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTI4YzAtMTEgOS0yMCAyMC0yMHptMzIgODBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC0xMiAwIDAgNDAgMTIgMHptOTYtODBsMzIgMGMyOC43IDAgNTIgMjMuMyA1MiA1MmwwIDY0YzAgMjguNy0yMy4zIDUyLTUyIDUybC0zMiAwYy0xMSAwLTIwLTktMjAtMjBsMC0xMjhjMC0xMSA5LTIwIDIwLTIwem0zMiAxMjhjNi42IDAgMTItNS40IDEyLTEybDAtNjRjMC02LjYtNS40LTEyLTEyLTEybC0xMiAwIDAgODggMTIgMHptNzYtMTA4YzAtMTEgOS0yMCAyMC0yMGw0OCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtMjggMCAwIDI0IDI4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC0yOCAwIDAgNDRjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTI4elwiXVxufTtcbnZhciBmYUZhY2VHcmluV2lkZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4td2lkZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUxNSwgXCJncmluLWFsdFwiXSwgXCJmNTgxXCIsIFwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMjI0IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NCAxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjR6bTk2IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHpcIl1cbn07XG52YXIgZmFHcmluQWx0ID0gZmFGYWNlR3JpbldpZGU7XG52YXIgZmFGYWNlTGF1Z2hTcXVpbnQgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZmFjZS1sYXVnaC1zcXVpbnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxhdWdoLXNxdWludFwiXSwgXCJmNTliXCIsIFwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTI1LjIgNzYuNGMtNi41LTE0IDUtMjguNCAyMC40LTI4LjRsMjIwLjggMGMxNS40IDAgMjYuOCAxNC40IDIwLjQgMjguNC0yMi44IDQ5LjQtNzIuOCA4My42LTEzMC44IDgzLjZzLTEwNy45LTM0LjItMTMwLjgtODMuNnptLTIuNi0xNzMuMmM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xelwiXVxufTtcbnZhciBmYUxhdWdoU3F1aW50ID0gZmFGYWNlTGF1Z2hTcXVpbnQ7XG52YXIgZmFGYWNlS2lzc1dpbmtIZWFydCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWtpc3Mtd2luay1oZWFydCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODUzNiwgXCJraXNzLXdpbmstaGVhcnRcIl0sIFwiZjU5OFwiLCBcIk0zODYgNDM5LjVjLTI5LjIgMTUuNi02Mi41IDI0LjUtOTggMjQuNS0xMTQuOSAwLTIwOC05My4xLTIwOC0yMDhTMTczLjIgNDggMjg4IDQ4YzExMy4yIDAgMjA1LjIgOTAuNCAyMDcuOSAyMDIuOSAxNC4zIDEuNSAyOC42IDYgNDEuOSAxMy43IDIgMS4yIDQgMi40IDUuOSAzLjcgLjItNC4xIC4zLTguMiAuMy0xMi4zIDAtMTQxLjQtMTE0LjYtMjU2LTI1Ni0yNTZTMzIgMTE0LjYgMzIgMjU2IDE0Ni42IDUxMiAyODggNTEyYzQxLjQgMCA4MC41LTkuOCAxMTUuMS0yNy4zLTUuOC0xMi45LTEyLTI4LjUtMTcuMi00NS4yek0yNTYgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OCAwLTEyLjMtNC42LTIzLjUtMTIuMi0zMiA3LjYtOC41IDEyLjItMTkuNyAxMi4yLTMyIDAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bS00OC00OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE1Mi00NGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6TTU0Mi44IDM1MGMtMi4yLTE4LjMtMTIuOS0zNC42LTI4LjktNDMuOC0yOC4xLTE2LjItNjMuOS02LjYtODAuMSAyMS41bC0yLjcgNC42Yy0yNC41IDQyLjUgNy45IDExNy45IDI0LjQgMTUwLjggNS4xIDEwLjEgMTUuNSAxNi4xIDI2LjggMTUuNSAzNi43LTIuMiAxMTguMi0xMS43IDE0Mi44LTU0LjJsMi43LTQuNmMxNi4yLTI4LjEgNi42LTYzLjktMjEuNS04MC4xLTE2LTkuMi0zNS40LTEwLjQtNTIuNC0zLjFsLTkuOCA0LjItMS4zLTEwLjZ6XCJdXG59O1xudmFyIGZhS2lzc1dpbmtIZWFydCA9IGZhRmFjZUtpc3NXaW5rSGVhcnQ7XG52YXIgZmFDb3B5ID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2NvcHknLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwYzVcIiwgXCJNMzg0IDMzNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTMzLjUgMGM0LjIgMCA4LjMgMS43IDExLjMgNC43bDU4LjUgNTguNWMzIDMgNC43IDcuMSA0LjcgMTEuM0w0MDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNnpNMTkyIDM4NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDM3MC43IDE4LjdDMzU4LjcgNi43IDM0Mi41IDAgMzI1LjUgMEwxOTIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNi00OCAwIDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwIDAtNDgtMTYgMHpcIl1cbn07XG52YXIgZmFDaGVzc0tpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY2hlc3Mta2luZycsXG4gIGljb246IFs0NDgsIDUxMiwgWzk4MThdLCBcImY0M2ZcIiwgXCJNMjI0LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDgwIDE2MS44IDBjMjEuMSAwIDM4LjIgMTcuMSAzOC4yIDM4LjIgMCA2LjQtMS42IDEyLjctNC43IDE4LjNMMzU3LjIgMzc0LjUgNDA1LjYgNDM1YzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNiAwIDI2LjItMjEuMiA0Ny40LTQ3LjQgNDcuNEw3OS40IDUxMmMtMjYuMiAwLTQ3LjQtMjEuMi00Ny40LTQ3LjQgMC0xMC44IDMuNy0yMS4yIDEwLjQtMjkuNkw5MC44IDM3NC41IDQuNyAyMTYuNkMxLjYgMjEwLjkgMCAyMDQuNiAwIDE5OC4yIDAgMTc3LjEgMTcuMSAxNjAgMzguMiAxNjBsMTYxLjggMCAwLTgwLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0xMzEuOCA0MDBsLTMuNiA0LjQtNDcuNiA1OS42IDI4Ni42IDAtNDcuNi01OS42LTMuNi00LjQtMTg0LjMgMHptMS4xLTQ4LjVsLjMgLjUgMTgxLjYgMCAuMy0uNSA3OC4zLTE0My41LTMzOC43IDAgNzguMyAxNDMuNXpcIl1cbn07XG52YXIgZmFTcXVhcmVQbHVzID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wbHVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjE4NDYsIFwicGx1cy1zcXVhcmVcIl0sIFwiZjBmZVwiLCBcIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMjAwIDM0NGwwLTY0LTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNjQgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6XCJdXG59O1xudmFyIGZhUGx1c1NxdWFyZSA9IGZhU3F1YXJlUGx1cztcbnZhciBmYUZpbGVDb2RlID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZpbGUtY29kZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjOVwiLCBcIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek0xNzAuMiAyOTUuNmM4LjYtMTAuMSA3LjUtMjUuMi0yLjYtMzMuOHMtMjUuMi03LjUtMzMuOCAyLjZsLTQ4IDU2Yy03LjcgOS03LjcgMjIuMiAwIDMxLjJsNDggNTZjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOGwtMzQuNi00MC40IDM0LjYtNDAuNHptODAtMzEuMmMtOC42LTEwLjEtMjMuOC0xMS4yLTMzLjgtMi42cy0xMS4yIDIzLjgtMi42IDMzLjhsMzQuNiA0MC40LTM0LjYgNDAuNGMtOC42IDEwLjEtNy41IDI1LjIgMi42IDMzLjhzMjUuMiA3LjUgMzMuOC0yLjZsNDgtNTZjNy43LTkgNy43LTIyLjIgMC0zMS4ybC00OC01NnpcIl1cbn07XG52YXIgZmFGYWNlR3JpbldpbmsgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXdpbmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImdyaW4td2lua1wiXSwgXCJmNThjXCIsIFwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIwelwiXVxufTtcbnZhciBmYUdyaW5XaW5rID0gZmFGYWNlR3Jpbldpbms7XG52YXIgZmFNb25leUJpbGwxID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGwtMScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibW9uZXktYmlsbC1hbHRcIl0sIFwiZjNkMVwiLCBcIk0xMTIgMTEyYzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgMTYwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDI4OCAwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDAtMTYwYy0zNS4zIDAtNjQtMjguNy02NC02NGwtMjg4IDB6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTI1NiAxNmExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6bS0xNiA0NGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA0OC40LTQgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsNDggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQgMCAwLTY4YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHpcIl1cbn07XG52YXIgZmFNb25leUJpbGxBbHQgPSBmYU1vbmV5QmlsbDE7XG52YXIgZmFFeWVTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdleWUtc2xhc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwNzBcIiwgXCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNC05Ni40YzIuNy0yLjQgNS40LTQuOCA4LTcuMiA0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNi01Ni44IDAtMTA1LjYgMTguMi0xNDYgNDQuMkw0MS0yNC45ek0xNzYuOSAxMTEuMWMzMi4xLTE4LjkgNjkuMi0zMS4xIDExMS4xLTMxLjEgNjUuMiAwIDExOC44IDI5LjYgMTU5LjkgNjcuNyAzOC41IDM1LjcgNjUuMSA3OC4zIDc4LjYgMTA4LjMtMTMuNiAzMC00MC4yIDcyLjUtNzguNiAxMDguMy0zLjEgMi44LTYuMiA1LjYtOS40IDguNEwzOTMuOCAzMjhjMTQtMjAuNSAyMi4yLTQ1LjMgMjIuMi03MiAwLTcwLjctNTcuMy0xMjgtMTI4LTEyOC0yNi43IDAtNTEuNSA4LjItNzIgMjIuMmwtMzkuMS0zOS4xem0xODIgMTgybC0xMDgtMTA4YzExLjEtNS44IDIzLjctOS4xIDM3LjEtOS4xIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMTMuNC0zLjMgMjYtOS4xIDM3LjF6TTEwMy40IDE3My4ybC0zNC0zNGMtMzIuNiAzNi44LTU1IDc1LjgtNjYuOSAxMDQuNS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjYgMzcuMyAwIDcxLjItNy45IDEwMS41LTIwLjZMMzUyLjIgNDIyYy0yMCA2LjQtNDEuNCAxMC02NC4yIDEwLTY1LjIgMC0xMTguOC0yOS42LTE1OS45LTY3LjctMzguNS0zNS43LTY1LjEtNzguMy03OC42LTEwOC4zIDEwLjQtMjMuMSAyOC42LTUzLjYgNTQtODIuOHpcIl1cbn07XG52YXIgZmFGaWxlV29yZCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXdvcmQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzJcIiwgXCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptNzEuMyAyNzQuMmMtMy4yLTEyLjktMTYuMi0yMC43LTI5LjEtMTcuNVM4NS41IDI3MyA4OC43IDI4NS44bDMyIDEyOGMyLjUgMTAuMiAxMS40IDE3LjUgMjEuOSAxOC4xczIwLjEtNS43IDIzLjgtMTUuNWwyNS41LTY4LjEgMjUuNSA2OC4xYzMuNyA5LjggMTMuMyAxNi4xIDIzLjggMTUuNXMxOS40LTcuOSAyMS45LTE4LjFsMzItMTI4YzMuMi0xMi45LTQuNi0yNS45LTE3LjUtMjkuMXMtMjUuOSA0LjYtMjkuMSAxNy41bC0xMy4zIDUzLjItMjAuOS01NS44QzIxMSAyNjIuMiAyMDIgMjU2IDE5MiAyNTZzLTE5IDYuMi0yMi41IDE1LjZsLTIwLjkgNTUuOC0xMy4zLTUzLjJ6XCJdXG59O1xudmFyIGZhRmFjZUFuZ3J5ID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZhY2UtYW5ncnknLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NDQsIFwiYW5ncnlcIl0sIFwiZjU1NlwiLCBcIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMTQ0YzI0LjEgMCA0NS40IDExLjggNTguNSAzMCA3LjcgMTAuOCAyMi43IDEzLjIgMzMuNSA1LjVzMTMuMi0yMi43IDUuNS0zMy41Yy0yMS43LTMwLjItNTcuMy01MC05Ny41LTUwcy03NS43IDE5LjgtOTcuNSA1MGMtNy43IDEwLjgtNS4zIDI1LjggNS41IDMzLjVzMjUuOCA1LjMgMzMuNS01LjVjMTMuMS0xOC4yIDM0LjQtMzAgNTguNS0zMHptLTgwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtLjMgOS43IDMuMmMxMC41IDMuNSAyMS44LTIuMiAyNS4zLTEyLjZzLTIuMi0yMS44LTEyLjYtMjUuM2wtOTYtMzJjLTEwLjUtMy41LTIxLjggMi4yLTI1LjMgMTIuNnMyLjIgMjEuOCAxMi42IDI1LjNsMjguOSA5LjZjLTQuMSA1LjQtNi42IDEyLjEtNi42IDE5LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE5Mi0zMmMwLTcuMy0yLjQtMTQtNi42LTE5LjRsMjguOS05LjZjMTAuNS0zLjUgMTYuMS0xNC44IDEyLjYtMjUuM3MtMTQuOC0xNi4xLTI1LjMtMTIuNmwtOTYgMzJjLTEwLjUgMy41LTE2LjEgMTQuOC0xMi42IDI1LjNzMTQuOCAxNi4xIDI1LjMgMTIuNmw5LjctMy4yIDAgLjNjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpcIl1cbn07XG52YXIgZmFBbmdyeSA9IGZhRmFjZUFuZ3J5O1xudmFyIGZhQ2hlc3NLbmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY2hlc3Mta25pZ2h0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbOTgyMl0sIFwiZjQ0MVwiLCBcIk0yMzItMzJjMTEwLjUgMCAyMDAgODkuNSAyMDAgMjAwbDAgMTI3LjdjMCAxOC45LTYuMSAzNy4xLTE3LjIgNTIuMmwtNS4xIDYuMi0zNi4zIDQwLjcgMzIuMSA0MC4yYzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNmwtLjIgNC44Yy0yLjQgMjMuOS0yMi42IDQyLjUtNDcuMSA0Mi41bC0yODkuMiAwLTQuOC0uMmMtMjMuOS0yLjQtNDIuNS0yMi42LTQyLjUtNDcuMSAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42bDM3LjYtNDcgMC0yNC4zYzAtMjQuMyAxMC4xLTQ3LjYgMjcuOC02NC4ybDYzLjUtNTkuNS0xNy40IDAtLjIgLjJjLTIwLjMgMjAuMy00OS42IDI4LjItNzcuMSAyMS4xbC01LjUtMS42Yy0zMC45LTEwLjMtNTIuMy0zOC01NC45LTcwLjFsLS4yLTYuNCAwLTEuNGMwLTE5LjcgNy4xLTM4LjggMTkuOS01My44bDc2LjEtODguOCAwLTQ3LjEgLjEtMi41QzExMy40LTIyLjYgMTIzLjYtMzIgMTM2LTMybDk2IDB6TTgwLjcgNDY0bDI4Ni42IDAtMzguNC00OC0yMDkuOSAwLTM4LjQgNDh6TTE2MCA0OGMwIDUuNy0yLjEgMTEuMy01LjggMTUuNkw3Mi4zIDE1OS4xQzY3IDE2NS40IDY0IDE3My40IDY0IDE4MS43bDAgMS40IC40IDUuMmMxLjkgMTEuOSAxMC4zIDIxLjkgMjEuOSAyNS44bDQuNSAxLjFjMTAuNSAxLjkgMjEuMy0xLjQgMjktOWw3LjItNy4yIDMuNy0zYzMuOS0yLjYgOC41LTQgMTMuMy00bDg4IDBjOS44IDAgMTguNyA2IDIyLjMgMTUuMnMxLjMgMTkuNi01LjkgMjYuM2wtMTA3LjggMTAxYy04LjEgNy42LTEyLjcgMTguMS0xMi43IDI5LjJsMCA0LjMgMjA1LjIgMCA0MC43LTQ1LjggMi4zLTIuOGM1LjEtNi44IDcuOC0xNS4yIDcuOC0yMy43TDM4NCAxNjhjMC04My45LTY4LjEtMTUyLTE1Mi0xNTJsLTcyIDAgMCAzMnptMzIgNzJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4elwiXVxufTtcbnZhciBmYUZhY2VHcmluQmVhbSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tYmVhbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUxNiwgXCJncmluLWJlYW1cIl0sIFwiZjU4MlwiLCBcIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4elwiXVxufTtcbnZhciBmYUdyaW5CZWFtID0gZmFGYWNlR3JpbkJlYW07XG52YXIgZmFIYW5kUGVhY2UgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnaGFuZC1wZWFjZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzk5OTZdLCBcImYyNWJcIiwgXCJNMjE5IDEuNGMtMzUuMi0zLjctNjYuNiAyMS44LTcwLjMgNTdsLTYuNCA2MC42LTE3LjQtNDkuNEMxMTMuMiAzNi4zIDc2LjYgMTguOCA0My4zIDMwLjVTLTcuNiA3OC44IDQuMSAxMTIuMUw1Ni45IDI2Mi4yQzQxLjcgMjc2LjcgMzIuMiAyOTcuMyAzMi4yIDMyMGwwIDI0YzAgOTIuOCA3NS4yIDE2OCAxNjggMTY4bDQ4IDBjOTIuOCAwIDE2OC03NS4yIDE2OC0xNjhsMC0xMjBjMC0zNS4zLTI4LjctNjQtNjQtNjQtNy45IDAtMTUuNCAxLjQtMjIuNCA0LTEwLjQtMjEuMy0zMi4zLTM2LTU3LjYtMzYtLjcgMC0xLjUgMC0yLjIgMGw1LjktNTYuM2MzLjctMzUuMi0yMS44LTY2LjYtNTctNzAuM3ptLS4yIDE1NS40Yy02LjYgMTAuMS0xMC41IDIyLjItMTAuNSAzNS4ybDAgNDhjMCAuNyAwIDEuNCAwIDItNS4xLTEuMy0xMC41LTItMTYtMmwtNy40IDAtNS40LTE1LjMgMTctMTYxLjNjLjktOC44IDguOC0xNS4yIDE3LjYtMTQuMnMxNS4yIDguOCAxNC4yIDE3LjZsLTkuNSA5MC4xek03OS42IDg1LjZsNTQuMyAxNTQuNC0yMS43IDBjLTQgMC04IC4zLTExLjkgLjlMNDkuNCA5Ni4yYy0yLjktOC4zIDEuNS0xNy41IDkuOC0yMC40czE3LjUgMS41IDIwLjQgOS44ek0yNTYuMiAxOTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDh6bTM4LjQgMTA4YzEwLjQgMjEuMyAzMi4zIDM2IDU3LjYgMzYgNS41IDAgMTAuOS0uNyAxNi0ybDAgMTBjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTQ4IDBjLTY2LjMgMC0xMjAtNTMuNy0xMjAtMTIwbDAtMjRjMC0xNy43IDE0LjMtMzIgMzItMzJsODAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0IDAtLjcgMC0xLjQgMC0yIDUuMSAxLjMgMTAuNSAyIDE2IDIgNy45IDAgMTUuNC0xLjQgMjIuNC00em03My42LTI4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4elwiXVxufTtcbnZhciBmYUNvbXBhc3MgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnY29tcGFzcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTUxN10sIFwiZjE0ZVwiLCBcIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTMwNi43IDY5LjFMMTYyLjQgMzgwLjZjLTE5LjQgNy41LTM4LjUtMTEuNi0zMS0zMWw1NS41LTE0NC4zYzMuMy04LjUgOS45LTE1LjEgMTguNC0xOC40bDE0NC4zLTU1LjVjMTkuNC03LjUgMzguNSAxMS42IDMxIDMxTDMyNS4xIDMwNi43Yy0zLjMgOC41LTkuOSAxNS4xLTE4LjQgMTguNHpNMjg4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwiXVxufTtcbnZhciBmYVNxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5NjMyLCA5NzIzLCA5NzI0LCA2MTU5MF0sIFwiZjBjOFwiLCBcIk0zODQgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMzIwIDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6XCJdXG59O1xudmFyIGZhRmFjZUdyaW4gPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTEyLCBcImdyaW5cIl0sIFwiZjU4MFwiLCBcIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFHcmluID0gZmFGYWNlR3JpbjtcbnZhciBmYUZhY2VTbWlsZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLXNtaWxlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTc4LCBcInNtaWxlXCJdLCBcImYxMThcIiwgXCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzcuMyA2My40QzE5Mi4zIDMzNSAyMTguNCAzNTIgMjU2IDM1MnM2My43LTE3IDc4LjctMzIuNmM5LjItOS42IDI0LjQtOS45IDMzLjktLjdzOS45IDI0LjQgLjcgMzMuOWMtMjIuMSAyMy02MCA0Ny40LTExMy4zIDQ3LjRzLTkxLjItMjQuNC0xMTMuMy00Ny40Yy05LjItOS42LTguOS0yNC44IC43LTMzLjlzMjQuOC04LjkgMzMuOSAuN3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYVNtaWxlID0gZmFGYWNlU21pbGU7XG52YXIgZmFGYWNlU21pbGVCZWFtID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZhY2Utc21pbGUtYmVhbScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUyMiwgXCJzbWlsZS1iZWFtXCJdLCBcImY1YjhcIiwgXCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzcuMyA2My40QzE5Mi4zIDMzNSAyMTguNCAzNTIgMjU2IDM1MnM2My43LTE3IDc4LjctMzIuNmM5LjItOS42IDI0LjQtOS45IDMzLjktLjdzOS45IDI0LjQgLjcgMzMuOWMtMjIuMSAyMy02MCA0Ny40LTExMy4zIDQ3LjRzLTkxLjItMjQuNC0xMTMuMy00Ny40Yy05LjItOS42LTguOS0yNC44IC43LTMzLjlzMjQuOC04LjkgMzMuOSAuN3pNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6XCJdXG59O1xudmFyIGZhU21pbGVCZWFtID0gZmFGYWNlU21pbGVCZWFtO1xudmFyIGZhRm9sZGVyQ2xvc2VkID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZvbGRlci1jbG9zZWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUxODVcIiwgXCJNNDQ4IDQwMEw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE0NCA0MTYgMCAwIDE0NGMwIDguOC03LjIgMTYtMTYgMTZ6bTE2LTIwOGwtNDE2IDAgMC05NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjUwLjcgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2TDQ0OCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDh6TTY0IDQ0OGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwyOTguNyA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjQxLjEgNDQuOEMyMzAgMzYuNSAyMTYuNSAzMiAyMDIuNyAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0elwiXVxufTtcbnZhciBmYUtleWJvYXJkID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2tleWJvYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbOTAwMF0sIFwiZjExY1wiLCBcIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjU2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCAxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTE3NiAzMjBsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2em0tNzItNzJjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNnptMTYtOTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG52YXIgZmFGYWNlUm9sbGluZ0V5ZXMgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZmFjZS1yb2xsaW5nLWV5ZXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1ODAsIFwibWVoLXJvbGxpbmctZXllc1wiXSwgXCJmNWE1XCIsIFwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDM3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0xNjAgMjY0Yy0yMi4xIDAtNDAtMTcuOS00MC00MCAwLTkuNSAzLjMtMTguMSA4LjgtMjUgMy4yIDE0LjMgMTYgMjUgMzEuMiAyNXMyOC0xMC43IDMxLjItMjVjNS41IDYuOCA4LjggMTUuNSA4LjggMjUgMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTAgNDBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTE5Mi00MGMtMjIuMSAwLTQwLTE3LjktNDAtNDAgMC05LjUgMy4zLTE4LjEgOC44LTI1IDMuMiAxNC4zIDE2IDI1IDMxLjIgMjVzMjgtMTAuNyAzMS4yLTI1YzUuNSA2LjggOC44IDE1LjUgOC44IDI1IDAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDQwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwelwiXVxufTtcbnZhciBmYU1laFJvbGxpbmdFeWVzID0gZmFGYWNlUm9sbGluZ0V5ZXM7XG52YXIgZmFGYWNlR3JpbWFjZSA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW1hY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NTYsIFwiZ3JpbWFjZVwiXSwgXCJmNTdmXCIsIFwiTTI1NiA0OGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6TTUxMiAyNTZhMjU2IDI1NiAwIDEgMSAtNTEyIDAgMjU2IDI1NiAwIDEgMSA1MTIgMHpNMTUyIDM1MmMwIDExLjkgOC42IDIxLjggMjAgMjMuN2wwLTQ3LjNjLTExLjQgMS45LTIwIDExLjgtMjAgMjMuN3ptODQgMjRsMC00OC0yNCAwIDAgNDggMjQgMHptNjQgMGwwLTQ4LTI0IDAgMCA0OCAyNCAwem00MC0uM2MxMS40LTEuOSAyMC0xMS44IDIwLTIzLjdzLTguNi0yMS44LTIwLTIzLjdsMCA0Ny4zek0xNzYgMjg4bDE2MCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC0xNjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NHptMC0xMTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG52YXIgZmFHcmltYWNlID0gZmFGYWNlR3JpbWFjZTtcbnZhciBmYUNpcmNsZURvdCA9IHtcbiAgcHJlZml4OiAnZmFyJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtZG90JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MjgwLCBcImRvdC1jaXJjbGVcIl0sIFwiZjE5MlwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnptMC00NjRhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2em0wIDMwNGE5NiA5NiAwIDEgMSAwLTE5MiA5NiA5NiAwIDEgMSAwIDE5MnpcIl1cbn07XG52YXIgZmFEb3RDaXJjbGUgPSBmYUNpcmNsZURvdDtcbnZhciBmYU9iamVjdEdyb3VwID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ29iamVjdC1ncm91cCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjI0N1wiLCBcIk00MCA2NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem00OCA1OS4zYzE2LTYuNSAyOC45LTE5LjMgMzUuMy0zNS4zbDMyOS4zIDBjNi41IDE2IDE5LjMgMjguOSAzNS4zIDM1LjNsMCAyNjUuM2MtMTYgNi41LTI4LjkgMTkuMy0zNS4zIDM1LjNsLTMyOS4zIDBjLTYuNS0xNi0xOS4zLTI4LjktMzUuMy0zNS4zbDAtMjY1LjN6TTUxMiAwYy0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBMMTIzLjMgNDBDMTEzLjkgMTYuNSA5MC45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjQgMCA5MC45IDE2LjUgMTEzLjkgNDAgMTIzLjNsMCAyNjUuM2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0IDI2LjkgMCA0OS45LTE2LjUgNTkuMy00MGwzMjkuMyAwYzkuNSAyMy41IDMyLjUgNDAgNTkuMyA0MCAzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yNjUuM2MyMy41LTkuNSA0MC0zMi41IDQwLTU5LjMgMC0zNS4zLTI4LjctNjQtNjQtNjR6TTQ4OCA2NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek02NCA0MjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MjQgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNMTkyIDE3Nmw4OCAwIDAgNTYtODggMCAwLTU2em0tOC00MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA3MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMDQgMHptNzIgMTg0bDAgMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTA0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjQgMGMwIDE0LjYtMy45IDI4LjItMTAuNyA0MGwyNi43IDAgMCA1Ni04OCAwIDAtMTYuNGMtMi42IC4zLTUuMyAuNC04IC40bC0zMiAwelwiXVxufTtcbnZhciBmYUZhY2VGbHVzaGVkID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZhY2UtZmx1c2hlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU2MywgXCJmbHVzaGVkXCJdLCBcImY1NzlcIiwgXCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE2MCAyNDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yMTYtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTkyIDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDB6TTE2MCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0wIDEyOGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTQ0LTgwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCAwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHpcIl1cbn07XG52YXIgZmFGbHVzaGVkID0gZmFGYWNlRmx1c2hlZDtcbnZhciBmYVN0YXJIYWxmU3Ryb2tlID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ3N0YXItaGFsZi1zdHJva2UnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInN0YXItaGFsZi1hbHRcIl0sIFwiZjVjMFwiLCBcIk0zMDkuNS0xOC45Yy00LjEtOC0xMi40LTEzLjEtMjEuNC0xMy4xcy0xNy4zIDUuMS0yMS40IDEzLjFMMTkzLjEgMTI1LjMgMzMuMiAxNTAuN2MtOC45IDEuNC0xNi4zIDcuNy0xOS4xIDE2LjNzLS41IDE4IDUuOCAyNC40bDExNC40IDExNC41LTI1LjIgMTU5LjljLTEuNCA4LjkgMi4zIDE3LjkgOS42IDIzLjJzMTYuOSA2LjEgMjUgMkwyODguMSA0MTcuNiA0MzIuNCA0OTFjOCA0LjEgMTcuNyAzLjMgMjUtMnMxMS0xNC4yIDkuNi0yMy4yTDQ0MS43IDMwNS45IDU1Ni4xIDE5MS40YzYuNC02LjQgOC42LTE1LjggNS44LTI0LjRzLTEwLjEtMTQuOS0xOS4xLTE2LjNMMzgzIDEyNS4zIDMwOS41LTE4Ljl6TTI2NC4xIDkxLjhsMCAyODQuMS0xMDAuMSA1MC45IDE5LjgtMTI1LjVjMS4yLTcuNi0xLjMtMTUuMy02LjctMjAuN2wtODkuOC04OS45IDEyNS41LTIwYzcuNi0xLjIgMTQuMS02IDE3LjYtMTIuOGwzMy44LTY2LjJ6bTQ4IDI4NC4xbDAtMjg0LjEgMzMuOCA2Ni4yYzMuNSA2LjggMTAgMTEuNiAxNy42IDEyLjhsMTI1LjUgMjAtODkuOCA4OS45Yy01LjQgNS40LTcuOSAxMy4xLTYuNyAyMC43bDE5LjggMTI1LjUtMTAwLjEtNTAuOXpcIl1cbn07XG52YXIgZmFTdGFySGFsZkFsdCA9IGZhU3RhckhhbGZTdHJva2U7XG52YXIgZmFGaWxlVmlkZW8gPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnZmlsZS12aWRlbycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjOFwiLCBcIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek04MCAyODhsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjQgMzUgMzVjMy4yIDMuMiA3LjUgNSAxMiA1IDkuNCAwIDE3LTcuNiAxNy0xN2wwLTk0LjFjMC05LjQtNy42LTE3LTE3LTE3LTQuNSAwLTguOCAxLjgtMTIgNWwtMzUgMzUgMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6XCJdXG59O1xudmFyIGZhRmFjZUxhdWdoID0ge1xuICBwcmVmaXg6ICdmYXInLFxuICBpY29uTmFtZTogJ2ZhY2UtbGF1Z2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxhdWdoXCJdLCBcImY1OTlcIiwgXCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMTguMyA1OC4yYy00LjItMTMuNyA3LjEtMjYuMiAyMS40LTI2LjJsMjMyLjYgMGMxNC4zIDAgMjUuNiAxMi41IDIxLjQgMjYuMi0xOCA1OC45LTcyLjkgMTAxLjgtMTM3LjcgMTAxLjhTMTM2LjMgMzczLjEgMTE4LjMgMzE0LjJ6TTE0NCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFMYXVnaCA9IGZhRmFjZUxhdWdoO1xudmFyIGZhSGFuZFBvaW50ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAnaGFuZC1wb2ludGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjVhXCIsIFwiTTE2MCA2NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTM2YzAgMTAuMyA2LjYgMTkuNSAxNi40IDIyLjhzMjAuNi0uMSAyNi44LTguM2MzLTMuOSA3LjYtNi40IDEyLjgtNi40IDguOCAwIDE2IDcuMiAxNiAxNiAwIDEwLjMgNi42IDE5LjUgMTYuNCAyMi44czIwLjYtLjEgMjYuOC04LjNjMy0zLjkgNy42LTYuNCAxMi44LTYuNCA3LjggMCAxNC4zIDUuNiAxNS43IDEzIDEuNiA4LjIgNy4zIDE1LjEgMTUuMSAxOHMxNi43IDEuNiAyMy4zLTMuNmMyLjctMi4xIDYuMS0zLjQgOS45LTMuNCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxMjBjMCAzOS44LTMyLjIgNzItNzIgNzJsLTExNi42IDBjLTM3LjQgMC03Mi40LTE4LjctOTMuMi00OS45TDUwLjcgMzEyLjljLTQuOS03LjQtMi45LTE3LjMgNC40LTIyLjJzMTcuMy0yLjkgMjIuMiA0LjRMMTE2IDM1My4yYzUuOSA4LjggMTYuOCAxMi43IDI2LjkgOS43czE3LTEyLjQgMTctMjNMMTYwIDY0ek0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAxOTcuN0M5MS4yIDIzOCA1NS41IDIzMi44IDI4LjUgMjUwLjctLjkgMjcwLjQtOC45IDMxMC4xIDEwLjggMzM5LjVMNzguMyA0NDAuOGMyOS43IDQ0LjUgNzkuNiA3MS4yIDEzMy4xIDcxLjJMMzI4IDUxMmM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwwLTEyMGMwLTM1LjMtMjguNy02NC02NC02NC00LjUgMC04LjggLjUtMTMgMS4zLTExLjctMTUuNC0zMC4yLTI1LjMtNTEtMjUuMy02LjkgMC0xMy41IDEuMS0xOS43IDMuMS0xMS42LTE2LjQtMzAuNy0yNy4xLTUyLjMtMjcuMS0yLjcgMC01LjQgLjItOCAuNUwyNDAgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjR6bTQ4IDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2elwiXVxufTtcbnZhciBmYVJlZ2lzdGVyZWQgPSB7XG4gIHByZWZpeDogJ2ZhcicsXG4gIGljb25OYW1lOiAncmVnaXN0ZXJlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzE3NF0sIFwiZjI1ZFwiLCBcIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwMCAxNDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01NiAzNC40IDAgNDEgNjguM2M2LjggMTEuNCAyMS42IDE1IDMyLjkgOC4yczE1LTIxLjYgOC4yLTMyLjlsLTMwLjItNTAuM2MyNC42LTExLjUgNDEuNi0zNi40IDQxLjYtNjUuMyAwLTM5LjgtMzIuMi03Mi03Mi03MmwtODAgMHptNzIgOTZsLTQ4IDAgMC00OCA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDB6XCJdXG59O1xudmFyIGljb25zID0ge1xuICBmYVNxdWFyZU1pbnVzOiBmYVNxdWFyZU1pbnVzLFxuICBmYU1pbnVzU3F1YXJlOiBmYU1pbnVzU3F1YXJlLFxuICBmYUNhbGVuZGFyQ2hlY2s6IGZhQ2FsZW5kYXJDaGVjayxcbiAgZmFGYWNlS2lzczogZmFGYWNlS2lzcyxcbiAgZmFLaXNzOiBmYUtpc3MsXG4gIGZhUGFzdGU6IGZhUGFzdGUsXG4gIGZhRmlsZUNsaXBib2FyZDogZmFGaWxlQ2xpcGJvYXJkLFxuICBmYUhhbmRQb2ludExlZnQ6IGZhSGFuZFBvaW50TGVmdCxcbiAgZmFGaWxlRXhjZWw6IGZhRmlsZUV4Y2VsLFxuICBmYUVudmVsb3BlOiBmYUVudmVsb3BlLFxuICBmYVNxdWFyZUNhcmV0RG93bjogZmFTcXVhcmVDYXJldERvd24sXG4gIGZhQ2FyZXRTcXVhcmVEb3duOiBmYUNhcmV0U3F1YXJlRG93bixcbiAgZmFUcnVjazogZmFUcnVjayxcbiAgZmFCZWxsOiBmYUJlbGwsXG4gIGZhTWVzc2FnZTogZmFNZXNzYWdlLFxuICBmYUNvbW1lbnRBbHQ6IGZhQ29tbWVudEFsdCxcbiAgZmFGYWNlRGl6enk6IGZhRmFjZURpenp5LFxuICBmYURpenp5OiBmYURpenp5LFxuICBmYUNhbGVuZGFyRGF5czogZmFDYWxlbmRhckRheXMsXG4gIGZhQ2FsZW5kYXJBbHQ6IGZhQ2FsZW5kYXJBbHQsXG4gIGZhSGFuZFBvaW50VXA6IGZhSGFuZFBvaW50VXAsXG4gIGZhSGFuZExpemFyZDogZmFIYW5kTGl6YXJkLFxuICBmYVNxdWFyZUZ1bGw6IGZhU3F1YXJlRnVsbCxcbiAgZmFDaXJjbGVQYXVzZTogZmFDaXJjbGVQYXVzZSxcbiAgZmFQYXVzZUNpcmNsZTogZmFQYXVzZUNpcmNsZSxcbiAgZmFIYXJkRHJpdmU6IGZhSGFyZERyaXZlLFxuICBmYUhkZDogZmFIZGQsXG4gIGZhRmlsZVppcHBlcjogZmFGaWxlWmlwcGVyLFxuICBmYUZpbGVBcmNoaXZlOiBmYUZpbGVBcmNoaXZlLFxuICBmYUZsb3BweURpc2s6IGZhRmxvcHB5RGlzayxcbiAgZmFTYXZlOiBmYVNhdmUsXG4gIGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQ6IGZhRmFjZUdyaW5Ub25ndWVTcXVpbnQsXG4gIGZhR3JpblRvbmd1ZVNxdWludDogZmFHcmluVG9uZ3VlU3F1aW50LFxuICBmYUNhbWVyYTogZmFDYW1lcmEsXG4gIGZhQ2FtZXJhQWx0OiBmYUNhbWVyYUFsdCxcbiAgZmFGYWNlR3JpblN0YXJzOiBmYUZhY2VHcmluU3RhcnMsXG4gIGZhR3JpblN0YXJzOiBmYUdyaW5TdGFycyxcbiAgZmFFeWU6IGZhRXllLFxuICBmYUZhY2VTYWRUZWFyOiBmYUZhY2VTYWRUZWFyLFxuICBmYVNhZFRlYXI6IGZhU2FkVGVhcixcbiAgZmFTaGFyZUZyb21TcXVhcmU6IGZhU2hhcmVGcm9tU3F1YXJlLFxuICBmYVNoYXJlU3F1YXJlOiBmYVNoYXJlU3F1YXJlLFxuICBmYU5vdGVTdGlja3k6IGZhTm90ZVN0aWNreSxcbiAgZmFTdGlja3lOb3RlOiBmYVN0aWNreU5vdGUsXG4gIGZhSGFuZEJhY2tGaXN0OiBmYUhhbmRCYWNrRmlzdCxcbiAgZmFIYW5kUm9jazogZmFIYW5kUm9jayxcbiAgZmFDaGVzc1F1ZWVuOiBmYUNoZXNzUXVlZW4sXG4gIGZhRmFjZUdyaW5UZWFyczogZmFGYWNlR3JpblRlYXJzLFxuICBmYUdyaW5UZWFyczogZmFHcmluVGVhcnMsXG4gIGZhUGVuVG9TcXVhcmU6IGZhUGVuVG9TcXVhcmUsXG4gIGZhRWRpdDogZmFFZGl0LFxuICBmYUZhY2VHcmluQmVhbVN3ZWF0OiBmYUZhY2VHcmluQmVhbVN3ZWF0LFxuICBmYUdyaW5CZWFtU3dlYXQ6IGZhR3JpbkJlYW1Td2VhdCxcbiAgZmFDbG9jazogZmFDbG9jayxcbiAgZmFDbG9ja0ZvdXI6IGZhQ2xvY2tGb3VyLFxuICBmYUZhY2VMYXVnaFdpbms6IGZhRmFjZUxhdWdoV2luayxcbiAgZmFMYXVnaFdpbms6IGZhTGF1Z2hXaW5rLFxuICBmYVBhcGVyUGxhbmU6IGZhUGFwZXJQbGFuZSxcbiAgZmFIZWFydDogZmFIZWFydCxcbiAgZmFGb250QXdlc29tZTogZmFGb250QXdlc29tZSxcbiAgZmFGb250QXdlc29tZUZsYWc6IGZhRm9udEF3ZXNvbWVGbGFnLFxuICBmYUZvbnRBd2Vzb21lTG9nb0Z1bGw6IGZhRm9udEF3ZXNvbWVMb2dvRnVsbCxcbiAgZmFDbG9uZTogZmFDbG9uZSxcbiAgZmFGb2xkZXJPcGVuOiBmYUZvbGRlck9wZW4sXG4gIGZhV2luZG93TWluaW1pemU6IGZhV2luZG93TWluaW1pemUsXG4gIGZhU3RhckhhbGY6IGZhU3RhckhhbGYsXG4gIGZhQWxhcm1DbG9jazogZmFBbGFybUNsb2NrLFxuICBmYU5ld3NwYXBlcjogZmFOZXdzcGFwZXIsXG4gIGZhSG9zcGl0YWw6IGZhSG9zcGl0YWwsXG4gIGZhSG9zcGl0YWxBbHQ6IGZhSG9zcGl0YWxBbHQsXG4gIGZhSG9zcGl0YWxXaWRlOiBmYUhvc3BpdGFsV2lkZSxcbiAgZmFDaXJjbGVTdG9wOiBmYUNpcmNsZVN0b3AsXG4gIGZhU3RvcENpcmNsZTogZmFTdG9wQ2lyY2xlLFxuICBmYU9iamVjdFVuZ3JvdXA6IGZhT2JqZWN0VW5ncm91cCxcbiAgZmFDb21tZW50OiBmYUNvbW1lbnQsXG4gIGZhQ2hlc3NQYXduOiBmYUNoZXNzUGF3bixcbiAgZmFDYWxlbmRhclBsdXM6IGZhQ2FsZW5kYXJQbHVzLFxuICBmYUNsaXBib2FyZDogZmFDbGlwYm9hcmQsXG4gIGZhVGh1bWJzRG93bjogZmFUaHVtYnNEb3duLFxuICBmYUlkQmFkZ2U6IGZhSWRCYWRnZSxcbiAgZmFTcXVhcmVDaGVjazogZmFTcXVhcmVDaGVjayxcbiAgZmFDaGVja1NxdWFyZTogZmFDaGVja1NxdWFyZSxcbiAgZmFDaGVzc0Jpc2hvcDogZmFDaGVzc0Jpc2hvcCxcbiAgZmFFbnZlbG9wZU9wZW46IGZhRW52ZWxvcGVPcGVuLFxuICBmYUNpcmNsZVhtYXJrOiBmYUNpcmNsZVhtYXJrLFxuICBmYVRpbWVzQ2lyY2xlOiBmYVRpbWVzQ2lyY2xlLFxuICBmYVhtYXJrQ2lyY2xlOiBmYVhtYXJrQ2lyY2xlLFxuICBmYVNxdWFyZUNhcmV0VXA6IGZhU3F1YXJlQ2FyZXRVcCxcbiAgZmFDYXJldFNxdWFyZVVwOiBmYUNhcmV0U3F1YXJlVXAsXG4gIGZhRmlsZUltYWdlOiBmYUZpbGVJbWFnZSxcbiAgZmFTcXVhcmVDYXJldFJpZ2h0OiBmYVNxdWFyZUNhcmV0UmlnaHQsXG4gIGZhQ2FyZXRTcXVhcmVSaWdodDogZmFDYXJldFNxdWFyZVJpZ2h0LFxuICBmYVN1bjogZmFTdW4sXG4gIGZhSW1hZ2U6IGZhSW1hZ2UsXG4gIGZhTGlnaHRidWxiOiBmYUxpZ2h0YnVsYixcbiAgZmFBZGRyZXNzQ2FyZDogZmFBZGRyZXNzQ2FyZCxcbiAgZmFDb250YWN0Q2FyZDogZmFDb250YWN0Q2FyZCxcbiAgZmFWY2FyZDogZmFWY2FyZCxcbiAgZmFGYWNlTWVoOiBmYUZhY2VNZWgsXG4gIGZhTWVoOiBmYU1laCxcbiAgZmFNYXA6IGZhTWFwLFxuICBmYUhhbmRQb2ludERvd246IGZhSGFuZFBvaW50RG93bixcbiAgZmFGYWNlTWVoQmxhbms6IGZhRmFjZU1laEJsYW5rLFxuICBmYU1laEJsYW5rOiBmYU1laEJsYW5rLFxuICBmYUZhY2VHcmluVG9uZ3VlOiBmYUZhY2VHcmluVG9uZ3VlLFxuICBmYUdyaW5Ub25ndWU6IGZhR3JpblRvbmd1ZSxcbiAgZmFGdXRib2w6IGZhRnV0Ym9sLFxuICBmYUZ1dGJvbEJhbGw6IGZhRnV0Ym9sQmFsbCxcbiAgZmFTb2NjZXJCYWxsOiBmYVNvY2NlckJhbGwsXG4gIGZhRmFjZVN1cnByaXNlOiBmYUZhY2VTdXJwcmlzZSxcbiAgZmFTdXJwcmlzZTogZmFTdXJwcmlzZSxcbiAgZmFGb2xkZXI6IGZhRm9sZGVyLFxuICBmYUZvbGRlckJsYW5rOiBmYUZvbGRlckJsYW5rLFxuICBmYUNsb3VkOiBmYUNsb3VkLFxuICBmYUNpcmNsZTogZmFDaXJjbGUsXG4gIGZhRmFjZUdyaW5TcXVpbnQ6IGZhRmFjZUdyaW5TcXVpbnQsXG4gIGZhR3JpblNxdWludDogZmFHcmluU3F1aW50LFxuICBmYUNpcmNsZVVzZXI6IGZhQ2lyY2xlVXNlcixcbiAgZmFVc2VyQ2lyY2xlOiBmYVVzZXJDaXJjbGUsXG4gIGZhUmVjdGFuZ2xlTGlzdDogZmFSZWN0YW5nbGVMaXN0LFxuICBmYUxpc3RBbHQ6IGZhTGlzdEFsdCxcbiAgZmFIYW5kOiBmYUhhbmQsXG4gIGZhSGFuZFBhcGVyOiBmYUhhbmRQYXBlcixcbiAgZmFUaHVtYnNVcDogZmFUaHVtYnNVcCxcbiAgZmFCdWlsZGluZzogZmFCdWlsZGluZyxcbiAgZmFDaGVzc1Jvb2s6IGZhQ2hlc3NSb29rLFxuICBmYUNpcmNsZVF1ZXN0aW9uOiBmYUNpcmNsZVF1ZXN0aW9uLFxuICBmYVF1ZXN0aW9uQ2lyY2xlOiBmYVF1ZXN0aW9uQ2lyY2xlLFxuICBmYUZpbGU6IGZhRmlsZSxcbiAgZmFGYWNlU2FkQ3J5OiBmYUZhY2VTYWRDcnksXG4gIGZhU2FkQ3J5OiBmYVNhZENyeSxcbiAgZmFDYWxlbmRhck1pbnVzOiBmYUNhbGVuZGFyTWludXMsXG4gIGZhRmFjZVRpcmVkOiBmYUZhY2VUaXJlZCxcbiAgZmFUaXJlZDogZmFUaXJlZCxcbiAgZmFIYW5kUG9pbnRSaWdodDogZmFIYW5kUG9pbnRSaWdodCxcbiAgZmFDaXJjbGVVcDogZmFDaXJjbGVVcCxcbiAgZmFBcnJvd0FsdENpcmNsZVVwOiBmYUFycm93QWx0Q2lyY2xlVXAsXG4gIGZhSGFuZFNjaXNzb3JzOiBmYUhhbmRTY2lzc29ycyxcbiAgZmFHZW06IGZhR2VtLFxuICBmYVJlY3RhbmdsZVhtYXJrOiBmYVJlY3RhbmdsZVhtYXJrLFxuICBmYVJlY3RhbmdsZVRpbWVzOiBmYVJlY3RhbmdsZVRpbWVzLFxuICBmYVRpbWVzUmVjdGFuZ2xlOiBmYVRpbWVzUmVjdGFuZ2xlLFxuICBmYVdpbmRvd0Nsb3NlOiBmYVdpbmRvd0Nsb3NlLFxuICBmYVRyYXNoQ2FuOiBmYVRyYXNoQ2FuLFxuICBmYVRyYXNoQWx0OiBmYVRyYXNoQWx0LFxuICBmYUxpZmVSaW5nOiBmYUxpZmVSaW5nLFxuICBmYUNvcHlyaWdodDogZmFDb3B5cmlnaHQsXG4gIGZhQ2lyY2xlTGVmdDogZmFDaXJjbGVMZWZ0LFxuICBmYUFycm93QWx0Q2lyY2xlTGVmdDogZmFBcnJvd0FsdENpcmNsZUxlZnQsXG4gIGZhQ2FsZW5kYXI6IGZhQ2FsZW5kYXIsXG4gIGZhRmFjZUZyb3duT3BlbjogZmFGYWNlRnJvd25PcGVuLFxuICBmYUZyb3duT3BlbjogZmFGcm93bk9wZW4sXG4gIGZhQ2hhcnRCYXI6IGZhQ2hhcnRCYXIsXG4gIGZhQmFyQ2hhcnQ6IGZhQmFyQ2hhcnQsXG4gIGZhSG91c2U6IGZhSG91c2UsXG4gIGZhSG9tZTogZmFIb21lLFxuICBmYUhvbWVBbHQ6IGZhSG9tZUFsdCxcbiAgZmFIb21lTGdBbHQ6IGZhSG9tZUxnQWx0LFxuICBmYUZhY2VGcm93bjogZmFGYWNlRnJvd24sXG4gIGZhRnJvd246IGZhRnJvd24sXG4gIGZhVXNlcjogZmFVc2VyLFxuICBmYVVzZXJBbHQ6IGZhVXNlckFsdCxcbiAgZmFVc2VyTGFyZ2U6IGZhVXNlckxhcmdlLFxuICBmYVNub3dmbGFrZTogZmFTbm93Zmxha2UsXG4gIGZhQm9va21hcms6IGZhQm9va21hcmssXG4gIGZhU3F1YXJlQ2FyZXRMZWZ0OiBmYVNxdWFyZUNhcmV0TGVmdCxcbiAgZmFDYXJldFNxdWFyZUxlZnQ6IGZhQ2FyZXRTcXVhcmVMZWZ0LFxuICBmYUhhbmRzaGFrZTogZmFIYW5kc2hha2UsXG4gIGZhSGFuZHNoYWtlQWx0OiBmYUhhbmRzaGFrZUFsdCxcbiAgZmFIYW5kc2hha2VTaW1wbGU6IGZhSGFuZHNoYWtlU2ltcGxlLFxuICBmYUZhY2VTbWlsZVdpbms6IGZhRmFjZVNtaWxlV2luayxcbiAgZmFTbWlsZVdpbms6IGZhU21pbGVXaW5rLFxuICBmYUZhY2VHcmluU3F1aW50VGVhcnM6IGZhRmFjZUdyaW5TcXVpbnRUZWFycyxcbiAgZmFHcmluU3F1aW50VGVhcnM6IGZhR3JpblNxdWludFRlYXJzLFxuICBmYUZpbGVBdWRpbzogZmFGaWxlQXVkaW8sXG4gIGZhQ2FsZW5kYXJYbWFyazogZmFDYWxlbmRhclhtYXJrLFxuICBmYUNhbGVuZGFyVGltZXM6IGZhQ2FsZW5kYXJUaW1lcyxcbiAgZmFDaXJjbGVEb3duOiBmYUNpcmNsZURvd24sXG4gIGZhQXJyb3dBbHRDaXJjbGVEb3duOiBmYUFycm93QWx0Q2lyY2xlRG93bixcbiAgZmFGaWxlTGluZXM6IGZhRmlsZUxpbmVzLFxuICBmYUZpbGVBbHQ6IGZhRmlsZUFsdCxcbiAgZmFGaWxlVGV4dDogZmFGaWxlVGV4dCxcbiAgZmFDb21tZW50czogZmFDb21tZW50cyxcbiAgZmFDaXJjbGVDaGVjazogZmFDaXJjbGVDaGVjayxcbiAgZmFDaGVja0NpcmNsZTogZmFDaGVja0NpcmNsZSxcbiAgZmFNb29uOiBmYU1vb24sXG4gIGZhQ2xvc2VkQ2FwdGlvbmluZzogZmFDbG9zZWRDYXB0aW9uaW5nLFxuICBmYUltYWdlczogZmFJbWFnZXMsXG4gIGZhQ2lyY2xlUmlnaHQ6IGZhQ2lyY2xlUmlnaHQsXG4gIGZhQXJyb3dBbHRDaXJjbGVSaWdodDogZmFBcnJvd0FsdENpcmNsZVJpZ2h0LFxuICBmYUlkQ2FyZDogZmFJZENhcmQsXG4gIGZhRHJpdmVyc0xpY2Vuc2U6IGZhRHJpdmVyc0xpY2Vuc2UsXG4gIGZhQ2lyY2xlUGxheTogZmFDaXJjbGVQbGF5LFxuICBmYVBsYXlDaXJjbGU6IGZhUGxheUNpcmNsZSxcbiAgZmFGYWNlTGF1Z2hCZWFtOiBmYUZhY2VMYXVnaEJlYW0sXG4gIGZhTGF1Z2hCZWFtOiBmYUxhdWdoQmVhbSxcbiAgZmFBZGRyZXNzQm9vazogZmFBZGRyZXNzQm9vayxcbiAgZmFDb250YWN0Qm9vazogZmFDb250YWN0Qm9vayxcbiAgZmFIb3VyZ2xhc3M6IGZhSG91cmdsYXNzLFxuICBmYUhvdXJnbGFzc0VtcHR5OiBmYUhvdXJnbGFzc0VtcHR5LFxuICBmYUhlYWRwaG9uZXM6IGZhSGVhZHBob25lcyxcbiAgZmFIZWFkcGhvbmVzQWx0OiBmYUhlYWRwaG9uZXNBbHQsXG4gIGZhSGVhZHBob25lc1NpbXBsZTogZmFIZWFkcGhvbmVzU2ltcGxlLFxuICBmYUZpbGVQb3dlcnBvaW50OiBmYUZpbGVQb3dlcnBvaW50LFxuICBmYVdpbmRvd01heGltaXplOiBmYVdpbmRvd01heGltaXplLFxuICBmYUNvbW1lbnREb3RzOiBmYUNvbW1lbnREb3RzLFxuICBmYUNvbW1lbnRpbmc6IGZhQ29tbWVudGluZyxcbiAgZmFGYWNlR3JpblRvbmd1ZVdpbms6IGZhRmFjZUdyaW5Ub25ndWVXaW5rLFxuICBmYUdyaW5Ub25ndWVXaW5rOiBmYUdyaW5Ub25ndWVXaW5rLFxuICBmYUhvdXJnbGFzc0hhbGY6IGZhSG91cmdsYXNzSGFsZixcbiAgZmFIb3VyZ2xhc3MyOiBmYUhvdXJnbGFzczIsXG4gIGZhQ3JlZGl0Q2FyZDogZmFDcmVkaXRDYXJkLFxuICBmYUNyZWRpdENhcmRBbHQ6IGZhQ3JlZGl0Q2FyZEFsdCxcbiAgZmFIYW5kU3BvY2s6IGZhSGFuZFNwb2NrLFxuICBmYUJlbGxTbGFzaDogZmFCZWxsU2xhc2gsXG4gIGZhU3RhcjogZmFTdGFyLFxuICBmYUZsYWc6IGZhRmxhZyxcbiAgZmFMZW1vbjogZmFMZW1vbixcbiAgZmFXaW5kb3dSZXN0b3JlOiBmYVdpbmRvd1Jlc3RvcmUsXG4gIGZhRmFjZUdyaW5IZWFydHM6IGZhRmFjZUdyaW5IZWFydHMsXG4gIGZhR3JpbkhlYXJ0czogZmFHcmluSGVhcnRzLFxuICBmYUZhY2VLaXNzQmVhbTogZmFGYWNlS2lzc0JlYW0sXG4gIGZhS2lzc0JlYW06IGZhS2lzc0JlYW0sXG4gIGZhRmlsZVBkZjogZmFGaWxlUGRmLFxuICBmYUZhY2VHcmluV2lkZTogZmFGYWNlR3JpbldpZGUsXG4gIGZhR3JpbkFsdDogZmFHcmluQWx0LFxuICBmYUZhY2VMYXVnaFNxdWludDogZmFGYWNlTGF1Z2hTcXVpbnQsXG4gIGZhTGF1Z2hTcXVpbnQ6IGZhTGF1Z2hTcXVpbnQsXG4gIGZhRmFjZUtpc3NXaW5rSGVhcnQ6IGZhRmFjZUtpc3NXaW5rSGVhcnQsXG4gIGZhS2lzc1dpbmtIZWFydDogZmFLaXNzV2lua0hlYXJ0LFxuICBmYUNvcHk6IGZhQ29weSxcbiAgZmFDaGVzc0tpbmc6IGZhQ2hlc3NLaW5nLFxuICBmYVNxdWFyZVBsdXM6IGZhU3F1YXJlUGx1cyxcbiAgZmFQbHVzU3F1YXJlOiBmYVBsdXNTcXVhcmUsXG4gIGZhRmlsZUNvZGU6IGZhRmlsZUNvZGUsXG4gIGZhRmFjZUdyaW5XaW5rOiBmYUZhY2VHcmluV2luayxcbiAgZmFHcmluV2luazogZmFHcmluV2luayxcbiAgZmFNb25leUJpbGwxOiBmYU1vbmV5QmlsbDEsXG4gIGZhTW9uZXlCaWxsQWx0OiBmYU1vbmV5QmlsbEFsdCxcbiAgZmFFeWVTbGFzaDogZmFFeWVTbGFzaCxcbiAgZmFGaWxlV29yZDogZmFGaWxlV29yZCxcbiAgZmFGYWNlQW5ncnk6IGZhRmFjZUFuZ3J5LFxuICBmYUFuZ3J5OiBmYUFuZ3J5LFxuICBmYUNoZXNzS25pZ2h0OiBmYUNoZXNzS25pZ2h0LFxuICBmYUZhY2VHcmluQmVhbTogZmFGYWNlR3JpbkJlYW0sXG4gIGZhR3JpbkJlYW06IGZhR3JpbkJlYW0sXG4gIGZhSGFuZFBlYWNlOiBmYUhhbmRQZWFjZSxcbiAgZmFDb21wYXNzOiBmYUNvbXBhc3MsXG4gIGZhU3F1YXJlOiBmYVNxdWFyZSxcbiAgZmFGYWNlR3JpbjogZmFGYWNlR3JpbixcbiAgZmFHcmluOiBmYUdyaW4sXG4gIGZhRmFjZVNtaWxlOiBmYUZhY2VTbWlsZSxcbiAgZmFTbWlsZTogZmFTbWlsZSxcbiAgZmFGYWNlU21pbGVCZWFtOiBmYUZhY2VTbWlsZUJlYW0sXG4gIGZhU21pbGVCZWFtOiBmYVNtaWxlQmVhbSxcbiAgZmFGb2xkZXJDbG9zZWQ6IGZhRm9sZGVyQ2xvc2VkLFxuICBmYUtleWJvYXJkOiBmYUtleWJvYXJkLFxuICBmYUZhY2VSb2xsaW5nRXllczogZmFGYWNlUm9sbGluZ0V5ZXMsXG4gIGZhTWVoUm9sbGluZ0V5ZXM6IGZhTWVoUm9sbGluZ0V5ZXMsXG4gIGZhRmFjZUdyaW1hY2U6IGZhRmFjZUdyaW1hY2UsXG4gIGZhR3JpbWFjZTogZmFHcmltYWNlLFxuICBmYUNpcmNsZURvdDogZmFDaXJjbGVEb3QsXG4gIGZhRG90Q2lyY2xlOiBmYURvdENpcmNsZSxcbiAgZmFPYmplY3RHcm91cDogZmFPYmplY3RHcm91cCxcbiAgZmFGYWNlRmx1c2hlZDogZmFGYWNlRmx1c2hlZCxcbiAgZmFGbHVzaGVkOiBmYUZsdXNoZWQsXG4gIGZhU3RhckhhbGZTdHJva2U6IGZhU3RhckhhbGZTdHJva2UsXG4gIGZhU3RhckhhbGZBbHQ6IGZhU3RhckhhbGZBbHQsXG4gIGZhRmlsZVZpZGVvOiBmYUZpbGVWaWRlbyxcbiAgZmFGYWNlTGF1Z2g6IGZhRmFjZUxhdWdoLFxuICBmYUxhdWdoOiBmYUxhdWdoLFxuICBmYUhhbmRQb2ludGVyOiBmYUhhbmRQb2ludGVyLFxuICBmYVJlZ2lzdGVyZWQ6IGZhUmVnaXN0ZXJlZFxufTtcblxuZXhwb3J0IHsgaWNvbnMgYXMgZmFyLCBwcmVmaXgsIGZhU3F1YXJlTWludXMsIGZhTWludXNTcXVhcmUsIGZhQ2FsZW5kYXJDaGVjaywgZmFGYWNlS2lzcywgZmFLaXNzLCBmYVBhc3RlLCBmYUZpbGVDbGlwYm9hcmQsIGZhSGFuZFBvaW50TGVmdCwgZmFGaWxlRXhjZWwsIGZhRW52ZWxvcGUsIGZhU3F1YXJlQ2FyZXREb3duLCBmYUNhcmV0U3F1YXJlRG93biwgZmFUcnVjaywgZmFCZWxsLCBmYU1lc3NhZ2UsIGZhQ29tbWVudEFsdCwgZmFGYWNlRGl6enksIGZhRGl6enksIGZhQ2FsZW5kYXJEYXlzLCBmYUNhbGVuZGFyQWx0LCBmYUhhbmRQb2ludFVwLCBmYUhhbmRMaXphcmQsIGZhU3F1YXJlRnVsbCwgZmFDaXJjbGVQYXVzZSwgZmFQYXVzZUNpcmNsZSwgZmFIYXJkRHJpdmUsIGZhSGRkLCBmYUZpbGVaaXBwZXIsIGZhRmlsZUFyY2hpdmUsIGZhRmxvcHB5RGlzaywgZmFTYXZlLCBmYUZhY2VHcmluVG9uZ3VlU3F1aW50LCBmYUdyaW5Ub25ndWVTcXVpbnQsIGZhQ2FtZXJhLCBmYUNhbWVyYUFsdCwgZmFGYWNlR3JpblN0YXJzLCBmYUdyaW5TdGFycywgZmFFeWUsIGZhRmFjZVNhZFRlYXIsIGZhU2FkVGVhciwgZmFTaGFyZUZyb21TcXVhcmUsIGZhU2hhcmVTcXVhcmUsIGZhTm90ZVN0aWNreSwgZmFTdGlja3lOb3RlLCBmYUhhbmRCYWNrRmlzdCwgZmFIYW5kUm9jaywgZmFDaGVzc1F1ZWVuLCBmYUZhY2VHcmluVGVhcnMsIGZhR3JpblRlYXJzLCBmYVBlblRvU3F1YXJlLCBmYUVkaXQsIGZhRmFjZUdyaW5CZWFtU3dlYXQsIGZhR3JpbkJlYW1Td2VhdCwgZmFDbG9jaywgZmFDbG9ja0ZvdXIsIGZhRmFjZUxhdWdoV2luaywgZmFMYXVnaFdpbmssIGZhUGFwZXJQbGFuZSwgZmFIZWFydCwgZmFGb250QXdlc29tZSwgZmFGb250QXdlc29tZUZsYWcsIGZhRm9udEF3ZXNvbWVMb2dvRnVsbCwgZmFDbG9uZSwgZmFGb2xkZXJPcGVuLCBmYVdpbmRvd01pbmltaXplLCBmYVN0YXJIYWxmLCBmYUFsYXJtQ2xvY2ssIGZhTmV3c3BhcGVyLCBmYUhvc3BpdGFsLCBmYUhvc3BpdGFsQWx0LCBmYUhvc3BpdGFsV2lkZSwgZmFDaXJjbGVTdG9wLCBmYVN0b3BDaXJjbGUsIGZhT2JqZWN0VW5ncm91cCwgZmFDb21tZW50LCBmYUNoZXNzUGF3biwgZmFDYWxlbmRhclBsdXMsIGZhQ2xpcGJvYXJkLCBmYVRodW1ic0Rvd24sIGZhSWRCYWRnZSwgZmFTcXVhcmVDaGVjaywgZmFDaGVja1NxdWFyZSwgZmFDaGVzc0Jpc2hvcCwgZmFFbnZlbG9wZU9wZW4sIGZhQ2lyY2xlWG1hcmssIGZhVGltZXNDaXJjbGUsIGZhWG1hcmtDaXJjbGUsIGZhU3F1YXJlQ2FyZXRVcCwgZmFDYXJldFNxdWFyZVVwLCBmYUZpbGVJbWFnZSwgZmFTcXVhcmVDYXJldFJpZ2h0LCBmYUNhcmV0U3F1YXJlUmlnaHQsIGZhU3VuLCBmYUltYWdlLCBmYUxpZ2h0YnVsYiwgZmFBZGRyZXNzQ2FyZCwgZmFDb250YWN0Q2FyZCwgZmFWY2FyZCwgZmFGYWNlTWVoLCBmYU1laCwgZmFNYXAsIGZhSGFuZFBvaW50RG93biwgZmFGYWNlTWVoQmxhbmssIGZhTWVoQmxhbmssIGZhRmFjZUdyaW5Ub25ndWUsIGZhR3JpblRvbmd1ZSwgZmFGdXRib2wsIGZhRnV0Ym9sQmFsbCwgZmFTb2NjZXJCYWxsLCBmYUZhY2VTdXJwcmlzZSwgZmFTdXJwcmlzZSwgZmFGb2xkZXIsIGZhRm9sZGVyQmxhbmssIGZhQ2xvdWQsIGZhQ2lyY2xlLCBmYUZhY2VHcmluU3F1aW50LCBmYUdyaW5TcXVpbnQsIGZhQ2lyY2xlVXNlciwgZmFVc2VyQ2lyY2xlLCBmYVJlY3RhbmdsZUxpc3QsIGZhTGlzdEFsdCwgZmFIYW5kLCBmYUhhbmRQYXBlciwgZmFUaHVtYnNVcCwgZmFCdWlsZGluZywgZmFDaGVzc1Jvb2ssIGZhQ2lyY2xlUXVlc3Rpb24sIGZhUXVlc3Rpb25DaXJjbGUsIGZhRmlsZSwgZmFGYWNlU2FkQ3J5LCBmYVNhZENyeSwgZmFDYWxlbmRhck1pbnVzLCBmYUZhY2VUaXJlZCwgZmFUaXJlZCwgZmFIYW5kUG9pbnRSaWdodCwgZmFDaXJjbGVVcCwgZmFBcnJvd0FsdENpcmNsZVVwLCBmYUhhbmRTY2lzc29ycywgZmFHZW0sIGZhUmVjdGFuZ2xlWG1hcmssIGZhUmVjdGFuZ2xlVGltZXMsIGZhVGltZXNSZWN0YW5nbGUsIGZhV2luZG93Q2xvc2UsIGZhVHJhc2hDYW4sIGZhVHJhc2hBbHQsIGZhTGlmZVJpbmcsIGZhQ29weXJpZ2h0LCBmYUNpcmNsZUxlZnQsIGZhQXJyb3dBbHRDaXJjbGVMZWZ0LCBmYUNhbGVuZGFyLCBmYUZhY2VGcm93bk9wZW4sIGZhRnJvd25PcGVuLCBmYUNoYXJ0QmFyLCBmYUJhckNoYXJ0LCBmYUhvdXNlLCBmYUhvbWUsIGZhSG9tZUFsdCwgZmFIb21lTGdBbHQsIGZhRmFjZUZyb3duLCBmYUZyb3duLCBmYVVzZXIsIGZhVXNlckFsdCwgZmFVc2VyTGFyZ2UsIGZhU25vd2ZsYWtlLCBmYUJvb2ttYXJrLCBmYVNxdWFyZUNhcmV0TGVmdCwgZmFDYXJldFNxdWFyZUxlZnQsIGZhSGFuZHNoYWtlLCBmYUhhbmRzaGFrZUFsdCwgZmFIYW5kc2hha2VTaW1wbGUsIGZhRmFjZVNtaWxlV2luaywgZmFTbWlsZVdpbmssIGZhRmFjZUdyaW5TcXVpbnRUZWFycywgZmFHcmluU3F1aW50VGVhcnMsIGZhRmlsZUF1ZGlvLCBmYUNhbGVuZGFyWG1hcmssIGZhQ2FsZW5kYXJUaW1lcywgZmFDaXJjbGVEb3duLCBmYUFycm93QWx0Q2lyY2xlRG93biwgZmFGaWxlTGluZXMsIGZhRmlsZUFsdCwgZmFGaWxlVGV4dCwgZmFDb21tZW50cywgZmFDaXJjbGVDaGVjaywgZmFDaGVja0NpcmNsZSwgZmFNb29uLCBmYUNsb3NlZENhcHRpb25pbmcsIGZhSW1hZ2VzLCBmYUNpcmNsZVJpZ2h0LCBmYUFycm93QWx0Q2lyY2xlUmlnaHQsIGZhSWRDYXJkLCBmYURyaXZlcnNMaWNlbnNlLCBmYUNpcmNsZVBsYXksIGZhUGxheUNpcmNsZSwgZmFGYWNlTGF1Z2hCZWFtLCBmYUxhdWdoQmVhbSwgZmFBZGRyZXNzQm9vaywgZmFDb250YWN0Qm9vaywgZmFIb3VyZ2xhc3MsIGZhSG91cmdsYXNzRW1wdHksIGZhSGVhZHBob25lcywgZmFIZWFkcGhvbmVzQWx0LCBmYUhlYWRwaG9uZXNTaW1wbGUsIGZhRmlsZVBvd2VycG9pbnQsIGZhV2luZG93TWF4aW1pemUsIGZhQ29tbWVudERvdHMsIGZhQ29tbWVudGluZywgZmFGYWNlR3JpblRvbmd1ZVdpbmssIGZhR3JpblRvbmd1ZVdpbmssIGZhSG91cmdsYXNzSGFsZiwgZmFIb3VyZ2xhc3MyLCBmYUNyZWRpdENhcmQsIGZhQ3JlZGl0Q2FyZEFsdCwgZmFIYW5kU3BvY2ssIGZhQmVsbFNsYXNoLCBmYVN0YXIsIGZhRmxhZywgZmFMZW1vbiwgZmFXaW5kb3dSZXN0b3JlLCBmYUZhY2VHcmluSGVhcnRzLCBmYUdyaW5IZWFydHMsIGZhRmFjZUtpc3NCZWFtLCBmYUtpc3NCZWFtLCBmYUZpbGVQZGYsIGZhRmFjZUdyaW5XaWRlLCBmYUdyaW5BbHQsIGZhRmFjZUxhdWdoU3F1aW50LCBmYUxhdWdoU3F1aW50LCBmYUZhY2VLaXNzV2lua0hlYXJ0LCBmYUtpc3NXaW5rSGVhcnQsIGZhQ29weSwgZmFDaGVzc0tpbmcsIGZhU3F1YXJlUGx1cywgZmFQbHVzU3F1YXJlLCBmYUZpbGVDb2RlLCBmYUZhY2VHcmluV2luaywgZmFHcmluV2luaywgZmFNb25leUJpbGwxLCBmYU1vbmV5QmlsbEFsdCwgZmFFeWVTbGFzaCwgZmFGaWxlV29yZCwgZmFGYWNlQW5ncnksIGZhQW5ncnksIGZhQ2hlc3NLbmlnaHQsIGZhRmFjZUdyaW5CZWFtLCBmYUdyaW5CZWFtLCBmYUhhbmRQZWFjZSwgZmFDb21wYXNzLCBmYVNxdWFyZSwgZmFGYWNlR3JpbiwgZmFHcmluLCBmYUZhY2VTbWlsZSwgZmFTbWlsZSwgZmFGYWNlU21pbGVCZWFtLCBmYVNtaWxlQmVhbSwgZmFGb2xkZXJDbG9zZWQsIGZhS2V5Ym9hcmQsIGZhRmFjZVJvbGxpbmdFeWVzLCBmYU1laFJvbGxpbmdFeWVzLCBmYUZhY2VHcmltYWNlLCBmYUdyaW1hY2UsIGZhQ2lyY2xlRG90LCBmYURvdENpcmNsZSwgZmFPYmplY3RHcm91cCwgZmFGYWNlRmx1c2hlZCwgZmFGbHVzaGVkLCBmYVN0YXJIYWxmU3Ryb2tlLCBmYVN0YXJIYWxmQWx0LCBmYUZpbGVWaWRlbywgZmFGYWNlTGF1Z2gsIGZhTGF1Z2gsIGZhSGFuZFBvaW50ZXIsIGZhUmVnaXN0ZXJlZCB9O1xuIiwgIi8qIVxuICogRm9udCBBd2Vzb21lIEZyZWUgNy4xLjAgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb21cbiAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpXG4gKiBDb3B5cmlnaHQgMjAyNSBGb250aWNvbnMsIEluYy5cbiAqL1xudmFyIHByZWZpeCA9IFwiZmFzXCI7XG52YXIgZmEwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJzAnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcIjMwXCIsIFwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJzMTYwIDcxLjYgMTYwIDE2MGwwIDEyOGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwTDAgMTkyek0xNjAgOTZjLTUzIDAtOTYgNDMtOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2elwiXVxufTtcbnZhciBmYTEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnMScsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiMzFcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDY0IDAgMCAzMjAtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMnpcIl1cbn07XG52YXIgZmEyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJzInLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcIjMyXCIsIFwiTTQ4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE3MSAwYzYwLjIgMCAxMDkgNDguOCAxMDkgMTA5IDAgNDMuOC0yNi4yIDgzLjMtNjYuNCAxMDAuNGwtMTM5LjEgNTlDMTE5IDMxNS40IDk2IDM1MC4yIDk2IDM4OC43bDAgMjcuMyAyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuM2MwLTY0LjIgMzguNC0xMjIuMiA5Ny41LTE0Ny4zbDEzOS4xLTU5YzE2LjYtNy4xIDI3LjQtMjMuNCAyNy40LTQxLjQgMC0yNC45LTIwLjItNDUtNDUtNDVMODAgOTZDNjIuMyA5NiA0OCA4MS43IDQ4IDY0elwiXVxufTtcbnZhciBmYTMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnMycsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiMzNcIiwgXCJNODAgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOCAwIDM4LjItMTYuOCA3Mi41LTQzLjMgOTYgMjYuNiAyMy41IDQzLjMgNTcuOCA0My4zIDk2IDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4TDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NEw4MCAyODh6XCJdXG59O1xudmFyIGZhNCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICc0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCIzNFwiLCBcIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjI0LTE5MiAwIDAtMjI0elwiXVxufTtcbnZhciBmYTUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnNScsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiMzVcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDAgMCAxMTIgMTIwIDBjNzUuMSAwIDEzNiA2MC45IDEzNiAxMzZTMjU5LjEgNDgwIDE4NCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE1MiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcyTDMyIDI3MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA2NHpcIl1cbn07XG52YXIgZmE2ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJzYnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcIjM2XCIsIFwiTTI1NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODggMGMtNDguNiAwLTg4IDM5LjQtODggODhsMCAzMi4yYzIyLjktMTUuMyA1MC40LTI0LjIgODAtMjQuMmw0OCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzI4Ny41IDQ4MCAyMDggNDgwbC00OCAwQzgwLjUgNDgwIDE2IDQxNS41IDE2IDMzNmwwLTE1MkMxNiAxMDAuMSA4NC4xIDMyIDE2OCAzMmw4OCAwek04MCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6XCJdXG59O1xudmFyIGZhNyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICc3JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCIzN1wiLCBcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI1NiAwYzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTIyNCAzODRjLTguOSAxNS4zLTI4LjUgMjAuNC00My44IDExLjVzLTIwLjQtMjguNS0xMS41LTQzLjhMMjMyLjMgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpcIl1cbn07XG52YXIgZmE4ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJzgnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcIjM4XCIsIFwiTTMwNCAxNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTMyIDBjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4IDAgMzQuNiAxMy43IDY2IDM2IDg5LTMxLjUgMjMuMy01MiA2MC44LTUyIDEwMyAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw2NCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDIuMi0yMC41LTc5LjctNTItMTAzIDIyLjMtMjMgMzYtNTQuNCAzNi04OXpNMTc2LjEgMjg4bDE1LjkgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OC4xIDB6bTAtNjRMMTQ0IDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDM1LjMtMjguNiA2NC02NCA2NHpcIl1cbn07XG52YXIgZmE5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJzknLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcIjM5XCIsIFwiTTIwOCAzMjBjMjkuNiAwIDU3LjEtOC45IDgwLTI0LjJsMCAzMi4yYzAgNDguNi0zOS40IDg4LTg4IDg4TDk2IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMDQgMGM4My45IDAgMTUyLTY4LjEgMTUyLTE1MmwwLTE1Mi4xQzM1MS45IDk2LjQgMjg3LjUgMzIgMjA4IDMybC00OCAwQzgwLjUgMzIgMTYgOTYuNSAxNiAxNzZTODAuNSAzMjAgMTYwIDMyMGw0OCAwem04MC0xNDRjMCA0NC4yLTM1LjggODAtODAgODBsLTQ4IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwczM1LjgtODAgODAtODBsNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MHpcIl1cbn07XG52YXIgZmFEb2xsYXJTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RvbGxhci1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTI4MTc4LCA2MTc4MSwgXCJkb2xsYXJcIiwgXCJ1c2RcIl0sIFwiMjRcIiwgXCJNMTM2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCA1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMTQuOSAwYy0yNC45IDAtNDUuMSAyMC4yLTQ1LjEgNDUuMSAwIDIyLjUgMTYuNSA0MS41IDM4LjcgNDQuN2w5MS42IDEzLjFjNTMuOCA3LjcgOTMuNyA1My43IDkzLjcgMTA4IDAgNjAuMy00OC45IDEwOS4xLTEwOS4xIDEwOS4xbC0xMC45IDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwLTcyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTMwLjkgMGMyNC45IDAgNDUuMS0yMC4yIDQ1LjEtNDUuMSAwLTIyLjUtMTYuNS00MS41LTM4LjctNDQuN2wtOTEuNi0xMy4xQzU1LjkgMjczLjUgMTYgMjI3LjQgMTYgMTczLjEgMTYgMTEyLjkgNjQuOSA2NCAxMjUuMSA2NGwxMC45IDAgMC00MHpcIl1cbn07XG52YXIgZmFEb2xsYXIgPSBmYURvbGxhclNpZ247XG52YXIgZmFVc2QgPSBmYURvbGxhclNpZ247XG52YXIgZmFEb2cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG9nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MDIxXSwgXCJmNmQzXCIsIFwiTTMyIDExMmMxNi42IDAgMzAuMiAxMi42IDMxLjggMjguN2wuMyA2LjZDNjUuOCAxNjMuNCA3OS40IDE3NiA5NiAxNzZsMTc5LjEgMCAxNDAuOSA2MC40IDAgMjQzLjZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTMxLjNDMjk2IDM2MSAyNjguOCAzNjggMjQwIDM2OHMtNTYtNy04MC0xOS4zTDE2MCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjQ1LjZjLTM3LjMtMTMuMi02NC00OC42LTY0LTkwLjQgMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1NS44LTMyYzcuNyAwIDE0LjkgMy42IDE5LjYgOS44TDM5MiAwIDQ0NC4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMUw0OTYgMzIgNTUyIDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCA0NC4yLTM1LjggODAtODAgODBsLTY0IDAtNyAyOC0xMjQuNy01My40IDMxLjYtMTQ3LjJDMzM0LjMtMjMuOSAzNDQuMi0zMiAzNTUuOC0zMnpNNDQ4IDQ0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHpcIl1cbn07XG52YXIgZmFUcnVja01vdmluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1tb3ZpbmcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0ZGZcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQyNGMwIDQ4LjYgMzkuNCA4OCA4OCA4OCAyNS4yIDAgNDgtMTAuNiA2NC0yNy42IDE2IDE3IDM4LjggMjcuNiA2NCAyNy42IDQwLjMgMCA3NC4yLTI3LjEgODQuNy02NGwxMzQuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjQgNDMgMCA3OC45LTMwLjkgODYuNS03MS43IDIwLTEwLjggMzMuNS0zMiAzMy41LTU2LjNsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1NzYgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00ODAgMTkybDUwLjcgMCA0NS4zIDQ1LjMgMCA1MC43LTk2IDAgMC05NnpNODggMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMzkyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTIxNiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwelwiXVxufTtcbnZhciBmYVJvdGF0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb3RhdGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyNjAsIFwic3luYy1hbHRcIl0sIFwiZjJmMVwiLCBcIk00ODAuMSAxOTJsNy45IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xNDRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IC4yIDQ3MSA3TDQxOS4zIDU4LjhDMzc1IDIyLjEgMzE4IDAgMjU2IDAgMTI3IDAgMjAuMyA5NS40IDIuNiAyMTkuNSAuMSAyMzcgMTIuMiAyNTMuMiAyOS43IDI1NS43czMzLjctOS43IDM2LjItMjcuMUM3OS4yIDEzNS41IDE1OS4zIDY0IDI1NiA2NCAzMDAuNCA2NCAzNDEuMiA3OSAzNzMuNyAxMDQuM0wzMjcgMTUxYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yUzMzNC4zIDE5MiAzNDQgMTkybDEzNi4xIDB6bTI5LjQgMTAwLjVjMi41LTE3LjUtOS43LTMzLjctMjcuMS0zNi4ycy0zMy43IDkuNy0zNi4yIDI3LjFjLTEzLjMgOTMtOTMuNCAxNjQuNS0xOTAuMSAxNjQuNS00NC40IDAtODUuMi0xNS0xMTcuNy00MC4zTDE4NSAzNjFjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNzcuNyAzMjAgMTY4IDMyMEwyNCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0TDAgNDg4YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDUxMS44IDQxIDUwNWw1MS44LTUxLjhDMTM3IDQ4OS45IDE5NCA1MTIgMjU2IDUxMiAzODUgNTEyIDQ5MS43IDQxNi42IDUwOS40IDI5Mi41elwiXVxufTtcbnZhciBmYVN5bmNBbHQgPSBmYVJvdGF0ZTtcbnZhciBmYVNxdWFyZU1pbnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1taW51cycsXG4gIGljb246IFs0NDgsIDUxMiwgWzYxNzY3LCBcIm1pbnVzLXNxdWFyZVwiXSwgXCJmMTQ2XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTcyIDIwMGwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhTWludXNTcXVhcmUgPSBmYVNxdWFyZU1pbnVzO1xudmFyIGZhQWxpZ25KdXN0aWZ5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FsaWduLWp1c3RpZnknLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwMzlcIiwgXCJNNDQ4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnptMCAyNTZjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0wIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek00NDggNDQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpcIl1cbn07XG52YXIgZmFDYWxlbmRhckNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbGVuZGFyLWNoZWNrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjc0XCIsIFwiTTMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMjIgMTYxLjdjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zTDE4OS4xIDMzMS4yIDEzNyAyNzkuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM1IDUgMTEuOSA3LjUgMTguOCA3czEzLjQtNC4xIDE3LjUtOS44TDM0Ny4zIDE5NS4yYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41elwiXVxufTtcbnZhciBmYUZhY2VLaXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2Uta2lzcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUzNSwgXCJraXNzXCJdLCBcImY1OTZcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCAyODhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTk2LTgwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xudmFyIGZhS2lzcyA9IGZhRmFjZUtpc3M7XG52YXIgZmFLaXRjaGVuU2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2tpdGNoZW4tc2V0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTFhXCIsIFwiTTI0MCAxNDRhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwem00NC40IDMyQzI2OS45IDI0MC4xIDIxMi41IDI4OCAxNDQgMjg4IDY0LjUgMjg4IDAgMjIzLjUgMCAxNDRTNjQuNSAwIDE0NCAwYzY4LjUgMCAxMjUuOSA0Ny45IDE0MC40IDExMmw3MS44IDBjOC44LTkuOCAyMS42LTE2IDM1LjgtMTZsMTA0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTEwNCAwYy0xNC4yIDAtMjctNi4yLTM1LjgtMTZsLTcxLjggMHpNMTQ0IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00MDAgMjQwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOCA5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5NiAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjg4IDQ2NGwwLTExMiAyMjQgMCAwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4ek00OCAzMjBsMTI4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE2IDBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBjMC04LjggNy4yLTE2IDE2LTE2em0xMjggNjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDAgMCAzMiAxNiAwek0yNCA0NjRsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYURuYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkbmEnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjk1MTZdLCBcImY0NzFcIiwgXCJNMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCA1Ny44LTI0LjQgMTA0LjgtNTcuNCAxNDQuNS0yNC4xIDI4LjktNTMuOCA1NS4xLTgzLjYgNzkuNSAyOS44IDI0LjUgNTkuNSA1MC42IDgzLjYgNzkuNSAzMyAzOS42IDU3LjQgODYuNyA1Ny40IDE0NC41IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwQzAgNDIyLjIgMjQuNCAzNzUuMiA1Ny40IDMzNS41IDgxLjUgMzA2LjYgMTExLjIgMjgwLjUgMTQxIDI1NiAxMTEuMiAyMzEuNSA4MS41IDIwNS40IDU3LjQgMTc2LjUgMjQuNCAxMzYuOCAwIDg5LjggMCAzMiAwIDE0LjMgMTQuMyAwIDMyIDBTNjQgMTQuMyA2NCAzMmwyNTYgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjgzLjUgMzg0bC0xODIuOSAwYy04LjIgMTAuNS0xNS4xIDIxLjEtMjAuNiAzMmwyMjQuMiAwYy01LjYtMTAuOS0xMi41LTIxLjUtMjAuNi0zMnpNMjM4IDMzNmMtMTQuMy0xMy0yOS44LTI1LjgtNDYtMzktMTYuMiAxMy4xLTMxLjcgMjYtNDYgMzlsOTIgMHpNMTAwLjUgMTI4bDE4Mi45IDBjOC4yLTEwLjUgMTUuMS0yMS4xIDIwLjYtMzJMNzkuOSA5NmM1LjYgMTAuOSAxMi41IDIxLjUgMjAuNiAzMnpNMTQ2IDE3NmMxNC4zIDEzIDI5LjggMjUuOCA0NiAzOSAxNi4yLTEzLjEgMzEuNy0yNiA0Ni0zOWwtOTIgMHpcIl1cbn07XG52YXIgZmFDaGlsZFJlYWNoaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoaWxkLXJlYWNoaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlNTlkXCIsIFwiTTI1NiA2NGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTE1Mi45IDE2OS4zYy0yMy43LTguNC00NC41LTI0LjMtNTguOC00NS44TDc0LjYgOTQuMkM2NC44IDc5LjUgNDUgNzUuNiAzMC4zIDg1LjRTMTEuNiAxMTUgMjEuNCAxMjkuOEw0MC45IDE1OWMxOC4xIDI3LjEgNDIuOCA0OC40IDcxLjEgNjIuNEwxMTIgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1OC40YzI5LjEtMTQuMiA1NC40LTM2LjIgNzIuNy02NC4ybDE4LjItMjcuOWM5LjYtMTQuOCA1LjQtMzQuNi05LjQtNDQuM3MtMzQuNi01LjUtNDQuMyA5LjRMMjkxIDEyMi40Yy0yMS44IDMzLjQtNTguOSA1My42LTk4LjggNTMuNi0xMi42IDAtMjQuOS0yLTM2LjYtNS44LS45LS4zLTEuOC0uNy0yLjctLjl6XCJdXG59O1xudmFyIGZhUGFzdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFzdGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImZpbGUtY2xpcGJvYXJkXCJdLCBcImYwZWFcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTEyIDAgMC0yMjRjMC02MS45IDUwLjEtMTEyIDExMi0xMTJsNjQgMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTI0OCAxMTJsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0em00MCA0OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNjUuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM2wtNTguNS01OC41Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDI4OCAxNjB6XCJdXG59O1xudmFyIGZhRmlsZUNsaXBib2FyZCA9IGZhUGFzdGU7XG52YXIgZmFNZXRlb3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWV0ZW9yJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTczMl0sIFwiZjc1M1wiLCBcIk00OTMuNyAuOWwtMTk0LjIgNzQuNyAyLjMtMjkuM2MxLTEyLjgtMTIuOC0yMS41LTI0LTE1LjFMMTAxLjMgMTMzLjRDMzguNiAxNjkuNyAwIDIzNi42IDAgMzA5IDAgNDIxLjEgOTAuOSA1MTIgMjAzIDUxMiAyNzUuNCA1MTIgMzQyLjMgNDczLjQgMzc4LjYgNDEwLjdMNDgwLjggMjM0LjNjNi41LTExLjEtMi4yLTI1LTE1LjEtMjRsLTI5LjMgMi4zIDc0LjctMTk0LjJjLjYtMS41IC45LTMuMiAuOS00LjggMC03LjUtNi0xMy41LTEzLjUtMTMuNS0xLjcgMC0zLjMgLjMtNC44IC45ek0xOTIgMTkyYTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnptMCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNiA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6XCJdXG59O1xudmFyIGZhR2VhcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2VhcnMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImNvZ3NcIl0sIFwiZjA4NVwiLCBcIk00MTUuOSAyMTAuNWMxMi4yLTMuMyAyNSAyLjUgMzAuNSAxMy44TDQ2NSAyNjEuOWMxMC4zIDEuNCAyMC40IDQuMiAyOS45IDguMWwzNS0yMy4zYzEwLjUtNyAyNC40LTUuNiAzMy4zIDMuM2wxOS4yIDE5LjJjOC45IDguOSAxMC4zIDIyLjkgMy4zIDMzLjNsLTIzLjMgMzQuOWMxLjkgNC43IDMuNiA5LjYgNSAxNC43IDEuNCA1LjEgMi4zIDEwLjEgMyAxNS4ybDM3LjcgMTguNmMxMS4zIDUuNiAxNy4xIDE4LjQgMTMuOCAzMC41bC03IDI2LjJjLTMuMyAxMi4xLTE0LjYgMjAuMy0yNy4yIDE5LjVsLTQyLTIuN2MtNi4zIDguMS0xMy42IDE1LjYtMjEuOSAyMmwyLjcgNDEuOWMuOCAxMi42LTcuNCAyNC0xOS41IDI3LjJsLTI2LjIgN2MtMTIuMiAzLjMtMjQuOS0yLjUtMzAuNS0xMy44bC0xOC42LTM3LjZjLTEwLjMtMS40LTIwLjQtNC4yLTI5LjktOC4xbC0zNSAyMy4zYy0xMC41IDctMjQuNCA1LjYtMzMuMy0zLjNsLTE5LjItMTkuMmMtOC45LTguOS0xMC4zLTIyLjgtMy4zLTMzLjNsMjMuMy0zNWMtMS45LTQuNy0zLjYtOS42LTUtMTQuN3MtMi4zLTEwLjItMy0xNS4ybC0zNy43LTE4LjZjLTExLjMtNS42LTE3LTE4LjQtMTMuOC0zMC41bDctMjYuMmMzLjMtMTIuMSAxNC42LTIwLjMgMjcuMi0xOS41bDQxLjkgMi43YzYuMy04LjEgMTMuNi0xNS42IDIxLjktMjJsLTIuNy00MS44Yy0uOC0xMi42IDcuNC0yNCAxOS41LTI3LjJsMjYuMi03ek00NDguNCAzNDBhNDQgNDQgMCAxIDAgLjEgODggNDQgNDQgMCAxIDAgLS4xLTg4ek0yMjQuOS00NS41bDI2LjIgN2MxMi4xIDMuMyAyMC4zIDE0LjcgMTkuNSAyNy4ybC0yLjcgNDEuOGM4LjMgNi40IDE1LjYgMTMuOCAyMS45IDIybDQyLTIuN2MxMi41LS44IDIzLjkgNy40IDI3LjIgMTkuNWw3IDI2LjJjMy4yIDEyLjEtMi41IDI0LjktMTMuOCAzMC41bC0zNy43IDE4LjZjLS43IDUuMS0xLjcgMTAuMi0zIDE1LjJzLTMuMSAxMC01IDE0LjdsMjMuMyAzNWM3IDEwLjUgNS42IDI0LjQtMy4zIDMzLjNMMzA3LjMgMjYyYy04LjkgOC45LTIyLjggMTAuMy0zMy4zIDMuM0wyMzkgMjQyYy05LjUgMy45LTE5LjYgNi43LTI5LjkgOC4xbC0xOC42IDM3LjZjLTUuNiAxMS4zLTE4LjQgMTctMzAuNSAxMy44bC0yNi4yLTdjLTEyLjItMy4zLTIwLjMtMTQuNy0xOS41LTI3LjJsMi43LTQxLjljLTguMy02LjQtMTUuNi0xMy44LTIxLjktMjJsLTQyIDIuN2MtMTIuNSAuOC0yMy45LTcuNC0yNy4yLTE5LjVsLTctMjYuMmMtMy4yLTEyLjEgMi41LTI0LjkgMTMuOC0zMC41bDM3LjctMTguNmMuNy01LjEgMS43LTEwLjEgMy0xNS4yIDEuNC01LjEgMy0xMCA1LTE0LjdMNTUuMSA0Ni41Yy03LTEwLjUtNS42LTI0LjQgMy4zLTMzLjNMNzcuNi02YzguOS04LjkgMjIuOC0xMC4zIDMzLjMtMy4zbDM1IDIzLjNjOS41LTMuOSAxOS42LTYuNyAyOS45LTguMWwxOC42LTM3LjZjNS42LTExLjMgMTguMy0xNyAzMC41LTEzLjh6TTE5Mi40IDg0YTQ0IDQ0IDAgMSAwIDAgODggNDQgNDQgMCAxIDAgMC04OHpcIl1cbn07XG52YXIgZmFDb2dzID0gZmFHZWFycztcbnZhciBmYUZpbGVDaXJjbGVQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY2lyY2xlLXBsdXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs1ODYwNl0sIFwiZTQ5NFwiLCBcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0xNi0yMDhsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwiXVxufTtcbnZhciBmYUljaWNsZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWNpY2xlcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdhZFwiLCBcIk03NS44IDMwNC44TDEgMzUuN0MuMyAzMy4yIDAgMzAuNyAwIDI4LjIgMCAxMi42IDEyLjYgMCAyOC4yIDBMNDgyLjQgMGMxNi4zIDAgMjkuNiAxMy4yIDI5LjYgMjkuNiAwIDEuNi0uMSAzLjMtLjQgNC45TDQzNC42IDQ5Ni4xYy0xLjUgOS4yLTkuNSAxNS45LTE4LjggMTUuOS05LjIgMC0xNy4xLTYuNi0xOC43LTE1LjZMMzM2IDE2MCAzMDcuMiAzMDMuOWMtMS45IDkuMy0xMC4xIDE2LjEtMTkuNiAxNi4xLTkuMiAwLTE3LjItNi4yLTE5LjQtMTUuMUwyNDAgMTkyIDIxMC42IDM2OC4yYy0xLjUgOS4xLTkuNCAxNS44LTE4LjYgMTUuOHMtMTcuMS02LjctMTguNi0xNS44TDE0NCAxOTIgMTE1LjkgMzA0LjNjLTIuMyA5LjItMTAuNiAxNS43LTIwLjEgMTUuNy05LjMgMC0xNy41LTYuMi0yMC0xNS4yelwiXVxufTtcbnZhciBmYUFycm93VHJlbmRVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy10cmVuZC11cCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTA5OFwiLCBcIk0zODQgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODIuNy0xNjkuNCAxNjkuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMMTkyIDI2OS4zIDU0LjYgNDA2LjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBMMzIwIDMwNi43IDQ2Ni43IDE2MCAzODQgMTYwelwiXVxufTtcbnZhciBmYUhleGFnb25Ob2Rlc0JvbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGV4YWdvbi1ub2Rlcy1ib2x0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNjlhXCIsIFwiTTI0OCAxMDYuNmMxOC45LTkgMzItMjguMyAzMi01MC42YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2YzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTIuOCAxLjMtNS41IDIuOS04IDQuN2wtODAuMS00NS44YzEuNi0yMC44LTguNi00MS42LTI3LjktNTIuOEM1Ny4yIDk2IDIzIDEwNS4yIDcuNSAxMzJTMS4yIDE5MyAyOCAyMDguNWMxLjMgLjggMi42IDEuNSA0IDIuMWwwIDkwLjhjLTEuMyAuNi0yLjcgMS4zLTQgMi4xQzEuMiAzMTktOCAzNTMuMiA3LjUgMzgwUzU3LjIgNDE2IDg0IDQwMC41YzE5LjMtMTEuMSAyOS40LTMyIDI3LjgtNTIuOGw1MC41LTI4LjljLTExLjUtMTEuMi0xOS45LTI1LjYtMjMuOC00MS43TDg4IDMwNi4xYy0yLjYtMS44LTUuMi0zLjMtOC00LjdsMC05MC44YzIuOC0xLjMgNS41LTIuOSA4LTQuN2w4MC4xIDQ1LjhjLS4xIDEuNC0uMiAyLjgtLjIgNC4zYzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTE4LjkgOS0zMiAyOC4zLTMyIDUwLjZjMCAzMC45IDI1LjEgNTYgNTYgNTZjMzAuNyAwIDU1LjYtMjQuNyA1Ni01NS4yYy03LjUtMTIuOS0xMy41LTI2LjgtMTcuNi00MS41Yy00LjItNC05LjEtNy4zLTE0LjQtOS45bDAtOTguOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsMTAuNSA2YzUuNS0xNS4zIDEzLjEtMjkuNSAyMi40LTQyLjVsLTkuMS01LjJjLjEtMS40IC4yLTIuOCAuMi00LjNjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOHpNNDQwLjUgMTMyQzQyNSAxMDUuMiAzOTAuOCA5NiAzNjQgMTExLjVjLTE5LjMgMTEuMS0yOS40IDMyLTI3LjggNTIuOGwtNTAuNiAyOC45YzExLjUgMTEuMiAxOS45IDI1LjYgMjMuOCA0MS43TDM2MCAyMDUuOWMuNCAuMyAuOCAuNiAxLjMgLjljMjEuNy05LjUgNDUuNi0xNC44IDcwLjgtMTQuOGMyIDAgNCAwIDUuOSAuMWMxMi4xLTE3LjMgMTMuOC00MC42IDIuNi02MC4xek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNDcuOS0yMjVjNC4zIDMuNyA1LjQgOS45IDIuNiAxNC45TDQ1Mi40IDM1NmwzNS42IDBjNS4yIDAgOS44IDMuMyAxMS40IDguMnMtLjEgMTAuMy00LjIgMTMuNGwtOTYgNzJjLTQuNSAzLjQtMTAuOCAzLjItMTUuMS0uNnMtNS40LTkuOS0yLjYtMTQuOUw0MTEuNiAzODAgMzc2IDM4MGMtNS4yIDAtOS44LTMuMy0xMS40LTguMnMuMS0xMC4zIDQuMi0xMy40bDk2LTcyYzQuNS0zLjQgMTAuOC0zLjIgMTUuMSAuNnpcIl1cbn07XG52YXIgZmFRdWVzdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdxdWVzdGlvbicsXG4gIGljb246IFszMjAsIDUxMiwgWzEwMDY3LCAxMDA2OCwgNjE3MzZdLCBcIjNmXCIsIFwiTTY0IDE2MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDIuNy0yNy45IDc4LjktNjYuNSA5MS40LTI4LjQgOS4yLTYxLjUgMzUuMy02MS41IDc2LjZsMCAyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjRjMC0xLjcgLjYtNC4xIDMuNS03LjMgMy0zLjMgNy45LTYuNSAxMy43LTguNCA2NC4zLTIwLjcgMTEwLjgtODEgMTEwLjgtMTUyLjMgMC04OC40LTcxLjYtMTYwLTE2MC0xNjBTMCA3MS42IDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6bTk2IDM1MmMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MC00MCAxNy45LTQwIDQwIDE3LjkgNDAgNDAgNDB6XCJdXG59O1xudmFyIGZhSGFuZHNCb3VuZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kcy1ib3VuZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRmOVwiLCBcIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgMjEzLjljMCAxNC4yIDUuMSAyNy45IDE0LjMgMzguN0w5OS42IDM1MiA5NiAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMuNiAwIDg1LjMtOTkuNWM5LjItMTAuOCAxNC4zLTI0LjUgMTQuMy0zOC43TDU3NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMi44LTY5LjMgOTIuNGMtNS43IDcuNi0xNi4xIDkuNi0yNC4yIDQuOC05LjctNS43LTEyLjEtMTguNy01LjEtMjcuNUw0NDEgMTgwYzEwLjgtMTMuNSA4LjktMzMuMy00LjQtNDQuNXMtMzMtOS44LTQ0LjUgMy4ybC00Ni43IDUyLjVDMzI5IDIwOS43IDMyMCAyMzMuNCAzMjAgMjU4LjFsMCA5My45LTY0IDAgMC05My45YzAtMjQuNi05LTQ4LjQtMjUuNC02Ni44bC00Ni43LTUyLjVjLTExLjUtMTMtMzEuMy0xNC40LTQ0LjUtMy4yUzEyNC4yIDE2Ni40IDEzNSAxODBsMjcuNiAzNC41YzcgOC44IDQuNyAyMS44LTUuMSAyNy41LTguMSA0LjgtMTguNiAyLjctMjQuMi00LjhMNjQgMTQ0LjggNjQgMzJ6bTY0IDQ0OGwwIDMyIDEyOCAwIDAtMzIgNjQgMCAwIDMyIDEyOCAwIDAtMzIgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw5NiA0MzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMHpcIl1cbn07XG52YXIgZmFQZXJzb25XYWxraW5nTHVnZ2FnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24td2Fsa2luZy1sdWdnYWdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTU0XCIsIFwiTTI2NC4zIDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptLTggMTgxLjNsLTIyLjYgMjIuNmMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDEyLjMtNyAyMy0xNy4yIDI4LjQtLjkgNC4yLTIuNCA4LjQtNC4zIDEyLjNsLTY5IDEzOC4xLS44LS40LTI3LjcgNTUuM2MtOS45IDE5LjgtMzMuOSAyNy44LTUzLjcgMTcuOUwxNC42IDUyMWMtMTkuOC05LjktMjcuOC0zMy45LTE3LjktNTMuN0w0Ny4zIDM2Ni4zYzkuOS0xOS44IDMzLjktMjcuOCA1My43LTE3LjlsMzAuNyAxNS4zIDI4LjMtNTYuNmMuMy0uNiAuNC0xLjIgLjQtMS44bDAtMTYuOWMwLS4yIDAtLjMgMC0uNWwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzUuMS0zNS4xYzIyLjgtMjIuOCA1My42LTM1LjYgODUuOC0zNS42IDM2LjkgMCA3MS44IDE2LjggOTQuOCA0NS42TDQyMi4xIDE4MGM2LjEgNy42IDE1LjMgMTIgMjUgMTJsMzMuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMy4yIDBjLTI5LjIgMC01Ni43LTEzLjMtNzUtMzZsLTMuOC00LjcgMCAxMTUuMiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNMNDQ4IDUwNy41YzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4yTDM3MiA0MjguNGMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3ptLjEgMTY1LjhjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNWwtNjguMyA2OC4zYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyMzggNDIxLjFjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDI1Ni40IDM3MXpcIl1cbn07XG52YXIgZmFGaWxlQXJyb3dEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtYXJyb3ctZG93bicsXG4gIGljb246IFszODQsIDUxMiwgW1wiZmlsZS1kb3dubG9hZFwiXSwgXCJmNTZkXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNzUgNDQxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDY0LTY0YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzIDAtODYuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDg2LjEtMjMtMjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjR6XCJdXG59O1xudmFyIGZhRmlsZURvd25sb2FkID0gZmFGaWxlQXJyb3dEb3duO1xudmFyIGZhUGVyc29uQm9vdGggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWJvb3RoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzU2XCIsIFwiTTQwIDI0QTU2IDU2IDAgMSAxIDE1MiAyNCA1NiA1NiAwIDEgMSA0MCAyNHptNTEuMSA4OGMyMy41IDAgNDUuNSAxMS4zIDU5LjEgMzAuNGw0OC43IDY4LjJjNiA4LjQgMTUuNyAxMy40IDI2IDEzLjRsMzEuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMS4xIDBjLTMxIDAtNjAuMS0xNS03OC4xLTQwLjJsLTIuOC0zLjkgMCA4MC4xIDQxLjYgMzEuMkMyMDkuOCAzNzMuMyAyMjQgNDAxLjggMjI0IDQzMmwwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODBjMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNkw3MC40IDM0OC44QzQ2LjIgMzMwLjcgMzIgMzAyLjIgMzIgMjcybDAtMTAwLjlDMzIgMTM4LjUgNTguNSAxMTIgOTEuMSAxMTJ6TTMyIDUxMmwwLTEzMi43YzMuMSAyLjcgNi4zIDUuNCA5LjYgNy45TDk2IDQyOCA5NiA1MTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6bTU0NC04OGwwIDk2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzItMTY4IDBjLTcuMSAwLTEzLjgtMy4xLTE4LjQtOC42cy02LjUtMTIuNi01LjMtMTkuNmwzMC43LTE3Ni43LTYzLjEtMTM3LjYgMCA3MmMtNS4yLTEtMTAuNS0xLjYtMTYtMS42bC0zMiAwIDAtMTIwYzAtMzAuOSAyNS4xLTU2IDU2LTU2TDUyMCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgMzY4ek0yODggMzM2YzUuNSAwIDEwLjgtLjYgMTYtMS42TDMwNCA1MjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xODQgMzIgMHpcIl1cbn07XG52YXIgZmFMb2N1c3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbG9jdXN0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTIwXCIsIFwiTTMyOCAzMmMxMzcgMCAyNDggMTExIDI0OCAyNDhsMCA0MC0uNCA4LjJDNTcxLjUgMzY4LjUgNTM3LjQgNDAwIDQ5NiA0MDBsLTEyLjMgMCAyNS4yIDQ0LjFjNi42IDExLjUgMi42IDI2LjItOC45IDMyLjhzLTI2LjIgMi42LTMyLjctOC45bC0zOC44LTY3LjktODAuNCAwLTQ4LjIgNjkuN2MtNy41IDEwLjktMjIuNSAxMy42LTMzLjQgNi4xcy0xMy42LTIyLjUtNi4xLTMzLjRsMjkuMy00Mi4zLTc0LjUgMC01MS43IDcwLjJjLTcuOSAxMC43LTIyLjkgMTIuOS0zMy42IDUuMXMtMTIuOS0yMi45LTUuMS0zMy42bDQwLjUtNTUtNDMtMTYuNC03OS4zIDEwMC41Yy04LjIgMTAuNC0yMy4zIDEyLjItMzMuNyA0cy0xMi4yLTIzLjMtNC0zMy43bDI0MC0zMDQgMi4xLTIuM2M1LjItNS4xIDEyLjUtNy41IDE5LjktNi42IDguNCAxLjEgMTUuNiA2LjUgMTguOSAxNC4zbDIxLjcgNTAuNyA0MC45LTU1LjUgMi4xLTIuNGM1LjEtNS4zIDEyLjUtOCAyMC03LjIgOC41IDEgMTUuOSA2LjUgMTkuMyAxNC40bDQxLjggOTcuNSA2NC4yIDBjMTAuMiAwIDIwIDIgMjkgNS41LTE2LjQtOTQtOTguMy0xNjUuNS0xOTctMTY1LjVsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMHpNNDg4IDI5NmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6TTQzLjUgMzMxLjFDMzYuMiAzMjEuNCAzMiAzMDkuNSAzMiAyOTYuOCAzMiAyNjUuNSA1Ny41IDI0MCA4OC45IDI0MGwyNy42IDAtNzIuOSA5MS4xek0yMjUuMSAyNDBsNDguMiAwIDEuNC0xLjktMTYuOS0zOS41LTMyLjcgNDEuNXptMTA3LjggMGw0Ni43IDAtMTcuMi00MC0yOS41IDQwelwiXVxufTtcbnZhciBmYVJpZ2h0TG9uZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyaWdodC1sb25nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJsb25nLWFycm93LWFsdC1yaWdodFwiXSwgXCJmMzBiXCIsIFwiTTU2Ni42IDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xMjggMTI4Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzODQgMzk2LjkgMzg0IDM4NGwwLTY0LTMzNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMzNiAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWwxMjggMTI4elwiXVxufTtcbnZhciBmYUxvbmdBcnJvd0FsdFJpZ2h0ID0gZmFSaWdodExvbmc7XG52YXIgZmFUcnVja0Ryb3BsZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stZHJvcGxldCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU4Y1wiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMuMyAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMTAyLjYgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDMuMyAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDE0Ni43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43bC01MC43IDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNTEyIDIzNy4zbDAgNTAuNy05NiAwIDAtOTYgNTAuNyAwIDQ1LjMgNDUuM3pNMTUyIDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTIzMiA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0yMDggMzA0Yy0zOS44IDAtNzItMzIuMi03Mi03MiAwLTMzLjIgMzQuNS03OCA1NS44LTEwMi40IDguNy0xMCAyMy44LTEwIDMyLjUgMCAyMS4yIDI0LjQgNTUuOCA2OS4xIDU1LjggMTAyLjQgMCA0OC0zMi4yIDcyLTcyIDcyelwiXVxufTtcbnZhciBmYUhhbmRIb2xkaW5nTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctbWVkaWNhbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTA1Y1wiLCBcIk0yNDAgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDU2IDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTU2LTU2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRsNTYgMCAwLTU2ek02Ni43IDM4NGw0Mi41LTQyLjVjMjQtMjQgNTYuNi0zNy41IDkwLjUtMzcuNUwzNTIgMzA0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMi42IDAgMTE5LjctODguMmMxNy44LTEzLjEgNDIuOC05LjMgNTUuOSA4LjVzOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDg1LjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41TDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzNC43IDB6XCJdXG59O1xudmFyIGZhSGFuZFBvaW50TGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBvaW50LWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwYTVcIiwgXCJNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsMjA4IDAgMC02NC0yMDggMHpNMTkyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwem0tNjQtNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTk2IDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwem04OC05NmwtLjYgMGM1LjQgOS40IDguNiAyMC4zIDguNiAzMiAwIDEzLjItNCAyNS40LTEwLjggMzUuNiAyNC45IDguNyA0Mi44IDMyLjUgNDIuOCA2MC40IDAgMTEuNy0zLjEgMjIuNi04LjYgMzJsOC42IDBjODguNCAwIDE2MC03MS42IDE2MC0xNjBsMC02MS43YzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtMTEuNi0xMS42QzQyOS41IDc3LjUgMzk2LjkgNjQgMzYzIDY0bC0yNyAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDg4YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC01NmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNTZjMCAzOS44LTMyLjIgNzItNzIgNzJ6XCJdXG59O1xudmFyIGZhQ2FsY3VsYXRvciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxjdWxhdG9yJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4NDI1XSwgXCJmMWVjXCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTk2IDY0bDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNiAxNjhhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHptODAgMjRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjgtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNODggMzUyYTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptMTI4LTI0YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6bTgwIDI0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHpNNjQgNDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDQ0OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTIzMi0yNGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWludXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs4MjExLCA4NzIyLCAxMDEzNCwgXCJzdWJ0cmFjdFwiXSwgXCJmMDY4XCIsIFwiTTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xudmFyIGZhU3VidHJhY3QgPSBmYU1pbnVzO1xudmFyIGZhQXJyb3dVcFpBID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXVwLXotYScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic29ydC1hbHBoYS11cC1hbHRcIl0sIFwiZjg4MlwiLCBcIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtODAgODBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODB6TTI4OCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw1MC43IDAtNzMuNCA3My40Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMzMDcuMSAyMjQgMzIwIDIyNGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTAuNyAwIDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0NjEgMzIgNDQ4IDMyTDMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQxMi42IDI3My43QzQwNy4yIDI2Mi44IDM5Ni4xIDI1NiAzODQgMjU2cy0yMy4yIDYuOC0yOC42IDE3LjdsLTgwIDE2MGMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjlsLTgwLTE2MHpNMzg0IDM1OS42bDIwLjIgNDAuNC00MC40IDAgMjAuMi00MC40elwiXVxufTtcbnZhciBmYVNvcnRBbHBoYVVwQWx0ID0gZmFBcnJvd1VwWkE7XG52YXIgZmFNaWNyb3Bob25lU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9waG9uZS1zbGFzaCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjEzMVwiLCBcIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQyNC43IDM1OC44QzQ1OC45IDMyNC4yIDQ4MCAyNzYuNiA0ODAgMjI0bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDM5LjMtMTUuNyA3NC45LTQxLjMgMTAwLjlMMzU2LjggMjkxQzM3My42IDI3My43IDM4NCAyNTAgMzg0IDIyNGwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMwLjItMTUxLTE1MXptMjk4LjMgNDM0bC00MS40LTQxLjRjLTMuMyAuMi02LjUgLjMtOS44IC4zLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0bDAtMTAuMi00My42LTQzLjZjLTIuOCAzLjktNC40IDguNy00LjQgMTMuOGwwIDQwYzAgOTcuOSA3My4zIDE3OC43IDE2OCAxOTAuNWwwIDQ5LjUtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ5LjVjOS4zLTEuMiAxOC40LTMgMjcuMy01LjR6XCJdXG59O1xudmFyIGZhU3F1YXJlUGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wZW4nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInBlbi1zcXVhcmVcIiwgXCJwZW5jaWwtc3F1YXJlXCJdLCBcImYxNGJcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzI1LjggMTM5LjdsMTQuNCAxNC40YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC0yMy44IDIzLjgtNzEtNzEgMjMuOC0yMy44YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwek0xMTkuOSAyODlsOTEuNS05MS42IDcxIDcxLTkxLjYgOTEuNWMtNC4xIDQuMS05LjIgNy0xNC45IDguNGwtNjAuMSAxNWMtNS41IDEuNC0xMS4yLS4yLTE1LjItNC4ycy01LjYtOS43LTQuMi0xNS4ybDE1LTYwLjFjMS40LTUuNiA0LjMtMTAuOCA4LjQtMTQuOXpcIl1cbn07XG52YXIgZmFQZW5TcXVhcmUgPSBmYVNxdWFyZVBlbjtcbnZhciBmYVBlbmNpbFNxdWFyZSA9IGZhU3F1YXJlUGVuO1xudmFyIGZhSGFuZEZpc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1maXN0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbOTk5NCwgXCJmaXN0LXJhaXNlZFwiXSwgXCJmNmRlXCIsIFwiTTE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyLTY0IDAgMC0xMTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyUzk2IDQ2LjMgOTYgNjRsMCA4MC02NCAwIDAtODB6bTE5MiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2em05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTk2IDg4bDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjYgMTMuMiAwIDI1LjQtNCAzNS42LTEwLjggOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOCAxMS43IDAgMjIuNi0zLjEgMzItOC42bDAgOC42YzAgNTIuMy0yNS4xIDk4LjgtNjQgMTI4bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc4LjRjLTE3LjMtNy45LTMzLjItMTguOC00Ni45LTMyLjVMMzcuNSAzNTcuNUMxMy41IDMzMy41IDAgMzAwLjkgMCAyNjdsMC0yN2MwLTM1LjMgMjguNy02NCA2NC02NGw4OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJ6XCJdXG59O1xudmFyIGZhRmlzdFJhaXNlZCA9IGZhSGFuZEZpc3Q7XG52YXIgZmFDb21tZW50U21zID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbW1lbnQtc21zJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzbXNcIl0sIFwiZjdjZFwiLCBcIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMTQwLjggMTcyLjhsMTkuMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOS4yIDBjLTUuMyAwLTkuNiA0LjMtOS42IDkuNnM0LjMgOS42IDkuNiA5LjZjMjMgMCA0MS42IDE4LjYgNDEuNiA0MS42cy0xOC42IDQxLjYtNDEuNiA0MS42bC0yNS42IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjUuNiAwYzUuMyAwIDkuNi00LjMgOS42LTkuNnMtNC4zLTkuNi05LjYtOS42Yy0yMyAwLTQxLjYtMTguNi00MS42LTQxLjZzMTguNi00MS42IDQxLjYtNDEuNnptMTg4LjggNDEuNmMwLTIzIDE4LjYtNDEuNiA0MS42LTQxLjZsMTkuMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOS4yIDBjLTUuMyAwLTkuNiA0LjMtOS42IDkuNnM0LjMgOS42IDkuNiA5LjZjMjMgMCA0MS42IDE4LjYgNDEuNiA0MS42cy0xOC42IDQxLjYtNDEuNiA0MS42bC0yNS42IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjUuNiAwYzUuMyAwIDkuNi00LjMgOS42LTkuNnMtNC4zLTkuNi05LjYtOS42Yy0yMyAwLTQxLjYtMTguNi00MS42LTQxLjZ6bS05OC4zLTMzLjhsMjQuNyA0MS4xIDI0LjctNDEuMWMzLjctNi4yIDExLjEtOS4xIDE4LTcuMnMxMS43IDguMiAxMS43IDE1LjRsMCAxMDIuNGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ0LjYtOC43IDE0LjVjLTIuOSA0LjgtOC4xIDcuOC0xMy43IDcuOHMtMTAuOC0zLTEzLjctNy44bC04LjctMTQuNSAwIDQ0LjZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xMDIuNGMwLTcuMiA0LjgtMTMuNSAxMS43LTE1LjRzMTQuMyAxIDE4IDcuMnpcIl1cbn07XG52YXIgZmFTbXMgPSBmYUNvbW1lbnRTbXM7XG52YXIgZmFTaW1DYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpbS1jYXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmN2M0XCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDI1OC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgODBjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNOTYgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQwIDEyOCAwIDAtNzItOTYgMHpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDAgMC03Mi04MCAwIDAgNDB6bTI1NiAwbDAtNDAtMTI4IDAgMCA3MiA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem0wLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMCAwIDcyIDgwIDAgMC00MHpcIl1cbn07XG52YXIgZmFTY2FsZUJhbGFuY2VkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NjYWxlLWJhbGFuY2VkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbOTg3OCwgXCJiYWxhbmNlLXNjYWxlXCJdLCBcImYyNGVcIiwgXCJNMzg0IDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDM5OC40IDk2Yy01LjIgMjUuOC0yMi45IDQ3LjEtNDYuNCA1Ny4zbDAgMjk0LjcgMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIzLjUtMTAuMy00MS4yLTMxLjYtNDYuNC01Ny4zTDEyOCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMjggMGMxNC42LTE5LjQgMzcuOC0zMiA2NC0zMnM0OS40IDEyLjYgNjQgMzJ6bTU1LjYgMjg4TDU4NC40IDMyMCA1MTIgMTk1LjggNDM5LjYgMzIwek01MTIgNDE2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjktMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45ek0xMjYuOCAxOTUuOEw1NC40IDMyMCAxOTkuMyAzMjAgMTI2LjggMTk1Ljh6TS45IDMzNy4xYy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xLTEwLjggNDQuOC02My4xIDc4LjktMTI2IDc4LjlTMTEuNyAzODIgLjkgMzM3LjF6XCJdXG59O1xudmFyIGZhQmFsYW5jZVNjYWxlID0gZmFTY2FsZUJhbGFuY2VkO1xudmFyIGZhQ2FyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODY2NCwgXCJhdXRvbW9iaWxlXCJdLCBcImYxYjlcIiwgXCJNMTM1LjIgMTE3LjRsLTI2LjEgNzQuNiAyOTMuOCAwLTI2LjEtNzQuNkMzNzIuMyAxMDQuNiAzNjAuMiA5NiAzNDYuNiA5NkwxNjUuNCA5NmMtMTMuNiAwLTI1LjcgOC42LTMwLjIgMjEuNHpNMzkuNiAxOTYuOEw3NC44IDk2LjNDODguMyA1Ny44IDEyNC42IDMyIDE2NS40IDMybDE4MS4yIDBjNDAuOCAwIDc3LjEgMjUuOCA5MC42IDY0LjNsMzUuMiAxMDAuNWMyMy4yIDkuNiAzOS42IDMyLjUgMzkuNiA1OS4ybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyLTMyMCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMjU2YzAtMjYuNyAxNi40LTQ5LjYgMzkuNi01OS4yek0xMjggMzA0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xudmFyIGZhQXV0b21vYmlsZSA9IGZhQ2FyO1xudmFyIGZhQ3JvcFNpbXBsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjcm9wLXNpbXBsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY3JvcC1hbHRcIl0sIFwiZjU2NVwiLCBcIk0xMjggMzJjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgMTQuMyA2NCAzMmwwIDMyLTMyIDBDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDMyIDAgMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjA4IDAgMC02NC0yMDggMCAwLTM1MnpNMzg0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMjA4IDAgMCA2NCAyMDggMCAwIDM1MnpcIl1cbn07XG52YXIgZmFDcm9wQWx0ID0gZmFDcm9wU2ltcGxlO1xudmFyIGZhTWVkYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWVkYWwnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjc5NDFdLCBcImY1YTJcIiwgXCJNMjI0LjMgMTI4TDEzOS43LTEyLjljLTYuNS0xMC44LTIwLjEtMTQuNy0zMS4zLTkuMUwyMS44IDIxLjNDOS45IDI3LjIgNS4xIDQxLjYgMTEgNTMuNUw4MC42IDE5Mi42Yy0zMC4xIDMzLjktNDguMyA3OC41LTQ4LjMgMTI3LjQgMCAxMDYgODYgMTkyIDE5MiAxOTJzMTkyLTg2IDE5Mi0xOTJjMC00OC45LTE4LjMtOTMuNS00OC4zLTEyNy40TDQzNy42IDUzLjVjNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4yTDM0MC4yLTIyLjFjLTExLjItNS42LTI0LjktMS42LTMxLjMgOS4xTDIyNC4zIDEyOHptMzAuOCAxNDIuNWMxLjQgMi44IDQgNC43IDcgNS4xbDUwLjEgNy4zYzcuNyAxLjEgMTAuNyAxMC41IDUuMiAxNmwtMzYuMyAzNS40Yy0yLjIgMi4yLTMuMiA1LjItMi43IDguM2w4LjYgNDkuOWMxLjMgNy42LTYuNyAxMy41LTEzLjYgOS45bC00NC44LTIzLjZjLTIuNy0xLjQtNi0xLjQtOC43IDBsLTQ0LjggMjMuNmMtNi45IDMuNi0xNC45LTIuMi0xMy42LTkuOWw4LjYtNDkuOWMuNS0zLS41LTYuMS0yLjctOC4zbC0zNi4zLTM1LjRjLTUuNi01LjQtMi41LTE0LjggNS4yLTE2bDUwLjEtNy4zYzMtLjQgNS43LTIuNCA3LTUuMWwyMi40LTQ1LjRjMy40LTcgMTMuMy03IDE2LjggMGwyMi40IDQ1LjR6XCJdXG59O1xudmFyIGZhU2Nyb2xsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Njcm9sbCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODIyMF0sIFwiZjcwZVwiLCBcIk0wIDExMkMwIDcwLjUgMzEuNiAzNi40IDcyIDMyLjRsMC0uNCAyODAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMTc2LTE3NiAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDYwYzAgMjQuMy0xOS43IDQ0LTQ0IDQ0cy00NC0xOS43LTQ0LTQ0bDAtMjI4LTY0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDh6TTIzNi44IDQ4MGM3LjEtMTMuMSAxMS4yLTI4LjEgMTEuMi00NGwwLTYwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDI0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCA0NC4yLTM1LjggODAtODAgODBsLTIyNy4yIDB6TTgwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIl1cbn07XG52YXIgZmFGaWxlRXhjZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1leGNlbCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjM1wiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTY0IDI2Ni43Yy03LjQtMTEtMjIuMy0xNC0zMy4zLTYuN3MtMTQgMjIuMy02LjcgMzMuM0wxNjMuMiAzNTIgMTI0IDQxMC43Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMjgtNDIgMjggNDJjNy40IDExIDIyLjMgMTQgMzMuMyA2LjdzMTQtMjIuMyA2LjctMzMuM0wyMjAuOCAzNTIgMjYwIDI5My4zYzcuNC0xMSA0LjQtMjUuOS02LjctMzMuM3MtMjUuOS00LjQtMzMuMyA2LjdsLTI4IDQyLTI4LTQyelwiXVxufTtcbnZhciBmYUZpbHRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWx0ZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwYjBcIiwgXCJNMzIgNjRDMTkuMSA2NCA3LjQgNzEuOCAyLjQgODMuOFMuMiAxMDkuNSA5LjQgMTE4LjZMMTkyIDMwMS4zIDE5MiA0MTZjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlTMzIwIDQ5Mi45IDMyMCA0ODBsMC0xNzguNyAxODIuNi0xODIuNmM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSA2NCA0ODAgNjRMMzIgNjR6XCJdXG59O1xudmFyIGZhRHJ1bSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkcnVtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5MzQ1XSwgXCJmNTY5XCIsIFwiTTUwMS4yIDc2LjFjMTEuMS03LjMgMTQuMi0yMi4xIDYuOS0zMy4ycy0yMi4xLTE0LjItMzMuMi02LjlMMzcwLjIgMTA0LjVDMzM1LjggOTguNyAyOTcgOTYgMjU2IDk2IDExNC42IDk2IDAgMTI4IDAgMjA4TDAgMzY4YzAgMzEuMyAyNy40IDU4LjggNzIgNzguN0w3MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDExOS40YzMzIDguOSA3MS4xIDE0LjUgMTEyIDE2LjFMMjMyIDM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTAzLjVjNDAuOS0xLjYgNzktNy4yIDExMi0xNi4xTDM5MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMi43YzQ0LjYtMTkuOSA3Mi00Ny40IDcyLTc4LjdsMC0xNjBjMC00MS4xLTMwLjItNjkuNS03OC44LTg3LjRsNjcuOS00NC41ek0zMDcuNCAxNDUuNmwtNjQuNiA0Mi4zYy0xMS4xIDcuMy0xNC4yIDIyLjEtNi45IDMzLjJzMjIuMSAxNC4yIDMzLjIgNi45bDExMS4xLTcyLjhjMTQuNyAzLjIgMjcuOSA3IDM5LjQgMTEuNSAzOC44IDE1LjEgNDQuNCAzMC42IDQ0LjQgNDEuMyAwIC44LTIuNyAxNy4yLTQ2IDM1LjktMzguOSAxNi44LTk2IDI4LjEtMTYyIDI4LjFTMTMyLjkgMjYwLjcgOTQgMjQzLjljLTQzLjMtMTguNy00Ni0zNS4xLTQ2LTM1LjkgMC0xMC42IDUuNi0yNi4yIDQ0LjQtNDEuMyAzOC4zLTE0LjkgOTUuNC0yMi43IDE2My42LTIyLjcgMTggMCAzNS4xIC41IDUxLjQgMS42elwiXVxufTtcbnZhciBmYU1hcFBpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXAtcGluJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTI4MjA1XSwgXCJmMjc2XCIsIFwiTTE5MiAyODQuNEMyNTYuMSAyNjkuOSAzMDQgMjEyLjUgMzA0IDE0NCAzMDQgNjQuNSAyMzkuNSAwIDE2MCAwUzE2IDY0LjUgMTYgMTQ0YzAgNjguNSA0Ny45IDEyNS45IDExMiAxNDAuNEwxMjggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xOTUuNnpNMTY4IDk2Yy0zMC45IDAtNTYgMjUuMS01NiA1NiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTU3LjQgNDYuNi0xMDQgMTA0LTEwNCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHpcIl1cbn07XG52YXIgZmFTY2FsZVVuYmFsYW5jZWRGbGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NjYWxlLXVuYmFsYW5jZWQtZmxpcCcsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiYmFsYW5jZS1zY2FsZS1yaWdodFwiXSwgXCJmNTE2XCIsIFwiTTExOC4yIDYyLjRDMTAxLjUgNTYuOCA5Mi40IDM4LjYgOTggMjEuOVMxMjEuNy0zLjkgMTM4LjUgMS42bDExMyAzNy43YzEzLjktMjMuNSAzOS42LTM5LjMgNjguOS0zOS4zIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMy0uMiA1LjktLjUgOC44bDEyMi42IDQwLjljMTYuOCA1LjYgMjUuOCAyMy43IDIwLjIgNDAuNXMtMjMuNyAyNS44LTQwLjUgMjAuMkwzNjYuNyAxNDUuMmMtNC41IDMuMi05LjMgNS45LTE0LjQgOC4ybDAgMzI2LjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIxLTkuMi0zNy4yLTI3LTQ0LjItNDlsLTEyNS45LTQyek0yMDAuOCAyODhMMTI4LjMgMTYzLjggNTUuOSAyODggMjAwLjggMjg4em0tNzIuNCA5NmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45LTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjEtMTAuOCA0NC44LTYzLjEgNzguOS0xMjYgNzguOXptMzgyLjgtOTIuMmwtNzIuNCAxMjQuMiAxNDQuOSAwLTcyLjQtMTI0LjJ6bTEyNiAxNDEuM0M2MjYuNCA0NzggNTc0LjEgNTEyIDUxMS4yIDUxMnMtMTE1LjItMzQtMTI2LTc4LjljLTIuNi0xMSAxLTIyLjMgNi43LTMyLjFsOTUuMi0xNjMuMmM1LTguNiAxNC4yLTEzLjggMjQuMS0xMy44czE5LjEgNS4zIDI0LjEgMTMuOGw5NS4yIDE2My4yYzUuNyA5LjggOS4zIDIxLjEgNi43IDMyLjF6XCJdXG59O1xudmFyIGZhQmFsYW5jZVNjYWxlUmlnaHQgPSBmYVNjYWxlVW5iYWxhbmNlZEZsaXA7XG52YXIgZmFBcnJvd3NUb0NpcmNsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdG8tY2lyY2xlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGJkXCIsIFwiTTkuNCA5LjRDMjEuOS0zLjEgNDIuMS0zLjEgNTQuNiA5LjRMMTI4IDgyLjcgMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC43IDAtNzMuNC03My40Qy0zLjEgNDIuMS0zLjEgMjEuOSA5LjQgOS40ek0yMDAgMjU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNNTAyLjYgNTQuNkw0MjkuMyAxMjggNDQ4IDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTguNyA3My40LTczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptLTQ1LjMgNDQ4TDM4NCA0MjkuMyAzODQgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguNyAwIDczLjQgNzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMHpNOS40IDQ1Ny40TDgyLjcgMzg0IDY0IDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC43LTczLjQgNzMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6XCJdXG59O1xudmFyIGZhRW52ZWxvcGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZW52ZWxvcGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzODYsIDk5OTMsIDYxNDQzXSwgXCJmMGUwXCIsIFwiTTQ4IDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDE1LjEgNy4xIDI5LjMgMTkuMiAzOC40bDIwOCAxNTZjMTcuMSAxMi44IDQwLjUgMTIuOCA1Ny42IDBsMjA4LTE1NmMxMi4xLTkuMSAxOS4yLTIzLjMgMTkuMi0zOC40IDAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDY0ek0wIDE5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE4OC0xOTguNCAxNDguOGMtMzQuMSAyNS42LTgxLjEgMjUuNi0xMTUuMiAwTDAgMTk2elwiXVxufTtcbnZhciBmYUJhYnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFieScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjc3Y1wiLCBcIk0xMjAgODhhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwek03LjcgMTQ0LjVjMTMtMTcuOSAzOC0yMS44IDU1LjktOC44TDk5LjggMTYyYzI2LjggMTkuNSA1OS4xIDMwIDkyLjIgMzBzNjUuNC0xMC41IDkyLjItMzBsMzYuMi0yNi40YzE3LjktMTMgNDIuOS05IDU1LjkgOC44czkgNDIuOS04LjggNTUuOWwtMzYuMiAyNi40Yy0xMy42IDkuOS0yOC4xIDE4LjItNDMuMyAyNWwwIDM2LjMtMTkyIDAgMC0zNi4zYy0xNS4yLTYuNy0yOS43LTE1LjEtNDMuMy0yNUwxNi41IDIwMC4zYy0xNy45LTEzLTIxLjgtMzgtOC44LTU1Ljl6TTk3LjUgMzI5LjNsNjAuNiA1My0yNiAzNy4yIDI0LjMgMjQuM2MxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNnMtNDAuOSAxNS42LTU2LjYgMGwtNDgtNDhDMzggNDM4LjYgMzYuMSA0MTcgNDcuMiA0MDEuMWw1MC4yLTcxLjh6bTEyOC41IDUzbDYwLjYtNTMgNTAuMiA3MS44YzExLjEgMTUuOSA5LjIgMzcuNS00LjUgNTEuMmwtNDggNDhjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwcy0xNS42LTQwLjkgMC01Ni42bDI0LjMtMjQuMy0yNi0zNy4yelwiXVxufTtcbnZhciBmYVNxdWFyZUNhcmV0RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtY2FyZXQtZG93bicsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiY2FyZXQtc3F1YXJlLWRvd25cIl0sIFwiZjE1MFwiLCBcIk0zODQgNDgwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDB6TTIyNCAzNTJjLTYuNyAwLTEzLTIuOC0xNy42LTcuN2wtMTA0LTExMmMtNi41LTctOC4yLTE3LjItNC40LTI1LjlTMTEwLjUgMTkyIDEyMCAxOTJsMjA4IDBjOS41IDAgMTguMiA1LjcgMjIgMTQuNHMyLjEgMTguOS00LjQgMjUuOWwtMTA0IDExMmMtNC41IDQuOS0xMC45IDcuNy0xNy42IDcuN3pcIl1cbn07XG52YXIgZmFDYXJldFNxdWFyZURvd24gPSBmYVNxdWFyZUNhcmV0RG93bjtcbnZhciBmYVRlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVudCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU3ZFwiLCBcIk0yNi45IDIwNi45TDMuNyA0NDQuOUMxLjggNDYzLjcgMTYuNiA0ODAgMzUuNSA0ODBsMTcyLjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOWMwLTguMyA2LjctMTUgMTUtMTUgNS41IDAgMTAuNiAzIDEzLjIgNy45bDg2LjEgMTU5YzguNCAxNS41IDI0LjYgMjUuMSA0Mi4yIDI1LjFsNjQuMSAwYzE4LjkgMCAzMy43LTE2LjMgMzEuOC0zNS4xTDQ4NS42IDIwNy4xYy0xLjktMTkuNi0xMi44LTM3LjMtMjkuNS00Ny44TDI4MC45IDQ4LjNjLTE1LjctMTAtMzUuOC05LjktNTEuNSAuMUw1Ni4xIDE1OS4yYy0xNi41IDEwLjYtMjcuMyAyOC4yLTI5LjIgNDcuN3pcIl1cbn07XG52YXIgZmFBID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2EnLFxuICBpY29uOiBbMzg0LCA1MTIsIFs5N10sIFwiNDFcIiwgXCJNMjIxLjUgNTEuN0MyMTYuNiAzOS44IDIwNC45IDMyIDE5MiAzMnMtMjQuNiA3LjgtMjkuNSAxOS43Yy05My4zIDIyNC0xNDYuNyAzNTItMTYwIDM4NC02LjggMTYuMyAuOSAzNSAxNy4yIDQxLjhzMzUtLjkgNDEuOC0xNy4ybDMxLjgtNzYuMyAxOTcuMyAwIDMxLjggNzYuM2M2LjggMTYuMyAyNS41IDI0IDQxLjggMTcuMnMyNC0yNS41IDE3LjItNDEuOGMtMTMuMy0zMi02Ni43LTE2MC0xNjAtMzg0ek0yNjQgMzIwbC0xNDQgMCA3Mi0xNzIuOCA3MiAxNzIuOHpcIl1cbn07XG52YXIgZmFQYXJhY2h1dGVCb3ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFyYWNodXRlLWJveCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjRjZFwiLCBcIk0xMjggMjI0QzEyOCAxNTIuMiAxNDQuMyA4OC40IDE2OS41IDQzLjQgMTk1LjEtMi40IDIyNi42LTI0IDI1Ni0yNHM2MC45IDIxLjYgODYuNSA2Ny40QzM2Ny43IDg4LjQgMzg0IDE1Mi4yIDM4NCAyMjRsLTEwNCAwIDAgOTYgOCAwYzkuMyAwIDE4LjEgMiAyNiA1LjVsMTE4LjQtMTAxLjUtLjUgMGMwLTc4LjQtMTcuNy0xNTAuNi00Ny42LTIwNC02LjEtMTEtMTIuOS0yMS4zLTIwLjMtMzAuOSA4Ni41IDM1LjkgMTQ3LjggMTE1LjEgMTQ3LjggMjE4LjkgMCA3LTMuMSAxMy43LTguNCAxOC4yTDM0Ny40IDM2MC4xYzMgNy40IDQuNiAxNS40IDQuNiAyMy45bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC04LjQgMS42LTE2LjUgNC42LTIzLjlMOC40IDIyNi4yQzMuMSAyMjEuNyAwIDIxNSAwIDIwOCAwIDEwNC4yIDYxLjMgMjQuOSAxNDcuOC0xMC45IDE0MC41LTEuNCAxMzMuNyA5IDEyNy42IDIwIDk3LjcgNzMuNCA4MCAxNDUuNiA4MCAyMjRsLS41IDAgMTE4LjQgMTAxLjVjOC0zLjUgMTYuOC01LjUgMjYtNS41bDggMCAwLTk2LTEwNCAwelwiXVxufTtcbnZhciBmYUNhcnRBcnJvd0Rvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FydC1hcnJvdy1kb3duJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMjE4XCIsIFwiTTAgOEMwLTUuMyAxMC43LTE2IDI0LTE2bDQ1LjMgMGMyNy4xIDAgNTAuMyAxOS40IDU1LjEgNDZsLjQgMiAxODcuMiAwIDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMSAxNzcuNCAwYzIwIDAgMzUuMSAxOC4yIDMxLjQgMzcuOUw1MzcuOCAyMzUuOGMtNS43IDMwLjMtMzIuMSA1Mi4yLTYyLjkgNTIuMmwtMzAzLjYgMCA1LjEgMjguM2MyLjEgMTEuNCAxMiAxOS43IDIzLjYgMTkuN0w0NTYgMzM2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNTUuOSAwYy0zNC44IDAtNjQuNi0yNC45LTcwLjgtNTkuMUw3Ny4yIDM4LjZjLS43LTMuOC00LTYuNi03LjktNi42TDI0IDMyQzEwLjcgMzIgMCAyMS4zIDAgOHpNMTYwIDQ2NGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0yMjQgMGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwelwiXVxufTtcbnZhciBmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZS1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0Y2FcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDggMCAwIDY0LTQwIDAgMCAxMTJjMzcuNiA5LjQgNjQgNDMuMiA2NCA4MmwwIDk0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2IDYuNCAwIDEyLjcgLjYgMTguNyAxLjggMzQuNy00OS41IDkyLjItODEuOCAxNTcuMy04MS44IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNC00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbnZhciBmYUNsb3VkQXJyb3dVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1hcnJvdy11cCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzYyMzM4LCBcImNsb3VkLXVwbG9hZFwiLCBcImNsb3VkLXVwbG9hZC1hbHRcIl0sIFwiZjBlZVwiLCBcIk0xNDQgNDgwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTYzLjQgNDEtMTE3LjIgOTcuOS0xMzYuNS0xLjMtNy43LTEuOS0xNS41LTEuOS0yMy41IDAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDU1LjQgMCAxMDMuNSAzMS4zIDEyNy42IDc3LjEgMTQuMi04LjMgMzAuOC0xMy4xIDQ4LjQtMTMuMSA1MyAwIDk2IDQzIDk2IDk2IDAgMTUuNy0zLjggMzAuNi0xMC41IDQzLjcgNDQgMjAuMyA3NC41IDY0LjcgNzQuNSAxMTYuMyAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDB6TTMwNSAxOTFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC03MiA3MmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMxLTMxIDAgMTAyLjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMi4xIDMxIDMxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzItNzJ6XCJdXG59O1xudmFyIGZhQ2xvdWRVcGxvYWQgPSBmYUNsb3VkQXJyb3dVcDtcbnZhciBmYUNsb3VkVXBsb2FkQWx0ID0gZmFDbG91ZEFycm93VXA7XG52YXIgZmFBdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxOTQ2XSwgXCI0MFwiLCBcIk0yNTYgNjRDMTUwIDY0IDY0IDE1MCA2NCAyNTZzODYgMTkyIDE5MiAxOTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJDMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMCA1MTIgMTE0LjYgNTEyIDI1NmwwIDMyYzAgNTMtNDMgOTYtOTYgOTYtMjkuMyAwLTU1LjYtMTMuMi03My4yLTMzLjktMjIuOCAyMS01My4zIDMzLjktODYuOCAzMy45LTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4czU3LjMtMTI4IDEyOC0xMjhjMjcuOSAwIDUzLjcgOC45IDc0LjcgMjQuMSA1LjctNSAxMy4xLTguMSAyMS4zLTguMSAxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJjMC0xMDYtODYtMTkyLTE5Mi0xOTJ6bTY0IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6XCJdXG59O1xudmFyIGZhSW5kaWFuUnVwZWVTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2luZGlhbi1ydXBlZS1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJpbmRpYW4tcnVwZWVcIiwgXCJpbnJcIl0sIFwiZTFiY1wiLCBcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC03Ni43IDBjMTcuNyAxOS44IDMwLjEgNDQuNiAzNC43IDcybDQyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQyIDBjLTEwLjQgNjIuMi02MC44IDExMC45LTEyMy44IDExOC45TDI3NC42IDQyMmMxNC40IDEwLjMgMTcuNyAzMC4zIDcuNCA0NC42cy0zMC4zIDE3LjctNDQuNiA3LjRMMTMuNCAzMTRDMi4xIDMwNi0yLjcgMjkxLjUgMS41IDI3OC4yUzE4LjEgMjU2IDMyIDI1Nmw4MCAwYzM1LjggMCA2Ni4xLTIzLjUgNzYuMy01NkwyNCAyMDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTY0LjMgMGMtMTAuMi0zMi41LTQwLjUtNTYtNzYuMy01NkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0elwiXVxufTtcbnZhciBmYUluZGlhblJ1cGVlID0gZmFJbmRpYW5SdXBlZVNpZ247XG52YXIgZmFJbnIgPSBmYUluZGlhblJ1cGVlU2lnbjtcbnZhciBmYVRydWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4NjY2LCA5OTUxXSwgXCJmMGQxXCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiA1MC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNTU3LjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNTc2IDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMy4zIDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0xMDIuNiAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTUxMiAyODhsMC01MC43LTQ1LjMtNDUuMy01MC43IDAgMCA5NiA5NiAwek0xOTIgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTIzMiA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6XCJdXG59O1xudmFyIGZhQ2hhbGtib2FyZFVzZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhbGtib2FyZC11c2VyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJjaGFsa2JvYXJkLXRlYWNoZXJcIl0sIFwiZjUxY1wiLCBcIk0xMjggOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDAtOTYgMCAwLTE2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE2LTEyOS4xIDBjMTAuOS0xOC44IDE3LjEtNDAuNyAxNy4xLTY0IDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4LTUuNCAwLTEwLjggLjMtMTYgMWwwLTQ5ek0zMzMgNDQ4Yy01LjEtMjQuMi0xNi4zLTQ2LjEtMzIuMS02NEw2MDggMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yMTEgMHpNNjQgMjcyYTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMCA0ODBjMC01MyA0My05NiA5Ni05Nmw5NiAwYzUzIDAgOTYgNDMgOTYgOTYgMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpcIl1cbn07XG52YXIgZmFDaGFsa2JvYXJkVGVhY2hlciA9IGZhQ2hhbGtib2FyZFVzZXI7XG52YXIgZmFVc2VyQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1jaGVjaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRmY1wiLCBcIk0yODYgMzA0Yzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDc4IDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjNsNTkuNCAwek01ODUuNyAxMDUuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41TDUyMi4xIDI3NC45Yy00LjIgNS43LTEwLjcgOS40LTE3LjcgOS44cy0xNC0yLjItMTguOS03LjNsLTQ2LjQtNDhjLTkuMi05LjUtOS0yNC43IC42LTMzLjkgOS41LTkuMiAyNC43LTguOSAzMy45IC42bDI2LjUgMjcuNCA4NS42LTExNy43ek0yNTYuMyAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQwelwiXVxufTtcbnZhciBmYVVzZXJOaW5qYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLW5pbmphJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI5Mzk5XSwgXCJmNTA0XCIsIFwiTTM1MiAxMjhjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNTcuMiAwLTEwNS42LTM3LjUtMTIyLTg5LjMtMS4xIDEuMy0yLjIgMi42LTMuNSAzLjgtMTUuOCAxNS44LTM4LjggMjAuNy01My42IDIyLjEtOC4xIC44LTE0LjYtNS43LTEzLjgtMTMuOCAxLjQtMTQuNyA2LjMtMzcuOCAyMi4xLTUzLjYgNS44LTUuOCAxMi42LTEwLjEgMTkuNi0xMy40LTctMy4yLTEzLjgtNy42LTE5LjYtMTMuNC0xNS44LTE1LjgtMjAuNy0zOC44LTIyLjEtNTMuNi0uOC04LjEgNS43LTE0LjYgMTMuOC0xMy44IDE0LjcgMS40IDM3LjggNi4zIDUzLjYgMjIuMSA0LjggNC44IDguNyAxMC40IDExLjcgMTYuMSAyMS4zLTQxLjIgNjQuMy02OS40IDExMy44LTY5LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjh6TTE0NCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDE2MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2em0tMS40IDIxMWw2NyA1MC4yYzguNSA2LjQgMjAuMyA2LjQgMjguOCAwbDY3LTUwLjJjNi41LTQuOSAxNS4yLTYuMiAyMi42LTIuOCA2MS40IDI4LjIgMTA0LjEgOTAuMiAxMDQuMSAxNjIuMSAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w0NS43IDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC03MiA0Mi43LTEzNCAxMDQuMS0xNjIuMSA3LjQtMy40IDE2LjEtMi4xIDIyLjYgMi44elwiXVxufTtcbnZhciBmYVBsYW50V2lsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbGFudC13aWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNWFhXCIsIFwiTTM0NC0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMGwwIDYuMmMyOS4zIDEyLjIgNDggNDEuMyA0OCA3Ni45IDAgMjcuOS0yNS4zIDc0LjgtNjYgMTExLjctMy44IDMuNS04LjggNS4zLTE0IDUuM3MtMTAuMi0xLjgtMTQtNS4zYy00MC43LTM2LjgtNjYtODMuNy02Ni0xMTEuNyAwLTM1LjYgMTguNy02NC43IDQ4LTc2LjlsMC02LjJjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCA0MjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yOTZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCAzOC4yYzI5LjMgMTIuMiA0OCA0MS4zIDQ4IDc2LjkgMCAyNy45LTI1LjMgNzQuOC02NiAxMTEuNy0zLjggMy41LTguOCA1LjMtMTQgNS4zcy0xMC4yLTEuOC0xNC01LjNDMjUuMyA0MDUuOSAwIDM1OSAwIDMzMS4xIDAgMjk1LjQgMTguNyAyNjYuNCA0OCAyNTQuMkw0OCAyMTZjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjAgMjAuMiAwIDM5LjMgNSA1NiAxMy44TDIyNCA4OGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHpcIl1cbn07XG52YXIgZmFXZWlnaHRTY2FsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3ZWlnaHQtc2NhbGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcIndlaWdodFwiXSwgXCJmNDk2XCIsIFwiTTExNi42IDE5MmMtMy0xMC4xLTQuNi0yMC45LTQuNi0zMiAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMlMzMzYgOTguMSAzMzYgMTYwYzAgMTEuMS0xLjYgMjEuOS00LjYgMzJsLTcxIDAgMjQuNi00NC4zYzYuNC0xMS42IDIuMy0yNi4yLTkuMy0zMi42cy0yNi4yLTIuMy0zMi42IDkuM2wtMzcuNiA2Ny43LTg4LjggMHpNMTI4IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBDMjkzLjMgMTEuOSAyNjAgMCAyMjQgMHMtNjkuMyAxMS45LTk2IDMyelwiXVxufTtcbnZhciBmYVdlaWdodCA9IGZhV2VpZ2h0U2NhbGU7XG52YXIgZmFDYXJldFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcmV0LXJpZ2h0JyxcbiAgaWNvbjogWzI1NiwgNTEyLCBbXSwgXCJmMGRhXCIsIFwiTTI0OS4zIDIzNS44YzEwLjIgMTIuNiA5LjUgMzEuMS0yLjIgNDIuOGwtMTI4IDEyOGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTNjQuNSAzOTYuOSA2NC41IDM4NGwwLTI1NmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDEyOCAxMjggMi4yIDIuNHpcIl1cbn07XG52YXIgZmFGbG9yaW5TaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Zsb3Jpbi1zaWduJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlMTg0XCIsIFwiTTMxNC43IDMyYy0zOC44IDAtNzMuNyAyMy4zLTg4LjYgNTkuMUwxNzAuNyAyMjQgNjQgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDgwIDAtNDUuMSAxMDguM2MtNSAxMS45LTE2LjYgMTkuNy0yOS41IDE5LjdMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM3LjMgMGMzOC44IDAgNzMuNy0yMy4zIDg4LjYtNTkuMUwyMTMuMyAyODggMzIwIDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODAgMCA0NS4xLTEwOC4zYzUtMTEuOSAxNi42LTE5LjcgMjkuNS0xOS43TDM1MiA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzcuMyAwelwiXVxufTtcbnZhciBmYUJlbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmVsbCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODI3NiwgNjE2MDJdLCBcImYwZjNcIiwgXCJNMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMy4yQzExOSA1MCA2NCAxMTQuNiA2NCAxOTJsMCAyMS43YzAgNDguMS0xNi40IDk0LjgtNDYuNCAxMzIuNEw3LjggMzU4LjNDMi43IDM2NC42IDAgMzcyLjQgMCAzODAuNSAwIDQwMC4xIDE1LjkgNDE2IDM1LjUgNDE2bDM3Ni45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJsLTkuOC0xMi4yQzQwMC40IDMwOC41IDM4NCAyNjEuOCAzODQgMjEzLjdsMC0yMS43YzAtNzcuNC01NS0xNDItMTI4LTE1Ni44bDAtMy4yYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xNjIgNDY0YzcuMSAyNy42IDMyLjIgNDggNjIgNDhzNTQuOS0yMC40IDYyLTQ4bC0xMjQgMHpcIl1cbn07XG52YXIgZmFMYXJpU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYXJpLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxYzhcIiwgXCJNMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MS41YzcuOS0xIDE1LjktMS41IDI0LTEuNXMxNi4xIC41IDI0IDEuNUwyMTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDU0YzU4LjkgMjMuOCAxMDMuMiA3NiAxMTYuMiAxMzkuNyAzLjUgMTcuMy03LjcgMzQuMi0yNSAzNy43cy0zNC4yLTcuNy0zNy43LTI1Yy02LjctMzMuMi0yNi40LTYxLjgtNTMuNC04MC4ybDAgODEuOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwMS44Yy03LjgtMS41LTE1LjgtMi4yLTI0LTIuMnMtMTYuMiAuOC0yNCAyLjJMMTY4IDIzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgxLjhjLTMzLjggMjMtNTYgNjEuOS01NiAxMDUuOCAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYuOSAwQzE4LjUgMzUwIDAgMzA1LjIgMCAyNTYgMCAxNzUuNCA0OS42IDEwNi40IDEyMCA3OGwwLTU0YzAtMTMuMyAxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYU1pbGxTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pbGwtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTFlZFwiLCBcIk0yOTctMjIuMmMxMi4zIDUgMTguMiAxOSAxMy4yIDMxLjNsLTI5IDcxLjNDMzM4LjggODUuMSAzODQgMTMzLjMgMzg0IDE5MmwwIDIwOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIwOGMwLTI2LjUtMjEuNS00OC00OC00OC02LjQgMC0xMi41IDEuMi0xOCAzLjVsLTMwIDczLjggMCAxNzguN2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIxLjItNTcuOCAxNDIuMmMtNSAxMi4zLTE5IDE4LjItMzEuMyAxMy4ycy0xOC4yLTE5LTEzLjItMzEuM0wxNjAgMjUxLjMgMTYwIDE5MmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGwwIDIwOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQxNy43IDAgNDAwTDAgMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyIDEwLjkgMCAyMC41IDUuNCAyNi4zIDEzLjcgMTYtOC43IDM0LjMtMTMuNyA1My43LTEzLjcgMzEuMyAwIDU5LjcgMTIuOSA4MCAzMy42IDkuNi05LjggMjAuOS0xNy44IDMzLjUtMjMuNUwyNjUuOC05YzUtMTIuMyAxOS0xOC4yIDMxLjMtMTMuMnpcIl1cbn07XG52YXIgZmFQZXJzb25Tbm93Ym9hcmRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXNub3dib2FyZGluZycsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyNzkzOCwgXCJzbm93Ym9hcmRpbmdcIl0sIFwiZjdjZVwiLCBcIk00MjQuNSAxNmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTY2LjQgNDUuNWMxMC4yLTE0LjQgMzAuMi0xNy45IDQ0LjYtNy43bDI3MiAxOTJjMTQuNCAxMC4yIDE3LjkgMzAuMiA3LjcgNDQuNnMtMzAuMiAxNy45LTQ0LjYgNy43bC05Mi4yLTY1LjEtNjIuMiA1My4zIDMyLjEgMjYuN2MxOC4yIDE1LjIgMjguOCAzNy43IDI4LjggNjEuNWwwIDg3LjggNzcuNSAxNS4yYzYuMiAxLjIgMTIuNiAuOSAxOC43LS44bDQxLjItMTEuOGMxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC00MS4yIDExLjhjLTEzLjQgMy44LTI3LjQgNC40LTQxLjEgMS44TDg3LjEgNDQzLjNjLTE3LjItMy40LTMzLTExLjgtNDUuMy0yNC4xTDE1LjUgMzkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjYuMiAyNi4yYzUuNiA1LjYgMTIuOCA5LjQgMjAuNiAxMWw2NC4yIDEyLjYgMC0xMjMuN2MwLTI3LjcgMTItNTQgMzIuOC03Mi4ybDY5LTYwLjQtODguMi02Mi4zQzE1OS42IDgwIDE1Ni4yIDYwIDE2Ni40IDQ1LjV6bTU4LjEgMzc1LjdsNjQgMTIuNSAwLTc1LjNjMC00LjctMi4xLTkuMy01LjgtMTIuM2wtNTguMi00OC41IDAgMTIzLjZ6XCJdXG59O1xudmFyIGZhU25vd2JvYXJkaW5nID0gZmFQZXJzb25Tbm93Ym9hcmRpbmc7XG52YXIgZmFUdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHR5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ0ZWxldHlwZVwiXSwgXCJmMWU0XCIsIFwiTTQ1MC4yIDI2Ni44YzE1LjggNi41IDM0LjEgLjMgNDIuNi0xNC42bDIuNC00LjJjMjcuOS00OC45IDIzLjYtMTE4LjgtMzEuMy0xNTQuNS0xMjYtODItMjg5LjYtODItNDE1LjYgMC01NC45IDM1LjctNTkuMyAxMDUuNy0zMS4zIDE1NC41bDIuNCA0LjJjOC41IDE0LjkgMjYuNyAyMS4xIDQyLjYgMTQuNmw4MS45LTMzLjdjMTMuOS01LjcgMjIuNC0xOS45IDIwLjktMzQuOWwtNS4xLTUxYzYyLjUtMjEgMTMwLjgtMTkuOSAxOTIuNiAzLjNsLTQuOCA0Ny43Yy0xLjUgMTUgNyAyOS4yIDIwLjkgMzQuOWw4MS45IDMzLjd6TTMyIDM1MmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwem05NiAwYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6TTY0IDQxNmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTM1MiAzMmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwek0yNTYgMzIwYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptNjQgMzJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHptMTI4LTMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMTI4IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbnZhciBmYVRlbGV0eXBlID0gZmFUdHk7XG52YXIgZmFVc2Vyc1JlY3RhbmdsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2Vycy1yZWN0YW5nbGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1OTRcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjI0IDcyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0wIDE1MmM1MyAwIDk2IDQzIDk2IDk2bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtNTMgNDMtOTYgOTYtOTZ6bTk2LTY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAyNzIuM2MtMTUuMiAyMi44LTI0IDUwLjItMjQgNzkuN2wwIDI0YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNDYuOCAwQzg5LjYgNDAwIDgwIDM5MC40IDgwIDM3OC43TDgwIDM2OGMwLTUwLjMgMzguNy05MS42IDg4LTk1Ljd6TTQyNy45IDQwMGMyLjctNy41IDQuMS0xNS42IDQuMS0yNGwwLTI0YzAtMjkuNS04LjgtNTYuOS0yNC03OS43IDQ5LjMgNC4xIDg4IDQ1LjMgODggOTUuN2wwIDEwLjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtNDYuOCAwek05NiAxOTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpcIl1cbn07XG52YXIgZmFNb2JpbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9iaWxlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4MjQxLCBcIm1vYmlsZS1hbmRyb2lkXCIsIFwibW9iaWxlLXBob25lXCJdLCBcImYzY2VcIiwgXCJNODAgMEM0NC43IDAgMTYgMjguNyAxNiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw4MCAwem03MiA0MTZsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIl1cbn07XG52YXIgZmFNb2JpbGVBbmRyb2lkID0gZmFNb2JpbGU7XG52YXIgZmFNb2JpbGVQaG9uZSA9IGZhTW9iaWxlO1xudmFyIGZhQXJyb3dzVHVyblRvRG90cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdHVybi10by1kb3RzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNGMxXCIsIFwiTTI2NS40LTYuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDI4NS4zIDY0IDM1MiA2NGM1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjYuNyAwIDI1LjQgMjUuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDgwLTgwem0tODIuNyAyNzJsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNjIuNyA0MDAgOTYgNDAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDgxLjcgMCA0NjRsMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDY2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDB6TTMyMCAzNjhhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek02NCAxNjBhNjQgNjQgMCAxIDEgMC0xMjggNjQgNjQgMCAxIDEgMCAxMjh6XCJdXG59O1xudmFyIGZhRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXhjbGFtYXRpb24nLFxuICBpY29uOiBbMTI4LCA1MTIsIFsxMDA2OSwgMTAwNzEsIDYxNzM4XSwgXCIyMVwiLCBcIk02NCA0MzJjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MGMwLTIyLjEgMTcuOS00MCA0MC00MHpNNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIC42IDAgMS4xIDAgMS43bC0xNiAzMDRjLS45IDE3LTE1IDMwLjMtMzIgMzAuM1MzMyAzNzAuNyAzMiAzNTMuN0wxNiA0OS43YzAtLjYgMC0xLjEgMC0xLjcgMC0yNi41IDIxLjUtNDggNDgtNDh6XCJdXG59O1xudmFyIGZhQ2h1cmNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NodXJjaCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5NjJdLCBcImY1MWRcIiwgXCJNMjgwLThjMC0xMy4zLTEwLjctMjQtMjQtMjRTMjMyLTIxLjMgMjMyLThsMCAyNC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCA0OC05OC42IDY1LjhDMTIwIDE4Ni43IDExMiAyMDEuNiAxMTIgMjE3LjdsMCAzOC4zLTc5LjggNDUuNkMxMi4zIDMxMyAwIDMzNC4yIDAgMzU3LjFMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjQgNzQuNyAwIDg1LjQgMCAzMjAgMGw2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtOTAuOWMwLTIzLTEyLjMtNDQuMi0zMi4yLTU1LjZMNDAwIDI1NiA0MDAgMjE3LjdjMC0xNi04LTMxLTIxLjQtMzkuOWwtOTguNi02NS44IDAtNDggMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMCAwLTI0ek0yNTYgMzIwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODAtMTI4IDAgMC04MGMwLTM1LjMgMjguNy02NCA2NC02NHpcIl1cbn07XG52YXIgZmFUb2dnbGVPZmYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9nZ2xlLW9mZicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjIwNFwiLCBcIk0zODQgMTI4YzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzQ1NC43IDM4NCAzODQgMzg0bC0xOTIgMGMtNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhzNTcuMy0xMjggMTI4LTEyOGwxOTIgMHpNNTc2IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MkwxOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhsMTkyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJ6TTE5MiAzMzZhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6XCJdXG59O1xudmFyIGZhU2hvZVByaW50cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaG9lLXByaW50cycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjU0YlwiLCBcIk0yOTYgMTkyYy0yMS4xLTEyLjEtNDIuMy0yNC4yLTcyLTI5LjNsMC0xNDAuM0MyNTcuNyAxMyAzMTEuNCAwIDM1MiAwIDQ0OCAwIDU3NiA0OCA1NzYgMTI4cy0xMTkuNiA5Ni0xNzYgOTZjLTQ4IDAtNzYtMTYtMTA0LTMyek0xMjggMzJsNDggMCAwIDEyOC00OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0ek0yMzIgMzIwYzI4LTE2IDU2LTMyIDEwNC0zMiA1Ni40IDAgMTc2IDE2IDE3NiA5NlMzODQgNTEyIDI4OCA1MTJjLTQwLjUgMC05NC4zLTEzLTEyOC0yMi40bDAtMTQwLjNjMjkuNy01LjIgNTAuOS0xNy4zIDcyLTI5LjR6TTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OCAwIDAgMTI4LTQ4IDB6XCJdXG59O1xudmFyIGZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGViXCIsIFwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xudmFyIGZhV2FsbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dhbGxldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU1NVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDcyIDEyOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNTguNyA4MCA3MiA4MGwzODQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCAzMnpNNDE2IDI1NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xudmFyIGZhTWVzc2FnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtZXNzYWdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJjb21tZW50LWFsdFwiXSwgXCJmMjdhXCIsIFwiTTAgMzUyTDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzIwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDUzLTQzIDk2LTk2IDk2bC0xMjAgMGMtNS4yIDAtMTAuMiAxLjctMTQuNCA0LjhMMTY2LjQgNTM5LjJjLTQuMiAzLjEtOS4yIDQuOC0xNC40IDQuOC0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZ6XCJdXG59O1xudmFyIGZhQ29tbWVudEFsdCA9IGZhTWVzc2FnZTtcbnZhciBmYVRyb3BoeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cm9waHknLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc5NDJdLCBcImYwOTFcIiwgXCJNMTQ0LjMgMGwyMjQgMGMyNi41IDAgNDguMSAyMS44IDQ3LjEgNDguMi0uMiA1LjMtLjQgMTAuNi0uNyAxNS44bDQ5LjYgMGMyNi4xIDAgNDkuMSAyMS42IDQ3LjEgNDkuOC03LjUgMTAzLjctNjAuNSAxNjAuNy0xMTggMTkwLjUtMTUuOCA4LjItMzEuOSAxNC4zLTQ3LjIgMTguOC0yMC4yIDI4LjYtNDEuMiA0My43LTU3LjkgNTEuOGwwIDczLjEgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTczLjFjLTE2LTcuNy0zNS45LTIyLTU1LjMtNDguMy0xOC40LTQuOC0zOC40LTEyLjEtNTcuOS0yMy4xLTU0LjEtMzAuMy0xMDIuOS04Ny40LTEwOS45LTE4OS45LTEuOS0yOC4xIDIxLTQ5LjcgNDcuMS00OS43bDQ5LjYgMGMtLjMtNS4yLS41LTEwLjQtLjctMTUuOC0xLTI2LjUgMjAuNi00OC4yIDQ3LjEtNDguMnpNMTAxLjUgMTEybC01Mi40IDBjNi4yIDg0LjcgNDUuMSAxMjcuMSA4NS4yIDE0OS42LTE0LjQtMzcuMy0yNi4zLTg2LTMyLjgtMTQ5LjZ6TTM4MCAyNTYuOGM0MC41LTIzLjggNzcuMS02Ni4xIDgzLjMtMTQ0LjhMNDExIDExMmMtNi4yIDYwLjktMTcuNCAxMDguMi0zMSAxNDQuOHpcIl1cbn07XG52YXIgZmFGYWNlRGl6enkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1kaXp6eScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZGl6enlcIl0sIFwiZjU2N1wiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMzA0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4elwiXVxufTtcbnZhciBmYURpenp5ID0gZmFGYWNlRGl6enk7XG52YXIgZmFCYWN0ZXJpYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWN0ZXJpYScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA1OVwiLCBcIk0yNTYtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMWM4LjYgMi4yIDE2LjkgNS42IDI0LjggMTAuM0wzMTEgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTYuMyA2LjNjNC42IDcuOCA4IDE2LjIgMTAuMyAyNC44bDExIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExIDBjLTIuMiA4LjYtNS42IDE2LjktMTAuMyAyNC44TDM0NSAxNTFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMS0zMC4xIDMwLjEgNC4xIDQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xYy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMMjE3IDI3OWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02LjMtNi4zYy03LjggNC42LTE2LjIgOC0yNC44IDEwLjNsMCAxMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExYy04LjYtMi4yLTE2LjktNS42LTI0LjgtMTAuM0w3MyAzMTNjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNi4zLTYuM2MtNC42LTcuOC04LTE2LjItMTAuMy0yNC44bC0xMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExIDBjMi4yLTguNiA1LjYtMTYuOSAxMC4zLTI0LjhMMzkgMTY5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMWMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMTAzIDEwNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjEgMzAuMS0zMC4xLTQuMS00LjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45UzE5MS42LTIuMyAyMDEgN2w2LjMgNi4zYzcuOC00LjYgMTYuMi04IDI0LjgtMTAuM2wwLTExYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0xMjggMjU2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjQwIDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yOTYgNDBsMCAxMWM4LjYgMi4yIDE2LjkgNS42IDI0LjggMTAuM0w1NjcgMTk5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNi4zIDYuM2M0LjYgNy44IDggMTYuMiAxMC4zIDI0LjhsMTEgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEgMGMtMi4yIDguNi01LjYgMTYuOS0xMC4zIDI0LjhMNjAxIDM0M2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xLTMwLjEgMzAuMSA0LjEgNC4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjFjLTEwIDEwLTIwIDIwLTMwLjEgMzAuMUw0NzMgNDcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTYuMy02LjNjLTcuOCA0LjYtMTYuMiA4LTI0LjggMTAuM2wwIDExYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTFjLTguNi0yLjItMTYuOS01LjYtMjQuOC0xMC4zTDMyOSA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNi4zLTYuM2MtNC42LTcuOC04LTE2LjItMTAuMy0yNC44bC0xMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExIDBjMi4yLTguNiA1LjYtMTYuOSAxMC4zLTI0LjhMMjk1IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjFjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDM1OSAyOTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xIDMwLjEtMzAuMS00LjEtNC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNi4zIDYuM2M3LjgtNC42IDE2LjItOCAyNC44LTEwLjNsMC0xMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek00NDggMzg0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xudmFyIGZhRWFyRGVhZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlYXItZGVhZicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZGVhZlwiLCBcImRlYWZuZXNzXCIsIFwiaGFyZC1vZi1oZWFyaW5nXCJdLCBcImYyYTRcIiwgXCJNNTAyLjYgNTQuNmwtNDAgNDBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDQwLTQwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bS0zMjAgMzIwbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxMjgtMTI4YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjUtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM2M5LjctODggODQuMy0xNTYuNSAxNzQuOS0xNTYuNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdsMCA2LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTItMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzggMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45IDAtNjEuOS01MC4xLTExMi0xMTItMTEyem0wIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYURlYWYgPSBmYUVhckRlYWY7XG52YXIgZmFEZWFmbmVzcyA9IGZhRWFyRGVhZjtcbnZhciBmYUhhcmRPZkhlYXJpbmcgPSBmYUVhckRlYWY7XG52YXIgZmFQZW9wbGVBcnJvd3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVvcGxlLWFycm93cycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wicGVvcGxlLWFycm93cy1sZWZ0LXJpZ2h0XCJdLCBcImUwNjhcIiwgXCJNMzIgNjRBNjQgNjQgMCAxIDEgMTYwIDY0IDY0IDY0IDAgMSAxIDMyIDY0ek0wIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwYzMuMiAwIDYuNCAuMiA5LjUgLjdMOTMuMSAyMDUuMUM2NSAyMzMuMiA2NSAyNzguOCA5My4xIDMwNi45bDU2IDU2YzMuNCAzLjQgNyA2LjQgMTAuOSA5bDAgOTIuMWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xMjAuNkMxMi45IDMzMi40IDAgMzExLjcgMCAyODhsMC02NHpNMzUyIDY0YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptNjYuOSAxNDEuMWwtNDQuNC00NC40YzMuMS0uNSA2LjMtLjcgOS41LS43bDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRMNDgwIDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05Mi4xYzMuOS0yLjYgNy41LTUuNiAxMC45LTlsNTYtNTZjMjguMS0yOC4xIDI4LjEtNzMuNyAwLTEwMS44ek0zMDIuOCAxNzcuOGM5LTMuNyAxOS4zLTEuNyAyNi4yIDUuMmw1NiA1NmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNTYgNTZjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJTMjg4IDMyMS43IDI4OCAzMTJsMC0yNC02NCAwIDAgMjRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtNTYtNTZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDU2LTU2YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJTMjI0IDE5MC4zIDIyNCAyMDBsMCAyNCA2NCAwIDAtMjRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yelwiXVxufTtcbnZhciBmYVBlb3BsZUFycm93c0xlZnRSaWdodCA9IGZhUGVvcGxlQXJyb3dzO1xudmFyIGZhSGFuZHNDbGFwcGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kcy1jbGFwcGluZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTFhOFwiLCBcIk0zNDQgOGwwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRTMzQ0LTUuMyAzNDQgOHpNMjIwIDEwLjdsMzIgNDhjNy40IDExIDQuNCAyNS45LTYuNyAzMy4zcy0yNS45IDQuNC0zMy4zLTYuN2wtMzItNDhjLTcuNC0xMS00LjQtMjUuOSA2LjctMzMuM1MyMTIuNi0uMyAyMjAgMTAuN3pNMTM1IDExOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwyOTIuNyAyNDIuN2MxMC4xIDEwLjEgMjcuMyAyLjkgMjcuMy0xMS4zbDAtMzkuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTUzLjZjMCA1Ny4xLTMwIDExMC03OC45IDEzOS40LTY0IDM4LjQtMTQ1LjggMjguMy0xOTguNS0yNC40TDcgMzYxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTMgNTNjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFMMjMgMjY1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsOTMgOTNjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFMNTUgMTg1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMTE3IDExN2M2LjEgNi4xIDE2IDYuMSAyMi4xIDBzNi4xLTE2IDAtMjIuMWwtOTMtOTNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45ek00MzMuMSA0ODQuOWMtMjQuMiAxNC41LTUwLjkgMjIuMS03Ny43IDIzLjEgNDguMS0zOS42IDc2LjYtOTkgNzYuNi0xNjIuNGwwLTk4LjFjOC4yLS4xIDE2LTYuNCAxNi0xNmwwLTM5LjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE1My42YzAgNTcuMS0zMCAxMTAtNzguOSAxMzkuNHpNNDUzLjMgNGMxMSA3LjQgMTQgMjIuMyA2LjcgMzMuM2wtMzIgNDhjLTcuNCAxMS0yMi4zIDE0LTMzLjMgNi43cy0xNC0yMi4zLTYuNy0zMy4zbDMyLTQ4YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43elwiXVxufTtcbnZhciBmYVZpcnVzQ292aWRTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aXJ1cy1jb3ZpZC1zbGFzaCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRhOVwiLCBcIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04My04MyAxMS40LTExLjRjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMTEuMyAxMS4zLTIzLjgtMjMuOGMxNy45LTIzLjUgMjkuOS01MS43IDM0LjEtODIuM2wzMy42IDAgMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0zMy42IDBjLTQuMi0zMC43LTE2LjMtNTguOC0zNC4xLTgyLjNsMjMuOC0yMy44IDExLjMgMTEuM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDQwLjcgNDYuN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxMS4zIDExLjMtMjMuOCAyMy44QzM3MC44IDk3LjkgMzQyLjcgODUuOCAzMTIgODEuNmwwLTMzLjYgMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzNDEuMyAwIDMyOCAwTDI0OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2IDAgMCAzMy42Yy0zMC43IDQuMi01OC44IDE2LjMtODIuMyAzNC4xTDE1Ny45IDkyIDE2OS4yIDgwLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwxMjMuOSA1OC4xIDQxLTI0Ljl6TTExMy42IDIzMmwtMzMuNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgMzMuNiAwYzQuMiAzMC43IDE2LjMgNTguOCAzNC4xIDgyLjNsLTIzLjggMjMuOC0xMS4zLTExLjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTYuNiA1Ni42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTEuMy0xMS4zIDIzLjgtMjMuOGMyMy41IDE3LjkgNTEuNyAyOS45IDgyLjMgMzQuMWwwIDMzLjYtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwIDAtMzMuNmMxMy40LTEuOCAyNi40LTUuMiAzOC43LTkuOUwxMjMuNSAxOTMuM2MtNC43IDEyLjMtOCAyNS4yLTkuOSAzOC43elwiXVxufTtcbnZhciBmYUNhbGVuZGFyRGF5cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1kYXlzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJjYWxlbmRhci1hbHRcIl0sIFwiZjA3M1wiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTY0IDI0MGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xMjggMGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNjQgMzY4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE0NC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG52YXIgZmFDYWxlbmRhckFsdCA9IGZhQ2FsZW5kYXJEYXlzO1xudmFyIGZhRGlhbW9uZFR1cm5SaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWFtb25kLXR1cm4tcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImRpcmVjdGlvbnNcIl0sIFwiZjVlYlwiLCBcIk0yMTUgMTdMMTcgMjE1QzYuMSAyMjUuOSAwIDI0MC42IDAgMjU2czYuMSAzMC4xIDE3IDQxTDIxNSA0OTVjMTAuOSAxMC45IDI1LjYgMTcgNDEgMTdzMzAuMS02LjEgNDEtMTdMNDk1IDI5N2MxMC45LTEwLjkgMTctMjUuNiAxNy00MXMtNi4xLTMwLjEtMTctNDFMMjk3IDE3QzI4Ni4xIDYuMSAyNzEuNCAwIDI1NiAwcy0zMC4xIDYuMS00MSAxN3pNMzg1IDI1N2wtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtNzguMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDBjMC0zOS44IDMyLjItNzIgNzItNzJsNzguMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjl6XCJdXG59O1xudmFyIGZhRGlyZWN0aW9ucyA9IGZhRGlhbW9uZFR1cm5SaWdodDtcbnZhciBmYUhhbmRQb2ludFVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtcG9pbnQtdXAnLFxuICBpY29uOiBbMzg0LCA1MTIsIFs5NzU3XSwgXCJmMGE2XCIsIFwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBTOTYgMTQuMyA5NiAzMmwwIDIwOC02NCAwIDAtMjA4ek0yMjQgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tNjQtNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNjAgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjEuNyAwYy00Mi40IDAtODMuMS0xNi45LTExMy4xLTQ2LjlMMzcuNSA0NTMuNUMxMy41IDQyOS41IDAgMzk2LjkgMCAzNjNsMC0yN2MwLTM1LjMgMjguNy02NCA2NC02NGw4OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJ6XCJdXG59O1xudmFyIGZhQmV6aWVyQ3VydmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmV6aWVyLWN1cnZlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTViXCIsIFwiTTI5NiAxMzZsMC00OCA0OCAwIDAgNDgtNDggMHpNMjg4IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDQtMTE4LjQgMEMxMTEuMiA2Mi43IDg5LjMgNDggNjQgNDggMjguNyA0OCAwIDc2LjcgMCAxMTJzMjguNyA2NCA2NCA2NGMyNS4zIDAgNDcuMi0xNC43IDU3LjYtMzZsNjYuOSAwYy01OC45IDM5LjYtOTguOSAxMDUtMTA0IDE4MEw4MCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zLjMgMGM1LjktNjcgNDguNS0xMjMuNCAxMDcuNS0xNDkuMSA4LjYgMTIuNyAyMy4yIDIxLjEgMzkuOCAyMS4xbDY0IDBjMTYuNiAwIDMxLjEtOC40IDM5LjgtMjEuMSA1OSAyNS43IDEwMS42IDgyLjEgMTA3LjUgMTQ5LjFsLTMuMyAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtNC41IDBjLTUtNzUtNDUuMS0xNDAuNC0xMDQtMTgwbDY2LjkgMGMxMC40IDIxLjMgMzIuMyAzNiA1Ny42IDM2IDM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0Yy0yNS4zIDAtNDcuMiAxNC43LTU3LjYgMzZsLTExOC40IDAgMC00YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek04OCAzNzZsNDggMCAwIDQ4LTQ4IDAgMC00OHptNDE2IDQ4bDAtNDggNDggMCAwIDQ4LTQ4IDB6XCJdXG59O1xudmFyIGZhUGVyc29uSGFsZkRyZXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1oYWxmLWRyZXNzJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlNTQ4XCIsIFwiTTE0My40LTMuOWM5LjctMTYuOCAyNy44LTI4LjEgNDguNi0yOC4xIDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMjUuNC0xNi45IDQ2LjgtNDAgNTMuN2wwIDBjLTUuMSAxLjUtMTAuNCAyLjMtMTYgMi4zLTMwLjkgMC01Ni0yNS4xLTU2LTU2bDAgMGMwLTEwLjEgMi43LTE5LjcgNy40LTI3Ljl6TTMxOC4zIDI5OS4xTDI3MiAyMzYuNyAyNzIgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwIDAtLjQgMC0yMzguNmMzNi4yIDQuNCA2OS4yIDIzLjQgOTEuMiA1M2w3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTE3NiAxMTNsMCAzOTljMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMjUuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw0My0xMjktNDguMyA2NS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NWMyMi0yOS42IDU1LjEtNDguNiA5MS4yLTUzelwiXVxufTtcbnZhciBmYVNxdWFyZVBvbGxIb3Jpem9udGFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1wb2xsLWhvcml6b250YWwnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInBvbGwtaFwiXSwgXCJmNjgyXCIsIFwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYgMTUyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xMTIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHptNzIgODBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIwOCAwek0xOTIgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6XCJdXG59O1xudmFyIGZhUG9sbEggPSBmYVNxdWFyZVBvbGxIb3Jpem9udGFsO1xudmFyIGZhU2Nob29sQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2Nob29sLWNpcmNsZS14bWFyaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2ZFwiLCBcIk02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI3NiAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC05MC45IDAgMC04OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzEgMCAxLjkgMCAyLjkgLjEgMjYuMy03NC42IDk3LjUtMTI4LjEgMTgxLjEtMTI4LjEgMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC0zMy40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwLTEyNy45LTExNS4xYy0xOC4zLTE2LjQtNDYtMTYuNC02NC4yIDBMMTI4IDEyOCA2NCAxMjh6bTY0IDI0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyek0xMTIgMjU2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZ6TTI4OCAxMjhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbnZhciBmYUhhbmRMaXphcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1saXphcmQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyNThcIiwgXCJNMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMjM4LjUgMGMzNi44IDAgNzEuMiAxOCA5Mi4xIDQ4LjJsMTEzLjUgMTY0YzEzIDE4LjcgMTkuOSA0MSAxOS45IDYzLjhsMCA3NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMy44LTc4LjEtNTAuMi0xNjEuOSAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4TDQ4IDE2MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6XCJdXG59O1xudmFyIGZhQ2hhbGtib2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGFsa2JvYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJibGFja2JvYXJkXCJdLCBcImY1MWJcIiwgXCJNOTYgNjRjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDY0ek00ODAgMzg0bC02NCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMTYwIDAgMC0yNTYgMzg0IDAgMCAyNTZ6XCJdXG59O1xudmFyIGZhQmxhY2tib2FyZCA9IGZhQ2hhbGtib2FyZDtcbnZhciBmYVVwUmlnaHRGcm9tU3F1YXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VwLXJpZ2h0LWZyb20tc3F1YXJlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJleHRlcm5hbC1saW5rLWFsdFwiXSwgXCJmMzVkXCIsIFwiTTI5MC40IDE5LjhDMjk1LjQgNy44IDMwNy4xIDAgMzIwIDBMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlMNDAwIDE1Ny4zIDI0Ni42IDMxMC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzNTQuNyAxMTIgMjk3LjQgNTQuNmMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0Ljl6TTAgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDgwYzAgNDQuMi0zNS44IDgwLTgwIDgwTDgwIDUxMmMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCAxNzZ6XCJdXG59O1xudmFyIGZhRXh0ZXJuYWxMaW5rQWx0ID0gZmFVcFJpZ2h0RnJvbVNxdWFyZTtcbnZhciBmYVNxdWFyZUZ1bGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLWZ1bGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg5OTcsIDEyODk5OCwgMTI4OTk5LCAxMjkwMDAsIDEyOTAwMSwgMTI5MDAyLCAxMjkwMDMsIDExMDM1LCAxMTAzNl0sIFwiZjQ1Y1wiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6XCJdXG59O1xudmFyIGZhQ2xvdmVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3ZlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTEzOVwiLCBcIk0zMTAuNCAxNkMzNDYuNiAxNiAzNzYgNDUuNCAzNzYgODEuN2wwIDUuMmMwIDExLjItMi43IDIyLjMtNy44IDMyLjJsLTIuMyA0LjItMjAuMSAzMy41Yy0xLjEgMS45LTEuMiAzLjQtMS4xIDQuNSAuMiAxLjMgLjkgMi43IDIuMSAzLjlzMi42IDEuOSAzLjkgMi4xYzEuMSAuMiAyLjYgLjEgNC41LTEuMWwzMy41LTIwLjEgNC4yLTIuM2MxMC01LjEgMjEtNy44IDMyLjItNy44bDUuMiAwYzM2LjIgMCA2NS42IDI5LjQgNjUuNiA2NS43IDAgMTcuNC02LjkgMzQuMS0xOS4yIDQ2LjRsLTEuMyAxLjNjLTMuNyAzLjctMy43IDkuNiAwIDEzLjNsMS4zIDEuM2MxMi4zIDEyLjMgMTkuMiAyOSAxOS4yIDQ2LjQgMCAzNi4yLTI5LjQgNjUuNi02NS42IDY1LjZsLTUuMiAwYy0xMi44IDAtMjUuNS0zLjUtMzYuNS0xMC4xbC0zMy41LTIwLjFjLTEuOS0xLjEtMy40LTEuMi00LjUtMS4xLTEuMyAuMi0yLjcgLjktMy45IDIuMXMtMS45IDIuNi0yLjEgMy45Yy0uMiAxLjEtLjEgMi42IDEuMSA0LjVsMjAuMSAzMy41YzYuNiAxMSAxMC4xIDIzLjYgMTAuMSAzNi41bDAgNS4yYzAgMzYuMi0yOS40IDY1LjYtNjUuNiA2NS42LTE3LjQgMC0zNC4xLTYuOS00Ni40LTE5LjJsLTEuMy0xLjNjLTMuNy0zLjctOS42LTMuNy0xMy4zIDBsLTEuMyAxLjNjLTEyLjMgMTIuMy0yOSAxOS4yLTQ2LjQgMTkuMi0zNi4yIDAtNjUuNi0yOS40LTY1LjctNjUuNmwwLTUuMmMwLTEyLjggMy41LTI1LjUgMTAuMS0zNi41bDIwLjEtMzMuNWMxLjEtMS45IDEuMi0zLjQgMS4xLTQuNS0uMi0xLjMtLjktMi43LTIuMS0zLjlzLTIuNi0xLjktMy45LTIuMWMtLjUtLjEtMS4yLS4xLTEuOSAwbC0yLjUgMS0zMy41IDIwLjFjLTExIDYuNi0yMy42IDEwLjEtMzYuNSAxMC4xbC01LjIgMEM0NS40IDM3NiAxNiAzNDYuNiAxNiAzMTAuNCAxNiAyOTMgMjIuOSAyNzYuMyAzNS4yIDI2NGwxLjMtMS4zIDEuMi0xLjVjMi4xLTMuMSAyLjEtNy4yIDAtMTAuM2wtMS4yLTEuNS0xLjMtMS4zQzIyLjkgMjM1LjggMTYgMjE5LjEgMTYgMjAxLjcgMTYgMTY1LjQgNDUuNCAxMzYgODEuNyAxMzZsNS4yIDBjMTIuOCAwIDI1LjUgMy41IDM2LjUgMTAuMWwzMy41IDIwLjEgMi41IDFjLjcgLjEgMS40IC4xIDEuOSAuMSAxLjMtLjIgMi43LS45IDMuOS0yLjFzMS45LTIuNiAyLjEtMy45Yy4xLS41IC4xLTEuMi0uMS0xLjlsLTEtMi41LTIwLjEtMzMuNWMtNi42LTExLTEwLjEtMjMuNi0xMC4xLTM2LjVsMC01LjJjMC0zNi4yIDI5LjQtNjUuNyA2NS43LTY1LjcgMTcuNCAwIDM0LjEgNi45IDQ2LjQgMTkuMmwxLjMgMS4zYzMuNyAzLjYgOS42IDMuNyAxMy4zIDBsMS4zLTEuMyA0LjgtNC40QzI4MC41IDIxLjMgMjk1LjEgMTYgMzEwLjQgMTZ6XCJdXG59O1xudmFyIGZhVGVldGhPcGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlZXRoLW9wZW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2MmZcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDgwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTAgMjcyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzA0em04MC0xNjBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0em0xMjggMGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjR6TTgwIDExMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0zMjAgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0ek00OCAzODRsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnptMTQ0IDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMTEyLTE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYUJhcnNTdGFnZ2VyZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFycy1zdGFnZ2VyZWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInJlb3JkZXJcIiwgXCJzdHJlYW1cIl0sIFwiZjU1MFwiLCBcIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTY0IDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5NiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpcIl1cbn07XG52YXIgZmFSZW9yZGVyID0gZmFCYXJzU3RhZ2dlcmVkO1xudmFyIGZhU3RyZWFtID0gZmFCYXJzU3RhZ2dlcmVkO1xudmFyIGZhV2FyZWhvdXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dhcmVob3VzZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjQ5NFwiLCBcIk0wIDE0Mi4xTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMzNy45YzAtMjcuNS0xNy42LTUyLTQzLjgtNjAuN0wzMDMuMiA1LjFjLTkuOS0zLjMtMjAuNS0zLjMtMzAuNCAwTDQzLjggODEuNEMxNy42IDkwLjEgMCAxMTQuNiAwIDE0Mi4xek00NjQgMjU2bC0zNTIgMCAwIDY0IDM1MiAwIDAtNjR6TTExMiA0MTZsMzUyIDAgMC02NC0zNTIgMCAwIDY0em0zNTIgMzJsLTM1MiAwIDAgNjQgMzUyIDAgMC02NHpcIl1cbn07XG52YXIgZmFTd2F0Y2hib29rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N3YXRjaGJvb2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YzNcIiwgXCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM2OGMwIDUzLTQzIDk2LTk2IDk2UzAgNDY5IDAgNDE2TDAgNDh6TTI0MCA0MDkuNmwwLTI3MS41IDQ4LjEtNDguMWMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMGw2Ny45IDY3LjljMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMMjQwIDQwOS42ek0yMDUuNSA1MTJsMTkyLTE5MiA2Ni42IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU4LjUgMHpNODAgNjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNkw4MCA2NHpNNjQgMjA4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTk2IDQ0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xudmFyIGZhQ2FtcGdyb3VuZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYW1wZ3JvdW5kJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTk3OF0sIFwiZjZiYlwiLCBcIk0zNDQuOCA1Mi4zYzExLjItMTMuNyA5LjItMzMuOC00LjUtNDVzLTMzLjgtOS4yLTQ1IDQuNWwtMzkuMiA0OC0zOS4yLTQ4QzIwNS42LTEuOSAxODUuNC00IDE3MS43IDcuMnMtMTUuNyAzMS40LTQuNSA0NWw0Ny40IDU4LTIwMiAyNDYuOUM0LjUgMzY3LjEgMCAzNzkuNiAwIDM5Mi42TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzkuNGMwLTEyLjktNC41LTI1LjUtMTIuNy0zNS41bC0yMDItMjQ2LjkgNDcuNC01OHpNMjU2IDI4OGwxMTIgMTI4LTIyNCAwIDExMi0xMjh6XCJdXG59O1xudmFyIGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXdhbGtpbmctYXJyb3ctcmlnaHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NTJcIiwgXCJNMTA0LjUgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0tOCAxODEuM0w3My45IDIyNy45Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNS4xLTM1LjFjMjIuOC0yMi44IDUzLjYtMzUuNiA4NS44LTM1LjYgMzYuOSAwIDcxLjggMTYuOCA5NC44IDQ1LjZMMjYyLjMgMTgwYzYuMSA3LjYgMTUuMyAxMiAyNSAxMmwzMy4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMzLjIgMGMtMjkuMiAwLTU2LjctMTMuMy03NS0zNmwtMy44LTQuNyAwIDExNS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM2wxMi42IDg4LjFjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJsLTEyLjYtODguMWMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44TDEzMCAzNDcuNWMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zek05Ni42IDM3MWMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41TDU1LjEgNTM0LjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY4LjMtNjguM2MzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMOTYuNiAzNzF6TTUwNS41IDM0NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwMi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJ6XCJdXG59O1xudmFyIGZhR2xhc3NlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbGFzc2VzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTMwXCIsIFwiTTE0My4zIDk2Yy0xNCAwLTI2LjUgOS4yLTMwLjYgMjIuNkw3MC40IDI1NiAyMjQgMjU2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDY0IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsMTUzLjYgMC00Mi4zLTEzNy40QzQ1OS4yIDEwNS4yIDQ0Ni44IDk2IDQzMi43IDk2TDQwMCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMi43IDBjNDIuMSAwIDc5LjQgMjcuNSA5MS44IDY3LjhsNDUuNCAxNDcuNWM0LjEgMTMuMiA2LjEgMjYuOSA2LjEgNDAuN2wwIDk2YzAgNTMtNDMgOTYtOTYgOTZsLTY0IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC0zMi02NCAwIDAgMzJjMCA1My00MyA5Ni05NiA5NmwtNjQgMGMtNTMgMC05Ni00My05Ni05NmwwLTk2YzAtMTMuOCAyLjEtMjcuNSA2LjEtNDAuN0w1MS41IDk5LjhDNjMuOSA1OS41IDEwMS4xIDMyIDE0My4zIDMyTDE3NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIuNyAwek02NCAzMjBsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjQtMTI4IDB6bTQxNiA5NmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0LTEyOCAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMHpcIl1cbn07XG52YXIgZmFDaXJjbGVQYXVzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtcGF1c2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjA5MiwgXCJwYXVzZS1jaXJjbGVcIl0sIFwiZjI4YlwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjI0IDE5MmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwiXVxufTtcbnZhciBmYVBhdXNlQ2lyY2xlID0gZmFDaXJjbGVQYXVzZTtcbnZhciBmYU1lbW9yeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtZW1vcnknLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1MzhcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA3LjRDMCAxNDIuMiA0LjQgMTQ4IDEwLjEgMTUxLjcgMjMuMyAxNjAuMyAzMiAxNzUuMSAzMiAxOTJzLTguNyAzMS43LTIxLjkgNDAuM0M0LjQgMjM2IDAgMjQxLjggMCAyNDguNmwwIDU1LjQgNTEyIDAgMC01NS40YzAtNi44LTQuNC0xMi42LTEwLjEtMTYuMy0xMy4yLTguNi0yMS45LTIzLjQtMjEuOS00MC4zczguNy0zMS43IDIxLjktNDAuM2M1LjctMy43IDEwLjEtOS41IDEwLjEtMTYuM2wwLTcuNGMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNTEyIDQxNmwwLTY0LTUxMiAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMCAwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyNCA4OCAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI0IDg4IDAgMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTYwIDE2MGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwiXVxufTtcbnZhciBmYUdpZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2lmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzg3M10sIFwiZjA2YlwiLCBcIk0zMjEuNSA2OC44QzMyOS4xIDU1LjkgMzQyLjkgNDggMzU3LjggNDhsMi4yIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTczLjMgMCAzNC44LTU5LjJ6bS0xMzEgMGwzNC44IDU5LjItNzMuMyAwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwbDIuMiAwYzE0LjkgMCAyOC44IDcuOSAzNi4zIDIwLjh6bTg5LjYtMjQuM2wtMjQuMSA0MS0yNC4xLTQxQzIxNS43IDE2LjkgMTg2LjEgMCAxNTQuMiAwTDE1MiAwYy00OC42IDAtODggMzkuNC04OCA4OCAwIDE0LjQgMy41IDI4IDkuNiA0MEwzMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDEuNiAwYzYuMS0xMiA5LjYtMjUuNiA5LjYtNDAgMC00OC42LTM5LjQtODgtODgtODhsLTIuMiAwYy0zMS45IDAtNjEuNSAxNi45LTc3LjcgNDQuNHpNNDgwIDI3MmwtMjAwIDAgMCAyMDggMTM2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNDR6bS0yNDggMGwtMjAwIDAgMCAxNDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTM2IDAgMC0yMDh6XCJdXG59O1xudmFyIGZhTW9uZXlCaWxsV2hlYXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9uZXktYmlsbC13aGVhdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTUyYVwiLCBcIk0xNzYtMTZjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtOC44IDcuMi0xNiAxNi0xNnpNNTYgMGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDU2IDQ4QzQyLjcgNDggMzIgMzcuMyAzMiAyNFM0Mi43IDAgNTYgMHpNMjQgNzJsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgMTIwQzEwLjcgMTIwIDAgMTA5LjMgMCA5NlMxMC43IDcyIDI0IDcyem04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNzIgMGMwLTguOCA3LjItMTYgMTYtMTYgNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwek00MDAtMTZjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtOC44IDcuMi0xNiAxNi0xNnptODAgMTQ0YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTM1MiAxMTJjOC44IDAgMTYgNy4yIDE2IDE2IDAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTAgMzA0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMDR6TTQ4IDQxNmwwIDQ4IDQ4IDBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTk2IDMwNGwtNDggMCAwIDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4ek00NjQgNDE2Yy0yNi41IDAtNDggMjEuNS00OCA0OGw0OCAwIDAtNDh6TTQxNiAzMDRjMCAyNi41IDIxLjUgNDggNDggNDhsMC00OC00OCAwem0tOTYgODBhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwelwiXVxufTtcbnZhciBmYUR1bmdlb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHVuZ2VvbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjZkOVwiLCBcIk0zNDcuNSAxNDQuOGM2LjUgNS40IDEyLjUgMTEuMyAxOCAxNy43IDguNyAxMC4yIDIzLjcgMTQgMzUuMSA2LjlsNTQuMS0zMy44YzExLjItNyAxNC43LTIxLjcgNi45LTMyLjItMTUuMy0yMC41LTMzLjUtMzguNi01NC4xLTUzLjgtMTAuNC03LjYtMjQuNy00LjMtMzEuOCA2LjRsLTM1LjEgNTIuNmMtNy44IDExLjYtMy44IDI3LjMgNyAzNi4yek0zMjcuOCA0MS4xYzguNi0xMi45IDIuOS0zMC41LTEyLjItMzQuMS0xOS4xLTQuNi0zOS4xLTctNTkuNi03cy00MC40IDIuNC01OS42IDdjLTE1LjEgMy42LTIwLjggMjEuMi0xMi4yIDM0LjFsNDAgNjBjNS4yIDcuOCAxNC41IDExLjcgMjMuOSAxMS4yIDUuMi0uMyAxMC42LS4zIDE1LjggMCA5LjQgLjUgMTguNy0zLjQgMjMuOS0xMS4ybDQwLTYwek01MC41IDEwMy4zYy03LjkgMTAuNS00LjMgMjUuMyA2LjkgMzIuMmw1NC4xIDMzLjhjMTEuNCA3LjEgMjYuMyAzLjMgMzUuMS02LjkgNS41LTYuNCAxMS41LTEyLjMgMTgtMTcuNyAxMC44LTguOSAxNC44LTI0LjYgNy0zNi4yTDEzNi40IDU1LjljLTcuMS0xMC43LTIxLjUtMTQtMzEuOC02LjQtMjAuNiAxNS4xLTM4LjggMzMuMy01NC4xIDUzLjh6bTYyIDE0MS4xYy44LTkuOS0zLjMtMTkuOS0xMS44LTI1LjFMNDEgMTgyYy0xMi45LTgtMjkuOS0yLjMtMzMuNiAxMi41LTQuOSAxOS43LTcuNSA0MC4zLTcuNSA2MS42bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMy45IC4yLTcuOCAuNS0xMS42em0yODcuMSAwYy4zIDMuOCAuNSA3LjcgLjUgMTEuNmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTIxLjItMi42LTQxLjgtNy41LTYxLjYtMy42LTE0LjctMjAuNy0yMC41LTMzLjYtMTIuNWwtNTkuNyAzNy4zYy04LjQgNS4zLTEyLjYgMTUuMi0xMS44IDI1LjF6TTg4IDM1MmwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptNDAwIDBsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI4MCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMwNHptLTgwIDMyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNzJ6bTE2MCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNzJ6XCJdXG59O1xudmFyIGZhU3VpdGNhc2VNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1aXRjYXNlLW1lZGljYWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcIm1lZGtpdFwiXSwgXCJmMGZhXCIsIFwiTTE5MiA1NmwwIDQwIDEyOCAwIDAtNDBjMC00LjQtMy42LTgtOC04TDIwMCA0OGMtNC40IDAtOCAzLjYtOCA4em0tNDggOGwwLThjMC0zMC45IDI1LjEtNTYgNTYtNTZMMzEyIDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MjQtMjI0IDAgMC00MTZ6TTk2IDE3NmwwIDMwNC0zMiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE2MGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwIDAgODB6TTQxNiA0ODBsMC0zODQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzIgMHpNMjQ0IDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzYtMzYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDM2IDAgMCAzNmMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zNiAzNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMzYgMCAwLTM2YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMHpcIl1cbn07XG52YXIgZmFNZWRraXQgPSBmYVN1aXRjYXNlTWVkaWNhbDtcbnZhciBmYVBlcnNvbkNhbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWNhbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU1M2NcIiwgXCJNMjMyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xNDQgMjM2LjdMOTcuNyAyOTkuMWMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVDMTQyIDEzMiAxODEuNyAxMTIgMjI0IDExMnM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNkwzMDQgMjM2LjcgMzA0IDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3NS4zek0zOTIgMzg0Yy00LjQgMC04IDMuNi04IDggMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEyOGMwLTQuNC0zLjYtOC04LTh6XCJdXG59O1xudmFyIGZhR2F1Z2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2F1Z2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImRhc2hib2FyZFwiLCBcImdhdWdlLW1lZFwiLCBcInRhY2hvbWV0ZXItYWx0LWF2ZXJhZ2VcIl0sIFwiZjYyNFwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDI4MCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6TTE0NCAxNzZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0tMTYgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjg4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNDAwIDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwiXVxufTtcbnZhciBmYURhc2hib2FyZCA9IGZhR2F1Z2U7XG52YXIgZmFHYXVnZU1lZCA9IGZhR2F1Z2U7XG52YXIgZmFUYWNob21ldGVyQWx0QXZlcmFnZSA9IGZhR2F1Z2U7XG52YXIgZmFFbnZlbG9wZU9wZW5UZXh0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VudmVsb3BlLW9wZW4tdGV4dCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjY1OFwiLCBcIk0yODggMzMuOUw5Ni40IDE3NS44IDI1NC41IDI5M2M1LjMgMy45IDExLjIgNi45IDE3LjUgOC43TDI3MiA0NjRjMCA1LjUgLjUgMTAuOCAxLjMgMTZMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIzOS45YzAtMjAuMyA5LjYtMzkuNCAyNS45LTUxLjRMMjU0LjUtMjFjOS43LTcuMiAyMS40LTExIDMzLjUtMTFzMjMuOCAzLjkgMzMuNSAxMUw1MTguMSAxMjQuN2M3LjIgNS4zIDEzLjEgMTIgMTcuNCAxOS42LTIuNS0uMi01LS4zLTcuNS0uM0w0MzYuNiAxNDQgMjg4IDMzLjl6TTMyMCAyNDBjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyMjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTIyNHptODAgMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAwelwiXVxufTtcbnZhciBmYVRvb2xib3ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9vbGJveCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTUyMF0sIFwiZjU1MlwiLCBcIk0xNzYgNTZsMCA0MCAxNjAgMCAwLTQwYzAtNC40LTMuNi04LTgtOEwxODQgNDhjLTQuNCAwLTggMy42LTggOHpNMTI4IDk2bDAtNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZMMzI4IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MCAyOC4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw1MS45IDUxLjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlsMCA3Ni4xLTEzNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0xNDQgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTYtMTM2IDAgMC03Ni4xYzAtMTIuNyA1LjEtMjQuOSAxNC4xLTMzLjlsNTEuOS01MS45YzktOSAyMS4yLTE0LjEgMzMuOS0xNC4xTDEyOCA5NnpNMCA0MTZsMC05NiAxMzYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxNDQgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxMzYgMCAwIDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6XCJdXG59O1xudmFyIGZhUG93ZXJPZmYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncG93ZXItb2ZmJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTIxMV0sIFwiZjAxMVwiLCBcIk0yODggMGMwLTE3LjctMTQuMy0zMi0zMi0zMlMyMjQtMTcuNyAyMjQgMGwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDI4OCAwek0xNDYuMyA5OC40YzE0LjUtMTAuMSAxOC0zMC4xIDcuOS00NC42cy0zMC4xLTE4LTQ0LjYtNy45QzQzLjQgOTIuMSAwIDE2OSAwIDI1NiAwIDM5Ny40IDExNC42IDUxMiAyNTYgNTEyUzUxMiAzOTcuNCA1MTIgMjU2YzAtODctNDMuNC0xNjMuOS0xMDkuNy0yMTAuMS0xNC41LTEwLjEtMzQuNC02LjYtNDQuNiA3LjlzLTYuNiAzNC40IDcuOSA0NC42YzQ5LjggMzQuOCA4Mi4zIDkyLjQgODIuMyAxNTcuNiAwIDEwNi04NiAxOTItMTkyIDE5MlM2NCAzNjIgNjQgMjU2YzAtNjUuMiAzMi41LTEyMi45IDgyLjMtMTU3LjZ6XCJdXG59O1xudmFyIGZhU2lnbmFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpZ25hbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI0NiwgXCJzaWduYWwtNVwiLCBcInNpZ25hbC1wZXJmZWN0XCJdLCBcImYwMTJcIiwgXCJNNDg4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDB6TTM2MCAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI4MCAyNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHpNMTUyIDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNNDggMzg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpcIl1cbn07XG52YXIgZmFTaWduYWw1ID0gZmFTaWduYWw7XG52YXIgZmFTaWduYWxQZXJmZWN0ID0gZmFTaWduYWw7XG52YXIgZmFBcnJvd3NTcGluID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy1zcGluJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGJiXCIsIFwiTTQ4MS43IDI0MC4xYy0xNy42LTEuMi0zMi45IDEyLTM0LjIgMjkuNy0zLjMgNDctMjMuNiA4OS40LTU0LjggMTIxTDM2MSAzNTljLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzIwIDM2Ni4zIDMyMCAzNzZsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC0zNS0zNWM0MS43LTQyLjIgNjguOS05OC44IDczLjQtMTYxLjggMS4yLTE3LjYtMTItMzIuOS0yOS43LTM0LjJ6TTM5IDQxTDc0IDc2Yy00MS43IDQyLjItNjguOSA5OC44LTczLjQgMTYxLjgtMS4yIDE3LjYgMTIgMzIuOSAyOS43IDM0LjJzMzIuOS0xMiAzNC4yLTI5LjdjMy4zLTQ3IDIzLjYtODkuNCA1NC44LTEyMUwxNTEgMTUzYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMTkyIDE0NS43IDE5MiAxMzZsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRMNTYgMEM0Ni4zIDAgMzcuNSA1LjggMzMuOCAxNC44UzMyLjIgMzQuMSAzOSA0MXptMjAxLTEwLjdjLTEuMiAxNy42IDEyIDMyLjkgMjkuNyAzNC4yIDQ3IDMuMyA4OS40IDIzLjYgMTIxIDU0LjhMMzU5IDE1MWMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMzNjYuMyAxOTIgMzc2IDE5MmwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJTNDc3LjkgMzIuMiA0NzEgMzlMNDM2IDc0Yy00Mi4yLTQxLjctOTguOC02OC45LTE2MS44LTczLjQtMTcuNi0xLjItMzIuOSAxMi0zNC4yIDI5Ljd6TTQxIDQ3M2wzNS0zNWM0Mi4yIDQxLjcgOTguOCA2OC45IDE2MS44IDczLjQgMTcuNiAxLjIgMzIuOS0xMiAzNC4yLTI5LjdzLTEyLTMyLjktMjkuNy0zNC4yYy00Ny0zLjMtODkuNC0yMy42LTEyMS01NC44TDE1MyAzNjFjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNDUuNyAzMjAgMTM2IDMyMEwyNCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0TDAgNDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDQ3OS44IDQxIDQ3M3pcIl1cbn07XG52YXIgZmFKb2ludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdqb2ludCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjU5NVwiLCBcIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0yOTIuNyAzMjBjNS42IDAgMTAuNyAyLjkgMTMuNiA3LjZMMzk0LjYgNDcxYzEuMyAyLjEgMCA0LjktMi40IDUuMi0xNi4xIDIuNS0zMi40IDMuNy00OC43IDMuN2wtMzguMSAwYy01LjYgMC0xMC43LTIuOS0xMy42LTcuNmwtNzktMTI4LjRjLTYtOS44IDAtMjIuNiAxMS41LTIzLjMgNi43LS40IDEzLjQtLjYgMjAuMi0uNmw0OC4zIDB6TTQ1OS4zIDQ2NS45Yy02LjQgMS0xMi43LTEuOS0xNi4xLTcuNEwzNzQuMSAzNDYuMWMtNi43LTEwLjkgMS41LTI0LjcgMTQuMi0yMi45IDEuMyAuMiAyLjYgLjQgMy44IC42bDEzNi40IDIxYzI3LjMgNC4yIDQ3LjQgMjcuNyA0Ny40IDU1LjNzLTIwLjEgNTEuMS00Ny40IDU1LjNsLTY5LjIgMTAuNnpNMTM4LjcgMzM2YzYuNy0xLjUgMTMuNiAxLjQgMTcuMiA3LjJsNjguOSAxMTJjNi42IDEwLjctMS4yIDI0LjQtMTMuOCAyMy4xLTEzLTEuNC0yNS45LTMuNS0zOC42LTYuNUwzMS4yIDQzOS4yQzEyLjkgNDM1IDAgNDE4LjcgMCA0MDBzMTIuOS0zNSAzMS4yLTM5LjJMMTM4LjcgMzM2elwiXVxufTtcbnZhciBmYUJyYWlsbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJhaWxsZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjJhMVwiLCBcIk04MCAxNDRhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAgMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wIDEzNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTAgNTZjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODAtODAgMzUuOC04MCA4MCAzNS44IDgwIDgwIDgwem0yNDgtODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0em01NiAwYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODAgODAtMzUuOCA4MC04MHpNMzA0IDIzMmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAgMTA0YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTE5MmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHpcIl1cbn07XG52YXIgZmFCYXNrZXRTaG9wcGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXNrZXQtc2hvcHBpbmcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNob3BwaW5nLWJhc2tldFwiXSwgXCJmMjkxXCIsIFwiTTI4OCAwYzYuNiAwIDEyLjkgMi43IDE3LjQgNy41bDE0NCAxNTIgLjUgLjUgNzguMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMTQuNS05LjYgMjYuNy0yMi44IDMwLjdMNDkxLjEgNDI5LjljLTYuNSAyOS4zLTMyLjUgNTAuMS02Mi41IDUwLjFsLTI4MS4zIDBjLTMwIDAtNTYtMjAuOC02Mi41LTUwLjFsLTQ2LTIwNy4yYy0xMy4yLTMuOS0yMi44LTE2LjItMjIuOC0zMC43IDAtMTcuNyAxNC4zLTMyIDMyLTMybDc4LjEgMCAuNS0uNSAxNDQtMTUyQzI3NS4xIDIuNyAyODEuNCAwIDI4OCAwem0wIDU4LjlMMTkyLjIgMTYwIDM4My44IDE2MCAyODggNTguOXpNMjA4IDI2NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyem04MC0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTI4IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJ6XCJdXG59O1xudmFyIGZhU2hvcHBpbmdCYXNrZXQgPSBmYUJhc2tldFNob3BwaW5nO1xudmFyIGZhQnJpZGdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRjOFwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTRjMC0zOC44IDI2LjQtNzIuNiA2NC04MmwwLTExMi00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6XCJdXG59O1xudmFyIGZhUGxhbmVBcnJpdmFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYW5lLWFycml2YWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg3NDhdLCBcImY1YWZcIiwgXCJNMzg2LjYgMTkzLjFMMjY1LjkgMy43Yy00LjgtNy42LTEyLjYtMTIuOC0yMS40LTE0LjNsLTQzLjEtNy42Yy0xMC44LTEuOS0yMC4yIDcuMy0xOC42IDE4LjFsMjQgMTYxLjYtMTA1LTE4LjUtMzMuOC02MS44QzY0LjUgNzQuNyA1OC4yIDcwLjIgNTEuMSA2OUwzNCA2NmMtOS44LTEuNy0xOC44IDUuOS0xOC44IDE1LjhsLjYgMTA2LjNjLjIgMzAuOSAyMi40IDU3LjMgNTIuOSA2Mi43bDEzLjUgMi40IDAgMCA0MTcuNiA3My42YzMwLjUgNS40IDU5LjUtMTUgNjQuOS00NS40cy0xNS01OS41LTQ1LjQtNjQuOUwzODYuNiAxOTMuMXpNMjI0IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTEzMS4yLTE1LjNhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQ0OHpcIl1cbn07XG52YXIgZmFDYXNoUmVnaXN0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FzaC1yZWdpc3RlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc4OFwiLCBcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0czI4LjcgNjQgNjQgNjRsNDggMCAwIDMyLTU3IDBjLTMxLjYgMC01OC41IDIzLjEtNjMuMyA1NC40TDEuMSAzNjQuMUMuNCAzNjguOCAwIDM3My42IDAgMzc4LjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02OS42YzAtNC44LS40LTkuNi0xLjEtMTQuNEw0ODguMiAyMTQuNEM0ODMuNSAxODMuMSA0NTYuNiAxNjAgNDI1IDE2MGwtMjE3IDAgMC0zMiA0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0UzI5MS4zIDAgMjU2IDBMOTYgMHptMCA0OGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw5NiA4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNNjQgNDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDMzNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDQ0OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTQ4LTE2MGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyMC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0xNjAgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHpNMzI4IDI0MGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0yNTYgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHpNNDI0IDI0MGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0zNTIgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHpcIl1cbn07XG52YXIgZmFSaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3MGJcIiwgXCJNNjQgMjA4YzAgNy44IDQuNCAxOC43IDE3LjEgMzAuMyA0NS40LTI0LjIgMTA3LjctMzguMyAxNzQuOS0zOC4zczEyOS41IDE0LjEgMTc0LjkgMzguM2MxMi44LTExLjYgMTcuMS0yMi41IDE3LjEtMzAuMyAwLTEyLjMtMTAuOC0zMi00Ny45LTUwLjYtMzUuMi0xNy42LTg2LjEtMjkuNC0xNDQuMS0yOS40cy0xMDguOSAxMS44LTE0NC4xIDI5LjRDNzQuOCAxNzYgNjQgMTk1LjcgNjQgMjA4em0xOTIgNDBjLTQ3IDAtODkuMyA3LjYtMTIyLjkgMTkuNyAzMy4yIDEyLjQgNzUuNyAyMC4zIDEyMi45IDIwLjNzODkuNy03LjggMTIyLjktMjAuM0MzNDUuMyAyNTUuNiAzMDMgMjQ4IDI1NiAyNDh6TTAgMjA4QzAgMTU4LjQgMzkuNCAxMjIuMiA4My4zIDEwMC4yIDEyOS4xIDc3LjMgMTkwLjMgNjQgMjU2IDY0czEyNi45IDEzLjMgMTcyLjcgMzYuMmM0My45IDIyIDgzLjMgNTguMiA4My4zIDEwNy44bDAgOTZjMCA0OS42LTM5LjQgODUuOC04My4zIDEwNy44LTQ1LjkgMjIuOS0xMDcgMzYuMi0xNzIuNyAzNi4yUzEyOS4xIDQzNC43IDgzLjMgNDExLjhDMzkuNCAzODkuOCAwIDM1My42IDAgMzA0bDAtOTZ6XCJdXG59O1xudmFyIGZhU2hhcmVOb2RlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaGFyZS1ub2RlcycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2hhcmUtYWx0XCJdLCBcImYxZTBcIiwgXCJNMzg0IDE5MmM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05Ni05NiA0My05NiA5NmMwIDUuNCAuNSAxMC44IDEuMyAxNkwxNTkuNiAxODQuMWMtMTYuOS0xNS0zOS4yLTI0LjEtNjMuNi0yNC4xLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjMjQuNCAwIDQ2LjYtOS4xIDYzLjYtMjQuMUwyODkuMyA0MDBjLS45IDUuMi0xLjMgMTAuNS0xLjMgMTYgMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05Ni00My05Ni05Ni05NmMtMjQuNCAwLTQ2LjYgOS4xLTYzLjYgMjQuMUwxOTAuNyAyNzJjLjktNS4yIDEuMy0xMC41IDEuMy0xNnMtLjUtMTAuOC0xLjMtMTZsMTI5LjctNzIuMWMxNi45IDE1IDM5LjIgMjQuMSA2My42IDI0LjF6XCJdXG59O1xudmFyIGZhU2hhcmVBbHQgPSBmYVNoYXJlTm9kZXM7XG52YXIgZmFQZXJzb25DaXJjbGVFeGNsYW1hdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTNmXCIsIFwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xudmFyIGZhQmlub2N1bGFycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiaW5vY3VsYXJzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWU1XCIsIFwiTTEyOCAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA5NmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuMWMwLTM0LjYgOS40LTY4LjYgMjcuMi05OC4zIDEzLjctMjIuOCAyMi41LTQ4LjIgMjUuOC03NC42TDYwLjUgMTU2YzItMTYgMTUuNi0yOCAzMS44LTI4bDk5LjggMHptMjI3LjggMGMxNi4xIDAgMjkuOCAxMiAzMS44IDI4TDQ1OSAyMTZjMy4zIDI2LjQgMTIuMSA1MS44IDI1LjggNzQuNiAxNy44IDI5LjcgMjcuMiA2My43IDI3LjIgOTguM2wwIDU5LjFjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyMCA5OS44IDB6TTMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyem0tMzIgNjRsMCAxNjAtNjQgMCAwLTE2MCA2NCAwelwiXVxufTtcbnZhciBmYUtpcFNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAna2lwLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxYzRcIiwgXCJNMzQwLjggODguM2MxMy40LTExLjUgMTUtMzEuNyAzLjUtNDUuMXMtMzEuNy0xNS00NS4xLTMuNUwxMjggMTg2LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNjgtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjIuNCAxNzEuMiAxNDYuN2MxMy40IDExLjUgMzMuNiA5LjkgNDUuMS0zLjVzOS45LTMzLjYtMy41LTQ1LjFMMTczLjIgMjgwIDM1MiAyODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTczLjIgMjMyIDM0MC44IDg4LjN6XCJdXG59O1xudmFyIGZhSGFyZERyaXZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhcmQtZHJpdmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjg0MzYsIFwiaGRkXCJdLCBcImYwYTBcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDI2MC4xQzE4LjEgMjQ3LjQgNDAuMiAyNDAgNjQgMjQwbDMyMCAwYzIzLjggMCA0NS45IDcuNCA2NCAyMC4xTDQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNDQ4IDM1MmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NHpNMjI0IDM4NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjgtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYUhkZCA9IGZhSGFyZERyaXZlO1xudmFyIGZhUmFua2luZ1N0YXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmFua2luZy1zdGFyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTYxXCIsIFwiTTMyMS44IDU0LjFMMjk4LjIgNi4zYy0zLjktOC4zLTE2LjEtOC42LTIwLjQgMGwtMjMuNiA0Ny44LTUyLjMgNy41Yy05LjMgMS40LTEzLjMgMTIuOS02LjQgMTkuOGwzOCAzNy05IDUyLjFjLTEuNCA5LjMgOC4yIDE2LjUgMTYuOCAxMi4ybDQ2LjktMjQuOCA0Ni42IDI0LjRjOC42IDQuMyAxOC4zLTIuOSAxNi44LTEyLjJsLTktNTIuMSAzOC0zNi42YzYuOC02LjggMi45LTE4LjMtNi40LTE5LjhsLTUyLjMtNy41ek0yNTYgMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTYwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek00OCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek00MTYgNDMybDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OHpcIl1cbn07XG52YXIgZmFVc2VyVGllID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItdGllJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTA4XCIsIFwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQwem0tMzAuNSA1Nmw2MSAwYzkuNyAwIDE3LjUgNy44IDE3LjUgMTcuNSAwIDQuMi0xLjUgOC4yLTQuMiAxMS40bC0yNy40IDMyIDMxIDExNS4xIC42IDAgMzQuNi0xMzguNWMyLjItOC43IDExLjEtMTQgMTkuNS0xMC44IDYxLjkgMjMuNiAxMDUuOSA4My42IDEwNS45IDE1My44IDAgMTUuMS0xMi4zIDI3LjQtMjcuNCAyNy40TDQzLjQgNTEyYy0xNS4xIDAtMjcuNC0xMi4zLTI3LjQtMjcuNCAwLTcwLjIgNDQtMTMwLjIgMTA1LjktMTUzLjggOC40LTMuMiAxNy4zIDIuMSAxOS41IDEwLjhsMzQuNiAxMzguNSAuNiAwIDMxLTExNS4xLTI3LjQtMzJjLTIuNy0zLjItNC4yLTcuMi00LjItMTEuNCAwLTkuNyA3LjgtMTcuNSAxNy41LTE3LjV6XCJdXG59O1xudmFyIGZhRWxsaXBzaXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWxsaXBzaXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImVsbGlwc2lzLWhcIl0sIFwiZjE0MVwiLCBcIk0wIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTE2OCAwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjI0LTU2YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyelwiXVxufTtcbnZhciBmYUVsbGlwc2lzSCA9IGZhRWxsaXBzaXM7XG52YXIgZmFTdG9yZVNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0b3JlLXNsYXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlMDcxXCIsIFwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU4LjYtNTguNmMxLjEtNCAxLjYtOC4yIDEuNi0xMi41bDAtMTUxLjJjLTEyLjUgNC42LTI2LjEgNy4yLTQwLjUgNy4yLTguMSAwLTE1LjktLjgtMjMuNS0yLjRsMCA2Ni40LTMwLjIgMC0xMzcuNS0xMzcuNWMyLjktMy42IDUuNS03LjQgNy42LTExLjUgMTEuNiAyMiAzNC43IDM3IDYxLjMgMzcgMjYuOCAwIDQ5LjgtMTUuMSA2MS40LTM3LjEgMTEuNCAyMi4xIDM0LjUgMzcuMSA2MC44IDM3LjEgNDUuNiAwIDc4LjQtNDMuNyA2NS42LTg3LjVMNTEzLjggNzIuM0M1MDYuOCA0OC40IDQ4NC45IDMyIDQ2MCAzMkwxMTYgMzJjLTUuNSAwLTEwLjggLjgtMTUuOSAyLjNMNDEtMjQuOXpNMTUxLjUgMjIxLjNMNDguNyAxMTguNiAzOC45IDE1Mi41Yy0xMi44IDQzLjcgMjAgODcuNSA2NS42IDg3LjUgMTguMSAwIDM0LjctNy4xIDQ3LTE4Ljd6TTQxMC4yIDQ4MGwtMTI4LTEyOC0xNTQuMiAwIDAtNjYuNGMtNy42IDEuNi0xNS41IDIuNC0yMy41IDIuNC0xNC40IDAtMjgtMi42LTQwLjUtNy4yTDY0IDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyOTguMiAwelwiXVxufTtcbnZhciBmYVBlcmNlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyY2VudCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzYyMTAxLCA2Mjc4NSwgXCJwZXJjZW50YWdlXCJdLCBcIjI1XCIsIFwiTTE5MiAxMjhhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwek00NDggMzg0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNNDM4LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMzg0IDM4NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwzODQtMzg0elwiXVxufTtcbnZhciBmYVBlcmNlbnRhZ2UgPSBmYVBlcmNlbnQ7XG52YXIgZmFGaWxlWmlwcGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtemlwcGVyJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJmaWxlLWFyY2hpdmVcIl0sIFwiZjFjNlwiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNNjQgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA0OEM3NC43IDQ4IDY0IDU4LjcgNjQgNzJ6bTAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTY0IDcybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTE2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpcIl1cbn07XG52YXIgZmFGaWxlQXJjaGl2ZSA9IGZhRmlsZVppcHBlcjtcbnZhciBmYURpc3BsYXkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGlzcGxheScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTE2M1wiLCBcIk00NDggOTZsMCAyNTYtMzg0IDAgMC0yNTYgMzg0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ0IDAtMTYgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMC0xNi00OCAxNDQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpcIl1cbn07XG52YXIgZmFJY29ucyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpY29ucycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiaGVhcnQtbXVzaWMtY2FtZXJhLWJvbHRcIl0sIFwiZjg2ZFwiLCBcIk0xNzQuOSAyNzJjMTAuNyAwIDIwLjcgNS4zIDI2LjYgMTQuMmwxMS44IDE3LjggMjYuNyAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTEyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNTJjMC0yNi41IDIxLjUtNDggNDgtNDhsMjYuNyAwIDExLjgtMTcuOGM1LjktOC45IDE1LjktMTQuMiAyNi42LTE0LjJsNjEuNyAwem0yNzguNi0xMmM1LjYtNC45IDEzLjktNS4zIDE5LjktLjlzOC4zIDEyLjQgNS4zIDE5LjNMNDQwLjMgMzY4IDQ5NiAzNjhjNi43IDAgMTIuNiA0LjEgMTUgMTAuNHMuNiAxMy4zLTQuNCAxNy43bC0xMjggMTEyYy01LjYgNC45LTEzLjkgNS4zLTE5LjkgLjlzLTguMy0xMi40LTUuMy0xOS4zbDM4LjUtODkuNy01NS44IDBjLTYuNyAwLTEyLjYtNC4xLTE1LTEwLjRzLS42LTEzLjMgNC40LTE3LjdsMTI4LTExMnpNMTQ0IDM2MGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6TTQ4My44IC40YzYuNS0xLjEgMTMuMSAuNCAxOC41IDQuNCA2LjEgNC41IDkuNyAxMS43IDkuNyAxOS4ybDAgMTUyLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42bDAtNDkuMy0xMTIgMzMuNiAwIDExMC4yLS4zIDQuOWMtMy4zIDI0LjItMzAuNSA0My4xLTYzLjcgNDMuMS0zNS4zIDAtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4YzUuNSAwIDEwLjkgLjYgMTYgMS42TDMwNCA3MmMwLTEwLjYgNy0yMCAxNy4xLTIzbDE2MC00OCAyLjctLjZ6TTE4OC45IDBDMjI2IDAgMjU2IDMwIDI1NiA2Ny4xbDAgNi4xYzAgNTYuMS03NS4yIDExMi4xLTExMC4zIDEzNS4zLTEwLjggNy4xLTI0LjYgNy4xLTM1LjQgMC0zNS4xLTIzLjEtMTEwLjMtNzkuMi0xMTAuMy0xMzUuM2wwLTYuMUMwIDMwIDMwIDAgNjcuMSAwIDg4LjIgMCAxMDggOS45IDEyMC43IDI2LjhsNy4zIDkuOCA3LjMtOS44QzE0OCA5LjkgMTY3LjggMCAxODguOSAwelwiXVxufTtcbnZhciBmYUhlYXJ0TXVzaWNDYW1lcmFCb2x0ID0gZmFJY29ucztcbnZhciBmYVJ1bGVyVmVydGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncnVsZXItdmVydGljYWwnLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImY1NDhcIiwgXCJNMCAxNkMwLTEwLjUgMjEuNS0zMiA0OC0zMmwxNjAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI0LTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgNDgtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDI0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDU0NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxNnpcIl1cbn07XG52YXIgZmFNYXBMb2NhdGlvbkRvdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXAtbG9jYXRpb24tZG90JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJtYXAtbWFya2VkLWFsdFwiXSwgXCJmNWEwXCIsIFwiTTU3NiA0OGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNEw0MTMuNSA3Ny41IDIzNC4xIDE3LjZjLTguMS0yLjctMTYuOC0yLjEtMjQuNCAxLjdsLTEyOCA2NEM3MC44IDg4LjggNjQgOTkuOSA2NCAxMTJsMCAzNTJjMCAxMS4xIDUuNyAyMS40IDE1LjIgMjcuMnMyMS4yIDYuNCAzMS4xIDEuNGwxMTYuMS01OC4xIDE3My4zIDU3LjhjLTQuMy02LjQtOC41LTEzLjEtMTIuNi0xOS45LTExLTE4LjMtMjEuOS0zOS4zLTMwLTYxLjhsLTEwMS4yLTMzLjcgMC0yODQuNSAxMjggNDIuNyAwIDk5LjNjMzEtMzUuOCA3Ny01OC40IDEyOC01OC40IDIyLjYgMCA0NC4yIDQuNCA2NCAxMi41TDU3NiA0OHpNNTEyIDIyNGMtNjYuMyAwLTEyMCA1Mi44LTEyMCAxMTcuOSAwIDY4LjkgNjQuMSAxNTAuNCA5OC42IDE4OS4zIDExLjYgMTMgMzEuMyAxMyA0Mi45IDAgMzQuNS0zOC45IDk4LjYtMTIwLjQgOTguNi0xODkuMyAwLTY1LjEtNTMuNy0xMTcuOS0xMjAtMTE3Ljl6TTQ3MiAzNDRhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpcIl1cbn07XG52YXIgZmFNYXBNYXJrZWRBbHQgPSBmYU1hcExvY2F0aW9uRG90O1xudmFyIGZhSGVhcnRDcmFjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1jcmFjaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE0OCwgXCJoZWFydC1icm9rZW5cIl0sIFwiZjdhOVwiLCBcIk0xMzMuMSAzMmMxNy4zIDAgMzQuMiAzLjQgNDkuOSA5LjdsNTQuOCA4NS4yLTc1LjQgNzUuNGMtMS41IDEuNS0yLjQgMy42LTIuMyA1LjhzMSA0LjIgMi42IDUuN2wxMTIgMTA0YzIuOSAyLjcgNy40IDIuOSAxMC41IC4zczMuOC03IDEuNy0xMC40bC02MC40LTk4LjEgOTAuNy03NS42YzIuNi0yLjEgMy41LTUuNyAyLjQtOC44TDI5Ni40IDYwLjZDMzE5LjYgNDIuMyAzNDguNiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxMTIuMi0xMzkuOSAyNDIuNS0yMTIuOSAyOTguMi0xMi40IDkuNC0yNy42IDE0LjEtNDMuMSAxNC4xcy0zMC44LTQuNi00My4xLTE0LjFDMTM5LjkgNDEwLjIgMCAyNzkuOSAwIDE2Ny43bDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyelwiXVxufTtcbnZhciBmYUhlYXJ0QnJva2VuID0gZmFIZWFydENyYWNrO1xudmFyIGZhQ293ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvdycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODAwNF0sIFwiZjZjOFwiLCBcIk05NiAyMjRsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTg4LjJjOS45IDYuNiAyMC42IDEyIDMyIDE2LjFsMCAyNC4yYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xNi45YzUuMyAuNiAxMC42IC45IDE2IC45czEwLjctLjMgMTYtLjlsMCAxNi45YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yNC4yYzExLjQtNCAyMi4xLTkuNCAzMi0xNi4xbDAgODguMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwIDMyIDMyIDAgNDkuNWMwIDkuNSAyLjggMTguNyA4LjEgMjYuNkw1MzAgNDI3YzguOCAxMy4xIDIzLjUgMjEgMzkuMyAyMSAyMi41IDAgNDEuOS0xNS45IDQ2LjMtMzhsMjAuMy0xMDEuNmMyLjYtMTMtLjMtMjYuNS04LTM3LjNsLTMuOS01LjUgMC04MS42YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQuNC01Mi45LTc0LjFDNDk2IDg2LjUgNDUyLjQgNjQgNDA1LjkgNjRMMTQ0IDY0Qzc3LjcgNjQgMjQgMTE3LjcgMjQgMTg0bDAgNTRDOS40IDI0OS44IDAgMjY3LjggMCAyODhsMCAxNy42YzAgOCA2LjQgMTQuNCAxNC40IDE0LjQgMzEuOCAwIDU3LjYtMjUuOCA1Ny42LTU3LjZMNzIgMTg0YzAtMjQuMyAxMi4xLTQ1LjggMzAuNS01OC45LTQuMiAxMC44LTYuNSAyMi42LTYuNSAzNC45bDAgNjR6TTU2MCAzMzZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMTY2LjYgMTY2LjZjLTQuMi00LjItNi42LTEwLTYuNi0xNiAwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmwxNzguNyAwYzEyLjUgMCAyMi42IDEwLjEgMjIuNiAyMi42IDAgNi0yLjQgMTEuOC02LjYgMTZsLTIzLjQgMjMuNEMzMzIuMiAyMTEuOCAzMDIuNyAyMjQgMjcyIDIyNHMtNjAuMi0xMi4yLTgxLjktMzMuOWwtMjMuNC0yMy40elwiXVxufTtcbnZhciBmYVJzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyc3MnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImZlZWRcIl0sIFwiZjA5ZVwiLCBcIk0wIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyIDIyOS44IDAgNDE2IDE4Ni4yIDQxNiA0MTYgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJDMzg0IDI1My42IDIyNi40IDk2IDMyIDk2IDE0LjMgOTYgMCA4MS43IDAgNjR6TTAgNDE2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMzIgMTYwYzE1OS4xIDAgMjg4IDEyOC45IDI4OCAyODggMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0xMjMuNy0xMDAuMy0yMjQtMjI0LTIyNC0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwiXVxufTtcbnZhciBmYUZlZWQgPSBmYVJzcztcbnZhciBmYU1hZ25pZnlpbmdHbGFzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYWduaWZ5aW5nLWdsYXNzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MjY5LCBcInNlYXJjaFwiXSwgXCJmMDAyXCIsIFwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDM1MmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6XCJdXG59O1xudmFyIGZhU2VhcmNoID0gZmFNYWduaWZ5aW5nR2xhc3M7XG52YXIgZmFDbG91ZE1vb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtbW9vbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjZjM1wiLCBcIk00ODAgMGMxNC42IDAgMjguOCAxLjYgNDIuNSA0LjcgNy40IDEuNyAxMyA3LjggMTMuOSAxNS40cy0zIDE0LjktOS44IDE4LjNjLTQ1LjQgMjIuNi03Ni42IDY5LjUtNzYuNiAxMjMuNiAwIDc2LjIgNjEuOCAxMzggMTM4IDEzOCAzLjcgMCA3LjQtLjEgMTEuMS0uNCA3LjYtLjYgMTQuNyAzLjYgMTcuOCAxMC42czEuNSAxNS4xLTMuOSAyMC40Yy0yNiAyNS01OS4xIDQyLjctOTUuOSA0OS45LTExLjEtMjUuMy0zMC4yLTQ2LjMtNTQuMS01OS44LTcuNi02My40LTYxLjYtMTEyLjYtMTI3LjEtMTEyLjYtMTEuMiAwLTIyLjEgMS41LTMyLjUgNC4yLTQuOC00LjItOS45LTguMi0xNS4yLTExLjgtLjEtMi44LS4yLTUuNi0uMi04LjQgMC0xMDYgODYtMTkyIDE5Mi0xOTJ6bS0uMSA0MzEuOWMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjcxLjkgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04NyA4MC05NC42LS40LTUyLjggNDIuOS05Ny4zIDk2LTk3LjMgMzQuOSAwIDY1LjQgMTguNiA4Mi4yIDQ2LjQgMTMtOS4xIDI4LjgtMTQuNCA0NS44LTE0LjQgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjktLjYgMTEuNy0xLjkgMTcuMiAzNy40IDYuNyA2NS44IDM5LjQgNjUuOCA3OC43elwiXVxufTtcbnZhciBmYUJveGVzU3RhY2tlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3hlcy1zdGFja2VkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjI2MjUsIFwiYm94ZXNcIiwgXCJib3hlcy1hbHRcIl0sIFwiZjQ2OFwiLCBcIk0yMjQgMGwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCA1LjUtLjcgMTAuOS0yIDE2bC0yNTIgMGMtMS4zLTUuMS0yLTEwLjUtMi0xNmwwLTEyOGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwem05NiA1MTJjLTExLjIgMC0yMS44LTIuOS0zMS04IDkuNS0xNi41IDE1LTM1LjYgMTUtNTZsMC0xMjhjMC0yMC40LTUuNS0zOS41LTE1LTU2IDkuMi01LjEgMTkuNy04IDMxLThsMzIgMCAwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwek0wIDMyMGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwIDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzIwelwiXVxufTtcbnZhciBmYUJveGVzID0gZmFCb3hlc1N0YWNrZWQ7XG52YXIgZmFCb3hlc0FsdCA9IGZhQm94ZXNTdGFja2VkO1xudmFyIGZhQ29kZUJyYW5jaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlLWJyYW5jaCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjEyNlwiLCBcIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgNzAuNyAxNzYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyLjdjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgMjIuN2MwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMTc2IDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBTMCA0NzYuMiAwIDQzMmMwLTMyLjggMTkuNy02MSA0OC03My4zbDAtMjA1LjNDMTkuNyAxNDEgMCAxMTIuOCAwIDgwIDAgMzUuOCAzNS44IDAgODAgMHM4MCAzNS44IDgwIDgwem0yMzIgMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek04MCA0NTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwiXVxufTtcbnZhciBmYUJhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg2ODMsIFwiY2FuY2VsXCJdLCBcImYwNWVcIiwgXCJNMzY3LjIgNDEyLjVMOTkuNSAxNDQuOGMtMjIuNCAzMS40LTM1LjUgNjkuOC0zNS41IDExMS4yIDAgMTA2IDg2IDE5MiAxOTIgMTkyIDQxLjUgMCA3OS45LTEzLjEgMTExLjItMzUuNXptNDUuMy00NS4zYzIyLjQtMzEuNCAzNS41LTY5LjggMzUuNS0xMTEuMiAwLTEwNi04Ni0xOTItMTkyLTE5Mi00MS41IDAtNzkuOSAxMy4xLTExMS4yIDM1LjVMNDEyLjUgMzY3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6XCJdXG59O1xudmFyIGZhQ2FuY2VsID0gZmFCYW47XG52YXIgZmFKdWdEZXRlcmdlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnanVnLWRldGVyZ2VudCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTUxOVwiLCBcIk05NiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjQgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDk2Qzc0LjcgOTYgNjQgODUuMyA2NCA3MlM3NC43IDQ4IDg4IDQ4bDggMCAwLTI0ek0wIDI1NmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOGwxMjggMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjU2em0yNTYgMGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpcIl1cbn07XG52YXIgZmFSZXBseSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZXBseScsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxNzE0LCBcIm1haWwtcmVwbHlcIl0sIFwiZjNlNVwiLCBcIk0yMDQuMiAxOC40YzEyIDUgMTkuOCAxNi42IDE5LjggMjkuNmwwIDgwIDExMiAwYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTEzLjMtODEuNSAxNjMuOS0xMDAuMiAxNzQuMS0yLjUgMS40LTUuMyAxLjktOC4xIDEuOS0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43IDAtNy41IDQuMy0xNC40IDkuOC0xOS41IDkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuNyAwLTUzLTQzLTk2LTk2LTk2bC05NiAwIDAgODBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02Ljl6XCJdXG59O1xudmFyIGZhTWFpbFJlcGx5ID0gZmFSZXBseTtcbnZhciBmYVN1blBsYW50V2lsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdW4tcGxhbnQtd2lsdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU3YVwiLCBcIk0xNjAgMGMtNS41IDAtMTAuNiAyLjgtMTMuNSA3LjRsLTEuMSAyLjEtMjQuOCA1NS40LTU2LjctMjEuN2MtNS45LTIuMi0xMi41LS44LTE3IDMuN1M0MSA1OCA0My4yIDYzLjlsMjEuNyA1Ni43LTU1LjQgMjQuOEMzLjcgMTQ4IDAgMTUzLjcgMCAxNjBzMy43IDEyIDkuNSAxNC42bDU1LjQgMjQuOC0yMS43IDU2LjdjLTIuMiA1LjktLjggMTIuNSAzLjcgMTdzMTEuMSA1LjkgMTcgMy43bDU2LjctMjEuNyAyNC44IDU1LjRjMi42IDUuOCA4LjMgOS41IDE0LjYgOS41czEyLTMuNyAxNC42LTkuNWwyNC44LTU1LjQgNTYuOCAyMS43YzUuOSAyLjIgMTIuNSAuOCAxNy0zLjdzNS45LTExLjEgMy43LTE3bC0yMS43LTU2LjcgNTUuNC0yNC44YzUuOC0yLjYgOS41LTguMyA5LjUtMTQuNnMtMy43LTEyLTkuNS0xNC42bC01NS40LTI0LjggMjEuNy01Ni43IC43LTIuMmMxLjItNS4zLS40LTEwLjktNC4zLTE0LjhzLTkuNS01LjUtMTQuOC00LjNsLTIuMiAuNy01Ni44IDIxLjctMjQuOC01NS40QzE3MiAzLjcgMTY2LjMgMCAxNjAgMHptMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzc2IDE2bDAgNTMuNGMtMTQuOCA3LjctMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtNTMuNGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDIyLjdjLTkuOC00LjMtMjAuNi02LjctMzItNi43LTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjEuNGMtMTQuOCA3LjYtMjQgMjMuMS0yNCA0NC42IDAgMTYuOCAxNiA0NCAzNy40IDY3LjIgNS44IDYuMiAxNS41IDYuMiAyMS4yIDAgMjEuNC0yMy4zIDM3LjQtNTAuNiAzNy40LTY3LjIgMC0yMS41LTkuMi0zNy0yNC00NC42bDAtMjEuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2LTQyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMDQgMCAwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwiXVxufTtcbnZhciBmYUJhY3Rlcml1bSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWN0ZXJpdW0nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUwNWFcIiwgXCJNNDA4IDE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzM2MCAyLjcgMzYwIDE2bDAgMjMuNGMtMTMuOSA1LjMtMjYuOSAxMy41LTM4LjIgMjQuNUwzMDUgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44LTMwLjEgMzAuMS0xNi44LTE2LjhjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44Yy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMMTc3IDE3NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjgtMzAuMSAzMC4xLTE2LjgtMTYuOGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjhjLTExIDExLjMtMTkuMiAyNC4zLTI0LjUgMzguMkw0OCAzMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYuMyAwYzEuMyAxOC4zIDcuMSAzNi40IDE3LjQgNTIuNEw3MSA0MzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMC42LTEwLjZjMTYgMTAuMyAzNC4xIDE2LjEgNTIuNCAxNy40bDAgMTYuM2MwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjMuNGMxMy45LTUuMyAyNi45LTEzLjUgMzguMi0yNC41TDI3MSA0NjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjggMzAuMS0zMC4xIDE2LjggMTYuOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOGMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMzk5IDMzN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOCAzMC4xLTMwLjEgMTYuOCAxNi44YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTYuOC0xNi44YzExLTExLjMgMTkuMi0yNC4zIDI0LjUtMzguMmwyMy40IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2LjMgMGMtMS4zLTE4LjMtNy4xLTM2LjQtMTcuNC01Mi40TDUwNSA3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQ2MC40IDQ5LjdjLTE2LTEwLjMtMzQuMS0xNi4xLTUyLjQtMTcuNEw0MDggMTZ6TTE2MCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjcyIDI0MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xudmFyIGZhUmVjb3JkVmlueWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVjb3JkLXZpbnlsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmOGQ5XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMCAyNDBhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTExMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xudmFyIGZhRmxvcHB5RGlzayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbG9wcHktZGlzaycsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODE5MCwgMTI4NDI2LCBcInNhdmVcIl0sIFwiZjBjN1wiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjQyLjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzUyIDUwLjdDMzQwIDM4LjcgMzIzLjcgMzIgMzA2LjcgMzJMNjQgMzJ6bTMyIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0yMjQgMjg4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4elwiXVxufTtcbnZhciBmYVNhdmUgPSBmYUZsb3BweURpc2s7XG52YXIgZmFUb2lsZXRzUG9ydGFibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9pbGV0cy1wb3J0YWJsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU4NFwiLCBcIk02NCAwbDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNi0yMjQgMCAwLTE2QzAgMjguNyAyOC43IDAgNjQgMHpNMCAxMjhsMjI0IDAgMCAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyOCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDUwMS4zIDAgNDg4TDAgMTI4ek0xMjggMjQ4bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQgMCAwLTk2LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zNTIgMGw5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMjI0IDAgMC0xNmMwLTM1LjMgMjguNy02NCA2NC02NHpNMjg4IDEyOGwyMjQgMCAwIDM2MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgtMTI4IDAgMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMzYwek00MTYgMjQ4bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQgMCAwLTk2LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0elwiXVxufTtcbnZhciBmYU8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbycsXG4gIGljb246IFs0NDgsIDUxMiwgWzExMV0sIFwiNGZcIiwgXCJNMjI0IDk2YTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDEgMCAwLTMyMHpNNDQ4IDI1NmEyMjQgMjI0IDAgMSAxIC00NDggMCAyMjQgMjI0IDAgMSAxIDQ0OCAwelwiXVxufTtcbnZhciBmYVBhbGV0dGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFsZXR0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzkxMl0sIFwiZjUzZlwiLCBcIk01MTIgMjU2YzAgLjkgMCAxLjggMCAyLjctLjQgMzYuNS0zMy42IDYxLjMtNzAuMSA2MS4zTDM0NCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgMy40IC40IDYuNyAxIDkuOSAyLjEgMTAuMiA2LjUgMjAgMTAuOCAyOS45IDYuMSAxMy44IDEyLjEgMjcuNSAxMi4xIDQyIDAgMzEuOC0yMS42IDYwLjctNTMuNCA2Mi0zLjUgLjEtNyAuMi0xMC42IC4yLTE0MS40IDAtMjU2LTExNC42LTI1Ni0yNTZTMTE0LjYgMCAyNTYgMCA1MTIgMTE0LjYgNTEyIDI1NnpNMTI4IDI4OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFVbmxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndW5sb2NrJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4Mjc1XSwgXCJmMDljXCIsIFwiTTEyOCA5NmMwLTM1LjMgMjguNy02NCA2NC02NCAzMS43IDAgNTggMjMgNjMuMSA1My4zIDIuOSAxNy40IDE5LjQgMjkuMiAzNi45IDI2LjNzMjkuMi0xOS40IDI2LjMtMzYuOUMzMDguMSAxNC4xIDI1NS41LTMyIDE5Mi0zMiAxMjEuMy0zMiA2NCAyNS4zIDY0IDk2bDAgNjRjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xOTIgMCAwLTY0elwiXVxufTtcbnZhciBmYUVhckxpc3RlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlYXItbGlzdGVuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXNcIl0sIFwiZjJhMlwiLCBcIk0zNzkuNiAuM2MtOC45IDEuMi0xNy4yIDYuMi0yMi40IDE0LjEtNi44IDEwLjQtNyAyNC4xLS40IDM0LjYgNS42IDguOSAxNS41IDEyLjcgMjMuOCAxOC41IDcuNSA1LjIgMTcuNiAxMy4yIDI3LjcgMjQuMiAyMCAyMS43IDM5LjUgNTQuMyAzOS41IDEwMC4zIDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02Ni0yOC41LTExMy40LTU2LjUtMTQzLjctMTMuOS0xNS4xLTI3LjgtMjYuMS0zOC4zLTMzLjMtMTEtNy42LTIzLjUtMTYuNi0zNy42LTE0Ljd6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjUtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM2M5LjctODggODQuMy0xNTYuNSAxNzQuOS0xNTYuNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdsMCA2LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTItMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzggMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45IDAtNjEuOS01MC4xLTExMi0xMTItMTEyek0wIDQ4MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjAtOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek04Ni42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHpNMjQwIDIwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIl1cbn07XG52YXIgZmFBc3Npc3RpdmVMaXN0ZW5pbmdTeXN0ZW1zID0gZmFFYXJMaXN0ZW47XG52YXIgZmFDb2RlUHVsbFJlcXVlc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29kZS1wdWxsLXJlcXVlc3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUxM2NcIiwgXCJNMzI4IDI0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMlMyOTMuOSAuMiAyODcgN0wyMzEgNjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU2IDU2YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMzI4IDE0NS43IDMyOCAxMzZsMC0yNCAyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjE0LjdjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zTDQ0OCAxNDRjMC01My00My05Ni05Ni05NmwtMjQgMCAwLTI0ek03MiA4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem01NiA3My4zYzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjMgMC00NC4yLTM1LjgtODAtODAtODBTMTYgMzUuOCAxNiA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgMjA1LjNjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtMjA1LjN6TTcyIDQzMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0zNDQtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbnZhciBmYUtleSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdrZXknLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyNzNdLCBcImYwODRcIiwgXCJNMzM2IDM1MmM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NlM0MzMuMiAwIDMzNiAwIDE2MCA3OC44IDE2MCAxNzZjMCAxOC43IDIuOSAzNi44IDguMyA1My43TDcgMzkxYy00LjUgNC41LTcgMTAuNi03IDE3bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwIDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00MCA0MCAwYzYuNCAwIDEyLjUtMi41IDE3LTdsMzMuMy0zMy4zYzE2LjkgNS40IDM1IDguMyA1My43IDguM3pNMzc2IDk2YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHpcIl1cbn07XG52YXIgZmFTa3VsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdza3VsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODEyOF0sIFwiZjU0Y1wiLCBcIk00MTYgNDI3LjRjNTguNS00NCA5Ni0xMTEuNiA5Ni0xODcuNCAwLTEzMi41LTExNC42LTI0MC0yNTYtMjQwUzAgMTA3LjUgMCAyNDBjMCA3NS44IDM3LjUgMTQzLjQgOTYgMTg3LjRMOTYgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgNjQgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzYuNnpNOTYgMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMjU2LTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4elwiXVxufTtcbnZhciBmYU1hcnNTdHJva2VVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLXN0cm9rZS11cCcsXG4gIGljb246IFszODQsIDUxMiwgWzk4OTYsIFwibWFycy1zdHJva2UtdlwiXSwgXCJmMjJhXCIsIFwiTTE5MiAyNTZhMTEyIDExMiAwIDEgMCAwIDIyNCAxMTIgMTEyIDAgMSAwIDAtMjI0ek0xNiAzNjhjMC04Ni4zIDYyLjEtMTU4LjEgMTQ0LjEtMTczLjEtLjEtLjktLjEtMS45LS4xLTIuOWwwLTE2LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTYxLjQtMjggMjIuNGMtMTMuOCAxMS0zMy45IDguOC00NS01cy04LjgtMzMuOSA1LTQ1bDgwLTY0YzExLjctOS4zIDI4LjMtOS4zIDQwIDBsODAgNjRjMTMuOCAxMSAxNiAzMS4yIDUgNDVzLTMxLjIgMTYtNDUgNWwtMjgtMjIuNCAwIDYxLjQgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDE2YzAgMSAwIDEuOS0uMSAyLjkgODIgMTUgMTQ0LjEgODYuOCAxNDQuMSAxNzMuMSAwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMxNiA0NjUuMiAxNiAzNjh6XCJdXG59O1xudmFyIGZhTWFyc1N0cm9rZVYgPSBmYU1hcnNTdHJva2VVcDtcbnZhciBmYUZpcmVGbGFtZVNpbXBsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaXJlLWZsYW1lLXNpbXBsZScsXG4gIGljb246IFszODQsIDUxMiwgW1wiYnVyblwiXSwgXCJmNDZhXCIsIFwiTTM3Mi41IDI1Ni41bC0uNy0xLjlDMzM3LjggMTYwLjggMjgyIDc2LjUgMjA5LjEgOC41bC0zLjMtM0MyMDIuMSAyIDE5Ny4xIDAgMTkyIDBzLTEwLjEgMi0xMy44IDUuNWwtMy4zIDNDMTAyIDc2LjUgNDYuMiAxNjAuOCAxMi4yIDI1NC42bC0uNyAxLjlDMy45IDI3Ny4zIDAgMjk5LjQgMCAzMjEuNiAwIDQyNi43IDg2LjggNTEyIDE5MiA1MTJzMTkyLTg1LjMgMTkyLTE5MC40YzAtMjIuMi0zLjktNDQuMi0xMS41LTY1LjF6bS05MC44IDQ5LjVjNC4xIDkuMyA2LjIgMTkuNCA2LjIgMjkuNSAwIDUzLTQzIDk2LjUtOTYgOTYuNXMtOTYtNDMuNS05Ni05Ni41YzAtMTAuMSAyLjEtMjAuMyA2LjItMjkuNWwxLjktNC4zYzE1LjgtMzUuNCAzNy45LTY3LjcgNjUuMy05NS4xbDguOS04LjljMy42LTMuNiA4LjUtNS42IDEzLjYtNS42czEwIDIgMTMuNiA1LjZsOC45IDguOWMyNy40IDI3LjQgNDkuNiA1OS43IDY1LjMgOTUuMWwxLjkgNC4zelwiXVxufTtcbnZhciBmYUJ1cm4gPSBmYUZpcmVGbGFtZVNpbXBsZTtcbnZhciBmYVRyZWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJlZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzc5NF0sIFwiZjFiYlwiLCBcIk0yMjQtMzJjNyAwIDEzLjcgMy4xIDE4LjMgOC41bDEzNiAxNjBjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlMzNjkuNCAxNzYgMzYwIDE3NmwtMjQuOSAwIDc1LjIgODguNWM2LjEgNy4xIDcuNCAxNy4xIDMuNSAyNS42UzQwMS40IDMwNCAzOTIgMzA0bC0zOC41IDAgODguOCAxMDQuNWM2LjEgNy4xIDcuNCAxNy4xIDMuNSAyNS42UzQzMy40IDQ0OCA0MjQgNDQ4bC0xNjggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQtMTY4IDBjLTkuNCAwLTE3LjktNS40LTIxLjgtMTMuOXMtMi42LTE4LjUgMy41LTI1LjZMOTQuNSAzMDQgNTYgMzA0Yy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42TDExMi45IDE3NiA4OCAxNzZjLTkuNCAwLTE3LjktNS40LTIxLjgtMTMuOXMtMi42LTE4LjUgMy41LTI1LjZsMTM2LTE2MEMyMTAuMy0yOC45IDIxNy0zMiAyMjQtMzJ6XCJdXG59O1xudmFyIGZhU21vZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbW9nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzVmXCIsIFwiTTE3NiAyODhDOTYuNSAyODggMzIgMjIzLjUgMzIgMTQ0Uzk2LjUgMCAxNzYgMGMyNy4yIDAgNTIuNiA3LjUgNzQuMyAyMC42IDIwLjEtMTMgNDQtMjAuNiA2OS43LTIwLjYgNDcuNCAwIDg4LjcgMjUuNyAxMTAuOSA2NGwxLjEgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMiAwIDYwLjMtNDcuNiAxMDkuNC0xMDcuMiAxMTEuOS0yMi42IDIwLTUyLjMgMzIuMS04NC44IDMyLjEtMzIuNSAwLTYyLjEtMTIuMS04NC43LTMyTDE3NiAyODh6TTUxMiAzOTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRMMjQgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0ek04OCA0NjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTc2IDBsMjg4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI4OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYVMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncycsXG4gIGljb246IFszMjAsIDUxMiwgWzExNV0sIFwiNTNcIiwgXCJNMCAxNTcuNUMwIDg4LjIgNTYuMiAzMiAxMjUuNSAzMkwyNzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMTI1LjUgOTZjLTM0IDAtNjEuNSAyNy41LTYxLjUgNjEuNSAwIDMxIDIzLjEgNTcuMiA1My45IDYxTDIxMC4xIDIzMEMyNzIuOSAyMzcuOSAzMjAgMjkxLjIgMzIwIDM1NC41IDMyMCA0MjMuOCAyNjMuOCA0ODAgMTk0LjUgNDgwTDQ4IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNDYuNSAwYzM0IDAgNjEuNS0yNy41IDYxLjUtNjEuNSAwLTMxLTIzLjEtNTcuMi01My45LTYxTDEwOS45IDI4MkM0Ny4xIDI3NC4xIDAgMjIwLjggMCAxNTcuNXpcIl1cbn07XG52YXIgZmFKZWRpID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2plZGknLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY2NjlcIiwgXCJNMjQ2IDMxNS43bC0yMS4yLTMxLjljLTIuMS0zLjItMS43LTcuNCAxLTEwLjFzNi45LTMuMSAxMC4xLTFsMjkuNSAxOS43YzIuMSAxLjQgNC45LS4xIDUtMi42TDI3OS43IDhjLjEtNC41IDMuOC04IDguMy04czguMSAzLjUgOC4zIDhsOS40IDI4MS45Yy4xIDIuNSAyLjkgMy45IDUgMi42bDI5LjUtMTkuN2MzLjItMi4xIDcuNC0xLjcgMTAuMSAxczMuMSA2LjkgMSAxMC4xTDMzMCAzMTUuN2MtMS4zIDEuOS0uMiA0LjUgMiA0LjlsMzcuNiA3LjVjMy43IC43IDYuNCA0IDYuNCA3LjhzLTIuNyA3LjEtNi40IDcuOEwzMzIgMzUxLjRjLTIuMiAuNC0zLjMgMy0yIDQuOWwyMS4yIDMxLjljMi4xIDMuMiAxLjcgNy40LTEgMTAuMXMtNi45IDMuMS0xMC4xIDFsLTI2LjMtMTcuNmMtMi4yLTEuNC01LjEgLjItNSAyLjhsMi4xIDYxLjVjNTkuOC0xMC44IDEwNS4xLTYzLjEgMTA1LjEtMTI2IDAtMzctMTUuNy03MC40LTQwLjgtOTMuNy03LTYuNS02LjUtMTguNiAxLTI0LjQgMzQtMjYuMyA1NS44LTY3LjUgNTUuOC0xMTMuOSAwLTE2LjgtMi45LTMzLTguMi00OC00LjYtMTMgMTAuMi0zMCAyMS40LTIyIDUzLjUgMzggOTIuNyA5NC44IDEwNy44IDE2MC43IC41IDIuMS0uMiA0LjMtMS43IDUuOWwtMjguNCAyOC40Yy00IDQtMS4yIDEwLjkgNC41IDEwLjlsMjYgMGMzLjQgMCA2LjIgMi42IDYuMyA2IC4xIDMuMyAuMiA2LjYgLjIgMTAgMCAxNy41LTEuNyAzNC43LTQuOCA1MS4zLS4yIDEuMi0uOSAyLjQtMS43IDMuM2wtNDYuNSA0Ni41Yy00IDQtMS4yIDEwLjkgNC41IDEwLjlsMTQuNiAwYzQuNiAwIDcuNyA0LjggNS43IDktNDQuNSA4OS41LTEzNi45IDE1MS0yNDMuNyAxNTFTODguOCA0NTAuNSA0NC4zIDM2MWMtMi4xLTQuMiAxLTkgNS43LTlsMTQuNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjIuNiAyOTQuNmMtLjktLjktMS41LTItMS43LTMuMy0zLjItMTYuNi00LjgtMzMuOC00LjgtNTEuMyAwLTMuMyAuMS02LjcgLjItMTAgLjEtMy40IDIuOS02IDYuMy02bDI2IDBjNS43IDAgOC42LTYuOSA0LjUtMTAuOUwyNC42IDE4NC42Yy0xLjUtMS41LTIuMi0zLjgtMS43LTUuOSAxNS4yLTY2IDU0LjMtMTIyLjggMTA3LjgtMTYwLjcgMTEuMy04IDI2IDguOSAyMS40IDIyLTUuMyAxNS04LjIgMzEuMi04LjIgNDggMCA0Ni4zIDIxLjkgODcuNSA1NS44IDExMy45IDcuNSA1LjggOCAxNy45IDEgMjQuNC0yNS4xIDIzLjQtNDAuOCA1Ni43LTQwLjggOTMuNyAwIDYyLjkgNDUuNCAxMTUuMiAxMDUuMSAxMjZsMi4xLTYxLjVjLjEtMi42LTIuOC00LjItNS0yLjhsLTI2LjMgMTcuNmMtMy4yIDIuMS03LjQgMS43LTEwLjEtMXMtMy4xLTYuOS0xLTEwLjFMMjQ2IDM1Ni4zYzEuMy0xLjkgLjItNC41LTItNC45bC0zNy42LTcuNWMtMy43LS43LTYuNC00LTYuNC03LjhzMi43LTcuMSA2LjQtNy44bDM3LjYtNy41YzIuMi0uNCAzLjMtMyAyLTQuOXpcIl1cbn07XG52YXIgZmFQZXJzb25IaWtpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWhpa2luZycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiaGlraW5nXCJdLCBcImY2ZWNcIiwgXCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xMjggMTczLjZjMC0zNCAyNy42LTYxLjYgNjEuNi02MS42IDIwLjMgMCAzOS43IDguMSA1NCAyMi40bDQ4LjIgNDguMmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMzcuNSAwYzUuOCAwIDExLjMgMS42IDE2IDQuM2wwLTc2LjNjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI2OC4zYy00LjcgMi43LTEwLjIgNC4zLTE2IDQuM2wtMzcuNSAwYy0yNS41IDAtNDkuOS0xMC4xLTY3LjktMjguMWwtNi42LTYuNiAwIDEwOS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM2wxMi42IDg4LjFjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJsLTEyLjYtODguMWMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtMTAxem0tNC44IDIwMy43YzIuMyAyLjMgNC43IDQuNCA3LjEgNi41bDQ0LjkgMzguNWMtMy42IDguNC04LjUgMTYuMy0xNC40IDIzLjRMODguNiA1MzIuNWMtMTEuMyAxMy42LTMxLjUgMTUuNC00NS4xIDQuMXMtMTUuNC0zMS41LTQuMS00NS4xbDcyLjMtODYuN2MyLjYtMy4xIDQuNS02LjYgNS44LTEwLjRsNS43LTE3LjF6TTAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0IDE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2elwiXVxufTtcbnZhciBmYUhpa2luZyA9IGZhUGVyc29uSGlraW5nO1xudmFyIGZhQXJyb3dzVXBUb0xpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3dzLXVwLXRvLWxpbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU0YzJcIiwgXCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMlM0MzMuNyAwIDQxNiAwTDMyIDB6bTg2LjYgMTM3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw2NCAyMzcuMyA2NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0Mi43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6bTI1NiAwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOS40LTkuNCAwIDI0Mi43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDIuNyA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0elwiXVxufTtcbnZhciBmYU1hcnNEb3VibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFycy1kb3VibGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFs5ODkxXSwgXCJmMjI3XCIsIFwiTTI4OCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctOTUgOTVjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOCAwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMwIDQwMS4yIDAgMzA0IDc4LjggMTI4IDE3NiAxMjhjMzcgMCA3MS40IDExLjQgOTkuOCAzMWw5NS05NS01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xNzYgNDE2YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHptMTYwIDY0Yy02LjggMC0xMy40LS40LTIwLTEuMSAyMy42LTE4LjkgNDMuMy00Mi41IDU3LjYtNjkuNCA0My4zLTE1LjUgNzQuNC01Ni45IDc0LjQtMTA1LjUgMC0yNS4yLTguMy00OC41LTIyLjQtNjcuMiA3LjEgMi4xIDE0LjYgMy4yIDIyLjQgMy4yIDE3IDAgMzIuNy01LjMgNDUuNy0xNC4zIDExLjcgMjMuNiAxOC4zIDUwLjIgMTguMyA3OC4zIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2ek01MjggMTU3LjNMNTI4IDMyYzAtMTEuNC0yLjQtMjIuMi02LjctMzJMNjA4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC01MC43LTQ4IDQ4elwiXVxufTtcbnZhciBmYVRoZXJtb21ldGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RoZXJtb21ldGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDkxXCIsIFwiTTk2IDM4Mi4xbDAtODguOGMwLTE0LjkgNS45LTI5LjEgMTYuNC0zOS42bDIxLjctMjEuNyA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDQ2LjEtNDYuMSA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDQ2LjEtNDYuMSA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDcuOC03LjhjMTkuNC0xOS40IDQ1LjYtMzAuMiA3My0zMC4yIDU3IDAgMTAzLjIgNDYuMiAxMDMuMiAxMDMuMiAwIDI3LjQtMTAuOSA1My42LTMwLjIgNzNMMjU4LjMgMzk5LjZjLTEwLjUgMTAuNS0yNC43IDE2LjQtMzkuNiAxNi40bC04OC44IDAtODkgODljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwUy0yLjMgNDgwLjQgNyA0NzFsODktODl6XCJdXG59O1xudmFyIGZhUGFpbnRicnVzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYWludGJydXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4Mzk2LCBcInBhaW50LWJydXNoXCJdLCBcImYxZmNcIiwgXCJNNDgwLjUgMTAuM0wyNTkuMSAxNThjLTI5LjEgMTkuNC00Ny42IDUwLjktNTAuNiA4NS4zIDYyLjMgMTIuOCAxMTEuNCA2MS45IDEyNC4zIDEyNC4zIDM0LjUtMyA2NS45LTIxLjUgODUuMy01MC42TDU2NS43IDk1LjVjNi43LTEwLjEgMTAuMy0yMS45IDEwLjMtMzQuMSAwLTMzLjktMjcuNS02MS40LTYxLjQtNjEuNC0xMi4xIDAtMjQgMy42LTM0LjEgMTAuM3pNMjg4IDQwMGMwLTYxLjktNTAuMS0xMTItMTEyLTExMlM2NCAzMzguMSA2NCA0MDBjMCAzLjkgLjIgNy44IC42IDExLjYgMS44IDE3LjUtMTAuMiAzNi40LTI3LjggMzYuNEwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTQ0IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJ6XCJdXG59O1xudmFyIGZhUGFpbnRCcnVzaCA9IGZhUGFpbnRicnVzaDtcbnZhciBmYU5ldXRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICduZXV0ZXInLFxuICBpY29uOiBbMzg0LCA1MTIsIFs5OTA2XSwgXCJmMjJjXCIsIFwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0yMjMuOSAzNDkuMUMzMDUuOSAzMzQuMSAzNjggMjYyLjMgMzY4IDE3NiAzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NC4xIDE3My4xLS4xIDEtLjEgMS45LS4xIDIuOWwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtMSAwLTEuOS0uMS0yLjl6XCJdXG59O1xudmFyIGZhU3F1YXJlUGhvbmVGbGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1waG9uZS1mbGlwJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJwaG9uZS1zcXVhcmUtYWx0XCJdLCBcImY4N2JcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjMyIDk2LjdsMi44IC44YzMyLjMgOC44IDU5LjkgNDAuMSA1MS44IDc4LjItMTguNSA4Ny41LTg3LjQgMTU2LjMtMTc0LjkgMTc0LjktMzguMSA4LjEtNjkuNC0xOS41LTc4LjItNTEuOGwtLjgtMi44Yy0yLjctOS44IDIuNC0yMC4xIDExLjgtMjRsNDguNy0yMC4zYzguMy0zLjQgMTcuOC0xLjEgMjMuNSA1LjlsMTkuMyAyMy42YzM1LjEtMTcuNCA2My40LTQ2LjYgNzkuNi04Mi40bC0yMi4xLTE4Yy02LjktNS43LTkuMy0xNS4yLTUuOS0yMy41bDIwLjMtNDguN2MzLjktOS40IDE0LjItMTQuNCAyNC0xMS44elwiXVxufTtcbnZhciBmYVBob25lU3F1YXJlQWx0ID0gZmFTcXVhcmVQaG9uZUZsaXA7XG52YXIgZmFGYWNlR3JpblRvbmd1ZVNxdWludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tdG9uZ3VlLXNxdWludCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU0MSwgXCJncmluLXRvbmd1ZS1zcXVpbnRcIl0sIFwiZjU4YVwiLCBcIk0wIDI1NmMwIDEwNC40IDYyLjUgMTk0LjIgMTUyLjIgMjM0LjEtNS4zLTEzLTguMi0yNy4yLTguMi00Mi4xbDAtNjEuN2MtMTYuOS0xNi41LTMwLjEtMzYuNy0zOC4zLTU5LjMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xYzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS04LjMgMjIuNi0yMS41IDQyLjgtMzguMyA1OS4zbDAgNjEuN2MwIDE0LjktMi45IDI5LjEtOC4yIDQyLjEgODkuNy0zOS44IDE1Mi4yLTEyOS42IDE1Mi4yLTIzNC4xIDAtMTQxLjQtMTE0LjYtMjU2LTI1Ni0yNTZTMCAxMTQuNiAwIDI1NnptMTI1LjgtOTEuN2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXMxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAxOTIgMTI1LjggMTY0LjN6bTI2My42LTIxLjFjNC41IDYuOCAzLjEgMTUuOS0zLjEgMjEuMUwzNTMgMTkyIDM4Ni4yIDIxOS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41ek0zMjAgNDQ4bDAtNDUuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDQ1LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpcIl1cbn07XG52YXIgZmFHcmluVG9uZ3VlU3F1aW50ID0gZmFGYWNlR3JpblRvbmd1ZVNxdWludDtcbnZhciBmYUNvbW1lbnREb2xsYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudC1kb2xsYXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2NTFcIiwgXCJNMjU2IDQ4MGMxNDEuNCAwIDI1Ni0xMDcuNSAyNTYtMjQwUzM5Ny40IDAgMjU2IDAgMCAxMDcuNSAwIDI0MGMwIDU0LjMgMTkuMiAxMDQuMyA1MS42IDE0NC41TDIuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdDMTgzLjcgNDcyLjYgMjE4LjkgNDgwIDI1NiA0ODB6bTQtMzUyYzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Yy0yNS4zLTQuMi00My45LTI2LjEtNDMuOS01MS44IDAtMjguOCAyMy4yLTUyLjIgNTItNTIuNWwwLTRjMC0xMSA5LTIwIDIwLTIwelwiXVxufTtcbnZhciBmYUhpcHBvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hpcHBvJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI5NDM1XSwgXCJmNmVkXCIsIFwiTTQwNyA0N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxNy4yIDE3LjJjMS45LS4xIDMuOS0uMiA1LjgtLjJsMzIgMGMxMS4yIDAgMjEuOSAyLjMgMzEuNiA2LjVMNTQzIDU1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw1NjQgMTAxLjljNy42IDEyLjIgMTIgMjYuNyAxMiA0Mi4xIDAgMTAuMiA3LjQgMTguOCAxNi43IDIzIDI3LjkgMTIuNSA0Ny4zIDQwLjUgNDcuMyA3MyAwIDI2LjItMTIuNiA0OS40LTMyIDY0bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNi02NCAwIDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNy42Yy0xMS44LTIuNC0yMi43LTcuNC0zMi0xNC40LTEuNS0xLjEtMi45LTIuMy00LjMtMy41LTE3LTE0LjctMjcuNy0zNi40LTI3LjctNjAuNSAwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmMwIDQ0LjcgMjYuMiA4My4yIDY0IDEwMS4ybDAgMTAuOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzZjLTE5LjggNy43LTQxLjQgMTItNjQgMTJzLTQ0LjItNC4zLTY0LTEybDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTE4LjktMTguMSA0MC43Yy01LjQgMTIuMS0xOS42IDE3LjYtMzEuNyAxMi4yUy0zLjMgMzYyLjQgMi4xIDM1MC4zTDI0IDMwMC45YzUuMy0xMS45IDgtMjQuNyA4LTM3LjcgMC0xMDcuNSA4NS4yLTE5NS4yIDE5MS44LTE5OS4xbC4yLS4xIDY0IDBjNDEuNyAwIDgzLjQgMTIuMSAxMTcuMiAyNS43IDEuNy0xLjggMy41LTMuNiA1LjMtNS4yTDQwNyA4MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6bTczIDE4NWEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem04OCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTQ4MCAxNDRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwiXVxufTtcbnZhciBmYUJvd2xGb29kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvd2wtZm9vZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRjNlwiLCBcIk0wIDE3NmMwLTM1LjMgMjguNy02NCA2NC02NCAuNSAwIDEuMSAwIDEuNiAwIDcuNC0zNi41IDM5LjctNjQgNzguNC02NCAxNSAwIDI5IDQuMSA0MC45IDExLjIgMTMuMy0yNS43IDQwLjEtNDMuMiA3MS4xLTQzLjJzNTcuOCAxNy42IDcxLjEgNDMuMmMxMi03LjEgMjYtMTEuMiA0MC45LTExLjIgMzguNyAwIDcxIDI3LjUgNzguNCA2NCAuNSAwIDEuMSAwIDEuNiAwIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMTEuNy0zLjEgMjIuNi04LjYgMzJMOC42IDIwOEMzLjEgMTk4LjYgMCAxODcuNyAwIDE3NnpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjQgMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6XCJdXG59O1xudmFyIGZhU3F1YXJlVmlydXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXZpcnVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNTc4XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTE2MCA4MGMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDIyLjkgMjcuNyAzNC40IDQzLjkgMTguMiA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTE2LjIgMTYuMi00LjcgNDMuOSAxOC4yIDQzLjkgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjkgMC0zNC40IDI3LjctMTguMiA0My45IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTE2LjItMTYuMi00My45LTQuNy00My45IDE4LjIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0yMi45LTI3LjctMzQuNC00My45LTE4LjItOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWMxNi4yLTE2LjIgNC43LTQzLjktMTguMi00My45LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjIuOSAwIDM0LjQtMjcuNyAxOC4yLTQzLjktOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzE2LjIgMTYuMiA0My45IDQuNyA0My45LTE4LjIgMC0xMy4zIDEwLjctMjQgMjQtMjR6TTE5MiAyNDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OCA0MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwelwiXVxufTtcbnZhciBmYUNsb3VkU3VuUmFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1zdW4tcmFpbicsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyNzc4Ml0sIFwiZjc0M1wiLCBcIk0zMDMuMi0zLjJjLTEuMS01LjItNC42LTkuNS05LjUtMTEuNnMtMTAuNS0xLjUtMTQuOSAxLjRMMjA4IDMzLjYgMTM3LjMtMTMuM2MtNC40LTIuOS0xMC0zLjUtMTQuOS0xLjRzLTguNSA2LjQtOS41IDExLjZMOTYgODAgMTIuOCA5Ni44Yy01LjIgMS4xLTkuNSA0LjYtMTEuNiA5LjVzLTEuNSAxMC41IDEuNCAxNC45TDQ5LjYgMTkyIDIuNyAyNjIuN2MtMi45IDQuNC0zLjUgMTAtMS40IDE0LjlzNi40IDguNSAxMS42IDkuNUw5NiAzMDQgMTEyLjggMzg3LjJjMS4xIDUuMiA0LjYgOS41IDkuNSAxMS42czEwLjUgMS41IDE0LjktMS40bDY3LjMtNDQuNmMtMTUuOC0xOS40LTI2LTQzLjUtMjguMi02OS45LTM3LjUtMTMuMS02NC40LTQ4LjctNjQuNC05MC43IDAtNTMgNDMtOTYgOTYtOTYgMjEuNyAwIDQxLjggNy4yIDU3LjggMTkuNCAxNS41LTE3LjYgMzYuOS0zMCA2MS4xLTM0TDMyMCA4MCAzMDMuMi0zLjJ6TTI0MyAxNTkuMWMtOC44LTkuMy0yMS4yLTE1LjEtMzUtMTUuMS0yNi41IDAtNDggMjEuNS00OCA0OCAwIDE3IDguOSAzMiAyMi4yIDQwLjUgMTAuMi0zMS40IDMyLjEtNTcuNCA2MC43LTczbC4xLS40ek0zMDQgMzUybDE5MiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMzMuOS0yMS4xLTYyLjktNTAuOS03NC41IDEuOS02LjggMi45LTE0IDIuOS0yMS41IDAtNDQuMi0zNS44LTgwLTgwLTgwLTMwLjggMC01Ny41IDE3LjQtNzAuOSA0Mi44LTkuMy02LjgtMjAuNy0xMC44LTMzLjEtMTAuOC0zMC45IDAtNTYgMjUuMS01NiA1NiAwIDMuMiAuMyA2LjQgLjggOS40LTM2LjkgNy4xLTY0LjggMzkuNi02NC44IDc4LjYgMCA0NC4yIDM1LjggODAgODAgODB6bS0xOSA0OS4xYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjQgNjQuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40em0xMjAgMGMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS40IDY0LjFjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHptMTIwIDBjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuNCA2NC4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6XCJdXG59O1xudmFyIGZhQXJyb3dSaWdodExvbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctcmlnaHQtbG9uZycsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibG9uZy1hcnJvdy1yaWdodFwiXSwgXCJmMTc4XCIsIFwiTTU2Ni42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0NjYuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDQzNC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6XCJdXG59O1xudmFyIGZhTG9uZ0Fycm93UmlnaHQgPSBmYUFycm93UmlnaHRMb25nO1xudmFyIGZhQnVpbGRpbmdVbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWlsZGluZy11bicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRkOVwiLCBcIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjcyLTExMiAwYy0yMC45IDAtMzkuNSAxMC4xLTUxLjIgMjUuNi04LTYtMTgtOS42LTI4LjgtOS42LTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQgNjQgMCAwIDQ4LTE0NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NHpNMTQ0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNDQgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek00MjcuNCAzODAuNWM5LTIuMSAxOC4zIDIuMiAyMi41IDEwLjVsMjYuMSA1Mi4yIDAtNDMuM2MwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMGwwIDEyOGMwIDkuMy02LjQgMTcuMy0xNS40IDE5LjVzLTE4LjMtMi4yLTIyLjUtMTAuNUw0NTIgNDg0LjcgNDUyIDUyOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0xMjhjMC05LjMgNi40LTE3LjMgMTUuNC0xOS41ek0zMjQgNDAwbDAgOTZjMCA2LjYgNS40IDEyIDEyIDEyczEyLTUuNCAxMi0xMmwwLTk2YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgOTZjMCAyOC43LTIzLjMgNTItNTIgNTJzLTUyLTIzLjMtNTItNTJsMC05NmMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMHpcIl1cbn07XG52YXIgZmFUZW1wZXJhdHVyZUxvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW1wZXJhdHVyZS1sb3cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3NmJcIiwgXCJNOTYgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzQ4IDQ0Ny41IDQ4IDM2OGMwLTQyLjYgMTguNS04MSA0OC0xMDcuM0w5NiA5NnptOTYgMzM2YzM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTI4LjdjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyOC43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQ2NCA4MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zNTIgODBhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwelwiXVxufTtcbnZhciBmYURvb3JPcGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rvb3Itb3BlbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUyYlwiLCBcIk0yODggNjRsNjQgMCAwIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC05NiAwIDAgMC0xNjAgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQxNnpNMTYwIDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwiXVxufTtcbnZhciBmYUFsaWduTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbGlnbi1sZWZ0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDM2XCIsIFwiTTI4OCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6bTAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xudmFyIGZhQ2FtZXJhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbWVyYScsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMjU4LCBcImNhbWVyYS1hbHRcIl0sIFwiZjAzMFwiLCBcIk0xNDkuMSA2NC44TDEzOC43IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNzQuNyAwLTEwLjQtMzEuMkMzNTYuNCA0NS4yIDMzOC4xIDMyIDMxNy40IDMyTDE5NC42IDMyYy0yMC43IDAtMzkgMTMuMi00NS41IDMyLjh6TTI1NiAxOTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6XCJdXG59O1xudmFyIGZhQ2FtZXJhQWx0ID0gZmFDYW1lcmE7XG52YXIgZmFVc2Vyc1JheXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlcnMtcmF5cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU5M1wiLCBcIk0zMS0zM0MyMS43LTIzLjYgMjEuNy04LjQgMzEgMUw4NyA1N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNjUtMzNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwek02MDktMzNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDUxOSAyM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDYwOSAxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45ek02NSA1NDVsNTYtNTZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwzMSA1MTFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHptNTQ0IDBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTU2LTU2Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU2IDU2YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwek0zMjAgMjA4YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0wIDMyYy02MS45IDAtMTEyIDUwLjEtMTEyIDExMmwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04YzAtNjEuOS01MC4xLTExMi0xMTItMTEyem0yMTYtODBhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwek00NTEuMiAyNjAuNEM0NjkuNCAyODYuMyA0ODAgMzE3LjkgNDgwIDM1MmwwIDhjMCA4LjQtMS40IDE2LjUtNC4xIDI0bDc4LjggMGMxMS44IDAgMjEuMy05LjYgMjEuMy0yMS4zbDAtMTAuN2MwLTUzLTQzLTk2LTk2LTk2LTEwIDAtMTkuNyAxLjUtMjguOCA0LjR6bS0yNjIuNCAwYy05LjEtMi45LTE4LjgtNC40LTI4LjgtNC40LTUzIDAtOTYgNDMtOTYgOTZsMCAxMC43YzAgMTEuOCA5LjYgMjEuMyAyMS4zIDIxLjNsNzguOCAwYy0yLjctNy41LTQuMS0xNS42LTQuMS0yNGwwLThjMC0zNC4xIDEwLjYtNjUuNyAyOC44LTkxLjZ6TTIxNiAxNjBhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwelwiXVxufTtcbnZhciBmYVJhaW5ib3cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmFpbmJvdycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyNzc1Ml0sIFwiZjc1YlwiLCBcIk0zMjAgOTZDMTc4LjYgOTYgNjQgMjEwLjYgNjQgMzUybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0MzMuNyAwIDQxNmwwLTY0QzAgMTc1LjMgMTQzLjMgMzIgMzIwIDMyUzY0MCAxNzUuMyA2NDAgMzUybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NEM1NzYgMjEwLjYgNDYxLjQgOTYgMzIwIDk2em0wIDExMmMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOHMyMDggOTMuMSAyMDggMjA4bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NHpNMjg4IDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6XCJdXG59O1xudmFyIGZhU2l0ZW1hcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaXRlbWFwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGU4XCIsIFwiTTE5MiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTggMCAwIDY0IDEyMCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgNTYgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEyMCAwIDAgODAgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtODAtMTIwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNTYgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtNTZjMC0zOS44IDMyLjItNzIgNzItNzJsMTIwIDAgMC02NC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6XCJdXG59O1xudmFyIGZhRmFjZUdyaW5TdGFycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tc3RhcnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjkzMjEsIFwiZ3Jpbi1zdGFyc1wiXSwgXCJmNTg3XCIsIFwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTI0LjQtMy40LTQ4LjEtOS44LTcwLjUgMTguNi0zNi4xLTIuNy04My42LTQ2LjctOTAtNDYuOS01OC4zLTExOC45LTk1LjUtMTk5LjUtOTUuNVMxMDMuNCAzNy4zIDU2LjUgOTUuNWMtNDQgNi40LTY1LjMgNTMuOS00Ni43IDkwLTYuNCAyMi40LTkuOCA0Ni05LjggNzAuNSAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2ek0zODYuNyAzMjQuOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgNDA0LjIgMTA1LjcgMzQyLjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXptLTMxLjYtMjMxYzUuMy0xMC43IDIwLjUtMTAuNyAyNS44IDBsMjAuOSA0Mi40IDQ2LjcgNi44YzExLjggMS43IDE2LjUgMTYuMiA4IDI0LjVsLTMzLjggMzMgOCA0Ni42YzIgMTEuNy0xMC4zIDIwLjctMjAuOSAxNS4ybC00MS44LTIyLTQxLjggMjJjLTEwLjUgNS41LTIyLjktMy40LTIwLjktMTUuMmw4LTQ2LjYtMzMuOC0zM2MtOC41LTguMy0zLjgtMjIuOCA4LTI0LjVsNDYuNy02LjggMjAuOS00Mi40em0tMTk4LjIgMGwyMC45IDQyLjQgNDYuNyA2LjhjMTEuOCAxLjcgMTYuNSAxNi4yIDggMjQuNWwtMzMuOCAzMyA4IDQ2LjZjMiAxMS43LTEwLjMgMjAuNy0yMC45IDE1LjJsLTQxLjgtMjItNDEuOCAyMmMtMTAuNSA1LjUtMjIuOS0zLjQtMjAuOS0xNS4ybDgtNDYuNi0zMy44LTMzYy04LjUtOC4zLTMuOC0yMi44IDgtMjQuNWw0Ni43LTYuOCAyMC45LTQyLjRjNS4zLTEwLjcgMjAuNS0xMC43IDI1LjggMHpcIl1cbn07XG52YXIgZmFHcmluU3RhcnMgPSBmYUZhY2VHcmluU3RhcnM7XG52YXIgZmFTb3J0VXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc29ydC11cCcsXG4gIGljb246IFszODQsIDUxMiwgW1wic29ydC1hc2NcIl0sIFwiZjBkZVwiLCBcIk0zMiAyMjRjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhTLjIgMTc4LjUgOS40IDE2OS40bDE2MC0xNjBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzNjQuOSAyMjQgMzUyIDIyNEwzMiAyMjR6XCJdXG59O1xudmFyIGZhU29ydEFzYyA9IGZhU29ydFVwO1xudmFyIGZhRXllID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V5ZScsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODA2NV0sIFwiZjA2ZVwiLCBcIk0yODggMzJjLTgwLjggMC0xNDUuNSAzNi44LTE5Mi42IDgwLjYtNDYuOCA0My41LTc4LjEgOTUuNC05MyAxMzEuMS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjZzMTQ1LjUtMzYuOCAxOTIuNi04MC42YzQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42ek0xNDQgMjU2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0NC02NGMwIDM1LjMtMjguNyA2NC02NCA2NC0xMS41IDAtMjIuMy0zLTMxLjctOC40LTEgMTAuOS0uMSAyMi4xIDIuOSAzMy4yIDEzLjcgNTEuMiA2Ni40IDgxLjYgMTE3LjYgNjcuOXM4MS42LTY2LjQgNjcuOS0xMTcuNmMtMTIuMi00NS43LTU1LjUtNzQuOC0xMDEuMS03MC44IDUuMyA5LjMgOC40IDIwLjEgOC40IDMxLjd6XCJdXG59O1xudmFyIGZhQ2FyZXRMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcmV0LWxlZnQnLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImYwZDlcIiwgXCJNNy43IDIzNS44Yy0xMC4zIDEyLjYtOS41IDMxLjEgMi4yIDQyLjhsMTI4IDEyOGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMjU2YzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC0xMjggMTI4LTIuMiAyLjR6XCJdXG59O1xudmFyIGZhQXBwbGVXaG9sZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcHBsZS13aG9sZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzgyMiwgMTI3ODIzLCBcImFwcGxlLWFsdFwiXSwgXCJmNWQxXCIsIFwiTTIyNCAxMTJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2IDB6TTAgMjg4YzAtNzYuMyAzNS43LTE2MCAxMTItMTYwIDI3LjMgMCA1OS43IDEwLjMgODIuNyAxOS4zIDE4LjggNy4zIDM5LjkgNy4zIDU4LjcgMCAyMi45LTguOSA1NS40LTE5LjMgODIuNy0xOS4zIDc2LjMgMCAxMTIgODMuNyAxMTIgMTYwIDAgMTI4LTgwIDIyNC0xNjAgMjI0LTE2LjUgMC0zOC4xLTYuNi01MS41LTExLjMtOC4xLTIuOC0xNi45LTIuOC0yNSAwLTEzLjQgNC43LTM1IDExLjMtNTEuNSAxMS4zLTgwIDAtMTYwLTk2LTE2MC0yMjR6XCJdXG59O1xudmFyIGZhQXBwbGVBbHQgPSBmYUFwcGxlV2hvbGU7XG52YXIgZmFTY3JvbGxUb3JhaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY3JvbGwtdG9yYWgnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInRvcmFoXCJdLCBcImY2YTBcIiwgXCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDAgNjguOSAwIDg2LjcgMTMuNCA5My4zIDMybDM4OS41IDBjNi42LTE4LjYgMjQuNC0zMiA0NS4zLTMyIDI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4LTIwLjkgMC0zOC43LTEzLjQtNDUuMy0zMkw5My4zIDQ4MGMtNi42IDE4LjYtMjQuNCAzMi00NS4zIDMyLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgNDh6TTE3Ny45IDMwMWMtMS4yIDItMS45IDQuMi0xLjkgNi42IDAgNi45IDUuNiAxMi41IDEyLjUgMTIuNWw1Ni45IDAgMzAuNSA0OS4yYzIuNiA0LjIgNy4yIDYuOCAxMi4yIDYuOHM5LjYtMi42IDEyLjItNi44bDMwLjUtNDkuMiA1Ni45IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtMi4zLS42LTQuNi0xLjktNi42bC0yNy44LTQ1IDI3LjgtNDVjMS4yLTIgMS45LTQuMiAxLjktNi42IDAtNi45LTUuNi0xMi41LTEyLjUtMTIuNWwtNTYuOSAwLTMwLjUtNDkuMmMtMi42LTQuMi03LjItNi44LTEyLjItNi44cy05LjYgMi42LTEyLjIgNi44bC0zMC41IDQ5LjItNTYuOSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCAyLjMgLjYgNC42IDEuOSA2LjZsMjcuOCA0NS0yNy44IDQ1elwiXVxufTtcbnZhciBmYVRvcmFoID0gZmFTY3JvbGxUb3JhaDtcbnZhciBmYUhvdXNlTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1sb2NrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTEwXCIsIFwiTTUyOCAyMjQuMWM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODB6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMTg1IDE3MS44QzQ0MC4yIDE5NSA0MDAgMjQ0LjggNDAwIDMwNGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNMjcyIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA5NiAwIDAtODcuM2MwLTE2LjUgNy0zMS41IDE4LjQtNDIuMS04LjctOS0yMC45LTE0LjYtMzQuNC0xNC42bC0zMiAwem0yNTYtNDcuOWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYUFycm93c0xlZnRSaWdodFRvTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtbGVmdC1yaWdodC10by1saW5lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGJhXCIsIFwiTTMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOEwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zOTAuNiAzNDIuNmw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMTMzLjUgMCA5LjQtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTMzLjUgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwek01NzYgMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZ6XCJdXG59O1xudmFyIGZhVHJhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhc2gnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxZjhcIiwgXCJNMTM2LjcgNS45TDEyOCAzMiAzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDAtOC43LTI2LjFDMzA2LjktNy4yIDI5NC43LTE2IDI4MC45LTE2TDE2Ny4xLTE2Yy0xMy44IDAtMjYgOC44LTMwLjQgMjEuOXpNNDE2IDE0NEwzMiAxNDQgNTMuMSA0NjcuMUM1NC43IDQ5Mi40IDc1LjcgNTEyIDEwMSA1MTJMMzQ3IDUxMmMyNS4zIDAgNDYuMy0xOS42IDQ3LjktNDQuOUw0MTYgMTQ0elwiXVxufTtcbnZhciBmYUZhY2VTYWRUZWFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2Utc2FkLXRlYXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NDYsIFwic2FkLXRlYXJcIl0sIFwiZjViNFwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNzEgOThjNS41LTEuMyAxMS4xLTIgMTctMiAyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MC0xMi41IDAtMjQuNiAxLjktMzUuOSA1LjUgOS44IDEyLjcgMTYuNSAyNy45IDE4LjkgNDQuNnpNMTc2IDI0MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE5Mi0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xODUuNCAyOTIuOGMtMi40LTIuOS01LjctNC44LTkuNC00LjhzLTcgMS45LTkuNCA0LjhjLTYuNSA3LjgtMTIuNiAxNi4xLTE4LjMgMjQuNi05IDEzLjQtMjAuMyAzMC4yLTIwLjMgNDcuNCAwIDI4LjMgMjEuNSA1MS4yIDQ4IDUxLjJzNDgtMjIuOSA0OC01MS4yYzAtMTcuMi0xMS4yLTM0LTIwLjMtNDcuNC01LjctOC41LTExLjktMTYuNy0xOC4zLTI0LjZ6XCJdXG59O1xudmFyIGZhU2FkVGVhciA9IGZhRmFjZVNhZFRlYXI7XG52YXIgZmFGYXggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmF4JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MjI0LCAxMjg0MzldLCBcImYxYWNcIiwgXCJNMTYwIDY0bDAgODAgNjQgMCAwLTgwIDE0Ni43IDAgNDUuMyA0NS4zIDAgMzQuNyA2NCAwIDAtMzQuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w0MTYgMTguN0M0MDQgNi43IDM4Ny43IDAgMzcwLjcgMEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMHptNDQ4IDY0bC0zMjAgMCAwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDI4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0wIDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTMzNiAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zMTIgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTQyNCAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek00MDAgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xudmFyIGZhUGVyc29uQ2lyY2xlUGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tY2lyY2xlLXBsdXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NDFcIiwgXCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIl1cbn07XG52YXIgZmFIYW1zYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW1zYScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY2NVwiLCBcIk0zNC42IDI4OEw4MCAyODhjOC44IDAgMTYtNy4yIDE2LTE2TDk2IDcyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAxMzJjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xNjRjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDE2NGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTEzMmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjAwYzAgOC44IDcuMiAxNiAxNiAxNmw0NS40IDBjMTkuMSAwIDM0LjYgMTUuNSAzNC42IDM0LjYgMCA4LjYtMy4yIDE2LjktOSAyMy4zTDQxNi42IDQ0MWMtNDEuMSA0NS4yLTk5LjQgNzEtMTYwLjYgNzFTMTM2LjYgNDg2LjIgOTUuNCA0NDFMOSAzNDUuOWMtNS44LTYuNC05LTE0LjctOS0yMy4zIDAtMTkuMSAxNS41LTM0LjYgMzQuNi0zNC42ek0yNTYgMjg4Yy0zOC40IDAtNzYuOCAzNS44LTkwLjYgNTAuMi0zLjYgMy43LTUuNCA4LjctNS40IDEzLjhzMS44IDEwLjEgNS40IDEzLjhDMTc5LjIgMzgwLjIgMjE3LjYgNDE2IDI1NiA0MTZzNzYuOC0zNS44IDkwLjYtNTAuMmMzLjYtMy43IDUuNC04LjcgNS40LTEzLjhzLTEuOC0xMC4xLTUuNC0xMy44QzMzMi44IDMyMy44IDI5NC40IDI4OCAyNTYgMjg4em0wIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFQZXJzb25DaXJjbGVRdWVzdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tY2lyY2xlLXF1ZXN0aW9uJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTQyXCIsIFwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xMDBjLTExLjYgMC0yMS4zIDguMi0yMy41IDE5LjItMS44IDguNy0xMC4yIDE0LjMtMTguOSAxMi41cy0xNC4zLTEwLjItMTIuNS0xOC45YzUuMi0yNS42IDI3LjgtNDQuOCA1NC45LTQ0LjggMzAuOSAwIDU2IDI1LjEgNTYgNTYgMCAxOS44LTExLjcgMzcuOC0yOS44IDQ1LjlsLTEwLjQgNC42Yy0xLjIgNy43LTcuOCAxMy41LTE1LjggMTMuNS04LjggMC0xNi03LjItMTYtMTYgMC0xMS4yIDYuNi0yMS4zIDE2LjgtMjUuOWwxMi40LTUuNWM2LjYtMi45IDEwLjgtOS40IDEwLjgtMTYuNiAwLTEzLjMtMTAuNy0yNC0yNC0yNHpcIl1cbn07XG52YXIgZmFDbGlwYm9hcmRDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbGlwYm9hcmQtY2hlY2snLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY0NmNcIiwgXCJNMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMHptMjYuOSAyMTIuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjZzLTkuOCAyNC40LS42IDMzLjlsNDYuNCA0OGM0LjkgNS4xIDExLjggNy44IDE4LjkgNy4zczEzLjYtNC4xIDE3LjgtOS44TDI4OC4yIDI0Ni4xYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41ek0xMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0elwiXVxufTtcbnZhciBmYVNoYXJlRnJvbVNxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaGFyZS1mcm9tLXNxdWFyZScsXG4gIGljb246IFs1NzYsIDUxMiwgWzYxNTA5LCBcInNoYXJlLXNxdWFyZVwiXSwgXCJmMTRkXCIsIFwiTTM4NC41IDI0bDAgNzItNjQgMGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCA5My40IDgyLjggMTM0LjggMTAwLjYgMTQyLjYgMi4yIDEgNC42IDEuNCA3LjEgMS40bDIuNSAwYzkuOCAwIDE3LjgtOCAxNy44LTE3LjggMC04LjMtNS45LTE1LjUtMTIuOC0yMC4zLTguOS02LjItMTkuMi0xOC4yLTE5LjItNDAuNSAwLTQ1IDM2LjUtODEuNSA4MS41LTgxLjVsMzAuNSAwIDAgNzJjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4ybDEzNi0xMzZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMNDI1LjUgN2MtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzODQuNSAxNC4zIDM4NC41IDI0em0tMjcyIDcyYy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDI1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwyNTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0yNTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwelwiXVxufTtcbnZhciBmYVNoYXJlU3F1YXJlID0gZmFTaGFyZUZyb21TcXVhcmU7XG52YXIgZmFSZWNlaXB0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlY2VpcHQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjk1MzRdLCBcImY1NDNcIiwgXCJNMTQgMi4yQzIyLjUtMS43IDMyLjUtLjMgMzkuNiA1LjhMODAgNDAuNCAxMjAuNCA1LjhjOS03LjcgMjIuMy03LjcgMzEuMiAwTDE5MiA0MC40IDIzMi40IDUuOGM5LTcuNyAyMi4yLTcuNyAzMS4yIDBMMzA0IDQwLjQgMzQ0LjQgNS44YzcuMS02LjEgMTcuMS03LjUgMjUuNi0zLjZTMzg0IDE0LjYgMzg0IDI0bDAgNDY0YzAgOS40LTUuNSAxNy45LTE0IDIxLjhzLTE4LjUgMi41LTI1LjYtMy42bC00MC40LTM0LjYtNDAuNCAzNC42Yy05IDcuNy0yMi4yIDcuNy0zMS4yIDBsLTQwLjQtMzQuNi00MC40IDM0LjZjLTkgNy43LTIyLjMgNy43LTMxLjIgMEw4MCA0NzEuNiAzOS42IDUwNi4yYy03LjEgNi4xLTE3LjEgNy41LTI1LjYgMy42UzAgNDk3LjQgMCA0ODhMMCAyNEMwIDE0LjYgNS41IDYuMSAxNCAyLjJ6TTEwNCAxMzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAwek04MCAzNTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMjQtMTIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMHpcIl1cbn07XG52YXIgZmFFcXVhbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXF1YWxzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjI3NjRdLCBcIjNkXCIsIFwiTTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxMjh6bTAgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMHpcIl1cbn07XG52YXIgZmFDaGV2cm9uVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi11cCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA3N1wiLCBcIk0yMDEuNCAxMDUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOTIgMTkyYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDIyNCAxNzMuMyA1NC42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxOTItMTkyelwiXVxufTtcbnZhciBmYVZpcnVzU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmlydXMtc2xhc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUwNzVcIiwgXCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODguNi04OC42YzEuNy0xMi4xLTItMjQuOC0xMS4zLTM0LTMxLjItMzEuMi05LjEtODQuNSAzNS04NC41IDIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwYy00NC4xIDAtNjYuMS01My4zLTM1LTg0LjUgMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZzLTQwLjktMTUuNi01Ni42IDBjLTMxLjIgMzEuMi04NC41IDkuMS04NC41LTM1IDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgNDQuMS01My4zIDY2LjEtODQuNSAzNS05LjMtOS4zLTIyLTEzLTM0LTExLjNMNDEtMjQuOXpNNzIgMjE2Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwYzQ0LjEgMCA2Ni4xIDUzLjMgMzUgODQuNS0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNnM0MC45IDE1LjYgNTYuNiAwYzMxLjItMzEuMiA4NC41LTkuMSA4NC41IDM1IDAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBjMC0yMS40IDEyLjYtMzcuNiAyOS4xLTQ1LjFsLTI0MC0yNDBDMTA5LjYgMjAzLjQgOTMuNCAyMTYgNzIgMjE2elwiXVxufTtcbnZhciBmYVNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NsYXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzE1XCIsIFwiTTctMjVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMNTY5IDUwM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOUMtMi4zLS40LTIuMy0xNS42IDctMjV6XCJdXG59O1xudmFyIGZhRXhwYW5kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V4cGFuZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA2NVwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTY0IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDMzNC4zIDAgMzUybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNNDQ4IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2elwiXVxufTtcbnZhciBmYU5vdGVTdGlja3kgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbm90ZS1zdGlja3knLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs2MjAyNiwgXCJzdGlja3ktbm90ZVwiXSwgXCJmMjQ5XCIsIFwiTTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIxMy41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zTDMyMi43IDQ2MS4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDY0IDQ4MHpNMzg5LjUgMzA0TDI5NiAzMDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXpcIl1cbn07XG52YXIgZmFTdGlja3lOb3RlID0gZmFOb3RlU3RpY2t5O1xudmFyIGZhVGFibGVDb2x1bW5zID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxlLWNvbHVtbnMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImNvbHVtbnNcIl0sIFwiZjBkYlwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgNjRsMCAyNTYgMTI4IDAgMC0yNTYtMTI4IDB6bTMyMCAwbC0xMjggMCAwIDI1NiAxMjggMCAwLTI1NnpcIl1cbn07XG52YXIgZmFDb2x1bW5zID0gZmFUYWJsZUNvbHVtbnM7XG52YXIgZmFQZXJzb25TaGVsdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1zaGVsdGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTRmXCIsIFwiTTI3MS45IDQuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhDNi4yIDEzNy45IDAgMTQ4LjUgMCAxNjBMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCAxNzguNiAyNTYgNjguOSA0NDggMTc4LjYgNDQ4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTEuNS02LjItMjIuMS0xNi4xLTI3LjhsLTIyNC0xMjh6TTI1NiAyMDhhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwem0tOCAxOTJsMTYgMCAwIDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNzQuNSAyNi45IDQ5LjljNi4zIDExLjcgMjAuOCAxNiAzMi41IDkuOHMxNi0yMC44IDkuOC0zMi41bC0zMy4yLTYxLjdDMzI5LjcgMjQ1LjEgMjk0LjQgMjI0IDI1NiAyMjRzLTczLjcgMjEuMS05MS45IDU0LjlsLTMzLjIgNjEuN2MtNi4zIDExLjctMS45IDI2LjIgOS44IDMyLjVzMjYuMiAxLjkgMzIuNS05LjhMMjAwIDMxMy41IDIwMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTg4elwiXVxufTtcbnZhciBmYUNpcmNsZU5vdGNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1ub3RjaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFjZVwiLCBcIk0yMjIuNyAzMi4xYzUgMTYuOS00LjYgMzQuOC0yMS41IDM5LjgtNzkuMyAyMy42LTEzNy4xIDk3LjEtMTM3LjEgMTg0LjEgMCAxMDYgODYgMTkyIDE5MiAxOTJzMTkyLTg2IDE5Mi0xOTJjMC04Ni45LTU3LjgtMTYwLjQtMTM3LjEtMTg0LjEtMTYuOS01LTI2LjYtMjIuOS0yMS41LTM5LjhzMjIuOS0yNi42IDM5LjgtMjEuNUM0MzQuOSA0Mi4xIDUxMiAxNDAgNTEyIDI1NiA1MTIgMzk3LjQgMzk3LjQgNTEyIDI1NiA1MTJTMCAzOTcuNCAwIDI1NmMwLTExNiA3Ny4xLTIxMy45IDE4Mi45LTI0NS40IDE2LjktNSAzNC44IDQuNiAzOS44IDIxLjV6XCJdXG59O1xudmFyIGZhV2F0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2F0ZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3NzNcIiwgXCJNNDEwLjYgMTI0LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0wIDE0NGMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuNy0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDE0NGMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6XCJdXG59O1xudmFyIGZhRGVsZXRlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkZWxldGUtbGVmdCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzkwMDMsIFwiYmFja3NwYWNlXCJdLCBcImY1NWFcIiwgXCJNNTc2IDEyOGMwLTM1LjMtMjguNy02NC02NC02NEwyMDUuMyA2NGMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdMOS40IDIzMy40Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZMMTYwIDQyOS4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NnpNMjg0LjEgMTg4LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpcIl1cbn07XG52YXIgZmFCYWNrc3BhY2UgPSBmYURlbGV0ZUxlZnQ7XG52YXIgZmFCcm9vbUJhbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJvb20tYmFsbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wicXVpZGRpdGNoXCIsIFwicXVpZGRpdGNoLWJyb29tLWJhbGxcIl0sIFwiZjQ1OFwiLCBcIk00OTYgNTQ0YTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYwek0xMDYuOCAyNzcuMmMzMC42LTMwLjYgNzMuMS00NS45IDExNS44LTQyLjJMMzQxIDM1My4zYzMuNyA0Mi44LTExLjYgODUuMi00Mi4yIDExNS45LTI3LjQgMjcuNC02NC42IDQyLjgtMTAzLjMgNDIuOEwyMi4xIDUxMmMtMTIuMiAwLTIyLjEtOS45LTIyLjEtMjIuMSAwLTYuMyAyLjctMTIuMyA3LjMtMTYuNUwxMzMuNyAzNTkuN2M0LjItMy43LS40LTEwLjQtNS40LTcuOUw3Ny4yIDM3Ny40Yy02LjEgMy0xMy4yLTEuNC0xMy4yLTguMiAwLTMxLjUgMTIuNS02MS44IDM0LjgtODRsOC04em00MTctMjcwYzEyLjYtMTAuMyAzMS4xLTkuNSA0Mi44IDIuMnMxMi40IDMwLjIgMi4yIDQyLjhsLTIuMiAyLjQtMTkyIDE5MiAzNC44IDM0LjdjNC4yIDQuMiA2LjYgMTAgNi42IDE2IDAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42bC0yOS4xIDAtMTA4LjMtMTA4LjMgMC0yOS4xYzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42IDYgMCAxMS44IDIuNCAxNiA2LjZsMzQuOCAzNC43IDE5Mi0xOTIgMi40LTIuMnpcIl1cbn07XG52YXIgZmFRdWlkZGl0Y2ggPSBmYUJyb29tQmFsbDtcbnZhciBmYVF1aWRkaXRjaEJyb29tQmFsbCA9IGZhQnJvb21CYWxsO1xudmFyIGZhSiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdqJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTA2XSwgXCI0YVwiLCBcIk0yODggMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0MDguNCAwIDMyMGwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbnZhciBmYVNodXR0bGVTcGFjZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaHV0dGxlLXNwYWNlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzcGFjZS1zaHV0dGxlXCJdLCBcImYxOTdcIiwgXCJNMCAzNjhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw1MCAwYzQwLjYgMCA4MC40LTExIDExNS4yLTMxLjlsMTMzLjUtODAuMS05My4zIDAtNjQuOSAzOC45Yy0xNCA4LjQtMjguOSAxNC43LTQ0LjUgMTlsMC02Ni40YzkuNy01LjYgMTcuOC0xMy43IDIzLjQtMjMuNGwxOTguOCAwYzY3LjEgMCAxMjcuOC0yMC42IDE3MC4zLTcwLjYgNC42LTUuNCA0LjYtMTMuMyAwLTE4LjgtNDIuNS01MC4xLTEwMy4yLTcwLjYtMTcwLjMtNzAuNmwtMTk4LjggMGMtNS42LTkuNy0xMy43LTE3LjgtMjMuNC0yMy40bDAtNjYuNGMxNS42IDQuMiAzMC42IDEwLjYgNDQuNSAxOWw2NC45IDM4LjkgOTMuMyAwLTEzMy41LTgwLjFDMTc4LjQgNDMgMTM4LjYgMzIgOTggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDM2OHptOTYgMGwwIDY0LTQ4IDAgMC02NCA0OCAwek05NiA4MGwwIDY0LTQ4IDAgMC02NCA0OCAwek00MTYgMjI0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbnZhciBmYVNwYWNlU2h1dHRsZSA9IGZhU2h1dHRsZVNwYWNlO1xudmFyIGZhWWluWWFuZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd5aW4teWFuZycsXG4gIGljb246IFs1MTIsIDUxMiwgWzk3NzVdLCBcImY2YWRcIiwgXCJNMjI0IDE2MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiAzNTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTQ0OGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Ni05NiA0My05NiA5NiA0MyA5NiA5NiA5NkMxNTAgNDQ4IDY0IDM2MiA2NCAyNTZTMTUwIDY0IDI1NiA2NHpNMjI0IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwiXVxufTtcbnZhciBmYVN0b3AgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RvcCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzkyMDldLCBcImYwNGRcIiwgXCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyelwiXVxufTtcbnZhciBmYVRyb3dlbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cm93ZWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1ODlcIiwgXCJNNDA3LjkgMTgxLjRMMjc3LjMgMzEyIDM0Mi42IDM3Ny40YzcuOSA3LjkgMTEuMSAxOS40IDguNCAzMC4zcy0xMC44IDE5LjYtMjEuNSAyMi45bC0yNTYgODBjLTExLjQgMy41LTIzLjggLjUtMzIuMi03LjlzLTExLjUtMjAuOC03LjktMzIuMmw4MC0yNTZjMy4zLTEwLjcgMTItMTguOSAyMi45LTIxLjVzMjIuNCAuNSAzMC4zIDguNEwyMzIgMjY2LjcgMzYyLjYgMTM2LjFjLTE0LjMtMTQuNi0xNC4yLTM4IC4zLTUyLjVsOTUuNC05NS40YzI2LjktMjYuOSA3MC41LTI2LjkgOTcuNSAwczI2LjkgNzAuNSAwIDk3LjVsLTk1LjQgOTUuNGMtMTQuNSAxNC41LTM3LjkgMTQuNi01Mi41IC4zelwiXVxufTtcbnZhciBmYUhhbmRCYWNrRmlzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWJhY2stZmlzdCcsXG4gIGljb246IFszODQsIDUxMiwgW1wiaGFuZC1yb2NrXCJdLCBcImYyNTVcIiwgXCJNNy40IDI1My42QzIuNiAyNDUuOSAwIDIzNy4xIDAgMjI4bDAtMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4IDE3LjMgMCAzMi40IDkuMSA0MC45IDIyLjggNC4zLTIyLjEgMjMuOC0zOC44IDQ3LjEtMzguOCAyMy40IDAgNDIuOSAxNi44IDQ3LjEgMzguOSA3LjMtNC40IDE1LjgtNi45IDI0LjktNi45IDIyLjEgMCA0MC44IDE1IDQ2LjMgMzUuNCA1LjUtMi4yIDExLjQtMy40IDE3LjctMy40IDI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTYuOWMwIDkuOS0yLjMgMTkuNy02LjggMjguNmwtMzkuNiA3OS4xYy0xMC44IDIxLjctMzMgMzUuNC01Ny4yIDM1LjRMOTYgMzUyYy0xNi41IDAtMzEuOC04LjQtNDAuNi0yMi40bC00OC03NnpNMzIgNDgwbDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbnZhciBmYUhhbmRSb2NrID0gZmFIYW5kQmFja0Zpc3Q7XG52YXIgZmFUZW1wZXJhdHVyZUhpZ2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVtcGVyYXR1cmUtaGlnaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc2OVwiLCBcIk05NiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggNDQ3LjUgNDggMzY4YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDk2IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDIxNiA5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIxMi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQ2NCA4MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zNTIgODBhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwelwiXVxufTtcbnZhciBmYUdyZWF0ZXJUaGFuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyZWF0ZXItdGhhbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyNzY5XSwgXCIzZVwiLCBcIk0zNC45IDUwLjZjLTcuNCAxNi0uNCAzNS4xIDE1LjYgNDIuNUw0MDMuNiAyNTYgNTAuNiA0MTljLTE2IDcuNC0yMy4xIDI2LjQtMTUuNiA0Mi41czI2LjQgMjMgNDIuNSAxNS42bDQxNi0xOTJjMTEuMy01LjIgMTguNi0xNi42IDE4LjYtMjkuMXMtNy4zLTIzLjgtMTguNi0yOS4xTDc3LjQgMzVjLTE2LTcuNC0zNS4xLS40LTQyLjUgMTUuNnpcIl1cbn07XG52YXIgZmFDcnV0Y2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3J1dGNoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2Y3XCIsIFwiTTI5Ny40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0xLjQtMS40LTE1OC42IDE1OC42Yy0xOCAxOC00Mi40IDI4LjEtNjcuOSAyOC4xbC01OSAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNC02MS43IDYxLjctOTIuOCA5Mi44LTkzLjMgOTMuMy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNi0xNiAwIDAgNzcuMy03Ny4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTU5YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45TDI5OC43IDU2IDI5Ny40IDU0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zek0zNDQgMTAxLjNMMjYxLjMgMTg0IDMyOCAyNTAuNyA0MTAuNyAxNjggMzQ0IDEwMS4zem0tMTI4IDEyOGwtMzAuNiAzMC42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCA1My41IDUzLjUgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNEwyODIuNyAyOTYgMjE2IDIyOS4zelwiXVxufTtcbnZhciBmYVNlcHRhZ29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NlcHRhZ29uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJoZXB0YWdvblwiXSwgXCJlODIwXCIsIFwiTTI2Ny40LTMxLjVjMTUuOS01LjUgMzMuNS00LjYgNDguOCAyLjdsMTcyLjQgODMgNi4zIDMuNWMxNC4yIDkgMjQuNSAyMy4zIDI4LjMgMzkuOWw0Mi42IDE4Ni41IDEuMiA3LjJjMS42IDE0LjMtMS43IDI4LjgtOS40IDQxLjFsLTQuMiA1LjktMTE5LjMgMTQ5LjZjLTEyLjEgMTUuMi0zMC42IDI0LjEtNTAgMjQuMWwtMTkxLjMgMGMtMTkuNSAwLTM3LjktOC45LTUwLTI0LjFMMjMuNSAzMzguNGMtMTIuMS0xNS4yLTE2LjctMzUuMi0xMi4zLTU0LjJsNDIuNi0xODYuNSAyLTdjNS42LTE1LjkgMTcuMi0yOSAzMi42LTM2LjRsMTcyLjQtODMgNi43LTIuN3pcIl1cbn07XG52YXIgZmFIZXB0YWdvbiA9IGZhU2VwdGFnb247XG52YXIgZmFTdHJlZXRWaWV3ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0cmVldC12aWV3JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjFkXCIsIFwiTTI1NiAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0yMjQgMTYwbDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMS44IDAtMTEuMSA5OS41Yy0xLjggMTYuMi0xNS41IDI4LjUtMzEuOCAyOC41bC0zOC43IDBjLTE2LjMgMC0zMC0xMi4zLTMxLjgtMjguNWwtMTEuMS05OS41LTEuOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4YzAtMzUuMyAyOC43LTY0IDY0LTY0ek00MTIuNCA0MDAuMmMtMTYuMS00LjItMzQuOC03LjYtNTUuNC0xMC4ybDUuMy00Ny43YzIyLjcgMi45IDQzLjcgNi43IDYyLjEgMTEuNSAyMi40IDUuOCA0Mi42IDEzLjMgNTcuOCAyMy4zIDE0LjcgOS42IDI5LjggMjQuOSAyOS44IDQ3cy0xNS4xIDM3LjQtMjkuOCA0N2MtMTUuMiA5LjktMzUuNSAxNy41LTU3LjggMjMuMy00NS4xIDExLjctMTA1LjMgMTcuOC0xNjguNCAxNy44cy0xMjMuMy02LjEtMTY4LjQtMTcuOEM2NS4yIDQ4OC40IDQ1IDQ4MC45IDI5LjggNDcxIDE1LjEgNDYxLjQgMCA0NDYuMSAwIDQyNHMxNS4xLTM3LjQgMjkuOC00N2MxNS4yLTkuOSAzNS41LTE3LjUgNTcuOC0yMy4zIDE4LjUtNC44IDM5LjUtOC42IDYyLjEtMTEuNUwxNTUgMzkwYy0yMC42IDIuNi0zOS4zIDYuMS01NS40IDEwLjItNTYuNiAxNC42LTU2LjYgMzIuOSAwIDQ3LjUgMzkuOSAxMC4zIDk1LjggMTYuMiAxNTYuNCAxNi4yczExNi41LTUuOSAxNTYuNC0xNi4yYzU2LjYtMTQuNiA1Ni42LTMyLjkgMC00Ny41elwiXVxufTtcbnZhciBmYVdhdmVTcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2F2ZS1zcXVhcmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY4M2VcIiwgXCJNNjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyODggOTYgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yODgtOTYgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMTI4elwiXVxufTtcbnZhciBmYUFuZ2xlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmdsZS1sZWZ0JyxcbiAgaWNvbjogWzI1NiwgNTEyLCBbODI0OV0sIFwiZjEwNFwiLCBcIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHpcIl1cbn07XG52YXIgZmFTY3Jld2RyaXZlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY3Jld2RyaXZlcicsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyOTY5MV0sIFwiZjU0YVwiLCBcIk0zNTIuMSAxNDYuN2wwLTQ5LjZjMC0xMC43IDUuMy0yMC43IDE0LjItMjYuNkw0ODUuMi04LjdjNi4zLTQuMiAxNC44LTMuNCAyMC4yIDJsNDUuNCA0NS41YzUuNCA1LjQgNi4yIDEzLjggMiAyMC4yTDQ3My42IDE3Ny44Yy01LjkgOC45LTE1LjkgMTQuMi0yNi42IDE0LjJsLTQ5LjYgMC05MC43IDkwLjdjMTUgMzMuMyA4LjkgNzMuOS0xOC41IDEwMS4zTDE2Mi4xIDUxMC4xYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMEwzNC4xIDQ0OS45Yy0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOUwxNjAuMSAyNTZjMjcuNC0yNy40IDY3LjktMzMuNiAxMDEuMy0xOC41bDkwLjctOTAuN3pcIl1cbn07XG52YXIgZmFUcmFjdG9yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYWN0b3InLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg2NjhdLCBcImY3MjJcIiwgXCJNMTYwIDk2bDAgOTYgMTMzLjQgMC01Ny42LTk2LTc1LjggMHpNOTYgMjIzTDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEwNy44IDBjMjIuNSAwIDQzLjMgMTEuOCA1NC45IDMxLjFsNzcuNCAxMjguOSA2NCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MS41YzAgMTQuMi02LjMgMjcuOC0xNy4zIDM2LjlsLTM1IDI5LjJjMjYuNSAxNS4yIDQ0LjMgNDMuNyA0NC4zIDc2LjQgMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0xNC40IDMuNS0yOCA5LjYtNDBsLTEwMS4yIDBjLTMgMTMuNC03LjkgMjYtMTQuNCAzNy43IDcuNyA5LjQgNy4yIDIzLjQtMS42IDMyLjJsLTIyLjYgMjIuNmMtOC44IDguOC0yMi43IDkuMy0zMi4yIDEuNi05LjMgNS4yLTE5LjMgOS4zLTI5LjggMTIuMy0xLjIgMTIuMS0xMS40IDIxLjYtMjMuOSAyMS42bC0zMiAwYy0xMi40IDAtMjIuNy05LjUtMjMuOS0yMS42LTEwLjUtMy0yMC40LTcuMi0yOS44LTEyLjMtOS40IDcuNy0yMy40IDcuMi0zMi4yLTEuNkwzNS41IDQ1My44Yy04LjgtOC44LTkuMy0yMi43LTEuNi0zMi4yLTUuMi05LjMtOS4zLTE5LjMtMTIuMy0yOS44LTEyLjEtMS4yLTIxLjYtMTEuNC0yMS42LTIzLjlsMC0zMmMwLTEyLjQgOS41LTIyLjcgMjEuNi0yMy45IDMtMTAuNSA3LjItMjAuNCAxMi4zLTI5LjgtNy43LTkuNC03LjItMjMuNCAxLjYtMzIuMmwyMi42LTIyLjZjOC44LTguOCAyMi43LTkuMyAzMi4yLTEuNiAxLjktMSAzLjctMiA1LjctM3ptNjQgNjVhNjQgNjQgMCAxIDAgMCAxMjggNjQgNjQgMCAxIDAgMC0xMjh6TTQ0MCA0MjRhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMCAtODAgMHpcIl1cbn07XG52YXIgZmFCcmlkZ2VDaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicmlkZ2UtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGNiXCIsIFwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIl1cbn07XG52YXIgZmFWaWFscyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWFscycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQ5M1wiLCBcIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMzUyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0zNTIgNjQgMCAwIDM1MmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQ5Ny43IDAgNDgwIDBMMzIgMHpNMTYwIDY0bDAgMTI4LTY0IDAgMC0xMjggNjQgMHptMjU2IDBsMCAxMjgtNjQgMCAwLTEyOCA2NCAwelwiXVxufTtcbnZhciBmYVN0ZXRob3Njb3BlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0ZXRob3Njb3BlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI5NjU4XSwgXCJmMGYxXCIsIFwiTTMyIDQ4QzMyIDIxLjUgNTMuNSAwIDgwIDBsNDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTI4LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzIzOC4zIDAgMjU2IDBsNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE0NGMwIDc3LjQtNTUgMTQyLTEyOCAxNTYuOGwwIDE5LjJjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmwwLTg1LjVjLTM3LjMtMTMuMi02NC00OC43LTY0LTkwLjUgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDQxLjgtMjYuNyA3Ny40LTY0IDkwLjVsMCA4NS41YzAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzE2MCA0NjUuMiAxNjAgMzY4bDAtMTkuMkM4NyAzMzQgMzIgMjY5LjQgMzIgMTkyTDMyIDQ4ek00ODAgMjI0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFQb2RjYXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BvZGNhc3QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyY2VcIiwgXCJNMzM2IDM1OS44YzM5LjEtMzIuMyA2NC04MS4xIDY0LTEzNS44IDAtOTcuMi03OC44LTE3Ni0xNzYtMTc2UzQ4IDEyNi44IDQ4IDIyNEM0OCAyNzguNyA3Mi45IDMyNy41IDExMiAzNTkuOCAxMTIuNCAzNzcuNCAxMTUuMiA0MDAuMiAxMTguNCA0MjEuNiA0OCAzODMuOSAwIDMwOS41IDAgMjI0IDAgMTAwLjMgMTAwLjMgMCAyMjQgMFM0NDggMTAwLjMgNDQ4IDIyNGMwIDg1LjYtNDggMTU5LjktMTE4LjUgMTk3LjYgMy4zLTIxLjQgNi00NC4yIDYuNC02MS44em0tMTQtNTMuNGMtOC4zLTEyLjYtMTkuMi0yMS42LTMwLjQtMjcuOC0yLjEtMS4xLTQuMi0yLjItNi4zLTMuMiAxMS43LTEzLjkgMTguOC0zMS45IDE4LjgtNTEuNSAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDE5LjYgNy4xIDM3LjYgMTguOCA1MS41LTIuMSAxLTQuMiAyLTYuMyAzLjItMTEuMiA2LjItMjIuMSAxNS4yLTMwLjQgMjcuOC0xOC44LTIyLjMtMzAuMS01MS0zMC4xLTgyLjQgMC03MC43IDU3LjMtMTI4IDEyOC0xMjhzMTI4IDU3LjMgMTI4IDEyOGMwIDMxLjQtMTEuMyA2MC4yLTMwLjEgODIuNHpNMjI0IDMxMmMzMi45IDAgNjQgOC42IDY0IDQzLjggMCAzMy0xMi45IDEwNC4xLTIwLjYgMTMyLjktNS4xIDE5LTI0LjUgMjMuNC00My40IDIzLjRzLTM4LjItNC40LTQzLjQtMjMuNGMtNy44LTI4LjUtMjAuNi05OS43LTIwLjYtMTMyLjggMC0zNS4xIDMxLjEtNDMuOCA2NC00My44em0wLTEyOGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6XCJdXG59O1xudmFyIGZhQXJyb3dVcFJpZ2h0RG90cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC1yaWdodC1kb3RzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGI3XCIsIFwiTTk2IDMyQzc4LjMgMzIgNjQgNDYuMyA2NCA2NFM3OC4zIDk2IDk2IDk2TDExNC43IDk2IDkuNCAyMDEuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTQxLjMgMTYwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMzJ6TTQwMy44IDcwLjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHpNMjc5LjcgMTk0LjJhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHptMTYyLjItMzguMWEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6TTE1Ni4yIDMxNy44YTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6bTE2MS42LTM4LjFhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yem04Ni4xIDM4LjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHpNNzAuMSA0MDMuOGEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6bTg2LjEgMzguMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwem0xNjEuNi0zOC4xYTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnptODYuMSAzOC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6XCJdXG59O1xudmFyIGZhQ2hlc3NRdWVlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1xdWVlbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk4MTldLCBcImY0NDVcIiwgXCJNMjU2IDgwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNS41IDE4NUwxMjggMzg0IDcxLjggNDU0LjNjLTUgNi4zLTcuOCAxNC4xLTcuOCAyMi4yIDAgMTkuNiAxNS45IDM1LjUgMzUuNSAzNS41bDMxMi45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJMMzg0IDM4NCA1MDYuNSAxODVjMy42LTUuOSA1LjUtMTIuNyA1LjUtMTkuNmwwLS42YzAtMjAuMy0xNi41LTM2LjgtMzYuOC0zNi44LTcuMyAwLTE0LjQgMi4yLTIwLjQgNi4ybC0xNi45IDExLjNjLTEyLjcgOC41LTI5LjYgNi44LTQwLjQtNGwtMzQuMS0zNC4xQzM1Ni4xIDEwMC4xIDM0Ni4yIDk2IDMzNiA5NnMtMjAuMSA0LjEtMjcuMyAxMS4zbC0zMC4xIDMwLjFjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0zMC4xLTMwLjFDMTk2LjEgMTAwLjEgMTg2LjIgOTYgMTc2IDk2cy0yMC4xIDQuMS0yNy4zIDExLjNsLTM0LjEgMzQuMWMtMTAuOCAxMC44LTI3LjcgMTIuNS00MC40IDRMNTcuMyAxMzQuMmMtNi4xLTQtMTMuMi02LjItMjAuNC02LjItMjAuMyAwLTM2LjggMTYuNS0zNi44IDM2LjhsMCAuNmMwIDYuOSAxLjkgMTMuNyA1LjUgMTkuNnpcIl1cbn07XG52YXIgZmFBbmNob3JDaXJjbGVFeGNsYW1hdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmNob3ItY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGFiXCIsIFwiTTMyMC41IDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNsMTYuMi0xNC4yYzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAxNi42IDAgMzIuNy0xLjkgNDguMi01LjYtMjAuMy0zMC41LTMyLjItNjctMzIuMi0xMDYuNCAwLTI3LjMgNS43LTUzLjMgMTYtNzYuOWwwLTEzNi42YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjA4IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xudmFyIGZhRWxsaXBzaXNWZXJ0aWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlbGxpcHNpcy12ZXJ0aWNhbCcsXG4gIGljb246IFsxMjgsIDUxMiwgW1wiZWxsaXBzaXMtdlwiXSwgXCJmMTQyXCIsIFwiTTY0IDE0NGE1NiA1NiAwIDEgMSAwLTExMiA1NiA1NiAwIDEgMSAwIDExMnptMCAyMjRjMzAuOSAwIDU2IDI1LjEgNTYgNTZzLTI1LjEgNTYtNTYgNTYtNTYtMjUuMS01Ni01NiAyNS4xLTU2IDU2LTU2em01Ni0xMTJjMCAzMC45LTI1LjEgNTYtNTYgNTZzLTU2LTI1LjEtNTYtNTYgMjUuMS01NiA1Ni01NiA1NiAyNS4xIDU2IDU2elwiXVxufTtcbnZhciBmYUVsbGlwc2lzViA9IGZhRWxsaXBzaXNWZXJ0aWNhbDtcbnZhciBmYUhlYXJ0Q2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhcnQtY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGZlXCIsIFwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2elwiXVxufTtcbnZhciBmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmctY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGQzXCIsIFwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTc0LjkgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMiAwIDQgLjIgNS45IC41IDYtMjMuNiAxNi4zLTQ1LjQgMzAuMS02NC41bC00IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDRjMjcuNS0xOS44IDYwLjMtMzIuNCA5Ni0zNS40TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xudmFyIGZhUGVyc29uQXJyb3dVcEZyb21MaW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1hcnJvdy11cC1mcm9tLWxpbmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MzlcIiwgXCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0zMTguMyAyOTkuMWwtNDYuMy02Mi40IDAgMjQzLjMgMjcyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgwIDAgMC0yNDMuMy00Ni4zIDYyLjRjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTIwOCA0ODBsMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxMjggMzIgMHpNNTY2LjYgMTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDQ5NiA3Ny4zIDQ5NiAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDYuNy0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDgwLTgwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zelwiXVxufTtcbnZhciBmYU5vdEVxdWFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ25vdC1lcXVhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUzZVwiLCBcIk0zNzguNiA4MS44YzkuOC0xNC43IDUuOC0zNC42LTguOS00NC40cy0zNC42LTUuOC00NC40IDguOUwyNzAuOSAxMjggMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5Ni4yIDAtODUuMyAxMjgtMTEwLjkgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2OC4yIDAtMzAuOCA0Ni4yYy05LjggMTQuNy01LjggMzQuNiA4LjkgNDQuNHMzNC42IDUuOCA0NC40LTguOUwxNzcuMSAzODQgNDE2IDM4NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTk2LjIgMCA4NS4zLTEyOCAxMTAuOSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02OC4yIDAgMzAuOC00Ni4yelwiXVxufTtcbnZhciBmYVRyYWluVHJhbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmFpbi10cmFtJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4NjUwXSwgXCJlNWI0XCIsIFwiTTAgOEMwLTUuMyAxMC43LTE2IDI0LTE2bDMzNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyMCAwIDAgNjQgNDAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMTYwYzAgMzEuMi0xNC45IDU5LTM4IDc2LjVsNjQuMyA3NmM4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LjYtODguMWMtMy42IC40LTcuMyAuNi0xMS4xIC42bC0xMjggMGMtMy44IDAtNy41LS4yLTExLjEtLjZMNDIuMyA1MzUuNWMtOC42IDEwLjEtMjMuNyAxMS40LTMzLjggMi44cy0xMS40LTIzLjctMi44LTMzLjhsNjQuMy03NkM0Ni45IDQxMSAzMiAzODMuMiAzMiAzNTJsMC0xNjBjMC01MyA0My05NiA5Ni05Nmw0MCAwIDAtNjQtMTIwIDAgMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0UzAgNTMuMyAwIDQwTDAgOHpNMTI4IDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMHptMzIgMTkyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFQbGFuZURlcGFydHVyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbGFuZS1kZXBhcnR1cmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg3NDddLCBcImY1YjBcIiwgXCJNMzcyIDE0My45TDE3Mi43IDQwLjJjLTgtNC4xLTE3LjMtNC44LTI1LjctMS43bC00MS4xIDE1Yy0xMC4zIDMuNy0xMy44IDE2LjQtNy4xIDI1TDIwMC4zIDIwNi40IDEwMC4xIDI0Mi44IDQwIDIwNi4yYy02LjItMy44LTEzLjgtNC41LTIwLjctMi4xTDMgMjEwLjFjLTkuNCAzLjQtMTMuNCAxNC41LTguMyAyMy4xbDUzLjYgOTEuOGMxNS42IDI2LjcgNDguMSAzOC40IDc3LjEgMjcuOGwxMi45LTQuNyAwIDAgMzk4LjQtMTQ1YzI5LjEtMTAuNiA0NC00Mi43IDMzLjUtNzEuOHMtNDIuNy00NC03MS44LTMzLjVMMzcyIDE0My45ek0zMi4yIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTEyIDB6XCJdXG59O1xudmFyIGZhUmlnaHRUb0JyYWNrZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmlnaHQtdG8tYnJhY2tldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2lnbi1pbi1hbHRcIl0sIFwiZjJmNlwiLCBcIk0zNDUgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDIwMSA5NWMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMxNjAgMTAyLjMgMTYwIDExMmwwIDgwLTExMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDExMiAwIDAgODBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4yTDM0NSAyNzN6bTcgMTQzYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDB6XCJdXG59O1xudmFyIGZhU2lnbkluQWx0ID0gZmFSaWdodFRvQnJhY2tldDtcbnZhciBmYVNkQ2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzZC1jYXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmN2MyXCIsIFwiTTM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEwxMjUuMyAwQzEwOC4zIDAgOTIgNi43IDgwIDE4LjdMMTguNyA4MEM2LjcgOTIgMCAxMDguMyAwIDEyNS4zTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0ek0xNjAgODhsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTg4IDBsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bTg4IDBsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6XCJdXG59O1xudmFyIGZhSG91c2VDaXJjbGVFeGNsYW1hdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MGFcIiwgXCJNNDk2IDU0NGExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMjE3LjYgMjAyYy0xMC4yLTEuNy0yMC43LTIuNi0zMS4zLTIuNi03OC42IDAtMTQ2LjEgNDcuMi0xNzUuOCAxMTQuOC01LjEtMS44LTEwLjUtMi44LTE2LjItMi44bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDkxIDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjEgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek00OTYgNDQ0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptMC0xNDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNiA4LjggMCAxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6XCJdXG59O1xudmFyIGZhU2hla2VsU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaGVrZWwtc2lnbicsXG4gIGljb246IFs0NDgsIDUxMiwgWzgzNjIsIFwiaWxzXCIsIFwic2hla2VsXCIsIFwic2hlcWVsXCIsIFwic2hlcWVsLXNpZ25cIl0sIFwiZjIwYlwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNTIgMTI4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEwzMiAzMnpNMzIwIDQ4MGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTI4IDAgMC0yMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDB6XCJdXG59O1xudmFyIGZhSWxzID0gZmFTaGVrZWxTaWduO1xudmFyIGZhU2hla2VsID0gZmFTaGVrZWxTaWduO1xudmFyIGZhU2hlcWVsID0gZmFTaGVrZWxTaWduO1xudmFyIGZhU2hlcWVsU2lnbiA9IGZhU2hla2VsU2lnbjtcbnZhciBmYVJhZGlvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JhZGlvJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MjUxXSwgXCJmOGQ3XCIsIFwiTTQ5NC44IDE1YzEyLjctMy43IDIwLTE3LjEgMTYuMy0yOS44UzQ5NC0zNC44IDQ4MS4zLTMxTDUxLjggOTQuOUM0Mi40IDk3LjYgMzMuOSAxMDIuMSAyNi42IDEwOCAxMC41IDExOS43IDAgMTM4LjYgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjE4LjUgOTYgNDk0LjggMTV6TTM2OCAyMDhhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTY0IDI0OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAyNzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDM2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6XCJdXG59O1xudmFyIGZhSGFuZERvdHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1kb3RzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhbGxlcmdpZXNcIl0sIFwiZjQ2MVwiLCBcIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNzJjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjIgMGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmwwLTIwOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTIwOHpNMjAwIDM1MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0tODggMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbnZhciBmYUFsbGVyZ2llcyA9IGZhSGFuZERvdHM7XG52YXIgZmFCb29rU2t1bGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1za3VsbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiYm9vay1kZWFkXCJdLCBcImY2YjdcIiwgXCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTI3MiAxNjMuMmwwIDEyLjhjMCA4LjgtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xMi44Yy0xOS40LTExLjctMzItMzAuMy0zMi01MS4yIDAtMzUuMyAzNS44LTY0IDgwLTY0czgwIDI4LjcgODAgNjRjMCAyMC45LTEyLjYgMzkuNS0zMiA1MS4yek0yMDggMTEyYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptNzQuMiA5NS43YzQuNiAxMC4xIC4xIDIxLjktOS45IDI2LjVsLTQ3LjkgMjEuOCA0Ny45IDIxLjhjMTAuMSA0LjYgMTQuNSAxNi40IDkuOSAyNi41cy0xNi40IDE0LjUtMjYuNSA5LjlMMjI0IDI5NCAxNDQuMyAzMzAuMmMtMTAuMSA0LjYtMjEuOSAuMS0yNi41LTkuOXMtLjEtMjEuOSA5LjktMjYuNWw0Ny45LTIxLjgtNDcuOS0yMS44Yy0xMC4xLTQuNi0xNC41LTE2LjQtOS45LTI2LjVzMTYuNC0xNC41IDI2LjUtOS45TDIyNCAyNTAgMzAzLjcgMjEzLjhjMTAuMS00LjYgMjEuOS0uMSAyNi41IDkuOXpcIl1cbn07XG52YXIgZmFCb29rRGVhZCA9IGZhQm9va1NrdWxsO1xudmFyIGZhVW5sb2NrS2V5aG9sZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bmxvY2sta2V5aG9sZScsXG4gIGljb246IFszODQsIDUxMiwgW1widW5sb2NrLWFsdFwiXSwgXCJmMTNlXCIsIFwiTTE5MiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NCAxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDAtNjRjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggNjMuNSAwIDExNi4xIDQ2LjEgMTI2LjIgMTA2LjcgMi45IDE3LjQtOC44IDMzLjktMjYuMyAzNi45cy0zMy45LTguOC0zNi45LTI2LjNDMjUwIDU1LjEgMjIzLjcgMzIgMTkyIDMyem00MCAzMjhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMHpcIl1cbn07XG52YXIgZmFVbmxvY2tBbHQgPSBmYVVubG9ja0tleWhvbGU7XG52YXIgZmFGaWxlQXJyb3dVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWFycm93LXVwJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJmaWxlLXVwbG9hZFwiXSwgXCJmNTc0XCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0yMDkgMjYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtNjQgNjRjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwyMy0yMyAwIDg2LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTg2LjEgMjMgMjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02NC02NHpcIl1cbn07XG52YXIgZmFGaWxlVXBsb2FkID0gZmFGaWxlQXJyb3dVcDtcbnZhciBmYUZhY2VHcmluVGVhcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXRlYXJzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NTE0LCBcImdyaW4tdGVhcnNcIl0sIFwiZjU4OFwiLCBcIk01NTQuOCAyMDMuNGwxNi4zIDIuM0M1NDcuNyA4OC40IDQ0NC4yIDAgMzIwIDBTOTIuMyA4OC40IDY4LjkgMjA1LjdsMTYuMy0yLjNjMzctNS4zIDY4LjYgMjYuNCA2My40IDYzLjRsLTYuNyA0Ni43Yy00LjEgMjktMjEuNiA1My4yLTQ1LjggNjYuOCA0My43IDc4LjUgMTI3LjYgMTMxLjcgMjIzLjggMTMxLjdzMTgwLjEtNTMuMSAyMjMuOC0xMzEuN2MtMjQuMS0xMy41LTQxLjYtMzcuOC00NS44LTY2LjhsLTYuNy00Ni43Yy01LjMtMzcgMjYuNC02OC42IDYzLjQtNjMuNHpNNDcwLjMgMzI2LjlDNDQ3LjkgMzg4LjIgMzg5LjEgNDMyIDMyMCA0MzJTMTkyLjEgMzg4LjIgMTY5LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjF6TTIxMiAyMDhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHptMTg4LTI4Yy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4ek02NDAgMzAwLjZjMC0yNS42LTE4LjgtNDcuMy00NC4xLTUwLjlMNTQ5LjEgMjQzYy0xMC42LTEuNS0xOS42IDcuNS0xOC4xIDE4LjFsNi43IDQ2LjdjMy42IDI1LjMgMjUuMyA0NC4xIDUwLjkgNDQuMSAyOC40IDAgNTEuNC0yMyA1MS40LTUxLjR6bS02NDAgMEMwIDMyOSAyMyAzNTIgNTEuNCAzNTIgNzcgMzUyIDk4LjcgMzMzLjIgMTAyLjMgMzA3LjlsNi43LTQ2LjdjMS41LTEwLjYtNy41LTE5LjYtMTguMS0xOC4xbC00Ni43IDYuN0MxOC44IDI1My4zIDAgMjc1IDAgMzAwLjZ6XCJdXG59O1xudmFyIGZhR3JpblRlYXJzID0gZmFGYWNlR3JpblRlYXJzO1xudmFyIGZhUGVuVG9TcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVuLXRvLXNxdWFyZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZWRpdFwiXSwgXCJmMDQ0XCIsIFwiTTQ3MS42IDIxLjdjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwTDM2OCA0Ni4xIDQ2NS45IDE0NCA0OTAuMyAxMTkuNmMyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NzEuNiAyMS43em0tMjk5LjIgMjIwYy02LjEgNi4xLTEwLjggMTMuNi0xMy41IDIxLjlsLTI5LjYgODguOGMtMi45IDguNi0uNiAxOC4xIDUuOCAyNC42czE1LjkgOC43IDI0LjYgNS44bDg4LjgtMjkuNmM4LjItMi43IDE1LjctNy40IDIxLjktMTMuNUw0MzIgMTc3LjkgMzM0LjEgODAgMTcyLjQgMjQxLjd6TTk2IDY0QzQzIDY0IDAgMTA3IDAgMTYwTDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDY0elwiXVxufTtcbnZhciBmYUVkaXQgPSBmYVBlblRvU3F1YXJlO1xudmFyIGZhRWFydGhFdXJvcGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWFydGgtZXVyb3BlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJnbG9iZS1ldXJvcGVcIl0sIFwiZjdhMlwiLCBcIk0yNTYuMiA0OGMxMTQuOCAuMSAyMDcuOCA5My4yIDIwNy44IDIwOCAwIDIyLjEtMy40IDQzLjQtOS44IDYzLjQtMiAuNC00LjEgLjYtNi4yIC42bC0yLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTI5LjMtMjkuM2MtNi02LTkuNC0xNC4xLTkuNC0yMi42bDAtNTAuN2MwLTguOCA3LjItMTYgMTYtMTZzMTYtNy4yIDE2LTE2LTcuMi0xNi0xNi0xNmwtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnMtNy4yIDE2LTE2IDE2bC0yNS40IDBjLTEyLjUgMC0yMi42LTEwLjEtMjIuNi0yMi42IDAtNiAyLjQtMTEuOCA2LjYtMTZsNzAuMS03MC4xYzIuMS0yLjEgMy4zLTUgMy4zLTggMC02LjItNS4xLTExLjMtMTEuMy0xMS4zbC0xNC4xIDBjLTEyLjUgMC0yMi42LTEwLjEtMjIuNi0yMi42IDAtNiAyLjQtMTEuOCA2LjYtMTZsMjMuMS0yMy4xYy44LS44IDEuNi0xLjUgMi41LTIuMnpNNDM4LjQgMzU2LjFjLTMyLjggNTkuNi05My45IDEwMS40LTE2NS4yIDEwNy4yLS43LTIuMy0xLjEtNC44LTEuMS03LjMgMC0xMy4zLTEwLjctMjQtMjQtMjRsLTI2LjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTI5LjMtMjkuM2MtNi02LTkuNC0xNC4xLTkuNC0yMi42bDAtNjYuN2MwLTE3LjcgMTQuMy0zMiAzMi0zMmw5OC43IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMjkuMyAyOS4zYzYgNiAxNC4xIDkuNCAyMi42IDkuNGw1LjUgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwxNiAxNmM0LjIgNC4yIDEwIDYuNiAxNiA2LjYgNC44IDAgOS4zIDEuNSAxMyA0LjF6TTI1NiA1MTJsMjYuMi0xLjNjLTguNiAuOS0xNy4zIDEuMy0yNi4yIDEuM3ptMjYuMi0xLjNDNDExLjMgNDk3LjYgNTEyIDM4OC42IDUxMiAyNTYgNTEyIDExNC42IDM5Ny40IDAgMjU2IDBsMCAwQzExNC42IDAgMCAxMTQuNiAwIDI1NiAwIDM4My41IDkzLjIgNDg5LjMgMjE1LjMgNTA4LjggMjI4LjUgNTEwLjkgMjQyLjEgNTEyIDI1NiA1MTJ6TTE4Ny4zIDEyMy4zbC0zMiAzMmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzMi0zMmM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJdXG59O1xudmFyIGZhR2xvYmVFdXJvcGUgPSBmYUVhcnRoRXVyb3BlO1xudmFyIGZhRmFjZUdyaW5CZWFtU3dlYXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLWJlYW0tc3dlYXQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg1MTcsIFwiZ3Jpbi1iZWFtLXN3ZWF0XCJdLCBcImY1ODNcIiwgXCJNNTQ2LjItLjFjMTQuNyAxNy44IDI5LjggNDAuMSAyOS44IDY0LjEgMCAzNi40LTI3LjYgNjQtNjQgNjRzLTY0LTI3LjYtNjQtNjRjMC0yNCAxNS4yLTQ2LjMgMjkuOC02NC4xIDguOC0xMC43IDE4LjUtMjAuOCAyOS0zMCAzLTIuNiA3LjQtMi42IDEwLjQgMCAxMC41IDkuMSAyMC4xIDE5LjMgMjkgMzB6TTI4OCAwYzQyLjUgMCA4Mi42IDEwLjQgMTE3LjggMjguNy0zLjYgMTAuOS01LjggMjIuNy01LjggMzUuMyAwIDYyLjkgNDkuMSAxMTIgMTEyIDExMiA2LjQgMCAxMi43LS41IDE4LjgtMS41IDguNiAyNS42IDEzLjIgNTMgMTMuMiA4MS41IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMzIgMzk3LjQgMzIgMjU2IDE0Ni42IDAgMjg4IDB6TTQxOC43IDMwOC45QzM3OS41IDMyMS4xIDMzNS4xIDMyOCAyODggMzI4cy05MS41LTYuOS0xMzAuNy0xOS4xYy0xMS45LTMuNy0yMy45IDYuMy0xOS42IDE4LjEgMjIuNCA2MS4zIDgxLjMgMTA1LjEgMTUwLjMgMTA1LjFzMTI3LjktNDMuOCAxNTAuMy0xMDUuMWM0LjMtMTEuOC03LjctMjEuOC0xOS42LTE4LjF6TTIwOCAxODBjMTUuNSAwIDI4IDEyLjUgMjggMjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMTUuNSAxMi41LTI4IDI4LTI4em0xMzIgMjhjMC0xNS41IDEyLjUtMjggMjgtMjhzMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTh6XCJdXG59O1xudmFyIGZhR3JpbkJlYW1Td2VhdCA9IGZhRmFjZUdyaW5CZWFtU3dlYXQ7XG52YXIgZmFDaXJjbGVIYWxmU3Ryb2tlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1oYWxmLXN0cm9rZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzk2ODAsIFwiYWRqdXN0XCJdLCBcImYwNDJcIiwgXCJNNDQ4IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MmwwIDM4NGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpcIl1cbn07XG52YXIgZmFBZGp1c3QgPSBmYUNpcmNsZUhhbGZTdHJva2U7XG52YXIgZmFQZXJzb25NaWxpdGFyeVRvUGVyc29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1taWxpdGFyeS10by1wZXJzb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NGNcIiwgXCJNNzEgMTIuNWMtOC42IDEtMTUgOC4yLTE1IDE2LjggMCA5LjMgNy41IDE2LjggMTYuNyAxNi45bDExMS40IDBjOC44LS4xIDE1LjktNy4yIDE1LjktMTZMMjAwIDE2YzAtOS41LTguMy0xNy0xNy44LTE1LjlMNzEgMTIuNXpNMTg5LjUgNzguMWwtMTIyLjkgMGMtMS42IDUuNy0yLjUgMTEuNy0yLjUgMTcuOSAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtNi4yLS45LTEyLjItMi41LTE3Ljl6TTMyIDI1NmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzEuOCAwIDMuNS0uMSA1LjItLjRMNTMgMjA4LjZDNDAuMSAyMjAuMyAzMiAyMzcuMiAzMiAyNTZ6bTE5MC4yIDQyLjVjMS4xLTMuMyAxLjgtNi44IDEuOC0xMC41bDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBjLTMuNyAwLTcuNCAuMy0xMC45IC45TDIyMi4yIDI5OC41ek0zODQgMTYwYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0tMzIgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMHpNMjE1LjggNDUwLjFjNS4yLTQuNiA4LjItMTEuMSA4LjItMTguMXMtMy0xMy41LTguMi0xOC4xbC02NC01NmMtNy4xLTYuMi0xNy4xLTcuNy0yNS43LTMuOFMxMTIgMzY2LjYgMTEyIDM3NmwwIDMyLTg4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODggMCAwIDMyYzAgOS40IDUuNSAxOCAxNC4xIDIxLjlzMTguNiAyLjQgMjUuNy0zLjhsNjQtNTZ6TTI4OCA0MzEuOWMwIDYuOSAzIDEzLjUgOC4xIDE4LjFsNjQgNTYuNGM3LjEgNi4yIDE3LjEgNy44IDI1LjcgMy45UzQwMCA0OTcuOCA0MDAgNDg4LjRsMC0zMi40IDg4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg4IDAgMC0zMmMwLTkuNC01LjUtMTgtMTQuMS0yMS45cy0xOC42LTIuNC0yNS43IDMuOGwtNjQgNTZjLTUuMiA0LjUtOC4yIDExLjEtOC4yIDE4elwiXVxufTtcbnZhciBmYVRhYmxlQ2VsbHNDb2x1bW5Mb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxlLWNlbGxzLWNvbHVtbi1sb2NrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNjc4XCIsIFwiTTI1NiAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem0yNTYtNzljLTQ2LjcgNS44LTg1LjYgMzYuOC0xMDIuNyA3OWwtMjUuMyAwIDAgOTAuOGMtMTAuMSAxNS4yLTE2IDMzLjQtMTYgNTMuMWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMMTI4IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA0OXpNMTI4IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTQzMiA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDM2OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnpcIl1cbn07XG52YXIgZmFUcnVja0ZpZWxkVW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stZmllbGQtdW4nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OGVcIiwgXCJNOTYgMzJDNjAuNyAzMiAzMiA2MC43IDMyIDk2bDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMCA0OGMwIDIxLjEgMTMuNyAzOS4xIDMyLjYgNDUuNS0uNCAzLjQtLjYgNy0uNiAxMC41IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsMTQ0LjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsLjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yNC43IDAtMS43LTQuMi00My44LTEwNi4zYy0xMi4zLTMwLTQxLjYtNDkuNS03NC00OS41bC00MC40IDBDMzY0LjQgNDQuOSAzNDMuNyAzMiAzMjAgMzJMOTYgMzJ6TTM4NCAyMjRsMC05NiAzMS45IDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlsMzUuNCA4Ni4xLTgyLjEgMHpNMTUyIDM1MmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTI4MCA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0yNTYuNiAxMzIuOWwyNy40IDQxIDAtMjkuOWMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMGwwIDk2YzAgOC44LTUuOCAxNi42LTE0LjIgMTkuMXMtMTcuNS0uNy0yMi40LThsLTI3LjQtNDEgMCAyOS45YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTk2YzAtOC44IDUuOC0xNi42IDE0LjItMTkuMXMxNy41IC43IDIyLjQgOHpNMTMyIDE0NGwwIDY0YzAgNi42IDUuNCAxMiAxMiAxMnMxMi01LjQgMTItMTJsMC02NGMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMGwwIDY0YzAgMjguNy0yMy4zIDUyLTUyIDUycy01Mi0yMy4zLTUyLTUybDAtNjRjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjB6XCJdXG59O1xudmFyIGZhQ2xvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvY2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzMzksIFwiY2xvY2stZm91clwiXSwgXCJmMDE3XCIsIFwiTTI1NiAwYTI1NiAyNTYgMCAxIDEgMCA1MTIgMjU2IDI1NiAwIDEgMSAwLTUxMnpNMjMyIDEyMGwwIDEzNmMwIDggNCAxNS41IDEwLjcgMjBsOTYgNjRjMTEgNy40IDI1LjkgNC40IDMzLjMtNi43czQuNC0yNS45LTYuNy0zMy4zTDI4MCAyNDMuMiAyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0elwiXVxufTtcbnZhciBmYUNsb2NrRm91ciA9IGZhQ2xvY2s7XG52YXIgZmFCb29rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgyMTJdLCBcImYwMmRcIiwgXCJNMzg0IDUxMkw5NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NkMwIDQzIDQzIDAgOTYgMEw0MDAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDIwLjktMTMuNCAzOC43LTMyIDQ1LjNsMCA2Ni43YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwek05NiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDAgMC02NC0yNTYgMHptMzItMjMyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTI0IDcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMHpcIl1cbn07XG52YXIgZmFGYWNlTGF1Z2hXaW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtbGF1Z2gtd2luaycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGF1Z2gtd2lua1wiXSwgXCJmNTljXCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6XCJdXG59O1xudmFyIGZhTGF1Z2hXaW5rID0gZmFGYWNlTGF1Z2hXaW5rO1xudmFyIGZhQ2xvdWRNZWF0YmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1tZWF0YmFsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjczYlwiLCBcIk0wIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDI2LjkgMGMzLjUtMTIuMSAxMC4xLTIzLjMgMTkuMi0zMi40bDEuNC0xLjRjMTUtMTUgMzUuMy0yMi45IDU2LjEtMjIuMiAxNC4yLTE1LjEgMzQuMi0yMy45IDU1LjQtMjMuOWwyIDBjMjEuMSAwIDQxLjEgOC44IDU1LjQgMjMuOSAyMC44LS42IDQxLjEgNy4zIDU2LjEgMjIuMmwxLjQgMS40YzkuMiA5LjIgMTUuNyAyMC40IDE5LjIgMzIuNGwyNi45IDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLS41IDAtMS4xIDAtMS42IDAgMS4xLTUuMiAxLjYtMTAuNSAxLjYtMTYgMC00NC4yLTM1LjgtODAtODAtODAtMjQuMyAwLTQ2LjEgMTAuOS02MC44IDI4LTE4LjctMzUuNy01Ni4xLTYwLTk5LjItNjAtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCA3LjEgLjcgMTQuMSAxLjkgMjAuOC0zOC4zIDEyLjYtNjUuOSA0OC43LTY1LjkgOTEuMnpNMTU2LjUgNDI0LjNjOS41IDYuMyAxNC4yIDE3LjcgMTEuOSAyOC44LTEuOCA5LjIgMSAxOC43IDcuNyAyNS4zbDEuNCAxLjRjNi42IDYuNiAxNi4xIDkuNSAyNS4zIDcuNyAxMS4xLTIuMiAyMi41IDIuNSAyOC44IDExLjkgNS4yIDcuOCAxNCAxMi41IDIzLjMgMTIuNWwyIDBjOS40IDAgMTguMS00LjcgMjMuMy0xMi41IDYuMy05LjUgMTcuNy0xNC4yIDI4LjgtMTEuOSA5LjIgMS44IDE4LjctMSAyNS4zLTcuN2wxLjQtMS40YzYuNi02LjYgOS41LTE2LjEgNy43LTI1LjMtMi4yLTExLjEgMi41LTIyLjUgMTEuOS0yOC44IDcuOC01LjIgMTIuNS0xNCAxMi41LTIzLjNsMC0yYzAtOS40LTQuNy0xOC4xLTEyLjUtMjMuMy05LjUtNi4zLTE0LjItMTcuNy0xMS45LTI4LjggMS44LTkuMi0xLTE4LjctNy43LTI1LjNsLTEuNC0xLjRjLTYuNi02LjYtMTYuMS05LjUtMjUuMy03LjctMTEuMSAyLjItMjIuNS0yLjUtMjguOC0xMS45LTUuMi03LjgtMTQtMTIuNS0yMy4zLTEyLjVsLTIgMGMtOS40IDAtMTguMSA0LjctMjMuMyAxMi41LTYuMyA5LjUtMTcuNyAxNC4yLTI4LjggMTEuOS05LjItMS44LTE4LjcgMS0yNS4zIDcuN2wtMS40IDEuNGMtNi42IDYuNi05LjUgMTYuMS03LjcgMjUuMyAyLjIgMTEuMS0yLjUgMjIuNS0xMS45IDI4LjgtNy44IDUuMi0xMi41IDE0LTEyLjUgMjMuM2wwIDJjMCA5LjQgNC43IDE4LjEgMTIuNSAyMy4zek00OCA0NDhhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em00MTYgMGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6XCJdXG59O1xudmFyIGZhQ2hhcnRBcmVhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYXJ0LWFyZWEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImFyZWEtY2hhcnRcIl0sIFwiZjFmZVwiLCBcIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0yNDAgOTZjNi43IDAgMTMuMSAyLjggMTcuNyA3LjhMMzI4LjggMTgxLjMgMzc1IDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw2NCA2NGM0LjUgNC41IDcgMTAuNiA3IDE3bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0zMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xMTJjMC02IDIuMy0xMS44IDYuMy0xNi4ybDg4LTk2YzQuNS01IDExLTcuOCAxNy43LTcuOHpcIl1cbn07XG52YXIgZmFBcmVhQ2hhcnQgPSBmYUNoYXJ0QXJlYTtcbnZhciBmYVJ1cGlhaFNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncnVwaWFoLXNpZ24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUyM2RcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNTQuMy0zMCAxMDEuNS03NC40IDEyNi4xbDQxIDEzNi43YzUuMSAxNi45LTQuNSAzNC44LTIxLjUgMzkuOHMtMzQuOC00LjUtMzkuOC0yMS41TDEyMC4xIDMxOS44Yy0yLjcgLjEtNS40IC4yLTguMSAuMmwtNDggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwIDAgMTYwem0yNTYtMzJsODAgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM0NjEuOSA0NDggNDAwIDQ0OGwtNDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem04MCAxNjBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTQ4IDAgMCA5NiA0OCAwelwiXVxufTtcbnZhciBmYVRleHRXaWR0aCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZXh0LXdpZHRoJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDM1XCIsIFwiTTQwIDBDMTcuOSAwIDAgMTcuOSAwIDQwTDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDEyOCAwIDAgMTYwLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0xNjAgMTI4IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNTZjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgMHptNzguNiA0MDYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMjI5LjUgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNC0yMjkuNSAwIDkuNC05LjR6XCJdXG59O1xudmFyIGZhU2F0ZWxsaXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NhdGVsbGl0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODc1Ml0sIFwiZjdiZlwiLCBcIk0xOTkgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw4OS40IDg5LjQgNTUtNTVjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDggNDhjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTU1IDU1IDg5LjQgODkuNGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtOTYgOTZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC04OS40LTg5LjQtMTUuNSAxNS41YzExLjQgMjQuNiAxNy44IDUyIDE3LjggODAuOSAwIDMxLjctNy43IDYxLjUtMjEuMiA4Ny44LTQuNyA5LTE2LjcgMTAuMy0yMy44IDMuMWwtOTYuMy05Ni4zLTYwIDYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2MC02MC05Ni4zLTk2LjNjLTcuMi03LjItNS45LTE5LjIgMy4xLTIzLjggMjYuMy0xMy42IDU2LjItMjEuMiA4Ny44LTIxLjIgMjguOSAwIDU2LjMgNi40IDgwLjkgMTcuOEwxOTIuNCAyMjYuMyAxMDMgMTM3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxOTkgN3ptMTcgNTAuOWwtNjIuMSA2Mi4xIDcyLjQgNzIuNCA2Mi4xLTYyLjEtNzIuNC03Mi40ek0zOTIgMzU4LjFsNjIuMS02Mi4xLTcyLjQtNzIuNC02Mi4xIDYyLjEgNzIuNCA3Mi40elwiXVxufTtcbnZhciBmYU1hZ25pZnlpbmdHbGFzc01pbnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MtbWludXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNlYXJjaC1taW51c1wiXSwgXCJmMDEwXCIsIFwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMTM2IDE4NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6XCJdXG59O1xudmFyIGZhU2VhcmNoTWludXMgPSBmYU1hZ25pZnlpbmdHbGFzc01pbnVzO1xudmFyIGZhUGVvcGxlR3JvdXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVvcGxlLWdyb3VwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTMzXCIsIFwiTTI1NiAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em05NiAzMTJjMCAyNS0xMi43IDQ3LTMyIDU5LjlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFDMTcyLjcgMzU5IDE2MCAzMzcgMTYwIDMxMmwwLTQwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA0MHpNOTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTE2IDI0MGwwIDMyYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDc1LjNjMCAxLjIgMCAyLjUgLjEgMy43LTguNSA3LjYtMTkuNyAxMi4zLTMyLjEgMTIuM2wtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC01Ni42QzEyLjkgMzY0LjQgMCAzNDMuNyAwIDMyMGwwLTMyYzAtNTMgNDMtOTYgOTYtOTYgMTIuNyAwIDI0LjggMi41IDM1LjkgNi45LTEyLjYgMjEuNC0xOS45IDQ2LjQtMTkuOSA3My4xek0zNjggNDY0bDAtNzUuM2MxOS45LTIyLjUgMzItNTIuMiAzMi04NC43bDAtMzJjMC0yNi43LTcuMy01MS42LTE5LjktNzMuMSAxMS4xLTQuNSAyMy4yLTYuOSAzNS45LTYuOSA1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgNTYuNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMTIuMyAwLTIzLjYtNC42LTMyLjEtMTIuMyAwLTEuMiAuMS0yLjUgLjEtMy43ek00MTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6XCJdXG59O1xudmFyIGZhU3F1YXJlQmluYXJ5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1iaW5hcnknLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU2OWJcIiwgXCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE0NCA0Yy0yNC4zIDAtNDQgMTkuNy00NCA0NGwwIDQ4YzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDMyIDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC00OGMwLTI0LjMtMTkuNy00NC00NC00NGwtMzIgMHptLTQgNDRjMC0yLjIgMS44LTQgNC00bDMyIDBjMi4yIDAgNCAxLjggNCA0bDAgNDhjMCAyLjItMS44IDQtNCA0bC0zMiAwYy0yLjIgMC00LTEuOC00LTRsMC00OHptMTQwLTQ0Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDc2LjRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC05NmMwLTExLTktMjAtMjAtMjBsLTE2IDB6TTEzMiAyOTZjMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDc2LjRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC05NmMwLTExLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHptOTYgMjRsMCA0OGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwzMiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtNDhjMC0yNC4zLTE5LjctNDQtNDQtNDRsLTMyIDBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0em00NC00bDMyIDBjMi4yIDAgNCAxLjggNCA0bDAgNDhjMCAyLjItMS44IDQtNCA0bC0zMiAwYy0yLjIgMC00LTEuOC00LTRsMC00OGMwLTIuMiAxLjgtNCA0LTR6XCJdXG59O1xudmFyIGZhTWFza3NUaGVhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hc2tzLXRoZWF0ZXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjc5MTcsIFwidGhlYXRlci1tYXNrc1wiXSwgXCJmNjMwXCIsIFwiTS01IDExOEwyMy41IDI3OS43YzE0IDc5LjUgNzYuMyAxNDEuOCAxNTUuOCAxNTUuOGwxMi43IDIuMmMtMTYuNS0yOC42LTI3LjEtNjAuNy0zMC42LTk0LjVsLTI0LjEgNC4zYy05LjcgMS43LTE4LjgtNS44LTE2LjktMTUuNSA0LjgtMjQuNyAxOS4xLTQ2LjYgMzkuNy02MC45bDAtNzQuNmMtMS40IC44LTMgMS4zLTQuNyAxLjZsLTYzIDExLjFjLTguNyAxLjUtMTcuMy00LjQtMTUuOS0xMy4xIDMuMS0xOS42IDE4LjQtMzYgMzkuMS0zOS43IDE3LjItMyAzMy45IDMuNSA0NC42IDE1LjhsMC0yMi43YzAtMjIuNSA2LjktNTIuNCAzMi4zLTczLjQgMjYtMjEuNSA2Ny43LTQzLjkgMTI0LjktNTQuMi0zMC41LTE2LjMtODYuMy0zMi0xNjMuOC0xOC40LTgwLjMgMTQuMi0xMjggNTAuMS0xNTAuMSA3Ni4xLTkgMTAuNS0xMC44IDI0LjktOC40IDM4LjV6TTIwOCAxMzguN2wwIDE3NC44YzAgODAuNyA1MC41IDE1Mi45IDEyNi40IDE4MC40TDM2Mi4xIDUwNGMxNC4xIDUuMSAyOS42IDUuMSA0My43IDBMNDMzLjYgNDk0QzUwOS41IDQ2Ni40IDU2MCAzOTQuMyA1NjAgMzEzLjVsMC0xNzQuOGMwLTYuOS0yLjEtMTMuOC03LTE4LjYtMjIuNi0yMi41LTc4LjItNTYtMTY5LTU2cy0xNDYuNCAzMy42LTE2OSA1NmMtNC45IDQuOS03IDExLjctNyAxOC42em02Ni4xIDE4Ny4xYy0xLjQtNyA3LTExIDEyLjctNi42IDI2LjkgMjAuNiA2MC42IDMyLjkgOTcuMiAzMi45czcwLjItMTIuMyA5Ny4yLTMyLjljNS43LTQuNCAxNC4xLS40IDEyLjcgNi42LTEwLjEgNTEuNC01NS41IDkwLjMtMTA5LjkgOTAuM3MtOTkuOC0zOC44LTEwOS45LTkwLjN6bS41LTEwMS41QzI4MS4yIDIwNS41IDI5OSAxOTIgMzIwIDE5MnMzOC45IDEzLjUgNDUuNCAzMi4zYzIuOSA4LjQtNC41IDE1LjctMTMuNCAxNS43bC02NCAwYy04LjggMC0xNi4zLTcuNC0xMy40LTE1Ljd6TTQ4MCAyNDBsLTY0IDBjLTguOCAwLTE2LjMtNy40LTEzLjQtMTUuNyA2LjUtMTguOCAyNC40LTMyLjMgNDUuNC0zMi4zczM4LjkgMTMuNSA0NS40IDMyLjNjMi45IDguNC00LjUgMTUuNy0xMy40IDE1Ljd6XCJdXG59O1xudmFyIGZhVGhlYXRlck1hc2tzID0gZmFNYXNrc1RoZWF0ZXI7XG52YXIgZmFDYXJ0UGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXJ0LXBsdXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyMTdcIiwgXCJNMCA4QzAtNS4zIDEwLjctMTYgMjQtMTZsNDUuMyAwYzI3LjEgMCA1MC4zIDE5LjQgNTUuMSA0NmwuNCAyIDQxMi43IDBjMjAgMCAzNS4xIDE4LjIgMzEuNCAzNy45TDUzNy44IDIzNS44Yy01LjcgMzAuMy0zMi4xIDUyLjItNjIuOSA1Mi4ybC0zMDMuNiAwIDUuMSAyOC4zYzIuMSAxMS40IDEyIDE5LjcgMjMuNiAxOS43TDQ1NiAzMzZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1NS45IDBjLTM0LjggMC02NC42LTI0LjktNzAuOC01OS4xTDc3LjIgMzguNmMtLjctMy44LTQtNi42LTcuOS02LjZMMjQgMzJDMTAuNyAzMiAwIDIxLjMgMCA4ek0xNjAgNDY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTIyNCAwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTMzNiA3OC40Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMzLjYtMzMuNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzLjYgMCAwIDMzLjZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMzLjYgMzMuNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMy42IDAgMC0zMy42YzAtMTMuMy0xMC43LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYUhhbmRzQXNsSW50ZXJwcmV0aW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzLWFzbC1pbnRlcnByZXRpbmcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nXCIsIFwiYXNsLWludGVycHJldGluZ1wiLCBcImhhbmRzLWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nXCJdLCBcImYyYTNcIiwgXCJNMTU2LjYgNDYuM2M3LjktMTUuOCAxLjUtMzUtMTQuMy00Mi45cy0zNS0xLjUtNDIuOSAxNC4zTDEzLjUgMTg5LjRDNC42IDIwNy4yIDAgMjI2LjggMCAyNDYuN0wwIDI1NmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw4MCAwIDAtLjNjMzUuMi0yLjcgNjUuNC0yMi44IDgyLjEtNTEuNyA4LjgtMTUuMyAzLjYtMzQuOS0xMS43LTQzLjdzLTM0LjktMy42LTQzLjcgMTEuN2MtNyAxMi0xOS45IDIwLTM0LjcgMjAtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGMxNC44IDAgMjcuNyA4IDM0LjcgMjAgOC44IDE1LjMgMjguNCAyMC41IDQzLjcgMTEuN3MyMC41LTI4LjQgMTEuNy00My43Yy0xMi44LTIyLjEtMzMuNi0zOS4xLTU4LjQtNDcuMWw4MC44LTIyYzE3LTQuNiAyNy4xLTIyLjIgMjIuNS0zOS4zcy0yMi4yLTI3LjEtMzkuMy0yMi41bC0xMDAuNyAyNy41IDgxLjYtNjhjMTMuNi0xMS4zIDE1LjQtMzEuNSA0LjEtNDUuMVMyNDkuMS0zLjkgMjM1LjUgNy40bC0xMDEuOSA4NC45IDIzLTQ2ek00ODMuNCA0NjUuN2MtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDg1LjktMTcxLjdjOC45LTE3LjggMTMuNS0zNy40IDEzLjUtNTcuMmwwLTkuM2MwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtODAgMCAwIC4zYy0zNS4yIDIuNy02NS40IDIyLjgtODIuMSA1MS43LTguOSAxNS4zLTMuNiAzNC45IDExLjcgNDMuN3MzNC45IDMuNiA0My43LTExLjdjNy0xMiAxOS45LTIwIDM0LjctMjAgMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBjLTE0LjggMC0yNy43LTgtMzQuNy0yMC04LjktMTUuMy0yOC40LTIwLjUtNDMuNy0xMS43cy0yMC41IDI4LjQtMTEuNyA0My43YzEyLjggMjIuMSAzMy42IDM5LjEgNTguNCA0Ny4xbC04MC44IDIyYy0xNy4xIDQuNi0yNy4xIDIyLjItMjIuNSAzOS4zczIyLjIgMjcuMSAzOS4zIDIyLjVsMTAwLjctMjcuNS04MS42IDY4Yy0xMy42IDExLjMtMTUuNCAzMS41LTQuMSA0NS4xczMxLjUgMTUuNCA0NS4xIDQuMWwxMDEuOS04NC45LTIzIDQ2elwiXVxufTtcbnZhciBmYUFtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nID0gZmFIYW5kc0FzbEludGVycHJldGluZztcbnZhciBmYUFzbEludGVycHJldGluZyA9IGZhSGFuZHNBc2xJbnRlcnByZXRpbmc7XG52YXIgZmFIYW5kc0FtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nID0gZmFIYW5kc0FzbEludGVycHJldGluZztcbnZhciBmYVRhYmxlQ2VsbHNSb3dVbmxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGUtY2VsbHMtcm93LXVubG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTY5MVwiLCBcIk0yNTYgMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptMjU2LTc5Yy00Ni43IDUuOC04NS42IDM2LjgtMTAyLjcgNzlsLTI1LjMgMCAwIDkwLjhjLTEwLjEgMTUuMi0xNiAzMy40LTE2IDUzLjFsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDEyOCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDl6TTEyOCAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem00MzIgNDhjLS4xLTE3LjYtMTQuNC0zMS45LTMyLTMxLjktMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MCA0NC4yIDAgNzkuOSAzNS44IDgwIDc5LjlsLTQ4IDB6XCJdXG59O1xudmFyIGZhUm9ja2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvY2tldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjEzNVwiLCBcIk0xMjggMzIwTDI0LjUgMzIwYy0yNC45IDAtNDAuMi0yNy4xLTI3LjQtNDguNUw1MCAxODMuM0M1OC43IDE2OC44IDc0LjMgMTYwIDkxLjIgMTYwbDk1IDBjNzYuMS0xMjguOSAxODkuNi0xMzUuNCAyNjUuNS0xMjQuMyAxMi44IDEuOSAyMi44IDExLjkgMjQuNiAyNC42IDExLjEgNzUuOSA0LjYgMTg5LjQtMTI0LjMgMjY1LjVsMCA5NWMwIDE2LjktOC44IDMyLjUtMjMuMyA0MS4ybC04OC4yIDUyLjljLTIxLjMgMTIuOC00OC41LTIuNi00OC41LTI3LjRMMTkyIDM4NGMwLTM1LjMtMjguNy02NC02NC02NGwtLjEgMHpNNDAwIDE2MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwiXVxufTtcbnZhciBmYVNocmltcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaHJpbXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk0MjRdLCBcImU0NDhcIiwgXCJNNzIgMzJDMzIuMiAzMiAwIDY0LjIgMCAxMDQgMCAxNDEuOSAyOS4zIDE3Mi45IDY2LjQgMTc1LjggNzcuNiAyNTcuMiAxNDcuNCAzMjAgMjMyIDMyMGw1NiAwIDAtMTkyLTIxNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM1OC43IDgwIDcyIDgwbDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDcyIDMyek0yMjQgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDAgMC03Mi4yLTY0LjEtMjIuNGMtMTIuNS00LjQtMjYuMiAyLjItMzAuNiAxNC43czIuMiAyNi4yIDE0LjcgMzAuNmw0LjUgMS42QzIzMyA0MzMuOSAyMjQgNDQzLjkgMjI0IDQ1NnptMTI4IDIzLjNjMzYuNC0zLjMgNjkuNS0xNy42IDk2LjEtMzkuNmwtODYuNS0zNC42Yy0zIDEuOC02LjIgMy4yLTkuNiA0LjNsMCA2OS45ek00NzIuNiA0MTVjMjQuNi0zMC4zIDM5LjQtNjguOSAzOS40LTExMSAwLTEyLjMtMS4zLTI0LjMtMy43LTM1LjlMMzgyLjggMzU1LjFjLjggMy40IDEuMiA3IDEuMiAxMC42IDAgNC42LS43IDktMS45IDEzLjFMNDcyLjYgNDE1ek0zMzYgMTI4bC0xNiAwIDAgMTkyIDE4LjMgMGM5LjkgMCAxOS4xIDMuMiAyNi42IDguNWwxMzMuNS05Mi40QzQ3MS44IDE3Mi42IDQwOS4xIDEyOCAzMzYgMTI4ek0xNjggMTkyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xudmFyIGZhVGVuZ2VTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbmdlLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs4Mzc2LCBcInRlbmdlXCJdLCBcImY3ZDdcIiwgXCJNMCA1NkMwIDQyLjcgMTAuNyAzMiAyNCAzMmwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA4MEMxMC43IDgwIDAgNjkuMyAwIDU2ek0wIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDAgMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNTYtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbnZhciBmYVRlbmdlID0gZmFUZW5nZVNpZ247XG52YXIgZmFIb3VzZUNoaW1uZXlNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWNoaW1uZXktbWVkaWNhbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY2xpbmljLW1lZGljYWxcIl0sIFwiZjdmMlwiLCBcIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjI0IDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG52YXIgZmFDbGluaWNNZWRpY2FsID0gZmFIb3VzZUNoaW1uZXlNZWRpY2FsO1xudmFyIGZhVXNlcnNTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2Vycy1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA3M1wiLCBcIk03My0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMyOS43LS4zIDM5IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMjEuOCAyMjRjNTYuNi0xIDEwMi4yLTQ3LjIgMTAyLjItMTA0IDAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTU2LjggMC0xMDMgNDUuNi0xMDQgMTAyLjJMNzMtMjQuOXpNNTEyIDI4OGMtMTcuMiAwLTMzLjcgMy40LTQ4LjcgOS42bDE3MCAxNzBjNC4yLTUuNCA2LjctMTIuMiA2LjctMTkuNmwwLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4ek01OS45IDk3LjdjLTIxLjUgMTIuNS0zNS45IDM1LjctMzUuOSA2Mi4zIDAgMzkuOCAzMi4yIDcyIDcyIDcyIDI2LjYgMCA0OS44LTE0LjQgNjIuMy0zNS45TDU5LjkgOTcuN3pNMjUwLjIgMjg4QzE5Ni44IDMxMy45IDE2MCAzNjguNyAxNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjUwLjIgMC0xOTItMTkyek0xMjggMjg4QzU3LjMgMjg4IDAgMzQ1LjMgMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjR6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAwelwiXVxufTtcbnZhciBmYVBhcGVyUGxhbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFwZXItcGxhbmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs2MTkxM10sIFwiZjFkOFwiLCBcIk01MzYuNC0yNi4zYzkuOC0zLjUgMjAuNi0xIDI4IDYuM3M5LjggMTguMiA2LjMgMjhsLTE3OCA0OTYuOWMtNSAxMy45LTE4LjEgMjMuMS0zMi44IDIzLjEtMTQuMiAwLTI3LTguNi0zMi4zLTIxLjdsLTY0LjItMTU4Yy00LjUtMTEtMi41LTIzLjYgNS4yLTMyLjZsOTQuNS0xMTIuNGM1LjEtNi4xIDQuNy0xNS0uOS0yMC42cy0xNC42LTYtMjAuNi0uOUwyMjkuMiAyNzYuMWMtOS4xIDcuNi0yMS42IDkuNi0zMi42IDUuMkwzOC4xIDIxNi44Yy0xMy4xLTUuMy0yMS43LTE4LjEtMjEuNy0zMi4zIDAtMTQuNyA5LjItMjcuOCAyMy4xLTMyLjhsNDk2LjktMTc4elwiXVxufTtcbnZhciBmYUJvb2tBdGxhcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rLWF0bGFzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJhdGxhc1wiXSwgXCJmNTU4XCIsIFwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0zMTAuNiAyMDhMMjc5IDIwOGMtMS40IDIzLjEtNiA0NC4yLTEyLjYgNjEuMiAyMi43LTEyLjUgMzkuNC0zNC44IDQ0LjItNjEuMnptLTE3My4xIDBjNC44IDI2LjQgMjEuNSA0OC43IDQ0LjIgNjEuMi02LjctMTctMTEuMi0zOC0xMi42LTYxLjJsLTMxLjYgMHptNzYuNCA1NWM0LjUgOS42IDguMiAxMy44IDEwLjIgMTUuNSAyLTEuNyA1LjctNS44IDEwLjItMTUuNSA2LjItMTMuNCAxMS4xLTMyLjUgMTIuNy01NWwtNDUuOCAwYzEuNiAyMi41IDYuNSA0MS42IDEyLjcgNTV6bS0xMi43LTg3bDQ1LjggMGMtMS42LTIyLjUtNi41LTQxLjYtMTIuNy01NS00LjUtOS42LTguMi0xMy44LTEwLjItMTUuNS0yIDEuNy01LjcgNS44LTEwLjIgMTUuNS02LjIgMTMuNC0xMS4xIDMyLjUtMTIuNyA1NXptMTA5LjUgMGMtNC44LTI2LjQtMjEuNS00OC43LTQ0LjItNjEuMiA2LjcgMTcgMTEuMiAzOCAxMi42IDYxLjJsMzEuNiAwek0xNjkgMTc2YzEuNC0yMy4xIDYtNDQuMiAxMi42LTYxLjItMjIuNyAxMi41LTM5LjQgMzQuOC00NC4yIDYxLjJsMzEuNiAwek05NiAxOTJhMTI4IDEyOCAwIDEgMSAyNTYgMCAxMjggMTI4IDAgMSAxIC0yNTYgMHpcIl1cbn07XG52YXIgZmFBdGxhcyA9IGZhQm9va0F0bGFzO1xudmFyIGZhVGFibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwY2VcIiwgXCJNMjU2IDE2MGwwIDk2IDEyOCAwIDAtOTYtMTI4IDB6bS02NCAwbC0xMjggMCAwIDk2IDEyOCAwIDAtOTZ6TTAgMzIwTDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTk2em0zODQgMGwtMTI4IDAgMCA5NiAxMjggMCAwLTk2ek0xOTIgNDE2bDAtOTYtMTI4IDAgMCA5NiAxMjggMHpcIl1cbn07XG52YXIgZmFIZWFydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE1MywgMTI4MTU0LCAxMjgxNTUsIDEyODE1NiwgMTI4NDIwLCAxMjkyOTMsIDEyOTI5NCwgMTI5NTA1LCA5ODI5LCAxMDA4NCwgNjE1NzhdLCBcImYwMDRcIiwgXCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDExMi4yLTEzOS45IDI0Mi41LTIxMi45IDI5OC4yLTEyLjQgOS40LTI3LjYgMTQuMS00My4xIDE0LjFzLTMwLjgtNC42LTQzLjEtMTQuMUMxMzkuOSA0MTAuMiAwIDI3OS45IDAgMTY3LjdsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6XCJdXG59O1xudmFyIGZhQ2lyY2xlQ2hldnJvblVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1jaGV2cm9uLXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJjaGV2cm9uLWNpcmNsZS11cFwiXSwgXCJmMTM5XCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zNzcgMjcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTg3LTg3LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDIzOSAxNjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMzc3IDI3MXpcIl1cbn07XG52YXIgZmFDaGV2cm9uQ2lyY2xlVXAgPSBmYUNpcmNsZUNoZXZyb25VcDtcbnZhciBmYUJhdHRlcnlIYWxmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhdHRlcnktaGFsZicsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiYmF0dGVyeS0zXCJdLCBcImYyNDJcIiwgXCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTE0NCAwelwiXVxufTtcbnZhciBmYUJhdHRlcnkzID0gZmFCYXR0ZXJ5SGFsZjtcbnZhciBmYUZvbnRBd2Vzb21lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbnQtYXdlc29tZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyNTAxLCA2MjY5NCwgXCJmb250LWF3ZXNvbWUtZmxhZ1wiLCBcImZvbnQtYXdlc29tZS1sb2dvLWZ1bGxcIl0sIFwiZjJiNFwiLCBcIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnpcIl1cbn07XG52YXIgZmFGb250QXdlc29tZUZsYWcgPSBmYUZvbnRBd2Vzb21lO1xudmFyIGZhRm9udEF3ZXNvbWVMb2dvRnVsbCA9IGZhRm9udEF3ZXNvbWU7XG52YXIgZmFIYW5kY3VmZnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZGN1ZmZzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGY4XCIsIFwiTTMyMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJ6TTE5MiA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTE1MiA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEgLjEgMS45IC4yIDIuOS03NC43IDI2LjMtMTI4LjIgOTcuNS0xMjguMiAxODEuMSAwIDEwNiA4NiAxOTIgMTkyIDE5MnMxOTItODYgMTkyLTE5MmMwLTgzLjctNTMuNS0xNTQuOC0xMjguMi0xODEuMSAuMS0uOSAuMi0xLjkgLjItMi45bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6TTY0IDMyMGExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAwem00NDggMGMwIDY2LjktNTEuMyAxMjEuOC0xMTYuNiAxMjcuNS0xNC4zIDIyLjgtMzIuNCA0My4xLTUzLjQgNTkuOSAxMy41IDMgMjcuNiA0LjYgNDIgNC42IDEwNiAwIDE5Mi04NiAxOTItMTkyIDAtODMuNy01My41LTE1NC44LTEyOC4yLTE4MS4xIC4xLS45IC4yLTEuOSAuMi0yLjlsMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTIuMyAwLTIyLjQgOS4yLTIzLjggMjEuMSAzMC4zIDE5LjIgNTYuMSA0NSA3NS4yIDc1LjQgNjUuNCA1LjggMTE2LjYgNjAuNiAxMTYuNiAxMjcuNXpNMzg0IDY0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFIYXRDb3dib3lTaWRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhdC1jb3dib3ktc2lkZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjhjMVwiLCBcIk02NDAgMzg4LjNjMCAxNi45LTcuMSAzMi4yLTE4LjQgNDMuMWwtMzUtMjMuMy0yOTIuNy0xOTUuMWMtMzYuMS0yNC4xLTc4LjYtMzYuOS0xMjItMzYuOWwtMy45IDBjLTIuNyAwLTUuNCAwLTggLjFsMjIuMi0xMDBjNS43LTI1LjggMjguNi00NC4xIDU1LTQ0LjEgMTIuMiAwIDI0LjEgNCAzMy44IDExLjNsNC43IDMuNWMyNi4zIDE5LjcgNjIuNCAxOS43IDg4LjYgMGw0LjctMy41YzkuOC03LjMgMjEuNi0xMS4zIDMzLjgtMTEuMyAyNi40IDAgNDkuMyAxOC4zIDU1IDQ0LjFsMzMgMTQ4LjVDNTc0LjUgMjMyLjMgNjQwIDMwMi42IDY0MCAzODguM3pNMTcxLjkgMjI0YzMzLjkgMCA2Ny4xIDEwIDk1LjQgMjguOUw1NjAgNDQ4IDU2IDQ0OGMtMzAuOSAwLTU2LTI1LjEtNTYtNTYgMC05Mi44IDc1LjItMTY4IDE2OC0xNjhsMy45IDB6XCJdXG59O1xudmFyIGZhSW5kdXN0cnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW5kdXN0cnknLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyNzVcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTI3OS44YzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xbC0xNTYuNiA4NC4zIDAtNjMuMmMwLTE4LjItMTkuNC0yOS43LTM1LjQtMjEuMUwxMjggMjE1LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyelwiXVxufTtcbnZhciBmYUxpbmVzTGVhbmluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsaW5lcy1sZWFuaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlNTFlXCIsIFwiTTE5MC40IDc0LjFjNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJsLTEyOCAzODRjLTUuNiAxNi44IDMuNSAzNC45IDIwLjIgNDAuNXMzNC45LTMuNSA0MC41LTIwLjJsMTI4LTM4NHptNzAuOS00MS43Yy0xNy40LTIuOS0zMy45IDguOS0zNi44IDI2LjNsLTY0IDM4NGMtMi45IDE3LjQgOC45IDMzLjkgMjYuMyAzNi44czMzLjktOC45IDM2LjgtMjYuM2w2NC0zODRjMi45LTE3LjQtOC45LTMzLjktMjYuMy0zNi44ek0zNTIgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJdXG59O1xudmFyIGZhUGFzc3BvcnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFzc3BvcnQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY1YWJcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek05NiA0MDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMjc4LjYgMjA4Yy00LjggMjYuNC0yMS41IDQ4LjctNDQuMiA2MS4yIDYuNy0xNyAxMS4yLTM4IDEyLjYtNjEuMmwzMS42IDB6bS0xNzMuMSAwbDMxLjYgMGMxLjQgMjMuMSA2IDQ0LjIgMTIuNiA2MS4yLTIyLjctMTIuNS0zOS40LTM0LjgtNDQuMi02MS4yem03Ni40IDU1Yy02LjItMTMuNC0xMS4xLTMyLjUtMTIuNy01NWw0NS44IDBjLTEuNiAyMi41LTYuNSA0MS42LTEyLjcgNTUtNC41IDkuNi04LjIgMTMuOC0xMC4yIDE1LjUtMi0xLjctNS43LTUuOC0xMC4yLTE1LjV6bTAtMTQyYzQuNS05LjYgOC4yLTEzLjggMTAuMi0xNS41IDIgMS43IDUuNyA1LjggMTAuMiAxNS41IDYuMiAxMy40IDExLjEgMzIuNSAxMi43IDU1bC00NS44IDBjMS42LTIyLjUgNi41LTQxLjYgMTIuNy01NXptOTYuNyA1NUwyNDcgMTc2Yy0xLjQtMjMuMS02LTQ0LjItMTIuNi02MS4yIDIyLjcgMTIuNSAzOS40IDM0LjggNDQuMiA2MS4yek0xMzcgMTc2bC0zMS42IDBjNC44LTI2LjQgMjEuNS00OC43IDQ0LjItNjEuMi02LjcgMTctMTEuMiAzOC0xMi42IDYxLjJ6bTE4MyAxNmExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAwelwiXVxufTtcbnZhciBmYUluZmluaXR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2luZmluaXR5JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbODczNCwgOTg1NF0sIFwiZjUzNFwiLCBcIk0wIDI1NmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCA1MC40IDAgOTcuOCAyMy43IDEyOCA2NGwzMiA0Mi43IDMyLTQyLjdjMzAuMi00MC4zIDc3LjYtNjQgMTI4LTY0IDg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwUzU2OC40IDQxNiA0ODAgNDE2Yy01MC40IDAtOTcuOC0yMy43LTEyOC02NGwtMzItNDIuNy0zMiA0Mi43Yy0zMC4yIDQwLjMtNzcuNiA2NC0xMjggNjQtODguNCAwLTE2MC03MS42LTE2MC0xNjB6bTI4MCAwbC00My4yLTU3LjZjLTE4LjEtMjQuMi00Ni42LTM4LjQtNzYuOC0zOC40LTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjMzAuMiAwIDU4LjctMTQuMiA3Ni44LTM4LjRMMjgwIDI1NnptODAgMGw0My4yIDU3LjZjMTguMSAyNC4yIDQ2LjYgMzguNCA3Ni44IDM4LjQgNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTMwLjIgMC01OC43IDE0LjItNzYuOCAzOC40TDM2MCAyNTZ6XCJdXG59O1xudmFyIGZhQ2xvbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvbmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyNGRcIiwgXCJNMjg4IDQ0OGwtMjI0IDAgMC0yMjQgNDggMCAwLTY0LTQ4IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDgtNjQgMCAwIDQ4em0tNjQtOTZsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0elwiXVxufTtcbnZhciBmYUZvcndhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9yd2FyZCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzkxOTNdLCBcImYwNGVcIiwgXCJNMzcxLjcgNDMuMUMzNjAuMSAzMiAzNDMgMjguOSAzMjguMyAzNS4yUzMwNCA1NiAzMDQgNzJsMCAxMzYuMy0xNzIuMy0xNjUuMUMxMjAuMSAzMiAxMDMgMjguOSA4OC4zIDM1LjJTNjQgNTYgNjQgNzJsMCAzNjhjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlMMzA0IDMwMy43IDMwNCA0NDBjMCAxNiA5LjYgMzAuNSAyNC4zIDM2LjhzMzEuOCAzLjIgNDMuNC03LjlsMTkyLTE4NGM3LjktNy41IDEyLjMtMTggMTIuMy0yOC45cy00LjUtMjEuMy0xMi4zLTI4LjlsLTE5Mi0xODR6XCJdXG59O1xudmFyIGZhTSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTA5XSwgXCI0ZFwiLCBcIk0yMi43IDMzLjRjMTMuNS00LjEgMjguMSAxLjEgMzUuOSAxMi45TDIyNCAyOTQuMyAzODkuNCA0Ni4zYzcuOC0xMS43IDIyLjQtMTcgMzUuOS0xMi45UzQ0OCA0OS45IDQ0OCA2NGwwIDM4NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3OC4zLTEzMy40IDIwMC4xYy01LjkgOC45LTE1LjkgMTQuMi0yNi42IDE0LjJzLTIwLjctNS4zLTI2LjYtMTQuMkw2NCAxNjkuNyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDkuOSA5LjIgMzcuNSAyMi43IDMzLjR6XCJdXG59O1xudmFyIGZhUm9hZFNwaWtlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb2FkLXNwaWtlcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2OFwiLCBcIk02NCAxMTYuOGMwLTE1LjggMjAuNS0yMiAyOS4zLTguOWw5OC43IDE0OCAwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45bDk4LjcgMTQ4IDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlsOTguNyAxNDggMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUw2MDYuOCAzMDIuMmMxNC4yIDIxLjMtMS4xIDQ5LjgtMjYuNiA0OS44TDY0IDM1MiA2NCAxMTYuOHpNMzIgMzg0bDU3NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG52YXIgZmFNb3VudGFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3VudGFpbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzk1Nl0sIFwiZjZmY1wiLCBcIk0yNTYuNSAwYzE0LjcgMCAyOC4yIDguMSAzNS4yIDIxbDIxNiA0MDBjNi43IDEyLjQgNi40IDI3LjQtLjggMzkuNS03LjIgMTIuMS0yMC4zIDE5LjUtMzQuMyAxOS41bC00MzIgMGMtMTQuMSAwLTI3LjEtNy40LTM0LjMtMTkuNXMtNy41LTI3LjEtLjgtMzkuNWwyMTYtNDAwIDIuOS00LjZDMjMxLjcgNi4yIDI0My42IDAgMjU2LjUgMHpNMTcwLjQgMjQ5LjlsMjYuOCAyNi44YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDQzLjMtNDMuM2M2LTYgMTQuMS05LjQgMjIuNi05LjRsNDIuOCAwLTcyLjEtMTMzLjUtODYuMSAxNTkuNHpcIl1cbn07XG52YXIgZmFDaGVzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQzOVwiLCBcIk0xNjggNTZsMCA0MC03OC4xIDBjLTE0LjMgMC0yNS45IDExLjYtMjUuOSAyNS45IDAgNCAuOSA4IDIuNyAxMS42bDMzLjQgNjYuOGMtMTEuNCAxLjgtMjAuMiAxMS43LTIwLjIgMjMuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNGw1LjYgMC0xMy42IDEzNi01Ni4yIDcwLjNjLTUgNi4zLTcuOCAxNC4xLTcuOCAyMi4yIDAgMTkuNiAxNS45IDM1LjUgMzUuNSAzNS41bDI0OC45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJMMjg4IDM4NCAyNzQuNCAyNDggMjgwIDI0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNCAwLTExLjktOC43LTIxLjktMjAuMi0yMy43bDMzLjQtNjYuOGMxLjgtMy42IDIuNy03LjYgMi43LTExLjYgMC0xNC4zLTExLjYtMjUuOS0yNS45LTI1LjlsLTc4LjEgMCAwLTQwIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMjQ1LjMgOCAyMzIgOGwtMTYgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzE2OC0yMS4zIDE2OC04bDAgMTYtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNiAwek0zMjUuOCAyNzkuNmw4LjUgODUuNSA0Ny40IDU5LjIgNC4yIDUuN2M5LjIgMTMuNyAxNC4xIDI5LjkgMTQuMSA0Ni41IDAgMTIuNy0yLjggMjQuOC03LjkgMzUuNWw4My4xIDBjMjAuMyAwIDM2LjgtMTYuNSAzNi44LTM2LjggMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRsLTI1LjgtMzguNyAwLTY0IDEzLjMtMTMuM2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiAxOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNi0zMiAwIDAtMTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDIyLjQtMTAuMiA0Mi40LTI2LjIgNTUuNnpcIl1cbn07XG52YXIgZmFUZW1wZXJhdHVyZVRocmVlUXVhcnRlcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVtcGVyYXR1cmUtdGhyZWUtcXVhcnRlcnMnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcInRlbXBlcmF0dXJlLTNcIiwgXCJ0aGVybW9tZXRlci0zXCIsIFwidGhlcm1vbWV0ZXItdGhyZWUtcXVhcnRlcnNcIl0sIFwiZjJjOFwiLCBcIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNMMTM2IDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTU2LjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zelwiXVxufTtcbnZhciBmYVRlbXBlcmF0dXJlMyA9IGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzO1xudmFyIGZhVGhlcm1vbWV0ZXIzID0gZmFUZW1wZXJhdHVyZVRocmVlUXVhcnRlcnM7XG52YXIgZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnMgPSBmYVRlbXBlcmF0dXJlVGhyZWVRdWFydGVycztcbnZhciBmYUIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYicsXG4gIGljb246IFszMjAsIDUxMiwgWzk4XSwgXCI0MlwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDYuNS0yNC44LTg3LjMtNjItMTA5LjcgMTguNy0yMi4zIDMwLTUxIDMwLTgyLjMgMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTE2MCAyMjRsLTk2IDAgMC0xMjggOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NHpNNjQgMjg4bDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC0xMjggMCAwLTEyOHpcIl1cbn07XG52YXIgZmFTaGllbGRWaXJ1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaGllbGQtdmlydXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUwNmNcIiwgXCJNMjUzLjQgMi45QzI0OS4yIDEgMjQ0LjcgMCAyNDAgMHMtOS4yIDEtMTMuNCAyLjlMMzguMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNTMuNCAyLjl6TTI0MCAxMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0ek0yMDggMjY0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODggNDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIl1cbn07XG52YXIgZmFMaXRlY29pblNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGl0ZWNvaW4tc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTFkM1wiLCBcIk0xMjggNjRjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgNDYuMyA2NCA2NGwwIDE1Ny45LTM4LjYgMTFjLTEyLjcgMy42LTIwLjEgMTYuOS0xNi41IDI5LjdzMTYuOSAyMC4xIDI5LjcgMTYuNUw2NCAyNzEuOCA2NCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwIDAtMTYyLjUgMTM0LjYtMzguNWMxMi43LTMuNiAyMC4xLTE2LjkgMTYuNS0yOS43cy0xNi45LTIwLjEtMjkuNy0xNi41TDEyOCAyMDMuNiAxMjggNjR6XCJdXG59O1xudmFyIGZhRGljZUQ2ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpY2UtZDYnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2ZDFcIiwgXCJNMjI0LjQgOC4zQzI0NC0yLjggMjY4LTIuOCAyODcuNiA4LjNsMTc2IDk5LjdjMjAgMTEuNCAzMi40IDMyLjYgMzIuNCA1NS43bDAgMTk3LjRjMCAyMy0xMi40IDQ0LjMtMzIuNCA1NS43bC0xNzYgOTkuN2MtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBsLTE3Ni05OS43QzI4LjQgNDA1LjUgMTYgMzg0LjIgMTYgMzYxLjJsMC0xOTcuNGMwLTIzIDEyLjQtNDQuMyAzMi40LTU1LjdsMTc2LTk5Ljd6TTEwMi42IDE1NS42Yy04LjgtMy4xLTE4LjggLjMtMjMuOCA4LjZzLTMuMiAxOC43IDMuNiAyNWwzLjIgMi40IDE1MC4yIDkwLjIgMCAxNDguN2MwIDExIDkgMjAgMjAgMjAgMTEgMCAyMC05IDIwLTIwbDAtMTQ4LjcgMTUwLjMtOTAuMmM5LjUtNS43IDEyLjYtMTggNi45LTI3LjRzLTE4LTEyLjUtMjcuNC02LjlsLTE0OS43IDg5LjgtMTQ5LjctODkuOC0zLjctMS43elwiXVxufTtcbnZhciBmYUdyaXBMaW5lc1ZlcnRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaXAtbGluZXMtdmVydGljYWwnLFxuICBpY29uOiBbMTkyLCA1MTIsIFtdLCBcImY3YTVcIiwgXCJNNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCA2NHptMTI4IDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NHpcIl1cbn07XG52YXIgZmFHb2xmQmFsbFRlZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnb2xmLWJhbGwtdGVlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJnb2xmLWJhbGxcIl0sIFwiZjQ1MFwiLCBcIk0yOTguNSAzODQuMWMxMi4xIDEuMiAyMS41IDExLjUgMjEuNSAyMy45cy05LjQgMjIuNi0yMS41IDIzLjlsLTIuNSAuMS04MCAwIDAgODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04OC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEyLjQgOS40LTIyLjYgMjEuNS0yMy45bDIuNS0uMSAyMDggMCAyLjUgLjF6TTE5MiAwYzEwNiAwIDE5MiA4NiAxOTIgMTkyIDAgNTcuNC0yNS4yIDEwOC44LTY1LjEgMTQ0TDY1LjEgMzM2QzI1LjIgMzAwLjggMCAyNDkuNCAwIDE5MiAwIDg2IDg2IDAgMTkyIDB6bTMyIDI0MGMtNy43IDAtMTQuMiA1LjUtMTUuNyAxMi44bC0uNiA2LjRjLTEuMyA2LjMtNi4yIDExLjItMTIuNSAxMi41bC02LjQgLjZjLTcuMyAxLjUtMTIuOCA4LTEyLjggMTUuNyAwIDguOCA3LjIgMTYgMTYgMTYgMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2em02NC02NGMtNy43IDAtMTQuMiA1LjUtMTUuNyAxMi44bC0uNiA2LjRjLTEuMyA2LjMtNi4yIDExLjItMTIuNSAxMi41bC02LjQgLjZjLTcuMyAxLjUtMTIuOCA4LTEyLjggMTUuNyAwIDguOCA3LjIgMTYgMTYgMTYgMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2em0tODAtMTZjLTcuNyAwLTE0LjIgNS41LTE1LjcgMTIuOGwtLjYgNi40Yy0xLjMgNi4zLTYuMiAxMS4yLTEyLjUgMTIuNWwtNi40IC42Yy03LjMgMS41LTEyLjggOC0xMi44IDE1LjcgMCA4LjggNy4yIDE2IDE2IDE2IDI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFHb2xmQmFsbCA9IGZhR29sZkJhbGxUZWU7XG52YXIgZmFIZXhhZ29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hleGFnb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMTA0M10sIFwiZjMxMlwiLCBcIk0zMy41IDIyMC4zYy0xMi43IDIyLjItMTIuNyA0OS40IDAgNzEuNWw5Ni4yIDE2OC4xYzEyLjggMjIuNCAzNi43IDM2LjIgNjIuNSAzNi4ybDE5MS42IDBjMjUuOCAwIDQ5LjctMTMuOCA2Mi41LTM2LjJsOTYuMi0xNjguMWMxMi43LTIyLjIgMTIuNy00OS40IDAtNzEuNUw0NDYuMyA1Mi4yQzQzMy41IDI5LjggNDA5LjYgMTYgMzgzLjggMTZMMTkyLjIgMTZjLTI1LjggMC00OS43IDEzLjgtNjIuNSAzNi4yTDMzLjUgMjIwLjN6XCJdXG59O1xudmFyIGZhRm9sZGVyT3BlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmb2xkZXItb3BlbicsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODE5NCwgMTI4NDQ5LCA2MTcxN10sIFwiZjA3Y1wiLCBcIk01NiAyMjUuNkwzMi40IDI5Ni4yIDMyLjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40bDExNy4zIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNi0zNjUuNCAwYy00MS4zIDAtNzggMjYuNC05MS4xIDY1LjZ6TTQ3Ny44IDQ0OEw5OSA0NDhjLTMyLjggMC01NS45LTMyLjEtNDUuNS02My4ybDQ4LTE0NEMxMDggMjIxLjIgMTI2LjQgMjA4IDE0NyAyMDhsMzc4LjggMGMzMi44IDAgNTUuOSAzMi4xIDQ1LjUgNjMuMmwtNDggMTQ0Yy02LjUgMTkuNi0yNC45IDMyLjgtNDUuNSAzMi44elwiXVxufTtcbnZhciBmYUthYWJhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2thYWJhJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MzMxXSwgXCJmNjZiXCIsIFwiTTI1NiA1MS4zTDkyLjggMTEyLjQgMjQ3LjUgMTcxLjFjNS41IDIuMSAxMS41IDIuMSAxNyAwTDQxOS4yIDExMi40IDI1NiA1MS4zek0wIDEyOS4zYzAtMjAgMTIuNC0zNy45IDMxLjEtNDQuOWwyMDgtNzhjMTAuOS00LjEgMjIuOC00LjEgMzMuNyAwbDIwOCA3OGMxOC43IDcgMzEuMSAyNC45IDMxLjEgNDQuOWwwIDM2LTI1My4yIDk2Yy0xLjggLjctMy44IC43LTUuNyAwbC0yNTMuMi05NiAwLTM2em0wIDE0MGwwLTUyLjcgMjM2LjEgODkuNmMxMi44IDQuOSAyNi45IDQuOSAzOS43IDBsMjM2LjEtODkuNiAwIDUyLjctMTI4IDQ4LjYgMCA1MS4zIDEyOC00OC42IDAgNjIuMmMwIDIwLTEyLjQgMzcuOS0zMS4xIDQ0LjlsLTIwOCA3OGMtMTAuOSA0LjEtMjIuOCA0LjEtMzMuNyAwbC0yMDgtNzhDMTIuNCA0MjAuNyAwIDQwMi43IDAgMzgyLjdsMC02Mi4yIDEyOCA0OC42IDAtNTEuMy0xMjgtNDguNnpNMjM2LjEgNDEwLjFjMTIuOCA0LjkgMjYuOSA0LjkgMzkuNyAwbDYwLjEtMjIuOCAwLTUxLjMtNzcuMiAyOS4zYy0xLjggLjctMy44IC43LTUuNyAwbC03Ny4yLTI5LjMgMCA1MS4zIDYwLjEgMjIuOHpcIl1cbn07XG52YXIgZmFIYW5kSG9sZGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0YmRcIiwgXCJNNjYuNyAzODRsNDIuNS00Mi41YzI0LTI0IDU2LjYtMzcuNSA5MC41LTM3LjVMMzUyIDMwNGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41czkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzQuNyAwelwiXVxufTtcbnZhciBmYVNpbmdsZVF1b3RlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2luZ2xlLXF1b3RlLXJpZ2h0JyxcbiAgaWNvbjogWzE5MiwgNTEyLCBbXSwgXCJlODFjXCIsIFwiTTY0IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAwelwiXVxufTtcbnZhciBmYUJvdHRsZURyb3BsZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm90dGxlLWRyb3BsZXQnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImU0YzRcIiwgXCJNODAgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTAzLjNjNjQuOSAyMC40IDExMiA4MSAxMTIgMTUyLjdsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTcxLjYgNDcuMS0xMzIuMyAxMTItMTUyLjdMMTEyIDMyQzk0LjMgMzIgODAgMTcuNyA4MCAwem04MCA0MTZjMzUuMyAwIDY0LTMyLjQgNjQtNjQgMC0yMS4yLTI4LjktNjQuNS00Ny45LTkwLjYtOC4xLTExLjEtMjQuMi0xMS4xLTMyLjMgMC0xOSAyNi4xLTQ3LjkgNjkuNC00Ny45IDkwLjYgMCAzMS42IDI4LjcgNjQgNjQgNjR6XCJdXG59O1xudmFyIGZhV2luZG93TWluaW1pemUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2luZG93LW1pbmltaXplJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NDY5XSwgXCJmMmQxXCIsIFwiTTAgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xudmFyIGZhQ2hldnJvblJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXZyb24tcmlnaHQnLFxuICBpY29uOiBbMzIwLCA1MTIsIFs5MDAyXSwgXCJmMDU0XCIsIFwiTTMxMS4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDMuMiAyNTYgNzMuOSA4Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJ6XCJdXG59O1xudmFyIGZhRWdnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VnZycsXG4gIGljb246IFszODQsIDUxMiwgWzEyOTM3MF0sIFwiZjdmYlwiLCBcIk0xOTIgNDk2Qzg2IDQ5NiAwIDM5NCAwIDI4OCAwIDE3NiA2NCAxNiAxOTIgMTZTMzg0IDE3NiAzODQgMjg4YzAgMTA2LTg2IDIwOC0xOTIgMjA4ek0xNTQuOCAxMzRjNi41LTYgNy0xNi4xIDEtMjIuNnMtMTYuMS03LTIyLjYtMWMtMjMuOSAyMS44LTQxLjEgNTIuNy01Mi4zIDg0LjItMTEuMiAzMS42LTE2LjkgNjUuMS0xNi45IDkzLjUgMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmMwLTI0LjUgNS01NC40IDE1LjEtODIuOCAxMC4xLTI4LjUgMjUtNTQuMSA0My43LTcxLjJ6XCJdXG59O1xudmFyIGZhTGFuZG1hcmtEb21lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xhbmRtYXJrLWRvbWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxhbmRtYXJrLWFsdFwiXSwgXCJmNzUyXCIsIFwiTTI1NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIC45IDAgMS44IC4xIDIuNi04MC41IDEzLjQtMTQ0IDc2LjktMTU3LjUgMTU3LjRMNjQgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgMTYwLTUxLjIgMzguNEM0LjcgNDYwLjQgMCA0NjkuOSAwIDQ4MCAwIDQ5Ny43IDE0LjMgNTEyIDMyIDUxMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDQ0OCA0MTYgNDQ4IDI1NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMi43IDBjLTEzLjUtODAuNC03Ny0xNDMuOS0xNTcuNS0xNTcuNCAuMS0uOSAuMS0xLjcgLjEtMi42IDAtMTcuNy0xNC4zLTMyLTMyLTMyem04MCAyNTZsNjQgMCAwIDE2MC02NCAwIDAtMTYwek0yMjQgNDE2bDAtMTYwIDY0IDAgMCAxNjAtNjQgMHpNMTEyIDI1Nmw2NCAwIDAgMTYwLTY0IDAgMC0xNjB6XCJdXG59O1xudmFyIGZhTGFuZG1hcmtBbHQgPSBmYUxhbmRtYXJrRG9tZTtcbnZhciBmYVdvcm0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd29ybScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTU5OVwiLCBcIk0yMjQgOTZjMC01MyA0My05NiA5Ni05NmwzOC40IDBDNDA3LjkgMCA0NDggNDAuMSA0NDggODkuNkw0NDggMzc2YzAgNzUuMS02MC45IDEzNi0xMzYgMTM2UzE3NiA0NTEuMSAxNzYgMzc2bDAtODBjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBsMCAxNjhjMCAyNi41LTIxLjUgNDgtNDggNDhTMCA0OTAuNSAwIDQ2NEwwIDI5NmMwLTc1LjEgNjAuOS0xMzYgMTM2LTEzNnMxMzYgNjAuOSAxMzYgMTM2bDAgODBjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTE4NC0zMiAwYy01MyAwLTk2LTQzLTk2LTk2em0xNDQtOGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwelwiXVxufTtcbnZhciBmYVVzZXJJbmp1cmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItaW5qdXJlZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjcyOFwiLCBcIk0yNDIuNyA4MEwzMzQgODBjLTEwLjctMjQuNi0yOS41LTQ0LjktNTIuOS01Ny42TDI0Mi43IDgwem0tLjktNzAuN0MyMzYgOC40IDIzMCA4IDIyNCA4IDE3NC44IDggMTMyLjUgMzcuNiAxMTQgODBsODAuNiAwIDQ3LjEtNzAuN3pNMjI0IDI0OGM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwtMjQwIDBjMCA2Ni4zIDUzLjcgMTIwIDEyMCAxMjB6TTk4LjcgMzQxLjhDNDkuMyAzNzAuMiAxNiA0MjMuNSAxNiA0ODQuNiAxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmwxNTEgMC05NS44LTE3MC4yem00NS4xLTE3LjdsNDIuNyA3NS45IDg1LjUgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDExLjQtMi40IDIyLjItNi43IDMybDU5LjIgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTkwLjktNzMuNy0xNjQuNi0xNjQuNi0xNjQuNmwtODYuOSAwYy0xMi42IDAtMjQuOSAxLjQtMzYuNyA0LjF6TTIxMy41IDQ0OGwzNiA2NCAyMi41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTU4LjUgMHpcIl1cbn07XG52YXIgZmFTdHJpa2V0aHJvdWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0cmlrZXRocm91Z2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwY2NcIiwgXCJNOTYgMTU3LjVDOTYgODguMiAxNTIuMiAzMiAyMjEuNSAzMkwzNjggMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMjIxLjUgOTZjLTM0IDAtNjEuNSAyNy41LTYxLjUgNjEuNSAwIDMxIDIzLjEgNTcuMiA1My45IDYxbDQ0LjEgNS41IDIyMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4My4xIDBDMTAzIDIwNC42IDk2IDE4MS44IDk2IDE1Ny41ek0zNDkuMiAzMzZsNjUuNSAwYy45IDYuMSAxLjQgMTIuMiAxLjQgMTguNSAwIDY5LjMtNTYuMiAxMjUuNS0xMjUuNSAxMjUuNUwxNDQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE0Ni41IDBjMzQgMCA2MS41LTI3LjUgNjEuNS02MS41IDAtNi40LTEtMTIuNy0yLjgtMTguNXpcIl1cbn07XG52YXIgZmFCbG9nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jsb2cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3ODFcIiwgXCJNMjI0IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0IDE0NS44IDAgMjY0IDExOC4yIDI2NCAyNjQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTkuMy05Ni43LTIxNi0yMTYtMjE2LTEzLjMgMC0yNC0xMC43LTI0LTI0ek04MCA5NmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNiA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NFMyNTUuNSA1MTIgMTc2IDUxMiAzMiA0NDcuNSAzMiAzNjhsMC0yMjRjMC0yNi41IDIxLjUtNDggNDgtNDh6bTE2OCAwYzkyLjggMCAxNjggNzUuMiAxNjggMTY4IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNjYuMy01My43LTEyMC0xMjAtMTIwLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhU3RvcHdhdGNoMjAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RvcHdhdGNoLTIwJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMDZmXCIsIFwiTTE2OC41IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDI1LjNjLTEwOCAxMS45LTE5MiAxMDMuNS0xOTIgMjE0LjcgMCAxMTkuMyA5Ni43IDIxNiAyMTYgMjE2czIxNi05Ni43IDIxNi0yMTZjMC0zOS44LTEwLjgtNzcuMS0yOS42LTEwOS4ybDI4LjItMjguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMjMuNCAyMy40Yy0zMi45LTMwLjItNzUuMi01MC4zLTEyMi01NS41bDAtMjUuMyAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptLTYwIDI0MGMwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUybDAgMy44YzAgMTEuNy0zLjIgMjMuMS05LjMgMzNsLTQzLjggNzEuMiAzMy4xIDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC01Ny44IDBjLTE0LjUgMC0yNi4yLTExLjctMjYuMi0yNi4yIDAtNC45IDEuMy05LjYgMy45LTEzLjhsNTYuNy05Mi4xYzIuMi0zLjYgMy40LTcuOCAzLjQtMTIuMWwwLTMuOGMwLTYuNi01LjQtMTItMTItMTJzLTEyIDUuNC0xMiAxMmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjB6bTE4MC01MmMyOC43IDAgNTIgMjMuMyA1MiA1MmwwIDk2YzAgMjguNy0yMy4zIDUyLTUyIDUycy01Mi0yMy4zLTUyLTUybDAtOTZjMC0yOC43IDIzLjMtNTIgNTItNTJ6bS0xMiA1MmwwIDk2YzAgNi42IDUuNCAxMiAxMiAxMnMxMi01LjQgMTItMTJsMC05NmMwLTYuNi01LjQtMTItMTItMTJzLTEyIDUuNC0xMiAxMnpcIl1cbn07XG52YXIgZmFUcnVja1BpY2t1cCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1waWNrdXAnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjg3NjNdLCBcImY2M2NcIiwgXCJNMzYzLjggOTZsNTcuNiA5Ni0xMzMuNCAwIDAtOTYgNzUuOCAwek00OTYgMTkyTDQxOC42IDYzLjFDNDA3LjEgNDMuOCAzODYuMiAzMiAzNjMuOCAzMkwyNTYgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4LTE0NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyLjQgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsMTYwLjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsMzIuNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTExMiAzOTJhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHptMzc2LTQwYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHpcIl1cbn07XG52YXIgZmFTZWVkbGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzZWVkbGluZycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzc5MywgXCJzcHJvdXRcIl0sIFwiZjRkOFwiLCBcIk01MTIgMzJDNTEyIDE0MC4xIDQzNS40IDIzMC4zIDMzMy42IDI1MS40IDMyNS43IDE5My4zIDI5OS42IDE0MSAyNjEuMSAxMDAuNSAzMDEuMiA0MCAzNjkuOSAwIDQ0OCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzIgMGMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0bDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwQzEwMC4zIDMyMCAwIDIxOS43IDAgOTZ6XCJdXG59O1xudmFyIGZhU3Byb3V0ID0gZmFTZWVkbGluZztcbnZhciBmYVRyYW5zZ2VuZGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYW5zZ2VuZGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbOTg5NSwgXCJ0cmFuc2dlbmRlci1hbHRcIl0sIFwiZjIyNVwiLCBcIk0xMjgtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMOTcuOSAzMiAxMzYgNzAuMSAxNTEgNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0xNSAxNSAxNC4yIDE0LjJjMjcuOS0yMy44IDY0LjItMzguMiAxMDMuOC0zOC4yIDM2LjcgMCA3MC42IDEyLjQgOTcuNiAzMy4yTDQ2Ni43IDMyIDQ0OCAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC43LTg0LjQgODQuNGMxMyAyMy4xIDIwLjQgNDkuOSAyMC40IDc4LjMgMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAzNS4yIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTM1LjJjLTczLTE0LjgtMTI4LTc5LjQtMTI4LTE1Ni44IDAtMzEuNCA5LTYwLjcgMjQuNy04NS40bC0xNi43LTE2LjctMTUgMTVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTUtMTUtMzguMS0zOC4xIDAgMzAuMWMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDExMy43IDAgOTZMMCAwQzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDB6TTI4OCAzMzZhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6XCJdXG59O1xudmFyIGZhVHJhbnNnZW5kZXJBbHQgPSBmYVRyYW5zZ2VuZGVyO1xudmFyIGZhU3RhckhhbGYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1oYWxmJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbNjE3MzFdLCBcImYwODlcIiwgXCJNMzA0LjEgNy42YzAtMTEuMS03LjYtMjAuNy0xOC40LTIzLjNzLTIxLjkgMi41LTI3IDEyLjRMMTkzLjEgMTI1LjMgMzMuMiAxNTAuN2MtOC45IDEuNC0xNi4zIDcuNy0xOS4xIDE2LjNzLS41IDE4IDUuOCAyNC40bDExNC40IDExNC41LTI1LjIgMTU5LjljLTEuNCA4LjkgMi4zIDE3LjkgOS42IDIzLjJzMTYuOSA2LjEgMjUgMkwyOTEgNDE2LjFjOC00LjEgMTMuMS0xMi40IDEzLjEtMjEuNGwwLTM4Ny4xelwiXVxufTtcbnZhciBmYVBob3RvRmlsbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaG90by1maWxtJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJwaG90by12aWRlb1wiXSwgXCJmODdjXCIsIFwiTTE5MiA2NGMwLTM1LjMgMjguNy02NCA2NC02NEw1NzYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzIwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjI0ek0zMjAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTU2LjUgMTEuNUM0NzIuMSAxMDAuNCA0NjQuNCA5NiA0NTYgOTZzLTE2LjEgNC40LTIwLjUgMTEuNWwtNTQgODguMy0xNy45LTI1LjZjLTQuNS02LjQtMTEuOC0xMC4yLTE5LjctMTAuMnMtMTUuMiAzLjgtMTkuNyAxMC4ybC01NiA4MGMtNS4xIDcuMy01LjggMTYuOS0xLjYgMjQuOFMyNzkuMSAyODggMjg4IDI4OGwyNTYgMGM4LjcgMCAxNi43LTQuNyAyMC45LTEyLjNzNC4xLTE2LjgtLjUtMjQuM2wtODgtMTQ0ek0xNDQgMTI4bDAgMTYwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEybDE5MiAwIDAgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw4MCAwek01MiAxOTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMHptMCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAwelwiXVxufTtcbnZhciBmYVBob3RvVmlkZW8gPSBmYVBob3RvRmlsbTtcbnZhciBmYVB1bXBNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3B1bXAtbWVkaWNhbCcsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZTA2YVwiLCBcIk05NiAwbDAgODAgMTI4IDAgMC0yNCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzMwOS4zIDggMjk2IDhsLTcyIDAgMC04YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwQzExMC4zLTMyIDk2LTE3LjcgOTYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTY0IDEyMGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHpcIl1cbn07XG52YXIgZmFGaXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpcmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgyOTNdLCBcImYwNmRcIiwgXCJNMTYwLjUtMjYuNGM5LjMtNy44IDIzLTcuNSAzMS45IC45IDEyLjMgMTEuNiAyMy4zIDI0LjQgMzMuOSAzNy40IDEzLjUgMTYuNSAyOS43IDM4LjMgNDUuMyA2NC4yIDUuMi02LjggMTAtMTIuOCAxNC4yLTE3LjkgMS4xLTEuMyAyLjItMi43IDMuMy00LjEgNy45LTkuOCAxNy43LTIyLjEgMzAuOC0yMi4xIDEzLjQgMCAyMi44IDExLjkgMzAuOCAyMi4xIDEuMyAxLjcgMi42IDMuMyAzLjkgNC44IDEwLjMgMTIuNCAyNCAzMC4zIDM3LjcgNTIuNCAyNy4yIDQzLjkgNTUuNiAxMDYuNCA1NS42IDE3Ni42IDAgMTIzLjctMTAwLjMgMjI0LTIyNCAyMjRTMCA0MTEuNyAwIDI4OGMwLTkxLjEgNDEuMS0xNzAgODAuNS0yMjUgMTkuOS0yNy43IDM5LjctNDkuOSA1NC42LTY1LjEgOC4yLTguNCAxNi41LTE2LjcgMjUuNS0yNC4yek0yMjUuNyA0MTZjMjUuMyAwIDQ3LjctNyA2OC44LTIxIDQyLjEtMjkuNCA1My40LTg4LjIgMjguMS0xMzQuNC00LjUtOS0xNi05LjYtMjIuNS0ybC0yNS4yIDI5LjNjLTYuNiA3LjYtMTguNSA3LjQtMjQuNy0uNS0xNy4zLTIyLjEtNDkuMS02Mi40LTY1LjMtODMtNS40LTYuOS0xNS4yLTgtMjEuNS0xLjktMTguMyAxNy44LTUxLjUgNTYuOC01MS41IDEwNC4zIDAgNjguNiA1MC42IDEwOS4yIDExMy43IDEwOS4yelwiXVxufTtcbnZhciBmYU1hZ25pZnlpbmdHbGFzc1BsdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFnbmlmeWluZy1nbGFzcy1wbHVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzZWFyY2gtcGx1c1wiXSwgXCJmMDBlXCIsIFwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYVNlYXJjaFBsdXMgPSBmYU1hZ25pZnlpbmdHbGFzc1BsdXM7XG52YXIgZmFGbGFzayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFzaycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjBjM1wiLCBcIk0yODggMEwxMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJzMTQuMyAzMiAzMiAzMkwxMjggMjE1LjUgNy41IDQyNi4zQzIuNiA0MzUgMCA0NDQuNyAwIDQ1NC43IDAgNDg2LjQgMjUuNiA1MTIgNTcuMyA1MTJsMzMzLjQgMGMzMS42IDAgNTcuMy0yNS42IDU3LjMtNTcuMyAwLTEwLTIuNi0xOS44LTcuNS0yOC40TDMyMCAyMTUuNSAzMjAgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzM3LjcgMCAzMjAgMEwyODggMHpNMTkyIDIxNS41bDAtMTUxLjUgNjQgMCAwIDE1MS41YzAgMTEuMSAyLjkgMjIuMSA4LjQgMzEuOGw0MS42IDcyLjctMTY0IDAgNDEuNi03Mi43YzUuNS05LjcgOC40LTIwLjYgOC40LTMxLjh6XCJdXG59O1xudmFyIGZhQWxpZ25SaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbGlnbi1yaWdodCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjAzOFwiLCBcIk00NDggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMTkyIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyelwiXVxufTtcbnZhciBmYUNhYmxlQ2FyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhYmxlLWNhcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODY3MywgNTc1NTEsIFwidHJhbVwiXSwgXCJmN2RhXCIsIFwiTTI4OC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE2MCAyNGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0zMiAyODhjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTM2IDAgMC05Ni4yLTE5My40IDU1LjNjLTEyLjcgMy42LTI2LTMuNy0yOS43LTE2LjVzMy43LTI2IDE2LjUtMjkuN2wyMjQtNjQgMCAwIDIyNC02NGMxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC0yMDYuNiA1OSAwIDEwOS45IDEzNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNjB6bTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw1NiAwIDAtOTYtNTYgMHptMTg0IDk2bDAtOTYtODAgMCAwIDk2IDgwIDB6bTQ4IDBsNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTU2IDAgMCA5NnpcIl1cbn07XG52YXIgZmFUcmFtID0gZmFDYWJsZUNhcjtcbnZhciBmYUtpdE1lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAna2l0LW1lZGljYWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImZpcnN0LWFpZFwiXSwgXCJmNDc5XCIsIFwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2IDAgMC0zODQtMTYgMHptNjQgMGwwIDM4NCAyNTYgMCAwLTM4NC0yNTYgMHpNNDQ4IDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMTYgMCAwIDM4NCAxNiAwek0yMjQgMTg0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwelwiXVxufTtcbnZhciBmYUZpcnN0QWlkID0gZmFLaXRNZWRpY2FsO1xudmFyIGZhR3JpcExpbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaXAtbGluZXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY3YTRcIiwgXCJNMzIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDI4OHptMC0xMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTYwelwiXVxufTtcbnZhciBmYUJ1cmdlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidXJnZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImhhbWJ1cmdlclwiXSwgXCJmODA1XCIsIFwiTTQ4IDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDI4OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNkw0OCAzODR6TTMyIDIwMmMwIDEyLjIgOS45IDIyIDIyIDIyTDQ1OCAyMjRjMTIuMiAwIDIyLTkuOSAyMi0yMiAwLTE3LjItMi42LTM0LjQtMTAuOC00OS41LTIyLjItNDAuOC04Mi4zLTEyMC41LTIxMy4yLTEyMC41UzY1IDExMS42IDQyLjggMTUyLjVDMzQuNiAxNjcuNiAzMiAxODQuOCAzMiAyMDJ6TTAgMzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDI3MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTI1NiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTEyMCAxMjhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQ4LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIl1cbn07XG52YXIgZmFIYW1idXJnZXIgPSBmYUJ1cmdlcjtcbnZhciBmYVNub3dtYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc25vd21hbicsXG4gIGljb246IFs2NDAsIDUxMiwgWzk3MzEsIDk5MjRdLCBcImY3ZDBcIiwgXCJNNDAzIDIxMS43YzMyLjItMjQuOSA1My02My45IDUzLTEwNy43IDAtNzUuMS02MC45LTEzNi0xMzYtMTM2UzE4NCAyOC45IDE4NCAxMDRjMCA0My45IDIwLjggODIuOSA1MyAxMDcuNy0zMi4yIDE2LjMtNTkgNDEuOC03Ni44IDczLjFMMTEyIDI2NC4yIDExMiAyMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxOS42LTIyLjUtOS43Yy0xMi4yLTUuMi0yNi4zIC40LTMxLjUgMTIuNnMuNCAyNi4zIDEyLjYgMzEuNWMzNi4xIDE1LjUgNzUuOSAzMi41IDExOS40IDUxLjItMy45IDE0LjktNiAzMC42LTYgNDYuNyAwIDcwIDM5LjEgMTMwLjggOTYuNiAxNjEuOSA3LjkgNC4zIDE2LjkgNi4xIDI1LjkgNi4xbDEyMyAwYzkgMCAxOC0xLjggMjUuOS02LjEgNTcuNS0zMS4xIDk2LjYtOTIgOTYuNi0xNjEuOSAwLTE2LjItMi4xLTMxLjgtNi00Ni43IDQzLjUtMTguNyA4My40LTM1LjcgMTE5LjQtNTEuMiAxMi4yLTUuMiAxNy44LTE5LjMgMTIuNi0zMS41cy0xOS4zLTE3LjgtMzEuNS0xMi42bC0yMi41IDkuNyAwLTE5LjZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC4yLTQ4LjIgMjAuNmMtMTcuOS0zMS4zLTQ0LjYtNTYuOC03Ni44LTczLjF6TTI5NiA0MTZhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQtMTIwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjQ4IDgwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTM2OCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTI5Mi4yIDE1OS4zYy0yLjctNC44LTQuMi0xMC4yLTQuMi0xNS43IDAtMTcuNSAxNC4yLTMxLjYgMzEuNi0zMS42bC44IDBjMTcuNSAwIDMxLjYgMTQuMiAzMS42IDMxLjYgMCA1LjUtMS40IDEwLjktNC4yIDE1LjdMMzI3IDE5NS44Yy0zLjEgNS40LTEwLjggNS40LTEzLjkgMGwtMjAuOS0zNi42elwiXVxufTtcbnZhciBmYUhvdGVsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdGVsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTc2XSwgXCJmNTk0XCIsIFwiTTE2IDI0QzE2IDEwLjcgMjYuNyAwIDQwIDBMNDcyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQxNiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNDAgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTQxNi04IDBDMjYuNyA0OCAxNiAzNy4zIDE2IDI0em0yMDggODhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTI4IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTk2IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0zNTIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMTEyIDIwOGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0yNDAtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjg4IDM4NGw0My44IDBjOS45IDAgMTcuNS05IDE0LTE4LjItMTMuOC0zNi4xLTQ4LjgtNjEuOC04OS43LTYxLjhzLTc1LjkgMjUuNy04OS43IDYxLjhjLTMuNSA5LjIgNC4xIDE4LjIgMTQgMTguMmw0My44IDAgMCA4MCA2NCAwIDAtODB6XCJdXG59O1xudmFyIGZhUHJpbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncHJpbnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg0MjQsIDEyODQzOCwgOTExM10sIFwiZjAyZlwiLCBcIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzNDEuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQyLjUgNDIuNWMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgMzcuNS0zODQgMCAwLTgwek0wIDI1NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTEyOCA0MTZsMCAzMiAyNTYgMCAwLTk2LTI1NiAwIDAgNjR6TTQ1NiAyNzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIl1cbn07XG52YXIgZmFWb2xsZXliYWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZvbGxleWJhbGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc5NTIsIFwidm9sbGV5YmFsbC1iYWxsXCJdLCBcImY0NWZcIiwgXCJNNTEyIDI1OC45Yy0yMy40IDgtNDcuOCAxMy4xLTcyLjYgMTUuMSA1LjktOTguNi0zMC43LTE5MS4xLTk0LjktMjU4LjMgOTcuOCAzNiAxNjcuNSAxMzAgMTY3LjUgMjQwLjMgMCAxIDAgMS45IDAgMi45em0tNS45IDUyYy01LjIgMjMuNy0xMy42IDQ2LjItMjQuOSA2Ni45LTk0LjcgNTIuMi0yMTQgNTAtMzA4LjQtMTMuNiAyMS43LTMxLjMgNDkuOC01OC45IDgzLjgtODAuNSA3OS41IDQxLjYgMTY4LjUgNDkuMSAyNDkuNSAyNy4xek0yNzkuNyAyNDEuNmMtMy43LTg5LjctNDEuNy0xNzAuNS0xMDEuMy0yMjkuNyAyMi4zLTcuMSA0Ni0xMS4yIDcwLjUtMTEuOSA5Mi41IDU1LjkgMTUwLjMgMTYwLjMgMTQyLjQgMjczLjgtMzgtMy4yLTc1LjktMTMuNy0xMTEuNi0zMi4zek0xMzAuNSAzMi44QzE0OS4xIDQ5LjEgMTY1LjggNjcuNyAxNzkuOSA4OC4yIDkxLjUgMTMyLjMgMjkuNyAyMTAuMyAzLjcgMjk5LjUgMS4zIDI4NS4zIDAgMjcwLjggMCAyNTYgMCAxNjAuMiA1Mi42IDc2LjcgMTMwLjUgMzIuOHptNzMuNCA5N2MxNi4zIDM0LjUgMjYuMSA3Mi42IDI3LjkgMTEyLjgtNzUuOCA0OC0xMjYuOCAxMjEuMy0xNDguMyAyMDIuNS0xNy42LTE2LjEtMzMtMzQuNi00NS41LTU1IDIuMS0xMDguMSA2My43LTIxMC40IDE2NS45LTI2MC4zek0yNTYgNTEyYy00Ny43IDAtOTIuMy0xMy0xMzAuNS0zNS43IDQuOC0yNC4zIDEyLjYtNDggMjMuMi03MC40IDgyLjQgNTQuNCAxODAuOCA2OC45IDI3MSA0Ny00NC40IDM3LTEwMS41IDU5LjItMTYzLjcgNTkuMnpcIl1cbn07XG52YXIgZmFWb2xsZXliYWxsQmFsbCA9IGZhVm9sbGV5YmFsbDtcbnZhciBmYVRyYWZmaWNMaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmFmZmljLWxpZ2h0JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTI4Njc4XSwgXCJmNjM3XCIsIFwiTTY0LTMyQzI4LjctMzIgMC0zLjMgMCAzMkwwIDM4NGMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MHMxNjAtNzEuNiAxNjAtMTYwbDAtMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0LTMyem05NiAzOTJjMzAuOSAwIDU2IDI1LjEgNTYgNTZzLTI1LjEgNTYtNTYgNTYtNTYtMjUuMS01Ni01NiAyNS4xLTU2IDU2LTU2em01Ni0xMDRhNTYgNTYgMCAxIDEgLTExMiAwIDU2IDU2IDAgMSAxIDExMiAwek0xNjAgMTUyYTU2IDU2IDAgMSAxIDAtMTEyIDU2IDU2IDAgMSAxIDAgMTEyelwiXVxufTtcbnZhciBmYVBsYW5lQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTU1XCIsIFwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgNzggNzEuNWMtNjkuMyAyOS0xMTggOTcuNC0xMTggMTc3LjIgMCA0OS4zIDE4LjYgOTQuMyA0OS4xIDEyOC4zTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zelwiXVxufTtcbnZhciBmYVVzZXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXJzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMGMwXCIsIFwiTTMyMCAxNmExMDQgMTA0IDAgMSAxIDAgMjA4IDEwNCAxMDQgMCAxIDEgMC0yMDh6TTk2IDg4YTcyIDcyIDAgMSAxIDAgMTQ0IDcyIDcyIDAgMSAxIDAtMTQ0ek0wIDQxNmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCAxMi44IDAgMjUuMiAxLjkgMzYuOSA1LjQtMzIuOSAzNi44LTUyLjkgODUuNC01Mi45IDEzOC42bDAgMTZjMCAxMS40IDIuNCAyMi4yIDYuNyAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJ6bTUyMS4zIDY0YzQuMy05LjggNi43LTIwLjYgNi43LTMybDAtMTZjMC01My4yLTIwLTEwMS44LTUyLjktMTM4LjYgMTEuNy0zLjUgMjQuMS01LjQgMzYuOS01LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtODYuNyAwek00NzIgMTYwYTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNMTYwIDQzMmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MHMxNjAgNzEuNiAxNjAgMTYwbDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2elwiXVxufTtcbnZhciBmYUNlcnRpZmljYXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NlcnRpZmljYXRlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMGEzXCIsIFwiTTIzOS4yLThjLTYuMS02LjItMTUtOC43LTIzLjQtNi40UzIwMC45LTUuNiAxOTguOCAyLjhMMTgzLjUgNjNjLTEuMSA0LjQtNS42IDctOS45IDUuN0wxMTMuOCA1MS45Yy04LjQtMi40LTE3LjQgMC0yMy41IDYuMXMtOC41IDE1LjEtNi4xIDIzLjVsMTYuOSA1OS44YzEuMiA0LjMtMS40IDguOC01LjcgOS45TDM1LjEgMTY2LjVjLTguNCAyLjEtMTUgOC43LTE3LjMgMTcuMXMuMiAxNy4zIDYuNCAyMy40bDQ0LjUgNDMuM2MzLjIgMy4xIDMuMiA4LjMgMCAxMS41TDI0LjMgMzA1LjFjLTYuMiA2LjEtOC43IDE1LTYuNCAyMy40czguOSAxNC45IDE3LjMgMTcuMWw2MC4yIDE1LjNjNC40IDEuMSA3IDUuNiA1LjcgOS45TDg0LjIgNDMwLjVjLTIuNCA4LjQgMCAxNy40IDYuMSAyMy41czE1LjEgOC41IDIzLjUgNi4xbDU5LjgtMTYuOWM0LjMtMS4yIDguOCAxLjQgOS45IDUuN2wxNS4zIDYwLjJjMi4xIDguNCA4LjcgMTUgMTcuMSAxNy4zczE3LjMtLjIgMjMuNC02LjRsNDMuMy00NC41YzMuMS0zLjIgOC4zLTMuMiAxMS41IDBMMzM3LjMgNTIwYzYuMSA2LjIgMTUgOC43IDIzLjQgNi40czE0LjktOC45IDE3LjEtMTcuM0wzOTMuMSA0NDljMS4xLTQuNCA1LjYtNyA5LjktNS43bDU5LjggMTYuOWM4LjQgMi40IDE3LjQgMCAyMy41LTYuMXM4LjUtMTUuMSA2LjEtMjMuNWwtMTYuOS01OS44Yy0xLjItNC4zIDEuNC04LjggNS43LTkuOWw2MC4yLTE1LjNjOC40LTIuMSAxNS04LjcgMTcuMy0xNy4xcy0uMi0xNy40LTYuNC0yMy40bC00NC41LTQzLjNjLTMuMi0zLjEtMy4yLTguMyAwLTExLjVsNDQuNS00My4zYzYuMi02LjEgOC43LTE1IDYuNC0yMy40cy04LjktMTQuOS0xNy4zLTE3LjFsLTYwLjItMTUuM2MtNC40LTEuMS03LTUuNi01LjctOS45bDE2LjktNTkuOGMyLjQtOC40IDAtMTcuNC02LjEtMjMuNXMtMTUuMS04LjUtMjMuNS02LjFMNDAzIDY4LjhjLTQuMyAxLjItOC44LTEuNC05LjktNS43TDM3Ny44IDIuOGMtMi4xLTguNC04LjctMTUtMTcuMS0xNy4zcy0xNy4zIC4yLTIzLjQgNi40TDI5NCAzNi41Yy0zLjEgMy4yLTguMyAzLjItMTEuNSAwTDIzOS4yLTh6XCJdXG59O1xudmFyIGZhQWxhcm1DbG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbGFybS1jbG9jaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzkyMDBdLCBcImYzNGVcIiwgXCJNNTA0LjQgMTMyLjVjLTQuNSAxMC41LTE4LjQgOS44LTI0LjkgLjQtMjcuOC00MC02Ni4xLTcyLjItMTExLTkyLjYtMTAuNC00LjctMTMuNy0xOC4zLTQuMS0yNC42IDE1LTkuOSAzMy0xNS43IDUyLjMtMTUuNyA1Mi42IDAgOTUuMiA0Mi42IDk1LjIgOTUuMiAwIDEzLjItMi43IDI1LjgtNy42IDM3LjN6bS00NzEuOSAuNGMtNi41IDkuNC0yMC41IDEwLjEtMjQuOS0uNC00LjktMTEuNS03LjYtMjQuMS03LjYtMzcuMyAwLTUyLjYgNDIuNi05NS4yIDk1LjItOTUuMiAxOS4zIDAgMzcuMyA1LjggNTIuMyAxNS43IDkuNiA2LjMgNi4zIDE5LjktNC4xIDI0LjYtNDQuOCAyMC40LTgzLjEgNTIuNi0xMTEgOTIuNnpNMzkwLjIgNDY3LjRDMzUyLjggNDk1LjQgMzA2LjMgNTEyIDI1NiA1MTJzLTk2LjgtMTYuNi0xMzQuMS00NC42TDg2LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDM1LjItMzUuMkM0OC42IDM4NC44IDMyIDMzOC4zIDMyIDI4OCAzMiAxNjQuMyAxMzIuMyA2NCAyNTYgNjRTNDgwIDE2NC4zIDQ4MCAyODhjMCA1MC4zLTE2LjYgOTYuOC00NC42IDEzNC4ybDM1LjIgMzUuMmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtMzUuMi0zNS4yek0yODAgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTA0YzAgNi40IDIuNSAxMi41IDcgMTdsNTYgNTZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00OS00OSAwLTk0LjF6XCJdXG59O1xudmFyIGZhSGVsaWNvcHRlclN5bWJvbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWxpY29wdGVyLXN5bWJvbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTUwMlwiLCBcIk00NDUuNCAyMjRsNjQuNyAwQzQ5NS42IDEwOC4yIDQwMy44IDE2LjQgMjg4IDJsMCA2NC43QzM2OC40IDgwLjEgNDMxLjkgMTQzLjYgNDQ1LjQgMjI0ek01MTAgMjg4bC02NC43IDBDNDMxLjkgMzY4LjQgMzY4LjQgNDMxLjkgMjg4IDQ0NS4zbDAgNjQuN2MxMTUuOC0xNC40IDIwNy42LTEwNi4yIDIyMi0yMjJ6TTIgMjg4QzE2LjQgNDAzLjggMTA4LjIgNDk1LjYgMjI0IDUxMGwwLTY0LjdDMTQzLjYgNDMxLjkgODAuMiAzNjguNCA2Ni43IDI4OEwyIDI4OHptMC02NGw2NC43IDBDODAuMiAxNDMuNiAxNDMuNiA4MC4xIDIyNCA2Ni43TDIyNCAyQzEwOC4yIDE2LjQgMTYuNCAxMDguMiAyIDIyNHptMjA2LTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA5NiAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0LTk2IDAgMC02NHpcIl1cbn07XG52YXIgZmFIb3VzZUNoaW1uZXlDcmFjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1jaGltbmV5LWNyYWNrJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJob3VzZS1kYW1hZ2VcIl0sIFwiZjZmMVwiLCBcIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTA1LjYgMC0zOC40LTY0IDgwLjgtNjcuM2M3LjgtNi41IDcuNi0xOC42LS40LTI0LjlMMjE4LjYgMjYzLjJjLTE0LjYtMTEuNS0zMy44IDctMjIuOCAyMkwyNTYgMzY4IDE3MC41IDQzOS4yYy02LjEgNS03LjUgMTMuOC0zLjUgMjAuNWwzMS4zIDUyLjItODYuNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6XCJdXG59O1xudmFyIGZhSG91c2VEYW1hZ2UgPSBmYUhvdXNlQ2hpbW5leUNyYWNrO1xudmFyIGZhUGVyc29uTWlsaXRhcnlQb2ludGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tbWlsaXRhcnktcG9pbnRpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NGFcIiwgXCJNMjE0LjkgMTQuMUMyMDIgMTUuMiAxOTIgMjYgMTkyIDM5IDE5MiA1Mi44IDIwMy4yIDY0IDIxNyA2NGwxNTEgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMC42QzM4NCA4IDM3NiAuNyAzNjYuNyAxLjRMMjE0LjkgMTQuMXpNMjA4IDExMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtNS41LS42LTEwLjgtMS42LTE2TDIwOS42IDk2Yy0xIDUuMi0xLjYgMTAuNS0xLjYgMTZ6TTQwIDIyNGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxNTIgMCAwIDg5LjQgMTYyLjgtMTYyLjhjLTEzLjMtNC4zLTI3LjMtNi41LTQxLjYtNi41TDQwIDIyNHptMzQ1LjcgMjAuOWwtMTcxLjEgMTcxLjEgMTY5LjQgMCAwLTQ2LjMgNTMuNiA5MC42YzExLjIgMTkgMzUuOCAyNS4zIDU0LjggMTQuMXMyNS4zLTM1LjggMTQuMS01NC44TDQzMC4zIDI5MC44Yy0xMS4yLTE5LTI2LjYtMzQuNS00NC42LTQ1Ljl6TTE5MiA0NDhsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyLTE5MiAwelwiXVxufTtcbnZhciBmYURhdGFiYXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RhdGFiYXNlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMWMwXCIsIFwiTTQ0OCAyMDUuOGMtMTQuOCA5LjgtMzEuOCAxNy43LTQ5LjUgMjQtNDcgMTYuOC0xMDguNyAyNi4yLTE3NC41IDI2LjJTOTYuNCAyNDYuNSA0OS41IDIyOS44Yy0xNy42LTYuMy0zNC43LTE0LjItNDkuNS0yNEwwIDI4OGMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MGwwLTgyLjJ6bTAtNzcuOGwwLTQ4QzQ0OCAzNS44IDM0Ny43IDAgMjI0IDBTMCAzNS44IDAgODBsMCA0OGMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MHpNMzk4LjUgMzg5LjhDMzUxLjYgNDA2LjUgMjg5LjkgNDE2IDIyNCA0MTZTOTYuNCA0MDYuNSA0OS41IDM4OS44Yy0xNy42LTYuMy0zNC43LTE0LjItNDkuNS0yNEwwIDQzMmMwIDQ0LjIgMTAwLjMgODAgMjI0IDgwczIyNC0zNS44IDIyNC04MGwwLTY2LjJjLTE0LjggOS44LTMxLjggMTcuNy00OS41IDI0elwiXVxufTtcbnZhciBmYU5ld3NwYXBlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICduZXdzcGFwZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyNDBdLCBcImYxZWFcIiwgXCJNMCA0MTZMMCAxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0TDk2IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTE2MCAxMjhsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0yNCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0MCAwem0tMjQtNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzYwIDE3NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwelwiXVxufTtcbnZhciBmYUNsb3VkUmFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1yYWluJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3NzgzLCA5OTI2XSwgXCJmNzNkXCIsIFwiTTk2IDMyMGMtNTMgMC05Ni00My05Ni05NiAwLTQyLjUgMjcuNi03OC42IDY1LjktOTEuMi0xLjMtNi43LTEuOS0xMy43LTEuOS0yMC44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyIDQzLjEgMCA4MC41IDI0LjMgOTkuMiA2MCAxNC43LTE3LjEgMzYuNS0yOCA2MC44LTI4IDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNS41LS42IDEwLjgtMS42IDE2IC41IDAgMS4xIDAgMS42IDAgNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZMOTYgMzIwem0xLjYgNjguMmMxLjEtMi41IDMuNi00LjIgNi40LTQuMnM1LjMgMS42IDYuNCA0LjJsMzAuMiA2OC4yYzIuMiA1LjEgMy40IDEwLjUgMy40IDE2IDAgMjEuOS0xOC4xIDM5LjYtNDAgMzkuNnMtNDAtMTcuNy00MC0zOS42YzAtNS41IDEuMi0xMSAzLjQtMTZsMzAuMi02OC4yem0xNTIgMGMxLjEtMi41IDMuNi00LjIgNi40LTQuMnM1LjMgMS42IDYuNCA0LjJsMzAuMiA2OC4yYzIuMiA1LjEgMy40IDEwLjUgMy40IDE2IDAgMjEuOS0xOC4xIDM5LjYtNDAgMzkuNnMtNDAtMTcuNy00MC0zOS42YzAtNS41IDEuMi0xMSAzLjQtMTZsMzAuMi02OC4yem0xMjEuOCA2OC4ybDMwLjItNjguMmMxLjEtMi41IDMuNi00LjIgNi40LTQuMnM1LjMgMS42IDYuNCA0LjJsMzAuMiA2OC4yYzIuMiA1LjEgMy40IDEwLjUgMy40IDE2IDAgMjEuOS0xOC4xIDM5LjYtNDAgMzkuNnMtNDAtMTcuNy00MC0zOS42YzAtNS41IDEuMi0xMSAzLjQtMTZ6XCJdXG59O1xudmFyIGZhTWF4aW1pemUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWF4aW1pemUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImV4cGFuZC1hcnJvd3MtYWx0XCJdLCBcImYzMWVcIiwgXCJNMTY4IDMyTDI0IDMyQzEwLjcgMzIgMCA0Mi43IDAgNTZMMCAyMDBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yUzM0LjEgMjIzLjggNDEgMjE3bDQwLTQwIDc5IDc5LTc5IDc5LTQwLTQwYy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzAgMzAyLjMgMCAzMTJMMCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC00MC00MCA3OS03OSA3OSA3OS00MCA0MGMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMyNzAuMyA0ODAgMjgwIDQ4MGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTE0NGMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJzLTE5LjMtMS43LTI2LjIgNS4ybC00MCA0MC03OS03OSA3OS03OSA0MCA0MGM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzQ0OCAyMDkuNyA0NDggMjAwbDAtMTQ0YzAtMTMuMy0xMC43LTI0LTI0LTI0TDI4MCAzMmMtOS43IDAtMTguNSA1LjgtMjIuMiAxNC44UzI1Ni4yIDY2LjEgMjYzIDczbDQwIDQwLTc5IDc5LTc5LTc5IDQwLTQwYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTc3LjcgMzIgMTY4IDMyelwiXVxufTtcbnZhciBmYUV4cGFuZEFycm93c0FsdCA9IGZhTWF4aW1pemU7XG52YXIgZmFMb2NhdGlvbkFycm93ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xvY2F0aW9uLWFycm93JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTI0XCIsIFwiTTQ3Ny45IDc1LjVjNC41LTExLjggMS43LTI1LjItNy4yLTM0LjFzLTIyLjMtMTEuOC0zNC4xLTcuMmwtNDE2IDE2MEM3LjkgMTk5LS4zIDIxMS4yIDAgMjI0LjdzOS4xIDI1LjQgMjEuOSAyOS42bDE3Ni44IDU4LjkgNTguOSAxNzYuOGM0LjMgMTIuOCAxNi4xIDIxLjYgMjkuNiAyMS45czI1LjctNy45IDMwLjYtMjAuNWwxNjAtNDE2elwiXVxufTtcbnZhciBmYUNpdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2l0eScsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyNzk2MV0sIFwiZjY0ZlwiLCBcIk0zMjAgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMi00OCAwIDAtNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3Mi02NCAwIDAtNzJDOTYgMTAuNyA4NS4zIDAgNzIgMFM0OCAxMC43IDQ4IDI0bDAgNzRjLTI3LjYgNy4xLTQ4IDMyLjItNDggNjJMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAgMC0xMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRMMzIwIDB6bTY0IDExMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2em0tMTYgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHptMTYgMTEybDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6bTExMi0xNmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwek0yNTYgMzA0bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZ6TTI0MCAxOTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHpNMTI4IDMwNGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2ek0xMTIgMTkyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6XCJdXG59O1xudmFyIGZhWFJheSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd4LXJheScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQ5N1wiLCBcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMzIwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0em0yODAgNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDAgMCA0OC04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDAgMCA0OC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDAgMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYgNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMCAwLTQ4IDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDAgMC00OCA2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAwIDAtMTZ6XCJdXG59O1xudmFyIGZhVW1icmVsbGFCZWFjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bWJyZWxsYS1iZWFjaCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzk1OF0sIFwiZjVjYVwiLCBcIk00OTcuNSAzNDEuMWMtNS45IDE2LjctMjUuMyAyMy00MS4xIDE1LjFsLTE3OC4yLTg5LjEtMS42IDMuMi04OC44IDE3Ny43IDI5Mi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDg0LjIgMCAxMDMuMi0yMDYuMyAxLjYtMy4yLTE2NS40LTgyLjdjLTE1LjgtNy45LTIyLjQtMjcuMy0xMi41LTQyIDQ1LjktNjguNiAxMjQuMS0xMTMuOCAyMTIuOS0xMTMuOCAxNDEuNCAwIDI1NiAxMTQuNiAyNTYgMjU2IDAgMjkuOC01LjEgNTguNS0xNC41IDg1LjF6XCJdXG59O1xudmFyIGZhQXJyb3dSaWdodFRvQnJhY2tldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yaWdodC10by1icmFja2V0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzaWduLWluXCJdLCBcImYwOTBcIiwgXCJNMzUyIDk2bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjU2YzAtNTMtNDMtOTYtOTYtOTZsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bS05LjQgMTgyLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDI0Mi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjEwLjcgMC03My40IDczLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHpcIl1cbn07XG52YXIgZmFTaWduSW4gPSBmYUFycm93UmlnaHRUb0JyYWNrZXQ7XG52YXIgZmFIZWFkc2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYWRzZXQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1OTBcIiwgXCJNMjI0IDY0Yy03OSAwLTE0NC43IDU3LjMtMTU3LjcgMTMyLjcgOS4zLTMgMTkuMy00LjcgMjkuNy00LjdsMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwYy01MyAwLTk2LTQzLTk2LTk2bDAtNjRDMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0bDAgMTY4LjFjMCA2Ni4zLTUzLjggMTIwLTEyMC4xIDEyMGwtODcuOS0uMS0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAwIDQwIDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0yMC45Yy0xNC4xIDguMi0zMC41IDEyLjgtNDggMTIuOGwtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwYzEwLjQgMCAyMC4zIDEuNiAyOS43IDQuNy0xMy03NS4zLTc4LjYtMTMyLjctMTU3LjctMTMyLjd6XCJdXG59O1xudmFyIGZhU3Bsb3RjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcGxvdGNoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWJjXCIsIFwiTTIwOC41IDYyLjNsMjguMS0zNi45QzI0OC44IDkuNCAyNjcuOCAwIDI4OCAwIDMxNi41IDAgMzQxLjYgMTguNyAzNDkuOCA0NmwxNy44IDU5LjRjMTAuMyAzNC40IDM2LjEgNjIgNjkuOCA3NC42bDM5LjggMTQuOWMyMC45IDcuOSAzNC44IDI3LjkgMzQuOCA1MC4yIDAgMTYuOS03LjkgMzIuOC0yMS41IDQyLjlsLTY3LjMgNTAuNWMtMjQuMyAxOC4yLTM3LjIgNDcuOS0zMy44IDc4LjFsMi41IDIyLjdjNC4zIDM4LjctMjYgNzIuNi02NSA3Mi42LTE0LjggMC0yOS4zLTUuMS00MC45LTE0LjNsLTU1LjMtNDQuM2MtNC41LTMuNi05LjMtNi43LTE0LjUtOS4yLTE1LjgtNy45LTMzLjctMTAuNC01MS03LjNMODIuNCA0NTEuOWMtMzQuNiA2LjMtNjYuNC0yMC4zLTY2LjQtNTUuNCAwLTEzLjIgNC43LTI2IDEzLjEtMzYuMmwxMS4yLTEzLjRjMTQuNi0xNy40IDIyLjYtMzkuNCAyMi42LTYyLjEgMC0xOC44LTUuNS0zNy4yLTE1LjgtNTNMOC44IDE3My41QzMuMSAxNjQuNyAwIDE1NC40IDAgMTQzLjkgMCAxMTAuNSAzMC4xIDg1LjEgNjMgOTAuN2w1MS4zIDguN2MzNS45IDYuMSA3Mi4yLTguMiA5NC4yLTM3LjF6XCJdXG59O1xudmFyIGZhVXBMb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VwLWxvbmcnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcImxvbmctYXJyb3ctYWx0LXVwXCJdLCBcImYzMGNcIiwgXCJNMTM3LjQtMjIuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxMjggMTI4YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMwMC45IDE2MCAyODggMTYwbC02NCAwIDAgMzM2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMzNi02NCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44Uy4yIDExNC41IDkuNCAxMDUuNGwxMjgtMTI4elwiXVxufTtcbnZhciBmYUxvbmdBcnJvd0FsdFVwID0gZmFVcExvbmc7XG52YXIgZmFIZXhhZ29uTm9kZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGV4YWdvbi1ub2RlcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTY5OVwiLCBcIk0yNDggMTA2LjZjMTguOS05IDMyLTI4LjMgMzItNTAuNmMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NmMwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjdsLTgwLjEtNDUuOGMxLjYtMjAuOC04LjYtNDEuNi0yNy45LTUyLjhDNTcuMiA5NiAyMyAxMDUuMiA3LjUgMTMyUzEuMiAxOTMgMjggMjA4LjVjMS4zIC44IDIuNiAxLjUgNCAyLjFsMCA5MC44Yy0xLjMgLjYtMi43IDEuMy00IDIuMUMxLjIgMzE5LTggMzUzLjIgNy41IDM4MFM1Ny4yIDQxNiA4NCA0MDAuNWMxOS4zLTExLjEgMjkuNC0zMiAyNy44LTUyLjhsNTAuNS0yOC45Yy0xMS41LTExLjItMTkuOS0yNS42LTIzLjgtNDEuN0w4OCAzMDYuMWMtMi42LTEuOC01LjItMy4zLTgtNC43bDAtOTAuOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0uMSAxLjQtLjIgMi44LS4yIDQuM2MwIDIyLjMgMTMuMSA0MS42IDMyIDUwLjZsMCA5OC44Yy0xOC45IDktMzIgMjguMy0zMiA1MC42YzAgMzAuOSAyNS4xIDU2IDU2IDU2czU2LTI1LjEgNTYtNTZjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsODAuMSA0NS44Yy0xLjYgMjAuOCA4LjYgNDEuNiAyNy44IDUyLjhjMjYuOCAxNS41IDYxIDYuMyA3Ni41LTIwLjVzNi4zLTYxLTIwLjUtNzYuNWMtMS4zLS44LTIuNy0xLjUtNC0yLjFsMC05MC44YzEuNC0uNiAyLjctMS4zIDQtMi4xYzI2LjgtMTUuNSAzNi00OS43IDIwLjUtNzYuNVMzOTAuOCA5NiAzNjQgMTExLjVjLTE5LjMgMTEuMS0yOS40IDMyLTI3LjggNTIuOGwtNTAuNiAyOC45YzExLjUgMTEuMiAxOS45IDI1LjYgMjMuOCA0MS43TDM2MCAyMDUuOWMyLjYgMS44IDUuMiAzLjMgOCA0LjdsMCA5MC44Yy0yLjggMS4zLTUuNSAyLjktOCA0LjZsLTgwLjEtNDUuOGMuMS0xLjQgLjItMi44IC4yLTQuM2MwLTIyLjMtMTMuMS00MS42LTMyLTUwLjZsMC05OC44elwiXVxufTtcbnZhciBmYUhvc3BpdGFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvc3BpdGFsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI3OTczLCA2MjU4OSwgXCJob3NwaXRhbC1hbHRcIiwgXCJob3NwaXRhbC13aWRlXCJdLCBcImYwZjhcIiwgXCJNMTI4IDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjQgNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDAgMC02NHpNMjcyIDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA4MCA5NiAwIDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDB6TTEyOCAzNjhsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNMTEyIDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwek01MTIgMzY4bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTQ5NiAyNTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHpNMjY0IDEwNGwwIDMyLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIl1cbn07XG52YXIgZmFIb3NwaXRhbEFsdCA9IGZhSG9zcGl0YWw7XG52YXIgZmFIb3NwaXRhbFdpZGUgPSBmYUhvc3BpdGFsO1xudmFyIGZhUGVyc29uSGFyYXNzaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1oYXJhc3NpbmcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NDlcIiwgXCJNMTkyIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNTkuNCAzMDQuNUw4OCAyNTYuOSA4OCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDQuNyA0Ny40IDU3LjFjMTEuMyAxMy42IDMxLjUgMTUuNSA0NS4xIDQuMnMxNS41LTMxLjUgNC4yLTQ1LjFsLTczLjctODguOWMtMTguMi0yMi00NS4zLTM0LjctNzMuOS0zNC43bC0zNS45IDBjLTMzLjcgMC02NC45IDE3LjctODIuMyA0Ni42bC01OC4zIDk3Yy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45ek00ODAgMjQwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQ2NCAzNDRsMCA1OC43LTQxLjQtNDEuNGMtNy4zLTcuMy0xNy42LTEwLjYtMjcuOC05cy0xOC45IDguMS0yMy41IDE3LjNsLTQ4IDk2Yy03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsMjguMS01Ni4zIDU0LjcgNTQuN2MxMi40IDEyLjQgMjkuMSAxOS4zIDQ2LjYgMTkuMyAzNi40IDAgNjUuOS0yOS41IDY1LjktNjUuOUw1NzYgMzQ0YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2ek0yODggNDhjMCA4LjggNy4yIDE2IDE2IDE2bDU2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLS44IDQ5LjdjLTcuOS00LTE3LjUtLjctMjEuNSA3LjJzLS43IDE3LjUgNy4yIDIxLjVsNDggMjRjNy45IDQgMTcuNSAuNyAyMS41LTcuMnMuNy0xNy41LTcuMi0yMS41bC00OC0yNHpcIl1cbn07XG52YXIgZmFNb25leUJpbGxUcmVuZFVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGwtdHJlbmQtdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1MjlcIiwgXCJNNDgwIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRMMzU0LjItMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDMuOSAwLTExMS4zIDExMS4zLTk1LjEtODEuNWMtOS03LjctMjIuMi03LjctMzEuMiAwbC0xMTIgOTZjLTEwLjEgOC42LTExLjIgMjMuOC0yLjYgMzMuOHMyMy44IDExLjIgMzMuOCAyLjZsOTYuNC04Mi42IDk2LjQgODIuNmM5LjUgOC4yIDIzLjcgNy42IDMyLjYtMS4zbDEyNy0xMjcgMCA0My45YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRMNDgwIDh6TTQ4IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNjBjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMjU2em00Ny4zIDU2Yy0zLjQgMjAuMS0xOS4yIDM2LTM5LjQgMzkuNC00LjQgLjctOC0yLjktOC03LjNsMC0zMmMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4LjEgMy42IDcuMyA4em0wIDE0NC4xYy43IDQuNC0yLjkgOC03LjMgOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtMzJjMC00LjQgMy42LTguMSA4LTcuMyAyMC4xIDMuNCAzNiAxOS4yIDM5LjQgMzkuNHpNNDU2IDQxNi43YzQuNC0uNyA4IDIuOSA4IDcuM2wwIDMyYzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC4xLTMuNi03LjMtOCAzLjQtMjAuMSAxOS4yLTM2IDM5LjQtMzkuNHpNNDE2LjcgMzEyYy0uNy00LjQgMi45LTggNy4zLThsMzIgMGM0LjQgMCA4IDMuNiA4IDhsMCAzMmMwIDQuNC0zLjYgOC4xLTggNy4zLTIwLjEtMy40LTM2LTE5LjItMzkuNC0zOS40ek0xOTIgMzg0YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpcIl1cbn07XG52YXIgZmFQZW5SdWxlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW4tcnVsZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInBlbmNpbC1ydWxlclwiXSwgXCJmNWFlXCIsIFwiTTQwNCAwYzE5LjIgMCAzNy42IDcuNiA1MS4xIDIxLjJsMzUuNyAzNS43QzUwNC40IDcwLjQgNTEyIDg4LjggNTEyIDEwOHMtNy42IDM3LjYtMjEuMiA1MS4xTDQ0NS45IDIwNCAzMDggNjYuMSAzNTIuOSAyMS4yQzM2Ni40IDcuNiAzODQuOCAwIDQwNCAwek01OC45IDMxNS4xTDI3NC4xIDEwMCA0MTIgMjM3LjkgMTk2LjkgNDUzLjFjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTExLjFjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4ycy04LjUtMTUuMS02LjItMjMuNEwzNi40IDM1My44YzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4Ljd6TTIyNS40IDgwLjhMODAuOCAyMjUuNCAxMS43IDE1Ni4zYy0xNS42LTE1LjYtMTUuNi00MC45IDAtNTYuNmw4OC04OGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMGw1LjkgNS45LTU2LjMgNTYuM2MtNy44IDcuOC03LjggMjAuNSAwIDI4LjNzMjAuNSA3LjggMjguMyAwbDU2LjMtNTYuMyAzNC45IDM0Ljl6TTQzMS4yIDI4Ni42bDM0LjkgMzQuOS01Ni4zIDU2LjNjLTcuOCA3LjgtNy44IDIwLjUgMCAyOC4zczIwLjUgNy44IDI4LjMgMGw1Ni4zLTU2LjMgNS45IDUuOWMxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNmwtODggODhjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwbC02OS4xLTY5LjEgMTQ0LjYtMTQ0LjZ6XCJdXG59O1xudmFyIGZhUGVuY2lsUnVsZXIgPSBmYVBlblJ1bGVyO1xudmFyIGZhUmVwZWF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlcGVhdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI1N10sIFwiZjM2M1wiLCBcIk00NzAuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzM1MiAxOS4xIDM1MiAzMmwwIDMyLTE2MCAwQzg2IDY0IDAgMTUwIDAgMjU2IDAgMjczLjcgMTQuMyAyODggMzIgMjg4czMyLTE0LjMgMzItMzJjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsMTYwIDAgMCAzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0ek00MS40IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOVMxNjAgNDkyLjkgMTYwIDQ4MGwwLTMyIDE2MCAwYzEwNiAwIDE5Mi04NiAxOTItMTkyIDAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0xNjAgMCAwLTMyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC02NCA2NHpcIl1cbn07XG52YXIgZmFCb25lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvbmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjk0NjBdLCBcImY1ZDdcIiwgXCJNMTk3LjQgMTYwYy0zLjkgMC03LjItMi44LTguMS02LjYtMTAuMi00Mi4xLTQ4LjEtNzMuNC05My4zLTczLjQtNTMgMC05NiA0My05NiA5NiAwIDI5LjEgMTIuOSA1NS4xIDMzLjMgNzIuNyA0LjMgMy43IDQuMyAxMC44IDAgMTQuNS0yMC40IDE3LjYtMzMuMyA0My43LTMzLjMgNzIuNyAwIDUzIDQzIDk2IDk2IDk2IDQ1LjIgMCA4My4xLTMxLjMgOTMuMy03My40IC45LTMuOCA0LjItNi42IDguMS02LjZsMjQ1LjEgMGMzLjkgMCA3LjIgMi44IDguMSA2LjYgMTAuMiA0Mi4xIDQ4LjEgNzMuNCA5My4zIDczLjQgNTMgMCA5Ni00MyA5Ni05NiAwLTI5LjEtMTIuOS01NS4xLTMzLjMtNzIuNy00LjMtMy43LTQuMy0xMC44IDAtMTQuNSAyMC40LTE3LjYgMzMuMy00My43IDMzLjMtNzIuNyAwLTUzLTQzLTk2LTk2LTk2LTQ1LjIgMC04My4xIDMxLjMtOTMuMyA3My40LS45IDMuOC00LjIgNi42LTguMSA2LjZsLTI0NS4xIDB6XCJdXG59O1xudmFyIGZhRmlyZUZsYW1lQ3VydmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpcmUtZmxhbWUtY3VydmVkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJmaXJlLWFsdFwiXSwgXCJmN2U0XCIsIFwiTTE1My42IDI5LjlsMTYtMjEuM0MxNzMuNiAzLjIgMTgwIDAgMTg2LjcgMCAxOTguNCAwIDIwOCA5LjYgMjA4IDIxLjNsMCAyMi4xYzAgMTMuMSA1LjQgMjUuNyAxNC45IDM0LjdMMzA3LjYgMTU5QzM1Ni40IDIwNS42IDM4NCAyNzAuMiAzODQgMzM3LjcgMzg0IDQzNCAzMDYgNTEyIDIwOS43IDUxMkwxOTIgNTEyQzg2IDUxMiAwIDQyNiAwIDMyMGwwLTMuOGMwLTQ4LjggMTkuNC05NS42IDUzLjktMTMwLjFsMy41LTMuNWM0LjItNC4yIDEwLTYuNiAxNi02LjYgMTIuNSAwIDIyLjYgMTAuMSAyMi42IDIyLjZMOTYgMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC0zLjljMC0xOC03LjItMzUuMy0xOS45LTQ4bC0zOC42LTM4LjZjLTI0LTI0LTM3LjUtNTYuNy0zNy41LTkwLjcgMC0yNy43IDktNTQuOCAyNS42LTc2Ljl6XCJdXG59O1xudmFyIGZhRmlyZUFsdCA9IGZhRmlyZUZsYW1lQ3VydmVkO1xudmFyIGZhQnVzU2ltcGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1cy1zaW1wbGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImJ1cy1hbHRcIl0sIFwiZjU1ZVwiLCBcIk05NiAwQzQzIDAgMCA0MyAwIDk2TDAgMzg0YzAgMjkuOCAyMC40IDU0LjkgNDggNjJsMCAzNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMTkyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzRjMjcuNi03LjEgNDgtMzIuMiA0OC02MmwwLTI4OGMwLTUzLTQzLTk2LTk2LTk2TDk2IDB6TTY0IDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NnpNOTYgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjU2IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYUJ1c0FsdCA9IGZhQnVzU2ltcGxlO1xudmFyIGZhVmVudXNNYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZlbnVzLW1hcnMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFs5ODkyXSwgXCJmMjI4XCIsIFwiTTQ4MC02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJTNDYyLjMgMCA0ODAgMEw1MzAuNyAwIDQ3NCA1Ni43Yy0yNi4zLTE1LjctNTcuMS0yNC43LTkwLTI0LjctMzUuNCAwLTY4LjQgMTAuNS05NiAyOC41LTI3LjYtMTgtNjAuNi0yOC41LTk2LTI4LjUtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljMjMuMy00LjMgNDQuOS0xMy4xIDY0LTI1LjYgMjcuNiAxOCA2MC42IDI4LjUgOTYgMjguNSA5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NiAwLTQxLjEtMTQuMS03OS0zNy44LTEwOUw1NzYgNDUuMyA1NzYgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkw0ODAtNjR6TTMzNiAzMDkuMmMyMC4yLTI4LjYgMzItNjMuNSAzMi0xMDEuMnMtMTEuOC03Mi42LTMyLTEwMS4yYzE0LjYtNi45IDMwLjgtMTAuOCA0OC0xMC44IDYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyUzQ0NS45IDMyMCAzODQgMzIwYy0xNy4yIDAtMzMuNS0zLjktNDgtMTAuOHpNMjg4IDE1MC4zYzEwLjIgMTYuOSAxNiAzNi42IDE2IDU3LjdzLTUuOCA0MC45LTE2IDU3LjdjLTEwLjItMTYuOS0xNi0zNi42LTE2LTU3LjdzNS44LTQwLjkgMTYtNTcuN3ptLTQ4LTQzLjVjLTIwLjIgMjguNi0zMiA2My41LTMyIDEwMS4yczExLjggNzIuNiAzMiAxMDEuMmMtMTQuNSA2LjktMzAuOCAxMC44LTQ4IDEwLjgtNjEuOSAwLTExMi01MC4xLTExMi0xMTJTMTMwLjEgOTYgMTkyIDk2YzE3LjIgMCAzMy41IDMuOSA0OCAxMC44elwiXVxufTtcbnZhciBmYUJsZW5kZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmxlbmRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjUxN1wiLCBcIk0wIDU2QzAgMjUuMSAyNS4xIDAgNTYgMEw0MzcuNiAwYzIxLjMgMCAzNi42IDIwLjMgMzAuOCA0MC44TDQ1Ny4xIDgwIDM0NCA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5OS40IDAtMTguMyA2NC04MS4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjcuNCAwLTI3LjQgOTYtMjU2IDAtOS4xLTk2LTYyLjkgMGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCA1NnpNMTE0LjMgMTkyTDEwMC42IDQ4IDU2IDQ4Yy00LjQgMC04IDMuNi04IDhsMCAxMjhjMCA0LjQgMy42IDggOCA4bDU4LjMgMHpNMTM2IDM4NGwyNDAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC0yNDAgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MHptMTIwIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIl1cbn07XG52YXIgZmFVID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMTddLCBcIjU1XCIsIFwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhsMC0yMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDIyNGMwIDEwNi04NiAxOTItMTkyIDE5MlMwIDM5NCAwIDI4OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyelwiXVxufTtcbnZhciBmYVNoYXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoYXJlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJtYWlsLWZvcndhcmRcIl0sIFwiZjA2NFwiLCBcIk0zMDcuOCAxOC40Yy0xMiA1LTE5LjggMTYuNi0xOS44IDI5LjZsMCA4MC0xMTIgMGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCAxMTMuMyA4MS41IDE2My45IDEwMC4yIDE3NC4xIDIuNSAxLjQgNS4zIDEuOSA4LjEgMS45IDEwLjkgMCAxOS43LTguOSAxOS43LTE5LjcgMC03LjUtNC4zLTE0LjQtOS44LTE5LjUtOS40LTguOC0yMi4yLTI2LjQtMjIuMi01Ni43IDAtNTMgNDMtOTYgOTYtOTZsOTYgMCAwIDgwYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02Ljl6XCJdXG59O1xudmFyIGZhTWFpbEZvcndhcmQgPSBmYVNoYXJlO1xudmFyIGZhUGhvbmVGbGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Bob25lLWZsaXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzODEsIFwicGhvbmUtYWx0XCJdLCBcImY4NzlcIiwgXCJNMzUxLjggMjVjNy44LTE4LjggMjguNC0yOC45IDQ4LjEtMjMuNWw1LjUgMS41YzY0LjYgMTcuNiAxMTkuOCA4MC4yIDEwMy43IDE1Ni40LTM3LjEgMTc1LTE3NC44IDMxMi43LTM0OS44IDM0OS44LTc2LjMgMTYuMi0xMzguOC0zOS4xLTE1Ni40LTEwMy43bC0xLjUtNS41Yy01LjQtMTkuNyA0LjctNDAuMyAyMy41LTQ4LjFsOTcuMy00MC41YzE2LjUtNi45IDM1LjYtMi4xIDQ3IDExLjhsMzguNiA0Ny4yYzcwLjMtMzQuOSAxMjYuOC05My4zIDE1OS4zLTE2NC45bC00NC4xLTM2LjFjLTEzLjktMTEuMy0xOC42LTMwLjQtMTEuOC00N0wzNTEuOCAyNXpcIl1cbn07XG52YXIgZmFQaG9uZUFsdCA9IGZhUGhvbmVGbGlwO1xudmFyIGZhVG9pbGV0UG9ydGFibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9pbGV0LXBvcnRhYmxlJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNTgzXCIsIFwiTTAgNjRsMCAxNiAzMjAgMCAwLTE2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0em0yNCA2NEwwIDEyOCAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAyMjQgMCAwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTM2MC0yOTYgMHptMjI0IDk2bDI0IDAgMCA5Ni0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYVBlcnNvblByZWduYW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1wcmVnbmFudCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTMxZVwiLCBcIk0xOTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTgwIDMyMS4yYzguNi00LjUgMTYuOC0xMCAyNC4zLTE2LjVsNC0zLjRjMjIuNi0xOS40IDM1LjctNDcuNyAzNS43LTc3LjYgMC0zNS45LTE4LjgtNjkuMS00OS42LTg3LjZsLTMwLjQtMTguMiAwLTEuOGMwLTQ2LjUtMzcuNy04NC4xLTg0LjEtODQuMS0yOC4xIDAtNTQuNCAxNC4xLTcwIDM3LjVMMjEuNCAyNzAuMmMtOS44IDE0LjctNS44IDM0LjYgOC45IDQ0LjRzMzQuNiA1LjggNDQuNC04LjlsMjktNDMuNS0zMC41IDExMy41Yy0yLjYgOS42LS42IDE5LjkgNS41IDI3LjhTOTQgNDE2IDEwNCA0MTZsOCAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTEwLjh6XCJdXG59O1xudmFyIGZhTGVzc1RoYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVzcy10aGFuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjI3NzRdLCBcIjNjXCIsIFwiTTQ3Ny4xIDUwLjZjNy40IDE2IC40IDM1LjEtMTUuNiA0Mi41TDEwOC40IDI1NiA0NjEuNCA0MTljMTYgNy40IDIzIDI2LjQgMTUuNiA0Mi41cy0yNi40IDIzLTQyLjUgMTUuNmwtNDE2LTE5MkM3LjMgMjc5LjggMCAyNjguNSAwIDI1NlM3LjMgMjMyLjIgMTguNiAyMjdsNDE2LTE5MmMxNi03LjQgMzUuMS0uNCA0Mi41IDE1LjZ6XCJdXG59O1xudmFyIGZhU3VwZXJzY3JpcHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3VwZXJzY3JpcHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYxMmJcIiwgXCJNNTQ0IDMyYzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40bC0zMiAxNkM0NDkuOSAyNy4zIDQ0My41IDQ2LjUgNDUxLjQgNjIuMyA0NTcgNzMuNSA0NjguMyA4MCA0ODAgODBsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4ek05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmwxNS4zIDAgODkuNiAxMjgtODkuNiAxMjgtMTUuMyAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTAuNCAwIDIwLjItNS4xIDI2LjItMTMuNkwyNDAgMzExLjggMzI1LjggNDM0LjRjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNS4zIDAtODkuNi0xMjggODkuNi0xMjggMTUuMyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xMC40IDAtMjAuMiA1LjEtMjYuMiAxMy42TDI0MCAyMDAuMiAxNTQuMiA3Ny42QzE0OC4yIDY5LjEgMTM4LjQgNjQgMTI4IDY0TDk2IDY0elwiXVxufTtcbnZhciBmYUNpcmNsZVN0b3AgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXN0b3AnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjA5NCwgXCJzdG9wLWNpcmNsZVwiXSwgXCJmMjhkXCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMTYwbDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xudmFyIGZhU3RvcENpcmNsZSA9IGZhQ2lyY2xlU3RvcDtcbnZhciBmYUFycm93c1VwRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtdXAtZG93bicsXG4gIGljb246IFsyNTYsIDUxMiwgW1wiYXJyb3dzLXZcIl0sIFwiZjA3ZFwiLCBcIk0xNTAuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgNzcuMyA5NiA0MzQuNyA1NC42IDM5My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRzMTYuNi0zLjQgMjIuNi05LjRsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTQxLjQgNDEuNCAwLTM1Ny41IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpcIl1cbn07XG52YXIgZmFBcnJvd3NWID0gZmFBcnJvd3NVcERvd247XG52YXIgZmFQb29TdG9ybSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb28tc3Rvcm0nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInBvby1ib2x0XCJdLCBcImY3NWFcIiwgXCJNMjY4LjktMzEuOGMtNS41LS43LTExIDEuNC0xNC41IDUuN3MtNC42IDEwLjEtMi44IDE1LjNjMi44IDguMiA0LjMgMTYuOSA0LjMgMjYuMSAwIDIxLjctOC41IDM3LjItMjEuOSA0Ny42LTEzLjkgMTAuOC0zNC4xIDE3LTU4LjEgMTdsLTI0IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4IDAgMTQuOCAzLjcgMjguOCAxMC4yIDQxLjEtNDIgNi42LTc0LjIgNDMtNzQuMiA4Ni45IDAgNDYuNiAzNi4yIDg0LjcgODEuOSA4Ny44IDMuMS0xMi40IDkuOS0yMy44IDE5LjYtMzIuNUwyNDIuNyAyMjVjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43bC0xMi43IDQyLjRjMjguOCAxLjIgNTIuNyAyMS4xIDU5LjggNDcuOWwyNi4yIDBjNDguNiAwIDg4LTM5LjQgODgtODggMC00My45LTMyLjEtODAuMy03NC4yLTg2LjkgNi41LTEyLjMgMTAuMi0yNi4yIDEwLjItNDEuMSAwLTQ4LjYtMzkuNC04OC04OC04OGwtOS40IDBjLjktNS40IDEuNC0xMC45IDEuNC0xNi42IDAtNDguNy0zNi4xLTg4LjktODMuMS05NS4yek0xNDQuNiA0MTZsNjEuOCAwLTMxLjIgMTA0LjFjLTMuNiAxMS45IDUuMyAyMy45IDE3LjggMjMuOSA0LjYgMCA5LTEuNyAxMi40LTQuN0wzNDYuNSA0MTIuOWMzLjUtMy4xIDUuNS03LjYgNS41LTEyLjQgMC05LjItNy40LTE2LjYtMTYuNi0xNi42bC02MS44IDAgMzEuMi0xMDQuMWMzLjYtMTEuOS01LjMtMjMuOS0xNy44LTIzLjktNC42IDAtOSAxLjctMTIuNCA0LjdMMTMzLjUgMzg3LjFjLTMuNSAzLjEtNS41IDcuNi01LjUgMTIuNCAwIDkuMiA3LjQgMTYuNiAxNi42IDE2LjZ6XCJdXG59O1xudmFyIGZhUG9vQm9sdCA9IGZhUG9vU3Rvcm07XG52YXIgZmFWaWRlb1NsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpZGVvLXNsYXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNGUyXCIsIFwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE1My0xNTMgMC0yMjIuMmMwLTM1LjMtMjguNy02NC02NC02NEwxMjkuOCA2NCA0MS0yNC45ek0zMiAxMjhsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjNy44IDAgMTUuMy0xLjQgMjIuMi00TDM2IDEwNS44Yy0yLjYgNi45LTQgMTQuNC00IDIyLjJ6TTQ2NCAzMzZsNzMuNSA1OC44YzQuMiAzLjQgOS40IDUuMiAxNC44IDUuMiAxMy4xIDAgMjMuNy0xMC42IDIzLjctMjMuN2wwLTI0MC42YzAtMTMuMS0xMC42LTIzLjctMjMuNy0yMy43LTUuNCAwLTEwLjYgMS44LTE0LjggNS4yTDQ2NCAxNzYgNDY0IDMzNnpcIl1cbn07XG52YXIgZmFTcXVhcmVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUteG1hcmsnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMDA2MiwgXCJ0aW1lcy1zcXVhcmVcIiwgXCJ4bWFyay1zcXVhcmVcIl0sIFwiZjJkM1wiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJdXG59O1xudmFyIGZhVGltZXNTcXVhcmUgPSBmYVNxdWFyZVhtYXJrO1xudmFyIGZhWG1hcmtTcXVhcmUgPSBmYVNxdWFyZVhtYXJrO1xudmFyIGZhSGFuZEhvbGRpbmdEcm9wbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtaG9sZGluZy1kcm9wbGV0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJoYW5kLWhvbGRpbmctd2F0ZXJcIl0sIFwiZjRjMVwiLCBcIk0yNzUuNSA2LjZMMjA5LjIgMTAzQzE5OCAxMTkuMyAxOTIgMTM4LjYgMTkyIDE1OC4zbDAgMS43YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xLjdjMC0xOS44LTYtMzktMTcuMi01NS4zTDMwMC41IDYuNkMyOTcuNyAyLjUgMjkzIDAgMjg4IDBzLTkuNyAyLjUtMTIuNSA2LjZ6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41elwiXVxufTtcbnZhciBmYUhhbmRIb2xkaW5nV2F0ZXIgPSBmYUhhbmRIb2xkaW5nRHJvcGxldDtcbnZhciBmYVdvblNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd29uLXNpZ24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFs4MzYxLCBcImtyd1wiLCBcIndvblwiXSwgXCJmMTU5XCIsIFwiTTYyLjQgNTMuOUM1Ni44IDM3LjEgMzguNyAyOC4xIDIxLjkgMzMuNlMtMy45IDU3LjQgMS43IDc0LjFMNTYuOSAyNDAgMzIgMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwLjkgMCA1Ni43IDE3MC4xYzQuNSAxMy41IDE3LjQgMjIuNCAzMS42IDIxLjlzMjYuNC0xMC40IDI5LjgtMjQuMkwyMzMgMjg4IDI3OSAyODggMzIxIDQ1NS44YzMuNCAxMy44IDE1LjYgMjMuNyAyOS44IDI0LjJzMjcuMS04LjQgMzEuNi0yMS45TDQzOS4xIDI4OCA0ODAgMjg4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNC45IDAgNTUuMy0xNjUuOWM1LjYtMTYuOC0zLjUtMzQuOS0yMC4yLTQwLjVzLTM0LjkgMy41LTQwLjUgMjAuMmwtNjIgMTg2LjEtNTQuNiAwLTQ1LjktMTgzLjhDMjgzLjUgNDIgMjcwLjcgMzIgMjU2IDMycy0yNy41IDEwLTMxIDI0LjJMMTc5IDI0MCAxMjQuNCAyNDAgNjIuNCA1My45em03OCAyMzQuMWwyNi42IDAtMTEuNCA0NS42LTE1LjItNDUuNnpNMjQ1IDI0MGwxMS00NC4xIDExIDQ0LjEtMjIgMHptMTAwIDQ4bDI2LjYgMC0xNS4yIDQ1LjYtMTEuNC00NS42elwiXVxufTtcbnZhciBmYUtydyA9IGZhV29uU2lnbjtcbnZhciBmYVdvbiA9IGZhV29uU2lnbjtcbnZhciBmYU9iamVjdFVuZ3JvdXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnb2JqZWN0LXVuZ3JvdXAnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyNDhcIiwgXCJNMzIgMTE5LjRDMTIuOSAxMDguNCAwIDg3LjcgMCA2NCAwIDI4LjcgMjguNyAwIDY0IDAgODcuNyAwIDEwOC40IDEyLjkgMTE5LjQgMzJsMjA5LjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDExMy4xYzE5LjEgMTEuMSAzMiAzMS43IDMyIDU1LjQgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTExMy4xek0xMTkuNCA5NmMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40bDAgMTEzLjFjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDIwOS4xIDBjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40bDAtMTEzLjFjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNEwxMTkuNCA5NnpNNTQ0IDI3OS40Yy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRsLTI5LjIgMGMtNS4zLTE3LjctMTQuOC0zMy41LTI3LjQtNDYuNGwwLTE3LjYgNTYuNiAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTIwOS4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjQuNiA2NCAwIDAgMjQuNmM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjA5LjEgMGM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRsMC0xMTMuMXpcIl1cbn07XG52YXIgZmFDb21tZW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbW1lbnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg0ODksIDYxNjY5XSwgXCJmMDc1XCIsIFwiTTUxMiAyNDBjMCAxMzIuNS0xMTQuNiAyNDAtMjU2IDI0MC0zNy4xIDAtNzIuMy03LjQtMTA0LjEtMjAuN0wzMy41IDUxMC4xYy05LjQgNC0yMC4yIDEuNy0yNy4xLTUuOFMtMiA0ODUuOCAyLjggNDc2LjhsNDguOC05Mi4yQzE5LjIgMzQ0LjMgMCAyOTQuMyAwIDI0MCAwIDEwNy41IDExNC42IDAgMjU2IDBTNTEyIDEwNy41IDUxMiAyNDB6XCJdXG59O1xudmFyIGZhSGlsbEF2YWxhbmNoZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoaWxsLWF2YWxhbmNoZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUwN1wiLCBcIk00NDAuMSA0MDEuOWMzNC4yIDIzLjEgODEuMSAxOS41IDExMS40LTEwLjggMzQuNC0zNC40IDM0LjQtOTAuMSAwLTEyNC41LTI3LjgtMjcuOC02OS41LTMzLjEtMTAyLjYtMTYtMTEuOCA2LjEtMTYuNCAyMC42LTEwLjMgMzIuM3MyMC42IDE2LjQgMzIuMyAxMC4zYzE1LjEtNy44IDM0LTUuMyA0Ni42IDcuMyAxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNnMtNDAuOSAxNS42LTU2LjYgMGwtODEuNy04MS43YzIyLjMtMTQuMiAzNy4xLTM5LjEgMzcuMS02Ny41IDAtMzMuOS0yMS4xLTYyLjktNTAuOS03NC41IDEuOS02LjggMi45LTE0IDIuOS0yMS41IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI3LjMgMC01MS41IDEzLjctNjUuOSAzNC42LTUuOC0yMC0yNC4yLTM0LjYtNDYuMS0zNC42LTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgNCAuNSA3LjkgMS40IDExLjZMNDQwLjEgNDAxLjl6TTQ4MC40IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNjguNyA4N0M0My41IDYxLjggLjQgNzkuNyAuNCAxMTUuM0wuNCA0MzJjMCA0NC4yIDM1LjggODAgODAgODBsMzE2LjcgMGMzNS42IDAgNTMuNS00My4xIDI4LjMtNjguM0w2OC43IDg3elwiXVxufTtcbnZhciBmYUFycm93c1RvRXllID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy10by1leWUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0YmZcIiwgXCJNMTc2IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzguMS02My02M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMjEuNyA1NS42IDMxIDY1bDYzIDYzLTM4LjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOTZ6bTAgNDAwbDAtOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzguMSAwLTYzIDYzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNjMtNjMgMCAzOC4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6bTMxMiAyNGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTM4LjEgNjMgNjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02My02MyAzOC4xIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjR6TTQ2NCA1NmwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTM4LjEgMCA2My02M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC02MyA2MyAwLTM4LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6TTMyMCAxMjBjLTU3LjMgMC05OS40IDM0LTEyNS42IDY0LjMtMjAgMjMuMS0zMi40IDQ1LjgtMzcuNiA1Ni4xLTIuNSA1LTQuOSA5LjctNC45IDE1LjZzMi4zIDEwLjYgNC45IDE1LjZjNS4yIDEwLjMgMTcuNiAzMyAzNy42IDU2LjEgMjYuMiAzMC4zIDY4LjIgNjQuMyAxMjUuNiA2NC4zczk5LjQtMzQgMTI1LjYtNjQuM2MyMC0yMy4xIDMyLjQtNDUuOCAzNy42LTU2LjEgMi41LTUgNC45LTkuNyA0LjktMTUuNnMtMi4zLTEwLjYtNC45LTE1LjZjLTUuMi0xMC4zLTE3LjYtMzMtMzcuNi01Ni4xLTI2LjItMzAuMy02OC4yLTY0LjMtMTI1LjYtNjQuM3pNMjU2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6XCJdXG59O1xudmFyIGZhU25vd3Bsb3cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc25vd3Bsb3cnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3ZDJcIiwgXCJNMTI4IDE2MGwwLTk2YzAtMzUuMyAyOC43LTY0IDY0LTY0TDI5Ni40IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsODcuNiAxNzUuMWM0LjQgOC45IDYuOCAxOC43IDYuOCAyOC42bDAgNTYuOSA4MCAwIDAtODBjMC00OC42IDM5LjQtODggODgtODggMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgMjA4YzAgMjIuMSAxNy45IDQwIDQwIDQwIDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy00OC42IDAtODgtMzkuNC04OC04OGwwLTgwLTYzIDBjOS41IDE2LjUgMTUgMzUuNiAxNSA1NiAwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMjI0IDBjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyIDAtMzAuNSAxMi4yLTU4LjIgMzItNzguNEw2NCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6bTkxLjcgMzQuOWw0My42IDI5LjEgMTEzLjIgMC04MC0xNjAtMTA0LjQgMCAwIDEwOC44IDI3LjcgMjIuMXpNNDE2IDQwMGMwLTI2LjUtMjEuNS00OC00OC00OGwtMjI0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6bS0yODAgMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yMTYtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yMzIgNDAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xudmFyIGZhQ2hhcnRHYW50dCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGFydC1nYW50dCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTBlNFwiLCBcIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQwMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MDAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCA0MTZjLTguOCAwLTE2LTcuMi0xNi0xNkw2NCA2NHptOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwem02NCAxMTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwek0zODQgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6XCJdXG59O1xudmFyIGZhVmlkZW8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmlkZW8nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInZpZGVvLWNhbWVyYVwiXSwgXCJmMDNkXCIsIFwiTTk2IDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw5NiA2NHpNNDY0IDMzNmw3My41IDU4LjhjNC4yIDMuNCA5LjQgNS4yIDE0LjggNS4yIDEzLjEgMCAyMy43LTEwLjYgMjMuNy0yMy43bDAtMjQwLjZjMC0xMy4xLTEwLjYtMjMuNy0yMy43LTIzLjctNS40IDAtMTAuNiAxLjgtMTQuOCA1LjJMNDY0IDE3NiA0NjQgMzM2elwiXVxufTtcbnZhciBmYVZpZGVvQ2FtZXJhID0gZmFWaWRlbztcbnZhciBmYUNoZXNzUGF3biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1wYXduJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbOTgyM10sIFwiZjQ0M1wiLCBcIk0xOTItMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAyNy04LjkgNTEuOS0yNCA3MiAxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTAuNyAwIDI2LjcgMTYwIDU2LjIgNzAuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUw1MS41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMODAgMzg0IDEwNi43IDIyNCA5NiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjLTE1LjEtMjAuMS0yNC00NS0yNC03MiAwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHpcIl1cbn07XG52YXIgZmFTeW5hZ29ndWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3luYWdvZ3VlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MzMzXSwgXCJmNjliXCIsIFwiTTE2IDgwYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMi0xMjggMCAwLTMyem0wIDM2OGwwLTI4OCAxMjggMCAxMjYuMi04NC4yYzEwLjctNy4yIDI0LjgtNy4yIDM1LjUgMGwxMjYuMiA4NC4yIDEyOCAwIDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTU2MCAxMTJsLTEyOCAwIDAtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDMyek0yMjQgMzg0bDAgODAgMTI4IDAgMC04MGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NHptNjQtMTUyYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpcIl1cbn07XG52YXIgZmFCdWlsZGluZ0NpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLWNpcmNsZS1jaGVjaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRkMlwiLCBcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41elwiXVxufTtcbnZhciBmYUNhbGVuZGFyUGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1wbHVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjcxXCIsIFwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMCAwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OCA0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6XCJdXG59O1xudmFyIGZhV2hlZWxjaGFpck1vdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2hlZWxjaGFpci1tb3ZlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ3aGVlbGNoYWlyLWFsdFwiXSwgXCJlMmNlXCIsIFwiTTMxMiA1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTIwNS40IDEyNC4xYy02LjQtNS4yLTE1LjYtNC43LTIxLjQgMS4xbC0zMy40IDMzLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDEzOC44IDgwYzI5LTI5IDc1LjItMzEuNCAxMDctNS41bDgxLjMgNjZjMjEuNCAxNy40IDIzLjggNDkuMiA1LjIgNjkuNWwtNDEuOCA0NiA5OCAwYzMwLjMgMCA1MyAyNy43IDQ3LjEgNTcuNEw0MDcuNCA0NTQuM2MtMy41IDE3LjMtMjAuMyAyOC42LTM3LjcgMjUuMXMtMjguNi0yMC4zLTI1LjEtMzcuN0wzNjkgMzIwIDMxNi44IDMyMGMyLjEgMTAuMyAzLjIgMjEgMy4yIDMyIDAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDQwLjQgMCAzNTIgNzEuNiAxOTIgMTYwIDE5MmM2IDAgMTEuOSAuMyAxNy44IDFsNTAuNC01MC40LTIyLjctMTguNXpNMTYwIDQ0OGE5NiA5NiAwIDEgMCAwLTE5MiA5NiA5NiAwIDEgMCAwIDE5MnpcIl1cbn07XG52YXIgZmFXaGVlbGNoYWlyQWx0ID0gZmFXaGVlbGNoYWlyTW92ZTtcbnZhciBmYVVzZXJTaGllbGQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1zaGllbGQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1MDVcIiwgXCJNMjI0IDI0OGExMjAgMTIwIDAgMSAwIDAtMjQwIDEyMCAxMjAgMCAxIDAgMCAyNDB6bS0yOS43IDU2Qzk1LjggMzA0IDE2IDM4My44IDE2IDQ4Mi4zIDE2IDQ5OC43IDI5LjMgNTEyIDQ1LjcgNTEybDI1MS41IDBDMjYxIDQ2OS40IDI0MCA0MTQuNSAyNDAgMzU2LjRsMC0zMS4xYzAtNy4zIDEtMTQuNSAyLjktMjEuM2wtNDguNiAwem0yNTEgMTg0LjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAwelwiXVxufTtcbnZhciBmYUJvbGQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9sZCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjAzMlwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzIgMCAwIDMyMC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIyNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDYuNS0yNC44LTg3LjMtNjItMTA5LjcgMTguNy0yMi4zIDMwLTUxIDMwLTgyLjMgMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTI4OCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDAgMC0xMjggOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHpNMTI4IDQxNmwwLTEyOCAxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTI4IDB6XCJdXG59O1xudmFyIGZhSGVhcnRQdWxzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1wdWxzZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiaGVhcnRiZWF0XCJdLCBcImYyMWVcIiwgXCJNMjU2IDEwNy45TDI0MSA4Ny4xQzIxNiA1Mi41IDE3NS45IDMyIDEzMy4xIDMyIDU5LjYgMzIgMCA5MS42IDAgMTY1LjFsMCAyLjZjMCAyMy42IDYuMiA0OCAxNi42IDcyLjNsMTA2IDBjMy4yIDAgNi4xLTEuOSA3LjQtNC45bDMxLjgtNzYuM2MzLjctOC44IDEyLjMtMTQuNiAyMS44LTE0LjhzMTguMyA1LjQgMjIuMiAxNC4xbDUxLjMgMTEzLjkgNDEuNC04Mi44YzQuMS04LjEgMTIuNC0xMy4zIDIxLjUtMTMuM3MxNy40IDUuMSAyMS41IDEzLjNsMjMuMiA0Ni4zYzEuNCAyLjcgNC4xIDQuNCA3LjIgNC40bDEyMy42IDBjMTAuNS0yNC4zIDE2LjYtNDguNyAxNi42LTcyLjNsMC0yLjZDNTEyIDkxLjYgNDUyLjQgMzIgMzc4LjkgMzIgMzM2LjIgMzIgMjk2IDUyLjUgMjcxIDg3LjFsLTE1IDIwLjd6TTQ2OS42IDI4OGwtOTcuOCAwYy0yMS4yIDAtNDAuNi0xMi01MC4xLTMxbC0xLjctMy40LTQyLjUgODUuMWMtNC4xIDguMy0xMi43IDEzLjUtMjIgMTMuM3MtMTcuNi01LjctMjEuNC0xNC4xbC00OS4zLTEwOS41LTEwLjUgMjUuMmMtOC43IDIwLjktMjkuMSAzNC41LTUxLjcgMzQuNWwtODAuMiAwYzQ3LjIgNzMuOCAxMjMgMTQxLjcgMTcwLjQgMTc3LjkgMTIuNCA5LjQgMjcuNiAxNC4xIDQzLjEgMTQuMXMzMC44LTQuNiA0My4xLTE0LjFDMzQ2LjYgNDI5LjcgNDIyLjQgMzYxLjggNDY5LjYgMjg4elwiXVxufTtcbnZhciBmYUhlYXJ0YmVhdCA9IGZhSGVhcnRQdWxzZTtcbnZhciBmYVNxdWFyZVJvb3RWYXJpYWJsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtcm9vdC12YXJpYWJsZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wic3F1YXJlLXJvb3QtYWx0XCJdLCBcImY2OThcIiwgXCJNMjgyLjYgNzguMWM4LTI3LjMgMzMtNDYuMSA2MS40LTQ2LjFsMjAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzQ0IDk2IDIzOC43IDQ1N2MtMy42IDEyLjMtMTQuMSAyMS4yLTI2LjggMjIuOHMtMjUuMS00LjYtMzEuNS0xNS42TDc3LjYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NS42IDBjMjIuOCAwIDQzLjggMTIuMSA1NS4zIDMxLjhsNjUuMiAxMTEuOCA4NC40LTI4OS41ek0zOTMuNCAyMzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0MS40IDQxLjQgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTQxLjQgNDEuNCA0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNC00MS40IDQxLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDQxLjQtNDEuNC00MS40LTQxLjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zelwiXVxufTtcbnZhciBmYVNxdWFyZVJvb3RBbHQgPSBmYVNxdWFyZVJvb3RWYXJpYWJsZTtcbnZhciBmYUhhbmRzQnViYmxlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kcy1idWJibGVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJoYW5kcy13YXNoXCJdLCBcImUwNWVcIiwgXCJNMzg0IDY0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptOTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMTI4IDQ2NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0wIDE2MGwuMSA3Mi42YzAgNDQuOCAxNy42IDg3LjEgNDcuOSAxMTguNCAuMy03NyA0MC4xLTE0OC40IDEwNS40LTE4OS4zbDEuOS0xLjJjLTIuNS0zLjctMi44LTguNi0uNC0xMi43bDYyLTEwNy40YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44UzE4MiA1IDE3NS40IDE2LjVsLTY4IDExNy44IDAgMCAwIDAtNDMuMyA3NSAwLTQ5LjNjMC0xNy43LTE0LjQtMzItMzItMzJTMCAxNDIuNCAwIDE2MHptMjEzLjYtMzUuOWMxNC4xLTguOCAyOS44LTEyLjcgNDUuMi0xMi4xbDM2LjUtNjMuM2M2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4LjhsLTY3LjEgMTE2LjIgMjctMTYuOXptODYuNS0zNS43bC0xNi40IDI4LjRjMTUuMSA1LjUgMjguNiAxNS42IDM4LjMgMjkuN2wxOS43LTM0LjJjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44em00Ni40IDYzLjdsLTEyLjUgMjEuN2MyIDguNiAyLjUgMTcuNSAxLjcgMjYuMWw0LjMgMCAwIDAgMzQuNCAwIDEzLjctMjMuOGM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4Ljh6TTI4My4xIDE3NWMtOS40LTE1LTI5LjEtMTkuNS00NC4xLTEwLjJsLTYwLjIgMzcuNkMxMjcuMyAyMzQuNyA5NiAyOTEuMiA5NiAzNTJsMCA4YzAgOC45IC44IDE3LjYgMi4yIDI2LjEgMzUuNCA4LjIgNjEuOCA0MCA2MS44IDc3LjkgMCA2LjMtLjcgMTIuNS0yLjEgMTguNCAyNS4yIDE4LjYgNTYuNCAyOS42IDkwLjEgMjkuNmwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTIgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI0IDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE1NiAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDEyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMzYgMCAwIDAgMCAwLTkzLjIgMCA0Ni4yLTI4LjljMTUtOS40IDE5LjUtMjkuMSAxMC4yLTQ0LjF6XCJdXG59O1xudmFyIGZhSGFuZHNXYXNoID0gZmFIYW5kc0J1YmJsZXM7XG52YXIgZmFNYXJrZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFya2VyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWExXCIsIFwiTTQwOC44IDBjLTI3LjQgMC01My42IDEwLjktNzMgMzAuMkwzMTguMSA0OCAzMDUgMzQuOWMtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwTDEwMyAxMzVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwyMzcuMSA2OC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI4NC4xIDgxLjkgMTg0IDE4Mi4xIDMyOS45IDMyOCA0ODEuOCAxNzYuMmMxOS40LTE5LjQgMzAuMi00NS42IDMwLjItNzMgMC01Ny00Ni4yLTEwMy4yLTEwMy4yLTEwMy4yek0xMDIuNCAyNjMuN2MtNDkuOSA0OS45LTgzLjMgMTE0LTk1LjUgMTgzLjVMLjQgNDgzLjhDLTEgNDkxLjYgMS41IDQ5OS40IDcgNTA1czEzLjQgOCAyMS4xIDYuN2wzNi43LTYuNWM2OS41LTEyLjMgMTMzLjYtNDUuNiAxODMuNS05NS41TDI5NiAzNjEuOSAxNTAuMSAyMTYgMTAyLjQgMjYzLjd6XCJdXG59O1xudmFyIGZhQ2xpcGJvYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NsaXBib2FyZCcsXG4gIGljb246IFszODQsIDUxMiwgWzEyODIwM10sIFwiZjMyOFwiLCBcIk0zMjAgMzJsLTguNiAwQzMwMC40IDEyLjkgMjc5LjcgMCAyNTYgMEwxMjggMEMxMDQuMyAwIDgzLjYgMTIuOSA3Mi42IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTEzNiAxMTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAwelwiXVxufTtcbnZhciBmYVBsYWNlT2ZXb3JzaGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYWNlLW9mLXdvcnNoaXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2N2ZcIiwgXCJNMTYwIDc5bDAgODEtNDQuOCAzMy42QzEwMy4xIDIwMi43IDk2IDIxNi45IDk2IDIzMmwwIDQwLTYwLjYgMzAuM0MxMy43IDMxMy4yIDAgMzM1LjMgMCAzNTkuNkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCA3NC43IDAgODUuNCAwIDMyMCAwbDY0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC04OC40YzAtMjQuMi0xMy43LTQ2LjQtMzUuNC01Ny4yTDQxNiAyNzIgNDE2IDIzMmMwLTE1LjEtNy4xLTI5LjMtMTkuMi0zOC40TDM1MiAxNjAgMzUyIDc5YzAtOS41LTQuMi0xOC41LTExLjUtMjQuNkwyNzEuNC0zLjJjLTguOS03LjQtMjEuOC03LjQtMzAuNyAwTDE3MS41IDU0LjRDMTY0LjIgNjAuNSAxNjAgNjkuNSAxNjAgNzl6bTk2IDI0MWMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDgwLTEyOCAwIDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjR6XCJdXG59O1xudmFyIGZhQ2FubmFiaXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FubmFiaXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NWZcIiwgXCJNMjU2IDBjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjEgMTUuOCAyMy41IDM2LjcgNjMuNyA0OS4yIDEwOSA3LjMgMjYuNCAxMS44IDU1LjMgMTAuMyA4NCAxMS42LTguOSAyMy43LTE2LjcgMzUuOS0yMy43IDQxLTIzLjMgODQuNC0zNi45IDExMi4yLTQyLjUgNS4yLTEgMTAuNyAuNiAxNC40IDQuNHM1LjQgOS4yIDQuNCAxNC41Yy01LjYgMjcuNy0xOS4zIDcwLjktNDIuNyAxMTEuNy05LjEgMTUuOS0xOS45IDMxLjctMzIuNSA0Ni4zIDI3LjkgNi42IDUyLjUgMTcuMiA2Ny4zIDI1LjQgNS4xIDIuOCA4LjIgOC4yIDguMiAxNHMtMy4yIDExLjItOC4yIDE0Yy0xNS4yIDguNC00MC45IDE5LjUtNjkuOCAyNi4xLTIwLjIgNC42LTQyLjkgNy4yLTY1LjIgNC42bDguMyAzMy4yYzEuNSA2LjEtLjYgMTIuNS01LjUgMTYuNHMtMTEuNiA0LjYtMTcuMiAxLjhMMjgwIDQxNy4yIDI4MCA0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03MC44LTU4LjUgMjkuMWMtNS42IDIuOC0xMi4zIDIuMS0xNy4yLTEuOHMtNy0xMC4zLTUuNS0xNi40bDguMy0zMy4yYy0yMi4yIDIuNi00NSAwLTY1LjItNC42LTI4LjktNi42LTU0LjUtMTcuNi02OS44LTI2LjEtNS4xLTIuOC04LjItOC4yLTguMi0xNHMzLjItMTEuMiA4LjItMTRsNi4yLTMuM2MxNS03LjYgMzYuOC0xNi40IDYxLjEtMjIuMi0xMi41LTE0LjUtMjMuMy0zMC40LTMyLjQtNDYuMi0yMy40LTQwLjgtMzcuMS04NC00Mi43LTExMS43LTEuMS01LjIgLjYtMTAuNyA0LjQtMTQuNXM5LjItNS40IDE0LjQtNC40YzI3LjkgNS41IDcxLjIgMTkuMiAxMTIuMiA0Mi41IDEyLjIgNi45IDI0LjMgMTQuOCAzNS44IDIzLjctMS40LTI4LjcgMy4xLTU3LjYgMTAuMy04NCAxMi41LTQ1LjMgMzMuNC04NS41IDQ5LjItMTA5bDEuMi0xLjZDMjQ2LjkgMiAyNTEuMyAwIDI1NiAwelwiXVxufTtcbnZhciBmYVBlb3BsZVJvb2YgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVvcGxlLXJvb2YnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MzdcIiwgXCJNMzAyLjMtMTIuNmMtOS00LjUtMTkuNi00LjUtMjguNiAwbC0yNTYgMTI4QzEuOSAxMjMuMy00LjUgMTQyLjUgMy40IDE1OC4zczI3LjEgMjIuMiA0Mi45IDE0LjNMMjg4IDUxLjggNTI5LjcgMTcyLjZjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45bC0yNTYtMTI4ek0yODggMjcyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0wIDQ4Yy01MyAwLTk2IDQzLTk2IDk2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTUzLTQzLTk2LTk2LTk2ek0xNjAgMjU2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTExMiAzMzZjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMzMuMWMwIDE3IDEzLjggMzAuOSAzMC45IDMwLjlsODcuOCAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTQ4YzAtMTguNCAzLjUtMzYgOS44LTUyLjItMTIuMi03LjUtMjYuNS0xMS44LTQxLjgtMTEuOHpNNDI1LjQgNDgwbDg3LjggMGMxNyAwIDMwLjktMTMuOCAzMC45LTMwLjlsMC0zMy4xYzAtNDQuMi0zNS44LTgwLTgwLTgwLTE1LjMgMC0yOS42IDQuMy00MS44IDExLjggNi4zIDE2LjIgOS44IDMzLjggOS44IDUyLjJsMCA0OGMwIDExLjQtMi40IDIyLjItNi43IDMyelwiXVxufTtcbnZhciBmYURpc2Vhc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGlzZWFzZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdmYVwiLCBcIk0yMzYuNSAyOS40TDIyNCA0OGMtMjAgMzAtNTMuNiA0OC04OS43IDQ4TDY4IDk2Yy0zNy41IDAtNjcuOSAzMC40LTY3LjkgNjcuOSAwIDE4IDcuMiAzNS4yIDE5LjkgNDcuOWwyNyAyN2MxMSAxMSAxNy4yIDI1LjkgMTcuMiA0MS41IDAgMTUuOC02LjQgMzAuOS0xNy43IDQyTDMzLjQgMzM1LjFjLTExLjEgMTAuOC0xNy4zIDI1LjctMTcuMyA0MS4yIDAgMzYuOCAzNC4xIDY0LjIgNzAuMSA1Ni4ybDYyLjMtMTMuOGM3LjctMS43IDE1LjctMi42IDIzLjYtMi42IDMyLjggMCA2NC4yIDE0LjYgODUuMiAzOS44bDMwLjUgMzYuNmMxMC40IDEyLjQgMjUuNyAxOS42IDQxLjkgMTkuNiAzMC4xIDAgNTQuNS0yNC40IDU0LjUtNTQuNWwwLTUxLjJjMC00MS40IDI1LjQtNzguNSA2NC05My41bDIyLjItOC42YzI1LjItOS44IDQxLjgtMzQuMSA0MS44LTYxLjEgMC0yNi40LTE1LjktNTAuMy00MC4zLTYwLjVMNDI5IDE2NC44Yy0zMy4yLTEzLjktNTcuNi00My02NS41LTc4LjFsLTcuOS0zNS4yYy02LjgtMzAuMS0zMy41LTUxLjUtNjQuMy01MS41LTIyIDAtNDIuNiAxMS01NC44IDI5LjR6TTE2MCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFCb29rQmlibGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1iaWJsZScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiYmlibGVcIl0sIFwiZjY0N1wiLCBcIk05NiA1MTJjLTUzIDAtOTYtNDMtOTYtOTZMMCA5NkMwIDQzIDQzIDAgOTYgMEw0MDAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDIwLjktMTMuNCAzOC43LTMyIDQ1LjNsMCA2Ni43YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDUxMnptMC0xMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDAgMC02NC0yNTYgMHpNMTkyIDgwbDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDAgMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyIDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6XCJdXG59O1xudmFyIGZhQmlibGUgPSBmYUJvb2tCaWJsZTtcbnZhciBmYUNoZXNzQm9hcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlc3MtYm9hcmQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY0M2NcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgNjRsMCA2NCA2NCAwIDAtNjQgNjQgMCAwIDY0IDY0IDAgMC02NCA2NCAwIDAgNjQtNjQgMCAwIDY0IDY0IDAgMCA2NC02NCAwIDAgNjQgNjQgMCAwIDY0LTY0IDAgMC02NC02NCAwIDAgNjQtNjQgMCAwLTY0LTY0IDAgMCA2NC02NCAwIDAtNjQgNjQgMCAwLTY0LTY0IDAgMC02NCA2NCAwIDAtNjQtNjQgMCAwLTY0IDY0IDB6bTY0IDEyOGw2NCAwIDAtNjQtNjQgMCAwIDY0em0wIDY0bDAtNjQtNjQgMCAwIDY0IDY0IDB6bTY0IDBsLTY0IDAgMCA2NCA2NCAwIDAtNjR6bTAgMGw2NCAwIDAtNjQtNjQgMCAwIDY0elwiXVxufTtcbnZhciBmYU1hcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFycycsXG4gIGljb246IFs1MTIsIDUxMiwgWzk3OTRdLCBcImYyMjJcIiwgXCJNMzIwIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDQ4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNTAuNy05NSA5NWMxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzMyIDQwMS4yIDMyIDMwNCAxMTAuOCAxMjggMjA4IDEyOGMzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDk1LTk1LTUwLjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTIwOCA0MTZhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0elwiXVxufTtcbnZhciBmYUxhcHRvcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYXB0b3AnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjgxODddLCBcImYxMDlcIiwgXCJNMTI4IDMyQzkyLjcgMzIgNjQgNjAuNyA2NCA5NmwwIDI0MCA2NCAwIDAtMjQwIDM4NCAwIDAgMjQwIDY0IDAgMC0yNDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTI4IDMyek0xOS4yIDM4NEM4LjYgMzg0IDAgMzkyLjYgMCA0MDMuMiAwIDQ0NS42IDM0LjQgNDgwIDc2LjggNDgwbDQ4Ni40IDBjNDIuNCAwIDc2LjgtMzQuNCA3Ni44LTc2LjggMC0xMC42LTguNi0xOS4yLTE5LjItMTkuMkwxOS4yIDM4NHpcIl1cbn07XG52YXIgZmFVc2VyWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci14bWFyaycsXG4gIGljb246IFs2NDAsIDUxMiwgW1widXNlci10aW1lc1wiXSwgXCJmMjM1XCIsIFwiTTEzNi40IDEyOGExMjAgMTIwIDAgMSAxIDI0MCAwIDEyMCAxMjAgMCAxIDEgLTI0MCAwem0tODggMzU0LjNjMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjNsNTkuNCAwYzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDc4LjEgNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuN3pNNjEyLjMgMTI0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHpcIl1cbn07XG52YXIgZmFVc2VyVGltZXMgPSBmYVVzZXJYbWFyaztcbnZhciBmYUZsYWdVc2EgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmxhZy11c2EnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY3NGRcIiwgXCJNMzIgMEM0OS43IDAgNjQgMTQuMyA2NCAzMmwwIDE2IDY5LTE3LjJjMzguMS05LjUgNzguMy01LjEgMTEzLjUgMTIuNSA0Ni4zIDIzLjIgMTAwLjggMjMuMiAxNDcuMSAwbDkuNi00LjhDNDIzLjggMjguMSA0NDggNDMuMSA0NDggNjYuMWwwIDM2LjEtNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy0yMC4zLTktNDEuOC0xNC43LTYzLjYtMTYuOWwwIDMyLjJjMTcuNCAyLjEgMzQuNCA2LjcgNTAuNiAxMy45bDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRsMzMuNy0xMi4zIDAgNjItNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy00MC4yLTE3LjktODUtMjIuNS0xMjguMS0xMy4zbC02My41IDEzLjYgMCAzMi43IDcwLjItMTUuMWMzNi40LTcuOCA3NC4zLTMuOSAxMDguNCAxMS4zbDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRsMzMuNy0xMi4zIDAgNjEuOS00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNsLTYzLjUgMTMuNiAwIDMyLjcgNzAuMi0xNS4xYzM2LjQtNy44IDc0LjMtMy45IDEwOC40IDExLjNsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCAzMy41YzAgMTMuMy04LjMgMjUuMy0yMC44IDMwbC0zNC43IDEzYy00Ni4yIDE3LjMtOTcuNiAxNC42LTE0MS43LTcuNC0zNy45LTE5LTgxLjQtMjMuNy0xMjIuNS0xMy40TDY0IDQwMCA2NCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0OTcuNyAwIDQ4MEwwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMHptODAgOTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMzIgMGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bS0zMiA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zMiAwYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIl1cbn07XG52YXIgZmFIYW5kTWlkZGxlRmluZ2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtbWlkZGxlLWZpbmdlcicsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODQwNV0sIFwiZjgwNlwiLCBcIk0yMzIgMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAxNjQuMmMtOC41LTcuNi0xOS43LTEyLjItMzItMTIuMi0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNTUuN2MtMiAxLjQtMy45IDMtNS44IDQuNUw1NSAyODQuOEM0MC40IDI5NyAzMiAzMTUgMzIgMzM0TDMyIDM3MmMwIDM4IDE2LjkgNzQgNDYuMSA5OC4zbDUuNCA0LjVjMjguOCAyNCA2NSAzNy4xIDEwMi40IDM3LjFMMzA0IDUxMmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4LTEyLjQgMC0yMy42IDQuNy0zMi4xIDEyLjMtMS45LTI0LjgtMjIuNi00NC4zLTQ3LjktNDQuMy0xMi4zIDAtMjMuNSA0LjYtMzIgMTIuMkwyNzIgNDBjMC0yMi4xLTE3LjktNDAtNDAtNDB6XCJdXG59O1xudmFyIGZhTW9ydGFyUGVzdGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vcnRhci1wZXN0bGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YTdcIiwgXCJNNTA0LjMgMTEuMUM0OTMuMy0xLjYgNDc0LjUtMy43IDQ2MSA2LjJMMjUyLjMgMTYwIDM5Ny4zIDE2MCA1MDIuNiA1NC42YzExLjgtMTEuOCAxMi42LTMwLjggMS42LTQzLjV6TTMyIDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmMwIDgyLjUgNDMuNCAxNDcuNyAxMjMuOSAxNzYuMi0xMS4xIDEzLjktMTkuNCAzMC4zLTIzLjkgNDguMS00LjQgMTcuMSAxMC40IDMxLjcgMjguMSAzMS43bDE5MiAwYzE3LjcgMCAzMi40LTE0LjYgMjguMS0zMS43LTQuNS0xNy44LTEyLjgtMzQuMS0yMy45LTQ4LjEgODAuNS0yOC42IDEyMy45LTkzLjcgMTIzLjktMTc2LjIgMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTkyelwiXVxufTtcbnZhciBmYUhlYWRTaWRlQ291Z2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhZC1zaWRlLWNvdWdoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMDYxXCIsIFwiTTk2IDUxMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZsMSAwYzI2IDAgNDctMjEgNDctNDcgMC0xMS0zLjktMjEuNi0xMC45LTMwLjFMMjczLjMgMjAwQzI3MS40IDE5Ny42IDI3MC4xIDE5NC43IDI2OS43IDE5MS43IDI1NCA4My4zIDE2MC43IDAgNDggMCA0MC40IDAgMzIuOSAuNCAyNS40IDEuMSAxMC41IDIuNiAwIDE1LjkgMCAzMC45TDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDB6bTE2LTMyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem02My4xIDIzNy4ybC00MS41LTMuNWMtMTIuMi0xLTIxLjYtMTEuMi0yMS42LTIzLjQgMC0xMC44IDcuMy0yMC4yIDE3LjgtMjIuOGw0MC40LTEwLjFjMTkuMi00LjggMzcuOCA5LjcgMzcuOCAyOS41IDAgMTcuOC0xNS4yIDMxLjgtMzIuOSAzMC4zek00ODAgMzEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwIDI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS02NCA0OGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0xMjggMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek00ODAgNTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwLTcyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6XCJdXG59O1xudmFyIGZhUGxhbmVMb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYW5lLWxvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NThcIiwgXCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA4Mi4xIDc1LjJDNDA5LjcgMjQ4LjEgNDAwIDI3NC45IDQwMCAzMDRsMCAyNC40Yy03LjMgNi42LTEzLjYgMTQuMi0xOC43IDIyLjdsLTM3LjMtMTIuNCAwIDk5LjcgMjQgMTkuMiAwIDM4LjNjMCAxMy41IDIuOCAyNi40IDcuOCAzOC4xTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek01NjAgMzA0LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek00MTYgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2elwiXVxufTtcbnZhciBmYUJhdHRlcnlUaHJlZVF1YXJ0ZXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhdHRlcnktdGhyZWUtcXVhcnRlcnMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImJhdHRlcnktNFwiXSwgXCJmMjQxXCIsIFwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDIyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0yMjQgMHpcIl1cbn07XG52YXIgZmFCYXR0ZXJ5NCA9IGZhQmF0dGVyeVRocmVlUXVhcnRlcnM7XG52YXIgZmFGcmFuY1NpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZnJhbmMtc2lnbicsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZTE4ZlwiLCBcIk04MCAzMkM2Mi4zIDMyIDQ4IDQ2LjMgNDggNjRsMCAyNTYtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTgwIDg4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg4IDAgMC02NCAxNDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTQ0IDAgMC05NiAxNzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCAzMnpcIl1cbn07XG52YXIgZmFGaWx0ZXJDaXJjbGVEb2xsYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsdGVyLWNpcmNsZS1kb2xsYXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImZ1bm5lbC1kb2xsYXJcIl0sIFwiZjY2MlwiLCBcIk0zMiA2NEMxOS4xIDY0IDcuNCA3MS44IDIuNCA4My44Uy4yIDEwOS41IDkuNCAxMTguNkwxOTIgMzAxLjMgMTkyIDQxNmMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMyLjUgMi41IDUuMyA0LjUgOC4zIDYtMjEuMi0zMC45LTMzLjYtNjguMy0zMy42LTEwOC42IDAtOTkuNCA3NS41LTE4MS4xIDE3Mi4zLTE5MWw5MC40LTkwLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQxNiAzMjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDUuOCAwYy01LjYgMC0xMC4yIDQuNi0xMC4yIDEwLjIgMCA0LjkgMy41IDkuMSA4LjMgMTBsNDUgOC4yYzIwIDMuNiAzNC42IDIxLjEgMzQuNiA0MS41IDAgMjMuMy0xOC45IDQyLjItNDIuMiA0Mi4ybC01LjggMCAwIDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04LTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNTMuOCAwYzUuNiAwIDEwLjItNC42IDEwLjItMTAuMiAwLTQuOS0zLjUtOS4xLTguMy0xMGwtNDUtOC4yYy0yMC0zLjYtMzQuNi0yMS4xLTM0LjYtNDEuNSAwLTIyLjYgMTcuNy00MSA0MC00Mi4xbDAtOC4xelwiXVxufTtcbnZhciBmYUZ1bm5lbERvbGxhciA9IGZhRmlsdGVyQ2lyY2xlRG9sbGFyO1xudmFyIGZhQ2hlZXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZWVzZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdlZlwiLCBcIk01MTIgMjQwLjJsMCAxNS44LTUxMiAwYzAtMjAgMTAtMzguNyAyNi42LTQ5LjhMMjc0LjkgNDAuN2M4LjYtNS43IDE4LjYtOC43IDI4LjktOC43IDExNSAwIDIwOC4yIDkzLjIgMjA4LjIgMjA4LjJ6bTAgNjMuOGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTEyIDUxMiAwelwiXVxufTtcbnZhciBmYUNpcmNsZUggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWgnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5NDA1LCBcImhvc3BpdGFsLXN5bWJvbFwiXSwgXCJmNDdlXCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem05Ni0zNDRsMCAxNzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC02NC05NiAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDk2IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0elwiXVxufTtcbnZhciBmYUhvc3BpdGFsU3ltYm9sID0gZmFDaXJjbGVIO1xudmFyIGZhU2Nob29sID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NjaG9vbCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyNzk3OV0sIFwiZjU0OVwiLCBcIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyNy45LTExNS4xYzE4LjMtMTYuNCA0Ni0xNi40IDY0LjIgMEw0NDggMTI4IDUxMiAxMjhjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MnpNMjI0IDM3NmwwIDg4IDEyOCAwIDAtODhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwem0tMTEyIDhjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTQ5NiAzODRjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTI4OCAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6XCJdXG59O1xudmFyIGZhRGljZUZpdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1maXZlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbOTg2MF0sIFwiZjUyM1wiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTk2IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0yMjQgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQtNjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgMTYwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFUb3JuYWRvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rvcm5hZG8nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjc3ODZdLCBcImY3NmZcIiwgXCJNMCAzMkwwIDQ1LjZDMCA2Mi43IDEuNyA3OS42IDUgOTZsMzUyLjggMGMzLjItNi45IDcuNS0xMy4zIDEzLTE4LjhsMzguNi0zOC42YzQuMi00LjIgNi42LTEwIDYuNi0xNiAwLTEyLjUtMTAuMS0yMi42LTIyLjYtMjIuNkwzMiAwQzE0LjMgMCAwIDE0LjMgMCAzMnpNMzU1LjcgMTQ0bC0zMzYgMGMxMi40IDI5LjcgMzAuMiA1Ni44IDUyLjcgODBsMzM5LjYgMC00Ny4yLTYyLjljLTMuOS01LjItNy0xMS05LjItMTcuMXpNMjQyLjYgMzM0LjdjOC4yIDQuOCAxNS44IDEwLjcgMjIuNSAxNy4zTDQ0NSAzNTJjMi05LjggMy0xOS45IDMtMzAuMSAwLTE3LjEtMi45LTM0LTguNi00OS45TDEzNiAyNzIgMjQyLjYgMzM0Ljd6TTI5NC4zIDQwMGM1LjMgMTcgNi41IDM1LjIgMy42IDUzbC01LjkgMzUuN2MtMiAxMi4yIDcuNCAyMy40IDE5LjggMjMuNCA1LjMgMCAxMC40LTIuMSAxNC4yLTUuOWw3OC4yLTc4LjJjOC41LTguNSAxNS44LTE3LjggMjEuOS0yNy45bC0xMzEuOCAwelwiXVxufTtcbnZhciBmYUpldEZpZ2h0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnamV0LWZpZ2h0ZXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImZpZ2h0ZXItamV0XCJdLCBcImYwZmJcIiwgXCJNNDk2LjIgMjA2LjhjLTEwLjctNC41LTIyLjItNi44LTMzLjgtNi44TDM2MiAyMDAgMjQ4IDQ4IDI5NiA0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyAwIDI5NiAwTDE1MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDggMCAwIDE1Mi01NC40IDAtNTIuOC02NmMtMy0zLjgtNy42LTYtMTIuNS02TDE2IDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODggNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMCAwIDg4YzAgOC44IDcuMiAxNiAxNiAxNmwyNC4zIDBjNC45IDAgOS41LTIuMiAxMi41LTZsNTIuOC02NiA1NC40IDAgMCAxNTItOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDExNC0xNTIgMTAwLjQgMGMxMS42IDAgMjMuMS0yLjMgMzMuOC02LjhsNjUtMjcuMWM4LjktMy43IDE0LjgtMTIuNSAxNC44LTIyLjJzLTUuOC0xOC40LTE0LjgtMjIuMmwtNjUtMjcuMXpcIl1cbn07XG52YXIgZmFGaWdodGVySmV0ID0gZmFKZXRGaWdodGVyO1xudmFyIGZhVGh1bWJzRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aHVtYnMtZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODA3OCwgNjE1NzZdLCBcImYxNjVcIiwgXCJNMzg0IDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNi4zLTEuMyAxMi4yLTMuNCAxNy43IDIwLjQgNS41IDM1LjQgMjQuMSAzNS40IDQ2LjMgMCA5LjEtMi42IDE3LjYtNyAyNC45IDIyLjIgNC4yIDM5IDIzLjcgMzkgNDcuMSAwIDE5LjctMTEuOSAzNi42LTI4LjkgNDQgMTcgNy40IDI4LjkgMjQuMyAyOC45IDQ0IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMCAyOC4yIDcwLjRjMi41IDYuMyAzLjggMTMuMSAzLjggMTkuOWwwIDQuMmMwIDI3LjMtMjIuMSA0OS40LTQ5LjQgNDkuNC0xOC43IDAtMzUuOC0xMC42LTQ0LjItMjcuM0wxNzAuMSAzNTYuM2MtNi43LTEzLjMtMTAuMS0yOC0xMC4xLTQyLjlsMC0xODYuNmMwLTE5LjQgOC45LTM3LjggMjQtNTBsMTIuMi05LjdDMjI0LjYgNDQuNCAyNTkuOCAzMiAyOTYuMSAzMkwzODQgMzJ6TTgwIDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0OCAwelwiXVxufTtcbnZhciBmYUJyb29tID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jyb29tJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI5NTI5XSwgXCJmNTFhXCIsIFwiTTU2Ni42IDU0LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTItMzQuNy0zNC43Yy00LjItNC4yLTEwLTYuNi0xNi02LjYtMTIuNSAwLTIyLjYgMTAuMS0yMi42IDIyLjZsMCAyOS4xIDEwOC4zIDEwOC4zIDI5LjEgMGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNiAwLTYtMi40LTExLjgtNi42LTE2bC0zNC43LTM0LjcgMTkyLTE5MnpNMzQxLjEgMzUzLjRMMjIyLjYgMjM0LjljLTQyLjctMy43LTg1LjIgMTEuNy0xMTUuOCA0Mi4zbC04IDhjLTIyLjMgMjIuMy0zNC44IDUyLjUtMzQuOCA4NCAwIDYuOCA3LjEgMTEuMiAxMy4yIDguMmw1MS4xLTI1LjVjNS0yLjUgOS41IDQuMSA1LjQgNy45TDcuMyA0NzMuNEMyLjcgNDc3LjYgMCA0ODMuNiAwIDQ4OS45IDAgNTAyLjEgOS45IDUxMiAyMi4xIDUxMmwxNzMuMyAwYzM4LjggMCA3NS45LTE1LjQgMTAzLjQtNDIuOCAzMC42LTMwLjYgNDUuOS03My4xIDQyLjMtMTE1Ljh6XCJdXG59O1xudmFyIGZhRmlsZUltcG9ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWltcG9ydCcsXG4gIGljb246IFszODQsIDUxMiwgW1wiYXJyb3ctcmlnaHQtdG8tZmlsZVwiXSwgXCJmNTZmXCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjQwIDE4Mi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTgyLjEgMCAwIDk2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6XCJdXG59O1xudmFyIGZhQXJyb3dSaWdodFRvRmlsZSA9IGZhRmlsZUltcG9ydDtcbnZhciBmYVV0ZW5zaWxzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3V0ZW5zaWxzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3ODYwLCA2MTY4NSwgXCJjdXRsZXJ5XCJdLCBcImYyZTdcIiwgXCJNNjMuOSAxNC40QzYzLjEgNi4yIDU2LjIgMCA0OCAwcy0xNS4xIDYuMi0xNiAxNC4zTDE3LjkgMTQ5LjdjLTEuMyA2LTEuOSAxMi4xLTEuOSAxOC4yIDAgNDUuOSAzNS4xIDgzLjYgODAgODcuN0w5NiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIyNC40YzQ0LjktNC4xIDgwLTQxLjggODAtODcuNyAwLTYuMS0uNi0xMi4yLTEuOS0xOC4yTDIyMy45IDE0LjNDMjIzLjEgNi4yIDIxNi4yIDAgMjA4IDBzLTE1LjEgNi4yLTE1LjkgMTQuNEwxNzguNSAxNDkuOWMtLjYgNS43LTUuNCAxMC4xLTExLjEgMTAuMS01LjggMC0xMC42LTQuNC0xMS4yLTEwLjJMMTQzLjkgMTQuNkMxNDMuMiA2LjMgMTM2LjMgMCAxMjggMHMtMTUuMiA2LjMtMTUuOSAxNC42TDk5LjggMTQ5LjhjLS41IDUuOC01LjQgMTAuMi0xMS4yIDEwLjItNS44IDAtMTAuNi00LjQtMTEuMS0xMC4xTDYzLjkgMTQuNHpNNDQ4IDBDNDMyIDAgMzIwIDMyIDMyMCAxNzZsMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYUN1dGxlcnkgPSBmYVV0ZW5zaWxzO1xudmFyIGZhSWRCYWRnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpZC1iYWRnZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjJjMVwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwem05NiAzNTJsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMOTYgNDQ4Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTE1MiA2NGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYVNwaWRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcGlkZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzNzVdLCBcImY3MTdcIiwgXCJNMzY5LjMtMzFjMTEuOS0zLjUgMjQuNCAyLjcgMjkgMTMuOWwuOCAyLjMgNDAgMTM2YzIuNSA4LjQgLjEgMTcuNS02LjEgMjMuN2wtNjQuMSA2NC4xIDc2LjQtMjAuOCAxOS45LTU5LjggLjktMi4zYzUtMTEuMSAxNy43LTE2LjggMjkuNS0xMi45IDExLjggMy45IDE4LjUgMTYuMSAxNS44IDI4bC0uNyAyLjQtMjQgNzJjLTIuNSA3LjYtOC43IDEzLjQtMTYuNSAxNS42bC05MS4xIDI0LjggOTEuMSAyNC44YzcuNyAyLjEgMTMuOSA4IDE2LjUgMTUuNmwyNCA3MiAuNyAyLjRjMi43IDExLjktNC4xIDI0LjEtMTUuOCAyOC0xMS44IDMuOS0yNC41LTEuOC0yOS41LTEyLjlsLS45LTIuMy0xOS45LTU5LjgtNzYuNC0yMC44IDY0LjEgNjQuMWM2LjEgNi4xIDguNSAxNS4xIDYuMiAyMy40bC00MCAxNDQtLjggMi4zYy00LjQgMTEuMy0xNi44IDE3LjctMjguOCAxNC40LTEyLTMuMy0xOS4zLTE1LjItMTcuMi0yNy4ybC41LTIuNCAzNi4yLTEzMC41LTM3LjItMzcuMkMzNTEgNDA2IDMwOC40IDQ0OCAyNTYgNDQ4cy05NS00Mi05Ni05NC4xbC0zNyAzNyAzNiAxMjIuMyAuNiAyLjRjMi4yIDExLjktNC45IDIzLjktMTYuOCAyNy40LTExLjkgMy41LTI0LjQtMi43LTI5LTEzLjlsLS44LTIuMy00MC0xMzZjLTIuNS04LjQtLjEtMTcuNSA2LjEtMjMuOGw2NC4xLTY0LjEtNzYuNCAyMC44LTE5LjkgNTkuOC0uOSAyLjNjLTUgMTEuMS0xNy43IDE2LjgtMjkuNSAxMi45cy0xOC41LTE2LjEtMTUuOC0yOGwuNy0yLjQgMjQtNzJjMi41LTcuNiA4LjctMTMuNCAxNi41LTE1LjZsOTEuMS0yNC44LTkxLjEtMjQuOGMtNy43LTIuMS0xMy45LTgtMTYuNS0xNS42bC0yNC03Mi0uNy0yLjRjLTIuNy0xMS45IDQuMS0yNC4xIDE1LjgtMjhzMjQuNSAxLjggMjkuNSAxMi45bC45IDIuMyAxOS45IDU5LjggNzYuNCAyMC44LTY0LjEtNjQuMWMtNi4yLTYuMi04LjUtMTUuMy02LjEtMjMuN2w0MC0xMzYgLjgtMi4zYzQuNi0xMS4zIDE3LjEtMTcuNCAyOS0xMy45IDExLjkgMy41IDE5IDE1LjUgMTYuOCAyNy40bC0uNiAyLjQtMzYgMTIyLjMgNTMgNTNjMS00My4zIDM2LjQtNzguMSA3OS45LTc4LjFzNzguOSAzNC44IDc5LjkgNzguMmw1My4xLTUzLjEtMzYtMTIyLjMtLjYtMi40Yy0yLjItMTIgNC45LTIzLjkgMTYuOC0yNy40elwiXVxufTtcbnZhciBmYU1vYmlsZVJldHJvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vYmlsZS1yZXRybycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTUyN1wiLCBcIk0xNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwTDMwNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMTYgNjR6bTgwIDk2bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem04IDE5MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0IDEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNHptNjQtNzJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNCAxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjR6bTY0LTcyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjQgMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0ek0xNjggNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHpcIl1cbn07XG52YXIgZmFTaWduc1Bvc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2lnbnMtcG9zdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibWFwLXNpZ25zXCJdLCBcImYyNzdcIiwgXCJNMjU2LjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMCAwIDY0LTE1My40IDBjLTQuMiAwLTguMyAxLjctMTEuMyA0LjdsLTQ4IDQ4Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmw0OCA0OGMzIDMgNy4xIDQuNyAxMS4zIDQuN2wxNTMuNCAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2MCAwIDAtNjQgMTUzLjQgMGM0LjIgMCA4LjMtMS43IDExLjMtNC43bDQ4LTQ4YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC00OC00OGMtMy0zLTcuMS00LjctMTEuMy00LjdsLTE1My40IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIl1cbn07XG52YXIgZmFNYXBTaWducyA9IGZhU2lnbnNQb3N0O1xudmFyIGZhR3JvdXBBcnJvd3NSb3RhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3JvdXAtYXJyb3dzLXJvdGF0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRmNlwiLCBcIk0zNy42IDEyMi4zYy0xMS41IDE4LjctMjAuNiAzOS0yNyA2MC41LTUgMTYuOSA0LjYgMzQuOCAyMS41IDM5LjhzMzQuOC00LjYgMzkuOC0yMS41YzE4LjQtNjEuOSA2Ny4zLTExMC44IDEyOS4yLTEyOS4yIDE2LjktNSAyNi42LTIyLjkgMjEuNS0zOS44UzE5OS44IDUuNiAxODIuOSAxMC42QzE2MS40IDE3IDE0MS4xIDI2LjEgMTIyLjMgMzcuNiAxMTIuMyAxNS40IDg5LjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NCAwIDg5LjkgMTUuNCAxMTIuMyAzNy42IDEyMi4zem00MzYuNyAwYzIyLjItMTAgMzcuNi0zMi40IDM3LjYtNTguMyAwLTM1LjMtMjguNy02NC02NC02NC0yNS45IDAtNDguMyAxNS40LTU4LjMgMzcuNi0xOC43LTExLjUtMzktMjAuNi02MC41LTI3LTE2LjktNS0zNC44IDQuNi0zOS44IDIxLjVzNC42IDM0LjggMjEuNSAzOS44YzYxLjkgMTguNCAxMTAuOCA2Ny4zIDEyOS4yIDEyOS4yIDUgMTYuOSAyMi45IDI2LjYgMzkuOCAyMS41czI2LjYtMjIuOSAyMS41LTM5LjhjLTYuNC0yMS41LTE1LjUtNDEuOC0yNy02MC41ek01MTIgNDQ4YzAtMjUuOS0xNS40LTQ4LjMtMzcuNi01OC4zIDExLjUtMTguNyAyMC42LTM5IDI3LTYwLjUgNS0xNi45LTQuNi0zNC44LTIxLjUtMzkuOHMtMzQuOCA0LjYtMzkuOCAyMS41Yy0xOC40IDYxLjktNjcuMyAxMTAuOC0xMjkuMiAxMjkuMi0xNi45IDUtMjYuNiAyMi45LTIxLjUgMzkuOHMyMi45IDI2LjYgMzkuOCAyMS41YzIxLjUtNi40IDQxLjgtMTUuNSA2MC41LTI3IDEwIDIyLjIgMzIuNCAzNy42IDU4LjMgMzcuNiAzNS4zIDAgNjQtMjguNyA2NC02NHpNMzcuNiAzODkuN2MtMjIuMiAxMC0zNy42IDMyLjQtMzcuNiA1OC4zIDAgMzUuMyAyOC43IDY0IDY0IDY0IDI1LjkgMCA0OC4zLTE1LjQgNTguMy0zNy42IDE4LjcgMTEuNSAzOSAyMC42IDYwLjUgMjcgMTYuOSA1IDM0LjgtNC42IDM5LjgtMjEuNXMtNC42LTM0LjgtMjEuNS0zOS44Yy02MS45LTE4LjQtMTEwLjgtNjcuMy0xMjkuMi0xMjkuMi01LTE2LjktMjIuOS0yNi42LTM5LjgtMjEuNVM1LjYgMzEyLjIgMTAuNiAzMjkuMWM2LjQgMjEuNSAxNS41IDQxLjggMjcgNjAuNXpNMjU2IDE5MmMxNS42IDAgMzAgNS42IDQxLjEgMTQuOWwtMTUuMyAxNS4zYy02LjYgNi42LTEuOSAxNy44IDcuNCAxNy44bDYwLjUgMGM1LjcgMCAxMC40LTQuNyAxMC40LTEwLjRsMC02MC41YzAtOS4zLTExLjItMTMuOS0xNy44LTcuNGwtMTEuMiAxMS4yYy0xOS44LTE3LjktNDYuMi0yOC45LTc1LjEtMjguOS00My42IDAtODEuMyAyNC45LTk5LjggNjEuMS02IDExLjgtMS40IDI2LjMgMTAuNCAzMi4zczI2LjMgMS40IDMyLjMtMTAuNGMxMC42LTIwLjggMzIuMi0zNC45IDU3LTM0Ljl6bTU4LjYgOTMuMWMtMTAuNiAyMC44LTMyLjIgMzQuOS01NyAzNC45LTE1LjcgMC0zMC01LjYtNDEuMS0xNC45bDE1LjMtMTUuM2M2LjYtNi42IDEuOS0xNy44LTcuNC0xNy44TDE2NCAyNzJjLTUuNyAwLTEwLjQgNC43LTEwLjQgMTAuNGwwIDYwLjVjMCA5LjMgMTEuMiAxMy45IDE3LjggNy40bDExLjItMTEuMmMxOS44IDE3LjkgNDYuMiAyOC45IDc1LjEgMjguOSA0My42IDAgODEuMy0yNC45IDk5LjgtNjEuMSA2LTExLjggMS40LTI2LjMtMTAuNC0zMi4zcy0yNi4zLTEuNC0zMi4zIDEwLjR6XCJdXG59O1xudmFyIGZhQXJyb3dzU3BsaXRVcEFuZExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3dzLXNwbGl0LXVwLWFuZC1sZWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGJjXCIsIFwiTTM0Mi42LTIyLjZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw0MS40LTQxLjQgMCAxOTUuOWMtMTguOC0xMC45LTQwLjctMTcuMS02NC0xNy4xbC0xMTQuNyAwIDQxLjQtNDEuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMzIwIDIyNCAzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6XCJdXG59O1xudmFyIGZhRmlsbERyaXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsbC1kcmlwJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTc2XCIsIFwiTTMwOS43IDcxLjZsLTY0LjQgNjQuNCAzMy40IDMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTMzLjQtMzMuNC05Ni40IDk2LjRjLTIuOSAyLjktNS4xIDYuNS02LjMgMTAuM2wzMjEuNSAwIDUzLjctNTMuN2M0LjktNC45IDcuNi0xMS41IDcuNi0xOC4zcy0yLjctMTMuNS03LjYtMTguM0wzNDYuMyA3MS42QzM0MS41IDY2LjcgMzM0LjkgNjQgMzI4IDY0cy0xMy41IDIuNy0xOC4zIDcuNnpNNTguMyAyMzIuNGw5Ni40LTk2LjQtNDkuNC00OS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDIwMCA5MC43IDI2NC40IDI2LjNDMjgxLjMgOS41IDMwNC4xIDAgMzI4IDBzNDYuNyA5LjUgNjMuNiAyNi4zTDUxNy43IDE1Mi40QzUzNC41IDE2OS4zIDU0NCAxOTIuMSA1NDQgMjE2cy05LjUgNDYuNy0yNi4zIDYzLjZMMzExLjYgNDg1LjdDMjk0LjcgNTAyLjUgMjcxLjkgNTEyIDI0OCA1MTJzLTQ2LjctOS41LTYzLjYtMjYuM0w1OC4zIDM1OS42QzQxLjUgMzQyLjcgMzIgMzE5LjkgMzIgMjk2czkuNS00Ni43IDI2LjMtNjMuNnpNNTEyIDU0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yNS4yIDMyLjYtNzkuNiA1MS4yLTEwOC43IDYtOS40IDE5LjUtOS40IDI1LjUgMCAxOC43IDI5LjEgNTEuMiA4My41IDUxLjIgMTA4LjcgMCAzNS4zLTI4LjcgNjQtNjQgNjR6XCJdXG59O1xudmFyIGZhU2hpZWxkSGVhcnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hpZWxkLWhlYXJ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTc0XCIsIFwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0yNDkuNiAxODMuNWw2LjQgOC41IDYuNC04LjVjMTEuMS0xNC44IDI4LjUtMjMuNSA0Ni45LTIzLjUgMzIuNCAwIDU4LjcgMjYuMyA1OC43IDU4LjdsMCA1LjNjMCA0OS4xLTY1LjggOTguMS05Ni41IDExOC4zLTkuNSA2LjItMjEuNSA2LjItMzAuOSAwLTMwLjctMjAuMi05Ni41LTY5LjMtOTYuNS0xMTguM2wwLTUuM2MwLTMyLjQgMjYuMy01OC43IDU4LjctNTguNyAxOC41IDAgMzUuOSA4LjcgNDYuOSAyMy41elwiXVxufTtcbnZhciBmYVBlcnNvblNraWluZ05vcmRpYyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tc2tpaW5nLW5vcmRpYycsXG4gIGljb246IFs1NzYsIDUxMiwgW1wic2tpaW5nLW5vcmRpY1wiXSwgXCJmN2NhXCIsIFwiTTQyNC44IDE2YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem05OS44IDE5My43YzcuNiAxNS4yIDEuOSAzMy42LTEyLjYgNDJsMCAxODAuMy0zMiAwIDAtMTY0LjItMTAuMSA1Yy0yNy40IDEzLjctNjAuNyA2LjEtNzkuNC0xOC4ybC0xOS42LTI1LjUtMzkuNSA2OC44IDI0LjggMTIuNGMyOS41IDE0LjcgNDIuOSA0OS41IDMxLjEgODAuMmwtMjguMiA3My40IDE0OS40IDBjNy45IDAgMTUuNi0yLjMgMjIuMi02LjdsNy45LTUuM2MxMS03LjQgMjUuOS00LjQgMzMuMyA2LjdzNC40IDI1LjktNi43IDMzLjNsLTcuOSA1LjNDNTQzIDUwNi45IDUyNiA1MTIgNTA4LjYgNTEybC0xODkuMSAwYy0uNSAwLTEgMC0xLjUgMEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsODggMGMwLTguMiAzLjEtMTYuNCA5LjQtMjIuNmw3NC4xLTc0LjEgMTAuMi0zNS45YzExLjMgMTguMyAyNy43IDMzLjggNDguNCA0NC4ybDQuOCAyLjQtMS45IDYuOGMtMyAxMC41LTguNiAyMC0xNi4zIDI3LjdsLTUxLjUgNTEuNSAxMDEuMyAwIDM3LjEtOTYuNC01NS42LTI3LjhDMjMwLjQgMzE5IDIxNS4zIDI2NyAyMzkuMyAyMjcuMWwzNy43LTYyLjctMjcuNy03LjdjLTktMi41LTE4LjEgMy4yLTIwIDEyLjNsLTUuOSAyOS4zYy0zLjEgMTUuNi0xNy4xIDI2LjMtMzIuNSAyNS43bC0xMzAgMjA4LTM3LjcgMCAxNDAuNi0yMjVjLTMuNC02LjMtNC42LTEzLjgtMy4xLTIxLjNsNS45LTI5LjNjOS4xLTQ1LjYgNTUuMS03My44IDk5LjktNjEuNGwzMi41IDljNDYuNyAxMyA4OCA0MC44IDExNy42IDc5LjNsMjQuOSAzMi4zIDQwLjQtMjAuMmMxNS44LTcuOSAzNS0xLjUgNDIuOSAxNC4zelwiXVxufTtcbnZhciBmYVNraWluZ05vcmRpYyA9IGZhUGVyc29uU2tpaW5nTm9yZGljO1xudmFyIGZhU3F1YXJlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLWNoZWNrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbOTc0NSwgOTk4OSwgNjE1MTAsIFwiY2hlY2stc3F1YXJlXCJdLCBcImYxNGFcIiwgXCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzQyIDE0NS43Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM0wxODkuMSAzMTUuMiAxMzcgMjYzLjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjNSA1IDExLjkgNy41IDE4LjggN3MxMy40LTQuMSAxNy41LTkuOEwzNDcuMyAxNzkuMmM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXpcIl1cbn07XG52YXIgZmFDaGVja1NxdWFyZSA9IGZhU3F1YXJlQ2hlY2s7XG52YXIgZmFCYXRoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhdGgnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg3MDUsIFwiYmF0aHR1YlwiXSwgXCJmMmNkXCIsIFwiTTk2IDc3LjNjMC03LjMgNS45LTEzLjMgMTMuMy0xMy4zIDMuNSAwIDYuOSAxLjQgOS40IDMuOWwxNC45IDE0LjljLTMuNiA5LjEtNS41IDE4LjktNS41IDI5LjIgMCAxOS45IDcuMiAzOCAxOS4yIDUyLTUuMyA5LjItNCAyMS4xIDMuOCAyOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMEwyODkgODljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjktNy44LTcuOS0xOS44LTkuMS0yOS0zLjgtMTQtMTItMzIuMS0xOS4yLTUyLTE5LjItMTAuMyAwLTIwLjIgMi0yOS4yIDUuNUwxNjMuOSAyMi42QzE0OS40IDguMSAxMjkuNyAwIDEwOS4zIDAgNjYuNiAwIDMyIDM0LjYgMzIgNzcuM0wzMiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCA0OGMwIDI4LjQgMTIuNCA1NCAzMiA3MS42TDY0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYgMjU2IDAgMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDAuNGMxOS42LTE3LjYgMzItNDMuMSAzMi03MS42bDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMjU2IDk2IDc3LjN6XCJdXG59O1xudmFyIGZhQmF0aHR1YiA9IGZhQmF0aDtcbnZhciBmYUNoZXNzQmlzaG9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzLWJpc2hvcCcsXG4gIGljb246IFszMjAsIDUxMiwgWzk4MjFdLCBcImY0M2FcIiwgXCJNNjQgMzg0TDQ4LjMgMzY4LjNDMTcuNCAzMzcuNCAwIDI5NS40IDAgMjUxLjcgMCAyMTMuMSAxMy41IDE3NS44IDM4LjIgMTQ2LjFMMTA2LjcgNjQgOTYgNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyUzc4LjMgMCA5NiAwTDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC43IDAgNDcuNiA1Ny4xLTg1LjkgODUuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDgyLjMtODIuM2MxOC43IDI3LjMgMjguNyA1OS43IDI4LjcgOTMgMCA0My43LTE3LjQgODUuNy00OC4zIDExNi42TDI1NiAzODQgMzEyLjIgNDU0LjNjNSA2LjMgNy44IDE0LjEgNy44IDIyLjIgMCAxOS42LTE1LjkgMzUuNS0zNS41IDM1LjVMMzUuNSA1MTJjLTE5LjYgMC0zNS41LTE1LjktMzUuNS0zNS41IDAtOC4xIDIuNy0xNS45IDcuOC0yMi4yTDY0IDM4NHpcIl1cbn07XG52YXIgZmFQcmVzY3JpcHRpb25Cb3R0bGVNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ByZXNjcmlwdGlvbi1ib3R0bGUtbWVkaWNhbCcsXG4gIGljb246IFszODQsIDUxMiwgW1wicHJlc2NyaXB0aW9uLWJvdHRsZS1hbHRcIl0sIFwiZjQ4NlwiLCBcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRMMCAzMnpNMzIgMTQ0bDMyMCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6TTE2MCAyNDhsMCA0MC00MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsNDAgMCAwIDQwYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTQwIDQwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC00MCAwIDAtNDBjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6XCJdXG59O1xudmFyIGZhUHJlc2NyaXB0aW9uQm90dGxlQWx0ID0gZmFQcmVzY3JpcHRpb25Cb3R0bGVNZWRpY2FsO1xudmFyIGZhRHJhd1BvbHlnb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHJhdy1wb2x5Z29uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNTgwNTUsIFwidmVjdG9yLXBvbHlnb25cIl0sIFwiZjVlZVwiLCBcIk02NCAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmwyNzMuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAzNC0yNi41IDYxLjgtNjAgNjMuOWwtMi4xIDIuOS03MS41IDk5LjFjMy42IDggNS42IDE2LjkgNS42IDI2LjJzLTIgMTguMi01LjYgMjYuMmwyLjIgMy4xIDY5LjMgOTYgMi4xIDIuOWMzMy41IDIuMSA2MCAyOS45IDYwIDYzLjkgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yNzMuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTI3My4xQzEyLjkgMTA4LjQgMCA4Ny43IDAgNjQgMCAyOC43IDI4LjcgMCA2NCAwek0zOTQuMiA0MTMuNGwtNjUuNS05MC42LTIuMi0zLjFjLTIuMSAuMi00LjMgLjMtNi41IC4zLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMi4yIDAgNC40IC4xIDYuNSAuM2w2Ny43LTkzLjdjLS42LS45LTEuMS0xLjctMS42LTIuNkwxMTkuNCA5NmMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40bDAgMjczLjFjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDI3My4xIDBjLjUtLjkgMS4xLTEuOCAxLjYtMi42elwiXVxufTtcbnZhciBmYVZlY3RvclBvbHlnb24gPSBmYURyYXdQb2x5Z29uO1xudmFyIGZhSUN1cnNvciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpLWN1cnNvcicsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiZjI0NlwiLCBcIk0uMSAyOS4zQy0xLjQgNDcgMTEuNyA2Mi40IDI5LjMgNjMuOWw4IC43QzcwLjUgNjcuMyA5NiA5NSA5NiAxMjguM2wwIDk1LjctMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgOTUuN2MwIDMzLjMtMjUuNSA2MS01OC43IDYzLjhsLTggLjdDMTEuNyA0NDkuNi0xLjQgNDY1IC4xIDQ4Mi43UzE3IDUxMy40IDM0LjcgNTExLjlsOC0uN2MzNC4xLTIuOCA2NC4yLTE4LjkgODUuNC00Mi45IDIxLjIgMjQgNTEuMiA0MCA4NS40IDQyLjlsOCAuN2MxNy42IDEuNSAzMy4xLTExLjYgMzQuNS0yOS4ycy0xMS42LTMzLjEtMjkuMi0zNC41bC04LS43QzE4NS41IDQ0NC43IDE2MCA0MTcgMTYwIDM4My43bDAtOTUuNyAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtOTUuN2MwLTMzLjMgMjUuNS02MSA1OC43LTYzLjhsOC0uN2MxNy42LTEuNSAzMC43LTE2LjkgMjkuMi0zNC41UzIzOS0xLjQgMjIxLjMgLjFsLTggLjdjLTM0LjEgMi44LTY0LjIgMTguOS04NS40IDQyLjktMjEuMi0yNC01MS4yLTQwLTg1LjQtNDIuOWwtOC0uN0MxNy0xLjQgMS42IDExLjcgLjEgMjkuM3pcIl1cbn07XG52YXIgZmFIZWFydENpcmNsZVBsdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhcnQtY2lyY2xlLXBsdXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MDBcIiwgXCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNNDMyIDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTE2IDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDAgMC00OHpcIl1cbn07XG52YXIgZmFTaGllbGREb2cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hpZWxkLWRvZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU3M1wiLCBcIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwLjkgMjg2LjJjNC44IDEuMiA5LjkgMS44IDE1LjEgMS44IDM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjQgNDQuMiAwYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdsNy4yIDE0LjMgNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDQ0LjItMzUuOCA4MC04MCA4MGwtNDggMCAwIDUwLjdjMCA3LjMtNS45IDEzLjMtMTMuMyAxMy4zLTEuOCAwLTMuNi0uNC01LjItMS4xbC05OC43LTQyLjNjLTYuNi0yLjgtMTAuOC05LjMtMTAuOC0xNi40IDAtMi44IC42LTUuNSAxLjktOGwxNS0zMHpNMTYwIDE2MGw0OCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMwLTguOCA3LjItMTYgMTYtMTZ6bTEyOCA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwelwiXVxufTtcbnZhciBmYUdyZWF0ZXJUaGFuRXF1YWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3JlYXRlci10aGFuLWVxdWFsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTMyXCIsIFwiTTIxLjkgOTQuNEM1LjEgODguOC0zLjkgNzAuNiAxLjcgNTMuOVMyNS40IDI4LjEgNDIuMSAzMy42bDM4NCAxMjhDNDM5LjIgMTY2IDQ0OCAxNzguMiA0NDggMTkycy04LjggMjYtMjEuOSAzMC40bC0zODQgMTI4Yy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41TDMxNC44IDE5MiAyMS45IDk0LjR6TTQxNiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwelwiXVxufTtcbnZhciBmYUVudmVsb3BlT3BlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlbnZlbG9wZS1vcGVuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjIxMzVdLCBcImYyYjZcIiwgXCJNNjQuNCAxNzUuOEwyNTYgMzMuOSA0NDcuNiAxNzUuOCAyODkuNSAyOTNjLTkuNyA3LjItMjEuNCAxMS0zMy41IDExcy0yMy44LTMuOS0zMy41LTExTDY0LjQgMTc1Ljh6TTI1Ni0zMmMtMTIuMSAwLTIzLjggMy45LTMzLjUgMTFMMjUuOSAxMjQuN0M5LjYgMTM2LjggMCAxNTUuOCAwIDE3Ni4xTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjM5LjljMC0yMC4zLTkuNi0zOS40LTI1LjktNTEuNEwyODkuNS0yMWMtOS43LTcuMi0yMS40LTExLTMzLjUtMTF6XCJdXG59O1xudmFyIGZhTW91bmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW91bmQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1MmRcIiwgXCJNMTEyLjQgMTc5LjJDMTQyIDEyNy43IDE5Ni44IDk2IDI1Ni4yIDk2czExNC4yIDMxLjcgMTQzLjkgODMuMkw1MDguNyAzNjhjMTIuMyAyMS4zLTMuMSA0OC0yNy43IDQ4TDMxLjUgNDE2Yy0yNC42IDAtNDAtMjYuNi0yNy43LTQ4TDExMi40IDE3OS4yelwiXVxufTtcbnZhciBmYVZvaWNlbWFpbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2b2ljZW1haWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY4OTdcIiwgXCJNMTQ0IDE2MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMjYzLjggMzIwYzE1LjMtMjIuOSAyNC4yLTUwLjQgMjQuMi04MCAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDE2MC41IDAgMjQwIDY0LjUgMzg0IDE0NCAzODRsMzUyIDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTNTc1LjUgOTYgNDk2IDk2IDM1MiAxNjAuNSAzNTIgMjQwYzAgMjkuNiA4LjkgNTcuMSAyNC4yIDgwbC0xMTIuNSAwek00OTYgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwelwiXVxufTtcbnZhciBmYVZlc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmVzdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTA4NVwiLCBcIk0yMDAgNDY0bDAtMTcwLjFjMC0zLjktLjUtNy44LTEuNC0xMS42TDE0NC40IDY1LjRDMTYyLjEgNzcuMiAxODguMiA4OCAyMjQgODhzNjEuOS0xMC44IDc5LjYtMjIuNkwyNDkuNCAyODIuM2MtMSAzLjgtMS40IDcuNy0xLjQgMTEuNkwyNDggNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkzLjVjMC05LjUtMi44LTE4LjctOC4xLTI2LjZsLTQ3LjktNzEuOGMtNS4zLTcuOS04LjEtMTcuMS04LjEtMjYuNkwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMuNSAwYy0uMyAwLS42IDAtMSAwLS42IDAtMS4yIDAtMS44IDAtMTguOCAwLTM0LjEgOS43LTQ0LjEgMTguOC05LjMgOC40LTI4LjUgMjEuMi02MS43IDIxLjJzLTUyLjQtMTIuOC02MS43LTIxLjJjLTEwLTkuMS0yNS4zLTE4LjgtNDQuMS0xOC44LS42IDAtMS4yIDAtMS44IDAtLjMgMC0uNiAwLTEgMEwxMTIgMEM4NS41IDAgNjQgMjEuNSA2NCA0OGwwIDk3LjVjMCA5LjUtMi44IDE4LjctOC4xIDI2LjZMOC4xIDI0My45QzIuOCAyNTEuOCAwIDI2MS4xIDAgMjcwLjVMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTA0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6XCJdXG59O1xudmFyIGZhQXVkaW9EZXNjcmlwdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhdWRpby1kZXNjcmlwdGlvbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI5ZVwiLCBcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA5NmwwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQgNDggMCAwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0em00OCAzMmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyLTQ4IDB6bTE1Mi05NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTQ4YzAtMzkuOC0zMi4yLTcyLTcyLTcybC00OCAwem00OCAxNDRsLTI0IDAgMC05NiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjR6XCJdXG59O1xudmFyIGZhVyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTE5XSwgXCI1N1wiLCBcIk0yMC44IDM0YzE2LjUtNi4yIDM1IDIuMiA0MS4yIDE4LjdMMTcyLjIgMzQ2LjcgMjU3LjMgNTVjNC0xMy43IDE2LjUtMjMgMzAuNy0yM3MyNi43IDkuNCAzMC43IDIzTDQwMy44IDM0Ni43IDUxNCA1Mi44YzYuMi0xNi41IDI0LjYtMjQuOSA0MS4yLTE4LjdTNTgwLjIgNTguNyA1NzQgNzUuMmwtMTQ0IDM4NGMtNC44IDEyLjktMTcuNCAyMS4zLTMxLjIgMjAuN3MtMjUuNy05LjgtMjkuNS0yM0wyODggMTc4LjMgMjA2LjcgNDU3Yy0zLjkgMTMuMi0xNS44IDIyLjUtMjkuNSAyM3MtMjYuMy03LjgtMzEuMi0yMC43TDIgNzUuMkMtNC4yIDU4LjcgNC4yIDQwLjIgMjAuOCAzNHpcIl1cbn07XG52YXIgZmFFeWVEcm9wcGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V5ZS1kcm9wcGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJleWUtZHJvcHBlci1lbXB0eVwiLCBcImV5ZWRyb3BwZXJcIl0sIFwiZjFmYlwiLCBcIk0zNDEuNiAyOS4ybC0xMDEuNiAxMDEuNi05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTAxLjYtMTAxLjZjMzktMzkgMzktMTAyLjIgMC0xNDEuMXMtMTAyLjItMzktMTQxLjEgMHpNNTUuNCAzMjMuM2MtMTUgMTUtMjMuNCAzNS40LTIzLjQgNTYuNmwwIDQyLjQtMjYuNiAzOS45Yy04LjUgMTIuNy02LjggMjkuNiA0IDQwLjRzMjcuNyAxMi41IDQwLjQgNGwzOS45LTI2LjYgNDIuNCAwYzIxLjIgMCA0MS42LTguNCA1Ni42LTIzLjRsMTA5LjQtMTA5LjQtNDUuMy00NS4zLTEwOS40IDEwOS40Yy0zIDMtNy4xIDQuNy0xMS4zIDQuN2wtMzYuMSAwIDAtMzYuMWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDEwOS40LTEwOS40LTQ1LjMtNDUuMy0xMDkuNCAxMDkuNHpcIl1cbn07XG52YXIgZmFFeWVEcm9wcGVyRW1wdHkgPSBmYUV5ZURyb3BwZXI7XG52YXIgZmFFeWVkcm9wcGVyID0gZmFFeWVEcm9wcGVyO1xudmFyIGZhQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE1MzIsIFwidGltZXMtY2lyY2xlXCIsIFwieG1hcmstY2lyY2xlXCJdLCBcImYwNTdcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NyAxNjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJdXG59O1xudmFyIGZhVGltZXNDaXJjbGUgPSBmYUNpcmNsZVhtYXJrO1xudmFyIGZhWG1hcmtDaXJjbGUgPSBmYUNpcmNsZVhtYXJrO1xudmFyIGZhVHJhaWxlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmFpbGVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMDQxXCIsIFwiTTMyIDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI5Ni40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04TDk2IDQxNmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgOTZ6bTQwOCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTEyIDEzNmwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em0xNzYtMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTI2NCA0MjRhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHpcIl1cbn07XG52YXIgZmFUdXJraXNoTGlyYVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHVya2lzaC1saXJhLXNpZ24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInRyeVwiLCBcInR1cmtpc2gtbGlyYVwiXSwgXCJlMmJiXCIsIFwiTTE2MCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQzLjYgMTIxLjQtMzQuN2MxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC0xMzQuNiAzOC41IDAgNDYuMSAxMjEuNC0zNC43YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTEzNC42IDM4LjUgMCAxNjIuNSA3MiAwYzUzIDAgOTYtNDMgOTYtOTYgMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtMTA0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTc2LjItMjUuNCA3LjNjLTEyLjcgMy42LTI2LTMuNy0yOS43LTE2LjVzMy43LTI2IDE2LjUtMjkuN2wzOC42LTExIDAtNDYuMS0yNS40IDcuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDM4LjYtMTEgMC02MS45YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbnZhciBmYVRyeSA9IGZhVHVya2lzaExpcmFTaWduO1xudmFyIGZhVHVya2lzaExpcmEgPSBmYVR1cmtpc2hMaXJhU2lnbjtcbnZhciBmYVZvbGNhbm8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndm9sY2FubycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzc1NV0sIFwiZjc3MFwiLCBcIk0xNjAgMTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE1LjcgMCAzMCA1LjYgNDEuMiAxNSAxMS4yLTE4LjYgMzEuNi0zMSA1NC44LTMxczQzLjYgMTIuNCA1NC44IDMxYzExLjEtOS40IDI1LjUtMTUgNDEuMi0xNSAzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGMtMTQuNyAwLTI4LjMtNS0zOS4xLTEzLjNsLTMyIDQ4QzI3NS4zIDE4NyAyNjYgMTkyIDI1NiAxOTJzLTE5LjMtNS0yNC45LTEzLjNsLTMyLTQ4QzE4OC4zIDEzOSAxNzQuNyAxNDQgMTYwIDE0NHpNMTQ0IDM1Mmw0OC40LTI0LjJjMTAuMi01LjEgMjEuNi03LjggMzMtNy44IDE5LjYgMCAzOC40IDcuOCA1Mi4yIDIxLjZsMzIuNSAzMi41YzYuMyA2LjMgMTQuOSA5LjkgMjMuOCA5LjkgMTEuMyAwIDIxLjgtNS42IDI4LTE1bDkuNy0xNC42LTU5LTY2LjNjLTkuMS0xMC4yLTIyLjItMTYuMS0zNS45LTE2LjFsLTQxLjggMGMtMTMuNyAwLTI2LjggNS45LTM1LjkgMTYuMWwtNTkuOSA2Ny40IDQuNy0zLjV6bTE5LjQtOTUuOGMxOC4yLTIwLjUgNDQuMy0zMi4yIDcxLjgtMzIuMmw0MS44IDBjMjcuNCAwIDUzLjUgMTEuNyA3MS44IDMyLjJsMTUwLjIgMTY5YzguNSA5LjUgMTMuMiAyMS45IDEzLjIgMzQuNyAwIDI4LjgtMjMuNCA1Mi4yLTUyLjIgNTIuMkw1Mi4yIDUxMkMyMy40IDUxMiAwIDQ4OC42IDAgNDU5LjggMCA0NDcuMSA0LjcgNDM0LjcgMTMuMiA0MjUuMmwxNTAuMi0xNjl6XCJdXG59O1xudmFyIGZhV2FuZFNwYXJrbGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dhbmQtc3BhcmtsZXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3MmJcIiwgXCJNNDY0IDYuMWM5LjUtOC41IDI0LTguMSAzMyAuOWw4IDhjOSA5IDkuNCAyMy41IC45IDMzbC04NS44IDk1LjljLTIuNiAyLjktNC4xIDYuNy00LjEgMTAuN2wwIDIxLjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNS44IDBjLTQuNiAwLTguOSAxLjktMTEuOSA1LjNMMTAwLjcgNTAwLjljLTYuMyA3LjEtMTUuMyAxMS4xLTI0LjggMTEuMS04LjggMC0xNy4zLTMuNS0yMy41LTkuOEw5LjcgNDU5LjdjLTYuMi02LjItOS43LTE0LjctOS43LTIzLjUgMC05LjUgNC0xOC41IDExLjEtMjQuOGwxMTEuNi05OS44YzMuNC0zIDUuMy03LjQgNS4zLTExLjlsMC0yNy42YzAtOC44IDcuMi0xNiAxNi0xNmwzNC42IDBjMy45IDAgNy43LTEuNSAxMC43LTQuMUw0NjQgNi4xek00MzIgMjg4YzMuNiAwIDYuNyAyLjQgNy43IDUuOGwxNC44IDUxLjcgNTEuNyAxNC44YzMuNCAxIDUuOCA0LjEgNS44IDcuN3MtMi40IDYuNy01LjggNy43bC01MS43IDE0LjgtMTQuOCA1MS43Yy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOGwtMTQuOC01MS43LTUxLjctMTQuOGMtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjggMTQuOC01MS43YzEtMy40IDQuMS01LjggNy43LTUuOHpNODcuNyA2OS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOC0xNC44IDUxLjdjLTEgMy40LTQuMSA1LjgtNy43IDUuOHMtNi43LTIuNC03LjctNS44TDU3LjUgMTY2LjUgNS44IDE1MS43Yy0zLjQtMS01LjgtNC4xLTUuOC03LjdzMi40LTYuNyA1LjgtNy43bDUxLjctMTQuOCAxNC44LTUxLjdjMS0zLjQgNC4xLTUuOCA3LjctNS44czYuNyAyLjQgNy43IDUuOHpNMjA4IDBjMy43IDAgNi45IDIuNSA3LjggNi4xbDYuOCAyNy4zIDI3LjMgNi44YzMuNiAuOSA2LjEgNC4xIDYuMSA3LjhzLTIuNSA2LjktNi4xIDcuOGwtMjcuMyA2LjgtNi44IDI3LjNjLS45IDMuNi00LjEgNi4xLTcuOCA2LjFzLTYuOS0yLjUtNy44LTYuMWwtNi44LTI3LjMtMjcuMy02LjhjLTMuNi0uOS02LjEtNC4xLTYuMS03LjhzMi41LTYuOSA2LjEtNy44bDI3LjMtNi44IDYuOC0yNy4zYy45LTMuNiA0LjEtNi4xIDcuOC02LjF6XCJdXG59O1xudmFyIGZhTWljcm9waG9uZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtaWNyb3Bob25lJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMTMwXCIsIFwiTTE5MiAwQzEzOSAwIDk2IDQzIDk2IDk2bDAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xMjhjMC01My00My05Ni05Ni05NnpNNDggMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTcwLjcgMCAxODRsMCA0MGMwIDk3LjkgNzMuMyAxNzguNyAxNjggMTkwLjVsMCA0OS41LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OS41Yzk0LjctMTEuOCAxNjgtOTIuNiAxNjgtMTkwLjVsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzQ4IDMwMy41IDQ4IDIyNGwwLTQwelwiXVxufTtcbnZhciBmYUNyb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nyb3duJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MDgxXSwgXCJmNTIxXCIsIFwiTTMxMyA4Ny4yYzkuMi03LjMgMTUtMTguNiAxNS0zMS4yIDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgMTIuNiA1LjkgMjMuOSAxNSAzMS4yTDE5NC42IDE5NC44Yy0xMCAxNS43LTMxLjMgMTkuNi00Ni4yIDguNEw4OC45IDE1OC43YzQuNS02LjQgNy4xLTE0LjMgNy4xLTIyLjcgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBjMCAyMS44IDE3LjUgMzkuNiAzOS4yIDQwTDg3LjggMzkzLjVjNC43IDMxLjMgMzEuNiA1NC41IDYzLjMgNTQuNWwyNzMuOCAwYzMxLjcgMCA1OC42LTIzLjIgNjMuMy01NC41TDUyMC44IDE3NmMyMS43LS40IDM5LjItMTguMiAzOS4yLTQwIDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgOC40IDIuNiAxNi4zIDcuMSAyMi43bC01OS40IDQ0LjZjLTE0LjkgMTEuMi0zNi4yIDcuMy00Ni4yLTguNEwzMTMgODcuMnpcIl1cbn07XG52YXIgZmFUZW50QXJyb3dUdXJuTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50LWFycm93LXR1cm4tbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU4MFwiLCBcIk0tLjUgMTEzbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzEtMzEgMzUwLjEgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OGwtMzUwLjEgMCAzMS0zMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOVM4MC45LTIuMyA3MS41IDdMLS41IDc5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXpNNjAuMyAyOTIuNkwzNy4xIDQ3NmMtMi40IDE5LjEgMTIuNSAzNiAzMS43IDM2bDE1NC41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMTcuNGMwLTUuOSA0LjctMTAuNiAxMC42LTEwLjYgNCAwIDcuNyAyLjMgOS41IDUuOWw2OC4yIDEzNi41YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdsNzEuOSAwYzE5LjMgMCAzNC4yLTE2LjkgMzEuNy0zNkw0NTIuNyAyOTIuN2MtMS4yLTkuNy02LjktMTguNC0xNS4zLTIzLjRMMjcxLjkgMTY5LjljLTEwLjItNi4xLTIyLjktNi4xLTMzLjEgLjFMNzUuNCAyNjkuM2MtOC4zIDUuMS0xMy45IDEzLjctMTUuMSAyMy4zelwiXVxufTtcbnZhciBmYVRydWNrRmFzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1mYXN0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJzaGlwcGluZy1mYXN0XCJdLCBcImY0OGJcIiwgXCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiA1MC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNjIxLjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNjQwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMy4zIDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0xMDIuNiAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMy4zIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNDgtNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCAyNDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgMTQ0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFMxMC43IDk2IDI0IDk2bDQwIDB6TTU3NiAyODhsMC01MC43LTQ1LjMtNDUuMy01MC43IDAgMCA5NiA5NiAwek0yNTYgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTIzMiA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6XCJdXG59O1xudmFyIGZhU2hpcHBpbmdGYXN0ID0gZmFUcnVja0Zhc3Q7XG52YXIgZmFVc2VyUGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItcGVuJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJ1c2VyLWVkaXRcIl0sIFwiZjRmZlwiLCBcIk0yNTYuMSAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NmMtOTguNSAwLTE3OC4zIDc5LjgtMTc4LjMgMTc4LjMgMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMTk2LjUgMCAxMC45LTU0LjVjNC4zLTIxLjcgMTUtNDEuNiAzMC42LTU3LjJsNjcuMy02Ny4zYy0yOC0xOC4zLTYxLjQtMjguOS05Ny40LTI4LjlsLTU5LjQgMHpNMzMyLjMgNDY2LjlsLTExLjkgNTkuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42IDEgMCAxLjktLjEgMi45LS4zbDU5LjYtMTEuOWMxMi40LTIuNSAyMy44LTguNiAzMi43LTE3LjVsMTE4LjktMTE4LjktODAtODAtMTE4LjkgMTE4LjljLTguOSA4LjktMTUgMjAuMy0xNy41IDMyLjd6bTI2Ny44LTEyM2MyMi4xLTIyLjEgMjIuMS01Ny45IDAtODBzLTU3LjktMjIuMS04MCAwbC0yOC44IDI4LjggODAgODAgMjguOC0yOC44elwiXVxufTtcbnZhciBmYVVzZXJFZGl0ID0gZmFVc2VyUGVuO1xudmFyIGZhVXNlckNsb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItY2xvY2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0ZmRcIiwgXCJNMjI0IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0xOTQuMyAzMDRsNTkuNCAwYzMuOSAwIDcuOSAuMSAxMS44IC40LTE2LjIgMjguMi0yNS41IDYwLjgtMjUuNSA5NS42IDAgNDEuOCAxMy40IDgwLjUgMzYgMTEyTDQ1LjcgNTEyQzI5LjMgNTEyIDE2IDQ5OC43IDE2IDQ4Mi4zIDE2IDM4My44IDk1LjggMzA0IDE5NC4zIDMwNHpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2elwiXVxufTtcbnZhciBmYVNob3dlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaG93ZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg3MDNdLCBcImYyY2NcIiwgXCJNNjQgMTMxLjljMC0xOS44IDE2LjEtMzUuOSAzNS45LTM1LjkgOS41IDAgMTguNiAzLjggMjUuNCAxMC41bDE2LjIgMTYuMmMtMjEgMzguOS0xNy40IDg3LjUgMTAuOSAxMjNMMTUxIDI0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDM0NSAxMjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMS4zIDEuM2MtMzUuNS0yOC4zLTg0LjEtMzEuOS0xMjMtMTAuOUwxNzAuNSA2MS4zQzE1MS44IDQyLjUgMTI2LjQgMzIgOTkuOSAzMiA0NC43IDMyIDAgNzYuNyAwIDEzMS45TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMTYuMXpNMjU2IDM1MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAtMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC0xMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zMi0zMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xudmFyIGZhU3F1YXJlQ2FyZXRVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtY2FyZXQtdXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImNhcmV0LXNxdWFyZS11cFwiXSwgXCJmMTUxXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAxNjBjNi43IDAgMTMgMi44IDE3LjYgNy43bDEwNCAxMTJjNi41IDcgOC4yIDE3LjIgNC40IDI1LjlTMzM3LjUgMzIwIDMyOCAzMjBsLTIwOCAwYy05LjUgMC0xOC4yLTUuNy0yMi0xNC40cy0yLjEtMTguOSA0LjQtMjUuOWwxMDQtMTEyYzQuNS00LjkgMTAuOS03LjcgMTcuNi03Ljd6XCJdXG59O1xudmFyIGZhQ2FyZXRTcXVhcmVVcCA9IGZhU3F1YXJlQ2FyZXRVcDtcbnZhciBmYU1hcExvY2F0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcC1sb2NhdGlvbicsXG4gIGljb246IFs2NDAsIDUxMiwgW1wibWFwLW1hcmtlZFwiXSwgXCJmNTlmXCIsIFwiTTU3NiA0OGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNEw0MTMuNSA3Ny41IDIzNC4xIDE3LjZjLTguMS0yLjctMTYuOC0yLjEtMjQuNCAxLjdsLTEyOCA2NEM3MC44IDg4LjggNjQgOTkuOSA2NCAxMTJsMCAzNTJjMCAxMS4xIDUuNyAyMS40IDE1LjIgMjcuMnMyMS4yIDYuNCAzMS4xIDEuNGwxMTYuMS01OC4xIDE3My4zIDU3LjhjLTQuMy02LjQtOC41LTEzLjEtMTIuNi0xOS45LTExLTE4LjMtMjEuOS0zOS4zLTMwLTYxLjhsLTEwMS4yLTMzLjcgMC0yODQuNSAxMjggNDIuNyAwIDk5LjNjMzEtMzUuOCA3Ny01OC40IDEyOC01OC40IDIyLjYgMCA0NC4yIDQuNCA2NCAxMi41TDU3NiA0OHpNMzkyIDM0MS45YzAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOVMzOTIgMjc2LjggMzkyIDM0MS45elwiXVxufTtcbnZhciBmYU1hcE1hcmtlZCA9IGZhTWFwTG9jYXRpb247XG52YXIgZmFQZW5GYW5jeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW4tZmFuY3knLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgzOTUsIDEwMDAyXSwgXCJmNWFjXCIsIFwiTTM3My41IDI3LjFjMTUtMTcuMiAzNi43LTI3LjEgNTkuNi0yNy4xIDQzLjYgMCA3OSAzNS40IDc5IDc5IDAgMjIuOC05LjkgNDQuNi0yNy4xIDU5LjZMMjgzLjcgMzEzLjggMjczIDMwMyAyMDkgMjM5IDE5OC4yIDIyOC4zIDM3My41IDI3LjF6TTE2MS4xIDI1OUMxNjIgMjYwIDE4OCAyODYgMjM5IDMzN2wxMy45IDEzLjktMTcuMSA3NC4yYy0zLjkgMTcuMS0xNi45IDMwLjctMzMuOCAzNS40bC0xNjkuOCA0Ny41IDkyLjMtOTIuM2MxLjIgLjEgMi4zIC4yIDMuNSAuMiAxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyYzAgMS4yIC4xIDIuNCAuMiAzLjVMMy45IDQ3OS44IDUxLjUgMzEwYzQuNy0xNi45IDE4LjMtMjkuOSAzNS40LTMzLjhMMTYxLjEgMjU5elwiXVxufTtcbnZhciBmYUV1cm9TaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V1cm8tc2lnbicsXG4gIGljb246IFs0NDgsIDUxMiwgWzgzNjQsIFwiZXVyXCIsIFwiZXVyb1wiXSwgXCJmMTUzXCIsIFwiTTczLjMgMTkyQzEwMC44IDk5LjUgMTg2LjUgMzIgMjg4IDMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTY1LjYgMC0xMjIgMzkuNS0xNDYuNyA5NkwyNzIgMTkyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDMuMiAwYy0uNSA1LjMtLjggMTAuNi0uOCAxNnMuMyAxMC43IC44IDE2TDI3MiAyNzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTEzMC43IDBjMjQuNyA1Ni41IDgxLjEgOTYgMTQ2LjcgOTZsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTAxLjUgMC0xODcuMi02Ny41LTIxNC43LTE2MEw0MCAzMjBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQuNiAwYy0uNy0xMC41LS43LTIxLjUgMC0zMkw0MCAyNDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMzMuMyAwelwiXVxufTtcbnZhciBmYUV1ciA9IGZhRXVyb1NpZ247XG52YXIgZmFFdXJvID0gZmFFdXJvU2lnbjtcbnZhciBmYUhvdXNlQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTBiXCIsIFwiTTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDIxNy42IDIwMmMtMTAuMi0xLjctMjAuNy0yLjYtMzEuMy0yLjYtNzguNiAwLTE0Ni4yIDQ3LjItMTc1LjkgMTE0LjgtNS0xLjgtMTAuNS0yLjgtMTYuMS0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTAuOSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4yIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNTU1LjMgMzQwLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpcIl1cbn07XG52YXIgZmFMaXJhU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsaXJhLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs4MzU2XSwgXCJmMTk1XCIsIFwiTTg0LjkgMjU2bC0yOC40IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEuNiAwQzUzLjIgMTI0LjcgMTE2LjggNDIgMjA3LjYgNDJsOC4yIDBjMzMuNiAwIDY2LjIgMTEuMyA5Mi41IDMyLjJsMTYuMSAxMi43YzEzLjkgMTEgMTYuMiAzMS4xIDUuMiA0NXMtMzEuMSAxNi4yLTQ1IDUuMmwtMTYuMS0xMi43Yy0xNS0xMS45LTMzLjYtMTguNC01Mi44LTE4LjRsLTguMiAwYy01My44IDAtOTAuMSA1Mi45LTczLjUgMTAybDE2Mi40IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NS4xIDBjMi4zIDEwLjYgMy42IDIxLjMgMy45IDMybDE0MS4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMTUwIDMzNmMtNC44IDE4LjYtMTIuNiAzNi41LTIzLjYgNTIuOWwtMTguMSAyNy4xIDIxMi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI3MiAwYy0xMS44IDAtMjIuNi02LjUtMjguMi0xNi45cy01LTIzIDEuNi0zMi45bDUxLjItNzYuOGMzLjctNS42IDYuOS0xMS40IDkuNC0xNy40bC0yNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDM0LjggMGMtLjUtMTAuOC0yLjYtMjEuNi02LjQtMzJ6XCJdXG59O1xudmFyIGZhWWVuU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd5ZW4tc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgWzE2NSwgXCJjbnlcIiwgXCJqcHlcIiwgXCJybWJcIiwgXCJ5ZW5cIl0sIFwiZjE1N1wiLCBcIk03NC45IDQ2LjdjLTkuNi0xNC45LTI5LjQtMTkuMi00NC4yLTkuNlMxMS41IDY2LjQgMjEuMSA4MS4zTDE0My43IDI3MiA4OCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDMyLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtMzIgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTUuNyAwIDEyMi42LTE5MC43YzkuNi0xNC45IDUuMy0zNC43LTkuNi00NC4ycy0zNC43LTUuMy00NC4yIDkuNkwxOTIgMjI4LjggNzQuOSA0Ni43elwiXVxufTtcbnZhciBmYUNueSA9IGZhWWVuU2lnbjtcbnZhciBmYUpweSA9IGZhWWVuU2lnbjtcbnZhciBmYVJtYiA9IGZhWWVuU2lnbjtcbnZhciBmYVllbiA9IGZhWWVuU2lnbjtcbnZhciBmYUJveE9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94LW9wZW4nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0OWVcIiwgXCJNNTYwLjMgMjM3LjJjMTAuNCAxMS44IDI4LjMgMTQuNCA0MS44IDUuNSAxNC43LTkuOCAxOC43LTI5LjcgOC45LTQ0LjRsLTQ4LTcyYy0yLjgtNC4yLTYuNi03LjctMTEuMS0xMC4yTDM1MS40IDQuN2MtMTkuMy0xMC43LTQyLjgtMTAuNy02Mi4yIDBMODguOCAxMTZjLTUuNCAzLTkuNyA3LjQtMTIuNiAxMi44TDI3LjcgMjE4LjdjLTEyLjYgMjMuNC0zLjggNTIuNSAxOS42IDY1LjFsMzMgMTcuNyAwIDUzLjNjMCAyMyAxMi40IDQ0LjMgMzIuNCA1NS43bDE3NiA5OS43YzE5LjYgMTEuMSA0My41IDExLjEgNjMuMSAwbDE3Ni05OS43YzIwLjEtMTEuNCAzMi40LTMyLjYgMzIuNC01NS43bDAtMTE3LjV6bS0yNDAtOS44TDE3MC4yIDE0NCAzMjAuMyA2MC42IDQ3MC40IDE0NCAzMjAuMyAyMjcuNHptLTQxLjUgNTAuMmwtMjEuMyA0Ni4yLTE2NS44LTg4LjggMjUuNC00Ny4yIDE2MS43IDg5Ljh6XCJdXG59O1xudmFyIGZhVHJ1Y2tGaWVsZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1maWVsZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU4ZFwiLCBcIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyMjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsNDAuNCAwYzMyLjQgMCA2MS42IDE5LjYgNzQgNDkuNWw0My44IDEwNi4zIDEuNyA0LjIgMjQuNyAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLS40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04bC0xNDQuNyAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTMuNiAuMi03LjEgLjYtMTAuNS0xOS02LjQtMzIuNi0yNC40LTMyLjYtNDUuNWwwLTQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtMzJ6bTM1MiAzMmwwIDk2IDgyLjEgMC0zNS40LTg2LjFjLTIuNS02LTguMy05LjktMTQuOC05LjlMMzg0IDEyOHpNMTkyIDM5MmE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yODAgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwiXVxufTtcbnZhciBmYUxvY2F0aW9uUGluTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NhdGlvbi1waW4tbG9jaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTUxZlwiLCBcIk0wIDE4OC42QzAgODQuNCA4NiAwIDE5MiAwIDI5NC4xIDAgMzc3LjYgNzguMyAzODMuNiAxNzcgMzIwLjcgMTg1LjEgMjcyIDIzOC44IDI3MiAzMDRsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgNzUuN2MtOS45IDExLjYtMTguOSAyMS43LTI2LjQgMjkuOC0xMS44IDEyLjgtMzEuNSAxMi44LTQzLjMgMC01MC4yLTU0LjUtMTcwLjQtMTk3LjUtMTcwLjQtMzE2Ljh6TTE5MiAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bTI0MCA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMjg4IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnpcIl1cbn07XG52YXIgZmFQZXJzb25QcmF5aW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1wcmF5aW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4NzIwLCBcInByYXlcIl0sIFwiZjY4M1wiLCBcIk0zMjAgNjRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek0yMDAuNyAyNjRsMjIuOSAzMS41YzYuNSA4LjkgMTYuMyAxNC43IDI3LjIgMTYuMXMyMS45LTEuNyAzMC40LTguN2w4OC03MmMxNy4xLTE0IDE5LjYtMzkuMiA1LjYtNTYuM3MtMzkuMi0xOS42LTU2LjMtNS42bC01NS4yIDQ1LjItMjYuMi0zNmMtMTUuNi0yMS41LTQwLjYtMzQuMi02Ny4yLTM0LjItMzAuOSAwLTU5LjIgMTcuMS03My42IDQ0LjRMNDcuOCAyODAuOWMtMjAuMiAzOC41LTkuNCA4NS45IDI1LjYgMTExLjhMMTI2LjYgNDMyIDQwIDQzMmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwyMDggMGMxNy4zIDAgMzIuNi0xMS4xIDM4LTI3LjVzLS4zLTM0LjQtMTQuMi00NC43bC0xMTYuMS04NS44IDQ1LTkwelwiXVxufTtcbnZhciBmYVByYXkgPSBmYVBlcnNvblByYXlpbmc7XG52YXIgZmFDbGlwYm9hcmRMaXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NsaXBib2FyZC1saXN0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDZkXCIsIFwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xMjggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMyIDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCAxMjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNOTYgNDE2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFTYWNrRG9sbGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NhY2stZG9sbGFyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTc2XSwgXCJmODFkXCIsIFwiTTMyOCAxMTJsLTE0NCAwLTM3LjMtNzQuNWMtMS44LTMuNi0yLjctNy42LTIuNy0xMS42IDAtMTQuMyAxMS42LTI1LjkgMjUuOS0yNS45TDM0Mi4xIDBjMTQuMyAwIDI1LjkgMTEuNiAyNS45IDI1LjkgMCA0LS45IDgtMi43IDExLjZMMzI4IDExMnpNMTY5LjYgMTYwbDE3Mi44IDAgNDguNyA0MC42QzQ1Ny42IDI1NiA0OTYgMzM4IDQ5NiA0MjQuNSA0OTYgNDcyLjggNDU2LjggNTEyIDQwOC41IDUxMmwtMzA1LjEgMEM1NS4yIDUxMiAxNiA0NzIuOCAxNiA0MjQuNSAxNiAzMzggNTQuNCAyNTYgMTIwLjkgMjAwLjZMMTY5LjYgMTYwek0yNjAgMjI0Yy0xMSAwLTIwIDktMjAgMjBsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMjE2IDM4NGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHpcIl1cbn07XG52YXIgZmFNb3VudGFpblN1biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3VudGFpbi1zdW4nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MmZcIiwgXCJNMjU2LjUgMGMxNC43IDAgMjguMiA4LjEgMzUuMiAyMWwyMTYgNDAwYzYuNyAxMi40IDYuNCAyNy40LS44IDM5LjUtNy4yIDEyLjEtMjAuMyAxOS41LTM0LjMgMTkuNWwtNDMyIDBjLTE0LjEgMC0yNy4xLTcuNC0zNC4zLTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMCAyLjktNC42QzIzMS43IDYuMiAyNDMuNiAwIDI1Ni41IDB6TTE3MC40IDI0OS45bDI2LjggMjYuOGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw0My4zLTQzLjNjNi02IDE0LjEtOS40IDIyLjYtOS40bDQyLjggMC03Mi4xLTEzMy41LTg2LjEgMTU5LjR6TTQ5Ni41IDE2MGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHpcIl1cbn07XG52YXIgZmFBcnJvd1VwV2lkZVNob3J0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXVwLXdpZGUtc2hvcnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNvcnQtYW1vdW50LXVwXCJdLCBcImYxNjFcIiwgXCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2ek0zMjAgNDgwbDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4bDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4bDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyelwiXVxufTtcbnZhciBmYVNvcnRBbW91bnRVcCA9IGZhQXJyb3dVcFdpZGVTaG9ydDtcbnZhciBmYVVzZXJzTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2Vycy1saW5lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTkyXCIsIFwiTTIyNCAxMjhhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0xNzYgMzM2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJsMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC04ek0zOTIgMTQ0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjcuMiAxMDAuNGM5LjEtMi45IDE4LjgtNC40IDI4LjgtNC40IDUzIDAgOTYgNDMgOTYgOTZsMCAxMC43YzAgMTEuOC05LjYgMjEuMy0yMS4zIDIxLjNsLTc4LjggMGMyLjctNy41IDQuMS0xNS42IDQuMS0yNGwwLThjMC0zNC4xLTEwLjYtNjUuNy0yOC44LTkxLjZ6bS0yNjIuNCAwYy0xOC4yIDI2LTI4LjggNTcuNS0yOC44IDkxLjZsMCA4YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNzguOCAwQzQxLjYgMzY4IDMyIDM1OC40IDMyIDM0Ni43TDMyIDMzNmMwLTUzIDQzLTk2IDk2LTk2IDEwIDAgMTkuNyAxLjUgMjguOCA0LjR6TTcyIDE0NGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTAgNDQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDQ2NGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6XCJdXG59O1xudmFyIGZhU3Rhck9mRGF2aWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1vZi1kYXZpZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEwMDE3XSwgXCJmNjlhXCIsIFwiTTQxNS45IDMxMS45bC0yNy44IDQ4LjEgNTUuNyAwLTI3LjgtNDguMXpNMzgzLjYgMjU2bC02MC4yLTEwNC0xMzQuOCAwLTYwLjIgMTA0IDYwLjIgMTA0IDEzNC44IDAgNjAuMi0xMDR6bTY0LjcgMGw1OC40IDEwMC45YzMuNSA2IDUuMyAxMi44IDUuMyAxOS43IDAgMjEuNy0xNy42IDM5LjQtMzkuNCAzOS40bC0xMTcgMC02MS4zIDEwNS44QzI4Ni41IDUzNS42IDI3MS44IDU0NCAyNTYgNTQ0cy0zMC41LTguNC0zOC40LTIyLjJsLTYxLjMtMTA1LjgtMTE3IDBjLTIxLjcgMC0zOS40LTE3LjYtMzkuNC0zOS40IDAtNi45IDEuOC0xMy43IDUuMy0xOS43TDYzLjcgMjU2IDUuMyAxNTUuMUMxLjggMTQ5LjEgMCAxNDIuMyAwIDEzNS40IDAgMTEzLjYgMTcuNiA5NiAzOS40IDk2bDExNyAwIDYxLjMtMTA1LjhDMjI1LjUtMjMuNiAyNDAuMi0zMiAyNTYtMzJzMzAuNSA4LjQgMzguNCAyMi4ybDYxLjMgMTA1LjggMTE3IDBjMjEuNyAwIDM5LjQgMTcuNiAzOS40IDM5LjQgMCA2LjktMS44IDEzLjctNS4zIDE5LjdMNDQ4LjMgMjU2ek0zODguMSAxNTJsMjcuOCA0OC4xIDI3LjgtNDguMS01NS43IDB6TTI5MSA5NmwtMzUtNjAuNC0zNSA2MC40IDcwIDB6TTEyMy45IDE1MmwtNTUuNyAwIDI3LjggNDguMSAyNy44LTQ4LjF6TTk2LjEgMzExLjlsLTI3LjggNDguMSA1NS43IDAtMjcuOC00OC4xek0yMjEgNDE2bDM1IDYwLjQgMzUtNjAuNC03MCAwelwiXVxufTtcbnZhciBmYU5vdGVzTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdub3Rlcy1tZWRpY2FsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDgxXCIsIFwiTTk2IDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODEuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My4zIDI5MC43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTEyIDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAwQzEyNC43IDAgOTYgMjguNyA5NiA2NGwwIDI4OHpNMjg4IDExMmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00OC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnpNNDggMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTA2LjcgMCAxMjBMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0zMjh6XCJdXG59O1xudmFyIGZhQXVzdHJhbFNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXVzdHJhbC1zaWduJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMGE5XCIsIFwiTTI2Ni41IDI0MGwtODUgMCA0Mi41LTEwNi40IDQyLjUgMTA2LjR6bTY4LjkgMEwyNjIuOSA1OC4zQzI1Ni41IDQyLjQgMjQxLjEgMzIgMjI0IDMycy0zMi41IDEwLjQtMzguOSAyNi4zTDExMi42IDI0MCAzMiAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjEuNCAwLTE5LjIgNDgtNDIuMyAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDIzLjEgMC0yMC44IDUyLjFjLTYuNiAxNi40IDEuNCAzNSAxNy45IDQxLjZzMzUtMS40IDQxLjYtMTcuOWwzMC4zLTc1LjkgMjAwIDAgMzAuMyA3NS45YzYuNiAxNi40IDI1LjIgMjQuNCA0MS42IDE3LjlzMjQuNC0yNS4yIDE3LjktNDEuNkwzOTIuOSAzODQgNDE2IDM4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDIuMyAwLTE5LjItNDggNjEuNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MC42IDB6bS00OS43IDQ4bDE5LjIgNDgtMTYxLjYgMCAxOS4yLTQ4IDEyMy4zIDB6XCJdXG59O1xudmFyIGZhQ2xpcGJvYXJkVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbGlwYm9hcmQtdXNlcicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjdmM1wiLCBcIk0zMTEuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyek0yNDggMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMHpNMTkyIDM0NGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNOTguMyA0MTNjLTEyLjkgMTUuNiAyLjIgMzUgMjIuNCAzNWwxNDIuNSAwYzIwLjIgMCAzNS4zLTE5LjQgMjIuNC0zNS0xNC43LTE3LjctMzYuOS0yOS02MS43LTI5bC02NCAwYy0yNC44IDAtNDcgMTEuMy02MS43IDI5elwiXVxufTtcbnZhciBmYUZpbGVJbWFnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWltYWdlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4NDQzXSwgXCJmMWM1XCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xMjggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTkyLjYgNDQ4bDE5OC44IDBjMTUuOCAwIDI4LjYtMTIuOCAyOC42LTI4LjYgMC03LjMtMi44LTE0LjQtNy45LTE5LjdMMjE1LjMgMjk3LjljLTYtNi4zLTE0LjQtOS45LTIzLjItOS45bC0uMyAwYy04LjggMC0xNy4xIDMuNi0yMy4yIDkuOUw3MS45IDM5OS43QzY2LjggNDA1IDY0IDQxMi4xIDY0IDQxOS40IDY0IDQzNS4yIDc2LjggNDQ4IDkyLjYgNDQ4elwiXVxufTtcbnZhciBmYVNxdWFyZUNhcmV0UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLWNhcmV0LXJpZ2h0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJjYXJldC1zcXVhcmUtcmlnaHRcIl0sIFwiZjE1MlwiLCBcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMzIwIDI1NmMwIDYuNy0yLjggMTMtNy43IDE3LjZsLTExMiAxMDRjLTcgNi41LTE3LjIgOC4yLTI1LjkgNC40UzE2MCAzNjkuNSAxNjAgMzYwbDAtMjA4YzAtOS41IDUuNy0xOC4yIDE0LjQtMjJzMTguOS0yLjEgMjUuOSA0LjRsMTEyIDEwNGM0LjkgNC41IDcuNyAxMC45IDcuNyAxNy42elwiXVxufTtcbnZhciBmYUNhcmV0U3F1YXJlUmlnaHQgPSBmYVNxdWFyZUNhcmV0UmlnaHQ7XG52YXIgZmFWaWFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpYWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk1MTRdLCBcImY0OTJcIiwgXCJNMzQyLjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wzMDYuNyA2NCAyOC4xIDM0Mi42QzEwLjEgMzYwLjYgMCAzODUgMCA0MTAuNUwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDUuNSAwYzI1LjUgMCA0OS45LTEwLjEgNjcuOS0yOC4xbDI3OC42LTI3OC42IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHpNMjA1LjMgMjU2bDE0Ni43LTE0Ni43IDUwLjcgNTAuNy05NiA5Ni0xMDEuNSAwelwiXVxufTtcbnZhciBmYUhlbGljb3B0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVsaWNvcHRlcicsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODY0MV0sIFwiZjUzM1wiLCBcIk0xNzYgMzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTUyIDAgMCA0OC0yMjAuOCAwLTMyLjgtMzkuNEM2OS45IDgzLjIgNjMuMSA4MCA1NiA4MEwyNCA4MEMxNS43IDgwIDggODQuMyAzLjYgOTEuNHMtNC44IDE1LjktMS4xIDIzLjRsNDggOTZDNTQuNiAyMTguOSA2Mi45IDIyNCA3MiAyMjRsMTA3LjggMCAxMDQgMTQzLjFjMTUuMSAyMC43IDM5LjEgMzIuOSA2NC43IDMyLjlsNzUuNSAwYzc1LjEgMCAxMzYtNjAuOSAxMzYtMTM2UzQ5OS4xIDEyOCA0MjQgMTI4bC00OCAwIDAtNDggMTUyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTc2IDMyek0zNzYgMTkybDQ4IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJzLTMyLjIgNzItNzIgNzJsLTQ4IDAgMC0xNDR6TTU1MiA0MTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0IDAgNC40LTMuNiA4LTggOGwtMjcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjR6XCJdXG59O1xudmFyIGZhTWl0dGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pdHRlbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdiNVwiLCBcIk0zNTIgMzg0TDY0IDM4NCA1LjQgMTc4LjlDMS44IDE2Ni40IDAgMTUzLjQgMCAxNDAuMyAwIDYyLjggNjIuOCAwIDE0MC4zIDBsMy40IDBjNjYgMCAxMjMuNSA0NC45IDEzOS41IDEwOC45bDMxLjQgMTI1LjggMTcuNi0yMC4xQzM0NC44IDIwMC4yIDM2Mi45IDE5MiAzODIgMTkybDIuOCAwYzM0LjkgMCA2My4zIDI4LjMgNjMuMyA2My4zIDAgMTUuOS02IDMxLjItMTYuOCA0Mi45TDM1MiAzODR6TTMyIDQ2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnpcIl1cbn07XG52YXIgZmFHYXNQdW1wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dhcy1wdW1wJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTk4MV0sIFwiZjUyZlwiLCBcIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDI1NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyIDggMGM0OC42IDAgODggMzkuNCA4OCA4OGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNTRjLTI3LjYtNy4xLTQ4LTMyLjItNDgtNjJsMC01OS41LTI1LjgtMjguM2MtOC45LTkuOC04LjItMjUgMS42LTMzLjlzMjUtOC4yIDMzLjkgMS42bDcxLjcgNzguOGM5LjQgMTAuMyAxNC42IDIzLjcgMTQuNiAzNy43TDUxMiAzNzZjMCAzOS44LTMyLjIgNzItNzIgNzJzLTcyLTMyLjItNzItNzJsMC0zMmMwLTIyLjEtMTcuOS00MC00MC00MGwtOCAwIDAgMTYxLjRjOS4zIDMuMyAxNiAxMi4yIDE2IDIyLjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRMNDAgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjUgNi43LTE5LjMgMTYtMjIuNkwzMiA2NHpNOTYgODBsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2TDExMiA2NGMtOC44IDAtMTYgNy4yLTE2IDE2elwiXVxufTtcbnZhciBmYUVudmVsb3BlQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZW52ZWxvcGUtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGU4XCIsIFwiTTY0IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OGw0MTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgxLjRjLTI0LjQtMTEuMi01MS40LTE3LjQtODAtMTcuNC04Ny43IDAtMTYxLjcgNTguOC0xODQuNyAxMzkuMi03LjEtMS4zLTE0LjEtNC4yLTIwLjEtOC44bC0yMDgtMTU2QzcxLjEgMTQxLjMgNjQgMTI3LjEgNjQgMTEyek0zMDQgMzY4YzAgMjguNiA2LjIgNTUuNiAxNy40IDgwTDEyOCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTg4IDE5OC40IDE0OC44YzEyLjYgOS40IDI2LjkgMTUuNCA0MS43IDE3LjkgMCAxLjgtLjEgMy41LS4xIDUuM3ptNDggMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3pcIl1cbn07XG52YXIgZmFQZXJzb25Ta2F0aW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1za2F0aW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJza2F0aW5nXCJdLCBcImY3YzVcIiwgXCJNMzY4IDU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTI4IDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNTAuMSAwYzQ5LjkgMCA3NC45IDYwLjMgMzkuNiA5NS42bC02My45IDYzLjkgNjkuOCAzMWMxNy4zIDcuNyAyOC41IDI0LjkgMjguNSA0My45bDAgODUuNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTc1LjItODIuNC0zNi42Yy00MS0xOC4yLTUxLTcyLTE5LjMtMTAzLjdsNDAuNC00MC40LTk4LjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTg5LjQgMzYxLjRsNzUuOS03NS45YzcuNyAxOS43IDIxLjYgMzcuMyA0MSA0OS42bC03MS42IDcxLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zem0zNDYuNSA4Ny4xYzguNiAyLjEgMTMuOCAxMC44IDExLjYgMTkuNGwtLjQgMS43Yy02LjIgMjQuOS0yOC42IDQyLjQtNTQuMyA0Mi40TDMwNCA1MTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsODguOCAwYzExIDAgMjAuNi03LjUgMjMuMy0xOC4ybC40LTEuN2MyLjEtOC42IDEwLjgtMTMuOCAxOS40LTExLjZ6TTE0My4yIDQ4Ni4zbC02LjIgMy4xYy0yMS42IDEwLjgtNDcuNiA2LjYtNjQuNi0xMC41TDEyLjcgNDE5LjNjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGw1OS42IDU5LjZjNy4zIDcuMyAxOC41IDkuMSAyNy43IDQuNWw2LjItMy4xYzcuOS00IDE3LjUtLjcgMjEuNSA3LjJzLjcgMTcuNS03LjIgMjEuNXpcIl1cbn07XG52YXIgZmFTa2F0aW5nID0gZmFQZXJzb25Ta2F0aW5nO1xudmFyIGZhU3VuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1bicsXG4gIGljb246IFs1NzYsIDUxMiwgWzk3MjhdLCBcImYxODVcIiwgXCJNMTc4LjItMTAuMWM3LjQtMy4xIDE1LjgtMi4yIDIyLjUgMi4ybDg3LjggNTguMiA4Ny44LTU4LjJjNi43LTQuNCAxNS4xLTUuMiAyMi41LTIuMlM0MTEuNC0uNSA0MTMgNy4zbDIwLjkgMTAzLjIgMTAzLjIgMjAuOWM3LjggMS42IDE0LjQgNyAxNy40IDE0LjNzMi4yIDE1LjgtMi4yIDIyLjVsLTU4LjIgODcuOCA1OC4yIDg3LjhjNC40IDYuNyA1LjIgMTUuMSAyLjIgMjIuNXMtOS42IDEyLjgtMTcuNCAxNC4zTDQzMy44IDQwMS40IDQxMyA1MDQuN2MtMS42IDcuOC03IDE0LjQtMTQuMyAxNy40cy0xNS44IDIuMi0yMi41LTIuMmwtODcuOC01OC4yLTg3LjggNTguMmMtNi43IDQuNC0xNS4xIDUuMi0yMi41IDIuMnMtMTIuOC05LjYtMTQuMy0xNy40TDE0MyA0MDEuNCAzOS43IDM4MC41Yy03LjgtMS42LTE0LjQtNy0xNy40LTE0LjNzLTIuMi0xNS44IDIuMi0yMi41TDgyLjcgMjU2IDI0LjUgMTY4LjJjLTQuNC02LjctNS4yLTE1LjEtMi4yLTIyLjVzOS42LTEyLjggMTcuNC0xNC4zTDE0MyAxMTAuNiAxNjMuOSA3LjNjMS42LTcuOCA3LTE0LjQgMTQuMy0xNy40ek0yMDcuNiAyNTZhODAuNCA4MC40IDAgMSAxIDE2MC44IDAgODAuNCA4MC40IDAgMSAxIC0xNjAuOCAwem0yMDguOCAwYTEyOC40IDEyOC40IDAgMSAwIC0yNTYuOCAwIDEyOC40IDEyOC40IDAgMSAwIDI1Ni44IDB6XCJdXG59O1xudmFyIGZhQmFzZWJhbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFzZWJhbGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjkzNTgsIDk5MTgsIFwiYmFzZWJhbGwtYmFsbFwiXSwgXCJmNDMzXCIsIFwiTTIzMi40IDEuMWMtMTIyLjIgMTEuNC0yMTkuNSAxMDguNy0yMzAuOSAyMzAuOSAxNi4yLS4xIDMyLTEuOCA0Ny4yLTUgMTMtMi43IDI1LjcgNS41IDI4LjQgMTguNXMtNS41IDI1LjctMTguNSAyOC40Yy0xOC40IDMuOS0zNy42IDYtNTcuMSA2LjEgMTEuNCAxMjIuMiAxMDguNyAyMTkuNSAyMzAuOSAyMzAuOSAuMS0xOS41IDIuMi0zOC43IDYuMS01Ny4xIDIuNy0xMyAxNS41LTIxLjMgMjguNC0xOC41czIxLjMgMTUuNSAxOC41IDI4LjRjLTMuMiAxNS4yLTQuOSAzMS01IDQ3LjIgMTIyLjItMTEuNCAyMTkuNS0xMDguNyAyMzAuOS0yMzAuOS0xNi4yIC4xLTMyIDEuOC00Ny4yIDUtMTMgMi43LTI1LjctNS41LTI4LjQtMTguNXM1LjUtMjUuNyAxOC41LTI4LjRjMTguNC0zLjkgMzcuNi02IDU3LjEtNi4xLTExLjQtMTIyLjItMTA4LjctMjE5LjUtMjMwLjktMjMwLjktLjEgMTkuNS0yLjIgMzguNy02LjEgNTcuMS0yLjcgMTMtMTUuNSAyMS4zLTI4LjQgMTguNXMtMjEuMy0xNS41LTE4LjUtMjguNGMzLjItMTUuMiA0LjktMzEgNS00Ny4yem0yLjggMTUxLjRjLTIxLjQgMzIuOS00OS41IDYwLjktODIuMyA4Mi4zLTExLjEgNy4yLTI2IDQuMS0zMy4yLTdzLTQuMS0yNiA3LTMzLjJjMjcuMi0xNy43IDUwLjUtNDEgNjguMy02OC4zIDcuMi0xMS4xIDIyLjEtMTQuMyAzMy4yLTdzMTQuMyAyMi4xIDcgMzMuMnpNMzkzLjEgMjg0LjJjNy4yIDExLjEgNC4xIDI2LTcgMzMuMi0yNy4yIDE3LjctNTAuNSA0MS02OC4zIDY4LjMtNy4yIDExLjEtMjIuMSAxNC4zLTMzLjIgN3MtMTQuMy0yMi4xLTctMzMuMmMyMS40LTMyLjkgNDkuNS02MC45IDgyLjMtODIuMyAxMS4xLTcuMiAyNi00LjEgMzMuMiA3elwiXVxufTtcbnZhciBmYUJhc2ViYWxsQmFsbCA9IGZhQmFzZWJhbGw7XG52YXIgZmFJbWFnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpbWFnZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjAzZVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA4MGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTI3MiAyMjRjOC40IDAgMTYuMSA0LjQgMjAuNSAxMS41bDg4IDE0NGM0LjUgNy40IDQuNyAxNi43IC41IDI0LjNTMzY4LjcgNDE2IDM2MCA0MTZMODggNDE2Yy04LjkgMC0xNy4yLTUtMjEuMy0xMi45cy0zLjUtMTcuNSAxLjYtMjQuOGw1Ni04MGM0LjUtNi40IDExLjgtMTAuMiAxOS43LTEwLjJzMTUuMiAzLjggMTkuNyAxMC4ybDI2LjQgMzcuOCA2MS40LTEwMC41YzQuNC03LjEgMTIuMS0xMS41IDIwLjUtMTEuNXpcIl1cbn07XG52YXIgZmFOb3RkZWYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbm90ZGVmJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlMWZlXCIsIFwiTTY0IDM5MC4zTDE1My41IDI1NiA2NCAxMjEuNyA2NCAzOTAuM3pNMTAyLjUgNDQ4TDI4MS41IDQ0OCAxOTIgMzEzLjcgMTAyLjUgNDQ4em0xMjgtMTkyTDMyMCAzOTAuMyAzMjAgMTIxLjcgMjMwLjUgMjU2ek0yODEuNSA2NEwxMDIuNSA2NCAxOTIgMTk4LjMgMjgxLjUgNjR6TTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpcIl1cbn07XG52YXIgZmFCYXNrZXRiYWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jhc2tldGJhbGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc5MzYsIFwiYmFza2V0YmFsbC1iYWxsXCJdLCBcImY0MzRcIiwgXCJNOTIuNyA1OC44bDc4LjQgNzguNGMxOC4yLTI1IDI4LjktNTUuOSAyOC45LTg5LjIgMC0xNC4xLTEuOS0yNy43LTUuNS00MC42LTM4IDkuNC03Mi42IDI3LjItMTAxLjggNTEuNHpNNTguOCA5Mi43Yy0yNC4yIDI5LjItNDIgNjMuOC01MS40IDEwMS44IDEyLjkgMy42IDI2LjUgNS41IDQwLjYgNS41IDMzLjMgMCA2NC4xLTEwLjcgODkuMi0yOC45TDU4LjggOTIuN3pNMjU2IDBjLTQuNiAwLTkuMiAuMS0xMy43IC40IDMuNyAxNS4zIDUuNyAzMS4yIDUuNyA0Ny42IDAgNDYuNi0xNS45IDg5LjQtNDIuNiAxMjMuNEwyNTYgMjIyLjEgNDE5LjMgNTguOEMzNzQuOSAyMi4xIDMxOC4xIDAgMjU2IDB6TTQ4IDI0OGMtMTYuNCAwLTMyLjQtMi00Ny42LTUuNy0uMiA0LjUtLjQgOS4xLS40IDEzLjcgMCA2Mi4xIDIyLjEgMTE4LjkgNTguOCAxNjMuM0wyMjIuMSAyNTYgMTcxLjQgMjA1LjRDMTM3LjQgMjMyLjEgOTQuNiAyNDggNDggMjQ4em00NjMuNiAyMS43Yy4yLTQuNSAuNC05LjEgLjQtMTMuNyAwLTYyLjEtMjIuMS0xMTguOS01OC44LTE2My4zTDI4OS45IDI1NiAzNDAuNiAzMDYuNmMzNC0yNi43IDc2LjktNDIuNiAxMjMuNC00Mi42IDE2LjQgMCAzMi40IDIgNDcuNiA1Ljd6bS03LjEgNDcuOGMtMTIuOS0zLjYtMjYuNS01LjUtNDAuNi01LjUtMzMuMyAwLTY0LjEgMTAuNy04OS4yIDI4LjlsNzguNCA3OC40YzI0LjItMjkuMiA0Mi02My44IDUxLjQtMTAxLjh6TTM0MC45IDM3NC44Yy0xOC4yIDI1LTI4LjkgNTUuOS0yOC45IDg5LjIgMCAxNC4xIDEuOSAyNy43IDUuNSA0MC42IDM4LTkuNCA3Mi42LTI3LjIgMTAxLjgtNTEuNGwtNzguNC03OC40em0tMzQuMy0zNC4zTDI1NiAyODkuOSA5Mi43IDQ1My4yYzQ0LjMgMzYuNyAxMDEuMiA1OC44IDE2My4zIDU4LjggNC42IDAgOS4yLS4xIDEzLjctLjQtMy43LTE1LjMtNS43LTMxLjItNS43LTQ3LjYgMC00Ni42IDE1LjktODkuNCA0Mi42LTEyMy40elwiXVxufTtcbnZhciBmYUJhc2tldGJhbGxCYWxsID0gZmFCYXNrZXRiYWxsO1xudmFyIGZhUGVuY2lsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlbmNpbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5OTksIDYxNTA0LCBcInBlbmNpbC1hbHRcIl0sIFwiZjMwM1wiLCBcIk0zNi40IDM1My4yYzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4LjdsMTgxLjItMTgxLjIgMzMuOS0zMy45YzE2LjYgMTYuNiA1MS4zIDUxLjMgMTA0IDEwNGwzMy45IDMzLjktMzMuOSAzMy45LTE4MS4yIDE4MS4yYy0xMC43IDEwLjctMjQuMSAxOC41LTM4LjcgMjIuNkwzMC40IDUxMC42Yy04LjMgMi4zLTE3LjMgMC0yMy40LTYuMlMtMS40IDQ4OS4zIC45IDQ4MUwzNi40IDM1My4yem01NS42LTMuN2MtNC40IDQuNy03LjYgMTAuNC05LjMgMTYuNmwtMjQuMSA4Ni45IDg2LjktMjQuMWM2LjQtMS44IDEyLjItNS4xIDE3LTkuN0w5MS45IDM0OS41em0zNTQtMTQ2LjFjLTE2LjYtMTYuNi01MS4zLTUxLjMtMTA0LTEwNEwzMDggNjUuNUMzMzQuNSAzOSAzNDkuNCAyNC4xIDM1Mi45IDIwLjYgMzY2LjQgNyAzODQuOC0uNiA0MDQtLjZTNDQxLjYgNyA0NTUuMSAyMC42bDM1LjcgMzUuN0M1MDQuNCA2OS45IDUxMiA4OC4zIDUxMiAxMDcuNHMtNy42IDM3LjYtMjEuMiA1MS4xYy0zLjUgMy41LTE4LjQgMTguNC00NC45IDQ0Ljl6XCJdXG59O1xudmFyIGZhUGVuY2lsQWx0ID0gZmFQZW5jaWw7XG52YXIgZmFQZXJzb25XYWxraW5nQXJyb3dMb29wTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24td2Fsa2luZy1hcnJvdy1sb29wLWxlZnQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NTFcIiwgXCJNMTYwIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek03My40IDIyNy45bDIyLjYtMjIuNiAwIDY5LjNjMCAyOCAxMi4yIDU0LjcgMzMuNSA3Mi45bDcxLjQgNjEuMmM1LjkgNS4xIDkuOCAxMi4xIDEwLjkgMTkuOGwxMi42IDg4LjFjMi41IDE3LjUgMTguNyAyOS43IDM2LjIgMjcuMnMyOS43LTE4LjcgMjcuMi0zNi4ybC0xMi42LTg4LjFjLTMuMy0yMy4xLTE0LjktNDQuMS0zMi42LTU5LjNsLTM0LjUtMjkuNiAwLTExNS4yIDMuOCA0LjdjMTguMiAyMi44IDQ1LjggMzYgNzUgMzZsMzMuMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMy4yIDBjLTkuNyAwLTE4LjktNC40LTI1LTEybC0xNy45LTIyLjRjLTIzLTI4LjgtNTcuOS00NS42LTk0LjgtNDUuNi0zMi4yIDAtNjMuMSAxMi44LTg1LjggMzUuNkwyOC4xIDE4Mi42QzEwLjEgMjAwLjYgMCAyMjUgMCAyNTAuNUwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcuNWMwLTguNSAzLjQtMTYuNiA5LjQtMjIuNnpNODUuOCA0MDcuM2MtMS41IDUuMi00LjMgMTAtOC4xIDEzLjhMOS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOEw4NS44IDQwNy4zek0zNTkgMzM1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMxLTMxIDEwMi4xIDBjMS4yIDAgMi40LS4xIDMuNS0uMyA1Ni4xLTMuOSAxMDAuNS01MC42IDEwMC41LTEwNy43IDAtNTkuNi00OC40LTEwOC0xMDgtMTA4bC05MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDkyIDBjMzMuMSAwIDYwIDI2LjkgNjAgNjBzLTI2LjkgNjAtNjAgNjBsLTk4LjEgMCAzMS0zMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC03MiA3MnpcIl1cbn07XG52YXIgZmFEaWNlU2l4ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpY2Utc2l4JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbOTg2MV0sIFwiZjUyNlwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTYwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xudmFyIGZhQW5nbGVzRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmdsZXMtZG93bicsXG4gIGljb246IFszODQsIDUxMiwgW1wiYW5nbGUtZG91YmxlLWRvd25cIl0sIFwiZjEwM1wiLCBcIk0yMTQuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMTkyIDQwMi43IDMyOS40IDI2NS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTE2MCAxNjB6bTE2MC0zNTJsLTE2MCAxNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE5MiAyMTAuNyAzMjkuNCA3My40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6XCJdXG59O1xudmFyIGZhQW5nbGVEb3VibGVEb3duID0gZmFBbmdsZXNEb3duO1xudmFyIGZhU3lyaW5nZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzeXJpbmdlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MTM3XSwgXCJmNDhlXCIsIFwiTTQ5Ny41LTE3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE1IDE1LTQ2LjEgNDYuMS02My02M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3IDctNzguMSA3OC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQxLTQxLTQ2LjEgNDYuMSA0MSA0MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00MS00MS0zNy43IDM3LjdjLTEwLjUgMTAuNS0xNi40IDI0LjctMTYuNCAzOS42bDAgODguOC01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU3LTU3IDg4LjggMGMxNC45IDAgMjkuMS01LjkgMzkuNi0xNi40bDIyOS43LTIyOS43IDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTYzLTYzIDQ2LjEtNDYuMSAxNSAxNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY0LTY0elwiXVxufTtcbnZhciBmYVdoZWF0QXduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3doZWF0LWF3bicsXG4gIGljb246IFs1NzYsIDUxMiwgW1wid2hlYXQtYWx0XCJdLCBcImUyY2RcIiwgXCJNNzkuNyAyMzQuNmM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjIgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDQ2LjEgNDYuMWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNy40IDcuNGMtMzcuNSAzNy41LTk4LjMgMzcuNS0xMzUuOCAwTDEzNC4xIDQ0NC4zIDQ5LjQgNTI5Yy05LjQgOS40LTI0LjUgOS40LTMzLjkgMC05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4NC43LTg0LjctMzAuNS0zMC41Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xem0xMDQtMTA0YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMiA4My45IDMxLjctNy43IDY2LjIgMSA5MC42IDI1LjNsNDYuMSA0Ni4xYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03LjQgNy40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNDk1LjIgMTVjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjJMNTI5LjIgNDkgNDE0LjcgMTYzLjRjNy43IDEgMTUuMiAzIDIyLjUgNS45TDQ5NS41IDExMWM5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01Mi43IDUyLjcgMzkgMzljNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcuNCA3LjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMGwtOTQuOS05NC45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xYzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsMzkgMzkgNTIuNy01Mi43YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xbC0xLjcgMS44LTU4LjMgNTguM2MyLjggNy4xIDQuNyAxNC41IDUuNyAyMi4xTDQ5NS4yIDE1elwiXVxufTtcbnZhciBmYVdoZWF0QWx0ID0gZmFXaGVhdEF3bjtcbnZhciBmYVBsYW5lVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUyMmRcIiwgXCJNMjAwIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyAxNzMuNiAxNTkuMmM2LjYgNi4xIDEwLjQgMTQuNiAxMC40IDIzLjZsMCA0My43YzAgMTAuOS0xMC43IDE4LjYtMjEuMSAxNS4ybC0xNjIuOS01NC4zIDAgOTkuNyA2NiA1Mi44YzMuOCAzIDYgNy42IDYgMTIuNWwwIDE5LjhjMCAxMC40LTkuOCAxOC0xOS45IDE1LjVMMjU2IDUxMiAxNDcuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0MyNi43IDM5Ni40IDE2IDM4OC43IDE2IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIwMCAxNTEuMyAyMDAgMjR6XCJdXG59O1xudmFyIGZhQWxpZ25DZW50ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYWxpZ24tY2VudGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDM3XCIsIFwiTTM1MiA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwxMjggMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6bTk2IDEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTM1MiAzMjBjMC0xNy43LTE0LjMtMzItMzItMzJsLTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyelwiXVxufTtcbnZhciBmYUhvY2tleVB1Y2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9ja2V5LXB1Y2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0NTNcIiwgXCJNMjU2IDI1NkMxMTQuNiAyNTYgMCAyMTMgMCAxNjBzMTE0LjYtOTYgMjU2LTk2IDI1NiA0MyAyNTYgOTYtMTE0LjYgOTYtMjU2IDk2ek0wIDM1MkwwIDI0Mi43YzE2LjkgMTIuMyAzNyAyMi4yIDU4LjEgMzAuMSA1MyAxOS45IDEyMyAzMS4yIDE5Ny45IDMxLjJzMTQ0LjktMTEuMyAxOTcuOS0zMS4yYzIxLjItNy45IDQxLjItMTcuOCA1OC4xLTMwLjFMNTEyIDM1MmMwIDUzLTExNC42IDk2LTI1NiA5NlMwIDQwNSAwIDM1MnpcIl1cbn07XG52YXIgZmFDaXJjbGVBcnJvd0xlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWFycm93LWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImFycm93LWNpcmNsZS1sZWZ0XCJdLCBcImYwYThcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEzNSAyMzlsODAtODBjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zOSAzOSAxNTAuMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNTAuMSAwIDM5IDM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpcIl1cbn07XG52YXIgZmFBcnJvd0NpcmNsZUxlZnQgPSBmYUNpcmNsZUFycm93TGVmdDtcbnZhciBmYVBsdWdDaXJjbGVCb2x0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLWJvbHQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NWJcIiwgXCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFM0MzMuMiA0MTYgNDQwIDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM1NTguOCAzODQgNTUyIDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6XCJdXG59O1xudmFyIGZhUmVzdHJvb20gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVzdHJvb20nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3YmRcIiwgXCJNODAgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDAgMzA0bDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTU0LjhjLTguMSA5LjItMjEuMSAxMy4yLTMzLjUgOS40LTE2LjktNS4zLTI2LjMtMjMuMi0yMS00MC4xbDI5LjctOTUuMkM0NC40IDE1Ni45IDgzLjYgMTI4IDEyOCAxMjhzODMuNiAyOC45IDk2LjggNzEuMmwyOS43IDk1LjJjNS4zIDE2LjktNC4xIDM0LjgtMjEgNDAuMS0xMi40IDMuOS0yNS40LS4yLTMzLjUtOS40TDIwMCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMTYgMHpNMzIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0NjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00NjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQ2NCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek00NDAgNDgwbDAtOTYtMTcuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw5LTI2LjljLTMuMiAwLTYuNC0uNS05LjUtMS41LTE2LjktNS4zLTI2LjMtMjMuMi0yMS00MC4xbDI5LjctOTUuMkM0MjguNCAxNTYuOSA0NjcuNiAxMjggNTEyIDEyOHM4My42IDI4LjkgOTYuOCA3MS4ybDI5LjcgOTUuMmM1LjMgMTYuOS00LjEgMzQuOC0yMSA0MC4xLTMuMiAxLTYuNCAxLjUtOS41IDEuNWw5IDI2LjljMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0xNy44IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTE2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpcIl1cbn07XG52YXIgZmFBbmNob3JMb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuY2hvci1sb2NrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGFkXCIsIFwiTTMyMC41IDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNsMTYuMi0xNC4yYzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAyOC4zIDAgNTUuNC01LjcgODAtMTUuOWwwLS4yIDAtNzIuMmMtMTQuNCA5LjYtMzAuNiAxNi43LTQ4IDIwLjdsMC0yNTcuOWMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTI3MiAzMDQuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDE2LjUgNDAwbDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTIwLjktMTMuNC0zOC43LTMyLTQ1LjNsMC01MC42YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgNTAuNmMtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zelwiXVxufTtcbnZhciBmYVRpbWVsaW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RpbWVsaW5lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlMjljXCIsIFwiTTE2MCAxNjkuM2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zIDAtNDQuMi0zNS44LTgwLTgwLTgwUzQ4IDUxLjggNDggOTZjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDU0LjctNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMCAwIDU0LjdjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtNTQuNyAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTU0LjdjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgNTQuNy0yNTYgMCAwLTU0Ljd6XCJdXG59O1xudmFyIGZhTGlnaHRidWxiID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpZ2h0YnVsYicsXG4gIGljb246IFszODQsIDUxMiwgWzEyODE2MV0sIFwiZjBlYlwiLCBcIk0yOTIuOSAzODRjNy4zLTIyLjMgMjEuOS00Mi41IDM4LjQtNTkuOSAzMi43LTM0LjQgNTIuNy04MC45IDUyLjctMTMyLjEgMC0xMDYtODYtMTkyLTE5Mi0xOTJTMCA4NiAwIDE5MmMwIDUxLjIgMjAgOTcuNyA1Mi43IDEzMi4xIDE2LjUgMTcuNCAzMS4yIDM3LjYgMzguNCA1OS45bDIwMS43IDB6TTI4OCA0MzJsLTE5MiAwIDAgMTZjMCA0NC4yIDM1LjggODAgODAgODBsMzIgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTE2ek0xODQgMTEyYy0zOS44IDAtNzIgMzIuMi03MiA3MiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHpcIl1cbn07XG52YXIgZmFDaXJjbGVBcnJvd1JpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1hcnJvdy1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYXJyb3ctY2lyY2xlLXJpZ2h0XCJdLCBcImYwYTlcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTQxLTE1OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzOS0zOS0xNTAuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE1MC4xIDAtMzktMzljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4MCA4MGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODAgODB6XCJdXG59O1xudmFyIGZhQXJyb3dDaXJjbGVSaWdodCA9IGZhQ2lyY2xlQXJyb3dSaWdodDtcbnZhciBmYU1hcnNBbmRWZW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLWFuZC12ZW51cycsXG4gIGljb246IFs1MTIsIDUxMiwgWzk4OTNdLCBcImYyMjRcIiwgXCJNMzY4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNC43LTYzIDYzYzE5LjUgMjguNCAzMSA2Mi43IDMxIDk5LjggMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0IDE3My4xbDAgMzQuOSAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zNC45Yy04MS45LTE1LTE0NC04Ni44LTE0NC0xNzMuMSAwLTk3LjIgNzguOC0xNzYgMTc2LTE3NiAzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDYzLTYzLTM0LjcgMHpNMzUyIDIwOGExMTIgMTEyIDAgMSAwIC0yMjQgMCAxMTIgMTEyIDAgMSAwIDIyNCAwelwiXVxufTtcbnZhciBmYU5ldHdvcmtXaXJlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICduZXR3b3JrLXdpcmVkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNmZmXCIsIFwiTTI0OCA4OGw4MCAwIDAgNDgtODAgMCAwLTQ4em0tOC01NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwIDAgMzItMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMCAwIDMyLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwIDAtMzIgMTkyIDAgMCAzMi0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMCAwLTMyIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwIDAtMzIgMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC05NiAwek00NDggMzc2bDggMCAwIDQ4LTgwIDAgMC00OCA3MiAwem0tMjU2IDBsOCAwIDAgNDgtODAgMCAwLTQ4IDcyIDB6XCJdXG59O1xudmFyIGZhQnVpbGRpbmdTaGllbGQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmctc2hpZWxkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGQ4XCIsIFwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjAxLjIgMGMtMTIuNS0xNC43LTIzLjItMzAuOC0zMS44LTQ4bC04OS41IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwIDAtMjYuN2MwLTE4LjEgNi4xLTM1LjIgMTYuNi00OC44LS40LTEuNC0uNi0yLjktLjYtNC41bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMSA4Ni43LTI4LjljMy4xLTEgNi4yLTEuOCA5LjMtMi41TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNDQ1LjMgNDg4LjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAwelwiXVxufTtcbnZhciBmYUNvZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29kZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjEyMVwiLCBcIk0zNjAuOCAxLjJjLTE3LTQuOS0zNC43IDUtMzkuNiAyMmwtMTI4IDQ0OGMtNC45IDE3IDUgMzQuNyAyMiAzOS42czM0LjctNSAzOS42LTIybDEyOC00NDhjNC45LTE3LTUtMzQuNy0yMi0zOS42em02NC42IDEzNi4xYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w3My40IDczLjQtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDB6bS0yNzQuNyAwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMTUwLjYgMTgyLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjN6XCJdXG59O1xudmFyIGZhRmVhdGhlclBvaW50ZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmVhdGhlci1wb2ludGVkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJmZWF0aGVyLWFsdFwiXSwgXCJmNTZiXCIsIFwiTTQ3NS4zIC4xYzkuOS0uOCAxOS42IDMgMjYuNiAxMHMxMC44IDE2LjcgMTAgMjYuNmMtNCA0OS4zLTE3LjQgMTI2LjItNDYuMyAxOTkuNy0xLjggNC41LTUuNSA3LjktMTAuMiA5LjNMMzc0LjUgMjcwYy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjJsMzguNiAwYzEyIDAgMTkuNyAxMi44IDEzLjUgMjMuMS00IDYuNy04LjMgMTMuMi0xMi43IDE5LjYtMiAyLjktNSA1LTguNCA2LjFMMzEwLjUgMzY2Yy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjJsMTYgMGMxNC42IDAgMjEgMTcuNCA4LjggMjUuNC02OCA0NS0xMzcuNyA0My4zLTE4Mi40IDMxLjMtMTIuNy0zLjQtMjQtOS45LTM0LjQtMTcuOUw0OCA0OTZjLTguOCA4LjgtMjMuMiA4LjgtMzIgMHMtOC44LTIzLjIgMC0zMmw4MC04MCAuNSAuNWMuNy0xLjMgMS42LTIuNSAyLjctMy42TDI1NiAyMjRjOC44LTguOCA4LjgtMjMuMiAwLTMycy0yMy4yLTguOC0zMiAwTDg5LjcgMzI2LjJjLTguOSA4LjktMjQgNC40LTI1LTguMi00LjMtNTMuMiA5LjMtMTIzLjEgNzIuNi0xODYuNCA5MS4xLTkxLjEgMjU0LjItMTI0LjcgMzM3LjktMTMxLjV6XCJdXG59O1xudmFyIGZhRmVhdGhlckFsdCA9IGZhRmVhdGhlclBvaW50ZWQ7XG52YXIgZmFGaWxlQ2lyY2xlUXVlc3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1jaXJjbGUtcXVlc3Rpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0ZWZcIiwgXCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTEwMGMtMTEuNiAwLTIxLjMgOC4yLTIzLjUgMTkuMi0xLjggOC43LTEwLjIgMTQuMy0xOC45IDEyLjVzLTE0LjMtMTAuMi0xMi41LTE4LjljNS4yLTI1LjYgMjcuOC00NC44IDU0LjktNDQuOCAzMC45IDAgNTYgMjUuMSA1NiA1NiAwIDE5LjgtMTEuNyAzNy44LTI5LjggNDUuOWwtMTAuNCA0LjZjLTEuMiA3LjctNy44IDEzLjUtMTUuOCAxMy41LTguOCAwLTE2LTcuMi0xNi0xNiAwLTExLjIgNi42LTIxLjMgMTYuOC0yNS45bDEyLjQtNS41YzYuNi0yLjkgMTAuOC05LjQgMTAuOC0xNi42IDAtMTMuMy0xMC43LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYVNpZ25hdHVyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaWduYXR1cmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1YjdcIiwgXCJNMTkyIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNy44YzAgMjcuNy0yLjQgNTUuMy03LjEgODIuNWwtODQuNCAyNS4zYy00MC42IDEyLjItNjguNCA0OS42LTY4LjQgOTJsMCAzMi40LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIuNSAwYzQuMiAzNiAzNC44IDY0IDcyIDY0IDI2IDAgNTAtMTMuOSA2Mi45LTM2LjVsMTMuOS0yNC4zYzI2LjgtNDcgNDYuNS05Ny43IDU4LjQtMTUwLjVsOTQuNC0yOC4zLTEyLjUgMzcuNWMtMy4zIDkuOC0xLjYgMjAuNSA0LjQgMjguOFM0MDUuNyAzMjAgNDE2IDMyMGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODMuNiAwIDE4LTUzLjljMy44LTExLjMgLjktMjMuOC03LjQtMzIuNHMtMjAuNy0xMS44LTMyLjItOC40TDMxNi40IDE5OC4xYzIuNC0yMC43IDMuNi00MS40IDMuNi02Mi4zbDAtNy44YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyem0tOS4yIDE3N2w0OS0xNC43Yy0xMC40IDMzLjgtMjQuNSA2Ni40LTQyLjEgOTcuMmwtMTMuOSAyNC4zYy0xLjUgMi42LTQuMyA0LjMtNy40IDQuMy00LjcgMC04LjUtMy44LTguNS04LjVsMC03MS45YzAtMTQuMSA5LjMtMjYuNiAyMi44LTMwLjd6TTYxNiA0MTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI5Mi45IDBjLTYuNSAxNi4zLTEzLjcgMzIuMy0yMS42IDQ4TDYxNiA0MTZ6XCJdXG59O1xudmFyIGZhRWFydGhBbWVyaWNhcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlYXJ0aC1hbWVyaWNhcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzc1OCwgXCJlYXJ0aFwiLCBcImVhcnRoLWFtZXJpY2FcIiwgXCJnbG9iZS1hbWVyaWNhc1wiXSwgXCJmNTdkXCIsIFwiTTU1LjcgMTk5LjdsMzAuOSAzMC45YzYgNiAxNC4xIDkuNCAyMi42IDkuNGwyMS41IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMjkuMyAyOS4zYzYgNiA5LjQgMTQuMSA5LjQgMjIuNmwwIDM3LjVjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTMuMyAxMy4zYzYgNiA5LjQgMTQuMSA5LjQgMjIuNmwwIDE4LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIuN2MwLTguNSAzLjQtMTYuNiA5LjQtMjIuNmw0NS4zLTQ1LjNjNi02IDkuNC0xNC4xIDkuNC0yMi42bDAtMzQuN2MwLTE3LjctMTQuMy0zMi0zMi0zMmwtODIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTYtMTZjLTQuMi00LjItNi42LTEwLTYuNi0xNiAwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmwzNC43IDBjMTIuNSAwIDIyLjYtMTAuMSAyMi42LTIyLjYgMC02LTIuNC0xMS44LTYuNi0xNmwtMTkuNy0xOS43QzI0MiAxMzAgMjQwIDEyNS4xIDI0MCAxMjBzMi0xMCA1LjctMTMuN2wxNy4zLTE3LjNjNS44LTUuOCA5LjEtMTMuNyA5LjEtMjEuOSAwLTcuMi0yLjQtMTMuNy02LjQtMTguOS0zLjItLjEtNi40LS4yLTkuNi0uMi05NS40IDAtMTc1LjcgNjQuMi0yMDAuMyAxNTEuN3pNNDY0IDI1NmMwLTM0LjYtOC40LTY3LjItMjMuNC05NS44LTYuNCAuOS0xMi43IDMuOS0xNy45IDkuMWwtMTMuNCAxMy40Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNC43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI0LjEgMGMyLjUgMCA1LS4zIDcuMy0uOCAuNC01IC41LTEwLjEgLjUtMTUuMnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpcIl1cbn07XG52YXIgZmFFYXJ0aCA9IGZhRWFydGhBbWVyaWNhcztcbnZhciBmYUVhcnRoQW1lcmljYSA9IGZhRWFydGhBbWVyaWNhcztcbnZhciBmYUdsb2JlQW1lcmljYXMgPSBmYUVhcnRoQW1lcmljYXM7XG52YXIgZmFDYXJyb3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2Fycm90JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI5MzY1XSwgXCJmNzg3XCIsIFwiTTQ1My4xLTM2LjdMNDQwLjktMjQuNmMtMzEuMiAzMS4yLTMxLjIgODEuOSAwIDExMy4xIDE1LjYgMTUuNiAzMS4yIDMxLjIgNDYuOSA0Ni45IDMxLjIgMzEuMiA4MS45IDMxLjIgMTEzLjEgMGwxMi4xLTEyLjFjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZMNjAwLjkgODguNmMtMzEuMi0zMS4yLTgxLjktMzEuMi0xMTMuMSAwIDMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMUw0NzUuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNMzMxLjYgOTZjLTQ1LjIgMC04Ny4xIDIwLjQtMTE1IDU0LjNMMjczLjMgMjA3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTkxLjYgMTkzLjIgNjcuMiA0NjYuOGMtNS41IDEyLjEtMi45IDI2LjQgNi41IDM1LjlzMjMuNyAxMiAzNS45IDYuNWwxNDEuNi02NC40LTQzLjgtNDMuOGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDU2LjUgNTYuNSA5NS4zLTQzLjNjNTMuMS0yNC4xIDg3LjItNzcuMSA4Ny4yLTEzNS41IDAtODIuMi02Ni42LTE0OC44LTE0OC44LTE0OC44elwiXVxufTtcbnZhciBmYVRlbXBlcmF0dXJlRnVsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW1wZXJhdHVyZS1mdWxsJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJ0ZW1wZXJhdHVyZS00XCIsIFwidGhlcm1vbWV0ZXItNFwiLCBcInRoZXJtb21ldGVyLWZ1bGxcIl0sIFwiZjJjN1wiLCBcIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNMMTM2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyMTIuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6XCJdXG59O1xudmFyIGZhVGVtcGVyYXR1cmU0ID0gZmFUZW1wZXJhdHVyZUZ1bGw7XG52YXIgZmFUaGVybW9tZXRlcjQgPSBmYVRlbXBlcmF0dXJlRnVsbDtcbnZhciBmYVRoZXJtb21ldGVyRnVsbCA9IGZhVGVtcGVyYXR1cmVGdWxsO1xudmFyIGZhVGFibGVDZWxsc1Jvd0xvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGUtY2VsbHMtcm93LWxvY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU2N2FcIiwgXCJNMjU2IDI4OGwwLTY0IDE1My4zIDBjMTcuMS00Mi4yIDU2LTczLjIgMTAyLjctNzlsMC00OWMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2bDAgMzIwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0MS4zIDBjLS45LTUuMi0xLjMtMTAuNi0xLjMtMTYuMWwwLTQ3LjktMTEyIDAgMC02NCAxMTMuMyAwYzMuNy0yMiAxNC44LTQxLjQgMzAuNy01NS42bDAtOC40LTE0NCAwem0wLTE5MmwxOTIgMCAwIDY0LTE5MiAwIDAtNjR6TTU2MCAyNzIuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDE2IDM2OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3pcIl1cbn07XG52YXIgZmFCb2x0TGlnaHRuaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvbHQtbGlnaHRuaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlMGI3XCIsIFwiTTAgMjU2TDI4LjUgMjhjMi0xNiAxNS42LTI4IDMxLjgtMjhMMjI4LjkgMGMxNSAwIDI3LjEgMTIuMSAyNy4xIDI3LjEgMCAzLjItLjYgNi41LTEuNyA5LjVMMjA4IDE2MCAzNDcuMyAxNjBjMjAuMiAwIDM2LjcgMTYuNCAzNi43IDM2LjcgMCA3LjQtMi4yIDE0LjYtNi40IDIwLjdsLTE5Mi4yIDI4MWMtNS45IDguNi0xNS42IDEzLjctMjUuOSAxMy43bC0yLjkgMGMtMTUuNyAwLTI4LjUtMTIuOC0yOC41LTI4LjUgMC0yLjMgLjMtNC42IC45LTYuOUwxNzYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xudmFyIGZhQ2xvdWRTaG93ZXJzV2F0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtc2hvd2Vycy13YXRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRlNFwiLCBcIk0yNzkuMiA1NS43QzI2My45IDIyLjggMjMwLjYgMCAxOTIgMCAxMzkgMCA5NiA0MyA5NiA5NiA2MC43IDk2IDMyIDEyNC43IDMyIDE2MHMyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0bC0xLjYgMGMtNy40LTM2LjUtMzkuNy02NC03OC40LTY0LTIyLjIgMC00Mi4zIDkuMS01Ni44IDIzLjd6TTQxMC42IDQ3Ni4xYzIwLjcgMTUuNiA0NiAzMC43IDc0LjIgMzQuNSAxMy4xIDEuOCAyNS4yLTcuNSAyNy0yMC42cy03LjUtMjUuMi0yMC42LTI3Yy0xNS45LTIuMS0zMy4yLTExLjMtNTEuNy0yNS4yLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTE4LjUgMTMuOS0zNS44IDIzLjEtNTEuNyAyNS4yLTEzLjEgMS44LTIyLjQgMTMuOC0yMC42IDI3czEzLjggMjIuNCAyNyAyMC42YzI4LjItMy44IDUzLjYtMTguOSA3NC4yLTM0LjUgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHpNMTAwLjEgMzAzLjZjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40cy0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjMgNjRDMjkgMzY1IDM1LjggMzc4LjYgNDguNCAzODIuOHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuMy02NHptMTIwIDBjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40cy0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjMgNjRjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuMy02NHptMTEyIDBjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40cy0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjMgNjRjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuMy02NHptMTIwIDBjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40cy0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjMgNjRjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuMy02NHpcIl1cbn07XG52YXIgZmFBcnJvd1VwTG9uZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC1sb25nJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJsb25nLWFycm93LXVwXCJdLCBcImYxNzZcIiwgXCJNMTgyLjYtMjIuNmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTI4IDc3LjMgMTI4IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDM0LjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjh6XCJdXG59O1xudmFyIGZhTG9uZ0Fycm93VXAgPSBmYUFycm93VXBMb25nO1xudmFyIGZhQWRkcmVzc0NhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYWRkcmVzcy1jYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbNjIxNDAsIFwiY29udGFjdC1jYXJkXCIsIFwidmNhcmRcIl0sIFwiZjJiYlwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04MCAyNTZsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZMODAgMzg0Yy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI0MC00OGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgOTZsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYUNvbnRhY3RDYXJkID0gZmFBZGRyZXNzQ2FyZDtcbnZhciBmYVZjYXJkID0gZmFBZGRyZXNzQ2FyZDtcbnZhciBmYUFuZ2xlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGUtcmlnaHQnLFxuICBpY29uOiBbMjU2LCA1MTIsIFs4MjUwXSwgXCJmMTA1XCIsIFwiTTI0Ny4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNzkuMiAyNTYgNDEuOSAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwelwiXVxufTtcbnZhciBmYUZhY2VNZWggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1tZWgnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MjgsIFwibWVoXCJdLCBcImYxMWFcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTc2IDMyMGwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhTWVoID0gZmFGYWNlTWVoO1xudmFyIGZhQXJyb3dVcEZyb21Hcm91bmRXYXRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC1mcm9tLWdyb3VuZC13YXRlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRiNVwiLCBcIk0zMDMgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw4OCA4OGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00NyAwIDI3OC4xYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjc4LjEtNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMzAzIDd6TTI0MCAxOTJsMCAxNjMuMWMtMTAuNi0yLjItMjEuMy0zLjItMzItMy4xLTMyLjUgLjItNjQuOSAxMC43LTkyLjMgMzEuNC04LjggNi42LTE1LjkgMTAuOS0yMS43IDEzLjVsLS44IC40Yy0zLjcgMS43LTYuNCAyLjktOS44IC4zLTYtNC41LTEyLjYtOC0xOS4zLTEwLjRMNjQgMjQwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDEyOCAwem0zMzYgNDhsMCAxNTUuMmMtMS4xIC44LTIuMiAxLjUtMy4zIDIuNC00LjEgMy4xLTguMyAuOC0xMi42LTEuNS0uNi0uMy0xLjItLjYtMS44LTEtNS4yLTIuNy0xMS4xLTYuNi0xOC0xMS43LTI4LjEtMjEuMS02MS4zLTMxLjYtOTQuNC0zMS40LTE1LjUgLjEtMzEgMi41LTQ2IDcuM2wwLTE2Ny4zIDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek00MDMuNCA0NzYuMUMzNzkuMSA0OTQuMyAzNTEuMSA1MTIgMzIwIDUxMnMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6XCJdXG59O1xudmFyIGZhTWFwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUwNiwgNjIwNzJdLCBcImYyNzlcIiwgXCJNNTEyIDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDM0OS41IDc3LjUgMTcwLjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzYuOCA4OC44IDAgOTkuOSAwIDExMkwwIDQ2NGMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTc5LjQgNTkuOGM4LjEgMi43IDE2LjggMi4xIDI0LjQtMS43bDEyOC02NGMxMC44LTUuNCAxNy43LTE2LjUgMTcuNy0yOC42bDAtMzUyek0xOTIgMzc2LjlsMC0yODQuNSAxMjggNDIuNyAwIDI4NC41LTEyOC00Mi43elwiXVxufTtcbnZhciBmYVVzZXJQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItcGx1cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjIzNFwiLCBcIk0xMzYgMTI4YTEyMCAxMjAgMCAxIDEgMjQwIDAgMTIwIDEyMCAwIDEgMSAtMjQwIDB6TTQ4IDQ4Mi4zQzQ4IDM4My44IDEyNy44IDMwNCAyMjYuMyAzMDRsNTkuNCAwYzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDc3LjcgNTEyQzYxLjMgNTEyIDQ4IDQ5OC43IDQ4IDQ4Mi4zek01NDQgOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpcIl1cbn07XG52YXIgZmFWZW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2ZW51cycsXG4gIGljb246IFszODQsIDUxMiwgWzk3OTJdLCBcImYyMjFcIiwgXCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTIyMy45IDM0OS4xQzMwNS45IDMzNC4xIDM2OCAyNjIuMyAzNjggMTc2IDM2OCA3OC44IDI4OS4yIDAgMTkyIDBTMTYgNzguOCAxNiAxNzZjMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0LjEgMTczLjEtLjEgMS0uMSAxLjktLjEgMi45bDAgNjQtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC02NGMwLTEgMC0xLjktLjEtMi45elwiXVxufTtcbnZhciBmYURpYWdyYW1TdWNjZXNzb3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGlhZ3JhbS1zdWNjZXNzb3InLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU0N2FcIiwgXCJNMjg5LjIgMTM3LjljMi41LTYgOC4zLTkuOSAxNC44LTkuOWw0MCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk4IDBjMS4zIDUuMSAyIDEwLjUgMiAxNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC05NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjQgNDAgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtNjQgNjRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC02NC02NGMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHpNMzg0IDQ4MEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NHpNMTYwIDE2MGwwLTY0LTk2IDAgMCA2NCA5NiAwelwiXVxufTtcbnZhciBmYUhlYWRTaWRlQ291Z2hTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFkLXNpZGUtY291Z2gtc2xhc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUwNjJcIiwgXCJNNTM1LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDQxIDUzNy4xYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDI1LTI1IDAtNDQ3LjJjMC0xNSAxMC41LTI4LjMgMjUuNC0yOS44IDcuNC0uNyAxNC45LTEuMSAyMi42LTEuMSAxMTIuNyAwIDIwNiA4My4zIDIyMS43IDE5MS43IC40IDMgMS43IDUuOSAzLjYgOC4zbDIuMiAyLjYgMjI3LjUtMjI3LjV6TTEzMy44IDUxMkwyODggMzU3LjggMjg4IDQxNmMwIDUzLTQzIDk2LTk2IDk2bC01OC4yIDB6TTE3NiAyMjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMzYgNDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tODggNzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptLTY0IDQ4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyOCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTI0IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptLTg4LTI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xudmFyIGZhRGlhZ3JhbVByb2plY3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGlhZ3JhbS1wcm9qZWN0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJwcm9qZWN0LWRpYWdyYW1cIl0sIFwiZjU0MlwiLCBcIk0wIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNiAxMjggMCAwLTE2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNi0xMjggMCAwIDE2YzAgNy4zLTEuNyAxNC4zLTQuNiAyMC41bDY4LjYgOTEuNSA4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC03LjMgMS43LTE0LjMgNC42LTIwLjVMMTI4IDIyNCA0OCAyMjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODB6XCJdXG59O1xudmFyIGZhUHJvamVjdERpYWdyYW0gPSBmYURpYWdyYW1Qcm9qZWN0O1xudmFyIGZhVGVybWluYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVybWluYWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMjBcIiwgXCJNOS40IDExOC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE2MCAxNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDE0Ni43IDI1NiA5LjQgMTE4LjZ6TTIyNCAzODRsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwiXVxufTtcbnZhciBmYUhvdXNlRmlyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1maXJlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTBjXCIsIFwiTTQ0OCAxOTJjMTQuMSAuNCAyMy44IDExLjQgMzIuNyAyMS43IDIgMi4zIDQgNC42IDYgNi43bDE5IDE5LjkgMTIuMi0xMy44YzUuNC02LjEgMTMuMy04LjkgMjAuOS04LjkgNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjggMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42IDE1LjEgMjcuMiAyNi4yIDU4LjIgMjYuMiA4OC4yIDAgODguNy03MS4zIDE1OS44LTE2MCAxNTkuOC04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44IDAtMzcuMyAxNi03My40IDM2LjgtMTA0LjUgMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4xIDUuNy01LjIgMTMuMS03LjcgMjAuMy03LjV6TTI2OC42IDYuNWMxMi4yLTkuMyAyOS43LTguNyA0MS4yIDJsMTQ3LjUgMTM3Yy0xOS4yLTQuMy00MCAuNS01NS41IDE0LjQtMzYuNCAzMi42LTY3LjcgNjkuOC05MC4zIDEwNi40LTEwLjMgMTYuNi0xOS43IDM0LjktMjYuOCA1My43TDI3MiAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgNjQuNiAwYzcuMyAxNy4yIDE2LjggMzMuNCAyOC4yIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNDg5LjMgMzQzLjdjLTUuNC00LjctMTMuMS00LjctMTguNSAwLTE3LjcgMTUuNC01NC43IDUxLjktNTQuNyA4OC40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRjMC0zNi41LTM3LTczLTU0LjctODguNHpcIl1cbn07XG52YXIgZmFNYXNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hc2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY2ZmFcIiwgXCJNMjg4IDY0QzY0IDY0IDAgMTYwIDAgMjcyUzgwIDQ0OCAxNzYgNDQ4bDguNCAwYzI0LjIgMCA0Ni40LTEzLjcgNTcuMi0zNS40bDIzLjItNDYuM2M0LjQtOC44IDEzLjMtMTQuMyAyMy4yLTE0LjNzMTguOCA1LjUgMjMuMiAxNC4zbDIzLjIgNDYuM2MxMC44IDIxLjcgMzMgMzUuNCA1Ny4yIDM1LjRsOC40IDBjOTYgMCAxNzYtNjQgMTc2LTE3NlM1MTIgNjQgMjg4IDY0ek05NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem0zMjAtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6XCJdXG59O1xudmFyIGZhSHVycmljYW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2h1cnJpY2FuZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjc1MVwiLCBcIk0wIDIwOEMwIDEwNC40IDc1LjcgMTguNSAxNzQuOSAyLjYgMTg0IDEuMiAxOTIgOC42IDE5MiAxNy45bDAgNjMuM2MwIDguNCA2LjUgMTUuMyAxNC43IDE2LjUgMTAwLjMgMTQuOSAxNzcuMyAxMDEuMyAxNzcuMyAyMDUuNyAwIDEwMy42LTc1LjcgMTg5LjUtMTc0LjkgMjA1LjQtOS4yIDEuNS0xNy4xLTUuOS0xNy4xLTE1LjJsMC02My4zQzE5MiA0MjEuOSAxODUuNSA0MTUgMTc3LjMgNDEzLjcgNzcgMzk4LjkgMCAzMTIuNCAwIDIwOHptMjg4IDQ4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptLTk2LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFFYXJ0aEFmcmljYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlYXJ0aC1hZnJpY2EnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc3NTcsIFwiZ2xvYmUtYWZyaWNhXCJdLCBcImY1N2NcIiwgXCJNNDQ3LjYgMTc1Yy0zMS42LTc0LjYtMTA1LjUtMTI3LTE5MS42LTEyNy0yMi4xIDAtNDMuNCAzLjUtNjMuNCA5LjgtLjQgMi0uNiA0LjEtLjYgNi4ybDAgNzMuNGMwIDEyLjUgMTAuMSAyMi42IDIyLjYgMjIuNiA2IDAgMTEuOC0yLjQgMTYtNi42bDE2LTE2YzYtNiAxNC4xLTkuNCAyMi42LTkuNGw1LjUgMGMyOC41IDAgNDIuOCAzNC41IDIyLjYgNTQuNi02IDYtMTQuMSA5LjQtMjIuNiA5LjRsLTYxLjUgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRsLTIxLjMgMjEuM2MtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgNDIuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMi43IDBjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRsMjkuMy0yOS4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTE4LjdjMC04LjggNy4yLTE2IDE2LTE2czE2LTcuMiAxNi0xNmwwLTM0LjdjMC04LjUtMy40LTE2LjYtOS40LTIyLjZsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsNDUgMGMxMi40IDAgMjIuNy03LjEgMjgtMTd6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6XCJdXG59O1xudmFyIGZhR2xvYmVBZnJpY2EgPSBmYUVhcnRoQWZyaWNhO1xudmFyIGZhVGh1bWJ0YWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RodW1idGFjaycsXG4gIGljb246IFszODQsIDUxMiwgWzEyODIwNCwgMTI4MzkyLCBcInRodW1iLXRhY2tcIl0sIFwiZjA4ZFwiLCBcIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOS41IDAgMTAuMyAxMzQuMWMzNy4xIDIxLjIgNjUuOCA1Ni40IDc4LjIgOTkuN2wzLjggMTMuNGMyLjggOS43IC44IDIwLTUuMiAyOC4xUzM2MiAzNTIgMzUyIDM1MkwzMiAzNTJjLTEwIDAtMTkuNS00LjctMjUuNS0xMi43cy04LTE4LjQtNS4yLTI4LjFMNSAyOTcuOGMxMi40LTQzLjMgNDEtNzguNSA3OC4yLTk5LjdMOTMuNSA2NCA2NCA2NEM0Ni4zIDY0IDMyIDQ5LjcgMzIgMzJ6TTE2MCA0MDBsNjQgMCAwIDExMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTExMnpcIl1cbn07XG52YXIgZmFUaHVtYlRhY2sgPSBmYVRodW1idGFjaztcbnZhciBmYUhhbmRQb2ludERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1wb2ludC1kb3duJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMGE3XCIsIFwiTTMyIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjA4LTY0IDAgMCAyMDh6TTIyNCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjR6bS02NCA2NGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE2MC05NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NHptLTk2LTg4bDAgLjZjOS40LTUuNCAyMC4zLTguNiAzMi04LjYgMTMuMiAwIDI1LjQgNCAzNS42IDEwLjggOC43LTI0LjkgMzIuNS00Mi44IDYwLjQtNDIuOCAxMS43IDAgMjIuNiAzLjEgMzIgOC42bDAtOC42QzM4NCA3MS42IDMxMi40IDAgMjI0IDBMMTYyLjMgMEMxMTkuOCAwIDc5LjEgMTYuOSA0OS4xIDQ2LjlMMzcuNSA1OC41QzEzLjUgODIuNSAwIDExNS4xIDAgMTQ5bDAgMjdjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODggMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGwtNTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcyelwiXVxufTtcbnZhciBmYUZhY2VNZWhCbGFuayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLW1laC1ibGFuaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU2NiwgXCJtZWgtYmxhbmtcIl0sIFwiZjVhNFwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yMDgtNDhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTI4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFNZWhCbGFuayA9IGZhRmFjZU1laEJsYW5rO1xudmFyIGZhVGVtcGVyYXR1cmVFbXB0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW1wZXJhdHVyZS1lbXB0eScsXG4gIGljb246IFszMjAsIDUxMiwgW1widGVtcGVyYXR1cmUtMFwiLCBcInRoZXJtb21ldGVyLTBcIiwgXCJ0aGVybW9tZXRlci1lbXB0eVwiXSwgXCJmMmNiXCIsIFwiTTY0IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMxNiA0NDcuNSAxNiAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMNjQgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6XCJdXG59O1xudmFyIGZhVGVtcGVyYXR1cmUwID0gZmFUZW1wZXJhdHVyZUVtcHR5O1xudmFyIGZhVGhlcm1vbWV0ZXIwID0gZmFUZW1wZXJhdHVyZUVtcHR5O1xudmFyIGZhVGhlcm1vbWV0ZXJFbXB0eSA9IGZhVGVtcGVyYXR1cmVFbXB0eTtcbnZhciBmYUJvcmRlck5vbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9yZGVyLW5vbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY4NTBcIiwgXCJNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpNMTYwIDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMjg4IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6TTE2MCA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyek0yODggMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek00MTYgNDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMC0zODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zMiAzMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTQxNiAzNTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zMiAxNjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wIDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQxNiAxNjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0elwiXVxufTtcbnZhciBmYUhpZ2hsaWdodGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hpZ2hsaWdodGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTkxXCIsIFwiTTMxNSAzMTVMNDczLjQgOTkuOSA0NDQuMSA3MC42IDIyOSAyMjkgMzE1IDMxNXptLTE4NyA1bDAgMCAwLTcxLjdjMC0xNS4zIDcuMi0yOS42IDE5LjUtMzguNkw0MjAuNiA4LjRDNDI4IDIuOSA0MzcgMCA0NDYuMiAwIDQ1Ny42IDAgNDY4LjUgNC41IDQ3Ni42IDEyLjZsNTQuOCA1NC44YzguMSA4LjEgMTIuNiAxOSAxMi42IDMwLjUgMCA5LjItMi45IDE4LjItOC40IDI1LjZMMzM0LjQgMzk2LjVjLTkgMTIuMy0yMy40IDE5LjUtMzguNiAxOS41bC03MS43IDAtMjUuNCAyNS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNTAuNy01MC43Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wxMjggMzIwek03IDQ2Ni4zbDUxLjctNTEuNyA3MC42IDcwLjYtMTkuNyAxOS43Yy00LjUgNC41LTEwLjYgNy0xNyA3TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjdjMC02LjQgMi41LTEyLjUgNy0xN3pcIl1cbn07XG52YXIgZmFNb25leUJpbGxXYXZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGwtd2F2ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjUzYVwiLCBcIk0wIDQxOS42TDAgMTA5LjVjMC0yMy4yIDI0LjEtMzguNiA0Ni4zLTMyIDg3LjcgMjYuMiAxNDkuNyA1LjUgMjEyLjEtMTUuMyA2NC41LTIxLjUgMTI5LjQtNDMuMSAyMjMuMy0xMy4xIDE4LjUgNS45IDMwLjMgMjMuOCAzMC4zIDQzLjNsMCAzMTAuMWMwIDIzLjItMjQuMSAzOC42LTQ2LjIgMzItODcuNy0yNi4yLTE0OS44LTUuNS0yMTIuMSAxNS4zLTY0LjUgMjEuNS0xMjkuNCA0My4xLTIyMy4zIDEzLjEtMTguNS01LjktMzAuMy0yMy44LTMwLjMtNDMuM3pNMzM2IDI1NmMwLTUzLTM1LjgtOTYtODAtOTZzLTgwIDQzLTgwIDk2IDM1LjggOTYgODAgOTYgODAtNDMgODAtOTZ6TTEyMCA0MTMuNmM0LjQgMCA3LjktMy44IDcuMi04LjEtNC42LTI3LjgtMjctNDkuNS01NS4yLTUzLTQuNC0uNS04IDMuMS04IDcuNWwwIDM5LjljMCAzLjYgMi40IDYuOCA2IDcuNyAxNy45IDQuMiAzNC4zIDYuMSA1MCA2LjF6bTMxOC41LTUxLjFjNSAuOCA5LjUtMyA5LjUtOGwwLTQyLjZjMC00LjQtMy42LTguMS04LTcuNS0yNS4yIDMuMS00NS45IDIwLjktNTMuMiA0NC42LTEuNCA0LjcgMi4zIDkuMSA3LjIgOS4yIDE0LjIgLjQgMjkgMS43IDQ0LjQgNC4zek00NDggMTUybDAtMzkuOWMwLTMuNi0yLjUtNi44LTYtNy43LTE3LjktNC4yLTM0LjMtNi4xLTUwLTYuMS00LjQgMC03LjkgMy44LTcuMiA4LjEgNC42IDI3LjggMjcgNDkuNSA1NS4yIDUzIDQuNCAuNSA4LTMuMSA4LTcuNXpNMTI1LjIgMTYyLjljMS40LTQuNy0yLjMtOS4xLTcuMi05LjItMTQuMi0uNC0yOS0xLjctNDQuNC00LjMtNS0uOC05LjUgMy05LjUgOEw2NCAyMDBjMCA0LjQgMy42IDguMSA4IDcuNSAyNS4yLTMuMSA0NS45LTIwLjkgNTMuMi00NC42elwiXVxufTtcbnZhciBmYVRvaWxldFBhcGVyU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9pbGV0LXBhcGVyLXNsYXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlMDcyXCIsIFwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk0LjUtOTQuNWM0MC4yLTIzIDY5LjUtOTYuOSA2OS41LTE4NC42IDAtMTA2LTQzLTE5Mi05Ni0xOTJzLTk2IDg2LTk2IDE5MmMwIDI0LjEgMi4yIDQ3LjIgNi4zIDY4LjRMMzA0IDIzOC4yIDMwNCAyMjRjMC01OC45IDExLjgtMTE0LjUgMzMuMi0xNTcuMiA1LjktMTEuNyAxMy4xLTIzLjcgMjEuOS0zNC44TDEyOCAzMmMtOC4zIDAtMTYuNCAyLjEtMjQuMSA2LjFsLTYzLTYzek0zMiAyMjRsMCAyNjRjMCAzMC45IDI1LjEgNTYgNTYgNTZsMTYwIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC0xMTQuMi0yNTYtMjU2QzM3LjkgMTQ4LjIgMzIgMTg0LjcgMzIgMjI0em00MTYgNjRjLTE3LjcgMC0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjQgMzIgMjguNyAzMiA2NC0xNC4zIDY0LTMyIDY0elwiXVxufTtcbnZhciBmYUZpbGVTaGllbGQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1zaGllbGQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0ZjBcIiwgXCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMDEuMiAwQzI2MSA0NjkuNCAyNDAgNDE0LjUgMjQwIDM1Ni40bDAtMzEuMWMwLTM0LjQgMjItNjUgNTQuNy03NS45bDExMi0zNy4zYzMuMS0xIDYuMi0xLjggOS4zLTIuNWwwLTM5LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6bTg3LjggMzEyLjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAwelwiXVxufTtcbnZhciBmYVRleHRIZWlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGV4dC1oZWlnaHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwMzRcIiwgXCJNNDAgMzJDMTcuOSAzMiAwIDQ5LjkgMCA3MmwwIDU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiA2NCAwIDAgMzIwLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMjAgNjQgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC01NmMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAzMnpNNDM4LjYgMzYxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05LjQgOS40IDAtMjI5LjUgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NGMtNi02LTE0LjEtOS40LTIyLjYtOS40cy0xNi42IDMuNC0yMi42IDkuNGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOS40LTkuNCAwIDIyOS41LTkuNC05LjR6XCJdXG59O1xudmFyIGZhRmFjZUdyaW5Ub25ndWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXRvbmd1ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUzOSwgXCJncmluLXRvbmd1ZVwiXSwgXCJmNTg5XCIsIFwiTTAgMjU2YzAgMTA0LjQgNjIuNSAxOTQuMiAxNTIuMiAyMzQuMS01LjMtMTMtOC4yLTI3LjItOC4yLTQyLjFsMC02MS43Yy0xNi45LTE2LjUtMzAuMS0zNi43LTM4LjMtNTkuMy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTguMyAyMi42LTIxLjUgNDIuOC0zOC4zIDU5LjNsMCA2MS43YzAgMTQuOS0yLjkgMjkuMS04LjIgNDIuMSA4OS43LTM5LjggMTUyLjItMTI5LjYgMTUyLjItMjM0LjEgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMwIDExNC42IDAgMjU2em0xNzYtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYgMjQwbDAtNDUuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDQ1LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpcIl1cbn07XG52YXIgZmFHcmluVG9uZ3VlID0gZmFGYWNlR3JpblRvbmd1ZTtcbnZhciBmYUZpbGVTaWduYXR1cmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1zaWduYXR1cmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1NzNcIiwgXCJNNjQuMSA2NGMwLTM1LjMgMjguNy02NCA2NC02NEwyNzcuNiAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDQyOS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNsMCA5Ny41LTEzMiAxMzItNDIuMSAwLTE2LjEtNTMuNmMtNC43LTE1LjctMTkuMS0yNi40LTM1LjUtMjYuNC0xMS4zIDAtMjEuOSA1LjEtMjguOSAxMy45TDEzMy4zIDQwOWMtOC4zIDEwLjMtNi42IDI1LjUgMy43IDMzLjdzMjUuNSA2LjYgMzMuNy0zLjhsNDcuMS01OC44IDE1LjIgNTAuN2MzIDEwLjIgMTIuNCAxNy4xIDIzIDE3LjFsMzEuNSAwYy0uOSAzLjEtMS43IDYuMy0yLjMgOS41bC0xMC45IDU0LjUtMTQ2LjIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zODR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0bDkzLjUgMC0xMTcuNS0xMTcuNXptNjAuMiA0MDguNGMyLjUtMTIuNCA4LjYtMjMuOCAxNy41LTMyLjdsMTE4LjktMTE4LjkgODAgODAtMTE4LjkgMTE4LjljLTguOSA4LjktMjAuMyAxNS0zMi43IDE3LjVsLTU5LjYgMTEuOWMtLjkgLjItMS45IC4zLTIuOSAuMy04IDAtMTQuNi02LjUtMTQuNi0xNC42IDAtMSAuMS0xLjkgLjMtMi45bDExLjktNTkuNnptMjY3LjgtMTIzbC0yOC44IDI4LjgtODAtODAgMjguOC0yOC44YzIyLjEtMjIuMSA1Ny45LTIyLjEgODAgMHMyMi4xIDU3LjkgMCA4MHpcIl1cbn07XG52YXIgZmFCdWlsZGluZ1doZWF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLXdoZWF0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGRiXCIsIFwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjQ5LjMgMGMtNi0xNC44LTkuMy0zMS05LjMtNDggMC0xNy43IDcuMi0zMy43IDE4LjgtNDUuMy0xMS45LTE5LjQtMTguOC00Mi4zLTE4LjgtNjYuNyAwLTE3LjcgNy4yLTMzLjcgMTguOC00NS4zLTExLjktMTkuNC0xOC44LTQyLjMtMTguOC02Ni43IDAtMjUuMiAxNC41LTQ2LjkgMzUuNi01Ny40LTIuNC03LjEtMy42LTE0LjctMy42LTIyLjZsMC0zMkMzNjggOTYuNyAzODggNzAuMSA0MTUuOSA2MC4xIDQxMy45IDI2LjYgMzg2IDAgMzUyIDBMOTYgMHpNMjA4IDM1MmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtOTYgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xMjggMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em0zNTIgMGwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC04LjgtNy4yLTE2LTE2LTE2em0xNiAxMjhjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MHptMCAxMTJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MHpNNDk2IDUyOGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2em0tMTYtOTZjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA0NC4yIDM1LjggODAgODAgODBsMTYgMHptMTYtMTI4YzAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA0NC4yIDM1LjggODAgODAgODBsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTUxMiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptOTYgNjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTQ0MCAxMDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyYzAtMTMuMy0xMC43LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYVBsdWdDaXJjbGVNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbHVnLWNpcmNsZS1taW51cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU1ZVwiLCBcIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjI0IDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xMjggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZ6XCJdXG59O1xudmFyIGZhRnV0Ym9sID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Z1dGJvbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzk5MTcsIFwiZnV0Ym9sLWJhbGxcIiwgXCJzb2NjZXItYmFsbFwiXSwgXCJmMWUzXCIsIFwiTTQxNy4zIDM2MC4xbC03MS42LTQuOGMtNS4yLS4zLTEwLjMgMS4xLTE0LjUgNC4ycy03LjIgNy40LTguNCAxMi41bC0xNy42IDY5LjZDMjg5LjUgNDQ1LjggMjczIDQ0OCAyNTYgNDQ4cy0zMy41LTIuMi00OS4yLTYuNEwxODkuMiAzNzJjLTEuMy01LTQuMy05LjQtOC40LTEyLjVzLTkuMy00LjUtMTQuNS00LjJsLTcxLjYgNC44Yy0xNy42LTI3LjItMjguNS01OS4yLTMwLjQtOTMuNkwxMjUgMjI4LjNjNC40LTIuOCA3LjYtNyA5LjItMTEuOXMxLjQtMTAuMi0uNS0xNWwtMjYuNy02Ni42QzEyOCAxMDkuMiAxNTUuMyA4OSAxODYuNyA3Ni45bDU1LjIgNDZjNCAzLjMgOSA1LjEgMTQuMSA1LjFzMTAuMi0xLjggMTQuMS01LjFsNTUuMi00NmMzMS4zIDEyLjEgNTguNyAzMi4zIDc5LjYgNTcuOWwtMjYuNyA2Ni42Yy0xLjkgNC44LTIuMSAxMC4xLS41IDE1czQuOSA5LjEgOS4yIDExLjlsNjAuNyAzOC4yYy0xLjkgMzQuNC0xMi44IDY2LjQtMzAuNCA5My42ek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTQuMS0zMjUuN2MtOC40LTYuMS0xOS44LTYuMS0yOC4yIDBMMTk0IDIyMWMtOC40IDYuMS0xMS45IDE2LjktOC43IDI2LjhsMTguMyA1Ni4zYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNmw1OS4yIDBjMTAuNCAwIDE5LjYtNi43IDIyLjgtMTYuNmwxOC4zLTU2LjNjMy4yLTkuOS0uMy0yMC43LTguNy0yNi44bC00Ny45LTM0Ljh6XCJdXG59O1xudmFyIGZhRnV0Ym9sQmFsbCA9IGZhRnV0Ym9sO1xudmFyIGZhU29jY2VyQmFsbCA9IGZhRnV0Ym9sO1xudmFyIGZhQ2lyY2xlUGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtcGx1cycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wicGx1cy1jaXJjbGVcIl0sIFwiZjA1NVwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjMyIDM0NGwwLTY0LTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNjQgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6XCJdXG59O1xudmFyIGZhUGx1c0NpcmNsZSA9IGZhQ2lyY2xlUGx1cztcbnZhciBmYUJyYXppbGlhblJlYWxTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyYXppbGlhbi1yZWFsLXNpZ24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0NmNcIiwgXCJNNDAwIDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNDguOSAwYy0yNiAwLTQ3LjEgMjEuMS00Ny4xIDQ3LjEgMCAyMi41IDE1LjkgNDEuOCAzNy45IDQ2LjJsMzIuOCA2LjZjNTEuOSAxMC40IDg5LjMgNTYgODkuMyAxMDkgMCA1MC42LTMzLjggOTMuMy04MCAxMDYuN2wwIDIwLjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0LjkgMGMyNiAwIDQ3LjEtMjEuMSA0Ny4xLTQ3LjEgMC0yMi41LTE1LjktNDEuOC0zNy45LTQ2LjJsLTMyLjgtNi42Yy01MS45LTEwLjQtODkuMy01Ni04OS4zLTEwOSAwLTUwLjYgMzMuOC05My4yIDgwLTEwNi43TDM2OCA0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNTQuMy0zMCAxMDEuNS03NC40IDEyNi4xbDQxIDEzNi43YzUuMSAxNi45LTQuNSAzNC44LTIxLjUgMzkuOHMtMzQuOC00LjUtMzkuOC0yMS41TDEyMC4xIDMxOS44Yy0yLjcgLjEtNS40IC4yLTguMSAuMmwtNDggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwIDAgMTYwelwiXVxufTtcbnZhciBmYVN0YXJBbmRDcmVzY2VudCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdGFyLWFuZC1jcmVzY2VudCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzk3NzBdLCBcImY2OTlcIiwgXCJNMCAyNTZjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiAzMyAwIDY0LjYgNi4zIDkzLjYgMTcuNyA3LjQgMi45IDExLjUgMTAuNyA5LjggMTguNHMtOC44IDEzLTE2LjcgMTIuNGMtNC44LS4zLTkuNy0uNS0xNC42LS41LTExNC45IDAtMjA4IDkzLjEtMjA4IDIwOHM5My4xIDIwOCAyMDggMjA4YzQuOSAwIDkuOC0uMiAxNC42LS41IDcuOS0uNSAxNSA0LjcgMTYuNyAxMi40cy0yLjQgMTUuNS05LjggMTguNEMzMjAuNiA1MDUuNyAyODkgNTEyIDI1NiA1MTIgMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZ6TTM3NS40IDEzNy40YzMuNS03LjEgMTMuNy03LjEgMTcuMiAwbDMxLjUgNjMuOGMxLjQgMi44IDQuMSA0LjggNy4yIDUuM2w3MC40IDEwLjJjNy45IDEuMSAxMSAxMC44IDUuMyAxNi40bC01MC45IDQ5LjZjLTIuMyAyLjItMy4zIDUuNC0yLjggOC41bDEyIDcwLjFjMS4zIDcuOC02LjkgMTMuOC0xMy45IDEwLjFsLTYzLTMzLjFjLTIuOC0xLjUtNi4xLTEuNS04LjkgMGwtNjMgMzMuMWMtNyAzLjctMTUuMy0yLjMtMTMuOS0xMC4xbDEyLTcwLjFjLjUtMy4xLS41LTYuMy0yLjgtOC41TDI2MSAyMzMuMWMtNS43LTUuNi0yLjYtMTUuMiA1LjMtMTYuNGw3MC40LTEwLjJjMy4xLS41IDUuOC0yLjQgNy4yLTUuM2wzMS41LTYzLjh6XCJdXG59O1xudmFyIGZhRmFjZVN1cnByaXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2Utc3VycHJpc2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NTgsIFwic3VycHJpc2VcIl0sIFwiZjVjMlwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tNDggODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6XCJdXG59O1xudmFyIGZhU3VycHJpc2UgPSBmYUZhY2VTdXJwcmlzZTtcbnZhciBmYUhvc3BpdGFsVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3NwaXRhbC11c2VyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmODBkXCIsIFwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjcgMCAyNy43IDguOCA1My40IDIzLjggNzQuNC01MS41IDIxLTg3LjggNzEuNi04Ny44IDEzMC43IDAgMSAwIDEuOSAwIDIuOWwtMTc2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDY0ek0yMDggNDAwbDAgNjQgNTMuNCAwYzcuMi0yOS40IDIxLjMtNTYuMSA0MC40LTc4LjMtNi4xLTE5LjUtMjQuMy0zMy43LTQ1LjgtMzMuNy0yNi41IDAtNDggMjEuNS00OCA0OHpNMjQ4IDg4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMi0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwek00MTYgMzA0YTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMzUyIDUxMmMwLTUzIDQzLTk2IDk2LTk2bDk2IDBjNTMgMCA5NiA0MyA5NiA5NiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbnZhciBmYUFycm93RG93blVwTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1kb3duLXVwLWxvY2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0YjBcIiwgXCJNMjYyLjYgNDIyLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMjUuNCAyNS40IDAtMTE0LjctNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyNTYgMCAwLTExNC43LTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsODAtODBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTI1LjQtMjUuNCAwIDk0LjhjLTI1LjMgMjAuMy00Mi44IDUwLjEtNDcgODMuOWwtMTQ1IDAgMCAxMTQuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMTkyIDMybDAgMTQ0LTY0IDAgMC0xNDRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDk2IDMwNC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnpcIl1cbn07XG52YXIgZmFGb2xkZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9sZGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTkzLCAxMjg0NDcsIDYxNzE2LCBcImZvbGRlci1ibGFua1wiXSwgXCJmMDdiXCIsIFwiTTY0IDQ0OGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwyOTguNyA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjQxLjEgNDQuOEMyMzAgMzYuNSAyMTYuNSAzMiAyMDIuNyAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0elwiXVxufTtcbnZhciBmYUZvbGRlckJsYW5rID0gZmFGb2xkZXI7XG52YXIgZmFIb2xseUJlcnJ5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvbGx5LWJlcnJ5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2FhXCIsIFwiTTI1Ni4yIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMjc3IDM4My44YzEgLjEgMi4xIC4yIDMuMiAuMiAzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDIyLjdjMCAxNi40IDE2IDI3LjkgMzEuNiAyMi44bDEyLjgtNC4zYzE4LTYgMzcuMy02LjUgNTUuNi0xLjVsMTkuNCA1LjNjMTcuOSA0LjkgMzQuNC0xMS42IDI5LjUtMjkuNUw0OTUuOSA0NTJjLTUtMTguMy00LjQtMzcuNiAxLjUtNTUuNmw0LjMtMTIuOGM1LjItMTUuNS02LjQtMzEuNi0yMi44LTMxLjYtMzQuNiAwLTYyLjctMjguMS02Mi43LTYyLjdsMC0zMmMwLTE2LjQtMTYtMjcuOS0zMS42LTIyLjhsLTEyLjggNC4zYy0xOCA2LTM3LjMgNi41LTU1LjYgMS41bC0yOS42LTguMWMtMi45LS44LTUuOS0xLTguNy0uNyA0LjIgOS43IDUuOCAyMC44IDMuNyAzMi4zbC02LjMgMzQuOGMtMS41IDguNC0xLjQgMTcgLjUgMjUuM2w1LjMgMjMuOWMyLjggMTIuNyAxLjEgMjUuMi00IDM1Ljl6TTEyNy44IDIzNC41Yy0xNS41LTUuMi0zMS42IDYuNC0zMS42IDIyLjhsMCAzMmMwIDM0LjYtMjguMSA2Mi43LTYyLjcgNjIuNy0xNi40IDAtMjcuOSAxNi0yMi44IDMxLjZMMTUgMzk2LjRjNiAxOCA2LjUgMzcuMyAxLjUgNTUuNmwtNS4zIDE5LjRDNi40IDQ4OS40IDIyLjggNTA1LjggNDAuNyA1MDFsMTkuNC01LjNjMTguMy01IDM3LjYtNC41IDU1LjYgMS41bDEyLjggNC4zYzE1LjUgNS4yIDMxLjYtNi40IDMxLjYtMjIuOGwwLTMyYzAtMzQuNiAyOC4xLTYyLjcgNjIuNy02Mi43IDE2LjQgMCAyNy45LTE2IDIyLjgtMzEuNmwtNC4zLTEyLjhjLTYtMTgtNi41LTM3LjMtMS41LTU1LjZsNS4zLTE5LjRjNC45LTE3LjktMTEuNi0zNC40LTI5LjUtMjkuNWwtMTkuNCA1LjNjLTE4LjMgNS0zNy42IDQuNC01NS42LTEuNWwtMTIuOC00LjN6TTM4NC4yIDE0NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwiXVxufTtcbnZhciBmYVZlbnVzRG91YmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZlbnVzLWRvdWJsZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzk4OTBdLCBcImYyMjZcIiwgXCJNMTkyIDI4OGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTM2OCAxNzZjMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0LjEgMTczLjEgLjEgMSAuMSAxLjkgLjEgMi45bDAgNjQgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjRjMC0xIDAtMS45IC4xLTIuOS04Mi0xNS0xNDQuMS04Ni44LTE0NC4xLTE3My4xIDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2UzM2OCA3OC44IDM2OCAxNzZ6TTM1Ny41IDMyN2MxNC40LTE1LjggMjYuNi0zMy43IDM2LjEtNTMuMSAxNi4xIDkgMzQuNyAxNC4xIDU0LjUgMTQuMSA2MS45IDAgMTEyLTUwLjEgMTEyLTExMlM1MDkuOSA2NCA0NDggNjRjLTE5LjggMC0zOC4zIDUuMS01NC41IDE0LjEtOS41LTE5LjQtMjEuNi0zNy4zLTM2LjEtNTMuMSAyNi40LTE1LjkgNTcuNC0yNSA5MC41LTI1IDk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgODYuMy02Mi4xIDE1OC4xLTE0NC4xIDE3My4xIC4xIC45IC4xIDEuOSAuMSAyLjlsMCA2NCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02NGMwLTEgMC0xLjkgLjEtMi45LTIxLjEtMy45LTQwLjktMTEuNS01OC42LTIyLjJ6XCJdXG59O1xudmFyIGZhQ2xpcGJvYXJkUXVlc3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xpcGJvYXJkLXF1ZXN0aW9uJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlNGUzXCIsIFwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xOTIgMjQ4YzE2LjEgMCAyOS4yIDEzLjEgMjkuMiAyOS4yIDAgOC43LTMuMSAxMy45LTYuOSAxNy43LTQuNSA0LjQtMTAuNyA3LjUtMTYuOCA5LjUtMTQuOSA1LTI5LjUgMTkuMy0yOS41IDM5LjUgMCAxMy4zIDEwLjcgMjQgMjQgMjQgMTEuNSAwIDIxLjItOC4xIDIzLjUtMTkgMTkuMi03LjEgNTMuNy0yNi4zIDUzLjctNzEuOCAwLTQyLjYtMzQuNi03Ny4yLTc3LjItNzcuMnMtNzcuMiAzNC42LTc3LjIgNzcuMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTYuMSAxMy4xLTI5LjIgMjkuMi0yOS4yem0yOCAxNjhjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4elwiXVxufTtcbnZhciBmYUhvdGRvZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3Rkb2cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc3ODldLCBcImY4MGZcIiwgXCJNMjg4IDBjLTIwLjUgMC00MC4xIDguMS01NC42IDIyLjZMMjIuNiAyMzMuNEM4LjEgMjQ3LjkgMCAyNjcuNSAwIDI4OCAwIDMwMC4yIDIuOSAzMTIuMSA4LjIgMzIyLjdMMzIyLjcgOC4yQzMxMi4xIDIuOSAzMDAuMiAwIDI4OCAwek0yMjQgNTEyYzIwLjUgMCA0MC4xLTguMSA1NC42LTIyLjZMNDg5LjQgMjc4LjZjMTQuNS0xNC41IDIyLjYtMzQuMSAyMi42LTU0LjYgMC0xMi4yLTIuOS0yNC4xLTguMi0zNC43TDE4OS4zIDUwMy44YzEwLjcgNS40IDIyLjYgOC4yIDM0LjcgOC4yek00NTYuNiAxNjguNmMzMS4yLTMxLjIgMzEuMi04MS45IDAtMTEzLjFzLTgxLjktMzEuMi0xMTMuMSAwbC0yODggMjg4Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjFzODEuOSAzMS4yIDExMy4xIDBsMjg4LTI4OHpcIl1cbn07XG52YXIgZmFBcnJvd1VwRnJvbUJyYWNrZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtZnJvbS1icmFja2V0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMDlhXCIsIFwiTTI0Ni42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyIDEwOS4zIDE5MiAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIxMC43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4ek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJTMCAzMzQuMyAwIDM1MmwwIDY0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0elwiXVxufTtcbnZhciBmYU1pY3Jvc2NvcGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9zY29wZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODMwMF0sIFwiZjYxMFwiLCBcIk0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0IDMyIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTMzkwLjcgNDQ4IDMyMCA0NDhMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNi45IDBjMzAuNC0zNCA0OC45LTc4LjggNDguOS0xMjggMC0xMDYtODYtMTkyLTE5Mi0xOTJsLTMyIDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OEwxNzYgMHpNMTIwIDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6XCJdXG59O1xudmFyIGZhQ2xvdWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs5NzI5XSwgXCJmMGMyXCIsIFwiTTAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0bDMwNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNTEuNi0zMC41LTk2LjEtNzQuNS0xMTYuMyA2LjctMTMuMSAxMC41LTI4IDEwLjUtNDMuNyAwLTUzLTQzLTk2LTk2LTk2LTE3LjcgMC0zNC4yIDQuOC00OC40IDEzLjEtMjQuMS00NS44LTcyLjItNzcuMS0xMjcuNi03Ny4xLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOCAuNyAxNS45IDEuOSAyMy41LTU2LjkgMTkuMi05Ny45IDczLjEtOTcuOSAxMzYuNXpcIl1cbn07XG52YXIgZmFCYXNlYmFsbEJhdEJhbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFzZWJhbGwtYmF0LWJhbGwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0MzJcIiwgXCJNNDY0LjEgNTQ0YTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYwem04LjQtNTc2YzE1LjEgMCAyOS43IDUuOCA0MC43IDE2LjJsNDcuMiA0NC44YzEyLjYgMTIgMTkuMSAyOSAxNy41IDQ2LjMtMS4yIDEzLjMtNyAyNS44LTE2LjUgMzUuMkwzNjMuMSAzMDljLTcuMyA3LjMtMTUuNyAxMy40LTI1IDE4TDIwNiAzOTNjLTkuMiA0LjYtMTcuNyAxMC43LTI1IDE4bC05MiA5MiAxLjcgMS44YzcuNyA5LjQgNy4xIDIzLjMtMS43IDMyLjFzLTIyLjcgOS4zLTMyLjEgMS43bC0xLjgtMS43LTQ4LTQ4LTEuNy0xLjhjLTcuNy05LjQtNy4xLTIzLjMgMS43LTMyLjFzMjIuNy05LjMgMzIuMS0xLjdsMS44IDEuNyA5Mi05MmM3LjMtNy4zIDEzLjQtMTUuNyAxOC0yNWw2Ni4xLTEzMi4xYzQuNi05LjIgMTAuNy0xNy43IDE4LTI1TDQzMC44LTE0LjdDNDQxLjktMjUuOCA0NTYuOS0zMiA0NzIuNS0zMnpcIl1cbn07XG52YXIgZmFDYXJSZWFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nhci1yZWFyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJjYXItYWx0XCJdLCBcImY1ZGVcIiwgXCJNMTY1LjQgOTZsMTgxLjIgMGMxMy42IDAgMjUuNyA4LjYgMzAuMiAyMS40bDI2LjEgNzQuNi0yOTMuOCAwIDI2LjEtNzQuNmM0LjUtMTIuOCAxNi42LTIxLjQgMzAuMi0yMS40em0tOTAuNiAuM0wzOS42IDE5Ni44QzE2LjQgMjA2LjQgMCAyMjkuMyAwIDI1NmwwIDk2YzAgMjMuNyAxMi45IDQ0LjQgMzIgNTUuNEwzMiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDI1NiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQwLjZjMTkuMS0xMS4xIDMyLTMxLjcgMzItNTUuNGwwLTk2YzAtMjYuNy0xNi40LTQ5LjYtMzkuNi01OS4yTDQzNy4yIDk2LjNDNDIzLjcgNTcuOCAzODcuNCAzMiAzNDYuNiAzMkwxNjUuNCAzMmMtNDAuOCAwLTc3LjEgMjUuOC05MC42IDY0LjN6TTIwOCAyODhsOTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTk2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDggMjgwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0zNjAtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIl1cbn07XG52YXIgZmFDYXJBbHQgPSBmYUNhclJlYXI7XG52YXIgZmFUaHVtYnRhY2tTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aHVtYnRhY2stc2xhc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInRodW1iLXRhY2stc2xhc2hcIl0sIFwiZTY4ZlwiLCBcIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxNy44IDM1MiA0NDggMzUyYzEwIDAgMTkuNS00LjcgMjUuNS0xMi43czgtMTguNCA1LjItMjguMUw0NzUgMjk3LjhjLTEyLjQtNDMuMy00MS03OC41LTc4LjItOTkuN0wzODYuNSA2NCA0MTYgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJTNDMzLjcgMCA0MTYgMEwxNjAgMGMtNy40IDAtMTQuMSAyLjUtMTkuNSA2LjZMMTkwLjEgNTYuMyAxODUuMyAxMTkuNCA0MS0yNC45ek0yODIuMiAzNTJMMTQ5LjcgMjE5LjZjLTIyLjcgMjAuNS0zOS44IDQ3LjQtNDguNyA3OC4zbC0zLjggMTMuNGMtMi44IDkuNy0uOCAyMCA1LjIgMjguMVMxMTggMzUyIDEyOCAzNTJsMTU0LjIgMHpNMjU2IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTEyLTY0IDAgMCAxMTJ6XCJdXG59O1xudmFyIGZhVGh1bWJUYWNrU2xhc2ggPSBmYVRodW1idGFja1NsYXNoO1xudmFyIGZhUGx1c01pbnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdXMtbWludXMnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImU0M2NcIiwgXCJNMjI0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTI4LTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwIDAtMTI4ek0wIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyelwiXVxufTtcbnZhciBmYUhvdXNlQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTA5XCIsIFwiTTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDIxNy42IDIwMmMtMTAuMi0xLjctMjAuNy0yLjYtMzEuMy0yLjYtNzguNiAwLTE0Ni4xIDQ3LjItMTc1LjggMTE0LjgtNS4xLTEuOC0xMC41LTIuOC0xNi4yLTIuOGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA5MSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4xIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNTUzLjQgMzM5LjFjLTcuMS01LjItMTcuMS0zLjYtMjIuMyAzLjVsLTUzIDcyLjgtMjYuNy0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMC02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC43czguOS0yLjggMTEuNy02LjZsNjQtODhjNS4yLTcuMSAzLjYtMTcuMS0zLjUtMjIuM3pcIl1cbn07XG52YXIgZmFDYWxlbmRhckRheSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1kYXknLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY3ODNcIiwgXCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDB6XCJdXG59O1xudmFyIGZhQ2lyY2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODMwOCwgMTI4MzA5LCAxMjg5OTIsIDEyODk5MywgMTI4OTk0LCAxMjg5OTUsIDEyODk5NiwgOTY3OSwgOTg5OCwgOTg5OSwgMTEwNDQsIDYxNzA4LCA2MTkxNV0sIFwiZjExMVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwelwiXVxufTtcbnZhciBmYU1vYmlsZVZpYnJhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9iaWxlLXZpYnJhdGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU4MTZcIiwgXCJNMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE5MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTM4NGMwLTM1LjMgMjguNy02NCA2NC02NEwzODQgMHpNMjQ4IDQxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwek00OC44IDEzMy40YzkuNC03LjcgMjMuMy03LjEgMzIuMSAxLjcgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDI1LjQgMjUuNCAyLjkgMy4yYzYuMyA3LjcgOS44IDE3LjQgOS44IDI3LjQgMCAxMS41LTQuNiAyMi41LTEyLjcgMzAuNmwtMjUuNCAyNS40IDMxIDMxIDEuNyAxLjhjNy43IDkuNCA3LjEgMjMuMy0xLjcgMzIuMXMtMjIuNyA5LjMtMzIuMSAxLjdMNDcgMzc3IDEyLjcgMzQyLjZDNS42IDMzNS41IDEuMiAzMjYuMiAuMiAzMTYuM0wwIDMxMiAuMiAzMDcuN2MxLTkuOSA1LjQtMTkuMiAxMi41LTI2LjNMMzguMSAyNTYgMTIuNyAyMzAuNkM1LjYgMjIzLjUgMS4yIDIxNC4yIC4yIDIwNC4zTDAgMjAwIC4yIDE5NS43YzEtOS45IDUuNC0xOS4yIDEyLjUtMjYuM0w0NyAxMzUgNDguOCAxMzMuNHpNNDk1IDEzNWM4LjgtOC44IDIyLjctOS4zIDMyLjEtMS43bDEuOCAxLjcgMzQuMyAzNC4zYzcuMSA3LjEgMTEuNSAxNi40IDEyLjUgMjYuM2wuMiA0LjMtLjIgNC4zYy0xIDkuOS01LjQgMTkuMi0xMi41IDI2LjNsLTI1LjQgMjUuNCAyNS40IDI1LjRjNy4xIDcuMSAxMS41IDE2LjQgMTIuNSAyNi4zbC4yIDQuMy0uMiA0LjNjLTEgOS45LTUuNCAxOS4yLTEyLjUgMjYuM2wtMzQuMyAzNC4zLTEuOCAxLjdjLTkuNCA3LjctMjMuMyA3LjEtMzIuMS0xLjdzLTkuMy0yMi43LTEuNy0zMi4xbDEuNy0xLjggMzEtMzEtMjUuNC0yNS40Yy04LjEtOC4xLTEyLjctMTkuMS0xMi43LTMwLjYgMC0xMCAzLjUtMTkuNyA5LjgtMjcuNGwyLjktMy4yIDI1LjQtMjUuNC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJdXG59O1xudmFyIGZhRmFjZUdyaW5TcXVpbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXNxdWludCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUxOCwgXCJncmluLXNxdWludFwiXSwgXCJmNTg1XCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMTIyLjYgMTQzLjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAxOTIgMTI1LjggMTY0LjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXpcIl1cbn07XG52YXIgZmFHcmluU3F1aW50ID0gZmFGYWNlR3JpblNxdWludDtcbnZhciBmYVVzZXJzQmV0d2VlbkxpbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXJzLWJldHdlZW4tbGluZXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1OTFcIiwgXCJNMjQgMTZsNTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNjRDMTAuNyA2NCAwIDUzLjMgMCA0MFMxMC43IDE2IDI0IDE2em0wIDQ0OGw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTM5MiAxOTJhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0yNy4yIDEwMC40YzkuMS0yLjkgMTguOC00LjQgMjguOC00LjQgNTMgMCA5NiA0MyA5NiA5NmwwIDEwLjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtNzguOCAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0bDAtOGMwLTM0LjEtMTAuNi02NS43LTI4LjgtOTEuNnptLTI2Mi40IDBDMTM4LjYgMzE4LjMgMTI4IDM0OS45IDEyOCAzODRsMCA4YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNzguOCAwQzQxLjYgNDE2IDMyIDQwNi40IDMyIDM5NC43TDMyIDM4NGMwLTUzIDQzLTk2IDk2LTk2IDEwIDAgMTkuNyAxLjUgMjguOCA0LjR6TTcyIDE5MmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTE1Mi0xNmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTE3NiAzODRjMC02MS45IDUwLjEtMTEyIDExMi0xMTJzMTEyIDUwLjEgMTEyIDExMmwwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTh6XCJdXG59O1xudmFyIGZhSG91c2VNZWRpY2FsQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtbWVkaWNhbC1jaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MTNcIiwgXCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTIyLjYtMTQ0bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkw1MTguNiA0MDB6XCJdXG59O1xudmFyIGZhVGFibGVMaXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxlLWxpc3QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInRoLWxpc3RcIl0sIFwiZjAwYlwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgMGwwIDY0IDY0IDAgMC02NC02NCAwem0zMjAgMGwtMTkyIDAgMCA2NCAxOTIgMCAwLTY0ek02NCAyMjRsMCA2NCA2NCAwIDAtNjQtNjQgMHptMzIwIDBsLTE5MiAwIDAgNjQgMTkyIDAgMC02NHpNNjQgMzUybDAgNjQgNjQgMCAwLTY0LTY0IDB6bTMyMCAwbC0xOTIgMCAwIDY0IDE5MiAwIDAtNjR6XCJdXG59O1xudmFyIGZhVGhMaXN0ID0gZmFUYWJsZUxpc3Q7XG52YXIgZmFGbGFza1ZpYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmxhc2stdmlhbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRmM1wiLCBcIk0xODQuNiA0MTEuNWMtMy4xIDcuMy01LjQgMTQuOS02LjggMjIuNi0xNC41IDguOC0zMS41IDEzLjktNDkuOCAxMy45LTUzIDAtOTYtNDMtOTYtOTZMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMlMxNC4zIDAgMzIgMEwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDI1NS42LTM5LjQgOTEuOXpNOTYgNjRsMCAxMjggNjQgMCAwLTEyOC02NCAwek0zNTIgMEw1MTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE1My40IDkxLjMgMjEzYzIuMyA1LjQgMy44IDExLjEgNC40IDE3bC4zIC42LS4zIDBjLjIgMS44IC4zIDMuNiAuMyA1LjQgMCAzMi4zLTI2LjIgNTguNi01OC42IDU4LjZsLTI2Ni45IDBjLTMyLjMgMC01OC42LTI2LjItNTguNi01OC42IDAtMS44IC4xLTMuNiAuMy01LjRsLS4zIDAgLjMtLjZjLjYtNS44IDIuMS0xMS42IDQuNC0xN0wzMjAgMjE3LjQgMzIwIDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlMzMDIuMyAwIDMyMCAwbDMyIDB6TTQ1My4yIDI0Mi42Yy0zLjQtOC01LjItMTYuNS01LjItMjUuMmwwLTE1My40LTY0IDAgMCAxNTMuNGMwIDguNy0xLjggMTcuMi01LjIgMjUuMmwtMzMuMiA3Ny40IDE0MC43IDAtMzMuMi03Ny40elwiXVxufTtcbnZhciBmYUNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1leGNsYW1hdGlvbicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXhjbGFtYXRpb24tY2lyY2xlXCJdLCBcImYwNmFcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6bTAtMTkyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMC0xOTJjLTE4LjIgMC0zMi43IDE1LjUtMzEuNCAzMy43bDcuNCAxMDRjLjkgMTIuNiAxMS40IDIyLjMgMjMuOSAyMi4zIDEyLjYgMCAyMy05LjcgMjMuOS0yMi4zbDcuNC0xMDRjMS4zLTE4LjItMTMuMS0zMy43LTMxLjQtMzMuN3pcIl1cbn07XG52YXIgZmFFeGNsYW1hdGlvbkNpcmNsZSA9IGZhQ2lyY2xlRXhjbGFtYXRpb247XG52YXIgZmFUYXhpID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RheGknLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg2NjIsIFwiY2FiXCJdLCBcImYxYmFcIiwgXCJNMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItOC45IDBjLTQyIDAtNzkuMSAyNy4zLTkxLjYgNjcuNGwtMjMgNzMuNUMxNC41IDIxOS4xIDAgMjQzLjkgMCAyNzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDMyMCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE3NmMwLTI4LjEtMTQuNS01Mi45LTM2LjQtNjcuMWwtMjMtNzMuNUM0NDAuMSA5MS4zIDQwMi45IDY0IDM2MC45IDY0bC04LjkgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwek0xNTEuMSAxMjhsMjA5LjkgMGMxNCAwIDI2LjQgOS4xIDMwLjUgMjIuNWwxMyA0MS41LTI5Ni45IDAgMTMtNDEuNWM0LjItMTMuNCAxNi41LTIyLjUgMzAuNS0yMi41ek05NiAyNzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yODggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG52YXIgZmFDYWIgPSBmYVRheGk7XG52YXIgZmFUZXh0U2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGV4dC1zbGFzaCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wicmVtb3ZlLWZvcm1hdFwiXSwgXCJmODdkXCIsIFwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzIyLjcgMjU2LjkgMzY4LjIgOTYgNDcxIDk2IDQ2NSAxMjAuMmMtNC4zIDE3LjEgNi4xIDM0LjUgMjMuMyAzOC44czM0LjUtNi4xIDM4LjgtMjMuM2wxMS00NC4xQzU0NS42IDYxLjMgNTIyLjcgMzIgNDkxLjUgMzJsLTMxOSAwYy0xOS44IDAtMzcuMyAxMi4xLTQ0LjUgMzAuMWwtODctODd6TTE4MC40IDExNC41bDQuNi0xOC41IDExNi43IDAtMzAuOCAxMDktOTAuNS05MC41ek0yNDEgMzEwLjhMMjExLjMgNDE2IDE2MCA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQyLjIgMCAxNS4xLTUzLjMtNTEuOS01MS45elwiXVxufTtcbnZhciBmYVJlbW92ZUZvcm1hdCA9IGZhVGV4dFNsYXNoO1xudmFyIGZhUGVvcGxlUHVsbGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW9wbGUtcHVsbGluZycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUzNVwiLCBcIk04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzIgOS44IDAgMTguNS00LjQgMjQuNC0xMS4yTDgwLjQgNDg1LjNjMi45IDE3LjQgMTkuNCAyOS4yIDM2LjggMjYuM3MyOS4yLTE5LjQgMjYuMy0zNi44bC0yMC41LTEyMi43IDE1LjcgMCAzMCAxMzQuOWMzLjggMTcuMyAyMC45IDI4LjEgMzguMiAyNC4zczI4LjEtMjAuOSAyNC4zLTM4LjJsLTU3LjMtMjU4IDExNi4zIDUzLjhjLjUgLjMgMS4xIC41IDEuNiAuNyA4LjYgMy42IDE4IDMuMSAyNS45LS43IDMuNC0xLjYgNi42LTMuOSA5LjMtNi43IDMuMS0zLjIgNS41LTcgNy4xLTExLjQgLjEtLjMgLjItLjcgLjMtMWwyLjUtNy41YzUuNy0xNy4xIDE4LjMtMzAuOSAzNC43LTM4LjJsOC0zLjVjMS0uNCAxLjktLjggMi45LTEuMmwtMTYuOSA2My41Yy01LjYgMjEuMS0uMSA0My42IDE0LjcgNTkuN2w3MC43IDc3LjEgMjIgODguMWM0LjMgMTcuMSAyMS43IDI3LjYgMzguOCAyMy4zczI3LjYtMjEuNyAyMy4zLTM4LjhsLTIzLTkyLjFjLTEuOS03LjgtNS44LTE0LjktMTEuMi0yMC44bC00OS41LTU0IDE5LjMtNjUuNSA5LjYgMjNjNC40IDEwLjYgMTIuNSAxOS4zIDIyLjggMjQuNWwyNi43IDEzLjNjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45bC0yMS40LTEwLjctMTUuMy0zNi44Yy0xNy4xLTQxLjEtNTcuMy02Ny45LTEwMS45LTY3LjktMjIuOCAwLTQ1LjMgNC44LTY2LjEgMTRsLTggMy41Yy0yNC40IDEwLjktNDQuNiAyOS01OC4xIDUxLjZMMTU3LjMgMTM2LjlDMTQ0LjcgMTMxIDEzMC45IDEyOCAxMTcgMTI4bC01MyAwek00NjQgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0zNDkuNyAzMzUuNmwtMjUgNjIuNC01OS40IDU5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMzcyLjMgNDQxYzQuNi00LjYgOC4yLTEwLjEgMTAuNi0xNi4xbDE0LjUtMzYuMi00MC43LTQ0LjRjLTIuNS0yLjctNC44LTUuNi03LTguNnpcIl1cbn07XG52YXIgZmFCYWNrd2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWNrd2FyZCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzkxOTRdLCBcImYwNGFcIiwgXCJNMjA0LjMgNDMuMUMyMTUuOSAzMiAyMzMgMjguOSAyNDcuNyAzNS4yUzI3MiA1NiAyNzIgNzJsMCAxMzYuMyAxNzIuMy0xNjUuMUM0NTUuOSAzMiA0NzMgMjguOSA0ODcuNyAzNS4yUzUxMiA1NiA1MTIgNzJsMCAzNjhjMCAxNi05LjYgMzAuNS0yNC4zIDM2LjhzLTMxLjggMy4yLTQzLjQtNy45TDI3MiAzMDMuNyAyNzIgNDQwYzAgMTYtOS42IDMwLjUtMjQuMyAzNi44cy0zMS44IDMuMi00My40LTcuOWwtMTkyLTE4NEM0LjUgMjc3LjMgMCAyNjYuOSAwIDI1NnM0LjUtMjEuMyAxMi4zLTI4LjlsMTkyLTE4NHpcIl1cbn07XG52YXIgZmFDYXJCdXJzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItYnVyc3QnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImNhci1jcmFzaFwiXSwgXCJmNWUxXCIsIFwiTTIzMiAxNi4xbDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0ek0zMiAxNjguMWw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0ek0yODEuNSA3MC42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDI4MS41IDM2LjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em0tMTgxIDIxNWwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw2Ni42IDI1MS42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6TTY2LjYgMi43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDEwMC41IDIuN0M5MS4xLTYuNyA3Ni02LjcgNjYuNiAyLjd6TTM1Mi45IDE3NS40TDUwNSAyMTYuMmM2LjQgMS43IDExLjEgNy4zIDExLjggMTMuOWw3LjIgNzQtMjMxLjUtNjIgNDMuMi02MC41YzMuOS01LjQgMTAuNy03LjkgMTcuMi02LjJ6TTIyMy42IDIyOC41bC0yLjEgMi45Yy0yMS43IDUuNS0zOS45IDIyLjMtNDYuMSA0NS41LTQuMSAxNS41LTEyLjQgNDYuNC0yNC44IDkyLjdsLTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42bDguMy0zMC45IDI3OC4yIDc0LjUtOC4zIDMwLjljLTQuNiAxNy4xIDUuNiAzNC42IDIyLjYgMzkuMmwxNS41IDQuMWMxNy4xIDQuNiAzNC42LTUuNiAzOS4yLTIyLjYgNC4xLTE1LjUgMTIuNC00Ni40IDI0LjgtOTIuN2w4LjMtMzAuOWM2LjItMjMuMi0xLjEtNDYuOC0xNy4yLTYyLjVsLS4zLTMuNi0xMC0xMDNjLTMuMi0zMy4yLTI2LjctNjAuOS01OC45LTY5LjVMMzY5LjUgMTEzLjZjLTMyLjItOC42LTY2LjQgMy42LTg1LjggMzAuOGwtNjAuMiA4NC4yem00OC43IDU3LjhhMzIgMzIgMCAxIDEgLTE2LjYgNjEuOCAzMiAzMiAwIDEgMSAxNi42LTYxLjh6bTIwOC4xIDg4LjlhMzIgMzIgMCAxIDEgNjEuOCAxNi42IDMyIDMyIDAgMSAxIC02MS44LTE2LjZ6XCJdXG59O1xudmFyIGZhQ2FyQ3Jhc2ggPSBmYUNhckJ1cnN0O1xudmFyIGZhTGluayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsaW5rJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4Mjc5LCBcImNoYWluXCJdLCBcImYwYzFcIiwgXCJNNDE5LjUgOTZjLTE2LjYgMC0zMi43IDQuNS00Ni44IDEyLjctMTUuOC0xNi0zNC4yLTI5LjQtNTQuNS0zOS41IDI4LjItMjQgNjQuMS0zNy4yIDEwMS4zLTM3LjIgODYuNCAwIDE1Ni41IDcwIDE1Ni41IDE1Ni41IDAgNDEuNS0xNi41IDgxLjMtNDUuOCAxMTAuNmwtNzEuMSA3MS4xYy0yOS4zIDI5LjMtNjkuMSA0NS44LTExMC42IDQ1LjgtODYuNCAwLTE1Ni41LTcwLTE1Ni41LTE1Ni41IDAtMS41IDAtMyAuMS00LjUgLjUtMTcuNyAxNS4yLTMxLjYgMzIuOS0zMS4xczMxLjYgMTUuMiAzMS4xIDMyLjljMCAuOSAwIDEuOCAwIDIuNiAwIDUxLjEgNDEuNCA5Mi41IDkyLjUgOTIuNSAyNC41IDAgNDgtOS43IDY1LjQtMjcuMWw3MS4xLTcxLjFjMTcuMy0xNy4zIDI3LjEtNDAuOSAyNy4xLTY1LjQgMC01MS4xLTQxLjQtOTIuNS05Mi41LTkyLjV6TTI3NS4yIDE3My4zYy0xLjktLjgtMy44LTEuOS01LjUtMy4xLTEyLjYtNi41LTI3LTEwLjItNDIuMS0xMC4yLTI0LjUgMC00OCA5LjctNjUuNCAyNy4xTDkxLjEgMjU4LjJjLTE3LjMgMTcuMy0yNy4xIDQwLjktMjcuMSA2NS40IDAgNTEuMSA0MS40IDkyLjUgOTIuNSA5Mi41IDE2LjUgMCAzMi42LTQuNCA0Ni43LTEyLjYgMTUuOCAxNiAzNC4yIDI5LjQgNTQuNiAzOS41LTI4LjIgMjMuOS02NCAzNy4yLTEwMS4zIDM3LjItODYuNCAwLTE1Ni41LTcwLTE1Ni41LTE1Ni41IDAtNDEuNSAxNi41LTgxLjMgNDUuOC0xMTAuNmw3MS4xLTcxLjFjMjkuMy0yOS4zIDY5LjEtNDUuOCAxMTAuNi00NS44IDg2LjYgMCAxNTYuNSA3MC42IDE1Ni41IDE1Ni45IDAgMS4zIDAgMi42IDAgMy45LS40IDE3LjctMTUuMSAzMS42LTMyLjggMzEuMnMtMzEuNi0xNS4xLTMxLjItMzIuOGMwLS44IDAtMS41IDAtMi4zIDAtMzMuNy0xOC02My4zLTQ0LjgtNzkuNnpcIl1cbn07XG52YXIgZmFDaGFpbiA9IGZhTGluaztcbnZhciBmYUJhY2t3YXJkU3RlcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWNrd2FyZC1zdGVwJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJzdGVwLWJhY2t3YXJkXCJdLCBcImYwNDhcIiwgXCJNMzYzIDM2LjhjLTEyLjktNy0yOC43LTYuMy00MSAxLjhMNjQgMjA4LjEgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0NC4xIDI1OCAxNjkuNmMxMi4zIDguMSAyOCA4LjggNDEgMS44czIxLTIwLjUgMjEtMzUuMmwwLTM2OGMwLTE0LjctOC4xLTI4LjItMjEtMzUuMnpcIl1cbn07XG52YXIgZmFTdGVwQmFja3dhcmQgPSBmYUJhY2t3YXJkU3RlcDtcbnZhciBmYVggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneCcsXG4gIGljb246IFszODQsIDUxMiwgWzEyMF0sIFwiNThcIiwgXCJNMzc2LjYgODQuNWMxMS4zLTEzLjYgOS41LTMzLjgtNC4xLTQ1LjFzLTMzLjgtOS41LTQ1LjEgNC4xTDE5MiAyMDYgNTYuNiA0My41QzQ1LjMgMjkuOSAyNS4xIDI4LjEgMTEuNSAzOS40Uy0zLjkgNzAuOSA3LjQgODQuNUwxNTAuMyAyNTYgNy40IDQyNy41Yy0xMS4zIDEzLjYtOS41IDMzLjggNC4xIDQ1LjFzMzMuOCA5LjUgNDUuMS00LjFMMTkyIDMwNiAzMjcuNCA0NjguNWMxMS4zIDEzLjYgMzEuNSAxNS40IDQ1LjEgNC4xczE1LjQtMzEuNSA0LjEtNDUuMUwyMzMuNyAyNTYgMzc2LjYgODQuNXpcIl1cbn07XG52YXIgZmFDaXJjbGVVc2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS11c2VyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjIxNDIsIFwidXNlci1jaXJjbGVcIl0sIFwiZjJiZFwiLCBcIk0zOTkgMzg0LjJDMzc2LjkgMzQ1LjggMzM1LjQgMzIwIDI4OCAzMjBsLTY0IDBjLTQ3LjQgMC04OC45IDI1LjgtMTExIDY0LjIgMzUuMiAzOS4yIDg2LjIgNjMuOCAxNDMgNjMuOHMxMDcuOC0yNC43IDE0My02My44ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNTYgMTZhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6XCJdXG59O1xudmFyIGZhVXNlckNpcmNsZSA9IGZhQ2lyY2xlVXNlcjtcbnZhciBmYVJlY3RhbmdsZUxpc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVjdGFuZ2xlLWxpc3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxpc3QtYWx0XCJdLCBcImYwMjJcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTk2IDI1NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0xMjAtNTZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDEyOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhTGlzdEFsdCA9IGZhUmVjdGFuZ2xlTGlzdDtcbnZhciBmYUhhbmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTMwNiwgOTk5NSwgXCJoYW5kLXBhcGVyXCJdLCBcImYyNTZcIiwgXCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjcyYzAgMS41IDAgMy4xIC4xIDQuNkw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4yIDBjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZsMC0yMDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxMTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yMDh6XCJdXG59O1xudmFyIGZhSGFuZFBhcGVyID0gZmFIYW5kO1xudmFyIGZhVmFuU2h1dHRsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2YW4tc2h1dHRsZScsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODY1NiwgXCJzaHV0dGxlLXZhblwiXSwgXCJmNWI2XCIsIFwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzM2YzAgMzUuMyAyOC43IDY0IDY0IDY0bC40IDBjNCA0NC45IDQxLjcgODAgODcuNiA4MHM4My42LTM1LjEgODcuNi04MGwxMDQuNyAwYzQgNDQuOSA0MS43IDgwIDg3LjYgODAgNDYuMSAwIDgzLjktMzUuNCA4Ny43LTgwLjUgMzEuNy0zLjggNTYuMy0zMC44IDU2LjMtNjMuNWwwLTEwMS4zYzAtMTMuOC00LjUtMjcuMy0xMi44LTM4LjRsLTgwLTEwNi43QzQ3MS4xIDczLjUgNDUyLjEgNjQgNDMyIDY0TDY0IDY0ek01MDQgMjI0bC0xMjAgMCAwLTk2IDQ4IDAgNzIgOTZ6TTY0IDIyNGwwLTk2IDk2IDAgMCA5Ni05NiAwem0xNjAgMGwwLTk2IDk2IDAgMCA5Ni05NiAwek0zOTIgMzkyYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTE1MiAzNTJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwelwiXVxufTtcbnZhciBmYVNodXR0bGVWYW4gPSBmYVZhblNodXR0bGU7XG52YXIgZmFTdGFpcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RhaXJzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlMjg5XCIsIFwiTTM4NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZ6XCJdXG59O1xudmFyIGZhSG9yc2VIZWFkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvcnNlLWhlYWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3YWJcIiwgXCJNMCA0NjRMMCAzMTYuOUMwIDIwOC41IDY4LjMgMTExLjggMTcwLjUgNzUuNkwzNDAuMiAxNS41YzIxLjQtNy42IDQzLjggOC4zIDQzLjggMzAuOSAwIDExLTUuNSAyMS4yLTE0LjYgMjcuM0wzMzYgOTZjNDguMSAwIDkxLjIgMjkuOCAxMDguMSA3NC45bDQ4LjYgMTI5LjVjMTEuOCAzMS40IDQuMSA2Ni44LTE5LjYgOTAuNS0xNiAxNi0zNy44IDI1LjEtNjAuNSAyNS4xbC0zLjQgMGMtMjYuMSAwLTUwLjktMTEuNi02Ny42LTMxLjdsLTMyLjMtMzguN2MtMTEuNyA0LjEtMjQuMiA2LjQtMzcuMyA2LjRsLS4xIDBjLTYuMyAwLTEyLjUtLjUtMTguNi0xLjUtMy42LS42LTcuMi0xLjQtMTAuNy0yLjNsMCAwYy0yOC45LTcuOC01My4xLTI2LjgtNjcuOC01Mi4yLTQuNC03LjctMTQuMi0xMC4zLTIxLjktNS44cy0xMC4zIDE0LjItNS44IDIxLjljMjQgNDEuNSA2OC4zIDcwIDExOS4zIDcxLjlsNDcuMiA3MC44YzQgNi4xIDYuMiAxMy4yIDYuMiAyMC40IDAgMjAuMy0xNi41IDM2LjgtMzYuOCAzNi44TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6TTMyOCAyMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwiXVxufTtcbnZhciBmYVZhdWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZhdWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMmM1XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjQgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwyNTYgMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yNTYgMjU2YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNNjQgMjU2YTEyOCAxMjggMCAxIDEgMjU2IDAgMTI4IDEyOCAwIDEgMSAtMjU2IDB6bTM4NC00OGMwIDE3LjgtOS43IDMzLjMtMjQgNDEuNmwwIDc4LjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03OC40Yy0xNC4zLTguMy0yNC0yMy44LTI0LTQxLjYgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHpcIl1cbn07XG52YXIgZmFEcnVtU3RlZWxwYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHJ1bS1zdGVlbHBhbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjU2YVwiLCBcIk0yODggMzJjMTU5LjEgMCAyODggNDggMjg4IDEyOGwwIDE5MmMwIDgwLTEyOC45IDEyOC0yODggMTI4UzAgNDMyIDAgMzUyTDAgMTYwQzAgODAgMTI4LjkgMzIgMjg4IDMyek01MjggMTYwYzAtOS45LTgtMjkuOS01NS00OS44LTE4LjYtNy45LTQwLjktMTQuNC02Ni0xOS40bC0yNy44IDQzLjZjLTcuMyAxMS41LTExLjIgMjQuOC0xMS4yIDM4LjQgMCAxNy41IDYuNCAzNC40IDE4LjEgNDcuNWw5LjggMTFjMjkuOC01LjIgNTUuOS0xMi41IDc3LjItMjEuNSA0Ny4xLTE5LjkgNTUtMzkuOSA1NS00OS44ek0zNDkuMiAyMzcuM2MtOC0yNi4yLTMyLjQtNDUuMy02MS4yLTQ1LjNzLTUzLjMgMTkuMS02MS4yIDQ1LjNjMTkuNCAxLjcgMzkuOSAyLjcgNjEuMiAyLjdzNDEuOC0uOSA2MS4yLTIuN3pNMTY5IDkwLjhjLTI1LjIgNS00Ny40IDExLjYtNjYgMTkuNC00Ny4xIDE5LjktNTUgMzkuOS01NSA0OS44czggMjkuOSA1NSA0OS44YzIxLjMgOSA0Ny40IDE2LjMgNzcuMiAyMS41bDkuOC0xMWMxMS42LTEzLjEgMTguMS0zMCAxOC4xLTQ3LjUgMC0xMy42LTMuOS0yNi45LTExLjItMzguNEwxNjkgOTAuOHptNTYuMy04Yy0uOSA0LjMtMS40IDguNy0xLjQgMTMuMiAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtNC41LS41LTktMS40LTEzLjItMTkuOC0xLjgtNDAuOC0yLjgtNjIuNi0yLjhzLTQyLjggMS02Mi42IDIuOHpcIl1cbn07XG52YXIgZmFUaHVtYnNVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aHVtYnMtdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgwNzcsIDYxNTc1XSwgXCJmMTY0XCIsIFwiTTgwIDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsNDggMHpNMjcwLjYgMTZDMjk3LjkgMTYgMzIwIDM4LjEgMzIwIDY1LjRsMCA0LjJjMCA2LjgtMS4zIDEzLjYtMy44IDE5LjlMMjg4IDE2MCA0NDggMTYwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTkuNy0xMS45IDM2LjYtMjguOSA0NCAxNyA3LjQgMjguOSAyNC4zIDI4LjkgNDQgMCAyMy40LTE2LjggNDIuOS0zOSA0Ny4xIDQuNCA3LjMgNyAxNS44IDcgMjQuOSAwIDIyLjItMTUgNDAuOC0zNS40IDQ2LjMgMi4yIDUuNSAzLjQgMTEuNSAzLjQgMTcuNyAwIDI2LjUtMjEuNSA0OC00OCA0OGwtODcuOSAwYy0zNi4zIDAtNzEuNi0xMi40LTk5LjktMzUuMUwxODQgNDM1LjJjLTE1LjItMTIuMS0yNC0zMC41LTI0LTUwbDAtMTg2LjZjMC0xNC45IDMuNS0yOS42IDEwLjEtNDIuOUwyMjYuMyA0My4zQzIzNC43IDI2LjYgMjUxLjggMTYgMjcwLjYgMTZ6XCJdXG59O1xudmFyIGZhU3RhbXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RhbXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YmZcIiwgXCJNMzEyIDIwMS44YzAtMTcuNCA5LjItMzMuMiAxOS45LTQ3IDEyLjYtMTYuMiAyMC4xLTM2LjYgMjAuMS01OC44IDAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMjIuMSA3LjUgNDIuNSAyMC4xIDU4LjggMTAuNyAxMy44IDE5LjkgMjkuNiAxOS45IDQ3IDAgMjkuOS0yNC4zIDU0LjItNTQuMiA1NC4yTDExMiAyNTZjLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtNjEuOS01MC4xLTExMi0xMTItMTEybC0zMy44IDBjLTI5LjkgMC01NC4yLTI0LjMtNTQuMi01NC4yek01NiA0NjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNTYgNDY0elwiXVxufTtcbnZhciBmYU1lbm9yYWggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWVub3JhaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjY3NlwiLCBcIk0yMC44IDcuNEMyMi44IDIuOSAyNy4xIDAgMzIgMHM5LjIgMi45IDExLjIgNy40TDYxLjMgNDkuN2MxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFMNjQgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA4MS43IDAgNjRsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDIwLjggNy40em05NiAwQzExOC44IDIuOSAxMjMuMSAwIDEyOCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMlM5NiA4MS43IDk2IDY0bDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwxMTYuOCA3LjR6bTc3LjggNDIuNEwyMTIuOCA3LjRDMjE0LjggMi45IDIxOS4xIDAgMjI0IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNMzA4LjggNy40QzMxMC44IDIuOSAzMTUuMSAwIDMyMCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMMzA4LjggNy40em03Ny44IDQyLjRMNDA0LjggNy40QzQwNi44IDIuOSA0MTEuMSAwIDQxNiAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTUwMC44IDcuNEM1MDIuOCAyLjkgNTA3LjEgMCA1MTIgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDUwMC44IDcuNHptNzcuOCA0Mi40TDU5Ni44IDcuNEM1OTguOCAyLjkgNjAzLjEgMCA2MDggMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek0zMiAxMjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDAgMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE2MCAxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTI4YzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwIDAgNjQgMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEyOCAwIDAtNjQtMTkyIDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xudmFyIGZhQ2hpbGRyZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hpbGRyZW4nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZTFcIiwgXCJNMTYwLjUgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptLTcyIDQ4MGwwLTgwLTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFMODYuNyAyODUuNSA1OCAzMjMuM2MtMTAuNyAxNC4xLTMwLjggMTYuOC00NC44IDYuMlMtMy43IDI5OC43IDcgMjg0LjdMNjUuOSAyMDdjMjIuNC0yOS42IDU3LjUtNDcgOTQuNi00N3M3Mi4yIDE3LjQgOTQuNiA0N0wzMTQgMjg0LjdjMTAuNyAxNC4xIDcuOSAzNC4yLTYuMiA0NC44cy0zNC4yIDcuOS00NC44LTYuMmwtMjguNy0zNy44IDMxLjEgOTMuNGMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFsLTE3LjggMCAwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODAtMTYgMCAwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyek00ODAuNSAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0tOCAzODRsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE3OS41LTEyLjkgMjAuNWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwcy0xOS40LTI5LjItMTAtNDQuMWw1MS43LTgyLjFjMTcuNi0yNy45IDQ4LjMtNDQuOSA4MS4yLTQ0LjlsMTIuMyAwYzMzIDAgNjMuNyAxNi45IDgxLjIgNDQuOUw2MTkuNiAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBsLTEyLjktMjAuNSAwIDE3OS41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMHpcIl1cbn07XG52YXIgZmFDaGFydExpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtbGluZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGluZS1jaGFydFwiXSwgXCJmMjAxXCIsIFwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em00MDYuNiA4Ni42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDMyMCAyMTAuNyAyNjIuNiAxNTMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDczLjQtNzMuNCA1Ny40IDU3LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHpcIl1cbn07XG52YXIgZmFMaW5lQ2hhcnQgPSBmYUNoYXJ0TGluZTtcbnZhciBmYVNxdWFyZUVudmVsb3BlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1lbnZlbG9wZScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiZW52ZWxvcGUtc3F1YXJlXCJdLCBcImYxOTlcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjA5LjEgMjY3LjlMMTA4LjQgMjA3LjRjLTcuNy00LjYtMTIuNC0xMi45LTEyLjQtMjEuOSAwLTE0LjEgMTEuNC0yNS41IDI1LjUtMjUuNWwyMDQuOSAwYzE0LjEgMCAyNS41IDExLjQgMjUuNSAyNS41IDAgOS00LjcgMTcuMy0xMi40IDIxLjlMMjM4LjkgMjY3LjljLTQuNSAyLjctOS42IDQuMS0xNC45IDQuMXMtMTAuNC0xLjQtMTQuOS00LjF6TTM1MiAyMzcuM2wwIDgyLjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgyLjcgOTYuNyA1OEMyMDIuMSAzMDEgMjEzIDMwNCAyMjQgMzA0czIxLjktMyAzMS4zLTguN2w5Ni43LTU4elwiXVxufTtcbnZhciBmYUVudmVsb3BlU3F1YXJlID0gZmFTcXVhcmVFbnZlbG9wZTtcbnZhciBmYUJhblNtb2tpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFuLXNtb2tpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg2ODUsIFwic21va2luZy1iYW5cIl0sIFwiZjU0ZFwiLCBcIk05OS41IDE0NC44bDc5LjIgNzkuMi01MC43IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTQ2LjcgMCA5Mi41IDkyLjVjLTMxLjQgMjIuNC02OS44IDM1LjUtMTExLjIgMzUuNS0xMDYgMC0xOTItODYtMTkyLTE5MiAwLTQxLjUgMTMuMS03OS45IDM1LjUtMTExLjJ6TTMzMy4zIDI4OGwtMzItMzIgODIuNyAwIDAgMzItNTAuNyAwem0zMiAzMmwxOC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwyNjkuMyAyMjQgMTQ0LjggOTkuNWMzMS40LTIyLjQgNjkuOC0zNS41IDExMS4yLTM1LjUgMTA2IDAgMTkyIDg2IDE5MiAxOTIgMCA0MS41LTEzLjEgNzkuOS0zNS41IDExMS4yTDM2NS4zIDMyMHpNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI3MiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2czcuMiAxNiAxNiAxNiAxNi03LjIgMTYtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnMtNy4yLTE2LTE2LTE2elwiXVxufTtcbnZhciBmYVNtb2tpbmdCYW4gPSBmYUJhblNtb2tpbmc7XG52YXIgZmFUcnVja0Zyb250ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLWZyb250JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMmI3XCIsIFwiTTAgMTEyQzAgNjcuOCAzNS44IDMyIDgwIDMybDI4OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMjU2YzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0xOTIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4QzEyLjYgNDE3LjQgMCAzOTQuMiAwIDM2OEwwIDExMnptOTYgODBsMCA2NCAyNTYgMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTMyIDE2MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yMjQgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbnZhciBmYUJ1aWxkaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI3OTcwLCA2MTY4N10sIFwiZjFhZFwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xNzYgMzUybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC05NiAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTk2IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNDAgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNOTYgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbnZhciBmYUJ1bGxzZXllID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1bGxzZXllJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTQwXCIsIFwiTTQ0OCAyNTZhMTkyIDE5MiAwIDEgMCAtMzg0IDAgMTkyIDE5MiAwIDEgMCAzODQgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDgwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6TTIyNCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG52YXIgZmFBcnJvd0xlZnRMb25nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWxlZnQtbG9uZycsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibG9uZy1hcnJvdy1sZWZ0XCJdLCBcImYxNzdcIiwgXCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMjg4IDU0NCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQzNC43IDAgNzMuNC03My40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4elwiXVxufTtcbnZhciBmYUxvbmdBcnJvd0xlZnQgPSBmYUFycm93TGVmdExvbmc7XG52YXIgZmFDaGVzc1Jvb2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlc3Mtcm9vaycsXG4gIGljb246IFszODQsIDUxMiwgWzk4MjBdLCBcImY0NDdcIiwgXCJNMCAzMkwwIDEzMy41YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zTDY0IDIyNCA2NCAzODQgNy44IDQ1NC4zQzIuNyA0NjAuNiAwIDQ2OC40IDAgNDc2LjUgMCA0OTYuMSAxNS45IDUxMiAzNS41IDUxMmwzMTIuOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4ybC01Ni4yLTcwLjMgMC0xNjAgNDUuMy00NS4zYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMMzg0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyMCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTQ4IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNzYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi00OCAwIDAtMzJDOTYgMTQuMyA4MS43IDAgNjQgMEwzMiAwQzE0LjMgMCAwIDE0LjMgMCAzMnpcIl1cbn07XG52YXIgZmFCbGVuZGVyUGhvbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmxlbmRlci1waG9uZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjZiNlwiLCBcIk0xNTEuNCAxMy4yYzEwLjIgNS44IDE0LjUgMTguNCAxMCAyOS4zTDEzOC4yIDk4LjhjLTMuOSA5LjYtMTMuNyAxNS40LTI0IDE0LjRsLTIwLjItMkM3OC43IDE1Mi45IDc4IDE5OC45IDkxLjkgMjQxLjFsMjIuNC0yLjJjMTAuMy0xIDIwIDQuOCAyNCAxNC40bDIzLjIgNTYuM2M0LjUgMTAuOSAuMiAyMy40LTEwIDI5LjNsLTIuOSAxLjZjLTMzLjYgMTkuMi04MS43IDE2LjItMTA2LjItMjEuNi01Ni4zLTg2LjYtNTYuMy0xOTkuMSAwLTI4NS43IDI0LjYtMzcuNyA3Mi43LTQwLjcgMTA2LjItMjEuNmwyLjkgMS42ek0yMjQgMzM2TDE5My43IDE3LjVDMTkyLjggOC4xIDIwMC4yIDAgMjA5LjYgMGwzMjQgMGMyMS4zIDAgMzYuNiAyMC4zIDMwLjggNDAuOEw1NTMuMSA4MCA0NDAgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTkuNCAwLTE4LjMgNjQtODEuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjQgMC0yNy40IDk2LTI1NiAwem04IDQ4bDI0MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTI0MCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwem0xMjAgODhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwiXVxufTtcbnZhciBmYUFycm93VHVyblVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXR1cm4tdXAnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImxldmVsLXVwXCJdLCBcImYxNDhcIiwgXCJNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTMwNi43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTA5LjMgMTYwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMHpcIl1cbn07XG52YXIgZmFMZXZlbFVwID0gZmFBcnJvd1R1cm5VcDtcbnZhciBmYUJpY3ljbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmljeWNsZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODY5MF0sIFwiZjIwNlwiLCBcIk0zMzEuNyA0My4zQzMzNiAzNi4zIDM0My43IDMyIDM1MiAzMmwxMDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjUuNiAwIDcyLjIgMTQ4LjRjMTAuNy0yLjkgMjEuOS00LjQgMzMuNC00LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhzLTU3LjMgMTI4LTEyOCAxMjgtMTI4LTU3LjMtMTI4LTEyOGMwLTQyIDIwLjItNzkuMiA1MS40LTEwMi42bC0yMC40LTQxLjktNzMuNSAxNDdjLTIuMyA0LjgtNi4zIDguOC0xMS40IDExLjItLjYgLjMtMS4yIC41LTEuOCAuNy0yLjkgMS4xLTUuOSAxLjYtOC45IDEuNUwyNzEgMzY4Yy03LjkgNjMuMS02MS43IDExMi0xMjcgMTEyLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4UzczLjMgMjI0IDE0NCAyMjRjMTAuOCAwIDIxLjIgMS4zIDMxLjIgMy44bDI4LjUtNTYuOS0xMS41LTI2LjktNDAuMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDU2IDBjOS42IDAgMTguMyA1LjcgMjIuMSAxNC41bDE0LjMgMzMuNSAxMjMuNyAwLTM3LjctNzcuNWMtMy42LTcuNC0zLjItMTYuMiAxLjItMjMuMnpNMjI4LjUgMjI4LjdsLTQ1LjYgOTEuMyA4NC44IDAtMzkuMS05MS4zek0zMDUuNyAyODdsNDcuNS05NS04OC4yIDAgNDAuNyA5NXptMTY4LjcgNzUuNWwtMjkuNy02MWMtMTIuOCAxMy0yMC43IDMwLjgtMjAuNyA1MC41IDAgMzkuOCAzMi4yIDcyIDcyIDcyczcyLTMyLjIgNzItNzItMzIuMi03Mi03Mi03MmMtMi43IDAtNS41IC4yLTguMSAuNWwyOS43IDYxYzUuOCAxMS45IC44IDI2LjMtMTEuMSAzMi4xcy0yNi4zIC44LTMyLjEtMTEuMXpNMTQ5LjIgMzY4Yy0yMC4yIDAtMzMuNC0yMS4zLTI0LjMtMzkuNGwyNC4yLTQ4LjVjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM5LjggMC03MiAzMi4yLTcyIDcyczMyLjIgNzIgNzIgNzJjMzQuMyAwIDYyLjktMjMuOSA3MC4yLTU2bC02NSAwelwiXVxufTtcbnZhciBmYUNpcmNsZUFycm93RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtYXJyb3ctZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYXJyb3ctY2lyY2xlLWRvd25cIl0sIFwiZjBhYlwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjM5IDM3N2wtODAtODBjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzOSAzOSAwLTE1MC4xYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNTAuMSAzOS0zOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTgwIDgwYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHpcIl1cbn07XG52YXIgZmFBcnJvd0NpcmNsZURvd24gPSBmYUNpcmNsZUFycm93RG93bjtcbnZhciBmYUdlYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2VhcicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk4ODEsIFwiY29nXCJdLCBcImYwMTNcIiwgXCJNMTk1LjEgOS41QzE5OC4xLTUuMyAyMTEuMi0xNiAyMjYuNC0xNmw1OS44IDBjMTUuMiAwIDI4LjMgMTAuNyAzMS4zIDI1LjVMMzMyIDc5LjVjMTQuMSA2IDI3LjMgMTMuNyAzOS4zIDIyLjhsNjcuOC0yMi41YzE0LjQtNC44IDMwLjIgMS4yIDM3LjggMTQuNGwyOS45IDUxLjhjNy42IDEzLjIgNC45IDI5LjgtNi41IDM5LjlMNDQ3IDIzMy4zYy45IDcuNCAxLjMgMTUgMS4zIDIyLjdzLS41IDE1LjMtMS4zIDIyLjdsNTMuNCA0Ny41YzExLjQgMTAuMSAxNCAyNi44IDYuNSAzOS45bC0yOS45IDUxLjhjLTcuNiAxMy4xLTIzLjQgMTkuMi0zNy44IDE0LjRsLTY3LjgtMjIuNWMtMTIuMSA5LjEtMjUuMyAxNi43LTM5LjMgMjIuOGwtMTQuNCA2OS45Yy0zLjEgMTQuOS0xNi4yIDI1LjUtMzEuMyAyNS41bC01OS44IDBjLTE1LjIgMC0yOC4zLTEwLjctMzEuMy0yNS41bC0xNC40LTY5LjljLTE0LjEtNi0yNy4yLTEzLjctMzkuMy0yMi44TDczLjUgNDMyLjNjLTE0LjQgNC44LTMwLjItMS4yLTM3LjgtMTQuNEw1LjggMzY2LjFjLTcuNi0xMy4yLTQuOS0yOS44IDYuNS0zOS45bDUzLjQtNDcuNWMtLjktNy40LTEuMy0xNS0xLjMtMjIuN3MuNS0xNS4zIDEuMy0yMi43TDEyLjMgMTg1LjhjLTExLjQtMTAuMS0xNC0yNi44LTYuNS0zOS45TDM1LjcgOTQuMWM3LjYtMTMuMiAyMy40LTE5LjIgMzcuOC0xNC40bDY3LjggMjIuNWMxMi4xLTkuMSAyNS4zLTE2LjcgMzkuMy0yMi44TDE5NS4xIDkuNXpNMjU2LjMgMzM2YTgwIDgwIDAgMSAwIC0uNi0xNjAgODAgODAgMCAxIDAgLjYgMTYwelwiXVxufTtcbnZhciBmYUNvZyA9IGZhR2VhcjtcbnZhciBmYU1hcnNBbmRWZW51c0J1cnN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcnMtYW5kLXZlbnVzLWJ1cnN0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTIzXCIsIFwiTTQ2NC0zMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzNC43IDAtNjMgNjNjLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzEtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC0zNy0xMS40LTcxLjQtMzEtOTkuOGw2My02MyAwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNjggOTZhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0ek0xOTAuOS0yMS45QzE4OC40LTI4IDE4Mi42LTMyIDE3Ni0zMnMtMTIuNCA0LTE0LjkgMTAuMWwtMjkuNCA3NC03Ni4yLTIzLjFjLTYuMy0xLjktMTMuMSAuMi0xNy4yIDUuM1MzMy44IDQ2LjUgMzcgNTIuMmwzOS41IDY5LjEtNjUuNiA0NS4xYy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yLTUuNiA3OS40Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE1Mi4xIDI2OGMtNS4zLTE5LjEtOC4xLTM5LjItOC4xLTYwIDAtNjUuNCAyOC0xMjQuMiA3Mi42LTE2NS4xTDE5MC45LTIxLjl6XCJdXG59O1xudmFyIGZhT3R0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnb3R0ZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjk0NDZdLCBcImY3MDBcIiwgXCJNMTgxLjUgMTk3LjFsMTIuOSA2LjRjNS45IDMgMTIuNCA0LjUgMTkuMSA0LjUgMjMuNSAwIDQyLjYtMTkuMSA0Mi42LTQyLjZsMC0yMS40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIxLjRjMCAyMy41IDE5LjEgNDIuNiA0Mi42IDQyLjYgNi42IDAgMTMuMS0xLjUgMTkuMS00LjUgOS4zLTQuNyAxNi40LTguMiAyMS4yLTEwLjZMMTM1LjEgMTg1Yy00LjUtMy03LjEtOC03LjEtMTMuM2wwLTMuN2MwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMy43YzAgNS4zLTIuNyAxMC4zLTcuMSAxMy4zbC0xMS44IDcuOSA4LjQgNC4yem0tOC42IDQ5LjRsLTEyLjktNi40LTEyLjkgNi40Yy0xMi42IDYuMy0yNi41IDkuNi00MC41IDkuNi0zLjYgMC03LjEtLjItMTAuNi0uNmwwIC42YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMTYwIDAgMC02NGMwLTIzLjcgMTIuOS00NC40IDMyLTU1LjQgOS40LTUuNCAyMC4zLTguNiAzMi04LjZsMC0xNmMwLTI2LjUgMjEuNS00OCA0OC00OCA4LjggMCAxNiA3LjIgMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTkuN2MwLTQ4LjItMzAuOC05MS03Ni42LTEwNi4zbC04LjUtMi44Yy04LTIuNy0xMi42LTExLjEtMTAuNC0xOS4zczEwLjMtMTMuMiAxOC42LTExLjZsMTkuOSA0QzU3NiA4Ni4xIDY0MCAxNjQuMiA2NDAgMjU0LjlsMCAxLjEgMCAwYzAgMTIzLjctMTAwLjMgMjI0LTIyNCAyMjRsLTE2MC42IDBDMTMyIDQ4MCAzMiAzODAgMzIgMjU2LjZsMC0zOS44Yy0xMC4xLTE0LjYtMTYtMzIuMy0xNi01MS40bDAtMjEuNCAwLTEuNEM2LjcgMTM5LjMgMCAxMzAuNSAwIDEyMCAwIDEwNi43IDEwLjcgOTYgMjQgOTZsMi44IDBDNDQuOCA1OC4yIDgzLjMgMzIgMTI4IDMybDY0IDBjNDQuNyAwIDgzLjIgMjYuMiAxMDEuMiA2NGwyLjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDEwLjUtNi43IDE5LjMtMTYgMjIuNmwwIDEuNCAwIDIxLjRjMCAxLjQgMCAyLjgtLjEgNC4zIDEyLTYuMiAyNS43LTkuNiA0MC4xLTkuNmw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4IDU2LjQgMGMtMTUuMiAxNy0yNC40IDM5LjQtMjQuNCA2NGwtMzIgMGMtNDIuMyAwLTc4LjItMjcuNC05MS02NS4zLTUuMSAuOS0xMC4zIDEuMy0xNS42IDEuMy0xNC4xIDAtMjcuOS0zLjMtNDAuNS05LjZ6TTk2IDEyOGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTExMiAxNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwelwiXVxufTtcbnZhciBmYUNpcmNsZUNoZXZyb25MZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1jaGV2cm9uLWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImNoZXZyb24tY2lyY2xlLWxlZnRcIl0sIFwiZjEzN1wiLCBcIk01MTIgMjU2YTI1NiAyNTYgMCAxIDAgLTUxMiAwIDI1NiAyNTYgMCAxIDAgNTEyIDB6TTI3MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC04NyA4NyA4NyA4N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDE2NyAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDI3MSAxMzV6XCJdXG59O1xudmFyIGZhQ2hldnJvbkNpcmNsZUxlZnQgPSBmYUNpcmNsZUNoZXZyb25MZWZ0O1xudmFyIGZhQ2lyY2xlUXVlc3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXF1ZXN0aW9uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjIxMDgsIFwicXVlc3Rpb24tY2lyY2xlXCJdLCBcImYwNTlcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzM2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgNDcuMi0zNiA2Ny4yLTU2IDc0LjVsMCAzLjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LjFjMC0yMC41IDE0LjgtMzUuMiAzMC4xLTQwLjIgNi40LTIuMSAxMy4yLTUuNSAxOC4yLTEwLjMgNC4zLTQuMiA3LjctMTAgNy43LTE5LjYgMC0xNy43LTE0LjMtMzItMzItMzJ6TTIyNCAzNjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG52YXIgZmFRdWVzdGlvbkNpcmNsZSA9IGZhQ2lyY2xlUXVlc3Rpb247XG52YXIgZmFXYWxraWVUYWxraWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2Fsa2llLXRhbGtpZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjhlZlwiLCBcIk04OC0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDcyIDQ4IDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwzMiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MC45YzAgOS45LTIuMyAxOS43LTYuOCAyOC42bC0yMC4yIDQwLjRjLTMuMyA2LjctNS4xIDE0LTUuMSAyMS41bDAgODQuN2MwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtODQuN2MwLTcuNS0xLjctMTQuOC01LjEtMjEuNUw2LjggMzAxLjVDMi4zIDI5Mi42IDAgMjgyLjggMCAyNzIuOUwwIDExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NGwxNiAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTMyIDE3NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwelwiXVxufTtcbnZhciBmYVVzZXJHcm91cCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWdyb3VwJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MTAxLCBcInVzZXItZnJpZW5kc1wiXSwgXCJmNTAwXCIsIFwiTTY0IDEyOGExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwek0wIDQ2NGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NnMxNzYgNzguOCAxNzYgMTc2bDAgNmMwIDIzLjItMTguOCA0Mi00MiA0Mkw0MiA1MTJjLTIzLjIgMC00Mi0xOC44LTQyLTQybDAtNnpNNDMyIDY0YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0wIDI0MGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGwwIDIyLjRjMCAyMy0xOC42IDQxLjYtNDEuNiA0MS42bC0xNDQuOCAwYzYuNi0xMi41IDEwLjQtMjYuOCAxMC40LTQybDAtNmMwLTUxLjUtMTcuNC05OC45LTQ2LjUtMTM2LjcgMjIuNi0xNC43IDQ5LjYtMjMuMyA3OC41LTIzLjN6XCJdXG59O1xudmFyIGZhVXNlckZyaWVuZHMgPSBmYVVzZXJHcm91cDtcbnZhciBmYUhvdXNlQ2hpbW5leSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1jaGltbmV5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjM0OTksIFwiaG9tZS1sZ1wiXSwgXCJlM2FmXCIsIFwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yNDAgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDEyOCAwIDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDB6XCJdXG59O1xudmFyIGZhSG9tZUxnID0gZmFIb3VzZUNoaW1uZXk7XG52YXIgZmFSaWdodEZyb21CcmFja2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JpZ2h0LWZyb20tYnJhY2tldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2lnbi1vdXQtYWx0XCJdLCBcImYyZjVcIiwgXCJNNTA1IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwzNjEgOTVjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzIwIDEwMi4zIDMyMCAxMTJsMCA4MC0xMTIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMTIgMCAwIDgwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMkw1MDUgMjczek0xNjAgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMzJDNDMgMzIgMCA3NSAwIDEyOEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDB6XCJdXG59O1xudmFyIGZhU2lnbk91dEFsdCA9IGZhUmlnaHRGcm9tQnJhY2tldDtcbnZhciBmYUZpbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZScsXG4gIGljb246IFszODQsIDUxMiwgWzEyODE5NiwgMTI4NDU5LCA2MTQ2Ml0sIFwiZjE1YlwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2elwiXVxufTtcbnZhciBmYVBsYW5lU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtc2xhc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUwNjlcIiwgXCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTgzLjQtMTgzLjQgNy4xLTcuNyAxMjcuMyAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2cy0yNS4xLTU2LTU2LTU2TDM5Mi43IDIwMCAyMzMuNSAyNi40QzIyNy41IDE5LjggMjE4LjkgMTYgMjA5LjkgMTZsLTQzLjcgMGMtMTAuOSAwLTE4LjYgMTAuNy0xNS4yIDIxLjFMMTc1LjEgMTA5LjIgNDEtMjQuOXpNMTMwLjIgMjAwbC0yNC42IDAtNTIuOC02NmMtMy0zLjgtNy42LTYtMTIuNS02bC0xOS44IDBjLTEwLjQgMC0xOCA5LjgtMTUuNSAxOS45TDMyIDI1NiA1IDM2NC4xQzIuNCAzNzQuMiAxMC4xIDM4NCAyMC41IDM4NGwxOS44IDBjNC45IDAgOS41LTIuMiAxMi41LTZsNTIuOC02NiA5OS43IDAtNTQuMyAxNjIuOWMtMy41IDEwLjQgNC4zIDIxLjEgMTUuMiAyMS4xbDQzLjcgMGM5IDAgMTcuNS0zLjggMjMuNi0xMC40TDMyMC43IDM5MC41IDEzMC4yIDIwMHpcIl1cbn07XG52YXIgZmFDbG91ZFNob3dlcnNIZWF2eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1zaG93ZXJzLWhlYXZ5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzQwXCIsIFwiTTk2IDMyMGMtNTMgMC05Ni00My05Ni05NiAwLTQyLjUgMjcuNi03OC42IDY1LjktOTEuMi0xLjMtNi43LTEuOS0xMy43LTEuOS0yMC44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyIDQzLjEgMCA4MC41IDI0LjMgOTkuMiA2MCAxNC43LTE3LjEgMzYuNS0yOCA2MC44LTI4IDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNS41LS42IDEwLjgtMS42IDE2IC41IDAgMS4xIDAgMS42IDAgNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZMOTYgMzIwem02LjggNzkuNmwtMzIgOTZDNjYuNiA1MDguMiA1MyA1MTUgNDAuNCA1MTAuOFMyMSA0OTMgMjUuMiA0ODAuNGwzMi05NkM2MS40IDM3MS44IDc1IDM2NSA4Ny42IDM2OS4yUzEwNyAzODcgMTAyLjggMzk5LjZ6bTEyMCAwbC0zMiA5NmMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMlMxNDEgNDkzIDE0NS4yIDQ4MC40bDMyLTk2YzQuMi0xMi42IDE3LjgtMTkuNCAzMC40LTE1LjJTMjI3IDM4NyAyMjIuOCAzOTkuNnptMTEyIDBsLTMyIDk2Yy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4yUzI1MyA0OTMgMjU3LjIgNDgwLjRsMzItOTZjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjQtMTUuMlMzMzkgMzg3IDMzNC44IDM5OS42em0xMjAgMGwtMzIgOTZjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJTMzczIDQ5MyAzNzcuMiA0ODAuNGwzMi05NmM0LjItMTIuNiAxNy44LTE5LjQgMzAuNC0xNS4yUzQ1OSAzODcgNDU0LjggMzk5LjZ6XCJdXG59O1xudmFyIGZhUGVyc29uRmFsbGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tZmFsbGluZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU0NlwiLCBcIk0zMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1LjRjMCA0NS0yMy42IDg2LjYtNjIuMSAxMDkuOGwtNC42IDIuOEMxMzEuNCAxODQuNyA5NiAyNDcuMSA5NiAzMTQuNkw5NiAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY5LjRjMC0xNi43IDMuMy0zMyA5LjQtNDhMMzU5LjIgNTAwLjJjMTEuMSAxMy43IDMxLjMgMTUuOCA0NSA0LjdzMTUuOC0zMS4zIDQuNy00NUwyOTUuMiAzMjAgNDAwIDMyMCA0MzguNCAzNzEuMmMxMC42IDE0LjEgMzAuNyAxNyA0NC44IDYuNHMxNy0zMC43IDYuNC00NC44bC00My4yLTU3LjZDNDM3LjMgMjYzLjEgNDIzLjEgMjU2IDQwOCAyNTZsLTg5IDAtNjIuOS03NS41YzQwLjMtMzYgNjMuOS04Ny45IDYzLjktMTQzLjFsMC01LjR6TTEwNCAxNDRhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6XCJdXG59O1xudmFyIGZhVHVybkRvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHVybi1kb3duJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTA1NDksIFwibGV2ZWwtZG93bi1hbHRcIl0sIFwiZjNiZVwiLCBcIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMzMi45IDMyMCAzMjAgMzIwbC02NCAwIDAtMTYwQzI1NiA3MS42IDE4NC40IDAgOTYgMEwzMiAwQzE0LjMgMCAwIDE0LjMgMCAzMkwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjAtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsMTI4IDEyOHpcIl1cbn07XG52YXIgZmFMZXZlbERvd25BbHQgPSBmYVR1cm5Eb3duO1xudmFyIGZhVXBSaWdodEFuZERvd25MZWZ0RnJvbUNlbnRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1cC1yaWdodC1hbmQtZG93bi1sZWZ0LWZyb20tY2VudGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJleHBhbmQtYWx0XCJdLCBcImY0MjRcIiwgXCJNMzQ0IDBMNDg4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0zMi0zMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODctMzktMzljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTMzM0LjMgMCAzNDQgMHpNMTY4IDUxMkwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDAgMzQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMlMzNC4xIDMyMC4yIDQxIDMyN2wzOSAzOSA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwzMiAzMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODcgODcgMzkgMzljNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMlMxNzcuNyA1MTIgMTY4IDUxMnpcIl1cbn07XG52YXIgZmFFeHBhbmRBbHQgPSBmYVVwUmlnaHRBbmREb3duTGVmdEZyb21DZW50ZXI7XG52YXIgZmFVc2VyVGFnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItdGFnJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTA3XCIsIFwiTTI1Ni4xIDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNCAzMDRsNTkuNCAwYzYuNyAwIDEzLjIgLjQgMTkuNyAxLjEtLjkgNC45LTEuNCA5LjktMS40IDE1bDAgOTIuMWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOWwzMS45IDMxLjktMjg2LjMgMGMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjN6TTM1Mi4xIDQxMi4ybDAtOTIuMWMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5Mi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw5NiA5NmMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOWwtNzYuMSA3Ni4xYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMGwtOTYtOTZjLTktOS0xNC4xLTIxLjItMTQuMS0zMy45em0xMDQtNDQuMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwelwiXVxufTtcbnZhciBmYUhhbmRTcGFya2xlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXNwYXJrbGVzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMDVkXCIsIFwiTTMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xNzZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE3NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzguMmMtMTkuMiA1LjQtMzQuNyAyMC40LTQwLjQgNDAuM2wtNi41IDIyLjctMjIuNyA2LjVjLTI1LjIgNy4yLTQyLjUgMzAuMi00Mi41IDU2LjQgMCAyMi4xIDEyLjQgNDIgMzEuNCA1MS45LTI3LjUgMTcuOC02MC4yIDI4LjEtOTUuNCAyOC4xbC0xOS4yIDBjLTU5LjYgMC0xMTYuOS0yMi45LTE2MC02NEw3Ni40IDM0MWMtMTYtMTUuMi0xNi42LTQwLjYtMS40LTU2LjZzNDAuNi0xNi42IDU2LjYtMS40bDYwLjUgNTcuNmMwLTEuNS0uMS0zLjEtLjEtNC42bDAtMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTIwOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTcuMyAzMjYuNmMtMS4xLTMuOS00LjctNi42LTguNy02LjZzLTcuNiAyLjctOC43IDYuNmwtNy4zIDI1LjQtMjUuNCA3LjNjLTMuOSAxLjEtNi42IDQuNy02LjYgOC43czIuNyA3LjYgNi42IDguN2wyNS40IDcuMyA3LjMgMjUuNGMxLjEgMy45IDQuNyA2LjYgOC43IDYuNnM3LjYtMi43IDguNy02LjZsNy4zLTI1LjQgMjUuNC03LjNjMy45LTEuMSA2LjYtNC43IDYuNi04LjdzLTIuNy03LjYtNi42LTguN2wtMjUuNC03LjMtNy4zLTI1LjR6TTEwNCAxMjBsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkwxMDQgMTY4IDkwLjIgMjE2LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1NiAxNjggNy43IDE1NC4yQzMuMSAxNTIuOSAwIDE0OC43IDAgMTQ0czMuMS04LjkgNy43LTEwLjJMNTYgMTIwIDY5LjggNzEuN0M3MS4xIDY3LjEgNzUuMyA2NCA4MCA2NHM4LjkgMy4xIDEwLjIgNy43TDEwNCAxMjB6TTU4NCA0MDhsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkw1ODQgNDU2IDU3MC4yIDUwNC4zYy0xLjMgNC42LTUuNSA3LjctMTAuMiA3LjdzLTguOS0zLjEtMTAuMi03LjdMNTM2IDQ1NiA0ODcuNyA0NDIuMmMtNC42LTEuMy03LjctNS41LTcuNy0xMC4yczMuMS04LjkgNy43LTEwLjJMNTM2IDQwOCA1NDkuOCAzNTkuN2MxLjMtNC42IDUuNS03LjcgMTAuMi03LjdzOC45IDMuMSAxMC4yIDcuN0w1ODQgNDA4elwiXVxufTtcbnZhciBmYUFycm93c1RvRG90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy10by1kb3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0YmVcIiwgXCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlsLTY0IDY0Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNjQtNjRjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45UzE3OS4xIDY0IDE5MiA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2OS40IDM5My40bDY0LTY0YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDY0IDY0YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMzMi45IDQ0OCAzMjAgNDQ4bC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOXpNMzIgMjI0bDMyIDAgMC0zMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC02NCA2NGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTNjQgMzMyLjkgNjQgMzIwbDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTNDQ4IDE3OS4xIDQ0OCAxOTJsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTY0LTY0ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFGYWNlU2FkQ3J5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2Utc2FkLWNyeScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU1NywgXCJzYWQtY3J5XCJdLCBcImY1YjNcIiwgXCJNMzUyIDQ5My40Yy0yOS42IDEyLTYyLjEgMTguNi05NiAxOC42cy02Ni40LTYuNi05Ni0xOC42TDE2MCAyOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzEuN0M0NC40IDQyMS42IDAgMzQ0IDAgMjU2IDAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NmMwIDg4LTQ0LjQgMTY1LjYtMTEyIDIxMS43TDQwMCAyOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxOTcuNHpNMTUyIDE5NmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE3MiAyMGMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpcIl1cbn07XG52YXIgZmFTYWRDcnkgPSBmYUZhY2VTYWRDcnk7XG52YXIgZmFEb25nU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb25nLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxNjlcIiwgXCJNMjg4LTE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgNzIuMmMtMjIuOS0xNS4zLTUwLjQtMjQuMi04MC0yNC4yLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0Uzk2LjUgNDMyIDE3NiA0MzJjMzAgMCA1Ny44LTkuMSA4MC44LTI0LjggMy4zIDE0LjIgMTYgMjQuOCAzMS4yIDI0LjggMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMDQgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek05NiAyODhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek0yNCA0NjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzM2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgNDY0elwiXVxufTtcbnZhciBmYVBlb3BsZUxpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVvcGxlLWxpbmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MzRcIiwgXCJNMjg4IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bTk2IDMxMmMwIDI1LTEyLjcgNDctMzIgNTkuOWwwIDQ0LjEtMTI4IDAgMC00NC4xQzIwNC43IDM1OSAxOTIgMzM3IDE5MiAzMTJsMC00MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgNDB6bTE2IDEwNGwwLTI3LjNjMTkuOS0yMi41IDMyLTUyLjIgMzItODQuN2wwLTMyYzAtMjYuNy03LjMtNTEuNi0xOS45LTczLjEgMTEuMS00LjUgMjMuMi02LjkgMzUuOS02LjkgNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDQwLjYtMTEyIDB6TTY0IDM3NS40QzQ0LjkgMzY0LjQgMzIgMzQzLjcgMzIgMzIwbDAtMzJjMC01MyA0My05NiA5Ni05NiAxMi43IDAgMjQuOCAyLjUgMzUuOSA2LjktMTIuNiAyMS40LTE5LjkgNDYuNC0xOS45IDczLjFsMCAzMmMwIDMyLjUgMTIuMSA2Mi4xIDMyIDg0LjdsMCAyNy4zLTExMiAwIDAtNDAuNnpNMTI4IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0zMjAgMGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMjQgNDY0bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIl1cbn07XG52YXIgZmFTcXVhcmVSc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXJzcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wicnNzLXNxdWFyZVwiXSwgXCJmMTQzXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDEzNmMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMzcgMCAyNDggMTExIDI0OCAyNDggMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTAuNS04OS41LTIwMC0yMDAtMjAwLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDgzLjkgMCAxNTIgNjguMSAxNTIgMTUyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDEyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwiXVxufTtcbnZhciBmYVJzc1NxdWFyZSA9IGZhU3F1YXJlUnNzO1xudmFyIGZhQ2FsZW5kYXJNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1taW51cycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI3MlwiLCBcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTI0IDI2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6XCJdXG59O1xudmFyIGZhQ2hhcnREaWFncmFtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYXJ0LWRpYWdyYW0nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU2OTVcIiwgXCJNODAgMzJDNTMuNSAzMiAzMiA1My41IDMyIDgwczIxLjUgNDggNDggNDhsMTUyIDAgMCA0MC00OCA0OC03MiAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDY0LTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTggMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDcyIDAgNDggNDggMCA0MC04IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04IDAgMC00MCA0OC00OCA3MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNjQtOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOCAwIDAtNjRjMC0zOS44LTMyLjItNzItNzItNzJsLTcyIDAtNDgtNDggMC00MCAxNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw4MCAzMnpcIl1cbn07XG52YXIgZmFGYWNlVGlyZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS10aXJlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU1NSwgXCJ0aXJlZFwiXSwgXCJmNWM4XCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuNyAzMjguN2MyMi0yMiA1My45LTQwLjcgOTEuMy00MC43czY5LjMgMTguNyA5MS4zIDQwLjdjMTEuMSAxMS4xIDIwLjEgMjMuNCAyNi40IDM1LjQgNi4yIDExLjcgMTAuMyAyNC40IDEwLjMgMzUuOSAwIDUuMi0yLjYgMTAuMi02LjkgMTMuMnMtOS44IDMuNy0xNC43IDEuOGwtMjAuNS03LjdjLTI2LjktMTAuMS01NS41LTE1LjMtODQuMy0xNS4zbC0zLjIgMGMtMjguOCAwLTU3LjMgNS4yLTg0LjMgMTUuM0wxNDkuNiA0MTVjLTQuOSAxLjgtMTAuNCAxLjItMTQuNy0xLjhTMTI4IDQwNS4yIDEyOCA0MDBjMC0xMS42IDQuMi0yNC4yIDEwLjMtMzUuOSA2LjMtMTIgMTUuMy0yNC4zIDI2LjQtMzUuNHpNMTIyLjYgMTU5LjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXpcIl1cbn07XG52YXIgZmFUaXJlZCA9IGZhRmFjZVRpcmVkO1xudmFyIGZhSGFuZFBvaW50UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1wb2ludC1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBhNFwiLCBcIk00ODAgOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIwOCAwIDAtNjQgMjA4IDB6TTMyMCAyODhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMHptNjQtNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMjg4IDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwem0tODgtOTZsLjYgMGMtNS40IDkuNC04LjYgMjAuMy04LjYgMzIgMCAxMy4yIDQgMjUuNCAxMC44IDM1LjYtMjQuOSA4LjctNDIuOCAzMi41LTQyLjggNjAuNCAwIDExLjcgMy4xIDIyLjYgOC42IDMybC04LjYgMEM3MS42IDQ0OCAwIDM3Ni40IDAgMjg4bDAtNjEuN2MwLTQyLjQgMTYuOS04My4xIDQ2LjktMTEzLjFsMTEuNi0xMS42QzgyLjUgNzcuNSAxMTUuMSA2NCAxNDkgNjRsMjcgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDg4YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwbDAtNTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA1NmMwIDM5LjggMzIuMiA3MiA3MiA3MnpcIl1cbn07XG52YXIgZmFBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXVwJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbODU5M10sIFwiZjA2MlwiLCBcIk0yMTQuNiAxNy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTE3LjMgMTYwIDQ4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcwLjcgMTA1LjQgMTA1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHpcIl1cbn07XG52YXIgZmFDdWJlc1N0YWNrZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3ViZXMtc3RhY2tlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRlNlwiLCBcIk0xOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0em0zMiAzNTJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xOTIgMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTMyMCAxOTJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tMTgyLjYtMy45YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDQ1LjMgNDUuM2MxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNDUuMyA0NS4zYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEw5Mi4xIDI3OC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w0NS4zLTQ1LjN6TTMyIDM4NGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xudmFyIGZhQ2hpbGRDb21iYXRhbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hpbGQtY29tYmF0YW50JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJjaGlsZC1yaWZsZVwiXSwgXCJlNGUwXCIsIFwiTTE3Ni41IDEyOGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTE2IDM1MmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTkyLjIgMjAuOSAzMy4yYzkuNCAxNSAyOS4yIDE5LjQgNDQuMSAxMHMxOS40LTI5LjIgMTAtNDQuMWwtMzkuOS02My4zQzI2Ni44IDE4NCAyMjMuMyAxNjAgMTc2LjUgMTYwUzg2LjIgMTg0IDYxLjMgMjIzLjZMMjEuNCAyODdjLTkuNCAxNS00LjkgMzQuNyAxMCA0NC4xczM0LjcgNC45IDQ0LjEtMTBsMjAuOS0zMy4yIDAgMTkyLjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpNNDQ4LjUgMGwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwwIDEwMC4zYy05LjYgNS41LTE2IDE1LjktMTYgMjcuN2wwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwIDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2bDU5LjUgMGMxMC40IDAgMTgtOS44IDE1LjUtMTkuOWwtMjMtOTIuMSA0NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNDggMCAwLTI2LjcgNTMuMS0xNy43YzYuNS0yLjIgMTAuOS04LjMgMTAuOS0xNS4ybDAtODQuNWMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDU2LTE2IDUuMyAwLTEwOS4zYzAtMTEuOC02LjQtMjIuMi0xNi0yNy43bDAtMTE2LjNjMC04LjgtNy4yLTE2LTE2LTE2elwiXVxufTtcbnZhciBmYUNoaWxkUmlmbGUgPSBmYUNoaWxkQ29tYmF0YW50O1xudmFyIGZhVmVzdFBhdGNoZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmVzdC1wYXRjaGVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMDg2XCIsIFwiTTIwMCAyOTMuOUwyMDAgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAyNzAuNWMwLTkuNSAyLjgtMTguNyA4LjEtMjYuNmw0Ny45LTcxLjhjNS4zLTcuOSA4LjEtMTcuMSA4LjEtMjYuNkw2NCA0OEM2NCAyMS41IDg1LjUgMCAxMTIgMGwzLjUgMGMuMyAwIC42IDAgMSAwIC42IDAgMS4yIDAgMS44IDAgMTguOCAwIDM0LjEgOS43IDQ0LjEgMTguOCA5LjMgOC40IDI4LjUgMjEuMiA2MS43IDIxLjJzNTIuNC0xMi44IDYxLjctMjEuMmMxMC05LjEgMjUuMy0xOC44IDQ0LjEtMTguOCAuNiAwIDEuMiAwIDEuOCAwIC4zIDAgLjYgMCAxIDBMMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5Ny41YzAgOS41IDIuOCAxOC43IDguMSAyNi42bDQ3LjkgNzEuOGM1LjMgNy45IDguMSAxNy4xIDguMSAyNi42TDQ0OCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEwNCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3MC4xYzAtMy45IC41LTcuOCAxLjQtMTEuNkwzMDMuNiA2NS40QzI4NS45IDc3LjIgMjU5LjggODggMjI0IDg4cy02MS45LTEwLjgtNzkuNi0yMi42bDU0LjIgMjE2LjhjMSAzLjggMS40IDcuNyAxLjQgMTEuNnpNOTYgNDU2YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpNNjMuNSAyNTUuNWMtNC43IDQuNy00LjcgMTIuMyAwIDE3TDc5IDI4OCA2My41IDMwMy41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdzMTIuMyA0LjcgMTcgMEw5NiAzMDUgMTExLjUgMzIwLjVjNC43IDQuNyAxMi4zIDQuNyAxNyAwczQuNy0xMi4zIDAtMTdMMTEzIDI4OCAxMjguNSAyNzIuNWM0LjctNC43IDQuNy0xMi4zIDAtMTdzLTEyLjMtNC43LTE3IDBMOTYgMjcxIDgwLjUgMjU1LjVjLTQuNy00LjctMTIuMy00LjctMTcgMHpNMzA0IDI4MGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0elwiXVxufTtcbnZhciBmYU1hcnRpbmlHbGFzc0VtcHR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcnRpbmktZ2xhc3MtZW1wdHknLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImdsYXNzLW1hcnRpbmlcIl0sIFwiZjAwMFwiLCBcIk0zMiAzMkMxOS4xIDMyIDcuNCAzOS44IDIuNCA1MS44Uy4yIDc3LjUgOS40IDg2LjZsMjE0LjYgMjE0LjYgMCAxNDYuNy02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtMTQ2LjcgMjE0LjYtMjE0LjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzIgNDgwIDMyTDMyIDMyek0yNTYgMjQyLjdMMTA5LjMgOTYgNDAyLjcgOTYgMjU2IDI0Mi43elwiXVxufTtcbnZhciBmYUdsYXNzTWFydGluaSA9IGZhTWFydGluaUdsYXNzRW1wdHk7XG52YXIgZmFNYWduZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFnbmV0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI5NTIyXSwgXCJmMDc2XCIsIFwiTTAgMTc2TDAgMjg4QzAgNDExLjcgMTAwLjMgNTEyIDIyNCA1MTJTNDQ4IDQxMS43IDQ0OCAyODhsMC0xMTItMTI4IDAgMCAxMTJjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0xMTItMTI4IDB6bTAtNDhsMTI4IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0bDAgNjR6bTMyMCAwbDEyOCAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjR6XCJdXG59O1xudmFyIGZhUm9hZEJhcnJpZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncm9hZC1iYXJyaWVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTYyXCIsIFwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCAyNjYuMyAxNDkuMiA5NiA2NCA5NiA2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDA1LjIgOTZsLTc0LjMgMC01LjQgMTAuNy05MC42IDE4MS4zIDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zek0zNjIuOCAyODhsNzQuMyAwIDUuNC0xMC43IDkwLjYtMTgxLjMtNzQuMyAwLTUuNCAxMC43LTkwLjYgMTgxLjN6TTIwMi44IDk2bC01LjQgMTAuNy05MC42IDE4MS4zIDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zLTc0LjMgMHptMjg4IDE5Mmw4NS4yIDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUzLjctODUuMiAxNzAuM3pcIl1cbn07XG52YXIgZmFDb21wYXNzRHJhZnRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tcGFzcy1kcmFmdGluZycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZHJhZnRpbmctY29tcGFzc1wiXSwgXCJmNTY4XCIsIFwiTTk5LjMgMjU2LjFsNjkuNC0xMTkuOWMtNS42LTEyLjItOC44LTI1LjgtOC44LTQwLjIgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDE0LjMtMy4xIDI3LjktOC44IDQwLjJsNDQuNCA3Ni43Yy0yMy4xIDI2LTUzLjcgNDUuMS04OC40IDUzLjhMMjU2IDE5MS45IDE4Ny45IDMwOS41YzIxLjUgNi44IDQ0LjMgMTAuNSA2OC4xIDEwLjUgNzAuNyAwIDEzMy44LTMyLjcgMTc0LjktODQgMTEuMS0xMy44IDMxLjItMTYgNDUtNXMxNiAzMS4yIDUgNDVjLTUyLjcgNjUuOC0xMzMuOSAxMDgtMjI0LjggMTA4LTM1LjQgMC02OS40LTYuNC0xMDAuNy0xOC4xTDk4LjcgNDYzLjdDOTQgNDcxLjggODcgNDc4LjQgNzguNiA0ODIuNkwyMy4yIDUxMC4zYy01IDIuNS0xMC45IDIuMi0xNS42LS43UzAgNTAxLjUgMCA0OTZsMC01NS40YzAtOC40IDIuMi0xNi43IDYuNS0yNC4xbDYwLTEwMy43Yy0xMi44LTExLjItMjQuNi0yMy41LTM1LjMtMzYuOC0xMS4xLTEzLjgtOC44LTMzLjkgNS00NXMzMy45LTguOCA0NSA1YzUuNyA3LjEgMTEuOCAxMy44IDE4LjIgMjAuMXpNMzgxLjEgNDA3LjljMzIuNS0xMyA2Mi40LTMxIDg4LjktNTIuOWwzNS42IDYxLjVjNC4yIDcuMyA2LjUgMTUuNiA2LjUgMjQuMWwwIDU1LjRjMCA1LjUtMi45IDEwLjctNy42IDEzLjZzLTEwLjYgMy4yLTE1LjYgLjdsLTU1LjQtMjcuN2MtOC40LTQuMi0xNS40LTEwLjgtMjAuMS0xOC45bC0zMi4zLTU1Ljh6TTI1NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbnZhciBmYURyYWZ0aW5nQ29tcGFzcyA9IGZhQ29tcGFzc0RyYWZ0aW5nO1xudmFyIGZhU3F1YXJlUGVyc29uQ29uZmluZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXBlcnNvbi1jb25maW5lZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTU3N1wiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem05NiAxMTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptODAgMTA0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMDIuMWMwIDM2LjQtMjkuNSA2NS45LTY1LjkgNjUuOS0xNy41IDAtMzQuMy02LjktNDYuNi0xOS4zbC01NC43LTU0LjctMjguMSA1Ni4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDQ4LTk2YzQuNi05LjIgMTMuMy0xNS42IDIzLjUtMTcuM3MyMC41IDEuNyAyNy44IDlsNDEuNCA0MS40IDAtNTguN3pcIl1cbn07XG52YXIgZmFQbGF0ZVdoZWF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYXRlLXdoZWF0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTVhXCIsIFwiTTE3NiAzMmM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnpNNTYgNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNDIuNyA2NCA1NiA2NHpNMjQgMTM2bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDE4NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjcyIDQ4YzAtOC44IDcuMi0xNiAxNi0xNiA0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2ek00MDAgMzJjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNmMwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2MGwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDE3NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MC04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODAgOC44IDAgMTYgNy4yIDE2IDE2ek0zLjUgMzQ3LjZDMS42IDMzMi45IDEzIDMyMCAyNy44IDMyMGw0NTYuNCAwYzE0LjggMCAyNi4yIDEyLjkgMjQuNCAyNy42LTYuMyA1MC4yLTQ0LjQgODkuNC05Mi42IDk4LjRsMCAyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yYy00OC4yLTktODYuMy00OC4yLTkyLjUtOTguNHpcIl1cbn07XG52YXIgZmFTaWduSGFuZ2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaWduLWhhbmdpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNpZ25cIl0sIFwiZjRkOVwiLCBcIk05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM1MiAwIDAgMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzUyLTMyIDBDMTQuMyAxMjggMCAxMTMuNyAwIDk2UzE0LjMgNjQgMzIgNjRsMzIgMCAwLTMyQzY0IDE0LjMgNzguMyAwIDk2IDB6TTIwOCAxNzZsMjQwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNDRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI0MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE0NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG52YXIgZmFTaWduID0gZmFTaWduSGFuZ2luZztcbnZhciBmYUNhckJhdHRlcnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyLWJhdHRlcnknLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImJhdHRlcnktY2FyXCJdLCBcImY1ZGZcIiwgXCJNODAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDE2IDB6TTM5MiAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMi0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzIgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMCAwLTMyek02NCAyNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggMjE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpcIl1cbn07XG52YXIgZmFCYXR0ZXJ5Q2FyID0gZmFDYXJCYXR0ZXJ5O1xudmFyIGZhU2hpcnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hpcnQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjgwODUsIFwidC1zaGlydFwiLCBcInRzaGlydFwiXSwgXCJmNTUzXCIsIFwiTTMyMC4yIDExMmM0NC4yIDAgODAtMzUuOCA4MC04MGw1My41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNjE3LjYgMTY5LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTUwLjcgNTAuN2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNCAwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTkyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjI0LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMMjIuOSAyMTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMTQxLjUgNTAuN2MxMi0xMiAyOC4zLTE4LjcgNDUuMy0xOC43bDUzLjUgMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHpcIl1cbn07XG52YXIgZmFUU2hpcnQgPSBmYVNoaXJ0O1xudmFyIGZhVHNoaXJ0ID0gZmFTaGlydDtcbnZhciBmYVBhcmFncmFwaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXJhZ3JhcGgnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxODJdLCBcImYxZGRcIiwgXCJNMTYwIDBMNDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00MTYtNDggMCAwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MC00OCAwQzcxLjYgMzIwIDAgMjQ4LjQgMCAxNjBTNzEuNiAwIDE2MCAwelwiXVxufTtcbnZhciBmYUVudmVsb3Blc0J1bGsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZW52ZWxvcGVzLWJ1bGsnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcIm1haWwtYnVsa1wiXSwgXCJmNjc0XCIsIFwiTTExMiAwQzg1LjUgMCA2NCAyMS41IDY0IDQ4bDAgMTYwIDgwIDAgMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDIwOCAwIDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTEyIDB6TTI0MCAxMjhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzIgODAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMTEyIDE2MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yODggMHptMjAwIDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDggMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEwLjQgMTU2LjYgODYuMmMxLjEgLjYgMi4yIC45IDMuNCAuOXMyLjQtLjMgMy40LS45TDMyMCAzMTQuNCAzMjAgMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDI1NnpNMzIwIDM2OS4yTDE4Ni42IDQ0Mi42Yy04LjEgNC41LTE3LjMgNi44LTI2LjYgNi44cy0xOC40LTIuNC0yNi42LTYuOEwwIDM2OS4yIDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTQuOHpcIl1cbn07XG52YXIgZmFNYWlsQnVsayA9IGZhRW52ZWxvcGVzQnVsaztcbnZhciBmYUd1aXRhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdndWl0YXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3YTZcIiwgXCJNNDY1IDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDM4MyA1NWMtMi40IDIuNC00LjMgNS4zLTUuNSA4LjVsLTE1LjQgNDEtNzcuNSA3Ny42Yy00NS4xLTI5LjQtOTkuMy0zMC4yLTEzMSAxLjYtMTEgMTEtMTggMjQuNi0yMS40IDM5LjYtMy43IDE2LjYtMTkuMSAzMC43LTM2LjEgMzEuNi0yNS42IDEuMy00OS4zIDEwLjctNjcuMyAyOC42LTQ0LjggNDQuOC0zNi40IDEyNS44IDE4LjcgMTgwLjlTMTgzLjYgNTI4IDIyOC40IDQ4My4yYzE3LjktMTcuOSAyNy40LTQxLjcgMjguNi02Ny4zIC45LTE3IDE1LTMyLjMgMzEuNi0zNi4xIDE1LTMuNCAyOC42LTEwLjUgMzkuNi0yMS40IDMxLjgtMzEuOCAzMS04NS45IDEuNi0xMzFsNzcuNi03Ny42IDQxLTE1LjRjMy4yLTEuMiA2LjEtMy4xIDguNS01LjVsNDgtNDhjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMNDY1IDd6TTIwOCAyNTZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwiXVxufTtcbnZhciBmYVN1aXRjYXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1aXRjYXNlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTIzXSwgXCJmMGYyXCIsIFwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MjQgMjI0IDAgMC00MjRjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjAwIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek00MTYgOTZsMCAzODQgMzIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMzIgMHpNOTYgNDgwbDAtMzg0LTMyIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyIDB6XCJdXG59O1xudmFyIGZhQ2lyY2xlVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE0NjcsIFwiYXJyb3ctYWx0LWNpcmNsZS11cFwiXSwgXCJmMzViXCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zbDEwNCAxMDRjNC42IDQuNiA1LjkgMTEuNSAzLjUgMTcuNFMzNjYuNSAyNTYgMzYwIDI1NmwtNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTU2IDBjLTYuNSAwLTEyLjMtMy45LTE0LjgtOS45cy0xLjEtMTIuOSAzLjUtMTcuNGwxMDQtMTA0YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwiXVxufTtcbnZhciBmYUFycm93QWx0Q2lyY2xlVXAgPSBmYUNpcmNsZVVwO1xudmFyIGZhRiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTAyXSwgXCI0NlwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTI4IDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyelwiXVxufTtcbnZhciBmYVhtYXJrc0xpbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3htYXJrcy1saW5lcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU5YVwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6bTAgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNnpNNyAxNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6TTI2NSAxNjdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1ek00NTUgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwelwiXVxufTtcbnZhciBmYUVhcnRoT2NlYW5pYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlYXJ0aC1vY2VhbmlhJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJnbG9iZS1vY2VhbmlhXCJdLCBcImU0N2JcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAxNTAuNmMwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmw0MS40IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTZ6TTQzMiAyNTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQxMS4zIDM3OS4zbC0zMiAzMmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzMi0zMmM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6TTIyNCA0MzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnptLTk2LTgwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE4LjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsNDgtNDhjNC4yLTQuMiAxMC02LjYgMTYtNi42bDYuNiAwYzguOCAwIDE2IDcuMiAxNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2IDcuMi0xNiAxNi0xNmw2LjYgMGM2IDAgMTEuOCAyLjQgMTYgNi42bDQ4IDQ4YzYgNiA5LjQgMTQuMSA5LjQgMjIuNmwwIDUwLjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTUwLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTEzLjMtMTMuM2MtNi02LTE0LjEtOS40LTIyLjYtOS40TDEyOCAzNTJ6XCJdXG59O1xudmFyIGZhR2xvYmVPY2VhbmlhID0gZmFFYXJ0aE9jZWFuaWE7XG52YXIgZmFDb21tZW50U2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudC1zbGFzaCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjRiM1wiLCBcIk00MS0yNUMzMS42LTM0LjMgMTYuNC0zNC4zIDctMjVTLTIuMy0uNCA3IDlMNTM1IDUzN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjYtOTYuNmM0NC40LTQzLjIgNzEuNi0xMDEuOCA3MS42LTE2Ni41IDAtMTMyLjUtMTE0LjYtMjQwLTI1Ni0yNDAtNjMgMC0xMjAuOCAyMS40LTE2NS40IDU2LjhMNDEtMjV6bTE5LjQgMTU1QzQyLjIgMTYzIDMyIDIwMC4zIDMyIDIzOS45IDMyIDI5NC4yIDUxLjIgMzQ0LjIgODMuNiAzODQuNEwzNC44IDQ3Ni43Yy00LjggOS0zLjMgMjAgMy42IDI3LjVTNTYuMSA1MTQgNjUuNSA1MTBsMTE4LjQtNTAuN2MzMS44IDEzLjMgNjcuMSAyMC43IDEwNC4xIDIwLjcgMzYuNCAwIDcwLjktNy4xIDEwMi4zLTE5LjlMNjAuMyAxMzAuMXpcIl1cbn07XG52YXIgZmFQbGF5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYXknLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5NjU0XSwgXCJmMDRiXCIsIFwiTTkxLjIgMzYuOWMtMTIuNC02LjgtMjcuNC02LjUtMzkuNiAuN1MzMiA1Ny45IDMyIDcybDAgMzY4YzAgMTQuMSA3LjUgMjcuMiAxOS42IDM0LjRzMjcuMiA3LjUgMzkuNiAuN2wzMzYtMTg0YzEyLjgtNyAyMC44LTIwLjUgMjAuOC0zNS4xcy04LTI4LjEtMjAuOC0zNS4xbC0zMzYtMTg0elwiXVxufTtcbnZhciBmYVZpYWxDaXJjbGVDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWFsLWNpcmNsZS1jaGVjaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU5NlwiLCBcIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTYxLjRjLTY2LjEgMzAuMy0xMTIgOTcuMS0xMTIgMTc0LjYgMCAzOS43IDEyIDc2LjYgMzIuNyAxMDcuMi0xMC4zIDMuMS0yMS4zIDQuOC0zMi43IDQuOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw2NCA2NEM0Ni4zIDY0IDMyIDQ5LjcgMzIgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHptOTYgMzM2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zelwiXVxufTtcbnZhciBmYUJyaWRnZUNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWRnZS1jaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0YzlcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDggMCAwIDY0LTQwIDAgMCAxMTJjMzcuNiA5LjQgNjQgNDMuMiA2NCA4MmwwIDk0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2IDYuNCAwIDEyLjcgLjYgMTguNyAxLjggMzQuNy00OS41IDkyLjItODEuOCAxNTcuMy04MS44IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNC00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41elwiXVxufTtcbnZhciBmYUNlZGlTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NlZGktc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTBkZlwiLCBcIk0yMzIgMzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNi41Qzg4LjggNzMuOSAxNiAxNTYuNCAxNiAyNTZTODguOCA0MzguMSAxODQgNDUzLjVsMCAyNi41YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNC42YzQ2LjgtMy43IDg5LjEtMjMuNiAxMjEuMy01My45IDEyLjktMTIuMSAxMy40LTMyLjQgMS4zLTQ1LjJzLTMyLjQtMTMuNC00NS4yLTEuM2MtMjAuNyAxOS42LTQ3LjYgMzIuNy03Ny4zIDM2LjJsMC0yNzAuMWMyOS44IDMuNSA1Ni42IDE2LjYgNzcuMyAzNi4yIDEyLjkgMTIuMSAzMy4xIDExLjUgNDUuMi0xLjNzMTEuNS0zMy4xLTEuMy00NS4yQzMyMS4xIDgwLjIgMjc4LjggNjAuMyAyMzIgNTYuNkwyMzIgMzJ6bS00OCA5MS44bDAgMjY0LjRDMTI0LjMgMzczLjggODAgMzIwLjEgODAgMjU2czQ0LjMtMTE3LjggMTA0LTEzMi4yelwiXVxufTtcbnZhciBmYVB1enpsZVBpZWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3B1enpsZS1waWVjZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTUxM10sIFwiZjEyZVwiLCBcIk0yMjQgMGMzNS4zIDAgNjQgMjEuNSA2NCA0OCAwIDEwLjQtNC40IDIwLTEyIDI3LjktNi42IDYuOS0xMiAxNS4zLTEyIDI0LjkgMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4ybDQ0LjggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ0LjhjMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4yIDkuNSAwIDE4LTUuNCAyNC45LTEyIDcuOS03LjUgMTcuNS0xMiAyNy45LTEyIDI2LjUgMCA0OCAyOC43IDQ4IDY0cy0yMS41IDY0LTQ4IDY0Yy0xMC40IDAtMjAuMS00LjQtMjcuOS0xMi02LjktNi42LTE1LjMtMTItMjQuOS0xMi0xNSAwLTI3LjIgMTIuMi0yNy4yIDI3LjJMMzg0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNTYuOCAwYy0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMiAwLTkuMiA1LjgtMTcuMyAxMy4yLTIyLjggMTEuNi04LjcgMTguOC0yMC43IDE4LjgtMzQgMC0yNi41LTI4LjctNDgtNjQtNDhzLTY0IDIxLjUtNjQgNDhjMCAxMy4zIDcuMiAyNS4zIDE4LjggMzQgNy40IDUuNSAxMy4yIDEzLjUgMTMuMiAyMi44IDAgMTIuOC0xMC40IDIzLjItMjMuMiAyMy4yTDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNDMuMmMwLTEyLjggMTAuNC0yMy4yIDIzLjItMjMuMiA5LjIgMCAxNy4zIDUuOCAyMi44IDEzLjIgOC43IDExLjYgMjAuNyAxOC44IDM0IDE4LjggMjYuNSAwIDQ4LTI4LjcgNDgtNjRzLTIxLjUtNjQtNDgtNjRjLTEzLjMgMC0yNS4zIDcuMi0zNCAxOC44LTUuNSA3LjQtMTMuNSAxMy4yLTIyLjggMTMuMi0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMkwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwxMDguOCAwYzE1IDAgMjcuMi0xMi4yIDI3LjItMjcuMiAwLTkuNS01LjQtMTgtMTItMjQuOS03LjUtNy45LTEyLTE3LjUtMTItMjcuOSAwLTI2LjUgMjguNy00OCA2NC00OHpcIl1cbn07XG52YXIgZmFIZWxtZXRVbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWxtZXQtdW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1MDNcIiwgXCJNNDc5LjUgMjI0QzQ3MS4yIDk4LjkgMzY3LjIgMCAyNDAgMCAxMDcuNSAwIDAgMTA3LjUgMCAyNDBsMCA1Ni4zQzAgMzQ0LjggMzkuMiAzODQgODcuNyAzODRsMTI3LjMgMCAxMjguNiAxMjEuNGM0LjUgNC4yIDEwLjQgNi42IDE2LjUgNi42bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg2LjUgMC0xLjUtMS41IDAtMTc0LjUgMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLS41IDB6TTMyMCA0MTcuMmwtNzgtNzMuNyAzMi40LTU1LjUgNDUuNiAwIDAgMTI5LjJ6TTI4NS4zIDEwMy4xbDM0LjcgNTIgMC00My4yYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA5NmMwIDcuMS00LjYgMTMuMy0xMS40IDE1LjNzLTE0LS42LTE3LjktNi40bC0zNC43LTUyIDAgNDMuMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTk2YzAtNy4xIDQuNi0xMy4zIDExLjQtMTUuM3MxNCAuNiAxNy45IDYuNHpNMTYwIDExMmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwiXVxufTtcbnZhciBmYUdsYXNzV2F0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2xhc3Mtd2F0ZXInLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImU0ZjRcIiwgXCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zbDE2Ni42IDBjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBMMzIgMHpNNzMgMTU2LjVsLTYuNi05Mi41IDI1MS4zIDAtNi42IDkyLjUtMjQuMiAxMi4xYy0xOS40IDkuNy00Mi4yIDkuNy02MS42IDAtMjAuOS0xMC40LTQ1LjUtMTAuNC02Ni40IDAtMTkuNCA5LjctNDIuMiA5LjctNjEuNiAwTDczIDE1Ni41elwiXVxufTtcbnZhciBmYUhlYXJ0Q2lyY2xlQm9sdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFydC1jaXJjbGUtYm9sdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRmY1wiLCBcIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFMzNjkuMiA0MTYgMzc2IDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM0OTQuOCAzODQgNDg4IDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6XCJdXG59O1xudmFyIGZhUHVtcFNvYXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncHVtcC1zb2FwJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlMDZiXCIsIFwiTTk2IDBsMCA4MCAxMjggMCAwLTI0IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzA5LjMgOCAyOTYgOGwtNzIgMCAwLThjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBDMTEwLjMtMzIgOTYtMTcuNyA5NiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDEyOHpNMjI0IDM0NGMwIDM1LjMtMjguNyA1Ni02NCA1NnMtNjQtMjAuNy02NC01NmMwLTMyLjUgMzctODAuOSA1MC45LTk3LjkgMy4yLTMuOSA4LjEtNi4xIDEzLjEtNi4xczkuOSAyLjIgMTMuMSA2LjFDMTg3IDI2My4xIDIyNCAzMTEuNSAyMjQgMzQ0elwiXVxufTtcbnZhciBmYUhhbmRTY2lzc29ycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXNjaXNzb3JzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjU3XCIsIFwiTTQwIDIwOGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxODAuMiAwYy03LjYgOC41LTEyLjIgMTkuNy0xMi4yIDMyIDAgMjUuMyAxOS41IDQ2IDQ0LjMgNDcuOS03LjcgOC41LTEyLjMgMTkuOC0xMi4zIDMyLjEgMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTExMy4xYzAtNDAuMi0xNi03OC44LTQ0LjQtMTA3LjMtMjIuOC0yMi44LTUzLjYtMzUuNi04NS44LTM1LjZMMzM2IDY0Yy0yMS4zIDAtMzkuMyAxMy45LTQ1LjYgMzMuMWw3NC41IDIzLjdjOC40IDIuNyAxMy4xIDExLjcgMTAuNCAyMC4xcy0xMS43IDEzLjEtMjAuMSAxMC40bC02Ny4xLTIxLjQgMCAuMS0yMDQtNjQuMUM2Mi45IDU5LjIgNDAuNSA3MC45IDMzLjkgOTJzNS4xIDQzLjUgMjYuMiA1MC4yTDI2OS41IDIwOCA0MCAyMDh6XCJdXG59O1xudmFyIGZhRG9sbHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG9sbHknLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImRvbGx5LWJveFwiXSwgXCJmNDcyXCIsIFwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsNzIuOSAwIDkyLjEgMjc2LjJjLTIyLjUgMTcuNi0zNyA0NS0zNyA3NS44IDAgNTMgNDMgOTYgOTYgOTYgNTIuNCAwIDk1LjEtNDIgOTYtOTQuM2wyMDIuMS02Ny40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJMMzMxLjggMzU3Yy0xNy4yLTIyLjEtNDMuOS0zNi41LTc0LTM3TDE2NS43IDQzLjhDMTU2LjkgMTcuNiAxMzIuNSAwIDEwNC45IDBMMzIgMHpNMjA4IDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0yODAuNSA4OS4zYy0yNS4yIDguMi0zOSAzNS4zLTMwLjggNjAuNWwzOS42IDEyMS43YzguMiAyNS4yIDM1LjMgMzkgNjAuNSAzMC44bDEyMS43LTM5LjZjMjUuMi04LjIgMzktMzUuMyAzMC44LTYwLjVMNDYyLjggODAuNWMtOC4yLTI1LjItMzUuMy0zOS02MC41LTMwLjhMMjgwLjUgODkuM3pcIl1cbn07XG52YXIgZmFEb2xseUJveCA9IGZhRG9sbHk7XG52YXIgZmFQYXBlcmNsaXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFwZXJjbGlwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MjA2XSwgXCJmMGM2XCIsIFwiTTIyNC42IDEyLjhjNTYuMi01Ni4yIDE0Ny40LTU2LjIgMjAzLjYgMHM1Ni4yIDE0Ny40IDAgMjAzLjZsLTE2NCAxNjRjLTM0LjQgMzQuNC05MC4xIDM0LjQtMTI0LjUgMHMtMzQuNC05MC4xIDAtMTI0LjVMMjkyLjUgMTAzLjNjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wxODUgMzAxLjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxNjQtMTY0YzMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMXMtODEuOS0zMS4yLTExMy4xIDBsLTE2NCAxNjRjLTUzLjEgNTMuMS01My4xIDEzOS4yIDAgMTkyLjNzMTM5LjIgNTMuMSAxOTIuMyAwTDQyOC4zIDI4NC4zYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMzQzLjQgNDU5LjZjLTc4LjEgNzguMS0yMDQuNyA3OC4xLTI4Mi44IDBzLTc4LjEtMjA0LjcgMC0yODIuOGwxNjQtMTY0elwiXVxufTtcbnZhciBmYURlbW9jcmF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RlbW9jcmF0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNzQ3XCIsIFwiTTY0IDMyYzAtOC45IDMuOC0yMC45IDYuMi0yNy4zIDEtMi44IDMuOC00LjcgNi44LTQuNyAxLjkgMCAzLjggLjcgNS4yIDIuMUwxMjggNDUuNyAxNzMuOCAyLjFjMS40LTEuMyAzLjItMi4xIDUuMi0yLjEgMyAwIDUuOCAxLjggNi44IDQuNyAyLjQgNi41IDYuMiAxOC40IDYuMiAyNy4zIDAgMjYuNS0yMS45IDQyLTI5LjUgNDYuNmw3Ni4yIDcyLjZjNiA1LjcgMTMuOSA4LjggMjIuMSA4LjhsMjE5LjIgMCAzMiAwYzQwLjMgMCA3OC4yIDE5IDEwMi40IDUxLjJsMTkuMiAyNS42YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOHMtMzQuMiA3LjctNDQuOC02LjRsLTE5LjItMjUuNmMtNS4zLTctMTEuOC0xMi44LTE5LjItMTdsMCA4Ny40LTM1MiAwLTQwLjQtOTQuM2MtMy45LTkuMi0xNS4zLTEyLjYtMjMuNi03bC00Mi4xIDI4Yy05LjEgNi4xLTE5LjcgOS4zLTMwLjcgOS4zbC0yIDBDMjMuOSAyNTYgMCAyMzIuMSAwIDIwMi43IDAgMTkwLjYgNC4xIDE3OC45IDExLjcgMTY5LjRMODcuNiA3NC42Qzc4LjEgNjcuNCA2NCA1My4yIDY0IDMyek01NDQgMzUybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0LTE2MCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTI4IDM1MiAwek0yNTYgMjgwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQ4LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTM2OCAyODBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwiXVxufTtcbnZhciBmYVNxdWFyZUFycm93VXBSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtYXJyb3ctdXAtcmlnaHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImV4dGVybmFsLWxpbmstc3F1YXJlXCJdLCBcImYxNGNcIiwgXCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMjcyIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NC4xIDAtMTAzIDEwM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDEwMy0xMDMgMCA1NC4xelwiXVxufTtcbnZhciBmYUV4dGVybmFsTGlua1NxdWFyZSA9IGZhU3F1YXJlQXJyb3dVcFJpZ2h0O1xudmFyIGZhRmVycnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmVycnknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZWFcIiwgXCJNMjI0IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyOC0uMSAwYy4xIC43IC4xIDEuMyAuMSAyIDAgMzAuMi03LjYgNTkuOC0yMiA4Ni4zbC0xMi43IDIzLjMtLjYgMWMtMjIuMy0xMS4zLTQ2LjUtMTYuOC03MC44LTE2LjctMzIuNSAuMi02NC45IDEwLjctOTIuNCAzMS40LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI4LjEtMjEuMS02MS4zLTMxLjYtOTQuNC0zMS40LTIzLjYgLjItNDcuMSA1LjctNjguNyAxNi43bC0uNi0xLTEyLjctMjMuM2MtMTQuNC0yNi41LTIyLTU2LjItMjItODYuMyAwLS43IDAtMS40IC4xLTJsLS4xIDAgMC0xMjhjMC00NC4yIDM1LjgtODAgODAtODBsNDggMCAwLTMyek0xNjAgMjU2bDMyMCAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNmwtMjg4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMnpNNDAzLjQgNDc2LjFDMzc5LjEgNDk0LjMgMzUxLjEgNTEyIDMyMCA1MTJzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwelwiXVxufTtcbnZhciBmYU1vc3F1aXRvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vc3F1aXRvJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTJiXCIsIFwiTTE3OC41IDQ5NS4yYy03LjUgOS42LTIxIDEyLjEtMzEuMyA1LjNTMTMzLjUgNDgwIDEzOC45IDQ2OWwxLjItMi4yIDM2LjItNTggMC00MSAuMy00Yy42LTMuOSAyLjItNy43IDQuNi0xMC45bDM5LjMtNTIuMi02Ni4yIDU5LjVjLTE3IDE1LjMtMzkgMjMuNy02MS45IDIzLjhsLTguMSAwYy00Ni42IDAtODQuNC0zNy44LTg0LjQtODQuNCAwLTQzIDMyLjQtNzkuMiA3NS4xLTgzLjlsMTMwLjUtMTQuNS00NC44LTM4LjMtMi40LTIuNGMtNS4zLTYtNy4zLTE0LjQtNS4zLTIyLjNsMTMuMy01My40LTI1LjktMzguOS0xLjMtMi4xYy01LjgtMTAuOC0yLjctMjQuNiA3LjQtMzEuNyAxMC4xLTcuMSAyMy43LTUuMSAzMS40IDQuM2wxLjUgMiAzMiA0OCAxLjQgMi4yYzIuOCA1LjMgMy41IDExLjYgMi4xIDE3LjZsLTEyLjMgNDkuMiA1My4zIDQ1LjcgMC0yOC44YzAtMTEuOCA2LjUtMjIuMSAxNi0yNy43bDAtNjAuNSAuMy0zLjNjMS41LTcuMyA4LTEyLjcgMTUuNy0xMi43czE0LjIgNS41IDE1LjcgMTIuN2wuMyAzLjIgMCA2MC41YzkuNiA1LjUgMTYgMTUuOCAxNiAyNy43bDAgMjguOSA1My40LTQ1LjgtMTIuMy00OS4yYy0xLjUtNS45LS43LTEyLjIgMi4xLTE3LjZsMS40LTIuMiAzMi00OCAxLjUtMmM3LjctOS40IDIxLjMtMTEuNSAzMS40LTQuMyAxMC4xIDcuMSAxMy4xIDIwLjkgNy40IDMxLjdsLTEuMyAyLjEtMjUuOSAzOC45IDEzLjMgNTMuNGMyIDgtLjEgMTYuMy01LjMgMjIuM2wtMi40IDIuNC00NC43IDM4LjMgMTMwLjUgMTQuNWM0Mi44IDQuOCA3NS4xIDQwLjkgNzUuMSA4My45IDAgNDYuNi0zNy44IDg0LjQtODQuNCA4NC40bC04LjEgMGMtMjIuOCAwLTQ0LjktOC41LTYxLjktMjMuOGwtNjYuMS01OS41IDM5LjIgNTIuMmMyLjQgMy4yIDQgNyA0LjYgMTAuOWwuMyA0IDAgNDEgMzYuMiA1OCAxLjIgMi4xYzUuNCAxMSAyIDI0LjctOC4zIDMxLjVzLTIzLjggNC40LTMxLjMtNS4zbC0xLjQtMi00MC02NC0xLjYtMy4xYy0xLjQtMy4xLTIuMS02LjYtMi4xLTEwLjFsMC0zOS44LTMyLjQtNDMuMSAwIDc0LjdjMCAxNy43LTE0LjMgMzItMzIgMzItMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03NC42LTMyLjMgNDMgMCAzOS44YzAgMy41LS43IDYuOS0yLjEgMTAuMWwtMS42IDMuMS00MCA2NC0xLjQgMnpcIl1cbn07XG52YXIgZmFCdWlsZGluZ0NpcmNsZUFycm93UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmctY2lyY2xlLWFycm93LXJpZ2h0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGQxXCIsIFwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNDQuN2MtMzUuNyAyLjktNjguNSAxNS42LTk2IDM1LjRsMC00YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQgMGMtMTMuOCAxOS4yLTI0LjEgNDEtMzAuMSA2NC41LTEuOS0uNC0zLjktLjUtNS45LS41bC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDgwIDc0LjkgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDAuNy02Ny4zYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmwyOC43IDI4LjctODkuNCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDg5LjQgMC0yOC43IDI4LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni01NmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNTYtNTZjLTYuMi02LjItMTYuNC02LjItMjIuNiAwelwiXVxufTtcbnZhciBmYUxlZnRSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsZWZ0LXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbODU5NiwgXCJhcnJvd3MtYWx0LWhcIl0sIFwiZjMzN1wiLCBcIk01MDIuNiA0MDYuNmwtOTYgOTZjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM1MiA0OTIuOSAzNTIgNDgwbDAtNjQtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIwIDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zek05LjQgMTUwLjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE2MCAxOS4xIDE2MCAzMmwwIDY0IDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMjAgMCAwIDY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC05Ni05NnpcIl1cbn07XG52YXIgZmFBcnJvd3NBbHRIID0gZmFMZWZ0UmlnaHQ7XG52YXIgZmFWaXJ1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aXJ1cycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA3NFwiLCBcIk0yOTYgNDBjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBjMCA0NC4xLTUzLjMgNjYuMS04NC41IDM1LTE1LjYtMTUuNi00MC45LTE1LjYtNTYuNiAwcy0xNS42IDQwLjkgMCA1Ni42YzMxLjIgMzEuMiA5LjEgODQuNS0zNSA4NC41LTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBjNDQuMSAwIDY2LjEgNTMuMyAzNSA4NC41LTE1LjYgMTUuNi0xNS42IDQwLjkgMCA1Ni42czQwLjkgMTUuNiA1Ni42IDBjMzEuMi0zMS4yIDg0LjUtOS4xIDg0LjUgMzUgMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGMwLTQ0LjEgNTMuMy02Ni4xIDg0LjUtMzUgMTUuNiAxNS42IDQwLjkgMTUuNiA1Ni42IDBzMTUuNi00MC45IDAtNTYuNmMtMzEuMi0zMS4yLTkuMS04NC41IDM1LTg0LjUgMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDBjLTQ0LjEgMC02Ni4xLTUzLjMtMzUtODQuNSAxNS42LTE1LjYgMTUuNi00MC45IDAtNTYuNnMtNDAuOS0xNS42LTU2LjYgMEMzNDkuMyAxMDYuMSAyOTYgODQuMSAyOTYgNDB6TTE2MCAyMjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYwIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFHZW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2VtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4MTQyXSwgXCJmM2E1XCIsIFwiTTExNi43IDMzLjhjNC41LTYuMSAxMS43LTkuOCAxOS4zLTkuOGwyNDAgMGM3LjYgMCAxNC44IDMuNiAxOS4zIDkuOGwxMTIgMTUyYzYuOCA5LjIgNi4xIDIxLjktMS41IDMwLjRsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MnptMzguNSAzOS44Yy0zLjMgMi41LTQuMiA3LTIuMSAxMC41TDIxMC41IDE3OS44IDYzLjMgMTkyYy00LjEgLjMtNy4zIDMuOC03LjMgOHMzLjIgNy42IDcuMyA4bDE5MiAxNmMuNCAwIC45IDAgMS4zIDBsMTkyLTE2YzQuMS0uMyA3LjMtMy44IDcuMy04cy0zLjItNy42LTcuMy04bC0xNDcuMi0xMi4zIDU3LjQtOTUuNmMyLjEtMy41IDEuMi04LjEtMi4xLTEwLjVzLTcuOS0yLTEwLjcgMUwyNTYgMTcyLjIgMTY1LjkgNzQuNmMtMi44LTMtNy40LTMuNC0xMC43LTF6XCJdXG59O1xudmFyIGZhVG9pbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RvaWxldCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODcwMV0sIFwiZjdkOFwiLCBcIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE0OC45Yy0xLjkgMS40LTMuOCAyLjktNS42IDQuNC0xNS41IDEzLjItMjYuNCAzMS42LTI2LjQgNTQuNiAwIDQ2LjkgMTQuMyA4NC4xIDM3IDExMi41IDE0LjIgMTcuNyAzMS4xIDMxLjMgNDguNSA0MS44TDY1LjYgNDY5LjljLTMuMyA5LjgtMS42IDIwLjUgNC40IDI4LjhTODUuNyA1MTIgOTYgNTEybDI1NiAwYzEwLjMgMCAxOS45LTQuOSAyNi0xMy4zczcuNy0xOS4xIDQuNC0yOC44bC0xOS44LTU5LjVjMTcuNC0xMC41IDM0LjMtMjQuMSA0OC41LTQxLjggMjIuNy0yOC40IDM3LTY1LjUgMzctMTEyLjUgMC0yMy4xLTEwLjktNDEuNS0yNi40LTU0LjYtMS44LTEuNS0zLjctMy01LjYtNC40bDAtMTQ4LjkgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzQzNy4zIDAgNDI0IDBMMjQgMHpNOTYgODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNMjI0IDI4OGMtODguNCAwLTE2MC0xNC4zLTE2MC0zMnM3MS42LTMyIDE2MC0zMiAxNjAgMTQuMyAxNjAgMzItNzEuNiAzMi0xNjAgMzJ6XCJdXG59O1xudmFyIGZhU2luZ2xlUXVvdGVMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpbmdsZS1xdW90ZS1sZWZ0JyxcbiAgaWNvbjogWzE5MiwgNTEyLCBbXSwgXCJlODFiXCIsIFwiTTEyOCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIxNkMwIDE0OS43IDUzLjcgOTYgMTIwIDk2bDggMHpcIl1cbn07XG52YXIgZmFNb25leUJpbGxzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGxzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlMWYzXCIsIFwiTTE2MCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzUyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTYwIDMyem0xNzYgOTZhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTE2MCAxNTJsMC00OGMwLTQuNCAzLjYtOCA4LThsNDggMGM0LjQgMCA4LjEgMy42IDcuNSA4LTMuNiAyOS0yNi42IDUxLjktNTUuNSA1NS41LTQuNCAuNS04LTMuMS04LTcuNXptMCAxMTJjMC00LjQgMy42LTguMSA4LTcuNSAyOSAzLjYgNTEuOSAyNi42IDU1LjUgNTUuNSAuNSA0LjQtMy4xIDgtNy41IDhsLTQ4IDBjLTQuNCAwLTgtMy42LTgtOGwwLTQ4ek01MDQgMTU5LjVjLTI5LTMuNi01MS45LTI2LjYtNTUuNS01NS41LS41LTQuNCAzLjEtOCA3LjUtOGw0OCAwYzQuNCAwIDggMy42IDggOGwwIDQ4YzAgNC40LTMuNiA4LjEtOCA3LjV6TTUxMiAyNjRsMCA0OGMwIDQuNC0zLjYgOC04IDhsLTQ4IDBjLTQuNCAwLTguMS0zLjYtNy41LTggMy42LTI5IDI2LjYtNTEuOSA1NS41LTU1LjUgNC40LS41IDggMy4xIDggNy41ek00OCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMzguNyAwIDE1MkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzOTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI2NHpcIl1cbn07XG52YXIgZmFUYWJsZXRCdXR0b24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGV0LWJ1dHRvbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjEwYVwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yMjQgNDAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFSZWN0YW5nbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZWN0YW5nbGUteG1hcmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjE2NCwgXCJyZWN0YW5nbGUtdGltZXNcIiwgXCJ0aW1lcy1yZWN0YW5nbGVcIiwgXCJ3aW5kb3ctY2xvc2VcIl0sIFwiZjQxMFwiLCBcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMTY3IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpcIl1cbn07XG52YXIgZmFSZWN0YW5nbGVUaW1lcyA9IGZhUmVjdGFuZ2xlWG1hcms7XG52YXIgZmFUaW1lc1JlY3RhbmdsZSA9IGZhUmVjdGFuZ2xlWG1hcms7XG52YXIgZmFXaW5kb3dDbG9zZSA9IGZhUmVjdGFuZ2xlWG1hcms7XG52YXIgZmFXcmVuY2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd3JlbmNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4Mjk1XSwgXCJmMGFkXCIsIFwiTTUwOS40IDk4LjZjNy42LTcuNiAyMC4zLTUuNyAyNC4xIDQuMyA2LjggMTcuNyAxMC41IDM3IDEwLjUgNTcuMSAwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MC0xNy41IDAtMzQuNC0yLjgtNTAuMi04TDE0Ni45IDQ5OC45Yy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDBzLTI4LjEtNzMuNyAwLTEwMS44TDIzMiAyMTAuMmMtNS4yLTE1LjgtOC0zMi42LTgtNTAuMiAwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCAyMC4xIDAgMzkuNCAzLjcgNTcuMSAxMC41IDEwIDMuOCAxMS44IDE2LjUgNC4zIDI0LjFsLTg4LjcgODguN2MtMyAzLTQuNyA3LjEtNC43IDExLjNsMCA0MS40YzAgOC44IDcuMiAxNiAxNiAxNmw0MS40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w4OC43LTg4Ljd6XCJdXG59O1xudmFyIGZhVHJhc2hDYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhc2gtY2FuJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbNjE0NjAsIFwidHJhc2gtYWx0XCJdLCBcImYyZWRcIiwgXCJNMTM2LjcgNS45QzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjF6TTMyIDE0NGwzODQgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA0em04OCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xOTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTkyYzAtMTMuMy0xMC43LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYVRyYXNoQWx0ID0gZmFUcmFzaENhbjtcbnZhciBmYVRhYmxlQ2VsbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGUtY2VsbHMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInRoXCJdLCBcImYwMGFcIiwgXCJNMzg0IDk2bDAgNjQtNjQgMCAwLTY0IDY0IDB6bTAgMTI4bDAgNjQtNjQgMCAwLTY0IDY0IDB6bTAgMTI4bDAgNjQtNjQgMCAwLTY0IDY0IDB6TTI1NiAyODhsLTY0IDAgMC02NCA2NCAwIDAgNjR6bS02NCA2NGw2NCAwIDAgNjQtNjQgMCAwLTY0em0tNjQtNjRsLTY0IDAgMC02NCA2NCAwIDAgNjR6TTY0IDM1Mmw2NCAwIDAgNjQtNjQgMCAwLTY0em0wLTE5MmwwLTY0IDY0IDAgMCA2NC02NCAwem0xMjggMGwwLTY0IDY0IDAgMCA2NC02NCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyelwiXVxufTtcbnZhciBmYVRoID0gZmFUYWJsZUNlbGxzO1xudmFyIGZhUmliYm9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JpYmJvbicsXG4gIGljb246IFszODQsIDUxMiwgWzEyNzg5NV0sIFwiZjRkNlwiLCBcIk0yMzUuMSAwYzMzLjQgMCA2NC41IDE3LjQgODEuOSA0NS45IDEuMiAyIDEzIDIxLjMgMzUuMyA1Ny44IDIxLjEgMzQuNSAxOC4zIDc4LjUtNyAxMTBMMjc4LjMgMjk3LjcgMzY0LjUgNDA2YzUuNSA2LjkgNC40IDE2LjktMi41IDIyLjVsLTgwIDY0Yy02LjkgNS41LTE3IDQuNC0yMi41LTIuNUwzOC42IDIxMy44QzEzLjMgMTgyLjMgMTAuNSAxMzguMyAzMS42IDEwMy44IDU0IDY3LjIgNjUuNyA0Ny45IDY3IDQ1LjkgODQuNCAxNy40IDExNS40IDAgMTQ4LjkgMGw4Ni4zIDB6TTE5MiAxODkuMmw0OC42LTYxLjItOTcuMyAwIDQ4LjYgNjEuMnpNNzUgMzM2LjJsODYuMiAxMDcuOC0zNi44IDQ2Yy01LjUgNi45LTE1LjYgOC0yMi41IDIuNWwtODAtNjRjLTYuOS01LjUtOC0xNS42LTIuNS0yMi41TDc1IDMzNi4yelwiXVxufTtcbnZhciBmYUxhbmRtYXJrRmxhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYW5kbWFyay1mbGFnJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTFjXCIsIFwiTTM1Mi0zMkwyNDAtMzJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE0NC0xNzYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwIDAgMjI0LTUxLjIgMzguNEM0LjcgNDYwLjQgMCA0NjkuOSAwIDQ4MCAwIDQ5Ny43IDE0LjMgNTEyIDMyIDUxMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42bC01MS4yLTM4LjQgMC0yMjQgMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTkyIDAgMC02NCA4MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnptNDggMjI0bDAgMjI0LTY0IDAgMC0yMjQgNjQgMHptLTExMiAwbDAgMjI0LTY0IDAgMC0yMjQgNjQgMHptLTExMiAwbDAgMjI0LTY0IDAgMC0yMjQgNjQgMHpcIl1cbn07XG52YXIgZmFVcERvd25MZWZ0UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXAtZG93bi1sZWZ0LXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhcnJvd3MtYWx0XCJdLCBcImYwYjJcIiwgXCJNMjc4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzE3OS4xIDEyOCAxOTIgMTI4bDMyIDAgMCA5Ni05NiAwIDAtMzJjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOVMxMjggMzMyLjkgMTI4IDMyMGwwLTMyIDk2IDAgMCA5Ni0zMiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWw2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMzIuOSAzODQgMzIwIDM4NGwtMzIgMCAwLTk2IDk2IDAgMCAzMmMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMzg0IDE3OS4xIDM4NCAxOTJsMCAzMi05NiAwIDAtOTYgMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NHpcIl1cbn07XG52YXIgZmFBcnJvd3NBbHQgPSBmYVVwRG93bkxlZnRSaWdodDtcbnZhciBmYUNhclNpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyLXNpZGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjg2NjNdLCBcImY1ZTRcIiwgXCJNMTQ3IDEwNi43bC0yOS44IDg1LjMgMTIyLjkgMCAwLTk2LTc3LjkgMGMtNi44IDAtMTIuOSA0LjMtMTUuMSAxMC43ek00OC42IDE5My45TDg2LjUgODUuNkM5Ny44IDUzLjUgMTI4LjEgMzIgMTYyLjEgMzJMMzYwIDMyYzI1LjIgMCA0OC45IDExLjkgNjQgMzJsOTYuMiAxMjguM0M1ODcuMSAxOTYuNSA2NDAgMjUyLjEgNjQwIDMyMGwwIDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xNi40IDBjLTQgNDQuOS00MS43IDgwLTg3LjYgODBzLTgzLjYtMzUuMS04Ny42LTgwbC0xNDQuNyAwYy00IDQ0LjktNDEuNyA4MC04Ny42IDgwcy04My42LTM1LjEtODcuNi04MGwtLjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC04MGMwLTMwLjEgMjAuNy01NS4zIDQ4LjYtNjIuMXpNNDQwIDE5MmwtNjcuMi04OS42Yy0zLTQtNy44LTYuNC0xMi44LTYuNGwtNzIgMCAwIDk2IDE1MiAwek0xNTIgNDMyYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMzYwLTQwYTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6XCJdXG59O1xudmFyIGZhVHJhc2hBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYXNoLWFycm93LXVwJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0cmFzaC1yZXN0b3JlXCJdLCBcImY4MjlcIiwgXCJNMTY3LjEtMTZsMTEzLjkgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOUwzMjAgMzIgNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDguNy0yNi4xQzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNnpNMzIgMTQ0bDM4NCAwLTIxLjEgMzIzLjFDMzkzLjMgNDkyLjQgMzcyLjMgNTEyIDM0NyA1MTJMMTAxIDUxMmMtMjUuMyAwLTQ2LjMtMTkuNi00Ny45LTQ0LjlMMzIgMTQ0em0yMDkgNzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC03MiA3MmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMxLTMxIDAgMTAyLjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMi4xIDMxIDMxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzItNzJ6XCJdXG59O1xudmFyIGZhVHJhc2hSZXN0b3JlID0gZmFUcmFzaEFycm93VXA7XG52YXIgZmFMaWZlUmluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsaWZlLXJpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxY2RcIiwgXCJNMzY3LjIgNDEyLjVDMzM1LjkgNDM0LjkgMjk3LjUgNDQ4IDI1NiA0NDhzLTc5LjktMTMuMS0xMTEuMi0zNS41bDU4LTU4YzE1LjggOC42IDM0IDEzLjUgNTMuMyAxMy41czM3LjQtNC45IDUzLjMtMTMuNWw1OCA1OHptOTAuNyAuOGMzMy44LTQzLjQgNTQtOTggNTQtMTU3LjNTNDkxLjggMTQyLjEgNDU4IDk4LjdjOS0xMi41IDcuOS0zMC4xLTMuNC00MS4zUzQyNS44IDQ1IDQxMy4zIDU0QzM2OS45IDIwLjIgMzE1LjMgMCAyNTYgMFMxNDIuMSAyMC4yIDk4LjcgNTRjLTEyLjUtOS0zMC4xLTcuOS00MS4zIDMuNFM0NSA4Ni4yIDU0IDk4LjdDMjAuMiAxNDIuMSAwIDE5Ni43IDAgMjU2UzIwLjIgMzY5LjkgNTQgNDEzLjNjLTkgMTIuNS03LjkgMzAuMSAzLjQgNDEuM1M4Ni4yIDQ2NyA5OC43IDQ1OGM0My40IDMzLjggOTggNTQgMTU3LjMgNTRzMTEzLjktMjAuMiAxNTcuMy01NGMxMi41IDkgMzAuMSA3LjkgNDEuMy0zLjRzMTIuNC0yOC44IDMuNC00MS4zem0tNDUuNS00Ni4xbC01OC01OGM4LjYtMTUuOCAxMy41LTM0IDEzLjUtNTMuM3MtNC45LTM3LjQtMTMuNS01My4zbDU4LTU4QzQzNC45IDE3Ni4xIDQ0OCAyMTQuNSA0NDggMjU2cy0xMy4xIDc5LjktMzUuNSAxMTEuMnpNMzY3LjIgOTkuNWwtNTggNThjLTE1LjgtOC42LTM0LTEzLjUtNTMuMy0xMy41cy0zNy40IDQuOS01My4zIDEzLjVsLTU4LTU4QzE3Ni4xIDc3LjEgMjE0LjUgNjQgMjU2IDY0czc5LjkgMTMuMSAxMTEuMiAzNS41ek0xNTcuNSAzMDkuM2wtNTggNThDNzcuMSAzMzUuOSA2NCAyOTcuNSA2NCAyNTZzMTMuMS03OS45IDM1LjUtMTExLjJsNTggNThjLTguNiAxNS44LTEzLjUgMzQtMTMuNSA1My4zczQuOSAzNy40IDEzLjUgNTMuM3pNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwelwiXVxufTtcbnZhciBmYUNvcHlyaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb3B5cmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxNjldLCBcImYxZjlcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwNS4xIDMwNi45YzI4LjEgMjguMSA3My43IDI4LjEgMTAxLjggMCA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTQ2LjkgNDYuOS0xMjIuOCA0Ni45LTE2OS43IDBzLTQ2LjktMTIyLjggMC0xNjkuNyAxMjIuOC00Ni45IDE2OS43IDBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMjguMS0yOC4xLTczLjctMjguMS0xMDEuOCAwcy0yOC4xIDczLjcgMCAxMDEuOHpcIl1cbn07XG52YXIgZmFGaWxlUHJlc2NyaXB0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtcHJlc2NyaXB0aW9uJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTcyXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek04OCAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MCAyMi41IDAgNTguNCA1NS0zMy40IDMxLjZjLTkuNiA5LjEtMTAuMSAyNC4zLS45IDMzLjlzMjQuMyAxMC4xIDMzLjkgLjlsMzUuNC0zMy41IDM1LjYgMzMuNWM5LjcgOS4xIDI0LjggOC42IDMzLjktMXM4LjYtMjQuOC0xLTMzLjlsLTMzLjYtMzEuNiAzMy42LTMxLjhjOS42LTkuMSAxMC4xLTI0LjMgLjktMzMuOXMtMjQuMy0xMC4xLTMzLjktLjlsLTM1LjcgMzMuNy00MC45LTM4LjVjMTIuOS0xMS43IDIxLjEtMjguNiAyMS4xLTQ3LjUgMC0zNS4zLTI4LjctNjQtNjQtNjRsLTU2IDB6bTMyIDgwbC04IDAgMC0zMiAzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0yNCAwelwiXVxufTtcbnZhciBmYUVyYXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlcmFzZXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYxMmRcIiwgXCJNMTc4LjUgNDE2bDEyMyAwIDY1LjMtNjUuMy0xNzMuNS0xNzMuNS0xMjYuNyAxMjYuNyAxMTIgMTEyek0yMjQgNDgwbC00NS41IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDE3IDM0NUM2LjEgMzM0LjEgMCAzMTkuNCAwIDMwNHM2LjEtMzAuMSAxNy00MUwyNjMgMTdDMjczLjkgNi4xIDI4OC42IDAgMzA0IDBzMzAuMSA2LjEgNDEgMTdMNTI3IDE5OWMxMC45IDEwLjkgMTcgMjUuNiAxNyA0MXMtNi4xIDMwLjEtMTcgNDFsLTEzNSAxMzUgMTIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI4OCAwelwiXVxufTtcbnZhciBmYUhvdXJnbGFzc1N0YXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXJnbGFzcy1zdGFydCcsXG4gIGljb246IFszODQsIDUxMiwgW1wiaG91cmdsYXNzLTFcIl0sIFwiZjI1MVwiLCBcIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNMjg4IDQzN2wwIDExLTE5MiAwIDAtMTFjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsNjcuOS02Ny45IDY3LjkgNjcuOWMxOCAxOCAyOC4xIDQyLjQgMjguMSA2Ny45elwiXVxufTtcbnZhciBmYUhvdXJnbGFzczEgPSBmYUhvdXJnbGFzc1N0YXJ0O1xudmFyIGZhQ2lyY2xlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxODQwLCBcImFycm93LWFsdC1jaXJjbGUtbGVmdFwiXSwgXCJmMzU5XCIsIFwiTTUxMiAyNTZhMjU2IDI1NiAwIDEgMCAtNTEyIDAgMjU2IDI1NiAwIDEgMCA1MTIgMHpNMTI0LjcgMjQ0LjdsMTA0LTEwNGM0LjYtNC42IDExLjUtNS45IDE3LjQtMy41czkuOSA4LjMgOS45IDE0LjhsMCA1NiA5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCA1NmMwIDYuNS0zLjkgMTIuMy05LjkgMTQuOHMtMTIuOSAxLjEtMTcuNC0zLjVsLTEwNC0xMDRjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42elwiXVxufTtcbnZhciBmYUFycm93QWx0Q2lyY2xlTGVmdCA9IGZhQ2lyY2xlTGVmdDtcbnZhciBmYUNydXplaXJvU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjcnV6ZWlyby1zaWduJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMTUyXCIsIFwiTTI0MCA5NmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCA3MS42IDQ3LjEgMTMyLjMgMTEyIDE1Mi43TDE5MiAyNTZjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTIuOCAwIDIzLjMgMTAuMSAyNCAyMi43IDE1LjUtOS41IDMzLjUtMTQuNyA1Mi4zLTE0LjdsMTEuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMS44IDBjLTE4LjggMC0zNi4xIDEwLTQ1LjQgMjYuMy00LjUgNy45LTYuOSAxNi44LTYuOSAyNS45bDAgNzUuOGM0Mi41IDAgODEuMS0xNi42IDEwOS44LTQzLjYgMTIuOS0xMi4xIDMzLjEtMTEuNSA0NS4yIDEuM3MxMS41IDMzLjEtMS4zIDQ1LjJDMzUzLjcgNDU2LjggMjk5LjUgNDgwIDI0MCA0ODAgMTE2LjMgNDgwIDE2IDM3OS43IDE2IDI1NlMxMTYuMyAzMiAyNDAgMzJjNTkuNSAwIDExMy43IDIzLjIgMTUzLjcgNjEuMSAxMi45IDEyLjEgMTMuNCAzMi40IDEuMyA0NS4ycy0zMi40IDEzLjQtNDUuMiAxLjNDMzIxLjEgMTEyLjYgMjgyLjUgOTYgMjQwIDk2elwiXVxufTtcbnZhciBmYVNtb2tpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc21va2luZycsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODY4NF0sIFwiZjQ4ZFwiLCBcIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0zMjAgNDQ4bDk2IDAgMC0zMi05NiAwIDAgMzJ6TTAgNDE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyem01NzYtNDBsMCAxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIl1cbn07XG52YXIgZmFTcXVhcmVQb2xsVmVydGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXBvbGwtdmVydGljYWwnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInBvbGxcIl0sIFwiZjY4MVwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem01NiAxOTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTJjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTE4NCA4OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OHpNMjI0IDEyOGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDIwOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTIwOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpcIl1cbn07XG52YXIgZmFQb2xsID0gZmFTcXVhcmVQb2xsVmVydGljYWw7XG52YXIgZmFQZXJzb25DaXJjbGVNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tY2lyY2xlLW1pbnVzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTQwXCIsIFwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNjQgMGMwIDguOC03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDEyOCAwYzguOCAwIDE2IDcuMiAxNiAxNnpcIl1cbn07XG52YXIgZmFCaW9oYXphcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmlvaGF6YXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbOTc2M10sIFwiZjc4MFwiLCBcIk0yNjAgMTIuNmMwLTguMy03LjYtMTQuNS0xNS41LTEyLjEtNjAuOSAxOC44LTEwNS4xIDc1LjgtMTA1LjEgMTQzLjEgMCAyNS4xIDYuMSA0OC43IDE3IDY5LjUtMjEgMS44LTQyIDguMi02MS41IDE5LjUtNTcuOSAzMy42LTg0LjggMTAwLjItNzAuOSAxNjIuNSAxLjkgOC40IDExLjQgMTIgMTguOSA3LjYgNS0yLjkgNy42LTguNiA3LjEtMTQuNC0uMy0zLjMtLjQtNi42LS40LTEwLjEgMC0xMjMuNSAxODQuNC0xMjMuNSAxODQuNCAwIDAgODguNC05NC41IDExMy42LTE0OC4yIDc1LjQtNC41LTMuMi0xMC41LTMuOS0xNS4zLTEuMS03IDQuMS04LjYgMTMuNi0yLjcgMTkuMSA0Ni42IDQzLjggMTE4IDUzLjkgMTc2LjEgMjAuMiAxNy45LTEwLjQgMzIuOC0yMy45IDQ0LjUtMzkuNCAxMS43IDE1LjYgMjYuNiAyOS4xIDQ0LjUgMzkuNCA1OC4xIDMzLjcgMTI5LjUgMjMuNiAxNzYuMS0yMC4yIDUuOS01LjUgNC4zLTE1LjEtMi43LTE5LjEtNC44LTIuOC0xMC44LTIuMS0xNS4zIDEuMS01My43IDM4LjItMTQ4LjIgMTMtMTQ4LjItNzUuNCAwLTEyMy41IDE4NC40LTEyMy41IDE4NC40IDAgMCAzLjQtLjEgNi44LS40IDEwLjEtLjUgNS44IDIuMSAxMS41IDcuMSAxNC40IDcuNCA0LjMgMTcgLjggMTguOS03LjYgMTMuOS02Mi4yLTEzLTEyOC45LTcwLjktMTYyLjUtMTkuNS0xMS4zLTQwLjQtMTcuNy02MS41LTE5LjUgMTAuOS0yMC44IDE3LTQ0LjQgMTctNjkuNSAwLTY3LjMtNDQuMi0xMjQuMy0xMDUuMS0xNDMuMS03LjktMi40LTE1LjUgMy44LTE1LjUgMTIuMSAwIDUuOSA0IDExIDkuNSAxMy4yIDgzLjQgMzMuNiA3MC44IDE3OC40LTM3LjggMTc4LjRTMTY3LjEgNTkuNCAyNTAuNSAyNS44YzUuNS0yLjIgOS41LTcuMyA5LjUtMTMuMnpNMjQ4LjQgMjg4YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTQzNSAzMTcuN2MtMTYuMiAwLTMxLjQgNS41LTQyLjEgMTUtMTAuMSA5LjEtMTguMSAyMy40LTE4LjEgNDUuNiAwIDIxLjEgNy4yIDM1IDE2LjUgNDQuMSAzMi4yLTI0LjYgNTUuNS02MC41IDYzLjktMTAxLjgtNi4zLTEuOS0xMy4yLTMtMjAuMi0zek0yMDIgMzc4LjNjMC0yMi4zLTgtMzYuNi0xOC4xLTQ1LjYtMTAuNy05LjYtMjUuOS0xNS00Mi4xLTE1LTcgMC0xMy45IDEtMjAuMiAzIDguNCA0MS4zIDMxLjYgNzcuMiA2My45IDEwMS44IDkuNC05LjEgMTYuNS0yMy4xIDE2LjUtNDQuMnptNDEuMi0yMjQuM2M5IDEwLjIgMjMuMiAxOC4yIDQ1LjIgMTguMnMzNi4yLTggNDUuMi0xOC4yYzYuNy03LjYgMTEuNS0xNy41IDEzLjYtMjguNC0xOC4zLTYuOC0zOC4yLTEwLjUtNTguOC0xMC41cy00MC41IDMuNy01OC44IDEwLjVjMi4yIDEwLjkgNi45IDIwLjggMTMuNiAyOC41elwiXVxufTtcbnZhciBmYUJlbGxDb25jaWVyZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmVsbC1jb25jaWVyZ2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg3MTgsIFwiY29uY2llcmdlLWJlbGxcIl0sIFwiZjU2MlwiLCBcIk0yMTYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjNDMTI0LjggMTU2LjcgNDAuMiAyNDMuNyAzMi42IDM1Mmw0NDYuOSAwQzQ3MS44IDI0My43IDM4Ny4yIDE1Ni43IDI4MCAxNDUuM2wwLTMzLjMgMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHpNMjQgNDAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDQwMHpcIl1cbn07XG52YXIgZmFDb25jaWVyZ2VCZWxsID0gZmFCZWxsQ29uY2llcmdlO1xudmFyIGZhUnVsZXJIb3Jpem9udGFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1bGVyLWhvcml6b250YWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1NDdcIiwgXCJNNDggMzg0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgMjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAzODR6XCJdXG59O1xudmFyIGZhSG9yc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9yc2UnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgwMTRdLCBcImY2ZjBcIiwgXCJNNDQ4IDIzOC4xbDAtNzguMSAxNiAwIDkuOCAxOS42YzEyLjUgMjUuMSA0Mi4yIDM2LjQgNjguMyAyNiAyMC41LTguMiAzMy45LTI4IDMzLjktNTAuMUw1NzYgODBjMC0xOS4xLTguNC0zNi4zLTIxLjctNDhsNS43IDBjOC44IDAgMTYtNy4yIDE2LTE2UzU2OC44IDAgNTYwIDBMNDQ4IDBDMzc3LjMgMCAzMjAgNTcuMyAzMjAgMTI4bC0xNzEuMiAwQzExOC4xIDEyOCA5MS4yIDE0NC4zIDc2LjMgMTY4LjggMzMuMiAxNzQuNSAwIDIxMS40IDAgMjU2bDAgNTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTU2YzAtMTMuNCA2LjYtMjUuMiAxNi43LTMyLjUgMS42IDEzIDYuMyAyNS40IDEzLjYgMzYuNGwyOC4yIDQyLjRjOC4zIDEyLjQgNi40IDI4LjctMS4yIDQxLjYtMTYuNSAyOC0yMC42IDYyLjItMTAgOTMuOWwxNy41IDUyLjRjNC40IDEzLjEgMTYuNiAyMS45IDMwLjQgMjEuOWwzMy43IDBjMjEuOCAwIDM3LjMtMjEuNCAzMC40LTQyLjFsLTIwLjgtNjIuNWMtMi4xLTYuNC0uNS0xMy40IDQuMy0xOC4ybDEyLjctMTIuN2MxMy4yLTEzLjIgMjAuNi0zMS4xIDIwLjYtNDkuNyAwLTIuMy0uMS00LjYtLjMtNi45bDg0IDI0YzQuMSAxLjIgOC4yIDIuMSAxMi4zIDIuOEwzMjAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNjQuM2MxOS4yLTE5LjIgMzEuNS00NS43IDMyLTc1LjdsMCAwIDAtMS45ek00OTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwiXVxufTtcbnZhciBmYUNhbGVuZGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbGVuZGFyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4MTk3LCAxMjgxOThdLCBcImYxMzNcIiwgXCJNMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMybDAgMzItMzIgMEMyOC43IDY0IDAgOTIuNyAwIDEyOGwwIDQ4IDQ0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyLTEyOCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTAgMjI0TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyLTQ0OCAwelwiXVxufTtcbnZhciBmYUhhbmRzSG9sZGluZ0NoaWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzLWhvbGRpbmctY2hpbGQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZmFcIiwgXCJNMzIwLTMyYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHpNNDAgNjRjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAxNjAuMmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2w1MS4xIDUxLjFjOC4zIDguMyAyMS4zIDkuNiAzMSAzLjEgMTIuOS04LjYgMTQuNy0yNi45IDMuNy0zNy44LTcuMy03LjMtMjMuMS0yMy4xLTQ3LjItNDcuMi0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwYzI0LjEgMjQuMSAzOS45IDM5LjkgNDcuMiA0Ny4ybDAgMCAyNS4zIDI1LjNjMjEgMjEgMzIuOCA0OS41IDMyLjggNzkuMmwwIDc4LjljMCAyNi41LTIxLjUgNDgtNDggNDhsLTY2LjcgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMjguMSAzOTMuNEMxMC4xIDM3NS40IDAgMzUxIDAgMzI1LjVMMCAxMDRDMCA4MS45IDE3LjkgNjQgNDAgNjR6bTU2MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMjIxLjVjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlMNTEyIDQ5My4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDQwMCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNzguOWMwLTI5LjcgMTEuOC01OC4yIDMyLjgtNzkuMmwyNS4zLTI1LjMgMCAwYzcuMy03LjMgMjMuMS0yMy4xIDQ3LjItNDcuMiAxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy0yNC4xIDI0LjEtMzkuOSAzOS45LTQ3LjIgNDcuMi0xMSAxMS05LjIgMjkuMiAzLjcgMzcuOCA5LjcgNi41IDIyLjcgNS4yIDMxLTMuMWw1MS4xLTUxLjFjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1NjAgMTA0YzAtMjIuMSAxNy45LTQwIDQwLTQwek0zODQuNSAxNDlsLTE5LjgtMTYuNyAxMS4xIDg4LjhjMS42IDEzLjItNy43IDI1LjEtMjAuOCAyNi44cy0yNS4xLTcuNy0yNi44LTIwLjhsLTQuNC0zNS03LjYgMC00LjQgMzVjLTEuNiAxMy4yLTEzLjYgMjIuNS0yNi44IDIwLjhzLTIyLjUtMTMuNi0yMC44LTI2LjhsMTEuMS04OC44LTE5LjggMTYuN2MtMTAuMSA4LjYtMjUuMyA3LjMtMzMuOC0yLjhzLTcuMy0yNS4zIDIuOC0zMy44bDI3LjktMjMuNkMyNzEuMyA3Mi44IDI5NS4zIDY0IDMyMCA2NHM0OC43IDguOCA2Ny42IDI0LjdsMjcuOSAyMy42YzEwLjEgOC42IDExLjQgMjMuNyAyLjggMzMuOHMtMjMuNyAxMS40LTMzLjggMi44elwiXVxufTtcbnZhciBmYUl0YWxpYyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpdGFsaWMnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYwMzNcIiwgXCJNMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC01OC43IDAtMTMzLjMgMzIwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDU4LjcgMCAxMzMuMy0zMjAtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xudmFyIGZhS2hhbmRhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2toYW5kYScsXG4gIGljb246IFs1MTIsIDUxMiwgWzk3NzJdLCBcImY2NmRcIiwgXCJNMjQwLjcgOGM4LjktNy40IDIxLjgtNy40IDMwLjcgMGwzNy44IDMxLjVjOC43IDcuMyAxMS4xIDE5LjYgNiAyOS42LTEuMiAyLjQtMi44IDUuNS00LjYgOS4yIDM0LjIgMTkuMiA1Ny4zIDU1LjggNTcuMyA5Ny44cy0yMy4xIDc4LjYtNTcuMyA5Ny44YzEuOCAzLjcgMy4zIDYuOCA0LjYgOS4yIDUuMSAxMCAyLjcgMjIuMy02IDI5LjZsLTM3LjIgMzEgMCAxOS44YzIyLjktMTUuNyA0OC40LTMzLjMgNzYuNy01Mi43IDQyLjgtMjkuNCA2OC40LTc4IDY4LjQtMTMwbDAtMTEuMWMwLTIzLjktNy4xLTQ3LjMtMjAuNC02Ny4yLTUuMS03LjctNC42LTE3LjggMS43LTI0LjYgNi42LTcuMSAxNy4yLTguMSAyNS4yLTIuOCAyNy41IDE4LjEgODkuNCA2Ny41IDg5LjQgMTQ5LjEgMCA0Ni41LTIwLjIgODguNi00MS44IDEyMC40LTIxLjYgMzItNDUuNiA1NS01NS4zIDYzLjgtNy44IDcuMS0xOSA3LjktMjcuNiAzbC03MC44LTQwLjMtMzIuNyAyMi41IDQ1LjUgMzEuM2MxLjgtLjQgMy43LS43IDUuNy0uNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTIuMiAwLTIyLjMtOS4xLTIzLjgtMjFsLTQwLjItMjcuNiAwIDI4LjljOS42IDUuNSAxNiAxNS45IDE2IDI3LjcgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0xMS44IDYuNC0yMi4yIDE2LTI3LjdsMC0yOC4xLTQwLjMgMjcuN2MtMS44IDExLjQtMTEuOCAyMC4xLTIzLjcgMjAuMS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIuMiAwIDQuNCAuMyA2LjUgLjlsNDUuOC0zMS41LTMyLjctMjIuNS03MC44IDQwLjNjLTguNyA0LjktMTkuOCA0LjEtMjcuNi0zLTkuNy04LjgtMzMuNy0zMS45LTU1LjMtNjMuOC0yMS41LTMxLjgtNDEuOC03My45LTQxLjgtMTIwLjQgMC04MS43IDYxLjktMTMxLjEgODkuNC0xNDkuMSA4LjEtNS4zIDE4LjYtNC4zIDI1LjIgMi44IDYuNCA2LjkgNi44IDE3IDEuNyAyNC42LTEzLjMgMTkuOS0yMC40IDQzLjMtMjAuNCA2Ny4ybDAgMTEuMWMwIDUxLjkgMjUuNiAxMDAuNiA2OC40IDEzMCAyOC40IDE5LjYgNTMuNyAzNi45IDc1LjYgNTJsMC0xOS4xLTM3LjItMzFjLTguNy03LjMtMTEuMS0xOS42LTYtMjkuNiAxLjItMi40IDIuOC01LjUgNC42LTkuMi0zNC4yLTE5LjItNTcuMy01NS44LTU3LjMtOTcuOHMyMy4xLTc4LjYgNTcuMy05Ny44Yy0xLjgtMy43LTMuMy02LjgtNC42LTkuMi01LjEtMTAtMi43LTIyLjMgNi0yOS42TDI0MC43IDh6TTIyMC4zIDEyMi45Yy0xNyAxMS41LTI4LjIgMzEtMjguMiA1My4xczExLjIgNDEuNiAyOC4yIDUzLjFjNi44LTE5LjIgMTEuOC0zOC40IDExLjgtNTMuMXMtNC45LTMzLjktMTEuOC01My4xem03MS41IDEwNi4yYzE3LTExLjUgMjguMi0zMSAyOC4yLTUzLjFzLTExLjItNDEuNi0yOC4yLTUzLjFjLTYuOCAxOS4yLTExLjggMzguNC0xMS44IDUzLjFzNC45IDMzLjkgMTEuOCA1My4xelwiXVxufTtcbnZhciBmYUZhY2VGcm93bk9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1mcm93bi1vcGVuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTUwLCBcImZyb3duLW9wZW5cIl0sIFwiZjU3YVwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODIuNCAzODIuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40IDE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNC0yMi40LTkuNS00Ny40LTE0LjgtNzMuNy0xNC44cy01MS4zIDUuMy03My43IDE0Ljh6XCJdXG59O1xudmFyIGZhRnJvd25PcGVuID0gZmFGYWNlRnJvd25PcGVuO1xudmFyIGZhQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlY2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMDAwMywgMTAwMDRdLCBcImYwMGNcIiwgXCJNNDM0LjggNzAuMWMxNC4zIDEwLjQgMTcuNSAzMC40IDcuMSA0NC43bC0yNTYgMzUyYy01LjUgNy42LTE0IDEyLjMtMjMuNCAxMy4xcy0xOC41LTIuNy0yNS4xLTkuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxMDEuNSAxMDEuNSAyMzQtMzIxLjdjMTAuNC0xNC4zIDMwLjQtMTcuNSA0NC43LTcuMXpcIl1cbn07XG52YXIgZmFGaW5nZXJwcmludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaW5nZXJwcmludCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU3N1wiLCBcIk00OCAyNTZjMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4IDYzLjEgMCAxMTkuNiAyOC4xIDE1Ny44IDcyLjUgOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOEM0MDMuMyAzNC42IDMzMy43IDAgMjU2IDAgMTE0LjYgMCAwIDExNC42IDAgMjU2bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwem00NTguNS01Mi45Yy0yLjctMTMtMTUuNS0yMS4zLTI4LjQtMTguNXMtMjEuMyAxNS41LTE4LjUgMjguNGMyLjkgMTMuOSA0LjUgMjguMyA0LjUgNDMuMWwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMwLTE4LjEtMS45LTM1LjgtNS41LTUyLjl6TTI1NiA4MGMtMTkgMC0zNy40IDMtNTQuNSA4LjYtMTUuMiA1LTE4LjcgMjMuNy04LjMgMzUuOSA3LjEgOC4zIDE4LjggMTAuOCAyOS40IDcuOSAxMC42LTIuOSAyMS44LTQuNCAzMy40LTQuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDI0LjljMCAyNS4yLTEuNSA1MC4zLTQuNCA3NS4zLTEuNyAxNC42IDkuNCAyNy44IDI0LjIgMjcuOCAxMS44IDAgMjEuOS04LjYgMjMuMy0yMC4zIDMuMy0yNy40IDUtNTUgNS04Mi43bDAtMjQuOWMwLTk3LjItNzguOC0xNzYtMTc2LTE3NnpNMTUwLjcgMTQ4LjdjLTkuMS0xMC42LTI1LjMtMTEuNC0zMy45LS40LTIzLjEgMjkuOC0zNi44IDY3LjEtMzYuOCAxMDcuN2wwIDI0LjljMCAyNC4yLTIuNiA0OC40LTcuOCA3MS45LTMuNCAxNS42IDcuOSAzMS4xIDIzLjkgMzEuMSAxMC41IDAgMTkuOS03IDIyLjItMTcuMyA2LjQtMjguMSA5LjctNTYuOCA5LjctODUuOGwwLTI0LjljMC0yNy4yIDguNS01Mi40IDIyLjktNzMuMSA3LjItMTAuNCA4LTI0LjYtLjItMzQuMnpNMjU2IDE2MGMtNTMgMC05NiA0My05NiA5NmwwIDI0LjljMCAzNS45LTQuNiA3MS41LTEzLjggMTA2LjEtMy44IDE0LjMgNi43IDI5IDIxLjUgMjkgOS41IDAgMTcuOS02LjIgMjAuNC0xNS40IDEwLjUtMzkgMTUuOS03OS4yIDE1LjktMTE5LjdsMC0yNC45YzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsMCAyNC45YzAgMzYuMy0zLjUgNzIuNC0xMC40IDEwNy45LTIuNyAxMy45IDcuNyAyNy4yIDIxLjggMjcuMiAxMC4yIDAgMTktNyAyMS0xNyA3LjctMzguOCAxMS42LTc4LjMgMTEuNi0xMTguMWwwLTI0LjljMC01My00My05Ni05Ni05NnptMjQgOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNC45YzAgNTkuOS0xMSAxMTkuMy0zMi41IDE3NS4ybC01LjkgMTUuM2MtNC44IDEyLjQgMS40IDI2LjMgMTMuOCAzMXMyNi4zLTEuNCAzMS0xMy44bDUuOS0xNS4zQzI2Ny45IDQxMS45IDI4MCAzNDYuNyAyODAgMjgwLjlsMC0yNC45elwiXVxufTtcbnZhciBmYUNoYXJnaW5nU3RhdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGFyZ2luZy1zdGF0aW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNWU3XCIsIFwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTJjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0xMjcuN2MtMzIuNS0xMC4yLTU2LTQwLjUtNTYtNzYuM2wwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDMyIDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDM1LjgtMjMuNSA2Ni4xLTU2IDc2LjNMNTIwIDM4MGMwIDM3LjYtMzAuNCA2OC02OCA2OHMtNjgtMzAuNC02OC02OGwwLTEyYzAtMTcuNy0xNC4zLTMyLTMyLTMybDAgMTI5LjRjOS4zIDMuMyAxNiAxMi4yIDE2IDIyLjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRMNzIgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEwLjUgNi43LTE5LjMgMTYtMjIuNkw2NCA2NHptODIuNyAxMjUuN2wzOSAwLTIwLjkgNjYuOWMtMi40IDcuNiAzLjMgMTUuNCAxMS4zIDE1LjQgMi45IDAgNS42LTEgNy44LTIuOWw5NC42LTgyYzMuMS0yLjcgNC45LTYuNiA0LjktMTAuNyAwLTcuOC02LjMtMTQuMS0xNC4xLTE0LjFsLTM5IDAgMjAuOS02Ni45YzIuNC03LjYtMy4zLTE1LjQtMTEuMy0xNS40LTIuOSAwLTUuNiAxLTcuOCAyLjlsLTk0LjYgODJjLTMuMSAyLjctNC45IDYuNi00LjkgMTAuNyAwIDcuOCA2LjMgMTQuMSAxNC4xIDE0LjF6XCJdXG59O1xudmFyIGZhVXNlckxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1sb2NrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTAyXCIsIFwiTTIyNCA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMTk0LjMgMzA0bDU5LjQgMGMyOS43IDAgNTcuNyA3LjMgODIuMyAyMC4xbDAgNC4zYy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw0NS43IDUxMkMyOS4zIDUxMiAxNiA0OTguNyAxNiA0ODIuMyAxNiAzODMuOCA5NS44IDMwNCAxOTQuMyAzMDR6bTMwMS43IC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnpcIl1cbn07XG52YXIgZmFNb2JpbGVTY3JlZW5CdXR0b24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9iaWxlLXNjcmVlbi1idXR0b24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcIm1vYmlsZS1hbHRcIl0sIFwiZjNjZFwiLCBcIk0xNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwTDMwNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMTYgNjR6bTY0IDBsMCAzMDQgMjI0IDAgMC0zMDQtMjI0IDB6TTE5MiA0NzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyelwiXVxufTtcbnZhciBmYU1vYmlsZUFsdCA9IGZhTW9iaWxlU2NyZWVuQnV0dG9uO1xudmFyIGZhQW5jaG9yQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5jaG9yLWNpcmNsZS1jaGVjaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRhYVwiLCBcIk0zMjAgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHpNMjg4IDBjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zTDgwIDMwNy45YzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAxNi42IDAgMzIuNy0xLjkgNDguMi01LjYtMjAuMy0zMC41LTMyLjItNjctMzIuMi0xMDYuNCAwLTI3LjMgNS43LTUzLjMgMTYtNzYuOWwwLTEzNi42YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6XCJdXG59O1xudmFyIGZhUGVyc29uV2Fsa2luZ1dpdGhDYW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi13YWxraW5nLXdpdGgtY2FuZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiYmxpbmRcIl0sIFwiZjI5ZFwiLCBcIk0yMjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE2MCAyMDUuM2wtMjIuNiAyMi42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNC40LTM0LjRjMjMuMi0yMy4yIDU0LjYtMzYuMiA4Ny4zLTM2LjIgMzYuMSAwIDcwLjMgMTUuOCA5My44IDQzLjFsNjguNiA4MGMxMS41IDEzLjQgOS45IDMzLjYtMy41IDQ1LjFzLTMzLjYgOS45LTQ1LjEtMy41bC01NS43LTY1IDAgMTE4LjYgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zem0uMSAxNjUuOGMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41bC02OC4zIDY4LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY4LjMtNjguM2MzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMMTYwLjEgMzcxem0yMzMuNS02Mi4yYzEwLjYtOCAyNS42LTUuOCAzMy42IDQuOGwxNDQgMTkyYzggMTAuNiA1LjggMjUuNi00LjggMzMuNnMtMjUuNiA1LjgtMzMuNi00LjhsLTE0NC0xOTJjLTgtMTAuNi01LjgtMjUuNiA0LjgtMzMuNnpcIl1cbn07XG52YXIgZmFCbGluZCA9IGZhUGVyc29uV2Fsa2luZ1dpdGhDYW5lO1xudmFyIGZhRmlsZVdhdmVmb3JtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtd2F2ZWZvcm0nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImZpbGUtbWVkaWNhbC1hbHRcIl0sIFwiZjQ3OFwiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtOTYgNjAuMyAwIDQ4LjggNjIuN2M1LjEgNi42IDEzLjMgMTAgMjEuNiA5LjFzMTUuNS02LjEgMTkuMS0xMy42bDQyLjktOTEuMiA5LjkgMTkuOGM0LjEgOC4xIDEyLjQgMTMuMyAyMS41IDEzLjNsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTcuMiAwLTI1LjQtNTAuN2MtNC4xLTguMi0xMi42LTEzLjQtMjEuOC0xMy4zcy0xNy41IDUuNS0yMS40IDEzLjhsLTQ3LjMgMTAwLjYtMzItNDEuMUM4Ni40IDMwNy40IDc5LjQgMzA0IDcyIDMwNEwwIDMwNCAwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6XCJdXG59O1xudmFyIGZhRmlsZU1lZGljYWxBbHQgPSBmYUZpbGVXYXZlZm9ybTtcbnZhciBmYUhvdXNlQ3JhY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtY3JhY2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUzYjFcIiwgXCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGw4Ni40IDAtMzEuMy01Mi4yYy00LjEtNi44LTIuNi0xNS41IDMuNS0yMC41TDI1NiAzNjggMTk1LjggMjg1LjJjLTEwLjktMTUgOC4yLTMzLjUgMjIuOC0yMmwxMTcuOSA5Mi42YzggNi4zIDguMiAxOC40IC40IDI0LjlMMjU2IDQ0OCAyOTQuNCA1MTIgNDAwIDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHpcIl1cbn07XG52YXIgZmFIYXRXaXphcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGF0LXdpemFyZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjZlOFwiLCBcIk02NCA0MDBsODUuNy0yMDguMmMxNy00MS4zIDQ3LjgtNzUuMyA4Ny4yLTk2LjNMMzgzLjggMTcuMmMxMi4zLTYuNiAyNi41IDQuNyAyMyAxOC4yTDM2OS42IDE3Ny44Yy0xLjEgNC4xLTEuNiA4LjMtMS42IDEyLjYgMCA2LjMgMS4yIDEyLjYgMy42IDE4LjVsNzYuNCAxOTEuMS0yMDcuMSAwIDExLjgtMzUuNCA0MC40LTEzLjVjNi41LTIuMiAxMC45LTguMyAxMC45LTE1LjJzLTQuNC0xMy0xMC45LTE1LjJsLTQwLjQtMTMuNS0xMy41LTQwLjRDMjM3IDI2MC40IDIzMC45IDI1NiAyMjQgMjU2cy0xMyA0LjQtMTUuMiAxMC45bC0xMy41IDQwLjQtNDAuNCAxMy41QzE0OC40IDMyMyAxNDQgMzI5LjEgMTQ0IDMzNnM0LjQgMTMgMTAuOSAxNS4ybDQwLjQgMTMuNSAxMS44IDM1LjQtMTQzLjEgMHpNMjc5LjYgMTQxLjVjLTEuMS0zLjMtNC4xLTUuNS03LjYtNS41cy02LjUgMi4yLTcuNiA1LjVsLTYuNyAyMC4yLTIwLjIgNi43Yy0zLjMgMS4xLTUuNSA0LjEtNS41IDcuNnMyLjIgNi41IDUuNSA3LjZsMjAuMiA2LjcgNi43IDIwLjJjMS4xIDMuMyA0LjEgNS41IDcuNiA1LjVzNi41LTIuMiA3LjYtNS41bDYuNy0yMC4yIDIwLjItNi43YzMuMy0xLjEgNS41LTQuMSA1LjUtNy42cy0yLjItNi41LTUuNS03LjZsLTIwLjItNi43LTYuNy0yMC4yek0zMiA0NDhsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwiXVxufTtcbnZhciBmYVVzZXJEb2N0b3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1kb2N0b3InLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcInVzZXItbWRcIl0sIFwiZjBmMFwiLCBcIk0yMjQgOGExMjAgMTIwIDAgMSAwIDAgMjQwIDEyMCAxMjAgMCAxIDAgMC0yNDB6bTYwIDMxMi44Yy01LjQtLjUtMTEtLjgtMTYuNi0uOGwtODYuOSAwYy01LjYgMC0xMS4xIC4zLTE2LjYgLjhsMCA2Ny41YzE2LjUgNy42IDI4IDI0LjMgMjggNDMuNiAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTE5LjQgMTEuNS0zNi4xIDI4LTQzLjZsMC01OC40QzYxIDM1MyAxNiA0MTMuNiAxNiA0ODQuNiAxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmwzNjEuMSAwYzE1LjEgMCAyNy40LTEyLjMgMjcuNC0yNy40IDAtNzEtNDUtMTMxLjUtMTA4LTE1NC42bDAgMzcuNGMyMy4zIDguMiA0MCAzMC41IDQwIDU2LjZsMCAzMmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0zMmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCAzMmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC0zMmMwLTI2LjEgMTYuNy00OC4zIDQwLTU2LjZsMC00Ni42elwiXVxufTtcbnZhciBmYVVzZXJNZCA9IGZhVXNlckRvY3RvcjtcbnZhciBmYUNoYXJ0QmFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYXJ0LWJhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYmFyLWNoYXJ0XCJdLCBcImYwODBcIiwgXCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIgODBsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDExMmwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJdXG59O1xudmFyIGZhQmFyQ2hhcnQgPSBmYUNoYXJ0QmFyO1xudmFyIGZhU3ByYXlDYW5TcGFya2xlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcHJheS1jYW4tc3BhcmtsZXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImFpci1mcmVzaGVuZXJcIl0sIFwiZjVkMFwiLCBcIk0xNjAgMzJsMCA4MCAxMjggMCAwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMCAxMjhjLTUzIDAtOTYgNDMtOTYgOTZsMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMDhjMC01My00My05Ni05Ni05NmwtMTI4IDB6bTY0IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek00NDggNDhjMC0xLjQtMS0zLTIuMi0zLjZMNDE2IDMyIDQwMy42IDIuMkM0MDMgMSA0MDEuNCAwIDQwMCAwcy0zIDEtMy42IDIuMkwzODQgMzIgMzU0LjIgNDQuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkwzODQgNjQgMzk2LjQgOTMuOEMzOTcgOTUgMzk4LjYgOTYgNDAwIDk2czMtMSAzLjYtMi4yTDQxNiA2NCA0NDUuOCA1MS42QzQ0NyA1MSA0NDggNDkuNCA0NDggNDh6bTc2LjQgNDUuOEM1MjUgOTUgNTI2LjYgOTYgNTI4IDk2czMtMSAzLjYtMi4yTDU0NCA2NCA1NzMuOCA1MS42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjYgMC0xLjQtMS0zLTIuMi0zLjZMNTQ0IDMyIDUzMS42IDIuMkM1MzEgMSA1MjkuNCAwIDUyOCAwcy0zIDEtMy42IDIuMkw1MTIgMzIgNDgyLjIgNDQuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw1MTIgNjQgNTI0LjQgOTMuOHptNy4yIDEwMC40Yy0uNi0xLjItMi4yLTIuMi0zLjYtMi4ycy0zIDEtMy42IDIuMkw1MTIgMjI0IDQ4Mi4yIDIzNi40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDUxMiAyNTYgNTI0LjQgMjg1LjhjLjYgMS4yIDIuMiAyLjIgMy42IDIuMnMzLTEgMy42LTIuMkw1NDQgMjU2IDU3My44IDI0My42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjYgMC0xLjQtMS0zLTIuMi0zLjZMNTQ0IDIyNCA1MzEuNiAxOTQuMnpNNTEyIDE0NGMwLTEuNC0xLTMtMi4yLTMuNkw0ODAgMTI4IDQ2Ny42IDk4LjJDNDY3IDk3IDQ2NS40IDk2IDQ2NCA5NnMtMyAxLTMuNiAyLjJMNDQ4IDEyOCA0MTguMiAxNDAuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw0NDggMTYwIDQ2MC40IDE4OS44Yy42IDEuMiAyLjIgMi4yIDMuNiAyLjJzMy0xIDMuNi0yLjJMNDgwIDE2MCA1MDkuOCAxNDcuNmMxLjItLjYgMi4yLTIuMiAyLjItMy42elwiXVxufTtcbnZhciBmYUFpckZyZXNoZW5lciA9IGZhU3ByYXlDYW5TcGFya2xlcztcbnZhciBmYUJhaHRTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhaHQtc2lnbicsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZTBhY1wiLCBcIk0xMzYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MC03NC40IDBDMTYuOCA2NCAwIDgwLjggMCAxMDEuNkwwIDQwNi4zYzAgMjMgMTguNyA0MS43IDQxLjcgNDEuN2w3MC4zIDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNDggMGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMiAwLTQwLjEtMjEuMS03NS4zLTUyLjctOTUuMSAxMy4xLTE4LjMgMjAuNy00MC43IDIwLjctNjQuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMmwtMTYgMCAwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xMTIgMTI4bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtMTYgMHptLTQ4IDY0bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtNDggMHpcIl1cbn07XG52YXIgZmFUZW1wZXJhdHVyZUFycm93VXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVtcGVyYXR1cmUtYXJyb3ctdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInRlbXBlcmF0dXJlLXVwXCJdLCBcImUwNDBcIiwgXCJNNjQuNSA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRzLTE0NC02NC41LTE0NC0xNDRjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMNjQuNSA5NnptOTYgMzM2YzM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTIxMi43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjEyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDM5LjEgOS40bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC05LjQtOS40IDAgMTc4LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNzguNy05LjQgOS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2NC02NGM2LTYgMTQuMS05LjQgMjIuNi05LjRzMTYuNiAzLjQgMjIuNiA5LjR6XCJdXG59O1xudmFyIGZhVGVtcGVyYXR1cmVVcCA9IGZhVGVtcGVyYXR1cmVBcnJvd1VwO1xudmFyIGZhV2ViQXdlc29tZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3ZWItYXdlc29tZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTY4MlwiLCBcIk0zNzIuMiA1MmMwIDIwLjktMTIuNCAzOS0zMC4yIDQ3LjJMNDQ4IDE5MiA1NTIuNCAxNzEuMWMtNS4zLTcuNy04LjQtMTcuMS04LjQtMjcuMSAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4YzAgMjYtMjAuNiA0Ny4xLTQ2LjQgNDhMNDgxIDQ0Mi4zYy0xMC4zIDIzLTMzLjIgMzcuNy01OC40IDM3LjdsLTIwNS4yIDBjLTI1LjIgMC00OC0xNC44LTU4LjQtMzcuN0w0Ni40IDE5MkMyMC42IDE5MS4xIDAgMTcwIDAgMTQ0IDAgMTE3LjUgMjEuNSA5NiA0OCA5NnM0OCAyMS41IDQ4IDQ4YzAgMTAuMS0zLjEgMTkuNC04LjQgMjcuMUwxOTIgMTkyIDI5OC4xIDk5LjFjLTE3LjctOC4zLTMwLTI2LjMtMzAtNDcuMSAwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUyelwiXVxufTtcbnZhciBmYU5vbkJpbmFyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdub24tYmluYXJ5JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlODA3XCIsIFwiTTE5MiA1NDRjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2IDAtODYuMyA2Mi4xLTE1OCAxNDQtMTczbDAtNDcuMi00OS43IDI0LjgtMyAxLjNjLTE1LjIgNS43LTMyLjUtLjgtMzkuOS0xNS43LTcuNC0xNC44LTIuMi0zMi42IDExLjUtNDEuM2wyLjgtMS42IDM4LjgtMTkuNC0zOC44LTE5LjRjLTE1LjgtNy45LTIyLjItMjcuMS0xNC4zLTQyLjkgNy40LTE0LjggMjQuOC0yMS40IDQwLTE1LjZsMyAxLjMgNDkuNyAyNC44IDAtNDQuMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDQuMiA0OS43LTI0LjggMy0xLjNjMTUuMi01LjggMzIuNSAuOCAzOS45IDE1LjZzMi4yIDMyLjctMTEuNSA0MS4zbC0yLjggMS42LTM4LjcgMTkuNCAzOC43IDE5LjNjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOS03LjQgMTQuOC0yNC43IDIxLjQtMzkuOSAxNS42bC0zLTEuMy00OS43LTI0LjggMCA0Ny4yYzgxLjkgMTUuMSAxNDQgODYuOCAxNDQgMTczIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2em0wLTY0YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHpcIl1cbn07XG52YXIgZmFOID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMTBdLCBcIjRlXCIsIFwiTTIxLjEgMzMuOWMxMi43LTQuNiAyNi45LS43IDM1LjUgOS42TDMyMCAzNTkuNiAzMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDM4NGMwIDEzLjUtOC40IDI1LjUtMjEuMSAzMC4xcy0yNi45IC43LTM1LjUtOS42TDY0IDE1Mi40IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA1MC41IDguNCAzOC41IDIxLjEgMzMuOXpcIl1cbn07XG52YXIgZmFBcnJvd3NVcERvd25MZWZ0UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3dzLXVwLWRvd24tbGVmdC1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYXJyb3dzXCJdLCBcImYwNDdcIiwgXCJNMjc4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOS40LTkuNCAwIDExNC43LTExNC43IDAgOS40LTkuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTE0LjcgMCAwIDExNC43LTkuNC05LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05LjQgOS40IDAtMTE0LjcgMTE0LjcgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNC0xMTQuNyAwIDAtMTE0LjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHpcIl1cbn07XG52YXIgZmFBcnJvd3MgPSBmYUFycm93c1VwRG93bkxlZnRSaWdodDtcbnZhciBmYUhvdXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTY4LCA2MzQ5OCwgNjM1MDAsIFwiaG9tZVwiLCBcImhvbWUtYWx0XCIsIFwiaG9tZS1sZy1hbHRcIl0sIFwiZjAxNVwiLCBcIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4ek0yNDAgMzIwbDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5Ni0xMjggMCAwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4elwiXVxufTtcbnZhciBmYUhvbWUgPSBmYUhvdXNlO1xudmFyIGZhSG9tZUFsdCA9IGZhSG91c2U7XG52YXIgZmFIb21lTGdBbHQgPSBmYUhvdXNlO1xudmFyIGZhU3Bpbm5lciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcGlubmVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTEwXCIsIFwiTTIwOCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0wIDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek00OCAyMDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0zNjggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNzUgMzY5LjFBNDggNDggMCAxIDEgMTQyLjkgNDM3IDQ4IDQ4IDAgMSAxIDc1IDM2OS4xek03NSA3NUE0OCA0OCAwIDEgMSAxNDIuOSAxNDIuOSA0OCA0OCAwIDEgMSA3NSA3NXpNNDM3IDM2OS4xQTQ4IDQ4IDAgMSAxIDM2OS4xIDQzNyA0OCA0OCAwIDEgMSA0MzcgMzY5LjF6XCJdXG59O1xudmFyIGZhR2F2ZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2F2ZWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImxlZ2FsXCJdLCBcImYwZTNcIiwgXCJNMTY5LjYgMTUzLjRsLTE4LjctMTguN2MtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMjY1LjYtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMEwzMjkuNi02LjZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNMMjE0LjkgMTUzLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwek0yNzYgMjExLjdsLTMxLjQtMzEuNCAxMTItMTEyIDExOS40IDExOS40LTExMiAxMTItMzEuNC0zMS40LTIzMiAyMzJjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwcy0xNS42LTQwLjkgMC01Ni42bDIzMi0yMzJ6TTM5MC45IDM3NC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0w1MDUuNiAyMTQuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOC43IDE4LjdjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNMNDU0LjkgMzkzLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xOC43LTE4Ljd6XCJdXG59O1xudmFyIGZhTGVnYWwgPSBmYUdhdmVsO1xudmFyIGZhVGlja2V0U2ltcGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RpY2tldC1zaW1wbGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInRpY2tldC1hbHRcIl0sIFwiZjNmZlwiLCBcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgOC44LTcuNCAxNS43LTE1LjcgMTguNi0xOC44IDYuNS0zMi4zIDI0LjQtMzIuMyA0NS40czEzLjUgMzguOSAzMi4zIDQ1LjRjOC4zIDIuOSAxNS43IDkuOCAxNS43IDE4LjZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRDMCAzMTEuMiA3LjQgMzA0LjMgMTUuNyAzMDEuNCAzNC41IDI5NC45IDQ4IDI3NyA0OCAyNTZzLTEzLjUtMzguOS0zMi4zLTQ1LjRDNy40IDIwNy43IDAgMjAwLjggMCAxOTJsMC02NHpcIl1cbn07XG52YXIgZmFUaWNrZXRBbHQgPSBmYVRpY2tldFNpbXBsZTtcbnZhciBmYURvdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG92ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODMzMF0sIFwiZjRiYVwiLCBcIk00OTYgNjRjMTMuMiAwIDIwLjcgMTUuMSAxMi44IDI1LjZMNDgwIDEyOCA0ODAgMzA0YzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0bC0xMTIgMC00Ni4zIDQ2LjNjLTEwLjQgMTAuNC0yNi41IDEyLjQtMzkuMSA0LjhMNDEuNSA0NDAuOWMtMTctMTAuMi0xNS0zNS41IDMuNC00Mi45TDE2MCAzNTJDMjMuOCAzMTEuMSA3LjUgMTY5LjggMjIgOTUuNyAyNS42IDc3LjkgNDUuMyA3MS40IDYxLjMgODAuMkwzMjAgMjI0IDMyMCAxNDRjMC00NC4yIDM1LjgtODAgODAtODBsOTYgMHptLTk2IDU2YTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHpNMTgyLjUtOS42YzEyLjQtMTMuNyAzMy4zLTguOSA0Mi41IDcuMWw1Ni40IDk4LjNjLTUuOCAxNC40LTkuMiAzMC4xLTkuNCA0Ni41TDEzOC4xIDY4YzEwLjEtMzEuNiAyNy01OC40IDQ0LjQtNzcuNnpcIl1cbn07XG52YXIgZmFUYXJwRHJvcGxldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YXJwLWRyb3BsZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1N2NcIiwgXCJNMjU2IDE2MGMzNS4zIDAgNjQtMjYuOSA2NC02MCAwLTI0LTMzLjctNzAuMS01Mi4yLTkzLjUtNi4xLTcuNy0xNy41LTcuNy0yMy42IDAtMTguNSAyMy40LTUyLjIgNjkuNS01Mi4yIDkzLjUgMCAzMy4xIDI4LjcgNjAgNjQgNjB6TTM2OCA5NmMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMxNDQgMTU3LjkgMTQ0IDk2YzAtMTEuMSAxLjYtMjEuOSA0LjYtMzJMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc3LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0OTMuMyAzMjIuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiAxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTg0LjYgMGMzIDEwLjEgNC42IDIwLjkgNC42IDMyem04NS41IDE3NkwzMzYgMzg5LjUgMzM2IDI5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5My41IDB6TTk2IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xudmFyIGZhVHJlZUNpdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJlZS1jaXR5JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTg3XCIsIFwiTTI4OCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDggNDggMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzIwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00MTZ6bTY0IDY0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTM1MiAzMDRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNNTI4IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek01MTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTk2IDQ4MGwwLTE2MC0xNiAwYy00NC4yIDAtODAtMzUuOC04MC04MCAwLTI2LjcgMTMuMS01MC4zIDMzLjItNjQuOS0uOC00LjktMS4yLTEwLTEuMi0xNS4xIDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA5NmMwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpcIl1cbn07XG52YXIgZmFUdXJuVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHVybi11cCcsXG4gIGljb246IFszODQsIDUxMiwgWzEwNTQ4LCBcImxldmVsLXVwLWFsdFwiXSwgXCJmM2JmXCIsIFwiTTE2OS40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxMjggMTI4YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMzMi45IDE5MiAzMjAgMTkybC02NCAwIDAgMTYwYzAgODguNC03MS42IDE2MC0xNjAgMTYwbC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNjAtNjQgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlsMTI4LTEyOHpcIl1cbn07XG52YXIgZmFMZXZlbFVwQWx0ID0gZmFUdXJuVXA7XG52YXIgZmFUZW1wZXJhdHVyZVF1YXJ0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVtcGVyYXR1cmUtcXVhcnRlcicsXG4gIGljb246IFszMjAsIDUxMiwgW1widGVtcGVyYXR1cmUtMVwiLCBcInRoZXJtb21ldGVyLTFcIiwgXCJ0aGVybW9tZXRlci1xdWFydGVyXCJdLCBcImYyY2FcIiwgXCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zbDAtMjguN2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjguN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6XCJdXG59O1xudmFyIGZhVGVtcGVyYXR1cmUxID0gZmFUZW1wZXJhdHVyZVF1YXJ0ZXI7XG52YXIgZmFUaGVybW9tZXRlcjEgPSBmYVRlbXBlcmF0dXJlUXVhcnRlcjtcbnZhciBmYVRoZXJtb21ldGVyUXVhcnRlciA9IGZhVGVtcGVyYXR1cmVRdWFydGVyO1xudmFyIGZhU2xpZGVycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbGlkZXJzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzbGlkZXJzLWhcIl0sIFwiZjFkZVwiLCBcIk0zMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsODYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDhzNjEtMTkuNyA3My4zLTQ4TDQ4MCAxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMjY1LjMgNjRDMjUzIDM1LjcgMjI0LjggMTYgMTkyIDE2cy02MSAxOS43LTczLjMgNDhMMzIgNjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI0Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhsNTQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01NC43IDBjLTEyLjMtMjguMy00MC41LTQ4LTczLjMtNDhzLTYxIDE5LjctNzMuMyA0OEwzMiAyMjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU0LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OEw0ODAgNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yNDYuNyAwYy0xMi4zLTI4LjMtNDAuNS00OC03My4zLTQ4cy02MSAxOS43LTczLjMgNDhMMzIgMzg0elwiXVxufTtcbnZhciBmYVNsaWRlcnNIID0gZmFTbGlkZXJzO1xudmFyIGZhTW9zcXVlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vc3F1ZScsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODMzMl0sIFwiZjY3OFwiLCBcIk0xNzQuOCAyMjRsMjI2LjQgMGM0My41IDAgNzguOC0zNS4zIDc4LjgtNzguOCAwLTI1LjUtMTIuMy00OS40LTMzLjEtNjQuMkwyOTcuMy0yNS40Yy01LjYtMy45LTEzLTMuOS0xOC41IDBMMTI5LjEgODFDMTA4LjMgOTUuOCA5NiAxMTkuNyA5NiAxNDUuMiA5NiAxODguNyAxMzEuMyAyMjQgMTc0LjggMjI0ek01MTIgNTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNDQ4IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDIwNi4zIDAgMjI0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwek0yNDAgMzg0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCA4MC05NiAwIDAtODB6XCJdXG59O1xudmFyIGZhSCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTA0XSwgXCI0OFwiLCBcIk0zMjAgMjg4bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAtMjU2IDAgMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAyNTYgMHpcIl1cbn07XG52YXIgZmFJbmZvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2luZm8nLFxuICBpY29uOiBbMTkyLCA1MTIsIFtdLCBcImYxMjlcIiwgXCJNNDggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMjI0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbnZhciBmYVBlcnNvbldhbGtpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXdhbGtpbmcnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjg2OTQsIFwid2Fsa2luZ1wiXSwgXCJmNTU0XCIsIFwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMTA1LjQgMjI3LjlsMjIuNi0yMi42IDAgNjkuM2MwIDI4IDEyLjIgNTQuNyAzMy41IDcyLjlsNzEuNCA2MS4yYzUuOSA1LjEgOS44IDEyLjEgMTAuOSAxOS44bDEyLjYgODguMWMyLjUgMTcuNSAxOC43IDI5LjcgMzYuMiAyNy4yczI5LjctMTguNyAyNy4yLTM2LjJsLTEyLjYtODguMWMtMy4zLTIzLjEtMTQuOS00NC4xLTMyLjYtNTkuM2wtMzQuNS0yOS42IDAtMTE1LjIgMy44IDQuN2MxOC4yIDIyLjggNDUuOCAzNiA3NSAzNmwzMy4yIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMzLjIgMGMtOS43IDAtMTguOS00LjQtMjUtMTJsLTE3LjktMjIuNGMtMjMtMjguOC01Ny45LTQ1LjYtOTQuOC00NS42LTMyLjIgMC02My4xIDEyLjgtODUuOCAzNS42TDYwLjEgMTgyLjZDNDIuMSAyMDAuNiAzMiAyMjUgMzIgMjUwLjVMMzIgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNy41YzAtOC41IDMuNC0xNi42IDkuNC0yMi42em0xMi40IDE3OS40Yy0xLjUgNS4yLTQuMyAxMC04LjEgMTMuOEw0MS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOGwtMTAuNCAzNi4yelwiXVxufTtcbnZhciBmYVdhbGtpbmcgPSBmYVBlcnNvbldhbGtpbmc7XG52YXIgZmFBcnJvd1R1cm5Eb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXR1cm4tZG93bicsXG4gIGljb246IFszODQsIDUxMiwgW1wibGV2ZWwtZG93blwiXSwgXCJmMTQ5XCIsIFwiTTMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJTMTQuMyAwIDMyIDBsOTYgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzA2LjcgNzMuNC03My40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTEyOCAxMjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xMjgtMTI4Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE2MCA0MDIuNyAxNjAgOTZjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgNjR6XCJdXG59O1xudmFyIGZhTGV2ZWxEb3duID0gZmFBcnJvd1R1cm5Eb3duO1xudmFyIGZhUm9hZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb2FkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NzM5XSwgXCJmMDE4XCIsIFwiTTIyMy45IDMybC03Ni4yIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDEuNCA0MjAuNUMtNi4xIDQ1MC43IDE2LjggNDgwIDQ4IDQ4MGwxNzUuOSAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0IDE3Ni4xIDBjMzEuMiAwIDU0LjEtMjkuMyA0Ni42LTU5LjVMNDI2LjUgODAuNkM0MTkuNCA1Mi4xIDM5My44IDMyIDM2NC4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em02NCAxOTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6XCJdXG59O1xudmFyIGZhU3BpcmFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NwaXJhbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTgwYVwiLCBcIk0xMTUuNSA3LjRjMTMuNi0xMS4zIDMzLjgtOS41IDQ1LjEgNC4xczkuNSAzMy44LTQuMSA0NS4xQzEwMC4yIDEwMy41IDY0IDE3NS4yIDY0IDI1NiA2NCAzNjIgMTUwIDQ0OCAyNTYgNDQ4czE5Mi04NiAxOTItMTkyYzAtNzUuMS02MC45LTEzNi0xMzYtMTM2UzE3NiAxODAuOSAxNzYgMjU2YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC00OC42IDM5LjQtODggODgtODhzODggMzkuNCA4OCA4OGMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMxMTIgMzM1LjUgMTEyIDI1NmMwLTExMC41IDg5LjUtMjAwIDIwMC0yMDBzMjAwIDg5LjUgMjAwIDIwMGMwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2UzAgMzk3LjQgMCAyNTZDMCAxNTUuOCA0NSA2Ni4xIDExNS41IDcuNHpcIl1cbn07XG52YXIgZmFGYWNlRnJvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1mcm93bicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk3ODUsIFwiZnJvd25cIl0sIFwiZjExOVwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptOTAuNi0xMTMuOWMtMjAuNC0yOC01My40LTQ2LjEtOTAuNi00Ni4xcy03MC4yIDE4LjEtOTAuNiA0Ni4xYy03LjggMTAuNy0yMi44IDEzLjEtMzMuNSA1LjNzLTEzLjEtMjIuOC01LjMtMzMuNUMxNTUuNyAzMzAgMjAyLjggMzA0IDI1NiAzMDRzMTAwLjMgMjYgMTI5LjQgNjUuOWM3LjggMTAuNyA1LjQgMjUuNy01LjMgMzMuNXMtMjUuNyA1LjQtMzMuNS01LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFGcm93biA9IGZhRmFjZUZyb3duO1xudmFyIGZhV2luZUdsYXNzRW1wdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2luZS1nbGFzcy1lbXB0eScsXG4gIGljb246IFszMjAsIDUxMiwgW1wid2luZS1nbGFzcy1hbHRcIl0sIFwiZjVjZVwiLCBcIk02NCAwQzQ4LjcgMCAzNS42IDEwLjggMzIuNiAyNS43TDMuMiAxNzNDMS4xIDE4My41IDAgMTk0LjIgMCAyMDVsMCAzYzAgNzcuNCA1NSAxNDIgMTI4IDE1Ni44bDAgMTE1LjItNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTExNS4yQzI2NSAzNTAgMzIwIDI4NS40IDMyMCAyMDhsMC0zYzAtMTAuNy0xLjEtMjEuNC0zLjItMzJMMjg3LjQgMjUuN0MyODQuNCAxMC44IDI3MS4zIDAgMjU2IDBMNjQgMHptMS45IDE4NS42TDkwLjIgNjQgMjI5LjggNjQgMjU0LjEgMTg1LjZjMS4zIDYuNCAxLjkgMTIuOSAxLjkgMTkuNGwwIDNjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0zYzAtNi41IC42LTEzIDEuOS0xOS40elwiXVxufTtcbnZhciBmYVdpbmVHbGFzc0FsdCA9IGZhV2luZUdsYXNzRW1wdHk7XG52YXIgZmFDbGFwcGVyYm9hcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xhcHBlcmJvYXJkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMTMxXCIsIFwiTTQ0OCA2NGMyIDAgMy45IC4xIDUuOCAuM2wtOTUuNyA5NS43IDY3LjkgMCA3Mi03MmM4LjggMTEgMTQgMjQuOSAxNCA0MGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDcwLjEgMC05NiA5NiA2Ny45IDAgOTUtOTUgMS0xIDkyLjEgMC05NiA5NiA2Ny45IDAgOTUtOTUgMS0xIDg2LjEgMHpcIl1cbn07XG52YXIgZmFGb3J3YXJkU3RlcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmb3J3YXJkLXN0ZXAnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcInN0ZXAtZm9yd2FyZFwiXSwgXCJmMDUxXCIsIFwiTTIxIDM2LjhjMTIuOS03IDI4LjctNi4zIDQxIDEuOEwzMjAgMjA4LjEgMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzODRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDQuMS0yNTggMTY5LjZjLTEyLjMgOC4xLTI4IDguOC00MSAxLjhTMCA0NTQuNyAwIDQ0MEwwIDcyQzAgNTcuMyA4LjEgNDMuOCAyMSAzNi44elwiXVxufTtcbnZhciBmYVN0ZXBGb3J3YXJkID0gZmFGb3J3YXJkU3RlcDtcbnZhciBmYVNxdWFyZVVwUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXVwLXJpZ2h0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbODU5OSwgXCJleHRlcm5hbC1saW5rLXNxdWFyZS1hbHRcIl0sIFwiZjM2MFwiLCBcIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xNjggMTYwYy05LjcgMC0xOC41IDUuOC0yMi4yIDE0LjhzLTEuNyAxOS4zIDUuMiAyNi4ybDM1IDM1LTY3IDY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwyNCAyNGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2Ny02NyAzNSAzNWM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzMyMCAzMjEuNyAzMjAgMzEybDAtMTI4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMjggMHpcIl1cbn07XG52YXIgZmFFeHRlcm5hbExpbmtTcXVhcmVBbHQgPSBmYVNxdWFyZVVwUmlnaHQ7XG52YXIgZmFCb29rSm91cm5hbFdoaWxscyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rLWpvdXJuYWwtd2hpbGxzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJqb3VybmFsLXdoaWxsc1wiXSwgXCJmNjZhXCIsIFwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yNzQuMSA5OS4yYzIuNi0yLjYgNi43LTMuMSA5LjktMS4xIDMyLjEgMjAgNTMuNCA1NS42IDUzLjQgOTYuMiAwIDYyLjYtNTAuNyAxMTMuMy0xMTMuMyAxMTMuM1MxMTAuNyAyNTYuOSAxMTAuNyAxOTQuM2MwLTQwLjYgMjEuNC03Ni4yIDUzLjQtOTYuMiAzLjEtMiA3LjItMS41IDkuOSAxLjFzMy4xIDYuNyAxLjIgOS44Yy01LjIgOC42LTguMiAxOC43LTguMiAyOS41IDAgMTUuMSA1LjkgMjguOCAxNS41IDM5LjEgMi41IDIuNyAyLjkgNi43IC45IDkuNy00LjcgNy40LTcuNCAxNi4xLTcuNCAyNS41IDAgMjEuNiAxNC4zIDM5LjkgMzQgNDUuOWwxLTI0LjhjLTcuMS00LjQtMTEuOC0xMi4yLTExLjgtMjEuMSAwLTkuNiA1LjUtMTggMTMuNS0yMi4xbDMuMy04MS44Yy4yLTQuMyAzLjctNy43IDgtNy43czcuOCAzLjQgOCA3LjdsMy4zIDgxLjhjOCA0LjEgMTMuNSAxMi40IDEzLjUgMjIuMSAwIDguOS00LjcgMTYuNy0xMS44IDIxLjFsMSAyNC44YzE5LjYtNiAzMy45LTI0LjEgMzQtNDUuNmwwLS42Yy0uMS05LjMtMi43LTE3LjktNy40LTI1LjItMS45LTMuMS0xLjYtNy4xIC45LTkuNyA5LjYtMTAuMiAxNS41LTIzLjkgMTUuNS0zOS4xIDAtMTAuOC0zLTIwLjktOC4yLTI5LjUtMS45LTMuMi0xLjQtNy4yIDEuMi05Ljh6XCJdXG59O1xudmFyIGZhSm91cm5hbFdoaWxscyA9IGZhQm9va0pvdXJuYWxXaGlsbHM7XG52YXIgZmFDaGFtcGFnbmVHbGFzc2VzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYW1wYWduZS1nbGFzc2VzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI5MzQ2LCBcImdsYXNzLWNoZWVyc1wiXSwgXCJmNzlmXCIsIFwiTTE1NS42IDE3LjNDMTYzIDMgMTc5LjktMy42IDE5NSAxLjlsMTI1IDQ1LjYgMTI1LTQ1LjZjMTUuMS01LjUgMzIgMS4xIDM5LjQgMTUuNGw3OC44IDE1Mi45YzI4LjggNTUuOCAxMC4zIDEyMi4zLTM4LjUgMTU2LjZsMzEuMyA4Ni4yIDQxLTE1YzE2LjYtNiAzNSAyLjUgNDEgMTkuMXMtMi41IDM1LTE5LjEgNDFjLTQ3LjQgMTcuMy05NC44IDM0LjUtMTQyLjIgNTEuOC0xNi42IDYuMS0zNS0yLjUtNDEtMTkuMXMyLjUtMzUgMTkuMS00MWw0MS0xNS0zMS4zLTg2LjJjLTU5LjQgNS4yLTExNi4yLTMzLjktMTMwLTk1LjJsLTE0LjYtNjQuNy0xNC42IDY0LjdjLTEzLjggNjEuMy03MC42IDEwMC40LTEzMCA5NS4ybC0zMS4zIDg2LjIgNDEgMTVjMTYuNiA2LjEgMjUuMiAyNC40IDE5LjEgNDFzLTI0LjQgMjUuMi00MSAxOS4xYy00Ny40LTE3LjMtOTQuOC0zNC42LTE0Mi4yLTUxLjgtMTYuNi02LjEtMjUuMi0yNC40LTE5LjEtNDFTMjYuMyAzOTIgNDIuOSAzOThsNDEgMTUgMzEuMy04Ni4yQzY2LjUgMjkyLjUgNDguMSAyMjYgNzYuOSAxNzAuMkwxNTUuNiAxNy4zem00NCA1NC40bC0yNy4yIDUyLjggODkuMiAzMi41IDEzLjEtNTcuOS03NS4xLTI3LjR6bTI0MC45IDBsLTc1LjEgMjcuNCAxMy4xIDU3LjkgODkuMi0zMi41LTI3LjItNTIuOHpcIl1cbn07XG52YXIgZmFHbGFzc0NoZWVycyA9IGZhQ2hhbXBhZ25lR2xhc3NlcztcbnZhciBmYUR1bXBzdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2R1bXBzdGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzkzXCIsIFwiTTEzMi4zIDY0TDEwNi43IDE5MiAyNCAxOTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNC4xYzAtMi42IC40LTUuMSAxLjItNy42TDI2LjUgODAuNEMyOS44IDcwLjYgMzkgNjQgNDkuMyA2NGw4MyAwem0yMy40IDEyOGwyNS42LTEyOCA4Mi43IDAgMCAxMjgtMTA4LjMgMHpNMzEyIDY0bDgyLjcgMCAyNS42IDEyOC0xMDguMyAwIDAtMTI4em0xMzEuNyAwbDgzIDBjMTAuMyAwIDE5LjUgNi42IDIyLjggMTYuNGwyNS4zIDc1LjljLjggMi40IDEuMiA1IDEuMiA3LjZsMCA0LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTgyLjcgMC0yNS42LTEyOHpNMjUuNyAyNDBsNTI0LjcgMGMtLjQgMi4xLTEzLjMgNzMuNC0zOC45IDIxMy43LTMgMTYuMy0xNy45IDI3LjYtMzQuNCAyNi4xUzQ0OCA0NjQuNiA0NDggNDQ4bDAtMTYtMzIwIDAgMCAxNmMwIDE2LjYtMTIuNiAzMC40LTI5LjEgMzEuOVM2Ny41IDQ3MCA2NC41IDQ1My43QzM5IDMxMy4zIDI2IDI0Mi4xIDI1LjcgMjQwelwiXVxufTtcbnZhciBmYUhlYXJ0Q2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhcnQtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTAxXCIsIFwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43elwiXVxufTtcbnZhciBmYUNvbXB1dGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbXB1dGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNGU1XCIsIFwiTTM0OC44IDMyQzM0MC43IDQ2LjEgMzM2IDYyLjUgMzM2IDgwbDAgMTYtMjcyIDAgMCAyMjQgMjcyIDAgMCA2NC0yNzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyODQuOCAwek0zMzYgNDMyYzAgMTcuNSA0LjcgMzMuOSAxMi44IDQ4TDEyMCA0ODBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjE2IDB6TTQzMiAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTM1MmMwLTI2LjUgMjEuNS00OCA0OC00OHptMjQgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem01NiAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpcIl1cbn07XG52YXIgZmFXYW5kTWFnaWMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2FuZC1tYWdpYycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibWFnaWNcIl0sIFwiZjBkMFwiLCBcIk0zOTguNSAxMi4ybC04OC4yIDg4LjIgMTAxLjMgMTAxLjMgODguMi04OC4yQzUwNy42IDEwNS42IDUxMiA5NSA1MTIgODRzLTQuNC0yMS42LTEyLjItMjkuNUw0NTcuNSAxMi4yQzQ0OS42IDQuNCA0MzkgMCA0MjggMHMtMjEuNiA0LjQtMjkuNSAxMi4yek0yNzYuNCAxMzQuM0wxMi4yIDM5OC41QzQuNCA0MDYuNCAwIDQxNyAwIDQyOHM0LjQgMjEuNiAxMi4yIDI5LjVsNDIuMyA0Mi4zQzYyLjQgNTA3LjYgNzMgNTEyIDg0IDUxMnMyMS42LTQuNCAyOS41LTEyLjJMMzc3LjcgMjM1LjYgMjc2LjQgMTM0LjN6XCJdXG59O1xudmFyIGZhTWFnaWMgPSBmYVdhbmRNYWdpYztcbnZhciBmYUJyYWluID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyYWluJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NTA0XSwgXCJmNWRjXCIsIFwiTTEyMCA1NmMwLTMwLjkgMjUuMS01NiA1Ni01NmwyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0yOS44IDAtNTQuOS0yMC40LTYyLTQ4LS43IDAtMS4zIDAtMiAwLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtMTggNi0zNC42IDE2LTQ4LTE5LjQtMTQuNi0zMi0zNy44LTMyLTY0IDAtMzAuOSAxNy42LTU3LjggNDMuMi03MS4xLTcuMS0xMi0xMS4yLTI2LTExLjItNDAuOSAwLTQ0LjIgMzUuOC04MCA4MC04MGwwLTI0em0yNzIgMGwwIDI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMTUtNC4xIDI5LTExLjIgNDAuOSAyNS43IDEzLjMgNDMuMiA0MC4xIDQzLjIgNzEuMSAwIDI2LjItMTIuNiA0OS40LTMyIDY0IDEwIDEzLjQgMTYgMzAgMTYgNDggMCA0NC4yLTM1LjggODAtODAgODAtLjcgMC0xLjMgMC0yIDAtNy4xIDI3LjYtMzIuMiA0OC02MiA0OGwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGMzMC45IDAgNTYgMjUuMSA1NiA1NnpcIl1cbn07XG52YXIgZmFCcmllZmNhc2VNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyaWVmY2FzZS1tZWRpY2FsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDY5XCIsIFwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtODAgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDIwMCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnptODAgMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwelwiXVxufTtcbnZhciBmYUhvdXNlTWVkaWNhbENpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLW1lZGljYWwtY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTEyXCIsIFwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbnZhciBmYUNvZGVDb21taXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29kZS1jb21taXQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYzODZcIiwgXCJNMjg4IDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTU2LjgtNDhDNDMwIDM2MSAzNjUuNCA0MTYgMjg4IDQxNlMxNDYgMzYxIDEzMS4yIDI4OEwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTkuMiAwQzE0NiAxNTEgMjEwLjYgOTYgMjg4IDk2czE0MiA1NSAxNTYuOCAxMjhsOTkuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05OS4yIDB6XCJdXG59O1xudmFyIGZhUGVyc29uQnJlYXN0ZmVlZGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tYnJlYXN0ZmVlZGluZycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTUzYVwiLCBcIk0yMjQgMGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNNDM2LjggMzgyLjhMMzczLjUgNDYyYy0xNi42IDIwLjctNDYuOCAyNC4xLTY3LjUgNy41LTE3LjYtMTQuMS0yMi43LTM4LjEtMTMuNS01Ny43bC0uNy0uMWMtMzguOS01LjYtNzQuMy0yNS4xLTk5LjctNTQuOGwwLTM2LjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMwIC44IDAgMS42IC4xIDIuNGwxMDEuNCA1MC43YzIzLjcgMTEuOSAzMy4zIDQwLjcgMjEuNSA2NC40cy00MC43IDMzLjMtNjQuNCAyMS41TDI3LjIgNDI3LjNjLTEuMS0uNS0yLjItMS4xLTMuMy0xLjctNC45LTIuOC05LjItNi40LTEyLjYtMTAuNi00LjYtNS40LTcuOC0xMS43LTkuNi0xOC40LTMuMy0xMi0xLjktMjUuMiA0LjgtMzYuNiAuNi0xLjEgMS4zLTIuMiAyLTMuMkw3NS42IDI1Ni4xYzI2LjctNDAuMSA3MS43LTY0LjEgMTE5LjgtNjQuMWw3NS4yIDBjNDYuNSAwIDkwLjEgMjIuNSAxMTcuMiA2MC4zbDUwLjcgNzAuOWMyLjIgMyA0IDYuMSA1LjUgOS40IDIuOSA2LjcgNC4zIDEzLjggNCAyMC44LS4zIDEwLjYtNC4yIDIxLTExLjIgMjkuNHpNMzIwIDMzMmE0NCA0NCAwIDEgMCAtODggMCA0NCA0NCAwIDEgMCA4OCAwelwiXVxufTtcbnZhciBmYVBlcnNvblJheXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLXJheXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NGRcIiwgXCJNMzEyLjUgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN2w0Ni4zIDYyLjRjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDMzM4LjUgMTMyIDI5OC44IDExMiAyNTYuNSAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNmw0Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek03LjUgN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsODAgODBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxLjUgN0MzMi4xLTIuMyAxNi45LTIuMyA3LjUgN3ptNDY0IDBsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMHpNNy41IDUwNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC04MCA4MGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjl6bTQ2NCAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODAtODBjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsODAgODB6XCJdXG59O1xudmFyIGZhTWFuYXRTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hbmF0LXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUxZDVcIiwgXCJNMTkyIDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQxLjVDNzMuMyAxMDkuMyAwIDE5MC4xIDAgMjg4TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC02Mi41IDQ0LjgtMTE0LjUgMTA0LTEyNS44TDE2OCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI5My44YzU5LjIgMTEuMiAxMDQgNjMuMyAxMDQgMTI1LjhsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTk3LjktNzMuMy0xNzguNy0xNjgtMTkwLjVMMjE2IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYVNvcnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc29ydCcsXG4gIGljb246IFszODQsIDUxMiwgW1widW5zb3J0ZWRcIl0sIFwiZjBkY1wiLCBcIk0yLjQgMjA0LjJjNSAxMiAxNi42IDE5LjggMjkuNiAxOS44bDMyMCAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXptMCAxMDMuNWMtNSAxMi0yLjIgMjUuNyA2LjkgMzQuOWwxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzY0LjkgMjg4IDM1MiAyODhMMzIgMjg4Yy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44elwiXVxufTtcbnZhciBmYVVuc29ydGVkID0gZmFTb3J0O1xudmFyIGZhQ2lyY2xlUmFkaWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1yYWRpYXRpb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5NzYyLCBcInJhZGlhdGlvbi1hbHRcIl0sIFwiZjdiYVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem04MCAwbDY0LjMgMGM4LjcgMCAxNS43LTcuMSAxNy4zLTE1LjYgNC40LTI0LjQgMTguMS00NS41IDM3LjItNTkuNyA3LjQtNS41IDEwLjYtMTUuNiA2LTIzLjZsLTMyLjUtNTYuM2MtNC4zLTcuNS0xMy45LTEwLjMtMjEuMi01LjUtNDguMiAzMS41LTgxLjMgODQuMi04Ni4zIDE0NC44LS43IDguOCA2LjUgMTYgMTUuMyAxNnptMTM3LjkgODkuOGMtOC41LTMuNy0xOC44LTEuNC0yMy41IDYuNmwtMzEgNTMuOGMtNC4zIDcuNS0xLjkgMTcuMiA1LjggMjEuMSAyNi4xIDEzLjIgNTUuNSAyMC43IDg2LjggMjAuN3M2MC43LTcuNSA4Ni44LTIwLjdjNy43LTMuOSAxMC4xLTEzLjYgNS44LTIxLjFsLTMxLTUzLjhjLTQuNi04LTE1LTEwLjMtMjMuNS02LjYtMTEuNyA1LTI0LjUgNy44LTM4LjEgNy44cy0yNi40LTIuOC0zOC4xLTcuOHpNMzUwLjQgMjQwLjRjMS42IDguNiA4LjUgMTUuNiAxNy4zIDE1LjZsNjQuMyAwYzguOCAwIDE2LjEtNy4yIDE1LjMtMTYtNS02MC42LTM4LjEtMTEzLjItODYuMy0xNDQuOC03LjMtNC44LTE2LjgtMi0yMS4yIDUuNUwzMDcuMyAxNTdjLTQuNiA4LTEuNCAxOC4xIDYgMjMuNiAxOS4xIDE0LjIgMzIuNyAzNS40IDM3LjIgNTkuN3pNMjU2IDMwNS43YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIl1cbn07XG52YXIgZmFSYWRpYXRpb25BbHQgPSBmYUNpcmNsZVJhZGlhdGlvbjtcbnZhciBmYUxhcHRvcENvZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFwdG9wLWNvZGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1ZmNcIiwgXCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDAtNjQgMCAwLTI0MC0zODQgMCAwIDI0MC02NCAwIDAtMjQwek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjIgMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODEgMjA5bC0zMSAzMSAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00OC00OGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNDgtNDhjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45ek0zOTMgMTc1bDQ4IDQ4YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwelwiXVxufTtcbnZhciBmYVNpbmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2luaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA2ZFwiLCBcIk0yODggOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAxOTItNjQgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtODAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwwIDY0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDAtNDBjMC00LjQgMy42LTggOC04bDU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgNDAtNjQgMCAwLTE5MnpcIl1cbn07XG52YXIgZmFBcnJvd1VwRnJvbVdhdGVyUHVtcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC1mcm9tLXdhdGVyLXB1bXAnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0YjZcIiwgXCJNMTQ0IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE3Ni0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDc5LjZjMTcuNi0yIDM2IDIuNSA1MS4zIDE0IDMuNCAyLjYgNi4xIDEuNCA5LjgtLjNsLjgtLjRjNS43LTIuNiAxMi45LTYuOSAyMS43LTEzLjUgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi4zLTMxLjQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCA2LjkgNS4yIDEyLjggOSAxOCAxMS43IC42IC4zIDEuMiAuNiAxLjggMSA0LjIgMi4zIDguNSA0LjYgMTIuNiAxLjUgMTAuNy04LjEgMjIuOS0xMi43IDM1LjMtMTQuMWwwLTc5LjVjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTU2IDAgMC0xNDIuMSA0NyA0N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDk3IDM5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtODggODhjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0Ny00NyAwIDE0Mi4xLTEzNiAwIDAtMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDE0NCAzMnpNNDc0LjYgNDc2LjFjMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyA0ODIuMyAxNy42IDQ5MC4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHpcIl1cbn07XG52YXIgZmFNaWNyb3Bob25lTGluZXNTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtaWNyb3Bob25lLWxpbmVzLXNsYXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJtaWNyb3Bob25lLWFsdC1zbGFzaFwiXSwgXCJmNTM5XCIsIFwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxNTEgMTUxIDAtMzAuMmMwLTUzIDQzLTk2IDk2LTk2IDUwLjMgMCA5MS42IDM4LjcgOTUuNyA4OEwzMjggODhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYgMCAwIDQ4LTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTUuNyAwYy0xLjkgMjIuOS0xMS44IDQzLjQtMjYuOSA1OWwzMy45IDMzLjljMjUuNS0yNiA0MS4zLTYxLjYgNDEuMy0xMDAuOWwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDUyLjYtMjEuMSAxMDAuMi01NS4zIDEzNC44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45ek0yOTcuOCAzNjcuN2w0MS40IDQxLjRjLTguOCAyLjQtMTcuOSA0LjMtMjcuMyA1LjRsMCA0OS41IDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OS41QzE2OS4zIDQwMi43IDk2IDMyMS45IDk2IDIyNGwwLTQwYzAtNS4xIDEuNi05LjkgNC40LTEzLjhsNDMuNiA0My42IDAgMTAuMmMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NCAzLjMgMCA2LjYtLjEgOS44LS4zelwiXVxufTtcbnZhciBmYU1pY3JvcGhvbmVBbHRTbGFzaCA9IGZhTWljcm9waG9uZUxpbmVzU2xhc2g7XG52YXIgZmFTZXJ2ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2VydmVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjMzXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMTYgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em01NiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek02NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAyODh6bTIxNiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTU2IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xudmFyIGZhVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4MTAwLCA2MjE0NCwgNjI0NzAsIFwidXNlci1hbHRcIiwgXCJ1c2VyLWxhcmdlXCJdLCBcImYwMDdcIiwgXCJNMjI0IDI0OGExMjAgMTIwIDAgMSAwIDAtMjQwIDEyMCAxMjAgMCAxIDAgMCAyNDB6bS0yOS43IDU2Qzk1LjggMzA0IDE2IDM4My44IDE2IDQ4Mi4zIDE2IDQ5OC43IDI5LjMgNTEyIDQ1LjcgNTEybDM1Ni42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC05OC41LTc5LjgtMTc4LjMtMTc4LjMtMTc4LjNsLTU5LjQgMHpcIl1cbn07XG52YXIgZmFVc2VyQWx0ID0gZmFVc2VyO1xudmFyIGZhVXNlckxhcmdlID0gZmFVc2VyO1xudmFyIGZhU25vd2ZsYWtlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nub3dmbGFrZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEwMDUyLCAxMDA1NF0sIFwiZjJkY1wiLCBcIk0yODguMiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjIuMS0xNS0xNWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw0OSA0OSAwIDcwLjYtNjEuMi0zNS4zLTE3LjktNjYuOWMtMy40LTEyLjgtMTYuNi0yMC40LTI5LjQtMTdTOTUuMyA5OCA5OC43IDExMC44bDUuNSAyMC41LTUzLjctMzFDMzUuMiA5MS41IDE1LjYgOTYuNyA2LjggMTEycy0zLjYgMzQuOSAxMS43IDQzLjdsNTMuNyAzMS0yMC41IDUuNWMtMTIuOCAzLjQtMjAuNCAxNi42LTE3IDI5LjRzMTYuNiAyMC40IDI5LjQgMTdsNjYuOS0xNy45IDYxLjIgMzUuMy02MS4yIDM1LjMtNjYuOS0xNy45Yy0xMi44LTMuNC0yNiA0LjItMjkuNCAxN3M0LjIgMjYgMTcgMjkuNGwyMC41IDUuNS01My43IDMxQzMuMiAzNjUuMS0yIDM4NC43IDYuOCA0MDBzMjguNCAyMC42IDQzLjcgMTEuN2w1My43LTMxLTUuNSAyMC41Yy0zLjQgMTIuOCA0LjIgMjYgMTcgMjkuNHMyNi00LjIgMjkuNC0xN2wxNy45LTY2LjkgNjEuMi0zNS4zIDAgNzAuNi00OSA0OWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDE1LTE1IDAgNjIuMWMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjIuMSAxNSAxNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ5LTQ5IDAtNzAuNiA2MS4yIDM1LjMgMTcuOSA2Ni45YzMuNCAxMi44IDE2LjYgMjAuNCAyOS40IDE3czIwLjQtMTYuNiAxNy0yOS40bC01LjUtMjAuNSA1My43IDMxYzE1LjMgOC44IDM0LjkgMy42IDQzLjctMTEuN3MzLjYtMzQuOS0xMS43LTQzLjdsLTUzLjctMzEgMjAuNS01LjVjMTIuOC0zLjQgMjAuNC0xNi42IDE3LTI5LjRzLTE2LjYtMjAuNC0yOS40LTE3bC02Ni45IDE3LjktNjEuMi0zNS4zIDYxLjItMzUuMyA2Ni45IDE3LjljMTIuOCAzLjQgMjYtNC4yIDI5LjQtMTdzLTQuMi0yNi0xNy0yOS40bC0yMC41LTUuNSA1My43LTMxYzE1LjMtOC44IDIwLjYtMjguNCAxMS43LTQzLjdzLTI4LjQtMjAuNS00My43LTExLjdsLTUzLjcgMzEgNS41LTIwLjVjMy40LTEyLjgtNC4yLTI2LTE3LTI5LjRzLTI2IDQuMi0yOS40IDE3bC0xNy45IDY2LjktNjEuMiAzNS4zIDAtNzAuNiA0OS00OWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xNSAxNSAwLTYyLjF6XCJdXG59O1xudmFyIGZhU2t1bGxDcm9zc2JvbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NrdWxsLWNyb3NzYm9uZXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgzNjksIDk3NjBdLCBcImY3MTRcIiwgXCJNMzg0IDE0NEMzODQgNjQuNSAzMTIuNCAwIDIyNCAwUzY0IDY0LjUgNjQgMTQ0YzAgNDcuMSAyNS4xIDg4LjkgNjQgMTE1LjJsMCAyOC44YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjguOGMzOC45LTI2LjMgNjQtNjguMSA2NC0xMTUuMnpNMTYwIDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTQ0NS41IDMzOS43Yy02LjgtMTYuMy0yNS41LTI0LTQxLjgtMTcuMkwyMjQgMzk3LjMgNDQuMyAzMjIuNWMtMTYuMy02LjgtMzUgLjktNDEuOCAxNy4ycy45IDM1IDE3LjIgNDEuOEwxNDAuOCA0MzIgMTkuNyA0ODIuNUMzLjQgNDg5LjMtNC4zIDUwOCAyLjUgNTI0LjNzMjUuNSAyNCA0MS44IDE3LjJMMjI0IDQ2Ni43IDQwMy43IDU0MS41YzE2LjMgNi44IDM1LS45IDQxLjgtMTcuMnMtLjktMzUtMTcuMi00MS44TDMwNy4yIDQzMiA0MjguMyAzODEuNWMxNi4zLTYuOCAyNC0yNS41IDE3LjItNDEuOHpcIl1cbn07XG52YXIgZmFQZXNvU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXNvLXNpZ24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUyMjJcIiwgXCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDY0LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDMyLTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgOTYgMGM2NS42IDAgMTIyLTM5LjUgMTQ2LjctOTZsMzcuMyAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNC44IDBjLjUtNS4zIC44LTEwLjYgLjgtMTZzLS4zLTEwLjctLjgtMTZsMjQuOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zNy4zIDBDMzYyIDcxLjUgMzA1LjYgMzIgMjQwIDMyTDExMiAzMnptMTk5LjYgOTZsLTE2Ny42IDAgMC0zMiA5NiAwYzI4LjQgMCA1NCAxMi40IDcxLjYgMzJ6TTE0NCAxNzZsMTkwLjcgMGMuOSA1LjIgMS4zIDEwLjUgMS4zIDE2cy0uNSAxMC44LTEuMyAxNmwtMTkwLjcgMCAwLTMyem0xNjcuNiA4MGMtMTcuNiAxOS42LTQzLjEgMzItNzEuNiAzMmwtOTYgMCAwLTMyIDE2Ny42IDB6XCJdXG59O1xudmFyIGZhV2luZUdsYXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dpbmUtZ2xhc3MnLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMjc4NjNdLCBcImY0ZTNcIiwgXCJNMzIuNiAyNS43QzM1LjYgMTAuOCA0OC43IDAgNjQgMEwyNTYgMGMxNS4zIDAgMjguNCAxMC44IDMxLjQgMjUuN0wzMTYuOCAxNzNjMi4xIDEwLjUgMy4yIDIxLjIgMy4yIDMybDAgM2MwIDc3LjQtNTUgMTQyLTEyOCAxNTYuOGwwIDExNS4yIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC0xMTUuMkM1NSAzNTAgMCAyODUuNCAwIDIwOGwwLTNjMC0xMC43IDEuMS0yMS40IDMuMi0zMkwzMi42IDI1Ljd6TTc3LjQgMTI4bDE2NS4xIDAtMTIuOC02NC0xMzkuNSAwLTEyLjggNjR6XCJdXG59O1xudmFyIGZhVGVtcGVyYXR1cmVIYWxmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWhhbGYnLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMjc3NzcsIFwidGVtcGVyYXR1cmUtMlwiLCBcInRoZXJtb21ldGVyLTJcIiwgXCJ0aGVybW9tZXRlci1oYWxmXCJdLCBcImYyYzlcIiwgXCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zbDAtOTIuN2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOTIuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6XCJdXG59O1xudmFyIGZhVGVtcGVyYXR1cmUyID0gZmFUZW1wZXJhdHVyZUhhbGY7XG52YXIgZmFUaGVybW9tZXRlcjIgPSBmYVRlbXBlcmF0dXJlSGFsZjtcbnZhciBmYVRoZXJtb21ldGVySGFsZiA9IGZhVGVtcGVyYXR1cmVIYWxmO1xudmFyIGZhVGlja2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RpY2tldCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyNzkwM10sIFwiZjE0NVwiLCBcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOGwwIDY0QzAgMjAwLjggNy40IDIwNy43IDE1LjcgMjEwLjYgMzQuNSAyMTcuMSA0OCAyMzUgNDggMjU2cy0xMy41IDM4LjktMzIuMyA0NS40QzcuNCAzMDQuMyAwIDMxMS4yIDAgMzIwbDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTguOC03LjQtMTUuNy0xNS43LTE4LjYtMTguOC02LjUtMzIuMy0yNC40LTMyLjMtNDUuNHMxMy41LTM4LjkgMzIuMy00NS40YzguMy0yLjkgMTUuNy05LjggMTUuNy0xOC42bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTQxNiAzMzZsMC0xNjAtMjU2IDAgMCAxNjAgMjU2IDB6TTExMiAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI4OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE5MnpcIl1cbn07XG52YXIgZmFXaGVhdEF3bkNpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3doZWF0LWF3bi1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1OThcIiwgXCJNNDk2IDU3NmExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTgxIDUyOWMtOS40IDkuMy0yNC41IDkuMy0zMy45IDAtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMODEgNTI5em0zMC4yLTI5NC40YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMyA4My45IDMxLjctNy43IDY2LjIgMSA5MC42IDI1LjNsMTIgMTJjLS44IDctMS4yIDE0LjItMS4yIDIxLjQgMCAyMCAzIDM5LjMgOC43IDU3LjQtMzYuOCAyMS44LTg1IDE3LTExNi42LTE0LjdMMTY1LjYgNDQ0LjMgODEgNTI5QzY5LjcgNTE3LjcgNTguNCA1MDYuMyA0NyA0OTVsODQuNy04NC43LTMwLjUtMzAuNWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNDk2IDQ3NmEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6bTAtMTQwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTYgOC44IDAgMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2ek0yMTUuMiAxMzAuNmM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjMgODMuOSAyNC4yLTUuOSA1MC4xLTIuMSA3MS45IDEwLjgtMzIuMiAyNC45LTU2LjIgNTkuOC02Ny40IDEwMC4xLTMuOC0yLjgtNy41LTYtMTEtOS41bC05NC45LTk0LjljLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTUyNi43IDE1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwIDguOCA4LjggOS4zIDIyLjcgMS43IDMyLjFMNTYwLjYgNDkgNDQ2LjIgMTYzLjRjNy43IDEgMTUuMyAzIDIyLjUgNS45TDUyNyAxMTFjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFsLTEuNyAxLjgtNTIuNyA1Mi43IDM5IDM5YzMuMiAzLjIgNC43IDcuNCA0LjcgMTEuNi0xNy43LTUuNC0zNi41LTguMy01NS45LTguMy0zNC4yIDAtNjYuMyA4LjktOTQuMSAyNC42bC05Mi43LTkyLjdjLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuOGw3LjQtNy40IDIuNS0yLjFjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWwzOSAzOSA1Mi43LTUyLjdjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFMNDY1IDQ5IDQwNi43IDEwNy4zYzIuOCA3LjEgNC43IDE0LjUgNS44IDIyLjFMNTI2LjcgMTV6XCJdXG59O1xudmFyIGZhQXJyb3dzVHVyblJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy10dXJuLXJpZ2h0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNGMwXCIsIFwiTTMxMy40LTYuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDMzOC43IDEyOCAxMjggMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgMjQxLjcgMCAyMjRsMC0zMkMwIDEyMS4zIDU3LjMgNjQgMTI4IDY0bDIxMC43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3ptLTk2IDI1NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0Mi43IDM4NCA5NiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OGwwLTMyYzAtNTMgNDMtOTYgOTYtOTZsMTQ2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zelwiXVxufTtcbnZhciBmYUNhbmR5Q2FuZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYW5keS1jYW5lJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNzg2XCIsIFwiTTQyMS44IDM5LjZDNDUyIDg1LjIgNDU2LjUgMTQyLjkgNDM1LjEgMTkybC0xNjUuNCAwIDQxLjQtNDEuNGMuOC0uOCAxLjUtMS42IDIuMi0yLjRMNDIxLjggMzkuNnpNMjY4IDEwMi45Yy0uOCAuNy0xLjYgMS40LTIuNCAyLjJsLTI4LjEgMjguMWMtMjUgMjUtNjUuNSAyNS05MC41IDBzLTI1LTY1LjUgMC05MC41TDE3NSAxNC42QzIyOS45LTQwLjIgMzE0LjUtNDYuNyAzNzYuNS01LjZMMjY4IDEwMi45ek0xMjUuNyAzMzZsODAtODAgMTgxIDAtODIuNSA4Mi41IDAtMi41LTE3OC41IDB6bTExNyA2NEwxNDEuNCA1MDEuM2MtMjUgMjUtNjUuNSAyNS05MC41IDBzLTI1LTY1LjUgMC05MC41bDEwLjctMTAuNyAxODEgMHpcIl1cbn07XG52YXIgZmFXaGVlbGNoYWlyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3doZWVsY2hhaXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxOTNcIiwgXCJNMTM2IDQwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTE3LjkgMTk3LjZsMTIuNiA2M2MtMzguNiAxMi40LTY2LjUgNDguNy02Ni41IDkxLjQgMCA1MyA0MyA5NiA5NiA5NiAzNS42IDAgNjYuNy0xOS40IDgzLjMtNDguMiAyLjMgLjEgNC42IC4yIDcgLjJsNC4xIDBjMSAwIDIuMSAwIDMuMSAwbDU1LjIgMGMtMjAuNCA2NC45LTgxIDExMi0xNTIuNyAxMTItODguNCAwLTE2MC03MS42LTE2MC0xNjAgMC03My44IDUwLTEzNS45IDExNy45LTE1NC40em0xNDguNi0yOC4xbDIzLjcgMTE4LjUgNjAuNSAwYzMzLjMgMCA2My4yIDIwLjcgNzQuOSA1MS45bDI1LjUgNjggMTguNy02LjJjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVsLTQ4IDE2Yy0xNi4zIDUuNC0zNC0zLTQwLjEtMTkuMWwtMzYuMy05Ni45Yy0yLjMtNi4yLTguMy0xMC40LTE1LTEwLjRsLTg2LjEgMGMtLjQgMC0uOCAwLTEuMyAwbC0xMy4xIDBjLTMwLjUgMC01Ni44LTIxLjUtNjIuOC01MS40TDE2NS4zIDE4OS43Yy02LjQtMzEuOSAxOC02MS43IDUwLjYtNjEuNyAyNC42IDAgNDUuOCAxNy40IDUwLjYgNDEuNXpcIl1cbn07XG52YXIgZmFTcGVsbENoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NwZWxsLWNoZWNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmODkxXCIsIFwiTTEyMCAzMmMtNDguNiAwLTg4IDM5LjQtODggODhsMCAxNjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTY4YzAtNDguNi0zOS40LTg4LTg4LTg4bC0xNiAwem00MCAxMjhsLTY0IDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDB6TTMwNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMGM0OC42IDAgODgtMzkuNCA4OC04OCAwLTIzLjYtOS4zLTQ1LTI0LjQtNjAuOCAxMC4zLTE0LjQgMTYuNC0zMi4xIDE2LjQtNTEuMiAwLTQ4LjYtMzkuNC04OC04OC04OGwtNjQgMHptNjQgMTEybC0zMiAwIDAtNDggMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHpNMzM2IDI1NmwwLTQ4IDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDB6bTIzMyA4NGMxMS0xMy44IDguOC0zMy45LTUtNDVzLTMzLjktOC44LTQ1IDVsLTEwNS43IDEzMi4xLTM4LjctMzguN2MtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjNi40IDYuNCAxNS4zIDkuOCAyNC40IDkuM3MxNy41LTQuOSAyMy4yLTEyTDU2OSAzNDB6XCJdXG59O1xudmFyIGZhVm9sdW1lT2ZmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZvbHVtZS1vZmYnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYwMjZcIiwgXCJNOTYgMzUybC00OCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQ4IDAgMTM0LjEtMTE5LjJjNi40LTUuNyAxNC42LTguOCAyMy4xLTguOCAxOS4yIDAgMzQuOCAxNS42IDM0LjggMzQuOGwwIDM3OC40YzAgMTkuMi0xNS42IDM0LjgtMzQuOCAzNC44LTguNSAwLTE2LjctMy4xLTIzLjEtOC44TDk2IDM1MnpcIl1cbn07XG52YXIgZmFMdW5ncyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsdW5ncycsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyOTcyOV0sIFwiZjYwNFwiLCBcIk0zMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNDEuOS0zMiAxOS4yIDAtMTE2LjdjMC0yNC41LTE5LjktNDQuNC00NC40LTQ0LjQtMTIuNSAwLTI0LjQgNS4zLTMyLjggMTQuNWwtMjYuNCAyOUM0Mi45IDE2MC44IDAgMjcxLjggMCAzODdsMCAzMC41YzAgNTIuMiA0Mi4zIDk0LjUgOTQuNSA5NC41IDIyIDAgNDMuNy01LjEgNjMuNC0xNWw1LTIuNWMzNy40LTE4LjcgNjEtNTYuOSA2MS05OC44bDAtMTI4IDY0LTM4LjQgNjQgMzguNCAwIDEyOGMwIDQxLjggMjMuNiA4MC4xIDYxIDk4LjhsNSAyLjVjMTkuNyA5LjggNDEuNCAxNSA2My40IDE1IDUyLjIgMCA5NC41LTQyLjMgOTQuNS05NC41bDAtNi4yYzAtMTExLjEtMzYuNy0yMTktMTA0LjQtMzA3TDQyOC45IDQ4LjdjLTguMS0xMC42LTIwLjctMTYuNy0zNC0xNi43LTIzLjcgMC00Mi45IDE5LjItNDIuOSA0Mi45bDAgMTE4LjItMzItMTkuMiAwLTE0MS45elwiXVxufTtcbnZhciBmYUJvb2ttYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2ttYXJrJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4Mjc4LCA2MTU5MV0sIFwiZjAyZVwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ4MGMwIDExLjUgNi4yIDIyLjIgMTYuMiAyNy44czIyLjMgNS41IDMyLjItLjRMMTkyIDQyMS4zIDMzNS41IDUwNy40YzkuOSA1LjkgMjIuMiA2LjEgMzIuMiAuNFMzODQgNDkxLjUgMzg0IDQ4MGwwLTQxNmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwelwiXVxufTtcbnZhciBmYUJhcmNvZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFyY29kZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjAyYVwiLCBcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6bTg4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTcyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6bTIwOC04bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bS05NiAwbDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6XCJdXG59O1xudmFyIGZhTGlzdE9sID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpc3Qtb2wnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxpc3QtMS0yXCIsIFwibGlzdC1udW1lcmljXCJdLCBcImYwY2JcIiwgXCJNMCA3MkMwIDU4LjggMTAuNyA0OCAyNCA0OGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTk2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTgwLTI0IDBDMTAuNyA5NiAwIDg1LjMgMCA3MnpNMzAuNCAzMDEuMkM0MS44IDI5Mi42IDU1LjcgMjg4IDcwIDI4OGw0LjkgMGMzMy43IDAgNjEuMSAyNy40IDYxLjEgNjEuMSAwIDE5LjYtOS40IDM3LjktMjUuMiA0OS40bC0yNCAxNy41IDMzLjIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTAuNyAwQzEzLjEgNDY0IDAgNDUwLjkgMCA0MzQuNyAwIDQyNS4zIDQuNSA0MTYuNSAxMi4xIDQxMWw3MC41LTUxLjNjMy40LTIuNSA1LjQtNi40IDUuNC0xMC42IDAtNy4yLTUuOS0xMy4xLTEzLjEtMTMuMUw3MCAzMzZjLTMuOSAwLTcuNyAxLjMtMTAuOCAzLjZMMzguNCAzNTUuMmMtMTAuNiA4LTI1LjYgNS44LTMzLjYtNC44Uy0xIDMyNC44IDkuNiAzMTYuOGwyMC44LTE1LjZ6TTIyNCA2NGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxNjBsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwiXVxufTtcbnZhciBmYUxpc3QxMiA9IGZhTGlzdE9sO1xudmFyIGZhTGlzdE51bWVyaWMgPSBmYUxpc3RPbDtcbnZhciBmYUZpbGVDaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWNpcmNsZS14bWFyaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTVhMVwiLCBcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbnZhciBmYUN1YmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3ViZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFiMlwiLCBcIk0yMjQuMy0yLjVjMTkuOC0xMS40IDQ0LjItMTEuNCA2NCAwTDQ2NC4yIDk5YzE5LjggMTEuNCAzMiAzMi42IDMyIDU1LjRsMCAyMDNjMCAyMi45LTEyLjIgNDQtMzIgNTUuNEwyODguMyA1MTQuNWMtMTkuOCAxMS40LTQ0LjIgMTEuNC02NCAwTDQ4LjUgNDEzYy0xOS44LTExLjQtMzItMzIuNi0zMi01NS40bDAtMjAzYzAtMjIuOSAxMi4yLTQ0IDMyLTU1LjRMMjI0LjMtMi41em0yMDcuOCAzNjBsMC0xNjYuMS0xNDMuOCA4MyAwIDE2Ni4xIDE0My44LTgzelwiXVxufTtcbnZhciBmYVRhcGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFwZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjRkYlwiLCBcIk00MTIuOCA0MTZjNDEuNS00MC43IDY3LjItOTcuMyA2Ny4yLTE2MCAwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0UzMyIDEzMi4zIDMyIDI1NiAxMzIuMyA0ODAgMjU2IDQ4MGwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTMxLjIgMHpNMjU2IDE2MGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptNDggOTZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpcIl1cbn07XG52YXIgZmFCb21iID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvbWInLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgxNjNdLCBcImYxZTJcIiwgXCJNNDgwLTE2YzYuOSAwIDEzIDQuNCAxNS4yIDEwLjlsMTMuNSA0MC40IDQwLjQgMTMuNUM1NTUuNiA1MSA1NjAgNTcuMSA1NjAgNjRzLTQuNCAxMy0xMC45IDE1LjJsLTQwLjQgMTMuNS0xMy41IDQwLjRDNDkzIDEzOS42IDQ4Ni45IDE0NCA0ODAgMTQ0cy0xMy00LjQtMTUuMi0xMC45bC0xMy41LTQwLjQtNDAuNC0xMy41QzQwNC40IDc3IDQwMCA3MC45IDQwMCA2NHM0LjQtMTMgMTAuOS0xNS4ybDQwLjQtMTMuNSAxMy41LTQwLjRDNDY3LTExLjYgNDczLjEtMTYgNDgwLTE2ek0zMjEuNCA5Ny40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xMC45IDEwLjljNy45IDIyIDEyLjIgNDUuNyAxMi4yIDcwLjUgMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzMyIDQxOC45IDMyIDMwNCAxMjUuMSA5NiAyNDAgOTZjMjQuNyAwIDQ4LjUgNC4zIDcwLjUgMTIuM2wxMC45LTEwLjl6TTE0NCAzMDRjMC01MyA0My05NiA5Ni05NiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHpcIl1cbn07XG52YXIgZmFTY2FsZVVuYmFsYW5jZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2NhbGUtdW5iYWxhbmNlZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiYmFsYW5jZS1zY2FsZS1sZWZ0XCJdLCBcImY1MTVcIiwgXCJNNTE5LjggNjIuNGMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41UzUxNi4zLTMuOSA0OTkuNiAxLjZsLTExMyAzNy43Yy0xMy45LTIzLjUtMzkuNi0zOS4zLTY4LjktMzkuMy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDMgLjIgNS45IC41IDguOEwxMTUuNiAxMjkuNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDEzNS41LTQ1LjJjNC41IDMuMiA5LjMgNS45IDE0LjQgOC4ybDAgMzI2LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMjk0LjdjMjEtOS4yIDM3LjItMjcgNDQuMi00OWwxMjUuOS00MnpNNDM3LjMgMjg4bDcyLjQtMTI0LjIgNzIuNCAxMjQuMi0xNDQuOSAwem03Mi40IDk2YzYyLjkgMCAxMTUuMi0zNCAxMjYtNzguOSAyLjYtMTEtMS0yMi4zLTYuNy0zMi4xTDUzMy44IDEwOS44Yy01LTguNi0xNC4yLTEzLjgtMjQuMS0xMy44cy0xOS4xIDUuMy0yNC4xIDEzLjhMMzkwLjQgMjczLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjEgMTAuOCA0NC44IDYzLjEgNzguOSAxMjYgNzguOXpNMTI2LjggMjkxLjhsNzIuNCAxMjQuMi0xNDQuOSAwIDcyLjQtMTI0LjJ6TS45IDQzMy4xQzExLjcgNDc4IDY0IDUxMiAxMjYuOCA1MTJzMTE1LjItMzQgMTI2LTc4LjljMi42LTExLTEtMjIuMy02LjctMzIuMUwxNTAuOSAyMzcuOGMtNS04LjYtMTQuMi0xMy44LTI0LjEtMTMuOHMtMTkuMSA1LjMtMjQuMSAxMy44TDcuNiA0MDEuMWMtNS43IDkuOC05LjMgMjEuMS02LjcgMzIuMXpcIl1cbn07XG52YXIgZmFCYWxhbmNlU2NhbGVMZWZ0ID0gZmFTY2FsZVVuYmFsYW5jZWQ7XG52YXIgZmFTcXVhcmVDYXJldExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLWNhcmV0LWxlZnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImNhcmV0LXNxdWFyZS1sZWZ0XCJdLCBcImYxOTFcIiwgXCJNMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNnpNMTI4IDI1NmMwLTYuNyAyLjgtMTMgNy43LTE3LjZsMTEyLTEwNGM3LTYuNSAxNy4yLTguMiAyNS45LTQuNFMyODggMTQyLjUgMjg4IDE1MmwwIDIwOGMwIDkuNS01LjcgMTguMi0xNC40IDIycy0xOC45IDIuMS0yNS45LTQuNGwtMTEyLTEwNGMtNC45LTQuNS03LjctMTAuOS03LjctMTcuNnpcIl1cbn07XG52YXIgZmFDYXJldFNxdWFyZUxlZnQgPSBmYVNxdWFyZUNhcmV0TGVmdDtcbnZhciBmYVJ1bGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1bGVyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MjA3XSwgXCJmNTQ1XCIsIFwiTTIwOS4xIDUxNi4yYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMEwyOC4xIDQwMy4xYy0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOWwxNy0xNyA3My41IDczLjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03My41LTczLjUgMzMuOS0zMy45IDUwLjkgNTAuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTUwLjktNTAuOSAzMy45LTMzLjkgNzMuNSA3My41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzMuNS03My41IDMzLjktMzMuOSA1MC45IDUwLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01MC45LTUwLjkgMzMuOS0zMy45IDczLjUgNzMuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTczLjUtNzMuNSAxNy0xN2MxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMEw1NDguNSAxMDguOWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwyMDkuMSA1MTYuMnpcIl1cbn07XG52YXIgZmFJID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2knLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMDVdLCBcIjQ5XCIsIFwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw5NiAwIDAgMzIwLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDAgMC0zMjAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpcIl1cbn07XG52YXIgZmFWb2x1bWVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2b2x1bWUteG1hcmsnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInZvbHVtZS1tdXRlXCIsIFwidm9sdW1lLXRpbWVzXCJdLCBcImY2YTlcIiwgXCJNNDggMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDk2IDE2MCA0OCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6TTM2NyAxNzVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDQ3IDQ3LTQ3IDQ3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDctNDcgNDcgNDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00Ny00NyA0Ny00N2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC00NyA0Ny00Ny00N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6XCJdXG59O1xudmFyIGZhVm9sdW1lTXV0ZSA9IGZhVm9sdW1lWG1hcms7XG52YXIgZmFWb2x1bWVUaW1lcyA9IGZhVm9sdW1lWG1hcms7XG52YXIgZmFBcmNod2F5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FyY2h3YXknLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NTdcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMCAwLTEyOGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTI4IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMjcyLTQ0OCAwIDAgMjcyelwiXVxufTtcbnZhciBmYVBlcnNvbkRpZ2dpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWRpZ2dpbmcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImRpZ2dpbmdcIl0sIFwiZjg1ZVwiLCBcIk0yMDggNDBhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMC41IDE4MS4zYzUuOS0xMS45IDIwLjMtMTYuNyAzMi4yLTEwLjdsMjQuNiAxMi4zIDEyLjItMjAuNGMxOC45LTMxLjUgNTMuMi01MC41IDg5LjYtNTAuNSA0Ni4yIDAgODcuNyAzMC41IDEwMC41IDc1LjRsMzIuMiAxMTIuNyA5Mi45IDQ2LjQgMjUuOC00M2M1LjgtOS42IDE2LjItMTUuNSAyNy40LTE1LjVzMjEuNyA1LjkgMjcuNCAxNS41bDk2IDE2MGM1LjkgOS45IDYuMSAyMi4yIC40IDMyLjJTNTU1LjUgNTEyIDU0NCA1MTJsLTE5MiAwYy0xMS41IDAtMjIuMi02LjItMjcuOC0xNi4ycy01LjUtMjIuMyAuNC0zMi4yTDM3MCAzODcuOCAyMS4zIDIxMy41Yy0xMS45LTUuOS0xNi43LTIwLjMtMTAuNy0zMi4yek05NC4zIDMwNy40bDExMiA1NmMxMC44IDUuNCAxNy43IDE2LjUgMTcuNyAyOC42bDAgODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OC4yLTYxLjMtMzAuNy0zNi4zIDEwOWMtNS42IDE2LjgtMjMuNyAyNS44LTQwLjUgMjAuMlMtMy45IDQ4Ni42IDEuNyA0NjkuOWw0OC0xNDRjMi45LTguOCA5LjUtMTUuOSAxOC4xLTE5LjRzMTguMy0zLjIgMjYuNiAuOXpcIl1cbn07XG52YXIgZmFEaWdnaW5nID0gZmFQZXJzb25EaWdnaW5nO1xudmFyIGZhR2F1Z2VIaWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dhdWdlLWhpZ2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjQ2MSwgXCJ0YWNob21ldGVyLWFsdFwiLCBcInRhY2hvbWV0ZXItYWx0LWZhc3RcIl0sIFwiZjYyNVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0yODggOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMjU2IDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTE2LjItNi0zMS4xLTE2LTQyLjNsNjkuNS0xMzguOWM1LjktMTEuOSAxLjEtMjYuMy0xMC43LTMyLjJzLTI2LjMtMS4xLTMyLjIgMTAuN0wyNjEuMSAyODguMmMtMS43LS4xLTMuNC0uMi01LjEtLjItMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NHpNMTc2IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05NiAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zNTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpcIl1cbn07XG52YXIgZmFUYWNob21ldGVyQWx0ID0gZmFHYXVnZUhpZ2g7XG52YXIgZmFUYWNob21ldGVyQWx0RmFzdCA9IGZhR2F1Z2VIaWdoO1xudmFyIGZhR2VuZGVybGVzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnZW5kZXJsZXNzJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMjJkXCIsIFwiTTE5MiAxMjhhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2em0wIDMyMGExOTIgMTkyIDAgMSAwIDAtMzg0IDE5MiAxOTIgMCAxIDAgMCAzODR6XCJdXG59O1xudmFyIGZhQ2xvdWRTdW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtc3VuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbOTkyNV0sIFwiZjZjNFwiLCBcIk00NTMuNi0xNC44YzQuOSAyIDguNSA2LjQgOS41IDExLjZMNDgwIDgwIDU2My4yIDk2LjhjNS4yIDEuMSA5LjUgNC42IDExLjYgOS41czEuNSAxMC41LTEuNCAxNC45bC00Ni45IDcwLjcgNDYuOSA3MC43YzIuOSA0LjQgMy41IDEwIDEuNCAxNC45cy02LjQgOC41LTExLjYgOS41TDUwMSAyOTkuN2MtMTEuOS04LjctMjUuMS0xNS42LTM5LjQtMjAuNC0yLjUtMTIuNy02LjgtMjQuNy0xMi43LTM1LjcgOS41LTE0LjkgMTUuMS0zMi42IDE1LjEtNTEuNyAwLTUzLTQzLTk2LTk2LTk2LTQ3LjkgMC04Ny42IDM1LjEtOTQuOCA4MC45LTI2LjUtMjAuMy01OS41LTMyLjUtOTUuNC0zMi45bC0xNS4xLTIyLjdjLTIuOS00LjQtMy41LTEwLTEuNC0xNC45czYuNC04LjUgMTEuNi05LjVMMjU2IDgwIDI3Mi44LTMuMmMxLjEtNS4yIDQuNi05LjUgOS41LTExLjZzMTAuNS0xLjUgMTQuOSAxLjRMMzY4IDMzLjYgNDM4LjctMTMuM2M0LjQtMi45IDEwLTMuNSAxNC45LTEuNHpNNDE2IDE5MmMwIDMuOC0uNCA3LjUtMS4zIDExLjEtMjEuNy0xNy00OS0yNy4xLTc4LjctMjcuMS00LjYgMC05LjEgLjItMTMuNSAuNyA2LjQtMTkgMjQuNC0zMi43IDQ1LjUtMzIuNyAyNi41IDAgNDggMjEuNSA0OCA0OHpNOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yLTEuMy02LjctMS45LTEzLjctMS45LTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTIgNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwIDE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjggNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOC0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiA1MTJ6XCJdXG59O1xudmFyIGZhQXJyb3dSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzg1OTRdLCBcImYwNjFcIiwgXCJNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzcwLjcgMC0xMDUuNCAxMDUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwelwiXVxufTtcbnZhciBmYUhhbmRzaGFrZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kc2hha2UnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjkzMDksIDYyNjYyLCBcImhhbmRzaGFrZS1hbHRcIiwgXCJoYW5kc2hha2Utc2ltcGxlXCJdLCBcImYyYjVcIiwgXCJNMjY4LjkgODUuMkwxNTIuMyAyMTQuOGMtNC42IDUuMS00LjQgMTMgLjUgMTcuOSAzMC41IDMwLjUgODAgMzAuNSAxMTAuNSAwbDMxLjgtMzEuOGM0LjItNC4yIDkuNS02LjUgMTQuOS02LjkgNi44LS42IDEzLjggMS43IDE5IDYuOUw1MDUuNiAzNzYgNTc2IDMyMCA1NzYgMzIgNDY0IDk2IDQ0MC4yIDgwLjFDNDI0LjQgNjkuNiA0MDUuOSA2NCAzODYuOSA2NGwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjF6TTExNi42IDE4Mi43TDIyMy40IDY0IDE4My44IDY0Yy0yNS41IDAtNDkuOSAxMC4xLTY3LjkgMjguMUwxMTIgOTYgMCAzMiAwIDMyMCAxNTYuNCA0NTAuM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMTkuMSAwIDM3LjgtNC4zIDU0LjgtMTIuM0wzNTkgNDQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzIgMzIgMTcuNS0xNy41YzguOS04LjkgMTEuNS0yMS44IDcuNi0zMy4xbC0xMzcuOS0xMzYuOC0xNC45IDE0LjljLTQ5LjMgNDkuMy0xMjkuMSA0OS4zLTE3OC40IDAtMjMtMjMtMjMuOS01OS45LTIuMi04NHpcIl1cbn07XG52YXIgZmFIYW5kc2hha2VBbHQgPSBmYUhhbmRzaGFrZTtcbnZhciBmYUhhbmRzaGFrZVNpbXBsZSA9IGZhSGFuZHNoYWtlO1xudmFyIGZhUGVyc29uU2tpaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1za2lpbmcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs5OTc1LCBcInNraWluZ1wiXSwgXCJmN2M5XCIsIFwiTTQxNiA1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTIuNyAzMDAuOWM2LjEtMTEuOCAyMC42LTE2LjMgMzIuNC0xMC4ybDE5Ny44IDEwMi43IDYyLjMtODcuMi04Mi05Mi4yYy0xMS0xMi40LTE2LjItMjcuNS0xNi4yLTQyLjRsMTExLjYgNTMuNCA0Mi45IDQ4LjJjMTQuOSAxNi43IDE2LjIgNDEuNiAzLjIgNTkuOGwtNjQuNCA5MC4yIDEyOC4zIDY2LjZjMTMuNiA3LjEgMjkuOCA3LjIgNDMuNiAuM2wxNS4yLTcuNmMxMS45LTUuOSAyNi4zLTEuMSAzMi4yIDEwLjdzMS4xIDI2LjMtMTAuNyAzMi4ybC0xNS4yIDcuNmMtMjcuNSAxMy43LTU5LjkgMTMuNS04Ny4yLS43TDEyLjkgMzMzLjNDMS4yIDMyNy4yLTMuNCAzMTIuNyAyLjcgMzAwLjl6TTEwMyA0OS42bDE4IDguNyA4LjctMTcuNGM0LTcuOSAxMy42LTExLjEgMjEuNS03LjJzMTEuMSAxMy42IDcuMiAyMS41bC04LjUgMTcgODQuOCA0MSAuNC0uMiA3Ni4xLTMzLjhjMzEuMy0xMy45IDY3LjktLjcgODMuMiAyOS45bDI4LjkgNTcuOCA2OC43IDI3LjVjMTYuNCA2LjYgMjQuNCAyNS4yIDE3LjggNDEuNnMtMjUuMiAyNC40LTQxLjYgMTcuOEwzOTMuOCAyMjRjLTEwLjktNC40LTE5LjgtMTIuNi0yNS4xLTIzLjFsLTExLjUtMjMuMWMtMTYuNCA5LjQtMjUuOSAxNC44LTI4LjUgMTYuM2wtNy42LTMuNy0xODUuNi04OS42LTkuMiAxOC4zYy00IDcuOS0xMy42IDExLjEtMjEuNSA3LjJzLTExLjEtMTMuNi03LjItMjEuNWw5LTE3LjktMTcuNi04LjVDODEuMSA3NC42IDc3LjggNjUgODEuNiA1N1M5NSA0NS43IDEwMyA0OS42elwiXVxufTtcbnZhciBmYVNraWluZyA9IGZhUGVyc29uU2tpaW5nO1xudmFyIGZhQnJpZGdlV2F0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJpZGdlLXdhdGVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGNlXCIsIFwiTTY0IDY0bDUxMiAwIDAgMTEyYy0zNy42IDkuNC02NCA0My4yLTY0IDgybDAgNzYuNGMtMjEtOS43LTQzLjUtMTQuNS02Ni0xNC40LTEwIC4xLTIwLjEgMS4xLTMwIDMuMWwwLTM1LjFjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMi43Yy01LjMtLjUtMTAuNy0uOC0xNi0uNy0yNy43IC4yLTU1LjQgNy44LTgwIDIzbDAtODVjMC0zOC44LTI2LjQtNzIuNi02NC04Mkw2NCA2NHpNNDAzLjQgNDQ0LjFDMzc5LjEgNDYyLjMgMzUxLjEgNDgwIDMyMCA0ODBzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwelwiXVxufTtcbnZhciBmYUJ1aWxkaW5nTmdvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1aWxkaW5nLW5nbycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRkN1wiLCBcIk0xMjggMEM5Mi43IDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDIwOCAwIDAtMjcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMzA0IDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTUyMCAzODBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTgwYzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0xNiAwem0tNCA0NGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4MGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwem0tMTY4IDBsMCA4MGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwxNiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtMjRjMC0xMS05LTIwLTIwLTIwbC04IDBjLTExIDAtMjAgOS0yMCAyMCAwIDYuNSAzLjEgMTIuNCA4IDE2bDAgOGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwYzAtMi4yIDEuOC00IDQtNGwyMC40IDBjMS45IDkuMSA5LjkgMTYgMTkuNiAxNiAxMSAwIDIwLTkgMjAtMjAgMC0xOS45LTE2LjEtMzYtMzYtMzZsLTI0IDBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0em0tOTAuMS0zMi45Yy00LjEtOC4zLTEzLjUtMTIuNy0yMi41LTEwLjVTMjIwIDM5MC43IDIyMCA0MDBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00My4zIDI2LjEgNTIuMmM0LjEgOC4zIDEzLjUgMTIuNyAyMi41IDEwLjVTMzI0IDUzNy4zIDMyNCA1MjhsMC0xMjhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgNDMuMy0yNi4xLTUyLjJ6XCJdXG59O1xudmFyIGZhSWdsb28gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWdsb28nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY3YWVcIiwgXCJNMzIwIDMzLjhsMCAxMjYuMi0yNzEuNSAwYzUxLjctNzcuMiAxMzkuNi0xMjggMjM5LjUtMTI4IDEwLjggMCAyMS41IC42IDMyIDEuOHpNMzY4IDE2MGwwLTExNi43YzY2IDE5IDEyMi4yIDYxIDE1OS41IDExNi43TDM2OCAxNjB6TTIyLjYgMjA4bDczLjQgMCAwIDExMi05NiAwYzAtMzkuNyA4LTc3LjYgMjIuNi0xMTJ6TTE3NiAzMjBsLTMyIDAgMC0xMTIgMjg4IDAgMCAxMTItMzIgMCAwIDQ4IDE3NiAwIDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0IDE3NiAwIDAtNDh6bTMwNCAwbDAtMTEyIDczLjQgMEM1NjggMjQyLjQgNTc2IDI4MC4zIDU3NiAzMjBsLTk2IDB6TTI4OCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODAgMTI4IDAgMC04MGMwLTM1LjMtMjguNy02NC02NC02NHpcIl1cbn07XG52YXIgZmFDaXJjbGVEb2xsYXJUb1Nsb3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWRvbGxhci10by1zbG90JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJkb25hdGVcIl0sIFwiZjRiOVwiLCBcIk05NiAyMjRhMTkyIDE5MiAwIDEgMSAzODQgMCAxOTIgMTkyIDAgMSAxIC0zODQgMHptMTc2LTkybDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDI0OCAyNzJjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjB6TTQ4IDM0NGwwIDEwNGMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0elwiXVxufTtcbnZhciBmYURvbmF0ZSA9IGZhQ2lyY2xlRG9sbGFyVG9TbG90O1xudmFyIGZhWSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd5JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTIxXSwgXCI1OVwiLCBcIk01OCA0NS40QzQ3LjggMzEgMjcuOCAyNy43IDEzLjQgMzhTLTQuMyA2OC4yIDYgODIuNkwxNjAgMjk4LjMgMTYwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTQ5LjcgMTU0LTIxNS43YzEwLjMtMTQuNCA2LjktMzQuNC03LjQtNDQuNlMzMzYuMiAzMSAzMjYgNDUuNEwxOTIgMjMyLjkgNTggNDUuNHpcIl1cbn07XG52YXIgZmFGYWNlU21pbGVXaW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2Utc21pbGUtd2luaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODUyMSwgXCJzbWlsZS13aW5rXCJdLCBcImY0ZGFcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NS40IDMyMS45YzIwLjQgMjggNTMuNCA0Ni4xIDkwLjYgNDYuMXM3MC4yLTE4LjEgOTAuNi00Ni4xYzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVDMzU2LjMgMzkwIDMwOS4yIDQxNiAyNTYgNDE2cy0xMDAuMy0yNi0xMjkuNC02NS45Yy03LjgtMTAuNy01LjQtMjUuNyA1LjMtMzMuNXMyNS43LTUuNCAzMy41IDUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIwelwiXVxufTtcbnZhciBmYVNtaWxlV2luayA9IGZhRmFjZVNtaWxlV2luaztcbnZhciBmYURpY2VGb3VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpY2UtZm91cicsXG4gIGljb246IFs0NDgsIDUxMiwgWzk4NTldLCBcImY1MjRcIiwgXCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE2MCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMzUyIDE2MGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFGYWNlR3JpblNxdWludFRlYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3Jpbi1zcXVpbnQtdGVhcnMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjkzMTUsIFwiZ3Jpbi1zcXVpbnQtdGVhcnNcIl0sIFwiZjU4NlwiLCBcIk01NjAgMzUuNGMwIDI1LjYtMTguOCA0Ny4zLTQ0LjEgNTAuOUw0NjkuMSA5M2MtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQ2MS4zIDIuOCA0ODMtMTYgNTA4LjYtMTYgNTM3LTE2IDU2MCA3IDU2MCAzNS40ek00MDMuNSA2OC4xYy02IDQyLjIgMzAuMiA3OC40IDcyLjQgNzIuNGwzNy44LTUuNEM1NjUuNyAyMzIgNTUwLjggMzU1LjMgNDY5IDQzN3MtMjA1IDk2LjYtMzAxLjkgNDQuN2w1LjQtMzcuOGM2LTQyLjItMzAuMi03OC40LTcyLjQtNzIuNGwtMzcuOCA1LjRDMTAuMyAyODAgMjUuMiAxNTYuNyAxMDcgNzVTMzEyLTIxLjcgNDA4LjkgMzAuM2wtNS40IDM3Ljh6TTQxNy44IDIwMWMtMTkuMSAzNi40LTQ1LjYgNzIuNy03OC45IDEwNnMtNjkuNiA1OS44LTEwNiA3OC45Yy0xMS4xIDUuOC0xMi40IDIxLjQtMS4xIDI2LjYgNTkuMiAyNy41IDEzMS44IDE2LjggMTgwLjYtMzJzNTkuNS0xMjEuNCAzMi0xODAuNmMtNS4zLTExLjMtMjAuOC0xMC0yNi42IDEuMXpNMTEzLjkgMjcwLjZjMS43IDggOSAxMy40IDE3LjEgMTIuN2w0My4xLTMuOS0zLjkgNDMuMWMtLjcgOC4xIDQuNyAxNS41IDEyLjcgMTcuMXMxNS45LTIuOSAxOC40LTEwLjZsMjgtODQuNmMxLjktNS43IC40LTEyLjEtMy45LTE2LjNzLTEwLjYtNS44LTE2LjMtMy45bC04NC42IDI4Yy03LjcgMi42LTEyLjMgMTAuNS0xMC42IDE4LjV6TTMxNS4yIDk5LjFjLjctOC4xLTQuNy0xNS41LTEyLjctMTcuMXMtMTUuOSAyLjktMTguNSAxMC42bC0yOCA4NC42Yy0xLjkgNS43LS40IDEyLjEgMy45IDE2LjNzMTAuNiA1LjggMTYuMyAzLjlsODQuNi0yOGM3LjctMi42IDEyLjMtMTAuNSAxMC42LTE4LjRzLTktMTMuNC0xNy4xLTEyLjdsLTQzLjEgMy45IDMuOS00My4xek02MC4xIDQyNS43bDQ2LjctNi43YzEwLjYtMS41IDE5LjYgNy41IDE4LjEgMTguMWwtNi43IDQ2LjdDMTE0LjcgNTA5LjIgOTMgNTI4IDY3LjQgNTI4IDM5IDUyOCAxNiA1MDUgMTYgNDc2LjYgMTYgNDUxIDM0LjggNDI5LjMgNjAuMSA0MjUuN3pcIl1cbn07XG52YXIgZmFHcmluU3F1aW50VGVhcnMgPSBmYUZhY2VHcmluU3F1aW50VGVhcnM7XG52YXIgZmFGaWxlQXVkaW8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1hdWRpbycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjN1wiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXptNTMuOCAxODUuMmMtOS4xLTYuMy0yMS41LTQuMS0yNy44IDVzLTQuMSAyMS41IDUgMjcuOGMyMy45IDE2LjcgMzkuNCA0NC4zIDM5LjQgNzUuNXMtMTUuNiA1OC45LTM5LjQgNzUuNWMtOS4xIDYuMy0xMS4zIDE4LjgtNSAyNy44czE4LjggMTEuMyAyNy44IDVjMzQuMS0yMy44IDU2LjYtNjMuNSA1Ni42LTEwOC4zUzI5NiAyNjcuNSAyNjEuOCAyNDMuN3pNODAgMzEyYy04LjggMC0xNiA3LjItMTYgMTZsMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMCAyNy4yIDM0YzMgMy44IDcuNiA2IDEyLjUgNmwuMyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEyOGMwLTguOC03LjItMTYtMTYtMTZsLS4zIDBjLTQuOSAwLTkuNSAyLjItMTIuNSA2bC0yNy4yIDM0LTI0IDB6bTEyOCA3Mi4yYzAgMTAuNyAxMC41IDE4LjIgMTguOSAxMS42IDEyLjktMTAuMyAyMS4xLTI2LjEgMjEuMS00My44cy04LjItMzMuNS0yMS4xLTQzLjhjLTguNC02LjctMTguOSAuOS0xOC45IDExLjZsMCA2NC41elwiXVxufTtcbnZhciBmYUFycm93c0Rvd25Ub0xpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3dzLWRvd24tdG8tbGluZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRiOFwiLCBcIk0yMTQuNiAzMTAuNmwtNjQgNjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC02NC02NGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAyNzQuNyA5NiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjQyLjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0yNTYgMGwtNjQgNjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC02NC02NGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5LjQgOS40IDAtMjQyLjdjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI0Mi43IDkuNC05LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMnpcIl1cbn07XG52YXIgZmFHID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2cnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMDNdLCBcIjQ3XCIsIFwiTTIyNCA5NkMxMzUuNiA5NiA2NCAxNjcuNiA2NCAyNTZzNzEuNiAxNjAgMTYwIDE2MGM3Ny40IDAgMTQyLTU1IDE1Ni44LTEyOEwyNTYgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE0NCAwYzI1LjggMCA0OS42IDIxLjQgNDcuMiA1MC42LTkuNSAxMTUtMTA1LjggMjA1LjQtMjIzLjIgMjA1LjQtMTIzLjcgMC0yMjQtMTAwLjMtMjI0LTIyNFMxMDAuMyAzMiAyMjQgMzJjNTcuNCAwIDEwOS43IDIxLjYgMTQ5LjMgNTcgMTMuMiAxMS44IDE0LjMgMzIgMi41IDQ1LjJzLTMyIDE0LjMtNDUuMiAyLjVDMzAyLjMgMTExLjQgMjY1IDk2IDIyNCA5NnpcIl1cbn07XG52YXIgZmFWaWhhcmEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmloYXJhJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNmE3XCIsIFwiTTI3My42LTMuMmM4LjUtNi40IDIwLjMtNi40IDI4LjggMEw0NDMuMiAxMDIuNGM4LjMgNi4yIDE4LjQgOS42IDI4LjggOS42IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgNDggNTguNyA2NCAxMy4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQ4IDI0LjQgMzIgMTUuNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xMjggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTI4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjIuMSAwIDE3LjktMzIgMC00OC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTMuMyAwIDU4LjctNjQgMC00OC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzEwLjQgMCAyMC41LTMuNCAyOC44LTkuNkwyNzMuNi0zLjJ6TTEyOCAzNjhsMzIwIDAgMC00OC0zMjAgMCAwIDQ4ek0zODQgMTYwbC0xOTIgMCAwIDQ4IDE5MiAwIDAtNDh6XCJdXG59O1xudmFyIGZhRmxhZ0NoZWNrZXJlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFnLWNoZWNrZXJlZCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzkzN10sIFwiZjExZVwiLCBcIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMjc5LjdjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgMzg0IDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwek02NCAxODcuMWw2NC0xMy45IDAgNjUuNS02NCAxMy45IDAgNjUuNSA0OC44LTEyLjJjNS4xLTEuMyAxMC4xLTIuNCAxNS4yLTMuM2wwLTYzLjkgMzguOS04LjRjOC4zLTEuOCAxNi43LTIuNSAyNS4xLTIuMWwwLTY0YzEzLjYgLjQgMjcuMiAyLjYgNDAuNCA2LjRsMjMuNiA2LjkgMCA2Ni43LTQxLjctMTIuM2MtNy4zLTIuMS0xNC44LTMuNC0yMi4zLTMuOGwwIDcxLjRjMjEuOCAxLjkgNDMuMyA2LjcgNjQgMTQuNGwwLTY5LjggMjIuNyA2LjdjMTMuNSA0IDI3LjMgNi40IDQxLjMgNy40bDAtNjQuMmMtNy44LS44LTE1LjYtMi4zLTIzLjItNC41bC00MC44LTEyIDAtNjJjLTEzLTMuOC0yNS44LTguOC0zOC4yLTE1LTguMi00LjEtMTYuOS03LTI1LjgtOC44bDAgNzIuNGMtMTMtLjQtMjYgLjgtMzguNyAzLjZsLTI1LjMgNS41IDAtNzUuMi02NCAxNiAwIDczLjF6TTMyMCAzMzUuN2MxNi44IDEuNSAzMy45LS43IDUwLTYuOGwxNC01LjIgMC03MS43LTcuOSAxLjhjLTE4LjQgNC4zLTM3LjMgNS43LTU2LjEgNC41bDAgNzcuNHptNjQtMTQ5LjRsMC03MC44Yy0yMC45IDYuMS00Mi40IDkuMS02NCA5LjFsMCA2OS40YzEzLjkgMS40IDI4IC41IDQxLjctMi42bDIyLjMtNS4yelwiXVxufTtcbnZhciBmYUdhdWdlU2ltcGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dhdWdlLXNpbXBsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZ2F1Z2Utc2ltcGxlLW1lZFwiLCBcInRhY2hvbWV0ZXItYXZlcmFnZVwiXSwgXCJmNjI5XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTMyMCA5NmMwLTI2LjktMTYuNS00OS45LTQwLTU5LjNMMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3Mi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpcIl1cbn07XG52YXIgZmFHYXVnZVNpbXBsZU1lZCA9IGZhR2F1Z2VTaW1wbGU7XG52YXIgZmFUYWNob21ldGVyQXZlcmFnZSA9IGZhR2F1Z2VTaW1wbGU7XG52YXIgZmFSaWdodExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmlnaHQtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZXhjaGFuZ2UtYWx0XCJdLCBcImYzNjJcIiwgXCJNNTAyLjYgMTUwLjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzNTIgMjM2LjkgMzUyIDIyNGwwLTY0LTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDk2IDMyIDk2bDMyMCAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE2MCAyNzUuMSAxNjAgMjg4bDAgNjQgMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwIDAgNjRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02Ljl6XCJdXG59O1xudmFyIGZhRXhjaGFuZ2VBbHQgPSBmYVJpZ2h0TGVmdDtcbnZhciBmYVBpbGxzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BpbGxzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDg0XCIsIFwiTTY0IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyLTk2IDAgMC0xMTJ6TTE3NiAzNjhjMC00OC43IDE4LjEtOTMuMiA0OC0xMjdsMC0xMjlDMjI0IDUwLjEgMTczLjkgMCAxMTIgMFMwIDUwLjEgMCAxMTJMMCA0MDBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTIgMzcuMyAwIDcwLjMtMTguMiA5MC43LTQ2LjMtMTctMjguNi0yNi43LTYyLTI2LjctOTcuN3ptNjQuNyA2Ny40YzQuNiA4LjcgMTYuMyA5LjcgMjMuMyAyLjdMNDM4LjEgMjY0YzctNyA2LTE4LjctMi43LTIzLjMtMjAuMS0xMC43LTQzLTE2LjctNjcuNC0xNi43LTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMjQuMyA2IDQ3LjMgMTYuNyA2Ny40ek0yOTcuOSA0NzJjLTcgNy02IDE4LjcgMi43IDIzLjMgMjAuMSAxMC43IDQzIDE2LjcgNjcuNCAxNi43IDc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjQuMy02LTQ3LjMtMTYuNy02Ny40LTQuNi04LjctMTYuMy05LjctMjMuMy0yLjdMMjk3LjkgNDcyelwiXVxufTtcbnZhciBmYUV4cGxvc2lvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdleHBsb3Npb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0ZTlcIiwgXCJNMjU2LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMCAxNjBjMTIuNCAwIDIyLjcgOS40IDIzLjkgMjEuN0wyOTMuNCAyOTEuNiA0NjcuNiAxMS4zYzYuNy0xMC43IDIwLjUtMTQuNSAzMS43LTguNXMxNS44IDE5LjUgMTAuNiAzMUwzNzIuOCAzMzguNmMyLjIgMi4zIDQuMyA0LjcgNi4zIDcuMWw5Ny4yLTU0LjdjMTAuNS01LjkgMjMuNi0zLjEgMzAuOSA2LjRzNi4zIDIzLTIuMiAzMS41bC04NyA4Ny03MS40IDBjLTEzLjItMzcuMy00OC43LTY0LTkwLjUtNjRzLTc3LjQgMjYuNy05MC41IDY0bC03OS42IDAtNzUuNS01Mi4zQy42IDM1Ny0yLjggMzQ0LjEgMi40IDMzMy41czE3LjQtMTUuOSAyOC43LTEyLjRsOTcuMiAzMC40YzMtMy45IDYuMS03LjYgOS40LTExLjNMNzUuNCAyMzYuM2MtNi4xLTEwLjEtMy45LTIzLjEgNS4xLTMwLjdzMjIuMi03LjUgMzEuMSAuMUwyMTQgMjkzLjZjMS41LS40IDMtLjggNC41LTEuMWwxMy42LTE0Mi43YzEuMi0xMi4zIDExLjUtMjEuNyAyMy45LTIxLjd6TTMyIDQ2NGw0NTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwelwiXVxufTtcbnZhciBmYUFycm93c0Rvd25Ub1Blb3BsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtZG93bi10by1wZW9wbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0YjlcIiwgXCJNMTEzIDE1M2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTUgODlDNS43IDc5LjYgNS43IDY0LjQgMTUgNTVTMzkuNiA0NS43IDQ5IDU1TDcyIDc4LjEgNzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODYuMSAyMy0yM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTY0IDY0em0zMjAgMGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMzM1IDg5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjMgMjMgMC04Ni4xYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4Ni4xIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjR6TTI1NiAxOTJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTAgMTYwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC01MyA0My05NiA5Ni05NnpNMzIgMjg4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTgwIDM2OGMxNS4zIDAgMjkuNiA0LjMgNDEuOCAxMS44LTYuMyAxNi4yLTkuOCAzMy44LTkuOCA1Mi4ybDAgNDhjMCAxMS40IDIuNCAyMi4yIDYuNyAzMmwtODcuOCAwQzEzLjggNTEyIDAgNDk4LjIgMCA0ODEuMUwwIDQ0OGMwLTQ0LjIgMzUuOC04MCA4MC04MHpNMzkzLjMgNTEyYzQuMy05LjggNi43LTIwLjYgNi43LTMybDAtNDhjMC0xOC40LTMuNS0zNi05LjgtNTIuMiAxMi4yLTcuNSAyNi41LTExLjggNDEuOC0xMS44IDQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMzMuMWMwIDE3LTEzLjggMzAuOS0zMC45IDMwLjlsLTg3LjggMHpcIl1cbn07XG52YXIgZmFVc2Vyc1ZpZXdmaW5kZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlcnMtdmlld2ZpbmRlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU5NVwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTguOCA3LjItMTYgMTYtMTZsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMxNDkuMyAwIDEzNiAwTDY0IDB6TTQ0MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDQ0MCAwek00OCAzNzZjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAzNjIuNyAwIDM3NmwwIDcyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTcyem01MjggMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyYzAgOC44LTcuMiAxNi0xNiAxNmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNzJ6TTI4OCAyMTZhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTAgNDBjLTUzIDAtOTYgNDMtOTYgOTZsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtNTMtNDMtOTYtOTYtOTZ6bTE5Mi02NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNjggMjcyLjNjLTQ5LjMgNC4xLTg4IDQ1LjMtODggOTUuN2wwIDEwLjdjMCAxMS44IDkuNiAyMS4zIDIxLjMgMjEuM2w0Ni44IDBjLTIuNy03LjUtNC4xLTE1LjYtNC4xLTI0bDAtMjRjMC0yOS41IDguOC01Ni45IDI0LTc5Ljd6TTQyNy45IDQwMGw0Ni44IDBjMTEuOCAwIDIxLjMtOS42IDIxLjMtMjEuM2wwLTEwLjdjMC01MC4zLTM4LjctOTEuNi04OC05NS43IDE1LjIgMjIuOCAyNCA1MC4yIDI0IDc5LjdsMCAyNGMwIDguNC0xLjQgMTYuNS00LjEgMjR6TTE5MiAxOTJhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpcIl1cbn07XG52YXIgZmFDYXJPbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItb24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU0ZGRcIiwgXCJNMjQ4LThjMC0xMy4zLTEwLjctMjQtMjQtMjRTMjAwLTIxLjMgMjAwLThsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjR6TTE0NS4zIDIwOGwxNTcuNSAwYzYuNyAwIDEyLjYgNC4xIDE1IDEwLjRsMjYuMSA2OS42LTIzOS42IDAgMjYuMS02OS42YzIuMy02LjIgOC4zLTEwLjQgMTUtMTAuNHpNMzQgMjkyLjhsLTEuMyAzLjRDMTMuMiAzMDcuMSAwIDMyOCAwIDM1MkwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMjg4IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMjQtMTMuMi00NC45LTMyLjgtNTUuOWwtMS4zLTMuNC0zNi4zLTk2LjljLTExLjctMzEuMi00MS42LTUxLjktNzQuOS01MS45bC0xNTcuNSAwYy0zMy4zIDAtNjMuMiAyMC43LTc0LjkgNTEuOUwzNCAyOTIuOHpNOTYgMzM2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjI0IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTcgN0MtMi4zIDE2LjQtMi4zIDMxLjYgNyA0MUw1NSA4OWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMFM5OC4zIDY0LjQgODkgNTVMNDEgN0MzMS42LTIuMyAxNi40LTIuMyA3IDd6TTQwNyA3TDM1OSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ4LTQ4YzkuNC05LjQgOS40LTI0LjYgMC0zMy45UzQxNi40LTIuMyA0MDcgN3pcIl1cbn07XG52YXIgZmFTbGVpZ2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2xlaWdoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmN2NjXCIsIFwiTTY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NFM0Ni4zIDk2IDY0IDk2bDAgMTYwYzAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDY5LjUtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1MDQgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04MCAwIDAtNjRjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OC45IDBjLTQ4LjUgMC05Mi44LTI3LjQtMTE0LjUtNzAuOGwtMjUuMi01MC41QzIzNy43IDU5LjQgMTkzLjQgMzIgMTQ0LjkgMzJMNjQgMzJ6TTQzMiA0MTZsLTI1NiAwIDAtNjQgMjU2IDAgMCA2NHpcIl1cbn07XG52YXIgZmFEdW1iYmVsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkdW1iYmVsbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjQ0YlwiLCBcIk05NiAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMiAyNTYgMCAwLTExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTYgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDAgMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTExMi0yNTYgMCAwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTE2LTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC00OGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwIDAtMTZ6XCJdXG59O1xudmFyIGZhQmFieUNhcnJpYWdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhYnktY2FycmlhZ2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImNhcnJpYWdlLWJhYnlcIl0sIFwiZjc3ZFwiLCBcIk02NCAyMDhsMCA4MGMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xMTIgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA1Ni0zMzYgMHptLjItNDhsMjIzLjggMCAwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkwyMzIgMEMxNDEuOSAwIDY4LjQgNzAuOSA2NC4yIDE2MHpNMTYwIDQ2NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem0yODggMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwiXVxufTtcbnZhciBmYUNhcnJpYWdlQmFieSA9IGZhQmFieUNhcnJpYWdlO1xudmFyIGZhS2l3aUJpcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAna2l3aS1iaXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTM1XCIsIFwiTTI5MS4yIDM4OC40YzMxLjItMTguOCA2NC43LTM2LjQgMTAxLjEtMzYuNGw1NS43IDBjNC42IDAgOS4xLS4yIDEzLjYtLjdsODUuMyAxMjEuOWM0IDUuNyAxMS4zIDguMiAxNy45IDYuMVM1NzYgNDcxIDU3NiA0NjRsMC0yNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTU1LjcgMEMzNTUuOSA5NiAzMjIuNCA3OC40IDI5MS4yIDU5LjYgMjYyLjMgNDIuMSAyMjguMyAzMiAxOTIgMzIgODYgMzIgMCAxMTggMCAyMjQgMCAyOTUuMSAzOC42IDM1Ny4xIDk2IDM5MC4zTDk2IDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDZjMTUuMyAzLjkgMzEuNCA2IDQ4IDYgNS40IDAgMTAuNy0uMiAxNi0uN2wwIDQwLjdjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTUwLjljMTIuNC00LjQgMjQuMi0xMCAzNS4yLTE2Ljd6TTQ0OCAyMDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbnZhciBmYUNhbGVuZGFyWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsZW5kYXIteG1hcmsnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImNhbGVuZGFyLXRpbWVzXCJdLCBcImYyNzNcIiwgXCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yOTEuOSAyMjAuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTMzLjkgMzMuOS0zMy45LTMzLjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45LTMzLjkgMzMuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOSAzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMy45LTMzLjkgMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45elwiXVxufTtcbnZhciBmYUNhbGVuZGFyVGltZXMgPSBmYUNhbGVuZGFyWG1hcms7XG52YXIgZmFDaXJjbGVEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1kb3duJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE0NjYsIFwiYXJyb3ctYWx0LWNpcmNsZS1kb3duXCJdLCBcImYzNThcIiwgXCJNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0yNDQuNyAzODcuM2wtMTA0LTEwNGMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHM4LjMtOS45IDE0LjgtOS45bDU2IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgNTYgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtMTA0IDEwNGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDB6XCJdXG59O1xudmFyIGZhQXJyb3dBbHRDaXJjbGVEb3duID0gZmFDaXJjbGVEb3duO1xudmFyIGZhRmlsZU1lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1tZWRpY2FsJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDc3XCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNjAgMjgwbDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2elwiXVxufTtcbnZhciBmYVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3htYXJrJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI4NDczLCAxMDAwNSwgMTAwMDYsIDEwMDYwLCAyMTUsIFwiY2xvc2VcIiwgXCJtdWx0aXBseVwiLCBcInJlbW92ZVwiLCBcInRpbWVzXCJdLCBcImYwMGRcIiwgXCJNNTUuMSA3My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wxNDcuMiAyNTYgOS45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5Mi41IDMwMS4zIDMyOS45IDQzOC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjM3LjggMjU2IDM3NS4xIDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5Mi41IDIxMC43IDU1LjEgNzMuNHpcIl1cbn07XG52YXIgZmFDbG9zZSA9IGZhWG1hcms7XG52YXIgZmFNdWx0aXBseSA9IGZhWG1hcms7XG52YXIgZmFSZW1vdmUgPSBmYVhtYXJrO1xudmFyIGZhVGltZXMgPSBmYVhtYXJrO1xudmFyIGZhU2hhcGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoYXBlcycsXG4gIGljb246IFs1MTIsIDUxMiwgW1widHJpYW5nbGUtY2lyY2xlLXNxdWFyZVwiXSwgXCJmNjFmXCIsIFwiTTI1NiAwYzExLjIgMCAyMS43IDUuOSAyNy40IDE1LjVsOTYgMTYwYzUuOSA5LjkgNi4xIDIyLjIgLjQgMzIuMlMzNjMuNSAyMjQgMzUyIDIyNGwtMTkyIDBjLTExLjUgMC0yMi4yLTYuMi0yNy44LTE2LjJzLTUuNS0yMi4zIC40LTMyLjJsOTYtMTYwQzIzNC4zIDUuOSAyNDQuOCAwIDI1NiAwek0xMjggMjcyYTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHptMjAwIDE2bDExMiAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMTEyYzAgMjIuMS0xNy45IDQwLTQwIDQwbC0xMTIgMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0xMTJjMC0yMi4xIDE3LjktNDAgNDAtNDB6XCJdXG59O1xudmFyIGZhVHJpYW5nbGVDaXJjbGVTcXVhcmUgPSBmYVNoYXBlcztcbnZhciBmYURpY2VPbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1vbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODU2XSwgXCJmNTI1XCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYUxvY2tPcGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xvY2stb3BlbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjNjMVwiLCBcIk0zODQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMmMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOFMzMjAgMjUuMyAzMjAgOTZsMCA2NC0xNjAgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDAgMC02NHpcIl1cbn07XG52YXIgZmFQZXBwZXJIb3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVwcGVyLWhvdCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyNzc5OF0sIFwiZjgxNlwiLCBcIk01NDUgNjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0NzguOSA2My4yQzQ1Mi4zIDQzLjYgNDE5LjUgMzIgMzg0IDMyIDM0OC45IDMyIDMxNi41IDQzLjMgMjkwLjEgNjIuNCAyNzQuMSA3NC4xIDI4NC4yIDk2IDMwNCA5NmwyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgMTkuOCAyMS45IDI5LjkgMzMuNiAxMy45IDE5LjEtMjYuNCAzMC40LTU4LjggMzAuNC05My45IDAtMzUuNS0xMS42LTY4LjMtMzEuMi05NC45TDU0NSA2NXpNMjcwIDEzNS41bC0xNTkuNiAyMjhDMTAxLjMgMzc2LjQgODYuNyAzODQgNzEgMzg0bC03IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjcuMSAwYzY1LjcgMCAxMjkuNy0yMC4yIDE4My41LTU3LjhMNDQwLjUgMzA2LjFDNDM1IDI5NS45IDQzMiAyODQuMiA0MzIgMjcybC01NiAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTU2Yy0xMi4yIDAtMjMuOS0zLTM0LTguNXpcIl1cbn07XG52YXIgZmFEcm9wbGV0U2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHJvcGxldC1zbGFzaCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1widGludC1zbGFzaFwiXSwgXCJmNWM3XCIsIFwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDYzLjYgMzk3LjhjMTAuNS0yMy44IDE2LjQtNTAuMSAxNi40LTc3LjggMC05MS4yLTEzMC4yLTI3NC4xLTE2Ni42LTMyMy41LTUuOS04LTE1LjItMTIuNS0yNS4yLTEyLjVsLS40IDBjLTEwIDAtMTkuMyA0LjUtMjUuMiAxMi41LTE1LjYgMjEuMi00OC41IDY2LjktODAuOSAxMTkuNEw0MS0yNC45em05MiAyMjcuN2MtMjEuNiA0My44LTM3IDg1LjktMzcgMTE3LjIgMCAxMDYgODYgMTkyIDE5MiAxOTIgNDMuNCAwIDgzLjQtMTQuNCAxMTUuNS0zOC42TDEzMyAyMDIuOHpcIl1cbn07XG52YXIgZmFUaW50U2xhc2ggPSBmYURyb3BsZXRTbGFzaDtcbnZhciBmYURyb3BsZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHJvcGxldCcsXG4gIGljb246IFszODQsIDUxMiwgWzEyODE2NywgXCJ0aW50XCJdLCBcImYwNDNcIiwgXCJNMTkyIDUxMkM4NiA1MTIgMCA0MjYgMCAzMjAgMCAyMjguOCAxMzAuMiA0NS45IDE2Ni42LTMuNSAxNzIuNS0xMS41IDE4MS44LTE2IDE5MS44LTE2bC40IDBjMTAgMCAxOS4zIDQuNSAyNS4yIDEyLjUgMzYuNCA0OS40IDE2Ni42IDIzMi4zIDE2Ni42IDMyMy41IDAgMTA2LTg2IDE5Mi0xOTIgMTkyek0xMTIgMzEyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNzUuMSA2MC45IDEzNiAxMzYgMTM2IDEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy00OC42IDAtODgtMzkuNC04OC04OHpcIl1cbn07XG52YXIgZmFUaW50ID0gZmFEcm9wbGV0O1xudmFyIGZhRmlsZUxpbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtbGluZXMnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjg0NDEsIDEyODQ2MiwgNjE2ODYsIFwiZmlsZS1hbHRcIiwgXCJmaWxlLXRleHRcIl0sIFwiZjE1Y1wiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTIwIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwelwiXVxufTtcbnZhciBmYUZpbGVBbHQgPSBmYUZpbGVMaW5lcztcbnZhciBmYUZpbGVUZXh0ID0gZmFGaWxlTGluZXM7XG52YXIgZmFDb21tZW50c0RvbGxhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50cy1kb2xsYXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY2NTNcIiwgXCJNMTkyIDMyMGMxMDYgMCAxOTItNzguOCAxOTItMTc2UzI5OC0zMiAxOTItMzIgMCA0Ni44IDAgMTQ0YzAgMzkuNiAxNC4zIDc2LjIgMzguNCAxMDUuNkwyLjggMzE2LjhDLTIuMSAzMjYuMS0uNCAzMzcuNSA3IDM0NXMxOC45IDkuMiAyOC4yIDQuMkwxMTYuOCAzMDZjMjMuMSA5IDQ4LjUgMTQgNzUuMiAxNHptMy4yIDQ4YzE2LjQgODEuOSA5NC43IDE0NCAxODguOCAxNDQgMjYuNyAwIDUyLjEtNSA3NS4yLTE0bDgxLjYgNDMuMmM5LjMgNC45IDIwLjcgMy4yIDI4LjItNC4yczkuMi0xOC45IDQuMi0yOC4ybC0zNS42LTY3LjJjMjQuMS0yOS40IDM4LjQtNjYgMzguNC0xMDUuNiAwLTgyLjQtNjEuNy0xNTEuNS0xNDUtMTcwLjctMTEuNSAxMTUuOC0xMTUuOCAyMDEuMi0yMzUuOCAyMDIuN3pNMTk2IDMyYzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Yy0yNS4zLTQuMi00My45LTI2LjEtNDMuOS01MS44IDAtMjguOCAyMy4yLTUyLjIgNTItNTIuNWwwLTRjMC0xMSA5LTIwIDIwLTIwelwiXVxufTtcbnZhciBmYU1hZ25pZnlpbmdHbGFzc0xvY2F0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MtbG9jYXRpb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNlYXJjaC1sb2NhdGlvblwiXSwgXCJmNjg5XCIsIFwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjg4IDE3NmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDQ4LjggNDYuNSAxMTEuNiA2OC42IDEzOC42IDYgNy4zIDE2LjggNy4zIDIyLjcgMCAyMi4xLTI3IDY4LjYtODkuOCA2OC42LTEzOC42em0tMTEyIDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG52YXIgZmFTZWFyY2hMb2NhdGlvbiA9IGZhTWFnbmlmeWluZ0dsYXNzTG9jYXRpb247XG52YXIgZmFGaWxlSW52b2ljZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWludm9pY2UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY1NzBcIiwgXCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnpNNjQgMzg0bDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiA0MTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek04OCA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM3NC43IDY0IDg4IDY0em0wIDk2bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhUGVudGFnb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVudGFnb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU3OTBcIiwgXCJNMzE2LjQtMy4xYy0xNi44LTEyLjItMzkuNi0xMi4yLTU2LjQgMEwzNS4zIDE2MC4yYy0xNi44IDEyLjItMjMuOSAzMy45LTE3LjQgNTMuN2w4NS44IDI2NC4xYzYuNCAxOS44IDI0LjkgMzMuMiA0NS43IDMzLjJsMjc3LjcgMGMyMC44IDAgMzkuMi0xMy40IDQ1LjctMzMuMmw4NS44LTI2NC4xYzYuNC0xOS44LS42LTQxLjQtMTcuNC01My43TDMxNi40LTMuMXpcIl1cbn07XG52YXIgZmFSZXB1YmxpY2FuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlcHVibGljYW4nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3NWVcIiwgXCJNMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMmwyMjQgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGwwIDY0LTU0NCAwIDAtNjR6bTE1Mi0zMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0yMzIgMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek0yODAgMTYwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTEyOCAyODhsNDE2IDAgMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGwwLTQ4LTMyIDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0xOTIgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2MCAxMjggMHpcIl1cbn07XG52YXIgZmFTaG9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nob3AnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInN0b3JlLWFsdFwiXSwgXCJmNTRmXCIsIFwiTTIxLjUgMTgxLjFMNzguMyA2Ny40Qzg5LjIgNDUuNyAxMTEuMyAzMiAxMzUuNiAzMmwzMDQuOSAwYzI0LjIgMCA0Ni40IDEzLjcgNTcuMiAzNS40bDU2LjggMTEzLjdjMy42IDcuMiA1LjUgMTUuMSA1LjUgMjMuMiAwIDI3LjMtMjEuMiA0OS43LTQ4IDUxLjZMNTEyIDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi05NiAwIDAgMTc2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xOTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNzYuMWMtMjYuOC0xLjktNDgtMjQuMy00OC01MS42IDAtOCAxLjktMTYgNS41LTIzLjJ6TTEyOCAyNTZsMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTExMi0xNjAgMHpcIl1cbn07XG52YXIgZmFTdG9yZUFsdCA9IGZhU2hvcDtcbnZhciBmYUZpbG0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsbScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzkwMiwgNjIzNjgsIFwiZmlsbS1hbHRcIiwgXCJmaWxtLXNpbXBsZVwiXSwgXCJmMDA4XCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek00OCAzNjhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMzA0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTQ4IDI0MGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNDggMTEybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZ6TTM1MiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwelwiXVxufTtcbnZhciBmYUZpbG1BbHQgPSBmYUZpbG07XG52YXIgZmFGaWxtU2ltcGxlID0gZmFGaWxtO1xudmFyIGZhQnVpbGRpbmdDaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWlsZGluZy1jaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0ZDRcIiwgXCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDQ1NC42IDQwMHpcIl1cbn07XG52YXIgZmFDb21tZW50cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50cycsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODQ5MCwgNjE2NzBdLCBcImYwODZcIiwgXCJNMzg0IDE0NGMwIDk3LjItODYgMTc2LTE5MiAxNzYtMjYuNyAwLTUyLjEtNS03NS4yLTE0TDM1LjIgMzQ5LjJjLTkuMyA0LjktMjAuNyAzLjItMjguMi00LjJzLTkuMi0xOC45LTQuMi0yOC4ybDM1LjYtNjcuMkMxNC4zIDIyMC4yIDAgMTgzLjYgMCAxNDQgMCA0Ni44IDg2LTMyIDE5Mi0zMlMzODQgNDYuOCAzODQgMTQ0em0wIDM2OGMtOTQuMSAwLTE3Mi40LTYyLjEtMTg4LjgtMTQ0IDEyMC0xLjUgMjI0LjMtODYuOSAyMzUuOC0yMDIuNyA4My4zIDE5LjIgMTQ1IDg4LjMgMTQ1IDE3MC43IDAgMzkuNi0xNC4zIDc2LjItMzguNCAxMDUuNmwzNS42IDY3LjJjNC45IDkuMyAzLjIgMjAuNy00LjIgMjguMnMtMTguOSA5LjItMjguMiA0LjJMNDU5LjIgNDk4Yy0yMy4xIDktNDguNSAxNC03NS4yIDE0elwiXVxufTtcbnZhciBmYVRhZ3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFncycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjAyY1wiLCBcIk00MDEuMiAzOS4xTDU0OS40IDE4OS40YzI3LjcgMjguMSAyNy43IDczLjEgMCAxMDEuMkwzOTMgNDQ4LjljLTkuMyA5LjQtMjQuNSA5LjUtMzMuOSAuMnMtOS41LTI0LjUtLjItMzMuOUw1MTUuMyAyNTYuOGM5LjItOS4zIDkuMi0yNC40IDAtMzMuN0wzNjcgNzIuOWMtOS4zLTkuNC05LjItMjQuNiAuMi0zMy45czI0LjYtOS4yIDMzLjkgLjJ6TTMyLjEgMjI5LjVMMzIuMSA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDE0NCAxNDRjMjUgMjUgMjUgNjUuNSAwIDkwLjVMMjg1LjQgNDE4LjdjLTI1IDI1LTY1LjUgMjUtOTAuNSAwbC0xNDQtMTQ0Yy0xMi0xMi0xOC43LTI4LjMtMTguNy00NS4zem0xNDQtODUuNWEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwiXVxufTtcbnZhciBmYUd1biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdndW4nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUxOWJcIiwgXCJNNTI4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOC00NDggMEMxNC4zIDY0IDAgNzguMyAwIDk2TDAgMjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwIDBjMjAuOCAwIDM2LjEgMTkuNiAzMSAzOS44TDMzIDQ0MC4yYy0yLjQgOS42LS4yIDE5LjcgNS44IDI3LjVTNTQuMSA0ODAgNjQgNDgwbDk2IDBjMTQuNyAwIDI3LjUtMTAgMzEtMjQuMkwyMTcgMzUyIDMyMS40IDM1MmMyMy43IDAgNDQuOC0xNC45IDUyLjctMzcuMmwyNi43LTc0LjggMzEuMSAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40bDIyLjYtMjIuNiA2Ni43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTh6TTMyMS40IDMwNGwtOTIuNSAwIDE2LTY0IDEwNSAwLTIxIDU4LjdjLTEuMSAzLjItNC4yIDUuMy03LjUgNS4zek04MCAxMjhsMzg0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMODAgMTYwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwiXVxufTtcbnZhciBmYUNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1jaGVjaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxNTMzLCBcImNoZWNrLWNpcmNsZVwiXSwgXCJmMDU4XCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0zNzQgMTQ1LjdjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zTDIyMS4xIDMxNS4yIDE2OSAyNjMuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM1IDUgMTEuOCA3LjUgMTguOCA3czEzLjQtNC4xIDE3LjUtOS44TDM3OS4zIDE3OS4yYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41elwiXVxufTtcbnZhciBmYUNoZWNrQ2lyY2xlID0gZmFDaXJjbGVDaGVjaztcbnZhciBmYUlkQ2FyZENsaXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWQtY2FyZC1jbGlwJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJpZC1jYXJkLWFsdFwiXSwgXCJmNDdmXCIsIFwiTTI1Ni0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjQtMTI4IDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMzJsMTEyIDAgMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTMyIDExMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnpNMTc2IDQwMGMwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHpNMjg4IDI4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpcIl1cbn07XG52YXIgZmFJZENhcmRBbHQgPSBmYUlkQ2FyZENsaXA7XG52YXIgZmFNb29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc3NjksIDkyMTRdLCBcImYxODZcIiwgXCJNMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyYzY4LjggMCAxMzEuMy0yNy4yIDE3Ny4zLTcxLjQgNy4zLTcgOS40LTE3LjkgNS4zLTI3LjFzLTEzLjctMTQuOS0yMy44LTE0LjFjLTQuOSAuNC05LjggLjYtMTQuOCAuNi0xMDEuNiAwLTE4NC04Mi40LTE4NC0xODQgMC03Mi4xIDQxLjUtMTM0LjYgMTAyLjEtMTY0LjggOS4xLTQuNSAxNC4zLTE0LjMgMTMuMS0yNC40UzMyMi42IDguNSAzMTIuNyA2LjNDMjk0LjQgMi4yIDI3NS40IDAgMjU2IDB6XCJdXG59O1xudmFyIGZhT2lsV2VsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdvaWwtd2VsbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUzMlwiLCBcIk01MjguMyA2MS4zYy0xMS40LTQyLjctNTUuMy02OC05OC01Ni42TDQxNC45IDguOEMzOTcuOCAxMy40IDM4Ny43IDMxIDM5Mi4zIDQ4bDI0LjUgOTEuNC0xMDguMiAyOC4xLTYuMy0xOC4xQzI5Ny43IDEzNi42IDI4NS42IDEyOCAyNzIgMTI4cy0yNS43IDguNi0zMC4yIDIxLjRsLTEzLjYgMzktMTMyLjIgMzQuMyAwLTM4LjZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNjQtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTM3LjMgMC02MS40LTE3NS40LTYyLjIgMTYuMSAyMi4xIDYzLjItNjYuNiAwIDE5LjktNTYuOS03NC42IDE5LjMtNDYuNyAxMzMuNS00MS4zIDAgMC0xNTkuMiAzMzcuNC04Ny41IDI1LjIgOTRjNC42IDE3LjEgMjIuMSAyNy4yIDM5LjIgMjIuNmwxNS41LTQuMWM0Mi43LTExLjQgNjgtNTUuMyA1Ni42LTk4TDUyOC4zIDYxLjN6TTIwNS4xIDQ0OGwxNi44LTQ4IDEwMC4yIDAgMTYuOCA0OC0xMzMuOCAwelwiXVxufTtcbnZhciBmYVRhY2hvZ3JhcGhEaWdpdGFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhY2hvZ3JhcGgtZGlnaXRhbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiZGlnaXRhbC10YWNob2dyYXBoXCJdLCBcImY1NjZcIiwgXCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptNjQgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTg4IDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCAzNTJ6bTI1NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHpNNDk2IDE5MmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTg4IDMxMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTEwNC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem01NiAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xudmFyIGZhRGlnaXRhbFRhY2hvZ3JhcGggPSBmYVRhY2hvZ3JhcGhEaWdpdGFsO1xudmFyIGZhVGFibGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxldCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1widGFibGV0LWFuZHJvaWRcIl0sIFwiZjNmYlwiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xODQgNDAwbDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhVGFibGV0QW5kcm9pZCA9IGZhVGFibGV0O1xudmFyIGZhUnVibGVTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1YmxlLXNpZ24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs4MzgxLCBcInJvdWJsZVwiLCBcInJ1YlwiLCBcInJ1YmxlXCJdLCBcImYxNThcIiwgXCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDIwOC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCA0OC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMTUyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE1MiAwIDAtNDggMTEyIDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTMzM1LjUgMzIgMjU2IDMyTDExMiAzMnpNMjU2IDI1NmwtMTEyIDAgMC0xNjAgMTEyIDBjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODB6XCJdXG59O1xudmFyIGZhUm91YmxlID0gZmFSdWJsZVNpZ247XG52YXIgZmFSdWIgPSBmYVJ1YmxlU2lnbjtcbnZhciBmYVJ1YmxlID0gZmFSdWJsZVNpZ247XG52YXIgZmFDbG9zZWRDYXB0aW9uaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3NlZC1jYXB0aW9uaW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjBhXCIsIFwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTE1MiA4MGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MGMwLTQuNCAzLjYtOCA4LTh6bTE2OCA4YzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MHpcIl1cbn07XG52YXIgZmFQZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4Mzk0XSwgXCJmMzA0XCIsIFwiTTM1Mi45IDIxLjJMMzA4IDY2LjEgNDQ1LjkgMjA0IDQ5MC44IDE1OS4xQzUwNC40IDE0NS42IDUxMiAxMjcuMiA1MTIgMTA4cy03LjYtMzcuNi0yMS4yLTUxLjFMNDU1LjEgMjEuMkM0NDEuNiA3LjYgNDIzLjIgMCA0MDQgMHMtMzcuNiA3LjYtNTEuMSAyMS4yek0yNzQuMSAxMDBMNTguOSAzMTUuMWMtMTAuNyAxMC43LTE4LjUgMjQuMS0yMi42IDM4LjdMLjkgNDgxLjZjLTIuMyA4LjMgMCAxNy4zIDYuMiAyMy40czE1LjEgOC41IDIzLjQgNi4ybDEyNy44LTM1LjVjMTQuNi00LjEgMjcuOS0xMS44IDM4LjctMjIuNkw0MTIgMjM3LjkgMjc0LjEgMTAwelwiXVxufTtcbnZhciBmYVBsYW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYW5lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMDcyXCIsIFwiTTUyMCAyMDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZzLTI1LjEgNTYtNTYgNTZsLTEyNy4zIDAtMTU5LjIgMTczLjZjLTYuMSA2LjYtMTQuNiAxMC40LTIzLjYgMTAuNGwtNDMuNyAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw1NC4zLTE2Mi45LTk5LjcgMC01Mi44IDY2Yy0zIDMuOC03LjYgNi0xMi41IDZsLTE5LjggMGMtMTAuNCAwLTE4LTkuOC0xNS41LTE5LjlMMzIgMjU2IDUgMTQ3LjlDMi40IDEzNy44IDEwLjEgMTI4IDIwLjUgMTI4bDE5LjggMGM0LjkgMCA5LjUgMi4yIDEyLjUgNmw1Mi44IDY2IDk5LjcgMC01NC4zLTE2Mi45QzE0Ny42IDI2LjcgMTU1LjMgMTYgMTY2LjIgMTZsNDMuNyAwYzkgMCAxNy41IDMuOCAyMy42IDEwLjRMMzkyLjcgMjAwIDUyMCAyMDB6XCJdXG59O1xudmFyIGZhSW1hZ2VzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ltYWdlcycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjMwMlwiLCBcIk05NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzIwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDk2IDk2ek0yNCAxMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyOTZjMCA4LjggNy4yIDE2IDE2IDE2bDM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTE2OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE5Ni41IDExLjVjLTQuNC03LjEtMTIuMS0xMS41LTIwLjUtMTEuNXMtMTYuMSA0LjQtMjAuNSAxMS41bC01Ni4zIDkyLjEtMjQuNS0zMC42Yy00LjYtNS43LTExLjQtOS0xOC43LTlzLTE0LjIgMy4zLTE4LjcgOWwtNjQgODBjLTUuOCA3LjItNi45IDE3LjEtMi45IDI1LjRTMTc0LjggMzUyIDE4NCAzNTJsMjcyIDBjOC43IDAgMTYuNy00LjcgMjAuOS0xMi4zczQuMS0xNi44LS41LTI0LjNsLTg4LTE0NHpcIl1cbn07XG52YXIgZmFNb2JpbGVTY3JlZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9iaWxlLXNjcmVlbicsXG4gIGljb246IFszODQsIDUxMiwgW1wibW9iaWxlLWFuZHJvaWQtYWx0XCJdLCBcImYzY2ZcIiwgXCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0ek0xMjggNDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zMDQgNjRsLTIyNCAwIDAgMzA0IDIyNCAwIDAtMzA0elwiXVxufTtcbnZhciBmYU1vYmlsZUFuZHJvaWRBbHQgPSBmYU1vYmlsZVNjcmVlbjtcbnZhciBmYUd1YXJhbmlTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2d1YXJhbmktc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTE5YVwiLCBcIk0xOTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MS41QzczLjMgNzcuMyAwIDE1OC4xIDAgMjU2UzczLjMgNDM0LjcgMTY4IDQ0Ni41bDAgNDEuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDEuNWM5NC43LTExLjggMTY4LTkyLjYgMTY4LTE5MC41IDAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMzYgMCAwLTkzLjhjMjUuMyA0LjggNDcuOSAxNyA2NS42IDM0LjMgMTIuNiAxMi40IDMyLjkgMTIuMiA0NS4zLS40czEyLjItMzIuOS0uNS00NS4zQzI5Ny4yIDkwLjIgMjU4LjggNzAuOCAyMTYgNjUuNUwyMTYgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTE2OCAxMzAuMmwwIDI1MS41QzEwOC44IDM3MC41IDY0IDMxOC41IDY0IDI1NnM0NC44LTExNC41IDEwNC0xMjUuOHptNDggMjUxLjVsMC05My44IDEwMCAwYy0xMi4zIDQ3LjYtNTEuMiA4NC41LTEwMCA5My44elwiXVxufTtcbnZhciBmYUJhZ1Nob3BwaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhZy1zaG9wcGluZycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wic2hvcHBpbmctYmFnXCJdLCBcImYyOTBcIiwgXCJNMTYwIDgwYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCA0OC0xMjggMCAwLTQ4em0tNDggNDhsLTY0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTIwOGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMCAwLTQ4YzAtNjEuOS01MC4xLTExMi0xMTItMTEyUzExMiAxOC4xIDExMiA4MGwwIDQ4em0yNCA0OGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTE1MiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwiXVxufTtcbnZhciBmYVNob3BwaW5nQmFnID0gZmFCYWdTaG9wcGluZztcbnZhciBmYUNpcmNsZVJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzYxODM4LCBcImFycm93LWFsdC1jaXJjbGUtcmlnaHRcIl0sIFwiZjM1YVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwem0zODcuMyAxMS4zbC0xMDQgMTA0Yy00LjYgNC42LTExLjUgNS45LTE3LjQgMy41UzI1NiAzNjYuNSAyNTYgMzYwbDAtNTYtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtNTZjMC02LjUgMy45LTEyLjMgOS45LTE0LjhzMTIuOS0xLjEgMTcuNCAzLjVsMTA0IDEwNGM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnpcIl1cbn07XG52YXIgZmFBcnJvd0FsdENpcmNsZVJpZ2h0ID0gZmFDaXJjbGVSaWdodDtcbnZhciBmYVBob25lVm9sdW1lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Bob25lLXZvbHVtZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1widm9sdW1lLWNvbnRyb2wtcGhvbmVcIl0sIFwiZjJhMFwiLCBcIk0zNDQtMzJjMTI4LjEgMCAyMzIgMTAzLjkgMjMyIDIzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODQtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0zMjAgODhjMC0xMy4zIDEwLjctMjQgMjQtMjQgNzUuMSAwIDEzNiA2MC45IDEzNiAxMzYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42LTM5LjQtODgtODgtODgtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTE0NC4xIDEuNGMxOS43LTUuNCA0MC4zIDQuNyA0OC4xIDIzLjVsNDAuNSA5Ny4zYzYuOSAxNi41IDIuMSAzNS42LTExLjggNDdsLTQ0LjEgMzYuMWMzMi41IDcxLjYgODkgMTMwIDE1OS4zIDE2NC45TDM3NC43IDMyM2MxMS4zLTEzLjkgMzAuNC0xOC42IDQ3LTExLjhMNTE5IDM1MS44YzE4LjggNy44IDI4LjkgMjguNCAyMy41IDQ4LjFsLTEuNSA1LjVDNTIzLjQgNDcwLjEgNDYwLjkgNTI1LjMgMzg0LjYgNTA5LjIgMjA5LjYgNDcyLjEgNzEuOSAzMzQuNCAzNC44IDE1OS40IDE4LjcgODMuMSA3My45IDIwLjYgMTM4LjUgMi45bDUuNS0xLjV6XCJdXG59O1xudmFyIGZhVm9sdW1lQ29udHJvbFBob25lID0gZmFQaG9uZVZvbHVtZTtcbnZhciBmYUN1YmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2N1YmVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWIzXCIsIFwiTTI4NC0xLjNjLTE3LjMtMTAtMzguNy0xMC01NiAwTDE0My44IDQ3LjNjLTE3LjMgMTAtMjggMjguNS0yOCA0OC41bDAgMTAxLjktODguMyA1MWMtMTcuMyAxMC0yOCAyOC41LTI4IDQ4LjVsMCA5Ny4zYzAgMjAgMTAuNyAzOC41IDI4IDQ4LjVsODQuMyA0OC42YzE3LjMgMTAgMzguNyAxMCA1NiAwbDg4LjMtNTEgODguMyA1MWMxNy4zIDEwIDM4LjcgMTAgNTYgMEw0ODQuNSA0NDNjMTcuMy0xMCAyOC0yOC41IDI4LTQ4LjVsMC05Ny4zYzAtMjAtMTAuNy0zOC41LTI4LTQ4LjVsLTg4LjMtNTEgMC0xMDEuOWMwLTIwLTEwLjctMzguNS0yOC00OC41TDI4NC0xLjN6TTIzMiAyOTIuNmwwIDEwNi41LTg4LjMgNTFjLTEuMiAuNy0yLjYgMS4xLTQgMS4xbDAtMTA1LjMgOTIuMy01My4zem0yMzEuNCAuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNGwwIDk3LjNjMCAyLjktMS41IDUuNS00IDYuOWwtODQuMyA0OC42Yy0xLjIgLjctMi42IDEuMS00IDEuMWwwLTEwNS4zIDkxLjItNTIuNnpNMzQ4LjMgOTUuOGwwIDEwMS45LTkyLjMgNTMuMyAwLTEwNi41IDkxLjItNTIuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNHpcIl1cbn07XG52YXIgZmFQaG9uZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaG9uZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODIyMiwgMTI4Mzc5XSwgXCJmMDk1XCIsIFwiTTE2MC4yIDI1QzE1Mi4zIDYuMSAxMzEuNy0zLjkgMTEyLjEgMS40bC01LjUgMS41Yy02NC42IDE3LjYtMTE5LjggODAuMi0xMDMuNyAxNTYuNCAzNy4xIDE3NSAxNzQuOCAzMTIuNyAzNDkuOCAzNDkuOCA3Ni4zIDE2LjIgMTM4LjgtMzkuMSAxNTYuNC0xMDMuN2wxLjUtNS41YzUuNC0xOS43LTQuNy00MC4zLTIzLjUtNDguMWwtOTcuMy00MC41Yy0xNi41LTYuOS0zNS42LTIuMS00NyAxMS44bC0zOC42IDQ3LjJDMjMzLjkgMzM1LjQgMTc3LjMgMjc3IDE0NC44IDIwNS4zTDE4OSAxNjkuM2MxMy45LTExLjMgMTguNi0zMC40IDExLjgtNDdMMTYwLjIgMjV6XCJdXG59O1xudmFyIGZhVG9yaWlHYXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RvcmlpLWdhdGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5OTYxXSwgXCJmNmExXCIsIFwiTTAgOTZMMCAyOC41QzAgMjEuNiA1LjYgMTYgMTIuNSAxNiAxNC44IDE2IDE3IDE2LjYgMTkgMTcuOEw1OCA0MS4yQzgyLjkgNTYuMSAxMTEuMyA2NCAxNDAuMyA2NGwxNjcuNCAwYzI5IDAgNTcuNS03LjkgODIuMy0yMi44bDM5LTIzLjRjMS45LTEuMiA0LjItMS44IDYuNC0xLjggNi45IDAgMTIuNSA1LjYgMTIuNSAxMi41TDQ0OCA5NmMwIDM1LjMtMjguNyA2NC02NCA2NGwwIDY0IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOTItMTkyIDAgMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOTItMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNjRDMjguNyAxNjAgMCAxMzEuMyAwIDk2ek0xMjggMjI0bDY0IDAgMC02NC02NCAwIDAgNjR6bTEyOCAwbDY0IDAgMC02NC02NCAwIDAgNjR6XCJdXG59O1xudmFyIGZhQmFjb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFjb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjkzNjNdLCBcImY3ZTVcIiwgXCJNNTU3IDk2LjdjMTQuNCAxNC40IDEyLjQgMzguNC00LjMgNTAuMmwtNjQuNiA0NS43Yy00My43IDMwLjktNzkuMiA3MS45LTEwMy40IDExOS42bC0yNS4zIDQ5LjhjLTI1LjEgNDkuMy02Mi4xIDkxLjUtMTA3LjggMTIyLjZsLTc0LjEgNTAuNmMtMTMuMSA4LjktMzAuNyA3LjMtNDEuOC0zLjlsLTQ0LjktNDQuOSA4Ni41LTY2LjVjNDIuMy0zMi41IDc2LjctNzQuMyAxMDAuNi0xMjJsMjQuNS00OS4xYzI0LjUtNDkgNjEuOC05MC42IDEwNy45LTEyMC4ybDEwOC43LTY5LjkgMzggMzh6TTQ4NC4yIDIzLjlMMzg0LjMgODguMmMtNTMuNCAzNC4zLTk2LjUgODIuNC0xMjQuOSAxMzkuMWwtMjQuNSA0OS4xYy0yMC42IDQxLjMtNTAuMyA3Ny4zLTg2LjkgMTA1LjRsLTkxLjQgNzAuMy0zNi45LTM2LjljLTE0LjQtMTQuNC0xMi40LTM4LjQgNC4zLTUwLjJsNjQuNi00NS43YzQzLjctMzAuOSA3OS4yLTcxLjkgMTAzLjQtMTE5LjZsMjUuMy00OS44QzI0Mi4zIDEwMC44IDI3OS4zIDU4LjYgMzI1IDI3LjRsNzQuMS01MC42YzEzLjEtOC45IDMwLjYtNy4zIDQxLjggMy45bDQzLjMgNDMuM3pcIl1cbn07XG52YXIgZmFQZXJzb25GYWxsaW5nQnVyc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWZhbGxpbmctYnVyc3QnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NDdcIiwgXCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA1LjRjMCA1NS4yLTIzLjcgMTA3LTYzLjkgMTQzLjFsNjIuOSA3NS41IDg5IDBjMTUuMSAwIDI5LjMgNy4xIDM4LjQgMTkuMmw0My4yIDU3LjZjMTAuNiAxNC4xIDcuNyAzNC4yLTYuNCA0NC44cy0zNC4yIDcuNy00NC44LTYuNEwzNjggMzIwIDI2My4yIDMyMCAzNzYuOCA0NTkuOGMxMS4xIDEzLjcgOS4xIDMzLjktNC43IDQ1cy0zMy45IDkuMS00NS00LjdMMTM3LjQgMjY2LjZjLTYuMSAxNS05LjQgMzEuMy05LjQgNDhsMCA2OS40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjkuNGMwLTY3LjQgMzUuNC0xMjkuOSA5My4yLTE2NC42bDQuNi0yLjhDMjAwLjQgMTI0IDIyNCA4Mi40IDIyNCAzNy40bDAtNS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xNiA4OEE1NiA1NiAwIDEgMSAxMjggODggNTYgNTYgMCAxIDEgMTYgODh6bTM3Ni03LjljMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDh6bTEwNCAxNTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMHptLTU0LjUtOTcuNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsMzMuOS0zMy45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzMuOSAzMy45Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHpcIl1cbn07XG52YXIgZmFRdW90ZVJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3F1b3RlLXJpZ2h0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbODIyMSwgXCJxdW90ZS1yaWdodC1hbHRcIl0sIFwiZjEwZVwiLCBcIk00NDggMjk2YzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtOC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMzZ6bS0yNTYgMGMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDggMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTgtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTM2elwiXVxufTtcbnZhciBmYVF1b3RlUmlnaHRBbHQgPSBmYVF1b3RlUmlnaHQ7XG52YXIgZmFIb3VzZU1lZGljYWxGbGFnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLW1lZGljYWwtZmxhZycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUxNFwiLCBcIk00ODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI2Ny41IDU5LjFMNDAwIDE4Ni45IDQwMCA1MDMuNGMtOS40IDUuNC0yMC4zIDguNi0zMiA4LjZsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE0NC0xOS45IDBDMTIuNiAzMDQgMCAyOTEuNCAwIDI3NS45IDAgMjY4LjMgMy4xIDI2MSA4LjYgMjU1LjdMMjEyLjUgNTkuMUMyMTkuOSA1MiAyMjkuNyA0OCAyNDAgNDhzMjAuMSA0IDI3LjUgMTEuMXpNMjA0LjggMjU2LjhsMCA0NC00NCAwYy05LjcgMC0xNy42IDcuOS0xNy42IDE3LjZsMCAzNS4yYzAgOS43IDcuOSAxNy42IDE3LjYgMTcuNmw0NCAwIDAgNDRjMCA5LjcgNy45IDE3LjYgMTcuNiAxNy42bDM1LjIgMGM5LjcgMCAxNy42LTcuOSAxNy42LTE3LjZsMC00NCA0NCAwYzkuNyAwIDE3LjYtNy45IDE3LjYtMTcuNmwwLTM1LjJjMC05LjctNy45LTE3LjYtMTcuNi0xNy42bC00NCAwIDAtNDRjMC05LjctNy45LTE3LjYtMTcuNi0xNy42bC0zNS4yIDBjLTkuNyAwLTE3LjYgNy45LTE3LjYgMTcuNnpcIl1cbn07XG52YXIgZmFQcmVzY3JpcHRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncHJlc2NyaXB0aW9uJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNWIxXCIsIFwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyTDAgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA1MC43IDAgMTI4IDEyOC0xMDUuNCAxMDUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyODggMzk3LjMgMzkzLjQgNTAyLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wzMzMuMyAzNTIgNDM4LjYgMjQ2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjg4IDMwNi43IDIwMi4yIDIyMC45QzI1MS40IDIwOS4xIDI4OCAxNjQuOCAyODggMTEyIDI4OCA1MC4xIDIzNy45IDAgMTc2IDBMMzIgMHpNMTc2IDE2MGwtMTEyIDAgMC05NiAxMTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OHpcIl1cbn07XG52YXIgZmFEaWNlVGhyZWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS10aHJlZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzk4NThdLCBcImY1MjdcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTI4IDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFCdWlsZGluZ0xvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmctbG9jaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRkNlwiLCBcIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTIxLjNjLTQ2LjkgMTktODAgNjUtODAgMTE4LjdsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNzYgMzg0bDAgODAgODAgMCAwLTY0LjFjMC0xMy43IDEuOS0yNyA1LjUtMzkuNi01LjctNS4yLTEzLjItOC4zLTIxLjUtOC4zbC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzA3IDIyNC4zYy0xLS4yLTItLjMtMy0uM2wtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2LjcgMGMyLjEtMjIuOCA4LjQtNDQuMyAxOC4zLTYzLjd6TTE0NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTQ0IDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0zNTIgODAuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6XCJdXG59O1xudmFyIGZhSWRDYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2lkLWNhcmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs2MjE0NywgXCJkcml2ZXJzLWxpY2Vuc2VcIl0sIFwiZjJjMlwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0TDAgOTZ6bTAgNDhsNTc2IDAgMCAyNzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE0NHpNMjQ3LjMgNDE2YzIwLjIgMCAzNS4zLTE5LjQgMjIuNC0zNS0xNC43LTE3LjctMzYuOS0yOS02MS43LTI5bC02NCAwYy0yNC44IDAtNDcgMTEuMy02MS43IDI5LTEyLjkgMTUuNiAyLjIgMzUgMjIuNCAzNWwxNDIuNSAwek0xNzYgMzEyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0zNjAgMjA4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6XCJdXG59O1xudmFyIGZhRHJpdmVyc0xpY2Vuc2UgPSBmYUlkQ2FyZDtcbnZhciBmYUNpcmNsZVBsYXkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLXBsYXknLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MTQ2OSwgXCJwbGF5LWNpcmNsZVwiXSwgXCJmMTQ0XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTE4OC4zIDE0Ny4xYy03LjYgNC4yLTEyLjMgMTIuMy0xMi4zIDIwLjlsMCAxNzZjMCA4LjcgNC43IDE2LjcgMTIuMyAyMC45czE2LjggNC4xIDI0LjMtLjVsMTQ0LTg4YzcuMS00LjQgMTEuNS0xMi4xIDExLjUtMjAuNXMtNC40LTE2LjEtMTEuNS0yMC41bC0xNDQtODhjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNXpcIl1cbn07XG52YXIgZmFQbGF5Q2lyY2xlID0gZmFDaXJjbGVQbGF5O1xudmFyIGZhRmFjZUxhdWdoQmVhbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWxhdWdoLWJlYW0nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MTMsIFwibGF1Z2gtYmVhbVwiXSwgXCJmNTlhXCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNzYgMTY0Yy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHpcIl1cbn07XG52YXIgZmFMYXVnaEJlYW0gPSBmYUZhY2VMYXVnaEJlYW07XG52YXIgZmFMZWFmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xlYWYnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwNmNcIiwgXCJNNDcxLjMgNi43QzQ3Ny43IC42IDQ4Ny0xLjYgNDk1LjYgMS4yIDUwNS40IDQuNSA1MTIgMTMuNyA1MTIgMjRsMCAxODYuOWMwIDEzMS4yLTEwOC4xIDIzNy4xLTIzOC44IDIzNy4xLTc3IDAtMTQzLjQtNDkuNS0xNjcuNS0xMTguNy0zNS40IDMwLjgtNTcuNyA3Ni4xLTU3LjcgMTI2LjcgMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA0NjkuMyAwIDQ1NkMwIDM4MS4xIDM4LjIgMzE1LjEgOTYuMSAyNzYuMyAxMzEuNCAyNTIuNyAxNzMuNSAyNDAgMjE2IDI0MGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwYy0zOS43IDAtNzcuMyA4LjgtMTExIDI0LjUgMjMuMy03MCA4OS4yLTEyMC41IDE2Ny0xMjAuNSA2Ni40IDAgMTE1LjgtMjIuMSAxNDguNy00NCAxOS4yLTEyLjggMzUuNS0yOC4xIDUwLjctNDUuM3pcIl1cbn07XG52YXIgZmFIb3VzZUNoaW1uZXlVc2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWNoaW1uZXktdXNlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTA2NVwiLCBcIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMzEyIDI1NmE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6TTE0NCA0MzJjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6XCJdXG59O1xudmFyIGZhUm90YXRlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncm90YXRlLXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJyZWRvLWFsdFwiLCBcInJvdGF0ZS1mb3J3YXJkXCJdLCBcImYyZjlcIiwgXCJNNDg4IDE5MmwtMTQ0IDBjLTkuNyAwLTE4LjUtNS44LTIyLjItMTQuOHMtMS43LTE5LjMgNS4yLTI2LjJsNDYuNy00Ni43Yy03NS4zLTU4LjYtMTg0LjMtNTMuMy0yNTMuNSAxNS45LTc1IDc1LTc1IDE5Ni41IDAgMjcxLjVzMTk2LjUgNzUgMjcxLjUgMGM4LjItOC4yIDE1LjUtMTYuOSAyMS45LTI2LjEgMTAuMS0xNC41IDMwLjEtMTggNDQuNi03LjlzMTggMzAuMSA3LjkgNDQuNmMtOC41IDEyLjItMTguMiAyMy44LTI5LjEgMzQuNy0xMDAgMTAwLTI2Mi4xIDEwMC0zNjIgMFMtMjUgMTc1IDc1IDc1Yzk0LjMtOTQuMyAyNDMuNy05OS42IDM0NC4zLTE2LjJMNDcxIDdjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlM1MTIgMTQuMyA1MTIgMjRsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjR6XCJdXG59O1xudmFyIGZhUmVkb0FsdCA9IGZhUm90YXRlUmlnaHQ7XG52YXIgZmFSb3RhdGVGb3J3YXJkID0gZmFSb3RhdGVSaWdodDtcbnZhciBmYVRvb3RoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rvb3RoJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI5NDYzXSwgXCJmNWM5XCIsIFwiTTE0NSA1LjdMMjI0IDMyIDMwMyA1LjdDMzE0LjMgMS45IDMyNiAwIDMzNy45IDAgMzk4LjcgMCA0NDggNDkuMyA0NDggMTEwLjFsMCA2OC41YzAgMjkuNC05LjUgNTguMS0yNy4yIDgxLjZsLTEuMSAxLjVjLTEyLjkgMTcuMi0yMS4zIDM3LjQtMjQuMyA1OC43TDM3My43IDQ3MS45Yy0zLjMgMjMtMjMgNDAuMS00Ni4yIDQwLjEtMjIuOCAwLTQyLjMtMTYuNS00Ni0zOUwyNjEuMyAzNTEuNmMtMy0xOC4yLTE4LjgtMzEuNi0zNy4zLTMxLjZzLTM0LjIgMTMuNC0zNy4zIDMxLjZMMTY2LjUgNDczYy0zLjggMjIuNS0yMy4yIDM5LTQ2IDM5LTIzLjIgMC00Mi45LTE3LjEtNDYuMi00MC4xTDUyLjYgMzIwLjVjLTMtMjEuMy0xMS40LTQxLjUtMjQuMy01OC43bC0xLjEtMS41QzkuNSAyMzYuNyAwIDIwOC4xIDAgMTc4LjdsMC02OC41QzAgNDkuMyA0OS4zIDAgMTEwLjEgMCAxMjIgMCAxMzMuNyAxLjkgMTQ1IDUuN3pcIl1cbn07XG52YXIgZmFIb3VzZUNoaW1uZXlXaW5kb3cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91c2UtY2hpbW5leS13aW5kb3cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUwMGRcIiwgXCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6TTIxNiAyMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAwelwiXVxufTtcbnZhciBmYU1vdG9yY3ljbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW90b3JjeWNsZScsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyNzk0OV0sIFwiZjIxY1wiLCBcIk0yODAgMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYuNiAwIDIyLjUgNDguNy05NS4xIDcxLjNjLTMzLjQtMjUuMS03NS00MC0xMjAtNDBsLTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYgMGM3OC41IDAgMTQzLjIgNTkuNiAxNTEuMiAxMzZsLTI1LjQgMGMtMTEuMi01OS4yLTYzLjMtMTA0LTEyNS44LTEwNC03MC43IDAtMTI4IDU3LjMtMTI4IDEyOFM3My4zIDQ4MCAxNDQgNDgwYzYyLjUgMCAxMTQuNS00NC44IDEyNS44LTEwNGw1MC4yIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yMi41YzAtNDUuMSAyNS43LTg1LjQgNjUuNS0xMDcuN2wxMi4xIDI2LjFjLTMyLjQgMjMuMi01My41IDYxLjItNTMuNSAxMDQuMSAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4LTU3LjMtMTI4LTEyOC0xMjhjLTEwLjcgMC0yMSAxLjMtMzAuOSAzLjhMNDMzLjggMTYwIDQ4OCAxNjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNTMuMyAwYy02LjkgMC0xMy43IDIuMi0xOS4yIDYuNGwtMTcuMSAxMi44LTI0LjYtNTMuM0MzNjkuOSAyMS40IDM2MS40IDE2IDM1MiAxNmwtNzIgMHpNNDQ1LjggMzAwLjRsMjguNCA2MS42YzUuNiAxMiAxOS44IDE3LjMgMzEuOCAxMS43czE3LjMtMTkuOCAxMS43LTMxLjhsLTI4LjUtNjEuNmMyLjItLjIgNC40LS4zIDYuNy0uMyAzOS44IDAgNzIgMzIuMiA3MiA3MnMtMzIuMiA3Mi03MiA3Mi03Mi0zMi4yLTcyLTcyYzAtMjAuMiA4LjMtMzguNSAyMS44LTUxLjZ6TTE0NCA0MjRjLTM5LjggMC03Mi0zMi4yLTcyLTcyczMyLjItNzIgNzItNzJjMzEuMyAwIDU4IDIwIDY3LjkgNDhMMTQ0IDMyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2Ny45IDBjLTkuOSAyOC0zNi42IDQ4LTY3LjkgNDh6XCJdXG59O1xudmFyIGZhQmFja3dhcmRGYXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhY2t3YXJkLWZhc3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5MTk4LCBcImZhc3QtYmFja3dhcmRcIl0sIFwiZjA0OVwiLCBcIk00OTIuMiA0NzcuNmMtMTIgNS0yNS43IDIuMi0zNC45LTYuOUwyODggMzAxLjMgMjg4IDQ0OGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOUw2NCAzMDEuMyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyUzY0IDQ2LjMgNjQgNjRMNjQgMjEwLjcgMjMzLjQgNDEuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMyODggNTEuMSAyODggNjRsMCAxNDYuNyAxNjkuNC0xNjkuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVM1MTIgNTEuMSA1MTIgNjRsMCAzODRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnpcIl1cbn07XG52YXIgZmFGYXN0QmFja3dhcmQgPSBmYUJhY2t3YXJkRmFzdDtcbnZhciBmYUFkZHJlc3NCb29rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FkZHJlc3MtYm9vaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzYyMTM4LCBcImNvbnRhY3QtYm9va1wiXSwgXCJmMmI5XCIsIFwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHpNMjA4IDI4OGw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTI0LTk2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNNTEyIDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0em0wIDEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNNDk2IDMyMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFDb250YWN0Qm9vayA9IGZhQWRkcmVzc0Jvb2s7XG52YXIgZmFTYWlsYm9hdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzYWlsYm9hdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTQ0NVwiLCBcIk0yNDAgMzUuOWwwIDM0OC4xLTIyNCAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMjg4IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTIgMC04LjgtNy4yLTE2LTE2LTE2bC0yMDggMCAwLTQ4IDE2MS43IDBjMTIuOSAwIDIwLjUtMTQuNCAxMy4yLTI1TDI2OS4yIDI2LjljLTguOS0xMy0yOS4yLTYuNy0yOS4yIDl6TTE5MiAzMjBsMC0xODQuMmMwLTE2LjEtMjEtMjIuMS0yOS42LTguNUw0Ny4zIDMxMS41Yy02LjcgMTAuNyAxIDI0LjUgMTMuNiAyNC41TDE3NiAzMzZjOC44IDAgMTYtNy4yIDE2LTE2elwiXVxufTtcbnZhciBmYUJvb2tCb29rbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rLWJvb2ttYXJrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMGJiXCIsIFwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgMTY5LjRjMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjYtNiAwLTExLjgtMi40LTE2LTYuNkwyNzIgMTQ0IDIzMC42IDE4NS40Yy00LjIgNC4yLTEwIDYuNi0xNiA2LjYtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjZMMTkyIDAgOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJdXG59O1xudmFyIGZhTWFnbmlmeWluZ0dsYXNzQXJyb3dSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYWduaWZ5aW5nLWdsYXNzLWFycm93LXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTIxXCIsIFwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMzA1IDIyNWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtMTAyLjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDIuMSAwLTMxIDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNzItNzJ6XCJdXG59O1xudmFyIGZhTWljcm9waG9uZUxpbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pY3JvcGhvbmUtbGluZXMnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjc4OTcsIFwibWljcm9waG9uZS1hbHRcIl0sIFwiZjNjOVwiLCBcIk05NiA5NmMwLTUzIDQzLTk2IDk2LTk2IDUwLjMgMCA5MS42IDM4LjcgOTUuNyA4OEwyMzIgODhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYgMCAwIDQ4LTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTUuNyAwYy00LjEgNDkuMy00NS4zIDg4LTk1LjcgODgtNTMgMC05Ni00My05Ni05Nkw5NiA5NnpNMjQgMTYwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDBjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDk3LjktNzMuMyAxNzguNy0xNjggMTkwLjVsMCA0OS41IDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OS41QzczLjMgNDAyLjcgMCAzMjEuOSAwIDIyNGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYU1pY3JvcGhvbmVBbHQgPSBmYU1pY3JvcGhvbmVMaW5lcztcbnZhciBmYVJlcGx5QWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlcGx5LWFsbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibWFpbC1yZXBseS1hbGxcIl0sIFwiZjEyMlwiLCBcIk0zMzIuMiAxOC40YzEyIDUgMTkuOCAxNi42IDE5LjggMjkuNmwwIDgwIDQ4IDBjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCAxMTMuMy04MS41IDE2My45LTEwMC4yIDE3NC4xLTIuNSAxLjQtNS4zIDEuOS04LjEgMS45LTEwLjkgMC0xOS43LTguOS0xOS43LTE5LjcgMC03LjUgNC4zLTE0LjQgOS44LTE5LjUgOS40LTguOCAyMi4yLTI2LjQgMjIuMi01Ni43IDAtNTMtNDMtOTYtOTYtOTZsLTMyIDAgMCA4MGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsMTYwLTE2MGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOXpNMjA1LjYgMjMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUw1NC42IDIwOCAyMDUuNiAzNTguOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDEwIDIzMS4yYy02LjQtNi0xMC0xNC40LTEwLTIzLjJzMy42LTE3LjIgMTAtMjMuMkwxNzEuNiAyMy4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwelwiXVxufTtcbnZhciBmYU1haWxSZXBseUFsbCA9IGZhUmVwbHlBbGw7XG52YXIgZmFVbml2ZXJzYWxBY2Nlc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndW5pdmVyc2FsLWFjY2VzcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI5YVwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNjEuNS04Ni4xYy0xMi4yLTUuMi0yNi4zIC40LTMxLjUgMTIuNnMuNCAyNi4zIDEyLjYgMzEuNWwxMS45IDUuMWMxNy4zIDcuNCAzNS4yIDEyLjkgNTMuNiAxNi4zbDAgNTAuMWMwIDQuMy0uNyA4LjYtMi4xIDEyLjZsLTI4LjcgODYuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyNC40LTczLjJjMS4zLTMuOCA0LjgtNi40IDguOC02LjRzNy42IDIuNiA4LjggNi40bDI0LjQgNzMuMmM0LjIgMTIuNiAxNy44IDE5LjQgMzAuNCAxNS4yUzMzOSAzOTcgMzM0LjggMzg0LjRsLTI4LjctODYuMWMtMS40LTQuMS0yLjEtOC4zLTIuMS0xMi42bDAtNTAuMWMxOC40LTMuNSAzNi4zLTguOSA1My42LTE2LjNsMTEuOS01LjFjMTIuMi01LjIgMTcuOC0xOS4zIDEyLjYtMzEuNXMtMTkuMy0xNy44LTMxLjUtMTIuNkwzMzguNyAxNzVjLTI2LjEgMTEuMi01NC4yIDE3LTgyLjcgMTdzLTU2LjUtNS44LTgyLjctMTdsLTExLjktNS4xek0yNTYgMTYwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpcIl1cbn07XG52YXIgZmFUb2lsZXRQYXBlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b2lsZXQtcGFwZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk1MzEsIDYzMjYzLCBcInRvaWxldC1wYXBlci1hbHRcIiwgXCJ0b2lsZXQtcGFwZXItYmxhbmtcIl0sIFwiZjcxZVwiLCBcIk0zMjcuMSAzMmMtOC44IDExLjEtMTYgMjMuMS0yMS45IDM0LjgtMjEuNCA0Mi43LTMzLjIgOTguNC0zMy4yIDE1Ny4ybDAgMjY0YzAgMzAuOS0yNS4xIDU2LTU2IDU2TDU2IDU0NGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCAyMjRDMCAxMTggNDMgMzIgOTYgMzJsMjMxLjEgMHpNNDE2IDQxNmMtNTMgMC05Ni04Ni05Ni0xOTJzNDMtMTkyIDk2LTE5MiA5NiA4NiA5NiAxOTItNDMgMTkyLTk2IDE5MnptMC0xMjhjMTcuNyAwIDMyLTI4LjcgMzItNjRzLTE0LjMtNjQtMzItNjQtMzIgMjguNy0zMiA2NCAxNC4zIDY0IDMyIDY0elwiXVxufTtcbnZhciBmYVRvaWxldFBhcGVyQWx0ID0gZmFUb2lsZXRQYXBlcjtcbnZhciBmYVRvaWxldFBhcGVyQmxhbmsgPSBmYVRvaWxldFBhcGVyO1xudmFyIGZhVnJDYXJkYm9hcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndnItY2FyZGJvYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzI5XCIsIFwiTTUxMiA5Nkw2NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTE3LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN2wzMy45LTMzLjljNy4yLTcuMiAxNy4xLTExLjMgMjcuMy0xMS4zczIwLjEgNC4xIDI3LjMgMTEuM2wzMy45IDMzLjljMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN0w1MTIgNDE2YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0ek04MCAyNDBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem0zNTItNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6XCJdXG59O1xudmFyIGZhUGl6emFTbGljZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaXp6YS1zbGljZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjgxOFwiLCBcIk0xNjkuNyAuOWMtMjIuOC0xLjYtNDEuOSAxNC00Ny41IDM0LjdMMTEyLjUgNzJDMjkzLjMgNzIuMyA0MzkuNyAyMTguNyA0NDAgMzk5LjVsMzYuNC05LjdjMjAuOC01LjUgMzYuMy0yNC43IDM0LjctNDcuNS0xMi42LTE4Mi44LTE1OC42LTMyOC44LTM0MS40LTM0MS40em0yMjIgNDExLjVjLjItNC4xIC4zLTguMiAuMy0xMi40IDAtMTU0LjYtMTI1LjQtMjgwLTI4MC0yODAtNC4xIDAtOC4zIC4xLTEyLjQgLjNMLjUgNDkxLjljLTEuNSA1LjUgLjEgMTEuNCA0LjEgMTUuNHM5LjkgNS42IDE1LjQgNC4xbDM3MS42LTk5LjF6TTE3NiAyMDhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNOTYgMzg0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xudmFyIGZhU3ByYXlDYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3ByYXktY2FuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNWJkXCIsIFwiTTE5MiAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC0xMjggMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAyNTZjMC01MyA0My05NiA5Ni05NmwxMjggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjA4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yMjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yMDh6bTI0MCA4MGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTMyMCA2NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek00NDggMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTUxMiAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ4IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xudmFyIGZhVm9sdW1lTG93ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZvbHVtZS1sb3cnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjgyNjQsIFwidm9sdW1lLWRvd25cIl0sIFwiZjAyN1wiLCBcIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNMzgwLjYgMTgxLjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEMzNjEuMSAyMjcuNiAzNjggMjQxIDM2OCAyNTZzLTYuOSAyOC40LTE3LjcgMzcuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM0MDIuMSAzMTIuOSA0MTYgMjg2LjEgNDE2IDI1NnMtMTMuOS01Ni45LTM1LjUtNzQuNXpcIl1cbn07XG52YXIgZmFWb2x1bWVEb3duID0gZmFWb2x1bWVMb3c7XG52YXIgZmFDcm9zcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjcm9zcycsXG4gIGljb246IFszODQsIDUxMiwgWzEyODMyNywgMTAwMTNdLCBcImY2NTRcIiwgXCJNMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgODAtODAgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw4MCAwIDAgMjA4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMDggODAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC04MCAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTc2IDB6XCJdXG59O1xudmFyIGZhUGVyc29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbicsXG4gIGljb246IFszODQsIDUxMiwgWzEyOTQ4NSwgXCJtYWxlXCJdLCBcImYxODNcIiwgXCJNMjQ4IDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdsNDYuMyA2Mi40YzEwLjUgMTQuMiAzMC42IDE3LjIgNDQuOCA2LjZzMTcuMi0zMC42IDYuNi00NC44bC03MC41LTk1QzI3NCAxMzIgMjM0LjMgMTEyIDE5MiAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxMTIgMjM2LjcgMTEyIDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zelwiXVxufTtcbnZhciBmYU1hbGUgPSBmYVBlcnNvbjtcbnZhciBmYUhvdXJnbGFzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VyZ2xhc3MnLFxuICBpY29uOiBbMzg0LCA1MTIsIFs5MjAzLCA2MjAzMiwgXCJob3VyZ2xhc3MtZW1wdHlcIl0sIFwiZjI1NFwiLCBcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDExYzAgNDIuNC0xNi45IDgzLjEtNDYuOSAxMTMuMWwtNjcuOSA2Ny45IDY3LjkgNjcuOWMzMCAzMCA0Ni45IDcwLjcgNDYuOSAxMTMuMWwwIDExYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwwLTExYzAtNDIuNCAxNi45LTgzLjEgNDYuOS0xMTMuMWw2Ny45LTY3LjktNjcuOS02Ny45QzQ4LjkgMTU4LjEgMzIgMTE3LjQgMzIgNzVsMC0xMUMxNC4zIDY0IDAgNDkuNyAwIDMyek05NiA2NGwwIDExYzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45bDY3LjkgNjcuOSA2Ny45LTY3LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOWwwLTExLTE5MiAwem0wIDM4NGwxOTIgMCAwLTExYzAtMjUuNS0xMC4xLTQ5LjktMjguMS02Ny45bC02Ny45LTY3LjktNjcuOSA2Ny45Yy0xOCAxOC0yOC4xIDQyLjQtMjguMSA2Ny45bDAgMTF6XCJdXG59O1xudmFyIGZhSG91cmdsYXNzRW1wdHkgPSBmYUhvdXJnbGFzcztcbnZhciBmYUZpc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlzaCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzEyODAzMV0sIFwiZjU3OFwiLCBcIk0xODAuNSAxNDEuNUMyMTkuNyAxMDguNSAyNzIuNiA4MCAzMzYgODBzMTE2LjMgMjguNSAxNTUuNSA2MS41YzM5LjEgMzMgNjYuOSA3Mi40IDgxIDk5LjggNC43IDkuMiA0LjcgMjAuMSAwIDI5LjMtMTQuMSAyNy40LTQxLjkgNjYuOC04MSA5OS44LTM5LjIgMzMuMS05MiA2MS41LTE1NS41IDYxLjVzLTExNi4zLTI4LjUtMTU1LjUtNjEuNWMtMTYuMi0xMy43LTMwLjUtMjguNS00Mi43LTQzLjFMNDguMSAzNzkuNmMtMTIuNSA3LjMtMjguNCA1LjMtMzguNy00LjlzLTEyLjQtMjYtNS4zLTM4LjZMNTAgMjU2IDQuMiAxNzUuOWMtNy4yLTEyLjYtNS0yOC40IDUuMy0zOC42czI2LjEtMTIuMiAzOC43LTQuOWw4OS43IDUyLjNjMTIuMi0xNC42IDI2LjUtMjkuNCA0Mi43LTQzLjF6TTQ0OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpcIl1cbn07XG52YXIgZmFEcnVtc3RpY2tCaXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RydW1zdGljay1iaXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNmQ3XCIsIFwiTTE2MCAyNjUuMmMwIDguNS0zLjQgMTYuNi05LjQgMjIuNmwtMjYuOCAyNi44Yy0xMi4zIDEyLjMtMzIuNSAxMS40LTQ5LjQgNy4yLTQuNi0xLjEtOS41LTEuOC0xNC41LTEuOC0zMy4xIDAtNjAgMjYuOS02MCA2MHMyNi45IDYwIDYwIDYwYzYuMyAwIDEyIDUuNyAxMiAxMiAwIDMzLjEgMjYuOSA2MCA2MCA2MHM2MC0yNi45IDYwLTYwYzAtNS0uNi05LjgtMS44LTE0LjUtNC4yLTE2LjktNS4yLTM3LjEgNy4yLTQ5LjRsMjYuOC0yNi44YzYtNiAxNC4xLTkuNCAyMi42LTkuNGw4OS4yIDBjNi4zIDAgMTIuNC0uMyAxOC41LTEgMTEuOS0xLjIgMTYuNC0xNS41IDEwLjgtMjYtOC41LTE1LjgtMTMuMy0zMy44LTEzLjMtNTMgMC02MS45IDUwLjEtMTEyIDExMi0xMTIgOCAwIDE1LjcgLjggMjMuMiAyLjQgMTEuNyAyLjUgMjQuMS01LjkgMjItMTcuNi0xNC43LTgyLjMtODYuNy0xNDQuOC0xNzMuMi0xNDQuOC05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NmwwIDg5LjJ6XCJdXG59O1xudmFyIGZhQ2hhcnRTaW1wbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtc2ltcGxlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNDczXCIsIFwiTTE5MiA4MGMwLTI2LjUgMjEuNS00OCA0OC00OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTM1MnpNMCAyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAyNzJ6TTQzMiA5NmwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjg4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTI4OGMwLTI2LjUgMjEuNS00OCA0OC00OHpcIl1cbn07XG52YXIgZmFBdG9tID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2F0b20nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5ODgzXSwgXCJmNWQyXCIsIFwiTTIyNCAzOTguOGMtMTEuOCA1LjEtMjMuNCA5LjctMzQuOSAxMy41IDE2LjcgMzMuOCAzMSAzNS43IDM0LjkgMzUuN3MxOC4xLTEuOSAzNC45LTM1LjdjLTExLjQtMy45LTIzLjEtOC40LTM0LjktMTMuNXpNNDE0IDI1NmMzMyA0NS4yIDQ0LjMgOTAuOSAyMy42IDEyOC0yMC4yIDM2LjMtNjIuNSA0OS4zLTExNS4yIDQzLjItMjIgNTIuMS01NS43IDg0LjgtOTguNCA4NC44cy03Ni40LTMyLjctOTguNC04NC44QzcyLjkgNDMzLjMgMzAuNiA0MjAuMyAxMC40IDM4NC0xMC4zIDM0Ni45IDEgMzAxLjIgMzQgMjU2IDEgMjEwLjgtMTAuMyAxNjUuMSAxMC40IDEyOCAzMC42IDkxLjcgNzIuOSA3OC43IDEyNS42IDg0LjggMTQ3LjYgMzIuNyAxODEuMiAwIDIyNCAwczc2LjQgMzIuNyA5OC40IDg0LjhjNTIuNy02LjEgOTUgNi44IDExNS4yIDQzLjIgMjAuNyAzNy4xIDkuNCA4Mi44LTIzLjYgMTI4em0tNjUuOCA2Ny40Yy0xLjcgMTQuMi0zLjkgMjgtNi43IDQxLjIgMzEuOCAxLjQgMzguNi04LjcgNDAuMi0xMS43IDIuMy00LjIgNy0xNy45LTExLjktNDguMS02LjggNi4zLTE0IDEyLjUtMjEuNiAxOC42em0tNi43LTE3NS45YzIuOCAxMy4xIDUgMjYuOSA2LjcgNDEuMiA3LjYgNi4xIDE0LjggMTIuMyAyMS42IDE4LjYgMTguOS0zMC4yIDE0LjItNDQgMTEuOS00OC4xLTEuNi0yLjktOC40LTEzLTQwLjItMTEuN3pNMjU4LjkgOTkuN0MyNDIuMSA2NS45IDIyNy45IDY0IDIyNCA2NHMtMTguMSAxLjktMzQuOSAzNS43YzExLjQgMy45IDIzLjEgOC40IDM0LjkgMTMuNSAxMS44LTUuMSAyMy40LTkuNyAzNC45LTEzLjV6bS0xNTkgODguOWMxLjctMTQuMyAzLjktMjggNi43LTQxLjItMzEuOC0xLjQtMzguNiA4LjctNDAuMiAxMS43LTIuMyA0LjItNyAxNy45IDExLjkgNDguMSA2LjgtNi4zIDE0LTEyLjUgMjEuNi0xOC42ek03OC4yIDMwNC44Yy0xOC45IDMwLjItMTQuMiA0NC0xMS45IDQ4LjEgMS42IDIuOSA4LjQgMTMgNDAuMiAxMS43LTIuOC0xMy4xLTUtMjYuOS02LjctNDEuMi03LjYtNi4xLTE0LjgtMTIuMy0yMS42LTE4LjZ6TTMwNCAyNTZhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwem0tODAtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYVAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncCcsXG4gIGljb246IFszMjAsIDUxMiwgWzExMl0sIFwiNTBcIiwgXCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwxMjggMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MFMyNDguNCAzNTIgMTYwIDM1MmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjg4bDk2IDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZsLTk2IDAgMCAxOTJ6XCJdXG59O1xudmFyIGZhSmV0RmlnaHRlclVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2pldC1maWdodGVyLXVwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTE4XCIsIFwiTTIwNi44IDQ3LjhDMjAyLjMgNTguNSAyMDAgNzAgMjAwIDgxLjZsMCAxMDAuNC0xNTIgMTE0IDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAyMzQuNyAwIDI0OEwwIDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAxNTIgMCAwIDU0LjQtNjYgNTIuOGMtMy44IDMtNiA3LjYtNiAxMi41bDAgMjQuM2MwIDguOCA3LjIgMTYgMTYgMTZsODggMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCA4OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0LjNjMC00LjktMi4yLTkuNS02LTEyLjVsLTY2LTUyLjggMC01NC40IDE1MiAwIDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTQ0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDgtMTUyLTExNCAwLTEwMC40YzAtMTEuNi0yLjMtMjMuMS02LjgtMzMuOGwtMjcuMS02NUMyNzQuNC0yNi4yIDI2NS43LTMyIDI1Ni0zMnMtMTguNCA1LjgtMjIuMiAxNC44bC0yNy4xIDY1elwiXVxufTtcbnZhciBmYVBsdWdDaXJjbGVYbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbHVnLWNpcmNsZS14bWFyaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2MFwiLCBcIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43elwiXVxufTtcbnZhciBmYVNoZWV0UGxhc3RpYyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaGVldC1wbGFzdGljJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlNTcxXCIsIFwiTTAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE0OS41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMMzY1LjMgMzg2LjdjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0wzODQgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDh6bTIwOCA1LjVsMC05My41YzAtMTMuMyAxMC43LTI0IDI0LTI0bDkzLjUgMC0xMTcuNSAxMTcuNXpNMTUzIDEwNWwtNDggNDhjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDgtNDhjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45em05NiAzMkwxMzcgMjQ5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDIxNSAxMDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwiXVxufTtcbnZhciBmYVYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndicsXG4gIGljb246IFszODQsIDUxMiwgWzExOF0sIFwiNTZcIiwgXCJNMTkuNyAzNC41YzE2LjMtNi44IDM1IC45IDQxLjggMTcuMkwxOTIgMzY0LjggMzIyLjUgNTEuN2M2LjgtMTYuMyAyNS41LTI0IDQxLjgtMTcuMnMyNCAyNS41IDE3LjIgNDEuOGwtMTYwIDM4NGMtNSAxMS45LTE2LjYgMTkuNy0yOS41IDE5LjdzLTI0LjYtNy44LTI5LjUtMTkuN0wyLjUgNzYuM2MtNi44LTE2LjMgLjktMzUgMTcuMi00MS44elwiXVxufTtcbnZhciBmYUxpc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlzdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibGlzdC1zcXVhcmVzXCJdLCBcImYwM2FcIiwgXCJNNDAgNDhDMjYuNyA0OCAxNiA1OC43IDE2IDcybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0TDQwIDQ4ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNMTYgMjMybDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNNDAgMzY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHpcIl1cbn07XG52YXIgZmFMaXN0U3F1YXJlcyA9IGZhTGlzdDtcbnZhciBmYVNvbGFyUGFuZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc29sYXItcGFuZWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1YmFcIiwgXCJNMTIxLjggMzJjLTMwIDAtNTYgMjAuOC02Mi41IDUwLjFMOS42IDMwNi4xQy43IDM0Ni4xIDMxLjEgMzg0IDcyIDM4NGwxODQuMSAwIDAgNjQtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0IDE4NC4xIDBjNDAuOSAwIDcxLjQtMzcuOSA2Mi41LTc3LjlsLTQ5LjgtMjI0QzUxMC40IDUyLjggNDg0LjUgMzIgNDU0LjUgMzJMMTIxLjggMzJ6TTI0NS42IDk2bDg1LjIgMCA3LjMgODgtOTkuOCAwIDcuMy04OHptLTU1LjUgODhsLTg3LjggMCAxOS42LTg4IDc1LjYgMC03LjMgODh6TTkxLjYgMjMybDk0LjUgMC03LjMgODgtMTA2LjcgMCAxOS42LTg4em0xNDIuNiAwbDEwNy44IDAgNy4zIDg4LTEyMi41IDAgNy4zLTg4em0xNTYgMGw5NC41IDAgMTkuNiA4OC0xMDYuNyAwLTcuMy04OHpNNDc0IDE4NGwtODcuOCAwLTcuMy04OCA3NS42IDAgMTkuNiA4OHpcIl1cbn07XG52YXIgZmFMYW5kTWluZU9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xhbmQtbWluZS1vbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUxYlwiLCBcIk0zMTIgMGwwIDEyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNEwyNjQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek0xNjAgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGw4MCAwIDAtMzJ6TTEyIDExNC43YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43bDk2IDY0YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zcy0yMi4zIDE0LTMzLjMgNi43bC05Ni02NGMtMTEtNy40LTE0LTIyLjMtNi43LTMzLjN6TTUzMC43IDEwOGMxMS03LjQgMjUuOS00LjQgMzMuMyA2LjdzNC40IDI1LjktNi43IDMzLjNsLTk2IDY0Yy0xMSA3LjQtMjUuOSA0LjQtMzMuMy02LjdzLTQuNC0yNS45IDYuNy0zMy4zbDk2LTY0elwiXVxufTtcbnZhciBmYUhlYWRwaG9uZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhZHBob25lcycsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzkxMSwgNjI4NjMsIFwiaGVhZHBob25lcy1hbHRcIiwgXCJoZWFkcGhvbmVzLXNpbXBsZVwiXSwgXCJmMDI1XCIsIFwiTTY0IDIyNGMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MHMxNjAgNzEuNiAxNjAgMTYwbDAgMzcuNWMtMTAtMy41LTIwLjgtNS41LTMyLTUuNWwtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMjhjMCAyNi41IDIxLjUgNDggNDggNDhsMTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTYwQzQ0OCAxMDAuMyAzNDcuNyAwIDIyNCAwUzAgMTAwLjMgMCAyMjRMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTI4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwYy0xMS4yIDAtMjIgMS45LTMyIDUuNUw2NCAyMjR6XCJdXG59O1xudmFyIGZhSGVhZHBob25lc0FsdCA9IGZhSGVhZHBob25lcztcbnZhciBmYUhlYWRwaG9uZXNTaW1wbGUgPSBmYUhlYWRwaG9uZXM7XG52YXIgZmFCdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4NjUzXSwgXCJmMjA3XCIsIFwiTTk2IDBDNDMgMCAwIDQzIDAgOTZMMCAzODRjMCAyOS44IDIwLjQgNTQuOSA0OCA2MmwwIDM0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAxOTIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zNGMyNy42LTcuMSA0OC0zMi4yIDQ4LTYybDAtMjg4YzAtNTMtNDMtOTYtOTYtOTZMOTYgMHpNNjQgMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEwNCAwIDAgMTEyLTEwNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ4em0xODQgODBsMC0xMTIgMTA0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTA0IDB6TTk2IDMyMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTI1NiAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTUyIDcyYzAtMTMuMyAxMC43LTI0IDI0LTI0bDk2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTk2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0elwiXVxufTtcbnZhciBmYUZpbGVQb3dlcnBvaW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtcG93ZXJwb2ludCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjNFwiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTUyIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI0IDI0IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJzLTMyLjItNzItNzItNzJsLTQ4IDB6bTQ4IDk2bC0yNCAwIDAtNDggMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHpcIl1cbn07XG52YXIgZmFRdW90ZUxlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncXVvdGUtbGVmdCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzgyMjAsIFwicXVvdGUtbGVmdC1hbHRcIl0sIFwiZjEwZFwiLCBcIk0wIDIxNkMwIDE0OS43IDUzLjcgOTYgMTIwIDk2bDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIxNnptMjU2IDBjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBsOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2bDAgOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTM2elwiXVxufTtcbnZhciBmYVF1b3RlTGVmdEFsdCA9IGZhUXVvdGVMZWZ0O1xudmFyIGZhQ2hldnJvbkRvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi1kb3duJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDc4XCIsIFwiTTIwMS40IDQwNi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE5Mi0xOTJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjI0IDMzOC43IDU0LjYgMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE5MiAxOTJ6XCJdXG59O1xudmFyIGZhRWFydGhBc2lhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VhcnRoLWFzaWEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc3NTksIFwiZ2xvYmUtYXNpYVwiXSwgXCJmNTdlXCIsIFwiTTUwIDI4NC44YzQuMiAyLjEgOSAzLjIgMTQgMy4ybDUwLjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwxMy4zIDEzLjNjNiA2IDE0LjEgOS40IDIyLjYgOS40bDE4LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0LTEwLjcgMjQtMjRsMC00Mi43YzAtOC41IDMuNC0xNi42IDkuNC0yMi42bDEzLjMtMTMuM2M2LTYgOS40LTE0LjEgOS40LTIyLjZMMzA0IDU3YzAtMS4yLS4xLTIuMy0uMi0zLjUtMTUuNC0zLjYtMzEuNC01LjUtNDcuOC01LjUtMTE0LjkgMC0yMDggOTMuMS0yMDggMjA4IDAgOS44IC43IDE5LjQgMiAyOC44em00MDMuMyAzNy4zYy0zLjItMS40LTYuNy0yLjEtMTAuNS0yLjFMNDMyIDMyMGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZsLTM0LjcgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRsLTQ1LjMgNDUuM2MtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMTguN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOC43IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjQgMi4yIDIuMiA0LjcgNC4xIDcuMyA1LjUgMzkuMy0yNS40IDY5LjUtNjMuNiA4NC42LTEwOC44ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xMjggMzY4YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTI3MiAyNTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTQ4LTExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnpcIl1cbn07XG52YXIgZmFHbG9iZUFzaWEgPSBmYUVhcnRoQXNpYTtcbnZhciBmYUNlbnRTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NlbnQtc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTNmNVwiLCBcIk0yMDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1LjRjNDMuNiA1LjIgODMgMjQuNSAxMTMuMyA1My4xIDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM2MtMjQuNC0yMy01Ny4yLTM3LjEtOTMuMy0zNy4xLTc1LjEgMC0xMzYgNjAuOS0xMzYgMTM2czYwLjkgMTM2IDEzNiAxMzZjMzYuMiAwIDY5LTE0LjEgOTMuMy0zNy4xIDEyLjktMTIuMSAzMy4xLTExLjUgNDUuMiAxLjNzMTEuNSAzMy4xLTEuMyA0NS4yQzMyMyA0MzAuMSAyODMuNiA0NDkuNCAyNDAgNDU0LjZsMCAyNS40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjhDODQuNyA0MzMuNSAxNiAzNTIuOCAxNiAyNTZTODQuNyA3OC41IDE3NiA2MGwwLTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbnZhciBmYVNoaWVsZENhdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaGllbGQtY2F0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTcyXCIsIFwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0xNjAgMTU0LjRjMC01LjggNC43LTEwLjQgMTAuNC0xMC40bC4yIDBjMy40IDAgNi41IDEuNiA4LjUgNC4zbDQwIDUzLjNjMyA0IDcuOCA2LjQgMTIuOCA2LjRsNDggMGM1IDAgOS44LTIuNCAxMi44LTYuNGw0MC01My4zYzItMi43IDUuMi00LjMgOC41LTQuM2wuMiAwYzUuOCAwIDEwLjQgNC43IDEwLjQgMTAuNEwzNTIgMjcyYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2bDAtMTE3LjZ6TTIxNiAyODhhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem05Ni0xNmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwelwiXVxufTtcbnZhciBmYVNjaG9vbENpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NjaG9vbC1jaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NmJcIiwgXCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXpcIl1cbn07XG52YXIgZmFNYXJ0aW5pR2xhc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFydGluaS1nbGFzcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzg2NCwgXCJnbGFzcy1tYXJ0aW5pLWFsdFwiXSwgXCJmNTdiXCIsIFwiTTIuNCA1MS44QzcuNCAzOS44IDE5LjEgMzIgMzIgMzJsNDQ4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwyODggMzAxLjMgMjg4IDQ0OCAzNTIgNDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTQ2LjctMjE0LjYtMjE0LjZDLjIgNzcuNS0yLjUgNjMuNyAyLjQgNTEuOHpNMzU0LjcgMTQ0bDQ4LTQ4LTI5My41IDAgNDggNDggMTk3LjUgMHpcIl1cbn07XG52YXIgZmFHbGFzc01hcnRpbmlBbHQgPSBmYU1hcnRpbmlHbGFzcztcbnZhciBmYVBsdWcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGx1ZycsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyODI2OF0sIFwiZjFlNlwiLCBcIk0xMjgtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNjRjMCA5NS4xLTY5LjIgMTc0LjEtMTYwIDE4OS4zbDAgNjYuN2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTAxLjIgMzk4LjEgMzIgMzE5LjEgMzIgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgOTYgMzIgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbnZhciBmYVBhbm9yYW1hID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Bhbm9yYW1hJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlMjA5XCIsIFwiTTQzLjkgNDhDMTkuNyA0OCAwIDY3LjcgMCA5MS45TDAgNDIwLjFjMCAyNC4zIDE5LjcgNDMuOSA0My45IDQzLjkgNS41IDAgMTAuNy0xIDE1LjctMi45IDEyLjktNC45IDEwMy40LTM3LjEgMjI4LjQtMzcuMXMyMTUuNSAzMi4zIDIyOC40IDM3LjFjNSAxLjkgMTAuMiAyLjkgMTUuNyAyLjkgMjQuMyAwIDQzLjktMTkuNyA0My45LTQzLjlsMC0zMjguMmMwLTI0LjMtMTkuNy00My45LTQzLjktNDMuOS01LjUgMC0xMC43IDEtMTUuNyAyLjktMTIuOSA0LjktMTAzLjQgMzcuMS0yMjguNCAzNy4xUzcyLjUgNTUuNyA1OS42IDUwLjlDNTQuNiA0OSA0OS40IDQ4IDQzLjkgNDh6TTcyIDE3NmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwem0yNjQuMS0xNmM3LjUgMCAxNC42IDMuNiAxOS4xIDkuNkw0NzkuNyAzMzYuMmM1LjkgNy45IDYuNCAxOC41IDEuMyAyNi45cy0xNC44IDEyLjgtMjQuNSAxMS4xYy00NS44LTcuOC0xMDMuMy0xNC4yLTE2OC40LTE0LjItNjUuNiAwLTEyMy40IDYuNS0xNjkuMyAxNC40LTkuOCAxLjctMTkuNy0yLjktMjQuNy0xMS41cy00LjMtMTkuNCAxLjktMjcuMkwxNjUuMyAyNDljNC42LTUuNyAxMS41LTkgMTguNy05czE0LjIgMy4zIDE4LjcgOWwyNy41IDM0LjQgODYuNy0xMTMuOWM0LjYtNiAxMS43LTkuNSAxOS4yLTkuNXpcIl1cbn07XG52YXIgZmFDbG9ja1JvdGF0ZUxlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvY2stcm90YXRlLWxlZnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImhpc3RvcnlcIl0sIFwiZjFkYVwiLCBcIk0yODggNjRjMTA2IDAgMTkyIDg2IDE5MiAxOTJTMzk0IDQ0OCAyODggNDQ4Yy02NS4yIDAtMTIyLjktMzIuNS0xNTcuNi04Mi4zLTEwLjEtMTQuNS0zMC4xLTE4LTQ0LjYtNy45cy0xOCAzMC4xLTcuOSA0NC42QzEyNC4xIDQ2OC42IDIwMSA1MTIgMjg4IDUxMiA0MjkuNCA1MTIgNTQ0IDM5Ny40IDU0NCAyNTZTNDI5LjQgMCAyODggMEMyMDIuMyAwIDEyNi41IDQyLjEgODAgMTA2LjdMODAgODBjMC0xNy43LTE0LjMtMzItMzItMzJTMTYgNjIuMyAxNiA4MGwwIDExMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNC42IDBjLjUgMCAxIDAgMS41IDBsODYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzguMyAwQzE1NC45IDEwMi42IDIxNyA2NCAyODggNjR6bTI0IDg4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTA0YzAgNi40IDIuNSAxMi41IDcgMTdsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02NS02NSAwLTk0LjF6XCJdXG59O1xudmFyIGZhSGlzdG9yeSA9IGZhQ2xvY2tSb3RhdGVMZWZ0O1xudmFyIGZhSmFyV2hlYXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnamFyLXdoZWF0JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNTE3XCIsIFwiTTMyLThjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNTYgMTZDNDIuNyAxNiAzMiA1LjMgMzItOHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMTEyIDMybC00Mi4yIDBjLTMuMiAwLTUuOCAyLjYtNS44IDUuOCAwIDMyLjEgMjYgNTguMiA1OC4yIDU4LjJsNzUuNiAwYzMyLjEgMCA1OC4yLTI2IDU4LjItNTguMiAwLTMuMi0yLjYtNS44LTUuOC01LjhMMjA4IDE2MGMtMTkuMSAwLTM2LjMgOC40LTQ4IDIxLjctMTEuNy0xMy4zLTI4LjktMjEuNy00OC0yMS43em00OCAxMTcuN2MtMTEuNy0xMy4zLTI4LjktMjEuNy00OC0yMS43bC00Mi4yIDBjLTMuMiAwLTUuOCAyLjYtNS44IDUuOCAwIDMyLjEgMjYgNTguMiA1OC4yIDU4LjJsNzUuNiAwYzMyLjEgMCA1OC4yLTI2IDU4LjItNTguMiAwLTMuMi0yLjYtNS44LTUuOC01LjhMMjA4IDI1NmMtMTkuMSAwLTM2LjMgOC40LTQ4IDIxLjd6TTExMiAzNTJsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmwyMS44IDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMzIgMjEuOCAwYzMyLjEgMCA1OC4yLTI2IDU4LjItNTguMiAwLTMuMi0yLjYtNS44LTUuOC01LjhMMjA4IDM1MmMtMTkuMSAwLTM2LjMgOC40LTQ4IDIxLjctMTEuNy0xMy4zLTI4LjktMjEuNy00OC0yMS43elwiXVxufTtcbnZhciBmYUNsb3VkQXJyb3dEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkLWFycm93LWRvd24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFs2MjMzNywgXCJjbG91ZC1kb3dubG9hZFwiLCBcImNsb3VkLWRvd25sb2FkLWFsdFwiXSwgXCJmMGVkXCIsIFwiTTE0NCA0ODBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNjMuNCA0MS0xMTcuMiA5Ny45LTEzNi41LTEuMy03LjctMS45LTE1LjUtMS45LTIzLjUgMC03OS41IDY0LjUtMTQ0IDE0NC0xNDQgNTUuNCAwIDEwMy41IDMxLjMgMTI3LjYgNzcuMSAxNC4yLTguMyAzMC44LTEzLjEgNDguNC0xMy4xIDUzIDAgOTYgNDMgOTYgOTYgMCAxNS43LTMuOCAzMC42LTEwLjUgNDMuNyA0NCAyMC4zIDc0LjUgNjQuNyA3NC41IDExNi4zIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMHpNMzc3IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6XCJdXG59O1xudmFyIGZhQ2xvdWREb3dubG9hZCA9IGZhQ2xvdWRBcnJvd0Rvd247XG52YXIgZmFDbG91ZERvd25sb2FkQWx0ID0gZmFDbG91ZEFycm93RG93bjtcbnZhciBmYVRydWNrUmFtcEJveCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1yYW1wLWJveCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1widHJ1Y2stbG9hZGluZ1wiXSwgXCJmNGRlXCIsIFwiTTQwMCAzMmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNDguMi0yOTcuMiA4OS4yQzUuOSA0NTQuNC0zLjcgNDcyLjMgMS40IDQ4OS4yczIyLjkgMjYuNSAzOS44IDIxLjVsMzE1LjUtOTQuNiA0My43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4bDAtMzkyLTE3NiAwek01MjggNDI0YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDBjMjIuMSAwIDM5LjkgMTcuOSA0MCAzOS45bDAgLjF6TTUxLjkgMTQ5LjVDMTguMSAxNTkuOC0uOSAxOTUuNiA5LjQgMjI5LjRsMjguMSA5MS44QzQ3LjggMzU1IDgzLjYgMzc0IDExNy40IDM2My43bDkxLjgtMjguMWMzMy44LTEwLjMgNTIuOC00Ni4xIDQyLjUtNzkuOWwtMjguMS05MS44Yy0xMC4zLTMzLjgtNDYuMS01Mi44LTc5LjktNDIuNUw1MS45IDE0OS41elwiXVxufTtcbnZhciBmYVRydWNrTG9hZGluZyA9IGZhVHJ1Y2tSYW1wQm94O1xudmFyIGZhQW5nbGVEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlLWRvd24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs4OTY0XSwgXCJmMTA3XCIsIFwiTTE2OS40IDM3NC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDMwNi43IDU0LjYgMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjB6XCJdXG59O1xudmFyIGZhUGx1Z0NpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTVjXCIsIFwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3pcIl1cbn07XG52YXIgZmFXaW5kb3dNYXhpbWl6ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aW5kb3ctbWF4aW1pemUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg0NzBdLCBcImYyZDBcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTI0IDY0bDMzNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIl1cbn07XG52YXIgZmFIYW5kc0hvbGRpbmdDaXJjbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHMtaG9sZGluZy1jaXJjbGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU0ZmJcIiwgXCJNMzIwIDBhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2ek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDE2MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMSAxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjgtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjJsMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4ybDAgNzguOWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjYuNyAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyOC4xIDM5My40QzEwLjEgMzc1LjQgMCAzNTEgMCAzMjUuNUwwIDEwNEMwIDgxLjkgMTcuOSA2NCA0MCA2NHptNTYwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyMjEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDBjNy4zLTcuMyAyMy4xLTIzLjEgNDcuMi00Ny4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4yLTExIDExLTkuMiAyOS4yIDMuNyAzNy44IDkuNyA2LjUgMjIuNyA1LjIgMzEtMy4xbDUxLjEtNTEuMWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDU2MCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6XCJdXG59O1xudmFyIGZhTG9jYXRpb25QaW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbG9jYXRpb24tcGluJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJtYXAtbWFya2VyXCJdLCBcImYwNDFcIiwgXCJNMTkyIDBDODYgMCAwIDg0LjQgMCAxODguNiAwIDMwNy45IDEyMC4yIDQ1MC45IDE3MC40IDUwNS40IDE4Mi4yIDUxOC4yIDIwMS44IDUxOC4yIDIxMy42IDUwNS40IDI2My44IDQ1MC45IDM4NCAzMDcuOSAzODQgMTg4LjYgMzg0IDg0LjQgMjk4IDAgMTkyIDB6XCJdXG59O1xudmFyIGZhTWFwTWFya2VyID0gZmFMb2NhdGlvblBpbjtcbnZhciBmYUJvd2xpbmdCYWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvd2xpbmctYmFsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQzNlwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjQwIDgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMjA4IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tNjQtNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYUNhcnRGbGF0YmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcnQtZmxhdGJlZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiZG9sbHktZmxhdGJlZFwiXSwgXCJmNDc0XCIsIFwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyODhjMCAzOS44IDI5LjEgNzIuOCA2Ny4xIDc5LTIgNS4zLTMuMSAxMS0zLjEgMTcgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNmwxOTcuNSAwYy0xLjggNS0yLjcgMTAuNC0yLjcgMTYgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNmwzNC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQwMCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yODhDMTI4IDM1LjggOTIuMiAwIDQ4IDBMMzIgMHpNMjI0IDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE3NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNDAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE3NmMwLTI2LjUtMjEuNS00OC00OC00OEwyMjQgNjR6XCJdXG59O1xudmFyIGZhRG9sbHlGbGF0YmVkID0gZmFDYXJ0RmxhdGJlZDtcbnZhciBmYUhvdXNlVXNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS11c2VyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJob21lLXVzZXJcIl0sIFwiZTFiMFwiLCBcIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4ek0yMDAgMjU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTQ0IDQzMmMwLTQ0LjIgMzUuOC04MCA4MC04MGw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpcIl1cbn07XG52YXIgZmFIb21lVXNlciA9IGZhSG91c2VVc2VyO1xudmFyIGZhR2hvc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2hvc3QnLFxuICBpY29uOiBbMzg0LCA1MTIsIFsxMjgxMjNdLCBcImY2ZTJcIiwgXCJNNDAuMSA0NjcuMWwtMTEuMiA5QzI1LjcgNDc4LjYgMjEuOCA0ODAgMTcuOCA0ODAgOCA0ODAgMCA0NzIgMCA0NjIuMkwwIDE5MkMwIDg2IDg2IDAgMTkyIDBTMzg0IDg2IDM4NCAxOTJsMCAyNzAuMmMwIDkuOC04IDE3LjgtMTcuOCAxNy44LTQgMC03LjktMS40LTExLjEtMy45bC0xMS4yLTljLTEzLjQtMTAuNy0zMi44LTktNDQuMSAzLjlMMjY5LjMgNTA2Yy0zLjMgMy44LTguMiA2LTEzLjMgNnMtOS45LTIuMi0xMy4zLTZsLTI2LjYtMzAuNWMtMTIuNy0xNC42LTM1LjQtMTQuNi00OC4yIDBMMTQxLjMgNTA2Yy0zLjMgMy44LTguMiA2LTEzLjMgNnMtOS45LTIuMi0xMy4zLTZMODQuMiA0NzFjLTExLjMtMTIuOS0zMC43LTE0LjYtNDQuMS0zLjl6TTE2MCAxOTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbnZhciBmYUNvbW1lbnROb2RlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50LW5vZGVzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNjk2XCIsIFwiTTQ4MCAyMDhDNTAzLjcgMjA4IDUyNS42IDIxNS4zIDU0My43IDIyNy45IDUzNi45IDEwMC45IDQyNSAwIDI4OCAwIDE0Ni42IDAgMzIgMTA3LjUgMzIgMjQwIDMyIDI5NC4zIDUxLjIgMzQ0LjMgODMuNiAzODQuNUwzNC44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN2MyNy4yIDExLjQgNTYuOSAxOC40IDg4LjEgMjAuMiAuMS0xOC45IDQuOS0zOCAxNS01NS41IDE3LjEtMjkuNyA0NS44LTQ4LjUgNzctNTQuMmw5LjItMTZjLTMuNC0xMC43LTUuMi0yMi01LjItMzMuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnpNMzI4LjYgNDQ4Yy0xNy43IDMwLjYtNy4yIDY5LjcgMjMuNCA4Ny40czY5LjcgNy4yIDg3LjQtMjMuNGMxLjUtMi42IDIuOC01LjMgMy45LThsNzMuMyAwYzEuMSAyLjcgMi40IDUuNCAzLjkgOCAxNy43IDMwLjYgNTYuOCA0MS4xIDg3LjQgMjMuNHM0MS4xLTU2LjggMjMuNC04Ny40Yy0xMy40LTIzLjItMzkuMS0zNC44LTY0LTMxLjRsLTE3LjYtMzAuN2MtMTEgMTEuNy0yNSAyMC42LTQwLjYgMjUuNmwxNi41IDI4LjljLTMuOCA0LjgtNi44IDEwLTkgMTUuNmwtNzMuNCAwYy0yLjItNS42LTUuMy0xMC44LTktMTUuNmwzMy01Ny43YzQuMSAuOCA4LjQgMS4zIDEyLjggMS4zIDM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjRjMCAxMy40IDQuMSAyNS44IDExLjIgMzYuMWwtMzQuNiA2MC41Yy0yNS0zLjQtNTAuNiA4LjMtNjQgMzEuNHpcIl1cbn07XG52YXIgZmFQZXJzb25BcnJvd0Rvd25Ub0xpbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWFycm93LWRvd24tdG8tbGluZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUzOFwiLCBcIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTMxOC4zIDI5OS4xbC00Ni4zLTYyLjQgMCAyNDMuMyAyNzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODAgMCAwLTI0My4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVDMTEwIDEzMiAxNDkuNyAxMTIgMTkyIDExMnM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnpNMTc2IDQ4MGwzMiAwIDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTI4ek01NjYuNiAxNjYuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw0MzIgMTQ2LjcgNDMyIDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE0Ni43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zelwiXVxufTtcbnZhciBmYVBsdWdDaXJjbGVQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLXBsdXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NWZcIiwgXCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMTYgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA0OC00OCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDQ4IDAgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4elwiXVxufTtcbnZhciBmYVBlcnNvblN3aW1taW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1zd2ltbWluZycsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyNzk0NiwgXCJzd2ltbWVyXCJdLCBcImY1YzRcIiwgXCJNNTUyIDE1MmE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6TTI5My40IDE5OC4ybC04OC42IDczLjljMS4xIDAgMi4yLS4xIDMuMy0uMSAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgMjIuMSAxNi42IDI5LjEgMTYuNiA1MS4yIDAgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgNC44IDAgOS43IC4yIDE0LjUgLjYtOC4zLTMwLTI0LjMtNTcuNy00Ni44LTgwLjItMTguNC0xOC40LTQwLjYtMzIuNy02NS00MS44bC02OC42LTI1LjdjLTI3LjQtMTAuMy01OC03LjUtODMuMSA3LjZsLTUzLjUgMzIuMWMtMTUuMiA5LjEtMjAuMSAyOC43LTExIDQzLjlzMjguNyAyMC4xIDQzLjkgMTFMMjMwIDE4Ny4zYzguNC01IDE4LjYtNS45IDI3LjctMi41bDM1LjcgMTMuNHptMTEwIDE4MS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgMzg2LjMgMTcuNiAzOTQuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6XCJdXG59O1xudmFyIGZhU3dpbW1lciA9IGZhUGVyc29uU3dpbW1pbmc7XG52YXIgZmFDb21tZW50RG90cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50LWRvdHMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgxNzIsIDYyMDc1LCBcImNvbW1lbnRpbmdcIl0sIFwiZjRhZFwiLCBcIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMTI4IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG52YXIgZmFDb21tZW50aW5nID0gZmFDb21tZW50RG90cztcbnZhciBmYUNoYXJ0UGllID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYXJ0LXBpZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wicGllLWNoYXJ0XCJdLCBcImYyMDBcIiwgXCJNNTEyLjQgMjQwbC0xNzYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzZjMC0xNy43IDE0LjQtMzIuMiAzMS45LTI5LjkgMTA3IDE0LjIgMTkxLjggOTkgMjA2IDIwNiAyLjMgMTcuNS0xMi4yIDMxLjktMjkuOSAzMS45ek0yMjIuNiAzNy4yYzE4LjEtMy44IDMzLjggMTEgMzMuOCAyOS41bDAgMTk3LjNjMCA1LjYgMiAxMSA1LjUgMTUuM0wzOTQgNDM4LjdjMTEuNyAxNC4xIDkuMiAzNS40LTYuOSA0NC4xLTM0LjEgMTguNi03My4yIDI5LjItMTE0LjcgMjkuMi0xMzIuNSAwLTI0MC0xMDcuNS0yNDAtMjQwIDAtMTE1LjUgODEuNS0yMTEuOSAxOTAuMi0yMzQuOHpNNDc3LjggMjg4bDY0IDBjMTguNSAwIDMzLjMgMTUuNyAyOS41IDMzLjgtMTAuMiA0OC40LTM1IDkxLjQtNjkuNiAxMjQuMi0xMi4zIDExLjctMzEuNiA5LjItNDIuNC0zLjlMMzc0LjkgMzQwLjRjLTE3LjMtMjAuOS0yLjQtNTIuNCAyNC42LTUyLjRsNzguMiAwelwiXVxufTtcbnZhciBmYVBpZUNoYXJ0ID0gZmFDaGFydFBpZTtcbnZhciBmYUZyb2cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZnJvZycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjUyZVwiLCBcIk0zNjggMzJjNDEuNyAwIDc1LjkgMzEuOCA3OS43IDcyLjVsODUuNiAyNi4zYzI1LjQgNy44IDQyLjggMzEuMyA0Mi44IDU3LjkgMCAyMS44LTExLjcgNDEuOS0zMC43IDUyLjdsLTE0NC41IDgyLjEgOTIuNSA5Mi41IDUwLjcgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRMMzQ2LjkgMzYwLjJjMTEuNy0zNiAzLjItNzcuMS0yNS40LTEwNS43LTQwLjYtNDAuNi0xMDYuMy00MC42LTE0Ni45LS4xTDEwMSAzMjQuNGMtNi40IDYuMS02LjcgMTYuMi0uNiAyMi42czE2LjIgNi42IDIyLjYgLjZsNzMuOC03MC4yIC4xLS4xIC4xLS4xYzMuNS0zLjUgNy4zLTYuNiAxMS4zLTkuMiAyNy45LTE4LjUgNjUuOS0xNS40IDkwLjUgOS4yIDI0LjcgMjQuNyAyNy43IDYyLjkgOSA5MC45LTIuNiAzLjgtNS42IDcuNS05IDEwLjlMMjYxLjggNDE2IDM1MiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwQzI4LjcgNDgwIDAgNDUxLjMgMCA0MTYgMCAyNDkuNiAxMjcgMTEyLjkgMjg5LjMgOTcuNSAyOTYuMiA2MC4yIDMyOC44IDMyIDM2OCAzMnptMCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwiXVxufTtcbnZhciBmYVdpbmVCb3R0bGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2luZS1ib3R0bGUnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImY3MmZcIiwgXCJNODAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDExLjgtNi40IDIyLjItMTYgMjcuN2wwIDE0NS42YzU2LjUgMjQuNyA5NiA4MS4xIDk2IDE0Ni43bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDU3NmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyODhjMC02NS42IDM5LjUtMTIyIDk2LTE0Ni43TDk2LTQuM0M4Ni40LTkuOCA4MC0yMC4yIDgwLTMyek05NiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDI4OHpcIl1cbn07XG52YXIgZmFJbmJveCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpbmJveCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAxY1wiLCBcIk05MS44IDMyQzU5LjkgMzIgMzIuOSA1NS40IDI4LjQgODYuOUwuNiAyODEuMmMtLjQgMy0uNiA2LS42IDkuMUwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTEyNS43YzAtMy0uMi02LjEtLjYtOS4xTDQ4My42IDg2LjlDNDc5LjEgNTUuNCA0NTIuMSAzMiA0MjAuMiAzMkw5MS44IDMyem0wIDY0bDMyOC41IDAgMjcuNCAxOTItNTkuOSAwYy0xMi4xIDAtMjMuMiA2LjgtMjguNiAxNy43bC0xNC4zIDI4LjZjLTUuNCAxMC44LTE2LjUgMTcuNy0yOC42IDE3LjdsLTEyMC40IDBjLTEyLjEgMC0yMy4yLTYuOC0yOC42LTE3LjdsLTE0LjMtMjguNmMtNS40LTEwLjgtMTYuNS0xNy43LTI4LjYtMTcuN0w2NC4zIDI4OCA5MS44IDk2elwiXVxufTtcbnZhciBmYVNxdWFyZUggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLWgnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImgtc3F1YXJlXCJdLCBcImYwZmRcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzIwIDE2OGwwIDE3NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0LTk2IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgOTYgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6XCJdXG59O1xudmFyIGZhSFNxdWFyZSA9IGZhU3F1YXJlSDtcbnZhciBmYUhvdXNlTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1tZWRpY2FsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlM2IyXCIsIFwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTIyNCAyNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6XCJdXG59O1xudmFyIGZhQ2lyY2xlQ2hldnJvblJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1jaGV2cm9uLXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJjaGV2cm9uLWNpcmNsZS1yaWdodFwiXSwgXCJmMTM4XCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTI0MSAzNzdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsODctODctODctODdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMEwzNDUgMjM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDI0MSAzNzd6XCJdXG59O1xudmFyIGZhQ2hldnJvbkNpcmNsZVJpZ2h0ID0gZmFDaXJjbGVDaGV2cm9uUmlnaHQ7XG52YXIgZmFGaWxlQ3N2ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY3N2JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNmRkXCIsIFwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNjQgMzgwYy0yNC4zIDAtNDQgMTkuNy00NCA0NGwwIDgwYzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDE2IDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC04YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDhjMCAyLjItMS44IDQtNCA0bC0xNiAwYy0yLjIgMC00LTEuOC00LTRsMC04MGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTI0LjMtMTkuNy00NC00NC00NGwtMTYgMHptMTM2IDBjLTI4LjcgMC01MiAyMy4zLTUyIDUyczIzLjMgNTIgNTIgNTJjNi42IDAgMTIgNS40IDEyIDEycy01LjQgMTItMTIgMTJsLTMyIDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDMyIDBjMjguNyAwIDUyLTIzLjMgNTItNTJzLTIzLjMtNTItNTItNTJjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMjQgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTI0IDB6bTk2IDBjLTExIDAtMjAgOS0yMCAyMGwwIDMxLjZjMCAzNS41IDEwLjUgNzAuMyAzMC4yIDk5LjhsNS4xIDcuN2MzLjcgNS42IDEwIDguOSAxNi42IDguOXMxMi45LTMuMyAxNi42LTguOWw1LjEtNy43YzE5LjctMjkuNiAzMC4yLTY0LjMgMzAuMi05OS44bDAtMzEuNmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCAzMS42YzAgMTkuNi00LjEgMzguOS0xMiA1Ni43LTcuOS0xNy44LTEyLTM3LjEtMTItNTYuN2wwLTMxLjZjMC0xMS05LTIwLTIwLTIwelwiXVxufTtcbnZhciBmYUhhdENvd2JveSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYXQtY293Ym95JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmOGMwXCIsIFwiTTE4Mi4yIDc2LjFMMTMwLjggMzA3LjVDMTQ1LjUgMzI0LjkgMTY3LjQgMzM2IDE5MiAzMzZsMjU2IDBjMjQuNiAwIDQ2LjUtMTEuMSA2MS4yLTI4LjVMNDU3LjggNzYuMWMtNS43LTI1LjgtMjguNi00NC4xLTU1LTQ0LjEtMTIuMiAwLTI0LjEgNC0zMy44IDExLjNsLTQuNyAzLjVjLTI2LjMgMTkuNy02Mi40IDE5LjctODguNiAwTDI3MSA0My4zYy05LjgtNy4zLTIxLjYtMTEuMy0zMy44LTExLjMtMjYuNCAwLTQ5LjMgMTguMy01NSA0NC4xek02NCAyNTZjMC0xNy43LTE0LjMtMzItMzItMzJTMCAyMzguMyAwIDI1NkMwIDM2MiA4NiA0NDggMTkyIDQ0OGwyNTYgMGMxMDYgMCAxOTItODYgMTkyLTE5MiAwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMjU2IDBjLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4elwiXVxufTtcbnZhciBmYUZhY2VHcmluVG9uZ3VlV2luayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4tdG9uZ3VlLXdpbmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NDAsIFwiZ3Jpbi10b25ndWUtd2lua1wiXSwgXCJmNThiXCIsIFwiTTE1Mi4yIDQ5MC4xQzYyLjUgNDUwLjIgMCAzNjAuNCAwIDI1NiAwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZjMCAxMDQuNC02Mi41IDE5NC4yLTE1Mi4yIDIzNC4xIDUuMy0xMyA4LjItMjcuMiA4LjItNDIuMWwwLTYxLjdjMTYuOS0xNi41IDMwLjEtMzYuNyAzOC4zLTU5LjMgNC4zLTExLjgtNy43LTIxLjgtMTkuNi0xOC4xLTM5LjIgMTIuMi04My43IDE5LjEtMTMwLjcgMTkuMXMtOTEuNS02LjktMTMwLjctMTkuMWMtMTEuOS0zLjctMjMuOSA2LjMtMTkuNiAxOC4xIDguMyAyMi42IDIxLjUgNDIuOCAzOC4zIDU5LjNsMCA2MS43YzAgMTQuOSAyLjkgMjkuMSA4LjIgNDIuMXpNMTUyIDIxMmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE4NCA2MGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpNMzIwIDQwMi42bDAgNDUuNGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGwwLTQ1LjRjMC0xNC43IDExLjktMjYuNiAyNi42LTI2LjZsMiAwYzExLjMgMCAyMS4xIDcuOSAyMy42IDE4LjkgMi44IDEyLjYgMjAuOCAxMi42IDIzLjYgMCAyLjUtMTEuMSAxMi4zLTE4LjkgMjMuNi0xOC45bDIgMGMxNC43IDAgMjYuNiAxMS45IDI2LjYgMjYuNnpNMzM2IDE4NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJdXG59O1xudmFyIGZhR3JpblRvbmd1ZVdpbmsgPSBmYUZhY2VHcmluVG9uZ3VlV2luaztcbnZhciBmYUwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbCcsXG4gIGljb246IFszMjAsIDUxMiwgWzEwOF0sIFwiNGNcIiwgXCJNNjQgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzNTIgMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIl1cbn07XG52YXIgZmFBcnJvd0Rvd25TaG9ydFdpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi1zaG9ydC13aWRlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzb3J0LWFtb3VudC1kZXNjXCIsIFwic29ydC1hbW91bnQtZG93bi1hbHRcIl0sIFwiZjg4NFwiLCBcIk0yNDYuNiAzNzQuNmwtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTMyMCAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDEyOGw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDEyOGwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG52YXIgZmFTb3J0QW1vdW50RGVzYyA9IGZhQXJyb3dEb3duU2hvcnRXaWRlO1xudmFyIGZhU29ydEFtb3VudERvd25BbHQgPSBmYUFycm93RG93blNob3J0V2lkZTtcbnZhciBmYUhvdXJnbGFzc0hhbGYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG91cmdsYXNzLWhhbGYnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcImhvdXJnbGFzcy0yXCJdLCBcImYyNTJcIiwgXCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwwIDExYzAgNDIuNCAxNi45IDgzLjEgNDYuOSAxMTMuMWw2Ny45IDY3LjktNjcuOSA2Ny45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3bDAgMTFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMWMwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFsLTY3LjktNjcuOSA2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFsMC0xMWMxNy43IDAgMzItMTQuMyAzMi0zMlMzNjkuNyAwIDM1MiAwTDMyIDB6TTk2IDc1bDAtMTEgMTkyIDAgMCAxMWMwIDE5LTUuNiAzNy40LTE2IDUzTDExMiAxMjhjLTEwLjMtMTUuNi0xNi0zNC0xNi01M3ptMTYgMzA5YzMuNS01LjMgNy42LTEwLjMgMTIuMS0xNC45bDY3LjktNjcuOSA2Ny45IDY3LjljNC42IDQuNiA4LjYgOS42IDEyLjIgMTQuOUwxMTIgMzg0elwiXVxufTtcbnZhciBmYUhvdXJnbGFzczIgPSBmYUhvdXJnbGFzc0hhbGY7XG52YXIgZmFTcG9vbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcG9vbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTM0OCwgNjE4NzMsIFwidXRlbnNpbC1zcG9vblwiXSwgXCJmMmU1XCIsIFwiTTI0NS44IDIyMC45Yy0xNC41LTE3LjYtMjEuOC0zOS4yLTIxLjgtNjAuOCAwLTgwLjIgOTYtMTYwLjIgMTkyLTE2MC4yIDUzIDAgOTYgNDMgOTYgOTYgMCA5Ni04MCAxOTItMTYwLjIgMTkyLTIxLjYgMC00My4yLTcuMy02MC44LTIxLjhMNTQuNiA1MDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjQ1LjggMjIwLjl6XCJdXG59O1xudmFyIGZhVXRlbnNpbFNwb29uID0gZmFTcG9vbjtcbnZhciBmYUNyZWRpdENhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3JlZGl0LWNhcmQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgxNzksIDYyMDgzLCBcImNyZWRpdC1jYXJkLWFsdFwiXSwgXCJmMDlkXCIsIFwiTTAgMTI4bDAgMzIgNTEyIDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOHptMCA4MEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3Ni01MTIgMHpNNjQgMzYwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xNDQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpcIl1cbn07XG52YXIgZmFDcmVkaXRDYXJkQWx0ID0gZmFDcmVkaXRDYXJkO1xudmFyIGZhRmlsZUludm9pY2VEb2xsYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1pbnZvaWNlLWRvbGxhcicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjU3MVwiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNNjQgODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCA2NEM3NC43IDY0IDY0IDc0LjcgNjQgODh6bTAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTExMiA3NmwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwxNTIgNDAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwelwiXVxufTtcbnZhciBmYVNwYWdoZXR0aU1vbnN0ZXJGbHlpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3BhZ2hldHRpLW1vbnN0ZXItZmx5aW5nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJwYXN0YWZhcmlhbmlzbVwiXSwgXCJmNjdiXCIsIFwiTTIwOCA2NGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAwYzAgMTYuMi02IDMxLjEtMTYgNDIuM2wxNS42IDMxLjJjMTguNy02IDM5LjktOS41IDY0LjQtOS41czQ1LjggMy41IDY0LjQgOS41TDQwMCAxMDYuM2MtMTAtMTEuMy0xNi0yNi4xLTE2LTQyLjMgMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0Yy0xLjcgMC0zLjQtLjEtNS4xLS4yTDQyNy44IDE1OGMyMS4xIDEzLjYgMzcuNyAzMC4yIDUxLjQgNDYuNCA3LjEgOC4zIDEzLjUgMTYuNiAxOS4zIDI0bDEuNCAxLjhjNi4zIDguMSAxMS42IDE0LjggMTYuNyAyMC40IDEwLjcgMTEuNyAxNi4xIDEzLjQgMTkuNCAxMy40IDIuNSAwIDQuMy0uNiA3LjEtMy4zIDMuNy0zLjUgNy4xLTguOCAxMi41LTE3LjRsLjYtLjljNC42LTcuNCAxMS0xNy42IDE5LjQtMjUuNyA5LjctOS4zIDIyLjktMTYuNyA0MC40LTE2LjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIuNSAwLTQuMyAuNi03LjEgMy4zLTMuNyAzLjUtNy4xIDguOC0xMi41IDE3LjRsLS42IC45Yy00LjYgNy40LTExIDE3LjYtMTkuNCAyNS43LTkuNyA5LjMtMjIuOSAxNi43LTQwLjQgMTYuNy0xOC41IDAtMzIuOS04LjUtNDQuMy0xOC42LTMuMSA0LTYuNiA4LjMtMTAuNSAxMi43IDEuNCA0LjMgMi44IDguNSA0IDEyLjUgLjkgMyAxLjggNS44IDIuNiA4LjYgMyA5LjggNS41IDE4LjIgOC42IDI1LjkgMy45IDkuOCA3LjQgMTUuNCAxMC44IDE4LjUgMi42IDIuNCA1LjkgNC4zIDEyLjggNC4zIDguNyAwIDE2LjktNC4yIDMzLjctMTMuMiAxNS04IDM1LjctMTguOCA2Mi4zLTE4LjggMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTEzLjQgMC0yNC43IDUuMi0zOS43IDEzLjItMSAuNi0yLjEgMS4xLTMuMiAxLjctMTMuMSA3LjEtMzEuNiAxNy4xLTUzLjEgMTcuMS0xOC40IDAtMzMuNi02LjEtNDUuNS0xNy4yLTExLjEtMTAuMy0xNy45LTIzLjctMjIuNy0zNi0zLjYtOS02LjctMTkuMS05LjUtMjguNS0xNi40IDEyLjMtMzYuMSAyMy42LTU4LjkgMzEuMyAzLjYgMTAuOCA4LjQgMjMuNSAxNC40IDM2LjIgNy41IDE1LjkgMTYuMiAzMC40IDI1LjggNDAuNSA5LjYgMTAuMiAxNy43IDEzLjcgMjQuNSAxMy43IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yNS4yIDAtNDUtMTMuNS01OS41LTI4LjgtMTQuNS0xNS40LTI1LjctMzQuOS0zNC4yLTUzLTgtMTctMTQuMS0zMy44LTE4LjMtNDYuOS01LjIgLjQtMTAuNiAuNi0xNiAuNnMtMTAuOC0uMi0xNi0uNmMtNC4yIDEzLTEwLjMgMjkuOS0xOC4zIDQ2LjktOC41IDE4LjEtMTkuOCAzNy42LTM0LjIgNTMtMTQuNCAxNS4zLTM0LjMgMjguOC01OS41IDI4LjgtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGM2LjggMCAxNS0zLjUgMjQuNS0xMy43IDkuNS0xMC4xIDE4LjMtMjQuNiAyNS44LTQwLjUgNS45LTEyLjYgMTAuNy0yNS40IDE0LjQtMzYuMi0yMi44LTcuNy00Mi41LTE5LTU4LjktMzEuMy0yLjkgOS40LTYgMTkuNS05LjUgMjguNS00LjggMTIuMi0xMS42IDI1LjYtMjIuNyAzNi0xMS45IDExLjEtMjcuMSAxNy4yLTQ1LjUgMTcuMi0xMy4xIDAtMjQuNS00LjEtMzMuOC04LjktNy45LTQtMTUuNy05LjItMjIuMS0xMy41bDAgMC0yLjQtMS42Yy0xNS4zLTEwLjItMjUuOC0xNi0zNy43LTE2LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjguMSAwIDQ5LjYgMTQuMiA2NC4zIDI0bDIuNCAxLjZjNi45IDQuNiAxMi4xIDguMSAxNy4yIDEwLjcgNS41IDIuOCA5LjEgMy42IDEyIDMuNiA2LjggMCAxMC4yLTEuOSAxMi44LTQuMyAzLjQtMy4yIDctOC44IDEwLjgtMTguNSAzLTcuNyA1LjYtMTYuMSA4LjYtMjUuOSAuOC0yLjcgMS43LTUuNiAyLjYtOC42IDEuMi00IDIuNi04LjIgNC0xMi41LTMuOS00LjUtNy40LTguOC0xMC41LTEyLjctMTEuNCAxMC4xLTI1LjkgMTguNi00NC4zIDE4LjYtMTcuNSAwLTMwLjctNy40LTQwLjQtMTYuNy04LjQtOC4xLTE0LjgtMTguMy0xOS40LTI1LjdsLS42LS45Yy01LjQtOC42LTguOC0xMy45LTEyLjUtMTcuNC0yLjgtMi43LTQuNi0zLjMtNy4xLTMuMy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzE3LjUgMCAzMC43IDcuNCA0MC40IDE2LjcgOC40IDguMSAxNC44IDE4LjMgMTkuNCAyNS43bC42IC45YzUuNCA4LjYgOC44IDEzLjkgMTIuNSAxNy40IDIuOCAyLjcgNC42IDMuMyA3LjEgMy4zIDMuMyAwIDguNy0xLjcgMTkuNC0xMy40IDUuMS01LjYgMTAuNC0xMi4zIDE2LjctMjAuNGwxLjQtMS44YzUuOC03LjQgMTIuMi0xNS43IDE5LjMtMjQgMTMuOC0xNi4yIDMwLjMtMzIuOCA1MS40LTQ2LjRsLTE1LjEtMzAuMmMtMS43IC4xLTMuNCAuMi01LjEgLjItMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0em0yMDggMGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwelwiXVxufTtcbnZhciBmYVBhc3RhZmFyaWFuaXNtID0gZmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nO1xudmFyIGZhTWFydGluaUdsYXNzQ2l0cnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcnRpbmktZ2xhc3MtY2l0cnVzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJjb2NrdGFpbFwiXSwgXCJmNTYxXCIsIFwiTTU3NiA4MGMwLTQ0LjItMzUuOC04MC04MC04MC0xOCAwLTM0LjYgNi00OCAxNmwtODEgMGMyMy42LTQ3LjQgNzIuNS04MCAxMjktODAgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRTNTc1LjUgMjI0IDQ5NiAyMjRjLTYuNSAwLTEzLS40LTE5LjMtMS4zbDY0LTc0LjdjMS4xLTEuMyAyLjItMi43IDMuMy00LjEgMTkuNC0xNC42IDMyLTM3LjggMzItNjR6TTY2LjkgODIuNkM3Mi4yIDcxLjMgODMuNSA2NCA5NiA2NGwzODQgMGMxMi41IDAgMjMuOCA3LjMgMjkuMSAxOC42czMuNCAyNC43LTQuOCAzNC4ybC0xODQuMyAyMTUgMCAxMTYuMiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTE2LjItMTg0LjMtMjE1Yy04LjEtOS41LTEwLTIyLjgtNC44LTM0LjJ6TTE2NS42IDEyOEwyODggMjcwLjggNDEwLjQgMTI4IDE2NS42IDEyOHpcIl1cbn07XG52YXIgZmFDb2NrdGFpbCA9IGZhTWFydGluaUdsYXNzQ2l0cnVzO1xudmFyIGZhQnVsbGhvcm4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVsbGhvcm4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyMjYsIDEyODM2M10sIFwiZjBhMVwiLCBcIk00NjEuMiAxOC45QzQ3Mi43IDI0IDQ4MCAzNS40IDQ4MCA0OGwwIDQxNmMwIDEyLjYtNy4zIDI0LTE4LjggMjkuMXMtMjQuOCAzLjItMzQuMy01LjFsLTQ2LjYtNDAuN2MtNDMuNi0zOC4xLTk4LjctNjAuMy0xNTYuNC02M2wwIDk1LjdjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZDNTcuMyAzODQgMCAzMjYuNyAwIDI1NlM1Ny4zIDEyOCAxMjggMTI4bDg0LjUgMGM2MS44LS4yIDEyMS40LTIyLjcgMTY3LjktNjMuM2w0Ni42LTQwLjdjOS40LTguMyAyMi45LTEwLjIgMzQuMy01LjF6TTIyNCAzMjBsMCAuMmM3MC4zIDIuNyAxMzcuOCAyOC41IDE5MiA3My40bDAtMjc1LjNjLTU0LjIgNDQuOS0xMjEuNyA3MC43LTE5MiA3My40TDIyNCAzMjB6XCJdXG59O1xudmFyIGZhQm94VGlzc3VlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JveC10aXNzdWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUwNWJcIiwgXCJNMTAzLjkgMzJsMTYxIDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlsMTcuNCA1Mi4yYzQuNCAxMy4xIDE2LjYgMjEuOSAzMC40IDIxLjlsNjAuNSAwYzIxLjggMCAzNy4zIDIxLjQgMzAuNCA0Mi4xTDM4NCAzMjAgMTI4IDMyMCA3Mi43IDcwLjlDNjguMiA1MSA4My40IDMyIDEwMy45IDMyek00OCAyNTZsMTYuNiAwIDE2LjUgNzQuNEM4NiAzNTIuNCAxMDUuNSAzNjggMTI4IDM2OGwyNTYgMGMyMC43IDAgMzktMTMuMiA0NS41LTMyLjhsMjYuNC03OS4yIDguMSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDh6XCJdXG59O1xudmFyIGZhTWF0dHJlc3NQaWxsb3cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWF0dHJlc3MtcGlsbG93JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTI1XCIsIFwiTTI1NiA2NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwLTM4NHptNDggMzg0bDIwOCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yMDggMCAwIDM4NHpNNjQgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyelwiXVxufTtcbnZhciBmYUNoZXZyb25MZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXZyb24tbGVmdCcsXG4gIGljb246IFszMjAsIDUxMiwgWzkwMDFdLCBcImYwNTNcIiwgXCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMjQ2LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTkyIDE5MnpcIl1cbn07XG52YXIgZmFDbG91ZE1vb25SYWluID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkLW1vb24tcmFpbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjczY1wiLCBcIk00NDggMGMtNjguNiAwLTEyNy4xIDQzLjEtMTQ5LjggMTAzLjggMTcuMSAxNC4xIDI5LjYgMzMuNSAzNC45IDU1LjggMzkuOSAyMS43IDY2LjkgNjMuOSA2Ni45IDExMi41IDAgMTMuNS0yLjEgMjYuNS01LjkgMzguNyAxNi45IDYgMzUgOS4zIDUzLjkgOS4zIDQzIDAgODIuMS0xNyAxMTAuOC00NC42IDQuNi00LjQgNS45LTExLjIgMy4zLTE3cy04LjYtOS4zLTE0LjktOC44Yy0zIC4yLTYuMSAuNC05LjIgLjQtNjMuNSAwLTExNS01MS41LTExNS0xMTUgMC00NS4xIDI2LTg0LjIgNjMuOC0xMDMgNS43LTIuOCA5LTguOSA4LjItMTUuMlM0ODkuNiA1LjMgNDgzLjQgMy45QzQ3MiAxLjQgNDYwLjIgMCA0NDggMHpNMjcyIDM1MmM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTM5LTI3LjktNzEuNS02NC44LTc4LjYgLjUtMy4xIC44LTYuMiAuOC05LjQgMC0zMC45LTI1LjEtNTYtNTYtNTYtMTIuNCAwLTIzLjkgNC0zMy4xIDEwLjgtMTMuNC0yNS41LTQwLjEtNDIuOC03MC45LTQyLjgtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA3LjQgMSAxNC42IDIuOSAyMS41LTI5LjggMTEuNi01MC45IDQwLjYtNTAuOSA3NC41IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE5MiAwek02OSA0MDEuMWMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4yTDE3LjIgNDgwLjRDMTMgNDkzIDE5LjggNTA2LjYgMzIuNCA1MTAuOHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHptMTIwIDBjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuNCA2NC4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6bTEyMCAwYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjQgNjQuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40elwiXVxufTtcbnZhciBmYUFycm93RG93bjE5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWRvd24tMS05JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzb3J0LW51bWVyaWMtYXNjXCIsIFwic29ydC1udW1lcmljLWRvd25cIl0sIFwiZjE2MlwiLCBcIk00MTguNyAzOGM4LjMgNiAxMy4zIDE1LjcgMTMuMyAyNmwwIDk2IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTUxLjYtNS45IDJjLTE2LjggNS42LTM0LjktMy41LTQwLjUtMjAuMnMzLjUtMzQuOSAyMC4yLTQwLjVsNDgtMTZjOS44LTMuMyAyMC41LTEuNiAyOC44IDQuNHpNMzY1LjEgNDMwLjZsMTEuNy0xOGMtMzIuOS05LjktNTYuOC00MC41LTU2LjgtNzYuNiAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMjIuOS02LjYgNDUuMy0xOS4xIDY0LjVsLTQyLjEgNjQuOWMtOS42IDE0LjgtMjkuNCAxOS4xLTQ0LjMgOS40cy0xOS4xLTI5LjQtOS40LTQ0LjN6TTQyNCAzMzZhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTUwLjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2elwiXVxufTtcbnZhciBmYVNvcnROdW1lcmljQXNjID0gZmFBcnJvd0Rvd24xOTtcbnZhciBmYVNvcnROdW1lcmljRG93biA9IGZhQXJyb3dEb3duMTk7XG52YXIgZmFIYW5kU3BvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1zcG9jaycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODQwNl0sIFwiZjI1OVwiLCBcIk0yMTQuOSAyMy43QzIxMC4zIDYuNiAxOTIuOC0zLjUgMTc1LjcgMS4xcy0yNy4yIDIyLjEtMjIuNiAzOS4yTDIwNiAyMzcuOGMyLjUgOS4yLTQuNSAxOC4yLTE0IDE4LjItNi40IDAtMTItNC4yLTEzLjktMTAuM0wxMzQuNiAxMDIuN2MtNS4xLTE2LjktMjMtMjYuNC0zOS45LTIxLjNzLTI2LjQgMjMtMjEuMyAzOS45bDYyLjggMjA2LjRjMi40IDcuOS03LjIgMTMuOC0xMy4yIDguMUw2Ny42IDI4M2MtMTYtMTUuMi00MS4zLTE0LjYtNTYuNiAxLjRTLTMuNiAzMjUuNyAxMi40IDM0MUwxMjQuOCA0NDhjNDMuMSA0MS4xIDEwMC40IDY0IDE2MCA2NGwxOS4xIDBjLjEgMCAuMS0uMSAuMS0uMXMuMS0uMSAuMS0uMWM1OC4zLTMuNSAxMDguNi00My4yIDEyNS4zLTk5LjdsODEuMi0yNzVjNS0xNi45LTQuNy0zNC43LTIxLjYtMzkuOHMtMzQuNyA0LjctMzkuOCAyMS42TDQxMS41IDI0Ny4xYy0xLjYgNS4zLTYuNCA4LjktMTIgOC45LTcuOSAwLTEzLjgtNy4zLTEyLjItMTUuMWwzNi0xNzAuM2MzLjctMTcuMy03LjQtMzQuMy0yNC43LTM3LjlzLTM0LjMgNy40LTM3LjkgMjQuN0wzMjMuMSAyMzUuMWMtMi42IDEyLjItMTMuMyAyMC45LTI1LjggMjAuOS0xMS45IDAtMjIuNC04LTI1LjQtMTkuNWwtNTctMjEyLjh6XCJdXG59O1xudmFyIGZhV2FuZE1hZ2ljU3BhcmtsZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2FuZC1tYWdpYy1zcGFya2xlcycsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibWFnaWMtd2FuZC1zcGFya2xlc1wiXSwgXCJlMmNhXCIsIFwiTTI2My40LTI3TDI3OC4yIDkuOCAzMTUgMjQuNmMzIDEuMiA1IDQuMiA1IDcuNHMtMiA2LjItNSA3LjRMMjc4LjIgNTQuMiAyNjMuNCA5MWMtMS4yIDMtNC4yIDUtNy40IDVzLTYuMi0yLTcuNC01TDIzMy44IDU0LjIgMTk3IDM5LjRjLTMtMS4yLTUtNC4yLTUtNy40czItNi4yIDUtNy40TDIzMy44IDkuOCAyNDguNi0yN2MxLjItMyA0LjItNSA3LjQtNXM2LjIgMiA3LjQgNXpNMTEwLjcgNDEuN2wyMS41IDUwLjEgNTAuMSAyMS41YzUuOSAyLjUgOS43IDguMyA5LjcgMTQuN3MtMy44IDEyLjItOS43IDE0LjdsLTUwLjEgMjEuNS0yMS41IDUwLjFjLTIuNSA1LjktOC4zIDkuNy0xNC43IDkuN3MtMTIuMi0zLjgtMTQuNy05LjdMNTkuOCAxNjQuMiA5LjcgMTQyLjdDMy44IDE0MC4yIDAgMTM0LjQgMCAxMjhzMy44LTEyLjIgOS43LTE0LjdMNTkuOCA5MS44IDgxLjMgNDEuN0M4My44IDM1LjggODkuNiAzMiA5NiAzMnMxMi4yIDMuOCAxNC43IDkuN3pNNDY0IDMwNGM2LjQgMCAxMi4yIDMuOCAxNC43IDkuN2wyMS41IDUwLjEgNTAuMSAyMS41YzUuOSAyLjUgOS43IDguMyA5LjcgMTQuN3MtMy44IDEyLjItOS43IDE0LjdsLTUwLjEgMjEuNS0yMS41IDUwLjFjLTIuNSA1LjktOC4zIDkuNy0xNC43IDkuN3MtMTIuMi0zLjgtMTQuNy05LjdsLTIxLjUtNTAuMS01MC4xLTIxLjVjLTUuOS0yLjUtOS43LTguMy05LjctMTQuN3MzLjgtMTIuMiA5LjctMTQuN2w1MC4xLTIxLjUgMjEuNS01MC4xYzIuNS01LjkgOC4zLTkuNyAxNC43LTkuN3pNNDYwIDBjMTEgMCAyMS42IDQuNCAyOS41IDEyLjJsNDIuMyA0Mi4zQzUzOS42IDYyLjQgNTQ0IDczIDU0NCA4NHMtNC40IDIxLjYtMTIuMiAyOS41bC04OC4yIDg4LjItMTAxLjMtMTAxLjMgODguMi04OC4yQzQzOC40IDQuNCA0NDkgMCA0NjAgMHpNNDQuMiAzOTguNUwzMDguNCAxMzQuMyA0MDkuNyAyMzUuNiAxNDUuNSA0OTkuOEMxMzcuNiA1MDcuNiAxMjcgNTEyIDExNiA1MTJzLTIxLjYtNC40LTI5LjUtMTIuMkw0NC4yIDQ1Ny41QzM2LjQgNDQ5LjYgMzIgNDM5IDMyIDQyOHM0LjQtMjEuNiAxMi4yLTI5LjV6XCJdXG59O1xudmFyIGZhTWFnaWNXYW5kU3BhcmtsZXMgPSBmYVdhbmRNYWdpY1NwYXJrbGVzO1xudmFyIGZhQ29tbWVudE1lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudC1tZWRpY2FsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2Y1XCIsIFwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0yMTcuNiAxNTMuNmMwLTEwLjYgOC42LTE5LjIgMTkuMi0xOS4ybDM4LjQgMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4ybDAgNDggNDggMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4ybDAgMzguNGMwIDEwLjYtOC42IDE5LjItMTkuMiAxOS4ybC00OCAwIDAgNDhjMCAxMC42LTguNiAxOS4yLTE5LjIgMTkuMmwtMzguNCAwYy0xMC42IDAtMTkuMi04LjYtMTkuMi0xOS4ybDAtNDgtNDggMGMtMTAuNiAwLTE5LjItOC42LTE5LjItMTkuMmwwLTM4LjRjMC0xMC42IDguNi0xOS4yIDE5LjItMTkuMmw0OCAwIDAtNDh6XCJdXG59O1xudmFyIGZhQmVsbFNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JlbGwtc2xhc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjgyNzcsIDYxOTQzXSwgXCJmMWY2XCIsIFwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg3LjUtODcuNWMxNy4yLTIuNCAzMC41LTE3LjMgMzAuNS0zNS4yIDAtOC4xLTIuNy0xNS45LTcuOC0yMi4ybC05LjgtMTIuMkM0NjQuNCAzMDguNSA0NDggMjYxLjggNDQ4IDIxMy43bDAtMjEuN2MwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOGwwLTMuMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMuMmMtMzguNiA3LjgtNzIuMiAyOS42LTk1LjIgNTkuN0w0MS0yNC45em04NyAyMzguNWMwIDQ4LjEtMTYuNCA5NC44LTQ2LjQgMTMyLjRsLTkuOCAxMi4yYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwyMzUuMyAwLTIwNi45LTIwNi45IDAgNC41ek0yODggNTEyYzI5LjggMCA1NC45LTIwLjQgNjItNDhsLTEyNCAwYzcuMSAyNy42IDMyLjIgNDggNjIgNDh6XCJdXG59O1xudmFyIGZhSGFuZHNoYWtlU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHNoYWtlLXNsYXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbNTc0MzksIFwiaGFuZHNoYWtlLWFsdC1zbGFzaFwiLCBcImhhbmRzaGFrZS1zaW1wbGUtc2xhc2hcIl0sIFwiZTA2MFwiLCBcIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0yODgtMjg4IDE0LjItMTQuMmM0LjItNC4yIDkuNS02LjUgMTQuOS02LjkgNi44LS42IDEzLjggMS43IDE5IDYuOUw1MDUuNiAzNzYgNTc2IDMyMCA1NzYgMzIgNDY0IDk2IDQ0MC4yIDgwLjFDNDI0LjQgNjkuNiA0MDUuOSA2NCAzODYuOSA2NGwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjFsLTU1LjggNjIuMS0zNC0zNCA0NC4zLTQ5LjItMzkuNyAwYy0xNS4zIDAtMzAuMSAzLjYtNDMuNSAxMC40TDQxLTI0Ljl6TTAgNjkuOEwwIDMyMCAxNTYuNCA0NTAuM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMjIuMiAwIDQzLjgtNS44IDYyLjgtMTYuNEwwIDY5Ljh6XCJdXG59O1xudmFyIGZhSGFuZHNoYWtlQWx0U2xhc2ggPSBmYUhhbmRzaGFrZVNsYXNoO1xudmFyIGZhSGFuZHNoYWtlU2ltcGxlU2xhc2ggPSBmYUhhbmRzaGFrZVNsYXNoO1xudmFyIGZhQm90dGxlV2F0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm90dGxlLXdhdGVyJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNGM1XCIsIFwiTTExMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwQzk0LjMgMzIgODAgMTcuNyA4MCAwczE0LjMtMzIgMzItMzJ6TTE2IDE0NGMwLTM1LjMgMjguNy02NCA2NC02NGwxNjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDI0LjEtMTMuMyA0NS4xLTMzIDU2IDE5LjcgMTAuOSAzMyAzMS45IDMzIDU2cy0xMy4zIDQ1LjEtMzMgNTZjMTkuNyAxMC45IDMzIDMxLjkgMzMgNTZzLTEzLjMgNDUuMS0zMyA1NmMxOS43IDEwLjkgMzMgMzEuOSAzMyA1NiAwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjQuMSAxMy4zLTQ1LjEgMzMtNTYtMTkuNy0xMC45LTMzLTMxLjktMzMtNTZzMTMuMy00NS4xIDMzLTU2Yy0xOS43LTEwLjktMzMtMzEuOS0zMy01NnMxMy4zLTQ1LjEgMzMtNTZjLTE5LjctMTAuOS0zMy0zMS45LTMzLTU2elwiXVxufTtcbnZhciBmYURpY2VEMjAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1kMjAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2Y2ZcIiwgXCJNMjI0LjQtOC4yYzE5LjYtMTEuMSA0My42LTExLjEgNjMuMSAwbDE5MiAxMDguOGMyMCAxMS40IDMyLjQgMzIuNiAzMi40IDU1LjdsMCAyMTUuNmMwIDIzLTEyLjQgNDQuMy0zMi40IDU1LjdsLTE5MiAxMDguOGMtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBMMzIuNCA0MjcuNUMxMi40IDQxNi4xIDAgMzk0LjggMCAzNzEuOEwwIDE1Ni4yYzAtMjMgMTIuNC00NC4zIDMyLjQtNTUuN0wyMjQuNC04LjJ6bTUyIDczLjJDMjY3IDQ5LjggMjQ1IDQ5LjggMjM1LjYgNjVsLTc2LjYgMTIzLjctODUuNC00Ni4zLTMuOC0xLjZjLTguOS0yLjctMTguOCAxLjEtMjMuNCA5LjZzLTIuNCAxOC45IDQuNyAyNC44bDMuMyAyLjMgODMuNCA0NS4yLTc0LjYgMTIwLjZDNTUuMyAzNTYuMiA2MSAzNzMgNzUgMzc4LjRsMTYxIDYxLjkgMCAzOS43YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMzkuNyAxNjEtNjEuOWMxNC01LjQgMTkuNy0yMi4yIDExLjgtMzVsLTc0LjctMTIwLjYgODMuNC00NS4yYzkuNy01LjMgMTMuMy0xNy40IDguMS0yNy4xcy0xNy40LTEzLjMtMjcuMS04LjFMMzUzIDE4OC43IDI3Ni40IDY1em0tNDcgMzI5LjlsLTEyMi00Ni45IDU0LjUtODguMSA2Ny41IDEzNXpNNDA0LjYgMzQ4bC0xMjIgNDYuOSA2Ny41LTEzNSA1NC41IDg4LjF6TTMxOS4zIDIzMkwyNTYgMzU4LjYgMTkyLjcgMjMyIDMxOS4zIDIzMnpNMzA4IDE5MmwtMTA0LjEgMCA1Mi04NCA1MiA4NHpcIl1cbn07XG52YXIgZmFBcnJvd0Rvd25aQSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1kb3duLXotYScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic29ydC1hbHBoYS1kZXNjXCIsIFwic29ydC1hbHBoYS1kb3duLWFsdFwiXSwgXCJmODgxXCIsIFwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMjg4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMzk3LjMgMTYwIDQ0OCAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOUwzNzAuOCA5NiAzMjAgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00MTIuNiAyNzMuN2w4MCAxNjBjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtNy4yLTE0LjMtODguNCAwLTcuMiAxNC4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDgwLTE2MGM1LjQtMTAuOCAxNi41LTE3LjcgMjguNi0xNy43czIzLjIgNi44IDI4LjYgMTcuN3pNMzg0IDM1OS42bC0yMC4yIDQwLjQgNDAuNCAwLTIwLjItNDAuNHpcIl1cbn07XG52YXIgZmFTb3J0QWxwaGFEZXNjID0gZmFBcnJvd0Rvd25aQTtcbnZhciBmYVNvcnRBbHBoYURvd25BbHQgPSBmYUFycm93RG93blpBO1xudmFyIGZhQnJ1c2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJ1c2gnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY1NWRcIiwgXCJNMTYyLjQgNmMtMS41LTMuNi01LTYtOC45LTZsLTE5IDBjLTMuOSAwLTcuNSAyLjQtOC45IDZMMTA0LjkgNTcuN2MtMy4yIDgtMTQuNiA4LTE3LjggMEw2Ni40IDZjLTEuNS0zLjYtNS02LTguOS02TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4bDAgMjA4IDM4NCAwIDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDIzMC41IDBjLTMuOSAwLTcuNSAyLjQtOC45IDZMMjAwLjkgNTcuN2MtMy4yIDgtMTQuNiA4LTE3LjggMEwxNjIuNCA2ek0wIDMwNGwwIDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDAgMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDAtNjQgNjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2LTM4NCAwek0xOTIgNDY0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6XCJdXG59O1xudmFyIGZhUGVyc29uV2Fsa2luZ0Rhc2hlZExpbmVBcnJvd1JpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi13YWxraW5nLWRhc2hlZC1saW5lLWFycm93LXJpZ2h0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTUzXCIsIFwiTTE2MCA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNNzMuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMMjguMSAxODIuNkMxMC4xIDIwMC42IDAgMjI1IDAgMjUwLjVMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6TTg1LjggNDA3LjNjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDkuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhMODUuOCA0MDcuM3pNNDMyIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMzg0LTUuMyAzODQgOGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnptMCAxMjhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTQwOCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTYwOSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyelwiXVxufTtcbnZhciBmYUFycm93VXBTaG9ydFdpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtc2hvcnQtd2lkZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wic29ydC1hbW91bnQtdXAtYWx0XCJdLCBcImY4ODVcIiwgXCJNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwek0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6XCJdXG59O1xudmFyIGZhU29ydEFtb3VudFVwQWx0ID0gZmFBcnJvd1VwU2hvcnRXaWRlO1xudmFyIGZhR3JpcFZlcnRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaXAtdmVydGljYWwnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtcImdyaWQtdmVydGljYWxcIl0sIFwiZjU4ZVwiLCBcIk0xMjggNDBjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgMEMxNy45IDAgMCAxNy45IDAgNDBMMCA4OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6bTAgMTkyYzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHpNMCA0MjRsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek0zMjAgNDBjMC0yMi4xLTE3LjktNDAtNDAtNDBMMjMyIDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4ek0xOTIgMjMybDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHpNMzIwIDQyNGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6XCJdXG59O1xudmFyIGZhR3JpZFZlcnRpY2FsID0gZmFHcmlwVmVydGljYWw7XG52YXIgZmFDYXJUdW5uZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyLXR1bm5lbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRkZVwiLCBcIk0yNTYgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDIuOCAwYy02LjYtNS45LTEwLjgtMTQuNC0xMC44LTI0bDAtMTEzLjFjMC0xMy41IDMuMS0yNi44IDktMzguOWwzOS43LTgwLjhjOS40LTE5LjEgMjguOS0zMS4zIDUwLjItMzEuM0wzMTcgMjI0YzIxLjMgMCA0MC44IDEyLjEgNTAuMiAzMS4zTDQwNyAzMzZjNS45IDEyLjEgOSAyNS40IDkgMzguOUw0MTYgNDg4YzAgOS42LTQuMiAxOC4xLTEwLjggMjRsNDIuOCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyQzUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwek0zNjIuOCA1MTJjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRsMC0yNC0xOTIgMCAwIDI0YzAgOS42LTQuMiAxOC4xLTEwLjggMjRsMjEzLjcgMHptLTE3NS0yMzUuNWwtMjkuMyA1OS41IDE5NC45IDAtMjkuMy01OS41Yy0xLjMtMi43LTQuMS00LjUtNy4yLTQuNUwxOTUgMjcyYy0zIDAtNS44IDEuNy03LjIgNC41ek0xNzYgNDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMTg0LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6XCJdXG59O1xudmFyIGZhQ2hhcnRDb2x1bW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtY29sdW1uJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMGUzXCIsIFwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzM2YzAgOC44IDcuMiAxNiAxNiAxNmw0MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw4MCA0ODBjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6TTE0NCAyMjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNDQtNjRsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptODAgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek01MTIgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpcIl1cbn07XG52YXIgZmFUcnVja0Fycm93UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stYXJyb3ctcmlnaHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1OGJcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMzA1IDIyNWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMDIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjl6XCJdXG59O1xudmFyIGZhVHYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHYnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs2MzcxNywgXCJ0ZWxldmlzaW9uXCIsIFwidHYtYWx0XCJdLCBcImYyNmNcIiwgXCJNNjQgOTZsMCAyNDAgNDQ4IDAgMC0yNDAtNDQ4IDB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNjAgNDQ4bDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIl1cbn07XG52YXIgZmFUZWxldmlzaW9uID0gZmFUdjtcbnZhciBmYVR2QWx0ID0gZmFUdjtcbnZhciBmYVNlY3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2VjdGlvbicsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiZTQ0N1wiLCBcIk0xMTAgMEM0OS4yIDAgMCA0OS4yIDAgMTEwIDAgMTMzLjcgNy42IDE1NS44IDIwLjUgMTc0IDcuNiAxOTIgMCAyMTQuMSAwIDIzOCAwIDI5MS43IDM4LjkgMzM3LjYgOTEuOSAzNDYuNGw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDI1LjQtMjAuNiA0Ni00NiA0NmwtOTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5OCAwYzYwLjcgMCAxMTAtNDkuMiAxMTAtMTEwIDAtMjMuNy03LjYtNDUuOS0yMC41LTY0IDEyLjktMTggMjAuNS00MC4xIDIwLjUtNjQgMC01My44LTM4LjktOTkuNi05MS45LTEwOC41bC02MS43LTEwLjNDODAuMiAxNTEuNiA2NCAxMzIuNCA2NCAxMTAgNjQgODQuNiA4NC42IDY0IDExMCA2NGw5OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzIyNS43IDAgMjA4IDBMMTEwIDB6bTc0LjcgMjk5LjFjLTYuNS0yLjQtMTMuNC00LjMtMjAuNS01LjVsLTYxLjctMTAuM2MtMjIuMi0zLjctMzguNC0yMi45LTM4LjQtNDUuMyAwLTkuMiAyLjctMTcuOCA3LjQtMjUgNi41IDIuNCAxMy40IDQuMyAyMC41IDUuNWw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDkuMi0yLjcgMTcuOC03LjQgMjV6XCJdXG59O1xudmFyIGZhUGVhY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVhY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5Nzc0XSwgXCJmNjdjXCIsIFwiTTIyNCA0NDUuM2wwLTEyMS44LTk0LjMgNzcuMWMyNi4xIDIyLjggNTguNSAzOC43IDk0LjMgNDQuN3pNODkuMiAzNTEuMUwyMjQgMjQwLjggMjI0IDY2LjdjLTkwLjggMTUuMi0xNjAgOTQuMi0xNjAgMTg5LjMgMCAzNC42IDkuMiA2Ny4xIDI1LjIgOTUuMXptMjkzLjEgNDkuNWwtOTQuMy03Ny4xIDAgMTIxLjhjMzUuNy02IDY4LjEtMjEuOSA5NC4zLTQ0Ljd6bTQwLjYtNDkuNWMxNi0yOCAyNS4yLTYwLjUgMjUuMi05NS4xIDAtOTUuMS02OS4yLTE3NC4xLTE2MC0xODkuM2wwIDE3NC4yIDEzNC44IDExMC4zek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwelwiXVxufTtcbnZhciBmYVN0YXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RhcicsXG4gIGljb246IFs1NzYsIDUxMiwgWzExMDg4LCA2MTQ0Nl0sIFwiZjAwNVwiLCBcIk0zMDkuNS0xOC45Yy00LjEtOC0xMi40LTEzLjEtMjEuNC0xMy4xcy0xNy4zIDUuMS0yMS40IDEzLjFMMTkzLjEgMTI1LjMgMzMuMiAxNTAuN2MtOC45IDEuNC0xNi4zIDcuNy0xOS4xIDE2LjNzLS41IDE4IDUuOCAyNC40bDExNC40IDExNC41LTI1LjIgMTU5LjljLTEuNCA4LjkgMi4zIDE3LjkgOS42IDIzLjJzMTYuOSA2LjEgMjUgMkwyODguMSA0MTcuNiA0MzIuNCA0OTFjOCA0LjEgMTcuNyAzLjMgMjUtMnMxMS0xNC4yIDkuNi0yMy4yTDQ0MS43IDMwNS45IDU1Ni4xIDE5MS40YzYuNC02LjQgOC42LTE1LjggNS44LTI0LjRzLTEwLjEtMTQuOS0xOS4xLTE2LjNMMzgzIDEyNS4zIDMwOS41LTE4Ljl6XCJdXG59O1xudmFyIGZhRmxhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFnJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3OTg4LCA2MTcyNV0sIFwiZjAyNFwiLCBcIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjEuNiA2Mi43LTE4LjhjNDEuOS0xMi42IDg3LjEtOC43IDEyNi4yIDEwLjkgNDIuNyAyMS40IDkyLjUgMjQgMTM3LjIgNy4ybDM3LjEtMTMuOWMxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI0Ny43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTExLjggNS45Yy00NC45IDIyLjUtOTcuOCAyMi41LTE0Mi44IDAtMzYuNC0xOC4yLTc4LjMtMjEuOC0xMTcuMi0xMC4xTDY0IDU0LjQgNjQgMzJ6XCJdXG59O1xudmFyIGZhVHJpYW5nbGVFeGNsYW1hdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmlhbmdsZS1leGNsYW1hdGlvbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzk4ODgsIFwiZXhjbGFtYXRpb24tdHJpYW5nbGVcIiwgXCJ3YXJuaW5nXCJdLCBcImYwNzFcIiwgXCJNMjU2IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41UzQ4Ni4xIDQ4MCA0NzIgNDgwTDQwIDQ4MGMtMTQuMSAwLTI3LjItNy40LTM0LjQtMTkuNXMtNy41LTI3LjEtLjgtMzkuNWwyMTYtNDAwYzctMTIuOSAyMC41LTIxIDM1LjItMjF6bTAgMzUyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMC0xOTJjLTE4LjIgMC0zMi43IDE1LjUtMzEuNCAzMy43bDcuNCAxMDRjLjkgMTIuNSAxMS40IDIyLjMgMjMuOSAyMi4zIDEyLjYgMCAyMy05LjcgMjMuOS0yMi4zbDcuNC0xMDRjMS4zLTE4LjItMTMuMS0zMy43LTMxLjQtMzMuN3pcIl1cbn07XG52YXIgZmFFeGNsYW1hdGlvblRyaWFuZ2xlID0gZmFUcmlhbmdsZUV4Y2xhbWF0aW9uO1xudmFyIGZhV2FybmluZyA9IGZhVHJpYW5nbGVFeGNsYW1hdGlvbjtcbnZhciBmYVNjaG9vbENpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NjaG9vbC1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NmNcIiwgXCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnpcIl1cbn07XG52YXIgZmFHcmFkdWF0aW9uQ2FwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyYWR1YXRpb24tY2FwJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI3ODkxLCBcIm1vcnRhci1ib2FyZFwiXSwgXCJmMTlkXCIsIFwiTTQ4IDE5NS44bDIwOS4yIDg2LjFjOS44IDQgMjAuMiA2LjEgMzAuOCA2LjFzMjEtMi4xIDMwLjgtNi4xbDI0Mi40LTk5LjhjOS0zLjcgMTQuOC0xMi40IDE0LjgtMjIuMXMtNS44LTE4LjQtMTQuOC0yMi4xTDMxOC44IDM4LjFDMzA5IDM0LjEgMjk4LjYgMzIgMjg4IDMycy0yMSAyLjEtMzAuOCA2LjFMMTQuOCAxMzcuOUM1LjggMTQxLjYgMCAxNTAuMyAwIDE2MEwwIDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjYwLjJ6bTQ4IDcxLjdMOTYgMzg0YzAgNTMgODYgOTYgMTkyIDk2czE5Mi00MyAxOTItOTZsMC0xMTYuNi0xNDIuOSA1OC45Yy0xNS42IDYuNC0zMi4yIDkuNy00OS4xIDkuN3MtMzMuNS0zLjMtNDkuMS05LjdMOTYgMjY3LjR6XCJdXG59O1xudmFyIGZhTW9ydGFyQm9hcmQgPSBmYUdyYWR1YXRpb25DYXA7XG52YXIgZmFTdG9yZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdG9yZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU0ZVwiLCBcIk0zMC43IDcyLjNDMzcuNiA0OC40IDU5LjUgMzIgODQuNCAzMmwzNDQgMGMyNC45IDAgNDYuOCAxNi40IDUzLjggNDAuM2wyMy40IDgwLjJjMTIuOCA0My43LTIwLjEgODcuNS02NS42IDg3LjUtMjYuMyAwLTQ5LjQtMTQuOS02MC44LTM3LjEtMTEuNiAyMS45LTM0LjYgMzcuMS02MS40IDM3LjEtMjYuNiAwLTQ5LjctMTUtNjEuMy0zNy0xMS42IDIyLTM0LjcgMzctNjEuMyAzNy0yNi44IDAtNDkuOC0xNS4xLTYxLjQtMzcuMS0xMS40IDIyLjEtMzQuNSAzNy4xLTYwLjggMzcuMS00NS42IDAtNzguNC00My43LTY1LjYtODcuNUwzMC43IDcyLjN6TTk2LjQgMzUybDMyMCAwIDAtNjYuNGM3LjYgMS42IDE1LjUgMi40IDIzLjUgMi40IDE0LjMgMCAyOC0yLjYgNDAuNS03LjJsMCAxNTEuMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzUyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTUxLjJjMTIuNSA0LjYgMjYuMSA3LjIgNDAuNSA3LjIgOC4xIDAgMTUuOS0uOCAyMy41LTIuNGwwIDY2LjR6XCJdXG59O1xudmFyIGZhVXNlckFzdHJvbmF1dCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWFzdHJvbmF1dCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjRmYlwiLCBcIk0yMjQgMzM2Yzc0LjYgMCAxMzguNC00Ni40IDE2NC0xMTJsNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQgMEMzNjIuNCAzMC40IDI5OC42LTE2IDIyNC0xNlM4NS42IDMwLjQgNjAgOTZsLTQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0IDBjMjUuNiA2NS42IDg5LjQgMTEyIDE2NCAxMTJ6TTIwOCA4MGwzMiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2bC0zMiAwYy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2ek0xNiA0ODQuNkMxNiA0OTkuNyAyOC4zIDUxMiA0My40IDUxMmw1Mi42IDAgMC00OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4IDUyLjYgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTU5LjgtMzEuOS0xMTIuMi03OS42LTE0MS0zNi40IDI1LjUtODAuNiA0MC40LTEyOC40IDQwLjRzLTkyLTE0LjktMTI4LjQtNDAuNEM0Ny45IDM3Mi40IDE2IDQyNC44IDE2IDQ4NC42ek0xODMuMyAxNDEuNWMtLjktMy4zLTMuOS01LjUtNy4zLTUuNXMtNi40IDIuMi03LjMgNS41bC02IDIxLjItMjEuMiA2Yy0zLjMgLjktNS41IDMuOS01LjUgNy4zczIuMiA2LjQgNS41IDcuM2wyMS4yIDYgNiAyMS4yYy45IDMuMyAzLjkgNS41IDcuMyA1LjVzNi40LTIuMiA3LjMtNS41bDYtMjEuMiAyMS4yLTZjMy4zLS45IDUuNS0zLjkgNS41LTcuM3MtMi4yLTYuNC01LjUtNy4zbC0yMS4yLTYtNi0yMS4yek0xNTIgNDg4bDAgMjQgNDggMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em0xMjAtMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMjQgNDggMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYUJ1aWxkaW5nRmxhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWlsZGluZy1mbGFnJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNGQ1XCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTE3NiAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNOTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ2NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjg4IDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJMNDk2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYU11Z1NhdWNlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtdWctc2F1Y2VyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJjb2ZmZWVcIl0sIFwiZjBmNFwiLCBcIk02NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzNTIgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFM1MTguNyAyODggNDQ4IDI4OGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMGMtNTMgMC05Ni00My05Ni05Nkw2NCA2NHptNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0bDAgMTI4YzM1LjMgMCA2NC0yOC43IDY0LTY0ek02NCA0NDhsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwiXVxufTtcbnZhciBmYUNvZmZlZSA9IGZhTXVnU2F1Y2VyO1xudmFyIGZhTGVtb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVtb24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjc4MTldLCBcImYwOTRcIiwgXCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0LTYuNiAwLTEzIDEtMTkgMi45LTIyLjUgNy00OC4xIDE0LjktNzEgOS03NS4yLTE5LjEtMTU2LjQgMTEtMjEzLjcgNjguM1MtNy4yIDI1MC44IDExLjkgMzI2YzUuOCAyMi45LTIgNDguNC05IDcxLTEuOSA2LTIuOSAxMi40LTIuOSAxOSAwIDM1LjMgMjguNyA2NCA2NCA2NCA2LjYgMCAxMy0xIDE5LjEtMi45IDIyLjUtNyA0OC4xLTE0LjkgNzEtOSA3NS4yIDE5LjEgMTU2LjQtMTEgMjEzLjctNjguM1M0NTUuMiAyNjEuMiA0MzYuMSAxODZjLTUuOC0yMi45IDItNDguNCA5LTcxIDEuOS02IDIuOS0xMi40IDIuOS0xOS4xek0yMjIuNyAxNDNjLTUyIDE1LjItOTYuNSA1OS43LTExMS43IDExMS43LTMuNyAxMi43LTE3LjEgMjAtMjkuOCAxNi4zUzYxLjIgMjU0IDY1IDI0MS4zYzE5LjgtNjcuNyA3Ni42LTEyNC41IDE0NC4zLTE0NC4zIDEyLjctMy43IDI2LjEgMy42IDI5LjggMTYuM3MtMy42IDI2LjEtMTYuMyAyOS44elwiXVxufTtcbnZhciBmYUNhcmF2YW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyYXZhbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjhmZlwiLCBcIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDE5MiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOTYuNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOEw5NiA0MTZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDk2ek0zNTIgMzUybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00OC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJ6TTE2MCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC02NCAwem02NCAzMzZhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwiXVxufTtcbnZhciBmYVEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncScsXG4gIGljb246IFs0NDgsIDUxMiwgWzExM10sIFwiNTFcIiwgXCJNNjQgMjU2YzAgODguNCA3MS42IDE2MCAxNjAgMTYwIDI4LjkgMCA1Ni03LjcgNzkuNC0yMS4xbC03Mi04Ni40Yy0xMS4zLTEzLjYtOS41LTMzLjggNC4xLTQ1LjFzMzMuOC05LjUgNDUuMSA0LjFsNzAuOSA4NS4xYzIwLjQtMjYuOCAzMi41LTYwLjMgMzIuNS05Ni42IDAtODguNC03MS42LTE2MC0xNjAtMTYwUzY0IDE2Ny42IDY0IDI1NnpNMzQ0LjkgNDQ0LjZDMzEwIDQ2NyAyNjguNSA0ODAgMjI0IDQ4MCAxMDAuMyA0ODAgMCAzNzkuNyAwIDI1NlMxMDAuMyAzMiAyMjQgMzIgNDQ4IDEzMi4zIDQ0OCAyNTZjMCA1Ni4xLTIwLjYgMTA3LjQtNTQuNyAxNDYuN2w0Ny4zIDU2LjhjMTEuMyAxMy42IDkuNSAzMy44LTQuMSA0NS4xcy0zMy44IDkuNS00NS4xLTQuMWwtNDYuNi01NS45elwiXVxufTtcbnZhciBmYUxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbG9jaycsXG4gIGljb246IFszODQsIDUxMiwgWzEyODI3NF0sIFwiZjAyM1wiLCBcIk0xMjggOTZsMCA2NCAxMjggMCAwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0ek02NCAxNjBsMC02NEM2NCAyNS4zIDEyMS4zLTMyIDE5Mi0zMlMzMjAgMjUuMyAzMjAgOTZsMCA2NGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0elwiXVxufTtcbnZhciBmYVBhaW50Um9sbGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BhaW50LXJvbGxlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVhYVwiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwxNiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgOTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxOC43YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTE4LjdjMC00NC4yIDM1LjgtODAgODAtODBsMTYwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDE5MmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpcIl1cbn07XG52YXIgZmFWb2x1bWVIaWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZvbHVtZS1oaWdoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4MjY2LCBcInZvbHVtZS11cFwiXSwgXCJmMDI4XCIsIFwiTTUzMy42IDMyLjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEM1NTcuNSAxMTMuOCA1OTIgMTgwLjggNTkyIDI1NnMtMzQuNSAxNDIuMi04OC43IDE4Ni4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzU5OC41IDQyNi43IDY0MCAzNDYuMiA2NDAgMjU2UzU5OC41IDg1LjIgNTMzLjYgMzIuNXpNNDczLjEgMTA3Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDNDc1LjMgMTcwLjcgNDk2IDIxMC45IDQ5NiAyNTZzLTIwLjcgODUuMy01My4yIDExMS44Yy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41YzQzLjItMzUuMiA3MC45LTg4LjkgNzAuOS0xNDlzLTI3LjctMTEzLjgtNzAuOS0xNDl6bS02MC41IDc0LjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEMzOTMuMSAyMjcuNiA0MDAgMjQxIDQwMCAyNTZzLTYuOSAyOC40LTE3LjcgMzcuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM0MzQuMSAzMTIuOSA0NDggMjg2LjEgNDQ4IDI1NnMtMTMuOS01Ni45LTM1LjQtNzQuNXpNODAgMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDEyOCAxNjAgODAgMTYwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4elwiXVxufTtcbnZhciBmYVZvbHVtZVVwID0gZmFWb2x1bWVIaWdoO1xudmFyIGZhRm9sZGVyUGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmb2xkZXItcGx1cycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY1ZVwiLCBcIk01MTIgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwek0yNTYgMTYwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMCAwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OCA0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6XCJdXG59O1xudmFyIGZhTWVyY3VyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtZXJjdXJ5JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbOTc5MV0sIFwiZjIyM1wiLCBcIk0xMTctNEMxMDYtMTcuOCA4NS44LTIwIDcyLjEtOXMtMTYgMzEuMi01IDQ1Qzc0LjkgNDUuNyA4My43IDU0LjUgOTMuNSA2Mi4xIDQ2LjcgOTMuNyAxNiAxNDcuMyAxNiAyMDggMTYgMjk0LjMgNzguMSAzNjYuMSAxNjAgMzgxLjFsMCAzNC45LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzQuOWM4MS45LTE1IDE0NC04Ni44IDE0NC0xNzMuMSAwLTYwLjctMzAuNy0xMTQuMy03Ny41LTE0NS45IDkuOC03LjcgMTguNy0xNi40IDI2LjQtMjYuMSAxMS4xLTEzLjggOC44LTMzLjktNS00NVMyNzgtMTcuOCAyNjctNGMtMTcuNiAyMi00NC43IDM2LTc1IDM2UzEzNC43IDE4IDExNy00em03NSAzMjRjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyUzEzMC4xIDk2IDE5MiA5NiAzMDQgMTQ2LjEgMzA0IDIwOGMwIDYxLjgtNTAuMSAxMTItMTExLjkgMTEybC0uMSAwelwiXVxufTtcbnZhciBmYUFuY2hvciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmNob3InLFxuICBpY29uOiBbNTc2LCA1MTIsIFs5ODc1XSwgXCJmMTNkXCIsIFwiTTI4OCA2NGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTE5MiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDEuOC0yNi43IDc3LjQtNjQgOTAuNWwwIDI1Ny45YzYyLjktMTQuMyAxMTAuMi02OS43IDExMS45LTEzNi41bC0xNi4xIDE0LjFjLTEwIDguNy0yNS4xIDcuNy0zMy45LTIuM3MtNy43LTI1LjEgMi4zLTMzLjlsNjQtNTZjOS03LjkgMjIuNi03LjkgMzEuNiAwbDY0IDU2YzEwIDguNyAxMSAyMy45IDIuMyAzMy45cy0yMy45IDExLTMzLjkgMi4zTDQ5NiAzMDcuOUM0OTMuOSA0MjEgNDAxLjYgNTEyIDI4OCA1MTJTODIuMSA0MjEgODAgMzA3LjlMNjMuOCAzMjIuMWMtMTAgOC43LTI1LjEgNy43LTMzLjktMi4zcy03LjctMjUuMSAyLjMtMzMuOWw2NC01NmM5LTcuOSAyMi42LTcuOSAzMS42IDBsNjQgNTZjMTAgOC43IDExIDIzLjkgMi4zIDMzLjlzLTIzLjkgMTEtMzMuOSAyLjNsLTE2LjEtMTQuMWMxLjggNjYuOCA0OS4xIDEyMi4yIDExMS45IDEzNi41bDAtMjU3LjljLTM3LjMtMTMuMi02NC00OC43LTY0LTkwLjV6XCJdXG59O1xudmFyIGZhU3F1YXJlUGFya2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtcGFya2luZycsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzM1OSwgXCJwYXJraW5nXCJdLCBcImY1NDBcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMTkyIDI1Nmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwIDAgNjR6bTQ4IDY0bC00OCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xODRjMC0yMi4xIDE3LjktNDAgNDAtNDBsNzIgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NnpcIl1cbn07XG52YXIgZmFQYXJraW5nID0gZmFTcXVhcmVQYXJraW5nO1xudmFyIGZhSGFudWtpYWggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFudWtpYWgnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjgzMzRdLCBcImY2ZTZcIiwgXCJNMzE0LjIgMy4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zem0tMjg4IDQ4QzIxLjEgNjAuMSA4IDg0LjYgOCAxMDQgOCAxMTcuMyAxOC43IDEyOCAzMiAxMjhzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek04OCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzEwMS4xIDYwLjEgODggODQuNiA4OCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNMjE2IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDMjI5LjEgNjAuMSAyMTYgODQuNiAyMTYgMTA0ek0zOTQuMiA1MS4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek00NDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0M0NTMuMSA2MC4xIDQ0MCA4NC42IDQ0MCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNTg0IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDNTk3LjEgNjAuMSA1ODQgODQuNiA1ODQgMTA0ek0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnpNMzUyIDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3Ni0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDE3NC4zIDAgMTkybDAgOTZjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMCAwIDY0LTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMCAwLTY0IDE5MiAwYzUzIDAgOTYtNDMgOTYtOTZsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xOTIgMCAwLTE3NnpcIl1cbn07XG52YXIgZmFSb3RhdGVMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvdGF0ZS1sZWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJyb3RhdGUtYmFja1wiLCBcInJvdGF0ZS1iYWNrd2FyZFwiLCBcInVuZG8tYWx0XCJdLCBcImYyZWFcIiwgXCJNMjQgMTkybDE0NCAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtNDYuNy00Ni43Yzc1LjMtNTguNiAxODQuMy01My4zIDI1My41IDE1LjkgNzUgNzUgNzUgMTk2LjUgMCAyNzEuNXMtMTk2LjUgNzUtMjcxLjUgMGMtMTAuMi0xMC4yLTE5LTIxLjMtMjYuNC0zMy05LjUtMTQuOS0yOS4zLTE5LjMtNDQuMi05LjhzLTE5LjMgMjkuMy05LjggNDQuMkM0OS43IDQwOC43IDYxLjQgNDIzLjUgNzUgNDM3IDE3NSA1MzcgMzM3IDUzNyA0MzcgNDM3UzUzNyAxNzUgNDM3IDc1QzM0Mi44LTE5LjMgMTkzLjMtMjQuNyA5Mi43IDU4LjhMNDEgN0MzNC4xIC4yIDIzLjgtMS45IDE0LjggMS44UzAgMTQuMyAwIDI0TDAgMTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0elwiXVxufTtcbnZhciBmYVJvdGF0ZUJhY2sgPSBmYVJvdGF0ZUxlZnQ7XG52YXIgZmFSb3RhdGVCYWNrd2FyZCA9IGZhUm90YXRlTGVmdDtcbnZhciBmYVVuZG9BbHQgPSBmYVJvdGF0ZUxlZnQ7XG52YXIgZmFIZWFkaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYWRpbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtcImhlYWRlclwiXSwgXCJmMWRjXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDExMiAyMjQgMCAwLTExMi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAzMjAgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMTQ0LTIyNCAwIDAgMTQ0IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTMyMC0xNiAwQzE0LjMgOTYgMCA4MS43IDAgNjR6XCJdXG59O1xudmFyIGZhSGVhZGVyID0gZmFIZWFkaW5nO1xudmFyIGZhQ3Jvc3NoYWlycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjcm9zc2hhaXJzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMDViXCIsIFwiTTI4OC0xNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE4LjNjOTguMSAxNCAxNzUuNyA5MS42IDE4OS43IDE4OS43bDE4LjMgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguMyAwYy0xNCA5OC4xLTkxLjYgMTc1LjctMTg5LjcgMTg5LjdsMCAxOC4zYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguM0MxNTcuOSA0NjMuNyA4MC4zIDM4Ni4xIDY2LjMgMjg4TDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC4zIDBDODAuMyAxMjUuOSAxNTcuOSA0OC4zIDI1NiAzNC4zTDI1NiAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTMxLjIgMjg4YzEyLjcgNjIuNyA2Mi4xIDExMi4xIDEyNC44IDEyNC44bDAtMTIuOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTIuOGM2Mi43LTEyLjcgMTEyLjEtNjIuMSAxMjQuOC0xMjQuOEw0MzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEyLjggMEM0MzIuMSAxNjEuMyAzODIuNyAxMTEuOSAzMjAgOTkuMmwwIDEyLjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMi44QzE5My4zIDExMS45IDE0My45IDE2MS4zIDEzMS4yIDIyNGwxMi44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyLjggMHpNMjg4IDIwOGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xudmFyIGZhQ2lyY2xlTm9kZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLW5vZGVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGUyXCIsIFwiTTQxOC40IDE1Ny45YzM1LjMtOC4zIDYxLjYtNDAgNjEuNi03Ny45IDAtNDQuMi0zNS44LTgwLTgwLTgwLTQzLjQgMC03OC43IDM0LjUtODAgNzcuNUwxMzYuMiAxNTEuMUMxMjEuNyAxMzYuOCAxMDEuOSAxMjggODAgMTI4IDM1LjggMTI4IDAgMTYzLjggMCAyMDhzMzUuOCA4MCA4MCA4MGMxMi4yIDAgMjMuOC0yLjcgMzQuMS03LjZMMjU5LjcgNDA3LjhjLTIuNCA3LjYtMy43IDE1LjgtMy43IDI0LjIgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTI3LjctMTQtNTIuMS0zNS40LTY2LjRsMzcuOC0yMDcuN3pNMTU2LjMgMjMyLjJjMi4yLTYuOSAzLjUtMTQuMiAzLjctMjEuN2wxODMuOC03My41YzMuNiAzLjUgNy40IDYuNyAxMS42IDkuNUwzMTcuNiAzNTQuMWMtNS41IDEuMy0xMC44IDMuMS0xNS44IDUuNUwxNTYuMyAyMzIuMnpcIl1cbn07XG52YXIgZmFXaW5kb3dSZXN0b3JlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dpbmRvdy1yZXN0b3JlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMmQyXCIsIFwiTTUxMiA5NkwxNjAgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTQ4IDAgMC02NCA0OCAwIDAtMTkyek0wIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0em02NCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw4OCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0elwiXVxufTtcbnZhciBmYVIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncicsXG4gIGljb246IFszMjAsIDUxMiwgWzExNF0sIFwiNTJcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDk1LjMgMCAxMDIuNCAxNDYuNGMxMC4xIDE0LjUgMzAuMSAxOCA0NC42IDcuOXMxOC0zMC4xIDcuOS00NC42TDIzMC4xIDMwOS41QzI4Mi44IDI4OC4xIDMyMCAyMzYuNCAzMjAgMTc2IDMyMCA5Ni41IDI1NS41IDMyIDE3NiAzMkwzMiAzMnpNMTc2IDI1NmwtMTEyIDAgMC0xNjAgMTEyIDBjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODB6XCJdXG59O1xudmFyIGZhRmlsdGVyQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsdGVyLWNpcmNsZS14bWFyaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTE3YlwiLCBcIk0zMiA2NEMxOS4xIDY0IDcuNCA3MS44IDIuNCA4My44Uy4yIDEwOS41IDkuNCAxMTguNkwxOTIgMzAxLjMgMTkyIDQxNmMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMyLjUgMi41IDUuMyA0LjUgOC4zIDYtMjEuMi0zMC45LTMzLjYtNjguMy0zMy42LTEwOC42IDAtOTkuNCA3NS41LTE4MS4xIDE3Mi4zLTE5MWw5MC40LTkwLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIl1cbn07XG52YXIgZmFHb3B1cmFtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dvcHVyYW0nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2NjRcIiwgXCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4IDQwIDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4IDQ4IDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4IDQwIDAgMC04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMzZjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA4MGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNDggMCAwLTIyNC0zMiAwIDAtMTI4LTQ4IDAgMCAxMjggMzIgMCAwIDIyNC0yMjQgMCAwLTIyNCAzMiAwIDAtMTI4LTQ4IDAgMCAxMjgtMzIgMCAwIDIyNC00OCAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMzNmMwLTI2LjUgMjEuNS00OCA0OC00OGwwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4TDk2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek0yNTYgMjA4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4IDY0IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjA4IDQwMGwwIDY0IDk2IDAgMC02NGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNMjU2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyIDY0IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIl1cbn07XG52YXIgZmFIZWFydENpcmNsZU1pbnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYXJ0LWNpcmNsZS1taW51cycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRmZlwiLCBcIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIyNCAwYzAtOC44LTcuMi0xNi0xNi0xNmwtMTI4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2elwiXVxufTtcbnZhciBmYVN0YXJPZkxpZmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1vZi1saWZlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjIxXCIsIFwiTTIwOC41IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNDAuOSAxMjItNzAuNGMxNS4zLTguOCAzNC45LTMuNiA0My43IDExLjdsMTYgMjcuN2M4LjggMTUuMyAzLjYgMzQuOS0xMS43IDQzLjdsLTEyMiA3MC40IDEyMiA3MC40YzE1LjMgOC44IDIwLjYgMjguNCAxMS43IDQzLjdsLTE2IDI3LjdjLTguOCAxNS4zLTI4LjQgMjAuNi00My43IDExLjdsLTEyMi03MC40IDAgMTQwLjljMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQwLjktMTIyIDcwLjRjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN2wtMTYtMjcuN2MtOC44LTE1LjMtMy42LTM0LjkgMTEuNy00My43bDEyMi03MC40LTEyMi03MC40Yy0xNS4zLTguOC0yMC41LTI4LjQtMTEuNy00My43bDE2LTI3LjdjOC44LTE1LjMgMjguNC0yMC41IDQzLjctMTEuN2wxMjIgNzAuNCAwLTE0MC45elwiXVxufTtcbnZhciBmYUJ1c2luZXNzVGltZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidXNpbmVzcy10aW1lJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJicmllZmNhc2UtY2xvY2tcIl0sIFwiZjY0YVwiLCBcIk0yNjQgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA5NiAzMDUgMGMzMy44LTI5LjkgNzguMy00OCAxMjctNDggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04MCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjY0IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2em04MCAyOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtMTkyIDAgMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkzLjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMTYuNiAyLjEtMzIuNyA2LTQ4bC0yMiAwem0zNTIgNDhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNNDk2IDMyMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCAzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xudmFyIGZhQnJpZWZjYXNlQ2xvY2sgPSBmYUJ1c2luZXNzVGltZTtcbnZhciBmYUZpcmVFeHRpbmd1aXNoZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlyZS1leHRpbmd1aXNoZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk1MTldLCBcImYxMzRcIiwgXCJNNTEyIDMyYzAtOS42LTQuMy0xOC43LTExLjctMjQuN1M0ODMuMS0xLjMgNDczLjcgLjZsLTE2MCAzMkMzMDEuNSAzNS4xIDI5MiA0NC4zIDI4OSA1NmwtNjUgMCAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI4LjRjLTU1LjMgMTIuMy0xMDEuMyA0OS41LTEyNS41IDk5LjEtNS44IDExLjktLjkgMjYuMyAxMS4xIDMyLjFzMjYuMyAuOSAzMi4xLTExLjFDNjIgMTQ2LjkgOTEuOCAxMjEuMSAxMjggMTEwbDAgMjguOGMtMzcuOCAxOC02NCA1Ni41LTY0IDEwMS4ybDAgMTI4IDIyNCAwIDAtMTI4YzAtNDQuNy0yNi4yLTgzLjItNjQtMTAxLjJsMC0zNC44IDY1IDBjMyAxMS43IDEyLjUgMjAuOSAyNC43IDIzLjRsMTYwIDMyYzkuNCAxLjkgMTkuMS0uNiAyNi42LTYuNlM1MTIgMTM3LjYgNTEyIDEyOGwwLTk2ek0yODggNDQ4bDAtMzItMjI0IDAgMCAzMmMwIDM1LjMgMjguNyA2NCA2NCA2NGw5NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0elwiXVxufTtcbnZhciBmYUFycm93RG93bkxvbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi1sb25nJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJsb25nLWFycm93LWRvd25cIl0sIFwiZjE3NVwiLCBcIk0xMzcuNCA1MzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5MiA0MzQuNyAxOTIgMGMwLTE3LjctMTQuMy0zMi0zMi0zMlMxMjgtMTcuNyAxMjggMGwwIDQzNC43LTczLjQtNzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOHpcIl1cbn07XG52YXIgZmFMb25nQXJyb3dEb3duID0gZmFBcnJvd0Rvd25Mb25nO1xudmFyIGZhVXNlck1pbnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItbWludXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1MDNcIiwgXCJNMTM2IDEyOGExMjAgMTIwIDAgMSAxIDI0MCAwIDEyMCAxMjAgMCAxIDEgLTI0MCAwek00OCA0ODIuM0M0OCAzODMuOCAxMjcuOCAzMDQgMjI2LjMgMzA0bDU5LjQgMGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3Ny43IDUxMkM2MS4zIDUxMiA0OCA0OTguNyA0OCA0ODIuM3pNNDcyIDE2OGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhTW9uZXlDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1jaGVjaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjUzY1wiLCBcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek05NiAzMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMjQtMTM2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNzIgMHpcIl1cbn07XG52YXIgZmFIb3VzZUxhcHRvcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1sYXB0b3AnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtcImxhcHRvcC1ob3VzZVwiXSwgXCJlMDY2XCIsIFwiTTQ0OCAyNDBsMTkuOSAwYzE1LjUgMCAyOC4xLTEyLjYgMjguMS0yOC4xIDAtNy42LTMuMS0xNC45LTguNi0yMC4yTDI4My41LTQuOUMyNzYuMS0xMiAyNjYuMy0xNiAyNTYtMTZzLTIwLjEgNC0yNy41IDExLjFMMjQuNiAxOTEuN0MxOS4xIDE5NyAxNiAyMDQuMyAxNiAyMTEuOSAxNiAyMjcuNCAyOC42IDI0MCA0NC4xIDI0MGwxOS45IDAgMCAxNDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODUuNyAwYzcuNC02LjYgMTYuNC0xMS40IDI2LjMtMTRsMC0xMzBjMC01LjUgLjctMTAuOSAyLTE2bC0xMCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNCAxNDQgMHpNMzUyIDM1MmwxNjAgMCAwIDEyOC0xNjAgMCAwLTEyOHptLTY0LTMybDAgMTYwLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OGwyODggMGMyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJsLTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpcIl1cbn07XG52YXIgZmFMYXB0b3BIb3VzZSA9IGZhSG91c2VMYXB0b3A7XG52YXIgZmFEb3dubG9hZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb3dubG9hZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjAxOVwiLCBcIk0yNTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMTAuNy00MS40LTQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDI1NiAyNDIuNyAyNTYgMzJ6TTY0IDMyMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC00Ni45IDAtNTYuNiA1Ni42Yy0zMS4yIDMxLjItODEuOSAzMS4yLTExMy4xIDBMMTEwLjkgMzIwIDY0IDMyMHptMzA0IDU2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIl1cbn07XG52YXIgZmFDb3VjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb3VjaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRiOFwiLCBcIk0xNDQgMjcyQzE0NCAyMjQuNyAxMDkuOCAxODUuNCA2NC44IDE3Ny41IDcyIDExMy42IDEyNi4yIDY0IDE5MiA2NGwyNTYgMGM2NS44IDAgMTIwIDQ5LjYgMTI3LjIgMTEzLjUtNDUgOC03OS4yIDQ3LjItNzkuMiA5NC41bDAgMzItMzUyIDAgMC0zMnpNMCAzODRMMCAyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDQ0OCAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0elwiXVxufTtcbnZhciBmYVJvYWRMb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYWQtbG9jaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU2N1wiLCBcIk0yNTYgMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMMzMuNCA0MjAuNUMyNS45IDQ1MC43IDQ4LjggNDgwIDgwIDQ4MGwxNzUuOSAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzIgNi4xIDAgMTEuOCAxLjcgMTYuNyA0LjcgMi44LTIzLjkgMTQuMy00NS4xIDMxLjQtNjAuM2wwLTI0LjRjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggNi4yIDAgMTIuNCAuNCAxOC40IDEuM0w0NTguNSA4MC42QzQ1MS40IDUyLjEgNDI1LjggMzIgMzk2LjMgMzJsLTc2LjQgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bTY0IDE5MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTc2IDgwLjFsMCA0Ny45LTY0IDAgMC00Ny45YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTM1MiA0MDBsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM2wwLTUwLjZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCA1MC42Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjN6XCJdXG59O1xudmFyIGZhU2Npc3NvcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2Npc3NvcnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5OTg0LCA5OTg2LCA5OTg4LCBcImN1dFwiXSwgXCJmMGM0XCIsIFwiTTE5MiAyNTZsLTM5LjUgMzkuNWMtMTIuNi00LjktMjYuMi03LjUtNDAuNS03LjUtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJzNTAuMSAxMTIgMTEyIDExMiAxMTItNTAuMSAxMTItMTEyYzAtMTQuMy0yLjctMjcuOS03LjUtNDAuNUw0OTkuMiA3Ni44YzcuMS03LjEgNy4xLTE4LjUgMC0yNS42LTI4LjMtMjguMy03NC4xLTI4LjMtMTAyLjQgMEwyNTYgMTkyIDIxNi41IDE1Mi41YzQuOS0xMi42IDcuNS0yNi4yIDcuNS00MC41IDAtNjEuOS01MC4xLTExMi0xMTItMTEyUzAgNTAuMSAwIDExMiA1MC4xIDIyNCAxMTIgMjI0YzE0LjMgMCAyNy45LTIuNyA0MC41LTcuNUwxOTIgMjU2em05Ny45IDk3LjlMMzk2LjggNDYwLjhjMjguMyAyOC4zIDc0LjEgMjguMyAxMDIuNCAwIDcuMS03LjEgNy4xLTE4LjUgMC0yNS42bC0xNDUuMy0xNDUuMy02NCA2NHpNNjQgMTEyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQ4IDI0MGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJdXG59O1xudmFyIGZhQ3V0ID0gZmFTY2lzc29ycztcbnZhciBmYUJ1ZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYxODhcIiwgXCJNMTkyIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAzLjZjMCAxNS43LTEyLjcgMjguNC0yOC40IDI4LjRsLTEzNS4xIDBjLTE1LjcgMC0yOC40LTEyLjctMjguNC0yOC40bDAtMy42em0zNDUuNiAxMi44YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOGwtOTcuOCA3My4zYzUuMyA4LjkgOS4zIDE4LjcgMTEuOCAyOS4xbDk4LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDMyYzAgMi42LS4xIDUuMy0uMiA3LjlsODMuNCA2Mi41YzE0LjEgMTAuNiAxNyAzMC43IDYuNCA0NC44cy0zMC43IDE3LTQ0LjggNi40bC02My4xLTQ3LjNjLTIzLjIgNDQuMi02Ni41IDc2LjItMTE3LjcgODMuOUwzMTIgMjgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjMwLjJjLTUxLjItNy43LTk0LjUtMzkuNy0xMTcuNy04My45TDgzLjIgNDczLjZjLTE0LjEgMTAuNi0zNC4yIDcuNy00NC44LTYuNHMtNy43LTM0LjIgNi40LTQ0LjhsODMuNC02Mi41Yy0uMS0yLjYtLjItNS4yLS4yLTcuOWwwLTMyLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTguOCAwYzIuNS0xMC40IDYuNS0yMC4yIDExLjgtMjkuMUw0NC44IDE1My42Yy0xNC4xLTEwLjYtMTctMzAuNy02LjQtNDQuOHMzMC43LTE3IDQ0LjgtNi40TDE5MiAxODRjMTIuMy01LjEgMjUuOC04IDQwLThsMTEyIDBjMTQuMiAwIDI3LjcgMi44IDQwIDhsMTA4LjgtODEuNmMxNC4xLTEwLjYgMzQuMi03LjcgNDQuOCA2LjR6XCJdXG59O1xudmFyIGZhQXJyb3dSaWdodEZyb21CcmFja2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXJpZ2h0LWZyb20tYnJhY2tldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic2lnbi1vdXRcIl0sIFwiZjA4YlwiLCBcIk0xNjAgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMzJDNDMgMzIgMCA3NSAwIDEyOEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDB6TTUwMi42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyMjQgMTkyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMTAuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4elwiXVxufTtcbnZhciBmYVNpZ25PdXQgPSBmYUFycm93UmlnaHRGcm9tQnJhY2tldDtcbnZhciBmYUhhbmRIb2xkaW5nSGFuZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctaGFuZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRmN1wiLCBcIk00NjYuOCAxODYuNWw0Mi41LTQyLjUgMzQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMjIzLjYgMTZjLTI5IDAtNTcuMyA5LjMtODAuNyAyNi41TDE2LjMgMTM1LjhjLTE3LjggMTMuMS0yMS42IDM4LjEtOC41IDU1LjlzMzguMSAyMS42IDU1LjkgOC41TDE4My40IDExMiAyOTYgMTEyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC03MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE1Mi4yIDBjMzMuOSAwIDY2LjUtMTMuNSA5MC41LTM3LjV6bS0zNTcuNSAxMzlMNjYuNyAzNjggMzIgMzY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDAwIDI4MCA0MDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6XCJdXG59O1xudmFyIGZhU3Ryb29wd2FmZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Ryb29wd2FmZWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NTFcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMzEyLjYgNjMuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMjU2IDk3LjYgMjIyLjEgNjMuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzMy45IDMzLjktNDUuMyA0NS4zLTU2LjYtNTYuNmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw1Ni42IDU2LjYtNDUuMyA0NS4zLTMzLjktMzMuOWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkw5Ny42IDI1NiA2My43IDI4OS45Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzMuOS0zMy45IDQ1LjMgNDUuMy01Ni42IDU2LjZjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni42LTU2LjYgNDUuMyA0NS4zLTMzLjkgMzMuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMzLjktMzMuOSAzMy45IDMzLjljNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zMy45LTMzLjkgNDUuMy00NS4zIDU2LjYgNTYuNmM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU2LjYtNTYuNiA0NS4zLTQ1LjMgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzMuOS0zMy45IDMzLjktMzMuOWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zMy45IDMzLjktNDUuMy00NS4zIDU2LjYtNTYuNmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC01Ni42IDU2LjYtNDUuMy00NS4zIDMzLjktMzMuOWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpNMTQyLjkgMjU2bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3ptNjcuOSA2Ny45bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3pNMjc4LjYgMjU2bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3ptMjIuNi02Ny45bC00NS4zIDQ1LjMtNDUuMy00NS4zIDQ1LjMtNDUuMyA0NS4zIDQ1LjN6XCJdXG59O1xudmFyIGZhQ2hpbGQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hpbGQnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYxYWVcIiwgXCJNOTYgNjRBNjQgNjQgMCAxIDEgMjI0IDY0IDY0IDY0IDAgMSAxIDk2IDY0em00OCAzMjBsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkw4MCAyODcuOCA1OS4xIDMyMWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwUy00LjUgMzAxLjkgNC45IDI4N2wzOS45LTYzLjNDNjkuNyAxODQgMTEzLjIgMTYwIDE2MCAxNjBzOTAuMyAyNCAxMTUuMiA2My42TDMxNS4xIDI4N2M5LjQgMTUgNC45IDM0LjctMTAgNDQuMXMtMzQuNyA0LjktNDQuMS0xMEwyNDAgMjg3LjggMjQwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTMyIDB6XCJdXG59O1xudmFyIGZhSWNlQ3JlYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWNlLWNyZWFtJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTI3ODQ4XSwgXCJmODEwXCIsIFwiTTMzNS4xIDE2MGMuNi01LjMgLjktMTAuNiAuOS0xNiAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFM0OCA2NC41IDQ4IDE0NGMwIDUuNCAuMyAxMC43IC45IDE2bC0uOSAwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4bDI4OCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0uOSAwek02NCAzMDRMMTY5LjIgNTI5LjVjNC4xIDguOCAxMyAxNC41IDIyLjggMTQuNXMxOC42LTUuNyAyMi44LTE0LjVMMzIwIDMwNCA2NCAzMDR6XCJdXG59O1xudmFyIGZhQ29tcHV0ZXJNb3VzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21wdXRlci1tb3VzZScsXG4gIGljb246IFszODQsIDUxMiwgWzEyODQzMywgXCJtb3VzZVwiXSwgXCJmOGNjXCIsIFwiTTAgMTkybDE2OCAwIDAtMTkyLTggMEM3MS42IDAgMCA3MS42IDAgMTYwbDAgMzJ6bTAgNDhMMCAzNTJjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBsNjQgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTExMi0zODQgMHptMzg0LTQ4bDAtMzJDMzg0IDcxLjYgMzEyLjQgMCAyMjQgMGwtOCAwIDAgMTkyIDE2OCAwelwiXVxufTtcbnZhciBmYU1vdXNlID0gZmFDb21wdXRlck1vdXNlO1xudmFyIGZhRmF1Y2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhdWNldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTAwNVwiLCBcIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgNjQgMTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDIyLjYgMjIuNiAzMiAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwIDAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzYuMSAwYy0yMC4yIDI5LTUzLjkgNDgtOTEuOSA0OHMtNzEuNy0xOS05MS45LTQ4TDMyIDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDIyLjYtMjIuNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsMTguNyAwIDAtNjQtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA2NCA5NiA2NGw5NiAwelwiXVxufTtcbnZhciBmYUF3YXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2F3YXJkJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTU5XCIsIFwiTTI0NS45LTI1LjljLTEzLjQtOC4yLTMwLjMtOC4yLTQzLjcgMC0yNC40IDE0LjktMzkuNSAxOC45LTY4LjEgMTguMy0xNS43LS40LTMwLjMgOC4xLTM3LjkgMjEuOS0xMy43IDI1LjEtMjQuOCAzNi4yLTQ5LjkgNDkuOS0xMy44IDcuNS0yMi4yIDIyLjItMjEuOSAzNy45IC43IDI4LjYtMy40IDQzLjctMTguMyA2OC4xLTguMiAxMy40LTguMiAzMC4zIDAgNDMuNyAxNC45IDI0LjQgMTguOSAzOS41IDE4LjMgNjguMS0uNCAxNS43IDguMSAzMC4zIDIxLjkgMzcuOSAyMi4xIDEyLjEgMzMuMyAyMi4xIDQ1LjEgNDEuNUw0Mi43IDQ1OC41Yy01LjkgMTEuOS0xLjEgMjYuMyAxMC43IDMyLjJsODYgNDNjMTEuNSA1LjcgMjUuNSAxLjQgMzEuNy05LjhsNTIuOC05NS4xIDUyLjggOTUuMWM2LjIgMTEuMiAyMC4yIDE1LjYgMzEuNyA5LjhsODYtNDNjMTEuOS01LjkgMTYuNy0yMC4zIDEwLjctMzIuMmwtNDguNi05Ny4yYzExLjctMTkuNCAyMy0yOS40IDQ1LjEtNDEuNSAxMy44LTcuNSAyMi4yLTIyLjIgMjEuOS0zNy45LS43LTI4LjYgMy40LTQzLjcgMTguMy02OC4xIDguMi0xMy40IDguMi0zMC4zIDAtNDMuNy0xNC45LTI0LjQtMTguOS0zOS41LTE4LjMtNjguMSAuNC0xNS43LTguMS0zMC4zLTIxLjktMzcuOS0yNS4xLTEzLjctMzYuMi0yNC44LTQ5LjktNDkuOS03LjUtMTMuOC0yMi4yLTIyLjItMzcuOS0yMS45LTI4LjYgLjctNDMuNy0zLjQtNjguMS0xOC4zek0yMjQgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6XCJdXG59O1xudmFyIGZhUGVyc29uRHJvd25pbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWRyb3duaW5nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTQ1XCIsIFwiTTI2NCA4OGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTEzMy45IDY1LjZjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ybDEwLjkgMzIuOGM5LjQgMjguMyAzMy4yIDQ5LjUgNjIuNSA1NS42IDUuNiAxLjIgMTEuMyAxLjggMTcuMSAxLjhsODggMGMxNy4yIDAgMzQuMy0yLjggNTAuNi04LjJsMTE0LjQtMzguMWMxNi44LTUuNiAzNC45IDMuNSA0MC41IDIwLjJzLTMuNSAzNC45LTIwLjIgNDAuNUw0MjMuNyAyMjguNWMtOC40IDIuOC0xNyA1LjEtMjUuNyA2LjlsLTI2LjUgODguM2MtNi4xIDMuNC0xMi4xIDcuMy0xNy45IDExLjctMjIuMSAxNi42LTI5LjEgMTYuNi01MS4yIDAtMjYuMi0xOS43LTU2LjktMzAuMi04Ny44LTMxLjNsMjAuMi02Ny4yYy01MS41LTEwLjctOTMuNS00OC4xLTExMC4yLTk4bC0xMC45LTMyLjhjLTUuNi0xNi44IDMuNS0zNC45IDIwLjItNDAuNXpNNDAzLjQgNDEyLjFDMzc5LjEgNDMwLjMgMzUxLjEgNDQ4IDMyMCA0NDhzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwelwiXVxufTtcbnZhciBmYUNhbWVyYVJvdGF0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYW1lcmEtcm90YXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMGQ4XCIsIFwiTTEzOC43IDk2bDEwLjQtMzEuMkMxNTUuNiA0NS4yIDE3My45IDMyIDE5NC42IDMybDEyMi44IDBjMjAuNyAwIDM5IDEzLjIgNDUuNSAzMi44TDM3My4zIDk2IDQ0OCA5NmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDc0LjcgMHpNOTYgMzA1LjljMCAzLjkgMS40IDcuNyA0IDEwLjZsNDggNTRjNi40IDcuMiAxNy42IDcuMiAyMy45IDBsNDgtNTRjMi42LTIuOSA0LTYuNyA0LTEwLjZsMC0xLjljMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAwYzAtMzkuOCAzMi4yLTcyIDcyLTcyIDQuNCAwIDguNyAuNCAxMi45IDEuMmwzNC45LTM5LjNjLTE0LjYtNi40LTMwLjgtOS45LTQ3LjgtOS45LTY2LjMgMC0xMjAgNTMuNy0xMjAgMTIwbC0yNCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxLjl6bTE5Ni00Ni41Yy0yLjYgMi45LTQgNi43LTQgMTAuNmwwIDEuOWMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGMwIDM5LjgtMzIuMiA3Mi03MiA3Mi00LjQgMC04LjctLjQtMTIuOS0xLjJsLTM0LjkgMzkuM2MxNC43IDYuNCAzMC44IDkuOSA0Ny44IDkuOSA2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEuOWMwLTMuOS0xLjQtNy43LTQtMTAuNmwtNDgtNTRjLTYuNC03LjItMTcuNi03LjItMjMuOSAwbC00OCA1NHpcIl1cbn07XG52YXIgZmFGYWNlR3JpbkhlYXJ0cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4taGVhcnRzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTI1LCBcImdyaW4taGVhcnRzXCJdLCBcImY1ODRcIiwgXCJNMjU2IDUxMmMxNDEuNCAwIDI1Ni0xMTQuNiAyNTYtMjU2IDAtMjMuMy0zLjEtNDUuOS04LjktNjcuMyA1LjUtMTMuNSA4LjktMjguNCA4LjktNDQuNyAwLTUzLTQzLTk2LTk2LTk2bC0yLjkgMGMtMi41IDAtNSAuMS03LjQgLjMtNDIuMS0zMC40LTkzLjgtNDguMy0xNDkuNy00OC4zUzE0OC40IDE3LjkgMTA2LjMgNDguM2MtMi41LS4yLTQuOS0uMy03LjQtLjNMOTYgNDhjLTUzIDAtOTYgNDMtOTYgOTYgMCAxNi4zIDMuNSAzMS4yIDguOSA0NC43LTUuOCAyMS40LTguOSA0NC04LjkgNjcuMyAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2ek0zODYuNyAzMjQuOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgNDA0LjIgMTA1LjcgMzQyLjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMzIyLjkgOTZjMTMuNSAwIDI2LjUgNS40IDM2IDE0LjlsOS4xIDkuMSA5LjEtOS4xYzkuNS05LjUgMjIuNS0xNC45IDM2LTE0LjlsMi45IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCA1My40LTY2LjkgOTUuNy04OSAxMDguMi00LjQgMi41LTkuNiAyLjUtMTQgMC0yMi4xLTEyLjUtODktNTQuOC04OS0xMDguMiAwLTI2LjUgMjEuNS00OCA0OC00OGwyLjkgMHptLTE4OCAxNC45bDkuMSA5LjEgOS4xLTkuMWM5LjUtOS41IDIyLjUtMTQuOSAzNi0xNC45bDIuOSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNTMuNC02Ni45IDk1LjctODkgMTA4LjItNC40IDIuNS05LjYgMi41LTE0IDAtMjIuMS0xMi41LTg5LTU0LjgtODktMTA4LjIgMC0yNi41IDIxLjUtNDggNDgtNDhsMi45IDBjMTMuNSAwIDI2LjUgNS40IDM2IDE0Ljl6XCJdXG59O1xudmFyIGZhR3JpbkhlYXJ0cyA9IGZhRmFjZUdyaW5IZWFydHM7XG52YXIgZmFGaWxlRnJhZ21lbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1mcmFnbWVudCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTY5N1wiLCBcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI0MCAxMjggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyOCAxMTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek0zMiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwelwiXVxufTtcbnZhciBmYVBlcnNvbk1pbGl0YXJ5UmlmbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLW1pbGl0YXJ5LXJpZmxlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNTRiXCIsIFwiTTEyOCAzOWMwLTEzIDEwLTIzLjggMjIuOS0yNC45TDMwMi43IDEuNEMzMTIgLjcgMzIwIDggMzIwIDE3LjRMMzIwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNkwxNTMgNjRjLTEzLjggMC0yNS0xMS4yLTI1LTI1em0xNy42IDU3bDE1Ni44IDBjMSA1LjIgMS42IDEwLjUgMS42IDE2IDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtNS41IC42LTEwLjggMS42LTE2em0yMjggMzY0LjNMMzIwIDM2OS43IDMyMCA0ODBjMCAxLjMtLjEgMi41LS4yIDMuOEwxNDUuNSAyMzQuOWMxNi42LTcuMSAzNC42LTEwLjkgNTMuMy0xMC45bDUwLjQgMGMxNS45IDAgMzEuMyAyLjggNDUuOCA3LjlMMzg5LjkgNjcuN2MtNy43LTQuNC0xMC4zLTE0LjItNS45LTIxLjlzMTQuMi0xMC4zIDIxLjktNS45bDI3LjcgMTZjNy43IDQuNCAxMC4zIDE0LjIgNS45IDIxLjlsLTU1LjUgOTYuMSAxLjYgLjljMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN0wzNjAuNyAyODJjMiAyLjggMy45IDUuOCA1LjcgOC44bDc2LjEgMTI4LjhjMTEuMiAxOSA0LjkgNDMuNS0xNC4xIDU0LjhzLTQzLjUgNC45LTU0LjgtMTQuMXpNMjg4IDUxMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTEwLjMtNTMuNiA5MC42Yy0xMS4yIDE5LTM1LjggMjUuMy01NC44IDE0LjFTLTUuNyA0MzguNyA1LjYgNDE5LjdMODEuNyAyOTAuOGM5LjQtMTUuOCAyMS43LTI5LjMgMzYtNDBMMjk5LjEgNTEwYy0zLjUgMS4zLTcuMiAyLTExLjEgMnpNMjY0IDMyMGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xudmFyIGZhVG9nZ2xlT24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9nZ2xlLW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMjA1XCIsIFwiTTE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OGwxOTIgMGMxMDYgMCAxOTItODYgMTkyLTE5MlM0OTAgNjQgMzg0IDY0TDE5MiA2NHptMTkyIDk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyelwiXVxufTtcbnZhciBmYUx1bmdzVmlydXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbHVuZ3MtdmlydXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImUwNjdcIiwgXCJNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTUxLjNjOS42LTQuOCAyMC41LTcuNSAzMi03LjVzMjIuNCAyLjcgMzIgNy41TDMyMCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDUwLjEgNDUxYzggMTguMyA4LjEgMzkuMiAuMiA1Ny41IDEwLjIgMi4zIDIwLjYgMy41IDMxLjIgMy41IDUyLjIgMCA5NC41LTQyLjMgOTQuNS05NC41bDAtNi4yYzAtMTExLjEtMzYuNy0yMTktMTA0LjQtMzA3TDQyOC45IDQ4LjdjLTguMS0xMC42LTIwLjctMTYuNy0zNC0xNi43LTIzLjcgMC00Mi45IDE5LjItNDIuOSA0Mi45bDAgMTM5LjljMS4yIDIuMiAyLjIgNC42IDMuMSA2LjkgMjYuNC0xMS42IDU4LjMtNi42IDc5LjkgMTVzMjYuNiA1My42IDE1IDc5LjlDNDc3IDMyNy4yIDQ5NiAzNTMuMyA0OTYgMzgzLjhzLTE5IDU2LjctNDUuOSA2Ny4xek0yMjAuOSAyMjEuOGMuOS0yLjQgMi00LjcgMy4xLTYuOWwwLTEzOC41YzAtMjQuNS0xOS45LTQ0LjQtNDQuNC00NC40LTEyLjUgMC0yNC40IDUuMy0zMi44IDE0LjVsLTI2LjQgMjlDNDIuOSAxNjAuOCAwIDI3MS44IDAgMzg3bDAgMzAuNWMwIDUyLjIgNDIuMyA5NC41IDk0LjUgOTQuNSAxMC41IDAgMjEtMS4yIDMxLjItMy41LTcuOS0xOC4zLTcuOC0zOS4zIC4yLTU3LjUtMjYuOS0xMC40LTQ1LjktMzYuNi00NS45LTY3LjFzMTktNTYuNyA0NS45LTY3LjFjLTExLjYtMjYuNC02LjYtNTguMyAxNS03OS45czUzLjYtMjYuNiA3OS45LTE1ek0xNTIgNDA4YzI4LjggMCA0My4yIDM0LjggMjIuOSA1NS4yLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGMyMC40LTIwLjQgNTUuMi01LjkgNTUuMiAyMi45IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0yOC44IDM0LjgtNDMuMiA1NS4yLTIyLjkgOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45Yy0yMC40LTIwLjQtNS45LTU1LjIgMjIuOS01NS4yIDEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy0yOC44IDAtNDMuMi0zNC44LTIyLjktNTUuMiA5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwYy0yMC40IDIwLjQtNTUuMiA1LjktNTUuMi0yMi45IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMjguOC0zNC44IDQzLjItNTUuMiAyMi45LTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjljMjAuNCAyMC40IDUuOSA1NS4yLTIyLjkgNTUuMi0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0em0xMDQtODBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwiXVxufTtcbnZhciBmYVRhYmxlVGVubmlzUGFkZGxlQmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWJsZS10ZW5uaXMtcGFkZGxlLWJhbGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc5NTUsIFwicGluZy1wb25nLXBhZGRsZS1iYWxsXCIsIFwidGFibGUtdGVubmlzXCJdLCBcImY0NWRcIiwgXCJNOTcgMTI3bDY3LjQtNjcuNGMzOC4yLTM4LjIgOTAtNTkuNiAxNDQtNTkuNiAxMTIuNSAwIDIwMy43IDkxLjIgMjAzLjcgMjAzLjYgMCA0Ni40LTE1LjggOTEuMS00NC41IDEyNy0yMy42LTE2LjgtNTIuNC0yNi43LTgzLjUtMjYuNy0zMS4xIDAtNTkuOSA5LjktODMuNCAyNi42TDk3IDEyN3pNMjQwIDQ0OGMwIDkuNyAxIDE5LjEgMi44IDI4LjItMTkuOC01LjItMzgtMTUuNS01Mi43LTMwLjItMTIuMi0xMi4yLTMxLjktMTIuMi00NC4xIDBMOTYuNiA0OTUuNGMtMTAuNiAxMC42LTI1IDE2LjYtNDAgMTYuNi0zMS4yIDAtNTYuNi0yNS4zLTU2LjYtNTYuNiAwLTE1IDYtMjkuNCAxNi42LTQwbDQ5LjQtNDkuNGMxMi4yLTEyLjIgMTIuMi0zMS45IDAtNDQuMS0yMS43LTIxLjctMzMuOS01MS4yLTMzLjktODEuOSAwLTI5LjQgMTEuMS01Ny42IDMxLjEtNzlMMjY2LjYgMzY0LjZDMjQ5LjkgMzg4LjEgMjQwIDQxNi45IDI0MCA0NDh6bTE0NC05NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpcIl1cbn07XG52YXIgZmFQaW5nUG9uZ1BhZGRsZUJhbGwgPSBmYVRhYmxlVGVubmlzUGFkZGxlQmFsbDtcbnZhciBmYVRhYmxlVGVubmlzID0gZmFUYWJsZVRlbm5pc1BhZGRsZUJhbGw7XG52YXIgZmFCb3hlc1BhY2tpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94ZXMtcGFja2luZycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRjN1wiLCBcIk0yMDggMGw4MCAwIDAgNTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTU2IDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEwOC44IDBjOC4yLTE0LjEgMTIuOC0zMC41IDEyLjgtNDhsMC0xNjBjMTAtMTMuNCAxNi0zMCAxNi00OGwwLTMyYzAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNzYgMCAwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek0zMiAzMzZsMzIwIDAgMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhMODAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyOHpNNDggMTkybDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMNDggMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbnZhciBmYVBlcnNvbkNoYWxrYm9hcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWNoYWxrYm9hcmQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1M2RcIiwgXCJNMTkyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0xNzYgNTEybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMzNiAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTQ4IDE5MiAwIDAgMTkyLTE5MiAwIDAtMzItNjQgMCAwIDQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDM2OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0LTEyMi43IDBjLTQ1LjYgMC04OC41IDIxLjYtMTE1LjYgNTguMkwxNC4zIDI2MC45Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTEyIDIzNi43IDExMiA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpcIl1cbn07XG52YXIgZmFEaWNlVHdvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpY2UtdHdvJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbOTg1N10sIFwiZjUyOFwiLCBcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNMzUyIDM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFBcnJvd1JpZ2h0QXJyb3dMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXJpZ2h0LWFycm93LWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs4NjQ0LCBcImV4Y2hhbmdlXCJdLCBcImYwZWNcIiwgXCJNNTAyLjYgMTUwLjZsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0w0MDIuNyAxNjAgMzIgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDk2IDMyIDk2bDM3MC43IDAtNDEuNC00MS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zem0tMzk3LjMgMzUybC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wxMDkuMyAzNTIgNDgwIDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzcwLjcgMCA0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDB6XCJdXG59O1xudmFyIGZhRXhjaGFuZ2UgPSBmYUFycm93UmlnaHRBcnJvd0xlZnQ7XG52YXIgZmFGb290YmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmb290YmFsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzk0NCwgXCJmb290YmFsbC1iYWxsXCJdLCBcImY0NGVcIiwgXCJNMjYxLjEgMjIuNmMtODkgMTgtMTUwLjUgNjMuNC0xOTAgMTIzLjktMjMuMyAzNS42LTM4LjEgNzUuMy00Ni43IDExNS41TDI1MS45IDQ4OS40Yzg5LTE4IDE1MC41LTYzLjQgMTkwLjEtMTIzLjkgMjMuMy0zNS42IDM4LjEtNzUuMyA0Ni43LTExNS41TDI2MS4xIDIyLjZ6bTIzNiAxNjguMWMzLjItNDIuMyAuNy04My4zLTQuOC0xMTguNy00LjQtMjcuOC0yNi44LTQ4LTUzLjEtNTEuNi00My01LjktODIuMi03LjUtMTE3LjgtNS40TDQ5Ny4xIDE5MC42ek0xOTEuNyA0OTcuMUwxNS45IDMyMS40Yy0zLjIgNDIuMy0uNyA4My4zIDQuOCAxMTguNyA0LjQgMjcuOCAyNi44IDQ4IDUzLjEgNTEuNiA0MyA1LjkgODIuMiA3LjUgMTE3LjggNS40ek0yNzEuNSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45elwiXVxufTtcbnZhciBmYUZvb3RiYWxsQmFsbCA9IGZhRm9vdGJhbGw7XG52YXIgZmFUcnVja01vbnN0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stbW9uc3RlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjYzYlwiLCBcIk0zMzYgOTZsNDggNjQtMTI4IDAgMC02NCA4MCAwem0xMjggNjRMMzg3LjIgNTcuNkMzNzUuMSA0MS41IDM1Ni4xIDMyIDMzNiAzMkwyMjQgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTYtMTQ0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAxOC4xIDEwLjEgMzMuOSAyNC45IDQyLjEtLjUgNS43IDEuMSAxMS42IDQuNyAxNi40LTMuNyA2LjktNi44IDE0LjEtOSAyMS44LTExLjYgMS43LTIwLjYgMTEuNy0yMC42IDIzLjhsMCAxNmMwIDEyLjEgOC45IDIyLjEgMjAuNiAyMy44IDIuMiA3LjYgNS4zIDE0LjkgOSAyMS44LTcgOS40LTYuMyAyMi44IDIuMyAzMS4zbDExLjMgMTEuM2M4LjYgOC42IDIxLjkgOS4zIDMxLjMgMi4yIDYuOCAzLjcgMTQuMSA2LjggMjEuNyA5IDEuNyAxMS42IDExLjcgMjAuNiAyMy44IDIwLjZsMTYgMGMxMi4xIDAgMjIuMS04LjkgMjMuOC0yMC42IDcuNi0yLjIgMTQuOS01LjMgMjEuNy05IDkuNCA3IDIyLjggNi4zIDMxLjMtMi4ybDExLjMtMTEuM2M4LjYtOC42IDkuMy0yMS45IDIuMy0zMS4zIDMuNy02LjggNi44LTE0LjEgOS0yMS43IDExLjYtMS43IDIwLjYtMTEuNyAyMC42LTIzLjhsMC0xNmMwLTEyLjEtOC45LTIyLjEtMjAuNi0yMy44LTIuMi03LjYtNS4zLTE0LjktOS0yMS43IDIuNC0zLjIgMy45LTYuOCA0LjUtMTAuNWwxMTQuMiAwYy42IDMuNyAyLjEgNy4zIDQuNSAxMC41LTMuNyA2LjktNi44IDE0LjEtOSAyMS44LTExLjYgMS43LTIwLjYgMTEuNy0yMC42IDIzLjhsMCAxNmMwIDEyLjEgOC45IDIyLjEgMjAuNiAyMy44IDIuMiA3LjYgNS4zIDE0LjkgOSAyMS44LTcgOS40LTYuMyAyMi44IDIuMiAzMS4zbDExLjMgMTEuM2M4LjUgOC42IDIxLjkgOS4zIDMxLjMgMi4yIDYuOCAzLjcgMTQuMSA2LjggMjEuNyA5IDEuNyAxMS42IDExLjcgMjAuNiAyMy44IDIwLjZsMTYgMGMxMi4xIDAgMjIuMS04LjkgMjMuOC0yMC42IDcuNi0yLjIgMTQuOS01LjMgMjEuOC05IDkuNCA3IDIyLjggNi4zIDMxLjMtMi4ybDExLjMtMTEuM2M4LjYtOC42IDkuMy0yMS45IDIuMi0zMS4zIDMuNy02LjggNi44LTE0LjEgOS0yMS43IDExLjYtMS43IDIwLjYtMTEuNyAyMC42LTIzLjhsMC0xNmMwLTEyLjEtOC45LTIyLjEtMjAuNi0yMy44LTIuMi03LjYtNS4zLTE0LjktOS0yMS43IDMuNi00LjggNS4yLTEwLjcgNC43LTE2LjQgMTQuOC04LjIgMjQuOS0yMy45IDI0LjktNDIuMWwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek0xMjggMzM2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMjcyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6XCJdXG59O1xudmFyIGZhQXN0ZXJpc2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXN0ZXJpc2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMDAzMywgNjE1NDVdLCBcIjJhXCIsIFwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTY4LjYgMTQ0LTgzLjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43czMuNiAzNC45LTExLjcgNDMuN0wyODggMjU2IDQzMiAzMzkuMWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43cy0yOC40IDIwLjYtNDMuNyAxMS43TDI1NiAzMTEuNCAyNTYgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTY4LjYtMTQ0IDgzLjFjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN1MuNyAzNDggMTYgMzM5LjFMMTYwIDI1NiAxNiAxNzIuOUMuNyAxNjQtNC41IDE0NC41IDQuMyAxMjkuMVMzMi43IDEwOC42IDQ4IDExNy40TDE5MiAyMDAuNiAxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xudmFyIGZhQmF0dGVyeUZ1bGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmF0dGVyeS1mdWxsJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4MjY3LCBcImJhdHRlcnlcIiwgXCJiYXR0ZXJ5LTVcIl0sIFwiZjI0MFwiLCBcIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwzMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMzA0IDB6XCJdXG59O1xudmFyIGZhQmF0dGVyeSA9IGZhQmF0dGVyeUZ1bGw7XG52YXIgZmFCYXR0ZXJ5NSA9IGZhQmF0dGVyeUZ1bGw7XG52YXIgZmFDaGlsZERyZXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoaWxkLWRyZXNzJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlNTljXCIsIFwiTTIyNCA2NEE2NCA2NCAwIDEgMCA5NiA2NCA2NCA2NCAwIDEgMCAyMjQgNjR6TTg4IDQwMGwwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCAxNiAwIDAgODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTgwIDE3LjggMGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMWwtMzEuMS05My40IDI4LjcgMzcuOGMxMC43IDE0LjEgMzAuOCAxNi44IDQ0LjggNi4yczE2LjgtMzAuNyA2LjItNDQuOEwyNTQuNiAyMDdjLTIyLjQtMjkuNi01Ny41LTQ3LTk0LjYtNDdzLTcyLjIgMTcuNC05NC42IDQ3TDYuNSAyODQuN2MtMTAuNyAxNC4xLTcuOSAzNC4yIDYuMiA0NC44czM0LjIgNy45IDQ0LjgtNi4yTDg2LjIgMjg1LjUgNTUgMzc4LjlDNTEuNiAzODkuMyA1OS4zIDQwMCA3MC4yIDQwMEw4OCA0MDB6XCJdXG59O1xudmFyIGZhRmFjZUtpc3NCZWFtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2Uta2lzcy1iZWFtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTM3LCBcImtpc3MtYmVhbVwiXSwgXCJmNTk3XCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgMjg4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4elwiXVxufTtcbnZhciBmYUtpc3NCZWFtID0gZmFGYWNlS2lzc0JlYW07XG52YXIgZmFUcmFzaENhbkFycm93VXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhc2gtY2FuLWFycm93LXVwJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0cmFzaC1yZXN0b3JlLWFsdFwiXSwgXCJmODJhXCIsIFwiTTE2Ny4xLTE2bDExMy45IDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlMMzIwIDMyIDQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsOTYgMCA4LjctMjYuMUMxNDEuMS03LjIgMTUzLjMtMTYgMTY3LjEtMTZ6TTMyIDE0NGwzODQgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzA0em0yMDkgNzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC03MiA3MmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMxLTMxIDAgMTAyLjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMi4xIDMxIDMxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzItNzJ6XCJdXG59O1xudmFyIGZhVHJhc2hSZXN0b3JlQWx0ID0gZmFUcmFzaENhbkFycm93VXA7XG52YXIgZmFGb250ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwMzFcIiwgXCJNMjg1LjEgNTAuN0MyNzkuOSAzOS4zIDI2OC41IDMyIDI1NiAzMnMtMjMuOSA3LjMtMjkuMSAxOC43TDU5LjUgNDE2IDQ4IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02LjEgMCAyMi00OCAyMDguMyAwIDIyIDQ4LTYuMSAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTExLjUgMC0xNjcuNC0zNjUuM3pNMzMwLjggMzA0TDE4MS4yIDMwNCAyNTYgMTQwLjggMzMwLjggMzA0elwiXVxufTtcbnZhciBmYUJvcmVIb2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvcmUtaG9sZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRjM1wiLCBcIk0yNTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMzIuNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtMjMuNy0xMi45LTQ0LjQtMzItNTUuNEwyODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTAgMzg0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTQ0YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzE0NCAzODEuOSAxNDQgMzIwbDAtMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDM4NHpcIl1cbn07XG52YXIgZmFWaXJ1c0NvdmlkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpcnVzLWNvdmlkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNGE4XCIsIFwiTTE5MiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgMzMuNmMzMC43IDQuMiA1OC44IDE2LjMgODIuMyAzNC4xTDM4Ni4xIDkyIDM3NC44IDgwLjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw1Ni42IDU2LjZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMTEuMy0xMS4zLTIzLjggMjMuOGMxNy45IDIzLjUgMjkuOSA1MS43IDM0LjEgODIuM2wzMy42IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNi0zMy42IDBjLTQuMiAzMC43LTE2LjMgNTguOC0zNC4xIDgyLjNsMjMuOCAyMy44IDExLjMtMTEuM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU2LjYgNTYuNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwxMS4zLTExLjMtMjMuOC0yMy44Yy0yMy41IDE3LjktNTEuNyAyOS45LTgyLjMgMzQuMWwwIDMzLjYgMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwIDAtMzMuNmMtMzAuNy00LjItNTguOC0xNi4zLTgyLjMtMzQuMWwtMjMuOCAyMy44IDExLjMgMTEuM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDQ2LjcgNDA4LjdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxMS4zIDExLjMgMjMuOC0yMy44Qzk3LjkgMzM4LjggODUuOCAzMTAuNyA4MS42IDI4MGwtMzMuNiAwIDAgMTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCAzMDkuMyAwIDI5NmwwLTgwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNiAzMy42IDBjNC4yLTMwLjcgMTYuMy01OC44IDM0LjEtODIuM0w5MiAxMjUuOSA4MC42IDEzNy4yYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU2LjYtNTYuNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMTI1LjkgOTIgMTQ5LjcgMTE1LjdjMjMuNS0xNy45IDUxLjctMjkuOSA4Mi4zLTM0LjFsMC0zMy42LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0zMiAyMDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbnZhciBmYUZpbGVQZGYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1wZGYnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYxYzFcIiwgXCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw4MCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE3NiAwIDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTI0MCAzODBjLTExIDAtMjAgOS0yMCAyMGwwIDEyOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTI4IDEyIDBjMzMuMSAwIDYwLTI2LjkgNjAtNjBzLTI2LjktNjAtNjAtNjBsLTMyIDB6bTMyIDgwbC0xMiAwIDAtNDAgMTIgMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjB6bTk2LTgwYy0xMSAwLTIwIDktMjAgMjBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwbDMyIDBjMjguNyAwIDUyLTIzLjMgNTItNTJsMC02NGMwLTI4LjctMjMuMy01Mi01Mi01MmwtMzIgMHptMjAgMTI4bDAtODggMTIgMGM2LjYgMCAxMiA1LjQgMTIgMTJsMCA2NGMwIDYuNi01LjQgMTItMTIgMTJsLTEyIDB6bTg4LTEwOGwwIDEyOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQ0IDI4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC0yOCAwIDAtMjQgMjggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQ4IDBjLTExIDAtMjAgOS0yMCAyMHpcIl1cbn07XG52YXIgZmFMYW5ndWFnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYW5ndWFnZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjFhYlwiLCBcIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05LjYgMC04LjQgMjMuMWMtMTYuNCA0NS4yLTQxLjEgODYuNS03Mi4yIDEyMiAxNC4yIDguOCAyOSAxNi42IDQ0LjQgMjMuNWw1MC40IDIyLjQgNjIuMi0xNDBjNS4xLTExLjYgMTYuNi0xOSAyOS4yLTE5czI0LjEgNy40IDI5LjIgMTlsMTI4IDI4OGM3LjIgMTYuMi0uMSAzNS4xLTE2LjIgNDIuMnMtMzUuMS0uMS00Mi4yLTE2LjJsLTIwLTQ1LTE1Ny41IDAtMjAgNDVjLTcuMiAxNi4yLTI2LjEgMjMuNC00Mi4yIDE2LjJzLTIzLjQtMjYuMS0xNi4yLTQyLjJsMzkuOC04OS41LTUwLjQtMjIuNGMtMjMtMTAuMi00NS0yMi40LTY1LjgtMzYuNC0yMS4zIDE3LjItNDQuNiAzMi4yLTY5LjUgNDQuN0w3OC4zIDM4MC42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDM0LjUtMTcuM2MxNi4zLTguMiAzMS44LTE3LjcgNDYuNC0yOC4zLTEzLjgtMTIuNy0yNi44LTI2LjQtMzguOS00MC45TDgxLjYgMjI0LjdjLTExLjMtMTMuNi05LjUtMzMuOCA0LjEtNDUuMXMzMy44LTkuNSA0NS4xIDQuMWwxMC4yIDEyLjJjMTEuNSAxMy45IDI0LjEgMjYuOCAzNy40IDM4LjcgMjcuNS0zMC40IDQ5LjItNjYuMSA2My41LTEwNS40bC41LTEuMi0yMTAuMyAwQzE0LjMgMTI4IDAgMTEzLjcgMCA5NlMxNC4zIDY0IDMyIDY0bDk2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDE2IDI3MC44TDM2NS43IDM4NCA0NjYuMyAzODQgNDE2IDI3MC44elwiXVxufTtcbnZhciBmYVNoaWVsZEhhbHZlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaGllbGQtaGFsdmVkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzaGllbGQtYWx0XCJdLCBcImYzZWRcIiwgXCJNMjU2IDBjNC42IDAgOS4yIDEgMTMuNCAyLjlMNDU3LjggODIuOGMyMiA5LjMgMzguNCAzMSAzOC4zIDU3LjItLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yLTE2LjcgOC0zNi4xIDgtNTIuOCAwLTE3Mi40LTgyLjUtMjEzLjEtMjY0LTIxMy42LTM2My4yLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjkgMSAyNTEuNCAwIDI1NiAwem0wIDY2LjhsMCAzNzguMWMxMzgtNjYuOCAxNzUuMS0yMTQuOCAxNzYtMzAzLjRsLTE3Ni03NC42IDAgMHpcIl1cbn07XG52YXIgZmFTaGllbGRBbHQgPSBmYVNoaWVsZEhhbHZlZDtcbnZhciBmYUNhcmV0VXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyZXQtdXAnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYwZDhcIiwgXCJNMTQwLjMgMTM1LjJjMTIuNi0xMC4zIDMxLjEtOS41IDQyLjggMi4ybDEyOCAxMjhjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzAxLjQgMzIwIDI4OC41IDMyMGwtMjU2IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhTLjcgMjc0LjUgOS45IDI2NS40bDEyOC0xMjggMi40LTIuMnpcIl1cbn07XG52YXIgZmFGaWxlUGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtcGVuJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4MjIxLCBcImZpbGUtZWRpdFwiXSwgXCJmMzFjXCIsIFwiTTEyOC4xIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE0Ni4yIDAgMTAuOS01NC41YzQuMy0yMS43IDE1LTQxLjYgMzAuNi01Ny4ybDEzMi4yLTEzMi4yIDAtOTcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzMjIuOCAxOC43QzMxMC44IDYuNyAyOTQuNSAwIDI3Ny42IDBMMTI4LjEgMHpNMzg5LjYgMTc2bC05My41IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOTMuNSAxMTcuNSAxMTcuNXpNMzMyLjMgNDY2LjlsLTExLjkgNTkuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42IDEgMCAxLjktLjEgMi45LS4zbDU5LjYtMTEuOWMxMi40LTIuNSAyMy44LTguNiAzMi43LTE3LjVsMTE4LjktMTE4LjktODAtODAtMTE4LjkgMTE4LjljLTguOSA4LjktMTUgMjAuMy0xNy41IDMyLjd6bTI2Ny44LTEyM2MyMi4xLTIyLjEgMjIuMS01Ny45IDAtODBzLTU3LjktMjIuMS04MCAwbC0yOC44IDI4LjggODAgODAgMjguOC0yOC44elwiXVxufTtcbnZhciBmYUZpbGVFZGl0ID0gZmFGaWxlUGVuO1xudmFyIGZhUGVyc29uQmlraW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1iaWtpbmcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg2OTIsIFwiYmlraW5nXCJdLCBcImY4NGFcIiwgXCJNMzY4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjcuMiA2NGwtNjEuOC00OC44Yy0xNy4zLTEzLjYtNDEuNy0xMy44LTU5LjEtLjNsLTgzLjEgNjQuMmMtMzAuNyAyMy44LTI4LjUgNzAuOCA0LjMgOTEuNkwyNTYgMzA1LjEgMjU2IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTAuNy01LjMtMjAuNy0xNC4yLTI2LjZMMjYzIDIzMi45IDMyMy4zIDE4NC40IDM2NCAyMTdjNS43IDQuNSAxMi43IDcgMjAgN2w2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi44IDB6TTExMiA1MTJhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0zNTIgMGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6XCJdXG59O1xudmFyIGZhQmlraW5nID0gZmFQZXJzb25CaWtpbmc7XG52YXIgZmFCb29rT3BlblJlYWRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rLW9wZW4tcmVhZGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJib29rLXJlYWRlclwiXSwgXCJmNWRhXCIsIFwiTTI1NiAxNTJhODggODggMCAxIDAgMC0xNzYgODggODggMCAxIDAgMCAxNzZ6bTAgMjk4LjdsMC0xNDkuM2MxNi4zLTYuOCAzMi45LTEzLjcgNDkuNy0yMC43IDM5LTE2LjIgODAuOC0yNC42IDEyMy4xLTI0LjZsMTkuMiAwIDAgMTYwLTE5LjIgMGMtNTkuMSAwLTExNy43IDExLjctMTcyLjMgMzQuNWwtLjUgLjJ6TTI1NiAyMzJsLTI1LjEtMTAuNUMxODQuMSAyMDIgMTMzLjkgMTkyIDgzLjIgMTkyTDQ4IDE5MmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUuMiAwYzUwLjcgMCAxMDAuOSAxMCAxNDcuNyAyOS41bDEyLjggNS4zYzcuOSAzLjMgMTYuNyAzLjMgMjQuNiAwbDEyLjgtNS4zYzQ2LjgtMTkuNSA5Ny0yOS41IDE0Ny43LTI5LjVsMzUuMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zNS4yIDBjLTUwLjcgMC0xMDAuOSAxMC0xNDcuNyAyOS41TDI1NiAyMzJ6XCJdXG59O1xudmFyIGZhQm9va1JlYWRlciA9IGZhQm9va09wZW5SZWFkZXI7XG52YXIgZmFHbGFzc1dhdGVyRHJvcGxldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbGFzcy13YXRlci1kcm9wbGV0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlNGY1XCIsIFwiTTMyIDBDMjMuMSAwIDE0LjYgMy43IDguNiAxMC4yUy0uNiAyNS40IC4xIDM0LjNMMjguOSA0MzcuN2MzIDQxLjkgMzcuOCA3NC4zIDc5LjggNzQuM2wxNjYuNiAwYzQyIDAgNzYuOC0zMi40IDc5LjgtNzQuM0wzODMuOSAzNC4zYy42LTguOS0yLjQtMTcuNi04LjUtMjQuMVMzNjAuOSAwIDM1MiAwTDMyIDB6TTgzIDI5Ny41TDY2LjQgNjQgMzE3LjYgNjQgMzAxIDI5Ny41IDI4OCAzMDRjLTIwLjEgMTAuMS00My45IDEwLjEtNjQgMHMtNDMuOS0xMC4xLTY0IDAtNDMuOSAxMC4xLTY0IDBsLTEzLTYuNXpNMjU2IDE5NmMwLTI0LTMzLjctNzAuMS01Mi4yLTkzLjUtNi4xLTcuNy0xNy41LTcuNy0yMy42IDAtMTguNSAyMy40LTUyLjIgNjkuNS01Mi4yIDkzLjUgMCAzMy4xIDI4LjcgNjAgNjQgNjBzNjQtMjYuOSA2NC02MHpcIl1cbn07XG52YXIgZmFUb3dlckJyb2FkY2FzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b3dlci1icm9hZGNhc3QnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImJyb2FkY2FzdC10b3dlclwiXSwgXCJmNTE5XCIsIFwiTTg3LjkgMTEuNWMtMTEuMy02LjktMjYuMS0zLjItMzMgOC4xLTI0LjggNDEtMzkgODkuMS0zOSAxNDAuNHMxNC4yIDk5LjQgMzkgMTQwLjRjNi45IDExLjMgMjEuNiAxNSAzMyA4LjFzMTUtMjEuNiA4LjEtMzNDNzUuNyAyNDEuOSA2NCAyMDIuMyA2NCAxNjBTNzUuNyA3OC4xIDk2LjEgNDQuNGM2LjktMTEuMyAzLjItMjYuMS04LjEtMzN6bTQwMC4xIDBjLTExLjMgNi45LTE1IDIxLjYtOC4xIDMzIDIwLjQgMzMuNyAzMi4xIDczLjMgMzIuMSAxMTUuNnMtMTEuNyA4MS45LTMyLjEgMTE1LjZjLTYuOSAxMS4zLTMuMiAyNi4xIDguMSAzM3MyNi4xIDMuMiAzMy04LjFjMjQuOC00MSAzOS04OS4xIDM5LTE0MC40UzU0NS44IDYwLjYgNTIxIDE5LjZjLTYuOS0xMS4zLTIxLjYtMTUtMzMtOC4xek0zMjAgMjE1LjRjMTkuMS0xMS4xIDMyLTMxLjcgMzItNTUuNCAwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NGMwIDIzLjcgMTIuOSA0NC40IDMyIDU1LjRMMjU2IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjY0LjZ6TTE4MC4yIDkxYzcuMi0xMS4yIDMuOS0yNi03LjItMzMuMnMtMjYtMy45LTMzLjIgNy4yYy0xNy42IDI3LjQtMjcuOCA2MC0yNy44IDk1czEwLjIgNjcuNiAyNy44IDk1YzcuMiAxMS4yIDIyIDE0LjQgMzMuMiA3LjJzMTQuNC0yMiA3LjItMzMuMmMtMTIuOC0xOS45LTIwLjItNDMuNi0yMC4yLTY5czcuNC00OS4xIDIwLjItNjl6TTQzNi4yIDY1Yy03LjItMTEuMi0yMi0xNC40LTMzLjItNy4ycy0xNC40IDIyLTcuMiAzMy4yYzEyLjggMTkuOSAyMC4yIDQzLjYgMjAuMiA2OXMtNy40IDQ5LjEtMjAuMiA2OWMtNy4yIDExLjItMy45IDI2IDcuMiAzMy4yczI2IDMuOSAzMy4yLTcuMmMxNy42LTI3LjQgMjcuOC02MCAyNy44LTk1cy0xMC4yLTY3LjYtMjcuOC05NXpcIl1cbn07XG52YXIgZmFCcm9hZGNhc3RUb3dlciA9IGZhVG93ZXJCcm9hZGNhc3Q7XG52YXIgZmFNaW5pbWl6ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtaW5pbWl6ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY29tcHJlc3MtYXJyb3dzLWFsdFwiXSwgXCJmNzhjXCIsIFwiTTQ1NiAyMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJTMzIyLjEgMzIuMiAzMjkgMzlsNDAgNDAgNzMuNC03My40QzQ0NiAyIDQ1MC45IDAgNDU2IDBzMTAgMiAxMy43IDUuN2wzNi43IDM2LjdDNTEwIDQ2IDUxMiA1MC45IDUxMiA1NnMtMiAxMC01LjcgMTMuN0w0MzMgMTQzIDQ3MyAxODNjNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMlM0NjUuNyAyMjQgNDU2IDIyNHptMCA2NGM5LjcgMCAxOC41IDUuOCAyMi4yIDE0LjhzMS43IDE5LjMtNS4yIDI2LjJsLTQwIDQwIDczLjQgNzMuNGMzLjYgMy42IDUuNyA4LjUgNS43IDEzLjdzLTIgMTAtNS43IDEzLjdsLTM2LjcgMzYuN0M0NjYgNTEwIDQ2MS4xIDUxMiA0NTYgNTEycy0xMC0yLTEzLjctNS43TDM2OSA0MzMgMzI5IDQ3M2MtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMyODggNDY1LjcgMjg4IDQ1NmwwLTE0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNDQgMHptLTI1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTQwLTQwLTczLjQgNzMuNEM2NiA1MTAgNjEuMSA1MTIgNTYgNTEycy0xMC0yLTEzLjctNS43TDUuNyA0NjkuN0MyIDQ2NiAwIDQ2MS4xIDAgNDU2czItMTAgNS43LTEzLjdMNzkgMzY5IDM5IDMyOWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlM0Ni4zIDI4OCA1NiAyODhsMTQ0IDB6TTU2IDIyNGMtOS43IDAtMTguNS01LjgtMjIuMi0xNC44UzMyLjIgMTg5LjkgMzkgMTgzTDc5IDE0MyA1LjcgNjkuN0MyIDY2IDAgNjEuMSAwIDU2UzIgNDYgNS43IDQyLjNMNDIuMyA1LjdDNDYgMiA1MC45IDAgNTYgMFM2NiAyIDY5LjcgNS43TDE0MyA3OSAxODMgMzljNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMyMjQgNDYuMyAyMjQgNTZsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRMNTYgMjI0elwiXVxufTtcbnZhciBmYUNvbXByZXNzQXJyb3dzQWx0ID0gZmFNaW5pbWl6ZTtcbnZhciBmYUFycm93UmlnaHRUb0NpdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctcmlnaHQtdG8tY2l0eScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRiM1wiLCBcIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgwIDQ4IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDE2em02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0zNTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE3Ni04MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek01MTIgMzM2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE1MyAxNjdsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwelwiXVxufTtcbnZhciBmYUxhcHRvcE1lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFwdG9wLW1lZGljYWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY4MTJcIiwgXCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDAtNjQgMCAwLTI0MC0zODQgMCAwIDI0MC02NCAwIDAtMjQwek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjIgMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODggMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwelwiXVxufTtcbnZhciBmYUJyZWFkU2xpY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJlYWQtc2xpY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3ZWNcIiwgXCJNNjQgNDMybDAtMTc2Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIxNi41IDUxMi0yMTYuNSA1MTIgMCAwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjg4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4elwiXVxufTtcbnZhciBmYUdsb2JlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dsb2JlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3NzYwXSwgXCJmMGFjXCIsIFwiTTM1MS45IDI4MGwtMTkwLjkgMGMyLjkgNjQuNSAxNy4yIDEyMy45IDM3LjUgMTY3LjQgMTEuNCAyNC41IDIzLjcgNDEuOCAzNS4xIDUyLjQgMTEuMiAxMC41IDE4LjkgMTIuMiAyMi45IDEyLjJzMTEuNy0xLjcgMjIuOS0xMi4yYzExLjQtMTAuNiAyMy43LTI4IDM1LjEtNTIuNCAyMC4zLTQzLjUgMzQuNi0xMDIuOSAzNy41LTE2Ny40ek0xNjAuOSAyMzJsMTkwLjkgMEMzNDkgMTY3LjUgMzM0LjcgMTA4LjEgMzE0LjQgNjQuNiAzMDMgNDAuMiAyOTAuNyAyMi44IDI3OS4zIDEyLjIgMjY4LjEgMS43IDI2MC40IDAgMjU2LjQgMHMtMTEuNyAxLjctMjIuOSAxMi4yYy0xMS40IDEwLjYtMjMuNyAyOC0zNS4xIDUyLjQtMjAuMyA0My41LTM0LjYgMTAyLjktMzcuNSAxNjcuNHptLTQ4IDBDMTE2LjQgMTQ2LjQgMTM4LjUgNjYuOSAxNzAuOCAxNC43IDc4LjcgNDcuMyAxMC45IDEzMS4yIDEuNSAyMzJsMTExLjQgMHpNMS41IDI4MGM5LjQgMTAwLjggNzcuMiAxODQuNyAxNjkuMyAyMTcuMy0zMi4zLTUyLjItNTQuNC0xMzEuNy01Ny45LTIxNy4zTDEuNSAyODB6bTM5OC40IDBjLTMuNSA4NS42LTI1LjYgMTY1LjEtNTcuOSAyMTcuMyA5Mi4xLTMyLjcgMTU5LjktMTE2LjUgMTY5LjMtMjE3LjNsLTExMS40IDB6bTExMS40LTQ4QzUwMS45IDEzMS4yIDQzNC4xIDQ3LjMgMzQyIDE0LjcgMzc0LjMgNjYuOSAzOTYuNCAxNDYuNCAzOTkuOSAyMzJsMTExLjQgMHpcIl1cbn07XG52YXIgZmFGb2xkZXJNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmb2xkZXItbWludXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2NWRcIiwgXCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NHpNMTg0IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6XCJdXG59O1xudmFyIGZhTWFza0ZhY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFzay1mYWNlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlMWQ3XCIsIFwiTTMyMCA2NGMtMjcuMiAwLTUzLjggOC03Ni40IDIzLjFsLTM3LjEgMjQuOGMtMTUuOCAxMC41LTM0LjMgMTYuMS01My4zIDE2LjFMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDc4LjdjMCA2Mi42IDQ1LjIgMTE2IDEwNyAxMjYuM2w5Ny45IDE2LjNjMzMgMjIgNzIuNiAzNC43IDExNS4xIDM0LjdzODIuMi0xMi44IDExNS4xLTM0LjdMNTMzIDM5Ni45YzYxLjctMTAuMyAxMDctNjMuNyAxMDctMTI2LjNsMC03OC43YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04OS4yIDBjLTE5IDAtMzcuNS01LjYtNTMuMy0xNi4xTDM5Ni40IDg3LjFDMzczLjggNzIgMzQ3LjIgNjQgMzIwIDY0ek0xMzUuOSAzMzYuOWwtMTguNC0zLjFDODYuNiAzMjguNyA2NCAzMDIgNjQgMjcwLjdsMC03OC43IDQ4IDAgMCA0OGMwIDM1IDguNiA2Ny45IDIzLjkgOTYuOXptMzg2LjYtMy4xbC0xOC40IDMuMUM1MTkuNCAzMDcuOSA1MjggMjc1IDUyOCAyNDBsMC00OCA0OCAwIDAgNzguN2MwIDMxLjMtMjIuNiA1OC01My41IDYzLjF6TTE5MiAyMzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNTYgNTZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYUJvbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9uZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU1Y1wiLCBcIk00NDguNSAzODRjMCA0MS41LTEzLjEgNzkuOS0zNS41IDExMS4zLTcuOSAxMS4xLTIxLjIgMTYuNy0zNC44IDE2LjdsLTI0My4zIDBjLTEzLjcgMC0yNi45LTUuNi0zNC44LTE2LjctMjIuNC0zMS40LTM1LjUtNjkuOC0zNS41LTExMS4zIDAtNzEuMSAzOC42LTEzMy4xIDk2LTE2Ni4zbDAtMTUzLjdjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTMuN2MxNC4yIDguMiAyNy4yIDE4LjIgMzguOCAyOS42bDM5LjMtMzkuMy03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNiAxNiAzMiAzMiA0OCA0OCA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03LTctNDMuMyA0My4zYzE3LjMgMjguOSAyNy4zIDYyLjYgMjcuMyA5OC44ek0yODguNSA2NGwtNjQgMCAwIDE5MC42LTMyIDE4LjVjLTE5LjUgMTEuMy0zNS43IDI3LjUtNDYuOSA0Ni45bDIyMS44IDBjLTExLjItMTkuNC0yNy40LTM1LjYtNDYuOS00Ni45bC0zMi0xOC41IDAtMTkwLjZ6XCJdXG59O1xudmFyIGZhUm9hZEJyaWRnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb2FkLWJyaWRnZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU2M1wiLCBcIk0zMiAzMmwyMDggMCAwIDY0LTI0IDAgMCA2NCAyNCAwIDAgMTI5LjNjLTQ1LjQgNy42LTgwIDQ3LjEtODAgOTQuN2wwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk0YzAtMzguOC0yNi40LTcyLjYtNjQtODJsMC0xMTIgNDAgMCAwLTY0LTggMEMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJ6TTg4IDk2bDAgNjQgODAgMCAwLTY0LTgwIDB6TTMzNiAzMmw3MiAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDcyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTcyIDAgMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTcyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em05NiAxNjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYUFycm93VXA5MSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC05LTEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNvcnQtbnVtZXJpYy11cC1hbHRcIl0sIFwiZjg4N1wiLCBcIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTM2NS4xIDIwNi42Yy05LjYgMTQuOC01LjQgMzQuNiA5LjQgNDQuM3MzNC42IDUuNCA0NC4zLTkuNGw0Mi4xLTY0LjljMTIuNC0xOS4yIDE5LjEtNDEuNiAxOS4xLTY0LjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzNi4xIDIzLjkgNjYuNyA1Ni44IDc2LjZsLTExLjcgMTh6TTM3NiAxMTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDIuNyAxODJjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yIDAgNTEuNi0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC05NmMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnpcIl1cbn07XG52YXIgZmFTb3J0TnVtZXJpY1VwQWx0ID0gZmFBcnJvd1VwOTE7XG52YXIgZmFNb3VudGFpbkNpdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW91bnRhaW4tY2l0eScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUyZVwiLCBcIk0yNTYuMyA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDggNDggMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzIwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC03Ny44IDBjNC0xNS40IDIuNC0zMi42LTYuNy00OC4yTDM1NC42IDI1NiAzNjguMyAyNTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy02LjEgMC0xMS40IDMuNC0xNC4xIDguNWwtNDIuNi03M2MtNi0xMC4yLTE0LjEtMTgtMjMuMy0yMy4zbDAtNTYuMnptNjQgNjRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYwIDk2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bS0yNzItNjQuN2wtNjUuMSAxMTEuNiAzMy4xIDMzLjEgNDgtNDggNDAuNCAwLTU2LjQtOTYuN3ptLTI3LjYtNDcuOWMxMi4zLTIxLjIgNDIuOS0yMS4yIDU1LjMgMEw0MjAuMyA0NjMuOWMxMi40IDIxLjMtMi45IDQ4LjEtMjcuNiA0OC4xTDU2IDUxMmMtMjQuNyAwLTQwLjEtMjYuOC0yNy42LTQ4LjFMMTk2LjcgMTc1LjR6XCJdXG59O1xudmFyIGZhQXJyb3dEb3duOTEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctZG93bi05LTEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNvcnQtbnVtZXJpYy1kZXNjXCIsIFwic29ydC1udW1lcmljLWRvd24tYWx0XCJdLCBcImY4ODZcIiwgXCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0xMzQuNS0xODRsMTEuNy0xOGMtMzIuOS05LjktNTYuOC00MC41LTU2LjgtNzYuNiAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMjIuOS02LjYgNDUuMy0xOS4xIDY0LjVsLTQyLjEgNjQuOWMtOS42IDE0LjgtMjkuNCAxOS4xLTQ0LjMgOS40cy0xOS4xLTI5LjQtOS40LTQ0LjN6TTQyNCAxMTJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptLTUuMyAxODJjOC4zIDYgMTMuMyAxNS43IDEzLjMgMjZsMCA5NiAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC01MS42LTUuOSAyYy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41bDQ4LTE2YzkuOC0zLjMgMjAuNS0xLjYgMjguOCA0LjR6XCJdXG59O1xudmFyIGZhU29ydE51bWVyaWNEZXNjID0gZmFBcnJvd0Rvd245MTtcbnZhciBmYVNvcnROdW1lcmljRG93bkFsdCA9IGZhQXJyb3dEb3duOTE7XG52YXIgZmFGYWNlR3JpbldpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLXdpZGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MTUsIFwiZ3Jpbi1hbHRcIl0sIFwiZjU4MVwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg2LjcgMzA4LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDM4OC4yIDEwNS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTIwOCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjQgMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0em0xMjggNjRjLTE3LjcgMC0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjQgMzIgMjguNyAzMiA2NC0xNC4zIDY0LTMyIDY0elwiXVxufTtcbnZhciBmYUdyaW5BbHQgPSBmYUZhY2VHcmluV2lkZTtcbnZhciBmYVBvb3AgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncG9vcCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjYxOVwiLCBcIk0yNTQuNCA2LjZjMy41LTQuMyA5LTYuNSAxNC41LTUuNyA0Ni45IDYuMyA4My4xIDQ2LjUgODMuMSA5NS4xIDAgMTEuMi0xLjkgMjItNS41IDMybDUuNSAwYzM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMTkuMS04LjQgMzYuMy0yMS43IDQ4bDEzLjcgMGMzOS44IDAgNzIgMzIuMiA3MiA3MiAwIDIzLjItMTEgNDMuOC0yOCA1NyAzNC4xIDUuNyA2MCAzNS4zIDYwIDcxIDAgMzkuOC0zMi4yIDcyLTcyIDcyTDcyIDUxMmMtMzkuOCAwLTcyLTMyLjItNzItNzIgMC0zNS43IDI1LjktNjUuMyA2MC03MS0xNy0xMy4yLTI4LTMzLjgtMjgtNTcgMC0zOS44IDMyLjItNzIgNzItNzJsMTMuNyAwYy0xMy4zLTExLjctMjEuNy0yOC45LTIxLjctNDggMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYuMiAwYzQ0LjEtLjEgNzkuOC0zNS45IDc5LjgtODAgMC05LjItMS41LTE3LjktNC4zLTI2LjEtMS44LTUuMi0uOC0xMS4xIDIuOC0xNS40elwiXVxufTtcbnZhciBmYURoYXJtYWNoYWtyYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaGFybWFjaGFrcmEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5Nzg0XSwgXCJmNjU1XCIsIFwiTTMzNy44IDIwNS43bDQ4LjYtNDIuNWMxMy44IDE5LjMgMjMuNCA0MS45IDI3LjQgNjYuMmwtNjQuNCA0LjNjLTIuNC0xMC4xLTYuNC0xOS41LTExLjYtMjh6bTE0MC4xIDE5LjVjLTUuMy0zOC44LTIwLjYtNzQuNS00My4yLTEwNC4zbC44LS43QzQ0OSAxMDguNCA0NDkuNyA4Ny42IDQzNyA3NXMtMzMuNC0xMi00NS4yIDEuNWwtLjcgLjhjLTI5LjgtMjIuNi02NS41LTM3LjktMTA0LjMtNDMuMmwuMS0xLjFjMS4yLTE3LjktMTMtMzMtMzAuOS0zM3MtMzIuMSAxNS4yLTMwLjkgMzNsLjEgMS4xYy0zOC44IDUuMy03NC41IDIwLjYtMTA0LjMgNDMuMmwtLjctLjhDMTA4LjQgNjMgODcuNiA2Mi4zIDc1IDc1cy0xMiAzMy40IDEuNSA0NS4ybC44IC43Yy0yMi42IDI5LjgtMzcuOSA2NS41LTQzLjIgMTA0LjNsLTEuMS0uMWMtMTcuOS0xLjItMzMgMTMtMzMgMzAuOXMxNS4yIDMyLjEgMzMgMzAuOWwxLjEtLjFjNS4zIDM4LjggMjAuNiA3NC41IDQzLjIgMTA0LjNsLS44IC43QzYzIDQwMy42IDYyLjMgNDI0LjQgNzUgNDM3czMzLjQgMTIgNDUuMi0xLjVsLjctLjhjMjkuOCAyMi42IDY1LjUgMzcuOSAxMDQuMyA0My4ybC0uMSAxLjFjLTEuMiAxNy45IDEzIDMzIDMwLjkgMzNzMzIuMS0xNS4yIDMwLjktMzNsLS4xLTEuMWMzOC44LTUuMyA3NC41LTIwLjYgMTA0LjMtNDMuMmwuNyAuOGMxMS44IDEzLjUgMzIuNSAxNC4yIDQ1LjIgMS41czEyLTMzLjQtMS41LTQ1LjJsLS44LS43YzIyLjYtMjkuOCAzNy45LTY1LjUgNDMuMi0xMDQuM2wxLjEgLjFjMTcuOSAxLjIgMzMtMTMgMzMtMzAuOXMtMTUuMi0zMi4xLTMzLTMwLjlsLTEuMSAuMXpNMTYzLjIgMTI1LjZjMTkuMy0xMy44IDQxLjktMjMuNCA2Ni4yLTI3LjVsNC4zIDY0LjRjLTEwIDIuNC0xOS41IDYuNC0yOCAxMS42bC00Mi41LTQ4LjZ6bS02NSAxMDMuOGM0LjEtMjQuNCAxMy43LTQ2LjkgMjcuNS02Ni4ybDQ4LjYgNDIuNWMtNS4zIDguNS05LjIgMTgtMTEuNiAyOGwtNjQuNC00LjN6bTI3LjUgMTE5LjRjLTEzLjgtMTkuMy0yMy40LTQxLjktMjcuNS02Ni4ybDY0LjQtNC4zYzIuNCAxMC4xIDYuNCAxOS41IDExLjYgMjhsLTQ4LjYgNDIuNXptMTAzLjggNjVjLTI0LjQtNC4xLTQ2LjktMTMuNy02Ni4yLTI3LjRsNDIuNS00OC42YzguNSA1LjMgMTggOS4yIDI4IDExLjZsLTQuMyA2NC40em0xMTkuNC0yNy40Yy0xOS4zIDEzLjgtNDEuOSAyMy40LTY2LjIgMjcuNGwtNC4zLTY0LjRjMTAtMi40IDE5LjUtNi40IDI4LTExLjZsNDIuNSA0OC42em02NS0xMDMuOGMtNC4xIDI0LjQtMTMuNyA0Ni45LTI3LjQgNjYuMmwtNDguNi00Mi41YzUuMy04LjYgOS4yLTE4IDExLjYtMjhsNjQuNCA0LjN6bS02NS0xNTYuOWwtNDIuNSA0OC42Yy04LjYtNS4zLTE4LTkuMi0yOC0xMS42bDQuMy02NC40YzI0LjQgNC4xIDQ2LjkgMTMuNyA2Ni4yIDI3LjV6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYUJhdHRlcnlRdWFydGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhdHRlcnktcXVhcnRlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiYmF0dGVyeS0yXCJdLCBcImYyNDNcIiwgXCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNjQgMHpcIl1cbn07XG52YXIgZmFCYXR0ZXJ5MiA9IGZhQmF0dGVyeVF1YXJ0ZXI7XG52YXIgZmFBbmtoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fua2gnLFxuICBpY29uOiBbMzIwLCA1MTIsIFs5NzY1XSwgXCJmNjQ0XCIsIFwiTTk2IDEyOGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0YzAgNDEuNi0yMC43IDc2LjYtNDYuNiAxMDQuMS01LjkgNi4yLTExLjggMTEuOC0xNy40IDE2LjctNS42LTQuOS0xMS41LTEwLjUtMTcuNC0xNi43LTI1LjktMjcuNS00Ni42LTYyLjYtNDYuNi0xMDQuMXpNMTYwIDBDODkuMyAwIDMyIDU3LjMgMzIgMTI4IDMyIDE4MC40IDUzLjUgMjIzLjUgNzguOCAyNTZMMzIgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00Ni44IDBDMjY2LjUgMjIzLjUgMjg4IDE4MC40IDI4OCAxMjggMjg4IDU3LjMgMjMwLjcgMCAxNjAgMHpcIl1cbn07XG52YXIgZmFEaWFtb25kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpYW1vbmQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs5ODMwXSwgXCJmMjE5XCIsIFwiTTE3IDIxNUwyMTUgMTdDMjI1LjkgNi4xIDI0MC42IDAgMjU2IDBzMzAuMSA2LjEgNDEgMTdMNDk1IDIxNWMxMC45IDEwLjkgMTcgMjUuNiAxNyA0MXMtNi4xIDMwLjEtMTcgNDFMMjk3IDQ5NWMtMTAuOSAxMC45LTI1LjYgMTctNDEgMTdzLTMwLjEtNi4xLTQxLTE3TDE3IDI5N0M2LjEgMjg2LjEgMCAyNzEuNCAwIDI1NnM2LjEtMzAuMSAxNy00MXpcIl1cbn07XG52YXIgZmFTdWJzY3JpcHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Vic2NyaXB0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMTJjXCIsIFwiTTk2IDY0Qzc4LjMgNjQgNjQgNzguMyA2NCA5NnMxNC4zIDMyIDMyIDMybDE1LjMgMCA4OS42IDEyOC04OS42IDEyOC0xNS4zIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMxMC40IDAgMjAuMi01LjEgMjYuMi0xMy42TDI0MCAzMTEuOCAzMjUuOCA0MzQuNGM2IDguNiAxNS44IDEzLjYgMjYuMiAxMy42bDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1LjMgMC04OS42LTEyOCA4OS42LTEyOCAxNS4zIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDBjLTEwLjQgMC0yMC4yIDUuMS0yNi4yIDEzLjZMMjQwIDIwMC4yIDE1NC4yIDc3LjZDMTQ4LjIgNjkuMSAxMzguNCA2NCAxMjggNjRMOTYgNjR6TTU0NCAzMjBjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRsLTMyIDE2Yy0xNS44IDcuOS0yMi4yIDI3LjEtMTQuMyA0Mi45IDUuNiAxMS4yIDE2LjkgMTcuNyAyOC42IDE3LjdsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4elwiXVxufTtcbnZhciBmYVJ1cGVlU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdydXBlZS1zaWduJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbODM2MCwgXCJydXBlZVwiXSwgXCJmMTU2XCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHptMjg1LjEtMzJsMzQuOSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNC45IDBjLTcuMiAwLTEzLjEgNS45LTEzLjEgMTMuMSAwIDUuNyAzLjcgMTAuNyA5LjEgMTIuNWw0OS40IDE1LjljMzEuOSAxMC4zIDUzLjUgMzkuOSA1My41IDczLjQgMCA0Mi42LTM0LjUgNzcuMS03Ny4xIDc3LjFMMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw1MC45IDBjNy4yIDAgMTMuMS01LjkgMTMuMS0xMy4xIDAtNS43LTMuNy0xMC43LTkuMS0xMi41bC00OS40LTE1LjljLTMxLjktMTAuMy01My41LTM5LjktNTMuNS03My40IDAtNDIuNiAzNC41LTc3LjEgNzcuMS03Ny4xelwiXVxufTtcbnZhciBmYVJ1cGVlID0gZmFSdXBlZVNpZ247XG52YXIgZmFQZXJzb25SaWZsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tcmlmbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1NGVcIiwgXCJNNDE2IDBMMzg0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN0w0MzIgMTZjMC04LjgtNy4yLTE2LTE2LTE2ek0yMjQgMjA4QzExOCAyMDggMzIgMjk0IDMyIDQwMGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OGMwLTMyLjUgMTIuMS02Mi4xIDMyLTg0LjdsMCAxOTYuNyAxNjAgMCAwLTI5My4xYy0yMC03LjEtNDEuNi0xMC45LTY0LTEwLjl6TTI4MCA4OGE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6XCJdXG59O1xudmFyIGZhRCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTAwXSwgXCI0NFwiLCBcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRTMjgzLjcgNDgwIDE2MCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDY0ek02NCA5NmwwIDMyMCA5NiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwUzI0OC40IDk2IDE2MCA5Nkw2NCA5NnpcIl1cbn07XG52YXIgZmFTcXVhcmVOZmkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLW5maScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTU3NlwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek05MyAxNzIuM2wzNSA2MyAwLTUxLjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDEwLjktNy40IDIwLjUtMTggMjMuMnMtMjEuNy0yLTI3LTExLjZsLTM1LTYzIDAgNTEuNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTEwLjkgNy40LTIwLjUgMTgtMjMuMnMyMS43IDIgMjcgMTEuNnpNMjA4IDE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwIDAgMzIgNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMCAwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTQ0em0xOTIgMGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0elwiXVxufTtcbnZhciBmYVRlZXRoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlZXRoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjJlXCIsIFwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNDQgMjA4bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4em0xMjggMGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNODAgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnptMzIwIDMybDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyek00OCAzMzZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZ6bTE0NCA0OGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAyNi41IDIxLjUgNDggNDggNDh6bTEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OHptMTEyLTE2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnpcIl1cbn07XG52YXIgZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFnbmlmeWluZy1nbGFzcy1kb2xsYXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNlYXJjaC1kb2xsYXJcIl0sIFwiZjY4OFwiLCBcIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTIxMiA5NmMtMTEgMC0yMCA5LTIwIDIwbDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDE2OCAyNTZjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjB6XCJdXG59O1xudmFyIGZhU2VhcmNoRG9sbGFyID0gZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXI7XG52YXIgZmFEdW1wc3RlckZpcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHVtcHN0ZXItZmlyZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjc5NFwiLCBcIk0xNjQuMyA2NEwxMzguNyAxOTIgNTYgMTkyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuMWMwLTIuNiAuNC01LjEgMS4yLTcuNkw1OC41IDgwLjRDNjEuOCA3MC42IDcxIDY0IDgxLjMgNjRsODMgMHptMjMuNCAxMjhsMjUuNi0xMjggODIuNyAwIDAgMTI4LTEwOC4zIDB6TTM0NCA2NGw4Mi43IDAgMTYgODBjLTE0LjcgLjItMjkuMyA1LjUtNDAuOSAxNS45LTExLjUgMTAuMy0yMi41IDIxLTMyLjggMzIuMWwtMjQuOSAwIDAtMTI4ek05NiAyNDBsMjMzLjIgMGMtNi40IDguOC0xMi4zIDE3LjYtMTcuNyAyNi4zLTIxLjQgMzQuNy0zOS41IDc2LjEtMzkuNSAxMTUuOCAwIDE3LjEgMi4xIDMzLjggNiA0OS45bC0xMjAuNCAwIDEuOSAxMC4zYzMuMiAxNy40LTguNCAzNC0yNS44IDM3LjJzLTM0LTguNC0zNy4yLTI1LjhDNzEgMzEzLjMgNTggMjQyLjEgNTcuNyAyNDBMOTYgMjQwem01MTItNzJjMCAxMS03LjQgMjAuMy0xNy41IDIzLjEtLjktLjgtMS43LTEuNi0yLjYtMi40LTIxLjgtMjAtNTQuMy0yMS44LTc4LTUuNS00LjItNC4zLTguNS04LjUtMTIuOS0xMi42bC0yMS4zLTEwNi42IDgzIDBjMTAuMyAwIDE5LjUgNi42IDIyLjggMTYuNGwyNS4zIDc1LjljLjggMi40IDEuMiA1IDEuMiA3LjZsMCA0LjF6TTUwNS43IDI0MC4zTDUxOCAyMjYuNWM1LjQtNi4xIDEzLjMtOC44IDIwLjktOC45IDcuMiAwIDE0LjMgMi42IDE5LjkgNy44IDE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNiAxNS4xIDI3LjIgMjYuMiA1OC4xIDI2LjIgODguMSAwIDg4LjctNzEuMyAxNTkuOC0xNjAgMTU5LjgtODkuNiAwLTE2MC03MS4zLTE2MC0xNTkuOCAwLTM3LjMgMTYtNzMuNCAzNi44LTEwNC41IDIwLjktMzEuMyA0Ny41LTU5IDcwLjktODAuMiA1LjctNS4yIDEzLjEtNy43IDIwLjMtNy41czEzLjQgMy4yIDE4LjggNy41YzE0LjQgMTEuNCAzOC45IDQwLjcgMzguOSA0MC43ek01NDQgNDMyLjJjMC0zNi41LTM3LTczLTU0LjgtODguNC01LjQtNC43LTEzLjEtNC43LTE4LjUgMC0xNy43IDE1LjQtNTQuOCA1MS45LTU0LjggODguNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwiXVxufTtcbnZhciBmYVVwbG9hZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1cGxvYWQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwOTNcIiwgXCJNMjU2IDEwOS4zTDI1NiAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMTAuNy00MS40IDQxLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDI1NiAxMDkuM3pNMjI0IDQwMGM0NC4yIDAgODAtMzUuOCA4MC04MGw4MCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDgwIDBjMCA0NC4yIDM1LjggODAgODAgODB6bTE0NCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJdXG59O1xudmFyIGZhVXNlclNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItc2xhc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFs2MjcxNCwgXCJ1c2VyLWFsdC1zbGFzaFwiLCBcInVzZXItbGFyZ2Utc2xhc2hcIl0sIFwiZjUwNlwiLCBcIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDMxMS41IDI0NS43YzU1LTEwLjkgOTYuNS01OS41IDk2LjUtMTE3LjcgMC02Ni4zLTUzLjctMTIwLTEyMC0xMjAtNTguMiAwLTEwNi44IDQxLjUtMTE3LjcgOTYuNUw0MS0yNC45ek0yMzUuNiAzMDUuNEMxNDcuOSAzMTYuNiA4MCAzOTEuNSA4MCA0ODIuMyA4MCA0OTguNyA5My4zIDUxMiAxMDkuNyA1MTJsMzMyLjUgMC0yMDYuNi0yMDYuNnpcIl1cbn07XG52YXIgZmFVc2VyQWx0U2xhc2ggPSBmYVVzZXJTbGFzaDtcbnZhciBmYVVzZXJMYXJnZVNsYXNoID0gZmFVc2VyU2xhc2g7XG52YXIgZmFBcnJvd0xlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzg1OTJdLCBcImYwNjBcIiwgXCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMjg4IDQ4MCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTM3MC43IDAgMTA1LjQtMTA1LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjB6XCJdXG59O1xudmFyIGZhVmlhbFZpcnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZpYWwtdmlydXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1OTdcIiwgXCJNNjQgMzJDNjQgMTQuMyA3OC4zIDAgOTYgMEwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE1MS43Yy0xOC41IDAtMzcgNy01MS4xIDIxLjEtMjEuNiAyMS42LTI2LjYgNTMuNi0xNSA3OS45LTI2LjkgMTAuNC00NS45IDM2LjYtNDUuOSA2Ny4xczE5IDU2LjcgNDUuOSA2Ny4xYy03LjMgMTYuNS04IDM1LjItMi4zIDUyLjItMTMuNCA1LjctMjguMiA4LjgtNDMuNiA4LjgtNjEuOSAwLTExMi01MC4xLTExMi0xMTJMOTYgNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyem05NiAzMmwwIDEyOCA5NiAwIDAtMTI4LTk2IDB6TTI4MCA0MDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjguOCAwIDQzLjItMzQuOCAyMi45LTU1LjItOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzIwLjQgMjAuNCA1NS4yIDUuOSA1NS4yLTIyLjkgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDI4LjggMzQuOCA0My4yIDU1LjIgMjIuOSA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTIwLjQgMjAuNC01LjkgNTUuMiAyMi45IDU1LjIgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI4LjggMC00My4yIDM0LjgtMjIuOSA1NS4yIDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTIwLjQtMjAuNC01NS4yLTUuOS01NS4yIDIyLjkgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0yOC44LTM0LjgtNDMuMi01NS4yLTIyLjktOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWMyMC40LTIwLjQgNS45LTU1LjItMjIuOS01NS4yem0xMDQtMzJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OCA0MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwelwiXVxufTtcbnZhciBmYUNoZWNrRG91YmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZWNrLWRvdWJsZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjU2MFwiLCBcIk0yNDkuOSA2Ni44YzEwLjQtMTQuMyA3LjItMzQuMy03LjEtNDQuN3MtMzQuMy03LjItNDQuNyA3LjFsLTEwNiAxNDUuNy0zNy41LTM3LjVjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzYuNiA2LjYgMTUuOCAxMCAyNS4xIDkuM3MxNy45LTUuNSAyMy40LTEzLjFsMTI4LTE3NnptMTI4IDEzNmMxMC40LTE0LjMgNy4yLTM0LjMtNy4xLTQ0LjdzLTM0LjMtNy4yLTQ0LjcgNy4xbC0xNzAgMjMzLjctNjkuNS02OS41Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmM2LjYgNi42IDE1LjggMTAgMjUuMSA5LjNzMTcuOS01LjUgMjMuNC0xMy4xbDE5Mi0yNjR6XCJdXG59O1xudmFyIGZhUGF3ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BhdycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFiMFwiLCBcIk0yMzQuNSA5Mi45YzE0LjMgNDIuOS0uMyA4Ni4yLTMyLjYgOTYuOHMtNzAuMS0xNS42LTg0LjQtNTguNSAuMy04Ni4yIDMyLjYtOTYuOCA3MC4xIDE1LjYgODQuNCA1OC41ek0xMDAuNCAxOTguNmMxOC45IDMyLjQgMTQuMyA3MC4xLTEwLjIgODQuMXMtNTkuNy0uOS03OC41LTMzLjMtMTQuMy03MC4xIDEwLjItODQuMSA1OS43IC45IDc4LjUgMzMuM3pNNjkuMiA0MDEuMkMxMjEuNiAyNTkuOSAyMTQuNyAyMjQgMjU2IDIyNHMxMzQuNCAzNS45IDE4Ni44IDE3Ny4yYzMuNiA5LjcgNS4yIDIwLjEgNS4yIDMwLjVsMCAxLjZjMCAyNS44LTIwLjkgNDYuNy00Ni43IDQ2LjctMTEuNSAwLTIyLjktMS40LTM0LTQuMmwtODgtMjJjLTE1LjMtMy44LTMxLjMtMy44LTQ2LjYgMGwtODggMjJjLTExLjEgMi44LTIyLjUgNC4yLTM0IDQuMi0yNS44IDAtNDYuNy0yMC45LTQ2LjctNDYuN2wwLTEuNmMwLTEwLjQgMS42LTIwLjggNS4yLTMwLjV6TTQyMS44IDI4Mi43Yy0yNC41LTE0LTI5LjEtNTEuNy0xMC4yLTg0LjFzNTQtNDcuMyA3OC41LTMzLjMgMjkuMSA1MS43IDEwLjIgODQuMS01NCA0Ny4zLTc4LjUgMzMuM3pNMzEwLjEgMTg5LjdjLTMyLjMtMTAuNi00Ni45LTUzLjktMzIuNi05Ni44czUyLjEtNjkuMSA4NC40LTU4LjUgNDYuOSA1My45IDMyLjYgOTYuOC01Mi4xIDY5LjEtODQuNCA1OC41elwiXVxufTtcbnZhciBmYUhlbG1ldFNhZmV0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWxtZXQtc2FmZXR5JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJoYXJkLWhhdFwiLCBcImhhdC1oYXJkXCJdLCBcImY4MDdcIiwgXCJNMzUyIDI2NGwwLTIwMGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xODUuOUM5MCAxMDkuOCAzMiAxOTEuOCAzMiAyODhsMCA2NCA1MTIgMCAwLTY0Yy0xLTk1LjItNTguNC0xNzcuNy0xNDQtMjA5LjhMNDAwIDI2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpNNDAgNDAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDQ5NiAwYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwTDQwIDQwMHpcIl1cbn07XG52YXIgZmFIYXJkSGF0ID0gZmFIZWxtZXRTYWZldHk7XG52YXIgZmFIYXRIYXJkID0gZmFIZWxtZXRTYWZldHk7XG52YXIgZmFFID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2UnLFxuICBpY29uOiBbMzIwLCA1MTIsIFsxMDFdLCBcIjQ1XCIsIFwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwIDAtMTI4IDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTEyOCAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpcIl1cbn07XG52YXIgZmFGYWNlTGF1Z2hTcXVpbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1sYXVnaC1zcXVpbnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImxhdWdoLXNxdWludFwiXSwgXCJmNTliXCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDcuNyAzMzIuMUMxMDIgMzE4IDExMy40IDMwNCAxMjguNiAzMDRsMjU0LjkgMGMxNS4yIDAgMjYuNiAxNCAyMC45IDI4LjEtMjMuOCA1OC42LTgxLjIgOTkuOS0xNDguMyA5OS45cy0xMjQuNi00MS4zLTE0OC4zLTk5Ljl6bTE1LTE4OC44YzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMTkyIDEyNS44IDE2NC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAxOTIgMzg2LjIgMjE5LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6XCJdXG59O1xudmFyIGZhTGF1Z2hTcXVpbnQgPSBmYUZhY2VMYXVnaFNxdWludDtcbnZhciBmYURvd25MZWZ0QW5kVXBSaWdodFRvQ2VudGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rvd24tbGVmdC1hbmQtdXAtcmlnaHQtdG8tY2VudGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJjb21wcmVzcy1hbHRcIl0sIFwiZjQyMlwiLCBcIk00MzkuNSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMyIDMyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04NyA4NyAzOSAzOWM2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4yUzQ1MC4yIDI0MCA0NDAuNSAyNDBsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsMzkgMzkgODctODd6TTcyLjUgMjcybDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMzItMzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg3LTg3LTM5LTM5Yy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yUzYyLjggMjcyIDcyLjUgMjcyelwiXVxufTtcbnZhciBmYUNvbXByZXNzQWx0ID0gZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlcjtcbnZhciBmYUdpZnRzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dpZnRzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzljXCIsIFwiTTIwMi0zMC42YzEyLjUgNC40IDE5IDE4LjEgMTQuNiAzMC42bC04LjIgMjMuMSAyNS40LTE4LjVjMTAuNy03LjggMjUuNy01LjQgMzMuNSA1LjNzNS40IDI1LjctNS4zIDMzLjVMMjMzLjggNjQgMjcyIDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMi4xYy01NC43IDEwLjQtOTYgNTguNC05NiAxMTZsMCAxLjljMCA4LjkgMSAxNy41IDIuOCAyNS45LTExLjkgMTcuOC0xOC44IDM5LjEtMTguOCA2Mi4xbDAgMTI4YzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMzguMiAwLTI4LjMtMjAuNkM0Ny4yIDM1LjYgNDQuOCAyMC42IDUyLjYgOS45Uzc1LjQtMy4yIDg2LjEgNC42bDI3LjQgMjAtOC4zLTI1QzEwMS0xMyAxMDcuOC0yNi42IDEyMC40LTMwLjhzMjYuMiAyLjYgMzAuNCAxNS4ybDkuOSAyOS44IDEwLjctMzAuMmM0LjQtMTIuNSAxOC4xLTE5IDMwLjYtMTQuNnpNNDg5LjkgMjA4Yy03LjUgMC0xNC41IDMuOC0xOC42IDEwLjFMNDQ2LjkgMjU2IDQ4OCAyNTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xLjljMC0xMi4yLTkuOS0yMi4xLTIyLjEtMjIuMXpNMzg1LjEgMjU2bC0yNC40LTM3LjljLTQuMS02LjMtMTEuMS0xMC4xLTE4LjYtMTAuMS0xMi4yIDAtMjIuMSA5LjktMjIuMSAyMi4xbDAgMS45YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQxLjEgMHpNMjgxLjkgMjY4LjVjLTYuMy0xMC43LTkuOS0yMy4yLTkuOS0zNi41bDAtMS45YzAtMzguNyAzMS40LTcwLjEgNzAuMS03MC4xIDIzLjggMCA0NiAxMi4xIDU4LjkgMzIuMWwxNSAyMy4yIDE1LTIzLjJjMTIuOS0yMCAzNS4xLTMyLjEgNTguOS0zMi4xIDM4LjcgMCA3MC4xIDMxLjQgNzAuMSA3MC4xbDAgMS45YzAgMTMuMy0zLjYgMjUuOC05LjkgMzYuNSAxNS43IDExLjcgMjUuOSAzMC40IDI1LjkgNTEuNWwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNzIgMCAwLTIwOC00OCAwIDAgMjA4LTcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTI4YzAtMjEuMSAxMC4yLTM5LjggMjUuOS01MS41elwiXVxufTtcbnZhciBmYUJlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiZWQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg3MTZdLCBcImYyMzZcIiwgXCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjQgMjI0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTYwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTQ0OCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyem04MCAxNjBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwelwiXVxufTtcbnZhciBmYU1vbmV5QmlsbFRyYW5zZmVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGwtdHJhbnNmZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1MjhcIiwgXCJNMzEgMTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxMDMtMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDY3LjcgMCAwIDAgMzM4LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE3OC4yLTUuMS01LjFjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMC0yNy4yIDI3LjItMjguMSA3MC42LTIuOCA5OC45bDY3LjcgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS00MDYuMSAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3OC4yIDUuMSA1LjFjMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDI3LjItMjcuMiAyOC4xLTcwLjYgMi44LTk4LjlsLTY3LjcgMCAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDMxIDEwNXpNNDE2IDI1NmE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bTg4LTY0LjVjNC40IC41IDgtMy4xIDgtNy41bDAtNDhjMC00LjQtMy42LTgtOC04bC00OCAwYy00LjQgMC04LjEgMy42LTcuNSA4IDMuNiAyOSAyNi42IDUxLjkgNTUuNSA1NS41em0tMzY4IDEyOWMtNC40LS41LTggMy4xLTggNy41bDAgNDhjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC4xLTMuNiA3LjUtOC0zLjYtMjktMjYuNi01MS45LTU1LjUtNTUuNXpcIl1cbn07XG52YXIgZmFQZXJzb25SdW5uaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1ydW5uaW5nJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI3OTM5LCBcInJ1bm5pbmdcIl0sIFwiZjcwY1wiLCBcIk0yNTYuNS0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTIzLjYgMTc2Yy0zLjMgMC02LjIgMi03LjQgNUw5NC4yIDIzNS45Yy02LjYgMTYuNC0yNS4yIDI0LjQtNDEuNiAxNy44cy0yNC40LTI1LjItMTcuOC00MS42bDIxLjktNTQuOUM2Ny43IDEyOS45IDk0LjEgMTEyIDEyMy42IDExMmw5Ny4zIDBjMjguNSAwIDU0LjggMTUuMSA2OS4xIDM5LjdsMzIuOCA1Ni4zIDYxLjYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjEuNiAwYy0yMi44IDAtNDMuOC0xMi4xLTU1LjMtMzEuOGwtMTAtMTcuMS0yMC43IDcwLjQgNzUuNCAyMi42YzI3LjcgOC4zIDQxLjggMzkgMzAuMSA2NS41TDI4NS43IDUwOWMtNy4yIDE2LjItMjYuMSAyMy40LTQyLjIgMTYuMnMtMjMuNC0yNi4xLTE2LjItNDIuMmw0OS4yLTExMC44LTk1LjktMjguOGMtMzIuNy05LjgtNTItNDMuNy00My43LTc2LjhsMjIuNy05MC42LTM1LjkgMHptLTggMTgxYzEzLjMgMTQuOSAzMC43IDI2LjMgNTEuMiAzMi40bDQuNyAxLjQtNi45IDE5LjNjLTUuOCAxNi4zLTE2IDMwLjgtMjkuMyA0MS44TDUyLjkgNTE5LjhjLTEzLjYgMTEuMi0zMy44IDkuMy00NS00LjNzLTkuMy0zMy44IDQuMy00NWw4Mi40LTY3LjljNC41LTMuNyA3LjgtOC41IDkuOC0xMy45TDExNS42IDM1N3pcIl1cbn07XG52YXIgZmFSdW5uaW5nID0gZmFQZXJzb25SdW5uaW5nO1xudmFyIGZhQ2lyY2xlQ2hldnJvbkRvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWNoZXZyb24tZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiY2hldnJvbi1jaXJjbGUtZG93blwiXSwgXCJmMTNhXCIsIFwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMTM1IDI0MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDg3IDg3IDg3LTg3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwyNzMgMzQ1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxMzUgMjQxelwiXVxufTtcbnZhciBmYUNoZXZyb25DaXJjbGVEb3duID0gZmFDaXJjbGVDaGV2cm9uRG93bjtcbnZhciBmYVVzZXJOdXJzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLW51cnNlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmODJmXCIsIFwiTTk2IDQ0LjljMC0xMi43IDcuNS0yNC4yIDE5LjItMjkuM2w5Ni00MmM4LjItMy42IDE3LjUtMy42IDI1LjcgMGw5NiA0MkMzNDQuNSAyMC43IDM1MiAzMi4yIDM1MiA0NC45bDAgOTkuMWMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOFM5NiAyMTQuNyA5NiAxNDRsMC05OS4xek0zMDQgMTI4bC0xMTEuNiAwLS40IDAtNDggMCAwIDE2YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBsMC0xNnpNMjA4IDE2bDAgMTYtMTYgMGMtNC40IDAtOCAzLjYtOCA4bDAgMTZjMCA0LjQgMy42IDggOCA4bDE2IDAgMCAxNmMwIDQuNCAzLjYgOCA4IDhsMTYgMGM0LjQgMCA4LTMuNiA4LThsMC0xNiAxNiAwYzQuNCAwIDgtMy42IDgtOGwwLTE2YzAtNC40LTMuNi04LTgtOGwtMTYgMCAwLTE2YzAtNC40LTMuNi04LTgtOEwyMTYgOGMtNC40IDAtOCAzLjYtOCA4ek0xNDIuNiAzMjNjLTYuNS00LjktMTUuMi02LjItMjIuNi0yLjgtNjEuNCAyOC4yLTEwNC4xIDkwLjItMTA0LjEgMTYyLjEgMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTcyLTQyLjctMTM0LTEwNC4xLTE2Mi4xLTcuNC0zLjQtMTYuMS0yLjEtMjIuNiAyLjhsLTY3IDUwLjJjLTguNSA2LjQtMjAuMyA2LjQtMjguOCAwbC02Ny01MC4yelwiXVxufTtcbnZhciBmYUZhY2VLaXNzV2lua0hlYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2Uta2lzcy13aW5rLWhlYXJ0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI4NTM2LCBcImtpc3Mtd2luay1oZWFydFwiXSwgXCJmNTk4XCIsIFwiTTU0My43IDI2OC4zYy4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy03LjYtMTcuMS0xNi4xLTM4LjgtMjEuOC02MS43LTcuNy0zMC41LTE0LjEtNzYuMiA4LjItMTE0LjdsMi43LTQuNmMyOS41LTUxIDk0LjctNjguNSAxNDUuNy0zOSAyIDEuMiA0IDIuNCA1LjkgMy43ek0yNDAgMzA0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTIwOCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xNTIgMjBjLTExIDAtMjAgOS0yMCAyMHMtOSAyMC0yMCAyMC0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDB6TTU0Mi44IDM1MGMtMi4yLTE4LjMtMTIuOS0zNC42LTI4LjktNDMuOC0yOC4xLTE2LjItNjMuOS02LjYtODAuMSAyMS41bC0yLjcgNC42Yy0yNC41IDQyLjUgNy45IDExNy45IDI0LjQgMTUwLjggNS4xIDEwLjEgMTUuNSAxNi4xIDI2LjggMTUuNSAzNi43LTIuMiAxMTguMi0xMS43IDE0Mi44LTU0LjJsMi43LTQuNmMxNi4yLTI4LjEgNi42LTYzLjktMjEuNS04MC4xLTE2LTkuMi0zNS40LTEwLjQtNTIuNC0zLjFsLTkuOCA0LjItMS4zLTEwLjZ6XCJdXG59O1xudmFyIGZhS2lzc1dpbmtIZWFydCA9IGZhRmFjZUtpc3NXaW5rSGVhcnQ7XG52YXIgZmFGaWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NzVcIiwgXCJNMjk2IDY0YzYuOSAwIDEzLjUgMi43IDE4LjMgNy42TDQ0MC40IDE5Ny43YzQuOSA0LjkgNy42IDExLjUgNy42IDE4LjNzLTIuNyAxMy41LTcuNiAxOC4zTDM4Ni43IDI4OCA2NS4zIDI4OGMxLjMtMy45IDMuNC03LjQgNi4zLTEwLjNsOTYuNC05Ni40IDMzLjQgMzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIxMy4zIDEzNiAyNzcuNyA3MS42YzQuOS00LjkgMTEuNS03LjYgMTguMy03LjZ6TTEyMi43IDEzNkwyNi4zIDIzMi40QzkuNSAyNDkuMyAwIDI3Mi4xIDAgMjk2czkuNSA0Ni43IDI2LjMgNjMuNkwxNTIuNCA0ODUuN0MxNjkuMyA1MDIuNSAxOTIuMSA1MTIgMjE2IDUxMnM0Ni43LTkuNSA2My42LTI2LjNMNDg1LjcgMjc5LjZDNTAyLjUgMjYyLjcgNTEyIDIzOS45IDUxMiAyMTZzLTkuNS00Ni43LTI2LjMtNjMuNkwzNTkuNiAyNi4zQzM0Mi43IDkuNSAzMTkuOSAwIDI5NiAwcy00Ni43IDkuNS02My42IDI2LjNMMTY4IDkwLjcgMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTIyLjcgMTM2elwiXVxufTtcbnZhciBmYU1vbmV5QmlsbDFXYXZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGwtMS13YXZlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJtb25leS1iaWxsLXdhdmUtYWx0XCJdLCBcImY1M2JcIiwgXCJNMCAxMDkuNUwwIDQxOS42YzAgMTkuNCAxMS44IDM3LjMgMzAuMyA0My4zIDk0IDMwIDE1OC44IDguNCAyMjMuMy0xMy4xIDYyLjQtMjAuOCAxMjQuNC00MS41IDIxMi4xLTE1LjMgMjIuMiA2LjYgNDYuMi04LjggNDYuMi0zMmwwLTMxMC4xYzAtMTkuNC0xMS44LTM3LjMtMzAuMy00My4zLTk0LTMwLTE1OC44LTguNC0yMjMuMyAxMy4xLTYyLjQgMjAuOC0xMjQuNCA0MS41LTIxMi4xIDE1LjMtMjIuMi02LjYtNDYuMyA4LjgtNDYuMyAzMnpNMjU2IDM2OGMtNTMgMC05Ni01MC4xLTk2LTExMnM0My0xMTIgOTYtMTEyIDk2IDUwLjEgOTYgMTEyLTQzIDExMi05NiAxMTJ6TTEyNy4xIDQwNS41Yy43IDQuNC0yLjggOC4xLTcuMiA4LjEtMTUuNyAwLTMyLjEtMS44LTUwLTYuMS0zLjUtLjgtNi00LTYtNy43TDY0IDM2MGMwLTQuNCAzLjYtOC4xIDgtNy41IDI4LjEgMy41IDUwLjYgMjUuMiA1NS4yIDUzek00NDggMzU0LjZjMCA1LTQuNiA4LjgtOS41IDgtMTUuNC0yLjUtMzAuMi0zLjktNDQuNC00LjMtNC45LS4xLTguNy00LjUtNy4yLTkuMiA3LjMtMjMuNyAyOC00MS40IDUzLjItNDQuNiA0LjQtLjUgOCAzLjEgOCA3LjVsMCA0Mi42em0tOC0xOTUuMWMtMjguMS0zLjUtNTAuNi0yNS4yLTU1LjItNTMtLjctNC40IDIuOC04LjEgNy4yLTguMSAxNS43IDAgMzIuMSAxLjggNTAgNi4xIDMuNSAuOCA2IDQgNiA3LjdsMCAzOS45YzAgNC40LTMuNiA4LjEtOCA3LjV6bS0zMjIuMS01LjhjNC45IC4xIDguNyA0LjUgNy4yIDkuMi03LjMgMjMuNy0yOCA0MS40LTUzLjIgNDQuNi00LjQgLjUtOC0zLjEtOC03LjVsMC00Mi42YzAtNSA0LjYtOC44IDkuNS04IDE1LjQgMi41IDMwLjIgMy45IDQ0LjQgNC4zek0yNDAgMTg4Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAwelwiXVxufTtcbnZhciBmYU1vbmV5QmlsbFdhdmVBbHQgPSBmYU1vbmV5QmlsbDFXYXZlO1xudmFyIGZhTGFuZG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFuZG1hcmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc5NjNdLCBcImY2NmZcIiwgXCJNMjM4LjcgNS4xYzEwLjUtNi44IDI0LjEtNi44IDM0LjYgMGwyMjQgMTQ0YzExLjkgNy43IDE3LjQgMjIuMyAxMy40IDM1LjlzLTE2LjUgMjMtMzAuNyAyM2wtMzIgMCAwIDIwOCA1MS4yIDM4LjRjOC4xIDYgMTIuOCAxNS41IDEyLjggMjUuNiAwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtMTAuMSA0LjctMTkuNiAxMi44LTI1LjZsNTEuMi0zOC40IDAgMCAwLTIwOC0zMiAwYy0xNC4yIDAtMjYuNy05LjQtMzAuNy0yM3MxLjUtMjguMyAxMy40LTM1LjlsMjI0LTE0NHpNMzM2IDIwOGwwIDIwOCA2NCAwIDAtMjA4LTY0IDB6TTIyNCA0MTZsNjQgMCAwLTIwOC02NCAwIDAgMjA4ek0xMTIgMjA4bDAgMjA4IDY0IDAgMC0yMDgtNjQgMHpcIl1cbn07XG52YXIgZmFNdXNpYyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtdXNpYycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyNzkyNV0sIFwiZjAwMVwiLCBcIk00NjggN2M3LjYgNi4xIDEyIDE1LjMgMTIgMjVsMCAzMDRjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwIDQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42bDAtMTE2LjctMjI0IDQ5LjggMCAyMDYuM2MwIDQ0LjItNDMgODAtOTYgODBzLTk2LTM1LjgtOTYtODAgNDMtODAgOTYtODBjMTEuMiAwIDIyIDEuNiAzMiA0LjZMMTI4IDk2YzAtMTUgMTAuNC0yOCAyNS4xLTMxLjJsMjg4LTY0YzkuNS0yLjEgMTkuNCAuMiAyNyA2LjN6XCJdXG59O1xudmFyIGZhQm9va01lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1tZWRpY2FsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmN2U2XCIsIFwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xOTIgMTIwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwelwiXVxufTtcbnZhciBmYVNodWZmbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2h1ZmZsZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI1NiwgXCJyYW5kb21cIl0sIFwiZjA3NFwiLCBcIk00MDMuOCAzNC40YzEyLTUgMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAyMDQuOSAzODQgMTkybDAtMzItMzIgMGMtMTAuMSAwLTE5LjYgNC43LTI1LjYgMTIuOGwtMzIuNCA0My4yLTQwLTUzLjMgMjEuMi0yOC4zQzI5My4zIDExMC4yIDMyMS44IDk2IDM1MiA5NmwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnpNMTU0IDI5Nmw0MCA1My4zLTIxLjIgMjguM0MxNTQuNyA0MDEuOCAxMjYuMiA0MTYgOTYgNDE2bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDBjMTAuMSAwIDE5LjYtNC43IDI1LjYtMTIuOEwxNTQgMjk2ek00MzguNiA0NzAuNmMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDQ2MC45IDM4NCA0NDhsMC0zMi0zMiAwYy0zMC4yIDAtNTguNy0xNC4yLTc2LjgtMzguNEwxMjEuNiAxNzIuOGMtNi04LjEtMTUuNS0xMi44LTI1LjYtMTIuOGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwYzMwLjIgMCA1OC43IDE0LjIgNzYuOCAzOC40TDMyNi40IDMzOS4yYzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjR6XCJdXG59O1xudmFyIGZhUmFuZG9tID0gZmFTaHVmZmxlO1xudmFyIGZhVW5kZXJsaW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VuZGVybGluZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjBjZFwiLCBcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyUzExMy43IDY0IDk2IDY0bDAgMTYwYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzI3MC4zIDAgMjg4IDBsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE2MGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMzMiAzMTIuNCAzMiAyMjRMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNMCA0ODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpcIl1cbn07XG52YXIgZmFCdWlsZGluZ1VzZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmctdXNlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRkYVwiLCBcIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyMS4zYy00Ni45IDE5LTgwIDY1LTgwIDExOC43IDAgMjcuNyA4LjggNTMuNCAyMy44IDc0LjQtNTEuNSAyMS04Ny44IDcxLjYtODcuOCAxMzAuNyAwIDEgMCAxLjkgMCAyLjlsLTE3NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA2NHpNMjA4IDQwMGwwIDY0IDUzLjQgMGM3LjItMjkuNCAyMS4zLTU2LjEgNDAuNC03OC4zLTYuMS0xOS41LTI0LjMtMzMuNy00NS44LTMzLjctMjYuNSAwLTQ4IDIxLjUtNDggNDh6TTMzOSAyMjQuM2MtMS0uMi0yLS4zLTMtLjNsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNi43IDBjMi4xLTIyLjggOC40LTQ0LjMgMTguMy02My43ek0xNzYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE3NiAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMjQwIDgwYTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMzUyIDUxMmMwLTUzIDQzLTk2IDk2LTk2bDk2IDBjNTMgMCA5NiA0MyA5NiA5NiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbnZhciBmYVJvYm90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYm90JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbMTI5MzAyXSwgXCJmNTQ0XCIsIFwiTTM1MiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzI4OC0xNy43IDI4OCAwbDAgNjQtOTYgMGMtNTMgMC05NiA0My05NiA5NmwwIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yMjRjMC01My00My05Ni05Ni05NmwtOTYgMCAwLTY0ek0xNjAgMzY4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xMjAgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTIwIDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTIyNCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0xNDQgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNjQgMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjA2LjMgMCAyMjRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZ6bTU0NC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJdXG59O1xudmFyIGZhUGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbHVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTAxMzMsIDYxNTQzLCBcImFkZFwiXSwgXCIyYlwiLCBcIk0yNTYgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAtMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0xNjB6XCJdXG59O1xudmFyIGZhQWRkID0gZmFQbHVzO1xudmFyIGZhQ29weSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb3B5JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMGM1XCIsIFwiTTE5MiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIwMC42YzAtMTcuNC03LjEtMzQuMS0xOS43LTQ2LjJMMzcwLjYgMTcuOEMzNTguNyA2LjQgMzQyLjggMCAzMjYuMyAwTDE5MiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTYtNjQgMCAwIDE2LTE5MiAwIDAtMjU2IDE2IDAgMC02NC0xNiAwelwiXVxufTtcbnZhciBmYUNoZXNzS2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1raW5nJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbOTgxOF0sIFwiZjQzZlwiLCBcIk0yMjQtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjQgMTUzLjggMGMyMS4xIDAgMzguMiAxNy4xIDM4LjIgMzguMiAwIDYuNC0xLjYgMTIuNy00LjcgMTguM0wzNTIgMzg0IDQwOC4yIDQ1NC4zYzUgNi4zIDcuOCAxNC4xIDcuOCAyMi4yIDAgMTkuNi0xNS45IDM1LjUtMzUuNSAzNS41TDY3LjUgNTEyYy0xOS42IDAtMzUuNS0xNS45LTM1LjUtMzUuNSAwLTguMSAyLjctMTUuOSA3LjgtMjIuMkw5NiAzODQgNC43IDIxNi42QzEuNiAyMTAuOSAwIDIwNC42IDAgMTk4LjIgMCAxNzcuMSAxNy4xIDE2MCAzOC4yIDE2MGwxNTMuOCAwIDAtNjQtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xudmFyIGZhSG91c2VGbG9vZFdhdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWZsb29kLXdhdGVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTBlXCIsIFwiTTQ5NiAyMDhsNC41IDBjMTUuMiAwIDI3LjUtMTIuMyAyNy41LTI3LjUgMC03LjktMy40LTE1LjUtOS40LTIwLjdMMzQ4IDEwLjVDMzQwLjMgMy43IDMzMC4zIDAgMzIwIDBzLTIwLjMgMy43LTI4IDEwLjVMMTIxLjQgMTU5LjhjLTYgNS4yLTkuNCAxMi44LTkuNCAyMC43IDAgMTUuMiAxMi4zIDI3LjUgMjcuNSAyNy41bDQuNSAwIDAgOTQuNGMyMC4zLTkuNCA0Mi4xLTE0LjIgNjQtMTQuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgMjIuMSAxNi42IDI5LjEgMTYuNiA1MS4yIDAgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgMTYuOS0uMSAzMy44IDIuNiA1MCA4bDAtODh6bS0yMjQtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6TTQ3NC42IDQxMi4xYzE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDE4LjMgMTcuNiA0MjYuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDk2YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNTE0LjMgMTcuNiA1MjIuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6XCJdXG59O1xudmFyIGZhQml0Y29pblNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYml0Y29pbi1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJlMGI0XCIsIFwiTTY0IDI0QzY0IDEwLjcgNzQuNyAwIDg4IDBzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDEuMWM1NC4zIDcuOCA5NiA1NC40IDk2IDExMC45IDAgMjQuMi03LjcgNDYuNi0yMC43IDY0LjkgMzEuNyAxOS44IDUyLjcgNTUgNTIuNyA5NS4xIDAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0xNiAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC0zMiAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC0yMi4zIDBDMTguNyA0NDggMCA0MjkuMyAwIDQwNi4zTDAgMTAxLjZDMCA4MC44IDE2LjggNjQgMzcuNiA2NEw2NCA2NCA2NCAyNHptMCAyMDBsMTEyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTExMiAwIDAgOTZ6bTExMiA2NGwtMTEyIDAgMCA5NiAxNDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtMzIgMHpcIl1cbn07XG52YXIgZmFCb3ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4MjMwXSwgXCJmNDY2XCIsIFwiTTM2OS40IDEyOGwtMzQuMy00OC0yMjIuMSAwLTM0LjMgNDggMjkwLjcgMHpNMCAxNDguNWMwLTEzLjMgNC4yLTI2LjMgMTEuOS0zNy4yTDYwLjkgNDIuOEM3Mi45IDI2IDkyLjMgMTYgMTEyLjkgMTZsMjIyLjEgMGMyMC43IDAgNDAuMSAxMCA1Mi4xIDI2LjhsNDguOSA2OC41YzcuOCAxMC45IDExLjkgMjMuOSAxMS45IDM3LjJMNDQ4IDQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTQ4LjV6XCJdXG59O1xudmFyIGZhU3F1YXJlUGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUtcGx1cycsXG4gIGljb246IFs0NDgsIDUxMiwgWzYxODQ2LCBcInBsdXMtc3F1YXJlXCJdLCBcImYwZmVcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjAwIDM0NGwwLTY0LTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNjQgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6XCJdXG59O1xudmFyIGZhUGx1c1NxdWFyZSA9IGZhU3F1YXJlUGx1cztcbnZhciBmYUFycm93c0xlZnRSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtbGVmdC1yaWdodCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiYXJyb3dzLWhcIl0sIFwiZjA3ZVwiLCBcIk00NzAuNiAzNzQuNmw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDQxLjQgNDEuNC0zNTcuNSAwIDQxLjQtNDEuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTYgNi05LjQgMTQuMS05LjQgMjIuNnMzLjQgMTYuNiA5LjQgMjIuNmw5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC00MS40LTQxLjQgMzU3LjUgMC00MS40IDQxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6XCJdXG59O1xudmFyIGZhQXJyb3dzSCA9IGZhQXJyb3dzTGVmdFJpZ2h0O1xudmFyIGZhRmFuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjg2M1wiLCBcIk0xNjAgMTQ0YzAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDguOCAwIDE2IDcuMiAxNiAxNmwwIDE1Mi4yYzE1LTUuMyAzMS4yLTguMiA0OC04LjIgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA4LjgtNy4yIDE2LTE2IDE2bC0xNTIuMiAwYzUuMyAxNSA4LjIgMzEuMiA4LjIgNDggMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDQtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTUyLjJjLTE1IDUuMy0zMS4yIDguMi00OCA4LjItNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC04LjggNy4yLTE2IDE2LTE2bDE1Mi4yIDBjLTUuMy0xNS04LjItMzEuMi04LjItNDh6bTk2IDE0NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xudmFyIGZhQ3JvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjcm93JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTIwXCIsIFwiTTQ1Ni41IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4bDAgMzYtMzU1LjIgMjY2LjRDLS44IDQwMS0zLjcgNDIxIDYuOSA0MzUuMnMzMC42IDE3IDQ0LjggNi40bDc2LjgtNTcuNiAxMzEuMyAwIDQ2LjYgMTEzLjEgMSAyLjJjNS43IDEwLjcgMTguOCAxNS41IDMwLjMgMTAuOHMxNy4zLTE3LjMgMTMuOS0yOWwtLjgtMi4zLTM5LjEtOTQuOSA0MC45IDBjMS4xIDAgMi4yIDAgMy4yIDBsNDYuNiAxMTMuMiAxIDIuMmM1LjcgMTAuNyAxOC44IDE1LjUgMzAuMyAxMC44czE3LjMtMTcuMyAxMy45LTI5bC0uOC0yLjMtNDItMTAyQzQ4NS4zIDM1NC4xIDU0NC41IDI4MCA1NDQuNSAxOTJsMC03MiA4MC41LTIwLjFjOC42LTIuMSAxMy44LTEwLjggMTEuNi0xOS40LTcuMS0yOC41LTMyLjctNDguNS02Mi4xLTQ4LjVsLTUwLjEgMEM1MDguMiAxMi41IDQ4My44IDAgNDU2LjUgMHptMCA2NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJdXG59O1xudmFyIGZhRmlsZUNpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNWEwXCIsIFwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6XCJdXG59O1xudmFyIGZhTGlua1NsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpbmstc2xhc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImNoYWluLWJyb2tlblwiLCBcImNoYWluLXNsYXNoXCIsIFwidW5saW5rXCJdLCBcImYxMjdcIiwgXCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTIyLTEyMmM0LjItMy40IDguMy03LjEgMTIuMS0xMC45bDcxLjEtNzEuMWMyOS4zLTI5LjMgNDUuOC02OS4xIDQ1LjgtMTEwLjYgMC04Ni40LTcwLTE1Ni41LTE1Ni41LTE1Ni41LTM3LjMgMC03My4xIDEzLjMtMTAxLjMgMzcuMiAyMC4zIDEwLjEgMzguNyAyMy41IDU0LjUgMzkuNSAxNC4xLTguMyAzMC4yLTEyLjcgNDYuOC0xMi43IDUxLjEgMCA5Mi41IDQxLjQgOTIuNSA5Mi41IDAgMjQuNS05LjcgNDgtMjcuMSA2NS40bC03MS4xIDcxLjFjLTMuOSAzLjktOC4xIDcuNC0xMi42IDEwLjVsLTQ3LjUtNDcuNWMxNi41LS45IDI5LjctMTQuNCAzMC4yLTMxLjEgMC0xLjMgMC0yLjYgMC0zLjkgMC04Ni4zLTY5LjktMTU2LjktMTU2LjUtMTU2LjktMTkuMiAwLTM3LjkgMy41LTU1LjUgMTAuMkw0MS0yNC45ek0yMjUuOSAxNjBjLjYgMCAxLjEgMCAxLjcgMCAxNS4xIDAgMjkuNSAzLjcgNDIuMSAxMC4yIDEuOCAxLjIgMy42IDIuMyA1LjUgMy4xIDI2LjggMTYuMyA0NC44IDQ1LjkgNDQuOCA3OS42IDAgLjQgMCAuOCAwIDEuMkwyMjUuOSAxNjB6TTM0Ni4yIDQxNkwxOTIgMjYxLjhjMS4yIDg0LjYgNjkuNiAxNTIuOSAxNTQuMSAxNTQuMXpNMTM5LjcgMjA5LjVsLTQ1LjMtNDUuMy00OC42IDQ4LjZjLTI5LjMgMjkuMy00NS44IDY5LjEtNDUuOCAxMTAuNiAwIDg2LjQgNzAgMTU2LjUgMTU2LjUgMTU2LjUgMzcuMiAwIDczLjEtMTMuMyAxMDEuMy0zNy4yLTIwLjMtMTAuMS0zOC44LTIzLjUtNTQuNi0zOS41LTE0IDguMi0zMC4xIDEyLjYtNDYuNyAxMi42LTUxLjEgMC05Mi41LTQxLjQtOTIuNS05Mi41IDAtMjQuNSA5LjctNDggMjcuMS02NS40bDQ4LjYtNDguNnpcIl1cbn07XG52YXIgZmFDaGFpbkJyb2tlbiA9IGZhTGlua1NsYXNoO1xudmFyIGZhQ2hhaW5TbGFzaCA9IGZhTGlua1NsYXNoO1xudmFyIGZhVW5saW5rID0gZmFMaW5rU2xhc2g7XG52YXIgZmFBcnJvd1JvdGF0ZVJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXJvdGF0ZS1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzg2MzUsIFwiYXJyb3ctcmlnaHQtcm90YXRlXCIsIFwiYXJyb3ctcm90YXRlLWZvcndhcmRcIiwgXCJyZWRvXCJdLCBcImYwMWVcIiwgXCJNNDM2LjcgNzQuN0w0NDggODUuNCA0NDggMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDcuOSAwLTcuNi03LjJjLS4yLS4yLS40LS40LS42LS42LTc1LTc1LTE5Ni41LTc1LTI3MS41IDBzLTc1IDE5Ni41IDAgMjcxLjUgMTk2LjUgNzUgMjcxLjUgMGM4LjItOC4yIDE1LjUtMTYuOSAyMS45LTI2LjEgMTAuMS0xNC41IDMwLjEtMTggNDQuNi03LjlzMTggMzAuMSA3LjkgNDQuNmMtOC41IDEyLjItMTguMiAyMy44LTI5LjEgMzQuNy0xMDAgMTAwLTI2Mi4xIDEwMC0zNjIgMFMtMjUgMTc1IDc1IDc1Yzk5LjktOTkuOSAyNjEuNy0xMDAgMzYxLjctLjN6XCJdXG59O1xudmFyIGZhQXJyb3dSaWdodFJvdGF0ZSA9IGZhQXJyb3dSb3RhdGVSaWdodDtcbnZhciBmYUFycm93Um90YXRlRm9yd2FyZCA9IGZhQXJyb3dSb3RhdGVSaWdodDtcbnZhciBmYVJlZG8gPSBmYUFycm93Um90YXRlUmlnaHQ7XG52YXIgZmFQZW5DbGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blbi1jbGlwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJwZW4tYWx0XCJdLCBcImYzMDVcIiwgXCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTI3NC4xIDEwMGwwIDAgMTM3LjkgMTM3LjktMjE1LjEgMjE1LjFjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTExLjFjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4ycy04LjUtMTUuMS02LjItMjMuNEwzNi40IDM1My44YzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4LjdMMjQwLjEgMTMzLjkgMjIzIDExNi45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw4OSAyMTdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMTU1LjEgODIuOWMyOC4xLTI4LjEgNzMuNy0yOC4xIDEwMS44IDBMMjc0LjEgMTAwelwiXVxufTtcbnZhciBmYVBlbkFsdCA9IGZhUGVuQ2xpcDtcbnZhciBmYURvb3JDbG9zZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG9vci1jbG9zZWQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjg2ODJdLCBcImY1MmFcIiwgXCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgNjR6TTMyMCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbnZhciBmYUFycm93RG93bldpZGVTaG9ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1kb3duLXdpZGUtc2hvcnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInNvcnQtYW1vdW50LWFzY1wiLCBcInNvcnQtYW1vdW50LWRvd25cIl0sIFwiZjE2MFwiLCBcIk0yNDYuNiAzNzQuNmwtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTMyMCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2MCAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMjAgOTZ6XCJdXG59O1xudmFyIGZhU29ydEFtb3VudEFzYyA9IGZhQXJyb3dEb3duV2lkZVNob3J0O1xudmFyIGZhU29ydEFtb3VudERvd24gPSBmYUFycm93RG93bldpZGVTaG9ydDtcbnZhciBmYUNhcmV0RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXJldC1kb3duJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMGQ3XCIsIFwiTTE0MC4zIDM3Ni44YzEyLjYgMTAuMiAzMS4xIDkuNSA0Mi44LTIuMmwxMjgtMTI4YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMwMS40IDE5MiAyODguNSAxOTJsLTI1NiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44Uy43IDIzNy41IDkuOSAyNDYuNmwxMjggMTI4IDIuNCAyLjJ6XCJdXG59O1xudmFyIGZhSyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdrJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbMTA3XSwgXCI0YlwiLCBcIk0zMTEgODYuM2MxMi4zLTEyLjcgMTItMzIuOS0uNy00NS4ycy0zMi45LTEyLTQ1LjIgLjdDMTQzLjQgMTY3LjIgNzYuNCAyMzYuMyA2NCAyNDlMNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEwNyA2NC43LTY2LjcgMTMzIDE5MmMxMC4xIDE0LjUgMzAgMTguMSA0NC41IDguMXMxOC4xLTMwIDguMS00NC41TDE3NC4xIDIyNy40IDMxMSA4Ni4zelwiXVxufTtcbnZhciBmYUNoZWNrVG9TbG90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZWNrLXRvLXNsb3QnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInZvdGUteWVhXCJdLCBcImY3NzJcIiwgXCJNNTUyIDI4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzEyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDE2IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjU2IDB6bS0zNy4xIDg0LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zbC04NS42IDExNy43LTI2LjUtMjcuNGMtOS4yLTkuNS0yNC40LTkuOC0zMy45LS42LTkuNSA5LjItOS44IDI0LjQtLjYgMzMuOWw0Ni40IDQ4YzQuOSA1LjEgMTEuOCA3LjggMTguOSA3LjNzMTMuNi00LjEgMTcuOC05LjhMMzg0LjIgMTUwLjFjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6XCJdXG59O1xudmFyIGZhVm90ZVllYSA9IGZhQ2hlY2tUb1Nsb3Q7XG52YXIgZmFGaXNoRmlucyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaXNoLWZpbnMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0ZjJcIiwgXCJNMjc1LjIgMzguNGMtMTAuNi04LTI1LTguNS0zNi4zLTEuNVMyMjIgNTcuMyAyMjQuNiA3MC4zbDkuNyA0OC42Yy0xOS40IDktMzYuOSAxOS45LTUyLjQgMzEuNS0xNS4zIDExLjUtMjkgMjMuOS00MC43IDM2LjNMNDguMSAxMzIuNGMtMTIuNS03LjMtMjguNC01LjMtMzguNyA0LjlzLTEyLjQgMjYtNS4zIDM4LjZMNTAgMjU2IDQuMiAzMzYuMWMtNy4yIDEyLjYtNSAyOC40IDUuMyAzOC42czI2LjEgMTIuMiAzOC43IDQuOWw5My4xLTU0LjNjMTEuOCAxMi4zIDI1LjQgMjQuOCA0MC43IDM2LjMgMTUuNSAxMS42IDMzIDIyLjUgNTIuNCAzMS41bC05LjcgNDguNmMtMi42IDEzIDMuMSAyNi4zIDE0LjMgMzMuM3MyNS42IDYuNSAzNi4zLTEuNWw3Ny42LTU4LjJjNTQuOS00IDEwMS41LTI3IDEzNy4yLTUzLjggMzkuMi0yOS40IDY3LjItNjQuNyA4MS42LTg5LjUgNS44LTkuOSA1LjgtMjIuMiAwLTMyLjEtMTQuNC0yNC44LTQyLjUtNjAuMS04MS42LTg5LjUtMzUuOC0yNi44LTgyLjMtNDkuOC0xMzcuMi01My44TDI3NS4yIDM4LjR6TTM4NCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIl1cbn07XG52YXIgZmFDb21wcmVzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21wcmVzcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA2NlwiLCBcIk0xNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgNDYuMyA5NiA2NGwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2ek0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwelwiXVxufTtcbnZhciBmYUFycm93VXBBWiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy11cC1hLXonLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNvcnQtYWxwaGEtdXBcIl0sIFwiZjE1ZVwiLCBcIk00MTIuNiA0OS43QzQwNy4yIDM4LjggMzk2LjEgMzIgMzg0IDMycy0yMy4yIDYuOC0yOC42IDE3LjdjLTUwLjcgMTAxLjMtNzcuMyAxNTQuNy04MCAxNjAtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjljLTIuNy01LjMtMjkuMy01OC43LTgwLTE2MHpNMzg0IDEzNS42bDIwLjIgNDAuNC00MC40IDAgMjAuMi00MC40ek0yODggMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDUwLjcgMC03My40IDczLjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzMwNy4xIDQ4MCAzMjAgNDgwbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01MC43IDAgNzMuNC03My40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ2MC45IDI4OCA0NDggMjg4bC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDI1LjQgMjUuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC04MC04MHpcIl1cbn07XG52YXIgZmFTb3J0QWxwaGFVcCA9IGZhQXJyb3dVcEFaO1xudmFyIGZhVXNlckdyYWR1YXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItZ3JhZHVhdGUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1MDFcIiwgXCJNMjQxLjMtMTNjLTExLjQtMi4zLTIzLjEtMi4zLTM0LjUgMEwxOS4zIDI0LjVDOC4xIDI2LjcgMCAzNi42IDAgNDggMCA1OC4zIDYuNSA2Ny4zIDE2IDcwLjZMMTYgMTQ0IC4zIDIyMi42Yy0uMiAuOS0uMyAxLjktLjMgMi45IDAgOCA2LjUgMTQuNiAxNC42IDE0LjZsMzQuOSAwYzggMCAxNC42LTYuNSAxNC42LTE0LjYgMC0xLS4xLTEuOS0uMy0yLjlMNDggMTQ0IDQ4IDc3LjMgOTYgODYuOSA5NiAxNDRjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhzMTI4LTU3LjMgMTI4LTEyOGwwLTU3LjEgNzYuNy0xNS4zQzQzOS45IDY5LjMgNDQ4IDU5LjQgNDQ4IDQ4cy04LjEtMjEuMy0xOS4zLTIzLjVMMjQxLjMtMTN6TTIyNCAyMjRjLTQ0LjIgMC04MC0zNS44LTgwLTgwbDE2MCAwYzAgNDQuMi0zNS44IDgwLTgwIDgwek0xMjAuMSAzMjAuMUM1OC43IDM0OC4zIDE2IDQxMC4zIDE2IDQ4Mi4zIDE2IDQ5OC43IDI5LjMgNTEyIDQ1LjcgNTEybDE1NC4zIDAgMC0xNDYtNTcuNC00M2MtNi41LTQuOS0xNS4yLTYuMi0yMi42LTIuOHpNMjQ4IDUxMmwxNTQuMyAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43IDAtNzItNDIuNy0xMzQtMTA0LjEtMTYyLjEtNy40LTMuNC0xNi4xLTIuMS0yMi42IDIuOGwtNTcuNCA0MyAwIDE0NnpcIl1cbn07XG52YXIgZmFGaWxlQ29kZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWNvZGUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzlcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE1NC4yIDI5NS42YzguNi0xMC4xIDcuNS0yNS4yLTIuNi0zMy44cy0yNS4yLTcuNS0zMy44IDIuNmwtNDggNTZjLTcuNyA5LTcuNyAyMi4yIDAgMzEuMmw0OCA1NmM4LjYgMTAuMSAyMy44IDExLjIgMzMuOCAyLjZzMTEuMi0yMy44IDIuNi0zMy44bC0zNC42LTQwLjQgMzQuNi00MC40em0xMTItMzEuMmMtOC42LTEwLjEtMjMuOC0xMS4yLTMzLjgtMi42cy0xMS4yIDIzLjgtMi42IDMzLjhsMzQuNiA0MC40LTM0LjYgNDAuNGMtOC42IDEwLjEtNy41IDI1LjIgMi42IDMzLjhzMjUuMiA3LjUgMzMuOC0yLjZsNDgtNTZjNy43LTkgNy43LTIyLjIgMC0zMS4ybC00OC01NnpcIl1cbn07XG52YXIgZmFTb2FwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvYXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk1MzJdLCBcImUwNmVcIiwgXCJNMjA4LTMyYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMzIwIDk2YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0zNTIgMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAxNjBsMTEyIDBjMCAyMy44IDcuNCA0NS45IDIwLjEgNjRMMTYwIDIyNGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmwxOTIgMGM1MyAwIDk2LTQzIDk2LTk2IDAtMzUuMS0xOC45LTY1LjktNDctODIuNiAxOS0xOS44IDMwLjctNDYuNiAzMS03Ni4xIDQ1LjQgNy42IDgwIDQ3LjEgODAgOTQuN2wwIDEyOGMwIDUzLTQzIDk2LTk2IDk2TDk2IDQ4MGMtNTMgMC05Ni00My05Ni05NkwwIDI1NmMwLTUzIDQzLTk2IDk2LTk2em02NCAxMTJsMTkyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4elwiXVxufTtcbnZhciBmYVJlY3ljbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVjeWNsZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzk4NDIsIDk4NTAsIDk4NTFdLCBcImYxYjhcIiwgXCJNMTUyLjMgNjBDMTk4LjUtMjAgMzE0LTIwIDM2MC4yIDYwbDM3LjMgNjQuNiAyNy43LTE2YzguNC00LjkgMTguOS00LjIgMjYuNiAxLjdzMTEuMSAxNS45IDguNiAyNS4zTDQzNi45IDIyM2MtMy40IDEyLjgtMTYuNiAyMC40LTI5LjQgMTdsLTg3LjQtMjMuNGMtOS40LTIuNS0xNi4zLTEwLjQtMTcuNi0yMHMzLjQtMTkuMSAxMS44LTIzLjlsMjcuNy0xNi0zNy4zLTY0LjZjLTIxLjYtMzcuMy03NS40LTM3LjMtOTcgMGwtNS4zIDkuMWMtOC44IDE1LjMtMjguNCAyMC41LTQzLjcgMTEuN1MxMzguMiA4NC41IDE0NyA2OS4xbDUuMy05LjF6TTQ0OS43IDI3OS4xYzE1LjMtOC44IDM0LjktMy42IDQzLjcgMTEuN2w1LjMgOS4xYzQ2LjIgODAtMTEuNSAxODAtMTAzLjkgMTgwbC03NC42IDAgMCAzMmMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNjQtNjRjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMnMxNC44IDEyLjUgMTQuOCAyMi4ybDAgMzIgNzQuNiAwYzQzLjEgMCA3MC4xLTQ2LjcgNDguNS04NGwtNS4zLTkuMWMtOC44LTE1LjMtMy42LTM0LjkgMTEuNy00My43ek01MSAyMzUuNGwtMjcuNy0xNmMtOC40LTQuOS0xMy4xLTE0LjMtMTEuOC0yMy45czguMi0xNy41IDE3LjYtMjBMMTE2LjUgMTUyYzEyLjgtMy40IDI2IDQuMiAyOS40IDE3bDIzLjQgODcuNGMyLjUgOS40LS45IDE5LjMtOC42IDI1LjNzLTE4LjIgNi42LTI2LjYgMS43bC0yNy43LTE2LTM3LjMgNjQuNmMtMjEuNiAzNy4zIDUuNCA4NCA0OC41IDg0bDEwLjYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTAuNiAwQzI1LjMgNDgwLTMyLjQgMzgwIDEzLjggMzAwTDUxIDIzNS40elwiXVxufTtcbnZhciBmYUZhY2VHcmluV2luayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWdyaW4td2luaycsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiZ3Jpbi13aW5rXCJdLCBcImY1OGNcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0zMjggMTk2Yy0xMSAwLTIwIDktMjAgMjBzLTkgMjAtMjAgMjAtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFHcmluV2luayA9IGZhRmFjZUdyaW5XaW5rO1xudmFyIGZhV2F0ZXJMYWRkZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2F0ZXItbGFkZGVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJsYWRkZXItd2F0ZXJcIiwgXCJzd2ltbWluZy1wb29sXCJdLCBcImY1YzVcIiwgXCJNMzc0LjUgNDA1LjdjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjggMjUuNy00LjggMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yNC4yIDE4LjMtNTIuMyAzNS45LTgzLjQgMzUuOXMtNTkuMS0xNy43LTgzLjMtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNi0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zek01MTEuOCAzMmM0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjgtMTcuNSAwLTMxLjggMTQuMi0zMS44IDMxLjhsMCAyMTEuOGMtMjMuMS01LjEtNDQuOS00LjQtNjQtLjRsMC01MS4yLTE5MiAwIDAgNDguN2MtNS4zLS41LTEwLjctLjgtMTYtLjctMTYuMiAuMS0zMi40IDIuNy00OCA4bDAtMjE2LjJjMC01Mi45IDQyLjktOTUuOCA5NS43LTk1LjggNDguMyAwIDg5IDM2IDk1IDgzLjlsMSA4LjJjMi4yIDE3LjUtMTAuMiAzMy41LTI3LjggMzUuN3MtMzMuNS0xMC4yLTM1LjctMjcuOGwtMS04LjJjLTItMTUuOS0xNS41LTI3LjgtMzEuNS0yNy44LTE3LjUgMC0zMS43IDE0LjItMzEuNyAzMS44bDAgOTYuMiAxOTIgMCAwLTk2LjJDNDE2IDc0LjkgNDU4LjkgMzIgNTExLjggMzJ6XCJdXG59O1xudmFyIGZhTGFkZGVyV2F0ZXIgPSBmYVdhdGVyTGFkZGVyO1xudmFyIGZhU3dpbW1pbmdQb29sID0gZmFXYXRlckxhZGRlcjtcbnZhciBmYVRvd2VyQ2VsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b3dlci1jZWxsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTg1XCIsIFwiTTU5LjYgOS44QzQ3LjMgNC44IDMzLjMgMTAuNyAyOC40IDIzIDE1LjIgNTUuNSA4IDkwLjkgOCAxMjhzNy4yIDcyLjUgMjAuNCAxMDVjNSAxMi4zIDE5IDE4LjIgMzEuMyAxMy4yczE4LjItMTkgMTMuMi0zMS4zQzYyIDE4OC4yIDU2IDE1OC44IDU2IDEyOHM2LTYwLjIgMTYuOS04N2M1LTEyLjMtMS0yNi4zLTEzLjItMzEuM3ptNDU2LjggMGMtMTIuMyA1LTE4LjIgMTktMTMuMiAzMS4zIDEwLjkgMjYuOCAxNi45IDU2LjIgMTYuOSA4N3MtNiA2MC4yLTE2LjkgODdjLTUgMTIuMyAxIDI2LjMgMTMuMiAzMS4zczI2LjMtMSAzMS4zLTEzLjJjMTMuMS0zMi41IDIwLjQtNjcuOSAyMC40LTEwNXMtNy4yLTcyLjUtMjAuNC0xMDVjLTUtMTIuMy0xOS0xOC4yLTMxLjMtMTMuMnpNMzQwLjEgMTY1LjJjNy41LTEwLjUgMTEuOS0yMy4zIDExLjktMzcuMiAwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NGMwIDEzLjkgNC40IDI2LjcgMTEuOSAzNy4yTDk4LjkgNDY2LjhjLTcuMyAxNi4xLS4yIDM1LjEgMTUuOSA0Mi40czM1LjEgLjIgNDIuNC0xNS45bDIwLjYtNDUuMiAyMjAuNiAwIDIwLjYgNDUuMmM3LjMgMTYuMSAyNi4zIDIzLjIgNDIuNCAxNS45czIzLjItMjYuMyAxNS45LTQyLjRMMzQwLjEgMTY1LjJ6TTM3Ni41IDQwMGwtMTc3IDAgMjEuOC00OCAxMzMuMyAwIDIxLjggNDh6TTI4OCAyMDUuM2w0NC44IDk4LjctODkuNyAwIDQ0LjgtOTguN3pNMTYzLjMgNzMuNmM1LjMtMTIuMS0uMi0yNi4zLTEyLjQtMzEuNnMtMjYuMyAuMi0zMS42IDEyLjRDMTA5LjUgNzcgMTA0IDEwMS45IDEwNCAxMjhzNS41IDUxIDE1LjMgNzMuNmM1LjMgMTIuMSAxOS41IDE3LjcgMzEuNiAxMi40czE3LjctMTkuNSAxMi40LTMxLjZDMTU2IDE2NS44IDE1MiAxNDcuNCAxNTIgMTI4czQtMzcuOCAxMS4zLTU0LjR6TTQ1Ni43IDU0LjRjLTUuMy0xMi4xLTE5LjUtMTcuNy0zMS42LTEyLjRzLTE3LjcgMTkuNS0xMi40IDMxLjZDNDIwIDkwLjIgNDI0IDEwOC42IDQyNCAxMjhzLTQgMzcuOC0xMS4zIDU0LjRjLTUuMyAxMi4xIC4yIDI2LjMgMTIuNCAzMS42czI2LjMtLjIgMzEuNi0xMi40QzQ2Ni41IDE3OSA0NzIgMTU0LjEgNDcyIDEyOHMtNS41LTUxLTE1LjMtNzMuNnpcIl1cbn07XG52YXIgZmFDb2xvblNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29sb24tc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZTE0MFwiLCBcIk0yMTMuOCA4LjdjMTIuOSAzLjIgMjAuNyAxNi4yIDE3LjUgMjkuMWwtNC42IDE4LjVjMTUuNCAuOCAzMC40IDMuNCA0NC43IDcuNWw5LjQtMzcuNkMyODMuOSAxMy4zIDI5NyA1LjUgMzA5LjggOC43UzMzMC41IDI1IDMyNy4zIDM3LjhMMzE2IDgyLjhjMTMuNSA3LjggMjYgMTcuMSAzNy4yIDI3LjggMTIuOSAxMi4xIDEzLjQgMzIuNCAxLjMgNDUuMnMtMzIuNCAxMy40LTQ1LjIgMS4zYy0zLjEtMi45LTYuNC01LjgtOS44LTguNEwyMzkuMiAzOTBjMjYuOS00LjYgNTEuMS0xNy4xIDcwLjEtMzUuMSAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMmMtMzQuMyAzMi4zLTgwIDUyLjgtMTMwLjUgNTQuNGwtNy41IDI5LjljLTMuMiAxMi45LTE2LjIgMjAuNy0yOS4xIDE3LjVzLTIwLjctMTYuMi0xNy41LTI5LjFsNS42LTIyLjVjLTE1LTMuMi0yOS40LTgtNDIuOS0xNC40bC0xMi4xIDQ4LjVjLTMuMiAxMi45LTE2LjIgMjAuNy0yOS4xIDE3LjVTNjkuNSA0ODcgNzIuNyA0NzQuMmwxNi02My45QzQ0LjMgMzczLjYgMTYgMzE4LjEgMTYgMjU2IDE2IDE1OS4yIDg0LjggNzguNCAxNzYuMyA2MGw4LjQtMzMuOEMxODcuOSAxMy4zIDIwMSA1LjUgMjEzLjggOC43ek0xNTggMTMyLjljLTQ2LjEgMjEuOC03OCA2OC43LTc4IDEyMy4xIDAgMzAuNSAxMCA1OC42IDI2LjkgODEuM0wxNTggMTMyLjl6TTE0Ny40IDM3My40YzEzIDcuNiAyNy4zIDEzLjEgNDIuNSAxNi4xbDY1LjktMjYzLjZjLTEyLjYtMy44LTI1LjktNS45LTM5LjgtNS45LTEuOCAwLTMuNSAwLTUuMyAuMUwxNDcuNCAzNzMuNHpcIl1cbn07XG52YXIgZmFMYXB0b3BGaWxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xhcHRvcC1maWxlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNTFkXCIsIFwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDQxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDgtNjQgMCAwLTQ4LTI4OCAwIDAgMTkyIDExMiAwIDAgOTYtMTYzLjIgMEMzNC40IDM1MiAwIDMxNy42IDAgMjc1LjIgMCAyNjQuNiA4LjYgMjU2IDE5LjIgMjU2TDY0IDI1NiA2NCA2NHpNNTI5LjkgMjU3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNTQ0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjU2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDc2LjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xIDIwIDIwIDQ3LjkgNDcuOSA4My45IDgzLjl6TTQxNiAyNzJjMCA4LjggNy4yIDE2IDE2IDE2bDYwLjEgMC03Ni4xLTc2LjEgMCA2MC4xelwiXVxufTtcbnZhciBmYUJhaGFpID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhaGFpJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJoYXlrYWxcIl0sIFwiZjY2NlwiLCBcIk0yODguNC04YzEzLjIgMCAyNSA4LjEgMjkuOCAyMC40bDMxLjkgODIgNzcuMi00Mi4zYzExLjYtNi4zIDI1LjgtNC45IDM1LjkgMy41czE0IDIyLjMgOS43IDM0LjhsLTI4LjIgODMuMyA4Ni4zIDE3LjJjMTIuOSAyLjYgMjMgMTIuOCAyNS4zIDI1LjhzLTMuNiAyNi4xLTE0LjkgMzIuOWwtNzUuMiA0NS43IDU1IDY4LjZjOC4zIDEwLjMgOS4zIDI0LjYgMi43IDM2cy0xOS41IDE3LjYtMzIuNiAxNS42bC04Ny0xMy4zLTIgODhjLS4zIDEzLjItOC42IDI0LjgtMjEgMjkuNHMtMjYuMyAxLTM1LTlsLTU4LTY2LjEtNTggNjYuMWMtOC43IDkuOS0yMi42IDEzLjUtMzUgOXMtMjAuOC0xNi4yLTIxLTI5LjRsLTItODgtODcgMTMuM2MtMTMgMi0yNi00LjItMzIuNi0xNS42cy01LjUtMjUuNyAyLjctMzZsNTUtNjguNi03NS4yLTQ1LjdjLTExLjMtNi44LTE3LjItMTkuOS0xNC45LTMyLjlzMTIuMy0yMy4yIDI1LjMtMjUuOGw4Ni4zLTE3LjItMjguMi04My4zYy00LjItMTIuNS0uNC0yNi4zIDkuNy0zNC44czI0LjQtOS45IDM1LjktMy41bDc3LjEgNDIuMyAzMS45LTgyQzI2My4zIC4xIDI3NS4yLTggMjg4LjQtOHptMCAxMjAuMkwyNzMgMTUxLjZjLTMuMyA4LjYtMTAuMiAxNS4zLTE4LjkgMTguNXMtMTguMiAyLjQtMjYuMy0ybC0zNy0yMC4zIDEzLjYgNDBjMyA4LjcgMiAxOC4zLTIuNiAyNi4zcy0xMi40IDEzLjYtMjEuNSAxNS40bC00MS40IDguMyAzNi4xIDIxLjljNy45IDQuOCAxMy4zIDEyLjcgMTQuOSAyMS44cy0uOCAxOC40LTYuNSAyNS42bC0yNi40IDMzIDQxLjgtNi40YzkuMS0xLjQgMTguNCAxLjIgMjUuNCA3LjFzMTEuMiAxNC42IDExLjQgMjMuOGwuOSA0Mi4yIDI3LjktMzEuOGM2LjEtNi45IDE0LjgtMTAuOSAyNC4xLTEwLjlzMTggNCAyNC4xIDEwLjlsMjcuOSAzMS44IC45LTQyLjJjLjItOS4yIDQuNC0xNy45IDExLjQtMjMuOHMxNi4zLTguNSAyNS40LTcuMWw0MS44IDYuNC0yNi40LTMzYy01LjgtNy4yLTguMi0xNi41LTYuNi0yNS42czctMTcgMTQuOS0yMS44bDM2LjEtMjEuOS00MS40LTguM2MtOS0xLjgtMTYuOS03LjQtMjEuNS0xNS40cy01LjUtMTcuNi0yLjYtMjYuM2wxMy42LTQwLTM3IDIwLjNjLTguMSA0LjQtMTcuNyA1LjItMjYuMyAycy0xNS41LTkuOS0xOC45LTE4LjVsLTE1LjMtMzkuNHpcIl1cbn07XG52YXIgZmFIYXlrYWwgPSBmYUJhaGFpO1xudmFyIGZhTW9uZXlCaWxsMSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1iaWxsLTEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcIm1vbmV5LWJpbGwtYWx0XCJdLCBcImYzZDFcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE5MiA4MGExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6TTY0IDE4NGwwLTQ4YzAtNC40IDMuNi04IDgtOGw0OCAwYzQuNCAwIDguMSAzLjYgNy41IDgtMy42IDI5LTI2LjYgNTEuOS01NS41IDU1LjUtNC40IC41LTgtMy4xLTgtNy41em0wIDE0NGMwLTQuNCAzLjYtOC4xIDgtNy41IDI5IDMuNiA1MS45IDI2LjYgNTUuNSA1NS41IC41IDQuNC0zLjEgOC03LjUgOGwtNDggMGMtNC40IDAtOC0zLjYtOC04bDAtNDh6TTQ0MCAxOTEuNWMtMjktMy42LTUxLjktMjYuNi01NS41LTU1LjUtLjUtNC40IDMuMS04IDcuNS04bDQ4IDBjNC40IDAgOCAzLjYgOCA4bDAgNDhjMCA0LjQtMy42IDguMS04IDcuNXpNNDQ4IDMyOGwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNSA0LjQtLjUgOCAzLjEgOCA3LjV6TTI0MCAxODhjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNDguNC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDQ4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDB6XCJdXG59O1xudmFyIGZhTW9uZXlCaWxsQWx0ID0gZmFNb25leUJpbGwxO1xudmFyIGZhQ2xvdWRCb2x0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkLWJvbHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc3ODUsIFwidGh1bmRlcnN0b3JtXCJdLCBcImY3NmNcIiwgXCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwzOC42IDAgMTI0LjEtMTExYzEyLjItMTAuOSAyOC0xNyA0NC40LTE3IDQ0LjYgMCA3Ni41IDQzIDYzLjcgODUuN0wzNTQuMSAzMjAgNDE2IDMyMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMCAxLjEtNS4yIDEuNi0xMC41IDEuNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjgtMTguNy0zNS43LTU2LjEtNjAtOTkuMi02MC02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDcuMSAuNyAxNC4xIDEuOSAyMC44LTM4LjMgMTIuNi02NS45IDQ4LjctNjUuOSA5MS4yek0xNjAuNiA0MDBsNjEuOCAwLTMxLjIgMTA0LjFjLTMuNiAxMS45IDUuMyAyMy45IDE3LjggMjMuOSA0LjYgMCA5LTEuNyAxMi40LTQuN0wzNjIuNSAzOTYuOWMzLjUtMy4xIDUuNS03LjYgNS41LTEyLjQgMC05LjItNy40LTE2LjYtMTYuNi0xNi42bC02MS44IDAgMzEuMi0xMDQuMWMzLjYtMTEuOS01LjMtMjMuOS0xNy44LTIzLjktNC42IDAtOSAxLjctMTIuNCA0LjdMMTQ5LjUgMzcxLjFjLTMuNSAzLjEtNS41IDcuNi01LjUgMTIuNCAwIDkuMiA3LjQgMTYuNiAxNi42IDE2LjZ6XCJdXG59O1xudmFyIGZhVGh1bmRlcnN0b3JtID0gZmFDbG91ZEJvbHQ7XG52YXIgZmFFdGhlcm5ldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdldGhlcm5ldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc5NlwiLCBcIk0wIDIyNEwwIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgNjQgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDY0IDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCA2NCAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMTYwIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6XCJdXG59O1xudmFyIGZhSHJ5dm5pYVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaHJ5dm5pYS1zaWduJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbODM3MiwgXCJocnl2bmlhXCJdLCBcImY2ZjJcIiwgXCJNMzM2IDE0OS40QzMzNiA3NyAyNjguNSAyMy41IDE5OCA0MC4xTDkzLjIgNjQuOUM3NiA2OC45IDY1LjQgODYuMiA2OS40IDEwMy40czIxLjMgMjcuOSAzOC41IDIzLjhsMTA0LjgtMjQuN2MzMC4zLTcuMSA1OS4zIDE1LjggNTkuMyA0Ni45IDAgMTcuNi05LjYgMzMuOC0yNSA0Mi4zbC0uNyAuNC0yMjIuMyAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMi40IDBjNS41LTEzLjMgOC40LTI3LjggOC40LTQyLjZ6TTM2MCAyNzJMMjQgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzLjMgMGMtNi4xIDEzLjQtOS4zIDI4LjEtOS4zIDQzLjMgMCA2NC4xIDU2LjkgMTEzLjQgMTIwLjQgMTA0LjJsMTM3LjktMTkuOWMxNy41LTIuNSAyOS42LTE4LjcgMjcuMS0zNi4ycy0xOC44LTI5LjYtMzYuMi0yNy4xTDE1OS4yIDQwNC4yYy0yNC45IDMuNi00Ny4yLTE1LjctNDcuMi00MC45IDAtMTUuMSA4LjItMjguOSAyMS40LTM2LjJsMTMtNy4xIDIxMy42IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6XCJdXG59O1xudmFyIGZhSHJ5dm5pYSA9IGZhSHJ5dm5pYVNpZ247XG52YXIgZmFFeWVTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdleWUtc2xhc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwNzBcIiwgXCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNC05Ni40YzIuNy0yLjQgNS40LTQuOCA4LTcuMiA0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNi01Ni44IDAtMTA1LjYgMTguMi0xNDYgNDQuMkw0MS0yNC45ek0yMDQuNSAxMzguN2MyMy41LTE2LjggNTIuNC0yNi43IDgzLjUtMjYuNyA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDMxLjEtOS45IDU5LjktMjYuNyA4My41bC0zNC43LTM0LjdjMTIuNy0yMS40IDE3LTQ3LjcgMTAuMS03My43LTEzLjctNTEuMi02Ni40LTgxLjYtMTE3LjYtNjcuOS04LjYgMi4zLTE2LjcgNS43LTI0IDEwbC0zNC43LTM0Ljd6TTMyNS4zIDM5NS4xYy0xMS45IDMuMi0yNC40IDQuOS0zNy4zIDQuOS03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTEyLjkgMS43LTI1LjQgNC45LTM3LjNMNjkuNCAxMzkuMmMtMzIuNiAzNi44LTU1IDc1LjgtNjYuOSAxMDQuNS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjYgMzcuMyAwIDcxLjItNy45IDEwMS41LTIwLjZsLTY0LjItNjQuMnpcIl1cbn07XG52YXIgZmFDYXJ0RmxhdGJlZFN1aXRjYXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcnQtZmxhdGJlZC1zdWl0Y2FzZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wibHVnZ2FnZS1jYXJ0XCJdLCBcImY1OWRcIiwgXCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM0LjcgMGMxLjggNSAyLjcgMTAuNCAyLjcgMTYgMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC01LjYgMS0xMSAyLjctMTZsLTE5Ny41IDBjMS44IDUgMi43IDEwLjQgMi43IDE2IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNiAxLjEtMTEuNyAzLjEtMTctMzguMS02LjItNjcuMS0zOS4yLTY3LjEtNzlMNjQgODBjMC04LjgtNy4yLTE2LTE2LTE2TDMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJ6TTE3NiAxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhsMzIgMCAwLTI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2bDY0IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAyNCAzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNDAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNDR6TTM4NCA5NmwwLTI0YzAtNC40LTMuNi04LTgtOGwtNjQgMGMtNC40IDAtOCAzLjYtOCA4bDAgMjQgODAgMHpcIl1cbn07XG52YXIgZmFMdWdnYWdlQ2FydCA9IGZhQ2FydEZsYXRiZWRTdWl0Y2FzZTtcbnZhciBmYVJhZGlhdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyYWRpYXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY3YjlcIiwgXCJNNDQ2LjIgMzQuNWMtMTQuMi0xMC4xLTMzLjUtNC42LTQyLjIgMTAuNUwzMzEuNiAxNzAuM2MzMS4zIDE1LjggNTIuOCA0OC4zIDUyLjggODUuN2wxNDQgMGMxNy43IDAgMzIuMi0xNC40IDMwLjEtMzEuOS05LjEtNzguMS01MS40LTE0Ni4xLTExMi4zLTE4OS42ek0xNzIuNyA0NC45QzE2NCAyOS44IDE0NC43IDI0LjMgMTMwLjUgMzQuNSA2OS42IDc3LjkgMjcuMyAxNDUuOSAxOC4yIDIyNC4xIDE2LjEgMjQxLjYgMzAuNyAyNTYgNDguMyAyNTZsMTQ0IDBjMC0zNy41IDIxLjUtNjkuOSA1Mi44LTg1LjdMMTcyLjcgNDQuOXptLTkuNCA0MTYuOGMtOC43IDE1LjEtMy44IDM0LjUgMTIgNDEuOCAzNC40IDE1LjcgNzIuNyAyNC41IDExMyAyNC41czc4LjYtOC44IDExMy0yNC41YzE1LjgtNy4yIDIwLjctMjYuNyAxMi00MS44TDM0MSAzMzYuM2MtMTUuMSA5LjktMzMuMiAxNS43LTUyLjYgMTUuN3MtMzcuNS01LjgtNTIuNi0xNS43TDE2My4zIDQ2MS43ek0yODguMyAzMDRhNDggNDggMCAxIDAgLS43LTk2IDQ4IDQ4IDAgMSAwIC43IDk2elwiXVxufTtcbnZhciBmYUZpbGVXb3JkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtd29yZCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjMlwiLCBcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTM1LjQgMjc0LjhjLTIuOS0xMi45LTE1LjctMjEuMS0yOC42LTE4LjJzLTIxLjEgMTUuNy0xOC4yIDI4LjZsMzIgMTQ0YzIuMyAxMC41IDExLjQgMTguMiAyMi4yIDE4LjhzMjAuNi02LjEgMjQtMTYuNGwyNS4yLTc1LjcgMjUuMiA3NS43YzMuNCAxMC4yIDEzLjIgMTYuOSAyNCAxNi40czE5LjktOC4yIDIyLjItMTguOGwzMi0xNDRjMi45LTEyLjktNS4zLTI1LjgtMTguMi0yOC42cy0yNS44IDUuMy0yOC42IDE4LjJsLTEzLjIgNTkuNC0yMC42LTYxLjhjLTMuMy05LjgtMTIuNC0xNi40LTIyLjgtMTYuNHMtMTkuNSA2LjYtMjIuOCAxNi40bC0yMC42IDYxLjgtMTMuMi01OS40elwiXVxufTtcbnZhciBmYUJlZFB1bHNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JlZC1wdWxzZScsXG4gIGljb246IFs2NDAsIDUxMiwgW1wicHJvY2VkdXJlc1wiXSwgXCJmNDg3XCIsIFwiTTUzMS4yLTIyLjRMNTcyIDMyIDYxNiAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMGMtNy42IDAtMTQuNy0zLjYtMTkuMi05LjZsLTI0LjEtMzIuMS00NyA5OS45Yy0zLjcgNy44LTExLjMgMTMuMS0xOS45IDEzLjdzLTE2LjktMy40LTIxLjctMTAuNkwzODcuMiA4MCAzNDQgODBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNTYgMGM4IDAgMTUuNSA0IDIwIDEwLjdsMjQuNCAzNi42IDQ1LjktOTcuNWMzLjYtNy42IDEwLjktMTIuOCAxOS4zLTEzLjdzMTYuNiAyLjcgMjEuNiA5LjV6TTMyMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsOS41IDAgMjYuNiAzOS45YzE0LjQgMjEuNiAzOS4zIDMzLjggNjUuMiAzMS45czQ4LjgtMTcuNiA1OS44LTQxLjFMNTI3IDEyOS4yYzQ1LjkgNy4yIDgxIDQ2LjkgODEgOTQuOGwwIDIyNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTQ0OCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMMzIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJTOTYgNDYuMyA5NiA2NGwwIDIyNCAyMjQgMCAwLTEyOHpNMTQ0IDE5MmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6XCJdXG59O1xudmFyIGZhUHJvY2VkdXJlcyA9IGZhQmVkUHVsc2U7XG52YXIgZmFUZW50cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50cycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU4MlwiLCBcIk01MzkuOSAzNTJsLTk1LjYgMC04LjQtNjYuMWMtMi45LTIzLjItMTUuOS00My45LTM1LjQtNTYuOEwyNTIuMiAxMzEuNWMtMTgtMTEuOS0zOS43LTE1LjctNjAuMS0xMS41IDIuNS00LjMgNS45LTcuOSAxMC4xLTEwLjdMMzUwLjYgMTEuNmMxMC43LTcgMjQuNS03IDM1LjIgMGwxNDguNCA5Ny43YzcuOCA1LjEgMTMgMTMuNCAxNC4yIDIyLjdsMjMuMyAxODRjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2ek00LjggNDc2bDIzLjMtMTg0YzEuMi05LjMgNi4zLTE3LjYgMTQuMi0yMi43bDE0OC40LTk3LjdjMTAuNy03IDI0LjUtNyAzNS4yIDBsMTQ4LjQgOTcuN2M3LjggNS4xIDEzIDEzLjQgMTQuMiAyMi43bDIzLjMgMTg0YzIuNCAxOS4xLTEyLjUgMzYtMzEuNyAzNmwtNDkuNyAwYy0xMS4yIDAtMjEuNS01LjgtMjcuMy0xNS40bC03Ny0xMjYuN2MtMS43LTIuOC00LjgtNC42LTguMS00LjYtNS4zIDAtOS41IDQuMy05LjUgOS41bDAgMTA1LjJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzYuNSA1MTJjLTE5LjMgMC0zNC4yLTE2LjktMzEuNy0zNnpcIl1cbn07XG52YXIgZmFNdWdIb3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbXVnLWhvdCcsXG4gIGljb246IFs1NzYsIDUxMiwgWzk3NDldLCBcImY3YjZcIiwgXCJNMTUyLTE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNCAwIDM4LjkgMjMuNCA1OS40IDM5LjEgNzMuMWwxLjEgMWMxNi4zIDE0LjMgMjMuOCAyMS44IDIzLjggMzcuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzguOS0yMy40LTU5LjQtMzkuMS03My4xbC0xLjEtMUMxODMuNSAzMS43IDE3NiAyNC4xIDE3NiA4IDE3Ni01LjMgMTY1LjMtMTYgMTUyLTE2ek05NiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTkyYzAgNTMgNDMgOTYgOTYgOTZsMTkyIDBjNDEuOCAwIDc3LjQtMjYuNyA5MC41LTY0bDUuNSAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzUxOC43IDE5MiA0NDggMTkyTDk2IDE5MnpNNDQ4IDM4NGwwLTEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NHpNMjg4IDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMjQwLTUuMyAyNDAgOGMwIDM4LjkgMjMuNCA1OS40IDM5LjEgNzMuMWwxLjEgMWMxNi4zIDE0LjMgMjMuOCAyMS44IDIzLjggMzcuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzguOS0yMy40LTU5LjQtMzkuMS03My4xbC0xLjEtMUMyOTUuNSAzMS43IDI4OCAyNC4xIDI4OCA4elwiXVxufTtcbnZhciBmYUJvbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9sdCcsXG4gIGljb246IFs0NDgsIDUxMiwgWzk4ODksIFwiemFwXCJdLCBcImYwZTdcIiwgXCJNMzM4LjgtOS45YzExLjkgOC42IDE2LjMgMjQuMiAxMC45IDM3LjhMMjcxLjMgMjI0IDQxNiAyMjRjMTMuNSAwIDI1LjUgOC40IDMwLjEgMjEuMXMuNyAyNi45LTkuNiAzNS41bC0yODggMjQwYy0xMS4zIDkuNC0yNy40IDkuOS0zOS4zIDEuM3MtMTYuMy0yNC4yLTEwLjktMzcuOEwxNzYuNyAyODggMzIgMjg4Yy0xMy41IDAtMjUuNS04LjQtMzAuMS0yMS4xcy0uNy0yNi45IDkuNi0zNS41bDI4OC0yNDBjMTEuMy05LjQgMjcuNC05LjkgMzkuMy0xLjN6XCJdXG59O1xudmFyIGZhWmFwID0gZmFCb2x0O1xudmFyIGZhSmFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2phcicsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZTUxNlwiLCBcIk0zMi04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDIwOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDU2IDE2QzQyLjcgMTYgMzIgNS4zIDMyLTh6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTk2IDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAxOTJ6XCJdXG59O1xudmFyIGZhVHJ1Y2tQbGFuZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cnVjay1wbGFuZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU4ZlwiLCBcIk0xNDQgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDMyMGMwIDMyLjUgMTIuMSA2Mi4xIDMyIDg0LjdsMCAyNy4zYzAgNy4xIC45IDE0LjEgMi43IDIwLjdMMTkyIDQ4MCA4My45IDUwN0M3My44IDUwOS42IDY0IDUwMS45IDY0IDQ5MS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw3NC01OS4yIDAtNTcuNi0xMjIuMSA0OC44QzExLjQgMzk1LjQgMCAzODcuNyAwIDM3Ni40bDAtNDRjMC04IDMtMTUuNiA4LjMtMjEuNUwxNDQgMTYxLjYgMTQ0IDQ4em0yMjQgODBsMTkyIDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNjBjMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTYwIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4Yy0xOS40LTE0LjYtMzItMzcuOC0zMi02NGwwLTE2MGMwLTQ0LjIgMzUuOC04MCA4MC04MHptMCAxNzZsMTkyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJ6bTAgODhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yMTYtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIl1cbn07XG52YXIgZmFIYW5kSG9sZGluZ0hlYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtaG9sZGluZy1oZWFydCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjRiZVwiLCBcIk0yNzkuNiAzMUMyNjUuNSAxMS41IDI0Mi45IDAgMjE4LjkgMCAxNzcuNSAwIDE0NCAzMy41IDE0NCA3NC45bDAgMi40YzAgNjQuNCA4MiAxMzMuNCAxMjIuMiAxNjMuMyAxMyA5LjcgMzAuNSA5LjcgNDMuNSAwIDQwLjItMzAgMTIyLjItOTguOSAxMjIuMi0xNjMuM2wwLTIuNGMwLTQxLjQtMzMuNS03NC45LTc0LjktNzQuOS0yNCAwLTQ2LjYgMTEuNS02MC43IDMxTDI4OCA0Mi43IDI3OS42IDMxek0xMDkuMyAzNDEuNUw2Ni43IDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MTYgMjgwIDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNTIuMiAwYy0zMy45IDAtNjYuNSAxMy41LTkwLjUgMzcuNXpcIl1cbn07XG52YXIgZmFBcnJvd1JvdGF0ZUxlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctcm90YXRlLWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs4NjM0LCBcImFycm93LWxlZnQtcm90YXRlXCIsIFwiYXJyb3ctcm90YXRlLWJhY2tcIiwgXCJhcnJvdy1yb3RhdGUtYmFja3dhcmRcIiwgXCJ1bmRvXCJdLCBcImYwZTJcIiwgXCJNMjU2IDY0Yy01Ni44IDAtMTA3LjkgMjQuNy0xNDMuMSA2NGw0Ny4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMFM2NCAxNC4zIDY0IDMybDAgNTQuN0MxMTAuOSAzMy42IDE3OS41IDAgMjU2IDAgMzk3LjQgMCA1MTIgMTE0LjYgNTEyIDI1NlMzOTcuNCA1MTIgMjU2IDUxMmMtODcgMC0xNjMuOS00My40LTIxMC4xLTEwOS43LTEwLjEtMTQuNS02LjYtMzQuNCA3LjktNDQuNnMzNC40LTYuNiA0NC42IDcuOWMzNC44IDQ5LjggOTIuNCA4Mi4zIDE1Ny42IDgyLjMgMTA2IDAgMTkyLTg2IDE5Mi0xOTJTMzYyIDY0IDI1NiA2NHpcIl1cbn07XG52YXIgZmFBcnJvd0xlZnRSb3RhdGUgPSBmYUFycm93Um90YXRlTGVmdDtcbnZhciBmYUFycm93Um90YXRlQmFjayA9IGZhQXJyb3dSb3RhdGVMZWZ0O1xudmFyIGZhQXJyb3dSb3RhdGVCYWNrd2FyZCA9IGZhQXJyb3dSb3RhdGVMZWZ0O1xudmFyIGZhVW5kbyA9IGZhQXJyb3dSb3RhdGVMZWZ0O1xudmFyIGZhRmFjZUFuZ3J5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtYW5ncnknLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1NDQsIFwiYW5ncnlcIl0sIFwiZjU1NlwiLCBcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0yNTYgMzY4YzI0LjEgMCA0NS40IDExLjggNTguNSAzMCA3LjcgMTAuOCAyMi43IDEzLjIgMzMuNSA1LjVzMTMuMi0yMi43IDUuNS0zMy41Yy0yMS43LTMwLjItNTcuMy01MC05Ny41LTUwcy03NS43IDE5LjgtOTcuNSA1MGMtNy43IDEwLjgtNS4zIDI1LjggNS41IDMzLjVzMjUuOCA1LjMgMzMuNS01LjVjMTMuMS0xOC4yIDM0LjQtMzAgNTguNS0zMHptLTgwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtLjMgOS43IDMuMmMxMC41IDMuNSAyMS44LTIuMiAyNS4zLTEyLjZzLTIuMi0yMS44LTEyLjYtMjUuM2wtOTYtMzJjLTEwLjUtMy41LTIxLjggMi4yLTI1LjMgMTIuNnMyLjIgMjEuOCAxMi42IDI1LjNsMjguOSA5LjZjLTQuMSA1LjQtNi42IDEyLjEtNi42IDE5LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE5Mi0zMmMwLTcuMy0yLjQtMTQtNi42LTE5LjRsMjguOS05LjZjMTAuNS0zLjUgMTYuMS0xNC44IDEyLjYtMjUuM3MtMTQuOC0xNi4xLTI1LjMtMTIuNmwtOTYgMzJjLTEwLjUgMy41LTE2LjEgMTQuOC0xMi42IDI1LjNzMTQuOCAxNi4xIDI1LjMgMTIuNmw5LjctMy4yIDAgLjNjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpcIl1cbn07XG52YXIgZmFBbmdyeSA9IGZhRmFjZUFuZ3J5O1xudmFyIGZhQnVyc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVyc3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0ZGNcIiwgXCJNMzcuNiA0LjJDMjgtMi4zIDE1LjItMS4xIDcgN1MtMi4zIDI4IDQuMiAzNy42bDExMiAxNjMuMy05OS42IDMyLjNDNi43IDIzNi40IDAgMjQ1LjYgMCAyNTZzNi43IDE5LjYgMTYuNiAyMi44bDEwMy4xIDMzLjQtNTIuOSAxMDAuNmMtNC45IDkuMy0zLjIgMjAuNyA0LjMgMjguMXMxOC44IDkuMiAyOC4xIDQuM2wxMDAuNi01Mi45IDMzLjQgMTAzLjFjMy4yIDkuOSAxMi40IDE2LjYgMjIuOCAxNi42czE5LjYtNi43IDIyLjgtMTYuNmwzMy40LTEwMy4xIDEwMC42IDUyLjljOS4zIDQuOSAyMC43IDMuMiAyOC4xLTQuM3M5LjItMTguOCA0LjMtMjguMWwtNTIuOS0xMDAuNiAxMDMuMS0zMy40YzkuOS0zLjIgMTYuNi0xMi40IDE2LjYtMjIuOHMtNi43LTE5LjYtMTYuNi0yMi44bC0xMDYuNS0zNC41IDI1LjctNzAuNGMzLjItOC44IDEtMTguNi01LjYtMjUuMnMtMTYuNC04LjgtMjUuMi01LjZsLTcwLjQgMjUuNy0zNC41LTEwNi41QzI3NS42IDYuNyAyNjYuNCAwIDI1NiAwcy0xOS42IDYuNy0yMi44IDE2LjZMMjAwLjkgMTE2LjIgMzcuNiA0LjJ6XCJdXG59O1xudmFyIGZhWiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd6JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbMTIyXSwgXCI1YVwiLCBcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDMyMCAwYzEyLjQgMCAyMy43IDcuMiAyOSAxOC40czMuNiAyNC41LTQuNCAzNC4xTDEwMC4zIDQxNiAzNTIgNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTIuNCAwLTIzLjctNy4yLTI5LTE4LjRzLTMuNi0yNC41IDQuNC0zNC4xTDI4My43IDk2IDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6XCJdXG59O1xudmFyIGZhQmFuZGFnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYW5kYWdlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI5NjU3LCBcImJhbmQtYWlkXCJdLCBcImY0NjJcIiwgXCJNNDY0IDQxNmw0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC00OCAwIDAgMzIwek00MTYgOTZsLTI1NiAwIDAgMzIwIDI1NiAwIDAtMzIwek02NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDggMCAwLTMyMC00OCAwek0yMTYgMjA4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyMC0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTIxNiAzMDRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIl1cbn07XG52YXIgZmFCYW5kQWlkID0gZmFCYW5kYWdlO1xudmFyIGZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbGFuZS1jaXJjbGUtZXhjbGFtYXRpb24nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NTZcIiwgXCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2elwiXVxufTtcbnZhciBmYUJ1c1NpZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVzLXNpZGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU4MWRcIiwgXCJNNDgwIDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTUuNiAwYy0xMy4yIDM3LjMtNDguNiA2NC05MC40IDY0cy03Ny4zLTI2LjctOTAuNC02NGwtMTM5LjEgMGMtMTMuMiAzNy4zLTQ4LjcgNjQtOTAuNCA2NHMtNzcuMi0yNi43LTkwLjQtNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNDMgNDMgMCA5NiAwTDQ4MCAwek0xNjAgMzY4YTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnptMzIwIDBhNDggNDggMCAxIDAgMCA5NiA0OCA0OCAwIDEgMCAwLTk2em0wLTMwNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2ek0yNDggMjI0bDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTEwNCAwIDAgMTYwek05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMCAwLTE2MC0xMDQgMHpcIl1cbn07XG52YXIgZmFCdWdzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1Z3MnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU0ZDBcIiwgXCJNNDQ3LjUgMTc0LjZjOC44LTguNCAyMi43LTguOSAzMi4yLS44czExIDIxLjkgNC4xIDMxLjlsLTEuNSAxLjktMjMgMjYuN2MyNi43IDEzLjUgNDYuMyAzOS4xIDUxLjQgNjkuNmwyNS4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI0IDAgMCAzMiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNS4zIDBjLTcuNiA0NS40LTQ3LjEgODAtOTQuNyA4MHMtODctMzQuNi05NC43LTgwTDI5NiA0MzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTMyLTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjUuMyAwYzUuMS0zMC41IDI0LjctNTYuMSA1MS40LTY5LjZsLTIyLjktMjYuN2MtOC42LTEwLjEtNy41LTI1LjIgMi42LTMzLjhzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44em0tMjU2LTE5MmM4LjgtOC40IDIyLjctOC45IDMyLjItLjhzMTEgMjEuOSA0LjEgMzEuOWwtMS41IDEuOS0yMyAyNi43QzIzMCA1NS45IDI0OS41IDgxLjUgMjU0LjcgMTEybDI1LjMgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQgMCAwIDMyIDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1LjMgMGMtNy42IDQ1LjQtNDcuMSA4MC05NC43IDgwcy04Ny0zNC42LTk0LjctODBMNDAgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC0zMi0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI1LjMgMEM3MC41IDgxLjUgOTAgNTUuOSAxMTYuNyA0Mi40TDkzLjggMTUuNkM4NS4yIDUuNiA4Ni4zLTkuNiA5Ni40LTE4LjJzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44elwiXVxufTtcbnZhciBmYUJlZXJNdWdFbXB0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiZWVyLW11Zy1lbXB0eScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wiYmVlclwiXSwgXCJmMGZjXCIsIFwiTTY0IDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDI4OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYgNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEwOC4yYzAgMjQuMi0xMy43IDQ2LjQtMzUuNCA1Ny4yTDQ0OCAzNzEuOCA0NDggMzg0YzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2TDY0IDgwek00NDggMzAwLjJsNjQtMzIgMC0xMDguMi02NCAwIDAgMTQwLjJ6TTE5MiAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHptODggMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4em04OCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6XCJdXG59O1xudmFyIGZhQmVlciA9IGZhQmVlck11Z0VtcHR5O1xudmFyIGZhUGVyc29uQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWNpcmNsZS1jaGVjaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUzZVwiLCBcIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41elwiXVxufTtcbnZhciBmYVN0YXBsZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RhcGxlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTVhZlwiLCBcIk02NDAgMjk5LjNMNjQwIDQzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDAgMC00OC0zNTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTYuNi0zMC4yLTUuNGMtMTkuNi0zLjUtMzMuOC0yMC41LTMzLjgtNDAuNCAwLTguOSAyLjktMTcuNSA4LjItMjQuNmwzNS42LTQ3LjVjMzIuOC00My44IDg0LjQtNjkuNiAxMzkuMS02OS42IDI3IDAgNTMuNiA2LjMgNzcuOCAxOC40TDU4Ni45IDIxMy41QzYxOS41IDIyOS43IDY0MCAyNjMgNjQwIDI5OS4zek00NDggMzA0bDAtMTYtMzIwLTU3LjEgMCA3My4xIDMyMCAwelwiXVxufTtcbnZhciBmYUhvdXNlTWVkaWNhbENpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLW1lZGljYWwtY2lyY2xlLWNoZWNrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTExXCIsIFwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41elwiXVxufTtcbnZhciBmYU5haXJhU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICduYWlyYS1zaWduJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMWY2XCIsIFwiTTEyMi42IDQ2LjNjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzY0IDQ5LjkgNjQgNjRsMCAxOTItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQgODkuNSAwIDEwNy44IDE2MS44YzcuOCAxMS43IDIyLjQgMTcgMzUuOSAxMi45UzM4NCA0NjIuMSAzODQgNDQ4bDAtMTQ0IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTItNTcuNSAwLTEzOS44LTIwOS43ek0yOTQuNSAzMDRsMjUuNSAwIDAgMzguMy0yNS41LTM4LjN6TTE4NS41IDI1NmwtNTcuNSAwIDAtODYuMyA1Ny41IDg2LjN6XCJdXG59O1xudmFyIGZhV2lmaSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aWZpJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJ3aWZpLTNcIiwgXCJ3aWZpLXN0cm9uZ1wiXSwgXCJmMWViXCIsIFwiTTI4OCA5NmMtOTAuOSAwLTE3My4yIDM2LTIzMy43IDk0LjYtMTIuNyAxMi4zLTMzIDEyLTQ1LjItLjdzLTEyLTMzIC43LTQ1LjJDODEuNyA3NC45IDE3OS45IDMyIDI4OCAzMlM0OTQuMyA3NC45IDU2Ni4zIDE0NC43YzEyLjcgMTIuMyAxMyAzMi42IC43IDQ1LjJzLTMyLjYgMTMtNDUuMiAuN0M0NjEuMiAxMzIgMzc4LjkgOTYgMjg4IDk2ek0yNDAgNDMyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAzMjYuMmMtMTEuNyAxMy4zLTMxLjkgMTQuNS00NS4yIDIuOHMtMTQuNS0zMS45LTIuOC00NS4yQzE2MSAyMzcuNCAyMjEuMSAyMDggMjg4IDIwOHMxMjcgMjkuNCAxNjggNzUuOGMxMS43IDEzLjMgMTAuNCAzMy41LTIuOCA0NS4ycy0zMy41IDEwLjQtNDUuMi0yLjhDMzc4LjYgMjkyLjkgMzM1LjggMjcyIDI4OCAyNzJzLTkwLjYgMjAuOS0xMjAgNTQuMnpcIl1cbn07XG52YXIgZmFXaWZpMyA9IGZhV2lmaTtcbnZhciBmYVdpZmlTdHJvbmcgPSBmYVdpZmk7XG52YXIgZmFNb25leUNoZWNrRG9sbGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWNoZWNrLWRvbGxhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wibW9uZXktY2hlY2stYWx0XCJdLCBcImY1M2RcIiwgXCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTI5NiAyODhsMTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTEyOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0tMjQtODhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTEyOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMTQ4IDE0NGMxMSAwIDIwIDkgMjAgMjBsMCA0IDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTQ3LjUgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgNi4xIDQuNCAxMS4zIDEwLjQgMTIuM2w0MS43IDdjMjUuMyA0LjIgNDMuOSAyNi4xIDQzLjkgNTEuOCAwIDI2LjEtMTkgNDcuNy00NCA1MS44bDAgNC43YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTQtMjQgMGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTUuNSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTYuMS00LjQtMTEuMy0xMC40LTEyLjNsLTQxLjctN0M5NC41IDI2OCA3NiAyNDYuMSA3NiAyMjAuNSA3NiAxOTEuNyA5OS4yIDE2OC4zIDEyOCAxNjhsMC00YzAtMTEgOS0yMCAyMC0yMHpcIl1cbn07XG52YXIgZmFNb25leUNoZWNrQWx0ID0gZmFNb25leUNoZWNrRG9sbGFyO1xudmFyIGZhRXllTG93VmlzaW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V5ZS1sb3ctdmlzaW9uJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJsb3ctdmlzaW9uXCJdLCBcImYyYThcIiwgXCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNC05Ni40YzIuNy0yLjQgNS40LTQuOCA4LTcuMiA0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNi01Ni44IDAtMTA1LjYgMTguMi0xNDYgNDQuMkw0MS0yNC45ek0yMDQuNSAxMzguN2MyMy41LTE2LjggNTIuNC0yNi43IDgzLjUtMjYuNyA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDMxLjEtOS45IDU5LjktMjYuNyA4My41bC0zNC43LTM0LjdjMTIuNy0yMS40IDE3LTQ3LjcgMTAuMS03My43LTEzLjctNTEuMi02Ni40LTgxLjYtMTE3LjYtNjcuOS04LjYgMi4zLTE2LjcgNS43LTI0IDEwbC0zNC43LTM0Ljd6TTg4IDE1Ny45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDMyOC4yIDQ2NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMODggMTU3Ljl6TTQ1LjcgMjUxLjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlMMTgxLjkgNDU1LjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ1LjcgMjUxLjN6XCJdXG59O1xudmFyIGZhTG93VmlzaW9uID0gZmFFeWVMb3dWaXNpb247XG52YXIgZmFDaXJjbGVBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NpcmNsZS1hcnJvdy11cCcsXG4gIGljb246IFs1MTIsIDUxMiwgW1wiYXJyb3ctY2lyY2xlLXVwXCJdLCBcImYwYWFcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTE3LTM3N2w4MCA4MGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zOS0zOSAwIDE1MC4xYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTUwLjEtMzkgMzljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsODAtODBjOS40LTkuNCAyNC42LTkuNCAzMy45IDB6XCJdXG59O1xudmFyIGZhQXJyb3dDaXJjbGVVcCA9IGZhQ2lyY2xlQXJyb3dVcDtcbnZhciBmYUNhbWVyYVJldHJvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbWVyYS1yZXRybycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI0N10sIFwiZjA4M1wiLCBcIk0wIDQxNmwwLTIwOCAxMzYuMiAwYzEzLjUtMjAuMiAzMi0zNi44IDUzLjctNDhMMCAxNjAgMCAxMjUuN2MwLTM1LjMgMjguNy02NCA2NC02NGwuMSAwQzY1LjMgNDUuMSA3OS4xIDMyIDk2IDMybDMyIDBjMTYuOSAwIDMwLjcgMTMuMSAzMS45IDI5LjdsMzIuMSAwIDUxLjItMjMuOGM4LjQtMy45IDE3LjYtNiAyNi45LTZMNDQ4IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjQtMTkwIDBjMjEuNyAxMS4yIDQwLjIgMjcuOCA1My43IDQ4bDEzNi4yIDAgMCAyMDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHpNMjU2IDE5MmE5Ni4xIDk2LjEgMCAxIDAgMCAxOTIuMSA5Ni4xIDk2LjEgMCAxIDAgMC0xOTIuMXpcIl1cbn07XG52YXIgZmFDYXBzdWxlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXBzdWxlcycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjQ2YlwiLCBcIk05NiAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMi05NiAwIDAtMTEyem0tNjQgMGwwIDI4OGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtMTA1LjggMTE2LjMgMTY5LjVjMzUuNSA1MS43IDEwNS4zIDY0LjMgMTU2IDI4LjFzNjMtMTA3LjUgMjcuNS0xNTkuMkw0MjcuMyAxNDUuM2MtMzUuNS01MS43LTEwNS4zLTY0LjMtMTU2LTI4LjEtNS42IDQtMTAuNyA4LjQtMTUuMyAxMy4xbDAtMTguM0MyNTYgNTAuMSAyMDUuOSAwIDE0NCAwUzMyIDUwLjEgMzIgMTEyek0yOTYuNiAyNDAuMmMtMTYtMjMuMy0xMC01NS4zIDExLjktNzEgMjEuMi0xNS4xIDUwLjUtMTAuMyA2NiAxMi4ybDY3IDk3LjYtNzkuOSA1NS45LTY1LTk0Ljh6XCJdXG59O1xudmFyIGZhUG9vID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BvbycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE2OV0sIFwiZjJmZVwiLCBcIk0yNjguOSAuOWMtNS41LS43LTExIDEuNC0xNC41IDUuN3MtNC42IDEwLjEtMi44IDE1LjRjMi44IDguMiA0LjMgMTYuOSA0LjMgMjYuMSAwIDQ0LjEtMzUuNyA3OS45LTc5LjggODBMMTYwIDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjQgMCAxOS4xIDguNCAzNi4zIDIxLjcgNDhMMTA0IDI0MGMtMzkuOCAwLTcyIDMyLjItNzIgNzIgMCAyMy4yIDExIDQzLjggMjggNTctMzQuMSA1LjctNjAgMzUuMy02MCA3MSAwIDM5LjggMzIuMiA3MiA3MiA3MmwzNjggMGMzOS44IDAgNzItMzIuMiA3Mi03MiAwLTM1LjctMjUuOS02NS4zLTYwLTcxIDE3LTEzLjIgMjgtMzMuOCAyOC01NyAwLTM5LjgtMzIuMi03Mi03Mi03MmwtMTMuNyAwYzEzLjMtMTEuNyAyMS43LTI4LjkgMjEuNy00OCAwLTM1LjMtMjguNy02NC02NC02NGwtNS41IDBjMy41LTEwIDUuNS0yMC44IDUuNS0zMiAwLTQ4LjYtMzYuMi04OC44LTgzLjEtOTUuMXpNMTkyIDI1NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTY0IDEwOC4zYzAgMi40LS43IDQuOC0yLjIgNi43LTguMiAxMC41LTM5LjUgNDUtOTMuOCA0NXMtODUuNi0zNC42LTkzLjgtNDVjLTEuNS0xLjktMi4yLTQuMy0yLjItNi43IDAtNi44IDUuNS0xMi4zIDEyLjMtMTIuM2wxNjcuNCAwYzYuOCAwIDEyLjMgNS41IDEyLjMgMTIuM3pcIl1cbn07XG52YXIgZmFFbGV2YXRvciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlbGV2YXRvcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTE2ZFwiLCBcIk0yOTIuNy00LjdsNjQgNjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNjQtNjRjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNFM0MzguNS0zMiA0MzItMzJMMzA0LTMyYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjR6bS0xNjAtMjIuNmwtNjQgNjRjLTQuNiA0LjYtNS45IDExLjUtMy41IDE3LjRTNzMuNSA2NCA4MCA2NGwxMjggMGM2LjUgMCAxMi4zLTMuOSAxNC44LTkuOXMxLjEtMTIuOS0zLjUtMTcuNGwtNjQtNjRjLTYuMi02LjItMTYuNC02LjItMjIuNiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDEyOHptOTYgOTZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2ek04MCA0MDBjMC0yNi41IDIxLjUtNDggNDgtNDhsNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2em0xOTIgMGMwLTI2LjUgMjEuNS00OCA0OC00OGw2NCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZ6bTMyLTEyOGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwelwiXVxufTtcbnZhciBmYVRhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc5OTFdLCBcImYwMmJcIiwgXCJNMzIuNSA5NmwwIDE0OS41YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDE5MiAxOTJjMjUgMjUgNjUuNSAyNSA5MC41IDBMNDgzLjIgMzMzLjNjMjUtMjUgMjUtNjUuNSAwLTkwLjVsLTE5Mi0xOTJDMjc5LjIgMzguNyAyNjMgMzIgMjQ2IDMyTDk2LjUgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0em0xMTIgMTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYUZpbGVDaXJjbGVNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWNpcmNsZS1taW51cycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRlZFwiLCBcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZ6XCJdXG59O1xudmFyIGZhRG93bkxvbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG93bi1sb25nJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXCJsb25nLWFycm93LWFsdC1kb3duXCJdLCBcImYzMDlcIiwgXCJNMTM3LjQgNTM0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMDAuOSAzNTIgMjg4IDM1MmwtNjQgMCAwLTMzNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMzYtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzOTcuNSA5LjQgNDA2LjZsMTI4IDEyOHpcIl1cbn07XG52YXIgZmFMb25nQXJyb3dBbHREb3duID0gZmFEb3duTG9uZztcbnZhciBmYUNvbXBhY3REaXNjID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbXBhY3QtZGlzYycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODE5MSwgMTI4MTkyLCAxMjg0NDBdLCBcImY1MWZcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDMyYTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptLTk2LTMyYTk2IDk2IDAgMSAwIDE5MiAwIDk2IDk2IDAgMSAwIC0xOTIgMHptLTU2LTE2YzAtMzIuNCAxNi4zLTY2LjYgNDIuOC05My4yUzIwNy42IDEwNCAyNDAgMTA0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy00Ny45IDAtOTMuNyAyMy41LTEyNy4xIDU2LjlTNTYgMTkyLjEgNTYgMjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6XCJdXG59O1xudmFyIGZhU3VpdGNhc2VSb2xsaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1aXRjYXNlLXJvbGxpbmcnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY1YzFcIiwgXCJNMTQ0IDI0YzAtNC40IDMuNi04IDgtOGw4MCAwYzQuNCAwIDggMy42IDggOGwwIDcyLTk2IDAgMC03MnpNMzIwIDk2bC0zMiAwIDAtNzJjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTgwIDBDMTIxLjEtMzIgOTYtNi45IDk2IDI0bDAgNzItMzIgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjQgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwxMjggMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjg4YzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xMjAgMjA4bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCAxMjhsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYUJvb2tRdXJhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rLXF1cmFuJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJxdXJhblwiXSwgXCJmNjg3XCIsIFwiTTY0IDUxMmwyODggMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzIwYzAtNTMtNDMtOTYtOTYtOTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCAzMzZjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zTDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwek0zNTIgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMCAwLTY0IDI1NiAwek0yNzMuMSAxNDQuNGMyLjUtNi4xIDExLjItNi4xIDEzLjcgMGwxMC4zIDI0LjggMjYuOCAyLjFjNi42IC41IDkuMiA4LjcgNC4yIDEzTDMwNy44IDIwMS45IDMxNCAyMjhjMS41IDYuNC01LjUgMTEuNS0xMS4xIDguMWwtMjIuOS0xNC0yMi45IDE0Yy01LjYgMy40LTEyLjYtMS42LTExLjEtOC4xbDYuMi0yNi4xLTIwLjQtMTcuNWMtNS00LjMtMi4zLTEyLjUgNC4yLTEzbDI2LjgtMi4xIDEwLjMtMjQuOHpNMTAwIDE5MmMwLTY4LjUgNTUuNS0xMjQgMTI0LTEyNCAyMy44IDAgNDYuMSA2LjcgNjUgMTguNCA0LjggMi45IDYuOSA4LjggNSAxNC4xcy03LjEgOC42LTEyLjcgOGMtMy4xLS4zLTYuMi0uNS05LjQtLjUtNDYuNCAwLTg0IDM3LjYtODQgODRzMzcuNiA4NCA4NCA4NGMzLjIgMCA2LjMtLjIgOS40LS41IDUuNi0uNiAxMC44IDIuNyAxMi43IDhzLS4zIDExLjItNSAxNC4xYy0xOC45IDExLjctNDEuMiAxOC40LTY1IDE4LjQtNjguNSAwLTEyNC01NS41LTEyNC0xMjR6XCJdXG59O1xudmFyIGZhUXVyYW4gPSBmYUJvb2tRdXJhbjtcbnZhciBmYVBob25lU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGhvbmUtc2xhc2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYzZGRcIiwgXCJNNTM1LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDQxIDUzNy4xYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDE0MS41IDM2OC42Qzg5LjIgMzEwLjUgNTEuNiAyMzguOCAzNC44IDE1OS40IDE4LjcgODMuMSA3My45IDIwLjYgMTM4LjUgMi45bDUuNS0xLjVjMTkuNy01LjQgNDAuMyA0LjcgNDguMSAyMy41bDQwLjUgOTcuM2M2LjkgMTYuNSAyLjEgMzUuNi0xMS44IDQ3bC00NC4xIDM2LjFjMTIuOSAyOC41IDI5LjYgNTQuOCA0OS41IDc4LjVMNTM1LTI0Ljl6bS0xNTAuNCA1MzRjLTYzLTEzLjQtMTIxLjMtMzkuOC0xNzEuNy03Ni4zTDI5Ny44IDM0OGMxMi4yIDguMiAyNSAxNS42IDM4LjMgMjIuMkwzNzQuNyAzMjNjMTEuMy0xMy45IDMwLjQtMTguNiA0Ny0xMS44TDUxOSAzNTEuOGMxOC44IDcuOCAyOC45IDI4LjQgMjMuNSA0OC4xbC0xLjUgNS41Yy0xNy42IDY0LjYtODAuMiAxMTkuOC0xNTYuNCAxMDMuN3pcIl1cbn07XG52YXIgZmFSb2FkQ2lyY2xlQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncm9hZC1jaXJjbGUtY2hlY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NjRcIiwgXCJNMjg4IDMybC03Ni4zIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDY1LjQgNDIwLjVDNTcuOSA0NTAuNyA4MC44IDQ4MCAxMTIgNDgwbDIwOS40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTI4LjYgNi4yLTU1LjcgMTcuNC04MC0uNSAwLTEgMC0xLjUgMC0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OWMzNS4yLTM5LjkgODYuNy02NSAxNDQtNjUgOSAwIDE3LjggLjYgMjYuNSAxLjhsLTMyLTEyOS4yQzQ4My40IDUyLjEgNDU3LjggMzIgNDI4LjMgMzJsLTc2LjQgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41elwiXVxufTtcbnZhciBmYVNob3BMb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nob3AtbG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRhNVwiLCBcIk0yMS41IDE4MS4xTDc4LjMgNjcuNEM4OS4yIDQ1LjcgMTExLjMgMzIgMTM1LjYgMzJsMzA0LjkgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw1NS42IDExMS4xYy04LjItMS42LTE2LjYtMi41LTI1LjItMi41LTUzLjcgMC05OS43IDMzLjEtMTE4LjcgODBsLTU3LjMgMCAwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTc2LjFjLTI2LjgtMS45LTQ4LTI0LjMtNDgtNTEuNiAwLTggMS45LTE2IDUuNS0yMy4yek0xMjggMjU2bDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMTItMTYwIDB6bTQzMiA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnpcIl1cbn07XG52YXIgZmFJbWFnZVBvcnRyYWl0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ltYWdlLXBvcnRyYWl0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXCJwb3J0cmFpdFwiXSwgXCJmM2UwXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNODAgMzY4YzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwek0xOTIgMjQ4YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyelwiXVxufTtcbnZhciBmYVBvcnRyYWl0ID0gZmFJbWFnZVBvcnRyYWl0O1xudmFyIGZhQnJpZGdlTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicmlkZ2UtbG9jaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRjY1wiLCBcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04IDAgMCAzMi4yYzEzLjggLjYgMjcuMiAyLjggNDAgNi40bDAgNTAuN2MtMTQuOC02LTMxLTkuMy00OC05LjMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjhsMCAyNC40Yy0uNCAuMy0uNyAuNi0xLjEgMS0xNy4zLTI1LTQ2LjItNDEuMy03OC45LTQxLjMtNTMgMC05NiA0My05NiA5NmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk0YzAtMzguOC0yNi40LTcyLjYtNjQtODJsMC0xMTIgNDAgMCAwLTY0LTggMEMxNC4zIDk2IDAgODEuNyAwIDY0em00MjQgNjguNmwwLTM2LjYtODAgMCAwIDY0IDE4LjggMGMxOC4yLTEyLjggMzguOS0yMi4yIDYxLjItMjcuNHpNMjE2IDk2bDAgNjQgODAgMCAwLTY0LTgwIDB6bS00OCAwbC04MCAwIDAgNjQgODAgMCAwLTY0ek00OTYgMzA0LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0zNTIgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2elwiXVxufTtcbnZhciBmYUhhbW1lciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW1tZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjgyOTZdLCBcImY2ZTNcIiwgXCJNMjQ2LjkgMTguM0wyNzEgMy44YzIxLjYtMTMgNDYuMy0xOS44IDcxLjUtMTkuOCAzNi44IDAgNzIuMiAxNC42IDk4LjIgNDAuN2w2My45IDYzLjljMTUgMTUgMjMuNCAzNS40IDIzLjQgNTYuNmwwIDMwLjkgMTkuNyAxOS43IDAgMGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMHMxNS42IDQwLjkgMCA1Ni42bC02NCA2NGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZMNDY0IDI0MCA0MzMuMSAyNDBjLTIxLjIgMC00MS42LTguNC01Ni42LTIzLjRsLTQ5LjEtNDkuMWMtMTUtMTUtMjMuNC0zNS40LTIzLjQtNTYuNmwwLTEyLjdjMC0xMS4yLTUuOS0yMS43LTE1LjUtMjcuNGwtNDEuNi0yNWMtMTAuNC02LjItMTAuNC0yMS4yIDAtMjcuNHpNNTAuNyA0MDIuN2wyMjIuMS0yMjIuMSA5MC41IDkwLjUtMjIyLjEgMjIyLjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNXpcIl1cbn07XG52YXIgZmFBcnJvd1VwMTkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtMS05JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJzb3J0LW51bWVyaWMtdXBcIl0sIFwiZjE2M1wiLCBcIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTQxOC43IDM4Yy04LjMtNi0xOS4xLTcuNy0yOC44LTQuNGwtNDggMTZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmw1LjktMiAwIDUxLjYtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtOTZjMC0xMC4zLTQuOS0xOS45LTEzLjMtMjZ6TTM2NS4xIDQzMC42Yy05LjYgMTQuOC01LjQgMzQuNiA5LjQgNDQuM3MzNC42IDUuNCA0NC4zLTkuNGw0Mi4xLTY0LjljMTIuNC0xOS4yIDE5LjEtNDEuNiAxOS4xLTY0LjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzNi4xIDIzLjkgNjYuNyA1Ni44IDc2LjZsLTExLjcgMTh6TTM3NiAzMzZhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIl1cbn07XG52YXIgZmFTb3J0TnVtZXJpY1VwID0gZmFBcnJvd1VwMTk7XG52YXIgZmFDaGVzc0tuaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1rbmlnaHQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFs5ODIyXSwgXCJmNDQxXCIsIFwiTTE5Mi0zMmMxMDYgMCAxOTIgODYgMTkyIDE5MmwwIDEzMy41YzAgMTctNi44IDMzLjItMTguNyA0NS4yTDMyMCAzODQgMzcwLjggNDM0LjdjOC41IDguNSAxMy4yIDIwIDEzLjIgMzIgMCAyNS0yMC4zIDQ1LjItNDUuMiA0NS4zTDQ1LjMgNTEyYy0yNSAwLTQ1LjItMjAuMy00NS4yLTQ1LjMgMC0xMiA0LjgtMjMuNSAxMy4yLTMyTDY0IDM4NCA2NCAzNDkuNGMwLTE4LjcgOC4yLTM2LjQgMjIuMy00OC42bDg5LjctNzYuOC00OCAwLTEyLjEgMTIuMWMtMTIuNyAxMi43LTMwIDE5LjktNDggMTkuOS0zNy41IDAtNjcuOS0zMC40LTY3LjktNjcuOWwwLTguN2MwLTIyLjggOC4yLTQ0LjkgMjMuMS02Mi4zTDk2IDMyIDk2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNMTYwIDcyYTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHpcIl1cbn07XG52YXIgZmFIb3VzZUZsb29kV2F0ZXJDaXJjbGVBcnJvd1JpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWZsb29kLXdhdGVyLWNpcmNsZS1hcnJvdy1yaWdodCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUwZlwiLCBcIk0yODguNSAxMTJhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNMTQxLjIgNDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGw1NiA1NmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNTYgNTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMjguNy0yOC43LTg5LjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4OS40IDAtMjguNy0yOC43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnpNMzM2LjUgMTEyYzAgNzEuMS0zOC42IDEzMy4xLTk2IDE2Ni4zbDAgMTIuOGMyMi4xIDQuNSA0My40IDEzLjkgNjIuNCAyOC4yIDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCA2LjkgNS4yIDEyLjggOSAxOCAxMS43IC42IC4zIDEuMiAuNiAxLjggMSA0LjIgMi4zIDguNSA0LjYgMTIuNiAxLjUgNi00LjUgMTIuNi04IDE5LjMtMTAuNGwwLTExNS4yIDQuNSAwYzE1LjIgMCAyNy41LTEyLjMgMjcuNS0yNy41IDAtNy45LTMuNC0xNS41LTkuNC0yMC43TDQ0NC41IDEwLjVDNDM2LjggMy43IDQyNi44IDAgNDE2LjUgMHMtMjAuMyAzLjctMjggMTAuNUwzMjkuOSA2MS44YzQuMyAxNiA2LjYgMzIuOCA2LjYgNTAuMnptMzIgODhjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4ek00NzUuMSA0MTIuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDM5MS44IDI2NiAzNzMuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiA5NmMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDQ4Ny44IDI2NiA0NjkuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45elwiXVxufTtcbnZhciBmYUFycm93VXBSaWdodEZyb21TcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdXAtcmlnaHQtZnJvbS1zcXVhcmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImV4dGVybmFsLWxpbmtcIl0sIFwiZjA4ZVwiLCBcIk0zMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4Mi43IDAtMjAxLjQgMjAxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDQ4IDEwOS4zIDQ0OCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMHpNODAgOTZDMzUuOCA5NiAwIDEzMS44IDAgMTc2TDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDI1NiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZMODAgNDQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDgwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgOTZ6XCJdXG59O1xudmFyIGZhRXh0ZXJuYWxMaW5rID0gZmFBcnJvd1VwUmlnaHRGcm9tU3F1YXJlO1xudmFyIGZhQXJyb3dEb3duVXBBY3Jvc3NMaW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWRvd24tdXAtYWNyb3NzLWxpbmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU0YWZcIiwgXCJNMjY1LjQgMTA1LjRsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNCAwIDExNC43IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwIDAgMTE0LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgNDAyLjcgOTYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMjAgMCAwLTExNC43LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6TTQxNiAzMzZsMCAxNDRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDQgNjQgMHpNOTYgMTc2TDk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNDQtNjQgMHpcIl1cbn07XG52YXIgZmFGYWNlR3JpbkJlYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluLWJlYW0nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1MTYsIFwiZ3Jpbi1iZWFtXCJdLCBcImY1ODJcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHpcIl1cbn07XG52YXIgZmFHcmluQmVhbSA9IGZhRmFjZUdyaW5CZWFtO1xudmFyIGZhUmVjdGFuZ2xlQWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVjdGFuZ2xlLWFkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJhZFwiXSwgXCJmNjQxXCIsIFwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek00MTYgMTg0bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0LTcuMSAwLTEzLjUtMy4xLTE3LjktOC0xMC4yIDUuMS0yMS44IDgtMzQuMSA4LTQyIDAtNzYtMzQtNzYtNzZzMzQtNzYgNzYtNzZjOS45IDAgMTkuMyAxLjkgMjggNS4zbDAtMjEuM2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0em0tNDggOTJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMTYwIDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIgNDggMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMHptMzIgOTZsLTQ4IDAgMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwNGMwLTM1LjMgMjguNy02NCA2NC02NGwxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjR6XCJdXG59O1xudmFyIGZhQWQgPSBmYVJlY3RhbmdsZUFkO1xudmFyIGZhQm9va1RhbmFraCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rLXRhbmFraCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1widGFuYWtoXCJdLCBcImY4MjdcIiwgXCJNMzUyIDUxMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC02Ni43QzEzLjQgMzc0LjcgMCAzNTYuOSAwIDMzNkwwIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzNTIgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzIwYzAgNTMtNDMgOTYtOTYgOTZ6bTMyLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNTYgMCAwIDY0IDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0xMTMuOSAyMjljLTEuMiAyLTEuOSA0LjItMS45IDYuNiAwIDYuOSA1LjYgMTIuNSAxMi41IDEyLjVsNTYuOSAwIDMwLjUgNDkuMmMyLjYgNC4yIDcuMiA2LjggMTIuMiA2LjhzOS42LTIuNiAxMi4yLTYuOGwzMC41LTQ5LjIgNTYuOSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTIuMy0uNi00LjYtMS45LTYuNmwtMjcuOC00NSAyNy44LTQ1YzEuMi0yIDEuOS00LjIgMS45LTYuNiAwLTYuOS01LjYtMTIuNS0xMi41LTEyLjVsLTU2LjkgMC0zMC41LTQ5LjJDMjMzLjYgNjYuNiAyMjkgNjQgMjI0IDY0cy05LjYgMi42LTEyLjIgNi44bC0zMC41IDQ5LjItNTYuOSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCAyLjMgLjYgNC42IDEuOSA2LjZsMjcuOCA0NS0yNy44IDQ1elwiXVxufTtcbnZhciBmYVRhbmFraCA9IGZhQm9va1RhbmFraDtcbnZhciBmYUhvdFR1YlBlcnNvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3QtdHViLXBlcnNvbicsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiaG90LXR1YlwiXSwgXCJmNTkzXCIsIFwiTTI0MCA0MGMwIDEzLjYgNS44IDI2LjUgMTUuOCAzNS42bDI2LjUgMjMuOGMyNCAyMS42IDM3LjcgNTIuMyAzNy43IDg0LjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xOC43LTcuOS0zNi40LTIxLjgtNDguOWwtMjYuNS0yMy44QzIwMy41IDkzLjEgMTkyIDY3LjIgMTkyIDQwIDE5MiAyNi43IDIwMi43IDE2IDIxNiAxNnMyNCAxMC43IDI0IDI0ek0wIDMzNmwwLTgwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE5LjcgMGM4LjEgMCAxNi4yIDEuNiAyMy44IDQuNmwxMzcuMSA1NC44YzcuNiAzIDE1LjYgNC42IDIzLjggNC42TDM4NCAyNTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDMzNnptOTYtMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xNTIgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODB6bTEwNC0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTMyOCAxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDEzLjYgNS44IDI2LjUgMTUuOCAzNS42bDI2LjUgMjMuOGMyNCAyMS42IDM3LjcgNTIuMyAzNy43IDg0LjYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xOC43LTcuOS0zNi40LTIxLjgtNDguOWwtMjYuNS0yMy44QzMxNS41IDkzLjEgMzA0IDY3LjIgMzA0IDQwIDMwNCAyNi43IDMxNC43IDE2IDMyOCAxNnpNNjQgNDBhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6XCJdXG59O1xudmFyIGZhSG90VHViID0gZmFIb3RUdWJQZXJzb247XG52YXIgZmFGaWxlSGFsZkRhc2hlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWhhbGYtZGFzaGVkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJlNjk4XCIsIFwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjU2IDM4NCAwIDAtMTQ5LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTAgMzUybDAgNjQgNjQgMCAwLTY0LTY0IDB6TTY0IDUxMmwwLTY0LTY0IDBjMCAzNS4zIDI4LjcgNjQgNjQgNjR6bTMyIDBsODAgMCAwLTY0LTgwIDAgMCA2NHptMTEyIDBsODAgMCAwLTY0LTgwIDAgMCA2NHptMTEyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsLTY0IDAgMCA2NHptNjQtMTYwbC02NCAwIDAgNjQgNjQgMCAwLTY0elwiXVxufTtcbnZhciBmYU91dGRlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnb3V0ZGVudCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiZGVkZW50XCJdLCBcImYwM2JcIiwgXCJNLjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwQzE0LjggOTYgLjQgODEuNyAuNCA2NHptMTkyIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TS40IDQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzg0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0uNyAyNjguNmMtOC4yLTYuNC04LjItMTguOSAwLTI1LjNsMTAxLjktNzkuM2MxMC41LTguMiAyNS44LS43IDI1LjggMTIuNmwwIDE1OC42YzAgMTMuMy0xNS4zIDIwLjgtMjUuOCAxMi42TC43IDI2OC42elwiXVxufTtcbnZhciBmYURlZGVudCA9IGZhT3V0ZGVudDtcbnZhciBmYUhhbmRQZWFjZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBlYWNlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbOTk5Nl0sIFwiZjI1YlwiLCBcIk0xOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIwOC02NCAwIDAtMjA4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNjEuMyA1MS4yTDE0My45IDI0MCA3NC4xIDI0MCAyLjcgNzYuOEMtNC40IDYwLjYgMyA0MS44IDE5LjIgMzQuN1M1NC4yIDM1IDYxLjMgNTEuMnptMjcgMjIxLjNsLS4yLS41IDk1LjkgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjYgMTMuMiAwIDI1LjQtNCAzNS42LTEwLjggOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOCAxMS43IDAgMjIuNi0zLjEgMzItOC42bDAgOC42YzAgODguNC03MS42IDE2MC0xNjAgMTYwbC02MS43IDBjLTQyLjQgMC04My4xLTE2LjktMTEzLjEtNDYuOUw2OS41IDQ1My41QzQ1LjUgNDI5LjUgMzIgMzk2LjkgMzIgMzYzbDAtMjdjMC0zMi43IDI0LjYtNTkuNyA1Ni4zLTYzLjV6XCJdXG59O1xudmFyIGZhSGVhZFNpZGVWaXJ1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoZWFkLXNpZGUtdmlydXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUwNjRcIiwgXCJNMzI5LjcgNDQ4Yy01LjEgMC05LjcgMy43LTkuNyA4LjhsMCA3LjJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTYzLjZjMC0xMi42LTUuMS0yNC41LTEzLjEtMzQuMi0zMS44LTM4LjctNTAuOS04OC4yLTUwLjktMTQyLjIgMC0xMjMuNyAxMDAuMy0yMjQgMjI0LTIyNCAxMTIuNyAwIDIwNiA4My4zIDIyMS43IDE5MS43IC40IDMgMS43IDUuOSAzLjYgOC4zbDM1LjggNDIuOWM3IDguNCAxMC45IDE5LjEgMTAuOSAzMC4xIDAgMjUuOS0yMSA0Ny00NyA0N2wtMSAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA0OGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzguMyAwek0yMjQgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0IDAgMjIuOS0yNy43IDM0LjQtNDMuOSAxOC4yLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjljMTYuMiAxNi4yIDQuNyA0My45LTE4LjIgNDMuOS0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0YzIyLjkgMCAzNC40IDI3LjcgMTguMiA0My45LTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGMxNi4yLTE2LjIgNDMuOS00LjcgNDMuOSAxOC4yIDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0yMi45IDI3LjctMzQuNCA0My45LTE4LjIgOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45Yy0xNi4yLTE2LjItNC43LTQzLjkgMTguMi00My45IDEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy0yMi45IDAtMzQuNC0yNy43LTE4LjItNDMuOSA5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwYy0xNi4yIDE2LjItNDMuOSA0LjctNDMuOS0xOC4yIDAtMTMuMy0xMC43LTI0LTI0LTI0em0tMzIgODhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwiXVxufTtcbnZhciBmYUNvbXBhc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tcGFzcycsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyOTUxN10sIFwiZjE0ZVwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNTAuNy0xODYuOUwxNjIuNCAzODAuNmMtMTkuNCA3LjUtMzguNS0xMS42LTMxLTMxbDU1LjUtMTQ0LjNjMy4zLTguNSA5LjktMTUuMSAxOC40LTE4LjRsMTQ0LjMtNTUuNWMxOS40LTcuNSAzOC41IDExLjYgMzEgMzFMMzI1LjEgMzA2LjdjLTMuMiA4LjUtOS45IDE1LjEtMTguNCAxOC40ek0yODggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6XCJdXG59O1xudmFyIGZhUGVuTmliID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blbi1uaWInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMDAwMV0sIFwiZjVhZFwiLCBcIk0zNjguNSAxOC4zbC01MC4xIDUwLjEgMTI1LjMgMTI1LjMgNTAuMS01MC4xYzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ0Ny43IDE4LjNjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwek0yNzkuMyA5Ny4ybC0uNSAuMS0xNDQuMSA0My4yYy0xOS45IDYtMzUuNyAyMS4yLTQyLjMgNDFMMy44IDQ0NS44Yy0yLjkgOC43LTEuOSAxOC4yIDIuNSAyNkwxNjEuNyAzMTYuNGMtMS4xLTQtMS42LTguMS0xLjYtMTIuNCAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDhjLTQuMyAwLTguNS0uNi0xMi40LTEuNkw0MC4zIDUwNS43YzcuOCA0LjQgMTcuMiA1LjQgMjYgMi41bDI2NC4zLTg4LjZjMTkuNy02LjYgMzUtMjIuNCA0MS00Mi4zbDQzLjItMTQ0LjEgLjEtLjUtMTM1LjUtMTM1LjV6XCJdXG59O1xudmFyIGZhVGVudEFycm93c0Rvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVudC1hcnJvd3MtZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU4MVwiLCBcIk0xODUuNSAxMjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyem0yNDggNzJsNzItNzJjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMzEgMzEgMC0xMDIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwek02MC4zIDI5Mi42TDM3LjEgNDc2Yy0yLjQgMTkuMSAxMi41IDM2IDMxLjcgMzZsMTU0LjUgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTExNy40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45bDY4LjIgMTM2LjVjNS40IDEwLjggMTYuNSAxNy43IDI4LjYgMTcuN2w3MS45IDBjMTkuMyAwIDM0LjItMTYuOSAzMS43LTM2TDQ1Mi43IDI5Mi43Yy0xLjItOS43LTYuOS0xOC40LTE1LjMtMjMuNEwyNzEuOSAxNjkuOWMtMTAuMi02LjEtMjIuOS02LjEtMzMuMSAuMUw3NS40IDI2OS4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6XCJdXG59O1xudmFyIGZhRm9yd2FyZEZhc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9yd2FyZC1mYXN0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbOTE5NywgXCJmYXN0LWZvcndhcmRcIl0sIFwiZjA1MFwiLCBcIk0xOS44IDQ3Ny42YzEyIDUgMjUuNyAyLjIgMzQuOS02LjlMMjI0IDMwMS4zIDIyNCA0NDhjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOUw0NDggMzAxLjMgNDQ4IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTQ2LjctMTY5LjQtMTY5LjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzIyNCA1MS4xIDIyNCA2NEwyMjQgMjEwLjcgNTQuNiA0MS40Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMwIDUxLjEgMCA2NEwwIDQ0OGMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42elwiXVxufTtcbnZhciBmYUZhc3RGb3J3YXJkID0gZmFGb3J3YXJkRmFzdDtcbnZhciBmYUNyb3AgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3JvcCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjEyNVwiLCBcIk00NDggMTA5LjNsNTQuNi01NC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDQwMi43IDY0IDE3NiA2NCAxNzYgMTI4IDMzOC43IDEyOCAxMjggMzM4LjcgMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMi0zMiAwQzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwOCAwIDAtNjQtMTYyLjcgMCAyMTAuNy0yMTAuNyAwIDMwNi43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjc0Ljd6XCJdXG59O1xudmFyIGZhV2hpc2tleUdsYXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3doaXNrZXktZ2xhc3MnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFsxMjkzNDcsIFwiZ2xhc3Mtd2hpc2tleVwiXSwgXCJmN2EwXCIsIFwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCAzNTJjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsMTkyIDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJ6TTY0IDI1NmwwLTE2MCAzMjAgMCAwIDE2MC0zMjAgMHpcIl1cbn07XG52YXIgZmFHbGFzc1doaXNrZXkgPSBmYVdoaXNrZXlHbGFzcztcbnZhciBmYVNxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcXVhcmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5NjMyLCA5NzIzLCA5NzI0LCA2MTU5MF0sIFwiZjBjOFwiLCBcIk02NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJ6XCJdXG59O1xudmFyIGZhRmFjZUdyaW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1ncmluJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTEyLCBcImdyaW5cIl0sIFwiZjU4MFwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg2LjcgMzA4LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDM4OC4yIDEwNS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFHcmluID0gZmFGYWNlR3JpbjtcbnZhciBmYUZpbGVDb250cmFjdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWNvbnRyYWN0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTZjXCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek04OCA2NEM3NC43IDY0IDY0IDc0LjcgNjQgODhzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDY0em0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTcwLjMgMTYwYy0xMS4zIDAtMjEuOSA1LjEtMjguOSAxMy45TDY5LjMgNDA5Yy04LjMgMTAuMy02LjYgMjUuNSAzLjcgMzMuN3MyNS41IDYuNiAzMy43LTMuOGw0Ny4xLTU4LjggMTUuMiA1MC43YzMgMTAuMiAxMi40IDE3LjEgMjMgMTcuMWwxMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODYuMSAwLTE2LjEtNTMuNmMtNC43LTE1LjctMTkuMS0yNi40LTM1LjUtMjYuNHpcIl1cbn07XG52YXIgZmFBbmdsZVVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlLXVwJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbODk2M10sIFwiZjEwNlwiLCBcIk0xNjkuNCAxMzcuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDE5MiAyMDUuMyA1NC42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwelwiXVxufTtcbnZhciBmYUZhY2VTbWlsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLXNtaWxlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTc4LCBcInNtaWxlXCJdLCBcImYxMThcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NS40IDMyMS45YzIwLjQgMjggNTMuNCA0Ni4xIDkwLjYgNDYuMXM3MC4yLTE4LjEgOTAuNi00Ni4xYzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVDMzU2LjMgMzkwIDMwOS4yIDQxNiAyNTYgNDE2cy0xMDAuMy0yNi0xMjkuNC02NS45Yy03LjgtMTAuNy01LjQtMjUuNyA1LjMtMzMuNXMyNS43LTUuNCAzMy41IDUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYVNtaWxlID0gZmFGYWNlU21pbGU7XG52YXIgZmFQZXJzb25EcmVzc0J1cnN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1kcmVzcy1idXJzdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU0NFwiLCBcIk0yMDggNDAuMWMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjR6TTggMTQ0LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTkyLjUgMTQxLjRsMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNjYuNiAyNTEuNmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwek02Ni42IDIuN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwxMDAuNSAyLjdDOTEuMS02LjcgNzYtNi43IDY2LjYgMi43ek0zNTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTI0Ni4yIDM4NGwyNS44IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAzMiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMjUuOCAwYzEwLjkgMCAxOC42LTEwLjcgMTUuMi0yMS4xbC00My0xMjkgNDguMyA2NS4xYzEwLjUgMTQuMiAzMC42IDE3LjIgNDQuOCA2LjZzMTcuMi0zMC42IDYuNi00NC44bC03MC41LTk1QzQzNCAxMzIgMzk0LjMgMTEyIDM1MiAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNmw0OC4zLTY1LjEtNDMgMTI5Yy0zLjUgMTAuNCA0LjMgMjEuMSAxNS4yIDIxLjF6XCJdXG59O1xudmFyIGZhRGl2aWRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpdmlkZScsXG4gIGljb246IFs0NDgsIDUxMiwgWzEwMTM1LCAyNDddLCBcImY1MjlcIiwgXCJNMjI0IDQ4YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xNjggNDA4YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpcIl1cbn07XG52YXIgZmFDb2RlRm9yayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlLWZvcmsnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImUxM2JcIiwgXCJNODAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODAtMjRjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMi43Yy0yOC4zLTEyLjMtNDgtNDAuNS00OC03My4zIDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTMyIDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM2wwLTcwLjctMzIgMEM5OC4xIDI4OCA0OCAyMzcuOSA0OCAxNzZsMC0yMi43QzE5LjcgMTQxIDAgMTEyLjggMCA4MCAwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MHptMjA4IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNMjQ4IDQzMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwelwiXVxufTtcbnZhciBmYUhvdXNlRmxhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS1mbGFnJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTBkXCIsIFwiTTQ3MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDI4OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjgzLjUgNTkuMWwxMDAuNSA5Ni45IDAgMzU2LTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE0NC0xOS45IDBjLTE1LjUgMC0yOC4xLTEyLjYtMjguMS0yOC4xIDAtNy42IDMuMS0xNC45IDguNi0yMC4yTDIyOC41IDU5LjFDMjM1LjkgNTIgMjQ1LjcgNDggMjU2IDQ4czIwLjEgNCAyNy41IDExLjF6TTIzMiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwelwiXVxufTtcbnZhciBmYUJ1aWxkaW5nQ29sdW1ucyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWlsZGluZy1jb2x1bW5zJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJiYW5rXCIsIFwiaW5zdGl0dXRpb25cIiwgXCJtdXNldW1cIiwgXCJ1bml2ZXJzaXR5XCJdLCBcImYxOWNcIiwgXCJNMjcxLjkgMjAuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhjLTEyLjYgNy4yLTE4LjggMjItMTUuMSAzNlMxNy41IDIwOCAzMiAyMDhsMzIgMCAwIDIwOCAwIDAtNTEuMiAzOC40QzQuNyA0NjAuNCAwIDQ2OS45IDAgNDgwIDAgNDk3LjcgMTQuMyA1MTIgMzIgNTEybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZsLTUxLjItMzguNCAwLTIwOCAzMiAwYzE0LjUgMCAyNy4yLTkuOCAzMC45LTIzLjhzLTIuNS0yOC44LTE1LjEtMzZsLTIyNC0xMjh6TTQwMCAyMDhsMCAyMDgtNjQgMCAwLTIwOCA2NCAwem0tMTEyIDBsMCAyMDgtNjQgMCAwLTIwOCA2NCAwem0tMTEyIDBsMCAyMDgtNjQgMCAwLTIwOCA2NCAwek0yNTYgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYUJhbmsgPSBmYUJ1aWxkaW5nQ29sdW1ucztcbnZhciBmYUluc3RpdHV0aW9uID0gZmFCdWlsZGluZ0NvbHVtbnM7XG52YXIgZmFNdXNldW0gPSBmYUJ1aWxkaW5nQ29sdW1ucztcbnZhciBmYVVuaXZlcnNpdHkgPSBmYUJ1aWxkaW5nQ29sdW1ucztcbnZhciBmYVJ1ZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdydWcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NjlcIiwgXCJNMjQgNjRsNTYgMCAwIDM4NC01NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTQwLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0zMi04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMzItOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTQwLTggMEMxMC43IDExMiAwIDEwMS4zIDAgODhTMTAuNyA2NCAyNCA2NHptMTA0IDBsMzIwIDAgMCAzODQtMzIwIDAgMC0zODR6TTU3NiA4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgNDAgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAzMiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDMyIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgNDAgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwIDAtMzg0IDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6XCJdXG59O1xudmFyIGZhQ29kZU1lcmdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvZGUtbWVyZ2UnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzODdcIiwgXCJNODAgNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0zMi40IDk3LjJjMjgtMTIuNCA0Ny42LTQwLjUgNDcuNi03My4yIDAtNDQuMi0zNS44LTgwLTgwLTgwUzAgMzUuOCAwIDgwYzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCAyMDUuM0MxOS43IDM3MSAwIDM5OS4yIDAgNDMyIDAgNDc2LjIgMzUuOCA1MTIgODAgNTEyczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTg2LjZjMjYuNyAyMC4xIDYwIDMyIDk2IDMybDg2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4IDQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwYy0zMi44IDAtNjEgMTkuNy03My4zIDQ4TDIwOCAyNDBjLTQ5LjkgMC05MS0zOC4xLTk1LjYtODYuOHpNODAgNDA4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMzQ0IDI3MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwiXVxufTtcbnZhciBmYUhvdXNlVHN1bmFtaSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VzZS10c3VuYW1pJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTE1XCIsIFwiTTI4OCAxNkMxNTUuNSAxNiA0OCAxMjMuNSA0OCAyNTZTMTU1LjUgNDk2IDI4OCA0OTZjNy40IDAgMTkuNy0yLjMgMzMuNy03LjMgMTMuOC00LjkgMjcuMS0xMS43IDM2LjctMTguOSAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTUuNCAxMS42IDM1LjMgMjEuMSA1NSAyNC40IDE5LjUgMy4zIDM3IC40IDUxLjEtMTAuMiAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI3LjMgMjAuNS01OS4yIDI0LTg3LjkgMTkuMi0yOC41LTQuOC01NS40LTE4LTc1LjktMzMuNC0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0xNC41IDEwLjktMzIuNCAxOS43LTQ5LjUgMjUuOC0xNi44IDYtMzQuOSAxMC4xLTQ5LjkgMTAuMWwtLjEgMEMxMjguOSA1NDMuOSAwIDQxNSAwIDI1NiAwIDk2LjkgMTI4LjktMzIgMjg4LTMyIDMwMS4zLTMyIDMxMi0yMS4zIDMxMi04cy0xMC43IDI0LTI0IDI0em00NC44IDE2Ni40bDk2LTcyYzExLjQtOC41IDI3LjEtOC41IDM4LjUgMGw5NS41IDcyYzggNiAxMi43IDE1LjUgMTIuNyAyNS41bC4zIDEyMS41Yy0yLjIgMS4zLTQuMyAyLjYtNi40IDQuMi00LjMgMy4xLTguNyAuOC0xMy4yLTEuNWwtMS4yLS42LS43LS4zYy01LjQtMi43LTExLjctNi42LTE4LjktMTEuNy0yOS41LTIxLjEtNjQuMy0zMS42LTk5LjEtMzEuNC0zNC4xIC4yLTY4LjEgMTAuNy05NyAzMS40LTcuOCA1LjYtMTMuOCA5LjMtMTkuMyAxMS4yTDMyMCAyMDhjMC0xMC4xIDQuNy0xOS42IDEyLjgtMjUuNnptNTQuNiAyMjkuN2MtMTQuNSAxMC45LTMyLjQgMTkuNy00OS41IDI1LjgtMTYuOCA2LTM0LjkgMTAuMS00OS45IDEwLjEtMTA2IDAtMTkyLTg2LTE5Mi0xOTJTMTgyIDY0IDI4OCA2NGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRzNjQuNSAxNDQgMTQ0IDE0NGM3LjQgMCAxOS43LTIuMyAzMy43LTcuMyAxMy44LTQuOSAyNy4xLTExLjcgMzYuNy0xOC45IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNS40IDExLjYgMzUuMyAyMS4xIDU1IDI0LjQgMTkuNSAzLjMgMzcgLjQgNTEuMS0xMC4yIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjcuMyAyMC41LTU5LjIgMjQtODcuOSAxOS4yLTI4LjUtNC44LTU1LjQtMTgtNzUuOS0zMy40LTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwelwiXVxufTtcbnZhciBmYU1hZ25pZnlpbmdHbGFzc0NoYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hZ25pZnlpbmctZ2xhc3MtY2hhcnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImU1MjJcIiwgXCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4em0tMzEyIDhsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTgwLTk2bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTgwIDY0bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0elwiXVxufTtcbnZhciBmYVVtYnJlbGxhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VtYnJlbGxhJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGU5XCIsIFwiTTI1Ni0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDJjMTI2LjMgMTUuNyAyMjQgMTIzLjUgMjI0IDI1NCAwIDMuOC0uMSA3LjUtLjIgMTEuMy0uMyA2LjktNSAxMi44LTExLjcgMTQuN3MtMTMuOC0uNy0xNy42LTYuNWMtMTQuNC0yMS40LTM4LjgtMzUuNS02Ni41LTM1LjUtMjkuMyAwLTU0LjkgMTUuNy02OC45IDM5LjMtMi43IDQuNi03LjYgNy42LTEzIDcuOHMtMTAuNS0yLjItMTMuNy02LjVjLTE0LjYtMTkuOC0zOC0zMi42LTY0LjUtMzIuNnMtNDkuOSAxMi44LTY0LjUgMzIuNmMtMy4yIDQuMy04LjMgNi44LTEzLjcgNi41cy0xMC4yLTMuMi0xMy03LjhjLTE0LTIzLjYtMzkuNi0zOS4zLTY4LjktMzkuMy0yNy43IDAtNTIuMSAxNC4xLTY2LjUgMzUuNS0zLjkgNS43LTExIDguNC0xNy42IDYuNVMuNSAyNzQuMiAuMiAyNjcuM0MuMSAyNjMuNSAwIDI1OS44IDAgMjU2IDAgMTI1LjUgOTcuNyAxNy43IDIyNCAybDAtMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMzIgMzYwbDAgMTAyLjZjMCA0NS0zNi41IDgxLjQtODEuNCA4MS40LTMwLjggMC01OS0xNy40LTcyLjgtNDVsLTIuMy00LjdjLTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlzMzUtMS41IDQyLjkgMTQuM2wyLjMgNC43YzMgNS45IDkgOS42IDE1LjYgOS42IDkuNiAwIDE3LjQtNy44IDE3LjQtMTcuNEwyMjQgMzI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6XCJdXG59O1xudmFyIGZhSGlsbFJvY2tzbGlkZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoaWxsLXJvY2tzbGlkZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTUwOFwiLCBcIk0yNTIuNCAxMDMuOGwyNyA0OGMyLjggNSA4LjIgOC4yIDEzLjkgOC4ybDUzLjMgMGM1LjggMCAxMS4xLTMuMSAxMy45LTguMmwyNy00OGMyLjctNC45IDIuNy0xMC44IDAtMTUuN2wtMjctNDhjLTIuOC01LTguMi04LjItMTMuOS04LjJsLTUzLjMgMGMtNS44IDAtMTEuMSAzLjEtMTMuOSA4LjJsLTI3IDQ4Yy0yLjcgNC45LTIuNyAxMC44IDAgMTUuN3pNNjguMyA4N0M0My4xIDYxLjggMCA3OS43IDAgMTE1LjNMMCA0MzJjMCA0NC4yIDM1LjggODAgODAgODBsMzE2LjcgMGMzNS42IDAgNTMuNS00My4xIDI4LjMtNjguM0w2OC4zIDg3ek01MDQuMiA0MDMuNmM0LjkgMi43IDEwLjggMi43IDE1LjcgMGw0OC0yN2M1LTIuOCA4LjItOC4yIDguMi0xMy45bDAtNTMuM2MwLTUuOC0zLjEtMTEuMS04LjItMTMuOWwtNDgtMjdjLTQuOS0yLjctMTAuOC0yLjctMTUuNyAwbC00OCAyN2MtNSAyLjgtOC4yIDguMi04LjIgMTMuOWwwIDUzLjNjMCA1LjggMy4xIDExLjEgOC4yIDEzLjlsNDggMjd6TTE5MiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zODQgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFVc2VyU2VjcmV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItc2VjcmV0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI4MzczXSwgXCJmMjFiXCIsIFwiTTE3MS0xNmMtMzYuNCAwLTU3LjggNTguMy02OC4zIDExMkw3MiA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgMzJjMCAxNyAzLjMgMzMuMiA5LjMgNDhsLTkuMyAwIDAgMC0yMC41IDBjLTE1LjIgMC0yNy41IDEyLjMtMjcuNSAyNy41IDAgMyAuNSA1LjkgMS40IDguN2wyOC45IDg2LjZDNDAuMiAzNzkuNiAxNiA0MjguMSAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwzNTYuNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43IDAtNTQuMi0yNC4yLTEwMi43LTYyLjMtMTM1LjRsMjguOS04Ni42Yy45LTIuOCAxLjQtNS43IDEuNC04LjcgMC0xNS4yLTEyLjMtMjcuNS0yNy41LTI3LjVsLTIwLjUgMCAwIDAtOS4zIDBjNi0xNC44IDkuMy0zMSA5LjMtNDhsMC0zMiAyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMC43IDBjLTEwLjQtNTMuNy0zMS45LTExMi02OC4zLTExMi05LjYgMC0xOSAzLjktMjcuNSA4LjItOC4yIDQuMS0xOC40IDcuOC0yNS41IDcuOHMtMTcuMy0zLjctMjUuNS03LjhDMTkwLTEyLjEgMTgwLjYtMTYgMTcxLTE2em05My43IDQ4NC40bC0yNC44LTcwLjkgMjcuOS0zMi41YzIuNy0zLjIgNC4yLTcuMiA0LjItMTEuNCAwLTkuNy03LjgtMTcuNS0xNy41LTE3LjVsLTYxIDBjLTkuNyAwLTE3LjUgNy44LTE3LjUgMTcuNSAwIDQuMiAxLjUgOC4yIDQuMiAxMS40bDI3LjkgMzIuNS0yNC44IDcwLjktNTctMTgwLjQgMzUuNyAwYzE4LjQgMTAuMiAzOS41IDE2IDYyIDE2czQzLjYtNS44IDYyLTE2bDM1LjcgMC01NyAxODAuNHpNMjI0IDI1NmMtMzQuNyAwLTY0LjItMjIuMS03NS4zLTUzIDUuNyAzLjIgMTIuMyA1IDE5LjMgNWwxMi40IDBjMTYuNSAwIDMxLjEtMTAuNiAzNi4zLTI2LjIgMi4zLTcgMTIuMi03IDE0LjUgMCA1LjIgMTUuNiAxOS45IDI2LjIgMzYuMyAyNi4ybDEyLjQgMGM3IDAgMTMuNi0xLjggMTkuMy01LTExLjEgMzAuOS00MC42IDUzLTc1LjMgNTN6XCJdXG59O1xudmFyIGZhUGFnZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFnZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyMjNdLCBcImY4MTVcIiwgXCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptNjQgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTg4IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem0xMjggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwelwiXVxufTtcbnZhciBmYUJyaWVmY2FzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicmllZmNhc2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgxODhdLCBcImYwYjFcIiwgXCJNMjAwIDQ4bDExMiAwYzQuNCAwIDggMy42IDggOGwwIDQwLTEyOCAwIDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQwLTgwIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwbDAgOTYgNTEyIDAgMC05NmMwLTM1LjMtMjguNy02NC02NC02NGwtODAgMCAwLTQwYzAtMzAuOS0yNS4xLTU2LTU2LTU2TDIwMCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnpNNTEyIDMwNGwtMTkyIDAgMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNi0xOTIgMCAwIDExMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTExMnpcIl1cbn07XG52YXIgZmFUcm93ZWxCcmlja3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJvd2VsLWJyaWNrcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU4YVwiLCBcIk0yMjQgMzJjMC0xMS41LTYuMi0yMi4yLTE2LjItMjcuOHMtMjIuMy01LjUtMzIuMiAuNGwtMTYwIDk2QzUuOSAxMDYuMyAwIDExNi44IDAgMTI4czUuOSAyMS43IDE1LjUgMjcuNGwxNjAgOTZjOS45IDUuOSAyMi4yIDYuMSAzMi4yIC40UzIyNCAyMzUuNSAyMjQgMjI0bDAtNjQgMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI1NiAwIDAtNjR6bTk2IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNjAgMHpNMCA0MTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0yMjQtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjU2IDB6XCJdXG59O1xudmFyIGZhU29ja3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc29ja3MnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjk1MTBdLCBcImY2OTZcIiwgXCJNMjUyLjggMEwxNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNiAxMTIgMCAwLTE2YzAtMTcuNSA0LjctMzMuOSAxMi44LTQ4ek0xMjggMTEybDAgMTI4YzAgMjAuMS05LjUgMzkuMS0yNS42IDUxLjJsLTY0IDQ4Yy0yNC4yIDE4LjEtMzguNCA0Ni42LTM4LjQgNzYuOCAwIDUzIDQzIDk2IDk2IDk2IDE1LjQgMCAzMC41LTMuNyA0NC0xMC43LTE3LjYtMjMuOS0yOC01My40LTI4LTg1LjMgMC00NS4zIDIxLjMtODggNTcuNi0xMTUuMmw2NC00OGM0LTMgNi40LTcuOCA2LjQtMTIuOGwwLTEyOC0xMTIgMHptMTYwIDBsMCAxMjhjMCAyMC4xLTkuNSAzOS4xLTI1LjYgNTEuMmwtNjQgNDhjLTI0LjIgMTguMS0zOC40IDQ2LjYtMzguNCA3Ni44IDAgNTMgNDMgOTYgOTYgOTYgMjAuOCAwIDQxLTYuNyA1Ny42LTE5LjJsMTE1LjItODYuNEM0NjEgMzgyLjIgNDgwIDM0NC4zIDQ4MCAzMDRsMC0xOTItMTkyIDB6TTQ4MCA2NGwwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDMzNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2IDE5MiAwelwiXVxufTtcbnZhciBmYVQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndCcsXG4gIGljb246IFszODQsIDUxMiwgWzExNl0sIFwiNTRcIiwgXCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDEyOCAwIDAgMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNTIgMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6XCJdXG59O1xudmFyIGZhTWljcm9jaGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pY3JvY2hpcCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjJkYlwiLCBcIk0xNzYgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDU2LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDU2LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGMwIDM1LjMgMjguNyA2NCA2NCA2NGwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MCA1NiAwIDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC01NiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwYzAtMzUuMy0yOC43LTY0LTY0LTY0bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC01NiAwIDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC01NiAwIDAtNDB6TTE2MCAxMjhsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYgNDhsMCAxNjAgMTYwIDAgMC0xNjAtMTYwIDB6XCJdXG59O1xudmFyIGZhVHJ1Y2tNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLW1lZGljYWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFsxMjg2NTcsIFwiYW1idWxhbmNlXCJdLCBcImYwZjlcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTc2IDEzNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHpcIl1cbn07XG52YXIgZmFBbWJ1bGFuY2UgPSBmYVRydWNrTWVkaWNhbDtcbnZhciBmYU9tID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ29tJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MzI5XSwgXCJmNjc5XCIsIFwiTTM4OC43IDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGwxNiAxNmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtMTYgMTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC0xNi0xNmMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZsMTYtMTZ6TTE3NiAxNjBjLTEwLjggMC0yMC44IDMuNi0yOC44IDkuNi0xNC4xIDEwLjYtMzQuMiA3LjgtNDQuOC02LjRzLTcuOC0zNC4yIDYuNC00NC44YzE4LjctMTQuMSA0Mi0yMi40IDY3LjItMjIuNCA2MS45IDAgMTEyIDUwLjEgMTEyIDExMiAwIDE3LjItMy45IDMzLjUtMTAuOCA0OGw0OS43IDBjMTIuNyAwIDI0LjktNSAzMy45LTE0LjFsMjAuNy0yMC43YzE4LjctMTguNyA0NC4xLTI5LjMgNzAuNi0yOS4zIDU1LjIgMCA5OS45IDQ0LjcgOTkuOSA5OS45bDAgOTYuMWMwIDU1LjItNDQuOCAxMDAtMTAwIDEwMFMzNTIgNDQzLjIgMzUyIDM4OGwwLTRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDRjMCAxOS45IDE2LjEgMzYgMzYgMzZzMzYtMTYuMSAzNi0zNmwwLTk2LjFjMC0xOS44LTE2LjEtMzUuOS0zNS45LTM1LjktOS41IDAtMTguNiAzLjgtMjUuNCAxMC41bC0yMC43IDIwLjdjLTIxIDIxLTQ5LjQgMzIuOC03OS4xIDMyLjhsLTI2LjggMGMxMi42IDE5LjYgMTkuOSA0Mi44IDE5LjkgNjggMCA3NS4yLTY1IDEzMi0xNDAgMTMyUzQwIDQ2My4yIDQwIDM4OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyYzAgMzUuMyAzMS43IDY4IDc2IDY4czc2LTMyLjcgNzYtNjgtMzEuNy02OC03Ni02OGwtMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4ek0zMzcuMSA2MC4xYy0xMS0xMy44LTMxLjEtMTYuMi00NS01LjJzLTE2LjIgMzEuMS01LjIgNDVDMzEyLjYgMTMyLjIgMzU0LjQgMTUyIDQwMCAxNTJzODcuNC0xOS44IDExMy4xLTUyLjFjMTEtMTMuOCA4LjctMzQtNS4yLTQ1cy0zNC04LjctNDUgNS4yQzQ1MC4zIDc2IDQyNy41IDg4IDQwMCA4OHMtNTAuMy0xMi02Mi45LTI3Ljl6XCJdXG59O1xudmFyIGZhTW9zcXVpdG9OZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9zcXVpdG8tbmV0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTJjXCIsIFwiTTU3NiAzNTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNiAxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgNDggMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDE2LS4xIDIuNUM1OTguNiA1NjYuNiA1ODguNCA1NzYgNTc2IDU3NnMtMjIuNi05LjQtMjMuOS0yMS41bC0uMS0yLjUgMC0xNi00OCAwIDAgMTYtLjEgMi41QzUwMi42IDU2Ni42IDQ5Mi40IDU3NiA0ODAgNTc2cy0yMi42LTkuNC0yMy45LTIxLjVsLS4xLTIuNSAwLTE2LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTQ4LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNiA0OCAwIDAtMTZjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQyOS45IDE2LjNjNy43LTkuNCAyMS4zLTExLjUgMzEuNC00LjMgMTAuMSA3LjEgMTMuMSAyMC45IDcuNCAzMS43bC0xLjMgMi4xLTI1LjkgMzguOSAxMy4zIDUzLjRjMiA4LS4xIDE2LjMtNS4zIDIyLjNsLTIuNCAyLjQtNDQuNyAzOC4zIDEzMC41IDE0LjVjNDIuOCA0LjggNzUuMSA0MC45IDc1LjEgODMuOSAwIDMuOS0uNCA3LjctLjkgMTEuNS03LjMtMy41LTE1LjMtNS44LTIzLjgtNi43TDU3NiAzMDRjLTE4LjUgMC0zNS4zIDctNDggMTguNC0xMS05LjktMjUuMS0xNi41LTQwLjYtMTguMUw0ODAgMzA0Yy0zMC4zIDAtNTYuMSAxOC43LTY2LjggNDUuMi0xMi41IDUtMjMuMiAxMy40LTMxLjEgMjRsLTMwLjItNDAuMSAwIDc0LjdjMCAxNy43LTE0LjMgMzItMzIgMzItMTYuNiAwLTMwLjItMTIuNi0zMS44LTI4LjdsLS4yLTMuMyAwLTc0LjYtMzIuMyA0MyAwIDM5LjhjMCAzLjUtLjcgNi45LTIuMSAxMC4xbC0xLjYgMy4xLTQwIDY0LTEuNCAyYy03LjUgOS42LTIxIDEyLjEtMzEuMyA1LjMtMTAuMy02LjgtMTMuNy0yMC41LTguMy0zMS41bDEuMi0yLjIgMzYuMi01OCAwLTQxIC4zLTRjLjYtMy45IDIuMi03LjcgNC42LTEwLjlsMzkuMy01Mi4yLTY2LjIgNTkuNWMtMTcgMTUuMy0zOSAyMy43LTYxLjkgMjMuOGwtOC4xIDBjLTQ2LjYgMC04NC40LTM3LjgtODQuNC04NC40IDAtNDMgMzIuNC03OS4yIDc1LjEtODMuOWwxMzAuNS0xNC41LTQ0LjctMzguMy0yLjQtMi40Yy01LjItNi03LjMtMTQuNC01LjMtMjIuM2wxMy4zLTUzLjQtMjUuOS0zOC45LTEuMi0yLjFjLTUuNy0xMC44LTIuNy0yNC42IDcuNC0zMS43IDEwLjEtNy4xIDIzLjctNS4xIDMxLjQgNC4zbDEuNSAyIDMyIDQ4IDEuNCAyLjJjMi44IDUuMyAzLjUgMTEuNiAyLjEgMTcuNmwtMTIuMyA0OS4yIDUzLjMgNDUuNyAwLTI4LjggLjItMy4yYzEuMS0xMC40IDcuMi0xOS40IDE1LjgtMjQuNGwwLTYwLjUgLjMtMy4yYzEuNS03LjMgOC0xMi43IDE1LjctMTIuOCA3LjcgMCAxNC4yIDUuNSAxNS43IDEyLjhsLjMgMy4yIDAgNjAuNWM4LjcgNSAxNC44IDE0IDE1LjggMjQuNGwuMiAzLjIgMCAyOC45IDUzLjQtNDUuNy0xMi4zLTQ5LjJjLTEuNS01LjktLjctMTIuMiAyLjEtMTcuNmwxLjQtMi4yIDMyLTQ4IDEuNS0yek01MDQgNDg4bDQ4IDAgMC00OC00OCAwIDAgNDh6XCJdXG59O1xudmFyIGZhUHJlc2NyaXB0aW9uQm90dGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ByZXNjcmlwdGlvbi1ib3R0bGUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY0ODVcIiwgXCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0TDAgMzJ6TTMyIDE0NGwzMjAgMCAwIDMwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtNDggNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTY0elwiXVxufTtcbnZhciBmYVVzZXJzR2VhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2Vycy1nZWFyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJ1c2Vycy1jb2dcIl0sIFwiZjUwOVwiLCBcIk0zMjAgMjI0YTEwNCAxMDQgMCAxIDAgMC0yMDggMTA0IDEwNCAwIDEgMCAwIDIwOHpNOTYgMjMyYTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0ek0wIDQxNmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDg2LjcgMGMtNC4zLTkuOC02LjctMjAuNi02LjctMzJsMC0xNmMwLTUzLjIgMjAtMTAxLjggNTIuOS0xMzguNi0xMS43LTMuNS0yNC4xLTUuNC0zNi45LTUuNC03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHpNNjE2IDE2MGE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6TTE2MCA0MzJsMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNTYuOCAwYy03LjEtMjEuNi02LjMtNDQuNCAxMC43LTY0LTE0LTE2LjItMjAuNS0zOS43LTExLjQtNjMuMyA2LjYtMTcuMSAxNS45LTMzLjEgMjcuNC00Ny4zIDUuNC02LjYgMTEuNi0xMS43IDE4LjMtMTUuNC0yMi4xLTExLjUtNDcuMi0xOC03My44LTE4LTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwem00NjQuNi00NC4xYzYuMy0zLjYgOS41LTExLjEgNi44LTE4LTQuOC0xMi40LTExLjUtMjQuMS0xOS45LTM0LjQtNC42LTUuNy0xMi43LTYuNy0xOS0zLTIxLjggMTIuNi00OC42LTIuOC00OC42LTI4LjEgMC03LjMtNC45LTEzLjgtMTIuMS0xNC45LTEyLjktMi0yNi44LTItMzkuNyAwLTcuMiAxLjEtMTIuMSA3LjYtMTIuMSAxNC45IDAgMjUuMi0yNi44IDQwLjctNDguNiAyOC4xLTYuMy0zLjYtMTQuNC0yLjYtMTkgMy04LjQgMTAuMy0xNS4xIDIyLTE5LjkgMzQuNC0yLjYgNi44IC41IDE0LjMgNi44IDE3LjkgMjEuOSAxMi42IDIxLjkgNDMuNSAwIDU2LjItNi4zIDMuNi05LjUgMTEuMS02LjggMTcuOSA0LjggMTIuNCAxMS41IDI0LjEgMTkuOSAzNC40IDQuNiA1LjcgMTIuNyA2LjcgMTkgMyAyMS44LTEyLjYgNDguNiAyLjkgNDguNiAyOC4xIDAgNy4zIDQuOSAxMy44IDEyLjEgMTQuOSAxMi45IDIgMjYuOCAyIDM5LjcgMCA3LjItMS4xIDEyLjEtNy42IDEyLjEtMTQuOSAwLTI1LjIgMjYuOC00MC43IDQ4LjYtMjguMSA2LjMgMy42IDE0LjQgMi42IDE5LTMgOC40LTEwLjMgMTUuMS0yMiAxOS45LTM0LjQgMi42LTYuOC0uNS0xNC4zLTYuOC0xNy45LTIxLjktMTIuNi0yMS45LTQzLjUgMC01Ni4yek00NzIgNDE2YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6XCJdXG59O1xudmFyIGZhVXNlcnNDb2cgPSBmYVVzZXJzR2VhcjtcbnZhciBmYVJvYWRDaXJjbGVFeGNsYW1hdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb2FkLWNpcmNsZS1leGNsYW1hdGlvbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2NVwiLCBcIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6XCJdXG59O1xudmFyIGZhUGF1c2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGF1c2UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFs5MjA4XSwgXCJmMDRjXCIsIFwiTTQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMnptMjI0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6XCJdXG59O1xudmFyIGZhU3RhZmZTbmFrZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdGFmZi1zbmFrZScsXG4gIGljb246IFs0NDgsIDUxMiwgW1wicm9kLWFzY2xlcGl1c1wiLCBcInJvZC1zbmFrZVwiLCBcInN0YWZmLWFlc2N1bGFwaXVzXCJdLCBcImU1NzlcIiwgXCJNMTkyIDMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDY0IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTE2IDAgMC02NCAxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAgMTkyIDMyIDBjNTMgMCA5NiA0MyA5NiA5NiAwIDQ3LjYtMzQuNiA4Ny4xLTgwIDk0LjdsMC02N2M5LjYtNS41IDE2LTE1LjkgMTYtMjcuNyAwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTY0LTMyIDBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Ny42IDM0LjYtODcuMSA4MC05NC43bDAgNjdjLTkuNiA1LjUtMTYgMTUuOS0xNiAyNy43IDAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDAgMC0xOTItNzIuNiAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMybC0xNiAwQzIxLjUgMTI4IDAgMTA2LjUgMCA4MFMyMS41IDMyIDQ4IDMybDE0NCAwelwiXVxufTtcbnZhciBmYVJvZEFzY2xlcGl1cyA9IGZhU3RhZmZTbmFrZTtcbnZhciBmYVJvZFNuYWtlID0gZmFTdGFmZlNuYWtlO1xudmFyIGZhU3RhZmZBZXNjdWxhcGl1cyA9IGZhU3RhZmZTbmFrZTtcbnZhciBmYVBpZ2d5QmFuayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaWdneS1iYW5rJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNGQzXCIsIFwiTTI4OC0zMmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpNNDggMzA0YzAtNzAuMSA0Ny0xMzEuNCAxMTcuMS0xNjQuOSAyNS4zIDQxLjMgNzAuOSA2OC45IDEyMi45IDY4LjkgNTUuNyAwIDEwNC4xLTMxLjcgMTI4LTc4IDE1LjgtMTEuMyAzNS4xLTE4IDU2LTE4bDE5LjUgMGMxMC40IDAgMTggOS44IDE1LjUgMTkuOWwtMTcuMSA2OC4zYzkuOSAxMi40IDE4LjIgMjUuNyAyNC40IDM5LjhsMjEuNyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00MCAwYy0xNi41IDIyLTM4LjUgMzkuNi02NCA1MC43bDAgMjkuM2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzMgMGMtMTQuMyAwLTI2LjgtOS41LTMwLjgtMjMuMmwtNy4xLTI0LjgtODIuMyAwLTcuMSAyNC44QzIzNS44IDUwMi41IDIyMy4zIDUxMiAyMDkgNTEybC0zMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI5LjNDODcuNSA0MjYgNDggMzY5LjYgNDggMzA0em0zNzYgMTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwiXVxufTtcbnZhciBmYU1vbnVtZW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbnVtZW50JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNWE2XCIsIFwiTTIwOS0zM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMOTUgNDdjLTQuMSA0LjEtNi41IDkuNC03IDE1LjFMNTguNCA0NDggNDggNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMC40IDAtMjkuNy0zODUuOGMtLjQtNS43LTIuOS0xMS4xLTctMTUuMUwyMDktMzN6TTEyOCAyOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6XCJdXG59O1xudmFyIGZhQW5nbGVzUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGVzLXJpZ2h0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTg3LCBcImFuZ2xlLWRvdWJsZS1yaWdodFwiXSwgXCJmMTAxXCIsIFwiTTQzOS4xIDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wzNzEuMiAyNTYgMjMzLjkgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHptLTM1MiAxNjBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTc5LjIgMjU2IDQxLjkgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6XCJdXG59O1xudmFyIGZhQW5nbGVEb3VibGVSaWdodCA9IGZhQW5nbGVzUmlnaHQ7XG52YXIgZmFEZXNrdG9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rlc2t0b3AnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg0MjEsIDYxNzA0LCBcImRlc2t0b3AtYWx0XCJdLCBcImYzOTBcIiwgXCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDQgMC0xNiA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwLTE2LTQ4IDE0NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek05NiA5NmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyelwiXVxufTtcbnZhciBmYURlc2t0b3BBbHQgPSBmYURlc2t0b3A7XG52YXIgZmFQbGFuZUNpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYW5lLWNpcmNsZS14bWFyaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU1N1wiLCBcIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDc4IDcxLjVjLTY5LjMgMjktMTE4IDk3LjQtMTE4IDE3Ny4yIDAgNDkuMyAxOC42IDk0LjMgNDkuMSAxMjguM0wyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2Ljd6XCJdXG59O1xudmFyIGZhUmV0d2VldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZXR3ZWV0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMDc5XCIsIFwiTTExOC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTkuMSAxNjAgMzIgMTYwbDMyIDAgMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjI0IDMyIDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtNjQtNjR6TTQ1Ny40IDQ3MC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzU1Ni45IDM1MiA1NDQgMzUybC0zMiAwIDAtMjI0YzAtNTMtNDMtOTYtOTYtOTZMMjg4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0elwiXVxufTtcbnZhciBmYVVzZXJHZWFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItZ2VhcicsXG4gIGljb246IFs2NDAsIDUxMiwgW1widXNlci1jb2dcIl0sIFwiZjRmZVwiLCBcIk0yNTYuNSA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMjI2LjcgMzA0bDU5LjQgMCAxLjUgMGMtMTIuOSAyNi44LTcuOCA1OC4yIDExLjUgNzkuNS0yMC4yIDIyLjMtMjQuOCA1NS44LTkuNCA4My40bDIyLjUgNDAuNGMuOSAxLjYgMS45IDMuMiAyLjkgNC43bC0yMzcgMGMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjN6bTIwNS45LTU2LjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDYuMWMwIDE4LjkgMjQuMSAzMi44IDQwLjUgMjMuNGw1LTIuOWMxMS42LTYuNyAyNi41LTIuNiAzMyA5LjFsMjIuNCA0MC4yYzYuMiAxMS4yIDIuNiAyNS4yLTguMiAzMmwtNC43IDIuOWMtMTYuMiAxMC4xLTE2LjIgMzkuOSAwIDUwLjFsNC42IDIuOWMxMC44IDYuOCAxNC41IDIwLjggOC4zIDMyTDYwNyA0ODMuOGMtNi41IDExLjctMjEuNCAxNS45LTMzIDkuMWwtNC45LTIuOWMtMTYuNC05LjUtNDAuNSA0LjUtNDAuNSAyMy40bDAgNi4xYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTUuOWMwLTE5LTI0LjItMzMtNDAuNy0yMy41bC00LjggMi44Yy0xMS42IDYuNy0yNi40IDIuNi0zMy05LjFsLTIyLjYtNDAuNGMtNi4yLTExLjItMi42LTI1LjMgOC4zLTMyLjFsNC40LTIuN2MxNi4zLTEwLjEgMTYuMy00MC4xIDAtNTAuMmwtNC41LTIuOGMtMTAuOS02LjgtMTQuNS0yMC45LTguMy0zMi4xbDIyLjUtNDAuM2M2LjUtMTEuNyAyMS40LTE1LjggMzIuOS05LjFsNC44IDIuOGMxNi41IDkuNSA0MC43LTQuNSA0MC43LTIzLjVsMC01Ljl6bTk5LjkgMTM2LjJhNTIgNTIgMCAxIDAgLTEwNCAwIDUyIDUyIDAgMSAwIDEwNCAwelwiXVxufTtcbnZhciBmYVVzZXJDb2cgPSBmYVVzZXJHZWFyO1xudmFyIGZhQm9yZGVyQWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvcmRlci1hbGwnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY4NGNcIiwgXCJNMzg0IDk2bDAgMTI4LTEyOCAwIDAtMTI4IDEyOCAwem0wIDE5MmwwIDEyOC0xMjggMCAwLTEyOCAxMjggMHpNMTkyIDIyNGwtMTI4IDAgMC0xMjggMTI4IDAgMCAxMjh6TTY0IDI4OGwxMjggMCAwIDEyOC0xMjggMCAwLTEyOHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpcIl1cbn07XG52YXIgZmFDb2lucyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2lucycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjUxZVwiLCBcIk0xMjggOTZsMC0xNmMwLTQ0LjIgODYtODAgMTkyLTgwUzUxMiAzNS44IDUxMiA4MGwwIDE2YzAgMzAuNi00MS4zIDU3LjItMTAyIDcwLjctMi40LTIuOC00LjktNS41LTcuNC04LTE1LjUtMTUuMy0zNS41LTI2LjktNTYuNC0zNS41LTQxLjktMTcuNS05Ni41LTI3LjEtMTU0LjItMjcuMS0yMS45IDAtNDMuMyAxLjQtNjMuOCA0LjEtLjItMS4zLS4yLTIuNy0uMi00LjF6TTQzMiAzNTNsMC00Ni4yYzE1LjEtMy45IDI5LjMtOC41IDQyLjItMTMuOSAxMy4yLTUuNSAyNi4xLTEyLjIgMzcuOC0yMC4zbDAgMTUuNGMwIDI2LjgtMzEuNSA1MC41LTgwIDY1em0wLTk2bDAtMzNjMC00LjUtLjQtOC44LTEtMTMgMTUuNS0zLjkgMzAtOC42IDQzLjItMTQuMnMyNi4xLTEyLjIgMzcuOC0yMC4zbDAgMTUuNGMwIDI2LjgtMzEuNSA1MC41LTgwIDY1ek0wIDI0MGwwLTE2YzAtNDQuMiA4Ni04MCAxOTItODBzMTkyIDM1LjggMTkyIDgwbDAgMTZjMCA0NC4yLTg2IDgwLTE5MiA4MFMwIDI4NC4yIDAgMjQwem0zODQgOTZjMCA0NC4yLTg2IDgwLTE5MiA4MFMwIDM4MC4yIDAgMzM2bDAtMTUuNGMxMS42IDguMSAyNC41IDE0LjcgMzcuOCAyMC4zIDQxLjkgMTcuNSA5Ni41IDI3LjEgMTU0LjIgMjcuMXMxMTIuMy05LjcgMTU0LjItMjcuMWMxMy4yLTUuNSAyNi4xLTEyLjIgMzcuOC0yMC4zbDAgMTUuNHptMCA4MC42bDAgMTUuNGMwIDQ0LjItODYgODAtMTkyIDgwUzAgNDc2LjIgMCA0MzJsMC0xNS40YzExLjYgOC4xIDI0LjUgMTQuNyAzNy44IDIwLjMgNDEuOSAxNy41IDk2LjUgMjcuMSAxNTQuMiAyNy4xczExMi4zLTkuNyAxNTQuMi0yNy4xYzEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjN6XCJdXG59O1xudmFyIGZhTWFyc1N0cm9rZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLXN0cm9rZScsXG4gIGljb246IFs1NzYsIDUxMiwgWzk4OTRdLCBcImYyMjlcIiwgXCJNNDE2LTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUwLjcgMC01OC43IDU4LjctMTcuNC0xNy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNy40IDE3LjQtMjMgMjNjLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzEtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2YzAtMzctMTEuNC03MS40LTMxLTk5LjhsMjMtMjMgMTcuNCAxNy40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNDUzLjMgMTM2IDUxMiA3Ny4zIDUxMiAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw1NzYgMGMwLTE3LjctMTQuMy0zMi0zMi0zMkw0MTYtMzJ6TTEyOCAzMDRhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHpcIl1cbn07XG52YXIgZmFIYW5kc2hha2VBbmdsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kc2hha2UtYW5nbGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImhhbmRzLWhlbHBpbmdcIl0sIFwiZjRjNFwiLCBcIk0yNjguOSA1My4yTDE1Mi4zIDE4Mi44Yy00LjYgNS4xLTQuNCAxMyAuNSAxNy45IDMwLjUgMzAuNSA4MCAzMC41IDExMC41IDBsMzEuOC0zMS44YzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM0NCA1NzYgMjg4IDU3NiAwIDQ2NCA2NCA0NDAuMiA0OC4xQzQyNC40IDM3LjYgNDA1LjkgMzIgMzg2LjkgMzJsLTcwLjQgMGMtMS4xIDAtMi4zIDAtMy40IC4xLTE2LjkgLjktMzIuOCA4LjUtNDQuMiAyMS4xek0xMTYuNiAxNTAuN0wyMjMuNCAzMiAxODMuOCAzMmMtMjUuNSAwLTQ5LjkgMTAuMS02Ny45IDI4LjFMMCAxOTIgMCA1NDQgMTQ0IDQwOCAxNTYuNCA0MTguM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMTkuMSAwIDM3LjgtNC4zIDU0LjgtMTIuM0wzNTkgNDA5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzIgMzIgMTcuNS0xNy41YzguOS04LjkgMTEuNS0yMS44IDcuNi0zMy4xbC0xMzcuOS0xMzYuOC0xNC45IDE0LjljLTQ5LjMgNDkuMy0xMjkuMSA0OS4zLTE3OC40IDAtMjMtMjMtMjMuOS01OS45LTIuMi04NHpcIl1cbn07XG52YXIgZmFIYW5kc0hlbHBpbmcgPSBmYUhhbmRzaGFrZUFuZ2xlO1xudmFyIGZhQXJyb3dEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWRvd24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFs4NTk1XSwgXCJmMDYzXCIsIFwiTTE2OS40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjI0IDQwMi43IDIyNCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDM3MC43LTEwNS40LTEwNS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwelwiXVxufTtcbnZhciBmYUxvY2F0aW9uRG90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xvY2F0aW9uLWRvdCcsXG4gIGljb246IFszODQsIDUxMiwgW1wibWFwLW1hcmtlci1hbHRcIl0sIFwiZjNjNVwiLCBcIk0wIDE4OC42QzAgODQuNCA4NiAwIDE5MiAwUzM4NCA4NC40IDM4NCAxODguNmMwIDExOS4zLTEyMC4yIDI2Mi4zLTE3MC40IDMxNi44LTExLjggMTIuOC0zMS41IDEyLjgtNDMuMyAwLTUwLjItNTQuNS0xNzAuNC0xOTcuNS0xNzAuNC0zMTYuOHpNMTkyIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpcIl1cbn07XG52YXIgZmFNYXBNYXJrZXJBbHQgPSBmYUxvY2F0aW9uRG90O1xudmFyIGZhUGx1Z0NpcmNsZUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdWctY2lyY2xlLWV4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTVkXCIsIFwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjI4YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAxIDAgMCA0MHptMC0xODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6XCJdXG59O1xudmFyIGZhQ29va2llQml0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb29raWUtYml0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU2NFwiLCBcIk0yNTcuNSAyNy42Yy0uOC01LjQtNC45LTkuOC0xMC4zLTEwLjYtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45LS45LTUuMy01LjMtOS4zLTEwLjYtMTAuMS01MS41LTguMi05Mi44LTQ3LjEtMTA0LjUtOTcuNC0xLjgtNy42LTgtMTMuNC0xNS43LTE0LjYtNTQuNi04LjctOTcuNy01Mi0xMDYuMi0xMDYuOHpNMjA4IDE0NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE0NCAzMzZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjI0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFTY3Jld2RyaXZlcldyZW5jaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY3Jld2RyaXZlci13cmVuY2gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcInRvb2xzXCJdLCBcImY3ZDlcIiwgXCJNNzAuOC02LjdjNS40LTUuNCAxMy44LTYuMiAyMC4yLTJMMjA5LjkgNzAuNWM4LjkgNS45IDE0LjIgMTUuOSAxNC4yIDI2LjZsMCA0OS42IDkwLjggOTAuOGMzMy4zLTE1IDczLjktOC45IDEwMS4yIDE4LjVMNTQyLjIgMzgyLjFjMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlsLTYwLjEgNjAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjg4LjEgMzg0Yy0yNy40LTI3LjQtMzMuNS02Ny45LTE4LjUtMTAxLjJsLTkwLjgtOTAuOC00OS42IDBjLTEwLjcgMC0yMC43LTUuMy0yNi42LTE0LjJMMjMuNCA1OC45Yy00LjItNi4zLTMuNC0xNC44IDItMjAuMkw3MC44LTYuN3ptMTQ1IDMwMy41Yy02LjMgMzYuOSAyLjMgNzUuOSAyNi4yIDEwNy4ybC05NC45IDk1Yy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDBzLTI4LjEtNzMuNyAwLTEwMS44bDEzNS40LTEzNS41IDM1LjIgMzUuMXpNMzg0LjEgMGMyMC4xIDAgMzkuNCAzLjcgNTcuMSAxMC41IDEwIDMuOCAxMS44IDE2LjUgNC4zIDI0LjFMMzg4LjggOTEuM2MtMyAzLTQuNyA3LjEtNC43IDExLjNsMCA0MS40YzAgOC44IDcuMiAxNiAxNiAxNmw0MS40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w1Ni43LTU2LjdjNy42LTcuNSAyMC4zLTUuNyAyNC4xIDQuMyA2LjggMTcuNyAxMC41IDM3IDEwLjUgNTcuMSAwIDQzLjItMTcuMiA4Mi4zLTQ1IDExMS4xbC00OS4xLTQ5LjFjLTMzLjEtMzMtNzguNS00NS43LTEyMS4xLTM4LjRsLTU2LjgtNTYuOCAwLTI5LjctLjItNWMtLjgtMTIuNC00LjQtMjQuMy0xMC41LTM0LjkgMjkuNC0zNSA3My40LTU3LjIgMTIyLjctNTcuM3pcIl1cbn07XG52YXIgZmFUb29scyA9IGZhU2NyZXdkcml2ZXJXcmVuY2g7XG52YXIgZmFJbmRlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW5kZW50JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDNjXCIsIFwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTEyNy44IDI2OC42TDI1LjggMzQ3LjlDMTUuMyAzNTYuMSAwIDM0OC42IDAgMzM1LjNMMCAxNzYuN2MwLTEzLjMgMTUuMy0yMC44IDI1LjgtMTIuNmwxMDEuOSA3OS4zYzguMiA2LjQgOC4yIDE4LjkgMCAyNS4zelwiXVxufTtcbnZhciBmYUJhcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFycycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wibmF2aWNvblwiXSwgXCJmMGM5XCIsIFwiTTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NnpNMCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJdXG59O1xudmFyIGZhTmF2aWNvbiA9IGZhQmFycztcbnZhciBmYUhhbmRzUHJheWluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kcy1wcmF5aW5nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXCJwcmF5aW5nLWhhbmRzXCJdLCBcImY2ODRcIiwgXCJNMjI0IDI5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMi42IDg4LjItMTE5LjdjMTMuMS0xNy44IDkuMy00Mi44LTguNS01NS45cy00Mi44LTkuMy01NS45IDguNUwxMDYuNSAxNDIuOUM4OS4zIDE2Ni4yIDgwIDE5NC41IDgwIDIyMy42bDAgMTEwLjctNTguMSAxOS40QzguOCAzNTggMCAzNzAuMiAwIDM4NGwwIDk2YzAgMTAgNC43IDE5LjUgMTIuNyAyNS41czE4LjQgOCAyOC4xIDUuMmwxNTQuNC00NC4xYzU1LTE1LjcgOTIuOC02NS45IDkyLjgtMTIzLjFMMjg4IDIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDcyem0xOTIgMGwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTE5LjZjMCA1Ny4yIDM3LjkgMTA3LjQgOTIuOCAxMjMuMWwxNTQuNCA0NC4xYzkuNyAyLjggMjAgLjggMjguMS01LjJTNjQwIDQ5MCA2NDAgNDgwbDAtOTZjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTU4LjEtMTkuNCAwLTExMC43YzAtMjktOS4zLTU3LjMtMjYuNS04MC43TDQ0MC4yIDE2LjNDNDI3LjEtMS41IDQwMi4xLTUuMyAzODQuMyA3LjhzLTIxLjYgMzguMS04LjUgNTUuOUw0NjQgMTgzLjQgNDY0IDI5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpcIl1cbn07XG52YXIgZmFQcmF5aW5nSGFuZHMgPSBmYUhhbmRzUHJheWluZztcbnZhciBmYVZpcnVzZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmlydXNlcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTA3NlwiLCBcIk0xOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDMwLjUgMzYuOSA0NS44IDU4LjUgMjQuMiAxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy0yMS42IDIxLjYtNi4zIDU4LjUgMjQuMiA1OC41IDE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyYy0zMC41IDAtNDUuOCAzNi45LTI0LjIgNTguNSAxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGMtMjEuNi0yMS42LTU4LjUtNi4zLTU4LjUgMjQuMiAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTMwLjUtMzYuOS00NS44LTU4LjUtMjQuMi0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0M3Ny44IDI2MC45IDYyLjUgMjI0IDMyIDIyNCAxNC4zIDIyNCAwIDIwOS43IDAgMTkyczE0LjMtMzIgMzItMzJjMzAuNSAwIDQ1LjgtMzYuOSAyNC4yLTU4LjUtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEMxMjMuMSA3Ny44IDE2MCA2Mi41IDE2MCAzMiAxNjAgMTQuMyAxNzQuMyAwIDE5MiAwek0xNDQgMTc2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTI4IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI0OCA0MGMwIDIyLjkgMjcuNyAzNC40IDQzLjkgMTguMiA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTE2LjIgMTYuMi00LjcgNDMuOSAxOC4yIDQzLjkgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjkgMC0zNC40IDI3LjctMTguMiA0My45IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTE2LjItMTYuMi00My45LTQuNy00My45IDE4LjIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0yMi45LTI3LjctMzQuNC00My45LTE4LjItOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWMxNi4yLTE2LjIgNC43LTQzLjktMTguMi00My45LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjIuOSAwIDM0LjQtMjcuNyAxOC4yLTQzLjktOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzE2LjIgMTYuMiA0My45IDQuNyA0My45LTE4LjIgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpNNTA0IDM4NGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwelwiXVxufTtcbnZhciBmYVNjaG9vbEZsYWcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2Nob29sLWZsYWcnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1NmVcIiwgXCJNMjU2LThjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNzIgMCAwIDE5LjIgMTI4IDc2LjggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDAgMTI4LTc2LjggMC05MS4yek0yNDAgMzg0bDAgODAgOTYgMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4ek0xMTIgNDE2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgNDE2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2em0tMjI0IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2elwiXVxufTtcbnZhciBmYVRyYWRlbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmFkZW1hcmsnLFxuICBpY29uOiBbNjQwLCA1MTIsIFs4NDgyXSwgXCJmMjVjXCIsIFwiTTM0Ni42IDExMC4yYy03LjgtMTEuNy0yMi40LTE3LTM1LjktMTIuOVMyODggMTEzLjkgMjg4IDEyOGwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTUwLjMgNjkuNCAxMDQuMWM1LjkgOC45IDE1LjkgMTQuMiAyNi42IDE0LjJzMjAuNy01LjMgMjYuNi0xNC4yTDU0NCAyMzMuNyA1NDQgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZjMC0xNC4xLTkuMi0yNi41LTIyLjctMzAuNnMtMjguMSAxLjEtMzUuOSAxMi45TDQ0OCAyNjIuMyAzNDYuNiAxMTAuMnpNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsNjQgMCAwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgOTZ6XCJdXG59O1xudmFyIGZhRmlyZUJ1cm5lciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaXJlLWJ1cm5lcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTRmMVwiLCBcIk0yODEuNyA0OC4zTDI5NCAzNC41YzUuNC02LjEgMTMuMy04LjggMjAuOS04LjkgNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjggMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42IDE1LjEgMjcuMiAyNi4yIDU4LjEgMjYuMiA4OC4xIDAgODguNy03MS4zIDE1OS44LTE2MCAxNTkuOC04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44IDAtMzcuMyAxNi03My40IDM2LjgtMTA0LjUgMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4yIDUuNy01LjIgMTMuMS03LjcgMjAuMy03LjVzMTMuNCAzLjIgMTguOCA3LjVjMTQuNCAxMS40IDM4LjkgNDAuNyAzOC45IDQwLjd6TTMyMCAyNDAuMmMwLTM2LjUtMzctNzMtNTQuOC04OC40LTUuNC00LjctMTMuMS00LjctMTguNSAwLTE3LjcgMTUuNC01NC44IDUxLjktNTQuOCA4OC40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6TTkyLjggMzIwYzM3LjcgNDguMyA5Ni4xIDgwIDE2My4yIDgwIDY2LjUgMCAxMjUuMS0zMS43IDE2My04MGw0NSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQ0LjggMHpNNDU2IDQwMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwelwiXVxufTtcbnZhciBmYUZhY2VTbWlsZUJlYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1zbWlsZS1iZWFtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI4NTIyLCBcInNtaWxlLWJlYW1cIl0sIFwiZjViOFwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY1LjQgMzIxLjljMjAuNCAyOCA1My40IDQ2LjEgOTAuNiA0Ni4xczcwLjItMTguMSA5MC42LTQ2LjFjNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUMzNTYuMyAzOTAgMzA5LjIgNDE2IDI1NiA0MTZzLTEwMC4zLTI2LTEyOS40LTY1LjljLTcuOC0xMC43LTUuNC0yNS43IDUuMy0zMy41czI1LjctNS40IDMzLjUgNS4zek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHpcIl1cbn07XG52YXIgZmFTbWlsZUJlYW0gPSBmYUZhY2VTbWlsZUJlYW07XG52YXIgZmFUZW50QXJyb3dMZWZ0UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVudC1hcnJvdy1sZWZ0LXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlNTdmXCIsIFwiTS0uNSAxMTNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDcyLTcyYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzEgMzEgMzEwLjEgMCA1NC4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMC0uMSAwLTI2MiAwIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcyLTcyek0zNy4xIDQ3Nkw2MC4zIDI5Mi42YzEuMi05LjcgNi44LTE4LjMgMTUuMS0yMy4zTDIzOC44IDE3MGMxMC4yLTYuMiAyMi45LTYuMiAzMy4xLS4xbDE2NS41IDk5LjRjOC40IDUgMTQgMTMuNyAxNS4zIDIzLjRMNDc1LjkgNDc2YzIuNCAxOS4xLTEyLjUgMzYtMzEuNyAzNmwtNzEuOSAwYy0xMi4xIDAtMjMuMi02LjgtMjguNi0xNy43TDI3NS40IDM1Ny45Yy0xLjgtMy42LTUuNS01LjktOS41LTUuOS01LjkgMC0xMC42IDQuNy0xMC42IDEwLjZsMCAxMTcuNGMwIDE3LjctMTQuMyAzMi0zMiAzMkw2OC44IDUxMmMtMTkuMyAwLTM0LjItMTYuOS0zMS43LTM2elwiXVxufTtcbnZhciBmYVJvdXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvdXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGQ3XCIsIFwiTTUxMiA5NmMwIDUwLjItNTkuMSAxMjUuMS04NC42IDE1NS0zLjggNC40LTkuNCA2LjEtMTQuNSA1TDMyMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMjc2LjQgMGM4LjctOS45IDE5LjMtMjIuNiAzMC0zNi44IDYuMy04LjQgMTIuOC0xNy42IDE5LTI3LjJMNDE2IDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NmwzOS44IDBjLTIxLTMxLjUtMzkuOC02Ny43LTM5LjgtOTYgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NnpNMTE3LjEgNDg5LjFjLTMuOCA0LjMtNy4yIDguMS0xMC4xIDExLjNsLTEuOCAyLS4yLS4yYy02IDQuNi0xNC42IDQtMjAtMS44LTI1LjItMjcuNC04NS05Ny45LTg1LTE0OC40IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAzMC0yMS4xIDY3LTQzLjUgOTcuOS0xMC43IDE0LjctMjEuNyAyOC0zMC44IDM4LjVsLS42IC43ek0xMjggMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTQxNiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwiXVxufTtcbnZhciBmYUFuZ2xlc1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlcy11cCcsXG4gIGljb246IFszODQsIDUxMiwgW1wiYW5nbGUtZG91YmxlLXVwXCJdLCBcImYxMDJcIiwgXCJNMjE0LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyIDEwOS4zIDMyOS40IDI0Ni42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6bTE2MCAzNTJsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAzMDEuMyAzMjkuNCA0MzguNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zelwiXVxufTtcbnZhciBmYUFuZ2xlRG91YmxlVXAgPSBmYUFuZ2xlc1VwO1xudmFyIGZhQnVja2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1Y2tldCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTRjZlwiLCBcIk00NDMuNyAyMDhjMi43IDQuNyA0LjMgMTAuMiA0LjMgMTYgMCAxNy43LTE0LjMgMzItMzIgMzJsLTUuMSAwLTIyLjQgMjEzYy0yLjYgMjQuNC0yMy4yIDQzLTQ3LjggNDNsLTIzMy42IDBjLTI0LjYgMC00NS4yLTE4LjUtNDcuOC00M0wzNy4xIDI1NiAzMiAyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtNS44IDEuNi0xMS4zIDQuMy0xNmw0MzkuNCAwek0yMjQtMTZjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRsMCAzMi00OCAwIDAtMzJjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMi00OCAwIDAtMzJDODAgNDguNSAxNDQuNS0xNiAyMjQtMTZ6XCJdXG59O1xudmFyIGZhTGVzc1RoYW5FcXVhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsZXNzLXRoYW4tZXF1YWwnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1MzdcIiwgXCJNNDI2LjEgOTQuNGMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41cy0yMy43LTI1LjgtNDAuNS0yMC4ybC0zODQgMTI4QzguOCAxNjYgMCAxNzguMiAwIDE5MnM4LjggMjYgMjEuOSAzMC40bDM4NCAxMjhjMTYuOCA1LjYgMzQuOS0zLjUgNDAuNS0yMC4ycy0zLjUtMzQuOS0yMC4yLTQwLjVMMTMzLjIgMTkyIDQyNi4xIDk0LjR6TTMyIDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZ6XCJdXG59O1xudmFyIGZhRm9sZGVyQ2xvc2VkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbGRlci1jbG9zZWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUxODVcIiwgXCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2IDUxMiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0em02NC0yODhMMCAxNjAgMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTZ6XCJdXG59O1xudmFyIGZhUGVyc29uVGhyb3VnaFdpbmRvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tdGhyb3VnaC13aW5kb3cnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1YTlcIiwgXCJNNjQgNjRsMjI0IDAgMCA5LjhjMCAzOS0yMy43IDc0LTU5LjkgODguNC02MC41IDI0LjItMTAwLjEgODIuNy0xMDAuMSAxNDcuOWwwIDczLjgtNjQgMCAwLTMyMHptMjg4IDBsMjI0IDAgMCAzMjAtNjcuNyAwLTMuNy00LjUtNzUuMi05MC4yYy05LjEtMTAuOS0yMi42LTE3LjMtMzYuOS0xNy4zbC03MS4xIDAtNDEtNjMuMWMtLjMtLjUtLjYtMS0xLTEuNCA0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHptNzMgMzIwbC0yNi42IDAgNDIuNyA2NCAxNTAuOSAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI2MC4yIDAgMzMuMiA0OS44YzkuOCAxNC43IDI5LjcgMTguNyA0NC40IDguOXMxOC43LTI5LjcgOC45LTQ0LjRsLTg0LjItMTI2LjIgNzQuNiAwIDQwIDQ4em0tMTU5LjUgMGwtNzMuNSAwIDAtNzMuOGMwLTEwLjIgMS42LTIwLjEgNC43LTI5LjVMMjY1LjUgMzg0ek0xOTIgMTI4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6XCJdXG59O1xudmFyIGZhU2Nob29sTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY2hvb2wtbG9jaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTU2ZlwiLCBcIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyNy45LTExNS4xYzE4LjMtMTYuNCA0Ni0xNi40IDY0LjIgMEw0NDggMTI4IDUxMiAxMjhjMzMgMCA2MC4yIDI1IDYzLjYgNTcuMi0xNC43LTUuOS0zMC44LTkuMi00Ny42LTkuMi03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6TTMzMi4zIDM0MS41Yy02LTMuNS0xMi45LTUuNS0yMC4zLTUuNWwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA4OCA5NiAwIDAtNjQuMWMwLTIwLjggNC40LTQwLjUgMTIuMy01OC40ek0xMTIgMzg0YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2em0yMjQtNDhhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek01NjAgMzUybDAtNDcuOWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMHptLTExMiAyLjdsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjN6XCJdXG59O1xudmFyIGZhUGVyc29uQnVyc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyc29uLWJ1cnN0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTNiXCIsIFwiTTIwNCA0MC4xYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHpNNCAxNDQuMWMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNOTYuNSAyODUuNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDk2LjUgMjg1LjV6TTYyLjYgMi43YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDYyLjYgMzYuNmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6TTM1Mi40LTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek00NzguNyAyOTkuMWwtNDYuMy02Mi40IDAgMjc1LjNjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNzUuMy00Ni4zIDYyLjRjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1YzI1LjItMzMuOSA2NS01My45IDEwNy4yLTUzLjlzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6XCJdXG59O1xudmFyIGZhTGVmdExvbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVmdC1sb25nJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJsb25nLWFycm93LWFsdC1sZWZ0XCJdLCBcImYzMGFcIiwgXCJNOS40IDI3OC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wxMjgtMTI4YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE5MiAxMTUuMSAxOTIgMTI4bDAgNjQgMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzM2IDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtMTI4LTEyOHpcIl1cbn07XG52YXIgZmFMb25nQXJyb3dBbHRMZWZ0ID0gZmFMZWZ0TG9uZztcbnZhciBmYUxvY2F0aW9uQ3Jvc3NoYWlycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NhdGlvbi1jcm9zc2hhaXJzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJsb2NhdGlvblwiXSwgXCJmNjAxXCIsIFwiTTI4OC0xNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE4LjNjOTguMSAxNCAxNzUuNyA5MS42IDE4OS43IDE4OS43bDE4LjMgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguMyAwYy0xNCA5OC4xLTkxLjYgMTc1LjctMTg5LjcgMTg5LjdsMCAxOC4zYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguM0MxNTcuOSA0NjMuNyA4MC4zIDM4Ni4xIDY2LjMgMjg4TDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC4zIDBDODAuMyAxMjUuOSAxNTcuOSA0OC4zIDI1NiAzNC4zTDI1NiAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTI4IDI1NmExNjAgMTYwIDAgMSAwIDMyMCAwIDE2MCAxNjAgMCAxIDAgLTMyMCAwem0xNjAtOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6XCJdXG59O1xudmFyIGZhTG9jYXRpb24gPSBmYUxvY2F0aW9uQ3Jvc3NoYWlycztcbnZhciBmYVBlcnNvbkRvdHNGcm9tTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJzb24tZG90cy1mcm9tLWxpbmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImRpYWdub3Nlc1wiXSwgXCJmNDcwXCIsIFwiTTE4NCA3MmE3MiA3MiAwIDEgMSAxNDQgMCA3MiA3MiAwIDEgMSAtMTQ0IDB6TTE2MCAyOTkuM2MtMTkuOSAyMi42LTMyIDUyLjItMzIgODQuN2wwIDMyLTY0IDAgMC0zMmMwLTEwNiA4Ni0xOTIgMTkyLTE5MnMxOTIgODYgMTkyIDE5MmwwIDMyLTY0IDAgMC0zMmMwLTMyLjUtMTIuMS02Mi4xLTMyLTg0LjdsMCAxMTYuNy0xOTIgMCAwLTExNi43ek0yMzIgMzg0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODgtMTA0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTI0IDQ2NGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTY0IDE4NGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem00MjQgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwiXVxufTtcbnZhciBmYURpYWdub3NlcyA9IGZhUGVyc29uRG90c0Zyb21MaW5lO1xudmFyIGZhR2F1Z2VTaW1wbGVIaWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dhdWdlLXNpbXBsZS1oaWdoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNjE2NjgsIFwidGFjaG9tZXRlclwiLCBcInRhY2hvbWV0ZXItZmFzdFwiXSwgXCJmNjJhXCIsIFwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTMyMCA5NmMwLTE2LjItNi0zMS4xLTE2LTQyLjNsNjkuNS0xMzguOWM1LjktMTEuOSAxLjEtMjYuMy0xMC43LTMyLjJzLTI2LjMtMS4xLTMyLjIgMTAuN0wyNjEuMSAyODguMmMtMS43LS4xLTMuNC0uMi01LjEtLjItMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NCA2NC0yOC43IDY0LTY0elwiXVxufTtcbnZhciBmYVRhY2hvbWV0ZXIgPSBmYUdhdWdlU2ltcGxlSGlnaDtcbnZhciBmYVRhY2hvbWV0ZXJGYXN0ID0gZmFHYXVnZVNpbXBsZUhpZ2g7XG52YXIgZmFBbmdsZXNMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlcy1sZWZ0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTcxLCBcImFuZ2xlLWRvdWJsZS1sZWZ0XCJdLCBcImYxMDBcIiwgXCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMjE0LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjB6bTM1Mi0xNjBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wyNjkuMyAyNTYgNDA2LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDB6XCJdXG59O1xudmFyIGZhQW5nbGVEb3VibGVMZWZ0ID0gZmFBbmdsZXNMZWZ0O1xudmFyIGZhVXBEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VwLWRvd24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFs4NTk3LCAxMTAyMSwgXCJhcnJvd3MtYWx0LXZcIl0sIFwiZjMzOFwiLCBcIk00MDYuNiA1MDIuNmw5Ni05NmM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSAzNTIgNDgwIDM1MmwtNjQgMCAwLTMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyMC02NCAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWw5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHpNMTUwLjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45UzE5LjEgMTYwIDMyIDE2MGw2NCAwIDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMjAgNjQgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC05Ni05NnpcIl1cbn07XG52YXIgZmFBcnJvd3NBbHRWID0gZmFVcERvd247XG52YXIgZmFCYXR0ZXJ5RW1wdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmF0dGVyeS1lbXB0eScsXG4gIGljb246IFs2NDAsIDUxMiwgW1wiYmF0dGVyeS0wXCJdLCBcImYyNDRcIiwgXCJNMTEyIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjI0YzAgOC44IDcuMiAxNiAxNiAxNmw0MTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yMjRjMC04LjgtNy4yLTE2LTE2LTE2bC00MTYgMHpNMzIgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDQxNiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDQ4YzAgNDQuMi0zNS44IDgwLTgwIDgwbC00MTYgMGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0yMjR6XCJdXG59O1xudmFyIGZhQmF0dGVyeTAgPSBmYUJhdHRlcnlFbXB0eTtcbnZhciBmYUtleWJvYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2tleWJvYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbOTAwMF0sIFwiZjExY1wiLCBcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTYgNjRsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTE3NiAxMjhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTYwIDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwLTE3NmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MC04MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MC04MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNiA4MGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2elwiXVxufTtcbnZhciBmYUNvb2tpZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb29raWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjc4NTBdLCBcImY1NjNcIiwgXCJNMjQ3LjIgMTdjLTIyLjEtMy4xLTQ0LjYgLjktNjQuNCAxMS40bC03NCAzOS41Qzg5LjEgNzguNCA3My4yIDk0LjkgNjMuNCAxMTVMMjYuNyAxOTAuNmMtOS44IDIwLjEtMTMgNDIuOS05LjEgNjQuOWwxNC41IDgyLjhjMy45IDIyLjEgMTQuNiA0Mi4zIDMwLjcgNTcuOWw2MC4zIDU4LjRjMTYuMSAxNS42IDM2LjYgMjUuNiA1OC43IDI4LjdsODMgMTEuN2MyMi4xIDMuMSA0NC42LS45IDY0LjQtMTEuNGw3NC0zOS41YzE5LjctMTAuNSAzNS42LTI3IDQ1LjQtNDcuMmwzNi43LTc1LjVjOS44LTIwLjEgMTMtNDIuOSA5LjEtNjQuOWwtMTQuNi04Mi44Yy0zLjktMjIuMS0xNC42LTQyLjMtMzAuNy01Ny45TDM4OC45IDU3LjVjLTE2LjEtMTUuNi0zNi42LTI1LjYtNTguNy0yOC43TDI0Ny4yIDE3ek0yMDggMTQ0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTQ0IDMzNmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0yMjQtNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwiXVxufTtcbnZhciBmYVN0b3B3YXRjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdG9wd2F0Y2gnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5MjAxXSwgXCJmMmYyXCIsIFwiTTE2OC41IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDI1LjNjLTEwOCAxMS45LTE5MiAxMDMuNS0xOTIgMjE0LjcgMCAxMTkuMyA5Ni43IDIxNiAyMTYgMjE2czIxNi05Ni43IDIxNi0yMTZjMC0zOS44LTEwLjgtNzcuMS0yOS42LTEwOS4ybDI4LjItMjguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMjMuNCAyMy40Yy0zMi45LTMwLjItNzUuMi01MC4zLTEyMi01NS41bDAtMjUuMyAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptODAgMTg0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6XCJdXG59O1xudmFyIGZhRWplY3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWplY3QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFs5MTY3XSwgXCJmMDUyXCIsIFwiTTIyNCAzMmMxMy41IDAgMjYuMyA1LjYgMzUuNCAxNS42bDE3NiAxOTJjMTIuOSAxNCAxNi4yIDM0LjMgOC42IDUxLjhTNDE5IDMyMCA0MDAgMzIwTDQ4IDMyMGMtMTkgMC0zNi4zLTExLjItNDMuOS0yOC43cy00LjMtMzcuNyA4LjYtNTEuOGwxNzYtMTkyQzE5Ny43IDM3LjYgMjEwLjUgMzIgMjI0IDMyek0wIDQzMmMwLTI2LjUgMjEuNS00OCA0OC00OGwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4elwiXVxufTtcbnZhciBmYVNhdGVsbGl0ZURpc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2F0ZWxsaXRlLWRpc2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjgyMjVdLCBcImY3YzBcIiwgXCJNMjMyIDBjMTU0LjYgMCAyODAgMTI1LjQgMjgwIDI4MCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEyOC4xLTEwMy45LTIzMi0yMzItMjMyLTEzLjMgMC0yNC0xMC43LTI0LTI0UzIxOC43IDAgMjMyIDB6TTIwOCAxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTAxLjYgMCAxODQgODIuNCAxODQgMTg0IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNzUuMS02MC45LTEzNi0xMzYtMTM2LTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNi40IDE0Mi43YzguOC0xNy45IDMyLjQtMTkuOSA0Ni41LTUuOGwxMjguNSAxMjguNSAzMi0zMmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0zMiAzMiAxMjguNSAxMjguNWMxNC4xIDE0LjEgMTIgMzcuNi01LjggNDYuNS0zNC4yIDE2LjktNzIuNiAyNi40LTExMy4zIDI2LjQtMTQxLjQgMC0yNTYtMTE0LjYtMjU2LTI1NiAwLTQwLjcgOS41LTc5LjIgMjYuNC0xMTMuM3pcIl1cbn07XG52YXIgZmFGYWNlUm9sbGluZ0V5ZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmFjZS1yb2xsaW5nLWV5ZXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg1ODAsIFwibWVoLXJvbGxpbmctZXllc1wiXSwgXCJmNWE1XCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMzUybDEyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMzItMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40em0xMjggNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40IDAgMzUuMy0yOC43IDY0LTY0IDY0elwiXVxufTtcbnZhciBmYU1laFJvbGxpbmdFeWVzID0gZmFGYWNlUm9sbGluZ0V5ZXM7XG52YXIgZmFMaXN0Q2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlzdC1jaGVjaycsXG4gIGljb246IFs1MTIsIDUxMiwgW1widGFza3NcIl0sIFwiZjBhZVwiLCBcIk0xMzMuOCAzNi4zYzEwLjkgNy42IDEzLjUgMjIuNiA1LjkgMzMuNGwtNTYgODBjLTQuMSA1LjgtMTAuNSA5LjUtMTcuNiAxMC4xUzUyIDE1OCA0NyAxNTNMNyAxMTNDLTIuMyAxMDMuNi0yLjMgODguNCA3IDc5UzMxLjYgNjkuNyA0MSA3OWwxOS44IDE5LjggMzkuNi01Ni42YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXptMCAxNjBjMTAuOSA3LjYgMTMuNSAyMi42IDUuOSAzMy40bC01NiA4MGMtNC4xIDUuOC0xMC41IDkuNS0xNy42IDEwLjFTNTIgMzE4IDQ3IDMxM0w3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDE5LjggMTkuOCAzOS42LTU2LjZjNy42LTEwLjkgMjIuNi0xMy41IDMzLjQtNS45ek0yMjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTYwIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek02NCAzNzZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwelwiXVxufTtcbnZhciBmYVRhc2tzID0gZmFMaXN0Q2hlY2s7XG52YXIgZmFTYWNrWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2Fjay14bWFyaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU2YVwiLCBcIk0zMjggMTEybC0xNDQgMC0zNy4zLTc0LjVjLTEuOC0zLjYtMi43LTcuNi0yLjctMTEuNiAwLTE0LjMgMTEuNi0yNS45IDI1LjktMjUuOUwzNDIuMSAwYzE0LjMgMCAyNS45IDExLjYgMjUuOSAyNS45IDAgNC0uOSA4LTIuNyAxMS42TDMyOCAxMTJ6TTE2OS42IDE2MGwxNzIuOCAwIDQ4LjcgNDAuNkM0NTcuNiAyNTYgNDk2IDMzOCA0OTYgNDI0LjUgNDk2IDQ3Mi44IDQ1Ni44IDUxMiA0MDguNSA1MTJsLTMwNS4xIDBDNTUuMiA1MTIgMTYgNDcyLjggMTYgNDI0LjUgMTYgMzM4IDU0LjQgMjU2IDEyMC45IDIwMC42TDE2OS42IDE2MHpNMzIzLjkgMjg0LjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0zMy45IDMzLjktMzMuOS0zMy45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMy45LTMzLjkgMzMuOSAzMy45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzMuOS0zMy45IDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXpcIl1cbn07XG52YXIgZmFIYXNodGFnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhc2h0YWcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFs2MjA5OF0sIFwiMjNcIiwgXCJNMjE0LjcgLjdjMTcuMyAzLjcgMjguMyAyMC43IDI0LjYgMzhsLTE5LjEgODkuMyAxMjYuNSAwIDIyLTEwMi43QzM3Mi40IDggMzg5LjQtMyA0MDYuNyAuN3MyOC4zIDIwLjcgMjQuNiAzOEw0MTIuMiAxMjggNDgwIDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODEuNiAwLTI3LjQgMTI4IDY3LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODEuNiAwLTIyIDEwMi43Yy0zLjcgMTcuMy0yMC43IDI4LjMtMzggMjQuNnMtMjguMy0yMC43LTI0LjYtMzhsMTkuMS04OS4zLTEyNi41IDAtMjIgMTAyLjdjLTMuNyAxNy4zLTIwLjcgMjguMy0zOCAyNC42cy0yOC4zLTIwLjctMjQuNi0zOEw5OS44IDM4NCAzMiAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODEuNiAwIDI3LjQtMTI4LTY3LjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MS42IDAgMjItMTAyLjdDMTgwLjQgOCAxOTcuNC0zIDIxNC43IC43ek0yMDYuNCAxOTJsLTI3LjQgMTI4IDEyNi41IDAgMjcuNC0xMjgtMTI2LjUgMHpcIl1cbn07XG52YXIgZmFUcmFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmFpbicsXG4gIGljb246IFszODQsIDUxMiwgWzEyODY0Nl0sIFwiZjIzOFwiLCBcIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDI4OCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyNTZjMCA0MC4xLTI0LjYgNzQuNS01OS41IDg4LjhsNTMuOSA2My43YzguNiAxMC4xIDcuMyAyNS4zLTIuOCAzMy44cy0yNS4zIDcuMy0zMy44LTIuOGwtNzQtODcuNS0xNTEuMyAwLTc0IDg3LjVjLTguNiAxMC4xLTIzLjcgMTEuNC0zMy44IDIuOHMtMTEuNC0yMy43LTIuOC0zMy44bDUzLjktNjMuN0MyNC42IDQyNi41IDAgMzkyLjEgMCAzNTJMMCA5NnptNjQgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTkyIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJdXG59O1xudmFyIGZhR2FtZXBhZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnYW1lcGFkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMTFiXCIsIFwiTTQ0OCA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MlM1NTQgNDQ4IDQ0OCA0NDhsLTI1NiAwQzg2IDQ0OCAwIDM2MiAwIDI1NlM4NiA2NCAxOTIgNjRsMjU2IDB6TTE5MiAxNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMjQwIDk2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptNjQtOTZhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0elwiXVxufTtcbnZhciBmYUZpbGVFeHBvcnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1leHBvcnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtcImFycm93LXJpZ2h0LWZyb20tZmlsZVwiXSwgXCJmNTZlXCIsIFwiTTk2LjUgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC05NiA3OC4xIDAtMzEgMzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtNzguMSAwIDAtMTMzLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkxLjIgMTguN0MyNzkuMiA2LjcgMjYzIDAgMjQ2IDBMOTYuNSAwek0zNTggMTc2bC05My41IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MC41IDU4LjUgMzU4IDE3NnpNMjI0LjUgMzI4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDEwNCAwIDAgNDgtMTA0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0elwiXVxufTtcbnZhciBmYUFycm93UmlnaHRGcm9tRmlsZSA9IGZhRmlsZUV4cG9ydDtcbnZhciBmYUZhY2VHcmltYWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZ3JpbWFjZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU1NiwgXCJncmltYWNlXCJdLCBcImY1N2ZcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTQwMCAzNTJjMCAyNS4yLTE5LjQgNDUuOC00NCA0Ny44bDAtOTUuN2MyNC42IDIgNDQgMjIuNyA0NCA0Ny44ek0yNzYgMzA0bDQwIDAgMCA5Ni00MCAwIDAtOTZ6bS04MCA5NmwwLTk2IDQwIDAgMCA5Ni00MCAwem0tNDAtOTUuOGwwIDk1LjdjLTI0LjYtMi00NC0yMi43LTQ0LTQ3LjhzMTkuNC00NS44IDQ0LTQ3Ljh6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIl1cbn07XG52YXIgZmFHcmltYWNlID0gZmFGYWNlR3JpbWFjZTtcbnZhciBmYVRyYWluU3Vid2F5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYWluLXN1YndheScsXG4gIGljb246IFszODQsIDUxMiwgW1wic3Vid2F5XCJdLCBcImYyMzlcIiwgXCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMCAwLTE2MC03MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjE2IDI1Nmw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTcyIDAgMCAxNjB6TTk2IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTIyNC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwiXVxufTtcbnZhciBmYVN1YndheSA9IGZhVHJhaW5TdWJ3YXk7XG52YXIgZmFDaXJjbGVEb3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWRvdCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODI4MCwgXCJkb3QtY2lyY2xlXCJdLCBcImYxOTJcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzUyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyelwiXVxufTtcbnZhciBmYURvdENpcmNsZSA9IGZhQ2lyY2xlRG90O1xudmFyIGZhT2JqZWN0R3JvdXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnb2JqZWN0LWdyb3VwJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMjQ3XCIsIFwiTTMyIDExOS40QzEyLjkgMTA4LjQgMCA4Ny43IDAgNjQgMCAyOC43IDI4LjcgMCA2NCAwIDg3LjcgMCAxMDguNCAxMi45IDExOS40IDMybDMzNy4xIDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCAyNzMuMWMxOS4xIDExLjEgMzIgMzEuNyAzMiA1NS40IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMzM3LjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNzMuMXptNDQ4IDBjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNEwxMTkuNCA5NmMtNS42IDkuNy0xMy43IDE3LjgtMjMuNCAyMy40bDAgMjczLjFjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDMzNy4xIDBjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40bDAtMjczLjF6TTE0NCAxNzZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTEyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6TTI1NiAzMjBsMzIgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTExMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2elwiXVxufTtcbnZhciBmYVNoaXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hpcCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODY3NF0sIFwiZjIxYVwiLCBcIk0yNzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNi0xNiAwYy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDEwOC44LTIxLjYgOC42Yy0xNC44IDUuOS0yMi41IDIyLjQtMTcuNCAzNy41IDEwLjQgMzEuMyAyNi44IDU5LjMgNDcuNyA4My4xIDIwLjEtOS4yIDQxLjctMTMuOSA2My4zLTE0IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNGwxLjYgMS4yIDAtMjE1LTEwNCA0MS42IDAtODMuMmMwLTguOCA3LjItMTYgMTYtMTZsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODMuMi0xMDQtNDEuNiAwIDIxNSAxLjYtMS4yYzI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDIyLjMtLjEgNDQuNiA0LjUgNjUuMyAxNCAyMC45LTIzLjcgMzcuMy01MS44IDQ3LjctODMuMSA1LTE1LjItMi42LTMxLjYtMTcuNC0zNy41TDUxMiAyNTIuOCA1MTIgMTQ0YzAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNiAwIDAtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjcyIDB6TTQwMy40IDQ3Ni4xYzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDgyLjMgMTcuNiA0OTAuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6XCJdXG59O1xudmFyIGZhQyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbOTldLCBcIjQzXCIsIFwiTTMyOS4xIDE0Mi45Yy02Mi41LTYyLjUtMTU1LjgtNjIuNS0yMTguMyAwcy02Mi41IDE2My44IDAgMjI2LjMgMTU1LjggNjIuNSAyMTguMyAwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTg3LjUgODcuNS0yMjEuMyA4Ny41LTMwOC44IDBzLTg3LjUtMjI5LjMgMC0zMTYuOCAyMjEuMy04Ny41IDMwOC44IDBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDB6XCJdXG59O1xudmFyIGZhU3F1YXJlUGhvbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLXBob25lJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJwaG9uZS1zcXVhcmVcIl0sIFwiZjA5OFwiLCBcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04OCA5Ni43YzkuOC0yLjcgMjAuMSAyLjQgMjQgMTEuOGwyMC4zIDQ4LjdjMy40IDguMyAxLjEgMTcuOC01LjkgMjMuNWwtMjIuMSAxOGMxNi4yIDM1LjggNDQuNSA2NSA3OS42IDgyLjRsMTkuMy0yMy42YzUuNy02LjkgMTUuMi05LjMgMjMuNS01LjlsNDguNyAyMC4zYzkuNCAzLjkgMTQuNCAxNC4yIDExLjggMjRsLS44IDIuOGMtOC44IDMyLjMtNDAuMSA1OS45LTc4LjIgNTEuOC04Ny41LTE4LjUtMTU2LjMtODcuNC0xNzQuOS0xNzQuOS04LjEtMzguMSAxOS41LTY5LjQgNTEuOC03OC4ybDIuOC0uOHpcIl1cbn07XG52YXIgZmFQaG9uZVNxdWFyZSA9IGZhU3F1YXJlUGhvbmU7XG52YXIgZmFSdWxlckNvbWJpbmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1bGVyLWNvbWJpbmVkJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTQ2XCIsIFwiTTEgNDQxLjdDNS41IDQ2My41IDI0LjggNDgwIDQ4IDQ4MGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi02NCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC02NC03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC00OGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMy4zIC4zIDYuNiAxIDkuN3pcIl1cbn07XG52YXIgZmFBcnJvd3NSb3RhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3dzLXJvdGF0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODQ3MiwgXCJyZWZyZXNoXCIsIFwic3luY1wiXSwgXCJmMDIxXCIsIFwiTTY1LjkgMjI4LjVjMTMuMy05MyA5My40LTE2NC41IDE5MC4xLTE2NC41IDUzIDAgMTAxIDIxLjUgMTM1LjggNTYuMiAuMiAuMiAuNCAuNCAuNiAuNmw3LjYgNy4yLTQ3LjkgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUzLjQtMTEuMy0xMC43QzM5MC41IDI4LjYgMzI2LjUgMCAyNTYgMCAxMjcgMCAyMC4zIDk1LjQgMi42IDIxOS41IC4xIDIzNyAxMi4yIDI1My4yIDI5LjcgMjU1LjdzMzMuNy05LjcgMzYuMi0yNy4xem00NDMuNSA2NGMyLjUtMTcuNS05LjctMzMuNy0yNy4xLTM2LjJzLTMzLjcgOS43LTM2LjIgMjcuMWMtMTMuMyA5My05My40IDE2NC41LTE5MC4xIDE2NC41LTUzIDAtMTAxLTIxLjUtMTM1LjgtNTYuMi0uMi0uMi0uNC0uNC0uNi0uNmwtNy42LTcuMiA0Ny45IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIwYy04LjUgMC0xNi43IDMuNC0yMi43IDkuNVMtLjEgMzQzLjcgMCAzNTIuM2wxIDEyN2MuMSAxNy43IDE0LjYgMzEuOSAzMi4zIDMxLjdTNjUuMiA0OTYuNCA2NSA0NzguN2wtLjQtNTEuNSAxMC43IDEwLjFjNDYuMyA0Ni4xIDExMC4yIDc0LjcgMTgwLjcgNzQuNyAxMjkgMCAyMzUuNy05NS40IDI1My40LTIxOS41elwiXVxufTtcbnZhciBmYVJlZnJlc2ggPSBmYUFycm93c1JvdGF0ZTtcbnZhciBmYVN5bmMgPSBmYUFycm93c1JvdGF0ZTtcbnZhciBmYVBlcnNvbkRyZXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1kcmVzcycsXG4gIGljb246IFszODQsIDUxMiwgW1wiZmVtYWxlXCJdLCBcImYxODJcIiwgXCJNMTM2IDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTEyIDM4NGwtMjUuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw0My0xMjktNDguMyA2NS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxMTAgMTMyIDE0OS43IDExMiAxOTIgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42TDI3MCAyMzQgMzEzIDM2Mi45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMWwtMjUuOCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTMyIDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjh6XCJdXG59O1xudmFyIGZhRmVtYWxlID0gZmFQZXJzb25EcmVzcztcbnZhciBmYUJvb2tPcGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2stb3BlbicsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODIxNCwgMTI4MzY2XSwgXCJmNTE4XCIsIFwiTTI1NiAxNDEuM2wwIDMwOS4zIC41LS4yQzMxMS4xIDQyNy43IDM2OS43IDQxNiA0MjguOCA0MTZsMTkuMiAwIDAtMzIwLTE5LjIgMGMtNDIuMiAwLTg0LjEgOC40LTEyMy4xIDI0LjYtMTYuOCA3LTMzLjQgMTMuOS00OS43IDIwLjd6TTIzMC45IDYxLjVMMjU2IDcyIDI4MS4xIDYxLjVDMzI3LjkgNDIgMzc4LjEgMzIgNDI4LjggMzJMNDY0IDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zNS4yIDBjLTUwLjcgMC0xMDAuOSAxMC0xNDcuNyAyOS41bC0xMi44IDUuM2MtNy45IDMuMy0xNi43IDMuMy0yNC42IDBsLTEyLjgtNS4zQzE4NC4xIDQ5MCAxMzMuOSA0ODAgODMuMiA0ODBMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1LjIgMGM1MC43IDAgMTAwLjkgMTAgMTQ3LjcgMjkuNXpcIl1cbn07XG52YXIgZmFGb2xkZXJUcmVlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbGRlci10cmVlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmODAyXCIsIFwiTTQ4IDI0QzQ4IDEwLjcgMzcuMyAwIDI0IDBTMCAxMC43IDAgMjRMMCAzOTJjMCAzMC45IDI1LjEgNTYgNTYgNTZsMTg0IDAgMC00OC0xODQgMGMtNC40IDAtOC0zLjYtOC04bDAtMjMyIDE5MiAwIDAtNDgtMTkyIDAgMC04OHpNMzM2IDIyNGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC04LjYtOC42Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUwzMzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMjhjMCAyNi41IDIxLjUgNDggNDggNDh6bTAgMjg4bDE5MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgyLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTguNi04LjZjLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xTDMzNiAyODhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4elwiXVxufTtcbnZhciBmYUJveEFyY2hpdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94LWFyY2hpdmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImFyY2hpdmVcIl0sIFwiZjE4N1wiLCBcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NkwwIDY0ek0zMiAxNzZsNDQ4IDAgMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTI0MHptMTUyIDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHpcIl1cbn07XG52YXIgZmFBcmNoaXZlID0gZmFCb3hBcmNoaXZlO1xudmFyIGZhVGVudEFycm93RG93blRvTGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW50LWFycm93LWRvd24tdG8tbGluZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTU3ZVwiLCBcIk0xODUgMTIxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjFDMTIwIDIuNyAxMDkuMy04IDk2LThTNzIgMi43IDcyIDE2bDAgMTAyLjEtMzEtMzFDMzEuNiA3Ny43IDE2LjQgNzcuNyA3IDg3Uy0yLjMgMTExLjYgNyAxMjFsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6TTE1NS44IDI2MC42TDEzMi4xIDQ0OCAzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0yLjgtLjQtNS41LTEtOEw1NDguMiAyNjAuN2MtMS4yLTkuNy02LjktMTguNC0xNS4zLTIzLjRMMzY3LjQgMTM3LjljLTEwLjItNi4xLTIyLjktNi4xLTMzLjEgLjFMMTcwLjkgMjM3LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3pNNDQ4IDQ0OGwtOTcuMSAwIDAtMTQ5LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlMNDQ4IDQ0OHpcIl1cbn07XG52YXIgZmFRcmNvZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncXJjb2RlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDI5XCIsIFwiTTY0IDE2MGw2NCAwIDAtNjQtNjQgMCAwIDY0ek0wIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHpNNjQgNDE2bDY0IDAgMC02NC02NCAwIDAgNjR6TTAgMzM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnpNMzIwIDk2bDAgNjQgNjQgMCAwLTY0LTY0IDB6TTMwNCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6TTI4OCAzNTJhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0wIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptOTYgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzJ6bTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptLTMyIDMyYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6XCJdXG59O1xudmFyIGZhRHJhZ29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RyYWdvbicsXG4gIGljb246IFs2NDAsIDUxMiwgWzEyODAwOV0sIFwiZjZkNVwiLCBcIk0zNTIgMTI0LjVsLTUxLjktMTNjLTYuNS0xLjYtMTEuMy03LjEtMTItMTMuOHMyLjgtMTMuMSA4LjctMTYuMWw0MC44LTIwLjQtNDMuMy0zMi41Yy01LjUtNC4xLTcuOC0xMS4zLTUuNi0xNy45UzI5Ny4xIDAgMzA0IDBMNDY0IDBjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRsNTcuNiA3Ni44YzYuMiA4LjMgOS42IDE4LjQgOS42IDI4LjggMCAyNi41LTIxLjUgNDgtNDggNDhsLTIxLjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdsLTEzLjMtMTMuMy0zMiAwIDAgMjEuNWMwIDI0LjggMTIuOCA0Ny45IDMzLjggNjEuMWwxMDYuNiA2Ni42YzMyLjEgMjAuMSA1MS42IDU1LjIgNTEuNiA5My4xIDAgNjAuNi00OS4xIDEwOS44LTEwOS44IDEwOS44TDMyLjMgNTEyYy0zLjMgMC02LjYtLjQtOS42LTEuNC05LjItMi44LTE2LjctOS42LTIwLjQtMTguNi0xLjMtMy4zLTIuMi02LjktMi4zLTEwLjctLjItMy43IC4zLTcuMyAxLjMtMTAuNyAyLjgtOS4yIDkuNi0xNi43IDE4LjYtMjAuNCAzLTEuMiA2LjItMiA5LjUtMi4yTDQzMy4zIDQxMmM4LjMtLjcgMTQuNy03LjcgMTQuNy0xNi4xIDAtNC4zLTEuNy04LjQtNC43LTExLjRsLTQ0LjQtNDQuNGMtMzAtMzAtNDYuOS03MC43LTQ2LjktMTEzLjFsMC0xMDIuNXpNNTEyIDcyLjNjMC0uMSAwLS4yIDAtLjNzMC0uMiAwLS4zbDAgLjZ6bS0xLjMgNy40TDQ2NC4zIDY4LjFjLS4yIDEuMy0uMyAyLjYtLjMgMy45IDAgMTMuMyAxMC43IDI0IDI0IDI0IDEwLjYgMCAxOS41LTYuOCAyMi43LTE2LjN6TTEzMC45IDExNi41YzE2LjMtMTQuNSA0MC40LTE2LjIgNTguNS00LjFsMTMwLjYgODcgMCAyNy41YzAgMzIuOCA4LjQgNjQuOCAyNCA5M2wtMjMyIDBjLTYuNyAwLTEyLjctNC4yLTE1LTEwLjRzLS41LTEzLjMgNC42LTE3LjdMMTcxIDIzMi4zIDE4LjQgMjU1LjhjLTcgMS4xLTEzLjktMi42LTE2LjktOVMuMSAyMzIuOCA1LjQgMjI4TDEzMC45IDExNi41elwiXVxufTtcbnZhciBmYUhvdXJnbGFzc0VuZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VyZ2xhc3MtZW5kJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbODk4NywgXCJob3VyZ2xhc3MtM1wiXSwgXCJmMjUzXCIsIFwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFsNjcuOSA2Ny45LTY3LjkgNjcuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC02Ny45LTY3LjkgNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzY5LjcgMCAzNTIgMEwzMiAwek05NiA3NWwwLTExIDE5MiAwIDAgMTFjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlsLTY3LjkgNjcuOS02Ny45LTY3LjlDMTA2LjEgMTI0LjkgOTYgMTAwLjQgOTYgNzV6XCJdXG59O1xudmFyIGZhSG91cmdsYXNzMyA9IGZhSG91cmdsYXNzRW5kO1xudmFyIGZhR3JpcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdncmlwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbNTgxMTksIFwiZ3JpZC1ob3Jpem9udGFsXCIsIFwiZ3JpcC1ob3Jpem9udGFsXCJdLCBcImY1OGRcIiwgXCJNODggOTZjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwek0yODAgMjI0bC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHptMTkyIDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDE5MmwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6TTI4MCAyODhjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwek04OCA0MTZsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwelwiXVxufTtcbnZhciBmYUdyaWRIb3Jpem9udGFsID0gZmFHcmlwO1xudmFyIGZhR3JpcEhvcml6b250YWwgPSBmYUdyaXA7XG52YXIgZmFCb3JkZXJUb3BMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvcmRlci10b3AtbGVmdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW1wiYm9yZGVyLXN0eWxlXCJdLCBcImY4NTNcIiwgXCJNMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAzNTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDQ4em0xMjggMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMnptMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJ6bTE2MCAzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6TTM4NCAxOTJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHptMzIgMTYwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFCb3JkZXJTdHlsZSA9IGZhQm9yZGVyVG9wTGVmdDtcbnZhciBmYUxpc3RVbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsaXN0LXVsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJsaXN0LWRvdHNcIl0sIFwiZjBjYVwiLCBcIk00OCAxNDRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNNDggNDY0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNOTYgMjU2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6XCJdXG59O1xudmFyIGZhTGlzdERvdHMgPSBmYUxpc3RVbDtcbnZhciBmYVBlb3BsZVJvYmJlcnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVvcGxlLXJvYmJlcnknLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImU1MzZcIiwgXCJNNDg4LjIgNTkuMUM0NzguMSA5OS42IDQ0MS43IDEyOCA0MDAgMTI4cy03OC4xLTI4LjQtODguMi02OC45TDMwMyAyNC4yQzI5OC44IDcuMSAyODEuNC0zLjMgMjY0LjIgMVMyMzYuNyAyMi42IDI0MSAzOS44bDguNyAzNC45YzExIDQ0IDQwLjIgNzkuNiA3OC4zIDk5LjZMMzI4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDE2IDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNS43YzM4LjEtMjAgNjcuMy01NS42IDc4LjMtOTkuNkw1NTkgMzkuOGM0LjMtMTcuMS02LjEtMzQuNS0yMy4zLTM4LjhTNTAxLjIgNy4xIDQ5NyAyNC4ybC04LjcgMzQuOXpNNDAwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA5NiAwIC42IDAgMTkxLjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjcuMyAxMyAyMC41YzUuOSA5LjIgMTYuMSAxNC45IDI3IDE0LjlsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzAuNCAwLTM3LjQtNTguOUMxNTcuNiAxNDIgMTMyLjEgMTI4IDEwNC43IDEyOEw3MiAxMjh6XCJdXG59O1xudmFyIGZhTW9iaWxlQnV0dG9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vYmlsZS1idXR0b24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxMGJcIiwgXCJNODAgMEM0NC43IDAgMTYgMjguNyAxNiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw4MCAwek0xOTIgNDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIl1cbn07XG52YXIgZmFBcnJvd0Rvd25BWiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1kb3duLWEteicsXG4gIGljb246IFs1MTIsIDUxMiwgW1wic29ydC1hbHBoYS1hc2NcIiwgXCJzb3J0LWFscGhhLWRvd25cIl0sIFwiZjE1ZFwiLCBcIk0yMzAuNiAzOTAuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTE4Mi0zNDAuOWM1MC43IDEwMS4zIDc3LjMgMTU0LjcgODAgMTYwIDcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNsLTcuMi0xNC4zLTg4LjQgMC03LjIgMTQuM2MtNy45IDE1LjgtMjcuMSAyMi4yLTQyLjkgMTQuM3MtMjIuMi0yNy4xLTE0LjMtNDIuOWMyLjctNS4zIDI5LjMtNTguNyA4MC0xNjAgNS40LTEwLjggMTYuNS0xNy43IDI4LjYtMTcuN3MyMy4yIDYuOCAyOC42IDE3Ljd6TTM4NCAxMzUuNmwtMjAuMiA0MC40IDQwLjQgMC0yMC4yLTQwLjR6TTI4OCAzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwzOTcuMyA0MTYgNDQ4IDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45bDczLjQtNzMuNC01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwiXVxufTtcbnZhciBmYVNvcnRBbHBoYUFzYyA9IGZhQXJyb3dEb3duQVo7XG52YXIgZmFTb3J0QWxwaGFEb3duID0gZmFBcnJvd0Rvd25BWjtcbnZhciBmYU1vbmV5QmlsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1iaWxsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGQ2XCIsIFwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0xOTIgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTE5MiAyNGMwIDQuNC0zLjYgOC4xLTggNy41LTI5LTMuNi01MS45LTI2LjYtNTUuNS01NS41LS41LTQuNCAzLjEtOCA3LjUtOGw0OCAwYzQuNCAwIDggMy42IDggOGwwIDQ4ek02NCAzMjhjMC00LjQgMy42LTguMSA4LTcuNSAyOSAzLjYgNTEuOSAyNi42IDU1LjUgNTUuNSAuNSA0LjQtMy4xIDgtNy41IDhsLTQ4IDBjLTQuNCAwLTgtMy42LTgtOGwwLTQ4em04LTEzNi41Yy00LjQgLjUtOC0zLjEtOC03LjVsMC00OGMwLTQuNCAzLjYtOCA4LThsNDggMGM0LjQgMCA4LjEgMy42IDcuNSA4LTMuNiAyOS0yNi42IDUxLjktNTUuNSA1NS41em0zNjggMTI5YzQuNC0uNSA4IDMuMSA4IDcuNWwwIDQ4YzAgNC40LTMuNiA4LTggOGwtNDggMGMtNC40IDAtOC4xLTMuNi03LjUtOCAzLjYtMjkgMjYuNi01MS45IDU1LjUtNTUuNXpcIl1cbn07XG52YXIgZmFDaXJjbGVNaW51cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXJjbGUtbWludXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcIm1pbnVzLWNpcmNsZVwiXSwgXCJmMDU2XCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjggMjMybDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIl1cbn07XG52YXIgZmFNaW51c0NpcmNsZSA9IGZhQ2lyY2xlTWludXM7XG52YXIgZmFBcnJvd1BvaW50ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctcG9pbnRlcicsXG4gIGljb246IFs0NDgsIDUxMiwgW1wibW91c2UtcG9pbnRlclwiXSwgXCJmMjQ1XCIsIFwiTTc3LjMgMi41YzguMS00LjEgMTcuOS0zLjIgMjUuMSAyLjNsMzIwIDIzOS45YzguMyA2LjIgMTEuNiAxNyA4LjQgMjYuOHMtMTIuNCAxNi40LTIyLjggMTYuNGwtMTUyLjMgMCA4OC45IDE3Ny43YzcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNsLTg4LjktMTc3LjctOTEuMyAxMjEuOGMtNi4yIDguMy0xNyAxMS42LTI2LjggOC40UzY0IDQzNC4zIDY0IDQyNEw2NCAyNGMwLTkuMSA1LjEtMTcuNCAxMy4zLTIxLjV6XCJdXG59O1xudmFyIGZhTW91c2VQb2ludGVyID0gZmFBcnJvd1BvaW50ZXI7XG52YXIgZmFTcXVhcmVTaGFyZU5vZGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1zaGFyZS1ub2RlcycsXG4gIGljb246IFs0NDgsIDUxMiwgW1wic2hhcmUtYWx0LXNxdWFyZVwiXSwgXCJmMWUxXCIsIFwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTM2OCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjQtMTUuNCAwLTI5LjUtNS40LTQwLjYtMTQuNWwtODUuMyA0Ni41IDg1LjMgNDYuNWMxMS05LjEgMjUuMi0xNC41IDQwLjYtMTQuNSAzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0YzAtMi41IC4xLTQuOSAuNC03LjNMMTU4LjUgMzAwYy0xMS43IDEyLjMtMjguMiAyMC00Ni41IDIwLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMTguMyAwIDM0LjggNy43IDQ2LjUgMjBsODEuOS00NC43Yy0uMy0yLjQtLjQtNC45LS40LTcuMyAwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0elwiXVxufTtcbnZhciBmYVNoYXJlQWx0U3F1YXJlID0gZmFTcXVhcmVTaGFyZU5vZGVzO1xudmFyIGZhVGFibGVDZWxsc0xhcmdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxlLWNlbGxzLWxhcmdlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0aC1sYXJnZVwiXSwgXCJmMDA5XCIsIFwiTTM4NCA5NmwtMTI4IDAgMCAxMjggMTI4IDAgMC0xMjh6bTY0IDEyOGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjh6TTY0IDI4OGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHptMTI4LTY0bDAtMTI4LTEyOCAwIDAgMTI4IDEyOCAwem02NCA2NGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpcIl1cbn07XG52YXIgZmFUaExhcmdlID0gZmFUYWJsZUNlbGxzTGFyZ2U7XG52YXIgZmFDYXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2F0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbMTI4MDA4XSwgXCJmNmJlXCIsIFwiTTY0IDk2YzUzIDAgOTYgNDMgOTYgOTZsMCA4NS44YzI5LjctNDQuNyA3Ny44LTc2LjIgMTMzLjQtODQgMjUuNiA2MCA4NS4yIDEwMi4xIDE1NC42IDEwMi4xIDEwLjkgMCAyMS42LTEuMSAzMi0zLjFMNDgwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0MC44LTEzNiAxMDguOCA1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNDQgMGMtNTMgMC05Ni00My05Ni05NmwwLTIyNGMwLTE2LjYtMTIuNi0zMC4yLTI4LjctMzEuOGwtNi42LS4zQzQ0LjYgMTU4LjIgMzIgMTQ0LjYgMzIgMTI4IDMyIDExMC4zIDQ2LjMgOTYgNjQgOTZ6TTUzMy44IDMuMkM1NDQuMi01LjUgNTYwIDEuOSA1NjAgMTUuNUw1NjAgMTI4YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzMzNiAxODkuOSAzMzYgMTI4bDAtMTEyLjVjMC0xMy42IDE1LjgtMjEgMjYuMi0xMi4zTDQxNiA0OCA0ODAgNDggNTMzLjggMy4yek00MDAgMTA4YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptOTYgMGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6XCJdXG59O1xudmFyIGZhQ2FsZW5kYXJXZWVrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbGVuZGFyLXdlZWsnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY3ODRcIiwgXCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMHpcIl1cbn07XG52YXIgZmFDb2RlQ29tcGFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2RlLWNvbXBhcmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUxM2FcIiwgXCJNMTk4LjggMS44YzktMy43IDE5LjMtMS43IDI2LjIgNS4ybDU2IDU2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC01NiA1NmMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMxODQgMTQ1LjcgMTg0IDEzNmwwLTI0LTI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjE0LjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuMyAwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zTDY0IDE0NGMwLTUzIDQzLTk2IDk2LTk2bDI0IDAgMC0yNGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJ6TTM5MiA4MGEyNCAyNCAwIDEgMCA0OCAwIDI0IDI0IDAgMSAwIC00OCAwem0tOCA3My4zYy0yOC4zLTEyLjMtNDgtNDAuNS00OC03My4zIDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM0w0NDggMzY4YzAgNTMtNDMgOTYtOTYgOTZsLTI0IDAgMCAyNGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC01Ni01NmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNTYtNTZjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMzMjggMzY2LjMgMzI4IDM3NmwwIDI0IDI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yMTQuN3pNNzIgNDMyYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6XCJdXG59O1xudmFyIGZhUm9hZENpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYWQtY2lyY2xlLXhtYXJrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJlNTY2XCIsIFwiTTI4Ny45IDMybC03Ni4yIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDY1LjQgNDIwLjVDNTcuOSA0NTAuNyA4MC44IDQ4MCAxMTIgNDgwbDIwOS40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTI4LjYgNi4yLTU1LjcgMTcuNC04MC0uNSAwLTEgMC0xLjYgMC0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OS4yYzM1LjItNDAgODYuNy02NS4yIDE0NC4yLTY1LjIgOSAwIDE3LjggLjYgMjYuNCAxLjhsLTMyLTEyOS4yQzQ4My40IDUyLjEgNDU3LjggMzIgNDI4LjMgMzJsLTc2LjUgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbnZhciBmYVBhbGxldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYWxsZXQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0ODJcIiwgXCJNMzIgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCA2NC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtNjQgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMjB6bTk2IDY0bDEyOCAwIDAgNjQtMTI4IDAgMC02NHptMTkyIDBsMTI4IDAgMCA2NC0xMjggMCAwLTY0elwiXVxufTtcbnZhciBmYUNha2VDYW5kbGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nha2UtY2FuZGxlcycsXG4gIGljb246IFs0NDgsIDUxMiwgWzEyNzg3NCwgXCJiaXJ0aGRheS1jYWtlXCIsIFwiY2FrZVwiXSwgXCJmMWZkXCIsIFwiTTg2LjQtMTAuNUw2MS44IDMxLjZDNTggMzguMSA1NiA0NS42IDU2IDUzLjJMNTYgNTZjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDEwNS42LTEwLjVjLTItMy40LTUuNy01LjUtOS42LTUuNXMtNy42IDIuMS05LjYgNS41em0xMjggMEwxODkuOCAzMS42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMjMzLjYtMTAuNWMtMi0zLjQtNS43LTUuNS05LjYtNS41cy03LjYgMi4xLTkuNiA1LjV6TTMxNy44IDMxLjZjLTMuOCA2LjUtNS44IDE0LTUuOCAyMS42bDAgMi44YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0yLjhjMC03LjYtMi0xNS01LjgtMjEuNkwzNjEuNi0xMC41Yy0yLTMuNC01LjctNS41LTkuNi01LjVzLTcuNiAyLjEtOS42IDUuNUwzMTcuOCAzMS42ek0xMjggMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNTMuNUMyNi43IDIyNi42IDAgMjYyLjIgMCAzMDRsMCAyMC44YzIwLjkgMS4zIDQxLjYgNy4zIDYwLjMgMThsNy4xIDQuMWMyNi4zIDE1IDU4LjkgMTMuNCA4My42LTQuMiA0My43LTMxLjIgMTAyLjMtMzEuMiAxNDYgMCAyNC42IDE3LjYgNTcuMyAxOS4zIDgzLjYgNC4ybDcuMS00LjFjMTguNy0xMC43IDM5LjMtMTYuNyA2MC4zLTE4bDAtMjAuOGMwLTQxLjgtMjYuNy03Ny40LTY0LTkwLjVsMC01My41YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4ek00NDggMzczYy0xMi43IDEuMi0yNS4xIDUtMzYuNSAxMS41bC03LjEgNC4xYy00Mi42IDI0LjMtOTUuNCAyMS43LTEzNS4zLTYuOC0yNy0xOS4zLTYzLjItMTkuMy05MC4yIDAtMzkuOSAyOC41LTkyLjcgMzEuMi0xMzUuMyA2LjhsLTcuMS00LjFDMjUuMSAzNzggMTIuNyAzNzQuMSAwIDM3M2wwIDc1YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNzV6XCJdXG59O1xudmFyIGZhQmlydGhkYXlDYWtlID0gZmFDYWtlQ2FuZGxlcztcbnZhciBmYUNha2UgPSBmYUNha2VDYW5kbGVzO1xudmFyIGZhQnVnU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVnLXNsYXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJlNDkwXCIsIFwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwyNDEuOCAxNzYgMzQ0IDE3NmMxNC4yIDAgMjcuNyAyLjggNDAgOGwxMDguOC04MS42YzE0LjEtMTAuNiAzNC4yLTcuNyA0NC44IDYuNHM3LjcgMzQuMi02LjQgNDQuOGwtOTcuOCA3My4zYzUuMyA4LjkgOS4zIDE4LjcgMTEuOCAyOS4xbDk4LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDMyYzAgOS41LS44IDE4LjctMi40IDI3LjhMNTY5IDUwMy4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5LjFDLTIuMy0uMy0yLjMtMTUuNSA3LTI0Ljl6TTM5OC4yIDQ2OGMtMjMuMiAyMi4xLTUzIDM3LjItODYuMiA0Mi4ybDAtMTI4LjQgODYuMiA4Ni4yek0yNjQgMzMzLjhsMCAxNzYuNGMtNTEuMi03LjctOTQuNS0zOS43LTExNy43LTgzLjlMODMuMiA0NzMuNmMtMTQuMSAxMC42LTM0LjIgNy43LTQ0LjgtNi40cy03LjctMzQuMiA2LjQtNDQuOGw4My40LTYyLjVjLS4xLTIuNi0uMi01LjItLjItNy45bDAtMzItOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5OC44IDBjMy4zLTEzLjkgOS4zLTI2LjcgMTcuNi0zNy44TDI2NCAzMzMuOHpNMzU1LjYgMTI4bC04Mi40IDAtNzIuMy03Mi4zQzIxNi4xIDIyLjggMjQ5LjQgMCAyODggMCAzNDEgMCAzODQgNDMgMzg0IDk2bDAgMy42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40elwiXVxufTtcbnZhciBmYVRhcnAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFycCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZTU3YlwiLCBcIk00NDggNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNDkuNWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM0wzODYuNyA0MjkuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwem01LjUgMjA4TDM2MCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXpNOTYgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIl1cbn07XG52YXIgZmFEaWFncmFtUHJlZGVjZXNzb3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGlhZ3JhbS1wcmVkZWNlc3NvcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZTQ3N1wiLCBcIk0yODkuMiAxMzcuOWMyLjUtNiA4LjMtOS45IDE0LjgtOS45bDQwIDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtOTggMGMxLjMgNS4xIDIgMTAuNSAyIDE2bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjU2IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyNCA0MCAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45czEuMSAxMi45LTMuNSAxNy40bC02NCA2NGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTY0LTY0Yy00LjYtNC42LTUuOS0xMS41LTMuNS0xNy40ek0zODQgMzUybC0zMjAgMCAwIDY0IDMyMCAwIDAtNjR6bTY0IDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0elwiXVxufTtcbnZhciBmYUZhY2VGbHVzaGVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZhY2UtZmx1c2hlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODU2MywgXCJmbHVzaGVkXCJdLCBcImY1NzlcIiwgXCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTY4IDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0tOC05NmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHptMjY0LTcyYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHptLTI4OCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTE5MiAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJdXG59O1xudmFyIGZhRmx1c2hlZCA9IGZhRmFjZUZsdXNoZWQ7XG52YXIgZmFEaWFncmFtTmV4dCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWFncmFtLW5leHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImU0NzZcIiwgXCJNMzg0IDIyNGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxMjggMCAwIDY0LTMyIDBjLTYuNSAwLTEyLjMgMy45LTE0LjggOS45cy0xLjEgMTIuOSAzLjUgMTcuNGw2NCA2NGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw2NC02NGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzI5NC41IDI4OCAyODggMjg4bC0zMiAwIDAtNjQgMTI4IDB6TTY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zNCAwYzUuNiAyMS43LS41IDQ1LjEtMTYuNyA2MS4zbC02NCA2NGMtMjUgMjUtNjUuNSAyNS05MC41IDBsLTY0LTY0Qzk4LjYgMzMzLjEgOTIuNCAzMDkuNyA5OCAyODhsLTM0IDB6XCJdXG59O1xudmFyIGZhQW5jaG9yQ2lyY2xlWG1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5jaG9yLWNpcmNsZS14bWFyaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTRhY1wiLCBcIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTIwOCA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwiXVxufTtcbnZhciBmYVBlcnNvbkNpcmNsZVhtYXJrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1jaXJjbGUteG1hcmsnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImU1NDNcIiwgXCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDUxOC42IDQwMHpcIl1cbn07XG52YXIgZmFTcGEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3BhJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNWJiXCIsIFwiTTE2OS43IDIyNy41YzM0LjMgMTguNyA2NC41IDQ0LjEgODguOCA3NC41IDExLjEgMTMuOSAyMSAyOC45IDI5LjQgNDQuOCA4LjUtMTUuOSAxOC4zLTMwLjggMjkuNC00NC44IDI0LjMtMzAuNSA1NC41LTU1LjkgODguOC03NC41IDQxLjctMjIuNyA4OS40LTM1LjUgMTM5LjctMzUuNWw5LjkgMGMxMS4xIDAgMjAuMSA5IDIwLjEgMjAuMSAwIDE0OC0xMTkuOSAyNjcuOS0yNjcuOSAyNjcuOWwtNDAuMiAwQzExOS45IDQ4MCAwIDM2MC4xIDAgMjEyLjEgMCAyMDEgOSAxOTIgMjAuMSAxOTJsOS45IDBjNTAuNCAwIDk4LjEgMTIuOCAxMzkuNyAzNS41ek0zMDMuOSAzOGMxNi45IDE1LjkgNjEuNCA2My40IDg5IDE0Mi4zLTQwLjEgMjAuMi03NS44IDQ4LjItMTA0LjkgODIuMS0yOS4yLTMzLjktNjQuOC02MS44LTEwNC45LTgyLjEgMjcuNi03OC45IDcyLjItMTI2LjQgODktMTQyLjMgNC4zLTQuMSAxMC02IDE1LjktNnMxMS42IDIgMTUuOSA2elwiXVxufTtcbnZhciBmYUJhcnNQcm9ncmVzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYXJzLXByb2dyZXNzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0YXNrcy1hbHRcIl0sIFwiZjgyOFwiLCBcIk0yODggMTYwbDk2IDAgMC02NC05NiAwIDAgNjR6TTAgMTYwTDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAyMjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZ6TTE2MCA0MTZsMjI0IDAgMC02NC0yMjQgMCAwIDY0ek0wIDQxNmwwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2elwiXVxufTtcbnZhciBmYVRhc2tzQWx0ID0gZmFCYXJzUHJvZ3Jlc3M7XG52YXIgZmFIZWFydENpcmNsZUNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYXJ0LWNpcmNsZS1jaGVjaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTRmZFwiLCBcIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zelwiXVxufTtcbnZhciBmYU1hcnNTdHJva2VSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLXN0cm9rZS1yaWdodCcsXG4gIGljb246IFs2NDAsIDUxMiwgWzk4OTcsIFwibWFycy1zdHJva2UtaFwiXSwgXCJmMjJiXCIsIFwiTTMyMC41IDI1NmExMTIgMTEyIDAgMSAwIC0yMjQgMCAxMTIgMTEyIDAgMSAwIDIyNCAwek0yMDguNSA4MGM4Ni4zIDAgMTU4LjEgNjIuMSAxNzMuMSAxNDQuMSAxLS4xIDEuOS0uMSAyLjktLjFsMTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiA2MS40IDAtMjIuNC0yOGMtMTEtMTMuOC04LjgtMzMuOSA1LTQ1czMzLjktOC44IDQ1IDVsNjQgODBjOS4zIDExLjcgOS4zIDI4LjMgMCA0MGwtNjQgODBjLTExIDEzLjgtMzEuMiAxNi00NSA1cy0xNi0zMS4yLTUtNDVsMjIuNC0yOC02MS40IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2IDBjLTEgMC0xLjkgMC0yLjktLjEtMTUgODItODYuOCAxNDQuMS0xNzMuMSAxNDQuMS05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NnM3OC44LTE3NiAxNzYtMTc2elwiXVxufTtcbnZhciBmYU1hcnNTdHJva2VIID0gZmFNYXJzU3Ryb2tlUmlnaHQ7XG52YXIgZmFUb3dlck9ic2VydmF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rvd2VyLW9ic2VydmF0aW9uJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlNTg2XCIsIFwiTTIwOS43IDMuNGM5LTQuNSAxOS42LTQuNSAyOC42IDBsMTYwIDgwYzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjktNS42IDExLjItMTYuOSAxNy43LTI4LjYgMTcuN2wwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMyAwIDMyIDE5MiA0NSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NSAwIDMyLTE5Mi0xMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYy0xMS43IDAtMjMtNi41LTI4LjYtMTcuNy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45bDE2MC04MHpNMzEwLjcgNDQ4bC04Ni43LTYxLjktODYuNyA2MS45IDE3My40IDB6bS0xNTMtMTkybC0zLjUgMjEuMiA2OS45IDQ5LjkgNjkuOS00OS45LTMuNS0yMS4yLTEzMi43IDB6bS0xMi4zIDczLjlsLTEwLjEgNjAuNiA0Ny41LTMzLjktMzcuNC0yNi43em0xMTkuOSAyNi43bDQ3LjUgMzMuOS0xMC4xLTYwLjYtMzcuNCAyNi43ek0xNTIgMTI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHpcIl1cbn07XG52YXIgZmFTdGVybGluZ1NpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rlcmxpbmctc2lnbicsXG4gIGljb246IFszODQsIDUxMiwgWzE2MywgXCJnYnBcIiwgXCJwb3VuZC1zaWduXCJdLCBcImYxNTRcIiwgXCJNOTEuMyAyODhsLTM0LjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMS40IDBDMzcuMyAxNDcuMyAxMDUuMSA0MiAyMDcuNiA0Mmw4LjIgMGMzMy42IDAgNjYuMiAxMS4zIDkyLjUgMzIuMmwxNi4xIDEyLjdjMTMuOSAxMSAxNi4yIDMxLjEgNS4yIDQ1cy0zMS4xIDE2LjItNDUgNS4ybC0xNi4xLTEyLjdjLTE1LTExLjktMzMuNi0xOC40LTUyLjgtMTguNGwtOC4yIDBjLTU3LjMgMC05NC43IDU5LjktNjkuNyAxMTEuNCAzLjYgNy40IDYuNiAxNC45IDkuMSAyMi42bDE0OS41IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0MS4yIDBjMSAzNS4zLTguNyA3MC42LTI4LjkgMTAwLjlsLTE4LjEgMjcuMSAyMTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNzIgMGMtMTEuOCAwLTIyLjYtNi41LTI4LjItMTYuOXMtNS0yMyAxLjYtMzIuOWw1MS4yLTc2LjhjMTMuMS0xOS42IDE5LjItNDIuNiAxOC4yLTY1LjR6XCJdXG59O1xudmFyIGZhR2JwID0gZmFTdGVybGluZ1NpZ247XG52YXIgZmFQb3VuZFNpZ24gPSBmYVN0ZXJsaW5nU2lnbjtcbnZhciBmYUZhdWNldERyaXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmF1Y2V0LWRyaXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg2ODhdLCBcImUwMDZcIiwgXCJNMjI0IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMkw5NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmw5NiAwIDAgNjQtMTguNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNEwxMjggMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDAuMSAwYzIwLjIgMjkgNTMuOSA0OCA5MS45IDQ4czcxLjctMTkgOTEuOS00OGwzNi4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtODguNC03MS42LTE2MC0xNjAtMTYwbC0zMiAwLTIyLjYtMjIuNmMtNi02LTE0LjEtOS40LTIyLjYtOS40bC0xOC43IDAgMC02NCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MzYuOCA0NTUuNGwtMTguMiA0Mi40Yy0xLjggNC4xLTIuNyA4LjYtMi43IDEzLjFsMCAxLjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEuMmMwLTQuNS0uOS04LjktMi43LTEzLjFsLTE4LjItNDIuNGMtMS45LTQuNS02LjMtNy40LTExLjItNy40cy05LjIgMi45LTExLjIgNy40elwiXVxufTtcbnZhciBmYUNpcmNsZUluZm8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLWluZm8nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcImluZm8tY2lyY2xlXCJdLCBcImYwNWFcIiwgXCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTggNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDg4IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtNjQtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIl1cbn07XG52YXIgZmFJbmZvQ2lyY2xlID0gZmFDaXJjbGVJbmZvO1xudmFyIGZhRmVhdGhlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmZWF0aGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI5NzE4XSwgXCJmNTJkXCIsIFwiTTM1MiAwYzQxIDAgODAuMyAxNi4zIDEwOS4yIDQ1LjJsNS41IDUuNWMyOSAyOSA0NS4zIDY4LjMgNDUuMyAxMDkuMiAwIDI0LjEtNS43IDQ3LjYtMTYuMiA2OC44LTEuOSAzLjctNS4zIDYuNS05LjMgNy43TDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDMyLjIgMGMxNC4zIDAgMjEuNCAxNy4yIDExLjMgMjcuM2wtMjIuNCAyMi40Yy0xLjkgMS45LTQuMiAzLjItNi43IDRsLTgxIDI0LjNjLTMuOSAxLjItNi41IDQuNy02LjUgOC44IDAgNS4xIDQuMSA5LjIgOS4yIDkuMiAxMy4yIDAgMTguOSAxNS43IDcuOCAyMi45LTQxLjEgMjYuNi04OS4zIDQxLjEtMTM5IDQxLjFsLTg2IDAtNDggNDhjLTguOCA4LjgtMjMuMiA4LjgtMzIgMHMtOC44LTIzLjIgMC0zMkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw3OS41IDMzNi41Yy01LjcgNS43LTE1LjUgMS43LTE1LjUtNi40IDAtNjcuOSAyNy0xMzMgNzUtMTgxTDI0Mi44IDQ1LjJDMjcxLjcgMTYuMyAzMTEgMCAzNTIgMHpcIl1cbn07XG52YXIgZmFCb3dsUmljZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3dsLXJpY2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImUyZWJcIiwgXCJNMTc2IDQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yNCA0OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek01NiAxNjBsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjQgMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6TTIyNCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bS05NiAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xMDQgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMjE2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yOTYgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTIwIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0zOTIgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjk2IDE2bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhU3RhckhhbGZTdHJva2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1oYWxmLXN0cm9rZScsXG4gIGljb246IFs1NzYsIDUxMiwgW1wic3Rhci1oYWxmLWFsdFwiXSwgXCJmNWMwXCIsIFwiTTI4OC4xIDM1My42YzEwIDAgMTkuOSAyLjMgMjkgN2w3NC40IDM3LjktMTMtODIuNWMtMy4yLTIwLjIgMy41LTQwLjcgMTcuOS01NS4ybDU5LTU5LjEtODIuNS0xMy4xYy0yMC4yLTMuMi0zNy43LTE1LjktNDctMzQuMWwtMzgtNzQuNCAwIDI3My42ek00NTcuNCA0ODljLTcuMyA1LjMtMTcgNi4xLTI1IDJMMjg4LjEgNDE3LjYgMTQzLjggNDkxYy04IDQuMS0xNy43IDMuMy0yNS0ycy0xMS0xNC4yLTkuNi0yMy4yTDEzNC40IDMwNS45IDIwIDE5MS40Yy02LjQtNi40LTguNi0xNS44LTUuOC0yNC40czEwLjEtMTQuOSAxOS4xLTE2LjNsMTU5LjktMjUuNCA3My42LTE0NC4yYzQuMS04IDEyLjQtMTMuMSAyMS40LTEzLjFzMTcuMyA1LjEgMjEuNCAxMy4xTDM4MyAxMjUuMyA1NDIuOSAxNTAuN2M4LjkgMS40IDE2LjMgNy43IDE5LjEgMTYuM3MuNSAxOC01LjggMjQuNEw0NDEuNyAzMDUuOSA0NjcgNDY1LjhjMS40IDguOS0yLjMgMTcuOS05LjYgMjMuMnpcIl1cbn07XG52YXIgZmFTdGFySGFsZkFsdCA9IGZhU3RhckhhbGZTdHJva2U7XG52YXIgZmFUZW1wZXJhdHVyZUFycm93RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZW1wZXJhdHVyZS1hcnJvdy1kb3duJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJ0ZW1wZXJhdHVyZS1kb3duXCJdLCBcImUwM2ZcIiwgXCJNNjQuNSA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRzLTE0NC02NC41LTE0NC0xNDRjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMNjQuNSA5NnptOTYgMzM2YzM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTI4LjdjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyOC43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQzOS4xIDMxMC42Yy02IDYtMTQuMSA5LjQtMjIuNiA5LjRzLTE2LjYtMy40LTIyLjYtOS40bC02NC02NGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5LjQgOS40IDAtMTc4LjdjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE3OC43IDkuNC05LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtNjQgNjR6XCJdXG59O1xudmFyIGZhVGVtcGVyYXR1cmVEb3duID0gZmFUZW1wZXJhdHVyZUFycm93RG93bjtcbnZhciBmYU1hc2tWZW50aWxhdG9yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hc2stdmVudGlsYXRvcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZTUyNFwiLCBcIk0xNTIuMiAxOTJjLTE1LjQgMzguMy0yNC4yIDc3LjItMjQuMiAxMDguOCAwIDEzLjMgMS41IDI2LjIgNC40IDM4LjdsLTE3LTMuNGMtMjkuOS02LTUxLjQtMzIuMi01MS40LTYyLjhsMC04MS4zIDg4LjIgMHptMzIuOS02NEw2NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODEuM2MwIDYxIDQzLjEgMTEzLjUgMTAyLjkgMTI1LjVsNjYuMyAxMy4zYzE4LjcgMjIuMSA0Mi45IDQwIDcwLjggNTEuOGwwLTg3LjhjLTEwLjEtMTQuMi0xNi0zMS4zLTE2LTQ5LjcgMC00OS41IDQzLTEzNC40IDk2LTEzNC40IDUyLjUgMCA5NiA4NC45IDk2IDEzNC40IDAgMTguNC01LjkgMzUuNC0xNiA0OS42bDAgODcuN2MyNy42LTExLjggNTEuNy0yOS42IDcwLjQtNTEuNmw2Ni43LTEzLjNjNTkuOC0xMiAxMDIuOS02NC41IDEwMi45LTEyNS41bDAtODEuM2MwLTM1LjMtMjguNy02NC02NC02NGwtMTIxLjUgMGMtMzQuOC01NC4yLTgyLjUtOTYtMTM0LjUtOTYtNTIuNiAwLTEwMC4yIDQxLjgtMTM0LjkgOTZ6bTMwMi41IDY0bDg4LjQgMCAwIDgxLjNjMCAzMC41LTIxLjUgNTYuOC01MS40IDYyLjhsLTE3IDMuNGMyLjktMTIuNCA0LjUtMjUuNCA0LjUtMzguNyAwLTMxLjYtOC45LTcwLjUtMjQuNC0xMDguOHpNMjg4IDMyMGwwIDE5MiA2NCAwIDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyelwiXVxufTtcbnZhciBmYUZpbGVWaWRlbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXZpZGVvJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWM4XCIsIFwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek04MCAzMDRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjQgMzUgMzVjMy4yIDMuMiA3LjUgNSAxMiA1IDkuNCAwIDE3LTcuNiAxNy0xN2wwLTk0LjFjMC05LjQtNy42LTE3LTE3LTE3LTQuNSAwLTguOCAxLjgtMTIgNWwtMzUgMzUgMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6XCJdXG59O1xudmFyIGZhQXJyb3dUcmVuZERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctdHJlbmQtZG93bicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTA5N1wiLCBcIk0zODQgMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgODIuNy0xNjkuNC0xNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBMMTkyIDI0Mi43IDU0LjYgMTA1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBMMzIwIDIwNS4zIDQ2Ni43IDM1MiAzODQgMzUyelwiXVxufTtcbnZhciBmYU9pbENhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdvaWwtY2FuJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNjEzXCIsIFwiTTMyMCAxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMi0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NC44YzAgMTkgMTEuMiAzNi4yIDI4LjUgNDMuOWw2Ny41IDMwIDAgMjEuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNTkuMSAwYzE4LjQgMCAzNS44LTcuOSA0OC0yMS43TDYzMy41IDE4Ny43YzEyLjMtMTMuOS0uMy0zNS40LTE4LjQtMzEuNUw0NDggMTkyIDM5Ny41IDE2Ni44Yy04LjktNC40LTE4LjctNi44LTI4LjYtNi44bC04MC45IDAgMC0zMiAzMiAwek05NiAyMDhsMCA4Ni4xLTQ4LTIxLjMgMC02NC44IDQ4IDB6XCJdXG59O1xudmFyIGZhUGVvcGxlQ2FycnlCb3ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVvcGxlLWNhcnJ5LWJveCcsXG4gIGljb246IFs1NzYsIDUxMiwgW1wicGVvcGxlLWNhcnJ5XCJdLCBcImY0Y2VcIiwgXCJNNjQtMzJBNTYgNTYgMCAxIDEgNjQgODAgNTYgNTYgMCAxIDEgNjQtMzJ6TTAgMTcxLjFjMC0zMi42IDI2LjUtNTkuMSA1OS4xLTU5LjEgMjMuNSAwIDQ1LjUgMTEuMyA1OS4xIDMwLjRsNDguNyA2OC4yYzUuOCA4LjIgMTUuMSAxMy4xIDI1LjEgMTMuNGwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMTAtLjMgMTkuMy01LjIgMjUuMS0xMy40bDQ4LjctNjguMmMxMy42LTE5LjEgMzUuNi0zMC40IDU5LjEtMzAuNCAzMi42IDAgNTkuMSAyNi41IDU5LjEgNTkuMUw1NzYgMjcyYzAgMzAuMi0xNC4yIDU4LjctMzguNCA3Ni44bC03Ni44IDU3LjZjLTguMSA2LTEyLjggMTUuNS0xMi44IDI1LjZsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwYzAtMzAuMiAxNC4yLTU4LjcgMzguNC03Ni44bDQxLjYtMzEuMiAwLTgwLjEtMi44IDMuOWMtMTggMjUuMi00Ny4xIDQwLjItNzguMSA0MC4yTDM1MiAyODhjLS42IDAtMS4zIDAtMS45LS4xLS42IDAtMS4zIC4xLTEuOSAuMWwtMTIwLjQgMGMtLjYgMC0xLjMgMC0xLjktLjEtLjYgMC0xLjMgLjEtMS45IC4xbC0zMS4xIDBjLTMxIDAtNjAuMS0xNS03OC4xLTQwLjJsLTIuOC0zLjkgMCA4MC4xIDQxLjYgMzEuMkMxNzcuOCAzNzMuMyAxOTIgNDAxLjggMTkyIDQzMmwwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODBjMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNkwzOC40IDM0OC44QzE0LjIgMzMwLjcgMCAzMDIuMiAwIDI3MkwwIDE3MS4xek0wIDM3OS4zYzMuMSAyLjcgNi4zIDUuNCA5LjYgNy45TDY0IDQyOCA2NCA1MTJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA1MjkuNyAwIDUxMkwwIDM3OS4zek01NjggMjRhNTYgNTYgMCAxIDEgLTExMiAwIDU2IDU2IDAgMSAxIDExMiAwem04IDQ4OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTg0IDU0LjQtNDAuOGMzLjMtMi41IDYuNS01LjEgOS42LTcuOUw1NzYgNTEyelwiXVxufTtcbnZhciBmYVBlb3BsZUNhcnJ5ID0gZmFQZW9wbGVDYXJyeUJveDtcbnZhciBmYUNoYWlyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYWlyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbMTI5NjgxXSwgXCJmNmMwXCIsIFwiTTE1MiAyNTZsMC0xODEuOGMtMjQuNSAyMC41LTQwIDUxLjQtNDAgODUuOGwwIDk2IDQwIDB6bTQ4IDBsNDggMCAwLTIwNS40Yy03LjctMS43LTE1LjgtMi42LTI0LTIuNnMtMTYuMyAuOS0yNCAyLjZMMjAwIDI1NnpNMjk2IDc0LjJsMCAxODEuOCA0MCAwIDAtOTZjMC0zNC40LTE1LjUtNjUuMi00MC04NS44ek0zMiAyNTZsMzIgMCAwLTk2QzY0IDcxLjYgMTM1LjYgMCAyMjQgMFMzODQgNzEuNiAzODQgMTYwbDAgOTYgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0yNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xudmFyIGZhV2luZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aW5kJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzJlXCIsIFwiTTI4OCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDMyIDExMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjggMGM0OC42IDAgODgtMzkuNCA4OC04OFM0MDguNiAwIDM2MCAwTDMyMCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNjQgMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZMMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTI4IDUxMmw0MCAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4cy0zOS40LTg4LTg4LTg4TDMyIDMzNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnpcIl1cbn07XG52YXIgZmFMYXllckdyb3VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xheWVyLWdyb3VwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWZkXCIsIFwiTTIzMi41IDUuMmMxNC45LTYuOSAzMi4xLTYuOSA0NyAwbDIxOC42IDEwMWM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgMTQ5LjhDNS40IDE0NS44IDAgMTM3LjMgMCAxMjhzNS40LTE3LjkgMTMuOS0yMS44TDIzMi41IDUuMnpNNDguMSAyMTguNGwxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSAyNzcuOEM1LjQgMjczLjggMCAyNjUuMyAwIDI1NnM1LjQtMTcuOSAxMy45LTIxLjhsMzQuMS0xNS44ek0xMy45IDM2Mi4ybDM0LjEtMTUuOCAxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSA0MDUuOEM1LjQgNDAxLjggMCAzOTMuMyAwIDM4NHM1LjQtMTcuOSAxMy45LTIxLjh6XCJdXG59O1xudmFyIGZhSGVhZFNpZGVNYXNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYWQtc2lkZS1tYXNrJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJlMDYzXCIsIFwiTTQ0NS45IDE5M2MtLjEtLjQtLjItLjktLjItMS4zLTE1LjctMTA4LjQtMTA4LjktMTkxLjctMjIxLjctMTkxLjctODUgMC0xNTkgNDcuNC0xOTYuOSAxMTcuMkwyODMuMyAyODggNDU2IDI4OCA0NDIuOSAzMzYgMzM2IDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw5OC4yIDAtOC43IDMyLTg5LjUgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw4MC42IDBjLTYuNyAxOS4xLTI0LjggMzItNDUuMyAzMkwyODggNDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEwNC41LTI0Ny41LTE2NUMzIDE4Mi4xIDAgMjAyLjcgMCAyMjQgMCAyNzggMTkuMSAzMjcuNSA1MC45IDM2Ni4yIDU4LjkgMzc1LjkgNjQgMzg3LjggNjQgNDAwLjRMNjQgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyNy4zIDAgLjcgMCAxMzEuMyAwYzQ0LjkgMCA4My44LTMxLjEgOTMuNi03NC45bDMzLjktMTUwLjNjMy4zLTE0LjQtLjMtMjkuNS05LjctNDFMNDQ1LjkgMTkzek0yODggMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJdXG59O1xudmFyIGZhSGFuZHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtcInNpZ24tbGFuZ3VhZ2VcIiwgXCJzaWduaW5nXCJdLCBcImYyYTdcIiwgXCJNNTEyIDE2MGwtLjEgNzIuNmMwIDQ0LjgtMTcuNiA4Ny4xLTQ3LjkgMTE4LjQtLjMtNzctNDAuMS0xNDguNC0xMDUuNC0xODkuM2wtMS45LTEuMmMyLjUtMy43IDIuOC04LjYgLjQtMTIuN2wtNjItMTA3LjRjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44UzMzMCA1IDMzNi42IDE2LjVsNjggMTE3LjggMCAwIDAgMCA0My4zIDc1IC4xLTQ5LjNjMC0xNy43IDE0LjQtMzIgMzItMzJzMzIgMTQuNCAzMiAzMnpNMjk4LjQgMTI0LjJjLTE0LjEtOC44LTI5LjgtMTIuNy00NS4yLTEyLjFMMjE2LjcgNDguOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4LjhsNjcuMSAxMTYuMi0yNy0xNi45ek0yMTEuOSA4OC41bDE2LjQgMjguNGMtMTUuMSA1LjUtMjguNiAxNS42LTM4LjMgMjkuN2wtMTkuNy0zNC4yYy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHptLTQ2LjQgNjMuN2wxMi41IDIxLjdjLTIgOC42LTIuNSAxNy41LTEuNyAyNi4xbC00LjMgMCAwIDAtMzQuNCAwLTEzLjctMjMuOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4Ljh6TTIyOC45IDE3NWM5LjQtMTUgMjkuMS0xOS41IDQ0LjEtMTAuMmw2MC4yIDM3LjZDMzg0LjcgMjM0LjcgNDE2IDI5MS4yIDQxNiAzNTJsMCA4YzAgODMuOS02OC4xIDE1Mi0xNTIgMTUyTDg4IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5MiAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDU2IDQ0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMjQgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkwyNCAzNjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTU2IDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMNTYgMjk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEzNiAwIDAgMCAwIDAgOTMuMiAwLTQ2LjItMjguOWMtMTUtOS40LTE5LjUtMjkuMS0xMC4yLTQ0LjF6XCJdXG59O1xudmFyIGZhU2lnbkxhbmd1YWdlID0gZmFIYW5kcztcbnZhciBmYVNpZ25pbmcgPSBmYUhhbmRzO1xudmFyIGZhVGFibGV0cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWJsZXRzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDkwXCIsIFwiTTQ5NS4zIDc2LjZjLTQuNi04LjctMTYuMy05LjctMjMuMy0yLjdMMjk3LjkgMjQ4Yy03IDctNiAxOC43IDIuNyAyMy4zIDIwLjEgMTAuNyA0MyAxNi43IDY3LjQgMTYuNyA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI0LjMtNi00Ny4zLTE2LjctNjcuNHpNMjQwLjcgMjExLjRjNC42IDguNyAxNi4zIDkuNyAyMy4zIDIuN0w0MzguMSA0MGM3LTcgNi0xOC43LTIuNy0yMy4zLTIwLjEtMTAuNy00My0xNi43LTY3LjQtMTYuNy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDI0LjMgNiA0Ny4zIDE2LjcgNjcuNHpNMTQ0IDIyNEM3OS4yIDIyNCAyNC40IDI2Ni44IDYuMyAzMjUuNiAzLjQgMzM1LjEgMTEgMzQ0IDIwLjkgMzQ0bDI0Ni4yIDBjOS45IDAgMTcuNS04LjkgMTQuNi0xOC40LS45LTMtMS45LTUuOS0zLTguNy0zNy40LTE4LjEtNjgtNDgtODctODQuOC0xNC45LTUuMi0zMC45LTguMS00Ny42LTguMXpNMjgxLjcgNDEwLjRjMi45LTkuNS00LjctMTguNC0xNC42LTE4LjRMMjAuOSAzOTJDMTEgMzkyIDMuNCA0MDAuOSA2LjMgNDEwLjQgMjQuNCA0NjkuMiA3OS4yIDUxMiAxNDQgNTEyczExOS42LTQyLjggMTM3LjctMTAxLjZ6XCJdXG59O1xudmFyIGZhV2VpZ2h0SGFuZ2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3ZWlnaHQtaGFuZ2luZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVjZFwiLCBcIk0yMjQgOTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTIyLjUgMzJjMy41LTEwIDUuNS0yMC44IDUuNS0zMiAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDExLjIgMS45IDIyIDUuNSAzMmwtMjEuOCAwYy0yOC4zIDAtNTMuMiAxOC41LTYxLjMgNDUuNkwyLjQgNDQwLjJDLjggNDQ1LjQgMCA0NTAuOCAwIDQ1Ni4yIDAgNDg3IDI1IDUxMiA1NS44IDUxMmw0MDAuNCAwYzMwLjggMCA1NS44LTI1IDU1LjgtNTUuOCAwLTUuNC0uOC0xMC44LTIuNC0xNmwtODAtMjY2LjVjLTguMS0yNy4xLTMzLTQ1LjYtNjEuMy00NS42bC0yMS44IDB6XCJdXG59O1xudmFyIGZhRGljZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWNlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbMTI3OTIyXSwgXCJmNTIyXCIsIFwiTTE0MS40IDIuM0MxMDMtOCA2My41IDE0LjggNTMuMyA1My4yTDIuNSAyNDIuN0MtNy44IDI4MS4xIDE1IDMyMC42IDUzLjQgMzMwLjlsMTg5LjUgNTAuOGMzOC40IDEwLjMgNzcuOS0xMi41IDg4LjItNTAuOWw1MC44LTE4OS41YzEwLjMtMzguNC0xMi41LTc3LjktNTAuOS04OC4yTDE0MS40IDIuM3ptMjMgMjA1LjdhMzIgMzIgMCAxIDEgNTUuNC0zMiAzMiAzMiAwIDEgMSAtNTUuNCAzMnpNNzkuMiAyMjAuM2EzMiAzMiAwIDEgMSAzMiA1NS40IDMyIDMyIDAgMSAxIC0zMi01NS40em0xODUgOTYuNGEzMiAzMiAwIDEgMSAtMzItNTUuNCAzMiAzMiAwIDEgMSAzMiA1NS40em05LTIwOC40YTMyIDMyIDAgMSAxIDMyIDU1LjQgMzIgMzIgMCAxIDEgLTMyLTU1LjR6bS0xMjEgMTQuNGEzMiAzMiAwIDEgMSAtMzItNTUuNCAzMiAzMiAwIDEgMSAzMiA1NS40ek00MTggMTkyTDM3Ny40IDM0My4yYy0xNy4yIDY0LTgzIDEwMi0xNDcgODQuOWwtMzguMy0xMC4zIDAgMzAuMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw0MTggMTkyelwiXVxufTtcbnZhciBmYVNob3BTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaG9wLXNsYXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJzdG9yZS1hbHQtc2xhc2hcIl0sIFwiZTA3MFwiLCBcIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01Ny01NyAwLTE5MC4zYzI2LjgtMS45IDQ4LTI0LjMgNDgtNTEuNiAwLTgtMS45LTE2LTUuNS0yMy4yTDQ5Ny43IDY3LjRDNDg2LjggNDUuNyA0NjQuNyAzMiA0NDAuNCAzMkwxMzUuNiAzMmMtMTAuNyAwLTIxIDIuNy0zMC4yIDcuNkw0MS0yNC45ek0zMjEuOCAyNTZMNDQ4IDI1NiA0NDggMzgyLjIgMzIxLjggMjU2ek0zNTIgNDIxLjhsLTY0LTY0IDAgMTAuMmMwIDguOC03LjIgMTYtMTYgMTZsLTEyOCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xMTIgNTguMiAwLTEzNC44LTEzNC44LTI5LjkgNTkuOWMtMy42IDcuMi01LjUgMTUuMS01LjUgMjMuMiAwIDI3LjMgMjEuMiA0OS43IDQ4IDUxLjZMNjQgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE5MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTAuMnpcIl1cbn07XG52YXIgZmFTdG9yZUFsdFNsYXNoID0gZmFTaG9wU2xhc2g7XG52YXIgZmFTb3J0RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzb3J0LWRvd24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtcInNvcnQtZGVzY1wiXSwgXCJmMGRkXCIsIFwiTTMyIDI4OGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzMzMuNSA5LjQgMzQyLjZsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzM2NC45IDI4OCAzNTIgMjg4TDMyIDI4OHpcIl1cbn07XG52YXIgZmFTb3J0RGVzYyA9IGZhU29ydERvd247XG52YXIgZmFQZXNldGFTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blc2V0YS1zaWduJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJlMjIxXCIsIFwiTTExMiAzMkM5NC4zIDMyIDgwIDQ2LjMgODAgNjRsMCAxMDQtMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNCAwIDAgMjMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiA5NiAwYzgwLjIgMCAxNDYuNi01OSAxNTguMi0xMzZsMjUuOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNS44IDBDMzg2LjYgOTEgMzIwLjIgMzIgMjQwIDMyTDExMiAzMnpNMzMzIDE2OGwtMTg5IDAgMC03MiA5NiAwYzQ0LjcgMCA4Mi4zIDMwLjYgOTMgNzJ6TTE0NCAyMTZsMTg5IDBjLTEwLjcgNDEuNC00OC4yIDcyLTkzIDcybC05NiAwIDAtNzJ6XCJdXG59O1xudmFyIGZhVGFibGV0U2NyZWVuQnV0dG9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxldC1zY3JlZW4tYnV0dG9uJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXCJ0YWJsZXQtYWx0XCJdLCBcImYzZmFcIiwgXCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTYgNDMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCA2NGwtMzIwIDAgMCAyODggMzIwIDAgMC0yODh6XCJdXG59O1xudmFyIGZhVGFibGV0QWx0ID0gZmFUYWJsZXRTY3JlZW5CdXR0b247XG52YXIgZmFIYW5kSG9sZGluZ0RvbGxhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctZG9sbGFyJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXCJoYW5kLWhvbGRpbmctdXNkXCJdLCBcImY0YzBcIiwgXCJNMjg4LTE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEyLTEuOCAwYy0zNi42IDAtNjYuMiAyOS43LTY2LjIgNjYuMiAwIDMzLjQgMjQuOSA2MS42IDU4IDY1LjdsNjEgNy42YzUuMSAuNiA5IDUgOSAxMC4yIDAgNS43LTQuNiAxMC4yLTEwLjIgMTAuMkwyNDAgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOHMxMi41IDI4IDI4IDI4bDI0IDAgMCAxMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTIgMS44IDBjMzYuNiAwIDY2LjItMjkuNyA2Ni4yLTY2LjIgMC0zMy40LTI0LjktNjEuNi01OC02NS43bC02MS03LjZjLTUuMS0uNi05LTUtOS0xMC4yIDAtNS43IDQuNi0xMC4yIDEwLjItMTAuMkwzMjggNzZjMTUuNSAwIDI4LTEyLjUgMjgtMjhzLTEyLjUtMjgtMjgtMjhsLTE2IDAgMC0xMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6XCJdXG59O1xudmFyIGZhSGFuZEhvbGRpbmdVc2QgPSBmYUhhbmRIb2xkaW5nRG9sbGFyO1xudmFyIGZhU2hpZWxkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaWVsZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzEyODczNywgXCJzaGllbGQtYmxhbmtcIl0sIFwiZjEzMlwiLCBcIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuOCA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMi0uNSA5OS4yLTQxLjMgMjgwLjctMjEzLjYgMzYzLjItMTYuNyA4LTM2LjEgOC01Mi44IDAtMTcyLjQtODIuNS0yMTMuMS0yNjQtMjEzLjYtMzYzLjItLjEtMjYuMiAxNi4zLTQ3LjkgMzguMy01Ny4yTDI0Mi43IDIuOUMyNDYuOSAxIDI1MS40IDAgMjU2IDB6XCJdXG59O1xudmFyIGZhU2hpZWxkQmxhbmsgPSBmYVNoaWVsZDtcbnZhciBmYUZhY2VMYXVnaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYWNlLWxhdWdoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXCJsYXVnaFwiXSwgXCJmNTk5XCIsIFwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJdXG59O1xudmFyIGZhTGF1Z2ggPSBmYUZhY2VMYXVnaDtcbnZhciBmYUhhbmRzSG9sZGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kcy1ob2xkaW5nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNGMyXCIsIFwiTTgwIDEwNGMwLTIyLjEtMTcuOS00MC00MC00MFMwIDgxLjkgMCAxMDRMMCAzMjUuNWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOUwxMjggNDkzLjNjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN2w2Ni43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC03OC45YzAtMjkuNy0xMS44LTU4LjItMzIuOC03OS4ybC0yNS4zLTI1LjMgMCAwYy03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjIgMTEgMTEgOS4yIDI5LjItMy43IDM3LjgtOS43IDYuNS0yMi43IDUuMi0zMS0zLjFMOTguNyAzMDkuNWMtMTItMTItMTguNy0yOC4zLTE4LjctNDUuM0w4MCAxMDR6bTQ4MCAwbDAgMTYwLjJjMCAxNy02LjcgMzMuMy0xOC43IDQ1LjNsLTUxLjEgNTEuMWMtOC4zIDguMy0yMS4zIDkuNi0zMSAzLjEtMTIuOS04LjYtMTQuNy0yNi45LTMuNy0zNy44IDcuMy03LjMgMjMuMS0yMy4xIDQ3LjItNDcuMiAxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGMtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjJsMCAwLTI1LjMgMjUuM2MtMjEgMjEtMzIuOCA0OS41LTMyLjggNzkuMmwwIDc4LjljMCAyNi41IDIxLjUgNDggNDggNDhsNjYuNyAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43bDk5LjktOTkuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45TDY0MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB6XCJdXG59O1xudmFyIGZhQ2FydFNob3BwaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcnQtc2hvcHBpbmcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFsxMjg3MjIsIFwic2hvcHBpbmctY2FydFwiXSwgXCJmMDdhXCIsIFwiTTI0LTE2QzEwLjctMTYgMC01LjMgMCA4UzEwLjcgMzIgMjQgMzJsNDUuMyAwYzMuOSAwIDcuMiAyLjggNy45IDYuNmw1Mi4xIDI4Ni4zYzYuMiAzNC4yIDM2IDU5LjEgNzAuOCA1OS4xTDQ1NiAzODRjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI1NS45IDBjLTExLjYgMC0yMS41LTguMy0yMy42LTE5LjdsLTUuMS0yOC4zIDMwMy42IDBjMzAuOCAwIDU3LjItMjEuOSA2Mi45LTUyLjJMNTY4LjkgNjkuOUM1NzIuNiA1MC4yIDU1Ny41IDMyIDUzNy40IDMybC00MTIuNyAwLS40LTJjLTQuOC0yNi42LTI4LTQ2LTU1LjEtNDZMMjQtMTZ6TTIwOCA1MTJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0yMjQgMGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6XCJdXG59O1xudmFyIGZhU2hvcHBpbmdDYXJ0ID0gZmFDYXJ0U2hvcHBpbmc7XG52YXIgZmFPY3RhZ29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ29jdGFnb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFsxMjg3MjFdLCBcImYzMDZcIiwgXCJNMTg4LjYgLjFjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43TDE5LjIgMTQzQzcuMiAxNTUgLjUgMTcxLjIgLjUgMTg4LjJsMCAxMzUuNmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM0wxNDMuNCA0OTMuMmMxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43bDEzNS42IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMNDkzLjYgMzY5YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNsMC0xMzUuNmMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNjkuNSAxOC44Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDE4OC42IC4xelwiXVxufTtcbnZhciBmYUhhbmRQb2ludGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtcG9pbnRlcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI1YVwiLCBcIk0xMjggNDBjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDE0OC4yYzguNS03LjYgMTkuNy0xMi4yIDMyLTEyLjIgMjAuNiAwIDM4LjIgMTMgNDUgMzEuMiA4LjgtOS4zIDIxLjItMTUuMiAzNS0xNS4yIDI1LjMgMCA0NiAxOS41IDQ3LjkgNDQuMyA4LjUtNy43IDE5LjgtMTIuMyAzMi4xLTEyLjMgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMTJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTg1LjMgMGMtNSAwLTkuOS0uMy0xNC43LTEtNTUuMy01LjYtMTA2LjItMzQtMTQwLTc5TDggMzM2Yy0xMy4zLTE3LjctOS43LTQyLjcgOC01NnM0Mi43LTkuNyA1NiA4bDU2IDc0LjcgMC0zMjIuN3pNMjQwIDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2elwiXVxufTtcbnZhciBmYVJlZ2lzdGVyZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVnaXN0ZXJlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgWzE3NF0sIFwiZjI1ZFwiLCBcIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDE0NGw4MCAwYzM5LjggMCA3MiAzMi4yIDcyIDcyIDAgMjguOS0xNyA1My44LTQxLjYgNjUuM2wzMC4yIDUwLjNjNi44IDExLjQgMy4xIDI2LjEtOC4yIDMyLjlzLTI2LjEgMy4xLTMyLjktOC4ybC00MS02OC4zLTM0LjQgMCAwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0em03MiA5Nmw4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDAgMCA0OCA0OCAwelwiXVxufTtcbnZhciBmYUhvdXNlU2lnbmFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLXNpZ25hbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZTAxMlwiLCBcIk01MTUuOSAyNDBsLTE5LjkgMCAwIDE0NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTM3IDBjLTI0LTkxLjctOTMuNS0xNjUtMTgzLTE5NC4zbDAtMTMuNy0xOS45IDBjLTE1LjUgMC0yOC4xLTEyLjYtMjguMS0yOC4xIDAtNy42IDMuMS0xNC45IDguNi0yMC4yTDI3Ni41LTQuOUMyODMuOS0xMiAyOTMuNy0xNiAzMDQtMTZzMjAuMSA0IDI3LjUgMTEuMUw1MzUuNCAxOTEuN2M1LjUgNS4zIDguNiAxMi42IDguNiAyMC4yIDAgMTUuNS0xMi42IDI4LjEtMjguMSAyOC4xek0yODAgMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHpNMjQgMjg4YzEyOC4xIDAgMjMyIDEwMy45IDIzMiAyMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTggMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMCA0MDhjMC0xMy4zIDEwLjctMjQgMjQtMjQgNzUuMSAwIDEzNiA2MC45IDEzNiAxMzYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00OC42LTM5LjQtODgtODgtODgtMTMuMyAwLTI0LTEwLjctMjQtMjR6XCJdXG59O1xudmFyIGZhQmFuZ2xhZGVzaGlUYWthU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYW5nbGFkZXNoaS10YWthLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImUyZTZcIiwgXCJNMzYgMzIuM0MxOC40IDMwLjEgMi40IDQyLjUgLjMgNjBTMTAuNSA5My42IDI4IDk1LjhsNy45IDFjMTYgMiAyOCAxNS42IDI4IDMxLjhsMCAzMS41LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDE3NmMwIDUzIDQzIDk2IDk2IDk2bDMyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJsMC0zMmMwLTUzLTQzLTk2LTk2LTk2bC0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzYgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTMxLjVDMTI4IDgwLjEgOTIgMzkuMiA0My45IDMzLjJsLTcuOS0xelwiXVxufTtcbnZhciBpY29ucyA9IHtcbiAgZmEwOiBmYTAsXG4gIGZhMTogZmExLFxuICBmYTI6IGZhMixcbiAgZmEzOiBmYTMsXG4gIGZhNDogZmE0LFxuICBmYTU6IGZhNSxcbiAgZmE2OiBmYTYsXG4gIGZhNzogZmE3LFxuICBmYTg6IGZhOCxcbiAgZmE5OiBmYTksXG4gIGZhRG9sbGFyU2lnbjogZmFEb2xsYXJTaWduLFxuICBmYURvbGxhcjogZmFEb2xsYXIsXG4gIGZhVXNkOiBmYVVzZCxcbiAgZmFEb2c6IGZhRG9nLFxuICBmYVRydWNrTW92aW5nOiBmYVRydWNrTW92aW5nLFxuICBmYVJvdGF0ZTogZmFSb3RhdGUsXG4gIGZhU3luY0FsdDogZmFTeW5jQWx0LFxuICBmYVNxdWFyZU1pbnVzOiBmYVNxdWFyZU1pbnVzLFxuICBmYU1pbnVzU3F1YXJlOiBmYU1pbnVzU3F1YXJlLFxuICBmYUFsaWduSnVzdGlmeTogZmFBbGlnbkp1c3RpZnksXG4gIGZhQ2FsZW5kYXJDaGVjazogZmFDYWxlbmRhckNoZWNrLFxuICBmYUZhY2VLaXNzOiBmYUZhY2VLaXNzLFxuICBmYUtpc3M6IGZhS2lzcyxcbiAgZmFLaXRjaGVuU2V0OiBmYUtpdGNoZW5TZXQsXG4gIGZhRG5hOiBmYURuYSxcbiAgZmFDaGlsZFJlYWNoaW5nOiBmYUNoaWxkUmVhY2hpbmcsXG4gIGZhUGFzdGU6IGZhUGFzdGUsXG4gIGZhRmlsZUNsaXBib2FyZDogZmFGaWxlQ2xpcGJvYXJkLFxuICBmYU1ldGVvcjogZmFNZXRlb3IsXG4gIGZhR2VhcnM6IGZhR2VhcnMsXG4gIGZhQ29nczogZmFDb2dzLFxuICBmYUZpbGVDaXJjbGVQbHVzOiBmYUZpbGVDaXJjbGVQbHVzLFxuICBmYUljaWNsZXM6IGZhSWNpY2xlcyxcbiAgZmFBcnJvd1RyZW5kVXA6IGZhQXJyb3dUcmVuZFVwLFxuICBmYUhleGFnb25Ob2Rlc0JvbHQ6IGZhSGV4YWdvbk5vZGVzQm9sdCxcbiAgZmFRdWVzdGlvbjogZmFRdWVzdGlvbixcbiAgZmFIYW5kc0JvdW5kOiBmYUhhbmRzQm91bmQsXG4gIGZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2U6IGZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2UsXG4gIGZhRmlsZUFycm93RG93bjogZmFGaWxlQXJyb3dEb3duLFxuICBmYUZpbGVEb3dubG9hZDogZmFGaWxlRG93bmxvYWQsXG4gIGZhUGVyc29uQm9vdGg6IGZhUGVyc29uQm9vdGgsXG4gIGZhTG9jdXN0OiBmYUxvY3VzdCxcbiAgZmFSaWdodExvbmc6IGZhUmlnaHRMb25nLFxuICBmYUxvbmdBcnJvd0FsdFJpZ2h0OiBmYUxvbmdBcnJvd0FsdFJpZ2h0LFxuICBmYVRydWNrRHJvcGxldDogZmFUcnVja0Ryb3BsZXQsXG4gIGZhSGFuZEhvbGRpbmdNZWRpY2FsOiBmYUhhbmRIb2xkaW5nTWVkaWNhbCxcbiAgZmFIYW5kUG9pbnRMZWZ0OiBmYUhhbmRQb2ludExlZnQsXG4gIGZhQ2FsY3VsYXRvcjogZmFDYWxjdWxhdG9yLFxuICBmYU1pbnVzOiBmYU1pbnVzLFxuICBmYVN1YnRyYWN0OiBmYVN1YnRyYWN0LFxuICBmYUFycm93VXBaQTogZmFBcnJvd1VwWkEsXG4gIGZhU29ydEFscGhhVXBBbHQ6IGZhU29ydEFscGhhVXBBbHQsXG4gIGZhTWljcm9waG9uZVNsYXNoOiBmYU1pY3JvcGhvbmVTbGFzaCxcbiAgZmFTcXVhcmVQZW46IGZhU3F1YXJlUGVuLFxuICBmYVBlblNxdWFyZTogZmFQZW5TcXVhcmUsXG4gIGZhUGVuY2lsU3F1YXJlOiBmYVBlbmNpbFNxdWFyZSxcbiAgZmFIYW5kRmlzdDogZmFIYW5kRmlzdCxcbiAgZmFGaXN0UmFpc2VkOiBmYUZpc3RSYWlzZWQsXG4gIGZhQ29tbWVudFNtczogZmFDb21tZW50U21zLFxuICBmYVNtczogZmFTbXMsXG4gIGZhU2ltQ2FyZDogZmFTaW1DYXJkLFxuICBmYVNjYWxlQmFsYW5jZWQ6IGZhU2NhbGVCYWxhbmNlZCxcbiAgZmFCYWxhbmNlU2NhbGU6IGZhQmFsYW5jZVNjYWxlLFxuICBmYUNhcjogZmFDYXIsXG4gIGZhQXV0b21vYmlsZTogZmFBdXRvbW9iaWxlLFxuICBmYUNyb3BTaW1wbGU6IGZhQ3JvcFNpbXBsZSxcbiAgZmFDcm9wQWx0OiBmYUNyb3BBbHQsXG4gIGZhTWVkYWw6IGZhTWVkYWwsXG4gIGZhU2Nyb2xsOiBmYVNjcm9sbCxcbiAgZmFGaWxlRXhjZWw6IGZhRmlsZUV4Y2VsLFxuICBmYUZpbHRlcjogZmFGaWx0ZXIsXG4gIGZhRHJ1bTogZmFEcnVtLFxuICBmYU1hcFBpbjogZmFNYXBQaW4sXG4gIGZhU2NhbGVVbmJhbGFuY2VkRmxpcDogZmFTY2FsZVVuYmFsYW5jZWRGbGlwLFxuICBmYUJhbGFuY2VTY2FsZVJpZ2h0OiBmYUJhbGFuY2VTY2FsZVJpZ2h0LFxuICBmYUFycm93c1RvQ2lyY2xlOiBmYUFycm93c1RvQ2lyY2xlLFxuICBmYUVudmVsb3BlOiBmYUVudmVsb3BlLFxuICBmYUJhYnk6IGZhQmFieSxcbiAgZmFTcXVhcmVDYXJldERvd246IGZhU3F1YXJlQ2FyZXREb3duLFxuICBmYUNhcmV0U3F1YXJlRG93bjogZmFDYXJldFNxdWFyZURvd24sXG4gIGZhVGVudDogZmFUZW50LFxuICBmYUE6IGZhQSxcbiAgZmFQYXJhY2h1dGVCb3g6IGZhUGFyYWNodXRlQm94LFxuICBmYUNhcnRBcnJvd0Rvd246IGZhQ2FydEFycm93RG93bixcbiAgZmFCcmlkZ2VDaXJjbGVFeGNsYW1hdGlvbjogZmFCcmlkZ2VDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFDbG91ZEFycm93VXA6IGZhQ2xvdWRBcnJvd1VwLFxuICBmYUNsb3VkVXBsb2FkOiBmYUNsb3VkVXBsb2FkLFxuICBmYUNsb3VkVXBsb2FkQWx0OiBmYUNsb3VkVXBsb2FkQWx0LFxuICBmYUF0OiBmYUF0LFxuICBmYUluZGlhblJ1cGVlU2lnbjogZmFJbmRpYW5SdXBlZVNpZ24sXG4gIGZhSW5kaWFuUnVwZWU6IGZhSW5kaWFuUnVwZWUsXG4gIGZhSW5yOiBmYUlucixcbiAgZmFUcnVjazogZmFUcnVjayxcbiAgZmFDaGFsa2JvYXJkVXNlcjogZmFDaGFsa2JvYXJkVXNlcixcbiAgZmFDaGFsa2JvYXJkVGVhY2hlcjogZmFDaGFsa2JvYXJkVGVhY2hlcixcbiAgZmFVc2VyQ2hlY2s6IGZhVXNlckNoZWNrLFxuICBmYVVzZXJOaW5qYTogZmFVc2VyTmluamEsXG4gIGZhUGxhbnRXaWx0OiBmYVBsYW50V2lsdCxcbiAgZmFXZWlnaHRTY2FsZTogZmFXZWlnaHRTY2FsZSxcbiAgZmFXZWlnaHQ6IGZhV2VpZ2h0LFxuICBmYUNhcmV0UmlnaHQ6IGZhQ2FyZXRSaWdodCxcbiAgZmFGbG9yaW5TaWduOiBmYUZsb3JpblNpZ24sXG4gIGZhQmVsbDogZmFCZWxsLFxuICBmYUxhcmlTaWduOiBmYUxhcmlTaWduLFxuICBmYU1pbGxTaWduOiBmYU1pbGxTaWduLFxuICBmYVBlcnNvblNub3dib2FyZGluZzogZmFQZXJzb25Tbm93Ym9hcmRpbmcsXG4gIGZhU25vd2JvYXJkaW5nOiBmYVNub3dib2FyZGluZyxcbiAgZmFUdHk6IGZhVHR5LFxuICBmYVRlbGV0eXBlOiBmYVRlbGV0eXBlLFxuICBmYVVzZXJzUmVjdGFuZ2xlOiBmYVVzZXJzUmVjdGFuZ2xlLFxuICBmYU1vYmlsZTogZmFNb2JpbGUsXG4gIGZhTW9iaWxlQW5kcm9pZDogZmFNb2JpbGVBbmRyb2lkLFxuICBmYU1vYmlsZVBob25lOiBmYU1vYmlsZVBob25lLFxuICBmYUFycm93c1R1cm5Ub0RvdHM6IGZhQXJyb3dzVHVyblRvRG90cyxcbiAgZmFFeGNsYW1hdGlvbjogZmFFeGNsYW1hdGlvbixcbiAgZmFDaHVyY2g6IGZhQ2h1cmNoLFxuICBmYVRvZ2dsZU9mZjogZmFUb2dnbGVPZmYsXG4gIGZhU2hvZVByaW50czogZmFTaG9lUHJpbnRzLFxuICBmYUZpbGVDaXJjbGVFeGNsYW1hdGlvbjogZmFGaWxlQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhV2FsbGV0OiBmYVdhbGxldCxcbiAgZmFNZXNzYWdlOiBmYU1lc3NhZ2UsXG4gIGZhQ29tbWVudEFsdDogZmFDb21tZW50QWx0LFxuICBmYVRyb3BoeTogZmFUcm9waHksXG4gIGZhRmFjZURpenp5OiBmYUZhY2VEaXp6eSxcbiAgZmFEaXp6eTogZmFEaXp6eSxcbiAgZmFCYWN0ZXJpYTogZmFCYWN0ZXJpYSxcbiAgZmFFYXJEZWFmOiBmYUVhckRlYWYsXG4gIGZhRGVhZjogZmFEZWFmLFxuICBmYURlYWZuZXNzOiBmYURlYWZuZXNzLFxuICBmYUhhcmRPZkhlYXJpbmc6IGZhSGFyZE9mSGVhcmluZyxcbiAgZmFQZW9wbGVBcnJvd3M6IGZhUGVvcGxlQXJyb3dzLFxuICBmYVBlb3BsZUFycm93c0xlZnRSaWdodDogZmFQZW9wbGVBcnJvd3NMZWZ0UmlnaHQsXG4gIGZhSGFuZHNDbGFwcGluZzogZmFIYW5kc0NsYXBwaW5nLFxuICBmYVZpcnVzQ292aWRTbGFzaDogZmFWaXJ1c0NvdmlkU2xhc2gsXG4gIGZhQ2FsZW5kYXJEYXlzOiBmYUNhbGVuZGFyRGF5cyxcbiAgZmFDYWxlbmRhckFsdDogZmFDYWxlbmRhckFsdCxcbiAgZmFEaWFtb25kVHVyblJpZ2h0OiBmYURpYW1vbmRUdXJuUmlnaHQsXG4gIGZhRGlyZWN0aW9uczogZmFEaXJlY3Rpb25zLFxuICBmYUhhbmRQb2ludFVwOiBmYUhhbmRQb2ludFVwLFxuICBmYUJlemllckN1cnZlOiBmYUJlemllckN1cnZlLFxuICBmYVBlcnNvbkhhbGZEcmVzczogZmFQZXJzb25IYWxmRHJlc3MsXG4gIGZhU3F1YXJlUG9sbEhvcml6b250YWw6IGZhU3F1YXJlUG9sbEhvcml6b250YWwsXG4gIGZhUG9sbEg6IGZhUG9sbEgsXG4gIGZhU2Nob29sQ2lyY2xlWG1hcms6IGZhU2Nob29sQ2lyY2xlWG1hcmssXG4gIGZhSGFuZExpemFyZDogZmFIYW5kTGl6YXJkLFxuICBmYUNoYWxrYm9hcmQ6IGZhQ2hhbGtib2FyZCxcbiAgZmFCbGFja2JvYXJkOiBmYUJsYWNrYm9hcmQsXG4gIGZhVXBSaWdodEZyb21TcXVhcmU6IGZhVXBSaWdodEZyb21TcXVhcmUsXG4gIGZhRXh0ZXJuYWxMaW5rQWx0OiBmYUV4dGVybmFsTGlua0FsdCxcbiAgZmFTcXVhcmVGdWxsOiBmYVNxdWFyZUZ1bGwsXG4gIGZhQ2xvdmVyOiBmYUNsb3ZlcixcbiAgZmFUZWV0aE9wZW46IGZhVGVldGhPcGVuLFxuICBmYUJhcnNTdGFnZ2VyZWQ6IGZhQmFyc1N0YWdnZXJlZCxcbiAgZmFSZW9yZGVyOiBmYVJlb3JkZXIsXG4gIGZhU3RyZWFtOiBmYVN0cmVhbSxcbiAgZmFXYXJlaG91c2U6IGZhV2FyZWhvdXNlLFxuICBmYVN3YXRjaGJvb2s6IGZhU3dhdGNoYm9vayxcbiAgZmFDYW1wZ3JvdW5kOiBmYUNhbXBncm91bmQsXG4gIGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQ6IGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQsXG4gIGZhR2xhc3NlczogZmFHbGFzc2VzLFxuICBmYUNpcmNsZVBhdXNlOiBmYUNpcmNsZVBhdXNlLFxuICBmYVBhdXNlQ2lyY2xlOiBmYVBhdXNlQ2lyY2xlLFxuICBmYU1lbW9yeTogZmFNZW1vcnksXG4gIGZhR2lmdDogZmFHaWZ0LFxuICBmYU1vbmV5QmlsbFdoZWF0OiBmYU1vbmV5QmlsbFdoZWF0LFxuICBmYUR1bmdlb246IGZhRHVuZ2VvbixcbiAgZmFTdWl0Y2FzZU1lZGljYWw6IGZhU3VpdGNhc2VNZWRpY2FsLFxuICBmYU1lZGtpdDogZmFNZWRraXQsXG4gIGZhUGVyc29uQ2FuZTogZmFQZXJzb25DYW5lLFxuICBmYUdhdWdlOiBmYUdhdWdlLFxuICBmYURhc2hib2FyZDogZmFEYXNoYm9hcmQsXG4gIGZhR2F1Z2VNZWQ6IGZhR2F1Z2VNZWQsXG4gIGZhVGFjaG9tZXRlckFsdEF2ZXJhZ2U6IGZhVGFjaG9tZXRlckFsdEF2ZXJhZ2UsXG4gIGZhRW52ZWxvcGVPcGVuVGV4dDogZmFFbnZlbG9wZU9wZW5UZXh0LFxuICBmYVRvb2xib3g6IGZhVG9vbGJveCxcbiAgZmFQb3dlck9mZjogZmFQb3dlck9mZixcbiAgZmFTaWduYWw6IGZhU2lnbmFsLFxuICBmYVNpZ25hbDU6IGZhU2lnbmFsNSxcbiAgZmFTaWduYWxQZXJmZWN0OiBmYVNpZ25hbFBlcmZlY3QsXG4gIGZhQXJyb3dzU3BpbjogZmFBcnJvd3NTcGluLFxuICBmYUpvaW50OiBmYUpvaW50LFxuICBmYUJyYWlsbGU6IGZhQnJhaWxsZSxcbiAgZmFCYXNrZXRTaG9wcGluZzogZmFCYXNrZXRTaG9wcGluZyxcbiAgZmFTaG9wcGluZ0Jhc2tldDogZmFTaG9wcGluZ0Jhc2tldCxcbiAgZmFCcmlkZ2U6IGZhQnJpZGdlLFxuICBmYVBsYW5lQXJyaXZhbDogZmFQbGFuZUFycml2YWwsXG4gIGZhQ2FzaFJlZ2lzdGVyOiBmYUNhc2hSZWdpc3RlcixcbiAgZmFSaW5nOiBmYVJpbmcsXG4gIGZhU2hhcmVOb2RlczogZmFTaGFyZU5vZGVzLFxuICBmYVNoYXJlQWx0OiBmYVNoYXJlQWx0LFxuICBmYVBlcnNvbkNpcmNsZUV4Y2xhbWF0aW9uOiBmYVBlcnNvbkNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUJpbm9jdWxhcnM6IGZhQmlub2N1bGFycyxcbiAgZmFLaXBTaWduOiBmYUtpcFNpZ24sXG4gIGZhSGFyZERyaXZlOiBmYUhhcmREcml2ZSxcbiAgZmFIZGQ6IGZhSGRkLFxuICBmYVJhbmtpbmdTdGFyOiBmYVJhbmtpbmdTdGFyLFxuICBmYVVzZXJUaWU6IGZhVXNlclRpZSxcbiAgZmFFbGxpcHNpczogZmFFbGxpcHNpcyxcbiAgZmFFbGxpcHNpc0g6IGZhRWxsaXBzaXNILFxuICBmYVN0b3JlU2xhc2g6IGZhU3RvcmVTbGFzaCxcbiAgZmFQZXJjZW50OiBmYVBlcmNlbnQsXG4gIGZhUGVyY2VudGFnZTogZmFQZXJjZW50YWdlLFxuICBmYUZpbGVaaXBwZXI6IGZhRmlsZVppcHBlcixcbiAgZmFGaWxlQXJjaGl2ZTogZmFGaWxlQXJjaGl2ZSxcbiAgZmFEaXNwbGF5OiBmYURpc3BsYXksXG4gIGZhSWNvbnM6IGZhSWNvbnMsXG4gIGZhSGVhcnRNdXNpY0NhbWVyYUJvbHQ6IGZhSGVhcnRNdXNpY0NhbWVyYUJvbHQsXG4gIGZhUnVsZXJWZXJ0aWNhbDogZmFSdWxlclZlcnRpY2FsLFxuICBmYU1hcExvY2F0aW9uRG90OiBmYU1hcExvY2F0aW9uRG90LFxuICBmYU1hcE1hcmtlZEFsdDogZmFNYXBNYXJrZWRBbHQsXG4gIGZhSGVhcnRDcmFjazogZmFIZWFydENyYWNrLFxuICBmYUhlYXJ0QnJva2VuOiBmYUhlYXJ0QnJva2VuLFxuICBmYUNvdzogZmFDb3csXG4gIGZhUnNzOiBmYVJzcyxcbiAgZmFGZWVkOiBmYUZlZWQsXG4gIGZhTWFnbmlmeWluZ0dsYXNzOiBmYU1hZ25pZnlpbmdHbGFzcyxcbiAgZmFTZWFyY2g6IGZhU2VhcmNoLFxuICBmYUNsb3VkTW9vbjogZmFDbG91ZE1vb24sXG4gIGZhQm94ZXNTdGFja2VkOiBmYUJveGVzU3RhY2tlZCxcbiAgZmFCb3hlczogZmFCb3hlcyxcbiAgZmFCb3hlc0FsdDogZmFCb3hlc0FsdCxcbiAgZmFDb2RlQnJhbmNoOiBmYUNvZGVCcmFuY2gsXG4gIGZhQmFuOiBmYUJhbixcbiAgZmFDYW5jZWw6IGZhQ2FuY2VsLFxuICBmYUp1Z0RldGVyZ2VudDogZmFKdWdEZXRlcmdlbnQsXG4gIGZhUmVwbHk6IGZhUmVwbHksXG4gIGZhTWFpbFJlcGx5OiBmYU1haWxSZXBseSxcbiAgZmFTdW5QbGFudFdpbHQ6IGZhU3VuUGxhbnRXaWx0LFxuICBmYUJhY3Rlcml1bTogZmFCYWN0ZXJpdW0sXG4gIGZhUmVjb3JkVmlueWw6IGZhUmVjb3JkVmlueWwsXG4gIGZhRmxvcHB5RGlzazogZmFGbG9wcHlEaXNrLFxuICBmYVNhdmU6IGZhU2F2ZSxcbiAgZmFUb2lsZXRzUG9ydGFibGU6IGZhVG9pbGV0c1BvcnRhYmxlLFxuICBmYU86IGZhTyxcbiAgZmFQYWxldHRlOiBmYVBhbGV0dGUsXG4gIGZhVW5sb2NrOiBmYVVubG9jayxcbiAgZmFFYXJMaXN0ZW46IGZhRWFyTGlzdGVuLFxuICBmYUFzc2lzdGl2ZUxpc3RlbmluZ1N5c3RlbXM6IGZhQXNzaXN0aXZlTGlzdGVuaW5nU3lzdGVtcyxcbiAgZmFDb2RlUHVsbFJlcXVlc3Q6IGZhQ29kZVB1bGxSZXF1ZXN0LFxuICBmYUtleTogZmFLZXksXG4gIGZhU2t1bGw6IGZhU2t1bGwsXG4gIGZhTWFyc1N0cm9rZVVwOiBmYU1hcnNTdHJva2VVcCxcbiAgZmFNYXJzU3Ryb2tlVjogZmFNYXJzU3Ryb2tlVixcbiAgZmFGaXJlRmxhbWVTaW1wbGU6IGZhRmlyZUZsYW1lU2ltcGxlLFxuICBmYUJ1cm46IGZhQnVybixcbiAgZmFUcmVlOiBmYVRyZWUsXG4gIGZhU21vZzogZmFTbW9nLFxuICBmYVM6IGZhUyxcbiAgZmFKZWRpOiBmYUplZGksXG4gIGZhUGVyc29uSGlraW5nOiBmYVBlcnNvbkhpa2luZyxcbiAgZmFIaWtpbmc6IGZhSGlraW5nLFxuICBmYUFycm93c1VwVG9MaW5lOiBmYUFycm93c1VwVG9MaW5lLFxuICBmYU1hcnNEb3VibGU6IGZhTWFyc0RvdWJsZSxcbiAgZmFUaGVybW9tZXRlcjogZmFUaGVybW9tZXRlcixcbiAgZmFQYWludGJydXNoOiBmYVBhaW50YnJ1c2gsXG4gIGZhUGFpbnRCcnVzaDogZmFQYWludEJydXNoLFxuICBmYU5ldXRlcjogZmFOZXV0ZXIsXG4gIGZhU3F1YXJlUGhvbmVGbGlwOiBmYVNxdWFyZVBob25lRmxpcCxcbiAgZmFQaG9uZVNxdWFyZUFsdDogZmFQaG9uZVNxdWFyZUFsdCxcbiAgZmFGYWNlR3JpblRvbmd1ZVNxdWludDogZmFGYWNlR3JpblRvbmd1ZVNxdWludCxcbiAgZmFHcmluVG9uZ3VlU3F1aW50OiBmYUdyaW5Ub25ndWVTcXVpbnQsXG4gIGZhQ29tbWVudERvbGxhcjogZmFDb21tZW50RG9sbGFyLFxuICBmYUhpcHBvOiBmYUhpcHBvLFxuICBmYUJvd2xGb29kOiBmYUJvd2xGb29kLFxuICBmYVNxdWFyZVZpcnVzOiBmYVNxdWFyZVZpcnVzLFxuICBmYUNsb3VkU3VuUmFpbjogZmFDbG91ZFN1blJhaW4sXG4gIGZhQXJyb3dSaWdodExvbmc6IGZhQXJyb3dSaWdodExvbmcsXG4gIGZhTG9uZ0Fycm93UmlnaHQ6IGZhTG9uZ0Fycm93UmlnaHQsXG4gIGZhQnVpbGRpbmdVbjogZmFCdWlsZGluZ1VuLFxuICBmYVRlbXBlcmF0dXJlTG93OiBmYVRlbXBlcmF0dXJlTG93LFxuICBmYURvb3JPcGVuOiBmYURvb3JPcGVuLFxuICBmYUFsaWduTGVmdDogZmFBbGlnbkxlZnQsXG4gIGZhQ2FtZXJhOiBmYUNhbWVyYSxcbiAgZmFDYW1lcmFBbHQ6IGZhQ2FtZXJhQWx0LFxuICBmYVVzZXJzUmF5czogZmFVc2Vyc1JheXMsXG4gIGZhUmFpbmJvdzogZmFSYWluYm93LFxuICBmYVNpdGVtYXA6IGZhU2l0ZW1hcCxcbiAgZmFGYWNlR3JpblN0YXJzOiBmYUZhY2VHcmluU3RhcnMsXG4gIGZhR3JpblN0YXJzOiBmYUdyaW5TdGFycyxcbiAgZmFTb3J0VXA6IGZhU29ydFVwLFxuICBmYVNvcnRBc2M6IGZhU29ydEFzYyxcbiAgZmFFeWU6IGZhRXllLFxuICBmYUNhcmV0TGVmdDogZmFDYXJldExlZnQsXG4gIGZhQXBwbGVXaG9sZTogZmFBcHBsZVdob2xlLFxuICBmYUFwcGxlQWx0OiBmYUFwcGxlQWx0LFxuICBmYVNjcm9sbFRvcmFoOiBmYVNjcm9sbFRvcmFoLFxuICBmYVRvcmFoOiBmYVRvcmFoLFxuICBmYUhvdXNlTG9jazogZmFIb3VzZUxvY2ssXG4gIGZhQXJyb3dzTGVmdFJpZ2h0VG9MaW5lOiBmYUFycm93c0xlZnRSaWdodFRvTGluZSxcbiAgZmFUcmFzaDogZmFUcmFzaCxcbiAgZmFGYWNlU2FkVGVhcjogZmFGYWNlU2FkVGVhcixcbiAgZmFTYWRUZWFyOiBmYVNhZFRlYXIsXG4gIGZhRmF4OiBmYUZheCxcbiAgZmFQZXJzb25DaXJjbGVQbHVzOiBmYVBlcnNvbkNpcmNsZVBsdXMsXG4gIGZhSGFtc2E6IGZhSGFtc2EsXG4gIGZhUGVyc29uQ2lyY2xlUXVlc3Rpb246IGZhUGVyc29uQ2lyY2xlUXVlc3Rpb24sXG4gIGZhQ2xpcGJvYXJkQ2hlY2s6IGZhQ2xpcGJvYXJkQ2hlY2ssXG4gIGZhU2hhcmVGcm9tU3F1YXJlOiBmYVNoYXJlRnJvbVNxdWFyZSxcbiAgZmFTaGFyZVNxdWFyZTogZmFTaGFyZVNxdWFyZSxcbiAgZmFSZWNlaXB0OiBmYVJlY2VpcHQsXG4gIGZhRXF1YWxzOiBmYUVxdWFscyxcbiAgZmFDaGV2cm9uVXA6IGZhQ2hldnJvblVwLFxuICBmYVZpcnVzU2xhc2g6IGZhVmlydXNTbGFzaCxcbiAgZmFTbGFzaDogZmFTbGFzaCxcbiAgZmFFeHBhbmQ6IGZhRXhwYW5kLFxuICBmYU5vdGVTdGlja3k6IGZhTm90ZVN0aWNreSxcbiAgZmFTdGlja3lOb3RlOiBmYVN0aWNreU5vdGUsXG4gIGZhVGFibGVDb2x1bW5zOiBmYVRhYmxlQ29sdW1ucyxcbiAgZmFDb2x1bW5zOiBmYUNvbHVtbnMsXG4gIGZhUGVyc29uU2hlbHRlcjogZmFQZXJzb25TaGVsdGVyLFxuICBmYUNpcmNsZU5vdGNoOiBmYUNpcmNsZU5vdGNoLFxuICBmYVdhdGVyOiBmYVdhdGVyLFxuICBmYURlbGV0ZUxlZnQ6IGZhRGVsZXRlTGVmdCxcbiAgZmFCYWNrc3BhY2U6IGZhQmFja3NwYWNlLFxuICBmYUJyb29tQmFsbDogZmFCcm9vbUJhbGwsXG4gIGZhUXVpZGRpdGNoOiBmYVF1aWRkaXRjaCxcbiAgZmFRdWlkZGl0Y2hCcm9vbUJhbGw6IGZhUXVpZGRpdGNoQnJvb21CYWxsLFxuICBmYUo6IGZhSixcbiAgZmFTaHV0dGxlU3BhY2U6IGZhU2h1dHRsZVNwYWNlLFxuICBmYVNwYWNlU2h1dHRsZTogZmFTcGFjZVNodXR0bGUsXG4gIGZhWWluWWFuZzogZmFZaW5ZYW5nLFxuICBmYVN0b3A6IGZhU3RvcCxcbiAgZmFUcm93ZWw6IGZhVHJvd2VsLFxuICBmYUhhbmRCYWNrRmlzdDogZmFIYW5kQmFja0Zpc3QsXG4gIGZhSGFuZFJvY2s6IGZhSGFuZFJvY2ssXG4gIGZhVGVtcGVyYXR1cmVIaWdoOiBmYVRlbXBlcmF0dXJlSGlnaCxcbiAgZmFHcmVhdGVyVGhhbjogZmFHcmVhdGVyVGhhbixcbiAgZmFDcnV0Y2g6IGZhQ3J1dGNoLFxuICBmYVNlcHRhZ29uOiBmYVNlcHRhZ29uLFxuICBmYUhlcHRhZ29uOiBmYUhlcHRhZ29uLFxuICBmYVN0cmVldFZpZXc6IGZhU3RyZWV0VmlldyxcbiAgZmFXYXZlU3F1YXJlOiBmYVdhdmVTcXVhcmUsXG4gIGZhQW5nbGVMZWZ0OiBmYUFuZ2xlTGVmdCxcbiAgZmFTY3Jld2RyaXZlcjogZmFTY3Jld2RyaXZlcixcbiAgZmFUcmFjdG9yOiBmYVRyYWN0b3IsXG4gIGZhQnJpZGdlQ2lyY2xlWG1hcms6IGZhQnJpZGdlQ2lyY2xlWG1hcmssXG4gIGZhVmlhbHM6IGZhVmlhbHMsXG4gIGZhU3RldGhvc2NvcGU6IGZhU3RldGhvc2NvcGUsXG4gIGZhUG9kY2FzdDogZmFQb2RjYXN0LFxuICBmYUFycm93VXBSaWdodERvdHM6IGZhQXJyb3dVcFJpZ2h0RG90cyxcbiAgZmFDaGVzc1F1ZWVuOiBmYUNoZXNzUXVlZW4sXG4gIGZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb246IGZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhRWxsaXBzaXNWZXJ0aWNhbDogZmFFbGxpcHNpc1ZlcnRpY2FsLFxuICBmYUVsbGlwc2lzVjogZmFFbGxpcHNpc1YsXG4gIGZhSGVhcnRDaXJjbGVFeGNsYW1hdGlvbjogZmFIZWFydENpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb246IGZhQnVpbGRpbmdDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFQZXJzb25BcnJvd1VwRnJvbUxpbmU6IGZhUGVyc29uQXJyb3dVcEZyb21MaW5lLFxuICBmYU5vdEVxdWFsOiBmYU5vdEVxdWFsLFxuICBmYVRyYWluVHJhbTogZmFUcmFpblRyYW0sXG4gIGZhUGxhbmVEZXBhcnR1cmU6IGZhUGxhbmVEZXBhcnR1cmUsXG4gIGZhUmlnaHRUb0JyYWNrZXQ6IGZhUmlnaHRUb0JyYWNrZXQsXG4gIGZhU2lnbkluQWx0OiBmYVNpZ25JbkFsdCxcbiAgZmFTZENhcmQ6IGZhU2RDYXJkLFxuICBmYUhvdXNlQ2lyY2xlRXhjbGFtYXRpb246IGZhSG91c2VDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFTaGVrZWxTaWduOiBmYVNoZWtlbFNpZ24sXG4gIGZhSWxzOiBmYUlscyxcbiAgZmFTaGVrZWw6IGZhU2hla2VsLFxuICBmYVNoZXFlbDogZmFTaGVxZWwsXG4gIGZhU2hlcWVsU2lnbjogZmFTaGVxZWxTaWduLFxuICBmYVJhZGlvOiBmYVJhZGlvLFxuICBmYUhhbmREb3RzOiBmYUhhbmREb3RzLFxuICBmYUFsbGVyZ2llczogZmFBbGxlcmdpZXMsXG4gIGZhQm9va1NrdWxsOiBmYUJvb2tTa3VsbCxcbiAgZmFCb29rRGVhZDogZmFCb29rRGVhZCxcbiAgZmFVbmxvY2tLZXlob2xlOiBmYVVubG9ja0tleWhvbGUsXG4gIGZhVW5sb2NrQWx0OiBmYVVubG9ja0FsdCxcbiAgZmFGaWxlQXJyb3dVcDogZmFGaWxlQXJyb3dVcCxcbiAgZmFGaWxlVXBsb2FkOiBmYUZpbGVVcGxvYWQsXG4gIGZhRmFjZUdyaW5UZWFyczogZmFGYWNlR3JpblRlYXJzLFxuICBmYUdyaW5UZWFyczogZmFHcmluVGVhcnMsXG4gIGZhUGVuVG9TcXVhcmU6IGZhUGVuVG9TcXVhcmUsXG4gIGZhRWRpdDogZmFFZGl0LFxuICBmYUVhcnRoRXVyb3BlOiBmYUVhcnRoRXVyb3BlLFxuICBmYUdsb2JlRXVyb3BlOiBmYUdsb2JlRXVyb3BlLFxuICBmYUZhY2VHcmluQmVhbVN3ZWF0OiBmYUZhY2VHcmluQmVhbVN3ZWF0LFxuICBmYUdyaW5CZWFtU3dlYXQ6IGZhR3JpbkJlYW1Td2VhdCxcbiAgZmFDaXJjbGVIYWxmU3Ryb2tlOiBmYUNpcmNsZUhhbGZTdHJva2UsXG4gIGZhQWRqdXN0OiBmYUFkanVzdCxcbiAgZmFQZXJzb25NaWxpdGFyeVRvUGVyc29uOiBmYVBlcnNvbk1pbGl0YXJ5VG9QZXJzb24sXG4gIGZhVGFibGVDZWxsc0NvbHVtbkxvY2s6IGZhVGFibGVDZWxsc0NvbHVtbkxvY2ssXG4gIGZhVHJ1Y2tGaWVsZFVuOiBmYVRydWNrRmllbGRVbixcbiAgZmFDbG9jazogZmFDbG9jayxcbiAgZmFDbG9ja0ZvdXI6IGZhQ2xvY2tGb3VyLFxuICBmYUJvb2s6IGZhQm9vayxcbiAgZmFGYWNlTGF1Z2hXaW5rOiBmYUZhY2VMYXVnaFdpbmssXG4gIGZhTGF1Z2hXaW5rOiBmYUxhdWdoV2luayxcbiAgZmFDbG91ZE1lYXRiYWxsOiBmYUNsb3VkTWVhdGJhbGwsXG4gIGZhQ2hhcnRBcmVhOiBmYUNoYXJ0QXJlYSxcbiAgZmFBcmVhQ2hhcnQ6IGZhQXJlYUNoYXJ0LFxuICBmYVJ1cGlhaFNpZ246IGZhUnVwaWFoU2lnbixcbiAgZmFUZXh0V2lkdGg6IGZhVGV4dFdpZHRoLFxuICBmYVNhdGVsbGl0ZTogZmFTYXRlbGxpdGUsXG4gIGZhTWFnbmlmeWluZ0dsYXNzTWludXM6IGZhTWFnbmlmeWluZ0dsYXNzTWludXMsXG4gIGZhU2VhcmNoTWludXM6IGZhU2VhcmNoTWludXMsXG4gIGZhUGVvcGxlR3JvdXA6IGZhUGVvcGxlR3JvdXAsXG4gIGZhU3F1YXJlQmluYXJ5OiBmYVNxdWFyZUJpbmFyeSxcbiAgZmFNYXNrc1RoZWF0ZXI6IGZhTWFza3NUaGVhdGVyLFxuICBmYVRoZWF0ZXJNYXNrczogZmFUaGVhdGVyTWFza3MsXG4gIGZhQ2FydFBsdXM6IGZhQ2FydFBsdXMsXG4gIGZhSGFuZHNBc2xJbnRlcnByZXRpbmc6IGZhSGFuZHNBc2xJbnRlcnByZXRpbmcsXG4gIGZhQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmc6IGZhQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmcsXG4gIGZhQXNsSW50ZXJwcmV0aW5nOiBmYUFzbEludGVycHJldGluZyxcbiAgZmFIYW5kc0FtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nOiBmYUhhbmRzQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmcsXG4gIGZhVGFibGVDZWxsc1Jvd1VubG9jazogZmFUYWJsZUNlbGxzUm93VW5sb2NrLFxuICBmYVJvY2tldDogZmFSb2NrZXQsXG4gIGZhU2hyaW1wOiBmYVNocmltcCxcbiAgZmFUZW5nZVNpZ246IGZhVGVuZ2VTaWduLFxuICBmYVRlbmdlOiBmYVRlbmdlLFxuICBmYUhvdXNlQ2hpbW5leU1lZGljYWw6IGZhSG91c2VDaGltbmV5TWVkaWNhbCxcbiAgZmFDbGluaWNNZWRpY2FsOiBmYUNsaW5pY01lZGljYWwsXG4gIGZhVXNlcnNTbGFzaDogZmFVc2Vyc1NsYXNoLFxuICBmYVBhcGVyUGxhbmU6IGZhUGFwZXJQbGFuZSxcbiAgZmFCb29rQXRsYXM6IGZhQm9va0F0bGFzLFxuICBmYUF0bGFzOiBmYUF0bGFzLFxuICBmYVRhYmxlOiBmYVRhYmxlLFxuICBmYUhlYXJ0OiBmYUhlYXJ0LFxuICBmYUNpcmNsZUNoZXZyb25VcDogZmFDaXJjbGVDaGV2cm9uVXAsXG4gIGZhQ2hldnJvbkNpcmNsZVVwOiBmYUNoZXZyb25DaXJjbGVVcCxcbiAgZmFCYXR0ZXJ5SGFsZjogZmFCYXR0ZXJ5SGFsZixcbiAgZmFCYXR0ZXJ5MzogZmFCYXR0ZXJ5MyxcbiAgZmFGb250QXdlc29tZTogZmFGb250QXdlc29tZSxcbiAgZmFGb250QXdlc29tZUZsYWc6IGZhRm9udEF3ZXNvbWVGbGFnLFxuICBmYUZvbnRBd2Vzb21lTG9nb0Z1bGw6IGZhRm9udEF3ZXNvbWVMb2dvRnVsbCxcbiAgZmFIYW5kY3VmZnM6IGZhSGFuZGN1ZmZzLFxuICBmYUhhdENvd2JveVNpZGU6IGZhSGF0Q293Ym95U2lkZSxcbiAgZmFJbmR1c3RyeTogZmFJbmR1c3RyeSxcbiAgZmFMaW5lc0xlYW5pbmc6IGZhTGluZXNMZWFuaW5nLFxuICBmYVBhc3Nwb3J0OiBmYVBhc3Nwb3J0LFxuICBmYUluZmluaXR5OiBmYUluZmluaXR5LFxuICBmYUNsb25lOiBmYUNsb25lLFxuICBmYUZvcndhcmQ6IGZhRm9yd2FyZCxcbiAgZmFNOiBmYU0sXG4gIGZhUm9hZFNwaWtlczogZmFSb2FkU3Bpa2VzLFxuICBmYU1vdW50YWluOiBmYU1vdW50YWluLFxuICBmYUNoZXNzOiBmYUNoZXNzLFxuICBmYVRlbXBlcmF0dXJlVGhyZWVRdWFydGVyczogZmFUZW1wZXJhdHVyZVRocmVlUXVhcnRlcnMsXG4gIGZhVGVtcGVyYXR1cmUzOiBmYVRlbXBlcmF0dXJlMyxcbiAgZmFUaGVybW9tZXRlcjM6IGZhVGhlcm1vbWV0ZXIzLFxuICBmYVRoZXJtb21ldGVyVGhyZWVRdWFydGVyczogZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnMsXG4gIGZhQjogZmFCLFxuICBmYVNoaWVsZFZpcnVzOiBmYVNoaWVsZFZpcnVzLFxuICBmYUxpdGVjb2luU2lnbjogZmFMaXRlY29pblNpZ24sXG4gIGZhRGljZUQ2OiBmYURpY2VENixcbiAgZmFHcmlwTGluZXNWZXJ0aWNhbDogZmFHcmlwTGluZXNWZXJ0aWNhbCxcbiAgZmFHb2xmQmFsbFRlZTogZmFHb2xmQmFsbFRlZSxcbiAgZmFHb2xmQmFsbDogZmFHb2xmQmFsbCxcbiAgZmFIZXhhZ29uOiBmYUhleGFnb24sXG4gIGZhRm9sZGVyT3BlbjogZmFGb2xkZXJPcGVuLFxuICBmYUthYWJhOiBmYUthYWJhLFxuICBmYUhhbmRIb2xkaW5nOiBmYUhhbmRIb2xkaW5nLFxuICBmYVNpbmdsZVF1b3RlUmlnaHQ6IGZhU2luZ2xlUXVvdGVSaWdodCxcbiAgZmFCb3R0bGVEcm9wbGV0OiBmYUJvdHRsZURyb3BsZXQsXG4gIGZhV2luZG93TWluaW1pemU6IGZhV2luZG93TWluaW1pemUsXG4gIGZhQ2hldnJvblJpZ2h0OiBmYUNoZXZyb25SaWdodCxcbiAgZmFFZ2c6IGZhRWdnLFxuICBmYUxhbmRtYXJrRG9tZTogZmFMYW5kbWFya0RvbWUsXG4gIGZhTGFuZG1hcmtBbHQ6IGZhTGFuZG1hcmtBbHQsXG4gIGZhV29ybTogZmFXb3JtLFxuICBmYVVzZXJJbmp1cmVkOiBmYVVzZXJJbmp1cmVkLFxuICBmYVN0cmlrZXRocm91Z2g6IGZhU3RyaWtldGhyb3VnaCxcbiAgZmFCbG9nOiBmYUJsb2csXG4gIGZhU3RvcHdhdGNoMjA6IGZhU3RvcHdhdGNoMjAsXG4gIGZhVHJ1Y2tQaWNrdXA6IGZhVHJ1Y2tQaWNrdXAsXG4gIGZhU2VlZGxpbmc6IGZhU2VlZGxpbmcsXG4gIGZhU3Byb3V0OiBmYVNwcm91dCxcbiAgZmFUcmFuc2dlbmRlcjogZmFUcmFuc2dlbmRlcixcbiAgZmFUcmFuc2dlbmRlckFsdDogZmFUcmFuc2dlbmRlckFsdCxcbiAgZmFTdGFySGFsZjogZmFTdGFySGFsZixcbiAgZmFQaG90b0ZpbG06IGZhUGhvdG9GaWxtLFxuICBmYVBob3RvVmlkZW86IGZhUGhvdG9WaWRlbyxcbiAgZmFQdW1wTWVkaWNhbDogZmFQdW1wTWVkaWNhbCxcbiAgZmFGaXJlOiBmYUZpcmUsXG4gIGZhTWFnbmlmeWluZ0dsYXNzUGx1czogZmFNYWduaWZ5aW5nR2xhc3NQbHVzLFxuICBmYVNlYXJjaFBsdXM6IGZhU2VhcmNoUGx1cyxcbiAgZmFGbGFzazogZmFGbGFzayxcbiAgZmFBbGlnblJpZ2h0OiBmYUFsaWduUmlnaHQsXG4gIGZhQ2FibGVDYXI6IGZhQ2FibGVDYXIsXG4gIGZhVHJhbTogZmFUcmFtLFxuICBmYUtpdE1lZGljYWw6IGZhS2l0TWVkaWNhbCxcbiAgZmFGaXJzdEFpZDogZmFGaXJzdEFpZCxcbiAgZmFHcmlwTGluZXM6IGZhR3JpcExpbmVzLFxuICBmYUJ1cmdlcjogZmFCdXJnZXIsXG4gIGZhSGFtYnVyZ2VyOiBmYUhhbWJ1cmdlcixcbiAgZmFTbm93bWFuOiBmYVNub3dtYW4sXG4gIGZhSG90ZWw6IGZhSG90ZWwsXG4gIGZhUHJpbnQ6IGZhUHJpbnQsXG4gIGZhVm9sbGV5YmFsbDogZmFWb2xsZXliYWxsLFxuICBmYVZvbGxleWJhbGxCYWxsOiBmYVZvbGxleWJhbGxCYWxsLFxuICBmYVRyYWZmaWNMaWdodDogZmFUcmFmZmljTGlnaHQsXG4gIGZhUGxhbmVDaXJjbGVDaGVjazogZmFQbGFuZUNpcmNsZUNoZWNrLFxuICBmYVVzZXJzOiBmYVVzZXJzLFxuICBmYUNlcnRpZmljYXRlOiBmYUNlcnRpZmljYXRlLFxuICBmYUFsYXJtQ2xvY2s6IGZhQWxhcm1DbG9jayxcbiAgZmFIZWxpY29wdGVyU3ltYm9sOiBmYUhlbGljb3B0ZXJTeW1ib2wsXG4gIGZhSG91c2VDaGltbmV5Q3JhY2s6IGZhSG91c2VDaGltbmV5Q3JhY2ssXG4gIGZhSG91c2VEYW1hZ2U6IGZhSG91c2VEYW1hZ2UsXG4gIGZhUGVyc29uTWlsaXRhcnlQb2ludGluZzogZmFQZXJzb25NaWxpdGFyeVBvaW50aW5nLFxuICBmYURhdGFiYXNlOiBmYURhdGFiYXNlLFxuICBmYU5ld3NwYXBlcjogZmFOZXdzcGFwZXIsXG4gIGZhQ2xvdWRSYWluOiBmYUNsb3VkUmFpbixcbiAgZmFNYXhpbWl6ZTogZmFNYXhpbWl6ZSxcbiAgZmFFeHBhbmRBcnJvd3NBbHQ6IGZhRXhwYW5kQXJyb3dzQWx0LFxuICBmYUxvY2F0aW9uQXJyb3c6IGZhTG9jYXRpb25BcnJvdyxcbiAgZmFDaXR5OiBmYUNpdHksXG4gIGZhWFJheTogZmFYUmF5LFxuICBmYVVtYnJlbGxhQmVhY2g6IGZhVW1icmVsbGFCZWFjaCxcbiAgZmFBcnJvd1JpZ2h0VG9CcmFja2V0OiBmYUFycm93UmlnaHRUb0JyYWNrZXQsXG4gIGZhU2lnbkluOiBmYVNpZ25JbixcbiAgZmFIZWFkc2V0OiBmYUhlYWRzZXQsXG4gIGZhU3Bsb3RjaDogZmFTcGxvdGNoLFxuICBmYVVwTG9uZzogZmFVcExvbmcsXG4gIGZhTG9uZ0Fycm93QWx0VXA6IGZhTG9uZ0Fycm93QWx0VXAsXG4gIGZhSGV4YWdvbk5vZGVzOiBmYUhleGFnb25Ob2RlcyxcbiAgZmFIb3NwaXRhbDogZmFIb3NwaXRhbCxcbiAgZmFIb3NwaXRhbEFsdDogZmFIb3NwaXRhbEFsdCxcbiAgZmFIb3NwaXRhbFdpZGU6IGZhSG9zcGl0YWxXaWRlLFxuICBmYVBlcnNvbkhhcmFzc2luZzogZmFQZXJzb25IYXJhc3NpbmcsXG4gIGZhTW9uZXlCaWxsVHJlbmRVcDogZmFNb25leUJpbGxUcmVuZFVwLFxuICBmYVBlblJ1bGVyOiBmYVBlblJ1bGVyLFxuICBmYVBlbmNpbFJ1bGVyOiBmYVBlbmNpbFJ1bGVyLFxuICBmYVJlcGVhdDogZmFSZXBlYXQsXG4gIGZhQm9uZTogZmFCb25lLFxuICBmYUZpcmVGbGFtZUN1cnZlZDogZmFGaXJlRmxhbWVDdXJ2ZWQsXG4gIGZhRmlyZUFsdDogZmFGaXJlQWx0LFxuICBmYUJ1c1NpbXBsZTogZmFCdXNTaW1wbGUsXG4gIGZhQnVzQWx0OiBmYUJ1c0FsdCxcbiAgZmFWZW51c01hcnM6IGZhVmVudXNNYXJzLFxuICBmYUJsZW5kZXI6IGZhQmxlbmRlcixcbiAgZmFVOiBmYVUsXG4gIGZhU2hhcmU6IGZhU2hhcmUsXG4gIGZhTWFpbEZvcndhcmQ6IGZhTWFpbEZvcndhcmQsXG4gIGZhUGhvbmVGbGlwOiBmYVBob25lRmxpcCxcbiAgZmFQaG9uZUFsdDogZmFQaG9uZUFsdCxcbiAgZmFUb2lsZXRQb3J0YWJsZTogZmFUb2lsZXRQb3J0YWJsZSxcbiAgZmFQZXJzb25QcmVnbmFudDogZmFQZXJzb25QcmVnbmFudCxcbiAgZmFMZXNzVGhhbjogZmFMZXNzVGhhbixcbiAgZmFTdXBlcnNjcmlwdDogZmFTdXBlcnNjcmlwdCxcbiAgZmFDaXJjbGVTdG9wOiBmYUNpcmNsZVN0b3AsXG4gIGZhU3RvcENpcmNsZTogZmFTdG9wQ2lyY2xlLFxuICBmYUFycm93c1VwRG93bjogZmFBcnJvd3NVcERvd24sXG4gIGZhQXJyb3dzVjogZmFBcnJvd3NWLFxuICBmYVBvb1N0b3JtOiBmYVBvb1N0b3JtLFxuICBmYVBvb0JvbHQ6IGZhUG9vQm9sdCxcbiAgZmFWaWRlb1NsYXNoOiBmYVZpZGVvU2xhc2gsXG4gIGZhU3F1YXJlWG1hcms6IGZhU3F1YXJlWG1hcmssXG4gIGZhVGltZXNTcXVhcmU6IGZhVGltZXNTcXVhcmUsXG4gIGZhWG1hcmtTcXVhcmU6IGZhWG1hcmtTcXVhcmUsXG4gIGZhSGFuZEhvbGRpbmdEcm9wbGV0OiBmYUhhbmRIb2xkaW5nRHJvcGxldCxcbiAgZmFIYW5kSG9sZGluZ1dhdGVyOiBmYUhhbmRIb2xkaW5nV2F0ZXIsXG4gIGZhV29uU2lnbjogZmFXb25TaWduLFxuICBmYUtydzogZmFLcncsXG4gIGZhV29uOiBmYVdvbixcbiAgZmFPYmplY3RVbmdyb3VwOiBmYU9iamVjdFVuZ3JvdXAsXG4gIGZhQ29tbWVudDogZmFDb21tZW50LFxuICBmYUhpbGxBdmFsYW5jaGU6IGZhSGlsbEF2YWxhbmNoZSxcbiAgZmFBcnJvd3NUb0V5ZTogZmFBcnJvd3NUb0V5ZSxcbiAgZmFTbm93cGxvdzogZmFTbm93cGxvdyxcbiAgZmFDaGFydEdhbnR0OiBmYUNoYXJ0R2FudHQsXG4gIGZhVmlkZW86IGZhVmlkZW8sXG4gIGZhVmlkZW9DYW1lcmE6IGZhVmlkZW9DYW1lcmEsXG4gIGZhQ2hlc3NQYXduOiBmYUNoZXNzUGF3bixcbiAgZmFTeW5hZ29ndWU6IGZhU3luYWdvZ3VlLFxuICBmYUJ1aWxkaW5nQ2lyY2xlQ2hlY2s6IGZhQnVpbGRpbmdDaXJjbGVDaGVjayxcbiAgZmFDYWxlbmRhclBsdXM6IGZhQ2FsZW5kYXJQbHVzLFxuICBmYVdoZWVsY2hhaXJNb3ZlOiBmYVdoZWVsY2hhaXJNb3ZlLFxuICBmYVdoZWVsY2hhaXJBbHQ6IGZhV2hlZWxjaGFpckFsdCxcbiAgZmFVc2VyU2hpZWxkOiBmYVVzZXJTaGllbGQsXG4gIGZhQm9sZDogZmFCb2xkLFxuICBmYUhlYXJ0UHVsc2U6IGZhSGVhcnRQdWxzZSxcbiAgZmFIZWFydGJlYXQ6IGZhSGVhcnRiZWF0LFxuICBmYVNxdWFyZVJvb3RWYXJpYWJsZTogZmFTcXVhcmVSb290VmFyaWFibGUsXG4gIGZhU3F1YXJlUm9vdEFsdDogZmFTcXVhcmVSb290QWx0LFxuICBmYUhhbmRzQnViYmxlczogZmFIYW5kc0J1YmJsZXMsXG4gIGZhSGFuZHNXYXNoOiBmYUhhbmRzV2FzaCxcbiAgZmFNYXJrZXI6IGZhTWFya2VyLFxuICBmYUNsaXBib2FyZDogZmFDbGlwYm9hcmQsXG4gIGZhUGxhY2VPZldvcnNoaXA6IGZhUGxhY2VPZldvcnNoaXAsXG4gIGZhQ2FubmFiaXM6IGZhQ2FubmFiaXMsXG4gIGZhUGVvcGxlUm9vZjogZmFQZW9wbGVSb29mLFxuICBmYURpc2Vhc2U6IGZhRGlzZWFzZSxcbiAgZmFCb29rQmlibGU6IGZhQm9va0JpYmxlLFxuICBmYUJpYmxlOiBmYUJpYmxlLFxuICBmYUNoZXNzQm9hcmQ6IGZhQ2hlc3NCb2FyZCxcbiAgZmFNYXJzOiBmYU1hcnMsXG4gIGZhTGFwdG9wOiBmYUxhcHRvcCxcbiAgZmFVc2VyWG1hcms6IGZhVXNlclhtYXJrLFxuICBmYVVzZXJUaW1lczogZmFVc2VyVGltZXMsXG4gIGZhRmxhZ1VzYTogZmFGbGFnVXNhLFxuICBmYUhhbmRNaWRkbGVGaW5nZXI6IGZhSGFuZE1pZGRsZUZpbmdlcixcbiAgZmFNb3J0YXJQZXN0bGU6IGZhTW9ydGFyUGVzdGxlLFxuICBmYUhlYWRTaWRlQ291Z2g6IGZhSGVhZFNpZGVDb3VnaCxcbiAgZmFQbGFuZUxvY2s6IGZhUGxhbmVMb2NrLFxuICBmYUJhdHRlcnlUaHJlZVF1YXJ0ZXJzOiBmYUJhdHRlcnlUaHJlZVF1YXJ0ZXJzLFxuICBmYUJhdHRlcnk0OiBmYUJhdHRlcnk0LFxuICBmYUZyYW5jU2lnbjogZmFGcmFuY1NpZ24sXG4gIGZhRmlsdGVyQ2lyY2xlRG9sbGFyOiBmYUZpbHRlckNpcmNsZURvbGxhcixcbiAgZmFGdW5uZWxEb2xsYXI6IGZhRnVubmVsRG9sbGFyLFxuICBmYUNoZWVzZTogZmFDaGVlc2UsXG4gIGZhQ2lyY2xlSDogZmFDaXJjbGVILFxuICBmYUhvc3BpdGFsU3ltYm9sOiBmYUhvc3BpdGFsU3ltYm9sLFxuICBmYVNjaG9vbDogZmFTY2hvb2wsXG4gIGZhRGljZUZpdmU6IGZhRGljZUZpdmUsXG4gIGZhVG9ybmFkbzogZmFUb3JuYWRvLFxuICBmYUpldEZpZ2h0ZXI6IGZhSmV0RmlnaHRlcixcbiAgZmFGaWdodGVySmV0OiBmYUZpZ2h0ZXJKZXQsXG4gIGZhVGh1bWJzRG93bjogZmFUaHVtYnNEb3duLFxuICBmYUJyb29tOiBmYUJyb29tLFxuICBmYUZpbGVJbXBvcnQ6IGZhRmlsZUltcG9ydCxcbiAgZmFBcnJvd1JpZ2h0VG9GaWxlOiBmYUFycm93UmlnaHRUb0ZpbGUsXG4gIGZhVXRlbnNpbHM6IGZhVXRlbnNpbHMsXG4gIGZhQ3V0bGVyeTogZmFDdXRsZXJ5LFxuICBmYUlkQmFkZ2U6IGZhSWRCYWRnZSxcbiAgZmFTcGlkZXI6IGZhU3BpZGVyLFxuICBmYU1vYmlsZVJldHJvOiBmYU1vYmlsZVJldHJvLFxuICBmYVNpZ25zUG9zdDogZmFTaWduc1Bvc3QsXG4gIGZhTWFwU2lnbnM6IGZhTWFwU2lnbnMsXG4gIGZhR3JvdXBBcnJvd3NSb3RhdGU6IGZhR3JvdXBBcnJvd3NSb3RhdGUsXG4gIGZhQXJyb3dzU3BsaXRVcEFuZExlZnQ6IGZhQXJyb3dzU3BsaXRVcEFuZExlZnQsXG4gIGZhRmlsbERyaXA6IGZhRmlsbERyaXAsXG4gIGZhU2hpZWxkSGVhcnQ6IGZhU2hpZWxkSGVhcnQsXG4gIGZhUGVyc29uU2tpaW5nTm9yZGljOiBmYVBlcnNvblNraWluZ05vcmRpYyxcbiAgZmFTa2lpbmdOb3JkaWM6IGZhU2tpaW5nTm9yZGljLFxuICBmYVNxdWFyZUNoZWNrOiBmYVNxdWFyZUNoZWNrLFxuICBmYUNoZWNrU3F1YXJlOiBmYUNoZWNrU3F1YXJlLFxuICBmYUJhdGg6IGZhQmF0aCxcbiAgZmFCYXRodHViOiBmYUJhdGh0dWIsXG4gIGZhQ2hlc3NCaXNob3A6IGZhQ2hlc3NCaXNob3AsXG4gIGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbDogZmFQcmVzY3JpcHRpb25Cb3R0bGVNZWRpY2FsLFxuICBmYVByZXNjcmlwdGlvbkJvdHRsZUFsdDogZmFQcmVzY3JpcHRpb25Cb3R0bGVBbHQsXG4gIGZhRHJhd1BvbHlnb246IGZhRHJhd1BvbHlnb24sXG4gIGZhVmVjdG9yUG9seWdvbjogZmFWZWN0b3JQb2x5Z29uLFxuICBmYUlDdXJzb3I6IGZhSUN1cnNvcixcbiAgZmFIZWFydENpcmNsZVBsdXM6IGZhSGVhcnRDaXJjbGVQbHVzLFxuICBmYVNoaWVsZERvZzogZmFTaGllbGREb2csXG4gIGZhR3JlYXRlclRoYW5FcXVhbDogZmFHcmVhdGVyVGhhbkVxdWFsLFxuICBmYUVudmVsb3BlT3BlbjogZmFFbnZlbG9wZU9wZW4sXG4gIGZhTW91bmQ6IGZhTW91bmQsXG4gIGZhVm9pY2VtYWlsOiBmYVZvaWNlbWFpbCxcbiAgZmFWZXN0OiBmYVZlc3QsXG4gIGZhQXVkaW9EZXNjcmlwdGlvbjogZmFBdWRpb0Rlc2NyaXB0aW9uLFxuICBmYVc6IGZhVyxcbiAgZmFFeWVEcm9wcGVyOiBmYUV5ZURyb3BwZXIsXG4gIGZhRXllRHJvcHBlckVtcHR5OiBmYUV5ZURyb3BwZXJFbXB0eSxcbiAgZmFFeWVkcm9wcGVyOiBmYUV5ZWRyb3BwZXIsXG4gIGZhQ2lyY2xlWG1hcms6IGZhQ2lyY2xlWG1hcmssXG4gIGZhVGltZXNDaXJjbGU6IGZhVGltZXNDaXJjbGUsXG4gIGZhWG1hcmtDaXJjbGU6IGZhWG1hcmtDaXJjbGUsXG4gIGZhVHJhaWxlcjogZmFUcmFpbGVyLFxuICBmYVR1cmtpc2hMaXJhU2lnbjogZmFUdXJraXNoTGlyYVNpZ24sXG4gIGZhVHJ5OiBmYVRyeSxcbiAgZmFUdXJraXNoTGlyYTogZmFUdXJraXNoTGlyYSxcbiAgZmFWb2xjYW5vOiBmYVZvbGNhbm8sXG4gIGZhV2FuZFNwYXJrbGVzOiBmYVdhbmRTcGFya2xlcyxcbiAgZmFNaWNyb3Bob25lOiBmYU1pY3JvcGhvbmUsXG4gIGZhQ3Jvd246IGZhQ3Jvd24sXG4gIGZhVGVudEFycm93VHVybkxlZnQ6IGZhVGVudEFycm93VHVybkxlZnQsXG4gIGZhVHJ1Y2tGYXN0OiBmYVRydWNrRmFzdCxcbiAgZmFTaGlwcGluZ0Zhc3Q6IGZhU2hpcHBpbmdGYXN0LFxuICBmYVVzZXJQZW46IGZhVXNlclBlbixcbiAgZmFVc2VyRWRpdDogZmFVc2VyRWRpdCxcbiAgZmFVc2VyQ2xvY2s6IGZhVXNlckNsb2NrLFxuICBmYVNob3dlcjogZmFTaG93ZXIsXG4gIGZhU3F1YXJlQ2FyZXRVcDogZmFTcXVhcmVDYXJldFVwLFxuICBmYUNhcmV0U3F1YXJlVXA6IGZhQ2FyZXRTcXVhcmVVcCxcbiAgZmFNYXBMb2NhdGlvbjogZmFNYXBMb2NhdGlvbixcbiAgZmFNYXBNYXJrZWQ6IGZhTWFwTWFya2VkLFxuICBmYVBlbkZhbmN5OiBmYVBlbkZhbmN5LFxuICBmYUV1cm9TaWduOiBmYUV1cm9TaWduLFxuICBmYUV1cjogZmFFdXIsXG4gIGZhRXVybzogZmFFdXJvLFxuICBmYUhvdXNlQ2lyY2xlWG1hcms6IGZhSG91c2VDaXJjbGVYbWFyayxcbiAgZmFMaXJhU2lnbjogZmFMaXJhU2lnbixcbiAgZmFZZW5TaWduOiBmYVllblNpZ24sXG4gIGZhQ255OiBmYUNueSxcbiAgZmFKcHk6IGZhSnB5LFxuICBmYVJtYjogZmFSbWIsXG4gIGZhWWVuOiBmYVllbixcbiAgZmFCb3hPcGVuOiBmYUJveE9wZW4sXG4gIGZhVHJ1Y2tGaWVsZDogZmFUcnVja0ZpZWxkLFxuICBmYUxvY2F0aW9uUGluTG9jazogZmFMb2NhdGlvblBpbkxvY2ssXG4gIGZhUGVyc29uUHJheWluZzogZmFQZXJzb25QcmF5aW5nLFxuICBmYVByYXk6IGZhUHJheSxcbiAgZmFDbGlwYm9hcmRMaXN0OiBmYUNsaXBib2FyZExpc3QsXG4gIGZhU2Fja0RvbGxhcjogZmFTYWNrRG9sbGFyLFxuICBmYU1vdW50YWluU3VuOiBmYU1vdW50YWluU3VuLFxuICBmYUFycm93VXBXaWRlU2hvcnQ6IGZhQXJyb3dVcFdpZGVTaG9ydCxcbiAgZmFTb3J0QW1vdW50VXA6IGZhU29ydEFtb3VudFVwLFxuICBmYVVzZXJzTGluZTogZmFVc2Vyc0xpbmUsXG4gIGZhU3Rhck9mRGF2aWQ6IGZhU3Rhck9mRGF2aWQsXG4gIGZhTm90ZXNNZWRpY2FsOiBmYU5vdGVzTWVkaWNhbCxcbiAgZmFBdXN0cmFsU2lnbjogZmFBdXN0cmFsU2lnbixcbiAgZmFDbGlwYm9hcmRVc2VyOiBmYUNsaXBib2FyZFVzZXIsXG4gIGZhRmlsZUltYWdlOiBmYUZpbGVJbWFnZSxcbiAgZmFTcXVhcmVDYXJldFJpZ2h0OiBmYVNxdWFyZUNhcmV0UmlnaHQsXG4gIGZhQ2FyZXRTcXVhcmVSaWdodDogZmFDYXJldFNxdWFyZVJpZ2h0LFxuICBmYVZpYWw6IGZhVmlhbCxcbiAgZmFIZWxpY29wdGVyOiBmYUhlbGljb3B0ZXIsXG4gIGZhTWl0dGVuOiBmYU1pdHRlbixcbiAgZmFHYXNQdW1wOiBmYUdhc1B1bXAsXG4gIGZhRW52ZWxvcGVDaXJjbGVDaGVjazogZmFFbnZlbG9wZUNpcmNsZUNoZWNrLFxuICBmYVBlcnNvblNrYXRpbmc6IGZhUGVyc29uU2thdGluZyxcbiAgZmFTa2F0aW5nOiBmYVNrYXRpbmcsXG4gIGZhU3VuOiBmYVN1bixcbiAgZmFCYXNlYmFsbDogZmFCYXNlYmFsbCxcbiAgZmFCYXNlYmFsbEJhbGw6IGZhQmFzZWJhbGxCYWxsLFxuICBmYUltYWdlOiBmYUltYWdlLFxuICBmYU5vdGRlZjogZmFOb3RkZWYsXG4gIGZhQmFza2V0YmFsbDogZmFCYXNrZXRiYWxsLFxuICBmYUJhc2tldGJhbGxCYWxsOiBmYUJhc2tldGJhbGxCYWxsLFxuICBmYVBlbmNpbDogZmFQZW5jaWwsXG4gIGZhUGVuY2lsQWx0OiBmYVBlbmNpbEFsdCxcbiAgZmFQZXJzb25XYWxraW5nQXJyb3dMb29wTGVmdDogZmFQZXJzb25XYWxraW5nQXJyb3dMb29wTGVmdCxcbiAgZmFEaWNlU2l4OiBmYURpY2VTaXgsXG4gIGZhQW5nbGVzRG93bjogZmFBbmdsZXNEb3duLFxuICBmYUFuZ2xlRG91YmxlRG93bjogZmFBbmdsZURvdWJsZURvd24sXG4gIGZhU3lyaW5nZTogZmFTeXJpbmdlLFxuICBmYVdoZWF0QXduOiBmYVdoZWF0QXduLFxuICBmYVdoZWF0QWx0OiBmYVdoZWF0QWx0LFxuICBmYVBsYW5lVXA6IGZhUGxhbmVVcCxcbiAgZmFBbGlnbkNlbnRlcjogZmFBbGlnbkNlbnRlcixcbiAgZmFIb2NrZXlQdWNrOiBmYUhvY2tleVB1Y2ssXG4gIGZhQ2lyY2xlQXJyb3dMZWZ0OiBmYUNpcmNsZUFycm93TGVmdCxcbiAgZmFBcnJvd0NpcmNsZUxlZnQ6IGZhQXJyb3dDaXJjbGVMZWZ0LFxuICBmYVBsdWdDaXJjbGVCb2x0OiBmYVBsdWdDaXJjbGVCb2x0LFxuICBmYVJlc3Ryb29tOiBmYVJlc3Ryb29tLFxuICBmYUFuY2hvckxvY2s6IGZhQW5jaG9yTG9jayxcbiAgZmFUaW1lbGluZTogZmFUaW1lbGluZSxcbiAgZmFMaWdodGJ1bGI6IGZhTGlnaHRidWxiLFxuICBmYUNpcmNsZUFycm93UmlnaHQ6IGZhQ2lyY2xlQXJyb3dSaWdodCxcbiAgZmFBcnJvd0NpcmNsZVJpZ2h0OiBmYUFycm93Q2lyY2xlUmlnaHQsXG4gIGZhTWFyc0FuZFZlbnVzOiBmYU1hcnNBbmRWZW51cyxcbiAgZmFOZXR3b3JrV2lyZWQ6IGZhTmV0d29ya1dpcmVkLFxuICBmYUJ1aWxkaW5nU2hpZWxkOiBmYUJ1aWxkaW5nU2hpZWxkLFxuICBmYUNvZGU6IGZhQ29kZSxcbiAgZmFGZWF0aGVyUG9pbnRlZDogZmFGZWF0aGVyUG9pbnRlZCxcbiAgZmFGZWF0aGVyQWx0OiBmYUZlYXRoZXJBbHQsXG4gIGZhRmlsZUNpcmNsZVF1ZXN0aW9uOiBmYUZpbGVDaXJjbGVRdWVzdGlvbixcbiAgZmFTaWduYXR1cmU6IGZhU2lnbmF0dXJlLFxuICBmYUVhcnRoQW1lcmljYXM6IGZhRWFydGhBbWVyaWNhcyxcbiAgZmFFYXJ0aDogZmFFYXJ0aCxcbiAgZmFFYXJ0aEFtZXJpY2E6IGZhRWFydGhBbWVyaWNhLFxuICBmYUdsb2JlQW1lcmljYXM6IGZhR2xvYmVBbWVyaWNhcyxcbiAgZmFDYXJyb3Q6IGZhQ2Fycm90LFxuICBmYVRlbXBlcmF0dXJlRnVsbDogZmFUZW1wZXJhdHVyZUZ1bGwsXG4gIGZhVGVtcGVyYXR1cmU0OiBmYVRlbXBlcmF0dXJlNCxcbiAgZmFUaGVybW9tZXRlcjQ6IGZhVGhlcm1vbWV0ZXI0LFxuICBmYVRoZXJtb21ldGVyRnVsbDogZmFUaGVybW9tZXRlckZ1bGwsXG4gIGZhVGFibGVDZWxsc1Jvd0xvY2s6IGZhVGFibGVDZWxsc1Jvd0xvY2ssXG4gIGZhQm9sdExpZ2h0bmluZzogZmFCb2x0TGlnaHRuaW5nLFxuICBmYUNsb3VkU2hvd2Vyc1dhdGVyOiBmYUNsb3VkU2hvd2Vyc1dhdGVyLFxuICBmYUFycm93VXBMb25nOiBmYUFycm93VXBMb25nLFxuICBmYUxvbmdBcnJvd1VwOiBmYUxvbmdBcnJvd1VwLFxuICBmYUFkZHJlc3NDYXJkOiBmYUFkZHJlc3NDYXJkLFxuICBmYUNvbnRhY3RDYXJkOiBmYUNvbnRhY3RDYXJkLFxuICBmYVZjYXJkOiBmYVZjYXJkLFxuICBmYUFuZ2xlUmlnaHQ6IGZhQW5nbGVSaWdodCxcbiAgZmFGYWNlTWVoOiBmYUZhY2VNZWgsXG4gIGZhTWVoOiBmYU1laCxcbiAgZmFBcnJvd1VwRnJvbUdyb3VuZFdhdGVyOiBmYUFycm93VXBGcm9tR3JvdW5kV2F0ZXIsXG4gIGZhTWFwOiBmYU1hcCxcbiAgZmFVc2VyUGx1czogZmFVc2VyUGx1cyxcbiAgZmFWZW51czogZmFWZW51cyxcbiAgZmFEaWFncmFtU3VjY2Vzc29yOiBmYURpYWdyYW1TdWNjZXNzb3IsXG4gIGZhSGVhZFNpZGVDb3VnaFNsYXNoOiBmYUhlYWRTaWRlQ291Z2hTbGFzaCxcbiAgZmFEaWFncmFtUHJvamVjdDogZmFEaWFncmFtUHJvamVjdCxcbiAgZmFQcm9qZWN0RGlhZ3JhbTogZmFQcm9qZWN0RGlhZ3JhbSxcbiAgZmFUZXJtaW5hbDogZmFUZXJtaW5hbCxcbiAgZmFIb3VzZUZpcmU6IGZhSG91c2VGaXJlLFxuICBmYU1hc2s6IGZhTWFzayxcbiAgZmFIdXJyaWNhbmU6IGZhSHVycmljYW5lLFxuICBmYUVhcnRoQWZyaWNhOiBmYUVhcnRoQWZyaWNhLFxuICBmYUdsb2JlQWZyaWNhOiBmYUdsb2JlQWZyaWNhLFxuICBmYVRodW1idGFjazogZmFUaHVtYnRhY2ssXG4gIGZhVGh1bWJUYWNrOiBmYVRodW1iVGFjayxcbiAgZmFIYW5kUG9pbnREb3duOiBmYUhhbmRQb2ludERvd24sXG4gIGZhRmFjZU1laEJsYW5rOiBmYUZhY2VNZWhCbGFuayxcbiAgZmFNZWhCbGFuazogZmFNZWhCbGFuayxcbiAgZmFUZW1wZXJhdHVyZUVtcHR5OiBmYVRlbXBlcmF0dXJlRW1wdHksXG4gIGZhVGVtcGVyYXR1cmUwOiBmYVRlbXBlcmF0dXJlMCxcbiAgZmFUaGVybW9tZXRlcjA6IGZhVGhlcm1vbWV0ZXIwLFxuICBmYVRoZXJtb21ldGVyRW1wdHk6IGZhVGhlcm1vbWV0ZXJFbXB0eSxcbiAgZmFCb3JkZXJOb25lOiBmYUJvcmRlck5vbmUsXG4gIGZhSGlnaGxpZ2h0ZXI6IGZhSGlnaGxpZ2h0ZXIsXG4gIGZhTW9uZXlCaWxsV2F2ZTogZmFNb25leUJpbGxXYXZlLFxuICBmYVRvaWxldFBhcGVyU2xhc2g6IGZhVG9pbGV0UGFwZXJTbGFzaCxcbiAgZmFGaWxlU2hpZWxkOiBmYUZpbGVTaGllbGQsXG4gIGZhVGV4dEhlaWdodDogZmFUZXh0SGVpZ2h0LFxuICBmYUZhY2VHcmluVG9uZ3VlOiBmYUZhY2VHcmluVG9uZ3VlLFxuICBmYUdyaW5Ub25ndWU6IGZhR3JpblRvbmd1ZSxcbiAgZmFGaWxlU2lnbmF0dXJlOiBmYUZpbGVTaWduYXR1cmUsXG4gIGZhQnVpbGRpbmdXaGVhdDogZmFCdWlsZGluZ1doZWF0LFxuICBmYVBsdWdDaXJjbGVNaW51czogZmFQbHVnQ2lyY2xlTWludXMsXG4gIGZhRnV0Ym9sOiBmYUZ1dGJvbCxcbiAgZmFGdXRib2xCYWxsOiBmYUZ1dGJvbEJhbGwsXG4gIGZhU29jY2VyQmFsbDogZmFTb2NjZXJCYWxsLFxuICBmYUNpcmNsZVBsdXM6IGZhQ2lyY2xlUGx1cyxcbiAgZmFQbHVzQ2lyY2xlOiBmYVBsdXNDaXJjbGUsXG4gIGZhQnJhemlsaWFuUmVhbFNpZ246IGZhQnJhemlsaWFuUmVhbFNpZ24sXG4gIGZhU3RhckFuZENyZXNjZW50OiBmYVN0YXJBbmRDcmVzY2VudCxcbiAgZmFGYWNlU3VycHJpc2U6IGZhRmFjZVN1cnByaXNlLFxuICBmYVN1cnByaXNlOiBmYVN1cnByaXNlLFxuICBmYUhvc3BpdGFsVXNlcjogZmFIb3NwaXRhbFVzZXIsXG4gIGZhQXJyb3dEb3duVXBMb2NrOiBmYUFycm93RG93blVwTG9jayxcbiAgZmFGb2xkZXI6IGZhRm9sZGVyLFxuICBmYUZvbGRlckJsYW5rOiBmYUZvbGRlckJsYW5rLFxuICBmYUhvbGx5QmVycnk6IGZhSG9sbHlCZXJyeSxcbiAgZmFWZW51c0RvdWJsZTogZmFWZW51c0RvdWJsZSxcbiAgZmFDbGlwYm9hcmRRdWVzdGlvbjogZmFDbGlwYm9hcmRRdWVzdGlvbixcbiAgZmFIb3Rkb2c6IGZhSG90ZG9nLFxuICBmYUFycm93VXBGcm9tQnJhY2tldDogZmFBcnJvd1VwRnJvbUJyYWNrZXQsXG4gIGZhTWljcm9zY29wZTogZmFNaWNyb3Njb3BlLFxuICBmYUNsb3VkOiBmYUNsb3VkLFxuICBmYUJhc2ViYWxsQmF0QmFsbDogZmFCYXNlYmFsbEJhdEJhbGwsXG4gIGZhQ2FyUmVhcjogZmFDYXJSZWFyLFxuICBmYUNhckFsdDogZmFDYXJBbHQsXG4gIGZhVGh1bWJ0YWNrU2xhc2g6IGZhVGh1bWJ0YWNrU2xhc2gsXG4gIGZhVGh1bWJUYWNrU2xhc2g6IGZhVGh1bWJUYWNrU2xhc2gsXG4gIGZhUGx1c01pbnVzOiBmYVBsdXNNaW51cyxcbiAgZmFIb3VzZUNpcmNsZUNoZWNrOiBmYUhvdXNlQ2lyY2xlQ2hlY2ssXG4gIGZhQ2FsZW5kYXJEYXk6IGZhQ2FsZW5kYXJEYXksXG4gIGZhQ2lyY2xlOiBmYUNpcmNsZSxcbiAgZmFNb2JpbGVWaWJyYXRlOiBmYU1vYmlsZVZpYnJhdGUsXG4gIGZhRmFjZUdyaW5TcXVpbnQ6IGZhRmFjZUdyaW5TcXVpbnQsXG4gIGZhR3JpblNxdWludDogZmFHcmluU3F1aW50LFxuICBmYVVzZXJzQmV0d2VlbkxpbmVzOiBmYVVzZXJzQmV0d2VlbkxpbmVzLFxuICBmYUhvdXNlTWVkaWNhbENpcmNsZVhtYXJrOiBmYUhvdXNlTWVkaWNhbENpcmNsZVhtYXJrLFxuICBmYVRhYmxlTGlzdDogZmFUYWJsZUxpc3QsXG4gIGZhVGhMaXN0OiBmYVRoTGlzdCxcbiAgZmFGbGFza1ZpYWw6IGZhRmxhc2tWaWFsLFxuICBmYUNpcmNsZUV4Y2xhbWF0aW9uOiBmYUNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUV4Y2xhbWF0aW9uQ2lyY2xlOiBmYUV4Y2xhbWF0aW9uQ2lyY2xlLFxuICBmYVRheGk6IGZhVGF4aSxcbiAgZmFDYWI6IGZhQ2FiLFxuICBmYVRleHRTbGFzaDogZmFUZXh0U2xhc2gsXG4gIGZhUmVtb3ZlRm9ybWF0OiBmYVJlbW92ZUZvcm1hdCxcbiAgZmFQZW9wbGVQdWxsaW5nOiBmYVBlb3BsZVB1bGxpbmcsXG4gIGZhQmFja3dhcmQ6IGZhQmFja3dhcmQsXG4gIGZhQ2FyQnVyc3Q6IGZhQ2FyQnVyc3QsXG4gIGZhQ2FyQ3Jhc2g6IGZhQ2FyQ3Jhc2gsXG4gIGZhTGluazogZmFMaW5rLFxuICBmYUNoYWluOiBmYUNoYWluLFxuICBmYUJhY2t3YXJkU3RlcDogZmFCYWNrd2FyZFN0ZXAsXG4gIGZhU3RlcEJhY2t3YXJkOiBmYVN0ZXBCYWNrd2FyZCxcbiAgZmFYOiBmYVgsXG4gIGZhQ2lyY2xlVXNlcjogZmFDaXJjbGVVc2VyLFxuICBmYVVzZXJDaXJjbGU6IGZhVXNlckNpcmNsZSxcbiAgZmFSZWN0YW5nbGVMaXN0OiBmYVJlY3RhbmdsZUxpc3QsXG4gIGZhTGlzdEFsdDogZmFMaXN0QWx0LFxuICBmYUhhbmQ6IGZhSGFuZCxcbiAgZmFIYW5kUGFwZXI6IGZhSGFuZFBhcGVyLFxuICBmYVZhblNodXR0bGU6IGZhVmFuU2h1dHRsZSxcbiAgZmFTaHV0dGxlVmFuOiBmYVNodXR0bGVWYW4sXG4gIGZhU3RhaXJzOiBmYVN0YWlycyxcbiAgZmFIb3JzZUhlYWQ6IGZhSG9yc2VIZWFkLFxuICBmYVZhdWx0OiBmYVZhdWx0LFxuICBmYURydW1TdGVlbHBhbjogZmFEcnVtU3RlZWxwYW4sXG4gIGZhVGh1bWJzVXA6IGZhVGh1bWJzVXAsXG4gIGZhU3RhbXA6IGZhU3RhbXAsXG4gIGZhTWVub3JhaDogZmFNZW5vcmFoLFxuICBmYUNoaWxkcmVuOiBmYUNoaWxkcmVuLFxuICBmYUNoYXJ0TGluZTogZmFDaGFydExpbmUsXG4gIGZhTGluZUNoYXJ0OiBmYUxpbmVDaGFydCxcbiAgZmFTcXVhcmVFbnZlbG9wZTogZmFTcXVhcmVFbnZlbG9wZSxcbiAgZmFFbnZlbG9wZVNxdWFyZTogZmFFbnZlbG9wZVNxdWFyZSxcbiAgZmFCYW5TbW9raW5nOiBmYUJhblNtb2tpbmcsXG4gIGZhU21va2luZ0JhbjogZmFTbW9raW5nQmFuLFxuICBmYVRydWNrRnJvbnQ6IGZhVHJ1Y2tGcm9udCxcbiAgZmFCdWlsZGluZzogZmFCdWlsZGluZyxcbiAgZmFCdWxsc2V5ZTogZmFCdWxsc2V5ZSxcbiAgZmFBcnJvd0xlZnRMb25nOiBmYUFycm93TGVmdExvbmcsXG4gIGZhTG9uZ0Fycm93TGVmdDogZmFMb25nQXJyb3dMZWZ0LFxuICBmYUNoZXNzUm9vazogZmFDaGVzc1Jvb2ssXG4gIGZhQmxlbmRlclBob25lOiBmYUJsZW5kZXJQaG9uZSxcbiAgZmFBcnJvd1R1cm5VcDogZmFBcnJvd1R1cm5VcCxcbiAgZmFMZXZlbFVwOiBmYUxldmVsVXAsXG4gIGZhQmljeWNsZTogZmFCaWN5Y2xlLFxuICBmYUNpcmNsZUFycm93RG93bjogZmFDaXJjbGVBcnJvd0Rvd24sXG4gIGZhQXJyb3dDaXJjbGVEb3duOiBmYUFycm93Q2lyY2xlRG93bixcbiAgZmFHZWFyOiBmYUdlYXIsXG4gIGZhQ29nOiBmYUNvZyxcbiAgZmFNYXJzQW5kVmVudXNCdXJzdDogZmFNYXJzQW5kVmVudXNCdXJzdCxcbiAgZmFPdHRlcjogZmFPdHRlcixcbiAgZmFDaXJjbGVDaGV2cm9uTGVmdDogZmFDaXJjbGVDaGV2cm9uTGVmdCxcbiAgZmFDaGV2cm9uQ2lyY2xlTGVmdDogZmFDaGV2cm9uQ2lyY2xlTGVmdCxcbiAgZmFDaXJjbGVRdWVzdGlvbjogZmFDaXJjbGVRdWVzdGlvbixcbiAgZmFRdWVzdGlvbkNpcmNsZTogZmFRdWVzdGlvbkNpcmNsZSxcbiAgZmFXYWxraWVUYWxraWU6IGZhV2Fsa2llVGFsa2llLFxuICBmYVVzZXJHcm91cDogZmFVc2VyR3JvdXAsXG4gIGZhVXNlckZyaWVuZHM6IGZhVXNlckZyaWVuZHMsXG4gIGZhSG91c2VDaGltbmV5OiBmYUhvdXNlQ2hpbW5leSxcbiAgZmFIb21lTGc6IGZhSG9tZUxnLFxuICBmYVJpZ2h0RnJvbUJyYWNrZXQ6IGZhUmlnaHRGcm9tQnJhY2tldCxcbiAgZmFTaWduT3V0QWx0OiBmYVNpZ25PdXRBbHQsXG4gIGZhRmlsZTogZmFGaWxlLFxuICBmYVBsYW5lU2xhc2g6IGZhUGxhbmVTbGFzaCxcbiAgZmFDbG91ZFNob3dlcnNIZWF2eTogZmFDbG91ZFNob3dlcnNIZWF2eSxcbiAgZmFQZXJzb25GYWxsaW5nOiBmYVBlcnNvbkZhbGxpbmcsXG4gIGZhVHVybkRvd246IGZhVHVybkRvd24sXG4gIGZhTGV2ZWxEb3duQWx0OiBmYUxldmVsRG93bkFsdCxcbiAgZmFVcFJpZ2h0QW5kRG93bkxlZnRGcm9tQ2VudGVyOiBmYVVwUmlnaHRBbmREb3duTGVmdEZyb21DZW50ZXIsXG4gIGZhRXhwYW5kQWx0OiBmYUV4cGFuZEFsdCxcbiAgZmFVc2VyVGFnOiBmYVVzZXJUYWcsXG4gIGZhSGFuZFNwYXJrbGVzOiBmYUhhbmRTcGFya2xlcyxcbiAgZmFBcnJvd3NUb0RvdDogZmFBcnJvd3NUb0RvdCxcbiAgZmFGYWNlU2FkQ3J5OiBmYUZhY2VTYWRDcnksXG4gIGZhU2FkQ3J5OiBmYVNhZENyeSxcbiAgZmFEb25nU2lnbjogZmFEb25nU2lnbixcbiAgZmFQZW9wbGVMaW5lOiBmYVBlb3BsZUxpbmUsXG4gIGZhU3F1YXJlUnNzOiBmYVNxdWFyZVJzcyxcbiAgZmFSc3NTcXVhcmU6IGZhUnNzU3F1YXJlLFxuICBmYUNhbGVuZGFyTWludXM6IGZhQ2FsZW5kYXJNaW51cyxcbiAgZmFDaGFydERpYWdyYW06IGZhQ2hhcnREaWFncmFtLFxuICBmYUZhY2VUaXJlZDogZmFGYWNlVGlyZWQsXG4gIGZhVGlyZWQ6IGZhVGlyZWQsXG4gIGZhSGFuZFBvaW50UmlnaHQ6IGZhSGFuZFBvaW50UmlnaHQsXG4gIGZhQXJyb3dVcDogZmFBcnJvd1VwLFxuICBmYUN1YmVzU3RhY2tlZDogZmFDdWJlc1N0YWNrZWQsXG4gIGZhQ2hpbGRDb21iYXRhbnQ6IGZhQ2hpbGRDb21iYXRhbnQsXG4gIGZhQ2hpbGRSaWZsZTogZmFDaGlsZFJpZmxlLFxuICBmYVZlc3RQYXRjaGVzOiBmYVZlc3RQYXRjaGVzLFxuICBmYU1hcnRpbmlHbGFzc0VtcHR5OiBmYU1hcnRpbmlHbGFzc0VtcHR5LFxuICBmYUdsYXNzTWFydGluaTogZmFHbGFzc01hcnRpbmksXG4gIGZhTWFnbmV0OiBmYU1hZ25ldCxcbiAgZmFSb2FkQmFycmllcjogZmFSb2FkQmFycmllcixcbiAgZmFDb21wYXNzRHJhZnRpbmc6IGZhQ29tcGFzc0RyYWZ0aW5nLFxuICBmYURyYWZ0aW5nQ29tcGFzczogZmFEcmFmdGluZ0NvbXBhc3MsXG4gIGZhU3F1YXJlUGVyc29uQ29uZmluZWQ6IGZhU3F1YXJlUGVyc29uQ29uZmluZWQsXG4gIGZhUGxhdGVXaGVhdDogZmFQbGF0ZVdoZWF0LFxuICBmYVNpZ25IYW5naW5nOiBmYVNpZ25IYW5naW5nLFxuICBmYVNpZ246IGZhU2lnbixcbiAgZmFDYXJCYXR0ZXJ5OiBmYUNhckJhdHRlcnksXG4gIGZhQmF0dGVyeUNhcjogZmFCYXR0ZXJ5Q2FyLFxuICBmYVNoaXJ0OiBmYVNoaXJ0LFxuICBmYVRTaGlydDogZmFUU2hpcnQsXG4gIGZhVHNoaXJ0OiBmYVRzaGlydCxcbiAgZmFQYXJhZ3JhcGg6IGZhUGFyYWdyYXBoLFxuICBmYUVudmVsb3Blc0J1bGs6IGZhRW52ZWxvcGVzQnVsayxcbiAgZmFNYWlsQnVsazogZmFNYWlsQnVsayxcbiAgZmFHdWl0YXI6IGZhR3VpdGFyLFxuICBmYVN1aXRjYXNlOiBmYVN1aXRjYXNlLFxuICBmYUNpcmNsZVVwOiBmYUNpcmNsZVVwLFxuICBmYUFycm93QWx0Q2lyY2xlVXA6IGZhQXJyb3dBbHRDaXJjbGVVcCxcbiAgZmFGOiBmYUYsXG4gIGZhWG1hcmtzTGluZXM6IGZhWG1hcmtzTGluZXMsXG4gIGZhRWFydGhPY2VhbmlhOiBmYUVhcnRoT2NlYW5pYSxcbiAgZmFHbG9iZU9jZWFuaWE6IGZhR2xvYmVPY2VhbmlhLFxuICBmYUNvbW1lbnRTbGFzaDogZmFDb21tZW50U2xhc2gsXG4gIGZhUGxheTogZmFQbGF5LFxuICBmYVZpYWxDaXJjbGVDaGVjazogZmFWaWFsQ2lyY2xlQ2hlY2ssXG4gIGZhQnJpZGdlQ2lyY2xlQ2hlY2s6IGZhQnJpZGdlQ2lyY2xlQ2hlY2ssXG4gIGZhQ2VkaVNpZ246IGZhQ2VkaVNpZ24sXG4gIGZhUHV6emxlUGllY2U6IGZhUHV6emxlUGllY2UsXG4gIGZhSGVsbWV0VW46IGZhSGVsbWV0VW4sXG4gIGZhR2xhc3NXYXRlcjogZmFHbGFzc1dhdGVyLFxuICBmYUhlYXJ0Q2lyY2xlQm9sdDogZmFIZWFydENpcmNsZUJvbHQsXG4gIGZhUHVtcFNvYXA6IGZhUHVtcFNvYXAsXG4gIGZhSGFuZFNjaXNzb3JzOiBmYUhhbmRTY2lzc29ycyxcbiAgZmFEb2xseTogZmFEb2xseSxcbiAgZmFEb2xseUJveDogZmFEb2xseUJveCxcbiAgZmFQYXBlcmNsaXA6IGZhUGFwZXJjbGlwLFxuICBmYURlbW9jcmF0OiBmYURlbW9jcmF0LFxuICBmYVNxdWFyZUFycm93VXBSaWdodDogZmFTcXVhcmVBcnJvd1VwUmlnaHQsXG4gIGZhRXh0ZXJuYWxMaW5rU3F1YXJlOiBmYUV4dGVybmFsTGlua1NxdWFyZSxcbiAgZmFGZXJyeTogZmFGZXJyeSxcbiAgZmFNb3NxdWl0bzogZmFNb3NxdWl0byxcbiAgZmFCdWlsZGluZ0NpcmNsZUFycm93UmlnaHQ6IGZhQnVpbGRpbmdDaXJjbGVBcnJvd1JpZ2h0LFxuICBmYUxlZnRSaWdodDogZmFMZWZ0UmlnaHQsXG4gIGZhQXJyb3dzQWx0SDogZmFBcnJvd3NBbHRILFxuICBmYVZpcnVzOiBmYVZpcnVzLFxuICBmYUdlbTogZmFHZW0sXG4gIGZhVG9pbGV0OiBmYVRvaWxldCxcbiAgZmFTaW5nbGVRdW90ZUxlZnQ6IGZhU2luZ2xlUXVvdGVMZWZ0LFxuICBmYU1vbmV5QmlsbHM6IGZhTW9uZXlCaWxscyxcbiAgZmFUYWJsZXRCdXR0b246IGZhVGFibGV0QnV0dG9uLFxuICBmYVJlY3RhbmdsZVhtYXJrOiBmYVJlY3RhbmdsZVhtYXJrLFxuICBmYVJlY3RhbmdsZVRpbWVzOiBmYVJlY3RhbmdsZVRpbWVzLFxuICBmYVRpbWVzUmVjdGFuZ2xlOiBmYVRpbWVzUmVjdGFuZ2xlLFxuICBmYVdpbmRvd0Nsb3NlOiBmYVdpbmRvd0Nsb3NlLFxuICBmYVdyZW5jaDogZmFXcmVuY2gsXG4gIGZhVHJhc2hDYW46IGZhVHJhc2hDYW4sXG4gIGZhVHJhc2hBbHQ6IGZhVHJhc2hBbHQsXG4gIGZhVGFibGVDZWxsczogZmFUYWJsZUNlbGxzLFxuICBmYVRoOiBmYVRoLFxuICBmYVJpYmJvbjogZmFSaWJib24sXG4gIGZhTGFuZG1hcmtGbGFnOiBmYUxhbmRtYXJrRmxhZyxcbiAgZmFVcERvd25MZWZ0UmlnaHQ6IGZhVXBEb3duTGVmdFJpZ2h0LFxuICBmYUFycm93c0FsdDogZmFBcnJvd3NBbHQsXG4gIGZhQ2FyU2lkZTogZmFDYXJTaWRlLFxuICBmYVRyYXNoQXJyb3dVcDogZmFUcmFzaEFycm93VXAsXG4gIGZhVHJhc2hSZXN0b3JlOiBmYVRyYXNoUmVzdG9yZSxcbiAgZmFMaWZlUmluZzogZmFMaWZlUmluZyxcbiAgZmFDb3B5cmlnaHQ6IGZhQ29weXJpZ2h0LFxuICBmYUZpbGVQcmVzY3JpcHRpb246IGZhRmlsZVByZXNjcmlwdGlvbixcbiAgZmFFcmFzZXI6IGZhRXJhc2VyLFxuICBmYUhvdXJnbGFzc1N0YXJ0OiBmYUhvdXJnbGFzc1N0YXJ0LFxuICBmYUhvdXJnbGFzczE6IGZhSG91cmdsYXNzMSxcbiAgZmFDaXJjbGVMZWZ0OiBmYUNpcmNsZUxlZnQsXG4gIGZhQXJyb3dBbHRDaXJjbGVMZWZ0OiBmYUFycm93QWx0Q2lyY2xlTGVmdCxcbiAgZmFDcnV6ZWlyb1NpZ246IGZhQ3J1emVpcm9TaWduLFxuICBmYVNtb2tpbmc6IGZhU21va2luZyxcbiAgZmFTcXVhcmVQb2xsVmVydGljYWw6IGZhU3F1YXJlUG9sbFZlcnRpY2FsLFxuICBmYVBvbGw6IGZhUG9sbCxcbiAgZmFQZXJzb25DaXJjbGVNaW51czogZmFQZXJzb25DaXJjbGVNaW51cyxcbiAgZmFCaW9oYXphcmQ6IGZhQmlvaGF6YXJkLFxuICBmYUJlbGxDb25jaWVyZ2U6IGZhQmVsbENvbmNpZXJnZSxcbiAgZmFDb25jaWVyZ2VCZWxsOiBmYUNvbmNpZXJnZUJlbGwsXG4gIGZhUnVsZXJIb3Jpem9udGFsOiBmYVJ1bGVySG9yaXpvbnRhbCxcbiAgZmFIb3JzZTogZmFIb3JzZSxcbiAgZmFDYWxlbmRhcjogZmFDYWxlbmRhcixcbiAgZmFIYW5kc0hvbGRpbmdDaGlsZDogZmFIYW5kc0hvbGRpbmdDaGlsZCxcbiAgZmFJdGFsaWM6IGZhSXRhbGljLFxuICBmYUtoYW5kYTogZmFLaGFuZGEsXG4gIGZhRmFjZUZyb3duT3BlbjogZmFGYWNlRnJvd25PcGVuLFxuICBmYUZyb3duT3BlbjogZmFGcm93bk9wZW4sXG4gIGZhQ2hlY2s6IGZhQ2hlY2ssXG4gIGZhRmluZ2VycHJpbnQ6IGZhRmluZ2VycHJpbnQsXG4gIGZhQ2hhcmdpbmdTdGF0aW9uOiBmYUNoYXJnaW5nU3RhdGlvbixcbiAgZmFVc2VyTG9jazogZmFVc2VyTG9jayxcbiAgZmFNb2JpbGVTY3JlZW5CdXR0b246IGZhTW9iaWxlU2NyZWVuQnV0dG9uLFxuICBmYU1vYmlsZUFsdDogZmFNb2JpbGVBbHQsXG4gIGZhQW5jaG9yQ2lyY2xlQ2hlY2s6IGZhQW5jaG9yQ2lyY2xlQ2hlY2ssXG4gIGZhUGVyc29uV2Fsa2luZ1dpdGhDYW5lOiBmYVBlcnNvbldhbGtpbmdXaXRoQ2FuZSxcbiAgZmFCbGluZDogZmFCbGluZCxcbiAgZmFGaWxlV2F2ZWZvcm06IGZhRmlsZVdhdmVmb3JtLFxuICBmYUZpbGVNZWRpY2FsQWx0OiBmYUZpbGVNZWRpY2FsQWx0LFxuICBmYUhvdXNlQ3JhY2s6IGZhSG91c2VDcmFjayxcbiAgZmFIYXRXaXphcmQ6IGZhSGF0V2l6YXJkLFxuICBmYVVzZXJEb2N0b3I6IGZhVXNlckRvY3RvcixcbiAgZmFVc2VyTWQ6IGZhVXNlck1kLFxuICBmYUNoYXJ0QmFyOiBmYUNoYXJ0QmFyLFxuICBmYUJhckNoYXJ0OiBmYUJhckNoYXJ0LFxuICBmYVNwcmF5Q2FuU3BhcmtsZXM6IGZhU3ByYXlDYW5TcGFya2xlcyxcbiAgZmFBaXJGcmVzaGVuZXI6IGZhQWlyRnJlc2hlbmVyLFxuICBmYUJhaHRTaWduOiBmYUJhaHRTaWduLFxuICBmYVRlbXBlcmF0dXJlQXJyb3dVcDogZmFUZW1wZXJhdHVyZUFycm93VXAsXG4gIGZhVGVtcGVyYXR1cmVVcDogZmFUZW1wZXJhdHVyZVVwLFxuICBmYVdlYkF3ZXNvbWU6IGZhV2ViQXdlc29tZSxcbiAgZmFOb25CaW5hcnk6IGZhTm9uQmluYXJ5LFxuICBmYU46IGZhTixcbiAgZmFBcnJvd3NVcERvd25MZWZ0UmlnaHQ6IGZhQXJyb3dzVXBEb3duTGVmdFJpZ2h0LFxuICBmYUFycm93czogZmFBcnJvd3MsXG4gIGZhSG91c2U6IGZhSG91c2UsXG4gIGZhSG9tZTogZmFIb21lLFxuICBmYUhvbWVBbHQ6IGZhSG9tZUFsdCxcbiAgZmFIb21lTGdBbHQ6IGZhSG9tZUxnQWx0LFxuICBmYVNwaW5uZXI6IGZhU3Bpbm5lcixcbiAgZmFHYXZlbDogZmFHYXZlbCxcbiAgZmFMZWdhbDogZmFMZWdhbCxcbiAgZmFUaWNrZXRTaW1wbGU6IGZhVGlja2V0U2ltcGxlLFxuICBmYVRpY2tldEFsdDogZmFUaWNrZXRBbHQsXG4gIGZhRG92ZTogZmFEb3ZlLFxuICBmYVRhcnBEcm9wbGV0OiBmYVRhcnBEcm9wbGV0LFxuICBmYVRyZWVDaXR5OiBmYVRyZWVDaXR5LFxuICBmYVR1cm5VcDogZmFUdXJuVXAsXG4gIGZhTGV2ZWxVcEFsdDogZmFMZXZlbFVwQWx0LFxuICBmYVRlbXBlcmF0dXJlUXVhcnRlcjogZmFUZW1wZXJhdHVyZVF1YXJ0ZXIsXG4gIGZhVGVtcGVyYXR1cmUxOiBmYVRlbXBlcmF0dXJlMSxcbiAgZmFUaGVybW9tZXRlcjE6IGZhVGhlcm1vbWV0ZXIxLFxuICBmYVRoZXJtb21ldGVyUXVhcnRlcjogZmFUaGVybW9tZXRlclF1YXJ0ZXIsXG4gIGZhU2xpZGVyczogZmFTbGlkZXJzLFxuICBmYVNsaWRlcnNIOiBmYVNsaWRlcnNILFxuICBmYU1vc3F1ZTogZmFNb3NxdWUsXG4gIGZhSDogZmFILFxuICBmYUluZm86IGZhSW5mbyxcbiAgZmFQZXJzb25XYWxraW5nOiBmYVBlcnNvbldhbGtpbmcsXG4gIGZhV2Fsa2luZzogZmFXYWxraW5nLFxuICBmYUFycm93VHVybkRvd246IGZhQXJyb3dUdXJuRG93bixcbiAgZmFMZXZlbERvd246IGZhTGV2ZWxEb3duLFxuICBmYVJvYWQ6IGZhUm9hZCxcbiAgZmFTcGlyYWw6IGZhU3BpcmFsLFxuICBmYUZhY2VGcm93bjogZmFGYWNlRnJvd24sXG4gIGZhRnJvd246IGZhRnJvd24sXG4gIGZhV2luZUdsYXNzRW1wdHk6IGZhV2luZUdsYXNzRW1wdHksXG4gIGZhV2luZUdsYXNzQWx0OiBmYVdpbmVHbGFzc0FsdCxcbiAgZmFDbGFwcGVyYm9hcmQ6IGZhQ2xhcHBlcmJvYXJkLFxuICBmYUZvcndhcmRTdGVwOiBmYUZvcndhcmRTdGVwLFxuICBmYVN0ZXBGb3J3YXJkOiBmYVN0ZXBGb3J3YXJkLFxuICBmYVNxdWFyZVVwUmlnaHQ6IGZhU3F1YXJlVXBSaWdodCxcbiAgZmFFeHRlcm5hbExpbmtTcXVhcmVBbHQ6IGZhRXh0ZXJuYWxMaW5rU3F1YXJlQWx0LFxuICBmYUJvb2tKb3VybmFsV2hpbGxzOiBmYUJvb2tKb3VybmFsV2hpbGxzLFxuICBmYUpvdXJuYWxXaGlsbHM6IGZhSm91cm5hbFdoaWxscyxcbiAgZmFDaGFtcGFnbmVHbGFzc2VzOiBmYUNoYW1wYWduZUdsYXNzZXMsXG4gIGZhR2xhc3NDaGVlcnM6IGZhR2xhc3NDaGVlcnMsXG4gIGZhRHVtcHN0ZXI6IGZhRHVtcHN0ZXIsXG4gIGZhSGVhcnRDaXJjbGVYbWFyazogZmFIZWFydENpcmNsZVhtYXJrLFxuICBmYUNvbXB1dGVyOiBmYUNvbXB1dGVyLFxuICBmYVdhbmRNYWdpYzogZmFXYW5kTWFnaWMsXG4gIGZhTWFnaWM6IGZhTWFnaWMsXG4gIGZhQnJhaW46IGZhQnJhaW4sXG4gIGZhQnJpZWZjYXNlTWVkaWNhbDogZmFCcmllZmNhc2VNZWRpY2FsLFxuICBmYUhvdXNlTWVkaWNhbENpcmNsZUV4Y2xhbWF0aW9uOiBmYUhvdXNlTWVkaWNhbENpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUNvZGVDb21taXQ6IGZhQ29kZUNvbW1pdCxcbiAgZmFQZXJzb25CcmVhc3RmZWVkaW5nOiBmYVBlcnNvbkJyZWFzdGZlZWRpbmcsXG4gIGZhUGVyc29uUmF5czogZmFQZXJzb25SYXlzLFxuICBmYU1hbmF0U2lnbjogZmFNYW5hdFNpZ24sXG4gIGZhU29ydDogZmFTb3J0LFxuICBmYVVuc29ydGVkOiBmYVVuc29ydGVkLFxuICBmYUNpcmNsZVJhZGlhdGlvbjogZmFDaXJjbGVSYWRpYXRpb24sXG4gIGZhUmFkaWF0aW9uQWx0OiBmYVJhZGlhdGlvbkFsdCxcbiAgZmFMYXB0b3BDb2RlOiBmYUxhcHRvcENvZGUsXG4gIGZhU2luazogZmFTaW5rLFxuICBmYUFycm93VXBGcm9tV2F0ZXJQdW1wOiBmYUFycm93VXBGcm9tV2F0ZXJQdW1wLFxuICBmYU1pY3JvcGhvbmVMaW5lc1NsYXNoOiBmYU1pY3JvcGhvbmVMaW5lc1NsYXNoLFxuICBmYU1pY3JvcGhvbmVBbHRTbGFzaDogZmFNaWNyb3Bob25lQWx0U2xhc2gsXG4gIGZhU2VydmVyOiBmYVNlcnZlcixcbiAgZmFVc2VyOiBmYVVzZXIsXG4gIGZhVXNlckFsdDogZmFVc2VyQWx0LFxuICBmYVVzZXJMYXJnZTogZmFVc2VyTGFyZ2UsXG4gIGZhU25vd2ZsYWtlOiBmYVNub3dmbGFrZSxcbiAgZmFTa3VsbENyb3NzYm9uZXM6IGZhU2t1bGxDcm9zc2JvbmVzLFxuICBmYVBlc29TaWduOiBmYVBlc29TaWduLFxuICBmYVdpbmVHbGFzczogZmFXaW5lR2xhc3MsXG4gIGZhVGVtcGVyYXR1cmVIYWxmOiBmYVRlbXBlcmF0dXJlSGFsZixcbiAgZmFUZW1wZXJhdHVyZTI6IGZhVGVtcGVyYXR1cmUyLFxuICBmYVRoZXJtb21ldGVyMjogZmFUaGVybW9tZXRlcjIsXG4gIGZhVGhlcm1vbWV0ZXJIYWxmOiBmYVRoZXJtb21ldGVySGFsZixcbiAgZmFUaWNrZXQ6IGZhVGlja2V0LFxuICBmYVdoZWF0QXduQ2lyY2xlRXhjbGFtYXRpb246IGZhV2hlYXRBd25DaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFBcnJvd3NUdXJuUmlnaHQ6IGZhQXJyb3dzVHVyblJpZ2h0LFxuICBmYUNhbmR5Q2FuZTogZmFDYW5keUNhbmUsXG4gIGZhV2hlZWxjaGFpcjogZmFXaGVlbGNoYWlyLFxuICBmYVNwZWxsQ2hlY2s6IGZhU3BlbGxDaGVjayxcbiAgZmFWb2x1bWVPZmY6IGZhVm9sdW1lT2ZmLFxuICBmYUx1bmdzOiBmYUx1bmdzLFxuICBmYUJvb2ttYXJrOiBmYUJvb2ttYXJrLFxuICBmYUJhcmNvZGU6IGZhQmFyY29kZSxcbiAgZmFMaXN0T2w6IGZhTGlzdE9sLFxuICBmYUxpc3QxMjogZmFMaXN0MTIsXG4gIGZhTGlzdE51bWVyaWM6IGZhTGlzdE51bWVyaWMsXG4gIGZhRmlsZUNpcmNsZVhtYXJrOiBmYUZpbGVDaXJjbGVYbWFyayxcbiAgZmFDdWJlOiBmYUN1YmUsXG4gIGZhVGFwZTogZmFUYXBlLFxuICBmYUJvbWI6IGZhQm9tYixcbiAgZmFTY2FsZVVuYmFsYW5jZWQ6IGZhU2NhbGVVbmJhbGFuY2VkLFxuICBmYUJhbGFuY2VTY2FsZUxlZnQ6IGZhQmFsYW5jZVNjYWxlTGVmdCxcbiAgZmFTcXVhcmVDYXJldExlZnQ6IGZhU3F1YXJlQ2FyZXRMZWZ0LFxuICBmYUNhcmV0U3F1YXJlTGVmdDogZmFDYXJldFNxdWFyZUxlZnQsXG4gIGZhUnVsZXI6IGZhUnVsZXIsXG4gIGZhSTogZmFJLFxuICBmYVZvbHVtZVhtYXJrOiBmYVZvbHVtZVhtYXJrLFxuICBmYVZvbHVtZU11dGU6IGZhVm9sdW1lTXV0ZSxcbiAgZmFWb2x1bWVUaW1lczogZmFWb2x1bWVUaW1lcyxcbiAgZmFBcmNod2F5OiBmYUFyY2h3YXksXG4gIGZhUGVyc29uRGlnZ2luZzogZmFQZXJzb25EaWdnaW5nLFxuICBmYURpZ2dpbmc6IGZhRGlnZ2luZyxcbiAgZmFHYXVnZUhpZ2g6IGZhR2F1Z2VIaWdoLFxuICBmYVRhY2hvbWV0ZXJBbHQ6IGZhVGFjaG9tZXRlckFsdCxcbiAgZmFUYWNob21ldGVyQWx0RmFzdDogZmFUYWNob21ldGVyQWx0RmFzdCxcbiAgZmFHZW5kZXJsZXNzOiBmYUdlbmRlcmxlc3MsXG4gIGZhQ2xvdWRTdW46IGZhQ2xvdWRTdW4sXG4gIGZhQXJyb3dSaWdodDogZmFBcnJvd1JpZ2h0LFxuICBmYUhhbmRzaGFrZTogZmFIYW5kc2hha2UsXG4gIGZhSGFuZHNoYWtlQWx0OiBmYUhhbmRzaGFrZUFsdCxcbiAgZmFIYW5kc2hha2VTaW1wbGU6IGZhSGFuZHNoYWtlU2ltcGxlLFxuICBmYVBlcnNvblNraWluZzogZmFQZXJzb25Ta2lpbmcsXG4gIGZhU2tpaW5nOiBmYVNraWluZyxcbiAgZmFCcmlkZ2VXYXRlcjogZmFCcmlkZ2VXYXRlcixcbiAgZmFCdWlsZGluZ05nbzogZmFCdWlsZGluZ05nbyxcbiAgZmFJZ2xvbzogZmFJZ2xvbyxcbiAgZmFDaXJjbGVEb2xsYXJUb1Nsb3Q6IGZhQ2lyY2xlRG9sbGFyVG9TbG90LFxuICBmYURvbmF0ZTogZmFEb25hdGUsXG4gIGZhWTogZmFZLFxuICBmYUZhY2VTbWlsZVdpbms6IGZhRmFjZVNtaWxlV2luayxcbiAgZmFTbWlsZVdpbms6IGZhU21pbGVXaW5rLFxuICBmYURpY2VGb3VyOiBmYURpY2VGb3VyLFxuICBmYUZhY2VHcmluU3F1aW50VGVhcnM6IGZhRmFjZUdyaW5TcXVpbnRUZWFycyxcbiAgZmFHcmluU3F1aW50VGVhcnM6IGZhR3JpblNxdWludFRlYXJzLFxuICBmYUZpbGVBdWRpbzogZmFGaWxlQXVkaW8sXG4gIGZhQXJyb3dzRG93blRvTGluZTogZmFBcnJvd3NEb3duVG9MaW5lLFxuICBmYUc6IGZhRyxcbiAgZmFWaWhhcmE6IGZhVmloYXJhLFxuICBmYUZsYWdDaGVja2VyZWQ6IGZhRmxhZ0NoZWNrZXJlZCxcbiAgZmFHYXVnZVNpbXBsZTogZmFHYXVnZVNpbXBsZSxcbiAgZmFHYXVnZVNpbXBsZU1lZDogZmFHYXVnZVNpbXBsZU1lZCxcbiAgZmFUYWNob21ldGVyQXZlcmFnZTogZmFUYWNob21ldGVyQXZlcmFnZSxcbiAgZmFSaWdodExlZnQ6IGZhUmlnaHRMZWZ0LFxuICBmYUV4Y2hhbmdlQWx0OiBmYUV4Y2hhbmdlQWx0LFxuICBmYVBpbGxzOiBmYVBpbGxzLFxuICBmYUV4cGxvc2lvbjogZmFFeHBsb3Npb24sXG4gIGZhQXJyb3dzRG93blRvUGVvcGxlOiBmYUFycm93c0Rvd25Ub1Blb3BsZSxcbiAgZmFVc2Vyc1ZpZXdmaW5kZXI6IGZhVXNlcnNWaWV3ZmluZGVyLFxuICBmYUNhck9uOiBmYUNhck9uLFxuICBmYVNsZWlnaDogZmFTbGVpZ2gsXG4gIGZhRHVtYmJlbGw6IGZhRHVtYmJlbGwsXG4gIGZhQmFieUNhcnJpYWdlOiBmYUJhYnlDYXJyaWFnZSxcbiAgZmFDYXJyaWFnZUJhYnk6IGZhQ2FycmlhZ2VCYWJ5LFxuICBmYUtpd2lCaXJkOiBmYUtpd2lCaXJkLFxuICBmYUNhbGVuZGFyWG1hcms6IGZhQ2FsZW5kYXJYbWFyayxcbiAgZmFDYWxlbmRhclRpbWVzOiBmYUNhbGVuZGFyVGltZXMsXG4gIGZhQ2lyY2xlRG93bjogZmFDaXJjbGVEb3duLFxuICBmYUFycm93QWx0Q2lyY2xlRG93bjogZmFBcnJvd0FsdENpcmNsZURvd24sXG4gIGZhRmlsZU1lZGljYWw6IGZhRmlsZU1lZGljYWwsXG4gIGZhWG1hcms6IGZhWG1hcmssXG4gIGZhQ2xvc2U6IGZhQ2xvc2UsXG4gIGZhTXVsdGlwbHk6IGZhTXVsdGlwbHksXG4gIGZhUmVtb3ZlOiBmYVJlbW92ZSxcbiAgZmFUaW1lczogZmFUaW1lcyxcbiAgZmFTaGFwZXM6IGZhU2hhcGVzLFxuICBmYVRyaWFuZ2xlQ2lyY2xlU3F1YXJlOiBmYVRyaWFuZ2xlQ2lyY2xlU3F1YXJlLFxuICBmYURpY2VPbmU6IGZhRGljZU9uZSxcbiAgZmFMb2NrT3BlbjogZmFMb2NrT3BlbixcbiAgZmFQZXBwZXJIb3Q6IGZhUGVwcGVySG90LFxuICBmYURyb3BsZXRTbGFzaDogZmFEcm9wbGV0U2xhc2gsXG4gIGZhVGludFNsYXNoOiBmYVRpbnRTbGFzaCxcbiAgZmFEcm9wbGV0OiBmYURyb3BsZXQsXG4gIGZhVGludDogZmFUaW50LFxuICBmYUZpbGVMaW5lczogZmFGaWxlTGluZXMsXG4gIGZhRmlsZUFsdDogZmFGaWxlQWx0LFxuICBmYUZpbGVUZXh0OiBmYUZpbGVUZXh0LFxuICBmYUNvbW1lbnRzRG9sbGFyOiBmYUNvbW1lbnRzRG9sbGFyLFxuICBmYU1hZ25pZnlpbmdHbGFzc0xvY2F0aW9uOiBmYU1hZ25pZnlpbmdHbGFzc0xvY2F0aW9uLFxuICBmYVNlYXJjaExvY2F0aW9uOiBmYVNlYXJjaExvY2F0aW9uLFxuICBmYUZpbGVJbnZvaWNlOiBmYUZpbGVJbnZvaWNlLFxuICBmYVBlbnRhZ29uOiBmYVBlbnRhZ29uLFxuICBmYVJlcHVibGljYW46IGZhUmVwdWJsaWNhbixcbiAgZmFTaG9wOiBmYVNob3AsXG4gIGZhU3RvcmVBbHQ6IGZhU3RvcmVBbHQsXG4gIGZhRmlsbTogZmFGaWxtLFxuICBmYUZpbG1BbHQ6IGZhRmlsbUFsdCxcbiAgZmFGaWxtU2ltcGxlOiBmYUZpbG1TaW1wbGUsXG4gIGZhQnVpbGRpbmdDaXJjbGVYbWFyazogZmFCdWlsZGluZ0NpcmNsZVhtYXJrLFxuICBmYUNvbW1lbnRzOiBmYUNvbW1lbnRzLFxuICBmYVRhZ3M6IGZhVGFncyxcbiAgZmFHdW46IGZhR3VuLFxuICBmYUNpcmNsZUNoZWNrOiBmYUNpcmNsZUNoZWNrLFxuICBmYUNoZWNrQ2lyY2xlOiBmYUNoZWNrQ2lyY2xlLFxuICBmYUlkQ2FyZENsaXA6IGZhSWRDYXJkQ2xpcCxcbiAgZmFJZENhcmRBbHQ6IGZhSWRDYXJkQWx0LFxuICBmYU1vb246IGZhTW9vbixcbiAgZmFPaWxXZWxsOiBmYU9pbFdlbGwsXG4gIGZhVGFjaG9ncmFwaERpZ2l0YWw6IGZhVGFjaG9ncmFwaERpZ2l0YWwsXG4gIGZhRGlnaXRhbFRhY2hvZ3JhcGg6IGZhRGlnaXRhbFRhY2hvZ3JhcGgsXG4gIGZhVGFibGV0OiBmYVRhYmxldCxcbiAgZmFUYWJsZXRBbmRyb2lkOiBmYVRhYmxldEFuZHJvaWQsXG4gIGZhUnVibGVTaWduOiBmYVJ1YmxlU2lnbixcbiAgZmFSb3VibGU6IGZhUm91YmxlLFxuICBmYVJ1YjogZmFSdWIsXG4gIGZhUnVibGU6IGZhUnVibGUsXG4gIGZhQ2xvc2VkQ2FwdGlvbmluZzogZmFDbG9zZWRDYXB0aW9uaW5nLFxuICBmYVBlbjogZmFQZW4sXG4gIGZhUGxhbmU6IGZhUGxhbmUsXG4gIGZhSW1hZ2VzOiBmYUltYWdlcyxcbiAgZmFNb2JpbGVTY3JlZW46IGZhTW9iaWxlU2NyZWVuLFxuICBmYU1vYmlsZUFuZHJvaWRBbHQ6IGZhTW9iaWxlQW5kcm9pZEFsdCxcbiAgZmFHdWFyYW5pU2lnbjogZmFHdWFyYW5pU2lnbixcbiAgZmFCYWdTaG9wcGluZzogZmFCYWdTaG9wcGluZyxcbiAgZmFTaG9wcGluZ0JhZzogZmFTaG9wcGluZ0JhZyxcbiAgZmFDaXJjbGVSaWdodDogZmFDaXJjbGVSaWdodCxcbiAgZmFBcnJvd0FsdENpcmNsZVJpZ2h0OiBmYUFycm93QWx0Q2lyY2xlUmlnaHQsXG4gIGZhUGhvbmVWb2x1bWU6IGZhUGhvbmVWb2x1bWUsXG4gIGZhVm9sdW1lQ29udHJvbFBob25lOiBmYVZvbHVtZUNvbnRyb2xQaG9uZSxcbiAgZmFDdWJlczogZmFDdWJlcyxcbiAgZmFQaG9uZTogZmFQaG9uZSxcbiAgZmFUb3JpaUdhdGU6IGZhVG9yaWlHYXRlLFxuICBmYUJhY29uOiBmYUJhY29uLFxuICBmYVBlcnNvbkZhbGxpbmdCdXJzdDogZmFQZXJzb25GYWxsaW5nQnVyc3QsXG4gIGZhUXVvdGVSaWdodDogZmFRdW90ZVJpZ2h0LFxuICBmYVF1b3RlUmlnaHRBbHQ6IGZhUXVvdGVSaWdodEFsdCxcbiAgZmFIb3VzZU1lZGljYWxGbGFnOiBmYUhvdXNlTWVkaWNhbEZsYWcsXG4gIGZhUHJlc2NyaXB0aW9uOiBmYVByZXNjcmlwdGlvbixcbiAgZmFEaWNlVGhyZWU6IGZhRGljZVRocmVlLFxuICBmYUJ1aWxkaW5nTG9jazogZmFCdWlsZGluZ0xvY2ssXG4gIGZhSWRDYXJkOiBmYUlkQ2FyZCxcbiAgZmFEcml2ZXJzTGljZW5zZTogZmFEcml2ZXJzTGljZW5zZSxcbiAgZmFDaXJjbGVQbGF5OiBmYUNpcmNsZVBsYXksXG4gIGZhUGxheUNpcmNsZTogZmFQbGF5Q2lyY2xlLFxuICBmYUZhY2VMYXVnaEJlYW06IGZhRmFjZUxhdWdoQmVhbSxcbiAgZmFMYXVnaEJlYW06IGZhTGF1Z2hCZWFtLFxuICBmYUxlYWY6IGZhTGVhZixcbiAgZmFIb3VzZUNoaW1uZXlVc2VyOiBmYUhvdXNlQ2hpbW5leVVzZXIsXG4gIGZhUm90YXRlUmlnaHQ6IGZhUm90YXRlUmlnaHQsXG4gIGZhUmVkb0FsdDogZmFSZWRvQWx0LFxuICBmYVJvdGF0ZUZvcndhcmQ6IGZhUm90YXRlRm9yd2FyZCxcbiAgZmFUb290aDogZmFUb290aCxcbiAgZmFIb3VzZUNoaW1uZXlXaW5kb3c6IGZhSG91c2VDaGltbmV5V2luZG93LFxuICBmYU1vdG9yY3ljbGU6IGZhTW90b3JjeWNsZSxcbiAgZmFCYWNrd2FyZEZhc3Q6IGZhQmFja3dhcmRGYXN0LFxuICBmYUZhc3RCYWNrd2FyZDogZmFGYXN0QmFja3dhcmQsXG4gIGZhQWRkcmVzc0Jvb2s6IGZhQWRkcmVzc0Jvb2ssXG4gIGZhQ29udGFjdEJvb2s6IGZhQ29udGFjdEJvb2ssXG4gIGZhU2FpbGJvYXQ6IGZhU2FpbGJvYXQsXG4gIGZhQm9va0Jvb2ttYXJrOiBmYUJvb2tCb29rbWFyayxcbiAgZmFNYWduaWZ5aW5nR2xhc3NBcnJvd1JpZ2h0OiBmYU1hZ25pZnlpbmdHbGFzc0Fycm93UmlnaHQsXG4gIGZhTWljcm9waG9uZUxpbmVzOiBmYU1pY3JvcGhvbmVMaW5lcyxcbiAgZmFNaWNyb3Bob25lQWx0OiBmYU1pY3JvcGhvbmVBbHQsXG4gIGZhUmVwbHlBbGw6IGZhUmVwbHlBbGwsXG4gIGZhTWFpbFJlcGx5QWxsOiBmYU1haWxSZXBseUFsbCxcbiAgZmFVbml2ZXJzYWxBY2Nlc3M6IGZhVW5pdmVyc2FsQWNjZXNzLFxuICBmYVRvaWxldFBhcGVyOiBmYVRvaWxldFBhcGVyLFxuICBmYVRvaWxldFBhcGVyQWx0OiBmYVRvaWxldFBhcGVyQWx0LFxuICBmYVRvaWxldFBhcGVyQmxhbms6IGZhVG9pbGV0UGFwZXJCbGFuayxcbiAgZmFWckNhcmRib2FyZDogZmFWckNhcmRib2FyZCxcbiAgZmFQaXp6YVNsaWNlOiBmYVBpenphU2xpY2UsXG4gIGZhU3ByYXlDYW46IGZhU3ByYXlDYW4sXG4gIGZhVm9sdW1lTG93OiBmYVZvbHVtZUxvdyxcbiAgZmFWb2x1bWVEb3duOiBmYVZvbHVtZURvd24sXG4gIGZhQ3Jvc3M6IGZhQ3Jvc3MsXG4gIGZhUGVyc29uOiBmYVBlcnNvbixcbiAgZmFNYWxlOiBmYU1hbGUsXG4gIGZhSG91cmdsYXNzOiBmYUhvdXJnbGFzcyxcbiAgZmFIb3VyZ2xhc3NFbXB0eTogZmFIb3VyZ2xhc3NFbXB0eSxcbiAgZmFGaXNoOiBmYUZpc2gsXG4gIGZhRHJ1bXN0aWNrQml0ZTogZmFEcnVtc3RpY2tCaXRlLFxuICBmYUNoYXJ0U2ltcGxlOiBmYUNoYXJ0U2ltcGxlLFxuICBmYUF0b206IGZhQXRvbSxcbiAgZmFQOiBmYVAsXG4gIGZhSmV0RmlnaHRlclVwOiBmYUpldEZpZ2h0ZXJVcCxcbiAgZmFQbHVnQ2lyY2xlWG1hcms6IGZhUGx1Z0NpcmNsZVhtYXJrLFxuICBmYVNoZWV0UGxhc3RpYzogZmFTaGVldFBsYXN0aWMsXG4gIGZhVjogZmFWLFxuICBmYUxpc3Q6IGZhTGlzdCxcbiAgZmFMaXN0U3F1YXJlczogZmFMaXN0U3F1YXJlcyxcbiAgZmFTb2xhclBhbmVsOiBmYVNvbGFyUGFuZWwsXG4gIGZhTGFuZE1pbmVPbjogZmFMYW5kTWluZU9uLFxuICBmYUhlYWRwaG9uZXM6IGZhSGVhZHBob25lcyxcbiAgZmFIZWFkcGhvbmVzQWx0OiBmYUhlYWRwaG9uZXNBbHQsXG4gIGZhSGVhZHBob25lc1NpbXBsZTogZmFIZWFkcGhvbmVzU2ltcGxlLFxuICBmYUJ1czogZmFCdXMsXG4gIGZhRmlsZVBvd2VycG9pbnQ6IGZhRmlsZVBvd2VycG9pbnQsXG4gIGZhUXVvdGVMZWZ0OiBmYVF1b3RlTGVmdCxcbiAgZmFRdW90ZUxlZnRBbHQ6IGZhUXVvdGVMZWZ0QWx0LFxuICBmYUNoZXZyb25Eb3duOiBmYUNoZXZyb25Eb3duLFxuICBmYUVhcnRoQXNpYTogZmFFYXJ0aEFzaWEsXG4gIGZhR2xvYmVBc2lhOiBmYUdsb2JlQXNpYSxcbiAgZmFDZW50U2lnbjogZmFDZW50U2lnbixcbiAgZmFTaGllbGRDYXQ6IGZhU2hpZWxkQ2F0LFxuICBmYVNjaG9vbENpcmNsZUNoZWNrOiBmYVNjaG9vbENpcmNsZUNoZWNrLFxuICBmYU1hcnRpbmlHbGFzczogZmFNYXJ0aW5pR2xhc3MsXG4gIGZhR2xhc3NNYXJ0aW5pQWx0OiBmYUdsYXNzTWFydGluaUFsdCxcbiAgZmFQbHVnOiBmYVBsdWcsXG4gIGZhUGFub3JhbWE6IGZhUGFub3JhbWEsXG4gIGZhQ2xvY2tSb3RhdGVMZWZ0OiBmYUNsb2NrUm90YXRlTGVmdCxcbiAgZmFIaXN0b3J5OiBmYUhpc3RvcnksXG4gIGZhSmFyV2hlYXQ6IGZhSmFyV2hlYXQsXG4gIGZhQ2xvdWRBcnJvd0Rvd246IGZhQ2xvdWRBcnJvd0Rvd24sXG4gIGZhQ2xvdWREb3dubG9hZDogZmFDbG91ZERvd25sb2FkLFxuICBmYUNsb3VkRG93bmxvYWRBbHQ6IGZhQ2xvdWREb3dubG9hZEFsdCxcbiAgZmFUcnVja1JhbXBCb3g6IGZhVHJ1Y2tSYW1wQm94LFxuICBmYVRydWNrTG9hZGluZzogZmFUcnVja0xvYWRpbmcsXG4gIGZhQW5nbGVEb3duOiBmYUFuZ2xlRG93bixcbiAgZmFQbHVnQ2lyY2xlQ2hlY2s6IGZhUGx1Z0NpcmNsZUNoZWNrLFxuICBmYVdpbmRvd01heGltaXplOiBmYVdpbmRvd01heGltaXplLFxuICBmYUhhbmRzSG9sZGluZ0NpcmNsZTogZmFIYW5kc0hvbGRpbmdDaXJjbGUsXG4gIGZhTG9jYXRpb25QaW46IGZhTG9jYXRpb25QaW4sXG4gIGZhTWFwTWFya2VyOiBmYU1hcE1hcmtlcixcbiAgZmFCb3dsaW5nQmFsbDogZmFCb3dsaW5nQmFsbCxcbiAgZmFDYXJ0RmxhdGJlZDogZmFDYXJ0RmxhdGJlZCxcbiAgZmFEb2xseUZsYXRiZWQ6IGZhRG9sbHlGbGF0YmVkLFxuICBmYUhvdXNlVXNlcjogZmFIb3VzZVVzZXIsXG4gIGZhSG9tZVVzZXI6IGZhSG9tZVVzZXIsXG4gIGZhR2hvc3Q6IGZhR2hvc3QsXG4gIGZhQ29tbWVudE5vZGVzOiBmYUNvbW1lbnROb2RlcyxcbiAgZmFQZXJzb25BcnJvd0Rvd25Ub0xpbmU6IGZhUGVyc29uQXJyb3dEb3duVG9MaW5lLFxuICBmYVBsdWdDaXJjbGVQbHVzOiBmYVBsdWdDaXJjbGVQbHVzLFxuICBmYVBlcnNvblN3aW1taW5nOiBmYVBlcnNvblN3aW1taW5nLFxuICBmYVN3aW1tZXI6IGZhU3dpbW1lcixcbiAgZmFDb21tZW50RG90czogZmFDb21tZW50RG90cyxcbiAgZmFDb21tZW50aW5nOiBmYUNvbW1lbnRpbmcsXG4gIGZhQ2hhcnRQaWU6IGZhQ2hhcnRQaWUsXG4gIGZhUGllQ2hhcnQ6IGZhUGllQ2hhcnQsXG4gIGZhRnJvZzogZmFGcm9nLFxuICBmYVdpbmVCb3R0bGU6IGZhV2luZUJvdHRsZSxcbiAgZmFJbmJveDogZmFJbmJveCxcbiAgZmFTcXVhcmVIOiBmYVNxdWFyZUgsXG4gIGZhSFNxdWFyZTogZmFIU3F1YXJlLFxuICBmYUhvdXNlTWVkaWNhbDogZmFIb3VzZU1lZGljYWwsXG4gIGZhQ2lyY2xlQ2hldnJvblJpZ2h0OiBmYUNpcmNsZUNoZXZyb25SaWdodCxcbiAgZmFDaGV2cm9uQ2lyY2xlUmlnaHQ6IGZhQ2hldnJvbkNpcmNsZVJpZ2h0LFxuICBmYUZpbGVDc3Y6IGZhRmlsZUNzdixcbiAgZmFIYXRDb3dib3k6IGZhSGF0Q293Ym95LFxuICBmYUZhY2VHcmluVG9uZ3VlV2luazogZmFGYWNlR3JpblRvbmd1ZVdpbmssXG4gIGZhR3JpblRvbmd1ZVdpbms6IGZhR3JpblRvbmd1ZVdpbmssXG4gIGZhTDogZmFMLFxuICBmYUFycm93RG93blNob3J0V2lkZTogZmFBcnJvd0Rvd25TaG9ydFdpZGUsXG4gIGZhU29ydEFtb3VudERlc2M6IGZhU29ydEFtb3VudERlc2MsXG4gIGZhU29ydEFtb3VudERvd25BbHQ6IGZhU29ydEFtb3VudERvd25BbHQsXG4gIGZhSG91cmdsYXNzSGFsZjogZmFIb3VyZ2xhc3NIYWxmLFxuICBmYUhvdXJnbGFzczI6IGZhSG91cmdsYXNzMixcbiAgZmFTcG9vbjogZmFTcG9vbixcbiAgZmFVdGVuc2lsU3Bvb246IGZhVXRlbnNpbFNwb29uLFxuICBmYUNyZWRpdENhcmQ6IGZhQ3JlZGl0Q2FyZCxcbiAgZmFDcmVkaXRDYXJkQWx0OiBmYUNyZWRpdENhcmRBbHQsXG4gIGZhRmlsZUludm9pY2VEb2xsYXI6IGZhRmlsZUludm9pY2VEb2xsYXIsXG4gIGZhU3BhZ2hldHRpTW9uc3RlckZseWluZzogZmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nLFxuICBmYVBhc3RhZmFyaWFuaXNtOiBmYVBhc3RhZmFyaWFuaXNtLFxuICBmYU1hcnRpbmlHbGFzc0NpdHJ1czogZmFNYXJ0aW5pR2xhc3NDaXRydXMsXG4gIGZhQ29ja3RhaWw6IGZhQ29ja3RhaWwsXG4gIGZhQnVsbGhvcm46IGZhQnVsbGhvcm4sXG4gIGZhQm94VGlzc3VlOiBmYUJveFRpc3N1ZSxcbiAgZmFNYXR0cmVzc1BpbGxvdzogZmFNYXR0cmVzc1BpbGxvdyxcbiAgZmFDaGV2cm9uTGVmdDogZmFDaGV2cm9uTGVmdCxcbiAgZmFDbG91ZE1vb25SYWluOiBmYUNsb3VkTW9vblJhaW4sXG4gIGZhQXJyb3dEb3duMTk6IGZhQXJyb3dEb3duMTksXG4gIGZhU29ydE51bWVyaWNBc2M6IGZhU29ydE51bWVyaWNBc2MsXG4gIGZhU29ydE51bWVyaWNEb3duOiBmYVNvcnROdW1lcmljRG93bixcbiAgZmFIYW5kU3BvY2s6IGZhSGFuZFNwb2NrLFxuICBmYVdhbmRNYWdpY1NwYXJrbGVzOiBmYVdhbmRNYWdpY1NwYXJrbGVzLFxuICBmYU1hZ2ljV2FuZFNwYXJrbGVzOiBmYU1hZ2ljV2FuZFNwYXJrbGVzLFxuICBmYUNvbW1lbnRNZWRpY2FsOiBmYUNvbW1lbnRNZWRpY2FsLFxuICBmYUJlbGxTbGFzaDogZmFCZWxsU2xhc2gsXG4gIGZhSGFuZHNoYWtlU2xhc2g6IGZhSGFuZHNoYWtlU2xhc2gsXG4gIGZhSGFuZHNoYWtlQWx0U2xhc2g6IGZhSGFuZHNoYWtlQWx0U2xhc2gsXG4gIGZhSGFuZHNoYWtlU2ltcGxlU2xhc2g6IGZhSGFuZHNoYWtlU2ltcGxlU2xhc2gsXG4gIGZhQm90dGxlV2F0ZXI6IGZhQm90dGxlV2F0ZXIsXG4gIGZhRGljZUQyMDogZmFEaWNlRDIwLFxuICBmYUFycm93RG93blpBOiBmYUFycm93RG93blpBLFxuICBmYVNvcnRBbHBoYURlc2M6IGZhU29ydEFscGhhRGVzYyxcbiAgZmFTb3J0QWxwaGFEb3duQWx0OiBmYVNvcnRBbHBoYURvd25BbHQsXG4gIGZhQnJ1c2g6IGZhQnJ1c2gsXG4gIGZhUGVyc29uV2Fsa2luZ0Rhc2hlZExpbmVBcnJvd1JpZ2h0OiBmYVBlcnNvbldhbGtpbmdEYXNoZWRMaW5lQXJyb3dSaWdodCxcbiAgZmFBcnJvd1VwU2hvcnRXaWRlOiBmYUFycm93VXBTaG9ydFdpZGUsXG4gIGZhU29ydEFtb3VudFVwQWx0OiBmYVNvcnRBbW91bnRVcEFsdCxcbiAgZmFHcmlwVmVydGljYWw6IGZhR3JpcFZlcnRpY2FsLFxuICBmYUdyaWRWZXJ0aWNhbDogZmFHcmlkVmVydGljYWwsXG4gIGZhQ2FyVHVubmVsOiBmYUNhclR1bm5lbCxcbiAgZmFDaGFydENvbHVtbjogZmFDaGFydENvbHVtbixcbiAgZmFUcnVja0Fycm93UmlnaHQ6IGZhVHJ1Y2tBcnJvd1JpZ2h0LFxuICBmYVR2OiBmYVR2LFxuICBmYVRlbGV2aXNpb246IGZhVGVsZXZpc2lvbixcbiAgZmFUdkFsdDogZmFUdkFsdCxcbiAgZmFTZWN0aW9uOiBmYVNlY3Rpb24sXG4gIGZhUGVhY2U6IGZhUGVhY2UsXG4gIGZhU3RhcjogZmFTdGFyLFxuICBmYUZsYWc6IGZhRmxhZyxcbiAgZmFUcmlhbmdsZUV4Y2xhbWF0aW9uOiBmYVRyaWFuZ2xlRXhjbGFtYXRpb24sXG4gIGZhRXhjbGFtYXRpb25UcmlhbmdsZTogZmFFeGNsYW1hdGlvblRyaWFuZ2xlLFxuICBmYVdhcm5pbmc6IGZhV2FybmluZyxcbiAgZmFTY2hvb2xDaXJjbGVFeGNsYW1hdGlvbjogZmFTY2hvb2xDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFHcmFkdWF0aW9uQ2FwOiBmYUdyYWR1YXRpb25DYXAsXG4gIGZhTW9ydGFyQm9hcmQ6IGZhTW9ydGFyQm9hcmQsXG4gIGZhU3RvcmU6IGZhU3RvcmUsXG4gIGZhVXNlckFzdHJvbmF1dDogZmFVc2VyQXN0cm9uYXV0LFxuICBmYUJ1aWxkaW5nRmxhZzogZmFCdWlsZGluZ0ZsYWcsXG4gIGZhTXVnU2F1Y2VyOiBmYU11Z1NhdWNlcixcbiAgZmFDb2ZmZWU6IGZhQ29mZmVlLFxuICBmYUxlbW9uOiBmYUxlbW9uLFxuICBmYUNhcmF2YW46IGZhQ2FyYXZhbixcbiAgZmFROiBmYVEsXG4gIGZhTG9jazogZmFMb2NrLFxuICBmYVBhaW50Um9sbGVyOiBmYVBhaW50Um9sbGVyLFxuICBmYVZvbHVtZUhpZ2g6IGZhVm9sdW1lSGlnaCxcbiAgZmFWb2x1bWVVcDogZmFWb2x1bWVVcCxcbiAgZmFGb2xkZXJQbHVzOiBmYUZvbGRlclBsdXMsXG4gIGZhTWVyY3VyeTogZmFNZXJjdXJ5LFxuICBmYUFuY2hvcjogZmFBbmNob3IsXG4gIGZhU3F1YXJlUGFya2luZzogZmFTcXVhcmVQYXJraW5nLFxuICBmYVBhcmtpbmc6IGZhUGFya2luZyxcbiAgZmFIYW51a2lhaDogZmFIYW51a2lhaCxcbiAgZmFSb3RhdGVMZWZ0OiBmYVJvdGF0ZUxlZnQsXG4gIGZhUm90YXRlQmFjazogZmFSb3RhdGVCYWNrLFxuICBmYVJvdGF0ZUJhY2t3YXJkOiBmYVJvdGF0ZUJhY2t3YXJkLFxuICBmYVVuZG9BbHQ6IGZhVW5kb0FsdCxcbiAgZmFIZWFkaW5nOiBmYUhlYWRpbmcsXG4gIGZhSGVhZGVyOiBmYUhlYWRlcixcbiAgZmFDcm9zc2hhaXJzOiBmYUNyb3NzaGFpcnMsXG4gIGZhQ2lyY2xlTm9kZXM6IGZhQ2lyY2xlTm9kZXMsXG4gIGZhV2luZG93UmVzdG9yZTogZmFXaW5kb3dSZXN0b3JlLFxuICBmYVI6IGZhUixcbiAgZmFGaWx0ZXJDaXJjbGVYbWFyazogZmFGaWx0ZXJDaXJjbGVYbWFyayxcbiAgZmFHb3B1cmFtOiBmYUdvcHVyYW0sXG4gIGZhSGVhcnRDaXJjbGVNaW51czogZmFIZWFydENpcmNsZU1pbnVzLFxuICBmYVN0YXJPZkxpZmU6IGZhU3Rhck9mTGlmZSxcbiAgZmFCdXNpbmVzc1RpbWU6IGZhQnVzaW5lc3NUaW1lLFxuICBmYUJyaWVmY2FzZUNsb2NrOiBmYUJyaWVmY2FzZUNsb2NrLFxuICBmYUZpcmVFeHRpbmd1aXNoZXI6IGZhRmlyZUV4dGluZ3Vpc2hlcixcbiAgZmFBcnJvd0Rvd25Mb25nOiBmYUFycm93RG93bkxvbmcsXG4gIGZhTG9uZ0Fycm93RG93bjogZmFMb25nQXJyb3dEb3duLFxuICBmYVVzZXJNaW51czogZmFVc2VyTWludXMsXG4gIGZhTW9uZXlDaGVjazogZmFNb25leUNoZWNrLFxuICBmYUhvdXNlTGFwdG9wOiBmYUhvdXNlTGFwdG9wLFxuICBmYUxhcHRvcEhvdXNlOiBmYUxhcHRvcEhvdXNlLFxuICBmYURvd25sb2FkOiBmYURvd25sb2FkLFxuICBmYUNvdWNoOiBmYUNvdWNoLFxuICBmYVJvYWRMb2NrOiBmYVJvYWRMb2NrLFxuICBmYVNjaXNzb3JzOiBmYVNjaXNzb3JzLFxuICBmYUN1dDogZmFDdXQsXG4gIGZhQnVnOiBmYUJ1ZyxcbiAgZmFBcnJvd1JpZ2h0RnJvbUJyYWNrZXQ6IGZhQXJyb3dSaWdodEZyb21CcmFja2V0LFxuICBmYVNpZ25PdXQ6IGZhU2lnbk91dCxcbiAgZmFIYW5kSG9sZGluZ0hhbmQ6IGZhSGFuZEhvbGRpbmdIYW5kLFxuICBmYVN0cm9vcHdhZmVsOiBmYVN0cm9vcHdhZmVsLFxuICBmYUNoaWxkOiBmYUNoaWxkLFxuICBmYUljZUNyZWFtOiBmYUljZUNyZWFtLFxuICBmYUNvbXB1dGVyTW91c2U6IGZhQ29tcHV0ZXJNb3VzZSxcbiAgZmFNb3VzZTogZmFNb3VzZSxcbiAgZmFGYXVjZXQ6IGZhRmF1Y2V0LFxuICBmYUF3YXJkOiBmYUF3YXJkLFxuICBmYVBlcnNvbkRyb3duaW5nOiBmYVBlcnNvbkRyb3duaW5nLFxuICBmYUNhbWVyYVJvdGF0ZTogZmFDYW1lcmFSb3RhdGUsXG4gIGZhRmFjZUdyaW5IZWFydHM6IGZhRmFjZUdyaW5IZWFydHMsXG4gIGZhR3JpbkhlYXJ0czogZmFHcmluSGVhcnRzLFxuICBmYUZpbGVGcmFnbWVudDogZmFGaWxlRnJhZ21lbnQsXG4gIGZhUGVyc29uTWlsaXRhcnlSaWZsZTogZmFQZXJzb25NaWxpdGFyeVJpZmxlLFxuICBmYVRvZ2dsZU9uOiBmYVRvZ2dsZU9uLFxuICBmYUx1bmdzVmlydXM6IGZhTHVuZ3NWaXJ1cyxcbiAgZmFUYWJsZVRlbm5pc1BhZGRsZUJhbGw6IGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsLFxuICBmYVBpbmdQb25nUGFkZGxlQmFsbDogZmFQaW5nUG9uZ1BhZGRsZUJhbGwsXG4gIGZhVGFibGVUZW5uaXM6IGZhVGFibGVUZW5uaXMsXG4gIGZhQm94ZXNQYWNraW5nOiBmYUJveGVzUGFja2luZyxcbiAgZmFQZXJzb25DaGFsa2JvYXJkOiBmYVBlcnNvbkNoYWxrYm9hcmQsXG4gIGZhRGljZVR3bzogZmFEaWNlVHdvLFxuICBmYUFycm93UmlnaHRBcnJvd0xlZnQ6IGZhQXJyb3dSaWdodEFycm93TGVmdCxcbiAgZmFFeGNoYW5nZTogZmFFeGNoYW5nZSxcbiAgZmFGb290YmFsbDogZmFGb290YmFsbCxcbiAgZmFGb290YmFsbEJhbGw6IGZhRm9vdGJhbGxCYWxsLFxuICBmYVRydWNrTW9uc3RlcjogZmFUcnVja01vbnN0ZXIsXG4gIGZhQXN0ZXJpc2s6IGZhQXN0ZXJpc2ssXG4gIGZhQmF0dGVyeUZ1bGw6IGZhQmF0dGVyeUZ1bGwsXG4gIGZhQmF0dGVyeTogZmFCYXR0ZXJ5LFxuICBmYUJhdHRlcnk1OiBmYUJhdHRlcnk1LFxuICBmYUNoaWxkRHJlc3M6IGZhQ2hpbGREcmVzcyxcbiAgZmFGYWNlS2lzc0JlYW06IGZhRmFjZUtpc3NCZWFtLFxuICBmYUtpc3NCZWFtOiBmYUtpc3NCZWFtLFxuICBmYVRyYXNoQ2FuQXJyb3dVcDogZmFUcmFzaENhbkFycm93VXAsXG4gIGZhVHJhc2hSZXN0b3JlQWx0OiBmYVRyYXNoUmVzdG9yZUFsdCxcbiAgZmFGb250OiBmYUZvbnQsXG4gIGZhQm9yZUhvbGU6IGZhQm9yZUhvbGUsXG4gIGZhVmlydXNDb3ZpZDogZmFWaXJ1c0NvdmlkLFxuICBmYUZpbGVQZGY6IGZhRmlsZVBkZixcbiAgZmFMYW5ndWFnZTogZmFMYW5ndWFnZSxcbiAgZmFTaGllbGRIYWx2ZWQ6IGZhU2hpZWxkSGFsdmVkLFxuICBmYVNoaWVsZEFsdDogZmFTaGllbGRBbHQsXG4gIGZhQ2FyZXRVcDogZmFDYXJldFVwLFxuICBmYUZpbGVQZW46IGZhRmlsZVBlbixcbiAgZmFGaWxlRWRpdDogZmFGaWxlRWRpdCxcbiAgZmFQZXJzb25CaWtpbmc6IGZhUGVyc29uQmlraW5nLFxuICBmYUJpa2luZzogZmFCaWtpbmcsXG4gIGZhQm9va09wZW5SZWFkZXI6IGZhQm9va09wZW5SZWFkZXIsXG4gIGZhQm9va1JlYWRlcjogZmFCb29rUmVhZGVyLFxuICBmYUdsYXNzV2F0ZXJEcm9wbGV0OiBmYUdsYXNzV2F0ZXJEcm9wbGV0LFxuICBmYVRvd2VyQnJvYWRjYXN0OiBmYVRvd2VyQnJvYWRjYXN0LFxuICBmYUJyb2FkY2FzdFRvd2VyOiBmYUJyb2FkY2FzdFRvd2VyLFxuICBmYU1pbmltaXplOiBmYU1pbmltaXplLFxuICBmYUNvbXByZXNzQXJyb3dzQWx0OiBmYUNvbXByZXNzQXJyb3dzQWx0LFxuICBmYUFycm93UmlnaHRUb0NpdHk6IGZhQXJyb3dSaWdodFRvQ2l0eSxcbiAgZmFMYXB0b3BNZWRpY2FsOiBmYUxhcHRvcE1lZGljYWwsXG4gIGZhQnJlYWRTbGljZTogZmFCcmVhZFNsaWNlLFxuICBmYUdsb2JlOiBmYUdsb2JlLFxuICBmYUZvbGRlck1pbnVzOiBmYUZvbGRlck1pbnVzLFxuICBmYU1hc2tGYWNlOiBmYU1hc2tGYWNlLFxuICBmYUJvbmc6IGZhQm9uZyxcbiAgZmFSb2FkQnJpZGdlOiBmYVJvYWRCcmlkZ2UsXG4gIGZhQXJyb3dVcDkxOiBmYUFycm93VXA5MSxcbiAgZmFTb3J0TnVtZXJpY1VwQWx0OiBmYVNvcnROdW1lcmljVXBBbHQsXG4gIGZhTW91bnRhaW5DaXR5OiBmYU1vdW50YWluQ2l0eSxcbiAgZmFBcnJvd0Rvd245MTogZmFBcnJvd0Rvd245MSxcbiAgZmFTb3J0TnVtZXJpY0Rlc2M6IGZhU29ydE51bWVyaWNEZXNjLFxuICBmYVNvcnROdW1lcmljRG93bkFsdDogZmFTb3J0TnVtZXJpY0Rvd25BbHQsXG4gIGZhRmFjZUdyaW5XaWRlOiBmYUZhY2VHcmluV2lkZSxcbiAgZmFHcmluQWx0OiBmYUdyaW5BbHQsXG4gIGZhUG9vcDogZmFQb29wLFxuICBmYURoYXJtYWNoYWtyYTogZmFEaGFybWFjaGFrcmEsXG4gIGZhQmF0dGVyeVF1YXJ0ZXI6IGZhQmF0dGVyeVF1YXJ0ZXIsXG4gIGZhQmF0dGVyeTI6IGZhQmF0dGVyeTIsXG4gIGZhQW5raDogZmFBbmtoLFxuICBmYURpYW1vbmQ6IGZhRGlhbW9uZCxcbiAgZmFTdWJzY3JpcHQ6IGZhU3Vic2NyaXB0LFxuICBmYVJ1cGVlU2lnbjogZmFSdXBlZVNpZ24sXG4gIGZhUnVwZWU6IGZhUnVwZWUsXG4gIGZhUGVyc29uUmlmbGU6IGZhUGVyc29uUmlmbGUsXG4gIGZhRDogZmFELFxuICBmYVNxdWFyZU5maTogZmFTcXVhcmVOZmksXG4gIGZhVGVldGg6IGZhVGVldGgsXG4gIGZhTWFnbmlmeWluZ0dsYXNzRG9sbGFyOiBmYU1hZ25pZnlpbmdHbGFzc0RvbGxhcixcbiAgZmFTZWFyY2hEb2xsYXI6IGZhU2VhcmNoRG9sbGFyLFxuICBmYUR1bXBzdGVyRmlyZTogZmFEdW1wc3RlckZpcmUsXG4gIGZhVXBsb2FkOiBmYVVwbG9hZCxcbiAgZmFVc2VyU2xhc2g6IGZhVXNlclNsYXNoLFxuICBmYVVzZXJBbHRTbGFzaDogZmFVc2VyQWx0U2xhc2gsXG4gIGZhVXNlckxhcmdlU2xhc2g6IGZhVXNlckxhcmdlU2xhc2gsXG4gIGZhQXJyb3dMZWZ0OiBmYUFycm93TGVmdCxcbiAgZmFWaWFsVmlydXM6IGZhVmlhbFZpcnVzLFxuICBmYUNoZWNrRG91YmxlOiBmYUNoZWNrRG91YmxlLFxuICBmYVBhdzogZmFQYXcsXG4gIGZhSGVsbWV0U2FmZXR5OiBmYUhlbG1ldFNhZmV0eSxcbiAgZmFIYXJkSGF0OiBmYUhhcmRIYXQsXG4gIGZhSGF0SGFyZDogZmFIYXRIYXJkLFxuICBmYUU6IGZhRSxcbiAgZmFGYWNlTGF1Z2hTcXVpbnQ6IGZhRmFjZUxhdWdoU3F1aW50LFxuICBmYUxhdWdoU3F1aW50OiBmYUxhdWdoU3F1aW50LFxuICBmYURvd25MZWZ0QW5kVXBSaWdodFRvQ2VudGVyOiBmYURvd25MZWZ0QW5kVXBSaWdodFRvQ2VudGVyLFxuICBmYUNvbXByZXNzQWx0OiBmYUNvbXByZXNzQWx0LFxuICBmYUdpZnRzOiBmYUdpZnRzLFxuICBmYUJlZDogZmFCZWQsXG4gIGZhTW9uZXlCaWxsVHJhbnNmZXI6IGZhTW9uZXlCaWxsVHJhbnNmZXIsXG4gIGZhUGVyc29uUnVubmluZzogZmFQZXJzb25SdW5uaW5nLFxuICBmYVJ1bm5pbmc6IGZhUnVubmluZyxcbiAgZmFDaXJjbGVDaGV2cm9uRG93bjogZmFDaXJjbGVDaGV2cm9uRG93bixcbiAgZmFDaGV2cm9uQ2lyY2xlRG93bjogZmFDaGV2cm9uQ2lyY2xlRG93bixcbiAgZmFVc2VyTnVyc2U6IGZhVXNlck51cnNlLFxuICBmYUZhY2VLaXNzV2lua0hlYXJ0OiBmYUZhY2VLaXNzV2lua0hlYXJ0LFxuICBmYUtpc3NXaW5rSGVhcnQ6IGZhS2lzc1dpbmtIZWFydCxcbiAgZmFGaWxsOiBmYUZpbGwsXG4gIGZhTW9uZXlCaWxsMVdhdmU6IGZhTW9uZXlCaWxsMVdhdmUsXG4gIGZhTW9uZXlCaWxsV2F2ZUFsdDogZmFNb25leUJpbGxXYXZlQWx0LFxuICBmYUxhbmRtYXJrOiBmYUxhbmRtYXJrLFxuICBmYU11c2ljOiBmYU11c2ljLFxuICBmYUJvb2tNZWRpY2FsOiBmYUJvb2tNZWRpY2FsLFxuICBmYVNodWZmbGU6IGZhU2h1ZmZsZSxcbiAgZmFSYW5kb206IGZhUmFuZG9tLFxuICBmYVVuZGVybGluZTogZmFVbmRlcmxpbmUsXG4gIGZhQnVpbGRpbmdVc2VyOiBmYUJ1aWxkaW5nVXNlcixcbiAgZmFSb2JvdDogZmFSb2JvdCxcbiAgZmFQbHVzOiBmYVBsdXMsXG4gIGZhQWRkOiBmYUFkZCxcbiAgZmFDb3B5OiBmYUNvcHksXG4gIGZhQ2hlc3NLaW5nOiBmYUNoZXNzS2luZyxcbiAgZmFIb3VzZUZsb29kV2F0ZXI6IGZhSG91c2VGbG9vZFdhdGVyLFxuICBmYUJpdGNvaW5TaWduOiBmYUJpdGNvaW5TaWduLFxuICBmYUJveDogZmFCb3gsXG4gIGZhU3F1YXJlUGx1czogZmFTcXVhcmVQbHVzLFxuICBmYVBsdXNTcXVhcmU6IGZhUGx1c1NxdWFyZSxcbiAgZmFBcnJvd3NMZWZ0UmlnaHQ6IGZhQXJyb3dzTGVmdFJpZ2h0LFxuICBmYUFycm93c0g6IGZhQXJyb3dzSCxcbiAgZmFGYW46IGZhRmFuLFxuICBmYUNyb3c6IGZhQ3JvdyxcbiAgZmFGaWxlQ2lyY2xlQ2hlY2s6IGZhRmlsZUNpcmNsZUNoZWNrLFxuICBmYUxpbmtTbGFzaDogZmFMaW5rU2xhc2gsXG4gIGZhQ2hhaW5Ccm9rZW46IGZhQ2hhaW5Ccm9rZW4sXG4gIGZhQ2hhaW5TbGFzaDogZmFDaGFpblNsYXNoLFxuICBmYVVubGluazogZmFVbmxpbmssXG4gIGZhQXJyb3dSb3RhdGVSaWdodDogZmFBcnJvd1JvdGF0ZVJpZ2h0LFxuICBmYUFycm93UmlnaHRSb3RhdGU6IGZhQXJyb3dSaWdodFJvdGF0ZSxcbiAgZmFBcnJvd1JvdGF0ZUZvcndhcmQ6IGZhQXJyb3dSb3RhdGVGb3J3YXJkLFxuICBmYVJlZG86IGZhUmVkbyxcbiAgZmFQZW5DbGlwOiBmYVBlbkNsaXAsXG4gIGZhUGVuQWx0OiBmYVBlbkFsdCxcbiAgZmFEb29yQ2xvc2VkOiBmYURvb3JDbG9zZWQsXG4gIGZhQXJyb3dEb3duV2lkZVNob3J0OiBmYUFycm93RG93bldpZGVTaG9ydCxcbiAgZmFTb3J0QW1vdW50QXNjOiBmYVNvcnRBbW91bnRBc2MsXG4gIGZhU29ydEFtb3VudERvd246IGZhU29ydEFtb3VudERvd24sXG4gIGZhQ2FyZXREb3duOiBmYUNhcmV0RG93bixcbiAgZmFLOiBmYUssXG4gIGZhQ2hlY2tUb1Nsb3Q6IGZhQ2hlY2tUb1Nsb3QsXG4gIGZhVm90ZVllYTogZmFWb3RlWWVhLFxuICBmYUZpc2hGaW5zOiBmYUZpc2hGaW5zLFxuICBmYUNvbXByZXNzOiBmYUNvbXByZXNzLFxuICBmYUFycm93VXBBWjogZmFBcnJvd1VwQVosXG4gIGZhU29ydEFscGhhVXA6IGZhU29ydEFscGhhVXAsXG4gIGZhVXNlckdyYWR1YXRlOiBmYVVzZXJHcmFkdWF0ZSxcbiAgZmFGaWxlQ29kZTogZmFGaWxlQ29kZSxcbiAgZmFTb2FwOiBmYVNvYXAsXG4gIGZhUmVjeWNsZTogZmFSZWN5Y2xlLFxuICBmYUZhY2VHcmluV2luazogZmFGYWNlR3JpbldpbmssXG4gIGZhR3Jpbldpbms6IGZhR3JpbldpbmssXG4gIGZhV2F0ZXJMYWRkZXI6IGZhV2F0ZXJMYWRkZXIsXG4gIGZhTGFkZGVyV2F0ZXI6IGZhTGFkZGVyV2F0ZXIsXG4gIGZhU3dpbW1pbmdQb29sOiBmYVN3aW1taW5nUG9vbCxcbiAgZmFUb3dlckNlbGw6IGZhVG93ZXJDZWxsLFxuICBmYUNvbG9uU2lnbjogZmFDb2xvblNpZ24sXG4gIGZhTGFwdG9wRmlsZTogZmFMYXB0b3BGaWxlLFxuICBmYUJhaGFpOiBmYUJhaGFpLFxuICBmYUhheWthbDogZmFIYXlrYWwsXG4gIGZhTW9uZXlCaWxsMTogZmFNb25leUJpbGwxLFxuICBmYU1vbmV5QmlsbEFsdDogZmFNb25leUJpbGxBbHQsXG4gIGZhQ2xvdWRCb2x0OiBmYUNsb3VkQm9sdCxcbiAgZmFUaHVuZGVyc3Rvcm06IGZhVGh1bmRlcnN0b3JtLFxuICBmYUV0aGVybmV0OiBmYUV0aGVybmV0LFxuICBmYUhyeXZuaWFTaWduOiBmYUhyeXZuaWFTaWduLFxuICBmYUhyeXZuaWE6IGZhSHJ5dm5pYSxcbiAgZmFFeWVTbGFzaDogZmFFeWVTbGFzaCxcbiAgZmFDYXJ0RmxhdGJlZFN1aXRjYXNlOiBmYUNhcnRGbGF0YmVkU3VpdGNhc2UsXG4gIGZhTHVnZ2FnZUNhcnQ6IGZhTHVnZ2FnZUNhcnQsXG4gIGZhUmFkaWF0aW9uOiBmYVJhZGlhdGlvbixcbiAgZmFGaWxlV29yZDogZmFGaWxlV29yZCxcbiAgZmFCZWRQdWxzZTogZmFCZWRQdWxzZSxcbiAgZmFQcm9jZWR1cmVzOiBmYVByb2NlZHVyZXMsXG4gIGZhVGVudHM6IGZhVGVudHMsXG4gIGZhTXVnSG90OiBmYU11Z0hvdCxcbiAgZmFCb2x0OiBmYUJvbHQsXG4gIGZhWmFwOiBmYVphcCxcbiAgZmFKYXI6IGZhSmFyLFxuICBmYVRydWNrUGxhbmU6IGZhVHJ1Y2tQbGFuZSxcbiAgZmFIYW5kSG9sZGluZ0hlYXJ0OiBmYUhhbmRIb2xkaW5nSGVhcnQsXG4gIGZhQXJyb3dSb3RhdGVMZWZ0OiBmYUFycm93Um90YXRlTGVmdCxcbiAgZmFBcnJvd0xlZnRSb3RhdGU6IGZhQXJyb3dMZWZ0Um90YXRlLFxuICBmYUFycm93Um90YXRlQmFjazogZmFBcnJvd1JvdGF0ZUJhY2ssXG4gIGZhQXJyb3dSb3RhdGVCYWNrd2FyZDogZmFBcnJvd1JvdGF0ZUJhY2t3YXJkLFxuICBmYVVuZG86IGZhVW5kbyxcbiAgZmFGYWNlQW5ncnk6IGZhRmFjZUFuZ3J5LFxuICBmYUFuZ3J5OiBmYUFuZ3J5LFxuICBmYUJ1cnN0OiBmYUJ1cnN0LFxuICBmYVo6IGZhWixcbiAgZmFCYW5kYWdlOiBmYUJhbmRhZ2UsXG4gIGZhQmFuZEFpZDogZmFCYW5kQWlkLFxuICBmYVBsYW5lQ2lyY2xlRXhjbGFtYXRpb246IGZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFCdXNTaWRlOiBmYUJ1c1NpZGUsXG4gIGZhQnVnczogZmFCdWdzLFxuICBmYUJlZXJNdWdFbXB0eTogZmFCZWVyTXVnRW1wdHksXG4gIGZhQmVlcjogZmFCZWVyLFxuICBmYVBlcnNvbkNpcmNsZUNoZWNrOiBmYVBlcnNvbkNpcmNsZUNoZWNrLFxuICBmYVN0YXBsZXI6IGZhU3RhcGxlcixcbiAgZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjazogZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjayxcbiAgZmFOYWlyYVNpZ246IGZhTmFpcmFTaWduLFxuICBmYVdpZmk6IGZhV2lmaSxcbiAgZmFXaWZpMzogZmFXaWZpMyxcbiAgZmFXaWZpU3Ryb25nOiBmYVdpZmlTdHJvbmcsXG4gIGZhTW9uZXlDaGVja0RvbGxhcjogZmFNb25leUNoZWNrRG9sbGFyLFxuICBmYU1vbmV5Q2hlY2tBbHQ6IGZhTW9uZXlDaGVja0FsdCxcbiAgZmFFeWVMb3dWaXNpb246IGZhRXllTG93VmlzaW9uLFxuICBmYUxvd1Zpc2lvbjogZmFMb3dWaXNpb24sXG4gIGZhQ2lyY2xlQXJyb3dVcDogZmFDaXJjbGVBcnJvd1VwLFxuICBmYUFycm93Q2lyY2xlVXA6IGZhQXJyb3dDaXJjbGVVcCxcbiAgZmFDYW1lcmFSZXRybzogZmFDYW1lcmFSZXRybyxcbiAgZmFDYXBzdWxlczogZmFDYXBzdWxlcyxcbiAgZmFQb286IGZhUG9vLFxuICBmYUVsZXZhdG9yOiBmYUVsZXZhdG9yLFxuICBmYVRhZzogZmFUYWcsXG4gIGZhRmlsZUNpcmNsZU1pbnVzOiBmYUZpbGVDaXJjbGVNaW51cyxcbiAgZmFEb3duTG9uZzogZmFEb3duTG9uZyxcbiAgZmFMb25nQXJyb3dBbHREb3duOiBmYUxvbmdBcnJvd0FsdERvd24sXG4gIGZhQ29tcGFjdERpc2M6IGZhQ29tcGFjdERpc2MsXG4gIGZhU3VpdGNhc2VSb2xsaW5nOiBmYVN1aXRjYXNlUm9sbGluZyxcbiAgZmFCb29rUXVyYW46IGZhQm9va1F1cmFuLFxuICBmYVF1cmFuOiBmYVF1cmFuLFxuICBmYVBob25lU2xhc2g6IGZhUGhvbmVTbGFzaCxcbiAgZmFSb2FkQ2lyY2xlQ2hlY2s6IGZhUm9hZENpcmNsZUNoZWNrLFxuICBmYVNob3BMb2NrOiBmYVNob3BMb2NrLFxuICBmYUltYWdlUG9ydHJhaXQ6IGZhSW1hZ2VQb3J0cmFpdCxcbiAgZmFQb3J0cmFpdDogZmFQb3J0cmFpdCxcbiAgZmFCcmlkZ2VMb2NrOiBmYUJyaWRnZUxvY2ssXG4gIGZhSGFtbWVyOiBmYUhhbW1lcixcbiAgZmFBcnJvd1VwMTk6IGZhQXJyb3dVcDE5LFxuICBmYVNvcnROdW1lcmljVXA6IGZhU29ydE51bWVyaWNVcCxcbiAgZmFDaGVzc0tuaWdodDogZmFDaGVzc0tuaWdodCxcbiAgZmFIb3VzZUZsb29kV2F0ZXJDaXJjbGVBcnJvd1JpZ2h0OiBmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQsXG4gIGZhQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTogZmFBcnJvd1VwUmlnaHRGcm9tU3F1YXJlLFxuICBmYUV4dGVybmFsTGluazogZmFFeHRlcm5hbExpbmssXG4gIGZhQXJyb3dEb3duVXBBY3Jvc3NMaW5lOiBmYUFycm93RG93blVwQWNyb3NzTGluZSxcbiAgZmFGYWNlR3JpbkJlYW06IGZhRmFjZUdyaW5CZWFtLFxuICBmYUdyaW5CZWFtOiBmYUdyaW5CZWFtLFxuICBmYVJlY3RhbmdsZUFkOiBmYVJlY3RhbmdsZUFkLFxuICBmYUFkOiBmYUFkLFxuICBmYUJvb2tUYW5ha2g6IGZhQm9va1RhbmFraCxcbiAgZmFUYW5ha2g6IGZhVGFuYWtoLFxuICBmYUhvdFR1YlBlcnNvbjogZmFIb3RUdWJQZXJzb24sXG4gIGZhSG90VHViOiBmYUhvdFR1YixcbiAgZmFGaWxlSGFsZkRhc2hlZDogZmFGaWxlSGFsZkRhc2hlZCxcbiAgZmFPdXRkZW50OiBmYU91dGRlbnQsXG4gIGZhRGVkZW50OiBmYURlZGVudCxcbiAgZmFIYW5kUGVhY2U6IGZhSGFuZFBlYWNlLFxuICBmYUhlYWRTaWRlVmlydXM6IGZhSGVhZFNpZGVWaXJ1cyxcbiAgZmFDb21wYXNzOiBmYUNvbXBhc3MsXG4gIGZhUGVuTmliOiBmYVBlbk5pYixcbiAgZmFUZW50QXJyb3dzRG93bjogZmFUZW50QXJyb3dzRG93bixcbiAgZmFGb3J3YXJkRmFzdDogZmFGb3J3YXJkRmFzdCxcbiAgZmFGYXN0Rm9yd2FyZDogZmFGYXN0Rm9yd2FyZCxcbiAgZmFDcm9wOiBmYUNyb3AsXG4gIGZhV2hpc2tleUdsYXNzOiBmYVdoaXNrZXlHbGFzcyxcbiAgZmFHbGFzc1doaXNrZXk6IGZhR2xhc3NXaGlza2V5LFxuICBmYVNxdWFyZTogZmFTcXVhcmUsXG4gIGZhRmFjZUdyaW46IGZhRmFjZUdyaW4sXG4gIGZhR3JpbjogZmFHcmluLFxuICBmYUZpbGVDb250cmFjdDogZmFGaWxlQ29udHJhY3QsXG4gIGZhQW5nbGVVcDogZmFBbmdsZVVwLFxuICBmYUZhY2VTbWlsZTogZmFGYWNlU21pbGUsXG4gIGZhU21pbGU6IGZhU21pbGUsXG4gIGZhUGVyc29uRHJlc3NCdXJzdDogZmFQZXJzb25EcmVzc0J1cnN0LFxuICBmYURpdmlkZTogZmFEaXZpZGUsXG4gIGZhQ29kZUZvcms6IGZhQ29kZUZvcmssXG4gIGZhSG91c2VGbGFnOiBmYUhvdXNlRmxhZyxcbiAgZmFCdWlsZGluZ0NvbHVtbnM6IGZhQnVpbGRpbmdDb2x1bW5zLFxuICBmYUJhbms6IGZhQmFuayxcbiAgZmFJbnN0aXR1dGlvbjogZmFJbnN0aXR1dGlvbixcbiAgZmFNdXNldW06IGZhTXVzZXVtLFxuICBmYVVuaXZlcnNpdHk6IGZhVW5pdmVyc2l0eSxcbiAgZmFSdWc6IGZhUnVnLFxuICBmYUNvZGVNZXJnZTogZmFDb2RlTWVyZ2UsXG4gIGZhSG91c2VUc3VuYW1pOiBmYUhvdXNlVHN1bmFtaSxcbiAgZmFNYWduaWZ5aW5nR2xhc3NDaGFydDogZmFNYWduaWZ5aW5nR2xhc3NDaGFydCxcbiAgZmFVbWJyZWxsYTogZmFVbWJyZWxsYSxcbiAgZmFIaWxsUm9ja3NsaWRlOiBmYUhpbGxSb2Nrc2xpZGUsXG4gIGZhVXNlclNlY3JldDogZmFVc2VyU2VjcmV0LFxuICBmYVBhZ2VyOiBmYVBhZ2VyLFxuICBmYUJyaWVmY2FzZTogZmFCcmllZmNhc2UsXG4gIGZhVHJvd2VsQnJpY2tzOiBmYVRyb3dlbEJyaWNrcyxcbiAgZmFTb2NrczogZmFTb2NrcyxcbiAgZmFUOiBmYVQsXG4gIGZhTWljcm9jaGlwOiBmYU1pY3JvY2hpcCxcbiAgZmFUcnVja01lZGljYWw6IGZhVHJ1Y2tNZWRpY2FsLFxuICBmYUFtYnVsYW5jZTogZmFBbWJ1bGFuY2UsXG4gIGZhT206IGZhT20sXG4gIGZhTW9zcXVpdG9OZXQ6IGZhTW9zcXVpdG9OZXQsXG4gIGZhUHJlc2NyaXB0aW9uQm90dGxlOiBmYVByZXNjcmlwdGlvbkJvdHRsZSxcbiAgZmFVc2Vyc0dlYXI6IGZhVXNlcnNHZWFyLFxuICBmYVVzZXJzQ29nOiBmYVVzZXJzQ29nLFxuICBmYVJvYWRDaXJjbGVFeGNsYW1hdGlvbjogZmFSb2FkQ2lyY2xlRXhjbGFtYXRpb24sXG4gIGZhUGF1c2U6IGZhUGF1c2UsXG4gIGZhU3RhZmZTbmFrZTogZmFTdGFmZlNuYWtlLFxuICBmYVJvZEFzY2xlcGl1czogZmFSb2RBc2NsZXBpdXMsXG4gIGZhUm9kU25ha2U6IGZhUm9kU25ha2UsXG4gIGZhU3RhZmZBZXNjdWxhcGl1czogZmFTdGFmZkFlc2N1bGFwaXVzLFxuICBmYVBpZ2d5QmFuazogZmFQaWdneUJhbmssXG4gIGZhTW9udW1lbnQ6IGZhTW9udW1lbnQsXG4gIGZhQW5nbGVzUmlnaHQ6IGZhQW5nbGVzUmlnaHQsXG4gIGZhQW5nbGVEb3VibGVSaWdodDogZmFBbmdsZURvdWJsZVJpZ2h0LFxuICBmYURlc2t0b3A6IGZhRGVza3RvcCxcbiAgZmFEZXNrdG9wQWx0OiBmYURlc2t0b3BBbHQsXG4gIGZhUGxhbmVDaXJjbGVYbWFyazogZmFQbGFuZUNpcmNsZVhtYXJrLFxuICBmYVJldHdlZXQ6IGZhUmV0d2VldCxcbiAgZmFVc2VyR2VhcjogZmFVc2VyR2VhcixcbiAgZmFVc2VyQ29nOiBmYVVzZXJDb2csXG4gIGZhQm9yZGVyQWxsOiBmYUJvcmRlckFsbCxcbiAgZmFDb2luczogZmFDb2lucyxcbiAgZmFNYXJzU3Ryb2tlOiBmYU1hcnNTdHJva2UsXG4gIGZhSGFuZHNoYWtlQW5nbGU6IGZhSGFuZHNoYWtlQW5nbGUsXG4gIGZhSGFuZHNIZWxwaW5nOiBmYUhhbmRzSGVscGluZyxcbiAgZmFBcnJvd0Rvd246IGZhQXJyb3dEb3duLFxuICBmYUxvY2F0aW9uRG90OiBmYUxvY2F0aW9uRG90LFxuICBmYU1hcE1hcmtlckFsdDogZmFNYXBNYXJrZXJBbHQsXG4gIGZhUGx1Z0NpcmNsZUV4Y2xhbWF0aW9uOiBmYVBsdWdDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFDb29raWVCaXRlOiBmYUNvb2tpZUJpdGUsXG4gIGZhU2NyZXdkcml2ZXJXcmVuY2g6IGZhU2NyZXdkcml2ZXJXcmVuY2gsXG4gIGZhVG9vbHM6IGZhVG9vbHMsXG4gIGZhSW5kZW50OiBmYUluZGVudCxcbiAgZmFCYXJzOiBmYUJhcnMsXG4gIGZhTmF2aWNvbjogZmFOYXZpY29uLFxuICBmYUhhbmRzUHJheWluZzogZmFIYW5kc1ByYXlpbmcsXG4gIGZhUHJheWluZ0hhbmRzOiBmYVByYXlpbmdIYW5kcyxcbiAgZmFWaXJ1c2VzOiBmYVZpcnVzZXMsXG4gIGZhU2Nob29sRmxhZzogZmFTY2hvb2xGbGFnLFxuICBmYVRyYWRlbWFyazogZmFUcmFkZW1hcmssXG4gIGZhRmlyZUJ1cm5lcjogZmFGaXJlQnVybmVyLFxuICBmYUZhY2VTbWlsZUJlYW06IGZhRmFjZVNtaWxlQmVhbSxcbiAgZmFTbWlsZUJlYW06IGZhU21pbGVCZWFtLFxuICBmYVRlbnRBcnJvd0xlZnRSaWdodDogZmFUZW50QXJyb3dMZWZ0UmlnaHQsXG4gIGZhUm91dGU6IGZhUm91dGUsXG4gIGZhQW5nbGVzVXA6IGZhQW5nbGVzVXAsXG4gIGZhQW5nbGVEb3VibGVVcDogZmFBbmdsZURvdWJsZVVwLFxuICBmYUJ1Y2tldDogZmFCdWNrZXQsXG4gIGZhTGVzc1RoYW5FcXVhbDogZmFMZXNzVGhhbkVxdWFsLFxuICBmYUZvbGRlckNsb3NlZDogZmFGb2xkZXJDbG9zZWQsXG4gIGZhUGVyc29uVGhyb3VnaFdpbmRvdzogZmFQZXJzb25UaHJvdWdoV2luZG93LFxuICBmYVNjaG9vbExvY2s6IGZhU2Nob29sTG9jayxcbiAgZmFQZXJzb25CdXJzdDogZmFQZXJzb25CdXJzdCxcbiAgZmFMZWZ0TG9uZzogZmFMZWZ0TG9uZyxcbiAgZmFMb25nQXJyb3dBbHRMZWZ0OiBmYUxvbmdBcnJvd0FsdExlZnQsXG4gIGZhTG9jYXRpb25Dcm9zc2hhaXJzOiBmYUxvY2F0aW9uQ3Jvc3NoYWlycyxcbiAgZmFMb2NhdGlvbjogZmFMb2NhdGlvbixcbiAgZmFQZXJzb25Eb3RzRnJvbUxpbmU6IGZhUGVyc29uRG90c0Zyb21MaW5lLFxuICBmYURpYWdub3NlczogZmFEaWFnbm9zZXMsXG4gIGZhR2F1Z2VTaW1wbGVIaWdoOiBmYUdhdWdlU2ltcGxlSGlnaCxcbiAgZmFUYWNob21ldGVyOiBmYVRhY2hvbWV0ZXIsXG4gIGZhVGFjaG9tZXRlckZhc3Q6IGZhVGFjaG9tZXRlckZhc3QsXG4gIGZhQW5nbGVzTGVmdDogZmFBbmdsZXNMZWZ0LFxuICBmYUFuZ2xlRG91YmxlTGVmdDogZmFBbmdsZURvdWJsZUxlZnQsXG4gIGZhVXBEb3duOiBmYVVwRG93bixcbiAgZmFBcnJvd3NBbHRWOiBmYUFycm93c0FsdFYsXG4gIGZhQmF0dGVyeUVtcHR5OiBmYUJhdHRlcnlFbXB0eSxcbiAgZmFCYXR0ZXJ5MDogZmFCYXR0ZXJ5MCxcbiAgZmFLZXlib2FyZDogZmFLZXlib2FyZCxcbiAgZmFDb29raWU6IGZhQ29va2llLFxuICBmYVN0b3B3YXRjaDogZmFTdG9wd2F0Y2gsXG4gIGZhRWplY3Q6IGZhRWplY3QsXG4gIGZhU2F0ZWxsaXRlRGlzaDogZmFTYXRlbGxpdGVEaXNoLFxuICBmYUZhY2VSb2xsaW5nRXllczogZmFGYWNlUm9sbGluZ0V5ZXMsXG4gIGZhTWVoUm9sbGluZ0V5ZXM6IGZhTWVoUm9sbGluZ0V5ZXMsXG4gIGZhTGlzdENoZWNrOiBmYUxpc3RDaGVjayxcbiAgZmFUYXNrczogZmFUYXNrcyxcbiAgZmFTYWNrWG1hcms6IGZhU2Fja1htYXJrLFxuICBmYUhhc2h0YWc6IGZhSGFzaHRhZyxcbiAgZmFUcmFpbjogZmFUcmFpbixcbiAgZmFHYW1lcGFkOiBmYUdhbWVwYWQsXG4gIGZhRmlsZUV4cG9ydDogZmFGaWxlRXhwb3J0LFxuICBmYUFycm93UmlnaHRGcm9tRmlsZTogZmFBcnJvd1JpZ2h0RnJvbUZpbGUsXG4gIGZhRmFjZUdyaW1hY2U6IGZhRmFjZUdyaW1hY2UsXG4gIGZhR3JpbWFjZTogZmFHcmltYWNlLFxuICBmYVRyYWluU3Vid2F5OiBmYVRyYWluU3Vid2F5LFxuICBmYVN1YndheTogZmFTdWJ3YXksXG4gIGZhQ2lyY2xlRG90OiBmYUNpcmNsZURvdCxcbiAgZmFEb3RDaXJjbGU6IGZhRG90Q2lyY2xlLFxuICBmYU9iamVjdEdyb3VwOiBmYU9iamVjdEdyb3VwLFxuICBmYVNoaXA6IGZhU2hpcCxcbiAgZmFDOiBmYUMsXG4gIGZhU3F1YXJlUGhvbmU6IGZhU3F1YXJlUGhvbmUsXG4gIGZhUGhvbmVTcXVhcmU6IGZhUGhvbmVTcXVhcmUsXG4gIGZhUnVsZXJDb21iaW5lZDogZmFSdWxlckNvbWJpbmVkLFxuICBmYUFycm93c1JvdGF0ZTogZmFBcnJvd3NSb3RhdGUsXG4gIGZhUmVmcmVzaDogZmFSZWZyZXNoLFxuICBmYVN5bmM6IGZhU3luYyxcbiAgZmFQZXJzb25EcmVzczogZmFQZXJzb25EcmVzcyxcbiAgZmFGZW1hbGU6IGZhRmVtYWxlLFxuICBmYUJvb2tPcGVuOiBmYUJvb2tPcGVuLFxuICBmYUZvbGRlclRyZWU6IGZhRm9sZGVyVHJlZSxcbiAgZmFCb3hBcmNoaXZlOiBmYUJveEFyY2hpdmUsXG4gIGZhQXJjaGl2ZTogZmFBcmNoaXZlLFxuICBmYVRlbnRBcnJvd0Rvd25Ub0xpbmU6IGZhVGVudEFycm93RG93blRvTGluZSxcbiAgZmFRcmNvZGU6IGZhUXJjb2RlLFxuICBmYURyYWdvbjogZmFEcmFnb24sXG4gIGZhSG91cmdsYXNzRW5kOiBmYUhvdXJnbGFzc0VuZCxcbiAgZmFIb3VyZ2xhc3MzOiBmYUhvdXJnbGFzczMsXG4gIGZhR3JpcDogZmFHcmlwLFxuICBmYUdyaWRIb3Jpem9udGFsOiBmYUdyaWRIb3Jpem9udGFsLFxuICBmYUdyaXBIb3Jpem9udGFsOiBmYUdyaXBIb3Jpem9udGFsLFxuICBmYUJvcmRlclRvcExlZnQ6IGZhQm9yZGVyVG9wTGVmdCxcbiAgZmFCb3JkZXJTdHlsZTogZmFCb3JkZXJTdHlsZSxcbiAgZmFMaXN0VWw6IGZhTGlzdFVsLFxuICBmYUxpc3REb3RzOiBmYUxpc3REb3RzLFxuICBmYVBlb3BsZVJvYmJlcnk6IGZhUGVvcGxlUm9iYmVyeSxcbiAgZmFNb2JpbGVCdXR0b246IGZhTW9iaWxlQnV0dG9uLFxuICBmYUFycm93RG93bkFaOiBmYUFycm93RG93bkFaLFxuICBmYVNvcnRBbHBoYUFzYzogZmFTb3J0QWxwaGFBc2MsXG4gIGZhU29ydEFscGhhRG93bjogZmFTb3J0QWxwaGFEb3duLFxuICBmYU1vbmV5QmlsbDogZmFNb25leUJpbGwsXG4gIGZhQ2lyY2xlTWludXM6IGZhQ2lyY2xlTWludXMsXG4gIGZhTWludXNDaXJjbGU6IGZhTWludXNDaXJjbGUsXG4gIGZhQXJyb3dQb2ludGVyOiBmYUFycm93UG9pbnRlcixcbiAgZmFNb3VzZVBvaW50ZXI6IGZhTW91c2VQb2ludGVyLFxuICBmYVNxdWFyZVNoYXJlTm9kZXM6IGZhU3F1YXJlU2hhcmVOb2RlcyxcbiAgZmFTaGFyZUFsdFNxdWFyZTogZmFTaGFyZUFsdFNxdWFyZSxcbiAgZmFUYWJsZUNlbGxzTGFyZ2U6IGZhVGFibGVDZWxsc0xhcmdlLFxuICBmYVRoTGFyZ2U6IGZhVGhMYXJnZSxcbiAgZmFDYXQ6IGZhQ2F0LFxuICBmYUNhbGVuZGFyV2VlazogZmFDYWxlbmRhcldlZWssXG4gIGZhQ29kZUNvbXBhcmU6IGZhQ29kZUNvbXBhcmUsXG4gIGZhUm9hZENpcmNsZVhtYXJrOiBmYVJvYWRDaXJjbGVYbWFyayxcbiAgZmFQYWxsZXQ6IGZhUGFsbGV0LFxuICBmYUNha2VDYW5kbGVzOiBmYUNha2VDYW5kbGVzLFxuICBmYUJpcnRoZGF5Q2FrZTogZmFCaXJ0aGRheUNha2UsXG4gIGZhQ2FrZTogZmFDYWtlLFxuICBmYUJ1Z1NsYXNoOiBmYUJ1Z1NsYXNoLFxuICBmYVRhcnA6IGZhVGFycCxcbiAgZmFEaWFncmFtUHJlZGVjZXNzb3I6IGZhRGlhZ3JhbVByZWRlY2Vzc29yLFxuICBmYUZhY2VGbHVzaGVkOiBmYUZhY2VGbHVzaGVkLFxuICBmYUZsdXNoZWQ6IGZhRmx1c2hlZCxcbiAgZmFEaWFncmFtTmV4dDogZmFEaWFncmFtTmV4dCxcbiAgZmFBbmNob3JDaXJjbGVYbWFyazogZmFBbmNob3JDaXJjbGVYbWFyayxcbiAgZmFQZXJzb25DaXJjbGVYbWFyazogZmFQZXJzb25DaXJjbGVYbWFyayxcbiAgZmFTcGE6IGZhU3BhLFxuICBmYUJhcnNQcm9ncmVzczogZmFCYXJzUHJvZ3Jlc3MsXG4gIGZhVGFza3NBbHQ6IGZhVGFza3NBbHQsXG4gIGZhSGVhcnRDaXJjbGVDaGVjazogZmFIZWFydENpcmNsZUNoZWNrLFxuICBmYU1hcnNTdHJva2VSaWdodDogZmFNYXJzU3Ryb2tlUmlnaHQsXG4gIGZhTWFyc1N0cm9rZUg6IGZhTWFyc1N0cm9rZUgsXG4gIGZhVG93ZXJPYnNlcnZhdGlvbjogZmFUb3dlck9ic2VydmF0aW9uLFxuICBmYVN0ZXJsaW5nU2lnbjogZmFTdGVybGluZ1NpZ24sXG4gIGZhR2JwOiBmYUdicCxcbiAgZmFQb3VuZFNpZ246IGZhUG91bmRTaWduLFxuICBmYUZhdWNldERyaXA6IGZhRmF1Y2V0RHJpcCxcbiAgZmFDaXJjbGVJbmZvOiBmYUNpcmNsZUluZm8sXG4gIGZhSW5mb0NpcmNsZTogZmFJbmZvQ2lyY2xlLFxuICBmYUZlYXRoZXI6IGZhRmVhdGhlcixcbiAgZmFCb3dsUmljZTogZmFCb3dsUmljZSxcbiAgZmFTdGFySGFsZlN0cm9rZTogZmFTdGFySGFsZlN0cm9rZSxcbiAgZmFTdGFySGFsZkFsdDogZmFTdGFySGFsZkFsdCxcbiAgZmFUZW1wZXJhdHVyZUFycm93RG93bjogZmFUZW1wZXJhdHVyZUFycm93RG93bixcbiAgZmFUZW1wZXJhdHVyZURvd246IGZhVGVtcGVyYXR1cmVEb3duLFxuICBmYU1hc2tWZW50aWxhdG9yOiBmYU1hc2tWZW50aWxhdG9yLFxuICBmYUZpbGVWaWRlbzogZmFGaWxlVmlkZW8sXG4gIGZhQXJyb3dUcmVuZERvd246IGZhQXJyb3dUcmVuZERvd24sXG4gIGZhT2lsQ2FuOiBmYU9pbENhbixcbiAgZmFQZW9wbGVDYXJyeUJveDogZmFQZW9wbGVDYXJyeUJveCxcbiAgZmFQZW9wbGVDYXJyeTogZmFQZW9wbGVDYXJyeSxcbiAgZmFDaGFpcjogZmFDaGFpcixcbiAgZmFXaW5kOiBmYVdpbmQsXG4gIGZhTGF5ZXJHcm91cDogZmFMYXllckdyb3VwLFxuICBmYUhlYWRTaWRlTWFzazogZmFIZWFkU2lkZU1hc2ssXG4gIGZhSGFuZHM6IGZhSGFuZHMsXG4gIGZhU2lnbkxhbmd1YWdlOiBmYVNpZ25MYW5ndWFnZSxcbiAgZmFTaWduaW5nOiBmYVNpZ25pbmcsXG4gIGZhVGFibGV0czogZmFUYWJsZXRzLFxuICBmYVdlaWdodEhhbmdpbmc6IGZhV2VpZ2h0SGFuZ2luZyxcbiAgZmFEaWNlOiBmYURpY2UsXG4gIGZhU2hvcFNsYXNoOiBmYVNob3BTbGFzaCxcbiAgZmFTdG9yZUFsdFNsYXNoOiBmYVN0b3JlQWx0U2xhc2gsXG4gIGZhU29ydERvd246IGZhU29ydERvd24sXG4gIGZhU29ydERlc2M6IGZhU29ydERlc2MsXG4gIGZhUGVzZXRhU2lnbjogZmFQZXNldGFTaWduLFxuICBmYVRhYmxldFNjcmVlbkJ1dHRvbjogZmFUYWJsZXRTY3JlZW5CdXR0b24sXG4gIGZhVGFibGV0QWx0OiBmYVRhYmxldEFsdCxcbiAgZmFIYW5kSG9sZGluZ0RvbGxhcjogZmFIYW5kSG9sZGluZ0RvbGxhcixcbiAgZmFIYW5kSG9sZGluZ1VzZDogZmFIYW5kSG9sZGluZ1VzZCxcbiAgZmFTaGllbGQ6IGZhU2hpZWxkLFxuICBmYVNoaWVsZEJsYW5rOiBmYVNoaWVsZEJsYW5rLFxuICBmYUZhY2VMYXVnaDogZmFGYWNlTGF1Z2gsXG4gIGZhTGF1Z2g6IGZhTGF1Z2gsXG4gIGZhSGFuZHNIb2xkaW5nOiBmYUhhbmRzSG9sZGluZyxcbiAgZmFDYXJ0U2hvcHBpbmc6IGZhQ2FydFNob3BwaW5nLFxuICBmYVNob3BwaW5nQ2FydDogZmFTaG9wcGluZ0NhcnQsXG4gIGZhT2N0YWdvbjogZmFPY3RhZ29uLFxuICBmYUhhbmRQb2ludGVyOiBmYUhhbmRQb2ludGVyLFxuICBmYVJlZ2lzdGVyZWQ6IGZhUmVnaXN0ZXJlZCxcbiAgZmFIb3VzZVNpZ25hbDogZmFIb3VzZVNpZ25hbCxcbiAgZmFCYW5nbGFkZXNoaVRha2FTaWduOiBmYUJhbmdsYWRlc2hpVGFrYVNpZ25cbn07XG5cbmV4cG9ydCB7IGljb25zIGFzIGZhcywgcHJlZml4LCBmYTAsIGZhMSwgZmEyLCBmYTMsIGZhNCwgZmE1LCBmYTYsIGZhNywgZmE4LCBmYTksIGZhRG9sbGFyU2lnbiwgZmFEb2xsYXIsIGZhVXNkLCBmYURvZywgZmFUcnVja01vdmluZywgZmFSb3RhdGUsIGZhU3luY0FsdCwgZmFTcXVhcmVNaW51cywgZmFNaW51c1NxdWFyZSwgZmFBbGlnbkp1c3RpZnksIGZhQ2FsZW5kYXJDaGVjaywgZmFGYWNlS2lzcywgZmFLaXNzLCBmYUtpdGNoZW5TZXQsIGZhRG5hLCBmYUNoaWxkUmVhY2hpbmcsIGZhUGFzdGUsIGZhRmlsZUNsaXBib2FyZCwgZmFNZXRlb3IsIGZhR2VhcnMsIGZhQ29ncywgZmFGaWxlQ2lyY2xlUGx1cywgZmFJY2ljbGVzLCBmYUFycm93VHJlbmRVcCwgZmFIZXhhZ29uTm9kZXNCb2x0LCBmYVF1ZXN0aW9uLCBmYUhhbmRzQm91bmQsIGZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2UsIGZhRmlsZUFycm93RG93biwgZmFGaWxlRG93bmxvYWQsIGZhUGVyc29uQm9vdGgsIGZhTG9jdXN0LCBmYVJpZ2h0TG9uZywgZmFMb25nQXJyb3dBbHRSaWdodCwgZmFUcnVja0Ryb3BsZXQsIGZhSGFuZEhvbGRpbmdNZWRpY2FsLCBmYUhhbmRQb2ludExlZnQsIGZhQ2FsY3VsYXRvciwgZmFNaW51cywgZmFTdWJ0cmFjdCwgZmFBcnJvd1VwWkEsIGZhU29ydEFscGhhVXBBbHQsIGZhTWljcm9waG9uZVNsYXNoLCBmYVNxdWFyZVBlbiwgZmFQZW5TcXVhcmUsIGZhUGVuY2lsU3F1YXJlLCBmYUhhbmRGaXN0LCBmYUZpc3RSYWlzZWQsIGZhQ29tbWVudFNtcywgZmFTbXMsIGZhU2ltQ2FyZCwgZmFTY2FsZUJhbGFuY2VkLCBmYUJhbGFuY2VTY2FsZSwgZmFDYXIsIGZhQXV0b21vYmlsZSwgZmFDcm9wU2ltcGxlLCBmYUNyb3BBbHQsIGZhTWVkYWwsIGZhU2Nyb2xsLCBmYUZpbGVFeGNlbCwgZmFGaWx0ZXIsIGZhRHJ1bSwgZmFNYXBQaW4sIGZhU2NhbGVVbmJhbGFuY2VkRmxpcCwgZmFCYWxhbmNlU2NhbGVSaWdodCwgZmFBcnJvd3NUb0NpcmNsZSwgZmFFbnZlbG9wZSwgZmFCYWJ5LCBmYVNxdWFyZUNhcmV0RG93biwgZmFDYXJldFNxdWFyZURvd24sIGZhVGVudCwgZmFBLCBmYVBhcmFjaHV0ZUJveCwgZmFDYXJ0QXJyb3dEb3duLCBmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uLCBmYUNsb3VkQXJyb3dVcCwgZmFDbG91ZFVwbG9hZCwgZmFDbG91ZFVwbG9hZEFsdCwgZmFBdCwgZmFJbmRpYW5SdXBlZVNpZ24sIGZhSW5kaWFuUnVwZWUsIGZhSW5yLCBmYVRydWNrLCBmYUNoYWxrYm9hcmRVc2VyLCBmYUNoYWxrYm9hcmRUZWFjaGVyLCBmYVVzZXJDaGVjaywgZmFVc2VyTmluamEsIGZhUGxhbnRXaWx0LCBmYVdlaWdodFNjYWxlLCBmYVdlaWdodCwgZmFDYXJldFJpZ2h0LCBmYUZsb3JpblNpZ24sIGZhQmVsbCwgZmFMYXJpU2lnbiwgZmFNaWxsU2lnbiwgZmFQZXJzb25Tbm93Ym9hcmRpbmcsIGZhU25vd2JvYXJkaW5nLCBmYVR0eSwgZmFUZWxldHlwZSwgZmFVc2Vyc1JlY3RhbmdsZSwgZmFNb2JpbGUsIGZhTW9iaWxlQW5kcm9pZCwgZmFNb2JpbGVQaG9uZSwgZmFBcnJvd3NUdXJuVG9Eb3RzLCBmYUV4Y2xhbWF0aW9uLCBmYUNodXJjaCwgZmFUb2dnbGVPZmYsIGZhU2hvZVByaW50cywgZmFGaWxlQ2lyY2xlRXhjbGFtYXRpb24sIGZhV2FsbGV0LCBmYU1lc3NhZ2UsIGZhQ29tbWVudEFsdCwgZmFUcm9waHksIGZhRmFjZURpenp5LCBmYURpenp5LCBmYUJhY3RlcmlhLCBmYUVhckRlYWYsIGZhRGVhZiwgZmFEZWFmbmVzcywgZmFIYXJkT2ZIZWFyaW5nLCBmYVBlb3BsZUFycm93cywgZmFQZW9wbGVBcnJvd3NMZWZ0UmlnaHQsIGZhSGFuZHNDbGFwcGluZywgZmFWaXJ1c0NvdmlkU2xhc2gsIGZhQ2FsZW5kYXJEYXlzLCBmYUNhbGVuZGFyQWx0LCBmYURpYW1vbmRUdXJuUmlnaHQsIGZhRGlyZWN0aW9ucywgZmFIYW5kUG9pbnRVcCwgZmFCZXppZXJDdXJ2ZSwgZmFQZXJzb25IYWxmRHJlc3MsIGZhU3F1YXJlUG9sbEhvcml6b250YWwsIGZhUG9sbEgsIGZhU2Nob29sQ2lyY2xlWG1hcmssIGZhSGFuZExpemFyZCwgZmFDaGFsa2JvYXJkLCBmYUJsYWNrYm9hcmQsIGZhVXBSaWdodEZyb21TcXVhcmUsIGZhRXh0ZXJuYWxMaW5rQWx0LCBmYVNxdWFyZUZ1bGwsIGZhQ2xvdmVyLCBmYVRlZXRoT3BlbiwgZmFCYXJzU3RhZ2dlcmVkLCBmYVJlb3JkZXIsIGZhU3RyZWFtLCBmYVdhcmVob3VzZSwgZmFTd2F0Y2hib29rLCBmYUNhbXBncm91bmQsIGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQsIGZhR2xhc3NlcywgZmFDaXJjbGVQYXVzZSwgZmFQYXVzZUNpcmNsZSwgZmFNZW1vcnksIGZhR2lmdCwgZmFNb25leUJpbGxXaGVhdCwgZmFEdW5nZW9uLCBmYVN1aXRjYXNlTWVkaWNhbCwgZmFNZWRraXQsIGZhUGVyc29uQ2FuZSwgZmFHYXVnZSwgZmFEYXNoYm9hcmQsIGZhR2F1Z2VNZWQsIGZhVGFjaG9tZXRlckFsdEF2ZXJhZ2UsIGZhRW52ZWxvcGVPcGVuVGV4dCwgZmFUb29sYm94LCBmYVBvd2VyT2ZmLCBmYVNpZ25hbCwgZmFTaWduYWw1LCBmYVNpZ25hbFBlcmZlY3QsIGZhQXJyb3dzU3BpbiwgZmFKb2ludCwgZmFCcmFpbGxlLCBmYUJhc2tldFNob3BwaW5nLCBmYVNob3BwaW5nQmFza2V0LCBmYUJyaWRnZSwgZmFQbGFuZUFycml2YWwsIGZhQ2FzaFJlZ2lzdGVyLCBmYVJpbmcsIGZhU2hhcmVOb2RlcywgZmFTaGFyZUFsdCwgZmFQZXJzb25DaXJjbGVFeGNsYW1hdGlvbiwgZmFCaW5vY3VsYXJzLCBmYUtpcFNpZ24sIGZhSGFyZERyaXZlLCBmYUhkZCwgZmFSYW5raW5nU3RhciwgZmFVc2VyVGllLCBmYUVsbGlwc2lzLCBmYUVsbGlwc2lzSCwgZmFTdG9yZVNsYXNoLCBmYVBlcmNlbnQsIGZhUGVyY2VudGFnZSwgZmFGaWxlWmlwcGVyLCBmYUZpbGVBcmNoaXZlLCBmYURpc3BsYXksIGZhSWNvbnMsIGZhSGVhcnRNdXNpY0NhbWVyYUJvbHQsIGZhUnVsZXJWZXJ0aWNhbCwgZmFNYXBMb2NhdGlvbkRvdCwgZmFNYXBNYXJrZWRBbHQsIGZhSGVhcnRDcmFjaywgZmFIZWFydEJyb2tlbiwgZmFDb3csIGZhUnNzLCBmYUZlZWQsIGZhTWFnbmlmeWluZ0dsYXNzLCBmYVNlYXJjaCwgZmFDbG91ZE1vb24sIGZhQm94ZXNTdGFja2VkLCBmYUJveGVzLCBmYUJveGVzQWx0LCBmYUNvZGVCcmFuY2gsIGZhQmFuLCBmYUNhbmNlbCwgZmFKdWdEZXRlcmdlbnQsIGZhUmVwbHksIGZhTWFpbFJlcGx5LCBmYVN1blBsYW50V2lsdCwgZmFCYWN0ZXJpdW0sIGZhUmVjb3JkVmlueWwsIGZhRmxvcHB5RGlzaywgZmFTYXZlLCBmYVRvaWxldHNQb3J0YWJsZSwgZmFPLCBmYVBhbGV0dGUsIGZhVW5sb2NrLCBmYUVhckxpc3RlbiwgZmFBc3Npc3RpdmVMaXN0ZW5pbmdTeXN0ZW1zLCBmYUNvZGVQdWxsUmVxdWVzdCwgZmFLZXksIGZhU2t1bGwsIGZhTWFyc1N0cm9rZVVwLCBmYU1hcnNTdHJva2VWLCBmYUZpcmVGbGFtZVNpbXBsZSwgZmFCdXJuLCBmYVRyZWUsIGZhU21vZywgZmFTLCBmYUplZGksIGZhUGVyc29uSGlraW5nLCBmYUhpa2luZywgZmFBcnJvd3NVcFRvTGluZSwgZmFNYXJzRG91YmxlLCBmYVRoZXJtb21ldGVyLCBmYVBhaW50YnJ1c2gsIGZhUGFpbnRCcnVzaCwgZmFOZXV0ZXIsIGZhU3F1YXJlUGhvbmVGbGlwLCBmYVBob25lU3F1YXJlQWx0LCBmYUZhY2VHcmluVG9uZ3VlU3F1aW50LCBmYUdyaW5Ub25ndWVTcXVpbnQsIGZhQ29tbWVudERvbGxhciwgZmFIaXBwbywgZmFCb3dsRm9vZCwgZmFTcXVhcmVWaXJ1cywgZmFDbG91ZFN1blJhaW4sIGZhQXJyb3dSaWdodExvbmcsIGZhTG9uZ0Fycm93UmlnaHQsIGZhQnVpbGRpbmdVbiwgZmFUZW1wZXJhdHVyZUxvdywgZmFEb29yT3BlbiwgZmFBbGlnbkxlZnQsIGZhQ2FtZXJhLCBmYUNhbWVyYUFsdCwgZmFVc2Vyc1JheXMsIGZhUmFpbmJvdywgZmFTaXRlbWFwLCBmYUZhY2VHcmluU3RhcnMsIGZhR3JpblN0YXJzLCBmYVNvcnRVcCwgZmFTb3J0QXNjLCBmYUV5ZSwgZmFDYXJldExlZnQsIGZhQXBwbGVXaG9sZSwgZmFBcHBsZUFsdCwgZmFTY3JvbGxUb3JhaCwgZmFUb3JhaCwgZmFIb3VzZUxvY2ssIGZhQXJyb3dzTGVmdFJpZ2h0VG9MaW5lLCBmYVRyYXNoLCBmYUZhY2VTYWRUZWFyLCBmYVNhZFRlYXIsIGZhRmF4LCBmYVBlcnNvbkNpcmNsZVBsdXMsIGZhSGFtc2EsIGZhUGVyc29uQ2lyY2xlUXVlc3Rpb24sIGZhQ2xpcGJvYXJkQ2hlY2ssIGZhU2hhcmVGcm9tU3F1YXJlLCBmYVNoYXJlU3F1YXJlLCBmYVJlY2VpcHQsIGZhRXF1YWxzLCBmYUNoZXZyb25VcCwgZmFWaXJ1c1NsYXNoLCBmYVNsYXNoLCBmYUV4cGFuZCwgZmFOb3RlU3RpY2t5LCBmYVN0aWNreU5vdGUsIGZhVGFibGVDb2x1bW5zLCBmYUNvbHVtbnMsIGZhUGVyc29uU2hlbHRlciwgZmFDaXJjbGVOb3RjaCwgZmFXYXRlciwgZmFEZWxldGVMZWZ0LCBmYUJhY2tzcGFjZSwgZmFCcm9vbUJhbGwsIGZhUXVpZGRpdGNoLCBmYVF1aWRkaXRjaEJyb29tQmFsbCwgZmFKLCBmYVNodXR0bGVTcGFjZSwgZmFTcGFjZVNodXR0bGUsIGZhWWluWWFuZywgZmFTdG9wLCBmYVRyb3dlbCwgZmFIYW5kQmFja0Zpc3QsIGZhSGFuZFJvY2ssIGZhVGVtcGVyYXR1cmVIaWdoLCBmYUdyZWF0ZXJUaGFuLCBmYUNydXRjaCwgZmFTZXB0YWdvbiwgZmFIZXB0YWdvbiwgZmFTdHJlZXRWaWV3LCBmYVdhdmVTcXVhcmUsIGZhQW5nbGVMZWZ0LCBmYVNjcmV3ZHJpdmVyLCBmYVRyYWN0b3IsIGZhQnJpZGdlQ2lyY2xlWG1hcmssIGZhVmlhbHMsIGZhU3RldGhvc2NvcGUsIGZhUG9kY2FzdCwgZmFBcnJvd1VwUmlnaHREb3RzLCBmYUNoZXNzUXVlZW4sIGZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb24sIGZhRWxsaXBzaXNWZXJ0aWNhbCwgZmFFbGxpcHNpc1YsIGZhSGVhcnRDaXJjbGVFeGNsYW1hdGlvbiwgZmFCdWlsZGluZ0NpcmNsZUV4Y2xhbWF0aW9uLCBmYVBlcnNvbkFycm93VXBGcm9tTGluZSwgZmFOb3RFcXVhbCwgZmFUcmFpblRyYW0sIGZhUGxhbmVEZXBhcnR1cmUsIGZhUmlnaHRUb0JyYWNrZXQsIGZhU2lnbkluQWx0LCBmYVNkQ2FyZCwgZmFIb3VzZUNpcmNsZUV4Y2xhbWF0aW9uLCBmYVNoZWtlbFNpZ24sIGZhSWxzLCBmYVNoZWtlbCwgZmFTaGVxZWwsIGZhU2hlcWVsU2lnbiwgZmFSYWRpbywgZmFIYW5kRG90cywgZmFBbGxlcmdpZXMsIGZhQm9va1NrdWxsLCBmYUJvb2tEZWFkLCBmYVVubG9ja0tleWhvbGUsIGZhVW5sb2NrQWx0LCBmYUZpbGVBcnJvd1VwLCBmYUZpbGVVcGxvYWQsIGZhRmFjZUdyaW5UZWFycywgZmFHcmluVGVhcnMsIGZhUGVuVG9TcXVhcmUsIGZhRWRpdCwgZmFFYXJ0aEV1cm9wZSwgZmFHbG9iZUV1cm9wZSwgZmFGYWNlR3JpbkJlYW1Td2VhdCwgZmFHcmluQmVhbVN3ZWF0LCBmYUNpcmNsZUhhbGZTdHJva2UsIGZhQWRqdXN0LCBmYVBlcnNvbk1pbGl0YXJ5VG9QZXJzb24sIGZhVGFibGVDZWxsc0NvbHVtbkxvY2ssIGZhVHJ1Y2tGaWVsZFVuLCBmYUNsb2NrLCBmYUNsb2NrRm91ciwgZmFCb29rLCBmYUZhY2VMYXVnaFdpbmssIGZhTGF1Z2hXaW5rLCBmYUNsb3VkTWVhdGJhbGwsIGZhQ2hhcnRBcmVhLCBmYUFyZWFDaGFydCwgZmFSdXBpYWhTaWduLCBmYVRleHRXaWR0aCwgZmFTYXRlbGxpdGUsIGZhTWFnbmlmeWluZ0dsYXNzTWludXMsIGZhU2VhcmNoTWludXMsIGZhUGVvcGxlR3JvdXAsIGZhU3F1YXJlQmluYXJ5LCBmYU1hc2tzVGhlYXRlciwgZmFUaGVhdGVyTWFza3MsIGZhQ2FydFBsdXMsIGZhSGFuZHNBc2xJbnRlcnByZXRpbmcsIGZhQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmcsIGZhQXNsSW50ZXJwcmV0aW5nLCBmYUhhbmRzQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmcsIGZhVGFibGVDZWxsc1Jvd1VubG9jaywgZmFSb2NrZXQsIGZhU2hyaW1wLCBmYVRlbmdlU2lnbiwgZmFUZW5nZSwgZmFIb3VzZUNoaW1uZXlNZWRpY2FsLCBmYUNsaW5pY01lZGljYWwsIGZhVXNlcnNTbGFzaCwgZmFQYXBlclBsYW5lLCBmYUJvb2tBdGxhcywgZmFBdGxhcywgZmFUYWJsZSwgZmFIZWFydCwgZmFDaXJjbGVDaGV2cm9uVXAsIGZhQ2hldnJvbkNpcmNsZVVwLCBmYUJhdHRlcnlIYWxmLCBmYUJhdHRlcnkzLCBmYUZvbnRBd2Vzb21lLCBmYUZvbnRBd2Vzb21lRmxhZywgZmFGb250QXdlc29tZUxvZ29GdWxsLCBmYUhhbmRjdWZmcywgZmFIYXRDb3dib3lTaWRlLCBmYUluZHVzdHJ5LCBmYUxpbmVzTGVhbmluZywgZmFQYXNzcG9ydCwgZmFJbmZpbml0eSwgZmFDbG9uZSwgZmFGb3J3YXJkLCBmYU0sIGZhUm9hZFNwaWtlcywgZmFNb3VudGFpbiwgZmFDaGVzcywgZmFUZW1wZXJhdHVyZVRocmVlUXVhcnRlcnMsIGZhVGVtcGVyYXR1cmUzLCBmYVRoZXJtb21ldGVyMywgZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnMsIGZhQiwgZmFTaGllbGRWaXJ1cywgZmFMaXRlY29pblNpZ24sIGZhRGljZUQ2LCBmYUdyaXBMaW5lc1ZlcnRpY2FsLCBmYUdvbGZCYWxsVGVlLCBmYUdvbGZCYWxsLCBmYUhleGFnb24sIGZhRm9sZGVyT3BlbiwgZmFLYWFiYSwgZmFIYW5kSG9sZGluZywgZmFTaW5nbGVRdW90ZVJpZ2h0LCBmYUJvdHRsZURyb3BsZXQsIGZhV2luZG93TWluaW1pemUsIGZhQ2hldnJvblJpZ2h0LCBmYUVnZywgZmFMYW5kbWFya0RvbWUsIGZhTGFuZG1hcmtBbHQsIGZhV29ybSwgZmFVc2VySW5qdXJlZCwgZmFTdHJpa2V0aHJvdWdoLCBmYUJsb2csIGZhU3RvcHdhdGNoMjAsIGZhVHJ1Y2tQaWNrdXAsIGZhU2VlZGxpbmcsIGZhU3Byb3V0LCBmYVRyYW5zZ2VuZGVyLCBmYVRyYW5zZ2VuZGVyQWx0LCBmYVN0YXJIYWxmLCBmYVBob3RvRmlsbSwgZmFQaG90b1ZpZGVvLCBmYVB1bXBNZWRpY2FsLCBmYUZpcmUsIGZhTWFnbmlmeWluZ0dsYXNzUGx1cywgZmFTZWFyY2hQbHVzLCBmYUZsYXNrLCBmYUFsaWduUmlnaHQsIGZhQ2FibGVDYXIsIGZhVHJhbSwgZmFLaXRNZWRpY2FsLCBmYUZpcnN0QWlkLCBmYUdyaXBMaW5lcywgZmFCdXJnZXIsIGZhSGFtYnVyZ2VyLCBmYVNub3dtYW4sIGZhSG90ZWwsIGZhUHJpbnQsIGZhVm9sbGV5YmFsbCwgZmFWb2xsZXliYWxsQmFsbCwgZmFUcmFmZmljTGlnaHQsIGZhUGxhbmVDaXJjbGVDaGVjaywgZmFVc2VycywgZmFDZXJ0aWZpY2F0ZSwgZmFBbGFybUNsb2NrLCBmYUhlbGljb3B0ZXJTeW1ib2wsIGZhSG91c2VDaGltbmV5Q3JhY2ssIGZhSG91c2VEYW1hZ2UsIGZhUGVyc29uTWlsaXRhcnlQb2ludGluZywgZmFEYXRhYmFzZSwgZmFOZXdzcGFwZXIsIGZhQ2xvdWRSYWluLCBmYU1heGltaXplLCBmYUV4cGFuZEFycm93c0FsdCwgZmFMb2NhdGlvbkFycm93LCBmYUNpdHksIGZhWFJheSwgZmFVbWJyZWxsYUJlYWNoLCBmYUFycm93UmlnaHRUb0JyYWNrZXQsIGZhU2lnbkluLCBmYUhlYWRzZXQsIGZhU3Bsb3RjaCwgZmFVcExvbmcsIGZhTG9uZ0Fycm93QWx0VXAsIGZhSGV4YWdvbk5vZGVzLCBmYUhvc3BpdGFsLCBmYUhvc3BpdGFsQWx0LCBmYUhvc3BpdGFsV2lkZSwgZmFQZXJzb25IYXJhc3NpbmcsIGZhTW9uZXlCaWxsVHJlbmRVcCwgZmFQZW5SdWxlciwgZmFQZW5jaWxSdWxlciwgZmFSZXBlYXQsIGZhQm9uZSwgZmFGaXJlRmxhbWVDdXJ2ZWQsIGZhRmlyZUFsdCwgZmFCdXNTaW1wbGUsIGZhQnVzQWx0LCBmYVZlbnVzTWFycywgZmFCbGVuZGVyLCBmYVUsIGZhU2hhcmUsIGZhTWFpbEZvcndhcmQsIGZhUGhvbmVGbGlwLCBmYVBob25lQWx0LCBmYVRvaWxldFBvcnRhYmxlLCBmYVBlcnNvblByZWduYW50LCBmYUxlc3NUaGFuLCBmYVN1cGVyc2NyaXB0LCBmYUNpcmNsZVN0b3AsIGZhU3RvcENpcmNsZSwgZmFBcnJvd3NVcERvd24sIGZhQXJyb3dzViwgZmFQb29TdG9ybSwgZmFQb29Cb2x0LCBmYVZpZGVvU2xhc2gsIGZhU3F1YXJlWG1hcmssIGZhVGltZXNTcXVhcmUsIGZhWG1hcmtTcXVhcmUsIGZhSGFuZEhvbGRpbmdEcm9wbGV0LCBmYUhhbmRIb2xkaW5nV2F0ZXIsIGZhV29uU2lnbiwgZmFLcncsIGZhV29uLCBmYU9iamVjdFVuZ3JvdXAsIGZhQ29tbWVudCwgZmFIaWxsQXZhbGFuY2hlLCBmYUFycm93c1RvRXllLCBmYVNub3dwbG93LCBmYUNoYXJ0R2FudHQsIGZhVmlkZW8sIGZhVmlkZW9DYW1lcmEsIGZhQ2hlc3NQYXduLCBmYVN5bmFnb2d1ZSwgZmFCdWlsZGluZ0NpcmNsZUNoZWNrLCBmYUNhbGVuZGFyUGx1cywgZmFXaGVlbGNoYWlyTW92ZSwgZmFXaGVlbGNoYWlyQWx0LCBmYVVzZXJTaGllbGQsIGZhQm9sZCwgZmFIZWFydFB1bHNlLCBmYUhlYXJ0YmVhdCwgZmFTcXVhcmVSb290VmFyaWFibGUsIGZhU3F1YXJlUm9vdEFsdCwgZmFIYW5kc0J1YmJsZXMsIGZhSGFuZHNXYXNoLCBmYU1hcmtlciwgZmFDbGlwYm9hcmQsIGZhUGxhY2VPZldvcnNoaXAsIGZhQ2FubmFiaXMsIGZhUGVvcGxlUm9vZiwgZmFEaXNlYXNlLCBmYUJvb2tCaWJsZSwgZmFCaWJsZSwgZmFDaGVzc0JvYXJkLCBmYU1hcnMsIGZhTGFwdG9wLCBmYVVzZXJYbWFyaywgZmFVc2VyVGltZXMsIGZhRmxhZ1VzYSwgZmFIYW5kTWlkZGxlRmluZ2VyLCBmYU1vcnRhclBlc3RsZSwgZmFIZWFkU2lkZUNvdWdoLCBmYVBsYW5lTG9jaywgZmFCYXR0ZXJ5VGhyZWVRdWFydGVycywgZmFCYXR0ZXJ5NCwgZmFGcmFuY1NpZ24sIGZhRmlsdGVyQ2lyY2xlRG9sbGFyLCBmYUZ1bm5lbERvbGxhciwgZmFDaGVlc2UsIGZhQ2lyY2xlSCwgZmFIb3NwaXRhbFN5bWJvbCwgZmFTY2hvb2wsIGZhRGljZUZpdmUsIGZhVG9ybmFkbywgZmFKZXRGaWdodGVyLCBmYUZpZ2h0ZXJKZXQsIGZhVGh1bWJzRG93biwgZmFCcm9vbSwgZmFGaWxlSW1wb3J0LCBmYUFycm93UmlnaHRUb0ZpbGUsIGZhVXRlbnNpbHMsIGZhQ3V0bGVyeSwgZmFJZEJhZGdlLCBmYVNwaWRlciwgZmFNb2JpbGVSZXRybywgZmFTaWduc1Bvc3QsIGZhTWFwU2lnbnMsIGZhR3JvdXBBcnJvd3NSb3RhdGUsIGZhQXJyb3dzU3BsaXRVcEFuZExlZnQsIGZhRmlsbERyaXAsIGZhU2hpZWxkSGVhcnQsIGZhUGVyc29uU2tpaW5nTm9yZGljLCBmYVNraWluZ05vcmRpYywgZmFTcXVhcmVDaGVjaywgZmFDaGVja1NxdWFyZSwgZmFCYXRoLCBmYUJhdGh0dWIsIGZhQ2hlc3NCaXNob3AsIGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbCwgZmFQcmVzY3JpcHRpb25Cb3R0bGVBbHQsIGZhRHJhd1BvbHlnb24sIGZhVmVjdG9yUG9seWdvbiwgZmFJQ3Vyc29yLCBmYUhlYXJ0Q2lyY2xlUGx1cywgZmFTaGllbGREb2csIGZhR3JlYXRlclRoYW5FcXVhbCwgZmFFbnZlbG9wZU9wZW4sIGZhTW91bmQsIGZhVm9pY2VtYWlsLCBmYVZlc3QsIGZhQXVkaW9EZXNjcmlwdGlvbiwgZmFXLCBmYUV5ZURyb3BwZXIsIGZhRXllRHJvcHBlckVtcHR5LCBmYUV5ZWRyb3BwZXIsIGZhQ2lyY2xlWG1hcmssIGZhVGltZXNDaXJjbGUsIGZhWG1hcmtDaXJjbGUsIGZhVHJhaWxlciwgZmFUdXJraXNoTGlyYVNpZ24sIGZhVHJ5LCBmYVR1cmtpc2hMaXJhLCBmYVZvbGNhbm8sIGZhV2FuZFNwYXJrbGVzLCBmYU1pY3JvcGhvbmUsIGZhQ3Jvd24sIGZhVGVudEFycm93VHVybkxlZnQsIGZhVHJ1Y2tGYXN0LCBmYVNoaXBwaW5nRmFzdCwgZmFVc2VyUGVuLCBmYVVzZXJFZGl0LCBmYVVzZXJDbG9jaywgZmFTaG93ZXIsIGZhU3F1YXJlQ2FyZXRVcCwgZmFDYXJldFNxdWFyZVVwLCBmYU1hcExvY2F0aW9uLCBmYU1hcE1hcmtlZCwgZmFQZW5GYW5jeSwgZmFFdXJvU2lnbiwgZmFFdXIsIGZhRXVybywgZmFIb3VzZUNpcmNsZVhtYXJrLCBmYUxpcmFTaWduLCBmYVllblNpZ24sIGZhQ255LCBmYUpweSwgZmFSbWIsIGZhWWVuLCBmYUJveE9wZW4sIGZhVHJ1Y2tGaWVsZCwgZmFMb2NhdGlvblBpbkxvY2ssIGZhUGVyc29uUHJheWluZywgZmFQcmF5LCBmYUNsaXBib2FyZExpc3QsIGZhU2Fja0RvbGxhciwgZmFNb3VudGFpblN1biwgZmFBcnJvd1VwV2lkZVNob3J0LCBmYVNvcnRBbW91bnRVcCwgZmFVc2Vyc0xpbmUsIGZhU3Rhck9mRGF2aWQsIGZhTm90ZXNNZWRpY2FsLCBmYUF1c3RyYWxTaWduLCBmYUNsaXBib2FyZFVzZXIsIGZhRmlsZUltYWdlLCBmYVNxdWFyZUNhcmV0UmlnaHQsIGZhQ2FyZXRTcXVhcmVSaWdodCwgZmFWaWFsLCBmYUhlbGljb3B0ZXIsIGZhTWl0dGVuLCBmYUdhc1B1bXAsIGZhRW52ZWxvcGVDaXJjbGVDaGVjaywgZmFQZXJzb25Ta2F0aW5nLCBmYVNrYXRpbmcsIGZhU3VuLCBmYUJhc2ViYWxsLCBmYUJhc2ViYWxsQmFsbCwgZmFJbWFnZSwgZmFOb3RkZWYsIGZhQmFza2V0YmFsbCwgZmFCYXNrZXRiYWxsQmFsbCwgZmFQZW5jaWwsIGZhUGVuY2lsQWx0LCBmYVBlcnNvbldhbGtpbmdBcnJvd0xvb3BMZWZ0LCBmYURpY2VTaXgsIGZhQW5nbGVzRG93biwgZmFBbmdsZURvdWJsZURvd24sIGZhU3lyaW5nZSwgZmFXaGVhdEF3biwgZmFXaGVhdEFsdCwgZmFQbGFuZVVwLCBmYUFsaWduQ2VudGVyLCBmYUhvY2tleVB1Y2ssIGZhQ2lyY2xlQXJyb3dMZWZ0LCBmYUFycm93Q2lyY2xlTGVmdCwgZmFQbHVnQ2lyY2xlQm9sdCwgZmFSZXN0cm9vbSwgZmFBbmNob3JMb2NrLCBmYVRpbWVsaW5lLCBmYUxpZ2h0YnVsYiwgZmFDaXJjbGVBcnJvd1JpZ2h0LCBmYUFycm93Q2lyY2xlUmlnaHQsIGZhTWFyc0FuZFZlbnVzLCBmYU5ldHdvcmtXaXJlZCwgZmFCdWlsZGluZ1NoaWVsZCwgZmFDb2RlLCBmYUZlYXRoZXJQb2ludGVkLCBmYUZlYXRoZXJBbHQsIGZhRmlsZUNpcmNsZVF1ZXN0aW9uLCBmYVNpZ25hdHVyZSwgZmFFYXJ0aEFtZXJpY2FzLCBmYUVhcnRoLCBmYUVhcnRoQW1lcmljYSwgZmFHbG9iZUFtZXJpY2FzLCBmYUNhcnJvdCwgZmFUZW1wZXJhdHVyZUZ1bGwsIGZhVGVtcGVyYXR1cmU0LCBmYVRoZXJtb21ldGVyNCwgZmFUaGVybW9tZXRlckZ1bGwsIGZhVGFibGVDZWxsc1Jvd0xvY2ssIGZhQm9sdExpZ2h0bmluZywgZmFDbG91ZFNob3dlcnNXYXRlciwgZmFBcnJvd1VwTG9uZywgZmFMb25nQXJyb3dVcCwgZmFBZGRyZXNzQ2FyZCwgZmFDb250YWN0Q2FyZCwgZmFWY2FyZCwgZmFBbmdsZVJpZ2h0LCBmYUZhY2VNZWgsIGZhTWVoLCBmYUFycm93VXBGcm9tR3JvdW5kV2F0ZXIsIGZhTWFwLCBmYVVzZXJQbHVzLCBmYVZlbnVzLCBmYURpYWdyYW1TdWNjZXNzb3IsIGZhSGVhZFNpZGVDb3VnaFNsYXNoLCBmYURpYWdyYW1Qcm9qZWN0LCBmYVByb2plY3REaWFncmFtLCBmYVRlcm1pbmFsLCBmYUhvdXNlRmlyZSwgZmFNYXNrLCBmYUh1cnJpY2FuZSwgZmFFYXJ0aEFmcmljYSwgZmFHbG9iZUFmcmljYSwgZmFUaHVtYnRhY2ssIGZhVGh1bWJUYWNrLCBmYUhhbmRQb2ludERvd24sIGZhRmFjZU1laEJsYW5rLCBmYU1laEJsYW5rLCBmYVRlbXBlcmF0dXJlRW1wdHksIGZhVGVtcGVyYXR1cmUwLCBmYVRoZXJtb21ldGVyMCwgZmFUaGVybW9tZXRlckVtcHR5LCBmYUJvcmRlck5vbmUsIGZhSGlnaGxpZ2h0ZXIsIGZhTW9uZXlCaWxsV2F2ZSwgZmFUb2lsZXRQYXBlclNsYXNoLCBmYUZpbGVTaGllbGQsIGZhVGV4dEhlaWdodCwgZmFGYWNlR3JpblRvbmd1ZSwgZmFHcmluVG9uZ3VlLCBmYUZpbGVTaWduYXR1cmUsIGZhQnVpbGRpbmdXaGVhdCwgZmFQbHVnQ2lyY2xlTWludXMsIGZhRnV0Ym9sLCBmYUZ1dGJvbEJhbGwsIGZhU29jY2VyQmFsbCwgZmFDaXJjbGVQbHVzLCBmYVBsdXNDaXJjbGUsIGZhQnJhemlsaWFuUmVhbFNpZ24sIGZhU3RhckFuZENyZXNjZW50LCBmYUZhY2VTdXJwcmlzZSwgZmFTdXJwcmlzZSwgZmFIb3NwaXRhbFVzZXIsIGZhQXJyb3dEb3duVXBMb2NrLCBmYUZvbGRlciwgZmFGb2xkZXJCbGFuaywgZmFIb2xseUJlcnJ5LCBmYVZlbnVzRG91YmxlLCBmYUNsaXBib2FyZFF1ZXN0aW9uLCBmYUhvdGRvZywgZmFBcnJvd1VwRnJvbUJyYWNrZXQsIGZhTWljcm9zY29wZSwgZmFDbG91ZCwgZmFCYXNlYmFsbEJhdEJhbGwsIGZhQ2FyUmVhciwgZmFDYXJBbHQsIGZhVGh1bWJ0YWNrU2xhc2gsIGZhVGh1bWJUYWNrU2xhc2gsIGZhUGx1c01pbnVzLCBmYUhvdXNlQ2lyY2xlQ2hlY2ssIGZhQ2FsZW5kYXJEYXksIGZhQ2lyY2xlLCBmYU1vYmlsZVZpYnJhdGUsIGZhRmFjZUdyaW5TcXVpbnQsIGZhR3JpblNxdWludCwgZmFVc2Vyc0JldHdlZW5MaW5lcywgZmFIb3VzZU1lZGljYWxDaXJjbGVYbWFyaywgZmFUYWJsZUxpc3QsIGZhVGhMaXN0LCBmYUZsYXNrVmlhbCwgZmFDaXJjbGVFeGNsYW1hdGlvbiwgZmFFeGNsYW1hdGlvbkNpcmNsZSwgZmFUYXhpLCBmYUNhYiwgZmFUZXh0U2xhc2gsIGZhUmVtb3ZlRm9ybWF0LCBmYVBlb3BsZVB1bGxpbmcsIGZhQmFja3dhcmQsIGZhQ2FyQnVyc3QsIGZhQ2FyQ3Jhc2gsIGZhTGluaywgZmFDaGFpbiwgZmFCYWNrd2FyZFN0ZXAsIGZhU3RlcEJhY2t3YXJkLCBmYVgsIGZhQ2lyY2xlVXNlciwgZmFVc2VyQ2lyY2xlLCBmYVJlY3RhbmdsZUxpc3QsIGZhTGlzdEFsdCwgZmFIYW5kLCBmYUhhbmRQYXBlciwgZmFWYW5TaHV0dGxlLCBmYVNodXR0bGVWYW4sIGZhU3RhaXJzLCBmYUhvcnNlSGVhZCwgZmFWYXVsdCwgZmFEcnVtU3RlZWxwYW4sIGZhVGh1bWJzVXAsIGZhU3RhbXAsIGZhTWVub3JhaCwgZmFDaGlsZHJlbiwgZmFDaGFydExpbmUsIGZhTGluZUNoYXJ0LCBmYVNxdWFyZUVudmVsb3BlLCBmYUVudmVsb3BlU3F1YXJlLCBmYUJhblNtb2tpbmcsIGZhU21va2luZ0JhbiwgZmFUcnVja0Zyb250LCBmYUJ1aWxkaW5nLCBmYUJ1bGxzZXllLCBmYUFycm93TGVmdExvbmcsIGZhTG9uZ0Fycm93TGVmdCwgZmFDaGVzc1Jvb2ssIGZhQmxlbmRlclBob25lLCBmYUFycm93VHVyblVwLCBmYUxldmVsVXAsIGZhQmljeWNsZSwgZmFDaXJjbGVBcnJvd0Rvd24sIGZhQXJyb3dDaXJjbGVEb3duLCBmYUdlYXIsIGZhQ29nLCBmYU1hcnNBbmRWZW51c0J1cnN0LCBmYU90dGVyLCBmYUNpcmNsZUNoZXZyb25MZWZ0LCBmYUNoZXZyb25DaXJjbGVMZWZ0LCBmYUNpcmNsZVF1ZXN0aW9uLCBmYVF1ZXN0aW9uQ2lyY2xlLCBmYVdhbGtpZVRhbGtpZSwgZmFVc2VyR3JvdXAsIGZhVXNlckZyaWVuZHMsIGZhSG91c2VDaGltbmV5LCBmYUhvbWVMZywgZmFSaWdodEZyb21CcmFja2V0LCBmYVNpZ25PdXRBbHQsIGZhRmlsZSwgZmFQbGFuZVNsYXNoLCBmYUNsb3VkU2hvd2Vyc0hlYXZ5LCBmYVBlcnNvbkZhbGxpbmcsIGZhVHVybkRvd24sIGZhTGV2ZWxEb3duQWx0LCBmYVVwUmlnaHRBbmREb3duTGVmdEZyb21DZW50ZXIsIGZhRXhwYW5kQWx0LCBmYVVzZXJUYWcsIGZhSGFuZFNwYXJrbGVzLCBmYUFycm93c1RvRG90LCBmYUZhY2VTYWRDcnksIGZhU2FkQ3J5LCBmYURvbmdTaWduLCBmYVBlb3BsZUxpbmUsIGZhU3F1YXJlUnNzLCBmYVJzc1NxdWFyZSwgZmFDYWxlbmRhck1pbnVzLCBmYUNoYXJ0RGlhZ3JhbSwgZmFGYWNlVGlyZWQsIGZhVGlyZWQsIGZhSGFuZFBvaW50UmlnaHQsIGZhQXJyb3dVcCwgZmFDdWJlc1N0YWNrZWQsIGZhQ2hpbGRDb21iYXRhbnQsIGZhQ2hpbGRSaWZsZSwgZmFWZXN0UGF0Y2hlcywgZmFNYXJ0aW5pR2xhc3NFbXB0eSwgZmFHbGFzc01hcnRpbmksIGZhTWFnbmV0LCBmYVJvYWRCYXJyaWVyLCBmYUNvbXBhc3NEcmFmdGluZywgZmFEcmFmdGluZ0NvbXBhc3MsIGZhU3F1YXJlUGVyc29uQ29uZmluZWQsIGZhUGxhdGVXaGVhdCwgZmFTaWduSGFuZ2luZywgZmFTaWduLCBmYUNhckJhdHRlcnksIGZhQmF0dGVyeUNhciwgZmFTaGlydCwgZmFUU2hpcnQsIGZhVHNoaXJ0LCBmYVBhcmFncmFwaCwgZmFFbnZlbG9wZXNCdWxrLCBmYU1haWxCdWxrLCBmYUd1aXRhciwgZmFTdWl0Y2FzZSwgZmFDaXJjbGVVcCwgZmFBcnJvd0FsdENpcmNsZVVwLCBmYUYsIGZhWG1hcmtzTGluZXMsIGZhRWFydGhPY2VhbmlhLCBmYUdsb2JlT2NlYW5pYSwgZmFDb21tZW50U2xhc2gsIGZhUGxheSwgZmFWaWFsQ2lyY2xlQ2hlY2ssIGZhQnJpZGdlQ2lyY2xlQ2hlY2ssIGZhQ2VkaVNpZ24sIGZhUHV6emxlUGllY2UsIGZhSGVsbWV0VW4sIGZhR2xhc3NXYXRlciwgZmFIZWFydENpcmNsZUJvbHQsIGZhUHVtcFNvYXAsIGZhSGFuZFNjaXNzb3JzLCBmYURvbGx5LCBmYURvbGx5Qm94LCBmYVBhcGVyY2xpcCwgZmFEZW1vY3JhdCwgZmFTcXVhcmVBcnJvd1VwUmlnaHQsIGZhRXh0ZXJuYWxMaW5rU3F1YXJlLCBmYUZlcnJ5LCBmYU1vc3F1aXRvLCBmYUJ1aWxkaW5nQ2lyY2xlQXJyb3dSaWdodCwgZmFMZWZ0UmlnaHQsIGZhQXJyb3dzQWx0SCwgZmFWaXJ1cywgZmFHZW0sIGZhVG9pbGV0LCBmYVNpbmdsZVF1b3RlTGVmdCwgZmFNb25leUJpbGxzLCBmYVRhYmxldEJ1dHRvbiwgZmFSZWN0YW5nbGVYbWFyaywgZmFSZWN0YW5nbGVUaW1lcywgZmFUaW1lc1JlY3RhbmdsZSwgZmFXaW5kb3dDbG9zZSwgZmFXcmVuY2gsIGZhVHJhc2hDYW4sIGZhVHJhc2hBbHQsIGZhVGFibGVDZWxscywgZmFUaCwgZmFSaWJib24sIGZhTGFuZG1hcmtGbGFnLCBmYVVwRG93bkxlZnRSaWdodCwgZmFBcnJvd3NBbHQsIGZhQ2FyU2lkZSwgZmFUcmFzaEFycm93VXAsIGZhVHJhc2hSZXN0b3JlLCBmYUxpZmVSaW5nLCBmYUNvcHlyaWdodCwgZmFGaWxlUHJlc2NyaXB0aW9uLCBmYUVyYXNlciwgZmFIb3VyZ2xhc3NTdGFydCwgZmFIb3VyZ2xhc3MxLCBmYUNpcmNsZUxlZnQsIGZhQXJyb3dBbHRDaXJjbGVMZWZ0LCBmYUNydXplaXJvU2lnbiwgZmFTbW9raW5nLCBmYVNxdWFyZVBvbGxWZXJ0aWNhbCwgZmFQb2xsLCBmYVBlcnNvbkNpcmNsZU1pbnVzLCBmYUJpb2hhemFyZCwgZmFCZWxsQ29uY2llcmdlLCBmYUNvbmNpZXJnZUJlbGwsIGZhUnVsZXJIb3Jpem9udGFsLCBmYUhvcnNlLCBmYUNhbGVuZGFyLCBmYUhhbmRzSG9sZGluZ0NoaWxkLCBmYUl0YWxpYywgZmFLaGFuZGEsIGZhRmFjZUZyb3duT3BlbiwgZmFGcm93bk9wZW4sIGZhQ2hlY2ssIGZhRmluZ2VycHJpbnQsIGZhQ2hhcmdpbmdTdGF0aW9uLCBmYVVzZXJMb2NrLCBmYU1vYmlsZVNjcmVlbkJ1dHRvbiwgZmFNb2JpbGVBbHQsIGZhQW5jaG9yQ2lyY2xlQ2hlY2ssIGZhUGVyc29uV2Fsa2luZ1dpdGhDYW5lLCBmYUJsaW5kLCBmYUZpbGVXYXZlZm9ybSwgZmFGaWxlTWVkaWNhbEFsdCwgZmFIb3VzZUNyYWNrLCBmYUhhdFdpemFyZCwgZmFVc2VyRG9jdG9yLCBmYVVzZXJNZCwgZmFDaGFydEJhciwgZmFCYXJDaGFydCwgZmFTcHJheUNhblNwYXJrbGVzLCBmYUFpckZyZXNoZW5lciwgZmFCYWh0U2lnbiwgZmFUZW1wZXJhdHVyZUFycm93VXAsIGZhVGVtcGVyYXR1cmVVcCwgZmFXZWJBd2Vzb21lLCBmYU5vbkJpbmFyeSwgZmFOLCBmYUFycm93c1VwRG93bkxlZnRSaWdodCwgZmFBcnJvd3MsIGZhSG91c2UsIGZhSG9tZSwgZmFIb21lQWx0LCBmYUhvbWVMZ0FsdCwgZmFTcGlubmVyLCBmYUdhdmVsLCBmYUxlZ2FsLCBmYVRpY2tldFNpbXBsZSwgZmFUaWNrZXRBbHQsIGZhRG92ZSwgZmFUYXJwRHJvcGxldCwgZmFUcmVlQ2l0eSwgZmFUdXJuVXAsIGZhTGV2ZWxVcEFsdCwgZmFUZW1wZXJhdHVyZVF1YXJ0ZXIsIGZhVGVtcGVyYXR1cmUxLCBmYVRoZXJtb21ldGVyMSwgZmFUaGVybW9tZXRlclF1YXJ0ZXIsIGZhU2xpZGVycywgZmFTbGlkZXJzSCwgZmFNb3NxdWUsIGZhSCwgZmFJbmZvLCBmYVBlcnNvbldhbGtpbmcsIGZhV2Fsa2luZywgZmFBcnJvd1R1cm5Eb3duLCBmYUxldmVsRG93biwgZmFSb2FkLCBmYVNwaXJhbCwgZmFGYWNlRnJvd24sIGZhRnJvd24sIGZhV2luZUdsYXNzRW1wdHksIGZhV2luZUdsYXNzQWx0LCBmYUNsYXBwZXJib2FyZCwgZmFGb3J3YXJkU3RlcCwgZmFTdGVwRm9yd2FyZCwgZmFTcXVhcmVVcFJpZ2h0LCBmYUV4dGVybmFsTGlua1NxdWFyZUFsdCwgZmFCb29rSm91cm5hbFdoaWxscywgZmFKb3VybmFsV2hpbGxzLCBmYUNoYW1wYWduZUdsYXNzZXMsIGZhR2xhc3NDaGVlcnMsIGZhRHVtcHN0ZXIsIGZhSGVhcnRDaXJjbGVYbWFyaywgZmFDb21wdXRlciwgZmFXYW5kTWFnaWMsIGZhTWFnaWMsIGZhQnJhaW4sIGZhQnJpZWZjYXNlTWVkaWNhbCwgZmFIb3VzZU1lZGljYWxDaXJjbGVFeGNsYW1hdGlvbiwgZmFDb2RlQ29tbWl0LCBmYVBlcnNvbkJyZWFzdGZlZWRpbmcsIGZhUGVyc29uUmF5cywgZmFNYW5hdFNpZ24sIGZhU29ydCwgZmFVbnNvcnRlZCwgZmFDaXJjbGVSYWRpYXRpb24sIGZhUmFkaWF0aW9uQWx0LCBmYUxhcHRvcENvZGUsIGZhU2luaywgZmFBcnJvd1VwRnJvbVdhdGVyUHVtcCwgZmFNaWNyb3Bob25lTGluZXNTbGFzaCwgZmFNaWNyb3Bob25lQWx0U2xhc2gsIGZhU2VydmVyLCBmYVVzZXIsIGZhVXNlckFsdCwgZmFVc2VyTGFyZ2UsIGZhU25vd2ZsYWtlLCBmYVNrdWxsQ3Jvc3Nib25lcywgZmFQZXNvU2lnbiwgZmFXaW5lR2xhc3MsIGZhVGVtcGVyYXR1cmVIYWxmLCBmYVRlbXBlcmF0dXJlMiwgZmFUaGVybW9tZXRlcjIsIGZhVGhlcm1vbWV0ZXJIYWxmLCBmYVRpY2tldCwgZmFXaGVhdEF3bkNpcmNsZUV4Y2xhbWF0aW9uLCBmYUFycm93c1R1cm5SaWdodCwgZmFDYW5keUNhbmUsIGZhV2hlZWxjaGFpciwgZmFTcGVsbENoZWNrLCBmYVZvbHVtZU9mZiwgZmFMdW5ncywgZmFCb29rbWFyaywgZmFCYXJjb2RlLCBmYUxpc3RPbCwgZmFMaXN0MTIsIGZhTGlzdE51bWVyaWMsIGZhRmlsZUNpcmNsZVhtYXJrLCBmYUN1YmUsIGZhVGFwZSwgZmFCb21iLCBmYVNjYWxlVW5iYWxhbmNlZCwgZmFCYWxhbmNlU2NhbGVMZWZ0LCBmYVNxdWFyZUNhcmV0TGVmdCwgZmFDYXJldFNxdWFyZUxlZnQsIGZhUnVsZXIsIGZhSSwgZmFWb2x1bWVYbWFyaywgZmFWb2x1bWVNdXRlLCBmYVZvbHVtZVRpbWVzLCBmYUFyY2h3YXksIGZhUGVyc29uRGlnZ2luZywgZmFEaWdnaW5nLCBmYUdhdWdlSGlnaCwgZmFUYWNob21ldGVyQWx0LCBmYVRhY2hvbWV0ZXJBbHRGYXN0LCBmYUdlbmRlcmxlc3MsIGZhQ2xvdWRTdW4sIGZhQXJyb3dSaWdodCwgZmFIYW5kc2hha2UsIGZhSGFuZHNoYWtlQWx0LCBmYUhhbmRzaGFrZVNpbXBsZSwgZmFQZXJzb25Ta2lpbmcsIGZhU2tpaW5nLCBmYUJyaWRnZVdhdGVyLCBmYUJ1aWxkaW5nTmdvLCBmYUlnbG9vLCBmYUNpcmNsZURvbGxhclRvU2xvdCwgZmFEb25hdGUsIGZhWSwgZmFGYWNlU21pbGVXaW5rLCBmYVNtaWxlV2luaywgZmFEaWNlRm91ciwgZmFGYWNlR3JpblNxdWludFRlYXJzLCBmYUdyaW5TcXVpbnRUZWFycywgZmFGaWxlQXVkaW8sIGZhQXJyb3dzRG93blRvTGluZSwgZmFHLCBmYVZpaGFyYSwgZmFGbGFnQ2hlY2tlcmVkLCBmYUdhdWdlU2ltcGxlLCBmYUdhdWdlU2ltcGxlTWVkLCBmYVRhY2hvbWV0ZXJBdmVyYWdlLCBmYVJpZ2h0TGVmdCwgZmFFeGNoYW5nZUFsdCwgZmFQaWxscywgZmFFeHBsb3Npb24sIGZhQXJyb3dzRG93blRvUGVvcGxlLCBmYVVzZXJzVmlld2ZpbmRlciwgZmFDYXJPbiwgZmFTbGVpZ2gsIGZhRHVtYmJlbGwsIGZhQmFieUNhcnJpYWdlLCBmYUNhcnJpYWdlQmFieSwgZmFLaXdpQmlyZCwgZmFDYWxlbmRhclhtYXJrLCBmYUNhbGVuZGFyVGltZXMsIGZhQ2lyY2xlRG93biwgZmFBcnJvd0FsdENpcmNsZURvd24sIGZhRmlsZU1lZGljYWwsIGZhWG1hcmssIGZhQ2xvc2UsIGZhTXVsdGlwbHksIGZhUmVtb3ZlLCBmYVRpbWVzLCBmYVNoYXBlcywgZmFUcmlhbmdsZUNpcmNsZVNxdWFyZSwgZmFEaWNlT25lLCBmYUxvY2tPcGVuLCBmYVBlcHBlckhvdCwgZmFEcm9wbGV0U2xhc2gsIGZhVGludFNsYXNoLCBmYURyb3BsZXQsIGZhVGludCwgZmFGaWxlTGluZXMsIGZhRmlsZUFsdCwgZmFGaWxlVGV4dCwgZmFDb21tZW50c0RvbGxhciwgZmFNYWduaWZ5aW5nR2xhc3NMb2NhdGlvbiwgZmFTZWFyY2hMb2NhdGlvbiwgZmFGaWxlSW52b2ljZSwgZmFQZW50YWdvbiwgZmFSZXB1YmxpY2FuLCBmYVNob3AsIGZhU3RvcmVBbHQsIGZhRmlsbSwgZmFGaWxtQWx0LCBmYUZpbG1TaW1wbGUsIGZhQnVpbGRpbmdDaXJjbGVYbWFyaywgZmFDb21tZW50cywgZmFUYWdzLCBmYUd1biwgZmFDaXJjbGVDaGVjaywgZmFDaGVja0NpcmNsZSwgZmFJZENhcmRDbGlwLCBmYUlkQ2FyZEFsdCwgZmFNb29uLCBmYU9pbFdlbGwsIGZhVGFjaG9ncmFwaERpZ2l0YWwsIGZhRGlnaXRhbFRhY2hvZ3JhcGgsIGZhVGFibGV0LCBmYVRhYmxldEFuZHJvaWQsIGZhUnVibGVTaWduLCBmYVJvdWJsZSwgZmFSdWIsIGZhUnVibGUsIGZhQ2xvc2VkQ2FwdGlvbmluZywgZmFQZW4sIGZhUGxhbmUsIGZhSW1hZ2VzLCBmYU1vYmlsZVNjcmVlbiwgZmFNb2JpbGVBbmRyb2lkQWx0LCBmYUd1YXJhbmlTaWduLCBmYUJhZ1Nob3BwaW5nLCBmYVNob3BwaW5nQmFnLCBmYUNpcmNsZVJpZ2h0LCBmYUFycm93QWx0Q2lyY2xlUmlnaHQsIGZhUGhvbmVWb2x1bWUsIGZhVm9sdW1lQ29udHJvbFBob25lLCBmYUN1YmVzLCBmYVBob25lLCBmYVRvcmlpR2F0ZSwgZmFCYWNvbiwgZmFQZXJzb25GYWxsaW5nQnVyc3QsIGZhUXVvdGVSaWdodCwgZmFRdW90ZVJpZ2h0QWx0LCBmYUhvdXNlTWVkaWNhbEZsYWcsIGZhUHJlc2NyaXB0aW9uLCBmYURpY2VUaHJlZSwgZmFCdWlsZGluZ0xvY2ssIGZhSWRDYXJkLCBmYURyaXZlcnNMaWNlbnNlLCBmYUNpcmNsZVBsYXksIGZhUGxheUNpcmNsZSwgZmFGYWNlTGF1Z2hCZWFtLCBmYUxhdWdoQmVhbSwgZmFMZWFmLCBmYUhvdXNlQ2hpbW5leVVzZXIsIGZhUm90YXRlUmlnaHQsIGZhUmVkb0FsdCwgZmFSb3RhdGVGb3J3YXJkLCBmYVRvb3RoLCBmYUhvdXNlQ2hpbW5leVdpbmRvdywgZmFNb3RvcmN5Y2xlLCBmYUJhY2t3YXJkRmFzdCwgZmFGYXN0QmFja3dhcmQsIGZhQWRkcmVzc0Jvb2ssIGZhQ29udGFjdEJvb2ssIGZhU2FpbGJvYXQsIGZhQm9va0Jvb2ttYXJrLCBmYU1hZ25pZnlpbmdHbGFzc0Fycm93UmlnaHQsIGZhTWljcm9waG9uZUxpbmVzLCBmYU1pY3JvcGhvbmVBbHQsIGZhUmVwbHlBbGwsIGZhTWFpbFJlcGx5QWxsLCBmYVVuaXZlcnNhbEFjY2VzcywgZmFUb2lsZXRQYXBlciwgZmFUb2lsZXRQYXBlckFsdCwgZmFUb2lsZXRQYXBlckJsYW5rLCBmYVZyQ2FyZGJvYXJkLCBmYVBpenphU2xpY2UsIGZhU3ByYXlDYW4sIGZhVm9sdW1lTG93LCBmYVZvbHVtZURvd24sIGZhQ3Jvc3MsIGZhUGVyc29uLCBmYU1hbGUsIGZhSG91cmdsYXNzLCBmYUhvdXJnbGFzc0VtcHR5LCBmYUZpc2gsIGZhRHJ1bXN0aWNrQml0ZSwgZmFDaGFydFNpbXBsZSwgZmFBdG9tLCBmYVAsIGZhSmV0RmlnaHRlclVwLCBmYVBsdWdDaXJjbGVYbWFyaywgZmFTaGVldFBsYXN0aWMsIGZhViwgZmFMaXN0LCBmYUxpc3RTcXVhcmVzLCBmYVNvbGFyUGFuZWwsIGZhTGFuZE1pbmVPbiwgZmFIZWFkcGhvbmVzLCBmYUhlYWRwaG9uZXNBbHQsIGZhSGVhZHBob25lc1NpbXBsZSwgZmFCdXMsIGZhRmlsZVBvd2VycG9pbnQsIGZhUXVvdGVMZWZ0LCBmYVF1b3RlTGVmdEFsdCwgZmFDaGV2cm9uRG93biwgZmFFYXJ0aEFzaWEsIGZhR2xvYmVBc2lhLCBmYUNlbnRTaWduLCBmYVNoaWVsZENhdCwgZmFTY2hvb2xDaXJjbGVDaGVjaywgZmFNYXJ0aW5pR2xhc3MsIGZhR2xhc3NNYXJ0aW5pQWx0LCBmYVBsdWcsIGZhUGFub3JhbWEsIGZhQ2xvY2tSb3RhdGVMZWZ0LCBmYUhpc3RvcnksIGZhSmFyV2hlYXQsIGZhQ2xvdWRBcnJvd0Rvd24sIGZhQ2xvdWREb3dubG9hZCwgZmFDbG91ZERvd25sb2FkQWx0LCBmYVRydWNrUmFtcEJveCwgZmFUcnVja0xvYWRpbmcsIGZhQW5nbGVEb3duLCBmYVBsdWdDaXJjbGVDaGVjaywgZmFXaW5kb3dNYXhpbWl6ZSwgZmFIYW5kc0hvbGRpbmdDaXJjbGUsIGZhTG9jYXRpb25QaW4sIGZhTWFwTWFya2VyLCBmYUJvd2xpbmdCYWxsLCBmYUNhcnRGbGF0YmVkLCBmYURvbGx5RmxhdGJlZCwgZmFIb3VzZVVzZXIsIGZhSG9tZVVzZXIsIGZhR2hvc3QsIGZhQ29tbWVudE5vZGVzLCBmYVBlcnNvbkFycm93RG93blRvTGluZSwgZmFQbHVnQ2lyY2xlUGx1cywgZmFQZXJzb25Td2ltbWluZywgZmFTd2ltbWVyLCBmYUNvbW1lbnREb3RzLCBmYUNvbW1lbnRpbmcsIGZhQ2hhcnRQaWUsIGZhUGllQ2hhcnQsIGZhRnJvZywgZmFXaW5lQm90dGxlLCBmYUluYm94LCBmYVNxdWFyZUgsIGZhSFNxdWFyZSwgZmFIb3VzZU1lZGljYWwsIGZhQ2lyY2xlQ2hldnJvblJpZ2h0LCBmYUNoZXZyb25DaXJjbGVSaWdodCwgZmFGaWxlQ3N2LCBmYUhhdENvd2JveSwgZmFGYWNlR3JpblRvbmd1ZVdpbmssIGZhR3JpblRvbmd1ZVdpbmssIGZhTCwgZmFBcnJvd0Rvd25TaG9ydFdpZGUsIGZhU29ydEFtb3VudERlc2MsIGZhU29ydEFtb3VudERvd25BbHQsIGZhSG91cmdsYXNzSGFsZiwgZmFIb3VyZ2xhc3MyLCBmYVNwb29uLCBmYVV0ZW5zaWxTcG9vbiwgZmFDcmVkaXRDYXJkLCBmYUNyZWRpdENhcmRBbHQsIGZhRmlsZUludm9pY2VEb2xsYXIsIGZhU3BhZ2hldHRpTW9uc3RlckZseWluZywgZmFQYXN0YWZhcmlhbmlzbSwgZmFNYXJ0aW5pR2xhc3NDaXRydXMsIGZhQ29ja3RhaWwsIGZhQnVsbGhvcm4sIGZhQm94VGlzc3VlLCBmYU1hdHRyZXNzUGlsbG93LCBmYUNoZXZyb25MZWZ0LCBmYUNsb3VkTW9vblJhaW4sIGZhQXJyb3dEb3duMTksIGZhU29ydE51bWVyaWNBc2MsIGZhU29ydE51bWVyaWNEb3duLCBmYUhhbmRTcG9jaywgZmFXYW5kTWFnaWNTcGFya2xlcywgZmFNYWdpY1dhbmRTcGFya2xlcywgZmFDb21tZW50TWVkaWNhbCwgZmFCZWxsU2xhc2gsIGZhSGFuZHNoYWtlU2xhc2gsIGZhSGFuZHNoYWtlQWx0U2xhc2gsIGZhSGFuZHNoYWtlU2ltcGxlU2xhc2gsIGZhQm90dGxlV2F0ZXIsIGZhRGljZUQyMCwgZmFBcnJvd0Rvd25aQSwgZmFTb3J0QWxwaGFEZXNjLCBmYVNvcnRBbHBoYURvd25BbHQsIGZhQnJ1c2gsIGZhUGVyc29uV2Fsa2luZ0Rhc2hlZExpbmVBcnJvd1JpZ2h0LCBmYUFycm93VXBTaG9ydFdpZGUsIGZhU29ydEFtb3VudFVwQWx0LCBmYUdyaXBWZXJ0aWNhbCwgZmFHcmlkVmVydGljYWwsIGZhQ2FyVHVubmVsLCBmYUNoYXJ0Q29sdW1uLCBmYVRydWNrQXJyb3dSaWdodCwgZmFUdiwgZmFUZWxldmlzaW9uLCBmYVR2QWx0LCBmYVNlY3Rpb24sIGZhUGVhY2UsIGZhU3RhciwgZmFGbGFnLCBmYVRyaWFuZ2xlRXhjbGFtYXRpb24sIGZhRXhjbGFtYXRpb25UcmlhbmdsZSwgZmFXYXJuaW5nLCBmYVNjaG9vbENpcmNsZUV4Y2xhbWF0aW9uLCBmYUdyYWR1YXRpb25DYXAsIGZhTW9ydGFyQm9hcmQsIGZhU3RvcmUsIGZhVXNlckFzdHJvbmF1dCwgZmFCdWlsZGluZ0ZsYWcsIGZhTXVnU2F1Y2VyLCBmYUNvZmZlZSwgZmFMZW1vbiwgZmFDYXJhdmFuLCBmYVEsIGZhTG9jaywgZmFQYWludFJvbGxlciwgZmFWb2x1bWVIaWdoLCBmYVZvbHVtZVVwLCBmYUZvbGRlclBsdXMsIGZhTWVyY3VyeSwgZmFBbmNob3IsIGZhU3F1YXJlUGFya2luZywgZmFQYXJraW5nLCBmYUhhbnVraWFoLCBmYVJvdGF0ZUxlZnQsIGZhUm90YXRlQmFjaywgZmFSb3RhdGVCYWNrd2FyZCwgZmFVbmRvQWx0LCBmYUhlYWRpbmcsIGZhSGVhZGVyLCBmYUNyb3NzaGFpcnMsIGZhQ2lyY2xlTm9kZXMsIGZhV2luZG93UmVzdG9yZSwgZmFSLCBmYUZpbHRlckNpcmNsZVhtYXJrLCBmYUdvcHVyYW0sIGZhSGVhcnRDaXJjbGVNaW51cywgZmFTdGFyT2ZMaWZlLCBmYUJ1c2luZXNzVGltZSwgZmFCcmllZmNhc2VDbG9jaywgZmFGaXJlRXh0aW5ndWlzaGVyLCBmYUFycm93RG93bkxvbmcsIGZhTG9uZ0Fycm93RG93biwgZmFVc2VyTWludXMsIGZhTW9uZXlDaGVjaywgZmFIb3VzZUxhcHRvcCwgZmFMYXB0b3BIb3VzZSwgZmFEb3dubG9hZCwgZmFDb3VjaCwgZmFSb2FkTG9jaywgZmFTY2lzc29ycywgZmFDdXQsIGZhQnVnLCBmYUFycm93UmlnaHRGcm9tQnJhY2tldCwgZmFTaWduT3V0LCBmYUhhbmRIb2xkaW5nSGFuZCwgZmFTdHJvb3B3YWZlbCwgZmFDaGlsZCwgZmFJY2VDcmVhbSwgZmFDb21wdXRlck1vdXNlLCBmYU1vdXNlLCBmYUZhdWNldCwgZmFBd2FyZCwgZmFQZXJzb25Ecm93bmluZywgZmFDYW1lcmFSb3RhdGUsIGZhRmFjZUdyaW5IZWFydHMsIGZhR3JpbkhlYXJ0cywgZmFGaWxlRnJhZ21lbnQsIGZhUGVyc29uTWlsaXRhcnlSaWZsZSwgZmFUb2dnbGVPbiwgZmFMdW5nc1ZpcnVzLCBmYVRhYmxlVGVubmlzUGFkZGxlQmFsbCwgZmFQaW5nUG9uZ1BhZGRsZUJhbGwsIGZhVGFibGVUZW5uaXMsIGZhQm94ZXNQYWNraW5nLCBmYVBlcnNvbkNoYWxrYm9hcmQsIGZhRGljZVR3bywgZmFBcnJvd1JpZ2h0QXJyb3dMZWZ0LCBmYUV4Y2hhbmdlLCBmYUZvb3RiYWxsLCBmYUZvb3RiYWxsQmFsbCwgZmFUcnVja01vbnN0ZXIsIGZhQXN0ZXJpc2ssIGZhQmF0dGVyeUZ1bGwsIGZhQmF0dGVyeSwgZmFCYXR0ZXJ5NSwgZmFDaGlsZERyZXNzLCBmYUZhY2VLaXNzQmVhbSwgZmFLaXNzQmVhbSwgZmFUcmFzaENhbkFycm93VXAsIGZhVHJhc2hSZXN0b3JlQWx0LCBmYUZvbnQsIGZhQm9yZUhvbGUsIGZhVmlydXNDb3ZpZCwgZmFGaWxlUGRmLCBmYUxhbmd1YWdlLCBmYVNoaWVsZEhhbHZlZCwgZmFTaGllbGRBbHQsIGZhQ2FyZXRVcCwgZmFGaWxlUGVuLCBmYUZpbGVFZGl0LCBmYVBlcnNvbkJpa2luZywgZmFCaWtpbmcsIGZhQm9va09wZW5SZWFkZXIsIGZhQm9va1JlYWRlciwgZmFHbGFzc1dhdGVyRHJvcGxldCwgZmFUb3dlckJyb2FkY2FzdCwgZmFCcm9hZGNhc3RUb3dlciwgZmFNaW5pbWl6ZSwgZmFDb21wcmVzc0Fycm93c0FsdCwgZmFBcnJvd1JpZ2h0VG9DaXR5LCBmYUxhcHRvcE1lZGljYWwsIGZhQnJlYWRTbGljZSwgZmFHbG9iZSwgZmFGb2xkZXJNaW51cywgZmFNYXNrRmFjZSwgZmFCb25nLCBmYVJvYWRCcmlkZ2UsIGZhQXJyb3dVcDkxLCBmYVNvcnROdW1lcmljVXBBbHQsIGZhTW91bnRhaW5DaXR5LCBmYUFycm93RG93bjkxLCBmYVNvcnROdW1lcmljRGVzYywgZmFTb3J0TnVtZXJpY0Rvd25BbHQsIGZhRmFjZUdyaW5XaWRlLCBmYUdyaW5BbHQsIGZhUG9vcCwgZmFEaGFybWFjaGFrcmEsIGZhQmF0dGVyeVF1YXJ0ZXIsIGZhQmF0dGVyeTIsIGZhQW5raCwgZmFEaWFtb25kLCBmYVN1YnNjcmlwdCwgZmFSdXBlZVNpZ24sIGZhUnVwZWUsIGZhUGVyc29uUmlmbGUsIGZhRCwgZmFTcXVhcmVOZmksIGZhVGVldGgsIGZhTWFnbmlmeWluZ0dsYXNzRG9sbGFyLCBmYVNlYXJjaERvbGxhciwgZmFEdW1wc3RlckZpcmUsIGZhVXBsb2FkLCBmYVVzZXJTbGFzaCwgZmFVc2VyQWx0U2xhc2gsIGZhVXNlckxhcmdlU2xhc2gsIGZhQXJyb3dMZWZ0LCBmYVZpYWxWaXJ1cywgZmFDaGVja0RvdWJsZSwgZmFQYXcsIGZhSGVsbWV0U2FmZXR5LCBmYUhhcmRIYXQsIGZhSGF0SGFyZCwgZmFFLCBmYUZhY2VMYXVnaFNxdWludCwgZmFMYXVnaFNxdWludCwgZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlciwgZmFDb21wcmVzc0FsdCwgZmFHaWZ0cywgZmFCZWQsIGZhTW9uZXlCaWxsVHJhbnNmZXIsIGZhUGVyc29uUnVubmluZywgZmFSdW5uaW5nLCBmYUNpcmNsZUNoZXZyb25Eb3duLCBmYUNoZXZyb25DaXJjbGVEb3duLCBmYVVzZXJOdXJzZSwgZmFGYWNlS2lzc1dpbmtIZWFydCwgZmFLaXNzV2lua0hlYXJ0LCBmYUZpbGwsIGZhTW9uZXlCaWxsMVdhdmUsIGZhTW9uZXlCaWxsV2F2ZUFsdCwgZmFMYW5kbWFyaywgZmFNdXNpYywgZmFCb29rTWVkaWNhbCwgZmFTaHVmZmxlLCBmYVJhbmRvbSwgZmFVbmRlcmxpbmUsIGZhQnVpbGRpbmdVc2VyLCBmYVJvYm90LCBmYVBsdXMsIGZhQWRkLCBmYUNvcHksIGZhQ2hlc3NLaW5nLCBmYUhvdXNlRmxvb2RXYXRlciwgZmFCaXRjb2luU2lnbiwgZmFCb3gsIGZhU3F1YXJlUGx1cywgZmFQbHVzU3F1YXJlLCBmYUFycm93c0xlZnRSaWdodCwgZmFBcnJvd3NILCBmYUZhbiwgZmFDcm93LCBmYUZpbGVDaXJjbGVDaGVjaywgZmFMaW5rU2xhc2gsIGZhQ2hhaW5Ccm9rZW4sIGZhQ2hhaW5TbGFzaCwgZmFVbmxpbmssIGZhQXJyb3dSb3RhdGVSaWdodCwgZmFBcnJvd1JpZ2h0Um90YXRlLCBmYUFycm93Um90YXRlRm9yd2FyZCwgZmFSZWRvLCBmYVBlbkNsaXAsIGZhUGVuQWx0LCBmYURvb3JDbG9zZWQsIGZhQXJyb3dEb3duV2lkZVNob3J0LCBmYVNvcnRBbW91bnRBc2MsIGZhU29ydEFtb3VudERvd24sIGZhQ2FyZXREb3duLCBmYUssIGZhQ2hlY2tUb1Nsb3QsIGZhVm90ZVllYSwgZmFGaXNoRmlucywgZmFDb21wcmVzcywgZmFBcnJvd1VwQVosIGZhU29ydEFscGhhVXAsIGZhVXNlckdyYWR1YXRlLCBmYUZpbGVDb2RlLCBmYVNvYXAsIGZhUmVjeWNsZSwgZmFGYWNlR3JpbldpbmssIGZhR3JpbldpbmssIGZhV2F0ZXJMYWRkZXIsIGZhTGFkZGVyV2F0ZXIsIGZhU3dpbW1pbmdQb29sLCBmYVRvd2VyQ2VsbCwgZmFDb2xvblNpZ24sIGZhTGFwdG9wRmlsZSwgZmFCYWhhaSwgZmFIYXlrYWwsIGZhTW9uZXlCaWxsMSwgZmFNb25leUJpbGxBbHQsIGZhQ2xvdWRCb2x0LCBmYVRodW5kZXJzdG9ybSwgZmFFdGhlcm5ldCwgZmFIcnl2bmlhU2lnbiwgZmFIcnl2bmlhLCBmYUV5ZVNsYXNoLCBmYUNhcnRGbGF0YmVkU3VpdGNhc2UsIGZhTHVnZ2FnZUNhcnQsIGZhUmFkaWF0aW9uLCBmYUZpbGVXb3JkLCBmYUJlZFB1bHNlLCBmYVByb2NlZHVyZXMsIGZhVGVudHMsIGZhTXVnSG90LCBmYUJvbHQsIGZhWmFwLCBmYUphciwgZmFUcnVja1BsYW5lLCBmYUhhbmRIb2xkaW5nSGVhcnQsIGZhQXJyb3dSb3RhdGVMZWZ0LCBmYUFycm93TGVmdFJvdGF0ZSwgZmFBcnJvd1JvdGF0ZUJhY2ssIGZhQXJyb3dSb3RhdGVCYWNrd2FyZCwgZmFVbmRvLCBmYUZhY2VBbmdyeSwgZmFBbmdyeSwgZmFCdXJzdCwgZmFaLCBmYUJhbmRhZ2UsIGZhQmFuZEFpZCwgZmFQbGFuZUNpcmNsZUV4Y2xhbWF0aW9uLCBmYUJ1c1NpZGUsIGZhQnVncywgZmFCZWVyTXVnRW1wdHksIGZhQmVlciwgZmFQZXJzb25DaXJjbGVDaGVjaywgZmFTdGFwbGVyLCBmYUhvdXNlTWVkaWNhbENpcmNsZUNoZWNrLCBmYU5haXJhU2lnbiwgZmFXaWZpLCBmYVdpZmkzLCBmYVdpZmlTdHJvbmcsIGZhTW9uZXlDaGVja0RvbGxhciwgZmFNb25leUNoZWNrQWx0LCBmYUV5ZUxvd1Zpc2lvbiwgZmFMb3dWaXNpb24sIGZhQ2lyY2xlQXJyb3dVcCwgZmFBcnJvd0NpcmNsZVVwLCBmYUNhbWVyYVJldHJvLCBmYUNhcHN1bGVzLCBmYVBvbywgZmFFbGV2YXRvciwgZmFUYWcsIGZhRmlsZUNpcmNsZU1pbnVzLCBmYURvd25Mb25nLCBmYUxvbmdBcnJvd0FsdERvd24sIGZhQ29tcGFjdERpc2MsIGZhU3VpdGNhc2VSb2xsaW5nLCBmYUJvb2tRdXJhbiwgZmFRdXJhbiwgZmFQaG9uZVNsYXNoLCBmYVJvYWRDaXJjbGVDaGVjaywgZmFTaG9wTG9jaywgZmFJbWFnZVBvcnRyYWl0LCBmYVBvcnRyYWl0LCBmYUJyaWRnZUxvY2ssIGZhSGFtbWVyLCBmYUFycm93VXAxOSwgZmFTb3J0TnVtZXJpY1VwLCBmYUNoZXNzS25pZ2h0LCBmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQsIGZhQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZSwgZmFFeHRlcm5hbExpbmssIGZhQXJyb3dEb3duVXBBY3Jvc3NMaW5lLCBmYUZhY2VHcmluQmVhbSwgZmFHcmluQmVhbSwgZmFSZWN0YW5nbGVBZCwgZmFBZCwgZmFCb29rVGFuYWtoLCBmYVRhbmFraCwgZmFIb3RUdWJQZXJzb24sIGZhSG90VHViLCBmYUZpbGVIYWxmRGFzaGVkLCBmYU91dGRlbnQsIGZhRGVkZW50LCBmYUhhbmRQZWFjZSwgZmFIZWFkU2lkZVZpcnVzLCBmYUNvbXBhc3MsIGZhUGVuTmliLCBmYVRlbnRBcnJvd3NEb3duLCBmYUZvcndhcmRGYXN0LCBmYUZhc3RGb3J3YXJkLCBmYUNyb3AsIGZhV2hpc2tleUdsYXNzLCBmYUdsYXNzV2hpc2tleSwgZmFTcXVhcmUsIGZhRmFjZUdyaW4sIGZhR3JpbiwgZmFGaWxlQ29udHJhY3QsIGZhQW5nbGVVcCwgZmFGYWNlU21pbGUsIGZhU21pbGUsIGZhUGVyc29uRHJlc3NCdXJzdCwgZmFEaXZpZGUsIGZhQ29kZUZvcmssIGZhSG91c2VGbGFnLCBmYUJ1aWxkaW5nQ29sdW1ucywgZmFCYW5rLCBmYUluc3RpdHV0aW9uLCBmYU11c2V1bSwgZmFVbml2ZXJzaXR5LCBmYVJ1ZywgZmFDb2RlTWVyZ2UsIGZhSG91c2VUc3VuYW1pLCBmYU1hZ25pZnlpbmdHbGFzc0NoYXJ0LCBmYVVtYnJlbGxhLCBmYUhpbGxSb2Nrc2xpZGUsIGZhVXNlclNlY3JldCwgZmFQYWdlciwgZmFCcmllZmNhc2UsIGZhVHJvd2VsQnJpY2tzLCBmYVNvY2tzLCBmYVQsIGZhTWljcm9jaGlwLCBmYVRydWNrTWVkaWNhbCwgZmFBbWJ1bGFuY2UsIGZhT20sIGZhTW9zcXVpdG9OZXQsIGZhUHJlc2NyaXB0aW9uQm90dGxlLCBmYVVzZXJzR2VhciwgZmFVc2Vyc0NvZywgZmFSb2FkQ2lyY2xlRXhjbGFtYXRpb24sIGZhUGF1c2UsIGZhU3RhZmZTbmFrZSwgZmFSb2RBc2NsZXBpdXMsIGZhUm9kU25ha2UsIGZhU3RhZmZBZXNjdWxhcGl1cywgZmFQaWdneUJhbmssIGZhTW9udW1lbnQsIGZhQW5nbGVzUmlnaHQsIGZhQW5nbGVEb3VibGVSaWdodCwgZmFEZXNrdG9wLCBmYURlc2t0b3BBbHQsIGZhUGxhbmVDaXJjbGVYbWFyaywgZmFSZXR3ZWV0LCBmYVVzZXJHZWFyLCBmYVVzZXJDb2csIGZhQm9yZGVyQWxsLCBmYUNvaW5zLCBmYU1hcnNTdHJva2UsIGZhSGFuZHNoYWtlQW5nbGUsIGZhSGFuZHNIZWxwaW5nLCBmYUFycm93RG93biwgZmFMb2NhdGlvbkRvdCwgZmFNYXBNYXJrZXJBbHQsIGZhUGx1Z0NpcmNsZUV4Y2xhbWF0aW9uLCBmYUNvb2tpZUJpdGUsIGZhU2NyZXdkcml2ZXJXcmVuY2gsIGZhVG9vbHMsIGZhSW5kZW50LCBmYUJhcnMsIGZhTmF2aWNvbiwgZmFIYW5kc1ByYXlpbmcsIGZhUHJheWluZ0hhbmRzLCBmYVZpcnVzZXMsIGZhU2Nob29sRmxhZywgZmFUcmFkZW1hcmssIGZhRmlyZUJ1cm5lciwgZmFGYWNlU21pbGVCZWFtLCBmYVNtaWxlQmVhbSwgZmFUZW50QXJyb3dMZWZ0UmlnaHQsIGZhUm91dGUsIGZhQW5nbGVzVXAsIGZhQW5nbGVEb3VibGVVcCwgZmFCdWNrZXQsIGZhTGVzc1RoYW5FcXVhbCwgZmFGb2xkZXJDbG9zZWQsIGZhUGVyc29uVGhyb3VnaFdpbmRvdywgZmFTY2hvb2xMb2NrLCBmYVBlcnNvbkJ1cnN0LCBmYUxlZnRMb25nLCBmYUxvbmdBcnJvd0FsdExlZnQsIGZhTG9jYXRpb25Dcm9zc2hhaXJzLCBmYUxvY2F0aW9uLCBmYVBlcnNvbkRvdHNGcm9tTGluZSwgZmFEaWFnbm9zZXMsIGZhR2F1Z2VTaW1wbGVIaWdoLCBmYVRhY2hvbWV0ZXIsIGZhVGFjaG9tZXRlckZhc3QsIGZhQW5nbGVzTGVmdCwgZmFBbmdsZURvdWJsZUxlZnQsIGZhVXBEb3duLCBmYUFycm93c0FsdFYsIGZhQmF0dGVyeUVtcHR5LCBmYUJhdHRlcnkwLCBmYUtleWJvYXJkLCBmYUNvb2tpZSwgZmFTdG9wd2F0Y2gsIGZhRWplY3QsIGZhU2F0ZWxsaXRlRGlzaCwgZmFGYWNlUm9sbGluZ0V5ZXMsIGZhTWVoUm9sbGluZ0V5ZXMsIGZhTGlzdENoZWNrLCBmYVRhc2tzLCBmYVNhY2tYbWFyaywgZmFIYXNodGFnLCBmYVRyYWluLCBmYUdhbWVwYWQsIGZhRmlsZUV4cG9ydCwgZmFBcnJvd1JpZ2h0RnJvbUZpbGUsIGZhRmFjZUdyaW1hY2UsIGZhR3JpbWFjZSwgZmFUcmFpblN1YndheSwgZmFTdWJ3YXksIGZhQ2lyY2xlRG90LCBmYURvdENpcmNsZSwgZmFPYmplY3RHcm91cCwgZmFTaGlwLCBmYUMsIGZhU3F1YXJlUGhvbmUsIGZhUGhvbmVTcXVhcmUsIGZhUnVsZXJDb21iaW5lZCwgZmFBcnJvd3NSb3RhdGUsIGZhUmVmcmVzaCwgZmFTeW5jLCBmYVBlcnNvbkRyZXNzLCBmYUZlbWFsZSwgZmFCb29rT3BlbiwgZmFGb2xkZXJUcmVlLCBmYUJveEFyY2hpdmUsIGZhQXJjaGl2ZSwgZmFUZW50QXJyb3dEb3duVG9MaW5lLCBmYVFyY29kZSwgZmFEcmFnb24sIGZhSG91cmdsYXNzRW5kLCBmYUhvdXJnbGFzczMsIGZhR3JpcCwgZmFHcmlkSG9yaXpvbnRhbCwgZmFHcmlwSG9yaXpvbnRhbCwgZmFCb3JkZXJUb3BMZWZ0LCBmYUJvcmRlclN0eWxlLCBmYUxpc3RVbCwgZmFMaXN0RG90cywgZmFQZW9wbGVSb2JiZXJ5LCBmYU1vYmlsZUJ1dHRvbiwgZmFBcnJvd0Rvd25BWiwgZmFTb3J0QWxwaGFBc2MsIGZhU29ydEFscGhhRG93biwgZmFNb25leUJpbGwsIGZhQ2lyY2xlTWludXMsIGZhTWludXNDaXJjbGUsIGZhQXJyb3dQb2ludGVyLCBmYU1vdXNlUG9pbnRlciwgZmFTcXVhcmVTaGFyZU5vZGVzLCBmYVNoYXJlQWx0U3F1YXJlLCBmYVRhYmxlQ2VsbHNMYXJnZSwgZmFUaExhcmdlLCBmYUNhdCwgZmFDYWxlbmRhcldlZWssIGZhQ29kZUNvbXBhcmUsIGZhUm9hZENpcmNsZVhtYXJrLCBmYVBhbGxldCwgZmFDYWtlQ2FuZGxlcywgZmFCaXJ0aGRheUNha2UsIGZhQ2FrZSwgZmFCdWdTbGFzaCwgZmFUYXJwLCBmYURpYWdyYW1QcmVkZWNlc3NvciwgZmFGYWNlRmx1c2hlZCwgZmFGbHVzaGVkLCBmYURpYWdyYW1OZXh0LCBmYUFuY2hvckNpcmNsZVhtYXJrLCBmYVBlcnNvbkNpcmNsZVhtYXJrLCBmYVNwYSwgZmFCYXJzUHJvZ3Jlc3MsIGZhVGFza3NBbHQsIGZhSGVhcnRDaXJjbGVDaGVjaywgZmFNYXJzU3Ryb2tlUmlnaHQsIGZhTWFyc1N0cm9rZUgsIGZhVG93ZXJPYnNlcnZhdGlvbiwgZmFTdGVybGluZ1NpZ24sIGZhR2JwLCBmYVBvdW5kU2lnbiwgZmFGYXVjZXREcmlwLCBmYUNpcmNsZUluZm8sIGZhSW5mb0NpcmNsZSwgZmFGZWF0aGVyLCBmYUJvd2xSaWNlLCBmYVN0YXJIYWxmU3Ryb2tlLCBmYVN0YXJIYWxmQWx0LCBmYVRlbXBlcmF0dXJlQXJyb3dEb3duLCBmYVRlbXBlcmF0dXJlRG93biwgZmFNYXNrVmVudGlsYXRvciwgZmFGaWxlVmlkZW8sIGZhQXJyb3dUcmVuZERvd24sIGZhT2lsQ2FuLCBmYVBlb3BsZUNhcnJ5Qm94LCBmYVBlb3BsZUNhcnJ5LCBmYUNoYWlyLCBmYVdpbmQsIGZhTGF5ZXJHcm91cCwgZmFIZWFkU2lkZU1hc2ssIGZhSGFuZHMsIGZhU2lnbkxhbmd1YWdlLCBmYVNpZ25pbmcsIGZhVGFibGV0cywgZmFXZWlnaHRIYW5naW5nLCBmYURpY2UsIGZhU2hvcFNsYXNoLCBmYVN0b3JlQWx0U2xhc2gsIGZhU29ydERvd24sIGZhU29ydERlc2MsIGZhUGVzZXRhU2lnbiwgZmFUYWJsZXRTY3JlZW5CdXR0b24sIGZhVGFibGV0QWx0LCBmYUhhbmRIb2xkaW5nRG9sbGFyLCBmYUhhbmRIb2xkaW5nVXNkLCBmYVNoaWVsZCwgZmFTaGllbGRCbGFuaywgZmFGYWNlTGF1Z2gsIGZhTGF1Z2gsIGZhSGFuZHNIb2xkaW5nLCBmYUNhcnRTaG9wcGluZywgZmFTaG9wcGluZ0NhcnQsIGZhT2N0YWdvbiwgZmFIYW5kUG9pbnRlciwgZmFSZWdpc3RlcmVkLCBmYUhvdXNlU2lnbmFsLCBmYUJhbmdsYWRlc2hpVGFrYVNpZ24gfTtcbiIsICJpbXBvcnQgeyBTVkdQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBkZWZhdWx0QXR0cmlidXRlczogU1ZHUHJvcHMgPSB7XG4gIHhtbG5zOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICB3aWR0aDogMjQsXG4gIGhlaWdodDogMjQsXG4gIHZpZXdCb3g6ICcwIDAgMjQgMjQnLFxuICBmaWxsOiAnbm9uZScsXG4gIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICdzdHJva2Utd2lkdGgnOiAyLFxuICAnc3Ryb2tlLWxpbmVjYXAnOiAncm91bmQnLFxuICAnc3Ryb2tlLWxpbmVqb2luJzogJ3JvdW5kJyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmF1bHRBdHRyaWJ1dGVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB7IEljb25Ob2RlLCBTVkdQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG50eXBlIENyZWF0ZVNWR0VsZW1lbnRQYXJhbXMgPSBbdGFnOiBzdHJpbmcsIGF0dHJzOiBTVkdQcm9wcywgY2hpbGRyZW4/OiBJY29uTm9kZV07XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBTVkdFbGVtZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gdGFnIC0gVGFnIG5hbWUgb2YgdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSB7b2JqZWN0fSBhdHRycyAtIEF0dHJpYnV0ZXMgb2YgdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSB7YXJyYXl9IGNoaWxkcmVuIC0gQ2hpbGRyZW4gb2YgdGhlIGVsZW1lbnRcbiAqIEByZXR1cm5zIHtTVkdFbGVtZW50fVxuICovXG5jb25zdCBjcmVhdGVTVkdFbGVtZW50ID0gKFt0YWcsIGF0dHJzLCBjaGlsZHJlbl06IENyZWF0ZVNWR0VsZW1lbnRQYXJhbXMpID0+IHtcbiAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCB0YWcpO1xuXG4gIE9iamVjdC5rZXlzKGF0dHJzKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgU3RyaW5nKGF0dHJzW25hbWVdKSk7XG4gIH0pO1xuXG4gIGlmIChjaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgIGNvbnN0IGNoaWxkRWxlbWVudCA9IGNyZWF0ZVNWR0VsZW1lbnQoY2hpbGQpO1xuXG4gICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNoaWxkRWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBIVE1MRWxlbWVudCBmcm9tIGljb24gbm9kZVxuICogQHBhcmFtIHthcnJheX0gaWNvbk5vZGUgLSBJY29uIG5vZGUgdG8gYmUgY29udmVydGVkIHRvIGFuIGVsZW1lbnRcbiAqIEBwYXJhbSB7b2JqZWN0fSBjdXN0b21BdHRycyAtIEN1c3RvbSBhdHRyaWJ1dGVzIHRvIGJlIGFkZGVkIHRvIHRoZSBlbGVtZW50XG4gKiBAcmV0dXJucyB7SFRNTEVsZW1lbnR9XG4gKi9cbmNvbnN0IGNyZWF0ZUVsZW1lbnQgPSAoaWNvbk5vZGU6IEljb25Ob2RlLCBjdXN0b21BdHRyczogU1ZHUHJvcHMgPSB7fSkgPT4ge1xuICBjb25zdCB0YWcgPSAnc3ZnJztcbiAgY29uc3QgYXR0cnMgPSB7XG4gICAgLi4uZGVmYXVsdEF0dHJpYnV0ZXMsXG4gICAgLi4uY3VzdG9tQXR0cnMsXG4gIH07XG5cbiAgcmV0dXJuIGNyZWF0ZVNWR0VsZW1lbnQoW3RhZywgYXR0cnMsIGljb25Ob2RlXSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVFbGVtZW50O1xuIiwgImltcG9ydCBjcmVhdGVFbGVtZW50IGZyb20gJy4vY3JlYXRlRWxlbWVudCc7XG5pbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgeyBJY29ucywgU1ZHUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgQ3VzdG9tQXR0cnMgPSB7IFthdHRyOiBzdHJpbmddOiBhbnkgfTtcblxuLyoqXG4gKiBHZXQgdGhlIGF0dHJpYnV0ZXMgb2YgYW4gSFRNTCBlbGVtZW50LlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudFxuICogQHJldHVybnMge09iamVjdH1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEF0dHJzID0gKGVsZW1lbnQ6IEVsZW1lbnQpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+XG4gIEFycmF5LmZyb20oZWxlbWVudC5hdHRyaWJ1dGVzKS5yZWR1Y2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKGF0dHJzLCBhdHRyKSA9PiB7XG4gICAgYXR0cnNbYXR0ci5uYW1lXSA9IGF0dHIudmFsdWU7XG4gICAgcmV0dXJuIGF0dHJzO1xuICB9LCB7fSk7XG5cbi8qKlxuICogR2V0cyB0aGUgY2xhc3NOYW1lcyBvZiBhbiBhdHRyaWJ1dGVzIE9iamVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBhdHRyc1xuICogQHJldHVybnMge0FycmF5fVxuICovXG5leHBvcnQgY29uc3QgZ2V0Q2xhc3NOYW1lcyA9IChcbiAgYXR0cnM6IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZyB8IHN0cmluZ1tdPiB8IHN0cmluZyxcbik6IHN0cmluZyB8IHN0cmluZ1tdID0+IHtcbiAgaWYgKHR5cGVvZiBhdHRycyA9PT0gJ3N0cmluZycpIHJldHVybiBhdHRycztcbiAgaWYgKCFhdHRycyB8fCAhYXR0cnMuY2xhc3MpIHJldHVybiAnJztcbiAgaWYgKGF0dHJzLmNsYXNzICYmIHR5cGVvZiBhdHRycy5jbGFzcyA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gYXR0cnMuY2xhc3Muc3BsaXQoJyAnKTtcbiAgfVxuICBpZiAoYXR0cnMuY2xhc3MgJiYgQXJyYXkuaXNBcnJheShhdHRycy5jbGFzcykpIHtcbiAgICByZXR1cm4gYXR0cnMuY2xhc3M7XG4gIH1cbiAgcmV0dXJuICcnO1xufTtcblxuLyoqXG4gKiBDb21iaW5lcyB0aGUgY2xhc3NOYW1lcyBvZiBhcnJheSBvZiBjbGFzc05hbWVzIHRvIGEgU3RyaW5nXG4gKiBAcGFyYW0ge2FycmF5fSBhcnJheU9mQ2xhc3NuYW1lc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbWJpbmVDbGFzc05hbWVzID0gKFxuICBhcnJheU9mQ2xhc3NuYW1lczogKHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZyB8IHN0cmluZ1tdPilbXSxcbikgPT4ge1xuICBjb25zdCBjbGFzc05hbWVBcnJheSA9IGFycmF5T2ZDbGFzc25hbWVzLmZsYXRNYXAoZ2V0Q2xhc3NOYW1lcyk7XG5cbiAgcmV0dXJuIGNsYXNzTmFtZUFycmF5XG4gICAgLm1hcCgoY2xhc3NJdGVtKSA9PiBjbGFzc0l0ZW0udHJpbSgpKVxuICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAuZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIHNlbGYpID0+IHNlbGYuaW5kZXhPZih2YWx1ZSkgPT09IGluZGV4KVxuICAgIC5qb2luKCcgJyk7XG59O1xuXG5jb25zdCB0b1Bhc2NhbENhc2UgPSAoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgc3RyaW5nLnJlcGxhY2UoLyhcXHcpKFxcdyopKF98LXxcXHMqKS9nLCAoZzAsIGcxLCBnMikgPT4gZzEudG9VcHBlckNhc2UoKSArIGcyLnRvTG93ZXJDYXNlKCkpO1xuXG5pbnRlcmZhY2UgUmVwbGFjZUVsZW1lbnRPcHRpb25zIHtcbiAgbmFtZUF0dHI6IHN0cmluZztcbiAgaWNvbnM6IEljb25zO1xuICBhdHRyczogU1ZHUHJvcHM7XG59XG5cbi8qKlxuICogUmVwbGFjZUVsZW1lbnQsIHJlcGxhY2VzIHRoZSBnaXZlbiBlbGVtZW50IHdpdGggdGhlIGNyZWF0ZWQgaWNvbi5cbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnRcbiAqIEBwYXJhbSB7eyBuYW1lQXR0cjogc3RyaW5nLCBpY29uczogb2JqZWN0LCBhdHRyczogb2JqZWN0IH19IG9wdGlvbnM6IHsgbmFtZUF0dHIsIGljb25zLCBhdHRycyB9XG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XG4gKi9cbmNvbnN0IHJlcGxhY2VFbGVtZW50ID0gKGVsZW1lbnQ6IEVsZW1lbnQsIHsgbmFtZUF0dHIsIGljb25zLCBhdHRycyB9OiBSZXBsYWNlRWxlbWVudE9wdGlvbnMpID0+IHtcbiAgY29uc3QgaWNvbk5hbWUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShuYW1lQXR0cik7XG5cbiAgaWYgKGljb25OYW1lID09IG51bGwpIHJldHVybjtcblxuICBjb25zdCBDb21wb25lbnROYW1lID0gdG9QYXNjYWxDYXNlKGljb25OYW1lKTtcblxuICBjb25zdCBpY29uTm9kZSA9IGljb25zW0NvbXBvbmVudE5hbWVdO1xuXG4gIGlmICghaWNvbk5vZGUpIHtcbiAgICByZXR1cm4gY29uc29sZS53YXJuKFxuICAgICAgYCR7ZWxlbWVudC5vdXRlckhUTUx9IGljb24gbmFtZSB3YXMgbm90IGZvdW5kIGluIHRoZSBwcm92aWRlZCBpY29ucyBvYmplY3QuYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgZWxlbWVudEF0dHJzID0gZ2V0QXR0cnMoZWxlbWVudCk7XG5cbiAgY29uc3QgaWNvbkF0dHJzID0ge1xuICAgIC4uLmRlZmF1bHRBdHRyaWJ1dGVzLFxuICAgICdkYXRhLWx1Y2lkZSc6IGljb25OYW1lLFxuICAgIC4uLmF0dHJzLFxuICAgIC4uLmVsZW1lbnRBdHRycyxcbiAgfTtcblxuICBjb25zdCBjbGFzc05hbWVzID0gY29tYmluZUNsYXNzTmFtZXMoWydsdWNpZGUnLCBgbHVjaWRlLSR7aWNvbk5hbWV9YCwgZWxlbWVudEF0dHJzLCBhdHRyc10pO1xuXG4gIGlmIChjbGFzc05hbWVzKSB7XG4gICAgT2JqZWN0LmFzc2lnbihpY29uQXR0cnMsIHtcbiAgICAgIGNsYXNzOiBjbGFzc05hbWVzLFxuICAgIH0pO1xuICB9XG5cbiAgY29uc3Qgc3ZnRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoaWNvbk5vZGUsIGljb25BdHRycyk7XG5cbiAgcmV0dXJuIGVsZW1lbnQucGFyZW50Tm9kZT8ucmVwbGFjZUNoaWxkKHN2Z0VsZW1lbnQsIGVsZW1lbnQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgcmVwbGFjZUVsZW1lbnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYS1hcnJvdy1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdNVElnTkNBMElEUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRaV055SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXhOaUEwTGpBek9TMDVMalk1WVM0MUxqVWdNQ0F3SURFZ0xqa3lNeUF3VERFeElERTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpMak13TkNBeE0yZzJMak01TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2EtYXJyb3ctZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFBcnJvd0Rvd246IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTIgNCA0IDQtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNlY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjMwNCAxM2g2LjM5MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBQXJyb3dEb3duO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGEtYXJyb3ctdXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRRZ01URWdOQzAwSURRZ05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVFpXTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeE5pQTBMakF6T1MwNUxqWTVZUzQxTGpVZ01DQXdJREVnTGpreU15QXdUREV4SURFMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswekxqTXdOQ0F4TTJnMkxqTTVNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYS1hcnJvdy11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFBcnJvd1VwOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0IDExIDQtNCA0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTZWNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy4zMDQgMTNoNi4zOTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQUFycm93VXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYS1sYXJnZS1zbWFsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRZZ01pNDFNell0Tnk0ek1qaGhNUzR3TWlBeExqQXlJREVnTUNBeElERXVPVEk0SURCTU1qSWdNVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxTGpZNU55QXhOR2cxTGpZd05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXhOaUEwTGpBek9TMDVMalk1WVM0MUxqVWdNQ0F3SURFZ0xqa3lNeUF3VERFeElERTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpMak13TkNBeE0yZzJMak01TWlJZ0x6NEtQQzl6ZG1jKykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYS1sYXJnZS1zbWFsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFMYXJnZVNtYWxsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE1IDE2IDIuNTM2LTcuMzI4YTEuMDIgMS4wMiAxIDAgMSAxLjkyOCAwTDIyIDE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1LjY5NyAxNGg1LjYwNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy4zMDQgMTNoNi4zOTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQUxhcmdlU21hbGw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYWNjZXNzaWJpbGl0eVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TmlJZ1kzazlJalFpSUhJOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTRJREU1SURFdE55MDJJREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFVnT0NBekxUTWdOUzQxSURNdE1pNHpOaUF6TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU1qUWdNVFF1TldFMUlEVWdNQ0F3SURBZ05pNDRPQ0EySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXk0M05pQXhOeTQxWVRVZ05TQXdJREFnTUMwMkxqZzRMVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWNjZXNzaWJpbGl0eVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFjY2Vzc2liaWxpdHk6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnNCcsIHI6ICcxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDE5IDEtNy02IDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSA4IDMtMyA1LjUgMy0yLjM2IDMuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000LjI0IDE0LjVhNSA1IDAgMCAwIDYuODggNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy43NiAxNy41YTUgNSAwIDAgMC02Ljg4LTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQWNjZXNzaWJpbGl0eTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhY3Rpdml0eVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRKb0xUSXVORGhoTWlBeUlEQWdNQ0F3TFRFdU9UTWdNUzQwTm13dE1pNHpOU0E0TGpNMllTNHlOUzR5TlNBd0lEQWdNUzB1TkRnZ01FdzVMakkwSURJdU1UaGhMakkxTGpJMUlEQWdNQ0F3TFM0ME9DQXdiQzB5TGpNMUlEZ3VNelpCTWlBeUlEQWdNQ0F4SURRdU5Ea2dNVEpJTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FjdGl2aXR5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWN0aXZpdHk6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgMTJoLTIuNDhhMiAyIDAgMCAwLTEuOTMgMS40NmwtMi4zNSA4LjM2YS4yNS4yNSAwIDAgMS0uNDggMEw5LjI0IDIuMThhLjI1LjI1IDAgMCAwLS40OCAwbC0yLjM1IDguMzZBMiAyIDAgMCAxIDQuNDkgMTJIMicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFjdGl2aXR5O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFpci12ZW50XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVGN1TldFeUxqVWdNaTQxSURBZ01TQXhMVFFnTWk0d00xWXhNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4TWtnMFlUSWdNaUF3SURBZ01TMHlMVEpXTldFeUlESWdNQ0F3SURFZ01pMHlhREUyWVRJZ01pQXdJREFnTVNBeUlESjJOV0V5SURJZ01DQXdJREV0TWlBeWFDMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJRGhvTVRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU5pQXhOUzQxTnpKQk1pQXlJREFnTVNBd0lERXdJREUzZGkwMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fpci12ZW50XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWlyVmVudDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNy41YTIuNSAyLjUgMCAxIDEtNCAyLjAzVjEyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDhoMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi42IDE1LjU3MkEyIDIgMCAxIDAgMTAgMTd2LTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQWlyVmVudDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGFybS1jbG9jay1jaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV6SWlCeVBTSTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJRE1nTWlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1pQTJMVE10TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0ek9DQXhPQzQzSURRZ01qRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMalkwSURFNExqWTNJREl3SURJeElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERXpJRElnTWlBMExUUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGFybS1jbG9jay1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFsYXJtQ2xvY2tDaGVjazogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMycsIHI6ICc4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMyAyIDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNi0zLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4zOCAxOC43IDQgMjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNjQgMTguNjcgMjAgMjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMyAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFsYXJtQ2xvY2tDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhaXJwbGF5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhOMGcwWVRJZ01pQXdJREFnTVMweUxUSldOV0V5SURJZ01DQXdJREVnTWkweWFERTJZVElnTWlBd0lEQWdNU0F5SURKMk1UQmhNaUF5SURBZ01DQXhMVElnTW1ndE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USWdNVFVnTlNBMlNEZGFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9haXJwbGF5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWlycGxheTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDE3SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDE1IDUgNkg3WicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBaXJwbGF5O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFsYXJtLWNsb2NrLW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXpJaUJ5UFNJNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlETWdNaUEySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TWlBMkxUTXRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaTR6T0NBeE9DNDNJRFFnTWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqWTBJREU0TGpZM0lESXdJREl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFemFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGFybS1jbG9jay1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFsYXJtQ2xvY2tNaW51czogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMycsIHI6ICc4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMyAyIDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNi0zLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4zOCAxOC43IDQgMjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNjQgMTguNjcgMjAgMjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxM2g2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFsYXJtQ2xvY2tNaW51cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGFybS1jbG9jay1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmk0NE55QTJMamczWVRnZ09DQXdJREVnTUNBeE1TNHlOaUF4TVM0eU5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua3VPU0F4TkM0eU5XRTRJRGdnTUNBd0lEQXRPUzR4TlMwNUxqRTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUEyTFRNdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNHlOaUF4T0M0Mk55QTBJREl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURJZ01qQWdNakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTkNBeUlEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGFybS1jbG9jay1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbGFybUNsb2NrT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTYuODcgNi44N2E4IDggMCAxIDAgMTEuMjYgMTEuMjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuOSAxNC4yNWE4IDggMCAwIDAtOS4xNS05LjE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDYtMy0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMjYgMTguNjcgNCAyMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA0IDIgNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbGFybUNsb2NrT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFsYXJtLWNsb2NrLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeklpQnlQU0k0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURNZ01pQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUEyTFRNdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNHpPQ0F4T0M0M0lEUWdNakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzTGpZMElERTRMalkzSURJd0lESXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TUhZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERXphRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxhcm0tY2xvY2stcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFsYXJtQ2xvY2tQbHVzOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEzJywgcjogJzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzIDIgNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiA2LTMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjM4IDE4LjcgNCAyMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy42NCAxOC42NyAyMCAyMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMHY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTNoNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbGFybUNsb2NrUGx1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGFybS1jbG9ja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV6SWlCeVBTSTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE1ZGpSc01pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJRE1nTWlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1pQTJMVE10TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0ek9DQXhPQzQzSURRZ01qRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMalkwSURFNExqWTNJREl3SURJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsYXJtLWNsb2NrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWxhcm1DbG9jazogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMycsIHI6ICc4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDl2NGwyIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzIDIgNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiA2LTMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjM4IDE4LjcgNCAyMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy42NCAxOC42NyAyMCAyMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbGFybUNsb2NrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFsYXJtLXNtb2tlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNakZqTUMweUxqVWdNaTB5TGpVZ01pMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF5TVdNd0xUSXVOU0F5TFRJdU5TQXlMVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU1SURndExqZ2dNMkV4TGpJMUlERXVNalVnTUNBd0lERXRNUzR5SURGSU4yRXhMakkxSURFdU1qVWdNQ0F3SURFdE1TNHlMVEZNTlNBNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXpZVEVnTVNBd0lEQWdNU0F4SURGMk1tRXlJRElnTUNBd0lERXRNaUF5U0RSaE1pQXlJREFnTUNBeExUSXRNbFkwWVRFZ01TQXdJREFnTVNBeExURjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREl4WXpBdE1pNDFJREl0TWk0MUlESXROU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxhcm0tc21va2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbGFybVNtb2tlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDIxYzAtMi41IDItMi41IDItNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAyMWMwLTIuNSAyLTIuNSAyLTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgOC0uOCAzYTEuMjUgMS4yNSAwIDAgMS0xLjIgMUg3YTEuMjUgMS4yNSAwIDAgMS0xLjItMUw1IDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgM2ExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNGExIDEgMCAwIDEgMS0xeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDIxYzAtMi41IDItMi41IDItNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbGFybVNtb2tlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFsYnVtXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4Y0c5c2VXeHBibVVnY0c5cGJuUnpQU0l4TVNBeklERXhJREV4SURFMElEZ2dNVGNnTVRFZ01UY2dNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxidW1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbGJ1bTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzExIDMgMTEgMTEgMTQgOCAxNyAxMSAxNyAzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFsYnVtO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFsaWduLWNlbnRlci1ob3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNbWd5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UWjJOR0V5SURJZ01DQXdJREV0TWlBeVNEWmhNaUF5SURBZ01DQXhMVEl0TW5ZdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdPRlkwWVRJZ01pQXdJREFnTUMweUxUSklObUV5SURJZ01DQXdJREF0TWlBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJREUyZGpGaE1pQXlJREFnTUNBeExUSWdNbWd0TW1FeUlESWdNQ0F3SURFdE1pMHlkaTB4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBNFZqZGpNQzB4TGpFdU9TMHlJREl0TW1neVlUSWdNaUF3SURBZ01TQXlJREoyTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWNlbnRlci1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWxpZ25DZW50ZXJIb3Jpem9udGFsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTZ2NGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA4VjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxNnYxYTIgMiAwIDAgMS0yIDJoLTJhMiAyIDAgMCAxLTItMnYtMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA4VjdjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnbkNlbnRlckhvcml6b250YWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYWxpZ24tY2VudGVyLXZlcnRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1FZzBZVElnTWlBd0lEQWdNUzB5TFRKV05tTXdMVEV1TVM0NUxUSWdNaTB5YURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERXdhRFJoTWlBeUlEQWdNQ0F3SURJdE1sWTJZVElnTWlBd0lEQWdNQzB5TFRKb0xUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNakJJTjJFeUlESWdNQ0F3SURFdE1pMHlkaTB5WXpBdE1TNHhMamt0TWlBeUxUSm9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRSb01XRXlJRElnTUNBd0lERWdNaUF5ZGpKaE1pQXlJREFnTUNBeExUSWdNbWd0TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWNlbnRlci12ZXJ0aWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFsaWduQ2VudGVyVmVydGljYWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEwSDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMGg0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjBIN2EyIDIgMCAwIDEtMi0ydi0yYzAtMS4xLjktMiAyLTJoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNGgxYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAyaC0xJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduQ2VudGVyVmVydGljYWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYWxpZ24tZW5kLWhvcml6b250YWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU5pSWdhR1ZwWjJoMFBTSXhOaUlnZUQwaU5DSWdlVDBpTWlJZ2NuZzlJaklpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpZaUlHaGxhV2RvZEQwaU9TSWdlRDBpTVRRaUlIazlJamtpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF5TWtneUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWVuZC1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWxpZ25FbmRIb3Jpem9udGFsOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxNicsIHg6ICc0JywgeTogJzInLCByeDogJzInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzknLCB4OiAnMTQnLCB5OiAnOScsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMkgyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduRW5kSG9yaXpvbnRhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGlnbi1lbmQtdmVydGljYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UWWlJR2hsYVdkb2REMGlOaUlnZUQwaU1pSWdlVDBpTkNJZ2NuZzlJaklpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpraUlHaGxhV2RvZEQwaU5pSWdlRDBpT1NJZ2VUMGlNVFFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF5TWxZeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWVuZC12ZXJ0aWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFsaWduRW5kVmVydGljYWw6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICc2JywgeDogJzInLCB5OiAnNCcsIHJ4OiAnMicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc5JywgaGVpZ2h0OiAnNicsIHg6ICc5JywgeTogJzE0Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIyVjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25FbmRWZXJ0aWNhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtY2VudGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TkNJZ2VEMGlOQ0lnZVQwaU5TSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRTBJaUI1UFNJM0lpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01qSjJMVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURkV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXlNbll0TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBMVZqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtY2VudGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUNlbnRlcjogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTQnLCB4OiAnNCcsIHk6ICc1Jywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxMCcsIHg6ICcxNCcsIHk6ICc3Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDIydi01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDdWMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIydi0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgNVYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYWxpZ24taG9yaXpvbnRhbC1kaXN0cmlidXRlLXN0YXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TkNJZ2VEMGlOQ0lnZVQwaU5TSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRTBJaUI1UFNJM0lpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeWRqSXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5ZGpJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1zdGFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTQnLCB4OiAnNCcsIHk6ICc1Jywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxMCcsIHg6ICcxNCcsIHk6ICc3Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMnYyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtZW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TkNJZ2VEMGlOQ0lnZVQwaU5TSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRTBJaUI1UFNJM0lpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01uWXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTW5ZeU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWRpc3RyaWJ1dGUtZW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUVuZDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTQnLCB4OiAnNCcsIHk6ICc1Jywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxMCcsIHg6ICcxNCcsIHk6ICc3Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDJ2MjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMnYyMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnbkhvcml6b250YWxEaXN0cmlidXRlRW5kO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFsaWduLWhvcml6b250YWwtanVzdGlmeS1jZW50ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU5pSWdhR1ZwWjJoMFBTSXhOQ0lnZUQwaU1pSWdlVDBpTlNJZ2NuZzlJaklpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpZaUlHaGxhV2RvZEQwaU1UQWlJSGc5SWpFMklpQjVQU0kzSWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktY2VudGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTQnLCB4OiAnMicsIHk6ICc1Jywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxMCcsIHg6ICcxNicsIHk6ICc3Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktZW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TkNJZ2VEMGlNaUlnZVQwaU5TSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRXlJaUI1UFNJM0lpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01uWXlNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LWVuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFsaWduSG9yaXpvbnRhbEp1c3RpZnlFbmQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzE0JywgeDogJzInLCB5OiAnNScsIHJ4OiAnMicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTAnLCB4OiAnMTInLCB5OiAnNycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAydjIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduSG9yaXpvbnRhbEp1c3RpZnlFbmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LXN0YXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TkNJZ2VEMGlOaUlnZVQwaU5TSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRTJJaUI1UFNJM0lpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeWRqSXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktc3RhcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbGlnbkhvcml6b250YWxKdXN0aWZ5U3RhcnQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzE0JywgeDogJzYnLCB5OiAnNScsIHJ4OiAnMicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTAnLCB4OiAnMTYnLCB5OiAnNycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDJ2MjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFsaWduLWhvcml6b250YWwtc3BhY2UtYXJvdW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TUNJZ2VEMGlPU0lnZVQwaU55SWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01qSldNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpKV01pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1ob3Jpem9udGFsLXNwYWNlLWFyb3VuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFsaWduSG9yaXpvbnRhbFNwYWNlQXJvdW5kOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxMCcsIHg6ICc5JywgeTogJzcnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMlYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDIyVjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYWxpZ24taG9yaXpvbnRhbC1zcGFjZS1iZXR3ZWVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TkNJZ2VEMGlNeUlnZVQwaU5TSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRTFJaUI1UFNJM0lpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeWRqSXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F5ZGpJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLWhvcml6b250YWwtc3BhY2UtYmV0d2VlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFsaWduSG9yaXpvbnRhbFNwYWNlQmV0d2VlbjogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTQnLCB4OiAnMycsIHk6ICc1Jywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxMCcsIHg6ICcxNScsIHk6ICc3Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMnYyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAydjIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduSG9yaXpvbnRhbFNwYWNlQmV0d2VlbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGlnbi1zdGFydC1ob3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0l4TmlJZ2VEMGlOQ0lnZVQwaU5pSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlPU0lnZUQwaU1UUWlJSGs5SWpZaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeVNESWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbGlnbi1zdGFydC1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWxpZ25TdGFydEhvcml6b250YWw6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNicsIGhlaWdodDogJzE2JywgeDogJzQnLCB5OiAnNicsIHJ4OiAnMicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnOScsIHg6ICcxNCcsIHk6ICc2Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDJIMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnblN0YXJ0SG9yaXpvbnRhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGlnbi1zdGFydC12ZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpT1NJZ2FHVnBaMmgwUFNJMklpQjRQU0kySWlCNVBTSXhOQ0lnY25nOUlqSWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakUySWlCb1pXbG5hSFE5SWpZaUlIZzlJallpSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlESjJNakFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tc3RhcnQtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbGlnblN0YXJ0VmVydGljYWw6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOScsIGhlaWdodDogJzYnLCB4OiAnNicsIHk6ICcxNCcsIHJ4OiAnMicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzYnLCB4OiAnNicsIHk6ICc0Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMnYyMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnblN0YXJ0VmVydGljYWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZS1jZW50ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UZG9MVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURkb0xUVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNVGRJTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBM1NESWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU5TSWdlVDBpTVRRaUlIZHBaSFJvUFNJeE5DSWdhR1ZwWjJoMFBTSTJJaUJ5ZUQwaU1pSWdMejRLSUNBOGNtVmpkQ0I0UFNJM0lpQjVQU0kwSWlCM2FXUjBhRDBpTVRBaUlHaGxhV2RvZEQwaU5pSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtY2VudGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTdoLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgN2gtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE3SDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA3SDInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc1JywgeTogJzE0Jywgd2lkdGg6ICcxNCcsIGhlaWdodDogJzYnLCByeDogJzInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc3JywgeTogJzQnLCB3aWR0aDogJzEwJywgaGVpZ2h0OiAnNicsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUNlbnRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLWVuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRRaUlHaGxhV2RvZEQwaU5pSWdlRDBpTlNJZ2VUMGlNVFFpSUhKNFBTSXlJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TUNJZ2FHVnBaMmgwUFNJMklpQjRQU0kzSWlCNVBTSTBJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNR2d5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1HZ3lNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZS1lbmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNCcsIGhlaWdodDogJzYnLCB4OiAnNScsIHk6ICcxNCcsIHJ4OiAnMicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMCcsIGhlaWdodDogJzYnLCB4OiAnNycsIHk6ICc0Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMjBoMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMGgyMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLXN0YXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFFpSUdobGFXZG9kRDBpTmlJZ2VEMGlOU0lnZVQwaU1UUWlJSEo0UFNJeUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhNQ0lnYUdWcFoyaDBQU0kySWlCNFBTSTNJaUI1UFNJMElpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE5HZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUEwYURJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLXZlcnRpY2FsLWRpc3RyaWJ1dGUtc3RhcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE0JywgaGVpZ2h0OiAnNicsIHg6ICc1JywgeTogJzE0Jywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzEwJywgaGVpZ2h0OiAnNicsIHg6ICc3JywgeTogJzQnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNGgyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDRoMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVTdGFydDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGlnbi12ZXJ0aWNhbC1qdXN0aWZ5LWNlbnRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRRaUlHaGxhV2RvZEQwaU5pSWdlRDBpTlNJZ2VUMGlNVFlpSUhKNFBTSXlJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TUNJZ2FHVnBaMmgwUFNJMklpQjRQU0kzSWlCNVBTSXlJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNbWd5TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLXZlcnRpY2FsLWp1c3RpZnktY2VudGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQWxpZ25WZXJ0aWNhbEp1c3RpZnlDZW50ZXI6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICc2JywgeDogJzUnLCB5OiAnMTYnLCByeDogJzInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICc2JywgeDogJzcnLCB5OiAnMicsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduVmVydGljYWxKdXN0aWZ5Q2VudGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFsaWduLXZlcnRpY2FsLWp1c3RpZnktZW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFFpSUdobGFXZG9kRDBpTmlJZ2VEMGlOU0lnZVQwaU1USWlJSEo0UFNJeUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhNQ0lnYUdWcFoyaDBQU0kySWlCNFBTSTNJaUI1UFNJeUlpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1tZ3lNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1lbmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbGlnblZlcnRpY2FsSnVzdGlmeUVuZDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNCcsIGhlaWdodDogJzYnLCB4OiAnNScsIHk6ICcxMicsIHJ4OiAnMicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMCcsIGhlaWdodDogJzYnLCB4OiAnNycsIHk6ICcyJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMjJoMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYWxpZ24tdmVydGljYWwtanVzdGlmeS1zdGFydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRRaUlHaGxhV2RvZEQwaU5pSWdlRDBpTlNJZ2VUMGlNVFlpSUhKNFBTSXlJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TUNJZ2FHVnBaMmgwUFNJMklpQjRQU0kzSWlCNVBTSTJJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlhREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1zdGFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICc2JywgeDogJzUnLCB5OiAnMTYnLCByeDogJzInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICc2JywgeDogJzcnLCB5OiAnNicsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDJoMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25WZXJ0aWNhbEp1c3RpZnlTdGFydDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGlnbi12ZXJ0aWNhbC1zcGFjZS1hcm91bmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UQWlJR2hsYVdkb2REMGlOaUlnZUQwaU55SWdlVDBpT1NJZ2NuZzlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURJd1NESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJRFJJTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLXZlcnRpY2FsLXNwYWNlLWFyb3VuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMCcsIGhlaWdodDogJzYnLCB4OiAnNycsIHk6ICc5Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIwSDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgNEgyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbGlnbi12ZXJ0aWNhbC1zcGFjZS1iZXR3ZWVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFFpSUdobGFXZG9kRDBpTmlJZ2VEMGlOU0lnZVQwaU1UVWlJSEo0UFNJeUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhNQ0lnYUdWcFoyaDBQU0kySWlCNFBTSTNJaUI1UFNJeklpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1XZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF6YURJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FsaWduLXZlcnRpY2FsLXNwYWNlLWJldHdlZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbGlnblZlcnRpY2FsU3BhY2VCZXR3ZWVuOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE0JywgaGVpZ2h0OiAnNicsIHg6ICc1JywgeTogJzE1Jywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzEwJywgaGVpZ2h0OiAnNicsIHg6ICc3JywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMWgyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDNoMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbWJ1bGFuY2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UQklOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRoV05tRXlJRElnTUNBd0lEQXRNaTB5U0RSaE1pQXlJREFnTUNBd0xUSWdNbll4TVdFeElERWdNQ0F3SURBZ01TQXhhRElpSUM4K0NpQWdQSEJoZEdnS0lDQWdJR1E5SWsweE9TQXhPR2d5WVRFZ01TQXdJREFnTUNBeExURjJMVE11TWpoaE1TQXhJREFnTUNBd0xTNDJPRFF0TGprME9Hd3RNUzQ1TWpNdExqWTBNV0V4SURFZ01DQXdJREV0TGpVM09DMHVOVEF5YkMweExqVXpPUzB6TGpBM05rRXhJREVnTUNBd0lEQWdNVFl1TXpneUlEaElNVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnT0hZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTRhRFlpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRjaUlHTjVQU0l4T0NJZ2NqMGlNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kzSWlCamVUMGlNVGdpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbWJ1bGFuY2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbWJ1bGFuY2U6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTBINicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFoMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOSAxOGgyYTEgMSAwIDAgMCAxLTF2LTMuMjhhMSAxIDAgMCAwLS42ODQtLjk0OGwtMS45MjMtLjY0MWExIDEgMCAwIDEtLjU3OC0uNTAybC0xLjUzOS0zLjA3NkExIDEgMCAwIDAgMTYuMzgyIDhIMTQnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDh2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE4aDYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnMTgnLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzcnLCBjeTogJzE4JywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQW1idWxhbmNlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFtcGVyc2FuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRKb015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VOU0F4TW1FNElEZ2dNQ0F3SURFdE9DQTRRVFF1TlNBMExqVWdNQ0F3SURFZ05TQXhOUzQxWXpBdE5pQTRMVFFnT0MwNExqVmhNeUF6SURBZ01TQXdMVFlnTUdNd0lETWdNaTQxSURndU5TQXhNaUF4TXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FtcGVyc2FuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFtcGVyc2FuZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMmgzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3LjUgMTJhOCA4IDAgMCAxLTggOEE0LjUgNC41IDAgMCAxIDUgMTUuNWMwLTYgOC00IDgtOC41YTMgMyAwIDEgMC02IDBjMCAzIDIuNSA4LjUgMTIgMTMnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbXBlcnNhbmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYW1wZXJzYW5kc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRkakxUVXRNeTAzTFRjdE55MDVZVElnTWlBd0lEQWdNU0EwSURCak1DQXlMalV0TlNBeUxqVXROU0EySURBZ01TNDNJREV1TXlBeklETWdNeUF5TGpnZ01DQTFMVEl1TWlBMUxUVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREUzWXkwMUxUTXROeTAzTFRjdE9XRXlJRElnTUNBd0lERWdOQ0F3WXpBZ01pNDFMVFVnTWk0MUxUVWdOaUF3SURFdU55QXhMak1nTXlBeklETWdNaTQ0SURBZ05TMHlMaklnTlMwMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FtcGVyc2FuZHNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbXBlcnNhbmRzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTAgMTdjLTUtMy03LTctNy05YTIgMiAwIDAgMSA0IDBjMCAyLjUtNSAyLjUtNSA2IDAgMS43IDEuMyAzIDMgMyAyLjggMCA1LTIuMiA1LTUnIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTIyIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01JyB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQW1wZXJzYW5kcztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbXBob3JhXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNblkxTGpZek1tTXdJQzQwTWpRdExqSTNNaTQzT1RVdExqWTFNeTQ1T0RKQk5pQTJJREFnTUNBd0lEWWdNVFJqTGpBd05pQTBJRE1nTnlBMUlEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJRFZJT0dFeUlESWdNQ0F3SURBZ01DQTBhQzQyT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFMall6TW1Nd0lDNDBNalF1TWpjeUxqYzVOUzQyTlRJdU9UZ3lRVFlnTmlBd0lEQWdNU0F4T0NBeE5HTXdJRFF0TXlBM0xUVWdPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTldneVlUSWdNaUF3SURBZ01TQXdJRFJvTFM0Mk9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNakpJTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeWFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbXBob3JhXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQW1waG9yYTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAydjUuNjMyYzAgLjQyNC0uMjcyLjc5NS0uNjUzLjk4MkE2IDYgMCAwIDAgNiAxNGMuMDA2IDQgMyA3IDUgOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA1SDhhMiAyIDAgMCAwIDAgNGguNjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1LjYzMmMwIC40MjQuMjcyLjc5NS42NTIuOTgyQTYgNiAwIDAgMSAxOCAxNGMwIDQtMyA3LTUgOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA1aDJhMiAyIDAgMCAxIDAgNGgtLjY4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIySDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyaDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQW1waG9yYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbmNob3JcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGtnTVRNZ01pMHhZVGtnT1NBd0lEQWdNUzB4T0NBd2JESWdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TVdnMklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU5DSWdjajBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FuY2hvclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFuY2hvcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5IDEzIDItMWE5IDkgMCAwIDEtMTggMGwyIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMWg2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzQnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbmNob3I7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYW5ncnlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UWnpMVEV1TlMweUxUUXRNaTAwSURJdE5DQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNMalVnT0NBeE1DQTVJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQ0E1SURJdU5TMHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV3YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNVEJvTGpBeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FuZ3J5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQW5ncnk6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuNSA4IDEwIDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgOSAyLjUtMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEwaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxMGguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQW5ncnk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYW5ub3llZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TldnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEbG9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnT1dneUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fubm95ZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbm5veWVkOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTVoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDloMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA5aDInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQW5ub3llZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbnRlbm5hXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNaUEzSURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRjZ01USWdOUzB4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ01USWdOUzB4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRjZ01USWdOUzB4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkM0MUlEZG9NVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFMmRqWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hbnRlbm5hXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQW50ZW5uYTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyIDcgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDEyIDUtMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMTIgNS0xMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxMiA1LTEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuNSA3aDE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2djYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQW50ZW5uYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhbnZpbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUF4TUVnMllUUWdOQ0F3SURBZ01TMDBMVFFnTVNBeElEQWdNQ0F4SURFdE1XZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJRFZoTVNBeElEQWdNQ0F4SURFdE1XZ3hNMkV4SURFZ01DQXdJREVnTVNBeElEY2dOeUF3SURBZ01TMDNJRGRJT0dFeElERWdNQ0F3SURFdE1TMHhlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TW5ZMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhNblkxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURJd1lUTWdNeUF3SURBZ01TQXpMVE5vT0dFeklETWdNQ0F3SURFZ015QXpJREVnTVNBd0lEQWdNUzB4SURGSU5tRXhJREVnTUNBd0lERXRNUzB4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYW52aWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBbnZpbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003IDEwSDZhNCA0IDAgMCAxLTQtNCAxIDEgMCAwIDEgMS0xaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA1YTEgMSAwIDAgMSAxLTFoMTNhMSAxIDAgMCAxIDEgMSA3IDcgMCAwIDEtNyA3SDhhMSAxIDAgMCAxLTEtMXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMnY1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEydjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMGEzIDMgMCAwIDEgMy0zaDhhMyAzIDAgMCAxIDMgMyAxIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBbnZpbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcGVydHVyZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFF1TXpFZ09DQTFMamMwSURrdU9UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa3VOamtnT0dneE1TNDBPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROeTR6T0NBeE1pQTFMamMwTFRrdU9UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa3VOamtnTVRZZ015NDVOU0EyTGpBMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNHpNU0F4TmtneUxqZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaTQyTWlBeE1pMDFMamMwSURrdU9UUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcGVydHVyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFwZXJ0dXJlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0LjMxIDggNS43NCA5Ljk0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuNjkgOGgxMS40OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203LjM4IDEyIDUuNzQtOS45NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjY5IDE2IDMuOTUgNi4wNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC4zMSAxNkgyLjgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2LjYyIDEyLTUuNzQgOS45NCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcGVydHVyZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcHAtd2luZG93LW1hY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UWWlJSGc5SWpJaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJRGhvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQTRhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ09HZ3VNREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXBwLXdpbmRvdy1tYWNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcHBXaW5kb3dNYWM6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNicsIHg6ICcyJywgeTogJzQnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA4aC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcHBXaW5kb3dNYWM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXBwLXdpbmRvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCNFBTSXlJaUI1UFNJMElpQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFlpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0EwZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ09HZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUEwZGpRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FwcC13aW5kb3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcHBXaW5kb3c6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzQnLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTYnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgNHY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgOGgyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDR2NCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcHBXaW5kb3c7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXBwbGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05pNDFNamhXTTJFeElERWdNQ0F3SURFZ01TMHhhREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0TGpJek55QXlNVUV4TlNBeE5TQXdJREFnTUNBeU1pQXhNV0UySURZZ01DQXdJREF0TVRBdE5DNDBOekpCTmlBMklEQWdNQ0F3SURJZ01URmhNVFV1TVNBeE5TNHhJREFnTUNBd0lETXVOell6SURFd0lETWdNeUF3SURBZ01DQXpMalkwT0M0Mk5EZ2dOUzQxSURVdU5TQXdJREFnTVNBMUxqRTNPQ0F3UVRNZ015QXdJREFnTUNBeE9DNHlNemNnTWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FwcGxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXBwbGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNi41MjhWM2ExIDEgMCAwIDEgMS0xaDAnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTguMjM3IDIxQTE1IDE1IDAgMCAwIDIyIDExYTYgNiAwIDAgMC0xMC00LjQ3MkE2IDYgMCAwIDAgMiAxMWExNS4xIDE1LjEgMCAwIDAgMy43NjMgMTAgMyAzIDAgMCAwIDMuNjQ4LjY0OCA1LjUgNS41IDAgMCAxIDUuMTc4IDBBMyAzIDAgMCAwIDE4LjIzNyAyMScsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFwcGxlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFyY2hpdmUtcmVzdG9yZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU5TSWdlRDBpTWlJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdPSFl4TVdFeUlESWdNQ0F3SURBZ01pQXlhRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURoMk1URmhNaUF5SURBZ01DQXhMVElnTW1ndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhOU0F6TFRNZ015QXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW5ZNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FyY2hpdmUtcmVzdG9yZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFyY2hpdmVSZXN0b3JlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnNScsIHg6ICcyJywgeTogJzMnLCByeDogJzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA4djExYTIgMiAwIDAgMCAyIDJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA4djExYTIgMiAwIDAgMS0yIDJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxNSAzLTMgMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEydjknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJjaGl2ZVJlc3RvcmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJjaGl2ZS14XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTlNJZ2VEMGlNaUlnZVQwaU15SWdjbmc5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ09IWXhNV0V5SURJZ01DQXdJREFnTWlBeWFERXlZVElnTWlBd0lEQWdNQ0F5TFRKV09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TNDFJREUzSURVdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TNDFJREV5SURVZ05TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcmNoaXZlLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcmNoaXZlWDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzUnLCB4OiAnMicsIHk6ICczJywgcng6ICcxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205LjUgMTcgNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSAxMiA1IDUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJjaGl2ZVg7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJjaGl2ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU5TSWdlRDBpTWlJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdPSFl4TVdFeUlESWdNQ0F3SURBZ01pQXlhREV5WVRJZ01pQXdJREFnTUNBeUxUSldPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRKb05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcmNoaXZlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJjaGl2ZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzUnLCB4OiAnMicsIHk6ICczJywgcng6ICcxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMmg0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFyY2hpdmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJtY2hhaXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ09WWTJZVElnTWlBd0lEQWdNQzB5TFRKSU4yRXlJRElnTUNBd0lEQXRNaUF5ZGpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UWmhNaUF5SURBZ01DQXdJRElnTW1neE5HRXlJRElnTUNBd0lEQWdNaTB5ZGkwMVlUSWdNaUF3SURBZ01DMDBJREIyTVM0MVlTNDFMalVnTUNBd0lERXRMalV1TldndE9XRXVOUzQxSURBZ01DQXhMUzQxTFM0MVZqRXhZVElnTWlBd0lEQWdNQzAwSURCNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlERTRkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURFNGRqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcm1jaGFpclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFybWNoYWlyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE5IDlWNmEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnYzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMgMTZhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41VjExYTIgMiAwIDAgMC00IDB6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxOHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE4djInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJtY2hhaXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctYmlnLWRvd24tZGFzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTVRGaE1TQXhJREFnTUNBd0lERWdNV2d5TGprek9XRXhJREVnTUNBd0lERWdMamMxSURFdU9ERXhiQzAyTGpnek5TQTJMamd6Tm1FeExqSXdOeUF4TGpJd055QXdJREFnTVMweExqY3dOeUF3VERRdU16RWdNVE11T0RGaE1TQXhJREFnTUNBeElDNDNOUzB4TGpneE1VZzRZVEVnTVNBd0lEQWdNQ0F4TFRGV09XRXhJREVnTUNBd0lERWdNUzB4YURSaE1TQXhJREFnTUNBeElERWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTkdnMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWJpZy1kb3duLWRhc2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd0JpZ0Rvd25EYXNoOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1IDExYTEgMSAwIDAgMCAxIDFoMi45MzlhMSAxIDAgMCAxIC43NSAxLjgxMWwtNi44MzUgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEtMS43MDcgMEw0LjMxIDEzLjgxYTEgMSAwIDAgMSAuNzUtMS44MTFIOGExIDEgMCAwIDAgMS0xVjlhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA0aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dCaWdEb3duRGFzaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy1iaWctZG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTVRGaE1TQXhJREFnTUNBd0lERWdNV2d5TGprek9XRXhJREVnTUNBd0lERWdMamMxSURFdU9ERXhiQzAyTGpnek5TQTJMamd6Tm1FeExqSXdOeUF4TGpJd055QXdJREFnTVMweExqY3dOeUF3VERRdU16RWdNVE11T0RGaE1TQXhJREFnTUNBeElDNDNOUzB4TGpneE1VZzRZVEVnTVNBd0lEQWdNQ0F4TFRGV05XRXhJREVnTUNBd0lERWdNUzB4YURSaE1TQXhJREFnTUNBeElERWdNWG9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctYmlnLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd0JpZ0Rvd246IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUgMTFhMSAxIDAgMCAwIDEgMWgyLjkzOWExIDEgMCAwIDEgLjc1IDEuODExbC02LjgzNSA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwNyAwTDQuMzEgMTMuODFhMSAxIDAgMCAxIC43NS0xLjgxMUg4YTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0JpZ0Rvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctYmlnLWxlZnQtZGFzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nT1dFeElERWdNQ0F3SURFdE1TMHhWalV1TURZeFlURWdNU0F3SURBZ01DMHhMamd4TVMwdU56VnNMVFl1T0RNMUlEWXVPRE0yWVRFdU1qQTNJREV1TWpBM0lEQWdNQ0F3SURBZ01TNDNNRGRzTmk0NE16VWdOaTQ0TXpWaE1TQXhJREFnTUNBd0lERXVPREV4TFM0M05WWXhObUV4SURFZ01DQXdJREVnTVMweGFESmhNU0F4SURBZ01DQXdJREV0TVhZdE5HRXhJREVnTUNBd0lEQXRNUzB4ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ09YWTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1iaWctbGVmdC1kYXNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dCaWdMZWZ0RGFzaDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMyA5YTEgMSAwIDAgMS0xLTFWNS4wNjFhMSAxIDAgMCAwLTEuODExLS43NWwtNi44MzUgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN2w2LjgzNSA2LjgzNWExIDEgMCAwIDAgMS44MTEtLjc1VjE2YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTF6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgOXY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93QmlnTGVmdERhc2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctYmlnLWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ09XRXhJREVnTUNBd0lERXRNUzB4VmpVdU1EWXhZVEVnTVNBd0lEQWdNQzB4TGpneE1TMHVOelZzTFRZdU9ETTFJRFl1T0RNMllURXVNakEzSURFdU1qQTNJREFnTUNBd0lEQWdNUzQzTURkc05pNDRNelVnTmk0NE16VmhNU0F4SURBZ01DQXdJREV1T0RFeExTNDNOVll4Tm1FeElERWdNQ0F3SURFZ01TMHhhRFpoTVNBeElEQWdNQ0F3SURFdE1YWXROR0V4SURFZ01DQXdJREF0TVMweGVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1iaWctbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93QmlnTGVmdDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMyA5YTEgMSAwIDAgMS0xLTFWNS4wNjFhMSAxIDAgMCAwLTEuODExLS43NWwtNi44MzUgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN2w2LjgzNSA2LjgzNWExIDEgMCAwIDAgMS44MTEtLjc1VjE2YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTF6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dCaWdMZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LWJpZy1yaWdodC1kYXNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdPV0V4SURFZ01DQXdJREFnTVMweFZqVXVNRFl4WVRFZ01TQXdJREFnTVNBeExqZ3hNUzB1TnpWc05pNDRNellnTmk0NE16WmhNUzR5TURjZ01TNHlNRGNnTUNBd0lERWdNQ0F4TGpjd04yd3ROaTQ0TXpZZ05pNDRNelZoTVNBeElEQWdNQ0F4TFRFdU9ERXhMUzQzTlZZeE5tRXhJREVnTUNBd0lEQXRNUzB4U0RsaE1TQXhJREFnTUNBeExURXRNWFl0TkdFeElERWdNQ0F3SURFZ01TMHhlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0E1ZGpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWJpZy1yaWdodC1kYXNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dCaWdSaWdodERhc2g6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEgOWExIDEgMCAwIDAgMS0xVjUuMDYxYTEgMSAwIDAgMSAxLjgxMS0uNzVsNi44MzYgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi44MzYgNi44MzVhMSAxIDAgMCAxLTEuODExLS43NVYxNmExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTQgOXY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93QmlnUmlnaHREYXNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LWJpZy1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnT1dFeElERWdNQ0F3SURBZ01TMHhWalV1TURZeFlURWdNU0F3SURBZ01TQXhMamd4TVMwdU56VnNOaTQ0TXpZZ05pNDRNelpoTVM0eU1EY2dNUzR5TURjZ01DQXdJREVnTUNBeExqY3dOMnd0Tmk0NE16WWdOaTQ0TXpWaE1TQXhJREFnTUNBeExURXVPREV4TFM0M05WWXhObUV4SURFZ01DQXdJREF0TVMweFNEVmhNU0F4SURBZ01DQXhMVEV0TVhZdE5HRXhJREVnTUNBd0lERWdNUzB4ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWJpZy1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93QmlnUmlnaHQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEgOWExIDEgMCAwIDAgMS0xVjUuMDYxYTEgMSAwIDAgMSAxLjgxMS0uNzVsNi44MzYgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi44MzYgNi44MzVhMSAxIDAgMCAxLTEuODExLS43NVYxNmExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93QmlnUmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctYmlnLXVwLWRhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE0yRXhJREVnTUNBd0lEQXRNUzB4U0RVdU1EWXhZVEVnTVNBd0lEQWdNUzB1TnpVdE1TNDRNVEZzTmk0NE16WXROaTQ0TXpWaE1TNHlNRGNnTVM0eU1EY2dNQ0F3SURFZ01TNDNNRGNnTUd3MkxqZ3pOU0EyTGpnek5XRXhJREVnTUNBd0lERXRMamMxSURFdU9ERXhTREUyWVRFZ01TQXdJREFnTUMweElERjJNbUV4SURFZ01DQXdJREV0TVNBeGFDMDBZVEVnTVNBd0lEQWdNUzB4TFRGNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlESXdhRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctYmlnLXVwLWRhc2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd0JpZ1VwRGFzaDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ005IDEzYTEgMSAwIDAgMC0xLTFINS4wNjFhMSAxIDAgMCAxLS43NS0xLjgxMWw2LjgzNi02LjgzNWExLjIwNyAxLjIwNyAwIDAgMSAxLjcwNyAwbDYuODM1IDYuODM1YTEgMSAwIDAgMS0uNzUgMS44MTFIMTZhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMS0xIDFoLTRhMSAxIDAgMCAxLTEtMXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIwaDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dCaWdVcERhc2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctYmlnLXVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhNMkV4SURFZ01DQXdJREF0TVMweFNEVXVNRFl4WVRFZ01TQXdJREFnTVMwdU56VXRNUzQ0TVRGc05pNDRNell0Tmk0NE16VmhNUzR5TURjZ01TNHlNRGNnTUNBd0lERWdNUzQzTURjZ01HdzJMamd6TlNBMkxqZ3pOV0V4SURFZ01DQXdJREV0TGpjMUlERXVPREV4U0RFMllURWdNU0F3SURBZ01DMHhJREYyTm1FeElERWdNQ0F3SURFdE1TQXhhQzAwWVRFZ01TQXdJREFnTVMweExURjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1iaWctdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd0JpZ1VwOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkgMTNhMSAxIDAgMCAwLTEtMUg1LjA2MWExIDEgMCAwIDEtLjc1LTEuODExbDYuODM2LTYuODM1YTEuMjA3IDEuMjA3IDAgMCAxIDEuNzA3IDBsNi44MzUgNi44MzVhMSAxIDAgMCAxLS43NSAxLjgxMUgxNmExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAxLTEgMWgtNGExIDEgMCAwIDEtMS0xeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93QmlnVXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctZG93bi0wLTFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TXlBeE5pQTBJRFFnTkMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lESXdWalFpSUM4K0NpQWdQSEpsWTNRZ2VEMGlNVFVpSUhrOUlqUWlJSGRwWkhSb1BTSTBJaUJvWldsbmFIUTlJallpSUhKNVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF5TUhZdE5tZ3RNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTWpCb05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1kb3duLTAtMVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93RG93bjAxOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTMgMTYgNCA0IDQtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIwVjQnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxNScsIHk6ICc0Jywgd2lkdGg6ICc0JywgaGVpZ2h0OiAnNicsIHJ5OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyMHYtNmgtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAyMGg0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93RG93bjAxO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LWRvd24tMS0wXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE15QXhOaUEwSURRZ05DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREl3VmpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lERXdWalJvTFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERXdhRFFpSUM4K0NpQWdQSEpsWTNRZ2VEMGlNVFVpSUhrOUlqRTBJaUIzYVdSMGFEMGlOQ0lnYUdWcFoyaDBQU0kySWlCeWVUMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi0xLTBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd0Rvd24xMDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zIDE2IDQgNCA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMFY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEwVjRoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTBoNCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzE1JywgeTogJzE0Jywgd2lkdGg6ICc0JywgaGVpZ2h0OiAnNicsIHJ5OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd24xMDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy1kb3duLWEtelxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNeUF4TmlBMElEUWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURJd1ZqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJRGhvTFRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERXdWall1TldFeUxqVWdNaTQxSURBZ01DQXhJRFVnTUZZeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNVFJvTld3dE5TQTJhRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi1hLXpcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd0Rvd25BWjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zIDE2IDQgNCA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMFY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDhoLTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE0aDVsLTUgNmg1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93RG93bkFaO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LWRvd24tZnJvbS1saW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNMGcxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeU1WWTNJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDJJREUxSURZZ05pQTJMVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi1mcm9tLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd0Rvd25Gcm9tTGluZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOSAzSDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjFWNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDE1IDYgNiA2LTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dEb3duRnJvbUxpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctZG93bi1sZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dOeUEzSURFM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhOMGczVmpjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWRvd24tbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93RG93bkxlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNyA3IDE3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE3SDdWNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd25MZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LWRvd24tcmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TnlBM0lERXdJREV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBM2RqRXdTRGNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93RG93blJpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTcgNyAxMCAxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA3djEwSDcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dEb3duUmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctZG93bi10by1kb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXhOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGtnT1MwM0lEY3ROeTAzSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTWpFaUlISTlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi10by1kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd0Rvd25Ub0RvdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5IDktNyA3LTctNycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcyMScsIHI6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93RG93blRvRG90O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LWRvd24tbmFycm93LXdpZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TXlBeE5pQTBJRFFnTkMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lESXdWalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV4SURSb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URWdPR2czSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBeE1tZ3hNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi1uYXJyb3ctd2lkZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93RG93bk5hcnJvd1dpZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyAxNiA0IDQgNC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjBWNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSA0aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgOGg3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDEyaDEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93RG93bk5hcnJvd1dpZGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctZG93bi10by1saW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGRXTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TmlBeE1TQTJJRFlnTmkwMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQXlNVWcxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi10by1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dEb3duVG9MaW5lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3VjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNiAxMSA2IDYgNi02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDIxSDUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dEb3duVG9MaW5lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LWRvd24tdXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TXlBeE5pQTBJRFFnTkMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lESXdWalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl4SURndE5DMDBMVFFnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ05IWXhOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93RG93blVwOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTMgMTYgNCA0IDQtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIwVjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgOC00LTQtNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDR2MTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dEb3duVXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctZG93bi13aWRlLW5hcnJvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNeUF4TmlBMElEUWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURJd1ZqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhJRFJvTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeElEaG9OeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRKb05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1kb3duLXdpZGUtbmFycm93XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dEb3duV2lkZU5hcnJvdzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zIDE2IDQgNCA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMFY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDRoMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgOGg3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDEyaDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dEb3duV2lkZU5hcnJvdztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy1kb3duLXotYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNeUF4TmlBMElEUWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURSMk1UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJRFJvTld3dE5TQTJhRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURJd2RpMHpMalZoTWk0MUlESXVOU0F3SURBZ01TQTFJREJXTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0lERTRhQzAxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctZG93bi16LWFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd0Rvd25aQTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zIDE2IDQgNCA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA0djE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDRoNWwtNSA2aDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxOGgtNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd25aQTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOWFl4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01USXROeUEzTFRjdE55SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dEb3duOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDV2MTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgMTItNyA3LTctNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0Rvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctbGVmdC1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F6SURRZ04ydzBJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTjJneE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNakVnTkMwMExUUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRkSU5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1sZWZ0LXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dMZWZ0UmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAzIDQgN2w0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA3aDE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDIxIDQtNC00LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTdINCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd0xlZnRSaWdodDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy1sZWZ0LWZyb20tbGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPU0EyTFRZZ05pQTJJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRKb01UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREU1VmpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWxlZnQtZnJvbS1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dMZWZ0RnJvbUxpbmU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtOSA2LTYgNiA2IDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmgxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOVY1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93TGVmdEZyb21MaW5lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LWxlZnQtdG8tbGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF4T1ZZMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE15QTJMVFlnTmlBMklEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVEpvTVRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWxlZnQtdG8tbGluZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93TGVmdFRvTGluZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDE5VjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMgNi02IDYgNiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTJoMTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dMZWZ0VG9MaW5lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ01Ua3ROeTAzSURjdE55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNVEpJTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd0xlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMTktNy03IDctNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxMkg1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93TGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy1yaWdodC1mcm9tLWxpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBMWRqRTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TWtnM0lpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5TQXhPQ0EyTFRZdE5pMDJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1yaWdodC1mcm9tLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd1JpZ2h0RnJvbUxpbmU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyA1djE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEySDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTggNi02LTYtNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1JpZ2h0RnJvbUxpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctcmlnaHQtbGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTXlBMElEUXROQ0EwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBM1NEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUZ2dNakV0TkMwMElEUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TjJneE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy1yaWdodC1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dSaWdodExlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMyA0IDQtNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDdINCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDIxLTQtNCA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxN2gxNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1JpZ2h0TGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy1yaWdodC10by1saW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVEpJTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRFZ01UZ2dOaTAyTFRZdE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdOWFl4TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXJpZ2h0LXRvLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd1JpZ2h0VG9MaW5lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEySDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTEgMTggNi02LTYtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA1djE0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93UmlnaHRUb0xpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctcmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE1tZ3hOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVElnTlNBM0lEY3ROeUEzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd1JpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMTJoMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgNSA3IDctNyA3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93UmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctdXAtMC0xXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE15QTRJRFF0TkNBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dOSFl4TmlJZ0x6NEtJQ0E4Y21WamRDQjRQU0l4TlNJZ2VUMGlOQ0lnZDJsa2RHZzlJalFpSUdobGFXZG9kRDBpTmlJZ2NuazlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURJd2RpMDJhQzB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeU1HZzBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy11cC0wLTFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd1VwMDE6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyA4IDQtNCA0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA0djE2JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMTUnLCB5OiAnNCcsIHdpZHRoOiAnNCcsIGhlaWdodDogJzYnLCByeTogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMjB2LTZoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMjBoNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1VwMDE7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctdXAtMS0wXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE15QTRJRFF0TkNBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dOSFl4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UQldOR2d0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01UQm9OQ0lnTHo0S0lDQThjbVZqZENCNFBTSXhOU0lnZVQwaU1UUWlJSGRwWkhSb1BTSTBJaUJvWldsbmFIUTlJallpSUhKNVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy11cC0xLTBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd1VwMTA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyA4IDQtNCA0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA0djE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEwVjRoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTBoNCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzE1JywgeTogJzE0Jywgd2lkdGg6ICc0JywgaGVpZ2h0OiAnNicsIHJ5OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1VwMTA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXJyb3ctdXAtYS16XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE15QTRJRFF0TkNBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dOSFl4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ09HZ3ROU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTVRCV05pNDFZVEl1TlNBeUxqVWdNQ0F3SURFZ05TQXdWakV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE5HZzFiQzAxSURab05TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy11cC1hLXpcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd1VwQVo6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyA4IDQtNCA0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA0djE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDhoLTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE0aDVsLTUgNmg1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBBWjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy11cC1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNVFl0TkNBMExUUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTWpCV05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE15QTRJRFF0TkNBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dOSFl4TmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd1VwRG93bjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yMSAxNi00IDQtNC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDIwVjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyA4IDQtNCA0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA0djE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBEb3duO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LXVwLWZyb20tZG90XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5TQTVJRGN0TnlBM0lEY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUyVmpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeU1TSWdjajBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwLWZyb20tZG90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dVcEZyb21Eb3Q6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNSA5IDctNyA3IDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZWMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcyMScsIHI6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBGcm9tRG90O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LXVwLWZyb20tbGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGdnT1MwMkxUWXROaUEySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBemRqRTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREl4YURFMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwLWZyb20tbGluZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93VXBGcm9tTGluZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xOCA5LTYtNi02IDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3YxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDIxaDE0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBGcm9tTGluZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy11cC1sZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXhOMVkzYURFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhOeUEzSURjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBcnJvd1VwTGVmdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003IDE3VjdoMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTcgNyA3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBMZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LXVwLW5hcnJvdy13aWRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE15QTRJRFF0TkNBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dOSFl4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01USm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRab055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNakJvTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwLW5hcnJvdy13aWRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dVcE5hcnJvd1dpZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyA4IDQtNCA0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA0djE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDEyaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTZoNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAyMGgxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1VwTmFycm93V2lkZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy11cC1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUEzYURFd2RqRXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREUzSURFM0lEY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy11cC1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93VXBSaWdodDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003IDdoMTB2MTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNyAxNyA3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBSaWdodDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy11cC10by1saW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXphREUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBeE15MDJMVFl0TmlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTNkakUwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXJyb3ctdXAtdG8tbGluZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93VXBUb0xpbmU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzaDE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDEzLTYtNi02IDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3YxNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1VwVG9MaW5lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFycm93LXVwLXdpZGUtbmFycm93XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE15QTRJRFF0TkNBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dOSFl4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01USm9NVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV4SURFMmFEY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhJREl3YURRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwLXdpZGUtbmFycm93XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dVcFdpZGVOYXJyb3c6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyA4IDQtNCA0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA0djE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDEyaDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE2aDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMjBoNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd1VwV2lkZU5hcnJvdztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy11cC16LWFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TXlBNElEUXROQ0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ05IWXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTkdnMWJDMDFJRFpvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01qQjJMVE11TldFeUxqVWdNaTQxSURBZ01DQXhJRFVnTUZZeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVGhvTFRVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Fycm93LXVwLXotYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93VXBaQTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zIDggNC00IDQgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDR2MTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgNGg1bC01IDZoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAyMHYtMy41YTIuNSAyLjUgMCAwIDEgNSAwVjIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE4aC01JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEFycm93VXBaQTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvdy11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROU0F4TWlBM0xUY2dOeUEzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE9WWTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvdy11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFycm93VXA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNSAxMiA3LTcgNyA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE5VjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXJyb3dVcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhcnJvd3MtdXAtZnJvbS1saW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5DQTJJRE10TXlBeklETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVGRXTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRRZ05pQXpMVE1nTXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhOMVl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURJeGFERTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hcnJvd3MtdXAtZnJvbS1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXJyb3dzVXBGcm9tTGluZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ200IDYgMy0zIDMgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE3VjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgNiAzLTMgMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE3VjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMWgxNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBcnJvd3NVcEZyb21MaW5lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGFzdGVyaXNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdObll4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU1UazJJRGtnTmk0NE1EUWdNVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFl1T0RBMElEa2dNVEF1TXpreUlEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hc3Rlcmlza1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEFzdGVyaXNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2MTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuMTk2IDkgNi44MDQgMTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNi44MDQgOSAxMC4zOTIgNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBc3RlcmlzaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhdC1zaWduXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQTRkalZoTXlBeklEQWdNQ0F3SURZZ01IWXRNV0V4TUNBeE1DQXdJREVnTUMwMElEZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hdC1zaWduXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXRTaWduOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOHY1YTMgMyAwIDAgMCA2IDB2LTFhMTAgMTAgMCAxIDAtNCA4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEF0U2lnbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBhdG9tXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNHlJREl3TGpKak1pNHdOQzB5TGpBekxqQXlMVGN1TXpZdE5DNDFMVEV4TGprdE5DNDFOQzAwTGpVeUxUa3VPRGN0Tmk0MU5DMHhNUzQ1TFRRdU5TMHlMakEwSURJdU1ETXRMakF5SURjdU16WWdOQzQxSURFeExqa2dOQzQxTkNBMExqVXlJRGt1T0RjZ05pNDFOQ0F4TVM0NUlEUXVOVm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxTGpjZ01UVXVOMk0wTGpVeUxUUXVOVFFnTmk0MU5DMDVMamczSURRdU5TMHhNUzQ1TFRJdU1ETXRNaTR3TkMwM0xqTTJMUzR3TWkweE1TNDVJRFF1TlMwMExqVXlJRFF1TlRRdE5pNDFOQ0E1TGpnM0xUUXVOU0F4TVM0NUlESXVNRE1nTWk0d05DQTNMak0yTGpBeUlERXhMamt0TkM0MVdpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hdG9tXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXRvbTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwLjIgMjAuMmMyLjA0LTIuMDMuMDItNy4zNi00LjUtMTEuOS00LjU0LTQuNTItOS44Ny02LjU0LTExLjktNC41LTIuMDQgMi4wMy0uMDIgNy4zNiA0LjUgMTEuOSA0LjU0IDQuNTIgOS44NyA2LjU0IDExLjkgNC41WicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1LjcgMTUuN2M0LjUyLTQuNTQgNi41NC05Ljg3IDQuNS0xMS45LTIuMDMtMi4wNC03LjM2LS4wMi0xMS45IDQuNS00LjUyIDQuNTQtNi41NCA5Ljg3LTQuNSAxMS45IDIuMDMgMi4wNCA3LjM2LjAyIDExLjktNC41WicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEF0b207XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXVkaW8tbGluZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1IWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJRFoyTVRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lETjJNVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURoMk55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dOWFl4TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UQjJNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXVkaW8tbGluZXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBdWRpb0xpbmVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMTB2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDZ2MTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgM3YxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA4djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNXYxMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMHYzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEF1ZGlvTGluZXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXdhcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVdU5EYzNJREV5TGpnNUlERXVOVEUxSURndU5USTJZUzQxTGpVZ01DQXdJREV0TGpneExqUTNiQzB6TGpVNExUSXVOamczWVRFZ01TQXdJREFnTUMweExqRTVOeUF3YkMwekxqVTROaUF5TGpZNE5tRXVOUzQxSURBZ01DQXhMUzQ0TVMwdU5EWTViREV1TlRFMExUZ3VOVEkySWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpT0NJZ2NqMGlOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYXdhcmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBd2FyZDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNS40NzcgMTIuODkgMS41MTUgOC41MjZhLjUuNSAwIDAgMS0uODEuNDdsLTMuNTgtMi42ODdhMSAxIDAgMCAwLTEuMTk3IDBsLTMuNTg2IDIuNjg2YS41LjUgMCAwIDEtLjgxLS40NjlsMS41MTQtOC41MjYnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc4JywgcjogJzYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQXdhcmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXVkaW8td2F2ZWZvcm1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE0yRXlJRElnTUNBd0lEQWdNaTB5VmpkaE1pQXlJREFnTUNBeElEUWdNSFl4TTJFeUlESWdNQ0F3SURBZ05DQXdWalJoTWlBeUlEQWdNQ0F4SURRZ01IWXhNMkV5SURJZ01DQXdJREFnTkNBd2RpMDBZVElnTWlBd0lEQWdNU0F5TFRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2F1ZGlvLXdhdmVmb3JtXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXVkaW9XYXZlZm9ybTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDEzYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDEgNCAwdjEzYTIgMiAwIDAgMCA0IDBWNGEyIDIgMCAwIDEgNCAwdjEzYTIgMiAwIDAgMCA0IDB2LTRhMiAyIDAgMCAxIDItMicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEF1ZGlvV2F2ZWZvcm07XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXhlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdNVEl0T0M0ek9ERWdPQzR6T0dFeElERWdNQ0F3SURFdE15NHdNREV0TTB3eE1TQTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F4TlM0MVlTNDFMalVnTUNBd0lEQWdMalV1TlVFMkxqVWdOaTQxSURBZ01DQXdJREl5SURrdU5XRXVOUzQxSURBZ01DQXdMUzQxTFM0MWFDMHhMalkzTW1FeUlESWdNQ0F3SURFdE1TNDBNVFF0TGpVNE5td3ROUzR3TmpJdE5TNHdOakpoTVM0eU1EVWdNUzR5TURVZ01DQXdJREF0TVM0M01EUWdNRXc1TGpNMU1pQTFMalkwT0dFeExqSXdOU0F4TGpJd05TQXdJREFnTUNBd0lERXVOekEwYkRVdU1EWXlJRFV1TURZeVFUSWdNaUF3SURBZ01TQXhOU0F4TXk0NE1qaDZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9heGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBBeGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTItOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1IDE1LjVhLjUuNSAwIDAgMCAuNS41QTYuNSA2LjUgMCAwIDAgMjIgOS41YS41LjUgMCAwIDAtLjUtLjVoLTEuNjcyYTIgMiAwIDAgMS0xLjQxNC0uNTg2bC01LjA2Mi01LjA2MmExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwTDkuMzUyIDUuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsNS4wNjIgNS4wNjJBMiAyIDAgMCAxIDE1IDEzLjgyOHonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBeGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYXhpcy0zZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE11TlNBeE1DNDFJREUxSURraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ05IWXhOV0V4SURFZ01DQXdJREFnTVNBeGFERTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBMakk1TXlBeE9TNDNNRGNnTmlBeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhOU0F4TGpVdE1TNDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9heGlzLTNkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQXhpczNkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzLjUgMTAuNSAxNSA5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuMjkzIDE5LjcwNyA2IDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTUgMS41LTEuNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBBeGlzM2Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmFieVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRaakxqVXVNeUF4TGpJdU5TQXlJQzQxY3pFdU5TMHVNaUF5TFM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhNbWd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUxqTTRJRFl1T0RFelFUa2dPU0F3SURBZ01TQXlNQzQ0SURFd0xqSmhNaUF5SURBZ01DQXhJREFnTXk0MklEa2dPU0F3SURBZ01TMHhOeTQySURBZ01pQXlJREFnTUNBeElEQXRNeTQyUVRrZ09TQXdJREFnTVNBeE1pQXpZeklnTUNBekxqVWdNUzR4SURNdU5TQXlMalZ6TFM0NUlESXVOUzB5SURJdU5XTXRMamdnTUMweExqVXRMalF0TVM0MUxURWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVEpvTGpBeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhYnlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWJ5OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE2Yy41LjMgMS4yLjUgMiAuNXMxLjUtLjIgMi0uNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxMmguMDEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkuMzggNi44MTNBOSA5IDAgMCAxIDIwLjggMTAuMmEyIDIgMCAwIDEgMCAzLjYgOSA5IDAgMCAxLTE3LjYgMCAyIDIgMCAwIDEgMC0zLjZBOSA5IDAgMCAxIDEyIDNjMiAwIDMuNSAxLjEgMy41IDIuNXMtLjkgMi41LTIgMi41Yy0uOCAwLTEuNS0uNC0xLjUtMScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTJoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhYnk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmFja3BhY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1HRTBJRFFnTUNBd0lERWdOQzAwYURoaE5DQTBJREFnTUNBeElEUWdOSFl4TUdFeUlESWdNQ0F3SURFdE1pQXlTRFpoTWlBeUlEQWdNQ0F4TFRJdE1ub2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVEJvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE9HZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREl5ZGkwMllUSWdNaUF3SURBZ01TQXlMVEpvTkdFeUlESWdNQ0F3SURFZ01pQXlkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTmxZMFlUSWdNaUF3SURBZ01TQXlMVEpvTW1FeUlESWdNQ0F3SURFZ01pQXlkaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFja3BhY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWNrcGFjazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDEwYTQgNCAwIDAgMSA0LTRoOGE0IDQgMCAwIDEgNCA0djEwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEwaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOGg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjJ2LTZhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDZWNGEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDIgMnYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhY2twYWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJhZGdlLWFsZXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDROU0E0TGpZeVlUUWdOQ0F3SURBZ01TQTBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJRFl1TnpRZ01DQTBJRFFnTUNBd0lERWdOQzQzT0NBMExqYzRJRFFnTkNBd0lEQWdNU0F3SURZdU56UWdOQ0EwSURBZ01DQXhMVFF1TnpjZ05DNDNPQ0EwSURRZ01DQXdJREV0Tmk0M05TQXdJRFFnTkNBd0lEQWdNUzAwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURBdE5pNDNObG9pSUM4K0NpQWdQR3hwYm1VZ2VERTlJakV5SWlCNE1qMGlNVElpSUhreFBTSTRJaUI1TWowaU1USWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXlJaUI0TWowaU1USXVNREVpSUhreFBTSXhOaUlnZVRJOUlqRTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYWRnZS1hbGVydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhZGdlQWxlcnQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgIH0sXG4gIF0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzgnLCB5MjogJzEyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMi4wMScsIHkxOiAnMTYnLCB5MjogJzE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhZGdlQWxlcnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmFkZ2UtY2VudFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TlNBNExqWXlZVFFnTkNBd0lEQWdNU0EwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURZdU56UWdNQ0EwSURRZ01DQXdJREVnTkM0M09DQTBMamM0SURRZ05DQXdJREFnTVNBd0lEWXVOelFnTkNBMElEQWdNQ0F4TFRRdU56Y2dOQzQzT0NBMElEUWdNQ0F3SURFdE5pNDNOU0F3SURRZ05DQXdJREFnTVMwMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEQXROaTQzTmxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEZDJNVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxTGpRZ01UQmhOQ0EwSURBZ01TQXdJREFnTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLWNlbnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWRnZUNlbnQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1LjQgMTBhNCA0IDAgMSAwIDAgNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZUNlbnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmFkZ2UtY2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNVElnTWlBeUlEUXROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWRnZUNoZWNrOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMiAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhZGdlQ2hlY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmFkZ2UtZG9sbGFyLXNpZ25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRGhvTFRaaE1pQXlJREFnTVNBd0lEQWdOR2cwWVRJZ01pQXdJREVnTVNBd0lEUklPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRoV05pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYWRnZS1kb2xsYXItc2lnblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhZGdlRG9sbGFyU2lnbjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOFY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhZGdlRG9sbGFyU2lnbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYWRnZS1ldXJvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDROU0E0TGpZeVlUUWdOQ0F3SURBZ01TQTBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJRFl1TnpRZ01DQTBJRFFnTUNBd0lERWdOQzQzT0NBMExqYzRJRFFnTkNBd0lEQWdNU0F3SURZdU56UWdOQ0EwSURBZ01DQXhMVFF1TnpjZ05DNDNPQ0EwSURRZ01DQXdJREV0Tmk0M05TQXdJRFFnTkNBd0lEQWdNUzAwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURBdE5pNDNObG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRKb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdPUzQwWVRRZ05DQXdJREVnTUNBd0lEVXVNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtZXVyb1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhZGdlRXVybzogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTJoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA5LjRhNCA0IDAgMSAwIDAgNS4yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhZGdlRXVybztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYWRnZS1pbmRpYW4tcnVwZWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dPR2c0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXpJREUzTFRVdE1XZ3hZVFFnTkNBd0lEQWdNQ0F3TFRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLWluZGlhbi1ydXBlZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhZGdlSW5kaWFuUnVwZWU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDhoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMgMTctNS0xaDFhNCA0IDAgMCAwIDAtOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZUluZGlhblJ1cGVlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJhZGdlLWluZm9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXlJaUI0TWowaU1USWlJSGt4UFNJeE5pSWdlVEk5SWpFeUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE1pSWdlREk5SWpFeUxqQXhJaUI1TVQwaU9DSWdlVEk5SWpnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLWluZm9cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWRnZUluZm86IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgIH0sXG4gIF0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzE2JywgeTI6ICcxMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTIuMDEnLCB5MTogJzgnLCB5MjogJzgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmFkZ2VJbmZvO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJhZGdlLWphcGFuZXNlLXllblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TlNBNExqWXlZVFFnTkNBd0lEQWdNU0EwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURZdU56UWdNQ0EwSURRZ01DQXdJREVnTkM0M09DQTBMamM0SURRZ05DQXdJREFnTVNBd0lEWXVOelFnTkNBMElEQWdNQ0F4TFRRdU56Y2dOQzQzT0NBMElEUWdNQ0F3SURFdE5pNDNOU0F3SURRZ05DQXdJREFnTVMwMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEQXROaTQzTmxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ09DQXpJRE4yTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ01URWdNeTB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFeWFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVFpvTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLWphcGFuZXNlLXllblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhZGdlSmFwYW5lc2VZZW46IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205IDggMyAzdjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMTEgMy0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTJoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE2aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmFkZ2VKYXBhbmVzZVllbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYWRnZS1taW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TlNBNExqWXlZVFFnTkNBd0lEQWdNU0EwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURZdU56UWdNQ0EwSURRZ01DQXdJREVnTkM0M09DQTBMamM0SURRZ05DQXdJREFnTVNBd0lEWXVOelFnTkNBMElEQWdNQ0F4TFRRdU56Y2dOQzQzT0NBMElEUWdNQ0F3SURFdE5pNDNOU0F3SURRZ05DQXdJREFnTVMwMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEQXROaTQzTmxvaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpnaUlIZ3lQU0l4TmlJZ2VURTlJakV5SWlCNU1qMGlNVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtbWludXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWRnZU1pbnVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaJyxcbiAgICB9LFxuICBdLFxuICBbJ2xpbmUnLCB7IHgxOiAnOCcsIHgyOiAnMTYnLCB5MTogJzEyJywgeTI6ICcxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZU1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJhZGdlLXBlcmNlbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJRGt0TmlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlEbG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE5XZ3VNREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtcGVyY2VudFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhZGdlUGVyY2VudDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDktNiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgOWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTVoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhZGdlUGVyY2VudDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYWRnZS1wbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDROU0E0TGpZeVlUUWdOQ0F3SURBZ01TQTBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJRFl1TnpRZ01DQTBJRFFnTUNBd0lERWdOQzQzT0NBMExqYzRJRFFnTkNBd0lEQWdNU0F3SURZdU56UWdOQ0EwSURBZ01DQXhMVFF1TnpjZ05DNDNPQ0EwSURRZ01DQXdJREV0Tmk0M05TQXdJRFFnTkNBd0lEQWdNUzAwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURBdE5pNDNObG9pSUM4K0NpQWdQR3hwYm1VZ2VERTlJakV5SWlCNE1qMGlNVElpSUhreFBTSTRJaUI1TWowaU1UWWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqZ2lJSGd5UFNJeE5pSWdlVEU5SWpFeUlpQjVNajBpTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWRnZVBsdXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgIH0sXG4gIF0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzgnLCB5MjogJzE2JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzE2JywgeTE6ICcxMicsIHkyOiAnMTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmFkZ2VQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJhZGdlLXBvdW5kLXN0ZXJsaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDROU0E0TGpZeVlUUWdOQ0F3SURBZ01TQTBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJRFl1TnpRZ01DQTBJRFFnTUNBd0lERWdOQzQzT0NBMExqYzRJRFFnTkNBd0lEQWdNU0F3SURZdU56UWdOQ0EwSURBZ01DQXhMVFF1TnpjZ05DNDNPQ0EwSURRZ01DQXdJREV0Tmk0M05TQXdJRFFnTkNBd0lEQWdNUzAwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURBdE5pNDNObG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVFpXT1M0MVlUSXVOU0F5TGpVZ01DQXdJREVnTlNBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTJhRGNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtcG91bmQtc3RlcmxpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWRnZVBvdW5kU3Rlcmxpbmc6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTZWOS41YTIuNSAyLjUgMCAwIDEgNSAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTZoNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZVBvdW5kU3Rlcmxpbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmFkZ2UtcXVlc3Rpb24tbWFya1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TlNBNExqWXlZVFFnTkNBd0lEQWdNU0EwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURZdU56UWdNQ0EwSURRZ01DQXdJREVnTkM0M09DQTBMamM0SURRZ05DQXdJREFnTVNBd0lEWXVOelFnTkNBMElEQWdNQ0F4TFRRdU56Y2dOQzQzT0NBMElEUWdNQ0F3SURFdE5pNDNOU0F3SURRZ05DQXdJREFnTVMwMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEQXROaTQzTmxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrdU1Ea2dPV0V6SURNZ01DQXdJREVnTlM0NE15QXhZekFnTWkweklETXRNeUF6SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TWlJZ2VESTlJakV5TGpBeElpQjVNVDBpTVRjaUlIa3lQU0l4TnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLXF1ZXN0aW9uLW1hcmtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWRnZVF1ZXN0aW9uTWFyazogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMi4wMScsIHkxOiAnMTcnLCB5MjogJzE3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhZGdlUXVlc3Rpb25NYXJrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJhZGdlLXJ1c3NpYW4tcnVibGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVFpvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE1tZzFZVElnTWlBd0lERWdNQ0F3TFRSb0xUTjJPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtcnVzc2lhbi1ydWJsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhZGdlUnVzc2lhblJ1YmxlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNmg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTJoNWEyIDIgMCAxIDAgMC00aC0zdjknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmFkZ2VSdXNzaWFuUnVibGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmFkZ2Utc3dpc3MtZnJhbmNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0NE5TQTRMall5WVRRZ05DQXdJREFnTVNBMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEWXVOelFnTUNBMElEUWdNQ0F3SURFZ05DNDNPQ0EwTGpjNElEUWdOQ0F3SURBZ01TQXdJRFl1TnpRZ05DQTBJREFnTUNBeExUUXVOemNnTkM0M09DQTBJRFFnTUNBd0lERXROaTQzTlNBd0lEUWdOQ0F3SURBZ01TMDBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJREF0Tmk0M05sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhJREUzVmpob05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVEpvTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE5tZzBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYWRnZS1zd2lzcy1mcmFuY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhZGdlU3dpc3NGcmFuYzogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE3VjhoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxMmgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTZoNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZVN3aXNzRnJhbmM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmFkZ2UtdHVya2lzaC1saXJhXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdOM1l4TUdFMUlEVWdNQ0F3SURBZ05TMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0E0TFRZZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15NDROU0E0TGpZeVlUUWdOQ0F3SURBZ01TQTBMamM0TFRRdU56Y2dOQ0EwSURBZ01DQXhJRFl1TnpRZ01DQTBJRFFnTUNBd0lERWdOQzQzT0NBMExqYzRJRFFnTkNBd0lEQWdNU0F3SURZdU56UWdOQ0EwSURBZ01DQXhMVFF1TnpjZ05DNDNPQ0EwSURRZ01DQXdJREV0Tmk0M05TQXdJRFFnTkNBd0lEQWdNUzAwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURBdE5pNDNOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFkZ2UtdHVya2lzaC1saXJhXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmFkZ2VUdXJraXNoTGlyYTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSA3djEwYTUgNSAwIDAgMCA1LTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgOC02IDMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhZGdlVHVya2lzaExpcmE7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmFkZ2UteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TlNBNExqWXlZVFFnTkNBd0lEQWdNU0EwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURZdU56UWdNQ0EwSURRZ01DQXdJREVnTkM0M09DQTBMamM0SURRZ05DQXdJREFnTVNBd0lEWXVOelFnTkNBMElEQWdNQ0F4TFRRdU56Y2dOQzQzT0NBMElEUWdNQ0F3SURFdE5pNDNOU0F3SURRZ05DQXdJREFnTVMwMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEQXROaTQzTmxvaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFMUlpQjRNajBpT1NJZ2VURTlJamtpSUhreVBTSXhOU0lnTHo0S0lDQThiR2x1WlNCNE1UMGlPU0lnZURJOUlqRTFJaUI1TVQwaU9TSWdlVEk5SWpFMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWRnZVg6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgIH0sXG4gIF0sXG4gIFsnbGluZScsIHsgeDE6ICcxNScsIHgyOiAnOScsIHkxOiAnOScsIHkyOiAnMTUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOScsIHgyOiAnMTUnLCB5MTogJzknLCB5MjogJzE1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhZGdlWDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYWRnZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TlNBNExqWXlZVFFnTkNBd0lEQWdNU0EwTGpjNExUUXVOemNnTkNBMElEQWdNQ0F4SURZdU56UWdNQ0EwSURRZ01DQXdJREVnTkM0M09DQTBMamM0SURRZ05DQXdJREFnTVNBd0lEWXVOelFnTkNBMElEQWdNQ0F4TFRRdU56Y2dOQzQzT0NBMElEUWdNQ0F3SURFdE5pNDNOU0F3SURRZ05DQXdJREFnTVMwMExqYzRMVFF1TnpjZ05DQTBJREFnTUNBeElEQXROaTQzTmxvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZGdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmFkZ2U6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NlonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYWRnZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYWdnYWdlLWNsYWltXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVGhJTm1FeUlESWdNQ0F3SURFdE1pMHlWamRoTWlBeUlEQWdNQ0F3TFRJdE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVFJXTkdFeUlESWdNQ0F3SURBdE1pMHlhQzB4WVRJZ01pQXdJREFnTUMweUlESjJNVEFpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFeklpQm9aV2xuYUhROUlqZ2lJSGc5SWpnaUlIazlJallpSUhKNFBTSXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU0SWlCamVUMGlNakFpSUhJOUlqSWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlPU0lnWTNrOUlqSXdJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhZ2dhZ2UtY2xhaW1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWdnYWdlQ2xhaW06IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMThINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAwLTItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNFY0YTIgMiAwIDAgMC0yLTJoLTFhMiAyIDAgMCAwLTIgMnYxMCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMycsIGhlaWdodDogJzgnLCB4OiAnOCcsIHk6ICc2Jywgcng6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzIwJywgcjogJzInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICcyMCcsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhZ2dhZ2VDbGFpbTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYWxsb29uXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFoyTVdFeUlESWdNQ0F3SURBZ01pQXlhREZoTWlBeUlEQWdNQ0F4SURJZ01uWXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEyWVRJZ01pQXdJREFnTVNBeUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJRGhqTUNBMExUTXVOU0E0TFRZZ09ITXROaTAwTFRZdE9HRTJJRFlnTUNBd0lERWdNVElnTUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhbGxvb25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYWxsb29uOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2djFhMiAyIDAgMCAwIDIgMmgxYTIgMiAwIDAgMSAyIDJ2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2YTIgMiAwIDAgMSAyIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOGMwIDQtMy41IDgtNiA4cy02LTQtNi04YTYgNiAwIDAgMSAxMiAwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhbGxvb247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmFuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DNDVNamtnTkM0NU1qa2dNVGt1TURjZ01Ua3VNRGN4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJakV3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmFuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQuOTI5IDQuOTI5IDE5LjA3IDE5LjA3MScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmFuYW5hXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNMk16TGpVdE1pQTRMVElnTVRBZ01tRTFMalVnTlM0MUlEQWdNQ0F4SURnZ05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TNHhOU0F4Tnk0NE9XTTFMalV5TFRFdU5USWdPQzQyTlMwMkxqZzVJRGN0TVRKRE1URXVOVFVnTkNBeE1TNDFJRElnTVRNZ01tTXpMakl5SURBZ05TQTFMalVnTlNBNElEQWdOaTQxTFRRdU1pQXhNaTB4TUM0ME9TQXhNa00xTGpFeElESXlJRElnTWpJZ01pQXlNR013TFRFdU5TQXhMakUwTFRFdU5UVWdNeTR4TlMweUxqRXhXaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFuYW5hXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmFuYW5hOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTNjMy41LTIgOC0yIDEwIDJhNS41IDUuNSAwIDAgMSA4IDUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNS4xNSAxNy44OWM1LjUyLTEuNTIgOC42NS02Ljg5IDctMTJDMTEuNTUgNCAxMS41IDIgMTMgMmMzLjIyIDAgNSA1LjUgNSA4IDAgNi41LTQuMiAxMi0xMC40OSAxMkM1LjExIDIyIDIgMjIgMiAyMGMwLTEuNSAxLjE0LTEuNTUgMy4xNS0yLjExWicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhbmFuYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYW5kYWdlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEF1TURGb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4TkM0d01XZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFd0xqQXhhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UUXVNREZvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQTJkakV4TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ05uWXhNaUlnTHo0S0lDQThjbVZqZENCNFBTSXlJaUI1UFNJMklpQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVElpSUhKNFBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYW5kYWdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmFuZGFnZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMC4wMWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTQuMDFoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEwLjAxaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNC4wMWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNnYxMS41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgNnYxMicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnNicsIHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxMicsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYW5kYWdlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJhbmtub3RlLWFycm93LWRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UaElOR0V5SURJZ01DQXdJREV0TWkweVZqaGhNaUF5SURBZ01DQXhJREl0TW1neE5tRXlJRElnTUNBd0lERWdNaUF5ZGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMklERTVJRE1nTXlBekxUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREV5YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNVFoyTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1tZ3VNREVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TWlJZ2NqMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFua25vdGUtYXJyb3ctZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhbmtub3RlQXJyb3dEb3duOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE5IDMgMyAzLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTJoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE2djYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMmguMDEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYW5rbm90ZUFycm93RG93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYW5rbm90ZS1hcnJvdy11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRoSU5HRXlJRElnTUNBd0lERXRNaTB5VmpoaE1pQXlJREFnTUNBeElESXRNbWd4Tm1FeUlESWdNQ0F3SURFZ01pQXlkalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFeWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTWpKMkxUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREU1TFRNdE15MHpJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRKb0xqQXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYW5rbm90ZS1hcnJvdy11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhbmtub3RlQXJyb3dVcDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMjJ2LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTktMy0zLTMgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaC4wMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhbmtub3RlQXJyb3dVcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYW5rbm90ZS14XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNVGhJTkdFeUlESWdNQ0F3SURFdE1pMHlWamhoTWlBeUlEQWdNQ0F4SURJdE1tZ3hObUV5SURJZ01DQXdJREVnTWlBeWRqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNJREUzSURVZ05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVEpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1pQXhOeTAxSURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01USm9MakF4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFua25vdGUteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhbmtub3RlWDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxNyA1IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTJoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDE3LTUgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaC4wMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhbmtub3RlWDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYW5rbm90ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1USWlJSGc5SWpJaUlIazlJallpSUhKNFBTSXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVEpvTGpBeFRURTRJREV5YUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYW5rbm90ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhbmtub3RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTInLCB4OiAnMicsIHk6ICc2Jywgcng6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMmguMDFNMTggMTJoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhbmtub3RlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJhcmNvZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBMWRqRTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRFYyTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEVjJNVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURWMk1UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJRFYyTVRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhcmNvZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYXJjb2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgNXYxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDV2MTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNXYxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA1djE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDV2MTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmFyY29kZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYXJyZWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ00yRTBNU0EwTVNBd0lEQWdNQ0F3SURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXpZVFF4SURReElEQWdNQ0F4SURBZ01UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJRE5oTWlBeUlEQWdNQ0F4SURFdU5qZ3VPVElnTVRVdU1qVWdNVFV1TWpVZ01DQXdJREVnTUNBeE5pNHhOa0V5SURJZ01DQXdJREVnTVRjZ01qRklOMkV5SURJZ01DQXdJREV0TVM0Mk9DMHVPVElnTVRVdU1qVWdNVFV1TWpVZ01DQXdJREVnTUMweE5pNHhOa0V5SURJZ01DQXdJREVnTnlBemVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15NDROQ0F4TjJneE5pNHpNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeTQ0TkNBM2FERTJMak15SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmFycmVsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmFycmVsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDNhNDEgNDEgMCAwIDAgMCAxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAzYTQxIDQxIDAgMCAxIDAgMTgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcgM2EyIDIgMCAwIDEgMS42OC45MiAxNS4yNSAxNS4yNSAwIDAgMSAwIDE2LjE2QTIgMiAwIDAgMSAxNyAyMUg3YTIgMiAwIDAgMS0xLjY4LS45MiAxNS4yNSAxNS4yNSAwIDAgMSAwLTE2LjE2QTIgMiAwIDAgMSA3IDN6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy44NCAxN2gxNi4zMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjg0IDdoMTYuMzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmFycmVsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJhc2VsaW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlNR2d4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TmlBeE5pQTJMVEV5SURZZ01USWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVEpvT0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jhc2VsaW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmFzZWxpbmU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMGgxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDE2IDYtMTIgNiAxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmFzZWxpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmF0aFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTkNBNElEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREU1ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01USm9NakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRsMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQTFJRGN1TmpJeElETXVOakl4UVRJdU1USXhJREl1TVRJeElEQWdNQ0F3SURRZ05YWXhNbUV5SURJZ01DQXdJREFnTWlBeWFERXlZVElnTWlBd0lEQWdNQ0F5TFRKMkxUVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYXRoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmF0aDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCA0IDggNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxOXYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxOXYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgNSA3LjYyMSAzLjYyMUEyLjEyMSAyLjEyMSAwIDAgMCA0IDV2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi01JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJhdGg7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmF0dGVyeS1jaGFyZ2luZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEVnTnkweklEVm9OR3d0TXlBMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNDROVFlnTmtneE5tRXlJRElnTUNBd0lERWdNaUF5ZGpoaE1pQXlJREFnTUNBeExUSWdNbWd0TWk0NU16VWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREUwZGkwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUxqRTBJREU0U0RSaE1pQXlJREFnTUNBeExUSXRNbFk0WVRJZ01pQXdJREFnTVNBeUxUSm9NaTQ1TXpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhdHRlcnktY2hhcmdpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYXR0ZXJ5Q2hhcmdpbmc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTEgNy0zIDVoNGwtMyA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0Ljg1NiA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjkzNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNHYtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001LjE0IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMi45MzYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmF0dGVyeUNoYXJnaW5nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJhdHRlcnktZnVsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRCMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVEIyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UUjJMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRCMk5DSWdMejRLSUNBOGNtVmpkQ0I0UFNJeUlpQjVQU0kySWlCM2FXUjBhRDBpTVRZaUlHaGxhV2RvZEQwaU1USWlJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JhdHRlcnktZnVsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhdHRlcnlGdWxsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEwdjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTB2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNHYtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEwdjQnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzYnLCB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMTInLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmF0dGVyeUZ1bGw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmF0dGVyeS1sb3dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UUjJMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRSMkxUUWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU1pSWdlVDBpTmlJZ2QybGtkR2c5SWpFMklpQm9aV2xuYUhROUlqRXlJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYXR0ZXJ5LWxvd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhdHRlcnlMb3c6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTR2LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNHYtNCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnNicsIHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICcxMicsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYXR0ZXJ5TG93O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJhdHRlcnktcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnT1hZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pNDFORE1nTmtneE5tRXlJRElnTUNBd0lERWdNaUF5ZGpoaE1pQXlJREFnTUNBeExUSWdNbWd0TXk0Mk1EVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREUwZGkwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERXlhRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGN1TmpBMklERTRTRFJoTWlBeUlEQWdNQ0F4TFRJdE1sWTRZVElnTWlBd0lEQWdNU0F5TFRKb015NDJNRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmF0dGVyeS1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmF0dGVyeVBsdXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOXY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyLjU0MyA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0zLjYwNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNHYtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEyaDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNy42MDYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgzLjYwNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYXR0ZXJ5UGx1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYXR0ZXJ5LW1lZGl1bVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRSMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREUwZGkwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERTBkaTAwSWlBdlBnb2dJRHh5WldOMElIZzlJaklpSUhrOUlqWWlJSGRwWkhSb1BTSXhOaUlnYUdWcFoyaDBQU0l4TWlJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmF0dGVyeS1tZWRpdW1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYXR0ZXJ5TWVkaXVtOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE0di00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDE0di00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTR2LTQnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzYnLCB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMTInLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmF0dGVyeU1lZGl1bTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYXR0ZXJ5LXdhcm5pbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UZG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBM2RqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJRFpvTW1FeUlESWdNQ0F3SURFZ01pQXlkamhoTWlBeUlEQWdNQ0F4TFRJZ01tZ3RNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRSMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVGhJTkdFeUlESWdNQ0F3SURFdE1pMHlWamhoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iYXR0ZXJ5LXdhcm5pbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCYXR0ZXJ5V2FybmluZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxN2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgN3Y2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDZoMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNHYtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCYXR0ZXJ5V2FybmluZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiYXR0ZXJ5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTklESXlJREUwSUV3Z01qSWdNVEFpSUM4K0NpQWdQSEpsWTNRZ2VEMGlNaUlnZVQwaU5pSWdkMmxrZEdnOUlqRTJJaUJvWldsbmFIUTlJakV5SWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmF0dGVyeVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJhdHRlcnk6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNIDIyIDE0IEwgMjIgMTAnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzYnLCB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMTInLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmF0dGVyeTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiZWFrZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkM0MUlETm9NVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTTNZeE5tRXlJRElnTUNBd0lEQWdNaUF5YURoaE1pQXlJREFnTUNBd0lESXRNbFl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFMGFERXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iZWFrZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCZWFrZXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNC41IDNoMTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAzdjE2YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNGgxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCZWFrZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmVhbi1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT1NBNVl5MHVOalF1TmpRdE1TNDFNakV1T1RVMExUSXVOREF5SURFdU1UWTFRVFlnTmlBd0lEQWdNQ0E0SURJeVlURXpMamsySURFekxqazJJREFnTUNBd0lEa3VPUzAwTGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0xqYzFJRFV1TURrelFUWWdOaUF3SURBZ01TQXlNaUE0WXpBZ01pNDBNVEV0TGpZeElEUXVOamd0TVM0Mk9ETWdOaTQyTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlM0ek5ERWdNVEF1TmpKaE5DQTBJREFnTUNBd0lEWXVORGczSURFdU1qQTRUVEV3TGpZeUlEVXVNelF4WVRRdU1ERTFJRFF1TURFMUlEQWdNQ0F4SURJdU1ETTVJREl1TURRaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpJaUlIZ3lQU0l5TWlJZ2VURTlJaklpSUhreVBTSXlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVhbi1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCZWFuT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmExMy45NiAxMy45NiAwIDAgMCA5LjktNC4xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwLjc1IDUuMDkzQTYgNiAwIDAgMSAyMiA4YzAgMi40MTEtLjYxIDQuNjgtMS42ODMgNi42NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001LjM0MSAxMC42MmE0IDQgMCAwIDAgNi40ODcgMS4yMDhNMTAuNjIgNS4zNDFhNC4wMTUgNC4wMTUgMCAwIDEgMi4wMzkgMi4wNCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICcyMicsIHkxOiAnMicsIHkyOiAnMjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmVhbk9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiZWFuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNVFkxSURZdU5UazRRemt1T1RVMElEY3VORGM0SURrdU5qUWdPQzR6TmlBNUlEbGpMUzQyTkM0Mk5DMHhMalV5TVM0NU5UUXRNaTQwTURJZ01TNHhOalZCTmlBMklEQWdNQ0F3SURnZ01qSmpOeTQzTXpJZ01DQXhOQzAyTGpJMk9DQXhOQzB4TkdFMklEWWdNQ0F3SURBdE1URXVPRE0xTFRFdU5EQXlXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OUzR6TkRFZ01UQXVOakpoTkNBMElEQWdNU0F3SURVdU1qYzVMVFV1TWpnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JlYW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCZWFuOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjE2NSA2LjU5OEM5Ljk1NCA3LjQ3OCA5LjY0IDguMzYgOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYzcuNzMyIDAgMTQtNi4yNjggMTQtMTRhNiA2IDAgMCAwLTExLjgzNS0xLjQwMlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ001LjM0MSAxMC42MmE0IDQgMCAxIDAgNS4yNzktNS4yOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCZWFuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJlZC1kb3VibGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1IWXRPR0V5SURJZ01DQXdJREVnTWkweWFERTJZVElnTWlBd0lEQWdNU0F5SURKMk9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNRlkyWVRJZ01pQXdJREFnTVNBeUxUSm9NVEpoTWlBeUlEQWdNQ0F4SURJZ01uWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEwZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UaG9NakFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVkLWRvdWJsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJlZERvdWJsZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDIwdi04YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTBWNmEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA0djYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxOGgyMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCZWREb3VibGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmVkLXNpbmdsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF5TUhZdE9HRXlJRElnTUNBd0lERWdNaTB5YURFMFlUSWdNaUF3SURBZ01TQXlJREoyT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE1GWTJZVElnTWlBd0lEQWdNU0F5TFRKb01UQmhNaUF5SURBZ01DQXhJRElnTW5ZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTRhREU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVkLXNpbmdsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJlZFNpbmdsZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDIwdi04YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTBWNmEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE4aDE4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJlZFNpbmdsZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBMGRqRTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRGhvTVRoaE1pQXlJREFnTUNBeElESWdNbll4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE4yZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUE0ZGpraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJlZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDR2MTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA4aDE4YTIgMiAwIDAgMSAyIDJ2MTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxN2gyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDh2OScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmVlZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFl1TkNBeE15NDNRVFl1TlNBMkxqVWdNQ0F4SURBZ05pNHlPQ0EyTGpaakxURXVNU0F6TGpFekxTNDNPQ0F6TGprdE15NHhPQ0EyTGpBNFFUTWdNeUF3SURBZ01DQTFJREU0WXpRZ01DQTRMalF0TVM0NElERXhMalF0TkM0eklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9DNDFJRFlnTWk0eE9TQTBMalZoTmk0ME9DQTJMalE0SURBZ01DQXhMVEl1TWprZ055NHlRekUxTGpRZ01qQXVNaUF4TVNBeU1pQTNJREl5WVRNZ015QXdJREFnTVMweUxqWTRMVEV1TmpaTU1pNDBJREUyTGpVaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USXVOU0lnWTNrOUlqZ3VOU0lnY2owaU1pNDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iZWVmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmVlZjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNi40IDEzLjdBNi41IDYuNSAwIDEgMCA2LjI4IDYuNmMtMS4xIDMuMTMtLjc4IDMuOS0zLjE4IDYuMDhBMyAzIDAgMCAwIDUgMThjNCAwIDguNC0xLjggMTEuNC00LjMnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xOC41IDYgMi4xOSA0LjVhNi40OCA2LjQ4IDAgMCAxLTIuMjkgNy4yQzE1LjQgMjAuMiAxMSAyMiA3IDIyYTMgMyAwIDAgMS0yLjY4LTEuNjZMMi40IDE2LjUnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyLjUnLCBjeTogJzguNScsIHI6ICcyLjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmVlZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiZWVyLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVROMk5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVEV1TkRkV09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVEZvTVdFeklETWdNQ0F3SURFZ01pNDNORFVnTkM0eU1URWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNaUF5TUNBeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQTRkakV5WVRJZ01pQXdJREFnTUNBeUlESm9PR0V5SURJZ01DQXdJREFnTWkweWRpMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNMalV6TmlBM0xqVXpOVU0yTGpjMk5pQTNMalkwT1NBMkxqRTFOQ0E0SURVdU5TQTRZVEl1TlNBeUxqVWdNQ0F3SURFdE1TNDNOamd0TkM0eU5qZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ3VOekkzSURNdU1qQTBRemt1TXpBMklESXVOelkzSURrdU9EZzFJRElnTVRFZ01tTXhMalUySURBZ01pQXhMalVnTXlBeExqVnpNUzQzTWkwdU5TQXlMalV0TGpWaE1TQXhJREFnTVNBeElEQWdOV010TGpjNElEQXRNUzQxTFM0MUxUSXVOUzB1TldFekxqRTBPU0F6TGpFME9TQXdJREFnTUMwdU9EUXlMakV5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFMExqWldNVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVlci1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCZWVyT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzIDEzdjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTEuNDdWOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMWgxYTMgMyAwIDAgMSAyLjc0NSA0LjIxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSA4djEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0ydi0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuNTM2IDcuNTM1QzYuNzY2IDcuNjQ5IDYuMTU0IDggNS41IDhhMi41IDIuNSAwIDAgMS0xLjc2OC00LjI2OCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004LjcyNyAzLjIwNEM5LjMwNiAyLjc2NyA5Ljg4NSAyIDExIDJjMS41NiAwIDIgMS41IDMgMS41czEuNzItLjUgMi41LS41YTEgMSAwIDEgMSAwIDVjLS43OCAwLTEuNS0uNS0yLjUtLjVhMy4xNDkgMy4xNDkgMCAwIDAtLjg0Mi4xMicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTQuNlYxOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCZWVyT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJlZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01URm9NV0V6SURNZ01DQXdJREVnTUNBMmFDMHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV5ZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeklERXlkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURjdU5XTXRNU0F3TFRFdU5EUXVOUzB6SUM0MWN5MHlMUzQxTFRNdExqVXRNUzQzTWk0MUxUSXVOUzQxWVRJdU5TQXlMalVnTUNBd0lERWdNQzAxWXk0M09DQXdJREV1TlRjdU5TQXlMalV1TlZNNUxqUTBJRElnTVRFZ01uTXlJREV1TlNBeklERXVOU0F4TGpjeUxTNDFJREl1TlMwdU5XRXlMalVnTWk0MUlEQWdNQ0F4SURBZ05XTXRMamM0SURBdE1TNDFMUzQxTFRJdU5TMHVOVm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnT0hZeE1tRXlJRElnTUNBd0lEQWdNaUF5YURoaE1pQXlJREFnTUNBd0lESXRNbFk0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJlZXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTFoMWEzIDMgMCAwIDEgMCA2aC0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTJ2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxMnY2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE0IDcuNWMtMSAwLTEuNDQuNS0zIC41cy0yLS41LTMtLjUtMS43Mi41LTIuNS41YTIuNSAyLjUgMCAwIDEgMC01Yy43OCAwIDEuNTcuNSAyLjUuNVM5LjQ0IDIgMTEgMnMyIDEuNSAzIDEuNSAxLjcyLS41IDIuNS0uNWEyLjUgMi41IDAgMCAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNVonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ001IDh2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCZWVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJlbGwtZG90XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNalk0SURJeFlUSWdNaUF3SURBZ01DQXpMalEyTkNBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15NDVNVFlnTWk0ek1UUkJOaUEySURBZ01DQXdJRFlnT0dNd0lEUXVORGs1TFRFdU5ERXhJRFV1T1RVMkxUSXVOelFnTnk0ek1qZEJNU0F4SURBZ01DQXdJRFFnTVRkb01UWmhNU0F4SURBZ01DQXdJQzQzTkMweExqWTNNeUE1SURrZ01DQXdJREV0TGpVNE5TMHVOalkxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNElpQmplVDBpT0NJZ2NqMGlNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVsbC1kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCZWxsRG90OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMy45MTYgMi4zMTRBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzQgNy4zMjdBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3MyA5IDkgMCAwIDEtLjU4NS0uNjY1JyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnOCcsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJlbGxEb3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmVsbC1lbGVjdHJpY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGd1TlRFNElERTNMak0wTjBFM0lEY2dNQ0F3SURFZ01UUWdNVGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0TGpnZ05FRXhNU0F4TVNBd0lEQWdNU0F5TUNBNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlEbG9MakF4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpJd0lpQmplVDBpTVRZaUlISTlJaklpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpT1NJZ1kzazlJamtpSUhJOUlqY2lJQzgrQ2lBZ1BISmxZM1FnZUQwaU5DSWdlVDBpTVRZaUlIZHBaSFJvUFNJeE1DSWdhR1ZwWjJoMFBTSTJJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iZWxsLWVsZWN0cmljXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmVsbEVsZWN0cmljOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4LjUxOCAxNy4zNDdBNyA3IDAgMCAxIDE0IDE5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4LjggNEExMSAxMSAwIDAgMSAyMCA5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgOWguMDEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcyMCcsIGN5OiAnMTYnLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzknLCByOiAnNycgfV0sXG4gIFsncmVjdCcsIHsgeDogJzQnLCB5OiAnMTYnLCB3aWR0aDogJzEwJywgaGVpZ2h0OiAnNicsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCZWxsRWxlY3RyaWM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmVsbC1taW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TWpZNElESXhZVElnTWlBd0lEQWdNQ0F6TGpRMk5DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0E0YURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMkxqSTBNeUF6TGpjMU4wRTJJRFlnTUNBd0lEQWdOaUE0WXpBZ05DNDBPVGt0TVM0ME1URWdOUzQ1TlRZdE1pNDNNemdnTnk0ek1qWkJNU0F4SURBZ01DQXdJRFFnTVRkb01UWmhNU0F4SURBZ01DQXdJQzQzTkMweExqWTNNMEU1TGpRZ09TNDBJREFnTUNBeElERTRMalkyTnlBeE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iZWxsLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmVsbE1pbnVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA4aDYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYuMjQzIDMuNzU3QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQTkuNCA5LjQgMCAwIDEgMTguNjY3IDEyJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmVsbE1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJlbGwtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNalk0SURJeFlUSWdNaUF3SURBZ01DQXpMalEyTkNBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhOMGcwWVRFZ01TQXdJREFnTVMwdU56UXRNUzQyTnpORE5DNDFPU0F4TXk0NU5UWWdOaUF4TWk0ME9Ua2dOaUE0WVRZZ05pQXdJREFnTVNBdU1qVTRMVEV1TnpReUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUlESWdNakFnTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRndU5qWTRJRE11TURGQk5pQTJJREFnTUNBeElERTRJRGhqTUNBeUxqWTROeTQzTnlBMExqWTFNeUF4TGpjd055QTJMakExSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVsbC1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCZWxsT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxN0g0YTEgMSAwIDAgMS0uNzQtMS42NzNDNC41OSAxMy45NTYgNiAxMi40OTkgNiA4YTYgNiAwIDAgMSAuMjU4LTEuNzQyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjY2OCAzLjAxQTYgNiAwIDAgMSAxOCA4YzAgMi42ODcuNzcgNC42NTMgMS43MDcgNi4wNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCZWxsT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJlbGwtcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TWpZNElESXhZVElnTWlBd0lEQWdNQ0F6TGpRMk5DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0E0YURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEVjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakF1TURBeUlERTBMalEyTkdFNUlEa2dNQ0F3SURBZ0xqY3pPQzQ0TmpOQk1TQXhJREFnTUNBeElESXdJREUzU0RSaE1TQXhJREFnTUNBeExTNDNOQzB4TGpZM00wTTBMalU1SURFekxqazFOaUEySURFeUxqUTVPU0EySURoaE5pQTJJREFnTUNBeElEZ3VOelV0TlM0ek16SWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iZWxsLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCZWxsUGx1czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOGg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDV2NicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMC4wMDIgMTQuNDY0YTkgOSAwIDAgMCAuNzM4Ljg2M0ExIDEgMCAwIDEgMjAgMTdINGExIDEgMCAwIDEtLjc0LTEuNjczQzQuNTkgMTMuOTU2IDYgMTIuNDk5IDYgOGE2IDYgMCAwIDEgOC43NS01LjMzMicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJlbGxQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJlbGwtcmluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TWpZNElESXhZVElnTWlBd0lEQWdNQ0F6TGpRMk5DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUE0WXpBdE1pNHpMUzQ0TFRRdU15MHlMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE11TWpZeUlERTFMak15TmtFeElERWdNQ0F3SURBZ05DQXhOMmd4Tm1FeElERWdNQ0F3SURBZ0xqYzBMVEV1TmpjelF6RTVMalF4SURFekxqazFOaUF4T0NBeE1pNDBPVGtnTVRnZ09FRTJJRFlnTUNBd0lEQWdOaUE0WXpBZ05DNDBPVGt0TVM0ME1URWdOUzQ1TlRZdE1pNDNNemdnTnk0ek1qWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNa015TGpnZ015NDNJRElnTlM0M0lESWdPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmVsbC1yaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmVsbFJpbmc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDhjMC0yLjMtLjgtNC4zLTItNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyQzIuOCAzLjcgMiA1LjcgMiA4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJlbGxSaW5nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJlbGxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU1qWTRJREl4WVRJZ01pQXdJREFnTUNBekxqUTJOQ0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6TGpJMk1pQXhOUzR6TWpaQk1TQXhJREFnTUNBd0lEUWdNVGRvTVRaaE1TQXhJREFnTUNBd0lDNDNOQzB4TGpZM00wTXhPUzQwTVNBeE15NDVOVFlnTVRnZ01USXVORGs1SURFNElEaEJOaUEySURBZ01DQXdJRFlnT0dNd0lEUXVORGs1TFRFdU5ERXhJRFV1T1RVMkxUSXVOek00SURjdU16STJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iZWxsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmVsbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNDMTkuNDEgMTMuOTU2IDE4IDEyLjQ5OSAxOCA4QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJlbGw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmV0d2Vlbi1ob3Jpem9udGFsLWVuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRNaUlHaGxhV2RvZEQwaU55SWdlRDBpTXlJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREUxTFRNdE15QXpMVE1pSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFeklpQm9aV2xuYUhROUlqY2lJSGc5SWpNaUlIazlJakUwSWlCeWVEMGlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmV0d2Vlbi1ob3Jpem9udGFsLWVuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJldHdlZW5Ib3Jpem9udGFsRW5kOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzEzJywgaGVpZ2h0OiAnNycsIHg6ICczJywgeTogJzMnLCByeDogJzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTUtMy0zIDMtMycgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICcxNCcsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCZXR3ZWVuSG9yaXpvbnRhbEVuZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiZXR3ZWVuLWhvcml6b250YWwtc3RhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UTWlJR2hsYVdkb2REMGlOeUlnZUQwaU9DSWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnT1NBeklETXRNeUF6SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeE15SWdhR1ZwWjJoMFBTSTNJaUI0UFNJNElpQjVQU0l4TkNJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmV0d2Vlbi1ob3Jpem9udGFsLXN0YXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmV0d2Vlbkhvcml6b250YWxTdGFydDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMycsIGhlaWdodDogJzcnLCB4OiAnOCcsIHk6ICczJywgcng6ICcxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgOSAzIDMtMyAzJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzEzJywgaGVpZ2h0OiAnNycsIHg6ICc4JywgeTogJzE0Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJldHdlZW5Ib3Jpem9udGFsU3RhcnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmV0d2Vlbi12ZXJ0aWNhbC1lbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSXhNeUlnZUQwaU15SWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGtnTWpJZ015MHpJRE1nTXlJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSXhNeUlnZUQwaU1UUWlJSGs5SWpNaUlISjRQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmV0d2Vlbi12ZXJ0aWNhbC1lbmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCZXR3ZWVuVmVydGljYWxFbmQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzEzJywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDIyIDMtMyAzIDMnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzEzJywgeDogJzE0JywgeTogJzMnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmV0d2VlblZlcnRpY2FsRW5kO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJldHdlZW4tdmVydGljYWwtc3RhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSXhNeUlnZUQwaU15SWdlVDBpT0NJZ2NuZzlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUxSURJdE15QXpMVE10TXlJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSXhNeUlnZUQwaU1UUWlJSGs5SWpnaUlISjRQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmV0d2Vlbi12ZXJ0aWNhbC1zdGFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJldHdlZW5WZXJ0aWNhbFN0YXJ0OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICcxMycsIHg6ICczJywgeTogJzgnLCByeDogJzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMi0zIDMtMy0zJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICcxMycsIHg6ICcxNCcsIHk6ICc4Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJldHdlZW5WZXJ0aWNhbFN0YXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJpY2Vwcy1mbGV4ZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU5EQTVJREV6TGpBeE4wRTFJRFVnTUNBd0lERWdNaklnTVRWak1DQXpMamcyTmkwMElEY3RPU0EzTFRRdU1EYzNJREF0T0M0eE5UTXRMamd5TFRFd0xqTTNNUzB5TGpRMk1pMHVOREkyTFM0ek1UWXRMall6TVMwdU9ETXlMUzQyTWkweExqTTJNa015TGpFeE9DQXhNaTQzTWpNZ01pNDJNamNnTWlBeE1DQXlZVE1nTXlBd0lEQWdNU0F6SURNZ01pQXlJREFnTUNBeExUSWdNbU10TVM0eE1EVWdNQzB4TGpZMExTNDBORFF0TWkweElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhOR0UxSURVZ01DQXdJREF0Tnk0MU9EUWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PUzQ1TmpRZ05pNDRNalZET0M0d01Ua2dOeTQ1TnpjZ09TNDFJREV6SURnZ01UVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iaWNlcHMtZmxleGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmljZXBzRmxleGVkOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjQwOSAxMy4wMTdBNSA1IDAgMCAxIDIyIDE1YzAgMy44NjYtNCA3LTkgNy00LjA3NyAwLTguMTUzLS44Mi0xMC4zNzEtMi40NjItLjQyNi0uMzE2LS42MzEtLjgzMi0uNjItMS4zNjJDMi4xMTggMTIuNzIzIDIuNjI3IDIgMTAgMmEzIDMgMCAwIDEgMyAzIDIgMiAwIDAgMS0yIDJjLTEuMTA1IDAtMS42NC0uNDQ0LTItMScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE0YTUgNSAwIDAgMC03LjU4NCAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuOTY0IDYuODI1QzguMDE5IDcuOTc3IDkuNSAxMyA4IDE1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJpY2Vwc0ZsZXhlZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiaWtlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhPQzQxSWlCamVUMGlNVGN1TlNJZ2NqMGlNeTQxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpVdU5TSWdZM2s5SWpFM0xqVWlJSEk5SWpNdU5TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOU0lnWTNrOUlqVWlJSEk5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNMalZXTVRSc0xUTXRNeUEwTFRNZ01pQXphRElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmlrZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJpa2U6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxOC41JywgY3k6ICcxNy41JywgcjogJzMuNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUuNScsIGN5OiAnMTcuNScsIHI6ICczLjUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNScsIGN5OiAnNScsIHI6ICcxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3LjVWMTRsLTMtMyA0LTMgMiAzaDInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmlrZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiaW5hcnlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjRQU0l4TkNJZ2VUMGlNVFFpSUhkcFpIUm9QU0kwSWlCb1pXbG5hSFE5SWpZaUlISjRQU0l5SWlBdlBnb2dJRHh5WldOMElIZzlJallpSUhrOUlqUWlJSGRwWkhSb1BTSTBJaUJvWldsbmFIUTlJallpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREl3YURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElERXdhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRSb01uWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0EwYURKMk5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iaW5hcnlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCaW5hcnk6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHg6ICcxNCcsIHk6ICcxNCcsIHdpZHRoOiAnNCcsIGhlaWdodDogJzYnLCByeDogJzInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc2JywgeTogJzQnLCB3aWR0aDogJzQnLCBoZWlnaHQ6ICc2Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMjBoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTRoMnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDRoMnY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJpbmFyeTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiaW9oYXphcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeExqa2lJSEk5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU55QXpMalJqTFM0NUlESXVOU0F3SURVdU1pQXlMaklnTmk0M1F6WXVOU0E1SURNdU55QTVMallnTWlBeE1TNDJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDRMamtnTVRBdU1TQXhMalF1T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU15QXpMalJqTGprZ01pNDFJREFnTlM0eUxUSXVNaUEyTGpjZ01pNDBMVEV1TWlBMUxqSXRMallnTmk0NUlERXVOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFV1TVNBeE1DNHhMVEV1TkM0NElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pNDNJREl3TGpoakxUSXVOaTB1TkMwMExqWXRNaTQyTFRRdU55MDFMak10TGpJZ01pNDJMVEl1TVNBMExqZ3ROQzQzSURVdU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE11T1hZeExqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpMalVnTlM0MFl5MHhMUzR5TFRJdExqSXRNeUF3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBeE5pNDBZeTQzTFM0M0lERXVNaTB4TGpZZ01TNDFMVEl1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlM0MUlERXpMamxqTGpNdU9TNDRJREV1T0NBeExqVWdNaTQxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmlvaGF6YXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmlvaGF6YXJkOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzExLjknLCByOiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjcgMy40Yy0uOSAyLjUgMCA1LjIgMi4yIDYuN0M2LjUgOSAzLjcgOS42IDIgMTEuNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204LjkgMTAuMSAxLjQuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy4zIDMuNGMuOSAyLjUgMCA1LjItMi4yIDYuNyAyLjQtMS4yIDUuMi0uNiA2LjkgMS41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1LjEgMTAuMS0xLjQuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNi43IDIwLjhjLTIuNi0uNC00LjYtMi42LTQuNy01LjMtLjIgMi42LTIuMSA0LjgtNC43IDUuMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMy45djEuNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy41IDUuNGMtMS0uMi0yLS4yLTMgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNi40Yy43LS43IDEuMi0xLjYgMS41LTIuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001LjUgMTMuOWMuMy45LjggMS44IDEuNSAyLjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQmlvaGF6YXJkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJpbm9jdWxhcnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UQm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTjFZMFlURWdNU0F3SURBZ01DMHhMVEZvTFRKaE1TQXhJREFnTUNBd0xURWdNWFl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeU1XRXlJRElnTUNBd0lEQWdNaTB5ZGkwekxqZzFNV013TFRFdU16a3RNaTB5TGprMk1pMHlMVFF1T0RJNVZqaGhNU0F4SURBZ01DQXdMVEV0TVdndE5HRXhJREVnTUNBd0lEQXRNU0F4ZGpFeFlUSWdNaUF3SURBZ01DQXlJREo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazBnTWpJZ01UWWdUQ0F5SURFMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElESXhZVElnTWlBd0lEQWdNUzB5TFRKMkxUTXVPRFV4WXpBdE1TNHpPU0F5TFRJdU9UWXlJREl0TkM0NE1qbFdPR0V4SURFZ01DQXdJREVnTVMweGFEUmhNU0F4SURBZ01DQXhJREVnTVhZeE1XRXlJRElnTUNBd0lERXRNaUF5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBM1ZqUmhNU0F4SURBZ01DQXdMVEV0TVVnMllURWdNU0F3SURBZ01DMHhJREYyTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jpbm9jdWxhcnNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCaW5vY3VsYXJzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEwaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgN1Y0YTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDIxYTIgMiAwIDAgMCAyLTJ2LTMuODUxYzAtMS4zOS0yLTIuOTYyLTItNC44MjlWOGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2MTFhMiAyIDAgMCAwIDIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00gMjIgMTYgTCAyIDE2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMjFhMiAyIDAgMCAxLTItMnYtMy44NTFjMC0xLjM5IDItMi45NjIgMi00LjgyOVY4YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjExYTIgMiAwIDAgMS0yIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA3VjRhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2MycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCaW5vY3VsYXJzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJpcmRob3VzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRoMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNVGdnTVM0NU5UWXRNVEV1TkRZNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weklEZ2dOeTQ0TWkwMUxqWXhOV0V5SURJZ01DQXdJREVnTWk0ek5pQXdUREl4SURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01UaG9NVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRnZ05TNHdORFFnTmk0MU16SWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVElpSUdONVBTSXhNQ0lnY2owaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iaXJkaG91c2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCaXJkaG91c2U6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTh2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxOCAxLjk1Ni0xMS40NjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyA4IDcuODItNS42MTVhMiAyIDAgMCAxIDIuMzYgMEwyMSA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMThoMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxOCA1LjA0NCA2LjUzMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMCcsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJpcmRob3VzZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBiaXJkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdOMmd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNdU5DQXhPRWd4TW1FNElEZ2dNQ0F3SURBZ09DMDRWamRoTkNBMElEQWdNQ0F3TFRjdU1qZ3RNaTR6VERJZ01qQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXdJRGNnTWlBdU5TMHlJQzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE9IWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F4Tnk0M05WWXlNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4T0dFMklEWWdNQ0F3SURBZ015NDROQzB4TUM0Mk1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9iaXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmlyZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiA3aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjQgMThIMTJhOCA4IDAgMCAwIDgtOFY3YTQgNCAwIDAgMC03LjI4LTIuM0wyIDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwIDcgMiAuNS0yIC41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE4djMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTcuNzVWMjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxOGE2IDYgMCAwIDAgMy44NC0xMC42MScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCaXJkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJpdGNvaW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU56WTNJREU1TGpBNE9XTTBMamt5TkM0NE5qZ2dOaTR4TkMwMkxqQXlOU0F4TGpJeE5pMDJMamc1TkcwdE1TNHlNVFlnTmk0NE9UUk1OUzQ0TmlBeE9DNHdORGR0TlM0NU1EZ2dNUzR3TkRJdExqTTBOeUF4TGprM2JURXVOVFl6TFRndU9EWTBZelF1T1RJMExqZzJPU0EyTGpFMExUWXVNREkxSURFdU1qRTFMVFl1T0RremJTMHhMakl4TlNBMkxqZzVNeTB6TGprMExTNDJPVFJ0TlM0eE5UVXROaTR5VERndU1qa2dOQzR5Tm0wMUxqa3dPQ0F4TGpBME1pNHpORGd0TVM0NU4wMDNMalE0SURJd0xqTTJOR3d6TGpFeU5pMHhOeTQzTWpjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JpdGNvaW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCaXRjb2luOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExLjc2NyAxOS4wODljNC45MjQuODY4IDYuMTQtNi4wMjUgMS4yMTYtNi44OTRtLTEuMjE2IDYuODk0TDUuODYgMTguMDQ3bTUuOTA4IDEuMDQyLS4zNDcgMS45N20xLjU2My04Ljg2NGM0LjkyNC44NjkgNi4xNC02LjAyNSAxLjIxNS02Ljg5M20tMS4yMTUgNi44OTMtMy45NC0uNjk0bTUuMTU1LTYuMkw4LjI5IDQuMjZtNS45MDggMS4wNDIuMzQ4LTEuOTdNNy40OCAyMC4zNjRsMy4xMjYtMTcuNzI3JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQml0Y29pbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBibGVuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0k1SWlCamVUMGlPU0lnY2owaU55SWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOU0lnWTNrOUlqRTFJaUJ5UFNJM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JsZW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQmxlbmQ6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc5JywgcjogJzcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNScsIGN5OiAnMTUnLCByOiAnNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCbGVuZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBibGluZHNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemFERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0EzU0RnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0lERXhTRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFNWFERXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREUxYURFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElETjJNVFFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTkNJZ1kzazlJakU1SWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ibGluZHNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCbGluZHM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzaDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDdIOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMUg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE5aDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTVoMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAzdjE0JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNCcsIGN5OiAnMTknLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCbGluZHM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmxvY2tzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNakpXTjJFeElERWdNQ0F3SURBdE1TMHhTRFJoTWlBeUlEQWdNQ0F3TFRJZ01uWXhNbUV5SURJZ01DQXdJREFnTWlBeWFERXlZVElnTWlBd0lEQWdNQ0F5TFRKMkxUVmhNU0F4SURBZ01DQXdMVEV0TVVneUlpQXZQZ29nSUR4eVpXTjBJSGc5SWpFMElpQjVQU0l5SWlCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJNElpQnllRDBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jsb2Nrc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJsb2NrczogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMCAyMlY3YTEgMSAwIDAgMC0xLTFINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtNWExIDEgMCAwIDAtMS0xSDInLFxuICAgIH0sXG4gIF0sXG4gIFsncmVjdCcsIHsgeDogJzE0JywgeTogJzInLCB3aWR0aDogJzgnLCBoZWlnaHQ6ICc4Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJsb2NrcztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBibHVldG9vdGgtY29ubmVjdGVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE55QTNJREV3SURFd0xUVWdOVll5YkRVZ05VdzNJREUzSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4T0NJZ2VESTlJakl4SWlCNU1UMGlNVElpSUhreVBTSXhNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNeUlnZURJOUlqWWlJSGt4UFNJeE1pSWdlVEk5SWpFeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JsdWV0b290aC1jb25uZWN0ZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCbHVldG9vdGhDb25uZWN0ZWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE4JywgeDI6ICcyMScsIHkxOiAnMTInLCB5MjogJzEyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzMnLCB4MjogJzYnLCB5MTogJzEyJywgeTI6ICcxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCbHVldG9vdGhDb25uZWN0ZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmx1ZXRvb3RoLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGNnTVRjdE5TQTFWakV5YkMwMUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNaUF5TUNBeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVOU0E1TGpVZ01UY2dOMnd0TlMwMWRqUXVOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYmx1ZXRvb3RoLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJsdWV0b290aE9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxNy01IDVWMTJsLTUgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuNSA5LjUgMTcgN2wtNS01djQuNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCbHVldG9vdGhPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYmx1ZXRvb3RoLXNlYXJjaGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROeUEzSURFd0lERXdMVFVnTlZZeWJEVWdOVXczSURFM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNDRNeUF4TkM0NE0yRTBJRFFnTUNBd0lEQWdNQzAxTGpZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhNbWd1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JsdWV0b290aC1zZWFyY2hpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCbHVldG9vdGhTZWFyY2hpbmc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjgzIDE0LjgzYTQgNCAwIDAgMCAwLTUuNjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTJoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJsdWV0b290aFNlYXJjaGluZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBibHVldG9vdGhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TnlBM0lERXdJREV3TFRVZ05WWXliRFVnTlV3M0lERTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ibHVldG9vdGhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCbHVldG9vdGg6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ203IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTcnIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgQmx1ZXRvb3RoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJvbGRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1tZzVZVFFnTkNBd0lEQWdNU0F3SURoSU4yRXhJREVnTUNBd0lERXRNUzB4VmpWaE1TQXhJREFnTUNBeElERXRNV2czWVRRZ05DQXdJREFnTVNBd0lEZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib2xkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQm9sZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaDlhNCA0IDAgMCAxIDAgOEg3YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDdhNCA0IDAgMCAxIDAgOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb2xkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJvbHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UWldPR0V5SURJZ01DQXdJREF0TVMweExqY3piQzAzTFRSaE1pQXlJREFnTUNBd0xUSWdNR3d0TnlBMFFUSWdNaUF3SURBZ01DQXpJRGgyT0dFeUlESWdNQ0F3SURBZ01TQXhMamN6YkRjZ05HRXlJRElnTUNBd0lEQWdNaUF3YkRjdE5FRXlJRElnTUNBd0lEQWdNakVnTVRaNklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JvbHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb2x0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eicsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9sdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib21iXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNU0lnWTNrOUlqRXpJaUJ5UFNJNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNHpOU0EwTGpZMUlERTJMak1nTWk0M1lUSXVOREVnTWk0ME1TQXdJREFnTVNBekxqUWdNR3d4TGpZZ01TNDJZVEl1TkNBeUxqUWdNQ0F3SURFZ01DQXpMalJzTFRFdU9UVWdNUzQ1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ01pMHhMalVnTVM0MUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JvbWJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb21iOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTEnLCBjeTogJzEzJywgcjogJzknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xNC4zNSA0LjY1IDE2LjMgMi43YTIuNDEgMi40MSAwIDAgMSAzLjQgMGwxLjYgMS42YTIuNCAyLjQgMCAwIDEgMCAzLjRsLTEuOTUgMS45NScgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDItMS41IDEuNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb21iO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJvbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UQmpMamN0TGpjZ01TNDJPU0F3SURJdU5TQXdZVEl1TlNBeUxqVWdNQ0F4SURBZ01DMDFJQzQxTGpVZ01DQXdJREV0TGpVdExqVWdNaTQxSURJdU5TQXdJREVnTUMwMUlEQmpNQ0F1T0RFdU55QXhMamdnTUNBeUxqVnNMVGNnTjJNdExqY3VOeTB4TGpZNUlEQXRNaTQxSURCaE1pNDFJREl1TlNBd0lEQWdNQ0F3SURWakxqSTRJREFnTGpVdU1qSXVOUzQxWVRJdU5TQXlMalVnTUNBeElEQWdOU0F3WXpBdExqZ3hMUzQzTFRFdU9DQXdMVEl1TlZvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JvbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb25lOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3IDEwYy43LS43IDEuNjkgMCAyLjUgMGEyLjUgMi41IDAgMSAwIDAtNSAuNS41IDAgMCAxLS41LS41IDIuNSAyLjUgMCAxIDAtNSAwYzAgLjgxLjcgMS44IDAgMi41bC03IDdjLS43LjctMS42OSAwLTIuNSAwYTIuNSAyLjUgMCAwIDAgMCA1Yy4yOCAwIC41LjIyLjUuNWEyLjUgMi41IDAgMSAwIDUgMGMwLS44MS0uNy0xLjggMC0yLjVaJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9uZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLWFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeVNERTVZVEVnTVNBd0lEQWdNU0F4SURGMk1UaGhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9DQXhNeUEwTFRjZ05DQTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMakVnTVRGb05TNDNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLWFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rQTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ204IDEzIDQtNyA0IDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS4xIDExaDUuNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rQTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLWFsZXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE5vTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTJkak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTVRrdU5YWXRNVFZCTWk0MUlESXVOU0F3SURBZ01TQTJMalVnTWtneE9XRXhJREVnTUNBd0lERWdNU0F4ZGpFNFlURWdNU0F3SURBZ01TMHhJREZJTmk0MVlURWdNU0F3SURBZ01TQXdMVFZJTWpBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stYWxlcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rQWxlcnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTNoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2MycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAnIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rQWxlcnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm9vay1hdWRpb1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTm5ZM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQTRkak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTVRrdU5YWXRNVFZCTWk0MUlESXVOU0F3SURBZ01TQTJMalVnTWtneE9XRXhJREVnTUNBd0lERWdNU0F4ZGpFNFlURWdNU0F3SURBZ01TMHhJREZJTmk0MVlURWdNU0F3SURBZ01TQXdMVFZJTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ09IWXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLWF1ZGlvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQm9va0F1ZGlvOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4djMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA4djMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va0F1ZGlvO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJvb2stY2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeVNERTVZVEVnTVNBd0lEQWdNU0F4SURGMk1UaGhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQTVMalVnTWlBeUlEUXROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJvb2tDaGVjazogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205IDkuNSAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLWNvcHlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBM1lUSWdNaUF3SURBZ01DMHlJREoyTVRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVdU9EQXpJREU0U0RWaE1pQXlJREFnTUNBd0lEQWdOR2c1TGpWaExqVXVOU0F3SURBZ01DQXVOUzB1TlZZeU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhOVlkwWVRJZ01pQXdJREFnTVNBeUxUSm9PUzQxWVM0MUxqVWdNQ0F3SURFZ0xqVXVOWFl4TkdFdU5TNDFJREFnTUNBeExTNDFMalZJTVRGaE1pQXlJREFnTUNBeElEQXROR2d4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stY29weVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJvb2tDb3B5OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgN2EyIDIgMCAwIDAtMiAydjExJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUuODAzIDE4SDVhMiAyIDAgMCAwIDAgNGg5LjVhLjUuNSAwIDAgMCAuNS0uNVYyMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTkgMTVWNGEyIDIgMCAwIDEgMi0yaDkuNWEuNS41IDAgMCAxIC41LjV2MTRhLjUuNSAwIDAgMS0uNS41SDExYTIgMiAwIDAgMSAwLTRoMTAnIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rQ29weTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLWRhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRkb01TNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5TW1neExqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREpvTVM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55NDFJREl5U0RFNVlURWdNU0F3SURBZ01DQXhMVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzTGpVZ01rZ3hPV0V4SURFZ01DQXdJREVnTVNBeGRqRXVOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRSMk0yZ3RNaTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBNExqVldNVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTVRCV09DNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREU1TGpWV01UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdOQzQxUVRJdU5TQXlMalVnTUNBd0lERWdOaTQxSURKSU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNa2cyTGpWaE1TQXhJREFnTUNBeElEQXROVWc0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay1kYXNoZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rRGFzaGVkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3aDEuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMmgxLjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMmgxLjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNSAyMkgxOWExIDEgMCAwIDAgMS0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjUgMkgxOWExIDEgMCAwIDEgMSAxdjEuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxNHYzaC0yLjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgOC41VjEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTBWOC41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTkuNVYxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDQuNUEyLjUgMi41IDAgMCAxIDYuNSAySDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyMkg2LjVhMSAxIDAgMCAxIDAtNUg4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tEYXNoZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm9vay1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE5XTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeVNERTVZVEVnTVNBd0lEQWdNU0F4SURGMk1UaGhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhNQ0F6SURNZ015MHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rRG93bjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxM1Y3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTAgMyAzIDMtMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rRG93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLWhlYWRwaG9uZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeVNERTVZVEVnTVNBd0lEQWdNU0F4SURGMk1UaGhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNbll0TW1FMElEUWdNQ0F3SURFZ09DQXdkaklpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRVaUlHTjVQU0l4TWlJZ2NqMGlNU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0k1SWlCamVUMGlNVElpSUhJOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLWhlYWRwaG9uZXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rSGVhZHBob25lczogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEydi0yYTQgNCAwIDAgMSA4IDB2MicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE1JywgY3k6ICcxMicsIHI6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnMTInLCByOiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rSGVhZHBob25lcztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLWhlYXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPUzQxZGkweE5VRXlMalVnTWk0MUlEQWdNQ0F4SURZdU5TQXlTREU1WVRFZ01TQXdJREFnTVNBeElERjJNVGhoTVNBeElEQWdNQ0F4TFRFZ01VZzJMalZoTVNBeElEQWdNQ0F4SURBdE5VZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQzQyTWlBNUxqaEJNaTR5TlNBeUxqSTFJREFnTVNBeElERXlJRFl1T0RNMllUSXVNalVnTWk0eU5TQXdJREVnTVNBekxqTTRJREl1T1RZMmJDMHlMall5TmlBeUxqZzFObUV1T1RrNExqazVPQ0F3SURBZ01TMHhMalV3TnlBd2VpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLWhlYXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQm9va0hlYXJ0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTguNjIgOS44QTIuMjUgMi4yNSAwIDEgMSAxMiA2LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rSGVhcnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm9vay1rZXlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ015QXhJREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3SURJdE5DNDFJRFF1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ055NDRPVGhXTWpGaE1TQXhJREFnTUNBeExURWdNVWcyTGpWaE1TQXhJREFnTUNBeElEQXROVWd5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeWFEY3VPRFEwSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFMElpQmplVDBpT0NJZ2NqMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay1rZXlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rS2V5OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE5IDMgMSAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwIDItNC41IDQuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA3Ljg5OFYyMWExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMmg3Ljg0NCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE0JywgY3k6ICc4JywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va0tleTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLWltYWdlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qQWdNVE11TnkweUxqRXRNaTR4WVRJZ01pQXdJREFnTUMweUxqZ2dNRXc1TGpjZ01UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNVGt1TlhZdE1UVkJNaTQxSURJdU5TQXdJREFnTVNBMkxqVWdNa2d4T1dFeElERWdNQ0F3SURFZ01TQXhkakU0WVRFZ01TQXdJREFnTVMweElERklOaTQxWVRFZ01TQXdJREFnTVNBd0xUVklNakFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRBaUlHTjVQU0k0SWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLWltYWdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQm9va0ltYWdlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIwIDEzLjctMi4xLTIuMWEyIDIgMCAwIDAtMi44IDBMOS43IDE3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAnLCBjeTogJzgnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rSW1hZ2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm9vay1sb2NrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dObFkwWVRJZ01pQXdJREVnTUMwMElEQjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRWMk5tRXhJREVnTUNBd0lERXRNU0F4U0RZdU5XRXhJREVnTUNBd0lERWdNQzAxU0RJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTVMalYyTFRFMVFUSXVOU0F5TGpVZ01DQXdJREVnTmk0MUlESklNVEFpSUM4K0NpQWdQSEpsWTNRZ2VEMGlNVElpSUhrOUlqWWlJSGRwWkhSb1BTSTRJaUJvWldsbmFIUTlJalVpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLWxvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rTG9jazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCA2VjRhMiAyIDAgMSAwLTQgMHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE1djZhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTAnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxMicsIHk6ICc2Jywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNScsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rTG9jaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLW1hcmtlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTW5ZNGJETXRNeUF6SUROV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPUzQxZGkweE5VRXlMalVnTWk0MUlEQWdNQ0F4SURZdU5TQXlTREU1WVRFZ01TQXdJREFnTVNBeElERjJNVGhoTVNBeElEQWdNQ0F4TFRFZ01VZzJMalZoTVNBeElEQWdNQ0F4SURBdE5VZ3lNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay1tYXJrZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rTWFya2VkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDJ2OGwzLTMgMyAzVjInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwJyB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va01hcmtlZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPUzQxZGkweE5VRXlMalVnTWk0MUlEQWdNQ0F4SURZdU5TQXlTREU1WVRFZ01TQXdJREFnTVNBeElERjJNVGhoTVNBeElEQWdNQ0F4TFRFZ01VZzJMalZoTVNBeElEQWdNQ0F4SURBdE5VZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TUdnMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stbWludXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rTWludXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMGg2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tNaW51cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLW9wZW4tY2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qRldOeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFlnTVRJZ01pQXlJRFF0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ05sWTBZVEVnTVNBd0lEQWdNQzB4TFRGb0xUVmhOQ0EwSURBZ01DQXdMVFFnTkNBMElEUWdNQ0F3SURBdE5DMDBTRE5oTVNBeElEQWdNQ0F3TFRFZ01YWXhNMkV4SURFZ01DQXdJREFnTVNBeGFEWmhNeUF6SURBZ01DQXhJRE1nTXlBeklETWdNQ0F3SURFZ015MHphRFpoTVNBeElEQWdNQ0F3SURFdE1YWXRNUzR6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay1vcGVuLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQm9va09wZW5DaGVjazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMVY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDEyIDIgMiA0LTQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgNlY0YTEgMSAwIDAgMC0xLTFoLTVhNCA0IDAgMCAwLTQgNCA0IDQgMCAwIDAtNC00SDNhMSAxIDAgMCAwLTEgMXYxM2ExIDEgMCAwIDAgMSAxaDZhMyAzIDAgMCAxIDMgMyAzIDMgMCAwIDEgMy0zaDZhMSAxIDAgMCAwIDEtMXYtMS4zJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va09wZW5DaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLW9wZW4tdGV4dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTjNZeE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEpvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ09HZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREU0WVRFZ01TQXdJREFnTVMweExURldOR0V4SURFZ01DQXdJREVnTVMweGFEVmhOQ0EwSURBZ01DQXhJRFFnTkNBMElEUWdNQ0F3SURFZ05DMDBhRFZoTVNBeElEQWdNQ0F4SURFZ01YWXhNMkV4SURFZ01DQXdJREV0TVNBeGFDMDJZVE1nTXlBd0lEQWdNQzB6SURNZ015QXpJREFnTUNBd0xUTXRNM29pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRKb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQTRhRElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay1vcGVuLXRleHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rT3BlblRleHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3YxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMmgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDhoMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDE4YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDVhNCA0IDAgMCAxIDQgNCA0IDQgMCAwIDEgNC00aDVhMSAxIDAgMCAxIDEgMXYxM2ExIDEgMCAwIDEtMSAxaC02YTMgMyAwIDAgMC0zIDMgMyAzIDAgMCAwLTMtM3onLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4aDInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va09wZW5UZXh0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJvb2stb3BlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTjNZeE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhPR0V4SURFZ01DQXdJREV0TVMweFZqUmhNU0F4SURBZ01DQXhJREV0TVdnMVlUUWdOQ0F3SURBZ01TQTBJRFFnTkNBMElEQWdNQ0F4SURRdE5HZzFZVEVnTVNBd0lEQWdNU0F4SURGMk1UTmhNU0F4SURBZ01DQXhMVEVnTVdndE5tRXpJRE1nTUNBd0lEQXRNeUF6SURNZ015QXdJREFnTUMwekxUTjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLW9wZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rT3BlbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djE0JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tPcGVuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJvb2stcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTjNZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTVMalYyTFRFMVFUSXVOU0F5TGpVZ01DQXdJREVnTmk0MUlESklNVGxoTVNBeElEQWdNQ0F4SURFZ01YWXhPR0V4SURFZ01DQXdJREV0TVNBeFNEWXVOV0V4SURFZ01DQXdJREVnTUMwMVNESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV3YURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJvb2tQbHVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDd2NicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEwaDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va1BsdXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm9vay1zZWFyY2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01qSklOUzQxWVRFZ01TQXdJREFnTVNBd0xUVm9OQzQxTURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeElESXlMVEV1T0RjNUxURXVPRGM0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFNUxqVjJMVEUxUVRJdU5TQXlMalVnTUNBd0lERWdOUzQxSURKSU1UaGhNU0F4SURBZ01DQXhJREVnTVhZNElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTNJaUJqZVQwaU1UZ2lJSEk5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2stc2VhcmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQm9va1NlYXJjaDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAyMkg1LjVhMSAxIDAgMCAxIDAtNWg0LjUwMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAyMi0xLjg3OS0xLjg3OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNS41IDJIMThhMSAxIDAgMCAxIDEgMXY4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcnLCBjeTogJzE4JywgcjogJzMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va1NlYXJjaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLXRleHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeVNERTVZVEVnTVNBd0lEQWdNU0F4SURGMk1UaGhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNV2c0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURkb05pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLXRleHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rVGV4dDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDExaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA3aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va1RleHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm9vay11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVROV055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPUzQxZGkweE5VRXlMalVnTWk0MUlEQWdNQ0F4SURZdU5TQXlTREU1WVRFZ01TQXdJREFnTVNBeElERjJNVGhoTVNBeElEQWdNQ0F4TFRFZ01VZzJMalZoTVNBeElEQWdNQ0F4SURBdE5VZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPU0F4TUNBekxUTWdNeUF6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJvb2tVcDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxM1Y3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTAgMy0zIDMgMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rVXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm9vay10eXBlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVE5vTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUE0VmpaSU9IWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREU1TGpWMkxURTFRVEl1TlNBeUxqVWdNQ0F3SURFZ05pNDFJREpJTVRsaE1TQXhJREFnTUNBeElERWdNWFl4T0dFeElERWdNQ0F3SURFdE1TQXhTRFl1TldFeElERWdNQ0F3SURFZ01DMDFTREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9vay10eXBlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQm9va1R5cGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTNoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOFY2SDh2MicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAnIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rVHlwZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLXVwLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UTldOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTW1neFlURWdNU0F3SURBZ01TQXhJREYyTVRoaE1TQXhJREFnTUNBeExURWdNVWcyTGpWaE1TQXhJREFnTUNBeElEQXROVWd5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERXdJRE10TXlBeklETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dOU0F6TFRNZ015QXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLXVwLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rVXAyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzVjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMmgxYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMCAzLTMgMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgNSAzLTMgMyAzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tVcDI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm9vay11c2VyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNVE5oTXlBeklEQWdNU0F3TFRZZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPUzQxZGkweE5VRXlMalVnTWk0MUlEQWdNQ0F4SURZdU5TQXlTREU1WVRFZ01TQXdJREFnTVNBeElERjJNVGhoTVNBeElEQWdNQ0F4TFRFZ01VZzJMalZoTVNBeElEQWdNQ0F4SURBdE5VZ3lNQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJamdpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rLXVzZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rVXNlcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxM2EzIDMgMCAxIDAtNiAwJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCcgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzgnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rVXNlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib29rLXhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRRdU5TQTNMVFVnTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeVNERTVZVEVnTVNBd0lEQWdNU0F4SURGMk1UaGhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TNDFJRGNnTlNBMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb2steFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJvb2tYOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0LjUgNy01IDUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ000IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS41IDcgNSA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2tYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJvb2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9TNDFkaTB4TlVFeUxqVWdNaTQxSURBZ01DQXhJRFl1TlNBeVNERTVZVEVnTVNBd0lEQWdNU0F4SURGMk1UaGhNU0F4SURBZ01DQXhMVEVnTVVnMkxqVmhNU0F4SURBZ01DQXhJREF0TlVneU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQm9vazogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAnIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJvb2ttYXJrLWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1Ua2dNakV0TnkwMExUY2dORlkxWVRJZ01pQXdJREFnTVNBeUxUSm9NVEJoTWlBeUlEQWdNQ0F4SURJZ01sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNVEFnTWlBeUlEUXROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9va21hcmstY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb29rbWFya0NoZWNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE5IDIxLTctNC03IDRWNWEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTAgMiAyIDQtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rbWFya0NoZWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJvb2ttYXJrLW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1Ua2dNakV0TnkwMExUY2dORlkxWVRJZ01pQXdJREFnTVNBeUxUSm9NVEJoTWlBeUlEQWdNQ0F4SURJZ01uWXhObm9pSUM4K0NpQWdQR3hwYm1VZ2VERTlJakUxSWlCNE1qMGlPU0lnZVRFOUlqRXdJaUI1TWowaU1UQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rbWFyay1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJvb2ttYXJrTWludXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgMjEtNy00LTcgNFY1YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxNnonIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTUnLCB4MjogJzknLCB5MTogJzEwJywgeTI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rbWFya01pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJvb2ttYXJrLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01qRXROeTAwTFRjZ05GWTFZVElnTWlBd0lEQWdNU0F5TFRKb01UQmhNaUF5SURBZ01DQXhJRElnTW5ZeE5ub2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXlJaUI0TWowaU1USWlJSGt4UFNJM0lpQjVNajBpTVRNaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFMUlpQjRNajBpT1NJZ2VURTlJakV3SWlCNU1qMGlNVEFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm9va21hcmstcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJvb2ttYXJrUGx1czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xOSAyMS03LTQtNyA0VjVhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjE2eicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzcnLCB5MjogJzEzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1JywgeDI6ICc5JywgeTE6ICcxMCcsIHkyOiAnMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va21hcmtQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJvb2ttYXJrLXhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01qRXROeTAwTFRjZ05GWTFZVElnTWlBd0lEQWdNU0F5TFRKb01UQmhNaUF5SURBZ01DQXhJRElnTWxvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMExqVWdOeTQxTFRVZ05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TNDFJRGN1TlNBMUlEVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rbWFyay14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQm9va21hcmtYOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE5IDIxLTctNC03IDRWNWEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0LjUgNy41LTUgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205LjUgNy41IDUgNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb29rbWFya1g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm9va21hcmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01qRXROeTAwTFRjZ05GWTFZVElnTWlBd0lEQWdNU0F5TFRKb01UQmhNaUF5SURBZ01DQXhJRElnTW5ZeE5ub2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib29rbWFya1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJvb2ttYXJrOiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdtMTkgMjEtNy00LTcgNFY1YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxNnonIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va21hcms7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm9vbS1ib3hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBNVZqVmhNaUF5SURBZ01DQXhJREl0TW1neE1tRXlJRElnTUNBd0lERWdNaUF5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ09IWXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE0ZGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEaDJNU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1USWlJSGc5SWpJaUlIazlJamtpSUhKNFBTSXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamdpSUdONVBTSXhOU0lnY2owaU1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOaUlnWTNrOUlqRTFJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Jvb20tYm94XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQm9vbUJveDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDlWNWEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDh2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOHYxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTInLCB4OiAnMicsIHk6ICc5Jywgcng6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOCcsIGN5OiAnMTUnLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE2JywgY3k6ICcxNScsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJvb21Cb3g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm90LW1lc3NhZ2Utc3F1YXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdObFl5U0RnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERXhkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRKb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVEpvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UWmhNaUF5SURBZ01DQXhMVElnTWtnNExqZ3lPR0V5SURJZ01DQXdJREF0TVM0ME1UUXVOVGcyYkMweUxqSXdNaUF5TGpJd01rRXVOekV1TnpFZ01DQXdJREVnTkNBeU1DNHlPRFpXT0dFeUlESWdNQ0F3SURFZ01pMHlhREV5WVRJZ01pQXdJREFnTVNBeUlESjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV4ZGpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JvdC1tZXNzYWdlLXNxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJvdE1lc3NhZ2VTcXVhcmU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNlYySDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTF2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTJoMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxNmEyIDIgMCAwIDEtMiAySDguODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSA0IDIwLjI4NlY4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDExdjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm90TWVzc2FnZVNxdWFyZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib3Qtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVOamNnT0VneE9HRXlJRElnTUNBd0lERWdNaUF5ZGpRdU16TWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVFJvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UUm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTWpJZ01pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRGhJTm1FeUlESWdNQ0F3SURBdE1pQXlkamhoTWlBeUlEQWdNQ0F3SURJZ01tZ3hNbUV5SURJZ01DQXdJREFnTVM0ME1UUXRMalU0TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE0zWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMalkzSURSSU1USjJNaTR6TXlJZ0x6NEtQQzl6ZG1jKykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm90LW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJvdE9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMy42NyA4SDE4YTIgMiAwIDAgMSAyIDJ2NC4zMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE0aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTRoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMiAyIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA4SDZhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNDE0LS41ODYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxM3YyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuNjcgNEgxMnYyLjMzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJvdE9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ09GWTBTRGdpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFMklpQm9aV2xuYUhROUlqRXlJaUI0UFNJMElpQjVQU0k0SWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TkdneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhOR2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE0zWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV6ZGpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JvdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJvdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4VjRIOCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzEyJywgeDogJzQnLCB5OiAnOCcsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE0aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTRoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxM3YyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTN2MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm90dGxlLXdpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ00yRXhJREVnTUNBd0lERWdNUzB4YURKaE1TQXhJREFnTUNBeElERWdNWFl5WVRZZ05pQXdJREFnTUNBeExqSWdNeTQyYkM0MkxqaEJOaUEySURBZ01DQXhJREUzSURFemRqaGhNU0F4SURBZ01DQXhMVEVnTVVnNFlURWdNU0F3SURBZ01TMHhMVEYyTFRoaE5pQTJJREFnTUNBeElERXVNaTB6TGpac0xqWXRMamhCTmlBMklEQWdNQ0F3SURFd0lEVjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF4TTJndE5HRXhJREVnTUNBd0lEQXRNU0F4ZGpOaE1TQXhJREFnTUNBd0lERWdNV2cwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm90dGxlLXdpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCb3R0bGVXaW5lOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwIDNhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmE2IDYgMCAwIDAgMS4yIDMuNmwuNi44QTYgNiAwIDAgMSAxNyAxM3Y4YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xdi04YTYgNiAwIDAgMSAxLjItMy42bC42LS44QTYgNiAwIDAgMCAxMCA1eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEzaC00YTEgMSAwIDAgMC0xIDF2M2ExIDEgMCAwIDAgMSAxaDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQm90dGxlV2luZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBib3ctYXJyb3dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ00yZzBkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0TGpVM05TQXhNUzR3T0RKaE1UTWdNVE1nTUNBd0lERWdNUzR3TkRnZ09TNHdNamNnTVM0eE55QXhMakUzSURBZ01DQXhMVEV1T1RFMExqVTVOMHd4TkNBeE55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhNQ0F6TGpJNUlEWXVNamxoTVM0eE55QXhMakUzSURBZ01DQXhJQzQyTFRFdU9URWdNVE1nTVRNZ01DQXdJREVnT1M0d015QXhMakExSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFMFlURXVOeUF4TGpjZ01DQXdJREF0TVM0eU1EY3VOV3d0TWk0Mk5EWWdNaTQyTkRaQkxqVXVOU0F3SURBZ01DQXpMalVnTVRoSU5XRXhJREVnTUNBd0lERWdNU0F4ZGpFdU5XRXVOUzQxSURBZ01DQXdJQzQ0TlRRdU16VTBURGt1TlNBeE9DNHlNRGRCTVM0M0lERXVOeUF3SURBZ01DQXhNQ0F4TjNZdE1tRXhJREVnTUNBd0lEQXRNUzB4ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0M01EY2dNVFF1TWpreklESXhJRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYm93LWFycm93XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQm93QXJyb3c6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2g0djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTguNTc1IDExLjA4MmExMyAxMyAwIDAgMSAxLjA0OCA5LjAyNyAxLjE3IDEuMTcgMCAwIDEtMS45MTQuNTk3TDE0IDE3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTAgMy4yOSA2LjI5YTEuMTcgMS4xNyAwIDAgMSAuNi0xLjkxIDEzIDEzIDAgMCAxIDkuMDMgMS4wNScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ003IDE0YTEuNyAxLjcgMCAwIDAtMS4yMDcuNWwtMi42NDYgMi42NDZBLjUuNSAwIDAgMCAzLjUgMThINWExIDEgMCAwIDEgMSAxdjEuNWEuNS41IDAgMCAwIC44NTQuMzU0TDkuNSAxOC4yMDdBMS43IDEuNyAwIDAgMCAxMCAxN3YtMmExIDEgMCAwIDAtMS0xeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkuNzA3IDE0LjI5MyAyMSAzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJvd0Fycm93O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJveFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnT0dFeUlESWdNQ0F3SURBdE1TMHhMamN6YkMwM0xUUmhNaUF5SURBZ01DQXdMVElnTUd3dE55QTBRVElnTWlBd0lEQWdNQ0F6SURoMk9HRXlJRElnTUNBd0lEQWdNU0F4TGpjemJEY2dOR0V5SURJZ01DQXdJREFnTWlBd2JEY3RORUV5SURJZ01DQXdJREFnTWpFZ01UWmFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHpMak1nTnlBNExqY2dOU0E0TGpjdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakpXTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JveFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJveDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSA4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20zLjMgNyA4LjcgNSA4LjctNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMlYxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb3g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYm94ZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0NU55QXhNaTQ1TWtFeUlESWdNQ0F3SURBZ01pQXhOQzQyTTNZekxqSTBZVElnTWlBd0lEQWdNQ0F1T1RjZ01TNDNNV3d6SURFdU9HRXlJRElnTUNBd0lEQWdNaTR3TmlBd1RERXlJREU1ZGkwMUxqVnNMVFV0TXkwMExqQXpJREl1TkRKYUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wM0lERTJMalV0TkM0M05DMHlMamcxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAzSURFMkxqVWdOUzB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFMkxqVjJOUzR4TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UTXVOVll4T1d3ekxqazNJREl1TXpoaE1pQXlJREFnTUNBd0lESXVNRFlnTUd3ekxURXVPR0V5SURJZ01DQXdJREFnTGprM0xURXVOekYyTFRNdU1qUmhNaUF5SURBZ01DQXdMUzQ1TnkweExqY3hUREUzSURFd0xqVnNMVFVnTTFvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0lERTJMalV0TlMweklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE55QXhOaTQxSURRdU56UXRNaTQ0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UWXVOWFkxTGpFM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0xqazNJRFF1TkRKQk1pQXlJREFnTUNBd0lEY2dOaTR4TTNZMExqTTNiRFVnTXlBMUxUTldOaTR4TTJFeUlESWdNQ0F3SURBdExqazNMVEV1TnpGc0xUTXRNUzQ0WVRJZ01pQXdJREFnTUMweUxqQTJJREJzTFRNZ01TNDRXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnT0NBM0xqSTJJRFV1TVRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeUlEZ2dOQzQzTkMweUxqZzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TXk0MVZqZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ib3hlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJveGVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuOTcgMTIuOTJBMiAyIDAgMCAwIDIgMTQuNjN2My4yNGEyIDIgMCAwIDAgLjk3IDEuNzFsMyAxLjhhMiAyIDAgMCAwIDIuMDYgMEwxMiAxOXYtNS41bC01LTMtNC4wMyAyLjQyWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMTYuNS00Ljc0LTIuODUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyAxNi41IDUtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE2LjV2NS4xNycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAxMy41VjE5bDMuOTcgMi4zOGEyIDIgMCAwIDAgMi4wNiAwbDMtMS44YTIgMiAwIDAgMCAuOTctMS43MXYtMy4yNGEyIDIgMCAwIDAtLjk3LTEuNzFMMTcgMTAuNWwtNSAzWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDE2LjUtNS0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDE2LjUgNC43NC0yLjg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE2LjV2NS4xNycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ003Ljk3IDQuNDJBMiAyIDAgMCAwIDcgNi4xM3Y0LjM3bDUgMyA1LTNWNi4xM2EyIDIgMCAwIDAtLjk3LTEuNzFsLTMtMS44YTIgMiAwIDAgMC0yLjA2IDBsLTMgMS44WicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDggNy4yNiA1LjE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDggNC43NC0yLjg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzLjVWOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCb3hlcztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBicmFjZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBelNEZGhNaUF5SURBZ01DQXdMVElnTW5ZMVlUSWdNaUF3SURBZ01TMHlJRElnTWlBeUlEQWdNQ0F4SURJZ01uWTFZekFnTVM0eExqa2dNaUF5SURKb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNakZvTVdFeUlESWdNQ0F3SURBZ01pMHlkaTAxWXpBdE1TNHhMamt0TWlBeUxUSmhNaUF5SURBZ01DQXhMVEl0TWxZMVlUSWdNaUF3SURBZ01DMHlMVEpvTFRFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JyYWNlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJyYWNlczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDNIN2EyIDIgMCAwIDAtMiAydjVhMiAyIDAgMCAxLTIgMiAyIDIgMCAwIDEgMiAydjVjMCAxLjEuOSAyIDIgMmgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIxaDFhMiAyIDAgMCAwIDItMnYtNWMwLTEuMS45LTIgMi0yYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDAtMi0yaC0xJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJyYWNlcztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBicmFja2V0c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTTJnellURWdNU0F3SURBZ01TQXhJREYyTVRaaE1TQXhJREFnTUNBeExURWdNV2d0TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeU1VZzFZVEVnTVNBd0lEQWdNUzB4TFRGV05HRXhJREVnTUNBd0lERWdNUzB4YURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JyYWNrZXRzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQnJhY2tldHM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM2gzYTEgMSAwIDAgMSAxIDF2MTZhMSAxIDAgMCAxLTEgMWgtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxSDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCcmFja2V0cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBicmFpbi1jaXJjdWl0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOV0V6SURNZ01DQXhJREF0TlM0NU9UY3VNVEkxSURRZ05DQXdJREFnTUMweUxqVXlOaUExTGpjM0lEUWdOQ0F3SURBZ01DQXVOVFUySURZdU5UZzRRVFFnTkNBd0lERWdNQ0F4TWlBeE9Gb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVE5oTkM0MUlEUXVOU0F3SURBZ01DQXpMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFl1TURBeklEVXVNVEkxUVRNZ015QXdJREFnTUNBMkxqUXdNU0EyTGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNdU5EYzNJREV3TGpnNU5tRTBJRFFnTUNBd0lERWdMalU0TlMwdU16azJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREU0WVRRZ05DQXdJREFnTVMweExqazJOeTB1TlRFMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNMmcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE9HZzJZVElnTWlBd0lEQWdNU0F5SURKMk1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdPR2c0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBNFZqVmhNaUF5SURBZ01DQXhJREl0TWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE5pSWdZM2s5SWpFeklpQnlQU0l1TlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE9DSWdZM2s5SWpNaUlISTlJaTQxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpJd0lpQmplVDBpTWpFaUlISTlJaTQxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpJd0lpQmplVDBpT0NJZ2NqMGlMalVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnJhaW4tY2lyY3VpdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJyYWluQ2lyY3VpdDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTEyIDVhMyAzIDAgMSAwLTUuOTk3LjEyNSA0IDQgMCAwIDAtMi41MjYgNS43NyA0IDQgMCAwIDAgLjU1NiA2LjU4OEE0IDQgMCAxIDAgMTIgMThaJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxM2E0LjUgNC41IDAgMCAwIDMtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjAwMyA1LjEyNUEzIDMgMCAwIDAgNi40MDEgNi41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNDc3IDEwLjg5NmE0IDQgMCAwIDEgLjU4NS0uMzk2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMThhNCA0IDAgMCAxLTEuOTY3LS41MTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTNoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOGg2YTIgMiAwIDAgMSAyIDJ2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOFY1YTIgMiAwIDAgMSAyLTInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMTMnLCByOiAnLjUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMycsIHI6ICcuNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzIwJywgY3k6ICcyMScsIHI6ICcuNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzIwJywgY3k6ICc4JywgcjogJy41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJyYWluQ2lyY3VpdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBicmFpbi1jb2dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBdU9EVXlJREUwTGpjM01pMHVNemd6TGpreU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UQXVPRFV5SURrdU1qSTRMUzR6T0RNdExqa3lNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVE11TVRRNElERTBMamMzTWk0ek9ESXVPVEkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TXk0MU16RWdPQzR6TURVdExqTTRNeTQ1TWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMExqYzNNaUF4TUM0NE5USXVPVEl6TFM0ek9ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBMamMzTWlBeE15NHhORGd1T1RJekxqTTRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGN1TlRrNElEWXVOVUV6SURNZ01DQXhJREFnTVRJZ05XRXpJRE1nTUNBd0lEQXROUzQyTXkweExqUTBOaUF6SURNZ01DQXdJREF0TGpNMk9DQXhMalUzTVNBMElEUWdNQ0F3SURBdE1pNDFNalVnTlM0M056RWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMams1T0NBMUxqRXlOV0UwSURRZ01DQXdJREVnTWk0MU1qVWdOUzQzTnpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUxqVXdOU0F4TUM0eU9UUmhOQ0EwSURBZ01DQXhMVEV1TlNBM0xqY3dOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQzR3TXpJZ01UY3VORGd6UVRRZ05DQXdJREFnTUNBeE1TNDBOalFnTWpCakxqRTRMUzR6TVRFdU9Ea3lMUzR6TVRFZ01TNHdOeklnTUdFMElEUWdNQ0F3SURBZ055NDBNekl0TWk0MU1UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUXVOU0F4TUM0eU9URkJOQ0EwSURBZ01DQXdJRFlnTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU1EQXlJRFV1TVRJMVlUTWdNeUF3SURBZ01DQXVOQ0F4TGpNM05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TNHlNamdnTVRBdU9EVXlMUzQ1TWpNdExqTTRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzR5TWpnZ01UTXVNVFE0TFM0NU1qTXVNemd6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnJhaW4tY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQnJhaW5Db2c6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMC44NTIgOS4yMjgtLjM4My0uOTIzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjE0OCAxNC43NzIuMzgyLjkyNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMy41MzEgOC4zMDUtLjM4My45MjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNC43NzIgMTMuMTQ4LjkyMy4zODMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcuNTk4IDYuNUEzIDMgMCAxIDAgMTIgNWEzIDMgMCAwIDAtNS42My0xLjQ0NiAzIDMgMCAwIDAtLjM2OCAxLjU3MSA0IDQgMCAwIDAtMi41MjUgNS43NzEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy45OTggNS4xMjVhNCA0IDAgMCAxIDIuNTI1IDUuNzcxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5LjUwNSAxMC4yOTRhNCA0IDAgMCAxLTEuNSA3LjcwNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTQuMDMyIDE3LjQ4M0E0IDQgMCAwIDAgMTEuNDY0IDIwYy4xOC0uMzExLjg5Mi0uMzExIDEuMDcyIDBhNCA0IDAgMCAwIDcuNDMyLTIuNTE2JyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC41IDEwLjI5MUE0IDQgMCAwIDAgNiAxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjAwMiA1LjEyNWEzIDMgMCAwIDAgLjQgMS4zNzUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS4yMjggMTAuODUyLS45MjMtLjM4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205LjIyOCAxMy4xNDgtLjkyMy4zODMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCcmFpbkNvZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBicmFpblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRoV05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNVE5oTkM0eE55QTBMakUzSURBZ01DQXhMVE10TkNBMExqRTNJRFF1TVRjZ01DQXdJREV0TXlBMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55NDFPVGdnTmk0MVFUTWdNeUF3SURFZ01DQXhNaUExWVRNZ015QXdJREVnTUMwMUxqVTVPQ0F4TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqazVOeUExTGpFeU5XRTBJRFFnTUNBd0lERWdNaTQxTWpZZ05TNDNOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRoaE5DQTBJREFnTUNBd0lESXROeTQwTmpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUxqazJOeUF4Tnk0ME9ETkJOQ0EwSURBZ01TQXhJREV5SURFNFlUUWdOQ0F3SURFZ01TMDNMamsyTnkwdU5URTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREU0WVRRZ05DQXdJREFnTVMweUxUY3VORFkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAyTGpBd015QTFMakV5TldFMElEUWdNQ0F3SURBdE1pNDFNallnTlM0M055SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9icmFpblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJyYWluOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4VjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTNhNC4xNyA0LjE3IDAgMCAxLTMtNCA0LjE3IDQuMTcgMCAwIDEtMyA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjU5OCA2LjVBMyAzIDAgMSAwIDEyIDVhMyAzIDAgMSAwLTUuNTk4IDEuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy45OTcgNS4xMjVhNCA0IDAgMCAxIDIuNTI2IDUuNzcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMThhNCA0IDAgMCAwIDItNy40NjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuOTY3IDE3LjQ4M0E0IDQgMCAxIDEgMTIgMThhNCA0IDAgMSAxLTcuOTY3LS41MTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOGE0IDQgMCAwIDEtMi03LjQ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjAwMyA1LjEyNWE0IDQgMCAwIDAtMi41MjYgNS43NycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCcmFpbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBicmljay13YWxsLWZpcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ00zWXlMakV3TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ09XTXhJRE1nTWk0MUlETXVOU0F6TGpVZ05DNDFRVFVnTlNBd0lEQWdNU0F5TWlBeE4yRTFJRFVnTUNBd0lERXRNVEFnTUdNd0xTNHpJREF0TGpZdU1TMHVPV0V5SURJZ01DQXhJREFnTXk0ekxUSkRNVE1nTVRFdU5TQXhOaUE1SURFM0lEa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJRGd1TWpjMFZqVmhNaUF5SURBZ01DQXdMVEl0TWtnMVlUSWdNaUF3SURBZ01DMHlJREoyTVRSaE1pQXlJREFnTUNBd0lESWdNbWd6TGprek9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhOV2cxTGpJMU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QTVhRGd1TWpJNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTFkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTTNZMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JyaWNrLXdhbGwtZmlyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJyaWNrV2FsbEZpcmU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM3YyLjEwNycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNyA5YzEgMyAyLjUgMy41IDMuNSA0LjVBNSA1IDAgMCAxIDIyIDE3YTUgNSAwIDAgMS0xMCAwYzAtLjMgMC0uNi4xLS45YTIgMiAwIDEgMCAzLjMtMkMxMyAxMS41IDE2IDkgMTcgOScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDguMjc0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjkzOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1aDUuMjUzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWg4LjIyOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1djYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAzdjYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQnJpY2tXYWxsRmlyZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBicmljay13YWxsLXNoaWVsZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnT1hZeExqSTFPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTTNZMUxqUTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0E1TGpFeE9GWTFZVElnTWlBd0lEQWdNQzB5TFRKSU5XRXlJRElnTUNBd0lEQXRNaUF5ZGpFMFlUSWdNaUF3SURBZ01DQXlJREpvTlM0M05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVGN1TldNd0lESXVORGs1TFRFdU56VWdNeTQzTkRrdE15NDRNeUEwTGpRM05HRXVOUzQxSURBZ01DQXhMUzR6TXpVdExqQXdOV010TWk0d09EVXRMamN5TFRNdU9ETTFMVEV1T1RjdE15NDRNelV0TkM0ME4xWXhOR0V1TlM0MUlEQWdNQ0F4SUM0MUxTNDBPVGxqTVNBd0lESXVNalV0TGpZZ015NHhNaTB4TGpNMllTNDJMallnTUNBd0lERWdMamMyTFM0d01ERmpMamczTlM0M05qVWdNaTR4TWlBeExqTTJJRE11TVRJZ01TNHpObUV1TlM0MUlEQWdNQ0F4SUM0MUxqVjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUxYURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ09XZ3hNaTR4TkRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UVjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F6ZGpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JyaWNrLXdhbGwtc2hpZWxkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQnJpY2tXYWxsU2hpZWxkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDl2MS4yNTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM3Y1LjQ2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDkuMTE4VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg1Ljc1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIyIDE3LjVjMCAyLjQ5OS0xLjc1IDMuNzQ5LTMuODMgNC40NzRhLjUuNSAwIDAgMS0uMzM1LS4wMDVjLTIuMDg1LS43Mi0zLjgzNS0xLjk3LTMuODM1LTQuNDdWMTRhLjUuNSAwIDAgMSAuNS0uNDk5YzEgMCAyLjI1LS42IDMuMTItMS4zNmEuNi42IDAgMCAxIC43Ni0uMDAxYy44NzUuNzY1IDIuMTIgMS4zNiAzLjEyIDEuMzZhLjUuNSAwIDAgMSAuNS41eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTVoNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDloMTIuMTQyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTV2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDN2NicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCcmlja1dhbGxTaGllbGQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYnJpY2std2FsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE1ZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTFkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySUROMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhOV2d4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBNWFERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREUxZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ00zWTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9icmljay13YWxsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQnJpY2tXYWxsOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDl2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNXY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDN2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1aDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1djYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAzdjYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQnJpY2tXYWxsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJyaWVmY2FzZS1idXNpbmVzc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUEyVmpSaE1pQXlJREFnTUNBd0xUSXRNbWd0TkdFeUlESWdNQ0F3SURBdE1pQXlkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURFellURTRMakUxSURFNExqRTFJREFnTUNBeExUSXdJREFpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpJd0lpQm9aV2xuYUhROUlqRTBJaUI0UFNJeUlpQjVQU0kySWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnJpZWZjYXNlLWJ1c2luZXNzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQnJpZWZjYXNlQnVzaW5lc3M6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxM2ExOC4xNSAxOC4xNSAwIDAgMS0yMCAwJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTQnLCB4OiAnMicsIHk6ICc2Jywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJyaWVmY2FzZUJ1c2luZXNzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJyaWVmY2FzZS1jb252ZXlvci1iZWx0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNakIyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01qQjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTWpCMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNakJJTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1IWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREUyVmpSaE1pQXlJREFnTUNBeElESXRNbWcwWVRJZ01pQXdJREFnTVNBeUlESjJNVElpSUM4K0NpQWdQSEpsWTNRZ2VEMGlOQ0lnZVQwaU5pSWdkMmxrZEdnOUlqRTJJaUJvWldsbmFIUTlJakV3SWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnJpZWZjYXNlLWNvbnZleW9yLWJlbHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCcmllZmNhc2VDb252ZXlvckJlbHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjB2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIwdjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMjBIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDIwdjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEyJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNCcsIHk6ICc2Jywgd2lkdGg6ICcxNicsIGhlaWdodDogJzEwJywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJyaWVmY2FzZUNvbnZleW9yQmVsdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBicmllZmNhc2UtbWVkaWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRGMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVE5vTFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEWldOR0V5SURJZ01DQXdJREF0TWkweWFDMDBZVElnTWlBd0lEQWdNQzB5SURKMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dObll4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBMmRqRTBJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJeE5DSWdlRDBpTWlJZ2VUMGlOaUlnY25nOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9icmllZmNhc2UtbWVkaWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJyaWVmY2FzZU1lZGljYWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTF2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxM2gtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNnYxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDZ2MTQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzYnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQnJpZWZjYXNlTWVkaWNhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBicmllZmNhc2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01qQldOR0V5SURJZ01DQXdJREF0TWkweWFDMDBZVElnTWlBd0lEQWdNQzB5SURKMk1UWWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakl3SWlCb1pXbG5hSFE5SWpFMElpQjRQU0l5SWlCNVBTSTJJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9icmllZmNhc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCcmllZmNhc2U6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMjBWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MTYnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzYnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQnJpZWZjYXNlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJyaW5nLXRvLWZyb250XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0I0UFNJNElpQjVQU0k0SWlCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJNElpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1HRXlJRElnTUNBd0lERXRNaTB5VmpSaE1pQXlJREFnTUNBeElESXRNbWcwWVRJZ01pQXdJREFnTVNBeUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREl3WVRJZ01pQXdJREFnTUNBeUlESm9OR0V5SURJZ01DQXdJREFnTWkweWRpMDBZVElnTWlBd0lEQWdNQzB5TFRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2JyaW5nLXRvLWZyb250XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQnJpbmdUb0Zyb250OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB4OiAnOCcsIHk6ICc4Jywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDEwYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMGEyIDIgMCAwIDAgMiAyaDRhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJyaW5nVG9Gcm9udDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBicnVzaC1jbGVhbmluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTWpJdE1TMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F4TkdFeElERWdNQ0F3SURBZ01TMHhkaTB4WVRJZ01pQXdJREFnTUMweUxUSm9MVE5oTVNBeElEQWdNQ0F4TFRFdE1WWTBZVElnTWlBd0lEQWdNQzAwSURCMk5XRXhJREVnTUNBd0lERXRNU0F4U0RaaE1pQXlJREFnTUNBd0xUSWdNbll4WVRFZ01TQXdJREFnTUNBeElERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREUwU0RWc0xURXVPVGN6SURZdU56WTNRVEVnTVNBd0lEQWdNQ0EwSURJeWFERTJZVEVnTVNBd0lEQWdNQ0F1T1RjekxURXVNak16ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBeU1pQXhMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnJ1c2gtY2xlYW5pbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCcnVzaENsZWFuaW5nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDIyLTEtNCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOSAxNGExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJoLTNhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC00IDB2NWExIDEgMCAwIDEtMSAxSDZhMiAyIDAgMCAwLTIgMnYxYTEgMSAwIDAgMCAxIDEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxNEg1bC0xLjk3MyA2Ljc2N0ExIDEgMCAwIDAgNCAyMmgxNmExIDEgMCAwIDAgLjk3My0xLjIzM3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAyMiAxLTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQnJ1c2hDbGVhbmluZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBicnVzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEVnTVRBZ015QXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJMalVnTWpGQk15NDFJRE11TlNBd0lERWdNQ0F6SURFM0xqVmhNaTQyTWlBeUxqWXlJREFnTUNBeExTNDNNRGdnTVM0M09USkJNU0F4SURBZ01DQXdJRE1nTWpGNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUxqazJPU0F4Tnk0d016RWdNakV1TXpjNElEVXVOakkwWVRFZ01TQXdJREFnTUMwekxqQXdNaTB6TGpBd01rdzJMamsyTnlBeE5DNHdNekVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnJ1c2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCcnVzaDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMSAxMCAzIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi41IDIxQTMuNSAzLjUgMCAxIDAgMyAxNy41YTIuNjIgMi42MiAwIDAgMS0uNzA4IDEuNzkyQTEgMSAwIDAgMCAzIDIxeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005Ljk2OSAxNy4wMzEgMjEuMzc4IDUuNjI0YTEgMSAwIDAgMC0zLjAwMi0zLjAwMkw2Ljk2NyAxNC4wMzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQnJ1c2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYnViYmxlc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeTR3TURFZ01UVXVNRGcxUVRFdU5TQXhMalVnTUNBd0lERWdPU0F4Tmk0MUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTRMalVpSUdONVBTSTRMalVpSUhJOUlqTXVOU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kzTGpVaUlHTjVQU0l4Tmk0MUlpQnlQU0kxTGpVaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU55NDFJaUJqZVQwaU5DNDFJaUJ5UFNJeUxqVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9idWJibGVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQnViYmxlczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003LjAwMSAxNS4wODVBMS41IDEuNSAwIDAgMSA5IDE2LjUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOC41JywgY3k6ICc4LjUnLCByOiAnMy41JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNy41JywgY3k6ICcxNi41JywgcjogJzUuNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzcuNScsIGN5OiAnNC41JywgcjogJzIuNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCdWJibGVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJ1Zy1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qQjJMVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwTGpFeUlETXVPRGdnTVRZZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdOeTR4TTFZMllUTWdNeUF3SURBZ01DMDFMakUwTFRJdU1VdzRJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFeUxqTTBWakV4WVRRZ05DQXdJREFnTUMwMExUUm9MVEV1TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBMVlUUWdOQ0F3SURBZ01TMHpMalUxSURNdU9UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREV6YUMwekxqTTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREl4WVRRZ05DQXdJREFnTVNBekxqZ3hMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVROSU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55NDNJRGN1TjBFMElEUWdNQ0F3SURBZ05pQXhNWFl6WVRZZ05pQXdJREFnTUNBeE1TNHhNeUF6TGpFeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2J1Zy1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCdWdPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjB2LTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuMTIgMy44OCAxNiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDcuMTNWNmEzIDMgMCAwIDAtNS4xNC0yLjFMOCAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEyLjM0VjExYTQgNCAwIDAgMC00LTRoLTEuMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNWE0IDQgMCAwIDEtMy41NSAzLjk3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEzaC0zLjM0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMjFhNCA0IDAgMCAxIDMuODEtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEzSDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNy43IDcuN0E0IDQgMCAwIDAgNiAxMXYzYTYgNiAwIDAgMCAxMS4xMyAzLjEzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJ1Z09mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBidWctcGxheVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRrdU5qVTFRVFlnTmlBd0lEQWdNU0EySURFMGRpMHpZVFFnTkNBd0lEQWdNU0EwTFRSb05HRTBJRFFnTUNBd0lERWdOQ0F6TGprM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXhOUzR3TUROaE1TQXhJREFnTUNBeElERXVOVEUzTFM0NE5UbHNOQzQ1T1RjZ01pNDVPVGRoTVNBeElEQWdNQ0F4SURBZ01TNDNNVGhzTFRRdU9UazNJREl1T1RrM1lURWdNU0F3SURBZ01TMHhMalV4TnkwdU9EWjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQzR4TWlBekxqZzRJREUySURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElEVmhOQ0EwSURBZ01DQXhMVE11TlRVZ015NDVOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF5TVdFMElEUWdNQ0F3SURFZ015NDRNUzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURWaE5DQTBJREFnTUNBd0lETXVOVFVnTXk0NU55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhNMGd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0SURJZ01TNDRPQ0F4TGpnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlEY3VNVE5XTm1FeklETWdNQ0F4SURFZ05pQXdkakV1TVRNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2J1Zy1wbGF5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQnVnUGxheTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxOS42NTVBNiA2IDAgMCAxIDYgMTR2LTNhNCA0IDAgMCAxIDQtNGg0YTQgNCAwIDAgMSA0IDMuOTcnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjEyIDMuODggMTYgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA1YTQgNCAwIDAgMS0zLjU1IDMuOTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAyMWE0IDQgMCAwIDEgMy44MS00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTNIMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDIgMS44OCAxLjg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgNy4xM1Y2YTMgMyAwIDEgMSA2IDB2MS4xMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBCdWdQbGF5O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJ1Z1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpCMkxUa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJRGRoTkNBMElEQWdNQ0F4SURRZ05IWXpZVFlnTmlBd0lEQWdNUzB4TWlBd2RpMHpZVFFnTkNBd0lEQWdNU0EwTFRSNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNHhNaUF6TGpnNElERTJJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURJeFlUUWdOQ0F3SURBZ01DMHpMamd4TFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElEVmhOQ0EwSURBZ01DQXhMVE11TlRVZ015NDVOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTVROb0xUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNakZoTkNBMElEQWdNQ0F4SURNdU9ERXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUExWVRRZ05DQXdJREFnTUNBekxqVTFJRE11T1RjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UTklNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0F5SURFdU9EZ2dNUzQ0T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBM0xqRXpWalpoTXlBeklEQWdNU0F4SURZZ01IWXhMakV6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnVnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQnVnOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwdi05JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDdhNCA0IDAgMCAxIDQgNHYzYTYgNiAwIDAgMS0xMiAwdi0zYTQgNCAwIDAgMSA0LTR6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjEyIDMuODggMTYgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAyMWE0IDQgMCAwIDAtMy44MS00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxM2gtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDIxYTQgNCAwIDAgMSAzLjgxLTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxM0gyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMiAxLjg4IDEuODgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA3LjEzVjZhMyAzIDAgMSAxIDYgMHYxLjEzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJ1ZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBidWlsZGluZy0yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEpvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ09HZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5TVhZdE0yRXlJRElnTUNBd0lEQXROQ0F3ZGpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UQklOR0V5SURJZ01DQXdJREF0TWlBeWRqZGhNaUF5SURBZ01DQXdJRElnTW1neE5tRXlJRElnTUNBd0lEQWdNaTB5VmpsaE1pQXlJREFnTUNBd0xUSXRNbWd0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1WWTFZVElnTWlBd0lEQWdNU0F5TFRKb09HRXlJRElnTUNBd0lERWdNaUF5ZGpFMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2J1aWxkaW5nLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCdWlsZGluZzI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA4aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTBINGEyIDIgMCAwIDAtMiAydjdhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMmgtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDIxVjVhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQnVpbGRpbmcyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJ1aWxkaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEJvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEWm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE1HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFMGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTm1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVEJvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTBhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBMmFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F5TW5ZdE0yRXhJREVnTUNBd0lERWdNUzB4YURSaE1TQXhJREFnTUNBeElERWdNWFl6SWlBdlBnb2dJRHh5WldOMElIZzlJalFpSUhrOUlqSWlJSGRwWkhSb1BTSXhOaUlnYUdWcFoyaDBQU0l5TUNJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnVpbGRpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBCdWlsZGluZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTRoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEwaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA2aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIydi0zYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjMnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc0JywgeTogJzInLCB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMjAnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQnVpbGRpbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgYnVzLWZyb250XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQTJJRElnTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ05tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUEzTFRJdE1TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTVRZaUlIZzlJalFpSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERXhhREUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRWb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREU1ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElESXhkaTB5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvYnVzLWZyb250XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQnVzRnJvbnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCA2IDIgNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA2aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy0yLTEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICcxNicsIHg6ICc0JywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMWgxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOXYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIxdi0yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJ1c0Zyb250O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGJ1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0EyZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlEWjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TW1neE9TNDJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0F4T0dnemN5NDFMVEV1Tnk0NExUSXVPR011TVMwdU5DNHlMUzQ0TGpJdE1TNHlJREF0TGpRdExqRXRMamd0TGpJdE1TNHliQzB4TGpRdE5VTXlNQzR4SURZdU9DQXhPUzR4SURZZ01UZ2dOa2cwWVRJZ01pQXdJREFnTUMweUlESjJNVEJvTXlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJM0lpQmplVDBpTVRnaUlISTlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRob05TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOaUlnWTNrOUlqRTRJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2J1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEJ1czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDZ2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA2djYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgxOS42JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4IDE4aDNzLjUtMS43LjgtMi44Yy4xLS40LjItLjguMi0xLjIgMC0uNC0uMS0uOC0uMi0xLjJsLTEuNC01QzIwLjEgNi44IDE5LjEgNiAxOCA2SDRhMiAyIDAgMCAwLTIgMnYxMGgzJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3JywgY3k6ICcxOCcsIHI6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMThoNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE2JywgY3k6ICcxOCcsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEJ1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYWJsZS1jYXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ00yZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlJRGtnTWpBdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEpXTmk0MUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhOaUlnYUdWcFoyaDBQU0l4TUNJZ2VEMGlOQ0lnZVQwaU1USWlJSEo0UFNJeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERXlkalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURFeWRqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNVGRvTVRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhYmxlLWNhclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENhYmxlQ2FyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDNoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgOSAyMC01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyVjYuNScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzEwJywgeDogJzQnLCB5OiAnMTInLCByeDogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMnY1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEydjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxN2gxNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYWJsZUNhcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYWJsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRsaE1TQXhJREFnTUNBeExURXRNWFl0TW1FeUlESWdNQ0F3SURFZ01pMHlhREpoTWlBeUlEQWdNQ0F4SURJZ01uWXlZVEVnTVNBd0lEQWdNUzB4SURGNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXlNWFl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01UUldOaTQxWVRFZ01TQXdJREFnTUMwM0lEQjJNVEZoTVNBeElEQWdNQ0F4TFRjZ01GWXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTWpGMkxUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdOVll6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFd1lUSWdNaUF3SURBZ01TMHlMVEpXTm1FeElERWdNQ0F3SURFZ01TMHhhRFJoTVNBeElEQWdNQ0F4SURFZ01YWXlZVElnTWlBd0lEQWdNUzB5SURKNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lEVldNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FibGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYWJsZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxOWExIDEgMCAwIDEtMS0xdi0yYTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjJhMSAxIDAgMCAxLTEgMXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMjF2LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTRWNi41YTEgMSAwIDAgMC03IDB2MTFhMSAxIDAgMCAxLTcgMFYxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAyMXYtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDVWMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDEwYTIgMiAwIDAgMS0yLTJWNmExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJ6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgNVYzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhYmxlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNha2Utc2xpY2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UTklNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRkSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE55NHlJRGN1T1MwekxqTTRPQ0F5TGpWQk1pQXlJREFnTUNBd0lETWdNVEl1TURGV01qQmhNU0F4SURBZ01DQXdJREVnTVdneE5tRXhJREVnTUNBd0lEQWdNUzB4ZGkwNExqWTFOR013TFRJdE1pNDBOQzAyTGpBeU5pMDJMalEwTFRndU1ESTJZVEVnTVNBd0lEQWdNQzB4TGpBNE1pNHdOVGRNTVRBdU5DQTFMallpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpT1NJZ1kzazlJamNpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWtlLXNsaWNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FrZVNsaWNlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEzSDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTdIMycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ203LjIgNy45LTMuMzg4IDIuNUEyIDIgMCAwIDAgMyAxMi4wMVYyMGExIDEgMCAwIDAgMSAxaDE2YTEgMSAwIDAgMCAxLTF2LTguNjU0YzAtMi0yLjQ0LTYuMDI2LTYuNDQtOC4wMjZhMSAxIDAgMCAwLTEuMDgyLjA1N0wxMC40IDUuNicsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnNycsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENha2VTbGljZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYWtlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNakYyTFRoaE1pQXlJREFnTUNBd0xUSXRNa2cyWVRJZ01pQXdJREFnTUMweUlESjJPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4Tm5NdU5TMHhJREl0TVNBeUxqVWdNaUEwSURJZ01pNDFMVElnTkMweUlESXVOU0F5SURRZ01pQXlMVEVnTWkweElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlESXhhREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURoMk15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdPSFl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBNGRqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dOR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEUm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBMGFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FrZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENha2U6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMjF2LThhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE2cy41LTEgMi0xIDIuNSAyIDQgMiAyLjUtMiA0LTIgMi41IDIgNCAyIDItMSAyLTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMWgyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDh2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgOHYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgNGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNGguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FrZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYWxjdWxhdG9yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTWpBaUlIZzlJalFpSUhrOUlqSWlJSEo0UFNJeUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJNElpQjRNajBpTVRZaUlIa3hQU0kySWlCNU1qMGlOaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVFlpSUhneVBTSXhOaUlnZVRFOUlqRTBJaUI1TWowaU1UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV3YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEJvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERXdhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UUm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRob0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREU0YUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxjdWxhdG9yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FsY3VsYXRvcjogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzIwJywgeDogJzQnLCB5OiAnMicsIHJ4OiAnMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc4JywgeDI6ICcxNicsIHkxOiAnNicsIHkyOiAnNicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNicsIHgyOiAnMTYnLCB5MTogJzE0JywgeTI6ICcxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTBoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTBoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE0aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOGguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsY3VsYXRvcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYWxlbmRhci0xXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVFJvTVhZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRCb01UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNblkwSWlBdlBnb2dJRHh5WldOMElIZzlJak1pSUhrOUlqUWlJSGRwWkhSb1BTSXhPQ0lnYUdWcFoyaDBQU0l4T0NJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItMVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyMTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxNGgxdjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzQnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXIxO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLWFycm93LWRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRRZ01UZ2dOQ0EwSURRdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNblkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeE5IWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TVM0ek5UUldObUV5SURJZ01DQXdJREF0TWkweVNEVmhNaUF5SURBZ01DQXdMVElnTW5ZeE5HRXlJRElnTUNBd0lEQWdNaUF5YURjdU16UXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV3YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElESjJOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItYXJyb3ctZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyQXJyb3dEb3duOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE4IDQgNCA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE0djgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTEuMzU0VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg3LjM0MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEwaDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMnY0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyQXJyb3dEb3duO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLWFycm93LXVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdNVGdnTkMwMElEUWdOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXlNbll0T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01URXVNelF6VmpaaE1pQXlJREFnTUNBd0xUSXRNa2cxWVRJZ01pQXdJREFnTUMweUlESjJNVFJoTWlBeUlEQWdNQ0F3SURJZ01tZzVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV3YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElESjJOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItYXJyb3ctdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYWxlbmRhckFycm93VXA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTggNC00IDQgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMjJ2LTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTEuMzQzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJBcnJvd1VwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLWNoZWNrLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREoyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UUldObUV5SURJZ01DQXdJREF0TWkweVNEVmhNaUF5SURBZ01DQXdMVElnTW5ZeE5HRXlJRElnTUNBd0lEQWdNaUF5YURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UQm9NVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUySURJd0lESWdNaUEwTFRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLWNoZWNrLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYWxlbmRhckNoZWNrMjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAyMCAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyQ2hlY2syO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERXdhREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1SURFMklESWdNaUEwTFRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJDaGVjazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzQnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE2IDIgMiA0LTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYWxlbmRhci1jb2dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVdU1qSTRJREUyTGpnMU1pMHVPVEl6TFM0ek9ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFMakl5T0NBeE9TNHhORGd0TGpreU15NHpPRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWXVORGNnTVRRdU16QTFMak00TWk0NU1qTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJMamcxTWlBeU1DNDNOekl0TGpNNE15NDVNalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU1TGpFME9DQXhOUzR5TWpndU16Z3pMUzQ1TWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFNUxqVXpJREl4TGpZNU5pMHVNemd5TFM0NU1qUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXdMamMzTWlBeE5pNDROVEl1T1RJMExTNHpPRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3TGpjM01pQXhPUzR4TkRndU9USTBMak00TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UQXVOVGt5VmpaaE1pQXlJREFnTUNBd0xUSXRNa2cxWVRJZ01pQXdJREFnTUMweUlESjJNVFJoTWlBeUlEQWdNQ0F3SURJZ01tZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV3YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElESjJOQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4T0NJZ1kzazlJakU0SWlCeVBTSXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxlbmRhci1jb2dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYWxlbmRhckNvZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNS4yMjggMTYuODUyLS45MjMtLjM4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNS4yMjggMTkuMTQ4LS45MjMuMzgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi40NyAxNC4zMDUuMzgyLjkyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMjAuNzcyLS4zODMuOTI0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjE0OCAxNS4yMjguMzgzLS45MjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuNTMgMjEuNjk2LS4zODItLjkyNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43NzIgMTYuODUyLjkyNC0uMzgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjc3MiAxOS4xNDguOTI0LjM4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMC41OTJWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyQ29nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLWNsb2NrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFIyTWk0eWJERXVOaUF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJRGN1TlZZMllUSWdNaUF3SURBZ01DMHlMVEpJTldFeUlESWdNQ0F3SURBdE1pQXlkakUwWVRJZ01pQXdJREFnTUNBeUlESm9NeTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFd2FEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNblkwSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFMklpQmplVDBpTVRZaUlISTlJallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItY2xvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYWxlbmRhckNsb2NrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE0djIuMmwxLjYgMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNy41VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMnY0JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzE2JywgcjogJzYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJDbG9jaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYWxlbmRhci1kYXlzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERXdhREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRSb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TkdndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVGhvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTRhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLWRheXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYWxlbmRhckRheXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICc0Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTRoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE0aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMThoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyRGF5cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYWxlbmRhci1mb2xkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXlNR0V5SURJZ01DQXdJREFnTWlBeWFERXdZVEl1TkNBeUxqUWdNQ0F3SURBZ01TNDNNRFl0TGpjd05td3pMalU0T0MwekxqVTRPRUV5TGpRZ01pNDBJREFnTUNBd0lESXhJREUyVmpaaE1pQXlJREFnTUNBd0xUSXRNa2cxWVRJZ01pQXdJREFnTUMweUlESjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F5TW5ZdE5XRXhJREVnTUNBd0lERWdNUzB4YURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01uWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UQm9NVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItZm9sZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyRm9sZDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDIwYTIgMiAwIDAgMCAyIDJoMTBhMi40IDIuNCAwIDAgMCAxLjcwNi0uNzA2bDMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMjEgMTZWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAyMnYtNWExIDEgMCAwIDEgMS0xaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJGb2xkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLWhlYXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVNVEkzSURJeVNEVmhNaUF5SURBZ01DQXhMVEl0TWxZMllUSWdNaUF3SURBZ01TQXlMVEpvTVRSaE1pQXlJREFnTUNBeElESWdNblkxTGpFeU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVOaklnTVRndU9FRXlMakkxSURJdU1qVWdNQ0F4SURFZ01UZ2dNVFV1T0RNMllUSXVNalVnTWk0eU5TQXdJREVnTVNBekxqTTRJREl1T1RZMmJDMHlMall5TmlBeUxqZzFObUV1T1RrNExqazVPQ0F3SURBZ01TMHhMalV3TnlBd2VpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNblkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFd2FERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREoyTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLWhlYXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJIZWFydDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMi4xMjcgMjJINWEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjUuMTI1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE0LjYyIDE4LjhBMi4yNSAyLjI1IDAgMSAxIDE4IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhckhlYXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLW1pbnVzLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREoyTkNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpRaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFd2FERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4Tm1nMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLW1pbnVzLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYWxlbmRhck1pbnVzMjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzQnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNmg0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyTWludXMyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVGxvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01uWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TlZZMllUSWdNaUF3SURBZ01DMHlMVEpJTldFeUlESWdNQ0F3SURBdE1pQXlkakUwWVRJZ01pQXdJREFnTUNBeUlESm9PQzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFd2FERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREoyTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJNaW51czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOWg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOC41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJNaW51cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYWxlbmRhci1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkM0eUlEUXVNa0V5SURJZ01DQXdJREFnTXlBMmRqRTBZVElnTWlBd0lEQWdNQ0F5SURKb01UUmhNaUF5SURBZ01DQXdJREV1T0RJdE1TNHhPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRVdU5WWTJZVElnTWlBd0lEQWdNQzB5TFRKSU9TNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UQm9OeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRCb0xUVXVOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxlbmRhci1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYWxlbmRhck9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000LjIgNC4yQTIgMiAwIDAgMCAzIDZ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMS44Mi0xLjE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1LjVWNmEyIDIgMCAwIDAtMi0ySDkuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGg3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEwaC01LjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLXBsdXMtMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklESjJOQ0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV3YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhObWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE5IWTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxlbmRhci1wbHVzLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYWxlbmRhclBsdXMyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnNCcsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEwaDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE2aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTR2NCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhclBsdXMyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UbG9OaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQXhOblkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE1pNDFPVGhXTm1FeUlESWdNQ0F3SURBdE1pMHlTRFZoTWlBeUlEQWdNQ0F3TFRJZ01uWXhOR0V5SURJZ01DQXdJREFnTWlBeWFEZ3VOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TUdneE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlkalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyUGx1czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOWg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxNnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyLjU5OFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOC41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLXJhbmdlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRCb01UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNblkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBeE5HZ3ROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVRoSU55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhOR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lERTRhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLXJhbmdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJSYW5nZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnNCcsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNGgtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxOEg3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTRoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE4aC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhclJhbmdlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLXNlYXJjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhNUzQzTlZZMllUSWdNaUF3SURBZ01DMHlMVEpJTldFeUlESWdNQ0F3SURBdE1pQXlkakUwWVRJZ01pQXdJREFnTUNBeUlESm9OeTR5TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ01qSXRNUzQ0TnpVdE1TNDROelVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRCb01UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNblkwSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNElpQmplVDBpTVRnaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXItc2VhcmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJTZWFyY2g6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDExLjc1VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg3LjI1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDIyLTEuODc1LTEuODc1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTgnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhclNlYXJjaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYWxlbmRhci1zeW5jXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVEIyTkdnMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1TQXhOQ0F4TGpVek5TMHhMall3TldFMUlEVWdNQ0F3SURFZ09DQXhMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNVGd0TVM0MU16VWdNUzQyTURWaE5TQTFJREFnTUNBeExUZ3RNUzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeU1uWXROR2d0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ09DNDFWalpoTWlBeUlEQWdNQ0F3TFRJdE1rZzFZVElnTWlBd0lEQWdNQzB5SURKMk1UUmhNaUF5SURBZ01DQXdJRElnTW1nMExqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEJvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeWRqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxlbmRhci1zeW5jXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJTeW5jOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDEwdjRoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMSAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAyMnYtNGgtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA4LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDQuMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEwaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJTeW5jO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLXgtMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklESjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVROV05tRXlJRElnTUNBd0lEQXRNaTB5U0RWaE1pQXlJREFnTUNBd0xUSWdNbll4TkdFeUlESWdNQ0F3SURBZ01pQXlhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRCb01UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNJREl5SURVdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNVGNnTlNBMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbGVuZGFyLXgtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENhbGVuZGFyWDI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTBoMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMjIgNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDE3IDUgNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhclgyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyLXhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREoyTkNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpRaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFd2FERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQ0F4TkMwMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXdJREUwSURRZ05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYWxlbmRhci14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJYOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnNCcsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEwaDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE0LTQgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNCA0IDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FsZW5kYXJYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbGVuZGFyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURKMk5DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERXdhREU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYWxlbmRhcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzQnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGgxOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYWxlbmRhcnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOUzQzTWpZZ01qRXVNREZCTWlBeUlEQWdNQ0F4SURFMElESXlTRFJoTWlBeUlEQWdNQ0F4TFRJdE1sWXhNR0V5SURJZ01DQXdJREVnTWkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXlkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVROb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQTRhREUwSWlBdlBnb2dJRHh5WldOMElIZzlJamdpSUhrOUlqTWlJSGRwWkhSb1BTSXhOQ0lnYUdWcFoyaDBQU0l4TkNJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FsZW5kYXJzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FsZW5kYXJzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNS43MjYgMjEuMDFBMiAyIDAgMCAxIDE0IDIySDRhMiAyIDAgMCAxLTItMlYxMGEyIDIgMCAwIDEgMi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEzaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA4aDE0JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnOCcsIHk6ICczJywgd2lkdGg6ICcxNCcsIGhlaWdodDogJzE0Jywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFycztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYW1lcmEtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVOVFkwSURFMExqVTFPR0V6SURNZ01DQXhJREV0TkM0eE1qSXROQzR4TWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJZ01pQXlNQ0F5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01qQklOR0V5SURJZ01DQXdJREV0TWkweVZqbGhNaUF5SURBZ01DQXhJREl0TW1neExqazVOMkV5SURJZ01DQXdJREFnTGpneE9TMHVNVGMxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1TGpZNU5TQTBMakF5TkVFeUlESWdNQ0F3SURFZ01UQXVNREEwSURSb015NDVPVE5oTWlBeUlEQWdNQ0F4SURFdU56WWdNUzR3Tld3dU5EZzJMamxCTWlBeUlEQWdNQ0F3SURFNExqQXdNeUEzU0RJd1lUSWdNaUF3SURBZ01TQXlJREoyTnk0ek5EUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYW1lcmEtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FtZXJhT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0LjU2NCAxNC41NThhMyAzIDAgMSAxLTQuMTIyLTQuMTIxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAyMEg0YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDEuOTk3YTIgMiAwIDAgMCAuODE5LS4xNzUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOS42OTUgNC4wMjRBMiAyIDAgMCAxIDEwLjAwNCA0aDMuOTkzYTIgMiAwIDAgMSAxLjc2IDEuMDVsLjQ4Ni45QTIgMiAwIDAgMCAxOC4wMDMgN0gyMGEyIDIgMCAwIDEgMiAydjcuMzQ0JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FtZXJhT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbWVyYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE11T1RrM0lEUmhNaUF5SURBZ01DQXhJREV1TnpZZ01TNHdOV3d1TkRnMkxqbEJNaUF5SURBZ01DQXdJREU0TGpBd015QTNTREl3WVRJZ01pQXdJREFnTVNBeUlESjJPV0V5SURJZ01DQXdJREV0TWlBeVNEUmhNaUF5SURBZ01DQXhMVEl0TWxZNVlUSWdNaUF3SURBZ01TQXlMVEpvTVM0NU9UZGhNaUF5SURBZ01DQXdJREV1TnpVNUxURXVNRFE0YkM0ME9Ea3RMamt3TkVFeUlESWdNQ0F3SURFZ01UQXVNREEwSURSNklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1UTWlJSEk5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbWVyYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENhbWVyYTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMy45OTcgNGEyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgMS43NTktMS4wNDhsLjQ4OS0uOTA0QTIgMiAwIDAgMSAxMC4wMDQgNHonLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMycsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhbWVyYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYW5keS1jYW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TNDNJREl4WVRJZ01pQXdJREFnTVMwekxqVXRNbXc0TGpZdE1UUmhOaUEySURBZ01DQXhJREV3TGpRZ05pQXlJRElnTUNBeElERXRNeTQwTmpRdE1pQXlJRElnTUNBeElEQXRNeTQwTmpRdE1sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMamMxSURjZ01UVWdNaTR4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUM0NUlEUXVPQ0F4TXlBNUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wM0xqa2dPUzQzSURJZ05DNDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBMamtnTVRRdU55QTNJREU0TGpraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhbmR5LWNhbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYW5keUNhbmU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ001LjcgMjFhMiAyIDAgMCAxLTMuNS0ybDguNi0xNGE2IDYgMCAwIDEgMTAuNCA2IDIgMiAwIDEgMS0zLjQ2NC0yIDIgMiAwIDEgMC0zLjQ2NC0yWicgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE3Ljc1IDcgMTUgMi4xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwLjkgNC44IDEzIDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy45IDkuNyAyIDQuNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000LjkgMTQuNyA3IDE4LjknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FuZHlDYW5lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhbmR5LW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRCMk55NDVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNUzQ0TURJZ05pNHhORFZoTlNBMUlEQWdNQ0F4SURZdU1EVXpJRFl1TURVeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQTJMakYyTWk0eU5ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFMalVnTVRVdU5UY3hMUzQ1TmpRdU9UWTBZVFVnTlNBd0lEQWdNUzAzTGpBM01TQXdJRFVnTlNBd0lEQWdNU0F3TFRjdU1EZHNMamsyTkMwdU9UWTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUEzVmpOaE1TQXhJREFnTUNBeElERXVOekEzTFM0M01EY2dNaTQxSURJdU5TQXdJREFnTUNBeUxqRTFNaTQzTVRjZ01TQXhJREFnTUNBeElERXVNVE14SURFdU1UTXhJREl1TlNBeUxqVWdNQ0F3SURBZ0xqY3hOeUF5TGpFMU1rRXhJREVnTUNBd0lERWdNakVnT0dndE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTNkalJoTVNBeElEQWdNQ0F4TFRFdU56QTNMamN3TnlBeUxqVWdNaTQxSURBZ01DQXdMVEl1TVRVeUxTNDNNVGNnTVNBeElEQWdNQ0F4TFRFdU1UTXhMVEV1TVRNeElESXVOU0F5TGpVZ01DQXdJREF0TGpjeE55MHlMakUxTWtFeElERWdNQ0F3SURFZ015QXhObWcwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FuZHktb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FuZHlPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTB2Ny45JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExLjgwMiA2LjE0NWE1IDUgMCAwIDEgNi4wNTMgNi4wNTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNi4xdjIuMjQzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1LjUgMTUuNTcxLS45NjQuOTY0YTUgNSAwIDAgMS03LjA3MSAwIDUgNSAwIDAgMSAwLTcuMDdsLjk2NC0uOTY1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTggMTd2NGExIDEgMCAwIDEtMS43MDcuNzA3IDIuNSAyLjUgMCAwIDAtMi4xNTItLjcxNyAxIDEgMCAwIDEtMS4xMzEtMS4xMzEgMi41IDIuNSAwIDAgMC0uNzE3LTIuMTUyQTEgMSAwIDAgMSAzIDE2aDQnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYW5keU9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYW5keVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTjNZeE1DNDVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0EyTGpGV01UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRGRXTTJFeElERWdNQ0F3SURFZ01TNDNNRGN0TGpjd055QXlMalVnTWk0MUlEQWdNQ0F3SURJdU1UVXlMamN4TnlBeElERWdNQ0F3SURFZ01TNHhNekVnTVM0eE16RWdNaTQxSURJdU5TQXdJREFnTUNBdU56RTNJREl1TVRVeVFURWdNU0F3SURBZ01TQXlNU0E0YUMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pNDFNellnTnk0ME5qVmhOU0ExSURBZ01DQXdMVGN1TURjeUlEQnNMVElnTW1FMUlEVWdNQ0F3SURBZ01DQTNMakEzSURVZ05TQXdJREFnTUNBM0xqQTNNaUF3YkRJdE1tRTFJRFVnTUNBd0lEQWdNQzAzTGpBM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTNkalJoTVNBeElEQWdNQ0F4TFRFdU56QTNMamN3TnlBeUxqVWdNaTQxSURBZ01DQXdMVEl1TVRVeUxTNDNNVGNnTVNBeElEQWdNQ0F4TFRFdU1UTXhMVEV1TVRNeElESXVOU0F5TGpVZ01DQXdJREF0TGpjeE55MHlMakUxTWtFeElERWdNQ0F3SURFZ015QXhObWcwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FuZHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYW5keTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCA3djEwLjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNi4xVjE3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYuNTM2IDcuNDY1YTUgNSAwIDAgMC03LjA3MiAwbC0yIDJhNSA1IDAgMCAwIDAgNy4wNyA1IDUgMCAwIDAgNy4wNzIgMGwyLTJhNSA1IDAgMCAwIDAtNy4wNycsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTggMTd2NGExIDEgMCAwIDEtMS43MDcuNzA3IDIuNSAyLjUgMCAwIDAtMi4xNTItLjcxNyAxIDEgMCAwIDEtMS4xMzEtMS4xMzEgMi41IDIuNSAwIDAgMC0uNzE3LTIuMTUyQTEgMSAwIDAgMSAzIDE2aDQnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYW5keTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYW5uYWJpcy1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qSjJMVFJqTVM0MUlERXVOU0F6TGpVZ015QTJJRE1nTUMweExqVXRMalV0TXk0MUxUSXROU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE11T1RnNElEZ3VNekkzUXpFekxqa3dNaUEyTGpBMU5DQXhNeTR6TmpVZ015NDRNaUF4TWlBeVlUa3VNeUE1TGpNZ01DQXdJREF0TVM0ME5EVWdNaTQ1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tnk0ek56VWdNVEV1TnpJMVF6RTRMamc0TWlBeE1DNDFNeUF5TVNBM0xqZzBNU0F5TVNBMll5MHlMak15TkNBd0xUVXVNRGdnTVM0eU9UWXROaTQyTmpJZ01pNDJPRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakV1TURJMElERTFMak0zT0VFeE5TQXhOU0F3SURBZ01DQXlNaUF4TldNdExqUXlOaTB4TGpJM09TMHlMalkzTFRJdU5UVTNMVFF1TWpVdE1pNDVNRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFl1T1RrMUlEWXVPVGt5UXpVdU56RTBJRFl1TkNBMExqSTVJRFlnTXlBMll6QWdNaUF5TGpVZ05TQTBJRFl0TVM0MUlEQXROQzQxSURFdU5TMDFJRE1nTXk0MUlERXVOU0EySURFZ05pQXhMVEV1TlNBeExqVXRNaUF6TGpVdE1pQTFJREl1TlNBd0lEUXVOUzB4TGpVZ05pMHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYW5uYWJpcy1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYW5uYWJpc09mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnYtNGMxLjUgMS41IDMuNSAzIDYgMyAwLTEuNS0uNS0zLjUtMi01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzLjk4OCA4LjMyN0MxMy45MDIgNi4wNTQgMTMuMzY1IDMuODIgMTIgMmE5LjMgOS4zIDAgMCAwLTEuNDQ1IDIuOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy4zNzUgMTEuNzI1QzE4Ljg4MiAxMC41MyAyMSA3Ljg0MSAyMSA2Yy0yLjMyNCAwLTUuMDggMS4yOTYtNi42NjIgMi42ODQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjAyNCAxNS4zNzhBMTUgMTUgMCAwIDAgMjIgMTVjLS40MjYtMS4yNzktMi42Ny0yLjU1Ny00LjI1LTIuOTA3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYuOTk1IDYuOTkyQzUuNzE0IDYuNCA0LjI5IDYgMyA2YzAgMiAyLjUgNSA0IDYtMS41IDAtNC41IDEuNS01IDMgMy41IDEuNSA2IDEgNiAxLTEuNSAxLjUtMiAzLjUtMiA1IDIuNSAwIDQuNS0xLjUgNi0zJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FubmFiaXNPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2FubmFiaXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qSjJMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRKakxURXVOU0F3TFRRdU5TQXhMalV0TlNBeklETXVOU0F4TGpVZ05pQXhJRFlnTVMweExqVWdNUzQxTFRJZ015NDFMVElnTlNBeUxqVWdNQ0EwTGpVdE1TNDFJRFl0TXlBeExqVWdNUzQxSURNdU5TQXpJRFlnTXlBd0xURXVOUzB1TlMwekxqVXRNaTAxSURBZ01DQXlMalV1TlNBMkxURXRMalV0TVM0MUxUTXVOUzB6TFRVdE15QXhMalV0TVNBMExUUWdOQzAyTFRJdU5TQXdMVFV1TlNBeExqVXROeUF6SURBdE1pNDFMUzQxTFRVdE1pMDNMVEV1TlNBeUxUSWdOQzQxTFRJZ055MHhMalV0TVM0MUxUUXVOUzB6TFRjdE15QXdJRElnTWk0MUlEVWdOQ0EySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FubmFiaXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYW5uYWJpczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnYtNCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ003IDEyYy0xLjUgMC00LjUgMS41LTUgMyAzLjUgMS41IDYgMSA2IDEtMS41IDEuNS0yIDMuNS0yIDUgMi41IDAgNC41LTEuNSA2LTMgMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSAwIDAgMi41LjUgNi0xLS41LTEuNS0zLjUtMy01LTMgMS41LTEgNC00IDQtNi0yLjUgMC01LjUgMS41LTcgMyAwLTIuNS0uNS01LTItNy0xLjUgMi0yIDQuNS0yIDctMS41LTEuNS00LjUtMy03LTMgMCAyIDIuNSA1IDQgNicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhbm5hYmlzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhcHRpb25zLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TlNBMVNERTVZVElnTWlBd0lEQWdNU0F5SURKMk9DNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF4TVdndExqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREU1U0RWaE1pQXlJREFnTUNBeExUSXRNbFkzWVRJZ01pQXdJREFnTVNBeUxUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNaUF5TUNBeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhNV2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFMWFESXVOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FwdGlvbnMtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FwdGlvbnNPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuNSA1SDE5YTIgMiAwIDAgMSAyIDJ2OC41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDExaC0uNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxOUg1YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDExaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNWgyLjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FwdGlvbnNPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2FwdGlvbnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVFFpSUhnOUlqTWlJSGs5SWpVaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TldnMFRURTFJREUxYURKTk55QXhNV2d5VFRFeklERXhhRFFpSUM4K0Nqd3ZjM1puUGc9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FwdGlvbnNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYXB0aW9uczogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE0JywgeDogJzMnLCB5OiAnNScsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE1aDRNMTUgMTVoMk03IDExaDJNMTMgMTFoNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYXB0aW9ucztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYXItZnJvbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ09DMHlJREl0TVM0MUxUTXVOMEV5SURJZ01DQXdJREFnTVRVdU5qUTJJRFZJT0M0MFlUSWdNaUF3SURBZ01DMHhMamt3TXlBeExqSTFOMHcxSURFd0lETWdPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TkdndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREUwYUM0d01TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpT0NJZ2VEMGlNeUlnZVQwaU1UQWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlERTRkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURFNGRqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYXItZnJvbnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYXJGcm9udDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yMSA4LTIgMi0xLjUtMy43QTIgMiAwIDAgMCAxNS42NDYgNUg4LjRhMiAyIDAgMCAwLTEuOTAzIDEuMjU3TDUgMTAgMyA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTRoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE0aC4wMScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzgnLCB4OiAnMycsIHk6ICcxMCcsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE4djInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTh2MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYXJGcm9udDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYXItdGF4aS1mcm9udFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTW1nMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TQTRMVElnTWkweExqVXRNeTQzUVRJZ01pQXdJREFnTUNBeE5TNDJORFlnTlVnNExqUmhNaUF5SURBZ01DQXdMVEV1T1RBeklERXVNalUzVERVZ01UQWdNeUE0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFMGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRSb0xqQXhJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4T0NJZ2FHVnBaMmgwUFNJNElpQjRQU0l6SWlCNVBTSXhNQ0lnY25nOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNVGgyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01UaDJNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FyLXRheGktZnJvbnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYXJUYXhpRnJvbnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMmg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDgtMiAyLTEuNS0zLjdBMiAyIDAgMCAwIDE1LjY0NiA1SDguNGEyIDIgMCAwIDAtMS45MDMgMS4yNTdMNSAxMCAzIDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTRoLjAxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnOCcsIHg6ICczJywgeTogJzEwJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTh2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxOHYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhclRheGlGcm9udDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01UZG9NbU11TmlBd0lERXRMalFnTVMweGRpMHpZekF0TGprdExqY3RNUzQzTFRFdU5TMHhMamxETVRndU55QXhNQzQySURFMklERXdJREUySURFd2N5MHhMak10TVM0MExUSXVNaTB5TGpOakxTNDFMUzQwTFRFdU1TMHVOeTB4TGpndExqZElOV010TGpZZ01DMHhMakV1TkMweExqUXVPV3d0TVM0MElESXVPVUV6TGpjZ015NDNJREFnTUNBd0lESWdNVEoyTkdNd0lDNDJMalFnTVNBeElERm9NaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kzSWlCamVUMGlNVGNpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVGRvTmlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE55SWdZM2s5SWpFM0lpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FyOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE5IDE3aDJjLjYgMCAxLS40IDEtMXYtM2MwLS45LS43LTEuNy0xLjUtMS45QzE4LjcgMTAuNiAxNiAxMCAxNiAxMHMtMS4zLTEuNC0yLjItMi4zYy0uNS0uNC0xLjEtLjctMS44LS43SDVjLS42IDAtMS4xLjQtMS40LjlsLTEuNCAyLjlBMy43IDMuNyAwIDAgMCAyIDEydjRjMCAuNi40IDEgMSAxaDInLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzcnLCBjeTogJzE3JywgcjogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxN2g2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcnLCBjeTogJzE3JywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhcmF2YW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01UbFdPV0UwSURRZ01DQXdJREF0TkMwMFNEWmhOQ0EwSURBZ01DQXdMVFFnTkhZNFlUSWdNaUF3SURBZ01DQXlJREpvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBNWFETmhNU0F4SURBZ01DQXhJREVnTVhZeVlURWdNU0F3SURBZ01TMHhJREZJTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UZDJNV0V4SURFZ01DQXdJREV0TVNBeFNERXdkaTA1WVRFZ01TQXdJREFnTVNBeExURm9NbUV4SURFZ01DQXdJREVnTVNBeGRqa2lJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlPQ0lnWTNrOUlqRTVJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhcmF2YW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYXJhdmFuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE5VjlhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2OGEyIDIgMCAwIDAgMiAyaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA5aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxN3YxYTEgMSAwIDAgMS0xIDFIMTB2LTlhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2OScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzgnLCBjeTogJzE5JywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2FyYXZhbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYXJkLXNpbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRSMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVNVGN5SURKaE1pQXlJREFnTUNBeElERXVOREUwTGpVNE5td3pMamd5T0NBekxqZ3lPRUV5SURJZ01DQXdJREVnTWpBZ055NDRNamhXTWpCaE1pQXlJREFnTUNBeExUSWdNa2cyWVRJZ01pQXdJREFnTVMweUxUSldOR0V5SURJZ01DQXdJREVnTWkweWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhOR2c0SWlBdlBnb2dJRHh5WldOMElIZzlJamdpSUhrOUlqRXdJaUIzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0k0SWlCeWVEMGlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FyZC1zaW1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYXJkU2ltOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0djQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4NmwzLjgyOCAzLjgyOEEyIDIgMCAwIDEgMjAgNy44MjhWMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTRoOCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzgnLCB5OiAnMTAnLCB3aWR0aDogJzgnLCBoZWlnaHQ6ICc4Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhcmRTaW07XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2Fycm90XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNHlOeUF5TVM0M2N6a3VPRGN0TXk0MUlERXlMamN6TFRZdU16WmhOQzQxSURRdU5TQXdJREFnTUMwMkxqTTJMVFl1TXpkRE5TNDNOeUF4TVM0NE5DQXlMakkzSURJeExqY2dNaTR5TnlBeU1TNDNlazA0TGpZMElERTBiQzB5TGpBMUxUSXVNRFJOTVRVdU16UWdNVFZzTFRJdU5EWXRNaTQwTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ09YTXRNUzR6TXkweUxUTXVOUzB5UXpFMkxqZzJJRGNnTVRVZ09TQXhOU0E1Y3pFdU16TWdNaUF6TGpVZ01sTXlNaUE1SURJeUlEbDZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F5Y3kweUlERXVNek10TWlBekxqVlRNVFVnT1NBeE5TQTVjekl0TVM0NE5DQXlMVE11TlVNeE55QXpMak16SURFMUlESWdNVFVnTW5vaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NhcnJvdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENhcnJvdDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjI3IDIxLjdzOS44Ny0zLjUgMTIuNzMtNi4zNmE0LjUgNC41IDAgMCAwLTYuMzYtNi4zN0M1Ljc3IDExLjg0IDIuMjcgMjEuNyAyLjI3IDIxLjd6TTguNjQgMTRsLTIuMDUtMi4wNE0xNS4zNCAxNWwtMi40Ni0yLjQ2JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgOXMtMS4zMy0yLTMuNS0yQzE2Ljg2IDcgMTUgOSAxNSA5czEuMzMgMiAzLjUgMlMyMiA5IDIyIDl6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJzLTIgMS4zMy0yIDMuNVMxNSA5IDE1IDlzMi0xLjg0IDItMy41QzE3IDMuMzMgMTUgMiAxNSAyeicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYXJyb3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2FzZS1sb3dlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnT1hZM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQTJkakV3SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFM0xqVWlJR041UFNJeE1pNDFJaUJ5UFNJekxqVWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOaTQxSWlCamVUMGlNVEl1TlNJZ2NqMGlNeTQxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FzZS1sb3dlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENhc2VMb3dlcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCA5djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNnYxMCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE3LjUnLCBjeTogJzEyLjUnLCByOiAnMy41JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNi41JywgY3k6ICcxMi41JywgcjogJzMuNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYXNlTG93ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2FzZS1zZW5zaXRpdmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeE5pQTBMakF6T1MwNUxqWTVZUzQxTGpVZ01DQXdJREVnTGpreU15QXdUREV4SURFMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQTVkamNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE11TXpBMElERXphRFl1TXpreUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTRMalVpSUdONVBTSXhNaTQxSWlCeVBTSXpMalVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2FzZS1zZW5zaXRpdmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYXNlU2Vuc2l0aXZlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA5djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy4zMDQgMTNoNi4zOTInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOC41JywgY3k6ICcxMi41JywgcjogJzMuNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYXNlU2Vuc2l0aXZlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNhc2UtdXBwZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01URm9OQzQxWVRFZ01TQXdJREFnTVNBd0lEVm9MVFJoTGpVdU5TQXdJREFnTVMwdU5TMHVOWFl0T1dFdU5TNDFJREFnTUNBeElDNDFMUzQxYUROaE1TQXhJREFnTUNBeElEQWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF4TmlBMExqQXpPUzA1TGpZNVlTNDFMalVnTUNBd0lERWdMamt5TXlBd1RERXhJREUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6TGpNd05DQXhNMmcyTGpNNU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYXNlLXVwcGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2FzZVVwcGVyOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTUgMTFoNC41YTEgMSAwIDAgMSAwIDVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtOWEuNS41IDAgMCAxIC41LS41aDNhMSAxIDAgMCAxIDAgNScgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjMwNCAxM2g2LjM5MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYXNlVXBwZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2Fzc2V0dGUtdGFwZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UWWlJSGc5SWpJaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamdpSUdONVBTSXhNQ0lnY2owaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNbWc0SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFMklpQmplVDBpTVRBaUlISTlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFlnTWpBZ0xqY3RNaTQ1UVRFdU5DQXhMalFnTUNBd0lERWdPQzR4SURFMmFEY3VPR0V4TGpRZ01TNDBJREFnTUNBeElERXVOQ0F4YkM0M0lETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYXNzZXR0ZS10YXBlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2Fzc2V0dGVUYXBlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTYnLCB4OiAnMicsIHk6ICc0Jywgcng6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOCcsIGN5OiAnMTAnLCByOiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMTAnLCByOiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDIwIC43LTIuOUExLjQgMS40IDAgMCAxIDguMSAxNmg3LjhhMS40IDEuNCAwIDAgMSAxLjQgMWwuNyAzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhc3NldHRlVGFwZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjYXN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTRWalpoTWlBeUlEQWdNQ0F4SURJdE1tZ3hObUV5SURJZ01DQXdJREVnTWlBeWRqRXlZVElnTWlBd0lEQWdNUzB5SURKb0xUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVEpoT1NBNUlEQWdNQ0F4SURnZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhObUUxSURVZ01DQXdJREVnTkNBMElpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeUlpQjRNajBpTWk0d01TSWdlVEU5SWpJd0lpQjVNajBpTWpBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nhc3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYXN0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgOFY2YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAyaC02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJhOSA5IDAgMCAxIDggOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE2YTUgNSAwIDAgMSA0IDQnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMi4wMScsIHkxOiAnMjAnLCB5MjogJzIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhc3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2FzdGxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdOVll6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBMVZqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJREl4ZGkwellUTWdNeUF3SURBZ01DMDJJREIyTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ00zWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0ExU0RZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlERXhTRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURsMk1UQmhNaUF5SURBZ01DQXhMVElnTWtnMFlUSWdNaUF3SURBZ01TMHlMVEpXT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBemRqZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jYXN0bGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDYXN0bGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgNVYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDVWMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAyMXYtM2EzIDMgMCAwIDAtNiAwdjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggM3Y4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDVINicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMUgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDl2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDN2OCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDYXN0bGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2F0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOV011TmpjZ01DQXhMak0xTGpBNUlESWdMakkySURFdU56Z3RNaUExTGpBekxUSXVPRFFnTmk0ME1pMHlMakkySURFdU5DNDFPQzB1TkRJZ055MHVORElnTnlBdU5UY2dNUzR3TnlBeElESXVNalFnTVNBekxqUTBRekl4SURFM0xqa2dNVFl1T1RjZ01qRWdNVElnTWpGekxUa3RNeTA1TFRjdU5UWmpNQzB4TGpJMUxqVXRNaTQwSURFdE15NDBOQ0F3SURBdE1TNDRPUzAyTGpReUxTNDFMVGNnTVM0ek9TMHVOVGdnTkM0M01pNHlNeUEyTGpVZ01pNHlNMEU1TGpBMElEa3VNRFFnTUNBd0lERWdNVElnTlZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UUjJMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFMGRpNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNUzR5TlNBeE5pNHlOV2d4TGpWTU1USWdNVGRzTFM0M05TMHVOelZhSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2F0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2F0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDVjLjY3IDAgMS4zNS4wOSAyIC4yNiAxLjc4LTIgNS4wMy0yLjg0IDYuNDItMi4yNiAxLjQuNTgtLjQyIDctLjQyIDcgLjU3IDEuMDcgMSAyLjI0IDEgMy40NEMyMSAxNy45IDE2Ljk3IDIxIDEyIDIxcy05LTMtOS03LjU2YzAtMS4yNS41LTIuNCAxLTMuNDQgMCAwLTEuODktNi40Mi0uNS03IDEuMzktLjU4IDQuNzIuMjMgNi41IDIuMjNBOS4wNCA5LjA0IDAgMCAxIDEyIDVaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNHYuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNHYuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMS4yNSAxNi4yNWgxLjVMMTIgMTdsLS43NS0uNzVaJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENhdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjY3R2XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVOelVnTVRKb015NDJNekpoTVNBeElEQWdNQ0F4SUM0NE9UUWdNUzQwTkRkc0xUSXVNRE0wSURRdU1EWTVZVEVnTVNBd0lEQWdNUzB4TGpjd09DNHhNelJzTFRJdU1USTBMVEl1T1RjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqRXdOaUE1TGpBMU0yRXhJREVnTUNBd0lERWdMalEwTnlBeExqTTBNV3d0TXk0eE1EWWdOaTR5TVRGaE1TQXhJREFnTUNBeExURXVNelF5TGpRME4wd3pMall4SURFeUxqTmhNaTQ1TWlBeUxqa3lJREFnTUNBeExURXVNeTB6TGpreFRETXVOamtnTlM0MllUSXVPVElnTWk0NU1pQXdJREFnTVNBekxqa3lMVEV1TTNvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UbG9NeTQzTm1FeUlESWdNQ0F3SURBZ01TNDRMVEV1TVV3NUlERTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREl4ZGkwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lEbG9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2N0dlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENjdHY6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xNi43NSAxMmgzLjYzMmExIDEgMCAwIDEgLjg5NCAxLjQ0N2wtMi4wMzQgNC4wNjlhMSAxIDAgMCAxLTEuNzA4LjEzNGwtMi4xMjQtMi45NycgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3LjEwNiA5LjA1M2ExIDEgMCAwIDEgLjQ0NyAxLjM0MWwtMy4xMDYgNi4yMTFhMSAxIDAgMCAxLTEuMzQyLjQ0N0wzLjYxIDEyLjNhMi45MiAyLjkyIDAgMCAxLTEuMy0zLjkxTDMuNjkgNS42YTIuOTIgMi45MiAwIDAgMSAzLjkyLTEuM3onLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE5aDMuNzZhMiAyIDAgMCAwIDEuOC0xLjFMOSAxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIxdi00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgOWguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2N0djtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGFydC1hcmVhXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXpkakUyWVRJZ01pQXdJREFnTUNBeUlESm9NVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRFdU1qQTNZUzQxTGpVZ01DQXdJREVnTGpFME5pMHVNelV6YkRJdE1tRXVOUzQxSURBZ01DQXhJQzQzTURnZ01Hd3pMakk1TWlBekxqSTVNbUV1TlM0MUlEQWdNQ0F3SUM0M01EZ2dNR3cwTGpJNU1pMDBMakk1TW1FdU5TNDFJREFnTUNBeElDNDROVFF1TXpVelZqRTJZVEVnTVNBd0lEQWdNUzB4SURGSU9HRXhJREVnTUNBd0lERXRNUzB4ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWFyZWFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGFydEFyZWE6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNyAxMS4yMDdhLjUuNSAwIDAgMSAuMTQ2LS4zNTNsMi0yYS41LjUgMCAwIDEgLjcwOCAwbDMuMjkyIDMuMjkyYS41LjUgMCAwIDAgLjcwOCAwbDQuMjkyLTQuMjkyYS41LjUgMCAwIDEgLjg1NC4zNTNWMTZhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRBcmVhO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoYXJ0LWJhci1iaWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqRTJZVElnTWlBd0lEQWdNQ0F5SURKb01UWWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU55SWdlVDBpTVRNaUlIZHBaSFJvUFNJNUlpQm9aV2xuYUhROUlqUWlJSEo0UFNJeElpQXZQZ29nSUR4eVpXTjBJSGc5SWpjaUlIazlJalVpSUhkcFpIUm9QU0l4TWlJZ2FHVnBaMmgwUFNJMElpQnllRDBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWJhci1iaWdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGFydEJhckJpZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzcnLCB5OiAnMTMnLCB3aWR0aDogJzknLCBoZWlnaHQ6ICc0Jywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNycsIHk6ICc1Jywgd2lkdGg6ICcxMicsIGhlaWdodDogJzQnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRCYXJCaWc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2hhcnQtYmFyLWRlY3JlYXNpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqRTJZVElnTWlBd0lEQWdNQ0F5SURKb01UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVEZvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE5tZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJRFpvTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWJhci1kZWNyZWFzaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnRCYXJEZWNyZWFzaW5nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTFoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE2aDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA2aDEyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0QmFyRGVjcmVhc2luZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGFydC1iYXItaW5jcmVhc2luZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF6ZGpFMllUSWdNaUF3SURBZ01DQXlJREpvTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01URm9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4Tm1neE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QTJhRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtYmFyLWluY3JlYXNpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGFydEJhckluY3JlYXNpbmc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMWg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTZoMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA2aDMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRCYXJJbmNyZWFzaW5nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoYXJ0LWJhci1zdGFja2VkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVE4yTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ05YWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRE4yTVRaaE1pQXlJREFnTUNBd0lESWdNbWd4TmlJZ0x6NEtJQ0E4Y21WamRDQjRQU0kzSWlCNVBTSXhNeUlnZDJsa2RHZzlJamtpSUdobGFXZG9kRDBpTkNJZ2NuZzlJakVpSUM4K0NpQWdQSEpsWTNRZ2VEMGlOeUlnZVQwaU5TSWdkMmxrZEdnOUlqRXlJaUJvWldsbmFIUTlJalFpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1iYXItc3RhY2tlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENoYXJ0QmFyU3RhY2tlZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxM3Y0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDV2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzcnLCB5OiAnMTMnLCB3aWR0aDogJzknLCBoZWlnaHQ6ICc0Jywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNycsIHk6ICc1Jywgd2lkdGg6ICcxMicsIGhlaWdodDogJzQnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRCYXJTdGFja2VkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoYXJ0LWJhclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF6ZGpFMllUSWdNaUF3SURBZ01DQXlJREpvTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01UWm9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TVdneE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QTJhRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtYmFyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnRCYXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTFoMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA2aDMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRCYXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2hhcnQtY2FuZGxlc3RpY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT1NBMWRqUWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJalFpSUdobGFXZG9kRDBpTmlJZ2VEMGlOeUlnZVQwaU9TSWdjbmc5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UVjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTTNZeUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSTBJaUJvWldsbmFIUTlJamdpSUhnOUlqRTFJaUI1UFNJMUlpQnllRDBpTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UTjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF6ZGpFMllUSWdNaUF3SURBZ01DQXlJREpvTVRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWNhbmRsZXN0aWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnRDYW5kbGVzdGljazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ005IDV2NCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc0JywgaGVpZ2h0OiAnNicsIHg6ICc3JywgeTogJzknLCByeDogJzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNXYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDN2MicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc0JywgaGVpZ2h0OiAnOCcsIHg6ICcxNScsIHk6ICc1Jywgcng6ICcxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEzdjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRDYW5kbGVzdGljaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGFydC1jb2x1bW4tYmlnXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXpkakUyWVRJZ01pQXdJREFnTUNBeUlESm9NVFlpSUM4K0NpQWdQSEpsWTNRZ2VEMGlNVFVpSUhrOUlqVWlJSGRwWkhSb1BTSTBJaUJvWldsbmFIUTlJakV5SWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCNFBTSTNJaUI1UFNJNElpQjNhV1IwYUQwaU5DSWdhR1ZwWjJoMFBTSTVJaUJ5ZUQwaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1jb2x1bW4tYmlnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnRDb2x1bW5CaWc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxNScsIHk6ICc1Jywgd2lkdGg6ICc0JywgaGVpZ2h0OiAnMTInLCByeDogJzEnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc3JywgeTogJzgnLCB3aWR0aDogJzQnLCBoZWlnaHQ6ICc5Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0Q29sdW1uQmlnO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoYXJ0LWNvbHVtbi1kZWNyZWFzaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNVGRXT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01UZDJMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTTNZeE5tRXlJRElnTUNBd0lEQWdNaUF5YURFMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTNWalVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtY29sdW1uLWRlY3JlYXNpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGFydENvbHVtbkRlY3JlYXNpbmc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTdWOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxN3YtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE3VjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRDb2x1bW5EZWNyZWFzaW5nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoYXJ0LWNvbHVtbi1pbmNyZWFzaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNVGRXT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01UZFdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF6ZGpFMllUSWdNaUF3SURBZ01DQXlJREpvTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UZDJMVE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtY29sdW1uLWluY3JlYXNpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGFydENvbHVtbkluY3JlYXNpbmc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTdWOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxN1Y1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTd2LTMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRDb2x1bW5JbmNyZWFzaW5nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoYXJ0LWNvbHVtbi1zdGFja2VkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVE5JTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ09XZ3ROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF6ZGpFMllUSWdNaUF3SURBZ01DQXlJREpvTVRZaUlDOCtDaUFnUEhKbFkzUWdlRDBpTVRVaUlIazlJalVpSUhkcFpIUm9QU0kwSWlCb1pXbG5hSFE5SWpFeUlpQnllRDBpTVNJZ0x6NEtJQ0E4Y21WamRDQjRQU0kzSWlCNVBTSTRJaUIzYVdSMGFEMGlOQ0lnYUdWcFoyaDBQU0k1SWlCeWVEMGlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtY29sdW1uLXN0YWNrZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGFydENvbHVtblN0YWNrZWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTNINycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA5aC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMTUnLCB5OiAnNScsIHdpZHRoOiAnNCcsIGhlaWdodDogJzEyJywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNycsIHk6ICc4Jywgd2lkdGg6ICc0JywgaGVpZ2h0OiAnOScsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGFydENvbHVtblN0YWNrZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2hhcnQtY29sdW1uXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXpkakUyWVRJZ01pQXdJREFnTUNBeUlESm9NVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFM1Zqa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpJREUzVmpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UZDJMVE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtY29sdW1uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnRDb2x1bW46IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTdWOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxN1Y1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTd2LTMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRDb2x1bW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2hhcnQtZ2FudHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ05tZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4Tm1nMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklETjJNVFpoTWlBeUlEQWdNQ0F3SURJZ01tZ3hOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TVdnM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LWdhbnR0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnRHYW50dDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCA2aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDExaDcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRHYW50dDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGFydC1saW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXpkakUyWVRJZ01pQXdJREFnTUNBeUlESm9NVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU1SURrdE5TQTFMVFF0TkMweklETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnRMaW5lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5IDktNSA1LTQtNC0zIDMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcnRMaW5lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoYXJ0LW5ldHdvcmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRNdU1URWdOeTQyTmpRZ01TNDNPQ0F5TGpZM01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUXVNVFl5SURFeUxqYzRPQzB6TGpNeU5DQXhMalF5TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpBZ05DMDJMakEySURFdU5URTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRE4yTVRaaE1pQXlJREFnTUNBd0lESWdNbWd4TmlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpZaUlISTlJaklpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRZaUlHTjVQU0l4TWlJZ2NqMGlNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0k1SWlCamVUMGlNVFVpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1uZXR3b3JrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnROZXR3b3JrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEzLjExIDcuNjY0IDEuNzggMi42NzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuMTYyIDEyLjc4OC0zLjMyNCAxLjQyNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMCA0LTYuMDYgMS41MTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnNicsIHI6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzEyJywgcjogJzInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICcxNScsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0TmV0d29yaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGFydC1uby1heGVzLWNvbHVtbi1kZWNyZWFzaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXlNVll6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeU1WWTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F5TVhZdE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1kZWNyZWFzaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMjFWMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMVY5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDIxdi02JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0Tm9BeGVzQ29sdW1uRGVjcmVhc2luZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGFydC1uby1heGVzLWNvbHVtbi1pbmNyZWFzaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXlNWFl0TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qRldPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTWpGV015SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1pbmNyZWFzaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnROb0F4ZXNDb2x1bW5JbmNyZWFzaW5nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMjF2LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjFWOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAyMVYzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0Tm9BeGVzQ29sdW1uSW5jcmVhc2luZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGFydC1uby1heGVzLWNvbHVtblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F5TVhZdE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakZXTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01qRldPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtbm8tYXhlcy1jb2x1bW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGFydE5vQXhlc0NvbHVtbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDIxdi02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIxVjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMjFWOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGFydE5vQXhlc0NvbHVtbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGFydC1uby1heGVzLWNvbWJpbmVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFoyTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UUjJOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRCMk1URWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJRE10T0M0Mk5EWWdPQzQyTkRaaExqVXVOU0F3SURBZ01TMHVOekE0SURCTU9TNHpOVFFnT0M0ek5UUmhMalV1TlNBd0lEQWdNQzB1TnpBM0lEQk1NaUF4TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9IWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREUwZGpjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoYXJ0LW5vLWF4ZXMtY29tYmluZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGFydE5vQXhlc0NvbWJpbmVkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2djUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMHYxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAzLTguNjQ2IDguNjQ2YS41LjUgMCAwIDEtLjcwOCAwTDkuMzU0IDguMzU0YS41LjUgMCAwIDAtLjcwNyAwTDIgMTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxOHYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTR2NycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGFydE5vQXhlc0NvbWJpbmVkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoYXJ0LW5vLWF4ZXMtZ2FudHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBMWFERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREV5YURFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhPV2c0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtbm8tYXhlcy1nYW50dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENoYXJ0Tm9BeGVzR2FudHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiA1aDEyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTloOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGFydE5vQXhlc0dhbnR0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoYXJ0LXBpZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKakxqVTFNaUF3SURFdU1EQTFMUzQwTkRrdU9UVXRMams1T0dFeE1DQXhNQ0F3SURBZ01DMDRMamsxTXkwNExqazFNV010TGpVMUxTNHdOVFV0TGprNU9DNHpPVGd0TGprNU9DNDVOWFk0WVRFZ01TQXdJREFnTUNBeElERjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzR5TVNBeE5TNDRPVUV4TUNBeE1DQXdJREVnTVNBNElESXVPRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hhcnQtcGllXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnRQaWU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgMTJjLjU1MiAwIDEuMDA1LS40NDkuOTUtLjk5OGExMCAxMCAwIDAgMC04Ljk1My04Ljk1MWMtLjU1LS4wNTUtLjk5OC4zOTgtLjk5OC45NXY4YTEgMSAwIDAgMCAxIDF6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEuMjEgMTUuODlBMTAgMTAgMCAxIDEgOCAyLjgzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0UGllO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoYXJ0LXNjYXR0ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJM0xqVWlJR041UFNJM0xqVWlJSEk5SWk0MUlpQm1hV3hzUFNKamRYSnlaVzUwUTI5c2IzSWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVGd1TlNJZ1kzazlJalV1TlNJZ2NqMGlMalVpSUdacGJHdzlJbU4xY25KbGJuUkRiMnh2Y2lJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1TNDFJaUJqZVQwaU1URXVOU0lnY2owaUxqVWlJR1pwYkd3OUltTjFjbkpsYm5SRGIyeHZjaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kzTGpVaUlHTjVQU0l4Tmk0MUlpQnlQU0l1TlNJZ1ptbHNiRDBpWTNWeWNtVnVkRU52Ykc5eUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTNMalVpSUdONVBTSXhOQzQxSWlCeVBTSXVOU0lnWm1sc2JEMGlZM1Z5Y21WdWRFTnZiRzl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SUROMk1UWmhNaUF5SURBZ01DQXdJRElnTW1neE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1zY2F0dGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hhcnRTY2F0dGVyOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNy41JywgY3k6ICc3LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTguNScsIGN5OiAnNS41JywgcjogJy41JywgZmlsbDogJ2N1cnJlbnRDb2xvcicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzExLjUnLCBjeTogJzExLjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNy41JywgY3k6ICcxNi41JywgcjogJy41JywgZmlsbDogJ2N1cnJlbnRDb2xvcicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE3LjUnLCBjeTogJzE0LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoYXJ0U2NhdHRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGFydC1zcGxpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqRTJZVElnTWlBd0lEQWdNQ0F5SURKb01UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVFpqTGpVdE1pQXhMalV0TnlBMExUY2dNaUF3SURJZ015QTBJRE1nTWk0MUlEQWdOQzQxTFRVZ05TMDNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGFydC1zcGxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGFydFNwbGluZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE2Yy41LTIgMS41LTcgNC03IDIgMCAyIDMgNCAzIDIuNSAwIDQuNS01IDUtNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGFydFNwbGluZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGVjay1jaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTmlBM0lERTNiQzAxTFRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeUlERXdMVGN1TlNBM0xqVk1NVE1nTVRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZWNrLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hlY2tDaGVjazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCA2IDcgMTdsLTUtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAxMC03LjUgNy41TDEzIDE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrQ2hlY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2hlY2stbGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTkV3NUlERTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4T1V3eklERTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREUxVERRZ01UQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGVjay1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hlY2tMaW5lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIwIDRMOSAxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOUwzIDE5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTVMNCAxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGVja0xpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ05pQTVJREUzYkMwMUxUVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENoZWNrOiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdNMjAgNiA5IDE3bC01LTUnIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hlY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2hlZi1oYXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01qRmhNU0F4SURBZ01DQXdJREV0TVhZdE5TNHpOV013TFM0ME5UY3VNekUyTFM0NE5EUXVOekkzTFRFdU1EUXhZVFFnTkNBd0lEQWdNQzB5TGpFek5DMDNMalU0T1NBMUlEVWdNQ0F3SURBdE9TNHhPRFlnTUNBMElEUWdNQ0F3SURBdE1pNHhNelFnTnk0MU9EaGpMalF4TVM0eE9UZ3VOekkzTGpVNE5TNDNNamNnTVM0d05ERldNakJoTVNBeElEQWdNQ0F3SURFZ01Wb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVGRvTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZWYtaGF0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hlZkhhdDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNyAyMWExIDEgMCAwIDAgMS0xdi01LjM1YzAtLjQ1Ny4zMTYtLjg0NC43MjctMS4wNDFhNCA0IDAgMCAwLTIuMTM0LTcuNTg5IDUgNSAwIDAgMC05LjE4NiAwIDQgNCAwIDAgMC0yLjEzNCA3LjU4OGMuNDExLjE5OC43MjcuNTg1LjcyNyAxLjA0MVYyMGExIDEgMCAwIDAgMSAxWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTdoMTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hlZkhhdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGVycnlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE4yRTFJRFVnTUNBd0lEQWdNVEFnTUdNd0xUSXVOell0TWk0MUxUVXROUzB6TFRJdU5TMHlMVFVnTGpJMExUVWdNMW9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFM1lUVWdOU0F3SURBZ01DQXhNQ0F3WXpBdE1pNDNOaTB5TGpVdE5TMDFMVE10TWk0MUxUSXROU0F1TWpRdE5TQXpXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TkdNekxqSXlMVEl1T1RFZ05DNHlPUzA0TGpjMUlEVXRNVElnTVM0Mk5pQXlMak00SURRdU9UUWdPU0ExSURFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQTVZeTAwTGpJNUlEQXROeTR4TkMweUxqTXpMVEV3TFRjZ05TNDNNU0F3SURFd0lEUXVOamNnTVRBZ04xb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGVycnlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGVycnk6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTdhNSA1IDAgMCAwIDEwIDBjMC0yLjc2LTIuNS01LTUtMy0yLjUtMi01IC4yNC01IDNaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTRjMy4yMi0yLjkxIDQuMjktOC43NSA1LTEyIDEuNjYgMi4zOCA0Ljk0IDkgNSAxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA5Yy00LjI5IDAtNy4xNC0yLjMzLTEwLTcgNS43MSAwIDEwIDQuNjcgMTAgN1onIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hlcnJ5O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoZXNzLWJpc2hvcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F5TUdFeUlESWdNQ0F3SURFZ01pMHlhREV3WVRJZ01pQXdJREFnTVNBeUlESjJNV0V4SURFZ01DQXdJREV0TVNBeFNEWmhNU0F4SURBZ01DQXhMVEV0TVhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERTRZekV1TlMwdU5qRTFJRE10TWk0ME5qRWdNeTAwTGpreU0wTXhPQ0E0TGpjMk9TQXhOQzQxSURRdU5EWXlJREV5SURJZ09TNDFJRFF1TkRZeUlEWWdPQzQzTnlBMklERXpMakEzTnlBMklERTFMalV6T1NBM0xqVWdNVGN1TXpnMUlEa2dNVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUySURjdE1pNDFJREl1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeWFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGVzcy1iaXNob3BcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGVzc0Jpc2hvcDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNSAxOGMxLjUtLjYxNSAzLTIuNDYxIDMtNC45MjNDMTggOC43NjkgMTQuNSA0LjQ2MiAxMiAyIDkuNSA0LjQ2MiA2IDguNzcgNiAxMy4wNzcgNiAxNS41MzkgNy41IDE3LjM4NSA5IDE4JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgNy0yLjUgMi41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMmg2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoZXNzQmlzaG9wO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoZXNzLWtpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1HRXlJRElnTUNBd0lERWdNaTB5YURFeVlUSWdNaUF3SURBZ01TQXlJREoyTVdFeElERWdNQ0F3SURFdE1TQXhTRFZoTVNBeElEQWdNQ0F4TFRFdE1Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUWXVOeUF4T0MweExURkROQzR6TlNBeE5TNDJPRElnTXlBeE5DNHdPU0F6SURFeVlUVWdOU0F3SURBZ01TQTBMamsxTFRWak1TNDFPRFFnTUNBeUxqY3VORFUxSURRdU1EVWdNUzQ0TVRoRE1UTXVNelVnTnk0ME5UVWdNVFF1TkRZMklEY2dNVFl1TURVZ04wRTFJRFVnTUNBd0lERWdNakVnTVRKak1DQXlMakE0TWkweExqTTFPU0F6TGpZM015MHlMamNnTld3dE1TQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0EwYURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlESjJOaTQ0TVRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXNzLWtpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGVzc0tpbmc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXonIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtNi43IDE4LTEtMUM0LjM1IDE1LjY4MiAzIDE0LjA5IDMgMTJhNSA1IDAgMCAxIDQuOTUtNWMxLjU4NCAwIDIuNy40NTUgNC4wNSAxLjgxOEMxMy4zNSA3LjQ1NSAxNC40NjYgNyAxNi4wNSA3QTUgNSAwIDAgMSAyMSAxMmMwIDIuMDgyLTEuMzU5IDMuNjczLTIuNyA1bC0xIDEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA0aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnY2LjgxOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGVzc0tpbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2hlc3Mta25pZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXlNR0V5SURJZ01DQXdJREVnTWkweWFERXdZVElnTWlBd0lEQWdNU0F5SURKMk1XRXhJREVnTUNBd0lERXRNU0F4U0RaaE1TQXhJREFnTUNBeExURXRNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUyTGpVZ01UaGpNUzB5SURJdU5TMDFJREl1TlMwNVlUY2dOeUF3SURBZ01DMDNMVGRJTmk0Mk16VmhNU0F4SURBZ01DQXdMUzQzTmpnZ01TNDJORXczSURWc0xUSXVNeklnTlM0NE1ESmhNaUF5SURBZ01DQXdJQzQ1TlNBeUxqVXlObXd5TGpnM0lERXVORFUySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlNBMUlERXVOREkxTFRFdU5ESTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOeUE0SURFdU5UTXRNUzQxTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0M01UTWdNVEl1TVRnMUlEY2dNVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hlc3Mta25pZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hlc3NLbmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXonIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYuNSAxOGMxLTIgMi41LTUgMi41LTlhNyA3IDAgMCAwLTctN0g2LjYzNWExIDEgMCAwIDAtLjc2OCAxLjY0TDcgNWwtMi4zMiA1LjgwMmEyIDIgMCAwIDAgLjk1IDIuNTI2bDIuODcgMS40NTYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA1IDEuNDI1LTEuNDI1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDggMS41My0xLjUzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuNzEzIDEyLjE4NSA3IDE4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoZXNzS25pZ2h0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoZXNzLXBhd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeU1HRXlJRElnTUNBd0lERWdNaTB5YURFd1lUSWdNaUF3SURBZ01TQXlJREoyTVdFeElERWdNQ0F3SURFdE1TQXhTRFpoTVNBeElEQWdNQ0F4TFRFdE1Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBMalVnTVRBZ01TNDFJRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRCb01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUZ2dNVGdnTVM0MUxUZ2lJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVElpSUdONVBTSTJJaUJ5UFNJMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXNzLXBhd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGVzc1Bhd246IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSAxMCAxLjUgOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEwaDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTggMS41LTgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnNicsIHI6ICc0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoZXNzUGF3bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGVzcy1xdWVlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TUdFeUlESWdNQ0F3SURFZ01pMHlhREV5WVRJZ01pQXdJREFnTVNBeUlESjJNV0V4SURFZ01DQXdJREV0TVNBeFNEVmhNU0F4SURBZ01DQXhMVEV0TVhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeUxqUTNOQ0ExTGprME15QXhMalUyTnlBMUxqTTBZVEVnTVNBd0lEQWdNQ0F4TGpjMUxqTXlPR3d5TGpZeE5pMHpMalF3TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpBZ09TMHpJRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFV1TlRrMElEZ3VNakE1SURJdU5qRTFJRE11TkRBellURWdNU0F3SURBZ01DQXhMamMxTFM0ek1qbHNNUzQxTmpjdE5TNHpOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4T0NBMElEa2lJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVElpSUdONVBTSTBJaUJ5UFNJeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqSXdJaUJqZVQwaU55SWdjajBpTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJMElpQmplVDBpTnlJZ2NqMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hlc3MtcXVlZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGVzc1F1ZWVuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMjBhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyLjQ3NCA1Ljk0MyAxLjU2NyA1LjM0YTEgMSAwIDAgMCAxLjc1LjMyOGwyLjYxNi0zLjQwMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMCA5LTMgOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201LjU5NCA4LjIwOSAyLjYxNSAzLjQwM2ExIDEgMCAwIDAgMS43NS0uMzI5bDEuNTY3LTUuMzQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxOCA0IDknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnNCcsIHI6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMjAnLCBjeTogJzcnLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzQnLCBjeTogJzcnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGVzc1F1ZWVuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoZXZyb24tZG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROaUE1SURZZ05pQTJMVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbi1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hldnJvbkRvd246IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ202IDkgNiA2IDYtNicgfV1dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uRG93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGV2cm9uLWZpcnN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNVGd0TmkwMklEWXROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUEyZGpFeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXZyb24tZmlyc3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaGV2cm9uRmlyc3Q6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMTgtNi02IDYtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDZ2MTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvbkZpcnN0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoZXNzLXJvb2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeU1HRXlJRElnTUNBd0lERWdNaTB5YURFd1lUSWdNaUF3SURBZ01TQXlJREoyTVdFeElERWdNQ0F3SURFdE1TQXhTRFpoTVNBeElEQWdNQ0F4TFRFdE1Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREoyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOeUF4T0MweExUa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNblkxWVRJZ01pQXdJREFnTUNBeUlESm9PR0V5SURJZ01DQXdJREFnTWkweVZqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdOR2d4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TnlBeE9DQXhMVGtpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hlc3Mtcm9va1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENoZXNzUm9vazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDE4LTEtOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDJ2NWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgNGgxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDE4IDEtOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGVzc1Jvb2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2hldnJvbi1sYXN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE55QXhPQ0EyTFRZdE5pMDJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUEyZGpFeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXZyb24tbGFzdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENoZXZyb25MYXN0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTcgMTggNi02LTYtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA2djEyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25MYXN0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoZXZyb24tbGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRndE5pMDJJRFl0TmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXZyb24tbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENoZXZyb25MZWZ0OiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdtMTUgMTgtNi02IDYtNicgfV1dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGV2cm9uLXJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhPQ0EyTFRZdE5pMDJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9uLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hldnJvblJpZ2h0OiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdtOSAxOCA2LTYtNi02JyB9XV07XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25SaWdodDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGV2cm9uLXVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dNVFV0TmkwMkxUWWdOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbi11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENoZXZyb25VcDogSWNvbk5vZGUgPSBbWydwYXRoJywgeyBkOiAnbTE4IDE1LTYtNi02IDYnIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvblVwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoZXZyb25zLWRvd24tdXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TnlBeU1DQTFMVFVnTlNBMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wM0lEUWdOU0ExSURVdE5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9ucy1kb3duLXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hldnJvbnNEb3duVXA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNyAyMCA1LTUgNSA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgNCA1IDUgNS01JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25zRG93blVwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoZXZyb25zLWRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TnlBMklEVWdOU0ExTFRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRjZ01UTWdOU0ExSURVdE5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9ucy1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hldnJvbnNEb3duOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTcgNiA1IDUgNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMTMgNSA1IDUtNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uc0Rvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2hldnJvbnMtbGVmdC1yaWdodC1lbGxpcHNpc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNJRGNnTlNBMUxUVWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnROeUEzTFRVZ05TQTFJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9ucy1sZWZ0LXJpZ2h0LWVsbGlwc2lzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDcgNSA1LTUgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDctNSA1IDUgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uc0xlZnRSaWdodEVsbGlwc2lzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoZXZyb25zLWxlZnQtcmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0T1NBM0xUVWdOU0ExSURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlEY2dOU0ExTFRVZ05TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9ucy1sZWZ0LXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hldnJvbnNMZWZ0UmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtOSA3LTUgNSA1IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgNyA1IDUtNSA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25zTGVmdFJpZ2h0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoZXZyb25zLWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRFZ01UY3ROUzAxSURVdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dNVGN0TlMwMUlEVXROU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbnMtbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENoZXZyb25zTGVmdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMSAxNy01LTUgNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDE3LTUtNSA1LTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvbnNMZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNoZXZyb25zLXJpZ2h0LWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpBZ01UY3ROUzAxSURVdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5DQXhOeUExTFRVdE5TMDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9ucy1yaWdodC1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2hldnJvbnNSaWdodExlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMTctNS01IDUtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200IDE3IDUtNS01LTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvbnNSaWdodExlZnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2hldnJvbnMtcmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TmlBeE55QTFMVFV0TlMwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE15QXhOeUExTFRVdE5TMDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9ucy1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENoZXZyb25zUmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNiAxNyA1LTUtNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzIDE3IDUtNS01LTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvbnNSaWdodDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGV2cm9ucy11cC1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE55QXhOU0ExSURVZ05TMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDNJRGtnTlMwMUlEVWdOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbnMtdXAtZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENoZXZyb25zVXBEb3duOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTcgMTUgNSA1IDUtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDkgNS01IDUgNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaGV2cm9uc1VwRG93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaGV2cm9ucy11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGNnTVRFdE5TMDFMVFVnTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRjZ01UZ3ROUzAxTFRVZ05TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9ucy11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENoZXZyb25zVXA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMTEtNS01LTUgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxOC01LTUtNSA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25zVXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2h1cmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdPV2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBM2RqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREl4ZGkwellUSWdNaUF3SURBZ01DMDBJREIyTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRnZ09TQXpMalV5SURJdU1UUTNZVEVnTVNBd0lEQWdNU0F1TkRndU9EVTBWakU1WVRJZ01pQXdJREFnTVMweUlESklOR0V5SURJZ01DQXdJREV0TWkweWRpMDJMams1T1dFeElERWdNQ0F3SURFZ0xqUTRMUzQ0TlRSTU5pQTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREl4VmpkaE1TQXhJREFnTUNBeElDNHpOell0TGpjNE1tdzFMVE11T1RrNVlURWdNU0F3SURBZ01TQXhMakkwT1M0d01ERnNOU0EwUVRFZ01TQXdJREFnTVNBeE9DQTNkakUwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2h1cmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2h1cmNoOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDloNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE4IDkgMy41MiAyLjE0N2ExIDEgMCAwIDEgLjQ4Ljg1NFYxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtNi45OTlhMSAxIDAgMCAxIC40OC0uODU0TDYgOScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMjFWN2ExIDEgMCAwIDEgLjM3Ni0uNzgybDUtMy45OTlhMSAxIDAgMCAxIDEuMjQ5LjAwMWw1IDRBMSAxIDAgMCAxIDE4IDd2MTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2h1cmNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpZ2FyZXR0ZS1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USklNMkV4SURFZ01DQXdJREF0TVNBeGRqSmhNU0F4SURBZ01DQXdJREVnTVdneE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dPR013TFRJdU5TMHlMVEl1TlMweUxUVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNaUF5TUNBeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEpoTVNBeElEQWdNQ0F4SURFZ01YWXlZVEVnTVNBd0lEQWdNUzB1TlM0NE5qWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJRGhqTUMweUxqVXRNaTB5TGpVdE1pMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREV5ZGpRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpZ2FyZXR0ZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaWdhcmV0dGVPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA4YzAtMi41LTItMi41LTItNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0uNS44NjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgOGMwLTIuNS0yLTIuNS0yLTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMnY0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpZ2FyZXR0ZU9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaHJvbWl1bVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1T0RnZ01qRXVPVFFnTVRVdU5EWWdNVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4TGpFM0lEaElNVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE11T1RVZ05pNHdOaUE0TGpVMElERTBJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqRXdJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaHJvbWl1bVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqIEBkZXByZWNhdGVkIEJyYW5kIGljb25zIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCBhcmUgZHVlIHRvIGJlIHJlbW92ZWQsIHBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vbHVjaWRlLWljb25zL2x1Y2lkZS9pc3N1ZXMvNjcwLiBXZSByZWNvbW1lbmQgdXNpbmcgaHR0cHM6Ly9zaW1wbGVpY29ucy5vcmcvP3E9Y2hyb21pdW0gaW5zdGVhZC4gVGhpcyBpY29uIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wXG4gKi9cbmNvbnN0IENocm9taXVtOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwLjg4IDIxLjk0IDE1LjQ2IDE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjE3IDhIMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy45NSA2LjA2IDguNTQgMTQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaHJvbWl1bTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaWdhcmV0dGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01USklNMkV4SURFZ01DQXdJREF0TVNBeGRqSmhNU0F4SURBZ01DQXdJREVnTVdneE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dPR013TFRJdU5TMHlMVEl1TlMweUxUVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREUyWVRFZ01TQXdJREFnTUNBeExURjJMVEpoTVNBeElEQWdNQ0F3TFRFdE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdPR013TFRJdU5TMHlMVEl1TlMweUxUVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVEoyTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpZ2FyZXR0ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpZ2FyZXR0ZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMkgzYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDhjMC0yLjUtMi0yLjUtMi01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE2YTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA4YzAtMi41LTItMi41LTItNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEydjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lnYXJldHRlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1hbGVydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNVElpSUhneVBTSXhNaUlnZVRFOUlqZ2lJSGt5UFNJeE1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE1pNHdNU0lnZVRFOUlqRTJJaUI1TWowaU1UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtYWxlcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVBbGVydDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzgnLCB5MjogJzEyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMi4wMScsIHkxOiAnMTYnLCB5MjogJzE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUFsZXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1hcnJvdy1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdPSFk0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0SURFeUlEUWdOQ0EwTFRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1hcnJvdy1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQXJyb3dEb3duOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDh2OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDEyIDQgNCA0LTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlQXJyb3dEb3duO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1hcnJvdy1sZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USWdPQzAwSURRZ05DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TWtnNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1hcnJvdy1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQXJyb3dMZWZ0OiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDgtNCA0IDQgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMkg4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUFycm93TGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtYXJyb3ctb3V0LWRvd24tbGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF4TW1FeE1DQXhNQ0F3SURFZ01TQXhNQ0F4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeU1pQXhNQzB4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeU1rZ3lkaTAySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWFycm93LW91dC1kb3duLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVBcnJvd091dERvd25MZWZ0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJhMTAgMTAgMCAxIDEgMTAgMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyMiAxMC0xMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIySDJ2LTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlQXJyb3dPdXREb3duTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtYXJyb3ctb3V0LWRvd24tcmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qSmhNVEFnTVRBZ01DQXhJREVnTVRBdE1UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREl5SURFeUlERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF4Tm5ZMmFDMDJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LWRvd24tcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVBcnJvd091dERvd25SaWdodDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMmExMCAxMCAwIDEgMSAxMC0xMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMiAxMiAxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNnY2aC02JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUFycm93T3V0RG93blJpZ2h0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1hcnJvdy1vdXQtdXAtbGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUE0VmpKb05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREV3SURFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlRVEV3SURFd0lEQWdNU0F4SURJZ01USWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LXVwLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVBcnJvd091dFVwTGVmdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDhWMmg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAxMCAxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyQTEwIDEwIDAgMSAxIDIgMTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlQXJyb3dPdXRVcExlZnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2lyY2xlLWFycm93LW91dC11cC1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRKQk1UQWdNVEFnTUNBeElERWdNVElnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01pQXhNaUF4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01tZzJkallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWFycm93LW91dC11cC1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZUFycm93T3V0VXBSaWdodDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMkExMCAxMCAwIDEgMSAxMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIgMTIgMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMmg2djYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlQXJyb3dPdXRVcFJpZ2h0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1hcnJvdy1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVElnTVRZZ05DMDBMVFF0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1tZzRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtYXJyb3ctcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVBcnJvd1JpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDE2IDQtNC00LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUFycm93UmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2lyY2xlLWFycm93LXVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNVEl0TkMwMExUUWdOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRaV09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtYXJyb3ctdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVBcnJvd1VwOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDEyLTQtNC00IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZWOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVBcnJvd1VwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1jaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPU0F4TWlBeUlESWdOQzAwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQ2hlY2s6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMiAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUNoZWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1jaGVjay1iaWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFdU9EQXhJREV3UVRFd0lERXdJREFnTVNBeElERTNJRE11TXpNMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERXhJRE1nTTB3eU1pQTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtY2hlY2stYmlnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQ2hlY2tCaWc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEuODAxIDEwQTEwIDEwIDAgMSAxIDE3IDMuMzM1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTEgMyAzTDIyIDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlQ2hlY2tCaWc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2lyY2xlLWNoZXZyb24tZG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFlnTVRBdE5DQTBMVFF0TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1jaGV2cm9uLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVDaGV2cm9uRG93bjogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxMC00IDQtNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUNoZXZyb25Eb3duO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1jaGV2cm9uLWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRRZ01UWXROQzAwSURRdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtY2hldnJvbi1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQ2hldnJvbkxlZnQ6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTYtNC00IDQtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVDaGV2cm9uTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtY2hldnJvbi1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVEFnT0NBMElEUXROQ0EwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWNoZXZyb24tcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVDaGV2cm9uUmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgOCA0IDQtNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUNoZXZyb25SaWdodDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtY2hldnJvbi11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0F4TkNBMExUUWdOQ0EwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWNoZXZyb24tdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVDaGV2cm9uVXA6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxNCA0LTQgNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUNoZXZyb25VcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtZGFzaGVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNU0F5TGpFNE1tRXhNQ0F4TUNBd0lEQWdNU0F6TGpnZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVPU0F5TVM0NE1UaGhNVEFnTVRBZ01DQXdJREV0TXk0NElEQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMall3T1NBekxqY3lNV0V4TUNBeE1DQXdJREFnTVNBeUxqWTVJREl1TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWk0eE9ESWdNVE11T1dFeE1DQXhNQ0F3SURBZ01TQXdMVE11T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU1qYzVJREUzTGpZd09XRXhNQ0F4TUNBd0lEQWdNUzB5TGpjZ01pNDJPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakV1T0RFNElERXdMakZoTVRBZ01UQWdNQ0F3SURFZ01DQXpMamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE11TnpJeElEWXVNemt4WVRFd0lERXdJREFnTUNBeElESXVOeTB5TGpZNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMkxqTTVNU0F5TUM0eU56bGhNVEFnTVRBZ01DQXdJREV0TWk0Mk9TMHlMamNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWRhc2hlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZURhc2hlZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC4xIDIuMTgyYTEwIDEwIDAgMCAxIDMuOCAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzLjkgMjEuODE4YTEwIDEwIDAgMCAxLTMuOCAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjYwOSAzLjcyMWExMCAxMCAwIDAgMSAyLjY5IDIuNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjI3OSAxNy42MDlhMTAgMTAgMCAwIDEtMi43IDIuNjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy43MjEgNi4zOTFhMTAgMTAgMCAwIDEgMi43LTIuNjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4zOTEgMjAuMjc5YTEwIDEwIDAgMCAxLTIuNjktMi43JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZURhc2hlZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtZGl2aWRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU9DSWdlREk5SWpFMklpQjVNVDBpTVRJaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4TWlJZ2VURTlJakUySWlCNU1qMGlNVFlpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakV5SWlCNE1qMGlNVElpSUhreFBTSTRJaUI1TWowaU9DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtZGl2aWRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlRGl2aWRlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzE2JywgeTE6ICcxMicsIHkyOiAnMTInIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcxNicsIHkyOiAnMTYnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICc4JywgeTI6ICc4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZURpdmlkZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtZG9sbGFyLXNpZ25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ09HZ3RObUV5SURJZ01DQXhJREFnTUNBMGFEUmhNaUF5SURBZ01TQXhJREFnTkVnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhPRlkySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWRvbGxhci1zaWduXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlRG9sbGFyU2lnbjogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThWNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVEb2xsYXJTaWduO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1kb3QtZGFzaGVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNU0F5TGpFNFlUa3VPVE1nT1M0NU15QXdJREFnTVNBekxqZ2dNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGN1TmlBekxqY3hZVGt1T1RVZ09TNDVOU0F3SURBZ01TQXlMalk1SURJdU55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVPRElnTVRBdU1XRTVMamt6SURrdU9UTWdNQ0F3SURFZ01DQXpMamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3TGpJNUlERTNMalpoT1M0NU5TQTVMamsxSURBZ01DQXhMVEl1TnlBeUxqWTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeTQ1SURJeExqZ3lZVGt1T1RRZ09TNDVOQ0F3SURBZ01TMHpMamdnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0MElESXdMakk1WVRrdU9UVWdPUzQ1TlNBd0lEQWdNUzB5TGpZNUxUSXVOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaTR4T0NBeE15NDVZVGt1T1RNZ09TNDVNeUF3SURBZ01TQXdMVE11T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXk0M01TQTJMalJoT1M0NU5TQTVMamsxSURBZ01DQXhJREl1TnkweUxqWTVJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtZG90LWRhc2hlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZURvdERhc2hlZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC4xIDIuMThhOS45MyA5LjkzIDAgMCAxIDMuOCAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjYgMy43MWE5Ljk1IDkuOTUgMCAwIDEgMi42OSAyLjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEuODIgMTAuMWE5LjkzIDkuOTMgMCAwIDEgMCAzLjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuMjkgMTcuNmE5Ljk1IDkuOTUgMCAwIDEtMi43IDIuNjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMuOSAyMS44MmE5Ljk0IDkuOTQgMCAwIDEtMy44IDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi40IDIwLjI5YTkuOTUgOS45NSAwIDAgMS0yLjY5LTIuNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjE4IDEzLjlhOS45MyA5LjkzIDAgMCAxIDAtMy44JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNzEgNi40YTkuOTUgOS45NSAwIDAgMSAyLjctMi42OScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZURvdERhc2hlZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtZG90XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVEb3Q6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVEb3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2lyY2xlLWVsbGlwc2lzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVEpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNbWd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01USm9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWVsbGlwc2lzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlRWxsaXBzaXM6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTJoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEyaC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVFbGxpcHNpcztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtZXF1YWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE1HZ3hNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TkdneE1DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtZXF1YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVFcXVhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ003IDEwaDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTRoMTAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlRXF1YWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2lyY2xlLWZhZGluZy1hcnJvdy11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW1FeE1DQXhNQ0F3SURBZ01TQTNMak00SURFMkxqYzFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaUF4TWkwMExUUXROQ0EwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE5sWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlMalVnT0M0NE56VmhNVEFnTVRBZ01DQXdJREF0TGpVZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pNDRNeUF4Tm1FeE1DQXhNQ0F3SURBZ01DQXlMalF6SURNdU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DNDJNellnTlM0eU16VmhNVEFnTVRBZ01DQXdJREVnTGpnNU1TMHVPRFUzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpZME5DQXlNUzQwTW1FeE1DQXhNQ0F3SURBZ01DQTNMall6TVMwdU16Z2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtZmFkaW5nLWFycm93LXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlRmFkaW5nQXJyb3dVcDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTItNC00LTQgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNlY4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVGYWRpbmdBcnJvd1VwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1mYWRpbmctcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW1FeE1DQXhNQ0F3SURBZ01TQTNMak00SURFMkxqYzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE0ZGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERXlTRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl1TlNBNExqZzNOV0V4TUNBeE1DQXdJREFnTUMwdU5TQXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlMamd6SURFMllURXdJREV3SURBZ01DQXdJREl1TkRNZ015NDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBMall6TmlBMUxqSXpOV0V4TUNBeE1DQXdJREFnTVNBdU9Ea3hMUzQ0TlRjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRndU5qUTBJREl4TGpReVlURXdJREV3SURBZ01DQXdJRGN1TmpNeExTNHpPQ0lnTHo0S1BDOXpkbWMrKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtZmFkaW5nLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVGYWRpbmdQbHVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJIOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlRmFkaW5nUGx1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtZ2F1Z2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVdU5pQXlMamRoTVRBZ01UQWdNQ0F4SURBZ05TNDNJRFV1TnlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXk0MElERXdMallnTVRrZ05TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtZ2F1Z2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVHYXVnZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNS42IDIuN2ExMCAxMCAwIDEgMCA1LjcgNS43JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMuNCAxMC42IDE5IDUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlR2F1Z2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2lyY2xlLW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNbWc0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlTWludXM6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZU1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpNMUlESXVOamxCTVRBZ01UQWdNQ0F3SURFZ01qRXVNeUF4TlM0Mk5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua3VNRGdnTVRrdU1EaEJNVEFnTVRBZ01DQXhJREVnTkM0NU1pQTBMamt5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZU9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC4zNSAyLjY5QTEwIDEwIDAgMCAxIDIxLjMgMTUuNjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuMDggMTkuMDhBMTAgMTAgMCAxIDEgNC45MiA0LjkyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZU9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtcGFya2luZy1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU5qVTJJRGRJTVROaE15QXpJREFnTUNBeElESXVPVGcwSURNdU16QTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUF4TTBnNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TNHdOekVnTVRrdU1EY3hRVEVnTVNBd0lEQWdNU0EwTGpreklEUXVPVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQzR6TlRjZ01pNDJPRGRoTVRBZ01UQWdNQ0F3SURFZ01USXVPVFUySURFeUxqazFOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TjFZNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1wYXJraW5nLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZVBhcmtpbmdPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIuNjU2IDdIMTNhMyAzIDAgMCAxIDIuOTg0IDMuMzA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDEzSDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuMDcxIDE5LjA3MUExIDEgMCAwIDEgNC45MyA0LjkzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjM1NyAyLjY4N2ExMCAxMCAwIDAgMSAxMi45NTYgMTIuOTU2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTdWOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVQYXJraW5nT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1wYXJraW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhOMVkzYURSaE15QXpJREFnTUNBeElEQWdOa2c1SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLXBhcmtpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVQYXJraW5nOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVQYXJraW5nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1wYXVzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNVEFpSUhneVBTSXhNQ0lnZVRFOUlqRTFJaUI1TWowaU9TSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1UUWlJSGd5UFNJeE5DSWdlVEU5SWpFMUlpQjVNajBpT1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1wYXVzZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZVBhdXNlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEwJywgeDI6ICcxMCcsIHkxOiAnMTUnLCB5MjogJzknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTQnLCB4MjogJzE0JywgeTE6ICcxNScsIHkyOiAnOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVQYXVzZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtcGVyY2VudFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnT1MwMklEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dPV2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERTFhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1wZXJjZW50XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlUGVyY2VudDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA5LTYgNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDloLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE1aC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVQZXJjZW50O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1waWxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeU5DSWdhR1ZwWjJoMFBTSXlOQ0lnZG1sbGQwSnZlRDBpTUNBd0lESTBJREkwSWlCbWFXeHNQU0p1YjI1bElpQnpkSEp2YTJVOUlpTXdNREFpSUhOMGVXeGxQU0ppWVdOclozSnZkVzVrTFdOdmJHOXlPaUFqWm1abU95QmliM0prWlhJdGNtRmthWFZ6T2lBeWNIZ2lJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlJSE4wY205clpTMXNhVzVsWTJGd1BTSnliM1Z1WkNJZ2MzUnliMnRsTFd4cGJtVnFiMmx1UFNKeWIzVnVaQ0krQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVElpSUdONVBTSXhPU0lnY2owaU1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqVWlJSEk5SWpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UWWlJR041UFNJeE1pSWdjajBpTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeU1DSWdZM2s5SWpFNUlpQnlQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpRaUlHTjVQU0l4T1NJZ2NqMGlNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0k0SWlCamVUMGlNVElpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtcGlsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZVBpbGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTknLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc1JywgcjogJzInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMTInLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzIwJywgY3k6ICcxOScsIHI6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNCcsIGN5OiAnMTknLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzgnLCBjeTogJzEyJywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlUGlsZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtcGxheVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0E1TGpBd00yRXhJREVnTUNBd0lERWdNUzQxTVRjdExqZzFPV3cwTGprNU55QXlMams1TjJFeElERWdNQ0F3SURFZ01DQXhMamN4T0d3dE5DNDVPVGNnTWk0NU9UZEJNU0F4SURBZ01DQXhJRGtnTVRRdU9UazJlaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLXBsYXlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVQbGF5OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnonLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVQbGF5O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1wb3VuZC1zdGVybGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRaV09TNDFZVEVnTVNBd0lEQWdNU0ExSURBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01USm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4Tm1nM0lpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpFd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1wb3VuZC1zdGVybGluZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZVBvdW5kU3Rlcmxpbmc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTZWOS41YTEgMSAwIDAgMSA1IDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTZoNycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVQb3VuZFN0ZXJsaW5nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1wbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBNGRqZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZVBsdXM6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDh2OCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1wb3dlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTjNZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0xqazVPQ0E1TGpBd00yRTFJRFVnTUNBeElEQWdPQzB1TURBMUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpFd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1wb3dlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZVBvd2VyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDd2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZVBvd2VyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS1xdWVzdGlvbi1tYXJrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TNHdPU0E1WVRNZ015QXdJREFnTVNBMUxqZ3pJREZqTUNBeUxUTWdNeTB6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1xdWVzdGlvbi1tYXJrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlUXVlc3Rpb25NYXJrOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3aC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVRdWVzdGlvbk1hcms7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2lyY2xlLXNsYXNoLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01pQXlJREl5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJakV3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLXNsYXNoLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVTbGFzaDI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMiAyIDIyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZVNsYXNoMjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtc2xhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpT1NJZ2VESTlJakUxSWlCNU1UMGlNVFVpSUhreVBTSTVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtc2xhc2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVTbGFzaDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc5JywgeDI6ICcxNScsIHkxOiAnMTUnLCB5MjogJzknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlU2xhc2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2lyY2xlLXNtYWxsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1zbWFsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZVNtYWxsOiBJY29uTm9kZSA9IFtbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnNicgfV1dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVTbWFsbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtc3RhclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEV1TURVeElEY3VOakUyWVRFZ01TQXdJREFnTVNBeExqa3dPUzR3TWpSc0xqY3pOeUF4TGpRMU1tRXhJREVnTUNBd0lEQWdMamN6Tnk0MU16VnNNUzQyTXpRdU1qVTJZVEVnTVNBd0lEQWdNU0F1TlRnNElERXVPREEyYkMweExqRTNNaUF4TGpFMk9HRXhJREVnTUNBd0lEQXRMakk0TWk0NE5qWnNMakkxT1NBeExqWXhNMkV4SURFZ01DQXdJREV0TVM0MU5ERWdNUzR4TXpSc0xURXVORFkxTFM0M05XRXhJREVnTUNBd0lEQXRMamt4TWlBd2JDMHhMalEyTlM0M05XRXhJREVnTUNBd0lERXRNUzQxTXprdE1TNHhNek5zTGpJMU9DMHhMall4TTJFeElERWdNQ0F3SURBdExqSTRNaTB1T0RZM2JDMHhMakUxTmkweExqRTFNbUV4SURFZ01DQXdJREVnTGpVM01pMHhMamd5TW13eExqWXpNeTB1TWpVMllURWdNU0F3SURBZ01DQXVOek0zTFM0MU16VjZJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqRXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtc3RhclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZVN0YXI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEuMDUxIDcuNjE2YTEgMSAwIDAgMSAxLjkwOS4wMjRsLjczNyAxLjQ1MmExIDEgMCAwIDAgLjczNy41MzVsMS42MzQuMjU2YTEgMSAwIDAgMSAuNTg4IDEuODA2bC0xLjE3MiAxLjE2OGExIDEgMCAwIDAtLjI4Mi44NjZsLjI1OSAxLjYxM2ExIDEgMCAwIDEtMS41NDEgMS4xMzRsLTEuNDY1LS43NWExIDEgMCAwIDAtLjkxMiAwbC0xLjQ2NS43NWExIDEgMCAwIDEtMS41MzktMS4xMzNsLjI1OC0xLjYxM2ExIDEgMCAwIDAtLjI4Mi0uODY3bC0xLjE1Ni0xLjE1MmExIDEgMCAwIDEgLjU3Mi0xLjgyMmwxLjYzMy0uMjU2YTEgMSAwIDAgMCAuNzM3LS41MzV6JyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlU3RhcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGUtc3RvcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjbVZqZENCNFBTSTVJaUI1UFNJNUlpQjNhV1IwYUQwaU5pSWdhR1ZwWjJoMFBTSTJJaUJ5ZUQwaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtc3RvcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZVN0b3A6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc5JywgeTogJzknLCB3aWR0aDogJzYnLCBoZWlnaHQ6ICc2Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZVN0b3A7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2lyY2xlLXVzZXItcm91bmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01qQmhOaUEySURBZ01DQXdMVEV5SURBaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1DSWdjajBpTkNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS11c2VyLXJvdW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY2xlVXNlclJvdW5kOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIwYTYgNiAwIDAgMC0xMiAwJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEwJywgcjogJzQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlVXNlclJvdW5kO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS11c2VyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXdJaUJ5UFNJeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lESXdMalkyTWxZeE9XRXlJRElnTUNBd0lERWdNaTB5YURaaE1pQXlJREFnTUNBeElESWdNbll4TGpZMk1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtdXNlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZVVzZXI6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTAnLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIwLjY2MlYxOWEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYxLjY2MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVVc2VyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNpcmNsZS14XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdPUzAySURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ09TQTJJRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXJjbGVYOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDktNiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgOSA2IDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2lyY2xlWDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjbGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENpcmNsZTogSWNvbk5vZGUgPSBbWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XV07XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjaXJjdWl0LWJvYXJkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQTVhRFJoTWlBeUlEQWdNQ0F3SURJdE1sWXpJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamtpSUdONVBTSTVJaUJ5UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lESXhkaTAwWVRJZ01pQXdJREFnTVNBeUxUSm9OQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TlNJZ1kzazlJakUxSWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjdWl0LWJvYXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2lyY3VpdEJvYXJkOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDloNGEyIDIgMCAwIDAgMi0yVjMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc5JywgcjogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMXYtNGEyIDIgMCAwIDEgMi0yaDQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNScsIGN5OiAnMTUnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjdWl0Qm9hcmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2l0cnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVOallnTVRjdU5qZGhNUzR3T0NBeExqQTRJREFnTUNBeExTNHdOQ0F4TGpaQk1USWdNVElnTUNBd0lERWdOQzQzTXlBeUxqTTRZVEV1TVNBeExqRWdNQ0F3SURFZ01TNDJNUzB1TURSNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TNDJOU0F4TlM0Mk5rRTRJRGdnTUNBd0lERWdPQzR6TlNBMExqTTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQ0F4TUMwMUxqVWdOUzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE55NDROVll4TUVnMkxqRTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXRydXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDaXRydXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00yMS42NiAxNy42N2ExLjA4IDEuMDggMCAwIDEtLjA0IDEuNkExMiAxMiAwIDAgMSA0LjczIDIuMzhhMS4xIDEuMSAwIDAgMSAxLjYxLS4wNHonIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xOS42NSAxNS42NkE4IDggMCAwIDEgOC4zNSA0LjM0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDEwLTUuNSA1LjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTcuODVWMTBINi4xNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDaXRydXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xhcHBlcmJvYXJkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVNaUEySURNZ01URnNMUzQ1TFRJdU5HTXRMak10TVM0eExqTXRNaTR5SURFdU15MHlMalZzTVRNdU5TMDBZekV1TVMwdU15QXlMakl1TXlBeUxqVWdNUzR6V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0Tmk0eUlEVXVNeUF6TGpFZ015NDVJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaTQwSURNdU5DQXpMakVnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1XZ3hPSFk0WVRJZ01pQXdJREFnTVMweUlESklOV0V5SURJZ01DQXdJREV0TWkweVdpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbGFwcGVyYm9hcmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbGFwcGVyYm9hcmQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuMiA2IDMgMTFsLS45LTIuNGMtLjMtMS4xLjMtMi4yIDEuMy0yLjVsMTMuNS00YzEuMS0uMyAyLjIuMyAyLjUgMS4zWicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202LjIgNS4zIDMuMSAzLjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIuNCAzLjQgMy4xIDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMWgxOHY4YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yWicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbGFwcGVyYm9hcmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xpcGJvYXJkLWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kwSWlCNFBTSTRJaUI1UFNJeUlpQnllRDBpTVNJZ2NuazlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURSb01tRXlJRElnTUNBd0lERWdNaUF5ZGpFMFlUSWdNaUF3SURBZ01TMHlJREpJTm1FeUlESWdNQ0F3SURFdE1pMHlWalpoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREUwSURJZ01pQTBMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xpcGJvYXJkLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xpcGJvYXJkQ2hlY2s6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzQnLCB4OiAnOCcsIHk6ICcyJywgcng6ICcxJywgcnk6ICcxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTQgMiAyIDQtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbGlwYm9hcmRDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbGlwYm9hcmQtY2xvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UUjJNaTR5YkRFdU5pQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUEwYURKaE1pQXlJREFnTUNBeElESWdNbll1T0RNeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEUklObUV5SURJZ01DQXdJREF0TWlBeWRqRTBZVElnTWlBd0lEQWdNQ0F5SURKb01pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOaUlnWTNrOUlqRTJJaUJ5UFNJMklpQXZQZ29nSUR4eVpXTjBJSGc5SWpnaUlIazlJaklpSUhkcFpIUm9QU0k0SWlCb1pXbG5hSFE5SWpRaUlISjRQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xpcGJvYXJkLWNsb2NrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xpcGJvYXJkQ2xvY2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTR2Mi4ybDEuNiAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDRoMmEyIDIgMCAwIDEgMiAydi44MzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMTYnLCByOiAnNicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzgnLCB5OiAnMicsIHdpZHRoOiAnOCcsIGhlaWdodDogJzQnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xpcGJvYXJkQ2xvY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xpcGJvYXJkLWNvcHlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTBJaUI0UFNJNElpQjVQU0l5SWlCeWVEMGlNU0lnY25rOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dORWcyWVRJZ01pQXdJREFnTUMweUlESjJNVFJoTWlBeUlEQWdNQ0F3SURJZ01tZ3hNbUV5SURJZ01DQXdJREFnTWkweWRpMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUEwYURKaE1pQXlJREFnTUNBeElESWdNblkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE5FZ3hNU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRBdE5DQTBJRFFnTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NsaXBib2FyZC1jb3B5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xpcGJvYXJkQ29weTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNCcsIHg6ICc4JywgeTogJzInLCByeDogJzEnLCByeTogJzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNEgxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxMC00IDQgNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsaXBib2FyZENvcHk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xpcGJvYXJkLWxpc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTBJaUI0UFNJNElpQjVQU0l5SWlCeWVEMGlNU0lnY25rOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRFJvTW1FeUlESWdNQ0F3SURFZ01pQXlkakUwWVRJZ01pQXdJREFnTVMweUlESklObUV5SURJZ01DQXdJREV0TWkweVZqWmhNaUF5SURBZ01DQXhJREl0TW1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNV2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE5tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV4YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhObWd1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NsaXBib2FyZC1saXN0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xpcGJvYXJkTGlzdDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNCcsIHg6ICc4JywgeTogJzInLCByeDogJzEnLCByeTogJzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTFoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNmg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTFoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTZoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsaXBib2FyZExpc3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xpcGJvYXJkLW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kwSWlCNFBTSTRJaUI1UFNJeUlpQnllRDBpTVNJZ2NuazlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURSb01tRXlJRElnTUNBd0lERWdNaUF5ZGpFMFlUSWdNaUF3SURBZ01TMHlJREpJTm1FeUlESWdNQ0F3SURFdE1pMHlWalpoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREUwYURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NsaXBib2FyZC1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsaXBib2FyZE1pbnVzOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc0JywgeDogJzgnLCB5OiAnMicsIHJ4OiAnMScsIHJ5OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE0aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xpcGJvYXJkTWludXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xpcGJvYXJkLXBhc3RlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVFJvTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEUm9NbUV5SURJZ01DQXdJREVnTWlBeWRqRXVNelEwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TnlBeE9DQTBMVFF0TkMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEUklObUV5SURJZ01DQXdJREF0TWlBeWRqRTBZVElnTWlBd0lEQWdNQ0F5SURKb01USmhNaUF5SURBZ01DQXdJREV1TnprekxURXVNVEV6SWlBdlBnb2dJRHh5WldOMElIZzlJamdpSUhrOUlqSWlJSGRwWkhSb1BTSTRJaUJvWldsbmFIUTlJalFpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbGlwYm9hcmQtcGFzdGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbGlwYm9hcmRQYXN0ZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxNGgxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA0aDJhMiAyIDAgMCAxIDIgMnYxLjM0NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxOCA0LTQtNC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMS43OTMtMS4xMTMnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc4JywgeTogJzInLCB3aWR0aDogJzgnLCBoZWlnaHQ6ICc0Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsaXBib2FyZFBhc3RlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsaXBib2FyZC1wZW4tbGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJMElpQjRQU0k0SWlCNVBTSXlJaUJ5ZUQwaU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQTBTRFpoTWlBeUlEQWdNQ0F3TFRJZ01uWXhOR0V5SURJZ01DQXdJREFnTWlBeWFERXlZVElnTWlBd0lEQWdNQ0F5TFRKMkxTNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUEwYURKaE1pQXlJREFnTUNBeElERXVOek1nTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE9HZ3hJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzR6TnpnZ01USXVOakkyWVRFZ01TQXdJREFnTUMwekxqQXdOQzB6TGpBd05Hd3ROQzR3TVNBMExqQXhNbUV5SURJZ01DQXdJREF0TGpVd05pNDROVFJzTFM0NE16Y2dNaTQ0TjJFdU5TNDFJREFnTUNBd0lDNDJNaTQyTW13eUxqZzNMUzQ0TXpkaE1pQXlJREFnTUNBd0lDNDROVFF0TGpVd05ub2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbGlwYm9hcmQtcGVuLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbGlwYm9hcmRQZW5MaW5lOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc0JywgeDogJzgnLCB5OiAnMicsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtLjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNGgyYTIgMiAwIDAgMSAxLjczIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOGgxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxLjM3OCAxMi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsaXBib2FyZFBlbkxpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xpcGJvYXJkLXBlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJMElpQjRQU0k0SWlCNVBTSXlJaUJ5ZUQwaU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdOR2d5WVRJZ01pQXdJREFnTVNBeUlESjJNVFJoTWlBeUlEQWdNQ0F4TFRJZ01tZ3ROUzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFekxqVldObUV5SURJZ01DQXdJREVnTWkweWFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpMak0zT0NBeE5TNDJNalpoTVNBeElEQWdNU0F3TFRNdU1EQTBMVE11TURBMGJDMDFMakF4SURVdU1ERXlZVElnTWlBd0lEQWdNQzB1TlRBMkxqZzFOR3d0TGpnek55QXlMamczWVM0MUxqVWdNQ0F3SURBZ0xqWXlMall5YkRJdU9EY3RMamd6TjJFeUlESWdNQ0F3SURBZ0xqZzFOQzB1TlRBMmVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbGlwYm9hcmQtcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xpcGJvYXJkUGVuOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc0JywgeDogJzgnLCB5OiAnMicsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyaC01LjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMy41VjZhMiAyIDAgMCAxIDItMmgyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjM3OCAxNS42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsaXBib2FyZFBlbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbGlwYm9hcmQtcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJMElpQjRQU0k0SWlCNVBTSXlJaUJ5ZUQwaU1TSWdjbms5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEUm9NbUV5SURJZ01DQXdJREVnTWlBeWRqRTBZVElnTWlBd0lEQWdNUzB5SURKSU5tRXlJRElnTUNBd0lERXRNaTB5VmpaaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFMGFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUzZGkwMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NsaXBib2FyZC1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xpcGJvYXJkUGx1czogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNCcsIHg6ICc4JywgeTogJzInLCByeDogJzEnLCByeTogJzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNGg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3di02JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsaXBib2FyZFBsdXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xpcGJvYXJkLXR5cGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTBJaUI0UFNJNElpQjVQU0l5SWlCeWVEMGlNU0lnY25rOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRFJvTW1FeUlESWdNQ0F3SURFZ01pQXlkakUwWVRJZ01pQXdJREFnTVMweUlESklObUV5SURJZ01DQXdJREV0TWkweVZqWmhNaUF5SURBZ01DQXhJREl0TW1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERXlkaTB4YURaMk1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVGRvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01URjJOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xpcGJvYXJkLXR5cGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbGlwYm9hcmRUeXBlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc0JywgeDogJzgnLCB5OiAnMicsIHJ4OiAnMScsIHJ5OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEydi0xaDZ2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxN2gyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDExdjYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xpcGJvYXJkVHlwZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbGlwYm9hcmQteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJMElpQjRQU0k0SWlCNVBTSXlJaUJ5ZUQwaU1TSWdjbms5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEUm9NbUV5SURJZ01DQXdJREVnTWlBeWRqRTBZVElnTWlBd0lEQWdNUzB5SURKSU5tRXlJRElnTUNBd0lERXRNaTB5VmpaaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlNBeE1TMDJJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGtnTVRFZ05pQTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbGlwYm9hcmQteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsaXBib2FyZFg6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzQnLCB4OiAnOCcsIHk6ICcyJywgcng6ICcxJywgcnk6ICcxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDExLTYgNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDExIDYgNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbGlwYm9hcmRYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsaXBib2FyZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJMElpQjRQU0k0SWlCNVBTSXlJaUJ5ZUQwaU1TSWdjbms5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEUm9NbUV5SURJZ01DQXdJREVnTWlBeWRqRTBZVElnTWlBd0lEQWdNUzB5SURKSU5tRXlJRElnTUNBd0lERXRNaTB5VmpaaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xpcGJvYXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xpcGJvYXJkOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc0JywgeDogJzgnLCB5OiAnMicsIHJ4OiAnMScsIHJ5OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbGlwYm9hcmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvY2stMVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTm5ZMmJESXROQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2stMVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb2NrMTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZsMi00JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrMTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbG9jay0xMFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTm5ZMmJDMDBMVElpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TWlJZ2NqMGlNVEFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2stMTBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG9jazEwOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2NmwtNC0yJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrMTA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvY2stMTFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiQzB5TFRRaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1pSWdjajBpTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLTExXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xvY2sxMTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZsLTItNCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9jazExO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb2NrLTEyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkySWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJakV3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2stMTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG9jazEyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2NicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9jazEyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb2NrLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiRFF0TWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG9jazI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY2bDQtMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9jazI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvY2stM1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTm5ZMmFEUWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVElpSUdONVBTSXhNaUlnY2owaU1UQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay0zXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xvY2szOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2Nmg0JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrMztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbG9jay00XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkyYkRRZ01pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay00XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xvY2s0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2Nmw0IDInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2s0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb2NrLTVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiRElnTkNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLTVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG9jazU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY2bDIgNCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9jazU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvY2stNlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTm5ZeE1DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay02XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xvY2s2OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2MTAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2s2O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb2NrLTdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiQzB5SURRaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1pSWdjajBpTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLTdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG9jazc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY2bC0yIDQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2s3O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb2NrLThcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiQzAwSURJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1pSWdjajBpTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLThcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG9jazg6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY2bC00IDInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2s4O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb2NrLTlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJTRGdpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TWlJZ2NqMGlNVEFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2stOVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb2NrOTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZIOCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9jazk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvY2stYWxlcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiRFFnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01USjJOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpGb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzR5TlNBNExqSkJNVEFnTVRBZ01DQXhJREFnTVRZZ01qRXVNVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2stYWxlcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG9ja0FsZXJ0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2Nmw0IDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTJ2NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAyMWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEuMjUgOC4yQTEwIDEwIDAgMSAwIDE2IDIxLjE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrQWxlcnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvY2stYXJyb3ctZG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTm5ZMmJESWdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEl1TXpNM0lESXhMams1TkdFeE1DQXhNQ0F3SURFZ01TQTVMalU0T0MwNExqYzJOeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFFnTVRnZ05DQTBJRFF0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01UUjJPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2stYXJyb3ctZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb2NrQXJyb3dEb3duOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZ2NmwyIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIuMzM3IDIxLjk5NGExMCAxMCAwIDEgMSA5LjU4OC04Ljc2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxOCA0IDQgNC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE0djgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2tBcnJvd0Rvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvY2stYXJyb3ctdXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiREV1TlRZdU56Z2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpMakl5TnlBeU1TNDVNalZoTVRBZ01UQWdNQ0F4SURFZ09DNDNOamN0T1M0MU9EZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBJREU0SURRdE5DQTBJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURJeWRpMDRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay1hcnJvdy11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb2NrQXJyb3dVcDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZsMS41Ni43OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy4yMjcgMjEuOTI1YTEwIDEwIDAgMSAxIDguNzY3LTkuNTg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE4IDQtNCA0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMjJ2LTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2tBcnJvd1VwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb2NrLWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOblkyYkRRZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVEpoTVRBZ01UQWdNQ0F4SURBdE1URWdPUzQ1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ01UWXROUzQxSURVdU5Vd3hOQ0F4T1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xvY2tDaGVjazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZsNCAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEyYTEwIDEwIDAgMSAwLTExIDkuOTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTYtNS41IDUuNUwxNCAxOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9ja0NoZWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb2NrLWZhZGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW1FeE1DQXhNQ0F3SURBZ01TQTNMak00SURFMkxqYzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEyZGpac05DQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlMalVnT0M0NE56VmhNVEFnTVRBZ01DQXdJREF0TGpVZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pNDRNeUF4Tm1FeE1DQXhNQ0F3SURBZ01DQXlMalF6SURNdU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DNDJNellnTlM0eU16VmhNVEFnTVRBZ01DQXdJREVnTGpnNU1TMHVPRFUzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpZME5DQXlNUzQwTW1FeE1DQXhNQ0F3SURBZ01DQTNMall6TVMwdU16Z2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9jay1mYWRpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG9ja0ZhZGluZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY2bDQgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2tGYWRpbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvY2stcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTm5ZMmJETXVOalEwSURFdU9ESXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4T1dnMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQXhOblkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVM0NU1pQXhNeTR5TmpkaE1UQWdNVEFnTUNBeElEQXRPQzQyTlRNZ09DNDJOVE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2stcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb2NrUGx1czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djZsMy42NDQgMS44MjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTloNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxNnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjkyIDEzLjI2N2ExMCAxMCAwIDEgMC04LjY1MyA4LjY1MycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9ja1BsdXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWTJiRFFnTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb2NrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xvY2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnY2bDQgMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG9jaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbG9zZWQtY2FwdGlvblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnT1M0eE4yRXpJRE1nTUNBeElEQWdNQ0ExTGpZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QTVMakUzWVRNZ015QXdJREVnTUNBd0lEVXVOallpSUM4K0NpQWdQSEpsWTNRZ2VEMGlNaUlnZVQwaU5TSWdkMmxrZEdnOUlqSXdJaUJvWldsbmFIUTlJakUwSWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvc2VkLWNhcHRpb25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG9zZWRDYXB0aW9uOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDkuMTdhMyAzIDAgMSAwIDAgNS42NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA5LjE3YTMgMyAwIDEgMCAwIDUuNjYnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzUnLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTQnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvc2VkQ2FwdGlvbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbG91ZC1hbGVydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakJvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhPR2d1TldFeElERWdNQ0F3SURBZ01DMDVhQzB4TGpjNVFUY2dOeUF3SURFZ01DQTNJREUzTGpjd09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1hbGVydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb3VkQWxlcnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMThoLjVhMSAxIDAgMCAwIDAtOWgtMS43OUE3IDcgMCAxIDAgNyAxNy43MDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRBbGVydDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbG91ZC1iYWNrdXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UVXVNalV4UVRRdU5TQTBMalVnTUNBd0lEQWdNVGN1TlNBNGFDMHhMamM1UVRjZ055QXdJREVnTUNBeklERXpMall3TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE1YWTBhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRsaE5TQTFJREFnTUNBd0lEa3RNeUEwTGpVZ05DNDFJREFnTUNBd0xUUXVOUzAwTGpVZ05DNDRNaUEwTGpneUlEQWdNQ0F3TFRNdU5ERWdNUzQwTVV3M0lERTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1iYWNrdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG91ZEJhY2t1cDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy41IDhoLTEuNzlBNyA3IDAgMSAwIDMgMTMuNjA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTF2NGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTlhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjUgNC44MiA0LjgyIDAgMCAwLTMuNDEgMS40MUw3IDE1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkQmFja3VwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb3VkLWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNVFV0TlM0MUlEVXVOVXc1SURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlERTNMamMwTTBFM0lEY2dNQ0F4SURFZ01UVXVOekVnTVRCb01TNDNPV0UwTGpVZ05DNDFJREFnTUNBeElERXVOU0E0TGpjME1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb3VkQ2hlY2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMTUtNS41IDUuNUw5IDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTcuNzQzQTcgNyAwIDEgMSAxNS43MSAxMGgxLjc5YTQuNSA0LjUgMCAwIDEgMS41IDguNzQyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkQ2hlY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvdWQtY29nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UQXVPRFV5SURFNUxqYzNNaTB1TXpnekxqa3lOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVE11TVRRNElERTBMakl5T0M0ek9ETXRMamt5TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU1UUTRJREU1TGpjM01tRXpJRE1nTUNBeElEQXRNaTR5T1RZdE5TNDFORFJzTFM0ek9ETXRMamt5TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRNdU5UTWdNakF1TmprMkxTNHpPREl0TGpreU5HRXpJRE1nTUNBeElERXRNaTR5T1RZdE5TNDFORFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwTGpjM01pQXhOUzQ0TlRJdU9USXpMUzR6T0RNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMExqYzNNaUF4T0M0eE5EZ3VPVEl6TGpNNE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DNHlJREUxTGpGaE55QTNJREFnTVNBeElEa3VPVE10T1M0NE5UaEJOeUEzSURBZ01DQXhJREUxTGpjeElEaG9NUzQzT1dFMExqVWdOQzQxSURBZ01DQXhJREl1TlNBNExqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa3VNakk0SURFMUxqZzFNaTB1T1RJekxTNHpPRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGt1TWpJNElERTRMakUwT0MwdU9USXpMak00TXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLWNvZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb3VkQ29nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEwLjg1MiAxOS43NzItLjM4My45MjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuMTQ4IDE0LjIyOC4zODMtLjkyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy4xNDggMTkuNzcyYTMgMyAwIDEgMC0yLjI5Ni01LjU0NGwtLjM4My0uOTIzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjUzIDIwLjY5Ni0uMzgyLS45MjRhMyAzIDAgMSAxLTIuMjk2LTUuNTQ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0Ljc3MiAxNS44NTIuOTIzLS4zODMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNzcyIDE4LjE0OC45MjMuMzgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuMiAxNS4xYTcgNyAwIDEgMSA5LjkzLTkuODU4QTcgNyAwIDAgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuMjI4IDE1Ljg1Mi0uOTIzLS4zODMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS4yMjggMTguMTQ4LS45MjMuMzgzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkQ29nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb3VkLWRvd25sb2FkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE4yT0d3dE5DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaUF5TVNBMExUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUXVNemt6SURFMUxqSTJPVUUzSURjZ01DQXhJREVnTVRVdU56RWdPR2d4TGpjNVlUUXVOU0EwTGpVZ01DQXdJREVnTWk0ME16WWdPQzR5T0RRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLWRvd25sb2FkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xvdWREb3dubG9hZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxM3Y4bC00LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMjEgNC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuMzkzIDE1LjI2OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi40MzYgOC4yODQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWREb3dubG9hZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbG91ZC1kcml6emxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhOQzQ0T1RsQk55QTNJREFnTVNBeElERTFMamN4SURob01TNDNPV0UwTGpVZ05DNDFJREFnTUNBeElESXVOU0E0TGpJME1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhPWFl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMGRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREU1ZGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTBkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJeGRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUyZGpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLWRyaXp6bGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG91ZERyaXp6bGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE5djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNHYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE5djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTR2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMXYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2djEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWREcml6emxlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb3VkLWZvZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TkM0NE9UbEJOeUEzSURBZ01TQXhJREUxTGpjeElEaG9NUzQzT1dFMExqVWdOQzQxSURBZ01DQXhJREl1TlNBNExqSTBNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRkSU55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNakZJT1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLWZvZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb3VkRm9nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTdINycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyMUg5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkRm9nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb3VkLWhhaWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5DNDRPVGxCTnlBM0lEQWdNU0F4SURFMUxqY3hJRGhvTVM0M09XRTBMalVnTkM0MUlEQWdNQ0F4SURJdU5TQTRMakkwTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UUjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TkhZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXlNR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01qQm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE5uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5TW1ndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1oYWlsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xvdWRIYWlsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTR2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE0djInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMjBoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjBoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2djInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkSGFpbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbG91ZC1saWdodG5pbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE5pNHpNalpCTnlBM0lEQWdNU0F4SURFMUxqY3hJRGhvTVM0M09XRTBMalVnTkM0MUlEQWdNQ0F4SUM0MUlEZ3VPVGN6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TXlBeE1pMHpJRFZvTkd3dE15QTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1saWdodG5pbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG91ZExpZ2h0bmluZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDE2LjMyNkE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgLjUgOC45NzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMgMTItMyA1aDRsLTMgNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG91ZExpZ2h0bmluZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbG91ZC1tb29uLXJhaW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01qQjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGd1TXpjMklERTBMalV4TW1FMklEWWdNQ0F3SURBZ015NDBOakV0TkM0eE1qZGpMakUwT0MwdU5qSTFMUzQyTlRrdExqazNMVEV1TWpRNExTNDNNVFJoTkNBMElEQWdNQ0F4TFRVdU1qVTVMVFV1TWpaakxqSTFOUzB1TlRnNUxTNHdPUzB4TGpNNU5TMHVOekUyTFRFdU1qUTRZVFlnTmlBd0lEQWdNQzAwTGpVNU5DQTFMak0ySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURJd1lUVWdOU0F3SURFZ01TQTRMamt0TkVneE0yRXpJRE1nTUNBd0lERWdNaUExTGpJMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERTVkaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdWQtbW9vbi1yYWluXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xvdWRNb29uUmFpbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAyMHYyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4LjM3NiAxNC41MTJhNiA2IDAgMCAwIDMuNDYxLTQuMTI3Yy4xNDgtLjYyNS0uNjU5LS45Ny0xLjI0OC0uNzE0YTQgNCAwIDAgMS01LjI1OS01LjI2Yy4yNTUtLjU4OS0uMDktMS4zOTUtLjcxNi0xLjI0OGE2IDYgMCAwIDAtNC41OTQgNS4zNicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxOXYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkTW9vblJhaW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvdWQtbW9vblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVRaaE15QXpJREFnTUNBeElEQWdOa2czWVRVZ05TQXdJREVnTVNBMExqa3RObm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0TGpNM05pQXhOQzQxTVRKaE5pQTJJREFnTUNBd0lETXVORFl4TFRRdU1USTNZeTR4TkRndExqWXlOUzB1TmpVNUxTNDVOeTB4TGpJME9DMHVOekUwWVRRZ05DQXdJREFnTVMwMUxqSTFPUzAxTGpJMll5NHlOVFV0TGpVNE9TMHVNRGt0TVM0ek9UVXRMamN4TmkweExqSTBPR0UySURZZ01DQXdJREF0TkM0MU9UUWdOUzR6TmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLW1vb25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG91ZE1vb246IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTZhMyAzIDAgMCAxIDAgNkg3YTUgNSAwIDEgMSA0LjktNnonIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRNb29uO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb3VkLXJhaW4td2luZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TkM0NE9UbEJOeUEzSURBZ01TQXhJREUxTGpjeElEaG9NUzQzT1dFMExqVWdOQzQxSURBZ01DQXhJREl1TlNBNExqSTBNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzR5SURJeUlETXROeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPU0F4TXkweklEY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNJREV6TFRNZ055SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1yYWluLXdpbmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG91ZFJhaW5XaW5kOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS4yIDIyIDMtNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDEzLTMgNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxMy0zIDcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRSYWluV2luZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbG91ZC1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxTGpjNE1pQTFMamM0TWtFM0lEY2dNQ0F3SURBZ09TQXhPV2c0TGpWaE5DNDFJRFF1TlNBd0lEQWdNQ0F4TGpNd055MHVNVGt6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVM0MU16SWdNVFl1TlVFMExqVWdOQzQxSURBZ01DQXdJREUzTGpVZ01UQm9MVEV1TnpsQk55NHdNRGdnTnk0d01EZ2dNQ0F3SURBZ01UQWdOUzR3TnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb3VkT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001Ljc4MiA1Ljc4MkE3IDcgMCAwIDAgOSAxOWg4LjVhNC41IDQuNSAwIDAgMCAxLjMwNy0uMTkzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjUzMiAxNi41QTQuNSA0LjUgMCAwIDAgMTcuNSAxMGgtMS43OUE3LjAwOCA3LjAwOCAwIDAgMCAxMCA1LjA3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENsb3VkT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb3VkLXJhaW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5DNDRPVGxCTnlBM0lEQWdNU0F4SURFMUxqY3hJRGhvTVM0M09XRTBMalVnTkM0MUlEQWdNQ0F4SURJdU5TQTRMakkwTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UUjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TkhZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOblkySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdWQtcmFpblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb3VkUmFpbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE0djYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNHY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2djYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRSYWluO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb3VkLXNub3dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5DNDRPVGxCTnlBM0lEQWdNU0F4SURFMUxqY3hJRGhvTVM0M09XRTBMalVnTkM0MUlEQWdNQ0F4SURJdU5TQTRMakkwTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE5XZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRsb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TjJndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl4YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFZvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhPV2d1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLXNub3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG91ZFNub3c6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE5aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjFoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE1aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOWguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRTbm93O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb3VkLXN1bi1yYWluXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAwTGpreklEUXVPVE1nTVM0ME1TQXhMalF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPUzR3TnlBMExqa3pMVEV1TkRFZ01TNDBNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFV1T1RRM0lERXlMalkxWVRRZ05DQXdJREFnTUMwMUxqa3lOUzAwTGpFeU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXlNR0UxSURVZ01DQXhJREVnT0M0NUxUUklNVE5oTXlBeklEQWdNQ0F4SURJZ05TNHlOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTWpCMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhPWFl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdWQtc3VuLXJhaW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG91ZFN1blJhaW46IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQuOTMgNC45MyAxLjQxIDEuNDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOS4wNyA0LjkzLTEuNDEgMS40MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNS45NDcgMTIuNjVhNCA0IDAgMCAwLTUuOTI1LTQuMTI4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMjB2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE5djInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRTdW5SYWluO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb3VkLXN1blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMExqa3pJRFF1T1RNZ01TNDBNU0F4TGpReElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T1M0d055QTBMamt6TFRFdU5ERWdNUzQwTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVdU9UUTNJREV5TGpZMVlUUWdOQ0F3SURBZ01DMDFMamt5TlMwMExqRXlPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE1nTWpKSU4yRTFJRFVnTUNBeElERWdOQzQ1TFRaSU1UTmhNeUF6SURBZ01DQXhJREFnTmxvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLXN1blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb3VkU3VuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200LjkzIDQuOTMgMS40MSAxLjQxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEyaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuMDcgNC45My0xLjQxIDEuNDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUuOTQ3IDEyLjY1YTQgNCAwIDAgMC01LjkyNS00LjEyOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAyMkg3YTUgNSAwIDEgMSA0LjktNkgxM2EzIDMgMCAwIDEgMCA2WicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG91ZFN1bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjbG91ZC1zeW5jXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNVGd0TVM0MU16VWdNUzQyTURWaE5TQTFJREFnTUNBeExUZ3RNUzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBeU1uWXROR2d0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU9UazJJREUxTGpJMU1VRTBMalVnTkM0MUlEQWdNQ0F3SURFM0xqUTVOU0E0YUMweExqYzVZVGNnTnlBd0lERWdNQzB4TWk0M01Ea2dOUzQyTURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01UQjJOR2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAzSURFMElERXVOVE0xTFRFdU5qQTFZVFVnTlNBd0lEQWdNU0E0SURFdU5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZC1zeW5jXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xvdWRTeW5jOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE3IDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyMnYtNGgtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC45OTYgMTUuMjUxQTQuNSA0LjUgMCAwIDAgMTcuNDk1IDhoLTEuNzlhNyA3IDAgMSAwLTEyLjcwOSA1LjYwNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEwdjRoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG91ZFN5bmM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvdWQtdXBsb2FkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE4yT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5DNDRPVGxCTnlBM0lEQWdNU0F4SURFMUxqY3hJRGhvTVM0M09XRTBMalVnTkM0MUlEQWdNQ0F4SURJdU5TQTRMakkwTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBeE55QTBMVFFnTkNBMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nsb3VkLXVwbG9hZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb3VkVXBsb2FkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzdjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDE3IDQtNCA0IDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWRVcGxvYWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvdWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU5TQXhPVWc1WVRjZ055QXdJREVnTVNBMkxqY3hMVGxvTVM0M09XRTBMalVnTkM0MUlEQWdNU0F4SURBZ09Wb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsb3VkOiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdNMTcuNSAxOUg5YTcgNyAwIDEgMSA2LjcxLTloMS43OWE0LjUgNC41IDAgMSAxIDAgOVonIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2xvdWR5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VOU0F5TVVnNVlUY2dOeUF3SURFZ01TQTJMamN4TFRsb01TNDNPV0UwTGpVZ05DNDFJREFnTVNBeElEQWdPVm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURFd1lUTWdNeUF3SURBZ01DMHpMVE5vTFRJdU1qQTNZVFV1TlRBeUlEVXVOVEF5SURBZ01DQXdMVEV3TGpjd01pNDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG91ZHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDbG91ZHk6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNSAyMUg5YTcgNyAwIDEgMSA2LjcxLTloMS43OWE0LjUgNC41IDAgMSAxIDAgOVonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTBhMyAzIDAgMCAwLTMtM2gtMi4yMDdhNS41MDIgNS41MDIgMCAwIDAtMTAuNzAyLjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvdWR5O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNsb3ZlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFl1TVRjZ055NDRNeUF5SURJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMExqQXlJREV5WVRJdU9ESTNJREl1T0RJM0lEQWdNU0F4SURNdU9ERXROQzR4TjBFeUxqZ3lOeUF5TGpneU55QXdJREVnTVNBeE1pQTBMakF5WVRJdU9ESTNJREl1T0RJM0lEQWdNU0F4SURRdU1UY2dNeTQ0TVVFeUxqZ3lOeUF5TGpneU55QXdJREVnTVNBeE9TNDVPQ0F4TW1FeUxqZ3lOeUF5TGpneU55QXdJREVnTVMwekxqZ3hJRFF1TVRkQk1pNDRNamNnTWk0NE1qY2dNQ0F4SURFZ01USWdNVGt1T1RoaE1pNDRNamNnTWk0NE1qY2dNQ0F4SURFdE5DNHhOeTB6TGpneFFURWdNU0F3SURFZ01TQTBJREV5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAzTGpneklEY3VPRE1nT0M0ek5DQTRMak0wSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvdmVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ2xvdmVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2LjE3IDcuODMgMiAyMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000LjAyIDEyYTIuODI3IDIuODI3IDAgMSAxIDMuODEtNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiA0LjAyYTIuODI3IDIuODI3IDAgMSAxIDQuMTcgMy44MUEyLjgyNyAyLjgyNyAwIDEgMSAxOS45OCAxMmEyLjgyNyAyLjgyNyAwIDEgMS0zLjgxIDQuMTdBMi44MjcgMi44MjcgMCAxIDEgMTIgMTkuOThhMi44MjcgMi44MjcgMCAxIDEtNC4xNy0zLjgxQTEgMSAwIDEgMSA0IDEyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy44MyA3LjgzIDguMzQgOC4zNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDbG92ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY2x1YlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGN1TWpnZ09TNHdOV0UxTGpVZ05TNDFJREFnTVNBd0xURXdMalUySURCQk5TNDFJRFV1TlNBd0lERWdNQ0F4TWlBeE55NDJObUUxTGpVZ05TNDFJREFnTVNBd0lEVXVNamd0T0M0MldpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGN1TmpaTU1USWdNaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2x1YlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENsdWI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xNy4yOCA5LjA1YTUuNSA1LjUgMCAxIDAtMTAuNTYgMEE1LjUgNS41IDAgMSAwIDEyIDE3LjY2YTUuNSA1LjUgMCAxIDAgNS4yOC04LjZaJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTcuNjZMMTIgMjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ2x1YjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb2RlLXhtbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGdnTVRZZ05DMDBMVFF0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TmlBNExUUWdOQ0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMExqVWdOQzAxSURFMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvZGUteG1sXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29kZVhtbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xOCAxNiA0LTQtNC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgOC00IDQgNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0LjUgNC01IDE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvZGVYbWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTVRnZ05pMDJMVFl0TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBMkxUWWdOaUEySURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE4IDYtNi02LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCA2LTYgNiA2IDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29kZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb2RlcGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHOXNlV2R2YmlCd2IybHVkSE05SWpFeUlESWdNaklnT0M0MUlESXlJREUxTGpVZ01USWdNaklnTWlBeE5TNDFJRElnT0M0MUlERXlJRElpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakV5SWlCNE1qMGlNVElpSUhreFBTSXlNaUlnZVRJOUlqRTFMalVpSUM4K0NpQWdQSEJ2Ykhsc2FXNWxJSEJ2YVc1MGN6MGlNaklnT0M0MUlERXlJREUxTGpVZ01pQTRMalVpSUM4K0NpQWdQSEJ2Ykhsc2FXNWxJSEJ2YVc1MGN6MGlNaUF4TlM0MUlERXlJRGd1TlNBeU1pQXhOUzQxSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TWlJZ2VESTlJakV5SWlCNU1UMGlNaUlnZVRJOUlqZ3VOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29kZXBlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqIEBkZXByZWNhdGVkIEJyYW5kIGljb25zIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCBhcmUgZHVlIHRvIGJlIHJlbW92ZWQsIHBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vbHVjaWRlLWljb25zL2x1Y2lkZS9pc3N1ZXMvNjcwLiBXZSByZWNvbW1lbmQgdXNpbmcgaHR0cHM6Ly9zaW1wbGVpY29ucy5vcmcvP3E9Y29kZXBlbiBpbnN0ZWFkLiBUaGlzIGljb24gd2lsbCBiZSByZW1vdmVkIGluIHYxLjBcbiAqL1xuY29uc3QgQ29kZXBlbjogSWNvbk5vZGUgPSBbXG4gIFsncG9seWdvbicsIHsgcG9pbnRzOiAnMTIgMiAyMiA4LjUgMjIgMTUuNSAxMiAyMiAyIDE1LjUgMiA4LjUgMTIgMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzIyJywgeTI6ICcxNS41JyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMjIgOC41IDEyIDE1LjUgMiA4LjUnIH1dLFxuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICcyIDE1LjUgMTIgOC41IDIyIDE1LjUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcyJywgeTI6ICc4LjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29kZXBlbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb2Rlc2FuZGJveFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRaV09HRXlJRElnTUNBd0lEQXRNUzB4TGpjemJDMDNMVFJoTWlBeUlEQWdNQ0F3TFRJZ01Hd3ROeUEwUVRJZ01pQXdJREFnTUNBeklEaDJPR0V5SURJZ01DQXdJREFnTVNBeExqY3piRGNnTkdFeUlESWdNQ0F3SURBZ01pQXdiRGN0TkVFeUlESWdNQ0F3SURBZ01qRWdNVFo2SWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJamN1TlNBMExqSXhJREV5SURZdU9ERWdNVFl1TlNBMExqSXhJaUF2UGdvZ0lEeHdiMng1YkdsdVpTQndiMmx1ZEhNOUlqY3VOU0F4T1M0M09TQTNMalVnTVRRdU5pQXpJREV5SWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJakl4SURFeUlERTJMalVnTVRRdU5pQXhOaTQxSURFNUxqYzVJaUF2UGdvZ0lEeHdiMng1YkdsdVpTQndiMmx1ZEhNOUlqTXVNamNnTmk0NU5pQXhNaUF4TWk0d01TQXlNQzQzTXlBMkxqazJJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRXlJaUI1TVQwaU1qSXVNRGdpSUhreVBTSXhNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29kZXNhbmRib3hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPWNvZGVzYW5kYm94IGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBDb2Rlc2FuZGJveDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnonLFxuICAgIH0sXG4gIF0sXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzcuNSA0LjIxIDEyIDYuODEgMTYuNSA0LjIxJyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnNy41IDE5Ljc5IDcuNSAxNC42IDMgMTInIH1dLFxuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICcyMSAxMiAxNi41IDE0LjYgMTYuNSAxOS43OScgfV0sXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzMuMjcgNi45NiAxMiAxMi4wMSAyMC43MyA2Ljk2JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMjIuMDgnLCB5MjogJzEyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvZGVzYW5kYm94O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvZmZlZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURoaE1TQXhJREFnTUNBeElERWdNWFk0WVRRZ05DQXdJREFnTVMwMElEUklOMkUwSURRZ01DQXdJREV0TkMwMFZqbGhNU0F4SURBZ01DQXhJREV0TVdneE5HRTBJRFFnTUNBeElERWdNQ0E0YUMweElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklESjJNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29mZmVlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29mZmVlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYgOGExIDEgMCAwIDEgMSAxdjhhNCA0IDAgMCAxLTQgNEg3YTQgNCAwIDAgMS00LTRWOWExIDEgMCAwIDEgMS0xaDE0YTQgNCAwIDEgMSAwIDhoLTEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDJ2MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDb2ZmZWU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29pbnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJNElpQmplVDBpT0NJZ2NqMGlOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGd1TURrZ01UQXVNemRCTmlBMklEQWdNU0F4SURFd0xqTTBJREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURab01YWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaTQzTVNBeE15NDRPQzQzTGpjeExUSXVPRElnTWk0NE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb2luc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENvaW5zOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnOCcsIGN5OiAnOCcsIHI6ICc2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4LjA5IDEwLjM3QTYgNiAwIDEgMSAxMC4zNCAxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDZoMXY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2LjcxIDEzLjg4LjcuNzEtMi44MiAyLjgyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvaW5zO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRBdU1qY2dOeUF6TGpNMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1TQXhNeTQzTXkwMElEWXVPVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJeWRpMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElERXlhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzSURJd0xqWTJMVEV0TVM0M015SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNeTR6TkMweElERXVOek1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRKb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qQXVOallnTVRjdE1TNDNNeTB4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TUM0Mk5pQTNMVEV1TnpNZ01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE15NHpOQ0F4TnlBeExqY3pMVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVE11TXpRZ055QXhMamN6SURFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1pSWdjajBpTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0k0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDEwLjI3IDcgMy4zNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMSAxMy43My00IDYuOTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJ2LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEyaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMjAuNjYtMS0xLjczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDMuMzQtMSAxLjczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC42NiAxNy0xLjczLTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAuNjYgNy0xLjczIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMy4zNCAxNyAxLjczLTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMy4zNCA3IDEuNzMgMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvbHVtbnMtMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF6ZGpFNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvbHVtbnMtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENvbHVtbnMyOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2MTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29sdW1uczI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29sdW1ucy0zLWNvZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TlNBeU1VZzFZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURFMFlUSWdNaUF3SURBZ01TQXlJREoyTlM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DNHpJREU1TGpZZ01TMHVOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTTNZM0xqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFMaklnTVRZdU9TMHVPUzB1TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZdU5pQXlNUzQzTGpNdExqa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJMamdnTVRVdU15MHVOQzB4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T1M0eElERTFMakl1TXkwdU9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1Ua3VOaUF5TVM0M0xTNDBMVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3TGpjZ01UWXVPQ0F4TFM0MElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TNDNJREU1TGpRdExqa3RMak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTTNZeE9DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhPQ0lnWTNrOUlqRTRJaUJ5UFNJeklpQXZQZ284TDNOMlp6ND0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvbHVtbnMtMy1jb2dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb2x1bW5zM0NvZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC41IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuMyAxOS42IDEtLjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM3Y3LjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUuMiAxNi45LS45LS4zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2LjYgMjEuNy4zLS45JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2LjggMTUuMy0uNC0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjEgMTUuMi4zLS45JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjYgMjEuNy0uNC0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjcgMTYuOCAxLS40JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxLjcgMTkuNC0uOS0uMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDN2MTgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTgnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDb2x1bW5zM0NvZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb2x1bW5zLTNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SUROMk1UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJRE4yTVRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvbHVtbnMtM1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENvbHVtbnMzOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgM3YxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzdjE4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvbHVtbnMzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvbHVtbnMtNFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNMalVnTTNZeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNM1l4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZdU5TQXpkakU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29sdW1ucy00XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29sdW1uczQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNy41IDN2MTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3YxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNi41IDN2MTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29sdW1uczQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29tYmluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTTJFeElERWdNQ0F3SURFZ01TQXhkalZoTVNBeElEQWdNQ0F4TFRFZ01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNMkV4SURFZ01DQXdJREVnTVNBeGRqVmhNU0F4SURBZ01DQXhMVEVnTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TnlBeE5TQXpJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGNnTWpFZ015MHpTRFZoTWlBeUlEQWdNQ0F4TFRJdE1uWXRNaUlnTHo0S0lDQThjbVZqZENCNFBTSXhOQ0lnZVQwaU1UUWlJSGRwWkhSb1BTSTNJaUJvWldsbmFIUTlJamNpSUhKNFBTSXhJaUF2UGdvZ0lEeHlaV04wSUhnOUlqTWlJSGs5SWpNaUlIZHBaSFJvUFNJM0lpQm9aV2xuYUhROUlqY2lJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvbWJpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb21iaW5lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgM2ExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDE1IDMgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDIxIDMtM0g1YTIgMiAwIDAgMS0yLTJ2LTInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxNCcsIHk6ICcxNCcsIHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCByeDogJzEnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzMnLCB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvbWJpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29tbWFuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTm5ZeE1tRXpJRE1nTUNBeElEQWdNeTB6U0RaaE15QXpJREFnTVNBd0lETWdNMVkyWVRNZ015QXdJREVnTUMweklETm9NVEpoTXlBeklEQWdNU0F3TFRNdE15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb21tYW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29tbWFuZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSA2djEyYTMgMyAwIDEgMCAzLTNINmEzIDMgMCAxIDAgMyAzVjZhMyAzIDAgMSAwLTMgM2gxMmEzIDMgMCAxIDAtMy0zJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvbW1hbmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29tcGFzc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFl1TWpRZ055NDNOaTB4TGpnd05DQTFMalF4TVdFeUlESWdNQ0F3SURFdE1TNHlOalVnTVM0eU5qVk1OeTQzTmlBeE5pNHlOR3d4TGpnd05DMDFMalF4TVdFeUlESWdNQ0F3SURFZ01TNHlOalV0TVM0eU5qVjZJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqRXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb21wYXNzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29tcGFzczogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNi4yNCA3Ljc2LTEuODA0IDUuNDExYTIgMiAwIDAgMS0xLjI2NSAxLjI2NUw3Ljc2IDE2LjI0bDEuODA0LTUuNDExYTIgMiAwIDAgMSAxLjI2NS0xLjI2NXonLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDb21wYXNzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFV1TlRNMklERXhMakk1TTJFeElERWdNQ0F3SURBZ01DQXhMalF4Tkd3eUxqTTNOaUF5TGpNM04yRXhJREVnTUNBd0lEQWdNUzQwTVRRZ01Hd3lMak0zTnkweUxqTTNOMkV4SURFZ01DQXdJREFnTUMweExqUXhOR3d0TWk0ek56Y3RNaTR6TnpkaE1TQXhJREFnTUNBd0xURXVOREUwSURCNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUxqSTVOeUF4TVM0eU9UTmhNU0F4SURBZ01DQXdJREFnTVM0ME1UUnNNaTR6TnpjZ01pNHpOemRoTVNBeElEQWdNQ0F3SURFdU5ERTBJREJzTWk0ek56Y3RNaTR6TnpkaE1TQXhJREFnTUNBd0lEQXRNUzQwTVRSTU5pNHdPRGdnT0M0NU1UWmhNU0F4SURBZ01DQXdMVEV1TkRFMElEQjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRMamt4TmlBeE55NDVNVEpoTVNBeElEQWdNQ0F3SURBZ01TNDBNVFZzTWk0ek56Y2dNaTR6TnpaaE1TQXhJREFnTUNBd0lERXVOREUwSURCc01pNHpOemN0TWk0ek56WmhNU0F4SURBZ01DQXdJREF0TVM0ME1UVnNMVEl1TXpjM0xUSXVNemMyWVRFZ01TQXdJREFnTUMweExqUXhOQ0F3ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0M0NU1UWWdOQzQyTnpSaE1TQXhJREFnTUNBd0lEQWdNUzQwTVRSc01pNHpOemNnTWk0ek56WmhNU0F4SURBZ01DQXdJREV1TkRFMElEQnNNaTR6TnpjdE1pNHpOelpoTVNBeElEQWdNQ0F3SURBdE1TNDBNVFJzTFRJdU16YzNMVEl1TXpjM1lURWdNU0F3SURBZ01DMHhMalF4TkNBd2VpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb21wb25lbnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb21wb25lbnQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUuNTM2IDExLjI5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NiAyLjM3N2ExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3N2ExIDEgMCAwIDAgMC0xLjQxNGwtMi4zNzctMi4zNzdhMSAxIDAgMCAwLTEuNDE0IDB6JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi4yOTcgMTEuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc3IDIuMzc3YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc3YTEgMSAwIDAgMCAwLTEuNDE0TDYuMDg4IDguOTE2YTEgMSAwIDAgMC0xLjQxNCAweicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTguOTE2IDE3LjkxMmExIDEgMCAwIDAgMCAxLjQxNWwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNWwtMi4zNzctMi4zNzZhMSAxIDAgMCAwLTEuNDE0IDB6JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOC45MTYgNC42NzRhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzcgMi4zNzZhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzZhMSAxIDAgMCAwIDAtMS40MTRsLTIuMzc3LTIuMzc3YTEgMSAwIDAgMC0xLjQxNCAweicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb21wdXRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRRaUlHaGxhV2RvZEQwaU9DSWdlRDBpTlNJZ2VUMGlNaUlnY25nOUlqSWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakl3SWlCb1pXbG5hSFE5SWpnaUlIZzlJaklpSUhrOUlqRTBJaUJ5ZUQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhPR2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE9HZzJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb21wdXRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENvbXB1dGVyOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE0JywgaGVpZ2h0OiAnOCcsIHg6ICc1JywgeTogJzInLCByeDogJzInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc4JywgeDogJzInLCB5OiAnMTQnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOGgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29tcHV0ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29uY2llcmdlLWJlbGxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeU1HRXhJREVnTUNBd0lERXRNUzB4ZGkweFlUSWdNaUF3SURBZ01TQXlMVEpvTVRaaE1pQXlJREFnTUNBeElESWdNbll4WVRFZ01TQXdJREFnTVMweElERmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0F4Tm1FNElEZ2dNQ0F4SURBdE1UWWdNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTkhZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQTBhRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29uY2llcmdlLWJlbGxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb25jaWVyZ2VCZWxsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgMjBhMSAxIDAgMCAxLTEtMXYtMWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxWicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxNmE4IDggMCAxIDAtMTYgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA0djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgNGg0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvbmNpZXJnZUJlbGw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNakF1T1NBeE9DNDFOUzA0TFRFMUxqazRZVEVnTVNBd0lEQWdNQzB4TGpnZ01Hd3RPQ0F4TlM0NU9DSWdMejRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVElpSUdONVBTSXhPU0lnY25nOUlqa2lJSEo1UFNJeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb25lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIwLjkgMTguNTUtOC0xNS45OGExIDEgMCAwIDAtMS44IDBsLTggMTUuOTgnIH1dLFxuICBbJ2VsbGlwc2UnLCB7IGN4OiAnMTInLCBjeTogJzE5Jywgcng6ICc5Jywgcnk6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29uc3RydWN0aW9uXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0I0UFNJeUlpQjVQU0kySWlCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU9DSWdjbmc5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lERTBkamNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRSMk55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNM1l6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSUROMk15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVFFnTWk0eklEWXVNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFFnTmlBM0xqY2dOeTQzSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0SURZZ09DQTRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb25zdHJ1Y3Rpb25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb25zdHJ1Y3Rpb246IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzYnLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnOCcsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNHY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTR2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzdjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAzdjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTQgMi4zIDYuMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCA2IDcuNyA3LjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCA2IDggOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDb25zdHJ1Y3Rpb247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29udGFjdC1yb3VuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55NDVNVFVnTWpKaE5pQTJJREFnTUNBd0xURXlJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTW5ZeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpRaUlDOCtDaUFnUEhKbFkzUWdlRDBpTXlJZ2VUMGlOQ0lnZDJsa2RHZzlJakU0SWlCb1pXbG5hSFE5SWpFNElpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvbnRhY3Qtcm91bmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb250YWN0Um91bmQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjkxNSAyMmE2IDYgMCAwIDAtMTIgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDJ2MicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc0JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMycsIHk6ICc0Jywgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4Jywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvbnRhY3RSb3VuZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb250YWN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURJeWRpMHlZVElnTWlBd0lEQWdNU0F5TFRKb05tRXlJRElnTUNBd0lERWdNaUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01uWXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVEVpSUhJOUlqTWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU15SWdlVDBpTkNJZ2QybGtkR2c5SWpFNElpQm9aV2xuYUhROUlqRTRJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb250YWN0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29udGFjdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMnYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMnYyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzExJywgcjogJzMnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzQnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29udGFjdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb250YWluZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ055NDNZekF0TGpZdExqUXRNUzR5TFM0NExURXVOV3d0Tmk0ekxUTXVPV0V4TGpjeUlERXVOeklnTUNBd0lEQXRNUzQzSURCc0xURXdMak1nTm1NdExqVXVNaTB1T1M0NExTNDVJREV1TkhZMkxqWmpNQ0F1TlM0MElERXVNaTQ0SURFdU5XdzJMak1nTXk0NVlURXVOeklnTVM0M01pQXdJREFnTUNBeExqY2dNR3d4TUM0ekxUWmpMalV0TGpNdU9TMHhJQzQ1TFRFdU5Wb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREl4TGpsV01UUk1NaTR4SURrdU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UQWdNVFFnTVRFdU9TMDJMamtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFNUxqaDJMVGd1TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01UY3VOVlk1TGpRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvbnRhaW5lclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENvbnRhaW5lcjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMiA3LjdjMC0uNi0uNC0xLjItLjgtMS41bC02LjMtMy45YTEuNzIgMS43MiAwIDAgMC0xLjcgMGwtMTAuMyA2Yy0uNS4yLS45LjgtLjkgMS40djYuNmMwIC41LjQgMS4yLjggMS41bDYuMyAzLjlhMS43MiAxLjcyIDAgMCAwIDEuNyAwbDEwLjMtNmMuNS0uMy45LTEgLjktMS41WicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDIxLjlWMTRMMi4xIDkuMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNCAxMS45LTYuOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxOS44di04LjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTcuNVY5LjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29udGFpbmVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvbnRyYXN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGhoTmlBMklEQWdNQ0F3SURBdE1USjJNVEo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29udHJhc3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb250cmFzdDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOGE2IDYgMCAwIDAgMC0xMnYxMnonIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29udHJhc3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29va2llXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbUV4TUNBeE1DQXdJREVnTUNBeE1DQXhNQ0EwSURRZ01DQXdJREV0TlMwMUlEUWdOQ0F3SURBZ01TMDFMVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGd1TlNBNExqVjJMakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE5TNDFkaTR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USjJMakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBeE4zWXVNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRSMkxqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb29raWVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb29raWU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMmExMCAxMCAwIDEgMCAxMCAxMCA0IDQgMCAwIDEtNS01IDQgNCAwIDAgMS01LTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC41IDguNXYuMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTUuNXYuMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2LjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE3di4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE0di4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDb29raWU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29va2luZy1wb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1tZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRKMk9HRXlJRElnTUNBd0lERXRNaUF5U0RaaE1pQXlJREFnTUNBeExUSXRNbll0T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TkNBNElERTJMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGd1T0RZZ05pNDNPQzB1TkRVdE1TNDRNV0V5SURJZ01DQXdJREVnTVM0ME5TMHlMalF6YkRFdU9UUXRMalE0WVRJZ01pQXdJREFnTVNBeUxqUXpJREV1TkRac0xqUTFJREV1T0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nvb2tpbmctcG90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29va2luZ1BvdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNCA4IDE2LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOC44NiA2Ljc4LS40NS0xLjgxYTIgMiAwIDAgMSAxLjQ1LTIuNDNsMS45NC0uNDhhMiAyIDAgMCAxIDIuNDMgMS40NmwuNDUgMS44JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvb2tpbmdQb3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29weS1jaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVElnTVRVZ01pQXlJRFF0TkNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UUWlJR2hsYVdkb2REMGlNVFFpSUhnOUlqZ2lJSGs5SWpnaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4Tm1NdE1TNHhJREF0TWkwdU9TMHlMVEpXTkdNd0xURXVNUzQ1TFRJZ01pMHlhREV3WXpFdU1TQXdJRElnTGprZ01pQXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb3B5LWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29weUNoZWNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEyIDE1IDIgMiA0LTQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICcxNCcsIHg6ICc4JywgeTogJzgnLCByeDogJzInLCByeTogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvcHlDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb3B5LW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE9DSWdlVEU5SWpFMUlpQjVNajBpTVRVaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqRTBJaUJvWldsbmFIUTlJakUwSWlCNFBTSTRJaUI1UFNJNElpQnllRDBpTWlJZ2NuazlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTVRaakxURXVNU0F3TFRJdExqa3RNaTB5VmpSak1DMHhMakV1T1MweUlESXRNbWd4TUdNeExqRWdNQ0F5SUM0NUlESWdNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29weS1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENvcHlNaW51czogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTgnLCB5MTogJzE1JywgeTI6ICcxNScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNCcsIGhlaWdodDogJzE0JywgeDogJzgnLCB5OiAnOCcsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29weU1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvcHktcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNVFVpSUhneVBTSXhOU0lnZVRFOUlqRXlJaUI1TWowaU1UZ2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXlJaUI0TWowaU1UZ2lJSGt4UFNJeE5TSWdlVEk5SWpFMUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhOQ0lnYUdWcFoyaDBQU0l4TkNJZ2VEMGlPQ0lnZVQwaU9DSWdjbmc5SWpJaUlISjVQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFMll5MHhMakVnTUMweUxTNDVMVEl0TWxZMFl6QXRNUzR4TGprdE1pQXlMVEpvTVRCak1TNHhJREFnTWlBdU9TQXlJRElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29weS1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29weVBsdXM6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMTUnLCB4MjogJzE1JywgeTE6ICcxMicsIHkyOiAnMTgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzE4JywgeTE6ICcxNScsIHkyOiAnMTUnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICcxNCcsIHg6ICc4JywgeTogJzgnLCByeDogJzInLCByeTogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvcHlQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvcHktc2xhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4T0NJZ2VURTlJakU0SWlCNU1qMGlNVElpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFMElpQm9aV2xuYUhROUlqRTBJaUI0UFNJNElpQjVQU0k0SWlCeWVEMGlNaUlnY25rOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNVFpqTFRFdU1TQXdMVEl0TGprdE1pMHlWalJqTUMweExqRXVPUzB5SURJdE1tZ3hNR014TGpFZ01DQXlJQzQ1SURJZ01pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb3B5LXNsYXNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29weVNsYXNoOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxOCcsIHkxOiAnMTgnLCB5MjogJzEyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE0JywgaGVpZ2h0OiAnMTQnLCB4OiAnOCcsIHk6ICc4Jywgcng6ICcyJywgcnk6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDb3B5U2xhc2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29weVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRRaUlHaGxhV2RvZEQwaU1UUWlJSGc5SWpnaUlIazlJamdpSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhObU10TVM0eElEQXRNaTB1T1MweUxUSldOR013TFRFdU1TNDVMVElnTWkweWFERXdZekV1TVNBd0lESWdMamtnTWlBeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvcHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb3B5OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE0JywgaGVpZ2h0OiAnMTQnLCB4OiAnOCcsIHk6ICc4Jywgcng6ICcyJywgcnk6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDb3B5O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvcHkteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNVElpSUhneVBTSXhPQ0lnZVRFOUlqRXlJaUI1TWowaU1UZ2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXlJaUI0TWowaU1UZ2lJSGt4UFNJeE9DSWdlVEk5SWpFeUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhOQ0lnYUdWcFoyaDBQU0l4TkNJZ2VEMGlPQ0lnZVQwaU9DSWdjbmc5SWpJaUlISjVQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFMll5MHhMakVnTUMweUxTNDVMVEl0TWxZMFl6QXRNUzR4TGprdE1pQXlMVEpvTVRCak1TNHhJREFnTWlBdU9TQXlJRElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29weS14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29weVg6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzE4JywgeTE6ICcxMicsIHkyOiAnMTgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzE4JywgeTE6ICcxOCcsIHkyOiAnMTInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICcxNCcsIHg6ICc4JywgeTogJzgnLCByeDogJzInLCByeTogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvcHlYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvcHlsZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TNHhOeUF4TkM0NE0yRTBJRFFnTUNBeElEQWdNQzAxTGpZMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NvcHlsZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29weWxlZnQ6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS4xNyAxNC44M2E0IDQgMCAxIDAgMC01LjY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvcHlsZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvcHlyaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFF1T0RNZ01UUXVPRE5oTkNBMElEQWdNU0F4SURBdE5TNDJOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29weXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29weXJpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjgzIDE0LjgzYTQgNCAwIDEgMSAwLTUuNjYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29weXJpZ2h0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvcm5lci1kb3duLXJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdNVEFnTlNBMUxUVWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0EwZGpkaE5DQTBJREFnTUNBd0lEUWdOR2d4TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nvcm5lci1kb3duLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29ybmVyRG93blJpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE1IDEwIDUgNS01IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA0djdhNCA0IDAgMCAwIDQgNGgxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDb3JuZXJEb3duUmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY29ybmVyLWRvd24tbGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTkhZM1lUUWdOQ0F3SURBZ01TMDBJRFJJTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE1DMDFJRFVnTlNBMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nvcm5lci1kb3duLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb3JuZXJEb3duTGVmdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMCA0djdhNCA0IDAgMCAxLTQgNEg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTAtNSA1IDUgNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDb3JuZXJEb3duTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb3JuZXItbGVmdC1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdNVFV0TlNBMUxUVXROU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTkdndE4yRTBJRFFnTUNBd0lEQXROQ0EwZGpFeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nvcm5lci1sZWZ0LWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDb3JuZXJMZWZ0RG93bjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxNS01IDUtNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDRoLTdhNCA0IDAgMCAwLTQgNHYxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDb3JuZXJMZWZ0RG93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb3JuZXItbGVmdC11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnT1NBNUlEUWdOQ0E1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeU1HZ3ROMkUwSURRZ01DQXdJREV0TkMwMFZqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb3JuZXItbGVmdC11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENvcm5lckxlZnRVcDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCA5IDkgNCA0IDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMjBoLTdhNCA0IDAgMCAxLTQtNFY0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvcm5lckxlZnRVcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb3JuZXItcmlnaHQtZG93blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEFnTVRVZ05TQTFJRFV0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMGFEZGhOQ0EwSURBZ01DQXhJRFFnTkhZeE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb3JuZXItcmlnaHQtZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENvcm5lclJpZ2h0RG93bjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNSA1IDUgNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgNGg3YTQgNCAwIDAgMSA0IDR2MTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29ybmVyUmlnaHREb3duO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNvcm5lci1yaWdodC11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEFnT1NBMUxUVWdOU0ExSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURJd2FEZGhOQ0EwSURBZ01DQXdJRFF0TkZZMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Nvcm5lci1yaWdodC11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENvcm5lclJpZ2h0VXA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgOSA1LTUgNSA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMjBoN2E0IDQgMCAwIDAgNC00VjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ29ybmVyUmlnaHRVcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb3JuZXItdXAtbGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpCMkxUZGhOQ0EwSURBZ01DQXdMVFF0TkVnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTBJRFFnT1d3MUxUVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jb3JuZXItdXAtbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENvcm5lclVwTGVmdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMCAyMHYtN2E0IDQgMCAwIDAtNC00SDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNCA0IDlsNS01JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENvcm5lclVwTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjb3JuZXItdXAtcmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ01UUWdOUzAxTFRVdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlNSFl0TjJFMElEUWdNQ0F3SURFZ05DMDBhREV5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY29ybmVyLXVwLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ29ybmVyVXBSaWdodDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxNCA1LTUtNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMjB2LTdhNCA0IDAgMCAxIDQtNGgxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDb3JuZXJVcFJpZ2h0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNwdVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpCMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBeU1IWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01USm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TjJneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlEZG9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRKb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVGRvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ04yZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREl3ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01uWXlJaUF2UGdvZ0lEeHlaV04wSUhnOUlqUWlJSGs5SWpRaUlIZHBaSFJvUFNJeE5pSWdhR1ZwWjJoMFBTSXhOaUlnY25nOUlqSWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU9DSWdlVDBpT0NJZ2QybGtkR2c5SWpnaUlHaGxhV2RvZEQwaU9DSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NwdVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENwdTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyMHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxN2gyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgN2gyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEyaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTdoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA3aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMnYyJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNCcsIHk6ICc0Jywgd2lkdGg6ICcxNicsIGhlaWdodDogJzE2Jywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnOCcsIHk6ICc4Jywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDcHU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY3JlYXRpdmUtY29tbW9uc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnT1M0ellUSXVPQ0F5TGpnZ01DQXdJREF0TXk0MUlERWdNeTR4SURNdU1TQXdJREFnTUNBd0lETXVOQ0F5TGpjZ01pNDNJREFnTUNBd0lETXVOU0F4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBNUxqTmhNaTQ0SURJdU9DQXdJREFnTUMwekxqVWdNU0F6TGpFZ015NHhJREFnTUNBd0lEQWdNeTQwSURJdU55QXlMamNnTUNBd0lEQWdNeTQxSURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NyZWF0aXZlLWNvbW1vbnNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDcmVhdGl2ZUNvbW1vbnM6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOS4zYTIuOCAyLjggMCAwIDAtMy41IDEgMy4xIDMuMSAwIDAgMCAwIDMuNCAyLjcgMi43IDAgMCAwIDMuNSAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDkuM2EyLjggMi44IDAgMCAwLTMuNSAxIDMuMSAzLjEgMCAwIDAgMCAzLjQgMi43IDIuNyAwIDAgMCAzLjUgMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDcmVhdGl2ZUNvbW1vbnM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY3JlZGl0LWNhcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFFpSUhnOUlqSWlJSGs5SWpVaUlISjRQU0l5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l5SWlCNE1qMGlNaklpSUhreFBTSXhNQ0lnZVRJOUlqRXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jcmVkaXQtY2FyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENyZWRpdENhcmQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzUnLCByeDogJzInIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzEwJywgeTI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDcmVkaXRDYXJkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNyb2lzc2FudFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TWlBeE9FZzBMamMzTkdFeExqVWdNUzQxSURBZ01DQXhMVEV1TXpVeUxTNDVOeUF4TVNBeE1TQXdJREFnTVNBdU1UTXlMVFl1TkRnM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhNQzR5VmpRdU56YzBZVEV1TlNBeExqVWdNQ0F3SURBdExqazNMVEV1TXpVeUlERXhJREV4SURBZ01DQXdMVFl1TkRnMkxqRXpNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTldFMElETWdNQ0F3SURFZ05DQXpJRElnTWlBd0lEQWdNUzB5SURJZ01UQWdNVEFnTUNBd0lEQXROUzR4TXprZ01TNDBNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F4T0dFeklEUWdNQ0F3SURBZ015QTBJRElnTWlBd0lEQWdNQ0F5TFRJZ01UQWdNVEFnTUNBd0lERWdNUzQwTWkwMUxqRTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRMamN3T1NBeUxqVTFOR0V4TUNBeE1DQXdJREFnTUMwMkxqRTFOU0EyTGpFMU5TQXhMalVnTVM0MUlEQWdNQ0F3SUM0Mk56WWdNUzQyTWpac09TNDRNRGNnTlM0ME1tRXlJRElnTUNBd0lEQWdNaTQzTVRndE1pNDNNVGhzTFRVdU5ESXRPUzQ0TURkaE1TNDFJREV1TlNBd0lEQWdNQzB4TGpZeU5pMHVOamMySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY3JvaXNzYW50XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ3JvaXNzYW50OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwLjIgMThINC43NzRhMS41IDEuNSAwIDAgMS0xLjM1Mi0uOTcgMTEgMTEgMCAwIDEgLjEzMi02LjQ4NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMC4yVjQuNzc0YTEuNSAxLjUgMCAwIDAtLjk3LTEuMzUyIDExIDExIDAgMCAwLTYuNDg2LjEzMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA1YTQgMyAwIDAgMSA0IDMgMiAyIDAgMCAxLTIgMiAxMCAxMCAwIDAgMC01LjEzOSAxLjQyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMThhMyA0IDAgMCAwIDMgNCAyIDIgMCAwIDAgMi0yIDEwIDEwIDAgMCAxIDEuNDItNS4xNCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004LjcwOSAyLjU1NGExMCAxMCAwIDAgMC02LjE1NSA2LjE1NSAxLjUgMS41IDAgMCAwIC42NzYgMS42MjZsOS44MDcgNS40MmEyIDIgMCAwIDAgMi43MTgtMi43MThsLTUuNDItOS44MDdhMS41IDEuNSAwIDAgMC0xLjYyNi0uNjc2JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ3JvaXNzYW50O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNyb3BcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeWRqRTBZVElnTWlBd0lEQWdNQ0F5SURKb01UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREl5VmpoaE1pQXlJREFnTUNBd0xUSXRNa2d5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY3JvcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENyb3A6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiAydjE0YTIgMiAwIDAgMCAyIDJoMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMjJWOGEyIDIgMCAwIDAtMi0ySDInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ3JvcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjcm9zc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0E1WVRJZ01pQXdJREFnTUMweUlESjJNbUV5SURJZ01DQXdJREFnTWlBeWFEUmhNU0F4SURBZ01DQXhJREVnTVhZMFlUSWdNaUF3SURBZ01DQXlJREpvTW1FeUlESWdNQ0F3SURBZ01pMHlkaTAwWVRFZ01TQXdJREFnTVNBeExURm9OR0V5SURJZ01DQXdJREFnTWkweWRpMHlZVElnTWlBd0lEQWdNQzB5TFRKb0xUUmhNU0F4SURBZ01DQXhMVEV0TVZZMFlUSWdNaUF3SURBZ01DMHlMVEpvTFRKaE1pQXlJREFnTUNBd0xUSWdNblkwWVRFZ01TQXdJREFnTVMweElERjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jcm9zc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENyb3NzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgOWEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMCAwIDIgMmg0YTEgMSAwIDAgMSAxIDF2NGEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtNGExIDEgMCAwIDEgMS0xaDRhMiAyIDAgMCAwIDItMnYtMmEyIDIgMCAwIDAtMi0yaC00YTEgMSAwIDAgMS0xLTFWNGEyIDIgMCAwIDAtMi0yaC0yYTIgMiAwIDAgMC0yIDJ2NGExIDEgMCAwIDEtMSAxeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IENyb3NzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGNyb3NzaGFpclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNaklpSUhneVBTSXhPQ0lnZVRFOUlqRXlJaUI1TWowaU1USWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqWWlJSGd5UFNJeUlpQjVNVDBpTVRJaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4TWlJZ2VURTlJallpSUhreVBTSXlJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRXlJaUI1TVQwaU1qSWlJSGt5UFNJeE9DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jcm9zc2hhaXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDcm9zc2hhaXI6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjInLCB4MjogJzE4JywgeTE6ICcxMicsIHkyOiAnMTInIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNicsIHgyOiAnMicsIHkxOiAnMTInLCB5MjogJzEyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnNicsIHkyOiAnMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzIyJywgeTI6ICcxOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDcm9zc2hhaXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY3Jvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU5UWXlJRE11TWpZMllTNDFMalVnTUNBd0lERWdMamczTmlBd1RERTFMak01SURndU9EZGhNU0F4SURBZ01DQXdJREV1TlRFMkxqSTVORXd5TVM0eE9ETWdOUzQxWVM0MUxqVWdNQ0F3SURFZ0xqYzVPQzQxTVRsc0xUSXVPRE0wSURFd0xqSTBObUV4SURFZ01DQXdJREV0TGprMU5pNDNNelJJTlM0NE1XRXhJREVnTUNBd0lERXRMamsxTnkwdU56TTBUREl1TURJZ05pNHdNbUV1TlM0MUlEQWdNQ0F4SUM0M09UZ3RMalV4T1d3MExqSTNOaUF6TGpZMk5HRXhJREVnTUNBd0lEQWdNUzQxTVRZdExqSTVOSG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTWpGb01UUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jcm93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IENyb3duOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExLjU2MiAzLjI2NmEuNS41IDAgMCAxIC44NzYgMEwxNS4zOSA4Ljg3YTEgMSAwIDAgMCAxLjUxNi4yOTRMMjEuMTgzIDUuNWEuNS41IDAgMCAxIC43OTguNTE5bC0yLjgzNCAxMC4yNDZhMSAxIDAgMCAxLS45NTYuNzM0SDUuODFhMSAxIDAgMCAxLS45NTctLjczNEwyLjAyIDYuMDJhLjUuNSAwIDAgMSAuNzk4LS41MTlsNC4yNzYgMy42NjRhMSAxIDAgMCAwIDEuNTE2LS4yOTR6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMWgxNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBDcm93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBjdWJvaWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpFdU1USWdOaTQwTFRZdU1EVXROQzR3Tm1FeUlESWdNQ0F3SURBdE1pNHhOeTB1TURWTU1pNDVOU0E0TGpReFlUSWdNaUF3SURBZ01DMHVPVFVnTVM0M2RqVXVPREpoTWlBeUlEQWdNQ0F3SUM0NE9DQXhMalkyYkRZdU1EVWdOQzR3TjJFeUlESWdNQ0F3SURBZ01pNHhOeTR3Tld3NUxqazFMVFl1TVRKaE1pQXlJREFnTUNBd0lDNDVOUzB4TGpkV09DNHdObUV5SURJZ01DQXdJREF0TGpnNExURXVOalphSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeU1uWXRPRXd5TGpJMUlEa3VNVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV3SURFMElERXhMamMzTFRZdU9EY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jdWJvaWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBDdWJvaWQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMjEuMTIgNi40LTYuMDUtNC4wNmEyIDIgMCAwIDAtMi4xNy0uMDVMMi45NSA4LjQxYTIgMiAwIDAgMC0uOTUgMS43djUuODJhMiAyIDAgMCAwIC44OCAxLjY2bDYuMDUgNC4wN2EyIDIgMCAwIDAgMi4xNy4wNWw5Ljk1LTYuMTJhMiAyIDAgMCAwIC45NS0xLjdWOC4wNmEyIDIgMCAwIDAtLjg4LTEuNjZaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjJ2LThMMi4yNSA5LjE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEwIDE0IDExLjc3LTYuODcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ3Vib2lkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGN1cC1zb2RhXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5pQTRJREV1TnpVZ01USXVNamhoTWlBeUlEQWdNQ0F3SURJZ01TNDNNbWcwTGpVMFlUSWdNaUF3SURBZ01DQXlMVEV1TnpKTU1UZ2dPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0E0YURFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERTFZVFl1TkRjZ05pNDBOeUF3SURBZ01TQTFJREFnTmk0ME55QTJMalEzSURBZ01DQXdJRFVnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ09DQXhMVFpvTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2N1cC1zb2RhXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ3VwU29kYTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ202IDggMS43NSAxMi4yOGEyIDIgMCAwIDAgMiAxLjcyaDQuNTRhMiAyIDAgMCAwIDItMS43MkwxOCA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgOGgxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NyA2LjQ3IDAgMCAwIDUgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiA4IDEtNmgyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEN1cFNvZGE7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY3VycmVuY3lcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0k0SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l6SWlCNE1qMGlOaUlnZVRFOUlqTWlJSGt5UFNJMklpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeU1TSWdlREk5SWpFNElpQjVNVDBpTXlJZ2VUSTlJallpSUM4K0NpQWdQR3hwYm1VZ2VERTlJak1pSUhneVBTSTJJaUI1TVQwaU1qRWlJSGt5UFNJeE9DSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1qRWlJSGd5UFNJeE9DSWdlVEU5SWpJeElpQjVNajBpTVRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2N1cnJlbmN5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ3VycmVuY3k6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnOCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICczJywgeDI6ICc2JywgeTE6ICczJywgeTI6ICc2JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzIxJywgeDI6ICcxOCcsIHkxOiAnMycsIHkyOiAnNicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICczJywgeDI6ICc2JywgeTE6ICcyMScsIHkyOiAnMTgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjEnLCB4MjogJzE4JywgeTE6ICcyMScsIHkyOiAnMTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ3VycmVuY3k7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgY3lsaW5kZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Wld4c2FYQnpaU0JqZUQwaU1USWlJR041UFNJMUlpQnllRDBpT1NJZ2NuazlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTlhZeE5HRTVJRE1nTUNBd0lEQWdNVGdnTUZZMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2N5bGluZGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgQ3lsaW5kZXI6IEljb25Ob2RlID0gW1xuICBbJ2VsbGlwc2UnLCB7IGN4OiAnMTInLCBjeTogJzUnLCByeDogJzknLCByeTogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA1djE0YTkgMyAwIDAgMCAxOCAwVjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgQ3lsaW5kZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZGFtXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVEV1TXpGak1TNHhOeTQxTmlBeExqVTBJREV1TmprZ015NDFJREV1TmprZ01pNDFJREFnTWk0MUxUSWdOUzB5SURFdU15QXdJREV1T1M0MUlESXVOU0F4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVM0M05TQXhPR011TXpVdU5TQXhMalExSURFZ01pNDNOU0F4SURJdU5TQXdJREl1TlMweUlEVXRNaUF4TGpNZ01DQXhMamt1TlNBeUxqVWdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TUdnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERTBhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRob05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQTJhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTTJFeElERWdNQ0F3SURBdE1TQXhkakUyWVRFZ01TQXdJREFnTUNBeElERm9OR0V4SURFZ01DQXdJREFnTVMweFRERXdJRFJoTVNBeElEQWdNQ0F3TFRFdE1Yb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kYW1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEYW06IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTEuMzFjMS4xNy41NiAxLjU0IDEuNjkgMy41IDEuNjkgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExLjc1IDE4Yy4zNS41IDEuNDUgMSAyLjc1IDEgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTBoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE0aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxOGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgNmg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgM2ExIDEgMCAwIDAtMSAxdjE2YTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xTDEwIDRhMSAxIDAgMCAwLTEtMXonIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRGFtO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRhdGFiYXNlLWJhY2t1cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThaV3hzYVhCelpTQmplRDBpTVRJaUlHTjVQU0kxSWlCeWVEMGlPU0lnY25rOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEpoT1NBeklEQWdNQ0F3SURVZ01pNDJPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnT1M0elZqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdOWFl4TkdFNUlETWdNQ0F3SURBZ05pNDBOeUF5TGpnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNblkwYURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeklESXdZVFVnTlNBd0lEQWdNQ0E1TFRNZ05DNDFJRFF1TlNBd0lEQWdNQzAwTGpVdE5DNDFZeTB4TGpNeklEQXRNaTQxTkM0MU5DMHpMalF4SURFdU5ERk1NVElnTVRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RhdGFiYXNlLWJhY2t1cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERhdGFiYXNlQmFja3VwOiBJY29uTm9kZSA9IFtcbiAgWydlbGxpcHNlJywgeyBjeDogJzEyJywgY3k6ICc1Jywgcng6ICc5Jywgcnk6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJhOSAzIDAgMCAwIDUgMi42OScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA5LjNWNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDV2MTRhOSAzIDAgMCAwIDYuNDcgMi44OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMnY0aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMjBhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjVjLTEuMzMgMC0yLjU0LjU0LTMuNDEgMS40MUwxMiAxNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEYXRhYmFzZUJhY2t1cDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkYXRhYmFzZS16YXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Wld4c2FYQnpaU0JqZUQwaU1USWlJR041UFNJMUlpQnllRDBpT1NJZ2NuazlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTlZZeE9VRTVJRE1nTUNBd0lEQWdNVFVnTWpFdU9EUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJRFZXT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01USk1NVGdnTVRkSU1qSk1NVGtnTWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01USkJPU0F6SURBZ01DQXdJREUwTGpVNUlERTBMamczSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGF0YWJhc2UtemFwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRGF0YWJhc2VaYXA6IEljb25Ob2RlID0gW1xuICBbJ2VsbGlwc2UnLCB7IGN4OiAnMTInLCBjeTogJzUnLCByeDogJzknLCByeTogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA1VjE5QTkgMyAwIDAgMCAxNSAyMS44NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA1VjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJMMTggMTdIMjJMMTkgMjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMkE5IDMgMCAwIDAgMTQuNTkgMTQuODcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRGF0YWJhc2VaYXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZGF0YWJhc2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Wld4c2FYQnpaU0JqZUQwaU1USWlJR041UFNJMUlpQnllRDBpT1NJZ2NuazlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTlZZeE9VRTVJRE1nTUNBd0lEQWdNakVnTVRsV05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNa0U1SURNZ01DQXdJREFnTWpFZ01USWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kYXRhYmFzZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERhdGFiYXNlOiBJY29uTm9kZSA9IFtcbiAgWydlbGxpcHNlJywgeyBjeDogJzEyJywgY3k6ICc1Jywgcng6ICc5Jywgcnk6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNVYxOUE5IDMgMCAwIDAgMjEgMTlWNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyQTkgMyAwIDAgMCAyMSAxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEYXRhYmFzZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkZWNpbWFscy1hcnJvdy1sZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UTWdNakV0TXkweklETXRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRoSU1UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEZvTGpBeElpQXZQZ29nSUR4eVpXTjBJSGc5SWpZaUlIazlJak1pSUhkcFpIUm9QU0kxSWlCb1pXbG5hSFE5SWpnaUlISjRQU0l5TGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RlY2ltYWxzLWFycm93LWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEZWNpbWFsc0Fycm93TGVmdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMyAyMS0zLTMgMy0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE4SDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTFoLjAxJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNicsIHk6ICczJywgd2lkdGg6ICc1JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMi41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERlY2ltYWxzQXJyb3dMZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRlY2ltYWxzLWFycm93LXJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVGhvTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0lESXhJRE10TXkwekxUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEZvTGpBeElpQXZQZ29nSUR4eVpXTjBJSGc5SWpFMUlpQjVQU0l6SWlCM2FXUjBhRDBpTlNJZ2FHVnBaMmgwUFNJNElpQnllRDBpTWk0MUlpQXZQZ29nSUR4eVpXTjBJSGc5SWpZaUlIazlJak1pSUhkcFpIUm9QU0kxSWlCb1pXbG5hSFE5SWpnaUlISjRQU0l5TGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RlY2ltYWxzLWFycm93LXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRGVjaW1hbHNBcnJvd1JpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE4aDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDIxIDMtMy0zLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMWguMDEnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxNScsIHk6ICczJywgd2lkdGg6ICc1JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMi41JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNicsIHk6ICczJywgd2lkdGg6ICc1JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMi41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERlY2ltYWxzQXJyb3dSaWdodDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkZWxldGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ05XRXlJRElnTUNBd0lEQXRNUzR6TkRRdU5URTViQzAyTGpNeU9DQTFMamMwWVRFZ01TQXdJREFnTUNBd0lERXVORGd4YkRZdU16STRJRFV1TnpReFFUSWdNaUF3SURBZ01DQXhNQ0F4T1dneE1HRXlJRElnTUNBd0lEQWdNaTB5VmpkaE1pQXlJREFnTUNBd0xUSXRNbm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV5SURrZ05pQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPQ0E1TFRZZ05pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kZWxldGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEZWxldGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAgNWEyIDIgMCAwIDAtMS4zNDQuNTE5bC02LjMyOCA1Ljc0YTEgMSAwIDAgMCAwIDEuNDgxbDYuMzI4IDUuNzQxQTIgMiAwIDAgMCAxMCAxOWgxMGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiA5IDYgNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOCA5LTYgNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEZWxldGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZGVzc2VydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TVRZeUlETXVNVFkzUVRFd0lERXdJREFnTUNBd0lESWdNVE5oTWlBeUlEQWdNQ0F3SURRZ01IWXRNV0V5SURJZ01DQXdJREVnTkNBd2RqUmhNaUF5SURBZ01DQXdJRFFnTUhZdE5HRXlJRElnTUNBd0lERWdOQ0F3ZGpGaE1pQXlJREFnTUNBd0lEUXRMakF3TmlBeE1DQXhNQ0F3SURBZ01DMDRMakUyTVMwNUxqZ3lOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakF1T0RBMElERTBMamcyT1dFNUlEa2dNQ0F3SURFdE1UY3VOakE0SURBaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJMElpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGVzc2VydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERlc3NlcnQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAuMTYyIDMuMTY3QTEwIDEwIDAgMCAwIDIgMTNhMiAyIDAgMCAwIDQgMHYtMWEyIDIgMCAwIDEgNCAwdjRhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAwIDQtLjAwNiAxMCAxMCAwIDAgMC04LjE2MS05LjgyNicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjgwNCAxNC44NjlhOSA5IDAgMCAxLTE3LjYwOCAwJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzQnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEZXNzZXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRpYW1ldGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhPU0lnWTNrOUlqRTVJaUJ5UFNJeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqVWlJR041UFNJMUlpQnlQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAyTGpRNElETXVOalpoTVRBZ01UQWdNQ0F3SURFZ01UTXVPRFlnTVRNdU9EWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUWXVOREVnTmk0ME1TQXhNUzR4T0NBeE1TNHhPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeTQyTmlBMkxqUTRZVEV3SURFd0lEQWdNQ0F3SURFekxqZzJJREV6TGpnMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RpYW1ldGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRGlhbWV0ZXI6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnMTknLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzUnLCByOiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjQ4IDMuNjZhMTAgMTAgMCAwIDEgMTMuODYgMTMuODYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNi40MSA2LjQxIDExLjE4IDExLjE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNjYgNi40OGExMCAxMCAwIDAgMCAxMy44NiAxMy44NicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEaWFtZXRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkaWFtb25kLW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNDNJREV3TGpOaE1pNDBNU0F5TGpReElEQWdNQ0F3SURBZ015NDBNV3czTGpVNUlEY3VOVGxoTWk0ME1TQXlMalF4SURBZ01DQXdJRE11TkRFZ01HdzNMalU1TFRjdU5UbGhNaTQwTVNBeUxqUXhJREFnTUNBd0lEQXRNeTQwTVV3eE15NDNJREl1TnpGaE1pNDBNU0F5TGpReElEQWdNQ0F3TFRNdU5ERWdNSG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb09DSWdMejRLUEM5emRtYyspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RpYW1vbmQtbWludXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEaWFtb25kTWludXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRGlhbW9uZE1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRpYW1vbmQtcGVyY2VudFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaTQzSURFd0xqTmhNaTQwTVNBeUxqUXhJREFnTUNBd0lEQWdNeTQwTVd3M0xqVTVJRGN1TlRsaE1pNDBNU0F5TGpReElEQWdNQ0F3SURNdU5ERWdNR3czTGpVNUxUY3VOVGxoTWk0ME1TQXlMalF4SURBZ01DQXdJREF0TXk0ME1Vd3hNeTQzSURJdU56RmhNaTQwTVNBeUxqUXhJREFnTUNBd0xUTXVOREVnTUZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrdU1pQTVMakpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DNDFJRGt1TlMwMUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBMamNnTVRRdU9HZ3VNREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGlhbW9uZC1wZXJjZW50XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRGlhbW9uZFBlcmNlbnQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMFonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005LjIgOS4yaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNC41IDkuNS01IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuNyAxNC44aC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEaWFtb25kUGVyY2VudDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkaWFtb25kLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ09IWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlMamNnTVRBdU0yRXlMalF4SURJdU5ERWdNQ0F3SURBZ01DQXpMalF4YkRjdU5Ua2dOeTQxT1dFeUxqUXhJREl1TkRFZ01DQXdJREFnTXk0ME1TQXdiRGN1TlRrdE55NDFPV0V5TGpReElESXVOREVnTUNBd0lEQWdNQzB6TGpReFRERXpMamNnTWk0M01XRXlMalF4SURJdU5ERWdNQ0F3SURBdE15NDBNU0F3ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1tZzRJaUF2UGdvOEwzTjJaejQ9KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kaWFtb25kLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEaWFtb25kUGx1czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRGlhbW9uZFBsdXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZGljZS0xXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USm9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGljZS0xXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRGljZTE6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCByeTogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERpY2UxO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRpYW1vbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0M0lERXdMak5oTWk0ME1TQXlMalF4SURBZ01DQXdJREFnTXk0ME1XdzNMalU1SURjdU5UbGhNaTQwTVNBeUxqUXhJREFnTUNBd0lETXVOREVnTUd3M0xqVTVMVGN1TlRsaE1pNDBNU0F5TGpReElEQWdNQ0F3SURBdE15NDBNV3d0Tnk0MU9TMDNMalU1WVRJdU5ERWdNaTQwTVNBd0lEQWdNQzB6TGpReElEQmFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kaWFtb25kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRGlhbW9uZDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxbC03LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwLTMuNDEgMFonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEaWFtb25kO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRpY2UtMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdPV2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UVm9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGljZS0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRGljZTI6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCByeTogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNWguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRGljZTI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZGljZS0zXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ09HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFeWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4Tm1ndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kaWNlLTNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEaWNlMzogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNmguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRGljZTM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZGljZS01XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ09HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnT0dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVFpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhObWd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERXlhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RpY2UtNVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERpY2U1OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywgcnk6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDhoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggOGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyaC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEaWNlNTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkaWNlLTZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnT0dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV5YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEaG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4Tm1ndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kaWNlLTZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEaWNlNjogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggOGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNmguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRGljZTY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZGljZS00XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ09HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnT0dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVFpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhObWd1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RpY2UtNFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERpY2U0OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywgcnk6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDhoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggOGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERpY2U0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRpY2VzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVElpSUdobGFXZG9kRDBpTVRJaUlIZzlJaklpSUhrOUlqRXdJaUJ5ZUQwaU1pSWdjbms5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0xqa3lJREUwSURNdU5TMHpMalZoTWk0eU5DQXlMakkwSURBZ01DQXdJREF0TTJ3dE5TMDBMamt5WVRJdU1qUWdNaTR5TkNBd0lEQWdNQzB6SURCTU1UQWdOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4T0dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREUwYUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdObWd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEbG9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGljZXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEaWNlczogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMicsIGhlaWdodDogJzEyJywgeDogJzInLCB5OiAnMTAnLCByeDogJzInLCByeTogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcuOTIgMTQgMy41LTMuNWEyLjI0IDIuMjQgMCAwIDAgMC0zbC01LTQuOTJhMi4yNCAyLjI0IDAgMCAwLTMgMEwxMCA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMThoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE0aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA2aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA5aC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEaWNlcztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkaWZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNM1l4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE1HZ3hOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F5TVdneE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kaWZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRGlmZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzdjE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTBoMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMWgxNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEaWZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRpc2MtMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW1ndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kaXNjLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEaXNjMjogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyaC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEaXNjMjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkaXNjLTNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1tTXdMVEV1Tnk0M0xUTXVNaUF4TGpndE5DNHlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREV5WXpBZ01TNDNMUzQzSURNdU1pMHhMamdnTkM0eUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Rpc2MtM1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERpc2MzOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTJjMC0xLjcuNy0zLjIgMS44LTQuMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEyYzAgMS43LS43IDMuMi0xLjggNC4yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERpc2MzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRpc2MtYWxidW1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFeWFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGlzYy1hbGJ1bVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERpc2NBbGJ1bTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyaC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEaXNjQWxidW07XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZGlzY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kaXNjXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRGlzYzogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERpc2M7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZGl2aWRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqWWlJSEk5SWpFaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpVaUlIZ3lQU0l4T1NJZ2VURTlJakV5SWlCNU1qMGlNVElpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4T0NJZ2NqMGlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZGl2aWRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRGl2aWRlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzYnLCByOiAnMScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc1JywgeDI6ICcxOScsIHkxOiAnMTInLCB5MjogJzEyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE4JywgcjogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRGl2aWRlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRuYS1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01tTXRNUzR6TlNBeExqVXRNaTR3T1RJZ015MHlMalVnTkM0MVRERTBJRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzSURZdE1pNDRPVEV0TWk0NE9URWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVFZqTXk0ek16TXRNeUEyTGpZMk55MHpJREV3TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJZ01pQXlNQ0F5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpBZ09TQXVPRGt4TGpnNU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdPV010TVM0MUlERXVNelV0TXlBeUxqQTVNaTAwTGpVZ01pNDFiQzB4TFRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNdU1UQTVJREUwTGpFd09TQTBJREUxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAyTGpVZ01USXVOU0F4SURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRjZ01UZ2dNaTQ0T1RFZ01pNDRPVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTWpKak1TNHpOUzB4TGpVZ01pNHdPVEl0TXlBeUxqVXROQzQxVERFd0lERTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kbmEtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRG5hT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJjLTEuMzUgMS41LTIuMDkyIDMtMi41IDQuNUwxNCA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDYtMi44OTEtMi44OTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNWMzLjMzMy0zIDYuNjY3LTMgMTAtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgOSAuODkxLjg5MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA5Yy0xLjUgMS4zNS0zIDIuMDkyLTQuNSAyLjVsLTEtMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjEwOSAxNC4xMDkgNCAxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202LjUgMTIuNSAxIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyAxOCAyLjg5MSAyLjg5MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIyYzEuMzUtMS41IDIuMDkyLTMgMi41LTQuNUwxMCAxNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEbmFPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZG9ja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUE0YURJd0lpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0l4TmlJZ2VEMGlNaUlnZVQwaU5DSWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UWm9NVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZG9ja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERvY2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiA4aDIwJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTYnLCB4OiAnMicsIHk6ICc0Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTZoMTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRG9jaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkbmFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ01UWWdNUzQxSURFdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdPQzB4TGpVdE1TNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F5WXkweExqYzVPQ0F4TGprNU9DMHlMalV4T0NBekxqazVOUzB5TGpnd055QTFMams1TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZdU5TQXhNQzQxSURFZ01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dOaTB5TGpnNU1TMHlMamc1TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE5XTTJMalkyTnkwMklERXpMak16TXlBd0lESXdMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3SURrZ0xqZzVNUzQ0T1RFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNdU1UQTVJREUwTGpFd09TQTBJREUxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAyTGpVZ01USXVOU0F4SURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRjZ01UZ2dNaTQ0T1RFZ01pNDRPVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTWpKak1TNDNPVGd0TVM0NU9UZ2dNaTQxTVRndE15NDVPVFVnTWk0NE1EY3ROUzQ1T1RNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RuYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERuYTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNiAxLjUgMS41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDgtMS41LTEuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAyYy0xLjc5OCAxLjk5OC0yLjUxOCAzLjk5NS0yLjgwNyA1Ljk5MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi41IDEwLjUgMSAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDYtMi44OTEtMi44OTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNWM2LjY2Ny02IDEzLjMzMyAwIDIwLTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgOSAuODkxLjg5MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjEwOSAxNC4xMDkgNCAxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202LjUgMTIuNSAxIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyAxOCAyLjg5MSAyLjg5MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIyYzEuNzk4LTEuOTk4IDIuNTE4LTMuOTk1IDIuODA3LTUuOTkzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERuYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkb2dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU1qVWdNVFl1TWpWb01TNDFUREV5SURFM2VpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFIyTGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU5ESWdNVEV1TWpRM1FURXpMakUxTWlBeE15NHhOVElnTUNBd0lEQWdOQ0F4TkM0MU5UWkROQ0F4T0M0M01qZ2dOeTQxT0RJZ01qRWdNVElnTWpGek9DMHlMakkzTWlBNExUWXVORFEwWVRFeExqY3dNaUF4TVM0M01ESWdNQ0F3SURBdExqUTVNeTB6TGpNd09TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhOSFl1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0M0MUlEZ3VOV010TGpNNE5DQXhMakExTFRFdU1EZ3pJREl1TURJNExUSXVNelEwSURJdU5TMHhMamt6TVM0M01qSXRNeTQxTnpZdExqSTVOeTB6TGpZMU5pMHhMUzR4TVRNdExqazVOQ0F4TGpFM055MDJMalV6SURRdE55QXhMamt5TXkwdU16SXhJRE11TmpVeExqZzBOU0F6TGpZMU1TQXlMakl6TlVFM0xqUTVOeUEzTGpRNU55QXdJREFnTVNBeE5DQTFMakkzTjJNd0xURXVNemtnTVM0NE5EUXRNaTQxT1RnZ015NDNOamN0TWk0eU56Y2dNaTQ0TWpNdU5EY2dOQzR4TVRNZ05pNHdNRFlnTkNBM0xTNHdPQzQzTURNdE1TNDNNalVnTVM0M01qSXRNeTQyTlRZZ01TMHhMakkyTVMwdU5EY3lMVEV1T0RVMUxURXVORFV0TWk0eU16a3RNaTQxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZG9nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRG9nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExLjI1IDE2LjI1aDEuNUwxMiAxN3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTR2LjUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNC40MiAxMS4yNDdBMTMuMTUyIDEzLjE1MiAwIDAgMCA0IDE0LjU1NkM0IDE4LjcyOCA3LjU4MiAyMSAxMiAyMXM4LTIuMjcyIDgtNi40NDRhMTEuNzAyIDExLjcwMiAwIDAgMC0uNDkzLTMuMzA5JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNHYuNScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004LjUgOC41Yy0uMzg0IDEuMDUtMS4wODMgMi4wMjgtMi4zNDQgMi41LTEuOTMxLjcyMi0zLjU3Ni0uMjk3LTMuNjU2LTEtLjExMy0uOTk0IDEuMTc3LTYuNTMgNC03IDEuOTIzLS4zMjEgMy42NTEuODQ1IDMuNjUxIDIuMjM1QTcuNDk3IDcuNDk3IDAgMCAxIDE0IDUuMjc3YzAtMS4zOSAxLjg0NC0yLjU5OCAzLjc2Ny0yLjI3NyAyLjgyMy40NyA0LjExMyA2LjAwNiA0IDctLjA4LjcwMy0xLjcyNSAxLjcyMi0zLjY1NiAxLTEuMjYxLS40NzItMS44NTUtMS40NS0yLjIzOS0yLjUnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEb2c7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZG9sbGFyLXNpZ25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4TWlJZ2VURTlJaklpSUhreVBTSXlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTlVnNUxqVmhNeTQxSURNdU5TQXdJREFnTUNBd0lEZG9OV0V6TGpVZ015NDFJREFnTUNBeElEQWdOMGcySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZG9sbGFyLXNpZ25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEb2xsYXJTaWduOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMicsIHkyOiAnMjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNUg5LjVhMy41IDMuNSAwIDAgMCAwIDdoNWEzLjUgMy41IDAgMCAxIDAgN0g2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERvbGxhclNpZ247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZG9udXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU5TQXhNR0V5TGpVZ01pNDFJREFnTUNBeExUSXVOQzB6U0RFNFlUSXVPVFVnTWk0NU5TQXdJREFnTVMweUxqWXROQzQwSURFd0lERXdJREFnTVNBd0lEWXVNeUEzTGpGakxTNHpMakl0TGpndU15MHhMakl1TXlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZG9udXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEb251dDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMC41IDEwYTIuNSAyLjUgMCAwIDEtMi40LTNIMThhMi45NSAyLjk1IDAgMCAxLTIuNi00LjQgMTAgMTAgMCAxIDAgNi4zIDcuMWMtLjMuMi0uOC4zLTEuMi4zJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEb251dDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkb29yLWNsb3NlZC1sb2NrZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01USm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBNVZqWmhNaUF5SURBZ01DQXdMVEl0TWtnNFlUSWdNaUF3SURBZ01DMHlJREoyTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01qQm9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRkMkxUSmhNaUF5SURBZ01TQXdMVFFnTUhZeUlpQXZQZ29nSUR4eVpXTjBJSGc5SWpFMElpQjVQU0l4TnlJZ2QybGtkR2c5SWpnaUlHaGxhV2RvZEQwaU5TSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Rvb3ItY2xvc2VkLWxvY2tlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERvb3JDbG9zZWRMb2NrZWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDlWNmEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIwaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMTQnLCB5OiAnMTcnLCB3aWR0aDogJzgnLCBoZWlnaHQ6ICc1Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERvb3JDbG9zZWRMb2NrZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZG9vci1jbG9zZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01USm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeU1GWTJZVElnTWlBd0lEQWdNQzB5TFRKSU9HRXlJRElnTUNBd0lEQXRNaUF5ZGpFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlESXdhREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZG9vci1jbG9zZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEb29yQ2xvc2VkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEyaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMFY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMjBoMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRG9vckNsb3NlZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pNHhJaUJqZVQwaU1USXVNU0lnY2owaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEb3Q6IEljb25Ob2RlID0gW1snY2lyY2xlJywgeyBjeDogJzEyLjEnLCBjeTogJzEyLjEnLCByOiAnMScgfV1dO1xuXG5leHBvcnQgZGVmYXVsdCBEb3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZG9vci1vcGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNakJJTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ05DNDFOakoyTVRZdU1UVTNZVEVnTVNBd0lEQWdNQ0F4TGpJME1pNDVOMHd4T1NBeU1GWTFMalUyTW1FeUlESWdNQ0F3SURBdE1TNDFNVFV0TVM0NU5Hd3ROQzB4UVRJZ01pQXdJREFnTUNBeE1TQTBMalUyTVhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeElEUklPR0V5SURJZ01DQXdJREF0TWlBeWRqRTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREl3YUMweklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Rvb3Itb3BlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERvb3JPcGVuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDIwSDInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEgNC41NjJ2MTYuMTU3YTEgMSAwIDAgMCAxLjI0Mi45N0wxOSAyMFY1LjU2MmEyIDIgMCAwIDAtMS41MTUtMS45NGwtNC0xQTIgMiAwIDAgMCAxMSA0LjU2MXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSA0SDhhMiAyIDAgMCAwLTIgMnYxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMjBoLTMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRG9vck9wZW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZG93bmxvYWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UVldNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRWMk5HRXlJRElnTUNBd0lERXRNaUF5U0RWaE1pQXlJREFnTUNBeExUSXRNbll0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TnlBeE1DQTFJRFVnTlMwMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Rvd25sb2FkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRG93bmxvYWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTVWMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMTAgNSA1IDUtNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEb3dubG9hZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkcmFmdGluZy1jb21wYXNzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1USXVPVGtnTmk0M05DQXhMamt6SURNdU5EUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVMakV6TmlBeE1tRXhNQ0F4TUNBd0lEQWdNUzB4TkM0eU56RWdNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNakVnTWpFdE1pNHhOaTB6TGpnMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weklESXhJRGd1TURJdE1UUXVNallpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0kxSWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kcmFmdGluZy1jb21wYXNzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRHJhZnRpbmdDb21wYXNzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEyLjk5IDYuNzQgMS45MyAzLjQ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5LjEzNiAxMmExMCAxMCAwIDAgMS0xNC4yNzEgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAyMS0yLjE2LTMuODQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyAyMSA4LjAyLTE0LjI2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzUnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEcmFmdGluZ0NvbXBhc3M7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZHJhbWFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01URm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBMmFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTm1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWXVOU0F4TXk0eGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTldNd0lEa3ROQ0F4TWkwMklERXljeTAyTFRNdE5pMHhNbU13TFRJZ01pMHpJRFl0TTNNMklERWdOaUF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tnk0MElEa3VPV010TGpndU9DMHlJQzQ0TFRJdU9DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQzR4SURjdU1VTTVJRGN1TWlBM0xqY2dOeTQzSURZZ09DNDJZeTB6TGpVZ01pMDBMamNnTXk0NUxUTXVOeUExTGpZZ05DNDFJRGN1T0NBNUxqVWdPQzQwSURFeExqSWdOeTQwTGprdExqVWdNUzQ1TFRJdU1TQXhMamt0TkM0M0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUxqRWdNVFl1TldNdU15MHhMakVnTVM0MExURXVOeUF5TGpRdE1TNDBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kcmFtYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERyYW1hOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDExaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA2aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA2aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjUgMTMuMWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgNWMwIDktNCAxMi02IDEycy02LTMtNi0xMmMwLTIgMi0zIDYtM3M2IDEgNiAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjQgOS45Yy0uOC44LTIgLjgtMi44IDAnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAuMSA3LjFDOSA3LjIgNy43IDcuNyA2IDguNmMtMy41IDItNC43IDMuOS0zLjcgNS42IDQuNSA3LjggOS41IDguNCAxMS4yIDcuNC45LS41IDEuOS0yLjEgMS45LTQuNycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkuMSAxNi41Yy4zLTEuMSAxLjQtMS43IDIuNC0xLjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRHJhbWE7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZHJpYmJibGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrdU1UTWdOUzR3T1VNeE5TNHlNaUE1TGpFMElERXdJREV3TGpRMElESXVNalVnTVRBdU9UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhMamMxSURFeUxqZzBZeTAyTGpZeUxURXVOREV0TVRJdU1UUWdNUzB4Tmk0ek9DQTJMak15SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpVMklESXVOelZqTkM0ek55QTJJRFlnT1M0ME1pQTRJREUzTGpjeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RyaWJiYmxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICogQGRlcHJlY2F0ZWQgQnJhbmQgaWNvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIGFyZSBkdWUgdG8gYmUgcmVtb3ZlZCwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2lzc3Vlcy82NzAuIFdlIHJlY29tbWVuZCB1c2luZyBodHRwczovL3NpbXBsZWljb25zLm9yZy8/cT1kcmliYmJsZSBpbnN0ZWFkLiBUaGlzIGljb24gd2lsbCBiZSByZW1vdmVkIGluIHYxLjBcbiAqL1xuY29uc3QgRHJpYmJibGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuMTMgNS4wOUMxNS4yMiA5LjE0IDEwIDEwLjQ0IDIuMjUgMTAuOTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEuNzUgMTIuODRjLTYuNjItMS40MS0xMi4xNCAxLTE2LjM4IDYuMzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC41NiAyLjc1YzQuMzcgNiA2IDkuNDIgOCAxNy43MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEcmliYmJsZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkcmlsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRoaE1TQXhJREFnTUNBeElERWdNWFl5WVRFZ01TQXdJREFnTVMweElERklOV0V6SURNZ01DQXdJREV0TXkweklERWdNU0F3SURBZ01TQXhMVEY2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXlBeE1FZzBZVElnTWlBd0lEQWdNUzB5TFRKV05HRXlJRElnTUNBd0lERWdNaTB5YURsaE1TQXhJREFnTUNBeElERWdNWFkyWVRFZ01TQXdJREFnTVMweElERnNMUzQ0TVNBekxqSTBNbUV4SURFZ01DQXdJREV0TGprM0xqYzFPRWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBMGFETmhNU0F4SURBZ01DQXhJREVnTVhZeVlURWdNU0F3SURBZ01TMHhJREZvTFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEWm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROU0F4TUMweUlEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY2dNVGdnTWkwNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RyaWxsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRHJpbGw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMThhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFINWEzIDMgMCAwIDEtMy0zIDEgMSAwIDAgMSAxLTF6JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzIDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOWExIDEgMCAwIDEgMSAxdjZhMSAxIDAgMCAxLTEgMWwtLjgxIDMuMjQyYTEgMSAwIDAgMS0uOTcuNzU4SDgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA0aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNmg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUgMTAtMiA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMTggMi04JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERyaWxsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRyb25lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEFnTnlBM0lpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1DQXhOQzB6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMElERXdJRE10TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRRZ01UUWdNeUF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkM0eU1EVWdOQzR4TXpsaE5DQTBJREFnTVNBeElEVXVORE01SURVdU9EWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPUzQyTXpjZ01UUmhOQ0EwSURBZ01TQXhMVFV1TkRNeUlEVXVPRFk0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwTGpNMk55QXhNR0UwSURRZ01DQXhJREVnTlM0ME16Z3ROUzQ0TmpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrdU56azFJREU1TGpnMk1tRTBJRFFnTUNBeElERXROUzQwTWprdE5TNDROek1pSUM4K0NpQWdQSEpsWTNRZ2VEMGlNVEFpSUhrOUlqZ2lJSGRwWkhSb1BTSTBJaUJvWldsbmFIUTlJamdpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kcm9uZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERyb25lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEwIDcgNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNC0zIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTAgMy0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE0IDMgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC4yMDUgNC4xMzlhNCA0IDAgMSAxIDUuNDM5IDUuODYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5LjYzNyAxNGE0IDQgMCAxIDEtNS40MzIgNS44NjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC4zNjcgMTBhNCA0IDAgMSAxIDUuNDM4LTUuODYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuNzk1IDE5Ljg2MmE0IDQgMCAxIDEtNS40MjktNS44NzMnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxMCcsIHk6ICc4Jywgd2lkdGg6ICc0JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEcm9uZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkcm9wbGV0LW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGd1TnpFMUlERXpMakU0TmtNeE9DNHlPU0F4TVM0NE5UZ2dNVGN1TXpnMElERXdMall3TnlBeE5pQTVMalZqTFRJdE1TNDJMVE11TlMwMExUUXROaTQxWVRFd0xqY2dNVEF1TnlBd0lEQWdNUzB1T0RnMElESXVOVGcySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURJZ01qQWdNakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGd1TnprMUlEZ3VOemszUVRFeElERXhJREFnTUNBeElEZ2dPUzQxUXpZZ01URXVNU0ExSURFeklEVWdNVFZoTnlBM0lEQWdNQ0F3SURFekxqSXlNaUF6TGpJd09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kcm9wbGV0LW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERyb3BsZXRPZmY6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTguNzE1IDEzLjE4NkMxOC4yOSAxMS44NTggMTcuMzg0IDEwLjYwNyAxNiA5LjVjLTItMS42LTMuNS00LTQtNi41YTEwLjcgMTAuNyAwIDAgMS0uODg0IDIuNTg2JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguNzk1IDguNzk3QTExIDExIDAgMCAxIDggOS41QzYgMTEuMSA1IDEzIDUgMTVhNyA3IDAgMCAwIDEzLjIyMiAzLjIwOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEcm9wbGV0T2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRyb3BsZXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qSmhOeUEzSURBZ01DQXdJRGN0TjJNd0xUSXRNUzB6TGprdE15MDFMalZ6TFRNdU5TMDBMVFF0Tmk0MVl5MHVOU0F5TGpVdE1pQTBMamt0TkNBMkxqVkROaUF4TVM0eElEVWdNVE1nTlNBeE5XRTNJRGNnTUNBd0lEQWdOeUEzZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Ryb3BsZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEcm9wbGV0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDIyYTcgNyAwIDAgMCA3LTdjMC0yLTEtMy45LTMtNS41cy0zLjUtNC00LTYuNWMtLjUgMi41LTIgNC45LTQgNi41QzYgMTEuMSA1IDEzIDUgMTVhNyA3IDAgMCAwIDcgN3onLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBEcm9wbGV0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRyb3BsZXRzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXhOaTR6WXpJdU1pQXdJRFF0TVM0NE15QTBMVFF1TURVZ01DMHhMakUyTFM0MU55MHlMakkyTFRFdU56RXRNeTR4T1ZNM0xqSTVJRFl1TnpVZ055QTFMak5qTFM0eU9TQXhMalExTFRFdU1UUWdNaTQ0TkMweUxqSTVJRE11TnpaVE15QXhNUzR4SURNZ01USXVNalZqTUNBeUxqSXlJREV1T0NBMExqQTFJRFFnTkM0d05Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlMalUySURZdU5rRXhNQzQ1TnlBeE1DNDVOeUF3SURBZ01DQXhOQ0F6TGpBeVl5NDFJREl1TlNBeUlEUXVPU0EwSURZdU5YTXpJRE11TlNBeklEVXVOV0UyTGprNElEWXVPVGdnTUNBd0lERXRNVEV1T1RFZ05DNDVOeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZHJvcGxldHNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBEcm9wbGV0czogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ003IDE2LjNjMi4yIDAgNC0xLjgzIDQtNC4wNSAwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5UzcuMjkgNi43NSA3IDUuM2MtLjI5IDEuNDUtMS4xNCAyLjg0LTIuMjkgMy43NlMzIDExLjEgMyAxMi4yNWMwIDIuMjIgMS44IDQuMDUgNCA0LjA1eicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjU2IDYuNkExMC45NyAxMC45NyAwIDAgMCAxNCAzLjAyYy41IDIuNSAyIDQuOSA0IDYuNXMzIDMuNSAzIDUuNWE2Ljk4IDYuOTggMCAwIDEtMTEuOTEgNC45NycsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERyb3BsZXRzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGRydW1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlEZ2dPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNaklnTWkwNElEZ2lJQzgrQ2lBZ1BHVnNiR2x3YzJVZ1kzZzlJakV5SWlCamVUMGlPU0lnY25nOUlqRXdJaUJ5ZVQwaU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhNeTQwZGpjdU9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFIyT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UTXVOSFkzTGpraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ09YWTRZVEV3SURVZ01DQXdJREFnTWpBZ01GWTVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kcnVtXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRHJ1bTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgOCA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDItOCA4JyB9XSxcbiAgWydlbGxpcHNlJywgeyBjeDogJzEyJywgY3k6ICc5Jywgcng6ICcxMCcsIHJ5OiAnNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEzLjR2Ny45JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0djgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTMuNHY3LjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA5djhhMTAgNSAwIDAgMCAyMCAwVjknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRHJ1bTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkcnVtc3RpY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVdU5DQXhOUzQyTTJFM0xqZzNOU0EySURFek5TQXhJREVnTmk0eU15MDJMakl6SURRdU5TQXpMalF6SURFek5TQXdJREF0Tmk0eU15QTJMakl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0TGpJNUlERXlMamN4TFRJdU5pQXlMalpoTWk0MUlESXVOU0F3SURFZ01DMHhMalkxSURRdU5qVkJNaTQxSURJdU5TQXdJREVnTUNBNExqY2dNVGd1TTJ3eUxqVTVMVEl1TlRraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2RydW1zdGlja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IERydW1zdGljazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNS40IDE1LjYzYTcuODc1IDYgMTM1IDEgMSA2LjIzLTYuMjMgNC41IDMuNDMgMTM1IDAgMC02LjIzIDYuMjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOC4yOSAxMi43MS0yLjYgMi42YTIuNSAyLjUgMCAxIDAtMS42NSA0LjY1QTIuNSAyLjUgMCAxIDAgOC43IDE4LjNsMi41OS0yLjU5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IERydW1zdGljaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBkdW1iYmVsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGN1TlRrMklERXlMamMyT0dFeUlESWdNQ0F4SURBZ01pNDRNamt0TWk0NE1qbHNMVEV1TnpZNExURXVOelkzWVRJZ01pQXdJREFnTUNBeUxqZ3lPQzB5TGpneU9Xd3RNaTQ0TWpndE1pNDRNamhoTWlBeUlEQWdNQ0F3TFRJdU9ESTVJREl1T0RJNGJDMHhMamMyTnkweExqYzJPR0V5SURJZ01DQXhJREF0TWk0NE1qa2dNaTQ0TWpsNklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUxqVWdNakV1TlNBeExqUXRNUzQwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TUM0eElETXVPU0F4TGpRdE1TNDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFMak0wTXlBeU1TNDBPRFZoTWlBeUlEQWdNU0F3SURJdU9ESTVMVEl1T0RJNGJERXVOelkzSURFdU56WTRZVElnTWlBd0lERWdNQ0F5TGpneU9TMHlMamd5T1d3dE5pNHpOalF0Tmk0ek5qUmhNaUF5SURBZ01TQXdMVEl1T0RJNUlESXVPREk1YkRFdU56WTRJREV1TnpZM1lUSWdNaUF3SURBZ01DMHlMamd5T0NBeUxqZ3lPWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGt1TmlBeE5DNDBJRFF1T0MwMExqZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9kdW1iYmVsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IER1bWJiZWxsOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3LjU5NiAxMi43NjhhMiAyIDAgMSAwIDIuODI5LTIuODI5bC0xLjc2OC0xLjc2N2EyIDIgMCAwIDAgMi44MjgtMi44MjlsLTIuODI4LTIuODI4YTIgMiAwIDAgMC0yLjgyOSAyLjgyOGwtMS43NjctMS43NjhhMiAyIDAgMSAwLTIuODI5IDIuODI5eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIuNSAyMS41IDEuNC0xLjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAuMSAzLjkgMS40LTEuNCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ001LjM0MyAyMS40ODVhMiAyIDAgMSAwIDIuODI5LTIuODI4bDEuNzY3IDEuNzY4YTIgMiAwIDEgMCAyLjgyOS0yLjgyOWwtNi4zNjQtNi4zNjRhMiAyIDAgMSAwLTIuODI5IDIuODI5bDEuNzY4IDEuNzY3YTIgMiAwIDAgMC0yLjgyOCAyLjgyOXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205LjYgMTQuNCA0LjgtNC44JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IER1bWJiZWxsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGVhci1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE9DNDFZVE11TlNBekxqVWdNQ0F4SURBZ055QXdZekF0TVM0MU55NDVNaTB5TGpVeUlESXVNRFF0TXk0ME5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQTRMalZqTUMwdU56VXVNVE10TVM0ME55NHpOaTB5TGpFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNExqZ2dNeTR4TlVFMkxqVWdOaTQxSURBZ01DQXhJREU1SURndU5XTXdJREV1TmpNdExqUTBJREl1T0RFdE1TNHdPU0F6TGpjMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pNDFJRFpCTWk0MUlESXVOU0F3SURBZ01TQXhOU0E0TGpWTk1UQWdNVE5oTWlBeUlEQWdNQ0F3SURFdU9ESXRNUzR4T0NJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTWlJZ2VESTlJakl5SWlCNU1UMGlNaUlnZVRJOUlqSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9lYXItb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRWFyT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTYgMTguNWEzLjUgMy41IDAgMSAwIDcgMGMwLTEuNTcuOTItMi41MiAyLjA0LTMuNDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4LjVjMC0uNzUuMTMtMS40Ny4zNi0yLjE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguOCAzLjE1QTYuNSA2LjUgMCAwIDEgMTkgOC41YzAgMS42My0uNDQgMi44MS0xLjA5IDMuNzYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIuNSA2QTIuNSAyLjUgMCAwIDEgMTUgOC41TTEwIDEzYTIgMiAwIDAgMCAxLjgyLTEuMTgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzInLCB5MjogJzIyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEVhck9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBlYXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBNExqVmhOaTQxSURZdU5TQXdJREVnTVNBeE15QXdZekFnTmkwMklEWXROaUF4TUdFekxqVWdNeTQxSURBZ01TQXhMVGNnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ09DNDFZVEl1TlNBeUxqVWdNQ0F3SURBdE5TQXdkakZoTWlBeUlEQWdNU0F4SURBZ05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9lYXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFYXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4LjVhNi41IDYuNSAwIDEgMSAxMyAwYzAgNi02IDYtNiAxMGEzLjUgMy41IDAgMSAxLTcgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA4LjVhMi41IDIuNSAwIDAgMC01IDB2MWEyIDIgMCAxIDEgMCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEVhcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBlYXJ0aC1sb2NrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXpMak0wVmpWaE15QXpJREFnTUNBd0lETWdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTWpFdU9UVldNVGhoTWlBeUlEQWdNQ0F3TFRJdE1pQXlJRElnTUNBd0lERXRNaTB5ZGkweFlUSWdNaUF3SURBZ01DMHlMVEpJTWk0d05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVOVFFnTVRWSU1UZGhNaUF5SURBZ01DQXdMVElnTW5ZMExqVTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5WVRFd0lERXdJREFnTVNBd0lEa3VOVFFnTVRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0lEWldOR0V5SURJZ01DQXhJREF0TkNBd2RqSWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJamdpSUdobGFXZG9kRDBpTlNJZ2VEMGlNVFFpSUhrOUlqWWlJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2VhcnRoLWxvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFYXJ0aExvY2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNyAzLjM0VjVhMyAzIDAgMCAwIDMgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAyMS45NVYxOGEyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMS0yLTJ2LTFhMiAyIDAgMCAwLTItMkgyLjA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjU0IDE1SDE3YTIgMiAwIDAgMC0yIDJ2NC41NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyYTEwIDEwIDAgMSAwIDkuNTQgMTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgNlY0YTIgMiAwIDEgMC00IDB2MicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNScsIHg6ICcxNCcsIHk6ICc2Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEVhcnRoTG9jaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBlYXJ0aFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakV1TlRRZ01UVklNVGRoTWlBeUlEQWdNQ0F3TFRJZ01uWTBMalUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURNdU16UldOV0V6SURNZ01DQXdJREFnTXlBellUSWdNaUF3SURBZ01TQXlJREpqTUNBeExqRXVPU0F5SURJZ01tRXlJRElnTUNBd0lEQWdNaTB5WXpBdE1TNHhMamt0TWlBeUxUSm9NeTR4TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01qRXVPVFZXTVRoaE1pQXlJREFnTUNBd0xUSXRNbUV5SURJZ01DQXdJREV0TWkweWRpMHhZVElnTWlBd0lEQWdNQzB5TFRKSU1pNHdOU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZWFydGhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFYXJ0aDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMS41NCAxNUgxN2EyIDIgMCAwIDAtMiAydjQuNTQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ003IDMuMzRWNWEzIDMgMCAwIDAgMyAzYTIgMiAwIDAgMSAyIDJjMCAxLjEuOSAyIDIgMmEyIDIgMCAwIDAgMi0yYzAtMS4xLjktMiAyLTJoMy4xNycgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDIxLjk1VjE4YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAxLTItMnYtMWEyIDIgMCAwIDAtMi0ySDIuMDUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRWFydGg7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZWNsaXBzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTW1FM0lEY2dNQ0F4SURBZ01UQWdNVEFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZWNsaXBzZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEVjbGlwc2U6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMmE3IDcgMCAxIDAgMTAgMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRWNsaXBzZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBlZ2ctZnJpZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1TNDFJaUJqZVQwaU1USXVOU0lnY2owaU15NDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGhqTUMwekxqVWdNaTQxTFRZZ05pNDFMVFlnTlNBd0lEUXVPRE1nTXlBM0xqVWdOWE0xSURJZ05TQTJZekFnTkM0MUxUSXVOU0EyTGpVdE55QTJMalV0TWk0MUlEQXRNaTQxSURJdU5TMDJJREl1TlhNdE55MHlMVGN0TlM0MVl6QXRNeUF4TGpVdE15QXhMalV0TlVNekxqVWdNVEFnTXlBNUlETWdPRm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZWdnLWZyaWVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRWdnRnJpZWQ6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMS41JywgY3k6ICcxMi41JywgcjogJzMuNScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDhjMC0zLjUgMi41LTYgNi41LTYgNSAwIDQuODMgMyA3LjUgNXM1IDIgNSA2YzAgNC41LTIuNSA2LjUtNyA2LjUtMi41IDAtMi41IDIuNS02IDIuNXMtNy0yLTctNS41YzAtMyAxLjUtMyAxLjUtNUMzLjUgMTAgMyA5IDMgOFonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBFZ2dGcmllZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBlZ2ctb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhOQzR6TkRkV01UUmpNQzAyTFRRdE1USXRPQzB4TWkweExqQTNPQ0F3TFRJdU1UVTNMalF6TmkwekxqRTFOeUF4TGpFNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMkxqSXdOaUEyTGpJeFF6UXVPRGN4SURndU5DQTBJREV4TGpJZ05DQXhOR0U0SURnZ01DQXdJREFnTVRRdU5UWTRJRFF1TlRZNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2VnZy1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFZ2dPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE0LjM0N1YxNGMwLTYtNC0xMi04LTEyLTEuMDc4IDAtMi4xNTcuNDM2LTMuMTU3IDEuMTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4yMDYgNi4yMUM0Ljg3MSA4LjQgNCAxMS4yIDQgMTRhOCA4IDAgMCAwIDE0LjU2OCA0LjU2OCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBFZ2dPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZWdnXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNa000SURJZ05DQTRJRFFnTVRSaE9DQTRJREFnTUNBd0lERTJJREJqTUMwMkxUUXRNVEl0T0MweE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9lZ2dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFZ2c6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ00xMiAyQzggMiA0IDggNCAxNGE4IDggMCAwIDAgMTYgMGMwLTYtNC0xMi04LTEyJyB9XV07XG5cbmV4cG9ydCBkZWZhdWx0IEVnZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBlbGxpcHNpcy12ZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlOU0lnY2owaU1TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRTVJaUJ5UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2VsbGlwc2lzLXZlcnRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRWxsaXBzaXNWZXJ0aWNhbDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzUnLCByOiAnMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxOScsIHI6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEVsbGlwc2lzVmVydGljYWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZWxsaXBzaXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNUlpQmplVDBpTVRJaUlISTlJakVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTlNJZ1kzazlJakV5SWlCeVBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9lbGxpcHNpc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEVsbGlwc2lzOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnMTInLCByOiAnMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzEyJywgcjogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRWxsaXBzaXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZXF1YWwtYXBwcm94aW1hdGVseVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F4TldFMkxqVWdOaTQxSURBZ01DQXhJRGNnTUNBMkxqVWdOaTQxSURBZ01DQXdJRGNnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBNVlUWXVOU0EyTGpVZ01DQXdJREVnTnlBd0lEWXVOU0EyTGpVZ01DQXdJREFnTnlBd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2VxdWFsLWFwcHJveGltYXRlbHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFcXVhbEFwcHJveGltYXRlbHk6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxNWE2LjUgNi41IDAgMCAxIDcgMCA2LjUgNi41IDAgMCAwIDcgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDlhNi41IDYuNSAwIDAgMSA3IDAgNi41IDYuNSAwIDAgMCA3IDAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRXF1YWxBcHByb3hpbWF0ZWx5O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGVxdWFsLW5vdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlOU0lnZURJOUlqRTVJaUI1TVQwaU9TSWdlVEk5SWpraUlDOCtDaUFnUEd4cGJtVWdlREU5SWpVaUlIZ3lQU0l4T1NJZ2VURTlJakUxSWlCNU1qMGlNVFVpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakU1SWlCNE1qMGlOU0lnZVRFOUlqVWlJSGt5UFNJeE9TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9lcXVhbC1ub3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFcXVhbE5vdDogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICc1JywgeDI6ICcxOScsIHkxOiAnOScsIHkyOiAnOScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc1JywgeDI6ICcxOScsIHkxOiAnMTUnLCB5MjogJzE1JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE5JywgeDI6ICc1JywgeTE6ICc1JywgeTI6ICcxOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBFcXVhbE5vdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBlcmFzZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01qRklPR0V5SURJZ01DQXdJREV0TVM0ME1pMHVOVGczYkMwekxqazVOQzB6TGprNU9XRXlJRElnTUNBd0lERWdNQzB5TGpneU9Hd3hNQzB4TUdFeUlESWdNQ0F3SURFZ01pNDRNamtnTUd3MUxqazVPU0EyWVRJZ01pQXdJREFnTVNBd0lESXVPREk0VERFeUxqZ3pOQ0F5TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TlM0d09ESWdNVEV1TURrZ09DNDRNamdnT0M0NE1qZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9lcmFzZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFcmFzZXI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgMjFIOGEyIDIgMCAwIDEtMS40Mi0uNTg3bC0zLjk5NC0zLjk5OWEyIDIgMCAwIDEgMC0yLjgyOGwxMC0xMGEyIDIgMCAwIDEgMi44MjkgMGw1Ljk5OSA2YTIgMiAwIDAgMSAwIDIuODI4TDEyLjgzNCAyMScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTUuMDgyIDExLjA5IDguODI4IDguODI4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEVyYXNlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBlcXVhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlOU0lnZURJOUlqRTVJaUI1TVQwaU9TSWdlVEk5SWpraUlDOCtDaUFnUEd4cGJtVWdlREU5SWpVaUlIZ3lQU0l4T1NJZ2VURTlJakUxSWlCNU1qMGlNVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZXF1YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFcXVhbDogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICc1JywgeDI6ICcxOScsIHkxOiAnOScsIHkyOiAnOScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc1JywgeDI6ICcxOScsIHkxOiAnMTUnLCB5MjogJzE1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEVxdWFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGV0aGVybmV0LXBvcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ01qQWdNeTB6YURKaE1pQXlJREFnTUNBd0lESXRNbFkyWVRJZ01pQXdJREFnTUMweUxUSklOR0V5SURJZ01DQXdJREF0TWlBeWRqbGhNaUF5SURBZ01DQXdJRElnTW1neWJETWdNM29pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnT0hZeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQTRkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURoMk1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dPSFl4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZXRoZXJuZXQtcG9ydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEV0aGVybmV0UG9ydDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnbTE1IDIwIDMtM2gyYTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY5YTIgMiAwIDAgMCAyIDJoMmwzIDN6JyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOHYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDh2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA4djEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRXRoZXJuZXRQb3J0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGV1cm9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1HZ3hNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TkdnNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQTJZVGN1TnlBM0xqY2dNQ0F3SURBdE5TNHlMVEpCTnk0NUlEY3VPU0F3SURBZ01DQTJJREV5WXpBZ05DNDBJRE11TlNBNElEY3VPQ0E0SURJZ01DQXpMamd0TGpnZ05TNHlMVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZXVyb1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEV1cm86IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMGgxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE0aDknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xOSA2YTcuNyA3LjcgMCAwIDAtNS4yLTJBNy45IDcuOSAwIDAgMCA2IDEyYzAgNC40IDMuNSA4IDcuOCA4IDIgMCAzLjgtLjggNS4yLTInIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBFdXJvO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGV2LWNoYXJnZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UTm9NbUV5SURJZ01DQXdJREVnTWlBeWRqSmhNaUF5SURBZ01DQXdJRFFnTUhZdE5pNDVPVGhoTWlBeUlEQWdNQ0F3TFM0MU9TMHhMalF5VERFNElEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREl4VmpWaE1pQXlJREFnTUNBd0xUSXRNa2cxWVRJZ01pQXdJREFnTUMweUlESjJNVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTWpGb01UTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdOMmd4TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE1TMHlJRE5vTTJ3dE1pQXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ldi1jaGFyZ2VyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRXZDaGFyZ2VyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIxVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMWgxMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDdoMTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMS0yIDNoM2wtMiAzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEV2Q2hhcmdlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBleHRlcm5hbC1saW5rXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNMmcyZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTBJREl4SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERXpkalpoTWlBeUlEQWdNQ0F4TFRJZ01rZzFZVElnTWlBd0lEQWdNUzB5TFRKV09HRXlJRElnTUNBd0lERWdNaTB5YURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2V4dGVybmFsLWxpbmtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFeHRlcm5hbExpbms6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM2g2djYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTQgMjEgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEV4dGVybmFsTGluaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBleHBhbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ01UVWdOaUEySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlNBNUlEWXROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRaMk5XZ3ROU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnT0ZZemFDMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUyZGpWb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE15QXlNU0EyTFRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ09GWXphRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnT1NBeklETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9leHBhbmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFeHBhbmQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTUgNiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDkgNi02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE2djVoLTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgOFYzaC01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTZ2NWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgMjEgNi02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOFYzaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA5IDMgMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBFeHBhbmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZXllLWNsb3NlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRndExqY3lNaTB6TGpJMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlEaGhNVEF1TmpRMUlERXdMalkwTlNBd0lEQWdNQ0F5TUNBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1DQXhOUzB4TGpjeU5pMHlMakExSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAwSURFMUlERXVOekkyTFRJdU1EVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNVGdnTGpjeU1pMHpMakkxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZXllLWNsb3NlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEV5ZUNsb3NlZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxOC0uNzIyLTMuMjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA4YTEwLjY0NSAxMC42NDUgMCAwIDAgMjAgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMCAxNS0xLjcyNi0yLjA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQgMTUgMS43MjYtMi4wNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE4IC43MjItMy4yNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBFeWVDbG9zZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZXllLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TnpNeklEVXVNRGMyWVRFd0xqYzBOQ0F4TUM0M05EUWdNQ0F3SURFZ01URXVNakExSURZdU5UYzFJREVnTVNBd0lEQWdNU0F3SUM0Mk9UWWdNVEF1TnpRM0lERXdMamMwTnlBd0lEQWdNUzB4TGpRME5DQXlMalE1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkM0d09EUWdNVFF1TVRVNFlUTWdNeUF3SURBZ01TMDBMakkwTWkwMExqSTBNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGN1TkRjNUlERTNMalE1T1dFeE1DNDNOU0F4TUM0M05TQXdJREFnTVMweE5TNDBNVGN0TlM0eE5URWdNU0F4SURBZ01DQXhJREF0TGpZNU5pQXhNQzQzTlNBeE1DNDNOU0F3SURBZ01TQTBMalEwTmkwMUxqRTBNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9leWUtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRXllT2ZmOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjczMyA1LjA3NmExMC43NDQgMTAuNzQ0IDAgMCAxIDExLjIwNSA2LjU3NSAxIDEgMCAwIDEgMCAuNjk2IDEwLjc0NyAxMC43NDcgMCAwIDEtMS40NDQgMi40OScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjA4NCAxNC4xNThhMyAzIDAgMCAxLTQuMjQyLTQuMjQyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3LjQ3OSAxNy40OTlhMTAuNzUgMTAuNzUgMCAwIDEtMTUuNDE3LTUuMTUxIDEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgNC40NDYtNS4xNDMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRXllT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGV5ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaTR3TmpJZ01USXVNelE0WVRFZ01TQXdJREFnTVNBd0xTNDJPVFlnTVRBdU56VWdNVEF1TnpVZ01DQXdJREVnTVRrdU9EYzJJREFnTVNBeElEQWdNQ0F4SURBZ0xqWTVOaUF4TUM0M05TQXhNQzQzTlNBd0lEQWdNUzB4T1M0NE56WWdNQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9leWVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBFeWU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCcsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRXllO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZhY3RvcnlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UWm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE5tZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRsaE1pQXlJREFnTUNBd0lESWdNbWd4TkdFeUlESWdNQ0F3SURBZ01pMHlWamd1TldFdU5TNDFJREFnTUNBd0xTNDNOamt0TGpReU1td3ROQzQwTmpJZ01pNDRORFJCTGpVdU5TQXdJREFnTVNBeE5TQXhNQzQxZGkweVlTNDFMalVnTUNBd0lEQXRMamMyT1MwdU5ESXlURGt1TnpjZ01UQXVPVEl5UVM0MUxqVWdNQ0F3SURFZ09TQXhNQzQxVmpWaE1pQXlJREFnTUNBd0xUSXRNa2cxWVRJZ01pQXdJREFnTUMweUlESjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREUyYUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mYWN0b3J5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmFjdG9yeTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZoLjAxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMgMTlhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjguNWEuNS41IDAgMCAwLS43NjktLjQyMmwtNC40NjIgMi44NDRBLjUuNSAwIDAgMSAxNSAxMC41di0yYS41LjUgMCAwIDAtLjc2OS0uNDIyTDkuNzcgMTAuOTIyQS41LjUgMCAwIDEgOSAxMC41VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNmguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmFjdG9yeTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmYWNlYm9va1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTW1ndE0yRTFJRFVnTUNBd0lEQXROU0ExZGpOSU4zWTBhRE4yT0dnMGRpMDRhRE5zTVMwMGFDMDBWamRoTVNBeElEQWdNQ0F4SURFdE1XZ3plaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmFjZWJvb2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPWZhY2Vib29rIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBGYWNlYm9vazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyaC0zYTUgNSAwIDAgMC01IDV2M0g3djRoM3Y4aDR2LThoM2wxLTRoLTRWN2ExIDEgMCAwIDEgMS0xaDN6JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZhY2Vib29rO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZhblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1T0RJM0lERTJMak0zT1dFMkxqQTRNaUEyTGpBNE1pQXdJREFnTVMwNExqWXhPQzAzTGpBd01tdzFMalF4TWlBeExqUTFZVFl1TURneUlEWXVNRGd5SURBZ01DQXhJRGN1TURBeUxUZ3VOakU0YkMweExqUTFJRFV1TkRFeVlUWXVNRGd5SURZdU1EZ3lJREFnTUNBeElEZ3VOakU0SURjdU1EQXliQzAxTGpReE1pMHhMalExWVRZdU1EZ3lJRFl1TURneUlEQWdNQ0F4TFRjdU1EQXlJRGd1TmpFNGJERXVORFV0TlM0ME1USmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW5ZdU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mYW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGYW46IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAuODI3IDE2LjM3OWE2LjA4MiA2LjA4MiAwIDAgMS04LjYxOC03LjAwMmw1LjQxMiAxLjQ1YTYuMDgyIDYuMDgyIDAgMCAxIDcuMDAyLTguNjE4bC0xLjQ1IDUuNDEyYTYuMDgyIDYuMDgyIDAgMCAxIDguNjE4IDcuMDAybC01LjQxMi0xLjQ1YTYuMDgyIDYuMDgyIDAgMCAxLTcuMDAyIDguNjE4bDEuNDUtNS40MTJaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2LjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZhbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmYXN0LWZvcndhcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05tRXlJRElnTUNBd0lERWdNeTQwTVRRdE1TNDBNVFJzTmlBMllUSWdNaUF3SURBZ01TQXdJREl1T0RJNGJDMDJJRFpCTWlBeUlEQWdNQ0F4SURFeUlERTRlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUEyWVRJZ01pQXdJREFnTVNBekxqUXhOQzB4TGpReE5HdzJJRFpoTWlBeUlEQWdNQ0F4SURBZ01pNDRNamhzTFRZZ05rRXlJRElnTUNBd0lERWdNaUF4T0hvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Zhc3QtZm9yd2FyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZhc3RGb3J3YXJkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZhMiAyIDAgMCAxIDMuNDE0LTEuNDE0bDYgNmEyIDIgMCAwIDEgMCAyLjgyOGwtNiA2QTIgMiAwIDAgMSAxMiAxOHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMiAxOHonIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmFzdEZvcndhcmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmVhdGhlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1TmpjZ01UbGhNaUF5SURBZ01DQXdJREV1TkRFMkxTNDFPRGhzTmk0eE5UUXROaTR4TnpKaE5pQTJJREFnTUNBd0xUZ3VORGt0T0M0ME9VdzFMalU0TmlBNUxqa3hORUV5SURJZ01DQXdJREFnTlNBeE1TNHpNamhXTVRoaE1TQXhJREFnTUNBd0lERWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURnZ01pQXlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGN1TlNBeE5VZzVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mZWF0aGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmVhdGhlcjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMi42NyAxOWEyIDIgMCAwIDAgMS40MTYtLjU4OGw2LjE1NC02LjE3MmE2IDYgMCAwIDAtOC40OS04LjQ5TDUuNTg2IDkuOTE0QTIgMiAwIDAgMCA1IDExLjMyOFYxOGExIDEgMCAwIDAgMSAxeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDggMiAyMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy41IDE1SDknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmVhdGhlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmZW5jZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F6SURJZ05YWXhOV013SUM0MkxqUWdNU0F4SURGb01tTXVOaUF3SURFdExqUWdNUzB4VmpWYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEaG9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4T0dnMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1pQXpMVElnTW5ZeE5XTXdJQzQyTGpRZ01TQXhJREZvTW1NdU5pQXdJREV0TGpRZ01TMHhWalZhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBNGFEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREU0YURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJd0lETXRNaUF5ZGpFMVl6QWdMall1TkNBeElERWdNV2d5WXk0MklEQWdNUzB1TkNBeExURldOVm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmVuY2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGZW5jZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDMgMiA1djE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDMtMiAydjE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE4aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMy0yIDJ2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGZW5jZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmZXJyaXMtd2hlZWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUWXVPQ0F4TlMwekxqVWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNakF1TnlBM0xUTXVOU0F5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAyTGpnZ09TQXpMak1nTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpBdU55QXhOeTB6TGpVdE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXlNaUF6TFRnZ015QTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREl5YURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERTRMamRoT1NBNUlEQWdNU0F3TFRFeUlEQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mZXJyaXMtd2hlZWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGZXJyaXNXaGVlbDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202LjggMTUtMy41IDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAuNyA3LTMuNSAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuOCA5IDMuMyA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjcgMTctMy41LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAyMiAzLTggMyA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjJoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxOC43YTkgOSAwIDEgMC0xMiAwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZlcnJpc1doZWVsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpZ21hXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQTFMalZCTXk0MUlETXVOU0F3SURBZ01TQTRMalVnTWtneE1uWTNTRGd1TlVFekxqVWdNeTQxSURBZ01DQXhJRFVnTlM0MWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbWd6TGpWaE15NDFJRE11TlNBd0lERWdNU0F3SURkSU1USldNbm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFeUxqVmhNeTQxSURNdU5TQXdJREVnTVNBM0lEQWdNeTQxSURNdU5TQXdJREVnTVMwM0lEQjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREU1TGpWQk15NDFJRE11TlNBd0lEQWdNU0E0TGpVZ01UWklNVEoyTXk0MVlUTXVOU0F6TGpVZ01DQXhJREV0TnlBd2VpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNaTQxUVRNdU5TQXpMalVnTUNBd0lERWdPQzQxSURsSU1USjJOMGc0TGpWQk15NDFJRE11TlNBd0lEQWdNU0ExSURFeUxqVjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWdtYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqIEBkZXByZWNhdGVkIEJyYW5kIGljb25zIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCBhcmUgZHVlIHRvIGJlIHJlbW92ZWQsIHBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vbHVjaWRlLWljb25zL2x1Y2lkZS9pc3N1ZXMvNjcwLiBXZSByZWNvbW1lbmQgdXNpbmcgaHR0cHM6Ly9zaW1wbGVpY29ucy5vcmcvP3E9ZmlnbWEgaW5zdGVhZC4gVGhpcyBpY29uIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wXG4gKi9cbmNvbnN0IEZpZ21hOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgNS41QTMuNSAzLjUgMCAwIDEgOC41IDJIMTJ2N0g4LjVBMy41IDMuNSAwIDAgMSA1IDUuNXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMmgzLjVhMy41IDMuNSAwIDEgMSAwIDdIMTJWMnonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTIuNWEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMSAxLTcgMHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxOS41QTMuNSAzLjUgMCAwIDEgOC41IDE2SDEydjMuNWEzLjUgMy41IDAgMSAxLTcgMHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMi41QTMuNSAzLjUgMCAwIDEgOC41IDlIMTJ2N0g4LjVBMy41IDMuNSAwIDAgMSA1IDEyLjV6JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpZ21hO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtYXJjaGl2ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE11TmpVNUlESXlTREU0WVRJZ01pQXdJREFnTUNBeUxUSldPR0V5TGpRZ01pNDBJREFnTUNBd0xTNDNNRFl0TVM0M01EWnNMVE11TlRnNExUTXVOVGc0UVRJdU5DQXlMalFnTUNBd0lEQWdNVFFnTWtnMllUSWdNaUF3SURBZ01DMHlJREoyTVRFdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TW5ZdE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhPSFl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBM1ZqWWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlPQ0lnWTNrOUlqSXdJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtYXJjaGl2ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVBcmNoaXZlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjY1OSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjExLjUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJ2LTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOHYtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDdWNicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzgnLCBjeTogJzIwJywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUFyY2hpdmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1heGlzLTNkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNbUV5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1nNFlUSXVOQ0F5TGpRZ01DQXdJREVnTVM0M01EUXVOekEyYkRNdU5UZzRJRE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREVnTWpBZ09IWXhNbUV5SURJZ01DQXdJREV0TWlBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0F4T0NBMExUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVEIyT0dnNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtYXhpcy0zZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVBeGlzM2Q6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxOCA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMHY4aDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUF4aXMzZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLWJhZGdlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNakpvTldFeUlESWdNQ0F3SURBZ01pMHlWamhoTWk0MElESXVOQ0F3SURBZ01DMHVOekEyTFRFdU56QTJiQzB6TGpVNE9DMHpMalU0T0VFeUxqUWdNaTQwSURBZ01DQXdJREUwSURKSU5tRXlJRElnTUNBd0lEQXRNaUF5ZGpNdU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSnROeTQyT1NBeE5pNDBOemtnTVM0eU9TQTBMamc0WVM0MUxqVWdNQ0F3SURFdExqWTVPQzQxT1RGc0xURXVPRFF6TFM0NE5EbGhNU0F4SURBZ01DQXdMUzQ0TnprdU1EQXhiQzB4TGpnME5pNDROV0V1TlM0MUlEQWdNQ0F4TFM0Mk9USXRMalU1TTJ3eExqSTVMVFF1T0RnaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5pSWdZM2s5SWpFMElpQnlQU0l6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1iYWRnZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVCYWRnZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMyAyMmg1YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My4zJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ203LjY5IDE2LjQ3OSAxLjI5IDQuODhhLjUuNSAwIDAgMS0uNjk4LjU5MWwtMS44NDMtLjg0OWExIDEgMCAwIDAtLjg3OS4wMDFsLTEuODQ2Ljg1YS41LjUgMCAwIDEtLjY5Mi0uNTkzbDEuMjktNC44OCcsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnMTQnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlQmFkZ2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1icmFjZXMtY29ybmVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNakpvTkdFeUlESWdNQ0F3SURBZ01pMHlWamhoTWk0MElESXVOQ0F3SURBZ01DMHVOekEyTFRFdU56QTJiQzB6TGpVNE9DMHpMalU0T0VFeUxqUWdNaTQwSURBZ01DQXdJREUwSURKSU5tRXlJRElnTUNBd0lEQXRNaUF5ZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESjJOV0V4SURFZ01DQXdJREFnTVNBeGFEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNVFJoTVNBeElEQWdNQ0F3TFRFZ01YWXlZVEVnTVNBd0lEQWdNUzB4SURFZ01TQXhJREFnTUNBeElERWdNWFl5WVRFZ01TQXdJREFnTUNBeElERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNakpoTVNBeElEQWdNQ0F3SURFdE1YWXRNbUV4SURFZ01DQXdJREVnTVMweElERWdNU0F3SURBZ01TMHhMVEYyTFRKaE1TQXhJREFnTUNBd0xURXRNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1icmFjZXMtY29ybmVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZUJyYWNlc0Nvcm5lcjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNCAyMmg0YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxNGExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAxLTEgMSAxIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAwIDEgMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIyYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0yYTEgMSAwIDAgMC0xLTEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUJyYWNlc0Nvcm5lcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLWJveFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFF1TlNBeU1rZ3hPR0V5SURJZ01DQXdJREFnTWkweVZqaGhNaTQwSURJdU5DQXdJREFnTUMwdU56QTJMVEV1TnpBMmJDMHpMalU0T0MwekxqVTRPRUV5TGpRZ01pNDBJREFnTUNBd0lERTBJREpJTm1FeUlESWdNQ0F3SURBdE1pQXlkak11T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URXVOeUF4TkM0eUlEY2dNVGRzTFRRdU55MHlMamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRNdU1XRXlJRElnTUNBd0lEQXRMams1T1NBeExqYzJkak11TWpSaE1pQXlJREFnTUNBd0lDNDVOamtnTVM0M09FdzJJREl4TGpkaE1pQXlJREFnTUNBd0lESXVNRE11TURGTU1URWdNVGt1T1dFeUlESWdNQ0F3SURBZ01TMHhMamMyVmpFMExqbGhNaUF5SURBZ01DQXdMUzQ1TnkweExqYzRURGdnTVRFdU0yRXlJRElnTUNBd0lEQXRNaTR3TXkwdU1ERjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREUzZGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtYm94XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZUJveDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNC41IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My44JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMS43IDE0LjIgNyAxN2wtNC43LTIuOCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDEzLjFhMiAyIDAgMCAwLS45OTkgMS43NnYzLjI0YTIgMiAwIDAgMCAuOTY5IDEuNzhMNiAyMS43YTIgMiAwIDAgMCAyLjAzLjAxTDExIDE5LjlhMiAyIDAgMCAwIDEtMS43NlYxNC45YTIgMiAwIDAgMC0uOTctMS43OEw4IDExLjNhMiAyIDAgMCAwLTIuMDMtLjAxeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTd2NScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlQm94O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtYnJhY2VzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNbUV5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1nNFlUSXVOQ0F5TGpRZ01DQXdJREVnTVM0M01EUXVOekEyYkRNdU5UZzRJRE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREVnTWpBZ09IWXhNbUV5SURJZ01DQXdJREV0TWlBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRKaE1TQXhJREFnTUNBd0xURWdNWFl4WVRFZ01TQXdJREFnTVMweElERWdNU0F4SURBZ01DQXhJREVnTVhZeFlURWdNU0F3SURBZ01DQXhJREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFNFlURWdNU0F3SURBZ01DQXhMVEYyTFRGaE1TQXhJREFnTUNBeElERXRNU0F4SURFZ01DQXdJREV0TVMweGRpMHhZVEVnTVNBd0lEQWdNQzB4TFRFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtYnJhY2VzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZUJyYWNlczogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMmExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAxLTEgMSAxIDEgMCAwIDEgMSAxdjFhMSAxIDAgMCAwIDEgMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxOGExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTEgMSAxIDAgMCAxLTEtMXYtMWExIDEgMCAwIDAtMS0xJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVCcmFjZXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1jaGFydC1jb2x1bW4taW5jcmVhc2luZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF5TW1FeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzRZVEl1TkNBeUxqUWdNQ0F3SURFZ01TNDNNRFF1TnpBMmJETXVOVGc0SURNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURFZ01qQWdPSFl4TW1FeUlESWdNQ0F3SURFdE1pQXllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE9IWXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRoMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREU0ZGkwMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtY2hhcnQtY29sdW1uLWluY3JlYXNpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTh2LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTh2LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTh2LTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUNoYXJ0Q29sdW1uSW5jcmVhc2luZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLWNoYXJ0LWNvbHVtblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF5TW1FeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzRZVEl1TkNBeUxqUWdNQ0F3SURFZ01TNDNNRFF1TnpBMmJETXVOVGc0SURNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURFZ01qQWdPSFl4TW1FeUlESWdNQ0F3SURFdE1pQXllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE9IWXRNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRoMkxUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREU0ZGkweklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtY2hhcnQtY29sdW1uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZUNoYXJ0Q29sdW1uOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTh2LTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTh2LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTh2LTMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUNoYXJ0Q29sdW1uO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtY2hhcnQtbGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF5TW1FeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzRZVEl1TkNBeUxqUWdNQ0F3SURFZ01TNDNNRFF1TnpBMmJETXVOVGc0SURNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURFZ01qQWdPSFl4TW1FeUlESWdNQ0F3SURFdE1pQXllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UTXRNeTQxSURNdU5TMHlMVEpNT0NBeE55SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWNoYXJ0LWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlQ2hhcnRMaW5lOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDEzLTMuNSAzLjUtMi0yTDggMTcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUNoYXJ0TGluZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLWNoYXJ0LXBpZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFV1T1RReElESXlTREU0WVRJZ01pQXdJREFnTUNBeUxUSldPR0V5TGpRZ01pNDBJREFnTUNBd0xTNDNNRFl0TVM0M01EUnNMVE11TlRnNExUTXVOVGc0UVRJdU5DQXlMalFnTUNBd0lEQWdNVFFnTWtnMllUSWdNaUF3SURBZ01DMHlJREoyTXk0MU1USWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREoyTldFeElERWdNQ0F3SURBZ01TQXhhRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFF1TURFM0lERXhMalV4TW1FMklEWWdNQ0F4SURBZ09DNDBOallnT0M0ME56VWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVFpoTVNBeElEQWdNQ0F4TFRFdE1YWXROR013TFM0MU5USXVORFV0TVM0d01EZ3VPVGsxTFM0NU1UZGhOaUEySURBZ01DQXhJRFF1T1RJeUlEUXVPVEl5WXk0d09URXVOVFEwTFM0ek5qVXVPVGsxTFM0NU1UY3VPVGsxZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtY2hhcnQtcGllXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZUNoYXJ0UGllOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1Ljk0MSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA0bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuNTEyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000LjAxNyAxMS41MTJhNiA2IDAgMSAwIDguNDY2IDguNDc1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkgMTZhMSAxIDAgMCAxLTEtMXYtNGMwLS41NTIuNDUtMS4wMDguOTk1LS45MTdhNiA2IDAgMCAxIDQuOTIyIDQuOTIyYy4wOTEuNTQ0LS4zNjUuOTk1LS45MTcuOTk1eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVDaGFydFBpZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLWNoZWNrLWNvcm5lclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TlNBeU1rZzJZVElnTWlBd0lEQWdNUzB5TFRKV05HRXlJRElnTUNBd0lERWdNaTB5YURoaE1pNDBJREl1TkNBd0lEQWdNU0F4TGpjd05pNDNNRFpzTXk0MU9EZ2dNeTQxT0RoQk1pNDBJREl1TkNBd0lEQWdNU0F5TUNBNGRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREoyTldFeElERWdNQ0F3SURBZ01TQXhhRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwSURJd0lESWdNaUEwTFRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtY2hlY2stY29ybmVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZUNoZWNrQ29ybmVyOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjUgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY2JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAyMCAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVDaGVja0Nvcm5lcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNbUV5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1nNFlUSXVOQ0F5TGpRZ01DQXdJREVnTVM0M01EUXVOekEyYkRNdU5UZzRJRE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREVnTWpBZ09IWXhNbUV5SURJZ01DQXdJREV0TWlBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPU0F4TlNBeUlESWdOQzAwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVDaGVjazogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE1IDIgMiA0LTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUNoZWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtY2xvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01qSm9NbUV5SURJZ01DQXdJREFnTWkweVZqaGhNaTQwSURJdU5DQXdJREFnTUMwdU56QTJMVEV1TnpBMmJDMHpMalU0T0MwekxqVTRPRUV5TGpRZ01pNDBJREFnTUNBd0lERTBJREpJTm1FeUlESWdNQ0F3SURBdE1pQXlkakl1T0RVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESjJOV0V4SURFZ01DQXdJREFnTVNBeGFEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVFIyTWk0eWJERXVOaUF4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpnaUlHTjVQU0l4TmlJZ2NqMGlOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1jbG9ja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVDbG9jazogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNiAyMmgyYTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2Mi44NScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNHYyLjJsMS42IDEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc4JywgY3k6ICcxNicsIHI6ICc2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVDbG9jaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLWNvZGUtY29ybmVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNaTR4TlZZMFlUSWdNaUF3SURBZ01TQXlMVEpvT0dFeUxqUWdNaTQwSURBZ01DQXhJREV1TnpBMkxqY3dObXd6TGpVNE9DQXpMalU0T0VFeUxqUWdNaTQwSURBZ01DQXhJREl3SURoMk1USmhNaUF5SURBZ01DQXhMVElnTW1ndE15NHpOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TlNBeE5pMHpJRE1nTXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlESXlJRE10TXkwekxUTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWNvZGUtY29ybmVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZUNvZGVDb3JuZXI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxMi4xNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMy4zNScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSAxNi0zIDMgMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMjIgMy0zLTMtMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlQ29kZUNvcm5lcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLWNvZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1tRXlJRElnTUNBd0lERXRNaTB5VmpSaE1pQXlJREFnTUNBeElESXRNbWc0WVRJdU5DQXlMalFnTUNBd0lERWdNUzQzTURRdU56QTJiRE11TlRnNElETXVOVGc0UVRJdU5DQXlMalFnTUNBd0lERWdNakFnT0hZeE1tRXlJRElnTUNBd0lERXRNaUF5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEl1TlNBNElERTFiRElnTWk0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQXhNaTQxSURJZ01pNDFMVElnTWk0MUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtY29kZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVDb2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEyLjUgOCAxNWwyIDIuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxMi41IDIgMi41LTIgMi41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVDb2RlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtY29nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVPRFVnTWpKSU1UaGhNaUF5SURBZ01DQXdJREl0TWxZNFlUSWdNaUF3SURBZ01DMHVOVGcyTFRFdU5ERTBiQzAwTFRSQk1pQXlJREFnTUNBd0lERTBJREpJTm1FeUlESWdNQ0F3SURBdE1pQXlkall1TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE15NHpNRFVnTVRrdU5UTXVPVEl6TFM0ek9ESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUUXVNakk0SURFMkxqZzFNaTB1T1RJMExTNHpPRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFV1T0RVeUlERTFMakl5T0MwdU16Z3pMUzQ1TWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRVdU9EVXlJREl3TGpjM01pMHVNemd6TGpreU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9DNHhORGdnTVRVdU1qSTRMak00TXkwdU9USXpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDRMalV6SURJeExqWTVOaTB1TXpneUxTNDVNalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGt1TnpjeklERTJMamcxTWk0NU1qSXRMak00TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1M0M056TWdNVGt1TVRRNExqa3lNaTR6T0RNaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU55SWdZM2s5SWpFNElpQnlQU0l6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1jb2dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlQ29nOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjg1IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtNC00QTIgMiAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY2LjYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMuMzA1IDE5LjUzLjkyMy0uMzgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQuMjI4IDE2Ljg1Mi0uOTI0LS4zODMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNS44NTIgMTUuMjI4LS4zODMtLjkyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201Ljg1MiAyMC43NzItLjM4My45MjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOC4xNDggMTUuMjI4LjM4My0uOTIzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTguNTMgMjEuNjk2LS4zODItLjkyNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205Ljc3MyAxNi44NTIuOTIyLS4zODMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS43NzMgMTkuMTQ4LjkyMi4zODMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3JywgY3k6ICcxOCcsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVDb2c7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1kaWZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNbUV5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1nNFlUSXVOQ0F5TGpRZ01DQXdJREVnTVM0M01EUXVOekEyYkRNdU5UZzRJRE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREVnTWpBZ09IWXhNbUV5SURJZ01DQXdJREV0TWlBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhNR2cySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE0xWTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREUzYURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtZGlmZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVEaWZmOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEwaDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTNWNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE3aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZURpZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1kaWdpdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TWxZMFlUSWdNaUF3SURBZ01TQXlMVEpvT0dFeUxqUWdNaTQwSURBZ01DQXhJREV1TnpBMkxqY3dObXd6TGpVNE9DQXpMalU0T0VFeUxqUWdNaTQwSURBZ01DQXhJREl3SURoMk1USmhNaUF5SURBZ01DQXhMVElnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVFpvTW5ZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXlNbWcwSWlBdlBnb2dJRHh5WldOMElIZzlJaklpSUhrOUlqRTJJaUIzYVdSMGFEMGlOQ0lnYUdWcFoyaDBQU0kySWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1kaWdpdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVEaWdpdDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDEyVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNmgydjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjJoNCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnMTYnLCB3aWR0aDogJzQnLCBoZWlnaHQ6ICc2Jywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVEaWdpdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLWRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1tRXlJRElnTUNBd0lERXRNaTB5VmpSaE1pQXlJREFnTUNBeElESXRNbWc0WVRJdU5DQXlMalFnTUNBd0lERWdNUzQzTURRdU56QTJiRE11TlRnNElETXVOVGc0UVRJdU5DQXlMalFnTUNBd0lERWdNakFnT0hZeE1tRXlJRElnTUNBd0lERXRNaUF5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGgyTFRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ01UVWdNeUF6SURNdE15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlRG93bjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOHYtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE1IDMgMyAzLTMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZURvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1leGNsYW1hdGlvbi1wb2ludFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF5TW1FeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzRZVEl1TkNBeUxqUWdNQ0F3SURFZ01TNDNNRFF1TnpBMmJETXVOVGc0SURNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURFZ01qQWdPSFl4TW1FeUlESWdNQ0F3SURFdE1pQXllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnT1hZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOMmd1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtZXhjbGFtYXRpb24tcG9pbnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlRXhjbGFtYXRpb25Qb2ludDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOXY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3aC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlRXhjbGFtYXRpb25Qb2ludDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLWhlYWRwaG9uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0EyTGpnek5WWTBZVElnTWlBd0lEQWdNU0F5TFRKb09HRXlMalFnTWk0MElEQWdNQ0F4SURFdU56QTJMamN3Tm13ekxqVTRPQ0F6TGpVNE9FRXlMalFnTWk0MElEQWdNQ0F4SURJd0lEaDJNVEpoTWlBeUlEQWdNQ0F4TFRJZ01tZ3RMak0wTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhPV0V5SURJZ01DQXdJREVnTkNBd2RqRmhNaUF5SURBZ01DQXhMVFFnTUhZdE5HRTJJRFlnTUNBd0lERWdNVElnTUhZMFlUSWdNaUF3SURBZ01TMDBJREIyTFRGaE1pQXlJREFnTUNBeElEUWdNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1oZWFkcGhvbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlSGVhZHBob25lOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgNi44MzVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLS4zNDMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMiAxOWEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAxLTQgMHYtNGE2IDYgMCAwIDEgMTIgMHY0YTIgMiAwIDAgMS00IDB2LTFhMiAyIDAgMCAxIDQgMCcgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVIZWFkcGhvbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1oZWFydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTWpKb05XRXlJRElnTUNBd0lEQWdNaTB5VmpoaE1pNDBJREl1TkNBd0lEQWdNQzB1TnpBMkxURXVOekEyYkMwekxqVTRPQzB6TGpVNE9FRXlMalFnTWk0MElEQWdNQ0F3SURFMElESklObUV5SURJZ01DQXdJREF0TWlBeWRqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREoyTldFeElERWdNQ0F3SURBZ01TQXhhRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE11TmpJZ01UZ3VPRUV5TGpJMUlESXVNalVnTUNBeElERWdOeUF4TlM0NE16WmhNaTR5TlNBeUxqSTFJREFnTVNBeElETXVNemdnTWk0NU5qWnNMVEl1TmpJMklESXVPRFUyWVRFZ01TQXdJREFnTVMweExqVXdOeUF3ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtaGVhcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlSGVhcnQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTMgMjJoNWEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjcnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgNyAxNS44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YTEgMSAwIDAgMS0xLjUwNyAweicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVIZWFydDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLWltYWdlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNbUV5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1nNFlUSXVOQ0F5TGpRZ01DQXdJREVnTVM0M01EUXVOekEyYkRNdU5UZzRJRE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREVnTWpBZ09IWXhNbUV5SURJZ01DQXdJREV0TWlBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TUNJZ1kzazlJakV5SWlCeVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNQ0F4TnkweExqSTVOaTB4TGpJNU5tRXlMalF4SURJdU5ERWdNQ0F3SURBdE15NDBNRGdnTUV3NUlESXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWltYWdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZUltYWdlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAnLCBjeTogJzEyJywgcjogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMTctMS4yOTYtMS4yOTZhMi40MSAyLjQxIDAgMCAwLTMuNDA4IDBMOSAyMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlSW1hZ2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1pbnB1dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TVZZMFlUSWdNaUF3SURBZ01TQXlMVEpvT0dFeUxqUWdNaTQwSURBZ01DQXhJREV1TnpBMkxqY3dObXd6TGpVNE9DQXpMalU0T0VFeUxqUWdNaTQwSURBZ01DQXhJREl3SURoMk1USmhNaUF5SURBZ01DQXhMVElnTWtnMllUSWdNaUF3SURBZ01TMHlMVEoyTFRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESjJOV0V4SURFZ01DQXdJREFnTVNBeGFEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVFZvTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ01UZ2dNeTB6TFRNdE15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWlucHV0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZUlucHV0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMTFWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0xJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE1aDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTggMy0zLTMtMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlSW5wdXQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1rZXlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU5qVWdNakpJTVRoaE1pQXlJREFnTUNBd0lESXRNbFk0WVRJdU5DQXlMalFnTUNBd0lEQXRMamN3TmkweExqY3dObXd0TXk0MU9EZ3RNeTQxT0RoQk1pNDBJREl1TkNBd0lEQWdNQ0F4TkNBeVNEWmhNaUF5SURBZ01DQXdMVElnTW5ZeE1DNHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5ZGpWaE1TQXhJREFnTUNBd0lERWdNV2cxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TUNBeE5TQXhJREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV4SURFMExUUXVOVGcySURRdU5UZzJJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJalVpSUdONVBTSXlNQ0lnY2owaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLWtleVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVLZXk6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAuNjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxMC4xJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNSAxIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTEgMTQtNC41ODYgNC41ODYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICcyMCcsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVLZXk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1sb2NrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQTVMamhXTkdFeUlESWdNQ0F3SURFZ01pMHlhRGhoTWk0MElESXVOQ0F3SURBZ01TQXhMamN3Tmk0M01EWnNNeTQxT0RnZ015NDFPRGhCTWk0MElESXVOQ0F3SURBZ01TQXlNQ0E0ZGpFeVlUSWdNaUF3SURBZ01TMHlJREpvTFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESjJOV0V4SURFZ01DQXdJREFnTVNBeGFEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVGQyTFRKaE1pQXlJREFnTUNBd0xUUWdNSFl5SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJNElpQm9aV2xuYUhROUlqVWlJSGc5SWpNaUlIazlJakUzSWlCeWVEMGlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1sb2NrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZUxvY2s6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCA5LjhWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTd2LTJhMiAyIDAgMCAwLTQgMHYyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc1JywgeDogJzMnLCB5OiAnMTcnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZUxvY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1taW51cy1jb3JuZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UUldPR0V5TGpRZ01pNDBJREFnTUNBd0xTNDNNRFl0TVM0M01EWnNMVE11TlRnNExUTXVOVGc0UVRJdU5DQXlMalFnTUNBd0lEQWdNVFFnTWtnMllUSWdNaUF3SURBZ01DMHlJREoyTVRaaE1pQXlJREFnTUNBd0lESWdNbWd4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVGhvTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtbWludXMtY29ybmVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZU1pbnVzQ29ybmVyOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDE0VjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTInLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE4aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZU1pbnVzQ29ybmVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtbXVzaWNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU5qVWdNakpJTVRoaE1pQXlJREFnTUNBd0lESXRNbFk0WVRJdU5DQXlMalFnTUNBd0lEQXRMamN3TmkweExqY3dObXd0TXk0MU9EZ3RNeTQxT0RoQk1pNDBJREl1TkNBd0lEQWdNQ0F4TkNBeVNEWmhNaUF5SURBZ01DQXdMVElnTW5ZeE1DNHpOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeU1IWXROMnd6SURFdU5EYzBJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJallpSUdONVBTSXlNQ0lnY2owaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLW11c2ljXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZU11c2ljOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExLjY1IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTAuMzUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjB2LTdsMyAxLjQ3NCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzIwJywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZU11c2ljO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtbWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1tRXlJRElnTUNBd0lERXRNaTB5VmpSaE1pQXlJREFnTUNBeElESXRNbWc0WVRJdU5DQXlMalFnTUNBd0lERWdNUzQzTURRdU56QTJiRE11TlRnNElETXVOVGc0UVRJdU5DQXlMalFnTUNBd0lERWdNakFnT0hZeE1tRXlJRElnTUNBd0lERXRNaUF5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhOV2cySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVNaW51czogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE1aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZU1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtb3V0cHV0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DNHlNallnTWpBdU9USTFRVElnTWlBd0lEQWdNQ0EySURJeWFERXlZVElnTWlBd0lEQWdNQ0F5TFRKV09HRXlMalFnTWk0MElEQWdNQ0F3TFM0M01EWXRNUzQzTURac0xUTXVOVGc0TFRNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURBZ01UUWdNa2cyWVRJZ01pQXdJREFnTUMweUlESjJNeTR4TWpjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESjJOV0V4SURFZ01DQXdJREFnTVNBeGFEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUVWdNVEV0TXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMUlERTNMVE10TTJneE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLW91dHB1dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVPdXRwdXQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNC4yMjYgMjAuOTI1QTIgMiAwIDAgMCA2IDIyaDEyYTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My4xMjcnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUgMTEtMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUgMTctMy0zaDEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVPdXRwdXQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1wZW4tbGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGd1TWpJMklEVXVNakkyTFRJdU5USXRNaTQxTWtFeUxqUWdNaTQwSURBZ01DQXdJREUwSURKSU5tRXlJRElnTUNBd0lEQXRNaUF5ZGpFMllUSWdNaUF3SURBZ01DQXlJREpvTVRKaE1pQXlJREFnTUNBd0lESXRNbll0TGpNMU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVNemM0SURFeUxqWXlObUV4SURFZ01DQXdJREF0TXk0d01EUXRNeTR3TURSc0xUUXVNREVnTkM0d01USmhNaUF5SURBZ01DQXdMUzQxTURZdU9EVTBiQzB1T0RNM0lESXVPRGRoTGpVdU5TQXdJREFnTUNBdU5qSXVOakpzTWk0NE55MHVPRE0zWVRJZ01pQXdJREFnTUNBdU9EVTBMUzQxTURaNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTRhREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1wZW4tbGluZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVQZW5MaW5lOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE4LjIyNiA1LjIyNi0yLjUyLTIuNTJBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LS4zNTEnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMS4zNzggMTIuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE4aDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVBlbkxpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1wZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU5qVTVJREl5U0RFNFlUSWdNaUF3SURBZ01DQXlMVEpXT0dFeUxqUWdNaTQwSURBZ01DQXdMUzQzTURZdE1TNDNNRFpzTFRNdU5UZzRMVE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREFnTVRRZ01rZzJZVElnTWlBd0lEQWdNQzB5SURKMk9TNHpOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU16YzRJREV5TGpZeU1tRXhJREVnTUNBd0lERWdNeUF6TGpBd00wdzRMak0ySURJd0xqWXpOMkV5SURJZ01DQXdJREV0TGpnMU5DNDFNRFpzTFRJdU9EWTNMamd6TjJFdU5TNDFJREFnTUNBeExTNDJNaTB1TmpKc0xqZ3pOaTB5TGpnMk9XRXlJRElnTUNBd0lERWdMalV3TmkwdU9EVXplaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1wZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlUGVuOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjY1OSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjkuMzQnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjM3OCAxMi42MjJhMSAxIDAgMCAxIDMgMy4wMDNMOC4zNiAyMC42MzdhMiAyIDAgMCAxLS44NTQuNTA2bC0yLjg2Ny44MzdhLjUuNSAwIDAgMS0uNjItLjYybC44MzYtMi44NjlhMiAyIDAgMCAxIC41MDYtLjg1M3onLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlUGVuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtcGxheVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF5TW1FeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzRZVEl1TkNBeUxqUWdNQ0F3SURFZ01TNDNNRFF1TnpBMmJETXVOVGc0SURNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURFZ01qQWdPSFl4TW1FeUlESWdNQ0F3SURFdE1pQXllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVdU1ETXpJREV6TGpRMFlTNDJORGN1TmpRM0lEQWdNQ0F4SURBZ01TNHhNbXd0TkM0d05qVWdNaTR6TlRKaExqWTBOUzQyTkRVZ01DQXdJREV0TGprMk9DMHVOVFoyTFRRdU56QTBZUzQyTkRVdU5qUTFJREFnTUNBeElDNDVOamN0TGpVMmVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXBsYXlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlUGxheTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNS4wMzMgMTMuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NnYtNC43MDRhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVBsYXk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1wbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNbUV5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1nNFlUSXVOQ0F5TGpRZ01DQXdJREVnTVM0M01EUXVOekEyYkRNdU5UZzRJRE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREVnTWpBZ09IWXhNbUV5SURJZ01DQXdJREV0TWlBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TldnMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhPSFl0TmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVQbHVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTVoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOHYtNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlUGx1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLXF1ZXN0aW9uLW1hcmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1tRXlJRElnTUNBd0lERXRNaTB5VmpSaE1pQXlJREFnTUNBeElESXRNbWc0WVRJdU5DQXlMalFnTUNBd0lERWdNUzQzTURRdU56QTJiRE11TlRnNElETXVOVGc0UVRJdU5DQXlMalFnTUNBd0lERWdNakFnT0hZeE1tRXlJRElnTUNBd0lERXRNaUF5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UZG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1TGpFZ09XRXpJRE1nTUNBd0lERWdOUzQ0TWlBeFl6QWdNaTB6SURNdE15QXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXF1ZXN0aW9uLW1hcmtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlUXVlc3Rpb25NYXJrOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlUXVlc3Rpb25NYXJrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtcGx1cy1jb3JuZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU16VWdNakpJTm1FeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzRZVEl1TkNBeUxqUWdNQ0F3SURFZ01TNDNNRFl1TnpBMmJETXVOVGc0SURNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURFZ01qQWdPSFkxTGpNMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlkalZoTVNBeElEQWdNQ0F3SURFZ01XZzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F4T1dnMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhOblkySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1wbHVzLWNvcm5lclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVQbHVzQ29ybmVyOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExLjM1IDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NS4zNScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTloNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNnY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVQbHVzQ29ybmVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtc2NhblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRCV09HRXlMalFnTWk0MElEQWdNQ0F3TFM0M01EWXRNUzQzTURSc0xUTXVOVGc0TFRNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURBZ01UUWdNa2cyWVRJZ01pQXdJREFnTUMweUlESjJNVFpoTWlBeUlEQWdNQ0F3SURJZ01tZzBMak0xSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeWRqVmhNU0F4SURBZ01DQXdJREVnTVdnMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhOR0V5SURJZ01DQXdJREF0TWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXlNbUV5SURJZ01DQXdJREV0TWkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhOR0V5SURJZ01DQXdJREVnTWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXlNbUV5SURJZ01DQXdJREFnTWkweUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtc2NhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVTY2FuOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDEwVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA0bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoNC4zNScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTRhMiAyIDAgMCAwLTIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAyMmEyIDIgMCAwIDEtMi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE0YTIgMiAwIDAgMSAyIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMjJhMiAyIDAgMCAwIDItMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlU2NhbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLXNlYXJjaC1jb3JuZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU1TQXlNa2cyWVRJZ01pQXdJREFnTVMweUxUSldOR0V5SURJZ01DQXdJREVnTWkweWFEaGhNaTQwSURJdU5DQXdJREFnTVNBeExqY3dOaTQzTURac015NDFPRGtnTXk0MU9EaEJNaTQwSURJdU5DQXdJREFnTVNBeU1DQTRkak11TWpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESjJOV0V4SURFZ01DQXdJREFnTVNBeGFEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJREl5TFRJdU9EZ3RNaTQ0T0NJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE5pSWdZM2s5SWpFM0lpQnlQU0l6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS1zZWFyY2gtY29ybmVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZVNlYXJjaENvcm5lcjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS4xIDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OSAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2My4yNScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMjItMi44OC0yLjg4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzE3JywgcjogJzMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVNlYXJjaENvcm5lcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLXNlYXJjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF5TW1FeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzRZVEl1TkNBeUxqUWdNQ0F3SURFZ01TNDNNRFF1TnpBMmJETXVOVGc0SURNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURFZ01qQWdPSFl4TW1FeUlESWdNQ0F3SURFdE1pQXllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1TNDFJaUJqZVQwaU1UUXVOU0lnY2owaU1pNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeTR6SURFMkxqTWdNVFVnTVRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtc2VhcmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZVNlYXJjaDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzExLjUnLCBjeTogJzE0LjUnLCByOiAnMi41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzLjMgMTYuMyAxNSAxOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlU2VhcmNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtc2lnbmFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNbUV5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1nNFlUSXVOQ0F5TGpRZ01DQXdJREVnTVM0M01EUXVOekEyYkRNdU5UZzRJRE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREVnTWpBZ09IWXhNbUV5SURJZ01DQXdJREV0TWlBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TldndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhMalVnTVRNdU5XRXlMalVnTWk0MUlEQWdNQ0F4SURBZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNVEpoTlNBMUlEQWdNQ0F4SURBZ05pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXNpZ25hbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVTaWduYWw6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuNSAxMy41YTIuNSAyLjUgMCAwIDEgMCAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEyYTUgNSAwIDAgMSAwIDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVNpZ25hbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLXNwcmVhZHNoZWV0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNbUV5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1nNFlUSXVOQ0F5TGpRZ01DQXdJREVnTVM0M01EUXVOekEyYkRNdU5UZzRJRE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREVnTWpBZ09IWXhNbUV5SURJZ01DQXdJREV0TWlBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TTJneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXhNMmd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFM2FESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREUzYURJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtc3ByZWFkc2hlZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlU3ByZWFkc2hlZXQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxM2gyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEzaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxN2gyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE3aDInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVNwcmVhZHNoZWV0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtc2xpZGVyc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF5TW1FeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzRZVEl1TkNBeUxqUWdNQ0F3SURFZ01TNDNNRFF1TnpBMmJETXVOVGc0SURNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURFZ01qQWdPSFl4TW1FeUlESWdNQ0F3SURFdE1pQXllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1tZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4TVhZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTNhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFMmRqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXNsaWRlcnNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlU2xpZGVyczogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTF2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE3aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTZ2MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlU2xpZGVycztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLXN0YWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNakZoTVNBeElEQWdNQ0F4TFRFZ01VZzBZVEVnTVNBd0lEQWdNUzB4TFRGMkxUaGhNU0F4SURBZ01DQXhJREV0TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UWmhNU0F4SURBZ01DQXhMVEVnTVVnNVlURWdNU0F3SURBZ01TMHhMVEZXT0dFeElERWdNQ0F3SURFZ01TMHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0EyWVRJZ01pQXdJREFnTUMwdU5UZzJMVEV1TkRFMGJDMHlMVEpCTWlBeUlEQWdNQ0F3SURFM0lESm9MVE5oTVNBeElEQWdNQ0F3TFRFZ01YWTRZVEVnTVNBd0lEQWdNQ0F4SURGb05tRXhJREVnTUNBd0lEQWdNUzB4ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtc3RhY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlU3RhY2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMjFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LThhMSAxIDAgMCAxIDEtMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNmExIDEgMCAwIDEtMSAxSDlhMSAxIDAgMCAxLTEtMVY4YTEgMSAwIDAgMSAxLTEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgNmEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtMi0yQTIgMiAwIDAgMCAxNyAyaC0zYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMXonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlU3RhY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS1zeW1saW5rXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNVlkwWVRJZ01pQXdJREFnTVNBeUxUSm9PR0V5TGpRZ01pNDBJREFnTUNBeElERXVOekEyTGpjd05td3pMalU0T0NBekxqVTRPRUV5TGpRZ01pNDBJREFnTUNBeElESXdJRGgyTVRKaE1pQXlJREFnTUNBeExUSWdNa2cyWVRJZ01pQXdJREFnTVMweUxUSjJMVE5oTWlBeUlEQWdNQ0F4SURJdE1tZzNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5ZGpWaE1TQXhJREFnTUNBd0lERWdNV2cxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TUNBeE9DQXpMVE10TXkweklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtc3ltbGlua1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVTeW1saW5rOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMTFWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoNycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgMTggMy0zLTMtMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlU3ltbGluaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLXRlcm1pbmFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNbUV5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1nNFlUSXVOQ0F5TGpRZ01DQXdJREVnTVM0M01EUXVOekEyYkRNdU5UZzRJRE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREVnTWpBZ09IWXhNbUV5SURJZ01DQXdJREV0TWlBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0F4TmlBeUxUSXRNaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE9HZzBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXRlcm1pbmFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZVRlcm1pbmFsOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTYgMi0yLTItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOGg0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVUZXJtaW5hbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLXRleHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1tRXlJRElnTUNBd0lERXRNaTB5VmpSaE1pQXlJREFnTUNBeElESXRNbWc0WVRJdU5DQXlMalFnTUNBd0lERWdNUzQzTURRdU56QTJiRE11TlRnNElETXVOVGc0UVRJdU5DQXlMalFnTUNBd0lERWdNakFnT0hZeE1tRXlJRElnTUNBd0lERXRNaUF5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdPVWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE0wZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TjBnNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtdGV4dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVUZXh0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDlIOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxM0g4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE3SDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVRleHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS10eXBlLWNvcm5lclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpKb05tRXlJRElnTUNBd0lEQWdNaTB5VmpoaE1pNDBJREl1TkNBd0lEQWdNQzB1TnpBMkxURXVOekEyYkMwekxqVTRPQzB6TGpVNE9FRXlMalFnTWk0MElEQWdNQ0F3SURFMElESklObUV5SURJZ01DQXdJREF0TWlBeWRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREoyTldFeElERWdNQ0F3SURBZ01TQXhhRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRaMkxURXVOV0V1TlM0MUlEQWdNQ0F4SUM0MUxTNDFhRGRoTGpVdU5TQXdJREFnTVNBdU5TNDFWakUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURJeWFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVFIyT0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtdHlwZS1jb3JuZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlVHlwZUNvcm5lcjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAyMmg2YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNnYtMS41YS41LjUgMCAwIDEgLjUtLjVoN2EuNS41IDAgMCAxIC41LjVWMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAyMmgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTR2OCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlVHlwZUNvcm5lcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLXR5cGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1tRXlJRElnTUNBd0lERXRNaTB5VmpSaE1pQXlJREFnTUNBeElESXRNbWc0WVRJdU5DQXlMalFnTUNBd0lERWdNUzQzTURRdU56QTJiRE11TlRnNElETXVOVGc0UVRJdU5DQXlMalFnTUNBd0lERWdNakFnT0hZeE1tRXlJRElnTUNBd0lERXRNaUF5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVGhvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TTNZdExqVmhMalV1TlNBd0lEQWdNU0F1TlMwdU5XZzFZUzQxTGpVZ01DQXdJREVnTGpVdU5YWXVOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlsZS10eXBlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZVR5cGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMThoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTN2LS41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIC41LjV2LjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVR5cGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF5TW1FeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzRZVEl1TkNBeUxqUWdNQ0F3SURFZ01TNDNNRFF1TnpBMmJETXVOVGc0SURNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURFZ01qQWdPSFl4TW1FeUlESWdNQ0F3SURFdE1pQXllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRVdE15MHpMVE1nTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlVXA6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxNS0zLTMtMyAzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVVcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLXVzZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1tRXlJRElnTUNBd0lERXRNaTB5VmpSaE1pQXlJREFnTUNBeElESXRNbWc0WVRJdU5DQXlMalFnTUNBd0lERWdNUzQzTURRdU56QTJiRE11TlRnNElETXVOVGc0UVRJdU5DQXlMalFnTUNBd0lERWdNakFnT0hZeE1tRXlJRElnTUNBd0lERXRNaUF5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNakpoTkNBMElEQWdNQ0F3TFRnZ01DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRTFJaUJ5UFNJeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUtdXNlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVVc2VyOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIyYTQgNCAwIDAgMC04IDAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTUnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlVXNlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLXZvbHVtZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TVM0MU5WWTBZVElnTWlBd0lEQWdNU0F5TFRKb09HRXlMalFnTWk0MElEQWdNQ0F4SURFdU56QTJMamN3Tm13ekxqVTRPQ0F6TGpVNE9FRXlMalFnTWk0MElEQWdNQ0F4SURJd0lEaDJNVEpoTWlBeUlEQWdNQ0F4TFRJZ01tZ3RNUzQ1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFZoTlNBMUlEQWdNQ0F4SURBZ05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhOQzQxTURKaExqVXVOU0F3SURBZ01DMHVPREkyTFM0ek9ERnNMVEV1T0RreklERXVOak14WVRFZ01TQXdJREFnTVMwdU5qVXhMakkwTTBnekxqVmhMalV1TlNBd0lEQWdNQzB1TlM0MU1ERjJNeTR3TURaaExqVXVOU0F3SURBZ01DQXVOUzQxTURGb01TNHhNamxoTVNBeElEQWdNQ0F4SUM0Mk5USXVNalF6YkRFdU9Ea3pJREV1TmpNellTNDFMalVnTUNBd0lEQWdMamd5TmkwdU16aDZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXZvbHVtZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVWb2x1bWU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxMS41NVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMS45NScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTVhNSA1IDAgMCAxIDAgNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004IDE0LjUwMmEuNS41IDAgMCAwLS44MjYtLjM4MWwtMS44OTMgMS42MzFhMSAxIDAgMCAxLS42NTEuMjQzSDMuNWEuNS41IDAgMCAwLS41LjUwMXYzLjAwNmEuNS41IDAgMCAwIC41LjUwMWgxLjEyOWExIDEgMCAwIDEgLjY1Mi4yNDNsMS44OTMgMS42MzNhLjUuNSAwIDAgMCAuODI2LS4zOHonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlVm9sdW1lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGUtdmlkZW8tY2FtZXJhXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNbFkwWVRJZ01pQXdJREFnTVNBeUxUSm9PR0V5TGpRZ01pNDBJREFnTUNBeElERXVOekEyTGpjd05td3pMalU0T0NBekxqVTRPRUV5TGpRZ01pNDBJREFnTUNBeElESXdJRGgyTVRKaE1pQXlJREFnTUNBeExUSWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ01UY3VPRFF6SURNdU1ETXpMVEV1TnpVMVlTNDJOQzQyTkNBd0lEQWdNU0F1T1RZM0xqVTJkalF1TnpBMFlTNDJOUzQyTlNBd0lEQWdNUzB1T1RZM0xqVTJUREV3SURJd0xqRTFOeUlnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJMklpQjRQU0l6SWlCNVBTSXhOaUlnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlLXZpZGVvLWNhbWVyYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVWaWRlb0NhbWVyYTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDEyVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnbTEwIDE3Ljg0MyAzLjAzMy0xLjc1NWEuNjQuNjQgMCAwIDEgLjk2Ny41NnY0LjcwNGEuNjUuNjUgMCAwIDEtLjk2Ny41NkwxMCAyMC4xNTcnIH0sXG4gIF0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNicsIHg6ICczJywgeTogJzE2Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVWaWRlb0NhbWVyYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaWxlLXgtY29ybmVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNakpJTm1FeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZzRZVEl1TkNBeUxqUWdNQ0F3SURFZ01TNDNNRFl1TnpBMmJETXVOVGc0SURNdU5UZzRRVEl1TkNBeUxqUWdNQ0F3SURFZ01qQWdPSFkxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeWRqVmhNU0F4SURBZ01DQXdJREVnTVdnMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5TQXhOeUExSURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJd0lERTNMVFVnTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUteC1jb3JuZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaWxlWENvcm5lcjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDE3IDUgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMCAxNy01IDUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZVhDb3JuZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsZS14XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNbUV5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1nNFlUSXVOQ0F5TGpRZ01DQXdJREVnTVM0M01EUXVOekEyYkRNdU5UZzRJRE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREVnTWpBZ09IWXhNbUV5SURJZ01DQXdJREV0TWlBeWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFF1TlNBeE1pNDFMVFVnTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1M0MUlERXlMalVnTlNBMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbGUteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVYOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAydjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0LjUgMTIuNS01IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS41IDEyLjUgNSA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1tRXlJRElnTUNBd0lERXRNaTB5VmpSaE1pQXlJREFnTUNBeElESXRNbWc0WVRJdU5DQXlMalFnTUNBd0lERWdNUzQzTURRdU56QTJiRE11TlRnNElETXVOVGc0UVRJdU5DQXlMalFnTUNBd0lERWdNakFnT0hZeE1tRXlJRElnTUNBd0lERXRNaUF5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpbGVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNbWd0TkdFeUlESWdNQ0F3SURBdE1pQXlkakV4WVRJZ01pQXdJREFnTUNBeUlESm9PR0V5SURJZ01DQXdJREFnTWkweVZqZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJMamN3TmlBeUxqY3dOa0V5TGpRZ01pNDBJREFnTUNBd0lERTFJREoyTldFeElERWdNQ0F3SURBZ01TQXhhRFZoTWk0MElESXVOQ0F3SURBZ01DMHVOekEyTFRFdU56QTJlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0EzWVRJZ01pQXdJREFnTUMweUlESjJNVEZoTWlBeUlEQWdNQ0F3SURJZ01tZzRZVElnTWlBd0lEQWdNQ0F4TGpjek1pMHhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpbGVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJoLTRhMiAyIDAgMCAwLTIgMnYxMWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2LjcwNiAyLjcwNkEyLjQgMi40IDAgMCAwIDE1IDJ2NWExIDEgMCAwIDAgMSAxaDVhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDdhMiAyIDAgMCAwLTIgMnYxMWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDEuNzMyLTEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlsZXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlsbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJRE4yTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ055NDFhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRKb01UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVFl1TldnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXpkakU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBM0xqVm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRZdU5XZzBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maWxtXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlsbTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDN2MTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA3LjVoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyaDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTYuNWg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDN2MTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNy41aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTYuNWg0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbG07XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmluZ2VycHJpbnQtcGF0dGVyblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRCaE1pQXlJREFnTUNBd0xUSWdNbU13SURFdU1ESXRMakVnTWk0MU1TMHVNallnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UTXVNVEpqTUNBeUxqTTRJREFnTmk0ek9DMHhJRGd1T0RnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqSTVJREl4TGpBeVl5NHhNaTB1Tmk0ME15MHlMak11TlMwekxqQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREV5WVRFd0lERXdJREFnTUNBeElERTRMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRab0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzQ0SURFMll5NHlMVElnTGpFek1TMDFMak0xTkNBd0xUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNVGt1TlVNMUxqVWdNVGdnTmlBeE5TQTJJREV5WVRZZ05pQXdJREFnTVNBdU16UXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQzQyTlNBeU1tTXVNakV0TGpZMkxqUTFMVEV1TXpJdU5UY3RNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0EyTGpoaE5pQTJJREFnTUNBeElEa2dOUzR5ZGpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpbmdlcnByaW50LXBhdHRlcm5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGaW5nZXJwcmludFBhdHRlcm46IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTBhMiAyIDAgMCAwLTIgMmMwIDEuMDItLjEgMi41MS0uMjYgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMy4xMmMwIDIuMzggMCA2LjM4LTEgOC44OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy4yOSAyMS4wMmMuMTItLjYuNDMtMi4zLjUtMy4wMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyYTEwIDEwIDAgMCAxIDE4LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEuOCAxNmMuMi0yIC4xMzEtNS4zNTQgMC02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTkuNUM1LjUgMTggNiAxNSA2IDEyYTYgNiAwIDAgMSAuMzQtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjY1IDIyYy4yMS0uNjYuNDUtMS4zMi41Ny0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgNi44YTYgNiAwIDAgMSA5IDUuMnYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbmdlcnByaW50UGF0dGVybjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaXJlLWV4dGluZ3Vpc2hlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTmk0MVZqTmhNU0F4SURBZ01DQXdMVEV0TVdndE1tRXhJREVnTUNBd0lEQXRNU0F4ZGpNdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhPR2c0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBemFDMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNU0F6WVRZZ05pQXdJREFnTUMwMklEWjJNVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTVROb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVEJoTkNBMElEQWdNQ0F3TFRnZ01IWXhNR0V5SURJZ01DQXdJREFnTWlBeWFEUmhNaUF5SURBZ01DQXdJREl0TWxvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZpcmUtZXh0aW5ndWlzaGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmlyZUV4dGluZ3Vpc2hlcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSA2LjVWM2ExIDEgMCAwIDAtMS0xaC0yYTEgMSAwIDAgMC0xIDF2My41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMThoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAzaC0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDNhNiA2IDAgMCAwLTYgNnYxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDEzaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTBhNCA0IDAgMCAwLTggMHYxMGEyIDIgMCAwIDAgMiAyaDRhMiAyIDAgMCAwIDItMlonIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmlyZUV4dGluZ3Vpc2hlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmaXNoLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRJdU5EZDJMakF6YlRBdExqVjJMalEzYlMwdU5EYzFJRFV1TURVMlFUWXVOelEwSURZdU56UTBJREFnTUNBeElERTFJREU0WXkwekxqVTJJREF0Tnk0MU5pMHlMalV6TFRndU5TMDJJQzR6TkRndE1TNHlPQ0F4TGpFeE5DMHlMalF6TXlBeUxqRXlNUzB6TGpNNGJUTXVORFEwTFRJdU1EZzRRVGd1T0RBeUlEZ3VPREF5SURBZ01DQXhJREUxSURaak15NDFOaUF3SURZdU1EWWdNaTQxTkNBM0lEWXRMak13T1NBeExqRTBMUzQzT0RZZ01pNHhOemN0TVM0ME1UTWdNeTR3TlRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01UQXVOamRETnlBNElEVXVOVGdnTlM0NU55QXlMamN6SURVdU5XTXRNU0F4TGpVdE1TQTFJQzR5TXlBMkxqVXRNUzR5TkNBeExqVXRNUzR5TkNBMUxTNHlNeUEyTGpWRE5TNDFPQ0F4T0M0d015QTNJREUySURjZ01UTXVNek50Tnk0ME9DMDBMak0zTWtFNUxqYzNJRGt1TnpjZ01DQXdJREVnTVRZZ05pNHdOMjB3SURFeExqZzJZVGt1TnpjZ09TNDNOeUF3SURBZ01TMHhMamN5T0MwekxqWXhPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFl1TURFZ01UY3VPVE10TGpJeklERXVORUV5SURJZ01DQXdJREVnTVRNdU9DQXlNVWc1TGpWaE5TNDVOaUExTGprMklEQWdNQ0F3SURFdU5Ea3RNeTQ1T0UwNExqVXpJRE5vTlM0eU4yRXlJRElnTUNBd0lERWdNUzQ1T0NBeExqWTNiQzR5TXlBeExqUk5NaUF5YkRJd0lESXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maXNoLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpc2hPZmY6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTggMTIuNDd2LjAzbTAtLjV2LjQ3bS0uNDc1IDUuMDU2QTYuNzQ0IDYuNzQ0IDAgMCAxIDE1IDE4Yy0zLjU2IDAtNy41Ni0yLjUzLTguNS02IC4zNDgtMS4yOCAxLjExNC0yLjQzMyAyLjEyMS0zLjM4bTMuNDQ0LTIuMDg4QTguODAyIDguODAyIDAgMCAxIDE1IDZjMy41NiAwIDYuMDYgMi41NCA3IDYtLjMwOSAxLjE0LS43ODYgMi4xNzctMS40MTMgMy4wNTgnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ003IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzbTcuNDgtNC4zNzJBOS43NyA5Ljc3IDAgMCAxIDE2IDYuMDdtMCAxMS44NmE5Ljc3IDkuNzcgMCAwIDEtMS43MjgtMy42MTgnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNi4wMSAxNy45My0uMjMgMS40QTIgMiAwIDAgMSAxMy44IDIxSDkuNWE1Ljk2IDUuOTYgMCAwIDAgMS40OS0zLjk4TTguNTMgM2g1LjI3YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNE0yIDJsMjAgMjAnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGaXNoT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZpc2gtc3ltYm9sXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhObk01TFRFMUlESXdMVFJETVRFZ01qTWdNaUE0SURJZ09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9maXNoLXN5bWJvbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpc2hTeW1ib2w6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ00yIDE2czktMTUgMjAtNEMxMSAyMyAyIDggMiA4JyB9XV07XG5cbmV4cG9ydCBkZWZhdWx0IEZpc2hTeW1ib2w7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaTQxSURFeVl5NDVOQzB6TGpRMklEUXVPVFF0TmlBNExqVXROaUF6TGpVMklEQWdOaTR3TmlBeUxqVTBJRGNnTmkwdU9UUWdNeTQwTnkwekxqUTBJRFl0TnlBMmN5MDNMalUyTFRJdU5UTXRPQzQxTFRaYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhNbll1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UY3VPVE5oT1M0M055QTVMamMzSURBZ01DQXhJREF0TVRFdU9EWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNVEF1TmpkRE55QTRJRFV1TlRnZ05TNDVOeUF5TGpjeklEVXVOV010TVNBeExqVXRNU0ExSUM0eU15QTJMalV0TVM0eU5DQXhMalV0TVM0eU5DQTFMUzR5TXlBMkxqVkROUzQxT0NBeE9DNHdNeUEzSURFMklEY2dNVE11TXpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0xqUTJJRGN1TWpaRE1UQXVNaUExTGpnNElEa3VNVGNnTkM0eU5DQTRJRE5vTlM0NFlUSWdNaUF3SURBZ01TQXhMams0SURFdU5qZHNMakl6SURFdU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWXVNREVnTVRjdU9UTXRMakl6SURFdU5FRXlJRElnTUNBd0lERWdNVE11T0NBeU1VZzVMalZoTlM0NU5pQTFMamsySURBZ01DQXdJREV1TkRrdE15NDVPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmlzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpc2g6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNi41IDEyYy45NC0zLjQ2IDQuOTQtNiA4LjUtNiAzLjU2IDAgNi4wNiAyLjU0IDcgNi0uOTQgMy40Ny0zLjQ0IDYtNyA2cy03LjU2LTIuNTMtOC41LTZaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTJ2LjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTcuOTNhOS43NyA5Ljc3IDAgMCAxIDAtMTEuODYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNyAxMC42N0M3IDggNS41OCA1Ljk3IDIuNzMgNS41Yy0xIDEuNS0xIDUgLjIzIDYuNS0xLjI0IDEuNS0xLjI0IDUtLjIzIDYuNUM1LjU4IDE4LjAzIDcgMTYgNyAxMy4zMycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEwLjQ2IDcuMjZDMTAuMiA1Ljg4IDkuMTcgNC4yNCA4IDNoNS44YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi4wMSAxNy45My0uMjMgMS40QTIgMiAwIDAgMSAxMy44IDIxSDkuNWE1Ljk2IDUuOTYgMCAwIDAgMS40OS0zLjk4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpc2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmlzaGluZy1ob29rXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UY3VOVGcySURFeExqUXhOQzAxTGpreklEVXVPVE5oTVNBeElEQWdNQ0F4TFRndE9Hd3pMakV6TnkwekxqRXpOMkV1TnpBM0xqY3dOeUF3SURBZ01TQXhMakl3Tnk0MVZqRXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQzQwTVRRZ09DNDFPRFlnTWpJZ055SWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhPU0lnWTNrOUlqRXdJaUJ5UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Zpc2hpbmctaG9va1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZpc2hpbmdIb29rOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE3LjU4NiAxMS40MTQtNS45MyA1LjkzYTEgMSAwIDAgMS04LThsMy4xMzctMy4xMzdhLjcwNy43MDcgMCAwIDEgMS4yMDcuNVYxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC40MTQgOC41ODYgMjIgNycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICcxMCcsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZpc2hpbmdIb29rO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZsYWctb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFpqTFRNZ01DMDFMVEl0T0MweVlUWWdOaUF3SURBZ01DMDBJREV1TlRJNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUlESWdNakFnTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01qSldOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeTQyTlRZZ01rZzRZek1nTUNBMUlESWdOeTR6TXpNZ01uRXlJREFnTXk0d05qY3RMamhCTVNBeElEQWdNQ0F4SURJd0lEUjJNVEF1TXpRM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZsYWctb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmxhZ09mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMjJWNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003LjY1NiAySDhjMyAwIDUgMiA3LjMzMyAycTIgMCAzLjA2Ny0uOEExIDEgMCAwIDEgMjAgNHYxMC4zNDcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmxhZ09mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmbGFnLXRyaWFuZ2xlLWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01qSldNaTQ0WVM0NExqZ2dNQ0F3SURBdE1TNHhOeTB1TnpGTU5TNDBOU0EzTGpjNFlTNDRMamdnTUNBd0lEQWdNQ0F4TGpRMFRERTRJREUxTGpVaUlDOCtDand2YzNablBnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZsYWctdHJpYW5nbGUtbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZsYWdUcmlhbmdsZUxlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMjJWMi44YS44LjggMCAwIDAtMS4xNy0uNzFMNS40NSA3Ljc4YS44LjggMCAwIDAgMCAxLjQ0TDE4IDE1LjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmxhZ1RyaWFuZ2xlTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmbGFnLXRyaWFuZ2xlLXJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNbFl5TGpoaExqZ3VPQ0F3SURBZ01TQXhMakUzTFM0M01Xd3hNUzR6T0NBMUxqWTVZUzQ0TGpnZ01DQXdJREVnTUNBeExqUTBURFlnTVRVdU5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbGFnLXRyaWFuZ2xlLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmxhZ1RyaWFuZ2xlUmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiAyMlYyLjhhLjguOCAwIDAgMSAxLjE3LS43MWwxMS4zOCA1LjY5YS44LjggMCAwIDEgMCAxLjQ0TDYgMTUuNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGbGFnVHJpYW5nbGVSaWdodDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmbGFtZS1raW5kbGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW1NeElETWdNaTQxSURNdU5TQXpMalVnTkM0MVFUVWdOU0F3SURBZ01TQXhOeUF4TUdFMUlEVWdNQ0F4SURFdE1UQWdNR013TFM0eklEQXRMall1TVMwdU9XRXlJRElnTUNBeElEQWdNeTR6TFRKRE9DQTBMalVnTVRFZ01pQXhNaUF5V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TlNBeU1pQXhOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAxSURFNElERTBJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxhbWUta2luZGxpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGbGFtZUtpbmRsaW5nOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDJjMSAzIDIuNSAzLjUgMy41IDQuNUE1IDUgMCAwIDEgMTcgMTBhNSA1IDAgMSAxLTEwIDBjMC0uMyAwLS42LjEtLjlhMiAyIDAgMSAwIDMuMy0yQzggNC41IDExIDIgMTIgMlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ201IDIyIDE0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSAxOCAxNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZsYW1lS2luZGxpbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmxhZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TWxZMFlURWdNU0F3SURBZ01TQXVOQzB1T0VFMklEWWdNQ0F3SURFZ09DQXlZek1nTUNBMUlESWdOeTR6TXpNZ01uRXlJREFnTXk0d05qY3RMamhCTVNBeElEQWdNQ0F4SURJd0lEUjJNVEJoTVNBeElEQWdNQ0F4TFM0MExqaEJOaUEySURBZ01DQXhJREUySURFMll5MHpJREF0TlMweUxUZ3RNbUUySURZZ01DQXdJREF0TkNBeExqVXlPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxhZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZsYWc6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAyMlY0YTEgMSAwIDAgMSAuNC0uOEE2IDYgMCAwIDEgOCAyYzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTBhMSAxIDAgMCAxLS40LjhBNiA2IDAgMCAxIDE2IDE2Yy0zIDAtNS0yLTgtMmE2IDYgMCAwIDAtNCAxLjUyOCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZsYWc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmxhbWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00zRXhJRFFnTkNBMkxqVjBNeUExTGpWaE1TQXhJREFnTUNBeExURTBJREFnTlNBMUlEQWdNQ0F4SURFdE15QXhJREVnTUNBd0lEQWdOU0F3WXpBdE1pMHhMalV0TXkweExqVXROWEV3TFRJZ01pNDFMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxhbWVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGbGFtZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAzcTEgNCA0IDYuNXQzIDUuNWExIDEgMCAwIDEtMTQgMCA1IDUgMCAwIDEgMS0zIDEgMSAwIDAgMCA1IDBjMC0yLTEuNS0zLTEuNS01cTAtMiAyLjUtNCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZsYW1lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZsYXNobGlnaHQtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URXVOalV5SURaSU1UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREV6ZGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTJkalJoTWlBeUlEQWdNQ0F4TFRJZ01tZ3ROR0V5SURJZ01DQXdJREV0TWkweWRpMDRZVFFnTkNBd0lEQWdNQzB1T0MweUxqUnNMUzQyTFM0NFFUTWdNeUF3SURBZ01TQTJJRGRXTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzTGpZME9TQXlTREUzWVRFZ01TQXdJREFnTVNBeElERjJOR0V6SURNZ01DQXdJREV0TGpZZ01TNDRiQzB1Tmk0NFlUUWdOQ0F3SURBZ01DMHVOVFVnTVM0d01EY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbGFzaGxpZ2h0LW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZsYXNobGlnaHRPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuNjUyIDZIMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTN2MScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTE2IDE2djRhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0ydi04YTQgNCAwIDAgMC0uOC0yLjRsLS42LS44QTMgMyAwIDAgMSA2IDdWNicgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003LjY0OSAySDE3YTEgMSAwIDAgMSAxIDF2NGEzIDMgMCAwIDEtLjYgMS44bC0uNi44YTQgNCAwIDAgMC0uNTUgMS4wMDcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmxhc2hsaWdodE9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmbGFzaGxpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE4yTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01tRXhJREVnTUNBd0lERWdNU0F4ZGpSaE15QXpJREFnTUNBeExTNDJJREV1T0d3dExqWXVPRUUwSURRZ01DQXdJREFnTVRZZ01USjJPR0V5SURJZ01DQXdJREV0TWlBeVNERXdZVElnTWlBd0lEQWdNUzB5TFRKMkxUaGhOQ0EwSURBZ01DQXdMUzQ0TFRJdU5Hd3RMall0TGpoQk15QXpJREFnTUNBeElEWWdOMVl6WVRFZ01TQXdJREFnTVNBeExURjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJRFpvTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZsYXNobGlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGbGFzaGxpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzdjEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcgMmExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOEE0IDQgMCAwIDAgMTYgMTJ2OGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LThhNCA0IDAgMCAwLS44LTIuNGwtLjYtLjhBMyAzIDAgMCAxIDYgN1YzYTEgMSAwIDAgMSAxLTF6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA2aDEyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZsYXNobGlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmxhc2stY29uaWNhbC1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01uWXlMak0wTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTJMak0wTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeU1HRXlJRElnTUNBd0lERXRNaUF5U0RaaE1pQXlJREFnTUNBeExURXVOelUxTFRJdU9UWnNOUzR5TWpjdE9TNDFOak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFl1TkRVeklERTFTREUxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpVZ01tZzNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbGFzay1jb25pY2FsLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZsYXNrQ29uaWNhbE9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAydjIuMzQzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2Ni4zNDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMS43NTUtMi45Nmw1LjIyNy05LjU2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjQ1MyAxNUgxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjUgMmg3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZsYXNrQ29uaWNhbE9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmbGFzay1yb3VuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTW5ZMkxqSTVNbUUzSURjZ01DQXhJREFnTkNBd1ZqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNVFZvTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRndU5TQXlhRGNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxhc2stcm91bmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGbGFza1JvdW5kOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDJ2Ni4yOTJhNyA3IDAgMSAwIDQgMFYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTVoMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC41IDJoNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGbGFza1JvdW5kO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZsYXNrLWNvbmljYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01uWTJZVElnTWlBd0lEQWdNQ0F1TWpRMUxqazJiRFV1TlRFZ01UQXVNRGhCTWlBeUlEQWdNQ0F4SURFNElESXlTRFpoTWlBeUlEQWdNQ0F4TFRFdU56VTFMVEl1T1Rac05TNDFNUzB4TUM0d09FRXlJRElnTUNBd0lEQWdNVEFnT0ZZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMkxqUTFNeUF4TldneE1TNHdPVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGd1TlNBeWFEY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbGFzay1jb25pY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmxhc2tDb25pY2FsOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE0IDJ2NmEyIDIgMCAwIDAgLjI0NS45Nmw1LjUxIDEwLjA4QTIgMiAwIDAgMSAxOCAyMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuNTEtMTAuMDhBMiAyIDAgMCAwIDEwIDhWMicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYuNDUzIDE1aDExLjA5NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjUgMmg3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZsYXNrQ29uaWNhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmbGlwLWhvcml6b250YWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBelNEVmhNaUF5SURBZ01DQXdMVElnTW5ZeE5HTXdJREV1TVM0NUlESWdNaUF5YURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklETm9NMkV5SURJZ01DQXdJREVnTWlBeWRqRTBZVElnTWlBd0lEQWdNUzB5SURKb0xUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl3ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTBkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURoMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxpcC1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRmxpcEhvcml6b250YWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAzSDVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM2gzYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0djInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGbGlwSG9yaXpvbnRhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmbGlwLWhvcml6b250YWwtMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNeUEzSURVZ05TMDFJRFZXTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ055MDFJRFVnTlNBMVZqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl3ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTBkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURoMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxpcC1ob3Jpem9udGFsLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGbGlwSG9yaXpvbnRhbDI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMyA3IDUgNS01IDVWNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSA3LTUgNSA1IDVWNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0djInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGbGlwSG9yaXpvbnRhbDI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmxpcC12ZXJ0aWNhbC0yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNeTAxSURVdE5TMDFhREV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TnlBeU1TMDFMVFV0TlNBMWFERXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREV5U0RJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERXlTRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFeWFDMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF4TW1ndE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbGlwLXZlcnRpY2FsLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGbGlwVmVydGljYWwyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE3IDMtNSA1LTUtNWgxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAyMS01LTUtNSA1aDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJIMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMkg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEyaC0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEyaC0yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZsaXBWZXJ0aWNhbDI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZmxpcC12ZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnT0ZZMVlUSWdNaUF3SURBZ01DMHlMVEpJTldFeUlESWdNQ0F3SURBdE1pQXlkak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFMmRqTmhNaUF5SURBZ01DQXhMVElnTWtnMVlUSWdNaUF3SURBZ01TMHlMVEoyTFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01USklNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRKSU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEpvTFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlERXlhQzB5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZmxpcC12ZXJ0aWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZsaXBWZXJ0aWNhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSA4VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJIMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMkg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEyaC0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEyaC0yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZsaXBWZXJ0aWNhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmbG93ZXItMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTldFeklETWdNQ0F4SURFZ015QXpiUzB6TFROaE15QXpJREFnTVNBd0xUTWdNMjB6TFROMk1VMDVJRGhoTXlBeklEQWdNU0F3SURNZ00wMDVJRGhvTVcwMUlEQmhNeUF6SURBZ01TQXhMVE1nTTIwekxUTm9MVEZ0TFRJZ00zWXRNU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJamdpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREV3ZGpFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlNbU0wTGpJZ01DQTNMVEV1TmpZM0lEY3ROUzAwTGpJZ01DMDNJREV1TmpZM0xUY2dOVm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJeVl5MDBMaklnTUMwM0xURXVOalkzTFRjdE5TQTBMaklnTUNBM0lERXVOalkzSURjZ05Wb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbG93ZXItMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZsb3dlcjI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgNWEzIDMgMCAxIDEgMyAzbS0zLTNhMyAzIDAgMSAwLTMgM20zLTN2MU05IDhhMyAzIDAgMSAwIDMgM005IDhoMW01IDBhMyAzIDAgMSAxLTMgM20zLTNoLTFtLTIgM3YtMScsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzgnLCByOiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMHYxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMmM0LjIgMCA3LTEuNjY3IDctNS00LjIgMC03IDEuNjY3LTcgNVonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJjLTQuMiAwLTctMS42NjctNy01IDQuMiAwIDcgMS42NjcgNyA1WicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGbG93ZXIyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZsb3dlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4Tmk0MVFUUXVOU0EwTGpVZ01DQXhJREVnTnk0MUlERXlJRFF1TlNBMExqVWdNQ0F4SURFZ01USWdOeTQxWVRRdU5TQTBMalVnTUNBeElERWdOQzQxSURRdU5TQTBMalVnTkM0MUlEQWdNU0F4TFRRdU5TQTBMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURjdU5WWTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNMalVnTVRKSU9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVOU0F4TWtneE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFl1TlZZeE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9DQTRJREV1T0RnZ01TNDRPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFF1TVRJZ09TNDRPQ0F4TmlBNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNElERTJJREV1T0RndE1TNDRPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFF1TVRJZ01UUXVNVElnTVRZZ01UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mbG93ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGbG93ZXI6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAxNi41QTQuNSA0LjUgMCAxIDEgNy41IDEyIDQuNSA0LjUgMCAxIDEgMTIgNy41YTQuNSA0LjUgMCAxIDEgNC41IDQuNSA0LjUgNC41IDAgMSAxLTQuNSA0LjUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3LjVWOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003LjUgMTJIOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNi41IDEySDE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2LjVWMTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCA4IDEuODggMS44OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC4xMiA5Ljg4IDE2IDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxNiAxLjg4LTEuODgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuMTIgMTQuMTIgMTYgMTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRmxvd2VyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvY3VzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEZFdOV0V5SURJZ01DQXdJREVnTWkweWFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJRE5vTW1FeUlESWdNQ0F3SURFZ01pQXlkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFM2RqSmhNaUF5SURBZ01DQXhMVElnTW1ndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXlNVWcxWVRJZ01pQXdJREFnTVMweUxUSjJMVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9jdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb2N1czogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDJhMiAyIDAgMCAxIDIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxSDVhMiAyIDAgMCAxLTItMnYtMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGb2N1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkLWhvcml6b250YWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1tZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF4TW1ndE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBNGRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUwZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlESXdkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU1SURrdE15QXpJRE1nTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TlNBeE5TQXpMVE10TXkweklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGQtaG9yaXpvbnRhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRIb3Jpem9udGFsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMmgtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE0djInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjB2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSA5LTMgMyAzIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSAxNSAzLTMtMy0zJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRIb3Jpem9udGFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvbGQtdmVydGljYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qSjJMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURoV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNa2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE1rZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TW1ndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVEpvTFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlERTVMVE10TXkweklETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJRFV0TXlBekxUTXRNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZC12ZXJ0aWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRWZXJ0aWNhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnYtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4VjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMkgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEySDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTktMy0zLTMgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA1LTMgMy0zLTMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZFZlcnRpY2FsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvbGRlci1hcmNoaXZlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhOU0lnWTNrOUlqRTVJaUJ5UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNDVJREU1TGpoQk1pQXlJREFnTUNBd0lESXlJREU0VmpoaE1pQXlJREFnTUNBd0xUSXRNbWd0Tnk0NVlUSWdNaUF3SURBZ01TMHhMalk1TFM0NVREa3VOaUF6TGpsQk1pQXlJREFnTUNBd0lEY3VPVE1nTTBnMFlUSWdNaUF3SURBZ01DMHlJREoyTVROaE1pQXlJREFnTUNBd0lESWdNbWcxTGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERXhkaTB4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE4zWXRNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLWFyY2hpdmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb2xkZXJBcmNoaXZlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTUnLCBjeTogJzE5JywgcjogJzInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAuOSAxOS44QTIgMiAwIDAgMCAyMiAxOFY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJoNS4xJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTF2LTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTd2LTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyQXJjaGl2ZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkZXItY2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01qQmhNaUF5SURBZ01DQXdJREl0TWxZNFlUSWdNaUF3SURBZ01DMHlMVEpvTFRjdU9XRXlJRElnTUNBd0lERXRNUzQyT1MwdU9VdzVMallnTXk0NVFUSWdNaUF3SURBZ01DQTNMamt6SUROSU5HRXlJRElnTUNBd0lEQXRNaUF5ZGpFellUSWdNaUF3SURBZ01DQXlJREphSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1SURFeklESWdNaUEwTFRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlckNoZWNrOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTMgMiAyIDQtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkZXItY2xvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UUjJNaTR5YkRFdU5pQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREl3U0RSaE1pQXlJREFnTUNBeExUSXRNbFkxWVRJZ01pQXdJREFnTVNBeUxUSm9NeTQ1WVRJZ01pQXdJREFnTVNBeExqWTVMamxzTGpneElERXVNbUV5SURJZ01DQXdJREFnTVM0Mk55NDVTREl3WVRJZ01pQXdJREFnTVNBeUlESWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVFlpSUdONVBTSXhOaUlnY2owaU5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItY2xvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb2xkZXJDbG9jazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNHYyLjJsMS42IDEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAyJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMTYnLCByOiAnNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJDbG9jaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkZXItY2xvc2VkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNakJoTWlBeUlEQWdNQ0F3SURJdE1sWTRZVElnTWlBd0lEQWdNQzB5TFRKb0xUY3VPV0V5SURJZ01DQXdJREV0TVM0Mk9TMHVPVXc1TGpZZ015NDVRVElnTWlBd0lEQWdNQ0EzTGpreklETklOR0V5SURJZ01DQXdJREF0TWlBeWRqRXpZVElnTWlBd0lEQWdNQ0F5SURKYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXdhREl3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLWNsb3NlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlckNsb3NlZDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEwaDIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlckNsb3NlZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkZXItY29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRBdU5TQTRJREV6YkRJZ01pNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQ0F4TUM0MUlESWdNaTQxTFRJZ01pNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0F5TUdFeUlESWdNQ0F3SURBZ01pMHlWamhoTWlBeUlEQWdNQ0F3TFRJdE1tZ3ROeTQ1WVRJZ01pQXdJREFnTVMweExqWTVMUzQ1VERrdU5pQXpMamxCTWlBeUlEQWdNQ0F3SURjdU9UTWdNMGcwWVRJZ01pQXdJREFnTUMweUlESjJNVE5oTWlBeUlEQWdNQ0F3SURJZ01ub2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItY29kZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlckNvZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTAuNSA4IDEzbDIgMi41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDEwLjUgMiAyLjUtMiAyLjUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyQ29kZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkZXItY29nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNeUF5TUVnMFlUSWdNaUF3SURBZ01TMHlMVEpXTldFeUlESWdNQ0F3SURFZ01pMHlhRE11T1RoaE1pQXlJREFnTUNBeElERXVOamt1T1d3dU5qWWdNUzR5UVRJZ01pQXdJREFnTUNBeE1pQTJhRGhoTWlBeUlEQWdNQ0F4SURJZ01uWXpMak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwTGpNd05TQXhPUzQxTXk0NU1qTXRMak00TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVdU1qSTRJREUyTGpnMU1pMHVPVEl6TFM0ek9ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJMamcxTWlBeE5TNHlNamd0TGpNNE15MHVPVEl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4Tmk0NE5USWdNakF1TnpjeUxTNHpPRE11T1RJMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9TNHhORGdnTVRVdU1qSTRMak00TXkwdU9USXpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPUzQxTXlBeU1TNDJPVFl0TGpNNE1pMHVPVEkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TUM0M056SWdNVFl1T0RVeUxqa3lOQzB1TXpneklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1DNDNOeklnTVRrdU1UUTRMamt5TkM0ek9ETWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVGdpSUdONVBTSXhPQ0lnY2owaU15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRm9sZGVyQ29nOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjMgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjk4YTIgMiAwIDAgMSAxLjY5LjlsLjY2IDEuMkEyIDIgMCAwIDAgMTIgNmg4YTIgMiAwIDAgMSAyIDJ2My4zJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuMzA1IDE5LjUzLjkyMy0uMzgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1LjIyOCAxNi44NTItLjkyMy0uMzgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2Ljg1MiAyMC43NzItLjM4My45MjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOS41MyAyMS42OTYtLjM4Mi0uOTI0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjc3MiAxNi44NTIuOTI0LS4zODMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAuNzcyIDE5LjE0OC45MjQuMzgzJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzE4JywgcjogJzMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyQ29nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvbGRlci1kb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1HZ3hObUV5SURJZ01DQXdJREFnTWkweVZqaGhNaUF5SURBZ01DQXdMVEl0TW1ndE55NDVNMkV5SURJZ01DQXdJREV0TVM0Mk5pMHVPV3d0TGpneUxURXVNa0V5SURJZ01DQXdJREFnTnk0NU15QXpTRFJoTWlBeUlEQWdNQ0F3TFRJZ01uWXhNMk13SURFdU1TNDVJRElnTWlBeVdpSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXpJaUJ5UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb2xkZXJEb3Q6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWicsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEzJywgcjogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyRG90O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvbGRlci1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNakJoTWlBeUlEQWdNQ0F3SURJdE1sWTRZVElnTWlBd0lEQWdNQzB5TFRKb0xUY3VPV0V5SURJZ01DQXdJREV0TVM0Mk9TMHVPVXc1TGpZZ015NDVRVElnTWlBd0lEQWdNQ0EzTGpreklETklOR0V5SURJZ01DQXdJREF0TWlBeWRqRXpZVElnTWlBd0lEQWdNQ0F5SURKYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNSFkySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlNBeE15MHpJRE10TXkweklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRm9sZGVyRG93bjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMHY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDEzLTMgMy0zLTMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyRG93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkZXItZ2l0LTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01UbGhOU0ExSURBZ01DQXhMVFV0TlhZNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlESXdTRFJoTWlBeUlEQWdNQ0F4TFRJdE1sWTFZVElnTWlBd0lEQWdNU0F5TFRKb015NDVZVElnTWlBd0lEQWdNU0F4TGpZNUxqbHNMamd4SURFdU1tRXlJRElnTUNBd0lEQWdNUzQyTnk0NVNESXdZVElnTWlBd0lEQWdNU0F5SURKMk5TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNeUlnWTNrOUlqRXlJaUJ5UFNJeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqSXdJaUJqZVQwaU1Ua2lJSEk5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1naXQtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlckdpdDI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTlhNSA1IDAgMCAxLTUtNXY4JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY1JyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMycsIGN5OiAnMTInLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzIwJywgY3k6ICcxOScsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlckdpdDI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9sZGVyLWdpdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV6SWlCeVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0F5TUdFeUlESWdNQ0F3SURBZ01pMHlWamhoTWlBeUlEQWdNQ0F3TFRJdE1tZ3ROeTQ1WVRJZ01pQXdJREFnTVMweExqWTVMUzQ1VERrdU5pQXpMamxCTWlBeUlEQWdNQ0F3SURjdU9UTWdNMGcwWVRJZ01pQXdJREFnTUMweUlESjJNVE5oTWlBeUlEQWdNQ0F3SURJZ01sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREV6YURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01UTm9NeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLWdpdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlckdpdDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMycsIHI6ICcyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEzaDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxM2gzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlckdpdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkZXItaGVhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU5qTTRJREl3U0RSaE1pQXlJREFnTUNBeExUSXRNbFkxWVRJZ01pQXdJREFnTVNBeUxUSm9NeTQ1WVRJZ01pQXdJREFnTVNBeExqWTVMamxzTGpneElERXVNbUV5SURJZ01DQXdJREFnTVM0Mk55NDVTREl3WVRJZ01pQXdJREFnTVNBeUlESjJNeTQwTVRjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMExqWXlJREU0TGpoQk1pNHlOU0F5TGpJMUlEQWdNU0F4SURFNElERTFMamd6Tm1FeUxqSTFJREl1TWpVZ01DQXhJREVnTXk0ek9DQXlMamsyTm13dE1pNDJNallnTWk0NE5UWmhMams1T0M0NU9UZ2dNQ0F3SURFdE1TNDFNRGNnTUhvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1oZWFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlckhlYXJ0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjYzOCAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjMuNDE3JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlckhlYXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvbGRlci1pbnB1dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUE1VmpWaE1pQXlJREFnTUNBeElESXRNbWd6TGpsaE1pQXlJREFnTUNBeElERXVOamt1T1d3dU9ERWdNUzR5WVRJZ01pQXdJREFnTUNBeExqWTNMamxJTWpCaE1pQXlJREFnTUNBeElESWdNbll4TUdFeUlESWdNQ0F3SURFdE1pQXlTRFJoTWlBeUlEQWdNQ0F4TFRJdE1uWXRNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TTJneE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhOaUF6TFRNdE15MHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItaW5wdXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb2xkZXJJbnB1dDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDlWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0xJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxM2gxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE2IDMtMy0zLTMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVySW5wdXQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9sZGVyLWthbmJhblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TUdneE5tRXlJRElnTUNBd0lEQWdNaTB5VmpoaE1pQXlJREFnTUNBd0xUSXRNbWd0Tnk0NU0yRXlJRElnTUNBd0lERXRNUzQyTmkwdU9Xd3RMamd5TFRFdU1rRXlJRElnTUNBd0lEQWdOeTQ1TXlBelNEUmhNaUF5SURBZ01DQXdMVElnTW5ZeE0yTXdJREV1TVM0NUlESWdNaUF5V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1IWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TUhZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhNSFkySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLWthbmJhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlckthbmJhbjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMHY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEwdjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTB2NicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJLYW5iYW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9sZGVyLWtleVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TmlJZ1kzazlJakl3SWlCeVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F5TUVnMFlUSWdNaUF3SURBZ01TMHlMVEpXTldFeUlESWdNQ0F3SURFZ01pMHlhRE11T1dFeUlESWdNQ0F3SURFZ01TNDJPUzQ1YkM0NE1TQXhMakpoTWlBeUlEQWdNQ0F3SURFdU5qY3VPVWd5TUdFeUlESWdNQ0F3SURFZ01pQXlkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURFMExUUXVOU0EwTGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeElERTFJREVnTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1rZXlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb2xkZXJLZXk6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMjAnLCByOiAnMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMCAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjInLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAxNC00LjUgNC41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDE1IDEgMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJLZXk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9sZGVyLWxvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTFJaUI0UFNJeE5DSWdlVDBpTVRjaUlISjRQU0l4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeU1FZzBZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURNdU9XRXlJRElnTUNBd0lERWdNUzQyT1M0NWJDNDRNU0F4TGpKaE1pQXlJREFnTUNBd0lERXVOamN1T1VneU1HRXlJRElnTUNBd0lERWdNaUF5ZGpJdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVGQyTFRKaE1pQXlJREFnTVNBd0xUUWdNSFl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLWxvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb2xkZXJMb2NrOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc1JywgeDogJzE0JywgeTogJzE3Jywgcng6ICcxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2Mi41JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlckxvY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9sZGVyLW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhNMmcySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeU1HRXlJRElnTUNBd0lEQWdNaTB5VmpoaE1pQXlJREFnTUNBd0xUSXRNbWd0Tnk0NVlUSWdNaUF3SURBZ01TMHhMalk1TFM0NVREa3VOaUF6TGpsQk1pQXlJREFnTUNBd0lEY3VPVE1nTTBnMFlUSWdNaUF3SURBZ01DMHlJREoyTVROaE1pQXlJREFnTUNBd0lESWdNbG9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRm9sZGVyTWludXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxM2g2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlck1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvbGRlci1vcGVuLWRvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROaUF4TkNBeExqUTFMVEl1T1VFeUlESWdNQ0F3SURFZ09TNHlOQ0F4TUVneU1HRXlJRElnTUNBd0lERWdNUzQ1TkNBeUxqVnNMVEV1TlRVZ05tRXlJRElnTUNBd0lERXRNUzQ1TkNBeExqVklOR0V5SURJZ01DQXdJREV0TWkweVZqVmpNQzB4TGpFdU9TMHlJREl0TW1nekxqa3pZVElnTWlBd0lEQWdNU0F4TGpZMkxqbHNMamd5SURFdU1tRXlJRElnTUNBd0lEQWdNUzQyTmk0NVNERTRZVElnTWlBd0lEQWdNU0F5SURKMk1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOQ0lnWTNrOUlqRTFJaUJ5UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1vcGVuLWRvdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlck9wZW5Eb3Q6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtNiAxNCAxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MicsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTQnLCBjeTogJzE1JywgcjogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyT3BlbkRvdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkZXItb3BlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROaUF4TkNBeExqVXRNaTQ1UVRJZ01pQXdJREFnTVNBNUxqSTBJREV3U0RJd1lUSWdNaUF3SURBZ01TQXhMamswSURJdU5Xd3RNUzQxTkNBMllUSWdNaUF3SURBZ01TMHhMamsxSURFdU5VZzBZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURNdU9XRXlJRElnTUNBd0lERWdNUzQyT1M0NWJDNDRNU0F4TGpKaE1pQXlJREFnTUNBd0lERXVOamN1T1VneE9HRXlJRElnTUNBd0lERWdNaUF5ZGpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1vcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRm9sZGVyT3BlbjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ202IDE0IDEuNS0yLjlBMiAyIDAgMCAxIDkuMjQgMTBIMjBhMiAyIDAgMCAxIDEuOTQgMi41bC0xLjU0IDZhMiAyIDAgMCAxLTEuOTUgMS41SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDE4YTIgMiAwIDAgMSAyIDJ2MicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlck9wZW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9sZGVyLW91dHB1dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUEzTGpWV05XRXlJRElnTUNBd0lERWdNaTB5YURNdU9XRXlJRElnTUNBd0lERWdNUzQyT1M0NWJDNDRNU0F4TGpKaE1pQXlJREFnTUNBd0lERXVOamN1T1VneU1HRXlJRElnTUNBd0lERWdNaUF5ZGpFd1lUSWdNaUF3SURBZ01TMHlJREpJTkdFeUlESWdNQ0F3SURFdE1pMHhMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVROb01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUVWdNVEF0TXlBeklETWdNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLW91dHB1dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlck91dHB1dDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDcuNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTEuNScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTNoMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSAxMC0zIDMgMyAzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlck91dHB1dDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkZXItcGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNUzQxVmpWaE1pQXlJREFnTUNBeElESXRNbWd6TGpsakxqY2dNQ0F4TGpNdU15QXhMamN1T1d3dU9DQXhMakpqTGpRdU5pQXhJQzQ1SURFdU55NDVTREl3WVRJZ01pQXdJREFnTVNBeUlESjJNVEJoTWlBeUlEQWdNQ0F4TFRJZ01tZ3RPUzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVM0ek56Z2dNVE11TmpJMllURWdNU0F3SURFZ01DMHpMakF3TkMwekxqQXdOR3d0TlM0d01TQTFMakF4TW1FeUlESWdNQ0F3SURBdExqVXdOaTQ0TlRSc0xTNDRNemNnTWk0NE4yRXVOUzQxSURBZ01DQXdJQzQyTWk0Mk1td3lMamczTFM0NE16ZGhNaUF5SURBZ01DQXdJQzQ0TlRRdExqVXdObm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLXBlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlclBlbjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDExLjVWNWEyIDIgMCAwIDEgMi0yaDMuOWMuNyAwIDEuMy4zIDEuNy45bC44IDEuMmMuNC42IDEgLjkgMS43LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC05LjUnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS4zNzggMTMuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJQZW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9sZGVyLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UQjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TTJnMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXlNR0V5SURJZ01DQXdJREFnTWkweVZqaGhNaUF5SURBZ01DQXdMVEl0TW1ndE55NDVZVElnTWlBd0lEQWdNUzB4TGpZNUxTNDVURGt1TmlBekxqbEJNaUF5SURBZ01DQXdJRGN1T1RNZ00wZzBZVElnTWlBd0lEQWdNQzB5SURKMk1UTmhNaUF5SURBZ01DQXdJRElnTWxvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRm9sZGVyUGx1czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMHY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTNoNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMlonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvbGRlci1yb290XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlNR2d4Tm1FeUlESWdNQ0F3SURBZ01pMHlWamhoTWlBeUlEQWdNQ0F3TFRJdE1tZ3ROeTQ1TTJFeUlESWdNQ0F3SURFdE1TNDJOaTB1T1d3dExqZ3lMVEV1TWtFeUlESWdNQ0F3SURBZ055NDVNeUF6U0RSaE1pQXlJREFnTUNBd0xUSWdNbll4TTJNd0lERXVNUzQ1SURJZ01pQXlXaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV6SWlCeVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TlhZMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci1yb290XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRm9sZGVyUm9vdDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTMnLCByOiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNXY1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlclJvb3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9sZGVyLXNlYXJjaC0yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNUzQxSWlCamVUMGlNVEl1TlNJZ2NqMGlNaTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeU1HRXlJRElnTUNBd0lEQWdNaTB5VmpoaE1pQXlJREFnTUNBd0xUSXRNbWd0Tnk0NVlUSWdNaUF3SURBZ01TMHhMalk1TFM0NVREa3VOaUF6TGpsQk1pQXlJREFnTUNBd0lEY3VPVE1nTTBnMFlUSWdNaUF3SURBZ01DMHlJREoyTVROaE1pQXlJREFnTUNBd0lESWdNbG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6TGpNZ01UUXVNeUF4TlNBeE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItc2VhcmNoLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb2xkZXJTZWFyY2gyOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTEuNScsIGN5OiAnMTIuNScsIHI6ICcyLjUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMuMyAxNC4zIDE1IDE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlclNlYXJjaDI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9sZGVyLXNlYXJjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TnlBeU1FZzBZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURNdU9XRXlJRElnTUNBd0lERWdNUzQyT1M0NWJDNDRNU0F4TGpKaE1pQXlJREFnTUNBd0lERXVOamN1T1VneU1HRXlJRElnTUNBd0lERWdNaUF5ZGpRdU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNakV0TVM0NUxURXVPU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TnlJZ1kzazlJakUzSWlCeVBTSXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItc2VhcmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRm9sZGVyU2VhcmNoOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjcgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY0LjEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAyMS0xLjktMS45JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcnLCBjeTogJzE3JywgcjogJzMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyU2VhcmNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvbGRlci1zeW1saW5rXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTVMak0xVmpWaE1pQXlJREFnTUNBeElESXRNbWd6TGpsaE1pQXlJREFnTUNBeElERXVOamt1T1d3dU9ERWdNUzR5WVRJZ01pQXdJREFnTUNBeExqWTNMamxJTWpCaE1pQXlJREFnTUNBeElESWdNbll4TUdFeUlESWdNQ0F3SURFdE1pQXlTRFJoTWlBeUlEQWdNQ0F4TFRJdE1uWXRNMkV5SURJZ01DQXdJREVnTWkweWFEY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUZ2dNVFlnTXkwekxUTXRNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyLXN5bWxpbmtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb2xkZXJTeW1saW5rOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgOS4zNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxNiAzLTMtMy0zJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlclN5bWxpbms7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9sZGVyLXN5bmNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeU1FZzBZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURNdU9XRXlJRElnTUNBd0lERWdNUzQyT1M0NWJDNDRNU0F4TGpKaE1pQXlJREFnTUNBd0lERXVOamN1T1VneU1HRXlJRElnTUNBd0lERWdNaUF5ZGk0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNSFkwYURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeUlERTBJREV1TlRNMUxURXVOakExWVRVZ05TQXdJREFnTVNBNElERXVOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTWpKMkxUUm9MVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURFNExURXVOVE0xSURFdU5qQTFZVFVnTlNBd0lEQWdNUzA0TFRFdU5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItc3luY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlclN5bmM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydi41JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTB2NGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMnYtNGgtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyU3luYztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkZXItdHJlZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRCaE1TQXhJREFnTUNBd0lERXRNVlkyWVRFZ01TQXdJREFnTUMweExURm9MVEl1TldFeElERWdNQ0F3SURFdExqZ3RMalJzTFM0NUxURXVNa0V4SURFZ01DQXdJREFnTVRVZ00yZ3RNbUV4SURFZ01DQXdJREF0TVNBeGRqVmhNU0F4SURBZ01DQXdJREVnTVZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0lESXhZVEVnTVNBd0lEQWdNQ0F4TFRGMkxUTmhNU0F4SURBZ01DQXdMVEV0TVdndE1pNDVZVEVnTVNBd0lEQWdNUzB1T0RndExqVTFiQzB1TkRJdExqZzFZVEVnTVNBd0lEQWdNQzB1T1RJdExqWklNVE5oTVNBeElEQWdNQ0F3TFRFZ01YWTFZVEVnTVNBd0lEQWdNQ0F4SURGYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEVmhNaUF5SURBZ01DQXdJRElnTW1neklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklETjJNVE5oTWlBeUlEQWdNQ0F3SURJZ01tZ3pJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItdHJlZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlclRyZWU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTBhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFoLTIuNWExIDEgMCAwIDEtLjgtLjRsLS45LTEuMkExIDEgMCAwIDAgMTUgM2gtMmExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMVonLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMWExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFoLTIuOWExIDEgMCAwIDEtLjg4LS41NWwtLjQyLS44NWExIDEgMCAwIDAtLjkyLS42SDEzYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNWEyIDIgMCAwIDAgMiAyaDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjEzYTIgMiAwIDAgMCAyIDJoMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJUcmVlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvbGRlci11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpCaE1pQXlJREFnTUNBd0lESXRNbFk0WVRJZ01pQXdJREFnTUMweUxUSm9MVGN1T1dFeUlESWdNQ0F3SURFdE1TNDJPUzB1T1V3NUxqWWdNeTQ1UVRJZ01pQXdJREFnTUNBM0xqa3pJRE5JTkdFeUlESWdNQ0F3SURBdE1pQXlkakV6WVRJZ01pQXdJREFnTUNBeUlESmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TUhZMklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERXpJRE10TXlBeklETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXItdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb2xkZXJVcDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMHY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTMgMy0zIDMgMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJVcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb2xkZXIteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpCaE1pQXlJREFnTUNBd0lESXRNbFk0WVRJZ01pQXdJREFnTUMweUxUSm9MVGN1T1dFeUlESWdNQ0F3SURFdE1TNDJPUzB1T1V3NUxqWWdNeTQ1UVRJZ01pQXdJREFnTUNBM0xqa3pJRE5JTkdFeUlESWdNQ0F3SURBdE1pQXlkakV6WVRJZ01pQXdJREFnTUNBeUlESmFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVMalVnTVRBdU5TQTFJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwTGpVZ01UQXVOUzAxSURVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ZvbGRlci14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRm9sZGVyWDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ205LjUgMTAuNSA1IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSAxMC41LTUgNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGb2xkZXJYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvbGRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpCaE1pQXlJREFnTUNBd0lESXRNbFk0WVRJZ01pQXdJREFnTUMweUxUSm9MVGN1T1dFeUlESWdNQ0F3SURFdE1TNDJPUzB1T1V3NUxqWWdNeTQ1UVRJZ01pQXdJREFnTUNBM0xqa3pJRE5JTkdFeUlESWdNQ0F3SURBdE1pQXlkakV6WVRJZ01pQXdJREFnTUNBeUlESmFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb2xkZXI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvbGRlcnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ05XRXlJRElnTUNBd0lERWdNaUF5ZGpkaE1pQXlJREFnTUNBeExUSWdNa2c1WVRJZ01pQXdJREFnTVMweUxUSldOV0V5SURJZ01DQXdJREVnTWkweWFESXVOV0V4TGpVZ01TNDFJREFnTUNBeElERXVNaTQyYkM0MkxqaGhNUzQxSURFdU5TQXdJREFnTUNBeExqSXVObm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nT0M0eU5qaGhNaUF5SURBZ01DQXdMVEVnTVM0M016aFdNVGxoTWlBeUlEQWdNQ0F3SURJZ01tZ3hNV0V5SURJZ01DQXdJREFnTVM0M016SXRNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9sZGVyc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvbGRlcnM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgNWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMkg5YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDIuNWExLjUgMS41IDAgMCAxIDEuMi42bC42LjhhMS41IDEuNSAwIDAgMCAxLjIuNnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDguMjY4YTIgMiAwIDAgMC0xIDEuNzM4VjE5YTIgMiAwIDAgMCAyIDJoMTFhMiAyIDAgMCAwIDEuNzMyLTEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgRm9sZGVycztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmb290cHJpbnRzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhObll0TWk0ek9FTTBJREV4TGpVZ01pNDVOeUF4TUM0MUlETWdPR011TURNdE1pNDNNaUF4TGpRNUxUWWdOQzQxTFRaRE9TNHpOeUF5SURFd0lETXVPQ0F4TUNBMUxqVmpNQ0F6TGpFeExUSWdOUzQyTmkweUlEZ3VOamhXTVRaaE1pQXlJREFnTVNBeExUUWdNRm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURJd2RpMHlMak00WXpBdE1pNHhNaUF4TGpBekxUTXVNVElnTVMwMUxqWXlMUzR3TXkweUxqY3lMVEV1TkRrdE5pMDBMalV0TmtNeE5DNDJNeUEySURFMElEY3VPQ0F4TkNBNUxqVmpNQ0F6TGpFeElESWdOUzQyTmlBeUlEZ3VOamhXTWpCaE1pQXlJREFnTVNBd0lEUWdNRm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFM2FEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNVE5vTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Zvb3RwcmludHNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb290cHJpbnRzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMTZ2LTIuMzhDNCAxMS41IDIuOTcgMTAuNSAzIDhjLjAzLTIuNzIgMS40OS02IDQuNS02QzkuMzcgMiAxMCAzLjggMTAgNS41YzAgMy4xMS0yIDUuNjYtMiA4LjY4VjE2YTIgMiAwIDEgMS00IDBaJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMjB2LTIuMzhjMC0yLjEyIDEuMDMtMy4xMiAxLTUuNjItLjAzLTIuNzItMS40OS02LTQuNS02QzE0LjYzIDYgMTQgNy44IDE0IDkuNWMwIDMuMTEgMiA1LjY2IDIgOC42OFYyMGEyIDIgMCAxIDAgNCAwWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE3aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxM2g0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvb3RwcmludHM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9ya2xpZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USklOV0V5SURJZ01DQXdJREF0TWlBeWRqVWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVE1pSUdONVBTSXhPU0lnY2owaU1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTFJaUJqZVQwaU1Ua2lJSEk5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UbG9NMjAxTFRFM2RqRTNhRFpOTmlBeE1sWTNZekF0TVM0eExqa3RNaUF5TFRKb00ydzFJRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9ya2xpZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGb3JrbGlmdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMkg1YTIgMiAwIDAgMC0yIDJ2NScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEzJywgY3k6ICcxOScsIHI6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnMTknLCByOiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE5aDNtNS0xN3YxN2g2TTYgMTJWN2MwLTEuMS45LTIgMi0yaDNsNSA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvcmtsaWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZvcm1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5HZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREpvTVRBaUlDOCtDaUFnUEhKbFkzUWdlRDBpTkNJZ2VUMGlNVGdpSUhkcFpIUm9QU0l4TmlJZ2FHVnBaMmgwUFNJMElpQnllRDBpTVNJZ0x6NEtJQ0E4Y21WamRDQjRQU0kwSWlCNVBTSTJJaUIzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTkNJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZm9ybVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZvcm06IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNGg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMmgxMCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzQnLCB5OiAnMTgnLCB3aWR0aDogJzE2JywgaGVpZ2h0OiAnNCcsIHJ4OiAnMScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzQnLCB5OiAnNicsIHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICc0Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZvcm07XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZm9yd2FyZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRjZ05TMDFMVFV0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE9IWXRNbUUwSURRZ01DQXdJREVnTkMwMGFERXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb3J3YXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRm9yd2FyZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxNyA1LTUtNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTh2LTJhNCA0IDAgMCAxIDQtNGgxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZyYW1lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU1qSWlJSGd5UFNJeUlpQjVNVDBpTmlJZ2VUSTlJallpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakl5SWlCNE1qMGlNaUlnZVRFOUlqRTRJaUI1TWowaU1UZ2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqWWlJSGd5UFNJMklpQjVNVDBpTWlJZ2VUSTlJakl5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4T0NJZ2VESTlJakU0SWlCNU1UMGlNaUlnZVRJOUlqSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mcmFtZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZyYW1lOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzIyJywgeDI6ICcyJywgeTE6ICc2JywgeTI6ICc2JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzIyJywgeDI6ICcyJywgeTE6ICcxOCcsIHkyOiAnMTgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNicsIHgyOiAnNicsIHkxOiAnMicsIHkyOiAnMjInIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTgnLCB4MjogJzE4JywgeTE6ICcyJywgeTI6ICcyMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGcmFtZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmcmFtZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE5sWTVhREUwVmpKSU5Xd3hOQ0F4TkdndE4yMHROeUF3SURjZ04zWXROMjB0TnlBd2FEY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mcmFtZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPWZyYW1lciBpbnN0ZWFkLiBUaGlzIGljb24gd2lsbCBiZSByZW1vdmVkIGluIHYxLjBcbiAqL1xuY29uc3QgRnJhbWVyOiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdNNSAxNlY5aDE0VjJINWwxNCAxNGgtN20tNyAwIDcgN3YtN20tNyAwaDcnIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgRnJhbWVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZyb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFp6TFRFdU5TMHlMVFF0TWkwMElESXROQ0F5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0k1SWlCNE1qMGlPUzR3TVNJZ2VURTlJamtpSUhreVBTSTVJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhOU0lnZURJOUlqRTFMakF4SWlCNU1UMGlPU0lnZVRJOUlqa2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mcm93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEZyb3duOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE2cy0xLjUtMi00LTItNCAyLTQgMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc5JywgeDI6ICc5LjAxJywgeTE6ICc5JywgeTI6ICc5JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1JywgeDI6ICcxNS4wMScsIHkxOiAnOScsIHkyOiAnOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGcm93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBmdWVsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVE5vTW1FeUlESWdNQ0F3SURFZ01pQXlkakpoTWlBeUlEQWdNQ0F3SURRZ01IWXROaTQ1T1RoaE1pQXlJREFnTUNBd0xTNDFPUzB4TGpReVRERTRJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURJeFZqVmhNaUF5SURBZ01DQXdMVEl0TWtnMVlUSWdNaUF3SURBZ01DMHlJREoyTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01qRm9NVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nT1dneE1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mdWVsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRnVlbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxM2gyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDAgNCAwdi02Ljk5OGEyIDIgMCAwIDAtLjU5LTEuNDJMMTggNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMjFoMTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA5aDExJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZ1ZWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZnVsbHNjcmVlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEzVmpWaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFESmhNaUF5SURBZ01DQXhJRElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhOM1l5WVRJZ01pQXdJREFnTVMweUlESm9MVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpGSU5XRXlJRElnTUNBd0lERXRNaTB5ZGkweUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhNQ0lnYUdWcFoyaDBQU0k0SWlCNFBTSTNJaUI1UFNJNElpQnllRDBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Z1bGxzY3JlZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBGdWxsc2NyZWVuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDJhMiAyIDAgMCAxIDIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxSDVhMiAyIDAgMCAxLTItMnYtMicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMCcsIGhlaWdodDogJzgnLCB4OiAnNycsIHk6ICc4Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZ1bGxzY3JlZW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZnVubmVsLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU16VTBJRE5JTTJFeElERWdNQ0F3SURBdExqYzBNaUF4TGpZM2JEY3VNakkxSURjdU9UZzVRVElnTWlBd0lEQWdNU0F4TUNBeE5IWTJZVEVnTVNBd0lEQWdNQ0F1TlRVekxqZzVOV3d5SURGQk1TQXhJREFnTUNBd0lERTBJREl4ZGkwM1lUSWdNaUF3SURBZ01TQXVOVEUzTFRFdU16UXhiREV1TWpFNExURXVNelE0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBMmFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJRE4yTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Z1bm5lbC1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRnVubmVsUGx1czogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMy4zNTQgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0djZhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFsMS4yMTgtMS4zNDgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA2aDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgM3Y2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEZ1bm5lbFBsdXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZnVubmVsLXhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU5UTXhJRE5JTTJFeElERWdNQ0F3SURBdExqYzBNaUF4TGpZM2JEY3VNakkxSURjdU9UZzVRVElnTWlBd0lEQWdNU0F4TUNBeE5IWTJZVEVnTVNBd0lEQWdNQ0F1TlRVekxqZzVOV3d5SURGQk1TQXhJREFnTUNBd0lERTBJREl4ZGkwM1lUSWdNaUF3SURBZ01TQXVOVEUzTFRFdU16UXhiQzQwTWpjdExqUTNNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFl1TlNBekxqVWdOU0ExSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TVM0MUlETXVOUzAxSURVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2Z1bm5lbC14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRnVubmVsWDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMi41MzEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0djZhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFsLjQyNy0uNDczJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYuNSAzLjUgNSA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxLjUgMy41LTUgNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGdW5uZWxYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGZ1bm5lbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTWpCaE1TQXhJREFnTUNBd0lDNDFOVE11T0RrMWJESWdNVUV4SURFZ01DQXdJREFnTVRRZ01qRjJMVGRoTWlBeUlEQWdNQ0F4SUM0MU1UY3RNUzR6TkRGTU1qRXVOelFnTkM0Mk4wRXhJREVnTUNBd0lEQWdNakVnTTBnellURWdNU0F3SURBZ01DMHVOelF5SURFdU5qZHNOeTR5TWpVZ055NDVPRGxCTWlBeUlEQWdNQ0F4SURFd0lERTBlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZnVubmVsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgRnVubmVsOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwIDIwYTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxTDIxLjc0IDQuNjdBMSAxIDAgMCAwIDIxIDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBGdW5uZWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ2FsbGVyeS1ob3Jpem9udGFsLWVuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUEzZGpFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEVjJNVFFpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFeUlpQm9aV2xuYUhROUlqRTRJaUI0UFNJeE1DSWdlVDBpTXlJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2FsbGVyeS1ob3Jpem9udGFsLWVuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdhbGxlcnlIb3Jpem9udGFsRW5kOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgN3YxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDV2MTQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTInLCBoZWlnaHQ6ICcxOCcsIHg6ICcxMCcsIHk6ICczJywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdhbGxlcnlIb3Jpem9udGFsRW5kO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdhbGxlcnktaG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF6ZGpFNElpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhNaUlnYUdWcFoyaDBQU0l4T0NJZ2VEMGlOaUlnZVQwaU15SWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlETjJNVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2FsbGVyeS1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2FsbGVyeUhvcml6b250YWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAzdjE4JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzEyJywgaGVpZ2h0OiAnMTgnLCB4OiAnNicsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDN2MTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR2FsbGVyeUhvcml6b250YWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ2FsbGVyeS10aHVtYm5haWxzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRRaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElESXhhREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTWpGb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNakZvTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01qRm9NU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2FsbGVyeS10aHVtYm5haWxzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2FsbGVyeVRodW1ibmFpbHM6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxNCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAyMWgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMjFoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMWgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDIxaDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR2FsbGVyeVRodW1ibmFpbHM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ2FsbGVyeS12ZXJ0aWNhbC1lbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeWFERXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJRFpvTVRRaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqRTRJaUJvWldsbmFIUTlJakV5SWlCNFBTSXpJaUI1UFNJeE1DSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dhbGxlcnktdmVydGljYWwtZW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2FsbGVyeVZlcnRpY2FsRW5kOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMmgxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDZoMTQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxMicsIHg6ICczJywgeTogJzEwJywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdhbGxlcnlWZXJ0aWNhbEVuZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBnYWxsZXJ5LXZlcnRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXlhREU0SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeE9DSWdhR1ZwWjJoMFBTSXhNaUlnZUQwaU15SWdlVDBpTmlJZ2NuZzlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTWpKb01UZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nYWxsZXJ5LXZlcnRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2FsbGVyeVZlcnRpY2FsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgMmgxOCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzEyJywgeDogJzMnLCB5OiAnNicsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDIyaDE4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdhbGxlcnlWZXJ0aWNhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBnYW1lcGFkLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTmlJZ2VESTlJakV3SWlCNU1UMGlNVEVpSUhreVBTSXhNU0lnTHo0S0lDQThiR2x1WlNCNE1UMGlPQ0lnZURJOUlqZ2lJSGt4UFNJNUlpQjVNajBpTVRNaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFMUlpQjRNajBpTVRVdU1ERWlJSGt4UFNJeE1pSWdlVEk5SWpFeUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE9DSWdlREk5SWpFNExqQXhJaUI1TVQwaU1UQWlJSGt5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VNeklnTlVnMkxqWTRZVFFnTkNBd0lEQWdNQzB6TGprM09DQXpMalU1WXkwdU1EQTJMakExTWkwdU1ERXVNVEF4TFM0d01UY3VNVFV5UXpJdU5qQTBJRGt1TkRFMklESWdNVFF1TkRVMklESWdNVFpoTXlBeklEQWdNQ0F3SURNZ00yTXhJREFnTVM0MUxTNDFJREl0TVd3eExqUXhOQzB4TGpReE5FRXlJRElnTUNBd0lERWdPUzQ0TWpnZ01UWm9OQzR6TkRSaE1pQXlJREFnTUNBeElERXVOREUwTGpVNE5rd3hOeUF4T0dNdU5TNDFJREVnTVNBeUlERmhNeUF6SURBZ01DQXdJRE10TTJNd0xURXVOVFExTFM0Mk1EUXROaTQxT0RRdExqWTROUzAzTGpJMU9DMHVNREEzTFM0d05TMHVNREV4TFM0eExTNHdNVGN0TGpFMU1VRTBJRFFnTUNBd0lEQWdNVGN1TXpJZ05Yb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nYW1lcGFkLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHYW1lcGFkMjogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICcxMCcsIHkxOiAnMTEnLCB5MjogJzExJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzgnLCB5MTogJzknLCB5MjogJzEzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1JywgeDI6ICcxNS4wMScsIHkxOiAnMTInLCB5MjogJzEyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE4JywgeDI6ICcxOC4wMScsIHkxOiAnMTAnLCB5MjogJzEwJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3LjMyIDVINi42OGE0IDQgMCAwIDAtMy45NzggMy41OWMtLjAwNi4wNTItLjAxLjEwMS0uMDE3LjE1MkMyLjYwNCA5LjQxNiAyIDE0LjQ1NiAyIDE2YTMgMyAwIDAgMCAzIDNjMSAwIDEuNS0uNSAyLTFsMS40MTQtMS40MTRBMiAyIDAgMCAxIDkuODI4IDE2aDQuMzQ0YTIgMiAwIDAgMSAxLjQxNC41ODZMMTcgMThjLjUuNSAxIDEgMiAxYTMgMyAwIDAgMCAzLTNjMC0xLjU0NS0uNjA0LTYuNTg0LS42ODUtNy4yNTgtLjAwNy0uMDUtLjAxMS0uMS0uMDE3LS4xNTFBNCA0IDAgMCAwIDE3LjMyIDV6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR2FtZXBhZDI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ2FtZXBhZC1kaXJlY3Rpb25hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOQ0lnYUdWcFoyaDBQU0l5TkNJZ2RtbGxkMEp2ZUQwaU1DQXdJREkwSURJMElpQm1hV3hzUFNKdWIyNWxJaUJ6ZEhKdmEyVTlJaU13TURBaUlITjBlV3hsUFNKaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lBalptWm1PeUJpYjNKa1pYSXRjbUZrYVhWek9pQXljSGdpSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpSUhOMGNtOXJaUzFzYVc1bFkyRndQU0p5YjNWdVpDSWdjM1J5YjJ0bExXeHBibVZxYjJsdVBTSnliM1Z1WkNJK0NpQWdQSEJoZEdnS0lDQWdJR1E5SWsweE1TNHhORFlnTVRVdU9EVTBZVEV1TWpBM0lERXVNakEzSURBZ01DQXhJREV1TnpBNElEQnNNUzQxTmlBeExqVTJRVElnTWlBd0lEQWdNU0F4TlNBeE9DNDRNamhXTWpGaE1TQXhJREFnTUNBeExURWdNV2d0TkdFeElERWdNQ0F3SURFdE1TMHhkaTB5TGpFM01tRXlJRElnTUNBd0lERWdMalU0TmkweExqUXhOSG9pSUM4K0NpQWdQSEJoZEdnS0lDQWdJR1E5SWsweE9DNDRNamdnTVRWaE1pQXlJREFnTUNBeExURXVOREUwTFM0MU9EWnNMVEV1TlRZdE1TNDFObUV4TGpJd055QXhMakl3TnlBd0lEQWdNU0F3TFRFdU56QTRiREV1TlRZdE1TNDFOa0V5SURJZ01DQXdJREVnTVRndU9ESTRJRGxJTWpGaE1TQXhJREFnTUNBeElERWdNWFkwWVRFZ01TQXdJREFnTVMweElERjZJaUF2UGdvZ0lEeHdZWFJvQ2lBZ0lDQmtQU0pOTmk0MU9EWWdNVFF1TkRFMFFUSWdNaUF3SURBZ01TQTFMakUzTWlBeE5VZ3pZVEVnTVNBd0lEQWdNUzB4TFRGMkxUUmhNU0F4SURBZ01DQXhJREV0TVdneUxqRTNNbUV5SURJZ01DQXdJREVnTVM0ME1UUXVOVGcyYkRFdU5UWWdNUzQxTm1FeExqSXdOeUF4TGpJd055QXdJREFnTVNBd0lERXVOekE0ZWlJZ0x6NEtJQ0E4Y0dGMGFBb2dJQ0FnWkQwaVRUa2dNMkV4SURFZ01DQXdJREVnTVMweGFEUmhNU0F4SURBZ01DQXhJREVnTVhZeUxqRTNNbUV5SURJZ01DQXdJREV0TGpVNE5pQXhMalF4Tkd3dE1TNDFOaUF4TGpVMllURXVNakEzSURFdU1qQTNJREFnTUNBeExURXVOekE0SURCc0xURXVOVFl0TVM0MU5rRXlJRElnTUNBd0lERWdPU0ExTGpFM01ub2lJQzgrQ2p3dmMzWm5QZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nYW1lcGFkLWRpcmVjdGlvbmFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2FtZXBhZERpcmVjdGlvbmFsOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExLjE0NiAxNS44NTRhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDggMGwxLjU2IDEuNTZBMiAyIDAgMCAxIDE1IDE4LjgyOFYyMWExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF2LTIuMTcyYTIgMiAwIDAgMSAuNTg2LTEuNDE0eicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4LjgyOCAxNWEyIDIgMCAwIDEtMS40MTQtLjU4NmwtMS41Ni0xLjU2YTEuMjA3IDEuMjA3IDAgMCAxIDAtMS43MDhsMS41Ni0xLjU2QTIgMiAwIDAgMSAxOC44MjggOUgyMWExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMXonLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002LjU4NiAxNC40MTRBMiAyIDAgMCAxIDUuMTcyIDE1SDNhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xaDIuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMS41NiAxLjU2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDh6JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSAzYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjIuMTcyYTIgMiAwIDAgMS0uNTg2IDEuNDE0bC0xLjU2IDEuNTZhMS4yMDcgMS4yMDcgMCAwIDEtMS43MDggMGwtMS41Ni0xLjU2QTIgMiAwIDAgMSA5IDUuMTcyeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdhbWVwYWREaXJlY3Rpb25hbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBnYW1lcGFkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU5pSWdlREk5SWpFd0lpQjVNVDBpTVRJaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpT0NJZ2VESTlJamdpSUhreFBTSXhNQ0lnZVRJOUlqRTBJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhOU0lnZURJOUlqRTFMakF4SWlCNU1UMGlNVE1pSUhreVBTSXhNeUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVGdpSUhneVBTSXhPQzR3TVNJZ2VURTlJakV4SWlCNU1qMGlNVEVpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpJd0lpQm9aV2xuYUhROUlqRXlJaUI0UFNJeUlpQjVQU0kySWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2FtZXBhZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdhbWVwYWQ6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnNicsIHgyOiAnMTAnLCB5MTogJzEyJywgeTI6ICcxMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc4JywgeDI6ICc4JywgeTE6ICcxMCcsIHkyOiAnMTQnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTUnLCB4MjogJzE1LjAxJywgeTE6ICcxMycsIHkyOiAnMTMnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTgnLCB4MjogJzE4LjAxJywgeTE6ICcxMScsIHkyOiAnMTEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxMicsIHg6ICcyJywgeTogJzYnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR2FtZXBhZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBnYXVnZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVElnTVRRZ05DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpMak0wSURFNVlURXdJREV3SURBZ01TQXhJREUzTGpNeUlEQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nYXVnZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdhdWdlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEyIDE0IDQtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjM0IDE5YTEwIDEwIDAgMSAxIDE3LjMyIDAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR2F1Z2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ2F2ZWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRRZ01UTXRPQzR6T0RFZ09DNHpPR0V4SURFZ01DQXdJREV0TXk0d01ERXRNMnc0TGpNNE5DMDRMak00TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UWWdOaTAySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TVM0MUlERXdMalV0T0MwNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNElEZ2dOaTAySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0TGpVZ055NDFJRGdnT0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dhdmVsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2F2ZWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTMtOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM2w4LjM4NC04LjM4MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxNiA2LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEuNSAxMC41LTgtOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDggNi02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTguNSA3LjUgOCA4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdhdmVsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdlbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TlNBeklEZ2dPV3cwSURFeklEUXRNVE10TWk0MUxUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJRE5oTWlBeUlEQWdNQ0F4SURFdU5pNDRiRE1nTkdFeUlESWdNQ0F3SURFZ0xqQXhNeUF5TGpNNE1td3ROeTQ1T1NBeE1DNDVPRFpoTWlBeUlEQWdNQ0F4TFRNdU1qUTNJREJzTFRjdU9Ua3RNVEF1T1RnMlFUSWdNaUF3SURBZ01TQXlMalFnTnk0NGJESXVPVGs0TFRNdU9UazNRVElnTWlBd0lEQWdNU0EzSURONklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlEbG9NakFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2VtXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2VtOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwLjUgMyA4IDlsNCAxMyA0LTEzLTIuNS02JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3IDNhMiAyIDAgMCAxIDEuNi44bDMgNGEyIDIgMCAwIDEgLjAxMyAyLjM4MmwtNy45OSAxMC45ODZhMiAyIDAgMCAxLTMuMjQ3IDBsLTcuOTktMTAuOTg2QTIgMiAwIDAgMSAyLjQgNy44bDIuOTk4LTMuOTk3QTIgMiAwIDAgMSA3IDN6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA5aDIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdlbTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBnZW9yZ2lhbi1sYXJpXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URXVOU0F5TVdFM0xqVWdOeTQxSURBZ01TQXhJRGN1TXpVdE9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNVEpXTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeU1XZ3hOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TWxZeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dlb3JnaWFuLWxhcmlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHZW9yZ2lhbkxhcmk6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuNSAyMWE3LjUgNy41IDAgMSAxIDcuMzUtOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxMlYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMjFoMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMlYzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdlb3JnaWFuTGFyaTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBnaG9zdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F4TUdndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJREV3YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbUU0SURnZ01DQXdJREF0T0NBNGRqRXliRE10TXlBeUxqVWdNaTQxVERFeUlERTViREl1TlNBeUxqVk1NVGNnTVRsc015QXpWakV3WVRnZ09DQXdJREFnTUMwNExUaDZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naG9zdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdob3N0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTkgMTBoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEwaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyYTggOCAwIDAgMC04IDh2MTJsMy0zIDIuNSAyLjVMMTIgMTlsMi41IDIuNUwxNyAxOWwzIDNWMTBhOCA4IDAgMCAwLTgtOHonIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR2hvc3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ2lmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCNFBTSXpJaUI1UFNJNElpQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlOQ0lnY25nOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGgyTVRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlERXlkamRoTWlBeUlEQWdNQ0F4TFRJZ01rZzNZVElnTWlBd0lEQWdNUzB5TFRKMkxUY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY3VOU0E0WVRJdU5TQXlMalVnTUNBd0lERWdNQzAxUVRRdU9DQTRJREFnTUNBeElERXlJRGhoTkM0NElEZ2dNQ0F3SURFZ05DNDFMVFVnTWk0MUlESXVOU0F3SURBZ01TQXdJRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2lmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdpZnQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzgnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnNCcsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djEzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDEydjdhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJ2LTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNy41IDhhMi41IDIuNSAwIDAgMSAwLTVBNC44IDggMCAwIDEgMTIgOGE0LjggOCAwIDAgMSA0LjUtNSAyLjUgMi41IDAgMCAxIDAgNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHaWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdpdC1icmFuY2gtbWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ05tRTVJRGtnTUNBd0lEQXRPU0E1VmpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERTRhQzAySWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNElpQmplVDBpTmlJZ2NqMGlNeUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kySWlCamVUMGlNVGdpSUhJOUlqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtYnJhbmNoLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2l0QnJhbmNoTWludXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgNmE5IDkgMCAwIDAtOSA5VjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMThoLTYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnNicsIHI6ICczJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnMTgnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRCcmFuY2hNaW51cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBnaXQtYnJhbmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU5pSWdlREk5SWpZaUlIa3hQU0l6SWlCNU1qMGlNVFVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRnaUlHTjVQU0kySWlCeVBTSXpJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJallpSUdONVBTSXhPQ0lnY2owaU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dPV0U1SURrZ01DQXdJREV0T1NBNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dpdC1icmFuY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHaXRCcmFuY2g6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnNicsIHgyOiAnNicsIHkxOiAnMycsIHkyOiAnMTUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnNicsIHI6ICczJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnMTgnLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA5YTkgOSAwIDAgMS05IDknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR2l0QnJhbmNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdpdC1icmFuY2gtcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF6ZGpFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQTVZVE1nTXlBd0lERWdNQ0F3TFRZZ015QXpJREFnTUNBd0lEQWdObm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTWpGaE15QXpJREFnTVNBd0lEQXROaUF6SURNZ01DQXdJREFnTUNBMmVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdObUU1SURrZ01DQXdJREF0T1NBNUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhOWFkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE9HZ3ROaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0LWJyYW5jaC1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2l0QnJhbmNoUGx1czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDN2MTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMjFhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA2YTkgOSAwIDAgMC05IDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTV2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOGgtNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRCcmFuY2hQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdpdC1jb21taXQtaG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXpJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXpJaUI0TWowaU9TSWdlVEU5SWpFeUlpQjVNajBpTVRJaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFMUlpQjRNajBpTWpFaUlIa3hQU0l4TWlJZ2VUSTlJakV5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0LWNvbW1pdC1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2l0Q29tbWl0SG9yaXpvbnRhbDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICczJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzMnLCB4MjogJzknLCB5MTogJzEyJywgeTI6ICcxMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNScsIHgyOiAnMjEnLCB5MTogJzEyJywgeTI6ICcxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRDb21taXRIb3Jpem9udGFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdpdC1jb21taXQtdmVydGljYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00zWTJJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREUxZGpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dpdC1jb21taXQtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHaXRDb21taXRWZXJ0aWNhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzdjYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNXY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdpdENvbW1pdFZlcnRpY2FsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdpdC1jb21wYXJlLWFycm93c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0kxSWlCamVUMGlOaUlnY2owaU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdObWcxWVRJZ01pQXdJREFnTVNBeUlESjJOeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnT1MwekxUTWdNeTB6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNUlpQmplVDBpTVRnaUlISTlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFNFNEZGhNaUF5SURBZ01DQXhMVEl0TWxZNUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERTFJRE1nTXkweklETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtY29tcGFyZS1hcnJvd3NcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHaXRDb21wYXJlQXJyb3dzOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnNicsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgOS0zLTMgMy0zJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTknLCBjeTogJzE4JywgcjogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThIN2EyIDIgMCAwIDEtMi0yVjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxNSAzIDMtMyAzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdpdENvbXBhcmVBcnJvd3M7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ2l0LWNvbXBhcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE9DSWdZM2s5SWpFNElpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpZaUlHTjVQU0kySWlCeVBTSXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUEyYUROaE1pQXlJREFnTUNBeElESWdNblkzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBeE9FZzRZVElnTWlBd0lEQWdNUzB5TFRKV09TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtY29tcGFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdpdENvbXBhcmU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTgnLCByOiAnMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzYnLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyA2aDNhMiAyIDAgMCAxIDIgMnY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE4SDhhMiAyIDAgMCAxLTItMlY5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdpdENvbXBhcmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ2l0LWZvcmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFNElpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpZaUlHTjVQU0kySWlCeVBTSXpJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU0SWlCamVUMGlOaUlnY2owaU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dPWFl5WXpBZ0xqWXRMalFnTVMweElERklOMk10TGpZZ01DMHhMUzQwTFRFdE1WWTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW5ZeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dpdC1mb3JrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2l0Rm9yazogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxOCcsIHI6ICczJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnNicsIHI6ICczJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzYnLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA5djJjMCAuNi0uNCAxLTEgMUg3Yy0uNiAwLTEtLjQtMS0xVjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2MycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRGb3JrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdpdC1ncmFwaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0kxSWlCamVUMGlOaUlnY2owaU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQTVkallpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTlNJZ1kzazlJakU0SWlCeVBTSXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF6ZGpFNElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTVJaUJqZVQwaU5pSWdjajBpTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UVXVOMEU1SURrZ01DQXdJREFnTVRrZ09TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtZ3JhcGhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHaXRHcmFwaDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzYnLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDl2NicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzE4JywgcjogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3YxOCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICc2JywgcjogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTUuN0E5IDkgMCAwIDAgMTkgOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRHcmFwaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBnaXQtbWVyZ2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE9DSWdZM2s5SWpFNElpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpZaUlHTjVQU0kySWlCeVBTSXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREl4VmpsaE9TQTVJREFnTUNBd0lEa2dPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0LW1lcmdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2l0TWVyZ2U6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTgnLCByOiAnMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzYnLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDIxVjlhOSA5IDAgMCAwIDkgOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRNZXJnZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBnaXQtcHVsbC1yZXF1ZXN0LWFycm93XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTFJaUJqZVQwaU5pSWdjajBpTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBNWRqRXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU1SWlCamVUMGlNVGdpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJRGt0TXkweklETXRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTm1nMVlUSWdNaUF3SURBZ01TQXlJREoyTnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtYXJyb3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHaXRQdWxsUmVxdWVzdEFycm93OiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnNicsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgOXYxMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICcxOCcsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDktMy0zIDMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2aDVhMiAyIDAgMCAxIDIgMnY3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdpdFB1bGxSZXF1ZXN0QXJyb3c7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ2l0LXB1bGwtcmVxdWVzdC1jbG9zZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJMklpQmplVDBpTmlJZ2NqMGlNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUE1ZGpFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TQXpMVFlnTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ09TMDJMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFeExqVldNVFVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRnaUlHTjVQU0l4T0NJZ2NqMGlNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jbG9zZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHaXRQdWxsUmVxdWVzdENsb3NlZDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzYnLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDl2MTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMy02IDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgOS02LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTEuNVYxNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdpdFB1bGxSZXF1ZXN0Q2xvc2VkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdpdC1wdWxsLXJlcXVlc3QtY3JlYXRlLWFycm93XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTFJaUJqZVQwaU5pSWdjajBpTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBNWRqRXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0E1TFRNdE15QXpMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURab05XRXlJRElnTUNBd0lERWdNaUF5ZGpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlERTFkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURFNGFDMDJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWNyZWF0ZS1hcnJvd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3c6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICc2JywgcjogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSA5djEyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDktMy0zIDMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2aDVhMiAyIDAgMCAxIDIgMnYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE1djYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMThoLTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBnaXQtcHVsbC1yZXF1ZXN0LWNyZWF0ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0kySWlCamVUMGlOaUlnY2owaU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQTVkakV5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXlBMmFETmhNaUF5SURBZ01DQXhJRElnTW5ZeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhOWFkySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE9HZ3ROaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHaXRQdWxsUmVxdWVzdENyZWF0ZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzYnLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDl2MTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgNmgzYTIgMiAwIDAgMSAyIDJ2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNXY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE4aC02JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdpdFB1bGxSZXF1ZXN0Q3JlYXRlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdpdC1wdWxsLXJlcXVlc3QtZHJhZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE9DSWdZM2s5SWpFNElpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpZaUlHTjVQU0kySWlCeVBTSXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0EyVmpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERXhkaTB4SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0kySWlCNE1qMGlOaUlnZVRFOUlqa2lJSGt5UFNJeU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWRyYWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2l0UHVsbFJlcXVlc3REcmFmdDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICczJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnNicsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDZWNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMXYtMScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc2JywgeTE6ICc5JywgeTI6ICcyMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHaXRQdWxsUmVxdWVzdERyYWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdpdC1wdWxsLXJlcXVlc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE9DSWdZM2s5SWpFNElpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpZaUlHTjVQU0kySWlCeVBTSXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUEyYUROaE1pQXlJREFnTUNBeElESWdNblkzSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0kySWlCNE1qMGlOaUlnZVRFOUlqa2lJSGt5UFNJeU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9naXQtcHVsbC1yZXF1ZXN0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2l0UHVsbFJlcXVlc3Q6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTgnLCByOiAnMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzYnLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyA2aDNhMiAyIDAgMCAxIDIgMnY3JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzYnLCB4MjogJzYnLCB5MTogJzknLCB5MjogJzIxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdpdFB1bGxSZXF1ZXN0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdpdGh1YlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTWpKMkxUUmhOQzQ0SURRdU9DQXdJREFnTUMweExUTXVOV016SURBZ05pMHlJRFl0TlM0MUxqQTRMVEV1TWpVdExqSTNMVEl1TkRndE1TMHpMalV1TWpndE1TNHhOUzR5T0MweUxqTTFJREF0TXk0MUlEQWdNQzB4SURBdE15QXhMalV0TWk0Mk5DMHVOUzAxTGpNMkxTNDFMVGdnTUVNMklESWdOU0F5SURVZ01tTXRMak1nTVM0eE5TMHVNeUF5TGpNMUlEQWdNeTQxUVRVdU5EQXpJRFV1TkRBeklEQWdNQ0F3SURRZ09XTXdJRE11TlNBeklEVXVOU0EySURVdU5TMHVNemt1TkRrdExqWTRJREV1TURVdExqZzFJREV1TmpVdExqRTNMall0TGpJeUlERXVNak10TGpFMUlERXVPRFYyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE9HTXROQzQxTVNBeUxUVXRNaTAzTFRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dpdGh1YlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqIEBkZXByZWNhdGVkIEJyYW5kIGljb25zIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCBhcmUgZHVlIHRvIGJlIHJlbW92ZWQsIHBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vbHVjaWRlLWljb25zL2x1Y2lkZS9pc3N1ZXMvNjcwLiBXZSByZWNvbW1lbmQgdXNpbmcgaHR0cHM6Ly9zaW1wbGVpY29ucy5vcmcvP3E9Z2l0aHViIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBHaXRodWI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUgMjJ2LTRhNC44IDQuOCAwIDAgMC0xLTMuNWMzIDAgNi0yIDYtNS41LjA4LTEuMjUtLjI3LTIuNDgtMS0zLjUuMjgtMS4xNS4yOC0yLjM1IDAtMy41IDAgMC0xIDAtMyAxLjUtMi42NC0uNS01LjM2LS41LTggMEM2IDIgNSAyIDUgMmMtLjMgMS4xNS0uMyAyLjM1IDAgMy41QTUuNDAzIDUuNDAzIDAgMCAwIDQgOWMwIDMuNSAzIDUuNSA2IDUuNS0uMzkuNDktLjY4IDEuMDUtLjg1IDEuNjUtLjE3LjYtLjIyIDEuMjMtLjE1IDEuODV2NCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMThjLTQuNTEgMi01LTItNy0yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdpdGh1YjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBnaXRsYWJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ01UTXVNamt0TXk0ek15MHhNR0V1TkRJdU5ESWdNQ0F3SURBdExqRTBMUzR4T0M0ek9DNHpPQ0F3SURBZ01DMHVNakl0TGpFeExqTTVMak01SURBZ01DQXdMUzR5TXk0d055NDBNaTQwTWlBd0lEQWdNQzB1TVRRdU1UaHNMVEl1TWpZZ05pNDJOMGc0TGpNeVREWXVNU0F6TGpJMllTNDBNaTQwTWlBd0lEQWdNQzB1TVMwdU1UZ3VNemd1TXpnZ01DQXdJREF0TGpJMkxTNHdPQzR6T1M0ek9TQXdJREFnTUMwdU1qTXVNRGN1TkRJdU5ESWdNQ0F3SURBdExqRTBMakU0VERJZ01UTXVNamxoTGpjMExqYzBJREFnTUNBd0lDNHlOeTQ0TTB3eE1pQXlNV3c1TGpZNUxUWXVPRGhoTGpjeExqY3hJREFnTUNBd0lDNHpNUzB1T0ROYUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dpdGxhYlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqIEBkZXByZWNhdGVkIEJyYW5kIGljb25zIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCBhcmUgZHVlIHRvIGJlIHJlbW92ZWQsIHBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vbHVjaWRlLWljb25zL2x1Y2lkZS9pc3N1ZXMvNjcwLiBXZSByZWNvbW1lbmQgdXNpbmcgaHR0cHM6Ly9zaW1wbGVpY29ucy5vcmcvP3E9Z2l0bGFiIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBHaXRsYWI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMjIgMTMuMjktMy4zMy0xMGEuNDIuNDIgMCAwIDAtLjE0LS4xOC4zOC4zOCAwIDAgMC0uMjItLjExLjM5LjM5IDAgMCAwLS4yMy4wNy40Mi40MiAwIDAgMC0uMTQuMThsLTIuMjYgNi42N0g4LjMyTDYuMSAzLjI2YS40Mi40MiAwIDAgMC0uMS0uMTguMzguMzggMCAwIDAtLjI2LS4wOC4zOS4zOSAwIDAgMC0uMjMuMDcuNDIuNDIgMCAwIDAtLjE0LjE4TDIgMTMuMjlhLjc0Ljc0IDAgMCAwIC4yNy44M0wxMiAyMWw5LjY5LTYuODhhLjcxLjcxIDAgMCAwIC4zMS0uODNaJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR2l0bGFiO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdsYXNzLXdhdGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TNHhNVFlnTkM0eE1EUkJNU0F4SURBZ01DQXhJRFl1TVRFZ00yZ3hNUzQzT0dFeElERWdNQ0F3SURFZ0xqazVOQ0F4TGpFd05Vd3hOeTR4T1NBeU1DNHlNVUV5SURJZ01DQXdJREVnTVRVdU1pQXlNa2c0TGpoaE1pQXlJREFnTUNBeExUSXRNUzQzT1hvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01USmhOU0ExSURBZ01DQXhJRFlnTUNBMUlEVWdNQ0F3SURBZ05pQXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nbGFzcy13YXRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdsYXNzV2F0ZXI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNS4xMTYgNC4xMDRBMSAxIDAgMCAxIDYuMTEgM2gxMS43OGExIDEgMCAwIDEgLjk5NCAxLjEwNUwxNy4xOSAyMC4yMUEyIDIgMCAwIDEgMTUuMiAyMkg4LjhhMiAyIDAgMCAxLTItMS43OXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEyYTUgNSAwIDAgMSA2IDAgNSA1IDAgMCAwIDYgMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHbGFzc1dhdGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdsYXNzZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJMklpQmplVDBpTVRVaUlISTlJalFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRnaUlHTjVQU0l4TlNJZ2NqMGlOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRWaE1pQXlJREFnTUNBd0xUSXRNaUF5SURJZ01DQXdJREF0TWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUxqVWdNVE1nTlNBM1l5NDNMVEV1TXlBeExqUXRNaUF6TFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeExqVWdNVE1nTVRrZ04yTXRMamN0TVM0ekxURXVOUzB5TFRNdE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nbGFzc2VzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR2xhc3NlczogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzE1JywgcjogJzQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTUnLCByOiAnNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNWEyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMC0yIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMi41IDEzIDUgN2MuNy0xLjMgMS40LTIgMy0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjUgMTMgMTkgN2MtLjctMS4zLTEuNS0yLTMtMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHbGFzc2VzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdsb2JlLWxvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVdU5qZzJJREUxUVRFMExqVWdNVFF1TlNBd0lEQWdNU0F4TWlBeU1tRXhOQzQxSURFMExqVWdNQ0F3SURFZ01DMHlNQ0F4TUNBeE1DQXdJREVnTUNBNUxqVTBNaUF4TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1tZzRMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURaV05HRXlJRElnTUNBeElEQXROQ0F3ZGpJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqZ2lJR2hsYVdkb2REMGlOU0lnZUQwaU1UUWlJSGs5SWpZaUlISjRQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2xvYmUtbG9ja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdsb2JlTG9jazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNS42ODYgMTVBMTQuNSAxNC41IDAgMCAxIDEyIDIyYTE0LjUgMTQuNSAwIDAgMSAwLTIwIDEwIDEwIDAgMSAwIDkuNTQyIDEzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoOC41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzUnLCB4OiAnMTQnLCB5OiAnNicsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHbG9iZUxvY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ2xvYmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01tRXhOQzQxSURFMExqVWdNQ0F3SURBZ01DQXlNQ0F4TkM0MUlERTBMalVnTUNBd0lEQWdNQzB5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1tZ3lNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ2xvYmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHbG9iZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyYTE0LjUgMTQuNSAwIDAgMCAwIDIwIDE0LjUgMTQuNSAwIDAgMCAwLTIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR2xvYmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ29hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVROV01tdzRJRFF0T0NBMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNDFOakVnTVRBdU1qSXlZVGtnT1NBd0lERWdNUzB4TWk0MU5TMDFMakk1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpBd01pQTVMams1TjJFMUlEVWdNQ0F4SURBZ09DNDVJREl1TURJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dvYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHb2FsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzVjJsOCA0LTggNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC41NjEgMTAuMjIyYTkgOSAwIDEgMS0xMi41NS01LjI5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguMDAyIDkuOTk3YTUgNSAwIDEgMCA4LjkgMi4wMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHb2FsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdwdVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF5TVZZeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlEVm9NVGhoTWlBeUlEQWdNQ0F4SURJZ01uWTRZVElnTWlBd0lEQWdNUzB5SURKSU1pNHlOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TjNZellURWdNU0F3SURBZ01DQXhJREZvTldFeElERWdNQ0F3SURBZ01TMHhkaTB6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFMklpQmplVDBpTVRFaUlISTlJaklpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpT0NJZ1kzazlJakV4SWlCeVBTSXlJaUF2UGdvOEwzTjJaejQ9KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ncHVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHcHU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMVYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgNWgxOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkgyLjI2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTd2M2ExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE2JywgY3k6ICcxMScsIHI6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOCcsIGN5OiAnMTEnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHcHU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ3JhZHVhdGlvbi1jYXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFdU5ESWdNVEF1T1RJeVlURWdNU0F3SURBZ01DMHVNREU1TFRFdU9ETTRUREV5TGpneklEVXVNVGhoTWlBeUlEQWdNQ0F3TFRFdU5qWWdNRXd5TGpZZ09TNHdPR0V4SURFZ01DQXdJREFnTUNBeExqZ3pNbXc0TGpVM0lETXVPVEE0WVRJZ01pQXdJREFnTUNBeExqWTJJREI2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeE1IWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREV5TGpWV01UWmhOaUF6SURBZ01DQXdJREV5SURCMkxUTXVOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ3JhZHVhdGlvbi1jYXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHcmFkdWF0aW9uQ2FwOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxLjQyIDEwLjkyMmExIDEgMCAwIDAtLjAxOS0xLjgzOEwxMi44MyA1LjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDkuMDhhMSAxIDAgMCAwIDAgMS44MzJsOC41NyAzLjkwOGEyIDIgMCAwIDAgMS42NiAweicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEwdjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMi41VjE2YTYgMyAwIDAgMCAxMiAwdi0zLjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR3JhZHVhdGlvbkNhcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBncmFwZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTlZZeWJDMDFMamc1SURVdU9Ea2lJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVFl1TmlJZ1kzazlJakUxTGpnNUlpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpndU1URWlJR041UFNJM0xqUWlJSEk5SWpNaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USXVNelVpSUdONVBTSXhNUzQyTlNJZ2NqMGlNeUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TXk0NU1TSWdZM2s5SWpVdU9EVWlJSEk5SWpNaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UZ3VNVFVpSUdONVBTSXhNQzR3T1NJZ2NqMGlNeUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kyTGpVMklpQmplVDBpTVRNdU1pSWdjajBpTXlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1DNDRJaUJqZVQwaU1UY3VORFFpSUhJOUlqTWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOU0lnWTNrOUlqRTVJaUJ5UFNJeklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dyYXBlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR3JhcGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgNVYybC01Ljg5IDUuODknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNi42JywgY3k6ICcxNS44OScsIHI6ICczJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOC4xMScsIGN5OiAnNy40JywgcjogJzMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMi4zNScsIGN5OiAnMTEuNjUnLCByOiAnMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEzLjkxJywgY3k6ICc1Ljg1JywgcjogJzMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOC4xNScsIGN5OiAnMTAuMDknLCByOiAnMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYuNTYnLCBjeTogJzEzLjInLCByOiAnMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwLjgnLCBjeTogJzE3LjQ0JywgcjogJzMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICcxOScsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdyYXBlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdyaWQtMngyLWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNM1l4TjJFeElERWdNQ0F3SURFdE1TQXhTRFZoTWlBeUlEQWdNQ0F4TFRJdE1sWTFZVElnTWlBd0lEQWdNU0F5TFRKb01UUmhNaUF5SURBZ01DQXhJRElnTW5ZMllURWdNU0F3SURBZ01TMHhJREZJTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01Ua2dNaUF5SURRdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ncmlkLTJ4Mi1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdyaWQyeDJDaGVjazogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTkgMiAyIDQtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHcmlkMngyQ2hlY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ3JpZC0yeDItcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZeE4yRXhJREVnTUNBd0lERXRNU0F4U0RWaE1pQXlJREFnTUNBeExUSXRNbFkxWVRJZ01pQXdJREFnTVNBeUxUSm9NVFJoTWlBeUlEQWdNQ0F4SURJZ01uWTJZVEVnTVNBd0lEQWdNUzB4SURGSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVGxvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01qSjJMVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ3JpZC0yeDItcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdyaWQyeDJQbHVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDN2MTdhMSAxIDAgMCAxLTEgMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NmExIDEgMCAwIDEtMSAxSDMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOWg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDIydi02JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdyaWQyeDJQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdyaWQtMngyLXhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00zWXhOMkV4SURFZ01DQXdJREV0TVNBeFNEVmhNaUF5SURBZ01DQXhMVEl0TWxZMVlUSWdNaUF3SURBZ01TQXlMVEpvTVRSaE1pQXlJREFnTUNBeElESWdNblkyWVRFZ01TQXdJREFnTVMweElERklNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFlnTVRZZ05TQTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaUF5TVNBMUxUVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ncmlkLTJ4Mi14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR3JpZDJ4Mlg6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE2IDUgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAyMSA1LTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR3JpZDJ4Mlg7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ3JpZC0yeDJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00zWXhPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1neE9DSWdMejRLSUNBOGNtVmpkQ0I0UFNJeklpQjVQU0l6SWlCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dyaWQtMngyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR3JpZDJ4MjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzdjE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJoMTgnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzMnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR3JpZDJ4MjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBncmlkLTN4MlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTTNZeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNbWd4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBemRqRTRJaUF2UGdvZ0lEeHlaV04wSUhnOUlqTWlJSGs5SWpNaUlIZHBaSFJvUFNJeE9DSWdhR1ZwWjJoMFBTSXhPQ0lnY25nOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ncmlkLTN4MlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdyaWQzeDI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM3YxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyaDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgM3YxOCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnMycsIHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHcmlkM3gyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGdyaWQtM3gzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEbG9NVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRWb01UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNM1l4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ00zWXhPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ3JpZC0zeDNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHcmlkM3gzOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1aDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgM3YxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzdjE4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdyaWQzeDM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgZ3JpcC1ob3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqa2lJSEk5SWpFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1Ua2lJR041UFNJNUlpQnlQU0l4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpVaUlHTjVQU0k1SWlCeVBTSXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVFVpSUhJOUlqRWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVGtpSUdONVBTSXhOU0lnY2owaU1TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTFJaUJqZVQwaU1UVWlJSEk5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dyaXAtaG9yaXpvbnRhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdyaXBIb3Jpem9udGFsOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzknLCByOiAnMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICc5JywgcjogJzEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICc5JywgcjogJzEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTUnLCByOiAnMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICcxNScsIHI6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnMTUnLCByOiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHcmlwSG9yaXpvbnRhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBncmlwLXZlcnRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTVJaUJqZVQwaU1USWlJSEk5SWpFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU9TSWdZM2s5SWpVaUlISTlJakVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpT1NJZ1kzazlJakU1SWlCeVBTSXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUxSWlCamVUMGlNVElpSUhJOUlqRWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVFVpSUdONVBTSTFJaUJ5UFNJeElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTFJaUJqZVQwaU1Ua2lJSEk5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dyaXAtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBHcmlwVmVydGljYWw6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICcxMicsIHI6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnNScsIHI6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnMTknLCByOiAnMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE1JywgY3k6ICcxMicsIHI6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTUnLCBjeTogJzUnLCByOiAnMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE1JywgY3k6ICcxOScsIHI6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEdyaXBWZXJ0aWNhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBncmlwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqVWlJSEk5SWpFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1Ua2lJR041UFNJMUlpQnlQU0l4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpVaUlHTjVQU0kxSWlCeVBTSXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqRWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVGtpSUdONVBTSXhNaUlnY2owaU1TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSTFJaUJqZVQwaU1USWlJSEk5SWpFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE9TSWdjajBpTVNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE9TSWdZM2s5SWpFNUlpQnlQU0l4SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpVaUlHTjVQU0l4T1NJZ2NqMGlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ3JpcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEdyaXA6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnNScsIHI6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTknLCBjeTogJzUnLCByOiAnMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzUnLCByOiAnMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTknLCBjeTogJzEyJywgcjogJzEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICcxMicsIHI6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE5JywgcjogJzEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnMTknLCByOiAnMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzE5JywgcjogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR3JpcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBncm91cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEzVmpWak1DMHhMakV1T1MweUlESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFESmpNUzR4SURBZ01pQXVPU0F5SURKMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVGQyTW1Nd0lERXVNUzB1T1NBeUxUSWdNbWd0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeU1VZzFZeTB4TGpFZ01DMHlMUzQ1TFRJdE1uWXRNaUlnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJMUlpQjRQU0kzSWlCNVBTSTNJaUJ5ZUQwaU1TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0kxSWlCNFBTSXhNQ0lnZVQwaU1USWlJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dyb3VwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR3JvdXA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyA3VjVjMC0xLjEuOS0yIDItMmgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDNoMmMxLjEgMCAyIC45IDIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJjMCAxLjEtLjkgMi0yIDJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMUg1Yy0xLjEgMC0yLS45LTItMnYtMicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNScsIHg6ICc3JywgeTogJzcnLCByeDogJzEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzUnLCB4OiAnMTAnLCB5OiAnMTInLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgR3JvdXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGFtXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVNVFEwSURJeExqRTBORUUzTGpJM05DQXhNQzQwTkRVZ05EVWdNU0F3SURJdU9EVTJJREV3TGpnMU5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVNVFEwSURJeExqRTBORUUzTGpJM05DQTBMak0yTlNBME5TQXdJREFnTWk0NE5UWWdNVEF1T0RVMllUY3VNamMwSURRdU16WTFJRFExSURBZ01DQXhNQzR5T0RnZ01UQXVNamc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tmk0MU5qVWdNVEF1TkRNMUlERTRMallnT0M0MFlUSXVOVEF4SURJdU5UQXhJREFnTVNBd0lERXVOalV0TkM0Mk5TQXlMalVnTWk0MUlEQWdNU0F3TFRRdU5qWWdNUzQyTm13dE1pNHdNalFnTWk0d01qVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUZ3VOU0F4Tmk0MUxURXRNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFtXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGFtOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzLjE0NCAyMS4xNDRBNy4yNzQgMTAuNDQ1IDQ1IDEgMCAyLjg1NiAxMC44NTYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xMy4xNDQgMjEuMTQ0QTcuMjc0IDQuMzY1IDQ1IDAgMCAyLjg1NiAxMC44NTZhNy4yNzQgNC4zNjUgNDUgMCAwIDEwLjI4OCAxMC4yODgnIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNi41NjUgMTAuNDM1IDE4LjYgOC40YTIuNTAxIDIuNTAxIDAgMSAwIDEuNjUtNC42NSAyLjUgMi41IDAgMSAwLTQuNjYgMS42NmwtMi4wMjQgMi4wMjUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ204LjUgMTYuNS0xLTEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGFtO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGd1aXRhclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEV1T1NBeE1pNHhJRFF1TlRFMExUUXVOVEUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUM0eElESXVNMkV4SURFZ01DQXdJREF0TVM0MElEQnNMVEV1TVRFMElERXVNVEUwUVRJZ01pQXdJREFnTUNBeE55QTBMamd5T0hZeExqTTBOR0V5SURJZ01DQXdJREV0TGpVNE5pQXhMalF4TkVFeUlESWdNQ0F3SURFZ01UY3VPREk0SURkb01TNHpORFJoTWlBeUlEQWdNQ0F3SURFdU5ERTBMUzQxT0RaTU1qRXVOeUExTGpOaE1TQXhJREFnTUNBd0lEQXRNUzQwZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TmlBeE5pQXlJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGd1TWpNZ09TNDROVUV6SURNZ01DQXdJREVnTVRFZ09HRTFJRFVnTUNBd0lERWdOU0ExSURNZ015QXdJREFnTVMweExqZzFJREl1Tnpkc0xTNDVNaTR6T0VFeUlESWdNQ0F3SURBZ01USWdNVGhoTkNBMElEQWdNQ0F4TFRRZ05DQTJJRFlnTUNBd0lERXROaTAySURRZ05DQXdJREFnTVNBMExUUWdNaUF5SURBZ01DQXdJREV1T0RVdE1TNHlNM29pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvZ3VpdGFyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgR3VpdGFyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTExLjkgMTIuMSA0LjUxNC00LjUxNCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMC4xIDIuM2ExIDEgMCAwIDAtMS40IDBsLTEuMTE0IDEuMTE0QTIgMiAwIDAgMCAxNyA0LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMTcuODI4IDdoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMjEuNyA1LjNhMSAxIDAgMCAwIDAtMS40eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTYgMTYgMiAyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTguMjMgOS44NUEzIDMgMCAwIDEgMTEgOGE1IDUgMCAwIDEgNSA1IDMgMyAwIDAgMS0xLjg1IDIuNzdsLS45Mi4zOEEyIDIgMCAwIDAgMTIgMThhNCA0IDAgMCAxLTQgNCA2IDYgMCAwIDEtNi02IDQgNCAwIDAgMSA0LTQgMiAyIDAgMCAwIDEuODUtMS4yM3onLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBHdWl0YXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGFtYnVyZ2VyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFpJTkdFeUlESWdNQ0F4SURFZ01DMDBhREUyWVRJZ01pQXdJREVnTVNBd0lEUm9MVFF1TWpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ01USmhNaUF5SURBZ01DQXhMVEl0TWlBNUlEY2dNQ0F3SURFZ01UZ2dNQ0F5SURJZ01DQXdJREV0TWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlERTJZVElnTWlBd0lEQWdNQzB5SURJZ015QXpJREFnTUNBd0lETWdNMmd4TW1FeklETWdNQ0F3SURBZ015MHpJRElnTWlBd0lEQWdNQzB5TFRKeE1DQXdJREFnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0Tmk0Mk55QXhNaUEyTGpFeklEUXVObUV5SURJZ01DQXdJREFnTWk0NExTNDBiRE11TVRVdE5DNHlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oYW1idXJnZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIYW1idXJnZXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZINGEyIDIgMCAxIDEgMC00aDE2YTIgMiAwIDEgMSAwIDRoLTQuMjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMmEyIDIgMCAwIDEtMi0yIDkgNyAwIDAgMSAxOCAwIDIgMiAwIDAgMS0yIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxNmEyIDIgMCAwIDAtMiAyIDMgMyAwIDAgMCAzIDNoMTJhMyAzIDAgMCAwIDMtMyAyIDIgMCAwIDAtMi0ycTAgMCAwIDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNi42NyAxMiA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhhbWJ1cmdlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoYW1tZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ01USXRPUzR6TnpNZ09TNHpOek5oTVNBeElEQWdNQ0F4TFRNdU1EQXhMVE5NTVRJZ09TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dNVFVnTkMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TNDFJREV4TGpVdE1TNDVNVFF0TVM0NU1UUkJNaUF5SURBZ01DQXhJREU1SURndU1UY3lkaTB1TXpRMFlUSWdNaUF3SURBZ01DMHVOVGcyTFRFdU5ERTBiQzB4TGpZMU55MHhMalkxTjBFMklEWWdNQ0F3SURBZ01USXVOVEUySUROSU9Xd3hMakkwTXlBeExqSTBNMEUySURZZ01DQXdJREVnTVRJZ09DNDBPRFZXTVRCc01pQXlhREV1TVRjeVlUSWdNaUF3SURBZ01TQXhMalF4TkM0MU9EWk1NVGd1TlNBeE5DNDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oYW1tZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIYW1tZXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTItOS4zNzMgOS4zNzNhMSAxIDAgMCAxLTMuMDAxLTNMMTIgOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOCAxNSA0LTQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMjEuNSAxMS41LTEuOTE0LTEuOTE0QTIgMiAwIDAgMSAxOSA4LjE3MnYtLjM0NGEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtMS42NTctMS42NTdBNiA2IDAgMCAwIDEyLjUxNiAzSDlsMS4yNDMgMS4yNDNBNiA2IDAgMCAxIDEyIDguNDg1VjEwbDIgMmgxLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2TDE4LjUgMTQuNScsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhhbW1lcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoYW5kLWNvaW5zXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVFZvTW1FeUlESWdNQ0F4SURBZ01DMDBhQzB6WXkwdU5pQXdMVEV1TVM0eUxURXVOQzQyVERNZ01UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY2dNakVnTVM0MkxURXVOR011TXkwdU5DNDRMUzQySURFdU5DMHVObWcwWXpFdU1TQXdJREl1TVMwdU5DQXlMamd0TVM0eWJEUXVOaTAwTGpSaE1pQXlJREFnTUNBd0xUSXVOelV0TWk0NU1Xd3ROQzR5SURNdU9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXhOaUEySURZaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UWWlJR041UFNJNUlpQnlQU0l5TGpraUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5pSWdZM2s5SWpVaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFuZC1jb2luc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhhbmRDb2luczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxNWgyYTIgMiAwIDEgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ203IDIxIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTIgMiAwIDAgMC0yLjc1LTIuOTFsLTQuMiAzLjknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDE2IDYgNicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE2JywgY3k6ICc5JywgcjogJzIuOScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzUnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIYW5kQ29pbnM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGFuZC1maXN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVNRE0xSURFM0xqQXhNbUV6SURNZ01DQXdJREF0TXkwemJDMHVNekV4TFM0d01ESmhMamN5TGpjeUlEQWdNQ0F4TFM0MU1EVXRNUzR5TWpsc01TNHhPVFV0TVM0eE9UVkJNaUF5SURBZ01DQXhJREV3TGpneU9DQXhNVWd4TW1FeUlESWdNQ0F3SURBZ01DMDBTRGt1TWpRellUTWdNeUF3SURBZ01DMHlMakV5TWk0NE56bHNMVEl1TnpBM0lESXVOekEzUVRRdU9ETWdOQzQ0TXlBd0lEQWdNQ0F6SURFMFlUZ2dPQ0F3SURBZ01DQTRJRGhvTW1FNElEZ2dNQ0F3SURBZ09DMDRWamRoTWlBeUlEQWdNU0F3TFRRZ01IWXlZVElnTWlBd0lERWdNQ0EwSURBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFekxqZzRPQ0E1TGpZMk1rRXlJRElnTUNBd0lEQWdNVGNnT0ZZMVFUSWdNaUF3SURFZ01DQXhNeUExSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURWQk1pQXlJREFnTVNBd0lEVWdOVll4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBM1ZqUkJNaUF5SURBZ01TQXhJREV6SURSV055NHlOamdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFuZC1maXN0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGFuZEZpc3Q6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuMDM1IDE3LjAxMmEzIDMgMCAwIDAtMy0zbC0uMzExLS4wMDJhLjcyLjcyIDAgMCAxLS41MDUtMS4yMjlsMS4xOTUtMS4xOTVBMiAyIDAgMCAxIDEwLjgyOCAxMUgxMmEyIDIgMCAwIDAgMC00SDkuMjQzYTMgMyAwIDAgMC0yLjEyMi44NzlsLTIuNzA3IDIuNzA3QTQuODMgNC44MyAwIDAgMCAzIDE0YTggOCAwIDAgMCA4IDhoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHYyYTIgMiAwIDEgMCA0IDAnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy44ODggOS42NjJBMiAyIDAgMCAwIDE3IDhWNUEyIDIgMCAxIDAgMTMgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDVBMiAyIDAgMSAwIDUgNVYxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDdWNEEyIDIgMCAxIDEgMTMgNFY3LjI2OCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIYW5kRmlzdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoYW5kLWdyYWJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01URXVOVlk1WVRJZ01pQXdJREFnTUMweUxUSmhNaUF5SURBZ01DQXdMVElnTW5ZeExqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREV3VmpoaE1pQXlJREFnTUNBd0xUSXRNbUV5SURJZ01DQXdJREF0TWlBeWRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJRGt1T1ZZNVlUSWdNaUF3SURBZ01DMHlMVEpoTWlBeUlEQWdNQ0F3TFRJZ01uWTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREUwWVRJZ01pQXdJREFnTUMweUxUSmhNaUF5SURBZ01DQXdMVElnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01URmhNaUF5SURBZ01TQXhJRFFnTUhZellUZ2dPQ0F3SURBZ01TMDRJRGhvTFRSaE9DQTRJREFnTUNBeExUZ3RPQ0F5SURJZ01DQXhJREVnTkNBd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hhbmQtZ3JhYlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhhbmRHcmFiOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDExLjVWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEwVjhhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOS45VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTFhMiAyIDAgMSAxIDQgMHYzYTggOCAwIDAgMS04IDhoLTRhOCA4IDAgMCAxLTgtOCAyIDIgMCAxIDEgNCAwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhhbmRHcmFiO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhhbmQtaGVhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01UUm9NbUV5SURJZ01DQXdJREFnTUMwMGFDMHpZeTB1TmlBd0xURXVNUzR5TFRFdU5DNDJURE1nTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMExqUTFJREV6TGpNNUlEVXVNRFV0TkM0Mk9UUkRNakF1TVRrMklEZ2dNakVnTmk0NE5TQXlNU0ExTGpjMVlUSXVOelVnTWk0M05TQXdJREFnTUMwMExqYzVOeTB4TGpnek55NHlOell1TWpjMklEQWdNQ0F4TFM0ME1EWWdNRUV5TGpjMUlESXVOelVnTUNBd0lEQWdNVEVnTlM0M05XTXdJREV1TWk0NE1ESWdNaTR5TkRnZ01TNDFJREl1T1RRMlRERTJJREV4TGprMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUlERTFJRFlnTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TnlBeU1DQXhMall0TVM0MFl5NHpMUzQwTGpndExqWWdNUzQwTFM0MmFEUmpNUzR4SURBZ01pNHhMUzQwSURJdU9DMHhMakpzTkM0MkxUUXVOR0V4SURFZ01DQXdJREF0TWk0M05TMHlMamt4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFuZC1oZWFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhhbmRIZWFydDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxNGgyYTIgMiAwIDAgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNC40NSAxMy4zOSA1LjA1LTQuNjk0QzIwLjE5NiA4IDIxIDYuODUgMjEgNS43NWEyLjc1IDIuNzUgMCAwIDAtNC43OTctMS44MzcuMjc2LjI3NiAwIDAgMS0uNDA2IDBBMi43NSAyLjc1IDAgMCAwIDExIDUuNzVjMCAxLjIuODAyIDIuMjQ4IDEuNSAyLjk0NkwxNiAxMS45NScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMTUgNiA2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdtNyAyMCAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGExIDEgMCAwIDAtMi43NS0yLjkxJyB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGFuZEhlYXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhhbmQtaGVscGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRKb01tRXlJRElnTUNBeElEQWdNQzAwYUMwell5MHVOaUF3TFRFdU1TNHlMVEV1TkM0MlRETWdNVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGNnTVRnZ01TNDJMVEV1TkdNdU15MHVOQzQ0TFM0MklERXVOQzB1Tm1nMFl6RXVNU0F3SURJdU1TMHVOQ0F5TGpndE1TNHliRFF1TmkwMExqUmhNaUF5SURBZ01DQXdMVEl1TnpVdE1pNDVNV3d0TkM0eUlETXVPU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF4TXlBMklEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oYW5kLWhlbHBpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIYW5kSGVscGluZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxMmgyYTIgMiAwIDEgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ203IDE4IDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTIgMiAwIDAgMC0yLjc1LTIuOTFsLTQuMiAzLjknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDEzIDYgNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIYW5kSGVscGluZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoYW5kLW1ldGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVEl1TlZZeE1HRXlJRElnTUNBd0lEQXRNaTB5WVRJZ01pQXdJREFnTUMweUlESjJNUzQwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE1WWTVZVElnTWlBd0lERWdNQzAwSURCMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEF1TlZZMVlUSWdNaUF3SURFZ01DMDBJREIyT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TnlBeE5TMHhMamMyTFRFdU56WmhNaUF5SURBZ01DQXdMVEl1T0RNZ01pNDRNbXd6TGpZZ015NDJRemN1TlNBeU1TNHhOQ0E1TGpJZ01qSWdNVElnTWpKb01tRTRJRGdnTUNBd0lEQWdPQzA0VmpkaE1pQXlJREFnTVNBd0xUUWdNSFkxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFuZC1tZXRhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhhbmRNZXRhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMi41VjEwYTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxLjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTFWOWEyIDIgMCAxIDAtNCAwdjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTAuNVY1YTIgMiAwIDEgMC00IDB2OScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ203IDE1LTEuNzYtMS43NmEyIDIgMCAwIDAtMi44MyAyLjgybDMuNiAzLjZDNy41IDIxLjE0IDkuMiAyMiAxMiAyMmgyYTggOCAwIDAgMCA4LThWN2EyIDIgMCAxIDAtNCAwdjUnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIYW5kTWV0YWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGFuZC1wbGF0dGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNMVl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlM0MElERTNMalFnTXk0eUxUSXVPR0V5SURJZ01DQXhJREVnTWk0NElESXVPV3d0TXk0MklETXVNMk10TGpjdU9DMHhMamNnTVM0eUxUSXVPQ0F4TGpKb0xUUmpMVEV1TVNBd0xUSXVNUzB1TkMweUxqZ3RNUzR5YkMweExqTXdNaTB4TGpRMk5FRXhJREVnTUNBd0lEQWdOaTR4TlRFZ01UbElOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TkdneE1tRXlJRElnTUNBd0lERWdNQ0EwYUMweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERXdhREUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURFd1lUY2dOeUF3SURBZ01TQXhOQ0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURFMGRqWmhNU0F4SURBZ01DQXhMVEVnTVVneUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hhbmQtcGxhdHRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhhbmRQbGF0dGVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDNWMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNS40IDE3LjQgMy4yLTIuOGEyIDIgMCAxIDEgMi44IDIuOWwtMy42IDMuM2MtLjcuOC0xLjcgMS4yLTIuOCAxLjJoLTRjLTEuMSAwLTIuMS0uNC0yLjgtMS4ybC0xLjMwMi0xLjQ2NEExIDEgMCAwIDAgNi4xNTEgMTlINScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTRoMTJhMiAyIDAgMCAxIDAgNGgtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDEwaDE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTBhNyA3IDAgMCAxIDE0IDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxNHY2YTEgMSAwIDAgMS0xIDFIMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIYW5kUGxhdHRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoYW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVEZXTm1FeUlESWdNQ0F3SURBdE1pMHlZVElnTWlBd0lEQWdNQzB5SURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElERXdWalJoTWlBeUlEQWdNQ0F3TFRJdE1tRXlJRElnTUNBd0lEQXRNaUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERXdMalZXTm1FeUlESWdNQ0F3SURBdE1pMHlZVElnTWlBd0lEQWdNQzB5SURKMk9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dPR0V5SURJZ01DQXhJREVnTkNBd2RqWmhPQ0E0SURBZ01DQXhMVGdnT0dndE1tTXRNaTQ0SURBdE5DNDFMUzQ0TmkwMUxqazVMVEl1TXpSc0xUTXVOaTB6TGpaaE1pQXlJREFnTUNBeElESXVPRE10TWk0NE1rdzNJREUxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhhbmQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTFWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTBWNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMC41VjZhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTggOGEyIDIgMCAxIDEgNCAwdjZhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGFuZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoYW5kYmFnXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNHdORGdnTVRndU5UWTJRVElnTWlBd0lEQWdNQ0EwSURJeGFERTJZVElnTWlBd0lEQWdNQ0F4TGprMU1pMHlMalF6Tkd3dE1pMDVRVElnTWlBd0lEQWdNQ0F4T0NBNFNEWmhNaUF5SURBZ01DQXdMVEV1T1RVeUlERXVOVFkyZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1WWTJZVFFnTkNBd0lEQWdNU0E0SURCMk5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oYW5kYmFnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGFuZGJhZzogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjA0OCAxOC41NjZBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTUyLTIuNDM0bC0yLTlBMiAyIDAgMCAwIDE4IDhINmEyIDIgMCAwIDAtMS45NTIgMS41NjZ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMVY2YTQgNCAwIDAgMSA4IDB2NScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIYW5kYmFnO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhhbmRzaGFrZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEVnTVRjZ01pQXlZVEVnTVNBd0lERWdNQ0F6TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMElERTBJREl1TlNBeUxqVmhNU0F4SURBZ01TQXdJRE10TTJ3dE15NDRPQzB6TGpnNFlUTWdNeUF3SURBZ01DMDBMakkwSURCc0xTNDRPQzQ0T0dFeElERWdNQ0F4SURFdE15MHpiREl1T0RFdE1pNDRNV0UxTGpjNUlEVXVOemtnTUNBd0lERWdOeTR3TmkwdU9EZHNMalEzTGpJNFlUSWdNaUF3SURBZ01DQXhMalF5TGpJMVRESXhJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl4SURNZ01TQXhNV2d0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeklESWdNVFJzTmk0MUlEWXVOV0V4SURFZ01DQXhJREFnTXkweklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEUm9PQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFuZHNoYWtlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGFuZHNoYWtlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTExIDE3IDIgMmExIDEgMCAxIDAgMy0zJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE0IDE0IDIuNSAyLjVhMSAxIDAgMSAwIDMtM2wtMy44OC0zLjg4YTMgMyAwIDAgMC00LjI0IDBsLS44OC44OGExIDEgMCAxIDEtMy0zbDIuODEtMi44MWE1Ljc5IDUuNzkgMCAwIDEgNy4wNi0uODdsLjQ3LjI4YTIgMiAwIDAgMCAxLjQyLjI1TDIxIDQnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAzIDEgMTFoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzIDIgMTRsNi41IDYuNWExIDEgMCAxIDAgMy0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNGg4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhhbmRzaGFrZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoYXJkLWRyaXZlLWRvd25sb2FkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNblk0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TmlBMkxUUWdOQzAwTFRRaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqSXdJaUJvWldsbmFIUTlJamdpSUhnOUlqSWlJSGs5SWpFMElpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE9HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFNGFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFyZC1kcml2ZS1kb3dubG9hZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhhcmREcml2ZURvd25sb2FkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiA2LTQgNC00LTQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc4JywgeDogJzInLCB5OiAnMTQnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMThoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhhcmREcml2ZURvd25sb2FkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhhcmQtZHJpdmUtdXBsb2FkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdOaTAwTFRRdE5DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5ZGpnaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqSXdJaUJvWldsbmFIUTlJamdpSUhnOUlqSWlJSGs5SWpFMElpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE9HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFNGFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFyZC1kcml2ZS11cGxvYWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIYXJkRHJpdmVVcGxvYWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgNi00LTQtNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2OCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzgnLCB4OiAnMicsIHk6ICcxNCcsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxOGguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGFyZERyaXZlVXBsb2FkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhhcmQtaGF0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEJXTldFeElERWdNQ0F3SURFZ01TMHhhREpoTVNBeElEQWdNQ0F4SURFZ01YWTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0EyWVRZZ05pQXdJREFnTVNBMklEWjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TlhZdE0yRTJJRFlnTUNBd0lERWdOaTAySWlBdlBnb2dJRHh5WldOMElIZzlJaklpSUhrOUlqRTFJaUIzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTkNJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFyZC1oYXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIYXJkSGF0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEwVjVhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA2YTYgNiAwIDAgMSA2IDZ2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE1di0zYTYgNiAwIDAgMSA2LTYnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzE1Jywgd2lkdGg6ICcyMCcsIGhlaWdodDogJzQnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGFyZEhhdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoYXNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU5DSWdlREk5SWpJd0lpQjVNVDBpT1NJZ2VUSTlJamtpSUM4K0NpQWdQR3hwYm1VZ2VERTlJalFpSUhneVBTSXlNQ0lnZVRFOUlqRTFJaUI1TWowaU1UVWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRXdJaUI0TWowaU9DSWdlVEU5SWpNaUlIa3lQU0l5TVNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRZaUlIZ3lQU0l4TkNJZ2VURTlJak1pSUhreVBTSXlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGFzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhhc2g6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnNCcsIHgyOiAnMjAnLCB5MTogJzknLCB5MjogJzknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNCcsIHgyOiAnMjAnLCB5MTogJzE1JywgeTI6ICcxNScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMCcsIHgyOiAnOCcsIHkxOiAnMycsIHkyOiAnMjEnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTYnLCB4MjogJzE0JywgeTE6ICczJywgeTI6ICcyMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIYXNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhhcmQtZHJpdmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTWpJaUlIZ3lQU0l5SWlCNU1UMGlNVElpSUhreVBTSXhNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OUzQwTlNBMUxqRXhJRElnTVRKMk5tRXlJRElnTUNBd0lEQWdNaUF5YURFMllUSWdNaUF3SURBZ01DQXlMVEoyTFRac0xUTXVORFV0Tmk0NE9VRXlJRElnTUNBd0lEQWdNVFl1TnpZZ05FZzNMakkwWVRJZ01pQXdJREFnTUMweExqYzVJREV1TVRGNklpQXZQZ29nSUR4c2FXNWxJSGd4UFNJMklpQjRNajBpTmk0d01TSWdlVEU5SWpFMklpQjVNajBpTVRZaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFd0lpQjRNajBpTVRBdU1ERWlJSGt4UFNJeE5pSWdlVEk5SWpFMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hhcmQtZHJpdmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIYXJkRHJpdmU6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMjInLCB4MjogJzInLCB5MTogJzEyJywgeTI6ICcxMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ001LjQ1IDUuMTEgMiAxMnY2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNmwtMy40NS02Ljg5QTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXonLFxuICAgIH0sXG4gIF0sXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc2LjAxJywgeTE6ICcxNicsIHkyOiAnMTYnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTAnLCB4MjogJzEwLjAxJywgeTE6ICcxNicsIHkyOiAnMTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGFyZERyaXZlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhhdC1nbGFzc2VzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVGhoTWlBeUlEQWdNQ0F3TFRRZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1Ua2dNVEV0TWk0eE1TMDJMalkxTjJFeUlESWdNQ0F3SURBdE1pNDNOVEl0TVM0eE5EaHNMVEV1TWpjMkxqWXhRVElnTWlBd0lEQWdNU0F4TWlBMFNEZ3VOV0V5SURJZ01DQXdJREF0TVM0NU1qVWdNUzQwTlRaTU5TQXhNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TVdneU1DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOeUlnWTNrOUlqRTRJaUJ5UFNJeklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqY2lJR041UFNJeE9DSWdjajBpTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hhdC1nbGFzc2VzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGF0R2xhc3NlczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxOGEyIDIgMCAwIDAtNCAwJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE5IDExLTIuMTEtNi42NTdhMiAyIDAgMCAwLTIuNzUyLTEuMTQ4bC0xLjI3Ni42MUEyIDIgMCAwIDEgMTIgNEg4LjVhMiAyIDAgMCAwLTEuOTI1IDEuNDU2TDUgMTEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDExaDIwJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcnLCBjeTogJzE4JywgcjogJzMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3JywgY3k6ICcxOCcsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhhdEdsYXNzZXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGF6ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROUzR5SURZdU1pQXhMalFnTVM0MElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXphRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3SURFemFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNMalFnTnk0MklERXVOQzB4TGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlERTNTRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURJeFNESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV6WVRRZ05DQXdJREFnTUMwNElEQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRFZXTWk0MUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hhemVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIYXplOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTUuMiA2LjIgMS40IDEuNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEzaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTNoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNy40IDcuNiAxLjQtMS40JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDE3SDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMjFIMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxM2E0IDQgMCAwIDAtOCAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDVWMi41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhhemU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01USklOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRWV09TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVFF1TldFdU5TNDFJREFnTUNBd0lDNDFMalZvTVdFeUxqVWdNaTQxSURBZ01DQXdJREl1TlMweUxqVjJMVEZCTWk0MUlESXVOU0F3SURBZ01DQXhOUzQxSURsb0xURmhMalV1TlNBd0lEQWdNQzB1TlM0MWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhOVlk1SWlBdlBnb2dJRHh5WldOMElIZzlJaklpSUhrOUlqVWlJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0l4TkNJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMkg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE1VjknIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQgMTQuNWEuNS41IDAgMCAwIC41LjVoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFBMi41IDIuNSAwIDAgMCAxNS41IDloLTFhLjUuNSAwIDAgMC0uNS41eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTVWOScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnNScsIHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoZG1pLXBvcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ09XRXhJREVnTUNBd0lEQXRNUzB4U0ROaE1TQXhJREFnTUNBd0xURWdNWFkwWVRFZ01TQXdJREFnTUNBeElERm9NV3d5SURKb01USnNNaTB5YURGaE1TQXhJREFnTUNBd0lERXRNVm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGN1TlNBeE1tZzVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZG1pLXBvcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIZG1pUG9ydDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTIyIDlhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDFsMiAyaDEybDItMmgxYTEgMSAwIDAgMCAxLTFaJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNy41IDEyaDknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGRtaVBvcnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGVhZGluZy0xXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFNFZqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREU0VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0lERXlJRE10TW5ZNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYWRpbmctMVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhlYWRpbmcxOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE4VjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThWNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxMiAzLTJ2OCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFkaW5nMTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoZWFkaW5nLTNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1tZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREU0VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTRWallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzTGpVZ01UQXVOV014TGpjdE1TQXpMalVnTUNBekxqVWdNUzQxWVRJZ01pQXdJREFnTVMweUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREUzTGpWak1pQXhMalVnTkNBdU15QTBMVEV1TldFeUlESWdNQ0F3SURBdE1pMHlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZWFkaW5nLTNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIZWFkaW5nMzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDEyaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxOFY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4VjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNSAxMC41YzEuNy0xIDMuNSAwIDMuNSAxLjVhMiAyIDAgMCAxLTIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNy41YzIgMS41IDQgLjMgNC0xLjVhMiAyIDAgMCAwLTItMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFkaW5nMztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoZWFkaW5nLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1tZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREU0VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTRWallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFNGFDMDBZekF0TkNBMExUTWdOQzAySURBdE1TNDFMVEl0TWk0MUxUUXRNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGVhZGluZy0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGVhZGluZzI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMThWNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOFY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE4aC00YzAtNCA0LTMgNC02IDAtMS41LTItMi41LTQtMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFkaW5nMjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoZWFkaW5nLTRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UaFdOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRCMk0yRXhJREVnTUNBd0lEQWdNU0F4YURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERXdkamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTVRKb09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPRlkySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGVhZGluZy00XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGVhZGluZzQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThWNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMHYzYTEgMSAwIDAgMCAxIDFoMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMHY4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE4VjYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhZGluZzQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGVhZGluZy01XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFNFZqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREU0VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lERXpkaTB6YURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lERTNMamRqTGpRdU1pNDRMak1nTVM0ekxqTWdNUzQxSURBZ01pNDNMVEV1TVNBeUxqY3RNaTQxVXpFNUxqZ2dNVE1nTVRndU15QXhNMGd4TnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYWRpbmctNVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhlYWRpbmc1OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE4VjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThWNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxM3YtM2g0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE3LjdjLjQuMi44LjMgMS4zLjMgMS41IDAgMi43LTEuMSAyLjctMi41UzE5LjggMTMgMTguMyAxM0gxNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFkaW5nNTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoZWFkaW5nLTZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1tZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREU0VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTRWallpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRraUlHTjVQU0l4TmlJZ2NqMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRCakxUSWdNaTB6SURNdU5TMHpJRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGVhZGluZy02XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGVhZGluZzY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMThWNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOFY2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTknLCBjeTogJzE2JywgcjogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTBjLTIgMi0zIDMuNS0zIDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhZGluZzY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGVhZGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUF4TW1neE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXlNRlkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeU1GWTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZWFkaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGVhZGluZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaDEyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMjBWNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMFY0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRpbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGVhZHBob25lLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRSb0xURXVNelF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1TGpFeU9DQXpMalEzUVRrZ09TQXdJREFnTVNBeU1TQXhNbll6TGpNME15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNDBNVFFnTWpBdU5ERTBRVElnTWlBd0lEQWdNU0F4T1NBeU1XZ3RNV0V5SURJZ01DQXdJREV0TWkweWRpMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUwYUROaE1pQXlJREFnTUNBeElESWdNbll6WVRJZ01pQXdJREFnTVMweUlESklOV0V5SURJZ01DQXdJREV0TWkweWRpMDNZVGtnT1NBd0lEQWdNU0F5TGpZek5pMDJMak0yTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYWRwaG9uZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIZWFkcGhvbmVPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTRoLTEuMzQzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuMTI4IDMuNDdBOSA5IDAgMCAxIDIxIDEydjMuMzQzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC40MTQgMjAuNDE0QTIgMiAwIDAgMSAxOSAyMWgtMWEyIDIgMCAwIDEtMi0ydi0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTRoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTdhOSA5IDAgMCAxIDIuNjM2LTYuMzY0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRwaG9uZU9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoZWFkcGhvbmVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXhOR2d6WVRJZ01pQXdJREFnTVNBeUlESjJNMkV5SURJZ01DQXdJREV0TWlBeVNEVmhNaUF5SURBZ01DQXhMVEl0TW5ZdE4yRTVJRGtnTUNBd0lERWdNVGdnTUhZM1lUSWdNaUF3SURBZ01TMHlJREpvTFRGaE1pQXlJREFnTUNBeExUSXRNbll0TTJFeUlESWdNQ0F3SURFZ01pMHlhRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGVhZHBob25lc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhlYWRwaG9uZXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMyAxNGgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtN2E5IDkgMCAwIDEgMTggMHY3YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDMnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFkcGhvbmVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhlYWRzZXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1XZ3pZVElnTWlBd0lEQWdNU0F5SURKMk0yRXlJRElnTUNBd0lERXRNaUF5U0RWaE1pQXlJREFnTUNBeExUSXRNbll0TlZwdE1DQXdZVGtnT1NBd0lERWdNU0F4T0NBd2JUQWdNSFkxWVRJZ01pQXdJREFnTVMweUlESm9MVEZoTWlBeUlEQWdNQ0F4TFRJdE1uWXRNMkV5SURJZ01DQXdJREVnTWkweWFETmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4Tm5ZeVlUUWdOQ0F3SURBZ01TMDBJRFJvTFRVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYWRzZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIZWFkc2V0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMgMTFoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTVabTAgMGE5IDkgMCAxIDEgMTggMG0wIDB2NWEyIDIgMCAwIDEtMiAyaC0xYTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmgzWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE2djJhNCA0IDAgMCAxLTQgNGgtNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFkc2V0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhlYXJ0LWNyYWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVOREE1SURVdU9ESTBZeTB1TnpBeUxqYzVNaTB4TGpFMUlERXVORGsyTFRFdU5ERTFJREl1TVRZMmJESXVNVFV6SURJdU1UVTJZUzQxTGpVZ01DQXdJREVnTUNBdU56QTNiQzB5TGpJNU15QXlMakk1TTJFdU5TNDFJREFnTUNBd0lEQWdMamN3TjB3eE1pQXhOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE11TlRBNElESXdMak14TTJFeUlESWdNQ0F3SURFdE15QXVNREU1VERVZ01UVmpMVEV1TlMweExqVXRNeTB6TGpJdE15MDFMalZoTlM0MUlEVXVOU0F3SURBZ01TQTVMalU1TVMwekxqWTNOeTQyTGpZZ01DQXdJREFnTGpneE9DNHdNREZCTlM0MUlEVXVOU0F3SURBZ01TQXlNaUE1TGpWak1DQXlMakk1TFRFdU5TQTBMVE1nTlM0MWVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZWFydC1jcmFja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhlYXJ0Q3JhY2s6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuNDA5IDUuODI0Yy0uNzAyLjc5Mi0xLjE1IDEuNDk2LTEuNDE1IDIuMTY2bDIuMTUzIDIuMTU2YS41LjUgMCAwIDEgMCAuNzA3bC0yLjI5MyAyLjI5M2EuNS41IDAgMCAwIDAgLjcwN0wxMiAxNScsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjUwOCAyMC4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzcuNi42IDAgMCAwIC44MTguMDAxQTUuNSA1LjUgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNXonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIZWFydENyYWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhlYXJ0LWhhbmRzaGFrZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGt1TkRFMElERTBMalF4TkVNeU1TQXhNaTQ0TWpnZ01qSWdNVEV1TlNBeU1pQTVMalZoTlM0MUlEVXVOU0F3SURBZ01DMDVMalU1TVMwekxqWTNOaTQyTGpZZ01DQXdJREV0TGpneE9DNHdNREZCTlM0MUlEVXVOU0F3SURBZ01DQXlJRGt1TldNd0lESXVNeUF4TGpVZ05DQXpJRFV1Tld3MUxqVXpOU0ExTGpNMk1tRXlJRElnTUNBd0lEQWdNaTQ0TnprdU1EVXlJREl1TVRJZ01pNHhNaUF3SURBZ01DMHVNREEwTFRNZ01pNHhNalFnTWk0eE1qUWdNQ0F4SURBZ015MHpJREl1TVRJMElESXVNVEkwSURBZ01DQXdJRE11TURBMElEQWdNaUF5SURBZ01DQXdJREF0TWk0NE1qaHNMVEV1T0RneExURXVPRGd5WVRJdU5ERWdNaTQwTVNBd0lEQWdNQzB6TGpRd09TQXdiQzB4TGpjeElERXVOekZoTWlBeUlEQWdNQ0F4TFRJdU9ESTRJREFnTWlBeUlEQWdNQ0F4SURBdE1pNDRNamhzTWk0NE1qTXRNaTQzTmpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYXJ0LWhhbmRzaGFrZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhlYXJ0SGFuZHNoYWtlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE5LjQxNCAxNC40MTRDMjEgMTIuODI4IDIyIDExLjUgMjIgOS41YTUuNSA1LjUgMCAwIDAtOS41OTEtMy42NzYuNi42IDAgMCAxLS44MTguMDAxQTUuNSA1LjUgMCAwIDAgMiA5LjVjMCAyLjMgMS41IDQgMyA1LjVsNS41MzUgNS4zNjJhMiAyIDAgMCAwIDIuODc5LjA1MiAyLjEyIDIuMTIgMCAwIDAtLjAwNC0zIDIuMTI0IDIuMTI0IDAgMSAwIDMtMyAyLjEyNCAyLjEyNCAwIDAgMCAzLjAwNCAwIDIgMiAwIDAgMCAwLTIuODI4bC0xLjg4MS0xLjg4MmEyLjQxIDIuNDEgMCAwIDAtMy40MDkgMGwtMS43MSAxLjcxYTIgMiAwIDAgMS0yLjgyOCAwIDIgMiAwIDAgMSAwLTIuODI4bDIuODIzLTIuNzYyJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhcnRIYW5kc2hha2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGVhcnQtbWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRRdU9EYzJJREU0TGprNUxURXVNelk0SURFdU16SXpZVElnTWlBd0lEQWdNUzB6SUM0d01UbE1OU0F4TldNdE1TNDFMVEV1TlMwekxUTXVNaTB6TFRVdU5XRTFMalVnTlM0MUlEQWdNQ0F4SURrdU5Ua3hMVE11TmpjMkxqVTJMalUySURBZ01DQXdJQzQ0TVRnZ01FRTFMalE1SURVdU5Ea2dNQ0F3SURFZ01qSWdPUzQxWVRVdU1pQTFMaklnTUNBd0lERXRMakkwTkNBeExqVTNNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTVRWb05pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZWFydC1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhlYXJ0TWludXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTQuODc2IDE4Ljk5LTEuMzY4IDEuMzIzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YTUuMiA1LjIgMCAwIDEtLjI0NCAxLjU3MicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE1aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhcnRNaW51cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoZWFydC1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU5TQTBMamc1TTJFMUxqVWdOUzQxSURBZ01DQXhJREV1TURreExqa3pNUzQxTmk0MU5pQXdJREFnTUNBdU9ERTRJREJCTlM0ME9TQTFMalE1SURBZ01DQXhJREl5SURrdU5XTXdJREV1T0RjeUxURXVNREF5SURNdU16VTJMVEl1TVRnM0lEUXVOalUxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4Tmk0NU5qY2dNVFl1T1RZM0xUTXVORFU1SURNdU16UTJZVElnTWlBd0lEQWdNUzB6SUM0d01UbE1OU0F4TldNdE1TNDFMVEV1TlMwekxUTXVNaTB6TFRVdU5XRTFMalVnTlM0MUlEQWdNQ0F4SURJdU56UTNMVFF1TnpZeElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUlESWdNakFnTWpBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYXJ0LW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhlYXJ0T2ZmOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjUgNC44OTNhNS41IDUuNSAwIDAgMSAxLjA5MS45MzEuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVjMCAxLjg3Mi0xLjAwMiAzLjM1Ni0yLjE4NyA0LjY1NScsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE2Ljk2NyAxNi45NjctMy40NTkgMy4zNDZhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgMi43NDctNC43NjEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhcnRPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGVhcnQtcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFF1TkRjNUlERTVMak0zTkMwdU9UY3hMamt6T1dFeUlESWdNQ0F3SURFdE15QXVNREU1VERVZ01UVmpMVEV1TlMweExqVXRNeTB6TGpJdE15MDFMalZoTlM0MUlEVXVOU0F3SURBZ01TQTVMalU1TVMwekxqWTNOaTQxTmk0MU5pQXdJREFnTUNBdU9ERTRJREJCTlM0ME9TQTFMalE1SURBZ01DQXhJREl5SURrdU5XRTFMaklnTlM0eUlEQWdNQ0F4TFM0eU1Ua2dNUzQwT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01UVm9OaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRKMk5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZWFydC1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGVhcnRQbHVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE0LjQ3OSAxOS4zNzQtLjk3MS45MzlhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVhNS4yIDUuMiAwIDAgMS0uMjE5IDEuNDknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxNWg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEydjYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhcnRQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhlYXJ0LXB1bHNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTVMalZoTlM0MUlEVXVOU0F3SURBZ01TQTVMalU1TVMwekxqWTNOaTQxTmk0MU5pQXdJREFnTUNBdU9ERTRJREJCTlM0ME9TQTFMalE1SURBZ01DQXhJREl5SURrdU5XTXdJREl1TWprdE1TNDFJRFF0TXlBMUxqVnNMVFV1TkRreUlEVXVNekV6WVRJZ01pQXdJREFnTVMweklDNHdNVGxNTlNBeE5XTXRNUzQxTFRFdU5TMHpMVE11TWkwekxUVXVOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeTR5TWlBeE0wZzVMalZzTGpVdE1TQXlJRFF1TlNBeUxUY2dNUzQxSURNdU5XZzFMakkzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGVhcnQtcHVsc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIZWFydFB1bHNlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgOS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVjMCAyLjI5LTEuNSA0LTMgNS41bC01LjQ5MiA1LjMxM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00zLjIyIDEzSDkuNWwuNS0xIDIgNC41IDItNyAxLjUgMy41aDUuMjcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhcnRQdWxzZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoZWF0ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ09HTXlMVE10TWkweklEQXROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFV1TlNBNFl6SXRNeTB5TFRNZ01DMDJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREV3YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhOR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTJkaTAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE5uWXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRaMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJRFpoTWlBeUlEQWdNQ0F4SURJZ01uWXhNR0V5SURJZ01DQXdJREV0TWlBeVNEUmhNaUF5SURBZ01DQXhMVEl0TWxZNFlUSWdNaUF3SURBZ01TQXlMVEpvTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeU1IWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F5TUhZeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlYXRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhlYXRlcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSA4YzItMy0yLTMgMC02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1LjUgOGMyLTMtMi0zIDAtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEwaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE0aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNnYtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNnYtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNnYtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDIwdjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhdGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhlYXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTVMalZoTlM0MUlEVXVOU0F3SURBZ01TQTVMalU1TVMwekxqWTNOaTQxTmk0MU5pQXdJREFnTUNBdU9ERTRJREJCTlM0ME9TQTFMalE1SURBZ01DQXhJREl5SURrdU5XTXdJREl1TWprdE1TNDFJRFF0TXlBMUxqVnNMVFV1TkRreUlEVXVNekV6WVRJZ01pQXdJREFnTVMweklDNHdNVGxNTlNBeE5XTXRNUzQxTFRFdU5TMHpMVE11TWkwekxUVXVOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaGVhcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIZWFydDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDkuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNWwtNS40OTIgNS4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhcnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGVsaWNvcHRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRkMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNM1k0WVRJZ01pQXdJREFnTUNBeUlESm9OUzQ0TmpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lERTNkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFM1lUUWdOQ0F3SURBZ01DQTBMVFFnT0NBMklEQWdNQ0F3TFRndE5pQTJJRFVnTUNBd0lEQXROaUExZGpOaE1pQXlJREFnTUNBd0lESWdNbm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRCMk5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXphREUySWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURJeGFERTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV6U0RJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2hlbGljb3B0ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIZWxpY29wdGVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDE3djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgM3Y4YTIgMiAwIDAgMCAyIDJoNS44NjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTd2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxN2E0IDQgMCAwIDAgNC00IDggNiAwIDAgMC04LTYgNiA1IDAgMCAwLTYgNXYzYTIgMiAwIDAgMCAyIDJ6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTB2NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDNoMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMWgxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEzSDInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGVsaWNvcHRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBoZXhhZ29uXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFpXT0dFeUlESWdNQ0F3SURBdE1TMHhMamN6YkMwM0xUUmhNaUF5SURBZ01DQXdMVElnTUd3dE55QTBRVElnTWlBd0lEQWdNQ0F6SURoMk9HRXlJRElnTUNBd0lEQWdNU0F4TGpjemJEY2dOR0V5SURJZ01DQXdJREFnTWlBd2JEY3RORUV5SURJZ01DQXdJREFnTWpFZ01UWjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oZXhhZ29uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGV4YWdvbjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIZXhhZ29uO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhpZ2hsaWdodGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhNUzAySURaMk0yZzViRE10TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ01USXROQzQySURRdU5tRXlJRElnTUNBd0lERXRNaTQ0SURCc0xUVXVNaTAxTGpKaE1pQXlJREFnTUNBeElEQXRNaTQ0VERFMElEUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oaWdobGlnaHRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhpZ2hsaWdodGVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTkgMTEtNiA2djNoOWwzLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTItNC42IDQuNmEyIDIgMCAwIDEtMi44IDBsLTUuMi01LjJhMiAyIDAgMCAxIDAtMi44TDE0IDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSGlnaGxpZ2h0ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaGlzdG9yeVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1FNUlEa2dNQ0F4SURBZ09TMDVJRGt1TnpVZ09TNDNOU0F3SURBZ01DMDJMamMwSURJdU56Uk1NeUE0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SUROMk5XZzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEzZGpWc05DQXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9oaXN0b3J5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSGlzdG9yeTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyYTkgOSAwIDEgMCA5LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjVoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djVsNCAyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhpc3Rvcnk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaG9wXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVPRElnTVRZdU1USmpNUzQyT1M0MklETXVPVEV1TnprZ05TNHhPQzQ0TlM0MU5TNHdNeUF4TFM0ME1pNDVOeTB1T1RjdExqQTJMVEV1TWpjdExqSTJMVE11TlMwdU9EVXROUzR4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU5TQTJMalZqTVM0Mk5DQXdJRFV0TGpNNElEWXVOekV0TVM0d055NDFNaTB1TWk0MU5TMHVPREl1TVRJdE1TNHhOMEV4TUNBeE1DQXdJREFnTUNBMExqSTJJREU0TGpNell5NHpOUzQwTXk0NU5pNDBJREV1TVRjdExqRXlMalk1TFRFdU56RWdNUzR3TnkwMUxqQTNJREV1TURjdE5pNDNNU0F4TGpNMExqUTFJRE11TVM0NUlEUXVPRGd1TmpKaExqZzRMamc0SURBZ01DQXdJQzQzTXkwdU56UmpMak10TWk0eE5DMHVNVFV0TXk0MUxTNDJNUzAwTGpnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TNDJNaUF4Tmk0NU5XTXVNaTQ0TlM0Mk1pQXlMamMyTGpVZ05DNHlPR0V1TnpjdU56Y2dNQ0F3SURFdExqa3VOeUF4Tmk0Mk5DQXhOaTQyTkNBd0lEQWdNUzAwTGpBNExURXVNellpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUyTGpFeklESXhMakExWXpFdU5qVXVOak1nTXk0Mk9DNDROQ0EwTGpnM0xqa3hZUzQ1TGprZ01DQXdJREFnTGprMkxTNDVOaUF4Tnk0Mk9DQXhOeTQyT0NBd0lEQWdNQzB1T1MwMExqZzNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaTQ1TkNBeE5TNDJNbU11T0RZdU1pQXlMamMzTGpZeUlEUXVNamt1TldFdU56Y3VOemNnTUNBd0lEQWdMamN0TGprZ01UWXVOalFnTVRZdU5qUWdNQ0F3SURBdE1TNHpOaTAwTGpBNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55NDVPU0ExTGpVeVlUSXdMamd5SURJd0xqZ3lJREFnTUNBeElETXVNVFVnTkM0MUxqZ3VPQ0F3SURBZ01TMHVOamdnTVM0eE0yTXRNaTR6TXk0eUxUVXVNeTB1TXpJdE9DNHlOeTB4TGpVM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswMExqa3pJRFF1T1RNZ015QXpZUzQzTGpjZ01DQXdJREVnTUMweElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUxqVTRJREV5TGpFNFl6RXVNalFnTWk0NU9DQXhMamMzSURVdU9UVWdNUzQxTnlBNExqSTRZUzQ0TGpnZ01DQXdJREV0TVM0eE15NDJPQ0F5TUM0NE1pQXlNQzQ0TWlBd0lEQWdNUzAwTGpVdE15NHhOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG9wXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSG9wOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTAuODIgMTYuMTJjMS42OS42IDMuOTEuNzkgNS4xOC44NS41NS4wMyAxLS40Mi45Ny0uOTctLjA2LTEuMjctLjI2LTMuNS0uODUtNS4xOCcgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExLjUgNi41YzEuNjQgMCA1LS4zOCA2LjcxLTEuMDcuNTItLjIuNTUtLjgyLjEyLTEuMTdBMTAgMTAgMCAwIDAgNC4yNiAxOC4zM2MuMzUuNDMuOTYuNCAxLjE3LS4xMi42OS0xLjcxIDEuMDctNS4wNyAxLjA3LTYuNzEgMS4zNC40NSAzLjEuOSA0Ljg4LjYyYS44OC44OCAwIDAgMCAuNzMtLjc0Yy4zLTIuMTQtLjE1LTMuNS0uNjEtNC44OCcsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTUuNjIgMTYuOTVjLjIuODUuNjIgMi43Ni41IDQuMjhhLjc3Ljc3IDAgMCAxLS45LjcgMTYuNjQgMTYuNjQgMCAwIDEtNC4wOC0xLjM2JyB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC45Ni0uOTYgMTcuNjggMTcuNjggMCAwIDAtLjktNC44NycgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTYuOTQgMTUuNjJjLjg2LjIgMi43Ny42MiA0LjI5LjVhLjc3Ljc3IDAgMCAwIC43LS45IDE2LjY0IDE2LjY0IDAgMCAwLTEuMzYtNC4wOCcgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTcuOTkgNS41MmEyMC44MiAyMC44MiAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTIuMzMuMi01LjMtLjMyLTguMjctMS41NycgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTQuOTMgNC45MyAzIDNhLjcuNyAwIDAgMSAwLTEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOS41OCAxMi4xOGMxLjI0IDIuOTggMS43NyA1Ljk1IDEuNTcgOC4yOGEuOC44IDAgMCAxLTEuMTMuNjggMjAuODIgMjAuODIgMCAwIDEtNC41LTMuMTUnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIb3A7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaG9wLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1T0RJZ01UWXVNVEpqTVM0Mk9TNDJJRE11T1RFdU56a2dOUzR4T0M0NE5TNHlPQzR3TVM0MU15MHVNRGt1TnkwdU1qY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhMakUwSURJd0xqVTNZeTQxTWk0eU5DQXlMalEwSURFdU1USWdOQzR3T0NBeExqTTNMalEyTGpBMkxqZzJMUzR5TlM0NUxTNDNNUzR4TWkweExqVXlMUzR6TFRNdU5ETXRMalV0TkM0eU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVNVE1nTWpFdU1EVmpNUzQyTlM0Mk15QXpMalk0TGpnMElEUXVPRGN1T1RGaExqa3VPU0F3SURBZ01DQXVOeTB1TWpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqazVJRFV1TlRKaE1qQXVPRE1nTWpBdU9ETWdNQ0F3SURFZ015NHhOU0EwTGpVdU9DNDRJREFnTUNBeExTNDJPQ0F4TGpFell5MHhMakUzTGpFdE1pNDFMakF5TFRNdU9TMHVNalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3TGpVM0lERXhMakUwWXk0eU5DNDFNaUF4TGpFeUlESXVORFFnTVM0ek55QTBMakE0TGpBMExqTXRMakE0TGpVNUxTNHpNUzQzTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkM0NU15QTBMamt6WVRFd0lERXdJREFnTUNBd0xTNDJOeUF4TXk0MFl5NHpOUzQwTXk0NU5pNDBJREV1TVRjdExqRXlMalk1TFRFdU56RWdNUzR3TnkwMUxqQTNJREV1TURjdE5pNDNNU0F4TGpNMExqUTFJRE11TVM0NUlEUXVPRGd1TmpKaExqZzFMamcxSURBZ01DQXdJQzQwT0MwdU1qUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVXVOVElnTVRjdU9UbGpNUzR3TlM0NU5TQXlMamt4SURJdU5ESWdOQzQxSURNdU1UVmhMamd1T0NBd0lEQWdNQ0F4TGpFekxTNDJPR011TWkweUxqTTBMUzR6TXkwMUxqTXRNUzQxTnkwNExqSTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRMak0xSURJdU5qaGhNVEFnTVRBZ01DQXdJREVnT1M0NU9DQXhMalU0WXk0ME15NHpOUzQwTGprMkxTNHhNaUF4TGpFM0xURXVOUzQyTFRRdU15NDVPQzAyTGpBM0lERXVNRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG9wLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEhvcE9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjI4LjAxLjUzLS4wOS43LS4yNycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTExLjE0IDIwLjU3Yy41Mi4yNCAyLjQ0IDEuMTIgNC4wOCAxLjM3LjQ2LjA2Ljg2LS4yNS45LS43MS4xMi0xLjUyLS4zLTMuNDMtLjUtNC4yOCcgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE2LjEzIDIxLjA1YzEuNjUuNjMgMy42OC44NCA0Ljg3LjkxYS45LjkgMCAwIDAgLjctLjI2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTcuOTkgNS41MmEyMC44MyAyMC44MyAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTEuMTcuMS0yLjUuMDItMy45LS4yNScgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjU3IDExLjE0Yy4yNC41MiAxLjEyIDIuNDQgMS4zNyA0LjA4LjA0LjMtLjA4LjU5LS4zMS43NScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000LjkzIDQuOTNhMTAgMTAgMCAwIDAtLjY3IDEzLjRjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODUuODUgMCAwIDAgLjQ4LS4yNCcsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNS41MiAxNy45OWMxLjA1Ljk1IDIuOTEgMi40MiA0LjUgMy4xNWEuOC44IDAgMCAwIDEuMTMtLjY4Yy4yLTIuMzQtLjMzLTUuMy0xLjU3LTguMjgnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004LjM1IDIuNjhhMTAgMTAgMCAwIDEgOS45OCAxLjU4Yy40My4zNS40Ljk2LS4xMiAxLjE3LTEuNS42LTQuMy45OC02LjA3IDEuMDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhvcE9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBob3NwaXRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTjNZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlNWFl0TTJFeUlESWdNQ0F3SURBdE5DQXdkak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURsb0xUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREV4YURKaE1pQXlJREFnTUNBeElESWdNblkyWVRJZ01pQXdJREFnTVMweUlESklOR0V5SURJZ01DQXdJREV0TWkweWRpMDVZVElnTWlBd0lEQWdNU0F5TFRKb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNakZXTldFeUlESWdNQ0F3SURBdE1pMHlTRGhoTWlBeUlEQWdNQ0F3TFRJZ01uWXhOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG9zcGl0YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIb3NwaXRhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDloLTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTFoMmEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIDItMmgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIxVjVhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSG9zcGl0YWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaG90ZWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01qSjJMVFl1TlRjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERXhhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ04yZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFMUxqUXpWakl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE5tRTFJRFVnTUNBd0lEQXROaUF3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE1XZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURkb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV4YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQTNhQzR3TVNJZ0x6NEtJQ0E4Y21WamRDQjRQU0kwSWlCNVBTSXlJaUIzYVdSMGFEMGlNVFlpSUdobGFXZG9kRDBpTWpBaUlISjRQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG90ZWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIb3RlbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyMnYtNi41NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTUuNDNWMjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTZhNSA1IDAgMCAwLTYgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgN2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA3aC4wMScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzQnLCB5OiAnMicsIHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICcyMCcsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIb3RlbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBob3VyZ2xhc3NcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeU1tZ3hOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F5YURFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXlNbll0TkM0eE56SmhNaUF5SURBZ01DQXdMUzQxT0RZdE1TNDBNVFJNTVRJZ01USnNMVFF1TkRFMElEUXVOREUwUVRJZ01pQXdJREFnTUNBM0lERTNMamd5T0ZZeU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXlkalF1TVRjeVlUSWdNaUF3SURBZ01DQXVOVGcySURFdU5ERTBUREV5SURFeWJEUXVOREUwTFRRdU5ERTBRVElnTWlBd0lEQWdNQ0F4TnlBMkxqRTNNbFl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG91cmdsYXNzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSG91cmdsYXNzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMjJoMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyaDE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDIydi00LjE3MmEyIDIgMCAwIDAtLjU4Ni0xLjQxNEwxMiAxMmwtNC40MTQgNC40MTRBMiAyIDAgMCAwIDcgMTcuODI4VjIyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMnY0LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNEwxMiAxMmw0LjQxNC00LjQxNEEyIDIgMCAwIDAgMTcgNi4xNzJWMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIb3VyZ2xhc3M7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaG91c2UtaGVhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0M0Mk1pQXhNeTQ0UVRJdU1qVWdNaTR5TlNBd0lERWdNU0F4TWlBeE1DNDRNelpoTWk0eU5TQXlMakkxSURBZ01TQXhJRE11TXpnZ01pNDVOalpzTFRJdU5qSTJJREl1T0RVMllTNDVPVGd1T1RrNElEQWdNQ0F4TFRFdU5UQTNJREI2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFd1lUSWdNaUF3SURBZ01TQXVOekE1TFRFdU5USTRiRGN0Tm1FeUlESWdNQ0F3SURFZ01pNDFPRElnTUd3M0lEWkJNaUF5SURBZ01DQXhJREl4SURFd2RqbGhNaUF5SURBZ01DQXhMVElnTWtnMVlUSWdNaUF3SURBZ01TMHlMVEo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG91c2UtaGVhcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIb3VzZUhlYXJ0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTguNjIgMTMuOEEyLjI1IDIuMjUgMCAxIDEgMTIgMTAuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBIb3VzZUhlYXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhvdXNlLXBsdWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01USldPQzQ1TmpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElERXlWamd1T1RZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhNbUV4SURFZ01DQXdJREVnTVNBeGRqSmhNaUF5SURBZ01DQXhMVElnTW1ndE5HRXlJRElnTUNBd0lERXRNaTB5ZGkweVlURWdNU0F3SURBZ01TQXhMVEY2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpVZ01qRklOV0V5SURJZ01DQXdJREV0TWkweWRpMDVZVElnTWlBd0lEQWdNU0F1TnpBNUxURXVOVEk0YkRjdE5tRXlJRElnTUNBd0lERWdNaTQxT0RJZ01HdzNJRFpCTWlBeUlEQWdNQ0F4SURJeElERXdkamxoTWlBeUlEQWdNQ0F4TFRJZ01tZ3ROV0V5SURJZ01DQXdJREV0TWkweWRpMHlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ob3VzZS1wbHVnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSG91c2VQbHVnOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEyVjguOTY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEyVjguOTY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEyYTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0yLTJ2LTJhMSAxIDAgMCAxIDEtMXonIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOC41IDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtMicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhvdXNlUGx1ZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBob3VzZS1wbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVNelVnTWpGSU5XRXlJRElnTUNBd0lERXRNaTB5ZGkwNVlUSWdNaUF3SURBZ01TQXVOekV0TVM0MU0ydzNMVFpoTWlBeUlEQWdNQ0F4SURJdU5UZ2dNR3czSURaQk1pQXlJREFnTUNBeElESXhJREV3ZGpJdU16VWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBMamdnTVRJdU5FRXhJREVnTUNBd0lEQWdNVFFnTVRKb0xUUmhNU0F4SURBZ01DQXdMVEVnTVhZNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhPR2cySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeE5YWTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ob3VzZS1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSG91c2VQbHVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjM1IDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcxLTEuNTNsNy02YTIgMiAwIDAgMSAyLjU4IDBsNyA2QTIgMiAwIDAgMSAyMSAxMHYyLjM1JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuOCAxMi40QTEgMSAwIDAgMCAxNCAxMmgtNGExIDEgMCAwIDAtMSAxdjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMThoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNXY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEhvdXNlUGx1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBob3VzZS13aWZpXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TNDFJREV6TGpnMk5tRTBJRFFnTUNBd0lERWdOU0F1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1HRXlJRElnTUNBd0lERWdMamN3T1MweExqVXlPR3czTFRaaE1pQXlJREFnTUNBeElESXVOVGd5SURCc055QTJRVElnTWlBd0lEQWdNU0F5TVNBeE1IWTVZVElnTWlBd0lEQWdNUzB5SURKSU5XRXlJRElnTUNBd0lERXRNaTB5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE1DNDNOVFJoT0NBNElEQWdNQ0F4SURFd0lEQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ob3VzZS13aWZpXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSG91c2VXaWZpOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTkuNSAxMy44NjZhNCA0IDAgMCAxIDUgLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3aC4wMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMC43NTRhOCA4IDAgMCAxIDEwIDAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSG91c2VXaWZpO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGhvdXNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNakYyTFRoaE1TQXhJREFnTUNBd0xURXRNV2d0TkdFeElERWdNQ0F3SURBdE1TQXhkamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRCaE1pQXlJREFnTUNBeElDNDNNRGt0TVM0MU1qaHNOeTAyWVRJZ01pQXdJREFnTVNBeUxqVTRNaUF3YkRjZ05rRXlJRElnTUNBd0lERWdNakVnTVRCMk9XRXlJRElnTUNBd0lERXRNaUF5U0RWaE1pQXlJREFnTUNBeExUSXRNbm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaG91c2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBIb3VzZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAyMXYtOGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2OCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSG91c2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaWNlLWNyZWFtLWJvd2xcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UZGpOU0F3SURndE1pNDJPU0E0TFRaSU5HTXdJRE11TXpFZ015QTJJRGdnTm0wdE5DQTBhRGh0TFRRdE0zWXpUVFV1TVRRZ01URmhNeTQxSURNdU5TQXdJREVnTVNBMkxqY3hJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5TGpFMElERXhZVE11TlNBekxqVWdNQ0F4SURFZ05pNDNNU0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlM0MUlEWXVOV0V6TGpVZ015NDFJREFnTVNBd0xUY2dNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaWNlLWNyZWFtLWJvd2xcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBJY2VDcmVhbUJvd2w6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00xMiAxN2M1IDAgOC0yLjY5IDgtNkg0YzAgMy4zMSAzIDYgOCA2bS00IDRoOG0tNC0zdjNNNS4xNCAxMWEzLjUgMy41IDAgMSAxIDYuNzEgMCcgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEyLjE0IDExYTMuNSAzLjUgMCAxIDEgNi43MSAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1LjUgNi41YTMuNSAzLjUgMCAxIDAtNyAwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEljZUNyZWFtQm93bDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBpY2UtY3JlYW0tY29uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROeUF4TVNBMExqQTRJREV3TGpNMVlURWdNU0F3SURBZ01DQXhMamcwSURCTU1UY2dNVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURkQk5TQTFJREFnTUNBd0lEY2dOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTjJFeUlESWdNQ0F3SURFZ01DQTBTRGRoTWlBeUlEQWdNQ0F4SURBdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pY2UtY3JlYW0tY29uZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEljZUNyZWFtQ29uZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ203IDExIDQuMDggMTAuMzVhMSAxIDAgMCAwIDEuODQgMEwxNyAxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA3QTUgNSAwIDAgMCA3IDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgN2EyIDIgMCAwIDEgMCA0SDdhMiAyIDAgMCAxIDAtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBJY2VDcmVhbUNvbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaWQtY2FyZC1sYW55YXJkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVOU0E0YUMweklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5TQXlMVEVnTW1nellUSWdNaUF3SURBZ01TQXlJREoyTVRSaE1pQXlJREFnTUNBeExUSWdNa2czWVRJZ01pQXdJREFnTVMweUxUSldObUV5SURJZ01DQXdJREVnTWkweWFETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJMamc1T1NBeU1rRTFJRFVnTUNBd0lEQWdOeTR4SURJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlESWdNeUEySWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRVaUlISTlJak1pSUM4K0Nqd3ZjM1puUGc9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaWQtY2FyZC1sYW55YXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSWRDYXJkTGFueWFyZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMy41IDhoLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMi0xIDJoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2Ljg5OSAyMkE1IDUgMCAwIDAgNy4xIDIyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMiAzIDYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTUnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBJZENhcmRMYW55YXJkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGlkLWNhcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UQm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRSb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNHhOeUF4TldFeklETWdNQ0F3SURFZ05TNDJOaUF3SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpraUlHTjVQU0l4TVNJZ2NqMGlNaUlnTHo0S0lDQThjbVZqZENCNFBTSXlJaUI1UFNJMUlpQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFFpSUhKNFBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pZC1jYXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSWRDYXJkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEwaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTRoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjE3IDE1YTMgMyAwIDAgMSA1LjY2IDAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICcxMScsIHI6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICc1Jywgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE0Jywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IElkQ2FyZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBpbWFnZS1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNeUF5TVVnMVlUSWdNaUF3SURBZ01TMHlMVEpXTldFeUlESWdNQ0F3SURFZ01pMHlhREUwWVRJZ01pQXdJREFnTVNBeUlESjJNVEJzTFRNdU1TMHpMakZoTWlBeUlEQWdNQ0F3TFRJdU9ERTBMakF4TkV3MklESXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQ0F4T1NBeklETjJMVFV1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRjZ01qSWdNeTB6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpraUlHTjVQU0k1SWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbWFnZS1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSW1hZ2VEb3duOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEwLjMgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjEwbC0zLjEtMy4xYTIgMiAwIDAgMC0yLjgxNC4wMTRMNiAyMScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDE5IDMgM3YtNS41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDIyIDMtMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzknLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZURvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaW1hZ2UtbWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ09YWXhNR0V5SURJZ01DQXdJREV0TWlBeVNEVmhNaUF5SURBZ01DQXhMVEl0TWxZMVlUSWdNaUF3SURBZ01TQXlMVEpvTnlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRZaUlIZ3lQU0l5TWlJZ2VURTlJalVpSUhreVBTSTFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamtpSUdONVBTSTVJaUJ5UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TQXhOUzB6TGpBNE5pMHpMakE0Tm1FeUlESWdNQ0F3SURBdE1pNDRNamdnTUV3MklESXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbWFnZS1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEltYWdlTWludXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgOXYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNicsIHgyOiAnMjInLCB5MTogJzUnLCB5MjogJzUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc5JywgcjogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZU1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGltYWdlLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNaUlnZURJOUlqSXlJaUI1TVQwaU1pSWdlVEk5SWpJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DNDBNU0F4TUM0ME1XRXlJRElnTUNBeElERXRNaTQ0TXkweUxqZ3pJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNeTQxSWlCNE1qMGlOaUlnZVRFOUlqRXpMalVpSUhreVBTSXlNU0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNVGdpSUhneVBTSXlNU0lnZVRFOUlqRXlJaUI1TWowaU1UVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTXVOVGtnTXk0MU9VRXhMams1SURFdU9Ua2dNQ0F3SURBZ015QTFkakUwWVRJZ01pQXdJREFnTUNBeUlESm9NVFJqTGpVMUlEQWdNUzR3TlRJdExqSXlJREV1TkRFdExqVTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TlZZMVlUSWdNaUF3SURBZ01DMHlMVEpJT1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ltYWdlLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEltYWdlT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzIyJywgeTE6ICcyJywgeTI6ICcyMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC40MSAxMC40MWEyIDIgMCAxIDEtMi44My0yLjgzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEzLjUnLCB4MjogJzYnLCB5MTogJzEzLjUnLCB5MjogJzIxJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE4JywgeDI6ICcyMScsIHkxOiAnMTInLCB5MjogJzE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNTkgMy41OUExLjk5IDEuOTkgMCAwIDAgMyA1djE0YTIgMiAwIDAgMCAyIDJoMTRjLjU1IDAgMS4wNTItLjIyIDEuNDEtLjU5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1VjVhMiAyIDAgMCAwLTItMkg5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGltYWdlLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05XZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F5ZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERXhMalZXTVRsaE1pQXlJREFnTUNBeExUSWdNa2cxWVRJZ01pQXdJREFnTVMweUxUSldOV0V5SURJZ01DQXdJREVnTWkweWFEY3VOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNakVnTVRVdE15NHdPRFl0TXk0d09EWmhNaUF5SURBZ01DQXdMVEl1T0RJNElEQk1OaUF5TVNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJNUlpQmplVDBpT1NJZ2NqMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaW1hZ2UtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEltYWdlUGx1czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiA1aDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDExLjVWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnOScsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlUGx1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBpbWFnZS1wbGF5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNVFV1TURBellURWdNU0F3SURBZ01TQXhMalV4TnkwdU9EVTViRFF1T1RrM0lESXVPVGszWVRFZ01TQXdJREFnTVNBd0lERXVOekU0YkMwMExqazVOeUF5TGprNU4yRXhJREVnTUNBd0lERXRNUzQxTVRjdExqZzJlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRJdU1UZFdOV0V5SURJZ01DQXdJREF0TWkweVNEVmhNaUF5SURBZ01DQXdMVElnTW5ZeE5HRXlJRElnTUNBd0lEQWdNaUF5YURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRZZ01qRWdOUzAxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpraUlHTjVQU0k1SWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbWFnZS1wbGF5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSW1hZ2VQbGF5OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1IDE1LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdhMSAxIDAgMCAxLTEuNTE3LS44NnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMi4xN1Y1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDIxIDUtNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzknLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZVBsYXk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaW1hZ2UtdXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU15QXlNVWcxWVRJZ01pQXdJREFnTVMweUxUSldOV0V5SURJZ01DQXdJREVnTWkweWFERTBZVElnTWlBd0lEQWdNU0F5SURKMk1UQnNMVE11TVMwekxqRmhNaUF5SURBZ01DQXdMVEl1T0RFMExqQXhORXcySURJeElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQXhPUzQxSURNdE15QXpJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURJeWRpMDFMalVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpT1NJZ1kzazlJamtpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbWFnZS11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEltYWdlVXA6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTkuNSAzLTMgMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDIydi01LjUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc5JywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSW1hZ2VVcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBpbWFnZS11cHNjYWxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNMmcxZGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lESXhhREpoTWlBeUlEQWdNQ0F3SURJdE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEoyTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ015MDFJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTjFZMVlUSWdNaUF3SURBZ01TQXlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFVnTWpFZ05DNHhORFF0TkM0eE5EUmhNUzR5TVNBeExqSXhJREFnTUNBeElERXVOekV5SURCTU1UTWdNVGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTTJneklpQXZQZ29nSUR4eVpXTjBJSGc5SWpNaUlIazlJakV4SWlCM2FXUjBhRDBpTVRBaUlHaGxhV2RvZEQwaU1UQWlJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ltYWdlLXVwc2NhbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBJbWFnZVVwc2NhbGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM2g1djUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMjFoMmEyIDIgMCAwIDAgMi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEydjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMy01IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA3VjVhMiAyIDAgMCAxIDItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDIxIDQuMTQ0LTQuMTQ0YTEuMjEgMS4yMSAwIDAgMSAxLjcxMiAwTDEzIDE5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgM2gzJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMycsIHk6ICcxMScsIHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICcxMCcsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZVVwc2NhbGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaW1hZ2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0k1SWlCamVUMGlPU0lnY2owaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNVFV0TXk0d09EWXRNeTR3T0RaaE1pQXlJREFnTUNBd0xUSXVPREk0SURCTU5pQXlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaW1hZ2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBJbWFnZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzknLCByOiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGltYWdlc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNaklnTVRFdE1TNHlPVFl0TVM0eU9UWmhNaTQwSURJdU5DQXdJREFnTUMwekxqUXdPQ0F3VERFeElERTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJRGhoTWlBeUlEQWdNQ0F3TFRJZ01uWXhNR0V5SURJZ01DQXdJREFnTWlBeWFERXdZVElnTWlBd0lEQWdNQ0F5TFRJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UTWlJR041UFNJM0lpQnlQU0l4SWlCbWFXeHNQU0pqZFhKeVpXNTBRMjlzYjNJaUlDOCtDaUFnUEhKbFkzUWdlRDBpT0NJZ2VUMGlNaUlnZDJsa2RHZzlJakUwSWlCb1pXbG5hSFE5SWpFMElpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2ltYWdlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEltYWdlczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yMiAxMS0xLjI5Ni0xLjI5NmEyLjQgMi40IDAgMCAwLTMuNDA4IDBMMTEgMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA4YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTMnLCBjeTogJzcnLCByOiAnMScsIGZpbGw6ICdjdXJyZW50Q29sb3InIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc4JywgeTogJzInLCB3aWR0aDogJzE0JywgaGVpZ2h0OiAnMTQnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSW1hZ2VzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGltcG9ydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZeE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9DQXhNU0EwSURRZ05DMDBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRFZJTkdFeUlESWdNQ0F3SURBdE1pQXlkakV3WVRJZ01pQXdJREFnTUNBeUlESm9NVFpoTWlBeUlEQWdNQ0F3SURJdE1sWTNZVElnTWlBd0lEQWdNQzB5TFRKb0xUUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbXBvcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBJbXBvcnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3YxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDExIDQgNCA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA1SDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEltcG9ydDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBpbmJveFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjRzlzZVd4cGJtVWdjRzlwYm5SelBTSXlNaUF4TWlBeE5pQXhNaUF4TkNBeE5TQXhNQ0F4TlNBNElERXlJRElnTVRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVdU5EVWdOUzR4TVNBeUlERXlkalpoTWlBeUlEQWdNQ0F3SURJZ01tZ3hObUV5SURJZ01DQXdJREFnTWkweWRpMDJiQzB6TGpRMUxUWXVPRGxCTWlBeUlEQWdNQ0F3SURFMkxqYzJJRFJJTnk0eU5HRXlJRElnTUNBd0lEQXRNUzQzT1NBeExqRXhlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaW5ib3hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBJbmJveDogSWNvbk5vZGUgPSBbXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzIyIDEyIDE2IDEyIDE0IDE1IDEwIDE1IDggMTIgMiAxMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ001LjQ1IDUuMTEgMiAxMnY2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNmwtMy40NS02Ljg5QTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBJbmJveDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBpbmRpYW4tcnVwZWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBemFERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJRGhvTVRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRZZ01UTWdPQzQxSURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UTm9NeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TTJNMkxqWTJOeUF3SURZdU5qWTNMVEV3SURBdE1UQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbmRpYW4tcnVwZWVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBJbmRpYW5SdXBlZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDNoMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4aDEyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgMTMgOC41IDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxM2gzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTNjNi42NjcgMCA2LjY2Ny0xMCAwLTEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEluZGlhblJ1cGVlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGluZmluaXR5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhObU0xSURBZ055MDRJREV5TFRoaE5DQTBJREFnTUNBeElEQWdPR010TlNBd0xUY3RPQzB4TWkwNFlUUWdOQ0F3SURFZ01DQXdJRGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaW5maW5pdHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBJbmZpbml0eTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDE2YzUgMCA3LTggMTItOGE0IDQgMCAwIDEgMCA4Yy01IDAtNy04LTEyLThhNCA0IDAgMSAwIDAgOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBJbmZpbml0eTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBpbmZvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFoyTFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEaG9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaW5mb1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEluZm86IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZ2LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOGguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSW5mbztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBpbnNwZWN0aW9uLXBhbmVsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lEZG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBM2FDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TjJndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREUzYUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbnNwZWN0aW9uLXBhbmVsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSW5zcGVjdGlvblBhbmVsOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgN2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgN2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxN2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTdoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEluc3BlY3Rpb25QYW5lbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBpbnN0YWdyYW1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNakFpSUhnOUlqSWlJSGs5SWpJaUlISjRQU0kxSWlCeWVUMGlOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRFdU16ZEJOQ0EwSURBZ01TQXhJREV5TGpZeklEZ2dOQ0EwSURBZ01DQXhJREUySURFeExqTTNlaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVGN1TlNJZ2VESTlJakUzTGpVeElpQjVNVDBpTmk0MUlpQjVNajBpTmk0MUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2luc3RhZ3JhbVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqIEBkZXByZWNhdGVkIEJyYW5kIGljb25zIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCBhcmUgZHVlIHRvIGJlIHJlbW92ZWQsIHBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vbHVjaWRlLWljb25zL2x1Y2lkZS9pc3N1ZXMvNjcwLiBXZSByZWNvbW1lbmQgdXNpbmcgaHR0cHM6Ly9zaW1wbGVpY29ucy5vcmcvP3E9aW5zdGFncmFtIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBJbnN0YWdyYW06IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcyMCcsIHg6ICcyJywgeTogJzInLCByeDogJzUnLCByeTogJzUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTEuMzdBNCA0IDAgMSAxIDEyLjYzIDggNCA0IDAgMCAxIDE2IDExLjM3eicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNy41JywgeDI6ICcxNy41MScsIHkxOiAnNi41JywgeTI6ICc2LjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgSW5zdGFncmFtO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGl0YWxpY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNVGtpSUhneVBTSXhNQ0lnZVRFOUlqUWlJSGt5UFNJMElpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE5DSWdlREk5SWpVaUlIa3hQU0l5TUNJZ2VUSTlJakl3SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TlNJZ2VESTlJamtpSUhreFBTSTBJaUI1TWowaU1qQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pdGFsaWNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBJdGFsaWM6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMTknLCB4MjogJzEwJywgeTE6ICc0JywgeTI6ICc0JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE0JywgeDI6ICc1JywgeTE6ICcyMCcsIHkyOiAnMjAnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTUnLCB4MjogJzknLCB5MTogJzQnLCB5MjogJzIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEl0YWxpYztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBpdGVyYXRpb24tY2N3XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNVFFnTkNBMExUUWdOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRCaE9DQTRJREFnTVNBd0xUZ2dPR2c0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaXRlcmF0aW9uLWNjd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEl0ZXJhdGlvbkNjdzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxNCA0IDQtNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEwYTggOCAwIDEgMC04IDhoOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBJdGVyYXRpb25DY3c7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgaXRlcmF0aW9uLWN3XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNR0U0SURnZ01DQXhJREVnT0NBNFNEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUZ2dNakl0TkMwMElEUXROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvaXRlcmF0aW9uLWN3XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgSXRlcmF0aW9uQ3c6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMGE4IDggMCAxIDEgOCA4SDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAyMi00LTQgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEl0ZXJhdGlvbkN3O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGphcGFuZXNlLXllblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnT1M0MVZqSXhiVEF0TVRFdU5VdzJJRE50TmlBMkxqVk1NVGdnTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE5XZ3hNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4TVdneE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9qYXBhbmVzZS15ZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBKYXBhbmVzZVllbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA5LjVWMjFtMC0xMS41TDYgM202IDYuNUwxOCAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTVoMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMWgxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBKYXBhbmVzZVllbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBqb3lzdGlja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRkaE1pQXlJREFnTUNBd0xUSXRNa2cxWVRJZ01pQXdJREFnTUMweUlESjJNbUV5SURJZ01DQXdJREFnTWlBeWFERTBZVElnTWlBd0lEQWdNQ0F5TFRKMkxUSmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREUxZGkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOVlk1SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTmlJZ2NqMGlNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvam95c3RpY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBKb3lzdGljazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN2EyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtMlonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNXYtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNVY5JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzYnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBKb3lzdGljaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBrYW5iYW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBemRqRTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF6ZGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlETjJNVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMva2FuYmFuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgS2FuYmFuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgM3YxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzdjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgM3YxOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBLYW5iYW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUga2F5YWtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01UZGhNU0F4SURBZ01DQXdMVEVnTVhZeFlUSWdNaUF3SURFZ01DQXlMVEo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUM0NU55QXpMall4WVM0ME5TNDBOU0F3SURBZ01DMHVOVGd0TGpVNFF6RXdMaklnTmk0MklEWXVOaUF4TUM0eUlETXVNRE1nTWpBdU16bGhMalExTGpRMUlEQWdNQ0F3SUM0MU9DNDFPRU14TXk0NElERTNMalFnTVRjdU5DQXhNeTQ0SURJd0xqazNJRE11TmpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRZdU56QTNJRFl1TnpBM0lERXdMalU0TmlBeE1DNDFPRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTldFeUlESWdNQ0F4SURBdE1pQXlhREZoTVNBeElEQWdNQ0F3SURFdE1Yb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9rYXlha1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEtheWFrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE3YTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDAgMi0yeicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMC45NyAzLjYxYS40NS40NSAwIDAgMC0uNTgtLjU4QzEwLjIgNi42IDYuNiAxMC4yIDMuMDMgMjAuMzlhLjQ1LjQ1IDAgMCAwIC41OC41OEMxMy44IDE3LjQgMTcuNCAxMy44IDIwLjk3IDMuNjEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ202LjcwNyA2LjcwNyAxMC41ODYgMTAuNTg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgNWEyIDIgMCAxIDAtMiAyaDFhMSAxIDAgMCAwIDEtMXonIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgS2F5YWs7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUga2V5LXJvdW5kXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNDFPRFlnTVRjdU5ERTBRVElnTWlBd0lEQWdNQ0F5SURFNExqZ3lPRll5TVdFeElERWdNQ0F3SURBZ01TQXhhRE5oTVNBeElEQWdNQ0F3SURFdE1YWXRNV0V4SURFZ01DQXdJREVnTVMweGFERmhNU0F4SURBZ01DQXdJREV0TVhZdE1XRXhJREVnTUNBd0lERWdNUzB4YUM0eE56SmhNaUF5SURBZ01DQXdJREV1TkRFMExTNDFPRFpzTGpneE5DMHVPREUwWVRZdU5TQTJMalVnTUNBeElEQXROQzAwZWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE5pNDFJaUJqZVQwaU55NDFJaUJ5UFNJdU5TSWdabWxzYkQwaVkzVnljbVZ1ZEVOdmJHOXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9rZXktcm91bmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBLZXlSb3VuZDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjU4NiAxNy40MTRBMiAyIDAgMCAwIDIgMTguODI4VjIxYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoLjE3MmEyIDIgMCAwIDAgMS40MTQtLjU4NmwuODE0LS44MTRhNi41IDYuNSAwIDEgMC00LTR6JyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNi41JywgY3k6ICc3LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEtleVJvdW5kO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGtleS1zcXVhcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU5DQXlMamRoTWk0MUlESXVOU0F3SURBZ01TQXpMalFnTUd3MUxqVWdOUzQxWVRJdU5TQXlMalVnTUNBd0lERWdNQ0F6TGpSc0xUTXVOeUF6TGpkaE1pNDFJREl1TlNBd0lEQWdNUzB6TGpRZ01FdzRMamNnT1M0NFlUSXVOU0F5TGpVZ01DQXdJREVnTUMwekxqUjZJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQ0EzSURNZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TNDBJREV3TGpZdE5pNDRNVFFnTmk0NE1UUkJNaUF5SURBZ01DQXdJRElnTVRndU9ESTRWakl4WVRFZ01TQXdJREFnTUNBeElERm9NMkV4SURFZ01DQXdJREFnTVMweGRpMHhZVEVnTVNBd0lEQWdNU0F4TFRGb01XRXhJREVnTUNBd0lEQWdNUzB4ZGkweFlURWdNU0F3SURBZ01TQXhMVEZvTGpFM01tRXlJRElnTUNBd0lEQWdNUzQwTVRRdExqVTRObXd1T0RFMExTNDRNVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMva2V5LXNxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEtleVNxdWFyZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMi40IDIuN2EyLjUgMi41IDAgMCAxIDMuNCAwbDUuNSA1LjVhMi41IDIuNSAwIDAgMSAwIDMuNGwtMy43IDMuN2EyLjUgMi41IDAgMCAxLTMuNCAwTDguNyA5LjhhMi41IDIuNSAwIDAgMSAwLTMuNHonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCA3IDMgMycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ205LjQgMTAuNi02LjgxNCA2LjgxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEtleVNxdWFyZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBrZXlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVdU5TQTNMalVnTWk0eklESXVNMkV4SURFZ01DQXdJREFnTVM0MElEQnNNaTR4TFRJdU1XRXhJREVnTUNBd0lEQWdNQzB4TGpSTU1Ua2dOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNakVnTWkwNUxqWWdPUzQySWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpjdU5TSWdZM2s5SWpFMUxqVWlJSEk5SWpVdU5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9rZXlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBLZXk6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUuNSA3LjUgMi4zIDIuM2ExIDEgMCAwIDAgMS40IDBsMi4xLTIuMWExIDEgMCAwIDAgMC0xLjRMMTkgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAyLTkuNiA5LjYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3LjUnLCBjeTogJzE1LjUnLCByOiAnNS41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEtleTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBrZXlib2FyZC1tdXNpY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UWWlJSGc5SWpJaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJRGhvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ09HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURob0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREV5YURJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERXlkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREV5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERXlkalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMva2V5Ym9hcmQtbXVzaWNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBLZXlib2FyZE11c2ljOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTYnLCB4OiAnMicsIHk6ICc0Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgOGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDhoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDhoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMnY0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEtleWJvYXJkTXVzaWM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUga2V5Ym9hcmQtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTklESXdJRFFnUVRJZ01pQXdJREFnTVNBeU1pQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMGdNaklnTmlCTUlESXlJREUyTGpReElpQXZQZ29nSUR4d1lYUm9JR1E5SWswZ055QXhOaUJNSURFMklERTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMGdPUzQyT1NBMElFd2dNakFnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ09HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURob0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlJRElnTWpBZ01qQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJREl3U0RSaE1pQXlJREFnTUNBeExUSXRNbFkyWVRJZ01pQXdJREFnTVNBeUxUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01USm9MakF4SWlBdlBnbzhMM04yWno0PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMva2V5Ym9hcmQtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgS2V5Ym9hcmRPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNIDIwIDQgQTIgMiAwIDAgMSAyMiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTSAyMiA2IEwgMjIgMTYuNDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNIDcgMTYgTCAxNiAxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00gOS42OSA0IEwgMjAgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDhoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEtleWJvYXJkT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGtleWJvYXJkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERXlhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ09HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFeWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnT0dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01UWm9NVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb0xqQXhJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJeE5pSWdlRDBpTWlJZ2VUMGlOQ0lnY25nOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9rZXlib2FyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IEtleWJvYXJkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDhoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE2aDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoLjAxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTYnLCB4OiAnMicsIHk6ICc0Jywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEtleWJvYXJkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxhbXAtY2VpbGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DNDRNamtnTVRVdU9UazRZVE1nTXlBd0lERWdNUzAxTGpZMU9DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQzQ1TWlBeE5DNDJNRFpCTVNBeElEQWdNQ0F4SURJd0lERTJTRFJoTVNBeElEQWdNQ0F4TFM0NU1pMHhMak01Tkd3ekxUZEJNU0F4SURBZ01DQXhJRGNnTjJneE1HRXhJREVnTUNBd0lERWdMamt5TGpZd05ub2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYW1wLWNlaWxpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMYW1wQ2VpbGluZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuODI5IDE1Ljk5OGEzIDMgMCAxIDEtNS42NTggMCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMC45MiAxNC42MDZBMSAxIDAgMCAxIDIwIDE2SDRhMSAxIDAgMCAxLS45Mi0xLjM5NGwzLTdBMSAxIDAgMCAxIDcgN2gxMGExIDEgMCAwIDEgLjkyLjYwNnonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMYW1wQ2VpbGluZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsYW1wLWRlc2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU1qa3pJREl1TWprellURWdNU0F3SURBZ01TQXhMalF4TkNBd2JESXVOU0F5TGpVZ05TNDVPVFFnTVM0eU1qZGhNU0F4SURBZ01DQXhJQzQxTURZZ01TNDJPRGRzTFRjZ04yRXhJREVnTUNBd0lERXRNUzQyT0RjdExqVXdObXd0TVM0eU1qY3ROUzQ1T1RRdE1pNDFMVEl1TldFeElERWdNQ0F3SURFZ01DMHhMalF4TkhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMExqSXdOeUEwTGpjNU15MHpMalF4TkNBekxqUXhOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF5TUdFeUlESWdNQ0F3SURFZ01pMHlhRFJoTWlBeUlEQWdNQ0F4SURJZ01uWXhZVEVnTVNBd0lEQWdNUzB4SURGSU5HRXhJREVnTUNBd0lERXRNUzB4ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1M0d09EWWdOaTQxTFRRdU56a3pJRFF1TnprellURWdNU0F3SURBZ01DMHVNVGdnTVM0eE4wdzNJREU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGFtcC1kZXNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGFtcERlc2s6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTAuMjkzIDIuMjkzYTEgMSAwIDAgMSAxLjQxNCAwbDIuNSAyLjUgNS45OTQgMS4yMjdhMSAxIDAgMCAxIC41MDYgMS42ODdsLTcgN2ExIDEgMCAwIDEtMS42ODctLjUwNmwtMS4yMjctNS45OTQtMi41LTIuNWExIDEgMCAwIDEgMC0xLjQxNHonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xNC4yMDcgNC43OTMtMy40MTQgMy40MTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205LjA4NiA2LjUtNC43OTMgNC43OTNhMSAxIDAgMCAwLS4xOCAxLjE3TDcgMTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGFtcERlc2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGFtcC1mbG9vclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRCMk1USWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMamt5T1NBM0xqWXlPVUV4SURFZ01DQXdJREVnTVRjZ09VZzNZVEVnTVNBd0lEQWdNUzB1T1RJNExURXVNemN4YkRJdE5VRXhJREVnTUNBd0lERWdPU0F5YURaaE1TQXhJREFnTUNBeElDNDVNamd1TmpJNWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXlNbWcySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGFtcC1mbG9vclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExhbXBGbG9vcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMHYxMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNy45MjkgNy42MjlBMSAxIDAgMCAxIDE3IDlIN2ExIDEgMCAwIDEtLjkyOC0xLjM3MWwyLTVBMSAxIDAgMCAxIDkgMmg2YTEgMSAwIDAgMSAuOTI4LjYyOXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIyaDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGFtcEZsb29yO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxhbXAtd2FsbC1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua3VPVEk1SURFNExqWXlPVUV4SURFZ01DQXdJREVnTVRrZ01qQklPV0V4SURFZ01DQXdJREV0TGpreU9DMHhMak0zTVd3eUxUVkJNU0F4SURBZ01DQXhJREV4SURFemFEWmhNU0F4SURBZ01DQXhJQzQ1TWpndU5qSTVlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF6WVRJZ01pQXdJREFnTVNBeUlESjJNbUV5SURJZ01DQXdJREV0TWlBeVNEVmhNU0F4SURBZ01DQXhMVEV0TVZZMFlURWdNU0F3SURBZ01TQXhMVEY2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURab05HRXlJRElnTUNBd0lERWdNaUF5ZGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhbXAtd2FsbC1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGFtcFdhbGxEb3duOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE5LjkyOSAxOC42MjlBMSAxIDAgMCAxIDE5IDIwSDlhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSAxMSAxM2g2YTEgMSAwIDAgMSAuOTI4LjYyOXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDNhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMXonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA2aDRhMiAyIDAgMCAxIDIgMnY1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExhbXBXYWxsRG93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsYW1wLXdhbGwtdXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrdU9USTVJRGt1TmpJNVFURWdNU0F3SURBZ01TQXhPU0F4TVVnNVlURWdNU0F3SURBZ01TMHVPVEk0TFRFdU16Y3hiREl0TlVFeElERWdNQ0F3SURFZ01URWdOR2cyWVRFZ01TQXdJREFnTVNBdU9USTRMall5T1hvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UVmhNaUF5SURBZ01DQXhJRElnTW5ZeVlUSWdNaUF3SURBZ01TMHlJREpJTldFeElERWdNQ0F3SURFdE1TMHhkaTAwWVRFZ01TQXdJREFnTVNBeExURjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREU0YURSaE1pQXlJREFnTUNBd0lESXRNbll0TlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhbXAtd2FsbC11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExhbXBXYWxsVXA6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkuOTI5IDkuNjI5QTEgMSAwIDAgMSAxOSAxMUg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgNGg2YTEgMSAwIDAgMSAuOTI4LjYyOXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE1YTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE4aDRhMiAyIDAgMCAwIDItMnYtNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMYW1wV2FsbFVwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxhbXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQzR3TnpjZ01UQXVOakUxUVRFZ01TQXdJREFnTUNBMUlERXlhREUwWVRFZ01TQXdJREFnTUNBdU9USXpMVEV1TXpnMWJDMHpMakEzTnkwM0xqTTRORUV5SURJZ01DQXdJREFnTVRVZ01rZzVZVElnTWlBd0lEQWdNQzB4TGpnME5pQXhMakl6V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeU1HRXlJRElnTUNBd0lERWdNaTB5YURSaE1pQXlJREFnTUNBeElESWdNbll4WVRFZ01TQXdJREFnTVMweElERklPV0V4SURFZ01DQXdJREV0TVMweGVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYW1wXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGFtcDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMnY2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQuMDc3IDEwLjYxNUExIDEgMCAwIDAgNSAxMmgxNGExIDEgMCAwIDAgLjkyMy0xLjM4NWwtMy4wNzctNy4zODRBMiAyIDAgMCAwIDE1IDJIOWEyIDIgMCAwIDAtMS44NDYgMS4yM1onLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIwYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExhbXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGFuZC1wbG90XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1USWdPQ0EyTFRNdE5pMHpkakV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0SURFeExqazVMVFV1TlNBekxqRTBZVEVnTVNBd0lEQWdNQ0F3SURFdU56UnNPQzQxSURRdU9EWmhNaUF5SURBZ01DQXdJRElnTUd3NExqVXROQzQ0Tm1FeElERWdNQ0F3SURBZ01DMHhMamMwVERFMklERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDJMalE1SURFeUxqZzFJREV4TGpBeUlEWXVNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGN1TlRFZ01USXVPRFVnTmk0MUlERTVMakUxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGFuZC1wbG90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGFuZFBsb3Q6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgOCA2LTMtNi0zdjEwJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTggMTEuOTktNS41IDMuMTRhMSAxIDAgMCAwIDAgMS43NGw4LjUgNC44NmEyIDIgMCAwIDAgMiAwbDguNS00Ljg2YTEgMSAwIDAgMCAwLTEuNzRMMTYgMTInLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ202LjQ5IDEyLjg1IDExLjAyIDYuMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy41MSAxMi44NSA2LjUgMTkuMTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGFuZFBsb3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGFuZG1hcmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UaDJMVGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV4TGpFeUlESXVNVGs0WVRJZ01pQXdJREFnTVNBeExqYzJMakF3Tm13M0xqZzJOaUF6TGpnME4yTXVORGMyTGpJek15NHpNUzQ1TkRrdExqSXlMamswT1VnekxqUTNOR010TGpVeklEQXRMalk1TlMwdU56RTJMUzR5TWkwdU9UUTVlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRoMkxUY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREU0ZGkwM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklESXlhREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFNGRpMDNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYW5kbWFya1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExhbmRtYXJrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE4di03JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExLjEyIDIuMTk4YTIgMiAwIDAgMSAxLjc2LjAwNmw3Ljg2NiAzLjg0N2MuNDc2LjIzMy4zMS45NDktLjIyLjk0OUgzLjQ3NGMtLjUzIDAtLjY5NS0uNzE2LS4yMi0uOTQ5eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE4di03JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE4di03JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMjJoMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOHYtNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMYW5kbWFyaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsYW5ndWFnZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TlNBNElEWWdOaUlnTHo0S0lDQThjR0YwYUNCa1BTSnROQ0F4TkNBMkxUWWdNaTB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURWb01USWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNbWd4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TWlBeU1pMDFMVEV3TFRVZ01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREU0YURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhbmd1YWdlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExhbmd1YWdlczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ201IDggNiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQgMTQgNi02IDItMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDVoMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMjItNS0xMC01IDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE4aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGFuZ3VhZ2VzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxhcHRvcC1taW5pbWFsLWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNR2d5TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE1DQXlJRElnTkMwMElpQXZQZ29nSUR4eVpXTjBJSGc5SWpNaUlIazlJalFpSUhkcFpIUm9QU0l4T0NJZ2FHVnBaMmgwUFNJeE1pSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhcHRvcC1taW5pbWFsLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGFwdG9wTWluaW1hbENoZWNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjBoMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMCAyIDIgNC00JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMycsIHk6ICc0Jywgd2lkdGg6ICcxOCcsIGhlaWdodDogJzEyJywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExhcHRvcE1pbmltYWxDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsYXB0b3AtbWluaW1hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1USWlJSGc5SWpNaUlIazlJalFpSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1pSWdlREk5SWpJeUlpQjVNVDBpTWpBaUlIa3lQU0l5TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhcHRvcC1taW5pbWFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGFwdG9wTWluaW1hbDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzEyJywgeDogJzMnLCB5OiAnNCcsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICcyMicsIHkxOiAnMjAnLCB5MjogJzIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExhcHRvcE1pbmltYWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGFwdG9wXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dOV0V5SURJZ01DQXdJREVnTWlBeWRqZ3VOVEkyWVRJZ01pQXdJREFnTUNBdU1qRXlMamc1TjJ3eExqQTJPQ0F5TGpFeU4yRXhJREVnTUNBd0lERXRMamtnTVM0ME5VZ3pMall5WVRFZ01TQXdJREFnTVMwdU9TMHhMalExYkRFdU1EWTRMVEl1TVRJM1FUSWdNaUF3SURBZ01DQTBJREUxTGpVeU5sWTNZVElnTWlBd0lEQWdNU0F5TFRKNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNHdOVFFnTVRVdU9UZzNTRE11T1RRMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhcHRvcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExhcHRvcDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCA1YTIgMiAwIDAgMSAyIDJ2OC41MjZhMiAyIDAgMCAwIC4yMTIuODk3bDEuMDY4IDIuMTI3YTEgMSAwIDAgMS0uOSAxLjQ1SDMuNjJhMSAxIDAgMCAxLS45LTEuNDVsMS4wNjgtMi4xMjdBMiAyIDAgMCAwIDQgMTUuNTI2VjdhMiAyIDAgMCAxIDItMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC4wNTQgMTUuOTg3SDMuOTQ2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExhcHRvcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsYXNzby1zZWxlY3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeU1tRTFJRFVnTUNBd0lERXRNaTAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFMkxqa3pZeTQ1Tmk0ME15QXhMamsyTGpjMElESXVPVGt1T1RFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNdU16UWdNVFJCTmk0NElEWXVPQ0F3SURBZ01TQXlJREV3WXpBdE5DNDBNaUEwTGpRNExUZ2dNVEF0T0hNeE1DQXpMalU0SURFd0lEaGhOeTR4T1NBM0xqRTVJREFnTUNBeExTNHpNeUF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURFNFlUSWdNaUF3SURFZ01DQXdMVFFnTWlBeUlEQWdNQ0F3SURBZ05Ib2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBMak16SURJeWFDMHVNRGxoTGpNMUxqTTFJREFnTUNBeExTNHlOQzB1TXpKMkxURXdZUzR6TkM0ek5DQXdJREFnTVNBdU16TXRMak0wWXk0d09DQXdJQzR4TlM0d015NHlNUzR3T0d3M0xqTTBJRFpoTGpNekxqTXpJREFnTUNBeExTNHlNUzQxT1dndE5DNDBPV3d0TWk0MU55QXpMamcxWVM0ek5TNHpOU0F3SURBZ01TMHVNamd1TVRSNklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhc3NvLXNlbGVjdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExhc3NvU2VsZWN0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMjJhNSA1IDAgMCAxLTItNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE2LjkzYy45Ni40MyAxLjk2Ljc0IDIuOTkuOTEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00zLjM0IDE0QTYuOCA2LjggMCAwIDEgMiAxMGMwLTQuNDIgNC40OC04IDEwLThzMTAgMy41OCAxMCA4YTcuMTkgNy4xOSAwIDAgMS0uMzMgMicgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMThhMiAyIDAgMSAwIDAtNCAyIDIgMCAwIDAgMCA0eicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNC4zMyAyMmgtLjA5YS4zNS4zNSAwIDAgMS0uMjQtLjMydi0xMGEuMzQuMzQgMCAwIDEgLjMzLS4zNGMuMDggMCAuMTUuMDMuMjEuMDhsNy4zNCA2YS4zMy4zMyAwIDAgMS0uMjEuNTloLTQuNDlsLTIuNTcgMy44NWEuMzUuMzUgMCAwIDEtLjI4LjE0eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExhc3NvU2VsZWN0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxhc3NvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDNNRFFnTVRRdU5EWTNRVEV3SURnZ01DQXdJREVnTWlBeE1HRXhNQ0E0SURBZ01DQXhJREl3SURBZ01UQWdPQ0F3SURBZ01TMHhNQ0E0SURFd0lEZ2dNQ0F3SURFdE5TNHhPREV0TVM0eE5UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNakpoTlNBMUlEQWdNQ0F4TFRJdE15NDVPVFFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTlNJZ1kzazlJakUySWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYXNzb1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExhc3NvOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMy43MDQgMTQuNDY3QTEwIDggMCAwIDEgMiAxMGExMCA4IDAgMCAxIDIwIDAgMTAgOCAwIDAgMS0xMCA4IDEwIDggMCAwIDEtNS4xODEtMS4xNTgnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIyYTUgNSAwIDAgMS0yLTMuOTk0JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnMTYnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMYXNzbztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsYXVnaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVROaE5pQTJJREFnTUNBeExUWWdOU0EySURZZ01DQXdJREV0TmkwMWFERXlXaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlPU0lnZURJOUlqa3VNREVpSUhreFBTSTVJaUI1TWowaU9TSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1UVWlJSGd5UFNJeE5TNHdNU0lnZVRFOUlqa2lJSGt5UFNJNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xhdWdoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGF1Z2g6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTNhNiA2IDAgMCAxLTYgNSA2IDYgMCAwIDEtNi01aDEyWicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc5JywgeDI6ICc5LjAxJywgeTE6ICc5JywgeTI6ICc5JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1JywgeDI6ICcxNS4wMScsIHkxOiAnOScsIHkyOiAnOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMYXVnaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsYXllcnMtMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVRNdU56UmhNaUF5SURBZ01DQXhMVElnTUV3eUxqVWdPQzQ0TjJFeElERWdNQ0F3SURFZ01DMHhMamMwVERFeElESXVNalpoTWlBeUlEQWdNQ0F4SURJZ01HdzRMalVnTkM0NE4yRXhJREVnTUNBd0lERWdNQ0F4TGpjMGVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qQWdNVFF1TWpnMUlERXVOUzQ0TkRWaE1TQXhJREFnTUNBeElEQWdNUzQzTkV3eE15QXlNUzQzTkdFeUlESWdNQ0F3SURFdE1pQXdiQzA0TGpVdE5DNDROMkV4SURFZ01DQXdJREVnTUMweExqYzBiREV1TlMwdU9EUTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYXllcnMtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExheWVyczI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTMgMTMuNzRhMiAyIDAgMCAxLTIgMEwyLjUgOC44N2ExIDEgMCAwIDEgMC0xLjc0TDExIDIuMjZhMiAyIDAgMCAxIDIgMGw4LjUgNC44N2ExIDEgMCAwIDEgMCAxLjc0eicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTIwIDE0LjI4NSAxLjUuODQ1YTEgMSAwIDAgMSAwIDEuNzRMMTMgMjEuNzRhMiAyIDAgMCAxLTIgMGwtOC41LTQuODdhMSAxIDAgMCAxIDAtMS43NGwxLjUtLjg0NScsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExheWVyczI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGF5ZXJzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVPRE1nTWk0eE9HRXlJRElnTUNBd0lEQXRNUzQyTmlBd1RESXVOaUEyTGpBNFlURWdNU0F3SURBZ01DQXdJREV1T0ROc09DNDFPQ0F6TGpreFlUSWdNaUF3SURBZ01DQXhMalkySURCc09DNDFPQzB6TGpsaE1TQXhJREFnTUNBd0lEQXRNUzQ0TTNvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01USmhNU0F4SURBZ01DQXdJQzQxT0M0NU1XdzRMallnTXk0NU1XRXlJRElnTUNBd0lEQWdNUzQyTlNBd2JEZ3VOVGd0TXk0NVFURWdNU0F3SURBZ01DQXlNaUF4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE4yRXhJREVnTUNBd0lEQWdMalU0TGpreGJEZ3VOaUF6TGpreFlUSWdNaUF3SURBZ01DQXhMalkxSURCc09DNDFPQzB6TGpsQk1TQXhJREFnTUNBd0lESXlJREUzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGF5ZXJzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGF5ZXJzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjgzIDIuMThhMiAyIDAgMCAwLTEuNjYgMEwyLjYgNi4wOGExIDEgMCAwIDAgMCAxLjgzbDguNTggMy45MWEyIDIgMCAwIDAgMS42NiAwbDguNTgtMy45YTEgMSAwIDAgMCAwLTEuODN6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDEyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTdhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDguNTgtMy45QTEgMSAwIDAgMCAyMiAxNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMYXllcnM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGF5ZXJzLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU9ETWdNaTR4T0dFeUlESWdNQ0F3SURBdE1TNDJOaUF3VERJdU5pQTJMakE0WVRFZ01TQXdJREFnTUNBd0lERXVPRE5zT0M0MU9DQXpMamt4WVRJZ01pQXdJREFnTUNBdU9ETXVNVGdnTWlBeUlEQWdNQ0F3SUM0NE15MHVNVGhzT0M0MU9DMHpMamxoTVNBeElEQWdNQ0F3SURBdE1TNDRNekY2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE4yZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F4TkhZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXlZVEVnTVNBd0lEQWdNQ0F1TlRndU9URnNPQzQySURNdU9URmhNaUF5SURBZ01DQXdJQzQ0TWpVdU1UYzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREUzWVRFZ01TQXdJREFnTUNBdU5UZ3VPVEZzT0M0MklETXVPVEZoTWlBeUlEQWdNQ0F3SURFdU5qVWdNR3d5TGpFeE5pMHVPVFl5SWlBdlBnbzhMM04yWno0PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGF5ZXJzLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMYXllcnNQbHVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjgzIDIuMThhMiAyIDAgMCAwLTEuNjYgMEwyLjYgNi4wOGExIDEgMCAwIDAgMCAxLjgzbDguNTggMy45MWEyIDIgMCAwIDAgLjgzLjE4IDIgMiAwIDAgMCAuODMtLjE4bDguNTgtMy45YTEgMSAwIDAgMCAwLTEuODMxeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE3aDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTR2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIC44MjUuMTc4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTdhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDIuMTE2LS45NjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJzUGx1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsYXlvdXQtZGFzaGJvYXJkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0k1SWlCNFBTSXpJaUI1UFNJeklpQnllRDBpTVNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSTFJaUI0UFNJeE5DSWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpjaUlHaGxhV2RvZEQwaU9TSWdlRDBpTVRRaUlIazlJakV5SWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJMUlpQjRQU0l6SWlCNVBTSXhOaUlnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYXlvdXQtZGFzaGJvYXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGF5b3V0RGFzaGJvYXJkOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc5JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNScsIHg6ICcxNCcsIHk6ICczJywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc5JywgeDogJzE0JywgeTogJzEyJywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc1JywgeDogJzMnLCB5OiAnMTYnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGF5b3V0RGFzaGJvYXJkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxheW91dC1ncmlkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0kzSWlCNFBTSXpJaUI1UFNJeklpQnllRDBpTVNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSTNJaUI0UFNJeE5DSWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpjaUlHaGxhV2RvZEQwaU55SWdlRDBpTVRRaUlIazlJakUwSWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJM0lpQjRQU0l6SWlCNVBTSXhOQ0lnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYXlvdXQtZ3JpZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExheW91dEdyaWQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICczJywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3JywgeDogJzE0JywgeTogJzMnLCByeDogJzEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMTQnLCB5OiAnMTQnLCByeDogJzEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICcxNCcsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMYXlvdXRHcmlkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxheW91dC1saXN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0kzSWlCNFBTSXpJaUI1UFNJeklpQnllRDBpTVNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSTNJaUI0UFNJeklpQjVQU0l4TkNJZ2NuZzlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURSb055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdPV2czSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE5XZzNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5TUdnM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xheW91dC1saXN0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGF5b3V0TGlzdDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNycsIHg6ICczJywgeTogJzMnLCByeDogJzEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICcxNCcsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA0aDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOWg3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE1aDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjBoNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMYXlvdXRMaXN0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxheW91dC1wYW5lbC1sZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0l4T0NJZ2VEMGlNeUlnZVQwaU15SWdjbmc5SWpFaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqY2lJR2hsYVdkb2REMGlOeUlnZUQwaU1UUWlJSGs5SWpNaUlISjRQU0l4SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJM0lpQm9aV2xuYUhROUlqY2lJSGc5SWpFMElpQjVQU0l4TkNJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGF5b3V0LXBhbmVsLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMYXlvdXRQYW5lbExlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNycsIHg6ICcxNCcsIHk6ICczJywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3JywgeDogJzE0JywgeTogJzE0Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExheW91dFBhbmVsTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsYXlvdXQtcGFuZWwtdG9wXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTnlJZ2VEMGlNeUlnZVQwaU15SWdjbmc5SWpFaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqY2lJR2hsYVdkb2REMGlOeUlnZUQwaU15SWdlVDBpTVRRaUlISjRQU0l4SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJM0lpQm9aV2xuYUhROUlqY2lJSGc5SWpFMElpQjVQU0l4TkNJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGF5b3V0LXBhbmVsLXRvcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExheW91dFBhbmVsVG9wOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnNycsIHg6ICczJywgeTogJzMnLCByeDogJzEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICcxNCcsIHJ4OiAnMScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNycsIHg6ICcxNCcsIHk6ICcxNCcsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMYXlvdXRQYW5lbFRvcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsYXlvdXQtdGVtcGxhdGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlOeUlnZUQwaU15SWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpraUlHaGxhV2RvZEQwaU55SWdlRDBpTXlJZ2VUMGlNVFFpSUhKNFBTSXhJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0kxSWlCb1pXbG5hSFE5SWpjaUlIZzlJakUySWlCNVBTSXhOQ0lnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYXlvdXQtdGVtcGxhdGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMYXlvdXRUZW1wbGF0ZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICczJywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzknLCBoZWlnaHQ6ICc3JywgeDogJzMnLCB5OiAnMTQnLCByeDogJzEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNScsIGhlaWdodDogJzcnLCB4OiAnMTYnLCB5OiAnMTQnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGF5b3V0VGVtcGxhdGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGVhZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTWpCQk55QTNJREFnTUNBeElEa3VPQ0EyTGpGRE1UVXVOU0ExSURFM0lEUXVORGdnTVRrZ01tTXhJRElnTWlBMExqRTRJRElnT0NBd0lEVXVOUzAwTGpjNElERXdMVEV3SURFd1dpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNV013TFRNZ01TNDROUzAxTGpNMklEVXVNRGd0TmtNNUxqVWdNVFF1TlRJZ01USWdNVE1nTVRNZ01USWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sZWFmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGVhZjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTExIDIwQTcgNyAwIDAgMSA5LjggNi4xQzE1LjUgNSAxNyA0LjQ4IDE5IDJjMSAyIDIgNC4xOCAyIDggMCA1LjUtNC43OCAxMC0xMCAxMFonIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIxYzAtMyAxLjg1LTUuMzYgNS4wOC02QzkuNSAxNC41MiAxMiAxMyAxMyAxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMZWFmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxlYWZ5LWdyZWVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNbU14TGpJMUxTNDVPRGNnTWk0eU55MHhMamszTlNBekxqa3RNaTR5WVRVdU5UWWdOUzQxTmlBd0lEQWdNU0F6TGpnZ01TNDFJRFFnTkNBd0lEQWdNQ0EyTGpFNE55MHlMak0xTXlBekxqVWdNeTQxSURBZ01DQXdJRE11TmprdE5TNHhNVFpCTXk0MUlETXVOU0F3SURBZ01DQXlNQzQ1TlNBNElETXVOU0F6TGpVZ01DQXhJREFnTVRZZ015NHdOV0V6TGpVZ015NDFJREFnTUNBd0xUVXVPRE14SURFdU16Y3pJRE11TlNBekxqVWdNQ0F3SURBdE5TNHhNVFlnTXk0Mk9TQTBJRFFnTUNBd0lEQXRNaTR6TkRnZ05pNHhOVFZETXk0ME9Ua2dNVFV1TkRJZ05DNDBNRGtnTVRZdU56RXlJRFF1TWlBeE9DNHhJRE11T1RJMklERTVMamMwTXlBekxqQXhOQ0F5TUM0M016SWdNaUF5TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1pQXhOeUEzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGVhZnktZ3JlZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMZWFmeUdyZWVuOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgMjJjMS4yNS0uOTg3IDIuMjctMS45NzUgMy45LTIuMmE1LjU2IDUuNTYgMCAwIDEgMy44IDEuNSA0IDQgMCAwIDAgNi4xODctMi4zNTMgMy41IDMuNSAwIDAgMCAzLjY5LTUuMTE2QTMuNSAzLjUgMCAwIDAgMjAuOTUgOCAzLjUgMy41IDAgMSAwIDE2IDMuMDVhMy41IDMuNSAwIDAgMC01LjgzMSAxLjM3MyAzLjUgMy41IDAgMCAwLTUuMTE2IDMuNjkgNCA0IDAgMCAwLTIuMzQ4IDYuMTU1QzMuNDk5IDE1LjQyIDQuNDA5IDE2LjcxMiA0LjIgMTguMSAzLjkyNiAxOS43NDMgMy4wMTQgMjAuNzMyIDIgMjInLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIyIDE3IDcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGVhZnlHcmVlbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsZWN0ZXJuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEpvTTJFeUlESWdNQ0F3SURBZ01TNDVNREl0TVM0ek9Hd3hMakExTmkwekxqTXpNMEV4SURFZ01DQXdJREFnTWpFZ05rZ3pZVEVnTVNBd0lEQWdNQzB1T1RVNElERXVNamczYkRFdU1EVTJJRE11TXpNMFFUSWdNaUF3SURBZ01DQTFJREV5YURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElEWldNMkV4SURFZ01DQXdJREF0TVMweGFDMHpJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0k0SWlCb1pXbG5hSFE5SWpFeUlpQjRQU0k0SWlCNVBTSXhNQ0lnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sZWN0ZXJuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGVjdGVybjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNiAxMmgzYTIgMiAwIDAgMCAxLjkwMi0xLjM4bDEuMDU2LTMuMzMzQTEgMSAwIDAgMCAyMSA2SDNhMSAxIDAgMCAwLS45NTggMS4yODdsMS4wNTYgMy4zMzRBMiAyIDAgMCAwIDUgMTJoMycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICcxMicsIHg6ICc4JywgeTogJzEwJywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExlY3Rlcm47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGlicmFyeS1iaWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSXhPQ0lnZUQwaU15SWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTTNZeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVOQ0F4T0M0NVl5NHlMalV0TGpFZ01TNHhMUzQySURFdU0yd3RNUzQ1TGpkakxTNDFMakl0TVM0eExTNHhMVEV1TXkwdU5rd3hNUzR4SURVdU1XTXRMakl0TGpVdU1TMHhMakV1TmkweExqTnNNUzQ1TFM0M1l5NDFMUzR5SURFdU1TNHhJREV1TXk0MldpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saWJyYXJ5LWJpZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExpYnJhcnlCaWc6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDN2MTgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAuNCAxOC45Yy4yLjUtLjEgMS4xLS42IDEuM2wtMS45LjdjLS41LjItMS4xLS4xLTEuMy0uNkwxMS4xIDUuMWMtLjItLjUuMS0xLjEuNi0xLjNsMS45LS43Yy41LS4yIDEuMS4xIDEuMy42WicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpYnJhcnlCaWc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGlicmFyeVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTmlBMElERTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEyZGpFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEaDJNVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTkhZeE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saWJyYXJ5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGlicmFyeTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNiA2IDQgMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnYxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDh2MTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA0djE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpYnJhcnk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGlmZS1idW95XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5DNDVNeUEwTGpreklEUXVNalFnTkM0eU5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUXVPRE1nT1M0eE55QTBMakkwTFRRdU1qUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBMamd6SURFMExqZ3pJRFF1TWpRZ05DNHlOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzR4TnlBeE5DNDRNeTAwTGpJMElEUXVNalFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TWlJZ2NqMGlOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlmZS1idW95XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGlmZUJ1b3k6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNC45MyA0LjkzIDQuMjQgNC4yNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNC44MyA5LjE3IDQuMjQtNC4yNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNC44MyAxNC44MyA0LjI0IDQuMjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS4xNyAxNC44My00LjI0IDQuMjQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaWZlQnVveTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaWdhdHVyZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRKb01uWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F5TUdnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERXlhRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTWpCb05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNRlk0WVRRZ05DQXdJREFnTVNBM0xqUTJOQzB5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlnYXR1cmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaWdhdHVyZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMmgydjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjBoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAyMGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjBWOGE0IDQgMCAwIDEgNy40NjQtMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaWdhdHVyZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaWdodGJ1bGItb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVPQ0F4TVM0eVl5NDRMUzQ1SURFdU1pMHlJREV1TWkwekxqSmhOaUEySURBZ01DQXdMVGt1TXkwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUlESWdNakFnTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU15QTJMak5oTkM0Mk55QTBMalkzSURBZ01DQXdJREV1TWlBMUxqSmpMamN1TnlBeExqTWdNUzQxSURFdU5TQXlMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRob05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNakpvTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpZ2h0YnVsYi1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaWdodGJ1bGJPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuOCAxMS4yYy44LS45IDEuMi0yIDEuMi0zLjJhNiA2IDAgMCAwLTkuMy01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjMgNi4zYTQuNjcgNC42NyAwIDAgMCAxLjIgNS4yYy43LjcgMS4zIDEuNSAxLjUgMi41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMThoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyMmg0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpZ2h0YnVsYk9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaWdodGJ1bGJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01UUmpMakl0TVNBdU55MHhMamNnTVM0MUxUSXVOU0F4TFM0NUlERXVOUzB5TGpJZ01TNDFMVE11TlVFMklEWWdNQ0F3SURBZ05pQTRZekFnTVNBdU1pQXlMaklnTVM0MUlETXVOUzQzTGpjZ01TNHpJREV1TlNBeExqVWdNaTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFNGFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREl5YURRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpZ2h0YnVsYlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExpZ2h0YnVsYjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNSAxNGMuMi0xIC43LTEuNyAxLjUtMi41IDEtLjkgMS41LTIuMiAxLjUtMy41QTYgNiAwIDAgMCA2IDhjMCAxIC4yIDIuMiAxLjUgMy41LjcuNyAxLjMgMS41IDEuNSAyLjUnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE4aDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjJoNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaWdodGJ1bGI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGluZS1zcXVpZ2dsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUF6TGpWak5TMHlJRGNnTWk0MUlETWdORU14TGpVZ01UQWdNaUF4TlNBMUlERTJZelVnTWlBNUxURXdJREUwTFRkekxqVWdNVE11TlMwMElERXlZeTAxTFRJdU5TNDFMVEV4SURZdE1pSWdMejRLUEM5emRtYyspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpbmUtc3F1aWdnbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaW5lU3F1aWdnbGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ003IDMuNWM1LTIgNyAyLjUgMyA0QzEuNSAxMCAyIDE1IDUgMTZjNSAyIDktMTAgMTQtN3MuNSAxMy41LTQgMTJjLTUtMi41LjUtMTEgNi0yJyB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGluZVNxdWlnZ2xlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxpbmstMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F4TjBnM1FUVWdOU0F3SURBZ01TQTNJRGRvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ04yZ3lZVFVnTlNBd0lERWdNU0F3SURFd2FDMHlJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSTRJaUI0TWowaU1UWWlJSGt4UFNJeE1pSWdlVEk5SWpFeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpbmstMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExpbmsyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTkgMTdIN0E1IDUgMCAwIDEgNyA3aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgN2gyYTUgNSAwIDEgMSAwIDEwaC0yJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzE2JywgeTE6ICcxMicsIHkyOiAnMTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGluazI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGluay0yLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F4TjBnM1FUVWdOU0F3SURBZ01TQTNJRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURkb01tRTFJRFVnTUNBd0lERWdOQ0E0SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0k0SWlCNE1qMGlNVElpSUhreFBTSXhNaUlnZVRJOUlqRXlJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXlJaUI0TWowaU1qSWlJSGt4UFNJeUlpQjVNajBpTWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpbmstMi1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaW5rMk9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ005IDE3SDdBNSA1IDAgMCAxIDcgNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA3aDJhNSA1IDAgMCAxIDQgOCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc4JywgeDI6ICcxMicsIHkxOiAnMTInLCB5MjogJzEyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzIyJywgeTE6ICcyJywgeTI6ICcyMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaW5rMk9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaW5rXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVE5oTlNBMUlEQWdNQ0F3SURjdU5UUXVOVFJzTXkwellUVWdOU0F3SURBZ01DMDNMakEzTFRjdU1EZHNMVEV1TnpJZ01TNDNNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRGaE5TQTFJREFnTUNBd0xUY3VOVFF0TGpVMGJDMHpJRE5oTlNBMUlEQWdNQ0F3SURjdU1EY2dOeTR3TjJ3eExqY3hMVEV1TnpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpbmtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaW5rOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEzYTUgNSAwIDAgMCA3LjU0LjU0bDMtM2E1IDUgMCAwIDAtNy4wNy03LjA3bC0xLjcyIDEuNzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGluaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaW5rZWRpblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnT0dFMklEWWdNQ0F3SURFZ05pQTJkamRvTFRSMkxUZGhNaUF5SURBZ01DQXdMVEl0TWlBeUlESWdNQ0F3SURBdE1pQXlkamRvTFRSMkxUZGhOaUEySURBZ01DQXhJRFl0Tm5vaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqUWlJR2hsYVdkb2REMGlNVElpSUhnOUlqSWlJSGs5SWpraUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5DSWdZM2s5SWpRaUlISTlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlua2VkaW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPWxpbmtlZGluIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBMaW5rZWRpbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4YTYgNiAwIDAgMSA2IDZ2N2gtNHYtN2EyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMC0yIDJ2N2gtNHYtN2E2IDYgMCAwIDEgNi02eicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc0JywgaGVpZ2h0OiAnMTInLCB4OiAnMicsIHk6ICc5JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNCcsIGN5OiAnNCcsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpbmtlZGluO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxpc3QtY2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05VZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TWtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQXhPVWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlNBeE9DQXlJRElnTkMwMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaXN0Q2hlY2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNUgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEySDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTlIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxOCAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaXN0LWNoZWNrc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTldnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QXhNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXlBeE9XZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHpJREUzSURJZ01pQTBMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVE1nTnlBeUlESWdOQzAwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlzdC1jaGVja3NcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaXN0Q2hlY2tzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzIDVoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDE5aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyAxNyAyIDIgNC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgNyAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RDaGVja3M7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGlzdC1jaGV2cm9ucy1kb3duLXVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTFhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRKb09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhPV2c0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlNBMUlETWdNeUF6TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlERTVJRE10TXlBeklETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LWNoZXZyb25zLWRvd24tdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaXN0Q2hldnJvbnNEb3duVXA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyA1aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTloOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA1IDMgMyAzLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTkgMy0zIDMgMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0Q2hldnJvbnNEb3duVXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGlzdC1jaGV2cm9ucy11cC1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTFhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRKb09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhPV2c0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlNBNElETXRNeUF6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlERTJJRE1nTXlBekxUTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LWNoZXZyb25zLXVwLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaXN0Q2hldnJvbnNVcERvd246IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyA1aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTloOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA4IDMtMyAzIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTYgMyAzIDMtMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0Q2hldnJvbnNVcERvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGlzdC1jb2xsYXBzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTldneE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEpvTVRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTVhREV4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB6SURFd0lETXRNeTB6TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRNZ01qQWdNeTB6TFRNdE15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LWNvbGxhcHNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGlzdENvbGxhcHNlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDVoMTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJoMTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTloMTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyAxMCAzLTMtMy0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgMjAgMy0zLTMtMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0Q29sbGFwc2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGlzdC1lbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05VZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TWtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTVTRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUySURFMkxUTWdNeUF6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElEVjJNVEpoTWlBeUlEQWdNQ0F4TFRJZ01tZ3ROaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlzdC1lbmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaXN0RW5kOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDVIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMkgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTlIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxNi0zIDMgMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDV2MTJhMiAyIDAgMCAxLTIgMmgtNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0RW5kO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxpc3QtZmlsdGVyLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05VZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREV5YURFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERTVhRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURWb05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dPRll5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlzdC1maWx0ZXItcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExpc3RGaWx0ZXJQbHVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDVIMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaDEyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTloNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA1aDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgOFYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RGaWx0ZXJQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxpc3QtZmlsdGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTFhREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFeWFERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREU1YURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtZmlsdGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGlzdEZpbHRlcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDVoMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMmgxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE5aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdEZpbHRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaXN0LWluZGVudC1kZWNyZWFzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTlVneE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEpJTVRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERTVTREV4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAzSURndE5DQTBJRFFnTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtaW5kZW50LWRlY3JlYXNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGlzdEluZGVudERlY3JlYXNlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDVIMTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJIMTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTlIMTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyA4LTQgNCA0IDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdEluZGVudERlY3JlYXNlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxpc3QtaW5kZW50LWluY3JlYXNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdOVWd4TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01USklNVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFNVNERXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHpJRGdnTkNBMExUUWdOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlzdC1pbmRlbnQtaW5jcmVhc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaXN0SW5kZW50SW5jcmVhc2U6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNUgxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMkgxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOUgxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDggNCA0LTQgNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0SW5kZW50SW5jcmVhc2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbGlzdC1taW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTlVneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQXhNa2d6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE9VZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TW1ndE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGlzdE1pbnVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDVIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxMkgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE5SDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJoLTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdE1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxpc3QtbXVzaWNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05VZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNU0F4TWtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQXhPVWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE5sWTFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU0SWlCamVUMGlNVFlpSUhJOUlqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LW11c2ljXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGlzdE11c2ljOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDVIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxMkgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE5SDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTZWNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxNicsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RNdXNpYztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaXN0LW9yZGVyZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ05XZ3hNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRKb01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhJREU1YURFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElEUm9NWFkxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURsb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNDFJREl3U0RNdU5HTXdMVEVnTWk0MkxURXVPVEkxSURJdU5pMHpMalZoTVM0MUlERXVOU0F3SURBZ01DMHlMall0TVM0d01pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LW9yZGVyZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaXN0T3JkZXJlZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSA1aDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDEyaDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE5aDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgNGgxdjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA5aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi41IDIwSDMuNGMwLTEgMi42LTEuOTI1IDIuNi0zLjVhMS41IDEuNSAwIDAgMC0yLjYtMS4wMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0T3JkZXJlZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaXN0LXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05VZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNU0F4TWtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhPVWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBNWRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREV5YUMwMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExpc3RQbHVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDVIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxMkgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE5SDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOXY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyaC02JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxpc3QtcmVzdGFydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTlVneklpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERXlTRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRsSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGhoTlNBMUlEQWdNQ0F3SURrdE15QTBMalVnTkM0MUlEQWdNQ0F3TFRRdU5TMDBMalZqTFRFdU16TWdNQzB5TGpVMExqVTBMVE11TkRFZ01TNDBNVXd4TVNBeE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVEIyTkdnMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtcmVzdGFydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExpc3RSZXN0YXJ0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDVIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEySDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxOUgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4YTUgNSAwIDAgMCA5LTMgNC41IDQuNSAwIDAgMC00LjUtNC41Yy0xLjMzIDAtMi41NC41NC0zLjQxIDEuNDFMMTEgMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTB2NGg0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RSZXN0YXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxpc3Qtc3RhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBMWFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEpvTVRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UbG9NVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUySURndE15MHpJRE10TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UbFdOMkV5SURJZ01DQXdJREF0TWkweWFDMDJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LXN0YXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGlzdFN0YXJ0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgNWg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJoMTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxOWgxMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiA4LTMtMyAzLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTlWN2EyIDIgMCAwIDAtMi0yaC02JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RTdGFydDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaXN0LXRvZG9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ05XZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUF4TW1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QXhPV2c0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB6SURFM0lESWdNaUEwTFRRaUlDOCtDaUFnUEhKbFkzUWdlRDBpTXlJZ2VUMGlOQ0lnZDJsa2RHZzlJallpSUdobGFXZG9kRDBpTmlJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlzdC10b2RvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGlzdFRvZG86IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgNWg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDEyaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTloOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDE3IDIgMiA0LTQnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzQnLCB3aWR0aDogJzYnLCBoZWlnaHQ6ICc2Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RUb2RvO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxpc3QtdHJlZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0ExYURFeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QXhNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXlBeE9XZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV3WVRJZ01pQXdJREFnTUNBeUlESm9NeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUExZGpFeVlUSWdNaUF3SURBZ01DQXlJREpvTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3QtdHJlZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExpc3RUcmVlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggNWgxMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDE5aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMGEyIDIgMCAwIDAgMiAyaDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA1djEyYTIgMiAwIDAgMCAyIDJoMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0VHJlZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaXN0LXZpZGVvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdOVWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE1rZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4T1VneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhNaTR3TUROaE1TQXhJREFnTUNBeElERXVOVEUzTFM0NE5UbHNOQzQ1T1RjZ01pNDVPVGRoTVNBeElEQWdNQ0F4SURBZ01TNDNNVGhzTFRRdU9UazNJREl1T1RrM1lURWdNU0F3SURBZ01TMHhMalV4TnkwdU9EWjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LXZpZGVvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTGlzdFZpZGVvOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDVIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMkgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE5SDMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUgMTIuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RWaWRlbztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsaXN0LXhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05VZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNU0F4TWtneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhPVWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlM0MUlEa3VOU0ExSURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJd0xqVWdPUzQxTFRVZ05TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0LXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaXN0WDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiA1SDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTJIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOUgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1LjUgOS41IDUgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC41IDkuNS01IDUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdFg7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbG9hZGVyLWNpcmNsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKaE9TQTVJREFnTVNBeExUWXVNakU1TFRndU5UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2FkZXItY2lyY2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTG9hZGVyQ2lyY2xlOiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYnIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgTG9hZGVyQ2lyY2xlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxpc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBMWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVGxvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEVm9NVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb01UTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVGxvTVRNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xpc3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMaXN0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgNWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxOWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA1aDEzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoMTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOWgxMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMaXN0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxvYWRlci1waW53aGVlbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRKaE1TQXhJREFnTUNBeExURXdJREFnTVNBeElEQWdNQ0F3TFRFd0lEQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNakF1TjJFeElERWdNQ0F4SURFZ05TMDRMamNnTVNBeElEQWdNU0F3SURVdE9DNDJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJRE11TTJFeElERWdNQ0F4SURFZ05TQTRMallnTVNBeElEQWdNU0F3SURVZ09DNDJJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqRXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2FkZXItcGlud2hlZWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMb2FkZXJQaW53aGVlbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMmExIDEgMCAwIDEtMTAgMCAxIDEgMCAwIDAtMTAgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIwLjdhMSAxIDAgMSAxIDUtOC43IDEgMSAwIDEgMCA1LTguNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDMuM2ExIDEgMCAxIDEgNSA4LjYgMSAxIDAgMSAwIDUgOC42JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExvYWRlclBpbndoZWVsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxvYWRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5pNHlJRGN1T0NBeUxqa3RNaTQ1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeE1tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaTR5SURFMkxqSWdNaTQ1SURJdU9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGgyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TkM0NUlERTVMakVnTWk0NUxUSXVPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TW1nMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMExqa2dOQzQ1SURJdU9TQXlMamtpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbG9hZGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTG9hZGVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi4yIDcuOCAyLjktMi45JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEyaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYuMiAxNi4yIDIuOSAyLjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTh2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200LjkgMTkuMSAyLjktMi45JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200LjkgNC45IDIuOSAyLjknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTG9hZGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxvY2F0ZS1maXhlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlNaUlnZURJOUlqVWlJSGt4UFNJeE1pSWdlVEk5SWpFeUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE9TSWdlREk5SWpJeUlpQjVNVDBpTVRJaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4TWlJZ2VURTlJaklpSUhreVBTSTFJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRXlJaUI1TVQwaU1Ua2lJSGt5UFNJeU1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJM0lpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xvY2F0ZS1maXhlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExvY2F0ZUZpeGVkOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzUnLCB5MTogJzEyJywgeTI6ICcxMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxOScsIHgyOiAnMjInLCB5MTogJzEyJywgeTI6ICcxMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzInLCB5MjogJzUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcxOScsIHkyOiAnMjInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnNycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExvY2F0ZUZpeGVkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxvY2F0ZS1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UbDJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DNDRPU0F4TXk0eU5HRTNJRGNnTUNBd0lEQXRPQzR4TXkwNExqRXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F4TW1neklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXlhRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeTR3TlNBM0xqQTFZVGNnTnlBd0lEQWdNQ0E1TGprZ09TNDVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2NhdGUtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTG9jYXRlT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE5djMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4Ljg5IDEzLjI0YTcgNyAwIDAgMC04LjEzLTguMTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTJoMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuMDUgNy4wNWE3IDcgMCAwIDAgOS45IDkuOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMb2NhdGVPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbG9jYXRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGJHbHVaU0I0TVQwaU1pSWdlREk5SWpVaUlIa3hQU0l4TWlJZ2VUSTlJakV5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4T1NJZ2VESTlJakl5SWlCNU1UMGlNVElpSUhreVBTSXhNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVElpSUhneVBTSXhNaUlnZVRFOUlqSWlJSGt5UFNJMUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE1pSWdlREk5SWpFeUlpQjVNVDBpTVRraUlIa3lQU0l5TWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0kzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbG9jYXRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTG9jYXRlOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzUnLCB5MTogJzEyJywgeTI6ICcxMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxOScsIHgyOiAnMjInLCB5MTogJzEyJywgeTI6ICcxMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzInLCB5MjogJzUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcxOScsIHkyOiAnMjInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMb2NhdGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbG9jay1rZXlob2xlLW9wZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFMklpQnlQU0l4SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeE9DSWdhR1ZwWjJoMFBTSXhNaUlnZUQwaU15SWdlVDBpTVRBaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFd1ZqZGhOU0ExSURBZ01DQXhJRGt1TXpNdE1pNDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2NrLWtleWhvbGUtb3BlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExvY2tLZXlob2xlT3BlbjogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxNicsIHI6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTInLCB4OiAnMycsIHk6ICcxMCcsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEwVjdhNSA1IDAgMCAxIDkuMzMtMi41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExvY2tLZXlob2xlT3BlbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsb2NrLWtleWhvbGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFMklpQnlQU0l4SWlBdlBnb2dJRHh5WldOMElIZzlJak1pSUhrOUlqRXdJaUIzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRJaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFd1ZqZGhOU0ExSURBZ01DQXhJREV3SURCMk15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2NrLWtleWhvbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMb2NrS2V5aG9sZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxNicsIHI6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMycsIHk6ICcxMCcsIHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxMicsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEwVjdhNSA1IDAgMCAxIDEwIDB2MycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMb2NrS2V5aG9sZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsb2NrLW9wZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVEVpSUhnOUlqTWlJSGs5SWpFeElpQnllRDBpTWlJZ2NuazlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRGV04yRTFJRFVnTUNBd0lERWdPUzQ1TFRFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xvY2stb3BlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExvY2tPcGVuOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTEnLCB4OiAnMycsIHk6ICcxMScsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDExVjdhNSA1IDAgMCAxIDkuOS0xJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExvY2tPcGVuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVEVpSUhnOUlqTWlJSGs5SWpFeElpQnllRDBpTWlJZ2NuazlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRGV04yRTFJRFVnTUNBd0lERWdNVEFnTUhZMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMb2NrOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTEnLCB4OiAnMycsIHk6ICcxMScsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDExVjdhNSA1IDAgMCAxIDEwIDB2NCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMb2NrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxvZy1pblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEFnTVRjZ05TMDFMVFV0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01USklNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTTJnMFlUSWdNaUF3SURBZ01TQXlJREoyTVRSaE1pQXlJREFnTUNBeExUSWdNbWd0TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xvZy1pblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IExvZ0luOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEwIDE3IDUtNS01LTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTJIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzaDRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyaC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExvZ0luO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxvZy1vdXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UY2dOUzAxTFRVdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEpJT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeU1VZzFZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5YURRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xvZy1vdXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMb2dPdXQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTcgNS01LTUtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMkg5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExvZ091dDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBsb2dzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTFhREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRKb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhPV2d4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURWb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNbWd4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFNWFERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpJRFZvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ01USm9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVRsb09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2dzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTG9nczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDVoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxOWgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNWgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE5aDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgNWg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDEyaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTloOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBMb2dzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGxvbGxpcG9wXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNU0lnWTNrOUlqRXhJaUJ5UFNJNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TQXlNUzAwTGpNdE5DNHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNU0F4TVdFeUlESWdNQ0F3SURBZ05DQXdJRFFnTkNBd0lEQWdNQzA0SURBZ05pQTJJREFnTUNBd0lERXlJREFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbG9sbGlwb3BcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMb2xsaXBvcDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICcxMScsIHI6ICc4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDIxLTQuMy00LjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTFhMiAyIDAgMCAwIDQgMCA0IDQgMCAwIDAtOCAwIDYgNiAwIDAgMCAxMiAwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IExvbGxpcG9wO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIGx1Z2dhZ2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeU1HRXlJRElnTUNBd0lERXRNaTB5VmpoaE1pQXlJREFnTUNBeElESXRNbWd4TW1FeUlESWdNQ0F3SURFZ01pQXlkakV3WVRJZ01pQXdJREFnTVMweUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVGhXTkdFeUlESWdNQ0F3SURFZ01pMHlhRFJoTWlBeUlEQWdNQ0F4SURJZ01uWXhOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTWpCb05DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOaUlnWTNrOUlqSXdJaUJ5UFNJeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqZ2lJR041UFNJeU1DSWdjajBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2x1Z2dhZ2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBMdWdnYWdlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTYgMjBhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMThWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyMGg0JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzIwJywgcjogJzInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc4JywgY3k6ICcyMCcsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IEx1Z2dhZ2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFnbmV0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1USWdNVFVnTkNBMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUxqTTFNaUF4TUM0Mk5EaGhNUzR5TURVZ01TNHlNRFVnTUNBd0lEQWdNQ0F4TGpjd05Hd3lMakk1TmlBeUxqSTVObUV4TGpJd05TQXhMakl3TlNBd0lEQWdNQ0F4TGpjd05DQXdiRFl1TURJNUxUWXVNREk1WVRFZ01TQXdJREVnTVNBeklETnNMVFl1TURJNUlEWXVNREk1WVRFdU1qQTFJREV1TWpBMUlEQWdNQ0F3SURBZ01TNDNNRFJzTWk0eU9UWWdNaTR5T1RaaE1TNHlNRFVnTVM0eU1EVWdNQ0F3SURBZ01TNDNNRFFnTUd3MkxqTTJOUzAyTGpNMk4wRXhJREVnTUNBd0lEQWdPQzQzTVRZZ05DNHlPREo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAxSURnZ05DQTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYWduZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNYWduZXQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMTUgNCA0JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuMzUyIDEwLjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNi4wMjktNi4wMjlhMSAxIDAgMSAxIDMgM2wtNi4wMjkgNi4wMjlhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDYuMzY1LTYuMzY3QTEgMSAwIDAgMCA4LjcxNiA0LjI4MnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ201IDggNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1hZ25ldDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtYWlsLWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVE5XTm1FeUlESWdNQ0F3SURBdE1pMHlTRFJoTWlBeUlEQWdNQ0F3TFRJZ01uWXhNbU13SURFdU1TNDVJRElnTWlBeWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJRGN0T0M0NU55QTFMamRoTVM0NU5DQXhMamswSURBZ01DQXhMVEl1TURZZ01Fd3lJRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUySURFNUlESWdNaUEwTFRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21haWwtY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNYWlsQ2hlY2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxOSAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1haWxDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtYWlsLW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVFZXTm1FeUlESWdNQ0F3SURBdE1pMHlTRFJoTWlBeUlEQWdNQ0F3TFRJZ01uWXhNbU13SURFdU1TNDVJRElnTWlBeWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJRGN0T0M0NU55QTFMamRoTVM0NU5DQXhMamswSURBZ01DQXhMVEl1TURZZ01Fd3lJRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFNWFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYWlsLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFpbE1pbnVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIyIDE1VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTloNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNYWlsTWludXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFpbC1vcGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVNaUE0TGpSakxqVXVNemd1T0M0NU55NDRJREV1Tm5ZeE1HRXlJRElnTUNBd0lERXRNaUF5U0RSaE1pQXlJREFnTUNBeExUSXRNbFl4TUdFeUlESWdNQ0F3SURFZ0xqZ3RNUzQyYkRndE5tRXlJRElnTUNBd0lERWdNaTQwSURCc09DQTJXaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNaklnTVRBdE9DNDVOeUExTGpkaE1TNDVOQ0F4TGprMElEQWdNQ0F4TFRJdU1EWWdNRXd5SURFd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21haWwtb3BlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1haWxPcGVuOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxLjIgOC40Yy41LjM4LjguOTcuOCAxLjZ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWMTBhMiAyIDAgMCAxIC44LTEuNmw4LTZhMiAyIDAgMCAxIDIuNCAwbDggNlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAxMC04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbE9wZW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFpbC1wbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVE5XTm1FeUlESWdNQ0F3SURBdE1pMHlTRFJoTWlBeUlEQWdNQ0F3TFRJZ01uWXhNbU13SURFdU1TNDVJRElnTWlBeWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJRGN0T0M0NU55QTFMamRoTVM0NU5DQXhMamswSURBZ01DQXhMVEl1TURZZ01Fd3lJRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURFMmRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREU1YURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21haWwtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1haWxQbHVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTZ2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOWg2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1haWxQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1haWwtcXVlc3Rpb24tbWFya1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRBdU5WWTJZVElnTWlBd0lEQWdNQzB5TFRKSU5HRXlJRElnTUNBd0lEQXRNaUF5ZGpFeVl6QWdNUzR4TGprZ01pQXlJREpvTVRJdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qSWdOeTA0TGprM0lEVXVOMkV4TGprMElERXVPVFFnTUNBd0lERXRNaTR3TmlBd1RESWdOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRVdU1qaGpMakl0TGpRdU5TMHVPQzQ1TFRGaE1pNHhJREl1TVNBd0lEQWdNU0F5TGpZdU5HTXVNeTQwTGpVdU9DNDFJREV1TXlBd0lERXVNeTB5SURJdE1pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0F5TW5ZdU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYWlsLXF1ZXN0aW9uLW1hcmtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNYWlsUXVlc3Rpb25NYXJrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNS4yOGMuMi0uNC41LS44LjktMWEyLjEgMi4xIDAgMCAxIDIuNi40Yy4zLjQuNS44LjUgMS4zIDAgMS4zLTIgMi0yIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMjJ2LjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1haWxRdWVzdGlvbk1hcms7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFpbC1zZWFyY2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01USXVOVlkyWVRJZ01pQXdJREFnTUMweUxUSklOR0V5SURJZ01DQXdJREF0TWlBeWRqRXlZekFnTVM0eExqa2dNaUF5SURKb055NDFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUEzTFRndU9UY2dOUzQzWVRFdU9UUWdNUzQ1TkNBd0lEQWdNUzB5TGpBMklEQk1NaUEzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeU1XRXpJRE1nTUNBeElEQWdNQzAySURNZ015QXdJREFnTUNBd0lEWmFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU0SWlCamVUMGlNVGdpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREl5TFRFdU5TMHhMalVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFpbC1zZWFyY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNYWlsU2VhcmNoOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIyIDEyLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDcuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIxYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNlonIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTgnLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAyMi0xLjUtMS41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1haWxTZWFyY2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFpbC13YXJuaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVEF1TlZZMllUSWdNaUF3SURBZ01DMHlMVEpJTkdFeUlESWdNQ0F3SURBdE1pQXlkakV5WXpBZ01TNHhMamtnTWlBeUlESm9NVEl1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ055MDRMamszSURVdU4yRXhMamswSURFdU9UUWdNQ0F3SURFdE1pNHdOaUF3VERJZ055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVFIyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01qSjJMakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFpbC13YXJuaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFpbFdhcm5pbmc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTAuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMTIuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE0djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMjJ2LjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1haWxXYXJuaW5nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1haWwteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVROV05tRXlJRElnTUNBd0lEQXRNaTB5U0RSaE1pQXlJREFnTUNBd0xUSWdNbll4TW1Nd0lERXVNUzQ1SURJZ01pQXlhRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURjdE9DNDVOeUExTGpkaE1TNDVOQ0F4TGprMElEQWdNQ0F4TFRJdU1EWWdNRXd5SURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0lERTNJRFFnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ01UY3ROQ0EwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFpbC14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFpbFg6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxNyA0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMTctNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1haWxYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1haWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ055MDRMams1TVNBMUxqY3lOMkV5SURJZ01DQXdJREV0TWk0d01Ea2dNRXd5SURjaUlDOCtDaUFnUEhKbFkzUWdlRDBpTWlJZ2VUMGlOQ0lnZDJsa2RHZzlJakl3SWlCb1pXbG5hSFE5SWpFMklpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21haWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNYWlsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIyIDctOC45OTEgNS43MjdhMiAyIDAgMCAxLTIuMDA5IDBMMiA3JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICc0Jywgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE2Jywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1haWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFpbGJveFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRkaE1pQXlJREFnTUNBeExUSWdNa2cwWVRJZ01pQXdJREFnTVMweUxUSldPUzQxUXpJZ055QTBJRFVnTmk0MUlEVklNVGhqTWk0eUlEQWdOQ0F4TGpnZ05DQTBkamhhSWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJakUxTERrZ01UZ3NPU0F4T0N3eE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNDFJRFZET1NBMUlERXhJRGNnTVRFZ09TNDFWakUzWVRJZ01pQXdJREFnTVMweUlESWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqWWlJSGd5UFNJM0lpQjVNVDBpTVRBaUlIa3lQU0l4TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21haWxib3hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNYWlsYm94OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIyIDE3YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjkuNUMyIDcgNCA1IDYuNSA1SDE4YzIuMiAwIDQgMS44IDQgNHY4WicgfV0sXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzE1LDkgMTgsOSAxOCwxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjUgNUM5IDUgMTEgNyAxMSA5LjVWMTdhMiAyIDAgMCAxLTIgMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc3JywgeTE6ICcxMCcsIHkyOiAnMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbGJveDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtYWlsc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRsaE1pQXlJREFnTUNBeExUSWdNa2cwWVRJZ01pQXdJREFnTVMweUxUSjJMVGhoTWlBeUlEQWdNQ0F4SURFdE1TNDNNeklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURVdU5TMDJMalF4T1NBMExqRTNPV0V5SURJZ01DQXdJREV0TWk0eE5qSWdNRXczSURVdU5TSWdMejRLSUNBOGNtVmpkQ0I0UFNJM0lpQjVQU0l6SWlCM2FXUjBhRDBpTVRVaUlHaGxhV2RvZEQwaU1USWlJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21haWxzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFpbHM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LThhMiAyIDAgMCAxIDEtMS43MzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNS41LTYuNDE5IDQuMTc5YTIgMiAwIDAgMS0yLjE2MiAwTDcgNS41JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNycsIHk6ICczJywgd2lkdGg6ICcxNScsIGhlaWdodDogJzEyJywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1haWxzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1hcC1taW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEVnTVRrdE1TNHhNRFl0TGpVMU1tRXlJRElnTUNBd0lEQXRNUzQzT0RnZ01Hd3RNeTQyTlRrZ01TNDRNMEV4SURFZ01DQXdJREVnTXlBeE9TNHpPREZXTmk0Mk1UaGhNU0F4SURBZ01DQXhJQzQxTlRNdExqZzVOR3cwTGpVMU15MHlMakkzTjJFeUlESWdNQ0F3SURFZ01TNDNPRGdnTUd3MExqSXhNaUF5TGpFd05tRXlJRElnTUNBd0lEQWdNUzQzT0RnZ01Hd3pMalkxT1MweExqZ3pRVEVnTVNBd0lEQWdNU0F5TVNBMExqWXhPVll4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ05TNDNOalJXTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERTRhQzAySWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURNdU1qTTJkakUxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFwTWludXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxNCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDUuNzY0VjE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE4aC02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMy4yMzZ2MTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWFwTWludXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFwLXBpbi1jaGVjay1pbnNpZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UQmpNQ0EwTGprNU15MDFMalV6T1NBeE1DNHhPVE10Tnk0ek9Ua2dNVEV1TnprNVlURWdNU0F3SURBZ01TMHhMakl3TWlBd1F6a3VOVE01SURJd0xqRTVNeUEwSURFMExqazVNeUEwSURFd1lUZ2dPQ0F3SURBZ01TQXhOaUF3SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1SURFd0lESWdNaUEwTFRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21hcC1waW4tY2hlY2staW5zaWRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFwUGluQ2hlY2tJbnNpZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMCAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1hcFBpbkNoZWNrSW5zaWRlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1hcC1waW4tY2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrdU5ETWdNVEl1T1RNMVl5NHpOVGN0TGprMk55NDFOeTB4TGprMU5TNDFOeTB5TGprek5XRTRJRGdnTUNBd0lEQXRNVFlnTUdNd0lEUXVPVGt6SURVdU5UTTVJREV3TGpFNU15QTNMak01T1NBeE1TNDNPVGxoTVNBeElEQWdNQ0F3SURFdU1qQXlJREFnTXpJdU1UazNJRE15TGpFNU55QXdJREFnTUNBdU9ERXpMUzQzTWpnaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1DSWdjajBpTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UZ2dNaUF5SURRdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYXAtcGluLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFwUGluQ2hlY2s6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkuNDMgMTIuOTM1Yy4zNTctLjk2Ny41Ny0xLjk1NS41Ny0yLjkzNWE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIuMTk3IDMyLjE5NyAwIDAgMCAuODEzLS43MjgnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMCcsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE4IDIgMiA0LTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWFwUGluQ2hlY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFwLXBpbi1ob3VzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTWpKaE1TQXhJREFnTUNBeExURXRNWFl0TkdFeElERWdNQ0F3SURFZ0xqUTBOUzB1T0RNeWJETXRNbUV4SURFZ01DQXdJREVnTVM0eE1TQXdiRE1nTWtFeElERWdNQ0F3SURFZ01qSWdNVGQyTkdFeElERWdNQ0F3SURFdE1TQXhlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRCaE9DQTRJREFnTUNBd0xURTJJREJqTUNBMExqazVNeUExTGpVek9TQXhNQzR4T1RNZ055NHpPVGtnTVRFdU56azVZVEVnTVNBd0lEQWdNQ0F1TmpBeExqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREl5ZGkweklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXdJaUJqZVQwaU1UQWlJSEk5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21hcC1waW4taG91c2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNYXBQaW5Ib3VzZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNSAyMmExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAuNDQ1LS44MzJsMy0yYTEgMSAwIDAgMSAxLjExIDBsMyAyQTEgMSAwIDAgMSAyMiAxN3Y0YTEgMSAwIDAgMS0xIDF6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAuNjAxLjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMjJ2LTMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnMTAnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5Ib3VzZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtYXAtcGluLW1pbnVzLWluc2lkZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRCak1DQTBMams1TXkwMUxqVXpPU0F4TUM0eE9UTXROeTR6T1RrZ01URXVOems1WVRFZ01TQXdJREFnTVMweExqSXdNaUF3UXprdU5UTTVJREl3TGpFNU15QTBJREUwTGprNU15QTBJREV3WVRnZ09DQXdJREFnTVNBeE5pQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV3YURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21hcC1waW4tbWludXMtaW5zaWRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFwUGluTWludXNJbnNpZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMGg2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1hcFBpbk1pbnVzSW5zaWRlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1hcC1waW4tbWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRndU9UYzNJREUwUXpFNUxqWWdNVEl1TnpBeElESXdJREV4TGpNME15QXlNQ0F4TUdFNElEZ2dNQ0F3SURBdE1UWWdNR013SURRdU9Ua3pJRFV1TlRNNUlERXdMakU1TXlBM0xqTTVPU0F4TVM0M09UbGhNU0F4SURBZ01DQXdJREV1TWpBeUlEQWdNeklnTXpJZ01DQXdJREFnTGpneU5DMHVOek00SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRBaUlISTlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFNGFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYXAtcGluLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFwUGluTWludXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTguOTc3IDE0QzE5LjYgMTIuNzAxIDIwIDExLjM0MyAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIgMzIgMCAwIDAgLjgyNC0uNzM4JyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTAnLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxOGg2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1hcFBpbk1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1hcC1waW4tb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVOelVnTnk0d09XRXpJRE1nTUNBd0lERWdNaTR4TmlBeUxqRTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeTR3TnpJZ01UY3VNRGN5WXkweExqWXpOQ0F5TGpFM0xUTXVOVEkzSURNdU9URXlMVFF1TkRjeElEUXVOekkzWVRFZ01TQXdJREFnTVMweExqSXdNaUF3UXprdU5UTTVJREl3TGpFNU15QTBJREUwTGprNU15QTBJREV3WVRnZ09DQXdJREFnTVNBeExqUXpNaTAwTGpVMk9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNExqUTNOU0F5TGpneE9FRTRJRGdnTUNBd0lERWdNakFnTVRCak1DQXhMakU0TXkwdU16RWdNaTR6TnpjdExqZ3hJRE11TlRNeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUxqRXpJRGt1TVROaE15QXpJREFnTUNBd0lETXVOelFnTXk0M05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYXAtcGluLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1hcFBpbk9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMi43NSA3LjA5YTMgMyAwIDAgMSAyLjE2IDIuMTYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcuMDcyIDE3LjA3MmMtMS42MzQgMi4xNy0zLjUyNyAzLjkxMi00LjQ3MSA0LjcyN2ExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMS40MzItNC41NjgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC40NzUgMi44MThBOCA4IDAgMCAxIDIwIDEwYzAgMS4xODMtLjMxIDIuMzc3LS44MSAzLjUzMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjEzIDkuMTNhMyAzIDAgMCAwIDMuNzQgMy43NCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5PZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFwLXBpbi1wZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU9UY2dPUzR6TURSQk9DQTRJREFnTUNBd0lESWdNVEJqTUNBMExqWTVJRFF1T0RnM0lEa3VOVFl5SURjdU1ESXlJREV4TGpRMk9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVNemM0SURFMkxqWXlObUV4SURFZ01DQXdJREF0TXk0d01EUXRNeTR3TURSc0xUUXVNREVnTkM0d01USmhNaUF5SURBZ01DQXdMUzQxTURZdU9EVTBiQzB1T0RNM0lESXVPRGRoTGpVdU5TQXdJREFnTUNBdU5qSXVOakpzTWk0NE55MHVPRE0zWVRJZ01pQXdJREFnTUNBdU9EVTBMUzQxTURaNklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXdJaUJqZVQwaU1UQWlJSEk5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21hcC1waW4tcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFwUGluUGVuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE3Ljk3IDkuMzA0QTggOCAwIDAgMCAyIDEwYzAgNC42OSA0Ljg4NyA5LjU2MiA3LjAyMiAxMS40NjgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6JyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnMTAnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5QZW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFwLXBpbi1wbHVzLWluc2lkZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRCak1DQTBMams1TXkwMUxqVXpPU0F4TUM0eE9UTXROeTR6T1RrZ01URXVOems1WVRFZ01TQXdJREFnTVMweExqSXdNaUF3UXprdU5UTTVJREl3TGpFNU15QTBJREUwTGprNU15QTBJREV3WVRnZ09DQXdJREFnTVNBeE5pQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEzZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UQm9OaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpbi1wbHVzLWluc2lkZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1hcFBpblBsdXNJbnNpZGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3Y2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTBoNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5QbHVzSW5zaWRlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1hcC1waW4tcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGt1T1RFMElERXhMakV3TlVFM0xqSTVPQ0EzTGpJNU9DQXdJREFnTUNBeU1DQXhNR0U0SURnZ01DQXdJREF0TVRZZ01HTXdJRFF1T1RreklEVXVOVE01SURFd0xqRTVNeUEzTGpNNU9TQXhNUzQzT1RsaE1TQXhJREFnTUNBd0lERXVNakF5SURBZ016SWdNeklnTUNBd0lEQWdMamd5TkMwdU56TTRJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVEFpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREU0YURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlERTFkallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpbi1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFwUGluUGx1czogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOS45MTQgMTEuMTA1QTcuMjk4IDcuMjk4IDAgMCAwIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMCcsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE4aDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTV2NicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5QbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1hcC1waW4teC1pbnNpZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UQmpNQ0EwTGprNU15MDFMalV6T1NBeE1DNHhPVE10Tnk0ek9Ua2dNVEV1TnprNVlURWdNU0F3SURBZ01TMHhMakl3TWlBd1F6a3VOVE01SURJd0xqRTVNeUEwSURFMExqazVNeUEwSURFd1lUZ2dPQ0F3SURBZ01TQXhOaUF3SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkM0MUlEY3VOUzAxSURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrdU5TQTNMalVnTlNBMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21hcC1waW4teC1pbnNpZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNYXBQaW5YSW5zaWRlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE0LjUgNy41LTUgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205LjUgNy41IDUgNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5YSW5zaWRlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1hcC1waW4teFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGt1TnpVeUlERXhMamt3TVVFM0xqYzRJRGN1TnpnZ01DQXdJREFnTWpBZ01UQmhPQ0E0SURBZ01DQXdMVEUySURCak1DQTBMams1TXlBMUxqVXpPU0F4TUM0eE9UTWdOeTR6T1RrZ01URXVOems1WVRFZ01TQXdJREFnTUNBeExqSXdNaUF3SURFNUlERTVJREFnTUNBd0lDNHdPUzB1TURjM0lpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1UQWlJSEk5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeExqVWdNVFV1TlMwMUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhMalVnTWpBdU5TMDFMVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpbi14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFwUGluWDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOS43NTIgMTEuOTAxQTcuNzggNy43OCAwIDAgMCAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMTkgMTkgMCAwIDAgLjA5LS4wNzcnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMCcsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxLjUgMTUuNS01IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEuNSAyMC41LTUtNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNYXBQaW5YO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1hcC1waW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UQmpNQ0EwTGprNU15MDFMalV6T1NBeE1DNHhPVE10Tnk0ek9Ua2dNVEV1TnprNVlURWdNU0F3SURBZ01TMHhMakl3TWlBd1F6a3VOVE01SURJd0xqRTVNeUEwSURFMExqazVNeUEwSURFd1lUZ2dPQ0F3SURBZ01TQXhOaUF3SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRBaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1hcFBpbjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMCcsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1hcFBpbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtYXAtcGlubmVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dPR013SURNdU5qRXpMVE11T0RZNUlEY3VOREk1TFRVdU16a3pJRGd1TnprMVlURWdNU0F3SURBZ01TMHhMakl4TkNBd1F6a3VPRGNnTVRVdU5ESTVJRFlnTVRFdU5qRXpJRFlnT0dFMklEWWdNQ0F3SURFZ01USWdNQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJamdpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ3VOekUwSURFMGFDMHpMamN4WVRFZ01TQXdJREFnTUMwdU9UUTRMalk0TTJ3dE1pNHdNRFFnTmtFeElERWdNQ0F3SURBZ015QXlNbWd4T0dFeElERWdNQ0F3SURBZ0xqazBPQzB4TGpNeE5td3RNaTAyWVRFZ01TQXdJREFnTUMwdU9UUTVMUzQyT0RSb0xUTXVOekV5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFwLXBpbm5lZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1hcFBpbm5lZDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCA4YzAgMy42MTMtMy44NjkgNy40MjktNS4zOTMgOC43OTVhMSAxIDAgMCAxLTEuMjE0IDBDOS44NyAxNS40MjkgNiAxMS42MTMgNiA4YTYgNiAwIDAgMSAxMiAwJyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnOCcsIHI6ICcyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTguNzE0IDE0aC0zLjcxYTEgMSAwIDAgMC0uOTQ4LjY4M2wtMi4wMDQgNkExIDEgMCAwIDAgMyAyMmgxOGExIDEgMCAwIDAgLjk0OC0xLjMxNmwtMi02YTEgMSAwIDAgMC0uOTQ5LS42ODRoLTMuNzEyJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWFwUGlubmVkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1hcC1wbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1URWdNVGt0TVM0eE1EWXRMalUxTW1FeUlESWdNQ0F3SURBdE1TNDNPRGdnTUd3dE15NDJOVGtnTVM0NE0wRXhJREVnTUNBd0lERWdNeUF4T1M0ek9ERldOaTQyTVRoaE1TQXhJREFnTUNBeElDNDFOVE10TGpnNU5HdzBMalUxTXkweUxqSTNOMkV5SURJZ01DQXdJREVnTVM0M09EZ2dNR3cwTGpJeE1pQXlMakV3Tm1FeUlESWdNQ0F3SURBZ01TNDNPRGdnTUd3ekxqWTFPUzB4TGpnelFURWdNU0F3SURBZ01TQXlNU0EwTGpZeE9WWXhNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTlM0M05qUldNVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFMWRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREU0YUMwMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlETXVNak0yZGpFMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21hcC1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWFwUGx1czogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xMSAxOS0xLjEwNi0uNTUyYTIgMiAwIDAgMC0xLjc4OCAwbC0zLjY1OSAxLjgzQTEgMSAwIDAgMSAzIDE5LjM4MVY2LjYxOGExIDEgMCAwIDEgLjU1My0uODk0bDQuNTUzLTIuMjc3YTIgMiAwIDAgMSAxLjc4OCAwbDQuMjEyIDIuMTA2YTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5VjEyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgNS43NjRWMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTV2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOGgtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDMuMjM2djE1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1hcFBsdXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVNVEEySURVdU5UVXpZVElnTWlBd0lEQWdNQ0F4TGpjNE9DQXdiRE11TmpVNUxURXVPRE5CTVNBeElEQWdNQ0F4SURJeElEUXVOakU1ZGpFeUxqYzJOR0V4SURFZ01DQXdJREV0TGpVMU15NDRPVFJzTFRRdU5UVXpJREl1TWpjM1lUSWdNaUF3SURBZ01TMHhMamM0T0NBd2JDMDBMakl4TWkweUxqRXdObUV5SURJZ01DQXdJREF0TVM0M09EZ2dNR3d0TXk0Mk5Ua2dNUzQ0TTBFeElERWdNQ0F3SURFZ015QXhPUzR6T0RGV05pNDJNVGhoTVNBeElEQWdNQ0F4SUM0MU5UTXRMamc1Tkd3MExqVTFNeTB5TGpJM04yRXlJRElnTUNBd0lERWdNUzQzT0RnZ01Ib2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJRFV1TnpZMGRqRTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRE11TWpNMmRqRTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNYXA6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQuMTA2IDUuNTUzYTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5djEyLjc2NGExIDEgMCAwIDEtLjU1My44OTRsLTQuNTUzIDIuMjc3YTIgMiAwIDAgMS0xLjc4OCAwbC00LjIxMi0yLjEwNmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMHonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSA1Ljc2NHYxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDMuMjM2djE1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1hcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtYXJzLXN0cm9rZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFFnTmlBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJRE5vTkhZMElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TQXpMVGN1TnpVZ055NDNOU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0k1SWlCamVUMGlNVFVpSUhJOUlqWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYXJzLXN0cm9rZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1hcnNTdHJva2U6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgNiA0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2g0djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMy03Ljc1IDcuNzUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICcxNScsIHI6ICc2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1hcnNTdHJva2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWFyc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTTJnMWRqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJRE10Tmk0M05TQTJMamMxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFd0lpQmplVDBpTVRRaUlISTlJallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFyc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1hcnM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM2g1djUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMy02Ljc1IDYuNzUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnMTQnLCByOiAnNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNYXJzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1hcnRpbmlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeU1tZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TVhZeE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1Ua2dNeTAzSURndE55MDRXaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFydGluaVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1hcnRpbmk6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDExdjExJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5IDMtNyA4LTctOFonIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWFydGluaTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtYXhpbWl6ZS0yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNMmcyZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeElETXROeUEzSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB6SURJeElEY3ROeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F5TVVnemRpMDJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYXhpbWl6ZS0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWF4aW1pemUyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDNoNnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDMtNyA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgMjEgNy03JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMjFIM3YtNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNYXhpbWl6ZTI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWF4aW1pemVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBelNEVmhNaUF5SURBZ01DQXdMVElnTW5ZeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTRWalZoTWlBeUlEQWdNQ0F3TFRJdE1tZ3RNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4Tm5ZellUSWdNaUF3SURBZ01DQXlJREpvTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01qRm9NMkV5SURJZ01DQXdJREFnTWkweWRpMHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tYXhpbWl6ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1heGltaXplOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggM0g1YTIgMiAwIDAgMC0yIDJ2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA4VjVhMiAyIDAgMCAwLTItMmgtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE2djNhMiAyIDAgMCAwIDIgMmgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIxaDNhMiAyIDAgMCAwIDItMnYtMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNYXhpbWl6ZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtZWdhcGhvbmUtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URXVOak0ySURaQk1UTWdNVE1nTUNBd0lEQWdNVGt1TkNBekxqSWdNU0F4SURBZ01DQXhJREl4SURSMk1URXVNelEwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkM0ek56Z2dNVFF1TXpVM1FURXpJREV6SURBZ01DQXdJREV4SURFMFNEVmhNaUF5SURBZ01DQXhMVEl0TWxZNFlUSWdNaUF3SURBZ01TQXlMVEpvTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFMFlURXlJREV5SURBZ01DQXdJREl1TkNBM0xqSWdNaUF5SURBZ01DQXdJRE11TWkweUxqUkJPQ0E0SURBZ01DQXhJREV3SURFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEaDJOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVnYXBob25lLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lZ2FwaG9uZU9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMS42MzYgNkExMyAxMyAwIDAgMCAxOS40IDMuMiAxIDEgMCAwIDEgMjEgNHYxMS4zNDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuMzc4IDE0LjM1N0ExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTRhMTIgMTIgMCAwIDAgMi40IDcuMiAyIDIgMCAwIDAgMy4yLTIuNEE4IDggMCAwIDEgMTAgMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA4djYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWVnYXBob25lT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lZ2FwaG9uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTm1FeE15QXhNeUF3SURBZ01DQTRMalF0TWk0NFFURWdNU0F3SURBZ01TQXlNU0EwZGpFeVlURWdNU0F3SURBZ01TMHhMall1T0VFeE15QXhNeUF3SURBZ01DQXhNU0F4TkVnMVlUSWdNaUF3SURBZ01TMHlMVEpXT0dFeUlESWdNQ0F3SURFZ01pMHllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4TkdFeE1pQXhNaUF3SURBZ01DQXlMalFnTnk0eUlESWdNaUF3SURBZ01DQXpMakl0TWk0MFFUZ2dPQ0F3SURBZ01TQXhNQ0F4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBMmRqZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZWdhcGhvbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNZWdhcGhvbmU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEgNmExMyAxMyAwIDAgMCA4LjQtMi44QTEgMSAwIDAgMSAyMSA0djEyYTEgMSAwIDAgMS0xLjYuOEExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTRhMTIgMTIgMCAwIDAgMi40IDcuMiAyIDIgMCAwIDAgMy4yLTIuNEE4IDggMCAwIDEgMTAgMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA2djgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWVnYXBob25lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lZGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55NHlNU0F4TlNBeUxqWTJJRGN1TVRSaE1pQXlJREFnTUNBeElDNHhNeTB5TGpKTU5DNDBJREl1T0VFeUlESWdNQ0F3SURFZ05pQXlhREV5WVRJZ01pQXdJREFnTVNBeExqWXVPR3d4TGpZZ01pNHhOR0V5SURJZ01DQXdJREVnTGpFMElESXVNa3d4Tmk0M09TQXhOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRJZ05TNHhNaUF5TGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeklERXlJRFV1T0RndE9TNDRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJRGRvT0NJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFM0lpQnlQU0kxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE9IWXRNbWd0TGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lZGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVkYWw6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNy4yMSAxNSAyLjY2IDcuMTRhMiAyIDAgMCAxIC4xMy0yLjJMNC40IDIuOEEyIDIgMCAwIDEgNiAyaDEyYTIgMiAwIDAgMSAxLjYuOGwxLjYgMi4xNGEyIDIgMCAwIDEgLjE0IDIuMkwxNi43OSAxNScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDEyIDUuMTIgMi4yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzIDEyIDUuODgtOS44JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggN2g4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE3JywgcjogJzUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTh2LTJoLS41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lZGFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1laFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlPQ0lnZURJOUlqRTJJaUI1TVQwaU1UVWlJSGt5UFNJeE5TSWdMejRLSUNBOGJHbHVaU0I0TVQwaU9TSWdlREk5SWprdU1ERWlJSGt4UFNJNUlpQjVNajBpT1NJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRVaUlIZ3lQU0l4TlM0d01TSWdlVEU5SWpraUlIa3lQU0k1SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVoOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzE2JywgeTE6ICcxNScsIHkyOiAnMTUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOScsIHgyOiAnOS4wMScsIHkxOiAnOScsIHkyOiAnOScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNScsIHgyOiAnMTUuMDEnLCB5MTogJzknLCB5MjogJzknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWVoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lbW9yeS1zdGlja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKMkxUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREU0ZGkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhNbll0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UaDJMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRGb01TNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0F4T0hZdE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVOU0F4TVVneU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPSFl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1uWXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4T0hZdE1pSWdMejRLSUNBOGNtVmpkQ0I0UFNJeUlpQjVQU0kySWlCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UQWlJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lbW9yeS1zdGlja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lbW9yeVN0aWNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEydi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4di0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEydi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE4di0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTFoMS41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE4di0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjUgMTFIMjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxOHYtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEydi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTh2LTInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzYnLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTAnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWVtb3J5U3RpY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVyZ2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0T0NBMklEUXROQ0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlESjJNVEF1TTJFMElEUWdNQ0F3SURFdE1TNHhOeklnTWk0NE56Sk1OQ0F5TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpBZ01qSXROUzAxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVyZ2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNZXJnZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ204IDYgNC00IDQgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjEwLjNhNCA0IDAgMCAxLTEuMTcyIDIuODcyTDQgMjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMjItNS01JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lcmdlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lbnVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMWFERTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREV5YURFMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTVhREUySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVudVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lbnU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCA1aDE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxOWgxNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNZW51O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lc3NhZ2UtY2lyY2xlLWNvZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ09TMHpJRE1nTXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQXhOU0F6TFRNdE15MHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlMams1TWlBeE5pNHpOREpoTWlBeUlEQWdNQ0F4SUM0d09UUWdNUzR4Tmpkc0xURXVNRFkxSURNdU1qbGhNU0F4SURBZ01DQXdJREV1TWpNMklERXVNVFk0YkRNdU5ERXpMUzQ1T1RoaE1pQXlJREFnTUNBeElERXVNRGs1TGpBNU1pQXhNQ0F4TUNBd0lERWdNQzAwTGpjM055MDBMamN4T1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlLWNvZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNZXNzYWdlQ2lyY2xlQ29kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMCA5LTMgMyAzIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTUgMy0zLTMtMycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOScsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VDaXJjbGVDb2RlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lc3NhZ2UtY2lyY2xlLWRhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TVNBeUxqRTRNbUV4TUNBeE1DQXdJREFnTVNBekxqZ2dNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE11T1NBeU1TNDRNVGhoTVRBZ01UQWdNQ0F3SURFdE15NDRJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzTGpZd09TQXpMamN5WVRFd0lERXdJREFnTUNBeElESXVOamtnTWk0M0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUxqRTRNaUF4TXk0NVlURXdJREV3SURBZ01DQXhJREF0TXk0NElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNHlPQ0F4Tnk0Mk1XRXhNQ0F4TUNBd0lEQWdNUzB5TGpjZ01pNDJPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakV1T0RFNElERXdMakZoTVRBZ01UQWdNQ0F3SURFZ01DQXpMamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE11TnpJeElEWXVNemt4WVRFd0lERXdJREFnTUNBeElESXVOeTB5TGpZNUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMkxqRTJNeUF5TVM0eE1UY3RNaTQ1TURZdU9EVmhNU0F4SURBZ01DQXhMVEV1TWpNMkxURXVNVFk1YkM0NU5qVXRNaTQ1T0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlLWRhc2hlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VDaXJjbGVEYXNoZWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy45IDIxLjgxOGExMCAxMCAwIDAgMS0zLjggMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy42MDkgMy43MmExMCAxMCAwIDAgMSAyLjY5IDIuNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjI4IDE3LjYxYTEwIDEwIDAgMCAxLTIuNyAyLjY5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjgxOCAxMC4xYTEwIDEwIDAgMCAxIDAgMy44JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYuMTYzIDIxLjExNy0yLjkwNi44NWExIDEgMCAwIDEtMS4yMzYtMS4xNjlsLjk2NS0yLjk4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VDaXJjbGVEYXNoZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVzc2FnZS1jaXJjbGUtaGVhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0NU9USWdNVFl1TXpReVlUSWdNaUF3SURBZ01TQXVNRGswSURFdU1UWTNiQzB4TGpBMk5TQXpMakk1WVRFZ01TQXdJREFnTUNBeExqSXpOaUF4TGpFMk9Hd3pMalF4TXkwdU9UazRZVElnTWlBd0lEQWdNU0F4TGpBNU9TNHdPVElnTVRBZ01UQWdNQ0F4SURBdE5DNDNOemN0TkM0M01Ua2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY3VPREk0SURFekxqQTNRVE1nTXlBd0lEQWdNU0F4TWlBNExqYzJOR0V6SURNZ01DQXdJREVnTlM0d01EUWdNaTR5TWpRZ015QXpJREFnTUNBeExTNDRNeklnTWk0d09ETnNMVE11TkRRM0lETXVOakpoTVNBeElEQWdNQ0F4TFRFdU5EVXRMakF3TVhvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlLWhlYXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVzc2FnZUNpcmNsZUhlYXJ0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNy44MjggMTMuMDdBMyAzIDAgMCAxIDEyIDguNzY0YTMgMyAwIDAgMSA1LjAwNCAyLjIyNCAzIDMgMCAwIDEtLjgzMiAyLjA4M2wtMy40NDcgMy42MmExIDEgMCAwIDEtMS40NS0uMDAxeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VDaXJjbGVIZWFydDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtZXNzYWdlLWNpcmNsZS1tb3JlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNDVPVElnTVRZdU16UXlZVElnTWlBd0lEQWdNU0F1TURrMElERXVNVFkzYkMweExqQTJOU0F6TGpJNVlURWdNU0F3SURBZ01DQXhMakl6TmlBeExqRTJPR3d6TGpReE15MHVPVGs0WVRJZ01pQXdJREFnTVNBeExqQTVPUzR3T1RJZ01UQWdNVEFnTUNBeElEQXROQzQzTnpjdE5DNDNNVGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV5YUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLWNpcmNsZS1tb3JlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVzc2FnZUNpcmNsZU1vcmU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VDaXJjbGVNb3JlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lc3NhZ2UtY2lyY2xlLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBMamt6SURRdU9USTVZVEV3SURFd0lEQWdNQ0F3TFRFdU9UTTRJREV4TGpReE1pQXlJRElnTUNBd0lERWdMakE1TkNBeExqRTJOMnd0TVM0d05qVWdNeTR5T1dFeElERWdNQ0F3SURBZ01TNHlNellnTVM0eE5qaHNNeTQwTVRNdExqazVPR0V5SURJZ01DQXdJREVnTVM0d09Ua3VNRGt5SURFd0lERXdJREFnTUNBd0lERXhMak13TWkweExqazRPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQzR6TlNBeUxqWTVRVEV3SURFd0lEQWdNQ0F4SURJeExqTWdNVFV1TmpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VDaXJjbGVPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQuOTMgNC45MjlhMTAgMTAgMCAwIDAtMS45MzggMTEuNDEyIDIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAwIDAgMTEuMzAyLTEuOTg5JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC4zNSAyLjY5QTEwIDEwIDAgMCAxIDIxLjMgMTUuNjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZUNpcmNsZU9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtZXNzYWdlLWNpcmNsZS1wbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNDVPVElnTVRZdU16UXlZVElnTWlBd0lEQWdNU0F1TURrMElERXVNVFkzYkMweExqQTJOU0F6TGpJNVlURWdNU0F3SURBZ01DQXhMakl6TmlBeExqRTJPR3d6TGpReE15MHVPVGs0WVRJZ01pQXdJREFnTVNBeExqQTVPUzR3T1RJZ01UQWdNVEFnTUNBeElEQXROQzQzTnpjdE5DNDNNVGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdPSFk0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1jaXJjbGUtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VDaXJjbGVQbHVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDh2OCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlQ2lyY2xlUGx1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtZXNzYWdlLWNpcmNsZS1xdWVzdGlvbi1tYXJrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNDVPVElnTVRZdU16UXlZVElnTWlBd0lEQWdNU0F1TURrMElERXVNVFkzYkMweExqQTJOU0F6TGpJNVlURWdNU0F3SURBZ01DQXhMakl6TmlBeExqRTJPR3d6TGpReE15MHVPVGs0WVRJZ01pQXdJREFnTVNBeExqQTVPUzR3T1RJZ01UQWdNVEFnTUNBeElEQXROQzQzTnpjdE5DNDNNVGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGt1TURrZ09XRXpJRE1nTUNBd0lERWdOUzQ0TXlBeFl6QWdNaTB6SURNdE15QXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TjJndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLWNpcmNsZS1xdWVzdGlvbi1tYXJrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyazogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3aC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlQ2lyY2xlUXVlc3Rpb25NYXJrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lc3NhZ2UtY2lyY2xlLXJlcGx5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNDVPVElnTVRZdU16UXlZVElnTWlBd0lEQWdNU0F1TURrMElERXVNVFkzYkMweExqQTJOU0F6TGpJNVlURWdNU0F3SURBZ01DQXhMakl6TmlBeExqRTJPR3d6TGpReE15MHVPVGs0WVRJZ01pQXdJREFnTVNBeExqQTVPUzR3T1RJZ01UQWdNVEFnTUNBeElEQXROQzQzTnpjdE5DNDNNVGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV3SURFMUxUTXRNeUF6TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01USm9PR0V5SURJZ01DQXdJREVnTWlBeWRqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLWNpcmNsZS1yZXBseVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VDaXJjbGVSZXBseTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTEwIDE1LTMtMyAzLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMmg4YTIgMiAwIDAgMSAyIDJ2MScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlQ2lyY2xlUmVwbHk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVzc2FnZS1jaXJjbGUtd2FybmluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaTQ1T1RJZ01UWXVNelF5WVRJZ01pQXdJREFnTVNBdU1EazBJREV1TVRZM2JDMHhMakEyTlNBekxqSTVZVEVnTVNBd0lEQWdNQ0F4TGpJek5pQXhMakUyT0d3ekxqUXhNeTB1T1RrNFlUSWdNaUF3SURBZ01TQXhMakE1T1M0d09USWdNVEFnTVRBZ01DQXhJREF0TkM0M056Y3ROQzQzTVRraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEaDJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRab0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLWNpcmNsZS13YXJuaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVzc2FnZUNpcmNsZVdhcm5pbmc6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VDaXJjbGVXYXJuaW5nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lc3NhZ2UtY2lyY2xlLXhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0NU9USWdNVFl1TXpReVlUSWdNaUF3SURBZ01TQXVNRGswSURFdU1UWTNiQzB4TGpBMk5TQXpMakk1WVRFZ01TQXdJREFnTUNBeExqSXpOaUF4TGpFMk9Hd3pMalF4TXkwdU9UazRZVElnTWlBd0lEQWdNU0F4TGpBNU9TNHdPVElnTVRBZ01UQWdNQ0F4SURBdE5DNDNOemN0TkM0M01Ua2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJRGt0TmlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlEa2dOaUEySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1jaXJjbGUteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VDaXJjbGVYOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgOS02IDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSA5IDYgNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlQ2lyY2xlWDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtZXNzYWdlLWNpcmNsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaTQ1T1RJZ01UWXVNelF5WVRJZ01pQXdJREFnTVNBdU1EazBJREV1TVRZM2JDMHhMakEyTlNBekxqSTVZVEVnTVNBd0lEQWdNQ0F4TGpJek5pQXhMakUyT0d3ekxqUXhNeTB1T1RrNFlUSWdNaUF3SURBZ01TQXhMakE1T1M0d09USWdNVEFnTVRBZ01DQXhJREF0TkM0M056Y3ROQzQzTVRraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2UtY2lyY2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVzc2FnZUNpcmNsZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOScsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VDaXJjbGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVzc2FnZS1zcXVhcmUtY29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRkaE1pQXlJREFnTUNBeExUSWdNa2cyTGpneU9HRXlJRElnTUNBd0lEQXRNUzQwTVRRdU5UZzJiQzB5TGpJd01pQXlMakl3TWtFdU56RXVOekVnTUNBd0lERWdNaUF5TVM0eU9EWldOV0V5SURJZ01DQXdJREVnTWkweWFERTJZVElnTWlBd0lEQWdNU0F5SURKNklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1DQTRMVE1nTXlBeklETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBJREUwSURNdE15MHpMVE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmUtY29kZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmVDb2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTEwIDgtMyAzIDMgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxNCAzLTMtMy0zJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VTcXVhcmVDb2RlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lc3NhZ2Utc3F1YXJlLWRhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRsb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF6YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVGxvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXphQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE0yZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRkMk5DNHlPRFpoTGpjeExqY3hJREFnTUNBd0lERXVNakV5TGpVd01td3lMakl3TWkweUxqSXdNa0V5SURJZ01DQXdJREVnTmk0NE1qZ2dNVGxJT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBMVlUSWdNaUF3SURBZ01TQXlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnT1dndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJRE5oTWlBeUlEQWdNQ0F4SURJZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVE5vTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQXhOMkV5SURJZ01DQXdJREV0TWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQTVhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBemFDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmUtZGFzaGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVzc2FnZVNxdWFyZURhc2hlZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTloLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDNoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTNoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTd2NC4yODZhLjcxLjcxIDAgMCAwIDEuMjEyLjUwMmwyLjIwMi0yLjIwMkEyIDIgMCAwIDEgNi44MjggMTlIOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDVhMiAyIDAgMCAxIDItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDloLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDNhMiAyIDAgMCAxIDIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxM2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTdhMiAyIDAgMCAxLTIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA5aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDNoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VTcXVhcmVEYXNoZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVzc2FnZS1zcXVhcmUtZGlmZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRkaE1pQXlJREFnTUNBeExUSWdNa2cyTGpneU9HRXlJRElnTUNBd0lEQXRNUzQwTVRRdU5UZzJiQzB5TGpJd01pQXlMakl3TWtFdU56RXVOekVnTUNBd0lERWdNaUF5TVM0eU9EWldOV0V5SURJZ01DQXdJREVnTWkweWFERTJZVElnTWlBd0lEQWdNU0F5SURKNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhOV2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBNWFEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGQyTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2Utc3F1YXJlLWRpZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlRGlmZjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNWg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDloNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZURpZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVzc2FnZS1zcXVhcmUtZG90XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVOeUF6U0RSaE1pQXlJREFnTUNBd0xUSWdNbll4Tmk0eU9EWmhMamN4TGpjeElEQWdNQ0F3SURFdU1qRXlMalV3TW13eUxqSXdNaTB5TGpJd01rRXlJRElnTUNBd0lERWdOaTQ0TWpnZ01UbElNakJoTWlBeUlEQWdNQ0F3SURJdE1uWXROQzQzSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNUlpQmplVDBpTmlJZ2NqMGlNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmUtZG90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVzc2FnZVNxdWFyZURvdDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMi43IDNINGEyIDIgMCAwIDAtMiAydjE2LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUgyMGEyIDIgMCAwIDAgMi0ydi00LjcnLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICc2JywgcjogJzMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZURvdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtZXNzYWdlLXNxdWFyZS1oZWFydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRkaE1pQXlJREFnTUNBeExUSWdNa2cyTGpneU9HRXlJRElnTUNBd0lEQXRNUzQwTVRRdU5UZzJiQzB5TGpJd01pQXlMakl3TWtFdU56RXVOekVnTUNBd0lERWdNaUF5TVM0eU9EWldOV0V5SURJZ01DQXdJREVnTWkweWFERTJZVElnTWlBd0lEQWdNU0F5SURKNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0xqVWdPUzQxWXpBZ0xqWTROeTR5TmpVZ01TNHpPRE11TmprM0lERXVPRFEwYkRNdU1EQTVJRE11TWpZMFlURXVNVFFnTVM0eE5DQXdJREFnTUNBdU5EQTNMak14TkNBeElERWdNQ0F3SURBZ0xqYzRNeTB1TURBMElERXVNVFFnTVM0eE5DQXdJREFnTUNBdU16azRMUzR6TVd3ekxqQXdPQzB6TGpJMk5FRXlMamMzSURJdU56Y2dNQ0F3SURBZ01UWXVOU0E1TGpVZ01pNDFJREl1TlNBd0lEQWdNQ0F4TWlBNFlUSXVOU0F5TGpVZ01DQXdJREF0TkM0MUlERXVOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmUtaGVhcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlSGVhcnQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNy41IDkuNWMwIC42ODcuMjY1IDEuMzgzLjY5NyAxLjg0NGwzLjAwOSAzLjI2NGExLjE0IDEuMTQgMCAwIDAgLjQwNy4zMTQgMSAxIDAgMCAwIC43ODMtLjAwNCAxLjE0IDEuMTQgMCAwIDAgLjM5OC0uMzFsMy4wMDgtMy4yNjRBMi43NyAyLjc3IDAgMCAwIDE2LjUgOS41IDIuNSAyLjUgMCAwIDAgMTIgOGEyLjUgMi41IDAgMCAwLTQuNSAxLjUnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlU3F1YXJlSGVhcnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVzc2FnZS1zcXVhcmUtbG9ja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnT0M0MVZqVmhNaUF5SURBZ01DQXdMVEl0TWtnMFlUSWdNaUF3SURBZ01DMHlJREoyTVRZdU1qZzJZUzQzTVM0M01TQXdJREFnTUNBeExqSXhNaTQxTURKc01pNHlNREl0TWk0eU1ESkJNaUF5SURBZ01DQXhJRFl1T0RJNElERTVTREV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE5YWXRNbUV5SURJZ01DQXdJREF0TkNBd2RqSWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU1UUWlJSGs5SWpFMUlpQjNhV1IwYUQwaU9DSWdhR1ZwWjJoMFBTSTFJaUJ5ZUQwaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZS1sb2NrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVzc2FnZVNxdWFyZUxvY2s6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTV2LTJhMiAyIDAgMCAwLTQgMHYyJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMTQnLCB5OiAnMTUnLCB3aWR0aDogJzgnLCBoZWlnaHQ6ICc1Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VTcXVhcmVMb2NrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lc3NhZ2Utc3F1YXJlLW1vcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UZGhNaUF5SURBZ01DQXhMVElnTWtnMkxqZ3lPR0V5SURJZ01DQXdJREF0TVM0ME1UUXVOVGcyYkMweUxqSXdNaUF5TGpJd01rRXVOekV1TnpFZ01DQXdJREVnTWlBeU1TNHlPRFpXTldFeUlESWdNQ0F3SURFZ01pMHlhREUyWVRJZ01pQXdJREFnTVNBeUlESjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TVdndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV4YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNV2d1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2Utc3F1YXJlLW1vcmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlTW9yZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTFoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTFoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VTcXVhcmVNb3JlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lc3NhZ2Utc3F1YXJlLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVRsSU5pNDRNamhoTWlBeUlEQWdNQ0F3TFRFdU5ERTBMalU0Tm13dE1pNHlNRElnTWk0eU1ESkJMamN1TnlBd0lEQWdNU0F5SURJeExqSTRObFkxWVRJZ01pQXdJREFnTVNBeExqRTROQzB4TGpneU5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswNExqWTFOaUF6U0RJd1lUSWdNaUF3SURBZ01TQXlJREoyTVRFdU16UTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlT2ZmOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE5IDE5SDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43LjcgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMS4xODQtMS44MjYnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC42NTYgM0gyMGEyIDIgMCAwIDEgMiAydjExLjM0NCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlU3F1YXJlT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lc3NhZ2Utc3F1YXJlLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UZGhNaUF5SURBZ01DQXhMVElnTWtnMkxqZ3lPR0V5SURJZ01DQXdJREF0TVM0ME1UUXVOVGcyYkMweUxqSXdNaUF5TGpJd01rRXVOekV1TnpFZ01DQXdJREVnTWlBeU1TNHlPRFpXTldFeUlESWdNQ0F3SURFZ01pMHlhREUyWVRJZ01pQXdJREFnTVNBeUlESjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE0ZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01URm9OaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmUtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmVQbHVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDh2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDExaDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZVBsdXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVzc2FnZS1zcXVhcmUtcXVvdGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UUmhNaUF5SURBZ01DQXdJREl0TWxZNGFDMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF4TjJFeUlESWdNQ0F3SURFdE1pQXlTRFl1T0RJNFlUSWdNaUF3SURBZ01DMHhMalF4TkM0MU9EWnNMVEl1TWpBeUlESXVNakF5UVM0M01TNDNNU0F3SURBZ01TQXlJREl4TGpJNE5sWTFZVElnTWlBd0lEQWdNU0F5TFRKb01UWmhNaUF5SURBZ01DQXhJRElnTW5vaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UUmhNaUF5SURBZ01DQXdJREl0TWxZNFNEZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZS1xdW90ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmVRdW90ZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNGEyIDIgMCAwIDAgMi0yVjhoLTInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNGEyIDIgMCAwIDAgMi0yVjhIOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlU3F1YXJlUXVvdGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVzc2FnZS1zcXVhcmUtcmVwbHlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UZGhNaUF5SURBZ01DQXhMVElnTWtnMkxqZ3lPR0V5SURJZ01DQXdJREF0TVM0ME1UUXVOVGcyYkMweUxqSXdNaUF5TGpJd01rRXVOekV1TnpFZ01DQXdJREVnTWlBeU1TNHlPRFpXTldFeUlESWdNQ0F3SURFZ01pMHlhREUyWVRJZ01pQXdJREFnTVNBeUlESjZJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNQ0E0TFRNZ015QXpJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURFMGRpMHhZVElnTWlBd0lEQWdNQzB5TFRKSU55SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZS1yZXBseVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmVSZXBseTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCA4LTMgMyAzIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTR2LTFhMiAyIDAgMCAwLTItMkg3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VTcXVhcmVSZXBseTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtZXNzYWdlLXNxdWFyZS1zaGFyZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTBnMFlUSWdNaUF3SURBZ01DMHlJREoyTVRZdU1qZzJZUzQzTVM0M01TQXdJREFnTUNBeExqSXhNaTQxTURKc01pNHlNREl0TWk0eU1ESkJNaUF5SURBZ01DQXhJRFl1T0RJNElERTVTREl3WVRJZ01pQXdJREFnTUNBeUxUSjJMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySUROb05uWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaUE1SURZdE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZS1zaGFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmVTaGFyZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAzSDRhMiAyIDAgMCAwLTIgMnYxNi4yODZhLjcxLjcxIDAgMCAwIDEuMjEyLjUwMmwyLjIwMi0yLjIwMkEyIDIgMCAwIDEgNi44MjggMTlIMjBhMiAyIDAgMCAwIDItMnYtNCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDNoNnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDkgNi02JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VTcXVhcmVTaGFyZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtZXNzYWdlLXNxdWFyZS10ZXh0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVGRoTWlBeUlEQWdNQ0F4TFRJZ01rZzJMamd5T0dFeUlESWdNQ0F3SURBdE1TNDBNVFF1TlRnMmJDMHlMakl3TWlBeUxqSXdNa0V1TnpFdU56RWdNQ0F3SURFZ01pQXlNUzR5T0RaV05XRXlJRElnTUNBd0lERWdNaTB5YURFMllUSWdNaUF3SURBZ01TQXlJREo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFeGFERXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREUxYURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ04yZzRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZS10ZXh0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVzc2FnZVNxdWFyZVRleHQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMWgxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE1aDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA3aDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZVRleHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVzc2FnZS1zcXVhcmUtd2FybmluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRkaE1pQXlJREFnTUNBeExUSWdNa2cyTGpneU9HRXlJRElnTUNBd0lEQXRNUzQwTVRRdU5UZzJiQzB5TGpJd01pQXlMakl3TWtFdU56RXVOekVnTUNBd0lERWdNaUF5TVM0eU9EWldOV0V5SURJZ01DQXdJREVnTWkweWFERTJZVElnTWlBd0lEQWdNU0F5SURKNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOV2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEZDJOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmUtd2FybmluZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmVXYXJuaW5nOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE1aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZVNxdWFyZVdhcm5pbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVzc2FnZS1zcXVhcmUteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRkaE1pQXlJREFnTUNBeExUSWdNa2cyTGpneU9HRXlJRElnTUNBd0lEQXRNUzQwTVRRdU5UZzJiQzB5TGpJd01pQXlMakl3TWtFdU56RXVOekVnTUNBd0lERWdNaUF5TVM0eU9EWldOV0V5SURJZ01DQXdJREVnTWkweWFERTJZVElnTWlBd0lEQWdNU0F5SURKNklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DNDFJRGd1TlMwMUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa3VOU0E0TGpVZ05TQTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZS14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWVzc2FnZVNxdWFyZVg6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSA4LjUtNSA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSA4LjUgNSA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VTcXVhcmVYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1lc3NhZ2Utc3F1YXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVGRoTWlBeUlEQWdNQ0F4TFRJZ01rZzJMamd5T0dFeUlESWdNQ0F3SURBdE1TNDBNVFF1TlRnMmJDMHlMakl3TWlBeUxqSXdNa0V1TnpFdU56RWdNQ0F3SURFZ01pQXlNUzR5T0RaV05XRXlJRElnTUNBd0lERWdNaTB5YURFMllUSWdNaUF3SURBZ01TQXlJREo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWVzc2FnZS1zcXVhcmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNZXNzYWdlU3F1YXJlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VTcXVhcmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWVzc2FnZXMtc3F1YXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEJoTWlBeUlEQWdNQ0F4TFRJZ01rZzJMamd5T0dFeUlESWdNQ0F3SURBdE1TNDBNVFF1TlRnMmJDMHlMakl3TWlBeUxqSXdNa0V1TnpFdU56RWdNQ0F3SURFZ01pQXhOQzR5T0RaV05HRXlJRElnTUNBd0lERWdNaTB5YURFd1lUSWdNaUF3SURBZ01TQXlJREo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBNVlUSWdNaUF3SURBZ01TQXlJREoyTVRBdU1qZzJZUzQzTVM0M01TQXdJREFnTVMweExqSXhNaTQxTURKc0xUSXVNakF5TFRJdU1qQXlRVElnTWlBd0lEQWdNQ0F4Tnk0eE56SWdNVGxJTVRCaE1pQXlJREFnTUNBeExUSXRNbll0TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21lc3NhZ2VzLXNxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VzU3F1YXJlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDEwYTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMTQuMjg2VjRhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAyeicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDlhMiAyIDAgMCAxIDIgMnYxMC4yODZhLjcxLjcxIDAgMCAxLTEuMjEyLjUwMmwtMi4yMDItMi4yMDJBMiAyIDAgMCAwIDE3LjE3MiAxOUgxMGEyIDIgMCAwIDEtMi0ydi0xJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZXNTcXVhcmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWljLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRsMk15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdPUzR6TkZZMVlUTWdNeUF3SURBZ01DMDFMalk0TFRFdU16TWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJMamsxSURFMkxqazFRVGNnTnlBd0lEQWdNU0ExSURFeWRpMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQzQ0T1NBeE15NHlNMEUzSURjZ01DQXdJREFnTVRrZ01USjJMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0E1ZGpOaE15QXpJREFnTUNBd0lEVXVNVElnTWk0eE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taWMtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWljT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE5djMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuOTUgMTYuOTVBNyA3IDAgMCAxIDUgMTJ2LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTguODkgMTMuMjNBNyA3IDAgMCAwIDE5IDEydi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDl2M2EzIDMgMCAwIDAgNS4xMiAyLjEyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1pY09mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtaWMtdm9jYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRFZ055NDJNREV0TlM0NU9UUWdPQzR4T1dFeElERWdNQ0F3SURBZ0xqRWdNUzR5T1Roc0xqZ3hOeTQ0TVRoaE1TQXhJREFnTUNBd0lERXVNekUwTGpBNE4wd3hOUzR3T1NBeE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVOU0F5TVM0eE56UkRNVFV1TlNBeU1DNDFJREUwTGpNM01pQXlNQ0F4TXlBeU1HTXRNaTR3TlRnZ01DMHpMamt5T0NBeUxqTTFOaTAySURJdE1pNHdOekl0TGpNMU5pMHlMamMzTlMwekxqTTJPUzB4TGpVdE5DNDFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUySWlCamVUMGlOeUlnY2owaU5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taWMtdm9jYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNaWNWb2NhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMSA3LjYwMS01Ljk5NCA4LjE5YTEgMSAwIDAgMCAuMSAxLjI5OGwuODE3LjgxOGExIDEgMCAwIDAgMS4zMTQuMDg3TDE1LjA5IDEyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2LjUgMjEuMTc0QzE1LjUgMjAuNSAxNC4zNzIgMjAgMTMgMjBjLTIuMDU4IDAtMy45MjggMi4zNTYtNiAyLTIuMDcyLS4zNTYtMi43NzUtMy4zNjktMS41LTQuNScsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzcnLCByOiAnNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNaWNWb2NhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtaWNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UbDJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVRCMk1tRTNJRGNnTUNBd0lERXRNVFFnTUhZdE1pSWdMejRLSUNBOGNtVmpkQ0I0UFNJNUlpQjVQU0l5SWlCM2FXUjBhRDBpTmlJZ2FHVnBaMmgwUFNJeE15SWdjbmc5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21pY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1pYzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOXYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDEwdjJhNyA3IDAgMCAxLTE0IDB2LTInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc5JywgeTogJzInLCB3aWR0aDogJzYnLCBoZWlnaHQ6ICcxMycsIHJ4OiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNaWM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWljcm9jaGlwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEpvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UZG9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTjJnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeE9HZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0EyYURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01USm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4T0dneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElEWm9NaUlnTHo0S0lDQThjbVZqZENCNFBTSTJJaUI1UFNJeUlpQjNhV1IwYUQwaU1USWlJR2hsYVdkb2REMGlNakFpSUhKNFBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taWNyb2NoaXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNaWNyb2NoaXA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTJoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxN2g0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDdoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxMmgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE4aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNmgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDE4aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA2aDInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc2JywgeTogJzInLCB3aWR0aDogJzEyJywgaGVpZ2h0OiAnMjAnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWljcm9jaGlwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1pY3Jvc2NvcGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE9HZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREl5YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXlNbUUzSURjZ01DQXhJREFnTUMweE5HZ3RNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TkdneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlERXlZVElnTWlBd0lEQWdNUzB5TFRKV05tZzJkalJoTWlBeUlEQWdNQ0F4TFRJZ01sb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRFpXTTJFeElERWdNQ0F3SURBdE1TMHhTRGxoTVNBeElEQWdNQ0F3TFRFZ01YWXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taWNyb3Njb3BlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWljcm9zY29wZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDE4aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAyMmgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMmE3IDcgMCAxIDAgMC0xNGgtMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE0aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMmEyIDIgMCAwIDEtMi0yVjZoNnY0YTIgMiAwIDAgMS0yIDJaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZWM2ExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAwLTEgMXYzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1pY3Jvc2NvcGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbWljcm93YXZlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRVaUlIZzlJaklpSUhrOUlqUWlJSEo0UFNJeUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSTRJaUJvWldsbmFIUTlJamNpSUhnOUlqWWlJSGs5SWpnaUlISjRQU0l4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBNGRqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVGwyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01UbDJNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWljcm93YXZlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWljcm93YXZlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTUnLCB4OiAnMicsIHk6ICc0Jywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc3JywgeDogJzYnLCB5OiAnOCcsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA4djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOXYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE5djInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWljcm93YXZlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1pbGVzdG9uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVROMk9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNM1l6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURaaE1TQXhJREFnTUNBd0xURWdNWFkxWVRFZ01TQXdJREFnTUNBeElERm9NVE5oTWlBeUlEQWdNQ0F3SURFdU1UVXlMUzR6TmpWc015NDBNalF0TWk0ek1UZGhNU0F4SURBZ01DQXdJREF0TVM0Mk16VnNMVE11TkRJMExUSXVNekU0UVRJZ01pQXdJREFnTUNBeE55QTJlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWlsZXN0b25lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWlsZXN0b25lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzdjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3YzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgNmExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWgxM2EyIDIgMCAwIDAgMS4xNTItLjM2NWwzLjQyNC0yLjMxN2ExIDEgMCAwIDAgMC0xLjYzNWwtMy40MjQtMi4zMThBMiAyIDAgMCAwIDE3IDZ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTWlsZXN0b25lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1pbGstb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTW5ZeExqTTBNMDB4TlNBeWRqSXVOemc1WVRRZ05DQXdJREFnTUNBdU5qY3lJREl1TWpFNWJDNDJOVFl1T1RnMFlUUWdOQ0F3SURBZ01TQXVOamN5SURJdU1qSjJNUzR4TXpGTk55NDRJRGN1T0d3dExqRXlPQzR4T1RKQk5DQTBJREFnTUNBd0lEY2dNVEF1TWpFeVZqSXdZVElnTWlBd0lEQWdNQ0F5SURKb05tRXlJRElnTUNBd0lEQWdNaTB5ZGkweklpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERTFZVFl1TkRjZ05pNDBOeUF3SURBZ01TQTFJREFnTmk0ME56SWdOaTQwTnpJZ01DQXdJREFnTXk0ME16VXVORE0xSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l5SWlCNE1qMGlNaklpSUhreFBTSXlJaUI1TWowaU1qSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taWxrLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1pbGtPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyaDgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSAydjEuMzQzTTE1IDJ2Mi43ODlhNCA0IDAgMCAwIC42NzIgMi4yMTlsLjY1Ni45ODRhNCA0IDAgMCAxIC42NzIgMi4yMnYxLjEzMU03LjggNy44bC0uMTI4LjE5MkE0IDQgMCAwIDAgNyAxMC4yMTJWMjBhMiAyIDAgMCAwIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NzIgNi40NzIgMCAwIDAgMy40MzUuNDM1JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzIyJywgeTE6ICcyJywgeTI6ICcyMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNaWxrT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1pbGtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNbll5TGpjNE9XRTBJRFFnTUNBd0lERXRMalkzTWlBeUxqSXhPV3d0TGpZMU5pNDVPRFJCTkNBMElEQWdNQ0F3SURjZ01UQXVNakV5VmpJd1lUSWdNaUF3SURBZ01DQXlJREpvTm1FeUlESWdNQ0F3SURBZ01pMHlkaTA1TGpjNE9XRTBJRFFnTUNBd0lEQXRMalkzTWkweUxqSXhPV3d0TGpZMU5pMHVPVGcwUVRRZ05DQXdJREFnTVNBeE5TQTBMamM0T0ZZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERTFZVFl1TkRjeUlEWXVORGN5SURBZ01DQXhJRFVnTUNBMkxqUTNJRFl1TkRjZ01DQXdJREFnTlNBd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21pbGtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNaWxrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMmg4JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkgMnYyLjc4OWE0IDQgMCAwIDEtLjY3MiAyLjIxOWwtLjY1Ni45ODRBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi05Ljc4OWE0IDQgMCAwIDAtLjY3Mi0yLjIxOWwtLjY1Ni0uOTg0QTQgNCAwIDAgMSAxNSA0Ljc4OFYyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNWE2LjQ3MiA2LjQ3MiAwIDAgMSA1IDAgNi40NyA2LjQ3IDAgMCAwIDUgMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNaWxrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1pbmltaXplLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRRZ01UQWdOeTAzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE1HZ3RObFkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB6SURJeElEY3ROeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TkdnMmRqWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9taW5pbWl6ZS0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWluaW1pemUyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0IDEwIDctNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMGgtNlY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgMjEgNy03JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTRoNnY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1pbmltaXplMjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtaW5pbWl6ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F6ZGpOaE1pQXlJREFnTUNBeExUSWdNa2d6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBNGFDMHpZVElnTWlBd0lEQWdNUzB5TFRKV015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhObWd6WVRJZ01pQXdJREFnTVNBeUlESjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTWpGMkxUTmhNaUF5SURBZ01DQXhJREl0TW1neklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21pbmltaXplXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWluaW1pemU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAzdjNhMiAyIDAgMCAxLTIgMkgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDhoLTNhMiAyIDAgMCAxLTItMlYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTZoM2EyIDIgMCAwIDEgMiAydjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMjF2LTNhMiAyIDAgMCAxIDItMmgzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1pbmltaXplO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNbWd4TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTWludXM6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ001IDEyaDE0JyB9XV07XG5cbmV4cG9ydCBkZWZhdWx0IE1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vbml0b3ItY2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE1DQXlJRElnTkMwMElpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0l4TkNJZ2VEMGlNaUlnZVQwaU15SWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTWpGb09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb25pdG9yLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW9uaXRvckNoZWNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTkgMTAgMiAyIDQtNCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE0JywgeDogJzInLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNb25pdG9yQ2hlY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW9uaXRvci1jbG91ZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVROaE15QXpJREFnTVNBeElESXVPRE10TkVneE5HRXlJRElnTUNBd0lERWdNQ0EwZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UZDJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F5TVdnNElpQXZQZ29nSUR4eVpXTjBJSGc5SWpJaUlIazlJak1pSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJeE5DSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vbml0b3ItY2xvdWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb25pdG9yQ2xvdWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTNhMyAzIDAgMSAxIDIuODMtNEgxNGEyIDIgMCAwIDEgMCA0eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoOCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnMycsIHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNb25pdG9yQ2xvdWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW9uaXRvci1jb2dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UZDJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFF1TXpBMUlEY3VOVE11T1RJekxTNHpPRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUxTGpJeU9DQTBMamcxTWkwdU9USXpMUzR6T0RNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMkxqZzFNaUF6TGpJeU9DMHVNemd6TFM0NU1qUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJMamcxTWlBNExqYzNNaTB1TXpnekxqa3lNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGt1TVRRNElETXVNakk0TGpNNE15MHVPVEkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T1M0MU15QTVMalk1TmkwdU16Z3lMUzQ1TWpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJd0xqYzNNaUEwTGpnMU1pNDVNalF0TGpNNE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qQXVOemN5SURjdU1UUTRMamt5TkM0ek9ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREV6ZGpKaE1pQXlJREFnTUNBeExUSWdNa2cwWVRJZ01pQXdJREFnTVMweUxUSldOV0V5SURJZ01DQXdJREVnTWkweWFEY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNakZvT0NJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE9DSWdZM2s5SWpZaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvci1jb2dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb25pdG9yQ29nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuMzA1IDcuNTMuOTIzLS4zODInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUuMjI4IDQuODUyLS45MjMtLjM4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMy4yMjgtLjM4My0uOTI0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOS4xNDggMy4yMjguMzgzLS45MjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuNTMgOS42OTYtLjM4Mi0uOTI0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjc3MiA0Ljg1Mi45MjQtLjM4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43NzIgNy4xNDguOTI0LjM4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxM3YyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoOCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICc2JywgcjogJzMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvckNvZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtb25pdG9yLWRvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRkMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVEl1TXpBM1ZqRTFZVElnTWlBd0lEQWdNUzB5SURKSU5HRXlJRElnTUNBd0lERXRNaTB5VmpWaE1pQXlJREFnTUNBeElESXRNbWc0TGpZNU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNV2c0SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNUlpQmplVDBpTmlJZ2NqMGlNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvci1kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb25pdG9yRG90OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTIuMzA3VjE1YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg4LjY5MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOScsIGN5OiAnNicsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vbml0b3JEb3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW9uaXRvci1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE5XTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ01UQXRNeUF6TFRNdE15SWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRRaUlIZzlJaklpSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOM1kwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURJeGFEZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb25pdG9yLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb25pdG9yRG93bjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxM1Y3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDEwLTMgMy0zLTMnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvckRvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW9uaXRvci1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UZElOR0V5SURJZ01DQXdJREV0TWkweVZqVmpNQzB4TGpVZ01TMHlJREV0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UVldOV0V5SURJZ01DQXdJREF0TWkweVNEa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNakZvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UZDJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb25pdG9yLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1vbml0b3JPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTdINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjUgMS0yIDEtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNVY1YTIgMiAwIDAgMC0yLTJIOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvck9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtb25pdG9yLXBhdXNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVE5XTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UTldOeUlnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UUWlJSGc5SWpJaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TjNZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElESXhhRGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvci1wYXVzZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1vbml0b3JQYXVzZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxM1Y3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEzVjcnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvclBhdXNlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vbml0b3ItcGxheVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFV1TURNeklEa3VORFJoTGpZME55NDJORGNnTUNBd0lERWdNQ0F4TGpFeWJDMDBMakEyTlNBeUxqTTFNbUV1TmpRMUxqWTBOU0F3SURBZ01TMHVPVFk0TFM0MU5sWTNMalkwT0dFdU5qUTFMalkwTlNBd0lEQWdNU0F1T1RZM0xTNDFObm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFM2RqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNakZvT0NJZ0x6NEtJQ0E4Y21WamRDQjRQU0l5SWlCNVBTSXpJaUIzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRRaUlISjRQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvci1wbGF5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW9uaXRvclBsYXk6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUuMDMzIDkuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NlY3LjY0OGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoOCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnMycsIHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNb25pdG9yUGxheTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtb25pdG9yLXNtYXJ0cGhvbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ09GWTJZVElnTWlBd0lEQWdNQzB5TFRKSU5HRXlJRElnTUNBd0lEQXRNaUF5ZGpkaE1pQXlJREFnTUNBd0lESWdNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE9YWXRNeTQ1TmlBekxqRTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREU1YURVaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqWWlJR2hsYVdkb2REMGlNVEFpSUhnOUlqRTJJaUI1UFNJeE1pSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vbml0b3Itc21hcnRwaG9uZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1vbml0b3JTbWFydHBob25lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDhWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxOXYtMy45NiAzLjE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTloNScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMTAnLCB4OiAnMTYnLCB5OiAnMTInLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvclNtYXJ0cGhvbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW9uaXRvci1zcGVha2VyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TNDFJREl3U0RnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0lEbG9MakF4SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeE1DSWdhR1ZwWjJoMFBTSXhOaUlnZUQwaU1USWlJSGs5SWpRaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURaSU5HRXlJRElnTUNBd0lEQXRNaUF5ZGpaaE1pQXlJREFnTUNBd0lESWdNbWcwSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFM0lpQmplVDBpTVRVaUlISTlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvci1zcGVha2VyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW9uaXRvclNwZWFrZXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNS41IDIwSDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgOWguMDEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICcxNicsIHg6ICcxMicsIHk6ICc0Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNkg0YTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyaDQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnMTUnLCByOiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNb25pdG9yU3BlYWtlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtb25pdG9yLXN0b3BcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UZDJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F5TVdnNElpQXZQZ29nSUR4eVpXTjBJSGc5SWpJaUlIazlJak1pSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJeE5DSWdjbmc5SWpJaUlDOCtDaUFnUEhKbFkzUWdlRDBpT1NJZ2VUMGlOeUlnZDJsa2RHZzlJallpSUdobGFXZG9kRDBpTmlJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvci1zdG9wXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW9uaXRvclN0b3A6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzMnLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTQnLCByeDogJzInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc5JywgeTogJzcnLCB3aWR0aDogJzYnLCBoZWlnaHQ6ICc2Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vbml0b3JTdG9wO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vbml0b3ItdXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE1DQXpMVE1nTXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNMVkzSWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeU1DSWdhR1ZwWjJoMFBTSXhOQ0lnZUQwaU1pSWdlVDBpTXlJZ2NuZzlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFM2RqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNakZvT0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vbml0b3ItdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb25pdG9yVXA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMCAzLTMgMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEzVjcnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDIxaDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uaXRvclVwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vbml0b3IteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFF1TlNBeE1pNDFMVFV0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1M0MUlERXlMalVnTlMwMUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0l4TkNJZ2VEMGlNaUlnZVQwaU15SWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTWpGb09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb25pdG9yLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb25pdG9yWDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNC41IDEyLjUtNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSAxMi41IDUtNScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE0JywgeDogJzInLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNb25pdG9yWDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtb25pdG9yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRRaUlIZzlJaklpSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJNElpQjRNajBpTVRZaUlIa3hQU0l5TVNJZ2VUSTlJakl4SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TWlJZ2VESTlJakV5SWlCNU1UMGlNVGNpSUhreVBTSXlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9uaXRvclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1vbml0b3I6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNCcsIHg6ICcyJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOCcsIHgyOiAnMTYnLCB5MTogJzIxJywgeTI6ICcyMScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzE3JywgeTI6ICcyMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNb25pdG9yO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vb24tc3RhclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTldnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXpkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3TGprNE5TQXhNaTQwT0RaaE9TQTVJREFnTVNBeExUa3VORGN6TFRrdU5EY3lZeTQwTURVdExqQXlNaTQyTVRjdU5EWXVOREF5TGpnd00yRTJJRFlnTUNBd0lEQWdPQzR5TmpnZ09DNHlOamhqTGpNME5DMHVNakUxTGpneU5TMHVNREEwTGpnd015NDBNREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9vbi1zdGFyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW9vblN0YXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNWg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDN2NCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW9vblN0YXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW90b3JiaWtlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dNVFF0TVMweklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weklEa2dOaUF5WVRJZ01pQXdJREFnTVNBeUxUSm9NbUV5SURJZ01DQXdJREVnTVM0NU9TQXhMamd4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFM2FETmhNU0F4SURBZ01DQXdJREV0TVNBMklEWWdNQ0F3SURFZ05pMDJJREVnTVNBd0lEQWdNQ0F4TFRGMkxTNDNOVUUxSURVZ01DQXdJREFnTVRjZ05TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhPU0lnWTNrOUlqRTNJaUJ5UFNJeklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqVWlJR041UFNJeE55SWdjajBpTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdG9yYmlrZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1vdG9yYmlrZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xOCAxNC0xLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyA5IDYgMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDEuOTkgMS44MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE3aDNhMSAxIDAgMCAwIDEtMSA2IDYgMCAwIDEgNi02IDEgMSAwIDAgMCAxLTF2LS43NUE1IDUgMCAwIDAgMTcgNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICcxNycsIHI6ICczJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNScsIGN5OiAnMTcnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNb3RvcmJpa2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW9vblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakF1T1RnMUlERXlMalE0Tm1FNUlEa2dNQ0F4SURFdE9TNDBOek10T1M0ME56SmpMalF3TlMwdU1ESXlMall4Tnk0ME5pNDBNREl1T0RBellUWWdOaUF3SURBZ01DQTRMakkyT0NBNExqSTJPR011TXpRMExTNHlNVFV1T0RJMUxTNHdNRFF1T0RBekxqUXdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW9vblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1vb246IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMScsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vb247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW91bnRhaW4tc25vd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPQ0F6SURRZ09DQTFMVFVnTlNBeE5VZ3lURGdnTTNvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU1UUWdNVFV1TURoak1pNDJNaTB4TGpVM0lEVXVNalF0TVM0ME15QTNMamcyTGpReUlESXVOelFnTVM0NU5DQTFMalE1SURJZ09DNHlNeTR4T1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdW50YWluLXNub3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb3VudGFpblNub3c6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtOCAzIDQgOCA1LTUgNSAxNUgyTDggM3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC4xNCAxNS4wOGMyLjYyLTEuNTcgNS4yNC0xLjQzIDcuODYuNDIgMi43NCAxLjk0IDUuNDkgMiA4LjIzLjE5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vdW50YWluU25vdztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtb3VudGFpblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPQ0F6SURRZ09DQTFMVFVnTlNBeE5VZ3lURGdnTTNvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdW50YWluXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW91bnRhaW46IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ204IDMgNCA4IDUtNSA1IDE1SDJMOCAzeicgfV1dO1xuXG5leHBvcnQgZGVmYXVsdCBNb3VudGFpbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtb3VzZS1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05uWXVNelF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0M0eU1UZ2dNVGd1TWpFNFFUY2dOeUF3SURBZ01TQTFJREUxVmpsaE55QTNJREFnTUNBeElDNDNPREl0TXk0eU1UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREV6TGpNME0xWTVRVGNnTnlBd0lEQWdNQ0E0TGpVMklESXVPVEF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeU1pQXlJRElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW91c2Utb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW91c2VPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNnYuMzQzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4LjIxOCAxOC4yMThBNyA3IDAgMCAxIDUgMTVWOWE3IDcgMCAwIDEgLjc4Mi0zLjIxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxMy4zNDNWOUE3IDcgMCAwIDAgOC41NiAyLjkwMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMiAyIDInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW91c2VPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW91c2UtcG9pbnRlci0yLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFV1TlRVZ09DNDBOU0ExTGpFek9DQXlMakE0TjJFdU5TNDFJREFnTUNBeExTNHdOak11T1RRM2JDMDJMakV5TkNBeExqVTRZVElnTWlBd0lEQWdNQzB4TGpRek9DQXhMalF6Tld3dE1TNDFOemtnTmk0eE1qWmhMalV1TlNBd0lEQWdNUzB1T1RRM0xqQTJNMHc0TGpRMUlERTFMalUxTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01pQXlJREl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAyTGpneE5pQXhNUzQxTWpndE1pNDNOemt0Tmk0NE5HRXVORGsxTGpRNU5TQXdJREFnTVNBdU5qVXhMUzQyTlRGc05pNDROQ0F5TGpjM09TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb3VzZS1wb2ludGVyLTItb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW91c2VQb2ludGVyMk9mZjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNS41NSA4LjQ1IDUuMTM4IDIuMDg3YS41LjUgMCAwIDEtLjA2My45NDdsLTYuMTI0IDEuNThhMiAyIDAgMCAwLTEuNDM4IDEuNDM1bC0xLjU3OSA2LjEyNmEuNS41IDAgMCAxLS45NDcuMDYzTDguNDUgMTUuNTUxJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMiAyIDIyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYuODE2IDExLjUyOC0yLjc3OS02Ljg0YS40OTUuNDk1IDAgMCAxIC42NTEtLjY1MWw2Ljg0IDIuNzc5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vdXNlUG9pbnRlcjJPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW91c2UtcG9pbnRlci0yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DNHdNemNnTkM0Mk9EaGhMalE1TlM0ME9UVWdNQ0F3SURFZ0xqWTFNUzB1TmpVeGJERTJJRFl1TldFdU5TNDFJREFnTUNBeExTNHdOak11T1RRM2JDMDJMakV5TkNBeExqVTRZVElnTWlBd0lEQWdNQzB4TGpRek9DQXhMalF6Tld3dE1TNDFOemtnTmk0eE1qWmhMalV1TlNBd0lEQWdNUzB1T1RRM0xqQTJNM29pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW91c2UtcG9pbnRlci0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW91c2VQb2ludGVyMjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000LjAzNyA0LjY4OGEuNDk1LjQ5NSAwIDAgMSAuNjUxLS42NTFsMTYgNi41YS41LjUgMCAwIDEtLjA2My45NDdsLTYuMTI0IDEuNThhMiAyIDAgMCAwLTEuNDM4IDEuNDM1bC0xLjU3OSA2LjEyNmEuNS41IDAgMCAxLS45NDcuMDYzeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vdXNlUG9pbnRlcjI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW91c2UtcG9pbnRlci1iYW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0d016UWdNaTQyT0RGaExqUTVPQzQwT1RnZ01DQXdJREVnTGpZME55MHVOalEzYkRrZ015NDFZUzQxTGpVZ01DQXdJREV0TGpBek15NDVORFJNT0M0eU1EUWdOeTQxTkRWaE1TQXhJREFnTUNBd0xTNDJOaTQyTm13dE1TNHdOallnTXk0ME5ETmhMalV1TlNBd0lEQWdNUzB1T1RRMExqQXpNM29pSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRZaUlHTjVQU0l4TmlJZ2NqMGlOaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVEV1T0NBeE1TNDRJRGd1TkNBNExqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb3VzZS1wb2ludGVyLWJhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1vdXNlUG9pbnRlckJhbjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjAzNCAyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0NEw4LjIwNCA3LjU0NWExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NiAzLjQ0M2EuNS41IDAgMCAxLS45NDQuMDMzeicsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTYnLCBjeTogJzE2JywgcjogJzYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTEuOCAxMS44IDguNCA4LjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW91c2VQb2ludGVyQmFuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vdXNlLXBvaW50ZXItY2xpY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ05DNHhJREV5SURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRVdU1TQTRMVEl1T1MwdU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5pQXhNaTB4TGprZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55NHlJREl1TWlBNElEVXVNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PUzR3TXpjZ09TNDJPV0V1TkRrNExqUTVPQ0F3SURBZ01TQXVOalV6TFM0Mk5UTnNNVEVnTkM0MVlTNDFMalVnTUNBd0lERXRMakEzTkM0NU5EbHNMVFF1TXpRNUlERXVNRFF4WVRFZ01TQXdJREFnTUMwdU56UXVOek01YkMweExqQTBJRFF1TXpWaExqVXVOU0F3SURBZ01TMHVPVFV1TURjMGVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb3VzZS1wb2ludGVyLWNsaWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW91c2VQb2ludGVyQ2xpY2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNC4xIDEyIDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNS4xIDgtMi45LS44JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgMTItMS45IDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNy4yIDIuMiA4IDUuMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ005LjAzNyA5LjY5YS40OTguNDk4IDAgMCAxIC42NTMtLjY1M2wxMSA0LjVhLjUuNSAwIDAgMS0uMDc0Ljk0OWwtNC4zNDkgMS4wNDFhMSAxIDAgMCAwLS43NC43MzlsLTEuMDQgNC4zNWEuNS41IDAgMCAxLS45NS4wNzR6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW91c2VQb2ludGVyQ2xpY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW91c2UtcG9pbnRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1TlRnMklERXlMalU0TmlBeE9TQXhPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeTQyT0RnZ015NHdNemRoTGpRNU55NDBPVGNnTUNBd0lEQXRMalkxTVM0Mk5URnNOaTQxSURFMUxqazVPV0V1TlRBeExqVXdNU0F3SURBZ01DQXVPVFEzTFM0d05qSnNNUzQxTmprdE5pNHdPRE5oTWlBeUlEQWdNQ0F4SURFdU5EUTRMVEV1TkRjNWJEWXVNVEkwTFRFdU5UYzVZUzQxTGpVZ01DQXdJREFnTGpBMk15MHVPVFEzZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdXNlLXBvaW50ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb3VzZVBvaW50ZXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIuNTg2IDEyLjU4NiAxOSAxOScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zLjY4OCAzLjAzN2EuNDk3LjQ5NyAwIDAgMC0uNjUxLjY1MWw2LjUgMTUuOTk5YS41MDEuNTAxIDAgMCAwIC45NDctLjA2MmwxLjU2OS02LjA4M2EyIDIgMCAwIDEgMS40NDgtMS40NzlsNi4xMjQtMS41NzlhLjUuNSAwIDAgMCAuMDYzLS45NDd6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW91c2VQb2ludGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vdXNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0I0UFNJMUlpQjVQU0l5SWlCM2FXUjBhRDBpTVRRaUlHaGxhV2RvZEQwaU1qQWlJSEo0UFNJM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTJkalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW91c2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb3VzZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgeDogJzUnLCB5OiAnMicsIHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICcyMCcsIHJ4OiAnNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2djQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW91c2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW92ZS0zZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F6ZGpFMmFERTJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDFJREU1SURZdE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQTJJRE10TXlBeklETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTRJREUySURNZ015MHpJRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW92ZS0zZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1vdmUzZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDN2MTZoMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSAxOSA2LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiA2IDMtMyAzIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTggMTYgMyAzLTMgMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNb3ZlM2Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW92ZS1kaWFnb25hbC0yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNVE4yTm1ndE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNVlkxYURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRVZ05TQXhOQ0F4TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmUtZGlhZ29uYWwtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1vdmVEaWFnb25hbDI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTN2NmgtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDExVjVoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDUgMTQgMTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW92ZURpYWdvbmFsMjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtb3ZlLWRpYWdvbmFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVGxJTlhZdE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdOV2cyZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlEVWdOU0F4T1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmUtZGlhZ29uYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb3ZlRGlhZ29uYWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTlINXYtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyA1aDZ2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA1IDUgMTknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW92ZURpYWdvbmFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vdmUtZG93bi1sZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVGxJTlZZeE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dOVXcxSURFNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmUtZG93bi1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW92ZURvd25MZWZ0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDE5SDVWMTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgNUw1IDE5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vdmVEb3duTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtb3ZlLWRvd24tcmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01UTldNVGxJTVRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ05Vd3hPU0F4T1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmUtZG93bi1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1vdmVEb3duUmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTNWMTlIMTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSA1TDE5IDE5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vdmVEb3duUmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW92ZS1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhPRXd4TWlBeU1rd3hOaUF4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01sWXlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW92ZS1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW92ZURvd246IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOEwxMiAyMkwxNiAxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyVjIyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vdmVEb3duO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vdmUtbGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaUE0VERJZ01USk1OaUF4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1rZ3lNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW92ZS1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW92ZUxlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiA4TDIgMTJMNiAxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEySDIyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vdmVMZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vdmUtaG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGdnT0NBMElEUXROQ0EwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURFeWFESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDJJRGd0TkNBMElEUWdOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW92ZS1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW92ZUhvcml6b250YWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTggOCA0IDQtNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNiA4LTQgNCA0IDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW92ZUhvcml6b250YWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW92ZS1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnT0V3eU1pQXhNa3d4T0NBeE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNa2d5TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmUtcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb3ZlUmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOEwyMiAxMkwxOCAxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEySDIyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vdmVSaWdodDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtb3ZlLXVwLWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE1WWTFTREV4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURWTU1Ua2dNVGtpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW92ZS11cC1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW92ZVVwTGVmdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDExVjVIMTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSA1TDE5IDE5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE1vdmVVcExlZnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW92ZS11cC1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTlVneE9WWXhNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTlV3MUlERTVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tb3ZlLXVwLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTW92ZVVwUmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgNUgxOVYxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA1TDUgMTknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW92ZVVwUmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbW92ZS11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0EyVERFeUlESk1NVFlnTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01sWXlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbW92ZS11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE1vdmVVcDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDZMMTIgMkwxNiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJWMjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW92ZVVwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vdmUtdmVydGljYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0F4T0NBMElEUWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0SURZZ05DMDBJRFFnTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmUtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb3ZlVmVydGljYWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDE4IDQgNCA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCA2IDQtNCA0IDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTW92ZVZlcnRpY2FsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG1vdmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRrdE15QXpMVE10TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ09TQXpJRE10TXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXlhREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAxSURrdE15QXpJRE1nTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1NBMUlETXRNeUF6SURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL21vdmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNb3ZlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTktMyAzLTMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSA5IDMgMy0zIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDktMyAzIDMgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDUgMy0zIDMgMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNb3ZlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG11c2ljLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJNElpQmplVDBpTVRnaUlISTlJalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFNFZqSnNOeUEwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbXVzaWMtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE11c2ljMjogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzgnLCBjeTogJzE4JywgcjogJzQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThWMmw3IDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTXVzaWMyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG11c2ljLTNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFNElpQnlQU0kwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE9GWXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tdXNpYy0zXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTXVzaWMzOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE4JywgcjogJzQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMThWMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNdXNpYzM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbXVzaWMtNFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F4T0ZZMWJERXlMVEoyTVRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ09TQXhNaTB5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpZaUlHTjVQU0l4T0NJZ2NqMGlNeUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4T0NJZ1kzazlJakUySWlCeVBTSXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tdXNpYy00XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTXVzaWM0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTkgMThWNWwxMi0ydjEzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgOSAxMi0yJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnMTgnLCByOiAnMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxNicsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE11c2ljNDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBtdXNpY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F4T0ZZMWJERXlMVEoyTVRNaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5pSWdZM2s5SWpFNElpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFNElpQmplVDBpTVRZaUlISTlJak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbXVzaWNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBNdXNpYzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ005IDE4VjVsMTItMnYxMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzE4JywgcjogJzMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTYnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBNdXNpYztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBuYXZpZ2F0aW9uLTItb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TNHpNU0E1TGpNeElEVWdNakZzTnkwMElEY2dOQzB4TGpFM0xUTXVNVGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwTGpVeklEZ3VPRGdnTVRJZ01td3RNUzR4TnlBekxqRTNJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXlJaUI0TWowaU1qSWlJSGt4UFNJeUlpQjVNajBpTWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25hdmlnYXRpb24tMi1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBOYXZpZ2F0aW9uMk9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ005LjMxIDkuMzEgNSAyMWw3LTQgNyA0LTEuMTctMy4xNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNC41MyA4Ljg4IDEyIDJsLTEuMTcgMy4xNycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICcyMicsIHkxOiAnMicsIHkyOiAnMjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbjJPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbmF2aWdhdGlvbi0yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHOXNlV2R2YmlCd2IybHVkSE05SWpFeUlESWdNVGtnTWpFZ01USWdNVGNnTlNBeU1TQXhNaUF5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbmF2aWdhdGlvbi0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTmF2aWdhdGlvbjI6IEljb25Ob2RlID0gW1sncG9seWdvbicsIHsgcG9pbnRzOiAnMTIgMiAxOSAyMSAxMiAxNyA1IDIxIDEyIDInIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbjI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbmF2aWdhdGlvbi1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0M0ME15QTRMalF6SURNZ01URnNPQ0F5SURJZ09DQXlMalUzTFRVdU5ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMak01SURFeExqY3pJREl5SURKc0xUa3VOek1nTkM0Mk1TSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1pSWdlREk5SWpJeUlpQjVNVDBpTWlJZ2VUSTlJakl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbmF2aWdhdGlvbi1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBOYXZpZ2F0aW9uT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTguNDMgOC40MyAzIDExbDggMiAyIDggMi41Ny01LjQzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjM5IDExLjczIDIyIDJsLTkuNzMgNC42MScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICcyMicsIHkxOiAnMicsIHkyOiAnMjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbk9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBuYXZpZ2F0aW9uXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHOXNlV2R2YmlCd2IybHVkSE05SWpNZ01URWdNaklnTWlBeE15QXlNU0F4TVNBeE15QXpJREV4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbmF2aWdhdGlvblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE5hdmlnYXRpb246IEljb25Ob2RlID0gW1sncG9seWdvbicsIHsgcG9pbnRzOiAnMyAxMSAyMiAyIDEzIDIxIDExIDEzIDMgMTEnIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgTmF2aWdhdGlvbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBuZXdzcGFwZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01UaG9MVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFMGFDMDRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREl5YURFMllUSWdNaUF3SURBZ01DQXlMVEpXTkdFeUlESWdNQ0F3SURBdE1pMHlTRGhoTWlBeUlEQWdNQ0F3TFRJZ01uWXhObUV5SURJZ01DQXdJREV0TkNBd2RpMDVZVElnTWlBd0lEQWdNU0F5TFRKb01pSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kwSWlCNFBTSXhNQ0lnZVQwaU5pSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25ld3NwYXBlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE5ld3NwYXBlcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxOGgtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNGgtOCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDIyaDE2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDEtNCAwdi05YTIgMiAwIDAgMSAyLTJoMicsXG4gICAgfSxcbiAgXSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc0JywgeDogJzEwJywgeTogJzYnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3c3BhcGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG5ldHdvcmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjRQU0l4TmlJZ2VUMGlNVFlpSUhkcFpIUm9QU0kySWlCb1pXbG5hSFE5SWpZaUlISjRQU0l4SWlBdlBnb2dJRHh5WldOMElIZzlJaklpSUhrOUlqRTJJaUIzYVdSMGFEMGlOaUlnYUdWcFoyaDBQU0kySWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCNFBTSTVJaUI1UFNJeUlpQjNhV1IwYUQwaU5pSWdhR1ZwWjJoMFBTSTJJaUJ5ZUQwaU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhObll0TTJFeElERWdNQ0F3SURFZ01TMHhhREV5WVRFZ01TQXdJREFnTVNBeElERjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKV09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9uZXR3b3JrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTmV0d29yazogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgeDogJzE2JywgeTogJzE2Jywgd2lkdGg6ICc2JywgaGVpZ2h0OiAnNicsIHJ4OiAnMScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnMTYnLCB3aWR0aDogJzYnLCBoZWlnaHQ6ICc2Jywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnOScsIHk6ICcyJywgd2lkdGg6ICc2JywgaGVpZ2h0OiAnNicsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDE2di0zYTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyVjgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTmV0d29yaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBuZmNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBNExqTXlZVGN1TkRNZ055NDBNeUF3SURBZ01TQXdJRGN1TXpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrdU5EWWdOaTR5TVdFeE1TNDNOaUF4TVM0M05pQXdJREFnTVNBd0lERXhMalU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWk0NU1TQTBMakZoTVRVdU9URWdNVFV1T1RFZ01DQXdJREVnTGpBeElERTFMamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUyTGpNM0lESmhNakF1TVRZZ01qQXVNVFlnTUNBd0lERWdNQ0F5TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25mY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE5mYzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDguMzJhNy40MyA3LjQzIDAgMCAxIDAgNy4zNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjQ2IDYuMjFhMTEuNzYgMTEuNzYgMCAwIDEgMCAxMS41OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMi45MSA0LjFhMTUuOTEgMTUuOTEgMCAwIDEgLjAxIDE1LjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuMzcgMmEyMC4xNiAyMC4xNiAwIDAgMSAwIDIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE5mYztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBub24tYmluYXJ5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0M0MUlEUWdOeUEwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0TGpVZ09DQTNMVFFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TnlJZ2NqMGlOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbm9uLWJpbmFyeVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE5vbkJpbmFyeTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTguNSA0IDcgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204LjUgOCA3LTQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTcnLCByOiAnNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBOb25CaW5hcnk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbm90ZWJvb2stcGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVOQ0F5U0RaaE1pQXlJREFnTUNBd0xUSWdNbll4Tm1FeUlESWdNQ0F3SURBZ01pQXlhREV5WVRJZ01pQXdJREFnTUNBeUxUSjJMVGN1TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBMmFEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVEJvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE5HZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREU0YURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeExqTTNPQ0ExTGpZeU5tRXhJREVnTUNBeElEQXRNeTR3TURRdE15NHdNRFJzTFRVdU1ERWdOUzR3TVRKaE1pQXlJREFnTUNBd0xTNDFNRFl1T0RVMGJDMHVPRE0zSURJdU9EZGhMalV1TlNBd0lEQWdNQ0F1TmpJdU5qSnNNaTQ0TnkwdU9ETTNZVElnTWlBd0lEQWdNQ0F1T0RVMExTNDFNRFo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbm90ZWJvb2stcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTm90ZWJvb2tQZW46IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMuNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTcuNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDZoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEwaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMThoNCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMS4zNzggNS42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGVib29rUGVuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG5vdGVib29rLXRhYnNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBMmFEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVEJvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE5HZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREU0YURRaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqRTJJaUJvWldsbmFIUTlJakl3SWlCNFBTSTBJaUI1UFNJeUlpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01uWXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTjJnMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhNbWcxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE4yZzFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ub3RlYm9vay10YWJzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTm90ZWJvb2tUYWJzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgNmg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTBoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE0aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxOGg0JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMjAnLCB4OiAnNCcsIHk6ICcyJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDJ2MjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgN2g1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEyaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTdoNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBOb3RlYm9va1RhYnM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbm90ZWJvb2stdGV4dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUEyYURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UQm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TkdnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERTRhRFFpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFMklpQm9aV2xuYUhROUlqSXdJaUI0UFNJMElpQjVQU0l5SWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PUzQxSURob05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TNDFJREV5U0RFMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUxqVWdNVFpJTVRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL25vdGVib29rLXRleHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBOb3RlYm9va1RleHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiA2aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTRoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE4aDQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICcyMCcsIHg6ICc0JywgeTogJzInLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS41IDhoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjUgMTJIMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS41IDE2SDE0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGVib29rVGV4dDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBub3RlYm9va1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUEyYURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UQm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TkdnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERTRhRFFpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFMklpQm9aV2xuYUhROUlqSXdJaUI0UFNJMElpQjVQU0l5SWlCeWVEMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZeU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ub3RlYm9va1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE5vdGVib29rOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgNmg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTBoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE0aDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxOGg0JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMjAnLCB4OiAnNCcsIHk6ICcyJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2MjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgTm90ZWJvb2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgbm90ZXBhZC10ZXh0LWRhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlESjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQTBhREpoTWlBeUlEQWdNQ0F4SURJZ01uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0F4TW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhPSFl5WVRJZ01pQXdJREFnTVMweUlESm9MVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6SURJeWFDMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREl5U0RaaE1pQXlJREFnTUNBeExUSXRNbll0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5IWXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0E0VmpaaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFd2FEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVFJvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE9HZzFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9ub3RlcGFkLXRleHQtZGFzaGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTm90ZXBhZFRleHREYXNoZWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA0aDJhMiAyIDAgMCAxIDIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTh2MmEyIDIgMCAwIDEtMiAyaC0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDIyaC0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjJINmEyIDIgMCAwIDEtMi0ydi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTR2LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA4VjZhMiAyIDAgMCAxIDItMmgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTBoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE0aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOGg1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGVwYWRUZXh0RGFzaGVkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG5vdGVwYWQtdGV4dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlESjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZMElpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhOaUlnYUdWcFoyaDBQU0l4T0NJZ2VEMGlOQ0lnZVQwaU5DSWdjbmc5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UQm9OaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TkdnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTRhRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbm90ZXBhZC10ZXh0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTm90ZXBhZFRleHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOCAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2NCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzE4JywgeDogJzQnLCB5OiAnNCcsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEwaDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNGg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMThoNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBOb3RlcGFkVGV4dDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBudXQtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdORll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURFd2RqUmhOeTR3TURRZ055NHdNRFFnTUNBd0lEQWdOUzR5TnpjZ05pNDNPRGRqTGpReE1pNHhNRFF1T0RBeUxqSTVNaUF4TGpFd01pNDFPVEpNTVRJZ01qSnNMall5TVMwdU5qSXhZeTR6TFM0ekxqWTVMUzQwT0RnZ01TNHhNREl0TGpVNU1tRTNMakF4SURjdU1ERWdNQ0F3SURBZ05DNHhNalV0TWk0NU16a2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREV3ZGpNdU16UXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW1NdE1TNHpORGt0TGpVM015MHhMamt3TlMweExqQXdOUzB5TGpVdE1pMHVOVFEyTGprd01pMHhMakEwT0NBeExqTTFNeTB5TGpVZ01pMHhMakF4T0MwdU5qUTBMVEV1TkRZdE1TNHdPQzB5TFRJdE1TNHdNamd1TnpFdE1TNDJPUzQ1TVRndE15QXhJREV1TURneExURXVNRFE0SURFdU56VTNMVEl1TURNZ01pMHpJQzR4T1RRdExqYzNOaTQ0TkMweExqVTFNU0F4TGpjNUxUSXVNakZ0TVRFdU5qVTBJRFV1T1RrM1l5NDRPRGN0TGpRMU55QXhMakk0TFM0NE9URWdNUzQxTlRZdE1TNDNPRGNnTVM0d016SXVPVEUySURFdU5qZ3pJREV1TVRVM0lETWdNUzB4TGpJNU55MHhMakF6TmkweExqYzFPQzB5TGpBekxUSXRNeTB1TlMweUxUUXROQzA0TFRRdExqYzBJREF0TVM0ME5qRXVNRFk0TFRJdU1UVXVNVGt5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l5SWlCNE1qMGlNaklpSUhreFBTSXlJaUI1TWowaU1qSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9udXQtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgTnV0T2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDRWMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ001IDEwdjRhNy4wMDQgNy4wMDQgMCAwIDAgNS4yNzcgNi43ODdjLjQxMi4xMDQuODAyLjI5MiAxLjEwMi41OTJMMTIgMjJsLjYyMS0uNjIxYy4zLS4zLjY5LS40ODggMS4xMDItLjU5MmE3LjAxIDcuMDEgMCAwIDAgNC4xMjUtMi45MzknLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxMHYzLjM0MycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAxMmMtMS4zNDktLjU3My0xLjkwNS0xLjAwNS0yLjUtMi0uNTQ2LjkwMi0xLjA0OCAxLjM1My0yLjUgMi0xLjAxOC0uNjQ0LTEuNDYtMS4wOC0yLTItMS4wMjguNzEtMS42OS45MTgtMyAxIDEuMDgxLTEuMDQ4IDEuNzU3LTIuMDMgMi0zIC4xOTQtLjc3Ni44NC0xLjU1MSAxLjc5LTIuMjFtMTEuNjU0IDUuOTk3Yy44ODctLjQ1NyAxLjI4LS44OTEgMS41NTYtMS43ODcgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTQtLjc0IDAtMS40NjEuMDY4LTIuMTUuMTkyJyxcbiAgICB9LFxuICBdLFxuICBbJ2xpbmUnLCB7IHgxOiAnMicsIHgyOiAnMjInLCB5MTogJzInLCB5MjogJzIyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE51dE9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBudXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05GWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREV3ZGpSaE55NHdNRFFnTnk0d01EUWdNQ0F3SURBZ05TNHlOemNnTmk0M09EZGpMalF4TWk0eE1EUXVPREF5TGpJNU1pQXhMakV3TWk0MU9USk1NVElnTWpKc0xqWXlNUzB1TmpJeFl5NHpMUzR6TGpZNUxTNDBPRGdnTVM0eE1ESXRMalU1TWtFM0xqQXdNeUEzTGpBd015QXdJREFnTUNBeE9TQXhOSFl0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05FTTRJRFFnTkM0MUlEWWdOQ0E0WXkwdU1qUXpMamszTFM0NU1Ua2dNUzQ1TlRJdE1pQXpJREV1TXpFdExqQTRNaUF4TGprM01pMHVNamtnTXkweElDNDFOQzQ1TWk0NU9ESWdNUzR6TlRZZ01pQXlJREV1TkRVeUxTNDJORGNnTVM0NU5UUXRNUzR3T1RnZ01pNDFMVElnTGpVNU5TNDVPVFVnTVM0eE5URWdNUzQwTWpjZ01pNDFJRElnTVM0ek1TMHVOakl4SURFdU9EWXlMVEV1TURVNElESXVOUzB5SUM0Mk1qa3VPVGMzSURFdU1UWXlJREV1TkRJeklESXVOU0F5SURFdU1qQTVMUzQxTkRnZ01TNDJPQzB1T1RZM0lESXRNaUF4TGpBek1pNDVNVFlnTVM0Mk9ETWdNUzR4TlRjZ015QXhMVEV1TWprM0xURXVNRE0yTFRFdU56VTRMVEl1TURNdE1pMHpMUzQxTFRJdE5DMDBMVGd0TkZvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL251dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE51dDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA0VjInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNSAxMHY0YTcuMDA0IDcuMDA0IDAgMCAwIDUuMjc3IDYuNzg3Yy40MTIuMTA0LjgwMi4yOTIgMS4xMDIuNTkyTDEyIDIybC42MjEtLjYyMWMuMy0uMy42OS0uNDg4IDEuMTAyLS41OTJBNy4wMDMgNy4wMDMgMCAwIDAgMTkgMTR2LTQnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiA0QzggNCA0LjUgNiA0IDhjLS4yNDMuOTctLjkxOSAxLjk1Mi0yIDMgMS4zMS0uMDgyIDEuOTcyLS4yOSAzLTEgLjU0LjkyLjk4MiAxLjM1NiAyIDIgMS40NTItLjY0NyAxLjk1NC0xLjA5OCAyLjUtMiAuNTk1Ljk5NSAxLjE1MSAxLjQyNyAyLjUgMiAxLjMxLS42MjEgMS44NjItMS4wNTggMi41LTIgLjYyOS45NzcgMS4xNjIgMS40MjMgMi41IDIgMS4yMDktLjU0OCAxLjY4LS45NjcgMi0yIDEuMDMyLjkxNiAxLjY4MyAxLjE1NyAzIDEtMS4yOTctMS4wMzYtMS43NTgtMi4wMy0yLTMtLjUtMi00LTQtOC00WicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE51dDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBvY3RhZ29uLWFsZXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTRkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxTGpNeE1pQXlZVElnTWlBd0lEQWdNU0F4TGpReE5DNDFPRFpzTkM0Mk9EZ2dOQzQyT0RoQk1pQXlJREFnTUNBeElESXlJRGd1TmpnNGRqWXVOakkwWVRJZ01pQXdJREFnTVMwdU5UZzJJREV1TkRFMGJDMDBMalk0T0NBMExqWTRPR0V5SURJZ01DQXdJREV0TVM0ME1UUXVOVGcyU0RndU5qZzRZVElnTWlBd0lEQWdNUzB4TGpReE5DMHVOVGcyYkMwMExqWTRPQzAwTGpZNE9FRXlJRElnTUNBd0lERWdNaUF4TlM0ek1USldPQzQyT0RoaE1pQXlJREFnTUNBeElDNDFPRFl0TVM0ME1UUnNOQzQyT0RndE5DNDJPRGhCTWlBeUlEQWdNQ0F4SURndU5qZzRJREo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvb2N0YWdvbi1hbGVydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE9jdGFnb25BbGVydDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY0JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgT2N0YWdvbkFsZXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG9jdGFnb24tbWludXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0MU9EWWdNVFl1TnpJMlFUSWdNaUF3SURBZ01TQXlJREUxTGpNeE1sWTRMalk0T0dFeUlESWdNQ0F3SURFZ0xqVTROaTB4TGpReE5HdzBMalk0T0MwMExqWTRPRUV5SURJZ01DQXdJREVnT0M0Mk9EZ2dNbWcyTGpZeU5HRXlJRElnTUNBd0lERWdNUzQwTVRRdU5UZzJiRFF1TmpnNElEUXVOamc0UVRJZ01pQXdJREFnTVNBeU1pQTRMalk0T0hZMkxqWXlOR0V5SURJZ01DQXdJREV0TGpVNE5pQXhMalF4Tkd3dE5DNDJPRGdnTkM0Mk9EaGhNaUF5SURBZ01DQXhMVEV1TkRFMExqVTROa2c0TGpZNE9HRXlJRElnTUNBd0lERXRNUzQwTVRRdExqVTRObm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9vY3RhZ29uLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgT2N0YWdvbk1pbnVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE9jdGFnb25NaW51cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBvY3RhZ29uLXBhdXNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVFZXT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UVldPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaTQxT0RZZ01UWXVOekkyUVRJZ01pQXdJREFnTVNBeUlERTFMak14TWxZNExqWTRPR0V5SURJZ01DQXdJREVnTGpVNE5pMHhMalF4Tkd3MExqWTRPQzAwTGpZNE9FRXlJRElnTUNBd0lERWdPQzQyT0RnZ01tZzJMall5TkdFeUlESWdNQ0F3SURFZ01TNDBNVFF1TlRnMmJEUXVOamc0SURRdU5qZzRRVElnTWlBd0lEQWdNU0F5TWlBNExqWTRPSFkyTGpZeU5HRXlJRElnTUNBd0lERXRMalU0TmlBeExqUXhOR3d0TkM0Mk9EZ2dOQzQyT0RoaE1pQXlJREFnTUNBeExURXVOREUwTGpVNE5rZzRMalk0T0dFeUlESWdNQ0F3SURFdE1TNDBNVFF0TGpVNE5ub2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9vY3RhZ29uLXBhdXNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgT2N0YWdvblBhdXNlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE1VjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTVWOScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IE9jdGFnb25QYXVzZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBvY3RhZ29uLXhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ09TMDJJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl1TlRnMklERTJMamN5TmtFeUlESWdNQ0F3SURFZ01pQXhOUzR6TVRKV09DNDJPRGhoTWlBeUlEQWdNQ0F4SUM0MU9EWXRNUzQwTVRSc05DNDJPRGd0TkM0Mk9EaEJNaUF5SURBZ01DQXhJRGd1TmpnNElESm9OaTQyTWpSaE1pQXlJREFnTUNBeElERXVOREUwTGpVNE5tdzBMalk0T0NBMExqWTRPRUV5SURJZ01DQXdJREVnTWpJZ09DNDJPRGgyTmk0Mk1qUmhNaUF5SURBZ01DQXhMUzQxT0RZZ01TNDBNVFJzTFRRdU5qZzRJRFF1TmpnNFlUSWdNaUF3SURBZ01TMHhMalF4TkM0MU9EWklPQzQyT0RoaE1pQXlJREFnTUNBeExURXVOREUwTFM0MU9EWjZJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJRGtnTmlBMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL29jdGFnb24teFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IE9jdGFnb25YOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE1IDktNiA2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSA5IDYgNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBPY3RhZ29uWDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBvY3RhZ29uXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pNDFPRFlnTVRZdU56STJRVElnTWlBd0lEQWdNU0F5SURFMUxqTXhNbFk0TGpZNE9HRXlJRElnTUNBd0lERWdMalU0TmkweExqUXhOR3cwTGpZNE9DMDBMalk0T0VFeUlESWdNQ0F3SURFZ09DNDJPRGdnTW1nMkxqWXlOR0V5SURJZ01DQXdJREVnTVM0ME1UUXVOVGcyYkRRdU5qZzRJRFF1TmpnNFFUSWdNaUF3SURBZ01TQXlNaUE0TGpZNE9IWTJMall5TkdFeUlESWdNQ0F3SURFdExqVTROaUF4TGpReE5Hd3ROQzQyT0RnZ05DNDJPRGhoTWlBeUlEQWdNQ0F4TFRFdU5ERTBMalU0TmtnNExqWTRPR0V5SURJZ01DQXdJREV0TVM0ME1UUXRMalU0Tm5vaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL29jdGFnb25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBPY3RhZ29uOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgT2N0YWdvbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBvbWVnYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF5TUdnMExqVmhMalV1TlNBd0lEQWdNQ0F1TlMwdU5YWXRMakk0TW1FdU5USXVOVElnTUNBd0lEQXRMakkwTnkwdU5ETTNJRGdnT0NBd0lERWdNU0E0TGpRNU5DMHVNREF4TGpVeUxqVXlJREFnTUNBd0xTNHlORGN1TkRNNGRpNHlPREpoTGpVdU5TQXdJREFnTUNBdU5TNDFTREl4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvb21lZ2FcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBPbWVnYTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDIwaDQuNWEuNS41IDAgMCAwIC41LS41di0uMjgyYS41Mi41MiAwIDAgMC0uMjQ3LS40MzcgOCA4IDAgMSAxIDguNDk0LS4wMDEuNTIuNTIgMCAwIDAtLjI0Ny40Mzh2LjI4MmEuNS41IDAgMCAwIC41LjVIMjEnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBPbWVnYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBvcHRpb25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemFEWnNOaUF4T0dnMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQXphRGNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvb3B0aW9uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgT3B0aW9uOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgM2g2bDYgMThoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAzaDcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgT3B0aW9uO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIG9yYml0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVNelF4SURZdU5EZzBRVEV3SURFd0lEQWdNQ0F4SURFd0xqSTJOaUF5TVM0NE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15NDJOVGtnTVRjdU5URTJRVEV3SURFd0lEQWdNQ0F4SURFekxqYzBJREl1TVRVeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpNaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1Ua2lJR041UFNJMUlpQnlQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpVaUlHTjVQU0l4T1NJZ2NqMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvb3JiaXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBPcmJpdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMC4zNDEgNi40ODRBMTAgMTAgMCAwIDEgMTAuMjY2IDIxLjg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMuNjU5IDE3LjUxNkExMCAxMCAwIDAgMSAxMy43NCAyLjE1MicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICczJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTknLCBjeTogJzUnLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzUnLCBjeTogJzE5JywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgT3JiaXQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgb3JpZ2FtaVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRKV05HRXhJREVnTUNBd0lERWdNUzB4YURZdU1qazNZVEVnTVNBd0lEQWdNU0F1TmpVeElERXVOelU1YkMwMExqWTVOaUEwTGpBeU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USWdNakV0Tnk0ME1UUXROeTQwTVRSQk1pQXlJREFnTUNBeElEUWdNVEl1TVRjeVZqWXVOREUxWVRFdU1EQXlJREV1TURBeUlEQWdNQ0F4SURFdU56QTNMUzQzTURkTU1qQWdNakF1TURBNUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1pNHlNVFFnTXk0ek9ERWdPQzQwTVRRZ01UUXVPVFkyWVRFZ01TQXdJREFnTVMwdU1UWTNJREV1TVRrNWJDMHhMakUyT0NBeExqRTJNMkV4SURFZ01DQXdJREV0TGpjd05pNHlPVEZJTmk0ek5URmhNU0F4SURBZ01DQXhMUzQyTWpVdExqSXhPVXd6TGpJMUlERTRMamhoTVNBeElEQWdNQ0F4SUM0Mk16RXRNUzQzT0RGc05DNHhOalV1TURJM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL29yaWdhbWlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBPcmlnYW1pOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyVjRhMSAxIDAgMCAxIDEtMWg2LjI5N2ExIDEgMCAwIDEgLjY1MSAxLjc1OWwtNC42OTYgNC4wMjUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ20xMiAyMS03LjQxNC03LjQxNEEyIDIgMCAwIDEgNCAxMi4xNzJWNi40MTVhMS4wMDIgMS4wMDIgMCAwIDEgMS43MDctLjcwN0wyMCAyMC4wMDknIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xMi4yMTQgMy4zODEgOC40MTQgMTQuOTY2YTEgMSAwIDAgMS0uMTY3IDEuMTk5bC0xLjE2OCAxLjE2M2ExIDEgMCAwIDEtLjcwNi4yOTFINi4zNTFhMSAxIDAgMCAxLS42MjUtLjIxOUwzLjI1IDE4LjhhMSAxIDAgMCAxIC42MzEtMS43ODFsNC4xNjUuMDI3JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgT3JpZ2FtaTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYWNrYWdlLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00zWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaTQzTmlBellUSWdNaUF3SURBZ01TQXhMamdnTVM0eGJESXVNak1nTkM0ME56bGhNaUF5SURBZ01DQXhJQzR5TVM0NE9URldNVGxoTWlBeUlEQWdNQ0F4TFRJZ01rZzFZVElnTWlBd0lEQWdNUzB5TFRKV09TNDBOekpoTWlBeUlEQWdNQ0F4SUM0eU1URXRMamc1TkV3MUxqUTFJRFF1TVVFeUlESWdNQ0F3SURFZ055NHlOQ0F6ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXk0d05UUWdPUzR3TVROb01UY3VPRGt6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFja2FnZS0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFja2FnZTI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3Y2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2Ljc2IDNhMiAyIDAgMCAxIDEuOCAxLjFsMi4yMyA0LjQ3OWEyIDIgMCAwIDEgLjIxLjg5MVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY5LjQ3MmEyIDIgMCAwIDEgLjIxMS0uODk0TDUuNDUgNC4xQTIgMiAwIDAgMSA3LjI0IDN6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy4wNTQgOS4wMTNoMTcuODkzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhY2thZ2UyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBhY2thZ2UtY2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UWWdNaUF5SURRdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEJXT0dFeUlESWdNQ0F3SURBdE1TMHhMamN6YkMwM0xUUmhNaUF5SURBZ01DQXdMVElnTUd3dE55QTBRVElnTWlBd0lEQWdNQ0F6SURoMk9HRXlJRElnTUNBd0lEQWdNU0F4TGpjemJEY2dOR0V5SURJZ01DQXdJREFnTWlBd2JESXRNUzR4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0Tnk0MUlEUXVNamNnT1NBMUxqRTFJaUF2UGdvZ0lEeHdiMng1YkdsdVpTQndiMmx1ZEhNOUlqTXVNamtnTnlBeE1pQXhNaUF5TUM0M01TQTNJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRXlJaUI1TVQwaU1qSWlJSGt5UFNJeE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYWNrYWdlLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFja2FnZUNoZWNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE2IDIgMiA0LTQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTcuNSA0LjI3IDkgNS4xNScgfV0sXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzMuMjkgNyAxMiAxMiAyMC43MSA3JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMjInLCB5MjogJzEyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhY2thZ2VDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYWNrYWdlLW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFpvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UQldPR0V5SURJZ01DQXdJREF0TVMweExqY3piQzAzTFRSaE1pQXlJREFnTUNBd0xUSWdNR3d0TnlBMFFUSWdNaUF3SURBZ01DQXpJRGgyT0dFeUlESWdNQ0F3SURBZ01TQXhMamN6YkRjZ05HRXlJRElnTUNBd0lEQWdNaUF3YkRJdE1TNHhOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROeTQxSURRdU1qY2dPU0ExTGpFMUlpQXZQZ29nSUR4d2IyeDViR2x1WlNCd2IybHVkSE05SWpNdU1qa2dOeUF4TWlBeE1pQXlNQzQzTVNBM0lpQXZQZ29nSUR4c2FXNWxJSGd4UFNJeE1pSWdlREk5SWpFeUlpQjVNVDBpTWpJaUlIa3lQU0l4TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhY2thZ2UtbWludXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYWNrYWdlTWludXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZoNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy41IDQuMjcgOSA1LjE1JyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMy4yOSA3IDEyIDEyIDIwLjcxIDcnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcyMicsIHkyOiAnMTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFja2FnZU1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBhY2thZ2Utb3BlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpKMkxUa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFMakUzSURJdU1qRmhNUzQyTnlBeExqWTNJREFnTUNBeElERXVOak1nTUV3eU1TQTBMalUzWVRFdU9UTWdNUzQ1TXlBd0lEQWdNU0F3SURNdU16Wk1PQzQ0TWlBeE5DNDNPV0V4TGpZMU5TQXhMalkxTlNBd0lEQWdNUzB4TGpZMElEQk1NeUF4TWk0ME0yRXhMamt6SURFdU9UTWdNQ0F3SURFZ01DMHpMak0yZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTjJNeTQ0TjJFeUxqQTJJREl1TURZZ01DQXdJREV0TVM0eE1TQXhMamd6YkMwMklETXVNRGhoTVM0NU15QXhMamt6SURBZ01DQXhMVEV1TnpnZ01Hd3ROaTB6TGpBNFFUSXVNRFlnTWk0d05pQXdJREFnTVNBMElERTJMamczVmpFeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhNaTQwTTJFeExqa3pJREV1T1RNZ01DQXdJREFnTUMwekxqTTJURGd1T0RNZ01pNHlZVEV1TmpRZ01TNDJOQ0F3SURBZ01DMHhMall6SURCTU15QTBMalUzWVRFdU9UTWdNUzQ1TXlBd0lEQWdNQ0F3SURNdU16WnNNVEl1TVRnZ05pNDRObUV4TGpZek5pQXhMall6TmlBd0lEQWdNQ0F4TGpZeklEQjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYWNrYWdlLW9wZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYWNrYWdlT3BlbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnYtOScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNS4xNyAyLjIxYTEuNjcgMS42NyAwIDAgMSAxLjYzIDBMMjEgNC41N2ExLjkzIDEuOTMgMCAwIDEgMCAzLjM2TDguODIgMTQuNzlhMS42NTUgMS42NTUgMCAwIDEtMS42NCAwTDMgMTIuNDNhMS45MyAxLjkzIDAgMCAxIDAtMy4zNnonLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxM3YzLjg3YTIuMDYgMi4wNiAwIDAgMS0xLjExIDEuODNsLTYgMy4wOGExLjkzIDEuOTMgMCAwIDEtMS43OCAwbC02LTMuMDhBMi4wNiAyLjA2IDAgMCAxIDQgMTYuODdWMTMnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSAxMi40M2ExLjkzIDEuOTMgMCAwIDAgMC0zLjM2TDguODMgMi4yYTEuNjQgMS42NCAwIDAgMC0xLjYzIDBMMyA0LjU3YTEuOTMgMS45MyAwIDAgMCAwIDMuMzZsMTIuMTggNi44NmExLjYzNiAxLjYzNiAwIDAgMCAxLjYzIDB6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFja2FnZU9wZW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFja2FnZS1wbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFpvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01UTjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRCV09HRXlJRElnTUNBd0lEQXRNUzB4TGpjemJDMDNMVFJoTWlBeUlEQWdNQ0F3TFRJZ01Hd3ROeUEwUVRJZ01pQXdJREFnTUNBeklEaDJPR0V5SURJZ01DQXdJREFnTVNBeExqY3piRGNnTkdFeUlESWdNQ0F3SURBZ01pQXdiREl0TVM0eE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE55NDFJRFF1TWpjZ09TQTFMakUxSWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJak11TWprZ055QXhNaUF4TWlBeU1DNDNNU0EzSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TWlJZ2VESTlJakV5SWlCNU1UMGlNaklpSUhreVBTSXhNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFja2FnZS1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFja2FnZVBsdXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxM3Y2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxIDEwVjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGwyLTEuMTQnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ203LjUgNC4yNyA5IDUuMTUnIH1dLFxuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICczLjI5IDcgMTIgMTIgMjAuNzEgNycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzIyJywgeTI6ICcxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYWNrYWdlUGx1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYWNrYWdlLXNlYXJjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRCV09HRXlJRElnTUNBd0lEQXRNUzB4TGpjemJDMDNMVFJoTWlBeUlEQWdNQ0F3TFRJZ01Hd3ROeUEwUVRJZ01pQXdJREFnTUNBeklEaDJPR0V5SURJZ01DQXdJREFnTVNBeExqY3piRGNnTkdFeUlESWdNQ0F3SURBZ01pQXdiREl0TVM0eE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE55NDFJRFF1TWpjZ09TQTFMakUxSWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJak11TWprZ055QXhNaUF4TWlBeU1DNDNNU0EzSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TWlJZ2VESTlJakV5SWlCNU1UMGlNaklpSUhreVBTSXhNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4T0M0MUlpQmplVDBpTVRVdU5TSWdjajBpTWk0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNHlOeUF4Tnk0eU55QXlNaUF4T1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhY2thZ2Utc2VhcmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFja2FnZVNlYXJjaDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy41IDQuMjcgOSA1LjE1JyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMy4yOSA3IDEyIDEyIDIwLjcxIDcnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcyMicsIHkyOiAnMTInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOC41JywgY3k6ICcxNS41JywgcjogJzIuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC4yNyAxNy4yNyAyMiAxOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYWNrYWdlU2VhcmNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBhY2thZ2UteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRCV09HRXlJRElnTUNBd0lEQXRNUzB4TGpjemJDMDNMVFJoTWlBeUlEQWdNQ0F3TFRJZ01Hd3ROeUEwUVRJZ01pQXdJREFnTUNBeklEaDJPR0V5SURJZ01DQXdJREFnTVNBeExqY3piRGNnTkdFeUlESWdNQ0F3SURBZ01pQXdiREl0TVM0eE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE55NDFJRFF1TWpjZ09TQTFMakUxSWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJak11TWprZ055QXhNaUF4TWlBeU1DNDNNU0EzSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TWlJZ2VESTlJakV5SWlCNU1UMGlNaklpSUhreVBTSXhNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGNnTVRNZ05TQTFiUzAxSURBZ05TMDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYWNrYWdlLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYWNrYWdlWDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy41IDQuMjcgOSA1LjE1JyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMy4yOSA3IDEyIDEyIDIwLjcxIDcnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICcyMicsIHkyOiAnMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMTMgNSA1bS01IDAgNS01JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhY2thZ2VYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBhY2thZ2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01qRXVOek5oTWlBeUlEQWdNQ0F3SURJZ01HdzNMVFJCTWlBeUlEQWdNQ0F3SURJeElERTJWamhoTWlBeUlEQWdNQ0F3TFRFdE1TNDNNMnd0TnkwMFlUSWdNaUF3SURBZ01DMHlJREJzTFRjZ05FRXlJRElnTUNBd0lEQWdNeUE0ZGpoaE1pQXlJREFnTUNBd0lERWdNUzQzTTNvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlESXlWakV5SWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJak11TWprZ055QXhNaUF4TWlBeU1DNDNNU0EzSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAzTGpVZ05DNHlOeUE1SURVdU1UVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYWNrYWdlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFja2FnZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMSAyMS43M2EyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIyVjEyJyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMy4yOSA3IDEyIDEyIDIwLjcxIDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNy41IDQuMjcgOSA1LjE1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhY2thZ2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFpbnQtYnVja2V0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdOeUEySURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNExqazVNaUF4TWtneUxqQTBNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakV1TVRRMUlERTRMak00UVRNdU16UWdNeTR6TkNBd0lEQWdNU0F5TUNBeE5pNDFZVE11TXlBekxqTWdNQ0F3SURFdE1TNHhORFVnTVM0NE9HTXRMalUzTlM0ME5pMHVPRFUxSURFdU1ESXRMamcxTlNBeExqVTVOVUV5SURJZ01DQXdJREFnTWpBZ01qSmhNaUF5SURBZ01DQXdJREl0TWk0d01qVmpNQzB1TlRndExqSTROUzB4TGpFekxTNDROVFV0TVM0MU9UVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUZ3VOU0EwTGpVZ01pNHhORGd0TWk0eE5EaGhNUzR5TURVZ01TNHlNRFVnTUNBd0lERWdNUzQzTURRZ01HdzNMakk1TmlBM0xqSTVObUV4TGpJd05TQXhMakl3TlNBd0lEQWdNU0F3SURFdU56QTBiQzAzTGpVNU1pQTNMalU1TW1FekxqWXhOU0F6TGpZeE5TQXdJREFnTVMwMUxqRXhNaUF3YkMwekxqZzRPQzB6TGpnNE9HRXpMall4TlNBekxqWXhOU0F3SURBZ01TQXdMVFV1TVRFeVREVXVOamNnTnk0ek15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYWludC1idWNrZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYWludEJ1Y2tldDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSA3IDYgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOC45OTIgMTJIMi4wNDEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMTQ1IDE4LjM4QTMuMzQgMy4zNCAwIDAgMSAyMCAxNi41YTMuMyAzLjMgMCAwIDEtMS4xNDUgMS44OGMtLjU3NS40Ni0uODU1IDEuMDItLjg1NSAxLjU5NUEyIDIgMCAwIDAgMjAgMjJhMiAyIDAgMCAwIDItMi4wMjVjMC0uNTgtLjI4NS0xLjEzLS44NTUtMS41OTUnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ204LjUgNC41IDIuMTQ4LTIuMTQ4YTEuMjA1IDEuMjA1IDAgMCAxIDEuNzA0IDBsNy4yOTYgNy4yOTZhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtNy41OTIgNy41OTJhMy42MTUgMy42MTUgMCAwIDEtNS4xMTIgMGwtMy44ODgtMy44ODhhMy42MTUgMy42MTUgMCAwIDEgMC01LjExMkw1LjY3IDcuMzMnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYWludEJ1Y2tldDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYWludC1yb2xsZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UWWlJR2hsYVdkb2REMGlOaUlnZUQwaU1pSWdlVDBpTWlJZ2NuZzlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFMmRpMHlZVElnTWlBd0lEQWdNU0F5TFRKb09HRXlJRElnTUNBd0lEQWdNaTB5VmpkaE1pQXlJREFnTUNBd0xUSXRNbWd0TWlJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU5DSWdhR1ZwWjJoMFBTSTJJaUI0UFNJNElpQjVQU0l4TmlJZ2NuZzlJakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFpbnQtcm9sbGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFpbnRSb2xsZXI6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTYnLCBoZWlnaHQ6ICc2JywgeDogJzInLCB5OiAnMicsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNnYtMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNCcsIGhlaWdodDogJzYnLCB4OiAnOCcsIHk6ICcxNicsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYWludFJvbGxlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYWludGJydXNoLXZlcnRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREpoTVNBeElEQWdNQ0F4SURFZ01YWTVTRFpXTTJFeElERWdNQ0F3SURFZ01TMHhlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4TW1FeElERWdNQ0F3SURBdE1TQXhkakZoTWlBeUlEQWdNQ0F3SURJZ01tZ3lZVEVnTVNBd0lEQWdNU0F4SURGMk1pNDVZVElnTWlBd0lERWdNQ0EwSURCV01UZGhNU0F4SURBZ01DQXhJREV0TVdneVlUSWdNaUF3SURBZ01DQXlMVEoyTFRGaE1TQXhJREFnTUNBd0xURXRNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFpbnRicnVzaC12ZXJ0aWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBhaW50YnJ1c2hWZXJ0aWNhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDJhMSAxIDAgMCAxIDEgMXY5SDZWM2ExIDEgMCAwIDEgMS0xeicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002IDEyYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAwIDAgMiAyaDJhMSAxIDAgMCAxIDEgMXYyLjlhMiAyIDAgMSAwIDQgMFYxN2ExIDEgMCAwIDEgMS0xaDJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFpbnRicnVzaFZlcnRpY2FsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBhaW50YnJ1c2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRRdU5qSXlJREUzTGpnNU55MHhNQzQyT0MweUxqa3hNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGd1TXpjMklESXVOakl5WVRFZ01TQXdJREVnTVNBekxqQXdNaUF6TGpBd01rd3hOeTR6TmlBNUxqWTBNMkV1TlM0MUlEQWdNQ0F3SURBZ0xqY3dOMnd1T1RRMExqazBOR0V5TGpReElESXVOREVnTUNBd0lERWdNQ0F6TGpRd09Hd3RMamswTkM0NU5EUmhMalV1TlNBd0lEQWdNUzB1TnpBM0lEQk1PQzR6TlRRZ055NHpORGhoTGpVdU5TQXdJREFnTVNBd0xTNDNNRGRzTGprME5DMHVPVFEwWVRJdU5ERWdNaTQwTVNBd0lEQWdNU0F6TGpRd09DQXdiQzQ1TkRRdU9UUTBZUzQxTGpVZ01DQXdJREFnTGpjd055QXdlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0E0WXkweExqZ3dOQ0F5TGpjeExUTXVPVGNnTXk0ME5pMDJMalU0TXlBekxqazBPR0V1TlRBM0xqVXdOeUF3SURBZ01DMHVNekF5TGpneE9XdzNMak15SURndU9EZ3pZVEVnTVNBd0lEQWdNQ0F4TGpFNE5TNHlNRFJETVRJdU56TTFJREl3TGpRd05TQXhOaUF4Tmk0M09USWdNVFlnTVRVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhaW50YnJ1c2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYWludGJydXNoOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0LjYyMiAxNy44OTctMTAuNjgtMi45MTMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTguMzc2IDIuNjIyYTEgMSAwIDEgMSAzLjAwMiAzLjAwMkwxNy4zNiA5LjY0M2EuNS41IDAgMCAwIDAgLjcwN2wuOTQ0Ljk0NGEyLjQxIDIuNDEgMCAwIDEgMCAzLjQwOGwtLjk0NC45NDRhLjUuNSAwIDAgMS0uNzA3IDBMOC4zNTQgNy4zNDhhLjUuNSAwIDAgMSAwLS43MDdsLjk0NC0uOTQ0YTIuNDEgMi40MSAwIDAgMSAzLjQwOCAwbC45NDQuOTQ0YS41LjUgMCAwIDAgLjcwNyAweicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkgOGMtMS44MDQgMi43MS0zLjk3IDMuNDYtNi41ODMgMy45NDhhLjUwNy41MDcgMCAwIDAtLjMwMi44MTlsNy4zMiA4Ljg4M2ExIDEgMCAwIDAgMS4xODUuMjA0QzEyLjczNSAyMC40MDUgMTYgMTYuNzkyIDE2IDE1JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFpbnRicnVzaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYWxldHRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakpoTVNBeElEQWdNQ0F4SURBdE1qQWdNVEFnT1NBd0lEQWdNU0F4TUNBNUlEVWdOU0F3SURBZ01TMDFJRFZvTFRJdU1qVmhNUzQzTlNBeExqYzFJREFnTUNBd0xURXVOQ0F5TGpoc0xqTXVOR0V4TGpjMUlERXVOelVnTUNBd0lERXRNUzQwSURJdU9Ib2lJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVE11TlNJZ1kzazlJall1TlNJZ2NqMGlMalVpSUdacGJHdzlJbU4xY25KbGJuUkRiMnh2Y2lJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE55NDFJaUJqZVQwaU1UQXVOU0lnY2owaUxqVWlJR1pwYkd3OUltTjFjbkpsYm5SRGIyeHZjaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kyTGpVaUlHTjVQU0l4TWk0MUlpQnlQU0l1TlNJZ1ptbHNiRDBpWTNWeWNtVnVkRU52Ykc5eUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqZ3VOU0lnWTNrOUlqY3VOU0lnY2owaUxqVWlJR1pwYkd3OUltTjFjbkpsYm5SRGIyeHZjaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFsZXR0ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBhbGV0dGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIgMjJhMSAxIDAgMCAxIDAtMjAgMTAgOSAwIDAgMSAxMCA5IDUgNSAwIDAgMS01IDVoLTIuMjVhMS43NSAxLjc1IDAgMCAwLTEuNCAyLjhsLjMuNGExLjc1IDEuNzUgMCAwIDEtMS40IDIuOHonLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEzLjUnLCBjeTogJzYuNScsIHI6ICcuNScsIGZpbGw6ICdjdXJyZW50Q29sb3InIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNy41JywgY3k6ICcxMC41JywgcjogJy41JywgZmlsbDogJ2N1cnJlbnRDb2xvcicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYuNScsIGN5OiAnMTIuNScsIHI6ICcuNScsIGZpbGw6ICdjdXJyZW50Q29sb3InIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc4LjUnLCBjeTogJzcuNScsIHI6ICcuNScsIGZpbGw6ICdjdXJyZW50Q29sb3InIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFsZXR0ZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYW5kYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEV1TWpVZ01UY3VNalZvTVM0MVRERXlJREU0ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ01USWdNaUF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBMkxqVmhMalV1TlNBd0lEQWdNQzB1TlMwdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVOamtnT1M0Mk4yRTBMalVnTkM0MUlEQWdNU0F3TFRjdU1EUXROUzQxSURndU16VWdPQzR6TlNBd0lEQWdNQzB6TGpNZ01DQTBMalVnTkM0MUlEQWdNU0F3TFRjdU1EUWdOUzQxUXpJdU5Ea2dNVEV1TWlBeUlERXlMamc0SURJZ01UUXVOU0F5SURFNUxqUTNJRFl1TkRnZ01qSWdNVElnTWpKek1UQXRNaTQxTXlBeE1DMDNMalZqTUMweExqWXlMUzQwT0MwekxqTXRNUzR6TFRRdU9ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdOaTQxWVM0ME9UVXVORGsxSURBZ01DQXhJQzQxTFM0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERXlMVElnTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmRhXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFuZGE6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuMjUgMTcuMjVoMS41TDEyIDE4eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxMiAyIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNi41YS41LjUgMCAwIDAtLjUtLjUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAuNjkgOS42N2E0LjUgNC41IDAgMSAwLTcuMDQtNS41IDguMzUgOC4zNSAwIDAgMC0zLjMgMCA0LjUgNC41IDAgMSAwLTcuMDQgNS41QzIuNDkgMTEuMiAyIDEyLjg4IDIgMTQuNSAyIDE5LjQ3IDYuNDggMjIgMTIgMjJzMTAtMi41MyAxMC03LjVjMC0xLjYyLS40OC0zLjMtMS4zLTQuODMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDYuNWEuNDk1LjQ5NSAwIDAgMSAuNS0uNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDEyLTIgMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5kYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYW5lbC1ib3R0b20tY2xvc2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFMWFERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0E0TFRNZ015MHpMVE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWwtYm90dG9tLWNsb3NlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFuZWxCb3R0b21DbG9zZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1aDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDgtMyAzLTMtMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbEJvdHRvbUNsb3NlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBhbmVsLWJvdHRvbS1kYXNoZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE5XZ3hJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F4TldneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTFhRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRWb01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC1ib3R0b20tZGFzaGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFuZWxCb3R0b21EYXNoZWQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTVoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxNWgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTVoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE1aDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxCb3R0b21EYXNoZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFuZWwtYm90dG9tLW9wZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFMWFERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREV3SURNdE15QXpJRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWwtYm90dG9tLW9wZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYW5lbEJvdHRvbU9wZW46IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNWgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDEwIDMtMyAzIDMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxCb3R0b21PcGVuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBhbmVsLWJvdHRvbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUxYURFNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVsLWJvdHRvbVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBhbmVsQm90dG9tOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTVoMTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxCb3R0b207XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFuZWwtbGVmdC1jbG9zZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRE4yTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMklERTFMVE10TXlBekxUTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC1sZWZ0LWNsb3NlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFuZWxMZWZ0Q2xvc2U6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzdjE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE1LTMtMyAzLTMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxMZWZ0Q2xvc2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFuZWwtbGVmdC1kYXNoZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFMGRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVGwyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBemRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dPWFl4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWwtbGVmdC1kYXNoZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYW5lbExlZnREYXNoZWQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNHYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTl2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDN2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDl2MScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbExlZnREYXNoZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFuZWwtbGVmdC1vcGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlETjJNVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwSURrZ015QXpMVE1nTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVsLWxlZnQtb3BlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBhbmVsTGVmdE9wZW46IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzdjE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDkgMyAzLTMgMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbExlZnRPcGVuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBhbmVsLWxlZnQtcmlnaHQtZGFzaGVkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNVEJXT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01UVjJMVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURJeGRpMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0ExVmpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UQldPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TlhZdE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXlNWFl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBMVZqTWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU15SWdlVDBpTXlJZ2QybGtkR2c5SWpFNElpQm9aV2xuYUhROUlqRTRJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC1sZWZ0LXJpZ2h0LWRhc2hlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBhbmVsTGVmdFJpZ2h0RGFzaGVkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEwVjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTV2LTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMjF2LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgNVYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTBWOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE1di0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMjF2LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA1VjMnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzMnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxMZWZ0UmlnaHREYXNoZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFuZWwtbGVmdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRE4yTVRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVsLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYW5lbExlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzdjE4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYW5lbC1yaWdodC1jbG9zZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F6ZGpFNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNElEa2dNeUF6TFRNZ015SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC1yaWdodC1jbG9zZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBhbmVsUmlnaHRDbG9zZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzdjE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggOSAzIDMtMyAzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsUmlnaHRDbG9zZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYW5lbC1yaWdodC1kYXNoZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE5IWXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F4T1hZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXpkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURsMk1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC1yaWdodC1kYXNoZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYW5lbFJpZ2h0RGFzaGVkOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE0djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTl2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzdjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOXYxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsUmlnaHREYXNoZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFuZWwtcmlnaHQtb3BlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F6ZGpFNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1DQXhOUzB6TFRNZ015MHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC1yaWdodC1vcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFuZWxSaWdodE9wZW46IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM3YxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNS0zLTMgMy0zJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsUmlnaHRPcGVuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBhbmVsLXJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXpkakU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWwtcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYW5lbFJpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDN2MTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxSaWdodDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYW5lbC10b3AtYm90dG9tLWRhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRWb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdPV2d4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBeE5XZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0E1YURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UVm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUE1YURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UVm9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0E1YURFaUlDOCtDaUFnUEhKbFkzUWdlRDBpTXlJZ2VUMGlNeUlnZDJsa2RHZzlJakU0SWlCb1pXbG5hSFE5SWpFNElpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVsLXRvcC1ib3R0b20tZGFzaGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFuZWxUb3BCb3R0b21EYXNoZWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTVoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA5aDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTVoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA5aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNWgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTVoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDloMScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnMycsIHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbFRvcEJvdHRvbURhc2hlZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYW5lbC10b3AtY2xvc2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURsb01UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNVFlnTXkweklETWdNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWwtdG9wLWNsb3NlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFuZWxUb3BDbG9zZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDloMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxNiAzLTMgMyAzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsVG9wQ2xvc2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFuZWwtdG9wLWRhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0E1YURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlEbG9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUE1YURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ09XZ3hJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC10b3AtZGFzaGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFuZWxUb3BEYXNoZWQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgOWgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDloMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDloMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDloMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbFRvcERhc2hlZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYW5lbC10b3Atb3BlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGxvTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlERTBMVE1nTXkwekxUTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbC10b3Atb3BlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBhbmVsVG9wT3BlbjogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDloMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTQtMyAzLTMtMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYW5lbFRvcE9wZW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFuZWxzLWxlZnQtYm90dG9tXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlETjJNVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRWb01USWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbHMtbGVmdC1ib3R0b21cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYW5lbHNMZWZ0Qm90dG9tOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgM3YxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE1aDEyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsc0xlZnRCb3R0b207XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFuZWwtdG9wXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEbG9NVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFuZWwtdG9wXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFuZWxUb3A6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA5aDE4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhbmVsVG9wO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBhbmVscy1yaWdodC1ib3R0b21cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFMWFERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F6ZGpFNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhbmVscy1yaWdodC1ib3R0b21cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYW5lbHNSaWdodEJvdHRvbTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1aDEyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDN2MTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxzUmlnaHRCb3R0b207XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFuZWxzLXRvcC1sZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEbG9NVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTWpGV09TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYW5lbHMtdG9wLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYW5lbHNUb3BMZWZ0OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOWgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIxVjknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxzVG9wTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYXBlcmNsaXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ05pMDRMalF4TkNBNExqVTRObUV5SURJZ01DQXdJREFnTWk0NE1qa2dNaTQ0TWpsc09DNDBNVFF0T0M0MU9EWmhOQ0EwSURBZ01TQXdMVFV1TmpVM0xUVXVOalUzYkMwNExqTTNPU0E0TGpVMU1XRTJJRFlnTUNBeElEQWdPQzQwT0RVZ09DNDBPRFZzT0M0ek56a3RPQzQxTlRFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhcGVyY2xpcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBhcGVyY2xpcDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNiA2LTguNDE0IDguNTg2YTIgMiAwIDAgMCAyLjgyOSAyLjgyOWw4LjQxNC04LjU4NmE0IDQgMCAxIDAtNS42NTctNS42NTdsLTguMzc5IDguNTUxYTYgNiAwIDEgMCA4LjQ4NSA4LjQ4NWw4LjM3OS04LjU1MScsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBhcGVyY2xpcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYXJraW5nLW1ldGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNVFZvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRsMk15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVXVNamd5SURFNVlURWdNU0F3SURBZ01DQXVPVFE0TFM0Mk9Hd3lMak0zTFRZdU9UZzRZVGNnTnlBd0lERWdNQzB4TXk0eUlEQnNNaTR6TnlBMkxqazRPR0V4SURFZ01DQXdJREFnTGprME9DNDJPSG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnT1dFeklETWdNQ0F4SURFZ05pQXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYXJraW5nLW1ldGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFya2luZ01ldGVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDE1aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOXYzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1LjI4MiAxOWExIDEgMCAwIDAgLjk0OC0uNjhsMi4zNy02Ljk4OGE3IDcgMCAxIDAtMTMuMiAwbDIuMzcgNi45ODhhMSAxIDAgMCAwIC45NDguNjh6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA5YTMgMyAwIDEgMSA2IDAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFya2luZ01ldGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBhcmVudGhlc2VzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNWE10TkMwekxUUXRPU0EwTFRrZ05DMDVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF6Y3pRZ015QTBJRGt0TkNBNUxUUWdPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFyZW50aGVzZXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQYXJlbnRoZXNlczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDIxcy00LTMtNC05IDQtOSA0LTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM3M0IDMgNCA5LTQgOS00IDknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGFyZW50aGVzZXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGFydHktcG9wcGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TNDRJREV4TGpNZ01pQXlNbXd4TUM0M0xUTXVOemtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTTJndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJRGhvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXlhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01qQm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TWlBeUxUSXVNalF1TnpWaE1pNDVJREl1T1NBd0lEQWdNQzB4TGprMklETXVNVEpqTGpFdU9EWXRMalUzSURFdU5qTXRNUzQwTlNBeExqWXphQzB1TXpoakxTNDROaUF3TFRFdU5pNDJMVEV1TnpZZ01TNDBORXd4TkNBeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qSWdNVE10TGpneUxTNHpNMk10TGpnMkxTNHpOQzB4TGpneUxqSXRNUzQ1T0NBeExqRXhZeTB1TVRFdU55MHVOeklnTVM0eU1pMHhMalF6SURFdU1qSklNVGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV4SURJZ0xqTXpMamd5WXk0ek5DNDROaTB1TWlBeExqZ3lMVEV1TVRFZ01TNDVPRU01TGpVeUlEUXVPU0E1SURVdU5USWdPU0EyTGpJelZqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhJREV6WXpFdU9UTWdNUzQ1TXlBeUxqZ3pJRFF1TVRjZ01pQTFMUzQ0TXk0NE15MHpMakEzTFM0d055MDFMVEl0TVM0NU15MHhMamt6TFRJdU9ETXROQzR4TnkweUxUVWdMamd6TFM0NE15QXpMakEzTGpBM0lEVWdNbG9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGFydHktcG9wcGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGFydHlQb3BwZXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNS44IDExLjMgMiAyMmwxMC43LTMuNzknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAzaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAyaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMGguMDEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMjIgMi0yLjI0Ljc1YTIuOSAyLjkgMCAwIDAtMS45NiAzLjEyYy4xLjg2LS41NyAxLjYzLTEuNDUgMS42M2gtLjM4Yy0uODYgMC0xLjYuNi0xLjc2IDEuNDRMMTQgMTAnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yMiAxMy0uODItLjMzYy0uODYtLjM0LTEuODIuMi0xLjk4IDEuMTFjLS4xMS43LS43MiAxLjIyLTEuNDMgMS4yMkgxNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMSAyIC4zMy44MmMuMzQuODYtLjIgMS44Mi0xLjExIDEuOThDOS41MiA0LjkgOSA1LjUyIDkgNi4yM1Y3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExIDEzYzEuOTMgMS45MyAyLjgzIDQuMTcgMiA1LS44My44My0zLjA3LS4wNy01LTItMS45My0xLjkzLTIuODMtNC4xNy0yLTUgLjgzLS44MyAzLjA3LjA3IDUgMlonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYXJ0eVBvcHBlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYXVzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCNFBTSXhOQ0lnZVQwaU15SWdkMmxrZEdnOUlqVWlJR2hsYVdkb2REMGlNVGdpSUhKNFBTSXhJaUF2UGdvZ0lEeHlaV04wSUhnOUlqVWlJSGs5SWpNaUlIZHBaSFJvUFNJMUlpQm9aV2xuYUhROUlqRTRJaUJ5ZUQwaU1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wYXVzZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBhdXNlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB4OiAnMTQnLCB5OiAnMycsIHdpZHRoOiAnNScsIGhlaWdodDogJzE4Jywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNScsIHk6ICczJywgd2lkdGg6ICc1JywgaGVpZ2h0OiAnMTgnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGF1c2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGF3LXByaW50XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNU0lnWTNrOUlqUWlJSEk5SWpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UZ2lJR041UFNJNElpQnlQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpJd0lpQmplVDBpTVRZaUlISTlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRCaE5TQTFJREFnTUNBeElEVWdOWFl6TGpWaE15NDFJRE11TlNBd0lEQWdNUzAyTGpnMElERXVNRFExVVRZdU5USWdNVGN1TkRnZ05DNDBOaUF4Tmk0NE5FRXpMalVnTXk0MUlEQWdNQ0F4SURVdU5TQXhNRm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGF3LXByaW50XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGF3UHJpbnQ6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMScsIGN5OiAnNCcsIHI6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzgnLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzIwJywgY3k6ICcxNicsIHI6ICcyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkgMTBhNSA1IDAgMCAxIDUgNXYzLjVhMy41IDMuNSAwIDAgMS02Ljg0IDEuMDQ1UTYuNTIgMTcuNDggNC40NiAxNi44NEEzLjUgMy41IDAgMCAxIDUuNSAxMFonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQYXdQcmludDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwYy1jYXNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFFpSUdobGFXZG9kRDBpTWpBaUlIZzlJalVpSUhrOUlqSWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhOR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ05tZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJREV3YURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BjLWNhc2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQY0Nhc2U6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTQnLCBoZWlnaHQ6ICcyMCcsIHg6ICc1JywgeTogJzInLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTRoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgNmg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMTBoNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQY0Nhc2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGVuLWxpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ01qRm9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakV1TVRjMElEWXVPREV5WVRFZ01TQXdJREFnTUMwekxqazROaTB6TGprNE4wd3pMamcwTWlBeE5pNHhOelJoTWlBeUlEQWdNQ0F3TFM0MUxqZ3piQzB4TGpNeU1TQTBMak0xTW1FdU5TNDFJREFnTUNBd0lDNDJNak11TmpJeWJEUXVNelV6TFRFdU16SmhNaUF5SURBZ01DQXdJQzQ0TXkwdU5EazNlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGVuLWxpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQZW5MaW5lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzIDIxaDgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBlbkxpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGVuLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEFnTVRBdE5pNHhOVGNnTmk0eE5qSmhNaUF5SURBZ01DQXdMUzQxTGpnek0yd3RNUzR6TWpJZ05DNHpObUV1TlM0MUlEQWdNQ0F3SUM0Mk1qSXVOakkwYkRRdU16VTRMVEV1TXpJellUSWdNaUF3SURBZ01DQXVPRE10TGpWTU1UUWdNVE11T1RneUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1pNDRNamtnTnk0eE56SWdOQzR6TlRrdE5DNHpORFpoTVNBeElEQWdNU0F4SURNdU9UZzJJRE11T1RnMmJDMDBMak0xTXlBMExqTTFNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wZW4tb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGVuT2ZmOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTEwIDEwLTYuMTU3IDYuMTYyYTIgMiAwIDAgMC0uNS44MzNsLTEuMzIyIDQuMzZhLjUuNSAwIDAgMCAuNjIyLjYyNGw0LjM1OC0xLjMyM2EyIDIgMCAwIDAgLjgzLS41TDE0IDEzLjk4MicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTEyLjgyOSA3LjE3MiA0LjM1OS00LjM0NmExIDEgMCAxIDEgMy45ODYgMy45ODZsLTQuMzUzIDQuMzUzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQZW5PZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGVuLXRvb2xcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVdU56QTNJREl4TGpJNU0yRXhJREVnTUNBd0lERXRNUzQwTVRRZ01Hd3RNUzQxT0RZdE1TNDFPRFpoTVNBeElEQWdNQ0F4SURBdE1TNDBNVFJzTlM0MU9EWXROUzQxT0RaaE1TQXhJREFnTUNBeElERXVOREUwSURCc01TNDFPRFlnTVM0MU9EWmhNU0F4SURBZ01DQXhJREFnTVM0ME1UUjZJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPQ0F4TXkweExqTTNOUzAyTGpnM05HRXhJREVnTUNBd0lEQXRMamMwTmkwdU56YzJURE11TWpNMUlESXVNREk0WVRFZ01TQXdJREFnTUMweExqSXdOeUF4TGpJd04wdzFMak0xSURFMUxqZzNPV0V4SURFZ01DQXdJREFnTGpjM05pNDNORFpNTVRNZ01UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXVNeUF5TGpNZ055NHlPRFlnTnk0eU9EWWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVEVpSUdONVBTSXhNU0lnY2owaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wZW4tdG9vbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBlblRvb2w6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUuNzA3IDIxLjI5M2ExIDEgMCAwIDEtMS40MTQgMGwtMS41ODYtMS41ODZhMSAxIDAgMCAxIDAtMS40MTRsNS41ODYtNS41ODZhMSAxIDAgMCAxIDEuNDE0IDBsMS41ODYgMS41ODZhMSAxIDAgMCAxIDAgMS40MTR6JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTggMTMtMS4zNzUtNi44NzRhMSAxIDAgMCAwLS43NDYtLjc3NkwzLjIzNSAyLjAyOGExIDEgMCAwIDAtMS4yMDcgMS4yMDdMNS4zNSAxNS44NzlhMSAxIDAgMCAwIC43NzYuNzQ2TDEzIDE4JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMi4zIDIuMyA3LjI4NiA3LjI4NicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICcxMScsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBlblRvb2w7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRXVNVGMwSURZdU9ERXlZVEVnTVNBd0lEQWdNQzB6TGprNE5pMHpMams0TjB3ekxqZzBNaUF4Tmk0eE56UmhNaUF5SURBZ01DQXdMUzQxTGpnemJDMHhMak15TVNBMExqTTFNbUV1TlM0MUlEQWdNQ0F3SUM0Mk1qTXVOakl5YkRRdU16VXpMVEV1TXpKaE1pQXlJREFnTUNBd0lDNDRNeTB1TkRrM2VpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQZW46IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBlbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwZW5jaWwtbGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTWpGb09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdOU0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeExqRTNOQ0EyTGpneE1tRXhJREVnTUNBd0lEQXRNeTQ1T0RZdE15NDVPRGRNTXk0NE5ESWdNVFl1TVRjMFlUSWdNaUF3SURBZ01DMHVOUzQ0TTJ3dE1TNHpNakVnTkM0ek5USmhMalV1TlNBd0lEQWdNQ0F1TmpJekxqWXlNbXcwTGpNMU15MHhMak15WVRJZ01pQXdJREFnTUNBdU9ETXRMalE1TjNvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BlbmNpbC1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGVuY2lsTGluZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyAyMWg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDUgNCA0JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3onLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQZW5jaWxMaW5lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBlbmNpbC1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ01UQXROaTR4TlRjZ05pNHhOakpoTWlBeUlEQWdNQ0F3TFM0MUxqZ3pNMnd0TVM0ek1qSWdOQzR6Tm1FdU5TNDFJREFnTUNBd0lDNDJNakl1TmpJMGJEUXVNelU0TFRFdU16SXpZVElnTWlBd0lEQWdNQ0F1T0RNdExqVk1NVFFnTVRNdU9UZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaTQ0TWprZ055NHhOeklnTkM0ek5Ua3ROQzR6TkRaaE1TQXhJREFnTVNBeElETXVPVGcySURNdU9UZzJiQzAwTGpNMU15QTBMak0xTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ05TQTBJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGVuY2lsLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBlbmNpbE9mZjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xMCAxMC02LjE1NyA2LjE2MmEyIDIgMCAwIDAtLjUuODMzbC0xLjMyMiA0LjM2YS41LjUgMCAwIDAgLjYyMi42MjRsNC4zNTgtMS4zMjNhMiAyIDAgMCAwIC44My0uNUwxNCAxMy45ODInLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA1IDQgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGVuY2lsT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBlbmNpbC1ydWxlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTnlBNExqY2dNaTQzWVRJdU5ERWdNaTQwTVNBd0lEQWdNQzB6TGpRZ01Fd3lMamNnTlM0ellUSXVOREVnTWk0ME1TQXdJREFnTUNBd0lETXVORXczSURFeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNElEWWdNaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBeE5pQXlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzSURFeElEUXVNeUEwTGpOakxqazBMamswTGprMElESXVORFlnTUNBekxqUnNMVEl1TmlBeUxqWmpMUzQ1TkM0NU5DMHlMalEyTGprMExUTXVOQ0F3VERFeElERTNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzR4TnpRZ05pNDRNVEpoTVNBeElEQWdNQ0F3TFRNdU9UZzJMVE11T1RnM1RETXVPRFF5SURFMkxqRTNOR0V5SURJZ01DQXdJREF0TGpVdU9ETnNMVEV1TXpJeElEUXVNelV5WVM0MUxqVWdNQ0F3SURBZ0xqWXlNeTQyTWpKc05DNHpOVE10TVM0ek1tRXlJRElnTUNBd0lEQWdMamd6TFM0ME9UZDZJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0ExSURRZ05DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wZW5jaWwtcnVsZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQZW5jaWxSdWxlcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyA3IDguNyAyLjdhMi40MSAyLjQxIDAgMCAwLTMuNCAwTDIuNyA1LjNhMi40MSAyLjQxIDAgMCAwIDAgMy40TDcgMTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCA2IDItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOCAxNiAyLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMTEgNC4zIDQuM2MuOTQuOTQuOTQgMi40NiAwIDMuNGwtMi42IDIuNmMtLjk0Ljk0LTIuNDYuOTQtMy40IDBMMTEgMTcnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDUgNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBlbmNpbFJ1bGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBlbmNpbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakV1TVRjMElEWXVPREV5WVRFZ01TQXdJREFnTUMwekxqazROaTB6TGprNE4wd3pMamcwTWlBeE5pNHhOelJoTWlBeUlEQWdNQ0F3TFM0MUxqZ3piQzB4TGpNeU1TQTBMak0xTW1FdU5TNDFJREFnTUNBd0lDNDJNak11TmpJeWJEUXVNelV6TFRFdU16SmhNaUF5SURBZ01DQXdJQzQ0TXkwdU5EazNlaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnTlNBMElEUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wZW5jaWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQZW5jaWw6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDUgNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBlbmNpbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwZW50YWdvblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1T0RNZ01pNHpPR0V5SURJZ01DQXdJREVnTWk0ek5DQXdiRGdnTlM0M05HRXlJRElnTUNBd0lERWdMamN6SURJdU1qVnNMVE11TURRZ09TNHlObUV5SURJZ01DQXdJREV0TVM0NUlERXVNemRJTnk0d05HRXlJRElnTUNBd0lERXRNUzQ1TFRFdU16ZE1NaTR4SURFd0xqTTNZVElnTWlBd0lEQWdNU0F1TnpNdE1pNHlOWG9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGVudGFnb25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQZW50YWdvbjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMC44MyAyLjM4YTIgMiAwIDAgMSAyLjM0IDBsOCA1Ljc0YTIgMiAwIDAgMSAuNzMgMi4yNWwtMy4wNCA5LjI2YTIgMiAwIDAgMS0xLjkgMS4zN0g3LjA0YTIgMiAwIDAgMS0xLjktMS4zN0wyLjEgMTAuMzdhMiAyIDAgMCAxIC43My0yLjI1eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBlbnRhZ29uO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBlcmNlbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTVRraUlIZ3lQU0kxSWlCNU1UMGlOU0lnZVRJOUlqRTVJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJall1TlNJZ1kzazlJall1TlNJZ2NqMGlNaTQxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFM0xqVWlJR041UFNJeE55NDFJaUJ5UFNJeUxqVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wZXJjZW50XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGVyY2VudDogSWNvbk5vZGUgPSBbXG4gIFsnbGluZScsIHsgeDE6ICcxOScsIHgyOiAnNScsIHkxOiAnNScsIHkyOiAnMTknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc2LjUnLCBjeTogJzYuNScsIHI6ICcyLjUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNy41JywgY3k6ICcxNy41JywgcjogJzIuNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQZXJjZW50O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBlcnNvbi1zdGFuZGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJalVpSUhJOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNakFnTXkwMklETWdOaUlnTHo0S0lDQThjR0YwYUNCa1BTSnROaUE0SURZZ01pQTJMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFd2RqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wZXJzb24tc3RhbmRpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQZXJzb25TdGFuZGluZzogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc1JywgcjogJzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAyMCAzLTYgMyA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgOCA2IDIgNi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEwdjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGVyc29uU3RhbmRpbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGhpbGlwcGluZS1wZXNvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVEZJTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ04wZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREl4VmpSaE1TQXhJREFnTUNBeElERXRNV2cwWVRFZ01TQXdJREFnTVNBd0lERXlTRGNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGhpbGlwcGluZS1wZXNvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGhpbGlwcGluZVBlc286IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTFINCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA3SDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMVY0YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMCAxMkg3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBoaWxpcHBpbmVQZXNvO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBob25lLWZvcndhcmRlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTm1nNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9DQXlJRFFnTkMwMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpMamd6TWlBeE5pNDFOamhoTVNBeElEQWdNQ0F3SURFdU1qRXpMUzR6TUROc0xqTTFOUzB1TkRZMVFUSWdNaUF3SURBZ01TQXhOeUF4TldnellUSWdNaUF3SURBZ01TQXlJREoyTTJFeUlESWdNQ0F3SURFdE1pQXlRVEU0SURFNElEQWdNQ0F4SURJZ05HRXlJRElnTUNBd0lERWdNaTB5YUROaE1pQXlJREFnTUNBeElESWdNbll6WVRJZ01pQXdJREFnTVMwdU9DQXhMalpzTFM0ME5qZ3VNelV4WVRFZ01TQXdJREFnTUMwdU1qa3lJREV1TWpNeklERTBJREUwSURBZ01DQXdJRFl1TXpreUlEWXVNemcwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGhvbmUtZm9yd2FyZGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGhvbmVGb3J3YXJkZWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNmg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDIgNCA0LTQgNCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBob25lRm9yd2FyZGVkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBob25lLWNhbGxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ01tRTVJRGtnTUNBd0lERWdPU0E1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXlBMllUVWdOU0F3SURBZ01TQTFJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6TGpnek1pQXhOaTQxTmpoaE1TQXhJREFnTUNBd0lERXVNakV6TFM0ek1ETnNMak0xTlMwdU5EWTFRVElnTWlBd0lEQWdNU0F4TnlBeE5XZ3pZVElnTWlBd0lEQWdNU0F5SURKMk0yRXlJRElnTUNBd0lERXRNaUF5UVRFNElERTRJREFnTUNBeElESWdOR0V5SURJZ01DQXdJREVnTWkweWFETmhNaUF5SURBZ01DQXhJRElnTW5ZellUSWdNaUF3SURBZ01TMHVPQ0F4TGpac0xTNDBOamd1TXpVeFlURWdNU0F3SURBZ01DMHVNamt5SURFdU1qTXpJREUwSURFMElEQWdNQ0F3SURZdU16a3lJRFl1TXpnMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Bob25lLWNhbGxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQaG9uZUNhbGw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMmE5IDkgMCAwIDEgOSA5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDZhNSA1IDAgMCAxIDUgNScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBob25lQ2FsbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwaG9uZS1pbmNvbWluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTW5ZMmFEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREl0TmlBMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15NDRNeklnTVRZdU5UWTRZVEVnTVNBd0lEQWdNQ0F4TGpJeE15MHVNekF6YkM0ek5UVXRMalEyTlVFeUlESWdNQ0F3SURFZ01UY2dNVFZvTTJFeUlESWdNQ0F3SURFZ01pQXlkak5oTWlBeUlEQWdNQ0F4TFRJZ01rRXhPQ0F4T0NBd0lEQWdNU0F5SURSaE1pQXlJREFnTUNBeElESXRNbWd6WVRJZ01pQXdJREFnTVNBeUlESjJNMkV5SURJZ01DQXdJREV0TGpnZ01TNDJiQzB1TkRZNExqTTFNV0V4SURFZ01DQXdJREF0TGpJNU1pQXhMakl6TXlBeE5DQXhOQ0F3SURBZ01DQTJMak01TWlBMkxqTTROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGhvbmUtaW5jb21pbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQaG9uZUluY29taW5nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDJ2Nmg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDItNiA2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGhvbmVJbmNvbWluZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwaG9uZS1taXNzZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01pQTJJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURJdE5pQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeTQ0TXpJZ01UWXVOVFk0WVRFZ01TQXdJREFnTUNBeExqSXhNeTB1TXpBemJDNHpOVFV0TGpRMk5VRXlJRElnTUNBd0lERWdNVGNnTVRWb00yRXlJRElnTUNBd0lERWdNaUF5ZGpOaE1pQXlJREFnTUNBeExUSWdNa0V4T0NBeE9DQXdJREFnTVNBeUlEUmhNaUF5SURBZ01DQXhJREl0TW1nellUSWdNaUF3SURBZ01TQXlJREoyTTJFeUlESWdNQ0F3SURFdExqZ2dNUzQyYkMwdU5EWTRMak0xTVdFeElERWdNQ0F3SURBdExqSTVNaUF4TGpJek15QXhOQ0F4TkNBd0lEQWdNQ0EyTGpNNU1pQTJMak00TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Bob25lLW1pc3NlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBob25lTWlzc2VkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDIgNiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDItNiA2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGhvbmVNaXNzZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGhvbmUtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNU0F4TXk0NVlURTBJREUwSURBZ01DQXdJRE11TnpNeUlESXVOalk0SURFZ01TQXdJREFnTUNBeExqSXhNeTB1TXpBemJDNHpOVFV0TGpRMk5VRXlJRElnTUNBd0lERWdNVGNnTVRWb00yRXlJRElnTUNBd0lERWdNaUF5ZGpOaE1pQXlJREFnTUNBeExUSWdNaUF4T0NBeE9DQXdJREFnTVMweE1pNDNNamd0TlM0eU56SWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJRElnTWlBeU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DNDNOaUF4TXk0MU9ESkJNVGdnTVRnZ01DQXdJREVnTWlBMFlUSWdNaUF3SURBZ01TQXlMVEpvTTJFeUlESWdNQ0F3SURFZ01pQXlkak5oTWlBeUlEQWdNQ0F4TFM0NElERXVObXd0TGpRMk9DNHpOVEZoTVNBeElEQWdNQ0F3TFM0eU9USWdNUzR5TXpNZ01UUWdNVFFnTUNBd0lEQWdMakkwTkM0ME56TWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waG9uZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQaG9uZU9mZjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMC4xIDEzLjlhMTQgMTQgMCAwIDAgMy43MzIgMi42NjggMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyIDE4IDE4IDAgMCAxLTEyLjcyOC01LjI3MicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIgMiAyMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000Ljc2IDEzLjU4MkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCAuMjQ0LjQ3MycsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBob25lT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBob25lLW91dGdvaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdPQ0EyTFRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlEaFdNbWd0TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU9ETXlJREUyTGpVMk9HRXhJREVnTUNBd0lEQWdNUzR5TVRNdExqTXdNMnd1TXpVMUxTNDBOalZCTWlBeUlEQWdNQ0F4SURFM0lERTFhRE5oTWlBeUlEQWdNQ0F4SURJZ01uWXpZVElnTWlBd0lEQWdNUzB5SURKQk1UZ2dNVGdnTUNBd0lERWdNaUEwWVRJZ01pQXdJREFnTVNBeUxUSm9NMkV5SURJZ01DQXdJREVnTWlBeWRqTmhNaUF5SURBZ01DQXhMUzQ0SURFdU5td3RMalEyT0M0ek5URmhNU0F4SURBZ01DQXdMUzR5T1RJZ01TNHlNek1nTVRRZ01UUWdNQ0F3SURBZ05pNHpPVElnTmk0ek9EUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waG9uZS1vdXRnb2luZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBob25lT3V0Z29pbmc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgOCA2LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgOFYyaC02JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGhvbmVPdXRnb2luZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwaG9uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE11T0RNeUlERTJMalUyT0dFeElERWdNQ0F3SURBZ01TNHlNVE10TGpNd00yd3VNelUxTFM0ME5qVkJNaUF5SURBZ01DQXhJREUzSURFMWFETmhNaUF5SURBZ01DQXhJRElnTW5ZellUSWdNaUF3SURBZ01TMHlJREpCTVRnZ01UZ2dNQ0F3SURFZ01pQTBZVElnTWlBd0lEQWdNU0F5TFRKb00yRXlJRElnTUNBd0lERWdNaUF5ZGpOaE1pQXlJREFnTUNBeExTNDRJREV1Tm13dExqUTJPQzR6TlRGaE1TQXhJREFnTUNBd0xTNHlPVElnTVM0eU16TWdNVFFnTVRRZ01DQXdJREFnTmk0ek9USWdOaTR6T0RRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Bob25lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGhvbmU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQaG9uZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwaVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlPU0lnZURJOUlqa2lJSGt4UFNJMElpQjVNajBpTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ04yTXdMVEV1TnlBeExqTXRNeUF6TFROb01UTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREl3WXkweExqY2dNQzB6TFRFdU15MHpMVE5XTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BpXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGk6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnOScsIHgyOiAnOScsIHkxOiAnNCcsIHkyOiAnMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA3YzAtMS43IDEuMy0zIDMtM2gxMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMGMtMS43IDAtMy0xLjMtMy0zVjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGlhbm9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRndU5TQTRZeTB4TGpRZ01DMHlMall0TGpndE15NHlMVEpCTmk0NE55QTJMamczSURBZ01DQXdJRElnT1hZeE1XRXlJRElnTUNBd0lEQWdNaUF5YURFMllUSWdNaUF3SURBZ01DQXlMVEoyTFRndU5VTXlNaUE1TGpZZ01qQXVOQ0E0SURFNExqVWdPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TkdneU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhOSFkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE5IWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F4TkhZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhOSFkwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGlhbm9cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQaWFubzogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOC41IDhjLTEuNCAwLTIuNi0uOC0zLjItMkE2Ljg3IDYuODcgMCAwIDAgMiA5djExYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtOC41QzIyIDkuNiAyMC40IDggMTguNSA4JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNGgyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE0djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTR2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNHY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE0djQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGlhbm87XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGlja2F4ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFFnTVRNdE9DNHpPREVnT0M0ek9HRXhJREVnTUNBd0lERXRNeTR3TURFdE0wd3hNU0E1TGprNU9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVXVPVGN6SURRdU1ESTNRVEV6SURFeklEQWdNQ0F3SURVdU9UQXlJREl1TXpjell5MHhMak01T0M0ek5ESXRNUzR3T1RJZ01pNHhOVGd1TWpjM0lESXVOakF4WVRFNUxqa2dNVGt1T1NBd0lEQWdNU0ExTGpneU1pQXpMakF5TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZdU1EQXhJREV4TGprNU9XRXhPUzQ1SURFNUxqa2dNQ0F3SURFZ015NHdNalFnTlM0NE1qUmpMalEwTkNBeExqTTJPU0F5TGpJMklERXVOamMySURJdU5qQXpMakkzT0VFeE15QXhNeUF3SURBZ01DQXlNQ0E0TGpBMk9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ3VNelV5SURNdU16VXlZVEV1TWpBMUlERXVNakExSURBZ01DQXdMVEV1TnpBMElEQnNMVFV1TWprMklEVXVNamsyWVRFdU1qQTFJREV1TWpBMUlEQWdNQ0F3SURBZ01TNDNNRFJzTWk0eU9UWWdNaTR5T1RaaE1TNHlNRFVnTVM0eU1EVWdNQ0F3SURBZ01TNDNNRFFnTUd3MUxqSTVOaTAxTGpJNU5tRXhMakl3TlNBeExqSXdOU0F3SURBZ01DQXdMVEV1TnpBMGVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waWNrYXhlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGlja2F4ZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNCAxMy04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zTDExIDkuOTk5JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1Ljk3MyA0LjAyN0ExMyAxMyAwIDAgMCA1LjkwMiAyLjM3M2MtMS4zOTguMzQyLTEuMDkyIDIuMTU4LjI3NyAyLjYwMWExOS45IDE5LjkgMCAwIDEgNS44MjIgMy4wMjQnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNi4wMDEgMTEuOTk5YTE5LjkgMTkuOSAwIDAgMSAzLjAyNCA1LjgyNGMuNDQ0IDEuMzY5IDIuMjYgMS42NzYgMi42MDMuMjc4QTEzIDEzIDAgMCAwIDIwIDguMDY5JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTguMzUyIDMuMzUyYTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBsLTUuMjk2IDUuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw1LjI5Ni01LjI5NmExLjIwNSAxLjIwNSAwIDAgMCAwLTEuNzA0eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBpY2theGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGljdHVyZS1pbi1waWN0dXJlLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ09WWTJZVElnTWlBd0lEQWdNQzB5TFRKSU5HRXlJRElnTUNBd0lEQXRNaUF5ZGpFd1l6QWdNUzR4TGprZ01pQXlJREpvTkNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UQWlJR2hsYVdkb2REMGlOeUlnZUQwaU1USWlJSGs5SWpFeklpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BpY3R1cmUtaW4tcGljdHVyZS0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGljdHVyZUluUGljdHVyZTI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgOVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMCcsIGhlaWdodDogJzcnLCB4OiAnMTInLCB5OiAnMTMnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGljdHVyZUluUGljdHVyZTI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGljdHVyZS1pbi1waWN0dXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNR2cyVmpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJZ05DQTJJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFd1ZqZGhNaUF5SURBZ01DQXdMVEl0TW1ndE55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhOSFl5WVRJZ01pQXdJREFnTUNBeUlESm9NeUlnTHo0S0lDQThjbVZqZENCNFBTSXhNaUlnZVQwaU1UUWlJSGRwWkhSb1BTSXhNQ0lnYUdWcFoyaDBQU0kzSWlCeWVEMGlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGljdHVyZS1pbi1waWN0dXJlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGljdHVyZUluUGljdHVyZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDEwaDZWNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDQgNiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEwVjdhMiAyIDAgMCAwLTItMmgtNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE0djJhMiAyIDAgMCAwIDIgMmgzJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMTInLCB5OiAnMTQnLCB3aWR0aDogJzEwJywgaGVpZ2h0OiAnNycsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQaWN0dXJlSW5QaWN0dXJlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBpZ2d5LWJhbmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01UZG9NM1l5WVRFZ01TQXdJREFnTUNBeElERm9NbUV4SURFZ01DQXdJREFnTVMweGRpMHpZVE11TVRZZ015NHhOaUF3SURBZ01DQXlMVEpvTVdFeElERWdNQ0F3SURBZ01TMHhkaTB5WVRFZ01TQXdJREFnTUMweExURm9MVEZoTlNBMUlEQWdNQ0F3TFRJdE5GWXpZVFFnTkNBd0lEQWdNQzB6TGpJZ01TNDJiQzB1TXk0MFNERXhZVFlnTmlBd0lEQWdNQzAySURaMk1XRTFJRFVnTUNBd0lEQWdNaUEwZGpOaE1TQXhJREFnTUNBd0lERWdNV2d5WVRFZ01TQXdJREFnTUNBeExURjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TUdndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdPSFl4WVRJZ01pQXdJREFnTUNBeUlESm9NU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGlnZ3ktYmFua1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBpZ2d5QmFuazogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMSAxN2gzdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhMy4xNiAzLjE2IDAgMCAwIDItMmgxYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMWgtMWE1IDUgMCAwIDAtMi00VjNhNCA0IDAgMCAwLTMuMiAxLjZsLS4zLjRIMTFhNiA2IDAgMCAwLTYgNnYxYTUgNSAwIDAgMCAyIDR2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA4djFhMiAyIDAgMCAwIDIgMmgxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBpZ2d5QmFuaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwaWxjcm93LWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ00zWXhNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnT1dndE0yRXpJRE1nTUNBd0lERWdNQzAyYURraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElETjJNVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURFNFNESnNOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAySURJeUxUUXROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGlsY3Jvdy1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGlsY3Jvd0xlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgM3YxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA5aC0zYTMgMyAwIDAgMSAwLTZoOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAzdjExJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDE4SDJsNC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgMjItNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBpbGNyb3dMZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBpbGNyb3ctcmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ00zWXhNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnT1VnM1lURWdNU0F3SURBZ01TQXdMVFpvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ00zWXhNU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGdnTVRRZ05DQTBTRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl5SURFNExUUWdOQ0lnTHo0S1BDOXpkbWMrKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waWxjcm93LXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGlsY3Jvd1JpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDN2MTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOUg3YTEgMSAwIDAgMSAwLTZoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAzdjExJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDE0IDQgNEgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDE4LTQgNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQaWxjcm93UmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGlsY3Jvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTkhZeE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dOSFl4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ05FZzVMalZoTkM0MUlEUXVOU0F3SURBZ01DQXdJRGxJTVRNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BpbGNyb3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQaWxjcm93OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzIDR2MTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNHYxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA0SDkuNWE0LjUgNC41IDAgMCAwIDAgOUgxMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQaWxjcm93O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBpbGwtYm90dGxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVEZvTFRSaE1TQXhJREFnTUNBd0xURWdNWFkxWVRFZ01TQXdJREFnTUNBeElERm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUEzZGpFellUSWdNaUF3SURBZ01DQXlJREpvT0dFeUlESWdNQ0F3SURBZ01pMHlWamNpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpFMklpQm9aV2xuYUhROUlqVWlJSGc5SWpRaUlIazlJaklpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waWxsLWJvdHRsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBpbGxCb3R0bGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTFoLTRhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDd2MTNhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNycgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNicsIGhlaWdodDogJzUnLCB4OiAnNCcsIHk6ICcyJywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBpbGxCb3R0bGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGlsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEF1TlNBeU1DNDFJREV3TFRFd1lUUXVPVFVnTkM0NU5TQXdJREVnTUMwM0xUZHNMVEV3SURFd1lUUXVPVFVnTkM0NU5TQXdJREVnTUNBM0lEZGFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDRMalVnT0M0MUlEY2dOeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGlsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBpbGw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTAuNSAyMC41IDEwLTEwYTQuOTUgNC45NSAwIDEgMC03LTdsLTEwIDEwYTQuOTUgNC45NSAwIDEgMCA3IDdaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTguNSA4LjUgNyA3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBpbGw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGluLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRkMk5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdPUzR6TkZZM1lURWdNU0F3SURBZ01TQXhMVEVnTWlBeUlEQWdNQ0F3SURBdE5FZzNMamc1SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURJZ01qQWdNakFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnT1hZeExqYzJZVElnTWlBd0lEQWdNUzB4TGpFeElERXVOemxzTFRFdU56Z3VPVUV5SURJZ01DQXdJREFnTlNBeE5TNHlORll4Tm1FeElERWdNQ0F3SURBZ01TQXhhREV4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGluLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBpbk9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDkuMzRWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRINy44OScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA5djEuNzZhMiAyIDAgMCAxLTEuMTEgMS43OWwtMS43OC45QTIgMiAwIDAgMCA1IDE1LjI0VjE2YTEgMSAwIDAgMCAxIDFoMTEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGluT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBpblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRkMk5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhNQzQzTm1FeUlESWdNQ0F3SURFdE1TNHhNU0F4TGpjNWJDMHhMamM0TGpsQk1pQXlJREFnTUNBd0lEVWdNVFV1TWpSV01UWmhNU0F4SURBZ01DQXdJREVnTVdneE1tRXhJREVnTUNBd0lEQWdNUzB4ZGkwdU56WmhNaUF5SURBZ01DQXdMVEV1TVRFdE1TNDNPV3d0TVM0M09DMHVPVUV5SURJZ01DQXdJREVnTVRVZ01UQXVOelpXTjJFeElERWdNQ0F3SURFZ01TMHhJRElnTWlBd0lEQWdNQ0F3TFRSSU9HRXlJRElnTUNBd0lEQWdNQ0EwSURFZ01TQXdJREFnTVNBeElERjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9waW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQaW46IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ005IDEwLjc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNFYxNmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LS43NmEyIDIgMCAwIDAtMS4xMS0xLjc5bC0xLjc4LS45QTIgMiAwIDAgMSAxNSAxMC43NlY3YTEgMSAwIDAgMSAxLTEgMiAyIDAgMCAwIDAtNEg4YTIgMiAwIDAgMCAwIDQgMSAxIDAgMCAxIDEgMXonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQaW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGlwZXR0ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVElnT1MwNExqUXhOQ0E0TGpReE5FRXlJRElnTUNBd0lEQWdNeUF4T0M0NE1qaDJNUzR6TkRSaE1pQXlJREFnTUNBeExTNDFPRFlnTVM0ME1UUkJNaUF5SURBZ01DQXhJRE11T0RJNElESXhhREV1TXpRMFlUSWdNaUF3SURBZ01DQXhMalF4TkMwdU5UZzJUREUxSURFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9DQTVJQzQwTGpSaE1TQXhJREFnTVNBeExUTWdNMnd0TXk0NExUTXVPR0V4SURFZ01DQXhJREVnTXkwemJDNDBMalFnTXk0MExUTXVOR0V4SURFZ01DQXhJREVnTXlBemVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlNaUF1TkRFMExTNDBNVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGlwZXR0ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBpcGV0dGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTIgOS04LjQxNCA4LjQxNEEyIDIgMCAwIDAgMyAxOC44Mjh2MS4zNDRhMiAyIDAgMCAxLS41ODYgMS40MTRBMiAyIDAgMCAxIDMuODI4IDIxaDEuMzQ0YTIgMiAwIDAgMCAxLjQxNC0uNTg2TDE1IDEyJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTggOSAuNC40YTEgMSAwIDEgMS0zIDNsLTMuOC0zLjhhMSAxIDAgMSAxIDMtM2wuNC40IDMuNC0zLjRhMSAxIDAgMSAxIDMgM3onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyMiAuNDE0LS40MTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGlwZXR0ZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwaXp6YVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVElnTVRRdE1TQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNeTQzTlNBeE9DNHlOUzB4TGpJMUlERXVORElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzTGpjM05TQTFMalkxTkdFeE5TNDJPQ0F4TlM0Mk9DQXdJREFnTUMweE1pNHhNakVnTVRJdU1USWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRMamdnT1M0ellURWdNU0F3SURBZ01DQXlMakVnTnk0M0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TNDVOalFnTWpBdU56TXlZVEVnTVNBd0lEQWdNUzB4TGpJek1pQXhMakl6TW13dE1UZ3ROV0V4SURFZ01DQXdJREV0TGpZNU5TMHhMakl6TWtFeE9TNDJPQ0F4T1M0Mk9DQXdJREFnTVNBeE5TNDNNeklnTWk0d016ZGhNU0F4SURBZ01DQXhJREV1TWpNeUxqWTVOWG9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGl6emFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQaXp6YTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxNC0xIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuNzUgMTguMjUtMS4yNSAxLjQyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3Ljc3NSA1LjY1NGExNS42OCAxNS42OCAwIDAgMC0xMi4xMjEgMTIuMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTguOCA5LjNhMSAxIDAgMCAwIDIuMSA3LjcnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuOTY0IDIwLjczMmExIDEgMCAwIDEtMS4yMzIgMS4yMzJsLTE4LTVhMSAxIDAgMCAxLS42OTUtMS4yMzJBMTkuNjggMTkuNjggMCAwIDEgMTUuNzMyIDIuMDM3YTEgMSAwIDAgMSAxLjIzMi42OTV6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGl6emE7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGxhbmUtbGFuZGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF5TW1neU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15NDNOeUF4TUM0M055QXlJRGxzTWkwMExqVWdNUzR4TGpVMVl5NDFOUzR5T0M0NUxqZzBMamtnTVM0ME5YTXVNelVnTVM0eE55NDVJREV1TkRWTU9DQTRMalZzTXkwMklERXVNRFV1TlROaE1pQXlJREFnTUNBeElERXVNRGtnTVM0MU1td3VOeklnTlM0MFlUSWdNaUF3SURBZ01DQXhMakE1SURFdU5USnNOQzQwSURJdU1tTXVOREl1TWpJdU56Z3VOVFVnTVM0d01TNDVObXd1TmlBeExqQXpZeTQwT1M0NE9DMHVNRFlnTVM0NU9DMHhMakEySURJdU1Xd3RNUzR4T0M0eE5XTXRMalEzTGpBMkxTNDVOUzB1TURJdE1TNHpOeTB1TWpSTU5DNHlPU0F4TVM0eE5XRXlJRElnTUNBd0lERXRMalV5TFM0ek9Gb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wbGFuZS1sYW5kaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGxhbmVMYW5kaW5nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjJoMjAnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy43NyAxMC43NyAyIDlsMi00LjUgMS4xLjU1Yy41NS4yOC45Ljg0LjkgMS40NXMuMzUgMS4xNy45IDEuNDVMOCA4LjVsMy02IDEuMDUuNTNhMiAyIDAgMCAxIDEuMDkgMS41MmwuNzIgNS40YTIgMiAwIDAgMCAxLjA5IDEuNTJsNC40IDIuMmMuNDIuMjIuNzguNTUgMS4wMS45NmwuNiAxLjAzYy40OS44OC0uMDYgMS45OC0xLjA2IDIuMWwtMS4xOC4xNWMtLjQ3LjA2LS45NS0uMDItMS4zNy0uMjRMNC4yOSAxMS4xNWEyIDIgMCAwIDEtLjUyLS4zOFonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQbGFuZUxhbmRpbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGxhbmUtdGFrZW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF5TW1neU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNHpOaUF4Tnk0MElEUWdNVGRzTFRJdE5DQXhMakV0TGpVMVlUSWdNaUF3SURBZ01TQXhMamdnTUd3dU1UY3VNV0V5SURJZ01DQXdJREFnTVM0NElEQk1PQ0F4TWlBMUlEWnNMamt0TGpRMVlUSWdNaUF3SURBZ01TQXlMakE1TGpKc05DNHdNaUF6WVRJZ01pQXdJREFnTUNBeUxqRXVNbXcwTGpFNUxUSXVNRFpoTWk0ME1TQXlMalF4SURBZ01DQXhJREV1TnpNdExqRTNUREl4SURkaE1TNDBJREV1TkNBd0lEQWdNU0F1T0RjZ01TNDVPV3d0TGpNNExqYzJZeTB1TWpNdU5EWXRMall1T0RRdE1TNHdOeUF4TGpBNFREY3VOVGdnTVRjdU1tRXlJRElnTUNBd0lERXRNUzR5TWk0eE9Gb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wbGFuZS10YWtlb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGxhbmVUYWtlb2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjJoMjAnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNi4zNiAxNy40IDQgMTdsLTItNCAxLjEtLjU1YTIgMiAwIDAgMSAxLjggMGwuMTcuMWEyIDIgMCAwIDAgMS44IDBMOCAxMiA1IDZsLjktLjQ1YTIgMiAwIDAgMSAyLjA5LjJsNC4wMiAzYTIgMiAwIDAgMCAyLjEuMmw0LjE5LTIuMDZhMi40MSAyLjQxIDAgMCAxIDEuNzMtLjE3TDIxIDdhMS40IDEuNCAwIDAgMSAuODcgMS45OWwtLjM4Ljc2Yy0uMjMuNDYtLjYuODQtMS4wNyAxLjA4TDcuNTggMTcuMmEyIDIgMCAwIDEtMS4yMi4xOFonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQbGFuZVRha2VvZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGxhbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU9DQXhPUzR5SURFMklERXhiRE11TlMwekxqVkRNakVnTmlBeU1TNDFJRFFnTWpFZ00yTXRNUzB1TlMweklEQXROQzQxSURFdU5Vd3hNeUE0SURRdU9DQTJMakpqTFM0MUxTNHhMUzQ1TGpFdE1TNHhMalZzTFM0ekxqVmpMUzR5TGpVdExqRWdNU0F1TXlBeExqTk1PU0F4TW13dE1pQXpTRFJzTFRFZ01TQXpJRElnTWlBeklERXRNWFl0TTJ3ekxUSWdNeTQxSURVdU0yTXVNeTQwTGpndU5TQXhMak11TTJ3dU5TMHVNbU11TkMwdU15NDJMUzQzTGpVdE1TNHllaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGxhbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQbGFuZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNy44IDE5LjIgMTYgMTFsMy41LTMuNUMyMSA2IDIxLjUgNCAyMSAzYy0xLS41LTMgMC00LjUgMS41TDEzIDggNC44IDYuMmMtLjUtLjEtLjkuMS0xLjEuNWwtLjMuNWMtLjIuNS0uMSAxIC4zIDEuM0w5IDEybC0yIDNINGwtMSAxIDMgMiAyIDMgMS0xdi0zbDMtMiAzLjUgNS4zYy4zLjQuOC41IDEuMy4zbC41LS4yYy40LS4zLjYtLjcuNS0xLjJ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUGxhbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGxheVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0ExWVRJZ01pQXdJREFnTVNBekxqQXdPQzB4TGpjeU9Hd3hNUzQ1T1RjZ05pNDVPVGhoTWlBeUlEQWdNQ0F4SUM0d01ETWdNeTQwTlRoc0xURXlJRGRCTWlBeUlEQWdNQ0F4SURVZ01UbDZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wbGF5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGxheTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTUgNWEyIDIgMCAwIDEgMy4wMDgtMS43MjhsMTEuOTk3IDYuOTk4YTIgMiAwIDAgMSAuMDAzIDMuNDU4bC0xMiA3QTIgMiAwIDAgMSA1IDE5eicgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBsYXk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGx1Zy0yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TQXlkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURKMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGQyTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBNGFERTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREV4Vmpob01USjJNMkUySURZZ01DQXhJREV0TVRJZ01Gb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wbHVnLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQbHVnMjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ005IDJ2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAydjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTd2NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDhoMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMVY4aDEydjNhNiA2IDAgMSAxLTEyIDBaJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBsdWcyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBsdWctemFwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pNHpJREl3TGpOaE1pNDBJREl1TkNBd0lEQWdNQ0F6TGpRZ01Fd3hNaUF4T0d3dE5pMDJMVEl1TXlBeUxqTmhNaTQwSURJdU5DQXdJREFnTUNBd0lETXVORm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWpJZ015MHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNMalVnTVRNdU5TQXhNQ0F4TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU5TQXhOaTQxSURFeklERTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPQ0F6TFRRZ05HZzJiQzAwSURRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BsdWctemFwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUGx1Z1phcDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002LjMgMjAuM2EyLjQgMi40IDAgMCAwIDMuNCAwTDEyIDE4bC02LTYtMi4zIDIuM2EyLjQgMi40IDAgMCAwIDAgMy40WicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIyIDMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003LjUgMTMuNSAxMCAxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC41IDE2LjUgMTMgMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTggMy00IDRoNmwtNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBsdWdaYXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGx1Z1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpKMkxUVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJRGhXTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ09HRXhJREVnTUNBd0lERWdNU0F4ZGpSaE5DQTBJREFnTUNBeExUUWdOR2d0TkdFMElEUWdNQ0F3SURFdE5DMDBWamxoTVNBeElEQWdNQ0F4SURFdE1Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dPRll5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGx1Z1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBsdWc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJ2LTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOFYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDhhMSAxIDAgMCAxIDEgMXY0YTQgNCAwIDAgMS00IDRoLTRhNCA0IDAgMCAxLTQtNFY5YTEgMSAwIDAgMSAxLTF6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgOFYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBsdWc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F4TW1neE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOWFl4TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQbHVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMTJoMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNXYxNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHBvY2tldC1rbmlmZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF5ZGpGak1DQXhJRElnTVNBeUlESlRNeUEySURNZ04zTXlJREVnTWlBeUxUSWdNUzB5SURJZ01pQXhJRElnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ05tZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRob0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQzQ0TXlBNExqZ3pZVFFnTkNBd0lEQWdNQzAxTGpZMkxUVXVOalpzTFRFeUlERXlZVFFnTkNBd0lERWdNQ0ExTGpZMklEVXVOalphSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeE1TNDJObFl5TW1FMElEUWdNQ0F3SURBZ05DMDBWallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcG9ja2V0LWtuaWZlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUG9ja2V0S25pZmU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAydjFjMCAxIDIgMSAyIDJTMyA2IDMgN3MyIDEgMiAyLTIgMS0yIDIgMiAxIDIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA2aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC44MyA4LjgzYTQgNCAwIDAgMC01LjY2LTUuNjZsLTEyIDEyYTQgNCAwIDEgMCA1LjY2IDUuNjZaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDExLjY2VjIyYTQgNCAwIDAgMCA0LTRWNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQb2NrZXRLbmlmZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwb2NrZXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ00yRXlJRElnTUNBd0lERWdNaUF5ZGpaaE1TQXhJREFnTUNBeExUSXdJREJXTldFeUlESWdNQ0F3SURFZ01pMHllaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0F4TUNBMElEUWdOQzAwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcG9ja2V0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICogQGRlcHJlY2F0ZWQgQnJhbmQgaWNvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIGFyZSBkdWUgdG8gYmUgcmVtb3ZlZCwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2lzc3Vlcy82NzAuIFdlIHJlY29tbWVuZCB1c2luZyBodHRwczovL3NpbXBsZWljb25zLm9yZy8/cT1wb2NrZXQgaW5zdGVhZC4gVGhpcyBpY29uIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wXG4gKi9cbmNvbnN0IFBvY2tldDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMCAzYTIgMiAwIDAgMSAyIDJ2NmExIDEgMCAwIDEtMjAgMFY1YTIgMiAwIDAgMSAyLTJ6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTAgNCA0IDQtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQb2NrZXQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcG9kY2FzdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVRkaE1TQXhJREFnTVNBd0xUSWdNR3d1TlNBMExqVmhNQzQxSURBdU5TQXdJREFnTUNBeElEQjZJaUJtYVd4c1BTSmpkWEp5Wlc1MFEyOXNiM0lpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUyTGpnMUlERTRMalU0WVRrZ09TQXdJREVnTUMwNUxqY2dNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TkdFMUlEVWdNQ0F4SURFZ09DQXdJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVEVpSUhJOUlqRWlJR1pwYkd3OUltTjFjbkpsYm5SRGIyeHZjaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcG9kY2FzdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBvZGNhc3Q6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTdhMSAxIDAgMSAwLTIgMGwuNSA0LjVhMC41IDAuNSAwIDAgMCAxIDB6JywgZmlsbDogJ2N1cnJlbnRDb2xvcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNi44NSAxOC41OGE5IDkgMCAxIDAtOS43IDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNGE1IDUgMCAxIDEgOCAwJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzExJywgcjogJzEnLCBmaWxsOiAnY3VycmVudENvbG9yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBvZGNhc3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcG9pbnRlci1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ05DNDFWalJoTWlBeUlEQWdNQ0F3TFRJdU5ERXRNUzQ1TlRjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFekxqa2dPQzQwWVRJZ01pQXdJREFnTUMweExqSTJMVEV1TWprMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TNDNJREUyTGpKQk9DQTRJREFnTUNBd0lESXlJREUwZGkwellUSWdNaUF3SURFZ01DMDBJREIyTFRGaE1pQXlJREFnTUNBd0xUTXVOak10TVM0eE5UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY2dNVFV0TVM0NExURXVPR0V5SURJZ01DQXdJREF0TWk0M09TQXlMamcyVERZZ01Ua3VOMkUzTGpjMElEY3VOelFnTUNBd0lEQWdOaUF5TGpOb01tRTRJRGdnTUNBd0lEQWdOUzQyTlRjdE1pNHpORE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTm5ZNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUlESWdNakFnTWpBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BvaW50ZXItb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUG9pbnRlck9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCA0LjVWNGEyIDIgMCAwIDAtMi40MS0xLjk1NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy45IDguNGEyIDIgMCAwIDAtMS4yNi0xLjI5NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMS43IDE2LjJBOCA4IDAgMCAwIDIyIDE0di0zYTIgMiAwIDEgMC00IDB2LTFhMiAyIDAgMCAwLTMuNjMtMS4xNTgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ203IDE1LTEuOC0xLjhhMiAyIDAgMCAwLTIuNzkgMi44Nkw2IDE5LjdhNy43NCA3Ljc0IDAgMCAwIDYgMi4zaDJhOCA4IDAgMCAwIDUuNjU3LTIuMzQzJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA2djgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBvaW50ZXJPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcG9pbnRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRSaE9DQTRJREFnTUNBeExUZ2dPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRGMkxURmhNaUF5SURBZ01DQXdMVEl0TW1FeUlESWdNQ0F3SURBdE1pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F4TUZZNVlUSWdNaUF3SURBZ01DMHlMVEpoTWlBeUlEQWdNQ0F3TFRJZ01uWXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0E1TGpWV05HRXlJRElnTUNBd0lEQXRNaTB5WVRJZ01pQXdJREFnTUMweUlESjJNVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURFeFlUSWdNaUF3SURFZ01TQTBJREIyTTJFNElEZ2dNQ0F3SURFdE9DQTRhQzB5WXkweUxqZ2dNQzAwTGpVdExqZzJMVFV1T1RrdE1pNHpOR3d0TXk0MkxUTXVObUV5SURJZ01DQXdJREVnTWk0NE15MHlMamd5VERjZ01UVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wb2ludGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUG9pbnRlcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNGE4IDggMCAwIDEtOCA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDExdi0xYTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMFY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDkuNVY0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxMCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUG9pbnRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwb3Bjb3JuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dPR0V5SURJZ01DQXdJREFnTUMwMElESWdNaUF3SURBZ01DMDBJREFnTWlBeUlEQWdNQ0F3TFRRZ01DQXlJRElnTUNBd0lEQXROQ0F3SURJZ01pQXdJREFnTUNBd0lEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREl5SURrZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdNaklnTVMweE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdPR011TlNBd0lDNDVMalF1T0NBeGJDMHlMallnTVRKakxTNHhMalV0TGpjZ01TMHhMaklnTVVnM1l5MHVOaUF3TFRFdU1TMHVOQzB4TGpJdE1Vd3pMaklnT1dNdExqRXRMall1TXkweElDNDRMVEZhSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcG9wY29yblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBvcGNvcm46IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOGEyIDIgMCAwIDAgMC00IDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMCAwIDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjIgOSA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDIyIDEtMTQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgOGMuNSAwIC45LjQuOCAxbC0yLjYgMTJjLS4xLjUtLjcgMS0xLjIgMUg3Yy0uNiAwLTEuMS0uNC0xLjItMUwzLjIgOWMtLjEtLjYuMy0xIC44LTFaJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUG9wY29ybjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwb3BzaWNsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGd1TmlBeE5DNDBZeTQ0TFM0NExqZ3RNaUF3TFRJdU9Hd3RPQzR4TFRndU1XRTBMamsxSURRdU9UVWdNQ0F4SURBdE55NHhJRGN1TVd3NExqRWdPQzR4WXk0NUxqY2dNaTR4TGpjZ01pNDVMUzR4V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpJZ01qSXROUzQxTFRVdU5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wb3BzaWNsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBvcHNpY2xlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTguNiAxNC40Yy44LS44LjgtMiAwLTIuOGwtOC4xLTguMWE0Ljk1IDQuOTUgMCAxIDAtNy4xIDcuMWw4LjEgOC4xYy45LjcgMi4xLjcgMi45LS4xWicgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDIyLTUuNS01LjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUG9wc2ljbGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcG91bmQtc3RlcmxpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ04yTXdMVFV1TXpNekxUZ3ROUzR6TXpNdE9DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0EzZGpFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklESXhhREV5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFemFERXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wb3VuZC1zdGVybGluZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBvdW5kU3Rlcmxpbmc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggN2MwLTUuMzMzLTgtNS4zMzMtOCAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDd2MTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAyMWgxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEzaDEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFBvdW5kU3Rlcmxpbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcG93ZXItb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ3VNellnTmk0Mk5FRTVJRGtnTUNBd0lERWdNakF1TnpjZ01UVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWXVNVFlnTmk0eE5tRTVJRGtnTUNBeElEQWdNVEl1TmpnZ01USXVOamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURKMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Bvd2VyLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFBvd2VyT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4LjM2IDYuNjRBOSA5IDAgMCAxIDIwLjc3IDE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQb3dlck9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwb3dlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ3VOQ0EyTGpaaE9TQTVJREFnTVNBeExURXlMamMzTGpBMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Bvd2VyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUG93ZXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOC40IDYuNmE5IDkgMCAxIDEtMTIuNzcuMDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUG93ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcHJlc2VudGF0aW9uXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXphREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBemRqRXhZVElnTWlBd0lEQWdNUzB5SURKSU5XRXlJRElnTUNBd0lERXRNaTB5VmpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRjZ01qRWdOUzAxSURVZ05TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wcmVzZW50YXRpb25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQcmVzZW50YXRpb246IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAzaDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDN2MTFhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDIxIDUtNSA1IDUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUHJlc2VudGF0aW9uO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHByaW50ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE9FZzBZVElnTWlBd0lEQWdNUzB5TFRKMkxUVmhNaUF5SURBZ01DQXhJREl0TW1neE5tRXlJRElnTUNBd0lERWdNaUF5ZGpWaE1pQXlJREFnTUNBeExUSWdNbWd0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBNVZqTmhNU0F4SURBZ01DQXhJREV0TVdneE1HRXhJREVnTUNBd0lERWdNU0F4ZGpZaUlDOCtDaUFnUEhKbFkzUWdlRDBpTmlJZ2VUMGlNVFFpSUhkcFpIUm9QU0l4TWlJZ2FHVnBaMmgwUFNJNElpQnllRDBpTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ByaW50ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBQcmludGVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICc2JywgeTogJzE0Jywgd2lkdGg6ICcxMicsIGhlaWdodDogJzgnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUHJpbnRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwcmludGVyLWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVOU0F5TWtnM1lURWdNU0F3SURBZ01TMHhMVEYyTFRaaE1TQXhJREFnTUNBeElERXRNV2d4TUdFeElERWdNQ0F3SURFZ01TQXhkaTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TmlBeE9TQXlJRElnTkMwMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERTRTRFJoTWlBeUlEQWdNQ0F4TFRJdE1uWXROV0V5SURJZ01DQXdJREVnTWkweWFERTJZVElnTWlBd0lEQWdNU0F5SURKMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQTVWak5oTVNBeElEQWdNQ0F4SURFdE1XZ3hNR0V4SURFZ01DQXdJREVnTVNBeGRqWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wcmludGVyLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUHJpbnRlckNoZWNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzLjUgMjJIN2ExIDEgMCAwIDEtMS0xdi02YTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXYuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxOSAyIDIgNC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFByaW50ZXJDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwcm9qZWN0b3JcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBM0lETWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0EyVmpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeklEY2dNaTB5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpraUlHTjVQU0l4TXlJZ2NqMGlNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEV1T0RNZ01USklNakJoTWlBeUlEQWdNQ0F4SURJZ01uWTBZVElnTWlBd0lEQWdNUzB5SURKSU5HRXlJRElnTUNBd0lERXRNaTB5ZGkwMFlUSWdNaUF3SURBZ01TQXlMVEpvTWk0eE55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVFpvTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Byb2plY3RvclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFByb2plY3RvcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDcgMyA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgNlYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzIDcgMi0yJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnMTMnLCByOiAnMycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTExLjgzIDEySDIwYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtNGEyIDIgMCAwIDEgMi0yaDIuMTcnIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNmgyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFByb2plY3RvcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwcm9wb3J0aW9uc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UWWlJSGc5SWpJaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE1ZGpFeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlEbG9NVE5oTWlBeUlEQWdNQ0F4SURJZ01uWTVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wcm9wb3J0aW9uc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFByb3BvcnRpb25zOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTYnLCB4OiAnMicsIHk6ICc0Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDl2MTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA5aDEzYTIgMiAwIDAgMSAyIDJ2OScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBQcm9wb3J0aW9ucztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBwdXp6bGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVdU16a2dOQzR6T1dFeElERWdNQ0F3SURBZ01TNDJPQzB1TkRjMElESXVOU0F5TGpVZ01DQXhJREVnTXk0d01UUWdNeTR3TVRVZ01TQXhJREFnTUNBd0xTNDBOelFnTVM0Mk9Hd3hMalk0TXlBeExqWTRNbUV5TGpReE5DQXlMalF4TkNBd0lEQWdNU0F3SURNdU5ERTBUREU1TGpZeElERTFMak01WVRFZ01TQXdJREFnTVMweExqWTRMUzQwTnpRZ01pNDFJREl1TlNBd0lERWdNQzB6TGpBeE5DQXpMakF4TlNBeElERWdNQ0F3SURFZ0xqUTNOQ0F4TGpZNGJDMHhMalk0TXlBeExqWTRNbUV5TGpReE5DQXlMalF4TkNBd0lEQWdNUzB6TGpReE5DQXdURGd1TmpFZ01Ua3VOakZoTVNBeElEQWdNQ0F3TFRFdU5qZ3VORGMwSURJdU5TQXlMalVnTUNBeElERXRNeTR3TVRRdE15NHdNVFVnTVNBeElEQWdNQ0F3SUM0ME56UXRNUzQyT0d3dE1TNDJPRE10TVM0Mk9ESmhNaTQwTVRRZ01pNDBNVFFnTUNBd0lERWdNQzB6TGpReE5FdzBMak01SURndU5qRmhNU0F4SURBZ01DQXhJREV1TmpndU5EYzBJREl1TlNBeUxqVWdNQ0F4SURBZ015NHdNVFF0TXk0d01UVWdNU0F4SURBZ01DQXhMUzQwTnpRdE1TNDJPR3d4TGpZNE15MHhMalk0TW1FeUxqUXhOQ0F5TGpReE5DQXdJREFnTVNBekxqUXhOQ0F3ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3B1enpsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFB1enpsZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNS4zOSA0LjM5YTEgMSAwIDAgMCAxLjY4LS40NzQgMi41IDIuNSAwIDEgMSAzLjAxNCAzLjAxNSAxIDEgMCAwIDAtLjQ3NCAxLjY4bDEuNjgzIDEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxIDAgMy40MTRMMTkuNjEgMTUuMzlhMSAxIDAgMCAxLTEuNjgtLjQ3NCAyLjUgMi41IDAgMSAwLTMuMDE0IDMuMDE1IDEgMSAwIDAgMSAuNDc0IDEuNjhsLTEuNjgzIDEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxLTMuNDE0IDBMOC42MSAxOS42MWExIDEgMCAwIDAtMS42OC40NzQgMi41IDIuNSAwIDEgMS0zLjAxNC0zLjAxNSAxIDEgMCAwIDAgLjQ3NC0xLjY4bC0xLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwLTMuNDE0TDQuMzkgOC42MWExIDEgMCAwIDEgMS42OC40NzQgMi41IDIuNSAwIDEgMCAzLjAxNC0zLjAxNSAxIDEgMCAwIDEtLjQ3NC0xLjY4bDEuNjgzLTEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxIDMuNDE0IDB6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUHV6emxlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHB5cmFtaWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0MUlERTJMamc0WVRFZ01TQXdJREFnTVMwdU16SXRNUzQwTTJ3NUxURXpMakF5WVRFZ01TQXdJREFnTVNBeExqWTBJREJzT1NBeE15NHdNV0V4SURFZ01DQXdJREV0TGpNeUlERXVORFJzTFRndU5URWdOQzQ0Tm1FeUlESWdNQ0F3SURFdE1TNDVPQ0F3V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXlNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcHlyYW1pZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFB5cmFtaWQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMi41IDE2Ljg4YTEgMSAwIDAgMS0uMzItMS40M2w5LTEzLjAyYTEgMSAwIDAgMSAxLjY0IDBsOSAxMy4wMWExIDEgMCAwIDEtLjMyIDEuNDRsLTguNTEgNC44NmEyIDIgMCAwIDEtMS45OCAwWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUHlyYW1pZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBxci1jb2RlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOU0lnYUdWcFoyaDBQU0kxSWlCNFBTSXpJaUI1UFNJeklpQnllRDBpTVNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU5TSWdhR1ZwWjJoMFBTSTFJaUI0UFNJeE5pSWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpVaUlHaGxhV2RvZEQwaU5TSWdlRDBpTXlJZ2VUMGlNVFlpSUhKNFBTSXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4Tm1ndE0yRXlJRElnTUNBd0lEQXRNaUF5ZGpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElESXhkaTR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ04zWXpZVElnTWlBd0lEQWdNUzB5SURKSU55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNbWd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlETm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE5uWXVNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFeWFERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREV5ZGk0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakYyTFRFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3FyLWNvZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBRckNvZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNScsIGhlaWdodDogJzUnLCB4OiAnMycsIHk6ICczJywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzUnLCBoZWlnaHQ6ICc1JywgeDogJzE2JywgeTogJzMnLCByeDogJzEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNScsIGhlaWdodDogJzUnLCB4OiAnMycsIHk6ICcxNicsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNmgtM2EyIDIgMCAwIDAtMiAydjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMjF2LjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDd2M2EyIDIgMCAwIDEtMiAySDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZ2LjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEyaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJ2LjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIxdi0xJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFFyQ29kZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBxdW90ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTTJFeUlESWdNQ0F3SURBdE1pQXlkalpoTWlBeUlEQWdNQ0F3SURJZ01pQXhJREVnTUNBd0lERWdNU0F4ZGpGaE1pQXlJREFnTUNBeExUSWdNaUF4SURFZ01DQXdJREF0TVNBeGRqSmhNU0F4SURBZ01DQXdJREVnTVNBMklEWWdNQ0F3SURBZ05pMDJWalZoTWlBeUlEQWdNQ0F3TFRJdE1ub2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNMkV5SURJZ01DQXdJREF0TWlBeWRqWmhNaUF5SURBZ01DQXdJRElnTWlBeElERWdNQ0F3SURFZ01TQXhkakZoTWlBeUlEQWdNQ0F4TFRJZ01pQXhJREVnTUNBd0lEQXRNU0F4ZGpKaE1TQXhJREFnTUNBd0lERWdNU0EySURZZ01DQXdJREFnTmkwMlZqVmhNaUF5SURBZ01DQXdMVEl0TW5vaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3F1b3RlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUXVvdGU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYgM2EyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMiAxIDEgMCAwIDEgMSAxdjFhMiAyIDAgMCAxLTIgMiAxIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMSA2IDYgMCAwIDAgNi02VjVhMiAyIDAgMCAwLTItMnonLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ001IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUXVvdGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmFiYml0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNVFpoTXlBeklEQWdNQ0F4SURJdU1qUWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0F5TVdndE9HRTBJRFFnTUNBd0lERXROQzAwSURjZ055QXdJREFnTVNBM0xUZG9MakpNT1M0MklEWXVOR0V4SURFZ01DQXhJREVnTWk0NExUSXVPRXd4TlM0NElEZG9MakpqTXk0eklEQWdOaUF5TGpjZ05pQTJkakZoTWlBeUlEQWdNQ0F4TFRJZ01tZ3RNV0V6SURNZ01DQXdJREF0TXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQTRMalUwVmpSaE1pQXlJREFnTVNBd0xUUWdNSFl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzTGpZeE1pQXhNaTQxTWpSaE15QXpJREFnTVNBd0xURXVOaUEwTGpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JhYmJpdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJhYmJpdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxNmEzIDMgMCAwIDEgMi4yNCA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDEyaC4wMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCAyMWgtOGE0IDQgMCAwIDEtNC00IDcgNyAwIDAgMSA3LTdoLjJMOS42IDYuNGExIDEgMCAxIDEgMi44LTIuOEwxNS44IDdoLjJjMy4zIDAgNiAyLjcgNiA2djFhMiAyIDAgMCAxLTIgMmgtMWEzIDMgMCAwIDAtMyAzJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgOC41NFY0YTIgMiAwIDEgMC00IDB2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003LjYxMiAxMi41MjRhMyAzIDAgMSAwLTEuNiA0LjMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmFiYml0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJhZGFyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1Ua3VNRGNnTkM0NU0wRXhNQ0F4TUNBd0lEQWdNQ0EyTGprNUlETXVNelFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTm1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXVNamtnT1M0Mk1rRXhNQ0F4TUNBd0lERWdNQ0F5TVM0ek1TQTRMak0xSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tmk0eU5DQTNMamMyUVRZZ05pQXdJREVnTUNBNExqSXpJREUyTGpZM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhPR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqazVJREV4TGpZMlFUWWdOaUF3SURBZ01TQXhOUzQzTnlBeE5pNDJOeUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNeTQwTVNBeE1DNDFPU0ExTGpZMkxUVXVOallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmFkYXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSYWRhcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOS4wNyA0LjkzQTEwIDEwIDAgMCAwIDYuOTkgMy4zNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDZoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIuMjkgOS42MkExMCAxMCAwIDEgMCAyMS4zMSA4LjM1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2LjI0IDcuNzZBNiA2IDAgMSAwIDguMjMgMTYuNjcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMThoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3Ljk5IDExLjY2QTYgNiAwIDAgMSAxNS43NyAxNi42NycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjQxIDEwLjU5IDUuNjYtNS42NicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSYWRhcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByYWRpYXRpb25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01USm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE5TNDBOalF4WVRRZ05DQXdJREFnTVMwMElEQk1OeTQxTWpjNE5pQXhPUzQzTkRVNU55QkJJREVnTVNBd0lEQWdNQ0EzTGprNU16QXpJREl4TGpFMk1qRXhJREV3SURFd0lEQWdNQ0F3SURFMkxqQXdOamszSURJeExqRTJNakV4SURFZ01TQXdJREFnTUNBeE5pNDBOekl4TkNBeE9TNDNORFU1TjNvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERXlZVFFnTkNBd0lEQWdNQzB5TFRNdU5EWTBiREl1TkRjeUxUUXVNamd5WVRFZ01TQXdJREFnTVNBeExqUTJMUzR6TURVZ01UQWdNVEFnTUNBd0lERWdOQzR3TURZZ05pNDVORUV4SURFZ01DQXdJREVnTWpFZ01USjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV5WVRRZ05DQXdJREFnTVNBeUxUTXVORFkwVERjdU5USTRJRFF1TWpVMFlURWdNU0F3SURBZ01DMHhMalEyTFM0ek1EVWdNVEFnTVRBZ01DQXdJREF0TkM0d01EWWdOaTQ1TkVFeElERWdNQ0F3SURBZ015QXhNbm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmFkaWF0aW9uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmFkaWF0aW9uOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyaC4wMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNCAxNS40NjQxYTQgNCAwIDAgMS00IDBMNy41Mjc4NiAxOS43NDU5NyBBIDEgMSAwIDAgMCA3Ljk5MzAzIDIxLjE2MjExIDEwIDEwIDAgMCAwIDE2LjAwNjk3IDIxLjE2MjExIDEgMSAwIDAgMCAxNi40NzIxNCAxOS43NDU5N3onLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNiAxMmE0IDQgMCAwIDAtMi0zLjQ2NGwyLjQ3Mi00LjI4MmExIDEgMCAwIDEgMS40Ni0uMzA1IDEwIDEwIDAgMCAxIDQuMDA2IDYuOTRBMSAxIDAgMCAxIDIxIDEyeicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTggMTJhNCA0IDAgMCAxIDItMy40NjRMNy41MjggNC4yNTRhMSAxIDAgMCAwLTEuNDYtLjMwNSAxMCAxMCAwIDAgMC00LjAwNiA2Ljk0QTEgMSAwIDAgMCAzIDEyeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJhZGlhdGlvbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByYWRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNbWd6TGpJNFlURWdNU0F3SURBZ01TQXVPVFE0TGpZNE5Hd3lMakk1T0NBM0xqa3pOR0V1TlM0MUlEQWdNQ0F3SUM0NU5pMHVNRFEwVERFekxqZ3lJRFF1TnpjeFFURWdNU0F3SURBZ01TQXhOQzQzT1RJZ05FZ3lNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmFkaWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJhZGljYWw6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMScsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJhZGljYWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmFkaW8tcmVjZWl2ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE5uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F4Tm5ZeUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0k0SWlCNFBTSXlJaUI1UFNJNElpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01USm9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmFkaW8tcmVjZWl2ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSYWRpb1JlY2VpdmVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMTZ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxNnYyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnOCcsIHg6ICcyJywgeTogJzgnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTJoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJhZGlvUmVjZWl2ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmFkaW8tdG93ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkM0NUlERTJMakZETVNBeE1pNHlJREVnTlM0NElEUXVPU0F4TGpraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjdU9DQTBMamRoTmk0eE5DQTJMakUwSURBZ01DQXdMUzQ0SURjdU5TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqa2lJSEk5SWpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMkxqSWdOQzQ0WXpJZ01pQXlMakkySURVdU1URXVPQ0EzTGpRM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TNHhJREV1T1dFNUxqazJJRGt1T1RZZ01DQXdJREVnTUNBeE5DNHhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMalVnTVRob05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9DQXlNaUEwTFRFeElEUWdNVEVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmFkaW8tdG93ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSYWRpb1Rvd2VyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQuOSAxNi4xQzEgMTIuMiAxIDUuOCA0LjkgMS45JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuOCA0LjdhNi4xNCA2LjE0IDAgMCAwLS44IDcuNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc5JywgcjogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuMiA0LjhjMiAyIDIuMjYgNS4xMS44IDcuNDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuMSAxLjlhOS45NiA5Ljk2IDAgMCAxIDAgMTQuMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjUgMThoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDIyIDQtMTEgNCAxMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSYWRpb1Rvd2VyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJhZGlvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVNalEzSURjdU56WXhZVFlnTmlBd0lEQWdNU0F3SURndU5EYzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPUzR3TnpVZ05DNDVNek5oTVRBZ01UQWdNQ0F3SURFZ01DQXhOQzR4TXpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU9USTFJREU1TGpBMk4yRXhNQ0F4TUNBd0lEQWdNU0F3TFRFMExqRXpOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeTQzTlRNZ01UWXVNak01WVRZZ05pQXdJREFnTVNBd0xUZ3VORGM0SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmFkaW9cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSYWRpbzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNi4yNDcgNy43NjFhNiA2IDAgMCAxIDAgOC40NzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuMDc1IDQuOTMzYTEwIDEwIDAgMCAxIDAgMTQuMTM0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuOTI1IDE5LjA2N2ExMCAxMCAwIDAgMSAwLTE0LjEzNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003Ljc1MyAxNi4yMzlhNiA2IDAgMCAxIDAtOC40NzgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSYWRpbztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByYWRpdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU16UWdNVGN1TlRKaE1UQWdNVEFnTUNBeElEQXRNaTQ0TWlBeUxqZ3lJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU1SWlCamVUMGlNVGtpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXpMalF4SURFekxqUXhJRFF1TVRnZ05DNHhPQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yYWRpdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSYWRpdXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuMzQgMTcuNTJhMTAgMTAgMCAxIDAtMi44MiAyLjgyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTknLCBjeTogJzE5JywgcjogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuNDEgMTMuNDEgNC4xOCA0LjE4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmFkaXVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJhaWwtc3ltYm9sXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhOV2d4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBNWFERTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOQ0F5TUMwMUxUVWdOaTAyTFRVdE5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yYWlsLXN5bWJvbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqIEBkZXByZWNhdGVkIEJyYW5kIGljb25zIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCBhcmUgZHVlIHRvIGJlIHJlbW92ZWQsIHBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vbHVjaWRlLWljb25zL2x1Y2lkZS9pc3N1ZXMvNjcwLiBXZSByZWNvbW1lbmQgdXNpbmcgaHR0cHM6Ly9zaW1wbGVpY29ucy5vcmcvP3E9cmFpbC1zeW1ib2wgaW5zdGVhZC4gVGhpcyBpY29uIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wXG4gKi9cbmNvbnN0IFJhaWxTeW1ib2w6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxNWgxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDloMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMjAtNS01IDYtNi01LTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmFpbFN5bWJvbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByYWluYm93XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVGRoTVRBZ01UQWdNQ0F3SURBdE1qQWdNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4TjJFMklEWWdNQ0F3SURFZ01USWdNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRkaE1pQXlJREFnTUNBeElEUWdNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmFpbmJvd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJhaW5ib3c6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTdhMTAgMTAgMCAwIDAtMjAgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE3YTYgNiAwIDAgMSAxMiAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE3YTIgMiAwIDAgMSA0IDAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmFpbmJvdztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByYXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ01qSklOR0V5SURJZ01DQXdJREVnTUMwMGFERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeTR5TXpZZ01UaGhNeUF6SURBZ01DQXdMVEl1TWkwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQTVhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZdU9ESWdNeTQ1TkdFeklETWdNQ0F4SURFZ015NHlNemNnTkM0NE5qaHNNUzQ0TVRVZ01pNDFPRGRoTVM0MUlERXVOU0F3SURBZ01TMHhMalVnTWk0eGJDMHlMamczTWkwdU5EVXpZVE1nTXlBd0lEQWdNQzB6TGpVZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dOQzQ1T0RoaE15QXpJREFnTVNBd0xUVXVNaUF5TGpBMU1rRTNJRGNnTUNBd0lEQWdOQ0F4TkM0d01UVWdOQ0EwSURBZ01DQXdJRGdnTVRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JhdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJhdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyAyMkg0YTIgMiAwIDAgMSAwLTRoMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMuMjM2IDE4YTMgMyAwIDAgMC0yLjItNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA5aC4wMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNi44MiAzLjk0YTMgMyAwIDEgMSAzLjIzNyA0Ljg2OGwxLjgxNSAyLjU4N2ExLjUgMS41IDAgMCAxLTEuNSAyLjFsLTIuODcyLS40NTNhMyAzIDAgMCAwLTMuNSAzJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNC45ODhhMyAzIDAgMSAwLTUuMiAyLjA1MkE3IDcgMCAwIDAgNCAxNC4wMTUgNCA0IDAgMCAwIDggMTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmF0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJhdGlvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVElpSUdobGFXZG9kRDBpTWpBaUlIZzlJallpSUhrOUlqSWlJSEo0UFNJeUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0l4TWlJZ2VEMGlNaUlnZVQwaU5pSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JhdGlvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmF0aW86IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTInLCBoZWlnaHQ6ICcyMCcsIHg6ICc2JywgeTogJzInLCByeDogJzInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxMicsIHg6ICcyJywgeTogJzYnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmF0aW87XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmVjZWlwdC1jZW50XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlkakl3YkRJdE1TQXlJREVnTWkweElESWdNU0F5TFRFZ01pQXhJREl0TVNBeUlERldNbXd0TWlBeExUSXRNUzB5SURFdE1pMHhMVElnTVMweUxURXRNaUF4V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05pNDFkakV4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBNUxqUmhOQ0EwSURBZ01TQXdJREFnTlM0eUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlY2VpcHQtY2VudFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJlY2VpcHRDZW50OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNi41djExJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDkuNGE0IDQgMCAxIDAgMCA1LjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmVjZWlwdENlbnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmVjZWlwdC1ldXJvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlkakl3YkRJdE1TQXlJREVnTWkweElESWdNU0F5TFRFZ01pQXhJREl0TVNBeUlERldNbXd0TWlBeExUSXRNUzB5SURFdE1pMHhMVElnTVMweUxURXRNaUF4V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1tZzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUE1TGpWaE5DQTBJREFnTVNBd0lEQWdOUzR5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVjZWlwdC1ldXJvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmVjZWlwdEV1cm86IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOS41YTQgNCAwIDEgMCAwIDUuMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZWNlaXB0RXVybztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZWNlaXB0LWluZGlhbi1ydXBlZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5ZGpJd2JESXRNU0F5SURFZ01pMHhJRElnTVNBeUxURWdNaUF4SURJdE1TQXlJREZXTW13dE1pQXhMVEl0TVMweUlERXRNaTB4TFRJZ01TMHlMVEV0TWlBeFdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQTNhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFM0xqVWdPQ0F4TldneFlUUWdOQ0F3SURBZ01DQXdMVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRGb09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWNlaXB0LWluZGlhbi1ydXBlZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJlY2VpcHRJbmRpYW5SdXBlZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggN2g4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3LjUgOCAxNWgxYTQgNCAwIDAgMCAwLTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMWg4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlY2VpcHRJbmRpYW5SdXBlZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZWNlaXB0LWphcGFuZXNlLXllblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5ZGpJd2JESXRNU0F5SURFZ01pMHhJRElnTVNBeUxURWdNaUF4SURJdE1TQXlJREZXTW13dE1pQXhMVEl0TVMweUlERXRNaTB4TFRJZ01TMHlMVEV0TWlBeFdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USWdNVEFnTXkweklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlEY2dNeUF6ZGpjdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhNV2cySWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFMWFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWNlaXB0LWphcGFuZXNlLXllblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJlY2VpcHRKYXBhbmVzZVllbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDEwIDMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDcgMyAzdjcuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDExaDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNWg2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlY2VpcHRKYXBhbmVzZVllbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZWNlaXB0LXBvdW5kLXN0ZXJsaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlkakl3YkRJdE1TQXlJREVnTWkweElESWdNU0F5TFRFZ01pQXhJREl0TVNBeUlERldNbXd0TWlBeExUSXRNUzB5SURFdE1pMHhMVElnTVMweUxURXRNaUF4V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE0yZzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4TjFZNUxqVmhNaTQxSURJdU5TQXdJREFnTVNBMUlEQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNVGRvTnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlY2VpcHQtcG91bmQtc3RlcmxpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZWNlaXB0UG91bmRTdGVybGluZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTNoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxN1Y5LjVhMi41IDIuNSAwIDAgMSA1IDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxN2g3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlY2VpcHRQb3VuZFN0ZXJsaW5nO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJlY2VpcHQtcnVzc2lhbi1ydWJsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F5ZGpJd2JESXRNU0F5SURFZ01pMHhJRElnTVNBeUxURWdNaUF4SURJdE1TQXlJREZXTW13dE1pQXhMVEl0TVMweUlERXRNaTB4TFRJZ01TMHlMVEV0TWlBeFdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhOV2cxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeGFEVmhNaUF5SURBZ01TQXdJREF0TkdndE0zWXhNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVjZWlwdC1ydXNzaWFuLXJ1YmxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmVjZWlwdFJ1c3NpYW5SdWJsZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTVoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDExaDVhMiAyIDAgMSAwIDAtNGgtM3YxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZWNlaXB0UnVzc2lhblJ1YmxlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJlY2VpcHQtc3dpc3MtZnJhbmNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeWRqSXdiREl0TVNBeUlERWdNaTB4SURJZ01TQXlMVEVnTWlBeElESXRNU0F5SURGV01td3RNaUF4TFRJdE1TMHlJREV0TWkweExUSWdNUzB5TFRFdE1pQXhXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRkV04yZzFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4TVdnMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTFhRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVjZWlwdC1zd2lzcy1mcmFuY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJlY2VpcHRTd2lzc0ZyYW5jOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTdWN2g1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDExaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNWg1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlY2VpcHRTd2lzc0ZyYW5jO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJlY2VpcHQtdGV4dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVRaSU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdPRWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE1rZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJRE5oTVNBeElEQWdNQ0F4SURFdE1TQXhMak1nTVM0eklEQWdNQ0F4SUM0M0xqSnNMamt6TXk0MllURXVNeUF4TGpNZ01DQXdJREFnTVM0MElEQnNMamt6TkMwdU5tRXhMak1nTVM0eklEQWdNQ0F4SURFdU5DQXdiQzQ1TXpNdU5tRXhMak1nTVM0eklEQWdNQ0F3SURFdU5DQXdiQzQ1TXpNdExqWmhNUzR6SURFdU15QXdJREFnTVNBeExqUWdNR3d1T1RNMExqWmhNUzR6SURFdU15QXdJREFnTUNBeExqUWdNR3d1T1RNekxTNDJRVEV1TXlBeExqTWdNQ0F3SURFZ01Ua2dNbUV4SURFZ01DQXdJREVnTVNBeGRqRTRZVEVnTVNBd0lEQWdNUzB4SURFZ01TNHpJREV1TXlBd0lEQWdNUzB1TnkwdU1td3RMamt6TXkwdU5tRXhMak1nTVM0eklEQWdNQ0F3TFRFdU5DQXdiQzB1T1RNMExqWmhNUzR6SURFdU15QXdJREFnTVMweExqUWdNR3d0TGprek15MHVObUV4TGpNZ01TNHpJREFnTUNBd0xURXVOQ0F3YkMwdU9UTXpMalpoTVM0eklERXVNeUF3SURBZ01TMHhMalFnTUd3dExqa3pOQzB1Tm1FeExqTWdNUzR6SURBZ01DQXdMVEV1TkNBd2JDMHVPVE16TGpaaE1TNHpJREV1TXlBd0lEQWdNUzB1Tnk0eUlERWdNU0F3SURBZ01TMHhMVEY2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVjZWlwdC10ZXh0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmVjZWlwdFRleHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTZIOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA4SDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJIOCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmVjZWlwdFRleHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmVjZWlwdC10dXJraXNoLWxpcmFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ05pNDFkakV4WVRVdU5TQTFMalVnTUNBd0lEQWdOUzQxTFRVdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUWdPQzAySURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01uWXlNR3d5TFRFZ01pQXhJREl0TVNBeUlERWdNaTB4SURJZ01TQXlMVEVnTWlBeFZqSnNMVElnTVMweUxURXRNaUF4TFRJdE1TMHlJREV0TWkweExUSWdNWG9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVjZWlwdC10dXJraXNoLWxpcmFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZWNlaXB0VHVya2lzaExpcmE6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgNi41djExYTUuNSA1LjUgMCAwIDAgNS41LTUuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCA4LTYgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDF6JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlY2VpcHRUdXJraXNoTGlyYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZWNlaXB0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXlkakl3YkRJdE1TQXlJREVnTWkweElESWdNU0F5TFRFZ01pQXhJREl0TVNBeUlERldNbXd0TWlBeExUSXRNUzB5SURFdE1pMHhMVElnTVMweUxURXRNaUF4V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ09HZ3RObUV5SURJZ01DQXhJREFnTUNBMGFEUmhNaUF5SURBZ01TQXhJREFnTkVnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOeTQxZGkweE1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWNlaXB0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmVjZWlwdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ000IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNy41di0xMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZWNlaXB0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJlY3RhbmdsZS1jaXJjbGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ05IWXhOa2d6WVRFZ01TQXdJREFnTVMweExURldOV0V4SURFZ01DQXdJREVnTVMweGVpSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhOQ0lnWTNrOUlqRXlJaUJ5UFNJNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlY3RhbmdsZS1jaXJjbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZWN0YW5nbGVDaXJjbGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNHYxNkgzYTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xeicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE0JywgY3k6ICcxMicsIHI6ICc4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlY3RhbmdsZUNpcmNsZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZWN0YW5nbGUtZWxsaXBzaXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVElpSUhnOUlqSWlJSGs5SWpZaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE1tZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSURFeWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TW1ndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWN0YW5nbGUtZWxsaXBzaXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZWN0YW5nbGVFbGxpcHNpczogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzEyJywgeDogJzInLCB5OiAnNicsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTJoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTJoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlY3RhbmdsZUVsbGlwc2lzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJlY3RhbmdsZS1nb2dnbGVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdObUV5SURJZ01DQXdJREVnTWlBeWRqaGhNaUF5SURBZ01DQXhMVElnTW1ndE5HRXlJRElnTUNBd0lERXRNUzQyTFM0NGJDMHhMall0TWk0eE0yRXhJREVnTUNBd0lEQXRNUzQySURCTU9TNDJJREUzTGpKQk1pQXlJREFnTUNBeElEZ2dNVGhJTkdFeUlESWdNQ0F3SURFdE1pMHlWamhoTWlBeUlEQWdNQ0F4SURJdE1ub2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWN0YW5nbGUtZ29nZ2xlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJlY3RhbmdsZUdvZ2dsZXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMS42LS44bC0xLjYtMi4xM2ExIDEgMCAwIDAtMS42IDBMOS42IDE3LjJBMiAyIDAgMCAxIDggMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMnonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZWN0YW5nbGVHb2dnbGVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJlY3RhbmdsZS1ob3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRJaUlIZzlJaklpSUhrOUlqWWlJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlY3RhbmdsZS1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmVjdGFuZ2xlSG9yaXpvbnRhbDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzEyJywgeDogJzInLCB5OiAnNicsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZWN0YW5nbGVIb3Jpem9udGFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJlY3RhbmdsZS12ZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRJaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpZaUlIazlJaklpSUhKNFBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWN0YW5nbGUtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZWN0YW5nbGVWZXJ0aWNhbDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxMicsIGhlaWdodDogJzIwJywgeDogJzYnLCB5OiAnMicsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZWN0YW5nbGVWZXJ0aWNhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZWN5Y2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXhPVWcwTGpneE5XRXhMamd6SURFdU9ETWdNQ0F3SURFdE1TNDFOeTB1T0RneElERXVOemcxSURFdU56ZzFJREFnTUNBeExTNHdNRFF0TVM0M09EUk1OeTR4T1RZZ09TNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNU0F4T1dnNExqSXdNMkV4TGpneklERXVPRE1nTUNBd0lEQWdNUzQxTlRZdExqZzVJREV1TnpnMElERXVOemcwSURBZ01DQXdJREF0TVM0M056VnNMVEV1TWpJMkxUSXVNVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwSURFMkxUTWdNeUF6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRndU1qa3pJREV6TGpVNU5pQTNMakU1TmlBNUxqVWdNeTR4SURFd0xqVTVPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzR6TkRRZ05TNDRNVEVnTVM0d09UTXRNUzQ0T1RKQk1TNDRNeUF4TGpneklEQWdNQ0F4SURFeExqazROU0F6WVRFdU56ZzBJREV1TnpnMElEQWdNQ0F4SURFdU5UUTJMamc0T0d3ekxqazBNeUEyTGpnME15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UTXVNemM0SURrdU5qTXpJRFF1TURrMklERXVNRGs0SURFdU1EazNMVFF1TURrMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlY3ljbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZWN5Y2xlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMTlINC44MTVhMS44MyAxLjgzIDAgMCAxLTEuNTctLjg4MSAxLjc4NSAxLjc4NSAwIDAgMS0uMDA0LTEuNzg0TDcuMTk2IDkuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxOWg4LjIwM2ExLjgzIDEuODMgMCAwIDAgMS41NTYtLjg5IDEuNzg0IDEuNzg0IDAgMCAwIDAtMS43NzVsLTEuMjI2LTIuMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTYtMyAzIDMgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjI5MyAxMy41OTYgNy4xOTYgOS41IDMuMSAxMC41OTgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtOS4zNDQgNS44MTEgMS4wOTMtMS44OTJBMS44MyAxLjgzIDAgMCAxIDExLjk4NSAzYTEuNzg0IDEuNzg0IDAgMCAxIDEuNTQ2Ljg4OGwzLjk0MyA2Ljg0MycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjM3OCA5LjYzMyA0LjA5NiAxLjA5OCAxLjA5Ny00LjA5NicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZWN5Y2xlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJlZG8tMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRRZ05TMDFMVFV0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ09VZzVMalZCTlM0MUlEVXVOU0F3SURBZ01DQTBJREUwTGpWQk5TNDFJRFV1TlNBd0lEQWdNQ0E1TGpVZ01qQklNVE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVkby0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmVkbzI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTQgNS01LTUtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA5SDkuNUE1LjUgNS41IDAgMCAwIDQgMTQuNUE1LjUgNS41IDAgMCAwIDkuNSAyMEgxMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZWRvMjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZWRvLWRvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakUzSWlCeVBTSXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0EzZGpab0xUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVGRoT1NBNUlEQWdNQ0F4SURrdE9TQTVJRGtnTUNBd0lERWdOaUF5TGpOc015QXlMamNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVkby1kb3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZWRvRG90OiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE3JywgcjogJzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgN3Y2aC02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmVkb0RvdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZWRvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdOM1kyYUMwMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTNZVGtnT1NBd0lEQWdNU0E1TFRrZ09TQTVJREFnTUNBeElEWWdNaTR6YkRNZ01pNDNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWRvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmVkbzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSA3djZoLTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxN2E5IDkgMCAwIDEgOS05IDkgOSAwIDAgMSA2IDIuM2wzIDIuNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZWRvO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJlZnJlc2gtY2N3LWRvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKaE9TQTVJREFnTUNBd0xUa3RPU0E1TGpjMUlEa3VOelVnTUNBd0lEQXROaTQzTkNBeUxqYzBURE1nT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqVm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1FNUlEa2dNQ0F3SURBZ09TQTVJRGt1TnpVZ09TNDNOU0F3SURBZ01DQTJMamMwTFRJdU56Uk1NakVnTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTJhRFYyTlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVmcmVzaC1jY3ctZG90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmVmcmVzaENjd0RvdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3Y1aDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmE5IDkgMCAwIDAgOSA5IDkuNzUgOS43NSAwIDAgMCA2Ljc0LTIuNzRMMjEgMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZoNXY1JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmVmcmVzaENjd0RvdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZWZyZXNoLWNjd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKaE9TQTVJREFnTUNBd0xUa3RPU0E1TGpjMUlEa3VOelVnTUNBd0lEQXROaTQzTkNBeUxqYzBURE1nT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBemRqVm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1FNUlEa2dNQ0F3SURBZ09TQTVJRGt1TnpVZ09TNDNOU0F3SURBZ01DQTJMamMwTFRJdU56Uk1NakVnTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTJhRFYyTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlZnJlc2gtY2N3XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmVmcmVzaENjdzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3Y1aDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmE5IDkgMCAwIDAgOSA5IDkuNzUgOS43NSAwIDAgMCA2Ljc0LTIuNzRMMjEgMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZoNXY1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlZnJlc2hDY3c7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmVmcmVzaC1jdy1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ09Fd3hPQzQzTkNBMUxqYzBRVGt1TnpVZ09TNDNOU0F3SURBZ01DQXhNaUF6UXpFeElETWdNVEF1TURNZ015NHhOaUE1TGpFeklETXVORGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRaSU0zWTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV5UXpNZ09TNDFNU0EwSURjdU1qWWdOUzQyTkNBMUxqWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHpJREUySURJdU1qWWdNaTR5TmtFNUxqYzFJRGt1TnpVZ01DQXdJREFnTVRJZ01qRmpNaTQwT1NBd0lEUXVOelF0TVNBMkxqTTJMVEl1TmpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERXlZekFnTVMwdU1UWWdNUzQ1TnkwdU5EY2dNaTQ0TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ00zWTFhQzAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeU1pQXlJRElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVmcmVzaC1jdy1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZWZyZXNoQ3dPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgOEwxOC43NCA1Ljc0QTkuNzUgOS43NSAwIDAgMCAxMiAzQzExIDMgMTAuMDMgMy4xNiA5LjEzIDMuNDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNkgzdjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMkMzIDkuNTEgNCA3LjI2IDUuNjQgNS42NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDE2IDIuMjYgMi4yNkE5Ljc1IDkuNzUgMCAwIDAgMTIgMjFjMi40OSAwIDQuNzQtMSA2LjM2LTIuNjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJjMCAxLS4xNiAxLjk3LS40NyAyLjg3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDN2NWgtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMiAyIDInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmVmcmVzaEN3T2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJlZnJlc2gtY3dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1tRTVJRGtnTUNBd0lERWdPUzA1SURrdU56VWdPUzQzTlNBd0lEQWdNU0EyTGpjMElESXVOelJNTWpFZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNM1kxYUMwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhNbUU1SURrZ01DQXdJREV0T1NBNUlEa3VOelVnT1M0M05TQXdJREFnTVMwMkxqYzBMVEl1TnpSTU15QXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TmtnemRqVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWZyZXNoLWN3XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmVmcmVzaEN3OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJhOSA5IDAgMCAxIDktOSA5Ljc1IDkuNzUgMCAwIDEgNi43NCAyLjc0TDIxIDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgM3Y1aC01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTZIM3Y1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlZnJlc2hDdztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZWZyaWdlcmF0b3JcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBMllUUWdOQ0F3SURBZ01TQTBMVFJvTm1FMElEUWdNQ0F3SURFZ05DQTBkakUwWVRJZ01pQXdJREFnTVMweUlESklOMkV5SURJZ01DQXdJREV0TWkweVZqWmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJREV3YURFMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQTNkallpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVmcmlnZXJhdG9yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUmVmcmlnZXJhdG9yOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgNmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDQgNHYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2WicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDEwaDE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDd2NicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZWZyaWdlcmF0b3I7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmVnZXhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ00zWXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVEl1TmpjZ05TNDFJRGd1TmpZZ05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USXVOamNnTVRBdU5TQTRMalkyTFRVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UZGhNaUF5SURBZ01DQXdMVEl0TWtnMVlUSWdNaUF3SURBZ01DMHlJREoyTW1FeUlESWdNQ0F3SURBZ01pQXlhREpoTWlBeUlEQWdNQ0F3SURJdE1uWXRNbm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVnZXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZWdleDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzdjEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyLjY3IDUuNSA4LjY2IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIuNjcgMTAuNSA4LjY2LTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxN2EyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi0yeicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZWdleDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZW1vdmUtZm9ybWF0dGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0EzVmpSb01UWjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F5TUdnMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QTBJRGdnTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlERTFJRFVnTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpBZ01UVXROU0ExSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVtb3ZlLWZvcm1hdHRpbmdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZW1vdmVGb3JtYXR0aW5nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgN1Y0aDE2djMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMGg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDQgOCAyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxNSA1IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMTUtNSA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlbW92ZUZvcm1hdHRpbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmVwZWF0LTFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRjZ01pQTBJRFF0TkNBMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERXhkaTB4WVRRZ05DQXdJREFnTVNBMExUUm9NVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGNnTWpJdE5DMDBJRFF0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UTjJNV0UwSURRZ01DQXdJREV0TkNBMFNETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXhJREV3YURGMk5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZXBlYXQtMVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJlcGVhdDE6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMiA0IDQtNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDIyLTQtNCA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTN2MWE0IDQgMCAwIDEtNCA0SDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTBoMXY0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlcGVhdDE7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmVwZWF0LTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWlBNUlETXRNeUF6SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeklERTRTRGRoTWlBeUlEQWdNQ0F4TFRJdE1sWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUF4TlMweklETXRNeTB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBMmFEWmhNaUF5SURBZ01DQXhJRElnTW5ZeE1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZXBlYXQtMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJlcGVhdDI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMiA5IDMtMyAzIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMThIN2EyIDIgMCAwIDEtMi0yVjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTUtMyAzLTMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSA2aDZhMiAyIDAgMCAxIDIgMnYxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZXBlYXQyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJlcGVhdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGNnTWlBMElEUXROQ0EwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFeGRpMHhZVFFnTkNBd0lEQWdNU0EwTFRSb01UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY2dNakl0TkMwMElEUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVROMk1XRTBJRFFnTUNBd0lERXROQ0EwU0RNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlcGVhdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJlcGVhdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNyAyIDQgNC00IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMXYtMWE0IDQgMCAwIDEgNC00aDE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMjItNC00IDQtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxM3YxYTQgNCAwIDAgMS00IDRIMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSZXBlYXQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmVwbGFjZS1hbGxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UUmhNU0F4SURBZ01DQXhJREVnTVhZMVlURWdNU0F3SURBZ01TMHhJREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURSaE1TQXhJREFnTUNBeElERXRNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTVRCaE1TQXhJREFnTUNBeExURXRNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVRSaE1TQXhJREFnTUNBeElERWdNWFkxWVRFZ01TQXdJREFnTVMweElERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJRFJoTVNBeElEQWdNQ0F3TFRFdE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdPV0V4SURFZ01DQXdJREV0TVNBeElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weklEY2dNeUF6SURNdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhNRlkxWVRJZ01pQXdJREFnTVNBeUxUSm9NaUlnTHo0S0lDQThjbVZqZENCNFBTSXpJaUI1UFNJeE5DSWdkMmxrZEdnOUlqY2lJR2hsYVdkb2REMGlOeUlnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZXBsYWNlLWFsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJlcGxhY2VBbGw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNGExIDEgMCAwIDEgMS0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEwYTEgMSAwIDAgMS0xLTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNGExIDEgMCAwIDAtMS0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDlhMSAxIDAgMCAxLTEgMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDcgMyAzIDMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEwVjVhMiAyIDAgMCAxIDItMmgyJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMycsIHk6ICcxNCcsIHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmVwbGFjZUFsbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByZXBsYWNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdOR0V4SURFZ01DQXdJREVnTVMweElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhNR0V4SURFZ01DQXdJREV0TVMweElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTBZVEVnTVNBd0lEQWdNQzB4TFRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElEbGhNU0F4SURBZ01DQXhMVEVnTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TXlBM0lETWdNeUF6TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UQldOV0V5SURJZ01DQXdJREVnTWkweWFESWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU15SWdlVDBpTVRRaUlIZHBaSFJvUFNJM0lpQm9aV2xuYUhROUlqY2lJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlcGxhY2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZXBsYWNlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDRhMSAxIDAgMCAxIDEtMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxMGExIDEgMCAwIDEtMS0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDRhMSAxIDAgMCAwLTEtMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA5YTEgMSAwIDAgMS0xIDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyA3IDMgMyAzLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnMTQnLCB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3Jywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlcGxhY2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmVwbHktYWxsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1USWdNVGN0TlMwMUlEVXROU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRoMkxUSmhOQ0EwSURBZ01DQXdMVFF0TkVnM0lpQXZQZ29nSUR4d1lYUm9JR1E5SW0wM0lERTNMVFV0TlNBMUxUVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZXBseS1hbGxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZXBseUFsbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxNy01LTUgNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDE4di0yYTQgNCAwIDAgMC00LTRINycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203IDE3LTUtNSA1LTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmVwbHlBbGw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcmVwbHlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UaDJMVEpoTkNBMElEQWdNQ0F3TFRRdE5FZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREUzTFRVdE5TQTFMVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVwbHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSZXBseTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxOHYtMmE0IDQgMCAwIDAtNC00SDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxNy01LTUgNS01JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJlcGx5O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJld2luZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTm1FeUlESWdNQ0F3SURBdE15NDBNVFF0TVM0ME1UUnNMVFlnTm1FeUlESWdNQ0F3SURBZ01DQXlMamd5T0d3MklEWkJNaUF5SURBZ01DQXdJREV5SURFNGVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdObUV5SURJZ01DQXdJREF0TXk0ME1UUXRNUzQwTVRSc0xUWWdObUV5SURJZ01DQXdJREFnTUNBeUxqZ3lPR3cySURaQk1pQXlJREFnTUNBd0lESXlJREU0ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Jld2luZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJld2luZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2YTIgMiAwIDAgMC0zLjQxNC0xLjQxNGwtNiA2YTIgMiAwIDAgMCAwIDIuODI4bDYgNkEyIDIgMCAwIDAgMTIgMTh6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDZhMiAyIDAgMCAwLTMuNDE0LTEuNDE0bC02IDZhMiAyIDAgMCAwIDAgMi44MjhsNiA2QTIgMiAwIDAgMCAyMiAxOHonIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmV3aW5kO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJpYmJvblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRFdU1qSkRNVEVnT1M0NU9UY2dNVEFnT1NBeE1DQTRZVElnTWlBd0lEQWdNU0EwSURCak1DQXhMUzQ1T1RnZ01pNHdNREl0TWk0d01TQXpMakl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TWlBeE9DQXlMalUzTFRNdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNHlORE1nT1M0d01UWmhOeUEzSURBZ01DQXhJREV4TGpVd055MHVNREE1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1TGpNMUlERTBMalV6SURFeUlERXhMakl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1TGpNMUlERTBMalV6UXpjdU56STRJREV5TGpJME5pQTJJREV3TGpJeU1TQTJJRGRoTmlBMUlEQWdNQ0F4SURFeUlEQmpMUzR3TURVZ015NHlNaTB4TGpjM09DQTFMakl6TlMwekxqUXpJRGN1Tld3ekxqVTFOeUEwTGpVeU4yRXhJREVnTUNBd0lERXRMakl3TXlBeExqUXpiQzB4TGpnNU5DQXhMak0yWVRFZ01TQXdJREFnTVMweExqTTROQzB1TWpFMVRERXlJREU0YkMweUxqWTNPU0F6TGpVNU0yRXhJREVnTUNBd0lERXRNUzR6T1M0eU1UTnNMVEV1T0RZMUxURXVNelV6WVRFZ01TQXdJREFnTVMwdU1qQXpMVEV1TkRJeWVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yaWJib25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSaWJib246IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTEuMjJDMTEgOS45OTcgMTAgOSAxMCA4YTIgMiAwIDAgMSA0IDBjMCAxLS45OTggMi4wMDItMi4wMSAzLjIyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEyIDE4IDIuNTctMy41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMjQzIDkuMDE2YTcgNyAwIDAgMSAxMS41MDctLjAwOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjM1IDE0LjUzIDEyIDExLjIyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkuMzUgMTQuNTNDNy43MjggMTIuMjQ2IDYgMTAuMjIxIDYgN2E2IDUgMCAwIDEgMTIgMGMtLjAwNSAzLjIyLTEuNzc4IDUuMjM1LTMuNDMgNy41bDMuNTU3IDQuNTI3YTEgMSAwIDAgMS0uMjAzIDEuNDNsLTEuODk0IDEuMzZhMSAxIDAgMCAxLTEuMzg0LS4yMTVMMTIgMThsLTIuNjc5IDMuNTkzYTEgMSAwIDAgMS0xLjM5LjIxM2wtMS44NjUtMS4zNTNhMSAxIDAgMCAxLS4yMDMtMS40MjJ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUmliYm9uO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJvY2tldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQzQxSURFMkxqVmpMVEV1TlNBeExqSTJMVElnTlMweUlEVnpNeTQzTkMwdU5TQTFMVEpqTGpjeExTNDROQzQzTFRJdU1UTXRMakE1TFRJdU9URmhNaTR4T0NBeUxqRTRJREFnTUNBd0xUSXVPVEV0TGpBNWVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1USWdNVFV0TXkwellUSXlJREl5SURBZ01DQXhJREl0TXk0NU5VRXhNaTQ0T0NBeE1pNDRPQ0F3SURBZ01TQXlNaUF5WXpBZ01pNDNNaTB1TnpnZ055NDFMVFlnTVRGaE1qSXVNelVnTWpJdU16VWdNQ0F3SURFdE5DQXllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TWtnMGN5NDFOUzB6TGpBeklESXROR014TGpZeUxURXVNRGdnTlNBd0lEVWdNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRWMk5YTXpMakF6TFM0MU5TQTBMVEpqTVM0d09DMHhMall5SURBdE5TQXdMVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcm9ja2V0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUm9ja2V0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQuNSAxNi41Yy0xLjUgMS4yNi0yIDUtMiA1czMuNzQtLjUgNS0yYy43MS0uODQuNy0yLjEzLS4wOS0yLjkxYTIuMTggMi4xOCAwIDAgMC0yLjkxLS4wOXonLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xMiAxNS0zLTNhMjIgMjIgMCAwIDEgMi0zLjk1QTEyLjg4IDEyLjg4IDAgMCAxIDIyIDJjMCAyLjcyLS43OCA3LjUtNiAxMWEyMi4zNSAyMi4zNSAwIDAgMS00IDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMkg0cy41NS0zLjAzIDItNGMxLjYyLTEuMDggNSAwIDUgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNXY1czMuMDMtLjU1IDQtMmMxLjA4LTEuNjIgMC01IDAtNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSb2NrZXQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcm9ja2luZy1jaGFpclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjRzlzZVd4cGJtVWdjRzlwYm5SelBTSXpMalVnTWlBMkxqVWdNVEl1TlNBeE9DQXhNaTQxSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0k1TGpVaUlIZ3lQU0kxTGpVaUlIa3hQU0l4TWk0MUlpQjVNajBpTWpBaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFMUlpQjRNajBpTVRndU5TSWdlVEU5SWpFeUxqVWlJSGt5UFNJeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pNDNOU0F4T0dFeE15QXhNeUF3SURBZ01DQXhPQzQxSURBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JvY2tpbmctY2hhaXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSb2NraW5nQ2hhaXI6IEljb25Ob2RlID0gW1xuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICczLjUgMiA2LjUgMTIuNSAxOCAxMi41JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzkuNScsIHgyOiAnNS41JywgeTE6ICcxMi41JywgeTI6ICcyMCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNScsIHgyOiAnMTguNScsIHkxOiAnMTIuNScsIHkyOiAnMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMi43NSAxOGExMyAxMyAwIDAgMCAxOC41IDAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUm9ja2luZ0NoYWlyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJvbGxlci1jb2FzdGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhPVlkxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE9WWTJMamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFNWRpMDNMamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURWMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVGwyTFRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlERTVWamtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRsV09XRTBJRFFnTUNBd0lERWdOQzAwWXpJZ01DQTBJREV1TXpNZ05pQTBjelFnTkNBMklEUmhOQ0EwSURBZ01TQXdMVE10Tmk0Mk5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb2xsZXItY29hc3RlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJvbGxlckNvYXN0ZXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOVY1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE5VjYuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxOXYtNy44JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDV2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxOXYtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOVY5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTlWOWE0IDQgMCAwIDEgNC00YzIgMCA0IDEuMzMgNiA0czQgNCA2IDRhNCA0IDAgMSAwLTMtNi42NScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSb2xsZXJDb2FzdGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJvc2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UQm9MVEZoTkNBMElEQWdNU0F4SURRdE5IWXVOVE0wSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBMmFERmhOQ0EwSURBZ01DQXhJREV1TkRJZ055NDNOR3d0TWk0eU9TNDROMkUySURZZ01DQXdJREV0TlM0ek16a3RNVEF1Tmpoc01pNHdOamt0TVM0ek1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DNDFJREUzWXpJdU9DMHVOU0EwTGpRZ01DQTFMalV1T0hNeExqZ2dNaTR5SURJdU15QXpMamRqTFRJZ0xqUXRNeTQxTGpRdE5DNDRMUzR6TFRFdU1pMHVOaTB5TGpNdE1TNDVMVE10TkM0eUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUxqYzNJREV5UXpRZ01UVWdNaUF5TWlBeUlESXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUzSWlCamVUMGlPQ0lnY2owaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3NlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUm9zZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxMGgtMWE0IDQgMCAxIDEgNC00di41MzQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgNmgxYTQgNCAwIDAgMSAxLjQyIDcuNzRsLTIuMjkuODdhNiA2IDAgMCAxLTUuMzM5LTEwLjY4bDIuMDY5LTEuMzEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ000LjUgMTdjMi44LS41IDQuNCAwIDUuNS44czEuOCAyLjIgMi4zIDMuN2MtMiAuNC0zLjUuNC00LjgtLjMtMS4yLS42LTIuMy0xLjktMy00LjInIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005Ljc3IDEyQzQgMTUgMiAyMiAyIDIyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcnLCBjeTogJzgnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSb3NlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJvdGF0ZS0zZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFl1TkRZMklEY3VOVU14TlM0Mk5ETWdOQzR5TXpjZ01UTXVPVFV5SURJZ01USWdNaUE1TGpJek9TQXlJRGNnTmk0ME56Y2dOeUF4TW5NeUxqSXpPU0F4TUNBMUlERXdZeTR6TkRJZ01DQXVOamMzTFM0d05qa2dNUzB1TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVdU1UazBJREV6TGpjd055QXpMamd4TkNBeExqZzJMVEV1T0RZZ015NDRNVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURFMUxqVTNZeTB4TGpnd05DNDRPRFV0TkM0eU56UWdNUzQwTXkwM0lERXVORE10TlM0MU1qTWdNQzB4TUMweUxqSXpPUzB4TUMwMWN6UXVORGMzTFRVZ01UQXROV00wTGpnek9DQXdJRGd1T0RjeklERXVOekU0SURrdU9DQTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3RhdGUtM2RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSb3RhdGUzZDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNi40NjYgNy41QzE1LjY0MyA0LjIzNyAxMy45NTIgMiAxMiAyIDkuMjM5IDIgNyA2LjQ3NyA3IDEyczIuMjM5IDEwIDUgMTBjLjM0MiAwIC42NzctLjA2OSAxLS4yJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUuMTk0IDEzLjcwNyAzLjgxNCAxLjg2LTEuODYgMy44MTQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkgMTUuNTdjLTEuODA0Ljg4NS00LjI3NCAxLjQzLTcgMS40My01LjUyMyAwLTEwLTIuMjM5LTEwLTVzNC40NzctNSAxMC01YzQuODM4IDAgOC44NzMgMS43MTggOS44IDQnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSb3RhdGUzZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByb3RhdGUtY2N3LWtleVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFF1TlNBNUxqVWdNU0F4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TlM0MUlEZ3VOUzAwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01USmhPU0E1SURBZ01TQXdJRGt0T1NBNUxqYzBJRGt1TnpRZ01DQXdJREF0Tmk0M05DQXlMamMwVERNZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXpkalZvTlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1DSWdZM2s5SWpFMElpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcm90YXRlLWNjdy1rZXlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSb3RhdGVDY3dLZXk6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSA5LjUgMSAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1LjUgOC41LTQgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyYTkgOSAwIDEgMCA5LTkgOS43NCA5Ljc0IDAgMCAwLTYuNzQgMi43NEwzIDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAzdjVoNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICcxNCcsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJvdGF0ZUNjd0tleTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByb3RhdGUtY2N3LXNxdWFyZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnT1ZZM1lUSWdNaUF3SURBZ01DMHlMVEpvTFRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlESXRNeUF6SURNZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVE4yTldFeUlESWdNQ0F3SURFdE1pQXlTRFpoTWlBeUlEQWdNQ0F4TFRJdE1sWTNZVElnTWlBd0lEQWdNU0F5TFRKb01pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3RhdGUtY2N3LXNxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJvdGF0ZUNjd1NxdWFyZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMCA5VjdhMiAyIDAgMCAwLTItMmgtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAyLTMgMyAzIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTN2NWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSb3RhdGVDY3dTcXVhcmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcm90YXRlLWNjd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1FNUlEa2dNQ0F4SURBZ09TMDVJRGt1TnpVZ09TNDNOU0F3SURBZ01DMDJMamMwSURJdU56Uk1NeUE0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SUROMk5XZzFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3RhdGUtY2N3XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUm90YXRlQ2N3OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDN2NWg1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJvdGF0ZUNjdztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByb3RhdGUtY3ctc3F1YXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOVWcyWVRJZ01pQXdJREFnTUMweUlESjJNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPU0E0SURNdE15MHpMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTVRSMk5HRXlJRElnTUNBd0lEQWdNaUF5YURFeVlUSWdNaUF3SURBZ01DQXlMVEpXTjJFeUlESWdNQ0F3SURBdE1pMHlhQzB5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcm90YXRlLWN3LXNxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJvdGF0ZUN3U3F1YXJlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDVINmEyIDIgMCAwIDAtMiAydjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSA4IDMtMy0zLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNHY0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUm90YXRlQ3dTcXVhcmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcm90YXRlLWN3XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVEpoT1NBNUlEQWdNU0F4TFRrdE9XTXlMalV5SURBZ05DNDVNeUF4SURZdU56UWdNaTQzTkV3eU1TQTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F6ZGpWb0xUVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3RhdGUtY3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSb3RhdGVDdzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMmE5IDkgMCAxIDEtOS05YzIuNTIgMCA0LjkzIDEgNi43NCAyLjc0TDIxIDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgM3Y1aC01JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJvdGF0ZUN3O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJvdXRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTJJaUJqZVQwaU1Ua2lJSEk5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UbG9PQzQxWVRNdU5TQXpMalVnTUNBd0lEQWdNQzAzYUMweE1XRXpMalVnTXk0MUlEQWdNQ0F4SURBdE4wZ3hOU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4T0NJZ1kzazlJalVpSUhJOUlqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3V0ZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFJvdXRlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnMTknLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE5aDguNWEzLjUgMy41IDAgMCAwIDAtN2gtMTFhMy41IDMuNSAwIDAgMSAwLTdIMTUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnNScsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJvdXRlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJvdXRlLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0kySWlCamVUMGlNVGtpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNVGxvT0M0MVl5NDBJREFnTGprdExqRWdNUzR6TFM0eUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUxqSWdOUzR5UVRNdU5TQXpMalV6SURBZ01DQXdJRFl1TlNBeE1rZ3hNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TlM0ellUTXVOU0F6TGpVZ01DQXdJREF0TXk0ekxUTXVNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTldndE5DNHpJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU0SWlCamVUMGlOU0lnY2owaU15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3V0ZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSb3V0ZU9mZjogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzE5JywgcjogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxOWg4LjVjLjQgMCAuOS0uMSAxLjMtLjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNS4yIDUuMkEzLjUgMy41MyAwIDAgMCA2LjUgMTJIMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1LjNhMy41IDMuNSAwIDAgMC0zLjMtMy4zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDVoLTQuMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICc1JywgcjogJzMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUm91dGVPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcm91dGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpT0NJZ2VEMGlNaUlnZVQwaU1UUWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMkxqQXhJREU0U0RZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0xqQXhJREU0U0RFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhNSFkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tnk0NE5DQTNMakUzWVRRZ05DQXdJREFnTUMwMUxqWTJJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl3TGpZMklEUXVNelJoT0NBNElEQWdNQ0F3TFRFeExqTXhJREFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcm91dGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUm91dGVyOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnOCcsIHg6ICcyJywgeTogJzE0Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMDEgMThINicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC4wMSAxOEgxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAxMHY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3Ljg0IDcuMTdhNCA0IDAgMCAwLTUuNjYgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC42NiA0LjM0YTggOCAwIDAgMC0xMS4zMSAwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJvdXRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByb3dzLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFeWFERTRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3dzLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSb3dzMjogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyaDE4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJvd3MyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJvd3MtM1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0E1U0RNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERTFTRE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcm93cy0zXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUm93czM6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgOUgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1SDMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUm93czM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcm93cy00XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTNMalZJTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01USklNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRZdU5VZ3pJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yb3dzLTRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSb3dzNDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA3LjVIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMkgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE2LjVIMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSb3dzNDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSByc3NcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1XRTVJRGtnTUNBd0lERWdPU0E1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURSaE1UWWdNVFlnTUNBd0lERWdNVFlnTVRZaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5TSWdZM2s5SWpFNUlpQnlQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcnNzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUnNzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTFhOSA5IDAgMCAxIDkgOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDRhMTYgMTYgMCAwIDEgMTYgMTYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICcxOScsIHI6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJzcztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBydWxlci1kaW1lbnNpb24tbGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRWMkxUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREUxZGkweklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXhOWFl0TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBNFZqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJRFpJTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ09GWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREUxZGkweklpQXZQZ29nSUR4eVpXTjBJSGc5SWpJaUlIazlJakV5SWlCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU9DSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3J1bGVyLWRpbWVuc2lvbi1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUnVsZXJEaW1lbnNpb25MaW5lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE1di0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE1di0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE1di0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgOFY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDZIMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA4VjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNXYtMycgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnMTInLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnOCcsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBSdWxlckRpbWVuc2lvbkxpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgcnVsZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFdU15QXhOUzR6WVRJdU5DQXlMalFnTUNBd0lERWdNQ0F6TGpSc0xUSXVOaUF5TGpaaE1pNDBJREl1TkNBd0lEQWdNUzB6TGpRZ01Fd3lMamNnT0M0M1lUSXVOREVnTWk0ME1TQXdJREFnTVNBd0xUTXVOR3d5TGpZdE1pNDJZVEl1TkRFZ01pNDBNU0F3SURBZ01TQXpMalFnTUZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMExqVWdNVEl1TlNBeUxUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXhMalVnT1M0MUlESXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPQzQxSURZdU5TQXlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzTGpVZ01UVXVOU0F5TFRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3J1bGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgUnVsZXI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMyAxNS4zYTIuNCAyLjQgMCAwIDEgMCAzLjRsLTIuNiAyLjZhMi40IDIuNCAwIDAgMS0zLjQgMEwyLjcgOC43YTIuNDEgMi40MSAwIDAgMSAwLTMuNGwyLjYtMi42YTIuNDEgMi40MSAwIDAgMSAzLjQgMFonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xNC41IDEyLjUgMi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTExLjUgOS41IDItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204LjUgNi41IDItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNy41IDE1LjUgMi0yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFJ1bGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHJ1c3NpYW4tcnVibGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1XZzRZVFFnTkNBd0lEQWdNQ0F3TFRoSU9YWXhPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF4TldnNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3J1c3NpYW4tcnVibGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBSdXNzaWFuUnVibGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMWg4YTQgNCAwIDAgMCAwLThIOXYxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE1aDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgUnVzc2lhblJ1YmxlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNhaWxib2F0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNbll4TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeU1tRTBJRFFnTUNBd0lERXROQzAwSURFZ01TQXdJREFnTVNBeExURm9NVFpoTVNBeElEQWdNQ0F4SURFZ01TQTBJRFFnTUNBd0lERXROQ0EwZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0eE5Ua2dNaTQwTm1FeElERWdNQ0F3SURFZ01TNDFNakV0TGpFNU0ydzVMamszTnlBNExqazRRVEVnTVNBd0lEQWdNU0F5TUNBeE0wZzBZVEVnTVNBd0lEQWdNUzB1T0RJMExURXVOVFkzZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NhaWxib2F0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2FpbGJvYXQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMnYxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIyYTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWgxNmExIDEgMCAwIDEgMSAxIDQgNCAwIDAgMS00IDR6JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNOS4xNTkgMi40NmExIDEgMCAwIDEgMS41MjEtLjE5M2w5Ljk3NyA4Ljk4QTEgMSAwIDAgMSAyMCAxM0g0YTEgMSAwIDAgMS0uODI0LTEuNTY3eicgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNhaWxib2F0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNhbGFkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk55QXlNV2d4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qRmhPU0E1SURBZ01DQXdJRGt0T1VnellUa2dPU0F3SURBZ01DQTVJRGxhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVM0ek9DQXhNbUV5TGpRZ01pNDBJREFnTUNBeExTNDBMVFF1TnpjZ01pNDBJREl1TkNBd0lEQWdNU0F6TGpJdE1pNDNOeUF5TGpRZ01pNDBJREFnTUNBeElETXVORGN0TGpZeklESXVOQ0F5TGpRZ01DQXdJREVnTXk0ek55QXpMak0zSURJdU5DQXlMalFnTUNBd0lERXRNUzR4SURNdU55QXlMalV4SURJdU5URWdNQ0F3SURFZ0xqQXpJREV1TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRNZ01USWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUM0NUlEY3VNalZCTXk0NU9TQXpMams1SURBZ01DQXdJRFFnTVRCak1DQXVOek11TWlBeExqUXhMalUwSURJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NhbGFkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2FsYWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMWgxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMWE5IDkgMCAwIDAgOS05SDNhOSA5IDAgMCAwIDkgOVonIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEuMzggMTJhMi40IDIuNCAwIDAgMS0uNC00Ljc3IDIuNCAyLjQgMCAwIDEgMy4yLTIuNzcgMi40IDIuNCAwIDAgMSAzLjQ3LS42MyAyLjQgMi40IDAgMCAxIDMuMzcgMy4zNyAyLjQgMi40IDAgMCAxLTEuMSAzLjcgMi41MSAyLjUxIDAgMCAxIC4wMyAxLjEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xMyAxMiA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuOSA3LjI1QTMuOTkgMy45OSAwIDAgMCA0IDEwYzAgLjczLjIgMS40MS41NCAyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNhbGFkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNhbmR3aWNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1pNHpOeUF4TVM0eU1qTWdPQzR6TnpJdE5pNDNOemRoTWlBeUlEQWdNQ0F4SURJdU5URTJJREJzT0M0ek56RWdOaTQzTnpjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeElERTFZVEVnTVNBd0lEQWdNU0F4SURGMk1tRXhJREVnTUNBd0lERXRNU0F4YUMwMUxqSTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUxWVRFZ01TQXdJREFnTUMweElERjJNbUV4SURFZ01DQXdJREFnTVNBeGFEa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUWXVOamNnTVRVZ05pNHhNeUEwTGpaaE1pQXlJREFnTUNBd0lESXVPQzB1Tkd3ekxqRTFMVFF1TWlJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlOQ0lnZUQwaU1pSWdlVDBpTVRFaUlISjRQU0l4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2FuZHdpY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTYW5kd2ljaDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yLjM3IDExLjIyMyA4LjM3Mi02Ljc3N2EyIDIgMCAwIDEgMi41MTYgMGw4LjM3MSA2Ljc3NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxNWExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMWgtNS4yNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE1YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNi42NyAxNSA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnNCcsIHg6ICcyJywgeTogJzExJywgcng6ICcxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNhbmR3aWNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNhdGVsbGl0ZS1kaXNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNR0UzTGpNeElEY3VNekVnTUNBd0lEQWdNVEFnTVRCYUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUlERTFJRE10TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UTmhOaUEySURBZ01DQXdMVFl0TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UTkJNVEFnTVRBZ01DQXdJREFnTVRFZ015SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zYXRlbGxpdGUtZGlzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNhdGVsbGl0ZURpc2g6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMGE3LjMxIDcuMzEgMCAwIDAgMTAgMTBaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTUgMy0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEzYTYgNiAwIDAgMC02LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTNBMTAgMTAgMCAwIDAgMTEgMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTYXRlbGxpdGVEaXNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNhdGVsbGl0ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVE11TlNBMkxqVXRNeTR4TkRndE15NHhORGhoTVM0eU1EVWdNUzR5TURVZ01DQXdJREF0TVM0M01EUWdNRXcyTGpNMU1pQTFMalkwT0dFeExqSXdOU0F4TGpJd05TQXdJREFnTUNBd0lERXVOekEwVERrdU5TQXhNQzQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tmk0MUlEY3VOU0F4T1NBMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE55NDFJREV3TGpVZ015NHhORGdnTXk0eE5EaGhNUzR5TURVZ01TNHlNRFVnTUNBd0lERWdNQ0F4TGpjd05Hd3RNaTR5T1RZZ01pNHlPVFpoTVM0eU1EVWdNUzR5TURVZ01DQXdJREV0TVM0M01EUWdNRXd4TXk0MUlERTBMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTWpGaE5pQTJJREFnTUNBd0xUWXROaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PUzR6TlRJZ01UQXVOalE0WVRFdU1qQTFJREV1TWpBMUlEQWdNQ0F3SURBZ01TNDNNRFJzTWk0eU9UWWdNaTR5T1RaaE1TNHlNRFVnTVM0eU1EVWdNQ0F3SURBZ01TNDNNRFFnTUd3MExqSTVOaTAwTGpJNU5tRXhMakl3TlNBeExqSXdOU0F3SURBZ01DQXdMVEV1TnpBMGJDMHlMakk1TmkweUxqSTVObUV4TGpJd05TQXhMakl3TlNBd0lEQWdNQzB4TGpjd05DQXdlaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2F0ZWxsaXRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2F0ZWxsaXRlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTEzLjUgNi41LTMuMTQ4LTMuMTQ4YTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBMNi4zNTIgNS42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNEw5LjUgMTAuNScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE2LjUgNy41IDE5IDUnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTcuNSAxMC41IDMuMTQ4IDMuMTQ4YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAxLTEuNzA0IDBMMTMuNSAxNC41JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMWE2IDYgMCAwIDAtNi02JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkuMzUyIDEwLjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNC4yOTYtNC4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMC0xLjcwNGwtMi4yOTYtMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMHonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTYXRlbGxpdGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2F1ZGktcml5YWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpBZ01Ua3VOUzAxTGpVZ01TNHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQzQxSURSMk1URXVNakpoTVNBeElEQWdNQ0F3SURFdU1qUXlMamszVERJd0lERTFMaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl1T1RjNElERTVMak0xTVNBMUxqVTBPUzB4TGpNMk0wRXlJRElnTUNBd0lEQWdNVEFnTVRaV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVEFnTkNBeE15NDFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zYXVkaS1yaXlhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNhdWRpUml5YWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMTkuNS01LjUgMS4yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjUgNHYxMS4yMmExIDEgMCAwIDAgMS4yNDIuOTdMMjAgMTUuMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yLjk3OCAxOS4zNTEgNS41NDktMS4zNjNBMiAyIDAgMCAwIDEwIDE2VjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTAgNCAxMy41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNhdWRpUml5YWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2F2ZS1hbGxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01uWXpZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNVGgyTFRaaE1TQXhJREFnTUNBd0xURXRNV2d0Tm1FeElERWdNQ0F3SURBdE1TQXhkallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURJeVNEUmhNaUF5SURBZ01DQXhMVEl0TWxZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTRZVElnTWlBd0lEQWdNUzB5TFRKV05HRXlJRElnTUNBd0lERWdNaTB5YURrdU1UY3lZVElnTWlBd0lEQWdNU0F4TGpReE5DNDFPRFpzTWk0NE1qZ2dNaTQ0TWpoQk1pQXlJREFnTUNBeElESXlJRFl1T0RJNFZqRTJZVElnTWlBd0lEQWdNUzB5TGpBeElESjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zYXZlLWFsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNhdmVBbGw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMnYzYTEgMSAwIDAgMCAxIDFoNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxOHYtNmExIDEgMCAwIDAtMS0xaC02YTEgMSAwIDAgMC0xIDF2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMkg0YTIgMiAwIDAgMS0yLTJWNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004IDE4YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDkuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMi44MjggMi44MjhBMiAyIDAgMCAxIDIyIDYuODI4VjE2YTIgMiAwIDAgMS0yLjAxIDJ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2F2ZUFsbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzYXZlLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVROSU9HRXhJREVnTUNBd0lEQXRNU0F4ZGpjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElEaG9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTWpGMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSWdNaUF5TUNBeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQXVOREVnTWpBdU5ERkJNaUF5SURBZ01DQXhJREU1SURJeFNEVmhNaUF5SURBZ01DQXhMVEl0TWxZMVlUSWdNaUF3SURBZ01TQXVOVGt0TVM0ME1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qa3VOU0F4TVM0MWN6VWdOU0EwSURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ00yZzJMakpoTWlBeUlEQWdNQ0F4SURFdU5DNDJiRE11T0NBekxqaGhNaUF5SURBZ01DQXhJQzQySURFdU5GWXhOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2F2ZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTYXZlT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzIDEzSDhhMSAxIDAgMCAwLTEgMXY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDhoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyMXYtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuNDEgMjAuNDFBMiAyIDAgMCAxIDE5IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAuNTktMS40MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yOS41IDExLjVzNSA1IDQgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDNoNi4yYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2F2ZU9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzYXZlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVXVNaUF6WVRJZ01pQXdJREFnTVNBeExqUXVObXd6TGpnZ015NDRZVElnTWlBd0lEQWdNU0F1TmlBeExqUldNVGxoTWlBeUlEQWdNQ0F4TFRJZ01rZzFZVElnTWlBd0lEQWdNUzB5TFRKV05XRXlJRElnTUNBd0lERWdNaTB5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01qRjJMVGRoTVNBeElEQWdNQ0F3TFRFdE1VZzRZVEVnTVNBd0lEQWdNQzB4SURGMk55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXpkalJoTVNBeElEQWdNQ0F3SURFZ01XZzNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zYXZlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2F2ZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNS4yIDNhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMjF2LTdhMSAxIDAgMCAwLTEtMUg4YTEgMSAwIDAgMC0xIDF2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDN2NGExIDEgMCAwIDAgMSAxaDcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2F2ZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzY2FsZS0zZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0EzZGpFeFlURWdNU0F3SURBZ01DQXhJREZvTVRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVdU1qa3pJREU0TGpjd055QXhNU0F4TXlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE9TSWdZM2s5SWpFNUlpQnlQU0l5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpVaUlHTjVQU0kxSWlCeVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2FsZS0zZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNjYWxlM2Q6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSA3djExYTEgMSAwIDAgMCAxIDFoMTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNS4yOTMgMTguNzA3IDExIDEzJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTknLCBjeTogJzE5JywgcjogJzInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICc1JywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2NhbGUzZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzY2FsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1Ua2dPQ0F6SURoaE5TQTFJREFnTUNBeExUWWdNSHBXTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBM2FERmhNVGNnTVRjZ01DQXdJREFnT0MweUlERTNJREUzSURBZ01DQXdJRGdnTW1neElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMUlEZ2dNeUE0WVRVZ05TQXdJREFnTVMwMklEQjZWamNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpGb01UQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2FsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNjYWxlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2MTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDdoMWExNyAxNyAwIDAgMCA4LTIgMTcgMTcgMCAwIDAgOCAyaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSA4IDMgOGE1IDUgMCAwIDEtNiAwelY3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjFoMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2NhbGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2NhbGluZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTBnMVlUSWdNaUF3SURBZ01DMHlJREoyTVRSaE1pQXlJREFnTUNBd0lESWdNbWd4TkdFeUlESWdNQ0F3SURBZ01pMHlkaTAzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE5VZzVkaTAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBemFEVjJOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTXlBNUlERTFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2FsaW5nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2NhbGluZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTVIOXYtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAzaDV2NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAzIDkgMTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2NhbGluZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzY2FuLWV5ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEzVmpWaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFESmhNaUF5SURBZ01DQXhJRElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhOM1l5WVRJZ01pQXdJREFnTVMweUlESm9MVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpGSU5XRXlJRElnTUNBd0lERXRNaTB5ZGkweUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNExqazBOQ0F4TWk0ek0yRXhJREVnTUNBd0lEQWdNQzB1TmpZZ055NDFJRGN1TlNBd0lEQWdNQzB4TXk0NE9EZ2dNQ0F4SURFZ01DQXdJREFnTUNBdU5qWWdOeTQxSURjdU5TQXdJREFnTUNBeE15NDRPRGdnTUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjYW4tZXllXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2NhbkV5ZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDdWNWEyIDIgMCAwIDEgMi0yaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOC45NDQgMTIuMzNhMSAxIDAgMCAwIDAtLjY2IDcuNSA3LjUgMCAwIDAtMTMuODg4IDAgMSAxIDAgMCAwIDAgLjY2IDcuNSA3LjUgMCAwIDAgMTMuODg4IDAnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTY2FuRXllO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNjYW4tYmFyY29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEzVmpWaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFESmhNaUF5SURBZ01DQXhJRElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhOM1l5WVRJZ01pQXdJREFnTVMweUlESm9MVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpGSU5XRXlJRElnTUNBd0lERXRNaTB5ZGkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEZDJNVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURkMk1UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJRGQyTVRBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjYW4tYmFyY29kZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNjYW5CYXJjb2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDJhMiAyIDAgMCAxIDIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxSDVhMiAyIDAgMCAxLTItMnYtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDd2MTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3YxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA3djEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNjYW5CYXJjb2RlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNjYW4tZmFjZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEzVmpWaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFESmhNaUF5SURBZ01DQXhJRElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhOM1l5WVRJZ01pQXdJREFnTVMweUlESm9MVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpGSU5XRXlJRElnTUNBd0lERXRNaTB5ZGkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTBjekV1TlNBeUlEUWdNaUEwTFRJZ05DMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRGxvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQTVhQzR3TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjYW4tZmFjZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNjYW5GYWNlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDJhMiAyIDAgMCAxIDIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxSDVhMiAyIDAgMCAxLTItMnYtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE0czEuNSAyIDQgMiA0LTIgNC0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgOWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOWguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2NhbkZhY2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2Nhbi1oZWFydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGNnTTJneVlUSWdNaUF3SURBZ01TQXlJREoyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UZDJNbUV5SURJZ01DQXdJREV0TWlBeWFDMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGRXTldFeUlESWdNQ0F3SURFZ01pMHlhRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpGSU5XRXlJRElnTUNBd0lERXRNaTB5ZGkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0xqZ3lPQ0F4TXk0d04wRXpJRE1nTUNBd0lERWdNVElnT0M0M05qUmhNeUF6SURBZ01DQXhJRFF1TVRjeUlEUXVNekEyYkMwekxqUTBOeUF6TGpZeVlURWdNU0F3SURBZ01TMHhMalEwT1NBd2VpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2FuLWhlYXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2NhbkhlYXJ0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE3IDNoMmEyIDIgMCAwIDEgMiAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxSDVhMiAyIDAgMCAxLTItMnYtMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTcuODI4IDEzLjA3QTMgMyAwIDAgMSAxMiA4Ljc2NGEzIDMgMCAwIDEgNC4xNzIgNC4zMDZsLTMuNDQ3IDMuNjJhMSAxIDAgMCAxLTEuNDQ5IDB6JyB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2NhbkhlYXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNjYW4tbGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEzVmpWaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFESmhNaUF5SURBZ01DQXhJRElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhOM1l5WVRJZ01pQXdJREFnTVMweUlESm9MVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpGSU5XRXlJRElnTUNBd0lERXRNaTB5ZGkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERXlhREV3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2Nhbi1saW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2NhbkxpbmU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyA3VjVhMiAyIDAgMCAxIDItMmgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDNoMmEyIDIgMCAwIDEgMiAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTJoMTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2NhbkxpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2Nhbi1xci1jb2RlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVEoyTkdFeElERWdNQ0F3SURFdE1TQXhhQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFESmhNaUF5SURBZ01DQXhJRElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QTRWamNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFM2RqSmhNaUF5SURBZ01DQXhMVElnTW1ndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QTNWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREUzYUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXlNVWcxWVRJZ01pQXdJREFnTVMweUxUSjJMVElpSUM4K0NpQWdQSEpsWTNRZ2VEMGlOeUlnZVQwaU55SWdkMmxrZEdnOUlqVWlJR2hsYVdkb2REMGlOU0lnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2FuLXFyLWNvZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTY2FuUXJDb2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEydjRhMSAxIDAgMCAxLTEgMWgtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDJhMiAyIDAgMCAxIDIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDhWNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA3VjVhMiAyIDAgMCAxIDItMmgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTdoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnNycsIHk6ICc3Jywgd2lkdGg6ICc1JywgaGVpZ2h0OiAnNScsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTY2FuUXJDb2RlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNjYW4tc2VhcmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTNWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF6YURKaE1pQXlJREFnTUNBeElESWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE4zWXlZVElnTWlBd0lEQWdNUzB5SURKb0xUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNakZJTldFeUlESWdNQ0F3SURFdE1pMHlkaTB5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRJaUlISTlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUySURFMkxURXVPUzB4TGpraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjYW4tc2VhcmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2NhblNlYXJjaDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDdWNWEyIDIgMCAwIDEgMi0yaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxNi0xLjktMS45JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNjYW5TZWFyY2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2Nhbi10ZXh0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTNWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF6YURKaE1pQXlJREFnTUNBeElESWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE4zWXlZVElnTWlBd0lEQWdNUzB5SURKb0xUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNakZJTldFeUlESWdNQ0F3SURFdE1pMHlkaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURob09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhNbWd4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE5tZzJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2FuLXRleHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTY2FuVGV4dDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDdWNWEyIDIgMCAwIDEgMi0yaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA4aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMmgxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE2aDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2NhblRleHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2NhblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEzVmpWaE1pQXlJREFnTUNBeElESXRNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBemFESmhNaUF5SURBZ01DQXhJRElnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhOM1l5WVRJZ01pQXdJREFnTVMweUlESm9MVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpGSU5XRXlJRElnTUNBd0lERXRNaTB5ZGkweUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjYW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTY2FuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAzaDJhMiAyIDAgMCAxIDIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxSDVhMiAyIDAgMCAxLTItMnYtMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTY2FuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNjaG9vbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTWpGMkxUTmhNaUF5SURBZ01DQXdMVFFnTUhZeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQTFkakUySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAwSURZZ055NHhNRFl0TXk0M09XRXlJRElnTUNBd0lERWdNUzQzT0RnZ01Fd3lNQ0EySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAySURFeExUTXVOVElnTWk0eE5EZGhNU0F4SURBZ01DQXdMUzQwT0M0NE5UUldNVGxoTWlBeUlEQWdNQ0F3SURJZ01tZ3hObUV5SURJZ01DQXdJREFnTWkweWRpMDFZVEVnTVNBd0lEQWdNQzB1TkRndExqZzFNMHd4T0NBeE1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pQTFkakUySWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpT1NJZ2NqMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2Nob29sXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2Nob29sOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA1djE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQgNiA3LjEwNi0zLjc5YTIgMiAwIDAgMSAxLjc4OCAwTDIwIDYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtNiAxMS0zLjUyIDIuMTQ3YTEgMSAwIDAgMC0uNDguODU0VjE5YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNWExIDEgMCAwIDAtLjQ4LS44NTNMMTggMTEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDV2MTYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnOScsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNjaG9vbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzY2lzc29ycy1saW5lLWRhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OUzQwTWlBNUxqUXlJRGdnTVRJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5DSWdZM2s5SWpnaUlISTlJaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUwSURZdE9DNDFPQ0E0TGpVNElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqUWlJR041UFNJeE5pSWdjajBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU9DQXhOQzQ0SURFMElERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TW1ndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVEpvTFRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjaXNzb3JzLWxpbmUtZGFzaGVkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2Npc3NvcnNMaW5lRGFzaGVkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUuNDIgOS40MiA4IDEyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNCcsIGN5OiAnOCcsIHI6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDYtOC41OCA4LjU4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNCcsIGN5OiAnMTYnLCByOiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC44IDE0LjggMTQgMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTJoLTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2Npc3NvcnNMaW5lRGFzaGVkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNjaXNzb3JzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTJJaUJqZVQwaU5pSWdjajBpTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0M0eE1pQTRMakV5SURFeUlERXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0EwSURndU1USWdNVFV1T0RnaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5pSWdZM2s5SWpFNElpQnlQU0l6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkM0NElERTBMamdnTWpBZ01qQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY2lzc29yc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNjaXNzb3JzOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnNicsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguMTIgOC4xMiAxMiAxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA0IDguMTIgMTUuODgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc2JywgY3k6ICcxOCcsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjggMTQuOCAyMCAyMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTY2lzc29ycztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzY29vdGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdOR2d0TXk0MWJESWdNVEV1TURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU9UVWdNVGRvTlM0eE5ESmpMalV5TXlBd0lDNDVOUzB1TkRBMklERXVNRFl6TFM0NU1UWmhOaTQxSURZdU5TQXdJREFnTVNBMUxqTTBOUzAxTGpBd09TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhPUzQxSWlCamVUMGlNVGN1TlNJZ2NqMGlNaTQxSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpRdU5TSWdZM2s5SWpFM0xqVWlJSEk5SWpJdU5TSWdMejRLUEM5emRtYyspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Njb290ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTY29vdGVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDRoLTMuNWwyIDExLjA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuOTUgMTdoNS4xNDJjLjUyMyAwIC45NS0uNDA2IDEuMDYzLS45MTZhNi41IDYuNSAwIDAgMSA1LjM0NS01LjAwOScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5LjUnLCBjeTogJzE3LjUnLCByOiAnMi41JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNC41JywgY3k6ICcxNy41JywgcjogJzIuNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTY29vdGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNjcmVlbi1zaGFyZS1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ00wZzBZVElnTWlBd0lEQWdNQzB5SURKMk1UQmhNaUF5SURBZ01DQXdJRElnTW1neE5tRXlJRElnTUNBd0lEQWdNaTB5ZGkweklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElESXhhRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFM2RqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJRE10TlNBMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE55QXpJRFVnTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NjcmVlbi1zaGFyZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTY3JlZW5TaGFyZU9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyAzSDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyMWg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMy01IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMyA1IDUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2NyZWVuU2hhcmVPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2NyZWVuLXNoYXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNMGcwWVRJZ01pQXdJREFnTUMweUlESjJNVEJoTWlBeUlEQWdNQ0F3SURJZ01tZ3hObUV5SURJZ01DQXdJREFnTWkweWRpMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREl4YURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlERTNkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzSURnZ05TMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF6YURWMk5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY3JlZW4tc2hhcmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTY3JlZW5TaGFyZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyAzSDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyMWg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgOCA1LTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgM2g1djUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2NyZWVuU2hhcmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2Nyb2xsLXRleHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01USm9MVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURob0xUVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREUzVmpWaE1pQXlJREFnTUNBd0xUSXRNa2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURJeGFERXlZVElnTWlBd0lEQWdNQ0F5TFRKMkxURmhNU0F4SURBZ01DQXdMVEV0TVVneE1XRXhJREVnTUNBd0lEQXRNU0F4ZGpGaE1pQXlJREFnTVNBeExUUWdNRlkxWVRJZ01pQXdJREVnTUMwMElEQjJNbUV4SURFZ01DQXdJREFnTVNBeGFETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zY3JvbGwtdGV4dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNjcm9sbFRleHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTJoLTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOGgtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxN1Y1YTIgMiAwIDAgMC0yLTJINCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTY3JvbGxUZXh0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNjcm9sbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVRkV05XRXlJRElnTUNBd0lEQXRNaTB5U0RRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01qRm9NVEpoTWlBeUlEQWdNQ0F3SURJdE1uWXRNV0V4SURFZ01DQXdJREF0TVMweFNERXhZVEVnTVNBd0lEQWdNQzB4SURGMk1XRXlJRElnTUNBeElERXROQ0F3VmpWaE1pQXlJREFnTVNBd0xUUWdNSFl5WVRFZ01TQXdJREFnTUNBeElERm9NeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2Nyb2xsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2Nyb2xsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMycsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNjcm9sbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzZWFyY2gtYWxlcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1TSWdZM2s5SWpFeElpQnlQU0k0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TVNBeU1TMDBMak10TkM0eklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQTNkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV4SURFMWFDNHdNU0lnTHo0S1BDOXpkbWMrKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZWFyY2gtYWxlcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTZWFyY2hBbGVydDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICcxMScsIHI6ICc4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDIxLTQuMy00LjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgN3Y0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDE1aC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTZWFyY2hBbGVydDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzZWFyY2gtY29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVE1nTVRNdU5TQXlMVEl1TlMweUxUSXVOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNakVnTWpFdE5DNHpMVFF1TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBNExqVWdOeUF4TVd3eUlESXVOU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TVNJZ1kzazlJakV4SWlCeVBTSTRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZWFyY2gtY29kZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNlYXJjaENvZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTMgMTMuNSAyLTIuNS0yLTIuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAyMS00LjMtNC4zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgOC41IDcgMTFsMiAyLjUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMScsIGN5OiAnMTEnLCByOiAnOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTZWFyY2hDb2RlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNlYXJjaC1jaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPQ0F4TVNBeUlESWdOQzAwSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeElpQmplVDBpTVRFaUlISTlJamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl4SURJeExUUXVNeTAwTGpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NlYXJjaC1jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNlYXJjaENoZWNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTggMTEgMiAyIDQtNCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICcxMScsIHI6ICc4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDIxLTQuMy00LjMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2VhcmNoQ2hlY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2VhcmNoLXNsYXNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UTXVOU0E0TGpVdE5TQTFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV4SWlCamVUMGlNVEVpSUhJOUlqZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJREl4TFRRdU15MDBMak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VhcmNoLXNsYXNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2VhcmNoU2xhc2g6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuNSA4LjUtNSA1JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTEnLCBjeTogJzExJywgcjogJzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMjEtNC4zLTQuMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTZWFyY2hTbGFzaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzZWFyY2gteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVE11TlNBNExqVXROU0ExSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0TGpVZ09DNDFJRFVnTlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1TSWdZM2s5SWpFeElpQnlQU0k0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TVNBeU1TMDBMak10TkM0eklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NlYXJjaC14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2VhcmNoWDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMy41IDguNS01IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOC41IDguNSA1IDUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMScsIGN5OiAnMTEnLCByOiAnOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAyMS00LjMtNC4zJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNlYXJjaFg7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2VhcmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNakV0TkM0ek5DMDBMak0wSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeElpQmplVDBpTVRFaUlISTlJamdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VhcmNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2VhcmNoOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIxIDIxLTQuMzQtNC4zNCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICcxMScsIHI6ICc4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNlYXJjaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzZW5kLWhvcml6b250YWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0M01UUWdNeTR3TkRoaExqUTVPQzQwT1RnZ01DQXdJREF0TGpZNE15NDJNamRzTWk0NE5ETWdOeTQyTWpkaE1pQXlJREFnTUNBeElEQWdNUzR6T1Rac0xUSXVPRFF5SURjdU5qSTNZUzQwT1RndU5EazRJREFnTUNBd0lDNDJPREl1TmpJM2JERTRMVGd1TldFdU5TNDFJREFnTUNBd0lEQXRMamt3TkhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01USm9NVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VuZC1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2VuZEhvcml6b250YWw6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMy43MTQgMy4wNDhhLjQ5OC40OTggMCAwIDAtLjY4My42MjdsMi44NDMgNy42MjdhMiAyIDAgMCAxIDAgMS4zOTZsLTIuODQyIDcuNjI3YS40OTguNDk4IDAgMCAwIC42ODIuNjI3bDE4LTguNWEuNS41IDAgMCAwIDAtLjkwNHonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDEyaDE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNlbmRIb3Jpem9udGFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNlY3Rpb25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05XRTBJRE1nTUNBd0lEQXRPQ0F3WXpBZ05DQTRJRE1nT0NBM1lUUWdNeUF3SURBZ01TMDRJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRsaE5DQXpJREFnTUNBd0lEZ2dNR013TFRRdE9DMHpMVGd0TjJFMElETWdNQ0F3SURFZ09DQXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZWN0aW9uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2VjdGlvbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiA1YTQgMyAwIDAgMC04IDBjMCA0IDggMyA4IDdhNCAzIDAgMCAxLTggMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE5YTQgMyAwIDAgMCA4IDBjMC00LTgtMy04LTdhNCAzIDAgMCAxIDggMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTZWN0aW9uO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNlbmQtdG8tYmFja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCNFBTSXhOQ0lnZVQwaU1UUWlJSGRwWkhSb1BTSTRJaUJvWldsbmFIUTlJamdpSUhKNFBTSXlJaUF2UGdvZ0lEeHlaV04wSUhnOUlqSWlJSGs5SWpJaUlIZHBaSFJvUFNJNElpQm9aV2xuYUhROUlqZ2lJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERTBkakZoTWlBeUlEQWdNQ0F3SURJZ01tZ3hJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0EzYURGaE1pQXlJREFnTUNBeElESWdNbll4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VuZC10by1iYWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2VuZFRvQmFjazogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgeDogJzE0JywgeTogJzE0Jywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnMicsIHdpZHRoOiAnOCcsIGhlaWdodDogJzgnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNHYxYTIgMiAwIDAgMCAyIDJoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA3aDFhMiAyIDAgMCAxIDIgMnYxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNlbmRUb0JhY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2VuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFF1TlRNMklESXhMalk0Tm1FdU5TNDFJREFnTUNBd0lDNDVNemN0TGpBeU5HdzJMalV0TVRsaExqUTVOaTQwT1RZZ01DQXdJREF0TGpZek5TMHVOak0xYkMweE9TQTJMalZoTGpVdU5TQXdJREFnTUMwdU1ESTBMamt6TjJ3M0xqa3pJRE11TVRoaE1pQXlJREFnTUNBeElERXVNVEV5SURFdU1URjZJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNUzQ0TlRRZ01pNHhORGN0TVRBdU9UUWdNVEF1T1RNNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NlbmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTZW5kOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE0LjUzNiAyMS42ODZhLjUuNSAwIDAgMCAuOTM3LS4wMjRsNi41LTE5YS40OTYuNDk2IDAgMCAwLS42MzUtLjYzNWwtMTkgNi41YS41LjUgMCAwIDAtLjAyNC45MzdsNy45MyAzLjE4YTIgMiAwIDAgMSAxLjExMiAxLjExeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIxLjg1NCAyLjE0Ny0xMC45NCAxMC45MzknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2VuZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzZXBhcmF0b3ItaG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTVRZdE5DQTBMVFF0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1tZ3hPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0E0SURRdE5DQTBJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VwYXJhdG9yLWhvcml6b250YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTZXBhcmF0b3JIb3Jpem9udGFsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE2LTQgNC00LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDggNC00IDQgNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTZXBhcmF0b3JIb3Jpem9udGFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNlcGFyYXRvci12ZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNVFlnTkMwMExUUXROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0E0TFRRZ05DQTBJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VwYXJhdG9yLXZlcnRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2VwYXJhdG9yVmVydGljYWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3YxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxNiA0LTQtNC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggOC00IDQgNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNlcGFyYXRvclZlcnRpY2FsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNlcnZlci1jb2dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBdU9EVXlJREUwTGpjM01pMHVNemd6TGpreU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVNVFE0SURFMExqYzNNbUV6SURNZ01DQXhJREF0TWk0eU9UWXROUzQxTkRSc0xTNHpPRE10TGpreU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UTXVNVFE0SURrdU1qSTRMak00TXkwdU9USXpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNeTQxTXlBeE5TNDJPVFl0TGpNNE1pMHVPVEkwWVRNZ015QXdJREVnTVMweUxqSTVOaTAxTGpVME5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UUXVOemN5SURFd0xqZzFNaTQ1TWpNdExqTTRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFF1TnpjeUlERXpMakUwT0M0NU1qTXVNemd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwTGpVZ01UQklOR0V5SURJZ01DQXdJREV0TWkweVZqUmhNaUF5SURBZ01DQXhJREl0TW1neE5tRXlJRElnTUNBd0lERWdNaUF5ZGpSaE1pQXlJREFnTUNBeExUSWdNbWd0TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRdU5TQXhORWcwWVRJZ01pQXdJREFnTUMweUlESjJOR0V5SURJZ01DQXdJREFnTWlBeWFERTJZVElnTWlBd0lEQWdNQ0F5TFRKMkxUUmhNaUF5SURBZ01DQXdMVEl0TW1ndExqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUWWdNVGhvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEWm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1TGpJeU9DQXhNQzQ0TlRJdExqa3lNeTB1TXpneklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wNUxqSXlPQ0F4TXk0eE5EZ3RMamt5TXk0ek9ETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZXJ2ZXItY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2VydmVyQ29nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEwLjg1MiAxNC43NzItLjM4My45MjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMuMTQ4IDE0Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMy4xNDggOS4yMjguMzgzLS45MjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuNTMgMTUuNjk2LS4zODItLjkyNGEzIDMgMCAxIDEtMi4yOTYtNS41NDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNC43NzIgMTMuMTQ4LjkyMy4zODMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC41IDEwSDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLS41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuNSAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtLjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA2aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205LjIyOCAxMC44NTItLjkyMy0uMzgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuMjI4IDEzLjE0OC0uOTIzLjM4MycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTZXJ2ZXJDb2c7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2VydmVyLWNyYXNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5pQXhNRWcwWVRJZ01pQXdJREFnTVMweUxUSldOR0V5SURJZ01DQXdJREVnTWkweWFERTJZVElnTWlBd0lEQWdNU0F5SURKMk5HRXlJRElnTUNBd0lERXRNaUF5YUMweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERTBTRFJoTWlBeUlEQWdNQ0F3TFRJZ01uWTBZVElnTWlBd0lEQWdNQ0F5SURKb01UWmhNaUF5SURBZ01DQXdJREl0TW5ZdE5HRXlJRElnTUNBd0lEQXRNaTB5YUMweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEWm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFNGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVE1nTmkwMElEWm9ObXd0TkNBMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NlcnZlci1jcmFzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNlcnZlckNyYXNoOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTYgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE0SDRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yaC0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgNmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMgNi00IDZoNmwtNCA2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNlcnZlckNyYXNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNlcnZlci1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeWFERXpZVElnTWlBd0lEQWdNU0F5SURKMk5HRXlJRElnTUNBd0lERXRNaUF5YUMwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQXhNQ0F5TGpVZ01pNDFReklnTWlBeUlESXVOU0F5SURWMk0yRXlJRElnTUNBd0lEQWdNaUF5YURaNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQXhOM1l0TVdFeUlESWdNQ0F3SURBdE1pMHlhQzB4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFMFlUSWdNaUF3SURBZ01DMHlJREoyTkdFeUlESWdNQ0F3SURBZ01pQXlhREUyTGpWc01TMHVOUzQxTGpVdE9DMDRTRFI2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFNGFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZXJ2ZXItb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2VydmVyT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMmgxM2EyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMCAyLjUgMi41QzIgMiAyIDIuNSAyIDV2M2EyIDIgMCAwIDAgMiAyaDZ6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDE3di0xYTIgMiAwIDAgMC0yLTJoLTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxNGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmgxNi41bDEtLjUuNS41LTgtOEg0eicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE4aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2VydmVyT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNlcnZlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU9DSWdlRDBpTWlJZ2VUMGlNaUlnY25nOUlqSWlJSEo1UFNJeUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0k0SWlCNFBTSXlJaUI1UFNJeE5DSWdjbmc5SWpJaUlISjVQU0l5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0kySWlCNE1qMGlOaTR3TVNJZ2VURTlJallpSUhreVBTSTJJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSTJJaUI0TWowaU5pNHdNU0lnZVRFOUlqRTRJaUI1TWowaU1UZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZXJ2ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTZXJ2ZXI6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc4JywgeDogJzInLCB5OiAnMicsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzgnLCB4OiAnMicsIHk6ICcxNCcsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc2LjAxJywgeTE6ICc2JywgeTI6ICc2JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzYnLCB4MjogJzYuMDEnLCB5MTogJzE4JywgeTI6ICcxOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTZXJ2ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2V0dGluZ3MtMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRkSU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dOMmd0T1NJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE55SWdZM2s5SWpFM0lpQnlQU0l6SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpjaUlHTjVQU0kzSWlCeVBTSXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZXR0aW5ncy0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2V0dGluZ3MyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDE3SDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgN2gtOScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE3JywgY3k6ICcxNycsIHI6ICczJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNycsIGN5OiAnNycsIHI6ICczJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNldHRpbmdzMjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzZXR0aW5nc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PUzQyTnpFZ05DNHhNelpoTWk0ek5DQXlMak0wSURBZ01DQXhJRFF1TmpVNUlEQWdNaTR6TkNBeUxqTTBJREFnTUNBd0lETXVNekU1SURFdU9URTFJREl1TXpRZ01pNHpOQ0F3SURBZ01TQXlMak16SURRdU1ETXpJREl1TXpRZ01pNHpOQ0F3SURBZ01DQXdJRE11T0RNeElESXVNelFnTWk0ek5DQXdJREFnTVMweUxqTXpJRFF1TURNeklESXVNelFnTWk0ek5DQXdJREFnTUMwekxqTXhPU0F4TGpreE5TQXlMak0wSURJdU16UWdNQ0F3SURFdE5DNDJOVGtnTUNBeUxqTTBJREl1TXpRZ01DQXdJREF0TXk0ek1pMHhMamt4TlNBeUxqTTBJREl1TXpRZ01DQXdJREV0TWk0ek15MDBMakF6TXlBeUxqTTBJREl1TXpRZ01DQXdJREFnTUMwekxqZ3pNVUV5TGpNMElESXVNelFnTUNBd0lERWdOaTR6TlNBMkxqQTFNV0V5TGpNMElESXVNelFnTUNBd0lEQWdNeTR6TVRrdE1TNDVNVFVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TWlJZ2NqMGlNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2V0dGluZ3NcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTZXR0aW5nczogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ005LjY3MSA0LjEzNmEyLjM0IDIuMzQgMCAwIDEgNC42NTkgMCAyLjM0IDIuMzQgMCAwIDAgMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxIDIuMzMgNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAgMy44MzEgMi4zNCAyLjM0IDAgMCAxLTIuMzMgNC4wMzMgMi4zNCAyLjM0IDAgMCAwLTMuMzE5IDEuOTE1IDIuMzQgMi4zNCAwIDAgMS00LjY1OSAwIDIuMzQgMi4zNCAwIDAgMC0zLjMyLTEuOTE1IDIuMzQgMi4zNCAwIDAgMS0yLjMzLTQuMDMzIDIuMzQgMi4zNCAwIDAgMCAwLTMuODMxQTIuMzQgMi4zNCAwIDAgMSA2LjM1IDYuMDUxYTIuMzQgMi4zNCAwIDAgMCAzLjMxOS0xLjkxNScsXG4gICAgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2V0dGluZ3M7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hhcGVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DNHpJREV3WVM0M0xqY2dNQ0F3SURFdExqWXlOaTB4TGpBM09Vd3hNUzQwSUROaExqY3VOeUF3SURBZ01TQXhMakU1T0MwdU1EUXpUREUyTGpNZ09DNDVZUzQzTGpjZ01DQXdJREV0TGpVM01pQXhMakZhSWlBdlBnb2dJRHh5WldOMElIZzlJak1pSUhrOUlqRTBJaUIzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0kzSWlCeWVEMGlNU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4Tnk0MUlpQmplVDBpTVRjdU5TSWdjajBpTXk0MUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoYXBlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNoYXBlczogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ004LjMgMTBhLjcuNyAwIDAgMS0uNjI2LTEuMDc5TDExLjQgM2EuNy43IDAgMCAxIDEuMTk4LS4wNDNMMTYuMyA4LjlhLjcuNyAwIDAgMS0uNTcyIDEuMVonLFxuICAgIH0sXG4gIF0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnMTQnLCB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3Jywgcng6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcuNScsIGN5OiAnMTcuNScsIHI6ICczLjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2hhcGVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNoYXJlLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE9DSWdZM2s5SWpVaUlISTlJak1pSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTmlJZ1kzazlJakV5SWlCeVBTSXpJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU0SWlCamVUMGlNVGtpSUhJOUlqTWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqZ3VOVGtpSUhneVBTSXhOUzQwTWlJZ2VURTlJakV6TGpVeElpQjVNajBpTVRjdU5Ea2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRTFMalF4SWlCNE1qMGlPQzQxT1NJZ2VURTlJall1TlRFaUlIa3lQU0l4TUM0ME9TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGFyZS0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hhcmUyOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzUnLCByOiAnMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzYnLCBjeTogJzEyJywgcjogJzMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTknLCByOiAnMycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc4LjU5JywgeDI6ICcxNS40MicsIHkxOiAnMTMuNTEnLCB5MjogJzE3LjQ5JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1LjQxJywgeDI6ICc4LjU5JywgeTE6ICc2LjUxJywgeTI6ICcxMC40OScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaGFyZTI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hhcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXhNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFlnTmkwMExUUXROQ0EwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFeWRqaGhNaUF5SURBZ01DQXdJRElnTW1neE1tRXlJRElnTUNBd0lEQWdNaTB5ZGkwNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoYXJlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hhcmU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYxMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNiA2LTQtNC00IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaGFyZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzaGVldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU15SWdlREk5SWpJeElpQjVNVDBpT1NJZ2VUSTlJamtpSUM4K0NpQWdQR3hwYm1VZ2VERTlJak1pSUhneVBTSXlNU0lnZVRFOUlqRTFJaUI1TWowaU1UVWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqa2lJSGd5UFNJNUlpQjVNVDBpT1NJZ2VUSTlJakl4SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TlNJZ2VESTlJakUxSWlCNU1UMGlPU0lnZVRJOUlqSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGVldFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNoZWV0OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywgcnk6ICcyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzMnLCB4MjogJzIxJywgeTE6ICc5JywgeTI6ICc5JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzMnLCB4MjogJzIxJywgeTE6ICcxNScsIHkyOiAnMTUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOScsIHgyOiAnOScsIHkxOiAnOScsIHkyOiAnMjEnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTUnLCB4MjogJzE1JywgeTE6ICc5JywgeTI6ICcyMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaGVldDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzaGVsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRGaE1pQXlJREFnTVNBeExUUWdNQ0EwSURRZ01DQXdJREVnT0NBd0lEWWdOaUF3SURBZ01TMHhNaUF3SURnZ09DQXdJREFnTVNBeE5pQXdJREV3SURFd0lEQWdNU0F4TFRJd0lEQWdNVEV1T1RNZ01URXVPVE1nTUNBd0lERWdNaTQwTWkwM0xqSXlJRElnTWlBd0lERWdNU0F6TGpFMklESXVORFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hlbGxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaGVsbDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNCAxMWEyIDIgMCAxIDEtNCAwIDQgNCAwIDAgMSA4IDAgNiA2IDAgMCAxLTEyIDAgOCA4IDAgMCAxIDE2IDAgMTAgMTAgMCAxIDEtMjAgMCAxMS45MyAxMS45MyAwIDAgMSAyLjQyLTcuMjIgMiAyIDAgMSAxIDMuMTYgMi40NCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNoZWxsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNoaWVsZC1hbGVydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVROak1DQTFMVE11TlNBM0xqVXROeTQyTmlBNExqazFZVEVnTVNBd0lEQWdNUzB1TmpjdExqQXhRemN1TlNBeU1DNDFJRFFnTVRnZ05DQXhNMVkyWVRFZ01TQXdJREFnTVNBeExURmpNaUF3SURRdU5TMHhMaklnTmk0eU5DMHlMamN5WVRFdU1UY2dNUzR4TnlBd0lEQWdNU0F4TGpVeUlEQkRNVFF1TlRFZ015NDRNU0F4TnlBMUlERTVJRFZoTVNBeElEQWdNQ0F4SURFZ01Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGgyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UWm9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpZWxkLWFsZXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hpZWxkQWxlcnQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNoaWVsZEFsZXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNoaWVsZC1iYW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTmpNQ0ExTFRNdU5TQTNMalV0Tnk0Mk5pQTRMamsxWVRFZ01TQXdJREFnTVMwdU5qY3RMakF4UXpjdU5TQXlNQzQxSURRZ01UZ2dOQ0F4TTFZMllURWdNU0F3SURBZ01TQXhMVEZqTWlBd0lEUXVOUzB4TGpJZ05pNHlOQzB5TGpjeVlURXVNVGNnTVM0eE55QXdJREFnTVNBeExqVXlJREJETVRRdU5URWdNeTQ0TVNBeE55QTFJREU1SURWaE1TQXhJREFnTUNBeElERWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFF1TWpReklEVXVNakVnTVRRdU16a2dNVEl1TkRjeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoaWVsZC1iYW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaGllbGRCYW46IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ200LjI0MyA1LjIxIDE0LjM5IDEyLjQ3MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaGllbGRCYW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hpZWxkLWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVE5qTUNBMUxUTXVOU0EzTGpVdE55NDJOaUE0TGprMVlURWdNU0F3SURBZ01TMHVOamN0TGpBeFF6Y3VOU0F5TUM0MUlEUWdNVGdnTkNBeE0xWTJZVEVnTVNBd0lEQWdNU0F4TFRGak1pQXdJRFF1TlMweExqSWdOaTR5TkMweUxqY3lZVEV1TVRjZ01TNHhOeUF3SURBZ01TQXhMalV5SURCRE1UUXVOVEVnTXk0NE1TQXhOeUExSURFNUlEVmhNU0F4SURBZ01DQXhJREVnTVhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ01USWdNaUF5SURRdE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGllbGQtY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaGllbGRDaGVjazogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTIgMiAyIDQtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaGllbGRDaGVjaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzaGllbGQtZWxsaXBzaXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTmpNQ0ExTFRNdU5TQTNMalV0Tnk0Mk5pQTRMamsxWVRFZ01TQXdJREFnTVMwdU5qY3RMakF4UXpjdU5TQXlNQzQxSURRZ01UZ2dOQ0F4TTFZMllURWdNU0F3SURBZ01TQXhMVEZqTWlBd0lEUXVOUzB4TGpJZ05pNHlOQzB5TGpjeVlURXVNVGNnTVM0eE55QXdJREFnTVNBeExqVXlJREJETVRRdU5URWdNeTQ0TVNBeE55QTFJREU1SURWaE1TQXhJREFnTUNBeElERWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREV5YUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGllbGQtZWxsaXBzaXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaGllbGRFbGxpcHNpczogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMmguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2hpZWxkRWxsaXBzaXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hpZWxkLWhhbGZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTmpNQ0ExTFRNdU5TQTNMalV0Tnk0Mk5pQTRMamsxWVRFZ01TQXdJREFnTVMwdU5qY3RMakF4UXpjdU5TQXlNQzQxSURRZ01UZ2dOQ0F4TTFZMllURWdNU0F3SURBZ01TQXhMVEZqTWlBd0lEUXVOUzB4TGpJZ05pNHlOQzB5TGpjeVlURXVNVGNnTVM0eE55QXdJREFnTVNBeExqVXlJREJETVRRdU5URWdNeTQ0TVNBeE55QTFJREU1SURWaE1TQXhJREFnTUNBeElERWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJeVZqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGllbGQtaGFsZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNoaWVsZEhhbGY6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMlYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNoaWVsZEhhbGY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hpZWxkLW1pbnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVE5qTUNBMUxUTXVOU0EzTGpVdE55NDJOaUE0TGprMVlURWdNU0F3SURBZ01TMHVOamN0TGpBeFF6Y3VOU0F5TUM0MUlEUWdNVGdnTkNBeE0xWTJZVEVnTVNBd0lEQWdNU0F4TFRGak1pQXdJRFF1TlMweExqSWdOaTR5TkMweUxqY3lZVEV1TVRjZ01TNHhOeUF3SURBZ01TQXhMalV5SURCRE1UUXVOVEVnTXk0NE1TQXhOeUExSURFNUlEVmhNU0F4SURBZ01DQXhJREVnTVhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01USm9OaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpZWxkLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hpZWxkTWludXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEyaDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2hpZWxkTWludXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hpZWxkLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJRFZoTVNBeElEQWdNQ0F3TFRFZ01YWTNZekFnTlNBekxqVWdOeTQxSURjdU5qY2dPQzQ1TkdFeElERWdNQ0F3SURBZ0xqWTNMakF4WXpJdU16VXRMamd5SURRdU5EZ3RNUzQ1TnlBMUxqa3RNeTQzTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1M0ek1Ea2dNeTQyTlRKQk1USXVNalV5SURFeUxqSTFNaUF3SURBZ01DQXhNUzR5TkNBeUxqSTRZVEV1TVRjZ01TNHhOeUF3SURBZ01TQXhMalV5SURCRE1UUXVOVEVnTXk0NE1TQXhOeUExSURFNUlEVmhNU0F4SURBZ01DQXhJREVnTVhZM1lUa3VOemcwSURrdU56ZzBJREFnTUNBeExTNHdPQ0F4TGpJMk5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGllbGQtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hpZWxkT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ001IDVhMSAxIDAgMCAwLTEgMXY3YzAgNSAzLjUgNy41IDcuNjcgOC45NGExIDEgMCAwIDAgLjY3LjAxYzIuMzUtLjgyIDQuNDgtMS45NyA1LjktMy43MScsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTkuMzA5IDMuNjUyQTEyLjI1MiAxMi4yNTIgMCAwIDAgMTEuMjQgMi4yOGExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF2N2E5Ljc4NCA5Ljc4NCAwIDAgMS0uMDggMS4yNjQnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaGllbGRPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hpZWxkLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTmpNQ0ExTFRNdU5TQTNMalV0Tnk0Mk5pQTRMamsxWVRFZ01TQXdJREFnTVMwdU5qY3RMakF4UXpjdU5TQXlNQzQxSURRZ01UZ2dOQ0F4TTFZMllURWdNU0F3SURBZ01TQXhMVEZqTWlBd0lEUXVOUzB4TGpJZ05pNHlOQzB5TGpjeVlURXVNVGNnTVM0eE55QXdJREFnTVNBeExqVXlJREJETVRRdU5URWdNeTQ0TVNBeE55QTFJREU1SURWaE1TQXhJREFnTUNBeElERWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRKb05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdPWFkySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpZWxkLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaGllbGRQbHVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMmg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDl2NicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaGllbGRQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNoaWVsZC1xdWVzdGlvbi1tYXJrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVE5qTUNBMUxUTXVOU0EzTGpVdE55NDJOaUE0TGprMVlURWdNU0F3SURBZ01TMHVOamN0TGpBeFF6Y3VOU0F5TUM0MUlEUWdNVGdnTkNBeE0xWTJZVEVnTVNBd0lEQWdNU0F4TFRGak1pQXdJRFF1TlMweExqSWdOaTR5TkMweUxqY3lZVEV1TVRjZ01TNHhOeUF3SURBZ01TQXhMalV5SURCRE1UUXVOVEVnTXk0NE1TQXhOeUExSURFNUlEVmhNU0F4SURBZ01DQXhJREVnTVhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrdU1TQTVZVE1nTXlBd0lEQWdNU0ExTGpneUlERmpNQ0F5TFRNZ015MHpJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURFM2FDNHdNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpZWxkLXF1ZXN0aW9uLW1hcmtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaGllbGRRdWVzdGlvbk1hcms6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005LjEgOWEzIDMgMCAwIDEgNS44MiAxYzAgMi0zIDMtMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3aC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaGllbGRRdWVzdGlvbk1hcms7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hpZWxkLXVzZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UTmpNQ0ExTFRNdU5TQTNMalV0Tnk0Mk5pQTRMamsxWVRFZ01TQXdJREFnTVMwdU5qY3RMakF4UXpjdU5TQXlNQzQxSURRZ01UZ2dOQ0F4TTFZMllURWdNU0F3SURBZ01TQXhMVEZqTWlBd0lEUXVOUzB4TGpJZ05pNHlOQzB5TGpjeVlURXVNVGNnTVM0eE55QXdJREFnTVNBeExqVXlJREJETVRRdU5URWdNeTQ0TVNBeE55QTFJREU1SURWaE1TQXhJREFnTUNBeElERWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFl1TXpjMklERTRMamt4WVRZZ05pQXdJREFnTVNBeE1TNHlORGt1TURBeklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1URWlJSEk5SWpRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoaWVsZC11c2VyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hpZWxkVXNlcjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzExJywgcjogJzQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2hpZWxkVXNlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzaGllbGQteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTVROak1DQTFMVE11TlNBM0xqVXROeTQyTmlBNExqazFZVEVnTVNBd0lEQWdNUzB1TmpjdExqQXhRemN1TlNBeU1DNDFJRFFnTVRnZ05DQXhNMVkyWVRFZ01TQXdJREFnTVNBeExURmpNaUF3SURRdU5TMHhMaklnTmk0eU5DMHlMamN5WVRFdU1UY2dNUzR4TnlBd0lEQWdNU0F4TGpVeUlEQkRNVFF1TlRFZ015NDRNU0F4TnlBMUlERTVJRFZoTVNBeElEQWdNQ0F4SURFZ01Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBMalVnT1M0MUxUVWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzQxSURrdU5TQTFJRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpZWxkLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaGllbGRYOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuNSA5LjUtNSA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSA5LjUgNSA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNoaWVsZFg7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hpZWxkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVE5qTUNBMUxUTXVOU0EzTGpVdE55NDJOaUE0TGprMVlURWdNU0F3SURBZ01TMHVOamN0TGpBeFF6Y3VOU0F5TUM0MUlEUWdNVGdnTkNBeE0xWTJZVEVnTVNBd0lEQWdNU0F4TFRGak1pQXdJRFF1TlMweExqSWdOaTR5TkMweUxqY3lZVEV1TVRjZ01TNHhOeUF3SURBZ01TQXhMalV5SURCRE1UUXVOVEVnTXk0NE1TQXhOeUExSURFNUlEVmhNU0F4SURBZ01DQXhJREVnTVhvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoaWVsZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNoaWVsZDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNoaWVsZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzaGlwLXdoZWVsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlkamN1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ05TMDFMakl6SURVdU1qTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREV5YUMwM0xqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTVJREU1TFRVdU1qTXROUzR5TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UUXVOVll5TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU1qTWdNVE11TnpjZ05TQXhPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PUzQxSURFeVNESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdMakl6SURFd0xqSXpJRFVnTlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l5TGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NoaXAtd2hlZWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaGlwV2hlZWw6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjcuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSA1LTUuMjMgNS4yMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMmgtNy41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5IDE5LTUuMjMtNS4yMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNC41VjIyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwLjIzIDEzLjc3IDUgMTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS41IDEySDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAuMjMgMTAuMjMgNSA1JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzIuNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaGlwV2hlZWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hpcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRBdU1UZzVWakUwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeWRqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREV6VmpkaE1pQXlJREFnTUNBd0xUSXRNa2czWVRJZ01pQXdJREFnTUMweUlESjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGt1TXpnZ01qQkJNVEV1TmlBeE1TNDJJREFnTUNBd0lESXhJREUwYkMwNExqRTRPQzB6TGpZek9XRXlJRElnTUNBd0lEQXRNUzQyTWpRZ01Fd3pJREUwWVRFeExqWWdNVEV1TmlBd0lEQWdNQ0F5TGpneElEY3VOellpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTWpGakxqWXVOU0F4TGpJZ01TQXlMalVnTVNBeUxqVWdNQ0F5TGpVdE1pQTFMVElnTVM0eklEQWdNUzQ1TGpVZ01pNDFJREZ6TVM0eUlERWdNaTQxSURGak1pNDFJREFnTWk0MUxUSWdOUzB5SURFdU15QXdJREV1T1M0MUlESXVOU0F4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hpcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNoaXA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTAuMTg5VjE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxM1Y3YTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAydjYnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkuMzggMjBBMTEuNiAxMS42IDAgMCAwIDIxIDE0bC04LjE4OC0zLjYzOWEyIDIgMCAwIDAtMS42MjQgMEwzIDE0YTExLjYgMTEuNiAwIDAgMCAyLjgxIDcuNzYnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDIxYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxczEuMiAxIDIuNSAxYzIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMScsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNoaXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hpcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU16Z2dNeTQwTmlBeE5pQXlZVFFnTkNBd0lEQWdNUzA0SURCTU15NDJNaUF6TGpRMllUSWdNaUF3SURBZ01DMHhMak0wSURJdU1qTnNMalU0SURNdU5EZGhNU0F4SURBZ01DQXdJQzQ1T1M0NE5FZzJkakV3WXpBZ01TNHhMamtnTWlBeUlESm9PR0V5SURJZ01DQXdJREFnTWkweVZqRXdhREl1TVRWaE1TQXhJREFnTUNBd0lDNDVPUzB1T0RSc0xqVTRMVE11TkRkaE1pQXlJREFnTUNBd0xURXVNelF0TWk0eU0zb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaGlydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNoaXJ0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwLjM4IDMuNDYgMTYgMmE0IDQgMCAwIDEtOCAwTDMuNjIgMy40NmEyIDIgMCAwIDAtMS4zNCAyLjIzbC41OCAzLjQ3YTEgMSAwIDAgMCAuOTkuODRINnYxMGMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlYxMGgyLjE1YTEgMSAwIDAgMCAuOTktLjg0bC41OC0zLjQ3YTIgMiAwIDAgMC0xLjM0LTIuMjN6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2hpcnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hvcHBpbmctYmFnXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEJoTkNBMElEQWdNQ0F4TFRnZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15NHhNRE1nTmk0d016Um9NVGN1TnprMElpQXZQZ29nSUR4d1lYUm9JR1E5SWswekxqUWdOUzQwTmpkaE1pQXlJREFnTUNBd0xTNDBJREV1TWxZeU1HRXlJRElnTUNBd0lEQWdNaUF5YURFMFlUSWdNaUF3SURBZ01DQXlMVEpXTmk0Mk5qZGhNaUF5SURBZ01DQXdMUzQwTFRFdU1td3RNaTB5TGpZMk4wRXlJRElnTUNBd0lEQWdNVGNnTWtnM1lUSWdNaUF3SURBZ01DMHhMall1T0hvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Nob3BwaW5nLWJhZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNob3BwaW5nQmFnOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEwYTQgNCAwIDAgMS04IDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy4xMDMgNi4wMzRoMTcuNzk0JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuNCA1LjQ2N2EyIDIgMCAwIDAtLjQgMS4yVjIwYTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY2LjY2N2EyIDIgMCAwIDAtLjQtMS4ybC0yLTIuNjY3QTIgMiAwIDAgMCAxNyAySDdhMiAyIDAgMCAwLTEuNi44eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNob3BwaW5nQmFnO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNob3BwaW5nLWJhc2tldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRFdE1TQTVJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPU0F4TVMwMExUY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVEZvTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRNdU5TQXhNU0F4TGpZZ055NDBZVElnTWlBd0lEQWdNQ0F5SURFdU5tZzVMamhoTWlBeUlEQWdNQ0F3SURJdE1TNDJiREV1TnkwM0xqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUXVOU0F4TlM0MWFERTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDFJREV4SURRdE55SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhNU0F4SURraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Nob3BwaW5nLWJhc2tldFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNob3BwaW5nQmFza2V0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE1IDExLTEgOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSAxMS00LTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMWgyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zLjUgMTEgMS42IDcuNGEyIDIgMCAwIDAgMiAxLjZoOS44YTIgMiAwIDAgMCAyLTEuNmwxLjctNy40JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQuNSAxNS41aDE1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUgMTEgNC03JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTEgMSA5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNob3BwaW5nQmFza2V0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNob3BwaW5nLWNhcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJNElpQmplVDBpTWpFaUlISTlJakVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRraUlHTjVQU0l5TVNJZ2NqMGlNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaTR3TlNBeUxqQTFhREpzTWk0Mk5pQXhNaTQwTW1FeUlESWdNQ0F3SURBZ01pQXhMalU0YURrdU56aGhNaUF5SURBZ01DQXdJREV1T1RVdE1TNDFOMnd4TGpZMUxUY3VORE5JTlM0eE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaG9wcGluZy1jYXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hvcHBpbmdDYXJ0OiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnOCcsIGN5OiAnMjEnLCByOiAnMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICcyMScsIHI6ICcxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMi4wNSAyLjA1aDJsMi42NiAxMi40MmEyIDIgMCAwIDAgMiAxLjU4aDkuNzhhMiAyIDAgMCAwIDEuOTUtMS41N2wxLjY1LTcuNDNINS4xMicgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNob3BwaW5nQ2FydDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzaG92ZWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFdU5UWWdOQzQxTm1FeExqVWdNUzQxSURBZ01DQXhJREFnTWk0eE1qSnNMUzQwTnk0ME4yRXpJRE1nTUNBd0lERXROQzR5TVRJdExqQXpJRE1nTXlBd0lEQWdNU0F3TFRRdU1qUXpiQzQwTkMwdU5EUmhNUzQxSURFdU5TQXdJREFnTVNBeUxqRXlNU0F3ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeU1tRXhJREVnTUNBd0lERXRNUzB4ZGkwekxqVTRObUV4SURFZ01DQXdJREVnTGpJNU15MHVOekEzYkRNdU16VTFMVE11TXpVMVlURXVNakExSURFdU1qQTFJREFnTUNBeElERXVOekEwSURCc015NHlPVFlnTXk0eU9UWmhNUzR5TURVZ01TNHlNRFVnTUNBd0lERWdNQ0F4TGpjd05Hd3RNeTR6TlRVZ015NHpOVFZoTVNBeElEQWdNQ0F4TFM0M01EY3VNamt6ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T1NBeE5TQTNMamczT1MwM0xqZzNPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hvdmVsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hvdmVsOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxLjU2IDQuNTZhMS41IDEuNSAwIDAgMSAwIDIuMTIybC0uNDcuNDdhMyAzIDAgMCAxLTQuMjEyLS4wMyAzIDMgMCAwIDEgMC00LjI0M2wuNDQtLjQ0YTEuNSAxLjUgMCAwIDEgMi4xMjEgMHonLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00zIDIyYTEgMSAwIDAgMS0xLTF2LTMuNTg2YTEgMSAwIDAgMSAuMjkzLS43MDdsMy4zNTUtMy4zNTVhMS4yMDUgMS4yMDUgMCAwIDEgMS43MDQgMGwzLjI5NiAzLjI5NmExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC0zLjM1NSAzLjM1NWExIDEgMCAwIDEtLjcwNy4yOTN6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxNSA3Ljg3OS03Ljg3OCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaG92ZWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2hvd2VyLWhlYWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TkNBMElESXVOU0F5TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFekxqVWdOaTQxWVRRdU9UVWdOQzQ1TlNBd0lEQWdNQzAzSURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlEVWdOU0F4TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UZDJMakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE5uWXVNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6SURFemRpNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRCMkxqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNU0F5TUhZdU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJREUwZGk0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVEYyTGpBeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Nob3dlci1oZWFkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hvd2VySGVhZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ200IDQgMi41IDIuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy41IDYuNWE0Ljk1IDQuOTUgMCAwIDAtNyA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDUgNSAxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxN3YuMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTZ2LjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDEzdi4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMHYuMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMjB2LjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE0di4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxMXYuMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2hvd2VySGVhZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzaHJlZGRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4TTFZMFlUSWdNaUF3SURBZ01TQXlMVEpvT0dFeUxqUWdNaTQwSURBZ01DQXhJREV1TnpBMkxqY3dObXd6TGpVNE9DQXpMalU0T0VFeUxqUWdNaTQwSURBZ01DQXhJREl3SURoMk5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNblkxWVRFZ01TQXdJREFnTUNBeElERm9OU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVEFnTWpKMkxUVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREU1ZGkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9DQXlNSFl0TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE0yZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OaUF5TUhZdE15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaHJlZGRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNocmVkZGVyOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNCAxM1Y0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NScgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjJ2LTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTl2LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMjB2LTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxM2gyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDIwdi0zJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNocmVkZGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNocmltcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRKb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUF5TW1NdU5TMHVOU0F4TGpFeUxURWdNaTQxTFRFdE1TNHpPQ0F3TFRJdExqVXRNaTQxTFRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESmhNeTR5T0NBekxqSTRJREFnTUNBeExUTXVNakkzSURFdU56azRiQzAyTGpFM0xTNDFOakZCTWk0ek9EY2dNaTR6T0RjZ01DQXhJREFnTkM0ek9EY2dPRWd4TlM0MVlURWdNU0F3SURBZ01TQXdJREV6SURFZ01TQXdJREFnTUNBd0xUVklNVEpoTnlBM0lEQWdNQ0F4TFRjdE4xWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0E0WVRndU5TQTRMalVnTUNBd0lERWdNQ0E0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE5tTXlJREFnTkM0MUxUUWdOQzAySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hyaW1wXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hyaW1wOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDEyaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAyMmMuNS0uNSAxLjEyLTEgMi41LTEtMS4zOCAwLTItLjUtMi41LTEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQgMmEzLjI4IDMuMjggMCAwIDEtMy4yMjcgMS43OThsLTYuMTctLjU2MUEyLjM4NyAyLjM4NyAwIDEgMCA0LjM4NyA4SDE1LjVhMSAxIDAgMCAxIDAgMTMgMSAxIDAgMCAwIDAtNUgxMmE3IDcgMCAwIDEtNy03VjgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA4YTguNSA4LjUgMCAwIDEgMCA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE2YzIgMCA0LjUtNCA0LTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2hyaW1wO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNocmlua1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFVnTVRVZ05pQTJiUzAyTFRaMk5DNDRiVEF0TkM0NGFEUXVPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4T1M0NFZqRTFiVEFnTUVnMExqSk5PU0F4Tld3dE5pQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0EwTGpKV09XMHdJREJvTkM0NFRURTFJRGxzTmkwMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlEUXVNbFk1YlRBZ01FZzBMakpOT1NBNUlETWdNeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2hyaW5rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hyaW5rOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE1IDE1IDYgNm0tNi02djQuOG0wLTQuOGg0LjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxOS44VjE1bTAgMEg0LjJNOSAxNWwtNiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDQuMlY5bTAgMGg0LjhNMTUgOWw2LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSA0LjJWOW0wIDBINC4yTTkgOSAzIDMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2hyaW5rO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNocnViXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakoyTFRVdU1UY3lZVElnTWlBd0lEQWdNQzB1TlRnMkxURXVOREUwVERrdU5TQXhNeTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkM0MUlERTBMalVnTVRJZ01UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJRGd1T0VFMklEWWdNQ0F3SURFZ01UTXVPQ0F5TUVneE1FRTJMalVnTmk0MUlEQWdNQ0F4SURjZ09HRTFJRFVnTUNBd0lERWdNVEFnTUhvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NocnViXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2hydWI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJ2LTUuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDkuNSAxMy41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0LjUgMTQuNSAxMiAxNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA4LjhBNiA2IDAgMCAxIDEzLjggMjBIMTBBNi41IDYuNSAwIDAgMSA3IDhhNSA1IDAgMCAxIDEwIDB6JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNocnViO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNodWZmbGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRnZ01UUWdOQ0EwTFRRZ05DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UZ2dNaUEwSURRdE5DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREU0YURFdU9UY3pZVFFnTkNBd0lEQWdNQ0F6TGpNdE1TNDNiRFV1TkRVMExUZ3VObUUwSURRZ01DQXdJREVnTXk0ekxURXVOMGd5TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBMmFERXVPVGN5WVRRZ05DQXdJREFnTVNBekxqWWdNaTR5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeE9HZ3ROaTR3TkRGaE5DQTBJREFnTUNBeExUTXVNeTB4TGpoc0xTNHpOVGt0TGpRMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NodWZmbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaHVmZmxlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE4IDE0IDQgNC00IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTggMiA0IDQtNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMThoMS45NzNhNCA0IDAgMCAwIDMuMy0xLjdsNS40NTQtOC42YTQgNCAwIDAgMSAzLjMtMS43SDIyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgNmgxLjk3MmE0IDQgMCAwIDEgMy42IDIuMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOGgtNi4wNDFhNCA0IDAgMCAxLTMuMy0xLjhsLS4zNTktLjQ1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNodWZmbGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2lnbmFsLWhpZ2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1HZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpCMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl3ZGkwNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXlNRlk0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2lnbmFsLWhpZ2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaWduYWxIaWdoOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjBoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjB2LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjB2LTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMjBWOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaWduYWxIaWdoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNpZ21hXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dOMVkxWVRFZ01TQXdJREFnTUMweExURklOaTQxWVM0MUxqVWdNQ0F3SURBdExqUXVPR3cwTGpVZ05tRXlJRElnTUNBd0lERWdNQ0F5TGpSc0xUUXVOU0EyWVM0MUxqVWdNQ0F3SURBZ0xqUXVPRWd4TjJFeElERWdNQ0F3SURBZ01TMHhkaTB5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2lnbWFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaWdtYTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCA3VjVhMSAxIDAgMCAwLTEtMUg2LjVhLjUuNSAwIDAgMC0uNC44bDQuNSA2YTIgMiAwIDAgMSAwIDIuNGwtNC41IDZhLjUuNSAwIDAgMCAuNC44SDE3YTEgMSAwIDAgMCAxLTF2LTInLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaWdtYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzaWduYWwtbG93XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01qQjJMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2lnbmFsLWxvd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNpZ25hbExvdzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yIDIwaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIwdi00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNpZ25hbExvdztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzaWduYWwtbWVkaXVtXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01qQjJMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJd2RpMDRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaWduYWwtbWVkaXVtXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2lnbmFsTWVkaXVtOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjBoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjB2LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjB2LTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2lnbmFsTWVkaXVtO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNpZ25hbC16ZXJvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNR2d1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NpZ25hbC16ZXJvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2lnbmFsWmVybzogSWNvbk5vZGUgPSBbWydwYXRoJywgeyBkOiAnTTIgMjBoLjAxJyB9XV07XG5cbmV4cG9ydCBkZWZhdWx0IFNpZ25hbFplcm87XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2lnbmFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01qQjJMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJd2RpMDRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF5TUZZNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQTBkakUySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2lnbmFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2lnbmFsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjBoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjB2LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjB2LTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMjBWOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA0djE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNpZ25hbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzaWduYXR1cmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ01UY3RNaTR4TlRZdE1TNDROamhCTGpVdU5TQXdJREFnTUNBeE9DQXhOUzQxZGk0MVlURWdNU0F3SURBZ01TMHhJREZvTFRKaE1TQXhJREFnTUNBeExURXRNV013TFRJdU5UUTFMVE11T1RreExUTXVPVGN0T0M0MUxUUmhNU0F4SURBZ01DQXdJREFnTldNMExqRTFNeUF3SURRdU56UTFMVEV4TGpJNU5TQTFMamN3T0MweE15NDFZVEl1TlNBeUxqVWdNQ0F4SURFZ015NHpNU0F6TGpJNE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXlNV2d4T0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NpZ25hdHVyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNpZ25hdHVyZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20yMSAxNy0yLjE1Ni0xLjg2OEEuNS41IDAgMCAwIDE4IDE1LjV2LjVhMSAxIDAgMCAxLTEgMWgtMmExIDEgMCAwIDEtMS0xYzAtMi41NDUtMy45OTEtMy45Ny04LjUtNGExIDEgMCAwIDAgMCA1YzQuMTUzIDAgNC43NDUtMTEuMjk1IDUuNzA4LTEzLjVhMi41IDIuNSAwIDEgMSAzLjMxIDMuMjg0JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAyMWgxOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaWduYXR1cmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2lnbnBvc3QtYmlnXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdPVWcwVERJZ04yd3lMVEpvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ05XZzJiRElnTWkweUlESm9MVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURJeVZqUmhNaUF5SURBZ01TQXhJRFFnTUhZeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNbWc0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2lnbnBvc3QtYmlnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2lnbnBvc3RCaWc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOUg0TDIgN2wyLTJoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA1aDZsMiAyLTIgMmgtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyMlY0YTIgMiAwIDEgMSA0IDB2MTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAyMmg4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNpZ25wb3N0QmlnO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNpZ25wb3N0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE4yT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ00zWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0EyWVRJZ01pQXdJREFnTVNBeExqTTROeTQxTm13eUxqTXdOeUF5TGpJeVlURWdNU0F3SURBZ01TQXdJREV1TkRSc0xUSXVNekEzSURJdU1qSkJNaUF5SURBZ01DQXhJREU0SURFelNEWmhNaUF5SURBZ01DQXhMVEV1TXpnM0xTNDFObXd0TWk0ek1EWXRNaTR5TW1FeElERWdNQ0F3SURFZ01DMHhMalEwYkRJdU16QTJMVEl1TWpKQk1pQXlJREFnTUNBeElEWWdObm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2lnbnBvc3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTaWducG9zdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxM3Y4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2MycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOCA2YTIgMiAwIDAgMSAxLjM4Ny41NmwyLjMwNyAyLjIyYTEgMSAwIDAgMSAwIDEuNDRsLTIuMzA3IDIuMjJBMiAyIDAgMCAxIDE4IDEzSDZhMiAyIDAgMCAxLTEuMzg3LS41NmwtMi4zMDYtMi4yMmExIDEgMCAwIDEgMC0xLjQ0bDIuMzA2LTIuMjJBMiAyIDAgMCAxIDYgNnonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTaWducG9zdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzaXJlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUF4T0hZdE5tRTFJRFVnTUNBeElERWdNVEFnTUhZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlESXhZVEVnTVNBd0lEQWdNQ0F4SURGb01USmhNU0F4SURBZ01DQXdJREV0TVhZdE1XRXlJRElnTUNBd0lEQXRNaTB5U0RkaE1pQXlJREFnTUNBd0xUSWdNbm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFeWFERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRMalVnTkM0MUlERTRJRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRKb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbll4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAwTGpreU9TQTBMamt5T1M0M01EY3VOekEzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE1uWTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zaXJlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNpcmVuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMTh2LTZhNSA1IDAgMSAxIDEwIDB2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDIxYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOC41IDQuNSAxOCA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNC45MjkgNC45MjkuNzA3LjcwNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMnY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNpcmVuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNraXAtYmFja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGN1T1RjeElEUXVNamcxUVRJZ01pQXdJREFnTVNBeU1TQTJkakV5WVRJZ01pQXdJREFnTVMwekxqQXlPU0F4TGpjeE5Xd3RPUzQ1T1RjdE5TNDVPVGhoTWlBeUlEQWdNQ0F4TFM0d01ETXRNeTQwTXpKNklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklESXdWalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2tpcC1iYWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2tpcEJhY2s6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcuOTcxIDQuMjg1QTIgMiAwIDAgMSAyMSA2djEyYTIgMiAwIDAgMS0zLjAyOSAxLjcxNWwtOS45OTctNS45OThhMiAyIDAgMCAxLS4wMDMtMy40MzJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAyMFY0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNraXBCYWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNrdWxsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1USXVOU0F4TnkwdU5TMHhMUzQxSURGb01Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJREl5WVRFZ01TQXdJREFnTUNBeExURjJMVEZoTWlBeUlEQWdNQ0F3SURFdU5UWXRNeTR5TlNBNElEZ2dNQ0F4SURBdE1URXVNVElnTUVFeUlESWdNQ0F3SURBZ09DQXlNSFl4WVRFZ01TQXdJREFnTUNBeElERjZJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUxSWlCamVUMGlNVElpSUhJOUlqRWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlPU0lnWTNrOUlqRXlJaUJ5UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NrdWxsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2t1bGw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTIuNSAxNy0uNS0xLS41IDFoMXonIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUgMjJhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAgMS41Ni0zLjI1IDggOCAwIDEgMC0xMS4xMiAwQTIgMiAwIDAgMCA4IDIwdjFhMSAxIDAgMCAwIDEgMXonLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE1JywgY3k6ICcxMicsIHI6ICcxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnMTInLCByOiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTa3VsbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBza2lwLWZvcndhcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ05IWXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OaTR3TWprZ05DNHlPRFZCTWlBeUlEQWdNQ0F3SURNZ05uWXhNbUV5SURJZ01DQXdJREFnTXk0d01qa2dNUzQzTVRWc09TNDVPVGN0TlM0NU9UaGhNaUF5SURBZ01DQXdJQzR3TURNdE15NDBNeko2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2tpcC1mb3J3YXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU2tpcEZvcndhcmQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNHYxNicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTYuMDI5IDQuMjg1QTIgMiAwIDAgMCAzIDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeicgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNraXBGb3J3YXJkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNsYWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNeUlnYUdWcFoyaDBQU0k0SWlCNFBTSXhNeUlnZVQwaU1pSWdjbmc5SWpFdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dPQzQxVmpFd2FERXVOVUV4TGpVZ01TNDFJREFnTVNBd0lERTVJRGd1TlNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU15SWdhR1ZwWjJoMFBTSTRJaUI0UFNJNElpQjVQU0l4TkNJZ2NuZzlJakV1TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE5TNDFWakUwU0RNdU5VRXhMalVnTVM0MUlEQWdNU0F3SURVZ01UVXVOU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJeklpQjRQU0l4TkNJZ2VUMGlNVE1pSUhKNFBTSXhMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxTGpVZ01UbElNVFIyTVM0MVlURXVOU0F4TGpVZ01DQXhJREFnTVM0MUxURXVOU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJeklpQjRQU0l5SWlCNVBTSTRJaUJ5ZUQwaU1TNDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRMalVnTlVneE1GWXpMalZCTVM0MUlERXVOU0F3SURFZ01DQTRMalVnTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NsYWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICogQGRlcHJlY2F0ZWQgQnJhbmQgaWNvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIGFyZSBkdWUgdG8gYmUgcmVtb3ZlZCwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2lzc3Vlcy82NzAuIFdlIHJlY29tbWVuZCB1c2luZyBodHRwczovL3NpbXBsZWljb25zLm9yZy8/cT1zbGFjayBpbnN0ZWFkLiBUaGlzIGljb24gd2lsbCBiZSByZW1vdmVkIGluIHYxLjBcbiAqL1xuY29uc3QgU2xhY2s6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMycsIGhlaWdodDogJzgnLCB4OiAnMTMnLCB5OiAnMicsIHJ4OiAnMS41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDguNVYxMGgxLjVBMS41IDEuNSAwIDEgMCAxOSA4LjUnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMycsIGhlaWdodDogJzgnLCB4OiAnOCcsIHk6ICcxNCcsIHJ4OiAnMS41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTUuNVYxNEgzLjVBMS41IDEuNSAwIDEgMCA1IDE1LjUnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzMnLCB4OiAnMTQnLCB5OiAnMTMnLCByeDogJzEuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNS41IDE5SDE0djEuNWExLjUgMS41IDAgMSAwIDEuNS0xLjUnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzMnLCB4OiAnMicsIHk6ICc4Jywgcng6ICcxLjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC41IDVIMTBWMy41QTEuNSAxLjUgMCAxIDAgOC41IDUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2xhY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2xhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01pQXlJREl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2xhc2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTbGFzaDogSWNvbk5vZGUgPSBbWydwYXRoJywgeyBkOiAnTTIyIDIgMiAyMicgfV1dO1xuXG5leHBvcnQgZGVmYXVsdCBTbGFzaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzbGljZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTVRZdU5UZzJWakU1WVRFZ01TQXdJREFnTVMweElERklNa3d4T0M0ek55QXpMall6WVRFZ01TQXdJREVnTVNBeklETnNMVGt1TmpZeklEa3VOall6WVRFZ01TQXdJREFnTVMweExqUXhOQ0F3VERnZ01UUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zbGljZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNsaWNlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExIDE2LjU4NlYxOWExIDEgMCAwIDEtMSAxSDJMMTguMzcgMy42M2ExIDEgMCAxIDEgMyAzbC05LjY2MyA5LjY2M2ExIDEgMCAwIDEtMS40MTQgMEw4IDE0JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU2xpY2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc2xpZGVycy1ob3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdOVWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE9VZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F6ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTNkalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFeWFDMDVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4T1dndE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdOV2d0TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1IWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV5U0RNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NsaWRlcnMtaG9yaXpvbnRhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNsaWRlcnNIb3Jpem9udGFsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDVIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOUgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDN2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxN3Y0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyaC05JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE5aC01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDVoLTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMHY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJIMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTbGlkZXJzSG9yaXpvbnRhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzbGlkZXJzLXZlcnRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdPR2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeU1YWXRPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnT0ZZeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhObWcwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBeE1sWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0F5TVhZdE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhOR2cwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURFd1ZqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNakYyTFRjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NsaWRlcnMtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTbGlkZXJzVmVydGljYWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgOGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIxdi05JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDhWMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNmg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDEyVjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMjF2LTUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNGg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTBWMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDIxdi03JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNsaWRlcnNWZXJ0aWNhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzbWFydHBob25lLWNoYXJnaW5nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVFFpSUdobGFXZG9kRDBpTWpBaUlIZzlJalVpSUhrOUlqSWlJSEo0UFNJeUlpQnllVDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU5qWTNJRGdnTVRBZ01USm9OR3d0TWk0Mk5qY2dOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc21hcnRwaG9uZS1jaGFyZ2luZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNtYXJ0cGhvbmVDaGFyZ2luZzogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNCcsIGhlaWdodDogJzIwJywgeDogJzUnLCB5OiAnMicsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMi42NjcgOCAxMCAxMmg0bC0yLjY2NyA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNtYXJ0cGhvbmVDaGFyZ2luZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzbWFydHBob25lLW5mY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJeE1pSWdlRDBpTWlJZ2VUMGlOaUlnY25nOUlqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXpJRGd1TXpKaE55NDBNeUEzTGpReklEQWdNQ0F4SURBZ055NHpOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFl1TkRZZ05pNHlNV0V4TVM0M05pQXhNUzQzTmlBd0lEQWdNU0F3SURFeExqVTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPUzQ1TVNBMExqRmhNVFV1T1RFZ01UVXVPVEVnTUNBd0lERWdMakF4SURFMUxqZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zbWFydHBob25lLW5mY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNtYXJ0cGhvbmVOZmM6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzEyJywgeDogJzInLCB5OiAnNicsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyA4LjMyYTcuNDMgNy40MyAwIDAgMSAwIDcuMzYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuNDYgNi4yMWExMS43NiAxMS43NiAwIDAgMSAwIDExLjU4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5LjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTbWFydHBob25lTmZjO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNtYXJ0cGhvbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UUWlJR2hsYVdkb2REMGlNakFpSUhnOUlqVWlJSGs5SWpJaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRob0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zbWFydHBob25lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU21hcnRwaG9uZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxNCcsIGhlaWdodDogJzIwJywgeDogJzUnLCB5OiAnMicsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxOGguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU21hcnRwaG9uZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzbWlsZS1wbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVEYyTVdFeE1DQXhNQ0F3SURFZ01TMDVMVEV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMGN6RXVOU0F5SURRZ01pQTBMVElnTkMweUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJNUlpQjRNajBpT1M0d01TSWdlVEU5SWpraUlIa3lQU0k1SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TlNJZ2VESTlJakUxTGpBeElpQjVNVDBpT1NJZ2VUSTlJamtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURWb05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNblkySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc21pbGUtcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNtaWxlUGx1czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMXYxYTEwIDEwIDAgMSAxLTktMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc5JywgeDI6ICc5LjAxJywgeTE6ICc5JywgeTI6ICc5JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE1JywgeDI6ICcxNS4wMScsIHkxOiAnOScsIHkyOiAnOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA1aDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgMnY2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNtaWxlUGx1cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzbWlsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TkhNeExqVWdNaUEwSURJZ05DMHlJRFF0TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpT1NJZ2VESTlJamt1TURFaUlIa3hQU0k1SWlCNU1qMGlPU0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNVFVpSUhneVBTSXhOUzR3TVNJZ2VURTlJamtpSUhreVBTSTVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zbWlsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNtaWxlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTRzMS41IDIgNCAyIDQtMiA0LTInIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOScsIHgyOiAnOS4wMScsIHkxOiAnOScsIHkyOiAnOScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNScsIHgyOiAnMTUuMDEnLCB5MTogJzknLCB5MjogJzknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU21pbGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc25haWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE0yRTJJRFlnTUNBeElEQWdNVElnTUNBMElEUWdNQ0F4SURBdE9DQXdJRElnTWlBd0lEQWdNQ0EwSURBaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UQWlJR041UFNJeE15SWdjajBpT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1XZ3hNbU0wTGpRZ01DQTRMVE11TmlBNExUaFdOMkV5SURJZ01DQXhJREF0TkNBd2RqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJRE1nTVRrdU1TQTFMaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURNZ01qQXVPU0ExTGpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NuYWlsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU25haWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxM2E2IDYgMCAxIDAgMTIgMCA0IDQgMCAxIDAtOCAwIDIgMiAwIDAgMCA0IDAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnMTMnLCByOiAnOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIxaDEyYzQuNCAwIDgtMy42IDgtOFY3YTIgMiAwIDEgMC00IDB2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAzIDE5LjEgNS4yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDMgMjAuOSA1LjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU25haWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc25vd2ZsYWtlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UQWdNakF0TVM0eU5TMHlMalZNTmlBeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdOQ0E0TGpjMUlEWXVOU0EySURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMElESXdJREV1TWpVdE1pNDFUREU0SURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQTBJREV1TWpVZ01pNDFUREU0SURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0lESXhMVE10Tm1ndE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNeTB6SURZZ01TNDFJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRKb05pNDFUREV3SURraUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJd0lERXdMVEV1TlNBeUlERXVOU0F5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeE1tZ3ROaTQxVERFMElERTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDBJREV3SURFdU5TQXlURFFnTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRjZ01qRWdNeTAyTFRFdU5TMHpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDNJRE1nTXlBMmFEUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zbm93Zmxha2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTbm93Zmxha2U6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgMjAtMS4yNS0yLjVMNiAxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA0IDguNzUgNi41IDYgNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCAyMCAxLjI1LTIuNUwxOCAxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNCA0IDEuMjUgMi41TDE4IDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMjEtMy02aC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDMtMyA2IDEuNSAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoNi41TDEwIDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMTAtMS41IDIgMS41IDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTJoLTYuNUwxNCAxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200IDEwIDEuNSAyTDQgMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyAyMSAzLTYtMS41LTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNyAzIDMgNmg0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNub3dmbGFrZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzb2FwLWRpc3BlbnNlci1kcm9wbGV0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVOU0F5ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESklOMkV5SURJZ01DQXdJREF0TWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TNHlPU0F4TkM0M05rRTJMalkzSURZdU5qY2dNQ0F3SURFZ01UY2dNVEZoTmk0MklEWXVOaUF3SURBZ01TMHlMakk1SURNdU56WmpMVEV1TVRVdU9USXRNUzQzTVNBeUxqQTBMVEV1TnpFZ015NHhPU0F3SURJdU1qSWdNUzQ0SURRdU1EVWdOQ0EwTGpBMWN6UXRNUzQ0TXlBMExUUXVNRFZqTUMweExqRTJMUzQxTnkweUxqSTJMVEV1TnpFdE15NHhPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PUzQyTURjZ01qRklObUV5SURJZ01DQXdJREV0TWkweWRpMDNZVElnTWlBd0lEQWdNU0F5TFRKb04xWTNZVEVnTVNBd0lEQWdNQzB4TFRGSU9XRXhJREVnTUNBd0lEQXRNU0F4ZGpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NvYXAtZGlzcGVuc2VyLWRyb3BsZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTb2FwRGlzcGVuc2VyRHJvcGxldDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC41IDJ2NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAySDdhMiAyIDAgMCAwLTIgMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xOS4yOSAxNC43NkE2LjY3IDYuNjcgMCAwIDEgMTcgMTFhNi42IDYuNiAwIDAgMS0yLjI5IDMuNzZjLTEuMTUuOTItMS43MSAyLjA0LTEuNzEgMy4xOSAwIDIuMjIgMS44IDQuMDUgNCA0LjA1czQtMS44MyA0LTQuMDVjMC0xLjE2LS41Ny0yLjI2LTEuNzEtMy4xOScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkuNjA3IDIxSDZhMiAyIDAgMCAxLTItMnYtN2EyIDIgMCAwIDEgMi0yaDdWN2ExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAwLTEgMXYzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNvYXBEaXNwZW5zZXJEcm9wbGV0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNvZmFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ09WWTJZVElnTWlBd0lEQWdNQzB5TFRKSU5tRXlJRElnTUNBd0lEQXRNaUF5ZGpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UWmhNaUF5SURBZ01DQXdJRElnTW1neE5tRXlJRElnTUNBd0lEQWdNaTB5ZGkwMVlUSWdNaUF3SURBZ01DMDBJREIyTVM0MVlTNDFMalVnTUNBd0lERXRMalV1TldndE1URmhMalV1TlNBd0lEQWdNUzB1TlMwdU5WWXhNV0V5SURJZ01DQXdJREF0TkNBd2VpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhPSFl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE9IWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEwZGpraUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NvZmFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTb2ZhOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIwIDlWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnYzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgMTZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTh2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxOHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDR2OScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTb2ZhO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNvbGFyLXBhbmVsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkM0eU9DQXhOQzAwTGpVMklEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJREl5TFRFdU5UVTRMVFJJTkM0MU5UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEIyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0eU5EVWdNVFV1TURSQk1pQXlJREFnTUNBeElEZ2dNVFJvTVRKaE1TQXhJREFnTUNBeElDNDROalFnTVM0MU1EVnNMVE11TVRFZ05TNDBOVGRCTWlBeUlEQWdNQ0F4SURFMklESXlTRFJoTVNBeElEQWdNQ0F4TFM0NE5qTXRNUzQxTURaNklpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lESmhOQ0EwSURBZ01DQXhMVFFnTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0M0Mk5pQTNMalkySURFdU5ERWdNUzQwTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NvbGFyLXBhbmVsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU29sYXJQYW5lbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAyaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQuMjggMTQtNC41NiA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDIyLTEuNTU4LTRINC41NTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMHYyJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYuMjQ1IDE1LjA0QTIgMiAwIDAgMSA4IDE0aDEyYTEgMSAwIDAgMSAuODY0IDEuNTA1bC0zLjExIDUuNDU3QTIgMiAwIDAgMSAxNiAyMkg0YTEgMSAwIDAgMS0uODYzLTEuNTA2eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMmE0IDQgMCAwIDEtNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTguNjYgNy42NiAxLjQxIDEuNDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU29sYXJQYW5lbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzb3VwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakZoT1NBNUlEQWdNQ0F3SURrdE9VZ3pZVGtnT1NBd0lEQWdNQ0E1SURsYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lESXhhREV3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1M0MUlERXlJREl5SURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMkxqSTFJRE5qTGpJM0xqRXVPQzQxTXk0M05TQXhMak0yTFM0d05pNDRNeTB1T1RNZ01TNHlMVEVnTWk0d01pMHVNRFV1TnpndU16UWdNUzR5TkM0M015QXhMall5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVM0eU5TQXpZeTR5Tnk0eExqZ3VOVE11TnpRZ01TNHpOaTB1TURVdU9ETXRMamt6SURFdU1pMHVPVGdnTWk0d01pMHVNRFl1TnpndU16TWdNUzR5TkM0M01pQXhMall5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAyTGpJMUlETmpMakkzTGpFdU9DNDFNeTQzTlNBeExqTTJMUzR3Tmk0NE15MHVPVE1nTVM0eUxURWdNaTR3TWkwdU1EVXVOemd1TXpRZ01TNHlOQzQzTkNBeExqWXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zb3VwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU291cDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMWE5IDkgMCAwIDAgOS05SDNhOSA5IDAgMCAwIDkgOVonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMWgxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOS41IDEyIDIyIDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuMjUgM2MuMjcuMS44LjUzLjc1IDEuMzYtLjA2LjgzLS45MyAxLjItMSAyLjAyLS4wNS43OC4zNCAxLjI0LjczIDEuNjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuMjUgM2MuMjcuMS44LjUzLjc0IDEuMzYtLjA1LjgzLS45MyAxLjItLjk4IDIuMDItLjA2Ljc4LjMzIDEuMjQuNzIgMS42MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjI1IDNjLjI3LjEuOC41My43NSAxLjM2LS4wNi44My0uOTMgMS4yLTEgMi4wMi0uMDUuNzguMzQgMS4yNC43NCAxLjYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNvdXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3BhY2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01UZDJNV013SUM0MUxTNDFJREV0TVNBeFNETmpMUzQxSURBdE1TMHVOUzB4TFRGMkxURWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcGFjZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNwYWNlOiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdNMjIgMTd2MWMwIC41LS41IDEtMSAxSDNjLS41IDAtMS0uNS0xLTF2LTEnIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgU3BhY2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3BhZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UaDJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TkM0ME9UbGhOUzQxSURVdU5TQXdJREFnTUNBNUxqVTVNU0F6TGpZM05TNDJMallnTUNBd0lERWdMamd4T0M0d01ERkJOUzQxSURVdU5TQXdJREFnTUNBeU1pQXhOQzQxWXpBdE1pNHlPUzB4TGpVdE5DMHpMVFV1Tld3dE5TNDBPVEl0TlM0ek1USmhNaUF5SURBZ01DQXdMVE10TGpBeVREVWdPQzQ1T1RsakxURXVOU0F4TGpVdE15QXpMakl0TXlBMUxqVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcGFkZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNwYWRlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4djQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMiAxNC40OTlhNS41IDUuNSAwIDAgMCA5LjU5MSAzLjY3NS42LjYgMCAwIDEgLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyMiAxNC41YzAtMi4yOS0xLjUtNC0zLTUuNWwtNS40OTItNS4zMTJhMiAyIDAgMCAwLTMtLjAyTDUgOC45OTljLTEuNSAxLjUtMyAzLjItMyA1LjUnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcGFkZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcGFya2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URXVNREUzSURJdU9ERTBZVEVnTVNBd0lEQWdNU0F4TGprMk5pQXdiREV1TURVeElEVXVOVFU0WVRJZ01pQXdJREFnTUNBeExqVTVOQ0F4TGpVNU5HdzFMalUxT0NBeExqQTFNV0V4SURFZ01DQXdJREVnTUNBeExqazJObXd0TlM0MU5UZ2dNUzR3TlRGaE1pQXlJREFnTUNBd0xURXVOVGswSURFdU5UazBiQzB4TGpBMU1TQTFMalUxT0dFeElERWdNQ0F3SURFdE1TNDVOallnTUd3dE1TNHdOVEV0TlM0MU5UaGhNaUF5SURBZ01DQXdMVEV1TlRrMExURXVOVGswYkMwMUxqVTFPQzB4TGpBMU1XRXhJREVnTUNBd0lERWdNQzB4TGprMk5tdzFMalUxT0MweExqQTFNV0V5SURJZ01DQXdJREFnTVM0MU9UUXRNUzQxT1RSNklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NwYXJrbGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcGFya2xlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExLjAxNyAyLjgxNGExIDEgMCAwIDEgMS45NjYgMGwxLjA1MSA1LjU1OGEyIDIgMCAwIDAgMS41OTQgMS41OTRsNS41NTggMS4wNTFhMSAxIDAgMCAxIDAgMS45NjZsLTUuNTU4IDEuMDUxYTIgMiAwIDAgMC0xLjU5NCAxLjU5NGwtMS4wNTEgNS41NThhMSAxIDAgMCAxLTEuOTY2IDBsLTEuMDUxLTUuNTU4YTIgMiAwIDAgMC0xLjU5NC0xLjU5NGwtNS41NTgtMS4wNTFhMSAxIDAgMCAxIDAtMS45NjZsNS41NTgtMS4wNTFhMiAyIDAgMCAwIDEuNTk0LTEuNTk0eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNwYXJrbGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3BhcmtsZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU1ERTNJREl1T0RFMFlURWdNU0F3SURBZ01TQXhMamsyTmlBd2JERXVNRFV4SURVdU5UVTRZVElnTWlBd0lEQWdNQ0F4TGpVNU5DQXhMalU1Tkd3MUxqVTFPQ0F4TGpBMU1XRXhJREVnTUNBd0lERWdNQ0F4TGprMk5td3ROUzQxTlRnZ01TNHdOVEZoTWlBeUlEQWdNQ0F3TFRFdU5UazBJREV1TlRrMGJDMHhMakExTVNBMUxqVTFPR0V4SURFZ01DQXdJREV0TVM0NU5qWWdNR3d0TVM0d05URXROUzQxTlRoaE1pQXlJREFnTUNBd0xURXVOVGswTFRFdU5UazBiQzAxTGpVMU9DMHhMakExTVdFeElERWdNQ0F3SURFZ01DMHhMamsyTm13MUxqVTFPQzB4TGpBMU1XRXlJRElnTUNBd0lEQWdNUzQxT1RRdE1TNDFPVFI2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeWRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJRFJvTFRRaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5DSWdZM2s5SWpJd0lpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3BhcmtsZXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcGFya2xlczogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgNGgtNCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzQnLCBjeTogJzIwJywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3BhcmtsZXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3BlYWtlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRZaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpRaUlIazlJaklpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEyYUM0d01TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRTBJaUJ5UFNJMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOR2d1TURFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NwZWFrZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcGVha2VyOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMjAnLCB4OiAnNCcsIHk6ICcyJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDZoLjAxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE0JywgcjogJzQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTRoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNwZWFrZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3BlZWNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DNDRJREl3ZGkwMExqRnNNUzQ1TGpKaE1pNHpJREl1TXlBd0lEQWdNQ0F5TGpFMk5DMHlMakZXT0M0elFUVXVNemNnTlM0ek55QXdJREFnTUNBeUlEZ3VNalZqTUNBeUxqZ3VOalUySURNdU1EVTBJREVnTkM0MU5XRTFMamMzSURVdU56Y2dNQ0F3SURFZ0xqQXlPU0F5TGpjMU9Fd3lJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1M0NElERTNMamhoTnk0MUlEY3VOU0F3SURBZ01DQXVNREF6TFRFd0xqWXdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTVRWaE15NDFJRE11TlNBd0lEQWdNQzB1TURJMUxUUXVPVGMxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3BlZWNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3BlZWNoOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTguOCAyMHYtNC4xbDEuOS4yYTIuMyAyLjMgMCAwIDAgMi4xNjQtMi4xVjguM0E1LjM3IDUuMzcgMCAwIDAgMiA4LjI1YzAgMi44LjY1NiAzLjA1NCAxIDQuNTVhNS43NyA1Ljc3IDAgMCAxIC4wMjkgMi43NThMMiAyMCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE5LjggMTcuOGE3LjUgNy41IDAgMCAwIC4wMDMtMTAuNjAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDE1YTMuNSAzLjUgMCAwIDAtLjAyNS00Ljk3NScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcGVlY2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3BlbGwtY2hlY2stMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROaUF4TmlBMkxURXlJRFlnTVRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01USm9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0F5TVdNeExqRWdNQ0F4TGpFdE1TQXlMak10TVhNeExqRWdNU0F5TGpNZ01XTXhMakVnTUNBeExqRXRNU0F5TGpNdE1TQXhMakVnTUNBeExqRWdNU0F5TGpNZ01TQXhMakVnTUNBeExqRXRNU0F5TGpNdE1TQXhMakVnTUNBeExqRWdNU0F5TGpNZ01TQXhMakVnTUNBeExqRXRNU0F5TGpNdE1TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcGVsbC1jaGVjay0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3BlbGxDaGVjazI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNiAxNiA2LTEyIDYgMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxMmg4JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMjFjMS4xIDAgMS4xLTEgMi4zLTFzMS4xIDEgMi4zIDFjMS4xIDAgMS4xLTEgMi4zLTEgMS4xIDAgMS4xIDEgMi4zIDEgMS4xIDAgMS4xLTEgMi4zLTEgMS4xIDAgMS4xIDEgMi4zIDEgMS4xIDAgMS4xLTEgMi4zLTEnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcGVsbENoZWNrMjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcGVsbC1jaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnROaUF4TmlBMkxURXlJRFlnTVRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01USm9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFlnTWpBZ01pQXlJRFF0TkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NwZWxsLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3BlbGxDaGVjazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ202IDE2IDYtMTIgNiAxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMjAgMiAyIDQtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcGVsbENoZWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNwbGluZS1wb2ludGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USXVNRE0wSURFeUxqWTRNV0V1TkRrNExqUTVPQ0F3SURBZ01TQXVOalEzTFM0Mk5EZHNPU0F6TGpWaExqVXVOU0F3SURBZ01TMHVNRE16TGprME0yd3RNeTQwTkRRZ01TNHdOamhoTVNBeElEQWdNQ0F3TFM0Mk5pNDJObXd0TVM0d05qY2dNeTQwTkROaExqVXVOU0F3SURBZ01TMHVPVFF6TGpBek0zb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNVGRCTVRJZ01USWdNQ0F3SURFZ01UY2dOU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4T1NJZ1kzazlJalVpSUhJOUlqSWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOU0lnWTNrOUlqRTVJaUJ5UFNJeUlpQXZQZ284TDNOMlp6ND0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NwbGluZS1wb2ludGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3BsaW5lUG9pbnRlcjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMi4wMzQgMTIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQzbC0zLjQ0NCAxLjA2OGExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NyAzLjQ0M2EuNS41IDAgMCAxLS45NDMuMDMzeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTdBMTIgMTIgMCAwIDEgMTcgNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICc1JywgcjogJzInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICcxOScsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNwbGluZVBvaW50ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3BsaW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhPU0lnWTNrOUlqVWlJSEk5SWpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU5TSWdZM2s5SWpFNUlpQnlQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURFM1FURXlJREV5SURBZ01DQXhJREUzSURVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NwbGluZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNwbGluZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzE5JywgY3k6ICc1JywgcjogJzInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc1JywgY3k6ICcxOScsIHI6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTdBMTIgMTIgMCAwIDEgMTcgNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcGxpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3BsaXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ00yZzFkalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTTBnemRqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl5ZGkwNExqTmhOQ0EwSURBZ01DQXdMVEV1TVRjeUxUSXVPRGN5VERNZ015SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdPU0EyTFRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NwbGl0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3BsaXQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM2g1djUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAzSDN2NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnYtOC4zYTQgNCAwIDAgMC0xLjE3Mi0yLjg3MkwzIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgOSA2LTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3BsaXQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3Bvb2xcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UTXVORFFnTkM0ME5ESWdNVGN1TURneVFUSWdNaUF3SURBZ01DQTBMams0TWlBeU1VZ3hPV0V5SURJZ01DQXdJREFnTGpVMU9DMHpMamt5TVd3dE1TNHhNVFV0TGpNeVFUSWdNaUF3SURBZ01TQXhOeUF4TkM0NE16ZFdOeTQyTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TnlBeE1DNDFOaUF4TWk0MU5UZ3RNeTQyTkRKQk1pQXlJREFnTUNBd0lERTVMakF4T0NBelNEVmhNaUF5SURBZ01DQXdMUzQxTlRnZ015NDVNakZzTVM0eE1UVXVNekpCTWlBeUlEQWdNQ0F4SURjZ09TNHhOak4yTnk0eE56Z2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcG9vbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNwb29sOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3IDEzLjQ0IDQuNDQyIDE3LjA4MkEyIDIgMCAwIDAgNC45ODIgMjFIMTlhMiAyIDAgMCAwIC41NTgtMy45MjFsLTEuMTE1LS4zMkEyIDIgMCAwIDEgMTcgMTQuODM3VjcuNjYnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ203IDEwLjU2IDEyLjU1OC0zLjY0MkEyIDIgMCAwIDAgMTkuMDE4IDNINWEyIDIgMCAwIDAtLjU1OCAzLjkyMWwxLjExNS4zMkEyIDIgMCAwIDEgNyA5LjE2M3Y3LjE3OCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNwb29sO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNwb3RsaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFV1TWprMUlERTVMalUyTWlBeE5pQXlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGNnTVRZZ015NDNOVGdnTWk0d09UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTVJREV5TGpVZ015NHdNall0TGpVNU9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55NDJNU0EyTGpOaE15QXpJREFnTUNBd0xUTXVPVElnTVM0emJDMHhMak00SURJdU56bGhNeUF6SURBZ01DQXdJREV1TXlBekxqa3hiRFl1T0RrZ015NDFPVGRoTVNBeElEQWdNQ0F3SURFdU16UXlMUzQwTkRkc015NHhNRFl0Tmk0eU1URmhNU0F4SURBZ01DQXdMUzQwTkRjdE1TNHpOREY2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURsV01pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcG90bGlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcG90bGlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUuMjk1IDE5LjU2MiAxNiAyMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxNiAzLjc1OCAyLjA5OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSAxMi41IDMuMDI2LS41OTgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNy42MSA2LjNhMyAzIDAgMCAwLTMuOTIgMS4zbC0xLjM4IDIuNzlhMyAzIDAgMCAwIDEuMyAzLjkxbDYuODkgMy41OTdhMSAxIDAgMCAwIDEuMzQyLS40NDdsMy4xMDYtNi4yMTFhMSAxIDAgMCAwLS40NDctMS4zNDF6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA5VjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3BvdGxpZ2h0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNwcmF5LWNhblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF6YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QTFhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ04yZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTjJndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dPV2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01URm9MakF4SWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJMElpQm9aV2xuYUhROUlqUWlJSGc5SWpFMUlpQjVQU0kxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T1NBNUlESWdNbll4TUdNd0lDNDJMUzQwSURFdE1TQXhhQzAyWXkwdU5pQXdMVEV0TGpRdE1TMHhWakV4YkRJdE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UTWdNVFFnT0MweUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE15QXhPU0E0TFRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NwcmF5LWNhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNwcmF5Q2FuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgM2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA1aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSA3aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDdoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgOWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMWguMDEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNCcsIGhlaWdodDogJzQnLCB4OiAnMTUnLCB5OiAnNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSA5IDIgMnYxMGMwIC42LS40IDEtMSAxaC02Yy0uNiAwLTEtLjQtMS0xVjExbDItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMyAxNCA4LTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMgMTkgOC0yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNwcmF5Q2FuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNwcm91dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnT1M0MU16WldOMkUwSURRZ01DQXdJREVnTkMwMGFERXVOV0V1TlM0MUlEQWdNQ0F4SUM0MUxqVldOV0UwSURRZ01DQXdJREV0TkNBMElEUWdOQ0F3SURBZ01DMDBJRFJqTUNBeUlERWdNeUF4SURWaE5TQTFJREFnTUNBeExURWdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OQ0E1WVRVZ05TQXdJREFnTVNBNElEUWdOU0ExSURBZ01DQXhMVGd0TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeU1XZ3hOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3Byb3V0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3Byb3V0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE0IDkuNTM2VjdhNCA0IDAgMCAxIDQtNGgxLjVhLjUuNSAwIDAgMSAuNS41VjVhNCA0IDAgMCAxLTQgNCA0IDQgMCAwIDAtNCA0YzAgMiAxIDMgMSA1YTUgNSAwIDAgMS0xIDMnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ000IDlhNSA1IDAgMCAxIDggNCA1IDUgMCAwIDEtOC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMjFoMTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3Byb3V0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1hY3Rpdml0eVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF4TW1ndE1td3RNaUExTFRJdE1UQXRNaUExU0RjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1hY3Rpdml0eVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUFjdGl2aXR5OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDEyaC0ybC0yIDUtMi0xMC0yIDVINycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBY3Rpdml0eTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtYXJyb3ctZG93bi1sZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5pQTRMVGdnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UWklPRlk0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWFycm93LWRvd24tbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUFycm93RG93bkxlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgOC04IDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZIOFY4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUFycm93RG93bkxlZnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLWFycm93LWRvd24tcmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA0SURnZ09DQTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUE0ZGpoSU9DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtYXJyb3ctZG93bi1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUFycm93RG93blJpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggOCA4IDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOHY4SDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlQXJyb3dEb3duUmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLWFycm93LWRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBNGRqZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUZ2dNVElnTkNBMElEUXROQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWFycm93LWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVBcnJvd0Rvd246IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTIgNCA0IDQtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBcnJvd0Rvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLWFycm93LWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TWlBNExUUWdOQ0EwSURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERXlTRGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWFycm93LWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVBcnJvd0xlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgOC00IDQgNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEySDgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlQXJyb3dMZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1hcnJvdy1vdXQtZG93bi1sZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNakZvTm1FeUlESWdNQ0F3SURBZ01pMHlWalZoTWlBeUlEQWdNQ0F3TFRJdE1rZzFZVElnTWlBd0lEQWdNQzB5SURKMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE15QXlNU0E1TFRraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01qRklNM1l0TmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtZG93bi1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlQXJyb3dPdXREb3duTGVmdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyAyMWg2YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgMjEgOS05JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMjFIM3YtNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBcnJvd091dERvd25MZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1hcnJvdy1vdXQtZG93bi1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRGV05XRXlJRElnTUNBd0lEQXRNaTB5U0RWaE1pQXlJREFnTUNBd0xUSWdNbll4TkdFeUlESWdNQ0F3SURBZ01pQXlhRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl4SURJeExUa3RPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRWMk5tZ3ROaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWFycm93LW91dC1kb3duLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMjEtOS05JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1djZoLTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLWFycm93LW91dC11cC1sZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNMmcyWVRJZ01pQXdJREFnTVNBeUlESjJNVFJoTWlBeUlEQWdNQ0F4TFRJZ01rZzFZVElnTWlBd0lEQWdNUzB5TFRKMkxUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUTWdNeUE1SURraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ09WWXphRFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWFycm93LW91dC11cC1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlQXJyb3dPdXRVcExlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMyAzIDkgOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDlWM2g2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUFycm93T3V0VXBMZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1hcnJvdy1vdXQtdXAtcmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UTjJObUV5SURJZ01DQXdJREV0TWlBeVNEVmhNaUF5SURBZ01DQXhMVEl0TWxZMVlUSWdNaUF3SURBZ01TQXlMVEpvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWpFZ015MDVJRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSUROb05uWTJJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LXVwLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlQXJyb3dPdXRVcFJpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMy05IDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM2g2djYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlQXJyb3dPdXRVcFJpZ2h0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1hcnJvdy1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV5YURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeUlERTJJRFF0TkMwMExUUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtYXJyb3ctcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVBcnJvd1JpZ2h0OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxNiA0LTQtNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUFycm93UmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLWFycm93LXVwLWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMlZqaG9PQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTVRZZ09DQTRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtYXJyb3ctdXAtbGVmdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUFycm93VXBMZWZ0OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTZWOGg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE2IDggOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBcnJvd1VwTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtYXJyb3ctdXAtcmlnaHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURob09IWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDRJREUySURndE9DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtYXJyb3ctdXAtcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVBcnJvd1VwUmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA4aDh2OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDE2IDgtOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBcnJvd1VwUmlnaHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLWFycm93LXVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5pQXhNaTAwTFRRdE5DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TmxZNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1hcnJvdy11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUFycm93VXA6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTItNC00LTQgNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNlY4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUFycm93VXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLWFzdGVyaXNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQTRkamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGd1TlNBeE5DQTNMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGd1TlNBeE1DQTNJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWFzdGVyaXNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlQXN0ZXJpc2s6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTguNSAxNCA3LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOC41IDEwIDcgNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVBc3RlcmlzaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtYm90dG9tLWRhc2hlZC1zY2lzc29yc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlOU0lnZVRFOUlqTWlJSGd5UFNJeE9TSWdlVEk5SWpNaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpNaUlIa3hQU0kxSWlCNE1qMGlNeUlnZVRJOUlqRTVJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXlNU0lnZVRFOUlqVWlJSGd5UFNJeU1TSWdlVEk5SWpFNUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJNUlpQjVNVDBpTWpFaUlIZ3lQU0l4TUNJZ2VUSTlJakl4SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TkNJZ2VURTlJakl4SWlCNE1qMGlNVFVpSUhreVBTSXlNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5JRE1nTlNCQk1pQXlJREFnTUNBeElEVWdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5JREU1SURNZ1FUSWdNaUF3SURBZ01TQXlNU0ExSWlBdlBnb2dJRHh3WVhSb0lHUTlJazBnTlNBeU1TQkJNaUF5SURBZ01DQXhJRE1nTVRraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFNBeU1TQXhPU0JCTWlBeUlEQWdNQ0F4SURFNUlESXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamd1TlNJZ1kzazlJamd1TlNJZ2NqMGlNUzQxSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0k1TGpVMk1EWTJJaUI1TVQwaU9TNDFOakEyTmlJZ2VESTlJakV5SWlCNU1qMGlNVElpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakUzSWlCNU1UMGlNVGNpSUhneVBTSXhOQzQ0TWlJZ2VUSTlJakUwTGpneUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqZ3VOU0lnWTNrOUlqRTFMalVpSUhJOUlqRXVOU0lnTHo0S0lDQThiR2x1WlNCNE1UMGlPUzQxTmpBMk5pSWdlVEU5SWpFMExqUXpPVE0wSWlCNE1qMGlNVGNpSUhreVBTSTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtYm90dG9tLWRhc2hlZC1zY2lzc29yc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzOiBJY29uTm9kZSA9IFtcbiAgWydsaW5lJywgeyB4MTogJzUnLCB5MTogJzMnLCB4MjogJzE5JywgeTI6ICczJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzMnLCB5MTogJzUnLCB4MjogJzMnLCB5MjogJzE5JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzIxJywgeTE6ICc1JywgeDI6ICcyMScsIHkyOiAnMTknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOScsIHkxOiAnMjEnLCB4MjogJzEwJywgeTI6ICcyMScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNCcsIHkxOiAnMjEnLCB4MjogJzE1JywgeTI6ICcyMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00gMyA1IEEyIDIgMCAwIDEgNSAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTSAxOSAzIEEyIDIgMCAwIDEgMjEgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00gNSAyMSBBMiAyIDAgMCAxIDMgMTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNIDIxIDE5IEEyIDIgMCAwIDEgMTkgMjEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc4LjUnLCBjeTogJzguNScsIHI6ICcxLjUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOS41NjA2NicsIHkxOiAnOS41NjA2NicsIHgyOiAnMTInLCB5MjogJzEyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE3JywgeTE6ICcxNycsIHgyOiAnMTQuODInLCB5MjogJzE0LjgyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOC41JywgY3k6ICcxNS41JywgcjogJzEuNScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc5LjU2MDY2JywgeTE6ICcxNC40MzkzNCcsIHgyOiAnMTcnLCB5MjogJzcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlQm90dG9tRGFzaGVkU2Npc3NvcnM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLWNoYXJ0LWdhbnR0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlEaG9OeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TW1nMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQXhObWcxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWNoYXJ0LWdhbnR0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlQ2hhcnRHYW50dDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDhoNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTZoNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVDaGFydEdhbnR0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1jaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREV5SURJZ01pQTBMVFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlQ2hlY2s6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMiAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUNoZWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1jaGVjay1iaWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UQXVOalUyVmpFNVlUSWdNaUF3SURBZ01TMHlJREpJTldFeUlESWdNQ0F3SURFdE1pMHlWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3hNaTR6TkRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ01URWdNeUF6VERJeUlEUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtY2hlY2stYmlnXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlQ2hlY2tCaWc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTAuNjU2VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMi4zNDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMSAzIDNMMjIgNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVDaGVja0JpZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtY2hldnJvbi1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5pQXhNQzAwSURRdE5DMDBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtY2hldnJvbi1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlQ2hldnJvbkRvd246IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMTAtNCA0LTQtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVDaGV2cm9uRG93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtY2hldnJvbi1sZWZ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQXhOaTAwTFRRZ05DMDBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtY2hldnJvbi1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlQ2hldnJvbkxlZnQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTYtNC00IDQtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVDaGV2cm9uTGVmdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtY2hldnJvbi1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNQ0E0SURRZ05DMDBJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWNoZXZyb24tcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVDaGV2cm9uUmlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgOCA0IDQtNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUNoZXZyb25SaWdodDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtY2hldnJvbi11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDRJREUwSURRdE5DQTBJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWNoZXZyb24tdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVDaGV2cm9uVXA6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxNCA0LTQgNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUNoZXZyb25VcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtY29kZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVEFnT1MweklETWdNeUF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkNBeE5TQXpMVE10TXkweklpQXZQZ29nSUR4eVpXTjBJSGc5SWpNaUlIazlJak1pSUhkcFpIUm9QU0l4T0NJZ2FHVnBaMmgwUFNJeE9DSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1jb2RlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlQ29kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMCA5LTMgMyAzIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMTUgMy0zLTMtMycgfV0sXG4gIFsncmVjdCcsIHsgeDogJzMnLCB5OiAnMycsIHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVDb2RlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1kYXNoZWQtYm90dG9tLWNvZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ09TNDFJRGdnTVRKc01pQXlMalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURJeGFERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBJRGt1TlNBeUlESXVOUzB5SURJdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXlNV0V5SURJZ01DQXdJREV0TWkweVZqVmhNaUF5SURBZ01DQXhJREl0TW1neE5HRXlJRElnTUNBd0lERWdNaUF5ZGpFMFlUSWdNaUF3SURBZ01TMHlJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTWpGb01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtZGFzaGVkLWJvdHRvbS1jb2RlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlRGFzaGVkQm90dG9tQ29kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCA5LjUgOCAxMmwyIDIuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMWgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDkuNSAyIDIuNS0yIDIuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIxaDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlRGFzaGVkQm90dG9tQ29kZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtZGFzaGVkLWJvdHRvbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OU0F5TVdFeUlESWdNQ0F3SURFdE1pMHlWalZoTWlBeUlEQWdNQ0F4SURJdE1tZ3hOR0V5SURJZ01DQXdJREVnTWlBeWRqRTBZVElnTWlBd0lEQWdNUzB5SURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01qRm9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTWpGb01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtZGFzaGVkLWJvdHRvbVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZURhc2hlZEJvdHRvbTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIxaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjFoMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVEYXNoZWRCb3R0b207XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLWRhc2hlZC1rYW5iYW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBM2RqY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGQyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ04zWTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJRE5oTWlBeUlEQWdNQ0F3TFRJZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXphREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSUROb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dNMkV5SURJZ01DQXdJREVnTWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTVkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFMGRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREU1WVRJZ01pQXdJREFnTVMweUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREl4YURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01qRm9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F5TVdFeUlESWdNQ0F3SURFdE1pMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREUwZGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ09YWXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtZGFzaGVkLWthbmJhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZURhc2hlZEthbmJhbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDd2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgN3Y5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgM2EyIDIgMCAwIDAtMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgM2gxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDNoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAzYTIgMiAwIDAgMSAyIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgOXYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE0djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTlhMiAyIDAgMCAxLTIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMWgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMjFoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDIxYTIgMiAwIDAgMS0yLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNHYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOXYxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZURhc2hlZEthbmJhbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtZGFzaGVkLW1vdXNlLXBvaW50ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJdU1ETTBJREV5TGpZNE1XRXVORGs0TGpRNU9DQXdJREFnTVNBdU5qUTNMUzQyTkRkc09TQXpMalZoTGpVdU5TQXdJREFnTVMwdU1ETXpMamswTTJ3dE15NDBORFFnTVM0d05qaGhNU0F4SURBZ01DQXdMUzQyTmk0Mk5td3RNUzR3TmpjZ015NDBORE5oTGpVdU5TQXdJREFnTVMwdU9UUXpMakF6TTNvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRVZ00yRXlJRElnTUNBd0lEQXRNaUF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBellUSWdNaUF3SURBZ01TQXlJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTWpGaE1pQXlJREFnTUNBeExUSXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F6YURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01qRm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTTJneElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEbDJNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnT1hZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTBkakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWRhc2hlZC1tb3VzZS1wb2ludGVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlRGFzaGVkTW91c2VQb2ludGVyOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyLjAzNCAxMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDNsLTMuNDQ0IDEuMDY4YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY3IDMuNDQzYS41LjUgMCAwIDEtLjk0My4wMzN6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzYTIgMiAwIDAgMC0yIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgM2EyIDIgMCAwIDEgMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMjFhMiAyIDAgMCAxLTItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDNoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIxaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgM2gxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOXYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDl2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE0djEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlRGFzaGVkTW91c2VQb2ludGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1kYXNoZWQtdG9wLXNvbGlkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNakZvTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UUjJNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRsaE1pQXlJREFnTUNBeExUSWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnT1hZeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTBkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTldFeUlESWdNQ0F3SURFZ01pMHlhREUwWVRJZ01pQXdJREFnTVNBeUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdPWFl4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURJeFlUSWdNaUF3SURBZ01TMHlMVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTWpGb01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtZGFzaGVkLXRvcC1zb2xpZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZURhc2hlZFRvcFNvbGlkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIxaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTR2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOWEyIDIgMCAwIDEtMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDl2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE0djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDl2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDIxYTIgMiAwIDAgMS0yLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMWgxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZURhc2hlZFRvcFNvbGlkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1kYXNoZWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBellUSWdNaUF3SURBZ01DMHlJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SUROaE1pQXlJREFnTUNBeElESWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRsaE1pQXlJREFnTUNBeExUSWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F5TVdFeUlESWdNQ0F3SURFdE1pMHlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRE5vTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeU1XZ3hJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F6YURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESXhhREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nT1hZeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTVkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVE1nTVRSMk1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFIyTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1kYXNoZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVEYXNoZWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzYTIgMiAwIDAgMC0yIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgM2EyIDIgMCAwIDEgMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE5YTIgMiAwIDAgMS0yIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAyMWEyIDIgMCAwIDEtMi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgM2gxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMjFoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAzaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjFoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDl2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA5djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNHYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE0djEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlRGFzaGVkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1kaXZpZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlPQ0lnZURJOUlqRTJJaUI1TVQwaU1USWlJSGt5UFNJeE1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE1pSWdlVEU5SWpFMklpQjVNajBpTVRZaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFeUlpQjRNajBpTVRJaUlIa3hQU0k0SWlCNU1qMGlPQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWRpdmlkZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZURpdmlkZTogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc4JywgeDI6ICcxNicsIHkxOiAnMTInLCB5MjogJzEyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnMTYnLCB5MjogJzE2JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnOCcsIHkyOiAnOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVEaXZpZGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLWRvdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtZG90XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlRG90OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlRG90O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1lcXVhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJREV3YURFd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lERTBhREV3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWVxdWFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlRXF1YWw6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxMGgxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE0aDEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUVxdWFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1mdW5jdGlvblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUJ5ZVQwaU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXhOMk15SURBZ01pNDRMVEVnTWk0NExUSXVPRll4TUdNd0xUSWdNUzB6TGpNZ015NHlMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGtnTVRFdU1tZzFMamNpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWZ1bmN0aW9uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlRnVuY3Rpb246IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInLCByeTogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxN2MyIDAgMi44LTEgMi44LTIuOFYxMGMwLTIgMS0zLjMgMy4yLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMS4yaDUuNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVGdW5jdGlvbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUta2FuYmFuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEZDJOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTjNZMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQTNkamtpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWthbmJhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZUthbmJhbjogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDd2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgN3Y5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZUthbmJhbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtbGlicmFyeVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJRGQyTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeElEZDJNVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUxSURjZ01pQXhNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLWxpYnJhcnlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVMaWJyYXJ5OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgN3YxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMSA3djEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDcgMiAxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVMaWJyYXJ5O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1tXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhObFk0TGpWaExqVXVOU0F3SURBZ01TQXVPUzB1TTJ3eUxqY2dNeTQxT1RsaExqVXVOU0F3SURBZ01DQXVPQ0F3YkRJdU55MHpMalpoTGpVdU5TQXdJREFnTVNBdU9TNHpWakUySWlBdlBnb2dJRHh5WldOMElIZzlJak1pSUhrOUlqTWlJSGRwWkhSb1BTSXhPQ0lnYUdWcFoyaDBQU0l4T0NJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLW1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVNOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNOCAxNlY4LjVhLjUuNSAwIDAgMSAuOS0uM2wyLjcgMy41OTlhLjUuNSAwIDAgMCAuOCAwbDIuNy0zLjZhLjUuNSAwIDAgMSAuOS4zVjE2JyB9LFxuICBdLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzMnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlTTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtbWVudVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDNJRGhvTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01USm9NVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRab01UQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtbWVudVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZU1lbnU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA4aDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTJoMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAxNmgxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVNZW51O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1taW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV5YURnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZU1pbnVzOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVNaW51cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtbW91c2UtcG9pbnRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1TURNMElERXlMalk0TVdFdU5EazRMalE1T0NBd0lEQWdNU0F1TmpRM0xTNDJORGRzT1NBekxqVmhMalV1TlNBd0lEQWdNUzB1TURNekxqazBNMnd0TXk0ME5EUWdNUzR3TmpoaE1TQXhJREFnTUNBd0xTNDJOaTQyTm13dE1TNHdOamNnTXk0ME5ETmhMalV1TlNBd0lEQWdNUzB1T1RRekxqQXpNM29pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFeFZqVmhNaUF5SURBZ01DQXdMVEl0TWtnMVlUSWdNaUF3SURBZ01DMHlJREoyTVRSaE1pQXlJREFnTUNBd0lESWdNbWcySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLW1vdXNlLXBvaW50ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVNb3VzZVBvaW50ZXI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3onLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVNb3VzZVBvaW50ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXBhcmtpbmctb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDJJRE11TmtFeUlESWdNQ0F3SURFZ05TQXphREUwWVRJZ01pQXdJREFnTVNBeUlESjJNVFJoTWlBeUlEQWdNQ0F4TFM0MU9TQXhMalF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURndU4xWXhPV0V5SURJZ01DQXdJREFnTWlBeWFERXdMak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVE1nTVROaE15QXpJREFnTVNBd0lEQXROa2c1ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRrZ01UZDJMVEl1TXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1wYXJraW5nLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVBhcmtpbmdPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMy42IDMuNkEyIDIgMCAwIDEgNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLS41OSAxLjQxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOC43VjE5YTIgMiAwIDAgMCAyIDJoMTAuMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTNhMyAzIDAgMSAwIDAtNkg5djInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxN3YtMi4zJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBhcmtpbmdPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXBhcmtpbmdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFM1ZqZG9OR0V6SURNZ01DQXdJREVnTUNBMlNEa2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtcGFya2luZ1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVBhcmtpbmc6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxN1Y3aDRhMyAzIDAgMCAxIDAgNkg5JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBhcmtpbmc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXBlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTBnMVlUSWdNaUF3SURBZ01DMHlJREoyTVRSaE1pQXlJREFnTUNBd0lESWdNbWd4TkdFeUlESWdNQ0F3SURBZ01pMHlkaTAzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0M0ek56VWdNaTQyTWpWaE1TQXhJREFnTUNBeElETWdNMnd0T1M0d01UTWdPUzR3TVRSaE1pQXlJREFnTUNBeExTNDROVE11TlRBMWJDMHlMamczTXk0NE5HRXVOUzQxSURBZ01DQXhMUzQyTWkwdU5qSnNMamcwTFRJdU9EY3pZVElnTWlBd0lEQWdNU0F1TlRBMkxTNDROVEo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXBlblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVBlbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTcnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTguMzc1IDIuNjI1YTEgMSAwIDAgMSAzIDNsLTkuMDEzIDkuMDE0YTIgMiAwIDAgMS0uODUzLjUwNWwtMi44NzMuODRhLjUuNSAwIDAgMS0uNjItLjYybC44NC0yLjg3M2EyIDIgMCAwIDEgLjUwNi0uODUyeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBlbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtcGF1c2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TUNJZ2VESTlJakV3SWlCNU1UMGlNVFVpSUhreVBTSTVJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhOQ0lnZURJOUlqRTBJaUI1TVQwaU1UVWlJSGt5UFNJNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1wYXVzZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVBhdXNlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEwJywgeDI6ICcxMCcsIHkxOiAnMTUnLCB5MjogJzknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTQnLCB4MjogJzE0JywgeTE6ICcxNScsIHkyOiAnOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVQYXVzZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtcGVyY2VudFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOU0E1TFRZZ05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQTVhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ01UVm9MakF4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXBlcmNlbnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVQZXJjZW50OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDktNiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgOWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTVoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBlcmNlbnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXBpXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lEZG9NVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURkMk1UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJREUzWVRJZ01pQXdJREFnTVMweUxUSldOeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXBpXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlUGk6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA3aDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDd2MTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTdhMiAyIDAgMCAxLTItMlY3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBpO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1waWxjcm93XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNa2c1TGpWaE1pNDFJREl1TlNBd0lEQWdNU0F3TFRWSU1UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGQyTVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklEZDJNVEFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXBpbGNyb3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVQaWxjcm93OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEySDkuNWEyLjUgMi41IDAgMCAxIDAtNUgxNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA3djEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDd2MTAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlUGlsY3JvdztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtcGxheVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCNFBTSXpJaUI1UFNJeklpQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRGt1TURBellURWdNU0F3SURBZ01TQXhMalV4TnkwdU9EVTViRFF1T1RrM0lESXVPVGszWVRFZ01TQXdJREFnTVNBd0lERXVOekU0YkMwMExqazVOeUF5TGprNU4wRXhJREVnTUNBd0lERWdPU0F4TkM0NU9UWjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtcGxheVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVBsYXk6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzMnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSA5LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdBMSAxIDAgMCAxIDkgMTQuOTk2eicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBsYXk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGgyT0NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlUGx1czogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBsdXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXBvd2VyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdOM1kwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzTGprNU9DQTVMakF3TTJFMUlEVWdNQ0F4SURBZ09DMHVNREExSWlBdlBnb2dJRHh5WldOMElIZzlJak1pSUhrOUlqTWlJSGRwWkhSb1BTSXhPQ0lnYUdWcFoyaDBQU0l4T0NJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXBvd2VyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlUG93ZXI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgN3Y0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuOTk4IDkuMDAzYTUgNSAwIDEgMCA4LS4wMDUnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzMnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlUG93ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXJhZGljYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE1tZ3liRElnTlNBeUxURXdhRFFpSUM4K0NpQWdQSEpsWTNRZ2VEMGlNeUlnZVQwaU15SWdkMmxrZEdnOUlqRTRJaUJvWldsbmFIUTlJakU0SWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXJhZGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVSYWRpY2FsOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTcgMTJoMmwyIDUgMi0xMGg0JyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMycsIHk6ICczJywgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4Jywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVJhZGljYWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXNjaXNzb3JzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqZ3VOU0lnWTNrOUlqZ3VOU0lnY2owaU1TNDFJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSTVMalUyTURZMklpQjVNVDBpT1M0MU5qQTJOaUlnZURJOUlqRXlJaUI1TWowaU1USWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRTNJaUI1TVQwaU1UY2lJSGd5UFNJeE5DNDRNaUlnZVRJOUlqRTBMamd5SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpndU5TSWdZM2s5SWpFMUxqVWlJSEk5SWpFdU5TSWdMejRLSUNBOGJHbHVaU0I0TVQwaU9TNDFOakEyTmlJZ2VURTlJakUwTGpRek9UTTBJaUI0TWowaU1UY2lJSGt5UFNJM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1zY2lzc29yc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVNjaXNzb3JzOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOC41JywgY3k6ICc4LjUnLCByOiAnMS41JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzkuNTYwNjYnLCB5MTogJzkuNTYwNjYnLCB4MjogJzEyJywgeTI6ICcxMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNycsIHkxOiAnMTcnLCB4MjogJzE0LjgyJywgeTI6ICcxNC44MicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzguNScsIGN5OiAnMTUuNScsIHI6ICcxLjUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOS41NjA2NicsIHkxOiAnMTQuNDM5MzQnLCB4MjogJzE3JywgeTI6ICc3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVNjaXNzb3JzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1yb3VuZC1jb3JuZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01URmhPQ0E0SURBZ01DQXdMVGd0T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UVjJOR0V5SURJZ01DQXdJREV0TWlBeVNEVmhNaUF5SURBZ01DQXhMVEl0TWxZMVlUSWdNaUF3SURBZ01TQXlMVEpvTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1yb3VuZC1jb3JuZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVSb3VuZENvcm5lcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMWE4IDggMCAwIDAtOC04JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlUm91bmRDb3JuZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXNpZ21hXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQTRMamxXTjBnNGJEUWdOUzAwSURWb09IWXRNUzQ1SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXNpZ21hXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlU2lnbWE6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOC45VjdIOGw0IDUtNCA1aDh2LTEuOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVTaWdtYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtc2xhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0k1SWlCNE1qMGlNVFVpSUhreFBTSXhOU0lnZVRJOUlqa2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtc2xhc2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVTbGFzaDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc5JywgeDI6ICcxNScsIHkxOiAnMTUnLCB5MjogJzknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlU2xhc2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXNwbGl0LWhvcml6b250YWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE9VZzFZeTB4SURBdE1pMHhMVEl0TWxZM1l6QXRNU0F4TFRJZ01pMHlhRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURWb00yTXhJREFnTWlBeElESWdNbll4TUdNd0lERXRNU0F5TFRJZ01tZ3RNeUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVElpSUhneVBTSXhNaUlnZVRFOUlqUWlJSGt5UFNJeU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtc3BsaXQtaG9yaXpvbnRhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVNwbGl0SG9yaXpvbnRhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDE5SDVjLTEgMC0yLTEtMi0yVjdjMC0xIDEtMiAyLTJoMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA1aDNjMSAwIDIgMSAyIDJ2MTBjMCAxLTEgMi0yIDJoLTMnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyJywgeTE6ICc0JywgeTI6ICcyMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVTcGxpdEhvcml6b250YWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXNwbGl0LXZlcnRpY2FsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQTRWalZqTUMweElERXRNaUF5TFRKb01UQmpNU0F3SURJZ01TQXlJREoyTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01UWjJNMk13SURFdE1TQXlMVElnTWtnM1l5MHhJREF0TWkweExUSXRNbll0TXlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTkNJZ2VESTlJakl3SWlCNU1UMGlNVElpSUhreVBTSXhNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXNwbGl0LXZlcnRpY2FsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlU3BsaXRWZXJ0aWNhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDhWNWMwLTEgMS0yIDItMmgxMGMxIDAgMiAxIDIgMnYzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE2djNjMCAxLTEgMi0yIDJIN2MtMSAwLTItMS0yLTJ2LTMnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNCcsIHgyOiAnMjAnLCB5MTogJzEyJywgeTI6ICcxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVTcGxpdFZlcnRpY2FsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWFyZS1zcXVhcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjRQU0l6SWlCNVBTSXpJaUIzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlISjRQU0l5SWlBdlBnb2dJRHh5WldOMElIZzlJamdpSUhrOUlqZ2lJSGRwWkhSb1BTSTRJaUJvWldsbmFIUTlJamdpSUhKNFBTSXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtc3F1YXJlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlU3F1YXJlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB4OiAnMycsIHk6ICczJywgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4Jywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnOCcsIHk6ICc4Jywgd2lkdGg6ICc4JywgaGVpZ2h0OiAnOCcsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVTcXVhcmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXN0YWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNR010TVM0eElEQXRNaTB1T1MweUxUSldOR013TFRFdU1TNDVMVElnTWkweWFEUmpNUzR4SURBZ01pQXVPU0F5SURJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTJZeTB4TGpFZ01DMHlMUzQ1TFRJdE1uWXROR013TFRFdU1TNDVMVElnTWkweWFEUmpNUzR4SURBZ01pQXVPU0F5SURJaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqZ2lJR2hsYVdkb2REMGlPQ0lnZUQwaU1UUWlJSGs5SWpFMElpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1zdGFja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVN0YWNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgMTBjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE2Yy0xLjEgMC0yLS45LTItMnYtNGMwLTEuMS45LTIgMi0yaDRjMS4xIDAgMiAuOSAyIDInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzgnLCB4OiAnMTQnLCB5OiAnMTQnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlU3RhY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXN0YXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU1ETTFJRGN1TmpsaE1TQXhJREFnTUNBeElERXVPVEE1TGpBeU5Hd3VOek0zSURFdU5EVXlZVEVnTVNBd0lEQWdNQ0F1TnpNM0xqVXpOV3d4TGpZek5DNHlOVFpoTVNBeElEQWdNQ0F4SUM0MU9EZ2dNUzQ0TURac0xURXVNVGN5SURFdU1UWTRZVEVnTVNBd0lEQWdNQzB1TWpneUxqZzJObXd1TWpVNUlERXVOakV6WVRFZ01TQXdJREFnTVMweExqVTBNU0F4TGpFek5Hd3RNUzQwTmpVdExqYzFZVEVnTVNBd0lEQWdNQzB1T1RFeUlEQnNMVEV1TkRZMUxqYzFZVEVnTVNBd0lEQWdNUzB4TGpVek9TMHhMakV6TTJ3dU1qVTRMVEV1TmpFellURWdNU0F3SURBZ01DMHVNamd5TFM0NE5qWnNMVEV1TVRVMkxURXVNVFV6WVRFZ01TQXdJREFnTVNBdU5UY3lMVEV1T0RJeWJERXVOak16TFM0eU5UWmhNU0F4SURBZ01DQXdJQzQzTXpjdExqVXpOWG9pSUM4K0NpQWdQSEpsWTNRZ2VEMGlNeUlnZVQwaU15SWdkMmxrZEdnOUlqRTRJaUJvWldsbmFIUTlJakU0SWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXN0YXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVTdGFyOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExLjAzNSA3LjY5YTEgMSAwIDAgMSAxLjkwOS4wMjRsLjczNyAxLjQ1MmExIDEgMCAwIDAgLjczNy41MzVsMS42MzQuMjU2YTEgMSAwIDAgMSAuNTg4IDEuODA2bC0xLjE3MiAxLjE2OGExIDEgMCAwIDAtLjI4Mi44NjZsLjI1OSAxLjYxM2ExIDEgMCAwIDEtMS41NDEgMS4xMzRsLTEuNDY1LS43NWExIDEgMCAwIDAtLjkxMiAwbC0xLjQ2NS43NWExIDEgMCAwIDEtMS41MzktMS4xMzNsLjI1OC0xLjYxM2ExIDEgMCAwIDAtLjI4Mi0uODY2bC0xLjE1Ni0xLjE1M2ExIDEgMCAwIDEgLjU3Mi0xLjgyMmwxLjYzMy0uMjU2YTEgMSAwIDAgMCAuNzM3LS41MzV6JyxcbiAgICB9LFxuICBdLFxuICBbJ3JlY3QnLCB7IHg6ICczJywgeTogJzMnLCB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlU3RhcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtc3RvcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeHlaV04wSUhnOUlqa2lJSGs5SWpraUlIZHBaSFJvUFNJMklpQm9aV2xuYUhROUlqWWlJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS1zdG9wXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlU3RvcDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncmVjdCcsIHsgeDogJzknLCB5OiAnOScsIHdpZHRoOiAnNicsIGhlaWdodDogJzYnLCByeDogJzEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlU3RvcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtdGVybWluYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TnlBeE1TQXlMVEl0TWkweUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQXhNMmcwSWlBdlBnb2dJRHh5WldOMElIZHBaSFJvUFNJeE9DSWdhR1ZwWjJoMFBTSXhPQ0lnZUQwaU15SWdlVDBpTXlJZ2NuZzlJaklpSUhKNVBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtdGVybWluYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVUZXJtaW5hbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ203IDExIDItMi0yLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTNoNCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVUZXJtaW5hbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtdXNlci1yb3VuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTWpGaE5pQTJJREFnTUNBd0xURXlJREFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TVNJZ2NqMGlOQ0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtdXNlci1yb3VuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZVVzZXJSb3VuZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMWE2IDYgMCAwIDAtMTIgMCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMScsIHI6ICc0JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVVzZXJSb3VuZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmUtdXNlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVEFpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNakYyTFRKaE1pQXlJREFnTUNBeElESXRNbWcyWVRJZ01pQXdJREFnTVNBeUlESjJNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlLXVzZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVVc2VyOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEwJywgcjogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMXYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVVzZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlLXhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnT1MwMklEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dPU0EySURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZS14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlWDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicsIHJ5OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA5LTYgNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDkgNiA2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVg7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZTogSWNvbk5vZGUgPSBbWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XV07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmVzLWV4Y2x1ZGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01USjJNbUV5SURJZ01DQXdJREV0TWlBeVNEbGhNU0F4SURBZ01DQXdMVEVnTVhZellUSWdNaUF3SURBZ01DQXlJREpvTVRCaE1pQXlJREFnTUNBd0lESXRNbFl4TUdFeUlESWdNQ0F3SURBdE1pMHlhREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFFnTVRaaE1pQXlJREFnTUNBeExUSXRNbFkwWVRJZ01pQXdJREFnTVNBeUxUSm9NVEJoTWlBeUlEQWdNQ0F4SURJZ01uWXpZVEVnTVNBd0lEQWdNUzB4SURGb0xUVmhNaUF5SURBZ01DQXdMVElnTW5ZeUlpQXZQZ284TDNOMlp6ND0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZXMtZXhjbHVkZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWFyZXNFeGNsdWRlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE2IDEydjJhMiAyIDAgMCAxLTIgMkg5YTEgMSAwIDAgMC0xIDF2M2EyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTJWMTBhMiAyIDAgMCAwLTItMmgwJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNNCAxNmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjNhMSAxIDAgMCAxLTEgMWgtNWEyIDIgMCAwIDAtMiAydjInLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTcXVhcmVzRXhjbHVkZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVhcmVzLWludGVyc2VjdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTWpKaE1pQXlJREFnTUNBeExUSXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW1FeUlESWdNQ0F3SURFZ01pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF5TW1ndE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNRlk0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURSaE1pQXlJREFnTUNBeElESXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnT0dFeUlESWdNQ0F3SURFZ01pQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF4TkhZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1pQXlNR0V5SURJZ01DQXdJREV0TWlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMElERTJZVElnTWlBd0lEQWdNUzB5TFRJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ01UQmhNaUF5SURBZ01DQXhJREl0TW1nMVlURWdNU0F3SURBZ01TQXhJREYyTldFeUlESWdNQ0F3SURFdE1pQXlTRGxoTVNBeElEQWdNQ0F4TFRFdE1Yb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dNbWd5SWlBdlBnbzhMM04yWno0PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1YXJlcy1pbnRlcnNlY3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVzSW50ZXJzZWN0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDIyYTIgMiAwIDAgMS0yLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMmEyIDIgMCAwIDEgMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIyaC0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTBWOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDRhMiAyIDAgMCAxIDItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCA4YTIgMiAwIDAgMSAyIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTR2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAyMGEyIDIgMCAwIDEtMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTZhMiAyIDAgMCAxLTItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEwYTIgMiAwIDAgMSAyLTJoNWExIDEgMCAwIDEgMSAxdjVhMiAyIDAgMCAxLTIgMkg5YTEgMSAwIDAgMS0xLTF6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMmgyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZXNJbnRlcnNlY3Q7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlcy1zdWJ0cmFjdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTWpKaE1pQXlJREFnTUNBeExUSXRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTWpKb0xUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRFJoTWlBeUlEQWdNQ0F3TFRJdE1rZzBZVElnTWlBd0lEQWdNQzB5SURKMk1UQmhNaUF5SURBZ01DQXdJRElnTW1nellURWdNU0F3SURBZ01DQXhMVEYyTFRWaE1pQXlJREFnTUNBeElESXRNbWcxWVRFZ01TQXdJREFnTUNBeExURjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0E0WVRJZ01pQXdJREFnTVNBeUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREUwZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlESXdZVElnTWlBd0lEQWdNUzB5SURJaUlDOCtDand2YzNablBnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWFyZXMtc3VidHJhY3RcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVhcmVzU3VidHJhY3Q6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjJhMiAyIDAgMCAxLTItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAyMmgtMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNiA0YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoM2ExIDEgMCAwIDAgMS0xdi01YTIgMiAwIDAgMSAyLTJoNWExIDEgMCAwIDAgMS0xeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDhhMiAyIDAgMCAxIDIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxNHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIwYTIgMiAwIDAgMS0yIDInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1YXJlc1N1YnRyYWN0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWlyY2xlLWRhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVE11TnpjZ015NHdORE5oTXpRZ016UWdNQ0F3SURBdE15NDFOQ0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXk0M056RWdNakF1T1RVMllUTXpJRE16SURBZ01DQXhMVE11TlRReExqQXdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakF1TVRnZ01UY3VOelJqTFM0MU1TQXhMakUxTFRFdU1qa2dNUzQ1TXkweUxqUXpPU0F5TGpRMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DNHhPQ0EyTGpJMU9XTXRMalV4TFRFdU1UUTRMVEV1TWpreExURXVPVEk1TFRJdU5EUXRNaTQwTXpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0xqazFOeUF4TUM0eU0yRXpNeUF6TXlBd0lEQWdNU0F3SURNdU5UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTXVNRFF6SURFd0xqSXpZVE0wSURNMElEQWdNQ0F3SUM0d01ERWdNeTQxTkRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU1qWWdNakF1TVRjNVl5MHhMakUxTFM0MU1EZ3RNUzQ1TXkweExqSTVMVEl1TkRRdE1pNDBNemdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFl1TWpZZ015NDRNbU10TVM0eE5Ea3VOVEV0TVM0NU15QXhMakk1TVMweUxqUTBJREl1TkRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWlyY2xlLWRhc2hlZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFNxdWlyY2xlRGFzaGVkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzLjc3IDMuMDQzYTM0IDM0IDAgMCAwLTMuNTQgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMy43NzEgMjAuOTU2YTMzIDMzIDAgMCAxLTMuNTQxLjAwMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC4xOCAxNy43NGMtLjUxIDEuMTUtMS4yOSAxLjkzLTIuNDM5IDIuNDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuMTggNi4yNTljLS41MS0xLjE0OC0xLjI5MS0xLjkyOS0yLjQ0LTIuNDM4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwLjk1NyAxMC4yM2EzMyAzMyAwIDAgMSAwIDMuNTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy4wNDMgMTAuMjNhMzQgMzQgMCAwIDAgLjAwMSAzLjU0MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjI2IDIwLjE3OWMtMS4xNS0uNTA4LTEuOTMtMS4yOS0yLjQ0LTIuNDM4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMjYgMy44MmMtMS4xNDkuNTEtMS45MyAxLjI5MS0yLjQ0IDIuNDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1aXJjbGVEYXNoZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3F1YXJlcy11bml0ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0F4Tm1FeUlESWdNQ0F3SURFdE1pMHlWalJoTWlBeUlEQWdNQ0F4SURJdE1tZ3hNR0V5SURJZ01DQXdJREVnTWlBeWRqTmhNU0F4SURBZ01DQXdJREVnTVdnellUSWdNaUF3SURBZ01TQXlJREoyTVRCaE1pQXlJREFnTUNBeExUSWdNa2d4TUdFeUlESWdNQ0F3SURFdE1pMHlkaTB6WVRFZ01TQXdJREFnTUMweExURjZJaUF2UGdvOEwzTjJaejQ9KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmVzLXVuaXRlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1YXJlc1VuaXRlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMCAxIDFoM2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJIMTBhMiAyIDAgMCAxLTItMnYtM2ExIDEgMCAwIDAtMS0xeicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZXNVbml0ZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzcXVpcmNsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTJNM0xqSWdNQ0E1SURFdU9DQTVJRGx6TFRFdU9DQTVMVGtnT1MwNUxURXVPQzA1TFRrZ01TNDRMVGtnT1MwNUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3NxdWlyY2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3F1aXJjbGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM2M3LjIgMCA5IDEuOCA5IDlzLTEuOCA5LTkgOS05LTEuOC05LTkgMS44LTkgOS05JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWlyY2xlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHNxdWlycmVsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVXVNak0ySURJeVlUTWdNeUF3SURBZ01DMHlMakl0TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01qQmhNeUF6SURBZ01DQXhJRE10TTJneFlUSWdNaUF3SURBZ01DQXlMVEoyTFRKaE5DQTBJREFnTUNBd0xUUXRORlkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBeE0yZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURaaE5DQTBJREFnTUNBd0xUUWdOQ0EzSURjZ01DQXdJREF0TnlBM1l6QXROU0EwTFRVZ05DMHhNQzQxWVRRdU5TQTBMalVnTUNBeElEQXRPU0F3SURJdU5TQXlMalVnTUNBd0lEQWdOU0F3UXpjZ01UQWdNeUF4TVNBeklERTNZekFnTWk0NElESXVNaUExSURVZ05XZ3hNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3F1aXJyZWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTcXVpcnJlbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNS4yMzYgMjJhMyAzIDAgMCAwLTIuMi01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIwYTMgMyAwIDAgMSAzLTNoMWEyIDIgMCAwIDAgMi0ydi0yYTQgNCAwIDAgMC00LTRWNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxM2guMDEnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTggNmE0IDQgMCAwIDAtNCA0IDcgNyAwIDAgMC03IDdjMC01IDQtNSA0LTEwLjVhNC41IDQuNSAwIDEgMC05IDAgMi41IDIuNSAwIDAgMCA1IDBDNyAxMCAzIDExIDMgMTdjMCAyLjggMi4yIDUgNSA1aDEwJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3F1aXJyZWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3RhbXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01UTldPQzQxUXpFMElEY2dNVFVnTnlBeE5TQTFZVE1nTXlBd0lEQWdNQzAySURCak1DQXlJREVnTWlBeElETXVOVll4TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UVXVOV0V5TGpVZ01pNDFJREFnTUNBd0xUSXVOUzB5TGpWb0xURXhRVEl1TlNBeUxqVWdNQ0F3SURBZ05DQXhOUzQxVmpFM1lURWdNU0F3SURBZ01DQXhJREZvTVRSaE1TQXhJREFnTUNBd0lERXRNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFVnTWpKb01UUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdGFtcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFN0YW1wOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0IDEzVjguNUMxNCA3IDE1IDcgMTUgNWEzIDMgMCAwIDAtNiAwYzAgMiAxIDIgMSAzLjVWMTMnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTUuNWEyLjUgMi41IDAgMCAwLTIuNS0yLjVoLTExQTIuNSAyLjUgMCAwIDAgNCAxNS41VjE3YTEgMSAwIDAgMCAxIDFoMTRhMSAxIDAgMCAwIDEtMXonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ001IDIyaDE0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFN0YW1wO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN0YXItb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DNHpOQ0E0TGpNMElESWdPUzR5TjJ3MUlEUXVPRGRNTlM0NE1pQXlNU0F4TWlBeE55NDNOeUF4T0M0eE9DQXlNV3d0TGpVNUxUTXVORE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0TGpReUlERXlMamMySURJeUlEa3VNamRzTFRZdU9URXRNVXd4TWlBeWJDMHhMalEwSURJdU9URWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqSWlJSGd5UFNJeU1pSWdlVEU5SWpJaUlIa3lQU0l5TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N0YXItb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3Rhck9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004LjM0IDguMzQgMiA5LjI3bDUgNC44N0w1LjgyIDIxIDEyIDE3Ljc3IDE4LjE4IDIxbC0uNTktMy40MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOC40MiAxMi43NiAyMiA5LjI3bC02LjkxLTFMMTIgMmwtMS40NCAyLjkxJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzInLCB4MjogJzIyJywgeTE6ICcyJywgeTI6ICcyMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTdGFyT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN0YXItaGFsZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRndU16TTRZVEl1TVNBeUxqRWdNQ0F3SURBdExqazROeTR5TkRSTU5pNHpPVFlnTWpFdU1ERmhMalV6TGpVeklEQWdNQ0F4TFM0M055MHVOVFpzTGpnNE1TMDFMakV6T1dFeUxqRXlJREl1TVRJZ01DQXdJREF0TGpZeE1TMHhMamczT1V3eUxqRTJJRGt1TnprMVlTNDFNeTQxTXlBd0lEQWdNU0F1TWprMExTNDVNRFpzTlM0eE5qVXRMamMxTldFeUxqRXlJREl1TVRJZ01DQXdJREFnTVM0MU9UY3RNUzR4Tm13eUxqTXdPUzAwTGpZM09VRXVOVE11TlRNZ01DQXdJREVnTVRJZ01pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdGFyLWhhbGZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTdGFySGFsZjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMiAxOC4zMzhhMi4xIDIuMSAwIDAgMC0uOTg3LjI0NEw2LjM5NiAyMS4wMWEuNTMuNTMgMCAwIDEtLjc3LS41NmwuODgxLTUuMTM5YTIuMTIgMi4xMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIgMi4xMiAwIDAgMCAxLjU5Ny0xLjE2bDIuMzA5LTQuNjc5QS41My41MyAwIDAgMSAxMiAyJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3RhckhhbGY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3RhclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEV1TlRJMUlESXVNamsxWVM0MU15NDFNeUF3SURBZ01TQXVPVFVnTUd3eUxqTXhJRFF1TmpjNVlUSXVNVEl6SURJdU1USXpJREFnTUNBd0lERXVOVGsxSURFdU1UWnNOUzR4TmpZdU56VTJZUzQxTXk0MU15QXdJREFnTVNBdU1qazBMamt3Tkd3dE15NDNNellnTXk0Mk16aGhNaTR4TWpNZ01pNHhNak1nTUNBd0lEQXRMall4TVNBeExqZzNPR3d1T0RneUlEVXVNVFJoTGpVekxqVXpJREFnTUNBeExTNDNOekV1TlRac0xUUXVOakU0TFRJdU5ESTRZVEl1TVRJeUlESXVNVEl5SURBZ01DQXdMVEV1T1RjeklEQk1OaTR6T1RZZ01qRXVNREZoTGpVekxqVXpJREFnTUNBeExTNDNOeTB1TlRac0xqZzRNUzAxTGpFek9XRXlMakV5TWlBeUxqRXlNaUF3SURBZ01DMHVOakV4TFRFdU9EYzVUREl1TVRZZ09TNDNPVFZoTGpVekxqVXpJREFnTUNBeElDNHlPVFF0TGprd05tdzFMakUyTlMwdU56VTFZVEl1TVRJeUlESXVNVEl5SURBZ01DQXdJREV1TlRrM0xURXVNVFo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RhclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFN0YXI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEuNTI1IDIuMjk1YS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIzIDIuMTIzIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy43MzYgMy42MzhhMi4xMjMgMi4xMjMgMCAwIDAtLjYxMSAxLjg3OGwuODgyIDUuMTRhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIyIDIuMTIyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyMiAyLjEyMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIyIDIuMTIyIDAgMCAwIDEuNTk3LTEuMTZ6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3RhcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzdGVwLWJhY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU9UY3hJRFF1TWpnMVFUSWdNaUF3SURBZ01TQXhOeUEyZGpFeVlUSWdNaUF3SURBZ01TMHpMakF5T1NBeExqY3hOV3d0T1M0NU9UY3ROUzQ1T1RoaE1pQXlJREFnTUNBeExTNHdNRE10TXk0ME16SjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F5TUZZMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N0ZXAtYmFja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFN0ZXBCYWNrOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjk3MSA0LjI4NUEyIDIgMCAwIDEgMTcgNnYxMmEyIDIgMCAwIDEtMy4wMjkgMS43MTVsLTkuOTk3LTUuOTk4YTIgMiAwIDAgMS0uMDAzLTMuNDMyeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDIwVjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3RlcEJhY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3RlcC1mb3J3YXJkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVNREk1SURRdU1qZzFRVElnTWlBd0lEQWdNQ0EzSURaMk1USmhNaUF5SURBZ01DQXdJRE11TURJNUlERXVOekUxYkRrdU9UazNMVFV1T1RrNFlUSWdNaUF3SURBZ01DQXVNREF6TFRNdU5ETXllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUEwZGpFMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N0ZXAtZm9yd2FyZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFN0ZXBGb3J3YXJkOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTAuMDI5IDQuMjg1QTIgMiAwIDAgMCA3IDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeicgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTMgNHYxNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTdGVwRm9yd2FyZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzdGV0aG9zY29wZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlESjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F6U0RSaE1pQXlJREFnTUNBd0xUSWdNblkwWVRZZ05pQXdJREFnTUNBeE1pQXdWalZoTWlBeUlEQWdNQ0F3TFRJdE1tZ3RNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TldFMklEWWdNQ0F3SURBZ01USWdNSFl0TXlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeU1DSWdZM2s5SWpFd0lpQnlQU0l5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RldGhvc2NvcGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTdGV0aG9zY29wZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAzSDRhMiAyIDAgMCAwLTIgMnY0YTYgNiAwIDAgMCAxMiAwVjVhMiAyIDAgMCAwLTItMmgtMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1YTYgNiAwIDAgMCAxMiAwdi0zJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMjAnLCBjeTogJzEwJywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3RldGhvc2NvcGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3RpY2tlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnT1dFeUxqUWdNaTQwSURBZ01DQXdMUzQzTURZdE1TNDNNRFpzTFRNdU5UZzRMVE11TlRnNFFUSXVOQ0F5TGpRZ01DQXdJREFnTVRVZ00wZzFZVElnTWlBd0lEQWdNQzB5SURKMk1UUmhNaUF5SURBZ01DQXdJRElnTW1neE5HRXlJRElnTUNBd0lEQWdNaTB5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ00zWTFZVEVnTVNBd0lEQWdNQ0F4SURGb05TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhNMmd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERXphQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UWnpMamdnTVNBeUlERmpNUzR6SURBZ01pMHhJREl0TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N0aWNrZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTdGlja2VyOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxIDlhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE1IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAzdjVhMSAxIDAgMCAwIDEgMWg1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTNoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEzaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNnMuOCAxIDIgMWMxLjMgMCAyLTEgMi0xJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFN0aWNrZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3RvbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU1qWTBJREl1TWpBMVFUUWdOQ0F3SURBZ01DQTJMalF5SURRdU1qRXhiQzAwSURoaE5DQTBJREFnTUNBd0lERXVNelU1SURVdU1URTNiRFlnTkdFMElEUWdNQ0F3SURBZ05DNDBNemdnTUd3MkxUUmhOQ0EwSURBZ01DQXdJREV1TlRjMkxUUXVOVGt5YkMweUxUWmhOQ0EwSURBZ01DQXdMVEl1TlRNdE1pNDFNM29pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV4TGprNUlESXlJREUwSURFeWJEY3VPREl5SURNdU1UZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0F4TWlBNExqUTNJREl1TXpBeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N0b25lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3RvbmU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEuMjY0IDIuMjA1QTQgNCAwIDAgMCA2LjQyIDQuMjExbC00IDhhNCA0IDAgMCAwIDEuMzU5IDUuMTE3bDYgNGE0IDQgMCAwIDAgNC40MzggMGw2LTRhNCA0IDAgMCAwIDEuNTc2LTQuNTkybC0yLTZhNCA0IDAgMCAwLTIuNTMtMi41M3onLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xMS45OSAyMiAxNCAxMmw3LjgyMiAzLjE4NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMiA4LjQ3IDIuMzAyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFN0b25lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN0aWNreS1ub3RlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdPV0V5TGpRZ01pNDBJREFnTUNBd0xTNDNNRFl0TVM0M01EWnNMVE11TlRnNExUTXVOVGc0UVRJdU5DQXlMalFnTUNBd0lEQWdNVFVnTTBnMVlUSWdNaUF3SURBZ01DMHlJREoyTVRSaE1pQXlJREFnTUNBd0lESWdNbWd4TkdFeUlESWdNQ0F3SURBZ01pMHllaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFVnTTNZMVlURWdNU0F3SURBZ01DQXhJREZvTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N0aWNreS1ub3RlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3RpY2t5Tm90ZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMSA5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM3Y1YTEgMSAwIDAgMCAxIDFoNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTdGlja3lOb3RlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN0b3JlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNakYyTFRWaE1TQXhJREFnTUNBd0xURXRNV2d0TkdFeElERWdNQ0F3SURBdE1TQXhkalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzTGpjM05DQXhNQzR6TVdFeExqRXlJREV1TVRJZ01DQXdJREF0TVM0MU5Ea2dNQ0F5TGpVZ01pNDFJREFnTUNBeExUTXVORFV4SURBZ01TNHhNaUF4TGpFeUlEQWdNQ0F3TFRFdU5UUTRJREFnTWk0MUlESXVOU0F3SURBZ01TMHpMalExTWlBd0lERXVNVElnTVM0eE1pQXdJREFnTUMweExqVTBPU0F3SURJdU5TQXlMalVnTUNBd0lERXRNeTQzTnkwekxqSTBPR3d5TGpnNE9TMDBMakU0TkVFeUlESWdNQ0F3SURFZ055QXlhREV3WVRJZ01pQXdJREFnTVNBeExqWTFNeTQ0TnpOc01pNDRPVFVnTkM0eE9USmhNaTQxSURJdU5TQXdJREFnTVMwekxqYzNOQ0F6TGpJME5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNQzQ1TlZZeE9XRXlJRElnTUNBd0lEQWdNaUF5YURFeVlUSWdNaUF3SURBZ01DQXlMVEoyTFRndU1EVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdG9yZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFN0b3JlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDIxdi01YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXY1JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTAuOTVWMTlhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04LjA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFN0b3JlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN0cmV0Y2gtaG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU5pSWdlRDBpTWlJZ2VUMGlOQ0lnY25nOUlqSWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJakl3SWlCb1pXbG5hSFE5SWpZaUlIZzlJaklpSUhrOUlqRTBJaUJ5ZUQwaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdHJldGNoLWhvcml6b250YWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTdHJldGNoSG9yaXpvbnRhbDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzYnLCB4OiAnMicsIHk6ICc0Jywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnNicsIHg6ICcyJywgeTogJzE0Jywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFN0cmV0Y2hIb3Jpem9udGFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN0cmV0Y2gtdmVydGljYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU5pSWdhR1ZwWjJoMFBTSXlNQ0lnZUQwaU5DSWdlVDBpTWlJZ2NuZzlJaklpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpZaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpFMElpQjVQU0l5SWlCeWVEMGlNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RyZXRjaC12ZXJ0aWNhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFN0cmV0Y2hWZXJ0aWNhbDogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc2JywgaGVpZ2h0OiAnMjAnLCB4OiAnNCcsIHk6ICcyJywgcng6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzYnLCBoZWlnaHQ6ICcyMCcsIHg6ICcxNCcsIHk6ICcyJywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFN0cmV0Y2hWZXJ0aWNhbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzdHJpa2V0aHJvdWdoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdORWc1WVRNZ015QXdJREFnTUMweUxqZ3pJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURFeVlUUWdOQ0F3SURBZ01TQXdJRGhJTmlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTkNJZ2VESTlJakl3SWlCNU1UMGlNVElpSUhreVBTSXhNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RyaWtldGhyb3VnaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFN0cmlrZXRocm91Z2g6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNEg5YTMgMyAwIDAgMC0yLjgzIDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTJhNCA0IDAgMCAxIDAgOEg2JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzQnLCB4MjogJzIwJywgeTE6ICcxMicsIHkyOiAnMTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3RyaWtldGhyb3VnaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzdWJzY3JpcHRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TkNBMUlEZ2dPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVElnTlMwNElEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJREU1YUMwMFl6QXRNUzQxTGpRMExUSWdNUzQxTFRJdU5WTXlNQ0F4TlM0ek15QXlNQ0F4TkdNd0xTNDBOeTB1TVRjdExqa3pMUzQwT0MweExqSTVZVEl1TVRFZ01pNHhNU0F3SURBZ01DMHlMall5TFM0ME5HTXRMalF5TGpJMExTNDNOQzQyTWkwdU9TQXhMakEzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3Vic2NyaXB0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3Vic2NyaXB0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTQgNSA4IDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgNS04IDgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjAgMTloLTRjMC0xLjUuNDQtMiAxLjUtMi41UzIwIDE1LjMzIDIwIDE0YzAtLjQ3LS4xNy0uOTMtLjQ4LTEuMjlhMi4xMSAyLjExIDAgMCAwLTIuNjItLjQ0Yy0uNDIuMjQtLjc0LjYyLS45IDEuMDcnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTdWJzY3JpcHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3VuLWRpbVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUEwYUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qQWdNVEpvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXlNR2d1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ01USm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tnk0Mk5UY2dOaTR6TkROb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeTQyTlRjZ01UY3VOalUzYUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5pNHpORE1nTVRjdU5qVTNhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmk0ek5ETWdOaTR6TkROb0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdW4tZGltXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3VuRGltOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTJoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDEyaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy42NTcgNi4zNDNoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjY1NyAxNy42NTdoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYuMzQzIDE3LjY1N2guMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4zNDMgNi4zNDNoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFN1bkRpbTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzdW4tbWVkaXVtXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXpkakVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURJd2RqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVEpvTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01USm9NU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGd1TXpZMElEVXVOak0yTFM0M01EY3VOekEzSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAyTGpNME15QXhOeTQyTlRjdExqY3dOeTQzTURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRVdU5qTTJJRFV1TmpNMkxqY3dOeTQzTURjaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFM0xqWTFOeUF4Tnk0Mk5UY3VOekEzTGpjd055SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdW4tbWVkaXVtXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3VuTWVkaXVtOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3YxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwdjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEyaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTguMzY0IDUuNjM2LS43MDcuNzA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYuMzQzIDE3LjY1Ny0uNzA3LjcwNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201LjYzNiA1LjYzNi43MDcuNzA3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3LjY1NyAxNy42NTcuNzA3LjcwNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTdW5NZWRpdW07XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3VuLW1vb25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQzQ0TXpjZ01UWXVNemcxWVRZZ05pQXdJREVnTVMwM0xqSXlNeTAzTGpJeU1tTXVOakkwTFM0eE5EY3VPVGN1TmpZdU56RTFJREV1TWpRNFlUUWdOQ0F3SURBZ01DQTFMakkySURVdU1qVTVZeTQxT0RrdExqSTFOU0F4TGpNNU5pNHdPU0F4TGpJME9DNDNNVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFeVlUUWdOQ0F3SURBZ01DMDBMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU1SURVdE1TNHlOVFlnTVM0eU5UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJREV5YURJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N1bi1tb29uXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3VuTW9vbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQuODM3IDE2LjM4NWE2IDYgMCAxIDEtNy4yMjMtNy4yMjJjLjYyNC0uMTQ3Ljk3LjY2LjcxNSAxLjI0OGE0IDQgMCAwIDAgNS4yNiA1LjI1OWMuNTg5LS4yNTUgMS4zOTYuMDkgMS4yNDguNzE1JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJhNCA0IDAgMCAwLTQtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSA1LTEuMjU2IDEuMjU2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEyaDInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3VuTW9vbjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSBzdW4tc25vd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTWpGMkxURWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJRFJXTXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ09XRXpJRE1nTUNBd0lEQWdNQ0EySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkNBeU1DQXhMakkxTFRJdU5Vd3hPQ0F4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRRZ05DQXhMakkxSURJdU5Vd3hPQ0EySWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TnlBeU1TMHpMVFlnTVM0MUxUTklNaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzSURNdE15QTJJREV1TlNBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXlhREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEl3SURFd0xURXVOU0F5SURFdU5TQXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHpMalkwSURFNExqTTJMamN0TGpjaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRRdU16UWdOaTR6TkMwdU55MHVOeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3VuLXNub3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTdW5Tbm93OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDIxdi0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDRWMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA5YTMgMyAwIDAgMCAwIDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgMjAgMS4yNS0yLjVMMTggMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgNCAxLjI1IDIuNUwxOCA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDIxLTMtNiAxLjUtM0gyMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAzLTMgNiAxLjUgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAgMTAtMS41IDIgMS41IDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMy42NCAxOC4zNi43LS43JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQuMzQgNi4zNC0uNy0uNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTdW5Tbm93O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN1blxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlESXdkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFF1T1RNZ05DNDVNeUF4TGpReElERXVOREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUzTGpZMklERTNMalkySURFdU5ERWdNUzQwTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0F4TW1neUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMkxqTTBJREUzTGpZMkxURXVOREVnTVM0ME1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1Ua3VNRGNnTkM0NU15MHhMalF4SURFdU5ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTdW46IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjB2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200LjkzIDQuOTMgMS40MSAxLjQxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3LjY2IDE3LjY2IDEuNDEgMS40MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202LjM0IDE3LjY2LTEuNDEgMS40MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOS4wNyA0LjkzLTEuNDEgMS40MScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTdW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3VucmlzZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMExqa3pJREV3TGpreklERXVOREVnTVM0ME1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhPR2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE9HZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhPUzR3TnlBeE1DNDVNeTB4TGpReElERXVOREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURJeVNESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUZ2dOaUEwTFRRZ05DQTBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4T0dFMElEUWdNQ0F3SURBdE9DQXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zdW5yaXNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3VucmlzZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAydjgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNC45MyAxMC45MyAxLjQxIDEuNDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxOGgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE4aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuMDcgMTAuOTMtMS40MSAxLjQxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIySDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCA2IDQtNCA0IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMThhNCA0IDAgMCAwLTggMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTdW5yaXNlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN1bnNldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRCV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5DNDVNeUF4TUM0NU15QXhMalF4SURFdU5ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVGhvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01UaG9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVGt1TURjZ01UQXVPVE10TVM0ME1TQXhMalF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeU1rZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaUEyTFRRZ05DMDBMVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFNFlUUWdOQ0F3SURBZ01DMDRJREFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3Vuc2V0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3Vuc2V0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEwVjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNC45MyAxMC45MyAxLjQxIDEuNDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxOGgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE4aDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuMDcgMTAuOTMtMS40MSAxLjQxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIySDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgNi00IDQtNC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE4YTQgNCAwIDAgMC04IDAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3Vuc2V0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN1cGVyc2NyaXB0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5DQXhPU0E0TFRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeUlERTVMVGd0T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01USm9MVFJqTUMweExqVXVORFF5TFRJZ01TNDFMVEl1TlZNeU1DQTRMak16TkNBeU1DQTNMakF3TW1Nd0xTNDBOekl0TGpFM0xTNDVNeTB1TkRnMExURXVNamxoTWk0eE1EVWdNaTR4TURVZ01DQXdJREF0TWk0Mk1UY3RMalF6Tm1NdExqUXlMakl6T1MwdU56TTRMall4TkMwdU9EazVJREV1TURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N1cGVyc2NyaXB0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgU3VwZXJzY3JpcHQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNCAxOSA4LTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgMTktOC04JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIwIDEyaC00YzAtMS41LjQ0Mi0yIDEuNS0yLjVTMjAgOC4zMzQgMjAgNy4wMDJjMC0uNDcyLS4xNy0uOTMtLjQ4NC0xLjI5YTIuMTA1IDIuMTA1IDAgMCAwLTIuNjE3LS40MzZjLS40Mi4yMzktLjczOC42MTQtLjg5OSAxLjA2JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3VwZXJzY3JpcHQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3dhdGNoLWJvb2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01UZGhOQ0EwSURBZ01DQXhMVGdnTUZZMVlUSWdNaUF3SURBZ01TQXlMVEpvTkdFeUlESWdNQ0F3SURFZ01pQXlXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFl1TnlBeE0wZ3hPV0V5SURJZ01DQXdJREVnTWlBeWRqUmhNaUF5SURBZ01DQXhMVElnTWtnM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswZ055QXhOMmd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFeElEZ2dNaTR6TFRJdU0yRXlMalFnTWk0MElEQWdNQ0F4SURNdU5EQTBMakF3TkV3eE9DNDJJRGN1Tm1FeUxqUWdNaTQwSURBZ01DQXhJQzR3TWpZZ015NDBNelJNT1M0NUlERTVMamdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3dhdGNoLWJvb2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTd2F0Y2hCb29rOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExIDE3YTQgNCAwIDAgMS04IDBWNWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMlonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYuNyAxM0gxOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg3JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTSA3IDE3aC4wMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnbTExIDggMi4zLTIuM2EyLjQgMi40IDAgMCAxIDMuNDA0LjAwNEwxOC42IDcuNmEyLjQgMi40IDAgMCAxIC4wMjYgMy40MzRMOS45IDE5LjgnIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTd2F0Y2hCb29rO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN3aXNzLWZyYW5jXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNakZXTTJnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERTJhRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURrdU5XZzNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zd2lzcy1mcmFuY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFN3aXNzRnJhbmM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjFWM2g4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTZoOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA5LjVoNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTd2lzc0ZyYW5jO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN3aXRjaC1jYW1lcmFcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ01UbElOR0V5SURJZ01DQXdJREV0TWkweVZqZGhNaUF5SURBZ01DQXhJREl0TW1nMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QTFhRGRoTWlBeUlEQWdNQ0F4SURJZ01uWXhNR0V5SURJZ01DQXdJREV0TWlBeWFDMDFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTRJREl5TFRNdE15QXpMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVFlnTWlBeklETXRNeUF6SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3dpdGNoLWNhbWVyYVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFN3aXRjaENhbWVyYTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMSAxOUg0YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgNWg3YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDIyLTMtMyAzLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNiAyIDMgMy0zIDMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgU3dpdGNoQ2FtZXJhO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN3b3JkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1URWdNVGt0TmkwMklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMUlESXhMVEl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0T0NBeE5pMDBJRFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGt1TlNBeE55NDFJREl4SURaV00yZ3RNMHcyTGpVZ01UUXVOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3dvcmRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTd29yZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xMSAxOS02LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNSAyMS0yLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCAxNi00IDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOS41IDE3LjUgMjEgNlYzaC0zTDYuNSAxNC41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFN3b3JkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHN3b3Jkc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjRzlzZVd4cGJtVWdjRzlwYm5SelBTSXhOQzQxSURFM0xqVWdNeUEySURNZ015QTJJRE1nTVRjdU5TQXhOQzQxSWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4TXlJZ2VESTlJakU1SWlCNU1UMGlNVGtpSUhreVBTSXhNeUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVFlpSUhneVBTSXlNQ0lnZVRFOUlqRTJJaUI1TWowaU1qQWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRTVJaUI0TWowaU1qRWlJSGt4UFNJeU1TSWdlVEk5SWpFNUlpQXZQZ29nSUR4d2IyeDViR2x1WlNCd2IybHVkSE05SWpFMExqVWdOaTQxSURFNElETWdNakVnTXlBeU1TQTJJREUzTGpVZ09TNDFJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSTFJaUI0TWowaU9TSWdlVEU5SWpFMElpQjVNajBpTVRnaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpjaUlIZ3lQU0kwSWlCNU1UMGlNVGNpSUhreVBTSXlNQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNeUlnZURJOUlqVWlJSGt4UFNJeE9TSWdlVEk5SWpJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N3b3Jkc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFN3b3JkczogSWNvbk5vZGUgPSBbXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzE0LjUgMTcuNSAzIDYgMyAzIDYgMyAxNy41IDE0LjUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTMnLCB4MjogJzE5JywgeTE6ICcxOScsIHkyOiAnMTMnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTYnLCB4MjogJzIwJywgeTE6ICcxNicsIHkyOiAnMjAnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTknLCB4MjogJzIxJywgeTE6ICcyMScsIHkyOiAnMTknIH1dLFxuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICcxNC41IDYuNSAxOCAzIDIxIDMgMjEgNiAxNy41IDkuNScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc1JywgeDI6ICc5JywgeTE6ICcxNCcsIHkyOiAnMTgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNycsIHgyOiAnNCcsIHkxOiAnMTcnLCB5MjogJzIwJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzMnLCB4MjogJzUnLCB5MTogJzE5JywgeTI6ICcyMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBTd29yZHM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgc3lyaW5nZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGdnTWlBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTNJRGNnTXkweklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQTVJRGd1TnlBeE9TNHpZeTB4SURFdE1pNDFJREV0TXk0MElEQnNMUzQyTFM0Mll5MHhMVEV0TVMweUxqVWdNQzB6TGpSTU1UVWdOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPU0F4TVNBMElEUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUVWdNVGt0TXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQTBJRFlnTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3N5cmluZ2VcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBTeXJpbmdlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE4IDIgNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE3IDcgMy0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDkgOC43IDE5LjNjLTEgMS0yLjUgMS0zLjQgMGwtLjYtLjZjLTEtMS0xLTIuNSAwLTMuNEwxNSA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTEgNCA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUgMTktMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDQgNiA2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFN5cmluZ2U7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGFibGUtMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F6U0RWaE1pQXlJREFnTUNBd0xUSWdNblkwYlRZdE5tZ3hNR0V5SURJZ01DQXdJREVnTWlBeWRqUk5PU0F6ZGpFNGJUQWdNR2d4TUdFeUlESWdNQ0F3SURBZ01pMHlWamxOT1NBeU1VZzFZVElnTWlBd0lEQWdNUzB5TFRKV09XMHdJREJvTVRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhYmxlLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUYWJsZTI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOSAzSDVhMiAyIDAgMCAwLTIgMnY0bTYtNmgxMGEyIDIgMCAwIDEgMiAydjRNOSAzdjE4bTAgMGgxMGEyIDIgMCAwIDAgMi0yVjlNOSAyMUg1YTIgMiAwIDAgMS0yLTJWOW0wIDBoMTgnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUYWJsZTI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGFibGUtY2VsbHMtbWVyZ2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qRjJMVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURsV015SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk15QXhOV2d4T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBNWFERTRJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4T0NJZ2FHVnBaMmgwUFNJeE9DSWdlRDBpTXlJZ2VUMGlNeUlnY25nOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWJsZS1jZWxscy1tZXJnZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRhYmxlQ2VsbHNNZXJnZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMXYtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA5VjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNWgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDloMTgnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGFibGVDZWxsc01lcmdlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRhYmxlLWNlbGxzLXNwbGl0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFZXT1NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE5XZ3hPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUE1YURFNElpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhPQ0lnYUdWcFoyaDBQU0l4T0NJZ2VEMGlNeUlnZVQwaU15SWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhYmxlLWNlbGxzLXNwbGl0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGFibGVDZWxsc1NwbGl0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE1VjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNWgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDloMTgnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGFibGVDZWxsc1NwbGl0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRhYmxlLW9mLWNvbnRlbnRzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdOVWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TmlBeE1rZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4T1VneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQTFhQzR3TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01USm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE9XZ3VNREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGFibGUtb2YtY29udGVudHNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUYWJsZU9mQ29udGVudHM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgNUgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEySDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTlIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA1aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTloLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlT2ZDb250ZW50cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0YWJsZS1jb2x1bW5zLXNwbGl0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVFIyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01qQjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTW5ZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5DQTRkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTVRWb09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXphRFpoTWlBeUlEQWdNQ0F4SURJZ01uWXhOR0V5SURJZ01DQXdJREV0TWlBeVNESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdPV2c0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeE5XZ3ROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaklnTTJndE1tRXlJRElnTUNBd0lEQXRNaUF5ZGpFMFlUSWdNaUF3SURBZ01DQXlJREpvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ09XZ3ROQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OU0F6ZGpFNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhYmxlLWNvbHVtbnMtc3BsaXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUYWJsZUNvbHVtbnNTcGxpdDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxNHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIwdjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDh2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE1aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAzaDZhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA5aDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTVoLTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgM2gtMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiA5aC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgM3YxOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUYWJsZUNvbHVtbnNTcGxpdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0YWJsZS1wcm9wZXJ0aWVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNM1l4T0NJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBNVNETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREUxU0RNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhYmxlLXByb3BlcnRpZXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUYWJsZVByb3BlcnRpZXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM3YxOCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA5SDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTVIMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUYWJsZVByb3BlcnRpZXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGFibGUtcm93cy1zcGxpdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRCb01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNakoyTFRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlESjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TUdneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhNR2d5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFNWFERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREl5ZGkwMllUSWdNaUF4TXpVZ01DQXhJREl0TW1neE5HRXlJRElnTkRVZ01DQXhJRElnTW5ZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklESjJNbUV5SURJZ05EVWdNQ0F3SURJZ01tZ3hOR0V5SURJZ01UTTFJREFnTUNBeUxUSldNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TUdneUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlESXlkaTA0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURKMk5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWJsZS1yb3dzLXNwbGl0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGFibGVSb3dzU3BsaXQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTBoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAyMnYtOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNSAydjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMGgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDEwaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxOWgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDIydi02YTIgMiAxMzUgMCAxIDItMmgxNGEyIDIgNDUgMCAxIDIgMnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMnYyYTIgMiA0NSAwIDAgMiAyaDE0YTIgMiAxMzUgMCAwIDItMlYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTBoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIydi04JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgMnY0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlUm93c1NwbGl0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRhYmxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNM1l4T0NJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURsb01UZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVFZvTVRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhYmxlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGFibGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3YxOCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzE4JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDloMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNWgxOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUYWJsZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0YWJsZXQtc21hcnRwaG9uZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRBaUlHaGxhV2RvZEQwaU1UUWlJSGc5SWpNaUlIazlJamdpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDFJRFJoTWlBeUlEQWdNQ0F4SURJdE1tZ3hNbUV5SURJZ01DQXdJREVnTWlBeWRqRTJZVElnTWlBd0lEQWdNUzB5SURKb0xUSXVOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4T0dndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWJsZXQtc21hcnRwaG9uZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRhYmxldFNtYXJ0cGhvbmU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTAnLCBoZWlnaHQ6ICcxNCcsIHg6ICczJywgeTogJzgnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxNmEyIDIgMCAwIDEtMiAyaC0yLjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOGguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGFibGV0U21hcnRwaG9uZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0YWJsZXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UWWlJR2hsYVdkb2REMGlNakFpSUhnOUlqUWlJSGs5SWpJaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVElpSUhneVBTSXhNaTR3TVNJZ2VURTlJakU0SWlCNU1qMGlNVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGFibGV0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGFibGV0OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMjAnLCB4OiAnNCcsIHk6ICcyJywgcng6ICcyJywgcnk6ICcyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMi4wMScsIHkxOiAnMTgnLCB5MjogJzE4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxldDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0YWJsZXRzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTNJaUJqZVQwaU55SWdjajBpTlNJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE55SWdZM2s5SWpFM0lpQnlQU0kxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE4yZ3hNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNeTQwTmlBeE1DNDFOQ0EzTGpBNExUY3VNRGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGFibGV0c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRhYmxldHM6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc3JywgY3k6ICc3JywgcjogJzUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnMTcnLCByOiAnNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN2gxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zLjQ2IDEwLjU0IDcuMDgtNy4wOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUYWJsZXRzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRhZ1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1TlRnMklESXVOVGcyUVRJZ01pQXdJREFnTUNBeE1TNHhOeklnTWtnMFlUSWdNaUF3SURBZ01DMHlJREoyTnk0eE56SmhNaUF5SURBZ01DQXdJQzQxT0RZZ01TNDBNVFJzT0M0M01EUWdPQzQzTURSaE1pNDBNallnTWk0ME1qWWdNQ0F3SURBZ015NDBNaUF3YkRZdU5UZ3ROaTQxT0dFeUxqUXlOaUF5TGpReU5pQXdJREFnTUNBd0xUTXVOREo2SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpjdU5TSWdZM2s5SWpjdU5TSWdjajBpTGpVaUlHWnBiR3c5SW1OMWNuSmxiblJEYjJ4dmNpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWdcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUYWc6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTIuNTg2IDIuNTg2QTIgMiAwIDAgMCAxMS4xNzIgMkg0YTIgMiAwIDAgMC0yIDJ2Ny4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsOC43MDQgOC43MDRhMi40MjYgMi40MjYgMCAwIDAgMy40MiAwbDYuNTgtNi41OGEyLjQyNiAyLjQyNiAwIDAgMCAwLTMuNDJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3LjUnLCBjeTogJzcuNScsIHI6ICcuNScsIGZpbGw6ICdjdXJyZW50Q29sb3InIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGFnO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRhZ3NcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNdU1UY3lJREpoTWlBeUlEQWdNQ0F4SURFdU5ERTBMalU0Tm13MkxqY3hJRFl1TnpGaE1pNDBJREl1TkNBd0lEQWdNU0F3SURNdU5EQTRiQzAwTGpVNU1pQTBMalU1TW1FeUxqUWdNaTQwSURBZ01DQXhMVE11TkRBNElEQnNMVFl1TnpFdE5pNDNNVUV5SURJZ01DQXdJREVnTmlBNUxqRTNNbFl6WVRFZ01TQXdJREFnTVNBeExURjZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRGQyTmk0eE56SmhNaUF5SURBZ01DQXdJQzQxT0RZZ01TNDBNVFJzTmk0M01TQTJMamN4WVRJdU5DQXlMalFnTUNBd0lEQWdNeTR4T1RFdU1Ua3pJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV3TGpVaUlHTjVQU0kyTGpVaUlISTlJaTQxSWlCbWFXeHNQU0pqZFhKeVpXNTBRMjlzYjNJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhZ3NcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUYWdzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEzLjE3MiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNi43MSA2LjcxYTIuNCAyLjQgMCAwIDEgMCAzLjQwOGwtNC41OTIgNC41OTJhMi40IDIuNCAwIDAgMS0zLjQwOCAwbC02LjcxLTYuNzFBMiAyIDAgMCAxIDYgOS4xNzJWM2ExIDEgMCAwIDEgMS0xeicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIgN3Y2LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMCAzLjE5MS4xOTMnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMC41JywgY3k6ICc2LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRhZ3M7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGFsbHktMVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0EwZGpFMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhbGx5LTFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUYWxseTE6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ000IDR2MTYnIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgVGFsbHkxO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRhbGx5LTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMGRqRTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRFIyTVRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhbGx5LTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUYWxseTI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCA0djE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgNHYxNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUYWxseTI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGFsbHktM1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0EwZGpFMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlEUjJNVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURSMk1UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWxseS0zXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGFsbHkzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgNHYxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDR2MTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNHYxNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUYWxseTM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGFsbHktNFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OQ0EwZGpFMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUlEUjJNVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUwSURSMk1UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJRFIyTVRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RhbGx5LTRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUYWxseTQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNCA0djE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgNHYxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA0djE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDR2MTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGFsbHk0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRhbGx5LTVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBMGRqRTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVJRFIyTVRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElEUjJNVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURSMk1UWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJRFlnTWlBeE9DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YWxseS01XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGFsbHk1OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTQgNHYxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDR2MTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgNHYxNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA0djE2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDYgMiAxOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUYWxseTU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGFuZ2VudFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TnlJZ1kzazlJalFpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFMalU1SURVdU5ERWdOUzQwTVNBeE5TNDFPU0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kwSWlCamVUMGlNVGNpSUhJOUlqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl5Y3kwMExUa3RNUzQxTFRFeExqVlRNaklnTVRJZ01qSWdNVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGFuZ2VudFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRhbmdlbnQ6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnNCcsIHI6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1LjU5IDUuNDEgNS40MSAxNS41OScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzQnLCBjeTogJzE3JywgcjogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJzLTQtOS0xLjUtMTEuNVMyMiAxMiAyMiAxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUYW5nZW50O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRhcmdldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSTJJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90YXJnZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUYXJnZXQ6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnNicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRhcmdldDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0ZWxlc2NvcGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRBdU1EWTFJREV5TGpRNU15MDJMakU0SURFdU16RTRZUzQ1TXpRdU9UTTBJREFnTUNBeExURXVNVEE0TFM0M01ESnNMUzQxTXpjdE1pNHhOV0V4TGpBM0lERXVNRGNnTUNBd0lERWdMalk1TVMweExqSTJOV3d4TXk0MU1EUXROQzQwTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRNdU5UWWdNVEV1TnpRM0lEUXVNek15TFM0NU1qUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJJREl4TFRNdU1UQTFMVFl1TWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMkxqUTROU0ExTGprMFlUSWdNaUF3SURBZ01TQXhMalExTlMweUxqUXlOV3d4TGpBNUxTNHlOekpoTVNBeElEQWdNQ0F4SURFdU1qRXlMamN5TjJ3eExqVXhOU0EyTGpBMllURWdNU0F3SURBZ01TMHVOekkzSURFdU1qRXpiQzB4TGpBNUxqSTNNbUV5SURJZ01DQXdJREV0TWk0ME1qVXRNUzQwTlRWNklpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMkxqRTFPQ0E0TGpZek15QXhMakV4TkNBMExqUTFOaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0F5TVNBekxqRXdOUzAyTGpJeElpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1UTWlJSEk5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RlbGVzY29wZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRlbGVzY29wZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xMC4wNjUgMTIuNDkzLTYuMTggMS4zMThhLjkzNC45MzQgMCAwIDEtMS4xMDgtLjcwMmwtLjUzNy0yLjE1YTEuMDcgMS4wNyAwIDAgMSAuNjkxLTEuMjY1bDEzLjUwNC00LjQ0JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuNTYgMTEuNzQ3IDQuMzMyLS45MjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMjEtMy4xMDUtNi4yMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNi40ODUgNS45NGEyIDIgMCAwIDEgMS40NTUtMi40MjVsMS4wOS0uMjcyYTEgMSAwIDAgMSAxLjIxMi43MjdsMS41MTUgNi4wNmExIDEgMCAwIDEtLjcyNyAxLjIxM2wtMS4wOS4yNzJhMiAyIDAgMCAxLTIuNDI1LTEuNDU1eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTYuMTU4IDguNjMzIDEuMTE0IDQuNDU2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMjEgMy4xMDUtNi4yMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMycsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRlbGVzY29wZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0ZW50LXRyZWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJMElpQmplVDBpTkNJZ2NqMGlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFFnTlNBekxUTWdNeUF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TkNBeE1DQXpMVE1nTXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhORll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBeE5FZzNiQzAxSURob01qQmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREUwZGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRrZ01UUWdOU0E0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGVudC10cmVlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGVudFRyZWU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICc0JywgY3k6ICc0JywgcjogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTQgNSAzLTMgMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDEwIDMtMyAzIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTRWMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNEg3bC01IDhoMjBaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTR2OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE0IDUgOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUZW50VHJlZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0ZW50XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15NDFJREl4SURFMElETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdMalVnTWpFZ01UQWdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFV1TlNBeU1TQXhNaUF4Tld3dE15NDFJRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTWpGb01qQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZW50XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGVudDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zLjUgMjEgMTQgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC41IDIxIDEwIDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUuNSAyMSAxMiAxNWwtMy41IDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMWgyMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUZW50O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRlc3QtdHViZS1kaWFnb25hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTnlBMkxqZ3lJREl4TGpFNFlUSXVPRE1nTWk0NE15QXdJREFnTVMwekxqazVMUzR3TVdFeUxqZ3pJREl1T0RNZ01DQXdJREVnTUMwMFRERTNJRE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUySURJZ05pQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TmtnMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Rlc3QtdHViZS1kaWFnb25hbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRlc3RUdWJlRGlhZ29uYWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNyA2LjgyIDIxLjE4YTIuODMgMi44MyAwIDAgMS0zLjk5LS4wMWEyLjgzIDIuODMgMCAwIDEgMC00TDE3IDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMiA2IDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTZINCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUZXN0VHViZURpYWdvbmFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRlcm1pbmFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGxvT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TkNBeE55QTJMVFl0TmkwMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Rlcm1pbmFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGVybWluYWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTloOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ200IDE3IDYtNi02LTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGVybWluYWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGVzdC10dWJlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVOU0F5ZGpFM0xqVmpNQ0F4TGpRdE1TNHhJREl1TlMweUxqVWdNaTQxWXkweExqUWdNQzB5TGpVdE1TNHhMVEl1TlMweUxqVldNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQzQxSURKb055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVOU0F4Tm1ndE5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXN0LXR1YmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUZXN0VHViZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNC41IDJ2MTcuNWMwIDEuNC0xLjEgMi41LTIuNSAyLjVjLTEuNCAwLTIuNS0xLjEtMi41LTIuNVYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTguNSAyaDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuNSAxNmgtNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUZXN0VHViZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0ZXN0LXR1YmVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9TQXlkakUzTGpWQk1pNDFJREl1TlNBd0lEQWdNU0EyTGpVZ01qSkJNaTQxSURJdU5TQXdJREFnTVNBMElERTVMalZXTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01uWXhOeTQxWVRJdU5TQXlMalVnTUNBd0lERXRNaTQxSURJdU5XRXlMalVnTWk0MUlEQWdNQ0F4TFRJdU5TMHlMalZXTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeWFEY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTBJREpvTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE5rZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNQ0F4Tm1ndE5TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXN0LXR1YmVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGVzdFR1YmVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTkgMnYxNy41QTIuNSAyLjUgMCAwIDEgNi41IDIyQTIuNSAyLjUgMCAwIDEgNCAxOS41VjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMnYxNy41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWEyLjUgMi41IDAgMCAxLTIuNS0yLjVWMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDJoNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyaDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNkg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE2aC01JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRlc3RUdWJlcztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0ZXh0LWFsaWduLWNlbnRlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTlVneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE55QXhNa2czSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBeE9VZzFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXh0LWFsaWduLWNlbnRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRleHRBbGlnbkNlbnRlcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSA1SDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTJINycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxOUg1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRBbGlnbkNlbnRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0ZXh0LWFsaWduLWVuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTlVneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhNa2c1SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE9VZzNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXh0LWFsaWduLWVuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRleHRBbGlnbkVuZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSA1SDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJIOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxOUg3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRBbGlnbkVuZDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0ZXh0LWFsaWduLWp1c3RpZnlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBMWFERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJREV5YURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTVhREU0SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGV4dC1hbGlnbi1qdXN0aWZ5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGV4dEFsaWduSnVzdGlmeTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDVoMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmgxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE5aDE4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRBbGlnbkp1c3RpZnk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGV4dC1hbGlnbi1zdGFydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTlVneklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhNa2d6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TnlBeE9VZ3pJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXh0LWFsaWduLXN0YXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGV4dEFsaWduU3RhcnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNUgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDEySDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTlIMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUZXh0QWxpZ25TdGFydDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0ZXh0LWN1cnNvci1pbnB1dFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpCb0xURmhNaUF5SURBZ01DQXhMVEl0TWlBeUlESWdNQ0F3SURFdE1pQXlTRFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV6SURob04yRXlJRElnTUNBd0lERWdNaUF5ZGpSaE1pQXlJREFnTUNBeExUSWdNbWd0TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE5rZzBZVElnTWlBd0lEQWdNUzB5TFRKMkxUUmhNaUF5SURBZ01DQXhJREl0TW1neElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEUm9NV0V5SURJZ01DQXdJREVnTWlBeUlESWdNaUF3SURBZ01TQXlMVEpvTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBMmRqRXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXh0LWN1cnNvci1pbnB1dFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRleHRDdXJzb3JJbnB1dDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMGgtMWEyIDIgMCAwIDEtMi0yIDIgMiAwIDAgMS0yIDJINicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyA4aDdhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxNkg0YTIgMiAwIDAgMS0yLTJ2LTRhMiAyIDAgMCAxIDItMmgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgNGgxYTIgMiAwIDAgMSAyIDIgMiAyIDAgMCAxIDItMmgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkgNnYxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUZXh0Q3Vyc29ySW5wdXQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGV4dC1jdXJzb3JcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01qSm9MVEZoTkNBMElEQWdNQ0F4TFRRdE5GWTJZVFFnTkNBd0lEQWdNU0EwTFRSb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXlNbWd4WVRRZ05DQXdJREFnTUNBMExUUjJMVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTW1neFlUUWdOQ0F3SURBZ01TQTBJRFIyTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RleHQtY3Vyc29yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGV4dEN1cnNvcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNyAyMmgtMWE0IDQgMCAwIDEtNC00VjZhNCA0IDAgMCAxIDQtNGgxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjJoMWE0IDQgMCAwIDAgNC00di0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMmgxYTQgNCAwIDAgMSA0IDR2MScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUZXh0Q3Vyc29yO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRleHQtcXVvdGVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ05VZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TWtnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhPVWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFeWRqY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXh0LXF1b3RlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGV4dFF1b3RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE3IDVIMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMkg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE5SDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMnY3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRRdW90ZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0ZXh0LWluaXRpYWxcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRVZ05XZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0F4TW1nMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklERTVhREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB6SURFeUlETXVOVFV6TFRjdU56STBZUzQxTGpVZ01DQXdJREVnTGpnNU5DQXdUREV4SURFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswekxqa3lJREV3YURZdU1UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXh0LWluaXRpYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUZXh0SW5pdGlhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNSA1aDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTJoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE5aDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTMgMTIgMy41NTMtNy43MjRhLjUuNSAwIDAgMSAuODk0IDBMMTEgMTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMy45MiAxMGg2LjE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRJbml0aWFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRleHQtc2VhcmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdOVWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TUNBeE1rZ3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4T1VneklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTNJaUJqZVQwaU1UVWlJSEk5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRJeElERTVMVEV1T1MweExqa2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXh0LXNlYXJjaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRleHRTZWFyY2g6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgNUgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEySDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTlIMycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE3JywgY3k6ICcxNScsIHI6ICczJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDE5LTEuOS0xLjknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGV4dFNlYXJjaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0ZXh0LXNlbGVjdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTWpGb01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNMmd4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBellUSWdNaUF3SURBZ01TQXlJRElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4SURFMGRqRWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJREU1WVRJZ01pQXdJREFnTVMweUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhJRGwyTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE5IWXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRGwyTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeU1XRXlJRElnTUNBd0lERXRNaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSUROaE1pQXlJREFnTUNBd0xUSWdNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4TW1neE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXhObWcySWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURob09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TQXlNV2d4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SUROb01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXh0LXNlbGVjdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRleHRTZWxlY3Q6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjFoMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAzaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgM2EyIDIgMCAwIDEgMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE0djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTlhMiAyIDAgMCAxLTIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA5djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxNHYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgOXYxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMjFhMiAyIDAgMCAxLTItMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDNhMiAyIDAgMCAwLTIgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEyaDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTZoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDhoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDIxaDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAzaDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGV4dFNlbGVjdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0aGVhdGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNSE16TFRNZ015MDRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF4TUhNdE15MHpMVE10T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01tTXdJRFF1TkMwekxqWWdPQzA0SURnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMElESmpNQ0EwTGpRZ015NDJJRGdnT0NBNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERXdjeklnTWlBeUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREV3Y3kweUlESXRNaUExSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFMWFEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNakoyTFRGaE1pQXlJREFnTUNBeElESXRNbWcwWVRJZ01pQXdJREFnTVNBeUlESjJNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTWpKMkxURmhNaUF5SURBZ01DQXhJREl0TW1nMFlUSWdNaUF3SURBZ01TQXlJREoyTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RoZWF0ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUaGVhdGVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMTBzMy0zIDMtOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxMHMtMy0zLTMtOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyYzAgNC40LTMuNiA4LTggOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyYzAgNC40IDMuNiA4IDggOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEwczIgMiAyIDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTBzLTIgMi0yIDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNWg4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMjJ2LTFhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRoZWF0ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGV4dC13cmFwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UWWdNVFl0TXlBeklETWdNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1neE5DNDFZVEVnTVNBd0lEQWdNU0F3SURkSU1UTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVGxvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTXlBMWFERTRJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90ZXh0LXdyYXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUZXh0V3JhcDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxNi0zIDMgMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJoMTQuNWExIDEgMCAwIDEgMCA3SDEzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgMTloNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDVoMTgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGV4dFdyYXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGhlcm1vbWV0ZXItc25vd2ZsYWtlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UQWdNakF0TVM0eU5TMHlMalZNTmlBeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdOQ0E0TGpjMUlEWXVOU0EySURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0xqVTROU0F4TlVneE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNbWcyTGpWTU1UQWdPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakFnTVRRdU5UUmhOQ0EwSURBZ01TQXhMVFFnTUZZMFlUSWdNaUF3SURBZ01TQTBJREI2SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAwSURFd0lERXVOU0F5VERRZ01UUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY2dNakVnTXkwMkxURXVOUzB6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAzSURNZ015QTJhRElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGhlcm1vbWV0ZXItc25vd2ZsYWtlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGhlcm1vbWV0ZXJTbm93Zmxha2U6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTAgMjAtMS4yNS0yLjVMNiAxOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA0IDguNzUgNi41IDYgNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC41ODUgMTVIMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmg2LjVMMTAgOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAxNC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMHonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNCAxMCAxLjUgMkw0IDE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMjEgMy02LTEuNS0zJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcgMyAzIDZoMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUaGVybW9tZXRlclNub3dmbGFrZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0aGVybW9tZXRlci1zdW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE0WVRRZ05DQXdJREFnTUMweExqWTBOU0EzTGpZME55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNbWd5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeE5DNDFOR0UwSURRZ01DQXhJREV0TkNBd1ZqUmhNaUF5SURBZ01DQXhJRFFnTUhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRRdU9UTWdOQzQ1TXlBeExqUXhJREV1TkRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRZdU16UWdNVGN1TmpZdE1TNDBNU0F4TGpReElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RoZXJtb21ldGVyLXN1blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRoZXJtb21ldGVyU3VuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4YTQgNCAwIDAgMC0xLjY0NSA3LjY0NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDEyaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTQuOTMgNC45MyAxLjQxIDEuNDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtNi4zNCAxNy42Ni0xLjQxIDEuNDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGhlcm1vbWV0ZXJTdW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGhlcm1vbWV0ZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ05IWXhNQzQxTkdFMElEUWdNQ0F4SURFdE5DQXdWalJoTWlBeUlEQWdNQ0F4SURRZ01Gb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aGVybW9tZXRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRoZXJtb21ldGVyOiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdNMTQgNHYxMC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMFonIH1dXTtcblxuZXhwb3J0IGRlZmF1bHQgVGhlcm1vbWV0ZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGh1bWJzLWRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE9DNHhNaUF4TUNBeE5FZzBMakUzWVRJZ01pQXdJREFnTVMweExqa3lMVEl1TlRac01pNHpNeTA0UVRJZ01pQXdJREFnTVNBMkxqVWdNa2d5TUdFeUlESWdNQ0F3SURFZ01pQXlkamhoTWlBeUlEQWdNQ0F4TFRJZ01tZ3RNaTQzTm1FeUlESWdNQ0F3SURBdE1TNDNPU0F4TGpFeFRERXlJREl5WVRNdU1UTWdNeTR4TXlBd0lEQWdNUzB6TFRNdU9EaGFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeUF4TkZZeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RodW1icy1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGh1bWJzRG93bjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ005IDE4LjEyIDEwIDE0SDQuMTdhMiAyIDAgMCAxLTEuOTItMi41NmwyLjMzLThBMiAyIDAgMCAxIDYuNSAySDIwYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjc2YTIgMiAwIDAgMC0xLjc5IDEuMTFMMTIgMjJhMy4xMyAzLjEzIDAgMCAxLTMtMy44OFonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNFYyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRodW1ic0Rvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGh1bWJzLXVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdOUzQ0T0NBeE5DQXhNR2cxTGpnellUSWdNaUF3SURBZ01TQXhMamt5SURJdU5UWnNMVEl1TXpNZ09FRXlJRElnTUNBd0lERWdNVGN1TlNBeU1rZzBZVElnTWlBd0lEQWdNUzB5TFRKMkxUaGhNaUF5SURBZ01DQXhJREl0TW1neUxqYzJZVElnTWlBd0lEQWdNQ0F4TGpjNUxURXVNVEZNTVRJZ01tRXpMakV6SURNdU1UTWdNQ0F3SURFZ015QXpMamc0V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE1IWXhNaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGh1bWJzLXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGh1bWJzVXA6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUgNS44OCAxNCAxMGg1LjgzYTIgMiAwIDAgMSAxLjkyIDIuNTZsLTIuMzMgOEEyIDIgMCAwIDEgMTcuNSAyMkg0YTIgMiAwIDAgMS0yLTJ2LThhMiAyIDAgMCAxIDItMmgyLjc2YTIgMiAwIDAgMCAxLjc5LTEuMTFMMTIgMmEzLjEzIDMuMTMgMCAwIDEgMyAzLjg4WicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTB2MTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGh1bWJzVXA7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGlja2V0LWNoZWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTVZVE1nTXlBd0lEQWdNU0F3SURaMk1tRXlJRElnTUNBd0lEQWdNaUF5YURFMllUSWdNaUF3SURBZ01DQXlMVEoyTFRKaE15QXpJREFnTUNBeElEQXRObFkzWVRJZ01pQXdJREFnTUMweUxUSklOR0V5SURJZ01DQXdJREF0TWlBeVdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhNaUF5SURJZ05DMDBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aWNrZXQtY2hlY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUaWNrZXRDaGVjazogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSAxMiAyIDIgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRpY2tldENoZWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRpY2tldC1taW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUE1WVRNZ015QXdJREFnTVNBd0lEWjJNbUV5SURJZ01DQXdJREFnTWlBeWFERTJZVElnTWlBd0lEQWdNQ0F5TFRKMkxUSmhNeUF6SURBZ01DQXhJREF0TmxZM1lUSWdNaUF3SURBZ01DMHlMVEpJTkdFeUlESWdNQ0F3SURBdE1pQXlXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4TW1nMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RpY2tldC1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRpY2tldE1pbnVzOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMlonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005IDEyaDYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGlja2V0TWludXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGlja2V0LXBlcmNlbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBNVlUTWdNeUF3SURFZ01TQXdJRFoyTW1FeUlESWdNQ0F3SURBZ01pQXlhREUyWVRJZ01pQXdJREFnTUNBeUxUSjJMVEpoTXlBeklEQWdNU0F4SURBdE5sWTNZVElnTWlBd0lEQWdNQzB5TFRKSU5HRXlJRElnTUNBd0lEQXRNaUF5V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBNWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFVnT1MwMklEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJREUxYUM0d01TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aWNrZXQtcGVyY2VudFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRpY2tldFBlcmNlbnQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMiA5YTMgMyAwIDEgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMSAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTkgOWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgOS02IDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTVoLjAxJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRpY2tldFBlcmNlbnQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGlja2V0LXBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBNVlUTWdNeUF3SURBZ01TQXdJRFoyTW1FeUlESWdNQ0F3SURBZ01pQXlhREUyWVRJZ01pQXdJREFnTUNBeUxUSjJMVEpoTXlBeklEQWdNQ0F4SURBdE5sWTNZVElnTWlBd0lEQWdNQzB5TFRKSU5HRXlJRElnTUNBd0lEQXRNaUF5V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE1tZzJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE1ZGpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RpY2tldC1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGlja2V0UGx1czogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxMmg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDl2NicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUaWNrZXRQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRpY2tldC1zbGFzaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUE1WVRNZ015QXdJREFnTVNBd0lEWjJNbUV5SURJZ01DQXdJREFnTWlBeWFERTJZVElnTWlBd0lEQWdNQ0F5TFRKMkxUSmhNeUF6SURBZ01DQXhJREF0TmxZM1lUSWdNaUF3SURBZ01DMHlMVEpJTkdFeUlESWdNQ0F3SURBdE1pQXlXaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzQxSURFMExqVWdOUzAxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGlja2V0LXNsYXNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGlja2V0U2xhc2g6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSAxNC41IDUtNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUaWNrZXRTbGFzaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0aWNrZXQteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUE1WVRNZ015QXdJREFnTVNBd0lEWjJNbUV5SURJZ01DQXdJREFnTWlBeWFERTJZVElnTWlBd0lEQWdNQ0F5TFRKMkxUSmhNeUF6SURBZ01DQXhJREF0TmxZM1lUSWdNaUF3SURBZ01DMHlMVEpJTkdFeUlESWdNQ0F3SURBdE1pQXlXaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPUzQxSURFMExqVWdOUzAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTA1TGpVZ09TNDFJRFVnTlNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RpY2tldC14XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGlja2V0WDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOS41IDE0LjUgNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkuNSA5LjUgNSA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRpY2tldFg7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGlja2V0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQTVZVE1nTXlBd0lEQWdNU0F3SURaMk1tRXlJRElnTUNBd0lEQWdNaUF5YURFMllUSWdNaUF3SURBZ01DQXlMVEoyTFRKaE15QXpJREFnTUNBeElEQXRObFkzWVRJZ01pQXdJREFnTUMweUxUSklOR0V5SURJZ01DQXdJREF0TWlBeVdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdOWFl5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TXlBeE4zWXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNeUF4TVhZeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RpY2tldFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRpY2tldDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgNXYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEzIDE3djInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMTF2MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUaWNrZXQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGlja2V0cy1wbGFuZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TlNBeE4yZ3hMakl5TjJFeUlESWdNQ0F3SURBZ01TNHpORFV0TGpVeVRERTRJREV5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4TWlBeE15NDFJRE11TnpVdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE15NHhOek1nT0M0eE9DQXhNUzAxWVRJZ01pQXdJREFnTVNBeUxqWTBOeTQ1T1ROTU1UZ3VOVFlnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1GWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREUwZGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UbDJNaUlnTHo0S0lDQThjbVZqZENCNFBTSXlJaUI1UFNJNElpQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVE1pSUhKNFBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aWNrZXRzLXBsYW5lXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGlja2V0c1BsYW5lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwLjUgMTdoMS4yMjdhMiAyIDAgMCAwIDEuMzQ1LS41MkwxOCAxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiAxMy41IDMuNzUuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zLjE3MyA4LjE4IDExLTVhMiAyIDAgMCAxIDIuNjQ3Ljk5M0wxOC41NiA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTBWOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE0djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOXYyJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICc4Jywgd2lkdGg6ICcyMCcsIGhlaWdodDogJzEzJywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRpY2tldHNQbGFuZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0aWNrZXRzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE15NHhOek1nT0M0eE9DQXhNUzAxWVRJZ01pQXdJREFnTVNBeUxqWTBOeTQ1T1ROTU1UZ3VOVFlnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1GWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREUwZGpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01UbDJNaUlnTHo0S0lDQThjbVZqZENCNFBTSXlJaUI1UFNJNElpQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVE1pSUhKNFBTSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aWNrZXRzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGlja2V0czogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20zLjE3MyA4LjE4IDExLTVhMiAyIDAgMCAxIDIuNjQ3Ljk5M0wxOC41NiA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTBWOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE0djEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxOXYyJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICc4Jywgd2lkdGg6ICcyMCcsIGhlaWdodDogJzEzJywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRpY2tldHM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGltZXItcmVzZXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TkhZdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQXhNMkU0SURnZ01DQXdJREVnT0MwM0lEZ2dPQ0F3SURFZ01TMDFMak1nTVRSTU5DQXhOeTQySWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1SURFM1NEUjJOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdGltZXItcmVzZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUaW1lclJlc2V0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDJoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNHYtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000IDEzYTggOCAwIDAgMSA4LTcgOCA4IDAgMSAxLTUuMyAxNEw0IDE3LjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxN0g0djUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGltZXJSZXNldDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0aW1lci1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01tZzBJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBMallnTVRGaE9DQTRJREFnTUNBd0lERXVOeUE0TGpjZ09DQTRJREFnTUNBd0lEZ3VOeUF4TGpjaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjdU5DQTNMalJoT0NBNElEQWdNQ0F4SURFd0xqTWdNU0E0SURnZ01DQXdJREVnTGprZ01UQXVNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TW5ZdE1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90aW1lci1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUaW1lck9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAyaDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC42IDExYTggOCAwIDAgMCAxLjcgOC43IDggOCAwIDAgMCA4LjcgMS43JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTJ2LTInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGltZXJPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdGltZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4YkdsdVpTQjRNVDBpTVRBaUlIZ3lQU0l4TkNJZ2VURTlJaklpSUhreVBTSXlJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSXhNaUlnZURJOUlqRTFJaUI1TVQwaU1UUWlJSGt5UFNJeE1TSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRTBJaUJ5UFNJNElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RpbWVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVGltZXI6IEljb25Ob2RlID0gW1xuICBbJ2xpbmUnLCB7IHgxOiAnMTAnLCB4MjogJzE0JywgeTE6ICcyJywgeTI6ICcyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxNScsIHkxOiAnMTQnLCB5MjogJzExJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE0JywgcjogJzgnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVGltZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdG9nZ2xlLWxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJNUlpQmplVDBpTVRJaUlISTlJak1pSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpJd0lpQm9aV2xuYUhROUlqRTBJaUI0UFNJeUlpQjVQU0kxSWlCeWVEMGlOeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdG9nZ2xlLWxlZnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUb2dnbGVMZWZ0OiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnMTInLCByOiAnMycgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE0JywgeDogJzInLCB5OiAnNScsIHJ4OiAnNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUb2dnbGVMZWZ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRvZ2dsZS1yaWdodFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TlNJZ1kzazlJakV5SWlCeVBTSXpJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJeE5DSWdlRDBpTWlJZ2VUMGlOU0lnY25nOUlqY2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90b2dnbGUtcmlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUb2dnbGVSaWdodDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzE1JywgY3k6ICcxMicsIHI6ICczJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTQnLCB4OiAnMicsIHk6ICc1Jywgcng6ICc3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRvZ2dsZVJpZ2h0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRvaWxldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUF4TW1neE0yRXhJREVnTUNBd0lERWdNU0F4SURVZ05TQXdJREFnTVMwMUlEVm9MUzQxT1RoaExqVXVOU0F3SURBZ01DMHVOREkwTGpjMk5Xd3hMalUwTkNBeUxqUTNZUzQxTGpVZ01DQXdJREV0TGpReU5DNDNOalZJTlM0ME1ESmhMalV1TlNBd0lEQWdNUzB1TkRJMExTNDNOalZNTnlBeE9DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhPR0UxSURVZ01DQXdJREV0TlMwMVZqUmhNaUF5SURBZ01DQXhJREl0TW1nNFlUSWdNaUF3SURBZ01TQXlJREoyT0NJZ0x6NEtQQzl6ZG1jKykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdG9pbGV0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVG9pbGV0OiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTcgMTJoMTNhMSAxIDAgMCAxIDEgMSA1IDUgMCAwIDEtNSA1aC0uNTk4YS41LjUgMCAwIDAtLjQyNC43NjVsMS41NDQgMi40N2EuNS41IDAgMCAxLS40MjQuNzY1SDUuNDAyYS41LjUgMCAwIDEtLjQyNC0uNzY1TDcgMTgnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE4YTUgNSAwIDAgMS01LTVWNGEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnY4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRvaWxldDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0b29sLWNhc2VcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UVm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFF1T0RFM0lERXdMams1TlMwdU9UY3hMVEV1TkRVZ01TNHdNelF0TVM0eU16SmhNaUF5SURBZ01DQXdMVEl1TURJMUxUTXVNak00YkMweExqZ3lMak0yTkV3NUxqa3hJRE11T0RnMVlUSWdNaUF3SURBZ01DMHpMall5TlM0M05EaE1OaTR4TkRFZ05pNDFOV3d0TVM0M01qVXVOREkyWVRJZ01pQXdJREFnTUMwdU1Ua2dNeTQzTlRac0xqWTFOeTR5TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRndU9ESXlJREV3TGprNU5TQXlMakkyTFRVdU16aGhNU0F4SURBZ01DQXdMUzQxTlRjdE1TNHpNVGhNTVRZdU9UVTBJREl1T1dFeElERWdNQ0F3SURBdE1TNHlPREV1TlRNemJDMHVPVEkwSURJdU1USXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREV5TGpBd05rRXhJREVnTUNBd0lERWdOQzQ1T1RRZ01URklNVGxoTVNBeElEQWdNQ0F4SURFZ01YWTNZVElnTWlBd0lEQWdNUzB5SURKSU5tRXlJRElnTUNBd0lERXRNaTB5ZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Rvb2wtY2FzZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRvb2xDYXNlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE1aDQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTQuODE3IDEwLjk5NS0uOTcxLTEuNDUgMS4wMzQtMS4yMzJhMiAyIDAgMCAwLTIuMDI1LTMuMjM4bC0xLjgyLjM2NEw5LjkxIDMuODg1YTIgMiAwIDAgMC0zLjYyNS43NDhMNi4xNDEgNi41NWwtMS43MjUuNDI2YTIgMiAwIDAgMC0uMTkgMy43NTZsLjY1Ny4yNycsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE4LjgyMiAxMC45OTUgMi4yNi01LjM4YTEgMSAwIDAgMC0uNTU3LTEuMzE4TDE2Ljk1NCAyLjlhMSAxIDAgMCAwLTEuMjgxLjUzM2wtLjkyNCAyLjEyMicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTIuMDA2QTEgMSAwIDAgMSA0Ljk5NCAxMUgxOWExIDEgMCAwIDEgMSAxdjdhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ6JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRvb2xDYXNlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRvb2xib3hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01USjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTm1FeUlESWdNQ0F3SURFZ01TNDBNVFF1TlRnMmJEUWdORUV5SURJZ01DQXdJREVnTWpJZ01USjJOMkV5SURJZ01DQXdJREV0TWlBeVNEUmhNaUF5SURBZ01DQXhMVEl0TW5ZdE4yRXlJRElnTUNBd0lERWdMalU0TmkweExqUXhOR3cwTFRSQk1pQXlJREFnTUNBeElEZ2dObm9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURaV05HRXlJRElnTUNBd0lEQXRNaTB5YUMwMFlUSWdNaUF3SURBZ01DMHlJREoyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeE5HZ3lNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TW5ZMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Rvb2xib3hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUb29sYm94OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDEydjQnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYgNmEyIDIgMCAwIDEgMS40MTQuNTg2bDQgNEEyIDIgMCAwIDEgMjIgMTJ2N2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtN2EyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LTRBMiAyIDAgMCAxIDggNnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxNGgyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEydjQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVG9vbGJveDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0b3JuYWRvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdORWd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBNFNEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTVJREV5U0RraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTJhQzAySWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TVNBeU1FZzVJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90b3JuYWRvXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVG9ybmFkbzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMSA0SDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOEg2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDEySDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTZoLTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMjBIOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUb3JuYWRvO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRvcnVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVElpSUdONVBTSXhNU0lnY25nOUlqTWlJSEo1UFNJeUlpQXZQZ29nSUR4bGJHeHBjSE5sSUdONFBTSXhNaUlnWTNrOUlqRXlMalVpSUhKNFBTSXhNQ0lnY25rOUlqZ3VOU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdG9ydXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUb3J1czogSWNvbk5vZGUgPSBbXG4gIFsnZWxsaXBzZScsIHsgY3g6ICcxMicsIGN5OiAnMTEnLCByeDogJzMnLCByeTogJzInIH1dLFxuICBbJ2VsbGlwc2UnLCB7IGN4OiAnMTInLCBjeTogJzEyLjUnLCByeDogJzEwJywgcnk6ICc4LjUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVG9ydXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdG91Y2hwYWQtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakIyTFRZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUxqWTFOaUF4TkVneU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhOR2d4TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeUlESXdJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TUNBeU1FZzBZVElnTWlBd0lEQWdNUzB5TFRKV05tRXlJRElnTUNBd0lERWdNaTB5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA1TGpZMU5pQTBTREl3WVRJZ01pQXdJREFnTVNBeUlESjJNVEF1TXpRMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RvdWNocGFkLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRvdWNocGFkT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwdi02JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5LjY1NiAxNEgyMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDE0aDEyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAyMEg0YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuNjU2IDRIMjBhMiAyIDAgMCAxIDIgMnYxMC4zNDQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVG91Y2hwYWRPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdG91Y2hwYWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlNVFlpSUhnOUlqSWlJSGs5SWpRaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURFMGFESXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5TUhZdE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90b3VjaHBhZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRvdWNocGFkOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTYnLCB4OiAnMicsIHk6ICc0Jywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTRoMjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjB2LTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVG91Y2hwYWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdG93ZXItY29udHJvbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGd1TWlBeE1pNHlOeUF5TUNBMlNEUnNNUzQ0SURZdU1qZGhNU0F4SURBZ01DQXdJQzQ1TlM0M00yZ3hNQzQxWVRFZ01TQXdJREFnTUNBdU9UWXRMamN6V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE0zWTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF5TW5ZdE9TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQTJJREVnTnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRVZ05pMHhJRGNpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV5SURaV01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdNbWd0TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Rvd2VyLWNvbnRyb2xcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUb3dlckNvbnRyb2w6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTguMiAxMi4yNyAyMCA2SDRsMS44IDYuMjdhMSAxIDAgMCAwIC45NS43M2gxMC41YTEgMSAwIDAgMCAuOTYtLjczWicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEzdjknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMjJ2LTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOSA2IDEgNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA2LTEgNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA2VjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTMgMmgtMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUb3dlckNvbnRyb2w7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdG95LWJyaWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRJaUlIZzlJak1pSUhrOUlqZ2lJSEo0UFNJeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1DQTRWalZqTUMwdU5pMHVOQzB4TFRFdE1VZzJZVEVnTVNBd0lEQWdNQzB4SURGMk15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dPRlkxWXpBdExqWXRMalF0TVMweExURm9MVE5oTVNBeElEQWdNQ0F3TFRFZ01YWXpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90b3ktYnJpY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUb3lCcmljazogSWNvbk5vZGUgPSBbXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzEyJywgeDogJzMnLCB5OiAnOCcsIHJ4OiAnMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA4VjVjMC0uNi0uNC0xLTEtMWgtM2ExIDEgMCAwIDAtMSAxdjMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVG95QnJpY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdHJhZmZpYy1jb25lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVNRFVnTVRBdU9UWTJZVFVnTWk0MUlEQWdNQ0F4TFRndU1TQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaTQ1TWpNZ01UUXVNRFE1SURRdU5EZ2dNaTR3TkdFeElERWdNQ0F3SURFZ0xqQXdNU0F4TGpnek1Xd3RPQzQxTnpRZ015NDVZVElnTWlBd0lEQWdNUzB4TGpZMklEQnNMVGd1TlRjMExUTXVPVEZoTVNBeElEQWdNQ0F4SURBdE1TNDRNMncwTGpRNE5DMHlMakEwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4Tmk0NU5Ea2dNVFF1TVRSaE5TQXlMalVnTUNBeElERXRPUzQ1SURCTU1UQXVNRFl6SURNdU5XRXlJRElnTUNBd0lERWdNeTQ0TnpRZ01Ib2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa3VNVGswSURZdU5UZGhOU0F5TGpVZ01DQXdJREFnTlM0Mk1TQXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmFmZmljLWNvbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUcmFmZmljQ29uZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNi4wNSAxMC45NjZhNSAyLjUgMCAwIDEtOC4xIDAnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdtMTYuOTIzIDE0LjA0OSA0LjQ4IDIuMDRhMSAxIDAgMCAxIC4wMDEgMS44MzFsLTguNTc0IDMuOWEyIDIgMCAwIDEtMS42NiAwbC04LjU3NC0zLjkxYTEgMSAwIDAgMSAwLTEuODNsNC40ODQtMi4wNCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTE2Ljk0OSAxNC4xNGE1IDIuNSAwIDEgMS05LjkgMEwxMC4wNjMgMy41YTIgMiAwIDAgMSAzLjg3NCAweicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005LjE5NCA2LjU3YTUgMi41IDAgMCAwIDUuNjEgMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcmFmZmljQ29uZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0cmFjdG9yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UQWdNVEVnTVRFZ0xqbGhNU0F4SURBZ01DQXhJQzQ0SURFdU1Xd3RMalkyTlNBMExqRTFPR0V4SURFZ01DQXdJREV0TGprNE9DNDROREpJTWpBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMklERTRhQzAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBMVlURWdNU0F3SURBZ01DMHhJREYyTlM0MU56TWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdOR2c0TGpFeU9XRXhJREVnTUNBd0lERWdMams1TGpnMk0wd3hNeUF4TVM0eU5EWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNVEZXTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE5XZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRBdU1WWTBJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU0SWlCamVUMGlNVGdpSUhJOUlqSWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOeUlnWTNrOUlqRTFJaUJ5UFNJMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyYWN0b3JcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUcmFjdG9yOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTEwIDExIDExIC45YTEgMSAwIDAgMSAuOCAxLjFsLS42NjUgNC4xNThhMSAxIDAgMCAxLS45ODguODQySDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE4aC01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDVhMSAxIDAgMCAwLTEgMXY1LjU3MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDRoOC4xMjlhMSAxIDAgMCAxIC45OS44NjNMMTMgMTEuMjQ2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTFWNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDE1aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEwLjFWNCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxOCcsIHI6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNycsIGN5OiAnMTUnLCByOiAnNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcmFjdG9yO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRyYWluLWZyb250LXR1bm5lbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF5TWxZeE1tRXhNQ0F4TUNBd0lERWdNU0F5TUNBd2RqRXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0EyTGpoMk1TNDBZVE1nTWk0NElEQWdNU0F4TFRZZ01GWTJMamdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3SURFMWFDNHdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRWb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4T1dFMElEUWdNQ0F3SURFdE5DMDBkaTB6WVRZZ05pQXdJREVnTVNBeE1pQXdkak5oTkNBMElEQWdNQ0F4TFRRZ05Gb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUa2dNVGt0TWlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5TQXhPU0F5SURNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyYWluLWZyb250LXR1bm5lbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRyYWluRnJvbnRUdW5uZWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDYuOHYxLjRhMyAyLjggMCAxIDEtNiAwVjYuOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTVoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE5YTQgNCAwIDAgMS00LTR2LTNhNiA2IDAgMSAxIDEyIDB2M2E0IDQgMCAwIDEtNCA0WicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE5LTIgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSAxOSAyIDMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhaW5Gcm9udFR1bm5lbDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0cmFpbi1mcm9udFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PQ0F6TGpGV04yRTBJRFFnTUNBd0lEQWdPQ0F3VmpNdU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9TQXhOUzB4TFRFaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlERTFJREV0TVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE9XTXRNaTQ0SURBdE5TMHlMakl0TlMwMWRpMDBZVGdnT0NBd0lEQWdNU0F4TmlBd2RqUmpNQ0F5TGpndE1pNHlJRFV0TlNBMVdpSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE9DQXhPUzB5SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMklERTVJRElnTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyYWluLWZyb250XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVHJhaW5Gcm9udDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDMuMVY3YTQgNCAwIDAgMCA4IDBWMy4xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTkgMTUtMS0xJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE1IDE1IDEtMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE5Yy0yLjggMC01LTIuMi01LTV2LTRhOCA4IDAgMCAxIDE2IDB2NGMwIDIuOC0yLjIgNS01IDVaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTktMiAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE5IDIgMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcmFpbkZyb250O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRyYWluLXRyYWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhOeUF4TnlBeUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weUlERTBJRGdnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TlNBeE1TQTRJRGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVGdnT0NBNElEZ2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURXhJRFVnT0NBNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5DQXlJRGdnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeU1pQXlNaUEzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJhaW4tdHJhY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUcmFpblRyYWNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMTcgMTcgMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDE0IDggOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDExIDggOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204IDggOCA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTExIDUgOCA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDIgOCA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMjIgMjIgNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcmFpblRyYWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRyYW0tZnJvbnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UWWlJR2hsYVdkb2REMGlNVFlpSUhnOUlqUWlJSGs5SWpNaUlISjRQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFeGFERTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF6ZGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRnZ01Ua3RNaUF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBeU1pMHlMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTVRWb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF4TldndU1ERWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmFtLWZyb250XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVHJhbUZyb250OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE2JywgaGVpZ2h0OiAnMTYnLCB4OiAnNCcsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMTFoMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM3Y4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTggMTktMiAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE4IDIyLTItMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE1aC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNWguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhbUZyb250O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRyYW5zZ2VuZGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVFoyTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01qQm9MVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU0SURKb05IWTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlJRElnTnk0eE55QTNMakUzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURVdU16VTFWakpvTXk0ek5UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREl0Tnk0eE55QTNMakUzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURVZ05TQTRJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmFuc2dlbmRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRyYW5zZ2VuZGVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE2djYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMjBoLTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMmg0djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDcuMTcgNy4xNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDUuMzU1VjJoMy4zNTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMi03LjE3IDcuMTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA1IDUgOCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRyYW5zZ2VuZGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRyYXNoLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01URjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRGMk5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua2dObll4TkdFeUlESWdNQ0F3SURFdE1pQXlTRGRoTWlBeUlEQWdNQ0F4TFRJdE1sWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHpJRFpvTVRnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ05sWTBZVElnTWlBd0lEQWdNU0F5TFRKb05HRXlJRElnTUNBd0lERWdNaUF5ZGpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyYXNoLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUcmFzaDI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTF2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCAxMXY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDZoMTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA2VjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcmFzaDI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdHJhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ05uWXhOR0V5SURJZ01DQXdJREV0TWlBeVNEZGhNaUF5SURBZ01DQXhMVEl0TWxZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEWm9NVGdpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTmxZMFlUSWdNaUF3SURBZ01TQXlMVEpvTkdFeUlESWdNQ0F3SURFZ01pQXlkaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJhc2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUcmFzaDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOSA2djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA2aDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhc2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdHJlZS1kZWNpZHVvdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE9XRTBJRFFnTUNBd0lERXRNaTR5TkMwM0xqTXlRVE11TlNBekxqVWdNQ0F3SURFZ09TQTJMakF6VmpaaE15QXpJREFnTVNBeElEWWdNSFl1TURSaE15NDFJRE11TlNBd0lEQWdNU0F6TGpJMElEVXVOalZCTkNBMElEQWdNQ0F4SURFMklERTVXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRsMk15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmVlLWRlY2lkdW91c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRyZWVEZWNpZHVvdXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNOCAxOWE0IDQgMCAwIDEtMi4yNC03LjMyQTMuNSAzLjUgMCAwIDEgOSA2LjAzVjZhMyAzIDAgMSAxIDYgMHYuMDRhMy41IDMuNSAwIDAgMSAzLjI0IDUuNjVBNCA0IDAgMCAxIDE2IDE5WicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE5djMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVHJlZURlY2lkdW91cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0cmVlLXBhbG1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRNZ09HTXdMVEl1TnpZdE1pNDBOaTAxTFRVdU5TMDFVeklnTlM0eU5DQXlJRGhvTW13eExURWdNU0F4YURRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeklEY3VNVFJCTlM0NE1pQTFMamd5SURBZ01DQXhJREUyTGpVZ05tTXpMakEwSURBZ05TNDFJREl1TWpRZ05TNDFJRFZvTFROc0xURXRNUzB4SURGb0xUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVXVPRGtnT1M0M01XTXRNaTR4TlNBeUxqRTFMVEl1TXlBMUxqUTNMUzR6TlNBM0xqUXpiRFF1TWpRdE5DNHlOUzQzTFM0M0xqY3hMUzQzTVNBeUxqRXlMVEl1TVRKakxURXVPVFV0TVM0NU5pMDFMakkzTFRFdU9DMDNMalF5TGpNMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1TQXhOUzQxWXk0MUlESXVOUzB1TVRjZ05DNDFMVEVnTmk0MWFEUmpNaTAxTGpVdExqVXRNVEl0TVMweE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmVlLXBhbG1cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUcmVlUGFsbTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMyA4YzAtMi43Ni0yLjQ2LTUtNS41LTVTMiA1LjI0IDIgOGgybDEtMSAxIDFoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyA3LjE0QTUuODIgNS44MiAwIDAgMSAxNi41IDZjMy4wNCAwIDUuNSAyLjI0IDUuNSA1aC0zbC0xLTEtMSAxaC0zJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTUuODkgOS43MWMtMi4xNSAyLjE1LTIuMyA1LjQ3LS4zNSA3LjQzbDQuMjQtNC4yNS43LS43LjcxLS43MSAyLjEyLTIuMTJjLTEuOTUtMS45Ni01LjI3LTEuOC03LjQyLjM1JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEgMTUuNWMuNSAyLjUtLjE3IDQuNS0xIDYuNWg0YzItNS41LS41LTEyLTEtMTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVHJlZVBhbG07XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdHJlZS1waW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dNVFFnTXlBekxqTmhNU0F4SURBZ01DQXhMUzQzSURFdU4wZzBMamRoTVNBeElEQWdNQ0F4TFM0M0xURXVOMHczSURFMGFDMHVNMkV4SURFZ01DQXdJREV0TGpjdE1TNDNURGtnT1dndExqSkJNU0F4SURBZ01DQXhJRGdnTnk0elRERXlJRE5zTkNBMExqTmhNU0F4SURBZ01DQXhMUzQ0SURFdU4wZ3hOV3d6SURNdU0yRXhJREVnTUNBd0lERXRMamNnTVM0M1NERTNXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpKMkxUTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmVlLXBpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUcmVlUGluZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xNyAxNCAzIDMuM2ExIDEgMCAwIDEtLjcgMS43SDQuN2ExIDEgMCAwIDEtLjctMS43TDcgMTRoLS4zYTEgMSAwIDAgMS0uNy0xLjdMOSA5aC0uMkExIDEgMCAwIDEgOCA3LjNMMTIgM2w0IDQuM2ExIDEgMCAwIDEtLjggMS43SDE1bDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdIMTdaJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMjJ2LTMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVHJlZVBpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdHJlZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UQjJMakpCTXlBeklEQWdNQ0F4SURndU9TQXhOa2cxWVRNZ015QXdJREFnTVMweExUVXVPRll4TUdFeklETWdNQ0F3SURFZ05pQXdXaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5OeUF4Tm5ZMklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE15QXhPWFl6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TWlBeE9XZzRMak5oTVNBeElEQWdNQ0F3SUM0M0xURXVOMHd4T0NBeE5HZ3VNMkV4SURFZ01DQXdJREFnTGpjdE1TNDNUREUySURsb0xqSmhNU0F4SURBZ01DQXdJQzQ0TFRFdU4wd3hNeUF6YkMweExqUWdNUzQxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJlZXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUcmVlczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMHYuMkEzIDMgMCAwIDEgOC45IDE2SDVhMyAzIDAgMCAxLTEtNS44VjEwYTMgMyAwIDAgMSA2IDBaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTZ2NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMyAxOXYzJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTEyIDE5aDguM2ExIDEgMCAwIDAgLjctMS43TDE4IDE0aC4zYTEgMSAwIDAgMCAuNy0xLjdMMTYgOWguMmExIDEgMCAwIDAgLjgtMS43TDEzIDNsLTEuNCAxLjUnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcmVlcztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0cmVsbG9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1UZ2lJR2hsYVdkb2REMGlNVGdpSUhnOUlqTWlJSGs5SWpNaUlISjRQU0l5SWlCeWVUMGlNaUlnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTXlJZ2FHVnBaMmgwUFNJNUlpQjRQU0kzSWlCNVBTSTNJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l6SWlCb1pXbG5hSFE5SWpVaUlIZzlJakUwSWlCNVBTSTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmVsbG9cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPXRyZWxsbyBpbnN0ZWFkLiBUaGlzIGljb24gd2lsbCBiZSByZW1vdmVkIGluIHYxLjBcbiAqL1xuY29uc3QgVHJlbGxvOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJywgcnk6ICcyJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzMnLCBoZWlnaHQ6ICc5JywgeDogJzcnLCB5OiAnNycgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICczJywgaGVpZ2h0OiAnNScsIHg6ICcxNCcsIHk6ICc3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRyZWxsbztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0cmVuZGluZy1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVGRvTm5ZdE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qSWdNVGN0T0M0MUxUZ3VOUzAxSURWTU1pQTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmVuZGluZy1kb3duXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVHJlbmRpbmdEb3duOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDE3aDZ2LTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTctOC41LTguNS01IDVMMiA3JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRyZW5kaW5nRG93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0cmVuZGluZy11cC1kb3duXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVPREk0SURFMExqZ3lPQ0F5TVNBeU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFoyTldndE5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNeTA1SURrdE5DMDBMVFlnTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ09GWXphQzAxSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJlbmRpbmctdXAtZG93blxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRyZW5kaW5nVXBEb3duOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE0LjgyOCAxNC44MjggMjEgMjEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTZ2NWgtNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAzLTkgOS00LTQtNiA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDhWM2gtNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcmVuZGluZ1VwRG93bjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0cmVuZGluZy11cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTjJnMmRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJRGN0T0M0MUlEZ3VOUzAxTFRWTU1pQXhOeUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHJlbmRpbmctdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUcmVuZGluZ1VwOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDdoNnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDctOC41IDguNS01LTVMMiAxNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcmVuZGluZ1VwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRyaWFuZ2xlLWFsZXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1qRXVOek1nTVRndE9DMHhOR0V5SURJZ01DQXdJREF0TXk0ME9DQXdiQzA0SURFMFFUSWdNaUF3SURBZ01DQTBJREl4YURFMllUSWdNaUF3SURBZ01DQXhMamN6TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEbDJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRkb0xqQXhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmlhbmdsZS1hbGVydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRyaWFuZ2xlQWxlcnQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOXY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE3aC4wMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcmlhbmdsZUFsZXJ0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRyaWFuZ2xlLWRhc2hlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TVRjZ05DNHhPVE5oTWlBeUlEQWdNQ0F4SURNdU5qWTJMakF4TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01qRm9NaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFV1T0RjMElEY3VOelF6SURFZ01TNDNNeklpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU0TGpnME9TQXhNaTQ1TlRJZ01TQXhMamN6TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFdU9ESTBJREU0TGpFNFlUSWdNaUF3SURBZ01TMHhMamd6TlNBeUxqZ3lOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5OQzR3TWpRZ01qRmhNaUF5SURBZ01DQXhMVEV1T0RNNUxUSXVPRE01SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAxTGpFek5pQXhNaTQ1TlRJdE1TQXhMamN6TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeU1XZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDRMakV3TWlBM0xqYzBNeTB4SURFdU56TXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmlhbmdsZS1kYXNoZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUcmlhbmdsZURhc2hlZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC4xNyA0LjE5M2EyIDIgMCAwIDEgMy42NjYuMDEzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE0IDIxaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUuODc0IDcuNzQzIDEgMS43MzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTguODQ5IDEyLjk1MiAxIDEuNzMyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxLjgyNCAxOC4xOGEyIDIgMCAwIDEtMS44MzUgMi44MjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC4wMjQgMjFhMiAyIDAgMCAxLTEuODM5LTIuODM5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTUuMTM2IDEyLjk1Mi0xIDEuNzMyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ204LjEwMiA3Ljc0My0xIDEuNzMyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRyaWFuZ2xlRGFzaGVkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRyaWFuZ2xlLXJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVGhoTWlBeUlEQWdNQ0F4TFRJZ01rZ3pZeTB4TGpFZ01DMHhMak10TGpZdExqUXRNUzR6VERJd0xqUWdOQzR6WXk0NUxTNDNJREV1TmkwdU5DQXhMall1TjFvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyaWFuZ2xlLXJpZ2h0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVHJpYW5nbGVSaWdodDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOGEyIDIgMCAwIDEtMiAySDNjLTEuMSAwLTEuMy0uNi0uNC0xLjNMMjAuNCA0LjNjLjktLjcgMS42LS40IDEuNi43WicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcmlhbmdsZVJpZ2h0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRyaWFuZ2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTXVOek1nTkdFeUlESWdNQ0F3SURBdE15NDBOaUF3YkMwNElERTBRVElnTWlBd0lEQWdNQ0EwSURJeGFERTJZVElnTWlBd0lEQWdNQ0F4TGpjekxUTmFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmlhbmdsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRyaWFuZ2xlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEzLjczIDRhMiAyIDAgMCAwLTMuNDYgMGwtOCAxNEEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS43My0zWicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcmlhbmdsZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0cm9waHlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UUXVOaloyTVM0Mk1qWmhNaUF5SURBZ01DQXhMUzQ1TnpZZ01TNDJPVFpCTlNBMUlEQWdNQ0F3SURjZ01qRXVPVGM0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TkNBeE5DNDJObll4TGpZeU5tRXlJRElnTUNBd0lEQWdMamszTmlBeExqWTVOa0UxSURVZ01DQXdJREVnTVRjZ01qRXVPVGM0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBNWFERXVOV0V4SURFZ01DQXdJREFnTUMwMVNERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBJREl5YURFMklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklEbGhOaUEySURBZ01DQXdJREV5SURCV00yRXhJREVnTUNBd0lEQXRNUzB4U0RkaE1TQXhJREFnTUNBd0xURWdNWG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnT1VnMExqVmhNU0F4SURBZ01DQXhJREF0TlVnMklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3Ryb3BoeVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRyb3BoeTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxNC42NnYxLjYyNmEyIDIgMCAwIDEtLjk3NiAxLjY5NkE1IDUgMCAwIDAgNyAyMS45NzgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTQuNjZ2MS42MjZhMiAyIDAgMCAwIC45NzYgMS42OTZBNSA1IDAgMCAxIDE3IDIxLjk3OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCA5aDEuNWExIDEgMCAwIDAgMC01SDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgMjJoMTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiA5YTYgNiAwIDAgMCAxMiAwVjNhMSAxIDAgMCAwLTEtMUg3YTEgMSAwIDAgMC0xIDF6JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTYgOUg0LjVhMSAxIDAgMCAxIDAtNUg2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRyb3BoeTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0cnVjay1lbGVjdHJpY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRsV04yRXlJRElnTUNBd0lEQXRNaTB5U0RraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUlERTVTRGtpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEU1SURFNWFESmhNU0F4SURBZ01DQXdJREV0TVhZdE15NDJOV0V4SURFZ01DQXdJREF0TGpJeUxTNDJNa3d4T0M0eklEa3VNemhoTVNBeElEQWdNQ0F3TFM0M09DMHVNemhJTVRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01UTjJOV0V4SURFZ01DQXdJREFnTVNBeGFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUWdNeUF5TGpFMUlEVXVNVFZoTGpRNU5TNDBPVFVnTUNBd0lEQWdMak0xTGpnMmFESXVNVFZoTGpRM0xqUTNJREFnTUNBeElDNHpOUzQ0Tmt3eklEa3VNRElpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRjaUlHTjVQU0l4T1NJZ2NqMGlNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0kzSWlCamVUMGlNVGtpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cnVjay1lbGVjdHJpY1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFRydWNrRWxlY3RyaWM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMTlWN2EyIDIgMCAwIDAtMi0ySDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMTlIOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxOWgyYTEgMSAwIDAgMCAxLTF2LTMuNjVhMSAxIDAgMCAwLS4yMi0uNjJMMTguMyA5LjM4YTEgMSAwIDAgMC0uNzgtLjM4SDE0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTN2NWExIDEgMCAwIDAgMSAxaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAzIDIuMTUgNS4xNWEuNDk1LjQ5NSAwIDAgMCAuMzUuODZoMi4xNWEuNDcuNDcgMCAwIDEgLjM1Ljg2TDMgOS4wMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE3JywgY3k6ICcxOScsIHI6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNycsIGN5OiAnMTknLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUcnVja0VsZWN0cmljO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHRydWNrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUWdNVGhXTm1FeUlESWdNQ0F3SURBdE1pMHlTRFJoTWlBeUlEQWdNQ0F3TFRJZ01uWXhNV0V4SURFZ01DQXdJREFnTVNBeGFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFJREU0U0RraUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUlERTRhREpoTVNBeElEQWdNQ0F3SURFdE1YWXRNeTQyTldFeElERWdNQ0F3SURBdExqSXlMUzQyTWpSc0xUTXVORGd0TkM0ek5VRXhJREVnTUNBd0lEQWdNVGN1TlRJZ09FZ3hOQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TnlJZ1kzazlJakU0SWlCeVBTSXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamNpSUdONVBTSXhPQ0lnY2owaU1pSWdMejRLUEM5emRtYyspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RydWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVHJ1Y2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgMThIOScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MjRsLTMuNDgtNC4zNUExIDEgMCAwIDAgMTcuNTIgOEgxNCcgfSxcbiAgXSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcnLCBjeTogJzE4JywgcjogJzInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3JywgY3k6ICcxOCcsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFRydWNrO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHR1cmtpc2gtbGlyYVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTkNBMUlEa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTFJRGd1TlMweE1DQTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0F4TW1FNUlEa2dNQ0F3SURFdE9TQTVWak1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdHVya2lzaC1saXJhXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVHVya2lzaExpcmE6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgNCA1IDknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgOC41LTEwIDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTJhOSA5IDAgMCAxLTkgOVYzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFR1cmtpc2hMaXJhO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHR1cm50YWJsZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEFnTVRJdU1ERm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T0NBNGRqUmhPQ0E0SURBZ01DQXhMVEV1TURjZ05DSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNQ0lnWTNrOUlqRXlJaUJ5UFNJMElpQXZQZ29nSUR4eVpXTjBJSGc5SWpJaUlIazlJalFpSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJeE5pSWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3R1cm50YWJsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFR1cm50YWJsZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMCAxMi4wMWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggOHY0YTggOCAwIDAgMS0xLjA3IDQnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnMTInLCByOiAnNCcgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnNCcsIHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNicsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUdXJudGFibGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdHVydGxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1USWdNVEFnTWlBMGRqTmhNU0F4SURBZ01DQXdJREVnTVdneVlURWdNU0F3SURBZ01DQXhMVEYyTFROaE9DQTRJREFnTVNBd0xURTJJREIyTTJFeElERWdNQ0F3SURBZ01TQXhhREpoTVNBeElEQWdNQ0F3SURFdE1YWXRNMnd5TFRSb05Gb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUXVPRElnTnk0NUlEZ2dNVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxTGpFNElEY3VPU0F4TWlBeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWXVPVE1nTVRCSU1qQmhNaUF5SURBZ01DQXhJREFnTkVneUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3R1cnRsZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFR1cnRsZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20xMiAxMCAyIDR2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtM2E4IDggMCAxIDAtMTYgMHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zbDItNGg0WicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTQuODIgNy45IDggMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUuMTggNy45IDEyIDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2LjkzIDEwSDIwYTIgMiAwIDAgMSAwIDRIMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUdXJ0bGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdHYtbWluaW1hbC1wbGF5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVXVNRE16SURrdU5EUmhMalkwTnk0Mk5EY2dNQ0F3SURFZ01DQXhMakV5YkMwMExqQTJOU0F5TGpNMU1tRXVOalExTGpZME5TQXdJREFnTVMwdU9UWTRMUzQxTmxZM0xqWTBPR0V1TmpRMUxqWTBOU0F3SURBZ01TQXVPVFkzTFM0MU5ub2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dNakZvTVRBaUlDOCtDaUFnUEhKbFkzUWdkMmxrZEdnOUlqSXdJaUJvWldsbmFIUTlJakUwSWlCNFBTSXlJaUI1UFNJeklpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3R2LW1pbmltYWwtcGxheVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFR2TWluaW1hbFBsYXk6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTUuMDMzIDkuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NlY3LjY0OGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ003IDIxaDEwJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTQnLCB4OiAnMicsIHk6ICczJywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFR2TWluaW1hbFBsYXk7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdHYtbWluaW1hbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OeUF5TVdneE1DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTVRRaUlIZzlJaklpSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3R2LW1pbmltYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUdk1pbmltYWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMWgxMCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzE0JywgeDogJzInLCB5OiAnMycsIHJ4OiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUdk1pbmltYWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdHZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRjZ01pMDFJRFV0TlMwMUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0l4TlNJZ2VEMGlNaUlnZVQwaU55SWdjbmc5SWpJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3R2XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVHY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgMi01IDUtNS01JyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTUnLCB4OiAnMicsIHk6ICc3Jywgcng6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFR2O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHR3aXRjaFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTWtnemRqRTJhRFYyTkd3MExUUm9OV3cwTFRSV01ucHRMVEV3SURsV04yMDFJRFJXTnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3R3aXRjaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqIEBkZXByZWNhdGVkIEJyYW5kIGljb25zIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCBhcmUgZHVlIHRvIGJlIHJlbW92ZWQsIHBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vbHVjaWRlLWljb25zL2x1Y2lkZS9pc3N1ZXMvNjcwLiBXZSByZWNvbW1lbmQgdXNpbmcgaHR0cHM6Ly9zaW1wbGVpY29ucy5vcmcvP3E9dHdpdGNoIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBUd2l0Y2g6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ00yMSAySDN2MTZoNXY0bDQtNGg1bDQtNFYyem0tMTAgOVY3bTUgNFY3JyB9XV07XG5cbmV4cG9ydCBkZWZhdWx0IFR3aXRjaDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB0d2l0dGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdOSE10TGpjZ01pNHhMVElnTXk0MFl6RXVOaUF4TUMwNUxqUWdNVGN1TXkweE9DQXhNUzQySURJdU1pNHhJRFF1TkMwdU5pQTJMVEpETXlBeE5TNDFMalVnT1M0MklETWdOV015TGpJZ01pNDJJRFV1TmlBMExqRWdPU0EwTFM0NUxUUXVNaUEwTFRZdU5pQTNMVE11T0NBeExqRWdNQ0F6TFRFdU1pQXpMVEV1TW5vaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3R3aXR0ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKiBAZGVwcmVjYXRlZCBCcmFuZCBpY29ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgYXJlIGR1ZSB0byBiZSByZW1vdmVkLCBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL2x1Y2lkZS1pY29ucy9sdWNpZGUvaXNzdWVzLzY3MC4gV2UgcmVjb21tZW5kIHVzaW5nIGh0dHBzOi8vc2ltcGxlaWNvbnMub3JnLz9xPXR3aXR0ZXIgaW5zdGVhZC4gVGhpcyBpY29uIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MS4wXG4gKi9cbmNvbnN0IFR3aXR0ZXI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjIgNHMtLjcgMi4xLTIgMy40YzEuNiAxMC05LjQgMTcuMy0xOCAxMS42IDIuMi4xIDQuNC0uNiA2LTJDMyAxNS41LjUgOS42IDMgNWMyLjIgMi42IDUuNiA0LjEgOSA0LS45LTQuMiA0LTYuNiA3LTMuOCAxLjEgMCAzLTEuMiAzLTEuMnonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBUd2l0dGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHR5cGUtb3V0bGluZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFFnTVRZdU5XRXVOUzQxSURBZ01DQXdJQzQxTGpWb0xqVmhNaUF5SURBZ01DQXhJREFnTkVnNVlUSWdNaUF3SURBZ01TQXdMVFJvTGpWaExqVXVOU0F3SURBZ01DQXVOUzB1TlhZdE9XRXVOUzQxSURBZ01DQXdMUzQxTFM0MWFDMHpZUzQxTGpVZ01DQXdJREF0TGpVdU5WWTRZVElnTWlBd0lEQWdNUzAwSURCV05XRXlJRElnTUNBd0lERWdNaTB5YURFMllUSWdNaUF3SURBZ01TQXlJREoyTTJFeUlESWdNQ0F3SURFdE5DQXdkaTB1TldFdU5TNDFJREFnTUNBd0xTNDFMUzQxYUMwellTNDFMalVnTUNBd0lEQXRMalV1TlZvaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3R5cGUtb3V0bGluZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFR5cGVPdXRsaW5lOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE0IDE2LjVhLjUuNSAwIDAgMCAuNS41aC41YTIgMiAwIDAgMSAwIDRIOWEyIDIgMCAwIDEgMC00aC41YS41LjUgMCAwIDAgLjUtLjV2LTlhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVWOGEyIDIgMCAwIDEtNCAwVjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTQgMHYtLjVhLjUuNSAwIDAgMC0uNS0uNWgtM2EuNS41IDAgMCAwLS41LjVaJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVHlwZU91dGxpbmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdHlwZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTkhZeE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQTNWalZoTVNBeElEQWdNQ0F4SURFdE1XZ3hOR0V4SURFZ01DQXdJREVnTVNBeGRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUa2dNakJvTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3R5cGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBUeXBlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDR2MTYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOSAyMGg2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFR5cGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdW1icmVsbGEtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE4yTjJFeUlESWdNQ0F3SURBZ05DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNExqWTFOaUF4TTJneUxqTXpObUV4SURFZ01DQXdJREFnTGprM0xURXVNamMwSURFd0xqSTROQ0F4TUM0eU9EUWdNQ0F3SURBdE1USXVNRGN0Tnk0MU1TSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUxqazJNU0ExTGprMU4yRXhNQzR5T0NBeE1DNHlPQ0F3SURBZ01DMHpMamt5TWlBMUxqYzJPVUV4SURFZ01DQXdJREFnTXlBeE0yZ3hNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdW1icmVsbGEtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVW1icmVsbGFPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTN2N2EyIDIgMCAwIDAgNCAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOC42NTYgMTNoMi4zMzZhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTEyLjA3LTcuNTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUuOTYxIDUuOTU3YTEwLjI4IDEwLjI4IDAgMCAwLTMuOTIyIDUuNzY5QTEgMSAwIDAgMCAzIDEzaDEwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFVtYnJlbGxhT2ZmO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVtYnJlbGxhXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVE4yTjJFeUlESWdNQ0F3SURBZ05DQXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJd0xqazVNaUF4TTJFeElERWdNQ0F3SURBZ0xqazNMVEV1TWpjMElERXdMakk0TkNBeE1DNHlPRFFnTUNBd0lEQXRNVGt1T1RJeklEQkJNU0F4SURBZ01DQXdJRE1nTVRONklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VtYnJlbGxhXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVW1icmVsbGE6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTN2N2EyIDIgMCAwIDAgNCAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMC45OTIgMTNhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTE5LjkyMyAwQTEgMSAwIDAgMCAzIDEzeicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVbWJyZWxsYTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB1bmRlcmxpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTmlBMGRqWmhOaUEySURBZ01DQXdJREV5SURCV05DSWdMejRLSUNBOGJHbHVaU0I0TVQwaU5DSWdlREk5SWpJd0lpQjVNVDBpTWpBaUlIa3lQU0l5TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VuZGVybGluZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFVuZGVybGluZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ002IDR2NmE2IDYgMCAwIDAgMTIgMFY0JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzQnLCB4MjogJzIwJywgeTE6ICcyMCcsIHkyOiAnMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVW5kZXJsaW5lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVuZG8tMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5PU0F4TkNBMElEbHNOUzAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURsb01UQXVOV0UxTGpVZ05TNDFJREFnTUNBeElEVXVOU0ExTGpWaE5TNDFJRFV1TlNBd0lEQWdNUzAxTGpVZ05TNDFTREV4SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdW5kby0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVW5kbzI6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNOSAxNCA0IDlsNS01JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTQgOWgxMC41YTUuNSA1LjUgMCAwIDEgNS41IDUuNWE1LjUgNS41IDAgMCAxLTUuNSA1LjVIMTEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVW5kbzI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdW5kby1kb3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UZGhPU0E1SURBZ01DQXdMVEUxTFRZdU4wd3pJREV6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURkMk5tZzJJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVGNpSUhJOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91bmRvLWRvdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFVuZG9Eb3Q6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTdhOSA5IDAgMCAwLTE1LTYuN0wzIDEzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgN3Y2aDYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTcnLCByOiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVbmRvRG90O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVuZG9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBM2RqWm9OaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRkaE9TQTVJREFnTUNBd0xUa3RPU0E1SURrZ01DQXdJREF0TmlBeUxqTk1NeUF4TXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VuZG9cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVbmRvOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgN3Y2aDYnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTdhOSA5IDAgMCAwLTktOSA5IDkgMCAwIDAtNiAyLjNMMyAxMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVbmRvO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVuZm9sZC1ob3Jpem9udGFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNVEpvTmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE1rZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF5ZGpJaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeUlEaDJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRSMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakIyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01UVWdNeTB6TFRNdE15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5TQTVMVE1nTXlBeklETWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91bmZvbGQtaG9yaXpvbnRhbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFVuZm9sZEhvcml6b250YWw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEySDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDh2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwdjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgMTUgMy0zLTMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ201IDktMyAzIDMgMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVbmZvbGRIb3Jpem9udGFsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVuZm9sZC12ZXJ0aWNhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpKMkxUWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJRGhXTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE1rZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNQ0F4TWtnNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5pQXhNbWd0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01USm9MVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEUxSURFNUxUTWdNeTB6TFRNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMUlEVXRNeTB6TFRNZ015SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91bmZvbGQtdmVydGljYWxcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVbmZvbGRWZXJ0aWNhbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnYtNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA4VjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxMkgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEySDgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMTJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTJoLTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUgMTktMyAzLTMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNSA1LTMtMy0zIDMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVW5mb2xkVmVydGljYWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdW5ncm91cFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpT0NJZ2FHVnBaMmgwUFNJMklpQjRQU0kxSWlCNVBTSTBJaUJ5ZUQwaU1TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0kySWlCNFBTSXhNU0lnZVQwaU1UUWlJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VuZ3JvdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVbmdyb3VwOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzgnLCBoZWlnaHQ6ICc2JywgeDogJzUnLCB5OiAnNCcsIHJ4OiAnMScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc4JywgaGVpZ2h0OiAnNicsIHg6ICcxMScsIHk6ICcxNCcsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVbmdyb3VwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVuaXZlcnNpdHlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRRZ01qRjJMVE5oTWlBeUlEQWdNQ0F3TFRRZ01IWXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQ0F4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREUyYUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdOMkV4SURFZ01DQXdJREF0TVMweGFDMHlZVElnTWlBd0lEQWdNUzB4TGpFME15MHVNelU1VERFekxqRTBNeUF5TGpNMllUSWdNaUF3SURBZ01DMHlMakk0TmkwdU1EQXhURFl1TVRReklEVXVOalJCTWlBeUlEQWdNQ0F4SURVZ05rZ3pZVEVnTVNBd0lEQWdNQzB4SURGMk1USmhNaUF5SURBZ01DQXdJRElnTW1neE5tRXlJRElnTUNBd0lEQWdNaTB5ZWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTmlBeE1tZ3VNREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFlnTVRab0xqQXhJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVEFpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91bml2ZXJzaXR5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVW5pdmVyc2l0eTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTJoLjAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE4IDE2aC4wMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMiA3YTEgMSAwIDAgMC0xLTFoLTJhMiAyIDAgMCAxLTEuMTQzLS4zNTlMMTMuMTQzIDIuMzZhMiAyIDAgMCAwLTIuMjg2LS4wMDFMNi4xNDMgNS42NEEyIDIgMCAwIDEgNSA2SDNhMSAxIDAgMCAwLTEgMXYxMmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxMmguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxNmguMDEnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTAnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVbml2ZXJzaXR5O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVubGluay0yXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdOMmd5WVRVZ05TQXdJREFnTVNBd0lERXdhQzB5YlMwMklEQklOMEUxSURVZ01DQXdJREVnTnlBM2FESWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91bmxpbmstMlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFVubGluazI6IEljb25Ob2RlID0gW1sncGF0aCcsIHsgZDogJ00xNSA3aDJhNSA1IDAgMCAxIDAgMTBoLTJtLTYgMEg3QTUgNSAwIDAgMSA3IDdoMicgfV1dO1xuXG5leHBvcnQgZGVmYXVsdCBVbmxpbmsyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVubGlua1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGd1T0RRZ01USXVNalVnTVM0M01pMHhMamN4YUMwdU1ESmhOUzR3TURRZ05TNHdNRFFnTUNBd0lEQXRMakV5TFRjdU1EY2dOUzR3TURZZ05TNHdNRFlnTUNBd0lEQXROaTQ1TlNBd2JDMHhMamN5SURFdU56RWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUVXVNVGNnTVRFdU56VXRNUzQzTVNBeExqY3hZVFV1TURBMElEVXVNREEwSURBZ01DQXdJQzR4TWlBM0xqQTNJRFV1TURBMklEVXVNREEySURBZ01DQXdJRFl1T1RVZ01Hd3hMamN4TFRFdU56RWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqZ2lJSGd5UFNJNElpQjVNVDBpTWlJZ2VUSTlJalVpSUM4K0NpQWdQR3hwYm1VZ2VERTlJaklpSUhneVBTSTFJaUI1TVQwaU9DSWdlVEk5SWpnaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpFMklpQjRNajBpTVRZaUlIa3hQU0l4T1NJZ2VUSTlJakl5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l4T1NJZ2VESTlJakl5SWlCNU1UMGlNVFlpSUhreVBTSXhOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdW5saW5rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVW5saW5rOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTE4Ljg0IDEyLjI1IDEuNzItMS43MWgtLjAyYTUuMDA0IDUuMDA0IDAgMCAwLS4xMi03LjA3IDUuMDA2IDUuMDA2IDAgMCAwLTYuOTUgMGwtMS43MiAxLjcxJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ201LjE3IDExLjc1LTEuNzEgMS43MWE1LjAwNCA1LjAwNCAwIDAgMCAuMTIgNy4wNyA1LjAwNiA1LjAwNiAwIDAgMCA2Ljk1IDBsMS43MS0xLjcxJyB9LFxuICBdLFxuICBbJ2xpbmUnLCB7IHgxOiAnOCcsIHgyOiAnOCcsIHkxOiAnMicsIHkyOiAnNScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICc1JywgeTE6ICc4JywgeTI6ICc4JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE2JywgeDI6ICcxNicsIHkxOiAnMTknLCB5MjogJzIyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE5JywgeDI6ICcyMicsIHkxOiAnMTYnLCB5MjogJzE2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFVubGluaztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB1bnBsdWdcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ05TQXpMVE1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWpJZ015MHpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJMak1nTWpBdU0yRXlMalFnTWk0MElEQWdNQ0F3SURNdU5DQXdUREV5SURFNGJDMDJMVFl0TWk0eklESXVNMkV5TGpRZ01pNDBJREFnTUNBd0lEQWdNeTQwV2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnk0MUlERXpMalVnTVRBZ01URWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdMalVnTVRZdU5TQXhNeUF4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRJZ05pQTJJRFlnTWk0ekxUSXVNMkV5TGpRZ01pNDBJREFnTUNBd0lEQXRNeTQwYkMweUxqWXRNaTQyWVRJdU5DQXlMalFnTUNBd0lEQXRNeTQwSURCYUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VucGx1Z1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFVucGx1ZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xOSA1IDMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIyIDMtMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002LjMgMjAuM2EyLjQgMi40IDAgMCAwIDMuNCAwTDEyIDE4bC02LTYtMi4zIDIuM2EyLjQgMi40IDAgMCAwIDAgMy40WicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003LjUgMTMuNSAxMCAxMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC41IDE2LjUgMTMgMTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTIgNiA2IDYgMi4zLTIuM2EyLjQgMi40IDAgMCAwIDAtMy40bC0yLjYtMi42YTIuNCAyLjQgMCAwIDAtMy40IDBaJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFVucGx1ZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB1c2JcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1DSWdZM2s5SWpjaUlISTlJakVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTkNJZ1kzazlJakl3SWlCeVBTSXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDBMamNnTVRrdU15QXhPU0ExSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TVNBekxUTWdNU0F5SURKYUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswNUxqSTJJRGN1TmpnZ05TQXhNbXd5SURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFd0lERTBJRFVnTWlBekxqVXRNeTQxSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T0NBeE1pQXhMVEVnTVNBeExURWdNVm9pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNiXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVXNiOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAnLCBjeTogJzcnLCByOiAnMScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzQnLCBjeTogJzIwJywgcjogJzEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNC43IDE5LjMgMTkgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMSAzLTMgMSAyIDJaJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuMjYgNy42OCA1IDEybDIgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNCA1IDIgMy41LTMuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOCAxMiAxLTEgMSAxLTEgMVonIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVXNiO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVwbG9hZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTTNZeE1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1UY2dPQzAxTFRVdE5TQTFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TlhZMFlUSWdNaUF3SURBZ01TMHlJREpJTldFeUlESWdNQ0F3SURFdE1pMHlkaTAwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXBsb2FkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVXBsb2FkOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDN2MTInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTcgOC01LTUtNSA1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVXBsb2FkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVzZXItY2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01URWdNaUF5SURRdE5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNakYyTFRKaE5DQTBJREFnTUNBd0xUUXRORWcyWVRRZ05DQXdJREFnTUMwMElEUjJNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0k1SWlCamVUMGlOeUlnY2owaU5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91c2VyLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVXNlckNoZWNrOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE2IDExIDIgMiA0LTQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzcnLCByOiAnNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyQ2hlY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXNlci1jb2dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01UVklObUUwSURRZ01DQXdJREF0TkNBMGRqSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBMak13TlNBeE5pNDFNeTQ1TWpNdExqTTRNaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFV1TWpJNElERXpMamcxTWkwdU9USXpMUzR6T0RNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMkxqZzFNaUF4TWk0eU1qZ3RMak00TXkwdU9USXpJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOaTQ0TlRJZ01UY3VOemN5TFM0ek9ETXVPVEkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T1M0eE5EZ2dNVEl1TWpJNExqTTRNeTB1T1RJeklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9TNDFNeUF4T0M0Mk9UWXRMak00TWkwdU9USTBJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNQzQzTnpJZ01UTXVPRFV5TGpreU5DMHVNemd6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TUM0M056SWdNVFl1TVRRNExqa3lOQzR6T0RNaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UZ2lJR041UFNJeE5TSWdjajBpTXlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJNUlpQmplVDBpTnlJZ2NqMGlOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1jb2dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVc2VyQ29nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE1SDZhNCA0IDAgMCAwLTQgNHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE0LjMwNSAxNi41My45MjMtLjM4MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNS4yMjggMTMuODUyLS45MjMtLjM4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMTIuMjI4LS4zODMtLjkyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMTcuNzcyLS4zODMuOTI0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjE0OCAxMi4yMjguMzgzLS45MjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuNTMgMTguNjk2LS4zODItLjkyNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43NzIgMTMuODUyLjkyNC0uMzgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjc3MiAxNi4xNDguOTI0LjM4MycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxNScsIHI6ICczJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOScsIGN5OiAnNycsIHI6ICc0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJDb2c7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXNlci1sb2NrXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNQ0lnWTNrOUlqY2lJSEk5SWpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0xqTWdNVFZJTjJFMElEUWdNQ0F3SURBdE5DQTBkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUxSURFMUxqVldNVFJoTWlBeUlEQWdNQ0F4SURRZ01IWXhMalVpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpnaUlHaGxhV2RvZEQwaU5TSWdlRDBpTVRNaUlIazlJakUySWlCeWVEMGlMamc1T1NJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXItbG9ja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFVzZXJMb2NrOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAnLCBjeTogJzcnLCByOiAnNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC4zIDE1SDdhNCA0IDAgMCAwLTQgNHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE1LjVWMTRhMiAyIDAgMCAxIDQgMHYxLjUnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzUnLCB4OiAnMTMnLCB5OiAnMTYnLCByeDogJy44OTknIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlckxvY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXNlci1taW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTWpGMkxUSmhOQ0EwSURBZ01DQXdMVFF0TkVnMllUUWdOQ0F3SURBZ01DMDBJRFIyTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJNUlpQmplVDBpTnlJZ2NqMGlOQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNaklpSUhneVBTSXhOaUlnZVRFOUlqRXhJaUI1TWowaU1URWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91c2VyLW1pbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVXNlck1pbnVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc3JywgcjogJzQnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMjInLCB4MjogJzE2JywgeTE6ICcxMScsIHkyOiAnMTEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlck1pbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVzZXItcGVuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URXVOU0F4TlVnM1lUUWdOQ0F3SURBZ01DMDBJRFIyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFdU16YzRJREUyTGpZeU5tRXhJREVnTUNBd0lEQXRNeTR3TURRdE15NHdNRFJzTFRRdU1ERWdOQzR3TVRKaE1pQXlJREFnTUNBd0xTNDFNRFl1T0RVMGJDMHVPRE0zSURJdU9EZGhMalV1TlNBd0lEQWdNQ0F1TmpJdU5qSnNNaTQ0TnkwdU9ETTNZVElnTWlBd0lEQWdNQ0F1T0RVMExTNDFNRFo2SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFd0lpQmplVDBpTnlJZ2NqMGlOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1wZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVc2VyUGVuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTExLjUgMTVIN2E0IDQgMCAwIDAtNCA0djInIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6JyxcbiAgICB9LFxuICBdLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnNycsIHI6ICc0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJQZW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXNlci1wbHVzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNakYyTFRKaE5DQTBJREFnTUNBd0xUUXRORWcyWVRRZ05DQXdJREFnTUMwMElEUjJNaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0k1SWlCamVUMGlOeUlnY2owaU5DSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1Ua2lJSGd5UFNJeE9TSWdlVEU5SWpnaUlIa3lQU0l4TkNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTWpJaUlIZ3lQU0l4TmlJZ2VURTlJakV4SWlCNU1qMGlNVEVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVXNlclBsdXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzknLCBjeTogJzcnLCByOiAnNCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxOScsIHgyOiAnMTknLCB5MTogJzgnLCB5MjogJzE0JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzIyJywgeDI6ICcxNicsIHkxOiAnMTEnLCB5MjogJzExJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJQbHVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVzZXItcm91bmQtY2hlY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1XRTRJRGdnTUNBd0lERWdNVE11TWpreUxUWWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVEFpSUdONVBTSTRJaUJ5UFNJMUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5pQXhPU0F5SURJZ05DMDBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91c2VyLXJvdW5kLWNoZWNrXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVXNlclJvdW5kQ2hlY2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMiAyMWE4IDggMCAwIDEgMTMuMjkyLTYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnOCcsIHI6ICc1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE5IDIgMiA0LTQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlclJvdW5kQ2hlY2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXNlci1yb3VuZC1jb2dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRRdU16QTFJREU1TGpVekxqa3lNeTB1TXpneUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE5TNHlNamdnTVRZdU9EVXlMUzQ1TWpNdExqTTRNeUlnTHo0S0lDQThjR0YwYUNCa1BTSnRNVFl1T0RVeUlERTFMakl5T0MwdU16Z3pMUzQ1TWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFMkxqZzFNaUF5TUM0M056SXRMak00TXk0NU1qUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTVMakUwT0NBeE5TNHlNamd1TXpnekxTNDVNak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU1TGpVeklESXhMalk1TmkwdU16Z3lMUzQ1TWpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01qRmhPQ0E0SURBZ01DQXhJREV3TGpRek5DMDNMall5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TUM0M056SWdNVFl1T0RVeUxqa3lOQzB1TXpneklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1DNDNOeklnTVRrdU1UUTRMamt5TkM0ek9ETWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVEFpSUdONVBTSTRJaUJ5UFNJMUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRTRJaUJqZVQwaU1UZ2lJSEk5SWpNaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXItcm91bmQtY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVXNlclJvdW5kQ29nOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTE0LjMwNSAxOS41My45MjMtLjM4MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNS4yMjggMTYuODUyLS45MjMtLjM4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMTUuMjI4LS4zODMtLjkyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNi44NTIgMjAuNzcyLS4zODMuOTI0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjE0OCAxNS4yMjguMzgzLS45MjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkuNTMgMjEuNjk2LS4zODItLjkyNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDIxYTggOCAwIDAgMSAxMC40MzQtNy42MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43NzIgMTYuODUyLjkyNC0uMzgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIwLjc3MiAxOS4xNDguOTI0LjM4MycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICc4JywgcjogJzUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxOCcsIGN5OiAnMTgnLCByOiAnMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyUm91bmRDb2c7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXNlci1yb3VuZC1taW51c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF5TVdFNElEZ2dNQ0F3SURFZ01UTXVNamt5TFRZaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UQWlJR041UFNJNElpQnlQU0kxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeE9XZ3ROaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1yb3VuZC1taW51c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFVzZXJSb3VuZE1pbnVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAnLCBjeTogJzgnLCByOiAnNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOWgtNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyUm91bmRNaW51cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB1c2VyLXJvdW5kLXBlblxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF5TVdFNElEZ2dNQ0F3SURFZ01UQXVPREl4TFRjdU5EZzNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNUzR6TnpnZ01UWXVOakkyWVRFZ01TQXdJREFnTUMwekxqQXdOQzB6TGpBd05Hd3ROQzR3TVNBMExqQXhNbUV5SURJZ01DQXdJREF0TGpVd05pNDROVFJzTFM0NE16Y2dNaTQ0TjJFdU5TNDFJREFnTUNBd0lDNDJNaTQyTW13eUxqZzNMUzQ0TXpkaE1pQXlJREFnTUNBd0lDNDROVFF0TGpVd05ub2lJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVEFpSUdONVBTSTRJaUJ5UFNJMUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXItcm91bmQtcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVXNlclJvdW5kUGVuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjFhOCA4IDAgMCAxIDEwLjgyMS03LjQ4NycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnonLFxuICAgIH0sXG4gIF0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICc4JywgcjogJzUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlclJvdW5kUGVuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVzZXItcm91bmQtcGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUF5TVdFNElEZ2dNQ0F3SURFZ01UTXVNamt5TFRZaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UQWlJR041UFNJNElpQnlQU0kxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBeE5uWTJJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNaUF4T1dndE5pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91c2VyLXJvdW5kLXBsdXNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVc2VyUm91bmRQbHVzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAnLCBjeTogJzgnLCByOiAnNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSAxNnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDE5aC02JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJSb3VuZFBsdXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXNlci1yb3VuZC1zZWFyY2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1DSWdZM2s5SWpnaUlISTlJalVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTWpGaE9DQTRJREFnTUNBeElERXdMalF6TkMwM0xqWXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakU0SWlCamVUMGlNVGdpSUhJOUlqTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREl5TFRFdU9TMHhMamtpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1yb3VuZC1zZWFyY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVc2VyUm91bmRTZWFyY2g6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnOCcsIHI6ICc1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzE4JywgcjogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMjItMS45LTEuOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyUm91bmRTZWFyY2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXNlci1yb3VuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJamdpSUhJOUlqVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJREl4WVRnZ09DQXdJREFnTUMweE5pQXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91c2VyLXJvdW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVXNlclJvdW5kOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzgnLCByOiAnNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMCAyMWE4IDggMCAwIDAtMTYgMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyUm91bmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXNlci1yb3VuZC14XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1pQXlNV0U0SURnZ01DQXdJREVnTVRFdU9EY3pMVGNpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRBaUlHTjVQU0k0SWlCeVBTSTFJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOeUF4TnlBMUlEVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXlJREUzTFRVZ05TSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91c2VyLXJvdW5kLXhcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVc2VyUm91bmRYOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjFhOCA4IDAgMCAxIDExLjg3My03JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAnLCBjeTogJzgnLCByOiAnNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xNyAxNyA1IDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgMTctNSA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJSb3VuZFg7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXNlci1zZWFyY2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1DSWdZM2s5SWpjaUlISTlJalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEV3TGpNZ01UVklOMkUwSURRZ01DQXdJREF0TkNBMGRqSWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVGNpSUdONVBTSXhOeUlnY2owaU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qRWdNakV0TVM0NUxURXVPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1zZWFyY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVc2VyU2VhcmNoOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTAnLCBjeTogJzcnLCByOiAnNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC4zIDE1SDdhNCA0IDAgMCAwLTQgNHYyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTcnLCBjeTogJzE3JywgcjogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjEgMjEtMS45LTEuOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyU2VhcmNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVzZXItc3RhclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFl1TURVeElERXlMall4Tm1FeElERWdNQ0F3SURFZ01TNDVNRGt1TURJMGJDNDNNemNnTVM0ME5USmhNU0F4SURBZ01DQXdJQzQzTXpjdU5UTTFiREV1TmpNMExqSTFObUV4SURFZ01DQXdJREVnTGpVNE9DQXhMamd3Tm13dE1TNHhOeklnTVM0eE5qaGhNU0F4SURBZ01DQXdMUzR5T0RJdU9EWTJiQzR5TlRrZ01TNDJNVE5oTVNBeElEQWdNQ0F4TFRFdU5UUXhJREV1TVRNMGJDMHhMalEyTlMwdU56VmhNU0F4SURBZ01DQXdMUzQ1TVRJZ01Hd3RNUzQwTmpVdU56VmhNU0F4SURBZ01DQXhMVEV1TlRNNUxURXVNVE16YkM0eU5UZ3RNUzQyTVROaE1TQXhJREFnTUNBd0xTNHlPREl0TGpnMk5td3RNUzR4TlRZdE1TNHhOVE5oTVNBeElEQWdNQ0F4SUM0MU56SXRNUzQ0TWpKc01TNDJNek10TGpJMU5tRXhJREVnTUNBd0lEQWdMamN6TnkwdU5UTTFlaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TlVnM1lUUWdOQ0F3SURBZ01DMDBJRFIyTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJeE1DSWdZM2s5SWpjaUlISTlJalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlci1zdGFyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVXNlclN0YXI6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTYuMDUxIDEyLjYxNmExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2NmwtMS4xNTYtMS4xNTNhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTVIN2E0IDQgMCAwIDAtNCA0djInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMCcsIGN5OiAnNycsIHI6ICc0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJTdGFyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVzZXIteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnTWpGMkxUSmhOQ0EwSURBZ01DQXdMVFF0TkVnMllUUWdOQ0F3SURBZ01DMDBJRFIyTWlJZ0x6NEtJQ0E4WTJseVkyeGxJR040UFNJNUlpQmplVDBpTnlJZ2NqMGlOQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNVGNpSUhneVBTSXlNaUlnZVRFOUlqZ2lJSGt5UFNJeE15SWdMejRLSUNBOGJHbHVaU0I0TVQwaU1qSWlJSGd5UFNJeE55SWdlVEU5SWpnaUlIa3lQU0l4TXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXIteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFVzZXJYOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc3JywgcjogJzQnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTcnLCB4MjogJzIyJywgeTE6ICc4JywgeTI6ICcxMycgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyMicsIHgyOiAnMTcnLCB5MTogJzgnLCB5MjogJzEzJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVzZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ01qRjJMVEpoTkNBMElEQWdNQ0F3TFRRdE5FZzVZVFFnTkNBd0lEQWdNQzAwSURSMk1pSWdMejRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqY2lJSEk5SWpRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVc2VyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djInIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnNycsIHI6ICc0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXNlcnMtcm91bmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01qRmhPQ0E0SURBZ01DQXdMVEUySURBaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UQWlJR041UFNJNElpQnlQU0kxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TWlBeU1HTXdMVE11TXpjdE1pMDJMalV0TkMwNFlUVWdOU0F3SURBZ01DMHVORFV0T0M0eklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3VzZXJzLXJvdW5kXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVXNlcnNSb3VuZDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCAyMWE4IDggMCAwIDAtMTYgMCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEwJywgY3k6ICc4JywgcjogJzUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMjBjMC0zLjM3LTItNi41LTQtOGE1IDUgMCAwIDAtLjQ1LTguMycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVc2Vyc1JvdW5kO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHVzZXJzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UWWdNakYyTFRKaE5DQTBJREFnTUNBd0xUUXRORWcyWVRRZ05DQXdJREFnTUMwMElEUjJNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVFlnTXk0eE1qaGhOQ0EwSURBZ01DQXhJREFnTnk0M05EUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREl4ZGkweVlUUWdOQ0F3SURBZ01DMHpMVE11T0RjaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU9TSWdZM2s5SWpjaUlISTlJalFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdXNlcnNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVc2VyczogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDMuMTI4YTQgNCAwIDAgMSAwIDcuNzQ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc5JywgY3k6ICc3JywgcjogJzQnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlcnM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXRlbnNpbHMtY3Jvc3NlZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVFlnTWkweUxqTWdNaTR6WVRNZ015QXdJREFnTUNBd0lEUXVNbXd4TGpnZ01TNDRZVE1nTXlBd0lEQWdNQ0EwTGpJZ01Fd3lNaUE0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlNBeE5TQXpMak1nTXk0ellUUXVNaUEwTGpJZ01DQXdJREFnTUNBMmJEY3VNeUEzTGpOakxqY3VOeUF5SUM0M0lESXVPQ0F3VERFMUlERTFXbTB3SURBZ055QTNJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlMakVnTWpFdU9DQTJMalF0Tmk0eklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE9TQTFMVGNnTnlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3V0ZW5zaWxzLWNyb3NzZWRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBVdGVuc2lsc0Nyb3NzZWQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdtMTYgMi0yLjMgMi4zYTMgMyAwIDAgMCAwIDQuMmwxLjggMS44YTMgMyAwIDAgMCA0LjIgMEwyMiA4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE1IDMuMyAzLjNhNC4yIDQuMiAwIDAgMCAwIDZsNy4zIDcuM2MuNy43IDIgLjcgMi44IDBMMTUgMTVabTAgMCA3IDcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMi4xIDIxLjggNi40LTYuMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOSA1LTcgNycgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBVdGVuc2lsc0Nyb3NzZWQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdXRlbnNpbHNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeWRqZGpNQ0F4TGpFdU9TQXlJRElnTW1nMFlUSWdNaUF3SURBZ01DQXlMVEpXTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeWRqSXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TlZZeVlUVWdOU0F3SURBZ01DMDFJRFYyTm1Nd0lERXVNUzQ1SURJZ01pQXlhRE5hYlRBZ01IWTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy91dGVuc2lsc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFV0ZW5zaWxzOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgMnY3YzAgMS4xLjkgMiAyIDJoNGEyIDIgMCAwIDAgMi0yVjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAydjIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE1VjJhNSA1IDAgMCAwLTUgNXY2YzAgMS4xLjkgMiAyIDJoM1ptMCAwdjcnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVXRlbnNpbHM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdmFuXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UTWdOblkxWVRFZ01TQXdJREFnTUNBeElERm9OaTR4TURKaE1TQXhJREFnTUNBeElDNDNNVEl1TWprNGJDNDRPVGd1T1RGaE1TQXhJREFnTUNBeElDNHlPRGd1TnpBeVZqRTNZVEVnTVNBd0lEQWdNUzB4SURGb0xUTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNVGhJTTJFeElERWdNQ0F3SURFdE1TMHhWamhoTWlBeUlEQWdNQ0F4SURJdE1tZ3hNbU14TGpFZ01DQXlMakV1T0NBeUxqUWdNUzQ0YkRFdU1UYzJJRFF1TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBeE9HZzFJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUySWlCamVUMGlNVGdpSUhJOUlqSWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlOeUlnWTNrOUlqRTRJaUJ5UFNJeUlpQXZQZ284TDNOMlp6ND0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZhblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFZhbjogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMyA2djVhMSAxIDAgMCAwIDEgMWg2LjEwMmExIDEgMCAwIDEgLjcxMi4yOThsLjg5OC45MWExIDEgMCAwIDEgLjI4OC43MDJWMTdhMSAxIDAgMCAxLTEgMWgtMycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMThIM2ExIDEgMCAwIDEtMS0xVjhhMiAyIDAgMCAxIDItMmgxMmMxLjEgMCAyLjEuOCAyLjQgMS44bDEuMTc2IDQuMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE4aDUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMTgnLCByOiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzcnLCBjeTogJzE4JywgcjogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVmFuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHV0aWxpdHktcG9sZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTW5ZeU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQTFhREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SUROMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55QXpkaklpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUzSUROMk1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNM1l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4T1NBMUxUY2dOeTAzTFRjaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3V0aWxpdHktcG9sZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFV0aWxpdHlQb2xlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJ2MjAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA1aDIwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTMgM3YyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgM3YyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDN2MicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAzdjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTkgNS03IDctNy03JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFV0aWxpdHlQb2xlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHZhcmlhYmxlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNWE10TkMwekxUUXRPU0EwTFRrZ05DMDVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaUF6Y3pRZ015QTBJRGt0TkNBNUxUUWdPU0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNVFVpSUhneVBTSTVJaUI1TVQwaU9TSWdlVEk5SWpFMUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJNUlpQjRNajBpTVRVaUlIa3hQU0k1SWlCNU1qMGlNVFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdmFyaWFibGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWYXJpYWJsZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ004IDIxcy00LTMtNC05IDQtOSA0LTknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgM3M0IDMgNCA5LTQgOS00IDknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTUnLCB4MjogJzknLCB5MTogJzknLCB5MjogJzE1JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzknLCB4MjogJzE1JywgeTE6ICc5JywgeTI6ICcxNScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBWYXJpYWJsZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB2YXVsdFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTVRnaUlHaGxhV2RvZEQwaU1UZ2lJSGc5SWpNaUlIazlJak1pSUhKNFBTSXlJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJamN1TlNJZ1kzazlJamN1TlNJZ2NqMGlMalVpSUdacGJHdzlJbU4xY25KbGJuUkRiMnh2Y2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0Tnk0NUlEY3VPU0F5TGpjZ01pNDNJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakUyTGpVaUlHTjVQU0kzTGpVaUlISTlJaTQxSWlCbWFXeHNQU0pqZFhKeVpXNTBRMjlzYjNJaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFekxqUWdNVEF1TmlBeUxqY3RNaTQzSWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpjdU5TSWdZM2s5SWpFMkxqVWlJSEk5SWk0MUlpQm1hV3hzUFNKamRYSnlaVzUwUTI5c2IzSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY3VPU0F4Tmk0eElESXVOeTB5TGpjaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UWXVOU0lnWTNrOUlqRTJMalVpSUhJOUlpNDFJaUJtYVd4c1BTSmpkWEp5Wlc1MFEyOXNiM0lpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV6TGpRZ01UTXVOQ0F5TGpjZ01pNDNJaUF2UGdvZ0lEeGphWEpqYkdVZ1kzZzlJakV5SWlCamVUMGlNVElpSUhJOUlqSWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92YXVsdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFZhdWx0OiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzE4JywgaGVpZ2h0OiAnMTgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnNy41JywgY3k6ICc3LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcuOSA3LjkgMi43IDIuNycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE2LjUnLCBjeTogJzcuNScsIHI6ICcuNScsIGZpbGw6ICdjdXJyZW50Q29sb3InIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTMuNCAxMC42IDIuNy0yLjcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc3LjUnLCBjeTogJzE2LjUnLCByOiAnLjUnLCBmaWxsOiAnY3VycmVudENvbG9yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTcuOSAxNi4xIDIuNy0yLjcnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNi41JywgY3k6ICcxNi41JywgcjogJy41JywgZmlsbDogJ2N1cnJlbnRDb2xvcicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMy40IDEzLjQgMi43IDIuNycgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFZhdWx0O1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHZlY3Rvci1zcXVhcmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrdU5TQTNZVEkwSURJMElEQWdNQ0F4SURBZ01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUUXVOU0EzWVRJMElESTBJREFnTUNBd0lEQWdNVEFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVRrdU5XRXlOQ0F5TkNBd0lEQWdNQ0F4TUNBd0lpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lEUXVOV0V5TkNBeU5DQXdJREFnTVNBeE1DQXdJaUF2UGdvZ0lEeHlaV04wSUhnOUlqRTNJaUI1UFNJeE55SWdkMmxrZEdnOUlqVWlJR2hsYVdkb2REMGlOU0lnY25nOUlqRWlJQzgrQ2lBZ1BISmxZM1FnZUQwaU1UY2lJSGs5SWpJaUlIZHBaSFJvUFNJMUlpQm9aV2xuYUhROUlqVWlJSEo0UFNJeElpQXZQZ29nSUR4eVpXTjBJSGc5SWpJaUlIazlJakUzSWlCM2FXUjBhRDBpTlNJZ2FHVnBaMmgwUFNJMUlpQnllRDBpTVNJZ0x6NEtJQ0E4Y21WamRDQjRQU0l5SWlCNVBTSXlJaUIzYVdSMGFEMGlOU0lnYUdWcFoyaDBQU0kxSWlCeWVEMGlNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdmVjdG9yLXNxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFZlY3RvclNxdWFyZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOS41IDdhMjQgMjQgMCAwIDEgMCAxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ000LjUgN2EyNCAyNCAwIDAgMCAwIDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgNC41YTI0IDI0IDAgMCAxIDEwIDAnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxNycsIHk6ICcxNycsIHdpZHRoOiAnNScsIGhlaWdodDogJzUnLCByeDogJzEnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcxNycsIHk6ICcyJywgd2lkdGg6ICc1JywgaGVpZ2h0OiAnNScsIHJ4OiAnMScgfV0sXG4gIFsncmVjdCcsIHsgeDogJzInLCB5OiAnMTcnLCB3aWR0aDogJzUnLCBoZWlnaHQ6ICc1Jywgcng6ICcxJyB9XSxcbiAgWydyZWN0JywgeyB4OiAnMicsIHk6ICcyJywgd2lkdGg6ICc1JywgaGVpZ2h0OiAnNScsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBWZWN0b3JTcXVhcmU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdmVnYW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ09IRTJJREFnTmkwMkxUWWdNQzAySURZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFM0xqUXhJRE11TlRsaE1UQWdNVEFnTUNBeElEQWdNeUF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURKaE1qWXVOaUF5Tmk0MklEQWdNQ0F4SURFd0lESXdZeTQ1TFRZdU9ESWdNUzQxTFRrdU5TQTBMVEUwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdmVnYW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWZWdhbjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiA4cTYgMCA2LTYtNiAwLTYgNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy40MSAzLjU5YTEwIDEwIDAgMSAwIDMgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDJhMjYuNiAyNi42IDAgMCAxIDEwIDIwYy45LTYuODIgMS41LTkuNSA0LTE0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFZlZ2FuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHZlbmV0aWFuLW1hc2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ01URmpMVEV1TlNBd0xUSXVOUzQxTFRNZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5DQTJZVElnTWlBd0lEQWdNQzB5SURKMk5HRTFJRFVnTUNBd0lEQWdOU0ExSURnZ09DQXdJREFnTVNBMUlESWdPQ0E0SURBZ01DQXhJRFV0TWlBMUlEVWdNQ0F3SURBZ05TMDFWamhoTWlBeUlEQWdNQ0F3TFRJdE1tZ3RNMkU0SURnZ01DQXdJREF0TlNBeUlEZ2dPQ0F3SURBZ01DMDFMVEo2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAySURFeFl6RXVOU0F3SURJdU5TNDFJRE1nTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZlbmV0aWFuLW1hc2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWZW5ldGlhbk1hc2s6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTFjLTEuNSAwLTIuNS41LTMgMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDZhMiAyIDAgMCAwLTIgMnY0YTUgNSAwIDAgMCA1IDUgOCA4IDAgMCAxIDUgMiA4IDggMCAwIDEgNS0yIDUgNSAwIDAgMCA1LTVWOGEyIDIgMCAwIDAtMi0yaC0zYTggOCAwIDAgMC01IDIgOCA4IDAgMCAwLTUtMnonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ002IDExYzEuNSAwIDIuNS41IDMgMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBWZW5ldGlhbk1hc2s7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdmVudXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UVjJOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F4T1dnMklpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU9TSWdjajBpTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZlbnVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVmVudXM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTV2NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDE5aDYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnOScsIHI6ICc2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFZlbnVzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHZlbnVzLWFuZC1tYXJzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNakJvTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UWjJOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGNnTW1nMGRqUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUSXhJREl0TlM0ME5pQTFMalEySWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRFaUlISTlJalVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdmVudXMtYW5kLW1hcnNcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWZW51c0FuZE1hcnM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMjBoNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNnY2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3IDJoNHY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDItNS40NiA1LjQ2JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzExJywgcjogJzUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVmVudXNBbmRNYXJzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHZpYnJhdGUtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1pQTRJRElnTWkweUlESWdNaUF5TFRJZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qSWdPQzB5SURJZ01pQXlMVElnTWlBeUlESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dPSFl4TUdNd0lDNDFOUzQwTlNBeElERWdNV2cyWXk0MU5TQXdJREV0TGpRMUlERXRNWFl0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ01UQXVNelJXTm1Nd0xTNDFOUzB1TkRVdE1TMHhMVEZvTFRRdU16UWlJQzgrQ2lBZ1BHeHBibVVnZURFOUlqSWlJSGd5UFNJeU1pSWdlVEU5SWpJaUlIa3lQU0l5TWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZpYnJhdGUtb2ZmXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVmlicmF0ZU9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yIDggMiAyLTIgMiAyIDItMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIyIDgtMiAyIDIgMi0yIDIgMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggOHYxMGMwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMXYtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxMC4zNFY2YzAtLjU1LS40NS0xLTEtMWgtNC4zNCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICcyMicsIHkxOiAnMicsIHkyOiAnMjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVmlicmF0ZU9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB2aWJyYXRlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1pQTRJRElnTWkweUlESWdNaUF5TFRJZ01pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1qSWdPQzB5SURJZ01pQXlMVElnTWlBeUlESWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJamdpSUdobGFXZG9kRDBpTVRRaUlIZzlJamdpSUhrOUlqVWlJSEo0UFNJeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZpYnJhdGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWaWJyYXRlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTIgOCAyIDItMiAyIDIgMi0yIDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgOC0yIDIgMiAyLTIgMiAyIDInIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzE0JywgeDogJzgnLCB5OiAnNScsIHJ4OiAnMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBWaWJyYXRlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHZpZGVvLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEF1TmpZZ05rZ3hOR0V5SURJZ01DQXdJREVnTWlBeWRqSXVOV3cxTGpJME9DMHpMakEyTWtFdU5TNDFJREFnTUNBeElESXlJRGN1T0RkMk9DNHhPVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURFMllUSWdNaUF3SURBZ01TMHlJREpJTkdFeUlESWdNQ0F3SURFdE1pMHlWamhoTWlBeUlEQWdNQ0F4SURJdE1tZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlJRElnTWpBZ01qQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92aWRlby1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWaWRlb09mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC42NiA2SDE0YTIgMiAwIDAgMSAyIDJ2Mi41bDUuMjQ4LTMuMDYyQS41LjUgMCAwIDEgMjIgNy44N3Y4LjE5NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNiAxNmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVmlkZW9PZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdmlkZW9cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UTWdOUzR5TWpNZ015NDBPREpoTGpVdU5TQXdJREFnTUNBdU56YzNMUzQwTVRaV055NDROMkV1TlM0MUlEQWdNQ0F3TFM0M05USXRMalF6TWt3eE5pQXhNQzQxSWlBdlBnb2dJRHh5WldOMElIZzlJaklpSUhrOUlqWWlJSGRwWkhSb1BTSXhOQ0lnYUdWcFoyaDBQU0l4TWlJZ2NuZzlJaklpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdmlkZW9cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWaWRlbzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNiAxMyA1LjIyMyAzLjQ4MmEuNS41IDAgMCAwIC43NzctLjQxNlY3Ljg3YS41LjUgMCAwIDAtLjc1Mi0uNDMyTDE2IDEwLjUnIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzYnLCB3aWR0aDogJzE0JywgaGVpZ2h0OiAnMTInLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVmlkZW87XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdm9pY2VtYWlsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTJJaUJqZVQwaU1USWlJSEk5SWpRaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UZ2lJR041UFNJeE1pSWdjajBpTkNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTmlJZ2VESTlJakU0SWlCNU1UMGlNVFlpSUhreVBTSXhOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdm9pY2VtYWlsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgVm9pY2VtYWlsOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNicsIGN5OiAnMTInLCByOiAnNCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzE4JywgY3k6ICcxMicsIHI6ICc0JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzYnLCB4MjogJzE4JywgeTE6ICcxNicsIHkyOiAnMTYnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVm9pY2VtYWlsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHZpZGVvdGFwZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UWWlJSGc5SWpJaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJRGhvTWpBaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU9DSWdZM2s5SWpFMElpQnlQU0l5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeWFEZ2lJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVFlpSUdONVBTSXhOQ0lnY2owaU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92aWRlb3RhcGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWaWRlb3RhcGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNicsIHg6ICcyJywgeTogJzQnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA4aDIwJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnOCcsIGN5OiAnMTQnLCByOiAnMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDgnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNicsIGN5OiAnMTQnLCByOiAnMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBWaWRlb3RhcGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdmlld1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRkMk1tRXlJRElnTUNBd0lERXRNaUF5U0RWaE1pQXlJREFnTUNBeExUSXRNbll0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ04xWTFZVElnTWlBd0lEQWdNQzB5TFRKSU5XRXlJRElnTUNBd0lEQXRNaUF5ZGpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE1pSWdjajBpTVNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRndU9UUTBJREV5TGpNellURWdNU0F3SURBZ01DQXdMUzQyTmlBM0xqVWdOeTQxSURBZ01DQXdMVEV6TGpnNE9DQXdJREVnTVNBd0lEQWdNQ0F3SUM0Mk5pQTNMalVnTnk0MUlEQWdNQ0F3SURFekxqZzRPQ0F3SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdmlld1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFZpZXc6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTd2MmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSA3VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCcsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFZpZXc7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdm9sbGV5YmFsbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEV1TVNBM0xqRmhNVFl1TlRVZ01UWXVOVFVnTUNBd0lERWdNVEF1T1NBMElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhNbUV4TWk0MklERXlMallnTUNBd0lERXRPQzQzSURVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMkxqZ2dNVE11Tm1FeE5pNDFOU0F4Tmk0MU5TQXdJREFnTVMwNUlEY3VOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakF1TnlBeE4yRXhNaTQ0SURFeUxqZ2dNQ0F3SURBdE9DNDNMVFVnTVRNdU15QXhNeTR6SURBZ01DQXhJREF0TVRBaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU15QXpMamhoTVRZdU5UVWdNVFl1TlRVZ01DQXdJREFnTVM0NUlERXhMalVpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRJaUlHTjVQU0l4TWlJZ2NqMGlNVEFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdm9sbGV5YmFsbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFZvbGxleWJhbGw6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuMSA3LjFhMTYuNTUgMTYuNTUgMCAwIDEgMTAuOSA0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDEyYTEyLjYgMTIuNiAwIDAgMS04LjcgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNi44IDEzLjZhMTYuNTUgMTYuNTUgMCAwIDEtOSA3LjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuNyAxN2ExMi44IDEyLjggMCAwIDAtOC43LTUgMTMuMyAxMy4zIDAgMCAxIDAtMTAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNi4zIDMuOGExNi41NSAxNi41NSAwIDAgMCAxLjkgMTEuNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBWb2xsZXliYWxsO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHZvbHVtZS0xXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1URWdOQzQzTURKaExqY3dOUzQzTURVZ01DQXdJREF0TVM0eU1ETXRMalE1T0V3MkxqUXhNeUEzTGpVNE4wRXhMalFnTVM0MElEQWdNQ0F4SURVdU5ERTJJRGhJTTJFeElERWdNQ0F3SURBdE1TQXhkalpoTVNBeElEQWdNQ0F3SURFZ01XZ3lMalF4Tm1FeExqUWdNUzQwSURBZ01DQXhJQzQ1T1RjdU5ERXpiRE11TXpneklETXVNemcwUVM0M01EVXVOekExSURBZ01DQXdJREV4SURFNUxqSTVPSG9pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEUySURsaE5TQTFJREFnTUNBeElEQWdOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdm9sdW1lLTFcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWb2x1bWUxOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOWE1IDUgMCAwIDEgMCA2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFZvbHVtZTE7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdm9sdW1lLTJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ05DNDNNREpoTGpjd05TNDNNRFVnTUNBd0lEQXRNUzR5TURNdExqUTVPRXcyTGpReE15QTNMalU0TjBFeExqUWdNUzQwSURBZ01DQXhJRFV1TkRFMklEaElNMkV4SURFZ01DQXdJREF0TVNBeGRqWmhNU0F4SURBZ01DQXdJREVnTVdneUxqUXhObUV4TGpRZ01TNDBJREFnTUNBeElDNDVPVGN1TkRFemJETXVNemd6SURNdU16ZzBRUzQzTURVdU56QTFJREFnTUNBd0lERXhJREU1TGpJNU9Ib2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTJJRGxoTlNBMUlEQWdNQ0F4SURBZ05pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1Ua3VNelkwSURFNExqTTJOR0U1SURrZ01DQXdJREFnTUMweE1pNDNNamdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdm9sdW1lLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWb2x1bWUyOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTYgOWE1IDUgMCAwIDEgMCA2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5LjM2NCAxOC4zNjRhOSA5IDAgMCAwIDAtMTIuNzI4JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFZvbHVtZTI7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdm9sdW1lLW9mZlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFlnT1dFMUlEVWdNQ0F3SURFZ0xqazFJREl1TWpreklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TNHpOalFnTlM0Mk16WmhPU0E1SURBZ01DQXhJREV1T0RnNUlEa3VPVFlpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVElnTWlBeU1DQXlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSnROeUEzTFM0MU9EY3VOVGczUVRFdU5DQXhMalFnTUNBd0lERWdOUzQwTVRZZ09FZ3pZVEVnTVNBd0lEQWdNQzB4SURGMk5tRXhJREVnTUNBd0lEQWdNU0F4YURJdU5ERTJZVEV1TkNBeExqUWdNQ0F3SURFZ0xqazVOeTQwTVROc015NHpPRE1nTXk0ek9EUkJMamN3TlM0M01EVWdNQ0F3SURBZ01URWdNVGt1TWprNFZqRXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDVMamd5T0NBMExqRTNNa0V1TmpnMkxqWTROaUF3SURBZ01TQXhNU0EwTGpZMU4zWXVOamcySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvdm9sdW1lLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFZvbHVtZU9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNiA5YTUgNSAwIDAgMSAuOTUgMi4yOTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkuMzY0IDUuNjM2YTkgOSAwIDAgMSAxLjg4OSA5Ljk2JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIgMiAyMCAyMCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ203IDctLjU4Ny41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOThWMTEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ005LjgyOCA0LjE3MkEuNjg2LjY4NiAwIDAgMSAxMSA0LjY1N3YuNjg2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFZvbHVtZU9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB2b2x1bWUteFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEVnTkM0M01ESmhMamN3TlM0M01EVWdNQ0F3SURBdE1TNHlNRE10TGpRNU9FdzJMalF4TXlBM0xqVTROMEV4TGpRZ01TNDBJREFnTUNBeElEVXVOREUySURoSU0yRXhJREVnTUNBd0lEQXRNU0F4ZGpaaE1TQXhJREFnTUNBd0lERWdNV2d5TGpReE5tRXhMalFnTVM0MElEQWdNQ0F4SUM0NU9UY3VOREV6YkRNdU16Z3pJRE11TXpnMFFTNDNNRFV1TnpBMUlEQWdNQ0F3SURFeElERTVMakk1T0hvaUlDOCtDaUFnUEd4cGJtVWdlREU5SWpJeUlpQjRNajBpTVRZaUlIa3hQU0k1SWlCNU1qMGlNVFVpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakUySWlCNE1qMGlNaklpSUhreFBTSTVJaUI1TWowaU1UVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92b2x1bWUteFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFZvbHVtZVg6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHonLFxuICAgIH0sXG4gIF0sXG4gIFsnbGluZScsIHsgeDE6ICcyMicsIHgyOiAnMTYnLCB5MTogJzknLCB5MjogJzE1JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE2JywgeDI6ICcyMicsIHkxOiAnOScsIHkyOiAnMTUnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgVm9sdW1lWDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB2b2x1bWVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRFZ05DNDNNREpoTGpjd05TNDNNRFVnTUNBd0lEQXRNUzR5TURNdExqUTVPRXcyTGpReE15QTNMalU0TjBFeExqUWdNUzQwSURBZ01DQXhJRFV1TkRFMklEaElNMkV4SURFZ01DQXdJREF0TVNBeGRqWmhNU0F4SURBZ01DQXdJREVnTVdneUxqUXhObUV4TGpRZ01TNDBJREFnTUNBeElDNDVPVGN1TkRFemJETXVNemd6SURNdU16ZzBRUzQzTURVdU56QTFJREFnTUNBd0lERXhJREU1TGpJNU9Ib2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy92b2x1bWVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWb2x1bWU6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBWb2x1bWU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgdm90ZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPU0F4TWlBeUlESWdOQzAwSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAxSURkak1DMHhMakV1T1MweUlESXRNbWd4TUdFeUlESWdNQ0F3SURFZ01pQXlkakV5U0RWV04xb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJREU1U0RJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3ZvdGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBWb3RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnbTkgMTIgMiAyIDQtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEySDVWN1onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTlIMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBWb3RlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdhbGxldC1taW5pbWFsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UY2dNVFJvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswM0lEZG9NVEpoTWlBeUlEQWdNQ0F4SURJZ01uWXhNR0V5SURJZ01DQXdJREV0TWlBeVNEVmhNaUF5SURBZ01DQXhMVEl0TWxZMVlUSWdNaUF3SURBZ01TQXlMVEpvTVRRaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dhbGxldC1taW5pbWFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV2FsbGV0TWluaW1hbDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xNyAxNGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyA3aDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdhbGxldE1pbmltYWw7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2FsbGV0LWNhcmRzXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNVGdpSUdobGFXZG9kRDBpTVRnaUlIZzlJak1pSUhrOUlqTWlJSEo0UFNJeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEbGhNaUF5SURBZ01DQXhJREl0TW1neE5HRXlJRElnTUNBd0lERWdNaUF5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURFeGFETmpMamdnTUNBeExqWXVNeUF5TGpFdU9Xd3hMakV1T1dNeExqWWdNUzQySURRdU1TQXhMallnTlM0M0lEQnNNUzR4TFM0NVl5NDFMUzQxSURFdU15MHVPU0F5TGpFdExqbElNakVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2FsbGV0LWNhcmRzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV2FsbGV0Q2FyZHM6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMTgnLCBoZWlnaHQ6ICcxOCcsIHg6ICczJywgeTogJzMnLCByeDogJzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA5YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTMgMTFoM2MuOCAwIDEuNi4zIDIuMS45bDEuMS45YzEuNiAxLjYgNC4xIDEuNiA1LjcgMGwxLjEtLjljLjUtLjUgMS4zLS45IDIuMS0uOUgyMScgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdhbGxldENhcmRzO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdhbGxldFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGtnTjFZMFlURWdNU0F3SURBZ01DMHhMVEZJTldFeUlESWdNQ0F3SURBZ01DQTBhREUxWVRFZ01TQXdJREFnTVNBeElERjJOR2d0TTJFeUlESWdNQ0F3SURBZ01DQTBhRE5oTVNBeElEQWdNQ0F3SURFdE1YWXRNbUV4SURFZ01DQXdJREF0TVMweElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEVjJNVFJoTWlBeUlEQWdNQ0F3SURJZ01tZ3hOV0V4SURFZ01DQXdJREFnTVMweGRpMDBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93YWxsZXRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXYWxsZXQ6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkgN1Y0YTEgMSAwIDAgMC0xLTFINWEyIDIgMCAwIDAgMCA0aDE1YTEgMSAwIDAgMSAxIDF2NGgtM2EyIDIgMCAwIDAgMCA0aDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA1djE0YTIgMiAwIDAgMCAyIDJoMTVhMSAxIDAgMCAwIDEtMXYtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBXYWxsZXQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2FsbHBhcGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVGQyTkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeU1XZzRJaUF2UGdvZ0lEeHdZWFJvSUdROUltMDVJREUzSURZdU1TMDJMakZoTWlBeUlEQWdNQ0F4SURJdU9ERXVNREZNTWpJZ01UVWlJQzgrQ2lBZ1BHTnBjbU5zWlNCamVEMGlPQ0lnWTNrOUlqa2lJSEk5SWpJaUlDOCtDaUFnUEhKbFkzUWdlRDBpTWlJZ2VUMGlNeUlnZDJsa2RHZzlJakl3SWlCb1pXbG5hSFE5SWpFMElpQnllRDBpTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dhbGxwYXBlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFdhbGxwYXBlcjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxN3Y0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMjFoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ205IDE3IDYuMS02LjFhMiAyIDAgMCAxIDIuODEuMDFMMjIgMTUnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc4JywgY3k6ICc5JywgcjogJzInIH1dLFxuICBbJ3JlY3QnLCB7IHg6ICcyJywgeTogJzMnLCB3aWR0aDogJzIwJywgaGVpZ2h0OiAnMTQnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV2FsbHBhcGVyO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdhbmQtc3BhcmtsZXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpFdU5qUWdNeTQyTkMweExqSTRMVEV1TWpoaE1TNHlNU0F4TGpJeElEQWdNQ0F3TFRFdU56SWdNRXd5TGpNMklERTRMalkwWVRFdU1qRWdNUzR5TVNBd0lEQWdNQ0F3SURFdU56SnNNUzR5T0NBeExqSTRZVEV1TWlBeExqSWdNQ0F3SURBZ01TNDNNaUF3VERJeExqWTBJRFV1TXpaaE1TNHlJREV1TWlBd0lEQWdNQ0F3TFRFdU56SWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTBJRGNnTXlBeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlEWjJOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVRSMk5DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNbll5SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURoSU15SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNVFpvTFRRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeElETklPU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2FuZC1zcGFya2xlc1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFdhbmRTcGFya2xlczogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ20yMS42NCAzLjY0LTEuMjgtMS4yOGExLjIxIDEuMjEgMCAwIDAtMS43MiAwTDIuMzYgMTguNjRhMS4yMSAxLjIxIDAgMCAwIDAgMS43MmwxLjI4IDEuMjhhMS4yIDEuMiAwIDAgMCAxLjcyIDBMMjEuNjQgNS4zNmExLjIgMS4yIDAgMCAwIDAtMS43MicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE0IDcgMyAzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTUgNnY0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDE0djQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMnYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgOEgzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDE2aC00JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTExIDNIOScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBXYW5kU3BhcmtsZXM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2FuZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTkZZeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE5TQXhObll0TWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBNWFESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJRGxvTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRjdU9DQXhNUzQ0SURFNUlERXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOU0E1YUM0d01TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VPQ0EyTGpJZ01Ua2dOU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNeUF5TVNBNUxUa2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlMaklnTmk0eUlERXhJRFVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2FuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFdhbmQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgNFYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE1IDE2di0yJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggOWgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDloMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNy44IDExLjggMTkgMTMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgOWguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuOCA2LjIgMTkgNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20zIDIxIDktOScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMi4yIDYuMiAxMSA1JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdhbmQ7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2FyZWhvdXNlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dNakZXTVRCaE1TQXhJREFnTUNBd0xURXRNVWczWVRFZ01TQXdJREFnTUMweElERjJNVEVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl5SURFNVlUSWdNaUF3SURBZ01TMHlJREpJTkdFeUlESWdNQ0F3SURFdE1pMHlWamhoTWlBeUlEQWdNQ0F4SURFdU1UTXlMVEV1T0RBemJEY3VPVFV0TXk0NU56UmhNaUF5SURBZ01DQXhJREV1T0RNM0lEQnNOeTQ1TkRnZ015NDVOelJCTWlBeUlEQWdNQ0F4SURJeUlEaDZJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDJJREV6YURFeUlpQXZQZ29nSUR4d1lYUm9JR1E5SWswMklERTNhREV5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2FyZWhvdXNlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV2FyZWhvdXNlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDIxVjEwYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjExJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDEuMTMyLTEuODAzbDcuOTUtMy45NzRhMiAyIDAgMCAxIDEuODM3IDBsNy45NDggMy45NzRBMiAyIDAgMCAxIDIyIDh6JyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNiAxM2gxMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ002IDE3aDEyJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdhcmVob3VzZTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB3YXNoaW5nLW1hY2hpbmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBMmFETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNJRFpvTGpBeElpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXhPQ0lnYUdWcFoyaDBQU0l5TUNJZ2VEMGlNeUlnZVQwaU1pSWdjbmc5SWpJaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1USWlJR041UFNJeE15SWdjajBpTlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UaGhNaTQxSURJdU5TQXdJREFnTUNBd0xUVWdNaTQxSURJdU5TQXdJREFnTVNBd0xUVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93YXNoaW5nLW1hY2hpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXYXNoaW5nTWFjaGluZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDZoMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNyA2aC4wMScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcxOCcsIGhlaWdodDogJzIwJywgeDogJzMnLCB5OiAnMicsIHJ4OiAnMicgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMycsIHI6ICc1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE4YTIuNSAyLjUgMCAwIDAgMC01IDIuNSAyLjUgMCAwIDEgMC01JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdhc2hpbmdNYWNoaW5lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdhdGNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNVEIyTWk0eWJERXVOaUF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB4Tmk0eE15QTNMalkyTFM0NE1TMDBMakExWVRJZ01pQXdJREFnTUMweUxURXVOakZvTFRJdU5qaGhNaUF5SURBZ01DQXdMVElnTVM0Mk1Xd3RMamM0SURRdU1EVWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUY3VPRGdnTVRZdU16WXVPQ0EwWVRJZ01pQXdJREFnTUNBeUlERXVOakZvTWk0M01tRXlJRElnTUNBd0lEQWdNaTB4TGpZeGJDNDRNUzAwTGpBMUlpQXZQZ29nSUR4amFYSmpiR1VnWTNnOUlqRXlJaUJqZVQwaU1USWlJSEk5SWpZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dhdGNoXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV2F0Y2g6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTB2Mi4ybDEuNiAxJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2LjEzIDcuNjYtLjgxLTQuMDVhMiAyIDAgMCAwLTItMS42MWgtMi42OGEyIDIgMCAwIDAtMiAxLjYxbC0uNzggNC4wNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ203Ljg4IDE2LjM2LjggNGEyIDIgMCAwIDAgMiAxLjYxaDIuNzJhMiAyIDAgMCAwIDItMS42MWwuODEtNC4wNScgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICc2JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdhdGNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdhdmVzLWFycm93LWRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01UQk1NVElnTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRZZ05rd3hNaUF4TUV3NElEWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVFZETWk0MklERTFMalVnTXk0eUlERTJJRFF1TlNBeE5rTTNJREUySURjZ01UUWdPUzQxSURFMFF6RXlMakVnTVRRZ01URXVPU0F4TmlBeE5DNDFJREUyUXpFM0lERTJJREUzSURFMElERTVMalVnTVRSRE1qQXVPQ0F4TkNBeU1TNDBJREUwTGpVZ01qSWdNVFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVElnTWpGRE1pNDJJREl4TGpVZ015NHlJREl5SURRdU5TQXlNa00zSURJeUlEY2dNakFnT1M0MUlESXdRekV5TGpFZ01qQWdNVEV1T1NBeU1pQXhOQzQxSURJeVF6RTNJREl5SURFM0lESXdJREU1TGpVZ01qQkRNakF1T0NBeU1DQXlNUzQwSURJd0xqVWdNaklnTWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dhdmVzLWFycm93LWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXYXZlc0Fycm93RG93bjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxMEwxMiAyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE2IDZMMTIgMTBMOCA2JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgMTVDMi42IDE1LjUgMy4yIDE2IDQuNSAxNkM3IDE2IDcgMTQgOS41IDE0QzEyLjEgMTQgMTEuOSAxNiAxNC41IDE2QzE3IDE2IDE3IDE0IDE5LjUgMTRDMjAuOCAxNCAyMS40IDE0LjUgMjIgMTUnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDIxQzIuNiAyMS41IDMuMiAyMiA0LjUgMjJDNyAyMiA3IDIwIDkuNSAyMEMxMi4xIDIwIDExLjkgMjIgMTQuNSAyMkMxNyAyMiAxNyAyMCAxOS41IDIwQzIwLjggMjAgMjEuNCAyMC41IDIyIDIxJyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV2F2ZXNBcnJvd0Rvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2F2ZXMtYXJyb3ctdXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01uWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlJREUxWXk0MkxqVWdNUzR5SURFZ01pNDFJREVnTWk0MUlEQWdNaTQxTFRJZ05TMHlJREl1TmlBd0lESXVOQ0F5SURVZ01pQXlMalVnTUNBeUxqVXRNaUExTFRJZ01TNHpJREFnTVM0NUxqVWdNaTQxSURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJZ01qRmpMall1TlNBeExqSWdNU0F5TGpVZ01TQXlMalVnTUNBeUxqVXRNaUExTFRJZ01pNDJJREFnTWk0MElESWdOU0F5SURJdU5TQXdJREl1TlMweUlEVXRNaUF4TGpNZ01DQXhMamt1TlNBeUxqVWdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0EySURRdE5DQTBJRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2F2ZXMtYXJyb3ctdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXYXZlc0Fycm93VXA6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMnY4JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgMTVjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMScsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMScsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTggNiA0LTQgNCA0JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdhdmVzQXJyb3dVcDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB3YXZlcy1sYWRkZXJcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRrZ05XRXlJRElnTUNBd0lEQXRNaUF5ZGpFeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlERTRZeTQyTGpVZ01TNHlJREVnTWk0MUlERWdNaTQxSURBZ01pNDFMVElnTlMweUlESXVOaUF3SURJdU5DQXlJRFVnTWlBeUxqVWdNQ0F5TGpVdE1pQTFMVElnTVM0eklEQWdNUzQ1TGpVZ01pNDFJREVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTVROb01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUY2dPV2d4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT1NBMVlUSWdNaUF3SURBZ01DMHlJREoyTVRFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dhdmVzLWxhZGRlclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFdhdmVzTGFkZGVyOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE5IDVhMiAyIDAgMCAwLTIgMnYxMScgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDE4Yy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEzaDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgOWgxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDVhMiAyIDAgMCAwLTIgMnYxMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBXYXZlc0xhZGRlcjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB3YXZlc1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaUEyWXk0MkxqVWdNUzR5SURFZ01pNDFJREZETnlBM0lEY2dOU0E1TGpVZ05XTXlMallnTUNBeUxqUWdNaUExSURJZ01pNDFJREFnTWk0MUxUSWdOUzB5SURFdU15QXdJREV1T1M0MUlESXVOU0F4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURFeVl5NDJMalVnTVM0eUlERWdNaTQxSURFZ01pNDFJREFnTWk0MUxUSWdOUzB5SURJdU5pQXdJREl1TkNBeUlEVWdNaUF5TGpVZ01DQXlMalV0TWlBMUxUSWdNUzR6SURBZ01TNDVMalVnTWk0MUlERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdNVGhqTGpZdU5TQXhMaklnTVNBeUxqVWdNU0F5TGpVZ01DQXlMalV0TWlBMUxUSWdNaTQySURBZ01pNDBJRElnTlNBeUlESXVOU0F3SURJdU5TMHlJRFV0TWlBeExqTWdNQ0F4TGprdU5TQXlMalVnTVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dhdmVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV2F2ZXM6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHsgZDogJ00yIDZjLjYuNSAxLjIgMSAyLjUgMUM3IDcgNyA1IDkuNSA1YzIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEnIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDEyYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEnLFxuICAgIH0sXG4gIF0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yIDE4Yy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEnLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBXYXZlcztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB3YXlwb2ludHNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpRdU5TSWdjajBpTWk0MUlpQXZQZ29nSUR4d1lYUm9JR1E5SW0weE1DNHlJRFl1TXkwekxqa2dNeTQ1SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpRdU5TSWdZM2s5SWpFeUlpQnlQU0l5TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjZ01USm9NVEFpSUM4K0NpQWdQR05wY21Oc1pTQmplRDBpTVRrdU5TSWdZM2s5SWpFeUlpQnlQU0l5TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFekxqZ2dNVGN1TnlBekxqa3RNeTQ1SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRrdU5TSWdjajBpTWk0MUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dheXBvaW50c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFdheXBvaW50czogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc0LjUnLCByOiAnMi41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEwLjIgNi4zLTMuOSAzLjknIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICc0LjUnLCBjeTogJzEyJywgcjogJzIuNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEyaDEwJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTkuNScsIGN5OiAnMTInLCByOiAnMi41JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTEzLjggMTcuNyAzLjktMy45JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzE5LjUnLCByOiAnMi41JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdheXBvaW50cztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB3ZWJjYW1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFd0lpQnlQU0k0SWlBdlBnb2dJRHhqYVhKamJHVWdZM2c5SWpFeUlpQmplVDBpTVRBaUlISTlJak1pSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGNnTWpKb01UQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXlJREl5ZGkwMElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dlYmNhbVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFdlYmNhbTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMCcsIHI6ICc4JyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEwJywgcjogJzMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNyAyMmgxMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMnYtNCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBXZWJjYW07XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2ViaG9vay1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRjZ01UZG9MVFZqTFRFdU1Ea3RMakF5TFRFdU9UUXVPVEl0TWk0MUlERXVPVUV6SURNZ01DQXhJREVnTWk0MU55QXhOU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5PU0F6TGpSaE5DQTBJREFnTUNBeElEWXVOVEl1TmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRZZ01UY2dNeTR4TFRVdU9HRXlMalVnTWk0MUlEQWdNQ0F3SUM0d05UY3RNaTR3TlNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBdU15QXlNQzR6WVRRZ05DQXdJREFnTVMweUxqTXVOeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGd1TmlBeE0yRTBJRFFnTUNBd0lERWdNeTR6TlRjZ015NDBNVFFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEV5SURZZ0xqWWdNU0lnTHo0S0lDQThjR0YwYUNCa1BTSnRNaUF5SURJd0lESXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93ZWJob29rLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFdlYmhvb2tPZmY6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTcgMTdoLTVjLTEuMDktLjAyLTEuOTQuOTItMi41IDEuOUEzIDMgMCAxIDEgMi41NyAxNScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ005IDMuNGE0IDQgMCAwIDEgNi41Mi42NicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDE3IDMuMS01LjhhMi41IDIuNSAwIDAgMCAuMDU3LTIuMDUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjAuMyAyMC4zYTQgNCAwIDAgMS0yLjMuNycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOC42IDEzYTQgNCAwIDAgMSAzLjM1NyAzLjQxNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiA2IC42IDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdlYmhvb2tPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2ViaG9va1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVGdnTVRZdU9UaG9MVFV1T1RsakxURXVNU0F3TFRFdU9UVXVPVFF0TWk0ME9DQXhMamxCTkNBMElEQWdNQ0F4SURJZ01UZGpMakF4TFM0M0xqSXRNUzQwTGpVM0xUSWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJUWWdNVGNnTXk0eE15MDFMamM0WXk0MU15MHVPVGN1TVMweUxqRTRMUzQxTFRNdU1XRTBJRFFnTUNBeElERWdOaTQ0T1MwMExqQTJJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhNaUEySURNdU1UTWdOUzQzTTBNeE5TNDJOaUF4TWk0M0lERTJMamtnTVRNZ01UZ2dNVE5oTkNBMElEQWdNQ0F4SURBZ09DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93ZWJob29rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV2ViaG9vazogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxNi45OGgtNS45OWMtMS4xIDAtMS45NS45NC0yLjQ4IDEuOUE0IDQgMCAwIDEgMiAxN2MuMDEtLjcuMi0xLjQuNTctMicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDE3IDMuMTMtNS43OGMuNTMtLjk3LjEtMi4xOC0uNS0zLjFhNCA0IDAgMSAxIDYuODktNC4wNicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xMiA2IDMuMTMgNS43M0MxNS42NiAxMi43IDE2LjkgMTMgMTggMTNhNCA0IDAgMCAxIDAgOCcgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBXZWJob29rO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdlaWdodC10aWxkZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5OaTQxSURoaE1pQXlJREFnTUNBd0xURXVPVEEySURFdU5EWk1NaTR4SURFNExqVkJNaUF5SURBZ01DQXdJRFFnTWpGb01UWmhNaUF5SURBZ01DQXdJREV1T1RJMUxUSXVOVFJNTVRrdU5DQTVMalZCTWlBeUlEQWdNQ0F3SURFM0xqUTRJRGg2SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzTGprNU9TQXhOV0V5TGpVZ01pNDFJREFnTUNBeElEUWdNQ0F5TGpVZ01pNDFJREFnTUNBd0lEUWdNQ0lnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJalVpSUhJOUlqTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93ZWlnaHQtdGlsZGVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXZWlnaHRUaWxkZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002LjUgOGEyIDIgMCAwIDAtMS45MDYgMS40NkwyLjEgMTguNUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjUtMi41NEwxOS40IDkuNUEyIDIgMCAwIDAgMTcuNDggOHonLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ003Ljk5OSAxNWEyLjUgMi41IDAgMCAxIDQgMCAyLjUgMi41IDAgMCAwIDQgMCcgfV0sXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICc1JywgcjogJzMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV2VpZ2h0VGlsZGU7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2VpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqVWlJSEk5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZdU5TQTRZVElnTWlBd0lEQWdNQzB4TGprd05TQXhMalEyVERJdU1TQXhPQzQxUVRJZ01pQXdJREFnTUNBMElESXhhREUyWVRJZ01pQXdJREFnTUNBeExqa3lOUzB5TGpVMFRERTVMalFnT1M0MVFUSWdNaUF3SURBZ01DQXhOeTQwT0NBNFdpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93ZWlnaHRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXZWlnaHQ6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnNScsIHI6ICczJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTYuNSA4YTIgMiAwIDAgMC0xLjkwNSAxLjQ2TDIuMSAxOC41QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjkyNS0yLjU0TDE5LjQgOS41QTIgMiAwIDAgMCAxNy40OCA4WicsXG4gICAgfSxcbiAgXSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdlaWdodDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB3aGVhdC1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWlBeU1pQXhNQzB4TUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ09DMHhMakUzSURFdU1UY2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTXVORGNnTVRJdU5UTWdOU0F4TVd3eExqVXpJREV1TlROaE15NDFJRE11TlNBd0lEQWdNU0F3SURRdU9UUk1OU0F4T1d3dE1TNDFNeTB4TGpVellUTXVOU0F6TGpVZ01DQXdJREVnTUMwMExqazBXaUlnTHo0S0lDQThjR0YwYUNCa1BTSnRPQ0E0TFM0MU15NDFNMkV6TGpVZ015NDFJREFnTUNBd0lEQWdOQzQ1TkV3NUlERTFiREV1TlRNdE1TNDFNMk11TlRVdExqVTFMamc0TFRFdU1qVXVPVGd0TVM0NU55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVPVEVnTlM0eU5tTXVNVFV0TGpJMkxqTTBMUzQxTVM0MU5pMHVOek5NTVRNZ00yd3hMalV6SURFdU5UTmhNeTQxSURNdU5TQXdJREFnTVNBdU1qZ2dOQzQyTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ01tZ3lkakpoTkNBMElEQWdNQ0F4TFRRZ05HZ3RNbFkyWVRRZ05DQXdJREFnTVNBMExUUmFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNUzQwTnlBeE55NDBOeUF4TXlBeE9Xd3RNUzQxTXlBeExqVXpZVE11TlNBekxqVWdNQ0F3SURFdE5DNDVOQ0F3VERVZ01UbHNNUzQxTXkweExqVXpZVE11TlNBekxqVWdNQ0F3SURFZ05DNDVOQ0F3V2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZZ01UWXRMalV6TGpVellUTXVOU0F6TGpVZ01DQXdJREV0TkM0NU5DQXdURGtnTVRWc01TNDFNeTB4TGpVellUTXVORGtnTXk0ME9TQXdJREFnTVNBeExqazNMUzQ1T0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRndU56UWdNVE11TURsakxqSTJMUzR4TlM0MU1TMHVNelF1TnpNdExqVTJUREl4SURFeGJDMHhMalV6TFRFdU5UTmhNeTQxSURNdU5TQXdJREFnTUMwMExqWXlMUzR5T0NJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTWlJZ2VESTlJakl5SWlCNU1UMGlNaUlnZVRJOUlqSXlJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aGVhdC1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXaGVhdE9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20yIDIyIDEwLTEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDgtMS4xNyAxLjE3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMy40NyAxMi41MyA1IDExbDEuNTMgMS41M2EzLjUgMy41IDAgMCAxIDAgNC45NEw1IDE5bC0xLjUzLTEuNTNhMy41IDMuNSAwIDAgMSAwLTQuOTRaJyB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtOCA4LS41My41M2EzLjUgMy41IDAgMCAwIDAgNC45NEw5IDE1bDEuNTMtMS41M2MuNTUtLjU1Ljg4LTEuMjUuOTgtMS45NycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMC45MSA1LjI2Yy4xNS0uMjYuMzQtLjUxLjU2LS43M0wxMyAzbDEuNTMgMS41M2EzLjUgMy41IDAgMCAxIC4yOCA0LjYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTE2IDE2LS41My41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw5IDE1bDEuNTMtMS41M2EzLjQ5IDMuNDkgMCAwIDEgMS45Ny0uOTgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTguNzQgMTMuMDljLjI2LS4xNS41MS0uMzQuNzMtLjU2TDIxIDExbC0xLjUzLTEuNTNhMy41IDMuNSAwIDAgMC00LjYyLS4yOCcgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICcyMicsIHkxOiAnMicsIHkyOiAnMjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV2hlYXRPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2hlYXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBeU1pQXhOaUE0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6TGpRM0lERXlMalV6SURVZ01URnNNUzQxTXlBeExqVXpZVE11TlNBekxqVWdNQ0F3SURFZ01DQTBMamswVERVZ01UbHNMVEV1TlRNdE1TNDFNMkV6TGpVZ015NDFJREFnTUNBeElEQXROQzQ1TkZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRjdU5EY2dPQzQxTXlBNUlEZHNNUzQxTXlBeExqVXpZVE11TlNBekxqVWdNQ0F3SURFZ01DQTBMamswVERrZ01UVnNMVEV1TlRNdE1TNDFNMkV6TGpVZ015NDFJREFnTUNBeElEQXROQzQ1TkZvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeExqUTNJRFF1TlRNZ01UTWdNMnd4TGpVeklERXVOVE5oTXk0MUlETXVOU0F3SURBZ01TQXdJRFF1T1RSTU1UTWdNVEZzTFRFdU5UTXRNUzQxTTJFekxqVWdNeTQxSURBZ01DQXhJREF0TkM0NU5Gb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXdJREpvTW5ZeVlUUWdOQ0F3SURBZ01TMDBJRFJvTFRKV05tRTBJRFFnTUNBd0lERWdOQzAwV2lJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRFdU5EY2dNVGN1TkRjZ01UTWdNVGxzTFRFdU5UTWdNUzQxTTJFekxqVWdNeTQxSURBZ01DQXhMVFF1T1RRZ01FdzFJREU1YkRFdU5UTXRNUzQxTTJFekxqVWdNeTQxSURBZ01DQXhJRFF1T1RRZ01Gb2lJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTFMalEzSURFekxqUTNJREUzSURFMWJDMHhMalV6SURFdU5UTmhNeTQxSURNdU5TQXdJREFnTVMwMExqazBJREJNT1NBeE5Xd3hMalV6TFRFdU5UTmhNeTQxSURNdU5TQXdJREFnTVNBMExqazBJREJhSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1M0ME55QTVMalEzSURJeElERXhiQzB4TGpVeklERXVOVE5oTXk0MUlETXVOU0F3SURBZ01TMDBMamswSURCTU1UTWdNVEZzTVM0MU15MHhMalV6WVRNdU5TQXpMalVnTUNBd0lERWdOQzQ1TkNBd1dpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aGVhdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFdoZWF0OiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgMjIgMTYgOCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAgeyBkOiAnTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WicgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNNy40NyA4LjUzIDkgN2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMOSAxNWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WicgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7IGQ6ICdNMTEuNDcgNC41MyAxMyAzbDEuNTMgMS41M2EzLjUgMy41IDAgMCAxIDAgNC45NEwxMyAxMWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WicgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WicgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWicsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1LjQ3IDEzLjQ3IDE3IDE1bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMOSAxNWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTkuNDcgOS40NyAyMSAxMWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDEzIDExbDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBXaGVhdDtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB3aG9sZS13b3JkXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSTNJaUJqZVQwaU1USWlJSEk5SWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lEbDJOaUlnTHo0S0lDQThZMmx5WTJ4bElHTjRQU0l4TnlJZ1kzazlJakV5SWlCeVBTSXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQ0EzZGpnaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRJeUlERTNkakZqTUNBdU5TMHVOU0F4TFRFZ01VZ3pZeTB1TlNBd0xURXRMalV0TVMweGRpMHhJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aG9sZS13b3JkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV2hvbGVXb3JkOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnNycsIGN5OiAnMTInLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMCA5djYnIH1dLFxuICBbJ2NpcmNsZScsIHsgY3g6ICcxNycsIGN5OiAnMTInLCByOiAnMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xNCA3djgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgMTd2MWMwIC41LS41IDEtMSAxSDNjLS41IDAtMS0uNS0xLTF2LTEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV2hvbGVXb3JkO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdpZmktY29nXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UUXVNekExSURFNUxqVXpMamt5TXkwdU16Z3lJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHhOUzR5TWpnZ01UWXVPRFV5TFM0NU1qTXRMak00TXlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRZdU9EVXlJREUxTGpJeU9DMHVNemd6TFM0NU1qTWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaWJURTJMamcxTWlBeU1DNDNOekl0TGpNNE15NDVNalFpSUM4K0NpQWdQSEJoZEdnZ1pEMGliVEU1TGpFME9DQXhOUzR5TWpndU16Z3pMUzQ1TWpNaUlDOCtDaUFnUEhCaGRHZ2daRDBpYlRFNUxqVXpJREl4TGpZNU5pMHVNemd5TFM0NU1qUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSWdOeTQ0TW1FeE5TQXhOU0F3SURBZ01TQXlNQ0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5TUM0M056SWdNVFl1T0RVeUxqa3lOQzB1TXpneklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1DNDNOeklnTVRrdU1UUTRMamt5TkM0ek9ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNVEV1T0RVNFlURXdJREV3SURBZ01DQXhJREV4TGpVdE1TNDNPRFVpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGd1TlNBeE5TNDBNamxoTlNBMUlEQWdNQ0F4SURJdU5ERXpMVEV1TXpFaUlDOCtDaUFnUEdOcGNtTnNaU0JqZUQwaU1UZ2lJR041UFNJeE9DSWdjajBpTXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dpZmktY29nXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV2lmaUNvZzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xNC4zMDUgMTkuNTMuOTIzLS4zODInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYuODUyIDE1LjIyOC0uMzgzLS45MjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20xOS4xNDggMTUuMjI4LjM4My0uOTIzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA3LjgyYTE1IDE1IDAgMCAxIDIwIDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ20yMC43NzIgMTkuMTQ4LjkyNC4zODMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMS44NThhMTAgMTAgMCAwIDEgMTEuNS0xLjc4NScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjUgMTUuNDI5YTUgNSAwIDAgMSAyLjQxMy0xLjMxJyB9XSxcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTgnLCBjeTogJzE4JywgcjogJzMnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV2lmaUNvZztcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB3aWZpLWxvd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTWpCb0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRMalVnTVRZdU5ESTVZVFVnTlNBd0lEQWdNU0EzSURBaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dpZmktbG93XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV2lmaUxvdzogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdpZmlMb3c7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2lmaS1oaWdoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakJvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWswMUlERXlMamcxT1dFeE1DQXhNQ0F3SURBZ01TQXhOQ0F3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpVZ01UWXVOREk1WVRVZ05TQXdJREFnTVNBM0lEQWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aWZpLWhpZ2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXaWZpSGlnaDogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTQgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV2lmaUhpZ2g7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2lmaS1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qQm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0TGpVZ01UWXVOREk1WVRVZ05TQXdJREFnTVNBM0lEQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNVEl1T0RVNVlURXdJREV3SURBZ01DQXhJRFV1TVRjdE1pNDJPU0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGtnTVRJdU9EVTVZVEV3SURFd0lEQWdNQ0F3TFRJdU1EQTNMVEV1TlRJeklpQXZQZ29nSUR4d1lYUm9JR1E5SWsweUlEZ3VPREpoTVRVZ01UVWdNQ0F3SURFZ05DNHhOemN0TWk0Mk5ETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXlJRGd1T0RKaE1UVWdNVFVnTUNBd0lEQXRNVEV1TWpnNExUTXVOelkwSWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURJZ01qQWdNakFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2lmaS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXaWZpT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEyIDIwaC4wMScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMi44NTlhMTAgMTAgMCAwIDEgNS4xNy0yLjY5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDEyLjg1OWExMCAxMCAwIDAgMC0yLjAwNy0xLjUyMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yIDguODJhMTUgMTUgMCAwIDEgNC4xNzctMi42NDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjIgOC44MmExNSAxNSAwIDAgMC0xMS4yODgtMy43NjQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdpZmlPZmY7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2lmaS1wZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWlBNExqZ3lZVEUxSURFMUlEQWdNQ0F4SURJd0lEQWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUSXhMak0zT0NBeE5pNDJNalpoTVNBeElEQWdNQ0F3TFRNdU1EQTBMVE11TURBMGJDMDBMakF4SURRdU1ERXlZVElnTWlBd0lEQWdNQzB1TlRBMkxqZzFOR3d0TGpnek55QXlMamczWVM0MUxqVWdNQ0F3SURBZ0xqWXlMall5YkRJdU9EY3RMamd6TjJFeUlESWdNQ0F3SURBZ0xqZzFOQzB1TlRBMmVpSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNaTQ0TlRsaE1UQWdNVEFnTUNBd0lERWdNVEF1TlMweUxqSXlNaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQzQxSURFMkxqUXlPV0UxSURVZ01DQXdJREVnTXkweExqUXdOaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2lmaS1wZW5cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXaWZpUGVuOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eicsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTUgMTIuODU5YTEwIDEwIDAgMCAxIDEwLjUtMi4yMjInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC41IDE2LjQyOWE1IDUgMCAwIDEgMy0xLjQwNicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBXaWZpUGVuO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdpZmktc3luY1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEV1T1RZMUlERXdMakV3TlhZMFRERXpMalVnTVRJdU5XRTFJRFVnTUNBd0lERWdPQ0F4TGpVaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFeExqazJOU0F4TkM0eE1EVm9OQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVGN1T1RZMUlERTRMakV3TldnMFRESXdMalF6SURFNUxqY3hZVFVnTlNBd0lEQWdNUzA0TFRFdU5TSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQTRMamd5WVRFMUlERTFJREFnTUNBeElESXdJREFpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVEl4TGprMk5TQXlNaTR4TURWMkxUUWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUVWdNVEl1T0RaaE1UQWdNVEFnTUNBd0lERWdNeTB5TGpBek1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DNDFJREUyTGpReU9XZ3VNREVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2lmaS1zeW5jXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV2lmaVN5bmM6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuOTY1IDEwLjEwNXY0TDEzLjUgMTIuNWE1IDUgMCAwIDEgOCAxLjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTEuOTY1IDE0LjEwNWg0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3Ljk2NSAxOC4xMDVoNEwyMC40MyAxOS43MWE1IDUgMCAwIDEtOC0xLjUnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEuOTY1IDIyLjEwNXYtNCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ001IDEyLjg2YTEwIDEwIDAgMCAxIDMtMi4wMzInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOC41IDE2LjQyOWguMDEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV2lmaVN5bmM7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2lmaS16ZXJvXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNakJvTGpBeElpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dpZmktemVyb1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFdpZmlaZXJvOiBJY29uTm9kZSA9IFtbJ3BhdGgnLCB7IGQ6ICdNMTIgMjBoLjAxJyB9XV07XG5cbmV4cG9ydCBkZWZhdWx0IFdpZmlaZXJvO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdpZmlcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ01qQm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5SURndU9ESmhNVFVnTVRVZ01DQXdJREVnTWpBZ01DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNaTQ0TlRsaE1UQWdNVEFnTUNBd0lERWdNVFFnTUNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0M0MUlERTJMalF5T1dFMUlEVWdNQ0F3SURFZ055QXdJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aWZpXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV2lmaTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyMGguMDEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTQgMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV2lmaTtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB3aW5kLWFycm93LWRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBZ01uWTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaTQ0SURJeExqWkJNaUF5SURBZ01TQXdJREUwSURFNFNESWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTNMalVnTVRCaE1pNDFJREl1TlNBd0lERWdNU0F5SURSSU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKdE5pQTJJRFFnTkNBMExUUWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93aW5kLWFycm93LWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXaW5kQXJyb3dEb3duOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTEwIDJ2OCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMi44IDIxLjZBMiAyIDAgMSAwIDE0IDE4SDInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTcuNSAxMGEyLjUgMi41IDAgMSAxIDIgNEgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgNiA0IDQgNC00JyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFdpbmRBcnJvd0Rvd247XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd2luZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBub2RlLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEl1T0NBeE9TNDJRVElnTWlBd0lERWdNQ0F4TkNBeE5rZ3lJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOeTQxSURoaE1pNDFJREl1TlNBd0lERWdNU0F5SURSSU1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9TNDRJRFF1TkVFeUlESWdNQ0F4SURFZ01URWdPRWd5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2luZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFdpbmQ6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIuOCAxOS42QTIgMiAwIDEgMCAxNCAxNkgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE3LjUgOGEyLjUgMi41IDAgMSAxIDIgNEgyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTkuOCA0LjRBMiAyIDAgMSAxIDExIDhIMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBXaW5kO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdpbmUtb2ZmXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFd2FETnROeUF3YUMweExqTTBNeUlnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRWMk55SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk55NHpNRGNnTnk0ek1EZEJNVEl1TXpNZ01USXVNek1nTUNBd0lEQWdOeUF4TUdFMUlEVWdNQ0F3SURBZ055NHpPVEVnTkM0ek9URk5PQzQyTXpnZ01pNDVPREZET0M0M05TQXlMalkyT0NBNExqZzNNaUF5TGpNMElEa2dNbWcyWXpFdU5TQTBJRElnTmlBeUlEZ2dNQ0F1TkRBM0xTNHdOUzQ0TURrdExqRTBOU0F4TGpFNU9DSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1pSWdlREk5SWpJeUlpQjVNVDBpTWlJZ2VUSTlJakl5SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvd2luZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXaW5lT2ZmOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMjJoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEwaDNtNyAwaC0xLjM0MycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNXY3JyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTcuMzA3IDcuMzA3QTEyLjMzIDEyLjMzIDAgMCAwIDcgMTBhNSA1IDAgMCAwIDcuMzkxIDQuMzkxTTguNjM4IDIuOTgxQzguNzUgMi42NjggOC44NzIgMi4zNCA5IDJoNmMxLjUgNCAyIDYgMiA4IDAgLjQwNy0uMDUuODA5LS4xNDUgMS4xOTgnLFxuICAgIH0sXG4gIF0sXG4gIFsnbGluZScsIHsgeDE6ICcyJywgeDI6ICcyMicsIHkxOiAnMicsIHkyOiAnMjInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV2luZU9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB3aW5lXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk9DQXlNbWc0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAzSURFd2FERXdJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUF4TlhZM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE1pQXhOV0UxSURVZ01DQXdJREFnTlMwMVl6QXRNaTB1TlMwMExUSXRPRWc1WXkweExqVWdOQzB5SURZdE1pQTRZVFVnTlNBd0lEQWdNQ0ExSURWYUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dpbmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXaW5lOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTggMjJoOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ003IDEwaDEwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDE1djcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgMTVhNSA1IDAgMCAwIDUtNWMwLTItLjUtNC0yLThIOWMtMS41IDQtMiA2LTIgOGE1IDUgMCAwIDAgNSA1WicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBXaW5lO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdvcm1cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TVRrZ01USXRNUzQxSURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNUxqWXpJREU0TGpneElESXlJREl3SWlBdlBnb2dJRHh3WVhSb0lHUTlJazAyTGpRM0lEZ3VNak5oTVM0Mk9DQXhMalk0SURBZ01DQXhJREl1TkRRZ01TNDVNMnd0TGpZMElESXVNRGhoTmk0M05pQTJMamMySURBZ01DQXdJREV3TGpFMklEY3VOamRzTGpReUxTNHlOMkV4SURFZ01DQXhJREF0TWk0M015MDBMakl4YkMwdU5ESXVNamRoTVM0M05pQXhMamMySURBZ01DQXhMVEl1TmpNdE1TNDVPV3d1TmpRdE1pNHdPRUUyTGpZMklEWXVOallnTUNBd0lEQWdNeTQ1TkNBekxqbHNMUzQzTGpSaE1TQXhJREFnTVNBd0lESXVOVFVnTkM0ek5Ib2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93b3JtXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV29ybTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ20xOSAxMi0xLjUgMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOS42MyAxOC44MSAyMiAyMCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ002LjQ3IDguMjNhMS42OCAxLjY4IDAgMCAxIDIuNDQgMS45M2wtLjY0IDIuMDhhNi43NiA2Ljc2IDAgMCAwIDEwLjE2IDcuNjdsLjQyLS4yN2ExIDEgMCAxIDAtMi43My00LjIxbC0uNDIuMjdhMS43NiAxLjc2IDAgMCAxLTIuNjMtMS45OWwuNjQtMi4wOEE2LjY2IDYuNjYgMCAwIDAgMy45NCAzLjlsLS43LjRhMSAxIDAgMSAwIDIuNTUgNC4zNHonLFxuICAgIH0sXG4gIF0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBXb3JtO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHdvcmtmbG93XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0k0SWlCNFBTSXpJaUI1UFNJeklpQnllRDBpTWlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTnlBeE1YWTBZVElnTWlBd0lEQWdNQ0F5SURKb05DSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlPQ0lnYUdWcFoyaDBQU0k0SWlCNFBTSXhNeUlnZVQwaU1UTWlJSEo0UFNJeUlpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3dvcmtmbG93XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgV29ya2Zsb3c6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzgnLCB4OiAnMycsIHk6ICczJywgcng6ICcyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTcgMTF2NGEyIDIgMCAwIDAgMiAyaDQnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnOCcsIGhlaWdodDogJzgnLCB4OiAnMTMnLCB5OiAnMTMnLCByeDogJzInIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV29ya2Zsb3c7XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgd3JlbmNoXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIG5vZGUuXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVOeUEyTGpOaE1TQXhJREFnTUNBd0lEQWdNUzQwYkRFdU5pQXhMalpoTVNBeElEQWdNQ0F3SURFdU5DQXdiRE11TVRBMkxUTXVNVEExWXk0ek1pMHVNekl5TGpnMk15MHVNakl1T1RnekxqSXhPR0UySURZZ01DQXdJREV0T0M0eU5Ua2dOeTR3TlRkc0xUY3VPVEVnTnk0NU1XRXhJREVnTUNBd0lERXRNaTQ1T1RrdE0ydzNMamt4TFRjdU9URmhOaUEySURBZ01DQXhJRGN1TURVM0xUZ3VNalU1WXk0ME16Z3VNVEl1TlRRdU5qWXlMakl4T1M0NU9EUjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy93cmVuY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZSAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKlxuICovXG5jb25zdCBXcmVuY2g6IEljb25Ob2RlID0gW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuMTA2LTMuMTA1Yy4zMi0uMzIyLjg2My0uMjIuOTgzLjIxOGE2IDYgMCAwIDEtOC4yNTkgNy4wNTdsLTcuOTEgNy45MWExIDEgMCAwIDEtMi45OTktM2w3LjkxLTcuOTFhNiA2IDAgMCAxIDcuMDU3LTguMjU5Yy40MzguMTIuNTQuNjYyLjIxOS45ODR6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgV3JlbmNoO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRnZ05pQTJJREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTAySURZZ01USWdNVElpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMveFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFg6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTggNiA2IDE4JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTYgNiAxMiAxMicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBYO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHlvdXR1YmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWk0MUlERTNZVEkwTGpFeUlESTBMakV5SURBZ01DQXhJREF0TVRBZ01pQXlJREFnTUNBeElERXVOQzB4TGpRZ05Ea3VOVFlnTkRrdU5UWWdNQ0F3SURFZ01UWXVNaUF3UVRJZ01pQXdJREFnTVNBeU1TNDFJRGRoTWpRdU1USWdNalF1TVRJZ01DQXdJREVnTUNBeE1DQXlJRElnTUNBd0lERXRNUzQwSURFdU5DQTBPUzQxTlNBME9TNDFOU0F3SURBZ01TMHhOaTR5SURCQk1pQXlJREFnTUNBeElESXVOU0F4TnlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0p0TVRBZ01UVWdOUzB6TFRVdE0zb2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy95b3V0dWJlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICogQGRlcHJlY2F0ZWQgQnJhbmQgaWNvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIGFyZSBkdWUgdG8gYmUgcmVtb3ZlZCwgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWNpZGUtaWNvbnMvbHVjaWRlL2lzc3Vlcy82NzAuIFdlIHJlY29tbWVuZCB1c2luZyBodHRwczovL3NpbXBsZWljb25zLm9yZy8/cT15b3V0dWJlIGluc3RlYWQuIFRoaXMgaWNvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdjEuMFxuICovXG5jb25zdCBZb3V0dWJlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIuNSAxN2EyNC4xMiAyNC4xMiAwIDAgMSAwLTEwIDIgMiAwIDAgMSAxLjQtMS40IDQ5LjU2IDQ5LjU2IDAgMCAxIDE2LjIgMEEyIDIgMCAwIDEgMjEuNSA3YTI0LjEyIDI0LjEyIDAgMCAxIDAgMTAgMiAyIDAgMCAxLTEuNCAxLjQgNDkuNTUgNDkuNTUgMCAwIDEtMTYuMiAwQTIgMiAwIDAgMSAyLjUgMTcnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20xMCAxNSA1LTMtNS0zeicgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBZb3V0dWJlO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHphcC1vZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTVRBdU5URXpJRFF1T0RVMklERXpMakV5SURJdU1UZGhMalV1TlNBd0lEQWdNU0F1T0RZdU5EWnNMVEV1TXpjM0lEUXVNekUzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4TlM0Mk5UWWdNVEJJTWpCaE1TQXhJREFnTUNBeElDNDNPQ0F4TGpZemJDMHhMamN5SURFdU56Y3pJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOaTR5TnpNZ01UWXVNamN6SURFd0xqZzRJREl4TGpnellTNDFMalVnTUNBd0lERXRMamcyTFM0ME5td3hMamt5TFRZdU1ESkJNU0F4SURBZ01DQXdJREV4SURFMFNEUmhNU0F4SURBZ01DQXhMUzQzT0MweExqWXpiRFF1TlRBM0xUUXVOalF6SWlBdlBnb2dJRHh3WVhSb0lHUTlJbTB5SURJZ01qQWdNakFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvemFwLW9mZlxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFphcE9mZjogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00xMC41MTMgNC44NTYgMTMuMTIgMi4xN2EuNS41IDAgMCAxIC44Ni40NmwtMS4zNzcgNC4zMTcnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTUuNjU2IDEwSDIwYTEgMSAwIDAgMSAuNzggMS42M2wtMS43MiAxLjc3MycgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xNi4yNzMgMTYuMjczIDEwLjg4IDIxLjgzYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0SDRhMSAxIDAgMCAxLS43OC0xLjYzbDQuNTA3LTQuNjQzJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMiAyIDIwIDIwJyB9XSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IFphcE9mZjtcbiIsICJpbXBvcnQgZGVmYXVsdEF0dHJpYnV0ZXMgZnJvbSAnLi4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHR5cGUgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBAbmFtZSB6YXBcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTkNBeE5HRXhJREVnTUNBd0lERXRMamM0TFRFdU5qTnNPUzQ1TFRFd0xqSmhMalV1TlNBd0lEQWdNU0F1T0RZdU5EWnNMVEV1T1RJZ05pNHdNa0V4SURFZ01DQXdJREFnTVRNZ01UQm9OMkV4SURFZ01DQXdJREVnTGpjNElERXVOak5zTFRrdU9TQXhNQzR5WVM0MUxqVWdNQ0F3SURFdExqZzJMUzQwTm13eExqa3lMVFl1TURKQk1TQXhJREFnTUNBd0lERXhJREUwZWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3phcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFphcDogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ000IDE0YTEgMSAwIDAgMS0uNzgtMS42M2w5LjktMTAuMmEuNS41IDAgMCAxIC44Ni40NmwtMS45MiA2LjAyQTEgMSAwIDAgMCAxMyAxMGg3YTEgMSAwIDAgMSAuNzggMS42M2wtOS45IDEwLjJhLjUuNSAwIDAgMS0uODYtLjQ2bDEuOTItNi4wMkExIDEgMCAwIDAgMTEgMTR6JyxcbiAgICB9LFxuICBdLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgWmFwO1xuIiwgImltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuLi9kZWZhdWx0QXR0cmlidXRlcyc7XG5pbXBvcnQgdHlwZSB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEBuYW1lIHpvb20taW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1TSWdZM2s5SWpFeElpQnlQU0k0SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l5TVNJZ2VESTlJakUyTGpZMUlpQjVNVDBpTWpFaUlIa3lQU0l4Tmk0Mk5TSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1URWlJSGd5UFNJeE1TSWdlVEU5SWpnaUlIa3lQU0l4TkNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpT0NJZ2VESTlJakUwSWlCNU1UMGlNVEVpSUhreVBTSXhNU0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvem9vbS1pblxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlIC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqXG4gKi9cbmNvbnN0IFpvb21JbjogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICcxMScsIHI6ICc4JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzIxJywgeDI6ICcxNi42NScsIHkxOiAnMjEnLCB5MjogJzE2LjY1JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzExJywgeDI6ICcxMScsIHkxOiAnOCcsIHkyOiAnMTQnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnOCcsIHgyOiAnMTQnLCB5MTogJzExJywgeTI6ICcxMScgfV0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBab29tSW47XG4iLCAiaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4uL2RlZmF1bHRBdHRyaWJ1dGVzJztcbmltcG9ydCB0eXBlIHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQG5hbWUgem9vbS1vdXRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gbm9kZS5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1TSWdZM2s5SWpFeElpQnlQU0k0SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0l5TVNJZ2VESTlJakUyTGpZMUlpQjVNVDBpTWpFaUlIa3lQU0l4Tmk0Mk5TSWdMejRLSUNBOGJHbHVaU0I0TVQwaU9DSWdlREk5SWpFMElpQjVNVDBpTVRFaUlIa3lQU0l4TVNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3pvb20tb3V0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICpcbiAqL1xuY29uc3QgWm9vbU91dDogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICcxMScsIHI6ICc4JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzIxJywgeDI6ICcxNi42NScsIHkxOiAnMjEnLCB5MjogJzE2LjY1JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzgnLCB4MjogJzE0JywgeTE6ICcxMScsIHkyOiAnMTEnIH1dLFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgWm9vbU91dDtcbiIsICIvKipcbiAqIEBsaWNlbnNlIGx1Y2lkZSB2MC41NjIuMCAtIElTQ1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBQXJyb3dEb3duIH0gZnJvbSAnLi9pY29ucy9hLWFycm93LWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBQXJyb3dVcCB9IGZyb20gJy4vaWNvbnMvYS1hcnJvdy11cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFMYXJnZVNtYWxsIH0gZnJvbSAnLi9pY29ucy9hLWxhcmdlLXNtYWxsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWNjZXNzaWJpbGl0eSB9IGZyb20gJy4vaWNvbnMvYWNjZXNzaWJpbGl0eS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFjdGl2aXR5IH0gZnJvbSAnLi9pY29ucy9hY3Rpdml0eS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFpclZlbnQgfSBmcm9tICcuL2ljb25zL2Fpci12ZW50LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxhcm1DaGVjaywgZGVmYXVsdCBhcyBBbGFybUNsb2NrQ2hlY2sgfSBmcm9tICcuL2ljb25zL2FsYXJtLWNsb2NrLWNoZWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWlycGxheSB9IGZyb20gJy4vaWNvbnMvYWlycGxheS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsYXJtQ2xvY2tNaW51cywgZGVmYXVsdCBhcyBBbGFybU1pbnVzIH0gZnJvbSAnLi9pY29ucy9hbGFybS1jbG9jay1taW51cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsYXJtQ2xvY2tPZmYgfSBmcm9tICcuL2ljb25zL2FsYXJtLWNsb2NrLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsYXJtQ2xvY2tQbHVzLCBkZWZhdWx0IGFzIEFsYXJtUGx1cyB9IGZyb20gJy4vaWNvbnMvYWxhcm0tY2xvY2stcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsYXJtQ2xvY2sgfSBmcm9tICcuL2ljb25zL2FsYXJtLWNsb2NrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxhcm1TbW9rZSB9IGZyb20gJy4vaWNvbnMvYWxhcm0tc21va2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGJ1bSB9IGZyb20gJy4vaWNvbnMvYWxidW0uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGlnbkNlbnRlckhvcml6b250YWwgfSBmcm9tICcuL2ljb25zL2FsaWduLWNlbnRlci1ob3Jpem9udGFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxpZ25DZW50ZXJWZXJ0aWNhbCB9IGZyb20gJy4vaWNvbnMvYWxpZ24tY2VudGVyLXZlcnRpY2FsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxpZ25FbmRIb3Jpem9udGFsIH0gZnJvbSAnLi9pY29ucy9hbGlnbi1lbmQtaG9yaXpvbnRhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsaWduRW5kVmVydGljYWwgfSBmcm9tICcuL2ljb25zL2FsaWduLWVuZC12ZXJ0aWNhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXIgfSBmcm9tICcuL2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1jZW50ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQgfSBmcm9tICcuL2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1zdGFydC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQgfSBmcm9tICcuL2ljb25zL2FsaWduLWhvcml6b250YWwtZGlzdHJpYnV0ZS1lbmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGlnbkhvcml6b250YWxKdXN0aWZ5Q2VudGVyIH0gZnJvbSAnLi9pY29ucy9hbGlnbi1ob3Jpem9udGFsLWp1c3RpZnktY2VudGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZCB9IGZyb20gJy4vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LWVuZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsaWduSG9yaXpvbnRhbEp1c3RpZnlTdGFydCB9IGZyb20gJy4vaWNvbnMvYWxpZ24taG9yaXpvbnRhbC1qdXN0aWZ5LXN0YXJ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQgfSBmcm9tICcuL2ljb25zL2FsaWduLWhvcml6b250YWwtc3BhY2UtYXJvdW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuIH0gZnJvbSAnLi9pY29ucy9hbGlnbi1ob3Jpem9udGFsLXNwYWNlLWJldHdlZW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGlnblN0YXJ0SG9yaXpvbnRhbCB9IGZyb20gJy4vaWNvbnMvYWxpZ24tc3RhcnQtaG9yaXpvbnRhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsaWduU3RhcnRWZXJ0aWNhbCB9IGZyb20gJy4vaWNvbnMvYWxpZ24tc3RhcnQtdmVydGljYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUNlbnRlciB9IGZyb20gJy4vaWNvbnMvYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZS1jZW50ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZCB9IGZyb20gJy4vaWNvbnMvYWxpZ24tdmVydGljYWwtZGlzdHJpYnV0ZS1lbmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0IH0gZnJvbSAnLi9pY29ucy9hbGlnbi12ZXJ0aWNhbC1kaXN0cmlidXRlLXN0YXJ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxpZ25WZXJ0aWNhbEp1c3RpZnlDZW50ZXIgfSBmcm9tICcuL2ljb25zL2FsaWduLXZlcnRpY2FsLWp1c3RpZnktY2VudGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQgfSBmcm9tICcuL2ljb25zL2FsaWduLXZlcnRpY2FsLWp1c3RpZnktZW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxpZ25WZXJ0aWNhbEp1c3RpZnlTdGFydCB9IGZyb20gJy4vaWNvbnMvYWxpZ24tdmVydGljYWwtanVzdGlmeS1zdGFydC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsaWduVmVydGljYWxTcGFjZUFyb3VuZCB9IGZyb20gJy4vaWNvbnMvYWxpZ24tdmVydGljYWwtc3BhY2UtYXJvdW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbiB9IGZyb20gJy4vaWNvbnMvYWxpZ24tdmVydGljYWwtc3BhY2UtYmV0d2Vlbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFtYnVsYW5jZSB9IGZyb20gJy4vaWNvbnMvYW1idWxhbmNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQW1wZXJzYW5kIH0gZnJvbSAnLi9pY29ucy9hbXBlcnNhbmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbXBlcnNhbmRzIH0gZnJvbSAnLi9pY29ucy9hbXBlcnNhbmRzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQW1waG9yYSB9IGZyb20gJy4vaWNvbnMvYW1waG9yYS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFuY2hvciB9IGZyb20gJy4vaWNvbnMvYW5jaG9yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQW5ncnkgfSBmcm9tICcuL2ljb25zL2FuZ3J5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQW5ub3llZCB9IGZyb20gJy4vaWNvbnMvYW5ub3llZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFudGVubmEgfSBmcm9tICcuL2ljb25zL2FudGVubmEuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbnZpbCB9IGZyb20gJy4vaWNvbnMvYW52aWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcGVydHVyZSB9IGZyb20gJy4vaWNvbnMvYXBlcnR1cmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcHBXaW5kb3dNYWMgfSBmcm9tICcuL2ljb25zL2FwcC13aW5kb3ctbWFjLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXBwV2luZG93IH0gZnJvbSAnLi9pY29ucy9hcHAtd2luZG93LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXBwbGUgfSBmcm9tICcuL2ljb25zL2FwcGxlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJjaGl2ZVJlc3RvcmUgfSBmcm9tICcuL2ljb25zL2FyY2hpdmUtcmVzdG9yZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFyY2hpdmVYIH0gZnJvbSAnLi9pY29ucy9hcmNoaXZlLXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcmNoaXZlIH0gZnJvbSAnLi9pY29ucy9hcmNoaXZlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJtY2hhaXIgfSBmcm9tICcuL2ljb25zL2FybWNoYWlyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dCaWdEb3duRGFzaCB9IGZyb20gJy4vaWNvbnMvYXJyb3ctYmlnLWRvd24tZGFzaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93QmlnRG93biB9IGZyb20gJy4vaWNvbnMvYXJyb3ctYmlnLWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd0JpZ0xlZnREYXNoIH0gZnJvbSAnLi9pY29ucy9hcnJvdy1iaWctbGVmdC1kYXNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dCaWdMZWZ0IH0gZnJvbSAnLi9pY29ucy9hcnJvdy1iaWctbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93QmlnUmlnaHREYXNoIH0gZnJvbSAnLi9pY29ucy9hcnJvdy1iaWctcmlnaHQtZGFzaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93QmlnUmlnaHQgfSBmcm9tICcuL2ljb25zL2Fycm93LWJpZy1yaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93QmlnVXBEYXNoIH0gZnJvbSAnLi9pY29ucy9hcnJvdy1iaWctdXAtZGFzaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93QmlnVXAgfSBmcm9tICcuL2ljb25zL2Fycm93LWJpZy11cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93RG93bjAxIH0gZnJvbSAnLi9pY29ucy9hcnJvdy1kb3duLTAtMS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93RG93bjEwIH0gZnJvbSAnLi9pY29ucy9hcnJvdy1kb3duLTEtMC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93RG93bkFaLCBkZWZhdWx0IGFzIEFycm93RG93bkF6IH0gZnJvbSAnLi9pY29ucy9hcnJvdy1kb3duLWEtei5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93RG93bkZyb21MaW5lIH0gZnJvbSAnLi9pY29ucy9hcnJvdy1kb3duLWZyb20tbGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93RG93bkxlZnQgfSBmcm9tICcuL2ljb25zL2Fycm93LWRvd24tbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93RG93blJpZ2h0IH0gZnJvbSAnLi9pY29ucy9hcnJvdy1kb3duLXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dEb3duVG9Eb3QgfSBmcm9tICcuL2ljb25zL2Fycm93LWRvd24tdG8tZG90LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dEb3duTmFycm93V2lkZSB9IGZyb20gJy4vaWNvbnMvYXJyb3ctZG93bi1uYXJyb3ctd2lkZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93RG93blRvTGluZSB9IGZyb20gJy4vaWNvbnMvYXJyb3ctZG93bi10by1saW5lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dEb3duVXAgfSBmcm9tICcuL2ljb25zL2Fycm93LWRvd24tdXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd0Rvd25XaWRlTmFycm93LCBkZWZhdWx0IGFzIFNvcnREZXNjIH0gZnJvbSAnLi9pY29ucy9hcnJvdy1kb3duLXdpZGUtbmFycm93LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dEb3duWkEsIGRlZmF1bHQgYXMgQXJyb3dEb3duWmEgfSBmcm9tICcuL2ljb25zL2Fycm93LWRvd24tei1hLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dEb3duIH0gZnJvbSAnLi9pY29ucy9hcnJvdy1kb3duLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dMZWZ0UmlnaHQgfSBmcm9tICcuL2ljb25zL2Fycm93LWxlZnQtcmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd0xlZnRGcm9tTGluZSB9IGZyb20gJy4vaWNvbnMvYXJyb3ctbGVmdC1mcm9tLWxpbmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd0xlZnRUb0xpbmUgfSBmcm9tICcuL2ljb25zL2Fycm93LWxlZnQtdG8tbGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93TGVmdCB9IGZyb20gJy4vaWNvbnMvYXJyb3ctbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93UmlnaHRGcm9tTGluZSB9IGZyb20gJy4vaWNvbnMvYXJyb3ctcmlnaHQtZnJvbS1saW5lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dSaWdodExlZnQgfSBmcm9tICcuL2ljb25zL2Fycm93LXJpZ2h0LWxlZnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd1JpZ2h0VG9MaW5lIH0gZnJvbSAnLi9pY29ucy9hcnJvdy1yaWdodC10by1saW5lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dSaWdodCB9IGZyb20gJy4vaWNvbnMvYXJyb3ctcmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd1VwMDEgfSBmcm9tICcuL2ljb25zL2Fycm93LXVwLTAtMS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93VXAxMCB9IGZyb20gJy4vaWNvbnMvYXJyb3ctdXAtMS0wLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dVcEFaLCBkZWZhdWx0IGFzIEFycm93VXBBeiB9IGZyb20gJy4vaWNvbnMvYXJyb3ctdXAtYS16LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dVcERvd24gfSBmcm9tICcuL2ljb25zL2Fycm93LXVwLWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd1VwRnJvbURvdCB9IGZyb20gJy4vaWNvbnMvYXJyb3ctdXAtZnJvbS1kb3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd1VwRnJvbUxpbmUgfSBmcm9tICcuL2ljb25zL2Fycm93LXVwLWZyb20tbGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93VXBMZWZ0IH0gZnJvbSAnLi9pY29ucy9hcnJvdy11cC1sZWZ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dVcE5hcnJvd1dpZGUsIGRlZmF1bHQgYXMgU29ydEFzYyB9IGZyb20gJy4vaWNvbnMvYXJyb3ctdXAtbmFycm93LXdpZGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd1VwUmlnaHQgfSBmcm9tICcuL2ljb25zL2Fycm93LXVwLXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dVcFRvTGluZSB9IGZyb20gJy4vaWNvbnMvYXJyb3ctdXAtdG8tbGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93VXBXaWRlTmFycm93IH0gZnJvbSAnLi9pY29ucy9hcnJvdy11cC13aWRlLW5hcnJvdy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93VXBaQSwgZGVmYXVsdCBhcyBBcnJvd1VwWmEgfSBmcm9tICcuL2ljb25zL2Fycm93LXVwLXotYS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93VXAgfSBmcm9tICcuL2ljb25zL2Fycm93LXVwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dzVXBGcm9tTGluZSB9IGZyb20gJy4vaWNvbnMvYXJyb3dzLXVwLWZyb20tbGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFzdGVyaXNrIH0gZnJvbSAnLi9pY29ucy9hc3Rlcmlzay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEF0U2lnbiB9IGZyb20gJy4vaWNvbnMvYXQtc2lnbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEF0b20gfSBmcm9tICcuL2ljb25zL2F0b20uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBdWRpb0xpbmVzIH0gZnJvbSAnLi9pY29ucy9hdWRpby1saW5lcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEF3YXJkIH0gZnJvbSAnLi9pY29ucy9hd2FyZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEF1ZGlvV2F2ZWZvcm0gfSBmcm9tICcuL2ljb25zL2F1ZGlvLXdhdmVmb3JtLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXhlIH0gZnJvbSAnLi9pY29ucy9heGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBeGlzM0QsIGRlZmF1bHQgYXMgQXhpczNkIH0gZnJvbSAnLi9pY29ucy9heGlzLTNkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFieSB9IGZyb20gJy4vaWNvbnMvYmFieS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhY2twYWNrIH0gZnJvbSAnLi9pY29ucy9iYWNrcGFjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhZGdlQWxlcnQgfSBmcm9tICcuL2ljb25zL2JhZGdlLWFsZXJ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2VDZW50IH0gZnJvbSAnLi9pY29ucy9iYWRnZS1jZW50LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2VDaGVjaywgZGVmYXVsdCBhcyBWZXJpZmllZCB9IGZyb20gJy4vaWNvbnMvYmFkZ2UtY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYWRnZURvbGxhclNpZ24gfSBmcm9tICcuL2ljb25zL2JhZGdlLWRvbGxhci1zaWduLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2VFdXJvIH0gZnJvbSAnLi9pY29ucy9iYWRnZS1ldXJvLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2VJbmRpYW5SdXBlZSB9IGZyb20gJy4vaWNvbnMvYmFkZ2UtaW5kaWFuLXJ1cGVlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2VJbmZvIH0gZnJvbSAnLi9pY29ucy9iYWRnZS1pbmZvLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2VKYXBhbmVzZVllbiB9IGZyb20gJy4vaWNvbnMvYmFkZ2UtamFwYW5lc2UteWVuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2VNaW51cyB9IGZyb20gJy4vaWNvbnMvYmFkZ2UtbWludXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYWRnZVBlcmNlbnQgfSBmcm9tICcuL2ljb25zL2JhZGdlLXBlcmNlbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYWRnZVBsdXMgfSBmcm9tICcuL2ljb25zL2JhZGdlLXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYWRnZVBvdW5kU3RlcmxpbmcgfSBmcm9tICcuL2ljb25zL2JhZGdlLXBvdW5kLXN0ZXJsaW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2VIZWxwLCBkZWZhdWx0IGFzIEJhZGdlUXVlc3Rpb25NYXJrIH0gZnJvbSAnLi9pY29ucy9iYWRnZS1xdWVzdGlvbi1tYXJrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2VSdXNzaWFuUnVibGUgfSBmcm9tICcuL2ljb25zL2JhZGdlLXJ1c3NpYW4tcnVibGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYWRnZVN3aXNzRnJhbmMgfSBmcm9tICcuL2ljb25zL2JhZGdlLXN3aXNzLWZyYW5jLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2VUdXJraXNoTGlyYSB9IGZyb20gJy4vaWNvbnMvYmFkZ2UtdHVya2lzaC1saXJhLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2VYIH0gZnJvbSAnLi9pY29ucy9iYWRnZS14LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2UgfSBmcm9tICcuL2ljb25zL2JhZGdlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFnZ2FnZUNsYWltIH0gZnJvbSAnLi9pY29ucy9iYWdnYWdlLWNsYWltLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFsbG9vbiB9IGZyb20gJy4vaWNvbnMvYmFsbG9vbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhbiB9IGZyb20gJy4vaWNvbnMvYmFuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFuYW5hIH0gZnJvbSAnLi9pY29ucy9iYW5hbmEuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYW5kYWdlIH0gZnJvbSAnLi9pY29ucy9iYW5kYWdlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFua25vdGVBcnJvd0Rvd24gfSBmcm9tICcuL2ljb25zL2Jhbmtub3RlLWFycm93LWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYW5rbm90ZUFycm93VXAgfSBmcm9tICcuL2ljb25zL2Jhbmtub3RlLWFycm93LXVwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFua25vdGVYIH0gZnJvbSAnLi9pY29ucy9iYW5rbm90ZS14LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFua25vdGUgfSBmcm9tICcuL2ljb25zL2Jhbmtub3RlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFyY29kZSB9IGZyb20gJy4vaWNvbnMvYmFyY29kZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhcnJlbCB9IGZyb20gJy4vaWNvbnMvYmFycmVsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFzZWxpbmUgfSBmcm9tICcuL2ljb25zL2Jhc2VsaW5lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmF0aCB9IGZyb20gJy4vaWNvbnMvYmF0aC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhdHRlcnlDaGFyZ2luZyB9IGZyb20gJy4vaWNvbnMvYmF0dGVyeS1jaGFyZ2luZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhdHRlcnlGdWxsIH0gZnJvbSAnLi9pY29ucy9iYXR0ZXJ5LWZ1bGwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYXR0ZXJ5TG93IH0gZnJvbSAnLi9pY29ucy9iYXR0ZXJ5LWxvdy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhdHRlcnlQbHVzIH0gZnJvbSAnLi9pY29ucy9iYXR0ZXJ5LXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYXR0ZXJ5TWVkaXVtIH0gZnJvbSAnLi9pY29ucy9iYXR0ZXJ5LW1lZGl1bS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhdHRlcnlXYXJuaW5nIH0gZnJvbSAnLi9pY29ucy9iYXR0ZXJ5LXdhcm5pbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYXR0ZXJ5IH0gZnJvbSAnLi9pY29ucy9iYXR0ZXJ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmVha2VyIH0gZnJvbSAnLi9pY29ucy9iZWFrZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCZWFuT2ZmIH0gZnJvbSAnLi9pY29ucy9iZWFuLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJlYW4gfSBmcm9tICcuL2ljb25zL2JlYW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCZWREb3VibGUgfSBmcm9tICcuL2ljb25zL2JlZC1kb3VibGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCZWRTaW5nbGUgfSBmcm9tICcuL2ljb25zL2JlZC1zaW5nbGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCZWQgfSBmcm9tICcuL2ljb25zL2JlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJlZWYgfSBmcm9tICcuL2ljb25zL2JlZWYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCZWVyT2ZmIH0gZnJvbSAnLi9pY29ucy9iZWVyLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJlZXIgfSBmcm9tICcuL2ljb25zL2JlZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCZWxsRG90IH0gZnJvbSAnLi9pY29ucy9iZWxsLWRvdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJlbGxFbGVjdHJpYyB9IGZyb20gJy4vaWNvbnMvYmVsbC1lbGVjdHJpYy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJlbGxNaW51cyB9IGZyb20gJy4vaWNvbnMvYmVsbC1taW51cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJlbGxPZmYgfSBmcm9tICcuL2ljb25zL2JlbGwtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmVsbFBsdXMgfSBmcm9tICcuL2ljb25zL2JlbGwtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJlbGxSaW5nIH0gZnJvbSAnLi9pY29ucy9iZWxsLXJpbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCZWxsIH0gZnJvbSAnLi9pY29ucy9iZWxsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmV0d2Vlbkhvcml6b25hbEVuZCwgZGVmYXVsdCBhcyBCZXR3ZWVuSG9yaXpvbnRhbEVuZCB9IGZyb20gJy4vaWNvbnMvYmV0d2Vlbi1ob3Jpem9udGFsLWVuZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJldHdlZW5Ib3Jpem9uYWxTdGFydCwgZGVmYXVsdCBhcyBCZXR3ZWVuSG9yaXpvbnRhbFN0YXJ0IH0gZnJvbSAnLi9pY29ucy9iZXR3ZWVuLWhvcml6b250YWwtc3RhcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCZXR3ZWVuVmVydGljYWxFbmQgfSBmcm9tICcuL2ljb25zL2JldHdlZW4tdmVydGljYWwtZW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmV0d2VlblZlcnRpY2FsU3RhcnQgfSBmcm9tICcuL2ljb25zL2JldHdlZW4tdmVydGljYWwtc3RhcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCaWNlcHNGbGV4ZWQgfSBmcm9tICcuL2ljb25zL2JpY2Vwcy1mbGV4ZWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCaWtlIH0gZnJvbSAnLi9pY29ucy9iaWtlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmluYXJ5IH0gZnJvbSAnLi9pY29ucy9iaW5hcnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCaW9oYXphcmQgfSBmcm9tICcuL2ljb25zL2Jpb2hhemFyZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJpbm9jdWxhcnMgfSBmcm9tICcuL2ljb25zL2Jpbm9jdWxhcnMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCaXJkaG91c2UgfSBmcm9tICcuL2ljb25zL2JpcmRob3VzZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJpcmQgfSBmcm9tICcuL2ljb25zL2JpcmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCaXRjb2luIH0gZnJvbSAnLi9pY29ucy9iaXRjb2luLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmxlbmQgfSBmcm9tICcuL2ljb25zL2JsZW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmxpbmRzIH0gZnJvbSAnLi9pY29ucy9ibGluZHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCbG9ja3MgfSBmcm9tICcuL2ljb25zL2Jsb2Nrcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJsdWV0b290aENvbm5lY3RlZCB9IGZyb20gJy4vaWNvbnMvYmx1ZXRvb3RoLWNvbm5lY3RlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJsdWV0b290aE9mZiB9IGZyb20gJy4vaWNvbnMvYmx1ZXRvb3RoLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJsdWV0b290aFNlYXJjaGluZyB9IGZyb20gJy4vaWNvbnMvYmx1ZXRvb3RoLXNlYXJjaGluZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJsdWV0b290aCB9IGZyb20gJy4vaWNvbnMvYmx1ZXRvb3RoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9sZCB9IGZyb20gJy4vaWNvbnMvYm9sZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvbHQgfSBmcm9tICcuL2ljb25zL2JvbHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb21iIH0gZnJvbSAnLi9pY29ucy9ib21iLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9uZSB9IGZyb20gJy4vaWNvbnMvYm9uZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2tBIH0gZnJvbSAnLi9pY29ucy9ib29rLWEuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb29rQWxlcnQgfSBmcm9tICcuL2ljb25zL2Jvb2stYWxlcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb29rQXVkaW8gfSBmcm9tICcuL2ljb25zL2Jvb2stYXVkaW8uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb29rQ2hlY2sgfSBmcm9tICcuL2ljb25zL2Jvb2stY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb29rQ29weSB9IGZyb20gJy4vaWNvbnMvYm9vay1jb3B5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9va0Rhc2hlZCwgZGVmYXVsdCBhcyBCb29rVGVtcGxhdGUgfSBmcm9tICcuL2ljb25zL2Jvb2stZGFzaGVkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9va0Rvd24gfSBmcm9tICcuL2ljb25zL2Jvb2stZG93bi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2tIZWFkcGhvbmVzIH0gZnJvbSAnLi9pY29ucy9ib29rLWhlYWRwaG9uZXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb29rSGVhcnQgfSBmcm9tICcuL2ljb25zL2Jvb2staGVhcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb29rS2V5IH0gZnJvbSAnLi9pY29ucy9ib29rLWtleS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2tJbWFnZSB9IGZyb20gJy4vaWNvbnMvYm9vay1pbWFnZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2tMb2NrIH0gZnJvbSAnLi9pY29ucy9ib29rLWxvY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb29rTWFya2VkIH0gZnJvbSAnLi9pY29ucy9ib29rLW1hcmtlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2tNaW51cyB9IGZyb20gJy4vaWNvbnMvYm9vay1taW51cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2tPcGVuQ2hlY2sgfSBmcm9tICcuL2ljb25zL2Jvb2stb3Blbi1jaGVjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2tPcGVuVGV4dCB9IGZyb20gJy4vaWNvbnMvYm9vay1vcGVuLXRleHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb29rT3BlbiB9IGZyb20gJy4vaWNvbnMvYm9vay1vcGVuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9va1BsdXMgfSBmcm9tICcuL2ljb25zL2Jvb2stcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2tTZWFyY2ggfSBmcm9tICcuL2ljb25zL2Jvb2stc2VhcmNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9va1RleHQgfSBmcm9tICcuL2ljb25zL2Jvb2stdGV4dC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2tVcCB9IGZyb20gJy4vaWNvbnMvYm9vay11cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2tUeXBlIH0gZnJvbSAnLi9pY29ucy9ib29rLXR5cGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb29rVXAyIH0gZnJvbSAnLi9pY29ucy9ib29rLXVwLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb29rVXNlciB9IGZyb20gJy4vaWNvbnMvYm9vay11c2VyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9va1ggfSBmcm9tICcuL2ljb25zL2Jvb2steC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2sgfSBmcm9tICcuL2ljb25zL2Jvb2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb29rbWFya0NoZWNrIH0gZnJvbSAnLi9pY29ucy9ib29rbWFyay1jaGVjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvb2ttYXJrTWludXMgfSBmcm9tICcuL2ljb25zL2Jvb2ttYXJrLW1pbnVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9va21hcmtQbHVzIH0gZnJvbSAnLi9pY29ucy9ib29rbWFyay1wbHVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9va21hcmtYIH0gZnJvbSAnLi9pY29ucy9ib29rbWFyay14LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9va21hcmsgfSBmcm9tICcuL2ljb25zL2Jvb2ttYXJrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9vbUJveCB9IGZyb20gJy4vaWNvbnMvYm9vbS1ib3guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb3RNZXNzYWdlU3F1YXJlIH0gZnJvbSAnLi9pY29ucy9ib3QtbWVzc2FnZS1zcXVhcmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb3RPZmYgfSBmcm9tICcuL2ljb25zL2JvdC1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb3QgfSBmcm9tICcuL2ljb25zL2JvdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvdHRsZVdpbmUgfSBmcm9tICcuL2ljb25zL2JvdHRsZS13aW5lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm93QXJyb3cgfSBmcm9tICcuL2ljb25zL2Jvdy1hcnJvdy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJveCB9IGZyb20gJy4vaWNvbnMvYm94LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm94ZXMgfSBmcm9tICcuL2ljb25zL2JveGVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJhY2VzLCBkZWZhdWx0IGFzIEN1cmx5QnJhY2VzIH0gZnJvbSAnLi9pY29ucy9icmFjZXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCcmFja2V0cyB9IGZyb20gJy4vaWNvbnMvYnJhY2tldHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCcmFpbkNpcmN1aXQgfSBmcm9tICcuL2ljb25zL2JyYWluLWNpcmN1aXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCcmFpbkNvZyB9IGZyb20gJy4vaWNvbnMvYnJhaW4tY29nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJhaW4gfSBmcm9tICcuL2ljb25zL2JyYWluLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJpY2tXYWxsRmlyZSB9IGZyb20gJy4vaWNvbnMvYnJpY2std2FsbC1maXJlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJpY2tXYWxsU2hpZWxkIH0gZnJvbSAnLi9pY29ucy9icmljay13YWxsLXNoaWVsZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJyaWNrV2FsbCB9IGZyb20gJy4vaWNvbnMvYnJpY2std2FsbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJyaWVmY2FzZUJ1c2luZXNzIH0gZnJvbSAnLi9pY29ucy9icmllZmNhc2UtYnVzaW5lc3MuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCcmllZmNhc2VDb252ZXlvckJlbHQgfSBmcm9tICcuL2ljb25zL2JyaWVmY2FzZS1jb252ZXlvci1iZWx0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJpZWZjYXNlTWVkaWNhbCB9IGZyb20gJy4vaWNvbnMvYnJpZWZjYXNlLW1lZGljYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCcmllZmNhc2UgfSBmcm9tICcuL2ljb25zL2JyaWVmY2FzZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJyaW5nVG9Gcm9udCB9IGZyb20gJy4vaWNvbnMvYnJpbmctdG8tZnJvbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCcnVzaENsZWFuaW5nIH0gZnJvbSAnLi9pY29ucy9icnVzaC1jbGVhbmluZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJydXNoIH0gZnJvbSAnLi9pY29ucy9icnVzaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJ1YmJsZXMgfSBmcm9tICcuL2ljb25zL2J1YmJsZXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCdWdPZmYgfSBmcm9tICcuL2ljb25zL2J1Zy1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCdWdQbGF5IH0gZnJvbSAnLi9pY29ucy9idWctcGxheS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJ1ZyB9IGZyb20gJy4vaWNvbnMvYnVnLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnVpbGRpbmcyIH0gZnJvbSAnLi9pY29ucy9idWlsZGluZy0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnVpbGRpbmcgfSBmcm9tICcuL2ljb25zL2J1aWxkaW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnVzRnJvbnQgfSBmcm9tICcuL2ljb25zL2J1cy1mcm9udC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJ1cyB9IGZyb20gJy4vaWNvbnMvYnVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FibGVDYXIgfSBmcm9tICcuL2ljb25zL2NhYmxlLWNhci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhYmxlIH0gZnJvbSAnLi9pY29ucy9jYWJsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENha2VTbGljZSB9IGZyb20gJy4vaWNvbnMvY2FrZS1zbGljZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENha2UgfSBmcm9tICcuL2ljb25zL2Nha2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxjdWxhdG9yIH0gZnJvbSAnLi9pY29ucy9jYWxjdWxhdG9yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FsZW5kYXIxIH0gZnJvbSAnLi9pY29ucy9jYWxlbmRhci0xLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FsZW5kYXJBcnJvd0Rvd24gfSBmcm9tICcuL2ljb25zL2NhbGVuZGFyLWFycm93LWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhckFycm93VXAgfSBmcm9tICcuL2ljb25zL2NhbGVuZGFyLWFycm93LXVwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FsZW5kYXJDaGVjazIgfSBmcm9tICcuL2ljb25zL2NhbGVuZGFyLWNoZWNrLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhckNoZWNrIH0gZnJvbSAnLi9pY29ucy9jYWxlbmRhci1jaGVjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbGVuZGFyQ29nIH0gZnJvbSAnLi9pY29ucy9jYWxlbmRhci1jb2cuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhckNsb2NrIH0gZnJvbSAnLi9pY29ucy9jYWxlbmRhci1jbG9jay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbGVuZGFyRGF5cyB9IGZyb20gJy4vaWNvbnMvY2FsZW5kYXItZGF5cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbGVuZGFyRm9sZCB9IGZyb20gJy4vaWNvbnMvY2FsZW5kYXItZm9sZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbGVuZGFySGVhcnQgfSBmcm9tICcuL2ljb25zL2NhbGVuZGFyLWhlYXJ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FsZW5kYXJNaW51czIgfSBmcm9tICcuL2ljb25zL2NhbGVuZGFyLW1pbnVzLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhck1pbnVzIH0gZnJvbSAnLi9pY29ucy9jYWxlbmRhci1taW51cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbGVuZGFyT2ZmIH0gZnJvbSAnLi9pY29ucy9jYWxlbmRhci1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhclBsdXMyIH0gZnJvbSAnLi9pY29ucy9jYWxlbmRhci1wbHVzLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhclBsdXMgfSBmcm9tICcuL2ljb25zL2NhbGVuZGFyLXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhclJhbmdlIH0gZnJvbSAnLi9pY29ucy9jYWxlbmRhci1yYW5nZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbGVuZGFyU2VhcmNoIH0gZnJvbSAnLi9pY29ucy9jYWxlbmRhci1zZWFyY2guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhclN5bmMgfSBmcm9tICcuL2ljb25zL2NhbGVuZGFyLXN5bmMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhclgyIH0gZnJvbSAnLi9pY29ucy9jYWxlbmRhci14LTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhclggfSBmcm9tICcuL2ljb25zL2NhbGVuZGFyLXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhciB9IGZyb20gJy4vaWNvbnMvY2FsZW5kYXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhcnMgfSBmcm9tICcuL2ljb25zL2NhbGVuZGFycy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbWVyYU9mZiB9IGZyb20gJy4vaWNvbnMvY2FtZXJhLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbWVyYSB9IGZyb20gJy4vaWNvbnMvY2FtZXJhLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FuZHlDYW5lIH0gZnJvbSAnLi9pY29ucy9jYW5keS1jYW5lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FuZHlPZmYgfSBmcm9tICcuL2ljb25zL2NhbmR5LW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbmR5IH0gZnJvbSAnLi9pY29ucy9jYW5keS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbm5hYmlzT2ZmIH0gZnJvbSAnLi9pY29ucy9jYW5uYWJpcy1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYW5uYWJpcyB9IGZyb20gJy4vaWNvbnMvY2FubmFiaXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYXB0aW9uc09mZiB9IGZyb20gJy4vaWNvbnMvY2FwdGlvbnMtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FwdGlvbnMsIGRlZmF1bHQgYXMgU3VidGl0bGVzIH0gZnJvbSAnLi9pY29ucy9jYXB0aW9ucy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhckZyb250IH0gZnJvbSAnLi9pY29ucy9jYXItZnJvbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYXJUYXhpRnJvbnQgfSBmcm9tICcuL2ljb25zL2Nhci10YXhpLWZyb250LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FyIH0gZnJvbSAnLi9pY29ucy9jYXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYXJhdmFuIH0gZnJvbSAnLi9pY29ucy9jYXJhdmFuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FyZFNpbSB9IGZyb20gJy4vaWNvbnMvY2FyZC1zaW0uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYXJyb3QgfSBmcm9tICcuL2ljb25zL2NhcnJvdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhc2VMb3dlciB9IGZyb20gJy4vaWNvbnMvY2FzZS1sb3dlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhc2VTZW5zaXRpdmUgfSBmcm9tICcuL2ljb25zL2Nhc2Utc2Vuc2l0aXZlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FzZVVwcGVyIH0gZnJvbSAnLi9pY29ucy9jYXNlLXVwcGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2Fzc2V0dGVUYXBlIH0gZnJvbSAnLi9pY29ucy9jYXNzZXR0ZS10YXBlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FzdCB9IGZyb20gJy4vaWNvbnMvY2FzdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENhc3RsZSB9IGZyb20gJy4vaWNvbnMvY2FzdGxlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2F0IH0gZnJvbSAnLi9pY29ucy9jYXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDY3R2IH0gZnJvbSAnLi9pY29ucy9jY3R2LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJlYUNoYXJ0LCBkZWZhdWx0IGFzIENoYXJ0QXJlYSB9IGZyb20gJy4vaWNvbnMvY2hhcnQtYXJlYS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhckNoYXJ0SG9yaXpvbnRhbEJpZywgZGVmYXVsdCBhcyBDaGFydEJhckJpZyB9IGZyb20gJy4vaWNvbnMvY2hhcnQtYmFyLWJpZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoYXJ0QmFyRGVjcmVhc2luZyB9IGZyb20gJy4vaWNvbnMvY2hhcnQtYmFyLWRlY3JlYXNpbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGFydEJhckluY3JlYXNpbmcgfSBmcm9tICcuL2ljb25zL2NoYXJ0LWJhci1pbmNyZWFzaW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hhcnRCYXJTdGFja2VkIH0gZnJvbSAnLi9pY29ucy9jaGFydC1iYXItc3RhY2tlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhckNoYXJ0SG9yaXpvbnRhbCwgZGVmYXVsdCBhcyBDaGFydEJhciB9IGZyb20gJy4vaWNvbnMvY2hhcnQtYmFyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FuZGxlc3RpY2tDaGFydCwgZGVmYXVsdCBhcyBDaGFydENhbmRsZXN0aWNrIH0gZnJvbSAnLi9pY29ucy9jaGFydC1jYW5kbGVzdGljay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhckNoYXJ0QmlnLCBkZWZhdWx0IGFzIENoYXJ0Q29sdW1uQmlnIH0gZnJvbSAnLi9pY29ucy9jaGFydC1jb2x1bW4tYmlnLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hhcnRDb2x1bW5EZWNyZWFzaW5nIH0gZnJvbSAnLi9pY29ucy9jaGFydC1jb2x1bW4tZGVjcmVhc2luZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhckNoYXJ0NCwgZGVmYXVsdCBhcyBDaGFydENvbHVtbkluY3JlYXNpbmcgfSBmcm9tICcuL2ljb25zL2NoYXJ0LWNvbHVtbi1pbmNyZWFzaW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hhcnRDb2x1bW5TdGFja2VkIH0gZnJvbSAnLi9pY29ucy9jaGFydC1jb2x1bW4tc3RhY2tlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhckNoYXJ0MywgZGVmYXVsdCBhcyBDaGFydENvbHVtbiB9IGZyb20gJy4vaWNvbnMvY2hhcnQtY29sdW1uLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hhcnRHYW50dCB9IGZyb20gJy4vaWNvbnMvY2hhcnQtZ2FudHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGFydExpbmUsIGRlZmF1bHQgYXMgTGluZUNoYXJ0IH0gZnJvbSAnLi9pY29ucy9jaGFydC1saW5lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hhcnROZXR3b3JrIH0gZnJvbSAnLi9pY29ucy9jaGFydC1uZXR3b3JrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nIH0gZnJvbSAnLi9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1kZWNyZWFzaW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFyQ2hhcnQsIGRlZmF1bHQgYXMgQ2hhcnROb0F4ZXNDb2x1bW5JbmNyZWFzaW5nIH0gZnJvbSAnLi9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi1pbmNyZWFzaW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFyQ2hhcnQyLCBkZWZhdWx0IGFzIENoYXJ0Tm9BeGVzQ29sdW1uIH0gZnJvbSAnLi9pY29ucy9jaGFydC1uby1heGVzLWNvbHVtbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoYXJ0Tm9BeGVzQ29tYmluZWQgfSBmcm9tICcuL2ljb25zL2NoYXJ0LW5vLWF4ZXMtY29tYmluZWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGFydE5vQXhlc0dhbnR0LCBkZWZhdWx0IGFzIEdhbnR0Q2hhcnQgfSBmcm9tICcuL2ljb25zL2NoYXJ0LW5vLWF4ZXMtZ2FudHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGFydFBpZSwgZGVmYXVsdCBhcyBQaWVDaGFydCB9IGZyb20gJy4vaWNvbnMvY2hhcnQtcGllLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hhcnRTY2F0dGVyLCBkZWZhdWx0IGFzIFNjYXR0ZXJDaGFydCB9IGZyb20gJy4vaWNvbnMvY2hhcnQtc2NhdHRlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoYXJ0U3BsaW5lIH0gZnJvbSAnLi9pY29ucy9jaGFydC1zcGxpbmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja0NoZWNrIH0gZnJvbSAnLi9pY29ucy9jaGVjay1jaGVjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrTGluZSB9IGZyb20gJy4vaWNvbnMvY2hlY2stbGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrIH0gZnJvbSAnLi9pY29ucy9jaGVjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZWZIYXQgfSBmcm9tICcuL2ljb25zL2NoZWYtaGF0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hlcnJ5IH0gZnJvbSAnLi9pY29ucy9jaGVycnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVzc0Jpc2hvcCB9IGZyb20gJy4vaWNvbnMvY2hlc3MtYmlzaG9wLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hlc3NLaW5nIH0gZnJvbSAnLi9pY29ucy9jaGVzcy1raW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hlc3NLbmlnaHQgfSBmcm9tICcuL2ljb25zL2NoZXNzLWtuaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZXNzUGF3biB9IGZyb20gJy4vaWNvbnMvY2hlc3MtcGF3bi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZXNzUXVlZW4gfSBmcm9tICcuL2ljb25zL2NoZXNzLXF1ZWVuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hldnJvbkRvd24gfSBmcm9tICcuL2ljb25zL2NoZXZyb24tZG93bi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZXZyb25GaXJzdCB9IGZyb20gJy4vaWNvbnMvY2hldnJvbi1maXJzdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZXNzUm9vayB9IGZyb20gJy4vaWNvbnMvY2hlc3Mtcm9vay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZXZyb25MYXN0IH0gZnJvbSAnLi9pY29ucy9jaGV2cm9uLWxhc3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGV2cm9uTGVmdCB9IGZyb20gJy4vaWNvbnMvY2hldnJvbi1sZWZ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hldnJvblJpZ2h0IH0gZnJvbSAnLi9pY29ucy9jaGV2cm9uLXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hldnJvblVwIH0gZnJvbSAnLi9pY29ucy9jaGV2cm9uLXVwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hldnJvbnNEb3duVXAgfSBmcm9tICcuL2ljb25zL2NoZXZyb25zLWRvd24tdXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGV2cm9uc0Rvd24gfSBmcm9tICcuL2ljb25zL2NoZXZyb25zLWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGV2cm9uc0xlZnRSaWdodEVsbGlwc2lzIH0gZnJvbSAnLi9pY29ucy9jaGV2cm9ucy1sZWZ0LXJpZ2h0LWVsbGlwc2lzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hldnJvbnNMZWZ0UmlnaHQgfSBmcm9tICcuL2ljb25zL2NoZXZyb25zLWxlZnQtcmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGV2cm9uc0xlZnQgfSBmcm9tICcuL2ljb25zL2NoZXZyb25zLWxlZnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGV2cm9uc1JpZ2h0TGVmdCB9IGZyb20gJy4vaWNvbnMvY2hldnJvbnMtcmlnaHQtbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZXZyb25zUmlnaHQgfSBmcm9tICcuL2ljb25zL2NoZXZyb25zLXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hldnJvbnNVcERvd24gfSBmcm9tICcuL2ljb25zL2NoZXZyb25zLXVwLWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGV2cm9uc1VwIH0gZnJvbSAnLi9pY29ucy9jaGV2cm9ucy11cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENodXJjaCB9IGZyb20gJy4vaWNvbnMvY2h1cmNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2lnYXJldHRlT2ZmIH0gZnJvbSAnLi9pY29ucy9jaWdhcmV0dGUtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hyb21lLCBkZWZhdWx0IGFzIENocm9taXVtIH0gZnJvbSAnLi9pY29ucy9jaHJvbWl1bS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpZ2FyZXR0ZSB9IGZyb20gJy4vaWNvbnMvY2lnYXJldHRlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxlcnRDaXJjbGUsIGRlZmF1bHQgYXMgQ2lyY2xlQWxlcnQgfSBmcm9tICcuL2ljb25zL2NpcmNsZS1hbGVydC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93RG93bkNpcmNsZSwgZGVmYXVsdCBhcyBDaXJjbGVBcnJvd0Rvd24gfSBmcm9tICcuL2ljb25zL2NpcmNsZS1hcnJvdy1kb3duLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dMZWZ0Q2lyY2xlLCBkZWZhdWx0IGFzIENpcmNsZUFycm93TGVmdCB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLWFycm93LWxlZnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd0Rvd25MZWZ0RnJvbUNpcmNsZSwgZGVmYXVsdCBhcyBDaXJjbGVBcnJvd091dERvd25MZWZ0IH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LWRvd24tbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93RG93blJpZ2h0RnJvbUNpcmNsZSwgZGVmYXVsdCBhcyBDaXJjbGVBcnJvd091dERvd25SaWdodCB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLWFycm93LW91dC1kb3duLXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dVcExlZnRGcm9tQ2lyY2xlLCBkZWZhdWx0IGFzIENpcmNsZUFycm93T3V0VXBMZWZ0IH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtYXJyb3ctb3V0LXVwLWxlZnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd1VwUmlnaHRGcm9tQ2lyY2xlLCBkZWZhdWx0IGFzIENpcmNsZUFycm93T3V0VXBSaWdodCB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLWFycm93LW91dC11cC1yaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93UmlnaHRDaXJjbGUsIGRlZmF1bHQgYXMgQ2lyY2xlQXJyb3dSaWdodCB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLWFycm93LXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dVcENpcmNsZSwgZGVmYXVsdCBhcyBDaXJjbGVBcnJvd1VwIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtYXJyb3ctdXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja0NpcmNsZTIsIGRlZmF1bHQgYXMgQ2lyY2xlQ2hlY2sgfSBmcm9tICcuL2ljb25zL2NpcmNsZS1jaGVjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrQ2lyY2xlLCBkZWZhdWx0IGFzIENpcmNsZUNoZWNrQmlnIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtY2hlY2stYmlnLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hldnJvbkRvd25DaXJjbGUsIGRlZmF1bHQgYXMgQ2lyY2xlQ2hldnJvbkRvd24gfSBmcm9tICcuL2ljb25zL2NpcmNsZS1jaGV2cm9uLWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGV2cm9uTGVmdENpcmNsZSwgZGVmYXVsdCBhcyBDaXJjbGVDaGV2cm9uTGVmdCB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLWNoZXZyb24tbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZXZyb25SaWdodENpcmNsZSwgZGVmYXVsdCBhcyBDaXJjbGVDaGV2cm9uUmlnaHQgfSBmcm9tICcuL2ljb25zL2NpcmNsZS1jaGV2cm9uLXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hldnJvblVwQ2lyY2xlLCBkZWZhdWx0IGFzIENpcmNsZUNoZXZyb25VcCB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLWNoZXZyb24tdXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaXJjbGVEYXNoZWQgfSBmcm9tICcuL2ljb25zL2NpcmNsZS1kYXNoZWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaXJjbGVEaXZpZGUsIGRlZmF1bHQgYXMgRGl2aWRlQ2lyY2xlIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtZGl2aWRlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2lyY2xlRG9sbGFyU2lnbiB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLWRvbGxhci1zaWduLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2lyY2xlRG90RGFzaGVkIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtZG90LWRhc2hlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpcmNsZURvdCB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLWRvdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpcmNsZUVsbGlwc2lzIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtZWxsaXBzaXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaXJjbGVFcXVhbCB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLWVxdWFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2lyY2xlRmFkaW5nQXJyb3dVcCB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLWZhZGluZy1hcnJvdy11cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpcmNsZUZhZGluZ1BsdXMgfSBmcm9tICcuL2ljb25zL2NpcmNsZS1mYWRpbmctcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpcmNsZUdhdWdlLCBkZWZhdWx0IGFzIEdhdWdlQ2lyY2xlIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtZ2F1Z2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaXJjbGVNaW51cywgZGVmYXVsdCBhcyBNaW51c0NpcmNsZSB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLW1pbnVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2lyY2xlT2ZmIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2lyY2xlUGFya2luZ09mZiwgZGVmYXVsdCBhcyBQYXJraW5nQ2lyY2xlT2ZmIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtcGFya2luZy1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaXJjbGVQYXJraW5nLCBkZWZhdWx0IGFzIFBhcmtpbmdDaXJjbGUgfSBmcm9tICcuL2ljb25zL2NpcmNsZS1wYXJraW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2lyY2xlUGF1c2UsIGRlZmF1bHQgYXMgUGF1c2VDaXJjbGUgfSBmcm9tICcuL2ljb25zL2NpcmNsZS1wYXVzZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpcmNsZVBlcmNlbnQsIGRlZmF1bHQgYXMgUGVyY2VudENpcmNsZSB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLXBlcmNlbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaXJjbGVQaWxlIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtcGlsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpcmNsZVBsYXksIGRlZmF1bHQgYXMgUGxheUNpcmNsZSB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLXBsYXkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaXJjbGVQb3VuZFN0ZXJsaW5nIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtcG91bmQtc3RlcmxpbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaXJjbGVQbHVzLCBkZWZhdWx0IGFzIFBsdXNDaXJjbGUgfSBmcm9tICcuL2ljb25zL2NpcmNsZS1wbHVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2lyY2xlUG93ZXIsIGRlZmF1bHQgYXMgUG93ZXJDaXJjbGUgfSBmcm9tICcuL2ljb25zL2NpcmNsZS1wb3dlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpcmNsZUhlbHAsIGRlZmF1bHQgYXMgQ2lyY2xlUXVlc3Rpb25NYXJrLCBkZWZhdWx0IGFzIEhlbHBDaXJjbGUgfSBmcm9tICcuL2ljb25zL2NpcmNsZS1xdWVzdGlvbi1tYXJrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2lyY2xlU2xhc2gyLCBkZWZhdWx0IGFzIENpcmNsZVNsYXNoZWQgfSBmcm9tICcuL2ljb25zL2NpcmNsZS1zbGFzaC0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2lyY2xlU2xhc2ggfSBmcm9tICcuL2ljb25zL2NpcmNsZS1zbGFzaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpcmNsZVNtYWxsIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtc21hbGwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaXJjbGVTdGFyIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtc3Rhci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpcmNsZVN0b3AsIGRlZmF1bHQgYXMgU3RvcENpcmNsZSB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLXN0b3AuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaXJjbGVVc2VyUm91bmQsIGRlZmF1bHQgYXMgVXNlckNpcmNsZTIgfSBmcm9tICcuL2ljb25zL2NpcmNsZS11c2VyLXJvdW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2lyY2xlVXNlciwgZGVmYXVsdCBhcyBVc2VyQ2lyY2xlIH0gZnJvbSAnLi9pY29ucy9jaXJjbGUtdXNlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpcmNsZVgsIGRlZmF1bHQgYXMgWENpcmNsZSB9IGZyb20gJy4vaWNvbnMvY2lyY2xlLXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaXJjbGUgfSBmcm9tICcuL2ljb25zL2NpcmNsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpcmN1aXRCb2FyZCB9IGZyb20gJy4vaWNvbnMvY2lyY3VpdC1ib2FyZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENpdHJ1cyB9IGZyb20gJy4vaWNvbnMvY2l0cnVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xhcHBlcmJvYXJkIH0gZnJvbSAnLi9pY29ucy9jbGFwcGVyYm9hcmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbGlwYm9hcmRDaGVjayB9IGZyb20gJy4vaWNvbnMvY2xpcGJvYXJkLWNoZWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xpcGJvYXJkQ2xvY2sgfSBmcm9tICcuL2ljb25zL2NsaXBib2FyZC1jbG9jay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsaXBib2FyZENvcHkgfSBmcm9tICcuL2ljb25zL2NsaXBib2FyZC1jb3B5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xpcGJvYXJkTGlzdCB9IGZyb20gJy4vaWNvbnMvY2xpcGJvYXJkLWxpc3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbGlwYm9hcmRNaW51cyB9IGZyb20gJy4vaWNvbnMvY2xpcGJvYXJkLW1pbnVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xpcGJvYXJkUGFzdGUgfSBmcm9tICcuL2ljb25zL2NsaXBib2FyZC1wYXN0ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsaXBib2FyZFBlbkxpbmUsIGRlZmF1bHQgYXMgQ2xpcGJvYXJkU2lnbmF0dXJlIH0gZnJvbSAnLi9pY29ucy9jbGlwYm9hcmQtcGVuLWxpbmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbGlwYm9hcmRFZGl0LCBkZWZhdWx0IGFzIENsaXBib2FyZFBlbiB9IGZyb20gJy4vaWNvbnMvY2xpcGJvYXJkLXBlbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsaXBib2FyZFBsdXMgfSBmcm9tICcuL2ljb25zL2NsaXBib2FyZC1wbHVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xpcGJvYXJkVHlwZSB9IGZyb20gJy4vaWNvbnMvY2xpcGJvYXJkLXR5cGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbGlwYm9hcmRYIH0gZnJvbSAnLi9pY29ucy9jbGlwYm9hcmQteC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsaXBib2FyZCB9IGZyb20gJy4vaWNvbnMvY2xpcGJvYXJkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2sxIH0gZnJvbSAnLi9pY29ucy9jbG9jay0xLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2sxMCB9IGZyb20gJy4vaWNvbnMvY2xvY2stMTAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG9jazExIH0gZnJvbSAnLi9pY29ucy9jbG9jay0xMS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb2NrMTIgfSBmcm9tICcuL2ljb25zL2Nsb2NrLTEyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2syIH0gZnJvbSAnLi9pY29ucy9jbG9jay0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2szIH0gZnJvbSAnLi9pY29ucy9jbG9jay0zLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2s0IH0gZnJvbSAnLi9pY29ucy9jbG9jay00LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2s1IH0gZnJvbSAnLi9pY29ucy9jbG9jay01LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2s2IH0gZnJvbSAnLi9pY29ucy9jbG9jay02LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2s3IH0gZnJvbSAnLi9pY29ucy9jbG9jay03LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2s4IH0gZnJvbSAnLi9pY29ucy9jbG9jay04LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2s5IH0gZnJvbSAnLi9pY29ucy9jbG9jay05LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvY2tBbGVydCB9IGZyb20gJy4vaWNvbnMvY2xvY2stYWxlcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG9ja0Fycm93RG93biB9IGZyb20gJy4vaWNvbnMvY2xvY2stYXJyb3ctZG93bi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb2NrQXJyb3dVcCB9IGZyb20gJy4vaWNvbnMvY2xvY2stYXJyb3ctdXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG9ja0NoZWNrIH0gZnJvbSAnLi9pY29ucy9jbG9jay1jaGVjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb2NrRmFkaW5nIH0gZnJvbSAnLi9pY29ucy9jbG9jay1mYWRpbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG9ja1BsdXMgfSBmcm9tICcuL2ljb25zL2Nsb2NrLXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG9jayB9IGZyb20gJy4vaWNvbnMvY2xvY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG9zZWRDYXB0aW9uIH0gZnJvbSAnLi9pY29ucy9jbG9zZWQtY2FwdGlvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb3VkQWxlcnQgfSBmcm9tICcuL2ljb25zL2Nsb3VkLWFsZXJ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvdWRCYWNrdXAgfSBmcm9tICcuL2ljb25zL2Nsb3VkLWJhY2t1cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb3VkQ2hlY2sgfSBmcm9tICcuL2ljb25zL2Nsb3VkLWNoZWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvdWRDb2cgfSBmcm9tICcuL2ljb25zL2Nsb3VkLWNvZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb3VkRG93bmxvYWQsIGRlZmF1bHQgYXMgRG93bmxvYWRDbG91ZCB9IGZyb20gJy4vaWNvbnMvY2xvdWQtZG93bmxvYWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG91ZERyaXp6bGUgfSBmcm9tICcuL2ljb25zL2Nsb3VkLWRyaXp6bGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG91ZEZvZyB9IGZyb20gJy4vaWNvbnMvY2xvdWQtZm9nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvdWRIYWlsIH0gZnJvbSAnLi9pY29ucy9jbG91ZC1oYWlsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvdWRMaWdodG5pbmcgfSBmcm9tICcuL2ljb25zL2Nsb3VkLWxpZ2h0bmluZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb3VkTW9vblJhaW4gfSBmcm9tICcuL2ljb25zL2Nsb3VkLW1vb24tcmFpbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb3VkTW9vbiB9IGZyb20gJy4vaWNvbnMvY2xvdWQtbW9vbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb3VkUmFpbldpbmQgfSBmcm9tICcuL2ljb25zL2Nsb3VkLXJhaW4td2luZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb3VkT2ZmIH0gZnJvbSAnLi9pY29ucy9jbG91ZC1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG91ZFJhaW4gfSBmcm9tICcuL2ljb25zL2Nsb3VkLXJhaW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG91ZFNub3cgfSBmcm9tICcuL2ljb25zL2Nsb3VkLXNub3cuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG91ZFN1blJhaW4gfSBmcm9tICcuL2ljb25zL2Nsb3VkLXN1bi1yYWluLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2xvdWRTdW4gfSBmcm9tICcuL2ljb25zL2Nsb3VkLXN1bi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb3VkU3luYyB9IGZyb20gJy4vaWNvbnMvY2xvdWQtc3luYy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb3VkVXBsb2FkLCBkZWZhdWx0IGFzIFVwbG9hZENsb3VkIH0gZnJvbSAnLi9pY29ucy9jbG91ZC11cGxvYWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG91ZCB9IGZyb20gJy4vaWNvbnMvY2xvdWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDbG91ZHkgfSBmcm9tICcuL2ljb25zL2Nsb3VkeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENsb3ZlciB9IGZyb20gJy4vaWNvbnMvY2xvdmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2x1YiB9IGZyb20gJy4vaWNvbnMvY2x1Yi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvZGUyLCBkZWZhdWx0IGFzIENvZGVYbWwgfSBmcm9tICcuL2ljb25zL2NvZGUteG1sLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29kZSB9IGZyb20gJy4vaWNvbnMvY29kZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvZGVwZW4gfSBmcm9tICcuL2ljb25zL2NvZGVwZW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2Rlc2FuZGJveCB9IGZyb20gJy4vaWNvbnMvY29kZXNhbmRib3guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2ZmZWUgfSBmcm9tICcuL2ljb25zL2NvZmZlZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvaW5zIH0gZnJvbSAnLi9pY29ucy9jb2lucy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvZyB9IGZyb20gJy4vaWNvbnMvY29nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sdW1ucywgZGVmYXVsdCBhcyBDb2x1bW5zMiB9IGZyb20gJy4vaWNvbnMvY29sdW1ucy0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sdW1uczNDb2csIGRlZmF1bHQgYXMgQ29sdW1uc1NldHRpbmdzLCBkZWZhdWx0IGFzIFRhYmxlQ29uZmlnIH0gZnJvbSAnLi9pY29ucy9jb2x1bW5zLTMtY29nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sdW1uczMsIGRlZmF1bHQgYXMgUGFuZWxzTGVmdFJpZ2h0IH0gZnJvbSAnLi9pY29ucy9jb2x1bW5zLTMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2x1bW5zNCB9IGZyb20gJy4vaWNvbnMvY29sdW1ucy00LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29tYmluZSB9IGZyb20gJy4vaWNvbnMvY29tYmluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbW1hbmQgfSBmcm9tICcuL2ljb25zL2NvbW1hbmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb21wYXNzIH0gZnJvbSAnLi9pY29ucy9jb21wYXNzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29tcG9uZW50IH0gZnJvbSAnLi9pY29ucy9jb21wb25lbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb21wdXRlciB9IGZyb20gJy4vaWNvbnMvY29tcHV0ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb25jaWVyZ2VCZWxsIH0gZnJvbSAnLi9pY29ucy9jb25jaWVyZ2UtYmVsbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbmUgfSBmcm9tICcuL2ljb25zL2NvbmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb25zdHJ1Y3Rpb24gfSBmcm9tICcuL2ljb25zL2NvbnN0cnVjdGlvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRhY3QyLCBkZWZhdWx0IGFzIENvbnRhY3RSb3VuZCB9IGZyb20gJy4vaWNvbnMvY29udGFjdC1yb3VuZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRhY3QgfSBmcm9tICcuL2ljb25zL2NvbnRhY3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb250YWluZXIgfSBmcm9tICcuL2ljb25zL2NvbnRhaW5lci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRyYXN0IH0gZnJvbSAnLi9pY29ucy9jb250cmFzdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvb2tpZSB9IGZyb20gJy4vaWNvbnMvY29va2llLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29va2luZ1BvdCB9IGZyb20gJy4vaWNvbnMvY29va2luZy1wb3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb3B5Q2hlY2sgfSBmcm9tICcuL2ljb25zL2NvcHktY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb3B5TWludXMgfSBmcm9tICcuL2ljb25zL2NvcHktbWludXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb3B5UGx1cyB9IGZyb20gJy4vaWNvbnMvY29weS1wbHVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29weVNsYXNoIH0gZnJvbSAnLi9pY29ucy9jb3B5LXNsYXNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29weSB9IGZyb20gJy4vaWNvbnMvY29weS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvcHlYIH0gZnJvbSAnLi9pY29ucy9jb3B5LXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb3B5bGVmdCB9IGZyb20gJy4vaWNvbnMvY29weWxlZnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb3B5cmlnaHQgfSBmcm9tICcuL2ljb25zL2NvcHlyaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvcm5lckRvd25SaWdodCB9IGZyb20gJy4vaWNvbnMvY29ybmVyLWRvd24tcmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb3JuZXJEb3duTGVmdCB9IGZyb20gJy4vaWNvbnMvY29ybmVyLWRvd24tbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvcm5lckxlZnREb3duIH0gZnJvbSAnLi9pY29ucy9jb3JuZXItbGVmdC1kb3duLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29ybmVyTGVmdFVwIH0gZnJvbSAnLi9pY29ucy9jb3JuZXItbGVmdC11cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvcm5lclJpZ2h0RG93biB9IGZyb20gJy4vaWNvbnMvY29ybmVyLXJpZ2h0LWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb3JuZXJSaWdodFVwIH0gZnJvbSAnLi9pY29ucy9jb3JuZXItcmlnaHQtdXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb3JuZXJVcExlZnQgfSBmcm9tICcuL2ljb25zL2Nvcm5lci11cC1sZWZ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29ybmVyVXBSaWdodCB9IGZyb20gJy4vaWNvbnMvY29ybmVyLXVwLXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ3B1IH0gZnJvbSAnLi9pY29ucy9jcHUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDcmVhdGl2ZUNvbW1vbnMgfSBmcm9tICcuL2ljb25zL2NyZWF0aXZlLWNvbW1vbnMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDcmVkaXRDYXJkIH0gZnJvbSAnLi9pY29ucy9jcmVkaXQtY2FyZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENyb2lzc2FudCB9IGZyb20gJy4vaWNvbnMvY3JvaXNzYW50LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ3JvcCB9IGZyb20gJy4vaWNvbnMvY3JvcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENyb3NzIH0gZnJvbSAnLi9pY29ucy9jcm9zcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENyb3NzaGFpciB9IGZyb20gJy4vaWNvbnMvY3Jvc3NoYWlyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ3Jvd24gfSBmcm9tICcuL2ljb25zL2Nyb3duLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ3Vib2lkIH0gZnJvbSAnLi9pY29ucy9jdWJvaWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDdXBTb2RhIH0gZnJvbSAnLi9pY29ucy9jdXAtc29kYS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEN1cnJlbmN5IH0gZnJvbSAnLi9pY29ucy9jdXJyZW5jeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEN5bGluZGVyIH0gZnJvbSAnLi9pY29ucy9jeWxpbmRlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERhbSB9IGZyb20gJy4vaWNvbnMvZGFtLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGF0YWJhc2VCYWNrdXAgfSBmcm9tICcuL2ljb25zL2RhdGFiYXNlLWJhY2t1cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERhdGFiYXNlWmFwIH0gZnJvbSAnLi9pY29ucy9kYXRhYmFzZS16YXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEYXRhYmFzZSB9IGZyb20gJy4vaWNvbnMvZGF0YWJhc2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEZWNpbWFsc0Fycm93TGVmdCB9IGZyb20gJy4vaWNvbnMvZGVjaW1hbHMtYXJyb3ctbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERlY2ltYWxzQXJyb3dSaWdodCB9IGZyb20gJy4vaWNvbnMvZGVjaW1hbHMtYXJyb3ctcmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEZWxldGUgfSBmcm9tICcuL2ljb25zL2RlbGV0ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERlc3NlcnQgfSBmcm9tICcuL2ljb25zL2Rlc3NlcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaWFtZXRlciB9IGZyb20gJy4vaWNvbnMvZGlhbWV0ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaWFtb25kTWludXMgfSBmcm9tICcuL2ljb25zL2RpYW1vbmQtbWludXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaWFtb25kUGVyY2VudCwgZGVmYXVsdCBhcyBQZXJjZW50RGlhbW9uZCB9IGZyb20gJy4vaWNvbnMvZGlhbW9uZC1wZXJjZW50LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGlhbW9uZFBsdXMgfSBmcm9tICcuL2ljb25zL2RpYW1vbmQtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERpY2UxIH0gZnJvbSAnLi9pY29ucy9kaWNlLTEuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaWFtb25kIH0gZnJvbSAnLi9pY29ucy9kaWFtb25kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGljZTIgfSBmcm9tICcuL2ljb25zL2RpY2UtMi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERpY2UzIH0gZnJvbSAnLi9pY29ucy9kaWNlLTMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaWNlNSB9IGZyb20gJy4vaWNvbnMvZGljZS01LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGljZTYgfSBmcm9tICcuL2ljb25zL2RpY2UtNi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERpY2U0IH0gZnJvbSAnLi9pY29ucy9kaWNlLTQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaWNlcyB9IGZyb20gJy4vaWNvbnMvZGljZXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaWZmIH0gZnJvbSAnLi9pY29ucy9kaWZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGlzYzIgfSBmcm9tICcuL2ljb25zL2Rpc2MtMi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERpc2MzIH0gZnJvbSAnLi9pY29ucy9kaXNjLTMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaXNjQWxidW0gfSBmcm9tICcuL2ljb25zL2Rpc2MtYWxidW0uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaXNjIH0gZnJvbSAnLi9pY29ucy9kaXNjLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGl2aWRlIH0gZnJvbSAnLi9pY29ucy9kaXZpZGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEbmFPZmYgfSBmcm9tICcuL2ljb25zL2RuYS1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEb2NrIH0gZnJvbSAnLi9pY29ucy9kb2NrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRG5hIH0gZnJvbSAnLi9pY29ucy9kbmEuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEb2cgfSBmcm9tICcuL2ljb25zL2RvZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERvbGxhclNpZ24gfSBmcm9tICcuL2ljb25zL2RvbGxhci1zaWduLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRG9udXQgfSBmcm9tICcuL2ljb25zL2RvbnV0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRG9vckNsb3NlZExvY2tlZCB9IGZyb20gJy4vaWNvbnMvZG9vci1jbG9zZWQtbG9ja2VkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRG9vckNsb3NlZCB9IGZyb20gJy4vaWNvbnMvZG9vci1jbG9zZWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEb3QgfSBmcm9tICcuL2ljb25zL2RvdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERvb3JPcGVuIH0gZnJvbSAnLi9pY29ucy9kb29yLW9wZW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEb3dubG9hZCB9IGZyb20gJy4vaWNvbnMvZG93bmxvYWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcmFmdGluZ0NvbXBhc3MgfSBmcm9tICcuL2ljb25zL2RyYWZ0aW5nLWNvbXBhc3MuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcmFtYSB9IGZyb20gJy4vaWNvbnMvZHJhbWEuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcmliYmJsZSB9IGZyb20gJy4vaWNvbnMvZHJpYmJibGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcmlsbCB9IGZyb20gJy4vaWNvbnMvZHJpbGwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcm9uZSB9IGZyb20gJy4vaWNvbnMvZHJvbmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcm9wbGV0T2ZmIH0gZnJvbSAnLi9pY29ucy9kcm9wbGV0LW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERyb3BsZXQgfSBmcm9tICcuL2ljb25zL2Ryb3BsZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcm9wbGV0cyB9IGZyb20gJy4vaWNvbnMvZHJvcGxldHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcnVtIH0gZnJvbSAnLi9pY29ucy9kcnVtLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRHJ1bXN0aWNrIH0gZnJvbSAnLi9pY29ucy9kcnVtc3RpY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEdW1iYmVsbCB9IGZyb20gJy4vaWNvbnMvZHVtYmJlbGwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFYXJPZmYgfSBmcm9tICcuL2ljb25zL2Vhci1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFYXIgfSBmcm9tICcuL2ljb25zL2Vhci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVhcnRoTG9jayB9IGZyb20gJy4vaWNvbnMvZWFydGgtbG9jay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVhcnRoLCBkZWZhdWx0IGFzIEdsb2JlMiB9IGZyb20gJy4vaWNvbnMvZWFydGguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFY2xpcHNlIH0gZnJvbSAnLi9pY29ucy9lY2xpcHNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWdnRnJpZWQgfSBmcm9tICcuL2ljb25zL2VnZy1mcmllZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVnZ09mZiB9IGZyb20gJy4vaWNvbnMvZWdnLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVnZyB9IGZyb20gJy4vaWNvbnMvZWdnLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxsaXBzaXNWZXJ0aWNhbCwgZGVmYXVsdCBhcyBNb3JlVmVydGljYWwgfSBmcm9tICcuL2ljb25zL2VsbGlwc2lzLXZlcnRpY2FsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxsaXBzaXMsIGRlZmF1bHQgYXMgTW9yZUhvcml6b250YWwgfSBmcm9tICcuL2ljb25zL2VsbGlwc2lzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXF1YWxBcHByb3hpbWF0ZWx5IH0gZnJvbSAnLi9pY29ucy9lcXVhbC1hcHByb3hpbWF0ZWx5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXF1YWxOb3QgfSBmcm9tICcuL2ljb25zL2VxdWFsLW5vdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVyYXNlciB9IGZyb20gJy4vaWNvbnMvZXJhc2VyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXF1YWwgfSBmcm9tICcuL2ljb25zL2VxdWFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXRoZXJuZXRQb3J0IH0gZnJvbSAnLi9pY29ucy9ldGhlcm5ldC1wb3J0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXVybyB9IGZyb20gJy4vaWNvbnMvZXVyby5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEV2Q2hhcmdlciB9IGZyb20gJy4vaWNvbnMvZXYtY2hhcmdlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEV4dGVybmFsTGluayB9IGZyb20gJy4vaWNvbnMvZXh0ZXJuYWwtbGluay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEV4cGFuZCB9IGZyb20gJy4vaWNvbnMvZXhwYW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXllQ2xvc2VkIH0gZnJvbSAnLi9pY29ucy9leWUtY2xvc2VkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXllT2ZmIH0gZnJvbSAnLi9pY29ucy9leWUtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXllIH0gZnJvbSAnLi9pY29ucy9leWUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGYWN0b3J5IH0gZnJvbSAnLi9pY29ucy9mYWN0b3J5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmFjZWJvb2sgfSBmcm9tICcuL2ljb25zL2ZhY2Vib29rLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmFuIH0gZnJvbSAnLi9pY29ucy9mYW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGYXN0Rm9yd2FyZCB9IGZyb20gJy4vaWNvbnMvZmFzdC1mb3J3YXJkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmVhdGhlciB9IGZyb20gJy4vaWNvbnMvZmVhdGhlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZlbmNlIH0gZnJvbSAnLi9pY29ucy9mZW5jZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZlcnJpc1doZWVsIH0gZnJvbSAnLi9pY29ucy9mZXJyaXMtd2hlZWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWdtYSB9IGZyb20gJy4vaWNvbnMvZmlnbWEuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlQXJjaGl2ZSB9IGZyb20gJy4vaWNvbnMvZmlsZS1hcmNoaXZlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUF4aXMzRCwgZGVmYXVsdCBhcyBGaWxlQXhpczNkIH0gZnJvbSAnLi9pY29ucy9maWxlLWF4aXMtM2QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlQmFkZ2UsIGRlZmF1bHQgYXMgRmlsZUJhZGdlMiB9IGZyb20gJy4vaWNvbnMvZmlsZS1iYWRnZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVCcmFjZXNDb3JuZXIsIGRlZmF1bHQgYXMgRmlsZUpzb24yIH0gZnJvbSAnLi9pY29ucy9maWxlLWJyYWNlcy1jb3JuZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlQm94IH0gZnJvbSAnLi9pY29ucy9maWxlLWJveC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVCcmFjZXMsIGRlZmF1bHQgYXMgRmlsZUpzb24gfSBmcm9tICcuL2ljb25zL2ZpbGUtYnJhY2VzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUJhckNoYXJ0LCBkZWZhdWx0IGFzIEZpbGVDaGFydENvbHVtbkluY3JlYXNpbmcgfSBmcm9tICcuL2ljb25zL2ZpbGUtY2hhcnQtY29sdW1uLWluY3JlYXNpbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlQmFyQ2hhcnQyLCBkZWZhdWx0IGFzIEZpbGVDaGFydENvbHVtbiB9IGZyb20gJy4vaWNvbnMvZmlsZS1jaGFydC1jb2x1bW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlQ2hhcnRMaW5lLCBkZWZhdWx0IGFzIEZpbGVMaW5lQ2hhcnQgfSBmcm9tICcuL2ljb25zL2ZpbGUtY2hhcnQtbGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVDaGFydFBpZSwgZGVmYXVsdCBhcyBGaWxlUGllQ2hhcnQgfSBmcm9tICcuL2ljb25zL2ZpbGUtY2hhcnQtcGllLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNoZWNrMiwgZGVmYXVsdCBhcyBGaWxlQ2hlY2tDb3JuZXIgfSBmcm9tICcuL2ljb25zL2ZpbGUtY2hlY2stY29ybmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNoZWNrIH0gZnJvbSAnLi9pY29ucy9maWxlLWNoZWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNsb2NrIH0gZnJvbSAnLi9pY29ucy9maWxlLWNsb2NrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvZGUyLCBkZWZhdWx0IGFzIEZpbGVDb2RlQ29ybmVyIH0gZnJvbSAnLi9pY29ucy9maWxlLWNvZGUtY29ybmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvZGUgfSBmcm9tICcuL2ljb25zL2ZpbGUtY29kZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVDb2csIGRlZmF1bHQgYXMgRmlsZUNvZzIgfSBmcm9tICcuL2ljb25zL2ZpbGUtY29nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZURpZmYgfSBmcm9tICcuL2ljb25zL2ZpbGUtZGlmZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVEaWdpdCB9IGZyb20gJy4vaWNvbnMvZmlsZS1kaWdpdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVEb3duIH0gZnJvbSAnLi9pY29ucy9maWxlLWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlRXhjbGFtYXRpb25Qb2ludCwgZGVmYXVsdCBhcyBGaWxlV2FybmluZyB9IGZyb20gJy4vaWNvbnMvZmlsZS1leGNsYW1hdGlvbi1wb2ludC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVBdWRpbywgZGVmYXVsdCBhcyBGaWxlQXVkaW8yLCBkZWZhdWx0IGFzIEZpbGVIZWFkcGhvbmUgfSBmcm9tICcuL2ljb25zL2ZpbGUtaGVhZHBob25lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUhlYXJ0IH0gZnJvbSAnLi9pY29ucy9maWxlLWhlYXJ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUltYWdlIH0gZnJvbSAnLi9pY29ucy9maWxlLWltYWdlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUlucHV0IH0gZnJvbSAnLi9pY29ucy9maWxlLWlucHV0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUtleSwgZGVmYXVsdCBhcyBGaWxlS2V5MiB9IGZyb20gJy4vaWNvbnMvZmlsZS1rZXkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlTG9jaywgZGVmYXVsdCBhcyBGaWxlTG9jazIgfSBmcm9tICcuL2ljb25zL2ZpbGUtbG9jay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVNaW51czIsIGRlZmF1bHQgYXMgRmlsZU1pbnVzQ29ybmVyIH0gZnJvbSAnLi9pY29ucy9maWxlLW1pbnVzLWNvcm5lci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVNdXNpYyB9IGZyb20gJy4vaWNvbnMvZmlsZS1tdXNpYy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVNaW51cyB9IGZyb20gJy4vaWNvbnMvZmlsZS1taW51cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVPdXRwdXQgfSBmcm9tICcuL2ljb25zL2ZpbGUtb3V0cHV0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZVBlbkxpbmUsIGRlZmF1bHQgYXMgRmlsZVNpZ25hdHVyZSB9IGZyb20gJy4vaWNvbnMvZmlsZS1wZW4tbGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVFZGl0LCBkZWZhdWx0IGFzIEZpbGVQZW4gfSBmcm9tICcuL2ljb25zL2ZpbGUtcGVuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZVBsYXksIGRlZmF1bHQgYXMgRmlsZVZpZGVvIH0gZnJvbSAnLi9pY29ucy9maWxlLXBsYXkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlUGx1cyB9IGZyb20gJy4vaWNvbnMvZmlsZS1wbHVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZVF1ZXN0aW9uLCBkZWZhdWx0IGFzIEZpbGVRdWVzdGlvbk1hcmsgfSBmcm9tICcuL2ljb25zL2ZpbGUtcXVlc3Rpb24tbWFyay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVQbHVzMiwgZGVmYXVsdCBhcyBGaWxlUGx1c0Nvcm5lciB9IGZyb20gJy4vaWNvbnMvZmlsZS1wbHVzLWNvcm5lci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVTY2FuIH0gZnJvbSAnLi9pY29ucy9maWxlLXNjYW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlU2VhcmNoMiwgZGVmYXVsdCBhcyBGaWxlU2VhcmNoQ29ybmVyIH0gZnJvbSAnLi9pY29ucy9maWxlLXNlYXJjaC1jb3JuZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlU2VhcmNoIH0gZnJvbSAnLi9pY29ucy9maWxlLXNlYXJjaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVTaWduYWwsIGRlZmF1bHQgYXMgRmlsZVZvbHVtZTIgfSBmcm9tICcuL2ljb25zL2ZpbGUtc2lnbmFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZVNwcmVhZHNoZWV0IH0gZnJvbSAnLi9pY29ucy9maWxlLXNwcmVhZHNoZWV0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZVNsaWRlcnMgfSBmcm9tICcuL2ljb25zL2ZpbGUtc2xpZGVycy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVTdGFjayB9IGZyb20gJy4vaWNvbnMvZmlsZS1zdGFjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVTeW1saW5rIH0gZnJvbSAnLi9pY29ucy9maWxlLXN5bWxpbmsuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlVGVybWluYWwgfSBmcm9tICcuL2ljb25zL2ZpbGUtdGVybWluYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlVGV4dCB9IGZyb20gJy4vaWNvbnMvZmlsZS10ZXh0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZVR5cGUyLCBkZWZhdWx0IGFzIEZpbGVUeXBlQ29ybmVyIH0gZnJvbSAnLi9pY29ucy9maWxlLXR5cGUtY29ybmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZVR5cGUgfSBmcm9tICcuL2ljb25zL2ZpbGUtdHlwZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVVcCB9IGZyb20gJy4vaWNvbnMvZmlsZS11cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVVc2VyIH0gZnJvbSAnLi9pY29ucy9maWxlLXVzZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlVm9sdW1lIH0gZnJvbSAnLi9pY29ucy9maWxlLXZvbHVtZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVWaWRlbzIsIGRlZmF1bHQgYXMgRmlsZVZpZGVvQ2FtZXJhIH0gZnJvbSAnLi9pY29ucy9maWxlLXZpZGVvLWNhbWVyYS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVYMiwgZGVmYXVsdCBhcyBGaWxlWENvcm5lciB9IGZyb20gJy4vaWNvbnMvZmlsZS14LWNvcm5lci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVYIH0gZnJvbSAnLi9pY29ucy9maWxlLXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlIH0gZnJvbSAnLi9pY29ucy9maWxlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZXMgfSBmcm9tICcuL2ljb25zL2ZpbGVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsbSB9IGZyb20gJy4vaWNvbnMvZmlsbS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbmdlcnByaW50LCBkZWZhdWx0IGFzIEZpbmdlcnByaW50UGF0dGVybiB9IGZyb20gJy4vaWNvbnMvZmluZ2VycHJpbnQtcGF0dGVybi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpcmVFeHRpbmd1aXNoZXIgfSBmcm9tICcuL2ljb25zL2ZpcmUtZXh0aW5ndWlzaGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlzaE9mZiB9IGZyb20gJy4vaWNvbnMvZmlzaC1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaXNoU3ltYm9sIH0gZnJvbSAnLi9pY29ucy9maXNoLXN5bWJvbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpc2ggfSBmcm9tICcuL2ljb25zL2Zpc2guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaXNoaW5nSG9vayB9IGZyb20gJy4vaWNvbnMvZmlzaGluZy1ob29rLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmxhZ09mZiB9IGZyb20gJy4vaWNvbnMvZmxhZy1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGbGFnVHJpYW5nbGVMZWZ0IH0gZnJvbSAnLi9pY29ucy9mbGFnLXRyaWFuZ2xlLWxlZnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGbGFnVHJpYW5nbGVSaWdodCB9IGZyb20gJy4vaWNvbnMvZmxhZy10cmlhbmdsZS1yaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZsYW1lS2luZGxpbmcgfSBmcm9tICcuL2ljb25zL2ZsYW1lLWtpbmRsaW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmxhZyB9IGZyb20gJy4vaWNvbnMvZmxhZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZsYW1lIH0gZnJvbSAnLi9pY29ucy9mbGFtZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZsYXNobGlnaHRPZmYgfSBmcm9tICcuL2ljb25zL2ZsYXNobGlnaHQtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmxhc2hsaWdodCB9IGZyb20gJy4vaWNvbnMvZmxhc2hsaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZsYXNrQ29uaWNhbE9mZiB9IGZyb20gJy4vaWNvbnMvZmxhc2stY29uaWNhbC1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGbGFza1JvdW5kIH0gZnJvbSAnLi9pY29ucy9mbGFzay1yb3VuZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZsYXNrQ29uaWNhbCB9IGZyb20gJy4vaWNvbnMvZmxhc2stY29uaWNhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZsaXBIb3Jpem9udGFsIH0gZnJvbSAnLi9pY29ucy9mbGlwLWhvcml6b250YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGbGlwSG9yaXpvbnRhbDIgfSBmcm9tICcuL2ljb25zL2ZsaXAtaG9yaXpvbnRhbC0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmxpcFZlcnRpY2FsMiB9IGZyb20gJy4vaWNvbnMvZmxpcC12ZXJ0aWNhbC0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmxpcFZlcnRpY2FsIH0gZnJvbSAnLi9pY29ucy9mbGlwLXZlcnRpY2FsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmxvd2VyMiB9IGZyb20gJy4vaWNvbnMvZmxvd2VyLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGbG93ZXIgfSBmcm9tICcuL2ljb25zL2Zsb3dlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvY3VzIH0gZnJvbSAnLi9pY29ucy9mb2N1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRIb3Jpem9udGFsIH0gZnJvbSAnLi9pY29ucy9mb2xkLWhvcml6b250YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkVmVydGljYWwgfSBmcm9tICcuL2ljb25zL2ZvbGQtdmVydGljYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkZXJBcmNoaXZlIH0gZnJvbSAnLi9pY29ucy9mb2xkZXItYXJjaGl2ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlckNoZWNrIH0gZnJvbSAnLi9pY29ucy9mb2xkZXItY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkZXJDbG9jayB9IGZyb20gJy4vaWNvbnMvZm9sZGVyLWNsb2NrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9sZGVyQ2xvc2VkIH0gZnJvbSAnLi9pY29ucy9mb2xkZXItY2xvc2VkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9sZGVyQ29kZSB9IGZyb20gJy4vaWNvbnMvZm9sZGVyLWNvZGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkZXJDb2csIGRlZmF1bHQgYXMgRm9sZGVyQ29nMiB9IGZyb20gJy4vaWNvbnMvZm9sZGVyLWNvZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlckRvdCB9IGZyb20gJy4vaWNvbnMvZm9sZGVyLWRvdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlckRvd24gfSBmcm9tICcuL2ljb25zL2ZvbGRlci1kb3duLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9sZGVyR2l0MiB9IGZyb20gJy4vaWNvbnMvZm9sZGVyLWdpdC0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9sZGVyR2l0IH0gZnJvbSAnLi9pY29ucy9mb2xkZXItZ2l0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9sZGVySGVhcnQgfSBmcm9tICcuL2ljb25zL2ZvbGRlci1oZWFydC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlcklucHV0IH0gZnJvbSAnLi9pY29ucy9mb2xkZXItaW5wdXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkZXJLYW5iYW4gfSBmcm9tICcuL2ljb25zL2ZvbGRlci1rYW5iYW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkZXJLZXkgfSBmcm9tICcuL2ljb25zL2ZvbGRlci1rZXkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkZXJMb2NrIH0gZnJvbSAnLi9pY29ucy9mb2xkZXItbG9jay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlck1pbnVzIH0gZnJvbSAnLi9pY29ucy9mb2xkZXItbWludXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkZXJPcGVuRG90IH0gZnJvbSAnLi9pY29ucy9mb2xkZXItb3Blbi1kb3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkZXJPcGVuIH0gZnJvbSAnLi9pY29ucy9mb2xkZXItb3Blbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlck91dHB1dCB9IGZyb20gJy4vaWNvbnMvZm9sZGVyLW91dHB1dC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlckVkaXQsIGRlZmF1bHQgYXMgRm9sZGVyUGVuIH0gZnJvbSAnLi9pY29ucy9mb2xkZXItcGVuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9sZGVyUGx1cyB9IGZyb20gJy4vaWNvbnMvZm9sZGVyLXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkZXJSb290IH0gZnJvbSAnLi9pY29ucy9mb2xkZXItcm9vdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlclNlYXJjaDIgfSBmcm9tICcuL2ljb25zL2ZvbGRlci1zZWFyY2gtMi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlclNlYXJjaCB9IGZyb20gJy4vaWNvbnMvZm9sZGVyLXNlYXJjaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlclN5bWxpbmsgfSBmcm9tICcuL2ljb25zL2ZvbGRlci1zeW1saW5rLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9sZGVyU3luYyB9IGZyb20gJy4vaWNvbnMvZm9sZGVyLXN5bmMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkZXJUcmVlIH0gZnJvbSAnLi9pY29ucy9mb2xkZXItdHJlZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlclVwIH0gZnJvbSAnLi9pY29ucy9mb2xkZXItdXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xkZXJYIH0gZnJvbSAnLi9pY29ucy9mb2xkZXIteC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvbGRlciB9IGZyb20gJy4vaWNvbnMvZm9sZGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9sZGVycyB9IGZyb20gJy4vaWNvbnMvZm9sZGVycy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvb3RwcmludHMgfSBmcm9tICcuL2ljb25zL2Zvb3RwcmludHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3JrbGlmdCB9IGZyb20gJy4vaWNvbnMvZm9ya2xpZnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3JtIH0gZnJvbSAnLi9pY29ucy9mb3JtLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9yd2FyZCB9IGZyb20gJy4vaWNvbnMvZm9yd2FyZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZyYW1lIH0gZnJvbSAnLi9pY29ucy9mcmFtZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZyYW1lciB9IGZyb20gJy4vaWNvbnMvZnJhbWVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRnJvd24gfSBmcm9tICcuL2ljb25zL2Zyb3duLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRnVlbCB9IGZyb20gJy4vaWNvbnMvZnVlbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1bGxzY3JlZW4gfSBmcm9tICcuL2ljb25zL2Z1bGxzY3JlZW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGdW5uZWxQbHVzIH0gZnJvbSAnLi9pY29ucy9mdW5uZWwtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbHRlclgsIGRlZmF1bHQgYXMgRnVubmVsWCB9IGZyb20gJy4vaWNvbnMvZnVubmVsLXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWx0ZXIsIGRlZmF1bHQgYXMgRnVubmVsIH0gZnJvbSAnLi9pY29ucy9mdW5uZWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHYWxsZXJ5SG9yaXpvbnRhbEVuZCB9IGZyb20gJy4vaWNvbnMvZ2FsbGVyeS1ob3Jpem9udGFsLWVuZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdhbGxlcnlIb3Jpem9udGFsIH0gZnJvbSAnLi9pY29ucy9nYWxsZXJ5LWhvcml6b250YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHYWxsZXJ5VGh1bWJuYWlscyB9IGZyb20gJy4vaWNvbnMvZ2FsbGVyeS10aHVtYm5haWxzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2FsbGVyeVZlcnRpY2FsRW5kIH0gZnJvbSAnLi9pY29ucy9nYWxsZXJ5LXZlcnRpY2FsLWVuZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdhbGxlcnlWZXJ0aWNhbCB9IGZyb20gJy4vaWNvbnMvZ2FsbGVyeS12ZXJ0aWNhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdhbWVwYWQyIH0gZnJvbSAnLi9pY29ucy9nYW1lcGFkLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHYW1lcGFkRGlyZWN0aW9uYWwgfSBmcm9tICcuL2ljb25zL2dhbWVwYWQtZGlyZWN0aW9uYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHYW1lcGFkIH0gZnJvbSAnLi9pY29ucy9nYW1lcGFkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2F1Z2UgfSBmcm9tICcuL2ljb25zL2dhdWdlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2F2ZWwgfSBmcm9tICcuL2ljb25zL2dhdmVsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2VtIH0gZnJvbSAnLi9pY29ucy9nZW0uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHZW9yZ2lhbkxhcmkgfSBmcm9tICcuL2ljb25zL2dlb3JnaWFuLWxhcmkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHaG9zdCB9IGZyb20gJy4vaWNvbnMvZ2hvc3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHaWZ0IH0gZnJvbSAnLi9pY29ucy9naWZ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2l0QnJhbmNoTWludXMgfSBmcm9tICcuL2ljb25zL2dpdC1icmFuY2gtbWludXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHaXRCcmFuY2ggfSBmcm9tICcuL2ljb25zL2dpdC1icmFuY2guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHaXRCcmFuY2hQbHVzIH0gZnJvbSAnLi9pY29ucy9naXQtYnJhbmNoLXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHaXRDb21taXQsIGRlZmF1bHQgYXMgR2l0Q29tbWl0SG9yaXpvbnRhbCB9IGZyb20gJy4vaWNvbnMvZ2l0LWNvbW1pdC1ob3Jpem9udGFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2l0Q29tbWl0VmVydGljYWwgfSBmcm9tICcuL2ljb25zL2dpdC1jb21taXQtdmVydGljYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHaXRDb21wYXJlQXJyb3dzIH0gZnJvbSAnLi9pY29ucy9naXQtY29tcGFyZS1hcnJvd3MuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHaXRDb21wYXJlIH0gZnJvbSAnLi9pY29ucy9naXQtY29tcGFyZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdpdEZvcmsgfSBmcm9tICcuL2ljb25zL2dpdC1mb3JrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2l0R3JhcGggfSBmcm9tICcuL2ljb25zL2dpdC1ncmFwaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdpdE1lcmdlIH0gZnJvbSAnLi9pY29ucy9naXQtbWVyZ2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHaXRQdWxsUmVxdWVzdEFycm93IH0gZnJvbSAnLi9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWFycm93LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2l0UHVsbFJlcXVlc3RDbG9zZWQgfSBmcm9tICcuL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QtY2xvc2VkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdyB9IGZyb20gJy4vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUtYXJyb3cuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHaXRQdWxsUmVxdWVzdENyZWF0ZSB9IGZyb20gJy4vaWNvbnMvZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHaXRQdWxsUmVxdWVzdERyYWZ0IH0gZnJvbSAnLi9pY29ucy9naXQtcHVsbC1yZXF1ZXN0LWRyYWZ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2l0UHVsbFJlcXVlc3QgfSBmcm9tICcuL2ljb25zL2dpdC1wdWxsLXJlcXVlc3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHaXRodWIgfSBmcm9tICcuL2ljb25zL2dpdGh1Yi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdpdGxhYiB9IGZyb20gJy4vaWNvbnMvZ2l0bGFiLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xhc3NXYXRlciB9IGZyb20gJy4vaWNvbnMvZ2xhc3Mtd2F0ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHbGFzc2VzIH0gZnJvbSAnLi9pY29ucy9nbGFzc2VzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmVMb2NrIH0gZnJvbSAnLi9pY29ucy9nbG9iZS1sb2NrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmUgfSBmcm9tICcuL2ljb25zL2dsb2JlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR29hbCB9IGZyb20gJy4vaWNvbnMvZ29hbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdwdSB9IGZyb20gJy4vaWNvbnMvZ3B1LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR3JhZHVhdGlvbkNhcCB9IGZyb20gJy4vaWNvbnMvZ3JhZHVhdGlvbi1jYXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHcmFwZSB9IGZyb20gJy4vaWNvbnMvZ3JhcGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHcmlkMlgyQ2hlY2ssIGRlZmF1bHQgYXMgR3JpZDJ4MkNoZWNrIH0gZnJvbSAnLi9pY29ucy9ncmlkLTJ4Mi1jaGVjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdyaWQyWDJQbHVzLCBkZWZhdWx0IGFzIEdyaWQyeDJQbHVzIH0gZnJvbSAnLi9pY29ucy9ncmlkLTJ4Mi1wbHVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR3JpZDJYMlgsIGRlZmF1bHQgYXMgR3JpZDJ4MlggfSBmcm9tICcuL2ljb25zL2dyaWQtMngyLXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHcmlkMlgyLCBkZWZhdWx0IGFzIEdyaWQyeDIgfSBmcm9tICcuL2ljb25zL2dyaWQtMngyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR3JpZDN4MiB9IGZyb20gJy4vaWNvbnMvZ3JpZC0zeDIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHcmlkLCBkZWZhdWx0IGFzIEdyaWQzWDMsIGRlZmF1bHQgYXMgR3JpZDN4MyB9IGZyb20gJy4vaWNvbnMvZ3JpZC0zeDMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHcmlwSG9yaXpvbnRhbCB9IGZyb20gJy4vaWNvbnMvZ3JpcC1ob3Jpem9udGFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR3JpcFZlcnRpY2FsIH0gZnJvbSAnLi9pY29ucy9ncmlwLXZlcnRpY2FsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR3JpcCB9IGZyb20gJy4vaWNvbnMvZ3JpcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdyb3VwIH0gZnJvbSAnLi9pY29ucy9ncm91cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhhbSB9IGZyb20gJy4vaWNvbnMvaGFtLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR3VpdGFyIH0gZnJvbSAnLi9pY29ucy9ndWl0YXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIYW1idXJnZXIgfSBmcm9tICcuL2ljb25zL2hhbWJ1cmdlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhhbW1lciB9IGZyb20gJy4vaWNvbnMvaGFtbWVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGFuZENvaW5zIH0gZnJvbSAnLi9pY29ucy9oYW5kLWNvaW5zLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGFuZEZpc3QgfSBmcm9tICcuL2ljb25zL2hhbmQtZmlzdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdyYWIsIGRlZmF1bHQgYXMgSGFuZEdyYWIgfSBmcm9tICcuL2ljb25zL2hhbmQtZ3JhYi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhhbmRIZWFydCB9IGZyb20gJy4vaWNvbnMvaGFuZC1oZWFydC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhhbmRIZWxwaW5nLCBkZWZhdWx0IGFzIEhlbHBpbmdIYW5kIH0gZnJvbSAnLi9pY29ucy9oYW5kLWhlbHBpbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIYW5kTWV0YWwgfSBmcm9tICcuL2ljb25zL2hhbmQtbWV0YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIYW5kUGxhdHRlciB9IGZyb20gJy4vaWNvbnMvaGFuZC1wbGF0dGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGFuZCB9IGZyb20gJy4vaWNvbnMvaGFuZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhhbmRiYWcgfSBmcm9tICcuL2ljb25zL2hhbmRiYWcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIYW5kc2hha2UgfSBmcm9tICcuL2ljb25zL2hhbmRzaGFrZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhhcmREcml2ZURvd25sb2FkIH0gZnJvbSAnLi9pY29ucy9oYXJkLWRyaXZlLWRvd25sb2FkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGFyZERyaXZlVXBsb2FkIH0gZnJvbSAnLi9pY29ucy9oYXJkLWRyaXZlLXVwbG9hZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhhcmRIYXQgfSBmcm9tICcuL2ljb25zL2hhcmQtaGF0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGFzaCB9IGZyb20gJy4vaWNvbnMvaGFzaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhhcmREcml2ZSB9IGZyb20gJy4vaWNvbnMvaGFyZC1kcml2ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhhdEdsYXNzZXMgfSBmcm9tICcuL2ljb25zL2hhdC1nbGFzc2VzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGF6ZSB9IGZyb20gJy4vaWNvbnMvaGF6ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhkIH0gZnJvbSAnLi9pY29ucy9oZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhkbWlQb3J0IH0gZnJvbSAnLi9pY29ucy9oZG1pLXBvcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIZWFkaW5nMSB9IGZyb20gJy4vaWNvbnMvaGVhZGluZy0xLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGVhZGluZzMgfSBmcm9tICcuL2ljb25zL2hlYWRpbmctMy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhlYWRpbmcyIH0gZnJvbSAnLi9pY29ucy9oZWFkaW5nLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIZWFkaW5nNCB9IGZyb20gJy4vaWNvbnMvaGVhZGluZy00LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGVhZGluZzUgfSBmcm9tICcuL2ljb25zL2hlYWRpbmctNS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhlYWRpbmc2IH0gZnJvbSAnLi9pY29ucy9oZWFkaW5nLTYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIZWFkaW5nIH0gZnJvbSAnLi9pY29ucy9oZWFkaW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGVhZHBob25lT2ZmIH0gZnJvbSAnLi9pY29ucy9oZWFkcGhvbmUtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGVhZHBob25lcyB9IGZyb20gJy4vaWNvbnMvaGVhZHBob25lcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhlYWRzZXQgfSBmcm9tICcuL2ljb25zL2hlYWRzZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIZWFydENyYWNrIH0gZnJvbSAnLi9pY29ucy9oZWFydC1jcmFjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhlYXJ0SGFuZHNoYWtlIH0gZnJvbSAnLi9pY29ucy9oZWFydC1oYW5kc2hha2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIZWFydE1pbnVzIH0gZnJvbSAnLi9pY29ucy9oZWFydC1taW51cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhlYXJ0T2ZmIH0gZnJvbSAnLi9pY29ucy9oZWFydC1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIZWFydFBsdXMgfSBmcm9tICcuL2ljb25zL2hlYXJ0LXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIZWFydFB1bHNlIH0gZnJvbSAnLi9pY29ucy9oZWFydC1wdWxzZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhlYXRlciB9IGZyb20gJy4vaWNvbnMvaGVhdGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGVhcnQgfSBmcm9tICcuL2ljb25zL2hlYXJ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGVsaWNvcHRlciB9IGZyb20gJy4vaWNvbnMvaGVsaWNvcHRlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhleGFnb24gfSBmcm9tICcuL2ljb25zL2hleGFnb24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIaWdobGlnaHRlciB9IGZyb20gJy4vaWNvbnMvaGlnaGxpZ2h0ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIaXN0b3J5IH0gZnJvbSAnLi9pY29ucy9oaXN0b3J5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSG9wIH0gZnJvbSAnLi9pY29ucy9ob3AuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIb3BPZmYgfSBmcm9tICcuL2ljb25zL2hvcC1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIb3NwaXRhbCB9IGZyb20gJy4vaWNvbnMvaG9zcGl0YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIb3RlbCB9IGZyb20gJy4vaWNvbnMvaG90ZWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBIb3VyZ2xhc3MgfSBmcm9tICcuL2ljb25zL2hvdXJnbGFzcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEhvdXNlSGVhcnQgfSBmcm9tICcuL2ljb25zL2hvdXNlLWhlYXJ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSG91c2VQbHVnIH0gZnJvbSAnLi9pY29ucy9ob3VzZS1wbHVnLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSG91c2VQbHVzIH0gZnJvbSAnLi9pY29ucy9ob3VzZS1wbHVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSG91c2VXaWZpIH0gZnJvbSAnLi9pY29ucy9ob3VzZS13aWZpLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSG9tZSwgZGVmYXVsdCBhcyBIb3VzZSB9IGZyb20gJy4vaWNvbnMvaG91c2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJY2VDcmVhbTIsIGRlZmF1bHQgYXMgSWNlQ3JlYW1Cb3dsIH0gZnJvbSAnLi9pY29ucy9pY2UtY3JlYW0tYm93bC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEljZUNyZWFtLCBkZWZhdWx0IGFzIEljZUNyZWFtQ29uZSB9IGZyb20gJy4vaWNvbnMvaWNlLWNyZWFtLWNvbmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJZENhcmRMYW55YXJkIH0gZnJvbSAnLi9pY29ucy9pZC1jYXJkLWxhbnlhcmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJZENhcmQgfSBmcm9tICcuL2ljb25zL2lkLWNhcmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbWFnZURvd24gfSBmcm9tICcuL2ljb25zL2ltYWdlLWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbWFnZU1pbnVzIH0gZnJvbSAnLi9pY29ucy9pbWFnZS1taW51cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlT2ZmIH0gZnJvbSAnLi9pY29ucy9pbWFnZS1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbWFnZVBsdXMgfSBmcm9tICcuL2ljb25zL2ltYWdlLXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbWFnZVBsYXkgfSBmcm9tICcuL2ljb25zL2ltYWdlLXBsYXkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbWFnZVVwIH0gZnJvbSAnLi9pY29ucy9pbWFnZS11cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlVXBzY2FsZSB9IGZyb20gJy4vaWNvbnMvaW1hZ2UtdXBzY2FsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlIH0gZnJvbSAnLi9pY29ucy9pbWFnZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlcyB9IGZyb20gJy4vaWNvbnMvaW1hZ2VzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSW1wb3J0IH0gZnJvbSAnLi9pY29ucy9pbXBvcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbmJveCB9IGZyb20gJy4vaWNvbnMvaW5ib3guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbmRpYW5SdXBlZSB9IGZyb20gJy4vaWNvbnMvaW5kaWFuLXJ1cGVlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSW5maW5pdHkgfSBmcm9tICcuL2ljb25zL2luZmluaXR5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSW5mbyB9IGZyb20gJy4vaWNvbnMvaW5mby5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEluc3BlY3Rpb25QYW5lbCB9IGZyb20gJy4vaWNvbnMvaW5zcGVjdGlvbi1wYW5lbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEluc3RhZ3JhbSB9IGZyb20gJy4vaWNvbnMvaW5zdGFncmFtLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSXRhbGljIH0gZnJvbSAnLi9pY29ucy9pdGFsaWMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJdGVyYXRpb25DY3cgfSBmcm9tICcuL2ljb25zL2l0ZXJhdGlvbi1jY3cuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJdGVyYXRpb25DdyB9IGZyb20gJy4vaWNvbnMvaXRlcmF0aW9uLWN3LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSmFwYW5lc2VZZW4gfSBmcm9tICcuL2ljb25zL2phcGFuZXNlLXllbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEpveXN0aWNrIH0gZnJvbSAnLi9pY29ucy9qb3lzdGljay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEthbmJhbiB9IGZyb20gJy4vaWNvbnMva2FuYmFuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgS2F5YWsgfSBmcm9tICcuL2ljb25zL2theWFrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgS2V5Um91bmQgfSBmcm9tICcuL2ljb25zL2tleS1yb3VuZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEtleVNxdWFyZSB9IGZyb20gJy4vaWNvbnMva2V5LXNxdWFyZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEtleSB9IGZyb20gJy4vaWNvbnMva2V5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgS2V5Ym9hcmRNdXNpYyB9IGZyb20gJy4vaWNvbnMva2V5Ym9hcmQtbXVzaWMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBLZXlib2FyZE9mZiB9IGZyb20gJy4vaWNvbnMva2V5Ym9hcmQtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgS2V5Ym9hcmQgfSBmcm9tICcuL2ljb25zL2tleWJvYXJkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGFtcENlaWxpbmcgfSBmcm9tICcuL2ljb25zL2xhbXAtY2VpbGluZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExhbXBEZXNrIH0gZnJvbSAnLi9pY29ucy9sYW1wLWRlc2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYW1wRmxvb3IgfSBmcm9tICcuL2ljb25zL2xhbXAtZmxvb3IuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYW1wV2FsbERvd24gfSBmcm9tICcuL2ljb25zL2xhbXAtd2FsbC1kb3duLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGFtcFdhbGxVcCB9IGZyb20gJy4vaWNvbnMvbGFtcC13YWxsLXVwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGFtcCB9IGZyb20gJy4vaWNvbnMvbGFtcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExhbmRQbG90IH0gZnJvbSAnLi9pY29ucy9sYW5kLXBsb3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYW5kbWFyayB9IGZyb20gJy4vaWNvbnMvbGFuZG1hcmsuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYW5ndWFnZXMgfSBmcm9tICcuL2ljb25zL2xhbmd1YWdlcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExhcHRvcE1pbmltYWxDaGVjayB9IGZyb20gJy4vaWNvbnMvbGFwdG9wLW1pbmltYWwtY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYXB0b3AyLCBkZWZhdWx0IGFzIExhcHRvcE1pbmltYWwgfSBmcm9tICcuL2ljb25zL2xhcHRvcC1taW5pbWFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGFwdG9wIH0gZnJvbSAnLi9pY29ucy9sYXB0b3AuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYXNzb1NlbGVjdCB9IGZyb20gJy4vaWNvbnMvbGFzc28tc2VsZWN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGFzc28gfSBmcm9tICcuL2ljb25zL2xhc3NvLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGF1Z2ggfSBmcm9tICcuL2ljb25zL2xhdWdoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGF5ZXJzMiB9IGZyb20gJy4vaWNvbnMvbGF5ZXJzLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYXllcnMsIGRlZmF1bHQgYXMgTGF5ZXJzMyB9IGZyb20gJy4vaWNvbnMvbGF5ZXJzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGF5ZXJzUGx1cyB9IGZyb20gJy4vaWNvbnMvbGF5ZXJzLXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYXlvdXREYXNoYm9hcmQgfSBmcm9tICcuL2ljb25zL2xheW91dC1kYXNoYm9hcmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYXlvdXRHcmlkIH0gZnJvbSAnLi9pY29ucy9sYXlvdXQtZ3JpZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExheW91dExpc3QgfSBmcm9tICcuL2ljb25zL2xheW91dC1saXN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGF5b3V0UGFuZWxMZWZ0IH0gZnJvbSAnLi9pY29ucy9sYXlvdXQtcGFuZWwtbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExheW91dFBhbmVsVG9wIH0gZnJvbSAnLi9pY29ucy9sYXlvdXQtcGFuZWwtdG9wLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGF5b3V0VGVtcGxhdGUgfSBmcm9tICcuL2ljb25zL2xheW91dC10ZW1wbGF0ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExlYWYgfSBmcm9tICcuL2ljb25zL2xlYWYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMZWFmeUdyZWVuIH0gZnJvbSAnLi9pY29ucy9sZWFmeS1ncmVlbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExlY3Rlcm4gfSBmcm9tICcuL2ljb25zL2xlY3Rlcm4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaWJyYXJ5QmlnIH0gZnJvbSAnLi9pY29ucy9saWJyYXJ5LWJpZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpYnJhcnkgfSBmcm9tICcuL2ljb25zL2xpYnJhcnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaWZlQnVveSB9IGZyb20gJy4vaWNvbnMvbGlmZS1idW95LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlnYXR1cmUgfSBmcm9tICcuL2ljb25zL2xpZ2F0dXJlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlnaHRidWxiT2ZmIH0gZnJvbSAnLi9pY29ucy9saWdodGJ1bGItb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlnaHRidWxiIH0gZnJvbSAnLi9pY29ucy9saWdodGJ1bGIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaW5lU3F1aWdnbGUgfSBmcm9tICcuL2ljb25zL2xpbmUtc3F1aWdnbGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaW5rMiB9IGZyb20gJy4vaWNvbnMvbGluay0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGluazJPZmYgfSBmcm9tICcuL2ljb25zL2xpbmstMi1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaW5rIH0gZnJvbSAnLi9pY29ucy9saW5rLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlua2VkaW4gfSBmcm9tICcuL2ljb25zL2xpbmtlZGluLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdENoZWNrIH0gZnJvbSAnLi9pY29ucy9saXN0LWNoZWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdENoZWNrcyB9IGZyb20gJy4vaWNvbnMvbGlzdC1jaGVja3MuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0Q2hldnJvbnNEb3duVXAgfSBmcm9tICcuL2ljb25zL2xpc3QtY2hldnJvbnMtZG93bi11cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3RDaGV2cm9uc1VwRG93biB9IGZyb20gJy4vaWNvbnMvbGlzdC1jaGV2cm9ucy11cC1kb3duLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdENvbGxhcHNlIH0gZnJvbSAnLi9pY29ucy9saXN0LWNvbGxhcHNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdEVuZCB9IGZyb20gJy4vaWNvbnMvbGlzdC1lbmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0RmlsdGVyUGx1cyB9IGZyb20gJy4vaWNvbnMvbGlzdC1maWx0ZXItcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3RGaWx0ZXIgfSBmcm9tICcuL2ljb25zL2xpc3QtZmlsdGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSW5kZW50RGVjcmVhc2UsIGRlZmF1bHQgYXMgTGlzdEluZGVudERlY3JlYXNlLCBkZWZhdWx0IGFzIE91dGRlbnQgfSBmcm9tICcuL2ljb25zL2xpc3QtaW5kZW50LWRlY3JlYXNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSW5kZW50LCBkZWZhdWx0IGFzIEluZGVudEluY3JlYXNlLCBkZWZhdWx0IGFzIExpc3RJbmRlbnRJbmNyZWFzZSB9IGZyb20gJy4vaWNvbnMvbGlzdC1pbmRlbnQtaW5jcmVhc2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0TWludXMgfSBmcm9tICcuL2ljb25zL2xpc3QtbWludXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0TXVzaWMgfSBmcm9tICcuL2ljb25zL2xpc3QtbXVzaWMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0T3JkZXJlZCB9IGZyb20gJy4vaWNvbnMvbGlzdC1vcmRlcmVkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFBsdXMgfSBmcm9tICcuL2ljb25zL2xpc3QtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3RSZXN0YXJ0IH0gZnJvbSAnLi9pY29ucy9saXN0LXJlc3RhcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0U3RhcnQgfSBmcm9tICcuL2ljb25zL2xpc3Qtc3RhcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0VG9kbyB9IGZyb20gJy4vaWNvbnMvbGlzdC10b2RvLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFRyZWUgfSBmcm9tICcuL2ljb25zL2xpc3QtdHJlZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3RWaWRlbyB9IGZyb20gJy4vaWNvbnMvbGlzdC12aWRlby5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3RYIH0gZnJvbSAnLi9pY29ucy9saXN0LXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2FkZXIyLCBkZWZhdWx0IGFzIExvYWRlckNpcmNsZSB9IGZyb20gJy4vaWNvbnMvbG9hZGVyLWNpcmNsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3QgfSBmcm9tICcuL2ljb25zL2xpc3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2FkZXJQaW53aGVlbCB9IGZyb20gJy4vaWNvbnMvbG9hZGVyLXBpbndoZWVsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTG9hZGVyIH0gZnJvbSAnLi9pY29ucy9sb2FkZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2NhdGVGaXhlZCB9IGZyb20gJy4vaWNvbnMvbG9jYXRlLWZpeGVkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTG9jYXRlT2ZmIH0gZnJvbSAnLi9pY29ucy9sb2NhdGUtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTG9jYXRlIH0gZnJvbSAnLi9pY29ucy9sb2NhdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2NrS2V5aG9sZU9wZW4sIGRlZmF1bHQgYXMgVW5sb2NrS2V5aG9sZSB9IGZyb20gJy4vaWNvbnMvbG9jay1rZXlob2xlLW9wZW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2NrS2V5aG9sZSB9IGZyb20gJy4vaWNvbnMvbG9jay1rZXlob2xlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTG9ja09wZW4sIGRlZmF1bHQgYXMgVW5sb2NrIH0gZnJvbSAnLi9pY29ucy9sb2NrLW9wZW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2NrIH0gZnJvbSAnLi9pY29ucy9sb2NrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTG9nSW4gfSBmcm9tICcuL2ljb25zL2xvZy1pbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExvZ091dCB9IGZyb20gJy4vaWNvbnMvbG9nLW91dC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExvZ3MgfSBmcm9tICcuL2ljb25zL2xvZ3MuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2xsaXBvcCB9IGZyb20gJy4vaWNvbnMvbG9sbGlwb3AuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMdWdnYWdlIH0gZnJvbSAnLi9pY29ucy9sdWdnYWdlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWFnbmV0IH0gZnJvbSAnLi9pY29ucy9tYWduZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYWlsQ2hlY2sgfSBmcm9tICcuL2ljb25zL21haWwtY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYWlsTWludXMgfSBmcm9tICcuL2ljb25zL21haWwtbWludXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYWlsT3BlbiB9IGZyb20gJy4vaWNvbnMvbWFpbC1vcGVuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWFpbFBsdXMgfSBmcm9tICcuL2ljb25zL21haWwtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1haWxRdWVzdGlvbiwgZGVmYXVsdCBhcyBNYWlsUXVlc3Rpb25NYXJrIH0gZnJvbSAnLi9pY29ucy9tYWlsLXF1ZXN0aW9uLW1hcmsuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYWlsU2VhcmNoIH0gZnJvbSAnLi9pY29ucy9tYWlsLXNlYXJjaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1haWxXYXJuaW5nIH0gZnJvbSAnLi9pY29ucy9tYWlsLXdhcm5pbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYWlsWCB9IGZyb20gJy4vaWNvbnMvbWFpbC14LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWFpbCB9IGZyb20gJy4vaWNvbnMvbWFpbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1haWxib3ggfSBmcm9tICcuL2ljb25zL21haWxib3guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYWlscyB9IGZyb20gJy4vaWNvbnMvbWFpbHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXBNaW51cyB9IGZyb20gJy4vaWNvbnMvbWFwLW1pbnVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWFwUGluQ2hlY2tJbnNpZGUgfSBmcm9tICcuL2ljb25zL21hcC1waW4tY2hlY2staW5zaWRlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWFwUGluQ2hlY2sgfSBmcm9tICcuL2ljb25zL21hcC1waW4tY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXBQaW5Ib3VzZSB9IGZyb20gJy4vaWNvbnMvbWFwLXBpbi1ob3VzZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1hcFBpbk1pbnVzSW5zaWRlIH0gZnJvbSAnLi9pY29ucy9tYXAtcGluLW1pbnVzLWluc2lkZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1hcFBpbk1pbnVzIH0gZnJvbSAnLi9pY29ucy9tYXAtcGluLW1pbnVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWFwUGluT2ZmIH0gZnJvbSAnLi9pY29ucy9tYXAtcGluLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExvY2F0aW9uRWRpdCwgZGVmYXVsdCBhcyBNYXBQaW5QZW4gfSBmcm9tICcuL2ljb25zL21hcC1waW4tcGVuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWFwUGluUGx1c0luc2lkZSB9IGZyb20gJy4vaWNvbnMvbWFwLXBpbi1wbHVzLWluc2lkZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1hcFBpblBsdXMgfSBmcm9tICcuL2ljb25zL21hcC1waW4tcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1hcFBpblhJbnNpZGUgfSBmcm9tICcuL2ljb25zL21hcC1waW4teC1pbnNpZGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXBQaW5YIH0gZnJvbSAnLi9pY29ucy9tYXAtcGluLXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXBQaW4gfSBmcm9tICcuL2ljb25zL21hcC1waW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXBQaW5uZWQgfSBmcm9tICcuL2ljb25zL21hcC1waW5uZWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXBQbHVzIH0gZnJvbSAnLi9pY29ucy9tYXAtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1hcCB9IGZyb20gJy4vaWNvbnMvbWFwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWFyc1N0cm9rZSB9IGZyb20gJy4vaWNvbnMvbWFycy1zdHJva2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXJzIH0gZnJvbSAnLi9pY29ucy9tYXJzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWFydGluaSB9IGZyb20gJy4vaWNvbnMvbWFydGluaS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1heGltaXplMiB9IGZyb20gJy4vaWNvbnMvbWF4aW1pemUtMi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1heGltaXplIH0gZnJvbSAnLi9pY29ucy9tYXhpbWl6ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lZ2FwaG9uZU9mZiB9IGZyb20gJy4vaWNvbnMvbWVnYXBob25lLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lZ2FwaG9uZSB9IGZyb20gJy4vaWNvbnMvbWVnYXBob25lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVkYWwgfSBmcm9tICcuL2ljb25zL21lZGFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVoIH0gZnJvbSAnLi9pY29ucy9tZWguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW1vcnlTdGljayB9IGZyb20gJy4vaWNvbnMvbWVtb3J5LXN0aWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVyZ2UgfSBmcm9tICcuL2ljb25zL21lcmdlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudSB9IGZyb20gJy4vaWNvbnMvbWVudS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VDaXJjbGVDb2RlIH0gZnJvbSAnLi9pY29ucy9tZXNzYWdlLWNpcmNsZS1jb2RlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZUNpcmNsZURhc2hlZCB9IGZyb20gJy4vaWNvbnMvbWVzc2FnZS1jaXJjbGUtZGFzaGVkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZUNpcmNsZUhlYXJ0IH0gZnJvbSAnLi9pY29ucy9tZXNzYWdlLWNpcmNsZS1oZWFydC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VDaXJjbGVNb3JlIH0gZnJvbSAnLi9pY29ucy9tZXNzYWdlLWNpcmNsZS1tb3JlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZUNpcmNsZU9mZiB9IGZyb20gJy4vaWNvbnMvbWVzc2FnZS1jaXJjbGUtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZUNpcmNsZVBsdXMgfSBmcm9tICcuL2ljb25zL21lc3NhZ2UtY2lyY2xlLXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNzYWdlQ2lyY2xlUXVlc3Rpb24sIGRlZmF1bHQgYXMgTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyayB9IGZyb20gJy4vaWNvbnMvbWVzc2FnZS1jaXJjbGUtcXVlc3Rpb24tbWFyay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VDaXJjbGVSZXBseSB9IGZyb20gJy4vaWNvbnMvbWVzc2FnZS1jaXJjbGUtcmVwbHkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNzYWdlQ2lyY2xlV2FybmluZyB9IGZyb20gJy4vaWNvbnMvbWVzc2FnZS1jaXJjbGUtd2FybmluZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VDaXJjbGVYIH0gZnJvbSAnLi9pY29ucy9tZXNzYWdlLWNpcmNsZS14LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZUNpcmNsZSB9IGZyb20gJy4vaWNvbnMvbWVzc2FnZS1jaXJjbGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNzYWdlU3F1YXJlQ29kZSB9IGZyb20gJy4vaWNvbnMvbWVzc2FnZS1zcXVhcmUtY29kZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VTcXVhcmVEYXNoZWQgfSBmcm9tICcuL2ljb25zL21lc3NhZ2Utc3F1YXJlLWRhc2hlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VTcXVhcmVEaWZmIH0gZnJvbSAnLi9pY29ucy9tZXNzYWdlLXNxdWFyZS1kaWZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZVNxdWFyZURvdCB9IGZyb20gJy4vaWNvbnMvbWVzc2FnZS1zcXVhcmUtZG90LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZVNxdWFyZUhlYXJ0IH0gZnJvbSAnLi9pY29ucy9tZXNzYWdlLXNxdWFyZS1oZWFydC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VTcXVhcmVMb2NrIH0gZnJvbSAnLi9pY29ucy9tZXNzYWdlLXNxdWFyZS1sb2NrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZVNxdWFyZU1vcmUgfSBmcm9tICcuL2ljb25zL21lc3NhZ2Utc3F1YXJlLW1vcmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNzYWdlU3F1YXJlT2ZmIH0gZnJvbSAnLi9pY29ucy9tZXNzYWdlLXNxdWFyZS1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNzYWdlU3F1YXJlUGx1cyB9IGZyb20gJy4vaWNvbnMvbWVzc2FnZS1zcXVhcmUtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VTcXVhcmVRdW90ZSB9IGZyb20gJy4vaWNvbnMvbWVzc2FnZS1zcXVhcmUtcXVvdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNzYWdlU3F1YXJlUmVwbHkgfSBmcm9tICcuL2ljb25zL21lc3NhZ2Utc3F1YXJlLXJlcGx5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZVNxdWFyZVNoYXJlIH0gZnJvbSAnLi9pY29ucy9tZXNzYWdlLXNxdWFyZS1zaGFyZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VTcXVhcmVUZXh0IH0gZnJvbSAnLi9pY29ucy9tZXNzYWdlLXNxdWFyZS10ZXh0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZVNxdWFyZVdhcm5pbmcgfSBmcm9tICcuL2ljb25zL21lc3NhZ2Utc3F1YXJlLXdhcm5pbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNzYWdlU3F1YXJlWCB9IGZyb20gJy4vaWNvbnMvbWVzc2FnZS1zcXVhcmUteC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lc3NhZ2VTcXVhcmUgfSBmcm9tICcuL2ljb25zL21lc3NhZ2Utc3F1YXJlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVzc2FnZXNTcXVhcmUgfSBmcm9tICcuL2ljb25zL21lc3NhZ2VzLXNxdWFyZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1pY09mZiB9IGZyb20gJy4vaWNvbnMvbWljLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1pYzIsIGRlZmF1bHQgYXMgTWljVm9jYWwgfSBmcm9tICcuL2ljb25zL21pYy12b2NhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1pYyB9IGZyb20gJy4vaWNvbnMvbWljLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWljcm9jaGlwIH0gZnJvbSAnLi9pY29ucy9taWNyb2NoaXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNaWNyb3Njb3BlIH0gZnJvbSAnLi9pY29ucy9taWNyb3Njb3BlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWljcm93YXZlIH0gZnJvbSAnLi9pY29ucy9taWNyb3dhdmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNaWxlc3RvbmUgfSBmcm9tICcuL2ljb25zL21pbGVzdG9uZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1pbGtPZmYgfSBmcm9tICcuL2ljb25zL21pbGstb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWlsayB9IGZyb20gJy4vaWNvbnMvbWlsay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1pbmltaXplMiB9IGZyb20gJy4vaWNvbnMvbWluaW1pemUtMi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1pbmltaXplIH0gZnJvbSAnLi9pY29ucy9taW5pbWl6ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1pbnVzIH0gZnJvbSAnLi9pY29ucy9taW51cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vbml0b3JDaGVjayB9IGZyb20gJy4vaWNvbnMvbW9uaXRvci1jaGVjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vbml0b3JDbG91ZCB9IGZyb20gJy4vaWNvbnMvbW9uaXRvci1jbG91ZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vbml0b3JDb2cgfSBmcm9tICcuL2ljb25zL21vbml0b3ItY29nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW9uaXRvckRvdCB9IGZyb20gJy4vaWNvbnMvbW9uaXRvci1kb3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb25pdG9yRG93biB9IGZyb20gJy4vaWNvbnMvbW9uaXRvci1kb3duLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW9uaXRvck9mZiB9IGZyb20gJy4vaWNvbnMvbW9uaXRvci1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb25pdG9yUGF1c2UgfSBmcm9tICcuL2ljb25zL21vbml0b3ItcGF1c2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb25pdG9yUGxheSB9IGZyb20gJy4vaWNvbnMvbW9uaXRvci1wbGF5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW9uaXRvclNtYXJ0cGhvbmUgfSBmcm9tICcuL2ljb25zL21vbml0b3Itc21hcnRwaG9uZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vbml0b3JTcGVha2VyIH0gZnJvbSAnLi9pY29ucy9tb25pdG9yLXNwZWFrZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb25pdG9yU3RvcCB9IGZyb20gJy4vaWNvbnMvbW9uaXRvci1zdG9wLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW9uaXRvclVwIH0gZnJvbSAnLi9pY29ucy9tb25pdG9yLXVwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW9uaXRvclggfSBmcm9tICcuL2ljb25zL21vbml0b3IteC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vbml0b3IgfSBmcm9tICcuL2ljb25zL21vbml0b3IuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb29uU3RhciB9IGZyb20gJy4vaWNvbnMvbW9vbi1zdGFyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW90b3JiaWtlIH0gZnJvbSAnLi9pY29ucy9tb3RvcmJpa2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb29uIH0gZnJvbSAnLi9pY29ucy9tb29uLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW91bnRhaW5Tbm93IH0gZnJvbSAnLi9pY29ucy9tb3VudGFpbi1zbm93LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW91bnRhaW4gfSBmcm9tICcuL2ljb25zL21vdW50YWluLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW91c2VPZmYgfSBmcm9tICcuL2ljb25zL21vdXNlLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vdXNlUG9pbnRlcjJPZmYgfSBmcm9tICcuL2ljb25zL21vdXNlLXBvaW50ZXItMi1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb3VzZVBvaW50ZXIyIH0gZnJvbSAnLi9pY29ucy9tb3VzZS1wb2ludGVyLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb3VzZVBvaW50ZXJCYW4gfSBmcm9tICcuL2ljb25zL21vdXNlLXBvaW50ZXItYmFuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW91c2VQb2ludGVyQ2xpY2sgfSBmcm9tICcuL2ljb25zL21vdXNlLXBvaW50ZXItY2xpY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb3VzZVBvaW50ZXIgfSBmcm9tICcuL2ljb25zL21vdXNlLXBvaW50ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb3VzZSB9IGZyb20gJy4vaWNvbnMvbW91c2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb3ZlM0QsIGRlZmF1bHQgYXMgTW92ZTNkIH0gZnJvbSAnLi9pY29ucy9tb3ZlLTNkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW92ZURpYWdvbmFsMiB9IGZyb20gJy4vaWNvbnMvbW92ZS1kaWFnb25hbC0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW92ZURpYWdvbmFsIH0gZnJvbSAnLi9pY29ucy9tb3ZlLWRpYWdvbmFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW92ZURvd25MZWZ0IH0gZnJvbSAnLi9pY29ucy9tb3ZlLWRvd24tbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vdmVEb3duUmlnaHQgfSBmcm9tICcuL2ljb25zL21vdmUtZG93bi1yaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vdmVEb3duIH0gZnJvbSAnLi9pY29ucy9tb3ZlLWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb3ZlTGVmdCB9IGZyb20gJy4vaWNvbnMvbW92ZS1sZWZ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW92ZUhvcml6b250YWwgfSBmcm9tICcuL2ljb25zL21vdmUtaG9yaXpvbnRhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vdmVSaWdodCB9IGZyb20gJy4vaWNvbnMvbW92ZS1yaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vdmVVcExlZnQgfSBmcm9tICcuL2ljb25zL21vdmUtdXAtbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vdmVVcFJpZ2h0IH0gZnJvbSAnLi9pY29ucy9tb3ZlLXVwLXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW92ZVVwIH0gZnJvbSAnLi9pY29ucy9tb3ZlLXVwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW92ZVZlcnRpY2FsIH0gZnJvbSAnLi9pY29ucy9tb3ZlLXZlcnRpY2FsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW92ZSB9IGZyb20gJy4vaWNvbnMvbW92ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE11c2ljMiB9IGZyb20gJy4vaWNvbnMvbXVzaWMtMi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE11c2ljMyB9IGZyb20gJy4vaWNvbnMvbXVzaWMtMy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE11c2ljNCB9IGZyb20gJy4vaWNvbnMvbXVzaWMtNC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE11c2ljIH0gZnJvbSAnLi9pY29ucy9tdXNpYy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5hdmlnYXRpb24yT2ZmIH0gZnJvbSAnLi9pY29ucy9uYXZpZ2F0aW9uLTItb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTmF2aWdhdGlvbjIgfSBmcm9tICcuL2ljb25zL25hdmlnYXRpb24tMi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5hdmlnYXRpb25PZmYgfSBmcm9tICcuL2ljb25zL25hdmlnYXRpb24tb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTmF2aWdhdGlvbiB9IGZyb20gJy4vaWNvbnMvbmF2aWdhdGlvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5ld3NwYXBlciB9IGZyb20gJy4vaWNvbnMvbmV3c3BhcGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTmV0d29yayB9IGZyb20gJy4vaWNvbnMvbmV0d29yay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5mYyB9IGZyb20gJy4vaWNvbnMvbmZjLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9uQmluYXJ5IH0gZnJvbSAnLi9pY29ucy9ub24tYmluYXJ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm90ZWJvb2tQZW4gfSBmcm9tICcuL2ljb25zL25vdGVib29rLXBlbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vdGVib29rVGFicyB9IGZyb20gJy4vaWNvbnMvbm90ZWJvb2stdGFicy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vdGVib29rVGV4dCB9IGZyb20gJy4vaWNvbnMvbm90ZWJvb2stdGV4dC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vdGVib29rIH0gZnJvbSAnLi9pY29ucy9ub3RlYm9vay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vdGVwYWRUZXh0RGFzaGVkIH0gZnJvbSAnLi9pY29ucy9ub3RlcGFkLXRleHQtZGFzaGVkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm90ZXBhZFRleHQgfSBmcm9tICcuL2ljb25zL25vdGVwYWQtdGV4dC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE51dE9mZiB9IGZyb20gJy4vaWNvbnMvbnV0LW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE51dCB9IGZyb20gJy4vaWNvbnMvbnV0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxlcnRPY3RhZ29uLCBkZWZhdWx0IGFzIE9jdGFnb25BbGVydCB9IGZyb20gJy4vaWNvbnMvb2N0YWdvbi1hbGVydC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE9jdGFnb25NaW51cyB9IGZyb20gJy4vaWNvbnMvb2N0YWdvbi1taW51cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE9jdGFnb25QYXVzZSwgZGVmYXVsdCBhcyBQYXVzZU9jdGFnb24gfSBmcm9tICcuL2ljb25zL29jdGFnb24tcGF1c2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBPY3RhZ29uWCwgZGVmYXVsdCBhcyBYT2N0YWdvbiB9IGZyb20gJy4vaWNvbnMvb2N0YWdvbi14LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgT2N0YWdvbiB9IGZyb20gJy4vaWNvbnMvb2N0YWdvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE9tZWdhIH0gZnJvbSAnLi9pY29ucy9vbWVnYS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE9wdGlvbiB9IGZyb20gJy4vaWNvbnMvb3B0aW9uLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgT3JiaXQgfSBmcm9tICcuL2ljb25zL29yYml0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgT3JpZ2FtaSB9IGZyb20gJy4vaWNvbnMvb3JpZ2FtaS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhY2thZ2UyIH0gZnJvbSAnLi9pY29ucy9wYWNrYWdlLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYWNrYWdlQ2hlY2sgfSBmcm9tICcuL2ljb25zL3BhY2thZ2UtY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYWNrYWdlTWludXMgfSBmcm9tICcuL2ljb25zL3BhY2thZ2UtbWludXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYWNrYWdlT3BlbiB9IGZyb20gJy4vaWNvbnMvcGFja2FnZS1vcGVuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFja2FnZVBsdXMgfSBmcm9tICcuL2ljb25zL3BhY2thZ2UtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhY2thZ2VTZWFyY2ggfSBmcm9tICcuL2ljb25zL3BhY2thZ2Utc2VhcmNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFja2FnZVggfSBmcm9tICcuL2ljb25zL3BhY2thZ2UteC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhY2thZ2UgfSBmcm9tICcuL2ljb25zL3BhY2thZ2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYWludEJ1Y2tldCB9IGZyb20gJy4vaWNvbnMvcGFpbnQtYnVja2V0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFpbnRSb2xsZXIgfSBmcm9tICcuL2ljb25zL3BhaW50LXJvbGxlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhaW50YnJ1c2gyLCBkZWZhdWx0IGFzIFBhaW50YnJ1c2hWZXJ0aWNhbCB9IGZyb20gJy4vaWNvbnMvcGFpbnRicnVzaC12ZXJ0aWNhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhaW50YnJ1c2ggfSBmcm9tICcuL2ljb25zL3BhaW50YnJ1c2guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYWxldHRlIH0gZnJvbSAnLi9pY29ucy9wYWxldHRlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFuZGEgfSBmcm9tICcuL2ljb25zL3BhbmRhLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFuZWxCb3R0b21DbG9zZSB9IGZyb20gJy4vaWNvbnMvcGFuZWwtYm90dG9tLWNsb3NlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFuZWxCb3R0b21EYXNoZWQsIGRlZmF1bHQgYXMgUGFuZWxCb3R0b21JbmFjdGl2ZSB9IGZyb20gJy4vaWNvbnMvcGFuZWwtYm90dG9tLWRhc2hlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhbmVsQm90dG9tT3BlbiB9IGZyb20gJy4vaWNvbnMvcGFuZWwtYm90dG9tLW9wZW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYW5lbEJvdHRvbSB9IGZyb20gJy4vaWNvbnMvcGFuZWwtYm90dG9tLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFuZWxMZWZ0Q2xvc2UsIGRlZmF1bHQgYXMgU2lkZWJhckNsb3NlIH0gZnJvbSAnLi9pY29ucy9wYW5lbC1sZWZ0LWNsb3NlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFuZWxMZWZ0RGFzaGVkLCBkZWZhdWx0IGFzIFBhbmVsTGVmdEluYWN0aXZlIH0gZnJvbSAnLi9pY29ucy9wYW5lbC1sZWZ0LWRhc2hlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhbmVsTGVmdE9wZW4sIGRlZmF1bHQgYXMgU2lkZWJhck9wZW4gfSBmcm9tICcuL2ljb25zL3BhbmVsLWxlZnQtb3Blbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhbmVsTGVmdFJpZ2h0RGFzaGVkIH0gZnJvbSAnLi9pY29ucy9wYW5lbC1sZWZ0LXJpZ2h0LWRhc2hlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhbmVsTGVmdCwgZGVmYXVsdCBhcyBTaWRlYmFyIH0gZnJvbSAnLi9pY29ucy9wYW5lbC1sZWZ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFuZWxSaWdodENsb3NlIH0gZnJvbSAnLi9pY29ucy9wYW5lbC1yaWdodC1jbG9zZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhbmVsUmlnaHREYXNoZWQsIGRlZmF1bHQgYXMgUGFuZWxSaWdodEluYWN0aXZlIH0gZnJvbSAnLi9pY29ucy9wYW5lbC1yaWdodC1kYXNoZWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYW5lbFJpZ2h0T3BlbiB9IGZyb20gJy4vaWNvbnMvcGFuZWwtcmlnaHQtb3Blbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhbmVsUmlnaHQgfSBmcm9tICcuL2ljb25zL3BhbmVsLXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFuZWxUb3BCb3R0b21EYXNoZWQgfSBmcm9tICcuL2ljb25zL3BhbmVsLXRvcC1ib3R0b20tZGFzaGVkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFuZWxUb3BDbG9zZSB9IGZyb20gJy4vaWNvbnMvcGFuZWwtdG9wLWNsb3NlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFuZWxUb3BEYXNoZWQsIGRlZmF1bHQgYXMgUGFuZWxUb3BJbmFjdGl2ZSB9IGZyb20gJy4vaWNvbnMvcGFuZWwtdG9wLWRhc2hlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhbmVsVG9wT3BlbiB9IGZyb20gJy4vaWNvbnMvcGFuZWwtdG9wLW9wZW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYW5lbHNMZWZ0Qm90dG9tIH0gZnJvbSAnLi9pY29ucy9wYW5lbHMtbGVmdC1ib3R0b20uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYW5lbFRvcCB9IGZyb20gJy4vaWNvbnMvcGFuZWwtdG9wLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFuZWxzUmlnaHRCb3R0b20gfSBmcm9tICcuL2ljb25zL3BhbmVscy1yaWdodC1ib3R0b20uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYXlvdXQsIGRlZmF1bHQgYXMgUGFuZWxzVG9wTGVmdCB9IGZyb20gJy4vaWNvbnMvcGFuZWxzLXRvcC1sZWZ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFwZXJjbGlwIH0gZnJvbSAnLi9pY29ucy9wYXBlcmNsaXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYXJraW5nTWV0ZXIgfSBmcm9tICcuL2ljb25zL3BhcmtpbmctbWV0ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYXJlbnRoZXNlcyB9IGZyb20gJy4vaWNvbnMvcGFyZW50aGVzZXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYXJ0eVBvcHBlciB9IGZyb20gJy4vaWNvbnMvcGFydHktcG9wcGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGF1c2UgfSBmcm9tICcuL2ljb25zL3BhdXNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGF3UHJpbnQgfSBmcm9tICcuL2ljb25zL3Bhdy1wcmludC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBjQ2FzZSB9IGZyb20gJy4vaWNvbnMvcGMtY2FzZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEVkaXQzLCBkZWZhdWx0IGFzIFBlbkxpbmUgfSBmcm9tICcuL2ljb25zL3Blbi1saW5lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGVuT2ZmIH0gZnJvbSAnLi9pY29ucy9wZW4tb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGVuVG9vbCB9IGZyb20gJy4vaWNvbnMvcGVuLXRvb2wuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFZGl0MiwgZGVmYXVsdCBhcyBQZW4gfSBmcm9tICcuL2ljb25zL3Blbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBlbmNpbExpbmUgfSBmcm9tICcuL2ljb25zL3BlbmNpbC1saW5lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGVuY2lsT2ZmIH0gZnJvbSAnLi9pY29ucy9wZW5jaWwtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGVuY2lsUnVsZXIgfSBmcm9tICcuL2ljb25zL3BlbmNpbC1ydWxlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBlbmNpbCB9IGZyb20gJy4vaWNvbnMvcGVuY2lsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGVudGFnb24gfSBmcm9tICcuL2ljb25zL3BlbnRhZ29uLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGVyY2VudCB9IGZyb20gJy4vaWNvbnMvcGVyY2VudC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBlcnNvblN0YW5kaW5nIH0gZnJvbSAnLi9pY29ucy9wZXJzb24tc3RhbmRpbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQaGlsaXBwaW5lUGVzbyB9IGZyb20gJy4vaWNvbnMvcGhpbGlwcGluZS1wZXNvLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGhvbmVGb3J3YXJkZWQgfSBmcm9tICcuL2ljb25zL3Bob25lLWZvcndhcmRlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBob25lQ2FsbCB9IGZyb20gJy4vaWNvbnMvcGhvbmUtY2FsbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBob25lSW5jb21pbmcgfSBmcm9tICcuL2ljb25zL3Bob25lLWluY29taW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGhvbmVNaXNzZWQgfSBmcm9tICcuL2ljb25zL3Bob25lLW1pc3NlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBob25lT2ZmIH0gZnJvbSAnLi9pY29ucy9waG9uZS1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQaG9uZU91dGdvaW5nIH0gZnJvbSAnLi9pY29ucy9waG9uZS1vdXRnb2luZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBob25lIH0gZnJvbSAnLi9pY29ucy9waG9uZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBpIH0gZnJvbSAnLi9pY29ucy9waS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBpYW5vIH0gZnJvbSAnLi9pY29ucy9waWFuby5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBpY2theGUgfSBmcm9tICcuL2ljb25zL3BpY2theGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQaWN0dXJlSW5QaWN0dXJlMiB9IGZyb20gJy4vaWNvbnMvcGljdHVyZS1pbi1waWN0dXJlLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQaWN0dXJlSW5QaWN0dXJlIH0gZnJvbSAnLi9pY29ucy9waWN0dXJlLWluLXBpY3R1cmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQaWdneUJhbmsgfSBmcm9tICcuL2ljb25zL3BpZ2d5LWJhbmsuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQaWxjcm93TGVmdCB9IGZyb20gJy4vaWNvbnMvcGlsY3Jvdy1sZWZ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGlsY3Jvd1JpZ2h0IH0gZnJvbSAnLi9pY29ucy9waWxjcm93LXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGlsY3JvdyB9IGZyb20gJy4vaWNvbnMvcGlsY3Jvdy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBpbGxCb3R0bGUgfSBmcm9tICcuL2ljb25zL3BpbGwtYm90dGxlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGlsbCB9IGZyb20gJy4vaWNvbnMvcGlsbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBpbk9mZiB9IGZyb20gJy4vaWNvbnMvcGluLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBpbiB9IGZyb20gJy4vaWNvbnMvcGluLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGlwZXR0ZSB9IGZyb20gJy4vaWNvbnMvcGlwZXR0ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBpenphIH0gZnJvbSAnLi9pY29ucy9waXp6YS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBsYW5lTGFuZGluZyB9IGZyb20gJy4vaWNvbnMvcGxhbmUtbGFuZGluZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBsYW5lVGFrZW9mZiB9IGZyb20gJy4vaWNvbnMvcGxhbmUtdGFrZW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBsYW5lIH0gZnJvbSAnLi9pY29ucy9wbGFuZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBsYXkgfSBmcm9tICcuL2ljb25zL3BsYXkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQbHVnMiB9IGZyb20gJy4vaWNvbnMvcGx1Zy0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGx1Z1phcCwgZGVmYXVsdCBhcyBQbHVnWmFwMiB9IGZyb20gJy4vaWNvbnMvcGx1Zy16YXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQbHVnIH0gZnJvbSAnLi9pY29ucy9wbHVnLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGx1cyB9IGZyb20gJy4vaWNvbnMvcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvY2tldEtuaWZlIH0gZnJvbSAnLi9pY29ucy9wb2NrZXQta25pZmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb2NrZXQgfSBmcm9tICcuL2ljb25zL3BvY2tldC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvZGNhc3QgfSBmcm9tICcuL2ljb25zL3BvZGNhc3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb2ludGVyT2ZmIH0gZnJvbSAnLi9pY29ucy9wb2ludGVyLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvaW50ZXIgfSBmcm9tICcuL2ljb25zL3BvaW50ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb3Bjb3JuIH0gZnJvbSAnLi9pY29ucy9wb3Bjb3JuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9wc2ljbGUgfSBmcm9tICcuL2ljb25zL3BvcHNpY2xlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG91bmRTdGVybGluZyB9IGZyb20gJy4vaWNvbnMvcG91bmQtc3RlcmxpbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb3dlck9mZiB9IGZyb20gJy4vaWNvbnMvcG93ZXItb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG93ZXIgfSBmcm9tICcuL2ljb25zL3Bvd2VyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJlc2VudGF0aW9uIH0gZnJvbSAnLi9pY29ucy9wcmVzZW50YXRpb24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQcmludGVyIH0gZnJvbSAnLi9pY29ucy9wcmludGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJpbnRlckNoZWNrIH0gZnJvbSAnLi9pY29ucy9wcmludGVyLWNoZWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJvamVjdG9yIH0gZnJvbSAnLi9pY29ucy9wcm9qZWN0b3IuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQcm9wb3J0aW9ucyB9IGZyb20gJy4vaWNvbnMvcHJvcG9ydGlvbnMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQdXp6bGUgfSBmcm9tICcuL2ljb25zL3B1enpsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFB5cmFtaWQgfSBmcm9tICcuL2ljb25zL3B5cmFtaWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBRckNvZGUgfSBmcm9tICcuL2ljb25zL3FyLWNvZGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBRdW90ZSB9IGZyb20gJy4vaWNvbnMvcXVvdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSYWJiaXQgfSBmcm9tICcuL2ljb25zL3JhYmJpdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhZGFyIH0gZnJvbSAnLi9pY29ucy9yYWRhci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhZGlhdGlvbiB9IGZyb20gJy4vaWNvbnMvcmFkaWF0aW9uLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFkaWNhbCB9IGZyb20gJy4vaWNvbnMvcmFkaWNhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhZGlvUmVjZWl2ZXIgfSBmcm9tICcuL2ljb25zL3JhZGlvLXJlY2VpdmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFkaW9Ub3dlciB9IGZyb20gJy4vaWNvbnMvcmFkaW8tdG93ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSYWRpbyB9IGZyb20gJy4vaWNvbnMvcmFkaW8uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSYWRpdXMgfSBmcm9tICcuL2ljb25zL3JhZGl1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhaWxTeW1ib2wgfSBmcm9tICcuL2ljb25zL3JhaWwtc3ltYm9sLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFpbmJvdyB9IGZyb20gJy4vaWNvbnMvcmFpbmJvdy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhdCB9IGZyb20gJy4vaWNvbnMvcmF0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmF0aW8gfSBmcm9tICcuL2ljb25zL3JhdGlvLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVjZWlwdENlbnQgfSBmcm9tICcuL2ljb25zL3JlY2VpcHQtY2VudC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlY2VpcHRFdXJvIH0gZnJvbSAnLi9pY29ucy9yZWNlaXB0LWV1cm8uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWNlaXB0SW5kaWFuUnVwZWUgfSBmcm9tICcuL2ljb25zL3JlY2VpcHQtaW5kaWFuLXJ1cGVlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVjZWlwdEphcGFuZXNlWWVuIH0gZnJvbSAnLi9pY29ucy9yZWNlaXB0LWphcGFuZXNlLXllbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlY2VpcHRQb3VuZFN0ZXJsaW5nIH0gZnJvbSAnLi9pY29ucy9yZWNlaXB0LXBvdW5kLXN0ZXJsaW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVjZWlwdFJ1c3NpYW5SdWJsZSB9IGZyb20gJy4vaWNvbnMvcmVjZWlwdC1ydXNzaWFuLXJ1YmxlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVjZWlwdFN3aXNzRnJhbmMgfSBmcm9tICcuL2ljb25zL3JlY2VpcHQtc3dpc3MtZnJhbmMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWNlaXB0VGV4dCB9IGZyb20gJy4vaWNvbnMvcmVjZWlwdC10ZXh0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVjZWlwdFR1cmtpc2hMaXJhIH0gZnJvbSAnLi9pY29ucy9yZWNlaXB0LXR1cmtpc2gtbGlyYS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlY2VpcHQgfSBmcm9tICcuL2ljb25zL3JlY2VpcHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWN0YW5nbGVDaXJjbGUgfSBmcm9tICcuL2ljb25zL3JlY3RhbmdsZS1jaXJjbGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3JtSW5wdXQsIGRlZmF1bHQgYXMgUmVjdGFuZ2xlRWxsaXBzaXMgfSBmcm9tICcuL2ljb25zL3JlY3RhbmdsZS1lbGxpcHNpcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlY3RhbmdsZUdvZ2dsZXMgfSBmcm9tICcuL2ljb25zL3JlY3RhbmdsZS1nb2dnbGVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVjdGFuZ2xlSG9yaXpvbnRhbCB9IGZyb20gJy4vaWNvbnMvcmVjdGFuZ2xlLWhvcml6b250YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWN0YW5nbGVWZXJ0aWNhbCB9IGZyb20gJy4vaWNvbnMvcmVjdGFuZ2xlLXZlcnRpY2FsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVjeWNsZSB9IGZyb20gJy4vaWNvbnMvcmVjeWNsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlZG8yIH0gZnJvbSAnLi9pY29ucy9yZWRvLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWRvRG90IH0gZnJvbSAnLi9pY29ucy9yZWRvLWRvdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlZG8gfSBmcm9tICcuL2ljb25zL3JlZG8uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWZyZXNoQ2N3RG90IH0gZnJvbSAnLi9pY29ucy9yZWZyZXNoLWNjdy1kb3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWZyZXNoQ2N3IH0gZnJvbSAnLi9pY29ucy9yZWZyZXNoLWNjdy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlZnJlc2hDd09mZiB9IGZyb20gJy4vaWNvbnMvcmVmcmVzaC1jdy1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWZyZXNoQ3cgfSBmcm9tICcuL2ljb25zL3JlZnJlc2gtY3cuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWZyaWdlcmF0b3IgfSBmcm9tICcuL2ljb25zL3JlZnJpZ2VyYXRvci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlZ2V4IH0gZnJvbSAnLi9pY29ucy9yZWdleC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlbW92ZUZvcm1hdHRpbmcgfSBmcm9tICcuL2ljb25zL3JlbW92ZS1mb3JtYXR0aW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVwZWF0MSB9IGZyb20gJy4vaWNvbnMvcmVwZWF0LTEuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZXBlYXQyIH0gZnJvbSAnLi9pY29ucy9yZXBlYXQtMi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlcGVhdCB9IGZyb20gJy4vaWNvbnMvcmVwZWF0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVwbGFjZUFsbCB9IGZyb20gJy4vaWNvbnMvcmVwbGFjZS1hbGwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZXBsYWNlIH0gZnJvbSAnLi9pY29ucy9yZXBsYWNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVwbHlBbGwgfSBmcm9tICcuL2ljb25zL3JlcGx5LWFsbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlcGx5IH0gZnJvbSAnLi9pY29ucy9yZXBseS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJld2luZCB9IGZyb20gJy4vaWNvbnMvcmV3aW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmliYm9uIH0gZnJvbSAnLi9pY29ucy9yaWJib24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSb2NrZXQgfSBmcm9tICcuL2ljb25zL3JvY2tldC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJvY2tpbmdDaGFpciB9IGZyb20gJy4vaWNvbnMvcm9ja2luZy1jaGFpci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJvbGxlckNvYXN0ZXIgfSBmcm9tICcuL2ljb25zL3JvbGxlci1jb2FzdGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUm9zZSB9IGZyb20gJy4vaWNvbnMvcm9zZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJvdGF0ZTNELCBkZWZhdWx0IGFzIFJvdGF0ZTNkIH0gZnJvbSAnLi9pY29ucy9yb3RhdGUtM2QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSb3RhdGVDY3dLZXkgfSBmcm9tICcuL2ljb25zL3JvdGF0ZS1jY3cta2V5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUm90YXRlQ2N3U3F1YXJlIH0gZnJvbSAnLi9pY29ucy9yb3RhdGUtY2N3LXNxdWFyZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJvdGF0ZUNjdyB9IGZyb20gJy4vaWNvbnMvcm90YXRlLWNjdy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJvdGF0ZUN3U3F1YXJlIH0gZnJvbSAnLi9pY29ucy9yb3RhdGUtY3ctc3F1YXJlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUm90YXRlQ3cgfSBmcm9tICcuL2ljb25zL3JvdGF0ZS1jdy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJvdXRlIH0gZnJvbSAnLi9pY29ucy9yb3V0ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJvdXRlT2ZmIH0gZnJvbSAnLi9pY29ucy9yb3V0ZS1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSb3V0ZXIgfSBmcm9tICcuL2ljb25zL3JvdXRlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJvd3MsIGRlZmF1bHQgYXMgUm93czIgfSBmcm9tICcuL2ljb25zL3Jvd3MtMi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhbmVsc1RvcEJvdHRvbSwgZGVmYXVsdCBhcyBSb3dzMyB9IGZyb20gJy4vaWNvbnMvcm93cy0zLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUm93czQgfSBmcm9tICcuL2ljb25zL3Jvd3MtNC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJzcyB9IGZyb20gJy4vaWNvbnMvcnNzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUnVsZXJEaW1lbnNpb25MaW5lIH0gZnJvbSAnLi9pY29ucy9ydWxlci1kaW1lbnNpb24tbGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJ1bGVyIH0gZnJvbSAnLi9pY29ucy9ydWxlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJ1c3NpYW5SdWJsZSB9IGZyb20gJy4vaWNvbnMvcnVzc2lhbi1ydWJsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNhaWxib2F0IH0gZnJvbSAnLi9pY29ucy9zYWlsYm9hdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNhbGFkIH0gZnJvbSAnLi9pY29ucy9zYWxhZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNhbmR3aWNoIH0gZnJvbSAnLi9pY29ucy9zYW5kd2ljaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNhdGVsbGl0ZURpc2ggfSBmcm9tICcuL2ljb25zL3NhdGVsbGl0ZS1kaXNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2F0ZWxsaXRlIH0gZnJvbSAnLi9pY29ucy9zYXRlbGxpdGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTYXVkaVJpeWFsIH0gZnJvbSAnLi9pY29ucy9zYXVkaS1yaXlhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNhdmVBbGwgfSBmcm9tICcuL2ljb25zL3NhdmUtYWxsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2F2ZU9mZiB9IGZyb20gJy4vaWNvbnMvc2F2ZS1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTYXZlIH0gZnJvbSAnLi9pY29ucy9zYXZlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2NhbGUzRCwgZGVmYXVsdCBhcyBTY2FsZTNkIH0gZnJvbSAnLi9pY29ucy9zY2FsZS0zZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjYWxlIH0gZnJvbSAnLi9pY29ucy9zY2FsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjYWxpbmcgfSBmcm9tICcuL2ljb25zL3NjYWxpbmcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTY2FuRXllIH0gZnJvbSAnLi9pY29ucy9zY2FuLWV5ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjYW5CYXJjb2RlIH0gZnJvbSAnLi9pY29ucy9zY2FuLWJhcmNvZGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTY2FuRmFjZSB9IGZyb20gJy4vaWNvbnMvc2Nhbi1mYWNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2NhbkhlYXJ0IH0gZnJvbSAnLi9pY29ucy9zY2FuLWhlYXJ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2NhbkxpbmUgfSBmcm9tICcuL2ljb25zL3NjYW4tbGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjYW5RckNvZGUgfSBmcm9tICcuL2ljb25zL3NjYW4tcXItY29kZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjYW5TZWFyY2ggfSBmcm9tICcuL2ljb25zL3NjYW4tc2VhcmNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2NhblRleHQgfSBmcm9tICcuL2ljb25zL3NjYW4tdGV4dC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjYW4gfSBmcm9tICcuL2ljb25zL3NjYW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTY2hvb2wgfSBmcm9tICcuL2ljb25zL3NjaG9vbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjaXNzb3JzTGluZURhc2hlZCB9IGZyb20gJy4vaWNvbnMvc2Npc3NvcnMtbGluZS1kYXNoZWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTY2lzc29ycyB9IGZyb20gJy4vaWNvbnMvc2Npc3NvcnMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTY29vdGVyIH0gZnJvbSAnLi9pY29ucy9zY29vdGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2NyZWVuU2hhcmVPZmYgfSBmcm9tICcuL2ljb25zL3NjcmVlbi1zaGFyZS1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTY3JlZW5TaGFyZSB9IGZyb20gJy4vaWNvbnMvc2NyZWVuLXNoYXJlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2Nyb2xsVGV4dCB9IGZyb20gJy4vaWNvbnMvc2Nyb2xsLXRleHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTY3JvbGwgfSBmcm9tICcuL2ljb25zL3Njcm9sbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlYXJjaEFsZXJ0IH0gZnJvbSAnLi9pY29ucy9zZWFyY2gtYWxlcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWFyY2hDb2RlIH0gZnJvbSAnLi9pY29ucy9zZWFyY2gtY29kZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlYXJjaENoZWNrIH0gZnJvbSAnLi9pY29ucy9zZWFyY2gtY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWFyY2hTbGFzaCB9IGZyb20gJy4vaWNvbnMvc2VhcmNoLXNsYXNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VhcmNoWCB9IGZyb20gJy4vaWNvbnMvc2VhcmNoLXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWFyY2ggfSBmcm9tICcuL2ljb25zL3NlYXJjaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlbmRIb3Jpem9uYWwsIGRlZmF1bHQgYXMgU2VuZEhvcml6b250YWwgfSBmcm9tICcuL2ljb25zL3NlbmQtaG9yaXpvbnRhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlY3Rpb24gfSBmcm9tICcuL2ljb25zL3NlY3Rpb24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZW5kVG9CYWNrIH0gZnJvbSAnLi9pY29ucy9zZW5kLXRvLWJhY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZW5kIH0gZnJvbSAnLi9pY29ucy9zZW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VwYXJhdG9ySG9yaXpvbnRhbCB9IGZyb20gJy4vaWNvbnMvc2VwYXJhdG9yLWhvcml6b250YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZXBhcmF0b3JWZXJ0aWNhbCB9IGZyb20gJy4vaWNvbnMvc2VwYXJhdG9yLXZlcnRpY2FsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VydmVyQ29nIH0gZnJvbSAnLi9pY29ucy9zZXJ2ZXItY29nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VydmVyQ3Jhc2ggfSBmcm9tICcuL2ljb25zL3NlcnZlci1jcmFzaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlcnZlck9mZiB9IGZyb20gJy4vaWNvbnMvc2VydmVyLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlcnZlciB9IGZyb20gJy4vaWNvbnMvc2VydmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2V0dGluZ3MyIH0gZnJvbSAnLi9pY29ucy9zZXR0aW5ncy0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2V0dGluZ3MgfSBmcm9tICcuL2ljb25zL3NldHRpbmdzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2hhcGVzIH0gZnJvbSAnLi9pY29ucy9zaGFwZXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGFyZTIgfSBmcm9tICcuL2ljb25zL3NoYXJlLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGFyZSB9IGZyb20gJy4vaWNvbnMvc2hhcmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGVldCB9IGZyb20gJy4vaWNvbnMvc2hlZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGVsbCB9IGZyb20gJy4vaWNvbnMvc2hlbGwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGllbGRBbGVydCB9IGZyb20gJy4vaWNvbnMvc2hpZWxkLWFsZXJ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2hpZWxkQmFuIH0gZnJvbSAnLi9pY29ucy9zaGllbGQtYmFuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2hpZWxkQ2hlY2sgfSBmcm9tICcuL2ljb25zL3NoaWVsZC1jaGVjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNoaWVsZEVsbGlwc2lzIH0gZnJvbSAnLi9pY29ucy9zaGllbGQtZWxsaXBzaXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGllbGRIYWxmIH0gZnJvbSAnLi9pY29ucy9zaGllbGQtaGFsZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNoaWVsZE1pbnVzIH0gZnJvbSAnLi9pY29ucy9zaGllbGQtbWludXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGllbGRPZmYgfSBmcm9tICcuL2ljb25zL3NoaWVsZC1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGllbGRQbHVzIH0gZnJvbSAnLi9pY29ucy9zaGllbGQtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNoaWVsZFF1ZXN0aW9uLCBkZWZhdWx0IGFzIFNoaWVsZFF1ZXN0aW9uTWFyayB9IGZyb20gJy4vaWNvbnMvc2hpZWxkLXF1ZXN0aW9uLW1hcmsuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGllbGRVc2VyIH0gZnJvbSAnLi9pY29ucy9zaGllbGQtdXNlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNoaWVsZENsb3NlLCBkZWZhdWx0IGFzIFNoaWVsZFggfSBmcm9tICcuL2ljb25zL3NoaWVsZC14LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2hpZWxkIH0gZnJvbSAnLi9pY29ucy9zaGllbGQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGlwV2hlZWwgfSBmcm9tICcuL2ljb25zL3NoaXAtd2hlZWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaGlwIH0gZnJvbSAnLi9pY29ucy9zaGlwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2hpcnQgfSBmcm9tICcuL2ljb25zL3NoaXJ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2hvcHBpbmdCYWcgfSBmcm9tICcuL2ljb25zL3Nob3BwaW5nLWJhZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNob3BwaW5nQmFza2V0IH0gZnJvbSAnLi9pY29ucy9zaG9wcGluZy1iYXNrZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaG9wcGluZ0NhcnQgfSBmcm9tICcuL2ljb25zL3Nob3BwaW5nLWNhcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaG92ZWwgfSBmcm9tICcuL2ljb25zL3Nob3ZlbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNob3dlckhlYWQgfSBmcm9tICcuL2ljb25zL3Nob3dlci1oZWFkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2hyZWRkZXIgfSBmcm9tICcuL2ljb25zL3NocmVkZGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2hyaW1wIH0gZnJvbSAnLi9pY29ucy9zaHJpbXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaHJpbmsgfSBmcm9tICcuL2ljb25zL3Nocmluay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNocnViIH0gZnJvbSAnLi9pY29ucy9zaHJ1Yi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNodWZmbGUgfSBmcm9tICcuL2ljb25zL3NodWZmbGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaWduYWxIaWdoIH0gZnJvbSAnLi9pY29ucy9zaWduYWwtaGlnaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNpZ21hIH0gZnJvbSAnLi9pY29ucy9zaWdtYS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNpZ25hbExvdyB9IGZyb20gJy4vaWNvbnMvc2lnbmFsLWxvdy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNpZ25hbE1lZGl1bSB9IGZyb20gJy4vaWNvbnMvc2lnbmFsLW1lZGl1bS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNpZ25hbFplcm8gfSBmcm9tICcuL2ljb25zL3NpZ25hbC16ZXJvLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2lnbmFsIH0gZnJvbSAnLi9pY29ucy9zaWduYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaWduYXR1cmUgfSBmcm9tICcuL2ljb25zL3NpZ25hdHVyZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNpZ25wb3N0QmlnIH0gZnJvbSAnLi9pY29ucy9zaWducG9zdC1iaWcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaWducG9zdCB9IGZyb20gJy4vaWNvbnMvc2lnbnBvc3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaXJlbiB9IGZyb20gJy4vaWNvbnMvc2lyZW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTa2lwQmFjayB9IGZyb20gJy4vaWNvbnMvc2tpcC1iYWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2t1bGwgfSBmcm9tICcuL2ljb25zL3NrdWxsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2tpcEZvcndhcmQgfSBmcm9tICcuL2ljb25zL3NraXAtZm9yd2FyZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNsYWNrIH0gZnJvbSAnLi9pY29ucy9zbGFjay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNsYXNoIH0gZnJvbSAnLi9pY29ucy9zbGFzaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNsaWNlIH0gZnJvbSAnLi9pY29ucy9zbGljZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNsaWRlcnNIb3Jpem9udGFsIH0gZnJvbSAnLi9pY29ucy9zbGlkZXJzLWhvcml6b250YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTbGlkZXJzLCBkZWZhdWx0IGFzIFNsaWRlcnNWZXJ0aWNhbCB9IGZyb20gJy4vaWNvbnMvc2xpZGVycy12ZXJ0aWNhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNtYXJ0cGhvbmVDaGFyZ2luZyB9IGZyb20gJy4vaWNvbnMvc21hcnRwaG9uZS1jaGFyZ2luZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNtYXJ0cGhvbmVOZmMgfSBmcm9tICcuL2ljb25zL3NtYXJ0cGhvbmUtbmZjLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU21hcnRwaG9uZSB9IGZyb20gJy4vaWNvbnMvc21hcnRwaG9uZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNtaWxlUGx1cyB9IGZyb20gJy4vaWNvbnMvc21pbGUtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNtaWxlIH0gZnJvbSAnLi9pY29ucy9zbWlsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNuYWlsIH0gZnJvbSAnLi9pY29ucy9zbmFpbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNub3dmbGFrZSB9IGZyb20gJy4vaWNvbnMvc25vd2ZsYWtlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU29hcERpc3BlbnNlckRyb3BsZXQgfSBmcm9tICcuL2ljb25zL3NvYXAtZGlzcGVuc2VyLWRyb3BsZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTb2ZhIH0gZnJvbSAnLi9pY29ucy9zb2ZhLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU29sYXJQYW5lbCB9IGZyb20gJy4vaWNvbnMvc29sYXItcGFuZWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTb3VwIH0gZnJvbSAnLi9pY29ucy9zb3VwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BhY2UgfSBmcm9tICcuL2ljb25zL3NwYWNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BhZGUgfSBmcm9tICcuL2ljb25zL3NwYWRlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BhcmtsZSB9IGZyb20gJy4vaWNvbnMvc3BhcmtsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwYXJrbGVzLCBkZWZhdWx0IGFzIFN0YXJzIH0gZnJvbSAnLi9pY29ucy9zcGFya2xlcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwZWFrZXIgfSBmcm9tICcuL2ljb25zL3NwZWFrZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcGVlY2ggfSBmcm9tICcuL2ljb25zL3NwZWVjaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwZWxsQ2hlY2syIH0gZnJvbSAnLi9pY29ucy9zcGVsbC1jaGVjay0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BlbGxDaGVjayB9IGZyb20gJy4vaWNvbnMvc3BlbGwtY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcGxpbmVQb2ludGVyIH0gZnJvbSAnLi9pY29ucy9zcGxpbmUtcG9pbnRlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwbGluZSB9IGZyb20gJy4vaWNvbnMvc3BsaW5lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BsaXQgfSBmcm9tICcuL2ljb25zL3NwbGl0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3Bvb2wgfSBmcm9tICcuL2ljb25zL3Nwb29sLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BvdGxpZ2h0IH0gZnJvbSAnLi9pY29ucy9zcG90bGlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcHJheUNhbiB9IGZyb20gJy4vaWNvbnMvc3ByYXktY2FuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3Byb3V0IH0gZnJvbSAnLi9pY29ucy9zcHJvdXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBY3Rpdml0eVNxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVBY3Rpdml0eSB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLWFjdGl2aXR5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dEb3duTGVmdFNxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVBcnJvd0Rvd25MZWZ0IH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtYXJyb3ctZG93bi1sZWZ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dEb3duUmlnaHRTcXVhcmUsIGRlZmF1bHQgYXMgU3F1YXJlQXJyb3dEb3duUmlnaHQgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1hcnJvdy1kb3duLXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dEb3duU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZUFycm93RG93biB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLWFycm93LWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd0xlZnRTcXVhcmUsIGRlZmF1bHQgYXMgU3F1YXJlQXJyb3dMZWZ0IH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtYXJyb3ctbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93RG93bkxlZnRGcm9tU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZUFycm93T3V0RG93bkxlZnQgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtZG93bi1sZWZ0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZUFycm93T3V0RG93blJpZ2h0IH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LWRvd24tcmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd1VwTGVmdEZyb21TcXVhcmUsIGRlZmF1bHQgYXMgU3F1YXJlQXJyb3dPdXRVcExlZnQgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1hcnJvdy1vdXQtdXAtbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFycm93VXBSaWdodEZyb21TcXVhcmUsIGRlZmF1bHQgYXMgU3F1YXJlQXJyb3dPdXRVcFJpZ2h0IH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtYXJyb3ctb3V0LXVwLXJpZ2h0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXJyb3dSaWdodFNxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVBcnJvd1JpZ2h0IH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtYXJyb3ctcmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd1VwTGVmdFNxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVBcnJvd1VwTGVmdCB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLWFycm93LXVwLWxlZnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd1VwUmlnaHRTcXVhcmUsIGRlZmF1bHQgYXMgU3F1YXJlQXJyb3dVcFJpZ2h0IH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtYXJyb3ctdXAtcmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJvd1VwU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZUFycm93VXAgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1hcnJvdy11cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFzdGVyaXNrU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZUFzdGVyaXNrIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtYXN0ZXJpc2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTY2lzc29yc1NxdWFyZURhc2hlZEJvdHRvbSwgZGVmYXVsdCBhcyBTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29ycyB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLWJvdHRvbS1kYXNoZWQtc2Npc3NvcnMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHYW50dENoYXJ0U3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZUNoYXJ0R2FudHQsIGRlZmF1bHQgYXMgU3F1YXJlR2FudHRDaGFydCB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLWNoYXJ0LWdhbnR0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hlY2tTcXVhcmUyLCBkZWZhdWx0IGFzIFNxdWFyZUNoZWNrIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja1NxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVDaGVja0JpZyB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLWNoZWNrLWJpZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZXZyb25Eb3duU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZUNoZXZyb25Eb3duIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtY2hldnJvbi1kb3duLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hldnJvbkxlZnRTcXVhcmUsIGRlZmF1bHQgYXMgU3F1YXJlQ2hldnJvbkxlZnQgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1jaGV2cm9uLWxlZnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGV2cm9uUmlnaHRTcXVhcmUsIGRlZmF1bHQgYXMgU3F1YXJlQ2hldnJvblJpZ2h0IH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtY2hldnJvbi1yaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZXZyb25VcFNxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVDaGV2cm9uVXAgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1jaGV2cm9uLXVwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29kZVNxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVDb2RlIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtY29kZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNxdWFyZURhc2hlZEJvdHRvbUNvZGUgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1kYXNoZWQtYm90dG9tLWNvZGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcXVhcmVEYXNoZWRCb3R0b20gfSBmcm9tICcuL2ljb25zL3NxdWFyZS1kYXNoZWQtYm90dG9tLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgS2FuYmFuU3F1YXJlRGFzaGVkLCBkZWZhdWx0IGFzIFNxdWFyZURhc2hlZEthbmJhbiB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLWRhc2hlZC1rYW5iYW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb3VzZVBvaW50ZXJTcXVhcmVEYXNoZWQsIGRlZmF1bHQgYXMgU3F1YXJlRGFzaGVkTW91c2VQb2ludGVyIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtZGFzaGVkLW1vdXNlLXBvaW50ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcXVhcmVEYXNoZWRUb3BTb2xpZCB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLWRhc2hlZC10b3Atc29saWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb3hTZWxlY3QsIGRlZmF1bHQgYXMgU3F1YXJlRGFzaGVkIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtZGFzaGVkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGl2aWRlU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZURpdmlkZSB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLWRpdmlkZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERvdFNxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVEb3QgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1kb3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFcXVhbFNxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVFcXVhbCB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLWVxdWFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRnVuY3Rpb25TcXVhcmUsIGRlZmF1bHQgYXMgU3F1YXJlRnVuY3Rpb24gfSBmcm9tICcuL2ljb25zL3NxdWFyZS1mdW5jdGlvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEthbmJhblNxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVLYW5iYW4gfSBmcm9tICcuL2ljb25zL3NxdWFyZS1rYW5iYW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaWJyYXJ5U3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZUxpYnJhcnkgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1saWJyYXJ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTVNxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVNIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtbS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lbnVTcXVhcmUsIGRlZmF1bHQgYXMgU3F1YXJlTWVudSB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLW1lbnUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNaW51c1NxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVNaW51cyB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLW1pbnVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSW5zcGVjdCwgZGVmYXVsdCBhcyBTcXVhcmVNb3VzZVBvaW50ZXIgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1tb3VzZS1wb2ludGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFya2luZ1NxdWFyZU9mZiwgZGVmYXVsdCBhcyBTcXVhcmVQYXJraW5nT2ZmIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtcGFya2luZy1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYXJraW5nU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZVBhcmtpbmcgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1wYXJraW5nLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWRpdCwgZGVmYXVsdCBhcyBQZW5Cb3gsIGRlZmF1bHQgYXMgUGVuU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZVBlbiB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLXBlbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNxdWFyZVBhdXNlIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtcGF1c2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQZXJjZW50U3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZVBlcmNlbnQgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1wZXJjZW50LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGlTcXVhcmUsIGRlZmF1bHQgYXMgU3F1YXJlUGkgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1waS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBpbGNyb3dTcXVhcmUsIGRlZmF1bHQgYXMgU3F1YXJlUGlsY3JvdyB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLXBpbGNyb3cuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQbGF5U3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZVBsYXkgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1wbGF5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGx1c1NxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVQbHVzIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvd2VyU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZVBvd2VyIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtcG93ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcXVhcmVSYWRpY2FsIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtcmFkaWNhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjaXNzb3JzU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZVNjaXNzb3JzIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtc2Npc3NvcnMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcXVhcmVSb3VuZENvcm5lciB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLXJvdW5kLWNvcm5lci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNpZ21hU3F1YXJlLCBkZWZhdWx0IGFzIFNxdWFyZVNpZ21hIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtc2lnbWEuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTbGFzaFNxdWFyZSwgZGVmYXVsdCBhcyBTcXVhcmVTbGFzaCB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLXNsYXNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BsaXRTcXVhcmVIb3Jpem9udGFsLCBkZWZhdWx0IGFzIFNxdWFyZVNwbGl0SG9yaXpvbnRhbCB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLXNwbGl0LWhvcml6b250YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcGxpdFNxdWFyZVZlcnRpY2FsLCBkZWZhdWx0IGFzIFNxdWFyZVNwbGl0VmVydGljYWwgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1zcGxpdC12ZXJ0aWNhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNxdWFyZVNxdWFyZSB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLXNxdWFyZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNxdWFyZVN0YWNrIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtc3RhY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcXVhcmVTdGFyIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUtc3Rhci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNxdWFyZVN0b3AgfSBmcm9tICcuL2ljb25zL3NxdWFyZS1zdG9wLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3F1YXJlVGVybWluYWwsIGRlZmF1bHQgYXMgVGVybWluYWxTcXVhcmUgfSBmcm9tICcuL2ljb25zL3NxdWFyZS10ZXJtaW5hbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNxdWFyZVVzZXJSb3VuZCwgZGVmYXVsdCBhcyBVc2VyU3F1YXJlMiB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLXVzZXItcm91bmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcXVhcmVVc2VyLCBkZWZhdWx0IGFzIFVzZXJTcXVhcmUgfSBmcm9tICcuL2ljb25zL3NxdWFyZS11c2VyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3F1YXJlWCwgZGVmYXVsdCBhcyBYU3F1YXJlIH0gZnJvbSAnLi9pY29ucy9zcXVhcmUteC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNxdWFyZSB9IGZyb20gJy4vaWNvbnMvc3F1YXJlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3F1YXJlc0V4Y2x1ZGUgfSBmcm9tICcuL2ljb25zL3NxdWFyZXMtZXhjbHVkZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNxdWFyZXNJbnRlcnNlY3QgfSBmcm9tICcuL2ljb25zL3NxdWFyZXMtaW50ZXJzZWN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3F1YXJlc1N1YnRyYWN0IH0gZnJvbSAnLi9pY29ucy9zcXVhcmVzLXN1YnRyYWN0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3F1aXJjbGVEYXNoZWQgfSBmcm9tICcuL2ljb25zL3NxdWlyY2xlLWRhc2hlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNxdWFyZXNVbml0ZSB9IGZyb20gJy4vaWNvbnMvc3F1YXJlcy11bml0ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNxdWlyY2xlIH0gZnJvbSAnLi9pY29ucy9zcXVpcmNsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNxdWlycmVsIH0gZnJvbSAnLi9pY29ucy9zcXVpcnJlbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0YW1wIH0gZnJvbSAnLi9pY29ucy9zdGFtcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0YXJPZmYgfSBmcm9tICcuL2ljb25zL3N0YXItb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3RhckhhbGYgfSBmcm9tICcuL2ljb25zL3N0YXItaGFsZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0YXIgfSBmcm9tICcuL2ljb25zL3N0YXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdGVwQmFjayB9IGZyb20gJy4vaWNvbnMvc3RlcC1iYWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3RlcEZvcndhcmQgfSBmcm9tICcuL2ljb25zL3N0ZXAtZm9yd2FyZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0ZXRob3Njb3BlIH0gZnJvbSAnLi9pY29ucy9zdGV0aG9zY29wZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0aWNrZXIgfSBmcm9tICcuL2ljb25zL3N0aWNrZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdG9uZSB9IGZyb20gJy4vaWNvbnMvc3RvbmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdGlja3lOb3RlIH0gZnJvbSAnLi9pY29ucy9zdGlja3ktbm90ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0b3JlIH0gZnJvbSAnLi9pY29ucy9zdG9yZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0cmV0Y2hIb3Jpem9udGFsIH0gZnJvbSAnLi9pY29ucy9zdHJldGNoLWhvcml6b250YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdHJldGNoVmVydGljYWwgfSBmcm9tICcuL2ljb25zL3N0cmV0Y2gtdmVydGljYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdHJpa2V0aHJvdWdoIH0gZnJvbSAnLi9pY29ucy9zdHJpa2V0aHJvdWdoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3Vic2NyaXB0IH0gZnJvbSAnLi9pY29ucy9zdWJzY3JpcHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdW5EaW0gfSBmcm9tICcuL2ljb25zL3N1bi1kaW0uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdW5NZWRpdW0gfSBmcm9tICcuL2ljb25zL3N1bi1tZWRpdW0uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdW5Nb29uIH0gZnJvbSAnLi9pY29ucy9zdW4tbW9vbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN1blNub3cgfSBmcm9tICcuL2ljb25zL3N1bi1zbm93LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3VuIH0gZnJvbSAnLi9pY29ucy9zdW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdW5yaXNlIH0gZnJvbSAnLi9pY29ucy9zdW5yaXNlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3Vuc2V0IH0gZnJvbSAnLi9pY29ucy9zdW5zZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdXBlcnNjcmlwdCB9IGZyb20gJy4vaWNvbnMvc3VwZXJzY3JpcHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTd2F0Y2hCb29rIH0gZnJvbSAnLi9pY29ucy9zd2F0Y2gtYm9vay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN3aXNzRnJhbmMgfSBmcm9tICcuL2ljb25zL3N3aXNzLWZyYW5jLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3dpdGNoQ2FtZXJhIH0gZnJvbSAnLi9pY29ucy9zd2l0Y2gtY2FtZXJhLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3dvcmQgfSBmcm9tICcuL2ljb25zL3N3b3JkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3dvcmRzIH0gZnJvbSAnLi9pY29ucy9zd29yZHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTeXJpbmdlIH0gZnJvbSAnLi9pY29ucy9zeXJpbmdlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFibGUyIH0gZnJvbSAnLi9pY29ucy90YWJsZS0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFibGVDZWxsc01lcmdlIH0gZnJvbSAnLi9pY29ucy90YWJsZS1jZWxscy1tZXJnZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhYmxlQ2VsbHNTcGxpdCB9IGZyb20gJy4vaWNvbnMvdGFibGUtY2VsbHMtc3BsaXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWJsZU9mQ29udGVudHMgfSBmcm9tICcuL2ljb25zL3RhYmxlLW9mLWNvbnRlbnRzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFibGVDb2x1bW5zU3BsaXQgfSBmcm9tICcuL2ljb25zL3RhYmxlLWNvbHVtbnMtc3BsaXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWJsZVByb3BlcnRpZXMgfSBmcm9tICcuL2ljb25zL3RhYmxlLXByb3BlcnRpZXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWJsZVJvd3NTcGxpdCB9IGZyb20gJy4vaWNvbnMvdGFibGUtcm93cy1zcGxpdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhYmxlIH0gZnJvbSAnLi9pY29ucy90YWJsZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhYmxldFNtYXJ0cGhvbmUgfSBmcm9tICcuL2ljb25zL3RhYmxldC1zbWFydHBob25lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFibGV0IH0gZnJvbSAnLi9pY29ucy90YWJsZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWJsZXRzIH0gZnJvbSAnLi9pY29ucy90YWJsZXRzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFnIH0gZnJvbSAnLi9pY29ucy90YWcuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWdzIH0gZnJvbSAnLi9pY29ucy90YWdzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFsbHkxIH0gZnJvbSAnLi9pY29ucy90YWxseS0xLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFsbHkyIH0gZnJvbSAnLi9pY29ucy90YWxseS0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFsbHkzIH0gZnJvbSAnLi9pY29ucy90YWxseS0zLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFsbHk0IH0gZnJvbSAnLi9pY29ucy90YWxseS00LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFsbHk1IH0gZnJvbSAnLi9pY29ucy90YWxseS01LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFuZ2VudCB9IGZyb20gJy4vaWNvbnMvdGFuZ2VudC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhcmdldCB9IGZyb20gJy4vaWNvbnMvdGFyZ2V0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGVsZXNjb3BlIH0gZnJvbSAnLi9pY29ucy90ZWxlc2NvcGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZW50VHJlZSB9IGZyb20gJy4vaWNvbnMvdGVudC10cmVlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGVudCB9IGZyb20gJy4vaWNvbnMvdGVudC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRlc3RUdWJlMiwgZGVmYXVsdCBhcyBUZXN0VHViZURpYWdvbmFsIH0gZnJvbSAnLi9pY29ucy90ZXN0LXR1YmUtZGlhZ29uYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXJtaW5hbCB9IGZyb20gJy4vaWNvbnMvdGVybWluYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXN0VHViZSB9IGZyb20gJy4vaWNvbnMvdGVzdC10dWJlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGVzdFR1YmVzIH0gZnJvbSAnLi9pY29ucy90ZXN0LXR1YmVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxpZ25DZW50ZXIsIGRlZmF1bHQgYXMgVGV4dEFsaWduQ2VudGVyIH0gZnJvbSAnLi9pY29ucy90ZXh0LWFsaWduLWNlbnRlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsaWduUmlnaHQsIGRlZmF1bHQgYXMgVGV4dEFsaWduRW5kIH0gZnJvbSAnLi9pY29ucy90ZXh0LWFsaWduLWVuZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsaWduSnVzdGlmeSwgZGVmYXVsdCBhcyBUZXh0QWxpZ25KdXN0aWZ5IH0gZnJvbSAnLi9pY29ucy90ZXh0LWFsaWduLWp1c3RpZnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGlnbkxlZnQsIGRlZmF1bHQgYXMgVGV4dCwgZGVmYXVsdCBhcyBUZXh0QWxpZ25TdGFydCB9IGZyb20gJy4vaWNvbnMvdGV4dC1hbGlnbi1zdGFydC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRleHRDdXJzb3JJbnB1dCB9IGZyb20gJy4vaWNvbnMvdGV4dC1jdXJzb3ItaW5wdXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0Q3Vyc29yIH0gZnJvbSAnLi9pY29ucy90ZXh0LWN1cnNvci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRleHRRdW90ZSB9IGZyb20gJy4vaWNvbnMvdGV4dC1xdW90ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExldHRlclRleHQsIGRlZmF1bHQgYXMgVGV4dEluaXRpYWwgfSBmcm9tICcuL2ljb25zL3RleHQtaW5pdGlhbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRleHRTZWFyY2ggfSBmcm9tICcuL2ljb25zL3RleHQtc2VhcmNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dFNlbGVjdCwgZGVmYXVsdCBhcyBUZXh0U2VsZWN0aW9uIH0gZnJvbSAnLi9pY29ucy90ZXh0LXNlbGVjdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRoZWF0ZXIgfSBmcm9tICcuL2ljb25zL3RoZWF0ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0V3JhcCwgZGVmYXVsdCBhcyBXcmFwVGV4dCB9IGZyb20gJy4vaWNvbnMvdGV4dC13cmFwLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGhlcm1vbWV0ZXJTbm93Zmxha2UgfSBmcm9tICcuL2ljb25zL3RoZXJtb21ldGVyLXNub3dmbGFrZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRoZXJtb21ldGVyU3VuIH0gZnJvbSAnLi9pY29ucy90aGVybW9tZXRlci1zdW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUaGVybW9tZXRlciB9IGZyb20gJy4vaWNvbnMvdGhlcm1vbWV0ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUaHVtYnNEb3duIH0gZnJvbSAnLi9pY29ucy90aHVtYnMtZG93bi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRodW1ic1VwIH0gZnJvbSAnLi9pY29ucy90aHVtYnMtdXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUaWNrZXRDaGVjayB9IGZyb20gJy4vaWNvbnMvdGlja2V0LWNoZWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGlja2V0TWludXMgfSBmcm9tICcuL2ljb25zL3RpY2tldC1taW51cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRpY2tldFBlcmNlbnQgfSBmcm9tICcuL2ljb25zL3RpY2tldC1wZXJjZW50LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGlja2V0UGx1cyB9IGZyb20gJy4vaWNvbnMvdGlja2V0LXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUaWNrZXRTbGFzaCB9IGZyb20gJy4vaWNvbnMvdGlja2V0LXNsYXNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGlja2V0WCB9IGZyb20gJy4vaWNvbnMvdGlja2V0LXguanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUaWNrZXQgfSBmcm9tICcuL2ljb25zL3RpY2tldC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRpY2tldHNQbGFuZSB9IGZyb20gJy4vaWNvbnMvdGlja2V0cy1wbGFuZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRpY2tldHMgfSBmcm9tICcuL2ljb25zL3RpY2tldHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUaW1lclJlc2V0IH0gZnJvbSAnLi9pY29ucy90aW1lci1yZXNldC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRpbWVyT2ZmIH0gZnJvbSAnLi9pY29ucy90aW1lci1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUaW1lciB9IGZyb20gJy4vaWNvbnMvdGltZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb2dnbGVMZWZ0IH0gZnJvbSAnLi9pY29ucy90b2dnbGUtbGVmdC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRvZ2dsZVJpZ2h0IH0gZnJvbSAnLi9pY29ucy90b2dnbGUtcmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb2lsZXQgfSBmcm9tICcuL2ljb25zL3RvaWxldC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRvb2xDYXNlIH0gZnJvbSAnLi9pY29ucy90b29sLWNhc2UuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb29sYm94IH0gZnJvbSAnLi9pY29ucy90b29sYm94LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG9ybmFkbyB9IGZyb20gJy4vaWNvbnMvdG9ybmFkby5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRvcnVzIH0gZnJvbSAnLi9pY29ucy90b3J1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRvdWNocGFkT2ZmIH0gZnJvbSAnLi9pY29ucy90b3VjaHBhZC1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb3VjaHBhZCB9IGZyb20gJy4vaWNvbnMvdG91Y2hwYWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb3dlckNvbnRyb2wgfSBmcm9tICcuL2ljb25zL3Rvd2VyLWNvbnRyb2wuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb3lCcmljayB9IGZyb20gJy4vaWNvbnMvdG95LWJyaWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJhZmZpY0NvbmUgfSBmcm9tICcuL2ljb25zL3RyYWZmaWMtY29uZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRyYWN0b3IgfSBmcm9tICcuL2ljb25zL3RyYWN0b3IuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmFpbkZyb250VHVubmVsIH0gZnJvbSAnLi9pY29ucy90cmFpbi1mcm9udC10dW5uZWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmFpbkZyb250IH0gZnJvbSAnLi9pY29ucy90cmFpbi1mcm9udC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRyYWluVHJhY2sgfSBmcm9tICcuL2ljb25zL3RyYWluLXRyYWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJhaW4sIGRlZmF1bHQgYXMgVHJhbUZyb250IH0gZnJvbSAnLi9pY29ucy90cmFtLWZyb250LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJhbnNnZW5kZXIgfSBmcm9tICcuL2ljb25zL3RyYW5zZ2VuZGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJhc2gyIH0gZnJvbSAnLi9pY29ucy90cmFzaC0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJhc2ggfSBmcm9tICcuL2ljb25zL3RyYXNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlZURlY2lkdW91cyB9IGZyb20gJy4vaWNvbnMvdHJlZS1kZWNpZHVvdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYWxtdHJlZSwgZGVmYXVsdCBhcyBUcmVlUGFsbSB9IGZyb20gJy4vaWNvbnMvdHJlZS1wYWxtLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlZVBpbmUgfSBmcm9tICcuL2ljb25zL3RyZWUtcGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRyZWVzIH0gZnJvbSAnLi9pY29ucy90cmVlcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRyZWxsbyB9IGZyb20gJy4vaWNvbnMvdHJlbGxvLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlbmRpbmdEb3duIH0gZnJvbSAnLi9pY29ucy90cmVuZGluZy1kb3duLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlbmRpbmdVcERvd24gfSBmcm9tICcuL2ljb25zL3RyZW5kaW5nLXVwLWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmVuZGluZ1VwIH0gZnJvbSAnLi9pY29ucy90cmVuZGluZy11cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsZXJ0VHJpYW5nbGUsIGRlZmF1bHQgYXMgVHJpYW5nbGVBbGVydCB9IGZyb20gJy4vaWNvbnMvdHJpYW5nbGUtYWxlcnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmlhbmdsZURhc2hlZCB9IGZyb20gJy4vaWNvbnMvdHJpYW5nbGUtZGFzaGVkLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJpYW5nbGVSaWdodCB9IGZyb20gJy4vaWNvbnMvdHJpYW5nbGUtcmlnaHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmlhbmdsZSB9IGZyb20gJy4vaWNvbnMvdHJpYW5nbGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcm9waHkgfSBmcm9tICcuL2ljb25zL3Ryb3BoeS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRydWNrRWxlY3RyaWMgfSBmcm9tICcuL2ljb25zL3RydWNrLWVsZWN0cmljLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJ1Y2sgfSBmcm9tICcuL2ljb25zL3RydWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHVya2lzaExpcmEgfSBmcm9tICcuL2ljb25zL3R1cmtpc2gtbGlyYS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFR1cm50YWJsZSB9IGZyb20gJy4vaWNvbnMvdHVybnRhYmxlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHVydGxlIH0gZnJvbSAnLi9pY29ucy90dXJ0bGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUdk1pbmltYWxQbGF5IH0gZnJvbSAnLi9pY29ucy90di1taW5pbWFsLXBsYXkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUdjIsIGRlZmF1bHQgYXMgVHZNaW5pbWFsIH0gZnJvbSAnLi9pY29ucy90di1taW5pbWFsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHYgfSBmcm9tICcuL2ljb25zL3R2LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHdpdGNoIH0gZnJvbSAnLi9pY29ucy90d2l0Y2guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUd2l0dGVyIH0gZnJvbSAnLi9pY29ucy90d2l0dGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHlwZU91dGxpbmUgfSBmcm9tICcuL2ljb25zL3R5cGUtb3V0bGluZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFR5cGUgfSBmcm9tICcuL2ljb25zL3R5cGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVbWJyZWxsYU9mZiB9IGZyb20gJy4vaWNvbnMvdW1icmVsbGEtb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVW1icmVsbGEgfSBmcm9tICcuL2ljb25zL3VtYnJlbGxhLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVW5kZXJsaW5lIH0gZnJvbSAnLi9pY29ucy91bmRlcmxpbmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVbmRvMiB9IGZyb20gJy4vaWNvbnMvdW5kby0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVW5kb0RvdCB9IGZyb20gJy4vaWNvbnMvdW5kby1kb3QuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVbmRvIH0gZnJvbSAnLi9pY29ucy91bmRvLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVW5mb2xkSG9yaXpvbnRhbCB9IGZyb20gJy4vaWNvbnMvdW5mb2xkLWhvcml6b250YWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVbmZvbGRWZXJ0aWNhbCB9IGZyb20gJy4vaWNvbnMvdW5mb2xkLXZlcnRpY2FsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVW5ncm91cCB9IGZyb20gJy4vaWNvbnMvdW5ncm91cC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjaG9vbDIsIGRlZmF1bHQgYXMgVW5pdmVyc2l0eSB9IGZyb20gJy4vaWNvbnMvdW5pdmVyc2l0eS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFVubGluazIgfSBmcm9tICcuL2ljb25zL3VubGluay0yLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVW5saW5rIH0gZnJvbSAnLi9pY29ucy91bmxpbmsuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVbnBsdWcgfSBmcm9tICcuL2ljb25zL3VucGx1Zy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFVzYiB9IGZyb20gJy4vaWNvbnMvdXNiLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVXBsb2FkIH0gZnJvbSAnLi9pY29ucy91cGxvYWQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyQ2hlY2sgfSBmcm9tICcuL2ljb25zL3VzZXItY2hlY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyQ29nIH0gZnJvbSAnLi9pY29ucy91c2VyLWNvZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFVzZXJMb2NrIH0gZnJvbSAnLi9pY29ucy91c2VyLWxvY2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyTWludXMgfSBmcm9tICcuL2ljb25zL3VzZXItbWludXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyUGVuIH0gZnJvbSAnLi9pY29ucy91c2VyLXBlbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFVzZXJQbHVzIH0gZnJvbSAnLi9pY29ucy91c2VyLXBsdXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyQ2hlY2syLCBkZWZhdWx0IGFzIFVzZXJSb3VuZENoZWNrIH0gZnJvbSAnLi9pY29ucy91c2VyLXJvdW5kLWNoZWNrLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVXNlckNvZzIsIGRlZmF1bHQgYXMgVXNlclJvdW5kQ29nIH0gZnJvbSAnLi9pY29ucy91c2VyLXJvdW5kLWNvZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFVzZXJNaW51czIsIGRlZmF1bHQgYXMgVXNlclJvdW5kTWludXMgfSBmcm9tICcuL2ljb25zL3VzZXItcm91bmQtbWludXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyUm91bmRQZW4gfSBmcm9tICcuL2ljb25zL3VzZXItcm91bmQtcGVuLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVXNlclBsdXMyLCBkZWZhdWx0IGFzIFVzZXJSb3VuZFBsdXMgfSBmcm9tICcuL2ljb25zL3VzZXItcm91bmQtcGx1cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFVzZXJSb3VuZFNlYXJjaCB9IGZyb20gJy4vaWNvbnMvdXNlci1yb3VuZC1zZWFyY2guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyMiwgZGVmYXVsdCBhcyBVc2VyUm91bmQgfSBmcm9tICcuL2ljb25zL3VzZXItcm91bmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyUm91bmRYLCBkZWZhdWx0IGFzIFVzZXJYMiB9IGZyb20gJy4vaWNvbnMvdXNlci1yb3VuZC14LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVXNlclNlYXJjaCB9IGZyb20gJy4vaWNvbnMvdXNlci1zZWFyY2guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyU3RhciB9IGZyb20gJy4vaWNvbnMvdXNlci1zdGFyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVXNlclggfSBmcm9tICcuL2ljb25zL3VzZXIteC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFVzZXIgfSBmcm9tICcuL2ljb25zL3VzZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VyczIsIGRlZmF1bHQgYXMgVXNlcnNSb3VuZCB9IGZyb20gJy4vaWNvbnMvdXNlcnMtcm91bmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBVc2VycyB9IGZyb20gJy4vaWNvbnMvdXNlcnMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3JrS25pZmVDcm9zc2VkLCBkZWZhdWx0IGFzIFV0ZW5zaWxzQ3Jvc3NlZCB9IGZyb20gJy4vaWNvbnMvdXRlbnNpbHMtY3Jvc3NlZC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvcmtLbmlmZSwgZGVmYXVsdCBhcyBVdGVuc2lscyB9IGZyb20gJy4vaWNvbnMvdXRlbnNpbHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWYW4gfSBmcm9tICcuL2ljb25zL3Zhbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFV0aWxpdHlQb2xlIH0gZnJvbSAnLi9pY29ucy91dGlsaXR5LXBvbGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWYXJpYWJsZSB9IGZyb20gJy4vaWNvbnMvdmFyaWFibGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWYXVsdCB9IGZyb20gJy4vaWNvbnMvdmF1bHQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWZWN0b3JTcXVhcmUgfSBmcm9tICcuL2ljb25zL3ZlY3Rvci1zcXVhcmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWZWdhbiB9IGZyb20gJy4vaWNvbnMvdmVnYW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWZW5ldGlhbk1hc2sgfSBmcm9tICcuL2ljb25zL3ZlbmV0aWFuLW1hc2suanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWZW51cyB9IGZyb20gJy4vaWNvbnMvdmVudXMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWZW51c0FuZE1hcnMgfSBmcm9tICcuL2ljb25zL3ZlbnVzLWFuZC1tYXJzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVmlicmF0ZU9mZiB9IGZyb20gJy4vaWNvbnMvdmlicmF0ZS1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWaWJyYXRlIH0gZnJvbSAnLi9pY29ucy92aWJyYXRlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVmlkZW9PZmYgfSBmcm9tICcuL2ljb25zL3ZpZGVvLW9mZi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFZpZGVvIH0gZnJvbSAnLi9pY29ucy92aWRlby5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFZvaWNlbWFpbCB9IGZyb20gJy4vaWNvbnMvdm9pY2VtYWlsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVmlkZW90YXBlIH0gZnJvbSAnLi9pY29ucy92aWRlb3RhcGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWaWV3IH0gZnJvbSAnLi9pY29ucy92aWV3LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVm9sbGV5YmFsbCB9IGZyb20gJy4vaWNvbnMvdm9sbGV5YmFsbC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFZvbHVtZTEgfSBmcm9tICcuL2ljb25zL3ZvbHVtZS0xLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVm9sdW1lMiB9IGZyb20gJy4vaWNvbnMvdm9sdW1lLTIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWb2x1bWVPZmYgfSBmcm9tICcuL2ljb25zL3ZvbHVtZS1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBWb2x1bWVYIH0gZnJvbSAnLi9pY29ucy92b2x1bWUteC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFZvbHVtZSB9IGZyb20gJy4vaWNvbnMvdm9sdW1lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVm90ZSB9IGZyb20gJy4vaWNvbnMvdm90ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdhbGxldDIsIGRlZmF1bHQgYXMgV2FsbGV0TWluaW1hbCB9IGZyb20gJy4vaWNvbnMvd2FsbGV0LW1pbmltYWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXYWxsZXRDYXJkcyB9IGZyb20gJy4vaWNvbnMvd2FsbGV0LWNhcmRzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgV2FsbGV0IH0gZnJvbSAnLi9pY29ucy93YWxsZXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXYWxscGFwZXIgfSBmcm9tICcuL2ljb25zL3dhbGxwYXBlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdhbmQyLCBkZWZhdWx0IGFzIFdhbmRTcGFya2xlcyB9IGZyb20gJy4vaWNvbnMvd2FuZC1zcGFya2xlcy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdhbmQgfSBmcm9tICcuL2ljb25zL3dhbmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXYXJlaG91c2UgfSBmcm9tICcuL2ljb25zL3dhcmVob3VzZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdhc2hpbmdNYWNoaW5lIH0gZnJvbSAnLi9pY29ucy93YXNoaW5nLW1hY2hpbmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXYXRjaCB9IGZyb20gJy4vaWNvbnMvd2F0Y2guanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXYXZlc0Fycm93RG93biB9IGZyb20gJy4vaWNvbnMvd2F2ZXMtYXJyb3ctZG93bi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdhdmVzQXJyb3dVcCB9IGZyb20gJy4vaWNvbnMvd2F2ZXMtYXJyb3ctdXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXYXZlc0xhZGRlciB9IGZyb20gJy4vaWNvbnMvd2F2ZXMtbGFkZGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgV2F2ZXMgfSBmcm9tICcuL2ljb25zL3dhdmVzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgV2F5cG9pbnRzIH0gZnJvbSAnLi9pY29ucy93YXlwb2ludHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXZWJjYW0gfSBmcm9tICcuL2ljb25zL3dlYmNhbS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdlYmhvb2tPZmYgfSBmcm9tICcuL2ljb25zL3dlYmhvb2stb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgV2ViaG9vayB9IGZyb20gJy4vaWNvbnMvd2ViaG9vay5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdlaWdodFRpbGRlIH0gZnJvbSAnLi9pY29ucy93ZWlnaHQtdGlsZGUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXZWlnaHQgfSBmcm9tICcuL2ljb25zL3dlaWdodC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdoZWF0T2ZmIH0gZnJvbSAnLi9pY29ucy93aGVhdC1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXaGVhdCB9IGZyb20gJy4vaWNvbnMvd2hlYXQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXaG9sZVdvcmQgfSBmcm9tICcuL2ljb25zL3dob2xlLXdvcmQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXaWZpQ29nIH0gZnJvbSAnLi9pY29ucy93aWZpLWNvZy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdpZmlMb3cgfSBmcm9tICcuL2ljb25zL3dpZmktbG93LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgV2lmaUhpZ2ggfSBmcm9tICcuL2ljb25zL3dpZmktaGlnaC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdpZmlPZmYgfSBmcm9tICcuL2ljb25zL3dpZmktb2ZmLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgV2lmaVBlbiB9IGZyb20gJy4vaWNvbnMvd2lmaS1wZW4uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXaWZpU3luYyB9IGZyb20gJy4vaWNvbnMvd2lmaS1zeW5jLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgV2lmaVplcm8gfSBmcm9tICcuL2ljb25zL3dpZmktemVyby5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdpZmkgfSBmcm9tICcuL2ljb25zL3dpZmkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXaW5kQXJyb3dEb3duIH0gZnJvbSAnLi9pY29ucy93aW5kLWFycm93LWRvd24uanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXaW5kIH0gZnJvbSAnLi9pY29ucy93aW5kLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgV2luZU9mZiB9IGZyb20gJy4vaWNvbnMvd2luZS1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBXaW5lIH0gZnJvbSAnLi9pY29ucy93aW5lLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgV29ybSB9IGZyb20gJy4vaWNvbnMvd29ybS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdvcmtmbG93IH0gZnJvbSAnLi9pY29ucy93b3JrZmxvdy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFdyZW5jaCB9IGZyb20gJy4vaWNvbnMvd3JlbmNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgWCB9IGZyb20gJy4vaWNvbnMveC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFlvdXR1YmUgfSBmcm9tICcuL2ljb25zL3lvdXR1YmUuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBaYXBPZmYgfSBmcm9tICcuL2ljb25zL3phcC1vZmYuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBaYXAgfSBmcm9tICcuL2ljb25zL3phcC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFpvb21JbiB9IGZyb20gJy4vaWNvbnMvem9vbS1pbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFpvb21PdXQgfSBmcm9tICcuL2ljb25zL3pvb20tb3V0LmpzJztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWljb25zQW5kQWxpYXNlcy5qcy5tYXBcbiIsICJpbXBvcnQgcmVwbGFjZUVsZW1lbnQgZnJvbSAnLi9yZXBsYWNlRWxlbWVudCc7XG5pbXBvcnQgKiBhcyBpY29uQW5kQWxpYXNlcyBmcm9tICcuL2ljb25zQW5kQWxpYXNlcyc7XG5pbXBvcnQgeyBJY29ucywgU1ZHUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVJY29uc09wdGlvbnMge1xuICBpY29ucz86IEljb25zO1xuICBuYW1lQXR0cj86IHN0cmluZztcbiAgYXR0cnM/OiBTVkdQcm9wcztcbiAgcm9vdD86IEVsZW1lbnQgfCBEb2N1bWVudCB8IERvY3VtZW50RnJhZ21lbnQ7XG4gIGluVGVtcGxhdGVzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXBsYWNlcyBhbGwgZWxlbWVudHMgd2l0aCBtYXRjaGluZyBuYW1lQXR0ciB3aXRoIHRoZSBkZWZpbmVkIGljb25zXG4gKiBAcGFyYW0ge0NyZWF0ZUljb25zT3B0aW9uc30gb3B0aW9uc1xuICovXG5jb25zdCBjcmVhdGVJY29ucyA9ICh7XG4gIGljb25zID0ge30sXG4gIG5hbWVBdHRyID0gJ2RhdGEtbHVjaWRlJyxcbiAgYXR0cnMgPSB7fSxcbiAgcm9vdCA9IGRvY3VtZW50LFxuICBpblRlbXBsYXRlcyxcbn06IENyZWF0ZUljb25zT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGlmICghT2JqZWN0LnZhbHVlcyhpY29ucykubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJQbGVhc2UgcHJvdmlkZSBhbiBpY29ucyBvYmplY3QuXFxuSWYgeW91IHdhbnQgdG8gdXNlIGFsbCB0aGUgaWNvbnMgeW91IGNhbiBpbXBvcnQgaXQgbGlrZTpcXG4gYGltcG9ydCB7IGNyZWF0ZUljb25zLCBpY29ucyB9IGZyb20gJ2x1Y2lkZSc7XFxubHVjaWRlLmNyZWF0ZUljb25zKHtpY29uc30pO2BcIixcbiAgICApO1xuICB9XG5cbiAgaWYgKHR5cGVvZiByb290ID09PSAndW5kZWZpbmVkJykge1xuICAgIHRocm93IG5ldyBFcnJvcignYGNyZWF0ZUljb25zKClgIG9ubHkgd29ya3MgaW4gYSBicm93c2VyIGVudmlyb25tZW50LicpO1xuICB9XG5cbiAgY29uc3QgZWxlbWVudHNUb1JlcGxhY2UgPSBBcnJheS5mcm9tKHJvb3QucXVlcnlTZWxlY3RvckFsbChgWyR7bmFtZUF0dHJ9XWApKTtcblxuICBlbGVtZW50c1RvUmVwbGFjZS5mb3JFYWNoKChlbGVtZW50KSA9PiByZXBsYWNlRWxlbWVudChlbGVtZW50LCB7IG5hbWVBdHRyLCBpY29ucywgYXR0cnMgfSkpO1xuXG4gIGlmIChpblRlbXBsYXRlcykge1xuICAgIGNvbnN0IHRlbXBsYXRlcyA9IEFycmF5LmZyb20ocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCd0ZW1wbGF0ZScpKTtcblxuICAgIHRlbXBsYXRlcy5mb3JFYWNoKCh0ZW1wbGF0ZSkgPT5cbiAgICAgIGNyZWF0ZUljb25zKHtcbiAgICAgICAgaWNvbnMsXG4gICAgICAgIG5hbWVBdHRyLFxuICAgICAgICBhdHRycyxcbiAgICAgICAgcm9vdDogdGVtcGxhdGUuY29udGVudCxcbiAgICAgICAgaW5UZW1wbGF0ZXMsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqIEB0b2RvOiByZW1vdmUgdGhpcyBibG9jayBpbiB2MS4wICovXG4gIGlmIChuYW1lQXR0ciA9PT0gJ2RhdGEtbHVjaWRlJykge1xuICAgIGNvbnN0IGRlcHJlY2F0ZWRFbGVtZW50cyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnW2ljb24tbmFtZV0nKTtcbiAgICBpZiAoZGVwcmVjYXRlZEVsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1tMdWNpZGVdIFNvbWUgaWNvbnMgd2VyZSBmb3VuZCB3aXRoIHRoZSBub3cgZGVwcmVjYXRlZCBpY29uLW5hbWUgYXR0cmlidXRlLiBUaGVzZSB3aWxsIHN0aWxsIGJlIHJlcGxhY2VkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYnV0IHdpbGwgbm8gbG9uZ2VyIGJlIHN1cHBvcnRlZCBpbiB2MS4wIGFuZCB5b3Ugc2hvdWxkIHN3aXRjaCB0byBkYXRhLWx1Y2lkZScsXG4gICAgICApO1xuICAgICAgQXJyYXkuZnJvbShkZXByZWNhdGVkRWxlbWVudHMpLmZvckVhY2goKGVsZW1lbnQpID0+XG4gICAgICAgIHJlcGxhY2VFbGVtZW50KGVsZW1lbnQsIHsgbmFtZUF0dHI6ICdpY29uLW5hbWUnLCBpY29ucywgYXR0cnMgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IHsgY3JlYXRlSWNvbnMgfTtcblxuLypcbiAgQ3JlYXRlIEVsZW1lbnQgZnVuY3Rpb24gZXhwb3J0LlxuKi9cbmV4cG9ydCB7IGRlZmF1bHQgYXMgY3JlYXRlRWxlbWVudCB9IGZyb20gJy4vY3JlYXRlRWxlbWVudCc7XG5cbi8qXG4gSWNvbnMgZXhwb3J0cy5cbiovXG5leHBvcnQgeyBpY29uQW5kQWxpYXNlcyBhcyBpY29ucyB9O1xuZXhwb3J0ICogZnJvbSAnLi9pY29ucyc7XG5leHBvcnQgKiBmcm9tICcuL2FsaWFzZXMnO1xuXG4vKlxuIFR5cGVzIGV4cG9ydHMuXG4qL1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iLCAiaW1wb3J0IHsgaHRtbCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBpY29ucywgdHlwZSBJY29uV2l0aFByZWZpeCB9IGZyb20gJy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0ICogYXMgbHVjaWRlSWNvbnMgZnJvbSAnbHVjaWRlJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4ge1xuICAvLyBHcm91cCBGb250QXdlc29tZSBpY29ucyBieSB0eXBlXG4gIGNvbnN0IGZhSWNvbnMgPSBPYmplY3Qua2V5cyhpY29ucy5mYSk7XG4gIFxuICAvLyBFeHRyYWN0IEx1Y2lkZSBpY29ucyBmcm9tIHRoZSBsdWNpZGVJY29ucyBvYmplY3QgZGlyZWN0bHlcbiAgLy8gTG9nIHRoZSBmaXJzdCBmZXcga2V5cyB0byB1bmRlcnN0YW5kIHRoZSBzdHJ1Y3R1cmVcbiAgY29uc29sZS5sb2coJ0ZpcnN0IGZldyBMdWNpZGUga2V5czonLCBPYmplY3Qua2V5cyhsdWNpZGVJY29ucykuc2xpY2UoMCwgNSkpO1xuICBcbiAgLy8gR2V0IGFsbCBpY29uIGZ1bmN0aW9ucyBmcm9tIGx1Y2lkZUljb25zICh0aGV5IGhhdmUgUGFzY2FsQ2FzZSBuYW1lcylcbiAgY29uc3QgbHVjaWRlSWNvbnNMaXN0ID0gT2JqZWN0LmtleXMobHVjaWRlSWNvbnMpXG4gICAgLmZpbHRlcihrZXkgPT4ge1xuICAgICAgLy8gU2tpcCB1dGlsaXR5IGZ1bmN0aW9ucyBhbmQgZm9jdXMgb24gaWNvbiBjb21wb25lbnRzIChmaXJzdCBsZXR0ZXIgaXMgdXBwZXJjYXNlKVxuICAgICAgY29uc3QgaXNVcHBlcmNhc2VGaXJzdCA9IGtleVswXSA9PT0ga2V5WzBdLnRvVXBwZXJDYXNlKCkgJiYga2V5WzBdICE9PSBrZXlbMF0udG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGlzRnVuY3Rpb24gPSB0eXBlb2YgbHVjaWRlSWNvbnNba2V5XSA9PT0gJ2Z1bmN0aW9uJztcbiAgICAgIGNvbnN0IG5vdFV0aWxpdHkgPSAhWydjcmVhdGVFbGVtZW50JywgJ2NyZWF0ZUljb25zJywgJ2RlZmF1bHQnXS5pbmNsdWRlcyhrZXkpO1xuICAgICAgcmV0dXJuIGlzRnVuY3Rpb24gJiYgaXNVcHBlcmNhc2VGaXJzdCAmJiBub3RVdGlsaXR5O1xuICAgIH0pXG4gICAgLm1hcChwYXNjYWxOYW1lID0+IHtcbiAgICAgIC8vIENvbnZlcnQgUGFzY2FsQ2FzZSB0byBjYW1lbENhc2VcbiAgICAgIHJldHVybiBwYXNjYWxOYW1lLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgcGFzY2FsTmFtZS5zbGljZSgxKTtcbiAgICB9KTtcbiAgXG4gIC8vIExvZyBob3cgbWFueSBpY29ucyB3ZSBmb3VuZFxuICBjb25zb2xlLmxvZyhgRm91bmQgJHtsdWNpZGVJY29uc0xpc3QubGVuZ3RofSBMdWNpZGUgaWNvbnNgKTtcbiAgXG4gIC8vIElmIHdlIGRpZG4ndCBmaW5kIGFueSwgdHJ5IGFuIGFsdGVybmF0aXZlIGFwcHJvYWNoXG4gIGlmIChsdWNpZGVJY29uc0xpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgY29uc29sZS5sb2coJ1RyeWluZyBhbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBmaW5kIEx1Y2lkZSBpY29ucycpO1xuICAgIFxuICAgIC8vIFRyeSB0byBnZXQgaWNvbiBuYW1lcyBmcm9tIGEga25vd24gcHJvcGVydHkgaWYgYXZhaWxhYmxlXG4gICAgaWYgKGx1Y2lkZUljb25zLmljb25zKSB7XG4gICAgICBjb25zdCBpY29uU291cmNlID0gbHVjaWRlSWNvbnMuaWNvbnMgfHwge307XG4gICAgICBsdWNpZGVJY29uc0xpc3QucHVzaCguLi5PYmplY3Qua2V5cyhpY29uU291cmNlKSk7XG4gICAgICBjb25zb2xlLmxvZyhgRm91bmQgJHtsdWNpZGVJY29uc0xpc3QubGVuZ3RofSBpY29ucyB2aWEgYWx0ZXJuYXRpdmUgbWV0aG9kYCk7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5lIHRoZSBmdW5jdGlvbnMgaW4gVFMgc2NvcGUgaW5zdGVhZCBvZiBzY3JpcHQgdGFnc1xuICBjb25zdCBjb3B5QWxsSWNvbk5hbWVzID0gKCkgPT4ge1xuICAgIC8vIEdlbmVyYXRlIGNvbXBsZXRlIGxpc3Qgb2YgYWxsIGljb24gbmFtZXMgd2l0aCBwcmVmaXhlc1xuICAgIGNvbnN0IGZhSWNvbnNMaXN0ID0gZmFJY29ucy5tYXAobmFtZSA9PiBgZmE6JHtuYW1lfWApO1xuICAgIGNvbnN0IGx1Y2lkZUljb25zTGlzdFByZWZpeGVkID0gbHVjaWRlSWNvbnNMaXN0Lm1hcChuYW1lID0+IGBsdWNpZGU6JHtuYW1lfWApO1xuICAgIGNvbnN0IGFsbEljb25zID0gWy4uLmZhSWNvbnNMaXN0LCAuLi5sdWNpZGVJY29uc0xpc3RQcmVmaXhlZF07XG4gICAgY29uc3QgdGV4dFRvQ29weSA9IGFsbEljb25zLmpvaW4oJ1xcbicpO1xuICAgIFxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHRUb0NvcHkpLnRoZW4oKCkgPT4ge1xuICAgICAgLy8gU2hvdyBmZWVkYmFja1xuICAgICAgY29uc3QgY3VycmVudEV2ZW50ID0gd2luZG93LmV2ZW50IGFzIE1vdXNlRXZlbnQ7XG4gICAgICBjb25zdCBidXR0b24gPSBjdXJyZW50RXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IG9yaWdpbmFsVGV4dCA9IGJ1dHRvbi50ZXh0Q29udGVudDtcbiAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9IGBcdTI3MTMgQ29waWVkICR7YWxsSWNvbnMubGVuZ3RofSBpY29uIG5hbWVzIWA7XG4gICAgICBcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBidXR0b24udGV4dENvbnRlbnQgPSBvcmlnaW5hbFRleHQ7XG4gICAgICB9LCAyMDAwKTtcbiAgICB9KTtcbiAgfTtcbiAgXG4gIGNvbnN0IHNlYXJjaEljb25zID0gKGV2ZW50OiBJbnB1dEV2ZW50KSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoVGVybSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgLy8gR2V0IHRoZSBkZW1vIGNvbnRhaW5lciBmaXJzdCwgdGhlbiBzZWFyY2ggd2l0aGluIGl0XG4gICAgY29uc3QgZGVtb0NvbnRhaW5lciA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5kZW1vQ29udGFpbmVyJyk7XG4gICAgY29uc3QgY29udGFpbmVycyA9IGRlbW9Db250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnLmljb25Db250YWluZXInKTtcbiAgICBcbiAgICBjb250YWluZXJzLmZvckVhY2goY29udGFpbmVyID0+IHtcbiAgICAgIGNvbnN0IGljb25OYW1lID0gY29udGFpbmVyLmdldEF0dHJpYnV0ZSgnZGF0YS1uYW1lJyk7XG4gICAgICBcbiAgICAgIGlmIChzZWFyY2hUZXJtID09PSAnJykge1xuICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7XG4gICAgICB9IGVsc2UgaWYgKGljb25OYW1lICYmIGljb25OYW1lLmluY2x1ZGVzKHNlYXJjaFRlcm0pKSB7XG4gICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICAvLyBVcGRhdGUgY291bnRzIC0gc2VhcmNoIHdpdGhpbiBkZW1vQ29udGFpbmVyXG4gICAgZGVtb0NvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCcuc2VjdGlvbi1jb250YWluZXInKS5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgY29uc3QgdmlzaWJsZUljb25zID0gc2VjdGlvbi5xdWVyeVNlbGVjdG9yQWxsKCcuaWNvbkNvbnRhaW5lcjpub3QoLmhpZGRlbiknKS5sZW5ndGg7XG4gICAgICBjb25zdCBjb3VudEVsZW1lbnQgPSBzZWN0aW9uLnF1ZXJ5U2VsZWN0b3IoJy5pY29uLWNvdW50Jyk7XG4gICAgICBpZiAoY291bnRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHRvdGFsSWNvbnNDb3VudCA9IHNlY3Rpb24uY2xhc3NMaXN0LmNvbnRhaW5zKCdmYS1zZWN0aW9uJykgXG4gICAgICAgICAgPyBmYUljb25zLmxlbmd0aCBcbiAgICAgICAgICA6IGx1Y2lkZUljb25zTGlzdC5sZW5ndGg7XG4gICAgICAgIFxuICAgICAgICBjb3VudEVsZW1lbnQudGV4dENvbnRlbnQgPSB2aXNpYmxlSWNvbnMgPT09IHRvdGFsSWNvbnNDb3VudCBcbiAgICAgICAgICA/IGAke3RvdGFsSWNvbnNDb3VudH0gaWNvbnNgIFxuICAgICAgICAgIDogYCR7dmlzaWJsZUljb25zfSBvZiAke3RvdGFsSWNvbnNDb3VudH0gaWNvbnNgO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICBcbiAgY29uc3QgY29weUljb25OYW1lID0gKGljb25OYW1lVG9Db3B5OiBzdHJpbmcsIHR5cGU6ICdmYScgfCAnbHVjaWRlJykgPT4ge1xuICAgIC8vIFVzZSB0aGUgbmV3IHByZWZpeCBmb3JtYXRcbiAgICBjb25zdCB0ZXh0VG9Db3B5ID0gYCR7dHlwZX06JHtpY29uTmFtZVRvQ29weX1gO1xuICAgIFxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHRUb0NvcHkpLnRoZW4oKCkgPT4ge1xuICAgICAgLy8gRmluZCB0aGUgZXZlbnQgdGFyZ2V0XG4gICAgICBjb25zdCBjdXJyZW50RXZlbnQgPSB3aW5kb3cuZXZlbnQgYXMgTW91c2VFdmVudDtcbiAgICAgIGNvbnN0IGN1cnJlbnRUYXJnZXQgPSBjdXJyZW50RXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIC8vIFNob3cgZmVlZGJhY2tcbiAgICAgIGNvbnN0IHRvb2x0aXAgPSBjdXJyZW50VGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoJy5jb3B5LXRvb2x0aXAnKTtcbiAgICAgIGlmICh0b29sdGlwKSB7XG4gICAgICAgIHRvb2x0aXAudGV4dENvbnRlbnQgPSAnQ29waWVkISc7XG4gICAgICAgIFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0b29sdGlwLnRleHRDb250ZW50ID0gJ0NsaWNrIHRvIGNvcHknO1xuICAgICAgICB9LCAyMDAwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gaHRtbGBcbiAgPHN0eWxlPlxuICAgIC5kZW1vQ29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBiYWNrZ3JvdW5kOiAjMTExMTExO1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgICB9XG4gICAgXG4gICAgLnNlYXJjaC1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogMTBweDtcbiAgICB9XG4gICAgXG4gICAgI2ljb25TZWFyY2gge1xuICAgICAgZmxleDogMTtcbiAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIGJhY2tncm91bmQ6ICMyMjI7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7XG4gICAgfVxuICAgIFxuICAgICNpY29uU2VhcmNoOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXItY29sb3I6ICNlNDAwMmI7XG4gICAgfVxuICAgIFxuICAgIC5jb3B5LWFsbC1idXR0b24ge1xuICAgICAgcGFkZGluZzogMTJweCAyMHB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgYmFja2dyb3VuZDogI2U0MDAyYjtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICBcbiAgICAuY29weS1hbGwtYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNjNDAwMWI7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgfVxuICAgIFxuICAgIC5jb3B5LWFsbC1idXR0b246YWN0aXZlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG4gICAgXG4gICAgZGVlcy1pY29uIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG5cbiAgICAuaWNvbkNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAyMHB4IDE2cHggMHB4IDE2cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgXG4gICAgLmljb25Db250YWluZXI6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcbiAgICB9XG5cbiAgICAuaWNvbk5hbWUge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICNjY2M7XG4gICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzO1xuICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogLTE2cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4O1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBtYXgtd2lkdGg6IDEyMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7XG4gICAgfVxuXG4gICAgLnNlY3Rpb24tdGl0bGUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBcbiAgICAuYXBpLW5vdGUge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgY29sb3I6ICNlNDAwMmI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNDAwMmI7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyOCwgMCwgNDMsIDAuMSk7XG4gICAgfVxuICAgIFxuICAgIC5pY29uLWNvdW50IHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGJhY2tncm91bmQ6ICMyMjI7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgfVxuICAgIFxuICAgIC5pY29ucy1ncmlkIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgXG4gICAgLnNlY3Rpb24tY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICB9XG4gICAgXG4gICAgLmNvcHktdG9vbHRpcCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICB0b3A6IC0zMHB4O1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgICBcbiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciAuY29weS10b29sdGlwIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLmljb25Db250YWluZXI6aG92ZXIgZGVlcy1pY29uIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB9XG4gICAgXG4gICAgLmhpZGRlbiB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICA8L3N0eWxlPlxuICBcbiAgPGRpdiBjbGFzcz1cImRlbW9Db250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJpY29uU2VhcmNoXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggaWNvbnMuLi5cIiBAaW5wdXQ9JHtzZWFyY2hJY29uc30+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiY29weS1hbGwtYnV0dG9uXCIgQGNsaWNrPSR7Y29weUFsbEljb25OYW1lc30+XHVEODNEXHVEQ0NCIENvcHkgQWxsIEljb24gTmFtZXM8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiYXBpLW5vdGVcIj5cbiAgICAgIE5ldyBBUEk6IFVzZSA8Y29kZT5pY29uPVwiZmE6aWNvbk5hbWVcIjwvY29kZT4gb3IgPGNvZGU+aWNvbj1cImx1Y2lkZTppY29uTmFtZVwiPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmljb25GQTwvY29kZT4uIFxuICAgICAgQ2xpY2sgYW55IGljb24gdG8gY29weSBpdHMgbmV3IGZvcm1hdCB0byBjbGlwYm9hcmQuXG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY29udGFpbmVyIGZhLXNlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgIEZvbnRBd2Vzb21lIEljb25zXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1jb3VudFwiPiR7ZmFJY29ucy5sZW5ndGh9IGljb25zPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvbnMtZ3JpZFwiPlxuICAgICAgICAke2ZhSWNvbnMubWFwKFxuICAgICAgICAgIChpY29uTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJlZml4ZWROYW1lID0gYGZhOiR7aWNvbk5hbWV9YDtcbiAgICAgICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbkNvbnRhaW5lciBmYS1pY29uXCIgZGF0YS1uYW1lPSR7aWNvbk5hbWUudG9Mb3dlckNhc2UoKX0gQGNsaWNrPSR7KCkgPT4gY29weUljb25OYW1lKGljb25OYW1lLCAnZmEnKX0+XG4gICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke3ByZWZpeGVkTmFtZSBhcyBJY29uV2l0aFByZWZpeH0gaWNvblNpemU9XCIyNFwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uTmFtZVwiPmZhOiR7aWNvbk5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3B5LXRvb2x0aXBcIj5DbGljayB0byBjb3B5PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gICAgICAgICAgfVxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1jb250YWluZXIgbHVjaWRlLXNlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgIEx1Y2lkZSBJY29uc1xuICAgICAgICA8c3BhbiBjbGFzcz1cImljb24tY291bnRcIj4ke2x1Y2lkZUljb25zTGlzdC5sZW5ndGh9IGljb25zPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvbnMtZ3JpZFwiPlxuICAgICAgICAke2x1Y2lkZUljb25zTGlzdC5tYXAoXG4gICAgICAgICAgKGljb25OYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcmVmaXhlZE5hbWUgPSBgbHVjaWRlOiR7aWNvbk5hbWV9YDtcbiAgICAgICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbkNvbnRhaW5lciBsdWNpZGUtaWNvblwiIGRhdGEtbmFtZT0ke2ljb25OYW1lLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpID0+IGNvcHlJY29uTmFtZShpY29uTmFtZSwgJ2x1Y2lkZScpfT5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7cHJlZml4ZWROYW1lIGFzIEljb25XaXRoUHJlZml4fSBpY29uU2l6ZT1cIjI0XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb25OYW1lXCI+bHVjaWRlOiR7aWNvbk5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3B5LXRvb2x0aXBcIj5DbGljayB0byBjb3B5PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gICAgICAgICAgfVxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICBgO1xufTtcbiIsICJpbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgaHRtbCxcbiAgcHJvcGVydHksXG4gIGN1c3RvbUVsZW1lbnQsXG4gIGNzc01hbmFnZXIsXG4gIGNzcyxcbiAgdHlwZSBDU1NSZXN1bHQsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmltcG9ydCAqIGFzIGRvbXRvb2xzIGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmltcG9ydCB7IGljb24sIHR5cGUgSWNvbkRlZmluaXRpb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUnO1xuaW1wb3J0IHtcbiAgZmFGYWNlYm9vayxcbiAgZmFHb29nbGUsXG4gIGZhTGlua2VkaW4sXG4gIGZhTWVkaXVtLFxuICBmYVNsYWNrSGFzaCxcbiAgZmFUd2l0dGVyLFxuICBmYUluc3RhZ3JhbSxcbiAgZmFUaWt0b2ssXG59IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLWJyYW5kcy1zdmctaWNvbnMnO1xuXG5pbXBvcnQge1xuICBmYUNvcHkgYXMgZmFDb3B5UmVndWxhcixcbiAgZmFDaXJjbGVDaGVjayBhcyBmYUNpcmNsZUNoZWNrUmVndWxhcixcbiAgZmFDaXJjbGVYbWFyayBhcyBmYUNpcmNsZVhtYXJrUmVndWxhcixcbiAgZmFNZXNzYWdlIGFzIGZhTWVzc2FnZVJlZ3VsYXIsXG4gIGZhUGFzdGUgYXMgZmFQYXN0ZVJlZ3VsYXIsXG4gIGZhU3VuIGFzIGZhU3VuUmVndWxhcixcbiAgZmFUcmFzaENhbiBhcyBmYVRyYXNoQ2FuUmVndWxhcixcbn0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtcmVndWxhci1zdmctaWNvbnMnO1xuaW1wb3J0IHtcbiAgZmFBcnJvd1JpZ2h0IGFzIGZhQXJyb3dSaWdodFNvbGlkLFxuICBmYUFycm93VXBSaWdodEZyb21TcXVhcmUgYXMgZmFBcnJvd1VwUmlnaHRGcm9tU3F1YXJlU29saWQsXG4gIGZhQmVsbCBhcyBmYUJlbGxTb2xpZCxcbiAgZmFCdWcgYXMgZmFCdWdTb2xpZCxcbiAgZmFCdWlsZGluZyBhcyBmYUJ1aWxkaW5nU29saWQsXG4gIGZhQ2FyZXRMZWZ0IGFzIGZhQ2FyZXRMZWZ0U29saWQsXG4gIGZhQ2FyZXRSaWdodCBhcyBmYUNhcmV0UmlnaHRTb2xpZCxcbiAgZmFDaGVjayBhcyBmYUNoZWNrU29saWQsXG4gIGZhQ2lyY2xlSW5mbyBhcyBmYUNpcmNsZUluZm9Tb2xpZCxcbiAgZmFDaXJjbGVDaGVjayBhcyBmYUNpcmNsZUNoZWNrU29saWQsXG4gIGZhQ2lyY2xlWG1hcmsgYXMgZmFDaXJjbGVYbWFya1NvbGlkLFxuICBmYUNsb2NrUm90YXRlTGVmdCBhcyBmYUNsb2NrUm90YXRlTGVmdFNvbGlkLFxuICBmYUNvcHkgYXMgZmFDb3B5U29saWQsXG4gIGZhRGVza3RvcCBhcyBmYURlc2t0b3BTb2xpZCxcbiAgZmFFeWUgYXMgZmFFeWVTb2xpZCxcbiAgZmFFeWVTbGFzaCBhcyBmYUV5ZVNsYXNoU29saWQsXG4gIGZhRmlsZUludm9pY2UgYXMgZmFGaWxlSW52b2ljZVNvbGlkLFxuICBmYUZpbGVJbnZvaWNlRG9sbGFyIGFzIGZhRmlsZUludm9pY2VEb2xsYXJTb2xpZCxcbiAgZmFHZWFyIGFzIGZhR2VhclNvbGlkLFxuICBmYUdyaXAgYXMgZmFHcmlwU29saWQsXG4gIGZhTWFnbmlmeWluZ0dsYXNzIGFzIGZhTWFnbmlmeWluZ0dsYXNzU29saWQsXG4gIGZhTWVzc2FnZSBhcyBmYU1lc3NhZ2VTb2xpZCxcbiAgZmFNb25leUNoZWNrRG9sbGFyIGFzIGZhTW9uZXlDaGVja0RvbGxhclNvbGlkLFxuICBmYU11Z0hvdCBhcyBmYU11Z0hvdFNvbGlkLFxuICBmYU1pbnVzIGFzIGZhTWludXNTb2xpZCxcbiAgZmFOZXR3b3JrV2lyZWQgYXMgZmFOZXR3b3JrV2lyZWRTb2xpZCxcbiAgZmFQYXBlcmNsaXAgYXMgZmFQYXBlcmNsaXBTb2xpZCxcbiAgZmFQYXN0ZSBhcyBmYVBhc3RlU29saWQsXG4gIGZhUGVuVG9TcXVhcmUgYXMgZmFQZW5Ub1NxdWFyZVNvbGlkLFxuICBmYVBsdXMgYXMgZmFQbHVzU29saWQsXG4gIGZhUmVjZWlwdCBhcyBmYVJlY2VpcHRTb2xpZCxcbiAgZmFSc3MgYXMgZmFSc3NTb2xpZCxcbiAgZmFVc2VycyBhcyBmYVVzZXJzU29saWQsXG4gIGZhU2hhcmUgYXMgZmFTaGFyZVNvbGlkLFxuICBmYVN1biBhcyBmYVN1blNvbGlkLFxuICBmYVRlcm1pbmFsIGFzIGZhVGVybWluYWxTb2xpZCxcbiAgZmFUcmFzaCBhcyBmYVRyYXNoU29saWQsXG4gIGZhVHJhc2hDYW4gYXMgZmFUcmFzaENhblNvbGlkLFxuICBmYVdhbGxldCBhcyBmYVdhbGxldFNvbGlkLFxuICBmYVhtYXJrIGFzIGZhWG1hcmtTb2xpZCxcbn0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLWljb24uZGVtby5qcyc7XG5cbi8vIEltcG9ydCBMdWNpZGUgaWNvbnMgYW5kIHRoZSBjcmVhdGVFbGVtZW50IGZ1bmN0aW9uXG5pbXBvcnQgKiBhcyBsdWNpZGVJY29ucyBmcm9tICdsdWNpZGUnO1xuaW1wb3J0IHsgY3JlYXRlRWxlbWVudCB9IGZyb20gJ2x1Y2lkZSc7XG5cbi8vIENvbGxlY3QgRm9udEF3ZXNvbWUgaWNvbnNcbmNvbnN0IGZhSWNvbnMgPSB7XG4gIC8vIG5vcm1hbFxuICBhcnJvd1JpZ2h0OiBmYUFycm93UmlnaHRTb2xpZCxcbiAgYXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTogZmFBcnJvd1VwUmlnaHRGcm9tU3F1YXJlU29saWQsXG4gIGJlbGw6IGZhQmVsbFNvbGlkLFxuICBidWc6IGZhQnVnU29saWQsXG4gIGJ1aWxkaW5nOiBmYUJ1aWxkaW5nU29saWQsXG4gIGNhcmV0TGVmdDogZmFDYXJldExlZnRTb2xpZCxcbiAgY2FyZXRSaWdodDogZmFDYXJldFJpZ2h0U29saWQsXG4gIGNoZWNrOiBmYUNoZWNrU29saWQsXG4gIGNpcmNsZUluZm86IGZhQ2lyY2xlSW5mb1NvbGlkLFxuICBjaXJjbGVDaGVjazogZmFDaXJjbGVDaGVja1JlZ3VsYXIsXG4gIGNpcmNsZUNoZWNrU29saWQ6IGZhQ2lyY2xlQ2hlY2tTb2xpZCxcbiAgY2lyY2xlWG1hcms6IGZhQ2lyY2xlWG1hcmtSZWd1bGFyLFxuICBjaXJjbGVYbWFya1NvbGlkOiBmYUNpcmNsZVhtYXJrU29saWQsXG4gIGNsb2NrUm90YXRlTGVmdDogZmFDbG9ja1JvdGF0ZUxlZnRTb2xpZCxcbiAgY29weTogZmFDb3B5UmVndWxhcixcbiAgY29weVNvbGlkOiBmYUNvcHlTb2xpZCxcbiAgZGVza3RvcDogZmFEZXNrdG9wU29saWQsXG4gIGV5ZTogZmFFeWVTb2xpZCxcbiAgZXllU2xhc2g6IGZhRXllU2xhc2hTb2xpZCxcbiAgZmlsZUludm9pY2U6IGZhRmlsZUludm9pY2VTb2xpZCxcbiAgZmlsZUludm9pY2VEb2xsZXI6IGZhRmlsZUludm9pY2VEb2xsYXJTb2xpZCxcbiAgZ2VhcjogZmFHZWFyU29saWQsXG4gIGdyaXA6IGZhR3JpcFNvbGlkLFxuICBtYWduaWZ5aW5nR2xhc3M6IGZhTWFnbmlmeWluZ0dsYXNzU29saWQsXG4gIG1lc3NhZ2U6IGZhTWVzc2FnZVJlZ3VsYXIsXG4gIG1lc3NhZ2VTb2xpZDogZmFNZXNzYWdlU29saWQsXG4gIG1vbmV5Q2hlY2tEb2xsYXI6IGZhTW9uZXlDaGVja0RvbGxhclNvbGlkLFxuICBtdWdIb3Q6IGZhTXVnSG90U29saWQsXG4gIG1pbnVzOiBmYU1pbnVzU29saWQsXG4gIG5ldHdvcmtXaXJlZDogZmFOZXR3b3JrV2lyZWRTb2xpZCxcbiAgcGFwZXJjbGlwOiBmYVBhcGVyY2xpcFNvbGlkLFxuICBwYXN0ZTogZmFQYXN0ZVJlZ3VsYXIsXG4gIHBhc3RlU29saWQ6IGZhUGFzdGVTb2xpZCxcbiAgcGVuVG9TcXVhcmU6IGZhUGVuVG9TcXVhcmVTb2xpZCxcbiAgcGx1czogZmFQbHVzU29saWQsXG4gIHJlY2VpcHQ6IGZhUmVjZWlwdFNvbGlkLFxuICByc3M6IGZhUnNzU29saWQsXG4gIHNoYXJlOiBmYVNoYXJlU29saWQsXG4gIHN1bjogZmFTdW5SZWd1bGFyLFxuICBzdW5Tb2xpZDogZmFTdW5Tb2xpZCxcbiAgdGVybWluYWw6IGZhVGVybWluYWxTb2xpZCxcbiAgdHJhc2g6IGZhVHJhc2hTb2xpZCxcbiAgdHJhc2hTb2xpZDogZmFUcmFzaFNvbGlkLFxuICB0cmFzaENhbjogZmFUcmFzaENhblJlZ3VsYXIsXG4gIHRyYXNoQ2FuU29saWQ6IGZhVHJhc2hDYW5Tb2xpZCxcbiAgdXNlcnM6IGZhVXNlcnNTb2xpZCxcbiAgd2FsbGV0OiBmYVdhbGxldFNvbGlkLFxuICB4bWFyazogZmFYbWFya1NvbGlkLFxuICAvLyBicmFuZHNcbiAgZmFjZWJvb2s6IGZhRmFjZWJvb2ssXG4gIGdvb2dsZTogZmFHb29nbGUsXG4gIGluc3RhZ3JhbTogZmFJbnN0YWdyYW0sXG4gIGxpbmtlZGluOiBmYUxpbmtlZGluLFxuICBtZWRpdW06IGZhTWVkaXVtLFxuICBzbGFjazogZmFTbGFja0hhc2gsXG4gIHRpa3RvazogZmFUaWt0b2ssXG4gIHR3aXR0ZXI6IGZhVHdpdHRlcixcbn07XG5cbi8vIENyZWF0ZSBhIHN0cmluZyBsaXRlcmFsIHR5cGUgZm9yIGFsbCBGQSBpY29uc1xudHlwZSBGQUljb25LZXkgPSBrZXlvZiB0eXBlb2YgZmFJY29ucztcblxuLy8gQ3JlYXRlIHVuaW9uIHR5cGVzIGZvciB0aGUgaWNvbnMgd2l0aCBwcmVmaXhlc1xuZXhwb3J0IHR5cGUgSWNvbldpdGhQcmVmaXggPSBgZmE6JHtGQUljb25LZXl9YCB8IGBsdWNpZGU6JHtzdHJpbmd9YDtcblxuLy8gRXhwb3J0IG9ubHkgRm9udEF3ZXNvbWUgaWNvbnMgZGlyZWN0bHlcbmV4cG9ydCBjb25zdCBpY29ucyA9IHtcbiAgZmE6IGZhSWNvbnNcbn07XG5cbi8vIExlZ2FjeSB0eXBlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG5leHBvcnQgdHlwZSBUSWNvbktleSA9IEZBSWNvbktleSB8IGBsdWNpZGU6JHtzdHJpbmd9YDtcblxuLy8gVXNlIGEgZ2xvYmFsIHN0YXRpYyBjYWNoZSBmb3IgYWxsIGljb25zIHRvIHJlZHVjZSByZW5kZXJpbmdcbmNvbnN0IGljb25DYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbi8vIENsZWFyIGNhY2hlIGl0ZW1zIG9jY2FzaW9uYWxseSB0byBwcmV2ZW50IG1lbW9yeSBsZWFrcyBcbmNvbnN0IE1BWF9DQUNIRV9TSVpFID0gNTAwO1xuZnVuY3Rpb24gbGltaXRDYWNoZVNpemUoKSB7XG4gIGlmIChpY29uQ2FjaGUuc2l6ZSA+IE1BWF9DQUNIRV9TSVpFKSB7XG4gICAgLy8gUmVtb3ZlIG9sZGVzdCBlbnRyaWVzIChmaXJzdCAyMCUgb2YgaXRlbXMpXG4gICAgY29uc3Qga2V5c1RvRGVsZXRlID0gQXJyYXkuZnJvbShpY29uQ2FjaGUua2V5cygpKS5zbGljZSgwLCBNQVhfQ0FDSEVfU0laRSAvIDUpO1xuICAgIGtleXNUb0RlbGV0ZS5mb3JFYWNoKGtleSA9PiBpY29uQ2FjaGUuZGVsZXRlKGtleSkpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtaWNvbic6IERlZXNJY29uO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWljb24nKVxuZXhwb3J0IGNsYXNzIERlZXNJY29uIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBgaWNvbmAgcHJvcGVydHkgaW5zdGVhZCB3aXRoIGZvcm1hdCBcImZhOmljb25OYW1lXCIgb3IgXCJsdWNpZGU6aWNvbk5hbWVcIlxuICAgKi9cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgY29udmVydGVyOiB7XG4gICAgICAvLyBDb252ZXJ0IGF0dHJpYnV0ZSBzdHJpbmcgdG8gcHJvcGVydHkgKGZvciByZWZsZWN0ZWQgYXR0cmlidXRlcylcbiAgICAgIGZyb21BdHRyaWJ1dGU6ICh2YWx1ZTogc3RyaW5nKTogVEljb25LZXkgPT4gdmFsdWUgYXMgVEljb25LZXksXG4gICAgICAvLyBDb252ZXJ0IHByb3BlcnR5IHRvIGF0dHJpYnV0ZSAoZm9yIHJlZmxlY3Rpb24pXG4gICAgICB0b0F0dHJpYnV0ZTogKHZhbHVlOiBUSWNvbktleSk6IHN0cmluZyA9PiB2YWx1ZVxuICAgIH1cbiAgfSlcbiAgYWNjZXNzb3IgaWNvbkZBOiBUSWNvbktleSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHByZWZlcnJlZCBpY29uIHByb3BlcnR5LiBVc2UgZm9ybWF0IFwiZmE6aWNvbk5hbWVcIiBvciBcImx1Y2lkZTppY29uTmFtZVwiXG4gICAqIEV4YW1wbGVzOiBcImZhOmNoZWNrXCIsIFwibHVjaWRlOm1lbnVcIlxuICAgKi9cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgY29udmVydGVyOiB7XG4gICAgICBmcm9tQXR0cmlidXRlOiAodmFsdWU6IHN0cmluZyk6IEljb25XaXRoUHJlZml4ID0+IHZhbHVlIGFzIEljb25XaXRoUHJlZml4LFxuICAgICAgdG9BdHRyaWJ1dGU6ICh2YWx1ZTogSWNvbldpdGhQcmVmaXgpOiBzdHJpbmcgPT4gdmFsdWVcbiAgICB9XG4gIH0pXG4gIGFjY2Vzc29yIGljb246IEljb25XaXRoUHJlZml4IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBpY29uU2l6ZTogbnVtYmVyO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBjb2xvcjogc3RyaW5nID0gJ2N1cnJlbnRDb2xvcic7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIHN0cm9rZVdpZHRoOiBudW1iZXIgPSAyO1xuXG4gIC8vIEZvciB0cmFja2luZyB3aGVuIHdlIG5lZWQgdG8gcmUtcmVuZGVyXG4gIHByaXZhdGUgbGFzdEljb246IEljb25XaXRoUHJlZml4IHwgVEljb25LZXkgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsYXN0SWNvblNpemU6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGxhc3RDb2xvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbGFzdFN0cm9rZVdpZHRoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGRvbXRvb2xzLmVsZW1lbnRCYXNpYy5zZXR1cCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVmZmVjdGl2ZSBpY29uIHZhbHVlLCBzdXBwb3J0aW5nIGJvdGggdGhlIG5ldyBgaWNvbmAgcHJvcGVydHlcbiAgICogYW5kIHRoZSBsZWdhY3kgYGljb25GQWAgcHJvcGVydHkgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAqIFByZWZlcnMgYGljb25gIGlmIGJvdGggYXJlIHNldC5cbiAgICovXG4gIHByaXZhdGUgZ2V0RWZmZWN0aXZlSWNvbigpOiBJY29uV2l0aFByZWZpeCB8IFRJY29uS2V5IHwgbnVsbCB7XG4gICAgLy8gUHJlZmVyIHRoZSBuZXcgQVBJXG4gICAgaWYgKHRoaXMuaWNvbikge1xuICAgICAgcmV0dXJuIHRoaXMuaWNvbjtcbiAgICB9XG4gICAgXG4gICAgLy8gRmFsbCBiYWNrIHRvIHRoZSBvbGQgQVBJXG4gICAgaWYgKHRoaXMuaWNvbkZBKSB7XG4gICAgICAvLyBJZiBpY29uRkEgaXMgYWxyZWFkeSBpbiB0aGUgcHJvcGVyIGZvcm1hdCAobHVjaWRlOm5hbWUpLCB1c2UgaXQgZGlyZWN0bHlcbiAgICAgIGlmICh0aGlzLmljb25GQS5zdGFydHNXaXRoKCdsdWNpZGU6JykpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvbkZBO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBGb3IgRm9udEF3ZXNvbWUgaWNvbnMgd2l0aCBubyBwcmVmaXgsIGFkZCB0aGUgcHJlZml4XG4gICAgICByZXR1cm4gYGZhOiR7dGhpcy5pY29uRkF9YCBhcyBJY29uV2l0aFByZWZpeDtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBQYXJzZXMgYW4gaWNvbiBzdHJpbmcgaW50byBpdHMgdHlwZSBhbmQgbmFtZSBwYXJ0c1xuICAgKiBAcGFyYW0gaWNvblN0ciBUaGUgaWNvbiBzdHJpbmcgaW4gZm9ybWF0IFwidHlwZTpuYW1lXCJcbiAgICogQHJldHVybnMgT2JqZWN0IHdpdGggdHlwZSBhbmQgbmFtZSBwcm9wZXJ0aWVzXG4gICAqL1xuICBwcml2YXRlIHBhcnNlSWNvblN0cmluZyhpY29uU3RyOiBzdHJpbmcpOiB7IHR5cGU6ICdmYScgfCAnbHVjaWRlJywgbmFtZTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IGxvd2VyU3RyID0gaWNvblN0ci50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChsb3dlclN0ci5zdGFydHNXaXRoKCdmYTonKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2ZhJyxcbiAgICAgICAgbmFtZTogaWNvblN0ci5zdWJzdHJpbmcoMykgLy8gUmVtb3ZlICdmYTonIHByZWZpeFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGxvd2VyU3RyLnN0YXJ0c1dpdGgoJ2x1Y2lkZTonKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2x1Y2lkZScsXG4gICAgICAgIG5hbWU6IGljb25TdHIuc3Vic3RyaW5nKDcpIC8vIFJlbW92ZSAnbHVjaWRlOicgcHJlZml4XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEZWZhdWx0IHRvIEx1Y2lkZSB3aGVuIG5vIHByZWZpeCBpcyBwcm92aWRlZFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2x1Y2lkZScsXG4gICAgICAgIG5hbWU6IGljb25TdHJcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJMdWNpZGVJY29uKGljb25OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIENyZWF0ZSBhIGNhY2hlIGtleSBiYXNlZCBvbiBhbGwgdmlzdWFsIHByb3BlcnRpZXNcbiAgICBjb25zdCBjYWNoZUtleSA9IGBsdWNpZGU6JHtpY29uTmFtZX06JHt0aGlzLmljb25TaXplfToke3RoaXMuY29sb3J9OiR7dGhpcy5zdHJva2VXaWR0aH1gO1xuICAgIFxuICAgIC8vIENoZWNrIGlmIHdlIGFscmVhZHkgaGF2ZSB0aGlzIGljb24gaW4gdGhlIGNhY2hlXG4gICAgaWYgKGljb25DYWNoZS5oYXMoY2FjaGVLZXkpKSB7XG4gICAgICByZXR1cm4gaWNvbkNhY2hlLmdldChjYWNoZUtleSkgfHwgJyc7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIEdldCB0aGUgUGFzY2FsIGNhc2UgaWNvbiBuYW1lIChNZW51IGluc3RlYWQgb2YgbWVudSlcbiAgICAgIGNvbnN0IHBhc2NhbENhc2VOYW1lID0gaWNvbk5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBpY29uTmFtZS5zbGljZSgxKTtcbiAgICAgIFxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGljb24gZXhpc3RzIGluIGx1Y2lkZUljb25zXG4gICAgICBpZiAoIWx1Y2lkZUljb25zW3Bhc2NhbENhc2VOYW1lXSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYEx1Y2lkZSBpY29uICcke3Bhc2NhbENhc2VOYW1lfScgbm90IGZvdW5kIGluIGx1Y2lkZUljb25zIG9iamVjdGApO1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFVzZSB0aGUgZXhhY3QgcGF0dGVybiBmcm9tIEx1Y2lkZSBkb2N1bWVudGF0aW9uXG4gICAgICBjb25zdCBzdmdFbGVtZW50ID0gY3JlYXRlRWxlbWVudChsdWNpZGVJY29uc1twYXNjYWxDYXNlTmFtZV0sIHtcbiAgICAgICAgY29sb3I6IHRoaXMuY29sb3IsXG4gICAgICAgIHNpemU6IHRoaXMuaWNvblNpemUsXG4gICAgICAgIHN0cm9rZVdpZHRoOiB0aGlzLnN0cm9rZVdpZHRoXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgaWYgKCFzdmdFbGVtZW50KSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgY3JlYXRlRWxlbWVudCByZXR1cm5lZCBlbXB0eSByZXN1bHQgZm9yICR7cGFzY2FsQ2FzZU5hbWV9YCk7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gR2V0IHRoZSBIVE1MXG4gICAgICBjb25zdCByZXN1bHQgPSBzdmdFbGVtZW50Lm91dGVySFRNTDtcbiAgICAgIFxuICAgICAgLy8gQ2FjaGUgdGhlIHJlc3VsdCBmb3IgZnV0dXJlIHVzZVxuICAgICAgaWNvbkNhY2hlLnNldChjYWNoZUtleSwgcmVzdWx0KTtcbiAgICAgIGxpbWl0Q2FjaGVTaXplKCk7XG4gICAgICBcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHJlbmRlcmluZyBMdWNpZGUgaWNvbiAke2ljb25OYW1lfTpgLCBlcnJvcik7XG4gICAgICBcbiAgICAgIC8vIENyZWF0ZSBhIGZhbGxiYWNrIFNWRyB3aXRoIHRoZSBpY29uIG5hbWVcbiAgICAgIHJldHVybiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIke3RoaXMuaWNvblNpemV9XCIgaGVpZ2h0PVwiJHt0aGlzLmljb25TaXplfVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cIiR7dGhpcy5jb2xvcn1cIiBzdHJva2Utd2lkdGg9XCIke3RoaXMuc3Ryb2tlV2lkdGh9XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XG4gICAgICAgIDx0ZXh0IHg9XCI1MCVcIiB5PVwiNTAlXCIgZm9udC1zaXplPVwiNlwiIHRleHQtYW5jaG9yPVwibWlkZGxlXCIgZG9taW5hbnQtYmFzZWxpbmU9XCJtaWRkbGVcIiBmaWxsPVwiJHt0aGlzLmNvbG9yfVwiPiR7aWNvbk5hbWV9PC90ZXh0PlxuICAgICAgPC9zdmc+YDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG5cbiAgICAgIC8qIEltcHJvdmUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlICovXG4gICAgICAjaWNvbkNvbnRhaW5lciBzdmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgLyogSGVscHMgd2l0aCBhbmltYXRpb25zICovXG4gICAgICAgIGNvbnRhaW46IHN0cmljdDsgLyogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovXG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgJHtkb210b29scy5lbGVtZW50QmFzaWMuc3R5bGVzfVxuICAgICAgPHN0eWxlPlxuICAgICAgICAjaWNvbkNvbnRhaW5lciB7XG4gICAgICAgICAgd2lkdGg6ICR7dGhpcy5pY29uU2l6ZX1weDtcbiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5pY29uU2l6ZX1weDtcbiAgICAgICAgfVxuICAgICAgPC9zdHlsZT5cbiAgICAgIDxkaXYgaWQ9XCJpY29uQ29udGFpbmVyXCI+PC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVkKCkge1xuICAgIC8vIElmIHNpemUgaXMgbm90IHNwZWNpZmllZCwgdXNlIGZvbnQgc2l6ZSBhcyBhIGJhc2VcbiAgICBpZiAoIXRoaXMuaWNvblNpemUpIHtcbiAgICAgIHRoaXMuaWNvblNpemUgPSBwYXJzZUludChnbG9iYWxUaGlzLmdldENvbXB1dGVkU3R5bGUodGhpcykuZm9udFNpemUucmVwbGFjZSgvXFxEL2csJycpKTtcbiAgICB9XG4gICAgXG4gICAgLy8gR2V0IHRoZSBlZmZlY3RpdmUgaWNvbiAoZWl0aGVyIGZyb20gaWNvbiBvciBpY29uRkEgcHJvcGVydHkpXG4gICAgY29uc3QgZWZmZWN0aXZlSWNvbiA9IHRoaXMuZ2V0RWZmZWN0aXZlSWNvbigpO1xuICAgIFxuICAgIC8vIENoZWNrIGlmIHdlIGFjdHVhbGx5IG5lZWQgdG8gdXBkYXRlIHRoZSBpY29uXG4gICAgLy8gVGhpcyBwcmV2ZW50cyB1bm5lY2Vzc2FyeSBET00gb3BlcmF0aW9ucyB3aGVuIHByb3BlcnRpZXMgaGF2ZW4ndCBjaGFuZ2VkXG4gICAgaWYgKHRoaXMubGFzdEljb24gPT09IGVmZmVjdGl2ZUljb24gJiYgXG4gICAgICAgIHRoaXMubGFzdEljb25TaXplID09PSB0aGlzLmljb25TaXplICYmIFxuICAgICAgICB0aGlzLmxhc3RDb2xvciA9PT0gdGhpcy5jb2xvciAmJiBcbiAgICAgICAgdGhpcy5sYXN0U3Ryb2tlV2lkdGggPT09IHRoaXMuc3Ryb2tlV2lkdGgpIHtcbiAgICAgIHJldHVybjsgLy8gTm8gdmlzdWFsIGNoYW5nZXMgLSBza2lwIHVwZGF0ZVxuICAgIH1cbiAgICBcbiAgICAvLyBVcGRhdGUgb3VyIFwibGFzdCBwcm9wZXJ0aWVzXCIgZm9yIGZ1dHVyZSBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgdGhpcy5sYXN0SWNvbiA9IGVmZmVjdGl2ZUljb247XG4gICAgdGhpcy5sYXN0SWNvblNpemUgPSB0aGlzLmljb25TaXplO1xuICAgIHRoaXMubGFzdENvbG9yID0gdGhpcy5jb2xvcjtcbiAgICB0aGlzLmxhc3RTdHJva2VXaWR0aCA9IHRoaXMuc3Ryb2tlV2lkdGg7XG4gICAgXG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcjaWNvbkNvbnRhaW5lcicpO1xuICAgIGlmICghY29udGFpbmVyIHx8ICFlZmZlY3RpdmVJY29uKSByZXR1cm47XG5cbiAgICB0cnkge1xuICAgICAgLy8gUGFyc2UgdGhlIGljb24gc3RyaW5nIHRvIGdldCB0eXBlIGFuZCBuYW1lXG4gICAgICBjb25zdCB7IHR5cGUsIG5hbWUgfSA9IHRoaXMucGFyc2VJY29uU3RyaW5nKGVmZmVjdGl2ZUljb24pO1xuICAgICAgXG4gICAgICBpZiAodHlwZSA9PT0gJ2x1Y2lkZScpIHtcbiAgICAgICAgLy8gRm9yIEx1Y2lkZSwgdXNlIGRpcmVjdCBET00gbWFuaXB1bGF0aW9uIGFzIHNob3duIGluIHRoZSBkb2NzXG4gICAgICAgIC8vIFRoaXMgYXBwcm9hY2ggYXZvaWRzIEhUTUwgc3RyaW5nIGlzc3Vlc1xuICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7IC8vIENsZWFyIGNvbnRhaW5lclxuICAgICAgICBcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBDb252ZXJ0IHRvIFBhc2NhbENhc2VcbiAgICAgICAgICBjb25zdCBwYXNjYWxDYXNlTmFtZSA9IG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmIChsdWNpZGVJY29uc1twYXNjYWxDYXNlTmFtZV0pIHtcbiAgICAgICAgICAgIC8vIFVzZSB0aGUgZG9jdW1lbnRlZCBwYXR0ZXJuIGZyb20gTHVjaWRlIGRvY3NcbiAgICAgICAgICAgIGNvbnN0IHN2Z0VsZW1lbnQgPSBjcmVhdGVFbGVtZW50KGx1Y2lkZUljb25zW3Bhc2NhbENhc2VOYW1lXSwge1xuICAgICAgICAgICAgICBjb2xvcjogdGhpcy5jb2xvcixcbiAgICAgICAgICAgICAgc2l6ZTogdGhpcy5pY29uU2l6ZSxcbiAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IHRoaXMuc3Ryb2tlV2lkdGhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoc3ZnRWxlbWVudCkge1xuICAgICAgICAgICAgICAvLyBEaXJlY3RseSBhcHBlbmQgdGhlIGVsZW1lbnRcbiAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHN2Z0VsZW1lbnQpO1xuICAgICAgICAgICAgICByZXR1cm47IC8vIEV4aXQgZWFybHkgc2luY2Ugd2UndmUgYWRkZWQgdGhlIGVsZW1lbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gSWYgd2UgcmVhY2ggaGVyZSwgc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBjcmVhdGUgZWxlbWVudCBmb3IgJHtwYXNjYWxDYXNlTmFtZX1gKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgTHVjaWRlIGljb246YCwgZXJyb3IpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIEZhbGwgYmFjayB0byB0aGUgc3RyaW5nLWJhc2VkIGFwcHJvYWNoXG4gICAgICAgICAgY29uc3QgaWNvbkh0bWwgPSB0aGlzLnJlbmRlckx1Y2lkZUljb24obmFtZSk7XG4gICAgICAgICAgaWYgKGljb25IdG1sKSB7XG4gICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gaWNvbkh0bWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVc2UgRm9udEF3ZXNvbWUgcmVuZGVyaW5nIHZpYSBIVE1MIHN0cmluZ1xuICAgICAgICBjb25zdCBmYUljb24gPSBpY29ucy5mYVtuYW1lIGFzIEZBSWNvbktleV07XG4gICAgICAgIGlmIChmYUljb24pIHtcbiAgICAgICAgICBjb25zdCBpY29uSHRtbCA9IGljb24oZmFJY29uKS5odG1sWzBdO1xuICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSBpY29uSHRtbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYEZvbnRBd2Vzb21lIGljb24gbm90IGZvdW5kOiAke25hbWV9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgdXBkYXRpbmcgaWNvbiAke2VmZmVjdGl2ZUljb259OmAsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBDbGVhbiB1cCByZXNvdXJjZXMgd2hlbiBlbGVtZW50IGlzIHJlbW92ZWRcbiAgYXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBcbiAgICAvLyBDbGVhciBvdXIgcmVmZXJlbmNlc1xuICAgIHRoaXMubGFzdEljb24gPSBudWxsO1xuICAgIHRoaXMubGFzdEljb25TaXplID0gbnVsbDtcbiAgICB0aGlzLmxhc3RDb2xvciA9IG51bGw7XG4gICAgdGhpcy5sYXN0U3Ryb2tlV2lkdGggPSBudWxsO1xuICB9XG59IiwgIi8qKlxuICogQ0ROIHZlcnNpb25zIGZvciBsYXp5LWxvYWRlZCBsaWJyYXJpZXMuXG4gKiBLZWVwIHRoZXNlIGluIHN5bmMgd2l0aCBwYWNrYWdlLmpzb24gZm9yIHR5cGUgY29tcGF0aWJpbGl0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IENETl9WRVJTSU9OUyA9IHtcbiAgeHRlcm06ICc1LjMuMCcsXG4gIHh0ZXJtQWRkb25GaXQ6ICcwLjguMCcsXG4gIGhpZ2hsaWdodEpzOiAnMTEuMTEuMScsXG4gIGFwZXhjaGFydHM6ICc1LjMuNicsXG4gIHRpcHRhcDogJzIuMjMuMCcsXG4gIGZvbnRhd2Vzb21lOiAnNy4xLjAnLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBCYXNlIENETiBVUkwgZm9yIGpzZGVsaXZyIEVTTSBpbXBvcnRzXG4gKi9cbmV4cG9ydCBjb25zdCBDRE5fQkFTRSA9ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtJztcbiIsICJpbXBvcnQgeyBDRE5fQkFTRSwgQ0ROX1ZFUlNJT05TIH0gZnJvbSAnLi92ZXJzaW9ucy5qcyc7XG5cbi8vIFR5cGUgaW1wb3J0cyAobm8gcnVudGltZSBvdmVyaGVhZClcbmltcG9ydCB0eXBlIHsgVGVybWluYWwsIElUZXJtaW5hbE9wdGlvbnMgfSBmcm9tICd4dGVybSc7XG5pbXBvcnQgdHlwZSB7IEZpdEFkZG9uIH0gZnJvbSAneHRlcm0tYWRkb24tZml0JztcbmltcG9ydCB0eXBlIHsgSExKU0FwaSB9IGZyb20gJ2hpZ2hsaWdodC5qcyc7XG5pbXBvcnQgdHlwZSBBcGV4Q2hhcnRzVHlwZSBmcm9tICdhcGV4Y2hhcnRzJztcbmltcG9ydCB0eXBlIHsgRWRpdG9yLCBFZGl0b3JPcHRpb25zIH0gZnJvbSAnQHRpcHRhcC9jb3JlJztcbmltcG9ydCB0eXBlIHsgU3RhcnRlcktpdE9wdGlvbnMgfSBmcm9tICdAdGlwdGFwL3N0YXJ0ZXIta2l0JztcbmltcG9ydCB0eXBlIHsgVW5kZXJsaW5lT3B0aW9ucyB9IGZyb20gJ0B0aXB0YXAvZXh0ZW5zaW9uLXVuZGVybGluZSc7XG5pbXBvcnQgdHlwZSB7IFRleHRBbGlnbk9wdGlvbnMgfSBmcm9tICdAdGlwdGFwL2V4dGVuc2lvbi10ZXh0LWFsaWduJztcbmltcG9ydCB0eXBlIHsgTGlua09wdGlvbnMgfSBmcm9tICdAdGlwdGFwL2V4dGVuc2lvbi1saW5rJztcblxuLyoqXG4gKiBCdW5kbGUgdHlwZSBmb3IgeHRlcm0gYW5kIGl0cyBhZGRvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJWHRlcm1CdW5kbGUge1xuICBUZXJtaW5hbDogdHlwZW9mIFRlcm1pbmFsO1xufVxuXG4vKipcbiAqIEJ1bmRsZSB0eXBlIGZvciB4dGVybS1hZGRvbi1maXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJWHRlcm1GaXRBZGRvbkJ1bmRsZSB7XG4gIEZpdEFkZG9uOiB0eXBlb2YgRml0QWRkb247XG59XG5cbi8qKlxuICogQnVuZGxlIHR5cGUgZm9yIFRpcHRhcCBlZGl0b3IgYW5kIGV4dGVuc2lvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVGlwdGFwQnVuZGxlIHtcbiAgRWRpdG9yOiB0eXBlb2YgRWRpdG9yO1xuICBTdGFydGVyS2l0OiB7IGNvbmZpZ3VyZTogKG9wdGlvbnM/OiBQYXJ0aWFsPFN0YXJ0ZXJLaXRPcHRpb25zPikgPT4gYW55IH07XG4gIFVuZGVybGluZTogeyBjb25maWd1cmU6IChvcHRpb25zPzogUGFydGlhbDxVbmRlcmxpbmVPcHRpb25zPikgPT4gYW55IH07XG4gIFRleHRBbGlnbjogeyBjb25maWd1cmU6IChvcHRpb25zPzogUGFydGlhbDxUZXh0QWxpZ25PcHRpb25zPikgPT4gYW55IH07XG4gIExpbms6IHsgY29uZmlndXJlOiAob3B0aW9ucz86IFBhcnRpYWw8TGlua09wdGlvbnM+KSA9PiBhbnkgfTtcbiAgVHlwb2dyYXBoeTogeyBjb25maWd1cmU6IChvcHRpb25zPzogYW55KSA9PiBhbnkgfTtcbn1cblxuLyoqXG4gKiBTaW5nbGV0b24gc2VydmljZSBmb3IgbGF6eS1sb2FkaW5nIGhlYXZ5IGxpYnJhcmllcyBmcm9tIENETi5cbiAqXG4gKiBUaGlzIHJlZHVjZXMgaW5pdGlhbCBidW5kbGUgc2l6ZSBieSBsb2FkaW5nIGxpYnJhcmllcyBvbmx5IHdoZW4gbmVlZGVkLlxuICogTGlicmFyaWVzIGFyZSBjYWNoZWQgYWZ0ZXIgZmlyc3QgbG9hZCB0byBhdm9pZCBkdXBsaWNhdGUgZmV0Y2hlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbGliTG9hZGVyID0gRGVlc1NlcnZpY2VMaWJMb2FkZXIuZ2V0SW5zdGFuY2UoKTtcbiAqIGNvbnN0IHh0ZXJtID0gYXdhaXQgbGliTG9hZGVyLmxvYWRYdGVybSgpO1xuICogY29uc3QgdGVybWluYWwgPSBuZXcgeHRlcm0uVGVybWluYWwoeyAuLi4gfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIERlZXNTZXJ2aWNlTGliTG9hZGVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2U6IERlZXNTZXJ2aWNlTGliTG9hZGVyO1xuXG4gIC8vIENhY2hlZCBsaWJyYXJ5IHJlZmVyZW5jZXNcbiAgcHJpdmF0ZSB4dGVybUxpYjogSVh0ZXJtQnVuZGxlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgeHRlcm1GaXRBZGRvbkxpYjogSVh0ZXJtRml0QWRkb25CdW5kbGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBoaWdobGlnaHRKc0xpYjogSExKU0FwaSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGFwZXhDaGFydHNMaWI6IHR5cGVvZiBBcGV4Q2hhcnRzVHlwZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHRpcHRhcExpYjogSVRpcHRhcEJ1bmRsZSB8IG51bGwgPSBudWxsO1xuXG4gIC8vIExvYWRpbmcgcHJvbWlzZXMgdG8gcHJldmVudCBkdXBsaWNhdGUgY29uY3VycmVudCBsb2Fkc1xuICBwcml2YXRlIHh0ZXJtTG9hZGluZ1Byb21pc2U6IFByb21pc2U8SVh0ZXJtQnVuZGxlPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZTogUHJvbWlzZTxJWHRlcm1GaXRBZGRvbkJ1bmRsZT4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBoaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlOiBQcm9taXNlPEhMSlNBcGk+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgYXBleENoYXJ0c0xvYWRpbmdQcm9taXNlOiBQcm9taXNlPHR5cGVvZiBBcGV4Q2hhcnRzVHlwZT4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB0aXB0YXBMb2FkaW5nUHJvbWlzZTogUHJvbWlzZTxJVGlwdGFwQnVuZGxlPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiBEZWVzU2VydmljZUxpYkxvYWRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRJbnN0YW5jZSgpOiBEZWVzU2VydmljZUxpYkxvYWRlciB7XG4gICAgaWYgKCFEZWVzU2VydmljZUxpYkxvYWRlci5pbnN0YW5jZSkge1xuICAgICAgRGVlc1NlcnZpY2VMaWJMb2FkZXIuaW5zdGFuY2UgPSBuZXcgRGVlc1NlcnZpY2VMaWJMb2FkZXIoKTtcbiAgICB9XG4gICAgcmV0dXJuIERlZXNTZXJ2aWNlTGliTG9hZGVyLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgeHRlcm0gdGVybWluYWwgZW11bGF0b3IgZnJvbSBDRE5cbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgdG8geHRlcm0gbW9kdWxlIHdpdGggVGVybWluYWwgY2xhc3NcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkWHRlcm0oKTogUHJvbWlzZTxJWHRlcm1CdW5kbGU+IHtcbiAgICBpZiAodGhpcy54dGVybUxpYikge1xuICAgICAgcmV0dXJuIHRoaXMueHRlcm1MaWI7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZTtcbiAgICB9XG5cbiAgICB0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2UgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXJsID0gYCR7Q0ROX0JBU0V9L3h0ZXJtQCR7Q0ROX1ZFUlNJT05TLnh0ZXJtfS8rZXNtYDtcbiAgICAgIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydCgvKiBAdml0ZS1pZ25vcmUgKi8gdXJsKTtcblxuICAgICAgLy8gQWxzbyBsb2FkIGFuZCBpbmplY3QgeHRlcm0gQ1NTXG4gICAgICBhd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzKCk7XG5cbiAgICAgIHRoaXMueHRlcm1MaWIgPSB7XG4gICAgICAgIFRlcm1pbmFsOiBtb2R1bGUuVGVybWluYWwsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRoaXMueHRlcm1MaWI7XG4gICAgfSkoKTtcblxuICAgIHJldHVybiB0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB4dGVybS1hZGRvbi1maXQgZnJvbSBDRE5cbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgdG8gRml0QWRkb24gY2xhc3NcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkWHRlcm1GaXRBZGRvbigpOiBQcm9taXNlPElYdGVybUZpdEFkZG9uQnVuZGxlPiB7XG4gICAgaWYgKHRoaXMueHRlcm1GaXRBZGRvbkxpYikge1xuICAgICAgcmV0dXJuIHRoaXMueHRlcm1GaXRBZGRvbkxpYjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZTtcbiAgICB9XG5cbiAgICB0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZSA9IChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1cmwgPSBgJHtDRE5fQkFTRX0veHRlcm0tYWRkb24tZml0QCR7Q0ROX1ZFUlNJT05TLnh0ZXJtQWRkb25GaXR9Lytlc21gO1xuICAgICAgY29uc3QgbW9kdWxlID0gYXdhaXQgaW1wb3J0KC8qIEB2aXRlLWlnbm9yZSAqLyB1cmwpO1xuXG4gICAgICB0aGlzLnh0ZXJtRml0QWRkb25MaWIgPSB7XG4gICAgICAgIEZpdEFkZG9uOiBtb2R1bGUuRml0QWRkb24sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRoaXMueHRlcm1GaXRBZGRvbkxpYjtcbiAgICB9KSgpO1xuXG4gICAgcmV0dXJuIHRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluamVjdCB4dGVybSBDU1Mgc3R5bGVzIGludG8gdGhlIGRvY3VtZW50IGhlYWRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaW5qZWN0WHRlcm1TdHlsZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc3R5bGVJZCA9ICd4dGVybS1jZG4tc3R5bGVzJztcbiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3R5bGVJZCkpIHtcbiAgICAgIHJldHVybjsgLy8gQWxyZWFkeSBpbmplY3RlZFxuICAgIH1cblxuICAgIGNvbnN0IGNzc1VybCA9IGAke0NETl9CQVNFfS94dGVybUAke0NETl9WRVJTSU9OUy54dGVybX0vY3NzL3h0ZXJtLmNzc2A7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChjc3NVcmwpO1xuICAgIGNvbnN0IGNzc1RleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgc3R5bGUuaWQgPSBzdHlsZUlkO1xuICAgIHN0eWxlLnRleHRDb250ZW50ID0gY3NzVGV4dDtcbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGhpZ2hsaWdodC5qcyBzeW50YXggaGlnaGxpZ2h0ZXIgZnJvbSBDRE5cbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgdG8gaGlnaGxpZ2h0LmpzIEFQSVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvYWRIaWdobGlnaHRKcygpOiBQcm9taXNlPEhMSlNBcGk+IHtcbiAgICBpZiAodGhpcy5oaWdobGlnaHRKc0xpYikge1xuICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWI7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZTtcbiAgICB9XG5cbiAgICB0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2UgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXJsID0gYCR7Q0ROX0JBU0V9L2hpZ2hsaWdodC5qc0Ake0NETl9WRVJTSU9OUy5oaWdobGlnaHRKc30vK2VzbWA7XG4gICAgICBjb25zdCBtb2R1bGUgPSBhd2FpdCBpbXBvcnQoLyogQHZpdGUtaWdub3JlICovIHVybCk7XG5cbiAgICAgIHRoaXMuaGlnaGxpZ2h0SnNMaWIgPSBtb2R1bGUuZGVmYXVsdDtcbiAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliO1xuICAgIH0pKCk7XG5cbiAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgQXBleENoYXJ0cyBjaGFydGluZyBsaWJyYXJ5IGZyb20gQ0ROXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIEFwZXhDaGFydHMgY29uc3RydWN0b3JcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkQXBleENoYXJ0cygpOiBQcm9taXNlPHR5cGVvZiBBcGV4Q2hhcnRzVHlwZT4ge1xuICAgIGlmICh0aGlzLmFwZXhDaGFydHNMaWIpIHtcbiAgICAgIHJldHVybiB0aGlzLmFwZXhDaGFydHNMaWI7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXBleENoYXJ0c0xvYWRpbmdQcm9taXNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2U7XG4gICAgfVxuXG4gICAgdGhpcy5hcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2UgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXJsID0gYCR7Q0ROX0JBU0V9L2FwZXhjaGFydHNAJHtDRE5fVkVSU0lPTlMuYXBleGNoYXJ0c30vK2VzbWA7XG4gICAgICBjb25zdCBtb2R1bGUgPSBhd2FpdCBpbXBvcnQoLyogQHZpdGUtaWdub3JlICovIHVybCk7XG5cbiAgICAgIHRoaXMuYXBleENoYXJ0c0xpYiA9IG1vZHVsZS5kZWZhdWx0O1xuICAgICAgcmV0dXJuIHRoaXMuYXBleENoYXJ0c0xpYjtcbiAgICB9KSgpO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBleENoYXJ0c0xvYWRpbmdQcm9taXNlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgVGlwdGFwIHJpY2ggdGV4dCBlZGl0b3IgYW5kIGV4dGVuc2lvbnMgZnJvbSBDRE5cbiAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgdG8gVGlwdGFwIGJ1bmRsZSB3aXRoIEVkaXRvciBhbmQgZXh0ZW5zaW9uc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvYWRUaXB0YXAoKTogUHJvbWlzZTxJVGlwdGFwQnVuZGxlPiB7XG4gICAgaWYgKHRoaXMudGlwdGFwTGliKSB7XG4gICAgICByZXR1cm4gdGhpcy50aXB0YXBMaWI7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlO1xuICAgIH1cblxuICAgIHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2UgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyc2lvbiA9IENETl9WRVJTSU9OUy50aXB0YXA7XG5cbiAgICAgIC8vIExvYWQgYWxsIFRpcHRhcCBtb2R1bGVzIGluIHBhcmFsbGVsXG4gICAgICBjb25zdCBbXG4gICAgICAgIGNvcmVNb2R1bGUsXG4gICAgICAgIHN0YXJ0ZXJLaXRNb2R1bGUsXG4gICAgICAgIHVuZGVybGluZU1vZHVsZSxcbiAgICAgICAgdGV4dEFsaWduTW9kdWxlLFxuICAgICAgICBsaW5rTW9kdWxlLFxuICAgICAgICB0eXBvZ3JhcGh5TW9kdWxlLFxuICAgICAgXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgaW1wb3J0KC8qIEB2aXRlLWlnbm9yZSAqLyBgJHtDRE5fQkFTRX0vQHRpcHRhcC9jb3JlQCR7dmVyc2lvbn0vK2VzbWApLFxuICAgICAgICBpbXBvcnQoLyogQHZpdGUtaWdub3JlICovIGAke0NETl9CQVNFfS9AdGlwdGFwL3N0YXJ0ZXIta2l0QCR7dmVyc2lvbn0vK2VzbWApLFxuICAgICAgICBpbXBvcnQoLyogQHZpdGUtaWdub3JlICovIGAke0NETl9CQVNFfS9AdGlwdGFwL2V4dGVuc2lvbi11bmRlcmxpbmVAJHt2ZXJzaW9ufS8rZXNtYCksXG4gICAgICAgIGltcG9ydCgvKiBAdml0ZS1pZ25vcmUgKi8gYCR7Q0ROX0JBU0V9L0B0aXB0YXAvZXh0ZW5zaW9uLXRleHQtYWxpZ25AJHt2ZXJzaW9ufS8rZXNtYCksXG4gICAgICAgIGltcG9ydCgvKiBAdml0ZS1pZ25vcmUgKi8gYCR7Q0ROX0JBU0V9L0B0aXB0YXAvZXh0ZW5zaW9uLWxpbmtAJHt2ZXJzaW9ufS8rZXNtYCksXG4gICAgICAgIGltcG9ydCgvKiBAdml0ZS1pZ25vcmUgKi8gYCR7Q0ROX0JBU0V9L0B0aXB0YXAvZXh0ZW5zaW9uLXR5cG9ncmFwaHlAJHt2ZXJzaW9ufS8rZXNtYCksXG4gICAgICBdKTtcblxuICAgICAgdGhpcy50aXB0YXBMaWIgPSB7XG4gICAgICAgIEVkaXRvcjogY29yZU1vZHVsZS5FZGl0b3IsXG4gICAgICAgIFN0YXJ0ZXJLaXQ6IHN0YXJ0ZXJLaXRNb2R1bGUuZGVmYXVsdCB8fCBzdGFydGVyS2l0TW9kdWxlLlN0YXJ0ZXJLaXQsXG4gICAgICAgIFVuZGVybGluZTogdW5kZXJsaW5lTW9kdWxlLmRlZmF1bHQgfHwgdW5kZXJsaW5lTW9kdWxlLlVuZGVybGluZSxcbiAgICAgICAgVGV4dEFsaWduOiB0ZXh0QWxpZ25Nb2R1bGUuZGVmYXVsdCB8fCB0ZXh0QWxpZ25Nb2R1bGUuVGV4dEFsaWduLFxuICAgICAgICBMaW5rOiBsaW5rTW9kdWxlLmRlZmF1bHQgfHwgbGlua01vZHVsZS5MaW5rLFxuICAgICAgICBUeXBvZ3JhcGh5OiB0eXBvZ3JhcGh5TW9kdWxlLmRlZmF1bHQgfHwgdHlwb2dyYXBoeU1vZHVsZS5UeXBvZ3JhcGh5LFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHRoaXMudGlwdGFwTGliO1xuICAgIH0pKCk7XG5cbiAgICByZXR1cm4gdGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVsb2FkIG11bHRpcGxlIGxpYnJhcmllcyBpbiBwYXJhbGxlbFxuICAgKiBVc2VmdWwgZm9yIHdhcm1pbmcgdGhlIGNhY2hlIGJlZm9yZSBjb21wb25lbnRzIGFyZSByZW5kZXJlZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHByZWxvYWRBbGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5sb2FkWHRlcm0oKSxcbiAgICAgIHRoaXMubG9hZFh0ZXJtRml0QWRkb24oKSxcbiAgICAgIHRoaXMubG9hZEhpZ2hsaWdodEpzKCksXG4gICAgICB0aGlzLmxvYWRBcGV4Q2hhcnRzKCksXG4gICAgICB0aGlzLmxvYWRUaXB0YXAoKSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHNwZWNpZmljIGxpYnJhcnkgaXMgYWxyZWFkeSBsb2FkZWRcbiAgICovXG4gIHB1YmxpYyBpc0xvYWRlZChsaWJyYXJ5OiAneHRlcm0nIHwgJ3h0ZXJtRml0QWRkb24nIHwgJ2hpZ2hsaWdodEpzJyB8ICdhcGV4Q2hhcnRzJyB8ICd0aXB0YXAnKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoIChsaWJyYXJ5KSB7XG4gICAgICBjYXNlICd4dGVybSc6XG4gICAgICAgIHJldHVybiB0aGlzLnh0ZXJtTGliICE9PSBudWxsO1xuICAgICAgY2FzZSAneHRlcm1GaXRBZGRvbic6XG4gICAgICAgIHJldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWIgIT09IG51bGw7XG4gICAgICBjYXNlICdoaWdobGlnaHRKcyc6XG4gICAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliICE9PSBudWxsO1xuICAgICAgY2FzZSAnYXBleENoYXJ0cyc6XG4gICAgICAgIHJldHVybiB0aGlzLmFwZXhDaGFydHNMaWIgIT09IG51bGw7XG4gICAgICBjYXNlICd0aXB0YXAnOlxuICAgICAgICByZXR1cm4gdGhpcy50aXB0YXBMaWIgIT09IG51bGw7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCAiZXhwb3J0IHsgRGVlc1NlcnZpY2VMaWJMb2FkZXIgfSBmcm9tICcuL0RlZXNTZXJ2aWNlTGliTG9hZGVyLmpzJztcbmV4cG9ydCB0eXBlIHsgSVh0ZXJtQnVuZGxlLCBJWHRlcm1GaXRBZGRvbkJ1bmRsZSwgSVRpcHRhcEJ1bmRsZSB9IGZyb20gJy4vRGVlc1NlcnZpY2VMaWJMb2FkZXIuanMnO1xuZXhwb3J0IHsgQ0ROX0JBU0UsIENETl9WRVJTSU9OUyB9IGZyb20gJy4vdmVyc2lvbnMuanMnO1xuIiwgImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVNVVjRaV04xZEdsdmJrVnVkbWx5YjI1dFpXNTBMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZkSE5mZDJWaUwyVnNaVzFsYm5Sekx6QXdaM0p2ZFhBdGNuVnVkR2x0WlM5cGJuUmxjbVpoWTJWekwwbEZlR1ZqZFhScGIyNUZiblpwY205dWJXVnVkQzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pSW4wPSIsICJleHBvcnQgKiBmcm9tICcuL0lFeGVjdXRpb25FbnZpcm9ubWVudC5qcyc7XG4iLCAiZXhwb3J0IGNvbnN0IERFRkFVTFRfRURJVE9SX09SSUdJTiA9ICdodHRwczovL3N0YWNrYmxpdHouY29tJztcbmV4cG9ydCBjb25zdCBTRUFSQ0hfUEFSQU1fQVVUSF9DT0RFID0gJ2NvZGUnO1xuZXhwb3J0IGNvbnN0IFNFQVJDSF9QQVJBTV9FUlJPUiA9ICdlcnJvcic7XG5leHBvcnQgY29uc3QgU0VBUkNIX1BBUkFNX0VSUk9SX0RFU0NSSVBUSU9OID0gJ2Vycm9yX2Rlc2NyaXB0aW9uJztcbmV4cG9ydCBjb25zdCBCUk9BRENBU1RfQ0hBTk5FTF9OQU1FID0gJ19fd2NfYXBpX2JjX18nO1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfVE9LRU5TX05BTUUgPSAnX193Y19hcGlfdG9rZW5zX18nO1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfQ09ERV9WRVJJRklFUl9OQU1FID0gJ19fd2NfYXBpX3ZlcmlmaWVyX18nO1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfUE9QVVBfTkFNRSA9ICdfX3djX2FwaV9wb3B1cF9fJztcbiIsICJleHBvcnQgY2xhc3MgVHlwZWRFdmVudFRhcmdldCB7XG4gICAgX2J1cyA9IG5ldyBFdmVudFRhcmdldCgpO1xuICAgIGxpc3RlbihsaXN0ZW5lcikge1xuICAgICAgICBmdW5jdGlvbiB3cmFwcGVkTGlzdGVuZXIoZXZlbnQpIHtcbiAgICAgICAgICAgIGxpc3RlbmVyKGV2ZW50LmRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2J1cy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgd3JhcHBlZExpc3RlbmVyKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHRoaXMuX2J1cy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgd3JhcHBlZExpc3RlbmVyKTtcbiAgICB9XG4gICAgZmlyZUV2ZW50KGRhdGEpIHtcbiAgICAgICAgdGhpcy5fYnVzLmRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgnbWVzc2FnZScsIHsgZGF0YSB9KSk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFNUT1JBR0VfVE9LRU5TX05BTUUgfSBmcm9tICcuL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBUeXBlZEV2ZW50VGFyZ2V0IH0gZnJvbSAnLi9UeXBlZEV2ZW50VGFyZ2V0LmpzJztcbmNvbnN0IElHTk9SRURfRVJST1IgPSBuZXcgRXJyb3IoKTtcbklHTk9SRURfRVJST1Iuc3RhY2sgPSAnJztcbmNvbnN0IGFjY2Vzc1Rva2VuQ2hhbmdlZExpc3RlbmVycyA9IG5ldyBUeXBlZEV2ZW50VGFyZ2V0KCk7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgVG9rZW5zIHtcbiAgICBvcmlnaW47XG4gICAgcmVmcmVzaDtcbiAgICBhY2Nlc3M7XG4gICAgZXhwaXJlcztcbiAgICBfcmV2b2tlZCA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAvLyBlZGl0b3Igb3JpZ2luIHRoYXQgdGhvc2UgdG9rZW5zIGFyZSBib3VuZCB0bywgbW9zdGx5IHVzZWQgZm9yIGRldmVsb3BtZW50XG4gICAgb3JpZ2luLCBcbiAgICAvLyB0b2tlbiB0byB1c2UgdG8gZ2V0IGEgbmV3IGFjY2VzcyB0b2tlblxuICAgIHJlZnJlc2gsIFxuICAgIC8vIHRva2VuIHRvIHByb3ZpZGUgdG8gd2ViY29udGFpbmVyXG4gICAgYWNjZXNzLCBcbiAgICAvLyB0aW1lIGluIFVUQyB3aGVuIHRoZSB0b2tlbiBleHBpcmVzXG4gICAgZXhwaXJlcykge1xuICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbjtcbiAgICAgICAgdGhpcy5yZWZyZXNoID0gcmVmcmVzaDtcbiAgICAgICAgdGhpcy5hY2Nlc3MgPSBhY2Nlc3M7XG4gICAgICAgIHRoaXMuZXhwaXJlcyA9IGV4cGlyZXM7XG4gICAgfVxuICAgIGFzeW5jIGFjdGl2YXRlKG9uRmFpbGVkUmVmcmVzaCkge1xuICAgICAgICBpZiAodGhpcy5fcmV2b2tlZC5zaWduYWwuYWJvcnRlZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUb2tlbiByZXZva2VkJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgdGhlIGFjY2VzcyB0b2tlbiBleHBpcmVkIHdlIGZldGNoIGEgbmV3IG9uZVxuICAgICAgICBpZiAodGhpcy5leHBpcmVzIDwgRGF0ZS5ub3coKSkge1xuICAgICAgICAgICAgaWYgKCEoYXdhaXQgdGhpcy5fZmV0Y2hOZXdBY2Nlc3NUb2tlbigpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zeW5jKCk7XG4gICAgICAgIHRoaXMuX3N0YXJ0UmVmcmVzaFRva2Vuc0xvb3Aob25GYWlsZWRSZWZyZXNoKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFzeW5jIHJldm9rZShjbGllbnRJZCwgaWdub3JlUmV2b2tlRXJyb3IpIHtcbiAgICAgICAgdGhpcy5fcmV2b2tlZC5hYm9ydCgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvcmV2b2tlYCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogbmV3IFVSTFNlYXJjaFBhcmFtcyh7IHRva2VuOiB0aGlzLnJlZnJlc2gsIHRva2VuX3R5cGVfaGludDogJ3JlZnJlc2hfdG9rZW4nLCBjbGllbnRfaWQ6IGNsaWVudElkIH0pLFxuICAgICAgICAgICAgICAgIG1vZGU6ICdjb3JzJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvZ291dGApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKCFpZ25vcmVSZXZva2VFcnJvcikge1xuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNsZWFyVG9rZW5zSW5TdG9yYWdlKCk7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tU3RvcmFnZSgpIHtcbiAgICAgICAgY29uc3Qgc2F2ZWRUb2tlbnMgPSByZWFkVG9rZW5zRnJvbVN0b3JhZ2UoKTtcbiAgICAgICAgaWYgKCFzYXZlZFRva2Vucykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBUb2tlbnMoc2F2ZWRUb2tlbnMub3JpZ2luLCBzYXZlZFRva2Vucy5yZWZyZXNoLCBzYXZlZFRva2Vucy5hY2Nlc3MsIHNhdmVkVG9rZW5zLmV4cGlyZXMpO1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgZnJvbUF1dGhDb2RlKHsgZWRpdG9yT3JpZ2luLCBjbGllbnRJZCwgY29kZVZlcmlmaWVyLCBhdXRoQ29kZSwgcmVkaXJlY3RVcmksIH0pIHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtlZGl0b3JPcmlnaW59L29hdXRoL3Rva2VuYCwge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvZHk6IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogY2xpZW50SWQsXG4gICAgICAgICAgICAgICAgY29kZTogYXV0aENvZGUsXG4gICAgICAgICAgICAgICAgY29kZV92ZXJpZmllcjogY29kZVZlcmlmaWVyLFxuICAgICAgICAgICAgICAgIGdyYW50X3R5cGU6ICdhdXRob3JpemF0aW9uX2NvZGUnLFxuICAgICAgICAgICAgICAgIHJlZGlyZWN0X3VyaTogcmVkaXJlY3RVcmksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1vZGU6ICdjb3JzJyxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIHRva2VuOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0b2tlblJlc3BvbnNlID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICBhc3NlcnRUb2tlblJlc3BvbnNlKHRva2VuUmVzcG9uc2UpO1xuICAgICAgICBjb25zdCB7IGFjY2Vzc190b2tlbjogYWNjZXNzLCByZWZyZXNoX3Rva2VuOiByZWZyZXNoIH0gPSB0b2tlblJlc3BvbnNlO1xuICAgICAgICBjb25zdCBleHBpcmVzID0gZ2V0RXhwaXJlc0Zyb21Ub2tlblJlc3BvbnNlKHRva2VuUmVzcG9uc2UpO1xuICAgICAgICByZXR1cm4gbmV3IFRva2VucyhlZGl0b3JPcmlnaW4sIHJlZnJlc2gsIGFjY2VzcywgZXhwaXJlcyk7XG4gICAgfVxuICAgIGFzeW5jIF9mZXRjaE5ld0FjY2Vzc1Rva2VuKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvdG9rZW5gLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgICAgICAgICAgICAgZ3JhbnRfdHlwZTogJ3JlZnJlc2hfdG9rZW4nLFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuOiB0aGlzLnJlZnJlc2gsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbW9kZTogJ2NvcnMnLFxuICAgICAgICAgICAgICAgIHNpZ25hbDogdGhpcy5fcmV2b2tlZC5zaWduYWwsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBJR05PUkVEX0VSUk9SO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdG9rZW5SZXNwb25zZSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgICAgIGFzc2VydFRva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSk7XG4gICAgICAgICAgICBjb25zdCB7IGFjY2Vzc190b2tlbjogYWNjZXNzLCByZWZyZXNoX3Rva2VuOiByZWZyZXNoIH0gPSB0b2tlblJlc3BvbnNlO1xuICAgICAgICAgICAgY29uc3QgZXhwaXJlcyA9IGdldEV4cGlyZXNGcm9tVG9rZW5SZXNwb25zZSh0b2tlblJlc3BvbnNlKTtcbiAgICAgICAgICAgIHRoaXMuYWNjZXNzID0gYWNjZXNzO1xuICAgICAgICAgICAgdGhpcy5leHBpcmVzID0gZXhwaXJlcztcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaCA9IHJlZnJlc2g7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICBjbGVhclRva2Vuc0luU3RvcmFnZSgpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9zeW5jKCkge1xuICAgICAgICBwZXJzaXN0VG9rZW5zSW5TdG9yYWdlKHRoaXMpO1xuICAgICAgICBmaXJlQWNjZXNzVG9rZW5DaGFuZ2VkKHRoaXMuYWNjZXNzKTtcbiAgICB9XG4gICAgYXN5bmMgX3N0YXJ0UmVmcmVzaFRva2Vuc0xvb3Aob25GYWlsZWRSZWZyZXNoKSB7XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBjb25zdCBleHBpcmVzSW4gPSB0aGlzLmV4cGlyZXMgLSBEYXRlLm5vdygpIC0gMTAwMDtcbiAgICAgICAgICAgIGF3YWl0IHdhaXQoTWF0aC5tYXgoZXhwaXJlc0luLCAxMDAwKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5fcmV2b2tlZC5zaWduYWwuYWJvcnRlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5fZmV0Y2hOZXdBY2Nlc3NUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgb25GYWlsZWRSZWZyZXNoKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fc3luYygpO1xuICAgICAgICB9XG4gICAgfVxufVxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyVG9rZW5zSW5TdG9yYWdlKCkge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFNUT1JBR0VfVE9LRU5TX05BTUUpO1xufVxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEFjY2Vzc1Rva2VuQ2hhbmdlZExpc3RlbmVyKGxpc3RlbmVyKSB7XG4gICAgcmV0dXJuIGFjY2Vzc1Rva2VuQ2hhbmdlZExpc3RlbmVycy5saXN0ZW4obGlzdGVuZXIpO1xufVxuZnVuY3Rpb24gcmVhZFRva2Vuc0Zyb21TdG9yYWdlKCkge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRUb2tlbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX1RPS0VOU19OQU1FKTtcbiAgICBpZiAoIXNlcmlhbGl6ZWRUb2tlbnMpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHNlcmlhbGl6ZWRUb2tlbnMpO1xuICAgIH1cbiAgICBjYXRjaCB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHBlcnNpc3RUb2tlbnNJblN0b3JhZ2UodG9rZW5zKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9UT0tFTlNfTkFNRSwgSlNPTi5zdHJpbmdpZnkodG9rZW5zKSk7XG59XG5mdW5jdGlvbiBnZXRFeHBpcmVzRnJvbVRva2VuUmVzcG9uc2UoeyBjcmVhdGVkX2F0LCBleHBpcmVzX2luIH0pIHtcbiAgICByZXR1cm4gKGNyZWF0ZWRfYXQgKyBleHBpcmVzX2luKSAqIDEwMDA7XG59XG5mdW5jdGlvbiBhc3NlcnRUb2tlblJlc3BvbnNlKHRva2VuKSB7XG4gICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gJ29iamVjdCcgfHwgIXRva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBUb2tlbiBSZXNwb25zZScpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHRva2VuLmFjY2Vzc190b2tlbiAhPT0gJ3N0cmluZycgfHxcbiAgICAgICAgdHlwZW9mIHRva2VuLnJlZnJlc2hfdG9rZW4gIT09ICdzdHJpbmcnIHx8XG4gICAgICAgIHR5cGVvZiB0b2tlbi5jcmVhdGVkX2F0ICE9PSAnbnVtYmVyJyB8fFxuICAgICAgICB0eXBlb2YgdG9rZW4uZXhwaXJlc19pbiAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFRva2VuIFJlc3BvbnNlJyk7XG4gICAgfVxufVxuZnVuY3Rpb24gd2FpdChtcykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xufVxuZnVuY3Rpb24gZmlyZUFjY2Vzc1Rva2VuQ2hhbmdlZChhY2Nlc3NUb2tlbikge1xuICAgIGFjY2Vzc1Rva2VuQ2hhbmdlZExpc3RlbmVycy5maXJlRXZlbnQoYWNjZXNzVG9rZW4pO1xufVxuIiwgImltcG9ydCB7IERFRkFVTFRfRURJVE9SX09SSUdJTiB9IGZyb20gJy4vY29uc3RhbnRzLmpzJztcbmNvbnN0IHBhcmFtcyA9IHt9O1xubGV0IGVkaXRvck9yaWdpbiA9IG51bGw7XG5leHBvcnQgY29uc3QgaWZyYW1lU2V0dGluZ3MgPSB7XG4gICAgZ2V0IGVkaXRvck9yaWdpbigpIHtcbiAgICAgICAgaWYgKGVkaXRvck9yaWdpbiA9PSBudWxsKSB7XG4gICAgICAgICAgICBlZGl0b3JPcmlnaW4gPSBuZXcgVVJMKGdsb2JhbFRoaXMuV0VCQ09OVEFJTkVSX0FQSV9JRlJBTUVfVVJMID8/IERFRkFVTFRfRURJVE9SX09SSUdJTikub3JpZ2luO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlZGl0b3JPcmlnaW47XG4gICAgfSxcbiAgICBzZXQgZWRpdG9yT3JpZ2luKG5ld09yaWdpbikge1xuICAgICAgICBlZGl0b3JPcmlnaW4gPSBuZXcgVVJMKG5ld09yaWdpbikub3JpZ2luO1xuICAgIH0sXG4gICAgc2V0UXVlcnlQYXJhbShrZXksIHZhbHVlKSB7XG4gICAgICAgIHBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgfSxcbiAgICBnZXQgdXJsKCkge1xuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHRoaXMuZWRpdG9yT3JpZ2luKTtcbiAgICAgICAgdXJsLnBhdGhuYW1lID0gJy9oZWFkbGVzcyc7XG4gICAgICAgIGZvciAoY29uc3QgcGFyYW0gaW4gcGFyYW1zKSB7XG4gICAgICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldChwYXJhbSwgcGFyYW1zW3BhcmFtXSk7XG4gICAgICAgIH1cbiAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3ZlcnNpb24nLCBcIjEuNi4xXCIpO1xuICAgICAgICByZXR1cm4gdXJsO1xuICAgIH0sXG59O1xuIiwgIi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzc2MzYjc2VjdGlvbi00LjIgdGhhdCBjYW5cbiAqIHJ1biBpbiB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBAcGFyYW0gaW5wdXQgQ29kZSB2ZXJpZmllci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIFMyNTYoaW5wdXQpIHtcbiAgICAvLyBpbnB1dCBoZXJlIGlzIGFzc3VtZWQgdG8gbWF0Y2ggaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzM5ODYjc2VjdGlvbi0yLjNcbiAgICBjb25zdCBhc2NpaSA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShpbnB1dCk7XG4gICAgY29uc3Qgc2hhMjU2ID0gbmV3IFVpbnQ4QXJyYXkoYXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoJ1NIQS0yNTYnLCBhc2NpaSkpO1xuICAgIC8vIGJhc2U2NHVybCBlbmNvZGUsIGJhc2VkIG9uIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvR2xvc3NhcnkvQmFzZTY0I3RoZV91bmljb2RlX3Byb2JsZW1cbiAgICByZXR1cm4gYnRvYShzaGEyNTYucmVkdWNlKChiaW5hcnksIGJ5dGUpID0+IGJpbmFyeSArIFN0cmluZy5mcm9tQ29kZVBvaW50KGJ5dGUpLCAnJykpXG4gICAgICAgIC5yZXBsYWNlKC9cXCsvZywgJy0nKVxuICAgICAgICAucmVwbGFjZSgvXFwvL2csICdfJylcbiAgICAgICAgLnJlcGxhY2UoLz0rJC8sICcnKTtcbn1cbi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzc2MzYjc2VjdGlvbi00LjEgd2l0aFxuICogYSBzbGlnaHQgZGV2aWF0aW9uOlxuICpcbiAqICAtIFdlIHVzZSAxMjggY2hhcmFjdGVycyAoaXQncyBleHBlY3RlZCB0byBiZSBiZXR3ZWVuIDQzIGFuZCAxMjgpXG4gKiAgLSBXZSB1c2UgNjQgY2hhcmFjdGVycyBpbnN0ZWFkIG9mIDY2XG4gKlxuICogU28gdGhlIGVudHJvcHkgaXMgbG93ZXIgZ2l2ZW4gdGhlIHNwYWNlIHNpemUgaXMgNjReMTI4IGluc3RlYWQgb2YgNjZeMTI4LlxuICogSXQgc3RpbGwgc2F0aXNmaWVzIHRoZSBlbnRyb3B5IGNvbnN0cmFpbnQgZ2l2ZW4gdGhhdCA2NF4xMjggPiA2Nl40My5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5ld0NvZGVWZXJpZmllcigpIHtcbiAgICBjb25zdCByYW5kb20gPSBuZXcgVWludDhBcnJheSg5Nik7XG4gICAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhyYW5kb20pO1xuICAgIGxldCBjb2RlVmVyaWZpZXIgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDMyOyArK2kpIHtcbiAgICAgICAgY29kZVZlcmlmaWVyICs9IG5leHRGb3VyQ2hhcnMocmFuZG9tWzMgKiBpICsgMF0sIHJhbmRvbVszICogaSArIDFdLCByYW5kb21bMyAqIGkgKyAyXSk7XG4gICAgfVxuICAgIHJldHVybiBjb2RlVmVyaWZpZXI7XG59XG5mdW5jdGlvbiBuZXh0Rm91ckNoYXJzKGJ5dGUxLCBieXRlMiwgYnl0ZTMpIHtcbiAgICBjb25zdCBjaGFyMSA9IGJ5dGUxID4+IDI7XG4gICAgY29uc3QgY2hhcjIgPSAoKGJ5dGUxICYgMykgPDwgNCkgfCAoYnl0ZTIgPj4gNCk7XG4gICAgY29uc3QgY2hhcjMgPSAoYnl0ZTIgJiAxNSkgfCAoKGJ5dGUzICYgMTkyKSA+PiAyKTtcbiAgICBjb25zdCBjaGFyNCA9IGJ5dGUzICYgNjM7XG4gICAgcmV0dXJuIFtjaGFyMSwgY2hhcjIsIGNoYXIzLCBjaGFyNF0ubWFwKHVucmVzZXJ2ZWRDaGFyYWN0ZXJzKS5qb2luKCcnKTtcbn1cbmZ1bmN0aW9uIHVucmVzZXJ2ZWRDaGFyYWN0ZXJzKGNvZGUpIHtcbiAgICBsZXQgb2Zmc2V0O1xuICAgIGlmIChjb2RlIDwgMjYpIHtcbiAgICAgICAgb2Zmc2V0ID0gY29kZSArIDY1OyAvLyBbQS1aXVxuICAgIH1cbiAgICBlbHNlIGlmIChjb2RlIDwgNTIpIHtcbiAgICAgICAgb2Zmc2V0ID0gY29kZSAtIDI2ICsgOTc7IC8vIFthLXpdXG4gICAgfVxuICAgIGVsc2UgaWYgKGNvZGUgPCA2Mikge1xuICAgICAgICBvZmZzZXQgPSBjb2RlIC0gNTIgKyA0ODsgLy8gWzAtOV1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIG9mZnNldCA9IGNvZGUgPT09IDYyID8gMzAgLyogXyAqLyA6IDQ1IC8qIC0gKi87XG4gICAgfVxuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKG9mZnNldCk7XG59XG4iLCAiLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0dGFibGVQcm9taXNlKCkge1xuICAgIGxldCByZXNvbHZlO1xuICAgIGxldCBwcm9taXNlO1xuICAgIGZ1bmN0aW9uIHJlc2V0KCkge1xuICAgICAgICBwcm9taXNlID0gbmV3IFByb21pc2UoKF9yZXNvbHZlKSA9PiAocmVzb2x2ZSA9IF9yZXNvbHZlKSk7XG4gICAgfVxuICAgIHJlc2V0KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZ2V0IHByb21pc2UoKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb2x2ZSh2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICByZXNldCxcbiAgICB9O1xufVxuIiwgImltcG9ydCB7IFRva2VucywgY2xlYXJUb2tlbnNJblN0b3JhZ2UgfSBmcm9tICcuL3Rva2Vucy5qcyc7XG5pbXBvcnQgeyBTRUFSQ0hfUEFSQU1fQVVUSF9DT0RFLCBTRUFSQ0hfUEFSQU1fRVJST1IsIFNUT1JBR0VfQ09ERV9WRVJJRklFUl9OQU1FLCBCUk9BRENBU1RfQ0hBTk5FTF9OQU1FLCBTVE9SQUdFX1BPUFVQX05BTUUsIFNFQVJDSF9QQVJBTV9FUlJPUl9ERVNDUklQVElPTiwgfSBmcm9tICcuL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBpZnJhbWVTZXR0aW5ncyB9IGZyb20gJy4vaWZyYW1lLXVybC5qcyc7XG5pbXBvcnQgeyBTMjU2LCBuZXdDb2RlVmVyaWZpZXIgfSBmcm9tICcuL2NvZGUuanMnO1xuaW1wb3J0IHsgcmVzZXR0YWJsZVByb21pc2UgfSBmcm9tICcuL3Jlc2V0LXByb21pc2UuanMnO1xuaW1wb3J0IHsgVHlwZWRFdmVudFRhcmdldCB9IGZyb20gJy4vVHlwZWRFdmVudFRhcmdldC5qcyc7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgYXV0aFN0YXRlID0ge1xuICAgIGluaXRpYWxpemVkOiBmYWxzZSxcbiAgICBib290Q2FsbGVkOiBmYWxzZSxcbiAgICBhdXRoQ29tcGxldGU6IHJlc2V0dGFibGVQcm9taXNlKCksXG4gICAgY2xpZW50SWQ6ICcnLFxuICAgIG9hdXRoU2NvcGU6ICcnLFxuICAgIGJyb2FkY2FzdENoYW5uZWw6IG51bGwsXG4gICAgZ2V0IGVkaXRvck9yaWdpbigpIHtcbiAgICAgICAgcmV0dXJuIGlmcmFtZVNldHRpbmdzLmVkaXRvck9yaWdpbjtcbiAgICB9LFxuICAgIHRva2VuczogbnVsbCxcbn07XG5jb25zdCBhdXRoRmFpbGVkTGlzdGVuZXJzID0gbmV3IFR5cGVkRXZlbnRUYXJnZXQoKTtcbmNvbnN0IGxvZ2dlZE91dExpc3RlbmVycyA9IG5ldyBUeXBlZEV2ZW50VGFyZ2V0KCk7XG5mdW5jdGlvbiBicm9hZGNhc3RNZXNzYWdlKG1lc3NhZ2UpIHtcbiAgICBpZiAoIWF1dGhTdGF0ZS5icm9hZGNhc3RDaGFubmVsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXV0aFN0YXRlLmJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UobWVzc2FnZSk7XG4gICAgLy8gY2hlY2sgaWYgd2UgYXJlIGluIGEgcG9wdXAgbW9kZVxuICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX1BPUFVQX05BTUUpID09PSAndHJ1ZScgJiYgbWVzc2FnZS50eXBlICE9PSAnYXV0aC1sb2dvdXQnKSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFNUT1JBR0VfUE9QVVBfTkFNRSk7XG4gICAgICAgIC8vIHdhaXQgYSB0aWNrIHRvIG1ha2Ugc3VyZSB0aGUgcG9zdGVkIG1lc3NhZ2UgaGFzIGJlZW4gc2VudFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5leHBvcnQgY29uc3QgYXV0aCA9IHtcbiAgICBpbml0KHsgZWRpdG9yT3JpZ2luLCBjbGllbnRJZCwgc2NvcGUgfSkge1xuICAgICAgICBpZiAoYXV0aFN0YXRlLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luaXQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2UnKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZW50ZXJwcmlzZSA9IHRydWU7XG4gICAgICAgIGlmIChlbnRlcnByaXNlICYmIGF1dGhTdGF0ZS5ib290Q2FsbGVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BhdXRoLmluaXRgIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGJlZm9yZSBgV2ViQ29udGFpbmVyLmJvb3RgJyk7XG4gICAgICAgIH1cbiAgICAgICAgYXV0aFN0YXRlLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgYXV0aFN0YXRlLnRva2VucyA9IFRva2Vucy5mcm9tU3RvcmFnZSgpO1xuICAgICAgICBhdXRoU3RhdGUuY2xpZW50SWQgPSBjbGllbnRJZDtcbiAgICAgICAgYXV0aFN0YXRlLm9hdXRoU2NvcGUgPSBzY29wZTtcbiAgICAgICAgYXV0aFN0YXRlLmJyb2FkY2FzdENoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbChCUk9BRENBU1RfQ0hBTk5FTF9OQU1FKTtcbiAgICAgICAgLy8gY29uZmlndXJlIGlmcmFtZSB1cmxcbiAgICAgICAgaWZyYW1lU2V0dGluZ3Muc2V0UXVlcnlQYXJhbSgnY2xpZW50X2lkJywgY2xpZW50SWQpO1xuICAgICAgICBpZiAoZWRpdG9yT3JpZ2luKSB7XG4gICAgICAgICAgICBpZnJhbWVTZXR0aW5ncy5lZGl0b3JPcmlnaW4gPSBuZXcgVVJMKGVkaXRvck9yaWdpbikub3JpZ2luO1xuICAgICAgICB9XG4gICAgICAgIGxvZ2dlZE91dExpc3RlbmVycy5saXN0ZW4oKCkgPT4gYXV0aFN0YXRlLmF1dGhDb21wbGV0ZS5yZXNldCgpKTtcbiAgICAgICAgLy8gaWYgYXV0aGVudGljYXRpb24gb3IgbG9nb3V0IGFyZSBkb25lIGluIGFub3RoZXIgcGFnZSwgd2Ugd2FudCB0byByZWZsZWN0IHRoZSBzdGF0ZSBvbiB0aGlzIHBhZ2UgYXMgd2VsbFxuICAgICAgICBhdXRoU3RhdGUuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25DaGFubmVsTWVzc2FnZSk7XG4gICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9uQ2hhbm5lbE1lc3NhZ2UoZXZlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVkRXZlbnQgPSBldmVudC5kYXRhO1xuICAgICAgICAgICAgaWYgKHR5cGVkRXZlbnQudHlwZSA9PT0gJ2F1dGgtY29tcGxldGUnKSB7XG4gICAgICAgICAgICAgICAgYXV0aFN0YXRlLnRva2VucyA9IFRva2Vucy5mcm9tU3RvcmFnZSgpO1xuICAgICAgICAgICAgICAgIC8vIHdlIGlnbm9yZSB0aGUgcG9zc2libGUgZXJyb3IgaGVyZSBiZWNhdXNlIHRoZXkgY2FuJ3QgaGF2ZSBleHBpcmVkIGp1c3QgeWV0XG4gICAgICAgICAgICAgICAgYXdhaXQgYXV0aFN0YXRlLnRva2Vucy5hY3RpdmF0ZShvbkZhaWxlZFRva2VuUmVmcmVzaCk7XG4gICAgICAgICAgICAgICAgYXV0aFN0YXRlLmF1dGhDb21wbGV0ZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVkRXZlbnQudHlwZSA9PT0gJ2F1dGgtZmFpbGVkJykge1xuICAgICAgICAgICAgICAgIGF1dGhGYWlsZWRMaXN0ZW5lcnMuZmlyZUV2ZW50KHR5cGVkRXZlbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlZEV2ZW50LnR5cGUgPT09ICdhdXRoLWxvZ291dCcpIHtcbiAgICAgICAgICAgICAgICBsb2dnZWRPdXRMaXN0ZW5lcnMuZmlyZUV2ZW50KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhdXRoU3RhdGUudG9rZW5zKSB7XG4gICAgICAgICAgICBjb25zdCB0b2tlbnMgPSBhdXRoU3RhdGUudG9rZW5zO1xuICAgICAgICAgICAgaWYgKHRva2Vucy5vcmlnaW4gPT09IGF1dGhTdGF0ZS5lZGl0b3JPcmlnaW4pIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBIZXJlIHdlIGFzc3VtZSB0aGF0IHRoZSByZWZyZXNoIHRva2VuIG5ldmVyIGV4cGlyZXMgd2hpY2hcbiAgICAgICAgICAgICAgICAgKiBtaWdodCBub3QgYmUgY29ycmVjdC4gSWYgdGhhdCBpcyB0aGUgY2FzZSB0aG91Z2gsIHdlIHdpbGxcbiAgICAgICAgICAgICAgICAgKiBlbWl0IGEgJ2xvZ2dlZC1vdXQnIGV2ZW50IHRvIHNpZ25hbCB0aGF0IHRoZSB1c2VyIGhhcyBiZWVuXG4gICAgICAgICAgICAgICAgICogbG9nZ2VkIG91dCwgd2hpY2ggY291bGQgYWxzbyBoYXBwZW4gYXQgYSBsYXRlciB0aW1lIGFueXdheS5cbiAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAqIEJlY2F1c2UgdGhpcyBmbG93IGlzIGRvbmUgZW50aXJlbHkgbG9jYWxseSwgd2UgZG8gbm90IGJyb2FkY2FzdFxuICAgICAgICAgICAgICAgICAqIGFueXRoaW5nIHRvIHRoZSBvdGhlciB0YWJzLiBUaGV5IHNob3VsZCBiZSBwZXJmb3JtaW5nIGEgc2ltaWxhclxuICAgICAgICAgICAgICAgICAqIGNoZWNrLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCB0b2tlbnMuYWN0aXZhdGUob25GYWlsZWRUb2tlblJlZnJlc2gpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIGdvdCBuZXcgdG9rZW4gaW4gdGhlIG1lYW50aW1lIHdlIGRpc2NhcmQgdGhpcyBlcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dGhTdGF0ZS50b2tlbnMgIT09IHRva2Vucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlZE91dExpc3RlbmVycy5maXJlRXZlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBhdXRoU3RhdGUuYXV0aENvbXBsZXRlLnJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogJ2F1dGhvcml6ZWQnIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbGVhclRva2Vuc0luU3RvcmFnZSgpO1xuICAgICAgICAgICAgYXV0aFN0YXRlLnRva2VucyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbG9jYXRpb25VUkwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgY29uc3QgeyBzZWFyY2hQYXJhbXMgfSA9IGxvY2F0aW9uVVJMO1xuICAgICAgICBjb25zdCB1cGRhdGVVUkwgPSAoKSA9PiB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sIGRvY3VtZW50LnRpdGxlLCBsb2NhdGlvblVSTCk7XG4gICAgICAgIC8vIGNoZWNrIGZvciBlcnJvcnMgZmlyc3QsIGFrYSB0aGUgdXNlciBkZWNsaW5lZCB0aGUgYXV0aG9yaXNhdGlvbiBvciBzdGFja2JsaXR6IGRpZFxuICAgICAgICBpZiAoc2VhcmNoUGFyYW1zLmhhcyhTRUFSQ0hfUEFSQU1fRVJST1IpKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IHNlYXJjaFBhcmFtcy5nZXQoU0VBUkNIX1BBUkFNX0VSUk9SKTtcbiAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gc2VhcmNoUGFyYW1zLmdldChTRUFSQ0hfUEFSQU1fRVJST1JfREVTQ1JJUFRJT04pO1xuICAgICAgICAgICAgc2VhcmNoUGFyYW1zLmRlbGV0ZShTRUFSQ0hfUEFSQU1fRVJST1IpO1xuICAgICAgICAgICAgc2VhcmNoUGFyYW1zLmRlbGV0ZShTRUFSQ0hfUEFSQU1fRVJST1JfREVTQ1JJUFRJT04pO1xuICAgICAgICAgICAgdXBkYXRlVVJMKCk7XG4gICAgICAgICAgICBicm9hZGNhc3RNZXNzYWdlKHsgdHlwZTogJ2F1dGgtZmFpbGVkJywgZXJyb3IsIGRlc2NyaXB0aW9uIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiAnYXV0aC1mYWlsZWQnLCBlcnJvciwgZGVzY3JpcHRpb24gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiB0aGVyZSdzIGFuIGF1dGggY29kZVxuICAgICAgICBpZiAoc2VhcmNoUGFyYW1zLmhhcyhTRUFSQ0hfUEFSQU1fQVVUSF9DT0RFKSkge1xuICAgICAgICAgICAgY29uc3QgYXV0aENvZGUgPSBzZWFyY2hQYXJhbXMuZ2V0KFNFQVJDSF9QQVJBTV9BVVRIX0NPREUpO1xuICAgICAgICAgICAgY29uc3QgZWRpdG9yT3JpZ2luID0gYXV0aFN0YXRlLmVkaXRvck9yaWdpbjtcbiAgICAgICAgICAgIHNlYXJjaFBhcmFtcy5kZWxldGUoU0VBUkNIX1BBUkFNX0FVVEhfQ09ERSk7XG4gICAgICAgICAgICB1cGRhdGVVUkwoKTtcbiAgICAgICAgICAgIGNvbnN0IGNvZGVWZXJpZmllciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfQ09ERV9WRVJJRklFUl9OQU1FKTtcbiAgICAgICAgICAgIGlmICghY29kZVZlcmlmaWVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiAnbmVlZC1hdXRoJyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oU1RPUkFHRV9DT0RFX1ZFUklGSUVSX05BTUUpO1xuICAgICAgICAgICAgVG9rZW5zLmZyb21BdXRoQ29kZSh7XG4gICAgICAgICAgICAgICAgZWRpdG9yT3JpZ2luLFxuICAgICAgICAgICAgICAgIGNsaWVudElkOiBhdXRoU3RhdGUuY2xpZW50SWQsXG4gICAgICAgICAgICAgICAgYXV0aENvZGUsXG4gICAgICAgICAgICAgICAgY29kZVZlcmlmaWVyLFxuICAgICAgICAgICAgICAgIHJlZGlyZWN0VXJpOiBkZWZhdWx0UmVkaXJlY3RVcmkoKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oYXN5bmMgKHRva2VucykgPT4ge1xuICAgICAgICAgICAgICAgIGF1dGhTdGF0ZS50b2tlbnMgPSB0b2tlbnM7XG4gICAgICAgICAgICAgICAgYXNzZXJ0QXV0aFRva2VucyhhdXRoU3RhdGUudG9rZW5zKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgYXV0aFN0YXRlLnRva2Vucy5hY3RpdmF0ZShvbkZhaWxlZFRva2VuUmVmcmVzaCk7XG4gICAgICAgICAgICAgICAgLy8gaWYgYXV0aGVudGljYXRpb24gZmFpbGVkIHdlIHRocm93LCBhbmQgd2UnbGwgbWFyayBhdXRoIGFzIGZhaWxlZFxuICAgICAgICAgICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXV0aFN0YXRlLmF1dGhDb21wbGV0ZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgYnJvYWRjYXN0TWVzc2FnZSh7IHR5cGU6ICdhdXRoLWNvbXBsZXRlJyB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiB1bmxlc3MgdGhlIHJhaWxzIGFwcCBpcyBub3cgZG93biBmb3Igc29tZSByZWFzb24/XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgLy8gdHJlYXQgaXQgYXMgYSBsb2dnZWQgb3V0IGV2ZW50IHNvIHRoYXQgdGhlIHVzZXIgY2FuIHJldHJ5IHRvIGxvZ2luXG4gICAgICAgICAgICAgICAgbG9nZ2VkT3V0TGlzdGVuZXJzLmZpcmVFdmVudCgpO1xuICAgICAgICAgICAgICAgIGJyb2FkY2FzdE1lc3NhZ2UoeyB0eXBlOiAnYXV0aC1sb2dvdXQnIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6ICdhdXRob3JpemVkJyB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHN0YXR1czogJ25lZWQtYXV0aCcgfTtcbiAgICB9LFxuICAgIGFzeW5jIHN0YXJ0QXV0aEZsb3coeyBwb3B1cCB9ID0ge30pIHtcbiAgICAgICAgaWYgKCFhdXRoU3RhdGUuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYXV0aC5pbml0IG11c3QgYmUgY2FsbGVkIGZpcnN0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcHVwKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX1BPUFVQX05BTUUsICd0cnVlJyk7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSA1MDA7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IDYyMDtcbiAgICAgICAgICAgIGNvbnN0IGxlZnQgPSB3aW5kb3cuc2NyZWVuTGVmdCArICh3aW5kb3cub3V0ZXJXaWR0aCAtIHdpZHRoKSAvIDI7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSB3aW5kb3cuc2NyZWVuVG9wICsgKHdpbmRvdy5vdXRlckhlaWdodCAtIGhlaWdodCkgLyAyO1xuICAgICAgICAgICAgd2luZG93Lm9wZW4oYXdhaXQgZ2VuZXJhdGVPQXV0aFJlcXVlc3QoKSwgJ19ibGFuaycsIGBwb3B1cCx3aWR0aD0ke3dpZHRofSxoZWlnaHQ9JHtoZWlnaHR9LGxlZnQ9JHtsZWZ0fSx0b3A9JHt0b3B9YCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGF3YWl0IGdlbmVyYXRlT0F1dGhSZXF1ZXN0KCk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGFzeW5jIGxvZ291dCh7IGlnbm9yZVJldm9rZUVycm9yIH0gPSB7fSkge1xuICAgICAgICBhd2FpdCBhdXRoU3RhdGUudG9rZW5zPy5yZXZva2UoYXV0aFN0YXRlLmNsaWVudElkLCBpZ25vcmVSZXZva2VFcnJvciA/PyBmYWxzZSk7XG4gICAgICAgIGxvZ2dlZE91dExpc3RlbmVycy5maXJlRXZlbnQoKTtcbiAgICAgICAgYnJvYWRjYXN0TWVzc2FnZSh7IHR5cGU6ICdhdXRoLWxvZ291dCcgfSk7XG4gICAgfSxcbiAgICBsb2dnZWRJbigpIHtcbiAgICAgICAgcmV0dXJuIGF1dGhTdGF0ZS5hdXRoQ29tcGxldGUucHJvbWlzZTtcbiAgICB9LFxuICAgIG9uKGV2ZW50LCBsaXN0ZW5lcikge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICAgICAgICBjYXNlICdhdXRoLWZhaWxlZCc6IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXV0aEZhaWxlZExpc3RlbmVycy5saXN0ZW4obGlzdGVuZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnbG9nZ2VkLW91dCc6IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9nZ2VkT3V0TGlzdGVuZXJzLmxpc3RlbihsaXN0ZW5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBldmVudCB0eXBlICcke2V2ZW50fScuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxufTtcbmZ1bmN0aW9uIG9uRmFpbGVkVG9rZW5SZWZyZXNoKCkge1xuICAgIGxvZ2dlZE91dExpc3RlbmVycy5maXJlRXZlbnQoKTtcbiAgICBicm9hZGNhc3RNZXNzYWdlKHsgdHlwZTogJ2F1dGgtbG9nb3V0JyB9KTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRSZWRpcmVjdFVyaSgpIHtcbiAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWY7XG59XG5hc3luYyBmdW5jdGlvbiBnZW5lcmF0ZU9BdXRoUmVxdWVzdCgpIHtcbiAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSBuZXdDb2RlVmVyaWZpZXIoKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX0NPREVfVkVSSUZJRVJfTkFNRSwgY29kZVZlcmlmaWVyKTtcbiAgICBjb25zdCBjb2RlQ2hhbGxlbmdlID0gYXdhaXQgUzI1Nihjb2RlVmVyaWZpZXIpO1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoJy9vYXV0aC9hdXRob3JpemUnLCBhdXRoU3RhdGUuZWRpdG9yT3JpZ2luKTtcbiAgICBjb25zdCB7IHNlYXJjaFBhcmFtcyB9ID0gdXJsO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ3Jlc3BvbnNlX3R5cGUnLCAnY29kZScpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ2NsaWVudF9pZCcsIGF1dGhTdGF0ZS5jbGllbnRJZCk7XG4gICAgc2VhcmNoUGFyYW1zLmFwcGVuZCgncmVkaXJlY3RfdXJpJywgZGVmYXVsdFJlZGlyZWN0VXJpKCkpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ3Njb3BlJywgYXV0aFN0YXRlLm9hdXRoU2NvcGUpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ2NvZGVfY2hhbGxlbmdlJywgY29kZUNoYWxsZW5nZSk7XG4gICAgc2VhcmNoUGFyYW1zLmFwcGVuZCgnY29kZV9jaGFsbGVuZ2VfbWV0aG9kJywgJ1MyNTYnKTtcbiAgICByZXR1cm4gdXJsLnRvU3RyaW5nKCk7XG59XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0QXV0aFRva2Vucyh0b2tlbnMpIHtcbiAgICBpZiAoIXRva2Vucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09vcHMhIFRva2VucyBpcyBub3QgZGVmaW5lZCB3aGVuIGl0IGFsd2F5cyBzaG91bGQgYmUuJyk7XG4gICAgfVxufVxuIiwgIi8qKlxuICogVGhpcyB0eXBlIGlzIGluIGEgc2VwYXJhdGUgbW9kdWxlIHNvIHRoYXQgbG9jYWxzZXJ2aWNlIGNhbiBpbXBvcnQgaXRcbiAqIHdpdGhvdXQgYnVuZGxpbmcgYWxsIHRoZSBvdGhlciB3ZWJjb250YWluZXIgc3BlY2lmaWMgc3R1ZmYuXG4gKi9cbmV4cG9ydCB2YXIgUHJldmlld01lc3NhZ2VUeXBlO1xuKGZ1bmN0aW9uIChQcmV2aWV3TWVzc2FnZVR5cGUpIHtcbiAgICBQcmV2aWV3TWVzc2FnZVR5cGVbXCJVbmNhdWdodEV4Y2VwdGlvblwiXSA9IFwiUFJFVklFV19VTkNBVUdIVF9FWENFUFRJT05cIjtcbiAgICBQcmV2aWV3TWVzc2FnZVR5cGVbXCJVbmhhbmRsZWRSZWplY3Rpb25cIl0gPSBcIlBSRVZJRVdfVU5IQU5ETEVEX1JFSkVDVElPTlwiO1xuICAgIFByZXZpZXdNZXNzYWdlVHlwZVtcIkNvbnNvbGVFcnJvclwiXSA9IFwiUFJFVklFV19DT05TT0xFX0VSUk9SXCI7XG59KShQcmV2aWV3TWVzc2FnZVR5cGUgfHwgKFByZXZpZXdNZXNzYWdlVHlwZSA9IHt9KSk7XG4iLCAidmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2V4cG9ydCA9ICh0YXJnZXQsIGFsbCkgPT4ge1xuICBmb3IgKHZhciBuYW1lIGluIGFsbClcbiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pO1xufTtcblxuLy8gZGlzdC92ZW5kb3IvY29tbGluay5qc1xudmFyIGNvbWxpbmtfZXhwb3J0cyA9IHt9O1xuX19leHBvcnQoY29tbGlua19leHBvcnRzLCB7XG4gIGNyZWF0ZUVuZHBvaW50OiAoKSA9PiBjcmVhdGVFbmRwb2ludCxcbiAgZXhwb3NlOiAoKSA9PiBleHBvc2UsXG4gIHByb3h5OiAoKSA9PiBwcm94eSxcbiAgcHJveHlNYXJrZXI6ICgpID0+IHByb3h5TWFya2VyLFxuICByZWxlYXNlUHJveHk6ICgpID0+IHJlbGVhc2VQcm94eSxcbiAgdHJhbnNmZXI6ICgpID0+IHRyYW5zZmVyLFxuICB0cmFuc2ZlckhhbmRsZXJzOiAoKSA9PiB0cmFuc2ZlckhhbmRsZXJzLFxuICB3aW5kb3dFbmRwb2ludDogKCkgPT4gd2luZG93RW5kcG9pbnQsXG4gIHdyYXA6ICgpID0+IHdyYXBcbn0pO1xuXG4vLyAuLi8uLi9ub2RlX21vZHVsZXMvY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qc1xudmFyIHByb3h5TWFya2VyID0gU3ltYm9sKFwiQ29tbGluay5wcm94eVwiKTtcbnZhciBjcmVhdGVFbmRwb2ludCA9IFN5bWJvbChcIkNvbWxpbmsuZW5kcG9pbnRcIik7XG52YXIgcmVsZWFzZVByb3h5ID0gU3ltYm9sKFwiQ29tbGluay5yZWxlYXNlUHJveHlcIik7XG52YXIgdGhyb3dNYXJrZXIgPSBTeW1ib2woXCJDb21saW5rLnRocm93blwiKTtcbnZhciBpc09iamVjdCA9ICh2YWwpID0+IHR5cGVvZiB2YWwgPT09IFwib2JqZWN0XCIgJiYgdmFsICE9PSBudWxsIHx8IHR5cGVvZiB2YWwgPT09IFwiZnVuY3Rpb25cIjtcbnZhciBwcm94eVRyYW5zZmVySGFuZGxlciA9IHtcbiAgY2FuSGFuZGxlOiAodmFsKSA9PiBpc09iamVjdCh2YWwpICYmIHZhbFtwcm94eU1hcmtlcl0sXG4gIHNlcmlhbGl6ZShvYmopIHtcbiAgICBjb25zdCB7IHBvcnQxLCBwb3J0MiB9ID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgZXhwb3NlKG9iaiwgcG9ydDEpO1xuICAgIHJldHVybiBbcG9ydDIsIFtwb3J0Ml1dO1xuICB9LFxuICBkZXNlcmlhbGl6ZShwb3J0KSB7XG4gICAgcG9ydC5zdGFydCgpO1xuICAgIHJldHVybiB3cmFwKHBvcnQpO1xuICB9XG59O1xudmFyIHRocm93VHJhbnNmZXJIYW5kbGVyID0ge1xuICBjYW5IYW5kbGU6ICh2YWx1ZSkgPT4gaXNPYmplY3QodmFsdWUpICYmIHRocm93TWFya2VyIGluIHZhbHVlLFxuICBzZXJpYWxpemUoeyB2YWx1ZSB9KSB7XG4gICAgbGV0IHNlcmlhbGl6ZWQ7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHNlcmlhbGl6ZWQgPSB7XG4gICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgbWVzc2FnZTogdmFsdWUubWVzc2FnZSxcbiAgICAgICAgICBuYW1lOiB2YWx1ZS5uYW1lLFxuICAgICAgICAgIHN0YWNrOiB2YWx1ZS5zdGFja1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXJpYWxpemVkID0geyBpc0Vycm9yOiBmYWxzZSwgdmFsdWUgfTtcbiAgICB9XG4gICAgcmV0dXJuIFtzZXJpYWxpemVkLCBbXV07XG4gIH0sXG4gIGRlc2VyaWFsaXplKHNlcmlhbGl6ZWQpIHtcbiAgICBpZiAoc2VyaWFsaXplZC5pc0Vycm9yKSB7XG4gICAgICB0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihzZXJpYWxpemVkLnZhbHVlLm1lc3NhZ2UpLCBzZXJpYWxpemVkLnZhbHVlKTtcbiAgICB9XG4gICAgdGhyb3cgc2VyaWFsaXplZC52YWx1ZTtcbiAgfVxufTtcbnZhciB0cmFuc2ZlckhhbmRsZXJzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoW1xuICBbXCJwcm94eVwiLCBwcm94eVRyYW5zZmVySGFuZGxlcl0sXG4gIFtcInRocm93XCIsIHRocm93VHJhbnNmZXJIYW5kbGVyXVxuXSk7XG5mdW5jdGlvbiBleHBvc2Uob2JqLCBlcCA9IHNlbGYpIHtcbiAgZXAuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgZnVuY3Rpb24gY2FsbGJhY2soZXYpIHtcbiAgICBpZiAoIWV2IHx8ICFldi5kYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHsgaWQsIHR5cGUsIHBhdGggfSA9IE9iamVjdC5hc3NpZ24oeyBwYXRoOiBbXSB9LCBldi5kYXRhKTtcbiAgICBjb25zdCBhcmd1bWVudExpc3QgPSAoZXYuZGF0YS5hcmd1bWVudExpc3QgfHwgW10pLm1hcChmcm9tV2lyZVZhbHVlKTtcbiAgICBsZXQgcmV0dXJuVmFsdWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHBhdGguc2xpY2UoMCwgLTEpLnJlZHVjZSgob2JqMiwgcHJvcCkgPT4gb2JqMltwcm9wXSwgb2JqKTtcbiAgICAgIGNvbnN0IHJhd1ZhbHVlID0gcGF0aC5yZWR1Y2UoKG9iajIsIHByb3ApID0+IG9iajJbcHJvcF0sIG9iaik7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJldHVyblZhbHVlID0gcmF3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAge1xuICAgICAgICAgICAgcGFyZW50W3BhdGguc2xpY2UoLTEpWzBdXSA9IGZyb21XaXJlVmFsdWUoZXYuZGF0YS52YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAge1xuICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSByYXdWYWx1ZS5hcHBseShwYXJlbnQsIGFyZ3VtZW50TGlzdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBuZXcgcmF3VmFsdWUoLi4uYXJndW1lbnRMaXN0KTtcbiAgICAgICAgICAgIHJldHVyblZhbHVlID0gcHJveHkodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcG9ydDEsIHBvcnQyIH0gPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTtcbiAgICAgICAgICAgIGV4cG9zZShvYmosIHBvcnQyKTtcbiAgICAgICAgICAgIHJldHVyblZhbHVlID0gdHJhbnNmZXIocG9ydDEsIFtwb3J0MV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJldHVyblZhbHVlID0gdm9pZCAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGNhdGNoICh2YWx1ZSkge1xuICAgICAgcmV0dXJuVmFsdWUgPSB7IHZhbHVlLCBbdGhyb3dNYXJrZXJdOiAwIH07XG4gICAgfVxuICAgIFByb21pc2UucmVzb2x2ZShyZXR1cm5WYWx1ZSkuY2F0Y2goKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyB2YWx1ZSwgW3Rocm93TWFya2VyXTogMCB9O1xuICAgIH0pLnRoZW4oKHJldHVyblZhbHVlMikgPT4ge1xuICAgICAgY29uc3QgW3dpcmVWYWx1ZSwgdHJhbnNmZXJhYmxlc10gPSB0b1dpcmVWYWx1ZShyZXR1cm5WYWx1ZTIpO1xuICAgICAgZXAucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB3aXJlVmFsdWUpLCB7IGlkIH0pLCB0cmFuc2ZlcmFibGVzKTtcbiAgICAgIGlmICh0eXBlID09PSA1KSB7XG4gICAgICAgIGVwLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGNhbGxiYWNrKTtcbiAgICAgICAgY2xvc2VFbmRQb2ludChlcCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuICBpZiAoZXAuc3RhcnQpIHtcbiAgICBlcC5zdGFydCgpO1xuICB9XG59XG5mdW5jdGlvbiBpc01lc3NhZ2VQb3J0KGVuZHBvaW50KSB7XG4gIHJldHVybiBlbmRwb2ludC5jb25zdHJ1Y3Rvci5uYW1lID09PSBcIk1lc3NhZ2VQb3J0XCI7XG59XG5mdW5jdGlvbiBjbG9zZUVuZFBvaW50KGVuZHBvaW50KSB7XG4gIGlmIChpc01lc3NhZ2VQb3J0KGVuZHBvaW50KSlcbiAgICBlbmRwb2ludC5jbG9zZSgpO1xufVxuZnVuY3Rpb24gd3JhcChlcCwgdGFyZ2V0KSB7XG4gIHJldHVybiBjcmVhdGVQcm94eShlcCwgW10sIHRhcmdldCk7XG59XG5mdW5jdGlvbiB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1JlbGVhc2VkKSB7XG4gIGlmIChpc1JlbGVhc2VkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlXCIpO1xuICB9XG59XG5mdW5jdGlvbiBjcmVhdGVQcm94eShlcCwgcGF0aCA9IFtdLCB0YXJnZXQgPSBmdW5jdGlvbigpIHtcbn0pIHtcbiAgbGV0IGlzUHJveHlSZWxlYXNlZCA9IGZhbHNlO1xuICBjb25zdCBwcm94eTIgPSBuZXcgUHJveHkodGFyZ2V0LCB7XG4gICAgZ2V0KF90YXJnZXQsIHByb3ApIHtcbiAgICAgIHRocm93SWZQcm94eVJlbGVhc2VkKGlzUHJveHlSZWxlYXNlZCk7XG4gICAgICBpZiAocHJvcCA9PT0gcmVsZWFzZVByb3h5KSB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVlc3RSZXNwb25zZU1lc3NhZ2UoZXAsIHtcbiAgICAgICAgICAgIHR5cGU6IDUsXG4gICAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKVxuICAgICAgICAgIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY2xvc2VFbmRQb2ludChlcCk7XG4gICAgICAgICAgICBpc1Byb3h5UmVsZWFzZWQgPSB0cnVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKHByb3AgPT09IFwidGhlblwiKSB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiB7IHRoZW46ICgpID0+IHByb3h5MiB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHIgPSByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XG4gICAgICAgICAgdHlwZTogMCxcbiAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKVxuICAgICAgICB9KS50aGVuKGZyb21XaXJlVmFsdWUpO1xuICAgICAgICByZXR1cm4gci50aGVuLmJpbmQocik7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlUHJveHkoZXAsIFsuLi5wYXRoLCBwcm9wXSk7XG4gICAgfSxcbiAgICBzZXQoX3RhcmdldCwgcHJvcCwgcmF3VmFsdWUpIHtcbiAgICAgIHRocm93SWZQcm94eVJlbGVhc2VkKGlzUHJveHlSZWxlYXNlZCk7XG4gICAgICBjb25zdCBbdmFsdWUsIHRyYW5zZmVyYWJsZXNdID0gdG9XaXJlVmFsdWUocmF3VmFsdWUpO1xuICAgICAgcmV0dXJuIHJlcXVlc3RSZXNwb25zZU1lc3NhZ2UoZXAsIHtcbiAgICAgICAgdHlwZTogMSxcbiAgICAgICAgcGF0aDogWy4uLnBhdGgsIHByb3BdLm1hcCgocCkgPT4gcC50b1N0cmluZygpKSxcbiAgICAgICAgdmFsdWVcbiAgICAgIH0sIHRyYW5zZmVyYWJsZXMpLnRoZW4oZnJvbVdpcmVWYWx1ZSk7XG4gICAgfSxcbiAgICBhcHBseShfdGFyZ2V0LCBfdGhpc0FyZywgcmF3QXJndW1lbnRMaXN0KSB7XG4gICAgICB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1Byb3h5UmVsZWFzZWQpO1xuICAgICAgY29uc3QgbGFzdCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcbiAgICAgIGlmIChsYXN0ID09PSBjcmVhdGVFbmRwb2ludCkge1xuICAgICAgICByZXR1cm4gcmVxdWVzdFJlc3BvbnNlTWVzc2FnZShlcCwge1xuICAgICAgICAgIHR5cGU6IDRcbiAgICAgICAgfSkudGhlbihmcm9tV2lyZVZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGlmIChsYXN0ID09PSBcImJpbmRcIikge1xuICAgICAgICByZXR1cm4gY3JlYXRlUHJveHkoZXAsIHBhdGguc2xpY2UoMCwgLTEpKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IFthcmd1bWVudExpc3QsIHRyYW5zZmVyYWJsZXNdID0gcHJvY2Vzc0FyZ3VtZW50cyhyYXdBcmd1bWVudExpc3QpO1xuICAgICAgcmV0dXJuIHJlcXVlc3RSZXNwb25zZU1lc3NhZ2UoZXAsIHtcbiAgICAgICAgdHlwZTogMixcbiAgICAgICAgcGF0aDogcGF0aC5tYXAoKHApID0+IHAudG9TdHJpbmcoKSksXG4gICAgICAgIGFyZ3VtZW50TGlzdFxuICAgICAgfSwgdHJhbnNmZXJhYmxlcykudGhlbihmcm9tV2lyZVZhbHVlKTtcbiAgICB9LFxuICAgIGNvbnN0cnVjdChfdGFyZ2V0LCByYXdBcmd1bWVudExpc3QpIHtcbiAgICAgIHRocm93SWZQcm94eVJlbGVhc2VkKGlzUHJveHlSZWxlYXNlZCk7XG4gICAgICBjb25zdCBbYXJndW1lbnRMaXN0LCB0cmFuc2ZlcmFibGVzXSA9IHByb2Nlc3NBcmd1bWVudHMocmF3QXJndW1lbnRMaXN0KTtcbiAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XG4gICAgICAgIHR5cGU6IDMsXG4gICAgICAgIHBhdGg6IHBhdGgubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpLFxuICAgICAgICBhcmd1bWVudExpc3RcbiAgICAgIH0sIHRyYW5zZmVyYWJsZXMpLnRoZW4oZnJvbVdpcmVWYWx1ZSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHByb3h5Mjtcbn1cbmZ1bmN0aW9uIG15RmxhdChhcnIpIHtcbiAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sIGFycik7XG59XG5mdW5jdGlvbiBwcm9jZXNzQXJndW1lbnRzKGFyZ3VtZW50TGlzdCkge1xuICBjb25zdCBwcm9jZXNzZWQgPSBhcmd1bWVudExpc3QubWFwKHRvV2lyZVZhbHVlKTtcbiAgcmV0dXJuIFtwcm9jZXNzZWQubWFwKCh2KSA9PiB2WzBdKSwgbXlGbGF0KHByb2Nlc3NlZC5tYXAoKHYpID0+IHZbMV0pKV07XG59XG52YXIgdHJhbnNmZXJDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpO1xuZnVuY3Rpb24gdHJhbnNmZXIob2JqLCB0cmFuc2ZlcnMpIHtcbiAgdHJhbnNmZXJDYWNoZS5zZXQob2JqLCB0cmFuc2ZlcnMpO1xuICByZXR1cm4gb2JqO1xufVxuZnVuY3Rpb24gcHJveHkob2JqKSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKG9iaiwgeyBbcHJveHlNYXJrZXJdOiB0cnVlIH0pO1xufVxuZnVuY3Rpb24gd2luZG93RW5kcG9pbnQodywgY29udGV4dCA9IHNlbGYsIHRhcmdldE9yaWdpbiA9IFwiKlwiKSB7XG4gIHJldHVybiB7XG4gICAgcG9zdE1lc3NhZ2U6IChtc2csIHRyYW5zZmVyYWJsZXMpID0+IHcucG9zdE1lc3NhZ2UobXNnLCB0YXJnZXRPcmlnaW4sIHRyYW5zZmVyYWJsZXMpLFxuICAgIGFkZEV2ZW50TGlzdGVuZXI6IGNvbnRleHQuYWRkRXZlbnRMaXN0ZW5lci5iaW5kKGNvbnRleHQpLFxuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IGNvbnRleHQucmVtb3ZlRXZlbnRMaXN0ZW5lci5iaW5kKGNvbnRleHQpXG4gIH07XG59XG5mdW5jdGlvbiB0b1dpcmVWYWx1ZSh2YWx1ZSkge1xuICBmb3IgKGNvbnN0IFtuYW1lLCBoYW5kbGVyXSBvZiB0cmFuc2ZlckhhbmRsZXJzKSB7XG4gICAgaWYgKGhhbmRsZXIuY2FuSGFuZGxlKHZhbHVlKSkge1xuICAgICAgY29uc3QgW3NlcmlhbGl6ZWRWYWx1ZSwgdHJhbnNmZXJhYmxlc10gPSBoYW5kbGVyLnNlcmlhbGl6ZSh2YWx1ZSk7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogMyxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIHZhbHVlOiBzZXJpYWxpemVkVmFsdWVcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNmZXJhYmxlc1xuICAgICAgXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICB0eXBlOiAwLFxuICAgICAgdmFsdWVcbiAgICB9LFxuICAgIHRyYW5zZmVyQ2FjaGUuZ2V0KHZhbHVlKSB8fCBbXVxuICBdO1xufVxuZnVuY3Rpb24gZnJvbVdpcmVWYWx1ZSh2YWx1ZSkge1xuICBzd2l0Y2ggKHZhbHVlLnR5cGUpIHtcbiAgICBjYXNlIDM6XG4gICAgICByZXR1cm4gdHJhbnNmZXJIYW5kbGVycy5nZXQodmFsdWUubmFtZSkuZGVzZXJpYWxpemUodmFsdWUudmFsdWUpO1xuICAgIGNhc2UgMDpcbiAgICAgIHJldHVybiB2YWx1ZS52YWx1ZTtcbiAgfVxufVxuZnVuY3Rpb24gcmVxdWVzdFJlc3BvbnNlTWVzc2FnZShlcCwgbXNnLCB0cmFuc2ZlcnMpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgaWQgPSBnZW5lcmF0ZVVVSUQoKTtcbiAgICBlcC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBmdW5jdGlvbiBsKGV2KSB7XG4gICAgICBpZiAoIWV2LmRhdGEgfHwgIWV2LmRhdGEuaWQgfHwgZXYuZGF0YS5pZCAhPT0gaWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZXAucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgbCk7XG4gICAgICByZXNvbHZlKGV2LmRhdGEpO1xuICAgIH0pO1xuICAgIGlmIChlcC5zdGFydCkge1xuICAgICAgZXAuc3RhcnQoKTtcbiAgICB9XG4gICAgZXAucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7IGlkIH0sIG1zZyksIHRyYW5zZmVycyk7XG4gIH0pO1xufVxuZnVuY3Rpb24gZ2VuZXJhdGVVVUlEKCkge1xuICByZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpID0+IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oXCItXCIpO1xufVxuZXhwb3J0IHtcbiAgY29tbGlua19leHBvcnRzIGFzIENvbWxpbmtcbn07XG4iLCAiLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlbG9hZHMgdGhlIHByb3ZpZGVkIGlmcmFtZS5cbiAqXG4gKiBAcGFyYW0gcHJldmlldyBUaGUgaWZyYW1lIHBhZ2UgdG8gcmVsb2FkLlxuICogQHBhcmFtIGhhcmRSZWZyZXNoVGltZW91dCBUaGUgdGltZW91dCBhZnRlciB3aGljaCB0aGUgcHJldmlldyBpcyByZXNldCBpZiBpdCBoYXNuJ3QgcmVzcG9uZGVkIHRvIHRoZSByZWxvYWQgZXZlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWxvYWRQcmV2aWV3KHByZXZpZXcsIGhhcmRSZWZyZXNoVGltZW91dCA9IDIwMCkge1xuICAgIGNvbnN0IHsgcG9ydDEsIHBvcnQyIH0gPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTtcbiAgICBsZXQgcmVzb2x2ZTtcbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKF9yZXNvbHZlKSA9PiB7XG4gICAgICAgIHJlc29sdmUgPSBfcmVzb2x2ZTtcbiAgICB9KTtcbiAgICBjb25zdCBkb25lID0gKCkgPT4ge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIHBvcnQyLmNsb3NlKCk7XG4gICAgfTtcbiAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGlmcmFtZVNyYyA9IHByZXZpZXcuc3JjO1xuICAgICAgICBwcmV2aWV3LnNyYyA9IGlmcmFtZVNyYztcbiAgICAgICAgZG9uZSgpO1xuICAgIH0sIGhhcmRSZWZyZXNoVGltZW91dCk7XG4gICAgcG9ydDIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YTtcbiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS50eXBlID09PSAnTE9DQUxTRVJWSUNFX1dJTkRPV19SRUxPQURFRCcpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHByZXZpZXcuY29udGVudFdpbmRvdz8ucG9zdE1lc3NhZ2Uoe1xuICAgICAgICB0eXBlOiAnTE9DQUxTRVJWSUNFX1JFTE9BRF9XSU5ET1cnLFxuICAgICAgICBjYWxsYmFjazogcG9ydDEsXG4gICAgfSwgJyonLCBbcG9ydDFdKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbiIsICJpbXBvcnQgeyBQcmV2aWV3TWVzc2FnZVR5cGUgfSBmcm9tICcuLi9wcmV2aWV3LW1lc3NhZ2UtdHlwZXMuanMnO1xuY29uc3QgUFJFVklFV19NRVNTQUdFX1RZUEVTID0gW1xuICAgIFByZXZpZXdNZXNzYWdlVHlwZS5Db25zb2xlRXJyb3IsXG4gICAgUHJldmlld01lc3NhZ2VUeXBlLlVuY2F1Z2h0RXhjZXB0aW9uLFxuICAgIFByZXZpZXdNZXNzYWdlVHlwZS5VbmhhbmRsZWRSZWplY3Rpb24sXG5dO1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJldmlld01lc3NhZ2UoZGF0YSkge1xuICAgIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCEoJ3R5cGUnIGluIGRhdGEpIHx8ICFQUkVWSUVXX01FU1NBR0VfVFlQRVMuaW5jbHVkZXMoZGF0YS50eXBlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuIiwgImV4cG9ydCB7IHJlbG9hZFByZXZpZXcgfSBmcm9tICcuL3V0aWxzL3JlbG9hZC1wcmV2aWV3LmpzJztcbmV4cG9ydCB7IFByZXZpZXdNZXNzYWdlVHlwZSB9IGZyb20gJy4vcHJldmlldy1tZXNzYWdlLXR5cGVzLmpzJztcbmV4cG9ydCB7IGlzUHJldmlld01lc3NhZ2UgfSBmcm9tICcuL3V0aWxzL2lzLXByZXZpZXctbWVzc2FnZS5qcyc7XG4iLCAiLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG51bGxQcm90b3R5cGUoc291cmNlKSB7XG4gICAgY29uc3QgcHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICByZXR1cm4gcHJvdG90eXBlO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihwcm90b3R5cGUsIHNvdXJjZSk7XG59XG4iLCAiaW1wb3J0IHsgbnVsbFByb3RvdHlwZSB9IGZyb20gJy4vbnVsbC1wcm90b3R5cGUuanMnO1xuY29uc3QgYmluYXJ5RGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcignbGF0aW4xJyk7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9JbnRlcm5hbEZpbGVTeXN0ZW1UcmVlKHRyZWUpIHtcbiAgICBjb25zdCBuZXdUcmVlID0geyBkOiB7fSB9O1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyh0cmVlKSkge1xuICAgICAgICBjb25zdCBlbnRyeSA9IHRyZWVbbmFtZV07XG4gICAgICAgIGlmICgnZmlsZScgaW4gZW50cnkpIHtcbiAgICAgICAgICAgIGlmICgnc3ltbGluaycgaW4gZW50cnkuZmlsZSkge1xuICAgICAgICAgICAgICAgIG5ld1RyZWUuZFtuYW1lXSA9IHsgZjogeyBsOiBlbnRyeS5maWxlLnN5bWxpbmsgfSB9O1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY29udGVudHMgPSBlbnRyeS5maWxlLmNvbnRlbnRzO1xuICAgICAgICAgICAgY29uc3Qgc3RyaW5nQ29udGVudHMgPSB0eXBlb2YgY29udGVudHMgPT09ICdzdHJpbmcnID8gY29udGVudHMgOiBiaW5hcnlEZWNvZGVyLmRlY29kZShjb250ZW50cyk7XG4gICAgICAgICAgICBjb25zdCBiaW5hcnkgPSB0eXBlb2YgY29udGVudHMgPT09ICdzdHJpbmcnID8ge30gOiB7IGI6IHRydWUgfTtcbiAgICAgICAgICAgIG5ld1RyZWUuZFtuYW1lXSA9IHsgZjogeyBjOiBzdHJpbmdDb250ZW50cywgLi4uYmluYXJ5IH0gfTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0VudHJ5ID0gdG9JbnRlcm5hbEZpbGVTeXN0ZW1UcmVlKGVudHJ5LmRpcmVjdG9yeSk7XG4gICAgICAgIG5ld1RyZWUuZFtuYW1lXSA9IG5ld0VudHJ5O1xuICAgIH1cbiAgICByZXR1cm4gbmV3VHJlZTtcbn1cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0V4dGVybmFsRmlsZVN5c3RlbVRyZWUodHJlZSkge1xuICAgIGNvbnN0IG5ld1RyZWUgPSBudWxsUHJvdG90eXBlKCk7XG4gICAgaWYgKCdmJyBpbiB0cmVlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSXQgaXMgbm90IHBvc3NpYmxlIHRvIGV4cG9ydCBhIHNpbmdsZSBmaWxlIGluIHRoZSBKU09OIGZvcm1hdC4nKTtcbiAgICB9XG4gICAgaWYgKCdkJyBpbiB0cmVlKSB7XG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyh0cmVlLmQpKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRyZWUuZFtuYW1lXTtcbiAgICAgICAgICAgIGlmICgnZCcgaW4gZW50cnkpIHtcbiAgICAgICAgICAgICAgICBuZXdUcmVlW25hbWVdID0gbnVsbFByb3RvdHlwZSh7XG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeTogdG9FeHRlcm5hbEZpbGVTeXN0ZW1UcmVlKGVudHJ5KSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCdmJyBpbiBlbnRyeSkge1xuICAgICAgICAgICAgICAgIGlmICgnYycgaW4gZW50cnkuZikge1xuICAgICAgICAgICAgICAgICAgICBuZXdUcmVlW25hbWVdID0gbnVsbFByb3RvdHlwZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOiBudWxsUHJvdG90eXBlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogZW50cnkuZi5iID8gZnJvbUJpbmFyeVN0cmluZyhlbnRyeS5mLmMpIDogZW50cnkuZi5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICgnbCcgaW4gZW50cnkuZikge1xuICAgICAgICAgICAgICAgICAgICBuZXdUcmVlW25hbWVdID0gbnVsbFByb3RvdHlwZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOiBudWxsUHJvdG90eXBlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1saW5rOiBlbnRyeS5mLmwsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdUcmVlO1xufVxuZnVuY3Rpb24gZnJvbUJpbmFyeVN0cmluZyhzKSB7XG4gICAgY29uc3QgZW5jb2RlZCA9IG5ldyBVaW50OEFycmF5KHMubGVuZ3RoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZW5jb2RlZFtpXSA9IHNbaV0uY2hhckNvZGVBdCgwKTtcbiAgICB9XG4gICAgcmV0dXJuIGVuY29kZWQ7XG59XG4iLCAiLyoqXG4gKiBUaGUgV2ViQ29udGFpbmVyIFB1YmxpYyBBUEkgYWxsb3dzIHlvdSBidWlsZCBjdXN0b20gYXBwbGljYXRpb25zIG9uIHRvcCBvZiBhbiBpbi1icm93c2VyIE5vZGUuanMgcnVudGltZS5cbiAqXG4gKiBJdHMgbWFpbiBlbnRyeXBvaW50IGlzIHRoZSB7QGxpbmsgV2ViQ29udGFpbmVyfSBjbGFzcy5cbiAqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqL1xuaW1wb3J0IHsgYXV0aFN0YXRlLCBhc3NlcnRBdXRoVG9rZW5zIH0gZnJvbSAnLi9pbnRlcm5hbC9hdXRoLXN0YXRlLmpzJztcbmltcG9ydCB7IFByZXZpZXdNZXNzYWdlVHlwZSB9IGZyb20gJy4vcHJldmlldy1tZXNzYWdlLXR5cGVzLmpzJztcbmltcG9ydCB7IENvbWxpbmsgfSBmcm9tICcuL3ZlbmRvci9pbmRleC5qcyc7XG5pbXBvcnQgeyBhdXRoIGFzIGF1dGhJbXBsIH0gZnJvbSAnLi9pbnRlcm5hbC9hdXRoLXN0YXRlLmpzJztcbmltcG9ydCB7IGFkZEFjY2Vzc1Rva2VuQ2hhbmdlZExpc3RlbmVyIH0gZnJvbSAnLi9pbnRlcm5hbC90b2tlbnMuanMnO1xuaW1wb3J0IHsgaWZyYW1lU2V0dGluZ3MgfSBmcm9tICcuL2ludGVybmFsL2lmcmFtZS11cmwuanMnO1xuaW1wb3J0IHsgaXNQcmV2aWV3TWVzc2FnZSB9IGZyb20gJy4vdXRpbHMuanMnO1xuaW1wb3J0IHsgdG9FeHRlcm5hbEZpbGVTeXN0ZW1UcmVlLCB0b0ludGVybmFsRmlsZVN5c3RlbVRyZWUgfSBmcm9tICcuL3V0aWxzL2ZpbGUtc3lzdGVtLmpzJztcbmV4cG9ydCBjb25zdCBhdXRoID0gYXV0aEltcGw7XG5leHBvcnQgeyBQcmV2aWV3TWVzc2FnZVR5cGUgfTtcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMuanMnO1xubGV0IGJvb3RQcm9taXNlID0gbnVsbDtcbmxldCBjYWNoZWRTZXJ2ZXJQcm9taXNlID0gbnVsbDtcbmxldCBjYWNoZWRCb290T3B0aW9ucyA9IHt9O1xuY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpO1xuY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuLyoqXG4gKiBUaGUgbWFpbiBleHBvcnQgb2YgdGhpcyBsaWJyYXJ5LiBBbiBpbnN0YW5jZSBvZiBgV2ViQ29udGFpbmVyYCByZXByZXNlbnRzIGEgcnVudGltZVxuICogcmVhZHkgdG8gYmUgdXNlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFdlYkNvbnRhaW5lciB7XG4gICAgX2luc3RhbmNlO1xuICAgIF9ydW50aW1lSW5mbztcbiAgICAvKipcbiAgICAgKiBHaXZlcyBhY2Nlc3MgdG8gdGhlIHVuZGVybHlpbmcgZmlsZSBzeXN0ZW0uXG4gICAgICovXG4gICAgZnM7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHN0YXRpYyBfaW5zdGFuY2UgPSBudWxsO1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBzdGF0aWMgX3RlYXJkb3duUHJvbWlzZSA9IG51bGw7XG4gICAgX3Rvcm5Eb3duID0gZmFsc2U7XG4gICAgX3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyID0gKCkgPT4geyB9O1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAvKiogQGludGVybmFsICovXG4gICAgX2luc3RhbmNlLCBmcywgcHJldmlld1NjcmlwdCwgXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9ydW50aW1lSW5mbykge1xuICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IF9pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5fcnVudGltZUluZm8gPSBfcnVudGltZUluZm87XG4gICAgICAgIHRoaXMuZnMgPSBuZXcgRmlsZVN5c3RlbUFQSUNsaWVudChmcyk7XG4gICAgICAgIC8vIGZvcndhcmQgdGhlIGNyZWRlbnRpYWxzIHRvIHdlYmNvbnRhaW5lciBpZiBuZWVkZWRcbiAgICAgICAgaWYgKGF1dGhTdGF0ZS5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXIgPSBhZGRBY2Nlc3NUb2tlbkNoYW5nZWRMaXN0ZW5lcigoYWNjZXNzVG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YW5jZS5zZXRDcmVkZW50aWFscyh7IGFjY2Vzc1Rva2VuLCBlZGl0b3JPcmlnaW46IGF1dGhTdGF0ZS5lZGl0b3JPcmlnaW4gfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgYXV0aFN0YXRlLmF1dGhDb21wbGV0ZS5wcm9taXNlO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90b3JuRG93bikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFzc2VydEF1dGhUb2tlbnMoYXV0aFN0YXRlLnRva2Vucyk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5faW5zdGFuY2Uuc2V0Q3JlZGVudGlhbHMoe1xuICAgICAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlbjogYXV0aFN0YXRlLnRva2Vucy5hY2Nlc3MsXG4gICAgICAgICAgICAgICAgICAgIGVkaXRvck9yaWdpbjogYXV0aFN0YXRlLmVkaXRvck9yaWdpbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pKCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gcHJpbnQgdGhlIGVycm9yIGFzIHRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIHdlYmNvbnRhaW5lclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgc3Bhd24oY29tbWFuZCwgb3B0aW9uc09yQXJncywgb3B0aW9ucykge1xuICAgICAgICBsZXQgYXJncyA9IFtdO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zT3JBcmdzKSkge1xuICAgICAgICAgICAgYXJncyA9IG9wdGlvbnNPckFyZ3M7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25zID0gb3B0aW9uc09yQXJncztcbiAgICAgICAgfVxuICAgICAgICBsZXQgb3V0cHV0ID0gdW5kZWZpbmVkO1xuICAgICAgICBsZXQgb3V0cHV0U3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKCk7XG4gICAgICAgIGlmIChvcHRpb25zPy5vdXRwdXQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBzdHJlYW1XaXRoUHVzaCgpO1xuICAgICAgICAgICAgb3V0cHV0ID0gcmVzdWx0LnB1c2g7XG4gICAgICAgICAgICBvdXRwdXRTdHJlYW0gPSByZXN1bHQuc3RyZWFtO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzdGRvdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBzdGRvdXRTdHJlYW07XG4gICAgICAgIGxldCBzdGRlcnIgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBzdGRlcnJTdHJlYW07XG4gICAgICAgIGNvbnN0IHdyYXBwZWRPdXRwdXQgPSBwcm94eUxpc3RlbmVyKGJpbmFyeUxpc3RlbmVyKG91dHB1dCkpO1xuICAgICAgICBjb25zdCB3cmFwcGVkU3Rkb3V0ID0gcHJveHlMaXN0ZW5lcihiaW5hcnlMaXN0ZW5lcihzdGRvdXQpKTtcbiAgICAgICAgY29uc3Qgd3JhcHBlZFN0ZGVyciA9IHByb3h5TGlzdGVuZXIoYmluYXJ5TGlzdGVuZXIoc3RkZXJyKSk7XG4gICAgICAgIGNvbnN0IHByb2Nlc3MgPSBhd2FpdCB0aGlzLl9pbnN0YW5jZS5ydW4oe1xuICAgICAgICAgICAgY29tbWFuZCxcbiAgICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgICBjd2Q6IG9wdGlvbnM/LmN3ZCxcbiAgICAgICAgICAgIGVudjogb3B0aW9ucz8uZW52LFxuICAgICAgICAgICAgdGVybWluYWw6IG9wdGlvbnM/LnRlcm1pbmFsLFxuICAgICAgICB9LCB3cmFwcGVkU3Rkb3V0LCB3cmFwcGVkU3RkZXJyLCB3cmFwcGVkT3V0cHV0KTtcbiAgICAgICAgcmV0dXJuIG5ldyBXZWJDb250YWluZXJQcm9jZXNzSW1wbChwcm9jZXNzLCBvdXRwdXRTdHJlYW0sIHN0ZG91dFN0cmVhbSwgc3RkZXJyU3RyZWFtKTtcbiAgICB9XG4gICAgYXN5bmMgZXhwb3J0KHBhdGgsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGZvcm1hdDogb3B0aW9ucz8uZm9ybWF0ID8/ICdqc29uJyxcbiAgICAgICAgICAgIGluY2x1ZGVzOiBvcHRpb25zPy5pbmNsdWRlcyxcbiAgICAgICAgICAgIGV4Y2x1ZGVzOiBvcHRpb25zPy5leGNsdWRlcyxcbiAgICAgICAgICAgIGV4dGVybmFsOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9pbnN0YW5jZS5zZXJpYWxpemUocGF0aCwgc2VyaWFsaXplT3B0aW9ucyk7XG4gICAgICAgIGlmIChzZXJpYWxpemVPcHRpb25zLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShkZWNvZGVyLmRlY29kZShyZXN1bHQpKTtcbiAgICAgICAgICAgIHJldHVybiB0b0V4dGVybmFsRmlsZVN5c3RlbVRyZWUoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgb24oZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgICAgIGlmIChldmVudCA9PT0gJ3ByZXZpZXctbWVzc2FnZScpIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsTGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgICAgICAgICAgIGxpc3RlbmVyID0gKChtZXNzYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUHJldmlld01lc3NhZ2UobWVzc2FnZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lcihtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGxpc3RlbmVyOiB3cmFwcGVkLCBzdWJzY3JpYmUgfSA9IHN5bmNTdWJzY3JpcHRpb24obGlzdGVuZXIpO1xuICAgICAgICByZXR1cm4gc3Vic2NyaWJlKHRoaXMuX2luc3RhbmNlLm9uKGV2ZW50LCBDb21saW5rLnByb3h5KHdyYXBwZWQpKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1vdW50cyBhIHRyZWUgb2YgZmlsZXMgaW50byB0aGUgZmlsZXN5c3RlbS4gVGhpcyBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgdHJlZSBvYmplY3QgKHtAbGluayBGaWxlU3lzdGVtVHJlZX0pXG4gICAgICogb3IgYXMgYSBiaW5hcnkgc25hcHNob3QgZ2VuZXJhdGVkIGJ5IFtgQHdlYmNvbnRhaW5lci9zbmFwc2hvdGBdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0B3ZWJjb250YWluZXIvc25hcHNob3QpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNuYXBzaG90T3JUcmVlIC0gQSB0cmVlIG9mIGZpbGVzLCBvciBhIGJpbmFyeSBzbmFwc2hvdC4gTm90ZSB0aGF0IGJpbmFyeSBwYXlsb2FkcyB3aWxsIGJlIHRyYW5zZmVycmVkLlxuICAgICAqIEBwYXJhbSBvcHRpb25zLm1vdW50UG9pbnQgLSBTcGVjaWZpZXMgYSBuZXN0ZWQgcGF0aCB3aGVyZSB0aGUgdHJlZSBzaG91bGQgYmUgbW91bnRlZC5cbiAgICAgKi9cbiAgICBtb3VudChzbmFwc2hvdE9yVHJlZSwgb3B0aW9ucykge1xuICAgICAgICBjb25zdCBwYXlsb2FkID0gc25hcHNob3RPclRyZWUgaW5zdGFuY2VvZiBVaW50OEFycmF5XG4gICAgICAgICAgICA/IHNuYXBzaG90T3JUcmVlXG4gICAgICAgICAgICA6IHNuYXBzaG90T3JUcmVlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJcbiAgICAgICAgICAgICAgICA/IG5ldyBVaW50OEFycmF5KHNuYXBzaG90T3JUcmVlKVxuICAgICAgICAgICAgICAgIDogZW5jb2Rlci5lbmNvZGUoSlNPTi5zdHJpbmdpZnkodG9JbnRlcm5hbEZpbGVTeXN0ZW1UcmVlKHNuYXBzaG90T3JUcmVlKSkpO1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2UubG9hZEZpbGVzKENvbWxpbmsudHJhbnNmZXIocGF5bG9hZCwgW3BheWxvYWQuYnVmZmVyXSksIHtcbiAgICAgICAgICAgIG1vdW50UG9pbnRzOiBvcHRpb25zPy5tb3VudFBvaW50LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0IGEgY3VzdG9tIHNjcmlwdCB0byBiZSBpbmplY3RlZCBpbnRvIGFsbCBwcmV2aWV3cy4gV2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCwgZXZlcnlcbiAgICAgKiBmdXR1cmUgcGFnZSByZWxvYWQgd2lsbCBjb250YWluIHRoZSBwcm92aWRlZCBzY3JpcHQgdGFnIG9uIGFsbCBIVE1MIHJlc3BvbnNlcy5cbiAgICAgKlxuICAgICAqIE5vdGU6XG4gICAgICpcbiAgICAgKiBXaGVuIHRoaXMgZnVuY3Rpb24gcmVzb2x2ZXMsIGV2ZXJ5IHByZXZpZXcgcmVsb2FkZWQgX2FmdGVyXyB3aWxsIGhhdmUgdGhlIG5ldyBzY3JpcHQuXG4gICAgICogRXhpc3RpbmcgcHJldmlldyBoYXZlIHRvIGJlIGV4cGxpY2l0ZWx5IHJlbG9hZGVkLlxuICAgICAqXG4gICAgICogVG8gcmVsb2FkIGEgcHJldmlldyB5b3UgY2FuIHVzZSBgcmVsb2FkUHJldmlld2AuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2NyaXB0U3JjIFNvdXJjZSBmb3IgdGhlIHNjcmlwdCB0YWcuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyB0byBkZWZpbmUgd2hpY2ggdHlwZSBvZiBzY3JpcHQgdGhpcyBpcy5cbiAgICAgKi9cbiAgICBzZXRQcmV2aWV3U2NyaXB0KHNjcmlwdFNyYywgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2Uuc2V0UHJldmlld1NjcmlwdChzY3JpcHRTcmMsIG9wdGlvbnMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgYFBBVEhgIGVudmlyb25tZW50IHZhcmlhYmxlIGZvciBwcm9jZXNzZXMgc3RhcnRlZCB0aHJvdWdoIHtAbGluayBzcGF3bn0uXG4gICAgICovXG4gICAgZ2V0IHBhdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW50aW1lSW5mby5wYXRoO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGUgZnVsbCBwYXRoIHRvIHRoZSB3b3JraW5nIGRpcmVjdG9yeSAoc2VlIHtAbGluayBGaWxlU3lzdGVtQVBJfSkuXG4gICAgICovXG4gICAgZ2V0IHdvcmtkaXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW50aW1lSW5mby5jd2Q7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlc3Ryb3lzIHRoZSBXZWJDb250YWluZXIgaW5zdGFuY2UsIHR1cm5pbmcgaXQgdW51c2FibGUsIGFuZCByZWxlYXNlcyBpdHMgcmVzb3VyY2VzLiBBZnRlciB0aGlzLFxuICAgICAqIGEgbmV3IFdlYkNvbnRhaW5lciBpbnN0YW5jZSBjYW4gYmUgb2J0YWluZWQgYnkgY2FsbGluZyB7QGxpbmsgV2ViQ29udGFpbmVyLmJvb3QgfCBgYm9vdGB9LlxuICAgICAqXG4gICAgICogQWxsIGVudGl0aWVzIGRlcml2ZWQgZnJvbSB0aGlzIGluc3RhbmNlIChlLmcuIHByb2Nlc3NlcywgdGhlIGZpbGUgc3lzdGVtLCBldGMuKSBhbHNvIGJlY29tZSB1bnVzYWJsZVxuICAgICAqIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuXG4gICAgICovXG4gICAgdGVhcmRvd24oKSB7XG4gICAgICAgIGlmICh0aGlzLl90b3JuRG93bikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdXZWJDb250YWluZXIgYWxyZWFkeSB0b3JuIGRvd24nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90b3JuRG93biA9IHRydWU7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyKCk7XG4gICAgICAgIGNvbnN0IHRlYXJkb3duRm4gPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZnMuX3RlYXJkb3duKCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5faW5zdGFuY2UudGVhcmRvd24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbmNlW0NvbWxpbmsucmVsZWFzZVByb3h5XSgpO1xuICAgICAgICAgICAgICAgIGlmIChXZWJDb250YWluZXIuX2luc3RhbmNlID09PSB0aGlzKSB7XG4gICAgICAgICAgICAgICAgICAgIFdlYkNvbnRhaW5lci5faW5zdGFuY2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgV2ViQ29udGFpbmVyLl90ZWFyZG93blByb21pc2UgPSB0ZWFyZG93bkZuKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEJvb3RzIGEgV2ViQ29udGFpbmVyLiBPbmx5IGEgc2luZ2xlIGluc3RhbmNlIG9mIFdlYkNvbnRhaW5lciBjYW4gYmUgYm9vdGVkIGNvbmN1cnJlbnRseVxuICAgICAqIChzZWUge0BsaW5rIFdlYkNvbnRhaW5lci50ZWFyZG93biB8IGB0ZWFyZG93bmB9KS5cbiAgICAgKlxuICAgICAqIEJvb3RpbmcgV2ViQ29udGFpbmVyIGlzIGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24uXG4gICAgICovXG4gICAgc3RhdGljIGFzeW5jIGJvb3Qob3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX3RlYXJkb3duUHJvbWlzZTtcbiAgICAgICAgV2ViQ29udGFpbmVyLl90ZWFyZG93blByb21pc2UgPSBudWxsO1xuICAgICAgICBjb25zdCB7IHdvcmtkaXJOYW1lIH0gPSBvcHRpb25zO1xuICAgICAgICBpZiAod2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQgJiYgb3B0aW9ucy5jb2VwID09PSAnbm9uZScpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgQSBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGhlYWRlciBpcyByZXF1aXJlZCBpbiBjcm9zcyBvcmlnaW4gaXNvbGF0ZWQgZW52aXJvbm1lbnRzLlxcblNldCB0aGUgJ2NvZXAnIG9wdGlvbiB0byAncmVxdWlyZS1jb3JwJy5gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod29ya2Rpck5hbWU/LmluY2x1ZGVzKCcvJykgfHwgd29ya2Rpck5hbWUgPT09ICcuLicgfHwgd29ya2Rpck5hbWUgPT09ICcuJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3b3JrZGlyTmFtZSBzaG91bGQgYmUgYSB2YWxpZCBmb2xkZXIgbmFtZScpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNpZ25hbCB0aGF0IGJvb3Qgd2FzIGNhbGxlZCB0byBhdXRoIG1vZHVsZSBhcyBjYWxsaW5nIGF1dGguaW5pdCBhZnRlciBib290IGlzIGxpa2VseSBpbmNvcnJlY3RcbiAgICAgICAgYXV0aFN0YXRlLmJvb3RDYWxsZWQgPSB0cnVlO1xuICAgICAgICAvLyB0cnkgdG8gXCJhY3F1aXJlIHRoZSBsb2NrXCIsIGkuZS4gd2FpdCBmb3IgYW55IG9uZ29pbmcgYm9vdCByZXF1ZXN0IHRvIGZpbmlzaFxuICAgICAgICB3aGlsZSAoYm9vdFByb21pc2UpIHtcbiAgICAgICAgICAgIGF3YWl0IGJvb3RQcm9taXNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChXZWJDb250YWluZXIuX2luc3RhbmNlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgYSBzaW5nbGUgV2ViQ29udGFpbmVyIGluc3RhbmNlIGNhbiBiZSBib290ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnN0YW5jZVByb21pc2UgPSB1bnN5bmNocm9uaXplZEJvb3Qob3B0aW9ucyk7XG4gICAgICAgIC8vIHRoZSBcImxvY2tcIiBpcyBhIHByb21pc2UgZm9yIHRoZSBvbmdvaW5nIGJvb3QgdGhhdCBuZXZlciBmYWlsc1xuICAgICAgICBib290UHJvbWlzZSA9IGluc3RhbmNlUHJvbWlzZS5jYXRjaCgoKSA9PiB7IH0pO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCBpbnN0YW5jZVByb21pc2U7XG4gICAgICAgICAgICBXZWJDb250YWluZXIuX2luc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAvLyByZWxlYXNlIHRoZSBcImxvY2tcIlxuICAgICAgICAgICAgYm9vdFByb21pc2UgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuLyoqXG4gKiBDb25maWd1cmUgYW4gQVBJIGtleSB0byBiZSB1c2VkIGZvciB0aGlzIGluc3RhbmNlIG9mIFdlYkNvbnRhaW5lci5cbiAqXG4gKiBAcGFyYW0ga2V5IFdlYkNvbnRhaW5lciBBUEkga2V5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlQVBJS2V5KGtleSkge1xuICAgIGlmIChhdXRoU3RhdGUuYm9vdENhbGxlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Bjb25maWd1cmVBUElLZXlgIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGJlZm9yZSBgV2ViQ29udGFpbmVyLmJvb3RgJyk7XG4gICAgfVxuICAgIGlmcmFtZVNldHRpbmdzLnNldFF1ZXJ5UGFyYW0oJ2NsaWVudF9pZCcsIGtleSk7XG59XG5jb25zdCBESVJfRU5UUllfVFlQRV9GSUxFID0gMTtcbmNvbnN0IERJUl9FTlRSWV9UWVBFX0RJUiA9IDI7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5jbGFzcyBEaXJFbnRJbXBsIHtcbiAgICBuYW1lO1xuICAgIF90eXBlO1xuICAgIGNvbnN0cnVjdG9yKG5hbWUsIF90eXBlKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuX3R5cGUgPSBfdHlwZTtcbiAgICB9XG4gICAgaXNGaWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gRElSX0VOVFJZX1RZUEVfRklMRTtcbiAgICB9XG4gICAgaXNEaXJlY3RvcnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlID09PSBESVJfRU5UUllfVFlQRV9ESVI7XG4gICAgfVxufVxuY2xhc3MgRlNXYXRjaGVyIHtcbiAgICBfYXBpQ2xpZW50O1xuICAgIF9wYXRoO1xuICAgIF9vcHRpb25zO1xuICAgIF9saXN0ZW5lcjtcbiAgICBfd3JhcHBlZExpc3RlbmVyO1xuICAgIF93YXRjaGVyO1xuICAgIF9jbG9zZWQgPSBmYWxzZTtcbiAgICBjb25zdHJ1Y3RvcihfYXBpQ2xpZW50LCBfcGF0aCwgX29wdGlvbnMsIF9saXN0ZW5lcikge1xuICAgICAgICB0aGlzLl9hcGlDbGllbnQgPSBfYXBpQ2xpZW50O1xuICAgICAgICB0aGlzLl9wYXRoID0gX3BhdGg7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBfb3B0aW9ucztcbiAgICAgICAgdGhpcy5fbGlzdGVuZXIgPSBfbGlzdGVuZXI7XG4gICAgICAgIHRoaXMuX2FwaUNsaWVudC5fd2F0Y2hlcnMuYWRkKHRoaXMpO1xuICAgICAgICB0aGlzLl93cmFwcGVkTGlzdGVuZXIgPSAoZXZlbnQsIGZpbGVuYW1lKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fbGlzdGVuZXIgJiYgIXRoaXMuX2Nsb3NlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RlbmVyKGV2ZW50LCBmaWxlbmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2FwaUNsaWVudC5fZnNcbiAgICAgICAgICAgIC53YXRjaCh0aGlzLl9wYXRoLCB0aGlzLl9vcHRpb25zLCBwcm94eUxpc3RlbmVyKHRoaXMuX3dyYXBwZWRMaXN0ZW5lcikpXG4gICAgICAgICAgICAudGhlbigoX3dhdGNoZXIpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3dhdGNoZXIgPSBfd2F0Y2hlcjtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jbG9zZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdGVhcmRvd24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goY29uc29sZS5lcnJvcik7XG4gICAgfVxuICAgIGFzeW5jIGNsb3NlKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2Nsb3NlZCkge1xuICAgICAgICAgICAgdGhpcy5fY2xvc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2FwaUNsaWVudC5fd2F0Y2hlcnMuZGVsZXRlKHRoaXMpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fdGVhcmRvd24oKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBhc3luYyBfdGVhcmRvd24oKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX3dhdGNoZXI/LmNsb3NlKCkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl93YXRjaGVyPy5bQ29tbGluay5yZWxlYXNlUHJveHldKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmNsYXNzIFdlYkNvbnRhaW5lclByb2Nlc3NJbXBsIHtcbiAgICBvdXRwdXQ7XG4gICAgaW5wdXQ7XG4gICAgZXhpdDtcbiAgICBfcHJvY2VzcztcbiAgICBzdGRvdXQ7XG4gICAgc3RkZXJyO1xuICAgIGNvbnN0cnVjdG9yKHByb2Nlc3MsIG91dHB1dCwgc3Rkb3V0LCBzdGRlcnIpIHtcbiAgICAgICAgdGhpcy5vdXRwdXQgPSBvdXRwdXQ7XG4gICAgICAgIHRoaXMuX3Byb2Nlc3MgPSBwcm9jZXNzO1xuICAgICAgICB0aGlzLmlucHV0ID0gbmV3IFdyaXRhYmxlU3RyZWFtKHtcbiAgICAgICAgICAgIHdyaXRlOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHRoaXMgcHJvbWlzZSBpcyBub3Qgc3VwcG9zZWQgdG8gZmFpbCBhbnl3YXlcbiAgICAgICAgICAgICAgICB0aGlzLl9nZXRQcm9jZXNzKClcbiAgICAgICAgICAgICAgICAgICAgPy53cml0ZShkYXRhKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4geyB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmV4aXQgPSB0aGlzLl9vbkV4aXQoKTtcbiAgICAgICAgdGhpcy5zdGRvdXQgPSBzdGRvdXQ7XG4gICAgICAgIHRoaXMuc3RkZXJyID0gc3RkZXJyO1xuICAgIH1cbiAgICBraWxsKCkge1xuICAgICAgICB0aGlzLl9wcm9jZXNzPy5raWxsKCk7XG4gICAgfVxuICAgIHJlc2l6ZShkaW1lbnNpb25zKSB7XG4gICAgICAgIHRoaXMuX2dldFByb2Nlc3MoKT8ucmVzaXplKGRpbWVuc2lvbnMpO1xuICAgIH1cbiAgICBhc3luYyBfb25FeGl0KCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3Byb2Nlc3Mub25FeGl0O1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5fcHJvY2Vzcz8uW0NvbWxpbmsucmVsZWFzZVByb3h5XSgpO1xuICAgICAgICAgICAgdGhpcy5fcHJvY2VzcyA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2dldFByb2Nlc3MoKSB7XG4gICAgICAgIGlmICh0aGlzLl9wcm9jZXNzID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignVGhpcyBwcm9jZXNzIGFscmVhZHkgZXhpdGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2Nlc3M7XG4gICAgfVxufVxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuY2xhc3MgRmlsZVN5c3RlbUFQSUNsaWVudCB7XG4gICAgX2ZzO1xuICAgIF93YXRjaGVycyA9IG5ldyBTZXQoW10pO1xuICAgIGNvbnN0cnVjdG9yKGZzKSB7XG4gICAgICAgIHRoaXMuX2ZzID0gZnM7XG4gICAgfVxuICAgIHJtKC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZzLnJtKC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyByZWFkRmlsZShwYXRoLCBlbmNvZGluZykge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fZnMucmVhZEZpbGUocGF0aCwgZW5jb2RpbmcpO1xuICAgIH1cbiAgICBhc3luYyByZW5hbWUob2xkUGF0aCwgbmV3UGF0aCkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fZnMucmVuYW1lKG9sZFBhdGgsIG5ld1BhdGgpO1xuICAgIH1cbiAgICBhc3luYyB3cml0ZUZpbGUocGF0aCwgZGF0YSwgb3B0aW9ucykge1xuICAgICAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IGRhdGEuYnVmZmVyLnNsaWNlKGRhdGEuYnl0ZU9mZnNldCwgZGF0YS5ieXRlT2Zmc2V0ICsgZGF0YS5ieXRlTGVuZ3RoKTtcbiAgICAgICAgICAgIGRhdGEgPSBDb21saW5rLnRyYW5zZmVyKG5ldyBVaW50OEFycmF5KGJ1ZmZlciksIFtidWZmZXJdKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLl9mcy53cml0ZUZpbGUocGF0aCwgZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGFzeW5jIHJlYWRkaXIocGF0aCwgb3B0aW9ucykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9mcy5yZWFkZGlyKHBhdGgsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoaXNTdHJpbmdBcnJheShyZXN1bHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1R5cGVkQXJyYXlDb2xsZWN0aW9uKHJlc3VsdCkpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZW50cmllcyA9IHJlc3VsdC5tYXAoKGVudHJ5KSA9PiBuZXcgRGlyRW50SW1wbChlbnRyeS5uYW1lLCBlbnRyeVsnU3ltYm9sKHR5cGUpJ10pKTtcbiAgICAgICAgcmV0dXJuIGVudHJpZXM7XG4gICAgfVxuICAgIGFzeW5jIG1rZGlyKHBhdGgsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2ZzLm1rZGlyKHBhdGgsIG9wdGlvbnMpO1xuICAgIH1cbiAgICB3YXRjaChwYXRoLCBvcHRpb25zLCBsaXN0ZW5lcikge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGxpc3RlbmVyID0gb3B0aW9ucztcbiAgICAgICAgICAgIG9wdGlvbnMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgRlNXYXRjaGVyKHRoaXMsIHBhdGgsIG9wdGlvbnMsIGxpc3RlbmVyKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgYXN5bmMgX3RlYXJkb3duKCkge1xuICAgICAgICB0aGlzLl9mc1tDb21saW5rLnJlbGVhc2VQcm94eV0oKTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWy4uLnRoaXMuX3dhdGNoZXJzXS5tYXAoKHdhdGNoZXIpID0+IHdhdGNoZXIuY2xvc2UoKSkpO1xuICAgIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIHVuc3luY2hyb25pemVkQm9vdChvcHRpb25zKSB7XG4gICAgY29uc3QgeyBzZXJ2ZXJQcm9taXNlIH0gPSBzZXJ2ZXJGYWN0b3J5KG9wdGlvbnMpO1xuICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IHNlcnZlclByb21pc2U7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCBzZXJ2ZXIuYnVpbGQoe1xuICAgICAgICBob3N0OiB3aW5kb3cubG9jYXRpb24uaG9zdCxcbiAgICAgICAgdmVyc2lvbjogXCIxLjYuMVwiLFxuICAgICAgICB3b3JrZGlyTmFtZTogb3B0aW9ucy53b3JrZGlyTmFtZSxcbiAgICAgICAgZm9yd2FyZFByZXZpZXdFcnJvcnM6IG9wdGlvbnMuZm9yd2FyZFByZXZpZXdFcnJvcnMsXG4gICAgfSk7XG4gICAgY29uc3QgW2ZzLCBwcmV2aWV3U2NyaXB0LCBydW50aW1lSW5mb10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIGluc3RhbmNlLmZzKCksXG4gICAgICAgIGluc3RhbmNlLnByZXZpZXdTY3JpcHQoKSxcbiAgICAgICAgaW5zdGFuY2UucnVudGltZUluZm8oKSxcbiAgICBdKTtcbiAgICByZXR1cm4gbmV3IFdlYkNvbnRhaW5lcihpbnN0YW5jZSwgZnMsIHByZXZpZXdTY3JpcHQsIHJ1bnRpbWVJbmZvKTtcbn1cbmZ1bmN0aW9uIGJpbmFyeUxpc3RlbmVyKGxpc3RlbmVyKSB7XG4gICAgaWYgKGxpc3RlbmVyID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIChkYXRhKSA9PiB7XG4gICAgICAgIGlmIChkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICAgICAgbGlzdGVuZXIoZGVjb2Rlci5kZWNvZGUoZGF0YSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGRhdGEgPT0gbnVsbCkge1xuICAgICAgICAgICAgbGlzdGVuZXIobnVsbCk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuZnVuY3Rpb24gcHJveHlMaXN0ZW5lcihsaXN0ZW5lcikge1xuICAgIGlmIChsaXN0ZW5lciA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBDb21saW5rLnByb3h5KGxpc3RlbmVyKTtcbn1cbmZ1bmN0aW9uIHNlcnZlckZhY3Rvcnkob3B0aW9ucykge1xuICAgIGlmIChjYWNoZWRTZXJ2ZXJQcm9taXNlICE9IG51bGwpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuY29lcCAhPT0gY2FjaGVkQm9vdE9wdGlvbnMuY29lcCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBBdHRlbXB0aW5nIHRvIGJvb3QgV2ViQ29udGFpbmVyIHdpdGggJ2NvZXA6ICR7b3B0aW9ucy5jb2VwfSdgKTtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgRmlyc3QgYm9vdCBoYWQgJ2NvZXA6ICR7Y2FjaGVkQm9vdE9wdGlvbnMuY29lcH0nLCBuZXcgc2V0dGluZ3Mgd2lsbCBub3QgdGFrZSBlZmZlY3QhYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgc2VydmVyUHJvbWlzZTogY2FjaGVkU2VydmVyUHJvbWlzZSB9O1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5jb2VwKSB7XG4gICAgICAgIGlmcmFtZVNldHRpbmdzLnNldFF1ZXJ5UGFyYW0oJ2NvZXAnLCBvcHRpb25zLmNvZXApO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5leHBlcmltZW50YWxOb2RlKSB7XG4gICAgICAgIGlmcmFtZVNldHRpbmdzLnNldFF1ZXJ5UGFyYW0oJ2V4cGVyaW1lbnRhbF9ub2RlJywgJzEnKTtcbiAgICB9XG4gICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAnY3Jvc3Mtb3JpZ2luLWlzb2xhdGVkJyk7XG4gICAgY29uc3QgdXJsID0gaWZyYW1lU2V0dGluZ3MudXJsO1xuICAgIGlmcmFtZS5zcmMgPSB1cmwudG9TdHJpbmcoKTtcbiAgICBjb25zdCB7IG9yaWdpbiB9ID0gdXJsO1xuICAgIGNhY2hlZEJvb3RPcHRpb25zID0geyAuLi5vcHRpb25zIH07XG4gICAgY2FjaGVkU2VydmVyUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIGNvbnN0IG9uTWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiAhPT0gb3JpZ2luKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBldmVudDtcbiAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09ICdpbml0Jykge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoQ29tbGluay53cmFwKGV2ZW50LnBvcnRzWzBdKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gJ3dhcm5pbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZVtkYXRhLmxldmVsXS5jYWxsKGNvbnNvbGUsIGRhdGEubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG9uTWVzc2FnZSk7XG4gICAgfSk7XG4gICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoaWZyYW1lLCBudWxsKTtcbiAgICByZXR1cm4geyBzZXJ2ZXJQcm9taXNlOiBjYWNoZWRTZXJ2ZXJQcm9taXNlIH07XG59XG5mdW5jdGlvbiBpc1N0cmluZ0FycmF5KGxpc3QpIHtcbiAgICByZXR1cm4gdHlwZW9mIGxpc3RbMF0gPT09ICdzdHJpbmcnO1xufVxuZnVuY3Rpb24gaXNUeXBlZEFycmF5Q29sbGVjdGlvbihsaXN0KSB7XG4gICAgcmV0dXJuIGxpc3RbMF0gaW5zdGFuY2VvZiBVaW50OEFycmF5O1xufVxuZnVuY3Rpb24gc3RyZWFtV2l0aFB1c2goKSB7XG4gICAgbGV0IGNvbnRyb2xsZXIgPSBudWxsO1xuICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgIHN0YXJ0KGNvbnRyb2xsZXJfKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyID0gY29udHJvbGxlcl87XG4gICAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgcHVzaCA9IChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXI/LmVucXVldWUoaXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb250cm9sbGVyPy5jbG9zZSgpO1xuICAgICAgICAgICAgY29udHJvbGxlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiB7IHN0cmVhbSwgcHVzaCB9O1xufVxuZnVuY3Rpb24gc3luY1N1YnNjcmlwdGlvbihsaXN0ZW5lcikge1xuICAgIGxldCBzdG9wcGVkID0gZmFsc2U7XG4gICAgbGV0IHVuc3Vic2NyaWJlID0gKCkgPT4geyB9O1xuICAgIGNvbnN0IHdyYXBwZWQgPSAoKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgaWYgKHN0b3BwZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsaXN0ZW5lciguLi5hcmdzKTtcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBzdWJzY3JpYmUocHJvbWlzZSkge1xuICAgICAgICAgICAgcHJvbWlzZS50aGVuKCh1bnN1YnNjcmliZV8pID0+IHtcbiAgICAgICAgICAgICAgICB1bnN1YnNjcmliZSA9IHVuc3Vic2NyaWJlXztcbiAgICAgICAgICAgICAgICBpZiAoc3RvcHBlZCkge1xuICAgICAgICAgICAgICAgICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBzdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgbGlzdGVuZXI6IHdyYXBwZWQsXG4gICAgfTtcbn1cbiIsICJpbXBvcnQgKiBhcyB3ZWJjb250YWluZXIgZnJvbSAnQHRlbXBmaXgvd2ViY29udGFpbmVyX19hcGknO1xuaW1wb3J0IHR5cGUgeyBJRXhlY3V0aW9uRW52aXJvbm1lbnQsIElGaWxlRW50cnksIElGaWxlV2F0Y2hlciwgSVByb2Nlc3NIYW5kbGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lFeGVjdXRpb25FbnZpcm9ubWVudC5qcyc7XG5cbi8qKlxuICogV2ViQ29udGFpbmVyLWJhc2VkIGV4ZWN1dGlvbiBlbnZpcm9ubWVudC5cbiAqIFJ1bnMgTm9kZS5qcyBhbmQgc2hlbGwgY29tbWFuZHMgaW4gdGhlIGJyb3dzZXIgdXNpbmcgV2ViQ29udGFpbmVyIEFQSS5cbiAqL1xuZXhwb3J0IGNsYXNzIFdlYkNvbnRhaW5lckVudmlyb25tZW50IGltcGxlbWVudHMgSUV4ZWN1dGlvbkVudmlyb25tZW50IHtcbiAgLy8gU3RhdGljIHNoYXJlZCBzdGF0ZSAtIFdlYkNvbnRhaW5lciBvbmx5IGFsbG93cyBPTkUgYm9vdCBwZXIgcGFnZVxuICBwcml2YXRlIHN0YXRpYyBzaGFyZWRDb250YWluZXI6IHdlYmNvbnRhaW5lci5XZWJDb250YWluZXIgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzdGF0aWMgYm9vdFByb21pc2U6IFByb21pc2U8d2ViY29udGFpbmVyLldlYkNvbnRhaW5lcj4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9yZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ3dlYmNvbnRhaW5lcicgYXMgY29uc3Q7XG5cbiAgcHVibGljIGdldCByZWFkeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZHk7XG4gIH1cblxuICBwcml2YXRlIGdldCBjb250YWluZXIoKTogd2ViY29udGFpbmVyLldlYkNvbnRhaW5lciB8IG51bGwge1xuICAgIHJldHVybiBXZWJDb250YWluZXJFbnZpcm9ubWVudC5zaGFyZWRDb250YWluZXI7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT0gTGlmZWN5Y2xlID09PT09PT09PT09PVxuXG4gIHB1YmxpYyBhc3luYyBpbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEFscmVhZHkgaW5pdGlhbGl6ZWQgKHRoaXMgaW5zdGFuY2UpXG4gICAgaWYgKHRoaXMuX3JlYWR5ICYmIFdlYkNvbnRhaW5lckVudmlyb25tZW50LnNoYXJlZENvbnRhaW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIElmIGJvb3QgaXMgaW4gcHJvZ3Jlc3MgKGJ5IGFueSBpbnN0YW5jZSksIHdhaXQgZm9yIGl0XG4gICAgaWYgKFdlYkNvbnRhaW5lckVudmlyb25tZW50LmJvb3RQcm9taXNlKSB7XG4gICAgICBhd2FpdCBXZWJDb250YWluZXJFbnZpcm9ubWVudC5ib290UHJvbWlzZTtcbiAgICAgIHRoaXMuX3JlYWR5ID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiBhbHJlYWR5IGJvb3RlZCBieSBhbm90aGVyIGluc3RhbmNlLCBqdXN0IG1hcmsgcmVhZHlcbiAgICBpZiAoV2ViQ29udGFpbmVyRW52aXJvbm1lbnQuc2hhcmVkQ29udGFpbmVyKSB7XG4gICAgICB0aGlzLl9yZWFkeSA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgU2hhcmVkQXJyYXlCdWZmZXIgaXMgYXZhaWxhYmxlIChyZXF1aXJlZCBmb3IgV2ViQ29udGFpbmVyKVxuICAgIGlmICh0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdXZWJDb250YWluZXIgcmVxdWlyZXMgU2hhcmVkQXJyYXlCdWZmZXIgd2hpY2ggaXMgbm90IGF2YWlsYWJsZS4gJyArXG4gICAgICAgICdFbnN1cmUgeW91ciBzZXJ2ZXIgc2VuZHMgdGhlc2UgaGVhZGVyczpcXG4nICtcbiAgICAgICAgJyAgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3k6IHNhbWUtb3JpZ2luXFxuJyArXG4gICAgICAgICcgIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3k6IHJlcXVpcmUtY29ycCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gU3RhcnQgYm9vdCBwcm9jZXNzXG4gICAgV2ViQ29udGFpbmVyRW52aXJvbm1lbnQuYm9vdFByb21pc2UgPSB3ZWJjb250YWluZXIuV2ViQ29udGFpbmVyLmJvb3QoKTtcblxuICAgIHRyeSB7XG4gICAgICBXZWJDb250YWluZXJFbnZpcm9ubWVudC5zaGFyZWRDb250YWluZXIgPSBhd2FpdCBXZWJDb250YWluZXJFbnZpcm9ubWVudC5ib290UHJvbWlzZTtcbiAgICAgIHRoaXMuX3JlYWR5ID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gUmVzZXQgcHJvbWlzZSBvbiBmYWlsdXJlIHNvIHJldHJ5IGlzIHBvc3NpYmxlXG4gICAgICBXZWJDb250YWluZXJFbnZpcm9ubWVudC5ib290UHJvbWlzZSA9IG51bGw7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVzdHJveSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoV2ViQ29udGFpbmVyRW52aXJvbm1lbnQuc2hhcmVkQ29udGFpbmVyKSB7XG4gICAgICBXZWJDb250YWluZXJFbnZpcm9ubWVudC5zaGFyZWRDb250YWluZXIudGVhcmRvd24oKTtcbiAgICAgIFdlYkNvbnRhaW5lckVudmlyb25tZW50LnNoYXJlZENvbnRhaW5lciA9IG51bGw7XG4gICAgICBXZWJDb250YWluZXJFbnZpcm9ubWVudC5ib290UHJvbWlzZSA9IG51bGw7XG4gICAgICB0aGlzLl9yZWFkeSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PSBGaWxlc3lzdGVtIE9wZXJhdGlvbnMgPT09PT09PT09PT09XG5cbiAgcHVibGljIGFzeW5jIHJlYWRGaWxlKHBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdGhpcy5lbnN1cmVSZWFkeSgpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbnRhaW5lciEuZnMucmVhZEZpbGUocGF0aCwgJ3V0Zi04Jyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgd3JpdGVGaWxlKHBhdGg6IHN0cmluZywgY29udGVudHM6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZW5zdXJlUmVhZHkoKTtcbiAgICBhd2FpdCB0aGlzLmNvbnRhaW5lciEuZnMud3JpdGVGaWxlKHBhdGgsIGNvbnRlbnRzLCAndXRmLTgnKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZWFkRGlyKHBhdGg6IHN0cmluZyk6IFByb21pc2U8SUZpbGVFbnRyeVtdPiB7XG4gICAgdGhpcy5lbnN1cmVSZWFkeSgpO1xuICAgIGNvbnN0IGVudHJpZXMgPSBhd2FpdCB0aGlzLmNvbnRhaW5lciEuZnMucmVhZGRpcihwYXRoLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG5cbiAgICByZXR1cm4gZW50cmllcy5tYXAoKGVudHJ5KSA9PiAoe1xuICAgICAgdHlwZTogZW50cnkuaXNEaXJlY3RvcnkoKSA/ICdkaXJlY3RvcnknIGFzIGNvbnN0IDogJ2ZpbGUnIGFzIGNvbnN0LFxuICAgICAgbmFtZTogZW50cnkubmFtZSxcbiAgICAgIHBhdGg6IHBhdGggPT09ICcvJyA/IGAvJHtlbnRyeS5uYW1lfWAgOiBgJHtwYXRofS8ke2VudHJ5Lm5hbWV9YCxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbWtkaXIocGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5lbnN1cmVSZWFkeSgpO1xuICAgIGF3YWl0IHRoaXMuY29udGFpbmVyIS5mcy5ta2RpcihwYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBybShwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiB7IHJlY3Vyc2l2ZT86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZW5zdXJlUmVhZHkoKTtcbiAgICBhd2FpdCB0aGlzLmNvbnRhaW5lciEuZnMucm0ocGF0aCwgeyByZWN1cnNpdmU6IG9wdGlvbnM/LnJlY3Vyc2l2ZSA/PyBmYWxzZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBleGlzdHMocGF0aDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5lbnN1cmVSZWFkeSgpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbnRhaW5lciEuZnMucmVhZEZpbGUocGF0aCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29udGFpbmVyIS5mcy5yZWFkZGlyKHBhdGgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHdhdGNoKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKGV2ZW50OiAncmVuYW1lJyB8ICdjaGFuZ2UnLCBmaWxlbmFtZTogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCxcbiAgICBvcHRpb25zPzogeyByZWN1cnNpdmU/OiBib29sZWFuIH1cbiAgKTogSUZpbGVXYXRjaGVyIHtcbiAgICB0aGlzLmVuc3VyZVJlYWR5KCk7XG4gICAgY29uc3Qgd2F0Y2hlciA9IHRoaXMuY29udGFpbmVyIS5mcy53YXRjaChcbiAgICAgIHBhdGgsXG4gICAgICB7IHJlY3Vyc2l2ZTogb3B0aW9ucz8ucmVjdXJzaXZlID8/IGZhbHNlIH0sXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0b3A6ICgpID0+IHdhdGNoZXIuY2xvc2UoKSxcbiAgICB9O1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09IFByb2Nlc3MgRXhlY3V0aW9uID09PT09PT09PT09PVxuXG4gIHB1YmxpYyBhc3luYyBzcGF3bihjb21tYW5kOiBzdHJpbmcsIGFyZ3M6IHN0cmluZ1tdID0gW10pOiBQcm9taXNlPElQcm9jZXNzSGFuZGxlPiB7XG4gICAgdGhpcy5lbnN1cmVSZWFkeSgpO1xuXG4gICAgY29uc3QgcHJvY2VzcyA9IGF3YWl0IHRoaXMuY29udGFpbmVyIS5zcGF3bihjb21tYW5kLCBhcmdzKTtcblxuICAgIHJldHVybiB7XG4gICAgICBvdXRwdXQ6IHByb2Nlc3Mub3V0cHV0IGFzIHVua25vd24gYXMgUmVhZGFibGVTdHJlYW08c3RyaW5nPixcbiAgICAgIGlucHV0OiBwcm9jZXNzLmlucHV0IGFzIHVua25vd24gYXMgeyBnZXRXcml0ZXIoKTogV3JpdGFibGVTdHJlYW1EZWZhdWx0V3JpdGVyPHN0cmluZz4gfSxcbiAgICAgIGV4aXQ6IHByb2Nlc3MuZXhpdCxcbiAgICAgIGtpbGw6ICgpID0+IHByb2Nlc3Mua2lsbCgpLFxuICAgIH07XG4gIH1cblxuICAvLyA9PT09PT09PT09PT0gV2ViQ29udGFpbmVyLXNwZWNpZmljIG1ldGhvZHMgPT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE1vdW50IGZpbGVzIGludG8gdGhlIHZpcnR1YWwgZmlsZXN5c3RlbS5cbiAgICogVGhpcyBpcyBhIFdlYkNvbnRhaW5lci1zcGVjaWZpYyBvcGVyYXRpb24uXG4gICAqIEBwYXJhbSBmaWxlcyAtIEZpbGUgdHJlZSBzdHJ1Y3R1cmUgdG8gbW91bnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBtb3VudChmaWxlczogd2ViY29udGFpbmVyLkZpbGVTeXN0ZW1UcmVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5lbnN1cmVSZWFkeSgpO1xuICAgIGF3YWl0IHRoaXMuY29udGFpbmVyIS5tb3VudChmaWxlcyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB1bmRlcmx5aW5nIFdlYkNvbnRhaW5lciBpbnN0YW5jZS5cbiAgICogVXNlIHNwYXJpbmdseSAtIHByZWZlciB0aGUgaW50ZXJmYWNlIG1ldGhvZHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29udGFpbmVyKCk6IHdlYmNvbnRhaW5lci5XZWJDb250YWluZXIge1xuICAgIHRoaXMuZW5zdXJlUmVhZHkoKTtcbiAgICByZXR1cm4gdGhpcy5jb250YWluZXIhO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09IFByaXZhdGUgSGVscGVycyA9PT09PT09PT09PT1cblxuICBwcml2YXRlIGVuc3VyZVJlYWR5KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fcmVhZHkgfHwgIXRoaXMuY29udGFpbmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dlYkNvbnRhaW5lckVudmlyb25tZW50IG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0KCkgZmlyc3QuJyk7XG4gICAgfVxuICB9XG59XG4iLCAiZXhwb3J0ICogZnJvbSAnLi9XZWJDb250YWluZXJFbnZpcm9ubWVudC5qcyc7XG4iLCAiLy8gUnVudGltZSBJbnRlcmZhY2VzXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvaW5kZXguanMnO1xuXG4vLyBFbnZpcm9ubWVudCBJbXBsZW1lbnRhdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vZW52aXJvbm1lbnRzL2luZGV4LmpzJztcbiIsICJpbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICBEZWVzRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgaHRtbCxcbiAgY3NzLFxuICBzdGF0ZSxcbiAgY3NzTWFuYWdlcixcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLzAwdGhlbWUuanMnO1xuaW1wb3J0ICcuLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgSUFjdGlvbkJhck9wdGlvbnMsXG4gIElBY3Rpb25CYXJSZXN1bHQsXG4gIElBY3Rpb25CYXJRdWV1ZUl0ZW0sXG4gIElBY3Rpb25CYXJBY3Rpb24sXG59IGZyb20gJy4vYWN0aW9uYmFyLmludGVyZmFjZXMuanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWFjdGlvbmJhcic6IERlZXNBY3Rpb25iYXI7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtYWN0aW9uYmFyJylcbmV4cG9ydCBjbGFzcyBEZWVzQWN0aW9uYmFyIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICAvLyBTVEFUSUNcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gKCkgPT4ge1xuICAgIGNvbnN0IGdldEFjdGlvbmJhciA9IChlOiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgYnV0dG9uID0gZS5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgY29udGFpbmVyID0gYnV0dG9uLmNsb3Nlc3QoJy5kZW1vLWNvbnRhaW5lcicpO1xuICAgICAgcmV0dXJuIGNvbnRhaW5lcj8ucXVlcnlTZWxlY3RvcignZGVlcy1hY3Rpb25iYXInKSBhcyBEZWVzQWN0aW9uYmFyIHwgbnVsbDtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2hvd0FjdGlvbkJhciA9IGFzeW5jIChlOiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgYWN0aW9uYmFyID0gZ2V0QWN0aW9uYmFyKGUpO1xuICAgICAgaWYgKCFhY3Rpb25iYXIpIHJldHVybjtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFjdGlvbmJhci5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogJ0ZpbGUgY2hhbmdlZCBleHRlcm5hbGx5LiBSZWxvYWQ/JyxcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnLFxuICAgICAgICBpY29uOiAnbHVjaWRlOmFsZXJ0VHJpYW5nbGUnLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgeyBpZDogJ3JlbG9hZCcsIGxhYmVsOiAnUmVsb2FkJywgcHJpbWFyeTogdHJ1ZSB9LFxuICAgICAgICAgIHsgaWQ6ICdpZ25vcmUnLCBsYWJlbDogJ0lnbm9yZScgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGltZW91dDogeyBkdXJhdGlvbjogNTAwMCwgZGVmYXVsdEFjdGlvbklkOiAncmVsb2FkJyB9LFxuICAgICAgICBkaXNtaXNzaWJsZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgY29uc29sZS5sb2coJ0FjdGlvbiBiYXIgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHNob3dFcnJvckJhciA9IGFzeW5jIChlOiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgYWN0aW9uYmFyID0gZ2V0QWN0aW9uYmFyKGUpO1xuICAgICAgaWYgKCFhY3Rpb25iYXIpIHJldHVybjtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFjdGlvbmJhci5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogJ1Byb2Nlc3MgZmFpbGVkIHdpdGggZXhpdCBjb2RlIDEnLFxuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBpY29uOiAnbHVjaWRlOnhDaXJjbGUnLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgeyBpZDogJ3JldHJ5JywgbGFiZWw6ICdSZXRyeScsIHByaW1hcnk6IHRydWUgfSxcbiAgICAgICAgICB7IGlkOiAnZGlzbWlzcycsIGxhYmVsOiAnRGlzbWlzcycgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGltZW91dDogeyBkdXJhdGlvbjogMTAwMDAsIGRlZmF1bHRBY3Rpb25JZDogJ2Rpc21pc3MnIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBiYXIgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHNob3dRdWVzdGlvbkJhciA9IGFzeW5jIChlOiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgYWN0aW9uYmFyID0gZ2V0QWN0aW9uYmFyKGUpO1xuICAgICAgaWYgKCFhY3Rpb25iYXIpIHJldHVybjtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFjdGlvbmJhci5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogJ1NhdmUgY2hhbmdlcyBiZWZvcmUgY2xvc2luZz8nLFxuICAgICAgICB0eXBlOiAncXVlc3Rpb24nLFxuICAgICAgICBpY29uOiAnbHVjaWRlOmhlbHBDaXJjbGUnLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgeyBpZDogJ3NhdmUnLCBsYWJlbDogJ1NhdmUnLCBwcmltYXJ5OiB0cnVlIH0sXG4gICAgICAgICAgeyBpZDogJ2Rpc2NhcmQnLCBsYWJlbDogJ0Rpc2NhcmQnIH0sXG4gICAgICAgICAgeyBpZDogJ2NhbmNlbCcsIGxhYmVsOiAnQ2FuY2VsJyB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgICBjb25zb2xlLmxvZygnUXVlc3Rpb24gYmFyIHJlc3VsdDonLCByZXN1bHQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzdHlsZT5cbiAgICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgICAgIC5kZW1vLWNvbnRlbnQge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGdhcDogOHB4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICA8L3N0eWxlPlxuICAgICAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7c2hvd0FjdGlvbkJhcn0+V2FybmluZzwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke3Nob3dFcnJvckJhcn0+RXJyb3I8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHtzaG93UXVlc3Rpb25CYXJ9PlF1ZXN0aW9uPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfTtcblxuICAvLyBRdWV1ZSBvZiBwZW5kaW5nIGFjdGlvbiBiYXJzXG4gIHByaXZhdGUgcXVldWU6IElBY3Rpb25CYXJRdWV1ZUl0ZW1bXSA9IFtdO1xuXG4gIC8vIEN1cnJlbnQgYWN0aXZlIGJhciBzdGF0ZVxuICBAc3RhdGUoKSBhY2Nlc3NvciBjdXJyZW50QmFyOiBJQWN0aW9uQmFyT3B0aW9ucyB8IG51bGwgPSBudWxsO1xuICBAc3RhdGUoKSBhY2Nlc3NvciB0aW1lUmVtYWluaW5nOiBudW1iZXIgPSAwO1xuICBAc3RhdGUoKSBhY2Nlc3NvciBwcm9ncmVzc1BlcmNlbnQ6IG51bWJlciA9IDEwMDtcbiAgQHN0YXRlKCkgYWNjZXNzb3IgaXNWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gVGltZW91dCBoYW5kbGluZ1xuICBwcml2YXRlIHRpbWVvdXRJbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY3VycmVudFJlc29sdmU6ICgocmVzdWx0OiBJQWN0aW9uQmFyUmVzdWx0KSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbmJhci1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjJzIGVhc2Utb3V0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTYlKScsICdoc2woMCAwJSAxMiUpJyl9O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg4JSknLCAnaHNsKDAgMCUgMjAlKScpfTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoLnZpc2libGUpIC5hY3Rpb25iYXItaXRlbSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uYmFyLWNvbnRlbnQge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1vdXQ7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KC52aXNpYmxlKSAuYWN0aW9uYmFyLWNvbnRlbnQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAucHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5MCUpJywgJ2hzbCgwIDAlIDE4JSknKX07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgMTAwJSA1MCUpJywgJ2hzbCgyMTAgMTAwJSA2MCUpJyl9O1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGxpbmVhcjtcbiAgICAgIH1cblxuICAgICAgLnByb2dyZXNzLWJhci1maWxsLndhcm5pbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDM4IDkyJSA1MCUpJywgJ2hzbCgzOCA5MiUgNTUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnByb2dyZXNzLWJhci1maWxsLmVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcwJSA1MCUpJywgJ2hzbCgwIDcwJSA1NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwucXVlc3Rpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDI3MCA3MCUgNTAlKScsICdoc2woMjcwIDcwJSA2MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMycHg7XG4gICAgICB9XG5cbiAgICAgIC5tZXNzYWdlLXNlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAubWVzc2FnZS1pY29uIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNDAlKScsICdoc2woMCAwJSA2MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAubWVzc2FnZS1pY29uLmluZm8ge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgMTAwJSA0NSUpJywgJ2hzbCgyMTAgMTAwJSA2MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAubWVzc2FnZS1pY29uLndhcm5pbmcge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgzOCA5MiUgNDUlKScsICdoc2woMzggOTIlIDU1JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5tZXNzYWdlLWljb24uZXJyb3Ige1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcwJSA1MCUpJywgJ2hzbCgwIDcwJSA1NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAubWVzc2FnZS1pY29uLnF1ZXN0aW9uIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjcwIDcwJSA1MCUpJywgJ2hzbCgyNzAgNzAlIDYwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5tZXNzYWdlLXRleHQge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMjAlKScsICdoc2woMCAwJSA4NSUpJyl9O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbnMtc2VjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbi1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMzAlKScsICdoc2woMCAwJSA3MCUpJyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4MCUpJywgJ2hzbCgwIDAlIDMwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5MiUpJywgJ2hzbCgwIDAlIDE4JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCAxMDAlIDUwJSknLCAnaHNsKDIxMCAxMDAlIDU1JSknKX07XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDEwMCUgNDUlKScsICdoc2woMjEwIDEwMCUgNTAlKScpfTtcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS53YXJuaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgzOCA5MiUgNDUlKScsICdoc2woMzggOTIlIDUwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkud2FybmluZzpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMzggOTIlIDQwJSknLCAnaHNsKDM4IDkyJSA0NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LmVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcwJSA1MCUpJywgJ2hzbCgwIDcwJSA1NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LmVycm9yOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcwJSA0NSUpJywgJ2hzbCgwIDcwJSA1MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LnF1ZXN0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyNzAgNzAlIDUwJSknLCAnaHNsKDI3MCA3MCUgNTUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5xdWVzdGlvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjcwIDcwJSA0NSUpJywgJ2hzbCgyNzAgNzAlIDUwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5jb3VudGRvd24ge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgIH1cblxuICAgICAgLmRpc21pc3MtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDUwJSknLCAnaHNsKDAgMCUgNTAlKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5kaXNtaXNzLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OCUpJywgJ2hzbCgwIDAlIDIyJSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMzAlKScsICdoc2woMCAwJSA3MCUpJyl9O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgYmFyID0gdGhpcy5jdXJyZW50QmFyO1xuICAgIGNvbnN0IHR5cGUgPSBiYXI/LnR5cGUgfHwgJ2luZm8nO1xuICAgIGNvbnN0IGhhc1RpbWVvdXQgPSBiYXI/LnRpbWVvdXQgJiYgdGhpcy50aW1lUmVtYWluaW5nID4gMDtcblxuICAgIC8vIEFMV0FZUyByZW5kZXIgd3JhcHBlciAtIHJlcXVpcmVkIGZvciBncmlkIGFuaW1hdGlvbiB0byB3b3JrXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uYmFyLWl0ZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbmJhci1jb250ZW50XCI+XG4gICAgICAgICAgJHtiYXIgPyBodG1sYFxuICAgICAgICAgICAgJHtoYXNUaW1lb3V0ID8gaHRtbGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhclwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtYmFyLWZpbGwgJHt0eXBlfVwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAke3RoaXMucHJvZ3Jlc3NQZXJjZW50fSVcIlxuICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1zZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgJHtiYXIuaWNvbiA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVzc2FnZS1pY29uICR7dHlwZX1cIlxuICAgICAgICAgICAgICAgICAgICAuaWNvbj0ke2Jhci5pY29ufVxuICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT1cIjE2XCJcbiAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXNzYWdlLXRleHRcIj4ke2Jhci5tZXNzYWdlfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAke2Jhci5hY3Rpb25zLm1hcChhY3Rpb24gPT4gdGhpcy5yZW5kZXJBY3Rpb25CdXR0b24oYWN0aW9uLCBiYXIsIGhhc1RpbWVvdXQpKX1cbiAgICAgICAgICAgICAgICAke2Jhci5kaXNtaXNzaWJsZSA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGlzbWlzcy1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLmhhbmRsZURpc21pc3MoKX1cbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJEaXNtaXNzXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6eCd9IGljb25TaXplPVwiMTRcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgIDogJyd9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQWN0aW9uQnV0dG9uKFxuICAgIGFjdGlvbjogSUFjdGlvbkJhckFjdGlvbixcbiAgICBiYXI6IElBY3Rpb25CYXJPcHRpb25zLFxuICAgIGhhc1RpbWVvdXQ6IGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGlzUHJpbWFyeSA9IGFjdGlvbi5wcmltYXJ5O1xuICAgIGNvbnN0IHR5cGUgPSBiYXIudHlwZSB8fCAnaW5mbyc7XG4gICAgY29uc3QgaXNEZWZhdWx0QWN0aW9uID0gYmFyLnRpbWVvdXQ/LmRlZmF1bHRBY3Rpb25JZCA9PT0gYWN0aW9uLmlkO1xuICAgIGNvbnN0IHNob3dDb3VudGRvd24gPSBoYXNUaW1lb3V0ICYmIGlzRGVmYXVsdEFjdGlvbjtcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5jZWlsKHRoaXMudGltZVJlbWFpbmluZyAvIDEwMDApO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvbiAke2lzUHJpbWFyeSA/IGBwcmltYXJ5ICR7dHlwZX1gIDogJ3NlY29uZGFyeSd9XCJcbiAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5oYW5kbGVBY3Rpb24oYWN0aW9uLmlkLCBmYWxzZSl9XG4gICAgICA+XG4gICAgICAgICR7YWN0aW9uLmljb24gPyBodG1sYFxuICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHthY3Rpb24uaWNvbn0gaWNvblNpemU9XCIxMlwiPjwvZGVlcy1pY29uPlxuICAgICAgICBgIDogJyd9XG4gICAgICAgIDxzcGFuPiR7YWN0aW9uLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgJHtzaG93Q291bnRkb3duID8gaHRtbGBcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZG93blwiPigke3NlY29uZHN9cyk8L3NwYW4+XG4gICAgICAgIGAgOiAnJ31cbiAgICAgIDwvYnV0dG9uPlxuICAgIGA7XG4gIH1cblxuICAvLyA9PT09PT09PT09IFB1YmxpYyBBUEkgPT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBTaG93IGFuIGFjdGlvbiBiYXIgd2l0aCB0aGUgZ2l2ZW4gb3B0aW9ucy5cbiAgICogUmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFuIGFjdGlvbiBpcyB0YWtlbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaG93KG9wdGlvbnM6IElBY3Rpb25CYXJPcHRpb25zKTogUHJvbWlzZTxJQWN0aW9uQmFyUmVzdWx0PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAvLyBBZGQgdG8gcXVldWVcbiAgICAgIHRoaXMucXVldWUucHVzaCh7IG9wdGlvbnMsIHJlc29sdmUgfSk7XG5cbiAgICAgIC8vIElmIG5vIGN1cnJlbnQgYmFyLCBwcm9jZXNzIHF1ZXVlXG4gICAgICBpZiAoIXRoaXMuY3VycmVudEJhcikge1xuICAgICAgICB0aGlzLnByb2Nlc3NRdWV1ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc21pc3MgdGhlIGN1cnJlbnQgYWN0aW9uIGJhciB3aXRob3V0IHRyaWdnZXJpbmcgYW55IGFjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBkaXNtaXNzKCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlRGlzbWlzcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGFsbCBwZW5kaW5nIGFjdGlvbiBiYXJzIGluIHRoZSBxdWV1ZS5cbiAgICovXG4gIHB1YmxpYyBjbGVhclF1ZXVlKCk6IHZvaWQge1xuICAgIC8vIFJlc29sdmUgYWxsIHF1ZXVlZCBpdGVtcyB3aXRoIGRpc21pc3NcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5xdWV1ZSkge1xuICAgICAgaXRlbS5yZXNvbHZlKHsgYWN0aW9uSWQ6ICdkaXNtaXNzZWQnLCB0aW1lZE91dDogZmFsc2UgfSk7XG4gICAgfVxuICAgIHRoaXMucXVldWUgPSBbXTtcbiAgfVxuXG4gIC8vID09PT09PT09PT0gUHJpdmF0ZSBNZXRob2RzID09PT09PT09PT1cblxuICAvKipcbiAgICogSGlkZSB0aGUgY3VycmVudCBhY3Rpb25iYXIgd2l0aCBhbmltYXRpb24uXG4gICAqIFJlbW92ZXMgdmlzaWJsZSBjbGFzcyBmaXJzdCB0byB0cmlnZ2VyIENTUyB0cmFuc2l0aW9uLCB0aGVuIGNsZWFycyBjb250ZW50IGFmdGVyIGFuaW1hdGlvbi5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaGlkZUN1cnJlbnRCYXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gUmVtb3ZlIHZpc2libGUgY2xhc3MgdG8gc3RhcnQgY2xvc2UgYW5pbWF0aW9uXG4gICAgdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCd2aXNpYmxlJyk7XG4gICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIC8vIFdhaXQgZm9yIGFuaW1hdGlvbiB0byBjb21wbGV0ZSAoMjAwbXMgdHJhbnNpdGlvbiArIGJ1ZmZlcilcbiAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMjIwKSk7XG5cbiAgICAvLyBOb3cgc2FmZSB0byBjbGVhciBjb250ZW50XG4gICAgdGhpcy5jdXJyZW50QmFyID0gbnVsbDtcbiAgICB0aGlzLmN1cnJlbnRSZXNvbHZlID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc1F1ZXVlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnF1ZXVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gSGlkZSB3aXRoIGFuaW1hdGlvbiAtIGRvbid0IGF3YWl0LCBsZXQgaXQgcnVuIGFzeW5jXG4gICAgICB0aGlzLmhpZGVDdXJyZW50QmFyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbSA9IHRoaXMucXVldWUuc2hpZnQoKSE7XG4gICAgdGhpcy5jdXJyZW50QmFyID0gaXRlbS5vcHRpb25zO1xuICAgIHRoaXMuY3VycmVudFJlc29sdmUgPSBpdGVtLnJlc29sdmU7XG4gICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xuXG4gICAgLy8gV2FpdCBmb3IgTGl0IHJlbmRlciwgdGhlbiBhZGQgY2xhc3Mgb24gbmV4dCBmcmFtZSB0byB0cmlnZ2VyIGFuaW1hdGlvblxuICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgndmlzaWJsZScpO1xuICAgIH0pO1xuXG4gICAgLy8gU2V0dXAgdGltZW91dCBpZiBjb25maWd1cmVkXG4gICAgaWYgKGl0ZW0ub3B0aW9ucy50aW1lb3V0KSB7XG4gICAgICB0aGlzLnN0YXJ0VGltZW91dChpdGVtLm9wdGlvbnMudGltZW91dC5kdXJhdGlvbiwgaXRlbS5vcHRpb25zLnRpbWVvdXQuZGVmYXVsdEFjdGlvbklkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0VGltZW91dChkdXJhdGlvbjogbnVtYmVyLCBkZWZhdWx0QWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudGltZVJlbWFpbmluZyA9IGR1cmF0aW9uO1xuICAgIHRoaXMucHJvZ3Jlc3NQZXJjZW50ID0gMTAwO1xuXG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCB1cGRhdGVJbnRlcnZhbCA9IDUwOyAvLyBVcGRhdGUgZXZlcnkgNTBtcyBmb3Igc21vb3RoIGFuaW1hdGlvblxuXG4gICAgdGhpcy50aW1lb3V0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBjb25zdCBlbGFwc2VkID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgIHRoaXMudGltZVJlbWFpbmluZyA9IE1hdGgubWF4KDAsIGR1cmF0aW9uIC0gZWxhcHNlZCk7XG4gICAgICB0aGlzLnByb2dyZXNzUGVyY2VudCA9ICh0aGlzLnRpbWVSZW1haW5pbmcgLyBkdXJhdGlvbikgKiAxMDA7XG5cbiAgICAgIGlmICh0aGlzLnRpbWVSZW1haW5pbmcgPD0gMCkge1xuICAgICAgICB0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQWN0aW9uKGRlZmF1bHRBY3Rpb25JZCwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSwgdXBkYXRlSW50ZXJ2YWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclRpbWVvdXRJbnRlcnZhbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50aW1lb3V0SW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lb3V0SW50ZXJ2YWwpO1xuICAgICAgdGhpcy50aW1lb3V0SW50ZXJ2YWwgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQWN0aW9uKGFjdGlvbklkOiBzdHJpbmcsIHRpbWVkT3V0OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpO1xuXG4gICAgaWYgKHRoaXMuY3VycmVudFJlc29sdmUpIHtcbiAgICAgIHRoaXMuY3VycmVudFJlc29sdmUoeyBhY3Rpb25JZCwgdGltZWRPdXQgfSk7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBuZXh0IGl0ZW0gaW4gcXVldWVcbiAgICB0aGlzLnByb2Nlc3NRdWV1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEaXNtaXNzKCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlQWN0aW9uKCdkaXNtaXNzZWQnLCBmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgdHlwZSB7IFRlcm1pbmFsLCBJVGVybWluYWxPcHRpb25zIH0gZnJvbSAneHRlcm0nO1xuaW1wb3J0IHR5cGUgeyBGaXRBZGRvbiB9IGZyb20gJ3h0ZXJtLWFkZG9uLWZpdCc7XG5pbXBvcnQgdHlwZSB7IElUZXJtaW5hbFRhYiwgSUNyZWF0ZVRlcm1pbmFsVGFiT3B0aW9ucywgVFRlcm1pbmFsVGFiVHlwZSB9IGZyb20gJy4vaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IElYdGVybUJ1bmRsZSwgSVh0ZXJtRml0QWRkb25CdW5kbGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbmRleC5qcyc7XG5cbi8qKlxuICogTWFuYWdlcyB0ZXJtaW5hbCB0YWJzIGxpZmVjeWNsZSBhbmQgc3RhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFRlcm1pbmFsVGFiTWFuYWdlciB7XG4gIHByaXZhdGUgdGFiczogTWFwPHN0cmluZywgSVRlcm1pbmFsVGFiPiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSB0YWJDb3VudGVyOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIHh0ZXJtQnVuZGxlOiBJWHRlcm1CdW5kbGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB4dGVybUZpdEFkZG9uQnVuZGxlOiBJWHRlcm1GaXRBZGRvbkJ1bmRsZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBtYW5hZ2VyIHdpdGggbG9hZGVkIHh0ZXJtIG1vZHVsZXMuXG4gICAqIE11c3QgYmUgY2FsbGVkIGJlZm9yZSBjcmVhdGluZyB0YWJzLlxuICAgKi9cbiAgcHVibGljIHNldFh0ZXJtTW9kdWxlcyh4dGVybUJ1bmRsZTogSVh0ZXJtQnVuZGxlLCBmaXRBZGRvbkJ1bmRsZTogSVh0ZXJtRml0QWRkb25CdW5kbGUpOiB2b2lkIHtcbiAgICB0aGlzLnh0ZXJtQnVuZGxlID0geHRlcm1CdW5kbGU7XG4gICAgdGhpcy54dGVybUZpdEFkZG9uQnVuZGxlID0gZml0QWRkb25CdW5kbGU7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgdW5pcXVlIHRhYiBJRFxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZVRhYklkKCk6IHN0cmluZyB7XG4gICAgdGhpcy50YWJDb3VudGVyKys7XG4gICAgcmV0dXJuIGB0ZXJtaW5hbC0ke3RoaXMudGFiQ291bnRlcn0tJHtEYXRlLm5vdygpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRlZmF1bHQgbGFiZWwgZm9yIHRhYiB0eXBlXG4gICAqL1xuICBwcml2YXRlIGdldERlZmF1bHRMYWJlbCh0eXBlOiBUVGVybWluYWxUYWJUeXBlLCBtZXRhZGF0YT86IElUZXJtaW5hbFRhYlsnbWV0YWRhdGEnXSk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdzaGVsbCc6XG4gICAgICAgIHJldHVybiAnYmFzaCc7XG4gICAgICBjYXNlICdzY3JpcHQnOlxuICAgICAgICByZXR1cm4gbWV0YWRhdGE/LnNjcmlwdE5hbWUgfHwgJ3NjcmlwdCc7XG4gICAgICBjYXNlICdwYWNrYWdlLXVwZGF0ZSc6XG4gICAgICAgIHJldHVybiBtZXRhZGF0YT8ucGFja2FnZU5hbWUgPyBgdXBkYXRlICR7bWV0YWRhdGEucGFja2FnZU5hbWV9YCA6ICd1cGRhdGUnO1xuICAgICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgICAgcmV0dXJuIG1ldGFkYXRhPy5jb21tYW5kIHx8ICdwcm9jZXNzJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAndGVybWluYWwnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGVmYXVsdCBpY29uIGZvciB0YWIgdHlwZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXREZWZhdWx0SWNvbih0eXBlOiBUVGVybWluYWxUYWJUeXBlKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3NoZWxsJzpcbiAgICAgICAgcmV0dXJuICdsdWNpZGU6dGVybWluYWwnO1xuICAgICAgY2FzZSAnc2NyaXB0JzpcbiAgICAgICAgcmV0dXJuICdsdWNpZGU6cGxheSc7XG4gICAgICBjYXNlICdwYWNrYWdlLXVwZGF0ZSc6XG4gICAgICAgIHJldHVybiAnbHVjaWRlOnBhY2thZ2VDaGVjayc7XG4gICAgICBjYXNlICdjdXN0b20nOlxuICAgICAgICByZXR1cm4gJ2x1Y2lkZTpjb2RlJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnbHVjaWRlOnRlcm1pbmFsJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRlcm1pbmFsIHRoZW1lIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByaXZhdGUgZ2V0VGVybWluYWxUaGVtZShpc0JyaWdodDogYm9vbGVhbik6IGFueSB7XG4gICAgaWYgKGlzQnJpZ2h0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAnI2ZmZmZmZicsXG4gICAgICAgIGZvcmVncm91bmQ6ICcjMzMzMzMzJyxcbiAgICAgICAgY3Vyc29yOiAnIzMzMzMzMycsXG4gICAgICAgIGN1cnNvckFjY2VudDogJyNmZmZmZmYnLFxuICAgICAgICBzZWxlY3Rpb246ICdyZ2JhKDAsIDAsIDAsIDAuMiknLFxuICAgICAgICBibGFjazogJyMwMDAwMDAnLFxuICAgICAgICByZWQ6ICcjY2QzMTMxJyxcbiAgICAgICAgZ3JlZW46ICcjMDBiYzAwJyxcbiAgICAgICAgeWVsbG93OiAnIzk0OTgwMCcsXG4gICAgICAgIGJsdWU6ICcjMDQ1MWE1JyxcbiAgICAgICAgbWFnZW50YTogJyNiYzA1YmMnLFxuICAgICAgICBjeWFuOiAnIzA1OThiYycsXG4gICAgICAgIHdoaXRlOiAnIzU1NTU1NScsXG4gICAgICAgIGJyaWdodEJsYWNrOiAnIzY2NjY2NicsXG4gICAgICAgIGJyaWdodFJlZDogJyNjZDMxMzEnLFxuICAgICAgICBicmlnaHRHcmVlbjogJyMxNGNlMTQnLFxuICAgICAgICBicmlnaHRZZWxsb3c6ICcjYjViYTAwJyxcbiAgICAgICAgYnJpZ2h0Qmx1ZTogJyMwNDUxYTUnLFxuICAgICAgICBicmlnaHRNYWdlbnRhOiAnI2JjMDViYycsXG4gICAgICAgIGJyaWdodEN5YW46ICcjMDU5OGJjJyxcbiAgICAgICAgYnJpZ2h0V2hpdGU6ICcjYTVhNWE1JyxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICcjMDAwMDAwJyxcbiAgICAgICAgZm9yZWdyb3VuZDogJyNmZmZmZmYnLFxuICAgICAgICBjdXJzb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgY3Vyc29yQWNjZW50OiAnIzAwMDAwMCcsXG4gICAgICAgIHNlbGVjdGlvbjogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKScsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdGFiIGluc3RhbmNlXG4gICAqL1xuICBjcmVhdGVUYWIob3B0aW9uczogSUNyZWF0ZVRlcm1pbmFsVGFiT3B0aW9ucywgaXNCcmlnaHQ6IGJvb2xlYW4pOiBJVGVybWluYWxUYWIge1xuICAgIGlmICghdGhpcy54dGVybUJ1bmRsZSB8fCAhdGhpcy54dGVybUZpdEFkZG9uQnVuZGxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Rlcm1pbmFsVGFiTWFuYWdlcjogeHRlcm0gbW9kdWxlcyBub3QgaW5pdGlhbGl6ZWQuIENhbGwgc2V0WHRlcm1Nb2R1bGVzKCkgZmlyc3QuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSB0aGlzLmdlbmVyYXRlVGFiSWQoKTtcbiAgICBjb25zdCB0eXBlID0gb3B0aW9ucy50eXBlO1xuXG4gICAgLy8gQ3JlYXRlIHh0ZXJtLmpzIFRlcm1pbmFsIGluc3RhbmNlIHVzaW5nIENETi1sb2FkZWQgbW9kdWxlXG4gICAgY29uc3QgdGVybWluYWwgPSBuZXcgdGhpcy54dGVybUJ1bmRsZS5UZXJtaW5hbCh7XG4gICAgICBjb252ZXJ0RW9sOiB0cnVlLFxuICAgICAgY3Vyc29yQmxpbms6IHRydWUsXG4gICAgICB0aGVtZTogdGhpcy5nZXRUZXJtaW5hbFRoZW1lKGlzQnJpZ2h0KSxcbiAgICAgIGZvbnRGYW1pbHk6ICdNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZScsXG4gICAgICBmb250U2l6ZTogMTMsXG4gICAgICBsaW5lSGVpZ2h0OiAxLjIsXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgRml0QWRkb24gdXNpbmcgQ0ROLWxvYWRlZCBtb2R1bGVcbiAgICBjb25zdCBmaXRBZGRvbiA9IG5ldyB0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGUuRml0QWRkb24oKTtcbiAgICB0ZXJtaW5hbC5sb2FkQWRkb24oZml0QWRkb24pO1xuXG4gICAgY29uc3QgdGFiOiBJVGVybWluYWxUYWIgPSB7XG4gICAgICBpZCxcbiAgICAgIGxhYmVsOiBvcHRpb25zLmxhYmVsIHx8IHRoaXMuZ2V0RGVmYXVsdExhYmVsKHR5cGUsIG9wdGlvbnMubWV0YWRhdGEpLFxuICAgICAgaWNvbk5hbWU6IG9wdGlvbnMuaWNvbk5hbWUgfHwgdGhpcy5nZXREZWZhdWx0SWNvbih0eXBlKSxcbiAgICAgIHR5cGUsXG4gICAgICBjbG9zZWFibGU6IG9wdGlvbnMuY2xvc2VhYmxlID8/ICh0eXBlICE9PSAnc2hlbGwnKSxcbiAgICAgIHRlcm1pbmFsLFxuICAgICAgZml0QWRkb24sXG4gICAgICBwcm9jZXNzOiBudWxsLFxuICAgICAgaW5wdXRXcml0ZXI6IG51bGwsXG4gICAgICBleGl0ZWQ6IGZhbHNlLFxuICAgICAgZXhpdENvZGU6IG51bGwsXG4gICAgICBjcmVhdGVkQXQ6IERhdGUubm93KCksXG4gICAgICBtZXRhZGF0YTogb3B0aW9ucy5tZXRhZGF0YSxcbiAgICB9O1xuXG4gICAgdGhpcy50YWJzLnNldChpZCwgdGFiKTtcbiAgICByZXR1cm4gdGFiO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0YWIgYnkgSURcbiAgICovXG4gIGdldFRhYihpZDogc3RyaW5nKTogSVRlcm1pbmFsVGFiIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLmdldChpZCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCB0YWJzIGFzIGFycmF5IChvcmRlcmVkIGJ5IGNyZWF0aW9uIHRpbWUpXG4gICAqL1xuICBnZXRBbGxUYWJzKCk6IElUZXJtaW5hbFRhYltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRhYnMudmFsdWVzKCkpLnNvcnQoKGEsIGIpID0+IGEuY3JlYXRlZEF0IC0gYi5jcmVhdGVkQXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyIG9mIHRhYnNcbiAgICovXG4gIGdldFRhYkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudGFicy5zaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRhYiBleGlzdHNcbiAgICovXG4gIGhhc1RhYihpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFicy5oYXMoaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIGFuZCBjbGVhbnVwIGEgdGFiXG4gICAqL1xuICBjbG9zZVRhYihpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzLmdldChpZCk7XG4gICAgaWYgKCF0YWIpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIEtpbGwgcHJvY2VzcyBpZiBzdGlsbCBydW5uaW5nXG4gICAgaWYgKHRhYi5wcm9jZXNzICYmICF0YWIuZXhpdGVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0YWIucHJvY2Vzcy5raWxsKCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIGtpbGwgcHJvY2VzczonLCBlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNwb3NlIHRlcm1pbmFsXG4gICAgdHJ5IHtcbiAgICAgIHRhYi50ZXJtaW5hbC5kaXNwb3NlKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gZGlzcG9zZSB0ZXJtaW5hbDonLCBlKTtcbiAgICB9XG5cbiAgICB0aGlzLnRhYnMuZGVsZXRlKGlkKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5hbWUgYSB0YWJcbiAgICovXG4gIHJlbmFtZVRhYihpZDogc3RyaW5nLCBuZXdMYWJlbDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzLmdldChpZCk7XG4gICAgaWYgKCF0YWIpIHJldHVybiBmYWxzZTtcblxuICAgIHRhYi5sYWJlbCA9IG5ld0xhYmVsO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0YWIgcHJvY2VzcyBzdGF0ZSB0byBleGl0ZWRcbiAgICovXG4gIG1hcmtUYWJFeGl0ZWQoaWQ6IHN0cmluZywgZXhpdENvZGU6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHRhYiA9IHRoaXMudGFicy5nZXQoaWQpO1xuICAgIGlmICghdGFiKSByZXR1cm47XG5cbiAgICB0YWIuZXhpdGVkID0gdHJ1ZTtcbiAgICB0YWIuZXhpdENvZGUgPSBleGl0Q29kZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgcHJvY2VzcyBmb3IgYSB0YWJcbiAgICovXG4gIHNldFRhYlByb2Nlc3MoaWQ6IHN0cmluZywgcHJvY2VzczogSVRlcm1pbmFsVGFiWydwcm9jZXNzJ10sIGlucHV0V3JpdGVyOiBJVGVybWluYWxUYWJbJ2lucHV0V3JpdGVyJ10pOiB2b2lkIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnMuZ2V0KGlkKTtcbiAgICBpZiAoIXRhYikgcmV0dXJuO1xuXG4gICAgdGFiLnByb2Nlc3MgPSBwcm9jZXNzO1xuICAgIHRhYi5pbnB1dFdyaXRlciA9IGlucHV0V3JpdGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGVtZSBmb3IgYWxsIHRlcm1pbmFsc1xuICAgKi9cbiAgdXBkYXRlQWxsVGhlbWVzKGlzQnJpZ2h0OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgdGhlbWUgPSB0aGlzLmdldFRlcm1pbmFsVGhlbWUoaXNCcmlnaHQpO1xuICAgIGZvciAoY29uc3QgdGFiIG9mIHRoaXMudGFicy52YWx1ZXMoKSkge1xuICAgICAgdGFiLnRlcm1pbmFsLm9wdGlvbnMudGhlbWUgPSB0aGVtZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGlzcG9zZSBhbGwgdGFicyBhbmQgY2xlYW51cFxuICAgKi9cbiAgZGlzcG9zZUFsbCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IFtpZF0gb2YgdGhpcy50YWJzKSB7XG4gICAgICB0aGlzLmNsb3NlVGFiKGlkKTtcbiAgICB9XG4gICAgdGhpcy50YWJzLmNsZWFyKCk7XG4gIH1cbn1cbiIsICJpbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgcHJvcGVydHksXG4gIGh0bWwsXG4gIGN1c3RvbUVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbiAgc3RhdGUsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcblxuaW1wb3J0IHR5cGUgeyBUZXJtaW5hbCB9IGZyb20gJ3h0ZXJtJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuaW1wb3J0IHR5cGUgeyBJRXhlY3V0aW9uRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi8wMGdyb3VwLXJ1bnRpbWUvaW5kZXguanMnO1xuaW1wb3J0IHsgV2ViQ29udGFpbmVyRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi8wMGdyb3VwLXJ1bnRpbWUvaW5kZXguanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcbmltcG9ydCAnLi4vLi4vZGVlcy1hY3Rpb25iYXIvZGVlcy1hY3Rpb25iYXIuanMnO1xuaW1wb3J0IHR5cGUgeyBEZWVzQWN0aW9uYmFyIH0gZnJvbSAnLi4vLi4vZGVlcy1hY3Rpb25iYXIvZGVlcy1hY3Rpb25iYXIuanMnO1xuaW1wb3J0IHsgVGVybWluYWxUYWJNYW5hZ2VyIH0gZnJvbSAnLi90ZXJtaW5hbC10YWItbWFuYWdlci5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIElUZXJtaW5hbFRhYixcbiAgSUNyZWF0ZVRlcm1pbmFsVGFiT3B0aW9ucyxcbiAgVFRlcm1pbmFsVGFiVHlwZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IERlZXNTZXJ2aWNlTGliTG9hZGVyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW5kZXguanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCc6IERlZXNXb3Jrc3BhY2VUZXJtaW5hbDtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy13b3Jrc3BhY2UtdGVybWluYWwnKVxuZXhwb3J0IGNsYXNzIERlZXNXb3Jrc3BhY2VUZXJtaW5hbCBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gKCkgPT4ge1xuICAgIGNvbnN0IGVudiA9IG5ldyBXZWJDb250YWluZXJFbnZpcm9ubWVudCgpO1xuICAgIHJldHVybiBodG1sYDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHtlbnZ9PjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWw+YDtcbiAgfTtcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnV29ya3NwYWNlJztcblxuICAvLyBJTlNUQU5DRVxuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgcHJpdmF0ZSB0YWJNYW5hZ2VyOiBUZXJtaW5hbFRhYk1hbmFnZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBleGVjdXRpb24gZW52aXJvbm1lbnQgKHJlcXVpcmVkKS5cbiAgICogVXNlIFdlYkNvbnRhaW5lckVudmlyb25tZW50IGZvciBicm93c2VyLWJhc2VkIGV4ZWN1dGlvbi5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE9iamVjdCB9KVxuICBhY2Nlc3NvciBleGVjdXRpb25FbnZpcm9ubWVudDogSUV4ZWN1dGlvbkVudmlyb25tZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgQHByb3BlcnR5KClcbiAgYWNjZXNzb3Igc2V0dXBDb21tYW5kID0gJyc7XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQgaW4gdGhlIHNoZWxsXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBhY2Nlc3NvciBlbnZpcm9ubWVudFZhcmlhYmxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gIC8qKlxuICAgKiBXaWR0aCBvZiB0aGUgdGFiIGJhciBpbiBwaXhlbHNcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciB0YWJCYXJXaWR0aDogbnVtYmVyID0gMTYwO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgdGhlIHRhYiBiYXJcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3Igc2hvd1RhYkJhcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLy8gVGFiIHN0YXRlXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHRhYnM6IElUZXJtaW5hbFRhYltdID0gW107XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgYWN0aXZlVGFiSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8vIFRoZW1lIHN1YnNjcmlwdGlvbiBmb3IgZHluYW1pYyB0aGVtZSB1cGRhdGVzXG4gIHByaXZhdGUgdGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbjogYW55ID0gbnVsbDtcbiAgcHJpdmF0ZSBpc0JyaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIEFjdGlvbmJhciByZWZlcmVuY2UgZm9yIHRlcm1pbmFsLWNvbnRleHQgbm90aWZpY2F0aW9uc1xuICBwcml2YXRlIHRlcm1pbmFsQWN0aW9uYmFyOiBEZWVzQWN0aW9uYmFyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBlbnZpcm9ubWVudCBpcyByZWFkeS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGV4ZWN1dGlvbkVudmlyb25tZW50IGRpcmVjdGx5XG4gICAqL1xuICBwcml2YXRlIGVudmlyb25tZW50RGVmZXJyZWQgPSBuZXcgZG9tdG9vbHMucGx1Z2lucy5zbWFydHByb21pc2UuRGVmZXJyZWQ8SUV4ZWN1dGlvbkVudmlyb25tZW50PigpO1xuICBwdWJsaWMgZW52aXJvbm1lbnRQcm9taXNlID0gdGhpcy5lbnZpcm9ubWVudERlZmVycmVkLnByb21pc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnRhYk1hbmFnZXIgPSBuZXcgVGVybWluYWxUYWJNYW5hZ2VyKCk7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZVJlc2l6ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwMDAwMDAnKX07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIH1cblxuICAgICAgKiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB9XG5cbiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAudGVybWluYWwtY29udGVudCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwMDAwMDAnKX07XG4gICAgICB9XG5cbiAgICAgICNhY3RpdmUtdGVybWluYWwtY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBtYXJnaW46IDIwcHg7XG4gICAgICB9XG5cbiAgICAgIC50ZXJtaW5hbC1jb250ZW50IGRlZXMtYWN0aW9uYmFyIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC8qIFRhYiBiYXIgb24gdGhlIHJpZ2h0IHNpZGUgKi9cbiAgICAgIC50YWItYmFyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk2JSknLCAnaHNsKDAgMCUgNyUpJyl9O1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4NSUpJywgJ2hzbCgwIDAlIDE1JSknKX07XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAudGFiLWJhci1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg4JSknLCAnaHNsKDAgMCUgMTIlKScpfTtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNDUlKScsICdoc2woMCAwJSA1NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAudGFiLWJhci10aXRsZSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuXG4gICAgICAudGFiLWJhci1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICB9XG5cbiAgICAgIC50YWItYWN0aW9uIHtcbiAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDUwJSknLCAnaHNsKDAgMCUgNjAlKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC50YWItYWN0aW9uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg4JSknLCAnaHNsKDAgMCUgMTUlKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAzMCUpJywgJ2hzbCgwIDAlIDgwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC50YWItbGlzdCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgIH1cblxuICAgICAgLnRlcm1pbmFsLXRhYiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1JSknLCAnaHNsKDAgMCUgNjAlKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTAlKScsICdoc2woMCAwJSAxMiUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDI1JSknLCAnaHNsKDAgMCUgODAlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRlcm1pbmFsLXRhYi5hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCAxMDAlIDk1JSknLCAnaHNsKDIxMCAzMCUgMTUlKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDEwMCUgNDAlKScsICdoc2woMjEwIDEwMCUgNzAlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRlcm1pbmFsLXRhYi5leGl0ZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG5cbiAgICAgIC50YWItaWNvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAudGFiLWljb24ucnVubmluZyB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDE0MiA3MCUgNDAlKScsICdoc2woMTQyIDcwJSA1NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAudGFiLWxhYmVsIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5leGl0LWJhZGdlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiAxcHggNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAuZXhpdC1iYWRnZS5zdWNjZXNzIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgxNDIgNzAlIDkwJSknLCAnaHNsKDE0MiAzMCUgMjAlKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMTQyIDcwJSAzNSUpJywgJ2hzbCgxNDIgNzAlIDYwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5leGl0LWJhZGdlLmVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcwJSA5MyUpJywgJ2hzbCgwIDMwJSAyMCUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcwJSA0NSUpJywgJ2hzbCgwIDcwJSA2MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAudGFiLWNsb3NlIHtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAudGVybWluYWwtdGFiOmhvdmVyIC50YWItY2xvc2Uge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICB9XG5cbiAgICAgIC50YWItY2xvc2U6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4NSUpJywgJ2hzbCgwIDAlIDI1JSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgNzAlIDUwJSknLCAnaHNsKDAgNzAlIDYwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5lbXB0eS1zdGF0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNTAlKScsICdoc2woMCAwJSA1MCUpJyl9O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAvKiB4dGVybS5qcyBzdHlsZXMgKi9cbiAgICAgIC54dGVybSB7XG4gICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnIDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtLmZvY3VzLFxuICAgICAgLnh0ZXJtOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXJzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICB9XG5cbiAgICAgIC54dGVybSAueHRlcm0taGVscGVyLXRleHRhcmVhIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgbGVmdDogLTk5OTllbTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAtNTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcmVzaXplOiBub25lO1xuICAgICAgfVxuXG4gICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMDAwMDAwJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzMzMzMzMnLCAnI2ZmZmZmZicpfTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfVxuXG4gICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcuYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMDAwMDAwJyl9O1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIC54dGVybSAueHRlcm0tc2NyZWVuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtLWNoYXItbWVhc3VyZS1lbGVtZW50IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAtOTk5OWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgfVxuXG4gICAgICAueHRlcm0ge1xuICAgICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICB9XG5cbiAgICAgIC54dGVybS5lbmFibGUtbW91c2UtZXZlbnRzIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuXG4gICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC54dGVybS5jb2x1bW4tc2VsZWN0LmZvY3VzIHtcbiAgICAgICAgY3Vyc29yOiBjcm9zc2hhaXI7XG4gICAgICB9XG5cbiAgICAgIC54dGVybSAueHRlcm0tYWNjZXNzaWJpbGl0eSxcbiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAueHRlcm0gLmxpdmUtcmVnaW9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAtOTk5OXB4O1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtLWRpbSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtLXVuZGVybGluZSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgYWN0aXZlVGFiID0gdGhpcy5hY3RpdmVUYWJJZCA/IHRoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCkgOiBudWxsO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWwtY29udGFpbmVyXCI+XG4gICAgICAgIDwhLS0gTWFpbiB0ZXJtaW5hbCBhcmVhIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWwtY29udGVudFwiPlxuICAgICAgICAgICR7YWN0aXZlVGFiID8gaHRtbGBcbiAgICAgICAgICAgIDxkaXYgaWQ9XCJhY3RpdmUtdGVybWluYWwtY29udGFpbmVyXCI+PC9kaXY+XG4gICAgICAgICAgYCA6IGh0bWxgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6dGVybWluYWwnfSBpY29uU2l6ZT1cIjMyXCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPk5vIHRlcm1pbmFsIG9wZW48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgfVxuICAgICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFZlcnRpY2FsIHRhYiBiYXIgb24gdGhlIHJpZ2h0IC0tPlxuICAgICAgICAke3RoaXMuc2hvd1RhYkJhciA/IGh0bWxgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1iYXJcIiBzdHlsZT1cIndpZHRoOiAke3RoaXMudGFiQmFyV2lkdGh9cHhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItYmFyLWhlYWRlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhYi1iYXItdGl0bGVcIj5UZXJtaW5hbHM8L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItYmFyLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWFjdGlvblwiIEBjbGljaz0ke3RoaXMuaGFuZGxlQWRkVGFifSB0aXRsZT1cIk5ldyBUZXJtaW5hbFwiPlxuICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6cGx1cyd9IGljb25TaXplPVwiMTRcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1saXN0XCI+XG4gICAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcCh0YWIgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRlcm1pbmFsLXRhYiAke3RhYi5pZCA9PT0gdGhpcy5hY3RpdmVUYWJJZCA/ICdhY3RpdmUnIDogJyd9ICR7dGFiLmV4aXRlZCA/ICdleGl0ZWQnIDogJyd9XCJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuc3dpdGNoVG9UYWIodGFiLmlkKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uXG4gICAgICAgICAgICAgICAgICAgIC5pY29uPSR7dGFiLmljb25OYW1lfVxuICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZT1cIjE0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWItaWNvbiAke3RhYi5wcm9jZXNzICYmICF0YWIuZXhpdGVkID8gJ3J1bm5pbmcnIDogJyd9XCJcbiAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFiLWxhYmVsXCI+JHt0YWIubGFiZWx9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgJHt0YWIuZXhpdGVkID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleGl0LWJhZGdlICR7dGFiLmV4aXRDb2RlID09PSAwID8gJ3N1Y2Nlc3MnIDogJ2Vycm9yJ31cIj5cbiAgICAgICAgICAgICAgICAgICAgICAke3RhYi5leGl0Q29kZX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgYCA6ICcnfVxuICAgICAgICAgICAgICAgICAgJHt0YWIuY2xvc2VhYmxlID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItY2xvc2VcIiBAY2xpY2s9JHsoZTogRXZlbnQpID0+IHRoaXMuaGFuZGxlVGFiQ2xvc2UoZSwgdGFiLmlkKX0+XG4gICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6eCd9IGljb25TaXplPVwiMTJcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgYCA6ICcnfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICBgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpcnN0VXBkYXRlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkb210b29sc0luc3RhbmNlID0gYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7XG5cbiAgICAvLyBHZXQgY3VycmVudCB0aGVtZVxuICAgIHRoaXMuaXNCcmlnaHQgPSBkb210b29sc0luc3RhbmNlLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW47XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlbWUgY2hhbmdlc1xuICAgIHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiA9IGRvbXRvb2xzSW5zdGFuY2UudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoXG4gICAgICAoZ29CcmlnaHQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5pc0JyaWdodCA9IGdvQnJpZ2h0O1xuICAgICAgICB0aGlzLnRhYk1hbmFnZXIudXBkYXRlQWxsVGhlbWVzKGdvQnJpZ2h0KTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gTG9hZCB4dGVybSBmcm9tIENETlxuICAgIGNvbnN0IGxpYkxvYWRlciA9IERlZXNTZXJ2aWNlTGliTG9hZGVyLmdldEluc3RhbmNlKCk7XG4gICAgY29uc3QgW3h0ZXJtQnVuZGxlLCBmaXRBZGRvbkJ1bmRsZV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBsaWJMb2FkZXIubG9hZFh0ZXJtKCksXG4gICAgICBsaWJMb2FkZXIubG9hZFh0ZXJtRml0QWRkb24oKSxcbiAgICBdKTtcblxuICAgIC8vIEluaXRpYWxpemUgdGFiIG1hbmFnZXIgd2l0aCBsb2FkZWQgbW9kdWxlc1xuICAgIHRoaXMudGFiTWFuYWdlci5zZXRYdGVybU1vZHVsZXMoeHRlcm1CdW5kbGUsIGZpdEFkZG9uQnVuZGxlKTtcblxuICAgIC8vIENyZWF0ZSBkZWZhdWx0IHNoZWxsIHRhYlxuICAgIGF3YWl0IHRoaXMuY3JlYXRlU2hlbGxUYWIoKTtcbiAgfVxuXG4gIGFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgLy8gUmVzaXplT2JzZXJ2ZXIgaXMgc2V0IHVwIGluIGF0dGFjaFRlcm1pbmFsVG9Db250YWluZXIgd2hlbiB0aGUgY29udGFpbmVyIGV4aXN0c1xuICB9XG5cbiAgYXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVW5vYnNlcnZlIHRoZSB0ZXJtaW5hbCBjb250YWluZXJcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUtdGVybWluYWwtY29udGFpbmVyJyk7XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci51bm9ic2VydmUoY29udGFpbmVyKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLnRhYk1hbmFnZXIuZGlzcG9zZUFsbCgpO1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09IFRhYiBNYW5hZ2VtZW50ID09PT09PT09PT1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUFkZFRhYigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVNoZWxsVGFiKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVRhYkNsb3NlKGU6IEV2ZW50LCB0YWJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmNsb3NlVGFiKHRhYklkKTtcbiAgfVxuXG4gIHByaXZhdGUgc3dpdGNoVG9UYWIodGFiSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0YWJJZCA9PT0gdGhpcy5hY3RpdmVUYWJJZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJNYW5hZ2VyLmdldFRhYih0YWJJZCk7XG4gICAgaWYgKCF0YWIpIHJldHVybjtcblxuICAgIGNvbnN0IHByZXZpb3VzVGFiSWQgPSB0aGlzLmFjdGl2ZVRhYklkO1xuXG4gICAgLy8gRGV0YWNoIGN1cnJlbnQgdGVybWluYWwgZnJvbSBET01cbiAgICBpZiAodGhpcy5hY3RpdmVUYWJJZCkge1xuICAgICAgdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSBhY3RpdmUgdGFiXG4gICAgdGhpcy5hY3RpdmVUYWJJZCA9IHRhYklkO1xuICAgIHRoaXMudGFicyA9IHRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCk7XG5cbiAgICAvLyBXYWl0IGZvciByZW5kZXIgdGhlbiBhdHRhY2ggbmV3IHRlcm1pbmFsXG4gICAgdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuYXR0YWNoVGVybWluYWxUb0NvbnRhaW5lcih0YWIpO1xuXG4gICAgICAvLyBEaXNwYXRjaCBldmVudFxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3RhYi1zd2l0Y2hlZCcsIHtcbiAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICAgIGRldGFpbDogeyB0YWJJZCwgcHJldmlvdXNUYWJJZCB9LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0YWNoQWN0aXZlVGVybWluYWwoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lcicpO1xuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaFRlcm1pbmFsVG9Db250YWluZXIodGFiOiBJVGVybWluYWxUYWIpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUtdGVybWluYWwtY29udGFpbmVyJyk7XG4gICAgaWYgKCFjb250YWluZXIpIHJldHVybjtcblxuICAgIC8vIE9ic2VydmUgY29udGFpbmVyIGZvciByZXNpemUgKGhhbmRsZXMgYWN0aW9uYmFyIGFwcGVhcmluZy9kaXNhcHBlYXJpbmcpXG4gICAgLy8gUmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSgpIGlzIGlkZW1wb3RlbnQgLSBzYWZlIHRvIGNhbGwgbXVsdGlwbGUgdGltZXNcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyKTtcblxuICAgIC8vIENsZWFyIGNvbnRhaW5lclxuICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJztcblxuICAgIC8vIE9wZW4gdGVybWluYWwgaW4gY29udGFpbmVyXG4gICAgdGFiLnRlcm1pbmFsLm9wZW4oY29udGFpbmVyKTtcbiAgICB0YWIuZml0QWRkb24uZml0KCk7XG4gICAgdGFiLnRlcm1pbmFsLmZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3RpdmVUYWJJZCkge1xuICAgICAgY29uc3QgdGFiID0gdGhpcy50YWJNYW5hZ2VyLmdldFRhYih0aGlzLmFjdGl2ZVRhYklkKTtcbiAgICAgIGlmICh0YWIpIHtcbiAgICAgICAgdGFiLmZpdEFkZG9uLmZpdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT0gUHJvY2VzcyBNYW5hZ2VtZW50ID09PT09PT09PT1cblxuICBwcml2YXRlIGFzeW5jIHNwYXduUHJvY2Vzc0ZvclRhYihcbiAgICB0YWI6IElUZXJtaW5hbFRhYixcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4gICAgYXJnczogc3RyaW5nW10gPSBbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpIHtcbiAgICAgIHRhYi50ZXJtaW5hbC53cml0ZSgnXFx4MWJbMzFtJyk7XG4gICAgICB0YWIudGVybWluYWwud3JpdGUoJ1x1Mjc0QyBObyBleGVjdXRpb24gZW52aXJvbm1lbnQgYXZhaWxhYmxlLlxcclxcbicpO1xuICAgICAgdGFiLnRlcm1pbmFsLndyaXRlKCdcXHgxYlswbScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyBJbml0aWFsaXplIGVudmlyb25tZW50IGlmIG5lZWRlZFxuICAgICAgaWYgKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5KSB7XG4gICAgICAgIHRhYi50ZXJtaW5hbC53cml0ZSgnSW5pdGlhbGl6aW5nIGVudmlyb25tZW50Li4uXFxyXFxuJyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBTcGF3biBwcm9jZXNzXG4gICAgICBjb25zdCBwcm9jZXNzID0gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bihjb21tYW5kLCBhcmdzKTtcblxuICAgICAgLy8gU2V0IHVwIG91dHB1dCBwaXBpbmdcbiAgICAgIHByb2Nlc3Mub3V0cHV0LnBpcGVUbyhcbiAgICAgICAgbmV3IFdyaXRhYmxlU3RyZWFtKHtcbiAgICAgICAgICB3cml0ZTogKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRhYi50ZXJtaW5hbC53cml0ZShkYXRhKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgLy8gU2V0IHVwIGlucHV0IGZvciBpbnRlcmFjdGl2ZSBwcm9jZXNzZXNcbiAgICAgIGNvbnN0IGlucHV0V3JpdGVyID0gcHJvY2Vzcy5pbnB1dC5nZXRXcml0ZXIoKTtcbiAgICAgIHRhYi50ZXJtaW5hbC5vbkRhdGEoKGRhdGEpID0+IHtcbiAgICAgICAgaW5wdXRXcml0ZXIud3JpdGUoZGF0YSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gU3RvcmUgcHJvY2VzcyByZWZlcmVuY2VcbiAgICAgIHRoaXMudGFiTWFuYWdlci5zZXRUYWJQcm9jZXNzKHRhYi5pZCwgcHJvY2VzcywgaW5wdXRXcml0ZXIpO1xuICAgICAgdGhpcy50YWJzID0gdGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKTtcblxuICAgICAgLy8gSGFuZGxlIHByb2Nlc3MgZXhpdFxuICAgICAgcHJvY2Vzcy5leGl0LnRoZW4oKGV4aXRDb2RlKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlUHJvY2Vzc0V4aXQodGFiLmlkLCBleGl0Q29kZSk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGFiLnRlcm1pbmFsLndyaXRlKCdcXHgxYlszMW0nKTtcbiAgICAgIHRhYi50ZXJtaW5hbC53cml0ZShgXHUyNzRDIEZhaWxlZCB0byBzcGF3biBwcm9jZXNzOiAke2Vycm9yfVxcclxcbmApO1xuICAgICAgdGFiLnRlcm1pbmFsLndyaXRlKCdcXHgxYlswbScpO1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHNwYXduIHByb2Nlc3M6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUHJvY2Vzc0V4aXQodGFiSWQ6IHN0cmluZywgZXhpdENvZGU6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHRhYiA9IHRoaXMudGFiTWFuYWdlci5nZXRUYWIodGFiSWQpO1xuICAgIGlmICghdGFiKSByZXR1cm47XG5cbiAgICAvLyBVcGRhdGUgdGFiIHN0YXRlXG4gICAgdGhpcy50YWJNYW5hZ2VyLm1hcmtUYWJFeGl0ZWQodGFiSWQsIGV4aXRDb2RlKTtcblxuICAgIC8vIFdyaXRlIGV4aXQgbWVzc2FnZSB0byB0ZXJtaW5hbFxuICAgIGNvbnN0IG1lc3NhZ2UgPVxuICAgICAgZXhpdENvZGUgPT09IDBcbiAgICAgICAgPyAnXFxyXFxuXFx4MWJbMzJtW1Byb2Nlc3MgY29tcGxldGVkIHN1Y2Nlc3NmdWxseV1cXHgxYlswbVxcclxcbidcbiAgICAgICAgOiBgXFxyXFxuXFx4MWJbMzFtW1Byb2Nlc3MgZXhpdGVkIHdpdGggY29kZSAke2V4aXRDb2RlfV1cXHgxYlswbVxcclxcbmA7XG4gICAgdGFiLnRlcm1pbmFsLndyaXRlKG1lc3NhZ2UpO1xuXG4gICAgLy8gVXBkYXRlIHN0YXRlIHRvIHRyaWdnZXIgcmUtcmVuZGVyXG4gICAgdGhpcy50YWJzID0gdGhpcy50YWJNYW5hZ2VyLmdldEFsbFRhYnMoKTtcblxuICAgIC8vIERpc3BhdGNoIGV2ZW50XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdwcm9jZXNzLWNvbXBsZXRlJywge1xuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgZGV0YWlsOiB7IHRhYklkLCBleGl0Q29kZSB9LFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gU2hvdyBhY3Rpb25iYXIgdG8gb2ZmZXIgY2xvc2luZyB0aGUgdGFiIChvbmx5IGlmIHRhYiBpcyBjbG9zZWFibGUpXG4gICAgaWYgKHRhYi5jbG9zZWFibGUpIHtcbiAgICAgIHRoaXMuc2hvd0V4aXRlZFRhYkFjdGlvbmJhcih0YWJJZCwgdGFiLmxhYmVsLCBleGl0Q29kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgYWN0aW9uYmFyIG9mZmVyaW5nIHRvIGNsb3NlIGFuIGV4aXRlZCB0YWJcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc2hvd0V4aXRlZFRhYkFjdGlvbmJhcih0YWJJZDogc3RyaW5nLCB0YWJMYWJlbDogc3RyaW5nLCBleGl0Q29kZTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaXNTdWNjZXNzID0gZXhpdENvZGUgPT09IDA7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zaG93QWN0aW9uYmFyKHtcbiAgICAgIG1lc3NhZ2U6IGlzU3VjY2Vzc1xuICAgICAgICA/IGBcIiR7dGFiTGFiZWx9XCIgY29tcGxldGVkLiBDbG9zZSB0YWI/YFxuICAgICAgICA6IGBcIiR7dGFiTGFiZWx9XCIgZXhpdGVkIChjb2RlICR7ZXhpdENvZGV9KS4gQ2xvc2UgdGFiP2AsXG4gICAgICB0eXBlOiBpc1N1Y2Nlc3MgPyAnaW5mbycgOiAnd2FybmluZycsXG4gICAgICBpY29uOiBpc1N1Y2Nlc3MgPyAnbHVjaWRlOmNoZWNrQ2lyY2xlJyA6ICdsdWNpZGU6YWxlcnRUcmlhbmdsZScsXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgIHsgaWQ6ICdjbG9zZScsIGxhYmVsOiAnQ2xvc2UgVGFiJywgcHJpbWFyeTogdHJ1ZSB9LFxuICAgICAgICB7IGlkOiAna2VlcCcsIGxhYmVsOiAnS2VlcCBPcGVuJyB9LFxuICAgICAgXSxcbiAgICAgIHRpbWVvdXQ6IHsgZHVyYXRpb246IDEwMDAwLCBkZWZhdWx0QWN0aW9uSWQ6ICdjbG9zZScgfSxcbiAgICAgIGRpc21pc3NpYmxlOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2UgdGFiIGlmIHVzZXIgY2xpY2tlZCBcIkNsb3NlIFRhYlwiIG9yIHRpbWVvdXQgdHJpZ2dlcmVkIGF1dG8tY2xvc2VcbiAgICBpZiAocmVzdWx0LmFjdGlvbklkID09PSAnY2xvc2UnKSB7XG4gICAgICB0aGlzLmNsb3NlVGFiKHRhYklkKTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09IFB1YmxpYyBBUEkgPT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgc2hlbGwgdGFiXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY3JlYXRlU2hlbGxUYWIobGFiZWw/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHRhYiA9IHRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdzaGVsbCcsXG4gICAgICAgIGxhYmVsOiBsYWJlbCB8fCBgYmFzaCAke3RoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpICsgMX1gLFxuICAgICAgICBjbG9zZWFibGU6IHRoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpID4gMCwgLy8gRmlyc3QgdGFiIG5vdCBjbG9zZWFibGVcbiAgICAgIH0sXG4gICAgICB0aGlzLmlzQnJpZ2h0XG4gICAgKTtcblxuICAgIHRoaXMudGFicyA9IHRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCk7XG5cbiAgICAvLyBTd2l0Y2ggdG8gbmV3IHRhYlxuICAgIHRoaXMuc3dpdGNoVG9UYWIodGFiLmlkKTtcblxuICAgIC8vIFdhaXQgZm9yIERPTSB1cGRhdGUgdGhlbiBzcGF3biBzaGVsbFxuICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7XG4gICAgYXdhaXQgdGhpcy5zcGF3blByb2Nlc3NGb3JUYWIodGFiLCAnanNoJyk7XG5cbiAgICAvLyBSdW4gc2V0dXAgY29tbWFuZCBpZiB0aGlzIGlzIHRoZSBmaXJzdCB0YWJcbiAgICBpZiAodGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCkgPT09IDEgJiYgdGhpcy5zZXR1cENvbW1hbmQpIHtcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvclByb21wdCh0YWIudGVybWluYWwsICd+LycpO1xuICAgICAgaWYgKHRhYi5pbnB1dFdyaXRlcikge1xuICAgICAgICB0YWIuaW5wdXRXcml0ZXIud3JpdGUodGhpcy5zZXR1cENvbW1hbmQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc3BhdGNoIGV2ZW50XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCd0YWItY3JlYXRlZCcsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIGRldGFpbDogeyB0YWJJZDogdGFiLmlkIH0sXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gdGFiLmlkO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHRlcm1pbmFsIHRhYiBmb3IgcnVubmluZyBhIHByb2Nlc3NcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVQcm9jZXNzVGFiKG9wdGlvbnM6IElDcmVhdGVUZXJtaW5hbFRhYk9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHRhYiA9IHRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIob3B0aW9ucywgdGhpcy5pc0JyaWdodCk7XG5cbiAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpO1xuXG4gICAgLy8gU3dpdGNoIHRvIG5ldyB0YWIgaWYgcmVxdWVzdGVkIChkZWZhdWx0OiB0cnVlKVxuICAgIGlmIChvcHRpb25zLnN3aXRjaFRvVGFiICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5zd2l0Y2hUb1RhYih0YWIuaWQpO1xuICAgIH1cblxuICAgIC8vIFdhaXQgZm9yIERPTSB1cGRhdGVcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO1xuXG4gICAgLy8gU3Bhd24gcHJvY2VzcyBpZiBjb21tYW5kIHByb3ZpZGVkXG4gICAgaWYgKG9wdGlvbnMuY29tbWFuZCkge1xuICAgICAgYXdhaXQgdGhpcy5zcGF3blByb2Nlc3NGb3JUYWIodGFiLCBvcHRpb25zLmNvbW1hbmQsIG9wdGlvbnMuYXJncyk7XG4gICAgfVxuXG4gICAgLy8gRGlzcGF0Y2ggZXZlbnRcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3RhYi1jcmVhdGVkJywge1xuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgZGV0YWlsOiB7IHRhYklkOiB0YWIuaWQgfSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiB0YWIuaWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50bHkgYWN0aXZlIHRhYlxuICAgKi9cbiAgcHVibGljIGdldEFjdGl2ZVRhYigpOiBJVGVybWluYWxUYWIgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlVGFiSWQpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpIHx8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCB0YWJzXG4gICAqL1xuICBwdWJsaWMgZ2V0VGFicygpOiBJVGVybWluYWxUYWJbXSB7XG4gICAgcmV0dXJuIHRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCk7XG4gIH1cblxuICAvKipcbiAgICogU3dpdGNoIHRvIGEgc3BlY2lmaWMgdGFiIGJ5IElEXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0VGFiKHRhYklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMudGFiTWFuYWdlci5oYXNUYWIodGFiSWQpKSByZXR1cm4gZmFsc2U7XG4gICAgdGhpcy5zd2l0Y2hUb1RhYih0YWJJZCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgYSB0YWIgYnkgSURcbiAgICovXG4gIHB1YmxpYyBjbG9zZVRhYih0YWJJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJNYW5hZ2VyLmdldFRhYih0YWJJZCk7XG4gICAgaWYgKCF0YWIgfHwgIXRhYi5jbG9zZWFibGUpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIElmIGNsb3NpbmcgYWN0aXZlIHRhYiwgc3dpdGNoIHRvIGFub3RoZXJcbiAgICBpZiAodGFiSWQgPT09IHRoaXMuYWN0aXZlVGFiSWQpIHtcbiAgICAgIGNvbnN0IGFsbFRhYnMgPSB0aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpO1xuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gYWxsVGFicy5maW5kSW5kZXgoKHQpID0+IHQuaWQgPT09IHRhYklkKTtcbiAgICAgIGNvbnN0IG5leHRUYWIgPSBhbGxUYWJzW2N1cnJlbnRJbmRleCArIDFdIHx8IGFsbFRhYnNbY3VycmVudEluZGV4IC0gMV07XG5cbiAgICAgIGlmIChuZXh0VGFiKSB7XG4gICAgICAgIHRoaXMuc3dpdGNoVG9UYWIobmV4dFRhYi5pZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFjdGl2ZVRhYklkID0gbnVsbDtcbiAgICAgICAgdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENsb3NlIHRoZSB0YWJcbiAgICB0aGlzLnRhYk1hbmFnZXIuY2xvc2VUYWIodGFiSWQpO1xuICAgIHRoaXMudGFicyA9IHRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCk7XG5cbiAgICAvLyBEaXNwYXRjaCBldmVudFxuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgndGFiLWNsb3NlZCcsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIGRldGFpbDogeyB0YWJJZCB9LFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGUgZGF0YSB0byBhIHRhYidzIHRlcm1pbmFsXG4gICAqL1xuICBwdWJsaWMgd3JpdGVUb1RhYih0YWJJZDogc3RyaW5nLCBkYXRhOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRhYklkKTtcbiAgICBpZiAoIXRhYikgcmV0dXJuIGZhbHNlO1xuICAgIHRhYi50ZXJtaW5hbC53cml0ZShkYXRhKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIGlucHV0IHRvIGEgdGFiJ3MgcHJvY2VzcyAoaWYgaW50ZXJhY3RpdmUpXG4gICAqL1xuICBwdWJsaWMgc2VuZElucHV0VG9UYWIodGFiSWQ6IHN0cmluZywgZGF0YTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJNYW5hZ2VyLmdldFRhYih0YWJJZCk7XG4gICAgaWYgKCF0YWIgfHwgIXRhYi5pbnB1dFdyaXRlcikgcmV0dXJuIGZhbHNlO1xuICAgIHRhYi5pbnB1dFdyaXRlci53cml0ZShkYXRhKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IGFuIGFjdGlvbmJhciBub3RpZmljYXRpb24gaW4gdGhlIHRlcm1pbmFsIHBhbmVsIGNvbnRleHQuXG4gICAqIFVzZSB0aGlzIGZvciB0ZXJtaW5hbC1yZWxhdGVkIGRlY2lzaW9ucyAoZS5nLiwgcmV0cnkgZmFpbGVkIHByb2Nlc3MsIGtpbGwgcHJvY2VzcywgZXRjLilcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaG93QWN0aW9uYmFyKFxuICAgIG9wdGlvbnM6IFBhcmFtZXRlcnM8RGVlc0FjdGlvbmJhclsnc2hvdyddPlswXVxuICApOiBQcm9taXNlPFJldHVyblR5cGU8RGVlc0FjdGlvbmJhclsnc2hvdyddPj4ge1xuICAgIGlmICghdGhpcy50ZXJtaW5hbEFjdGlvbmJhcikge1xuICAgICAgdGhpcy50ZXJtaW5hbEFjdGlvbmJhciA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignZGVlcy1hY3Rpb25iYXInKSBhcyBEZWVzQWN0aW9uYmFyO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50ZXJtaW5hbEFjdGlvbmJhcj8uc2hvdyhvcHRpb25zKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT0gVXRpbGl0eSBNZXRob2RzID09PT09PT09PT1cblxuICBwdWJsaWMgYXN5bmMgd2FpdEZvclByb21wdCh0ZXJtOiBUZXJtaW5hbCwgcHJvbXB0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IGNoZWNrUHJvbXB0ID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBsaW5lcyA9IHRlcm0uYnVmZmVyLmFjdGl2ZTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lcy5nZXRMaW5lKGkpO1xuICAgICAgICAgIGlmIChsaW5lICYmIGxpbmUudHJhbnNsYXRlVG9TdHJpbmcoKS5pbmNsdWRlcyhwcm9tcHQpKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dChjaGVja1Byb21wdCwgMTAwKTtcbiAgICAgIH07XG5cbiAgICAgIGNoZWNrUHJvbXB0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0RW52aXJvbm1lbnRWYXJpYWJsZXMoZW52QXJnOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBhdmFpbGFibGUnKTtcbiAgICB9XG5cbiAgICBsZXQgZW52RmlsZSA9ICcnO1xuICAgIGZvciAoY29uc3Qga2V5IGluIGVudkFyZykge1xuICAgICAgZW52RmlsZSArPSBgZXhwb3J0ICR7a2V5fT1cIiR7ZW52QXJnW2tleV19XCJcXG5gO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKCcvc291cmNlLmVudicsIGVudkZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdW5kZXJseWluZyBleGVjdXRpb24gZW52aXJvbm1lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0RXhlY3V0aW9uRW52aXJvbm1lbnQoKTogSUV4ZWN1dGlvbkVudmlyb25tZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQ7XG4gIH1cbn1cbiIsICIvKipcbiAqIENlbnRyYWwgei1pbmRleCBtYW5hZ2VtZW50IGZvciBjb25zaXN0ZW50IHN0YWNraW5nIG9yZGVyXG4gKiBIaWdoZXIgbnVtYmVycyBhcHBlYXIgb24gdG9wIG9mIGxvd2VyIG51bWJlcnNcbiAqL1xuXG5leHBvcnQgY29uc3QgekluZGV4TGF5ZXJzID0ge1xuICAvLyBCYXNlIGxheWVyOiBSZWd1bGFyIGNvbnRlbnRcbiAgYmFzZToge1xuICAgIGNvbnRlbnQ6ICdhdXRvJyxcbiAgICBpbnB1dEVsZW1lbnRzOiAxLFxuICB9LFxuXG4gIC8vIEZpeGVkIFVJIGVsZW1lbnRzXG4gIGZpeGVkOiB7XG4gICAgYXBwQmFyOiAxMCxcbiAgICBzaWRlTWVudTogMTAsXG4gICAgbW9iaWxlTmF2OiAyNTAsXG4gIH0sXG5cbiAgLy8gT3ZlcmxheSBiYWNrZHJvcHMgKHNlbWktdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMpXG4gIGJhY2tkcm9wOiB7XG4gICAgZHJvcGRvd246IDE5OTksICAvLyBCZWxvdyBtb2RhbHMgYnV0IGFib3ZlIGZpeGVkIGVsZW1lbnRzXG4gICAgbW9kYWw6IDI5OTksICAgICAvLyBCZWxvdyBkcm9wZG93bnMgb24gbW9kYWxzXG4gICAgY29udGV4dE1lbnU6IDM5OTksIC8vIEJlbG93IGNyaXRpY2FsIG92ZXJsYXlzXG4gIH0sXG5cbiAgLy8gSW50ZXJhY3RpdmUgb3ZlcmxheXNcbiAgb3ZlcmxheToge1xuICAgIGRyb3Bkb3duOiAyMDAwLCAgICAgLy8gRHJvcGRvd25zIGFuZCBzZWxlY3QgbWVudXNcbiAgICBtb2RhbDogMzAwMCwgICAgICAgIC8vIE1vZGFsIGRpYWxvZ3NcbiAgICBjb250ZXh0TWVudTogNDAwMCwgIC8vIENvbnRleHQgbWVudXMgYW5kIHRvb2x0aXBzXG4gICAgdG9hc3Q6IDUwMDAsICAgICAgICAvLyBUb2FzdCBub3RpZmljYXRpb25zIChoaWdoZXN0IHByaW9yaXR5KVxuICB9LFxuXG4gIC8vIFNwZWNpYWwgY2FzZXMgZm9yIG5lc3RlZCBlbGVtZW50c1xuICBtb2RhbERyb3Bkb3duOiAzNTAwLCAgICAvLyBEcm9wZG93bnMgaW5zaWRlIG1vZGFsc1xuICB3eXNpd3lnTWVudXM6IDQ1MDAsICAgICAvLyBFZGl0b3IgZm9ybWF0dGluZyBtZW51c1xufSBhcyBjb25zdDtcblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB6LWluZGV4IHZhbHVlXG5leHBvcnQgZnVuY3Rpb24gZ2V0WkluZGV4KGNhdGVnb3J5OiBrZXlvZiB0eXBlb2YgekluZGV4TGF5ZXJzLCBzdWJjYXRlZ29yeT86IHN0cmluZyk6IG51bWJlciB8IHN0cmluZyB7XG4gIGNvbnN0IGNhdGVnb3J5T2JqID0gekluZGV4TGF5ZXJzW2NhdGVnb3J5XTtcbiAgaWYgKHR5cGVvZiBjYXRlZ29yeU9iaiA9PT0gJ29iamVjdCcgJiYgc3ViY2F0ZWdvcnkpIHtcbiAgICByZXR1cm4gY2F0ZWdvcnlPYmpbc3ViY2F0ZWdvcnkgYXMga2V5b2YgdHlwZW9mIGNhdGVnb3J5T2JqXSB8fCAnYXV0byc7XG4gIH1cbiAgcmV0dXJuIHR5cGVvZiBjYXRlZ29yeU9iaiA9PT0gJ251bWJlcicgPyBjYXRlZ29yeU9iaiA6ICdhdXRvJztcbn1cblxuLy8gWi1pbmRleCBhc3NpZ25tZW50cyBmb3IgY29tcG9uZW50c1xuZXhwb3J0IGNvbnN0IGNvbXBvbmVudFpJbmRleCA9IHtcbiAgJ2RlZXMtbW9kYWwnOiB6SW5kZXhMYXllcnMub3ZlcmxheS5tb2RhbCxcbiAgJ2RlZXMtd2luZG93bGF5ZXInOiB6SW5kZXhMYXllcnMub3ZlcmxheS5kcm9wZG93bixcbiAgJ2RlZXMtY29udGV4dG1lbnUnOiB6SW5kZXhMYXllcnMub3ZlcmxheS5jb250ZXh0TWVudSxcbiAgJ2RlZXMtdG9hc3QnOiB6SW5kZXhMYXllcnMub3ZlcmxheS50b2FzdCxcbiAgJ2RlZXMtYXBwdWktbWFpbm1lbnUnOiB6SW5kZXhMYXllcnMuZml4ZWQuYXBwQmFyLFxuICAnZGVlcy1tb2JpbGVuYXZpZ2F0aW9uJzogekluZGV4TGF5ZXJzLmZpeGVkLm1vYmlsZU5hdixcbiAgJ2RlZXMtc2xhc2gtbWVudSc6IHpJbmRleExheWVycy53eXNpd3lnTWVudXMsXG4gICdkZWVzLWZvcm1hdHRpbmctbWVudSc6IHpJbmRleExheWVycy53eXNpd3lnTWVudXMsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIFotSW5kZXggUmVnaXN0cnkgZm9yIG1hbmFnaW5nIHN0YWNrZWQgZWxlbWVudHNcbiAqIFNpbXBsZSBpbmNyZW1lbnRhbCB6LWluZGV4IGFzc2lnbm1lbnQgYmFzZWQgb24gY3JlYXRpb24gb3JkZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFpJbmRleFJlZ2lzdHJ5IHtcbiAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2U6IFpJbmRleFJlZ2lzdHJ5O1xuICBwcml2YXRlIGFjdGl2ZUVsZW1lbnRzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcbiAgcHJpdmF0ZSBlbGVtZW50WkluZGV4TWFwID0gbmV3IFdlYWtNYXA8SFRNTEVsZW1lbnQsIG51bWJlcj4oKTtcbiAgcHJpdmF0ZSBjdXJyZW50WkluZGV4ID0gMTAwMDsgLy8gU3RhcnRpbmcgei1pbmRleFxuICBcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG4gIFxuICBwdWJsaWMgc3RhdGljIGdldEluc3RhbmNlKCk6IFpJbmRleFJlZ2lzdHJ5IHtcbiAgICBpZiAoIVpJbmRleFJlZ2lzdHJ5Lmluc3RhbmNlKSB7XG4gICAgICBaSW5kZXhSZWdpc3RyeS5pbnN0YW5jZSA9IG5ldyBaSW5kZXhSZWdpc3RyeSgpO1xuICAgIH1cbiAgICByZXR1cm4gWkluZGV4UmVnaXN0cnkuaW5zdGFuY2U7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBHZXQgdGhlIG5leHQgYXZhaWxhYmxlIHotaW5kZXhcbiAgICogQHJldHVybnMgVGhlIG5leHQgYXZhaWxhYmxlIHotaW5kZXhcbiAgICovXG4gIHB1YmxpYyBnZXROZXh0WkluZGV4KCk6IG51bWJlciB7XG4gICAgdGhpcy5jdXJyZW50WkluZGV4ICs9IDEwO1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRaSW5kZXg7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhbiBlbGVtZW50IHdpdGggdGhlIHotaW5kZXggcmVnaXN0cnlcbiAgICogQHBhcmFtIGVsZW1lbnQgLSBUaGUgSFRNTCBlbGVtZW50IHRvIHJlZ2lzdGVyXG4gICAqIEBwYXJhbSB6SW5kZXggLSBUaGUgei1pbmRleCBhc3NpZ25lZCB0byB0aGlzIGVsZW1lbnRcbiAgICovXG4gIHB1YmxpYyByZWdpc3RlcihlbGVtZW50OiBIVE1MRWxlbWVudCwgekluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUVsZW1lbnRzLmFkZChlbGVtZW50KTtcbiAgICB0aGlzLmVsZW1lbnRaSW5kZXhNYXAuc2V0KGVsZW1lbnQsIHpJbmRleCk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVyIGFuIGVsZW1lbnQgZnJvbSB0aGUgei1pbmRleCByZWdpc3RyeVxuICAgKiBAcGFyYW0gZWxlbWVudCAtIFRoZSBIVE1MIGVsZW1lbnQgdG8gdW5yZWdpc3RlclxuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXIoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUVsZW1lbnRzLmRlbGV0ZShlbGVtZW50KTtcbiAgICB0aGlzLmVsZW1lbnRaSW5kZXhNYXAuZGVsZXRlKGVsZW1lbnQpO1xuICAgIFxuICAgIC8vIElmIG5vIG1vcmUgYWN0aXZlIGVsZW1lbnRzLCByZXNldCBjb3VudGVyIHRvIGJhc2VcbiAgICBpZiAodGhpcy5hY3RpdmVFbGVtZW50cy5zaXplID09PSAwKSB7XG4gICAgICB0aGlzLmN1cnJlbnRaSW5kZXggPSAxMDAwO1xuICAgIH1cbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCB0aGUgei1pbmRleCBmb3IgYSBzcGVjaWZpYyBlbGVtZW50XG4gICAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIEhUTUwgZWxlbWVudFxuICAgKiBAcmV0dXJucyBUaGUgei1pbmRleCBvciB1bmRlZmluZWQgaWYgbm90IHJlZ2lzdGVyZWRcbiAgICovXG4gIHB1YmxpYyBnZXRFbGVtZW50WkluZGV4KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChlbGVtZW50KTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCBjb3VudCBvZiBhY3RpdmUgZWxlbWVudHNcbiAgICogQHJldHVybnMgTnVtYmVyIG9mIGFjdGl2ZSBlbGVtZW50c1xuICAgKi9cbiAgcHVibGljIGdldEFjdGl2ZUNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRWxlbWVudHMuc2l6ZTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBoaWdoZXN0IHotaW5kZXhcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgei1pbmRleCB2YWx1ZVxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRaSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50WkluZGV4O1xuICB9XG4gIFxuICAvKipcbiAgICogQ2xlYXIgYWxsIHJlZ2lzdHJhdGlvbnMgKHVzZWZ1bCBmb3IgdGVzdGluZylcbiAgICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUVsZW1lbnRzLmNsZWFyKCk7XG4gICAgdGhpcy5lbGVtZW50WkluZGV4TWFwID0gbmV3IFdlYWtNYXAoKTtcbiAgICB0aGlzLmN1cnJlbnRaSW5kZXggPSAxMDAwO1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IGFsbCBhY3RpdmUgZWxlbWVudHMgaW4gei1pbmRleCBvcmRlclxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBlbGVtZW50cyBzb3J0ZWQgYnkgei1pbmRleFxuICAgKi9cbiAgcHVibGljIGdldEFjdGl2ZUVsZW1lbnRzSW5PcmRlcigpOiBIVE1MRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmFjdGl2ZUVsZW1lbnRzKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCBhWiA9IHRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQoYSkgfHwgMDtcbiAgICAgIGNvbnN0IGJaID0gdGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChiKSB8fCAwO1xuICAgICAgcmV0dXJuIGFaIC0gYlo7XG4gICAgfSk7XG4gIH1cbn1cblxuLy8gRXhwb3J0IHNpbmdsZXRvbiBpbnN0YW5jZSBmb3IgY29udmVuaWVuY2VcbmV4cG9ydCBjb25zdCB6SW5kZXhSZWdpc3RyeSA9IFpJbmRleFJlZ2lzdHJ5LmdldEluc3RhbmNlKCk7IiwgIi8vIEJ1c2luZXNzXG5pbXBvcnQgKiBhcyBidXNpbmVzcyBmcm9tICcuL2J1c2luZXNzL2luZGV4LmpzJztcblxuLy8gQ29kZVxuaW1wb3J0ICogYXMgY29kZSBmcm9tICcuL2NvZGUvaW5kZXguanMnO1xuXG4vLyBDb250YWluZXJcbmltcG9ydCAqIGFzIGNvbnRhaW5lciBmcm9tICcuL2NvbnRhaW5lci9pbmRleC5qcyc7XG5cbi8vIERhdGFiYXNlXG5pbXBvcnQgKiBhcyBkYXRhYmFzZSBmcm9tICcuL2RhdGFiYXNlL2luZGV4LmpzJztcblxuLy8gRGVzY3JpcHRvcnMgXG5pbXBvcnQgKiBhcyBkZXNjcmlwdG9ycyBmcm9tICcuL2Rlc2NyaXB0b3JzL2luZGV4LmpzJztcblxuLy8gRmluYW5jZVxuaW1wb3J0ICogYXMgZmluYW5jZSBmcm9tICcuL2ZpbmFuY2UvaW5kZXguanMnO1xuXG4vLyBDb250ZW50XG5pbXBvcnQgKiBhcyBjb250ZW50IGZyb20gJy4vY29udGVudC9pbmRleC5qcyc7XG5cbi8vIEdlbmVyYWxcbmltcG9ydCAqIGFzIGdlbmVyYWwgZnJvbSAnLi9nZW5lcmFsL2luZGV4LmpzJztcblxuLy8gTmV0d29ya1xuaW1wb3J0ICogYXMgbmV0d29yayBmcm9tICcuL25ldHdvcmsvaW5kZXguanMnO1xuXG4vLyBTYWFTXG5pbXBvcnQgKiBhcyBzYWFzIGZyb20gJy4vc2Fhcy9pbmRleC5qcyc7XG5cbi8vIFN0b3JhZ2VcbmltcG9ydCAqIGFzIHN0b3JhZ2UgZnJvbSAnLi9zdG9yYWdlL2luZGV4LmpzJztcblxuLy8gV2Vic2l0ZVxuaW1wb3J0ICogYXMgd2Vic2l0ZSBmcm9tICcuL3dlYnNpdGUvaW5kZXguanMnO1xuXG5leHBvcnQge1xuICBidXNpbmVzcyxcbiAgY29udGFpbmVyLFxuICBjb2RlLFxuICBkYXRhYmFzZSxcbiAgZGVzY3JpcHRvcnMsXG4gIGZpbmFuY2UsXG4gIGNvbnRlbnQsXG4gIGdlbmVyYWwsXG4gIG5ldHdvcmssXG4gIHNhYXMsXG4gIHN0b3JhZ2UsXG4gIHdlYnNpdGUsXG59O1xuXG5pbXBvcnQgdHlwZSAqIGFzIHR5cGVGZXN0IGZyb20gJ3R5cGUtZmVzdCc7XG5pbXBvcnQgKiBhcyB0eXBlRmVzdE93biBmcm9tICcuL3R5cGVmZXN0Lm93bi5qcyc7XG5cbmV4cG9ydCB7IHR5cGUgdHlwZUZlc3QsIHR5cGUgdHlwZUZlc3RPd24gfTtcbiIsICJleHBvcnQgKiBmcm9tICcuL2FkZHJlc3MuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250YWN0LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZG9jdW1lbnQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9qb2IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9sZXR0ZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wZGYuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9qZWN0LmpzJztcbiIsICJleHBvcnQgKiBmcm9tICcuL21vbmdvZGVzY3JpcHRvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL29iamVjdGFjdGlvbi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL29iamVjdHN0YXR1cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3dyYXBwZWRkYXRhLmpzJztcbiIsICJleHBvcnQgKiBmcm9tICcuL2NoZWNraW5nYWNjb3VudC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2N1cnJlbmN5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZXhwZW5zZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FjY291bnRpbmdkb2MuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXltZW50LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvY2twcmljZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uLmpzJztcbiIsICJleHBvcnQgKiBmcm9tICcuL2NvbW1pdGluZm8uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0dXNvYmplY3QuanMnOyIsICJleHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3ZvbHVtZW1vdW50LmpzJztcbiIsICJleHBvcnQgdHlwZSB7IElNb25nb0Rlc2NyaXB0b3IgfSBmcm9tICcuLi9kYXRhYmFzZS9pbmRleC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsb3VkZmxhcmVEZXNjcmlwdG9yIHtcbiAgYXV0aFRva2VuOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElMZXR0ZXJFeHByZXNzRGVzY3JpcHRvciB7XG4gIGVtYWlsOiBzdHJpbmcsXG4gIGFwaVRva2VuOiBzdHJpbmcsXG59XG4iLCAiZXhwb3J0ICogZnJvbSAnLi9hcnRpY2xlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZG9jdW1lbnRhdGlvbnNldC5qcyc7XG4iLCAiZXhwb3J0ICogZnJvbSAnLi9kYXRlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdGltZS5qcyc7XG4iLCAiZXhwb3J0ICogZnJvbSAnLi9jZXJ0LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY25hbWUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXZpY2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kbnNjaGFsbGVuZ2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kbnNjb252ZW5pZW5jZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RvbWFpbmRlbGVnYXRpb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9qd3QuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9uZXR3b3Jrbm9kZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3JlcXVlc3QuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXZlcnNlcHJveHkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zc2guanMnO1xuIiwgImltcG9ydCB7IHR5cGUgSUNlcnQgfSBmcm9tICcuL2NlcnQuanMnO1xuXG5leHBvcnQgY2xhc3MgSUNuYW1lRGVzY3JpcHRvciB7XG4gIC8qKlxuICAgKiB0aGUgb3JpZ2luYWwgZG9tYWluIHRoYXQgaXMgYmVpbmcgY25hbWVkXG4gICAqL1xuICBjbmFtZWREb21haW46IHN0cmluZztcblxuICAvKipcbiAgICogdGhlIGNuYW1lIHByb3h5IGRvbWFpblxuICAgKiB0aGUgZG9tYWluIHRoYXQgaXMgdXNlZCBmb3IgdGhlIGNuYW1lIGRucyBlbnRyeVxuICAgKi9cbiAgY25hbWVQcm94eURvbWFpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiB0aGUgaW50ZXJuYWwgdGFyZ2V0IHVybFxuICAgKi9cbiAgdGFyZ2V0VXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGEgZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHRoZSBzc2wgY2VydGlmaWNhdGVcbiAgICovXG4gIHNzbENlcnRpZmljYXRlPzogSUNlcnQ7XG59XG4iLCAiZXhwb3J0ICogZnJvbSAnLi9zdWJzY3JpcHRpb25wbGFuLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC5qcyc7XG4iLCAiZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTkwY3k5emRHOXlZV2RsTDJsdVpHVjRMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUlpZlE9PSIsICJleHBvcnQgKiBmcm9tICcuL2xpbmsuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51aXRlbS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpbmtibG9jay5qcyc7XG4iLCAiLy8gQHB1c2gucm9ja3Mgc2NvcGVcbmltcG9ydCAqIGFzIHNtYXJ0cHJvbWlzZSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UnO1xuXG5leHBvcnQge1xuICBzbWFydHByb21pc2UsXG59XG5cbi8vIEB0c2NsYXNzIHNjb3BlXG5pbXBvcnQgKiBhcyB0c2NsYXNzIGZyb20gJ0B0c2NsYXNzL3RzY2xhc3MnO1xuXG5leHBvcnQge1xuICB0c2NsYXNzXG59XG4iLCAiaW1wb3J0IHsgaHRtbCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLzAwcGx1Z2lucy5qcyc7XG5cbmltcG9ydCB7IERlZXNDb250ZXh0bWVudSB9IGZyb20gJy4uL2RlZXMtY29udGV4dG1lbnUvZGVlcy1jb250ZXh0bWVudS5qcyc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG48c3R5bGU+XG4gIC53aXRoTWFyZ2luIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDIwcHg7XG4gIH1cbiAgLmRlbW8tY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAyMHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgbWluLWhlaWdodDogNDAwcHg7XG4gIH1cbiAgLmRlbW8tYXJlYSB7XG4gICAgcGFkZGluZzogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGN1cnNvcjogY29udGV4dC1tZW51O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycztcbiAgfVxuICAuZGVtby1hcmVhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDIpO1xuICB9XG48L3N0eWxlPlxuPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gIDxkZWVzLXBhbmVsIGhlYWRpbmc9XCJCYXNpYyBDb250ZXh0IE1lbnUgd2l0aCBOZXN0ZWQgU3VibWVudXNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGVtby1hcmVhXCIgQGNvbnRleHRtZW51PSR7KGV2ZW50QXJnOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBEZWVzQ29udGV4dG1lbnUub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZXZlbnRBcmcsIFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdGaWxlJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2ZpbGVUZXh0JyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHt9LCAvLyBQYXJlbnQgaXRlbXMgd2l0aCBzdWJtZW51cyBzdGlsbCBuZWVkIGFuIGFjdGlvblxuICAgICAgICAgIHN1Ym1lbnU6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ05ldycsIGljb25OYW1lOiAnZmlsZVBsdXMnLCBzaG9ydGN1dDogJ0NtZCtOJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnTmV3IGZpbGUnKSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnT3BlbicsIGljb25OYW1lOiAnZm9sZGVyT3BlbicsIHNob3J0Y3V0OiAnQ21kK08nLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdPcGVuIGZpbGUnKSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnU2F2ZScsIGljb25OYW1lOiAnc2F2ZScsIHNob3J0Y3V0OiAnQ21kK1MnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdTYXZlJykgfSxcbiAgICAgICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnRXhwb3J0IGFzIFBERicsIGljb25OYW1lOiAnZG93bmxvYWQnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdFeHBvcnQgUERGJykgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0V4cG9ydCBhcyBIVE1MJywgaWNvbk5hbWU6ICdjb2RlJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnRXhwb3J0IEhUTUwnKSB9LFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdFZGl0JyxcbiAgICAgICAgICBpY29uTmFtZTogJ2VkaXQzJyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHt9LCAvLyBQYXJlbnQgaXRlbXMgd2l0aCBzdWJtZW51cyBzdGlsbCBuZWVkIGFuIGFjdGlvblxuICAgICAgICAgIHN1Ym1lbnU6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ0N1dCcsIGljb25OYW1lOiAnc2Npc3NvcnMnLCBzaG9ydGN1dDogJ0NtZCtYJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnQ3V0JykgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0NvcHknLCBpY29uTmFtZTogJ2NvcHknLCBzaG9ydGN1dDogJ0NtZCtDJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnQ29weScpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdQYXN0ZScsIGljb25OYW1lOiAnY2xpcGJvYXJkJywgc2hvcnRjdXQ6ICdDbWQrVicsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1Bhc3RlJykgfSxcbiAgICAgICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnRmluZCcsIGljb25OYW1lOiAnc2VhcmNoJywgc2hvcnRjdXQ6ICdDbWQrRicsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0ZpbmQnKSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnUmVwbGFjZScsIGljb25OYW1lOiAncmVwZWF0Jywgc2hvcnRjdXQ6ICdDbWQrSCcsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1JlcGxhY2UnKSB9LFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdWaWV3JyxcbiAgICAgICAgICBpY29uTmFtZTogJ2V5ZScsXG4gICAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7fSwgLy8gUGFyZW50IGl0ZW1zIHdpdGggc3VibWVudXMgc3RpbGwgbmVlZCBhbiBhY3Rpb25cbiAgICAgICAgICBzdWJtZW51OiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdab29tIEluJywgaWNvbk5hbWU6ICd6b29tSW4nLCBzaG9ydGN1dDogJ0NtZCsrJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnWm9vbSBpbicpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdab29tIE91dCcsIGljb25OYW1lOiAnem9vbU91dCcsIHNob3J0Y3V0OiAnQ21kKy0nLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdab29tIG91dCcpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdSZXNldCBab29tJywgaWNvbk5hbWU6ICdtYXhpbWl6ZTInLCBzaG9ydGN1dDogJ0NtZCswJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnUmVzZXQgem9vbScpIH0sXG4gICAgICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0Z1bGwgU2NyZWVuJywgaWNvbk5hbWU6ICdtYXhpbWl6ZScsIHNob3J0Y3V0OiAnRjExJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnRnVsbCBzY3JlZW4nKSB9LFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnU2V0dGluZ3MnLFxuICAgICAgICAgIGljb25OYW1lOiAnc2V0dGluZ3MnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1NldHRpbmdzJylcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdIZWxwJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2hlbHBDaXJjbGUnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge30sIC8vIFBhcmVudCBpdGVtcyB3aXRoIHN1Ym1lbnVzIHN0aWxsIG5lZWQgYW4gYWN0aW9uXG4gICAgICAgICAgc3VibWVudTogW1xuICAgICAgICAgICAgeyBuYW1lOiAnRG9jdW1lbnRhdGlvbicsIGljb25OYW1lOiAnYm9vaycsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0RvY3VtZW50YXRpb24nKSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnS2V5Ym9hcmQgU2hvcnRjdXRzJywgaWNvbk5hbWU6ICdrZXlib2FyZCcsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1Nob3J0Y3V0cycpIH0sXG4gICAgICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0Fib3V0JywgaWNvbk5hbWU6ICdpbmZvJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnQWJvdXQnKSB9LFxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgfX0+XG4gICAgICA8aDM+UmlnaHQtY2xpY2sgYW55d2hlcmUgaW4gdGhpcyBhcmVhPC9oMz5cbiAgICAgIDxwPkEgY29udGV4dCBtZW51IHdpdGggbmVzdGVkIHN1Ym1lbnVzIHdpbGwgYXBwZWFyPC9wPlxuICAgIDwvZGl2PlxuICA8L2RlZXMtcGFuZWw+XG4gIDxkZWVzLXBhbmVsIGhlYWRpbmc9XCJDb21wb25lbnQtU3BlY2lmaWMgQ29udGV4dCBNZW51XCI+XG4gICAgPGRlZXMtYnV0dG9uIHN0eWxlPVwibWFyZ2luOiAyMHB4O1wiIEBjb250ZXh0bWVudT0keyhldmVudEFyZzogTW91c2VFdmVudCkgPT4ge1xuICAgICAgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGV2ZW50QXJnLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQnV0dG9uIEFjdGlvbnMnLFxuICAgICAgICAgIGljb25OYW1lOiAnbW91c2VQb2ludGVyJyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHt9LCAvLyBQYXJlbnQgaXRlbXMgd2l0aCBzdWJtZW51cyBzdGlsbCBuZWVkIGFuIGFjdGlvblxuICAgICAgICAgIHN1Ym1lbnU6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ0NsaWNrJywgaWNvbk5hbWU6ICdtb3VzZScsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0NsaWNrIGFjdGlvbicpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdEb3VibGUgQ2xpY2snLCBpY29uTmFtZTogJ3phcCcsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0RvdWJsZSBjbGljaycpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdMb25nIFByZXNzJywgaWNvbk5hbWU6ICdjbG9jaycsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0xvbmcgcHJlc3MnKSB9LFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdCdXR0b24gU3RhdGUnLFxuICAgICAgICAgIGljb25OYW1lOiAndG9nZ2xlTGVmdCcsXG4gICAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7fSwgLy8gUGFyZW50IGl0ZW1zIHdpdGggc3VibWVudXMgc3RpbGwgbmVlZCBhbiBhY3Rpb25cbiAgICAgICAgICBzdWJtZW51OiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdFbmFibGUnLCBpY29uTmFtZTogJ2NoZWNrQ2lyY2xlJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnRW5hYmxlJykgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0Rpc2FibGUnLCBpY29uTmFtZTogJ3hDaXJjbGUnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdEaXNhYmxlJykgfSxcbiAgICAgICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnU2hvdycsIGljb25OYW1lOiAnZXllJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnU2hvdycpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdIaWRlJywgaWNvbk5hbWU6ICdleWVPZmYnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdIaWRlJykgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0Rpc2FibGVkIEFjdGlvbicsXG4gICAgICAgICAgaWNvbk5hbWU6ICdiYW4nLFxuICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1RoaXMgc2hvdWxkIG5vdCBydW4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdQcm9wZXJ0aWVzJyxcbiAgICAgICAgICBpY29uTmFtZTogJ3NldHRpbmdzJyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdCdXR0b24gcHJvcGVydGllcycpLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgfX0+UmlnaHQtY2xpY2sgb24gdGhpcyBidXR0b248L2RlZXMtYnV0dG9uPlxuICA8L2RlZXMtcGFuZWw+XG5cbiAgPGRlZXMtcGFuZWwgaGVhZGluZz1cIkFkdmFuY2VkIENvbnRleHQgTWVudSBFeGFtcGxlXCI+XG4gICAgPGRpdiBjbGFzcz1cImRlbW8tYXJlYVwiIEBjb250ZXh0bWVudT0keyhldmVudEFyZzogTW91c2VFdmVudCkgPT4ge1xuICAgICAgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGV2ZW50QXJnLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnRm9ybWF0JyxcbiAgICAgICAgICBpY29uTmFtZTogJ3R5cGUnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge30sIC8vIFBhcmVudCBpdGVtcyB3aXRoIHN1Ym1lbnVzIHN0aWxsIG5lZWQgYW4gYWN0aW9uXG4gICAgICAgICAgc3VibWVudTogW1xuICAgICAgICAgICAgeyBuYW1lOiAnQm9sZCcsIGljb25OYW1lOiAnYm9sZCcsIHNob3J0Y3V0OiAnQ21kK0InLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdCb2xkJykgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0l0YWxpYycsIGljb25OYW1lOiAnaXRhbGljJywgc2hvcnRjdXQ6ICdDbWQrSScsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0l0YWxpYycpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdVbmRlcmxpbmUnLCBpY29uTmFtZTogJ3VuZGVybGluZScsIHNob3J0Y3V0OiAnQ21kK1UnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdVbmRlcmxpbmUnKSB9LFxuICAgICAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdGb250IFNpemUnLCBpY29uTmFtZTogJ3R5cGUnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdGb250IHNpemUgbWVudScpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdGb250IENvbG9yJywgaWNvbk5hbWU6ICdwYWxldHRlJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnRm9udCBjb2xvciBtZW51JykgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnVHJhbnNmb3JtJyxcbiAgICAgICAgICBpY29uTmFtZTogJ3NodWZmbGUnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge30sIC8vIFBhcmVudCBpdGVtcyB3aXRoIHN1Ym1lbnVzIHN0aWxsIG5lZWQgYW4gYWN0aW9uXG4gICAgICAgICAgc3VibWVudTogW1xuICAgICAgICAgICAgeyBuYW1lOiAnVG8gVXBwZXJjYXNlJywgaWNvbk5hbWU6ICdhcnJvd1VwJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnVXBwZXJjYXNlJykgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ1RvIExvd2VyY2FzZScsIGljb25OYW1lOiAnYXJyb3dEb3duJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnTG93ZXJjYXNlJykgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0NhcGl0YWxpemUnLCBpY29uTmFtZTogJ3R5cGUnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdDYXBpdGFsaXplJykgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0RlbGV0ZScsXG4gICAgICAgICAgaWNvbk5hbWU6ICd0cmFzaDInLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0RlbGV0ZScpXG4gICAgICAgIH1cbiAgICAgIF0pO1xuICAgIH19PlxuICAgICAgPGgzPkFkdmFuY2VkIE5lc3RlZCBNZW51IEV4YW1wbGU8L2gzPlxuICAgICAgPHA+VGhpcyBzaG93cyBkZWVwbHkgbmVzdGVkIHN1Ym1lbnVzIGFuZCB2YXJpb3VzIGZvcm1hdHRpbmcgb3B0aW9uczwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kZWVzLXBhbmVsPlxuICBcbiAgPGRlZXMtcGFuZWwgaGVhZGluZz1cIlN0YXRpYyBDb250ZXh0IE1lbnUgKEFsd2F5cyBWaXNpYmxlKVwiPlxuICAgIDxkZWVzLWNvbnRleHRtZW51XG4gICAgICBjbGFzcz1cIndpdGhNYXJnaW5cIlxuICAgICAgLm1lbnVJdGVtcz0ke1tcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdQcm9qZWN0JyxcbiAgICAgICAgICBpY29uTmFtZTogJ2ZvbGRlcicsXG4gICAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7fSwgLy8gUGFyZW50IGl0ZW1zIHdpdGggc3VibWVudXMgc3RpbGwgbmVlZCBhbiBhY3Rpb25cbiAgICAgICAgICBzdWJtZW51OiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdOZXcgUHJvamVjdCcsIGljb25OYW1lOiAnZm9sZGVyUGx1cycsIHNob3J0Y3V0OiAnQ21kK1NoaWZ0K04nLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdOZXcgcHJvamVjdCcpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdPcGVuIFByb2plY3QnLCBpY29uTmFtZTogJ2ZvbGRlck9wZW4nLCBzaG9ydGN1dDogJ0NtZCtTaGlmdCtPJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnT3BlbiBwcm9qZWN0JykgfSxcbiAgICAgICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnUmVjZW50IFByb2plY3RzJywgaWNvbk5hbWU6ICdjbG9jaycsIGFjdGlvbjogYXN5bmMgKCkgPT4ge30sIHN1Ym1lbnU6IFtcbiAgICAgICAgICAgICAgeyBuYW1lOiAnUHJvamVjdCBBbHBoYScsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ09wZW4gQWxwaGEnKSB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdQcm9qZWN0IEJldGEnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdPcGVuIEJldGEnKSB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdQcm9qZWN0IEdhbW1hJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnT3BlbiBHYW1tYScpIH0sXG4gICAgICAgICAgICBdfSxcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnVG9vbHMnLFxuICAgICAgICAgIGljb25OYW1lOiAndG9vbCcsXG4gICAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7fSwgLy8gUGFyZW50IGl0ZW1zIHdpdGggc3VibWVudXMgc3RpbGwgbmVlZCBhbiBhY3Rpb25cbiAgICAgICAgICBzdWJtZW51OiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdUZXJtaW5hbCcsIGljb25OYW1lOiAndGVybWluYWwnLCBzaG9ydGN1dDogJ0NtZCtUJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnVGVybWluYWwnKSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnQ29uc29sZScsIGljb25OYW1lOiAnbW9uaXRvcicsIHNob3J0Y3V0OiAnQ21kK0snLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdDb25zb2xlJykgfSxcbiAgICAgICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnRXh0ZW5zaW9ucycsIGljb25OYW1lOiAncGFja2FnZScsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0V4dGVuc2lvbnMnKSB9LFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnUHJlZmVyZW5jZXMnLFxuICAgICAgICAgIGljb25OYW1lOiAnc2xpZGVycycsXG4gICAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnUHJlZmVyZW5jZXMnKSxcbiAgICAgICAgfSxcbiAgICAgIF19XG4gICAgPjwvZGVlcy1jb250ZXh0bWVudT5cbiAgPC9kZWVzLXBhbmVsPlxuPC9kaXY+XG5gOyIsICJpbXBvcnQgeyBjdXN0b21FbGVtZW50LCBEZWVzRWxlbWVudCwgZG9tdG9vbHMsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIGh0bWwsIHByb3BlcnR5LCB0eXBlIENTU1Jlc3VsdCwgc3RhdGUsIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IHpJbmRleExheWVycywgekluZGV4UmVnaXN0cnkgfSBmcm9tICcuLi8wMHppbmRleC5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtd2luZG93bGF5ZXInOiBEZWVzV2luZG93TGF5ZXI7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc19EZWVzV2luZG93TGF5ZXIge1xuICBibHVyOiBib29sZWFuO1xufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy13aW5kb3dsYXllcicpXG5leHBvcnQgY2xhc3MgRGVlc1dpbmRvd0xheWVyIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICAvLyBTVEFUSUNcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gKCkgPT4gaHRtbGA8ZGVlcy13aW5kb3dsYXllcj48L2RlZXMtd2luZG93bGF5ZXI+YDtcblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3cob3B0aW9uc0FyZz86IElPcHRpb25zX0RlZXNXaW5kb3dMYXllcikge1xuICAgIGNvbnN0IGRvbXRvb2xzSW5zdGFuY2UgPSBkb210b29scy5Eb21Ub29scy5nZXRHbG9iYWxEb21Ub29sc1N5bmMoKTtcbiAgICBjb25zdCB3aW5kb3dMYXllciA9IG5ldyBEZWVzV2luZG93TGF5ZXIoKTtcbiAgICB3aW5kb3dMYXllci5vcHRpb25zID0ge1xuICAgICAgLi4ud2luZG93TGF5ZXIub3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnNBcmcsXG4gICAgfVxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHdpbmRvd0xheWVyKTtcbiAgICBhd2FpdCBkb210b29sc0luc3RhbmNlLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7XG4gICAgd2luZG93TGF5ZXIuc2hvdygpO1xuICAgIHJldHVybiB3aW5kb3dMYXllcjtcbiAgfVxuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIG9wdGlvbnM6IElPcHRpb25zX0RlZXNXaW5kb3dMYXllciA9IHtcbiAgICBibHVyOiBmYWxzZVxuICB9O1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGJhY2tkcm9wWkluZGV4OiBudW1iZXIgPSAxMDAwO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGNvbnRlbnRaSW5kZXg6IG51bWJlciA9IDEwMDE7XG5cbiAgLy8gSU5TVEFOQ0VcbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBCb29sZWFuXG4gIH0pXG4gIGFjY2Vzc29yIHZpc2libGUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGRvbXRvb2xzLmVsZW1lbnRCYXNpYy5zZXR1cCgpO1xuICB9XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke2RvbXRvb2xzLmVsZW1lbnRCYXNpYy5zdHlsZXN9XG4gICAgICA8c3R5bGU+XG4gICAgICAgIC53aW5kb3dPdmVybGF5IHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wKTtcbiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMSkgJHt0aGlzLm9wdGlvbnMuYmx1ciA/ICdibHVyKDBweCknIDogJyd9O1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5iYWNrZHJvcFpJbmRleH07XG4gICAgICAgIH1cbiAgICAgICAgLnNsb3RDb250ZW50IHtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5jb250ZW50WkluZGV4fTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnNsb3RDb250ZW50ID4gKiB7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC52aXNpYmxlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBicmlnaHRuZXNzKDAuOSkgJHt0aGlzLm9wdGlvbnMuYmx1ciA/ICdibHVyKDJweCknIDogJyd9O1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICAgIH1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8ZGl2IEBjbGljaz0ke3RoaXMuZGlzcGF0Y2hDbGlja2VkfSBjbGFzcz1cIndpbmRvd092ZXJsYXkgJHt0aGlzLnZpc2libGUgPyAndmlzaWJsZScgOiBudWxsfVwiPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2xvdENvbnRlbnRcIj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIGZpcnN0VXBkYXRlZCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGRpc3BhdGNoQ2xpY2tlZCgpIHtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjbGlja2VkJykpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVZpc2liaWxpdHkgKCkge1xuICAgIHRoaXMudmlzaWJsZSA9ICF0aGlzLnZpc2libGU7XG4gIH1cbiAgXG4gIHB1YmxpYyBnZXRDb250ZW50WkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudFpJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaG93KCkge1xuICAgIGNvbnN0IGRvbXRvb2xzID0gYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7XG4gICAgXG4gICAgLy8gR2V0IHotaW5kZXhlcyBmcm9tIHJlZ2lzdHJ5XG4gICAgdGhpcy5iYWNrZHJvcFpJbmRleCA9IHpJbmRleFJlZ2lzdHJ5LmdldE5leHRaSW5kZXgoKTtcbiAgICB0aGlzLmNvbnRlbnRaSW5kZXggPSB6SW5kZXhSZWdpc3RyeS5nZXROZXh0WkluZGV4KCk7XG4gICAgXG4gICAgLy8gUmVnaXN0ZXIgdGhpcyBlbGVtZW50XG4gICAgekluZGV4UmVnaXN0cnkucmVnaXN0ZXIodGhpcywgdGhpcy5iYWNrZHJvcFpJbmRleCk7XG4gICAgXG4gICAgYXdhaXQgZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKTtcbiAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGhpZGUoKSB7XG4gICAgY29uc3QgZG9tdG9vbHMgPSBhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtcbiAgICBhd2FpdCBkb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlc3Ryb3koKSB7XG4gICAgY29uc3QgZG9tdG9vbHMgPSBhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtcbiAgICBhd2FpdCB0aGlzLmhpZGUoKTtcbiAgICBhd2FpdCBkb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCk7XG4gICAgXG4gICAgLy8gVW5yZWdpc3RlciBmcm9tIHotaW5kZXggcmVnaXN0cnlcbiAgICB6SW5kZXhSZWdpc3RyeS51bnJlZ2lzdGVyKHRoaXMpO1xuICAgIFxuICAgIHRoaXMucmVtb3ZlKCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLzAwcGx1Z2lucy5qcyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1jb250ZXh0bWVudS5kZW1vLmpzJztcbmltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIGh0bWwsXG4gIERlZXNFbGVtZW50LFxuICBwcm9wZXJ0eSxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgY3NzTWFuYWdlcixcbiAgY3NzLFxuICB0eXBlIENTU1Jlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCB7IERlZXNXaW5kb3dMYXllciB9IGZyb20gJy4uL2RlZXMtd2luZG93bGF5ZXIvZGVlcy13aW5kb3dsYXllci5qcyc7XG5pbXBvcnQgeyB6SW5kZXhMYXllcnMgfSBmcm9tICcuLi8wMHppbmRleC5qcyc7XG5pbXBvcnQgJy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtY29udGV4dG1lbnUnOiBEZWVzQ29udGV4dG1lbnU7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtY29udGV4dG1lbnUnKVxuZXhwb3J0IGNsYXNzIERlZXNDb250ZXh0bWVudSBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgLy8gREVNT1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuY1xuXG4gIC8vIFNUQVRJQ1xuICAvLyBUaGlzIHdpbGwgc3RvcmUgYWxsIHRoZSBhY2N1bXVsYXRlZCBtZW51IGl0ZW1zXG4gIHB1YmxpYyBzdGF0aWMgY29udGV4dE1lbnVEZWFjdGl2YXRlZCA9IGZhbHNlO1xuICBwdWJsaWMgc3RhdGljIGFjY3VtdWxhdGVkTWVudUl0ZW1zOiAocGx1Z2lucy50c2NsYXNzLndlYnNpdGUuSU1lbnVJdGVtICYgeyBzaG9ydGN1dD86IHN0cmluZzsgZGlzYWJsZWQ/OiBib29sZWFuOyBzdWJtZW51PzogKHBsdWdpbnMudHNjbGFzcy53ZWJzaXRlLklNZW51SXRlbSAmIHsgc2hvcnRjdXQ/OiBzdHJpbmc7IGRpc2FibGVkPzogYm9vbGVhbiB9IHwgeyBkaXZpZGVyOiB0cnVlIH0pW10gfSB8IHsgZGl2aWRlcjogdHJ1ZSB9KVtdID0gW107XG5cbiAgLy8gQWRkIGEgZ2xvYmFsIGV2ZW50IGxpc3RlbmVyIGZvciB0aGUgcmlnaHQtY2xpY2sgY29udGV4dCBtZW51XG4gIHB1YmxpYyBzdGF0aWMgaW5pdGlhbGl6ZUdsb2JhbExpc3RlbmVyKCkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAodGhpcy5jb250ZXh0TWVudURlYWN0aXZhdGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIC8vIENsZWFyIHByZXZpb3VzbHkgYWNjdW11bGF0ZWQgaXRlbXNcbiAgICAgIERlZXNDb250ZXh0bWVudS5hY2N1bXVsYXRlZE1lbnVJdGVtcyA9IFtdO1xuXG4gICAgICAvLyBVc2UgY29tcG9zZWRQYXRoIHRvIHByb3Blcmx5IHRyYXZlcnNlIHNoYWRvdyBET00gYm91bmRhcmllc1xuICAgICAgY29uc3QgcGF0aCA9IGV2ZW50LmNvbXBvc2VkUGF0aCgpO1xuICAgICAgXG4gICAgICAvLyBUcmF2ZXJzZSB0aGUgY29tcG9zZWQgcGF0aCB0byBhY2N1bXVsYXRlIG1lbnUgaXRlbXNcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBwYXRoKSB7XG4gICAgICAgIGlmICgoZWxlbWVudCBhcyBhbnkpLmdldENvbnRleHRNZW51SXRlbXMpIHtcbiAgICAgICAgICBjb25zdCBpdGVtcyA9IChlbGVtZW50IGFzIGFueSkuZ2V0Q29udGV4dE1lbnVJdGVtcygpO1xuICAgICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAoRGVlc0NvbnRleHRtZW51LmFjY3VtdWxhdGVkTWVudUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgRGVlc0NvbnRleHRtZW51LmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goeyBkaXZpZGVyOiB0cnVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgRGVlc0NvbnRleHRtZW51LmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goLi4uaXRlbXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPcGVuIHRoZSBjb250ZXh0IG1lbnUgd2l0aCB0aGUgYWNjdW11bGF0ZWQgaXRlbXNcbiAgICAgIERlZXNDb250ZXh0bWVudS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhldmVudCwgRGVlc0NvbnRleHRtZW51LmFjY3VtdWxhdGVkTWVudUl0ZW1zKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGFsbG93cyBvcGVuaW5nIG9mIGEgY29udGV4dG1lbnUgd2l0aCBvcHRpb25zXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgb3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZXZlbnRBcmc6IE1vdXNlRXZlbnQsIG1lbnVJdGVtc0FyZzogKHBsdWdpbnMudHNjbGFzcy53ZWJzaXRlLklNZW51SXRlbSAmIHsgc2hvcnRjdXQ/OiBzdHJpbmc7IGRpc2FibGVkPzogYm9vbGVhbjsgc3VibWVudT86IChwbHVnaW5zLnRzY2xhc3Mud2Vic2l0ZS5JTWVudUl0ZW0gJiB7IHNob3J0Y3V0Pzogc3RyaW5nOyBkaXNhYmxlZD86IGJvb2xlYW4gfSB8IHsgZGl2aWRlcjogdHJ1ZSB9KVtdIH0gfCB7IGRpdmlkZXI6IHRydWUgfSlbXSkge1xuICAgIGlmICh0aGlzLmNvbnRleHRNZW51RGVhY3RpdmF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZXZlbnRBcmcucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudEFyZy5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBjb250ZXh0TWVudSA9IG5ldyBEZWVzQ29udGV4dG1lbnUoKTtcbiAgICBjb250ZXh0TWVudS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgY29udGV4dE1lbnUuc3R5bGUuekluZGV4ID0gU3RyaW5nKHpJbmRleExheWVycy5vdmVybGF5LmNvbnRleHRNZW51KTtcbiAgICBjb250ZXh0TWVudS5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgIGNvbnRleHRNZW51LnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSc7XG4gICAgY29udGV4dE1lbnUubWVudUl0ZW1zID0gbWVudUl0ZW1zQXJnO1xuICAgIGNvbnRleHRNZW51LndpbmRvd0xheWVyID0gYXdhaXQgRGVlc1dpbmRvd0xheWVyLmNyZWF0ZUFuZFNob3coKTtcbiAgICBjb250ZXh0TWVudS53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGFzeW5jIChldmVudCkgPT4ge1xuICAgICAgLy8gQ2hlY2sgaWYgY2xpY2sgaXMgb24gdGhlIGNvbnRleHQgbWVudSBvciBpdHMgc3VibWVudXNcbiAgICAgIGNvbnN0IGNsaWNrZWRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgaXNDb250ZXh0TWVudSA9IGNsaWNrZWRFbGVtZW50LmNsb3Nlc3QoJ2RlZXMtY29udGV4dG1lbnUnKTtcbiAgICAgIGlmICghaXNDb250ZXh0TWVudSkge1xuICAgICAgICBhd2FpdCBjb250ZXh0TWVudS5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgfSlcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChjb250ZXh0TWVudSk7XG4gICAgXG4gICAgLy8gR2V0IGRpbWVuc2lvbnMgYWZ0ZXIgYWRkaW5nIHRvIERPTVxuICAgIGF3YWl0IGRvbXRvb2xzLnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigwKTtcbiAgICBjb25zdCByZWN0ID0gY29udGV4dE1lbnUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIHBvc2l0aW9uXG4gICAgbGV0IHRvcCA9IGV2ZW50QXJnLmNsaWVudFk7XG4gICAgbGV0IGxlZnQgPSBldmVudEFyZy5jbGllbnRYO1xuICAgIFxuICAgIC8vIEFkanVzdCBpZiBtZW51IHdvdWxkIGdvIG9mZiByaWdodCBlZGdlXG4gICAgaWYgKGxlZnQgKyByZWN0LndpZHRoID4gd2luZG93V2lkdGgpIHtcbiAgICAgIGxlZnQgPSB3aW5kb3dXaWR0aCAtIHJlY3Qud2lkdGggLSAxMDtcbiAgICB9XG4gICAgXG4gICAgLy8gQWRqdXN0IGlmIG1lbnUgd291bGQgZ28gb2ZmIGJvdHRvbSBlZGdlXG4gICAgaWYgKHRvcCArIHJlY3QuaGVpZ2h0ID4gd2luZG93SGVpZ2h0KSB7XG4gICAgICB0b3AgPSB3aW5kb3dIZWlnaHQgLSByZWN0LmhlaWdodCAtIDEwO1xuICAgIH1cbiAgICBcbiAgICAvLyBFbnN1cmUgbWVudSBkb2Vzbid0IGdvIG9mZiBsZWZ0IG9yIHRvcCBlZGdlXG4gICAgaWYgKGxlZnQgPCAxMCkgbGVmdCA9IDEwO1xuICAgIGlmICh0b3AgPCAxMCkgdG9wID0gMTA7XG4gICAgXG4gICAgY29udGV4dE1lbnUuc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgICBjb250ZXh0TWVudS5zdHlsZS5sZWZ0ID0gYCR7bGVmdH1weGA7XG4gICAgY29udGV4dE1lbnUuc3R5bGUudHJhbnNmb3JtT3JpZ2luID0gJ3RvcCBsZWZ0JztcbiAgICBcbiAgICAvLyBBbmltYXRlIGluXG4gICAgYXdhaXQgZG9tdG9vbHMucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO1xuICAgIGNvbnRleHRNZW51LnN0eWxlLm9wYWNpdHkgPSAnMSc7XG4gICAgY29udGV4dE1lbnUuc3R5bGUudHJhbnNmb3JtID0gJ3NjYWxlKDEpIHRyYW5zbGF0ZVkoMCknO1xuICB9XG5cbiAgLy8gSU5TVEFOQ0VcbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBBcnJheSxcbiAgfSlcbiAgYWNjZXNzb3IgbWVudUl0ZW1zOiAocGx1Z2lucy50c2NsYXNzLndlYnNpdGUuSU1lbnVJdGVtICYgeyBzaG9ydGN1dD86IHN0cmluZzsgZGlzYWJsZWQ/OiBib29sZWFuOyBzdWJtZW51PzogKHBsdWdpbnMudHNjbGFzcy53ZWJzaXRlLklNZW51SXRlbSAmIHsgc2hvcnRjdXQ/OiBzdHJpbmc7IGRpc2FibGVkPzogYm9vbGVhbiB9IHwgeyBkaXZpZGVyOiB0cnVlIH0pW107IGRpdmlkZXI/OiBuZXZlciB9IHwgeyBkaXZpZGVyOiB0cnVlIH0pW10gPSBbXTtcbiAgd2luZG93TGF5ZXI6IERlZXNXaW5kb3dMYXllcjtcbiAgXG4gIHByaXZhdGUgc3VibWVudTogRGVlc0NvbnRleHRtZW51IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3VibWVudVRpbWVvdXQ6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgcGFyZW50TWVudTogRGVlc0NvbnRleHRtZW51IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgaXNEZXN0cm95aW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnRhYkluZGV4ID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTVEFUSUMgU1RZTEVTXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgfVxuXG4gICAgICAubWFpbmJveCB7XG4gICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwMDAwMDAnKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTBlMGUwJywgJyMyMDIwMjAnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm94LXNoYWRvdzogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoXG4gICAgICAgICAgJzAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KScsXG4gICAgICAgICAgJzAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpJ1xuICAgICAgICApfTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzMzMycsICcjY2NjJyl9O1xuICAgICAgfVxuXG4gICAgICAubWVudWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAubWVudWl0ZW06aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjA0KScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAubWVudWl0ZW0uaGFzLXN1Ym1lbnU6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJ1x1MjAzQSc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDhweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG5cbiAgICAgIC5tZW51aXRlbTphY3RpdmU6bm90KC5oYXMtc3VibWVudSkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjA4KScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAubWVudWl0ZW0uZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAubWVudWl0ZW0gZGVlcy1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG5cbiAgICAgIC5tZW51aXRlbS10ZXh0IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cblxuICAgICAgLm1lbnVpdGVtLXNob3J0Y3V0IHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5OTknLCAnIzY2NicpfTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cblxuICAgICAgLm1lbnUtZGl2aWRlciB7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2UwZTBlMCcsICcjMjAyMDIwJyl9O1xuICAgICAgICBtYXJnaW46IDRweCAwO1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwibWFpbmJveFwiPlxuICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgobWVudUl0ZW1BcmcpID0+IHtcbiAgICAgICAgICBpZiAoJ2RpdmlkZXInIGluIG1lbnVJdGVtQXJnICYmIG1lbnVJdGVtQXJnLmRpdmlkZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJtZW51LWRpdmlkZXJcIj48L2Rpdj5gO1xuICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICBjb25zdCBtZW51SXRlbSA9IG1lbnVJdGVtQXJnIGFzIHBsdWdpbnMudHNjbGFzcy53ZWJzaXRlLklNZW51SXRlbSAmIHsgc2hvcnRjdXQ/OiBzdHJpbmc7IGRpc2FibGVkPzogYm9vbGVhbjsgc3VibWVudT86IGFueSB9O1xuICAgICAgICAgIGNvbnN0IGhhc1N1Ym1lbnUgPSBtZW51SXRlbS5zdWJtZW51ICYmIG1lbnVJdGVtLnN1Ym1lbnUubGVuZ3RoID4gMDtcbiAgICAgICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgIGNsYXNzPVwibWVudWl0ZW0gJHttZW51SXRlbS5kaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiAnJ30gJHtoYXNTdWJtZW51ID8gJ2hhcy1zdWJtZW51JyA6ICcnfVwiIFxuICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiAhbWVudUl0ZW0uZGlzYWJsZWQgJiYgIWhhc1N1Ym1lbnUgJiYgdGhpcy5oYW5kbGVDbGljayhtZW51SXRlbSl9XG4gICAgICAgICAgICAgIEBtb3VzZWVudGVyPSR7KCkgPT4gdGhpcy5oYW5kbGVNZW51SXRlbUhvdmVyKG1lbnVJdGVtLCBoYXNTdWJtZW51KX1cbiAgICAgICAgICAgICAgQG1vdXNlbGVhdmU9JHsoKSA9PiB0aGlzLmhhbmRsZU1lbnVJdGVtTGVhdmUoKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgJHttZW51SXRlbS5pY29uTmFtZSA/IGh0bWxgXG4gICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj1cIiR7bWVudUl0ZW0uaWNvbk5hbWV9XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51aXRlbS10ZXh0XCI+JHttZW51SXRlbS5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgJHttZW51SXRlbS5zaG9ydGN1dCAmJiAhaGFzU3VibWVudSA/IGh0bWxgXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51aXRlbS1zaG9ydGN1dFwiPiR7bWVudUl0ZW0uc2hvcnRjdXR9PC9zcGFuPlxuICAgICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgO1xuICAgICAgICB9KX1cbiAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5sZW5ndGggPT09IDAgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnVpdGVtXCIgQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgICAgICBEZWVzQ29udGV4dG1lbnUuY29udGV4dE1lbnVEZWFjdGl2YXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249XCJsdWNpZGU6eFwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnVpdGVtLXRleHRcIj5BbGxvdyBuYXRpdmUgY29udGV4dDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgIDogaHRtbGBgfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmaXJzdFVwZGF0ZWQoKSB7XG4gICAgLy8gRm9jdXMgb24gdGhlIG1lbnUgZm9yIGtleWJvYXJkIG5hdmlnYXRpb25cbiAgICB0aGlzLmZvY3VzKCk7XG4gICAgXG4gICAgLy8gQWRkIGtleWJvYXJkIGV2ZW50IGxpc3RlbmVyc1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuaGFuZGxlS2V5ZG93bik7XG4gIH1cbiAgXG4gIHByaXZhdGUgaGFuZGxlS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIGNvbnN0IG1lbnVJdGVtcyA9IEFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tZW51aXRlbTpub3QoLmRpc2FibGVkKScpKTtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSBtZW51SXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5tYXRjaGVzKCc6aG92ZXInKSk7XG4gICAgXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCArIDEgPCBtZW51SXRlbXMubGVuZ3RoID8gY3VycmVudEluZGV4ICsgMSA6IDA7XG4gICAgICAgIChtZW51SXRlbXNbbmV4dEluZGV4XSBhcyBIVE1MRWxlbWVudCkuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgnbW91c2VlbnRlcicpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAgIFxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IHByZXZJbmRleCA9IGN1cnJlbnRJbmRleCAtIDEgPj0gMCA/IGN1cnJlbnRJbmRleCAtIDEgOiBtZW51SXRlbXMubGVuZ3RoIC0gMTtcbiAgICAgICAgKG1lbnVJdGVtc1twcmV2SW5kZXhdIGFzIEhUTUxFbGVtZW50KS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCdtb3VzZWVudGVyJykpO1xuICAgICAgICBicmVhaztcbiAgICAgICAgXG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPj0gMCkge1xuICAgICAgICAgIChtZW51SXRlbXNbY3VycmVudEluZGV4XSBhcyBIVE1MRWxlbWVudCkuY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgICAgXG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhbmRsZUNsaWNrKG1lbnVJdGVtOiBwbHVnaW5zLnRzY2xhc3Mud2Vic2l0ZS5JTWVudUl0ZW0gJiB7IHNob3J0Y3V0Pzogc3RyaW5nOyBkaXNhYmxlZD86IGJvb2xlYW4gfSkge1xuICAgIG1lbnVJdGVtLmFjdGlvbigpO1xuICAgIFxuICAgIC8vIENsb3NlIGFsbCBtZW51cyBpbiB0aGUgY2hhaW4gKHRoaXMgbWVudSBhbmQgYWxsIHBhcmVudCBtZW51cylcbiAgICBhd2FpdCB0aGlzLmRlc3Ryb3lBbGwoKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVNZW51SXRlbUhvdmVyKG1lbnVJdGVtOiBwbHVnaW5zLnRzY2xhc3Mud2Vic2l0ZS5JTWVudUl0ZW0gJiB7IHN1Ym1lbnU/OiBhbnkgfSwgaGFzU3VibWVudTogYm9vbGVhbikge1xuICAgIC8vIENsZWFyIGFueSBleGlzdGluZyB0aW1lb3V0XG4gICAgaWYgKHRoaXMuc3VibWVudVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KTtcbiAgICAgIHRoaXMuc3VibWVudVRpbWVvdXQgPSBudWxsO1xuICAgIH1cbiAgICBcbiAgICAvLyBIaWRlIGFueSBleGlzdGluZyBzdWJtZW51IGlmIGhvdmVyaW5nIGEgZGlmZmVyZW50IGl0ZW1cbiAgICBpZiAodGhpcy5zdWJtZW51KSB7XG4gICAgICBhd2FpdCB0aGlzLmhpZGVTdWJtZW51KCk7XG4gICAgfVxuICAgIFxuICAgIC8vIFNob3cgc3VibWVudSBpZiB0aGlzIGl0ZW0gaGFzIG9uZVxuICAgIGlmIChoYXNTdWJtZW51ICYmIG1lbnVJdGVtLnN1Ym1lbnUpIHtcbiAgICAgIHRoaXMuc3VibWVudVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93U3VibWVudShtZW51SXRlbSk7XG4gICAgICB9LCAyMDApOyAvLyBTbWFsbCBkZWxheSB0byBwcmV2ZW50IGFjY2lkZW50YWwgdHJpZ2dlcnNcbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgaGFuZGxlTWVudUl0ZW1MZWF2ZSgpIHtcbiAgICAvLyBBZGQgYSBkZWxheSBiZWZvcmUgaGlkaW5nIHRvIGFsbG93IG1vdmluZyB0byBzdWJtZW51XG4gICAgaWYgKHRoaXMuc3VibWVudVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5zdWJtZW51VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc3VibWVudSAmJiAhdGhpcy5zdWJtZW51Lm1hdGNoZXMoJzpob3ZlcicpKSB7XG4gICAgICAgIHRoaXMuaGlkZVN1Ym1lbnUoKTtcbiAgICAgIH1cbiAgICB9LCAzMDApO1xuICB9XG4gIFxuICBwcml2YXRlIGFzeW5jIHNob3dTdWJtZW51KG1lbnVJdGVtOiBwbHVnaW5zLnRzY2xhc3Mud2Vic2l0ZS5JTWVudUl0ZW0gJiB7IHN1Ym1lbnU/OiBhbnkgfSkge1xuICAgIGlmICghbWVudUl0ZW0uc3VibWVudSB8fCBtZW51SXRlbS5zdWJtZW51Lmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIFxuICAgIC8vIEZpbmQgdGhlIG1lbnUgaXRlbSBlbGVtZW50XG4gICAgY29uc3QgbWVudUl0ZW1zID0gQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnLm1lbnVpdGVtJykpO1xuICAgIGNvbnN0IG1lbnVJdGVtRWxlbWVudCA9IG1lbnVJdGVtcy5maW5kKGVsID0+IGVsLnF1ZXJ5U2VsZWN0b3IoJy5tZW51aXRlbS10ZXh0Jyk/LnRleHRDb250ZW50ID09PSBtZW51SXRlbS5uYW1lKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoIW1lbnVJdGVtRWxlbWVudCkgcmV0dXJuO1xuICAgIFxuICAgIC8vIENyZWF0ZSBzdWJtZW51XG4gICAgdGhpcy5zdWJtZW51ID0gbmV3IERlZXNDb250ZXh0bWVudSgpO1xuICAgIHRoaXMuc3VibWVudS5tZW51SXRlbXMgPSBtZW51SXRlbS5zdWJtZW51O1xuICAgIHRoaXMuc3VibWVudS5wYXJlbnRNZW51ID0gdGhpcztcbiAgICB0aGlzLnN1Ym1lbnUuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICAgIHRoaXMuc3VibWVudS5zdHlsZS56SW5kZXggPSBTdHJpbmcocGFyc2VJbnQodGhpcy5zdHlsZS56SW5kZXgpICsgMSk7XG4gICAgdGhpcy5zdWJtZW51LnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgdGhpcy5zdWJtZW51LnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZSgwLjk1KSc7XG4gICAgXG4gICAgLy8gRG9uJ3QgY3JlYXRlIGEgd2luZG93IGxheWVyIGZvciBzdWJtZW51c1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMuc3VibWVudSk7XG4gICAgXG4gICAgLy8gUG9zaXRpb24gc3VibWVudVxuICAgIGF3YWl0IGRvbXRvb2xzLnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigwKTtcbiAgICBjb25zdCBpdGVtUmVjdCA9IG1lbnVJdGVtRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBtZW51UmVjdCA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgc3VibWVudVJlY3QgPSB0aGlzLnN1Ym1lbnUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBcbiAgICBsZXQgbGVmdCA9IG1lbnVSZWN0LnJpZ2h0IC0gNDsgLy8gU2xpZ2h0IG92ZXJsYXBcbiAgICBsZXQgdG9wID0gaXRlbVJlY3QudG9wO1xuICAgIFxuICAgIC8vIENoZWNrIGlmIHN1Ym1lbnUgd291bGQgZ28gb2ZmIHJpZ2h0IGVkZ2VcbiAgICBpZiAobGVmdCArIHN1Ym1lbnVSZWN0LndpZHRoID4gd2luZG93V2lkdGggLSAxMCkge1xuICAgICAgLy8gU2hvdyBvbiBsZWZ0IHNpZGUgaW5zdGVhZFxuICAgICAgbGVmdCA9IG1lbnVSZWN0LmxlZnQgLSBzdWJtZW51UmVjdC53aWR0aCArIDQ7XG4gICAgfVxuICAgIFxuICAgIC8vIEFkanVzdCB2ZXJ0aWNhbCBwb3NpdGlvbiBpZiBuZWVkZWRcbiAgICBpZiAodG9wICsgc3VibWVudVJlY3QuaGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0IC0gMTApIHtcbiAgICAgIHRvcCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHN1Ym1lbnVSZWN0LmhlaWdodCAtIDEwO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLnN1Ym1lbnUuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgO1xuICAgIHRoaXMuc3VibWVudS5zdHlsZS50b3AgPSBgJHt0b3B9cHhgO1xuICAgIFxuICAgIC8vIEFuaW1hdGUgaW5cbiAgICBhd2FpdCBkb210b29scy5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7XG4gICAgdGhpcy5zdWJtZW51LnN0eWxlLm9wYWNpdHkgPSAnMSc7XG4gICAgdGhpcy5zdWJtZW51LnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZSgxKSc7XG4gICAgXG4gICAgLy8gSGFuZGxlIHN1Ym1lbnUgaG92ZXJcbiAgICB0aGlzLnN1Ym1lbnUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHtcbiAgICAgIGlmICh0aGlzLnN1Ym1lbnVUaW1lb3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5zdWJtZW51VGltZW91dCA9IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgdGhpcy5zdWJtZW51LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1lbnVJdGVtTGVhdmUoKTtcbiAgICB9KTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBhc3luYyBoaWRlU3VibWVudSgpIHtcbiAgICBpZiAoIXRoaXMuc3VibWVudSkgcmV0dXJuO1xuICAgIFxuICAgIGF3YWl0IHRoaXMuc3VibWVudS5kZXN0cm95KCk7XG4gICAgdGhpcy5zdWJtZW51ID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZXN0cm95KCkge1xuICAgIC8vIEd1YXJkIGFnYWluc3QgZG91YmxlLWRlc3RydWN0aW9uXG4gICAgaWYgKHRoaXMuaXNEZXN0cm95aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNEZXN0cm95aW5nID0gdHJ1ZTtcblxuICAgIC8vIENsZWFyIHRpbWVvdXRcbiAgICBpZiAodGhpcy5zdWJtZW51VGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpO1xuICAgICAgdGhpcy5zdWJtZW51VGltZW91dCA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gRGVzdHJveSBzdWJtZW51IGZpcnN0XG4gICAgaWYgKHRoaXMuc3VibWVudSkge1xuICAgICAgYXdhaXQgdGhpcy5zdWJtZW51LmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuc3VibWVudSA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gT25seSBkZXN0cm95IHdpbmRvdyBsYXllciBpZiB0aGlzIGlzIG5vdCBhIHN1Ym1lbnVcbiAgICAvLyBEb24ndCBhd2FpdCAtIGxldCBjbGVhbnVwIGhhcHBlbiBpbiBiYWNrZ3JvdW5kIGZvciBpbnN0YW50IHZpc3VhbCBmZWVkYmFja1xuICAgIGlmICh0aGlzLndpbmRvd0xheWVyICYmICF0aGlzLnBhcmVudE1lbnUpIHtcbiAgICAgIHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHRoaXMuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICB0aGlzLnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSc7XG4gICAgYXdhaXQgZG9tdG9vbHMucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCk7XG5cbiAgICBpZiAodGhpcy5wYXJlbnRFbGVtZW50KSB7XG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyk7XG4gICAgfVxuICB9XG4gIFxuICAvKipcbiAgICogRGVzdHJveXMgdGhpcyBtZW51IGFuZCBhbGwgcGFyZW50IG1lbnVzIGluIHRoZSBjaGFpblxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlc3Ryb3lBbGwoKSB7XG4gICAgLy8gRmluZCB0aGUgcm9vdCBtZW51ICh0b3AtbGV2ZWwgcGFyZW50KVxuICAgIGxldCByb290TWVudTogRGVlc0NvbnRleHRtZW51ID0gdGhpcztcbiAgICB3aGlsZSAocm9vdE1lbnUucGFyZW50TWVudSkge1xuICAgICAgcm9vdE1lbnUgPSByb290TWVudS5wYXJlbnRNZW51O1xuICAgIH1cblxuICAgIC8vIERlc3Ryb3kgZnJvbSB0aGUgcm9vdCAtIHRoaXMgd2lsbCBjYXNjYWRlIHRocm91Z2ggYWxsIHN1Ym1lbnVzXG4gICAgYXdhaXQgcm9vdE1lbnUuZGVzdHJveSgpO1xuICB9XG59XG5cbkRlZXNDb250ZXh0bWVudS5pbml0aWFsaXplR2xvYmFsTGlzdGVuZXIoKTtcbiIsIG51bGwsICJpbXBvcnQgeyBodG1sLCBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAnQGRlc2lnbi5lc3RhdGUvZGVlcy13Y2N0b29scy9kZW1vdG9vbHMnO1xuaW1wb3J0IHR5cGUgeyBEZWVzQXBwdWlBY3Rpdml0eWxvZyB9IGZyb20gJy4vZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy5qcyc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IHtcbiAgLy8gQ3JlYXRlIHRoZSBhY3Rpdml0eSBsb2cgZWxlbWVudFxuICBjb25zdCBhY3Rpdml0eUxvZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RlZXMtYXBwdWktYWN0aXZpdHlsb2cnKSBhcyBEZWVzQXBwdWlBY3Rpdml0eWxvZztcblxuICAvLyBBZGQgZGVtbyBlbnRyaWVzIGFmdGVyIHRoZSBlbGVtZW50IGlzIGNvbm5lY3RlZFxuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICBhY3Rpdml0eUxvZy5hZGRNYW55KFtcbiAgICAgIHsgdHlwZTogJ2xvZ2luJywgdXNlcjogJ0pvaG4gRG9lJywgbWVzc2FnZTogJ2xvZ2dlZCBpbiBmcm9tIENocm9tZSBvbiBtYWNPUycgfSxcbiAgICAgIHsgdHlwZTogJ2NyZWF0ZScsIHVzZXI6ICdKb2huIERvZScsIG1lc3NhZ2U6ICdjcmVhdGVkIGEgbmV3IHByb2plY3QgXCJGcm9udGVuZCBBcHBcIicgfSxcbiAgICAgIHsgdHlwZTogJ3VwZGF0ZScsIHVzZXI6ICdKYW5lIFNtaXRoJywgbWVzc2FnZTogJ3VwZGF0ZWQgQVBJIGRvY3VtZW50YXRpb24nIH0sXG4gICAgICB7IHR5cGU6ICd2aWV3JywgdXNlcjogJ0pvaG4gRG9lJywgbWVzc2FnZTogJ3ZpZXdlZCBkYXNoYm9hcmQgYW5hbHl0aWNzJyB9LFxuICAgICAgeyB0eXBlOiAnZGVsZXRlJywgdXNlcjogJ0FkbWluJywgbWVzc2FnZTogJ3JlbW92ZWQgZGVwcmVjYXRlZCBlbmRwb2ludCcgfSxcbiAgICAgIHsgdHlwZTogJ2N1c3RvbScsIHVzZXI6ICdTeXN0ZW0nLCBtZXNzYWdlOiAnc2NoZWR1bGVkIGJhY2t1cCBjb21wbGV0ZWQnLCBpY29uTmFtZTogJ2x1Y2lkZTpkYXRhYmFzZScgfSxcbiAgICAgIHsgdHlwZTogJ2xvZ291dCcsIHVzZXI6ICdBbGljZSBCcm93bicsIG1lc3NhZ2U6ICdsb2dnZWQgb3V0JyB9LFxuICAgICAgeyB0eXBlOiAnY3JlYXRlJywgdXNlcjogJ0phbmUgU21pdGgnLCBtZXNzYWdlOiAnY3JlYXRlZCBpbnZvaWNlICMxMjM0JyB9LFxuICAgIF0pO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHVwZGF0ZXNcbiAgICBhY3Rpdml0eUxvZy5lbnRyaWVzJC5zdWJzY3JpYmUoKGVudHJpZXMpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdBY3Rpdml0eSBsb2cgdXBkYXRlZDonLCBlbnRyaWVzLmxlbmd0aCwgJ2VudHJpZXMnKTtcbiAgICB9KTtcbiAgfSwgMTAwKTtcblxuICByZXR1cm4gaHRtbGBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlcj5cbiAgICAgIDxzdHlsZT5cbiAgICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgaGVpZ2h0OiA2MDBweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y0ZjRmNScsICcjMDkwOTBiJyl9O1xuICAgICAgICAgIHBhZGRpbmc6IDMycHg7XG4gICAgICAgIH1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1jb250YWluZXJcIj5cbiAgICAgICAgJHthY3Rpdml0eUxvZ31cbiAgICAgIDwvZGl2PlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cbiAgYDtcbn07XG4iLCAiaW1wb3J0IHtcbiAgRGVlc0VsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHByb3BlcnR5LFxuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG4gIHN0YXRlLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCB7IERlZXNDb250ZXh0bWVudSB9IGZyb20gJy4uLy4uL2RlZXMtY29udGV4dG1lbnUvZGVlcy1jb250ZXh0bWVudS5qcyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0IHR5cGUgeyBJQWN0aXZpdHlFbnRyeSwgSUFjdGl2aXR5TG9nQVBJIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hcHBjb25maWcuanMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtYXBwdWktYWN0aXZpdHlsb2cuZGVtby5qcyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtYXBwdWktYWN0aXZpdHlsb2cnKVxuZXhwb3J0IGNsYXNzIERlZXNBcHB1aUFjdGl2aXR5bG9nIGV4dGVuZHMgRGVlc0VsZW1lbnQgaW1wbGVtZW50cyBJQWN0aXZpdHlMb2dBUEkge1xuICAvLyBTVEFUSUNcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ0FwcCBVSSc7XG5cbiAgLy8gSU5TVEFOQ0UgUFJPUEVSVElFU1xuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBlbnRyaWVzOiBJQWN0aXZpdHlFbnRyeVtdID0gW107XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3Igc2VhcmNoUXVlcnk6IHN0cmluZyA9ICcnO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGZpbHRlckNyaXRlcmlhOiB7IHVzZXI/OiBzdHJpbmc7IHR5cGU/OiBJQWN0aXZpdHlFbnRyeVsndHlwZSddIH0gPSB7fTtcblxuICAvLyBSeEpTIFN1YmplY3QgZm9yIHJlYWN0aXZlIHVwZGF0ZXNcbiAgcHVibGljIGVudHJpZXMkID0gbmV3IGRvbXRvb2xzLnBsdWdpbnMuc21hcnRyeC5yeGpzLlN1YmplY3Q8SUFjdGl2aXR5RW50cnlbXT4oKTtcblxuICAvLyBTVFlMRVNcbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIC8qIENTUyBWYXJpYWJsZXMgYWxpZ25lZCB3aXRoIHNlY29uZGFyeSBtZW51ICovXG4gICAgICAgIC0tYWN0aXZpdHlsb2ctYmc6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmFmYWZhJywgJyMwYTBhMGEnKX07XG4gICAgICAgIC0tYWN0aXZpdHlsb2ctZmc6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNTI1MjUyJywgJyNhM2EzYTMnKX07XG4gICAgICAgIC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzM3MzczJywgJyM3MzczNzMnKX07XG4gICAgICAgIC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzBhMGEwYScsICcjZmFmYWZhJyl9O1xuICAgICAgICAtLWFjdGl2aXR5bG9nLWJvcmRlcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU1ZTUnLCAnIzFhMWExYScpfTtcbiAgICAgICAgLS1hY3Rpdml0eWxvZy1ob3ZlcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4wNCknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KScpfTtcbiAgICAgICAgLS1hY3Rpdml0eWxvZy1hY2NlbnQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzg3MTZjJywgJyNiNWE5OWEnKX07XG5cbiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpO1xuICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAubWFpbmNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMjgwcHg7XG4gICAgICB9XG5cbiAgICAgIC8qIEhlYWRlciB3aXRoIHN0cmVhbWluZyBpbmRpY2F0b3IgKi9cbiAgICAgIC50b3BiYXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwcHggMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgfVxuXG4gICAgICAudG9wYmFyIC5oZWFkaW5nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTtcbiAgICAgIH1cblxuICAgICAgLmxpdmUtaW5kaWNhdG9yIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTtcbiAgICAgIH1cblxuICAgICAgLmxpdmUtaW5kaWNhdG9yIC5kb3Qge1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgICBoZWlnaHQ6IDZweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMyMmM1NWUnLCAnIzIyYzU1ZScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBhbmltYXRpb246IHB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIHB1bHNlIHtcbiAgICAgICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjU7IHRyYW5zZm9ybTogc2NhbGUoMC45KTsgfVxuICAgICAgICA1MCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgICAgIH1cblxuICAgICAgLyogQWN0aXZpdHkgY29udGFpbmVyICovXG4gICAgICAuYWN0aXZpdHlDb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNDhweDtcbiAgICAgICAgYm90dG9tOiA0OHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Q0ZDRkNCcsICcjMzMzMzMzJyl9IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkNGQ0ZDQnLCAnIzMzMzMzMycpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNhM2EzYTMnLCAnIzUyNTI1MicpfTtcbiAgICAgIH1cblxuICAgICAgLmVtcHR5LXN0YXRlIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMTZweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTtcbiAgICAgIH1cblxuICAgICAgLyogRGF0ZSBzZXBhcmF0b3IgLSB3YXJtIHRhdXBlIHN0eWxpbmcgKi9cbiAgICAgIC5kYXRlLXNlcGFyYXRvciB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctYWNjZW50KTtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7XG4gICAgICB9XG5cbiAgICAgIC8qIEFjdGl2aXR5IGVudHJ5IC0gbW9kZXJuIHN0YWNrZWQgbGF5b3V0ICovXG4gICAgICAuYWN0aXZpdHllbnRyeSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgIG1hcmdpbjogMnB4IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMnMgZWFzZS1vdXQ7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgZmFkZUluIHtcbiAgICAgICAgZnJvbSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgICAgIH1cbiAgICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpdml0eWVudHJ5OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctaG92ZXIpO1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZpdHktaWNvbiB7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4wNCknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KScpfTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2aXR5LWljb24ubG9naW4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgzNCwgMTk3LCA5NCwgMC4wOCknLCAncmdiYSgzNCwgMTk3LCA5NCwgMC4xMiknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzE2YTM0YScsICcjNGFkZTgwJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZpdHktaWNvbi5sb2dvdXQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgyMzksIDY4LCA2OCwgMC4wOCknLCAncmdiYSgyMzksIDY4LCA2OCwgMC4xMiknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2RjMjYyNicsICcjZjg3MTcxJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZpdHktaWNvbi52aWV3IHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoNTksIDEzMCwgMjQ2LCAwLjA4KScsICdyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMiknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzI1NjNlYicsICcjNjBhNWZhJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZpdHktaWNvbi5jcmVhdGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgxNjgsIDg1LCAyNDcsIDAuMDgpJywgJ3JnYmEoMTY4LCA4NSwgMjQ3LCAwLjEyKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjOTMzM2VhJywgJyNjMDg0ZmMnKX07XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpdml0eS1pY29uLnVwZGF0ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDI1MSwgMTQ2LCA2MCwgMC4wOCknLCAncmdiYSgyNTEsIDE0NiwgNjAsIDAuMTIpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlYTU4MGMnLCAnI2ZiOTIzYycpfTtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2aXR5LWljb24uZGVsZXRlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMjM5LCA2OCwgNjgsIDAuMDgpJywgJ3JnYmEoMjM5LCA2OCwgNjgsIDAuMTIpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkYzI2MjYnLCAnI2Y4NzE3MScpfTtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2aXR5LWljb24uY3VzdG9tIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMTAwLCAxMTYsIDEzOSwgMC4wOCknLCAncmdiYSgxMDAsIDExNiwgMTM5LCAwLjEyKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNDc1NTY5JywgJyM5NGEzYjgnKX07XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpdml0eS1jb250ZW50IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2aXR5LWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZpdHktdXNlciB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZSk7XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpdml0eS1zZXBhcmF0b3Ige1xuICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgIC50aW1lc3RhbXAge1xuICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2aXR5LW1lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmcpO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICB9XG5cbiAgICAgIC8qIFNlYXJjaCBib3ggLSByZWZpbmVkIHN0eWxpbmcgKi9cbiAgICAgIC5zZWFyY2hib3gge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpO1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cblxuICAgICAgLnNlYXJjaC13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgfVxuXG4gICAgICAuc2VhcmNoLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2hib3ggaW5wdXQge1xuICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4wMyknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KScpfTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4wOCknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEycHggMCAzNHB4O1xuICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuc2VhcmNoYm94IGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2hib3ggaW5wdXQ6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMTUpJywgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSknKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMDIpJywgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNiknKX07XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2gtd3JhcHBlcjpoYXMoaW5wdXQ6Zm9jdXMpIC5zZWFyY2gtaWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICAvLyBSRU5ERVJcbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgZmlsdGVyZWRFbnRyaWVzID0gdGhpcy5nZXRGaWx0ZXJlZEVudHJpZXMoKTtcbiAgICBjb25zdCBncm91cGVkRW50cmllcyA9IHRoaXMuZ3JvdXBFbnRyaWVzQnlEYXRlKGZpbHRlcmVkRW50cmllcyk7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7ZG9tdG9vbHMuZWxlbWVudEJhc2ljLnN0eWxlc31cbiAgICAgIDxzdHlsZT48L3N0eWxlPlxuICAgICAgPGRpdiBjbGFzcz1cIm1haW5jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvcGJhclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nXCI+QWN0aXZpdHkgTG9nPC9kaXY+XG4gICAgICAgICAgJHtmaWx0ZXJlZEVudHJpZXMubGVuZ3RoID4gMFxuICAgICAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJsaXZlLWluZGljYXRvclwiPjxzcGFuIGNsYXNzPVwiZG90XCI+PC9zcGFuPkxpdmU8L2Rpdj5gXG4gICAgICAgICAgICA6ICcnfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5Q29udGFpbmVyXCI+XG4gICAgICAgICAgJHtmaWx0ZXJlZEVudHJpZXMubGVuZ3RoID09PSAwXG4gICAgICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+Tm8gYWN0aXZpdHkgZW50cmllczwvZGl2PmBcbiAgICAgICAgICAgIDogZ3JvdXBlZEVudHJpZXMubWFwKFxuICAgICAgICAgICAgICAgIChncm91cCkgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXNlcGFyYXRvclwiPiR7Z3JvdXAubGFiZWx9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAke2dyb3VwLmVudHJpZXMubWFwKChlbnRyeSkgPT4gdGhpcy5yZW5kZXJBY3Rpdml0eUVudHJ5KGVudHJ5KSl9XG4gICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaGJveFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz1cInNlYXJjaC1pY29uXCIgLmljb249JHsnbHVjaWRlOnNlYXJjaCd9PjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYWN0aXZpdGllcywgdXNlcnMuLi5cIlxuICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fVxuICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVNlYXJjaElucHV0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJBY3Rpdml0eUVudHJ5KGVudHJ5OiBJQWN0aXZpdHlFbnRyeSk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBlbnRyeS50aW1lc3RhbXAgfHwgbmV3IERhdGUoKTtcbiAgICBjb25zdCB0aW1lU3RyID0gdGhpcy5mb3JtYXRUaW1lKHRpbWVzdGFtcCk7XG4gICAgY29uc3QgaWNvbk5hbWUgPSBlbnRyeS5pY29uTmFtZSB8fCB0aGlzLmdldEljb25Gb3JUeXBlKGVudHJ5LnR5cGUpO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWN0aXZpdHllbnRyeVwiXG4gICAgICAgIEBjb250ZXh0bWVudT0keyhlOiBNb3VzZUV2ZW50KSA9PiB0aGlzLmhhbmRsZUNvbnRleHRNZW51KGUsIGVudHJ5KX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWljb24gJHtlbnRyeS50eXBlfVwiPlxuICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtpY29uTmFtZX0+PC9kZWVzLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aXZpdHktdXNlclwiPiR7ZW50cnkudXNlcn08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjdGl2aXR5LXNlcGFyYXRvclwiPlx1MDBCNzwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltZXN0YW1wXCI+JHt0aW1lU3RyfTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktbWVzc2FnZVwiPiR7ZW50cnkubWVzc2FnZX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgLy8gQVBJIE1FVEhPRFNcbiAgcHVibGljIGFkZChlbnRyeTogSUFjdGl2aXR5RW50cnkpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdFbnRyeTogSUFjdGl2aXR5RW50cnkgPSB7XG4gICAgICAuLi5lbnRyeSxcbiAgICAgIGlkOiBlbnRyeS5pZCB8fCB0aGlzLmdlbmVyYXRlSWQoKSxcbiAgICAgIHRpbWVzdGFtcDogZW50cnkudGltZXN0YW1wIHx8IG5ldyBEYXRlKCksXG4gICAgfTtcbiAgICB0aGlzLmVudHJpZXMgPSBbbmV3RW50cnksIC4uLnRoaXMuZW50cmllc107XG4gICAgdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyk7XG4gIH1cblxuICBwdWJsaWMgYWRkTWFueShlbnRyaWVzOiBJQWN0aXZpdHlFbnRyeVtdKTogdm9pZCB7XG4gICAgY29uc3QgbmV3RW50cmllcyA9IGVudHJpZXMubWFwKChlbnRyeSkgPT4gKHtcbiAgICAgIC4uLmVudHJ5LFxuICAgICAgaWQ6IGVudHJ5LmlkIHx8IHRoaXMuZ2VuZXJhdGVJZCgpLFxuICAgICAgdGltZXN0YW1wOiBlbnRyeS50aW1lc3RhbXAgfHwgbmV3IERhdGUoKSxcbiAgICB9KSk7XG4gICAgdGhpcy5lbnRyaWVzID0gWy4uLm5ld0VudHJpZXMucmV2ZXJzZSgpLCAuLi50aGlzLmVudHJpZXNdO1xuICAgIHRoaXMuZW50cmllcyQubmV4dCh0aGlzLmVudHJpZXMpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuZW50cmllcyA9IFtdO1xuICAgIHRoaXMuZW50cmllcyQubmV4dCh0aGlzLmVudHJpZXMpO1xuICB9XG5cbiAgcHVibGljIGdldEVudHJpZXMoKTogSUFjdGl2aXR5RW50cnlbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmVudHJpZXNdO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcihjcml0ZXJpYTogeyB1c2VyPzogc3RyaW5nOyB0eXBlPzogSUFjdGl2aXR5RW50cnlbJ3R5cGUnXSB9KTogSUFjdGl2aXR5RW50cnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcy5maWx0ZXIoKGVudHJ5KSA9PiB7XG4gICAgICBpZiAoY3JpdGVyaWEudXNlciAmJiBlbnRyeS51c2VyICE9PSBjcml0ZXJpYS51c2VyKSByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoY3JpdGVyaWEudHlwZSAmJiBlbnRyeS50eXBlICE9PSBjcml0ZXJpYS50eXBlKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2gocXVlcnk6IHN0cmluZyk6IElBY3Rpdml0eUVudHJ5W10ge1xuICAgIGNvbnN0IGxvd2VyUXVlcnkgPSBxdWVyeS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiB0aGlzLmVudHJpZXMuZmlsdGVyKFxuICAgICAgKGVudHJ5KSA9PlxuICAgICAgICBlbnRyeS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSkgfHxcbiAgICAgICAgZW50cnkudXNlci50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyUXVlcnkpXG4gICAgKTtcbiAgfVxuXG4gIC8vIFBSSVZBVEUgSEVMUEVSU1xuICBwcml2YXRlIGdlbmVyYXRlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGFjdGl2aXR5LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSl9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsdGVyZWRFbnRyaWVzKCk6IElBY3Rpdml0eUVudHJ5W10ge1xuICAgIGxldCByZXN1bHQgPSB0aGlzLmVudHJpZXM7XG5cbiAgICBpZiAodGhpcy5zZWFyY2hRdWVyeSkge1xuICAgICAgY29uc3QgbG93ZXJRdWVyeSA9IHRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5maWx0ZXIoXG4gICAgICAgIChlbnRyeSkgPT5cbiAgICAgICAgICBlbnRyeS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSkgfHxcbiAgICAgICAgICBlbnRyeS51c2VyLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJRdWVyeSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlciB8fCB0aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5maWx0ZXIoKGVudHJ5KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmZpbHRlckNyaXRlcmlhLnVzZXIgJiYgZW50cnkudXNlciAhPT0gdGhpcy5maWx0ZXJDcml0ZXJpYS51c2VyKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUgJiYgZW50cnkudHlwZSAhPT0gdGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ3JvdXBFbnRyaWVzQnlEYXRlKFxuICAgIGVudHJpZXM6IElBY3Rpdml0eUVudHJ5W11cbiAgKTogQXJyYXk8eyBsYWJlbDogc3RyaW5nOyBlbnRyaWVzOiBJQWN0aXZpdHlFbnRyeVtdIH0+IHtcbiAgICBjb25zdCBncm91cHM6IE1hcDxzdHJpbmcsIElBY3Rpdml0eUVudHJ5W10+ID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCB5ZXN0ZXJkYXkgPSBuZXcgRGF0ZSh0b2RheSk7XG4gICAgeWVzdGVyZGF5LnNldERhdGUoeWVzdGVyZGF5LmdldERhdGUoKSAtIDEpO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBjb25zdCBkYXRlID0gZW50cnkudGltZXN0YW1wIHx8IG5ldyBEYXRlKCk7XG4gICAgICBsZXQgbGFiZWw6IHN0cmluZztcblxuICAgICAgaWYgKHRoaXMuaXNTYW1lRGF5KGRhdGUsIHRvZGF5KSkge1xuICAgICAgICBsYWJlbCA9ICdUb2RheSc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTYW1lRGF5KGRhdGUsIHllc3RlcmRheSkpIHtcbiAgICAgICAgbGFiZWwgPSAnWWVzdGVyZGF5JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxhYmVsID0gZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywge1xuICAgICAgICAgIG1vbnRoOiAnc2hvcnQnLFxuICAgICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICAgIHllYXI6IGRhdGUuZ2V0RnVsbFllYXIoKSAhPT0gdG9kYXkuZ2V0RnVsbFllYXIoKSA/ICdudW1lcmljJyA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghZ3JvdXBzLmhhcyhsYWJlbCkpIHtcbiAgICAgICAgZ3JvdXBzLnNldChsYWJlbCwgW10pO1xuICAgICAgfVxuICAgICAgZ3JvdXBzLmdldChsYWJlbCkhLnB1c2goZW50cnkpO1xuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5mcm9tKGdyb3Vwcy5lbnRyaWVzKCkpLm1hcCgoW2xhYmVsLCBlbnRyaWVzXSkgPT4gKHtcbiAgICAgIGxhYmVsLFxuICAgICAgZW50cmllcyxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGlzU2FtZURheShkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgZGF0ZTEuZ2V0RnVsbFllYXIoKSA9PT0gZGF0ZTIuZ2V0RnVsbFllYXIoKSAmJlxuICAgICAgZGF0ZTEuZ2V0TW9udGgoKSA9PT0gZGF0ZTIuZ2V0TW9udGgoKSAmJlxuICAgICAgZGF0ZTEuZ2V0RGF0ZSgpID09PSBkYXRlMi5nZXREYXRlKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRUaW1lKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlLnRvTG9jYWxlVGltZVN0cmluZygnZW4tVVMnLCB7XG4gICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgIGhvdXIxMjogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEljb25Gb3JUeXBlKHR5cGU6IElBY3Rpdml0eUVudHJ5Wyd0eXBlJ10pOiBzdHJpbmcge1xuICAgIGNvbnN0IGljb25zOiBSZWNvcmQ8SUFjdGl2aXR5RW50cnlbJ3R5cGUnXSwgc3RyaW5nPiA9IHtcbiAgICAgIGxvZ2luOiAnbHVjaWRlOmxvZ0luJyxcbiAgICAgIGxvZ291dDogJ2x1Y2lkZTpsb2dPdXQnLFxuICAgICAgdmlldzogJ2x1Y2lkZTpleWUnLFxuICAgICAgY3JlYXRlOiAnbHVjaWRlOnBsdXMnLFxuICAgICAgdXBkYXRlOiAnbHVjaWRlOmVkaXQnLFxuICAgICAgZGVsZXRlOiAnbHVjaWRlOnRyYXNoMicsXG4gICAgICBjdXN0b206ICdsdWNpZGU6YWN0aXZpdHknLFxuICAgIH07XG4gICAgcmV0dXJuIGljb25zW3R5cGVdIHx8IGljb25zLmN1c3RvbTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VhcmNoSW5wdXQoZTogSW5wdXRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy5zZWFyY2hRdWVyeSA9IHRhcmdldC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29udGV4dE1lbnUoZTogTW91c2VFdmVudCwgZW50cnk6IElBY3Rpdml0eUVudHJ5KTogdm9pZCB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIERlZXNDb250ZXh0bWVudS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhlLCBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdDb3B5IGFjdGl2aXR5JyxcbiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y29weScsXG4gICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGAke2VudHJ5LnVzZXJ9ICR7ZW50cnkubWVzc2FnZX1gKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdGaWx0ZXIgYnkgdXNlcicsXG4gICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnVzZXInLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0aGlzLmZpbHRlckNyaXRlcmlhID0geyB1c2VyOiBlbnRyeS51c2VyIH07XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnRmlsdGVyIGJ5IHR5cGUnLFxuICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpmaWx0ZXInLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0aGlzLmZpbHRlckNyaXRlcmlhID0geyB0eXBlOiBlbnRyeS50eXBlIH07XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnQ2xlYXIgZmlsdGVycycsXG4gICAgICAgIGljb25OYW1lOiAnbHVjaWRlOngnLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0aGlzLmZpbHRlckNyaXRlcmlhID0ge307XG4gICAgICAgICAgdGhpcy5zZWFyY2hRdWVyeSA9ICcnO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGh0bWwsIGNzcyB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgdHlwZSB7IERlZXNBcHB1aUJhciB9IGZyb20gJy4vY29tcG9uZW50LmpzJztcbmltcG9ydCB0eXBlIHsgSUFwcEJhck1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hcHBiYXJtZW51aXRlbS5qcyc7XG5pbXBvcnQgJ0BkZXNpZ24uZXN0YXRlL2RlZXMtd2NjdG9vbHMvZGVtb3Rvb2xzJztcbmltcG9ydCAnLi9jb21wb25lbnQuanMnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiB7XG4gIC8vIFNhbXBsZSBtZW51IGl0ZW1zIHdpdGggdmFyaW91cyBjb25maWd1cmF0aW9uc1xuICAvLyBOb3RlOiBGb2xsb3dpbmcgc3RhbmRhcmQgZGVza3RvcCBVSSBwYXR0ZXJucywgdG9wLWxldmVsIG1lbnUgaXRlbXMgZG9uJ3QgaGF2ZSBpY29uc1xuICAvLyBJY29ucyBhcmUgb25seSB1c2VkIGluIGRyb3Bkb3duIG1lbnUgaXRlbXMgZm9yIGJldHRlciB2aXN1YWwgaGllcmFyY2h5XG4gIGNvbnN0IG1lbnVJdGVtczogSUFwcEJhck1lbnVJdGVtW10gPSBbXG4gICAge1xuICAgICAgbmFtZTogJ0ZpbGUnLFxuICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7fSwgLy8gTm8tb3AgYWN0aW9uIGZvciBtZW51IHdpdGggc3VibWVudVxuICAgICAgc3VibWVudTogW1xuICAgICAgICB7IG5hbWU6ICdOZXcgRmlsZScsIHNob3J0Y3V0OiAnQ21kK04nLCBpY29uTmFtZTogJ2ZpbGUtcGx1cycsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ05ldyBmaWxlJykgfSxcbiAgICAgICAgeyBuYW1lOiAnT3Blbi4uLicsIHNob3J0Y3V0OiAnQ21kK08nLCBpY29uTmFtZTogJ2ZvbGRlci1vcGVuJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnT3BlbicpIH0sXG4gICAgICAgIHsgbmFtZTogJ09wZW4gUmVjZW50JywgYWN0aW9uOiBhc3luYyAoKSA9PiB7fSwgc3VibWVudTogW1xuICAgICAgICAgIHsgbmFtZTogJ3Byb2plY3QtYWxwaGEudHMnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdPcGVuIHJlY2VudCAxJykgfSxcbiAgICAgICAgICB7IG5hbWU6ICdjb25maWcuanNvbicsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ09wZW4gcmVjZW50IDInKSB9LFxuICAgICAgICAgIHsgbmFtZTogJ3JlYWRtZS5tZCcsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ09wZW4gcmVjZW50IDMnKSB9LFxuICAgICAgICBdfSxcbiAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sXG4gICAgICAgIHsgbmFtZTogJ1NhdmUnLCBzaG9ydGN1dDogJ0NtZCtTJywgaWNvbk5hbWU6ICdzYXZlJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnU2F2ZScpIH0sXG4gICAgICAgIHsgbmFtZTogJ1NhdmUgQXMuLi4nLCBzaG9ydGN1dDogJ0NtZCtTaGlmdCtTJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnU2F2ZSBhcycpLCBkaXNhYmxlZDogdHJ1ZSB9LFxuICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSxcbiAgICAgICAgeyBuYW1lOiAnRXhpdCcsIHNob3J0Y3V0OiAnQ21kK1EnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdFeGl0JykgfSxcbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdFZGl0JyxcbiAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge30sIC8vIE5vLW9wIGFjdGlvbiBmb3IgbWVudSB3aXRoIHN1Ym1lbnVcbiAgICAgIHN1Ym1lbnU6IFtcbiAgICAgICAgeyBuYW1lOiAnVW5kbycsIHNob3J0Y3V0OiAnQ21kK1onLCBpY29uTmFtZTogJ3VuZG8nLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdVbmRvJykgfSxcbiAgICAgICAgeyBuYW1lOiAnUmVkbycsIHNob3J0Y3V0OiAnQ21kK1NoaWZ0K1onLCBpY29uTmFtZTogJ3JlZG8nLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdSZWRvJykgfSxcbiAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sXG4gICAgICAgIHsgbmFtZTogJ0N1dCcsIHNob3J0Y3V0OiAnQ21kK1gnLCBpY29uTmFtZTogJ3NjaXNzb3JzJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnQ3V0JykgfSxcbiAgICAgICAgeyBuYW1lOiAnQ29weScsIHNob3J0Y3V0OiAnQ21kK0MnLCBpY29uTmFtZTogJ2NvcHknLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdDb3B5JykgfSxcbiAgICAgICAgeyBuYW1lOiAnUGFzdGUnLCBzaG9ydGN1dDogJ0NtZCtWJywgaWNvbk5hbWU6ICdjbGlwYm9hcmQnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdQYXN0ZScpIH0sXG4gICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICB7IG5hbWU6ICdGaW5kJywgc2hvcnRjdXQ6ICdDbWQrRicsIGljb25OYW1lOiAnc2VhcmNoJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnRmluZCcpIH0sXG4gICAgICAgIHsgbmFtZTogJ1JlcGxhY2UnLCBzaG9ydGN1dDogJ0NtZCtIJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnUmVwbGFjZScpIH0sXG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnVmlldycsXG4gICAgICBhY3Rpb246IGFzeW5jICgpID0+IHt9LCAvLyBOby1vcCBhY3Rpb24gZm9yIG1lbnUgd2l0aCBzdWJtZW51XG4gICAgICBzdWJtZW51OiBbXG4gICAgICAgIHsgbmFtZTogJ1RvZ2dsZSBGdWxsc2NyZWVuJywgc2hvcnRjdXQ6ICdGMTEnLCBpY29uTmFtZTogJ2V4cGFuZCcsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0Z1bGxzY3JlZW4nKSB9LFxuICAgICAgICB7IG5hbWU6ICdab29tIEluJywgc2hvcnRjdXQ6ICdDbWQrKycsIGljb25OYW1lOiAnem9vbS1pbicsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1pvb20gaW4nKSB9LFxuICAgICAgICB7IG5hbWU6ICdab29tIE91dCcsIHNob3J0Y3V0OiAnQ21kKy0nLCBpY29uTmFtZTogJ3pvb20tb3V0JywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnWm9vbSBvdXQnKSB9LFxuICAgICAgICB7IG5hbWU6ICdSZXNldCBab29tJywgc2hvcnRjdXQ6ICdDbWQrMCcsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1Jlc2V0IHpvb20nKSB9LFxuICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSxcbiAgICAgICAgeyBuYW1lOiAnVG9nZ2xlIFNpZGViYXInLCBzaG9ydGN1dDogJ0NtZCtCJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnVG9nZ2xlIHNpZGViYXInKSB9LFxuICAgICAgICB7IG5hbWU6ICdUb2dnbGUgVGVybWluYWwnLCBzaG9ydGN1dDogJ0NtZCtKJywgaWNvbk5hbWU6ICd0ZXJtaW5hbCcsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1RvZ2dsZSB0ZXJtaW5hbCcpIH0sXG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnSGVscCcsXG4gICAgICBhY3Rpb246IGFzeW5jICgpID0+IHt9LCAvLyBOby1vcCBhY3Rpb24gZm9yIG1lbnUgd2l0aCBzdWJtZW51XG4gICAgICBzdWJtZW51OiBbXG4gICAgICAgIHsgbmFtZTogJ0RvY3VtZW50YXRpb24nLCBpY29uTmFtZTogJ2Jvb2snLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdEb2N1bWVudGF0aW9uJykgfSxcbiAgICAgICAgeyBuYW1lOiAnUmVsZWFzZSBOb3RlcycsIGljb25OYW1lOiAnZmlsZS10ZXh0JywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnUmVsZWFzZSBub3RlcycpIH0sXG4gICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICB7IG5hbWU6ICdSZXBvcnQgSXNzdWUnLCBpY29uTmFtZTogJ2J1ZycsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1JlcG9ydCBpc3N1ZScpIH0sXG4gICAgICAgIHsgbmFtZTogJ0Fib3V0JywgaWNvbk5hbWU6ICdpbmZvJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnQWJvdXQnKSB9LFxuICAgICAgXVxuICAgIH1cbiAgXTtcblxuICByZXR1cm4gaHRtbGBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGFwcGJhciA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignI2FwcGJhcicpIGFzIERlZXNBcHB1aUJhcjtcbiAgICAgIFxuICAgICAgLy8gU2V0IHVwIHN0YXR1cyB0b2dnbGVcbiAgICAgIGNvbnN0IHN0YXR1c0J1dHRvbnMgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdGF0dXMtdG9nZ2xlIGRlZXMtYnV0dG9uJyk7XG4gICAgICBzdGF0dXNCdXR0b25zWzBdLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBhcHBiYXIudXNlciA9IHsgLi4uYXBwYmFyLnVzZXIsIHN0YXR1czogJ29ubGluZScgfTtcbiAgICAgIH0pO1xuICAgICAgc3RhdHVzQnV0dG9uc1sxXS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgYXBwYmFyLnVzZXIgPSB7IC4uLmFwcGJhci51c2VyLCBzdGF0dXM6ICdidXN5JyB9O1xuICAgICAgfSk7XG4gICAgICBzdGF0dXNCdXR0b25zWzJdLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBhcHBiYXIudXNlciA9IHsgLi4uYXBwYmFyLnVzZXIsIHN0YXR1czogJ2F3YXknIH07XG4gICAgICB9KTtcbiAgICAgIHN0YXR1c0J1dHRvbnNbM10uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIGFwcGJhci51c2VyID0geyAuLi5hcHBiYXIudXNlciwgc3RhdHVzOiAnb2ZmbGluZScgfTtcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBTZXQgdXAgd2luZG93IGNvbnRyb2xzIHRvZ2dsZVxuICAgICAgY29uc3Qgd2luZG93Q29udHJvbHNCdXR0b24gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJy53aW5kb3ctY29udHJvbHMtdG9nZ2xlIGRlZXMtYnV0dG9uJyk7XG4gICAgICB3aW5kb3dDb250cm9sc0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgYXBwYmFyLnNob3dXaW5kb3dDb250cm9scyA9ICFhcHBiYXIuc2hvd1dpbmRvd0NvbnRyb2xzO1xuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIFNldCB1cCBicmVhZGNydW1iIGJ1dHRvbnNcbiAgICAgIGNvbnN0IGJyZWFkY3J1bWJCdXR0b25zID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yQWxsKCcuYnJlYWRjcnVtYi10b2dnbGUgZGVlcy1idXR0b24nKTtcbiAgICAgIGJyZWFkY3J1bWJCdXR0b25zWzBdLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBhcHBiYXIuYnJlYWRjcnVtYnMgPSAnSG9tZSA+IERvY3VtZW50cyA+IFByb2plY3RzID4gTXlBcHAgPiBzcmMgPiBpbmRleC50cyc7XG4gICAgICB9KTtcbiAgICAgIGJyZWFkY3J1bWJCdXR0b25zWzFdLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBhcHBiYXIuYnJlYWRjcnVtYnMgPSAnRGFzaGJvYXJkJztcbiAgICAgIH0pO1xuICAgIH19PlxuICAgICAgPHN0eWxlPlxuICAgICAgICAke2Nzc2BcbiAgICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgICBoZWlnaHQ6IDYwMHB4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuY29udHJvbHMge1xuICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuY29udHJvbC1ncm91cCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogOHB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuY29udHJvbC1ncm91cCBsYWJlbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgICB9XG4gICAgICBgfVxuICAgIDwvc3R5bGU+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgICA8ZGVlcy1hcHB1aS1hcHBiYXJcbiAgICAgICAgaWQ9XCJhcHBiYXJcIlxuICAgICAgICAubWVudUl0ZW1zPSR7bWVudUl0ZW1zfVxuICAgICAgICAuYnJlYWRjcnVtYnM9JHsnUHJvamVjdCA+IHNyYyA+IGNvbXBvbmVudHMgPiBBcHBCYXIudHMnfVxuICAgICAgICAuYnJlYWRjcnVtYlNlcGFyYXRvcj0keycgPiAnfVxuICAgICAgICAuc2hvd1dpbmRvd0NvbnRyb2xzPSR7dHJ1ZX1cbiAgICAgICAgLnNob3dTZWFyY2g9JHt0cnVlfVxuICAgICAgICAudGhlbWU9JHsnZGFyayd9XG4gICAgICAgIC51c2VyPSR7e1xuICAgICAgICAgIG5hbWU6ICdKb2huIERvZScsXG4gICAgICAgICAgc3RhdHVzOiAnb25saW5lJyBhcyAnb25saW5lJyB8ICdvZmZsaW5lJyB8ICdidXN5JyB8ICdhd2F5J1xuICAgICAgICB9fVxuICAgICAgICBAbWVudS1zZWxlY3Q9JHsoZTogQ3VzdG9tRXZlbnQpID0+IGNvbnNvbGUubG9nKCdNZW51IHNlbGVjdGVkOicsIGUuZGV0YWlsLml0ZW0pfVxuICAgICAgICBAYnJlYWRjcnVtYi1uYXZpZ2F0ZT0keyhlOiBDdXN0b21FdmVudCkgPT4gY29uc29sZS5sb2coJ0JyZWFkY3J1bWIgY2xpY2tlZDonLCBlLmRldGFpbCl9XG4gICAgICAgIEBzZWFyY2gtY2xpY2s9JHsoKSA9PiBjb25zb2xlLmxvZygnU2VhcmNoIGNsaWNrZWQnKX1cbiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCkgPT4gY29uc29sZS5sb2coJ1VzZXIgbWVudSBjbGlja2VkJyl9XG4gICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgPGgyPkFwcCBCYXIgRGVtbzwvaDI+XG4gICAgICAgIDxwPlRoaXMgZGVtbyBzaG93cyB2YXJpb3VzIGZlYXR1cmVzIG9mIHRoZSBhcHAgYmFyIGNvbXBvbmVudDo8L3A+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGk+RHluYW1pYyBtZW51IGl0ZW1zIHdpdGggaWNvbnMsIHNob3J0Y3V0cywgYW5kIHN1Ym1lbnVzPC9saT5cbiAgICAgICAgICA8bGk+QnJlYWRjcnVtYiBuYXZpZ2F0aW9uPC9saT5cbiAgICAgICAgICA8bGk+VXNlciBhY2NvdW50IHNlY3Rpb24gd2l0aCBzdGF0dXMgaW5kaWNhdG9yPC9saT5cbiAgICAgICAgICA8bGk+U2VhcmNoIGljb248L2xpPlxuICAgICAgICAgIDxsaT5XaW5kb3cgY29udHJvbHMgKHBsYXRmb3JtLXNwZWNpZmljKTwvbGk+XG4gICAgICAgICAgPGxpPkRhcmsvbGlnaHQgdGhlbWUgc3VwcG9ydDwvbGk+XG4gICAgICAgICAgPGxpPktleWJvYXJkIG5hdmlnYXRpb24gKFRhYiwgRW50ZXIsIEVzY2FwZSk8L2xpPlxuICAgICAgICAgIDxsaT5DdXN0b20gZXZlbnRzIGZvciBhbGwgaW50ZXJhY3Rpb25zPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2wtZ3JvdXBcIj5cbiAgICAgICAgICA8bGFiZWw+VGhlbWU8L2xhYmVsPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz1cInRoZW1lLXRvZ2dsZVwiPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkRhcms8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkxpZ2h0PC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsPlVzZXIgU3RhdHVzPC9sYWJlbD5cbiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9XCJzdGF0dXMtdG9nZ2xlXCI+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24+T25saW5lPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5CdXN5PC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Bd2F5PC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PZmZsaW5lPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsPldpbmRvdyBDb250cm9sczwvbGFiZWw+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPVwid2luZG93LWNvbnRyb2xzLXRvZ2dsZVwiPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZTwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbC1ncm91cFwiPlxuICAgICAgICAgIDxsYWJlbD5CcmVhZGNydW1iczwvbGFiZWw+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPVwiYnJlYWRjcnVtYi10b2dnbGVcIj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Mb25nIFBhdGg8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNob3J0IFBhdGg8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICBgO1xufTsiLCAiaW1wb3J0IHsgY3NzLCBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IGFwcHVpQXBwYmFyU3R5bGVzID0gW1xuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIHRoZW1pbmcgKi9cbiAgICAgICAgLS1hcHBiYXItaGVpZ2h0OiA0MHB4O1xuICAgICAgICAtLWFwcGJhci1mb250LXNpemU6IDEycHg7XG4gICAgICAgIFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1hcHBiYXItaGVpZ2h0KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTBlMGUwJywgJyMyMDIwMjAnKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwMDAwMDAnKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwMDAwMDgwJywgJyNmZmZmZmY4MCcpfTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1hcHBiYXItZm9udC1zaXplKTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvO1xuICAgICAgICAtd2Via2l0LWFwcC1yZWdpb246IGRyYWc7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgfVxuXG4gICAgICAubWVudXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZzogMCA4cHg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cblxuICAgICAgLm1lbnVJdGVtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7XG4gICAgICAgIG1hcmdpbjogOHB4IDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAtd2Via2l0LWFwcC1yZWdpb246IG5vLWRyYWc7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIE9wdGlvbmFsOiBTdHlsZSBmb3IgbWVudSBpdGVtcyB3aXRoIGljb25zIChub3QgdHlwaWNhbGx5IHVzZWQgZm9yIHRvcC1sZXZlbCBpdGVtcykgKi9cbiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgIH1cblxuICAgICAgLm1lbnVJdGVtOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAwMDAxMCcsICcjZmZmZmZmMjAnKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwMDAwMCcsICcjZmZmZmZmJyl9O1xuICAgICAgfVxuXG4gICAgICAubWVudUl0ZW0uYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAwMDAyMCcsICcjZmZmZmZmMzAnKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwMDAwMCcsICcjZmZmZmZmJyl9O1xuICAgICAgfVxuXG4gICAgICAubWVudUl0ZW1bZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLm1lbnVJdGVtOmZvY3VzLXZpc2libGUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAwMDA4MCcsICcjZmZmZmZmODAnKX07XG4gICAgICB9XG5cblxuICAgICAgLyogRHJvcGRvd24gc3R5bGVzICovXG4gICAgICAuZHJvcGRvd24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzAwMDAwMCcpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlMGUwZTAnLCAnIzIwMjAyMCcpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3gtc2hhZG93OiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpJywgJzAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpJyl9O1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuZHJvcGRvd24ub3BlbiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIC5kcm9wZG93bi1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcztcbiAgICAgIH1cblxuICAgICAgLmRyb3Bkb3duLWl0ZW06aG92ZXIsXG4gICAgICAuZHJvcGRvd24taXRlbS5mb2N1c2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAwMDAxMCcsICcjZmZmZmZmMjAnKX07XG4gICAgICB9XG5cbiAgICAgIC5kcm9wZG93bi1kaXZpZGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTBlMGUwJywgJyMyMDIwMjAnKX07XG4gICAgICAgIG1hcmdpbjogNHB4IDA7XG4gICAgICB9XG5cbiAgICAgIC5kcm9wZG93bi1pdGVtW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5kcm9wZG93bi1pdGVtIC5zaG9ydGN1dCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIH1cblxuICAgICAgLyogQnJlYWRjcnVtYnMgKi9cbiAgICAgIC5icmVhZGNydW1icyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5icmVhZGNydW1iLWl0ZW0ge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAwMDA4MCcsICcjZmZmZmZmODAnKX07XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbiAgICAgIH1cblxuICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwMDAwMCcsICcjZmZmZmZmJyl9O1xuICAgICAgfVxuXG4gICAgICAuYnJlYWRjcnVtYi1zZXBhcmF0b3Ige1xuICAgICAgICBtYXJnaW46IDAgOHB4O1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG5cbiAgICAgIC8qIEFjY291bnQgc2VjdGlvbiAqL1xuICAgICAgLmFjY291bnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cblxuICAgICAgLnNlYXJjaC1pY29uIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbiAgICAgIH1cblxuICAgICAgLnNlYXJjaC1pY29uOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgLnVzZXItaW5mbyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzO1xuICAgICAgfVxuXG4gICAgICAudXNlci1pbmZvOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAwMDAxMCcsICcjZmZmZmZmMjAnKX07XG4gICAgICB9XG5cbiAgICAgIC51c2VyLWF2YXRhciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwMDAwMDIwJywgJyNmZmZmZmYzMCcpfTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG5cbiAgICAgIC51c2VyLWF2YXRhciBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuXG4gICAgICAudXNlci1zdGF0dXMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogLTJweDtcbiAgICAgICAgcmlnaHQ6IC0ycHg7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwMDAwMDAnKX07XG4gICAgICB9XG5cbiAgICAgIC51c2VyLXN0YXR1cy5vbmxpbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICAgICAgfVxuXG4gICAgICAudXNlci1zdGF0dXMub2ZmbGluZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM3NTc1NzU7XG4gICAgICB9XG5cbiAgICAgIC51c2VyLXN0YXR1cy5idXN5IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbiAgICAgIH1cblxuICAgICAgLnVzZXItc3RhdHVzLmF3YXkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmY5ODAwO1xuICAgICAgfVxuXG4gICAgICAvKiBBY3Rpdml0eSBsb2cgdG9nZ2xlIGJ1dHRvbiAqL1xuICAgICAgLmFjdGl2aXR5LXRvZ2dsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBuby1kcmFnO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAwMDA2MCcsICcjZmZmZmZmNjAnKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMSknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpJyl9O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2aXR5LXRvZ2dsZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDAwMDAwMTAnLCAnI2ZmZmZmZjE1Jyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAwMDAnLCAnI2ZmZmZmZicpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgLmFjdGl2aXR5LXRvZ2dsZS5hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwMDAwMDE1JywgJyNmZmZmZmYyMCcpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDAwMDAwJywgJyNmZmZmZmYnKX07XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpdml0eS10b2dnbGUgZGVlcy1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuXG4gICAgICAuYWN0aXZpdHktYmFkZ2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAgIG1pbi13aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM1MjUyNTInLCAnIzUyNTI1MicpfTtcbiAgICAgICAgY29sb3I6ICNmYWZhZmE7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuIiwgImltcG9ydCB7IGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHR5cGUgeyBEZWVzQXBwdWlCYXIgfSBmcm9tICcuL2NvbXBvbmVudC5qcyc7XG5cbmV4cG9ydCBjb25zdCByZW5kZXJBcHB1aUFwcGJhciA9IChjb21wb25lbnQ6IERlZXNBcHB1aUJhcik6IFRlbXBsYXRlUmVzdWx0ID0+IHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudXNcIj5cbiAgICAgICAgICAke2NvbXBvbmVudC5zaG93V2luZG93Q29udHJvbHMgPyBodG1sYDxkZWVzLXdpbmRvd2NvbnRyb2xzPjwvZGVlcy13aW5kb3djb250cm9scz5gIDogJyd9XG4gICAgICAgICAgJHtjb21wb25lbnQucmVuZGVyTWVudUl0ZW1zKCl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnJlYWRjcnVtYnNcIj5cbiAgICAgICAgICAke2NvbXBvbmVudC5yZW5kZXJCcmVhZGNydW1icygpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnRcIj5cbiAgICAgICAgICAke2NvbXBvbmVudC5yZW5kZXJBY2NvdW50U2VjdGlvbigpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG4gIFxufTtcbiIsICJpbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICBEZWVzRWxlbWVudCxcbiAgZG9tdG9vbHMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIGh0bWwsXG4gIHByb3BlcnR5LFxuICB0eXBlIENTU1Jlc3VsdCxcbiAgc3RhdGUsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLzAwdGhlbWUuanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLXdpbmRvd2NvbnRyb2xzJzogRGVlc1dpbmRvd0NvbnRyb2xzO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLXdpbmRvd2NvbnRyb2xzJylcbmV4cG9ydCBjbGFzcyBEZWVzV2luZG93Q29udHJvbHMgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIC8vIFNUQVRJQ1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSAoKSA9PiBodG1sYDxkZWVzLXdpbmRvd2NvbnRyb2xzPjwvZGVlcy13aW5kb3djb250cm9scz5gO1xuXG4gIC8vIEluc3RhbmNlXG4gIEBwcm9wZXJ0eSh7XG4gICAgcmVmbGVjdDogdHJ1ZSxcbiAgfSlcbiAgYWNjZXNzb3IgdHlwZTogJ21hYycgfCAnbGludXgnIHwgJ3dpbmRvd3MnID0gJ21hYyc7XG5cbiAgQHByb3BlcnR5KHtcbiAgICByZWZsZWN0OiB0cnVlLFxuICB9KVxuICBhY2Nlc3NvciBwb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICAgIH1cblxuICAgICAgLndpbmRvd0NvbnRyb2xzIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAud2luZG93Q29udHJvbHMgZGl2IHtcbiAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICMyMjIyMjI7XG4gICAgICB9XG5cbiAgICAgIC53aW5kb3dDb250cm9scyBkaXYuY2xvc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmY1ZjU3O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICB9XG5cbiAgICAgIC53aW5kb3dDb250cm9scyBkaXYudG9Eb2NrIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmYmQyZTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgfVxuXG4gICAgICAud2luZG93Q29udHJvbHMgZGl2Lm1pbk1heCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMyN2M5M2Y7XG4gICAgICB9XG5cbiAgICAgIC53aW5kb3dDb250cm9scyBkaXY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzO1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAkeyh0aGlzLnR5cGUgPT09ICdtYWMnICYmIHRoaXMucG9zaXRpb24gPT09ICdsZWZ0JykgfHxcbiAgICAgICgodGhpcy50eXBlID09PSAnbGludXgnIHx8IHRoaXMudHlwZSA9PT0gJ3dpbmRvd3MnKSAmJiB0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnKVxuICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2luZG93Q29udHJvbHNcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb3NlXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b0RvY2tcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbk1heFwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYFxuICAgICAgICA6IGh0bWxgYH1cbiAgICBgO1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuLi8uLi8wMHBsdWdpbnMuanMnO1xuaW1wb3J0IHsgekluZGV4TGF5ZXJzIH0gZnJvbSAnLi4vLi4vMDB6aW5kZXguanMnO1xuXG5pbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgcHJvcGVydHksXG4gIGN1c3RvbUVsZW1lbnQsXG4gIGh0bWwsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbiAgc3RhdGUsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duJylcbmV4cG9ydCBjbGFzcyBEZWVzQXBwdWlQcm9maWxlRHJvcGRvd24gZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9ICgpID0+IGh0bWxgXG4gICAgPGRlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duXG4gICAgICAudXNlcj0ke3tcbiAgICAgICAgbmFtZTogJ0pvaG4gRG9lJyxcbiAgICAgICAgZW1haWw6ICdqb2huLmRvZUBleGFtcGxlLmNvbScsXG4gICAgICAgIGF2YXRhcjogJ2h0dHBzOi8vcmFuZG9tdXNlci5tZS9hcGkvcG9ydHJhaXRzL21lbi8xLmpwZycsXG4gICAgICAgIHN0YXR1czogJ29ubGluZScgYXMgJ29ubGluZSdcbiAgICAgIH19XG4gICAgICAubWVudUl0ZW1zPSR7W1xuICAgICAgICB7IG5hbWU6ICdQcm9maWxlIFNldHRpbmdzJywgaWNvbk5hbWU6ICd1c2VyJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnUHJvZmlsZScpIH0sXG4gICAgICAgIHsgbmFtZTogJ0FjY291bnQnLCBpY29uTmFtZTogJ3NldHRpbmdzJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnQWNjb3VudCcpIH0sXG4gICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICB7IG5hbWU6ICdIZWxwICYgU3VwcG9ydCcsIGljb25OYW1lOiAnaGVscENpcmNsZScsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0hlbHAnKSB9LFxuICAgICAgICB7IG5hbWU6ICdLZXlib2FyZCBTaG9ydGN1dHMnLCBpY29uTmFtZTogJ2tleWJvYXJkJywgc2hvcnRjdXQ6ICdDbWQrSycsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1Nob3J0Y3V0cycpIH0sXG4gICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICB7IG5hbWU6ICdTaWduIE91dCcsIGljb25OYW1lOiAnbG9nT3V0JywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnU2lnbiBvdXQnKSB9XG4gICAgICBdfVxuICAgICAgLmlzT3Blbj0ke3RydWV9XG4gICAgPjwvZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24+XG4gIGA7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ0FwcCBVSSc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pXG4gIGFjY2Vzc29yIHVzZXI6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZW1haWw/OiBzdHJpbmc7XG4gICAgYXZhdGFyPzogc3RyaW5nO1xuICAgIHN0YXR1cz86ICdvbmxpbmUnIHwgJ29mZmxpbmUnIHwgJ2J1c3knIHwgJ2F3YXknO1xuICB9IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIGFjY2Vzc29yIG1lbnVJdGVtczogKHBsdWdpbnMudHNjbGFzcy53ZWJzaXRlLklNZW51SXRlbSAmIHsgc2hvcnRjdXQ/OiBzdHJpbmcgfSB8IHsgZGl2aWRlcjogdHJ1ZSB9KVtdID0gW107XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9KVxuICBhY2Nlc3NvciBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgcG9zaXRpb246ICd0b3AtcmlnaHQnIHwgJ3RvcC1sZWZ0JyB8ICdib3R0b20tcmlnaHQnIHwgJ2JvdHRvbS1sZWZ0JyA9ICd0b3AtcmlnaHQnO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5kcm9wZG93biB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMjBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzAwMDAwMCcpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlMGUwZTAnLCAnIzIwMjAyMCcpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3gtc2hhZG93OiAke2Nzc01hbmFnZXIuYmRUaGVtZShcbiAgICAgICAgICAnMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpJyxcbiAgICAgICAgICAnMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMyknXG4gICAgICAgICl9O1xuICAgICAgICB6LWluZGV4OiAke3pJbmRleExheWVycy5vdmVybGF5LmRyb3Bkb3dufTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4ycztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2lzb3Blbl0pIC5kcm9wZG93biB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5iYWNrZHJvcCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIFBvc2l0aW9uIHZhcmlhbnRzICovXG4gICAgICAuZHJvcGRvd24udG9wLXJpZ2h0IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgfVxuXG4gICAgICAuZHJvcGRvd24udG9wLWxlZnQge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgIH1cblxuICAgICAgLmRyb3Bkb3duLmJvdHRvbS1yaWdodCB7XG4gICAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgIH1cblxuICAgICAgLmRyb3Bkb3duLmJvdHRvbS1sZWZ0IHtcbiAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIFVzZXIgc2VjdGlvbiAqL1xuICAgICAgLnVzZXItc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2UwZTBlMCcsICcjMjAyMDIwJyl9O1xuICAgICAgfVxuXG4gICAgICAudXNlci1pbmZvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAudXNlci1hdmF0YXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmMGYwZjAnLCAnIzFhMWExYScpfTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNjY2JywgJyM5OTknKX07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC51c2VyLWF2YXRhciBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cblxuICAgICAgLnVzZXItc3RhdHVzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwMDAwMDAnKX07XG4gICAgICB9XG5cbiAgICAgIC51c2VyLXN0YXR1cy5vbmxpbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNGNhZjUwO1xuICAgICAgfVxuXG4gICAgICAudXNlci1zdGF0dXMub2ZmbGluZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM3NTc1NzU7XG4gICAgICB9XG5cbiAgICAgIC51c2VyLXN0YXR1cy5idXN5IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbiAgICAgIH1cblxuICAgICAgLnVzZXItc3RhdHVzLmF3YXkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmY5ODAwO1xuICAgICAgfVxuXG4gICAgICAudXNlci1kZXRhaWxzIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAudXNlci1uYW1lIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAnLCAnI2ZmZicpfTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cblxuICAgICAgLnVzZXItZW1haWwge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzY2NicsICcjOTk5Jyl9O1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuXG4gICAgICAvKiBNZW51IHNlY3Rpb24gKi9cbiAgICAgIC5tZW51LXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICAgIH1cblxuICAgICAgLm1lbnUtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzMzMycsICcjY2NjJyl9O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLm1lbnUtaXRlbTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMDQpJywgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCknKX07XG4gICAgICB9XG5cbiAgICAgIC5tZW51LWl0ZW06YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4wOCknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKScpfTtcbiAgICAgIH1cblxuICAgICAgLm1lbnUtaXRlbSBkZWVzLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cblxuICAgICAgLm1lbnUtaXRlbS10ZXh0IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cblxuICAgICAgLm1lbnUtc2hvcnRjdXQge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzk5OScsICcjNjY2Jyl9O1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuXG4gICAgICAubWVudS1kaXZpZGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTBlMGUwJywgJyMyMDIwMjAnKX07XG4gICAgICAgIG1hcmdpbjogNHB4IDA7XG4gICAgICB9XG5cbiAgICAgIC8qIEJhY2tkcm9wIGZvciBtb2JpbGUgKi9cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAuYmFja2Ryb3Age1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgICAgIHotaW5kZXg6ICR7ekluZGV4TGF5ZXJzLmJhY2tkcm9wLmRyb3Bkb3dufTtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW2lzb3Blbl0pIC5iYWNrZHJvcCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC45NSk7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzMnB4KTtcbiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbaXNvcGVuXSkgLmRyb3Bkb3duIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFja2Ryb3BcIiBAY2xpY2s9JHsoKSA9PiB0aGlzLmNsb3NlKCl9PjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duICR7dGhpcy5wb3NpdGlvbn1cIj5cbiAgICAgICAgJHt0aGlzLnVzZXIgPyBodG1sYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWluZm9cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItYXZhdGFyXCI+XG4gICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuYXZhdGFyIFxuICAgICAgICAgICAgICAgICAgPyBodG1sYDxpbWcgc3JjPVwiJHt0aGlzLnVzZXIuYXZhdGFyfVwiIGFsdD1cIiR7dGhpcy51c2VyLm5hbWV9XCI+YFxuICAgICAgICAgICAgICAgICAgOiB0aGlzLmdldEluaXRpYWxzKHRoaXMudXNlci5uYW1lKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5zdGF0dXMgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItc3RhdHVzICR7dGhpcy51c2VyLnN0YXR1c31cIj48L2Rpdj5cbiAgICAgICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbmFtZVwiPiR7dGhpcy51c2VyLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuZW1haWwgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZW1haWxcIj4ke3RoaXMudXNlci5lbWFpbH08L2Rpdj5cbiAgICAgICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIGAgOiAnJ31cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXNlY3Rpb25cIj5cbiAgICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChpdGVtID0+IHRoaXMucmVuZGVyTWVudUl0ZW0oaXRlbSkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlck1lbnVJdGVtKGl0ZW06IHBsdWdpbnMudHNjbGFzcy53ZWJzaXRlLklNZW51SXRlbSAmIHsgc2hvcnRjdXQ/OiBzdHJpbmcgfSB8IHsgZGl2aWRlcjogdHJ1ZSB9KTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmICgnZGl2aWRlcicgaW4gaXRlbSAmJiBpdGVtLmRpdmlkZXIpIHtcbiAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJtZW51LWRpdmlkZXJcIj48L2Rpdj5gO1xuICAgIH1cblxuICAgIGNvbnN0IG1lbnVJdGVtID0gaXRlbSBhcyBwbHVnaW5zLnRzY2xhc3Mud2Vic2l0ZS5JTWVudUl0ZW0gJiB7IGljb25OYW1lPzogc3RyaW5nOyBzaG9ydGN1dD86IHN0cmluZyB9O1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbVwiIEBjbGljaz0keygpID0+IHRoaXMuaGFuZGxlTWVudUNsaWNrKG1lbnVJdGVtKX0+XG4gICAgICAgICR7bWVudUl0ZW0uaWNvbk5hbWUgPyBodG1sYFxuICAgICAgICAgIDxkZWVzLWljb24gLmljb249XCIke2BsdWNpZGU6JHttZW51SXRlbS5pY29uTmFtZX1gfVwiPjwvZGVlcy1pY29uPlxuICAgICAgICBgIDogJyd9XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj4ke21lbnVJdGVtLm5hbWV9PC9zcGFuPlxuICAgICAgICAke21lbnVJdGVtLnNob3J0Y3V0ID8gaHRtbGBcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtc2hvcnRjdXRcIj4ke21lbnVJdGVtLnNob3J0Y3V0fTwvc3Bhbj5cbiAgICAgICAgYCA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5pdGlhbHMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmFtZVxuICAgICAgLnNwbGl0KCcgJylcbiAgICAgIC5tYXAocGFydCA9PiBwYXJ0WzBdKVxuICAgICAgLmpvaW4oJycpXG4gICAgICAudG9VcHBlckNhc2UoKVxuICAgICAgLnNsaWNlKDAsIDIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVNZW51Q2xpY2soaXRlbTogcGx1Z2lucy50c2NsYXNzLndlYnNpdGUuSU1lbnVJdGVtICYgeyBpY29uTmFtZT86IHN0cmluZzsgc2hvcnRjdXQ/OiBzdHJpbmcgfSkge1xuICAgIGF3YWl0IGl0ZW0uYWN0aW9uKCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICAgIFxuICAgIC8vIEVtaXQgbWVudS1zZWxlY3QgZXZlbnRcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdtZW51LXNlbGVjdCcsIHtcbiAgICAgIGRldGFpbDogeyBpdGVtIH0sXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpIHtcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG4gIH1cblxuICAvLyBIYW5kbGUgY2xpY2tzIG91dHNpZGUgdGhlIGRyb3Bkb3duXG4gIGFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGF3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2sgPSB0aGlzLmhhbmRsZU91dHNpZGVDbGljay5iaW5kKHRoaXMpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2spO1xuICB9XG5cbiAgYXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT3V0c2lkZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuICYmICF0aGlzLmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNsaWNrIGlzIG9uIHRoZSBwYXJlbnQgZWxlbWVudCAod2hpY2ggY29udGFpbnMgdGhlIHByb2ZpbGUgYnV0dG9uKVxuICAgICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMucGFyZW50RWxlbWVudDtcbiAgICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHBhcmVudEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIC8vIERvbid0IGNsb3NlIGlmIGNsaWNraW5nIHdpdGhpbiB0aGUgcGFyZW50IGVsZW1lbnQgKGUuZy4sIG9uIHRoZSBwcm9maWxlIGJ1dHRvbilcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxufSIsICJpbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgY3VzdG9tRWxlbWVudCxcbiAgcHJvcGVydHksXG4gIHN0YXRlLFxuICBodG1sLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCAqIGFzIGludGVyZmFjZXMgZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pbmRleC5qcyc7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLy4uLzAwcGx1Z2lucy5qcyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVtby5qcyc7XG5pbXBvcnQgeyBhcHB1aUFwcGJhclN0eWxlcyB9IGZyb20gJy4vc3R5bGVzLmpzJztcbmltcG9ydCB7IHJlbmRlckFwcHVpQXBwYmFyIH0gZnJvbSAnLi90ZW1wbGF0ZS5qcyc7XG5cbi8vIEltcG9ydCByZXF1aXJlZCBjb21wb25lbnRzXG5pbXBvcnQgJy4uLy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLXdpbmRvd2NvbnRyb2xzL2RlZXMtd2luZG93Y29udHJvbHMuanMnO1xuaW1wb3J0ICcuLi9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bi9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bi5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtYXBwdWktYXBwYmFyJzogRGVlc0FwcHVpQmFyO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWFwcHVpLWFwcGJhcicpXG5leHBvcnQgY2xhc3MgRGVlc0FwcHVpQmFyIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnQXBwIFVJJztcblxuICAvLyBJTlNUQU5DRSBQUk9QRVJUSUVTXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIGFjY2Vzc29yIG1lbnVJdGVtczogaW50ZXJmYWNlcy5JQXBwQmFyTWVudUl0ZW1bXSA9IFtdO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBicmVhZGNydW1iczogc3RyaW5nID0gJyc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIGJyZWFkY3J1bWJTZXBhcmF0b3I6IHN0cmluZyA9ICcgPiAnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3Igc2hvd1dpbmRvd0NvbnRyb2xzOiBib29sZWFuID0gdHJ1ZTtcblxuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE9iamVjdCB9KVxuICBhY2Nlc3NvciB1c2VyOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGVtYWlsPzogc3RyaW5nO1xuICAgIGF2YXRhcj86IHN0cmluZztcbiAgICBzdGF0dXM/OiAnb25saW5lJyB8ICdvZmZsaW5lJyB8ICdidXN5JyB8ICdhd2F5JztcbiAgfSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBhY2Nlc3NvciBwcm9maWxlTWVudUl0ZW1zOiAocGx1Z2lucy50c2NsYXNzLndlYnNpdGUuSU1lbnVJdGVtICYgeyBzaG9ydGN1dD86IHN0cmluZyB9IHwgeyBkaXZpZGVyOiB0cnVlIH0pW10gPSBbXTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIHNob3dTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBBY3Rpdml0eSBsb2cgdG9nZ2xlXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3Igc2hvd0FjdGl2aXR5TG9nVG9nZ2xlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIGFjdGl2aXR5TG9nQ291bnQ6IG51bWJlciA9IDA7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBhY3Rpdml0eUxvZ0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIFNUQVRFXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGFjdGl2ZU1lbnU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIG9wZW5Ecm9wZG93bnM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGZvY3VzZWRJdGVtOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBmb2N1c2VkRHJvcGRvd25JdGVtOiBudW1iZXIgPSAtMTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBpc1Byb2ZpbGVEcm9wZG93bk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IGFwcHVpQXBwYmFyU3R5bGVzO1xuXG4gIC8vIElOU1RBTkNFXG4gIHB1YmxpYyByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiByZW5kZXJBcHB1aUFwcGJhcih0aGlzKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgcmVuZGVyTWVudUl0ZW1zKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gdGhpcy5yZW5kZXJNZW51SXRlbShpdGVtLCBgbWVudS0ke2luZGV4fWApKX1cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJNZW51SXRlbShpdGVtOiBpbnRlcmZhY2VzLklBcHBCYXJNZW51SXRlbSwgaXRlbUlkOiBzdHJpbmcpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgaWYgKCdkaXZpZGVyJyBpbiBpdGVtICYmIGl0ZW0uZGl2aWRlcikge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWRpdmlkZXJcIj48L2Rpdj5gO1xuICAgIH1cblxuICAgIGNvbnN0IG1lbnVJdGVtID0gaXRlbSBhcyBpbnRlcmZhY2VzLklBcHBCYXJNZW51SXRlbVJlZ3VsYXI7XG4gICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLmFjdGl2ZU1lbnUgPT09IGl0ZW1JZDtcbiAgICBjb25zdCBoYXNTdWJtZW51ID0gbWVudUl0ZW0uc3VibWVudSAmJiBtZW51SXRlbS5zdWJtZW51Lmxlbmd0aCA+IDA7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtZW51SXRlbSAke2lzQWN0aXZlID8gJ2FjdGl2ZScgOiAnJ31cIlxuICAgICAgICA/ZGlzYWJsZWQ9JHttZW51SXRlbS5kaXNhYmxlZH1cbiAgICAgICAgdGFiaW5kZXg9XCIke21lbnVJdGVtLmRpc2FibGVkID8gLTEgOiAwfVwiXG4gICAgICAgIGRhdGEtaXRlbS1pZD1cIiR7aXRlbUlkfVwiXG4gICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuaGFuZGxlTWVudUNsaWNrKG1lbnVJdGVtLCBpdGVtSWQpfVxuICAgICAgICBAa2V5ZG93bj0keyhlOiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLmhhbmRsZU1lbnVLZXlkb3duKGUsIG1lbnVJdGVtLCBpdGVtSWQpfVxuICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICBhcmlhLWhhc3BvcHVwPVwiJHtoYXNTdWJtZW51fVwiXG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9XCIke2lzQWN0aXZlfVwiXG4gICAgICA+XG4gICAgICAgICR7bWVudUl0ZW0uaWNvbk5hbWUgPyBodG1sYDxkZWVzLWljb24gLmljb249XCIke2BsdWNpZGU6JHttZW51SXRlbS5pY29uTmFtZX1gfVwiPjwvZGVlcy1pY29uPmAgOiAnJ31cbiAgICAgICAgJHttZW51SXRlbS5uYW1lfVxuICAgICAgICAke2hhc1N1Ym1lbnUgPyB0aGlzLnJlbmRlckRyb3Bkb3duKG1lbnVJdGVtLnN1Ym1lbnUsIGl0ZW1JZCwgaXNBY3RpdmUpIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJEcm9wZG93bihpdGVtczogaW50ZXJmYWNlcy5JQXBwQmFyTWVudUl0ZW1bXSwgcGFyZW50SWQ6IHN0cmluZywgaXNPcGVuOiBib29sZWFuKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93biAke2lzT3BlbiA/ICdvcGVuJyA6ICcnfVwiIFxuICAgICAgICBAY2xpY2s9JHsoZTogRXZlbnQpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgIEBrZXlkb3duPSR7KGU6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuaGFuZGxlRHJvcGRvd25LZXlkb3duKGUsIGl0ZW1zLCBwYXJlbnRJZCl9XG4gICAgICAgIHRhYmluZGV4PVwiJHtpc09wZW4gPyAwIDogLTF9XCJcbiAgICAgICAgcm9sZT1cIm1lbnVcIlxuICAgICAgPlxuICAgICAgICAke2l0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHRoaXMucmVuZGVyRHJvcGRvd25JdGVtKGl0ZW0sIGAke3BhcmVudElkfS0ke2luZGV4fWApKX1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckRyb3Bkb3duSXRlbShpdGVtOiBpbnRlcmZhY2VzLklBcHBCYXJNZW51SXRlbSwgaXRlbUlkOiBzdHJpbmcpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgaWYgKCdkaXZpZGVyJyBpbiBpdGVtICYmIGl0ZW0uZGl2aWRlcikge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWRpdmlkZXJcIj48L2Rpdj5gO1xuICAgIH1cblxuICAgIGNvbnN0IG1lbnVJdGVtID0gaXRlbSBhcyBpbnRlcmZhY2VzLklBcHBCYXJNZW51SXRlbVJlZ3VsYXI7XG4gICAgY29uc3QgaXRlbUluZGV4ID0gcGFyc2VJbnQoaXRlbUlkLnNwbGl0KCctJykucG9wKCkgfHwgJzAnKTtcbiAgICBjb25zdCBpc0ZvY3VzZWQgPSB0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0gPT09IGl0ZW1JbmRleDtcbiAgICBcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtICR7aXNGb2N1c2VkID8gJ2ZvY3VzZWQnIDogJyd9XCJcbiAgICAgICAgP2Rpc2FibGVkPSR7bWVudUl0ZW0uZGlzYWJsZWR9XG4gICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2sobWVudUl0ZW0pfVxuICAgICAgICBAbW91c2VlbnRlcj0keygpID0+IHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbSA9IGl0ZW1JbmRleH1cbiAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgdGFiaW5kZXg9XCIke21lbnVJdGVtLmRpc2FibGVkID8gLTEgOiAwfVwiXG4gICAgICA+XG4gICAgICAgICR7bWVudUl0ZW0uaWNvbk5hbWUgPyBodG1sYDxkZWVzLWljb24gLmljb249XCIke2BsdWNpZGU6JHttZW51SXRlbS5pY29uTmFtZX1gfVwiPjwvZGVlcy1pY29uPmAgOiAnJ31cbiAgICAgICAgPHNwYW4+JHttZW51SXRlbS5uYW1lfTwvc3Bhbj5cbiAgICAgICAgJHttZW51SXRlbS5zaG9ydGN1dCA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzaG9ydGN1dFwiPiR7bWVudUl0ZW0uc2hvcnRjdXR9PC9zcGFuPmAgOiAnJ31cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyQnJlYWRjcnVtYnMoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmICghdGhpcy5icmVhZGNydW1icykge1xuICAgICAgcmV0dXJuIGh0bWxgYDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJ0cyA9IHRoaXMuYnJlYWRjcnVtYnMuc3BsaXQodGhpcy5icmVhZGNydW1iU2VwYXJhdG9yKTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7cGFydHMubWFwKChwYXJ0LCBpbmRleCkgPT4gaHRtbGBcbiAgICAgICAgJHtpbmRleCA+IDAgPyBodG1sYDxzcGFuIGNsYXNzPVwiYnJlYWRjcnVtYi1zZXBhcmF0b3JcIj4ke3RoaXMuYnJlYWRjcnVtYlNlcGFyYXRvcn08L3NwYW4+YCA6ICcnfVxuICAgICAgICA8c3BhbiBcbiAgICAgICAgICBjbGFzcz1cImJyZWFkY3J1bWItaXRlbVwiIFxuICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuaGFuZGxlQnJlYWRjcnVtYkNsaWNrKHBhcnQsIGluZGV4KX1cbiAgICAgICAgPlxuICAgICAgICAgICR7cGFydH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgYCl9XG4gICAgYDtcbiAgfVxuXG4gIHB1YmxpYyByZW5kZXJBY2NvdW50U2VjdGlvbigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke3RoaXMuc2hvd1NlYXJjaCA/IGh0bWxgXG4gICAgICAgIDxkZWVzLWljb25cbiAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pY29uXCJcbiAgICAgICAgICAuaWNvbj0keydsdWNpZGU6c2VhcmNoJ31cbiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlYXJjaENsaWNrfVxuICAgICAgICA+PC9kZWVzLWljb24+XG4gICAgICBgIDogJyd9XG4gICAgICAke3RoaXMudXNlciA/IGh0bWxgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItaW5mb1wiIEBjbGljaz0ke3RoaXMuaGFuZGxlVXNlckNsaWNrfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWF2YXRhclwiPlxuICAgICAgICAgICAgICAke3RoaXMudXNlci5hdmF0YXIgPyBcbiAgICAgICAgICAgICAgICBodG1sYDxpbWcgc3JjPVwiJHt0aGlzLnVzZXIuYXZhdGFyfVwiIGFsdD1cIiR7dGhpcy51c2VyLm5hbWV9XCI+YCA6IFxuICAgICAgICAgICAgICAgIGh0bWxgJHt0aGlzLnVzZXIubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX1gXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuc3RhdHVzID8gaHRtbGBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfVwiPjwvZGl2PlxuICAgICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuPiR7dGhpcy51c2VyLm5hbWV9PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93blxuICAgICAgICAgICAgLnVzZXI9JHt0aGlzLnVzZXJ9XG4gICAgICAgICAgICAubWVudUl0ZW1zPSR7dGhpcy5wcm9maWxlTWVudUl0ZW1zfVxuICAgICAgICAgICAgLmlzT3Blbj0ke3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVufVxuICAgICAgICAgICAgLnBvc2l0aW9uPSR7J3RvcC1yaWdodCd9XG4gICAgICAgICAgICBAbWVudS1zZWxlY3Q9JHsoZTogQ3VzdG9tRXZlbnQpID0+IHRoaXMuaGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoZSl9XG4gICAgICAgICAgPjwvZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCA6ICcnfVxuICAgICAgJHt0aGlzLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZSA/IGh0bWxgXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImFjdGl2aXR5LXRvZ2dsZSAke3RoaXMuYWN0aXZpdHlMb2dBY3RpdmUgPyAnYWN0aXZlJyA6ICcnfVwiXG4gICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVBY3Rpdml0eVRvZ2dsZX1cbiAgICAgICAgICB0aXRsZT1cIkFjdGl2aXR5IExvZ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTphY3Rpdml0eSd9PjwvZGVlcy1pY29uPlxuICAgICAgICAgICR7dGhpcy5hY3Rpdml0eUxvZ0NvdW50ID4gMCA/IGh0bWxgXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjdGl2aXR5LWJhZGdlXCI+JHt0aGlzLmFjdGl2aXR5TG9nQ291bnQgPiA5OSA/ICc5OSsnIDogdGhpcy5hY3Rpdml0eUxvZ0NvdW50fTwvc3Bhbj5cbiAgICAgICAgICBgIDogJyd9XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCA6ICcnfVxuICAgIGA7XG4gIH1cblxuICAvLyBFdmVudCBoYW5kbGVyc1xuICBwcml2YXRlIGhhbmRsZU1lbnVDbGljayhpdGVtOiBpbnRlcmZhY2VzLklBcHBCYXJNZW51SXRlbVJlZ3VsYXIsIGl0ZW1JZDogc3RyaW5nKSB7XG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQpIHJldHVybjtcblxuICAgIGlmIChpdGVtLnN1Ym1lbnUgJiYgaXRlbS5zdWJtZW51Lmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIFRvZ2dsZSBkcm9wZG93blxuICAgICAgaWYgKHRoaXMuYWN0aXZlTWVudSA9PT0gaXRlbUlkKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlTWVudSA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFjdGl2ZU1lbnUgPSBpdGVtSWQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEV4ZWN1dGUgYWN0aW9uXG4gICAgICB0aGlzLmFjdGl2ZU1lbnUgPSBudWxsO1xuICAgICAgaWYgKGl0ZW0uYWN0aW9uKSB7XG4gICAgICAgIGl0ZW0uYWN0aW9uKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdtZW51LXNlbGVjdCcsIHsgXG4gICAgICAgIGRldGFpbDogeyBpdGVtIH0sXG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlIFxuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soaXRlbTogaW50ZXJmYWNlcy5JQXBwQmFyTWVudUl0ZW1SZWd1bGFyKSB7XG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQpIHJldHVybjtcblxuICAgIHRoaXMuYWN0aXZlTWVudSA9IG51bGw7XG4gICAgaWYgKGl0ZW0uYWN0aW9uKSB7XG4gICAgICBpdGVtLmFjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdtZW51LXNlbGVjdCcsIHsgXG4gICAgICBkZXRhaWw6IHsgaXRlbSB9LFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlIFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTWVudUtleWRvd24oZTogS2V5Ym9hcmRFdmVudCwgaXRlbTogaW50ZXJmYWNlcy5JQXBwQmFyTWVudUl0ZW1SZWd1bGFyLCBpdGVtSWQ6IHN0cmluZykge1xuICAgIHN3aXRjaCAoZS5rZXkpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJyAnOlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaGFuZGxlTWVudUNsaWNrKGl0ZW0sIGl0ZW1JZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgaWYgKGl0ZW0uc3VibWVudSAmJiB0aGlzLmFjdGl2ZU1lbnUgPT09IGl0ZW1JZCkge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAvLyBGb2N1cyBmaXJzdCBub24tZGlzYWJsZWQgaXRlbSBpbiBkcm9wZG93blxuICAgICAgICAgIHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbSA9IDA7XG4gICAgICAgICAgY29uc3QgZmlyc3RWYWxpZEl0ZW0gPSB0aGlzLmZpbmROZXh0VmFsaWRJdGVtKGl0ZW0uc3VibWVudSwgLTEsIDEpO1xuICAgICAgICAgIGlmIChmaXJzdFZhbGlkSXRlbSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbSA9IGZpcnN0VmFsaWRJdGVtO1xuICAgICAgICAgICAgLy8gRm9jdXMgdGhlIGRyb3Bkb3duIGVsZW1lbnRcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBkcm9wZG93biA9IHRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24ub3BlbicpO1xuICAgICAgICAgICAgICBpZiAoZHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAoZHJvcGRvd24gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIHRoaXMuYWN0aXZlTWVudSA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbSA9IC0xO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgIC8vIExldCBkZWZhdWx0IHRhYiBuYXZpZ2F0aW9uIHdvcmsgYnV0IGNsb3NlIGRyb3Bkb3duXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU1lbnUgPT09IGl0ZW1JZCkge1xuICAgICAgICAgIHRoaXMuYWN0aXZlTWVudSA9IG51bGw7XG4gICAgICAgICAgdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmZvY3VzTmV4dE1lbnVJdGVtKGl0ZW1JZCwgMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmZvY3VzTmV4dE1lbnVJdGVtKGl0ZW1JZCwgLTEpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUJyZWFkY3J1bWJDbGljayhicmVhZGNydW1iOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdicmVhZGNydW1iLW5hdmlnYXRlJywgeyBcbiAgICAgIGRldGFpbDogeyBicmVhZGNydW1iLCBpbmRleCB9LFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlIFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VhcmNoQ2xpY2soKSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnc2VhcmNoLWNsaWNrJywge1xuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBY3Rpdml0eVRvZ2dsZSgpIHtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdhY3Rpdml0eS10b2dnbGUnLCB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVVzZXJDbGljaygpIHtcbiAgICB0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3BlbiA9ICF0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3BlbjtcbiAgICBcbiAgICAvLyBBbHNvIGVtaXQgdGhlIGV2ZW50IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgndXNlci1tZW51LW9wZW4nLCB7IFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlIFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoZTogQ3VzdG9tRXZlbnQpIHtcbiAgICB0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgIFxuICAgIC8vIFJlLWVtaXQgdGhlIGV2ZW50XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgncHJvZmlsZS1tZW51LXNlbGVjdCcsIHsgXG4gICAgICBkZXRhaWw6IGUuZGV0YWlsLFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlIFxuICAgIH0pKTtcbiAgfVxuXG4gIC8vIExpZmVjeWNsZVxuICBhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBhd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIC8vIEFkZCBnbG9iYWwgY2xpY2sgbGlzdGVuZXIgdG8gY2xvc2UgZHJvcGRvd25zXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlR2xvYmFsQ2xpY2spO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKTtcbiAgfVxuXG4gIGFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZURvY3VtZW50Q2xpY2spO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVHbG9iYWxDbGljayA9IChlOiBFdmVudCkgPT4ge1xuICAgIC8vIFByZXZlbnQgY2xvc2luZyB3aGVuIGNsaWNraW5nIGluc2lkZVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURvY3VtZW50Q2xpY2sgPSAoKSA9PiB7XG4gICAgLy8gQ2xvc2UgYWxsIGRyb3Bkb3ducyB3aGVuIGNsaWNraW5nIG91dHNpZGVcbiAgICB0aGlzLmFjdGl2ZU1lbnUgPSBudWxsO1xuICAgIHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbSA9IC0xO1xuICAgIC8vIE5vdGU6IFByb2ZpbGUgZHJvcGRvd24gaGFuZGxlcyBpdHMgb3duIG91dHNpZGUgY2xpY2tzXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURyb3Bkb3duS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50LCBpdGVtczogaW50ZXJmYWNlcy5JQXBwQmFyTWVudUl0ZW1bXSwgX3BhcmVudElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCB2YWxpZEl0ZW1zID0gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gISgnZGl2aWRlcicgaW4gaXRlbSAmJiBpdGVtLmRpdmlkZXIpKTtcbiAgICBcbiAgICBzd2l0Y2ggKGUua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IHRoaXMuZmluZE5leHRWYWxpZEl0ZW0oaXRlbXMsIHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbSwgMSk7XG4gICAgICAgIGlmIChuZXh0SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtID0gbmV4dEluZGV4O1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgcHJldkluZGV4ID0gdGhpcy5maW5kTmV4dFZhbGlkSXRlbShpdGVtcywgdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLCAtMSk7XG4gICAgICAgIGlmIChwcmV2SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtID0gcHJldkluZGV4O1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0gIT09IC0xKSB7XG4gICAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB2YWxpZEl0ZW1zW3RoaXMuZm9jdXNlZERyb3Bkb3duSXRlbV07XG4gICAgICAgICAgaWYgKGZvY3VzZWRJdGVtICYmICdhY3Rpb24nIGluIGZvY3VzZWRJdGVtICYmICFmb2N1c2VkSXRlbS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhmb2N1c2VkSXRlbSBhcyBpbnRlcmZhY2VzLklBcHBCYXJNZW51SXRlbVJlZ3VsYXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGZpcnN0SW5kZXggPSB0aGlzLmZpbmROZXh0VmFsaWRJdGVtKGl0ZW1zLCAtMSwgMSk7XG4gICAgICAgIGlmIChmaXJzdEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbSA9IGZpcnN0SW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbmQnOlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHRoaXMuZmluZE5leHRWYWxpZEl0ZW0oaXRlbXMsIGl0ZW1zLmxlbmd0aCwgLTEpO1xuICAgICAgICBpZiAobGFzdEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbSA9IGxhc3RJbmRleDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVNZW51ID0gbnVsbDtcbiAgICAgICAgdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtID0gLTE7XG4gICAgICAgIC8vIFJldHVybiBmb2N1cyB0byBtZW51IGl0ZW1cbiAgICAgICAgY29uc3QgbWVudUl0ZW0gPSB0aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcihgLm1lbnVJdGVtLmFjdGl2ZWApO1xuICAgICAgICBpZiAobWVudUl0ZW0pIHtcbiAgICAgICAgICAobWVudUl0ZW0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTmV4dFZhbGlkSXRlbShpdGVtczogaW50ZXJmYWNlcy5JQXBwQmFyTWVudUl0ZW1bXSwgY3VycmVudEluZGV4OiBudW1iZXIsIGRpcmVjdGlvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgaW5kZXggPSBjdXJyZW50SW5kZXggKyBkaXJlY3Rpb247XG4gICAgXG4gICAgd2hpbGUgKGluZGV4ID49IDAgJiYgaW5kZXggPCBpdGVtcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpbmRleF07XG4gICAgICAvLyBTa2lwIGRpdmlkZXJzIGFuZCBkaXNhYmxlZCBpdGVtc1xuICAgICAgaWYgKCEoJ2RpdmlkZXInIGluIGl0ZW0gJiYgaXRlbS5kaXZpZGVyKSAmJiAhKCdkaXNhYmxlZCcgaW4gaXRlbSAmJiBpdGVtLmRpc2FibGVkKSkge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgICBpbmRleCArPSBkaXJlY3Rpb247XG4gICAgfVxuICAgIFxuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNOZXh0TWVudUl0ZW0oY3VycmVudEl0ZW1JZDogc3RyaW5nLCBkaXJlY3Rpb246IG51bWJlcikge1xuICAgIGNvbnN0IG1lbnVJdGVtcyA9IEFycmF5LmZyb20odGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tZW51SXRlbScpKTtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSBtZW51SXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXRlbS1pZCcpID09PSBjdXJyZW50SXRlbUlkKTtcbiAgICBcbiAgICBpZiAoY3VycmVudEluZGV4ID09PSAtMSkgcmV0dXJuO1xuICAgIFxuICAgIGxldCBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggKyBkaXJlY3Rpb247XG4gICAgXG4gICAgLy8gV3JhcCBhcm91bmRcbiAgICBpZiAobmV4dEluZGV4IDwgMCkge1xuICAgICAgbmV4dEluZGV4ID0gbWVudUl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgfSBlbHNlIGlmIChuZXh0SW5kZXggPj0gbWVudUl0ZW1zLmxlbmd0aCkge1xuICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICB9XG4gICAgXG4gICAgLy8gRmluZCBuZXh0IG5vbi1kaXNhYmxlZCBpdGVtXG4gICAgbGV0IGF0dGVtcHRzID0gMDtcbiAgICB3aGlsZSAoYXR0ZW1wdHMgPCBtZW51SXRlbXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXh0SXRlbSA9IG1lbnVJdGVtc1tuZXh0SW5kZXhdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKCFuZXh0SXRlbS5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgbmV4dEl0ZW0uZm9jdXMoKTtcbiAgICAgICAgLy8gQ2xvc2UgY3VycmVudCBkcm9wZG93biBpZiBvcGVuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU1lbnUpIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZU1lbnUgPSBudWxsO1xuICAgICAgICAgIHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbSA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgbmV4dEluZGV4ID0gKG5leHRJbmRleCArIGRpcmVjdGlvbiArIG1lbnVJdGVtcy5sZW5ndGgpICUgbWVudUl0ZW1zLmxlbmd0aDtcbiAgICAgIGF0dGVtcHRzKys7XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0IHsgaHRtbCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgdHlwZSB7IERlZXNBcHB1aUJvdHRvbWJhciB9IGZyb20gJy4vZGVlcy1hcHB1aS1ib3R0b21iYXIuanMnO1xuaW1wb3J0ICdAZGVzaWduLmVzdGF0ZS9kZWVzLXdjY3Rvb2xzL2RlbW90b29scyc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IHtcbiAgcmV0dXJuIGh0bWxgXG4gICAgPGRlZXMtZGVtb3dyYXBwZXI+XG4gICAgICA8c3R5bGU+XG4gICAgICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVtby1zZWN0aW9uIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVtby1sYWJlbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgIGNvbG9yOiAjNzM3MzczO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVtby1ib3R0b21iYXItd3JhcHBlciB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAgMCUgMjAlKTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgPC9zdHlsZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlbW8tbGFiZWxcIj5Cb3R0b20gYmFyIHdpdGggc3RhdHVzIHdpZGdldHMgYW5kIGFjdGlvbnM8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVtby1ib3R0b21iYXItd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyXG4gICAgICAgICAgICAgIGlkPVwiZGVtby1ib3R0b21iYXJcIlxuICAgICAgICAgICAgPjwvZGVlcy1hcHB1aS1ib3R0b21iYXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVtby1sYWJlbFwiPkNvbnRyb2xzPC9kaXY+XG4gICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7XCI+XG4gICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9XCJhZGRTdWNjZXNzV2lkZ2V0KClcIj5BZGQgU3VjY2VzcyBXaWRnZXQ8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz1cImFkZFdhcm5pbmdXaWRnZXQoKVwiPkFkZCBXYXJuaW5nIFdpZGdldDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPVwiYWRkRXJyb3JXaWRnZXQoKVwiPkFkZCBFcnJvciBXaWRnZXQ8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz1cImFkZExvYWRpbmdXaWRnZXQoKVwiPkFkZCBMb2FkaW5nIFdpZGdldDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPVwiYWRkUmlnaHRXaWRnZXQoKVwiPkFkZCBSaWdodCBXaWRnZXQ8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz1cImFkZEFjdGlvbigpXCI+QWRkIEFjdGlvbjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPVwiY2xlYXJBbGwoKVwiPkNsZWFyIEFsbDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNjcmlwdCB0eXBlPVwibW9kdWxlXCI+XG4gICAgICAgIGNvbnN0IGJvdHRvbWJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZW1vLWJvdHRvbWJhcicpO1xuXG4gICAgICAgIC8vIFdhaXQgZm9yIGNvbXBvbmVudCB0byBpbml0aWFsaXplXG4gICAgICAgIGF3YWl0IGJvdHRvbWJhci51cGRhdGVDb21wbGV0ZTtcblxuICAgICAgICAvLyBBZGQgaW5pdGlhbCB3aWRnZXRzXG4gICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoe1xuICAgICAgICAgIGlkOiAnc3RhdHVzJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTphY3Rpdml0eScsXG4gICAgICAgICAgbGFiZWw6ICdTeXN0ZW0gT25saW5lJyxcbiAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgICAgICB0b29sdGlwOiAnQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwnLFxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdTdGF0dXMgY2xpY2tlZCcpLFxuICAgICAgICAgIGNvbnRleHRNZW51SXRlbXM6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ1ZpZXcgRGV0YWlscycsIGljb25OYW1lOiAnbHVjaWRlOmluZm8nLCBhY3Rpb246ICgpID0+IGFsZXJ0KCdTeXN0ZW0gZGV0YWlscycpIH0sXG4gICAgICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ1JlZnJlc2ggU3RhdHVzJywgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaEN3JywgYWN0aW9uOiAoKSA9PiBhbGVydCgnUmVmcmVzaGluZy4uLicpIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7XG4gICAgICAgICAgaWQ6ICdub3RpZmljYXRpb25zJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpiZWxsJyxcbiAgICAgICAgICBsYWJlbDogJzMgbm90aWZpY2F0aW9ucycsXG4gICAgICAgICAgc3RhdHVzOiAnd2FybmluZycsXG4gICAgICAgICAgdG9vbHRpcDogJ1lvdSBoYXZlIHVucmVhZCBub3RpZmljYXRpb25zJyxcbiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnTm90aWZpY2F0aW9ucyBjbGlja2VkJyksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoe1xuICAgICAgICAgIGlkOiAndmVyc2lvbicsXG4gICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Z2l0QnJhbmNoJyxcbiAgICAgICAgICBsYWJlbDogJ3YxLjIuMycsXG4gICAgICAgICAgdG9vbHRpcDogJ0N1cnJlbnQgdmVyc2lvbicsXG4gICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsXG4gICAgICAgICAgb25DbGljazogKCkgPT4gY29uc29sZS5sb2coJ1ZlcnNpb24gY2xpY2tlZCcpLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgaW5pdGlhbCBhY3Rpb25zXG4gICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oe1xuICAgICAgICAgIGlkOiAnc2V0dGluZ3MnLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnNldHRpbmdzJyxcbiAgICAgICAgICB0b29sdGlwOiAnU2V0dGluZ3MnLFxuICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLFxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFsZXJ0KCdTZXR0aW5ncyBjbGlja2VkJyksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oe1xuICAgICAgICAgIGlkOiAnaGVscCcsXG4gICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aGVscENpcmNsZScsXG4gICAgICAgICAgdG9vbHRpcDogJ0hlbHAnLFxuICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLFxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFsZXJ0KCdIZWxwIGNsaWNrZWQnKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRGVtbyBjb250cm9sIGZ1bmN0aW9uc1xuICAgICAgICBsZXQgd2lkZ2V0Q291bnRlciA9IDA7XG4gICAgICAgIGxldCBhY3Rpb25Db3VudGVyID0gMDtcblxuICAgICAgICB3aW5kb3cuYWRkU3VjY2Vzc1dpZGdldCA9ICgpID0+IHtcbiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7XG4gICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7XG4gICAgICAgICAgICBpZDogJ3N1Y2Nlc3MtJyArIHdpZGdldENvdW50ZXIsXG4gICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpjaGVja0NpcmNsZScsXG4gICAgICAgICAgICBsYWJlbDogJ1N1Y2Nlc3MgJyArIHdpZGdldENvdW50ZXIsXG4gICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIHRvb2x0aXA6ICdTdWNjZXNzIHdpZGdldCcsXG4gICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdzdWNjZXNzLScgKyB3aWRnZXRDb3VudGVyKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICB3aW5kb3cuYWRkV2FybmluZ1dpZGdldCA9ICgpID0+IHtcbiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7XG4gICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7XG4gICAgICAgICAgICBpZDogJ3dhcm5pbmctJyArIHdpZGdldENvdW50ZXIsXG4gICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTphbGVydFRyaWFuZ2xlJyxcbiAgICAgICAgICAgIGxhYmVsOiAnV2FybmluZyAnICsgd2lkZ2V0Q291bnRlcixcbiAgICAgICAgICAgIHN0YXR1czogJ3dhcm5pbmcnLFxuICAgICAgICAgICAgdG9vbHRpcDogJ1dhcm5pbmcgd2lkZ2V0JyxcbiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3dhcm5pbmctJyArIHdpZGdldENvdW50ZXIpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHdpbmRvdy5hZGRFcnJvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7XG4gICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7XG4gICAgICAgICAgICBpZDogJ2Vycm9yLScgKyB3aWRnZXRDb3VudGVyLFxuICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6eENpcmNsZScsXG4gICAgICAgICAgICBsYWJlbDogJ0Vycm9yICcgKyB3aWRnZXRDb3VudGVyLFxuICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICAgICAgdG9vbHRpcDogJ0Vycm9yIHdpZGdldCcsXG4gICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdlcnJvci0nICsgd2lkZ2V0Q291bnRlciksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgd2luZG93LmFkZExvYWRpbmdXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgICAgd2lkZ2V0Q291bnRlcisrO1xuICAgICAgICAgIGNvbnN0IGlkID0gJ2xvYWRpbmctJyArIHdpZGdldENvdW50ZXI7XG4gICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7XG4gICAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpsb2FkZXIyJyxcbiAgICAgICAgICAgIGxhYmVsOiAnTG9hZGluZy4uLicsXG4gICAgICAgICAgICBzdGF0dXM6ICdhY3RpdmUnLFxuICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgICAgICAgIHRvb2x0aXA6ICdMb2FkaW5nIGluIHByb2dyZXNzJyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIC8vIFNpbXVsYXRlIGNvbXBsZXRpb24gYWZ0ZXIgMyBzZWNvbmRzXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBib3R0b21iYXIudXBkYXRlV2lkZ2V0KGlkLCB7XG4gICAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmNoZWNrJyxcbiAgICAgICAgICAgICAgbGFiZWw6ICdEb25lIScsXG4gICAgICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuXG4gICAgICAgIHdpbmRvdy5hZGRSaWdodFdpZGdldCA9ICgpID0+IHtcbiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7XG4gICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7XG4gICAgICAgICAgICBpZDogJ3JpZ2h0LScgKyB3aWRnZXRDb3VudGVyLFxuICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aW5mbycsXG4gICAgICAgICAgICBsYWJlbDogJ1JpZ2h0ICcgKyB3aWRnZXRDb3VudGVyLFxuICAgICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsXG4gICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdyaWdodC0nICsgd2lkZ2V0Q291bnRlciksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgd2luZG93LmFkZEFjdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICBhY3Rpb25Db3VudGVyKys7XG4gICAgICAgICAgYm90dG9tYmFyLmFkZEFjdGlvbih7XG4gICAgICAgICAgICBpZDogJ2FjdGlvbi0nICsgYWN0aW9uQ291bnRlcixcbiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnphcCcsXG4gICAgICAgICAgICB0b29sdGlwOiAnQWN0aW9uICcgKyBhY3Rpb25Db3VudGVyLFxuICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgICBhbGVydCgnQWN0aW9uICcgKyBhY3Rpb25Db3VudGVyICsgJyBjbGlja2VkJyk7XG4gICAgICAgICAgICAgIGJvdHRvbWJhci5yZW1vdmVBY3Rpb24oJ2FjdGlvbi0nICsgYWN0aW9uQ291bnRlcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHdpbmRvdy5jbGVhckFsbCA9ICgpID0+IHtcbiAgICAgICAgICBib3R0b21iYXIuY2xlYXJXaWRnZXRzKCk7XG4gICAgICAgICAgYm90dG9tYmFyLmNsZWFyQWN0aW9ucygpO1xuICAgICAgICAgIHdpZGdldENvdW50ZXIgPSAwO1xuICAgICAgICAgIGFjdGlvbkNvdW50ZXIgPSAwO1xuICAgICAgICB9O1xuICAgICAgPC9zY3JpcHQ+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICBgO1xufTtcbiIsICJpbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgY3NzLFxuICBjc3NNYW5hZ2VyLFxuICBzdGF0ZSxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcbmltcG9ydCB7IERlZXNDb250ZXh0bWVudSB9IGZyb20gJy4uLy4uL2RlZXMtY29udGV4dG1lbnUvZGVlcy1jb250ZXh0bWVudS5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIElCb3R0b21CYXJXaWRnZXQsXG4gIElCb3R0b21CYXJBY3Rpb24sXG4gIElCb3R0b21CYXJBUEksXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBwY29uZmlnLmpzJztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLWFwcHVpLWJvdHRvbWJhci5kZW1vLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1hcHB1aS1ib3R0b21iYXInOiBEZWVzQXBwdWlCb3R0b21iYXI7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtYXBwdWktYm90dG9tYmFyJylcbmV4cG9ydCBjbGFzcyBEZWVzQXBwdWlCb3R0b21iYXIgZXh0ZW5kcyBEZWVzRWxlbWVudCBpbXBsZW1lbnRzIElCb3R0b21CYXJBUEkge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnQXBwIFVJJztcblxuICAvLyBJTlNUQU5DRSBQUk9QRVJUSUVTXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHdpZGdldHM6IElCb3R0b21CYXJXaWRnZXRbXSA9IFtdO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGFjdGlvbnM6IElCb3R0b21CYXJBY3Rpb25bXSA9IFtdO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5ib3R0b20tYmFyIHtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NCUpJywgJ2hzbCgwIDAlIDYlKScpfTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4NSUpJywgJ2hzbCgwIDAlIDE1JSknKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA0MCUpJywgJ2hzbCgwIDAlIDYwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC53aWRnZXQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZzogMnB4IDZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLndpZGdldDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OCUpJywgJ2hzbCgwIDAlIDEyJSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMjAlKScsICdoc2woMCAwJSA4MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAud2lkZ2V0IGRlZXMtaWNvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAud2lkZ2V0LXNlcGFyYXRvciB7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDgwJSknLCAnaHNsKDAgMCUgMjAlKScpfTtcbiAgICAgICAgbWFyZ2luOiAwIDRweDtcbiAgICAgIH1cblxuICAgICAgLyogU3RhdHVzIGNvbG9ycyBtYXRjaGluZyBkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIgKi9cbiAgICAgIC53aWRnZXQuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDEwMCUgNDUlKScsICdoc2woMjEwIDEwMCUgNjAlKScpfTtcbiAgICAgIH1cblxuICAgICAgLndpZGdldC5zdWNjZXNzIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMTQyIDcwJSAzNSUpJywgJ2hzbCgxNDIgNzAlIDUwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC53aWRnZXQud2FybmluZyB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDM4IDkyJSA0NSUpJywgJ2hzbCgzOCA5MiUgNTUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLndpZGdldC5lcnJvciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgNzAlIDUwJSknLCAnaHNsKDAgNzAlIDYwJSknKX07XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7XG4gICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbiAgICAgIH1cblxuICAgICAgLnNwaW5uaW5nIHtcbiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgLnNwYWNlciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb24tYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNDAlKScsICdoc2woMCAwJSA2MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OCUpJywgJ2hzbCgwIDAlIDEyJSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMjAlKScsICdoc2woMCAwJSA4MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbi1idXR0b24uZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA0MCUpJywgJ2hzbCgwIDAlIDYwJSknKX07XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBsZWZ0V2lkZ2V0cyA9IHRoaXMud2lkZ2V0c1xuICAgICAgLmZpbHRlcih3ID0+IHcucG9zaXRpb24gIT09ICdyaWdodCcpXG4gICAgICAuc29ydCgoYSwgYikgPT4gKGEub3JkZXIgfHwgMCkgLSAoYi5vcmRlciB8fCAwKSk7XG5cbiAgICBjb25zdCByaWdodFdpZGdldHMgPSB0aGlzLndpZGdldHNcbiAgICAgIC5maWx0ZXIodyA9PiB3LnBvc2l0aW9uID09PSAncmlnaHQnKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IChhLm9yZGVyIHx8IDApIC0gKGIub3JkZXIgfHwgMCkpO1xuXG4gICAgY29uc3QgbGVmdEFjdGlvbnMgPSB0aGlzLmFjdGlvbnMuZmlsdGVyKGEgPT4gYS5wb3NpdGlvbiA9PT0gJ2xlZnQnKTtcbiAgICBjb25zdCByaWdodEFjdGlvbnMgPSB0aGlzLmFjdGlvbnMuZmlsdGVyKGEgPT4gYS5wb3NpdGlvbiAhPT0gJ2xlZnQnKTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbS1iYXJcIj5cbiAgICAgICAgPCEtLSBMZWZ0IGFjdGlvbnMgLS0+XG4gICAgICAgICR7bGVmdEFjdGlvbnMubWFwKGFjdGlvbiA9PiB0aGlzLnJlbmRlckFjdGlvbihhY3Rpb24pKX1cblxuICAgICAgICA8IS0tIExlZnQgd2lkZ2V0cyAtLT5cbiAgICAgICAgJHtsZWZ0V2lkZ2V0cy5tYXAoKHdpZGdldCwgaW5kZXgpID0+IGh0bWxgXG4gICAgICAgICAgJHtpbmRleCA+IDAgfHwgbGVmdEFjdGlvbnMubGVuZ3RoID4gMCA/IGh0bWxgPGRpdiBjbGFzcz1cIndpZGdldC1zZXBhcmF0b3JcIj48L2Rpdj5gIDogJyd9XG4gICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldCh3aWRnZXQpfVxuICAgICAgICBgKX1cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2VyXCI+PC9kaXY+XG5cbiAgICAgICAgPCEtLSBSaWdodCB3aWRnZXRzIC0tPlxuICAgICAgICAke3JpZ2h0V2lkZ2V0cy5tYXAoKHdpZGdldCwgaW5kZXgpID0+IGh0bWxgXG4gICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldCh3aWRnZXQpfVxuICAgICAgICAgICR7aW5kZXggPCByaWdodFdpZGdldHMubGVuZ3RoIC0gMSB8fCByaWdodEFjdGlvbnMubGVuZ3RoID4gMCA/IGh0bWxgPGRpdiBjbGFzcz1cIndpZGdldC1zZXBhcmF0b3JcIj48L2Rpdj5gIDogJyd9XG4gICAgICAgIGApfVxuXG4gICAgICAgIDwhLS0gUmlnaHQgYWN0aW9ucyAtLT5cbiAgICAgICAgJHtyaWdodEFjdGlvbnMubWFwKGFjdGlvbiA9PiB0aGlzLnJlbmRlckFjdGlvbihhY3Rpb24pKX1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcldpZGdldCh3aWRnZXQ6IElCb3R0b21CYXJXaWRnZXQpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3Qgc3RhdHVzQ2xhc3MgPSB3aWRnZXQuc3RhdHVzICYmIHdpZGdldC5zdGF0dXMgIT09ICdpZGxlJyA/IHdpZGdldC5zdGF0dXMgOiAnJztcbiAgICBjb25zdCBpY29uTmFtZSA9IHdpZGdldC5pY29uTmFtZVxuICAgICAgPyAod2lkZ2V0Lmljb25OYW1lLnN0YXJ0c1dpdGgoJ2x1Y2lkZTonKSA/IHdpZGdldC5pY29uTmFtZSA6IGBsdWNpZGU6JHt3aWRnZXQuaWNvbk5hbWV9YClcbiAgICAgIDogJyc7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ3aWRnZXQgJHtzdGF0dXNDbGFzc31cIlxuICAgICAgICB0aXRsZT1cIiR7d2lkZ2V0LnRvb2x0aXAgfHwgJyd9XCJcbiAgICAgICAgQGNsaWNrPSR7KCkgPT4gd2lkZ2V0Lm9uQ2xpY2s/LigpfVxuICAgICAgICBAY29udGV4dG1lbnU9JHsoZTogTW91c2VFdmVudCkgPT4gdGhpcy5oYW5kbGVXaWRnZXRDb250ZXh0TWVudShlLCB3aWRnZXQpfVxuICAgICAgPlxuICAgICAgICAke2ljb25OYW1lID8gaHRtbGBcbiAgICAgICAgICA8ZGVlcy1pY29uXG4gICAgICAgICAgICAuaWNvbj0ke2ljb25OYW1lfVxuICAgICAgICAgICAgaWNvblNpemU9XCIxMlwiXG4gICAgICAgICAgICBjbGFzcz1cIiR7d2lkZ2V0LmxvYWRpbmcgPyAnc3Bpbm5pbmcnIDogJyd9XCJcbiAgICAgICAgICA+PC9kZWVzLWljb24+XG4gICAgICAgIGAgOiAnJ31cbiAgICAgICAgJHt3aWRnZXQubGFiZWwgPyBodG1sYDxzcGFuPiR7d2lkZ2V0LmxhYmVsfTwvc3Bhbj5gIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJBY3Rpb24oYWN0aW9uOiBJQm90dG9tQmFyQWN0aW9uKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGljb25OYW1lID0gYWN0aW9uLmljb25OYW1lLnN0YXJ0c1dpdGgoJ2x1Y2lkZTonKVxuICAgICAgPyBhY3Rpb24uaWNvbk5hbWVcbiAgICAgIDogYGx1Y2lkZToke2FjdGlvbi5pY29uTmFtZX1gO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvbiAke2FjdGlvbi5kaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiAnJ31cIlxuICAgICAgICB0aXRsZT1cIiR7YWN0aW9uLnRvb2x0aXAgfHwgJyd9XCJcbiAgICAgICAgQGNsaWNrPSR7KCkgPT4gIWFjdGlvbi5kaXNhYmxlZCAmJiBhY3Rpb24ub25DbGljaz8uKCl9XG4gICAgICA+XG4gICAgICAgIDxkZWVzLWljb25cbiAgICAgICAgICAuaWNvbj0ke2ljb25OYW1lfVxuICAgICAgICAgIGljb25TaXplPVwiMTJcIlxuICAgICAgICA+PC9kZWVzLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVXaWRnZXRDb250ZXh0TWVudShlOiBNb3VzZUV2ZW50LCB3aWRnZXQ6IElCb3R0b21CYXJXaWRnZXQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXdpZGdldC5jb250ZXh0TWVudUl0ZW1zIHx8IHdpZGdldC5jb250ZXh0TWVudUl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgbWVudUl0ZW1zOiBQYXJhbWV0ZXJzPHR5cGVvZiBEZWVzQ29udGV4dG1lbnUub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnM+WzFdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygd2lkZ2V0LmNvbnRleHRNZW51SXRlbXMpIHtcbiAgICAgIGlmIChpdGVtLmRpdmlkZXIpIHtcbiAgICAgICAgbWVudUl0ZW1zLnB1c2goeyBkaXZpZGVyOiB0cnVlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVudUl0ZW1zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgICAgICBpY29uTmFtZTogaXRlbS5pY29uTmFtZSxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHsgYXdhaXQgaXRlbS5hY3Rpb24oKTsgfSxcbiAgICAgICAgICBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXdhaXQgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGUsIG1lbnVJdGVtcyk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQVBJIE1FVEhPRFMgKGltcGxlbWVudHMgSUJvdHRvbUJhckFQSSlcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEFkZCBhIHdpZGdldCB0byB0aGUgYm90dG9tIGJhclxuICAgKi9cbiAgcHVibGljIGFkZFdpZGdldCh3aWRnZXQ6IElCb3R0b21CYXJXaWRnZXQpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgZXhpc3Rpbmcgd2lkZ2V0IHdpdGggc2FtZSBJRCBpZiBwcmVzZW50XG4gICAgdGhpcy53aWRnZXRzID0gdGhpcy53aWRnZXRzLmZpbHRlcih3ID0+IHcuaWQgIT09IHdpZGdldC5pZCk7XG4gICAgdGhpcy53aWRnZXRzID0gWy4uLnRoaXMud2lkZ2V0cywgd2lkZ2V0XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYW4gZXhpc3Rpbmcgd2lkZ2V0IGJ5IElEXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlV2lkZ2V0KGlkOiBzdHJpbmcsIHVwZGF0ZTogUGFydGlhbDxJQm90dG9tQmFyV2lkZ2V0Pik6IHZvaWQge1xuICAgIHRoaXMud2lkZ2V0cyA9IHRoaXMud2lkZ2V0cy5tYXAodyA9PlxuICAgICAgdy5pZCA9PT0gaWQgPyB7IC4uLncsIC4uLnVwZGF0ZSB9IDogd1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgd2lkZ2V0IGJ5IElEXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlV2lkZ2V0KGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldHMgPSB0aGlzLndpZGdldHMuZmlsdGVyKHcgPT4gdy5pZCAhPT0gaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHdpZGdldCBieSBJRFxuICAgKi9cbiAgcHVibGljIGdldFdpZGdldChpZDogc3RyaW5nKTogSUJvdHRvbUJhcldpZGdldCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0cy5maW5kKHcgPT4gdy5pZCA9PT0gaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGFsbCB3aWRnZXRzXG4gICAqL1xuICBwdWJsaWMgY2xlYXJXaWRnZXRzKCk6IHZvaWQge1xuICAgIHRoaXMud2lkZ2V0cyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBhY3Rpb24gYnV0dG9uXG4gICAqL1xuICBwdWJsaWMgYWRkQWN0aW9uKGFjdGlvbjogSUJvdHRvbUJhckFjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5maWx0ZXIoYSA9PiBhLmlkICE9PSBhY3Rpb24uaWQpO1xuICAgIHRoaXMuYWN0aW9ucyA9IFsuLi50aGlzLmFjdGlvbnMsIGFjdGlvbl07XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIGFjdGlvbiBieSBJRFxuICAgKi9cbiAgcHVibGljIHJlbW92ZUFjdGlvbihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hY3Rpb25zID0gdGhpcy5hY3Rpb25zLmZpbHRlcihhID0+IGEuaWQgIT09IGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbGwgYWN0aW9uc1xuICAgKi9cbiAgcHVibGljIGNsZWFyQWN0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvbnMgPSBbXTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGh0bWwsIGNzcywgRGVlc0VsZW1lbnQsIGN1c3RvbUVsZW1lbnQsIHN0YXRlIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB0eXBlIHsgRGVlc0FwcHVpIH0gZnJvbSAnLi9kZWVzLWFwcHVpLmpzJztcbmltcG9ydCB0eXBlIHsgSUFwcENvbmZpZywgSVZpZXdBY3RpdmF0aW9uQ29udGV4dCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBwY29uZmlnLmpzJztcbmltcG9ydCB0eXBlICogYXMgaW50ZXJmYWNlcyBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2luZGV4LmpzJztcbmltcG9ydCAnQGRlc2lnbi5lc3RhdGUvZGVlcy13Y2N0b29scy9kZW1vdG9vbHMnO1xuXG4vLyBEZW1vIHZpZXcgY29tcG9uZW50IHdpdGggbGlmZWN5Y2xlIGhvb2tzXG5AY3VzdG9tRWxlbWVudCgnZGVtby1kYXNoYm9hcmQtdmlldycpXG5jbGFzcyBEZW1vRGFzaGJvYXJkVmlldyBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgYWN0aXZhdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBjdHg6IElWaWV3QWN0aXZhdGlvbkNvbnRleHQ7XG5cbiAgb25BY3RpdmF0ZShjb250ZXh0OiBJVmlld0FjdGl2YXRpb25Db250ZXh0KSB7XG4gICAgdGhpcy5jdHggPSBjb250ZXh0O1xuICAgIHRoaXMuYWN0aXZhdGVkID0gdHJ1ZTtcbiAgICBjb25zb2xlLmxvZygnRGFzaGJvYXJkIGFjdGl2YXRlZCB3aXRoIGNvbnRleHQ6JywgY29udGV4dCk7XG5cbiAgICAvLyBTZXQgdmlldy1zcGVjaWZpYyBzZWNvbmRhcnkgbWVudSB3aXRoIG5ldyBpdGVtIHR5cGVzXG4gICAgY29udGV4dC5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtcbiAgICAgIGhlYWRpbmc6ICdEYXNoYm9hcmQnLFxuICAgICAgZ3JvdXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnUXVpY2sgQWNjZXNzJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTp6YXAnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7IGtleTogJ092ZXJ2aWV3JywgaWNvbk5hbWU6ICdsYXlvdXREYXNoYm9hcmQnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdPdmVydmlldycpIH0sXG4gICAgICAgICAgICB7IGtleTogJ1JlY2VudCcsIGljb25OYW1lOiAnY2xvY2snLCBiYWRnZTogNSwgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnUmVjZW50JykgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ2RpdmlkZXInIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdhY3Rpb24nLCBrZXk6ICdSZWZyZXNoIERhdGEnLCBpY29uTmFtZTogJ2x1Y2lkZTpyZWZyZXNoQ3cnLCBhY3Rpb246ICgpID0+IGFsZXJ0KCdSZWZyZXNoaW5nIGRhc2hib2FyZCBkYXRhLi4uJykgfSxcbiAgICAgICAgICBdIGFzIGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtW11cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdGaWx0ZXJzJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpmaWx0ZXInLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7IHR5cGU6ICdoZWFkZXInLCBsYWJlbDogJ1RpbWUgUmFuZ2UnIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdmaWx0ZXInLCBrZXk6ICdMaXZlIFVwZGF0ZXMnLCBpY29uTmFtZTogJ2x1Y2lkZTpyYWRpbycsIGFjdGl2ZTogdHJ1ZSwgb25Ub2dnbGU6IChhY3RpdmUpID0+IGNvbnNvbGUubG9nKCdMaXZlIHVwZGF0ZXM6JywgYWN0aXZlKSB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnZmlsdGVyJywga2V5OiAnU2hvdyBBcmNoaXZlZCcsIGljb25OYW1lOiAnbHVjaWRlOmFyY2hpdmUnLCBhY3RpdmU6IGZhbHNlLCBvblRvZ2dsZTogKGFjdGl2ZSkgPT4gY29uc29sZS5sb2coJ1Nob3cgYXJjaGl2ZWQ6JywgYWN0aXZlKSB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnZGl2aWRlcicgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ211bHRpRmlsdGVyJywga2V5OiAnRGF0YSBTb3VyY2VzJywgaWNvbk5hbWU6ICdsdWNpZGU6ZGF0YWJhc2UnLCBvcHRpb25zOiBbXG4gICAgICAgICAgICAgIHsga2V5OiAnYXBpJywgbGFiZWw6ICdBUEkgU2VydmVyJywgY2hlY2tlZDogdHJ1ZSwgaWNvbk5hbWU6ICdsdWNpZGU6c2VydmVyJyB9LFxuICAgICAgICAgICAgICB7IGtleTogJ3dlYicsIGxhYmVsOiAnV2ViIFRyYWZmaWMnLCBjaGVja2VkOiB0cnVlLCBpY29uTmFtZTogJ2x1Y2lkZTpnbG9iZScgfSxcbiAgICAgICAgICAgICAgeyBrZXk6ICdtb2JpbGUnLCBsYWJlbDogJ01vYmlsZSBBcHAnLCBjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6ICdsdWNpZGU6c21hcnRwaG9uZScgfSxcbiAgICAgICAgICAgIF0sIG9uQ2hhbmdlOiAoa2V5cykgPT4gY29uc29sZS5sb2coJ0RhdGEgc291cmNlczonLCBrZXlzKSB9LFxuICAgICAgICAgIF0gYXMgaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW1bXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0FuYWx5dGljcycsXG4gICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YmFyQ2hhcnQzJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgeyBrZXk6ICdNZXRyaWNzJywgaWNvbk5hbWU6ICdhY3Rpdml0eScsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ01ldHJpY3MnKSB9LFxuICAgICAgICAgICAgeyBrZXk6ICdSZXBvcnRzJywgaWNvbk5hbWU6ICdmaWxlVGV4dCcsIGJhZGdlOiAnbmV3JywgYmFkZ2VWYXJpYW50OiAnc3VjY2VzcycsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ1JlcG9ydHMnKSB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnZGl2aWRlcicgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ2xpbmsnLCBrZXk6ICdBbmFseXRpY3MgRG9jcycsIGljb25OYW1lOiAnbHVjaWRlOmV4dGVybmFsTGluaycsIGhyZWY6ICdodHRwczovL2RvY3MuZXhhbXBsZS5jb20vYW5hbHl0aWNzJyB9LFxuICAgICAgICAgIF0gYXMgaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW1bXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICAvLyBTZXQgY29udGVudCB0YWJzIGZvciBkYXNoYm9hcmRcbiAgICBjb250ZXh0LmFwcHVpLnNldENvbnRlbnRUYWJzKFtcbiAgICAgIHsga2V5OiAnT3ZlcnZpZXcnLCBpY29uTmFtZTogJ2x1Y2lkZTpsYXlvdXREYXNoYm9hcmQnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdPdmVydmlldyB0YWInKSB9LFxuICAgICAgeyBrZXk6ICdBbmFseXRpY3MnLCBpY29uTmFtZTogJ2x1Y2lkZTpiYXJDaGFydCcsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ0FuYWx5dGljcyB0YWInKSB9LFxuICAgICAgeyBrZXk6ICdSZXBvcnRzJywgaWNvbk5hbWU6ICdsdWNpZGU6ZmlsZVRleHQnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdSZXBvcnRzIHRhYicpIH0sXG4gICAgXSk7XG4gIH1cblxuICBvbkRlYWN0aXZhdGUoKSB7XG4gICAgdGhpcy5hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICBjb25zb2xlLmxvZygnRGFzaGJvYXJkIGRlYWN0aXZhdGVkJyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3R5bGU+XG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwYWRkaW5nOiA0MHB4O1xuICAgICAgICAgIGNvbG9yOiAjYTNhM2EzO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gICAgICAgIH1cbiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbiAgICAgICAgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW4tYm90dG9tOiAzMnB4OyB9XG4gICAgICAgIC5ncmlkIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIC5jYXJkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmNhcmQgaDMgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNjAwOyBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbiAgICAgICAgLm1ldHJpYyB7IGZvbnQtc2l6ZTogMzJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICNmYWZhZmE7IH1cbiAgICAgICAgLnN0YXR1cyB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJhZGl1czogOXB4OyBmb250LXNpemU6IDEycHg7IH1cbiAgICAgICAgLnN0YXR1cy5hY3RpdmUgeyBiYWNrZ3JvdW5kOiAjMTQ1MzJkOyBjb2xvcjogIzRhZGU4MDsgfVxuXG4gICAgICAgIC5jdHgtYWN0aW9ucyB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMik7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmN0eC1hY3Rpb25zIGgyIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuICAgICAgICAuYnV0dG9uLWdyaWQge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgIGdhcDogOHB4O1xuICAgICAgICB9XG4gICAgICAgIC5jdHgtYnRuIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTtcbiAgICAgICAgICBjb2xvcjogIzYwYTVmYTtcbiAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgfVxuICAgICAgICAuY3R4LWJ0bjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMik7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC41KTtcbiAgICAgICAgfVxuICAgICAgICAuY3R4LWJ0bi5kYW5nZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpO1xuICAgICAgICAgIGNvbG9yOiAjZjg3MTcxO1xuICAgICAgICB9XG4gICAgICAgIC5jdHgtYnRuLmRhbmdlcjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuNSk7XG4gICAgICAgIH1cbiAgICAgICAgLmN0eC1idG4uc3VjY2VzcyB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4xKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDE5NywgOTQsIDAuMyk7XG4gICAgICAgICAgY29sb3I6ICM0YWRlODA7XG4gICAgICAgIH1cbiAgICAgICAgLmN0eC1idG4uc3VjY2Vzczpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4yKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDE5NywgOTQsIDAuNSk7XG4gICAgICAgIH1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8aDE+RGFzaGJvYXJkPC9oMT5cbiAgICAgIDxwPldlbGNvbWUgYmFjayEgSGVyZSdzIGFuIG92ZXJ2aWV3IG9mIHlvdXIgc3lzdGVtLjwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgICAgPGgzPkFjdGl2ZSBVc2VyczwvaDM+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldHJpY1wiPjEsMjM0PC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0dXMgYWN0aXZlXCI+T25saW5lPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgICA8aDM+QVBJIENhbGxzPC9oMz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0cmljXCI+NDUuMks8L2Rpdj5cbiAgICAgICAgICA8cCBzdHlsZT1cImNvbG9yOiAjNGFkZTgwOyBmb250LXNpemU6IDEycHg7IG1hcmdpbjogMDtcIj4rMTIlIGZyb20gbGFzdCBob3VyPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgICA8aDM+U3lzdGVtIEhlYWx0aDwvaDM+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldHJpY1wiPjk5LjklPC9kaXY+XG4gICAgICAgICAgPHAgc3R5bGU9XCJjb2xvcjogIzczNzM3MzsgZm9udC1zaXplOiAxMnB4OyBtYXJnaW46IDA7XCI+QWxsIHN5c3RlbXMgb3BlcmF0aW9uYWw8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjdHgtYWN0aW9uc1wiPlxuICAgICAgICA8aDI+Q29udGV4dCBBY3Rpb25zIChjdHguYXBwdWkpPC9oMj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncmlkXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImN0eC1idG5cIiBAY2xpY2s9JHsoKSA9PiB0aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVWaXNpYmxlKGZhbHNlKX0+SGlkZSBNYWluIE1lbnU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY3R4LWJ0biBzdWNjZXNzXCIgQGNsaWNrPSR7KCkgPT4gdGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51VmlzaWJsZSh0cnVlKX0+U2hvdyBNYWluIE1lbnU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY3R4LWJ0blwiIEBjbGljaz0keygpID0+IHRoaXMuY3R4Py5hcHB1aS5zZXRTZWNvbmRhcnlNZW51VmlzaWJsZShmYWxzZSl9PkhpZGUgU2Vjb25kYXJ5IE1lbnU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY3R4LWJ0biBzdWNjZXNzXCIgQGNsaWNrPSR7KCkgPT4gdGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKHRydWUpfT5TaG93IFNlY29uZGFyeSBNZW51PC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImN0eC1idG5cIiBAY2xpY2s9JHsoKSA9PiB0aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNWaXNpYmxlKGZhbHNlKX0+SGlkZSBDb250ZW50IFRhYnM8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY3R4LWJ0biBzdWNjZXNzXCIgQGNsaWNrPSR7KCkgPT4gdGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzVmlzaWJsZSh0cnVlKX0+U2hvdyBDb250ZW50IFRhYnM8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY3R4LWJ0blwiIEBjbGljaz0keygpID0+IHRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUNvbGxhcHNlZCh0cnVlKX0+Q29sbGFwc2UgTWFpbiBNZW51PC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImN0eC1idG4gc3VjY2Vzc1wiIEBjbGljaz0keygpID0+IHRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUNvbGxhcHNlZChmYWxzZSl9PkV4cGFuZCBNYWluIE1lbnU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY3R4LWJ0blwiIEBjbGljaz0keygpID0+IHRoaXMuY3R4Py5hcHB1aS5zZXRCcmVhZGNydW1icyhbJ0Rhc2hib2FyZCcsICdPdmVydmlldycsICdTdGF0cyddKX0+U2V0IEJyZWFkY3J1bWJzPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImN0eC1idG5cIiBAY2xpY2s9JHsoKSA9PiB0aGlzLmN0eD8uYXBwdWkubmF2aWdhdGVUb1ZpZXcoJ3Byb2plY3RzJyl9PkdvIHRvIFByb2plY3RzPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImN0eC1idG5cIiBAY2xpY2s9JHsoKSA9PiB0aGlzLmN0eD8uYXBwdWkubmF2aWdhdGVUb1ZpZXcoJ3NldHRpbmdzJywgeyBzZWN0aW9uOiAnc2VjdXJpdHknIH0pfT5HbyB0byBTZXR0aW5ncy9TZWN1cml0eTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjdHgtYnRuXCIgQGNsaWNrPSR7KCkgPT4gdGhpcy5jdHg/LmFwcHVpLmFjdGl2aXR5TG9nLmFkZCh7IHR5cGU6ICdjdXN0b20nLCB1c2VyOiAnRGVtbyBVc2VyJywgbWVzc2FnZTogJ0J1dHRvbiBjbGlja2VkIGZyb20gY3R4IScsIGljb25OYW1lOiAnbHVjaWRlOm1vdXNlLXBvaW50ZXItY2xpY2snIH0pfT5BZGQgQWN0aXZpdHkgRW50cnk8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY3R4LWJ0blwiIEBjbGljaz0keygpID0+IHRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUJhZGdlKCd0YXNrcycsIDk5KX0+U2V0IFRhc2tzIEJhZGdlIHRvIDk5PC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImN0eC1idG4gZGFuZ2VyXCIgQGNsaWNrPSR7KCkgPT4gdGhpcy5jdHg/LmFwcHVpLmNsZWFyTWFpbk1lbnVCYWRnZSgndGFza3MnKX0+Q2xlYXIgVGFza3MgQmFkZ2U8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY3R4LWJ0blwiIEBjbGljaz0keygpID0+IHRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic0F1dG9IaWRlKHRydWUsIDEpfT5BdXRvLWhpZGUgVGFicyAoXHUyMjY0MSk8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY3R4LWJ0biBkYW5nZXJcIiBAY2xpY2s9JHsoKSA9PiB0aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNBdXRvSGlkZShmYWxzZSl9PkRpc2FibGUgQXV0by1oaWRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImN0eC1idG4gc3VjY2Vzc1wiIEBjbGljaz0keygpID0+IHRoaXMuYWRkQ2xvc2VhYmxlVGFiKCl9PkFkZCBDbG9zZWFibGUgVGFiPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgdGFiQ291bnRlciA9IDA7XG5cbiAgcHJpdmF0ZSBhZGRDbG9zZWFibGVUYWIoKSB7XG4gICAgaWYgKCF0aGlzLmN0eCkgcmV0dXJuO1xuICAgIHRoaXMudGFiQ291bnRlcisrO1xuICAgIGNvbnN0IHRhYktleSA9IGBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YDtcbiAgICB0aGlzLmN0eC5hcHB1aS5hZGRDb250ZW50VGFiKHtcbiAgICAgIGtleTogdGFiS2V5LFxuICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6ZmlsZScsXG4gICAgICBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKGBTZWxlY3RlZCAke3RhYktleX1gKSxcbiAgICAgIGNsb3NlYWJsZTogdHJ1ZSxcbiAgICAgIG9uQ2xvc2U6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jdHg/LmFwcHVpLnJlbW92ZUNvbnRlbnRUYWIodGFiS2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG4vLyBTZXR0aW5ncyB2aWV3IHdpdGggcm91dGUgcGFyYW1zIGFuZCBjYW5EZWFjdGl2YXRlIGd1YXJkXG5AY3VzdG9tRWxlbWVudCgnZGVtby1zZXR0aW5ncy12aWV3JylcbmNsYXNzIERlbW9TZXR0aW5nc1ZpZXcgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHNlY3Rpb246IHN0cmluZyA9ICdnZW5lcmFsJztcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBoYXNDaGFuZ2VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBhcHB1aTogRGVlc0FwcHVpO1xuXG4gIG9uQWN0aXZhdGUoY29udGV4dDogSVZpZXdBY3RpdmF0aW9uQ29udGV4dCkge1xuICAgIHRoaXMuYXBwdWkgPSBjb250ZXh0LmFwcHVpIGFzIGFueTtcbiAgICBjb25zb2xlLmxvZygnU2V0dGluZ3MgYWN0aXZhdGVkIHdpdGggcGFyYW1zOicsIGNvbnRleHQucGFyYW1zKTtcblxuICAgIGlmIChjb250ZXh0LnBhcmFtcz8uc2VjdGlvbikge1xuICAgICAgdGhpcy5zZWN0aW9uID0gY29udGV4dC5wYXJhbXMuc2VjdGlvbjtcbiAgICB9XG5cbiAgICAvLyBTZXQgc2V0dGluZ3Mtc3BlY2lmaWMgc2Vjb25kYXJ5IG1lbnVcbiAgICBjb250ZXh0LmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe1xuICAgICAgaGVhZGluZzogJ1NldHRpbmdzJyxcbiAgICAgIGdyb3VwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0FjY291bnQnLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnVzZXInLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7IGtleTogJ2dlbmVyYWwnLCBpY29uTmFtZTogJ3NldHRpbmdzJywgYWN0aW9uOiAoKSA9PiB0aGlzLnNob3dTZWN0aW9uKCdnZW5lcmFsJykgfSxcbiAgICAgICAgICAgIHsga2V5OiAncHJvZmlsZScsIGljb25OYW1lOiAndXNlcicsIGFjdGlvbjogKCkgPT4gdGhpcy5zaG93U2VjdGlvbigncHJvZmlsZScpIH0sXG4gICAgICAgICAgICB7IGtleTogJ3NlY3VyaXR5JywgaWNvbk5hbWU6ICdzaGllbGQnLCBhY3Rpb246ICgpID0+IHRoaXMuc2hvd1NlY3Rpb24oJ3NlY3VyaXR5JykgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnUHJlZmVyZW5jZXMnLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnNsaWRlcnMnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7IGtleTogJ25vdGlmaWNhdGlvbnMnLCBpY29uTmFtZTogJ2JlbGwnLCBiYWRnZTogMywgYWN0aW9uOiAoKSA9PiB0aGlzLnNob3dTZWN0aW9uKCdub3RpZmljYXRpb25zJykgfSxcbiAgICAgICAgICAgIHsga2V5OiAnYXBwZWFyYW5jZScsIGljb25OYW1lOiAncGFsZXR0ZScsIGFjdGlvbjogKCkgPT4gdGhpcy5zaG93U2VjdGlvbignYXBwZWFyYW5jZScpIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBjb250ZXh0LmFwcHVpLnNldFNlY29uZGFyeU1lbnVTZWxlY3Rpb24odGhpcy5zZWN0aW9uKTtcblxuICAgIC8vIENsZWFyIGNvbnRlbnQgdGFicyBmb3Igc2V0dGluZ3NcbiAgICBjb250ZXh0LmFwcHVpLnNldENvbnRlbnRUYWJzKFtdKTtcbiAgfVxuXG4gIG9uRGVhY3RpdmF0ZSgpIHtcbiAgICBjb25zb2xlLmxvZygnU2V0dGluZ3MgZGVhY3RpdmF0ZWQnKTtcbiAgICB0aGlzLmhhc0NoYW5nZXMgPSBmYWxzZTtcbiAgfVxuXG4gIGNhbkRlYWN0aXZhdGUoKTogYm9vbGVhbiB8IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaGFzQ2hhbmdlcykge1xuICAgICAgcmV0dXJuICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMuIExlYXZlIGFueXdheT8nO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHNob3dTZWN0aW9uKHNlY3Rpb246IHN0cmluZykge1xuICAgIHRoaXMuc2VjdGlvbiA9IHNlY3Rpb247XG4gICAgdGhpcy5hcHB1aT8uc2V0U2Vjb25kYXJ5TWVudVNlbGVjdGlvbihzZWN0aW9uKTtcbiAgfVxuXG4gIHNpbXVsYXRlQ2hhbmdlKCkge1xuICAgIHRoaXMuaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3R5bGU+XG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwYWRkaW5nOiA0MHB4O1xuICAgICAgICAgIGNvbG9yOiAjYTNhM2EzO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gICAgICAgIH1cbiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbiAgICAgICAgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG4gICAgICAgIC5zZWN0aW9uLW5hbWUge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICBjb2xvcjogI2ZhZmFmYTtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIC5hY3Rpb25zIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgfVxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICMzYjgyZjY7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgfVxuICAgICAgICBidXR0b246aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICMyNTYzZWI7XG4gICAgICAgIH1cbiAgICAgICAgLndhcm5pbmcge1xuICAgICAgICAgIGNvbG9yOiAjZmJiZjI0O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICB9XG4gICAgICA8L3N0eWxlPlxuICAgICAgPGgxPlNldHRpbmdzPC9oMT5cbiAgICAgIDxwPk1hbmFnZSB5b3VyIGFjY291bnQgYW5kIGFwcGxpY2F0aW9uIHByZWZlcmVuY2VzLjwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLW5hbWVcIj5cbiAgICAgICAgQ3VycmVudCBzZWN0aW9uOiA8c3Ryb25nPiR7dGhpcy5zZWN0aW9ufTwvc3Ryb25nPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpID0+IHRoaXMuc2ltdWxhdGVDaGFuZ2UoKX0+TWFrZSBDaGFuZ2VzPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgICR7dGhpcy5oYXNDaGFuZ2VzID8gaHRtbGA8cCBjbGFzcz1cIndhcm5pbmdcIj5Zb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMuIE5hdmlnYXRpb24gd2lsbCBwcm9tcHQgZm9yIGNvbmZpcm1hdGlvbi48L3A+YCA6ICcnfVxuICAgIGA7XG4gIH1cbn1cblxuLy8gUHJvamVjdHMgdmlld1xuQGN1c3RvbUVsZW1lbnQoJ2RlbW8tcHJvamVjdHMtdmlldycpXG5jbGFzcyBEZW1vUHJvamVjdHNWaWV3IGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBvbkFjdGl2YXRlKGNvbnRleHQ6IElWaWV3QWN0aXZhdGlvbkNvbnRleHQpIHtcbiAgICBjb250ZXh0LmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe1xuICAgICAgaGVhZGluZzogJ1Byb2plY3RzJyxcbiAgICAgIGdyb3VwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ015IFByb2plY3RzJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpmb2xkZXInLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7IGtleTogJ0FjdGl2ZScsIGljb25OYW1lOiAnZm9sZGVyJywgYmFkZ2U6IDMsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ0FjdGl2ZScpIH0sXG4gICAgICAgICAgICB7IGtleTogJ0FyY2hpdmVkJywgaWNvbk5hbWU6ICdhcmNoaXZlJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnQXJjaGl2ZWQnKSB9LFxuICAgICAgICAgICAgeyBrZXk6ICdTaGFyZWQnLCBpY29uTmFtZTogJ3VzZXJzJywgYmFkZ2U6IDIsIGJhZGdlVmFyaWFudDogJ3dhcm5pbmcnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdTaGFyZWQnKSB9LFxuICAgICAgICAgIF0gYXMgaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW1bXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1F1aWNrIEFjdGlvbnMnLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnphcCcsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIHsgdHlwZTogJ2FjdGlvbicsIGtleTogJ05ldyBQcm9qZWN0JywgaWNvbk5hbWU6ICdsdWNpZGU6Zm9sZGVyUGx1cycsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ0NyZWF0ZSBuZXcgcHJvamVjdCcpIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdhY3Rpb24nLCBrZXk6ICdJbXBvcnQnLCBpY29uTmFtZTogJ2x1Y2lkZTpkb3dubG9hZCcsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ0ltcG9ydCBwcm9qZWN0JykgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ2RpdmlkZXInIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdsaW5rJywga2V5OiAnVGVtcGxhdGVzJywgaWNvbk5hbWU6ICdsdWNpZGU6bGF5b3V0VGVtcGxhdGUnLCBocmVmOiAnaHR0cHM6Ly90ZW1wbGF0ZXMuZXhhbXBsZS5jb20nIH0sXG4gICAgICAgICAgXSBhcyBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbVtdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGNvbnRleHQuYXBwdWkuc2V0Q29udGVudFRhYnMoW1xuICAgICAgeyBrZXk6ICdHcmlkJywgaWNvbk5hbWU6ICdsdWNpZGU6Z3JpZCcsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ0dyaWQgdmlldycpIH0sXG4gICAgICB7IGtleTogJ0xpc3QnLCBpY29uTmFtZTogJ2x1Y2lkZTpsaXN0JywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnTGlzdCB2aWV3JykgfSxcbiAgICAgIHsga2V5OiAnQm9hcmQnLCBpY29uTmFtZTogJ2x1Y2lkZTprYW5iYW4nLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdCb2FyZCB2aWV3JykgfSxcbiAgICBdKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzdHlsZT5cbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBhZGRpbmc6IDQwcHg7XG4gICAgICAgICAgY29sb3I6ICNhM2EzYTM7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgICAgICAgfVxuICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH1cbiAgICAgICAgLnByb2plY3RzIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIC5wcm9qZWN0IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzO1xuICAgICAgICB9XG4gICAgICAgIC5wcm9qZWN0OmhvdmVyIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbiAgICAgICAgfVxuICAgICAgICAucHJvamVjdCBoMyB7IGNvbG9yOiAjZmFmYWZhOyBtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNnB4OyB9XG4gICAgICAgIC5wcm9qZWN0IHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luOiAwOyBmb250LXNpemU6IDEzcHg7IH1cbiAgICAgICAgLmJhZGdlIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgYmFja2dyb3VuZDogIzE0NTMyZDtcbiAgICAgICAgICBjb2xvcjogIzRhZGU4MDtcbiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgfVxuICAgICAgPC9zdHlsZT5cbiAgICAgIDxoMT5Qcm9qZWN0czwvaDE+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvamVjdHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2plY3RcIj5cbiAgICAgICAgICA8aDM+RnJvbnRlbmQgQXBwIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIj5BY3RpdmU8L3NwYW4+PC9oMz5cbiAgICAgICAgICA8cD5SZWFjdC1iYXNlZCBkYXNoYm9hcmQgYXBwbGljYXRpb248L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvamVjdFwiPlxuICAgICAgICAgIDxoMz5BUEkgU2VydmVyIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIj5BY3RpdmU8L3NwYW4+PC9oMz5cbiAgICAgICAgICA8cD5Ob2RlLmpzIFJFU1QgQVBJIGJhY2tlbmQ8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvamVjdFwiPlxuICAgICAgICAgIDxoMz5Nb2JpbGUgQXBwIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIj5BY3RpdmU8L3NwYW4+PC9oMz5cbiAgICAgICAgICA8cD5SZWFjdCBOYXRpdmUgaU9TL0FuZHJvaWQgYXBwPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2plY3RcIj5cbiAgICAgICAgICA8aDM+RG9jdW1lbnRhdGlvbjwvaDM+XG4gICAgICAgICAgPHA+VGVjaG5pY2FsIGRvY3VtZW50YXRpb24gc2l0ZTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbi8vIFRhc2tzIHZpZXcgc2hvd2luZyBpbmxpbmUgdGVtcGxhdGUgY29udGVudFxuQGN1c3RvbUVsZW1lbnQoJ2RlbW8tdGFza3MtdmlldycpXG5jbGFzcyBEZW1vVGFza3NWaWV3IGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBvbkFjdGl2YXRlKGNvbnRleHQ6IElWaWV3QWN0aXZhdGlvbkNvbnRleHQpIHtcbiAgICBjb250ZXh0LmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe1xuICAgICAgaGVhZGluZzogJ1Rhc2tzJyxcbiAgICAgIGdyb3VwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1ZpZXdzJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpleWUnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7IGtleTogJ0FsbCBUYXNrcycsIGljb25OYW1lOiAnbGlzdCcsIGJhZGdlOiAxMiwgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnQWxsJykgfSxcbiAgICAgICAgICAgIHsga2V5OiAnVG9kYXknLCBpY29uTmFtZTogJ2NhbGVuZGFyJywgYmFkZ2U6IDMsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ1RvZGF5JykgfSxcbiAgICAgICAgICAgIHsga2V5OiAnVXBjb21pbmcnLCBpY29uTmFtZTogJ2Nsb2NrJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnVXBjb21pbmcnKSB9LFxuICAgICAgICAgICAgeyBrZXk6ICdDb21wbGV0ZWQnLCBpY29uTmFtZTogJ2NoZWNrQ2lyY2xlJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnQ29tcGxldGVkJykgfSxcbiAgICAgICAgICBdIGFzIGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtW11cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdGaWx0ZXJzJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpmaWx0ZXInLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7IHR5cGU6ICdoZWFkZXInLCBsYWJlbDogJ1ByaW9yaXR5JyB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnbXVsdGlGaWx0ZXInLCBrZXk6ICdQcmlvcml0eScsIGljb25OYW1lOiAnbHVjaWRlOmZsYWcnLCBvcHRpb25zOiBbXG4gICAgICAgICAgICAgIHsga2V5OiAnaGlnaCcsIGxhYmVsOiAnSGlnaCcsIGNoZWNrZWQ6IHRydWUsIGljb25OYW1lOiAnbHVjaWRlOmFsZXJ0Q2lyY2xlJyB9LFxuICAgICAgICAgICAgICB7IGtleTogJ21lZGl1bScsIGxhYmVsOiAnTWVkaXVtJywgY2hlY2tlZDogdHJ1ZSwgaWNvbk5hbWU6ICdsdWNpZGU6bWludXNDaXJjbGUnIH0sXG4gICAgICAgICAgICAgIHsga2V5OiAnbG93JywgbGFiZWw6ICdMb3cnLCBjaGVja2VkOiBmYWxzZSwgaWNvbk5hbWU6ICdsdWNpZGU6Y2lyY2xlJyB9LFxuICAgICAgICAgICAgXSwgb25DaGFuZ2U6IChrZXlzKSA9PiBjb25zb2xlLmxvZygnUHJpb3JpdHkgZmlsdGVyOicsIGtleXMpIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdkaXZpZGVyJyB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnaGVhZGVyJywgbGFiZWw6ICdPcHRpb25zJyB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnZmlsdGVyJywga2V5OiAnU2hvdyBTdWJ0YXNrcycsIGljb25OYW1lOiAnbHVjaWRlOmxpc3RUcmVlJywgYWN0aXZlOiB0cnVlLCBvblRvZ2dsZTogKGFjdGl2ZSkgPT4gY29uc29sZS5sb2coJ1Nob3cgc3VidGFza3M6JywgYWN0aXZlKSB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnZmlsdGVyJywga2V5OiAnU2hvdyBDb21wbGV0ZWQnLCBpY29uTmFtZTogJ2x1Y2lkZTpjaGVja1NxdWFyZScsIGFjdGl2ZTogZmFsc2UsIG9uVG9nZ2xlOiAoYWN0aXZlKSA9PiBjb25zb2xlLmxvZygnU2hvdyBjb21wbGV0ZWQ6JywgYWN0aXZlKSB9LFxuICAgICAgICAgIF0gYXMgaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW1bXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0FjdGlvbnMnLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnphcCcsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIHsgdHlwZTogJ2FjdGlvbicsIGtleTogJ0FkZCBUYXNrJywgaWNvbk5hbWU6ICdsdWNpZGU6cGx1cycsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ0FkZCBuZXcgdGFzaycpIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdhY3Rpb24nLCBrZXk6ICdJbXBvcnQgVGFza3MnLCBpY29uTmFtZTogJ2x1Y2lkZTp1cGxvYWQnLCBhY3Rpb246ICgpID0+IGFsZXJ0KCdJbXBvcnQgdGFza3MnKSB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnZGl2aWRlcicgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ2FjdGlvbicsIGtleTogJ0NsZWFyIENvbXBsZXRlZCcsIGljb25OYW1lOiAnbHVjaWRlOnRyYXNoMicsIHZhcmlhbnQ6ICdkYW5nZXInLCBjb25maXJtTWVzc2FnZTogJ0RlbGV0ZSBhbGwgY29tcGxldGVkIHRhc2tzPycsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ0NsZWFyZWQgY29tcGxldGVkIHRhc2tzJykgfSxcbiAgICAgICAgICBdIGFzIGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtW11cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgY29udGV4dC5hcHB1aS5zZXRDb250ZW50VGFicyhbXG4gICAgICB7IGtleTogJ0xpc3QnLCBpY29uTmFtZTogJ2x1Y2lkZTpsaXN0JywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnTGlzdCcpIH0sXG4gICAgICB7IGtleTogJ0NhbGVuZGFyJywgaWNvbk5hbWU6ICdsdWNpZGU6Y2FsZW5kYXInLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdDYWxlbmRhcicpIH0sXG4gICAgXSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3R5bGU+XG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwYWRkaW5nOiA0MHB4O1xuICAgICAgICAgIGNvbG9yOiAjYTNhM2EzO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gICAgICAgIH1cbiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG4gICAgICAgIC50YXNrLWxpc3Qge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgfVxuICAgICAgICAudGFzayB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgICAgfVxuICAgICAgICAuY2hlY2tib3gge1xuICAgICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjNTI1MjUyO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgLnRhc2stdGV4dCB7IGNvbG9yOiAjZmFmYWZhOyBmbGV4OiAxOyB9XG4gICAgICAgIC5kdWUtZGF0ZSB7IGNvbG9yOiAjNzM3MzczOyBmb250LXNpemU6IDEycHg7IH1cbiAgICAgICAgLnByaW9yaXR5IHtcbiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIH1cbiAgICAgICAgLnByaW9yaXR5LmhpZ2ggeyBiYWNrZ3JvdW5kOiAjNDUwYTBhOyBjb2xvcjogI2Y4NzE3MTsgfVxuICAgICAgICAucHJpb3JpdHkubWVkaXVtIHsgYmFja2dyb3VuZDogIzQ1MWEwMzsgY29sb3I6ICNmYmJmMjQ7IH1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8aDE+VGFza3M8L2gxPlxuICAgICAgPGRpdiBjbGFzcz1cInRhc2stbGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFza1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveFwiPjwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFzay10ZXh0XCI+UmV2aWV3IHB1bGwgcmVxdWVzdCAjNDI8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJkdWUtZGF0ZVwiPlRvZGF5PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJpb3JpdHkgaGlnaFwiPkhpZ2g8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFza1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveFwiPjwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFzay10ZXh0XCI+VXBkYXRlIGRvY3VtZW50YXRpb248L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJkdWUtZGF0ZVwiPlRvbW9ycm93PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJpb3JpdHkgbWVkaXVtXCI+TWVkaXVtPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhc2tcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3hcIj48L2Rpdj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhc2stdGV4dFwiPldyaXRlIHVuaXQgdGVzdHM8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJkdWUtZGF0ZVwiPkRlYyAyMDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IHtcbiAgLy8gQXBwIGNvbmZpZ3VyYXRpb24gdXNpbmcgdGhlIG5ldyB1bmlmaWVkIEFQSVxuICBjb25zdCBhcHBDb25maWc6IElBcHBDb25maWcgPSB7XG4gICAgYnJhbmRpbmc6IHtcbiAgICAgIGxvZ29JY29uOiAnbHVjaWRlOmJveCcsXG4gICAgICBsb2dvVGV4dDogJ0FjbWUgQXBwJ1xuICAgIH0sXG5cbiAgICBhcHBCYXI6IHtcbiAgICAgIG1lbnVJdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0ZpbGUnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge30sXG4gICAgICAgICAgc3VibWVudTogW1xuICAgICAgICAgICAgeyBuYW1lOiAnTmV3IFByb2plY3QnLCBzaG9ydGN1dDogJ0NtZCtOJywgaWNvbk5hbWU6ICdmaWxlUGx1cycsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ05ldycpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdPcGVuLi4uJywgc2hvcnRjdXQ6ICdDbWQrTycsIGljb25OYW1lOiAnZm9sZGVyT3BlbicsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ09wZW4nKSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnUmVjZW50IFByb2plY3RzJywgYWN0aW9uOiBhc3luYyAoKSA9PiB7fSwgc3VibWVudTogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICdteS1hcHAnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdPcGVuIG15LWFwcCcpIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2NvbXBvbmVudC1saWInLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdPcGVuIGNvbXBvbmVudC1saWInKSB9LFxuICAgICAgICAgICAgXX0sXG4gICAgICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ1NhdmUgQWxsJywgc2hvcnRjdXQ6ICdDbWQrUycsIGljb25OYW1lOiAnc2F2ZScsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1NhdmUnKSB9LFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdFZGl0JyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHt9LFxuICAgICAgICAgIHN1Ym1lbnU6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ1VuZG8nLCBzaG9ydGN1dDogJ0NtZCtaJywgaWNvbk5hbWU6ICd1bmRvJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnVW5kbycpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdSZWRvJywgc2hvcnRjdXQ6ICdDbWQrU2hpZnQrWicsIGljb25OYW1lOiAncmVkbycsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ1JlZG8nKSB9LFxuICAgICAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdDdXQnLCBzaG9ydGN1dDogJ0NtZCtYJywgaWNvbk5hbWU6ICdzY2lzc29ycycsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0N1dCcpIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdDb3B5Jywgc2hvcnRjdXQ6ICdDbWQrQycsIGljb25OYW1lOiAnY29weScsIGFjdGlvbjogYXN5bmMgKCkgPT4gY29uc29sZS5sb2coJ0NvcHknKSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnUGFzdGUnLCBzaG9ydGN1dDogJ0NtZCtWJywgaWNvbk5hbWU6ICdjbGlwYm9hcmQnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdQYXN0ZScpIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1ZpZXcnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge30sXG4gICAgICAgICAgc3VibWVudTogW1xuICAgICAgICAgICAgeyBuYW1lOiAnVG9nZ2xlIFNpZGViYXInLCBzaG9ydGN1dDogJ0NtZCtCJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnVG9nZ2xlIHNpZGViYXInKSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnVG9nZ2xlIEFjdGl2aXR5IExvZycsIHNob3J0Y3V0OiAnQ21kK1NoaWZ0K0EnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdUb2dnbGUgYWN0aXZpdHknKSB9LFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdIZWxwJyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHt9LFxuICAgICAgICAgIHN1Ym1lbnU6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ0RvY3VtZW50YXRpb24nLCBpY29uTmFtZTogJ2Jvb2snLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdEb2NzJykgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0tleWJvYXJkIFNob3J0Y3V0cycsIGljb25OYW1lOiAna2V5Ym9hcmQnLCBzaG9ydGN1dDogJ0NtZCsvJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnU2hvcnRjdXRzJykgfSxcbiAgICAgICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnQWJvdXQnLCBpY29uTmFtZTogJ2luZm8nLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdBYm91dCcpIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgYnJlYWRjcnVtYnM6ICdEYXNoYm9hcmQnLFxuICAgICAgc2hvd1dpbmRvd0NvbnRyb2xzOiB0cnVlLFxuICAgICAgc2hvd1NlYXJjaDogdHJ1ZSxcbiAgICAgIHVzZXI6IHtcbiAgICAgICAgbmFtZTogJ0phbmUgU21pdGgnLFxuICAgICAgICBlbWFpbDogJ2phbmUuc21pdGhAZXhhbXBsZS5jb20nLFxuICAgICAgICBzdGF0dXM6ICdvbmxpbmUnXG4gICAgICB9LFxuICAgICAgcHJvZmlsZU1lbnVJdGVtczogW1xuICAgICAgICB7IG5hbWU6ICdQcm9maWxlJywgaWNvbk5hbWU6ICd1c2VyJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnUHJvZmlsZScpIH0sXG4gICAgICAgIHsgbmFtZTogJ0FjY291bnQgU2V0dGluZ3MnLCBpY29uTmFtZTogJ3NldHRpbmdzJywgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnU2V0dGluZ3MnKSB9LFxuICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSxcbiAgICAgICAgeyBuYW1lOiAnSGVscCAmIFN1cHBvcnQnLCBpY29uTmFtZTogJ2hlbHBDaXJjbGUnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdIZWxwJykgfSxcbiAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sXG4gICAgICAgIHsgbmFtZTogJ1NpZ24gT3V0JywgaWNvbk5hbWU6ICdsb2dPdXQnLCBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdTaWduIG91dCcpIH1cbiAgICAgIF1cbiAgICB9LFxuXG4gICAgdmlld3M6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdkYXNoYm9hcmQnLFxuICAgICAgICBuYW1lOiAnRGFzaGJvYXJkJyxcbiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aG9tZScsXG4gICAgICAgIGNvbnRlbnQ6ICdkZW1vLWRhc2hib2FyZC12aWV3JyxcbiAgICAgICAgcm91dGU6ICdkYXNoYm9hcmQnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3Byb2plY3RzJyxcbiAgICAgICAgbmFtZTogJ1Byb2plY3RzJyxcbiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Zm9sZGVyJyxcbiAgICAgICAgY29udGVudDogJ2RlbW8tcHJvamVjdHMtdmlldycsXG4gICAgICAgIHJvdXRlOiAncHJvamVjdHMnLFxuICAgICAgICBiYWRnZTogM1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd0YXNrcycsXG4gICAgICAgIG5hbWU6ICdUYXNrcycsXG4gICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmNoZWNrU3F1YXJlJyxcbiAgICAgICAgY29udGVudDogJ2RlbW8tdGFza3MtdmlldycsXG4gICAgICAgIHJvdXRlOiAndGFza3MnLFxuICAgICAgICBiYWRnZTogMTJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnc2V0dGluZ3MnLFxuICAgICAgICBuYW1lOiAnU2V0dGluZ3MnLFxuICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpzZXR0aW5ncycsXG4gICAgICAgIGNvbnRlbnQ6ICdkZW1vLXNldHRpbmdzLXZpZXcnLFxuICAgICAgICByb3V0ZTogJ3NldHRpbmdzLzpzZWN0aW9uPydcbiAgICAgIH0sXG4gICAgXSxcblxuICAgIG1haW5NZW51OiB7XG4gICAgICBzZWN0aW9uczogW1xuICAgICAgICB7IG5hbWU6ICdNYWluJywgdmlld3M6IFsnZGFzaGJvYXJkJ10gfSxcbiAgICAgICAgeyBuYW1lOiAnV29ya3NwYWNlJywgdmlld3M6IFsncHJvamVjdHMnLCAndGFza3MnXSB9LFxuICAgICAgXSxcbiAgICAgIGJvdHRvbUl0ZW1zOiBbJ3NldHRpbmdzJ11cbiAgICB9LFxuXG4gICAgZGVmYXVsdFZpZXc6ICdkYXNoYm9hcmQnLFxuXG4gICAgYm90dG9tQmFyOiB7XG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgd2lkZ2V0czogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdzdGF0dXMnLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmFjdGl2aXR5JyxcbiAgICAgICAgICBsYWJlbDogJ1N5c3RlbSBPbmxpbmUnLFxuICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxuICAgICAgICAgIHRvb2x0aXA6ICdBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCcsXG4gICAgICAgICAgb25DbGljazogKCkgPT4gY29uc29sZS5sb2coJ1N0YXR1cyBjbGlja2VkJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ25vdGlmaWNhdGlvbnMnLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmJlbGwnLFxuICAgICAgICAgIGxhYmVsOiAnMyBub3RpZmljYXRpb25zJyxcbiAgICAgICAgICBzdGF0dXM6ICd3YXJuaW5nJyxcbiAgICAgICAgICB0b29sdGlwOiAnWW91IGhhdmUgdW5yZWFkIG5vdGlmaWNhdGlvbnMnLFxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdOb3RpZmljYXRpb25zIGNsaWNrZWQnKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAndmVyc2lvbicsXG4gICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Z2l0QnJhbmNoJyxcbiAgICAgICAgICBsYWJlbDogJ3YxLjIuMycsXG4gICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsXG4gICAgICAgICAgdG9vbHRpcDogJ0N1cnJlbnQgdmVyc2lvbicsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd0ZXJtaW5hbCcsXG4gICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6dGVybWluYWwnLFxuICAgICAgICAgIHRvb2x0aXA6ICdPcGVuIFRlcm1pbmFsJyxcbiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JyxcbiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnVGVybWluYWwgY2xpY2tlZCcpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuXG4gICAgb25WaWV3Q2hhbmdlOiAodmlld0lkLCB2aWV3KSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhgVmlldyBjaGFuZ2VkIHRvOiAke3ZpZXdJZH0gKCR7dmlldy5uYW1lfSlgKTtcbiAgICB9LFxuXG4gICAgb25TZWFyY2g6IChxdWVyeSkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ1NlYXJjaCBxdWVyeTonLCBxdWVyeSk7XG4gICAgfVxuICB9O1xuXG4gIC8vIFVzZSBhIGNvbnRhaW5lciBlbGVtZW50IHRvIHByb3Blcmx5IGluaXRpYWxpemUgdGhlIGRlbW9cbiAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBjb250YWluZXJFbGVtZW50LmNsYXNzTmFtZSA9ICdkZW1vLWNvbnRhaW5lcic7XG4gIGNvbnRhaW5lckVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9ICdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsnO1xuXG4gIGNvbnN0IGFwcHVpRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RlZXMtYXBwdWknKSBhcyBEZWVzQXBwdWk7XG4gIGNvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQoYXBwdWlFbGVtZW50KTtcblxuICAvLyBJbml0aWFsaXplIGFmdGVyIGVsZW1lbnQgaXMgY29ubmVjdGVkXG4gIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGFwcHVpRWxlbWVudC51cGRhdGVDb21wbGV0ZTtcblxuICAgIC8vIENvbmZpZ3VyZSB1c2luZyB0aGUgdW5pZmllZCBBUElcbiAgICBhcHB1aUVsZW1lbnQuY29uZmlndXJlKGFwcENvbmZpZyk7XG5cbiAgICAvLyBBZGQgZGVtbyBhY3Rpdml0eSBlbnRyaWVzXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBhcHB1aUVsZW1lbnQuYWN0aXZpdHlMb2cuYWRkTWFueShbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnbG9naW4nLFxuICAgICAgICAgIHVzZXI6ICdKYW5lIFNtaXRoJyxcbiAgICAgICAgICBtZXNzYWdlOiAnbG9nZ2VkIGluIGZyb20gQ2hyb21lIG9uIG1hY09TJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2NyZWF0ZScsXG4gICAgICAgICAgdXNlcjogJ0phbmUgU21pdGgnLFxuICAgICAgICAgIG1lc3NhZ2U6ICdjcmVhdGVkIHByb2plY3QgXCJGcm9udGVuZCBBcHBcIidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICd1cGRhdGUnLFxuICAgICAgICAgIHVzZXI6ICdKb2huIERvZScsXG4gICAgICAgICAgbWVzc2FnZTogJ3VwZGF0ZWQgQVBJIGRvY3VtZW50YXRpb24nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAndmlldycsXG4gICAgICAgICAgdXNlcjogJ0phbmUgU21pdGgnLFxuICAgICAgICAgIG1lc3NhZ2U6ICd2aWV3ZWQgZGFzaGJvYXJkIGFuYWx5dGljcydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdkZWxldGUnLFxuICAgICAgICAgIHVzZXI6ICdBZG1pbicsXG4gICAgICAgICAgbWVzc2FnZTogJ3JlbW92ZWQgZGVwcmVjYXRlZCBlbmRwb2ludCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgICAgIHVzZXI6ICdTeXN0ZW0nLFxuICAgICAgICAgIG1lc3NhZ2U6ICdzY2hlZHVsZWQgYmFja3VwIGNvbXBsZXRlZCcsXG4gICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6ZGF0YWJhc2UnXG4gICAgICAgIH1cbiAgICAgIF0pO1xuICAgIH0sIDUwMCk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdmlldyBjaGFuZ2VzXG4gICAgYXBwdWlFbGVtZW50LnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnVmlldyBjaGFuZ2VkIGV2ZW50OicsIGV2ZW50KTtcbiAgICAgIC8vIFVwZGF0ZSBicmVhZGNydW1icyBiYXNlZCBvbiB2aWV3XG4gICAgICBhcHB1aUVsZW1lbnQuc2V0QnJlYWRjcnVtYnMoZXZlbnQudmlldy5uYW1lKTtcbiAgICB9KTtcblxuICAgIC8vIFN1YnNjcmliZSB0byBsaWZlY3ljbGUgZXZlbnRzXG4gICAgYXBwdWlFbGVtZW50LnZpZXdMaWZlY3ljbGUkLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdMaWZlY3ljbGUgZXZlbnQ6JywgZXZlbnQudHlwZSwgZXZlbnQudmlld0lkKTtcbiAgICB9KTtcblxuICAgIC8vIERlbW86IER5bmFtaWNhbGx5IHVwZGF0ZSBhIGJhZGdlIGFmdGVyIDUgc2Vjb25kc1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgYXBwdWlFbGVtZW50LnNldE1haW5NZW51QmFkZ2UoJ3Rhc2tzJywgMTUpO1xuICAgICAgYXBwdWlFbGVtZW50LmFjdGl2aXR5TG9nLmFkZCh7XG4gICAgICAgIHR5cGU6ICd1cGRhdGUnLFxuICAgICAgICB1c2VyOiAnU3lzdGVtJyxcbiAgICAgICAgbWVzc2FnZTogJ25ldyB0YXNrcyBhZGRlZCdcbiAgICAgIH0pO1xuICAgIH0sIDUwMDApO1xuICB9LCAwKTtcblxuICByZXR1cm4gaHRtbGBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlcj5cbiAgICAgICR7Y29udGFpbmVyRWxlbWVudH1cbiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+XG4gIGA7XG59O1xuIiwgImltcG9ydCB7IGh0bWwsIHJlbmRlciwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgdHlwZSB7XG4gIElWaWV3RGVmaW5pdGlvbixcbiAgSVZpZXdBY3RpdmF0aW9uQ29udGV4dCxcbiAgSVZpZXdMaWZlY3ljbGUsXG4gIFREZWVzQXBwdWlcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hcHBjb25maWcuanMnO1xuXG4vKipcbiAqIFJlZ2lzdHJ5IGZvciBtYW5hZ2luZyB2aWV3cyBhbmQgdGhlaXIgbGlmZWN5Y2xlXG4gKlxuICogS2V5IGZlYXR1cmVzOlxuICogLSBWaWV3IGNhY2hpbmcgd2l0aCBoaWRlL3Nob3cgcGF0dGVybiAobm90IGRlc3Ryb3kvY3JlYXRlKVxuICogLSBBc3luYyBjb250ZW50IGxvYWRpbmcgc3VwcG9ydCAobGF6eSBsb2FkaW5nKVxuICogLSBWaWV3IGxpZmVjeWNsZSBob29rcyAob25BY3RpdmF0ZSwgb25EZWFjdGl2YXRlLCBjYW5EZWFjdGl2YXRlKVxuICovXG5leHBvcnQgY2xhc3MgVmlld1JlZ2lzdHJ5IHtcbiAgcHJpdmF0ZSB2aWV3czogTWFwPHN0cmluZywgSVZpZXdEZWZpbml0aW9uPiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBpbnN0YW5jZXM6IE1hcDxzdHJpbmcsIEhUTUxFbGVtZW50PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBjdXJyZW50Vmlld0lkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBhcHB1aTogVERlZXNBcHB1aSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGFwcHVpIHJlZmVyZW5jZSBmb3IgdmlldyBhY3RpdmF0aW9uIGNvbnRleHRcbiAgICovXG4gIHB1YmxpYyBzZXRBcHB1aVJlZihhcHB1aTogVERlZXNBcHB1aSk6IHZvaWQge1xuICAgIHRoaXMuYXBwdWkgPSBhcHB1aTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIHNpbmdsZSB2aWV3XG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXIodmlldzogSVZpZXdEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmlld3MuaGFzKHZpZXcuaWQpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFZpZXcgd2l0aCBpZCBcIiR7dmlldy5pZH1cIiBhbHJlYWR5IHJlZ2lzdGVyZWQuIE92ZXJ3cml0aW5nLmApO1xuICAgIH1cbiAgICB0aGlzLnZpZXdzLnNldCh2aWV3LmlkLCB2aWV3KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBtdWx0aXBsZSB2aWV3c1xuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyQWxsKHZpZXdzOiBJVmlld0RlZmluaXRpb25bXSk6IHZvaWQge1xuICAgIHZpZXdzLmZvckVhY2goKHZpZXcpID0+IHRoaXMucmVnaXN0ZXIodmlldykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHZpZXcgZGVmaW5pdGlvbiBieSBJRFxuICAgKi9cbiAgcHVibGljIGdldCh2aWV3SWQ6IHN0cmluZyk6IElWaWV3RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudmlld3MuZ2V0KHZpZXdJZCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCByZWdpc3RlcmVkIHZpZXcgSURzXG4gICAqL1xuICBwdWJsaWMgZ2V0Vmlld0lkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy5rZXlzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgdmlld3NcbiAgICovXG4gIHB1YmxpYyBnZXRBbGwoKTogSVZpZXdEZWZpbml0aW9uW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMudmlld3MudmFsdWVzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCByb3V0ZSBmb3IgYSB2aWV3XG4gICAqL1xuICBwdWJsaWMgZ2V0Um91dGUodmlld0lkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdzLmdldCh2aWV3SWQpO1xuICAgIHJldHVybiB2aWV3Py5yb3V0ZSB8fCB2aWV3Py5pZCB8fCAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIHZpZXcgYnkgcm91dGUgKHN1cHBvcnRzIHBhcmFtZXRlcml6ZWQgcm91dGVzIGxpa2UgJ3NldHRpbmdzLzpzZWN0aW9uJylcbiAgICovXG4gIHB1YmxpYyBmaW5kQnlSb3V0ZShyb3V0ZTogc3RyaW5nKTogeyB2aWV3OiBJVmlld0RlZmluaXRpb247IHBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9IHwgdW5kZWZpbmVkIHtcbiAgICBmb3IgKGNvbnN0IHZpZXcgb2YgdGhpcy52aWV3cy52YWx1ZXMoKSkge1xuICAgICAgY29uc3Qgdmlld1JvdXRlID0gdmlldy5yb3V0ZSB8fCB2aWV3LmlkO1xuICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5tYXRjaFJvdXRlKHZpZXdSb3V0ZSwgcm91dGUpO1xuICAgICAgaWYgKHBhcmFtcyAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4geyB2aWV3LCBwYXJhbXMgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaCBhIHJvdXRlIHBhdHRlcm4gYWdhaW5zdCBhbiBhY3R1YWwgcm91dGVcbiAgICogUmV0dXJucyBwYXJhbXMgaWYgbWF0Y2hlZCwgbnVsbCBvdGhlcndpc2VcbiAgICovXG4gIHByaXZhdGUgbWF0Y2hSb3V0ZShwYXR0ZXJuOiBzdHJpbmcsIHJvdXRlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCB7XG4gICAgY29uc3QgcGF0dGVyblBhcnRzID0gcGF0dGVybi5zcGxpdCgnLycpO1xuICAgIGNvbnN0IHJvdXRlUGFydHMgPSByb3V0ZS5zcGxpdCgnLycpO1xuXG4gICAgLy8gQ2hlY2sgZm9yIG9wdGlvbmFsIHRyYWlsaW5nIHBhcmFtIChlbmRzIHdpdGggPylcbiAgICBjb25zdCBoYXNPcHRpb25hbFBhcmFtID0gcGF0dGVyblBhcnRzLmxlbmd0aCA+IDAgJiZcbiAgICAgIHBhdHRlcm5QYXJ0c1twYXR0ZXJuUGFydHMubGVuZ3RoIC0gMV0uZW5kc1dpdGgoJz8nKTtcblxuICAgIGlmIChoYXNPcHRpb25hbFBhcmFtKSB7XG4gICAgICAvLyBBbGxvdyByb3V0ZSB0byBiZSBzaG9ydGVyIGJ5IDFcbiAgICAgIGlmIChyb3V0ZVBhcnRzLmxlbmd0aCA8IHBhdHRlcm5QYXJ0cy5sZW5ndGggLSAxIHx8IHJvdXRlUGFydHMubGVuZ3RoID4gcGF0dGVyblBhcnRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHBhdHRlcm5QYXJ0cy5sZW5ndGggIT09IHJvdXRlUGFydHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0dGVyblBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgcGFydCA9IHBhdHRlcm5QYXJ0c1tpXTtcbiAgICAgIGNvbnN0IGlzT3B0aW9uYWwgPSBwYXJ0LmVuZHNXaXRoKCc/Jyk7XG4gICAgICBpZiAoaXNPcHRpb25hbCkge1xuICAgICAgICBwYXJ0ID0gcGFydC5zbGljZSgwLCAtMSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXJ0LnN0YXJ0c1dpdGgoJzonKSkge1xuICAgICAgICAvLyBUaGlzIGlzIGEgcGFyYW1ldGVyXG4gICAgICAgIGNvbnN0IHBhcmFtTmFtZSA9IHBhcnQuc2xpY2UoMSk7XG4gICAgICAgIGlmIChyb3V0ZVBhcnRzW2ldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBwYXJhbXNbcGFyYW1OYW1lXSA9IHJvdXRlUGFydHNbaV07XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzT3B0aW9uYWwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChyb3V0ZVBhcnRzW2ldICE9PSBwYXJ0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbmF2aWdhdGlvbiBhd2F5IGZyb20gY3VycmVudCB2aWV3IGlzIGFsbG93ZWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjYW5MZWF2ZUN1cnJlbnRWaWV3KCk6IFByb21pc2U8Ym9vbGVhbiB8IHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5jdXJyZW50Vmlld0lkKSByZXR1cm4gdHJ1ZTtcblxuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5pbnN0YW5jZXMuZ2V0KHRoaXMuY3VycmVudFZpZXdJZCk7XG4gICAgaWYgKCFpbnN0YW5jZSkgcmV0dXJuIHRydWU7XG5cbiAgICBjb25zdCBsaWZlY3ljbGUgPSBpbnN0YW5jZSBhcyB1bmtub3duIGFzIElWaWV3TGlmZWN5Y2xlO1xuICAgIGlmICh0eXBlb2YgbGlmZWN5Y2xlLmNhbkRlYWN0aXZhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBhd2FpdCBsaWZlY3ljbGUuY2FuRGVhY3RpdmF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlIGEgdmlldyAtIGhhbmRsZXMgY2FjaGluZywgbGlmZWN5Y2xlLCBhbmQgcmVuZGVyaW5nXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYWN0aXZhdGVWaWV3KFxuICAgIHZpZXdJZDogc3RyaW5nLFxuICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gICAgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICApOiBQcm9taXNlPEhUTUxFbGVtZW50IHwgbnVsbD4ge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdzLmdldCh2aWV3SWQpO1xuICAgIGlmICghdmlldykge1xuICAgICAgY29uc29sZS5lcnJvcihgVmlldyBcIiR7dmlld0lkfVwiIG5vdCBmb3VuZCBpbiByZWdpc3RyeWApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgY2FjaGluZyBpcyBlbmFibGVkIGZvciB0aGlzIHZpZXcgKGRlZmF1bHQ6IHRydWUpXG4gICAgY29uc3Qgc2hvdWxkQ2FjaGUgPSB2aWV3LmNhY2hlICE9PSBmYWxzZTtcblxuICAgIC8vIERlYWN0aXZhdGUgY3VycmVudCB2aWV3XG4gICAgaWYgKHRoaXMuY3VycmVudFZpZXdJZCAmJiB0aGlzLmN1cnJlbnRWaWV3SWQgIT09IHZpZXdJZCkge1xuICAgICAgYXdhaXQgdGhpcy5kZWFjdGl2YXRlVmlldyh0aGlzLmN1cnJlbnRWaWV3SWQpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBjYWNoZWQgaW5zdGFuY2VcbiAgICBsZXQgZWxlbWVudCA9IHNob3VsZENhY2hlID8gdGhpcy5pbnN0YW5jZXMuZ2V0KHZpZXdJZCkgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgLy8gUmV1c2UgY2FjaGVkIGluc3RhbmNlIC0ganVzdCBzaG93IGl0XG4gICAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ3JlYXRlIG5ldyBpbnN0YW5jZVxuICAgICAgZWxlbWVudCA9IGF3YWl0IHRoaXMuY3JlYXRlVmlld0VsZW1lbnQodmlldyk7XG4gICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBlbGVtZW50IGZvciB2aWV3IFwiJHt2aWV3SWR9XCJgKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCB0byBjb250YWluZXJcbiAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlbGVtZW50KTtcblxuICAgICAgLy8gQ2FjaGUgaWYgZW5hYmxlZFxuICAgICAgaWYgKHNob3VsZENhY2hlKSB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VzLnNldCh2aWV3SWQsIGVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFZpZXdJZCA9IHZpZXdJZDtcblxuICAgIC8vIENhbGwgb25BY3RpdmF0ZSBsaWZlY3ljbGUgaG9va1xuICAgIGF3YWl0IHRoaXMuY2FsbE9uQWN0aXZhdGUoZWxlbWVudCwgdmlld0lkLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZSBhIHZpZXcgKGhpZGUgYW5kIGNhbGwgbGlmZWN5Y2xlIGhvb2spXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGRlYWN0aXZhdGVWaWV3KHZpZXdJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmluc3RhbmNlcy5nZXQodmlld0lkKTtcbiAgICBpZiAoIWluc3RhbmNlKSByZXR1cm47XG5cbiAgICAvLyBDYWxsIG9uRGVhY3RpdmF0ZSBsaWZlY3ljbGUgaG9va1xuICAgIGNvbnN0IGxpZmVjeWNsZSA9IGluc3RhbmNlIGFzIHVua25vd24gYXMgSVZpZXdMaWZlY3ljbGU7XG4gICAgaWYgKHR5cGVvZiBsaWZlY3ljbGUub25EZWFjdGl2YXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBhd2FpdCBsaWZlY3ljbGUub25EZWFjdGl2YXRlKCk7XG4gICAgfVxuXG4gICAgLy8gSGlkZSB0aGUgZWxlbWVudFxuICAgIGluc3RhbmNlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgdmlldyBlbGVtZW50IGZyb20gaXRzIGRlZmluaXRpb24gKHN1cHBvcnRzIGFzeW5jIGNvbnRlbnQpXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNyZWF0ZVZpZXdFbGVtZW50KHZpZXc6IElWaWV3RGVmaW5pdGlvbik6IFByb21pc2U8SFRNTEVsZW1lbnQgfCBudWxsPiB7XG4gICAgbGV0IGNvbnRlbnQgPSB2aWV3LmNvbnRlbnQ7XG5cbiAgICAvLyBIYW5kbGUgYXN5bmMgY29udGVudCAobGF6eSBsb2FkaW5nKVxuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAhKGNvbnRlbnQucHJvdG90eXBlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIGNvbnRlbnQuY29uc3RydWN0b3IubmFtZSA9PT0gJ0FzeW5jRnVuY3Rpb24nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb250ZW50ID0gYXdhaXQgKGNvbnRlbnQgYXMgKCkgPT4gUHJvbWlzZTxzdHJpbmcgfCAobmV3ICgpID0+IEhUTUxFbGVtZW50KSB8ICgoKSA9PiBUZW1wbGF0ZVJlc3VsdCk+KSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgYXN5bmMgY29udGVudCBmb3IgdmlldyBcIiR7dmlldy5pZH1cIjpgLCBlcnJvcik7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFRhZyBuYW1lIHN0cmluZ1xuICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoY29udGVudCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQ2hlY2sgaWYgaXQncyBhIGNsYXNzIGNvbnN0cnVjdG9yIG9yIHRlbXBsYXRlIGZ1bmN0aW9uXG4gICAgICBpZiAoY29udGVudC5wcm90b3R5cGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAvLyBFbGVtZW50IGNsYXNzIGNvbnN0cnVjdG9yXG4gICAgICAgIGVsZW1lbnQgPSBuZXcgKGNvbnRlbnQgYXMgbmV3ICgpID0+IEhUTUxFbGVtZW50KSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGVtcGxhdGUgZnVuY3Rpb24gLSB3cmFwIGluIGEgY29udGFpbmVyIGFuZCB1c2UgTGl0J3MgcmVuZGVyXG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgd3JhcHBlci5jbGFzc05hbWUgPSAndmlldy1jb250ZW50LXdyYXBwZXInO1xuICAgICAgICB3cmFwcGVyLnN0eWxlLmNzc1RleHQgPSAnZGlzcGxheTogY29udGVudHM7JztcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSAoY29udGVudCBhcyAoKSA9PiBUZW1wbGF0ZVJlc3VsdCkoKTtcbiAgICAgICAgcmVuZGVyKHRlbXBsYXRlLCB3cmFwcGVyKTtcbiAgICAgICAgZWxlbWVudCA9IHdyYXBwZXI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgY29udGVudCB0eXBlIGZvciB2aWV3IFwiJHt2aWV3LmlkfVwiYCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBBZGQgdmlldyBJRCBhcyBkYXRhIGF0dHJpYnV0ZSBmb3IgZGVidWdnaW5nXG4gICAgZWxlbWVudC5kYXRhc2V0LnZpZXdJZCA9IHZpZXcuaWQ7XG5cbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsIG9uQWN0aXZhdGUgbGlmZWN5Y2xlIGhvb2sgb24gYSB2aWV3IGVsZW1lbnRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY2FsbE9uQWN0aXZhdGUoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgdmlld0lkOiBzdHJpbmcsXG4gICAgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBsaWZlY3ljbGUgPSBlbGVtZW50IGFzIHVua25vd24gYXMgSVZpZXdMaWZlY3ljbGU7XG4gICAgaWYgKHR5cGVvZiBsaWZlY3ljbGUub25BY3RpdmF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgY29udGV4dDogSVZpZXdBY3RpdmF0aW9uQ29udGV4dCA9IHtcbiAgICAgICAgYXBwdWk6IHRoaXMuYXBwdWkhLFxuICAgICAgICB2aWV3SWQsXG4gICAgICAgIHBhcmFtcyxcbiAgICAgIH07XG4gICAgICBhd2FpdCBsaWZlY3ljbGUub25BY3RpdmF0ZShjb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGVnYWN5IG1ldGhvZCAtIHJlbmRlcnMgdmlldyB3aXRob3V0IGNhY2hpbmdcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGFjdGl2YXRlVmlldyBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgcmVuZGVyVmlldyh2aWV3SWQ6IHN0cmluZywgY29udGFpbmVyOiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMudmlld3MuZ2V0KHZpZXdJZCk7XG4gICAgaWYgKCF2aWV3KSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBWaWV3IFwiJHt2aWV3SWR9XCIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBGb3IgbGVnYWN5IGNvbXBhdGliaWxpdHksIGNsZWFyIGNvbnRhaW5lclxuICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJztcblxuICAgIGxldCBlbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBjb250ZW50ID0gdmlldy5jb250ZW50O1xuXG4gICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoY29udGVudCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKChjb250ZW50IGFzIGFueSkucHJvdG90eXBlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudCA9IG5ldyAoY29udGVudCBhcyBuZXcgKCkgPT4gSFRNTEVsZW1lbnQpKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHdyYXBwZXIuY2xhc3NOYW1lID0gJ3ZpZXctY29udGVudC13cmFwcGVyJztcbiAgICAgICAgd3JhcHBlci5zdHlsZS5jc3NUZXh0ID0gJ2Rpc3BsYXk6IGNvbnRlbnRzOyc7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gKGNvbnRlbnQgYXMgKCkgPT4gVGVtcGxhdGVSZXN1bHQpKCk7XG4gICAgICAgIHJlbmRlcih0ZW1wbGF0ZSwgd3JhcHBlcik7XG4gICAgICAgIGVsZW1lbnQgPSB3cmFwcGVyO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGNvbnRlbnQgdHlwZSBmb3IgdmlldyBcIiR7dmlld0lkfVwiYCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG4gICAgdGhpcy5pbnN0YW5jZXMuc2V0KHZpZXdJZCwgZWxlbWVudCk7XG4gICAgdGhpcy5jdXJyZW50Vmlld0lkID0gdmlld0lkO1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGN1cnJlbnRseSBhY3RpdmUgdmlldyBJRFxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRWaWV3SWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY2FjaGVkIGluc3RhbmNlIG9mIGEgdmlld1xuICAgKi9cbiAgcHVibGljIGdldEluc3RhbmNlKHZpZXdJZDogc3RyaW5nKTogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlcy5nZXQodmlld0lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhIHNwZWNpZmljIGNhY2hlZCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIGNsZWFySW5zdGFuY2Uodmlld0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuaW5zdGFuY2VzLmdldCh2aWV3SWQpO1xuICAgIGlmIChpbnN0YW5jZSAmJiBpbnN0YW5jZS5wYXJlbnROb2RlKSB7XG4gICAgICBpbnN0YW5jZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGluc3RhbmNlKTtcbiAgICB9XG4gICAgdGhpcy5pbnN0YW5jZXMuZGVsZXRlKHZpZXdJZCk7XG4gICAgaWYgKHRoaXMuY3VycmVudFZpZXdJZCA9PT0gdmlld0lkKSB7XG4gICAgICB0aGlzLmN1cnJlbnRWaWV3SWQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbGwgaW5zdGFuY2VzXG4gICAqL1xuICBwdWJsaWMgY2xlYXJJbnN0YW5jZXMoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBbdmlld0lkLCBpbnN0YW5jZV0gb2YgdGhpcy5pbnN0YW5jZXMpIHtcbiAgICAgIGlmIChpbnN0YW5jZS5wYXJlbnROb2RlKSB7XG4gICAgICAgIGluc3RhbmNlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmluc3RhbmNlcy5jbGVhcigpO1xuICAgIHRoaXMuY3VycmVudFZpZXdJZCA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlciBhIHZpZXdcbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyKHZpZXdJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhpcy5jbGVhckluc3RhbmNlKHZpZXdJZCk7XG4gICAgcmV0dXJuIHRoaXMudmlld3MuZGVsZXRlKHZpZXdJZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIHJlZ2lzdHJ5XG4gICAqL1xuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy52aWV3cy5jbGVhcigpO1xuICAgIHRoaXMuY2xlYXJJbnN0YW5jZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHZpZXcgaXMgcmVnaXN0ZXJlZFxuICAgKi9cbiAgcHVibGljIGhhcyh2aWV3SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpZXdzLmhhcyh2aWV3SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyIG9mIHJlZ2lzdGVyZWQgdmlld3NcbiAgICovXG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZpZXdzLnNpemU7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBodG1sIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGBcbiAgPHN0eWxlPlxuICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogIzFhMWExYTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB9XG4gICAgLmRlbW8tbWFpbm1lbnUtY29udGFpbmVyIC5zcGFjZXIge1xuICAgICAgZmxleDogMTtcbiAgICAgIGJhY2tncm91bmQ6ICMwZjBmMGY7XG4gICAgfVxuICA8L3N0eWxlPlxuICA8ZGl2IGNsYXNzPVwiZGVtby1tYWlubWVudS1jb250YWluZXJcIj5cbiAgICA8ZGVlcy1hcHB1aS1tYWlubWVudVxuICAgICAgLmxvZ29JY29uPSR7J2x1Y2lkZTpib3gnfVxuICAgICAgLmxvZ29UZXh0PSR7J0FjbWUgQXBwJ31cbiAgICAgIC5tZW51R3JvdXBzPSR7W1xuICAgICAgICB7XG4gICAgICAgICAgdGFiczogW1xuICAgICAgICAgICAgeyBrZXk6ICdEYXNoYm9hcmQnLCBpY29uTmFtZTogJ2x1Y2lkZTpob21lJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnRGFzaGJvYXJkJykgfSxcbiAgICAgICAgICAgIHsga2V5OiAnSW5ib3gnLCBpY29uTmFtZTogJ2x1Y2lkZTppbmJveCcsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ0luYm94JykgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnV29ya3NwYWNlJyxcbiAgICAgICAgICB0YWJzOiBbXG4gICAgICAgICAgICB7IGtleTogJ1Byb2plY3RzJywgaWNvbk5hbWU6ICdsdWNpZGU6Zm9sZGVyJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnUHJvamVjdHMnKSB9LFxuICAgICAgICAgICAgeyBrZXk6ICdUYXNrcycsIGljb25OYW1lOiAnbHVjaWRlOmNoZWNrU3F1YXJlJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnVGFza3MnKSB9LFxuICAgICAgICAgICAgeyBrZXk6ICdEb2N1bWVudHMnLCBpY29uTmFtZTogJ2x1Y2lkZTpmaWxlVGV4dCcsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ0RvY3VtZW50cycpIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0FuYWx5dGljcycsXG4gICAgICAgICAgdGFiczogW1xuICAgICAgICAgICAgeyBrZXk6ICdSZXBvcnRzJywgaWNvbk5hbWU6ICdsdWNpZGU6YmFyQ2hhcnQzJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnUmVwb3J0cycpIH0sXG4gICAgICAgICAgICB7IGtleTogJ0luc2lnaHRzJywgaWNvbk5hbWU6ICdsdWNpZGU6bGlnaHRidWxiJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnSW5zaWdodHMnKSB9LFxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXX1cbiAgICAgIC5ib3R0b21UYWJzPSR7W1xuICAgICAgICB7IGtleTogJ1NldHRpbmdzJywgaWNvbk5hbWU6ICdsdWNpZGU6c2V0dGluZ3MnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdTZXR0aW5ncycpIH0sXG4gICAgICAgIHsga2V5OiAnSGVscCcsIGljb25OYW1lOiAnbHVjaWRlOmhlbHBDaXJjbGUnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdIZWxwJykgfSxcbiAgICAgIF19XG4gICAgPjwvZGVlcy1hcHB1aS1tYWlubWVudT5cbiAgICA8ZGl2IGNsYXNzPVwic3BhY2VyXCI+PC9kaXY+XG4gIDwvZGl2PlxuYDtcbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLy4uLzAwcGx1Z2lucy5qcyc7XG5pbXBvcnQgKiBhcyBpbnRlcmZhY2VzIGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgekluZGV4TGF5ZXJzIH0gZnJvbSAnLi4vLi4vMDB6aW5kZXguanMnO1xuXG5pbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgcHJvcGVydHksXG4gIGN1c3RvbUVsZW1lbnQsXG4gIGh0bWwsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IERlZXNDb250ZXh0bWVudSB9IGZyb20gJy4uLy4uL2RlZXMtY29udGV4dG1lbnUvZGVlcy1jb250ZXh0bWVudS5qcyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1hcHB1aS1tYWlubWVudS5kZW1vLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuXG4vKipcbiAqIHRoZSBtb3N0IGxlZnQgbWVudVxuICogdXN1YWxseSB1c2VkIGFzIG9yZ2FuaXphdGlvbiBzZWxlY3RvclxuICovXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1hcHB1aS1tYWlubWVudScpXG5leHBvcnQgY2xhc3MgRGVlc0FwcHVpTWFpbm1lbnUgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdBcHAgVUknO1xuXG4gIC8vIElOU1RBTkNFXG5cbiAgLy8gTG9nbyBwcm9wZXJ0aWVzXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBsb2dvSWNvbjogc3RyaW5nID0gJyc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIGxvZ29UZXh0OiBzdHJpbmcgPSAnJztcblxuICAvLyBNZW51IGdyb3VwcyAobmV3IHdheSlcbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3IgbWVudUdyb3VwczogaW50ZXJmYWNlcy5JTWVudUdyb3VwW10gPSBbXTtcblxuICAvLyBCb3R0b20gdGFicyAocGlubmVkIHRvIGJvdHRvbSlcbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3IgYm90dG9tVGFiczogaW50ZXJmYWNlcy5JTWVudUl0ZW1bXSA9IFtdO1xuXG4gIC8vIExlZ2FjeSB0YWJzIHByb3BlcnR5IChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSlcbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3IgdGFiczogaW50ZXJmYWNlcy5JTWVudUl0ZW1bXSA9IFtdO1xuXG4gIEBwcm9wZXJ0eSgpXG4gIGFjY2Vzc29yIHNlbGVjdGVkVGFiOiBpbnRlcmZhY2VzLklNZW51SXRlbTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gIGFjY2Vzc29yIGNvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIDpob3N0IHtcbiAgICAgICAgLS1tZW51LXdpZHRoLWV4cGFuZGVkOiAyMDBweDtcbiAgICAgICAgLS1tZW51LXdpZHRoLWNvbGxhcHNlZDogNTZweDtcbiAgICAgICAgLS10b29sdGlwLWJnOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzE4MTgxYicsICcjZmFmYWZhJyl9O1xuICAgICAgICAtLXRvb2x0aXAtZmc6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmFmYWZhJywgJyMxODE4MWInKX07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLm1haW5Db250YWluZXIge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM2NjYnLCAnI2NjYycpfTtcbiAgICAgICAgei1pbmRleDogJHt6SW5kZXhMYXllcnMuZml4ZWQuYXBwQmFyfTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogdmFyKC0tbWVudS13aWR0aC1leHBhbmRlZCk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmYWZhZmEnLCAnIzBhMGEwYScpfTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlNWU1JywgJyMxYTFhMWEnKX07XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjtcbiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tYWluQ29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLW1lbnUtd2lkdGgtY29sbGFwc2VkKTtcbiAgICAgIH1cblxuICAgICAgLyogRmxvYXRpbmcgY29sbGFwc2UgdG9nZ2xlIGJ1dHRvbiAqL1xuICAgICAgLmNvbGxhcHNlLXRvZ2dsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0xMnB4O1xuICAgICAgICB0b3A6IDI0cHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMjcyNzJhJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTVlNScsICcjM2YzZjQ2Jyl9O1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzM3MzczJywgJyNhMWExYWEnKX07XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jb2xsYXBzZS10b2dnbGU6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y0ZjRmNScsICcjM2YzZjQ2Jyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwYTBhMGEnLCAnI2ZhZmFmYScpfTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoOmhvdmVyKSAuY29sbGFwc2UtdG9nZ2xlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIExvZ28gU2VjdGlvbiAqL1xuICAgICAgLmxvZ29TZWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTRweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlNWU1JywgJyMxYTFhMWEnKX07XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgfVxuXG4gICAgICAubG9nb1NlY3Rpb24gLmxvZ29JY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwYTBhMGEnLCAnI2ZhZmFmYScpfTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC5sb2dvU2VjdGlvbiAubG9nb1RleHQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzBhMGEwYScsICcjZmFmYWZhJyl9O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubG9nb1NlY3Rpb24ge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmxvZ29TZWN0aW9uIC5sb2dvVGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIE1pZGRsZSBTZWN0aW9uIChzY3JvbGxhYmxlKSAqL1xuICAgICAgLm1lbnVTZWN0aW9uIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgIH1cblxuICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICB9XG5cbiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMTUpJywgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIH1cblxuICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMjUpJywgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSknKX07XG4gICAgICB9XG5cbiAgICAgIC8qIE1lbnUgR3JvdXAgKi9cbiAgICAgIC5tZW51R3JvdXAge1xuICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgfVxuXG4gICAgICAubWVudUdyb3VwOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAuZ3JvdXBIZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzM3MzczJywgJyM3MzczNzMnKX07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIG1heC1oZWlnaHQgMC4yNXMgZWFzZTtcbiAgICAgICAgbWF4LWhlaWdodDogMzBweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ncm91cEhlYWRlciB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmdyb3VwVGFicyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7XG4gICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgfVxuXG4gICAgICAvKiBUYWIgSXRlbSAqL1xuICAgICAgLnRhYiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM1MjUyNTInLCAnI2EzYTNhMycpfTtcbiAgICAgIH1cblxuICAgICAgLnRhYjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMDQpJywgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNiknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzI2MjYyNicsICcjZTVlNWU1Jyl9O1xuICAgICAgfVxuXG4gICAgICAudGFiOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMDYpJywgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCknKX07XG4gICAgICB9XG5cbiAgICAgIC50YWIuc2VsZWN0ZWRUYWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjA2KScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwYTBhMGEnLCAnI2ZhZmFmYScpfTtcbiAgICAgIH1cblxuICAgICAgLnRhYi5zZWxlY3RlZFRhYjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgd2lkdGg6IDNweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzBhMGEwYScsICcjZmFmYWZhJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDtcbiAgICAgIH1cblxuICAgICAgLnRhYiBkZWVzLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAudGFiLnNlbGVjdGVkVGFiIGRlZXMtaWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC50YWIgLnRhYkxhYmVsIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAvKiBDb2xsYXBzZWQgdGFiIHN0eWxlcyAqL1xuICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC50YWIge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYiAudGFiTGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYi5zZWxlY3RlZFRhYjo6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogLTRweDtcbiAgICAgIH1cblxuICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovXG4gICAgICAudGFiLXRvb2x0aXAge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdG9vbHRpcC1iZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS10b29sdGlwLWZnKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgICAgfVxuXG4gICAgICAudGFiLXRvb2x0aXA6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC00cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmcpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbY29sbGFwc2VkXSkgLnRhYjpob3ZlciAudGFiLXRvb2x0aXAge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxcztcbiAgICAgIH1cblxuICAgICAgLyogQmFkZ2Ugc3R5bGVzICovXG4gICAgICAuYmFkZ2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDZweDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuXG4gICAgICAuYmFkZ2UuZGVmYXVsdCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjRmNGY1JywgJyMyNzI3MmEnKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzNmM2Y0NicsICcjYTFhMWFhJyl9O1xuICAgICAgfVxuXG4gICAgICAuYmFkZ2Uuc3VjY2VzcyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZGNmY2U3JywgJyMxNDUzMmQnKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzE2NjUzNCcsICcjNGFkZTgwJyl9O1xuICAgICAgfVxuXG4gICAgICAuYmFkZ2Uud2FybmluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmVmM2M3JywgJyM0NTFhMDMnKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzkyNDAwZScsICcjZmJiZjI0Jyl9O1xuICAgICAgfVxuXG4gICAgICAuYmFkZ2UuZXJyb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZlZTJlMicsICcjNDUwYTBhJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5OTFiMWInLCAnI2Y4NzE3MScpfTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIEJvdHRvbSBTZWN0aW9uICovXG4gICAgICAuYm90dG9tU2VjdGlvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTVlNScsICcjMWExYTFhJyl9O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ib3R0b21TZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDRweDtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4gIHB1YmxpYyByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIC8vIEdldCBhbGwgdGFicyBmb3Igc2VsZWN0aW9uIChmcm9tIGdyb3VwcyBvciBsZWdhY3kgdGFicylcbiAgICBjb25zdCBhbGxUYWJzID0gdGhpcy5nZXRBbGxUYWJzKCk7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29udGFpbmVyXCIgQGNvbnRleHRtZW51PSR7KGV2ZW50QXJnOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIERlZXNDb250ZXh0bWVudS5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhldmVudEFyZywgW3tcbiAgICAgICAgICBuYW1lOiAnYXBwIHNldHRpbmdzJyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHt9LFxuICAgICAgICAgIGljb25OYW1lOiAnZ2VhcicsXG4gICAgICAgIH1dKVxuICAgICAgfX0+XG4gICAgICAgICR7dGhpcy5sb2dvSWNvbiB8fCB0aGlzLmxvZ29UZXh0ID8gaHRtbGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9nb1NlY3Rpb25cIj5cbiAgICAgICAgICAgICR7dGhpcy5sb2dvSWNvbiA/IGh0bWxgPGRlZXMtaWNvbiBjbGFzcz1cImxvZ29JY29uXCIgLmljb249XCIke3RoaXMubG9nb0ljb259XCI+PC9kZWVzLWljb24+YCA6ICcnfVxuICAgICAgICAgICAgJHt0aGlzLmxvZ29UZXh0ID8gaHRtbGA8c3BhbiBjbGFzcz1cImxvZ29UZXh0XCI+JHt0aGlzLmxvZ29UZXh0fTwvc3Bhbj5gIDogJyd9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIGAgOiAnJ31cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudVNlY3Rpb25cIj5cbiAgICAgICAgICAke3RoaXMubWVudUdyb3Vwcy5sZW5ndGggPiAwID8gdGhpcy5yZW5kZXJNZW51R3JvdXBzKCkgOiB0aGlzLnJlbmRlckxlZ2FjeVRhYnMoKX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgJHt0aGlzLmJvdHRvbVRhYnMubGVuZ3RoID4gMCA/IGh0bWxgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbVNlY3Rpb25cIj5cbiAgICAgICAgICAgICR7dGhpcy5ib3R0b21UYWJzLm1hcCgodGFiQXJnKSA9PiB0aGlzLnJlbmRlclRhYih0YWJBcmcpKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgYCA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiY29sbGFwc2UtdG9nZ2xlXCIgQGNsaWNrPVwiJHsoKSA9PiB0aGlzLnRvZ2dsZUNvbGxhcHNlKCl9XCI+XG4gICAgICAgIDxkZWVzLWljb24gLmljb249XCIke3RoaXMuY29sbGFwc2VkID8gJ2x1Y2lkZTpjaGV2cm9uUmlnaHQnIDogJ2x1Y2lkZTpjaGV2cm9uTGVmdCd9XCI+PC9kZWVzLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJNZW51R3JvdXBzKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7dGhpcy5tZW51R3JvdXBzLm1hcCgoZ3JvdXApID0+IGh0bWxgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51R3JvdXBcIj5cbiAgICAgICAgICAke2dyb3VwLm5hbWUgPyBodG1sYDxkaXYgY2xhc3M9XCJncm91cEhlYWRlclwiPiR7Z3JvdXAubmFtZX08L2Rpdj5gIDogJyd9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwVGFic1wiPlxuICAgICAgICAgICAgJHtncm91cC5pdGVtcy5tYXAoKHRhYkFyZykgPT4gdGhpcy5yZW5kZXJUYWIodGFiQXJnKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCl9XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyTGVnYWN5VGFicygpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwibWVudUdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cFRhYnNcIj5cbiAgICAgICAgICAke3RoaXMudGFicy5tYXAoKHRhYkFyZykgPT4gdGhpcy5yZW5kZXJUYWIodGFiQXJnKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyVGFiKHRhYkFyZzogaW50ZXJmYWNlcy5JTWVudUl0ZW0pOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFiICR7dGFiQXJnID09PSB0aGlzLnNlbGVjdGVkVGFiID8gJ3NlbGVjdGVkVGFiJyA6ICcnfVwiXG4gICAgICAgIEBjbGljaz1cIiR7KCkgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlVGFiKHRhYkFyZyk7XG4gICAgICAgIH19XCJcbiAgICAgID5cbiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj1cIiR7dGFiQXJnLmljb25OYW1lIHx8ICcnfVwiPjwvZGVlcy1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRhYkxhYmVsXCI+JHt0YWJBcmcua2V5fTwvc3Bhbj5cbiAgICAgICAgJHt0YWJBcmcuYmFkZ2UgIT09IHVuZGVmaW5lZCA/IGh0bWxgXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSAke3RhYkFyZy5iYWRnZVZhcmlhbnQgfHwgJ2RlZmF1bHQnfVwiPiR7dGFiQXJnLmJhZGdlfTwvc3Bhbj5cbiAgICAgICAgYCA6ICcnfVxuICAgICAgICA8c3BhbiBjbGFzcz1cInRhYi10b29sdGlwXCI+JHt0YWJBcmcua2V5fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIGdldEFsbFRhYnMoKTogaW50ZXJmYWNlcy5JTWVudUl0ZW1bXSB7XG4gICAgaWYgKHRoaXMubWVudUdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBncm91cFRhYnMgPSB0aGlzLm1lbnVHcm91cHMuZmxhdE1hcChncm91cCA9PiBncm91cC5pdGVtcyk7XG4gICAgICByZXR1cm4gWy4uLmdyb3VwVGFicywgLi4udGhpcy5ib3R0b21UYWJzXTtcbiAgICB9XG4gICAgcmV0dXJuIFsuLi50aGlzLnRhYnMsIC4uLnRoaXMuYm90dG9tVGFic107XG4gIH1cblxuICB1cGRhdGVUYWIodGFiQXJnOiBpbnRlcmZhY2VzLklNZW51SXRlbSkge1xuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWJBcmc7XG4gICAgdGhpcy5zZWxlY3RlZFRhYi5hY3Rpb24oKTtcblxuICAgIC8vIEVtaXQgdGFiLXNlbGVjdCBldmVudFxuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3RhYi1zZWxlY3QnLCB7XG4gICAgICBkZXRhaWw6IHsgdGFiOiB0YWJBcmcgfSxcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZVxuICAgIH0pKTtcbiAgfVxuXG4gIGZpcnN0VXBkYXRlZCgpIHtcbiAgICBjb25zdCBhbGxUYWJzID0gdGhpcy5nZXRBbGxUYWJzKCk7XG4gICAgaWYgKGFsbFRhYnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy51cGRhdGVUYWIoYWxsVGFic1swXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNvbGxhcHNlKCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NvbGxhcHNlLWNoYW5nZScsIHtcbiAgICAgIGRldGFpbDogeyBjb2xsYXBzZWQ6IHRoaXMuY29sbGFwc2VkIH0sXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBodG1sIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB0eXBlICogYXMgaW50ZXJmYWNlcyBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2luZGV4LmpzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGBcbiAgPHN0eWxlPlxuICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiAjMWExYTFhO1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cbiAgICAuZGVtby1zZWNvbmRhcnltZW51LWNvbnRhaW5lciAuc3BhY2VyIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBiYWNrZ3JvdW5kOiAjMGYwZjBmO1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIGNvbG9yOiAjYTNhM2EzO1xuICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjtcbiAgICB9XG4gICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciBoMyB7XG4gICAgICBjb2xvcjogI2ZhZmFmYTtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgY29kZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMjcyNzJhO1xuICAgICAgcGFkZGluZzogMnB4IDZweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG4gICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciB1bCB7XG4gICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgIH1cbiAgPC9zdHlsZT5cbiAgPGRpdiBjbGFzcz1cImRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXJcIj5cbiAgICA8ZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51XG4gICAgICAuaGVhZGluZz0keydQcm9qZWN0cyd9XG4gICAgICAuZ3JvdXBzPSR7W1xuICAgICAgICAvLyBHcm91cCAxOiBUYWIgaXRlbXMgKGRlZmF1bHQgYmVoYXZpb3IpXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnTmF2aWdhdGlvbicsXG4gICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y29tcGFzcycsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIHsga2V5OiAnRGFzaGJvYXJkJywgaWNvbk5hbWU6ICdsdWNpZGU6bGF5b3V0RGFzaGJvYXJkJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnRGFzaGJvYXJkIGNsaWNrZWQnKSwgYmFkZ2U6IDMsIGJhZGdlVmFyaWFudDogJ3dhcm5pbmcnIH0sXG4gICAgICAgICAgICB7IGtleTogJ1Byb2plY3RzJywgaWNvbk5hbWU6ICdsdWNpZGU6Zm9sZGVyJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnUHJvamVjdHMgY2xpY2tlZCcpLCBiYWRnZTogJ25ldycsIGJhZGdlVmFyaWFudDogJ3N1Y2Nlc3MnIH0sXG4gICAgICAgICAgICB7IGtleTogJ0FuYWx5dGljcycsIGljb25OYW1lOiAnbHVjaWRlOmJhckNoYXJ0MicsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ0FuYWx5dGljcyBjbGlja2VkJykgfSxcbiAgICAgICAgICBdIGFzIGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtVGFiW11cbiAgICAgICAgfSxcbiAgICAgICAgLy8gR3JvdXAgMjogQWN0aW9uc1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0FjdGlvbnMnLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnphcCcsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIHsgdHlwZTogJ2FjdGlvbicsIGtleTogJ0NyZWF0ZSBOZXcnLCBpY29uTmFtZTogJ2x1Y2lkZTpwbHVzJywgYWN0aW9uOiAoKSA9PiBhbGVydCgnQ3JlYXRlIE5ldyBjbGlja2VkIScpIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdhY3Rpb24nLCBrZXk6ICdJbXBvcnQgRGF0YScsIGljb25OYW1lOiAnbHVjaWRlOnVwbG9hZCcsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ0ltcG9ydCBEYXRhIGNsaWNrZWQhJykgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ2RpdmlkZXInIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdhY3Rpb24nLCBrZXk6ICdEZWxldGUgQWxsJywgaWNvbk5hbWU6ICdsdWNpZGU6dHJhc2gyJywgdmFyaWFudDogJ2RhbmdlcicsIGNvbmZpcm1NZXNzYWdlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBhbGwgaXRlbXM/JywgYWN0aW9uOiAoKSA9PiBhbGVydCgnRGVsZXRlZCEnKSB9LFxuICAgICAgICAgIF0gYXMgaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW1bXVxuICAgICAgICB9LFxuICAgICAgICAvLyBHcm91cCAzOiBGaWx0ZXJzXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnRmlsdGVycycsXG4gICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6ZmlsdGVyJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgeyB0eXBlOiAnaGVhZGVyJywgbGFiZWw6ICdTdGF0dXMnIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdmaWx0ZXInLCBrZXk6ICdTaG93IEFjdGl2ZScsIGljb25OYW1lOiAnbHVjaWRlOmNoZWNrQ2lyY2xlJywgYWN0aXZlOiB0cnVlLCBvblRvZ2dsZTogKGFjdGl2ZSkgPT4gY29uc29sZS5sb2coJ1Nob3cgQWN0aXZlOicsIGFjdGl2ZSkgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ2ZpbHRlcicsIGtleTogJ1Nob3cgQXJjaGl2ZWQnLCBpY29uTmFtZTogJ2x1Y2lkZTphcmNoaXZlJywgYWN0aXZlOiBmYWxzZSwgb25Ub2dnbGU6IChhY3RpdmUpID0+IGNvbnNvbGUubG9nKCdTaG93IEFyY2hpdmVkOicsIGFjdGl2ZSkgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ2RpdmlkZXInIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdtdWx0aUZpbHRlcicsIGtleTogJ0NhdGVnb3JpZXMnLCBpY29uTmFtZTogJ2x1Y2lkZTp0YWcnLCBjb2xsYXBzZWQ6IGZhbHNlLCBvcHRpb25zOiBbXG4gICAgICAgICAgICAgIHsga2V5OiAnZnJvbnRlbmQnLCBsYWJlbDogJ0Zyb250ZW5kJywgY2hlY2tlZDogdHJ1ZSwgaWNvbk5hbWU6ICdsdWNpZGU6bW9uaXRvcicgfSxcbiAgICAgICAgICAgICAgeyBrZXk6ICdiYWNrZW5kJywgbGFiZWw6ICdCYWNrZW5kJywgY2hlY2tlZDogdHJ1ZSwgaWNvbk5hbWU6ICdsdWNpZGU6c2VydmVyJyB9LFxuICAgICAgICAgICAgICB7IGtleTogJ2Rldm9wcycsIGxhYmVsOiAnRGV2T3BzJywgY2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiAnbHVjaWRlOmNsb3VkJyB9LFxuICAgICAgICAgICAgICB7IGtleTogJ2Rlc2lnbicsIGxhYmVsOiAnRGVzaWduJywgY2hlY2tlZDogZmFsc2UsIGljb25OYW1lOiAnbHVjaWRlOnBhbGV0dGUnIH0sXG4gICAgICAgICAgICBdLCBvbkNoYW5nZTogKGtleXMpID0+IGNvbnNvbGUubG9nKCdTZWxlY3RlZCBjYXRlZ29yaWVzOicsIGtleXMpIH0sXG4gICAgICAgICAgXSBhcyBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbVtdXG4gICAgICAgIH0sXG4gICAgICAgIC8vIEdyb3VwIDQ6IExpbmtzIGFuZCBtaXNjXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnUmVzb3VyY2VzJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpib29rT3BlbicsXG4gICAgICAgICAgY29sbGFwc2VkOiB0cnVlLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7IHR5cGU6ICdoZWFkZXInLCBsYWJlbDogJ0RvY3VtZW50YXRpb24nIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdsaW5rJywga2V5OiAnQVBJIFJlZmVyZW5jZScsIGljb25OYW1lOiAnbHVjaWRlOmZpbGVUZXh0JywgaHJlZjogJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2RvY3MnIH0sXG4gICAgICAgICAgICB7IHR5cGU6ICdsaW5rJywga2V5OiAnVXNlciBHdWlkZScsIGljb25OYW1lOiAnbHVjaWRlOmJvb2snLCBocmVmOiAnaHR0cHM6Ly9kb2NzLmV4YW1wbGUuY29tL2d1aWRlJyB9LFxuICAgICAgICAgICAgeyB0eXBlOiAnZGl2aWRlcicgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ2hlYWRlcicsIGxhYmVsOiAnU3VwcG9ydCcgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ2xpbmsnLCBrZXk6ICdIZWxwIENlbnRlcicsIGljb25OYW1lOiAnbHVjaWRlOmhlbHBDaXJjbGUnLCBocmVmOiAnL2hlbHAnLCBleHRlcm5hbDogZmFsc2UgfSxcbiAgICAgICAgICAgIHsgdHlwZTogJ2xpbmsnLCBrZXk6ICdHaXRIdWIgSXNzdWVzJywgaWNvbk5hbWU6ICdsdWNpZGU6Z2l0aHViJywgaHJlZjogJ2h0dHBzOi8vZ2l0aHViLmNvbS9leGFtcGxlL2lzc3VlcycgfSxcbiAgICAgICAgICBdIGFzIGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtW11cbiAgICAgICAgfVxuICAgICAgXSBhcyBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51R3JvdXBbXX1cbiAgICAgIEBpdGVtLXNlbGVjdD0keyhlOiBDdXN0b21FdmVudCkgPT4gY29uc29sZS5sb2coJ1RhYiBzZWxlY3RlZDonLCBlLmRldGFpbCl9XG4gICAgICBAYWN0aW9uLWNsaWNrPSR7KGU6IEN1c3RvbUV2ZW50KSA9PiBjb25zb2xlLmxvZygnQWN0aW9uIGNsaWNrZWQ6JywgZS5kZXRhaWwpfVxuICAgICAgQGZpbHRlci10b2dnbGU9JHsoZTogQ3VzdG9tRXZlbnQpID0+IGNvbnNvbGUubG9nKCdGaWx0ZXIgdG9nZ2xlZDonLCBlLmRldGFpbCl9XG4gICAgICBAbXVsdGlmaWx0ZXItY2hhbmdlPSR7KGU6IEN1c3RvbUV2ZW50KSA9PiBjb25zb2xlLmxvZygnTXVsdGktZmlsdGVyIGNoYW5nZWQ6JywgZS5kZXRhaWwpfVxuICAgICAgQGxpbmstY2xpY2s9JHsoZTogQ3VzdG9tRXZlbnQpID0+IGNvbnNvbGUubG9nKCdMaW5rIGNsaWNrZWQ6JywgZS5kZXRhaWwpfVxuICAgID48L2RlZXMtYXBwdWktc2Vjb25kYXJ5bWVudT5cbiAgICA8ZGl2IGNsYXNzPVwic3BhY2VyXCI+XG4gICAgICA8aDM+U2Vjb25kYXJ5IE1lbnUgRGVtbzwvaDM+XG4gICAgICA8cD5UaGlzIGRlbW8gc2hvd2Nhc2VzIGFsbCA4IGl0ZW0gdHlwZXM6PC9wPlxuICAgICAgPHVsPlxuICAgICAgICA8bGk+PGNvZGU+dGFiPC9jb2RlPiAtIFNlbGVjdGFibGUgaXRlbXMgKE5hdmlnYXRpb24gZ3JvdXApPC9saT5cbiAgICAgICAgPGxpPjxjb2RlPmFjdGlvbjwvY29kZT4gLSBCbHVlIGFjdGlvbnMgKEFjdGlvbnMgZ3JvdXApPC9saT5cbiAgICAgICAgPGxpPjxjb2RlPmFjdGlvbjwvY29kZT4gd2l0aCA8Y29kZT52YXJpYW50OiAnZGFuZ2VyJzwvY29kZT4gLSBSZWQgZGFuZ2VyIGFjdGlvbjwvbGk+XG4gICAgICAgIDxsaT48Y29kZT5maWx0ZXI8L2NvZGU+IC0gQ2hlY2tib3ggdG9nZ2xlcyAoRmlsdGVycyBncm91cCk8L2xpPlxuICAgICAgICA8bGk+PGNvZGU+bXVsdGlGaWx0ZXI8L2NvZGU+IC0gQ29sbGFwc2libGUgbXVsdGktc2VsZWN0IChDYXRlZ29yaWVzKTwvbGk+XG4gICAgICAgIDxsaT48Y29kZT5kaXZpZGVyPC9jb2RlPiAtIFZpc3VhbCBzZXBhcmF0b3JzPC9saT5cbiAgICAgICAgPGxpPjxjb2RlPmhlYWRlcjwvY29kZT4gLSBTZWN0aW9uIGxhYmVsczwvbGk+XG4gICAgICAgIDxsaT48Y29kZT5saW5rPC9jb2RlPiAtIEV4dGVybmFsL2ludGVybmFsIGxpbmtzIChSZXNvdXJjZXMgZ3JvdXApPC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8cD5UcnkgdGhlIGNvbGxhcHNlIHRvZ2dsZSBvbiB0aGUgbGVmdCBlZGdlITwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5gO1xuIiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi4vLi4vMDBwbHVnaW5zLmpzJztcbmltcG9ydCAqIGFzIGludGVyZmFjZXMgZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pbmRleC5qcyc7XG5cbmltcG9ydCB7IERlZXNDb250ZXh0bWVudSB9IGZyb20gJy4uLy4uL2RlZXMtY29udGV4dG1lbnUvZGVlcy1jb250ZXh0bWVudS5qcyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuXG5pbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgcHJvcGVydHksXG4gIHN0YXRlLFxuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51LmRlbW8uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbi8qKlxuICogU2Vjb25kYXJ5IG5hdmlnYXRpb24gbWVudSBmb3Igc3ViLW5hdmlnYXRpb24gd2l0aGluIE1haW5NZW51IHZpZXdzXG4gKlxuICogU3VwcG9ydHMgOCBpdGVtIHR5cGVzOlxuICogMS4gVGFiIC0gc2VsZWN0YWJsZSwgc3RheXMgaGlnaGxpZ2h0ZWQgKGRlZmF1bHQpXG4gKiAyLiBBY3Rpb24gLSBleGVjdXRlcyB3aXRob3V0IHNlbGVjdGlvbiAoYmx1ZSlcbiAqIDMuIERhbmdlciBBY3Rpb24gLSByZWQgc3R5bGluZyB3aXRoIG9wdGlvbmFsIGNvbmZpcm1hdGlvblxuICogNC4gRmlsdGVyIC0gY2hlY2tib3ggdG9nZ2xlXG4gKiA1LiBNdWx0aS1GaWx0ZXIgLSBjb2xsYXBzaWJsZSBib3ggd2l0aCBtdWx0aXBsZSBjaGVja2JveGVzXG4gKiA2LiBEaXZpZGVyIC0gdmlzdWFsIHNlcGFyYXRvclxuICogNy4gSGVhZGVyIC0gbm9uLWludGVyYWN0aXZlIGxhYmVsXG4gKiA4LiBMaW5rIC0gb3BlbnMgVVJMXG4gKi9cbkBjdXN0b21FbGVtZW50KCdkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUnKVxuZXhwb3J0IGNsYXNzIERlZXNBcHB1aVNlY29uZGFyeW1lbnUgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdBcHAgVUknO1xuXG4gIC8vIElOU1RBTkNFXG5cbiAgLyoqIER5bmFtaWMgaGVhZGluZyAtIHR5cGljYWxseSBzaG93cyB0aGUgc2VsZWN0ZWQgTWFpbk1lbnUgaXRlbSAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgaGVhZGluZzogc3RyaW5nID0gJ01lbnUnO1xuXG4gIC8qKiBHcm91cGVkIGl0ZW1zIHdpdGggY29sbGFwc2Ugc3VwcG9ydCAtIHN1cHBvcnRzIG5ldyBJU2Vjb25kYXJ5TWVudUdyb3VwICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIGFjY2Vzc29yIGdyb3VwczogaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUdyb3VwW10gPSBbXTtcblxuICAvKiogTGVnYWN5IGZsYXQgbGlzdCBzdXBwb3J0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIGFjY2Vzc29yIHNlbGVjdGlvbk9wdGlvbnM6IChpbnRlcmZhY2VzLklNZW51SXRlbSB8IHsgZGl2aWRlcjogdHJ1ZSB9KVtdID0gW107XG5cbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCB0YWIgaXRlbSAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBPYmplY3QgfSlcbiAgYWNjZXNzb3Igc2VsZWN0ZWRJdGVtOiBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbVRhYiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBJbnRlcm5hbCBzdGF0ZSBmb3IgY29sbGFwc2VkIGdyb3VwcyAqL1xuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBjb2xsYXBzZWRHcm91cHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXG4gIC8qKiBJbnRlcm5hbCBzdGF0ZSBmb3IgY29sbGFwc2VkIG11bHRpLWZpbHRlcnMgKi9cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgY29sbGFwc2VkTXVsdGlGaWx0ZXJzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcblxuICAvKiogUmVuZGVyIGNvdW50ZXIgdG8gZm9yY2UgcmUtcmVuZGVycyB3aGVuIGl0ZW1zIGFyZSBtdXRhdGVkICovXG4gIEBzdGF0ZSgpXG4gIHByaXZhdGUgYWNjZXNzb3IgcmVuZGVyQ291bnRlcjogbnVtYmVyID0gMDtcblxuICAvKiogSG9yaXpvbnRhbCBjb2xsYXBzZSBzdGF0ZSAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gIGFjY2Vzc29yIGNvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIDpob3N0IHtcbiAgICAgICAgLS1zaWRlYmFyLXdpZHRoLWV4cGFuZGVkOiAyNDBweDtcbiAgICAgICAgLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZDogNTZweDtcbiAgICAgICAgLS1zaWRlYmFyLWJnOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZhZmFmYScsICcjMGEwYTBhJyl9O1xuICAgICAgICAtLXNpZGViYXItZmc6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNTI1MjUyJywgJyNhM2EzYTMnKX07XG4gICAgICAgIC0tc2lkZWJhci1mZy1tdXRlZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MzczNzMnLCAnIzczNzM3MycpfTtcbiAgICAgICAgLS1zaWRlYmFyLWZnLWFjdGl2ZTogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwYTBhMGEnLCAnI2ZhZmFmYScpfTtcbiAgICAgICAgLS1zaWRlYmFyLWJvcmRlcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU1ZTUnLCAnIzFhMWExYScpfTtcbiAgICAgICAgLS1zaWRlYmFyLWhvdmVyOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjA0KScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpJyl9O1xuICAgICAgICAtLXNpZGViYXItYWN0aXZlOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjA2KScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpJyl9O1xuICAgICAgICAtLXNpZGViYXItYWNjZW50OiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzBhMGEwYScsICcjZmFmYWZhJyl9O1xuICAgICAgICAtLXRvb2x0aXAtYmc6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMTgxODFiJywgJyNmYWZhZmEnKX07XG4gICAgICAgIC0tdG9vbHRpcC1mZzogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmYWZhZmEnLCAnIzE4MTgxYicpfTtcblxuICAgICAgICAvKiBCYWRnZSBjb2xvcnMgKi9cbiAgICAgICAgLS1iYWRnZS1kZWZhdWx0LWJnOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y0ZjRmNScsICcjMjcyNzJhJyl9O1xuICAgICAgICAtLWJhZGdlLWRlZmF1bHQtZmc6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2YzZjQ2JywgJyNhMWExYWEnKX07XG4gICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1iZzogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkY2ZjZTcnLCAnIzE0NTMyZCcpfTtcbiAgICAgICAgLS1iYWRnZS1zdWNjZXNzLWZnOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzE2NjUzNCcsICcjNGFkZTgwJyl9O1xuICAgICAgICAtLWJhZGdlLXdhcm5pbmctYmc6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmVmM2M3JywgJyM0NTFhMDMnKX07XG4gICAgICAgIC0tYmFkZ2Utd2FybmluZy1mZzogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5MjQwMGUnLCAnI2ZiYmYyNCcpfTtcbiAgICAgICAgLS1iYWRnZS1lcnJvci1iZzogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZWUyZTInLCAnIzQ1MGEwYScpfTtcbiAgICAgICAgLS1iYWRnZS1lcnJvci1mZzogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5OTFiMWInLCAnI2Y4NzE3MScpfTtcblxuICAgICAgICAvKiBBY3Rpb24gY29sb3JzICovXG4gICAgICAgIC0tYWN0aW9uLXByaW1hcnk6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMjU2M2ViJywgJyMzYjgyZjYnKX07XG4gICAgICAgIC0tYWN0aW9uLXByaW1hcnktaG92ZXI6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMWQ0ZWQ4JywgJyM2MGE1ZmEnKX07XG4gICAgICAgIC0tYWN0aW9uLWRhbmdlcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkYzI2MjYnLCAnI2VmNDQ0NCcpfTtcbiAgICAgICAgLS1hY3Rpb24tZGFuZ2VyLWhvdmVyOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2I5MWMxYycsICcjZjg3MTcxJyl9O1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgtZXhwYW5kZWQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJnKTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpO1xuICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbY29sbGFwc2VkXSkge1xuICAgICAgICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aC1jb2xsYXBzZWQpO1xuICAgICAgfVxuXG4gICAgICAubWFpbmNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAvKiBGbG9hdGluZyBjb2xsYXBzZSB0b2dnbGUgYnV0dG9uICovXG4gICAgICAuY29sbGFwc2UtdG9nZ2xlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTEycHg7XG4gICAgICAgIHRvcDogMjRweDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMyNzI3MmEnKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlNWU1JywgJyMzZjNmNDYnKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MzczNzMnLCAnI2ExYTFhYScpfTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLmNvbGxhcHNlLXRvZ2dsZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjRmNGY1JywgJyMzZjNmNDYnKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzBhMGEwYScsICcjZmFmYWZhJyl9O1xuICAgICAgfVxuXG4gICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAuY29sbGFwc2UtdG9nZ2xlIGRlZXMtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIH1cblxuICAgICAgLyogSGVhZGVyIFNlY3Rpb24gKi9cbiAgICAgIC5oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlciAuaGVhZGluZyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmhlYWRlciB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5oZWFkZXIgLmhlYWRpbmcge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLyogU2Nyb2xsYWJsZSBNZW51IFNlY3Rpb24gKi9cbiAgICAgIC5tZW51U2VjdGlvbiB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICB9XG5cbiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgfVxuXG4gICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjE1KScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICB9XG5cbiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjI1KScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpJyl9O1xuICAgICAgfVxuXG4gICAgICAvKiBNZW51IEdyb3VwICovXG4gICAgICAubWVudUdyb3VwIHtcbiAgICAgICAgcGFkZGluZzogMCA4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51R3JvdXAge1xuICAgICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAgIH1cblxuICAgICAgLmdyb3VwSGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2UsIG1heC1oZWlnaHQgMC4yNXMgZWFzZTtcbiAgICAgICAgbWF4LWhlaWdodDogNDBweDtcbiAgICAgIH1cblxuICAgICAgLmdyb3VwSGVhZGVyOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMTQwLCAxMjAsIDEwMCwgMC4wNiknLCAncmdiYSgxODAsIDE2MCwgMTQwLCAwLjA4KScpfTtcbiAgICAgICAgcGFkZGluZzogN3B4IDExcHg7XG4gICAgICB9XG5cbiAgICAgIC5ncm91cEhlYWRlcjpub3QoLmNvbGxhcHNlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgxNDAsIDEyMCwgMTAwLCAwLjA2KScsICdyZ2JhKDE4MCwgMTYwLCAxNDAsIDAuMDgpJyl9O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgfVxuXG4gICAgICAuZ3JvdXBIZWFkZXIgLmdyb3VwVGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3ODcxNmMnLCAnI2I1YTk5YScpfTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAuZ3JvdXBIZWFkZXIgLmdyb3VwVGl0bGUgZGVlcy1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3ODcxNmMnLCAnI2I1YTk5YScpfTtcbiAgICAgIH1cblxuICAgICAgLmdyb3VwSGVhZGVyIC5jaGV2cm9uIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3ODcxNmMnLCAnI2I1YTk5YScpfTtcbiAgICAgIH1cblxuICAgICAgLmdyb3VwSGVhZGVyLmNvbGxhcHNlZCAuY2hldnJvbiB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICB9XG5cbiAgICAgIC8qIEhpZGUgZ3JvdXAgaGVhZGVycyB3aGVuIGhvcml6b250YWxseSBjb2xsYXBzZWQgKi9cbiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAvKiBHcm91cCBJdGVtcyBDb250YWluZXIgKi9cbiAgICAgIC5ncm91cEl0ZW1zIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgbWFyZ2luIDAuMjVzIGVhc2U7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMDBweDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgIH1cblxuICAgICAgLmdyb3VwSXRlbXMuY29sbGFwc2VkIHtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgLyogQWx3YXlzIHNob3cgaXRlbXMgd2hlbiBob3Jpem9udGFsbHkgY29sbGFwc2VkIChyZWdhcmRsZXNzIG9mIGdyb3VwIGNvbGxhcHNlIHN0YXRlKSAqL1xuICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ncm91cEl0ZW1zIHtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgLyogTWVudSBJdGVtIEJhc2UgKi9cbiAgICAgIC5tZW51SXRlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgbWFyZ2luOiAycHggMDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNDUwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnKTtcbiAgICAgIH1cblxuICAgICAgLm1lbnVJdGVtOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7XG4gICAgICB9XG5cbiAgICAgIC5tZW51SXRlbTphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjdGl2ZSk7XG4gICAgICB9XG5cbiAgICAgIC5tZW51SXRlbS5kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cblxuICAgICAgLm1lbnVJdGVtLnNlbGVjdGVkOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB3aWR0aDogM3B4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWNjZW50KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAycHggMnB4IDA7XG4gICAgICB9XG5cbiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZCBkZWVzLWljb24ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAubWVudUl0ZW0gLml0ZW1MYWJlbCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLyogQWN0aW9uIEl0ZW0gU3R5bGVzICovXG4gICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkge1xuICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLXByaW1hcnkpO1xuICAgICAgfVxuXG4gICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnk6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLXByaW1hcnktaG92ZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgzNywgOTksIDIzNSwgMC4wOCknLCAncmdiYSg1OSwgMTMwLCAyNDYsIDAuMTIpJyl9O1xuICAgICAgfVxuXG4gICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkgZGVlcy1pY29uIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgLm1lbnVJdGVtLmFjdGlvbi1kYW5nZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlcik7XG4gICAgICB9XG5cbiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1kYW5nZXItaG92ZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgyMjAsIDM4LCAzOCwgMC4wOCknLCAncmdiYSgyMzksIDY4LCA2OCwgMC4xMiknKX07XG4gICAgICB9XG5cbiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIGRlZXMtaWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC8qIEZpbHRlciBJdGVtIFN0eWxlcyAqL1xuICAgICAgLm1lbnVJdGVtLmZpbHRlciB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIH1cblxuICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94IHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkNGQ0ZDQnLCAnIzUyNTI1MicpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAubWVudUl0ZW0uZmlsdGVyIC5maWx0ZXItY2hlY2tib3guY2hlY2tlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWNjZW50KTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7XG4gICAgICB9XG5cbiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveCBkZWVzLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZhZmFmYScsICcjMGEwYTBhJyl9O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAubWVudUl0ZW0uZmlsdGVyLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7XG4gICAgICB9XG5cbiAgICAgIC8qIE11bHRpLUZpbHRlciBDb250YWluZXIgKi9cbiAgICAgIC5tdWx0aUZpbHRlciB7XG4gICAgICAgIG1hcmdpbjogNHB4IDA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjAyKScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpJyl9O1xuICAgICAgfVxuXG4gICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAubXVsdGlGaWx0ZXItaGVhZGVyOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7XG4gICAgICB9XG5cbiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTtcbiAgICAgIH1cblxuICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItdGl0bGUgZGVlcy1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG5cbiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLWNvdW50IHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWRlZmF1bHQtYmcpO1xuICAgICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICB9XG5cbiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLmNoZXZyb24ge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLW11dGVkKTtcbiAgICAgIH1cblxuICAgICAgLm11bHRpRmlsdGVyLWhlYWRlci5jb2xsYXBzZWQgLmNoZXZyb24ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgfVxuXG4gICAgICAubXVsdGlGaWx0ZXItb3B0aW9ucyB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7XG4gICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAubXVsdGlGaWx0ZXItb3B0aW9ucy5jb2xsYXBzZWQge1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgfVxuXG4gICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmcpO1xuICAgICAgfVxuXG4gICAgICAubXVsdGlGaWx0ZXItb3B0aW9uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7XG4gICAgICB9XG5cbiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveCB7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZDRkNGQ0JywgJyM1MjUyNTInKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiAub3B0aW9uLWNoZWNrYm94LmNoZWNrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpO1xuICAgICAgfVxuXG4gICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3ggZGVlcy1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmYWZhZmEnLCAnIzBhMGEwYScpfTtcbiAgICAgIH1cblxuICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiBkZWVzLWljb24ub3B0aW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cblxuICAgICAgLyogRGl2aWRlciAqL1xuICAgICAgLm1lbnVEaXZpZGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYm9yZGVyKTtcbiAgICAgICAgbWFyZ2luOiA4cHggMTJweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51RGl2aWRlciB7XG4gICAgICAgIG1hcmdpbjogOHB4IDRweDtcbiAgICAgIH1cblxuICAgICAgLyogSGVhZGVyL0xhYmVsICovXG4gICAgICAubWVudUhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA0cHggMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLyogTGluayBJdGVtICovXG4gICAgICAubWVudUl0ZW0ubGluayAuZXh0ZXJuYWwtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cblxuICAgICAgLyogQ29sbGFwc2VkIG1lbnUgaXRlbSBzdHlsZXMgKi9cbiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0ge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBnYXA6IDA7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLml0ZW1MYWJlbCB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0uc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6IC00cHg7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmZpbHRlci1jaGVja2JveCxcbiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmV4dGVybmFsLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm11bHRpRmlsdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovXG4gICAgICAuaXRlbS10b29sdGlwIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpO1xuICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xuICAgICAgICB6LWluZGV4OiAxMDAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgIH1cblxuICAgICAgLml0ZW0tdG9vbHRpcDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTRweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZyk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW06aG92ZXIgLml0ZW0tdG9vbHRpcCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzO1xuICAgICAgfVxuXG4gICAgICAvKiBCYWRnZSBTdHlsZXMgKi9cbiAgICAgIC5iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAxOHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC5iYWRnZS5kZWZhdWx0IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZGVmYXVsdC1iZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1kZWZhdWx0LWZnKTtcbiAgICAgIH1cblxuICAgICAgLmJhZGdlLnN1Y2Nlc3Mge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS1zdWNjZXNzLWJnKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXN1Y2Nlc3MtZmcpO1xuICAgICAgfVxuXG4gICAgICAuYmFkZ2Uud2FybmluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLXdhcm5pbmctYmcpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2Utd2FybmluZy1mZyk7XG4gICAgICB9XG5cbiAgICAgIC5iYWRnZS5lcnJvciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWVycm9yLWJnKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWVycm9yLWZnKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIExlZ2FjeSBvcHRpb25zIGNvbnRhaW5lciAqL1xuICAgICAgLmxlZ2FjeU9wdGlvbnMge1xuICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgIH1cblxuICAgICAgLyogRGl2aWRlciAobGVnYWN5KSAqL1xuICAgICAgLmRpdmlkZXIge1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ib3JkZXIpO1xuICAgICAgICBtYXJnaW46IDhweCAxMnB4O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwibWFpbmNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5nXCI+JHt0aGlzLmhlYWRpbmd9PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnVTZWN0aW9uXCI+XG4gICAgICAgICAgJHt0aGlzLmdyb3Vwcy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IHRoaXMucmVuZGVyR3JvdXBzKClcbiAgICAgICAgICAgIDogdGhpcy5yZW5kZXJMZWdhY3lPcHRpb25zKCl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiY29sbGFwc2UtdG9nZ2xlXCIgQGNsaWNrPVwiJHsoKSA9PiB0aGlzLnRvZ2dsZUNvbGxhcHNlKCl9XCI+XG4gICAgICAgIDxkZWVzLWljb24gLmljb249XCIke3RoaXMuY29sbGFwc2VkID8gJ2x1Y2lkZTpjaGV2cm9uUmlnaHQnIDogJ2x1Y2lkZTpjaGV2cm9uTGVmdCd9XCI+PC9kZWVzLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJHcm91cHMoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgJHt0aGlzLmdyb3Vwcy5tYXAoKGdyb3VwKSA9PiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudUdyb3VwXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJncm91cEhlYWRlciAke3RoaXMuY29sbGFwc2VkR3JvdXBzLmhhcyhncm91cC5uYW1lKSA/ICdjb2xsYXBzZWQnIDogJyd9XCJcbiAgICAgICAgICAgIEBjbGljaz1cIiR7KCkgPT4gdGhpcy50b2dnbGVHcm91cChncm91cC5uYW1lKX1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ3JvdXBUaXRsZVwiPlxuICAgICAgICAgICAgICAke2dyb3VwLmljb25OYW1lID8gaHRtbGA8ZGVlcy1pY29uIC5pY29uPVwiJHt0aGlzLm5vcm1hbGl6ZUljb24oZ3JvdXAuaWNvbk5hbWUpfVwiPjwvZGVlcy1pY29uPmAgOiAnJ31cbiAgICAgICAgICAgICAgJHtncm91cC5uYW1lfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz1cImNoZXZyb25cIiAuaWNvbj1cIiR7J2x1Y2lkZTpjaGV2cm9uRG93bid9XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwSXRlbXMgJHt0aGlzLmNvbGxhcHNlZEdyb3Vwcy5oYXMoZ3JvdXAubmFtZSkgPyAnY29sbGFwc2VkJyA6ICcnfVwiPlxuICAgICAgICAgICAgJHtncm91cC5pdGVtcy5tYXAoKGl0ZW0pID0+IHRoaXMucmVuZGVySXRlbShpdGVtLCBncm91cCkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGApfVxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckl0ZW0oaXRlbTogaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW0sIGdyb3VwPzogaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUdyb3VwKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIC8vIENoZWNrIGZvciBoaWRkZW4gaXRlbXNcbiAgICBpZiAoJ2hpZGRlbicgaW4gaXRlbSAmJiBpdGVtLmhpZGRlbikge1xuICAgICAgcmV0dXJuIGh0bWxgYDtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgaXRlbSB0eXBlXG4gICAgY29uc3QgaXRlbVR5cGUgPSAndHlwZScgaW4gaXRlbSA/IGl0ZW0udHlwZSA6ICd0YWInO1xuXG4gICAgc3dpdGNoIChpdGVtVHlwZSkge1xuICAgICAgY2FzZSAnYWN0aW9uJzpcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyQWN0aW9uSXRlbShpdGVtIGFzIGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtQWN0aW9uKTtcbiAgICAgIGNhc2UgJ2ZpbHRlcic6XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckZpbHRlckl0ZW0oaXRlbSBhcyBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbUZpbHRlcik7XG4gICAgICBjYXNlICdtdWx0aUZpbHRlcic6XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlck11bHRpRmlsdGVySXRlbShpdGVtIGFzIGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtTXVsdGlGaWx0ZXIpO1xuICAgICAgY2FzZSAnZGl2aWRlcic6XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckRpdmlkZXIoKTtcbiAgICAgIGNhc2UgJ2hlYWRlcic6XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckhlYWRlcihpdGVtIGFzIGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtSGVhZGVyKTtcbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJMaW5rSXRlbShpdGVtIGFzIGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtTGluayk7XG4gICAgICBjYXNlICd0YWInOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyVGFiSXRlbShpdGVtIGFzIGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtVGFiLCBncm91cCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJUYWJJdGVtKGl0ZW06IGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtVGFiLCBncm91cD86IGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVHcm91cCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEl0ZW0/LmtleSA9PT0gaXRlbS5rZXk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGl0ZW0uZGlzYWJsZWQgPT09IHRydWU7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtZW51SXRlbSAke2lzU2VsZWN0ZWQgPyAnc2VsZWN0ZWQnIDogJyd9ICR7aXNEaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiAnJ31cIlxuICAgICAgICBAY2xpY2s9XCIkeygpID0+ICFpc0Rpc2FibGVkICYmIHRoaXMuc2VsZWN0VGFiSXRlbShpdGVtLCBncm91cCl9XCJcbiAgICAgICAgQGNvbnRleHRtZW51PVwiJHsoZTogTW91c2VFdmVudCkgPT4gdGhpcy5oYW5kbGVDb250ZXh0TWVudShlLCBpdGVtKX1cIlxuICAgICAgPlxuICAgICAgICAke2l0ZW0uaWNvbk5hbWUgPyBodG1sYDxkZWVzLWljb24gLmljb249XCIke3RoaXMubm9ybWFsaXplSWNvbihpdGVtLmljb25OYW1lKX1cIj48L2RlZXMtaWNvbj5gIDogJyd9XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbUxhYmVsXCI+JHtpdGVtLmtleX08L3NwYW4+XG4gICAgICAgICR7aXRlbS5iYWRnZSAhPT0gdW5kZWZpbmVkID8gaHRtbGBcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlICR7aXRlbS5iYWRnZVZhcmlhbnQgfHwgJ2RlZmF1bHQnfVwiPiR7aXRlbS5iYWRnZX08L3NwYW4+XG4gICAgICAgIGAgOiAnJ31cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLXRvb2x0aXBcIj4ke2l0ZW0ua2V5fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckFjdGlvbkl0ZW0oaXRlbTogaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW1BY3Rpb24pOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgdmFyaWFudCA9IGl0ZW0udmFyaWFudCB8fCAncHJpbWFyeSc7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGl0ZW0uZGlzYWJsZWQgPT09IHRydWU7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtZW51SXRlbSBhY3Rpb24tJHt2YXJpYW50fSAke2lzRGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJyd9XCJcbiAgICAgICAgQGNsaWNrPVwiJHsoKSA9PiAhaXNEaXNhYmxlZCAmJiB0aGlzLmhhbmRsZUFjdGlvbkNsaWNrKGl0ZW0pfVwiXG4gICAgICA+XG4gICAgICAgICR7aXRlbS5pY29uTmFtZSA/IGh0bWxgPGRlZXMtaWNvbiAuaWNvbj1cIiR7dGhpcy5ub3JtYWxpemVJY29uKGl0ZW0uaWNvbk5hbWUpfVwiPjwvZGVlcy1pY29uPmAgOiAnJ31cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtTGFiZWxcIj4ke2l0ZW0ua2V5fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLXRvb2x0aXBcIj4ke2l0ZW0ua2V5fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckZpbHRlckl0ZW0oaXRlbTogaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW1GaWx0ZXIpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGl0ZW0uZGlzYWJsZWQgPT09IHRydWU7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtZW51SXRlbSBmaWx0ZXIgJHtpdGVtLmFjdGl2ZSA/ICdhY3RpdmUnIDogJyd9ICR7aXNEaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiAnJ31cIlxuICAgICAgICBAY2xpY2s9XCIkeygpID0+ICFpc0Rpc2FibGVkICYmIHRoaXMuaGFuZGxlRmlsdGVyVG9nZ2xlKGl0ZW0pfVwiXG4gICAgICA+XG4gICAgICAgICR7aXRlbS5pY29uTmFtZSA/IGh0bWxgPGRlZXMtaWNvbiAuaWNvbj1cIiR7dGhpcy5ub3JtYWxpemVJY29uKGl0ZW0uaWNvbk5hbWUpfVwiPjwvZGVlcy1pY29uPmAgOiAnJ31cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtTGFiZWxcIj4ke2l0ZW0ua2V5fTwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jaGVja2JveCAke2l0ZW0uYWN0aXZlID8gJ2NoZWNrZWQnIDogJyd9XCI+XG4gICAgICAgICAgJHtpdGVtLmFjdGl2ZSA/IGh0bWxgPGRlZXMtaWNvbiAuaWNvbj1cIiR7J2x1Y2lkZTpjaGVjayd9XCI+PC9kZWVzLWljb24+YCA6ICcnfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLXRvb2x0aXBcIj4ke2l0ZW0ua2V5fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlck11bHRpRmlsdGVySXRlbShpdGVtOiBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbU11bHRpRmlsdGVyKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGlzQ29sbGFwc2VkID0gdGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnMuaGFzKGl0ZW0ua2V5KTtcbiAgICBjb25zdCBjaGVja2VkQ291bnQgPSBpdGVtLm9wdGlvbnMuZmlsdGVyKG9wdCA9PiBvcHQuY2hlY2tlZCkubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwibXVsdGlGaWx0ZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibXVsdGlGaWx0ZXItaGVhZGVyICR7aXNDb2xsYXBzZWQgPyAnY29sbGFwc2VkJyA6ICcnfVwiXG4gICAgICAgICAgQGNsaWNrPVwiJHsoKSA9PiB0aGlzLnRvZ2dsZU11bHRpRmlsdGVyKGl0ZW0ua2V5KX1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtdWx0aUZpbHRlci10aXRsZVwiPlxuICAgICAgICAgICAgJHtpdGVtLmljb25OYW1lID8gaHRtbGA8ZGVlcy1pY29uIC5pY29uPVwiJHt0aGlzLm5vcm1hbGl6ZUljb24oaXRlbS5pY29uTmFtZSl9XCI+PC9kZWVzLWljb24+YCA6ICcnfVxuICAgICAgICAgICAgJHtpdGVtLmtleX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHtjaGVja2VkQ291bnQgPiAwID8gaHRtbGA8c3BhbiBjbGFzcz1cIm11bHRpRmlsdGVyLWNvdW50XCI+JHtjaGVja2VkQ291bnR9PC9zcGFuPmAgOiAnJ31cbiAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPVwiY2hldnJvblwiIC5pY29uPVwiJHsnbHVjaWRlOmNoZXZyb25Eb3duJ31cIj48L2RlZXMtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aUZpbHRlci1vcHRpb25zICR7aXNDb2xsYXBzZWQgPyAnY29sbGFwc2VkJyA6ICcnfVwiPlxuICAgICAgICAgICR7aXRlbS5vcHRpb25zLm1hcChvcHRpb24gPT4gaHRtbGBcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJtdWx0aUZpbHRlci1vcHRpb25cIlxuICAgICAgICAgICAgICBAY2xpY2s9XCIkeygpID0+IHRoaXMuaGFuZGxlTXVsdGlGaWx0ZXJPcHRpb25Ub2dnbGUoaXRlbSwgb3B0aW9uLmtleSl9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1jaGVja2JveCAke29wdGlvbi5jaGVja2VkID8gJ2NoZWNrZWQnIDogJyd9XCI+XG4gICAgICAgICAgICAgICAgJHtvcHRpb24uY2hlY2tlZCA/IGh0bWxgPGRlZXMtaWNvbiAuaWNvbj1cIiR7J2x1Y2lkZTpjaGVjayd9XCI+PC9kZWVzLWljb24+YCA6ICcnfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgJHtvcHRpb24uaWNvbk5hbWUgPyBodG1sYDxkZWVzLWljb24gY2xhc3M9XCJvcHRpb24taWNvblwiIC5pY29uPVwiJHt0aGlzLm5vcm1hbGl6ZUljb24ob3B0aW9uLmljb25OYW1lKX1cIj48L2RlZXMtaWNvbj5gIDogJyd9XG4gICAgICAgICAgICAgIDxzcGFuPiR7b3B0aW9uLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckRpdmlkZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJtZW51RGl2aWRlclwiPjwvZGl2PmA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckhlYWRlcihpdGVtOiBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbUhlYWRlcik6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwibWVudUhlYWRlclwiPiR7aXRlbS5sYWJlbH08L2Rpdj5gO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJMaW5rSXRlbShpdGVtOiBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbUxpbmspOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgaXNFeHRlcm5hbCA9IGl0ZW0uZXh0ZXJuYWwgPz8gaXRlbS5ocmVmLnN0YXJ0c1dpdGgoJ2h0dHAnKTtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gaXRlbS5kaXNhYmxlZCA9PT0gdHJ1ZTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm1lbnVJdGVtIGxpbmsgJHtpc0Rpc2FibGVkID8gJ2Rpc2FibGVkJyA6ICcnfVwiXG4gICAgICAgIEBjbGljaz1cIiR7KCkgPT4gIWlzRGlzYWJsZWQgJiYgdGhpcy5oYW5kbGVMaW5rQ2xpY2soaXRlbSl9XCJcbiAgICAgID5cbiAgICAgICAgJHtpdGVtLmljb25OYW1lID8gaHRtbGA8ZGVlcy1pY29uIC5pY29uPVwiJHt0aGlzLm5vcm1hbGl6ZUljb24oaXRlbS5pY29uTmFtZSl9XCI+PC9kZWVzLWljb24+YCA6ICcnfVxuICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW1MYWJlbFwiPiR7aXRlbS5rZXl9PC9zcGFuPlxuICAgICAgICAke2lzRXh0ZXJuYWwgPyBodG1sYDxkZWVzLWljb24gY2xhc3M9XCJleHRlcm5hbC1pY29uXCIgLmljb249XCIkeydsdWNpZGU6ZXh0ZXJuYWxMaW5rJ31cIj48L2RlZXMtaWNvbj5gIDogJyd9XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbS10b29sdGlwXCI+JHtpdGVtLmtleX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJMZWdhY3lPcHRpb25zKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJsZWdhY3lPcHRpb25zXCI+XG4gICAgICAgICR7dGhpcy5zZWxlY3Rpb25PcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKCdkaXZpZGVyJyBpbiBvcHRpb24gJiYgb3B0aW9uLmRpdmlkZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJkaXZpZGVyXCI+PC9kaXY+YDtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgaXRlbSA9IG9wdGlvbiBhcyBpbnRlcmZhY2VzLklNZW51SXRlbTtcbiAgICAgICAgICAvLyBDb252ZXJ0IGxlZ2FjeSBJTWVudUl0ZW0gdG8gSVNlY29uZGFyeU1lbnVJdGVtVGFiXG4gICAgICAgICAgY29uc3QgdGFiSXRlbTogaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW1UYWIgPSB7XG4gICAgICAgICAgICBrZXk6IGl0ZW0ua2V5LFxuICAgICAgICAgICAgaWNvbk5hbWU6IGl0ZW0uaWNvbk5hbWUsXG4gICAgICAgICAgICBhY3Rpb246IGl0ZW0uYWN0aW9uLFxuICAgICAgICAgICAgYmFkZ2U6IGl0ZW0uYmFkZ2UsXG4gICAgICAgICAgICBiYWRnZVZhcmlhbnQ6IGl0ZW0uYmFkZ2VWYXJpYW50LFxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyVGFiSXRlbSh0YWJJdGVtKTtcbiAgICAgICAgfSl9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgLy8gSGVscGVyIHRvIG5vcm1hbGl6ZSBpY29uIG5hbWVzXG4gIHByaXZhdGUgbm9ybWFsaXplSWNvbihpY29uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaWNvbk5hbWUuc3RhcnRzV2l0aCgnbHVjaWRlOicpID8gaWNvbk5hbWUgOiBgbHVjaWRlOiR7aWNvbk5hbWV9YDtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlR3JvdXAoZ3JvdXBOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdDb2xsYXBzZWQgPSBuZXcgU2V0KHRoaXMuY29sbGFwc2VkR3JvdXBzKTtcbiAgICBpZiAobmV3Q29sbGFwc2VkLmhhcyhncm91cE5hbWUpKSB7XG4gICAgICBuZXdDb2xsYXBzZWQuZGVsZXRlKGdyb3VwTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0NvbGxhcHNlZC5hZGQoZ3JvdXBOYW1lKTtcbiAgICB9XG4gICAgdGhpcy5jb2xsYXBzZWRHcm91cHMgPSBuZXdDb2xsYXBzZWQ7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZU11bHRpRmlsdGVyKGZpbHRlcktleTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbmV3Q29sbGFwc2VkID0gbmV3IFNldCh0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycyk7XG4gICAgaWYgKG5ld0NvbGxhcHNlZC5oYXMoZmlsdGVyS2V5KSkge1xuICAgICAgbmV3Q29sbGFwc2VkLmRlbGV0ZShmaWx0ZXJLZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdDb2xsYXBzZWQuYWRkKGZpbHRlcktleSk7XG4gICAgfVxuICAgIHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzID0gbmV3Q29sbGFwc2VkO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNvbGxhcHNlKCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NvbGxhcHNlLWNoYW5nZScsIHtcbiAgICAgIGRldGFpbDogeyBjb2xsYXBzZWQ6IHRoaXMuY29sbGFwc2VkIH0sXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdFRhYkl0ZW0oaXRlbTogaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW1UYWIsIGdyb3VwPzogaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUdyb3VwKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xuICAgIGl0ZW0uYWN0aW9uKCk7XG5cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdpdGVtLXNlbGVjdCcsIHtcbiAgICAgIGRldGFpbDogeyBpdGVtLCBncm91cCB9LFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVBY3Rpb25DbGljayhpdGVtOiBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbUFjdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEhhbmRsZSBjb25maXJtYXRpb24gaWYgcmVxdWlyZWRcbiAgICBpZiAoaXRlbS5jb25maXJtTWVzc2FnZSkge1xuICAgICAgY29uc3QgY29uZmlybWVkID0gd2luZG93LmNvbmZpcm0oaXRlbS5jb25maXJtTWVzc2FnZSk7XG4gICAgICBpZiAoIWNvbmZpcm1lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXdhaXQgaXRlbS5hY3Rpb24oKTtcblxuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2FjdGlvbi1jbGljaycsIHtcbiAgICAgIGRldGFpbDogeyBpdGVtIH0sXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZpbHRlclRvZ2dsZShpdGVtOiBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbUZpbHRlcik6IHZvaWQge1xuICAgIGNvbnN0IG5ld0FjdGl2ZSA9ICFpdGVtLmFjdGl2ZTtcbiAgICAvLyBVcGRhdGUgdGhlIGl0ZW0ncyBhY3RpdmUgc3RhdGVcbiAgICBpdGVtLmFjdGl2ZSA9IG5ld0FjdGl2ZTtcbiAgICBpdGVtLm9uVG9nZ2xlKG5ld0FjdGl2ZSk7XG5cbiAgICAvLyBGb3JjZSByZS1yZW5kZXIgYnkgaW5jcmVtZW50aW5nIHRoZSByZW5kZXIgY291bnRlclxuICAgIHRoaXMucmVuZGVyQ291bnRlcisrO1xuXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnZmlsdGVyLXRvZ2dsZScsIHtcbiAgICAgIGRldGFpbDogeyBpdGVtLCBhY3RpdmU6IG5ld0FjdGl2ZSB9LFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNdWx0aUZpbHRlck9wdGlvblRvZ2dsZShpdGVtOiBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbU11bHRpRmlsdGVyLCBvcHRpb25LZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIFVwZGF0ZSB0aGUgb3B0aW9uJ3MgY2hlY2tlZCBzdGF0ZVxuICAgIGNvbnN0IG9wdGlvbiA9IGl0ZW0ub3B0aW9ucy5maW5kKG9wdCA9PiBvcHQua2V5ID09PSBvcHRpb25LZXkpO1xuICAgIGlmIChvcHRpb24pIHtcbiAgICAgIG9wdGlvbi5jaGVja2VkID0gIW9wdGlvbi5jaGVja2VkO1xuICAgIH1cblxuICAgIC8vIENhbGN1bGF0ZSB0aGUgbmV3IHNlbGVjdGVkIGtleXNcbiAgICBjb25zdCBzZWxlY3RlZEtleXMgPSBpdGVtLm9wdGlvbnNcbiAgICAgIC5maWx0ZXIob3B0ID0+IG9wdC5jaGVja2VkKVxuICAgICAgLm1hcChvcHQgPT4gb3B0LmtleSk7XG5cbiAgICBpdGVtLm9uQ2hhbmdlKHNlbGVjdGVkS2V5cyk7XG5cbiAgICAvLyBGb3JjZSByZS1yZW5kZXIgYnkgaW5jcmVtZW50aW5nIHRoZSByZW5kZXIgY291bnRlclxuICAgIHRoaXMucmVuZGVyQ291bnRlcisrO1xuXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnbXVsdGlmaWx0ZXItY2hhbmdlJywge1xuICAgICAgZGV0YWlsOiB7IGl0ZW0sIHNlbGVjdGVkS2V5cyB9LFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVMaW5rQ2xpY2soaXRlbTogaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW1MaW5rKTogdm9pZCB7XG4gICAgY29uc3QgaXNFeHRlcm5hbCA9IGl0ZW0uZXh0ZXJuYWwgPz8gaXRlbS5ocmVmLnN0YXJ0c1dpdGgoJ2h0dHAnKTtcblxuICAgIGlmIChpc0V4dGVybmFsKSB7XG4gICAgICB3aW5kb3cub3BlbihpdGVtLmhyZWYsICdfYmxhbmsnLCAnbm9vcGVuZXIsbm9yZWZlcnJlcicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGl0ZW0uaHJlZjtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdsaW5rLWNsaWNrJywge1xuICAgICAgZGV0YWlsOiB7IGl0ZW0gfSxcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtVGFiKTogdm9pZCB7XG4gICAgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGV2ZW50LCBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdWaWV3IGRldGFpbHMnLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHt9LFxuICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpleWUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0VkaXQnLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHt9LFxuICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpwZW5jaWwnLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxuXG4gIGFzeW5jIGZpcnN0VXBkYXRlZChfY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+KSB7XG4gICAgYXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAvLyBJbml0aWFsaXplIGNvbGxhcHNlZCBzdGF0ZSBmcm9tIGdyb3VwIGRlZmF1bHRzXG4gICAgaWYgKHRoaXMuZ3JvdXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGluaXRpYWxDb2xsYXBzZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgIGNvbnN0IGluaXRpYWxNdWx0aUZpbHRlckNvbGxhcHNlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgICB0aGlzLmdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgICAgaWYgKGdyb3VwLmNvbGxhcHNlZCkge1xuICAgICAgICAgIGluaXRpYWxDb2xsYXBzZWQuYWRkKGdyb3VwLm5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIGNvbGxhcHNlZCBtdWx0aS1maWx0ZXJzXG4gICAgICAgIGdyb3VwLml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgaWYgKCd0eXBlJyBpbiBpdGVtICYmIGl0ZW0udHlwZSA9PT0gJ211bHRpRmlsdGVyJykge1xuICAgICAgICAgICAgY29uc3QgbXVsdGlGaWx0ZXIgPSBpdGVtIGFzIGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtTXVsdGlGaWx0ZXI7XG4gICAgICAgICAgICBpZiAobXVsdGlGaWx0ZXIuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgIGluaXRpYWxNdWx0aUZpbHRlckNvbGxhcHNlZC5hZGQobXVsdGlGaWx0ZXIua2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY29sbGFwc2VkR3JvdXBzID0gaW5pdGlhbENvbGxhcHNlZDtcbiAgICAgIHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzID0gaW5pdGlhbE11bHRpRmlsdGVyQ29sbGFwc2VkO1xuXG4gICAgICAvLyBBdXRvLXNlbGVjdCBmaXJzdCB0YWIgaXRlbSBpZiBub25lIHNlbGVjdGVkXG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgdGhpcy5ncm91cHMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZ3JvdXAuaXRlbXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1UeXBlID0gJ3R5cGUnIGluIGl0ZW0gPyBpdGVtLnR5cGUgOiAndGFiJztcbiAgICAgICAgICAgIGlmIChpdGVtVHlwZSA9PT0gJ3RhYicgfHwgaXRlbVR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBjb25zdCB0YWJJdGVtID0gaXRlbSBhcyBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbVRhYjtcbiAgICAgICAgICAgICAgaWYgKCF0YWJJdGVtLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RUYWJJdGVtKHRhYkl0ZW0sIGdyb3VwKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0aW9uT3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBMZWdhY3kgbW9kZTogc2VsZWN0IGZpcnN0IG5vbi1kaXZpZGVyIG9wdGlvblxuICAgICAgY29uc3QgZmlyc3RPcHRpb24gPSB0aGlzLnNlbGVjdGlvbk9wdGlvbnMuZmluZChvcHQgPT4gISgnZGl2aWRlcicgaW4gb3B0KSkgYXMgaW50ZXJmYWNlcy5JTWVudUl0ZW07XG4gICAgICBpZiAoZmlyc3RPcHRpb24gJiYgIXRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgIGNvbnN0IHRhYkl0ZW06IGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtVGFiID0ge1xuICAgICAgICAgIGtleTogZmlyc3RPcHRpb24ua2V5LFxuICAgICAgICAgIGljb25OYW1lOiBmaXJzdE9wdGlvbi5pY29uTmFtZSxcbiAgICAgICAgICBhY3Rpb246IGZpcnN0T3B0aW9uLmFjdGlvbixcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZWxlY3RUYWJJdGVtKHRhYkl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUnOiBEZWVzQXBwdWlTZWNvbmRhcnltZW51O1xuICB9XG59XG4iLCAiaW1wb3J0IHsgaHRtbCwgY3NzTWFuYWdlciwgY3NzLCBEZWVzRWxlbWVudCwgY3VzdG9tRWxlbWVudCwgc3RhdGUgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICogYXMgaW50ZXJmYWNlcyBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2luZGV4LmpzJztcbmltcG9ydCB0eXBlIHsgRGVlc0FwcHVpVGFicyB9IGZyb20gJy4vZGVlcy1hcHB1aS10YWJzLmpzJztcblxuLy8gSW50ZXJhY3RpdmUgZGVtbyBjb21wb25lbnQgZm9yIGNsb3NlYWJsZSB0YWJzXG5AY3VzdG9tRWxlbWVudCgnZGVtby1jbG9zZWFibGUtdGFicycpXG5jbGFzcyBEZW1vQ2xvc2VhYmxlVGFicyBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgdGFiczogaW50ZXJmYWNlcy5JTWVudUl0ZW1bXSA9IFtcbiAgICB7IGtleTogJ01haW4nLCBpY29uTmFtZTogJ2x1Y2lkZTpob21lJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnTWFpbiBjbGlja2VkJykgfSxcbiAgXTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciB0YWJDb3VudGVyOiBudW1iZXIgPSAwO1xuXG4gIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgY3NzYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgfVxuICAgICAgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoNTksIDEzMCwgMjQ2LCAwLjEpJywgJ3JnYmEoNTksIDEzMCwgMjQ2LCAwLjEpJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSg1OSwgMTMwLCAyNDYsIDAuMyknLCAncmdiYSg1OSwgMTMwLCAyNDYsIDAuMyknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzNiODJmNicsICcjNjBhNWZhJyl9O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG4gICAgICBidXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSg1OSwgMTMwLCAyNDYsIDAuMiknLCAncmdiYSg1OSwgMTMwLCAyNDYsIDAuMiknKX07XG4gICAgICB9XG4gICAgICAuaW5mbyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwwLDAsMC4wMiknLCAncmdiYSgyNTUsMjU1LDI1NSwwLjAyKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjYTFhMWFhJyl9O1xuICAgICAgfVxuICAgIGBcbiAgXTtcblxuICBwcml2YXRlIGFkZFRhYigpIHtcbiAgICB0aGlzLnRhYkNvdW50ZXIrKztcbiAgICBjb25zdCB0YWJLZXkgPSBgRG9jdW1lbnQgJHt0aGlzLnRhYkNvdW50ZXJ9YDtcbiAgICB0aGlzLnRhYnMgPSBbXG4gICAgICAuLi50aGlzLnRhYnMsXG4gICAgICB7XG4gICAgICAgIGtleTogdGFiS2V5LFxuICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpmaWxlJyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZyhgJHt0YWJLZXl9IGNsaWNrZWRgKSxcbiAgICAgICAgY2xvc2VhYmxlOiB0cnVlLFxuICAgICAgICBvbkNsb3NlOiAoKSA9PiB0aGlzLnJlbW92ZVRhYih0YWJLZXkpXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlVGFiKHRhYktleTogc3RyaW5nKSB7XG4gICAgdGhpcy50YWJzID0gdGhpcy50YWJzLmZpbHRlcih0ID0+IHQua2V5ICE9PSB0YWJLZXkpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRlZXMtYXBwdWktdGFic1xuICAgICAgICAudGFicz0ke3RoaXMudGFic31cbiAgICAgICAgQHRhYi1jbG9zZT0keyhlOiBDdXN0b21FdmVudCkgPT4gdGhpcy5yZW1vdmVUYWIoZS5kZXRhaWwudGFiLmtleSl9XG4gICAgICA+PC9kZWVzLWFwcHVpLXRhYnM+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbHNcIj5cbiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKSA9PiB0aGlzLmFkZFRhYigpfT4rIEFkZCBOZXcgVGFiPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvXCI+XG4gICAgICAgIENsaWNrIHRoZSBYIGJ1dHRvbiBvbiB0YWJzIHRvIGNsb3NlIHRoZW0uIFRoZSBcIk1haW5cIiB0YWIgaXMgbm90IGNsb3NlYWJsZS5cbiAgICAgICAgPGJyPkN1cnJlbnQgdGFiczogJHt0aGlzLnRhYnMubGVuZ3RofVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG4vLyBJbnRlcmFjdGl2ZSBkZW1vIGZvciBhdXRvLWhpZGUgZmVhdHVyZVxuQGN1c3RvbUVsZW1lbnQoJ2RlbW8tYXV0b2hpZGUtdGFicycpXG5jbGFzcyBEZW1vQXV0b0hpZGVUYWJzIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBAc3RhdGUoKVxuICBhY2Nlc3NvciB0YWJzOiBpbnRlcmZhY2VzLklNZW51SXRlbVtdID0gW1xuICAgIHsga2V5OiAnVGFiIDEnLCBpY29uTmFtZTogJ2x1Y2lkZTpmaWxlJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnVGFiIDEnKSB9LFxuICAgIHsga2V5OiAnVGFiIDInLCBpY29uTmFtZTogJ2x1Y2lkZTpmaWxlJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnVGFiIDInKSB9LFxuICBdO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGF1dG9IaWRlOiBib29sZWFuID0gdHJ1ZTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciB0aHJlc2hvbGQ6IG51bWJlciA9IDE7XG5cbiAgc3RhdGljIHN0eWxlcyA9IFtcbiAgICBjc3NgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLnRhYnMtY29udGFpbmVyIHtcbiAgICAgICAgbWluLWhlaWdodDogNjBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMyNzI3MmEnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG4gICAgICAudGFicy1jb250YWluZXIgZGVlcy1hcHB1aS10YWJzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICAucGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNhMWExYWEnLCAnIzcxNzE3YScpfTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB9XG4gICAgICAuY29udHJvbHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgICAgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoNTksIDEzMCwgMjQ2LCAwLjEpJywgJ3JnYmEoNTksIDEzMCwgMjQ2LCAwLjEpJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSg1OSwgMTMwLCAyNDYsIDAuMyknLCAncmdiYSg1OSwgMTMwLCAyNDYsIDAuMyknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzNiODJmNicsICcjNjBhNWZhJyl9O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG4gICAgICBidXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSg1OSwgMTMwLCAyNDYsIDAuMiknLCAncmdiYSg1OSwgMTMwLCAyNDYsIDAuMiknKX07XG4gICAgICB9XG4gICAgICBidXR0b24uZGFuZ2VyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMjM5LCA2OCwgNjgsIDAuMSknLCAncmdiYSgyMzksIDY4LCA2OCwgMC4xKScpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgyMzksIDY4LCA2OCwgMC4zKScsICdyZ2JhKDIzOSwgNjgsIDY4LCAwLjMpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlZjQ0NDQnLCAnI2Y4NzE3MScpfTtcbiAgICAgIH1cbiAgICAgIGJ1dHRvbi5kYW5nZXI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgyMzksIDY4LCA2OCwgMC4yKScsICdyZ2JhKDIzOSwgNjgsIDY4LCAwLjIpJyl9O1xuICAgICAgfVxuICAgICAgLmluZm8ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsMCwwLDAuMDIpJywgJ3JnYmEoMjU1LDI1NSwyNTUsMC4wMiknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MTcxN2EnLCAnI2ExYTFhYScpfTtcbiAgICAgIH1cbiAgICBgXG4gIF07XG5cbiAgcHJpdmF0ZSB0YWJDb3VudGVyID0gMjtcblxuICBwcml2YXRlIGFkZFRhYigpIHtcbiAgICB0aGlzLnRhYkNvdW50ZXIrKztcbiAgICB0aGlzLnRhYnMgPSBbLi4udGhpcy50YWJzLCB7XG4gICAgICBrZXk6IGBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YCxcbiAgICAgIGljb25OYW1lOiAnbHVjaWRlOmZpbGUnLFxuICAgICAgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZyhgVGFiICR7dGhpcy50YWJDb3VudGVyfWApXG4gICAgfV07XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxhc3RUYWIoKSB7XG4gICAgaWYgKHRoaXMudGFicy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMuc2xpY2UoMCwgLTEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJUYWJzKCkge1xuICAgIHRoaXMudGFicyA9IFtdO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHNob3VsZEhpZGUgPSB0aGlzLmF1dG9IaWRlICYmIHRoaXMudGFicy5sZW5ndGggPD0gdGhpcy50aHJlc2hvbGQ7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzLWNvbnRhaW5lclwiPlxuICAgICAgICAke3Nob3VsZEhpZGVcbiAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlclwiPlRhYnMgaGlkZGVuICgke3RoaXMudGFicy5sZW5ndGh9IHRhYnMgXHUyMjY0IHRocmVzaG9sZCAke3RoaXMudGhyZXNob2xkfSk8L3NwYW4+YFxuICAgICAgICAgIDogaHRtbGA8ZGVlcy1hcHB1aS10YWJzXG4gICAgICAgICAgICAgIC50YWJzPSR7dGhpcy50YWJzfVxuICAgICAgICAgICAgICAuYXV0b0hpZGU9JHt0aGlzLmF1dG9IaWRlfVxuICAgICAgICAgICAgICAuYXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLnRocmVzaG9sZH1cbiAgICAgICAgICAgID48L2RlZXMtYXBwdWktdGFicz5gXG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xzXCI+XG4gICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCkgPT4gdGhpcy5hZGRUYWIoKX0+KyBBZGQgVGFiPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJkYW5nZXJcIiBAY2xpY2s9JHsoKSA9PiB0aGlzLnJlbW92ZUxhc3RUYWIoKX0+LSBSZW1vdmUgVGFiPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJkYW5nZXJcIiBAY2xpY2s9JHsoKSA9PiB0aGlzLmNsZWFyVGFicygpfT5DbGVhciBBbGw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKSA9PiB7IHRoaXMudGhyZXNob2xkID0gMDsgfX0+VGhyZXNob2xkOiAwPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCkgPT4geyB0aGlzLnRocmVzaG9sZCA9IDE7IH19PlRocmVzaG9sZDogMTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpID0+IHsgdGhpcy50aHJlc2hvbGQgPSAyOyB9fT5UaHJlc2hvbGQ6IDI8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImluZm9cIj5cbiAgICAgICAgQXV0by1oaWRlOiAke3RoaXMuYXV0b0hpZGUgPyAnT04nIDogJ09GRid9IHwgVGhyZXNob2xkOiAke3RoaXMudGhyZXNob2xkfSB8IFRhYnM6ICR7dGhpcy50YWJzLmxlbmd0aH1cbiAgICAgICAgPGJyPlRhYnMgd2lsbCBoaWRlIHdoZW4gY291bnQgXHUyMjY0IHRocmVzaG9sZC5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4ge1xuICBjb25zdCBob3Jpem9udGFsVGFiczogaW50ZXJmYWNlcy5JTWVudUl0ZW1bXSA9IFtcbiAgICB7IGtleTogJ0hvbWUnLCBpY29uTmFtZTogJ2x1Y2lkZTpob21lJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnSG9tZSBjbGlja2VkJykgfSxcbiAgICB7IGtleTogJ0FuYWx5dGljcyBEYXNoYm9hcmQnLCBpY29uTmFtZTogJ2x1Y2lkZTpsaW5lQ2hhcnQnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdBbmFseXRpY3MgY2xpY2tlZCcpIH0sXG4gICAgeyBrZXk6ICdSZXBvcnRzJywgaWNvbk5hbWU6ICdsdWNpZGU6ZmlsZVRleHQnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdSZXBvcnRzIGNsaWNrZWQnKSB9LFxuICAgIHsga2V5OiAnVXNlciBTZXR0aW5ncycsIGljb25OYW1lOiAnbHVjaWRlOnNldHRpbmdzJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnU2V0dGluZ3MgY2xpY2tlZCcpIH0sXG4gICAgeyBrZXk6ICdIZWxwJywgaWNvbk5hbWU6ICdsdWNpZGU6aGVscENpcmNsZScsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ0hlbHAgY2xpY2tlZCcpIH0sXG4gIF07XG5cbiAgY29uc3QgdmVydGljYWxUYWJzOiBpbnRlcmZhY2VzLklNZW51SXRlbVtdID0gW1xuICAgIHsga2V5OiAnUHJvZmlsZScsIGljb25OYW1lOiAnbHVjaWRlOnVzZXInLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdQcm9maWxlIGNsaWNrZWQnKSB9LFxuICAgIHsga2V5OiAnU2VjdXJpdHknLCBpY29uTmFtZTogJ2x1Y2lkZTpzaGllbGQnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdTZWN1cml0eSBjbGlja2VkJykgfSxcbiAgICB7IGtleTogJ05vdGlmaWNhdGlvbnMnLCBpY29uTmFtZTogJ2x1Y2lkZTpiZWxsJywgYWN0aW9uOiAoKSA9PiBjb25zb2xlLmxvZygnTm90aWZpY2F0aW9ucyBjbGlja2VkJykgfSxcbiAgICB7IGtleTogJ0ludGVncmF0aW9ucycsIGljb25OYW1lOiAnbHVjaWRlOmxpbmsnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdJbnRlZ3JhdGlvbnMgY2xpY2tlZCcpIH0sXG4gICAgeyBrZXk6ICdBZHZhbmNlZCcsIGljb25OYW1lOiAnbHVjaWRlOmNvZGUnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdBZHZhbmNlZCBjbGlja2VkJykgfSxcbiAgXTtcblxuICBjb25zdCBub0luZGljYXRvclRhYnM6IGludGVyZmFjZXMuSU1lbnVJdGVtW10gPSBbXG4gICAgeyBrZXk6ICdBbGwnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdBbGwgY2xpY2tlZCcpIH0sXG4gICAgeyBrZXk6ICdBY3RpdmUnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdBY3RpdmUgY2xpY2tlZCcpIH0sXG4gICAgeyBrZXk6ICdDb21wbGV0ZWQnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdDb21wbGV0ZWQgY2xpY2tlZCcpIH0sXG4gICAgeyBrZXk6ICdBcmNoaXZlZCcsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ0FyY2hpdmVkIGNsaWNrZWQnKSB9LFxuICBdO1xuXG4gIGNvbnN0IGRlbW9Db250ZW50ID0gKHRleHQ6IHN0cmluZykgPT4gaHRtbGBcbiAgICA8ZGl2IHN0eWxlPVwicGFkZGluZzogMjRweDsgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyNhMWExYWEnKX07XCI+XG4gICAgICAke3RleHR9XG4gICAgPC9kaXY+XG4gIGA7XG5cbiAgcmV0dXJuIGh0bWxgXG4gICAgPHN0eWxlPlxuICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAzMnB4O1xuICAgICAgICBwYWRkaW5nOiA0OHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y4ZjlmYScsICcjMGEwYTBhJyl9O1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgIH1cblxuICAgICAgLnNlY3Rpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMTgxODFiJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5zZWN0aW9uLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgIH1cblxuICAgICAgLnR3by1jb2x1bW4ge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwMHB4IDFmcjtcbiAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICB9XG4gICAgPC9zdHlsZT5cbiAgICA8ZGl2IGNsYXNzPVwiZGVtby1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+SG9yaXpvbnRhbCBUYWJzIHdpdGggQW5pbWF0ZWQgSW5kaWNhdG9yPC9kaXY+XG4gICAgICAgIDxkZWVzLWFwcHVpLXRhYnMgLnRhYnM9JHtob3Jpem9udGFsVGFic30+PC9kZWVzLWFwcHVpLXRhYnM+XG4gICAgICAgICR7ZGVtb0NvbnRlbnQoJ1NlbGVjdCBhIHRhYiB0byBzZWUgdGhlIHNtb290aCBzbGlkaW5nIGFuaW1hdGlvbiBvZiB0aGUgaW5kaWNhdG9yLiBUaGUgaW5kaWNhdG9yIGF1dG9tYXRpY2FsbHkgYWRqdXN0cyBpdHMgd2lkdGggdG8gbWF0Y2ggdGhlIHRhYiBjb250ZW50IHdpdGggbWluaW1hbCBwYWRkaW5nLicpfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+Q2xvc2VhYmxlIFRhYnMgKEJyb3dzZXItc3R5bGUpPC9kaXY+XG4gICAgICAgIDxkZW1vLWNsb3NlYWJsZS10YWJzPjwvZGVtby1jbG9zZWFibGUtdGFicz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkF1dG8taGlkZSBUYWJzPC9kaXY+XG4gICAgICAgIDxkZW1vLWF1dG9oaWRlLXRhYnM+PC9kZW1vLWF1dG9oaWRlLXRhYnM+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5WZXJ0aWNhbCBUYWJzIExheW91dDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidHdvLWNvbHVtblwiPlxuICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMgLnRhYlN0eWxlPSR7J3ZlcnRpY2FsJ30gLnRhYnM9JHt2ZXJ0aWNhbFRhYnN9PjwvZGVlcy1hcHB1aS10YWJzPlxuICAgICAgICAgICR7ZGVtb0NvbnRlbnQoJ1ZlcnRpY2FsIHRhYnMgd29yayBncmVhdCBmb3Igc2V0dGluZ3MgcGFnZXMgYW5kIG5hdmlnYXRpb24gbWVudXMuIFRoZSBhbmltYXRlZCBpbmRpY2F0b3Igc21vb3RobHkgdHJhbnNpdGlvbnMgYmV0d2VlbiBzZWxlY3Rpb25zLicpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPldpdGhvdXQgSW5kaWNhdG9yPC9kaXY+XG4gICAgICAgIDxkZWVzLWFwcHVpLXRhYnMgLnNob3dUYWJJbmRpY2F0b3I9JHtmYWxzZX0gLnRhYnM9JHtub0luZGljYXRvclRhYnN9PjwvZGVlcy1hcHB1aS10YWJzPlxuICAgICAgICAke2RlbW9Db250ZW50KCdUYWJzIGNhbiBhbHNvIGJlIHVzZWQgd2l0aG91dCB0aGUgYW5pbWF0ZWQgaW5kaWNhdG9yIGJ5IHNldHRpbmcgc2hvd1RhYkluZGljYXRvciB0byBmYWxzZS4nKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgO1xufTtcbiIsICJpbXBvcnQgKiBhcyBpbnRlcmZhY2VzIGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaW5kZXguanMnO1xuXG5pbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgcHJvcGVydHksXG4gIHN0YXRlLFxuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmltcG9ydCAqIGFzIGRvbXRvb2xzIGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtYXBwdWktdGFicy5kZW1vLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1hcHB1aS10YWJzJylcbmV4cG9ydCBjbGFzcyBEZWVzQXBwdWlUYWJzIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnQXBwIFVJJztcblxuICAvLyBJTlNUQU5DRVxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IEFycmF5LFxuICB9KVxuICBhY2Nlc3NvciB0YWJzOiBpbnRlcmZhY2VzLklNZW51SXRlbVtdID0gW107XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pXG4gIGFjY2Vzc29yIHNlbGVjdGVkVGFiOiBpbnRlcmZhY2VzLklNZW51SXRlbSB8IG51bGwgPSBudWxsO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3Igc2hvd1RhYkluZGljYXRvcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIHRhYlN0eWxlOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3IgYXV0b0hpZGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3IgYXV0b0hpZGVUaHJlc2hvbGQ6IG51bWJlciA9IDA7XG5cbiAgLy8gU2Nyb2xsIHN0YXRlIGZvciBmYWRlIGluZGljYXRvcnNcbiAgQHN0YXRlKClcbiAgcHJpdmF0ZSBhY2Nlc3NvciBjYW5TY3JvbGxMZWZ0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHN0YXRlKClcbiAgcHJpdmF0ZSBhY2Nlc3NvciBjYW5TY3JvbGxSaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAudGFicy13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC50YWJzLXdyYXBwZXIuaG9yaXpvbnRhbC13cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLyogU2Nyb2xsIGZhZGUgaW5kaWNhdG9ycyAqL1xuICAgICAgLnNjcm9sbC1mYWRlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMXB4O1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgIH1cblxuICAgICAgLnNjcm9sbC1mYWRlLWxlZnQge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsXG4gICAgICAgICAgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzE2MTYxNicpfSAwJSxcbiAgICAgICAgICAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgyNTUsMjU1LDI1NSwwKScsICdyZ2JhKDIyLDIyLDIyLDApJyl9IDEwMCUpO1xuICAgICAgfVxuXG4gICAgICAuc2Nyb2xsLWZhZGUtcmlnaHQge1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsXG4gICAgICAgICAgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzE2MTYxNicpfSAwJSxcbiAgICAgICAgICAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgyNTUsMjU1LDI1NSwwKScsICdyZ2JhKDIyLDIyLDIyLDApJyl9IDEwMCUpO1xuICAgICAgfVxuXG4gICAgICAuc2Nyb2xsLWZhZGUudmlzaWJsZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC50YWJzQ29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgfVxuXG4gICAgICAvKiBTaG93IHNjcm9sbGJhciBvbiBob3ZlciAqL1xuICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHtcbiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLDAsMCwwLjIpJywgJ3JnYmEoMjU1LDI1NSwyNTUsMC4yKScpfSB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgIH1cblxuICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsMCwwLDAuMiknLCAncmdiYSgyNTUsMjU1LDI1NSwwLjIpJyl9O1xuICAgICAgfVxuXG4gICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwwLDAsMC4zNSknLCAncmdiYSgyNTUsMjU1LDI1NSwwLjM1KScpfTtcbiAgICAgIH1cblxuICAgICAgLnRhYnNDb250YWluZXIudmVydGljYWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmOWZhZmInLCAnIzE4MTgxYicpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgfVxuXG4gICAgICAudGFiIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyM3MTcxN2EnKX07XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgfVxuXG4gICAgICAuaG9yaXpvbnRhbCAudGFiIHtcbiAgICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHggNnB4IDAgMDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuaG9yaXpvbnRhbCAudGFiOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0ycHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuaG9yaXpvbnRhbCAudGFiIC50YWItY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLnZlcnRpY2FsIC50YWIge1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnRhYjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA5MDkwYicsICcjZmFmYWZhJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4wMyknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmhvcml6b250YWwgLnRhYjpob3Zlcjo6YWZ0ZXIsXG4gICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyICsgLnRhYjo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuXG4gICAgICAudmVydGljYWwgLnRhYjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDI0NCwgMjQ0LCAyNDUsIDAuNSknLCAncmdiYSgzOSwgMzksIDQyLCAwLjUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWI6OmFmdGVyLFxuICAgICAgLmhvcml6b250YWwgLnRhYi5zZWxlY3RlZFRhYiArIC50YWI6OmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgLnZlcnRpY2FsIC50YWIuc2VsZWN0ZWRUYWIge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgIH1cblxuICAgICAgLnRhYiBkZWVzLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIC50YWJJbmRpY2F0b3Ige1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC50YWJJbmRpY2F0b3Iubm8tdHJhbnNpdGlvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC50YWJzLXdyYXBwZXIgLnRhYkluZGljYXRvciB7XG4gICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyMzYjgyZjYnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgfVxuXG4gICAgICAudmVydGljYWwtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYkluZGljYXRvciB7XG4gICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgcmlnaHQ6IDhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMjcyNzJhJyl9O1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLyogQ2xvc2UgYnV0dG9uICovXG4gICAgICAudGFiLWNsb3NlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1cztcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyM3MTcxN2EnKX07XG4gICAgICB9XG5cbiAgICAgIC50YWI6aG92ZXIgLnRhYi1jbG9zZSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cblxuICAgICAgLnRhYi1jbG9zZTpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsMCwwLDAuMSknLCAncmdiYSgyNTUsMjU1LDI1NSwwLjEpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlZjQ0NDQnLCAnI2Y4NzE3MScpfTtcbiAgICAgIH1cblxuICAgICAgLnRhYi5zZWxlY3RlZFRhYiAudGFiLWNsb3NlIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuXG4gICAgICAudGFiLnNlbGVjdGVkVGFiOmhvdmVyIC50YWItY2xvc2Uge1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICB9XG5cbiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZTpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAvLyBBdXRvLWhpZGUgd2hlbiBlbmFibGVkIGFuZCB0YWIgY291bnQgaXMgYXQgb3IgYmVsb3cgdGhyZXNob2xkXG4gICAgaWYgKHRoaXMuYXV0b0hpZGUgJiYgdGhpcy50YWJzLmxlbmd0aCA8PSB0aGlzLmF1dG9IaWRlVGhyZXNob2xkKSB7XG4gICAgICByZXR1cm4gaHRtbGBgO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7dGhpcy5yZW5kZXJUYWJzV3JhcHBlcigpfVxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclRhYnNXcmFwcGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSB0aGlzLnRhYlN0eWxlID09PSAnaG9yaXpvbnRhbCc7XG4gICAgY29uc3Qgd3JhcHBlckNsYXNzID0gaXNIb3Jpem9udGFsID8gJ3RhYnMtd3JhcHBlciBob3Jpem9udGFsLXdyYXBwZXInIDogJ3ZlcnRpY2FsLXdyYXBwZXInO1xuICAgIGNvbnN0IGNvbnRhaW5lckNsYXNzID0gYHRhYnNDb250YWluZXIgJHt0aGlzLnRhYlN0eWxlfWA7XG5cbiAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cIiR7d3JhcHBlckNsYXNzfVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGwtZmFkZSBzY3JvbGwtZmFkZS1sZWZ0ICR7dGhpcy5jYW5TY3JvbGxMZWZ0ID8gJ3Zpc2libGUnIDogJyd9XCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y29udGFpbmVyQ2xhc3N9XCIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT5cbiAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcCh0YWIgPT4gdGhpcy5yZW5kZXJUYWIodGFiLCBpc0hvcml6b250YWwpKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsLWZhZGUgc2Nyb2xsLWZhZGUtcmlnaHQgJHt0aGlzLmNhblNjcm9sbFJpZ2h0ID8gJ3Zpc2libGUnIDogJyd9XCI+PC9kaXY+XG4gICAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3IgPyBodG1sYDxkaXYgY2xhc3M9XCJ0YWJJbmRpY2F0b3JcIj48L2Rpdj5gIDogJyd9XG4gICAgICAgIDwvZGl2PlxuICAgICAgYDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCIke3dyYXBwZXJDbGFzc31cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y29udGFpbmVyQ2xhc3N9XCI+XG4gICAgICAgICAgJHt0aGlzLnRhYnMubWFwKHRhYiA9PiB0aGlzLnJlbmRlclRhYih0YWIsIGlzSG9yaXpvbnRhbCkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3IgPyBodG1sYDxkaXYgY2xhc3M9XCJ0YWJJbmRpY2F0b3JcIj48L2Rpdj5gIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJUYWIodGFiOiBpbnRlcmZhY2VzLklNZW51SXRlbSwgaXNIb3Jpem9udGFsOiBib29sZWFuKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0YWIgPT09IHRoaXMuc2VsZWN0ZWRUYWI7XG4gICAgY29uc3QgY2xhc3NlcyA9IGB0YWIgJHtpc1NlbGVjdGVkID8gJ3NlbGVjdGVkVGFiJyA6ICcnfWA7XG5cbiAgICBjb25zdCBjbG9zZUJ1dHRvbiA9IHRhYi5jbG9zZWFibGUgPyBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItY2xvc2VcIiBAY2xpY2s9XCIkeyhlOiBFdmVudCkgPT4gdGhpcy5jbG9zZVRhYihlLCB0YWIpfVwiPlxuICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTp4J30gc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCI+PC9kZWVzLWljb24+XG4gICAgICA8L3NwYW4+XG4gICAgYCA6ICcnO1xuXG4gICAgY29uc3QgY29udGVudCA9IGlzSG9yaXpvbnRhbCA/IGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInRhYi1jb250ZW50XCI+XG4gICAgICAgICR7dGhpcy5yZW5kZXJUYWJJY29uKHRhYil9XG4gICAgICAgICR7dGFiLmtleX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgICR7Y2xvc2VCdXR0b259XG4gICAgYCA6IGh0bWxgXG4gICAgICAke3RoaXMucmVuZGVyVGFiSWNvbih0YWIpfVxuICAgICAgJHt0YWIua2V5fVxuICAgICAgJHtjbG9zZUJ1dHRvbn1cbiAgICBgO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiJHtjbGFzc2VzfVwiXG4gICAgICAgIEBjbGljaz1cIiR7KCkgPT4gdGhpcy5zZWxlY3RUYWIodGFiKX1cIlxuICAgICAgPlxuICAgICAgICAke2NvbnRlbnR9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJUYWJJY29uKHRhYjogaW50ZXJmYWNlcy5JTWVudUl0ZW0pOiBUZW1wbGF0ZVJlc3VsdCB8ICcnIHtcbiAgICByZXR1cm4gdGFiLmljb25OYW1lID8gaHRtbGA8ZGVlcy1pY29uIC5pY29uPSR7dGFiLmljb25OYW1lfT48L2RlZXMtaWNvbj5gIDogJyc7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdFRhYih0YWJBcmc6IGludGVyZmFjZXMuSU1lbnVJdGVtKSB7XG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRhYkFyZztcbiAgICB0YWJBcmcuYWN0aW9uKCk7XG5cbiAgICAvLyBTY3JvbGwgc2VsZWN0ZWQgdGFiIGludG8gdmlld1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLnNjcm9sbFRhYkludG9WaWV3KHRhYkFyZyk7XG4gICAgfSk7XG5cbiAgICAvLyBFbWl0IHRhYi1zZWxlY3QgZXZlbnRcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCd0YWItc2VsZWN0Jywge1xuICAgICAgZGV0YWlsOiB7IHRhYjogdGFiQXJnIH0sXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlVGFiKGU6IEV2ZW50LCB0YWI6IGludGVyZmFjZXMuSU1lbnVJdGVtKSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTsgIC8vIERvbid0IHNlbGVjdCB0YWIgd2hlbiBjbG9zaW5nXG5cbiAgICAvLyBDYWxsIHRoZSB0YWIncyBvbkNsb3NlIGNhbGxiYWNrIGlmIGRlZmluZWRcbiAgICBpZiAodGFiLm9uQ2xvc2UpIHtcbiAgICAgIHRhYi5vbkNsb3NlKCk7XG4gICAgfVxuXG4gICAgLy8gQWxzbyBlbWl0IGV2ZW50IGZvciBwYXJlbnQgY29tcG9uZW50c1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3RhYi1jbG9zZScsIHtcbiAgICAgIGRldGFpbDogeyB0YWIgfSxcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZVxuICAgIH0pKTtcbiAgfVxuXG4gIGZpcnN0VXBkYXRlZCgpIHtcbiAgICBpZiAodGhpcy50YWJzICYmIHRoaXMudGFicy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlbGVjdFRhYih0aGlzLnRhYnNbMF0pO1xuICAgIH1cblxuICAgIC8vIFNldCB1cCBSZXNpemVPYnNlcnZlciBmb3Igc2Nyb2xsIHN0YXRlIHVwZGF0ZXNcbiAgICB0aGlzLnNldHVwUmVzaXplT2JzZXJ2ZXIoKTtcblxuICAgIC8vIEluaXRpYWwgc2Nyb2xsIHN0YXRlIGNoZWNrXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgaWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFJlc2l6ZU9ic2VydmVyKCkge1xuICAgIGlmICh0aGlzLnRhYlN0eWxlICE9PSAnaG9yaXpvbnRhbCcpIHJldHVybjtcblxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcudGFic0NvbnRhaW5lci5ob3Jpem9udGFsJyk7XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGNvbnRhaW5lcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgdXBkYXRlU2Nyb2xsU3RhdGUoKSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcudGFic0NvbnRhaW5lci5ob3Jpem9udGFsJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKCFjb250YWluZXIpIHJldHVybjtcblxuICAgIGNvbnN0IHNjcm9sbExlZnQgPSBjb250YWluZXIuc2Nyb2xsTGVmdDtcbiAgICBjb25zdCBzY3JvbGxXaWR0aCA9IGNvbnRhaW5lci5zY3JvbGxXaWR0aDtcbiAgICBjb25zdCBjbGllbnRXaWR0aCA9IGNvbnRhaW5lci5jbGllbnRXaWR0aDtcblxuICAgIC8vIFNtYWxsIHRocmVzaG9sZCB0byBhY2NvdW50IGZvciByb3VuZGluZ1xuICAgIGNvbnN0IHRocmVzaG9sZCA9IDI7XG5cbiAgICB0aGlzLmNhblNjcm9sbExlZnQgPSBzY3JvbGxMZWZ0ID4gdGhyZXNob2xkO1xuICAgIHRoaXMuY2FuU2Nyb2xsUmlnaHQgPSBzY3JvbGxMZWZ0IDwgc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCAtIHRocmVzaG9sZDtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVGFiSW50b1ZpZXcodGFiOiBpbnRlcmZhY2VzLklNZW51SXRlbSkge1xuICAgIGlmICh0aGlzLnRhYlN0eWxlICE9PSAnaG9yaXpvbnRhbCcpIHJldHVybjtcblxuICAgIGNvbnN0IHRhYkluZGV4ID0gdGhpcy50YWJzLmluZGV4T2YodGFiKTtcbiAgICBpZiAodGFiSW5kZXggPT09IC0xKSByZXR1cm47XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy50YWJzQ29udGFpbmVyLmhvcml6b250YWwnKSBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCB0YWJFbGVtZW50ID0gY29udGFpbmVyPy5xdWVyeVNlbGVjdG9yKGAudGFiOm50aC1jaGlsZCgke3RhYkluZGV4ICsgMX0pYCkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAodGFiRWxlbWVudCAmJiBjb250YWluZXIpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCB0YWJSZWN0ID0gdGFiRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgLy8gQ2hlY2sgaWYgdGFiIGlzIGZ1bGx5IHZpc2libGVcbiAgICAgIGNvbnN0IGlzRnVsbHlWaXNpYmxlID1cbiAgICAgICAgdGFiUmVjdC5sZWZ0ID49IGNvbnRhaW5lclJlY3QubGVmdCAmJlxuICAgICAgICB0YWJSZWN0LnJpZ2h0IDw9IGNvbnRhaW5lclJlY3QucmlnaHQ7XG5cbiAgICAgIGlmICghaXNGdWxseVZpc2libGUpIHtcbiAgICAgICAgdGFiRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICduZWFyZXN0JywgaW5saW5lOiAnbmVhcmVzdCcgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogTWFwPHN0cmluZywgYW55Pikge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndGFicycpICYmIHRoaXMudGFicyAmJiB0aGlzLnRhYnMubGVuZ3RoID4gMCAmJiAhdGhpcy5zZWxlY3RlZFRhYikge1xuICAgICAgdGhpcy5zZWxlY3RUYWIodGhpcy50YWJzWzBdKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzZWxlY3RlZFRhYicpIHx8IGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndGFicycpKSB7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO1xuICAgICAgLy8gV2FpdCBmb3IgZm9udHMgdG8gbG9hZCBvbiBmaXJzdCB1cGRhdGVcbiAgICAgIGlmICghdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZCAmJiBkb2N1bWVudC5mb250cykge1xuICAgICAgICBhd2FpdCBkb2N1bWVudC5mb250cy5yZWFkeTtcbiAgICAgIH1cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlVGFiSW5kaWNhdG9yKCk7XG4gICAgICAgIHRoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5kaWNhdG9ySW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHVwZGF0ZVRhYkluZGljYXRvcigpIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkU2hvd0luZGljYXRvcigpKSByZXR1cm47XG5cbiAgICBjb25zdCBzZWxlY3RlZFRhYkVsZW1lbnQgPSB0aGlzLmdldFNlbGVjdGVkVGFiRWxlbWVudCgpO1xuICAgIGlmICghc2VsZWN0ZWRUYWJFbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBpbmRpY2F0b3IgPSB0aGlzLmdldEluZGljYXRvckVsZW1lbnQoKTtcbiAgICBpZiAoIWluZGljYXRvcikgcmV0dXJuO1xuXG4gICAgdGhpcy5oYW5kbGVJbml0aWFsVHJhbnNpdGlvbihpbmRpY2F0b3IpO1xuICAgIFxuICAgIGlmICh0aGlzLnRhYlN0eWxlID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgIHRoaXMudXBkYXRlSG9yaXpvbnRhbEluZGljYXRvcihpbmRpY2F0b3IsIHNlbGVjdGVkVGFiRWxlbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlVmVydGljYWxJbmRpY2F0b3IoaW5kaWNhdG9yLCBzZWxlY3RlZFRhYkVsZW1lbnQpO1xuICAgIH1cblxuICAgIGluZGljYXRvci5zdHlsZS5vcGFjaXR5ID0gJzEnO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRTaG93SW5kaWNhdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGFiICYmIHRoaXMuc2hvd1RhYkluZGljYXRvciAmJiB0aGlzLnRhYnMuaW5jbHVkZXModGhpcy5zZWxlY3RlZFRhYik7XG4gIH1cblxuICBwcml2YXRlIGdldFNlbGVjdGVkVGFiRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB0aGlzLnRhYnMuaW5kZXhPZih0aGlzLnNlbGVjdGVkVGFiKTtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSB0aGlzLnRhYlN0eWxlID09PSAnaG9yaXpvbnRhbCc7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBpc0hvcml6b250YWwgXG4gICAgICA/IGAudGFicy13cmFwcGVyIC50YWJzQ29udGFpbmVyIC50YWI6bnRoLWNoaWxkKCR7c2VsZWN0ZWRJbmRleCArIDF9KWBcbiAgICAgIDogYC52ZXJ0aWNhbC13cmFwcGVyIC50YWJzQ29udGFpbmVyIC50YWI6bnRoLWNoaWxkKCR7c2VsZWN0ZWRJbmRleCArIDF9KWA7XG4gICAgICBcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRpY2F0b3JFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudGFiSW5kaWNhdG9yJyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKGluZGljYXRvcjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQpIHtcbiAgICAgIGluZGljYXRvci5jbGFzc0xpc3QuYWRkKCduby10cmFuc2l0aW9uJyk7XG4gICAgICB0aGlzLmluZGljYXRvckluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgIFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGluZGljYXRvci5jbGFzc0xpc3QucmVtb3ZlKCduby10cmFuc2l0aW9uJyk7XG4gICAgICB9LCA1MCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKGluZGljYXRvcjogSFRNTEVsZW1lbnQsIHRhYkVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFiQ29udGVudCA9IHRhYkVsZW1lbnQucXVlcnlTZWxlY3RvcignLnRhYi1jb250ZW50JykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKCF0YWJDb250ZW50KSByZXR1cm47XG5cbiAgICBjb25zdCB3cmFwcGVyUmVjdCA9IGluZGljYXRvci5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGNvbnRlbnRSZWN0ID0gdGFiQ29udGVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBcbiAgICBjb25zdCBjb250ZW50TGVmdCA9IGNvbnRlbnRSZWN0LmxlZnQgLSB3cmFwcGVyUmVjdC5sZWZ0O1xuICAgIGNvbnN0IGluZGljYXRvcldpZHRoID0gY29udGVudFJlY3Qud2lkdGggKyA4O1xuICAgIGNvbnN0IGluZGljYXRvckxlZnQgPSBjb250ZW50TGVmdCAtIDQ7XG4gICAgXG4gICAgaW5kaWNhdG9yLnN0eWxlLndpZHRoID0gYCR7aW5kaWNhdG9yV2lkdGh9cHhgO1xuICAgIGluZGljYXRvci5zdHlsZS5sZWZ0ID0gYCR7aW5kaWNhdG9yTGVmdH1weGA7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZlcnRpY2FsSW5kaWNhdG9yKGluZGljYXRvcjogSFRNTEVsZW1lbnQsIHRhYkVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFic0NvbnRhaW5lciA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudmVydGljYWwtd3JhcHBlciAudGFic0NvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICghdGFic0NvbnRhaW5lcikgcmV0dXJuO1xuICAgIFxuICAgIGluZGljYXRvci5zdHlsZS50b3AgPSBgJHt0YWJFbGVtZW50Lm9mZnNldFRvcCArIHRhYnNDb250YWluZXIub2Zmc2V0VG9wfXB4YDtcbiAgICBpbmRpY2F0b3Iuc3R5bGUuaGVpZ2h0ID0gYCR7dGFiRWxlbWVudC5jbGllbnRIZWlnaHR9cHhgO1xuICB9XG59IiwgImltcG9ydCAqIGFzIGludGVyZmFjZXMgZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pbmRleC5qcyc7XG5cbmltcG9ydCB7XG4gIERlZXNFbGVtZW50LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBwcm9wZXJ0eSxcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgY3NzLFxuICBjc3NNYW5hZ2VyLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCAnLi4vZGVlcy1hcHB1aS10YWJzL2RlZXMtYXBwdWktdGFicy5qcyc7XG5pbXBvcnQgdHlwZSB7IERlZXNBcHB1aVRhYnMgfSBmcm9tICcuLi9kZWVzLWFwcHVpLXRhYnMvZGVlcy1hcHB1aS10YWJzLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1hcHB1aS1tYWluY29udGVudCcpXG5leHBvcnQgY2xhc3MgRGVlc0FwcHVpTWFpbmNvbnRlbnQgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9ICgpID0+IGh0bWxgXG4gICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnRcbiAgICAgIC50YWJzPSR7W1xuICAgICAgICB7IGtleTogJ092ZXJ2aWV3JywgaWNvbk5hbWU6ICdsdWNpZGU6aG9tZScsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ092ZXJ2aWV3JykgfSxcbiAgICAgICAgeyBrZXk6ICdEZXRhaWxzJywgaWNvbk5hbWU6ICdsdWNpZGU6ZmlsZScsIGFjdGlvbjogKCkgPT4gY29uc29sZS5sb2coJ0RldGFpbHMnKSB9LFxuICAgICAgICB7IGtleTogJ1NldHRpbmdzJywgaWNvbk5hbWU6ICdsdWNpZGU6c2V0dGluZ3MnLCBhY3Rpb246ICgpID0+IGNvbnNvbGUubG9nKCdTZXR0aW5ncycpIH0sXG4gICAgICBdfVxuICAgID5cbiAgICAgIDxkaXYgc2xvdD1cImNvbnRlbnRcIiBzdHlsZT1cInBhZGRpbmc6IDQwcHg7IGNvbG9yOiAjY2NjO1wiPlxuICAgICAgICA8aDE+TWFpbiBDb250ZW50IEFyZWE8L2gxPlxuICAgICAgICA8cD5UaGlzIGlzIHdoZXJlIHlvdXIgYXBwbGljYXRpb24gY29udGVudCBnb2VzLjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGVlcy1hcHB1aS1tYWluY29udGVudD5cbiAgYDtcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnQXBwIFVJJztcblxuICAvLyBJTlNUQU5DRVxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IEFycmF5LFxuICB9KVxuICBhY2Nlc3NvciB0YWJzOiBpbnRlcmZhY2VzLklNZW51SXRlbVtdID0gW1xuICAgIHsga2V5OiAnXHUyNkEwXHVGRTBGIFBsZWFzZSBzZXQgdGFicycsIGFjdGlvbjogKCkgPT4gY29uc29sZS53YXJuKCdObyB0YWJzIGNvbmZpZ3VyZWQgZm9yIG1haW5jb250ZW50JykgfSxcbiAgXTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBPYmplY3QgfSlcbiAgYWNjZXNzb3Igc2VsZWN0ZWRUYWI6IGludGVyZmFjZXMuSU1lbnVJdGVtIHwgbnVsbCA9IG51bGw7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBzaG93VGFiczogYm9vbGVhbiA9IHRydWU7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciB0YWJzQXV0b0hpZGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3IgdGFic0F1dG9IaWRlVGhyZXNob2xkOiBudW1iZXIgPSAwO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIDpob3N0IHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzMzJywgJyNmZmYnKX07XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMxNjE2MTYnKX07XG4gICAgICB9XG5cbiAgICAgIC5tYWluY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICB9XG5cbiAgICAgIC50b3BiYXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjNzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC50b3BiYXIgPiAqIHtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgLmNvbnRlbnQtYXJlYSB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbbm90YWJzXSkgLnRvcGJhciB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwibWFpbmNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9wYmFyXCI+XG4gICAgICAgICAgPGRlZXMtYXBwdWktdGFic1xuICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9XG4gICAgICAgICAgICAuc2VsZWN0ZWRUYWI9JHt0aGlzLnNlbGVjdGVkVGFifVxuICAgICAgICAgICAgLnNob3dUYWJJbmRpY2F0b3I9JHt0cnVlfVxuICAgICAgICAgICAgLnRhYlN0eWxlPSR7J2hvcml6b250YWwnfVxuICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy50YWJzQXV0b0hpZGV9XG4gICAgICAgICAgICAuYXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLnRhYnNBdXRvSGlkZVRocmVzaG9sZH1cbiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB0aGlzLmhhbmRsZVRhYlNlbGVjdChlKX1cbiAgICAgICAgICAgIEB0YWItY2xvc2U9JHsoZTogQ3VzdG9tRXZlbnQpID0+IHRoaXMuaGFuZGxlVGFiQ2xvc2UoZSl9XG4gICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtYXJlYVwiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwiY29udGVudFwiPjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUYWJTZWxlY3QoZTogQ3VzdG9tRXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gZS5kZXRhaWwudGFiO1xuXG4gICAgLy8gUmUtZW1pdCB0aGUgZXZlbnRcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCd0YWItc2VsZWN0Jywge1xuICAgICAgZGV0YWlsOiBlLmRldGFpbCxcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVGFiQ2xvc2UoZTogQ3VzdG9tRXZlbnQpIHtcbiAgICAvLyBSZS1lbWl0IHRoZSBldmVudFxuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3RhYi1jbG9zZScsIHtcbiAgICAgIGRldGFpbDogZS5kZXRhaWwsXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBNYXA8c3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sLCB1bmtub3duPikge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3Nob3dUYWJzJykpIHtcbiAgICAgIGlmICh0aGlzLnNob3dUYWJzKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdub3RhYnMnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdub3RhYnMnLCAnJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllczogTWFwPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgdW5rbm93bj4pIHtcbiAgICBhd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQoX2NoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICAvLyBBcHBseSBpbml0aWFsIG5vdGFicyBzdGF0ZVxuICAgIGlmICghdGhpcy5zaG93VGFicykge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ25vdGFicycsICcnKTtcbiAgICB9XG4gICAgLy8gVGFiIHNlbGVjdGlvbiBpcyBub3cgaGFuZGxlZCBieSB0aGUgZGVlcy1hcHB1aS10YWJzIGNvbXBvbmVudFxuICAgIC8vIEJ1dCB3ZSBuZWVkIHRvIGVuc3VyZSB0aGUgdGFicyBjb21wb25lbnQgaXMgcmVhZHlcbiAgICBjb25zdCB0YWJzQ29tcG9uZW50ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYXBwdWktdGFicycpIGFzIERlZXNBcHB1aVRhYnM7XG4gICAgaWYgKHRhYnNDb21wb25lbnQpIHtcbiAgICAgIGF3YWl0IHRhYnNDb21wb25lbnQudXBkYXRlQ29tcGxldGU7XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0IHtcbiAgRGVlc0VsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHByb3BlcnR5LFxuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG4gIHN0YXRlLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICogYXMgZG9tdG9vbHMgZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyc7XG5pbXBvcnQgKiBhcyBpbnRlcmZhY2VzIGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaW5kZXguanMnO1xuaW1wb3J0IHR5cGUgeyBEZWVzQXBwdWlCYXIgfSBmcm9tICcuLi9kZWVzLWFwcHVpLWFwcGJhci9pbmRleC5qcyc7XG5pbXBvcnQgdHlwZSB7IERlZXNBcHB1aU1haW5tZW51IH0gZnJvbSAnLi4vZGVlcy1hcHB1aS1tYWlubWVudS9kZWVzLWFwcHVpLW1haW5tZW51LmpzJztcbmltcG9ydCB0eXBlIHsgRGVlc0FwcHVpU2Vjb25kYXJ5bWVudSB9IGZyb20gJy4uL2RlZXMtYXBwdWktc2Vjb25kYXJ5bWVudS9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUuanMnO1xuaW1wb3J0IHR5cGUgeyBEZWVzQXBwdWlNYWluY29udGVudCB9IGZyb20gJy4uL2RlZXMtYXBwdWktbWFpbmNvbnRlbnQvZGVlcy1hcHB1aS1tYWluY29udGVudC5qcyc7XG5pbXBvcnQgdHlwZSB7IERlZXNBcHB1aUFjdGl2aXR5bG9nIH0gZnJvbSAnLi4vZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy9kZWVzLWFwcHVpLWFjdGl2aXR5bG9nLmpzJztcbmltcG9ydCB0eXBlIHsgRGVlc0FwcHVpQm90dG9tYmFyIH0gZnJvbSAnLi4vZGVlcy1hcHB1aS1ib3R0b21iYXIvZGVlcy1hcHB1aS1ib3R0b21iYXIuanMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtYXBwdWkuZGVtby5qcyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcblxuLy8gVmlldyByZWdpc3RyeSBmb3IgbWFuYWdpbmcgdmlld3NcbmltcG9ydCB7IFZpZXdSZWdpc3RyeSB9IGZyb20gJy4vdmlldy5yZWdpc3RyeS5qcyc7XG5cbi8vIEltcG9ydCBjaGlsZCBjb21wb25lbnRzXG5pbXBvcnQgJy4uL2RlZXMtYXBwdWktYXBwYmFyL2luZGV4LmpzJztcbmltcG9ydCAnLi4vZGVlcy1hcHB1aS1ib3R0b21iYXIvZGVlcy1hcHB1aS1ib3R0b21iYXIuanMnO1xuaW1wb3J0ICcuLi9kZWVzLWFwcHVpLW1haW5tZW51L2RlZXMtYXBwdWktbWFpbm1lbnUuanMnO1xuaW1wb3J0ICcuLi9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUvZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51LmpzJztcbmltcG9ydCAnLi4vZGVlcy1hcHB1aS1tYWluY29udGVudC9kZWVzLWFwcHVpLW1haW5jb250ZW50LmpzJztcbmltcG9ydCAnLi4vZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy9kZWVzLWFwcHVpLWFjdGl2aXR5bG9nLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1hcHB1aSc6IERlZXNBcHB1aTtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1hcHB1aScpXG5leHBvcnQgY2xhc3MgRGVlc0FwcHVpIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnQXBwIFVJJztcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVBQ1RJVkUgT0JTRVJWQUJMRVMgKFJ4SlMgU3ViamVjdHMpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKiBPYnNlcnZhYmxlIHN0cmVhbSBvZiB2aWV3IGxpZmVjeWNsZSBldmVudHMgKi9cbiAgcHVibGljIHZpZXdMaWZlY3ljbGUkID0gbmV3IGRvbXRvb2xzLnBsdWdpbnMuc21hcnRyeC5yeGpzLlN1YmplY3Q8aW50ZXJmYWNlcy5JVmlld0xpZmVjeWNsZUV2ZW50PigpO1xuXG4gIC8qKiBPYnNlcnZhYmxlIHN0cmVhbSBvZiB2aWV3IGNoYW5nZSBldmVudHMgKi9cbiAgcHVibGljIHZpZXdDaGFuZ2VkJCA9IG5ldyBkb210b29scy5wbHVnaW5zLnNtYXJ0cngucnhqcy5TdWJqZWN0PGludGVyZmFjZXMuSVZpZXdDaGFuZ2VFdmVudD4oKTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gSU5URVJOQUwgUFJPUEVSVElFUyAoUHJvcGVydGllcyBmb3IgY2hpbGQgY29tcG9uZW50cylcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUHJvcGVydGllcyBmb3IgYXBwYmFyXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIGFjY2Vzc29yIGFwcGJhck1lbnVJdGVtczogaW50ZXJmYWNlcy5JQXBwQmFyTWVudUl0ZW1bXSA9IFtdO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBhcHBiYXJCcmVhZGNydW1iczogc3RyaW5nID0gJyc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIGFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3I6IHN0cmluZyA9ICcgPiAnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3IgYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzOiBib29sZWFuID0gdHJ1ZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBPYmplY3QgfSlcbiAgYWNjZXNzb3IgYXBwYmFyVXNlcjogaW50ZXJmYWNlcy5JQXBwVXNlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBhY2Nlc3NvciBhcHBiYXJQcm9maWxlTWVudUl0ZW1zOiBpbnRlcmZhY2VzLklBcHBCYXJNZW51SXRlbVtdID0gW107XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBhcHBiYXJTaG93U2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gUHJvcGVydGllcyBmb3IgbWFpbm1lbnVcbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIG1haW5tZW51TG9nb0ljb246IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBtYWlubWVudUxvZ29UZXh0OiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBhY2Nlc3NvciBtYWlubWVudUdyb3VwczogaW50ZXJmYWNlcy5JTWVudUdyb3VwW10gPSBbXTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBhY2Nlc3NvciBtYWlubWVudUJvdHRvbVRhYnM6IGludGVyZmFjZXMuSU1lbnVJdGVtW10gPSBbXTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBhY2Nlc3NvciBtYWlubWVudVRhYnM6IGludGVyZmFjZXMuSU1lbnVJdGVtW10gPSBbXTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBPYmplY3QgfSlcbiAgYWNjZXNzb3IgbWFpbm1lbnVTZWxlY3RlZFRhYjogaW50ZXJmYWNlcy5JTWVudUl0ZW0gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgLy8gUHJvcGVydGllcyBmb3Igc2Vjb25kYXJ5bWVudVxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3Igc2Vjb25kYXJ5bWVudUhlYWRpbmc6IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIGFjY2Vzc29yIHNlY29uZGFyeW1lbnVHcm91cHM6IGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVHcm91cFtdID0gW107XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pXG4gIGFjY2Vzc29yIHNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW06IGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVJdGVtVGFiIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIC8vIENvbGxhcHNlIHN0YXRlc1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIG1haW5tZW51Q29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBzZWNvbmRhcnltZW51Q29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gVmlzaWJpbGl0eSBzdGF0ZXNcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBtYWlubWVudVZpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3Igc2Vjb25kYXJ5bWVudVZpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3IgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBjb250ZW50VGFic0F1dG9IaWRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIGNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ6IG51bWJlciA9IDA7XG5cbiAgLy8gQWN0aXZpdHkgbG9nIHZpc2liaWxpdHkgYW5kIGNvdW50XG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGFjdGl2aXR5TG9nVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGFjdGl2aXR5TG9nQ291bnQ6IG51bWJlciA9IDA7XG5cbiAgLy8gUHJvcGVydGllcyBmb3IgbWFpbmNvbnRlbnRcbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3IgbWFpbmNvbnRlbnRUYWJzOiBpbnRlcmZhY2VzLklNZW51SXRlbVtdID0gW107XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pXG4gIGFjY2Vzc29yIG1haW5jb250ZW50U2VsZWN0ZWRUYWI6IGludGVyZmFjZXMuSU1lbnVJdGVtIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIC8vIFJlZmVyZW5jZXMgdG8gY2hpbGQgY29tcG9uZW50c1xuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBhcHBiYXI6IERlZXNBcHB1aUJhciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBtYWlubWVudTogRGVlc0FwcHVpTWFpbm1lbnUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3Igc2Vjb25kYXJ5bWVudTogRGVlc0FwcHVpU2Vjb25kYXJ5bWVudSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBtYWluY29udGVudDogRGVlc0FwcHVpTWFpbmNvbnRlbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgYWN0aXZpdHlsb2dFbGVtZW50OiBEZWVzQXBwdWlBY3Rpdml0eWxvZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBib3R0b21iYXJFbGVtZW50OiBEZWVzQXBwdWlCb3R0b21iYXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgYm90dG9tYmFyVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLy8gQ3VycmVudCB2aWV3IHN0YXRlXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGN1cnJlbnRWaWV3OiBpbnRlcmZhY2VzLklWaWV3RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvLyBJbnRlcm5hbCBzZXJ2aWNlc1xuICBwcml2YXRlIHZpZXdSZWdpc3RyeTogVmlld1JlZ2lzdHJ5ID0gbmV3IFZpZXdSZWdpc3RyeSgpO1xuICBwcml2YXRlIHJvdXRlckNsZWFudXA6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHNlYXJjaENhbGxiYWNrOiAoKHF1ZXJ5OiBzdHJpbmcpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgOmhvc3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjBmMGYwJywgJyMxYTFhMWEnKX07XG4gICAgICB9XG4gICAgICAubWFpbmdyaWQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4IC0gMjRweCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAvKiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgc2V0IGR5bmFtaWNhbGx5IGluIHRlbXBsYXRlICovXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgMC4zcyBlYXNlLCBoZWlnaHQgMC4zcyBlYXNlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbYm90dG9tYmFyLWhpZGRlbl0pIC5tYWluZ3JpZCB7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgICB9XG5cbiAgICAgIGRlZXMtYXBwdWktYm90dG9tYmFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgfVxuXG4gICAgICAvKiBaLWluZGV4IGxheWVyaW5nIGZvciBwcm9wZXIgc3RhY2tpbmcgKi9cbiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktbWFpbm1lbnUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICB9XG5cbiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cblxuICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1tYWluY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5tYWluZ3JpZCA+IGRlZXMtYXBwdWktYWN0aXZpdHlsb2cuaGlkZGVuIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy52aXNpYmxlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgfVxuXG4gICAgICAvKiBWaWV3IGNvbnRhaW5lciBmb3IgZHluYW1pY2FsbHkgbG9hZGVkIHZpZXdzICovXG4gICAgICAudmlldy1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgIH1cblxuICAgICAgLnZpZXctY29udGFpbmVyOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4gIHB1YmxpYyByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRlZXMtYXBwdWktYXBwYmFyXG4gICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLmFwcGJhck1lbnVJdGVtc31cbiAgICAgICAgLmJyZWFkY3J1bWJzPSR7dGhpcy5hcHBiYXJCcmVhZGNydW1ic31cbiAgICAgICAgLmJyZWFkY3J1bWJTZXBhcmF0b3I9JHt0aGlzLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3J9XG4gICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9sc31cbiAgICAgICAgLnVzZXI9JHt0aGlzLmFwcGJhclVzZXJ9XG4gICAgICAgIC5wcm9maWxlTWVudUl0ZW1zPSR7dGhpcy5hcHBiYXJQcm9maWxlTWVudUl0ZW1zfVxuICAgICAgICAuc2hvd1NlYXJjaD0ke3RoaXMuYXBwYmFyU2hvd1NlYXJjaH1cbiAgICAgICAgLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT0ke3RydWV9XG4gICAgICAgIC5hY3Rpdml0eUxvZ0NvdW50PSR7dGhpcy5hY3Rpdml0eUxvZ0NvdW50fVxuICAgICAgICAuYWN0aXZpdHlMb2dBY3RpdmU9JHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZX1cbiAgICAgICAgQG1lbnUtc2VsZWN0PSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB0aGlzLmhhbmRsZUFwcGJhck1lbnVTZWxlY3QoZSl9XG4gICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB0aGlzLmhhbmRsZUFwcGJhckJyZWFkY3J1bWJOYXZpZ2F0ZShlKX1cbiAgICAgICAgQHNlYXJjaC1jbGljaz0keygpID0+IHRoaXMuaGFuZGxlQXBwYmFyU2VhcmNoQ2xpY2soKX1cbiAgICAgICAgQHNlYXJjaC1xdWVyeT0keyhlOiBDdXN0b21FdmVudCkgPT4gdGhpcy5oYW5kbGVBcHBiYXJTZWFyY2hRdWVyeShlKX1cbiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCkgPT4gdGhpcy5oYW5kbGVBcHBiYXJVc2VyTWVudU9wZW4oKX1cbiAgICAgICAgQHByb2ZpbGUtbWVudS1zZWxlY3Q9JHsoZTogQ3VzdG9tRXZlbnQpID0+IHRoaXMuaGFuZGxlQXBwYmFyUHJvZmlsZU1lbnVTZWxlY3QoZSl9XG4gICAgICAgIEBhY3Rpdml0eS10b2dnbGU9JHsoKSA9PiB0aGlzLnRvZ2dsZUFjdGl2aXR5TG9nKCl9XG4gICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluZ3JpZFwiIHN0eWxlPVwiZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gMWZyICR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGUgPyAnMjgwcHgnIDogJzBweCd9O1wiPlxuICAgICAgICAke3RoaXMubWFpbm1lbnVWaXNpYmxlID8gaHRtbGBcbiAgICAgICAgICA8ZGVlcy1hcHB1aS1tYWlubWVudVxuICAgICAgICAgICAgLmxvZ29JY29uPSR7dGhpcy5tYWlubWVudUxvZ29JY29ufVxuICAgICAgICAgICAgLmxvZ29UZXh0PSR7dGhpcy5tYWlubWVudUxvZ29UZXh0fVxuICAgICAgICAgICAgLm1lbnVHcm91cHM9JHt0aGlzLm1haW5tZW51R3JvdXBzfVxuICAgICAgICAgICAgLmJvdHRvbVRhYnM9JHt0aGlzLm1haW5tZW51Qm90dG9tVGFic31cbiAgICAgICAgICAgIC50YWJzPSR7dGhpcy5tYWlubWVudVRhYnN9XG4gICAgICAgICAgICAuc2VsZWN0ZWRUYWI9JHt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWJ9XG4gICAgICAgICAgICAuY29sbGFwc2VkPSR7dGhpcy5tYWlubWVudUNvbGxhcHNlZH1cbiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB0aGlzLmhhbmRsZU1haW5tZW51VGFiU2VsZWN0KGUpfVxuICAgICAgICAgICAgQGNvbGxhcHNlLWNoYW5nZT0keyhlOiBDdXN0b21FdmVudCkgPT4gdGhpcy5oYW5kbGVNYWlubWVudUNvbGxhcHNlQ2hhbmdlKGUpfVxuICAgICAgICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+XG4gICAgICAgIGAgOiAnJ31cbiAgICAgICAgJHt0aGlzLnNlY29uZGFyeW1lbnVWaXNpYmxlID8gaHRtbGBcbiAgICAgICAgICA8ZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51XG4gICAgICAgICAgICAuaGVhZGluZz0ke3RoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmd9XG4gICAgICAgICAgICAuZ3JvdXBzPSR7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzfVxuICAgICAgICAgICAgLnNlbGVjdGVkSXRlbT0ke3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbX1cbiAgICAgICAgICAgIC5jb2xsYXBzZWQ9JHt0aGlzLnNlY29uZGFyeW1lbnVDb2xsYXBzZWR9XG4gICAgICAgICAgICBAaXRlbS1zZWxlY3Q9JHsoZTogQ3VzdG9tRXZlbnQpID0+IHRoaXMuaGFuZGxlU2Vjb25kYXJ5bWVudUl0ZW1TZWxlY3QoZSl9XG4gICAgICAgICAgICBAY29sbGFwc2UtY2hhbmdlPSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB0aGlzLmhhbmRsZVNlY29uZGFyeW1lbnVDb2xsYXBzZUNoYW5nZShlKX1cbiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+XG4gICAgICAgIGAgOiAnJ31cbiAgICAgICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnRcbiAgICAgICAgICAudGFicz0ke3RoaXMubWFpbmNvbnRlbnRUYWJzfVxuICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYn1cbiAgICAgICAgICAuc2hvd1RhYnM9JHt0aGlzLm1haW5jb250ZW50VGFic1Zpc2libGV9XG4gICAgICAgICAgLnRhYnNBdXRvSGlkZT0ke3RoaXMuY29udGVudFRhYnNBdXRvSGlkZX1cbiAgICAgICAgICAudGFic0F1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkfVxuICAgICAgICAgIEB0YWItc2VsZWN0PSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB0aGlzLmhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoZSl9XG4gICAgICAgICAgQHRhYi1jbG9zZT0keyhlOiBDdXN0b21FdmVudCkgPT4gdGhpcy5oYW5kbGVDb250ZW50VGFiQ2xvc2UoZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlldy1jb250YWluZXJcIj48L2Rpdj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwibWFpbmNvbnRlbnRcIj48L3Nsb3Q+XG4gICAgICAgIDwvZGVlcy1hcHB1aS1tYWluY29udGVudD5cbiAgICAgICAgPGRlZXMtYXBwdWktYWN0aXZpdHlsb2dcbiAgICAgICAgICBjbGFzcz1cIiR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGUgPyAndmlzaWJsZScgOiAnaGlkZGVuJ31cIlxuICAgICAgICA+PC9kZWVzLWFwcHVpLWFjdGl2aXR5bG9nPlxuICAgICAgPC9kaXY+XG4gICAgICAke3RoaXMuYm90dG9tYmFyVmlzaWJsZSA/IGh0bWxgXG4gICAgICAgIDxkZWVzLWFwcHVpLWJvdHRvbWJhcj48L2RlZXMtYXBwdWktYm90dG9tYmFyPlxuICAgICAgYCA6ICcnfVxuICAgIGA7XG4gIH1cblxuICBhc3luYyBmaXJzdFVwZGF0ZWQoKSB7XG4gICAgLy8gR2V0IHJlZmVyZW5jZXMgdG8gY2hpbGQgY29tcG9uZW50c1xuICAgIHRoaXMuYXBwYmFyID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCdkZWVzLWFwcHVpLWFwcGJhcicpIGFzIERlZXNBcHB1aUJhcjtcbiAgICB0aGlzLm1haW5tZW51ID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCdkZWVzLWFwcHVpLW1haW5tZW51JykgYXMgRGVlc0FwcHVpTWFpbm1lbnU7XG4gICAgdGhpcy5zZWNvbmRhcnltZW51ID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCdkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUnKSBhcyBEZWVzQXBwdWlTZWNvbmRhcnltZW51O1xuICAgIHRoaXMubWFpbmNvbnRlbnQgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYXBwdWktbWFpbmNvbnRlbnQnKSBhcyBEZWVzQXBwdWlNYWluY29udGVudDtcbiAgICB0aGlzLmFjdGl2aXR5bG9nRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignZGVlcy1hcHB1aS1hY3Rpdml0eWxvZycpIGFzIERlZXNBcHB1aUFjdGl2aXR5bG9nO1xuICAgIHRoaXMuYm90dG9tYmFyRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignZGVlcy1hcHB1aS1ib3R0b21iYXInKSBhcyBEZWVzQXBwdWlCb3R0b21iYXI7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gYWN0aXZpdHkgbG9nIGVudHJ5IGNoYW5nZXMgZm9yIGJhZGdlIGNvdW50XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50KSB7XG4gICAgICB0aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5lbnRyaWVzJC5zdWJzY3JpYmUoKGVudHJpZXMpID0+IHtcbiAgICAgICAgdGhpcy5hY3Rpdml0eUxvZ0NvdW50ID0gZW50cmllcy5sZW5ndGg7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBTZXQgYXBwdWkgcmVmZXJlbmNlIGluIHZpZXcgcmVnaXN0cnkgZm9yIGxpZmVjeWNsZSBjb250ZXh0XG4gICAgdGhpcy52aWV3UmVnaXN0cnkuc2V0QXBwdWlSZWYodGhpcyBhcyB1bmtub3duIGFzIGludGVyZmFjZXMuVERlZXNBcHB1aSk7XG4gIH1cblxuICBhc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIC8vIENsZWFuIHVwIHJvdXRlciBsaXN0ZW5lclxuICAgIGlmICh0aGlzLnJvdXRlckNsZWFudXApIHtcbiAgICAgIHRoaXMucm91dGVyQ2xlYW51cCgpO1xuICAgICAgdGhpcy5yb3V0ZXJDbGVhbnVwID0gbnVsbDtcbiAgICB9XG4gICAgLy8gQ29tcGxldGUgc3ViamVjdHNcbiAgICB0aGlzLnZpZXdMaWZlY3ljbGUkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy52aWV3Q2hhbmdlZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUk9HUkFNTUFUSUMgQVBJOiBBUFAgQkFSXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGFwcCBiYXIgbWVudSBpdGVtcyAoRmlsZSwgRWRpdCwgVmlldywgZXRjLilcbiAgICovXG4gIHB1YmxpYyBzZXRBcHBCYXJNZW51cyhtZW51czogaW50ZXJmYWNlcy5JQXBwQmFyTWVudUl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMuYXBwYmFyTWVudUl0ZW1zID0gWy4uLm1lbnVzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYSBzaW5nbGUgYXBwIGJhciBtZW51IGJ5IG5hbWVcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVBcHBCYXJNZW51KG5hbWU6IHN0cmluZywgdXBkYXRlOiBQYXJ0aWFsPGludGVyZmFjZXMuSUFwcEJhck1lbnVJdGVtPik6IHZvaWQge1xuICAgIHRoaXMuYXBwYmFyTWVudUl0ZW1zID0gdGhpcy5hcHBiYXJNZW51SXRlbXMubWFwKG1lbnUgPT4ge1xuICAgICAgLy8gQ2hlY2sgaWYgaXQncyBub3QgYSBkaXZpZGVyIGFuZCBoYXMgYSBuYW1lIHByb3BlcnR5XG4gICAgICBpZiAoJ25hbWUnIGluIG1lbnUgJiYgbWVudS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgIHJldHVybiB7IC4uLm1lbnUsIC4uLnVwZGF0ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1lbnU7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBicmVhZGNydW1icyAoc3RyaW5nIG9yIGFycmF5KVxuICAgKi9cbiAgcHVibGljIHNldEJyZWFkY3J1bWJzKGJyZWFkY3J1bWJzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGJyZWFkY3J1bWJzKSkge1xuICAgICAgdGhpcy5hcHBiYXJCcmVhZGNydW1icyA9IGJyZWFkY3J1bWJzLmpvaW4odGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hcHBiYXJCcmVhZGNydW1icyA9IGJyZWFkY3J1bWJzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGN1cnJlbnQgdXNlclxuICAgKi9cbiAgcHVibGljIHNldFVzZXIodXNlcjogaW50ZXJmYWNlcy5JQXBwVXNlciB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuYXBwYmFyVXNlciA9IHVzZXI7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBwcm9maWxlIGRyb3Bkb3duIG1lbnUgaXRlbXNcbiAgICovXG4gIHB1YmxpYyBzZXRQcm9maWxlTWVudUl0ZW1zKGl0ZW1zOiBpbnRlcmZhY2VzLklBcHBCYXJNZW51SXRlbVtdKTogdm9pZCB7XG4gICAgdGhpcy5hcHBiYXJQcm9maWxlTWVudUl0ZW1zID0gWy4uLml0ZW1zXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgc2VhcmNoIGJhciB2aXNpYmlsaXR5XG4gICAqL1xuICBwdWJsaWMgc2V0U2VhcmNoVmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5hcHBiYXJTaG93U2VhcmNoID0gdmlzaWJsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgd2luZG93IGNvbnRyb2xzIHZpc2liaWxpdHlcbiAgICovXG4gIHB1YmxpYyBzZXRXaW5kb3dDb250cm9sc1Zpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzID0gdmlzaWJsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIHNlYXJjaCBjYWxsYmFja1xuICAgKi9cbiAgcHVibGljIG9uU2VhcmNoKGNhbGxiYWNrOiAocXVlcnk6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoQ2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUk9HUkFNTUFUSUMgQVBJOiBNQUlOIE1FTlVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZW50aXJlIG1haW4gbWVudSBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgc2V0TWFpbk1lbnUoY29uZmlnOiBpbnRlcmZhY2VzLklNYWluTWVudUNvbmZpZyk6IHZvaWQge1xuICAgIGlmIChjb25maWcubG9nb0ljb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tYWlubWVudUxvZ29JY29uID0gY29uZmlnLmxvZ29JY29uO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmxvZ29UZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubWFpbm1lbnVMb2dvVGV4dCA9IGNvbmZpZy5sb2dvVGV4dDtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5ncm91cHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tYWlubWVudUdyb3VwcyA9IFsuLi5jb25maWcuZ3JvdXBzXTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5ib3R0b21UYWJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubWFpbm1lbnVCb3R0b21UYWJzID0gWy4uLmNvbmZpZy5ib3R0b21UYWJzXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGEgc3BlY2lmaWMgbWVudSBncm91cCBieSBuYW1lXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlTWFpbk1lbnVHcm91cChncm91cE5hbWU6IHN0cmluZywgdXBkYXRlOiBQYXJ0aWFsPGludGVyZmFjZXMuSU1lbnVHcm91cD4pOiB2b2lkIHtcbiAgICB0aGlzLm1haW5tZW51R3JvdXBzID0gdGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoZ3JvdXAgPT5cbiAgICAgIGdyb3VwLm5hbWUgPT09IGdyb3VwTmFtZSA/IHsgLi4uZ3JvdXAsIC4uLnVwZGF0ZSB9IDogZ3JvdXBcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG1lbnUgaXRlbSB0byBhIHNwZWNpZmljIGdyb3VwXG4gICAqL1xuICBwdWJsaWMgYWRkTWFpbk1lbnVJdGVtKGdyb3VwTmFtZTogc3RyaW5nLCB0YWI6IGludGVyZmFjZXMuSU1lbnVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5tYWlubWVudUdyb3VwcyA9IHRoaXMubWFpbm1lbnVHcm91cHMubWFwKGdyb3VwID0+IHtcbiAgICAgIGlmIChncm91cC5uYW1lID09PSBncm91cE5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5ncm91cCxcbiAgICAgICAgICBpdGVtczogWy4uLihncm91cC5pdGVtcyB8fCBbXSksIHRhYl0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gZ3JvdXA7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgbWVudSBpdGVtIGZyb20gYSBncm91cCBieSBrZXlcbiAgICovXG4gIHB1YmxpYyByZW1vdmVNYWluTWVudUl0ZW0oZ3JvdXBOYW1lOiBzdHJpbmcsIHRhYktleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5tYWlubWVudUdyb3VwcyA9IHRoaXMubWFpbm1lbnVHcm91cHMubWFwKGdyb3VwID0+IHtcbiAgICAgIGlmIChncm91cC5uYW1lID09PSBncm91cE5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5ncm91cCxcbiAgICAgICAgICBpdGVtczogKGdyb3VwLml0ZW1zIHx8IFtdKS5maWx0ZXIodCA9PiB0LmtleSAhPT0gdGFiS2V5KSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBncm91cDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHNlbGVjdGVkIG1haW4gbWVudSBpdGVtIGJ5IGtleVxuICAgKi9cbiAgcHVibGljIHNldE1haW5NZW51U2VsZWN0aW9uKHRhYktleTogc3RyaW5nKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBncm91cCBvZiB0aGlzLm1haW5tZW51R3JvdXBzKSB7XG4gICAgICBjb25zdCB0YWIgPSBncm91cC5pdGVtcz8uZmluZCh0ID0+IHQua2V5ID09PSB0YWJLZXkpO1xuICAgICAgaWYgKHRhYikge1xuICAgICAgICB0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWIgPSB0YWI7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQ2hlY2sgYm90dG9tIHRhYnNcbiAgICBjb25zdCBib3R0b21UYWIgPSB0aGlzLm1haW5tZW51Qm90dG9tVGFicy5maW5kKHQgPT4gdC5rZXkgPT09IHRhYktleSk7XG4gICAgaWYgKGJvdHRvbVRhYikge1xuICAgICAgdGhpcy5tYWlubWVudVNlbGVjdGVkVGFiID0gYm90dG9tVGFiO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbWFpbiBtZW51IGNvbGxhcHNlZCBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHNldE1haW5NZW51Q29sbGFwc2VkKGNvbGxhcHNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMubWFpbm1lbnVDb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG1haW4gbWVudSB2aXNpYmlsaXR5XG4gICAqL1xuICBwdWJsaWMgc2V0TWFpbk1lbnVWaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm1haW5tZW51VmlzaWJsZSA9IHZpc2libGU7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHNlY29uZGFyeSBtZW51IGNvbGxhcHNlZCBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHNldFNlY29uZGFyeU1lbnVDb2xsYXBzZWQoY29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkID0gY29sbGFwc2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBzZWNvbmRhcnkgbWVudSB2aXNpYmlsaXR5XG4gICAqL1xuICBwdWJsaWMgc2V0U2Vjb25kYXJ5TWVudVZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2Vjb25kYXJ5bWVudVZpc2libGUgPSB2aXNpYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb250ZW50IHRhYnMgdmlzaWJpbGl0eVxuICAgKi9cbiAgcHVibGljIHNldENvbnRlbnRUYWJzVmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5tYWluY29udGVudFRhYnNWaXNpYmxlID0gdmlzaWJsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY29udGVudCB0YWJzIGF1dG8taGlkZSBiZWhhdmlvclxuICAgKiBAcGFyYW0gZW5hYmxlZCAtIEVuYWJsZSBhdXRvLWhpZGUgZmVhdHVyZVxuICAgKiBAcGFyYW0gdGhyZXNob2xkIC0gSGlkZSB3aGVuIHRhYnMubGVuZ3RoIDw9IHRocmVzaG9sZCAoZGVmYXVsdCAwID0gaGlkZSB3aGVuIG5vIHRhYnMpXG4gICAqL1xuICBwdWJsaWMgc2V0Q29udGVudFRhYnNBdXRvSGlkZShlbmFibGVkOiBib29sZWFuLCB0aHJlc2hvbGQ6IG51bWJlciA9IDApOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGUgPSBlbmFibGVkO1xuICAgIHRoaXMuY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCA9IHRocmVzaG9sZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBiYWRnZSBvbiBhIG1haW4gbWVudSBpdGVtXG4gICAqL1xuICBwdWJsaWMgc2V0TWFpbk1lbnVCYWRnZSh0YWJLZXk6IHN0cmluZywgYmFkZ2U6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubWFpbm1lbnVHcm91cHMgPSB0aGlzLm1haW5tZW51R3JvdXBzLm1hcChncm91cCA9PiAoe1xuICAgICAgLi4uZ3JvdXAsXG4gICAgICBpdGVtczogKGdyb3VwLml0ZW1zIHx8IFtdKS5tYXAodGFiID0+XG4gICAgICAgIHRhYi5rZXkgPT09IHRhYktleSA/IHsgLi4udGFiLCBiYWRnZSB9IDogdGFiXG4gICAgICApLFxuICAgIH0pKTtcbiAgICAvLyBBbHNvIGNoZWNrIGJvdHRvbSB0YWJzXG4gICAgdGhpcy5tYWlubWVudUJvdHRvbVRhYnMgPSB0aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAodGFiID0+XG4gICAgICB0YWIua2V5ID09PSB0YWJLZXkgPyB7IC4uLnRhYiwgYmFkZ2UgfSA6IHRhYlxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYSBiYWRnZSBmcm9tIGEgbWFpbiBtZW51IGl0ZW1cbiAgICovXG4gIHB1YmxpYyBjbGVhck1haW5NZW51QmFkZ2UodGFiS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm1haW5tZW51R3JvdXBzID0gdGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoZ3JvdXAgPT4gKHtcbiAgICAgIC4uLmdyb3VwLFxuICAgICAgaXRlbXM6IChncm91cC5pdGVtcyB8fCBbXSkubWFwKHRhYiA9PiB7XG4gICAgICAgIGlmICh0YWIua2V5ID09PSB0YWJLZXkpIHtcbiAgICAgICAgICBjb25zdCB7IGJhZGdlLCAuLi5yZXN0IH0gPSB0YWI7XG4gICAgICAgICAgcmV0dXJuIHJlc3Q7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhYjtcbiAgICAgIH0pLFxuICAgIH0pKTtcbiAgICAvLyBBbHNvIGNoZWNrIGJvdHRvbSB0YWJzXG4gICAgdGhpcy5tYWlubWVudUJvdHRvbVRhYnMgPSB0aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAodGFiID0+IHtcbiAgICAgIGlmICh0YWIua2V5ID09PSB0YWJLZXkpIHtcbiAgICAgICAgY29uc3QgeyBiYWRnZSwgLi4ucmVzdCB9ID0gdGFiO1xuICAgICAgICByZXR1cm4gcmVzdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0YWI7XG4gICAgfSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJPR1JBTU1BVElDIEFQSTogU0VDT05EQVJZIE1FTlVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgc2Vjb25kYXJ5IG1lbnUgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHNldFNlY29uZGFyeU1lbnUoY29uZmlnOiB7IGhlYWRpbmc/OiBzdHJpbmc7IGdyb3VwczogaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUdyb3VwW10gfSk6IHZvaWQge1xuICAgIGlmIChjb25maWcuaGVhZGluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nID0gY29uZmlnLmhlYWRpbmc7XG4gICAgfVxuICAgIHRoaXMuc2Vjb25kYXJ5bWVudUdyb3VwcyA9IFsuLi5jb25maWcuZ3JvdXBzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYSBzcGVjaWZpYyBzZWNvbmRhcnkgbWVudSBncm91cFxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVNlY29uZGFyeU1lbnVHcm91cChncm91cE5hbWU6IHN0cmluZywgdXBkYXRlOiBQYXJ0aWFsPGludGVyZmFjZXMuSVNlY29uZGFyeU1lbnVHcm91cD4pOiB2b2lkIHtcbiAgICB0aGlzLnNlY29uZGFyeW1lbnVHcm91cHMgPSB0aGlzLnNlY29uZGFyeW1lbnVHcm91cHMubWFwKGdyb3VwID0+XG4gICAgICBncm91cC5uYW1lID09PSBncm91cE5hbWUgPyB7IC4uLmdyb3VwLCAuLi51cGRhdGUgfSA6IGdyb3VwXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gaXRlbSB0byBhIHNlY29uZGFyeSBtZW51IGdyb3VwXG4gICAqL1xuICBwdWJsaWMgYWRkU2Vjb25kYXJ5TWVudUl0ZW0oXG4gICAgZ3JvdXBOYW1lOiBzdHJpbmcsXG4gICAgaXRlbTogaW50ZXJmYWNlcy5JU2Vjb25kYXJ5TWVudUl0ZW1cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzID0gdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzLm1hcChncm91cCA9PiB7XG4gICAgICBpZiAoZ3JvdXAubmFtZSA9PT0gZ3JvdXBOYW1lKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgaXRlbXM6IFsuLi5ncm91cC5pdGVtcywgaXRlbV0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gZ3JvdXA7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBzZWxlY3RlZCBzZWNvbmRhcnkgbWVudSBpdGVtIGJ5IGtleSAoZm9yIHRhYiBpdGVtcyBvbmx5KVxuICAgKi9cbiAgcHVibGljIHNldFNlY29uZGFyeU1lbnVTZWxlY3Rpb24oaXRlbUtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBncm91cCBvZiB0aGlzLnNlY29uZGFyeW1lbnVHcm91cHMpIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBncm91cC5pdGVtcy5maW5kKGkgPT4gJ2tleScgaW4gaSAmJiBpLmtleSA9PT0gaXRlbUtleSk7XG4gICAgICBpZiAoaXRlbSAmJiAoISgndHlwZScgaW4gaXRlbSkgfHwgaXRlbS50eXBlID09PSAndGFiJyB8fCBpdGVtLnR5cGUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgdGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtID0gaXRlbSBhcyBpbnRlcmZhY2VzLklTZWNvbmRhcnlNZW51SXRlbVRhYjtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgc2Vjb25kYXJ5IG1lbnVcbiAgICovXG4gIHB1YmxpYyBjbGVhclNlY29uZGFyeU1lbnUoKTogdm9pZCB7XG4gICAgdGhpcy5zZWNvbmRhcnltZW51SGVhZGluZyA9ICcnO1xuICAgIHRoaXMuc2Vjb25kYXJ5bWVudUdyb3VwcyA9IFtdO1xuICAgIHRoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUk9HUkFNTUFUSUMgQVBJOiBDT05URU5UIFRBQlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY29udGVudCB0YWJzXG4gICAqL1xuICBwdWJsaWMgc2V0Q29udGVudFRhYnModGFiczogaW50ZXJmYWNlcy5JTWVudUl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMubWFpbmNvbnRlbnRUYWJzID0gWy4uLnRhYnNdO1xuICAgIGlmICh0YWJzLmxlbmd0aCA+IDAgJiYgIXRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYikge1xuICAgICAgdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiID0gdGFic1swXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgY29udGVudCB0YWJcbiAgICovXG4gIHB1YmxpYyBhZGRDb250ZW50VGFiKHRhYjogaW50ZXJmYWNlcy5JTWVudUl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLm1haW5jb250ZW50VGFicyA9IFsuLi50aGlzLm1haW5jb250ZW50VGFicywgdGFiXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSBjb250ZW50IHRhYiBieSBrZXlcbiAgICovXG4gIHB1YmxpYyByZW1vdmVDb250ZW50VGFiKHRhYktleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5tYWluY29udGVudFRhYnMgPSB0aGlzLm1haW5jb250ZW50VGFicy5maWx0ZXIodCA9PiB0LmtleSAhPT0gdGFiS2V5KTtcbiAgICBpZiAodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPy5rZXkgPT09IHRhYktleSkge1xuICAgICAgdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiID0gdGhpcy5tYWluY29udGVudFRhYnNbMF07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIGNvbnRlbnQgdGFiIGJ5IGtleVxuICAgKi9cbiAgcHVibGljIHNlbGVjdENvbnRlbnRUYWIodGFiS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLm1haW5jb250ZW50VGFicy5maW5kKHQgPT4gdC5rZXkgPT09IHRhYktleSk7XG4gICAgaWYgKHRhYikge1xuICAgICAgdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiID0gdGFiO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjb250ZW50IHRhYlxuICAgKi9cbiAgcHVibGljIGdldFNlbGVjdGVkQ29udGVudFRhYigpOiBpbnRlcmZhY2VzLklNZW51SXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYjtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUk9HUkFNTUFUSUMgQVBJOiBBQ1RJVklUWSBMT0dcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYWN0aXZpdHkgbG9nIEFQSVxuICAgKi9cbiAgcHVibGljIGdldCBhY3Rpdml0eUxvZygpOiBpbnRlcmZhY2VzLklBY3Rpdml0eUxvZ0FQSSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2aXR5bG9nRWxlbWVudCkge1xuICAgICAgLy8gUmV0dXJuIGEgZGVmZXJyZWQgQVBJIHRoYXQgd2lsbCB3b3JrIGFmdGVyIGZpcnN0VXBkYXRlZFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWRkOiAoZW50cnkpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmFkZChlbnRyeSkpO1xuICAgICAgICB9LFxuICAgICAgICBhZGRNYW55OiAoZW50cmllcykgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uYWRkTWFueShlbnRyaWVzKSk7XG4gICAgICAgIH0sXG4gICAgICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpID0+IHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5jbGVhcigpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0RW50cmllczogKCkgPT4gdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmdldEVudHJpZXMoKSB8fCBbXSxcbiAgICAgICAgZmlsdGVyOiAoY3JpdGVyaWEpID0+IHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5maWx0ZXIoY3JpdGVyaWEpIHx8IFtdLFxuICAgICAgICBzZWFyY2g6IChxdWVyeSkgPT4gdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LnNlYXJjaChxdWVyeSkgfHwgW10sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgYWRkOiAoZW50cnkpID0+IHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50IS5hZGQoZW50cnkpLFxuICAgICAgYWRkTWFueTogKGVudHJpZXMpID0+IHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50IS5hZGRNYW55KGVudHJpZXMpLFxuICAgICAgY2xlYXI6ICgpID0+IHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50IS5jbGVhcigpLFxuICAgICAgZ2V0RW50cmllczogKCkgPT4gdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQhLmdldEVudHJpZXMoKSxcbiAgICAgIGZpbHRlcjogKGNyaXRlcmlhKSA9PiB0aGlzLmFjdGl2aXR5bG9nRWxlbWVudCEuZmlsdGVyKGNyaXRlcmlhKSxcbiAgICAgIHNlYXJjaDogKHF1ZXJ5KSA9PiB0aGlzLmFjdGl2aXR5bG9nRWxlbWVudCEuc2VhcmNoKHF1ZXJ5KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhY3Rpdml0eSBsb2cgdmlzaWJpbGl0eVxuICAgKi9cbiAgcHVibGljIHNldEFjdGl2aXR5TG9nVmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGUgPSB2aXNpYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBhY3Rpdml0eSBsb2cgdmlzaWJpbGl0eVxuICAgKi9cbiAgcHVibGljIHRvZ2dsZUFjdGl2aXR5TG9nKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZpdHlMb2dWaXNpYmxlID0gIXRoaXMuYWN0aXZpdHlMb2dWaXNpYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhY3Rpdml0eSBsb2cgdmlzaWJpbGl0eSBzdGF0ZVxuICAgKi9cbiAgcHVibGljIGdldEFjdGl2aXR5TG9nVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJPR1JBTU1BVElDIEFQSTogQk9UVE9NIEJBUlxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0IHRoZSBib3R0b20gYmFyIEFQSSBmb3Igd2lkZ2V0L2FjdGlvbiBtYW5hZ2VtZW50XG4gICAqL1xuICBwdWJsaWMgZ2V0IGJvdHRvbUJhcigpOiBpbnRlcmZhY2VzLklCb3R0b21CYXJBUEkge1xuICAgIGlmICghdGhpcy5ib3R0b21iYXJFbGVtZW50KSB7XG4gICAgICAvLyBSZXR1cm4gYSBkZWZlcnJlZCBBUEkgdGhhdCB3aWxsIHdvcmsgYWZ0ZXIgZmlyc3RVcGRhdGVkXG4gICAgICByZXR1cm4ge1xuICAgICAgICBhZGRXaWRnZXQ6ICh3aWRnZXQpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5ib3R0b21iYXJFbGVtZW50Py5hZGRXaWRnZXQod2lkZ2V0KSk7XG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZVdpZGdldDogKGlkLCB1cGRhdGUpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5ib3R0b21iYXJFbGVtZW50Py51cGRhdGVXaWRnZXQoaWQsIHVwZGF0ZSkpO1xuICAgICAgICB9LFxuICAgICAgICByZW1vdmVXaWRnZXQ6IChpZCkgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLmJvdHRvbWJhckVsZW1lbnQ/LnJlbW92ZVdpZGdldChpZCkpO1xuICAgICAgICB9LFxuICAgICAgICBnZXRXaWRnZXQ6IChpZCkgPT4gdGhpcy5ib3R0b21iYXJFbGVtZW50Py5nZXRXaWRnZXQoaWQpLFxuICAgICAgICBjbGVhcldpZGdldHM6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5ib3R0b21iYXJFbGVtZW50Py5jbGVhcldpZGdldHMoKSk7XG4gICAgICAgIH0sXG4gICAgICAgIGFkZEFjdGlvbjogKGFjdGlvbikgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmFkZEFjdGlvbihhY3Rpb24pKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlQWN0aW9uOiAoaWQpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5ib3R0b21iYXJFbGVtZW50Py5yZW1vdmVBY3Rpb24oaWQpKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xlYXJBY3Rpb25zOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpID0+IHRoaXMuYm90dG9tYmFyRWxlbWVudD8uY2xlYXJBY3Rpb25zKCkpO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZFdpZGdldDogKHdpZGdldCkgPT4gdGhpcy5ib3R0b21iYXJFbGVtZW50IS5hZGRXaWRnZXQod2lkZ2V0KSxcbiAgICAgIHVwZGF0ZVdpZGdldDogKGlkLCB1cGRhdGUpID0+IHRoaXMuYm90dG9tYmFyRWxlbWVudCEudXBkYXRlV2lkZ2V0KGlkLCB1cGRhdGUpLFxuICAgICAgcmVtb3ZlV2lkZ2V0OiAoaWQpID0+IHRoaXMuYm90dG9tYmFyRWxlbWVudCEucmVtb3ZlV2lkZ2V0KGlkKSxcbiAgICAgIGdldFdpZGdldDogKGlkKSA9PiB0aGlzLmJvdHRvbWJhckVsZW1lbnQhLmdldFdpZGdldChpZCksXG4gICAgICBjbGVhcldpZGdldHM6ICgpID0+IHRoaXMuYm90dG9tYmFyRWxlbWVudCEuY2xlYXJXaWRnZXRzKCksXG4gICAgICBhZGRBY3Rpb246IChhY3Rpb24pID0+IHRoaXMuYm90dG9tYmFyRWxlbWVudCEuYWRkQWN0aW9uKGFjdGlvbiksXG4gICAgICByZW1vdmVBY3Rpb246IChpZCkgPT4gdGhpcy5ib3R0b21iYXJFbGVtZW50IS5yZW1vdmVBY3Rpb24oaWQpLFxuICAgICAgY2xlYXJBY3Rpb25zOiAoKSA9PiB0aGlzLmJvdHRvbWJhckVsZW1lbnQhLmNsZWFyQWN0aW9ucygpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IGJvdHRvbSBiYXIgdmlzaWJpbGl0eVxuICAgKi9cbiAgcHVibGljIHNldEJvdHRvbUJhclZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuYm90dG9tYmFyVmlzaWJsZSA9IHZpc2libGU7XG4gICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnYm90dG9tYmFyLWhpZGRlbicsICcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2JvdHRvbWJhci1oaWRkZW4nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGJvdHRvbSBiYXIgdmlzaWJpbGl0eSBzdGF0ZVxuICAgKi9cbiAgcHVibGljIGdldEJvdHRvbUJhclZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYm90dG9tYmFyVmlzaWJsZTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUk9HUkFNTUFUSUMgQVBJOiBOQVZJR0FUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZSB0byBhIHZpZXcgYnkgSURcbiAgICovXG4gIHB1YmxpYyBhc3luYyBuYXZpZ2F0ZVRvVmlldyh2aWV3SWQ6IHN0cmluZywgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdSZWdpc3RyeS5nZXQodmlld0lkKTtcbiAgICBpZiAoIXZpZXcpIHtcbiAgICAgIGNvbnNvbGUud2FybihgQ2Fubm90IG5hdmlnYXRlIHRvIHVua25vd24gdmlldzogJHt2aWV3SWR9YCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgY3VycmVudCB2aWV3IGFsbG93cyBuYXZpZ2F0aW9uXG4gICAgY29uc3QgY2FuTGVhdmUgPSBhd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5jYW5MZWF2ZUN1cnJlbnRWaWV3KCk7XG4gICAgaWYgKGNhbkxlYXZlICE9PSB0cnVlKSB7XG4gICAgICBpZiAodHlwZW9mIGNhbkxlYXZlID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyBTaG93IGNvbmZpcm1hdGlvbiBkaWFsb2dcbiAgICAgICAgY29uc3QgY29uZmlybWVkID0gd2luZG93LmNvbmZpcm0oY2FuTGVhdmUpO1xuICAgICAgICBpZiAoIWNvbmZpcm1lZCkgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVtaXQgbG9hZGluZyBldmVudFxuICAgIHRoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7IHR5cGU6ICdsb2FkaW5nJywgdmlld0lkIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZFZpZXcodmlldywgcGFyYW1zKTtcblxuICAgICAgLy8gVXBkYXRlIFVSTCBoYXNoXG4gICAgICBjb25zdCByb3V0ZSA9IHZpZXcucm91dGUgfHwgdmlld0lkO1xuICAgICAgY29uc3QgbmV3SGFzaCA9IGAjJHtyb3V0ZX1gO1xuICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoICE9PSBuZXdIYXNoKSB7XG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7IHZpZXdJZCB9LCAnJywgbmV3SGFzaCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoeyB0eXBlOiAnbG9hZEVycm9yJywgdmlld0lkLCBlcnJvciB9KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHZpZXdcbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50VmlldygpOiBpbnRlcmZhY2VzLklWaWV3RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFZpZXc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFjY2VzcyB0byB0aGUgdmlldyByZWdpc3RyeSAoZm9yIGFkdmFuY2VkIHVzZSlcbiAgICovXG4gIHB1YmxpYyBnZXRWaWV3UmVnaXN0cnkoKTogVmlld1JlZ2lzdHJ5IHtcbiAgICByZXR1cm4gdGhpcy52aWV3UmVnaXN0cnk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVU5JRklFRCBDT05GSUdVUkFUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgdGhlIGFwcCBzaGVsbCB3aXRoIGEgdW5pZmllZCBjb25maWcgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgY29uZmlndXJlKGNvbmZpZzogaW50ZXJmYWNlcy5JQXBwQ29uZmlnKTogdm9pZCB7XG4gICAgLy8gUmVnaXN0ZXIgdmlld3NcbiAgICBpZiAoY29uZmlnLnZpZXdzKSB7XG4gICAgICB0aGlzLnZpZXdSZWdpc3RyeS5jbGVhcigpO1xuICAgICAgdGhpcy52aWV3UmVnaXN0cnkucmVnaXN0ZXJBbGwoY29uZmlnLnZpZXdzKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSBicmFuZGluZ1xuICAgIGlmIChjb25maWcuYnJhbmRpbmcpIHtcbiAgICAgIHRoaXMubWFpbm1lbnVMb2dvSWNvbiA9IGNvbmZpZy5icmFuZGluZy5sb2dvSWNvbiB8fCAnJztcbiAgICAgIHRoaXMubWFpbm1lbnVMb2dvVGV4dCA9IGNvbmZpZy5icmFuZGluZy5sb2dvVGV4dCB8fCAnJztcbiAgICB9XG5cbiAgICAvLyBBcHBseSBhcHAgYmFyIGNvbmZpZ1xuICAgIGlmIChjb25maWcuYXBwQmFyKSB7XG4gICAgICB0aGlzLmFwcGJhck1lbnVJdGVtcyA9IGNvbmZpZy5hcHBCYXIubWVudUl0ZW1zIHx8IFtdO1xuICAgICAgdGhpcy5hcHBiYXJCcmVhZGNydW1icyA9IGNvbmZpZy5hcHBCYXIuYnJlYWRjcnVtYnMgfHwgJyc7XG4gICAgICB0aGlzLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IgPSBjb25maWcuYXBwQmFyLmJyZWFkY3J1bWJTZXBhcmF0b3IgfHwgJyA+ICc7XG4gICAgICB0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9scyA9IGNvbmZpZy5hcHBCYXIuc2hvd1dpbmRvd0NvbnRyb2xzID8/IHRydWU7XG4gICAgICB0aGlzLmFwcGJhclNob3dTZWFyY2ggPSBjb25maWcuYXBwQmFyLnNob3dTZWFyY2ggPz8gZmFsc2U7XG4gICAgICB0aGlzLmFwcGJhclVzZXIgPSBjb25maWcuYXBwQmFyLnVzZXI7XG4gICAgICB0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXMgPSBjb25maWcuYXBwQmFyLnByb2ZpbGVNZW51SXRlbXMgfHwgW107XG4gICAgfVxuXG4gICAgLy8gQnVpbGQgbWFpbiBtZW51IGZyb20gdmlldyByZWZlcmVuY2VzIG9yIGRpcmVjdCBjb25maWdcbiAgICBpZiAoY29uZmlnLm1haW5NZW51KSB7XG4gICAgICBpZiAoY29uZmlnLm1haW5NZW51LnNlY3Rpb25zKSB7XG4gICAgICAgIHRoaXMubWFpbm1lbnVHcm91cHMgPSB0aGlzLmJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoY29uZmlnKTtcbiAgICAgIH0gZWxzZSBpZiAoY29uZmlnLm1haW5NZW51Lmdyb3Vwcykge1xuICAgICAgICB0aGlzLm1haW5tZW51R3JvdXBzID0gY29uZmlnLm1haW5NZW51Lmdyb3VwcztcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbmZpZy5tYWluTWVudS5sb2dvSWNvbikge1xuICAgICAgICB0aGlzLm1haW5tZW51TG9nb0ljb24gPSBjb25maWcubWFpbk1lbnUubG9nb0ljb247XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLm1haW5NZW51LmxvZ29UZXh0KSB7XG4gICAgICAgIHRoaXMubWFpbm1lbnVMb2dvVGV4dCA9IGNvbmZpZy5tYWluTWVudS5sb2dvVGV4dDtcbiAgICAgIH1cbiAgICAgIGlmIChjb25maWcubWFpbk1lbnUuYm90dG9tVGFicykge1xuICAgICAgICB0aGlzLm1haW5tZW51Qm90dG9tVGFicyA9IGNvbmZpZy5tYWluTWVudS5ib3R0b21UYWJzO1xuICAgICAgfSBlbHNlIGlmIChjb25maWcubWFpbk1lbnUuYm90dG9tSXRlbXMpIHtcbiAgICAgICAgdGhpcy5tYWlubWVudUJvdHRvbVRhYnMgPSB0aGlzLmJ1aWxkQm90dG9tVGFic0Zyb21JdGVtcyhjb25maWcubWFpbk1lbnUuYm90dG9tSXRlbXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFwcGx5IGJvdHRvbSBiYXIgY29uZmlnXG4gICAgaWYgKGNvbmZpZy5ib3R0b21CYXIpIHtcbiAgICAgIHRoaXMuc2V0Qm90dG9tQmFyVmlzaWJsZShjb25maWcuYm90dG9tQmFyLnZpc2libGUgPz8gdHJ1ZSk7XG5cbiAgICAgIGlmIChjb25maWcuYm90dG9tQmFyLndpZGdldHMpIHtcbiAgICAgICAgY29uZmlnLmJvdHRvbUJhci53aWRnZXRzLmZvckVhY2god2lkZ2V0ID0+IHtcbiAgICAgICAgICB0aGlzLmJvdHRvbUJhci5hZGRXaWRnZXQod2lkZ2V0KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb25maWcuYm90dG9tQmFyLmFjdGlvbnMpIHtcbiAgICAgICAgY29uZmlnLmJvdHRvbUJhci5hY3Rpb25zLmZvckVhY2goYWN0aW9uID0+IHtcbiAgICAgICAgICB0aGlzLmJvdHRvbUJhci5hZGRBY3Rpb24oYWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0dXAgZG9tdG9vbHMucm91dGVyIGludGVncmF0aW9uXG4gICAgdGhpcy5zZXR1cFJvdXRlckludGVncmF0aW9uKGNvbmZpZyk7XG5cbiAgICAvLyBCaW5kIGV2ZW50IGNhbGxiYWNrc1xuICAgIGlmIChjb25maWcub25WaWV3Q2hhbmdlKSB7XG4gICAgICB0aGlzLnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbmZpZy5vblZpZXdDaGFuZ2UhKGV2ZW50LnZpZXdJZCwgZXZlbnQudmlldyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLm9uU2VhcmNoKSB7XG4gICAgICB0aGlzLnNlYXJjaENhbGxiYWNrID0gY29uZmlnLm9uU2VhcmNoO1xuICAgIH1cblxuICAgIC8vIE5hdmlnYXRlIHRvIGRlZmF1bHQgdmlld1xuICAgIGlmIChjb25maWcuZGVmYXVsdFZpZXcpIHtcbiAgICAgIHRoaXMubmF2aWdhdGVUb1ZpZXcoY29uZmlnLmRlZmF1bHRWaWV3KTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJJVkFURSBIRUxQRVIgTUVUSE9EU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBwcml2YXRlIHNldHVwUm91dGVySW50ZWdyYXRpb24oY29uZmlnOiBpbnRlcmZhY2VzLklBcHBDb25maWcpOiB2b2lkIHtcbiAgICAvLyBIYW5kbGUgaGFzaCBjaGFuZ2UgZXZlbnRzXG4gICAgY29uc3QgaGFuZGxlSGFzaENoYW5nZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGhhc2ggPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKTsgLy8gUmVtb3ZlICNcbiAgICAgIGlmICghaGFzaCkgcmV0dXJuO1xuXG4gICAgICBjb25zdCBtYXRjaCA9IHRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKGhhc2gpO1xuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIHRoaXMubmF2aWdhdGVUb1ZpZXcobWF0Y2gudmlldy5pZCwgbWF0Y2gucGFyYW1zKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2hhc2hjaGFuZ2UnLCBoYW5kbGVIYXNoQ2hhbmdlKTtcblxuICAgIC8vIFN0b3JlIGNsZWFudXAgZnVuY3Rpb25cbiAgICB0aGlzLnJvdXRlckNsZWFudXAgPSAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignaGFzaGNoYW5nZScsIGhhbmRsZUhhc2hDaGFuZ2UpO1xuICAgIH07XG5cbiAgICAvLyBIYW5kbGUgaW5pdGlhbCByb3V0ZSBmcm9tIGhhc2hcbiAgICBjb25zdCBjdXJyZW50SGFzaCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO1xuICAgIGlmIChjdXJyZW50SGFzaCkge1xuICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLnZpZXdSZWdpc3RyeS5maW5kQnlSb3V0ZShjdXJyZW50SGFzaCk7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgLy8gVXNlIHNldFRpbWVvdXQgdG8gYWxsb3cgY29tcG9uZW50IHRvIGZ1bGx5IGluaXRpYWxpemVcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm5hdmlnYXRlVG9WaWV3KG1hdGNoLnZpZXcuaWQsIG1hdGNoLnBhcmFtcyksIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRNYWluTWVudUZyb21TZWN0aW9ucyhjb25maWc6IGludGVyZmFjZXMuSUFwcENvbmZpZyk6IGludGVyZmFjZXMuSU1lbnVHcm91cFtdIHtcbiAgICBpZiAoIWNvbmZpZy5tYWluTWVudT8uc2VjdGlvbnMpIHJldHVybiBbXTtcblxuICAgIHJldHVybiBjb25maWcubWFpbk1lbnUuc2VjdGlvbnMubWFwKChzZWN0aW9uKSA9PiAoe1xuICAgICAgbmFtZTogc2VjdGlvbi5uYW1lLFxuICAgICAgaXRlbXM6IHNlY3Rpb24udmlld3NcbiAgICAgICAgLm1hcCgodmlld0lkKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMudmlld1JlZ2lzdHJ5LmdldCh2aWV3SWQpO1xuICAgICAgICAgIGlmICghdmlldykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBWaWV3IFwiJHt2aWV3SWR9XCIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtleTogdmlldy5pZCxcbiAgICAgICAgICAgIGljb25OYW1lOiB2aWV3Lmljb25OYW1lLFxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLm5hdmlnYXRlVG9WaWV3KHZpZXdJZCksXG4gICAgICAgICAgICBiYWRnZTogdmlldy5iYWRnZSxcbiAgICAgICAgICB9IGFzIGludGVyZmFjZXMuSU1lbnVJdGVtO1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIGludGVyZmFjZXMuSU1lbnVJdGVtW10sXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEJvdHRvbVRhYnNGcm9tSXRlbXMoaXRlbXM6IHN0cmluZ1tdKTogaW50ZXJmYWNlcy5JTWVudUl0ZW1bXSB7XG4gICAgcmV0dXJuIGl0ZW1zXG4gICAgICAubWFwKCh2aWV3SWQpID0+IHtcbiAgICAgICAgY29uc3QgdmlldyA9IHRoaXMudmlld1JlZ2lzdHJ5LmdldCh2aWV3SWQpO1xuICAgICAgICBpZiAoIXZpZXcpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFZpZXcgXCIke3ZpZXdJZH1cIiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogdmlldy5pZCxcbiAgICAgICAgICBpY29uTmFtZTogdmlldy5pY29uTmFtZSxcbiAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMubmF2aWdhdGVUb1ZpZXcodmlld0lkKSxcbiAgICAgICAgfSBhcyBpbnRlcmZhY2VzLklNZW51SXRlbTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIGludGVyZmFjZXMuSU1lbnVJdGVtW107XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRWaWV3KFxuICAgIHZpZXc6IGludGVyZmFjZXMuSVZpZXdEZWZpbml0aW9uLFxuICAgIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcHJldmlvdXNWaWV3ID0gdGhpcy5jdXJyZW50VmlldztcbiAgICB0aGlzLmN1cnJlbnRWaWV3ID0gdmlldztcblxuICAgIC8vIEdldCB2aWV3IGNvbnRhaW5lclxuICAgIGNvbnN0IHZpZXdDb250YWluZXIgPSB0aGlzLm1haW5jb250ZW50Py5xdWVyeVNlbGVjdG9yKCcudmlldy1jb250YWluZXInKVxuICAgICAgfHwgdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcudmlldy1jb250YWluZXInKTtcblxuICAgIGlmICh2aWV3Q29udGFpbmVyKSB7XG4gICAgICAvLyBBY3RpdmF0ZSB2aWV3IHdpdGggY2FjaGluZyBhbmQgbGlmZWN5Y2xlIGhvb2tzXG4gICAgICBjb25zdCBlbGVtZW50ID0gYXdhaXQgdGhpcy52aWV3UmVnaXN0cnkuYWN0aXZhdGVWaWV3KFxuICAgICAgICB2aWV3LmlkLFxuICAgICAgICB2aWV3Q29udGFpbmVyIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICBwYXJhbXNcbiAgICAgICk7XG5cbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIC8vIEVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7XG4gICAgICAgICAgdHlwZTogJ2FjdGl2YXRlZCcsXG4gICAgICAgICAgdmlld0lkOiB2aWV3LmlkLFxuICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgcGFyYW1zLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBcHBseSB2aWV3LXNwZWNpZmljIHNlY29uZGFyeSBtZW51XG4gICAgaWYgKHZpZXcuc2Vjb25kYXJ5TWVudSkge1xuICAgICAgdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzID0gdmlldy5zZWNvbmRhcnlNZW51O1xuICAgICAgdGhpcy5zZWNvbmRhcnltZW51SGVhZGluZyA9IHZpZXcubmFtZTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSB2aWV3LXNwZWNpZmljIGNvbnRlbnQgdGFic1xuICAgIGlmICh2aWV3LmNvbnRlbnRUYWJzKSB7XG4gICAgICB0aGlzLm1haW5jb250ZW50VGFicyA9IHZpZXcuY29udGVudFRhYnM7XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIG1haW4gbWVudSBzZWxlY3Rpb25cbiAgICB0aGlzLnNldE1haW5NZW51U2VsZWN0aW9uKHZpZXcuaWQpO1xuXG4gICAgLy8gRW1pdCB2aWV3IGNoYW5nZSBldmVudFxuICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBpbnRlcmZhY2VzLklWaWV3Q2hhbmdlRXZlbnQgPSB7XG4gICAgICB2aWV3SWQ6IHZpZXcuaWQsXG4gICAgICB2aWV3LFxuICAgICAgcHJldmlvdXNWaWV3LFxuICAgICAgcGFyYW1zLFxuICAgIH07XG4gICAgdGhpcy52aWV3Q2hhbmdlZCQubmV4dChjaGFuZ2VFdmVudCk7XG5cbiAgICAvLyBBbHNvIGRpc3BhdGNoIERPTSBldmVudCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3ZpZXctY2hhbmdlJywge1xuICAgICAgICBkZXRhaWw6IGNoYW5nZUV2ZW50LFxuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBFVkVOVCBIQU5ETEVSUyAoSW50ZXJuYWwpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHByaXZhdGUgaGFuZGxlQXBwYmFyTWVudVNlbGVjdChlOiBDdXN0b21FdmVudCkge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2FwcGJhci1tZW51LXNlbGVjdCcsIHtcbiAgICAgIGRldGFpbDogZS5kZXRhaWwsXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUFwcGJhckJyZWFkY3J1bWJOYXZpZ2F0ZShlOiBDdXN0b21FdmVudCkge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2FwcGJhci1icmVhZGNydW1iLW5hdmlnYXRlJywge1xuICAgICAgZGV0YWlsOiBlLmRldGFpbCxcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQXBwYmFyU2VhcmNoQ2xpY2soKSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnYXBwYmFyLXNlYXJjaC1jbGljaycsIHtcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkoZTogQ3VzdG9tRXZlbnQpIHtcbiAgICBpZiAodGhpcy5zZWFyY2hDYWxsYmFjaykge1xuICAgICAgdGhpcy5zZWFyY2hDYWxsYmFjayhlLmRldGFpbC5xdWVyeSk7XG4gICAgfVxuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3NlYXJjaC1xdWVyeScsIHtcbiAgICAgIGRldGFpbDogZS5kZXRhaWwsXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUFwcGJhclVzZXJNZW51T3BlbigpIHtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdhcHBiYXItdXNlci1tZW51LW9wZW4nLCB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUFwcGJhclByb2ZpbGVNZW51U2VsZWN0KGU6IEN1c3RvbUV2ZW50KSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnYXBwYmFyLXByb2ZpbGUtbWVudS1zZWxlY3QnLCB7XG4gICAgICBkZXRhaWw6IGUuZGV0YWlsLFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNYWlubWVudVRhYlNlbGVjdChlOiBDdXN0b21FdmVudCkge1xuICAgIHRoaXMubWFpbm1lbnVTZWxlY3RlZFRhYiA9IGUuZGV0YWlsLnRhYjtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdtYWlubWVudS10YWItc2VsZWN0Jywge1xuICAgICAgZGV0YWlsOiBlLmRldGFpbCxcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2Vjb25kYXJ5bWVudUl0ZW1TZWxlY3QoZTogQ3VzdG9tRXZlbnQpIHtcbiAgICB0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0gPSBlLmRldGFpbC5pdGVtO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3NlY29uZGFyeW1lbnUtaXRlbS1zZWxlY3QnLCB7XG4gICAgICBkZXRhaWw6IGUuZGV0YWlsLFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNYWlubWVudUNvbGxhcHNlQ2hhbmdlKGU6IEN1c3RvbUV2ZW50KSB7XG4gICAgdGhpcy5tYWlubWVudUNvbGxhcHNlZCA9IGUuZGV0YWlsLmNvbGxhcHNlZDtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdtYWlubWVudS1jb2xsYXBzZS1jaGFuZ2UnLCB7XG4gICAgICBkZXRhaWw6IGUuZGV0YWlsLFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoZTogQ3VzdG9tRXZlbnQpIHtcbiAgICB0aGlzLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQgPSBlLmRldGFpbC5jb2xsYXBzZWQ7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnc2Vjb25kYXJ5bWVudS1jb2xsYXBzZS1jaGFuZ2UnLCB7XG4gICAgICBkZXRhaWw6IGUuZGV0YWlsLFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDb250ZW50VGFiU2VsZWN0KGU6IEN1c3RvbUV2ZW50KSB7XG4gICAgdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiID0gZS5kZXRhaWwudGFiO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NvbnRlbnQtdGFiLXNlbGVjdCcsIHtcbiAgICAgIGRldGFpbDogZS5kZXRhaWwsXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNvbnRlbnRUYWJDbG9zZShlOiBDdXN0b21FdmVudCkge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NvbnRlbnQtdGFiLWNsb3NlJywge1xuICAgICAgZGV0YWlsOiBlLmRldGFpbCxcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZVxuICAgIH0pKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGh0bWwsIGNzcywgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG4gIDxzdHlsZT5cbiAgICAke2Nzc2BcbiAgICAgIC5kZW1vLWJhY2tncm91bmQge1xuICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUlKScsICdoc2woMCAwJSA1JSknKX07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZGVtby1jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMjRweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnNlY3Rpb24tdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIG1hcmdpbjogMzJweCAwIDE2cHggMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTUlKScpfTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuc2VjdGlvbi10aXRsZTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5ncmlkLWxheW91dCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZ3JpZC0zY29sIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogOTY4cHgpIHtcbiAgICAgICAgLmdyaWQtM2NvbCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5ncmlkLWxheW91dCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgY29kZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICBgfVxuICA8L3N0eWxlPlxuICBcbiAgPGRpdiBjbGFzcz1cImRlbW8tYmFja2dyb3VuZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRhaW5lclwiPlxuICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkRlZmF1bHQgUGFuZWxzPC9oMj5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J1BhbmVsIENvbXBvbmVudCd9IC5zdWJ0aXRsZT0keydUaGUgZGVmYXVsdCBwYW5lbCB2YXJpYW50IHdpdGggc2hhZGNuLWluc3BpcmVkIHN0eWxpbmcnfT5cbiAgICAgICAgPHA+VGhlIHBhbmVsIGNvbXBvbmVudCBhdXRvbWF0aWNhbGx5IGZvbGxvd3MgdGhlIHRoZW1lIGFuZCBwcm92aWRlcyBjb25zaXN0ZW50IHN0eWxpbmcgZm9yIGdyb3VwZWQgY29udGVudC48L3A+XG4gICAgICAgIDxwPkl0J3MgcGVyZmVjdCBmb3IgY3JlYXRpbmcgc2VjdGlvbnMgaW4geW91ciBhcHBsaWNhdGlvbiB3aXRoIHByb3BlciBzcGFjaW5nIGFuZCBib3JkZXJzLjwvcD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImdyaWQtbGF5b3V0XCI+XG4gICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydGZWF0dXJlIE92ZXJ2aWV3J30gLnN1YnRpdGxlPSR7J0tleSBjYXBhYmlsaXRpZXMnfT5cbiAgICAgICAgICA8cD5HcmlkIGxheW91dHMgd29yayBncmVhdCB3aXRoIHBhbmVscyBmb3IgY3JlYXRpbmcgZGFzaGJvYXJkcyBhbmQgZmVhdHVyZSBzZWN0aW9ucy48L3A+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uPkxlYXJuIE1vcmU8L2RlZXMtYnV0dG9uPlxuICAgICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnUXVpY2sgQWN0aW9ucyd9IC5zdWJ0aXRsZT0keydDb21tb24gdGFza3MnfT5cbiAgICAgICAgICA8cD5FYWNoIHBhbmVsIG1haW50YWlucyBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHN0eWxpbmcgYWNyb3NzIHlvdXIgYXBwbGljYXRpb24uPC9wPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbj5HZXQgU3RhcnRlZDwvZGVlcy1idXR0b24+XG4gICAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+UGFuZWwgVmFyaWFudHM8L2gyPlxuICAgICAgXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnRGVmYXVsdCBWYXJpYW50J30gLnZhcmlhbnQ9JHsnZGVmYXVsdCd9PlxuICAgICAgICA8cD5UaGUgZGVmYXVsdCB2YXJpYW50IGhhcyBhIHdoaXRlIGJhY2tncm91bmQsIHN1YnRsZSBib3JkZXIsIGFuZCBtaW5pbWFsIHNoYWRvdy4gSXQncyB0aGUgc3RhbmRhcmQgY2hvaWNlIGZvciBtb3N0IGNvbnRlbnQuPC9wPlxuICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD1cImRlZmF1bHRcIjwvY29kZT4gb3Igb21pdCB0aGUgdmFyaWFudCBwcm9wZXJ0eS48L3A+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydPdXRsaW5lIFZhcmlhbnQnfSAuc3VidGl0bGU9JHsnVHJhbnNwYXJlbnQgYmFja2dyb3VuZCB3aXRoIGJvcmRlcid9IC52YXJpYW50PSR7J291dGxpbmUnfT5cbiAgICAgICAgPHA+VGhlIG91dGxpbmUgdmFyaWFudCByZW1vdmVzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBzaGFkb3csIGtlZXBpbmcgb25seSB0aGUgYm9yZGVyLjwvcD5cbiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9XCJvdXRsaW5lXCI8L2NvZGU+IGZvciBhIGxpZ2h0ZXIgdmlzdWFsIHdlaWdodC48L3A+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydHaG9zdCBWYXJpYW50J30gLnN1YnRpdGxlPSR7J01pbmltYWwgc3R5bGluZyBmb3Igc3VidGxlIHNlY3Rpb25zJ30gLnZhcmlhbnQ9JHsnZ2hvc3QnfT5cbiAgICAgICAgPHA+VGhlIGdob3N0IHZhcmlhbnQgaGFzIG5vIGJvcmRlciBvciBiYWNrZ3JvdW5kIGJ5IGRlZmF1bHQsIG9ubHkgc2hvd2luZyBhIHN1YnRsZSBiYWNrZ3JvdW5kIG9uIGhvdmVyLjwvcD5cbiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9XCJnaG9zdFwiPC9jb2RlPiBmb3IgdGhlIG1vc3QgbWluaW1hbCBhcHBlYXJhbmNlLjwvcD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlBhbmVsIFNpemVzPC9oMj5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImdyaWQtM2NvbFwiPlxuICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnU21hbGwgUGFuZWwnfSAuc2l6ZT0keydzbSd9PlxuICAgICAgICAgIDxwPkNvbXBhY3QgcGFkZGluZyBmb3IgZGVuc2UgbGF5b3V0cy48L3A+XG4gICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9XCJzbVwiPC9jb2RlPjwvcD5cbiAgICAgICAgPC9kZWVzLXBhbmVsPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J01lZGl1bSBQYW5lbCd9IC5zaXplPSR7J21kJ30+XG4gICAgICAgICAgPHA+RGVmYXVsdCBzaXplIHdpdGggYmFsYW5jZWQgc3BhY2luZy48L3A+XG4gICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9XCJtZFwiPC9jb2RlPiBvciBvbWl0LjwvcD5cbiAgICAgICAgPC9kZWVzLXBhbmVsPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0xhcmdlIFBhbmVsJ30gLnNpemU9JHsnbGcnfT5cbiAgICAgICAgICA8cD5HZW5lcm91cyBwYWRkaW5nIGZvciBwcm9taW5lbnQgc2VjdGlvbnMuPC9wPlxuICAgICAgICAgIDxwPlVzZSA8Y29kZT5zaXplPVwibGdcIjwvY29kZT48L3A+XG4gICAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8aDIgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+Q29tcGxleCBFeGFtcGxlczwvaDI+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydGb3JtIEV4YW1wbGUnfSAuc3VidGl0bGU9JHsnUGFuZWxzIHdvcmsgZ3JlYXQgZm9yIG9yZ2FuaXppbmcgZm9ybSBzZWN0aW9ucyd9PlxuICAgICAgICA8ZGVlcy1mb3JtPlxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7J1Byb2plY3QgTmFtZSd9IC5yZXF1aXJlZD0ke3RydWV9PjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7J0Rlc2NyaXB0aW9uJ30gLmlucHV0VHlwZT0keyd0ZXh0YXJlYSd9PjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIFxuICAgICAgICAgICAgLmxhYmVsPSR7J0NhdGVnb3J5J30gXG4gICAgICAgICAgICAub3B0aW9ucz0ke1tcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdXZWIgRGV2ZWxvcG1lbnQnLCBrZXk6ICd3ZWInIH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnTW9iaWxlIEFwcCcsIGtleTogJ21vYmlsZScgfSxcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdEZXNrdG9wIFNvZnR3YXJlJywga2V5OiAnZGVza3RvcCcgfVxuICAgICAgICAgICAgXX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNyZWF0ZSBQcm9qZWN0PC9kZWVzLWZvcm0tc3VibWl0PlxuICAgICAgICA8L2RlZXMtZm9ybT5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J05lc3RlZCBQYW5lbHMnfSAuc3VidGl0bGU9JHsnUGFuZWxzIGNhbiBiZSBuZXN0ZWQgZm9yIGhpZXJhcmNoaWNhbCBvcmdhbml6YXRpb24nfT5cbiAgICAgICAgPHA+WW91IGNhbiBuZXN0IHBhbmVscyB0byBjcmVhdGUgbW9yZSBjb21wbGV4IGxheW91dHM6PC9wPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J05lc3RlZCBQYW5lbCAxJ30gLnZhcmlhbnQ9JHsnb3V0bGluZSd9IC5zaXplPSR7J3NtJ30+XG4gICAgICAgICAgPHA+VGhpcyBpcyBhIG5lc3RlZCBwYW5lbCB3aXRoIG91dGxpbmUgdmFyaWFudCBhbmQgc21hbGwgc2l6ZS48L3A+XG4gICAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydOZXN0ZWQgUGFuZWwgMid9IC52YXJpYW50PSR7J2dob3N0J30gLnNpemU9JHsnc20nfT5cbiAgICAgICAgICA8cD5UaGlzIGlzIGFub3RoZXIgbmVzdGVkIHBhbmVsIHdpdGggZ2hvc3QgdmFyaWFudC48L3A+XG4gICAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGgyIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlVudGl0bGVkIFBhbmVsczwvaDI+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsPlxuICAgICAgICA8cD5QYW5lbHMgd29yayBncmVhdCBldmVuIHdpdGhvdXQgYSB0aXRsZSBmb3Igc2ltcGxlIGNvbnRlbnQgZ3JvdXBpbmcuPC9wPlxuICAgICAgICA8cD5UaGV5IHByb3ZpZGUgdmlzdWFsIHNlcGFyYXRpb24gYW5kIGNvbnNpc3RlbnQgcGFkZGluZyB0aHJvdWdob3V0IHlvdXIgaW50ZXJmYWNlLjwvcD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImdyaWQtbGF5b3V0XCI+XG4gICAgICAgIDxkZWVzLXBhbmVsIC52YXJpYW50PSR7J291dGxpbmUnfT5cbiAgICAgICAgICA8aDQgc3R5bGU9XCJtYXJnaW4tdG9wOiAwO1wiPkN1c3RvbSBDb250ZW50PC9oND5cbiAgICAgICAgICA8cD5Zb3UgY2FuIGFkZCB5b3VyIG93biBoZWFkaW5ncyBhbmQgc3RydWN0dXJlIHdpdGhpbiB1bnRpdGxlZCBwYW5lbHMuPC9wPlxuICAgICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1wYW5lbCAudmFyaWFudD0keydnaG9zdCd9PlxuICAgICAgICAgIDxoNCBzdHlsZT1cIm1hcmdpbi10b3A6IDA7XCI+TWluaW1hbCBTdHlsZTwvaDQ+XG4gICAgICAgICAgPHA+R2hvc3QgcGFuZWxzIHdpdGhvdXQgdGl0bGVzIGNyZWF0ZSB2ZXJ5IHN1YnRsZSBjb250ZW50IHNlY3Rpb25zLjwvcD5cbiAgICAgICAgPC9kZWVzLXBhbmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuYDsiLCAiaW1wb3J0IHsgdW5zYWZlQ1NTIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuLyoqXG4gKiBHZWlzdCBTYW5zIGZvbnQgZmFtaWx5IC0gTWFpbiBmb250IGZvciB0aGUgZGVzaWduIHN5c3RlbVxuICogQWxyZWFkeSBhdmFpbGFibGUgaW4gdGhlIGVudmlyb25tZW50LCBubyBuZWVkIHRvIGxvYWRcbiAqL1xuZXhwb3J0IGNvbnN0IGdlaXN0U2Fuc0ZvbnQgPSAnR2Vpc3QgU2Fucyc7XG5cbi8qKlxuICogSW50ZWwgT25lIE1vbm8gZm9udCBmYW1pbHkgLSBNb25vc3BhY2UgZm9udCBmb3IgY29kZSBhbmQgdGVjaG5pY2FsIGNvbnRlbnRcbiAqIEFscmVhZHkgYXZhaWxhYmxlIGluIHRoZSBlbnZpcm9ubWVudCwgbm8gbmVlZCB0byBsb2FkXG4gKi9cbmV4cG9ydCBjb25zdCBpbnRlbE9uZU1vbm9Gb250ID0gJ0ludGVsIE9uZSBNb25vJztcblxuLyoqXG4gKiBDb21wbGV0ZSBmb250IGZhbWlseSBzdGFja3Mgd2l0aCBmYWxsYmFja3NcbiAqL1xuZXhwb3J0IGNvbnN0IGdlaXN0Rm9udEZhbWlseSA9IGAnJHtnZWlzdFNhbnNGb250fScsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWZgO1xuXG5leHBvcnQgY29uc3QgbW9ub0ZvbnRGYW1pbHkgPSBgJyR7aW50ZWxPbmVNb25vRm9udH0nLCAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgJ0ZpcmEgTW9ubycsICdEcm9pZCBTYW5zIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2VgO1xuXG4vKipcbiAqIENTUy1yZWFkeSBmb250IGZhbWlseSB2YWx1ZXMgdXNpbmcgdW5zYWZlQ1NTXG4gKiBVc2UgdGhlc2UgaW4gY29tcG9uZW50IHN0eWxlc1xuICovXG5leHBvcnQgY29uc3QgY3NzR2Vpc3RGb250RmFtaWx5ID0gdW5zYWZlQ1NTKGdlaXN0Rm9udEZhbWlseSk7XG5leHBvcnQgY29uc3QgY3NzTW9ub0ZvbnRGYW1pbHkgPSB1bnNhZmVDU1MobW9ub0ZvbnRGYW1pbHkpO1xuXG4vKipcbiAqIENhbCBTYW5zIGZvbnQgZm9yIGhlYWRpbmdzIC0gRGlzcGxheSBmb250XG4gKiBNYXkgbmVlZCB0byBiZSBsb2FkZWQgc2VwYXJhdGVseVxuICovXG5leHBvcnQgY29uc3QgY2FsU2Fuc0ZvbnQgPSAnQ2FsIFNhbnMnO1xuZXhwb3J0IGNvbnN0IGNhbFNhbnNGb250RmFtaWx5ID0gYCcke2NhbFNhbnNGb250fScsICR7Z2Vpc3RGb250RmFtaWx5fWA7XG5leHBvcnQgY29uc3QgY3NzQ2FsU2Fuc0ZvbnRGYW1pbHkgPSB1bnNhZmVDU1MoY2FsU2Fuc0ZvbnRGYW1pbHkpO1xuXG4vKipcbiAqIFJvYm90byBTbGFiIGZvbnQgZm9yIHNwZWNpYWwgY29udGVudCAtIFNlcmlmIGZvbnRcbiAqIE1heSBuZWVkIHRvIGJlIGxvYWRlZCBzZXBhcmF0ZWx5XG4gKi9cbmV4cG9ydCBjb25zdCByb2JvdG9TbGFiRm9udCA9ICdSb2JvdG8gU2xhYic7XG5leHBvcnQgY29uc3Qgcm9ib3RvU2xhYkZvbnRGYW1pbHkgPSBgJyR7cm9ib3RvU2xhYkZvbnR9JywgR2VvcmdpYSwgc2VyaWZgO1xuZXhwb3J0IGNvbnN0IGNzc1JvYm90b1NsYWJGb250RmFtaWx5ID0gdW5zYWZlQ1NTKHJvYm90b1NsYWJGb250RmFtaWx5KTtcblxuLyoqXG4gKiBCYXNlIGZvbnQgc3R5bGVzIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gY29tcG9uZW50c1xuICovXG5leHBvcnQgY29uc3QgYmFzZUZvbnRTdHlsZXMgPSB1bnNhZmVDU1MoYFxuICBmb250LWZhbWlseTogJHtnZWlzdEZvbnRGYW1pbHl9O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnY3YxMScsICd0bnVtJywgJ2N2MDUnIDE7XG5gKTsiLCAiaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgRGVlc0VsZW1lbnQsXG4gIGh0bWwsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbiAgcHJvcGVydHksXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1wYW5lbC5kZW1vLmpzJztcbmltcG9ydCB7IGNzc0dlaXN0Rm9udEZhbWlseSB9IGZyb20gJy4uLzAwZm9udHMuanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtcGFuZWwnOiBEZWVzUGFuZWw7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtcGFuZWwnKVxuZXhwb3J0IGNsYXNzIERlZXNQYW5lbCBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIHRpdGxlOiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3Igc3VidGl0bGU6IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciB2YXJpYW50OiAnZGVmYXVsdCcgfCAnb3V0bGluZScgfCAnZ2hvc3QnID0gJ2RlZmF1bHQnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBzaXplOiAnc20nIHwgJ21kJyB8ICdsZycgPSAnbWQnO1xuXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgYWNjZXNzb3IgcnVuQWZ0ZXJSZW5kZXI6ICgoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+KSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogJHtjc3NHZWlzdEZvbnRGYW1pbHl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDAgMCUgMy45JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICB9XG5cbiAgICAgIC8qIFZhcmlhbnQ6IGRlZmF1bHQgKi9cbiAgICAgIDpob3N0KFt2YXJpYW50PVwiZGVmYXVsdFwiXSkge1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCBoc2woMCAwJSAwJSAvIDAuMDUpO1xuICAgICAgfVxuXG4gICAgICAvKiBWYXJpYW50OiBvdXRsaW5lICovXG4gICAgICA6aG9zdChbdmFyaWFudD1cIm91dGxpbmVcIl0pIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIFZhcmlhbnQ6IGdob3N0ICovXG4gICAgICA6aG9zdChbdmFyaWFudD1cImdob3N0XCJdKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAvKiBTaXplIHZhcmlhdGlvbnMgKi9cbiAgICAgIDpob3N0KFtzaXplPVwic21cIl0pIHtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW3NpemU9XCJsZ1wiXSkge1xuICAgICAgICBwYWRkaW5nOiAzMnB4O1xuICAgICAgfVxuXG4gICAgICAuaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlcjplbXB0eSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC50aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDklKScsICdoc2woMCAwJSA5NSUpJyl9O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICB9XG5cbiAgICAgIC8qIFRpdGxlIHNpemUgdmFyaWF0aW9ucyAqL1xuICAgICAgOmhvc3QoW3NpemU9XCJzbVwiXSkgLnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbc2l6ZT1cImxnXCJdKSAudGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICB9XG5cbiAgICAgIC5zdWJ0aXRsZSB7XG4gICAgICAgIG1hcmdpbjogNHB4IDAgMCAwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS40IDE2LjMlIDU2LjklKScsICdoc2woMjE1IDIwLjIlIDU1LjElKScpfTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgfVxuXG4gICAgICAvKiBTdWJ0aXRsZSBzaXplIHZhcmlhdGlvbnMgKi9cbiAgICAgIDpob3N0KFtzaXplPVwic21cIl0pIC5zdWJ0aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW3NpemU9XCJsZ1wiXSkgLnN1YnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICB9XG5cbiAgICAgIC5jb250ZW50IHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjMgMjUlIDI2LjclKScsICdoc2woMjE3LjkgMTAuNiUgODQuOSUpJyl9O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICB9XG5cbiAgICAgIC8qIENvbnRlbnQgc2l6ZSB2YXJpYXRpb25zICovXG4gICAgICA6aG9zdChbc2l6ZT1cInNtXCJdKSAuY29udGVudCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW3NpemU9XCJsZ1wiXSkgLmNvbnRlbnQge1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIFJlbW92ZSBtYXJnaW5zIGZyb20gZmlyc3QgYW5kIGxhc3QgY2hpbGRyZW4gKi9cbiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgLyogSW50ZXJhY3RpdmUgc3RhdGVzIGZvciBkZWZhdWx0IHZhcmlhbnQgKi9cbiAgICAgIDpob3N0KFt2YXJpYW50PVwiZGVmYXVsdFwiXTpob3Zlcikge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA3OS44JSknLCAnaHNsKDAgMCUgMjAuOSUpJyl9O1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTtcbiAgICAgIH1cblxuICAgICAgLyogSW50ZXJhY3RpdmUgc3RhdGVzIGZvciBvdXRsaW5lIHZhcmlhbnQgKi9cbiAgICAgIDpob3N0KFt2YXJpYW50PVwib3V0bGluZVwiXTpob3Zlcikge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA3OS44JSknLCAnaHNsKDAgMCUgMjAuOSUpJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTglKScsICdoc2woMCAwJSA3LjglKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogSW50ZXJhY3RpdmUgc3RhdGVzIGZvciBnaG9zdCB2YXJpYW50ICovXG4gICAgICA6aG9zdChbdmFyaWFudD1cImdob3N0XCJdOmhvdmVyKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NS4xJSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAvKiBGb2N1cyBzdGF0ZXMgKi9cbiAgICAgIDpob3N0KDpmb2N1cy13aXRoaW4pIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKScsICdoc2woMjE3LjIgOTEuMiUgNTkuOCUpJyl9O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSknLCAnaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogTmVzdGVkIHBhbmVscyBzcGFjaW5nICovXG4gICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICR7dGhpcy50aXRsZSA/IGh0bWxgPGgzIGNsYXNzPVwidGl0bGVcIj4ke3RoaXMudGl0bGV9PC9oMz5gIDogJyd9XG4gICAgICAgICR7dGhpcy5zdWJ0aXRsZSA/IGh0bWxgPHAgY2xhc3M9XCJzdWJ0aXRsZVwiPiR7dGhpcy5zdWJ0aXRsZX08L3A+YCA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpcnN0VXBkYXRlZCgpIHtcbiAgICBpZiAodGhpcy5ydW5BZnRlclJlbmRlcikge1xuICAgICAgYXdhaXQgdGhpcy5ydW5BZnRlclJlbmRlcih0aGlzKTtcbiAgICB9XG4gIH1cbn0iLCAiaW1wb3J0IHtcbiAgRGVlc0VsZW1lbnQsXG4gIHByb3BlcnR5LFxuICBjc3MsXG4gIHR5cGUgQ1NTUmVzdWx0LFxuICBjc3NNYW5hZ2VyLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICogYXMgZG9tdG9vbHMgZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYWxsIGRlZXMtaW5wdXQgY29tcG9uZW50c1xuICogUHJvdmlkZXMgdW5pZmllZCBtYXJnaW4gc3lzdGVtIGFuZCBsYXlvdXQgbW9kZSBzdXBwb3J0XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEZWVzSW5wdXRCYXNlPFQgPSBhbnk+IGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICAvKipcbiAgICogTGF5b3V0IG1vZGUgZm9yIHRoZSBpbnB1dCBjb21wb25lbnRcbiAgICogLSB2ZXJ0aWNhbDogVHJhZGl0aW9uYWwgZm9ybSBsYXlvdXQgKGxhYmVsIG9uIHRvcClcbiAgICogLSBob3Jpem9udGFsOiBJbmxpbmUgbGF5b3V0IChsYWJlbCBwb3NpdGlvbiBjb25maWd1cmFibGUpXG4gICAqIC0gYXV0bzogRGV0ZWN0IGZyb20gcGFyZW50IGNvbnRleHRcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBsYXlvdXRNb2RlOiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnIHwgJ2F1dG8nID0gJ2F1dG8nO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiBvZiB0aGUgbGFiZWwgcmVsYXRpdmUgdG8gdGhlIGlucHV0XG4gICAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgbGFiZWxQb3NpdGlvbjogJ3RvcCcgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ25vbmUnID0gJ3RvcCc7XG5cbiAgLyoqXG4gICAqIENvbW1vbiBwcm9wZXJ0aWVzIGZvciBhbGwgaW5wdXRzXG4gICAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3Iga2V5OiBzdHJpbmc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIGxhYmVsOiBzdHJpbmc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3IgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAvKipcbiAgICogQ29tbW9uIHN0eWxlcyBmb3IgYWxsIGlucHV0IGNvbXBvbmVudHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGJhc2VTdHlsZXMoKTogQ1NTUmVzdWx0W10ge1xuICAgIHJldHVybiBbXG4gICAgICBjc3NgXG4gICAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIGNvbnNpc3RlbnQgc3BhY2luZyAqL1xuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdDogOHB4O1xuICAgICAgICAgIC0tZGVlcy1pbnB1dC12ZXJ0aWNhbC1nYXA6IGNhbGModmFyKC0tZGVlcy1pbnB1dC1zcGFjaW5nLXVuaXQpICogMik7IC8qIDE2cHggKi9cbiAgICAgICAgICAtLWRlZXMtaW5wdXQtaG9yaXpvbnRhbC1nYXA6IGNhbGModmFyKC0tZGVlcy1pbnB1dC1zcGFjaW5nLXVuaXQpICogMik7IC8qIDE2cHggKi9cbiAgICAgICAgICAtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwOiB2YXIoLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdCk7IC8qIDhweCAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLyogRGVmYXVsdCB2ZXJ0aWNhbCBzdGFja2luZyBtb2RlIChmb3IgZm9ybXMpICovXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZGVlcy1pbnB1dC12ZXJ0aWNhbC1nYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogTGFzdCBjaGlsZCBpbiBjb250YWluZXIgc2hvdWxkIGhhdmUgbm8gYm90dG9tIG1hcmdpbiAqL1xuICAgICAgICA6aG9zdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBIb3Jpem9udGFsIGxheW91dCBtb2RlIC0gYWN0aXZhdGVkIGJ5IGF0dHJpYnV0ZSAqL1xuICAgICAgICA6aG9zdChbbGF5b3V0LW1vZGU9XCJob3Jpem9udGFsXCJdKSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWRlZXMtaW5wdXQtaG9yaXpvbnRhbC1nYXApO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbbGF5b3V0LW1vZGU9XCJob3Jpem9udGFsXCJdOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBBdXRvIG1vZGUgLSBpbmhlcml0IGZyb20gcGFyZW50IGRlZXMtZm9ybSBpZiBwcmVzZW50ICovXG5cbiAgICAgICAgLyogTGFiZWwgcG9zaXRpb24gdmFyaWF0aW9ucyAqL1xuICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249XCJsZWZ0XCJdKSAuaW5wdXQtd3JhcHBlciB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICAgICAgICAgIGdhcDogdmFyKC0tZGVlcy1pbnB1dC1sYWJlbC1nYXApO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249XCJyaWdodFwiXSkgLmlucHV0LXdyYXBwZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bztcbiAgICAgICAgICBnYXA6IHZhcigtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwKTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPVwidG9wXCJdKSAuaW5wdXQtd3JhcHBlciB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249XCJub25lXCJdKSBkZWVzLWxhYmVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogU3ViamVjdCBmb3IgdmFsdWUgY2hhbmdlcyB0aGF0IGFsbCBpbnB1dHMgc2hvdWxkIGltcGxlbWVudFxuICAgKi9cbiAgcHVibGljIGNoYW5nZVN1YmplY3QgPSBuZXcgZG9tdG9vbHMucGx1Z2lucy5zbWFydHJ4LnJ4anMuU3ViamVjdDxUPigpO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZWxlbWVudCBpcyBjb25uZWN0ZWQgdG8gdGhlIERPTVxuICAgKiBTZXRzIHVwIGxheW91dCBtb2RlIGRldGVjdGlvblxuICAgKi9cbiAgYXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgYXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmRldGVjdExheW91dE1vZGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3RzIHRoZSBhcHByb3ByaWF0ZSBsYXlvdXQgbW9kZSBiYXNlZCBvbiBwYXJlbnQgY29udGV4dFxuICAgKi9cbiAgcHJpdmF0ZSBkZXRlY3RMYXlvdXRNb2RlKCkge1xuICAgIGlmICh0aGlzLmxheW91dE1vZGUgIT09ICdhdXRvJykge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2xheW91dC1tb2RlJywgdGhpcy5sYXlvdXRNb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBwYXJlbnQgaXMgYSBmb3JtIHdpdGggaG9yaXpvbnRhbCBsYXlvdXRcbiAgICBjb25zdCBwYXJlbnRGb3JtID0gdGhpcy5jbG9zZXN0KCdkZWVzLWZvcm0nKTtcbiAgICBpZiAocGFyZW50Rm9ybSAmJiBwYXJlbnRGb3JtLmhhc0F0dHJpYnV0ZSgnaG9yaXpvbnRhbC1sYXlvdXQnKSkge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2xheW91dC1tb2RlJywgJ2hvcml6b250YWwnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2xheW91dC1tb2RlJywgJ3ZlcnRpY2FsJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGxheW91dCBtb2RlIGF0dHJpYnV0ZSB3aGVuIHByb3BlcnR5IGNoYW5nZXNcbiAgICovXG4gIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcsIGFueT4pIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsYXlvdXRNb2RlJykpIHtcbiAgICAgIHRoaXMuZGV0ZWN0TGF5b3V0TW9kZSgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xhYmVsUG9zaXRpb24nKSkge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2xhYmVsLXBvc2l0aW9uJywgdGhpcy5sYWJlbFBvc2l0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhbmRhcmQgbWV0aG9kIGZvciBmcmVlemluZyBpbnB1dCAoZGlzYWJsaW5nKVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZyZWV6ZSgpIHtcbiAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBtZXRob2QgZm9yIHVuZnJlZXppbmcgaW5wdXQgKGVuYWJsaW5nKVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHVuZnJlZXplKCkge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBYnN0cmFjdCBtZXRob2QgdGhhdCBjaGlsZCBjbGFzc2VzIG11c3QgaW1wbGVtZW50IHRvIGdldCB0aGVpciB2YWx1ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFZhbHVlKCk6IGFueTtcblxuICAvKipcbiAgICogQWJzdHJhY3QgbWV0aG9kIHRoYXQgY2hpbGQgY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0byBzZXQgdGhlaXIgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBzZXRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZDtcbn0iLCAiaW1wb3J0IHsgaHRtbCwgY3NzLCBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAnQGRlc2lnbi5lc3RhdGUvZGVlcy13Y2N0b29scy9kZW1vdG9vbHMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLXBhbmVsL2RlZXMtcGFuZWwuanMnO1xuaW1wb3J0IHR5cGUgeyBEZWVzSW5wdXRDaGVja2JveCB9IGZyb20gJy4uL2RlZXMtaW5wdXQtY2hlY2tib3gvZGVlcy1pbnB1dC1jaGVja2JveC5qcyc7XG5pbXBvcnQgJy4uLy4uLzAwZ3JvdXAtYnV0dG9uL2RlZXMtYnV0dG9uL2RlZXMtYnV0dG9uLmpzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGBcbiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKGVsZW1lbnRBcmc6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgLy8gR2V0IGFsbCBjaGVja2JveGVzIGZvciBkZW1vIGludGVyYWN0aW9uc1xuICAgIGNvbnN0IGNoZWNrYm94ZXMgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtaW5wdXQtY2hlY2tib3gnKTtcbiAgICBcbiAgICAvLyBFeGFtcGxlIG9mIHByb2dyYW1tYXRpYyBpbnRlcmFjdGlvblxuICAgIGNvbnN0IHNlbGVjdEFsbEJ0biA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignI3NlbGVjdC1hbGwtYnRuJyk7XG4gICAgY29uc3QgY2xlYXJBbGxCdG4gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJyNjbGVhci1hbGwtYnRuJyk7XG4gICAgXG4gICAgaWYgKHNlbGVjdEFsbEJ0biAmJiBjbGVhckFsbEJ0bikge1xuICAgICAgc2VsZWN0QWxsQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBjaGVja2JveGVzLmZvckVhY2goKGNoZWNrYm94OiBEZWVzSW5wdXRDaGVja2JveCkgPT4ge1xuICAgICAgICAgIGlmICghY2hlY2tib3guZGlzYWJsZWQgJiYgY2hlY2tib3gua2V5Py5zdGFydHNXaXRoKCdmZWF0dXJlJykpIHtcbiAgICAgICAgICAgIGNoZWNrYm94LnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGNsZWFyQWxsQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBjaGVja2JveGVzLmZvckVhY2goKGNoZWNrYm94OiBEZWVzSW5wdXRDaGVja2JveCkgPT4ge1xuICAgICAgICAgIGlmICghY2hlY2tib3guZGlzYWJsZWQgJiYgY2hlY2tib3gua2V5Py5zdGFydHNXaXRoKCdmZWF0dXJlJykpIHtcbiAgICAgICAgICAgIGNoZWNrYm94LnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfX0+XG4gICAgPHN0eWxlPlxuICAgICAgJHtjc3NgXG4gICAgICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBkZWVzLXBhbmVsIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5jaGVja2JveC1ncm91cCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmhvcml6b250YWwtY2hlY2tib3hlcyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuaW50ZXJhY3RpdmUtc2VjdGlvbiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgNDAlIDk2LjElKScsICdoc2woMjE1IDIwLjIlIDE2LjglKScpfTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAub3V0cHV0LXRleHQge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSAyNi43JSknLCAnaHNsKDIxMCA0MCUgODAlKScpfTtcbiAgICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgNDAlIDk4JSknLCAnaHNsKDIxNSAyMC4yJSAxMS44JSknKX07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5mb3JtLXNlY3Rpb24ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NyUpJywgJ2hzbCgwIDAlIDclKScpfTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuYnV0dG9uLWdyb3VwIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGdhcDogOHB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5mZWF0dXJlLWxpc3Qge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDQwJSA5Ni4xJSknLCAnaHNsKDIxNSAyMC4yJSAxMS44JSknKX07XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTQuMyAzMS44JSA5MS40JSknLCAnaHNsKDIxNSAyMC4yJSAxNi44JSknKX07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5zZWN0aW9uLXRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSA4LjglKScsICdoc2woMjEwIDQwJSA5OCUpJyl9O1xuICAgICAgICB9XG4gICAgICBgfVxuICAgIDwvc3R5bGU+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnQmFzaWMgQ2hlY2tib3hlcyd9IC5zdWJ0aXRsZT0keydTaW1wbGUgY2hlY2tib3ggZXhhbXBsZXMgd2l0aCB2YXJpb3VzIGxhYmVscyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtZ3JvdXBcIj5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBcbiAgICAgICAgICAgIC5sYWJlbD0keydJIGFncmVlIHRvIHRoZSBUZXJtcyBhbmQgQ29uZGl0aW9ucyd9IFxuICAgICAgICAgICAgLnZhbHVlPSR7dHJ1ZX1cbiAgICAgICAgICAgIC5rZXk9JHsndGVybXMnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggXG4gICAgICAgICAgICAubGFiZWw9JHsnU3Vic2NyaWJlIHRvIG5ld3NsZXR0ZXInfSBcbiAgICAgICAgICAgIC52YWx1ZT0ke2ZhbHNlfVxuICAgICAgICAgICAgLmtleT0keyduZXdzbGV0dGVyJ31cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IFxuICAgICAgICAgICAgLmxhYmVsPSR7J0VuYWJsZSBub3RpZmljYXRpb25zJ30gXG4gICAgICAgICAgICAudmFsdWU9JHtmYWxzZX1cbiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydSZWNlaXZlIGVtYWlsIHVwZGF0ZXMgYWJvdXQgeW91ciBhY2NvdW50J31cbiAgICAgICAgICAgIC5rZXk9JHsnbm90aWZpY2F0aW9ucyd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydDaGVja2JveCBTdGF0ZXMnfSAuc3VidGl0bGU9JHsnRGlmZmVyZW50IGNoZWNrYm94IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMnfT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWdyb3VwXCI+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggXG4gICAgICAgICAgICAubGFiZWw9JHsnRGVmYXVsdCBzdGF0ZSd9IFxuICAgICAgICAgICAgLnZhbHVlPSR7ZmFsc2V9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBcbiAgICAgICAgICAgIC5sYWJlbD0keydDaGVja2VkIHN0YXRlJ30gXG4gICAgICAgICAgICAudmFsdWU9JHt0cnVlfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggXG4gICAgICAgICAgICAubGFiZWw9JHsnRGlzYWJsZWQgdW5jaGVja2VkJ30gXG4gICAgICAgICAgICAudmFsdWU9JHtmYWxzZX1cbiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RydWV9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBcbiAgICAgICAgICAgIC5sYWJlbD0keydEaXNhYmxlZCBjaGVja2VkJ30gXG4gICAgICAgICAgICAudmFsdWU9JHt0cnVlfVxuICAgICAgICAgICAgLmRpc2FibGVkPSR7dHJ1ZX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IFxuICAgICAgICAgICAgLmxhYmVsPSR7J1JlcXVpcmVkIGNoZWNrYm94J30gXG4gICAgICAgICAgICAucmVxdWlyZWQ9JHt0cnVlfVxuICAgICAgICAgICAgLmtleT0keydyZXF1aXJlZCd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydIb3Jpem9udGFsIExheW91dCd9IC5zdWJ0aXRsZT0keydDaGVja2JveGVzIGFycmFuZ2VkIGhvcml6b250YWxseSBmb3IgY29tcGFjdCBmb3Jtcyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1jaGVja2JveGVzXCI+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggXG4gICAgICAgICAgICAubGFiZWw9JHsnT3B0aW9uIEEnfSBcbiAgICAgICAgICAgIC52YWx1ZT0ke2ZhbHNlfVxuICAgICAgICAgICAgLmxheW91dE1vZGU9JHsnaG9yaXpvbnRhbCd9XG4gICAgICAgICAgICAua2V5PSR7J29wdGlvbkEnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggXG4gICAgICAgICAgICAubGFiZWw9JHsnT3B0aW9uIEInfSBcbiAgICAgICAgICAgIC52YWx1ZT0ke3RydWV9XG4gICAgICAgICAgICAubGF5b3V0TW9kZT0keydob3Jpem9udGFsJ31cbiAgICAgICAgICAgIC5rZXk9JHsnb3B0aW9uQid9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBcbiAgICAgICAgICAgIC5sYWJlbD0keydPcHRpb24gQyd9IFxuICAgICAgICAgICAgLnZhbHVlPSR7ZmFsc2V9XG4gICAgICAgICAgICAubGF5b3V0TW9kZT0keydob3Jpem9udGFsJ31cbiAgICAgICAgICAgIC5rZXk9JHsnb3B0aW9uQyd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBcbiAgICAgICAgICAgIC5sYWJlbD0keydPcHRpb24gRCd9IFxuICAgICAgICAgICAgLnZhbHVlPSR7dHJ1ZX1cbiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7J2hvcml6b250YWwnfVxuICAgICAgICAgICAgLmtleT0keydvcHRpb25EJ31cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0ZlYXR1cmUgU2VsZWN0aW9uIEV4YW1wbGUnfSAuc3VidGl0bGU9JHsnQ29tbW9uIHVzZSBjYXNlIGZvciBmZWF0dXJlIHRvZ2dsZXMgd2l0aCBiYXRjaCBvcGVyYXRpb25zJ30+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9XCJzZWxlY3QtYWxsLWJ0blwiIHR5cGU9XCJzZWNvbmRhcnlcIj5TZWxlY3QgQWxsPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9XCJjbGVhci1hbGwtYnRuXCIgdHlwZT1cInNlY29uZGFyeVwiPkNsZWFyIEFsbDwvZGVlcy1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cImZlYXR1cmUtbGlzdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1ncm91cFwiPlxuICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggXG4gICAgICAgICAgICAgIC5sYWJlbD0keydEYXJrIE1vZGUgU3VwcG9ydCd9IFxuICAgICAgICAgICAgICAudmFsdWU9JHt0cnVlfVxuICAgICAgICAgICAgICAua2V5PSR7J2ZlYXR1cmUxJ31cbiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IFxuICAgICAgICAgICAgICAubGFiZWw9JHsnRW1haWwgTm90aWZpY2F0aW9ucyd9IFxuICAgICAgICAgICAgICAudmFsdWU9JHt0cnVlfVxuICAgICAgICAgICAgICAua2V5PSR7J2ZlYXR1cmUyJ31cbiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IFxuICAgICAgICAgICAgICAubGFiZWw9JHsnVHdvLUZhY3RvciBBdXRoZW50aWNhdGlvbid9IFxuICAgICAgICAgICAgICAudmFsdWU9JHtmYWxzZX1cbiAgICAgICAgICAgICAgLmtleT0keydmZWF0dXJlMyd9XG4gICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBcbiAgICAgICAgICAgICAgLmxhYmVsPSR7J0FQSSBBY2Nlc3MnfSBcbiAgICAgICAgICAgICAgLnZhbHVlPSR7dHJ1ZX1cbiAgICAgICAgICAgICAgLmtleT0keydmZWF0dXJlNCd9XG4gICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBcbiAgICAgICAgICAgICAgLmxhYmVsPSR7J0FkdmFuY2VkIEFuYWx5dGljcyd9IFxuICAgICAgICAgICAgICAudmFsdWU9JHtmYWxzZX1cbiAgICAgICAgICAgICAgLmtleT0keydmZWF0dXJlNSd9XG4gICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J1ByaXZhY3kgU2V0dGluZ3MgRXhhbXBsZSd9IC5zdWJ0aXRsZT0keydDaGVja2JveGVzIGluIGEgdHlwaWNhbCBmb3JtIGNvbnRleHQnfT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvblwiPlxuICAgICAgICAgIDxoNCBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5Qcml2YWN5IFByZWZlcmVuY2VzPC9oND5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtZ3JvdXBcIj5cbiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IFxuICAgICAgICAgICAgICAubGFiZWw9JHsnU2hhcmUgYW5hbHl0aWNzIGRhdGEnfSBcbiAgICAgICAgICAgICAgLnZhbHVlPSR7dHJ1ZX1cbiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J0hlbHAgdXMgaW1wcm92ZSBieSBzaGFyaW5nIGFub255bW91cyB1c2FnZSBkYXRhJ31cbiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IFxuICAgICAgICAgICAgICAubGFiZWw9JHsnUGVyc29uYWxpemVkIHJlY29tbWVuZGF0aW9ucyd9IFxuICAgICAgICAgICAgICAudmFsdWU9JHt0cnVlfVxuICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsnR2V0IHN1Z2dlc3Rpb25zIGJhc2VkIG9uIHlvdXIgYWN0aXZpdHknfVxuICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggXG4gICAgICAgICAgICAgIC5sYWJlbD0keydNYXJrZXRpbmcgY29tbXVuaWNhdGlvbnMnfSBcbiAgICAgICAgICAgICAgLnZhbHVlPSR7ZmFsc2V9XG4gICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydSZWNlaXZlIHByb21vdGlvbmFsIGVtYWlscyBhbmQgc3BlY2lhbCBvZmZlcnMnfVxuICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggXG4gICAgICAgICAgICAgIC5sYWJlbD0keydUaGlyZC1wYXJ0eSBpbnRlZ3JhdGlvbnMnfSBcbiAgICAgICAgICAgICAgLnZhbHVlPSR7ZmFsc2V9XG4gICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydBbGxvdyBhcHByb3ZlZCBwYXJ0bmVycyB0byBhY2Nlc3MgeW91ciBkYXRhJ31cbiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgICAgXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnSW50ZXJhY3RpdmUgRXhhbXBsZSd9IC5zdWJ0aXRsZT0keydDbGljayBjaGVja2JveGVzIHRvIHNlZSB2YWx1ZSBjaGFuZ2VzJ30+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1ncm91cFwiPlxuICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IFxuICAgICAgICAgICAgLmxhYmVsPSR7J0ZlYXR1cmUgdG9nZ2xlJ30gXG4gICAgICAgICAgICAudmFsdWU9JHtmYWxzZX1cbiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7KGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBvdXRwdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2hlY2tib3gtb3V0cHV0Jyk7XG4gICAgICAgICAgICAgIGlmIChvdXRwdXQgJiYgZXZlbnQuZGV0YWlsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDaGVja2VkID0gZXZlbnQuZGV0YWlsLmdldFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gYEZlYXR1cmUgaXMgJHtpc0NoZWNrZWQgPyAnZW5hYmxlZCcgOiAnZGlzYWJsZWQnfWA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBcbiAgICAgICAgICAgIC5sYWJlbD0keydEZWJ1ZyBtb2RlJ30gXG4gICAgICAgICAgICAudmFsdWU9JHtmYWxzZX1cbiAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7KGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBvdXRwdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZGVidWctb3V0cHV0Jyk7XG4gICAgICAgICAgICAgIGlmIChvdXRwdXQgJiYgZXZlbnQuZGV0YWlsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDaGVja2VkID0gZXZlbnQuZGV0YWlsLmdldFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gYERlYnVnIG1vZGU6ICR7aXNDaGVja2VkID8gJ09OJyA6ICdPRkYnfWA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW50ZXJhY3RpdmUtc2VjdGlvblwiPlxuICAgICAgICAgIDxkaXYgaWQ9XCJjaGVja2JveC1vdXRwdXRcIiBjbGFzcz1cIm91dHB1dC10ZXh0XCI+RmVhdHVyZSBpcyBkaXNhYmxlZDwvZGl2PlxuICAgICAgICAgIDxkaXYgaWQ9XCJkZWJ1Zy1vdXRwdXRcIiBjbGFzcz1cIm91dHB1dC10ZXh0XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA4cHg7XCI+RGVidWcgbW9kZTogT0ZGPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGl2PlxuICA8L2RlZXMtZGVtb3dyYXBwZXI+XG5gOyIsICJpbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBwcm9wZXJ0eSxcbiAgaHRtbCxcbiAgY3NzLFxuICBjc3NNYW5hZ2VyLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgRGVlc0lucHV0QmFzZSB9IGZyb20gJy4uL2RlZXMtaW5wdXQtYmFzZS9kZWVzLWlucHV0LWJhc2UuanMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtaW5wdXQtY2hlY2tib3guZGVtby5qcyc7XG5pbXBvcnQgeyBjc3NHZWlzdEZvbnRGYW1pbHkgfSBmcm9tICcuLi8uLi8wMGZvbnRzLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWlucHV0LWNoZWNrYm94JzogRGVlc0lucHV0Q2hlY2tib3g7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtaW5wdXQtY2hlY2tib3gnKVxuZXhwb3J0IGNsYXNzIERlZXNJbnB1dENoZWNrYm94IGV4dGVuZHMgRGVlc0lucHV0QmFzZTxEZWVzSW5wdXRDaGVja2JveD4ge1xuICAvLyBTVEFUSUNcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ0lucHV0JztcblxuICAvLyBJTlNUQU5DRVxuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSlcbiAgYWNjZXNzb3IgdmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIGluZGV0ZXJtaW5hdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sYWJlbFBvc2l0aW9uID0gJ3JpZ2h0JzsgLy8gQ2hlY2tib3hlcyBkZWZhdWx0IHRvIGxhYmVsIG9uIHRoZSByaWdodFxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIC4uLkRlZXNJbnB1dEJhc2UuYmFzZVN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgICAqIHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICR7Y3NzR2Vpc3RGb250RmFtaWx5fTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYWluY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hlY2tib3gge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSAzLjklKScpfTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3gge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDc5LjglKScsICdoc2woMCAwJSAyMC45JSknKX07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hlY2tib3guc2VsZWN0ZWQge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUpJywgJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSknKX07XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKScsICdoc2woMjE3LjIgOTEuMiUgNTkuOCUpJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNoZWNrYm94OmZvY3VzLXZpc2libGUge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpJywgJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSknKX07XG4gICAgICAgIH1cblxuICAgICAgICAvKiBDaGVja21hcmsgdXNpbmcgTHVjaWRlIGljb24gc3R5bGUgKi9cbiAgICAgICAgLmNoZWNrYm94IC5jaGVja21hcmsge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hlY2tib3guc2VsZWN0ZWQgLmNoZWNrbWFyayB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaGVja2JveCAuY2hlY2ttYXJrIHN2ZyB7XG4gICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgIHN0cm9rZTogd2hpdGU7XG4gICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi9cbiAgICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQge1xuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNoZWNrYm94LmRpc2FibGVkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUuMSUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogTGFiZWwgKi9cbiAgICAgICAgLmxhYmVsLWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogMnB4O1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hlY2tib3gtbGFiZWwge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTUlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3gtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUpJywgJ2hzbCgwIDAlIDk1JSknKX07XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZDpob3ZlciAuY2hlY2tib3gtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTUlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogRGVzY3JpcHRpb24gKi9cbiAgICAgICAgLmRlc2NyaXB0aW9uLXRleHQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1LjElKScsICdoc2woMCAwJSA2My45JSknKX07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJyd9XCIgQGNsaWNrPVwiJHt0aGlzLnRvZ2dsZVNlbGVjdGVkfVwiPlxuICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrYm94ICR7dGhpcy52YWx1ZSA/ICdzZWxlY3RlZCcgOiAnJ30gJHt0aGlzLmRpc2FibGVkID8gJ2Rpc2FibGVkJyA6ICcnfVwiIFxuICAgICAgICAgICAgdGFiaW5kZXg9XCIke3RoaXMuZGlzYWJsZWQgPyAnLTEnIDogJzAnfVwiXG4gICAgICAgICAgICBAa2V5ZG93bj1cIiR7dGhpcy5oYW5kbGVLZXlkb3dufVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHt0aGlzLnZhbHVlXG4gICAgICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hlY2ttYXJrXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAgNkw5IDE3TDQgMTJcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgOiB0aGlzLmluZGV0ZXJtaW5hdGVcbiAgICAgICAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hlY2ttYXJrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgMTJIMTlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgICA6IGh0bWxgYH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAke3RoaXMubGFiZWwgPyBodG1sYDxkaXYgY2xhc3M9XCJjaGVja2JveC1sYWJlbFwiPiR7dGhpcy5sYWJlbH08L2Rpdj5gIDogJyd9XG4gICAgICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24gPyBodG1sYDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi10ZXh0XCI+JHt0aGlzLmRlc2NyaXB0aW9ufTwvZGl2PmAgOiAnJ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHRvZ2dsZVNlbGVjdGVkKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSAhdGhpcy52YWx1ZTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ25ld1ZhbHVlJywge1xuICAgICAgICBkZXRhaWw6IHRoaXMudmFsdWUsXG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgY2hlY2tib3hEaXYgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmNoZWNrYm94Jyk7XG4gICAgaWYgKGNoZWNrYm94RGl2KSB7XG4gICAgICAoY2hlY2tib3hEaXYgYXMgYW55KS5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICcgJyB8fCBldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnRvZ2dsZVNlbGVjdGVkKCk7XG4gICAgfVxuICB9XG59XG4iLCAiZXhwb3J0IGNvbnN0IGRhcmsgPSB7XG4gIGJsdWU6ICcjMDA1MGI5JyxcbiAgYmx1ZUFjdGl2ZTogJyMwMDY5ZjInLFxuICBibHVlTXV0ZWQ6ICcjMDEyNDUyJyxcbiAgdGV4dDogJyNmZmZmZmYnLFxufVxuXG5leHBvcnQgY29uc3QgYnJpZ2h0ID0ge1xuICBibHVlOiAnIzAwNTBiOScsXG4gIGJsdWVBY3RpdmU6ICcjMDA2OWYyJyxcbiAgYmx1ZU11dGVkOiAnIzAwNjlmMicsXG4gIHRleHQ6ICcjMzMzMzMzJyxcbn0iLCAiaW1wb3J0IHsgaHRtbCwgY3NzLCBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IERlZXNNb2RhbCB9IGZyb20gJy4uL2RlZXMtbW9kYWwvZGVlcy1tb2RhbC5qcyc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG4gIDxzdHlsZT5cbiAgICAke2Nzc2BcbiAgICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZGVtby1zZWN0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmOGY5ZmEnLCAnIzFhMWExYScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2UwZTBlMCcsICcjMzMzJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZGVtby1zZWN0aW9uIGgzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzMzJywgJyNmZmYnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5kZW1vLXNlY3Rpb24gcCB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzY2NicsICcjOTk5Jyl9O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuYnV0dG9uLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgfVxuICAgIGB9XG4gIDwvc3R5bGU+XG4gIFxuICA8ZGl2IGNsYXNzPVwiZGVtby1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICA8aDM+SGVhZGVyIEJ1dHRvbnM8L2gzPlxuICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIG9wdGlvbmFsIGhlYWRlciBidXR0b25zIGZvciBoZWxwIGFuZCBjbG9zaW5nLjwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JpZFwiPlxuICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgIERlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtcbiAgICAgICAgICAgIGhlYWRpbmc6ICdXaXRoIEhlbHAgQnV0dG9uJyxcbiAgICAgICAgICAgIHNob3dIZWxwQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgb25IZWxwOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGhlbHBNb2RhbCA9IGF3YWl0IERlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtcbiAgICAgICAgICAgICAgICBoZWFkaW5nOiAnSGVscCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgc2hvd0Nsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNob3dIZWxwQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBodG1sYFxuICAgICAgICAgICAgICAgICAgPHA+VGhpcyBpcyB0aGUgaGVscCBjb250ZW50IGZvciB0aGUgbW9kYWwuPC9wPlxuICAgICAgICAgICAgICAgICAgPHA+WW91IGNhbiBwcm92aWRlIGNvbnRleHQtc3BlY2lmaWMgaGVscCBoZXJlLjwvcD5cbiAgICAgICAgICAgICAgICBgLFxuICAgICAgICAgICAgICAgIG1lbnVPcHRpb25zOiBbe1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0dvdCBpdCcsXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jIChtb2RhbCkgPT4gbW9kYWwuZGVzdHJveSgpXG4gICAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgaGVscCBidXR0b24gaW4gdGhlIGhlYWRlci4gQ2xpY2sgaXQgdG8gc2VlIGhlbHAgY29udGVudC48L3A+XG4gICAgICAgICAgICAgIDxwPlRoZSBjbG9zZSBidXR0b24gaXMgYWxzbyB2aXNpYmxlIGJ5IGRlZmF1bHQuPC9wPlxuICAgICAgICAgICAgYCxcbiAgICAgICAgICAgIG1lbnVPcHRpb25zOiBbe1xuICAgICAgICAgICAgICBuYW1lOiAnT0snLFxuICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jIChtb2RhbCkgPT4gbW9kYWwuZGVzdHJveSgpXG4gICAgICAgICAgICB9XSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfX0+V2l0aCBIZWxwIEJ1dHRvbjwvZGVlcy1idXR0b24+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgIERlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtcbiAgICAgICAgICAgIGhlYWRpbmc6ICdObyBDbG9zZSBCdXR0b24nLFxuICAgICAgICAgICAgc2hvd0Nsb3NlQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIG5vIGNsb3NlIGJ1dHRvbiBpbiB0aGUgaGVhZGVyLjwvcD5cbiAgICAgICAgICAgICAgPHA+WW91IG11c3QgdXNlIHRoZSBhY3Rpb24gYnV0dG9ucyBvciBjbGljayBvdXRzaWRlIHRvIGNsb3NlIGl0LjwvcD5cbiAgICAgICAgICAgIGAsXG4gICAgICAgICAgICBtZW51T3B0aW9uczogW3tcbiAgICAgICAgICAgICAgbmFtZTogJ0Nsb3NlJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAobW9kYWwpID0+IG1vZGFsLmRlc3Ryb3koKVxuICAgICAgICAgICAgfV0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH19Pk5vIENsb3NlIEJ1dHRvbjwvZGVlcy1idXR0b24+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgIERlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtcbiAgICAgICAgICAgIGhlYWRpbmc6ICdCb3RoIEJ1dHRvbnMnLFxuICAgICAgICAgICAgc2hvd0hlbHBCdXR0b246IHRydWUsXG4gICAgICAgICAgICBzaG93Q2xvc2VCdXR0b246IHRydWUsXG4gICAgICAgICAgICBvbkhlbHA6ICgpID0+IGFsZXJ0KCdIZWxwIGNsaWNrZWQhJyksXG4gICAgICAgICAgICBjb250ZW50OiBodG1sYFxuICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBib3RoIGhlbHAgYW5kIGNsb3NlIGJ1dHRvbnMuPC9wPlxuICAgICAgICAgICAgYCxcbiAgICAgICAgICAgIG1lbnVPcHRpb25zOiBbe1xuICAgICAgICAgICAgICBuYW1lOiAnRG9uZScsXG4gICAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKG1vZGFsKSA9PiBtb2RhbC5kZXN0cm95KClcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9fT5Cb3RoIEJ1dHRvbnM8L2RlZXMtYnV0dG9uPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpID0+IHtcbiAgICAgICAgICBEZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7XG4gICAgICAgICAgICBoZWFkaW5nOiAnQ2xlYW4gSGVhZGVyJyxcbiAgICAgICAgICAgIHNob3dDbG9zZUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICBzaG93SGVscEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICBjb250ZW50OiBodG1sYFxuICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBhIGNsZWFuIGhlYWRlciB3aXRoIG5vIGJ1dHRvbnMuPC9wPlxuICAgICAgICAgICAgYCxcbiAgICAgICAgICAgIG1lbnVPcHRpb25zOiBbe1xuICAgICAgICAgICAgICBuYW1lOiAnQ2xvc2UnLFxuICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jIChtb2RhbCkgPT4gbW9kYWwuZGVzdHJveSgpXG4gICAgICAgICAgICB9XSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfX0+Q2xlYW4gSGVhZGVyPC9kZWVzLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgIDxoMz5Nb2RhbCBXaWR0aCBWYXJpYXRpb25zPC9oMz5cbiAgICAgIDxwPk1vZGFscyBjYW4gaGF2ZSBkaWZmZXJlbnQgd2lkdGhzOiBzbWFsbCwgbWVkaXVtLCBsYXJnZSwgZnVsbHNjcmVlbiwgb3IgY3VzdG9tIHBpeGVsIHZhbHVlcy48L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyaWRcIj5cbiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpID0+IHtcbiAgICAgICAgICBEZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7XG4gICAgICAgICAgICBoZWFkaW5nOiAnU21hbGwgTW9kYWwnLFxuICAgICAgICAgICAgd2lkdGg6ICdzbWFsbCcsXG4gICAgICAgICAgICBjb250ZW50OiBodG1sYFxuICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc21hbGwgbW9kYWwgd2l0aCBhIHdpZHRoIG9mIDM4MHB4LiBQZXJmZWN0IGZvciBzaW1wbGUgY29uZmlybWF0aW9ucyBvciBicmllZiBtZXNzYWdlcy48L3A+XG4gICAgICAgICAgICBgLFxuICAgICAgICAgICAgbWVudU9wdGlvbnM6IFt7XG4gICAgICAgICAgICAgIG5hbWU6ICdDYW5jZWwnLFxuICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jIChtb2RhbCkgPT4gbW9kYWwuZGVzdHJveSgpXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgIG5hbWU6ICdPSycsXG4gICAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKG1vZGFsKSA9PiBtb2RhbC5kZXN0cm95KClcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9fT5TbWFsbCBNb2RhbDwvZGVlcy1idXR0b24+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgIERlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtcbiAgICAgICAgICAgIGhlYWRpbmc6ICdNZWRpdW0gTW9kYWwgKERlZmF1bHQpJyxcbiAgICAgICAgICAgIHdpZHRoOiAnbWVkaXVtJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgICAgIDxkZWVzLWZvcm0+XG4gICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsnVXNlcm5hbWUnfT48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keydFbWFpbCd9IC5pbnB1dFR5cGU9JHsnZW1haWwnfT48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keydQYXNzd29yZCd9IC5pbnB1dFR5cGU9JHsncGFzc3dvcmQnfT48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICAgICAgPC9kZWVzLWZvcm0+XG4gICAgICAgICAgICBgLFxuICAgICAgICAgICAgbWVudU9wdGlvbnM6IFt7XG4gICAgICAgICAgICAgIG5hbWU6ICdDYW5jZWwnLFxuICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jIChtb2RhbCkgPT4gbW9kYWwuZGVzdHJveSgpXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgIG5hbWU6ICdTaWduIFVwJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAobW9kYWwpID0+IG1vZGFsLmRlc3Ryb3koKVxuICAgICAgICAgICAgfV0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH19Pk1lZGl1bSBNb2RhbDwvZGVlcy1idXR0b24+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgIERlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtcbiAgICAgICAgICAgIGhlYWRpbmc6ICdMYXJnZSBNb2RhbCcsXG4gICAgICAgICAgICB3aWR0aDogJ2xhcmdlJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgICAgIDxoND5XaWRlIENvbnRlbnQgQXJlYTwvaDQ+XG4gICAgICAgICAgICAgIDxwPlRoaXMgbGFyZ2UgbW9kYWwgaXMgODAwcHggd2lkZSBhbmQgcGVyZmVjdCBmb3IgZGlzcGxheWluZyBtb3JlIGNvbXBsZXggY29udGVudCBsaWtlIGZvcm1zIHdpdGggbXVsdGlwbGUgY29sdW1ucywgdGFibGVzLCBvciBkZXRhaWxlZCBpbmZvcm1hdGlvbi48L3A+XG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTZweDsgbWFyZ2luLXRvcDogMTZweDtcIj5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keydGaXJzdCBOYW1lJ30+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsnTGFzdCBOYW1lJ30+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsnQ29tcGFueSd9PjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7J1Bvc2l0aW9uJ30+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYCxcbiAgICAgICAgICAgIG1lbnVPcHRpb25zOiBbe1xuICAgICAgICAgICAgICBuYW1lOiAnQ2FuY2VsJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAobW9kYWwpID0+IG1vZGFsLmRlc3Ryb3koKVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICBuYW1lOiAnU2F2ZScsXG4gICAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKG1vZGFsKSA9PiBtb2RhbC5kZXN0cm95KClcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9fT5MYXJnZSBNb2RhbDwvZGVlcy1idXR0b24+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgIERlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtcbiAgICAgICAgICAgIGhlYWRpbmc6ICdGdWxsc2NyZWVuIEVkaXRvcicsXG4gICAgICAgICAgICB3aWR0aDogJ2Z1bGxzY3JlZW4nLFxuICAgICAgICAgICAgc2hvd0hlbHBCdXR0b246IHRydWUsXG4gICAgICAgICAgICBvbkhlbHA6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgYWxlcnQoJ0luIGEgcmVhbCBhcHAsIHRoaXMgd291bGQgc2hvdyBlZGl0b3IgZG9jdW1lbnRhdGlvbicpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgICAgIDxoND5GdWxsc2NyZWVuIEV4cGVyaWVuY2Ugd2l0aCBIZWFkZXIgQ29udHJvbHM8L2g0PlxuICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIHRha2VzIHVwIGFsbW9zdCB0aGUgZW50aXJlIHZpZXdwb3J0IHdpdGggYSAyMHB4IG1hcmdpbiBvbiBhbGwgc2lkZXMuIFRoZSBoZWFkZXIgYnV0dG9ucyBhcmUgcGFydGljdWxhcmx5IHVzZWZ1bCBpbiBmdWxsc2NyZWVuIG1vZGUuPC9wPlxuICAgICAgICAgICAgICA8cD5UaGUgY29udGVudCBhcmVhIGNhbiBiZSBhcyB0YWxsIGFzIG5lZWRlZCBhbmQgd2lsbCBzY3JvbGwgaWYgbmVjZXNzYXJ5LjwvcD5cbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjBmMGYwJywgJyMyYTJhMmEnKX07IGJvcmRlci1yYWRpdXM6IDhweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbi10b3A6IDE2cHg7XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5OTknLCAnIzY2NicpfVwiPkxhcmdlIGNvbnRlbnQgYXJlYTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgLFxuICAgICAgICAgICAgbWVudU9wdGlvbnM6IFt7XG4gICAgICAgICAgICAgIG5hbWU6ICdTYXZlJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAobW9kYWwpID0+IG1vZGFsLmRlc3Ryb3koKVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICBuYW1lOiAnQ2FuY2VsJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAobW9kYWwpID0+IG1vZGFsLmRlc3Ryb3koKVxuICAgICAgICAgICAgfV0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH19PkZ1bGxzY3JlZW4gTW9kYWw8L2RlZXMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tc2VjdGlvblwiPlxuICAgICAgPGgzPkN1c3RvbSBXaWR0aCAmIENvbnN0cmFpbnRzPC9oMz5cbiAgICAgIDxwPllvdSBjYW4gYWxzbyBzZXQgY3VzdG9tIHBpeGVsIHdpZHRocyBhbmQgbWluL21heCBjb25zdHJhaW50cy48L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyaWRcIj5cbiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpID0+IHtcbiAgICAgICAgICBEZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7XG4gICAgICAgICAgICBoZWFkaW5nOiAnQ3VzdG9tIFdpZHRoICg3MDBweCknLFxuICAgICAgICAgICAgd2lkdGg6IDcwMCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY3VzdG9tIHdpZHRoIG9mIGV4YWN0bHkgNzAwIHBpeGVscy48L3A+XG4gICAgICAgICAgICBgLFxuICAgICAgICAgICAgbWVudU9wdGlvbnM6IFt7XG4gICAgICAgICAgICAgIG5hbWU6ICdDbG9zZScsXG4gICAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKG1vZGFsKSA9PiBtb2RhbC5kZXN0cm95KClcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9fT5DdXN0b20gNzAwcHg8L2RlZXMtYnV0dG9uPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpID0+IHtcbiAgICAgICAgICBEZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7XG4gICAgICAgICAgICBoZWFkaW5nOiAnV2l0aCBNYXggV2lkdGgnLFxuICAgICAgICAgICAgd2lkdGg6ICdsYXJnZScsXG4gICAgICAgICAgICBtYXhXaWR0aDogNjAwLFxuICAgICAgICAgICAgY29udGVudDogaHRtbGBcbiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBpcyBzZXQgdG8gJ2xhcmdlJyBidXQgY29uc3RyYWluZWQgYnkgYSBtYXhXaWR0aCBvZiA2MDBweC48L3A+XG4gICAgICAgICAgICBgLFxuICAgICAgICAgICAgbWVudU9wdGlvbnM6IFt7XG4gICAgICAgICAgICAgIG5hbWU6ICdHb3QgaXQnLFxuICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jIChtb2RhbCkgPT4gbW9kYWwuZGVzdHJveSgpXG4gICAgICAgICAgICB9XSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfX0+TWF4IFdpZHRoIDYwMHB4PC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKSA9PiB7XG4gICAgICAgICAgRGVlc01vZGFsLmNyZWF0ZUFuZFNob3coe1xuICAgICAgICAgICAgaGVhZGluZzogJ1dpdGggTWluIFdpZHRoJyxcbiAgICAgICAgICAgIHdpZHRoOiAzMDAsXG4gICAgICAgICAgICBtaW5XaWR0aDogNDAwLFxuICAgICAgICAgICAgY29udGVudDogaHRtbGBcbiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB3aWR0aCBpcyBzZXQgdG8gMzAwcHggYnV0IGhhcyBhIG1pbldpZHRoIG9mIDQwMHB4LCBzbyBpdCB3aWxsIGJlIDQwMHB4IHdpZGUuPC9wPlxuICAgICAgICAgICAgYCxcbiAgICAgICAgICAgIG1lbnVPcHRpb25zOiBbe1xuICAgICAgICAgICAgICBuYW1lOiAnT0snLFxuICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jIChtb2RhbCkgPT4gbW9kYWwuZGVzdHJveSgpXG4gICAgICAgICAgICB9XSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfX0+TWluIFdpZHRoIDQwMHB4PC9kZWVzLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgIDxoMz5CdXR0b24gVmFyaWF0aW9uczwvaDM+XG4gICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgZGlmZmVyZW50IGJ1dHRvbiBjb25maWd1cmF0aW9ucyB3aXRoIHByb3BlciBzcGFjaW5nLjwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JpZFwiPlxuICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgIERlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtcbiAgICAgICAgICAgIGhlYWRpbmc6ICdNdWx0aXBsZSBBY3Rpb25zJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgZGVtb25zdHJhdGVzIG11bHRpcGxlIGJ1dHRvbnMgd2l0aCBwcm9wZXIgc3BhY2luZyBiZXR3ZWVuIHRoZW0uPC9wPlxuICAgICAgICAgICAgYCxcbiAgICAgICAgICAgIG1lbnVPcHRpb25zOiBbe1xuICAgICAgICAgICAgICBuYW1lOiAnRGVsZXRlJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAobW9kYWwpID0+IG1vZGFsLmRlc3Ryb3koKVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICBuYW1lOiAnQ2FuY2VsJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAobW9kYWwpID0+IG1vZGFsLmRlc3Ryb3koKVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICBuYW1lOiAnU2F2ZSBDaGFuZ2VzJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAobW9kYWwpID0+IG1vZGFsLmRlc3Ryb3koKVxuICAgICAgICAgICAgfV0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH19PlRocmVlIEJ1dHRvbnM8L2RlZXMtYnV0dG9uPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpID0+IHtcbiAgICAgICAgICBEZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7XG4gICAgICAgICAgICBoZWFkaW5nOiAnU2luZ2xlIEFjdGlvbicsXG4gICAgICAgICAgICBjb250ZW50OiBodG1sYFxuICAgICAgICAgICAgICA8cD5Tb21ldGltZXMgeW91IGp1c3QgbmVlZCBvbmUgYnV0dG9uLjwvcD5cbiAgICAgICAgICAgIGAsXG4gICAgICAgICAgICBtZW51T3B0aW9uczogW3tcbiAgICAgICAgICAgICAgbmFtZTogJ0Fja25vd2xlZGdlJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAobW9kYWwpID0+IG1vZGFsLmRlc3Ryb3koKVxuICAgICAgICAgICAgfV0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH19PlNpbmdsZSBCdXR0b248L2RlZXMtYnV0dG9uPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpID0+IHtcbiAgICAgICAgICBEZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7XG4gICAgICAgICAgICBoZWFkaW5nOiAnTm8gQWN0aW9ucycsXG4gICAgICAgICAgICBjb250ZW50OiBodG1sYFxuICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBubyBib3R0b20gYnV0dG9ucy4gVXNlIHRoZSBYIGJ1dHRvbiBvciBjbGljayBvdXRzaWRlIHRvIGNsb3NlLjwvcD5cbiAgICAgICAgICAgICAgPHAgc3R5bGU9XCJtYXJnaW4tdG9wOiAxNnB4OyBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM2NjYnLCAnIzk5OScpfTtcIj5UaGlzIGlzIHVzZWZ1bCBmb3IgaW5mb3JtYXRpb25hbCBtb2RhbHMgdGhhdCBkb24ndCByZXF1aXJlIHVzZXIgYWN0aW9uLjwvcD5cbiAgICAgICAgICAgIGAsXG4gICAgICAgICAgICBtZW51T3B0aW9uczogW10sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH19Pk5vIEJ1dHRvbnM8L2RlZXMtYnV0dG9uPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpID0+IHtcbiAgICAgICAgICBEZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7XG4gICAgICAgICAgICBoZWFkaW5nOiAnTG9uZyBCdXR0b24gTGFiZWxzJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgICAgIDxwPlRlc3RpbmcgYnV0dG9uIGxheW91dCB3aXRoIGxvbmdlciBsYWJlbHMuPC9wPlxuICAgICAgICAgICAgYCxcbiAgICAgICAgICAgIG1lbnVPcHRpb25zOiBbe1xuICAgICAgICAgICAgICBuYW1lOiAnRGlzY2FyZCBBbGwgQ2hhbmdlcycsXG4gICAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKG1vZGFsKSA9PiBtb2RhbC5kZXN0cm95KClcbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgbmFtZTogJ1NhdmUgYW5kIENvbnRpbnVlIEVkaXRpbmcnLFxuICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jIChtb2RhbCkgPT4gbW9kYWwuZGVzdHJveSgpXG4gICAgICAgICAgICB9XSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfX0+TG9uZyBMYWJlbHM8L2RlZXMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tc2VjdGlvblwiPlxuICAgICAgPGgzPlJlc3BvbnNpdmUgQmVoYXZpb3I8L2gzPlxuICAgICAgPHA+QWxsIG1vZGFscyBhdXRvbWF0aWNhbGx5IGJlY29tZSBmdWxsLXdpZHRoIG9uIG1vYmlsZSBkZXZpY2VzICg8IDc2OHB4IHZpZXdwb3J0IHdpZHRoKSBmb3IgYmV0dGVyIHVzYWJpbGl0eS48L3A+XG4gICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICBEZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7XG4gICAgICAgICAgaGVhZGluZzogJ1Jlc3BvbnNpdmUgTW9kYWwnLFxuICAgICAgICAgIHdpZHRoOiAnbGFyZ2UnLFxuICAgICAgICAgIHNob3dIZWxwQnV0dG9uOiB0cnVlLFxuICAgICAgICAgIG9uSGVscDogKCkgPT4gY29uc29sZS5sb2coJ0hlbHAgcmVxdWVzdGVkIGZvciByZXNwb25zaXZlIG1vZGFsJyksXG4gICAgICAgICAgY29udGVudDogaHRtbGBcbiAgICAgICAgICAgIDxwPlJlc2l6ZSB5b3VyIGJyb3dzZXIgd2luZG93IHRvIHNlZSBob3cgdGhpcyBtb2RhbCBhZGFwdHMuIE9uIG1vYmlsZSB2aWV3cG9ydHMsIGl0IHdpbGwgYXV0b21hdGljYWxseSB0YWtlIHRoZSBmdWxsIHdpZHRoIG1pbnVzIG1hcmdpbnMuPC9wPlxuICAgICAgICAgICAgPHA+VGhlIGhlYWRlciBidXR0b25zIHJlbWFpbiBhY2Nlc3NpYmxlIGF0IGFsbCB2aWV3cG9ydCBzaXplcy48L3A+XG4gICAgICAgICAgYCxcbiAgICAgICAgICBtZW51T3B0aW9uczogW3tcbiAgICAgICAgICAgIG5hbWU6ICdDbG9zZScsXG4gICAgICAgICAgICBhY3Rpb246IGFzeW5jIChtb2RhbCkgPT4gbW9kYWwuZGVzdHJveSgpXG4gICAgICAgICAgfV0sXG4gICAgICAgIH0pO1xuICAgICAgfX0+VGVzdCBSZXNwb25zaXZlPC9kZWVzLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5gIiwgImltcG9ydCAqIGFzIGNvbG9ycyBmcm9tICcuLi8wMGNvbG9ycy5qcyc7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLzAwcGx1Z2lucy5qcyc7XG5pbXBvcnQgeyB6SW5kZXhMYXllcnMsIHpJbmRleFJlZ2lzdHJ5IH0gZnJvbSAnLi4vMDB6aW5kZXguanMnO1xuaW1wb3J0IHsgY3NzR2Vpc3RGb250RmFtaWx5IH0gZnJvbSAnLi4vMDBmb250cy5qcyc7XG5cbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLW1vZGFsLmRlbW8uanMnO1xuaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgRGVlc0VsZW1lbnQsXG4gIHByb3BlcnR5LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBjc3NNYW5hZ2VyLFxuICBjc3MsXG4gIHR5cGUgQ1NTUmVzdWx0LFxuICB1bnNhZmVDU1MsXG4gIHVuc2FmZUhUTUwsXG4gIHN0YXRlLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCB7IERlZXNXaW5kb3dMYXllciB9IGZyb20gJy4uL2RlZXMtd2luZG93bGF5ZXIvZGVlcy13aW5kb3dsYXllci5qcyc7XG5pbXBvcnQgJy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtbW9kYWwnOiBEZWVzTW9kYWw7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtbW9kYWwnKVxuZXhwb3J0IGNsYXNzIERlZXNNb2RhbCBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgLy8gU1RBVElDXG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhvcHRpb25zQXJnOiB7XG4gICAgaGVhZGluZzogc3RyaW5nO1xuICAgIGNvbnRlbnQ6IFRlbXBsYXRlUmVzdWx0O1xuICAgIG1lbnVPcHRpb25zOiBwbHVnaW5zLnRzY2xhc3Mud2Vic2l0ZS5JTWVudUl0ZW08RGVlc01vZGFsPltdO1xuICAgIHdpZHRoPzogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICdmdWxsc2NyZWVuJyB8IG51bWJlcjtcbiAgICBtYXhXaWR0aD86IG51bWJlcjtcbiAgICBtaW5XaWR0aD86IG51bWJlcjtcbiAgICBzaG93Q2xvc2VCdXR0b24/OiBib29sZWFuO1xuICAgIHNob3dIZWxwQnV0dG9uPzogYm9vbGVhbjtcbiAgICBvbkhlbHA/OiAoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgICBtb2JpbGVGdWxsc2NyZWVuPzogYm9vbGVhbjtcbiAgICBjb250ZW50UGFkZGluZz86IG51bWJlcjtcbiAgfSkge1xuICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5ib2R5O1xuICAgIGNvbnN0IG1vZGFsID0gbmV3IERlZXNNb2RhbCgpO1xuICAgIG1vZGFsLmhlYWRpbmcgPSBvcHRpb25zQXJnLmhlYWRpbmc7XG4gICAgbW9kYWwuY29udGVudCA9IG9wdGlvbnNBcmcuY29udGVudDtcbiAgICBtb2RhbC5tZW51T3B0aW9ucyA9IG9wdGlvbnNBcmcubWVudU9wdGlvbnM7XG4gICAgaWYgKG9wdGlvbnNBcmcud2lkdGgpIG1vZGFsLndpZHRoID0gb3B0aW9uc0FyZy53aWR0aDtcbiAgICBpZiAob3B0aW9uc0FyZy5tYXhXaWR0aCkgbW9kYWwubWF4V2lkdGggPSBvcHRpb25zQXJnLm1heFdpZHRoO1xuICAgIGlmIChvcHRpb25zQXJnLm1pbldpZHRoKSBtb2RhbC5taW5XaWR0aCA9IG9wdGlvbnNBcmcubWluV2lkdGg7XG4gICAgaWYgKG9wdGlvbnNBcmcuc2hvd0Nsb3NlQnV0dG9uICE9PSB1bmRlZmluZWQpIG1vZGFsLnNob3dDbG9zZUJ1dHRvbiA9IG9wdGlvbnNBcmcuc2hvd0Nsb3NlQnV0dG9uO1xuICAgIGlmIChvcHRpb25zQXJnLnNob3dIZWxwQnV0dG9uICE9PSB1bmRlZmluZWQpIG1vZGFsLnNob3dIZWxwQnV0dG9uID0gb3B0aW9uc0FyZy5zaG93SGVscEJ1dHRvbjtcbiAgICBpZiAob3B0aW9uc0FyZy5vbkhlbHApIG1vZGFsLm9uSGVscCA9IG9wdGlvbnNBcmcub25IZWxwO1xuICAgIGlmIChvcHRpb25zQXJnLm1vYmlsZUZ1bGxzY3JlZW4gIT09IHVuZGVmaW5lZCkgbW9kYWwubW9iaWxlRnVsbHNjcmVlbiA9IG9wdGlvbnNBcmcubW9iaWxlRnVsbHNjcmVlbjtcbiAgICBpZiAob3B0aW9uc0FyZy5jb250ZW50UGFkZGluZyAhPT0gdW5kZWZpbmVkKSBtb2RhbC5jb250ZW50UGFkZGluZyA9IG9wdGlvbnNBcmcuY29udGVudFBhZGRpbmc7XG4gICAgbW9kYWwud2luZG93TGF5ZXIgPSBhd2FpdCBEZWVzV2luZG93TGF5ZXIuY3JlYXRlQW5kU2hvdyh7XG4gICAgICBibHVyOiB0cnVlLFxuICAgIH0pO1xuICAgIG1vZGFsLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgbW9kYWwuZGVzdHJveSgpO1xuICAgIH0pO1xuICAgIGJvZHkuYXBwZW5kKG1vZGFsLndpbmRvd0xheWVyKTtcbiAgICBib2R5LmFwcGVuZChtb2RhbCk7XG4gICAgXG4gICAgLy8gR2V0IHotaW5kZXggZm9yIG1vZGFsIChzaG91bGQgYmUgYWJvdmUgd2luZG93IGxheWVyKVxuICAgIG1vZGFsLm1vZGFsWkluZGV4ID0gekluZGV4UmVnaXN0cnkuZ2V0TmV4dFpJbmRleCgpO1xuICAgIHpJbmRleFJlZ2lzdHJ5LnJlZ2lzdGVyKG1vZGFsLCBtb2RhbC5tb2RhbFpJbmRleCk7XG4gICAgXG4gICAgcmV0dXJuIG1vZGFsO1xuICB9XG5cbiAgLy8gSU5TVEFOQ0VcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IFN0cmluZyxcbiAgfSlcbiAgYWNjZXNzb3IgaGVhZGluZyA9ICcnO1xuXG4gIEBzdGF0ZSh7fSlcbiAgYWNjZXNzb3IgY29udGVudDogVGVtcGxhdGVSZXN1bHQ7XG5cbiAgQHN0YXRlKHt9KVxuICBhY2Nlc3NvciBtZW51T3B0aW9uczogcGx1Z2lucy50c2NsYXNzLndlYnNpdGUuSU1lbnVJdGVtPERlZXNNb2RhbD5bXSA9IFtdO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciB3aWR0aDogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICdmdWxsc2NyZWVuJyB8IG51bWJlciA9ICdtZWRpdW0nO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBtYXhXaWR0aDogbnVtYmVyO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBtaW5XaWR0aDogbnVtYmVyO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3Igc2hvd0Nsb3NlQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIHNob3dIZWxwQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBhY2Nlc3NvciBvbkhlbHA6ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3IgbW9iaWxlRnVsbHNjcmVlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBjb250ZW50UGFkZGluZzogbnVtYmVyID0gMTY7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgbW9kYWxaSW5kZXg6IG51bWJlciA9IDEwMDA7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICR7Y3NzR2Vpc3RGb250RmFtaWx5fTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzMzJywgJyNmZmYnKX07XG4gICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgICB9XG4gICAgICAubW9kYWxDb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG4gICAgICAubW9kYWwge1xuICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSBzY2FsZSgwLjk1KTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzA5MDkwYicpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICAgICAgbWFyZ2luOiAyMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICAvKiBXaWR0aCB2YXJpYXRpb25zICovXG4gICAgICAubW9kYWwud2lkdGgtc21hbGwge1xuICAgICAgICB3aWR0aDogMzgwcHg7XG4gICAgICB9XG5cbiAgICAgIC5tb2RhbC53aWR0aC1tZWRpdW0ge1xuICAgICAgICB3aWR0aDogNTYwcHg7XG4gICAgICB9XG5cbiAgICAgIC5tb2RhbC53aWR0aC1sYXJnZSB7XG4gICAgICAgIHdpZHRoOiA4MDBweDtcbiAgICAgIH1cblxuICAgICAgLm1vZGFsLndpZHRoLWZ1bGxzY3JlZW4ge1xuICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQwcHgpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgLm1vZGFsIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8qIEFsbG93IGZ1bGwgaGVpZ2h0IG9uIG1vYmlsZSB3aGVuIGNvbnRlbnQgbmVlZHMgaXQgKi9cbiAgICAgICAgLm1vZGFsQ29udGFpbmVyIHtcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAubW9kYWwge1xuICAgICAgICAgIG1hcmdpbjogMTBweDtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjBweCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8qIEZ1bGwgc2NyZWVuIG1vZGUgb24gbW9iaWxlICovXG4gICAgICAgIC5tb2RhbC5tb2JpbGUtZnVsbHNjcmVlbiB7XG4gICAgICAgICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5tb2RhbC5zaG93IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgc2NhbGUoMSk7XG4gICAgICB9XG5cbiAgICAgIC5tb2RhbC5zaG93LnByZWRlc3Ryb3kge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGUoMSk7XG4gICAgICB9XG5cbiAgICAgIC5tb2RhbCAuaGVhZGluZyB7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICR7Y3NzR2Vpc3RGb250RmFtaWx5fTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAubW9kYWwgLmhlYWRpbmcgLmhlYWRlci1idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDhweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjYTFhMWFhJyl9O1xuICAgICAgfVxuXG4gICAgICAubW9kYWwgLmhlYWRpbmcgLmhlYWRlci1idXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y0ZjRmNScsICcjMjcyNzJhJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgIH1cblxuICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzZjNmNDYnKX07XG4gICAgICB9XG5cbiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbiBkZWVzLWljb24ge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkaW5nLXRleHQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gICAgICB9XG5cbiAgICAgIC5tb2RhbCAuY29udGVudCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgICAgIH1cbiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ge1xuICAgICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMjcyNzJhJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjM2YzZjQ2Jyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y0ZjRmNScsICcjM2YzZjQ2Jyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZDFkNWRiJywgJyM1MjUyNWInKX07XG4gICAgICB9XG4gICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjNTI1MjViJyl9O1xuICAgICAgfVxuICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyMzYjgyZjYnKX07XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzYjgyZjYnLCAnIzNiODJmNicpfTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB9XG4gICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMyNTYzZWInLCAnIzI1NjNlYicpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzI1NjNlYicsICcjMjU2M2ViJyl9O1xuICAgICAgfVxuICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzFkNGVkOCcsICcjMWQ0ZWQ4Jyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMWQ0ZWQ4JywgJyMxZDRlZDgnKX07XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCB3aWR0aENsYXNzID0gdHlwZW9mIHRoaXMud2lkdGggPT09ICdzdHJpbmcnID8gYHdpZHRoLSR7dGhpcy53aWR0aH1gIDogJyc7XG4gICAgY29uc3QgY3VzdG9tV2lkdGggPSB0eXBlb2YgdGhpcy53aWR0aCA9PT0gJ251bWJlcicgPyBgJHt0aGlzLndpZHRofXB4YCA6ICcnO1xuICAgIGNvbnN0IG1heFdpZHRoU3R5bGUgPSB0aGlzLm1heFdpZHRoID8gYCR7dGhpcy5tYXhXaWR0aH1weGAgOiAnJztcbiAgICBjb25zdCBtaW5XaWR0aFN0eWxlID0gdGhpcy5taW5XaWR0aCA/IGAke3RoaXMubWluV2lkdGh9cHhgIDogJyc7XG4gICAgY29uc3QgbW9iaWxlRnVsbHNjcmVlbkNsYXNzID0gdGhpcy5tb2JpbGVGdWxsc2NyZWVuID8gJ21vYmlsZS1mdWxsc2NyZWVuJyA6ICcnO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3R5bGU+XG4gICAgICAgICR7Y3VzdG9tV2lkdGggPyBgLm1vZGFsIHsgd2lkdGg6ICR7Y3VzdG9tV2lkdGh9OyB9YCA6ICcnfVxuICAgICAgICAke21heFdpZHRoU3R5bGUgPyBgLm1vZGFsIHsgbWF4LXdpZHRoOiAke21heFdpZHRoU3R5bGV9OyB9YCA6ICcnfVxuICAgICAgICAke21pbldpZHRoU3R5bGUgPyBgLm1vZGFsIHsgbWluLXdpZHRoOiAke21pbldpZHRoU3R5bGV9OyB9YCA6ICcnfVxuICAgICAgPC9zdHlsZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbENvbnRhaW5lclwiIEBjbGljaz0ke3RoaXMuaGFuZGxlT3V0c2lkZUNsaWNrfSBzdHlsZT1cInotaW5kZXg6ICR7dGhpcy5tb2RhbFpJbmRleH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsICR7d2lkdGhDbGFzc30gJHttb2JpbGVGdWxsc2NyZWVuQ2xhc3N9XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLXRleHRcIj4ke3RoaXMuaGVhZGluZ308L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYnV0dG9uc1wiPlxuICAgICAgICAgICAgICAke3RoaXMuc2hvd0hlbHBCdXR0b24gPyBodG1sYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYnV0dG9uXCIgQGNsaWNrPSR7dGhpcy5oYW5kbGVIZWxwfSB0aXRsZT1cIkhlbHBcIj5cbiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOmhlbHBDaXJjbGUnfT48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgYCA6ICcnfVxuICAgICAgICAgICAgICAke3RoaXMuc2hvd0Nsb3NlQnV0dG9uID8gaHRtbGBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWJ1dHRvblwiIEBjbGljaz0keygpID0+IHRoaXMuZGVzdHJveSgpfSB0aXRsZT1cIkNsb3NlXCI+XG4gICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTp4J30+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgc3R5bGU9XCJwYWRkaW5nOiAke3RoaXMuY29udGVudFBhZGRpbmd9cHg7XCI+JHt0aGlzLmNvbnRlbnR9PC9kaXY+XG4gICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLmxlbmd0aCA+IDAgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbUJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLm1hcChcbiAgICAgICAgICAgICAgICAoYWN0aW9uQXJnLCBpbmRleCkgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b21CdXR0b24gJHtpbmRleCA9PT0gdGhpcy5tZW51T3B0aW9ucy5sZW5ndGggLSAxID8gJ3ByaW1hcnknIDogJyd9ICR7YWN0aW9uQXJnLm5hbWUgPT09ICdPSycgPyAnb2snIDogJyd9XCIgQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb25BcmcuYWN0aW9uKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgfX0+JHthY3Rpb25BcmcubmFtZX08L2Rpdj5cbiAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgIDogJyd9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgd2luZG93TGF5ZXI6IERlZXNXaW5kb3dMYXllcjtcbiAgcHVibGljIGFzeW5jIGZpcnN0VXBkYXRlZChfY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+KSB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgY29uc3QgZG9tdG9vbHMgPSBhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtcbiAgICBhd2FpdCBkb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwKTtcbiAgICBjb25zdCBtb2RhbCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubW9kYWwnKTtcbiAgICBtb2RhbC5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaGFuZGxlT3V0c2lkZUNsaWNrKGV2ZW50QXJnOiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnRBcmcuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgbW9kYWxDb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1vZGFsQ29udGFpbmVyJyk7XG4gICAgaWYgKGV2ZW50QXJnLnRhcmdldCA9PT0gbW9kYWxDb250YWluZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZXN0cm95KCkge1xuICAgIGNvbnN0IGRvbXRvb2xzID0gYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7XG4gICAgY29uc3QgbW9kYWwgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1vZGFsJyk7XG4gICAgbW9kYWwuY2xhc3NMaXN0LmFkZCgncHJlZGVzdHJveScpO1xuICAgIGF3YWl0IGRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjAwKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMpO1xuICAgIGF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpO1xuICAgIFxuICAgIC8vIFVucmVnaXN0ZXIgZnJvbSB6LWluZGV4IHJlZ2lzdHJ5XG4gICAgekluZGV4UmVnaXN0cnkudW5yZWdpc3Rlcih0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlSGVscCgpIHtcbiAgICBpZiAodGhpcy5vbkhlbHApIHtcbiAgICAgIGF3YWl0IHRoaXMub25IZWxwKCk7XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0IHsgaHRtbCwgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IHtcbiAgcmV0dXJuIGh0bWxgXG4gICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7J2EgbGFiZWwnfT48L2RlZXMtbGFiZWw+XG4gIGA7XG59IiwgImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi4vMDBwbHVnaW5zLmpzJztcbmltcG9ydCAqIGFzIGNvbG9ycyBmcm9tICcuLi8wMGNvbG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIGh0bWwsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbiAgRGVlc0VsZW1lbnQsXG4gIHByb3BlcnR5LFxuICB1bnNhZmVDU1MsXG4gIHF1ZXJ5LFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1sYWJlbC5kZW1vLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLzAwdGhlbWUuanMnO1xuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1sYWJlbCcpXG5leHBvcnQgY2xhc3MgRGVlc0xhYmVsIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcblxuICAvLyBJTlNUQU5DRVxuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIHJlZmxlY3Q6IHRydWUsXG4gIH0pXG4gIGFjY2Vzc29yIGxhYmVsID0gJyc7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgcmVmbGVjdDogdHJ1ZSxcbiAgfSlcbiAgYWNjZXNzb3IgZGVzY3JpcHRpb246IHN0cmluZztcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgcmVmbGVjdDogdHJ1ZSxcbiAgfSlcbiAgYWNjZXNzb3IgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xuICAgICAgfVxuXG4gICAgICAubGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTUlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gICAgICB9XG5cbiAgICAgIC5yZXF1aXJlZCB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgODQuMiUgNjAuMiUpJywgJ2hzbCgwIDcyLjIlIDUwLjYlKScpfTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgIH1cblxuICAgICAgZGVlcy1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xuICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1LjElKScsICdoc2woMCAwJSA2My45JSknKX07XG4gICAgICAgIGN1cnNvcjogaGVscDtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4gIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke3RoaXMubGFiZWxcbiAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICR7dGhpcy5sYWJlbH1cbiAgICAgICAgICAgICAgJHt0aGlzLnJlcXVpcmVkID8gaHRtbGA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5gIDogJyd9XG4gICAgICAgICAgICAgICR7dGhpcy5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6aW5mbyd9PjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8ZGVlcy1zcGVlY2hidWJibGUgLnRleHQ9JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtc3BlZWNoYnViYmxlPlxuICAgICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgIDogaHRtbGBgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYFxuICAgICAgICA6IGh0bWxgYH1cbiAgICBgO1xuICB9XG59XG4iLCAiLy8gQXV0by1nZW5lcmF0ZWQgYnkgc2NyaXB0cy91cGRhdGUtbW9uYWNvLXZlcnNpb24uY2pzXG5leHBvcnQgY29uc3QgTU9OQUNPX1ZFUlNJT04gPSAnMC41NS4xJztcbiIsICJpbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgcHJvcGVydHksXG4gIGh0bWwsXG4gIGN1c3RvbUVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAqIGFzIGRvbXRvb2xzIGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMnO1xuaW1wb3J0IHsgTU9OQUNPX1ZFUlNJT04gfSBmcm9tICcuL3ZlcnNpb24uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbmltcG9ydCB0eXBlICogYXMgbW9uYWNvIGZyb20gJ21vbmFjby1lZGl0b3InO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLXdvcmtzcGFjZS1tb25hY28nOiBEZWVzV29ya3NwYWNlTW9uYWNvO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLXdvcmtzcGFjZS1tb25hY28nKVxuZXhwb3J0IGNsYXNzIERlZXNXb3Jrc3BhY2VNb25hY28gZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIC8vIERFTU9cbiAgcHVibGljIHN0YXRpYyBkZW1vID0gKCkgPT4gaHRtbGA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPmA7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ1dvcmtzcGFjZSc7XG5cbiAgLy8gU1RBVElDXG4gIHB1YmxpYyBzdGF0aWMgbW9uYWNvRGVmZXJyZWQ6IFJldHVyblR5cGU8dHlwZW9mIGRvbXRvb2xzLnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyPjtcblxuICAvLyBJTlNUQU5DRVxuICBwdWJsaWMgZWRpdG9yRGVmZXJyZWQgPSBkb210b29scy5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcjxtb25hY28uZWRpdG9yLklTdGFuZGFsb25lQ29kZUVkaXRvcj4oKTtcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IFN0cmluZ1xuICB9KVxuICBhY2Nlc3NvciBjb250ZW50ID0gXCJmdW5jdGlvbiBoZWxsbygpIHtcXG5cXHRhbGVydCgnSGVsbG8gd29ybGQhJyk7XFxufVwiO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogU3RyaW5nXG4gIH0pXG4gIGFjY2Vzc29yIGxhbmd1YWdlID0gJ3R5cGVzY3JpcHQnO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogU3RyaW5nXG4gIH0pXG4gIGFjY2Vzc29yIGZpbGVQYXRoOiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IE9iamVjdFxuICB9KVxuICBhY2Nlc3NvciBjb250ZW50U3ViamVjdCA9IG5ldyBkb210b29scy5wbHVnaW5zLnNtYXJ0cngucnhqcy5TdWJqZWN0PHN0cmluZz4oKTtcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IEJvb2xlYW5cbiAgfSlcbiAgYWNjZXNzb3Igd29yZFdyYXA6IG1vbmFjby5lZGl0b3IuSVN0YW5kYWxvbmVFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zWyd3b3JkV3JhcCddID0gJ29mZic7XG5cbiAgcHJpdmF0ZSBtb25hY29UaGVtZVN1YnNjcmlwdGlvbjogZG9tdG9vbHMucGx1Z2lucy5zbWFydHJ4LnJ4anMuU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgaXNVcGRhdGluZ0Zyb21FeHRlcm5hbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZG9tdG9vbHMuRG9tVG9vbHMuc2V0dXBEb21Ub29scygpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgOmhvc3Qge1xuICAgICAgfVxuXG4gICAgICAqIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cblxuICAgICAgI2NvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4gIHB1YmxpYyByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cIm1haW5ib3hcIj5cbiAgICAgICAgPGRpdiBpZD1cImNvbnRhaW5lclwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmaXJzdFVwZGF0ZWQoXG4gICAgX2NoYW5nZWRQcm9wZXJ0aWVzOiBNYXA8c3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sLCB1bmtub3duPlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoX2NoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpO1xuICAgIGNvbnN0IG1vbmFjb0NkbkJhc2UgPSBgaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tb25hY28tZWRpdG9yQCR7TU9OQUNPX1ZFUlNJT059YDtcblxuICAgIGlmICghRGVlc1dvcmtzcGFjZU1vbmFjby5tb25hY29EZWZlcnJlZCkge1xuICAgICAgRGVlc1dvcmtzcGFjZU1vbmFjby5tb25hY29EZWZlcnJlZCA9IGRvbXRvb2xzLnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCk7XG4gICAgICBjb25zdCBzY3JpcHRVcmwgPSBgJHttb25hY29DZG5CYXNlfS9taW4vdnMvbG9hZGVyLmpzYDtcbiAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0LnNyYyA9IHNjcmlwdFVybDtcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIERlZXNXb3Jrc3BhY2VNb25hY28ubW9uYWNvRGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgICAgfTtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9XG4gICAgYXdhaXQgRGVlc1dvcmtzcGFjZU1vbmFjby5tb25hY29EZWZlcnJlZC5wcm9taXNlO1xuXG4gICAgKHdpbmRvdyBhcyBhbnkpLnJlcXVpcmUuY29uZmlnKHtcbiAgICAgIHBhdGhzOiB7IHZzOiBgJHttb25hY29DZG5CYXNlfS9taW4vdnNgIH0sXG4gICAgfSk7XG4gICAgKHdpbmRvdyBhcyBhbnkpLnJlcXVpcmUoWyd2cy9lZGl0b3IvZWRpdG9yLm1haW4nXSwgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gR2V0IGN1cnJlbnQgdGhlbWUgZnJvbSBkb210b29sc1xuICAgICAgY29uc3QgZG9tdG9vbHNJbnN0YW5jZSA9IGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO1xuICAgICAgY29uc3QgaXNCcmlnaHQgPSBkb210b29sc0luc3RhbmNlLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW47XG4gICAgICBjb25zdCBpbml0aWFsVGhlbWUgPSBpc0JyaWdodCA/ICd2cycgOiAndnMtZGFyayc7XG5cbiAgICAgIGNvbnN0IG1vbmFjb0luc3RhbmNlID0gKHdpbmRvdyBhcyBhbnkpLm1vbmFjbyBhcyB0eXBlb2YgbW9uYWNvO1xuXG4gICAgICAvLyBDcmVhdGUgb3IgZ2V0IG1vZGVsIHdpdGggcHJvcGVyIGZpbGUgVVJJIGZvciBUeXBlU2NyaXB0IEludGVsbGlTZW5zZVxuICAgICAgbGV0IG1vZGVsOiBtb25hY28uZWRpdG9yLklUZXh0TW9kZWwgfCBudWxsID0gbnVsbDtcbiAgICAgIGlmICh0aGlzLmZpbGVQYXRoKSB7XG4gICAgICAgIGNvbnN0IHVyaSA9IG1vbmFjb0luc3RhbmNlLlVyaS5wYXJzZShgZmlsZTovLyR7dGhpcy5maWxlUGF0aH1gKTtcbiAgICAgICAgbW9kZWwgPSBtb25hY29JbnN0YW5jZS5lZGl0b3IuZ2V0TW9kZWwodXJpKTtcbiAgICAgICAgaWYgKCFtb2RlbCkge1xuICAgICAgICAgIG1vZGVsID0gbW9uYWNvSW5zdGFuY2UuZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMuY29udGVudCwgdGhpcy5sYW5ndWFnZSwgdXJpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtb2RlbC5zZXRWYWx1ZSh0aGlzLmNvbnRlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVkaXRvciA9IChtb25hY29JbnN0YW5jZS5lZGl0b3IgYXMgdHlwZW9mIG1vbmFjby5lZGl0b3IpLmNyZWF0ZShjb250YWluZXIsIHtcbiAgICAgICAgbW9kZWw6IG1vZGVsIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgdmFsdWU6IG1vZGVsID8gdW5kZWZpbmVkIDogdGhpcy5jb250ZW50LFxuICAgICAgICBsYW5ndWFnZTogbW9kZWwgPyB1bmRlZmluZWQgOiB0aGlzLmxhbmd1YWdlLFxuICAgICAgICB0aGVtZTogaW5pdGlhbFRoZW1lLFxuICAgICAgICB1c2VTaGFkb3dET006IHRydWUsXG4gICAgICAgIGZvbnRTaXplOiAxNixcbiAgICAgICAgYXV0b21hdGljTGF5b3V0OiB0cnVlLFxuICAgICAgICB3b3JkV3JhcDogdGhpcy53b3JkV3JhcCxcbiAgICAgICAgaG92ZXI6IHtcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIGRlbGF5OiAzMDAsXG4gICAgICAgICAgc3RpY2t5OiB0cnVlLFxuICAgICAgICAgIGFib3ZlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBTdWJzY3JpYmUgdG8gdGhlbWUgY2hhbmdlc1xuICAgICAgdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiA9IGRvbXRvb2xzSW5zdGFuY2UudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoKGdvQnJpZ2h0OiBib29sZWFuKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1RoZW1lID0gZ29CcmlnaHQgPyAndnMnIDogJ3ZzLWRhcmsnO1xuICAgICAgICBlZGl0b3IudXBkYXRlT3B0aW9ucyh7IHRoZW1lOiBuZXdUaGVtZSB9KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmVkaXRvckRlZmVycmVkLnJlc29sdmUoZWRpdG9yKTtcbiAgICB9KTtcbiAgICBjb25zdCBjc3MgPSBhd2FpdCAoXG4gICAgICBhd2FpdCBmZXRjaChgJHttb25hY29DZG5CYXNlfS9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzc2ApXG4gICAgKS50ZXh0KCk7XG4gICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBzdHlsZUVsZW1lbnQudGV4dENvbnRlbnQgPSBjc3M7XG4gICAgdGhpcy5zaGFkb3dSb290LmFwcGVuZChzdHlsZUVsZW1lbnQpO1xuXG5cbiAgICAvLyBlZGl0b3IgaXMgc2V0dXAgbGV0IGRvIHRoZSByZXN0XG4gICAgY29uc3QgZWRpdG9yID0gYXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO1xuICAgIGVkaXRvci5vbkRpZENoYW5nZU1vZGVsQ29udGVudChhc3luYyBldmVudEFyZyA9PiB7XG4gICAgICAvLyBEb24ndCBlbWl0IGV2ZW50cyB3aGVuIHdlJ3JlIHByb2dyYW1tYXRpY2FsbHkgdXBkYXRpbmcgdGhlIGNvbnRlbnRcbiAgICAgIGlmICh0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWwpIHJldHVybjtcblxuICAgICAgY29uc3QgdmFsdWUgPSBlZGl0b3IuZ2V0VmFsdWUoKTtcbiAgICAgIHRoaXMuY29udGVudFN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjb250ZW50LWNoYW5nZScsIHtcbiAgICAgICAgZGV0YWlsOiB2YWx1ZSxcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICB9KSk7XG4gICAgfSk7XG4gICAgdGhpcy5jb250ZW50U3ViamVjdC5uZXh0KGVkaXRvci5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBNYXA8c3RyaW5nLCBhbnk+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBjb25zdCBtb25hY29JbnN0YW5jZSA9ICh3aW5kb3cgYXMgYW55KS5tb25hY28gYXMgdHlwZW9mIG1vbmFjbztcbiAgICBpZiAoIW1vbmFjb0luc3RhbmNlKSByZXR1cm47XG5cbiAgICAvLyBIYW5kbGUgZmlsZVBhdGggY2hhbmdlcyAtIHN3aXRjaCB0byBkaWZmZXJlbnQgbW9kZWxcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdmaWxlUGF0aCcpICYmIHRoaXMuZmlsZVBhdGgpIHtcbiAgICAgIGNvbnN0IGVkaXRvciA9IGF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtcbiAgICAgIGNvbnN0IHVyaSA9IG1vbmFjb0luc3RhbmNlLlVyaS5wYXJzZShgZmlsZTovLyR7dGhpcy5maWxlUGF0aH1gKTtcbiAgICAgIGxldCBtb2RlbCA9IG1vbmFjb0luc3RhbmNlLmVkaXRvci5nZXRNb2RlbCh1cmkpO1xuXG4gICAgICBpZiAoIW1vZGVsKSB7XG4gICAgICAgIG1vZGVsID0gbW9uYWNvSW5zdGFuY2UuZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMuY29udGVudCwgdGhpcy5sYW5ndWFnZSwgdXJpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFVwZGF0ZSBtb2RlbCBjb250ZW50IGlmIGRpZmZlcmVudFxuICAgICAgICBpZiAobW9kZWwuZ2V0VmFsdWUoKSAhPT0gdGhpcy5jb250ZW50KSB7XG4gICAgICAgICAgdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsID0gdHJ1ZTtcbiAgICAgICAgICBtb2RlbC5zZXRWYWx1ZSh0aGlzLmNvbnRlbnQpO1xuICAgICAgICAgIHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFN3aXRjaCBlZGl0b3IgdG8gdXNlIHRoaXMgbW9kZWxcbiAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbCA9IGVkaXRvci5nZXRNb2RlbCgpO1xuICAgICAgaWYgKGN1cnJlbnRNb2RlbD8udXJpLnRvU3RyaW5nKCkgIT09IHVyaS50b1N0cmluZygpKSB7XG4gICAgICAgIGVkaXRvci5zZXRNb2RlbChtb2RlbCk7XG4gICAgICB9XG4gICAgICByZXR1cm47IC8vIGZpbGVQYXRoIGNoYW5nZSBoYW5kbGVzIGNvbnRlbnQgdG9vXG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGNvbnRlbnQgY2hhbmdlcyAod2hlbiBubyBmaWxlUGF0aCBvciBmaWxlUGF0aCB1bmNoYW5nZWQpXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnY29udGVudCcpKSB7XG4gICAgICBjb25zdCBlZGl0b3IgPSBhd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7XG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBlZGl0b3IuZ2V0VmFsdWUoKTtcbiAgICAgIGlmIChjdXJyZW50VmFsdWUgIT09IHRoaXMuY29udGVudCkge1xuICAgICAgICB0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWwgPSB0cnVlO1xuICAgICAgICBlZGl0b3Iuc2V0VmFsdWUodGhpcy5jb250ZW50KTtcbiAgICAgICAgdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGxhbmd1YWdlIGNoYW5nZXNcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsYW5ndWFnZScpKSB7XG4gICAgICBjb25zdCBlZGl0b3IgPSBhd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7XG4gICAgICBjb25zdCBtb2RlbCA9IGVkaXRvci5nZXRNb2RlbCgpO1xuICAgICAgaWYgKG1vZGVsKSB7XG4gICAgICAgIG1vbmFjb0luc3RhbmNlLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKG1vZGVsLCB0aGlzLmxhbmd1YWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAodGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjb250ZW50IGZyb20gZXh0ZXJuYWwgc291cmNlIHdpdGggb3B0aW9uYWwgY3Vyc29yIHByZXNlcnZhdGlvbi5cbiAgICogVXNlIHRoaXMgd2hlbiB0aGUgZmlsZSBjb250ZW50IGNoYW5nZXMgZXh0ZXJuYWxseSAoZS5nLiwgZmlsZSBjaGFuZ2VkIG9uIGRpc2spLlxuICAgKiBAcGFyYW0gbmV3Q29udGVudCBUaGUgbmV3IGNvbnRlbnQgdG8gc2V0XG4gICAqIEBwYXJhbSBwcmVzZXJ2ZUN1cnNvciBXaGV0aGVyIHRvIHByZXNlcnZlIGN1cnNvci9zY3JvbGwgcG9zaXRpb24gKGRlZmF1bHQ6IHRydWUpXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0Q29udGVudEV4dGVybmFsKFxuICAgIG5ld0NvbnRlbnQ6IHN0cmluZyxcbiAgICBwcmVzZXJ2ZUN1cnNvcjogYm9vbGVhbiA9IHRydWVcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZWRpdG9yID0gYXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGVkaXRvci5nZXRWYWx1ZSgpO1xuXG4gICAgaWYgKGN1cnJlbnRWYWx1ZSA9PT0gbmV3Q29udGVudCkgcmV0dXJuO1xuXG4gICAgLy8gU2F2ZSBjdXJzb3Igc3RhdGUgaWYgcHJlc2VydmluZ1xuICAgIGNvbnN0IHBvc2l0aW9uID0gcHJlc2VydmVDdXJzb3IgPyBlZGl0b3IuZ2V0UG9zaXRpb24oKSA6IG51bGw7XG4gICAgY29uc3Qgc2VsZWN0aW9ucyA9IHByZXNlcnZlQ3Vyc29yID8gZWRpdG9yLmdldFNlbGVjdGlvbnMoKSA6IG51bGw7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gcHJlc2VydmVDdXJzb3IgPyBlZGl0b3IuZ2V0U2Nyb2xsVG9wKCkgOiAwO1xuICAgIGNvbnN0IHNjcm9sbExlZnQgPSBwcmVzZXJ2ZUN1cnNvciA/IGVkaXRvci5nZXRTY3JvbGxMZWZ0KCkgOiAwO1xuXG4gICAgLy8gVXBkYXRlIGNvbnRlbnRcbiAgICB0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWwgPSB0cnVlO1xuICAgIGVkaXRvci5zZXRWYWx1ZShuZXdDb250ZW50KTtcbiAgICB0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWwgPSBmYWxzZTtcblxuICAgIC8vIFJlc3RvcmUgY3Vyc29yIHN0YXRlIGlmIHByZXNlcnZpbmdcbiAgICBpZiAocHJlc2VydmVDdXJzb3IpIHtcbiAgICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgICAvLyBDbGFtcCBwb3NpdGlvbiB0byB2YWxpZCByYW5nZVxuICAgICAgICBjb25zdCBtb2RlbCA9IGVkaXRvci5nZXRNb2RlbCgpO1xuICAgICAgICBjb25zdCBsaW5lQ291bnQgPSBtb2RlbD8uZ2V0TGluZUNvdW50KCkgfHwgMTtcbiAgICAgICAgY29uc3QgY2xhbXBlZExpbmUgPSBNYXRoLm1pbihwb3NpdGlvbi5saW5lTnVtYmVyLCBsaW5lQ291bnQpO1xuICAgICAgICBjb25zdCBsaW5lTGVuZ3RoID0gbW9kZWw/LmdldExpbmVNYXhDb2x1bW4oY2xhbXBlZExpbmUpIHx8IDE7XG4gICAgICAgIGNvbnN0IGNsYW1wZWRDb2x1bW4gPSBNYXRoLm1pbihwb3NpdGlvbi5jb2x1bW4sIGxpbmVMZW5ndGgpO1xuICAgICAgICBlZGl0b3Iuc2V0UG9zaXRpb24oeyBsaW5lTnVtYmVyOiBjbGFtcGVkTGluZSwgY29sdW1uOiBjbGFtcGVkQ29sdW1uIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHNlbGVjdGlvbnMgJiYgc2VsZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIFNlbGVjdGlvbnMgbWF5IGJlIGludmFsaWQgYWZ0ZXIgY29udGVudCBjaGFuZ2UsIHdyYXAgaW4gdHJ5LWNhdGNoXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZWRpdG9yLnNldFNlbGVjdGlvbnMoc2VsZWN0aW9ucyk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElnbm9yZSBpbnZhbGlkIHNlbGVjdGlvbnNcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWRpdG9yLnNldFNjcm9sbFBvc2l0aW9uKHsgc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0IH0pO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7IERlZXNJbnB1dEJhc2UgfSBmcm9tICcuLi9kZWVzLWlucHV0LWJhc2UvZGVlcy1pbnB1dC1iYXNlLmpzJztcbmltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHByb3BlcnR5LFxuICBodG1sLFxuICBjc3NNYW5hZ2VyLFxuICBjc3MsXG4gIHN0YXRlLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5pbXBvcnQgeyBEZWVzTW9kYWwgfSBmcm9tICcuLi8uLi9kZWVzLW1vZGFsL2RlZXMtbW9kYWwuanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcbmltcG9ydCAnLi4vLi4vZGVlcy1sYWJlbC9kZWVzLWxhYmVsLmpzJztcbmltcG9ydCAnLi4vLi4vMDBncm91cC13b3Jrc3BhY2UvZGVlcy13b3Jrc3BhY2UtbW9uYWNvL2RlZXMtd29ya3NwYWNlLW1vbmFjby5qcyc7XG5pbXBvcnQgeyBEZWVzV29ya3NwYWNlTW9uYWNvIH0gZnJvbSAnLi4vLi4vMDBncm91cC13b3Jrc3BhY2UvZGVlcy13b3Jrc3BhY2UtbW9uYWNvL2RlZXMtd29ya3NwYWNlLW1vbmFjby5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtaW5wdXQtY29kZSc6IERlZXNJbnB1dENvZGU7XG4gIH1cbn1cblxuLy8gQ29tbW9uIHByb2dyYW1taW5nIGxhbmd1YWdlcyBmb3IgdGhlIGxhbmd1YWdlIHNlbGVjdG9yXG5jb25zdCBMQU5HVUFHRVMgPSBbXG4gIHsga2V5OiAndHlwZXNjcmlwdCcsIGxhYmVsOiAnVHlwZVNjcmlwdCcgfSxcbiAgeyBrZXk6ICdqYXZhc2NyaXB0JywgbGFiZWw6ICdKYXZhU2NyaXB0JyB9LFxuICB7IGtleTogJ2pzb24nLCBsYWJlbDogJ0pTT04nIH0sXG4gIHsga2V5OiAnaHRtbCcsIGxhYmVsOiAnSFRNTCcgfSxcbiAgeyBrZXk6ICdjc3MnLCBsYWJlbDogJ0NTUycgfSxcbiAgeyBrZXk6ICdzY3NzJywgbGFiZWw6ICdTQ1NTJyB9LFxuICB7IGtleTogJ21hcmtkb3duJywgbGFiZWw6ICdNYXJrZG93bicgfSxcbiAgeyBrZXk6ICd5YW1sJywgbGFiZWw6ICdZQU1MJyB9LFxuICB7IGtleTogJ3htbCcsIGxhYmVsOiAnWE1MJyB9LFxuICB7IGtleTogJ3NxbCcsIGxhYmVsOiAnU1FMJyB9LFxuICB7IGtleTogJ3B5dGhvbicsIGxhYmVsOiAnUHl0aG9uJyB9LFxuICB7IGtleTogJ2phdmEnLCBsYWJlbDogJ0phdmEnIH0sXG4gIHsga2V5OiAnY3NoYXJwJywgbGFiZWw6ICdDIycgfSxcbiAgeyBrZXk6ICdjcHAnLCBsYWJlbDogJ0MrKycgfSxcbiAgeyBrZXk6ICdnbycsIGxhYmVsOiAnR28nIH0sXG4gIHsga2V5OiAncnVzdCcsIGxhYmVsOiAnUnVzdCcgfSxcbiAgeyBrZXk6ICdzaGVsbCcsIGxhYmVsOiAnU2hlbGwnIH0sXG4gIHsga2V5OiAncGxhaW50ZXh0JywgbGFiZWw6ICdQbGFpbiBUZXh0JyB9LFxuXTtcblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtaW5wdXQtY29kZScpXG5leHBvcnQgY2xhc3MgRGVlc0lucHV0Q29kZSBleHRlbmRzIERlZXNJbnB1dEJhc2U8c3RyaW5nPiB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9ICgpID0+IGh0bWxgXG4gICAgPGRlZXMtaW5wdXQtY29kZVxuICAgICAgbGFiZWw9XCJUeXBlU2NyaXB0IENvZGVcIlxuICAgICAga2V5PVwiY29kZVwiXG4gICAgICBsYW5ndWFnZT1cInR5cGVzY3JpcHRcIlxuICAgICAgaGVpZ2h0PVwiMzAwcHhcIlxuICAgICAgLnZhbHVlPSR7J2NvbnN0IGdyZWV0aW5nOiBzdHJpbmcgPSBcIkhlbGxvIFdvcmxkXCI7XFxuY29uc29sZS5sb2coZ3JlZXRpbmcpOyd9XG4gICAgPjwvZGVlcy1pbnB1dC1jb2RlPlxuICBgO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdJbnB1dCc7XG5cbiAgLy8gSU5TVEFOQ0VcbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIHZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgbGFuZ3VhZ2U6IHN0cmluZyA9ICd0eXBlc2NyaXB0JztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgaGVpZ2h0OiBzdHJpbmcgPSAnMjAwcHgnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciB3b3JkV3JhcDogJ29uJyB8ICdvZmYnID0gJ29mZic7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBzaG93TGluZU51bWJlcnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGlzTGFuZ3VhZ2VEcm9wZG93bk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBjb3B5U3VjY2VzczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZWRpdG9yRWxlbWVudDogRGVlc1dvcmtzcGFjZU1vbmFjbyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICAuLi5EZWVzSW5wdXRCYXNlLmJhc2VTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgICoge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgfVxuXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuY29kZS1jb250YWluZXIge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDAgMCUgOSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAudG9vbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NyUpJywgJ2hzbCgwIDAlIDclKScpfTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLnRvb2xiYXItbGVmdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAudG9vbGJhci1yaWdodCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgfVxuXG4gICAgICAubGFuZ3VhZ2Utc2VsZWN0b3Ige1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5sYW5ndWFnZS1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDEyJSknKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMjAlKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMjAlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NSUpJywgJ2hzbCgwIDAlIDE1JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5sYW5ndWFnZS1kcm9wZG93biB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSA5JSknKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMjAlKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgICB9XG5cbiAgICAgIC5sYW5ndWFnZS1vcHRpb24ge1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMjAlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5sYW5ndWFnZS1vcHRpb246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUlKScsICdoc2woMCAwJSAxNSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAubGFuZ3VhZ2Utb3B0aW9uLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDkwJSknLCAnaHNsKDAgMCUgMjAlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRvb2xiYXItYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1JSknLCAnaHNsKDAgMCUgNjAlKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5MCUpJywgJ2hzbCgwIDAlIDE1JSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMjAlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg1JSknLCAnaHNsKDAgMCUgMjAlKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAyMCUpJywgJ2hzbCgwIDAlIDkwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC50b29sYmFyLWJ1dHRvbi5zdWNjZXNzIHtcbiAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7XG4gICAgICB9XG5cbiAgICAgIC5lZGl0b3Itd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC50b29sYmFyLWRpdmlkZXIge1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4NSUpJywgJ2hzbCgwIDAlIDIwJSknKX07XG4gICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5jb2RlLWNvbnRhaW5lciB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBjdXJyZW50TGFuZ3VhZ2UgPSBMQU5HVUFHRVMuZmluZChsID0+IGwua2V5ID09PSB0aGlzLmxhbmd1YWdlKSB8fCBMQU5HVUFHRVNbMF07XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzdHlsZT5cbiAgICAgICAgLmVkaXRvci13cmFwcGVyIHtcbiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5oZWlnaHR9O1xuICAgICAgICB9XG4gICAgICA8L3N0eWxlPlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29kZS1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXItbGVmdFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFuZ3VhZ2Utc2VsZWN0b3JcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImxhbmd1YWdlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxhbmd1YWdlRHJvcGRvd259XG4gICAgICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMuaGFuZGxlTGFuZ3VhZ2VCbHVyfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICR7Y3VycmVudExhbmd1YWdlLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6Q2hldnJvbkRvd24nfSBpY29uU2l6ZT1cIjE0XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgJHt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4gPyBodG1sYFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhbmd1YWdlLWRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICAgICR7TEFOR1VBR0VTLm1hcChsYW5nID0+IGh0bWxgXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYW5ndWFnZS1vcHRpb24gJHtsYW5nLmtleSA9PT0gdGhpcy5sYW5ndWFnZSA/ICdzZWxlY3RlZCcgOiAnJ31cIlxuICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0keyhlOiBFdmVudCkgPT4gdGhpcy5zZWxlY3RMYW5ndWFnZShlLCBsYW5nLmtleSl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtsYW5nLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLXJpZ2h0XCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInRvb2xiYXItYnV0dG9uICR7dGhpcy53b3JkV3JhcCA9PT0gJ29uJyA/ICdhY3RpdmUnIDogJyd9XCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIldvcmQgV3JhcFwiXG4gICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVXb3JkV3JhcH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOldyYXBUZXh0J30gaWNvblNpemU9XCIxNlwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidG9vbGJhci1idXR0b24gJHt0aGlzLnNob3dMaW5lTnVtYmVycyA/ICdhY3RpdmUnIDogJyd9XCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIkxpbmUgTnVtYmVyc1wiXG4gICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVMaW5lTnVtYmVyc31cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOkhhc2gnfSBpY29uU2l6ZT1cIjE2XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1kaXZpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInRvb2xiYXItYnV0dG9uICR7dGhpcy5jb3B5U3VjY2VzcyA/ICdzdWNjZXNzJyA6ICcnfVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJDb3B5IENvZGVcIlxuICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuY29weUNvZGV9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5jb3B5U3VjY2VzcyA/ICdsdWNpZGU6Q2hlY2snIDogJ2x1Y2lkZTpDb3B5J30gaWNvblNpemU9XCIxNlwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidG9vbGJhci1idXR0b25cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiRXhwYW5kXCJcbiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm9wZW5GdWxsc2NyZWVufVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6TWF4aW1pemUyJ30gaWNvblNpemU9XCIxNlwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0b3Itd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjb1xuICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMudmFsdWV9XG4gICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIC53b3JkV3JhcD0ke3RoaXMud29yZFdyYXB9XG4gICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RoaXMuaGFuZGxlQ29udGVudENoYW5nZX1cbiAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgYXN5bmMgZmlyc3RVcGRhdGVkKCkge1xuICAgIHRoaXMuZWRpdG9yRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignZGVlcy13b3Jrc3BhY2UtbW9uYWNvJykgYXMgRGVlc1dvcmtzcGFjZU1vbmFjbztcbiAgICBpZiAodGhpcy5lZGl0b3JFbGVtZW50KSB7XG4gICAgICAvLyBTdWJzY3JpYmUgdG8gY29udGVudCBjaGFuZ2VzIGZyb20gdGhlIGVkaXRvclxuICAgICAgdGhpcy5lZGl0b3JFbGVtZW50LmNvbnRlbnRTdWJqZWN0LnN1YnNjcmliZSgobmV3Q29udGVudDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9PSBuZXdDb250ZW50KSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IG5ld0NvbnRlbnQ7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUxhbmd1YWdlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuID0gIXRoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3BlbjtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTGFuZ3VhZ2VCbHVyKCkge1xuICAgIC8vIFNtYWxsIGRlbGF5IHRvIGFsbG93IGNsaWNrIGV2ZW50cyBvbiBkcm9wZG93biBpdGVtc1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgfSwgMTUwKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2VsZWN0TGFuZ3VhZ2UoZTogRXZlbnQsIGxhbmd1YWdlS2V5OiBzdHJpbmcpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlS2V5O1xuICAgIHRoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3BlbiA9IGZhbHNlO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBlZGl0b3IgbGFuZ3VhZ2VcbiAgICBpZiAodGhpcy5lZGl0b3JFbGVtZW50KSB7XG4gICAgICB0aGlzLmVkaXRvckVsZW1lbnQubGFuZ3VhZ2UgPSBsYW5ndWFnZUtleTtcbiAgICAgIGNvbnN0IGVkaXRvciA9IGF3YWl0IHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO1xuICAgICAgY29uc3QgbW9kZWwgPSBlZGl0b3IuZ2V0TW9kZWwoKTtcbiAgICAgIGlmIChtb2RlbCkge1xuICAgICAgICAod2luZG93IGFzIGFueSkubW9uYWNvLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKG1vZGVsLCBsYW5ndWFnZUtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVXb3JkV3JhcCgpIHtcbiAgICB0aGlzLndvcmRXcmFwID0gdGhpcy53b3JkV3JhcCA9PT0gJ29uJyA/ICdvZmYnIDogJ29uJztcbiAgICB0aGlzLnVwZGF0ZUVkaXRvck9wdGlvbignd29yZFdyYXAnLCB0aGlzLndvcmRXcmFwKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlTGluZU51bWJlcnMoKSB7XG4gICAgdGhpcy5zaG93TGluZU51bWJlcnMgPSAhdGhpcy5zaG93TGluZU51bWJlcnM7XG4gICAgdGhpcy51cGRhdGVFZGl0b3JPcHRpb24oJ2xpbmVOdW1iZXJzJywgdGhpcy5zaG93TGluZU51bWJlcnMgPyAnb24nIDogJ29mZicpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVFZGl0b3JPcHRpb24ob3B0aW9uOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5lZGl0b3JFbGVtZW50KSB7XG4gICAgICBjb25zdCBlZGl0b3IgPSBhd2FpdCB0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtcbiAgICAgIGVkaXRvci51cGRhdGVPcHRpb25zKHsgW29wdGlvbl06IHZhbHVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29weUNvZGUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5jb3B5U3VjY2VzcyA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jb3B5U3VjY2VzcyA9IGZhbHNlO1xuICAgICAgfSwgMjAwMCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY29weSBjb2RlOicsIGVycik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDb250ZW50Q2hhbmdlKGU6IEN1c3RvbUV2ZW50KSB7XG4gICAgY29uc3QgbmV3Q29udGVudCA9IGUuZGV0YWlsO1xuICAgIGlmICh0aGlzLnZhbHVlICE9PSBuZXdDb250ZW50KSB7XG4gICAgICB0aGlzLnZhbHVlID0gbmV3Q29udGVudDtcbiAgICAgIHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMgYXMgYW55KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgb3BlbkZ1bGxzY3JlZW4oKSB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICBsZXQgbW9kYWxFZGl0b3JFbGVtZW50OiBEZWVzV29ya3NwYWNlTW9uYWNvIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBNb2RhbC1zcGVjaWZpYyBzdGF0ZVxuICAgIGxldCBtb2RhbExhbmd1YWdlID0gdGhpcy5sYW5ndWFnZTtcbiAgICBsZXQgbW9kYWxXb3JkV3JhcCA9IHRoaXMud29yZFdyYXA7XG4gICAgbGV0IG1vZGFsU2hvd0xpbmVOdW1iZXJzID0gdGhpcy5zaG93TGluZU51bWJlcnM7XG4gICAgbGV0IG1vZGFsTGFuZ3VhZ2VEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICBsZXQgbW9kYWxDb3B5U3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgLy8gSGVscGVyIHRvIGdldCBjdXJyZW50IGxhbmd1YWdlIGxhYmVsXG4gICAgY29uc3QgZ2V0TGFuZ3VhZ2VMYWJlbCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGxhbmcgPSBMQU5HVUFHRVMuZmluZChsID0+IGwua2V5ID09PSBtb2RhbExhbmd1YWdlKTtcbiAgICAgIHJldHVybiBsYW5nID8gbGFuZy5sYWJlbCA6ICdUeXBlU2NyaXB0JztcbiAgICB9O1xuXG4gICAgLy8gSGVscGVyIHRvIHVwZGF0ZSB0b29sYmFyIFVJXG4gICAgY29uc3QgdXBkYXRlVG9vbGJhclVJID0gKG1vZGFsOiBEZWVzTW9kYWwpID0+IHtcbiAgICAgIGNvbnN0IHRvb2xiYXIgPSBtb2RhbC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcubW9kYWwtdG9vbGJhcicpO1xuICAgICAgaWYgKCF0b29sYmFyKSByZXR1cm47XG5cbiAgICAgIC8vIFVwZGF0ZSBsYW5ndWFnZSBidXR0b24gdGV4dFxuICAgICAgY29uc3QgbGFuZ0J0biA9IHRvb2xiYXIucXVlcnlTZWxlY3RvcignLmxhbmd1YWdlLWJ1dHRvbiBzcGFuJyk7XG4gICAgICBpZiAobGFuZ0J0bikgbGFuZ0J0bi50ZXh0Q29udGVudCA9IGdldExhbmd1YWdlTGFiZWwoKTtcblxuICAgICAgLy8gVXBkYXRlIHdvcmQgd3JhcCBidXR0b25cbiAgICAgIGNvbnN0IHdyYXBCdG4gPSB0b29sYmFyLnF1ZXJ5U2VsZWN0b3IoJy53cmFwLWJ0bicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKHdyYXBCdG4pIHtcbiAgICAgICAgd3JhcEJ0bi5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnLCBtb2RhbFdvcmRXcmFwID09PSAnb24nKTtcbiAgICAgIH1cblxuICAgICAgLy8gVXBkYXRlIGxpbmUgbnVtYmVycyBidXR0b25cbiAgICAgIGNvbnN0IGxpbmVzQnRuID0gdG9vbGJhci5xdWVyeVNlbGVjdG9yKCcubGluZXMtYnRuJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAobGluZXNCdG4pIHtcbiAgICAgICAgbGluZXNCdG4uY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJywgbW9kYWxTaG93TGluZU51bWJlcnMpO1xuICAgICAgfVxuXG4gICAgICAvLyBVcGRhdGUgY29weSBidXR0b25cbiAgICAgIGNvbnN0IGNvcHlCdG4gPSB0b29sYmFyLnF1ZXJ5U2VsZWN0b3IoJy5jb3B5LWJ0bicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgY29weUljb24gPSBjb3B5QnRuPy5xdWVyeVNlbGVjdG9yKCdkZWVzLWljb24nKSBhcyBhbnk7XG4gICAgICBpZiAoY29weUJ0biAmJiBjb3B5SWNvbikge1xuICAgICAgICBjb3B5QnRuLmNsYXNzTGlzdC50b2dnbGUoJ3N1Y2Nlc3MnLCBtb2RhbENvcHlTdWNjZXNzKTtcbiAgICAgICAgY29weUljb24uaWNvbiA9IG1vZGFsQ29weVN1Y2Nlc3MgPyAnbHVjaWRlOkNoZWNrJyA6ICdsdWNpZGU6Q29weSc7XG4gICAgICB9XG5cbiAgICAgIC8vIFVwZGF0ZSBkcm9wZG93biB2aXNpYmlsaXR5XG4gICAgICBjb25zdCBkcm9wZG93biA9IHRvb2xiYXIucXVlcnlTZWxlY3RvcignLmxhbmd1YWdlLWRyb3Bkb3duJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAoZHJvcGRvd24pIHtcbiAgICAgICAgZHJvcGRvd24uc3R5bGUuZGlzcGxheSA9IG1vZGFsTGFuZ3VhZ2VEcm9wZG93bk9wZW4gPyAnYmxvY2snIDogJ25vbmUnO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBtb2RhbCA9IGF3YWl0IERlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtcbiAgICAgIGhlYWRpbmc6IHRoaXMubGFiZWwgfHwgJ0NvZGUgRWRpdG9yJyxcbiAgICAgIHdpZHRoOiAnZnVsbHNjcmVlbicsXG4gICAgICBjb250ZW50UGFkZGluZzogMCxcbiAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgIDxzdHlsZT5cbiAgICAgICAgICAubW9kYWwtdG9vbGJhciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk3JSknLCAnaHNsKDAgMCUgNyUpJyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWxlZnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICB9XG4gICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItcmlnaHQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgICB9XG4gICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLXNlbGVjdG9yIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDEyJSknKX07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDIwJSknKX07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDIwJSknLCAnaHNsKDAgMCUgOTAlKScpfTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NSUpJywgJ2hzbCgwIDAlIDE1JSknKX07XG4gICAgICAgICAgfVxuICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1kcm9wZG93biB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDklKScpfTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMjAlKScpfTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgICAubW9kYWwtdG9vbGJhciAubGFuZ3VhZ2Utb3B0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAyMCUpJywgJ2hzbCgwIDAlIDkwJSknKX07XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb246aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk1JSknLCAnaHNsKDAgMCUgMTUlKScpfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbi5zZWxlY3RlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTAlKScsICdoc2woMCAwJSAyMCUpJyl9O1xuICAgICAgICAgIH1cbiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1JSknLCAnaHNsKDAgMCUgNjAlKScpfTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b246aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDkwJSknLCAnaHNsKDAgMCUgMTUlKScpfTtcbiAgICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMjAlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgICAgIH1cbiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24uYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4NSUpJywgJ2hzbCgwIDAlIDIwJSknKX07XG4gICAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDIwJSknLCAnaHNsKDAgMCUgOTAlKScpfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uLnN1Y2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWRpdmlkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4NSUpJywgJ2hzbCgwIDAlIDIwJSknKX07XG4gICAgICAgICAgICBtYXJnaW46IDAgNHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgICAubW9kYWwtZWRpdG9yLXdyYXBwZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTc1cHgpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICA8L3N0eWxlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtdG9vbGJhclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWxlZnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYW5ndWFnZS1zZWxlY3RvclwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibGFuZ3VhZ2UtYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+JHtnZXRMYW5ndWFnZUxhYmVsKCl9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOkNoZXZyb25Eb3duJ30gaWNvblNpemU9XCIxNFwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhbmd1YWdlLWRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgJHtMQU5HVUFHRVMubWFwKGxhbmcgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYW5ndWFnZS1vcHRpb24gJHtsYW5nLmtleSA9PT0gbW9kYWxMYW5ndWFnZSA/ICdzZWxlY3RlZCcgOiAnJ31cIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLWxhbmc9XCIke2xhbmcua2V5fVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICR7bGFuZy5sYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIGApfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLXJpZ2h0XCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gd3JhcC1idG4gJHttb2RhbFdvcmRXcmFwID09PSAnb24nID8gJ2FjdGl2ZScgOiAnJ31cIiB0aXRsZT1cIldvcmQgV3JhcFwiPlxuICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTpXcmFwVGV4dCd9IGljb25TaXplPVwiMTZcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGxpbmVzLWJ0biAke21vZGFsU2hvd0xpbmVOdW1iZXJzID8gJ2FjdGl2ZScgOiAnJ31cIiB0aXRsZT1cIkxpbmUgTnVtYmVyc1wiPlxuICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTpIYXNoJ30gaWNvblNpemU9XCIxNlwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1kaXZpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gY29weS1idG5cIiB0aXRsZT1cIkNvcHkgQ29kZVwiPlxuICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTpDb3B5J30gaWNvblNpemU9XCIxNlwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZWRpdG9yLXdyYXBwZXJcIj5cbiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvXG4gICAgICAgICAgICAuY29udGVudD0ke2N1cnJlbnRWYWx1ZX1cbiAgICAgICAgICAgIC5sYW5ndWFnZT0ke21vZGFsTGFuZ3VhZ2V9XG4gICAgICAgICAgICAud29yZFdyYXA9JHttb2RhbFdvcmRXcmFwfVxuICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgbWVudU9wdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdDYW5jZWwnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKG1vZGFsUmVmKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBtb2RhbFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTYXZlICYgQ2xvc2UnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKG1vZGFsUmVmKSA9PiB7XG4gICAgICAgICAgICAvLyBHZXQgdGhlIGVkaXRvciBjb250ZW50IGZyb20gdGhlIG1vZGFsXG4gICAgICAgICAgICBtb2RhbEVkaXRvckVsZW1lbnQgPSBtb2RhbFJlZi5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCdkZWVzLXdvcmtzcGFjZS1tb25hY28nKSBhcyBEZWVzV29ya3NwYWNlTW9uYWNvO1xuICAgICAgICAgICAgaWYgKG1vZGFsRWRpdG9yRWxlbWVudCkge1xuICAgICAgICAgICAgICBjb25zdCBlZGl0b3IgPSBhd2FpdCBtb2RhbEVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtcbiAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBlZGl0b3IuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCBtb2RhbFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBXYWl0IGZvciBtb2RhbCB0byByZW5kZXJcbiAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwKSk7XG4gICAgbW9kYWxFZGl0b3JFbGVtZW50ID0gbW9kYWwuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignZGVlcy13b3Jrc3BhY2UtbW9uYWNvJykgYXMgRGVlc1dvcmtzcGFjZU1vbmFjbztcblxuICAgIC8vIFdpcmUgdXAgdG9vbGJhciBldmVudCBoYW5kbGVyc1xuICAgIGNvbnN0IHRvb2xiYXIgPSBtb2RhbC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcubW9kYWwtdG9vbGJhcicpO1xuICAgIGlmICh0b29sYmFyKSB7XG4gICAgICAvLyBMYW5ndWFnZSBidXR0b24gY2xpY2tcbiAgICAgIGNvbnN0IGxhbmdCdG4gPSB0b29sYmFyLnF1ZXJ5U2VsZWN0b3IoJy5sYW5ndWFnZS1idXR0b24nKTtcbiAgICAgIGxhbmdCdG4/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBtb2RhbExhbmd1YWdlRHJvcGRvd25PcGVuID0gIW1vZGFsTGFuZ3VhZ2VEcm9wZG93bk9wZW47XG4gICAgICAgIHVwZGF0ZVRvb2xiYXJVSShtb2RhbCk7XG4gICAgICB9KTtcblxuICAgICAgLy8gTGFuZ3VhZ2Ugb3B0aW9uIGNsaWNrc1xuICAgICAgY29uc3QgbGFuZ09wdGlvbnMgPSB0b29sYmFyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5sYW5ndWFnZS1vcHRpb24nKTtcbiAgICAgIGxhbmdPcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4ge1xuICAgICAgICBvcHRpb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3TGFuZyA9IChvcHRpb24gYXMgSFRNTEVsZW1lbnQpLmRhdGFzZXQubGFuZztcbiAgICAgICAgICBpZiAobmV3TGFuZyAmJiBtb2RhbEVkaXRvckVsZW1lbnQpIHtcbiAgICAgICAgICAgIG1vZGFsTGFuZ3VhZ2UgPSBuZXdMYW5nO1xuICAgICAgICAgICAgbW9kYWxMYW5ndWFnZURyb3Bkb3duT3BlbiA9IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBVcGRhdGUgZWRpdG9yIGxhbmd1YWdlXG4gICAgICAgICAgICBjb25zdCBlZGl0b3IgPSBhd2FpdCBtb2RhbEVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtcbiAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gZWRpdG9yLmdldE1vZGVsKCk7XG4gICAgICAgICAgICBpZiAobW9kZWwpIHtcbiAgICAgICAgICAgICAgKHdpbmRvdyBhcyBhbnkpLm1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShtb2RlbCwgbmV3TGFuZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSBzZWxlY3RlZCBzdGF0ZVxuICAgICAgICAgICAgbGFuZ09wdGlvbnMuZm9yRWFjaChvcHQgPT4gb3B0LmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJykpO1xuICAgICAgICAgICAgb3B0aW9uLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7XG5cbiAgICAgICAgICAgIHVwZGF0ZVRvb2xiYXJVSShtb2RhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBXb3JkIHdyYXAgYnV0dG9uXG4gICAgICBjb25zdCB3cmFwQnRuID0gdG9vbGJhci5xdWVyeVNlbGVjdG9yKCcud3JhcC1idG4nKTtcbiAgICAgIHdyYXBCdG4/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBtb2RhbFdvcmRXcmFwID0gbW9kYWxXb3JkV3JhcCA9PT0gJ29uJyA/ICdvZmYnIDogJ29uJztcbiAgICAgICAgaWYgKG1vZGFsRWRpdG9yRWxlbWVudCkge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IGF3YWl0IG1vZGFsRWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO1xuICAgICAgICAgIGVkaXRvci51cGRhdGVPcHRpb25zKHsgd29yZFdyYXA6IG1vZGFsV29yZFdyYXAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlVG9vbGJhclVJKG1vZGFsKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBMaW5lIG51bWJlcnMgYnV0dG9uXG4gICAgICBjb25zdCBsaW5lc0J0biA9IHRvb2xiYXIucXVlcnlTZWxlY3RvcignLmxpbmVzLWJ0bicpO1xuICAgICAgbGluZXNCdG4/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBtb2RhbFNob3dMaW5lTnVtYmVycyA9ICFtb2RhbFNob3dMaW5lTnVtYmVycztcbiAgICAgICAgaWYgKG1vZGFsRWRpdG9yRWxlbWVudCkge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IGF3YWl0IG1vZGFsRWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO1xuICAgICAgICAgIGVkaXRvci51cGRhdGVPcHRpb25zKHsgbGluZU51bWJlcnM6IG1vZGFsU2hvd0xpbmVOdW1iZXJzID8gJ29uJyA6ICdvZmYnIH0pO1xuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZVRvb2xiYXJVSShtb2RhbCk7XG4gICAgICB9KTtcblxuICAgICAgLy8gQ29weSBidXR0b25cbiAgICAgIGNvbnN0IGNvcHlCdG4gPSB0b29sYmFyLnF1ZXJ5U2VsZWN0b3IoJy5jb3B5LWJ0bicpO1xuICAgICAgY29weUJ0bj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChtb2RhbEVkaXRvckVsZW1lbnQpIHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSBhd2FpdCBtb2RhbEVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gZWRpdG9yLmdldFZhbHVlKCk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGNvbnRlbnQpO1xuICAgICAgICAgICAgbW9kYWxDb3B5U3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgICB1cGRhdGVUb29sYmFyVUkobW9kYWwpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIG1vZGFsQ29weVN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdXBkYXRlVG9vbGJhclVJKG1vZGFsKTtcbiAgICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNvcHkgY29kZTonLCBlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIENsb3NlIGRyb3Bkb3duIHdoZW4gY2xpY2tpbmcgb3V0c2lkZVxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgICBpZiAobW9kYWxMYW5ndWFnZURyb3Bkb3duT3BlbiAmJiAhbGFuZ0J0bj8uY29udGFpbnMoZS50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgICBtb2RhbExhbmd1YWdlRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgICAgICAgdXBkYXRlVG9vbGJhclVJKG1vZGFsKTtcbiAgICAgICAgfVxuICAgICAgfSwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuZWRpdG9yRWxlbWVudCkge1xuICAgICAgdGhpcy5lZGl0b3JFbGVtZW50LmNvbnRlbnQgPSB2YWx1ZTtcbiAgICAgIC8vIEFsc28gdXBkYXRlIHRoZSBNb25hY28gZWRpdG9yIGRpcmVjdGx5IGlmIGl0J3MgYWxyZWFkeSBsb2FkZWRcbiAgICAgIHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlLnRoZW4oZWRpdG9yID0+IHtcbiAgICAgICAgaWYgKGVkaXRvci5nZXRWYWx1ZSgpICE9PSB2YWx1ZSkge1xuICAgICAgICAgIGVkaXRvci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzIGFzIGFueSk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBodG1sLCBjc3MgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICdAZGVzaWduLmVzdGF0ZS9kZWVzLXdjY3Rvb2xzL2RlbW90b29scyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtcGFuZWwvZGVlcy1wYW5lbC5qcyc7XG5pbXBvcnQgJy4vY29tcG9uZW50LmpzJztcbmltcG9ydCB0eXBlIHsgRGVlc0lucHV0RGF0ZXBpY2tlciB9IGZyb20gJy4vY29tcG9uZW50LmpzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGBcbiAgPHN0eWxlPlxuICAgICR7Y3NzYFxuICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICBcbiAgICAgIGRlZXMtcGFuZWwge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZGVtby1vdXRwdXQge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmRhdGUtZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICBgfVxuICA8L3N0eWxlPlxuICBcbiAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKGVsZW1lbnRBcmc6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAvLyBEZW1vbnN0cmF0ZSBiYXNpYyBkYXRlIHBpY2tlciBmdW5jdGlvbmFsaXR5XG4gICAgICBjb25zdCBkYXRlUGlja2VyID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXInKTtcbiAgICAgIFxuICAgICAgaWYgKGRhdGVQaWNrZXIpIHtcbiAgICAgICAgZGF0ZVBpY2tlci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZXZlbnQ6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0Jhc2ljIGRhdGUgc2VsZWN0ZWQ6JywgKGV2ZW50LnRhcmdldCBhcyBEZWVzSW5wdXREYXRlcGlja2VyKS52YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0Jhc2ljIERhdGUgUGlja2VyJ30gLnN1YnRpdGxlPSR7J1NpbXBsZSBkYXRlIHNlbGVjdGlvbiB3aXRob3V0IHRpbWUnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlclxuICAgICAgICAgIGxhYmVsPVwiU2VsZWN0IERhdGVcIlxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiQ2hvb3NlIGEgZGF0ZSBmcm9tIHRoZSBjYWxlbmRhclwiXG4gICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+XG5cbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIC8vIERlbW9uc3RyYXRlIGRhdGUgYW5kIHRpbWUgcGlja2VyXG4gICAgICBjb25zdCBkYXRlVGltZVBpY2tlciA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPVwiRXZlbnQgRGF0ZSAmIFRpbWVcIl0nKTtcbiAgICAgIGNvbnN0IGFwcG9pbnRtZW50UGlja2VyID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9XCJBcHBvaW50bWVudFwiXScpO1xuICAgICAgXG4gICAgICBpZiAoZGF0ZVRpbWVQaWNrZXIpIHtcbiAgICAgICAgZGF0ZVRpbWVQaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBEZWVzSW5wdXREYXRlcGlja2VyKS52YWx1ZTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnMjRoIGZvcm1hdCBkYXRldGltZTonLCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoYXBwb2ludG1lbnRQaWNrZXIpIHtcbiAgICAgICAgYXBwb2ludG1lbnRQaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBEZWVzSW5wdXREYXRlcGlja2VyKS52YWx1ZTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnMTJoIGZvcm1hdCBkYXRldGltZTonLCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0RhdGUgYW5kIFRpbWUgU2VsZWN0aW9uJ30gLnN1YnRpdGxlPSR7J0RhdGUgcGlja2VycyB3aXRoIHRpbWUgc2VsZWN0aW9uIGluIGRpZmZlcmVudCBmb3JtYXRzJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXJcbiAgICAgICAgICBsYWJlbD1cIkV2ZW50IERhdGUgJiBUaW1lXCJcbiAgICAgICAgICBkZXNjcmlwdGlvbj1cIlNlbGVjdCBib3RoIGRhdGUgYW5kIHRpbWUgKDI0LWhvdXIgZm9ybWF0KVwiXG4gICAgICAgICAgLmVuYWJsZVRpbWU9JHt0cnVlfVxuICAgICAgICAgIHRpbWVGb3JtYXQ9XCIyNGhcIlxuICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyXG4gICAgICAgICAgbGFiZWw9XCJBcHBvaW50bWVudFwiXG4gICAgICAgICAgZGVzY3JpcHRpb249XCJEYXRlIGFuZCB0aW1lIHdpdGggQU0vUE0gc2VsZWN0b3IgKDE1LW1pbnV0ZSBpbmNyZW1lbnRzKVwiXG4gICAgICAgICAgLmVuYWJsZVRpbWU9JHt0cnVlfVxuICAgICAgICAgIHRpbWVGb3JtYXQ9XCIxMmhcIlxuICAgICAgICAgIC5taW51dGVJbmNyZW1lbnQ9JHsxNX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cblxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gRGVtb25zdHJhdGUgdGltZXpvbmUgZnVuY3Rpb25hbGl0eVxuICAgICAgY29uc3QgdGltZXpvbmVQaWNrZXJzID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWlucHV0LWRhdGVwaWNrZXInKTtcbiAgICAgIFxuICAgICAgdGltZXpvbmVQaWNrZXJzLmZvckVhY2goKHBpY2tlcikgPT4ge1xuICAgICAgICBwaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBEZWVzSW5wdXREYXRlcGlja2VyO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAke3RhcmdldC5sYWJlbH0gdmFsdWU6YCwgdGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICBjb25zdCBpbnB1dCA9IHRhcmdldC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuZGF0ZS1pbnB1dCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgJHt0YXJnZXQubGFiZWx9IGZvcm1hdHRlZDpgLCBpbnB1dC52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J1RpbWV6b25lIFN1cHBvcnQnfSAuc3VidGl0bGU9JHsnRGF0ZSBhbmQgdGltZSBzZWxlY3Rpb24gd2l0aCB0aW1lem9uZSBhd2FyZW5lc3MnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlclxuICAgICAgICAgIGxhYmVsPVwiTWVldGluZyBUaW1lICh3aXRoIFRpbWV6b25lKVwiXG4gICAgICAgICAgZGVzY3JpcHRpb249XCJTZWxlY3QgYSBkYXRlL3RpbWUgYW5kIHRpbWV6b25lIGZvciB0aGUgbWVldGluZ1wiXG4gICAgICAgICAgLmVuYWJsZVRpbWU9JHt0cnVlfVxuICAgICAgICAgIC5lbmFibGVUaW1lem9uZT0ke3RydWV9XG4gICAgICAgICAgdGltZUZvcm1hdD1cIjI0aFwiXG4gICAgICAgICAgdGltZXpvbmU9XCJBbWVyaWNhL05ld19Zb3JrXCJcbiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlclxuICAgICAgICAgIGxhYmVsPVwiR2xvYmFsIEV2ZW50IFNjaGVkdWxlXCJcbiAgICAgICAgICBkZXNjcmlwdGlvbj1cIlNjaGVkdWxlIGFuIGV2ZW50IGFjcm9zcyBkaWZmZXJlbnQgdGltZXpvbmVzXCJcbiAgICAgICAgICAuZW5hYmxlVGltZT0ke3RydWV9XG4gICAgICAgICAgLmVuYWJsZVRpbWV6b25lPSR7dHJ1ZX1cbiAgICAgICAgICB0aW1lRm9ybWF0PVwiMTJoXCJcbiAgICAgICAgICB0aW1lem9uZT1cIkV1cm9wZS9Mb25kb25cIlxuICAgICAgICAgIC5taW51dGVJbmNyZW1lbnQ9JHszMH1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cblxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gRGVtb25zdHJhdGUgZGF0ZSBjb25zdHJhaW50c1xuICAgICAgY29uc3QgZnV0dXJlRGF0ZVBpY2tlciA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyJyk7XG4gICAgICBcbiAgICAgIGlmIChmdXR1cmVEYXRlUGlja2VyKSB7XG4gICAgICAgIC8vIFNob3cgdGhlIG1pbi9tYXggY29uc3RyYWludHMgaW4gYWN0aW9uXG4gICAgICAgIGZ1dHVyZURhdGVQaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBEZWVzSW5wdXREYXRlcGlja2VyKS52YWx1ZTtcbiAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IGRheXNEaWZmID0gTWF0aC5mbG9vcigoc2VsZWN0ZWREYXRlLmdldFRpbWUoKSAtIHRvZGF5LmdldFRpbWUoKSkgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFNlbGVjdGVkIGRhdGUgaXMgJHtkYXlzRGlmZn0gZGF5cyBmcm9tIHRvZGF5YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydEYXRlIFJhbmdlIENvbnN0cmFpbnRzJ30gLnN1YnRpdGxlPSR7J0xpbWl0IHNlbGVjdGFibGUgZGF0ZXMgd2l0aCBtaW4gYW5kIG1heCB2YWx1ZXMnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlclxuICAgICAgICAgIGxhYmVsPVwiRnV0dXJlIERhdGUgT25seVwiXG4gICAgICAgICAgZGVzY3JpcHRpb249XCJDYW4gb25seSBzZWxlY3QgZGF0ZXMgZnJvbSB0b2RheSB0byA5MCBkYXlzIGluIHRoZSBmdXR1cmVcIlxuICAgICAgICAgIC5taW5EYXRlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfVxuICAgICAgICAgIC5tYXhEYXRlPSR7bmV3IERhdGUoRGF0ZS5ub3coKSArIDkwICogMjQgKiA2MCAqIDYwICogMTAwMCkudG9JU09TdHJpbmcoKX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cblxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gRGVtb25zdHJhdGUgZGlmZmVyZW50IGRhdGUgZm9ybWF0c1xuICAgICAgY29uc3QgZm9ybWF0dGVycyA9IHtcbiAgICAgICAgJ0REL01NL1lZWVknOiAnRXVyb3BlYW4nLFxuICAgICAgICAnTU0vREQvWVlZWSc6ICdVUycsXG4gICAgICAgICdZWVlZLU1NLUREJzogJ0lTTydcbiAgICAgIH07XG4gICAgICBcbiAgICAgIGNvbnN0IGRhdGVQaWNrZXJzID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWlucHV0LWRhdGVwaWNrZXInKTtcbiAgICAgIGRhdGVQaWNrZXJzLmZvckVhY2goKHBpY2tlcikgPT4ge1xuICAgICAgICBwaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBEZWVzSW5wdXREYXRlcGlja2VyO1xuICAgICAgICAgIC8vIExvZyB0aGUgZm9ybWF0dGVkIHZhbHVlIHRoYXQncyBkaXNwbGF5ZWQgaW4gdGhlIGlucHV0XG4gICAgICAgICAgY29uc3QgaW5wdXQgPSB0YXJnZXQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLmRhdGUtaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYCR7dGFyZ2V0LmxhYmVsfSBmb3JtYXQ6YCwgaW5wdXQudmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydEYXRlIEZvcm1hdHMnfSAuc3VidGl0bGU9JHsnRGlmZmVyZW50IGRhdGUgZGlzcGxheSBmb3JtYXRzIGZvciB2YXJpb3VzIHJlZ2lvbnMnfT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtZ3JvdXBcIj5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyXG4gICAgICAgICAgICBsYWJlbD1cIkV1cm9wZWFuIEZvcm1hdFwiXG4gICAgICAgICAgICBkYXRlRm9ybWF0PVwiREQvTU0vWVlZWVwiXG4gICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXJcbiAgICAgICAgICAgIGxhYmVsPVwiVVMgRm9ybWF0XCJcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ9XCJNTS9ERC9ZWVlZXCJcbiAgICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlclxuICAgICAgICAgICAgbGFiZWw9XCJJU08gRm9ybWF0XCJcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ9XCJZWVlZLU1NLUREXCJcbiAgICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cblxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gRGVtb25zdHJhdGUgcmVxdWlyZWQgZmllbGQgdmFsaWRhdGlvblxuICAgICAgY29uc3QgcmVxdWlyZWRQaWNrZXIgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltyZXF1aXJlZF0nKTtcbiAgICAgIFxuICAgICAgaWYgKHJlcXVpcmVkUGlja2VyKSB7XG4gICAgICAgIC8vIE1vbml0b3IgYmx1ciBldmVudHMgZm9yIHZhbGlkYXRpb25cbiAgICAgICAgcmVxdWlyZWRQaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBwaWNrZXIgPSByZXF1aXJlZFBpY2tlciBhcyBEZWVzSW5wdXREYXRlcGlja2VyO1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGlja2VyLmdldFZhbHVlKCk7XG4gICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1JlcXVpcmVkIGRhdGUgZmllbGQgaXMgZW1wdHknKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0Zvcm0gU3RhdGVzJ30gLnN1YnRpdGxlPSR7J1JlcXVpcmVkIGFuZCBkaXNhYmxlZCBzdGF0ZXMnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlclxuICAgICAgICAgIGxhYmVsPVwiQmlydGggRGF0ZVwiXG4gICAgICAgICAgZGVzY3JpcHRpb249XCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkXCJcbiAgICAgICAgICAucmVxdWlyZWQ9JHt0cnVlfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IHlvdXIgYmlydGggZGF0ZVwiXG4gICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXJcbiAgICAgICAgICBsYWJlbD1cIkRpc2FibGVkIERhdGVcIlxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiVGhpcyBmaWVsZCBjYW5ub3QgYmUgZWRpdGVkXCJcbiAgICAgICAgICAuZGlzYWJsZWQ9JHt0cnVlfVxuICAgICAgICAgIC52YWx1ZT0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cblxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gRGVtb25zdHJhdGUgd2VlayBzdGFydCBjdXN0b21pemF0aW9uXG4gICAgICBjb25zdCB1c1BpY2tlciA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPVwiVVMgQ2FsZW5kYXJcIl0nKTtcbiAgICAgIGNvbnN0IGV1UGlja2VyID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9XCJFVSBDYWxlbmRhclwiXScpO1xuICAgICAgXG4gICAgICBpZiAodXNQaWNrZXIpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1VTIENhbGVuZGFyIHN0YXJ0cyBvbiBTdW5kYXkgKDApJyk7XG4gICAgICB9XG4gICAgICBpZiAoZXVQaWNrZXIpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0VVIENhbGVuZGFyIHN0YXJ0cyBvbiBNb25kYXkgKDEpJyk7XG4gICAgICB9XG4gICAgfX0+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnQ2FsZW5kYXIgQ3VzdG9taXphdGlvbid9IC5zdWJ0aXRsZT0keydEaWZmZXJlbnQgd2VlayBzdGFydCBkYXlzIGZvciB2YXJpb3VzIHJlZ2lvbnMnfT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtZ3JvdXBcIj5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyXG4gICAgICAgICAgICBsYWJlbD1cIlVTIENhbGVuZGFyXCJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiV2VlayBzdGFydHMgb24gU3VuZGF5XCJcbiAgICAgICAgICAgIC53ZWVrU3RhcnRzT249JHswfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyXG4gICAgICAgICAgICBsYWJlbD1cIkVVIENhbGVuZGFyXCJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiV2VlayBzdGFydHMgb24gTW9uZGF5XCJcbiAgICAgICAgICAgIC53ZWVrU3RhcnRzT249JHsxfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuXG4gICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKGVsZW1lbnRBcmc6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAvLyBHZW5lcmF0ZSB3ZWVrZW5kIGRhdGVzIGZvciB0aGUgY3VycmVudCBtb250aFxuICAgICAgY29uc3QgZ2VuZXJhdGVXZWVrZW5kcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qgd2Vla2VuZHMgPSBbXTtcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgeWVhciA9IG5vdy5nZXRGdWxsWWVhcigpO1xuICAgICAgICBjb25zdCBtb250aCA9IG5vdy5nZXRNb250aCgpO1xuICAgICAgICBcbiAgICAgICAgLy8gR2V0IGFsbCB3ZWVrZW5kcyBmb3IgY3VycmVudCBtb250aFxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuICAgICAgICB3aGlsZSAoZGF0ZS5nZXRNb250aCgpID09PSBtb250aCkge1xuICAgICAgICAgIGlmIChkYXRlLmdldERheSgpID09PSAwIHx8IGRhdGUuZ2V0RGF5KCkgPT09IDYpIHtcbiAgICAgICAgICAgIHdlZWtlbmRzLnB1c2gobmV3IERhdGUoZGF0ZSkudG9JU09TdHJpbmcoKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB3ZWVrZW5kcztcbiAgICAgIH07XG4gICAgICBcbiAgICAgIGNvbnN0IHBpY2tlciA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyJyk7XG4gICAgICBpZiAocGlja2VyKSB7XG4gICAgICAgIHBpY2tlci5kaXNhYmxlZERhdGVzID0gZ2VuZXJhdGVXZWVrZW5kcygpO1xuICAgICAgICBjb25zb2xlLmxvZygnRGlzYWJsZWQgd2Vla2VuZCBkYXRlcyBmb3IgY3VycmVudCBtb250aCcpO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0Rpc2FibGVkIERhdGVzJ30gLnN1YnRpdGxlPSR7J0NhbGVuZGFyIHdpdGggc3BlY2lmaWMgZGF0ZXMgZGlzYWJsZWQgKHdlZWtlbmRzIGluIGN1cnJlbnQgbW9udGgpJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXJcbiAgICAgICAgICBsYWJlbD1cIkF2YWlsYWJpbGl0eSBDYWxlbmRhclwiXG4gICAgICAgICAgZGVzY3JpcHRpb249XCJXZWVrZW5kcyBhcmUgZGlzYWJsZWQgZm9yIHRoZSBjdXJyZW50IG1vbnRoXCJcbiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cblxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gR2VuZXJhdGUgc2FtcGxlIGV2ZW50cyBmb3IgdGhlIGNhbGVuZGFyXG4gICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgICBjb25zdCBjdXJyZW50TW9udGggPSB0b2RheS5nZXRNb250aCgpO1xuICAgICAgY29uc3QgY3VycmVudFllYXIgPSB0b2RheS5nZXRGdWxsWWVhcigpO1xuICAgICAgXG4gICAgICBjb25zdCBzYW1wbGVFdmVudHMgPSBbXG4gICAgICAgIC8vIEN1cnJlbnQgd2VlayBldmVudHNcbiAgICAgICAge1xuICAgICAgICAgIGRhdGU6IGAke2N1cnJlbnRZZWFyfS0keyhjdXJyZW50TW9udGggKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LSR7dG9kYXkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gLFxuICAgICAgICAgIHRpdGxlOiBcIlRlYW0gTWVldGluZ1wiLFxuICAgICAgICAgIHR5cGU6IFwiaW5mb1wiIGFzIGNvbnN0LFxuICAgICAgICAgIGNvdW50OiAyXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRlOiBgJHtjdXJyZW50WWVhcn0tJHsoY3VycmVudE1vbnRoICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS0keyh0b2RheS5nZXREYXRlKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YCxcbiAgICAgICAgICB0aXRsZTogXCJQcm9qZWN0IERlYWRsaW5lXCIsXG4gICAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIgYXMgY29uc3RcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGU6IGAke2N1cnJlbnRZZWFyfS0keyhjdXJyZW50TW9udGggKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LSR7KHRvZGF5LmdldERhdGUoKSArIDIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gLFxuICAgICAgICAgIHRpdGxlOiBcIlJlbGVhc2UgRGF5XCIsXG4gICAgICAgICAgdHlwZTogXCJzdWNjZXNzXCIgYXMgY29uc3RcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGU6IGAke2N1cnJlbnRZZWFyfS0keyhjdXJyZW50TW9udGggKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LSR7KHRvZGF5LmdldERhdGUoKSArIDUpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gLFxuICAgICAgICAgIHRpdGxlOiBcIlVyZ2VudCBGaXggUmVxdWlyZWRcIixcbiAgICAgICAgICB0eXBlOiBcImVycm9yXCIgYXMgY29uc3RcbiAgICAgICAgfSxcbiAgICAgICAgLy8gTXVsdGlwbGUgZXZlbnRzIG9uIG9uZSBkYXlcbiAgICAgICAge1xuICAgICAgICAgIGRhdGU6IGAke2N1cnJlbnRZZWFyfS0keyhjdXJyZW50TW9udGggKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LSR7KHRvZGF5LmdldERhdGUoKSArIDcpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gLFxuICAgICAgICAgIHRpdGxlOiBcIk11bHRpcGxlIEV2ZW50cyBUb2RheVwiLFxuICAgICAgICAgIHR5cGU6IFwiaW5mb1wiIGFzIGNvbnN0LFxuICAgICAgICAgIGNvdW50OiA1XG4gICAgICAgIH0sXG4gICAgICAgIC8vIE5leHQgbW9udGggZXZlbnRcbiAgICAgICAge1xuICAgICAgICAgIGRhdGU6IGAke2N1cnJlbnRZZWFyfS0keyhjdXJyZW50TW9udGggKyAyKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LTE1YCxcbiAgICAgICAgICB0aXRsZTogXCJGdXR1cmUgUGxhbm5pbmcgU2Vzc2lvblwiLFxuICAgICAgICAgIHR5cGU6IFwiaW5mb1wiIGFzIGNvbnN0XG4gICAgICAgIH1cbiAgICAgIF07XG4gICAgICBcbiAgICAgIGNvbnN0IHBpY2tlciA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyJyk7XG4gICAgICBpZiAocGlja2VyKSB7XG4gICAgICAgIHBpY2tlci5ldmVudHMgPSBzYW1wbGVFdmVudHM7XG4gICAgICAgIGNvbnNvbGUubG9nKCdDYWxlbmRhciBldmVudHMgbG9hZGVkOicsIHNhbXBsZUV2ZW50cyk7XG4gICAgICB9XG4gICAgfX0+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnQ2FsZW5kYXIgd2l0aCBFdmVudHMnfSAuc3VidGl0bGU9JHsnVmlzdWFsIGZlZWRiYWNrIGZvciBzY2hlZHVsZWQgZXZlbnRzJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXJcbiAgICAgICAgICBsYWJlbD1cIkV2ZW50IENhbGVuZGFyXCJcbiAgICAgICAgICBkZXNjcmlwdGlvbj1cIkRheXMgd2l0aCBjb2xvcmVkIGRvdHMgaGF2ZSBldmVudHMuIEhvdmVyIHRvIHNlZSBkZXRhaWxzLlwiXG4gICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLW91dHB1dFwiIHN0eWxlPVwibWFyZ2luLXRvcDogMTZweDtcIj5cbiAgICAgICAgICA8c3Ryb25nPkV2ZW50IExlZ2VuZDo8L3N0cm9uZz48YnI+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogIzA5NjlkYTtcIj5cdTI1Q0YgSW5mbzwvc3Bhbj4gfCBcbiAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjZDI5OTIyO1wiPlx1MjVDRiBXYXJuaW5nPC9zcGFuPiB8IFxuICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6ICMyZWEwNDM7XCI+XHUyNUNGIFN1Y2Nlc3M8L3NwYW4+IHwgXG4gICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogI2NmMjIyZTtcIj5cdTI1Q0YgRXJyb3I8L3NwYW4+PGJyPlxuICAgICAgICAgIDxlbT5EYXlzIHdpdGggbW9yZSB0aGFuIDMgZXZlbnRzIHNob3cgYSBjb3VudCBiYWRnZTwvZW0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cblxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gSW50ZXJhY3RpdmUgZXZlbnQgZGVtb25zdHJhdGlvblxuICAgICAgY29uc3QgcGlja2VyID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXInKTtcbiAgICAgIGNvbnN0IG91dHB1dCA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignI2V2ZW50LW91dHB1dCcpO1xuICAgICAgXG4gICAgICBpZiAocGlja2VyICYmIG91dHB1dCkge1xuICAgICAgICBwaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBEZWVzSW5wdXREYXRlcGlja2VyO1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGFyZ2V0LnZhbHVlO1xuICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIC8vIEdldCB0aGUgZm9ybWF0dGVkIHZhbHVlIGZyb20gdGhlIGlucHV0IGVsZW1lbnRcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdGFyZ2V0LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5kYXRlLWlucHV0JykgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gaW5wdXQ/LnZhbHVlIHx8ICdOL0EnO1xuICAgICAgICAgICAgb3V0cHV0LmlubmVySFRNTCA9IGBcbiAgICAgICAgICAgICAgPHN0cm9uZz5FdmVudCB0cmlnZ2VyZWQhPC9zdHJvbmc+PGJyPlxuICAgICAgICAgICAgICBJU08gVmFsdWU6ICR7dmFsdWV9PGJyPlxuICAgICAgICAgICAgICBGb3JtYXR0ZWQ6ICR7Zm9ybWF0dGVkVmFsdWV9PGJyPlxuICAgICAgICAgICAgICBEYXRlIG9iamVjdDogJHtkYXRlLnRvTG9jYWxlU3RyaW5nKCl9XG4gICAgICAgICAgICBgO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1MID0gJzxlbT5EYXRlIGNsZWFyZWQ8L2VtPic7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHBpY2tlci5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdEYXRlcGlja2VyIGxvc3QgZm9jdXMnKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfX0+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnRXZlbnQgSGFuZGxpbmcnfSAuc3VidGl0bGU9JHsnSW50ZXJhY3RpdmUgZGVtb25zdHJhdGlvbiBvZiBjaGFuZ2UgZXZlbnRzJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXJcbiAgICAgICAgICBsYWJlbD1cIkV2ZW50IERlbW9cIlxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiU2VsZWN0IGEgZGF0ZSB0byBzZWUgdGhlIGV2ZW50IGRldGFpbHNcIlxuICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGlkPVwiZXZlbnQtb3V0cHV0XCIgY2xhc3M9XCJkZW1vLW91dHB1dFwiPlxuICAgICAgICAgIDxlbT5TZWxlY3QgYSBkYXRlIHRvIHNlZSBldmVudCBkZXRhaWxzLi4uPC9lbT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICA8L2Rpdj5cbmA7IiwgImltcG9ydCB7IGNzcywgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBEZWVzSW5wdXRCYXNlIH0gZnJvbSAnLi4vZGVlcy1pbnB1dC1iYXNlL2RlZXMtaW5wdXQtYmFzZS5qcyc7XG5cbmV4cG9ydCBjb25zdCBkYXRlcGlja2VyU3R5bGVzID0gW1xuICAgIC4uLkRlZXNJbnB1dEJhc2UuYmFzZVN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAuaW5wdXQtY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmRhdGUtaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMjI0IDcxLjQlIDQuMSUpJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNC4zIDMxLjglIDkxLjQlKScsICdoc2woMjE3LjIgMzIuNiUgMTcuNSUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjI0IDcxLjQlIDQuMSUpJywgJ2hzbCgyMTAgMjAlIDk4JSknKX07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIC5kYXRlLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMCA4LjklIDQ2LjElKScsICdoc2woMjE1IDIwLjIlIDY1LjElKScpfTtcbiAgICAgIH1cblxuICAgICAgLmRhdGUtaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgOTEuNCUpJywgJ2hzbCgyMTcuMiAzMi42JSAxNy41JSknKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDIwJSA5OCUpJywgJ2hzbCgyMTUgMjcuOSUgMTYuOSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuZGF0ZS1pbnB1dDpmb2N1cyxcbiAgICAgIC5kYXRlLWlucHV0Lm9wZW4ge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgMTEuMiUpJywgJ2hzbCgyMTAgMjAlIDk4JSknKX07XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMjI0IDcxLjQlIDQuMSUpJyl9LFxuICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSknLCAnaHNsKDIxMCAyMCUgOTglIC8gMC4xKScpfTtcbiAgICAgIH1cblxuICAgICAgLmRhdGUtaW5wdXQ6ZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCAyMCUgOTglKScsICdoc2woMjE1IDI3LjklIDE2LjklKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIwIDguOSUgNDYuMSUpJywgJ2hzbCgyMTUgMjAuMiUgNjUuMSUpJyl9O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG5cbiAgICAgIC8qIEljb24gY29udGFpbmVyIHVzaW5nIGZsZXhib3ggZm9yIGJldHRlciBwb3NpdGlvbmluZyAqL1xuICAgICAgLmljb24tY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuaWNvbi1jb250YWluZXIgPiAqIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIC5jYWxlbmRhci1pY29uIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIwIDguOSUgNDYuMSUpJywgJ2hzbCgyMTUgMjAuMiUgNjUuMSUpJyl9O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jbGVhci1idXR0b24ge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMCA4LjklIDQ2LjElKScsICdoc2woMjE1IDIwLjIlIDY1LjElKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLmNsZWFyLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDIwJSA5OCUpJywgJ2hzbCgyMTUgMjcuOSUgMTYuOSUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjQgNzEuNCUgNC4xJSknLCAnaHNsKDIxMCAyMCUgOTglKScpfTtcbiAgICAgIH1cblxuICAgICAgLmNsZWFyLWJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIENhbGVuZGFyIFBvcHVwIFN0eWxlcyAqL1xuICAgICAgLmNhbGVuZGFyLXBvcHVwIHtcbiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgyMjQgNzEuNCUgNC4xJSknKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgOTEuNCUpJywgJ2hzbCgyMTcuMiAzMi42JSAxNy41JSknKX07XG4gICAgICAgIGJveC1zaGFkb3c6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKFxuICAgICAgICAgICcwIDEwcHggMTVweCAtM3B4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCA0cHggNnB4IC00cHggaHNsKDAgMCUgMCUgLyAwLjEpJyxcbiAgICAgICAgICAnMCAxMHB4IDE1cHggLTNweCBoc2woMCAwJSAwJSAvIDAuMiksIDAgNHB4IDZweCAtNHB4IGhzbCgwIDAlIDAlIC8gMC4yKSdcbiAgICAgICAgKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgbWluLXdpZHRoOiAyODBweDtcbiAgICAgIH1cblxuICAgICAgLmNhbGVuZGFyLXBvcHVwLnRvcCB7XG4gICAgICAgIGJvdHRvbTogY2FsYygxMDAlICsgNHB4KTtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpO1xuICAgICAgfVxuXG4gICAgICAuY2FsZW5kYXItcG9wdXAuYm90dG9tIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAuY2FsZW5kYXItcG9wdXAuc2hvdyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgLyogQ2FsZW5kYXIgSGVhZGVyICovXG4gICAgICAuY2FsZW5kYXItaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLm1vbnRoLXllYXItZGlzcGxheSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjI0IDcxLjQlIDQuMSUpJywgJ2hzbCgyMTAgMjAlIDk4JSknKX07XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLm5hdi1idXR0b24ge1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMCA4LjklIDQ2LjElKScsICdoc2woMjE1IDIwLjIlIDY1LjElKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLm5hdi1idXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCAyMCUgOTglKScsICdoc2woMjE1IDI3LjklIDE2LjklKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjI0IDcxLjQlIDQuMSUpJywgJ2hzbCgyMTAgMjAlIDk4JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5uYXYtYnV0dG9uOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgOTEuNCUpJywgJ2hzbCgyMTcuMiAzMi42JSAxNy41JSknKX07XG4gICAgICB9XG5cbiAgICAgIC8qIFdlZWtkYXkgaGVhZGVycyAqL1xuICAgICAgLndlZWtkYXlzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICB9XG5cbiAgICAgIC53ZWVrZGF5IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMCA4LjklIDQ2LjElKScsICdoc2woMjE1IDIwLjIlIDY1LjElKScpfTtcbiAgICAgICAgcGFkZGluZzogMCAwIDhweCAwO1xuICAgICAgfVxuXG4gICAgICAvKiBEYXlzIGdyaWQgKi9cbiAgICAgIC5kYXlzLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cblxuICAgICAgLmRheSB7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyNCA3MS40JSA0LjElKScsICdoc2woMjEwIDIwJSA5OCUpJyl9O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAuZGF5OmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgMjAlIDk4JSknLCAnaHNsKDIxNSAyNy45JSAxNi45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5kYXkub3RoZXItbW9udGgge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjAgOC45JSA0Ni4xJSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIH1cblxuICAgICAgLmRheS50b2RheSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDIwJSA5OCUpJywgJ2hzbCgyMTUgMjcuOSUgMTYuOSUpJyl9O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuXG4gICAgICAuZGF5LnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIuMiA0Ny40JSAxMS4yJSknLCAnaHNsKDIxMCAyMCUgOTglKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDIwJSA5OCUpJywgJ2hzbCgyMjIuMiA0Ny40JSAxMS4yJSknKX07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB9XG5cbiAgICAgIC5kYXkuZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjAgOC45JSA0Ni4xJSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgIH1cblxuICAgICAgLyogRXZlbnQgaW5kaWNhdG9ycyAqL1xuICAgICAgLmRheS5oYXMtZXZlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5ldmVudC1pbmRpY2F0b3Ige1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogNHB4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuZXZlbnQtZG90IHtcbiAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjAgOC45JSA0Ni4xJSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5ldmVudC1kb3QuaW5mbyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjExIDcwJSA1MiUpJywgJ2hzbCgyMTEgNzAlIDYyJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5ldmVudC1kb3Qud2FybmluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woNDUgOTAlIDQ1JSknLCAnaHNsKDQ1IDkwJSA1NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuZXZlbnQtZG90LnN1Y2Nlc3Mge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDE0MiA2OSUgNDUlKScsICdoc2woMTQyIDY5JSA1NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuZXZlbnQtZG90LmVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcyJSA1MSUpJywgJ2hzbCgwIDcyJSA2MSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuZXZlbnQtY291bnQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMnB4O1xuICAgICAgICByaWdodDogMnB4O1xuICAgICAgICBtaW4td2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMCA0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCA3MiUgNTElKScsICdoc2woMCA3MiUgNjElKScpfTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAvKiBUb29sdGlwIGZvciBldmVudCBkZXRhaWxzICovXG4gICAgICAuZXZlbnQtdG9vbHRpcCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiBjYWxjKDEwMCUgKyA4cHgpO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDIwJSknLCAnaHNsKDAgMCUgOTAlKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSAwJSknKX07XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgIH1cblxuICAgICAgLmV2ZW50LXRvb2x0aXA6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAyMCUpJywgJ2hzbCgwIDAlIDkwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5kYXkuaGFzLWV2ZW50OmhvdmVyIC5ldmVudC10b29sdGlwIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgLyogVGltZSBzZWxlY3RvciAqL1xuICAgICAgLnRpbWUtc2VsZWN0b3Ige1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgOTEuNCUpJywgJ2hzbCgyMTcuMiAzMi42JSAxNy41JSknKX07XG4gICAgICB9XG5cbiAgICAgIC50aW1lLXNlbGVjdG9yLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMCA4LjklIDQ2LjElKScsICdoc2woMjE1IDIwLjIlIDY1LjElKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRpbWUtaW5wdXRzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC50aW1lLWlucHV0IHtcbiAgICAgICAgd2lkdGg6IDY1cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTQuMyAzMS44JSA5MS40JSknLCAnaHNsKDIxNy4yIDMyLjYlIDE3LjUlKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDIyNCA3MS40JSA0LjElKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjI0IDcxLjQlIDQuMSUpJywgJ2hzbCgyMTAgMjAlIDk4JSknKX07XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC50aW1lLWlucHV0OmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNC4zIDMxLjglIDkxLjQlKScsICdoc2woMjE3LjIgMzIuNiUgMTcuNSUpJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCAyMCUgOTglKScsICdoc2woMjE1IDI3LjklIDE2LjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRpbWUtaW5wdXQ6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgMTEuMiUpJywgJ2hzbCgyMTAgMjAlIDk4JSknKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMi4yIDQ3LjQlIDExLjIlIC8gMC4xKScsICdoc2woMjEwIDIwJSA5OCUgLyAwLjEpJyl9O1xuICAgICAgfVxuXG4gICAgICAudGltZS1zZXBhcmF0b3Ige1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMCA4LjklIDQ2LjElKScsICdoc2woMjE1IDIwLjIlIDY1LjElKScpfTtcbiAgICAgIH1cblxuICAgICAgLmFtLXBtLXNlbGVjdG9yIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5hbS1wbS1idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTQuMyAzMS44JSA5MS40JSknLCAnaHNsKDIxNy4yIDMyLjYlIDE3LjUlKScpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgyMjQgNzEuNCUgNC4xJSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMCA4LjklIDQ2LjElKScsICdoc2woMjE1IDIwLjIlIDY1LjElKScpfTtcbiAgICAgIH1cblxuICAgICAgLmFtLXBtLWJ1dHRvbi5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgMTEuMiUpJywgJ2hzbCgyMTAgMjAlIDk4JSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCAyMCUgOTglKScsICdoc2woMjIyLjIgNDcuNCUgMTEuMiUpJyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgMTEuMiUpJywgJ2hzbCgyMTAgMjAlIDk4JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5hbS1wbS1idXR0b246aG92ZXI6bm90KC5zZWxlY3RlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCAyMCUgOTglKScsICdoc2woMjE1IDI3LjklIDE2LjklKScpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNC4zIDMxLjglIDkxLjQlKScsICdoc2woMjE3LjIgMzIuNiUgMTcuNSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAvKiBBY3Rpb24gYnV0dG9ucyAqL1xuICAgICAgLmNhbGVuZGFyLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNC4zIDMxLjglIDkxLjQlKScsICdoc2woMjE3LjIgMzIuNiUgMTcuNSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbiB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLnRvZGF5LWJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMjI0IDcxLjQlIDQuMSUpJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNC4zIDMxLjglIDkxLjQlKScsICdoc2woMjE3LjIgMzIuNiUgMTcuNSUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjQgNzEuNCUgNC4xJSknLCAnaHNsKDIxMCAyMCUgOTglKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRvZGF5LWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDIwJSA5OCUpJywgJ2hzbCgyMTUgMjcuOSUgMTYuOSUpJyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgOTEuNCUpJywgJ2hzbCgyMTcuMiAzMi42JSAxNy41JSknKX07XG4gICAgICB9XG5cbiAgICAgIC50b2RheS1idXR0b246YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTQuMyAzMS44JSA5MS40JSknLCAnaHNsKDIxNy4yIDMyLjYlIDE3LjUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLmNsZWFyLWJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIwIDguOSUgNDYuMSUpJywgJ2hzbCgyMTUgMjAuMiUgNjUuMSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuY2xlYXItYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKScsICdoc2woMCA2Mi44JSAzMC42JSAvIDAuMSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgNzIuMiUgNTAuNiUpJywgJ2hzbCgwIDYyLjglIDMwLjYlKScpfTtcbiAgICAgIH1cblxuICAgICAgLmNsZWFyLWJ1dHRvbjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjIpJywgJ2hzbCgwIDYyLjglIDMwLjYlIC8gMC4yKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogVGltZXpvbmUgc2VsZWN0b3IgKi9cbiAgICAgIC50aW1lem9uZS1zZWxlY3RvciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTQuMyAzMS44JSA5MS40JSknLCAnaHNsKDIxNy4yIDMyLjYlIDE3LjUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRpbWV6b25lLXNlbGVjdG9yLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMCA4LjklIDQ2LjElKScsICdoc2woMjE1IDIwLjIlIDY1LjElKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRpbWV6b25lLXNlbGVjdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgOTEuNCUpJywgJ2hzbCgyMTcuMiAzMi42JSAxNy41JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMjI0IDcxLjQlIDQuMSUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjQgNzEuNCUgNC4xJSknLCAnaHNsKDIxMCAyMCUgOTglKScpfTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAudGltZXpvbmUtc2VsZWN0OmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNC4zIDMxLjglIDkxLjQlKScsICdoc2woMjE3LjIgMzIuNiUgMTcuNSUpJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCAyMCUgOTglKScsICdoc2woMjE1IDI3LjklIDE2LjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRpbWV6b25lLXNlbGVjdDpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIuMiA0Ny40JSAxMS4yJSknLCAnaHNsKDIxMCAyMCUgOTglKScpfTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgMTEuMiUgLyAwLjEpJywgJ2hzbCgyMTAgMjAlIDk4JSAvIDAuMSknKX07XG4gICAgICB9XG4gICAgYCxcbiAgXTsiLCAiaW1wb3J0IHsgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgdHlwZSB7IERlZXNJbnB1dERhdGVwaWNrZXIgfSBmcm9tICcuL2NvbXBvbmVudC5qcyc7XG5cbmV4cG9ydCBjb25zdCByZW5kZXJEYXRlcGlja2VyID0gKGNvbXBvbmVudDogRGVlc0lucHV0RGF0ZXBpY2tlcik6IFRlbXBsYXRlUmVzdWx0ID0+IHtcbiAgICAgIGNvbnN0IG1vbnRoTmFtZXMgPSBbXG4gICAgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJyxcbiAgICAgICAgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ1xuICAgICAgXTtcblxuICAgICAgY29uc3Qgd2Vla0RheXMgPSBjb21wb25lbnQud2Vla1N0YXJ0c09uID09PSAxIFxuICAgICAgICA/IFsnTW8nLCAnVHUnLCAnV2UnLCAnVGgnLCAnRnInLCAnU2EnLCAnU3UnXVxuICAgICAgICA6IFsnU3UnLCAnTW8nLCAnVHUnLCAnV2UnLCAnVGgnLCAnRnInLCAnU2EnXTtcblxuICAgICAgY29uc3QgZGF5cyA9IGNvbXBvbmVudC5nZXREYXlzSW5Nb250aCgpO1xuICAgICAgY29uc3QgaXNBTSA9IGNvbXBvbmVudC5zZWxlY3RlZEhvdXIgPCAxMjtcbiAgICAgIGNvbnN0IHRpbWV6b25lcyA9IGNvbXBvbmVudC5nZXRUaW1lem9uZXMoKTtcblxuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7Y29tcG9uZW50LmxhYmVsfSAuZGVzY3JpcHRpb249JHtjb21wb25lbnQuZGVzY3JpcHRpb259IC5yZXF1aXJlZD0ke2NvbXBvbmVudC5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGF0ZS1pbnB1dCAke2NvbXBvbmVudC5pc09wZW5lZCA/ICdvcGVuJyA6ICcnfVwiXG4gICAgICAgICAgICAgIC52YWx1ZT0ke2NvbXBvbmVudC5mb3JtYXREYXRlKGNvbXBvbmVudC52YWx1ZSl9XG4gICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke2NvbXBvbmVudC5wbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7Y29tcG9uZW50LmRpc2FibGVkfVxuICAgICAgICAgICAgICBAY2xpY2s9JHtjb21wb25lbnQudG9nZ2xlQ2FsZW5kYXJ9XG4gICAgICAgICAgICAgIEBrZXlkb3duPSR7Y29tcG9uZW50LmhhbmRsZUtleWRvd259XG4gICAgICAgICAgICAgIEBpbnB1dD0ke2NvbXBvbmVudC5oYW5kbGVNYW51YWxJbnB1dH1cbiAgICAgICAgICAgICAgQGJsdXI9JHtjb21wb25lbnQuaGFuZGxlSW5wdXRCbHVyfVxuICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmctcmlnaHQ6ICR7Y29tcG9uZW50LnZhbHVlID8gJzY0cHgnIDogJzQwcHgnfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICR7Y29tcG9uZW50LnZhbHVlICYmICFjb21wb25lbnQuZGlzYWJsZWQgPyBodG1sYFxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjbGVhci1idXR0b25cIiBAY2xpY2s9JHtjb21wb25lbnQuY2xlYXJWYWx1ZX0gdGl0bGU9XCJDbGVhclwiPlxuICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPVwibHVjaWRlOnhcIiBpY29uU2l6ZT1cIjE0XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz1cImNhbGVuZGFyLWljb25cIiBpY29uPVwibHVjaWRlOmNhbGVuZGFyXCIgaWNvblNpemU9XCIxNlwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8IS0tIENhbGVuZGFyIFBvcHVwIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLXBvcHVwICR7Y29tcG9uZW50LmlzT3BlbmVkID8gJ3Nob3cnIDogJyd9ICR7Y29tcG9uZW50Lm9wZW5zVG9Ub3AgPyAndG9wJyA6ICdib3R0b20nfVwiPlxuICAgICAgICAgICAgICA8IS0tIE1vbnRoL1llYXIgTmF2aWdhdGlvbiAtLT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJuYXYtYnV0dG9uXCIgQGNsaWNrPSR7Y29tcG9uZW50LnByZXZpb3VzTW9udGh9PlxuICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPVwibHVjaWRlOmNoZXZyb25MZWZ0XCIgaWNvblNpemU9XCIxNlwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC15ZWFyLWRpc3BsYXlcIj5cbiAgICAgICAgICAgICAgICAgICR7bW9udGhOYW1lc1tjb21wb25lbnQudmlld0RhdGUuZ2V0TW9udGgoKV19ICR7Y29tcG9uZW50LnZpZXdEYXRlLmdldEZ1bGxZZWFyKCl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5hdi1idXR0b25cIiBAY2xpY2s9JHtjb21wb25lbnQubmV4dE1vbnRofT5cbiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj1cImx1Y2lkZTpjaGV2cm9uUmlnaHRcIiBpY29uU2l6ZT1cIjE2XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDwhLS0gV2Vla2RheSBIZWFkZXJzIC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheXNcIj5cbiAgICAgICAgICAgICAgICAke3dlZWtEYXlzLm1hcChkYXkgPT4gaHRtbGA8ZGl2IGNsYXNzPVwid2Vla2RheVwiPiR7ZGF5fTwvZGl2PmApfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8IS0tIERheXMgR3JpZCAtLT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheXMtZ3JpZFwiPlxuICAgICAgICAgICAgICAgICR7ZGF5cy5tYXAoZGF5ID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVG9kYXkgPSBjb21wb25lbnQuaXNUb2RheShkYXkpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGNvbXBvbmVudC5pc1NlbGVjdGVkKGRheSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBpc090aGVyTW9udGggPSBkYXkuZ2V0TW9udGgoKSAhPT0gY29tcG9uZW50LnZpZXdEYXRlLmdldE1vbnRoKCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gY29tcG9uZW50LmlzRGlzYWJsZWQoZGF5KTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGRheUV2ZW50cyA9IGNvbXBvbmVudC5nZXRFdmVudHNGb3JEYXRlKGRheSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBoYXNFdmVudHMgPSBkYXlFdmVudHMubGVuZ3RoID4gMDtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsRXZlbnRDb3VudCA9IGRheUV2ZW50cy5yZWR1Y2UoKHN1bSwgZXZlbnQpID0+IHN1bSArIChldmVudC5jb3VudCB8fCAxKSwgMCk7XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGF5ICR7aXNPdGhlck1vbnRoID8gJ290aGVyLW1vbnRoJyA6ICcnfSAke2lzVG9kYXkgPyAndG9kYXknIDogJyd9ICR7aXNTZWxlY3RlZCA/ICdzZWxlY3RlZCcgOiAnJ30gJHtpc0Rpc2FibGVkID8gJ2Rpc2FibGVkJyA6ICcnfSAke2hhc0V2ZW50cyA/ICdoYXMtZXZlbnQnIDogJyd9XCJcbiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiAhaXNEaXNhYmxlZCAmJiBjb21wb25lbnQuc2VsZWN0RGF0ZShkYXkpfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgJHtkYXkuZ2V0RGF0ZSgpfVxuICAgICAgICAgICAgICAgICAgICAgICR7aGFzRXZlbnRzID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgICAgICR7dG90YWxFdmVudENvdW50ID4gMyA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1jb3VudFwiPiR7dG90YWxFdmVudENvdW50fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgYCA6IGh0bWxgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1pbmRpY2F0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2RheUV2ZW50cy5zbGljZSgwLCAzKS5tYXAoZXZlbnQgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1kb3QgJHtldmVudC50eXBlIHx8ICdpbmZvJ31cIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJHtkYXlFdmVudHNbMF0udGl0bGUgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtdG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7ZGF5RXZlbnRzWzBdLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dG90YWxFdmVudENvdW50ID4gMSA/IGh0bWxgICgrJHt0b3RhbEV2ZW50Q291bnQgLSAxfSBtb3JlKWAgOiAnJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgICAgICAgICAgICAgYCA6ICcnfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIGA7XG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDwhLS0gVGltZSBTZWxlY3RvciAtLT5cbiAgICAgICAgICAgICAgJHtjb21wb25lbnQuZW5hYmxlVGltZSA/IGh0bWxgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtc2VsZWN0b3JcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXNlbGVjdG9yLXRpdGxlXCI+VGltZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtaW5wdXRzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCIgXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lLWlucHV0XCIgXG4gICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7Y29tcG9uZW50LnRpbWVGb3JtYXQgPT09ICcxMmgnIFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAoY29tcG9uZW50LnNlbGVjdGVkSG91ciA9PT0gMCA/IDEyIDogY29tcG9uZW50LnNlbGVjdGVkSG91ciA+IDEyID8gY29tcG9uZW50LnNlbGVjdGVkSG91ciAtIDEyIDogY29tcG9uZW50LnNlbGVjdGVkSG91cikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbXBvbmVudC5zZWxlY3RlZEhvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfVxuICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0keyhlOiBJbnB1dEV2ZW50KSA9PiBjb21wb25lbnQuaGFuZGxlSG91cklucHV0KGUpfVxuICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIiR7Y29tcG9uZW50LnRpbWVGb3JtYXQgPT09ICcxMmgnID8gMSA6IDB9XCJcbiAgICAgICAgICAgICAgICAgICAgICBtYXg9XCIke2NvbXBvbmVudC50aW1lRm9ybWF0ID09PSAnMTJoJyA/IDEyIDogMjN9XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lLXNlcGFyYXRvclwiPjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCIgXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lLWlucHV0XCIgXG4gICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7Y29tcG9uZW50LnNlbGVjdGVkTWludXRlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1cbiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHsoZTogSW5wdXRFdmVudCkgPT4gY29tcG9uZW50LmhhbmRsZU1pbnV0ZUlucHV0KGUpfVxuICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIG1heD1cIjU5XCJcbiAgICAgICAgICAgICAgICAgICAgICBzdGVwPVwiJHtjb21wb25lbnQubWludXRlSW5jcmVtZW50IHx8IDF9XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgJHtjb21wb25lbnQudGltZUZvcm1hdCA9PT0gJzEyaCcgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbS1wbS1zZWxlY3RvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbS1wbS1idXR0b24gJHtpc0FNID8gJ3NlbGVjdGVkJyA6ICcnfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpID0+IGNvbXBvbmVudC5zZXRBTVBNKCdhbScpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBBTVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFtLXBtLWJ1dHRvbiAkeyFpc0FNID8gJ3NlbGVjdGVkJyA6ICcnfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpID0+IGNvbXBvbmVudC5zZXRBTVBNKCdwbScpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBQTVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICBgIDogJyd9XG5cbiAgICAgICAgICAgICAgPCEtLSBUaW1lem9uZSBTZWxlY3RvciAtLT5cbiAgICAgICAgICAgICAgJHtjb21wb25lbnQuZW5hYmxlVGltZXpvbmUgPyBodG1sYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lem9uZS1zZWxlY3RvclwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWV6b25lLXNlbGVjdG9yLXRpdGxlXCI+VGltZXpvbmU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxzZWxlY3QgXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGltZXpvbmUtc2VsZWN0XCIgXG4gICAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke2NvbXBvbmVudC50aW1lem9uZX1cbiAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT0keyhlOiBFdmVudCkgPT4gY29tcG9uZW50LmhhbmRsZVRpbWV6b25lQ2hhbmdlKGUpfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAke3RpbWV6b25lcy5tYXAodHogPT4gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiJHt0ei52YWx1ZX1cIiA/c2VsZWN0ZWQ9JHt0ei52YWx1ZSA9PT0gY29tcG9uZW50LnRpbWV6b25lfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dHoubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIGApfVxuICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIGAgOiAnJ31cblxuICAgICAgICAgICAgICA8IS0tIEFjdGlvbiBCdXR0b25zIC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhY3Rpb24tYnV0dG9uIHRvZGF5LWJ1dHRvblwiIEBjbGljaz0ke2NvbXBvbmVudC5zZWxlY3RUb2RheX0+XG4gICAgICAgICAgICAgICAgICBUb2RheVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhY3Rpb24tYnV0dG9uIGNsZWFyLWJ1dHRvblwiIEBjbGljaz0ke2NvbXBvbmVudC5jbGVhcn0+XG4gICAgICAgICAgICAgICAgICBDbGVhclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG4gIFxufTtcbiIsICJpbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBwcm9wZXJ0eSxcbiAgc3RhdGUsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBEZWVzSW5wdXRCYXNlIH0gZnJvbSAnLi4vZGVlcy1pbnB1dC1iYXNlL2RlZXMtaW5wdXQtYmFzZS5qcyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVtby5qcyc7XG5pbXBvcnQgeyBkYXRlcGlja2VyU3R5bGVzIH0gZnJvbSAnLi9zdHlsZXMuanMnO1xuaW1wb3J0IHsgcmVuZGVyRGF0ZXBpY2tlciB9IGZyb20gJy4vdGVtcGxhdGUuanMnO1xuaW1wb3J0IHR5cGUgeyBJRGF0ZUV2ZW50IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLWxhYmVsL2RlZXMtbGFiZWwuanMnO1xuXG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcic6IERlZXNJbnB1dERhdGVwaWNrZXI7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcicpXG5leHBvcnQgY2xhc3MgRGVlc0lucHV0RGF0ZXBpY2tlciBleHRlbmRzIERlZXNJbnB1dEJhc2U8RGVlc0lucHV0RGF0ZXBpY2tlcj4ge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnSW5wdXQnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciB2YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBlbmFibGVUaW1lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIHRpbWVGb3JtYXQ6ICcyNGgnIHwgJzEyaCcgPSAnMjRoJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3IgbWludXRlSW5jcmVtZW50OiBudW1iZXIgPSAxO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBkYXRlRm9ybWF0OiBzdHJpbmcgPSAnWVlZWS1NTS1ERCc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIG1pbkRhdGU6IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBtYXhEYXRlOiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBhY2Nlc3NvciBkaXNhYmxlZERhdGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciB3ZWVrU3RhcnRzT246IDAgfCAxID0gMTsgLy8gRGVmYXVsdCB0byBNb25kYXlcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdZWVlZLU1NLUREJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIGVuYWJsZVRpbWV6b25lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIHRpbWV6b25lOiBzdHJpbmcgPSBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmU7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3IgZXZlbnRzOiBJRGF0ZUV2ZW50W10gPSBbXTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBpc09wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIG9wZW5zVG9Ub3A6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBzZWxlY3RlZERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciB2aWV3RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3Igc2VsZWN0ZWRIb3VyOiBudW1iZXIgPSAwO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHNlbGVjdGVkTWludXRlOiBudW1iZXIgPSAwO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gZGF0ZXBpY2tlclN0eWxlcztcblxuXG5cbiAgcHVibGljIGdldFRpbWV6b25lcygpOiB7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVtdIHtcbiAgICAvLyBDb21tb24gdGltZXpvbmVzIHdpdGggdGhlaXIgZGlzcGxheSBuYW1lc1xuICAgIHJldHVybiBbXG4gICAgICB7IHZhbHVlOiAnVVRDJywgbGFiZWw6ICdVVEMgKENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lKScgfSxcbiAgICAgIHsgdmFsdWU6ICdBbWVyaWNhL05ld19Zb3JrJywgbGFiZWw6ICdFYXN0ZXJuIFRpbWUgKFVTICYgQ2FuYWRhKScgfSxcbiAgICAgIHsgdmFsdWU6ICdBbWVyaWNhL0NoaWNhZ28nLCBsYWJlbDogJ0NlbnRyYWwgVGltZSAoVVMgJiBDYW5hZGEpJyB9LFxuICAgICAgeyB2YWx1ZTogJ0FtZXJpY2EvRGVudmVyJywgbGFiZWw6ICdNb3VudGFpbiBUaW1lIChVUyAmIENhbmFkYSknIH0sXG4gICAgICB7IHZhbHVlOiAnQW1lcmljYS9Mb3NfQW5nZWxlcycsIGxhYmVsOiAnUGFjaWZpYyBUaW1lIChVUyAmIENhbmFkYSknIH0sXG4gICAgICB7IHZhbHVlOiAnQW1lcmljYS9QaG9lbml4JywgbGFiZWw6ICdBcml6b25hJyB9LFxuICAgICAgeyB2YWx1ZTogJ0FtZXJpY2EvQW5jaG9yYWdlJywgbGFiZWw6ICdBbGFza2EnIH0sXG4gICAgICB7IHZhbHVlOiAnUGFjaWZpYy9Ib25vbHVsdScsIGxhYmVsOiAnSGF3YWlpJyB9LFxuICAgICAgeyB2YWx1ZTogJ0V1cm9wZS9Mb25kb24nLCBsYWJlbDogJ0xvbmRvbicgfSxcbiAgICAgIHsgdmFsdWU6ICdFdXJvcGUvUGFyaXMnLCBsYWJlbDogJ1BhcmlzJyB9LFxuICAgICAgeyB2YWx1ZTogJ0V1cm9wZS9CZXJsaW4nLCBsYWJlbDogJ0JlcmxpbicgfSxcbiAgICAgIHsgdmFsdWU6ICdFdXJvcGUvTW9zY293JywgbGFiZWw6ICdNb3Njb3cnIH0sXG4gICAgICB7IHZhbHVlOiAnQXNpYS9EdWJhaScsIGxhYmVsOiAnRHViYWknIH0sXG4gICAgICB7IHZhbHVlOiAnQXNpYS9Lb2xrYXRhJywgbGFiZWw6ICdJbmRpYSBTdGFuZGFyZCBUaW1lJyB9LFxuICAgICAgeyB2YWx1ZTogJ0FzaWEvU2hhbmdoYWknLCBsYWJlbDogJ0NoaW5hIFN0YW5kYXJkIFRpbWUnIH0sXG4gICAgICB7IHZhbHVlOiAnQXNpYS9Ub2t5bycsIGxhYmVsOiAnVG9reW8nIH0sXG4gICAgICB7IHZhbHVlOiAnQXVzdHJhbGlhL1N5ZG5leScsIGxhYmVsOiAnU3lkbmV5JyB9LFxuICAgICAgeyB2YWx1ZTogJ1BhY2lmaWMvQXVja2xhbmQnLCBsYWJlbDogJ0F1Y2tsYW5kJyB9LFxuICAgIF07XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gcmVuZGVyRGF0ZXBpY2tlcih0aGlzKTtcbiAgfVxuXG5cblxuICBhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlID0gdGhpcy5oYW5kbGVDbGlja091dHNpZGUuYmluZCh0aGlzKTtcbiAgfVxuXG4gIGFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH1cblxuICBhc3luYyBmaXJzdFVwZGF0ZWQoKSB7XG4gICAgLy8gSW5pdGlhbGl6ZSB3aXRoIGVtcHR5IHZhbHVlIGlmIG5vdCBzZXRcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICAvLyBJbml0aWFsaXplIHZpZXcgZGF0ZSBhbmQgc2VsZWN0ZWQgdGltZVxuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy52YWx1ZSk7XG4gICAgICAgIGlmICghaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlO1xuICAgICAgICAgIHRoaXMudmlld0RhdGUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IGRhdGUuZ2V0SG91cnMoKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTWludXRlID0gZGF0ZS5nZXRNaW51dGVzKCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBJbnZhbGlkIGRhdGVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgIHRoaXMudmlld0RhdGUgPSBuZXcgRGF0ZShub3cpO1xuICAgICAgdGhpcy5zZWxlY3RlZEhvdXIgPSBub3cuZ2V0SG91cnMoKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGUgPSAwO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXREYXRlKGlzb1N0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWlzb1N0cmluZykgcmV0dXJuICcnO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShpc29TdHJpbmcpO1xuICAgICAgaWYgKGlzTmFOKGRhdGUuZ2V0VGltZSgpKSkgcmV0dXJuICcnO1xuXG4gICAgICBsZXQgZm9ybWF0dGVkID0gdGhpcy5kYXRlRm9ybWF0O1xuICAgICAgXG4gICAgICAvLyBCYXNpYyBkYXRlIGZvcm1hdHRpbmdcbiAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICAgIGNvbnN0IG1vbnRoID0gKGRhdGUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtcbiAgICAgIFxuICAgICAgLy8gUmVwbGFjZSBpbiBjb3JyZWN0IG9yZGVyIHRvIGF2b2lkIGNvbmZsaWN0c1xuICAgICAgZm9ybWF0dGVkID0gZm9ybWF0dGVkLnJlcGxhY2UoJ1lZWVknLCB5ZWFyKTtcbiAgICAgIGZvcm1hdHRlZCA9IGZvcm1hdHRlZC5yZXBsYWNlKCdZWScsIHllYXIuc2xpY2UoLTIpKTtcbiAgICAgIGZvcm1hdHRlZCA9IGZvcm1hdHRlZC5yZXBsYWNlKCdNTScsIG1vbnRoKTtcbiAgICAgIGZvcm1hdHRlZCA9IGZvcm1hdHRlZC5yZXBsYWNlKCdERCcsIGRheSk7XG5cbiAgICAgIC8vIFRpbWUgZm9ybWF0dGluZyBpZiBlbmFibGVkXG4gICAgICBpZiAodGhpcy5lbmFibGVUaW1lKSB7XG4gICAgICAgIGNvbnN0IGhvdXJzMjQgPSBkYXRlLmdldEhvdXJzKCk7XG4gICAgICAgIGNvbnN0IGhvdXJzMTIgPSBob3VyczI0ID09PSAwID8gMTIgOiBob3VyczI0ID4gMTIgPyBob3VyczI0IC0gMTIgOiBob3VyczI0O1xuICAgICAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgICAgICBjb25zdCBhbXBtID0gaG91cnMyNCA+PSAxMiA/ICdQTScgOiAnQU0nO1xuXG4gICAgICAgIGlmICh0aGlzLnRpbWVGb3JtYXQgPT09ICcxMmgnKSB7XG4gICAgICAgICAgZm9ybWF0dGVkICs9IGAgJHtob3VyczEyfToke21pbnV0ZXN9ICR7YW1wbX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvcm1hdHRlZCArPSBgICR7aG91cnMyNC50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7bWludXRlc31gO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRpbWV6b25lIGZvcm1hdHRpbmcgaWYgZW5hYmxlZFxuICAgICAgaWYgKHRoaXMuZW5hYmxlVGltZXpvbmUpIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuLVVTJywge1xuICAgICAgICAgIHRpbWVab25lTmFtZTogJ3Nob3J0JyxcbiAgICAgICAgICB0aW1lWm9uZTogdGhpcy50aW1lem9uZVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcGFydHMgPSBmb3JtYXR0ZXIuZm9ybWF0VG9QYXJ0cyhkYXRlKTtcbiAgICAgICAgY29uc3QgdHpQYXJ0ID0gcGFydHMuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ3RpbWVab25lTmFtZScpO1xuICAgICAgICBpZiAodHpQYXJ0KSB7XG4gICAgICAgICAgZm9ybWF0dGVkICs9IGAgJHt0elBhcnQudmFsdWV9YDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9ybWF0dGVkO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGV2ZW50LmNvbXBvc2VkUGF0aCgpO1xuICAgIGlmICghcGF0aC5pbmNsdWRlcyh0aGlzKSkge1xuICAgICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgfVxuICB9O1xuXG4gIHB1YmxpYyBhc3luYyB0b2dnbGVDYWxlbmRhcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5pc09wZW5lZCA9ICF0aGlzLmlzT3BlbmVkO1xuXG4gICAgaWYgKHRoaXMuaXNPcGVuZWQpIHtcbiAgICAgIC8vIENoZWNrIGF2YWlsYWJsZSBzcGFjZSBhbmQgc2V0IHBvc2l0aW9uXG4gICAgICBjb25zdCBpbnB1dENvbnRhaW5lciA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLmlucHV0LWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgcmVjdCA9IGlucHV0Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3Qgc3BhY2VCZWxvdyA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHJlY3QuYm90dG9tO1xuICAgICAgY29uc3Qgc3BhY2VBYm92ZSA9IHJlY3QudG9wO1xuICAgICAgXG4gICAgICAvLyBEZXRlcm1pbmUgaWYgd2Ugc2hvdWxkIG9wZW4gdXB3YXJkcyAoYXBwcm94aW1hdGUgaGVpZ2h0IG9mIDQwMHB4KVxuICAgICAgdGhpcy5vcGVuc1RvVG9wID0gc3BhY2VCZWxvdyA8IDQwMCAmJiBzcGFjZUFib3ZlID4gc3BhY2VCZWxvdztcblxuICAgICAgLy8gQWRkIGNsaWNrIG91dHNpZGUgbGlzdGVuZXJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF5c0luTW9udGgoKTogRGF0ZVtdIHtcbiAgICBjb25zdCB5ZWFyID0gdGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gdGhpcy52aWV3RGF0ZS5nZXRNb250aCgpO1xuICAgIGNvbnN0IGZpcnN0RGF5ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuICAgIGNvbnN0IGxhc3REYXkgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApO1xuICAgIGNvbnN0IGRheXM6IERhdGVbXSA9IFtdO1xuXG4gICAgLy8gQWRqdXN0IGZvciB3ZWVrIHN0YXJ0XG4gICAgY29uc3Qgc3RhcnRPZmZzZXQgPSB0aGlzLndlZWtTdGFydHNPbiA9PT0gMSBcbiAgICAgID8gKGZpcnN0RGF5LmdldERheSgpID09PSAwID8gNiA6IGZpcnN0RGF5LmdldERheSgpIC0gMSlcbiAgICAgIDogZmlyc3REYXkuZ2V0RGF5KCk7XG5cbiAgICAvLyBBZGQgZGF5cyBmcm9tIHByZXZpb3VzIG1vbnRoXG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0T2Zmc2V0OyBpID4gMDsgaS0tKSB7XG4gICAgICBkYXlzLnB1c2gobmV3IERhdGUoeWVhciwgbW9udGgsIDEgLSBpKSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIGRheXMgb2YgY3VycmVudCBtb250aFxuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGxhc3REYXkuZ2V0RGF0ZSgpOyBpKyspIHtcbiAgICAgIGRheXMucHVzaChuZXcgRGF0ZSh5ZWFyLCBtb250aCwgaSkpO1xuICAgIH1cblxuICAgIC8vIEFkZCBkYXlzIGZyb20gbmV4dCBtb250aCB0byBjb21wbGV0ZSB0aGUgZ3JpZCAoNiByb3dzKVxuICAgIGNvbnN0IHJlbWFpbmluZ0RheXMgPSA0MiAtIGRheXMubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHJlbWFpbmluZ0RheXM7IGkrKykge1xuICAgICAgZGF5cy5wdXNoKG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgaSkpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXlzO1xuICB9XG5cbiAgcHVibGljIGlzVG9kYXkoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXRlKCkgPT09IHRvZGF5LmdldERhdGUoKSAmJlxuICAgICAgICAgICBkYXRlLmdldE1vbnRoKCkgPT09IHRvZGF5LmdldE1vbnRoKCkgJiZcbiAgICAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpID09PSB0b2RheS5nZXRGdWxsWWVhcigpO1xuICB9XG5cbiAgcHVibGljIGlzU2VsZWN0ZWQoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZERhdGUpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXRlKCkgPT09IHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSAmJlxuICAgICAgICAgICBkYXRlLmdldE1vbnRoKCkgPT09IHRoaXMuc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkgJiZcbiAgICAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpID09PSB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpO1xuICB9XG5cbiAgcHVibGljIGlzRGlzYWJsZWQoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIC8vIENoZWNrIG1pbiBkYXRlXG4gICAgaWYgKHRoaXMubWluRGF0ZSkge1xuICAgICAgY29uc3QgbWluID0gbmV3IERhdGUodGhpcy5taW5EYXRlKTtcbiAgICAgIGlmIChkYXRlIDwgbWluKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBtYXggZGF0ZVxuICAgIGlmICh0aGlzLm1heERhdGUpIHtcbiAgICAgIGNvbnN0IG1heCA9IG5ldyBEYXRlKHRoaXMubWF4RGF0ZSk7XG4gICAgICBpZiAoZGF0ZSA+IG1heCkgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZGlzYWJsZWQgZGF0ZXNcbiAgICBpZiAodGhpcy5kaXNhYmxlZERhdGVzICYmIHRoaXMuZGlzYWJsZWREYXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoZGlzYWJsZWRTdHIgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gbmV3IERhdGUoZGlzYWJsZWRTdHIpO1xuICAgICAgICAgIHJldHVybiBkYXRlLmdldERhdGUoKSA9PT0gZGlzYWJsZWQuZ2V0RGF0ZSgpICYmXG4gICAgICAgICAgICAgICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gZGlzYWJsZWQuZ2V0TW9udGgoKSAmJlxuICAgICAgICAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IGRpc2FibGVkLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldEV2ZW50c0ZvckRhdGUoZGF0ZTogRGF0ZSk6IElEYXRlRXZlbnRbXSB7XG4gICAgaWYgKCF0aGlzLmV2ZW50cyB8fCB0aGlzLmV2ZW50cy5sZW5ndGggPT09IDApIHJldHVybiBbXTtcbiAgICBcbiAgICBjb25zdCBkYXRlU3RyID0gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfS0keyhkYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LSR7ZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWA7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRzLmZpbHRlcihldmVudCA9PiBldmVudC5kYXRlID09PSBkYXRlU3RyKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3REYXRlKGRhdGU6IERhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgZGF0ZS5nZXREYXRlKCksXG4gICAgICB0aGlzLnNlbGVjdGVkSG91cixcbiAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGVcbiAgICApO1xuICAgIFxuICAgIHRoaXMudmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlV2l0aFRpbWV6b25lKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgICBcbiAgICBpZiAoIXRoaXMuZW5hYmxlVGltZSkge1xuICAgICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RUb2RheSgpOiB2b2lkIHtcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0b2RheTtcbiAgICB0aGlzLnZpZXdEYXRlID0gbmV3IERhdGUodG9kYXkpO1xuICAgIHRoaXMuc2VsZWN0ZWRIb3VyID0gdG9kYXkuZ2V0SG91cnMoKTtcbiAgICB0aGlzLnNlbGVjdGVkTWludXRlID0gdG9kYXkuZ2V0TWludXRlcygpO1xuICAgIFxuICAgIHRoaXMudmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlV2l0aFRpbWV6b25lKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgICBcbiAgICBpZiAoIXRoaXMuZW5hYmxlVGltZSkge1xuICAgICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xuICAgIHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpO1xuICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBwcmV2aW91c01vbnRoKCk6IHZvaWQge1xuICAgIHRoaXMudmlld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCksIHRoaXMudmlld0RhdGUuZ2V0TW9udGgoKSAtIDEsIDEpO1xuICB9XG5cbiAgcHVibGljIG5leHRNb250aCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdEYXRlID0gbmV3IERhdGUodGhpcy52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLCB0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCkgKyAxLCAxKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVIb3VySW5wdXQoZTogSW5wdXRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBsZXQgdmFsdWUgPSBwYXJzZUludChpbnB1dC52YWx1ZSkgfHwgMDtcbiAgICBcbiAgICBpZiAodGhpcy50aW1lRm9ybWF0ID09PSAnMTJoJykge1xuICAgICAgdmFsdWUgPSBNYXRoLm1heCgxLCBNYXRoLm1pbigxMiwgdmFsdWUpKTtcbiAgICAgIC8vIENvbnZlcnQgdG8gMjRoIGZvcm1hdFxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRIb3VyID49IDEyICYmIHZhbHVlICE9PSAxMikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IHZhbHVlICsgMTI7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRIb3VyIDwgMTIgJiYgdmFsdWUgPT09IDEyKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRIb3VyID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRIb3VyID0gdmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRIb3VyID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMjMsIHZhbHVlKSk7XG4gICAgfVxuICAgIFxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWREYXRlVGltZSgpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZU1pbnV0ZUlucHV0KGU6IElucHV0RXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IHZhbHVlID0gcGFyc2VJbnQoaW5wdXQudmFsdWUpIHx8IDA7XG4gICAgdmFsdWUgPSBNYXRoLm1heCgwLCBNYXRoLm1pbig1OSwgdmFsdWUpKTtcbiAgICBcbiAgICBpZiAodGhpcy5taW51dGVJbmNyZW1lbnQgJiYgdGhpcy5taW51dGVJbmNyZW1lbnQgPiAxKSB7XG4gICAgICB2YWx1ZSA9IE1hdGgucm91bmQodmFsdWUgLyB0aGlzLm1pbnV0ZUluY3JlbWVudCkgKiB0aGlzLm1pbnV0ZUluY3JlbWVudDtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5zZWxlY3RlZE1pbnV0ZSA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWREYXRlVGltZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEFNUE0ocGVyaW9kOiAnYW0nIHwgJ3BtJyk6IHZvaWQge1xuICAgIGlmIChwZXJpb2QgPT09ICdhbScgJiYgdGhpcy5zZWxlY3RlZEhvdXIgPj0gMTIpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRIb3VyIC09IDEyO1xuICAgIH0gZWxzZSBpZiAocGVyaW9kID09PSAncG0nICYmIHRoaXMuc2VsZWN0ZWRIb3VyIDwgMTIpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRIb3VyICs9IDEyO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWREYXRlVGltZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLmdldE1vbnRoKCksXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSxcbiAgICAgICAgdGhpcy5zZWxlY3RlZEhvdXIsXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGVcbiAgICAgICk7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZVdpdGhUaW1lem9uZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlVGltZXpvbmVDaGFuZ2UoZTogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3QgPSBlLnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudDtcbiAgICB0aGlzLnRpbWV6b25lID0gc2VsZWN0LnZhbHVlO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWREYXRlVGltZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRWYWx1ZVdpdGhUaW1lem9uZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlVGltZXpvbmUpIHtcbiAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvcm1hdCB0aGUgZGF0ZSB3aXRoIHRpbWV6b25lIG9mZnNldFxuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi1VUycsIHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcbiAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgc2Vjb25kOiAnMi1kaWdpdCcsXG4gICAgICBob3VyMTI6IGZhbHNlLFxuICAgICAgdGltZVpvbmU6IHRoaXMudGltZXpvbmUsXG4gICAgICB0aW1lWm9uZU5hbWU6ICdzaG9ydCdcbiAgICB9KTtcbiAgICBcbiAgICBjb25zdCBwYXJ0cyA9IGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKGRhdGUpO1xuICAgIGNvbnN0IGRhdGVQYXJ0czogYW55ID0ge307XG4gICAgcGFydHMuZm9yRWFjaChwYXJ0ID0+IHtcbiAgICAgIGRhdGVQYXJ0c1twYXJ0LnR5cGVdID0gcGFydC52YWx1ZTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBDcmVhdGUgSVNPLWxpa2UgZm9ybWF0IHdpdGggdGltZXpvbmVcbiAgICBjb25zdCBpc29TdHJpbmcgPSBgJHtkYXRlUGFydHMueWVhcn0tJHtkYXRlUGFydHMubW9udGh9LSR7ZGF0ZVBhcnRzLmRheX1UJHtkYXRlUGFydHMuaG91cn06JHtkYXRlUGFydHMubWludXRlfToke2RhdGVQYXJ0cy5zZWNvbmR9YDtcbiAgICBcbiAgICAvLyBHZXQgdGltZXpvbmUgb2Zmc2V0XG4gICAgY29uc3QgdHpPZmZzZXQgPSB0aGlzLmdldFRpbWV6b25lT2Zmc2V0KGRhdGUsIHRoaXMudGltZXpvbmUpO1xuICAgIHJldHVybiBgJHtpc29TdHJpbmd9JHt0ek9mZnNldH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUaW1lem9uZU9mZnNldChkYXRlOiBEYXRlLCB0aW1lem9uZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBDcmVhdGUgYSBkYXRlIGluIHRoZSB0YXJnZXQgdGltZXpvbmVcbiAgICBjb25zdCB0ekRhdGUgPSBuZXcgRGF0ZShkYXRlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgdGltZVpvbmU6IHRpbWV6b25lIH0pKTtcbiAgICBjb25zdCB1dGNEYXRlID0gbmV3IERhdGUoZGF0ZS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IHRpbWVab25lOiAnVVRDJyB9KSk7XG4gICAgXG4gICAgY29uc3Qgb2Zmc2V0TWludXRlcyA9ICh0ekRhdGUuZ2V0VGltZSgpIC0gdXRjRGF0ZS5nZXRUaW1lKCkpIC8gKDEwMDAgKiA2MCk7XG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKE1hdGguYWJzKG9mZnNldE1pbnV0ZXMpIC8gNjApO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmFicyhvZmZzZXRNaW51dGVzKSAlIDYwO1xuICAgIGNvbnN0IHNpZ24gPSBvZmZzZXRNaW51dGVzID49IDAgPyAnKycgOiAnLSc7XG4gICAgXG4gICAgcmV0dXJuIGAke3NpZ259JHtob3Vycy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7bWludXRlcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVLZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgfHwgZS5rZXkgPT09ICcgJykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy50b2dnbGVDYWxlbmRhcigpO1xuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUnICYmIHRoaXMuaXNPcGVuZWQpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXJWYWx1ZShlOiBFdmVudCk6IHZvaWQge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbnVsbDtcbiAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVNYW51YWxJbnB1dChlOiBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IGlucHV0VmFsdWUgPSBpbnB1dC52YWx1ZS50cmltKCk7XG4gICAgXG4gICAgaWYgKCFpbnB1dFZhbHVlKSB7XG4gICAgICAvLyBDbGVhciB0aGUgdmFsdWUgaWYgaW5wdXQgaXMgZW1wdHlcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWREYXRlID0gdGhpcy5wYXJzZU1hbnVhbERhdGUoaW5wdXRWYWx1ZSk7XG4gICAgaWYgKHBhcnNlZERhdGUgJiYgIWlzTmFOKHBhcnNlZERhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgLy8gVXBkYXRlIGludGVybmFsIHN0YXRlIHdpdGhvdXQgdHJpZ2dlcmluZyByZS1yZW5kZXIgb2YgaW5wdXRcbiAgICAgIHRoaXMudmFsdWUgPSBwYXJzZWREYXRlLnRvSVNPU3RyaW5nKCk7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHBhcnNlZERhdGU7XG4gICAgICB0aGlzLnZpZXdEYXRlID0gbmV3IERhdGUocGFyc2VkRGF0ZSk7XG4gICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IHBhcnNlZERhdGUuZ2V0SG91cnMoKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGUgPSBwYXJzZWREYXRlLmdldE1pbnV0ZXMoKTtcbiAgICAgIHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVJbnB1dEJsdXIoZTogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBpbnB1dFZhbHVlID0gaW5wdXQudmFsdWUudHJpbSgpO1xuICAgIFxuICAgIGlmICghaW5wdXRWYWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xuICAgICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkRGF0ZSA9IHRoaXMucGFyc2VNYW51YWxEYXRlKGlucHV0VmFsdWUpO1xuICAgIGlmIChwYXJzZWREYXRlICYmICFpc05hTihwYXJzZWREYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBwYXJzZWREYXRlLnRvSVNPU3RyaW5nKCk7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHBhcnNlZERhdGU7XG4gICAgICB0aGlzLnZpZXdEYXRlID0gbmV3IERhdGUocGFyc2VkRGF0ZSk7XG4gICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IHBhcnNlZERhdGUuZ2V0SG91cnMoKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGUgPSBwYXJzZWREYXRlLmdldE1pbnV0ZXMoKTtcbiAgICAgIHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpO1xuICAgICAgLy8gVXBkYXRlIHRoZSBpbnB1dCB3aXRoIGZvcm1hdHRlZCBkYXRlXG4gICAgICBpbnB1dC52YWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmV2ZXJ0IHRvIHByZXZpb3VzIHZhbGlkIHZhbHVlIG9uIGJsdXIgaWYgcGFyc2luZyBmYWlsZWRcbiAgICAgIGlucHV0LnZhbHVlID0gdGhpcy5mb3JtYXREYXRlKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VNYW51YWxEYXRlKGlucHV0OiBzdHJpbmcpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKCFpbnB1dCkgcmV0dXJuIG51bGw7XG5cbiAgICAvLyBTcGxpdCBkYXRlIGFuZCB0aW1lIHBhcnRzIGlmIHByZXNlbnRcbiAgICBjb25zdCBwYXJ0cyA9IGlucHV0LnNwbGl0KCcgJyk7XG4gICAgbGV0IGRhdGVQYXJ0ID0gcGFydHNbMF07XG4gICAgbGV0IHRpbWVQYXJ0ID0gcGFydHNbMV0gfHwgJyc7XG5cbiAgICBsZXQgcGFyc2VkRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gVHJ5IGRpZmZlcmVudCBkYXRlIGZvcm1hdHNcbiAgICAvLyBGb3JtYXQgMTogWVlZWS1NTS1ERCAoSVNPLWxpa2UpXG4gICAgY29uc3QgaXNvTWF0Y2ggPSBkYXRlUGFydC5tYXRjaCgvXihcXGR7NH0pLShcXGR7MSwyfSktKFxcZHsxLDJ9KSQvKTtcbiAgICBpZiAoaXNvTWF0Y2gpIHtcbiAgICAgIGNvbnN0IFtfLCB5ZWFyLCBtb250aCwgZGF5XSA9IGlzb01hdGNoO1xuICAgICAgcGFyc2VkRGF0ZSA9IG5ldyBEYXRlKHBhcnNlSW50KHllYXIpLCBwYXJzZUludChtb250aCkgLSAxLCBwYXJzZUludChkYXkpKTtcbiAgICB9XG5cbiAgICAvLyBGb3JtYXQgMjogREQuTU0uWVlZWSAoRXVyb3BlYW4pXG4gICAgaWYgKCFwYXJzZWREYXRlKSB7XG4gICAgICBjb25zdCBldU1hdGNoID0gZGF0ZVBhcnQubWF0Y2goL14oXFxkezEsMn0pXFwuKFxcZHsxLDJ9KVxcLihcXGR7NH0pJC8pO1xuICAgICAgaWYgKGV1TWF0Y2gpIHtcbiAgICAgICAgY29uc3QgW18sIGRheSwgbW9udGgsIHllYXJdID0gZXVNYXRjaDtcbiAgICAgICAgcGFyc2VkRGF0ZSA9IG5ldyBEYXRlKHBhcnNlSW50KHllYXIpLCBwYXJzZUludChtb250aCkgLSAxLCBwYXJzZUludChkYXkpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGb3JtYXQgMzogTU0vREQvWVlZWSAoVVMpXG4gICAgaWYgKCFwYXJzZWREYXRlKSB7XG4gICAgICBjb25zdCB1c01hdGNoID0gZGF0ZVBhcnQubWF0Y2goL14oXFxkezEsMn0pXFwvKFxcZHsxLDJ9KVxcLyhcXGR7NH0pJC8pO1xuICAgICAgaWYgKHVzTWF0Y2gpIHtcbiAgICAgICAgY29uc3QgW18sIG1vbnRoLCBkYXksIHllYXJdID0gdXNNYXRjaDtcbiAgICAgICAgcGFyc2VkRGF0ZSA9IG5ldyBEYXRlKHBhcnNlSW50KHllYXIpLCBwYXJzZUludChtb250aCkgLSAxLCBwYXJzZUludChkYXkpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBubyBkYXRlIHdhcyBwYXJzZWQsIHJldHVybiBudWxsXG4gICAgaWYgKCFwYXJzZWREYXRlIHx8IGlzTmFOKHBhcnNlZERhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gUGFyc2UgdGltZSBpZiBwcmVzZW50IChISDpNTSBmb3JtYXQpXG4gICAgaWYgKHRpbWVQYXJ0KSB7XG4gICAgICBjb25zdCB0aW1lTWF0Y2ggPSB0aW1lUGFydC5tYXRjaCgvXihcXGR7MSwyfSk6KFxcZHsyfSkkLyk7XG4gICAgICBpZiAodGltZU1hdGNoKSB7XG4gICAgICAgIGNvbnN0IFtfLCBob3VycywgbWludXRlc10gPSB0aW1lTWF0Y2g7XG4gICAgICAgIHBhcnNlZERhdGUuc2V0SG91cnMocGFyc2VJbnQoaG91cnMpKTtcbiAgICAgICAgcGFyc2VkRGF0ZS5zZXRNaW51dGVzKHBhcnNlSW50KG1pbnV0ZXMpKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCF0aGlzLmVuYWJsZVRpbWUpIHtcbiAgICAgIC8vIElmIHRpbWUgaXMgbm90IGVuYWJsZWQgYW5kIG5vdCBwcm92aWRlZCwgdXNlIGN1cnJlbnQgdGltZVxuICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgIHBhcnNlZERhdGUuc2V0SG91cnMobm93LmdldEhvdXJzKCkpO1xuICAgICAgcGFyc2VkRGF0ZS5zZXRNaW51dGVzKG5vdy5nZXRNaW51dGVzKCkpO1xuICAgICAgcGFyc2VkRGF0ZS5zZXRTZWNvbmRzKDApO1xuICAgICAgcGFyc2VkRGF0ZS5zZXRNaWxsaXNlY29uZHMoMCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnNlZERhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgaWYgKCFpc05hTihkYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGRhdGU7XG4gICAgICAgICAgdGhpcy52aWV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRIb3VyID0gZGF0ZS5nZXRIb3VycygpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGUgPSBkYXRlLmdldE1pbnV0ZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIEludmFsaWQgZGF0ZVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsICJpbXBvcnQgeyBodG1sLCBjc3MsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICdAZGVzaWduLmVzdGF0ZS9kZWVzLXdjY3Rvb2xzL2RlbW90b29scyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtcGFuZWwvZGVlcy1wYW5lbC5qcyc7XG5pbXBvcnQgdHlwZSB7IERlZXNJbnB1dFRleHQgfSBmcm9tICcuLi9kZWVzLWlucHV0LXRleHQvZGVlcy1pbnB1dC10ZXh0LmpzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGBcbiAgPHN0eWxlPlxuICAgICR7Y3NzYFxuICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICBcbiAgICAgIGRlZXMtcGFuZWwge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuaG9yaXpvbnRhbC1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZ3JpZC1sYXlvdXQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5ncmlkLWxheW91dCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmludGVyYWN0aXZlLXNlY3Rpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUpJywgJ2hzbCgyMTUgMjAuMiUgMTYuOCUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5vdXRwdXQtdGV4dCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjMgMjUlIDI2LjclKScsICdoc2woMjEwIDQwJSA4MCUpJyl9O1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDQwJSA5OCUpJywgJ2hzbCgyMTUgMjAuMiUgMTEuOCUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7XG4gICAgICB9XG4gICAgYH1cbiAgPC9zdHlsZT5cbiAgXG4gIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRhaW5lclwiPlxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gRGVtb25zdHJhdGUgYmFzaWMgdGV4dCBpbnB1dCBmdW5jdGlvbmFsaXR5XG4gICAgICBjb25zdCBpbnB1dHMgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtaW5wdXQtdGV4dCcpO1xuICAgICAgXG4gICAgICBpbnB1dHMuZm9yRWFjaCgoaW5wdXQ6IERlZXNJbnB1dFRleHQpID0+IHtcbiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlU3ViamVjdCcsIChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgSW5wdXQgXCIke2lucHV0LmxhYmVsfVwiIGNoYW5nZWQgdG86YCwgaW5wdXQuZ2V0VmFsdWUoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgSW5wdXQgXCIke2lucHV0LmxhYmVsfVwiIGxvc3QgZm9jdXNgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gU2hvdyBwYXNzd29yZCB2aXNpYmlsaXR5IHRvZ2dsZVxuICAgICAgY29uc3QgcGFzc3dvcmRJbnB1dCA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT1cInBhc3N3b3JkXCJdJykgYXMgRGVlc0lucHV0VGV4dDtcbiAgICAgIGlmIChwYXNzd29yZElucHV0KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdQYXNzd29yZCBpbnB1dCBpbmNsdWRlcyB2aXNpYmlsaXR5IHRvZ2dsZScpO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0Jhc2ljIFRleHQgSW5wdXRzJ30gLnN1YnRpdGxlPSR7J1N0YW5kYXJkIHRleHQgaW5wdXRzIHdpdGggbGFiZWxzIGFuZCBkZXNjcmlwdGlvbnMnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBcbiAgICAgICAgICAubGFiZWw9JHsnVXNlcm5hbWUnfSBcbiAgICAgICAgICAudmFsdWU9JHsnam9obmRvZSd9XG4gICAgICAgICAgLmtleT0keyd1c2VybmFtZSd9XG4gICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLWlucHV0LXRleHQgXG4gICAgICAgICAgLmxhYmVsPSR7J0VtYWlsIEFkZHJlc3MnfSBcbiAgICAgICAgICAudmFsdWU9JHsnam9obkBleGFtcGxlLmNvbSd9IFxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydXZSB3aWxsIG5ldmVyIHNoYXJlIHlvdXIgZW1haWwgd2l0aCBhbnlvbmUnfVxuICAgICAgICAgIC5rZXk9JHsnZW1haWwnfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IFxuICAgICAgICAgIC5sYWJlbD0keydQYXNzd29yZCd9IFxuICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0ke3RydWV9IFxuICAgICAgICAgIC52YWx1ZT0keydzZWNyZXQxMjMnfVxuICAgICAgICAgIC5rZXk9JHsncGFzc3dvcmQnfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICAgIFxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gRGVtb25zdHJhdGUgaG9yaXpvbnRhbCBsYXlvdXQgYmVoYXZpb3JcbiAgICAgIGNvbnN0IGhvcml6b250YWxJbnB1dHMgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtaW5wdXQtdGV4dCcpO1xuICAgICAgXG4gICAgICAvLyBDaGVjayB0aGF0IGlucHV0cyBhcmUgcHJvcGVybHkgc3BhY2VkIGhvcml6b250YWxseVxuICAgICAgaG9yaXpvbnRhbElucHV0cy5mb3JFYWNoKChpbnB1dDogRGVlc0lucHV0VGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoaW5wdXQpO1xuICAgICAgICBjb25zb2xlLmxvZyhgSG9yaXpvbnRhbCBpbnB1dCBcIiR7aW5wdXQubGFiZWx9XCIgZGlzcGxheTpgLCBjb21wdXRlZFN0eWxlLmRpc3BsYXkpO1xuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIFRyYWNrIHZhbHVlIGNoYW5nZXNcbiAgICAgIGNvbnN0IGZpcnN0TmFtZUlucHV0ID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PVwiZmlyc3ROYW1lXCJdJyk7XG4gICAgICBjb25zdCBsYXN0TmFtZUlucHV0ID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PVwibGFzdE5hbWVcIl0nKTtcbiAgICAgIFxuICAgICAgaWYgKGZpcnN0TmFtZUlucHV0ICYmIGxhc3ROYW1lSW5wdXQpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlRnVsbE5hbWUgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlyc3ROYW1lID0gKGZpcnN0TmFtZUlucHV0IGFzIERlZXNJbnB1dFRleHQpLmdldFZhbHVlKCk7XG4gICAgICAgICAgY29uc3QgbGFzdE5hbWUgPSAobGFzdE5hbWVJbnB1dCBhcyBEZWVzSW5wdXRUZXh0KS5nZXRWYWx1ZSgpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBGdWxsIG5hbWU6ICR7Zmlyc3ROYW1lfSAke2xhc3ROYW1lfWApO1xuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgZmlyc3ROYW1lSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlU3ViamVjdCcsIHVwZGF0ZUZ1bGxOYW1lKTtcbiAgICAgICAgbGFzdE5hbWVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2VTdWJqZWN0JywgdXBkYXRlRnVsbE5hbWUpO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0hvcml6b250YWwgTGF5b3V0J30gLnN1YnRpdGxlPSR7J011bHRpcGxlIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgZm9ybXMnfT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtZ3JvdXBcIj5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IFxuICAgICAgICAgICAgLmxhYmVsPSR7J0ZpcnN0IE5hbWUnfSBcbiAgICAgICAgICAgIC52YWx1ZT0keydKb2huJ30gXG4gICAgICAgICAgICAubGF5b3V0TW9kZT0keydob3Jpem9udGFsJ31cbiAgICAgICAgICAgIC5rZXk9JHsnZmlyc3ROYW1lJ31cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBcbiAgICAgICAgICAgIC5sYWJlbD0keydMYXN0IE5hbWUnfSBcbiAgICAgICAgICAgIC52YWx1ZT0keydEb2UnfSBcbiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7J2hvcml6b250YWwnfVxuICAgICAgICAgICAgLmtleT0keydsYXN0TmFtZSd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgXG4gICAgICAgICAgICAubGFiZWw9JHsnQWdlJ30gXG4gICAgICAgICAgICAudmFsdWU9JHsnMjgnfSBcbiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7J2hvcml6b250YWwnfVxuICAgICAgICAgICAgLmtleT0keydhZ2UnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICAgIFxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gRGVtb25zdHJhdGUgZGlmZmVyZW50IGxhYmVsIHBvc2l0aW9uc1xuICAgICAgY29uc3QgaW5wdXRzID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWlucHV0LXRleHQnKTtcbiAgICAgIFxuICAgICAgaW5wdXRzLmZvckVhY2goKGlucHV0OiBEZWVzSW5wdXRUZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gaW5wdXQubGFiZWxQb3NpdGlvbjtcbiAgICAgICAgY29uc29sZS5sb2coYElucHV0IFwiJHtpbnB1dC5sYWJlbH1cIiBoYXMgbGFiZWwgcG9zaXRpb246ICR7cG9zaXRpb259YCk7XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gU2hvdyBob3cgbGFiZWwgcG9zaXRpb24gYWZmZWN0cyBsYXlvdXRcbiAgICAgIGNvbnN0IGxlZnRMYWJlbElucHV0cyA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1pbnB1dC10ZXh0W2xhYmVsUG9zaXRpb249XCJsZWZ0XCJdJyk7XG4gICAgICBpZiAobGVmdExhYmVsSW5wdXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coYCR7bGVmdExhYmVsSW5wdXRzLmxlbmd0aH0gaW5wdXRzIGhhdmUgbGVmdC1hbGlnbmVkIGxhYmVscyBmb3IgaW5saW5lIGxheW91dGApO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0xhYmVsIFBvc2l0aW9ucyd9IC5zdWJ0aXRsZT0keydEaWZmZXJlbnQgbGFiZWwgcG9zaXRpb25pbmcgb3B0aW9ucyBmb3IgdmFyaW91cyBsYXlvdXRzJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LXRleHQgXG4gICAgICAgICAgLmxhYmVsPSR7J0xhYmVsIG9uIFRvcCAoRGVmYXVsdCknfSBcbiAgICAgICAgICAudmFsdWU9JHsnU3RhbmRhcmQgbGF5b3V0J30gXG4gICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsndG9wJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBcbiAgICAgICAgICAubGFiZWw9JHsnTGFiZWwgb24gTGVmdCd9IFxuICAgICAgICAgIC52YWx1ZT0keydJbmxpbmUgbGFiZWwnfSBcbiAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keydsZWZ0J31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtbGF5b3V0XCI+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBcbiAgICAgICAgICAgIC5sYWJlbD0keydDaXR5J30gXG4gICAgICAgICAgICAudmFsdWU9JHsnTmV3IFlvcmsnfSBcbiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7J2xlZnQnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IFxuICAgICAgICAgICAgLmxhYmVsPSR7J1pJUCBDb2RlJ30gXG4gICAgICAgICAgICAudmFsdWU9JHsnMTAwMDEnfSBcbiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7J2xlZnQnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICAgIFxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gRGVtb25zdHJhdGUgdmFsaWRhdGlvbiBzdGF0ZXNcbiAgICAgIGNvbnN0IHJlcXVpcmVkSW5wdXQgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dFtyZXF1aXJlZF0nKSBhcyBEZWVzSW5wdXRUZXh0O1xuICAgICAgY29uc3QgZGlzYWJsZWRJbnB1dCA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2Rpc2FibGVkXScpIGFzIERlZXNJbnB1dFRleHQ7XG4gICAgICBjb25zdCBlcnJvcklucHV0ID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRbdmFsaWRhdGlvblN0YXRlPVwiaW52YWxpZFwiXScpIGFzIERlZXNJbnB1dFRleHQ7XG4gICAgICBcbiAgICAgIGlmIChyZXF1aXJlZElucHV0KSB7XG4gICAgICAgIC8vIFNob3cgdmFsaWRhdGlvbiBvbiBibHVyIGZvciBlbXB0eSByZXF1aXJlZCBmaWVsZFxuICAgICAgICByZXF1aXJlZElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB7XG4gICAgICAgICAgaWYgKCFyZXF1aXJlZElucHV0LmdldFZhbHVlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSZXF1aXJlZCBmaWVsZCBpcyBlbXB0eSEnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoZGlzYWJsZWRJbnB1dCkge1xuICAgICAgICBjb25zb2xlLmxvZygnRGlzYWJsZWQgaW5wdXQgY2Fubm90IGJlIGVkaXRlZCcpO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoZXJyb3JJbnB1dCkge1xuICAgICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW5wdXQgc2hvd3MgdmFsaWRhdGlvbiBtZXNzYWdlOicsIGVycm9ySW5wdXQudmFsaWRhdGlvblRleHQpO1xuICAgICAgICBcbiAgICAgICAgLy8gU2ltdWxhdGUgZml4aW5nIHRoZSBlcnJvclxuICAgICAgICBlcnJvcklucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZVN1YmplY3QnLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBlcnJvcklucHV0LmdldFZhbHVlKCk7XG4gICAgICAgICAgaWYgKHZhbHVlLmluY2x1ZGVzKCdAJykgJiYgdmFsdWUuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICAgICAgZXJyb3JJbnB1dC52YWxpZGF0aW9uU3RhdGUgPSAndmFsaWQnO1xuICAgICAgICAgICAgZXJyb3JJbnB1dC52YWxpZGF0aW9uVGV4dCA9ICcnO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0VtYWlsIHZhbGlkYXRpb24gcGFzc2VkIScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfX0+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnVmFsaWRhdGlvbiAmIFN0YXRlcyd9IC5zdWJ0aXRsZT0keydEaWZmZXJlbnQgdmFsaWRhdGlvbiBzdGF0ZXMgYW5kIGlucHV0IGNvbmZpZ3VyYXRpb25zJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LXRleHQgXG4gICAgICAgICAgLmxhYmVsPSR7J1JlcXVpcmVkIEZpZWxkJ30gXG4gICAgICAgICAgLnJlcXVpcmVkPSR7dHJ1ZX1cbiAgICAgICAgICAua2V5PSR7J3JlcXVpcmVkRmllbGQnfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IFxuICAgICAgICAgIC5sYWJlbD0keydEaXNhYmxlZCBGaWVsZCd9IFxuICAgICAgICAgIC52YWx1ZT0keydDYW5ub3QgZWRpdCB0aGlzJ30gXG4gICAgICAgICAgLmRpc2FibGVkPSR7dHJ1ZX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBcbiAgICAgICAgICAubGFiZWw9JHsnRmllbGQgd2l0aCBFcnJvcid9IFxuICAgICAgICAgIC52YWx1ZT0keydpbnZhbGlkQCd9IFxuICAgICAgICAgIC52YWxpZGF0aW9uVGV4dD0keydQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJ31cbiAgICAgICAgICAudmFsaWRhdGlvblN0YXRlPSR7J2ludmFsaWQnfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICAgIFxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gVHJhY2sgcGFzc3dvcmQgdmlzaWJpbGl0eSB0b2dnbGVzXG4gICAgICBjb25zdCBwYXNzd29yZElucHV0cyA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1pbnB1dC10ZXh0W2lzUGFzc3dvcmRCb29sXScpO1xuICAgICAgXG4gICAgICBwYXNzd29yZElucHV0cy5mb3JFYWNoKChpbnB1dDogRGVlc0lucHV0VGV4dCkgPT4ge1xuICAgICAgICAvLyBNb25pdG9yIGZvciB0b2dnbGUgYnV0dG9uIGNsaWNrcyB3aXRoaW4gc2hhZG93IERPTVxuICAgICAgICBjb25zdCBjaGVja1RvZ2dsZSA9ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBpbnB1dEVsID0gaW5wdXQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICAgICAgICBpZiAoaW5wdXRFbCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFBhc3N3b3JkIGZpZWxkIFwiJHtpbnB1dC5sYWJlbH1cIiB0eXBlOmAsIGlucHV0RWwudHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgLy8gVXNlIE11dGF0aW9uT2JzZXJ2ZXIgdG8gZGV0ZWN0IGNoYW5nZXNcbiAgICAgICAgaWYgKGlucHV0LnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNoZWNrVG9nZ2xlKTtcbiAgICAgICAgICBjb25zdCBpbnB1dEVsID0gaW5wdXQuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICAgIGlmIChpbnB1dEVsKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGlucHV0RWwsIHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbJ3R5cGUnXSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0FkdmFuY2VkIEZlYXR1cmVzJ30gLnN1YnRpdGxlPSR7J1Bhc3N3b3JkIHZpc2liaWxpdHkgdG9nZ2xlIGFuZCBvdGhlciBhZHZhbmNlZCBmZWF0dXJlcyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IFxuICAgICAgICAgIC5sYWJlbD0keydQYXNzd29yZCB3aXRoIFRvZ2dsZSd9IFxuICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0ke3RydWV9XG4gICAgICAgICAgLnZhbHVlPSR7J215U2VjdXJlUGFzc3dvcmQxMjMnfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydDbGljayB0aGUgZXllIGljb24gdG8gc2hvdy9oaWRlIHBhc3N3b3JkJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBcbiAgICAgICAgICAubGFiZWw9JHsnQVBJIEtleSd9IFxuICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0ke3RydWV9XG4gICAgICAgICAgLnZhbHVlPSR7J3NrLTEyMzQ1Njc4OTBhYmNkZWYnfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydLZWVwIHRoaXMga2V5IHNlY3VyZSBhbmQgbmV2ZXIgc2hhcmUgaXQnfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICAgIFxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gU2V0IHVwIGludGVyYWN0aXZlIGV4YW1wbGVcbiAgICAgIGNvbnN0IGR5bmFtaWNJbnB1dCA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0Jyk7XG4gICAgICBjb25zdCBvdXRwdXQgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJyN0ZXh0LWlucHV0LW91dHB1dCcpO1xuICAgICAgXG4gICAgICBpZiAoZHluYW1pY0lucHV0ICYmIG91dHB1dCkge1xuICAgICAgICAvLyBVcGRhdGUgb3V0cHV0IG9uIGV2ZXJ5IGNoYW5nZVxuICAgICAgICBkeW5hbWljSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlU3ViamVjdCcsIChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC5kZXRhaWwgYXMgRGVlc0lucHV0VGV4dCkuZ2V0VmFsdWUoKTtcbiAgICAgICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSBgQ3VycmVudCB2YWx1ZTogXCIke3ZhbHVlfVwiYDtcbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBBbHNvIHRyYWNrIGZvY3VzL2JsdXIgZXZlbnRzXG4gICAgICAgIGR5bmFtaWNJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnSW5wdXQgZm9jdXNlZCcpO1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIGR5bmFtaWNJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdJbnB1dCBibHVycmVkJyk7XG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgLy8gVHJhY2sga2V5cHJlc3MgZXZlbnRzXG4gICAgICAgIGxldCBrZXlwcmVzc0NvdW50ID0gMDtcbiAgICAgICAgZHluYW1pY0lucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoKSA9PiB7XG4gICAgICAgICAga2V5cHJlc3NDb3VudCsrO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBLZXlwcmVzcyBjb3VudDogJHtrZXlwcmVzc0NvdW50fWApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydJbnRlcmFjdGl2ZSBFeGFtcGxlJ30gLnN1YnRpdGxlPSR7J1RyeSB0eXBpbmcgaW4gdGhlIGlucHV0cyB0byBzZWUgcmVhbC10aW1lIHZhbHVlIGNoYW5nZXMnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBcbiAgICAgICAgICAubGFiZWw9JHsnRHluYW1pYyBJbnB1dCd9IFxuICAgICAgICAgIC5wbGFjZWhvbGRlcj0keydUeXBlIHNvbWV0aGluZyBoZXJlLi4uJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cImludGVyYWN0aXZlLXNlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGlkPVwidGV4dC1pbnB1dC1vdXRwdXRcIiBjbGFzcz1cIm91dHB1dC10ZXh0XCI+Q3VycmVudCB2YWx1ZTogXCJcIjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+XG4gIDwvZGl2PlxuYDsiLCAiaW1wb3J0ICogYXMgY29sb3JzIGZyb20gJy4uLy4uLzAwY29sb3JzLmpzJztcbmltcG9ydCB7IERlZXNJbnB1dEJhc2UgfSBmcm9tICcuLi9kZWVzLWlucHV0LWJhc2UvZGVlcy1pbnB1dC1iYXNlLmpzJztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLWlucHV0LXRleHQuZGVtby5qcyc7XG5pbXBvcnQgeyBjc3NHZWlzdEZvbnRGYW1pbHksIGNzc01vbm9Gb250RmFtaWx5IH0gZnJvbSAnLi4vLi4vMDBmb250cy5qcyc7XG5cbmltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHByb3BlcnR5LFxuICBodG1sLFxuICBjc3NNYW5hZ2VyLFxuICBjc3MsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1pbnB1dC10ZXh0JzogRGVlc0lucHV0VGV4dDtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1pbnB1dC10ZXh0JylcbmV4cG9ydCBjbGFzcyBEZWVzSW5wdXRUZXh0IGV4dGVuZHMgRGVlc0lucHV0QmFzZSB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdJbnB1dCc7XG5cbiAgLy8gSU5TVEFOQ0VcbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgcmVmbGVjdDogdHJ1ZSxcbiAgfSlcbiAgYWNjZXNzb3IgdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICByZWZsZWN0OiB0cnVlLFxuICB9KVxuICBhY2Nlc3NvciBpc1Bhc3N3b3JkQm9vbCA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICByZWZsZWN0OiB0cnVlLFxuICB9KVxuICBhY2Nlc3NvciBzaG93UGFzc3dvcmRCb29sID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIHJlZmxlY3Q6IHRydWUsXG4gIH0pXG4gIGFjY2Vzc29yIHZhbGlkYXRpb25TdGF0ZTogJ3ZhbGlkJyB8ICd3YXJuJyB8ICdpbnZhbGlkJztcblxuICBAcHJvcGVydHkoe1xuICAgIHJlZmxlY3Q6IHRydWUsXG4gIH0pXG4gIGFjY2Vzc29yIHZhbGlkYXRpb25UZXh0OiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoe30pXG4gIGFjY2Vzc29yIHZhbGlkYXRpb25GdW5jdGlvbjogKHZhbHVlOiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIC4uLkRlZXNJbnB1dEJhc2UuYmFzZVN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgICoge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgfVxuXG4gICAgICA6aG9zdCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogYXV0bztcbiAgICAgICAgZm9udC1mYW1pbHk6ICR7Y3NzR2Vpc3RGb250RmFtaWx5fTtcbiAgICAgIH1cblxuICAgICAgLm1haW5jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTUlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICBpbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDklKScpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAzLjklKScsICdoc2woMCAwJSA5OCUpJyl9O1xuICAgICAgfVxuXG4gICAgICBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1LjElKScsICdoc2woMCAwJSA2My45JSknKX07XG4gICAgICB9XG5cbiAgICAgIGlucHV0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdCg6Zm9jdXMpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNzkuOCUpJywgJ2hzbCgwIDAlIDIwLjklKScpfTtcbiAgICAgIH1cblxuICAgICAgaW5wdXQ6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTglKScpfTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSAvIDAuMDUpJywgJ2hzbCgwIDAlIDk4JSAvIDAuMDUpJyl9O1xuICAgICAgfVxuXG4gICAgICBpbnB1dDpkaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NS4xJSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1LjElKScsICdoc2woMCAwJSA2My45JSknKX07XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIH1cblxuICAgICAgLyogUGFzc3dvcmQgdG9nZ2xlIGJ1dHRvbiAqL1xuICAgICAgLnNob3dQYXNzd29yZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDFweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAzOHB4O1xuICAgICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA0NS4xJSknLCAnaHNsKDAgMCUgNjMuOSUpJyl9O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA1cHggNXB4IDA7XG4gICAgICB9XG5cbiAgICAgIC5zaG93UGFzc3dvcmQ6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUuMSUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxNSUpJywgJ2hzbCgwIDAlIDkzLjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi9cbiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLnZhbGlkYXRpb25Db250YWluZXIuZXJyb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgODQuMiUgNjAuMiUgLyAwLjEpJywgJ2hzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCA4NC4yJSA2MC4yJSknLCAnaHNsKDAgNzIuMiUgNTAuNiUpJyl9O1xuICAgICAgfVxuXG4gICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci53YXJuIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyNSA5NSUgNTMlIC8gMC4xKScsICdoc2woMjUgOTUlIDYzJSAvIDAuMSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDI1IDk1JSA1MyUpJywgJ2hzbCgyNSA5NSUgNjMlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnZhbGlkYXRpb25Db250YWluZXIudmFsaWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKScsICdoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknLCAnaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogRXJyb3Igc3RhdGUgZm9yIGlucHV0ICovXG4gICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT1cImludmFsaWRcIl0pIGlucHV0IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgODQuMiUgNjAuMiUpJywgJ2hzbCgwIDcyLjIlIDUwLjYlKScpfTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW3ZhbGlkYXRpb24tc3RhdGU9XCJpbnZhbGlkXCJdKSBpbnB1dDpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDg0LjIlIDYwLjIlKScsICdoc2woMCA3Mi4yJSA1MC42JSknKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgODQuMiUgNjAuMiUgLyAwLjA1KScsICdoc2woMCA3Mi4yJSA1MC42JSAvIDAuMDUpJyl9O1xuICAgICAgfVxuXG4gICAgICAvKiBXYXJuaW5nIHN0YXRlIGZvciBpbnB1dCAqL1xuICAgICAgOmhvc3QoW3ZhbGlkYXRpb24tc3RhdGU9XCJ3YXJuXCJdKSBpbnB1dCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyNSA5NSUgNTMlKScsICdoc2woMjUgOTUlIDYzJSknKX07XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFt2YWxpZGF0aW9uLXN0YXRlPVwid2FyblwiXSkgaW5wdXQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjUgOTUlIDUzJSknLCAnaHNsKDI1IDk1JSA2MyUpJyl9O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyNSA5NSUgNTMlIC8gMC4wNSknLCAnaHNsKDI1IDk1JSA2MyUgLyAwLjA1KScpfTtcbiAgICAgIH1cblxuICAgICAgLyogVmFsaWQgc3RhdGUgZm9yIGlucHV0ICovXG4gICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT1cInZhbGlkXCJdKSBpbnB1dCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknLCAnaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKScpfTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW3ZhbGlkYXRpb24tc3RhdGU9XCJ2YWxpZFwiXSkgaW5wdXQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJywgJ2hzbCgxNDIuMSA3MC42JSA0NS4zJSknKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4wNSknLCAnaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4wNSknKX07XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzdHlsZT5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAke3RoaXMuaXNQYXNzd29yZEJvb2wgPyBjc3NNb25vRm9udEZhbWlseSA6ICdpbmhlcml0J307XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICR7dGhpcy5pc1Bhc3N3b3JkQm9vbCA/ICcwLjVweCcgOiAnbm9ybWFsJ307XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogJHt0aGlzLmlzUGFzc3dvcmRCb29sID8gJzQ4cHgnIDogJzEycHgnfTtcbiAgICAgICAgfVxuICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHRcbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgLnZhbGlkYXRpb25Db250YWluZXIge1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgYFxuICAgICAgICAgIDogY3NzYFxuICAgICAgICAgICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgYH1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluY29udGFpbmVyXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiJHt0aGlzLmlzUGFzc3dvcmRCb29sICYmICF0aGlzLnNob3dQYXNzd29yZEJvb2wgPyAncGFzc3dvcmQnIDogJ3RleHQnfVwiXG4gICAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfVxuICAgICAgICAgICAgQGlucHV0PVwiJHt0aGlzLnVwZGF0ZVZhbHVlfVwiXG4gICAgICAgICAgICAuZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIke3RoaXMubGFiZWwgPyAnJyA6ICdFbnRlciB0ZXh0Li4uJ31cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgJHt0aGlzLmlzUGFzc3dvcmRCb29sXG4gICAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNob3dQYXNzd29yZFwiIEBjbGljaz0ke3RoaXMudG9nZ2xlUGFzc3dvcmRWaWV3fT5cbiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLnNob3dQYXNzd29yZEJvb2wgPyAnbHVjaWRlOkV5ZScgOiAnbHVjaWRlOkV5ZU9mZid9PjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICBgXG4gICAgICAgICAgICA6IGh0bWxgYH1cbiAgICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHRcbiAgICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsaWRhdGlvbkNvbnRhaW5lciAke3RoaXMudmFsaWRhdGlvblN0YXRlIHx8ICdlcnJvcid9XCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHR9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIGBcbiAgICAgICAgICAgIDogaHRtbGA8ZGl2IGNsYXNzPVwidmFsaWRhdGlvbkNvbnRhaW5lclwiPjwvZGl2PmB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIGZpcnN0VXBkYXRlZCgpIHtcbiAgICAvLyBJbnB1dCBldmVudCBoYW5kbGluZyBpcyBhbHJlYWR5IGRvbmUgaW4gdXBkYXRlVmFsdWUgbWV0aG9kXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlVmFsdWUoZXZlbnRBcmc6IEV2ZW50KSB7XG4gICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBldmVudEFyZy50YXJnZXQ7XG4gICAgdGhpcy52YWx1ZSA9IHRhcmdldC52YWx1ZTtcbiAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdG9nZ2xlUGFzc3dvcmRWaWV3KCkge1xuICAgIHRoaXMuc2hvd1Bhc3N3b3JkQm9vbCA9ICF0aGlzLnNob3dQYXNzd29yZEJvb2w7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZm9jdXMoKSB7XG4gICAgY29uc3QgdGV4dElucHV0ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gICAgdGV4dElucHV0LmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYmx1cigpIHtcbiAgICBjb25zdCB0ZXh0SW5wdXQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICB0ZXh0SW5wdXQuYmx1cigpO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgaHRtbCwgY3NzLCBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAnQGRlc2lnbi5lc3RhdGUvZGVlcy13Y2N0b29scy9kZW1vdG9vbHMnO1xuaW1wb3J0ICcuLi9kZWVzLXBhbmVsL2RlZXMtcGFuZWwuanMnO1xuaW1wb3J0IHR5cGUgeyBEZWVzU2hvcHBpbmdQcm9kdWN0Y2FyZCB9IGZyb20gJy4uL2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZC5qcyc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG4gIDxkZWVzLWRlbW93cmFwcGVyPlxuICAgIDxzdHlsZT5cbiAgICAgICR7Y3NzYFxuICAgICAgICAuZGVtby1jb250YWluZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnByb2R1Y3QtZ3JpZCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyODBweCwgMWZyKSk7XG4gICAgICAgICAgZ2FwOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtc3VtbWFyeSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDQwJSA5Ni4xJSknLCAnaHNsKDIxNSAyMC4yJSAxNi44JSknKX07XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTQuMyAzMS44JSA5MS40JSknLCAnaHNsKDIxNSAyMC4yJSAyMS44JSknKX07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtc3VtbWFyeS10aXRsZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDklKScsICdoc2woMCAwJSA5NSUpJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtaXRlbSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjMgMjUlIDI2LjclKScsICdoc2woMjE3LjkgMTAuNiUgNzQuOSUpJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtdG90YWwge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTUlKScpfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3RlZC1wcm9kdWN0cyB7XG4gICAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUpJywgJ2hzbCgyMTUgMjAuMiUgMTYuOCUpJyl9O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjMgMjUlIDI2LjclKScsICdoc2woMjE3LjkgMTAuNiUgNzQuOSUpJyl9O1xuICAgICAgICB9XG4gICAgICBgfVxuICAgIDwvc3R5bGU+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnQmFzaWMgUHJvZHVjdCBDYXJkcyd9IC5zdWJ0aXRsZT0keydTaW1wbGUgcHJvZHVjdCBkaXNwbGF5IHdpdGggdmFyaW91cyBjb25maWd1cmF0aW9ucyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1ncmlkXCI+XG4gICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRcbiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tcbiAgICAgICAgICAgICAgbmFtZTogJ1dpcmVsZXNzIEJsdWV0b290aCBIZWFkcGhvbmVzJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdBdWRpbycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUHJlbWl1bSBzb3VuZCBxdWFsaXR5IHdpdGggYWN0aXZlIG5vaXNlIGNhbmNlbGxhdGlvbicsXG4gICAgICAgICAgICAgIHByaWNlOiAxNDkuOTksXG4gICAgICAgICAgICAgIG9yaWdpbmFsUHJpY2U6IDE5OS45OSxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aGVhZHBob25lcydcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAucXVhbnRpdHk9JHsxfVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG5cbiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFxuICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e1xuICAgICAgICAgICAgICBuYW1lOiAnU21hcnQgV2F0Y2ggU2VyaWVzIDcnLFxuICAgICAgICAgICAgICBjYXRlZ29yeTogJ1dlYXJhYmxlcycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVHJhY2sgeW91ciBmaXRuZXNzIGFuZCBzdGF5IGNvbm5lY3RlZCBvbiB0aGUgZ28nLFxuICAgICAgICAgICAgICBwcmljZTogMzk5LjAwLFxuICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTp3YXRjaCdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAucXVhbnRpdHk9JHsxfVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG5cbiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFxuICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e1xuICAgICAgICAgICAgICBuYW1lOiAnVVNCLUMgSHViJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdBY2Nlc3NvcmllcycsXG4gICAgICAgICAgICAgIHByaWNlOiA0OS45OSxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6dXNiJyxcbiAgICAgICAgICAgICAgaW5TdG9jazogZmFsc2VcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAucXVhbnRpdHk9JHswfVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnSW50ZXJhY3RpdmUgU2hvcHBpbmcgQ2FydCd9IC5zdWJ0aXRsZT0keydQcm9kdWN0IGNhcmRzIHdpdGggZHluYW1pYyBjYXJ0IGNhbGN1bGF0aW9uJ30gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKGVsZW1lbnRBcmc6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb2R1Y3RzID0gW1xuICAgICAgICAgIHsgaWQ6ICdsYXB0b3AnLCBlbGVtZW50OiBudWxsLCBkYXRhOiB7IG5hbWU6ICdNYWNCb29rIFBybyAxNFwiJywgY2F0ZWdvcnk6ICdDb21wdXRlcnMnLCBkZXNjcmlwdGlvbjogJ00zIFBybyBjaGlwIHdpdGggMThHQiBSQU0nLCBwcmljZTogMTk5OSwgb3JpZ2luYWxQcmljZTogMjE5OSwgaWNvbk5hbWU6ICdsdWNpZGU6bGFwdG9wJyB9fSxcbiAgICAgICAgICB7IGlkOiAnaXBhZCcsIGVsZW1lbnQ6IG51bGwsIGRhdGE6IHsgbmFtZTogJ2lQYWQgQWlyJywgY2F0ZWdvcnk6ICdUYWJsZXRzJywgZGVzY3JpcHRpb246ICcxMC45XCIgTGlxdWlkIFJldGluYSBkaXNwbGF5JywgcHJpY2U6IDU5OSwgaWNvbk5hbWU6ICdsdWNpZGU6dGFibGV0JyB9fSxcbiAgICAgICAgICB7IGlkOiAna2V5Ym9hcmQnLCBlbGVtZW50OiBudWxsLCBkYXRhOiB7IG5hbWU6ICdNYWdpYyBLZXlib2FyZCcsIGNhdGVnb3J5OiAnQWNjZXNzb3JpZXMnLCBkZXNjcmlwdGlvbjogJ1dpcmVsZXNzIGtleWJvYXJkIHdpdGggVG91Y2ggSUQnLCBwcmljZTogMTQ5LCBpY29uTmFtZTogJ2x1Y2lkZTprZXlib2FyZCcgfX1cbiAgICAgICAgXTtcblxuICAgICAgICBjb25zdCB1cGRhdGVDYXJ0U3VtbWFyeSA9ICgpID0+IHtcbiAgICAgICAgICBsZXQgdG90YWwgPSAwO1xuICAgICAgICAgIGNvbnN0IGl0ZW1zID0gW107XG4gICAgICAgICAgXG4gICAgICAgICAgcHJvZHVjdHMuZm9yRWFjaChwcm9kdWN0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoYCMke3Byb2R1Y3QuaWR9YCkgYXMgRGVlc1Nob3BwaW5nUHJvZHVjdGNhcmQ7XG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LnF1YW50aXR5ID4gMCkge1xuICAgICAgICAgICAgICBjb25zdCBzdWJ0b3RhbCA9IHByb2R1Y3QuZGF0YS5wcmljZSAqIGVsZW1lbnQucXVhbnRpdHk7XG4gICAgICAgICAgICAgIHRvdGFsICs9IHN1YnRvdGFsO1xuICAgICAgICAgICAgICBpdGVtcy5wdXNoKGBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FydC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj4ke3Byb2R1Y3QuZGF0YS5uYW1lfSAoJHtlbGVtZW50LnF1YW50aXR5fSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj4kJHtzdWJ0b3RhbC50b0ZpeGVkKDIpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgXG4gICAgICAgICAgY29uc3Qgc3VtbWFyeSA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignI2ludGVyYWN0aXZlLWNhcnQtc3VtbWFyeScpO1xuICAgICAgICAgIGlmIChzdW1tYXJ5KSB7XG4gICAgICAgICAgICBzdW1tYXJ5LmlubmVySFRNTCA9IGBcbiAgICAgICAgICAgICAgJHtpdGVtcy5qb2luKCcnKX1cbiAgICAgICAgICAgICAgJHtpdGVtcy5sZW5ndGggPT09IDAgPyAnPGRpdiBjbGFzcz1cImNhcnQtaXRlbVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzk5OTtcIj5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4nIDogJyd9XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXRvdGFsXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+VG90YWw8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+JCR7dG90YWwudG9GaXhlZCgyKX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYDtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBJbml0aWFsIHVwZGF0ZVxuICAgICAgICBzZXRUaW1lb3V0KHVwZGF0ZUNhcnRTdW1tYXJ5LCAxMDApO1xuICAgICAgICBcbiAgICAgICAgLy8gU2V0IHVwIGxpc3RlbmVyc1xuICAgICAgICBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQnKS5mb3JFYWNoKGNhcmQgPT4ge1xuICAgICAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcigncXVhbnRpdHlDaGFuZ2UnLCB1cGRhdGVDYXJ0U3VtbWFyeSk7XG4gICAgICAgIH0pO1xuICAgICAgfX0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWdyaWRcIj5cbiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFxuICAgICAgICAgICAgaWQ9XCJsYXB0b3BcIlxuICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e1xuICAgICAgICAgICAgICBuYW1lOiAnTWFjQm9vayBQcm8gMTRcIicsXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiAnQ29tcHV0ZXJzJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdNMyBQcm8gY2hpcCB3aXRoIDE4R0IgUkFNJyxcbiAgICAgICAgICAgICAgcHJpY2U6IDE5OTksXG4gICAgICAgICAgICAgIG9yaWdpbmFsUHJpY2U6IDIxOTksXG4gICAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmxhcHRvcCdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAucXVhbnRpdHk9JHsxfVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG5cbiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFxuICAgICAgICAgICAgaWQ9XCJpcGFkXCJcbiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tcbiAgICAgICAgICAgICAgbmFtZTogJ2lQYWQgQWlyJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdUYWJsZXRzJywgXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnMTAuOVwiIExpcXVpZCBSZXRpbmEgZGlzcGxheScsXG4gICAgICAgICAgICAgIHByaWNlOiA1OTksXG4gICAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnRhYmxldCdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAucXVhbnRpdHk9JHswfVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG5cbiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFxuICAgICAgICAgICAgaWQ9XCJrZXlib2FyZFwiXG4gICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7XG4gICAgICAgICAgICAgIG5hbWU6ICdNYWdpYyBLZXlib2FyZCcsXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiAnQWNjZXNzb3JpZXMnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1dpcmVsZXNzIGtleWJvYXJkIHdpdGggVG91Y2ggSUQnLFxuICAgICAgICAgICAgICBwcmljZTogMTQ5LFxuICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTprZXlib2FyZCdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAucXVhbnRpdHk9JHsyfVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXN1bW1hcnlcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJ0LXN1bW1hcnktdGl0bGVcIj5TaG9wcGluZyBDYXJ0PC9oMz5cbiAgICAgICAgICA8ZGl2IGlkPVwiaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5XCI+XG4gICAgICAgICAgICA8IS0tIER5bmFtaWNhbGx5IHVwZGF0ZWQgLS0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnU2VsZWN0YWJsZSBQcm9kdWN0IENhcmRzJ30gLnN1YnRpdGxlPSR7J0NsaWNrIGNhcmRzIG9yIGNoZWNrYm94ZXMgdG8gc2VsZWN0IHByb2R1Y3RzJ30+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWdyaWRcIj5cbiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFxuICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e1xuICAgICAgICAgICAgICBuYW1lOiAnU29ueSBBbHBoYSA3IElWJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdDYW1lcmFzJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdGdWxsLWZyYW1lIG1pcnJvcmxlc3MgY2FtZXJhJyxcbiAgICAgICAgICAgICAgcHJpY2U6IDI0OTgsXG4gICAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmNhbWVyYSdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAuc2VsZWN0YWJsZT0ke3RydWV9XG4gICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHtmYWxzZX1cbiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHsoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3NlbGVjdGlvbi1vdXRwdXQnKTtcbiAgICAgICAgICAgICAgaWYgKG91dHB1dCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdJyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQcm9kdWN0cyA9IFtdO1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2FyZHMuZm9yRWFjaCgoY2FyZDogRGVlc1Nob3BwaW5nUHJvZHVjdGNhcmQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChjYXJkLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUHJvZHVjdHMucHVzaChjYXJkLnByb2R1Y3REYXRhLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9IHNlbGVjdGVkUHJvZHVjdHMubGVuZ3RoID4gMCBcbiAgICAgICAgICAgICAgICAgID8gYFNlbGVjdGVkOiAke3NlbGVjdGVkUHJvZHVjdHMuam9pbignLCAnKX1gIFxuICAgICAgICAgICAgICAgICAgOiAnTm8gcHJvZHVjdHMgc2VsZWN0ZWQnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG5cbiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFxuICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e1xuICAgICAgICAgICAgICBuYW1lOiAnREpJIE1pbmkgMyBQcm8nLFxuICAgICAgICAgICAgICBjYXRlZ29yeTogJ0Ryb25lcycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTGlnaHR3ZWlnaHQgZHJvbmUgd2l0aCA0SyBjYW1lcmEnLFxuICAgICAgICAgICAgICBwcmljZTogNzU5LFxuICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpwbGFuZSdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAuc2VsZWN0YWJsZT0ke3RydWV9XG4gICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHtmYWxzZX1cbiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHsoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3NlbGVjdGlvbi1vdXRwdXQnKTtcbiAgICAgICAgICAgICAgaWYgKG91dHB1dCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdJyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQcm9kdWN0cyA9IFtdO1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2FyZHMuZm9yRWFjaCgoY2FyZDogRGVlc1Nob3BwaW5nUHJvZHVjdGNhcmQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChjYXJkLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUHJvZHVjdHMucHVzaChjYXJkLnByb2R1Y3REYXRhLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9IHNlbGVjdGVkUHJvZHVjdHMubGVuZ3RoID4gMCBcbiAgICAgICAgICAgICAgICAgID8gYFNlbGVjdGVkOiAke3NlbGVjdGVkUHJvZHVjdHMuam9pbignLCAnKX1gIFxuICAgICAgICAgICAgICAgICAgOiAnTm8gcHJvZHVjdHMgc2VsZWN0ZWQnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG5cbiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFxuICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e1xuICAgICAgICAgICAgICBuYW1lOiAnR29Qcm8gSEVSTzEyJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdBY3Rpb24gQ2FtZXJhcycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnNS4zSyB2aWRlbyB3aXRoIEh5cGVyU21vb3RoIDYuMCcsXG4gICAgICAgICAgICAgIHByaWNlOiAzOTksXG4gICAgICAgICAgICAgIG9yaWdpbmFsUHJpY2U6IDQ0OSxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6dmlkZW8nXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgLnNlbGVjdGFibGU9JHt0cnVlfVxuICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ZmFsc2V9XG4gICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzZWxlY3Rpb24tb3V0cHV0Jyk7XG4gICAgICAgICAgICAgIGlmIChvdXRwdXQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZENhcmRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXScpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUHJvZHVjdHMgPSBbXTtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZENhcmRzLmZvckVhY2goKGNhcmQ6IERlZXNTaG9wcGluZ1Byb2R1Y3RjYXJkKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoY2FyZC5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFByb2R1Y3RzLnB1c2goY2FyZC5wcm9kdWN0RGF0YS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSBzZWxlY3RlZFByb2R1Y3RzLmxlbmd0aCA+IDAgXG4gICAgICAgICAgICAgICAgICA/IGBTZWxlY3RlZDogJHtzZWxlY3RlZFByb2R1Y3RzLmpvaW4oJywgJyl9YCBcbiAgICAgICAgICAgICAgICAgIDogJ05vIHByb2R1Y3RzIHNlbGVjdGVkJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZC1wcm9kdWN0c1wiIGlkPVwic2VsZWN0aW9uLW91dHB1dFwiIHN0eWxlPVwibWFyZ2luLXRvcDogMTZweDtcIj5cbiAgICAgICAgICBObyBwcm9kdWN0cyBzZWxlY3RlZFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J1Byb2R1Y3QgVmFyaWF0aW9ucyd9IC5zdWJ0aXRsZT0keydEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1ncmlkXCI+XG4gICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRcbiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tcbiAgICAgICAgICAgICAgbmFtZTogJ0xpbWl0ZWQgRWRpdGlvbiBTbmVha2VycycsXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiAnRm9vdHdlYXInLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0V4Y2x1c2l2ZSBjb2xvcndheSAtIE9ubHkgNTAwIHBhaXJzJyxcbiAgICAgICAgICAgICAgcHJpY2U6IDI5OSxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Zm9vdHByaW50cycsXG4gICAgICAgICAgICAgIGluU3RvY2s6IGZhbHNlLFxuICAgICAgICAgICAgICBzdG9ja1RleHQ6ICdTb2xkIE91dCdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAucXVhbnRpdHk9JHswfVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG5cbiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFxuICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e1xuICAgICAgICAgICAgICBuYW1lOiAnTWluaW1hbGlzdCBXYWxsZXQnLFxuICAgICAgICAgICAgICBwcmljZTogMzkuOTksXG4gICAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOndhbGxldCdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAucXVhbnRpdHk9JHsxfVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG5cbiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFxuICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e1xuICAgICAgICAgICAgICBuYW1lOiAnUHJlbWl1bSBDb2ZmZWUgQmVhbnMnLFxuICAgICAgICAgICAgICBjYXRlZ29yeTogJ0Zvb2QgJiBCZXZlcmFnZScsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2luZ2xlIG9yaWdpbiwgbWVkaXVtIHJvYXN0JyxcbiAgICAgICAgICAgICAgcHJpY2U6IDE4LjUwLFxuICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpjb2ZmZWUnLFxuICAgICAgICAgICAgICBjdXJyZW5jeTogJ1x1MjBBQydcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAucXVhbnRpdHk9JHsyfVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGl2PlxuICA8L2RlZXMtZGVtb3dyYXBwZXI+XG5gOyIsICJpbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICBwcm9wZXJ0eSxcbiAgaHRtbCxcbiAgY3NzLFxuICBjc3NNYW5hZ2VyLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBEZWVzRWxlbWVudCxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkLmRlbW8uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQnOiBEZWVzU2hvcHBpbmdQcm9kdWN0Y2FyZDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9kdWN0RGF0YSB7XG4gIG5hbWU6IHN0cmluZztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwcmljZTogbnVtYmVyO1xuICBvcmlnaW5hbFByaWNlPzogbnVtYmVyO1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgaW5TdG9jaz86IGJvb2xlYW47XG4gIHN0b2NrVGV4dD86IHN0cmluZztcbiAgaW1hZ2VVcmw/OiBzdHJpbmc7XG4gIGljb25OYW1lPzogc3RyaW5nO1xufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCcpXG5leHBvcnQgY2xhc3MgRGVlc1Nob3BwaW5nUHJvZHVjdGNhcmQgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE9iamVjdCB9KVxuICBhY2Nlc3NvciBwcm9kdWN0RGF0YTogSVByb2R1Y3REYXRhID0ge1xuICAgIG5hbWU6ICdQcm9kdWN0IE5hbWUnLFxuICAgIHByaWNlOiAwLFxuICB9O1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBxdWFudGl0eTogbnVtYmVyID0gMDtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIHNob3dRdWFudGl0eVNlbGVjdG9yOiBib29sZWFuID0gdHJ1ZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIHNlbGVjdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLnByb2R1Y3QtY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMjE1IDIwLjIlIDExLjglKScpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5wcm9kdWN0LWNhcmQ6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA3OS44JSknLCAnaHNsKDAgMCUgMjAuOSUpJyl9O1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTtcbiAgICAgIH1cblxuICAgICAgLnByb2R1Y3QtY2FyZC5zZWxlY3RhYmxlIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuXG4gICAgICAucHJvZHVjdC1jYXJkLnNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNy4yIDkxLjIlIDU5LjglKScsICdoc2woMjEzLjEgOTMuOSUgNjcuOCUpJyl9O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSknLCAnaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xKScpfTtcbiAgICAgIH1cblxuICAgICAgLnByb2R1Y3QtaW1hZ2Uge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxODBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgNDAlIDk2LjElKScsICdoc2woMjE1IDIwLjIlIDE2LjglKScpfTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLnByb2R1Y3QtaW1hZ2UgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB9XG5cbiAgICAgIC5wcm9kdWN0LWltYWdlIGRlZXMtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDIwLjIlIDY1LjElKScsICdoc2woMjE1IDIwLjIlIDM1LjElKScpfTtcbiAgICAgIH1cblxuICAgICAgLnNlbGVjdGlvbi1jaGVja2JveCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMnB4O1xuICAgICAgICByaWdodDogMTJweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgyMTUgMzAlIDYuOCUpJyl9O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNSAyMC4yJSA2NS4xJSknLCAnaHNsKDIxNSAyMC4yJSAzNS4xJSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgLnNlbGVjdGlvbi1jaGVja2JveC5jaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSknLCAnaHNsKDIxMy4xIDkzLjklIDY3LjglKScpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNy4yIDkxLjIlIDU5LjglKScsICdoc2woMjEzLjEgOTMuOSUgNjcuOCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuc2VsZWN0aW9uLWNoZWNrYm94IGRlZXMtaWNvbiB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuc2VsZWN0aW9uLWNoZWNrYm94LmNoZWNrZWQgZGVlcy1pY29uIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgIH1cblxuICAgICAgLnByb2R1Y3QtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnByb2R1Y3QtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICB9XG5cbiAgICAgIC5wcm9kdWN0LWNhdGVnb3J5IHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA1Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA1NS4xJSknKX07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUpJywgJ2hzbCgwIDAlIDk1JSknKX07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICB9XG5cbiAgICAgIC5wcm9kdWN0LWRlc2NyaXB0aW9uIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA0Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5wcm9kdWN0LWZvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAucHJvZHVjdC1wcmljZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuXG4gICAgICAucHJpY2UtY3VycmVudCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnByaWNlLW9yaWdpbmFsIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA1Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA1NS4xJSknKX07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgfVxuXG4gICAgICAuc3RvY2stc3RhdHVzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgIH1cblxuICAgICAgLnN0b2NrLXN0YXR1cy5pbi1zdG9jayB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKScsICdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuc3RvY2stc3RhdHVzLm91dC1vZi1zdG9jayB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgNzIuMiUgNTAuNiUpJywgJ2hzbCgwIDYyLjglIDMwLjYlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnN0b2NrLXN0YXR1cyBkZWVzLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCB7XG4gICAgICBuYW1lLFxuICAgICAgY2F0ZWdvcnksXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIHByaWNlLFxuICAgICAgb3JpZ2luYWxQcmljZSxcbiAgICAgIGN1cnJlbmN5ID0gJyQnLFxuICAgICAgaW5TdG9jayA9IHRydWUsXG4gICAgICBzdG9ja1RleHQgPSBpblN0b2NrID8gJ0luIFN0b2NrJyA6ICdPdXQgb2YgU3RvY2snLFxuICAgICAgaW1hZ2VVcmwsXG4gICAgICBpY29uTmFtZSA9ICdsdWNpZGU6cGFja2FnZScsXG4gICAgfSA9IHRoaXMucHJvZHVjdERhdGE7XG5cbiAgICBjb25zdCBmb3JtYXRQcmljZSA9ICh2YWx1ZTogbnVtYmVyKSA9PiB7XG4gICAgICByZXR1cm4gYCR7Y3VycmVuY3l9JHt2YWx1ZS50b0ZpeGVkKDIpfWA7XG4gICAgfTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3M9XCJwcm9kdWN0LWNhcmQgJHt0aGlzLnNlbGVjdGFibGUgPyAnc2VsZWN0YWJsZScgOiAnJ30gJHt0aGlzLnNlbGVjdGVkID8gJ3NlbGVjdGVkJyA6ICcnfVwiXG4gICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2FyZENsaWNrfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1pbWFnZVwiPlxuICAgICAgICAgICR7aW1hZ2VVcmwgPyBodG1sYFxuICAgICAgICAgICAgPGltZyBzcmM9XCIke2ltYWdlVXJsfVwiIGFsdD1cIiR7bmFtZX1cIj5cbiAgICAgICAgICBgIDogaHRtbGBcbiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtpY29uTmFtZX0+PC9kZWVzLWljb24+XG4gICAgICAgICAgYH1cbiAgICAgICAgICAke3RoaXMuc2VsZWN0YWJsZSA/IGh0bWxgXG4gICAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGlvbi1jaGVja2JveCAke3RoaXMuc2VsZWN0ZWQgPyAnY2hlY2tlZCcgOiAnJ31cIlxuICAgICAgICAgICAgICBAY2xpY2s9JHsoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uVG9nZ2xlKCk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOmNoZWNrJ30+PC9kZWVzLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgIDogJyd9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1jb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtaGVhZGVyXCI+XG4gICAgICAgICAgICAke2NhdGVnb3J5ID8gaHRtbGA8ZGl2IGNsYXNzPVwicHJvZHVjdC1jYXRlZ29yeVwiPiR7Y2F0ZWdvcnl9PC9kaXY+YCA6ICcnfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtbmFtZVwiPiR7bmFtZX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAke2Rlc2NyaXB0aW9uID8gaHRtbGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWRlc2NyaXB0aW9uXCI+JHtkZXNjcmlwdGlvbn08L2Rpdj5cbiAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLXN0YXR1cyAke2luU3RvY2sgPyAnaW4tc3RvY2snIDogJ291dC1vZi1zdG9jayd9XCI+XG4gICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7aW5TdG9jayA/ICdsdWNpZGU6Y2hlY2stY2lyY2xlJyA6ICdsdWNpZGU6eC1jaXJjbGUnfT48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICR7c3RvY2tUZXh0fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWZvb3RlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtcHJpY2VcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmljZS1jdXJyZW50XCI+JHtmb3JtYXRQcmljZShwcmljZSl9PC9zcGFuPlxuICAgICAgICAgICAgICAke29yaWdpbmFsUHJpY2UgJiYgb3JpZ2luYWxQcmljZSA+IHByaWNlID8gaHRtbGBcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByaWNlLW9yaWdpbmFsXCI+JHtmb3JtYXRQcmljZShvcmlnaW5hbFByaWNlKX08L3NwYW4+XG4gICAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgJHt0aGlzLnNob3dRdWFudGl0eVNlbGVjdG9yID8gaHRtbGBcbiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvclxuICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMucXVhbnRpdHl9XG4gICAgICAgICAgICAgICAgQGNoYW5nZVN1YmplY3Q9JHsoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMucXVhbnRpdHkgPSBlLmRldGFpbC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgncXVhbnRpdHlDaGFuZ2UnLCB7XG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDogeyBcbiAgICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogdGhpcy5xdWFudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0RGF0YTogdGhpcy5wcm9kdWN0RGF0YSBcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+XG4gICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2FyZENsaWNrKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3RlZDtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3NlbGVjdGlvbkNoYW5nZScsIHtcbiAgICAgICAgZGV0YWlsOiB7IFxuICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgICAgIHByb2R1Y3REYXRhOiB0aGlzLnByb2R1Y3REYXRhIFxuICAgICAgICB9LFxuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uVG9nZ2xlKCkge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3RlZDtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdzZWxlY3Rpb25DaGFuZ2UnLCB7XG4gICAgICBkZXRhaWw6IHsgXG4gICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgICBwcm9kdWN0RGF0YTogdGhpcy5wcm9kdWN0RGF0YSBcbiAgICAgIH0sXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gIH1cbn0iLCAiaW1wb3J0IHsgaHRtbCwgY3NzLCBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAnLi4vLi4vZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkLmpzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGBcbiAgPGRlZXMtZGVtb3dyYXBwZXI+XG4gICAgPHN0eWxlPlxuICAgICAgJHtjc3NgXG4gICAgICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuc2hvcHBpbmctZ3JpZCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyODBweCwgMWZyKSk7XG4gICAgICAgICAgZ2FwOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtc3VtbWFyeSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDQwJSA5Ni4xJSknLCAnaHNsKDIxNSAyMC4yJSAxNi44JSknKX07XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTQuMyAzMS44JSA5MS40JSknLCAnaHNsKDIxNSAyMC4yJSAyMS44JSknKX07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtc3VtbWFyeS10aXRsZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDklKScsICdoc2woMCAwJSA5NSUpJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtaXRlbSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjMgMjUlIDI2LjclKScsICdoc2woMjE3LjkgMTAuNiUgNzQuOSUpJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtdG90YWwge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTUlKScpfTtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgICA8L3N0eWxlPlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRhaW5lclwiPlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0Jhc2ljIFF1YW50aXR5IFNlbGVjdG9yJ30gLnN1YnRpdGxlPSR7J1NpbXBsZSBxdWFudGl0eSBpbnB1dCB3aXRoIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yXG4gICAgICAgICAgLmxhYmVsPSR7J1F1YW50aXR5J31cbiAgICAgICAgICAuZGVzY3JpcHRpb249JHsnU2VsZWN0IHRoZSBkZXNpcmVkIHF1YW50aXR5J31cbiAgICAgICAgICAudmFsdWU9JHsxfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yXG4gICAgICAgICAgLmxhYmVsPSR7J0l0ZW1zIGluIENhcnQnfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydBZGp1c3QgdGhlIHF1YW50aXR5IG9mIGl0ZW1zJ31cbiAgICAgICAgICAudmFsdWU9JHszfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydTaG9wcGluZyBDYXJ0J30gLnN1YnRpdGxlPSR7J01vZGVybiBlLWNvbW1lcmNlIHByb2R1Y3QgY2FyZHMgd2l0aCBpbnRlcmFjdGl2ZSBxdWFudGl0eSBzZWxlY3RvcnMnfSAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlQ2FydFN1bW1hcnkgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2FyZDEgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJyNoZWFkcGhvbmVzLXF0eScpIGFzIGFueTtcbiAgICAgICAgICBjb25zdCBjYXJkMiA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignI21vdXNlLXF0eScpIGFzIGFueTtcbiAgICAgICAgICBjb25zdCBjYXJkMyA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignI2tleWJvYXJkLXF0eScpIGFzIGFueTtcbiAgICAgICAgICBcbiAgICAgICAgICBjb25zdCBxdHkxID0gY2FyZDE/LnF1YW50aXR5IHx8IDA7XG4gICAgICAgICAgY29uc3QgcXR5MiA9IGNhcmQyPy5xdWFudGl0eSB8fCAwO1xuICAgICAgICAgIGNvbnN0IHF0eTMgPSBjYXJkMz8ucXVhbnRpdHkgfHwgMDtcbiAgICAgICAgICBcbiAgICAgICAgICBjb25zdCBwcmljZTEgPSAzNDkuOTkgKiBxdHkxO1xuICAgICAgICAgIGNvbnN0IHByaWNlMiA9IDk5Ljk5ICogcXR5MjtcbiAgICAgICAgICBjb25zdCBwcmljZTMgPSA3OS45OSAqIHF0eTM7XG4gICAgICAgICAgY29uc3QgdG90YWwgPSBwcmljZTEgKyBwcmljZTIgKyBwcmljZTM7XG4gICAgICAgICAgXG4gICAgICAgICAgY29uc3Qgc3VtbWFyeSA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignI2NhcnQtc3VtbWFyeS1jb250ZW50Jyk7XG4gICAgICAgICAgaWYgKHN1bW1hcnkpIHtcbiAgICAgICAgICAgIHN1bW1hcnkuaW5uZXJIVE1MID0gYFxuICAgICAgICAgICAgICAke3F0eTEgPiAwID8gYDxkaXYgY2xhc3M9XCJjYXJ0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5Tb255IFdILTEwMDBYTTUgKCR7cXR5MX0pPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuPiQke3ByaWNlMS50b0ZpeGVkKDIpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+YCA6ICcnfVxuICAgICAgICAgICAgICAke3F0eTIgPiAwID8gYDxkaXYgY2xhc3M9XCJjYXJ0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5Mb2dpdGVjaCBNWCBNYXN0ZXIgM1MgKCR7cXR5Mn0pPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuPiQke3ByaWNlMi50b0ZpeGVkKDIpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+YCA6ICcnfVxuICAgICAgICAgICAgICAke3F0eTMgPiAwID8gYDxkaXYgY2xhc3M9XCJjYXJ0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5LZXljaHJvbiBLMiAoJHtxdHkzfSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+JCR7cHJpY2UzLnRvRml4ZWQoMil9PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5gIDogJyd9XG4gICAgICAgICAgICAgICR7dG90YWwgPT09IDAgPyAnPGRpdiBjbGFzcz1cImNhcnQtaXRlbVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzk5OTtcIj5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4nIDogJyd9XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXRvdGFsXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+VG90YWw8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+JCR7dG90YWwudG9GaXhlZCgyKX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYDtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBJbml0aWFsIHVwZGF0ZVxuICAgICAgICBzZXRUaW1lb3V0KHVwZGF0ZUNhcnRTdW1tYXJ5LCAxMDApO1xuICAgICAgICBcbiAgICAgICAgLy8gU2V0IHVwIGxpc3RlbmVyc1xuICAgICAgICBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQnKS5mb3JFYWNoKGNhcmQgPT4ge1xuICAgICAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcigncXVhbnRpdHlDaGFuZ2UnLCB1cGRhdGVDYXJ0U3VtbWFyeSk7XG4gICAgICAgIH0pO1xuICAgICAgfX0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaG9wcGluZy1ncmlkXCI+XG4gICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRcbiAgICAgICAgICAgIGlkPVwiaGVhZHBob25lcy1xdHlcIlxuICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e1xuICAgICAgICAgICAgICBuYW1lOiAnU29ueSBXSC0xMDAwWE01IFdpcmVsZXNzIEhlYWRwaG9uZXMnLFxuICAgICAgICAgICAgICBjYXRlZ29yeTogJ0F1ZGlvJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdJbmR1c3RyeS1sZWFkaW5nIG5vaXNlIGNhbmNlbGluZyB3aXRoIEF1dG8gTkMgT3B0aW1pemVyJyxcbiAgICAgICAgICAgICAgcHJpY2U6IDM0OS45OSxcbiAgICAgICAgICAgICAgb3JpZ2luYWxQcmljZTogMzk5Ljk5LFxuICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpoZWFkcGhvbmVzJ1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9XG4gICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFxuICAgICAgICAgICAgaWQ9XCJtb3VzZS1xdHlcIlxuICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e1xuICAgICAgICAgICAgICBuYW1lOiAnTG9naXRlY2ggTVggTWFzdGVyIDNTJyxcbiAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdBY2Nlc3NvcmllcycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybWFuY2Ugd2lyZWxlc3MgbW91c2Ugd2l0aCB1bHRyYS1mYXN0IHNjcm9sbGluZycsXG4gICAgICAgICAgICAgIHByaWNlOiA5OS45OSxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6bW91c2UtcG9pbnRlcidcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAucXVhbnRpdHk9JHsyfVxuICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRcbiAgICAgICAgICAgIGlkPVwia2V5Ym9hcmQtcXR5XCJcbiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tcbiAgICAgICAgICAgICAgbmFtZTogJ0tleWNocm9uIEsyIFdpcmVsZXNzIE1lY2hhbmljYWwgS2V5Ym9hcmQnLFxuICAgICAgICAgICAgICBjYXRlZ29yeTogJ0tleWJvYXJkcycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ29tcGFjdCA3NSUgbGF5b3V0IHdpdGggaG90LXN3YXBwYWJsZSBzd2l0Y2hlcycsXG4gICAgICAgICAgICAgIHByaWNlOiA3OS45OSxcbiAgICAgICAgICAgICAgb3JpZ2luYWxQcmljZTogOTQuOTksXG4gICAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmtleWJvYXJkJ1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9XG4gICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtc3VtbWFyeVwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cImNhcnQtc3VtbWFyeS10aXRsZVwiPk9yZGVyIFN1bW1hcnk8L2gzPlxuICAgICAgICAgIDxkaXYgaWQ9XCJjYXJ0LXN1bW1hcnktY29udGVudFwiPlxuICAgICAgICAgICAgPCEtLSBDb250ZW50IHdpbGwgYmUgZHluYW1pY2FsbHkgdXBkYXRlZCAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydSZXF1aXJlZCAmIERpc2FibGVkIFN0YXRlcyd9IC5zdWJ0aXRsZT0keydEaWZmZXJlbnQgc3RhdGVzIGZvciB2YWxpZGF0aW9uIGFuZCByZXN0cmljdGlvbnMnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvclxuICAgICAgICAgIC5sYWJlbD0keydOdW1iZXIgb2YgTGljZW5zZXMnfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydTZWxlY3QgaG93IG1hbnkgbGljZW5zZXMgeW91IG5lZWQnfVxuICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgLnZhbHVlPSR7MX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvclxuICAgICAgICAgIC5sYWJlbD0keydGaXhlZCBRdWFudGl0eSd9XG4gICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J1RoaXMgcXVhbnRpdHkgY2Fubm90IGJlIGNoYW5nZWQnfVxuICAgICAgICAgIC5kaXNhYmxlZD0ke3RydWV9XG4gICAgICAgICAgLnZhbHVlPSR7NX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgICAgXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnT3JkZXIgRm9ybSd9IC5zdWJ0aXRsZT0keydDb21wbGV0ZSBvcmRlciBmb3JtIHdpdGggcXVhbnRpdHkgc2VsZWN0aW9uJ30+XG4gICAgICAgIDxkZWVzLWZvcm0+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsnQ3VzdG9tZXIgTmFtZSd9IC5yZXF1aXJlZD0ke3RydWV9PjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duXG4gICAgICAgICAgICAubGFiZWw9JHsnUHJvZHVjdCd9XG4gICAgICAgICAgICAub3B0aW9ucz0ke1snQmFzaWMgUGxhbicsICdQcm8gUGxhbicsICdFbnRlcnByaXNlIFBsYW4nXX1cbiAgICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yXG4gICAgICAgICAgICAubGFiZWw9JHsnUXVhbnRpdHknfVxuICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J051bWJlciBvZiBsaWNlbnNlcyd9XG4gICAgICAgICAgICAudmFsdWU9JHsxfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0XG4gICAgICAgICAgICAubGFiZWw9JHsnU3BlY2lhbCBJbnN0cnVjdGlvbnMnfVxuICAgICAgICAgICAgLmlucHV0VHlwZT0keyd0ZXh0YXJlYSd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICA8L2RlZXMtZm9ybT5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2Rpdj5cbiAgPC9kZWVzLWRlbW93cmFwcGVyPlxuYDsiLCAiaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHksIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIGNzcywgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCB7IERlZXNJbnB1dEJhc2UgfSBmcm9tICcuLi9kZWVzLWlucHV0LWJhc2UvZGVlcy1pbnB1dC1iYXNlLmpzJztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IuZGVtby5qcyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yJzogRGVlc0lucHV0UXVhbnRpdHlTZWxlY3RvcjtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yJylcbmV4cG9ydCBjbGFzcyBEZWVzSW5wdXRRdWFudGl0eVNlbGVjdG9yIGV4dGVuZHMgRGVlc0lucHV0QmFzZTxEZWVzSW5wdXRRdWFudGl0eVNlbGVjdG9yPiB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdJbnB1dCc7XG5cbiAgLy8gSU5TVEFOQ0VcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IE51bWJlclxuICB9KVxuICBhY2Nlc3NvciB2YWx1ZTogbnVtYmVyID0gMTtcblxuXG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIC4uLkRlZXNJbnB1dEJhc2UuYmFzZVN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucXVhbnRpdHktY29udGFpbmVyIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUpJywgJ2hzbCgwIDAlIDk1JSknKX07XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5xdWFudGl0eS1jb250YWluZXIuZGlzYWJsZWQge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NS4xJSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNzkuOCUpJywgJ2hzbCgwIDAlIDIwLjklKScpfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5xdWFudGl0eS1jb250YWluZXI6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUpJywgJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSknKX07XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpJywgJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSknKX07XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0b3Ige1xuICAgICAgICAgIGZsZXg6IDAgMCA0MHB4O1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS40IDE2LjMlIDU2LjklKScsICdoc2woMjE1IDIwLjIlIDU1LjElKScpfTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0b3I6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NS4xJSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUpJywgJ2hzbCgwIDAlIDk1JSknKX07XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0b3I6YWN0aXZlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTElKScsICdoc2woMCAwJSAxMSUpJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlbGVjdG9yLm1pbnVzIHtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3Rvci5wbHVzIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLnF1YW50aXR5IHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogS2V5Ym9hcmQgbmF2aWdhdGlvbiBmb2N1cyBzdHlsZXMgKi9cbiAgICAgICAgLnNlbGVjdG9yOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDQwJSA5Ni4xJSknLCAnaHNsKDIxNSAyMC4yJSAxNi44JSknKX07XG4gICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1pbiB2YWx1ZSBzdGF0ZSAqL1xuICAgICAgICAucXVhbnRpdHktY29udGFpbmVyW2RhdGEtbWluPVwidHJ1ZVwiXSAuc2VsZWN0b3IubWludXMge1xuICAgICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcltkYXRhLW1pbj1cInRydWVcIl0gLnNlbGVjdG9yLm1pbnVzOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA1Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA1NS4xJSknKX07XG4gICAgICAgIH1cblxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAke3RoaXMubGFiZWwgPyBodG1sYDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gIDogJyd9XG4gICAgICAgIDxkaXYgXG4gICAgICAgICAgY2xhc3M9XCJxdWFudGl0eS1jb250YWluZXIgJHt0aGlzLmRpc2FibGVkID8gJ2Rpc2FibGVkJyA6ICcnfVwiXG4gICAgICAgICAgZGF0YS1taW49XCIke3RoaXMudmFsdWUgPD0gMH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0b3IgbWludXNcIiBcbiAgICAgICAgICAgIEBjbGljaz1cIiR7KCkgPT4ge3RoaXMuZGVjcmVhc2UoKTt9fVwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIiR7dGhpcy5kaXNhYmxlZCA/ICctMScgOiAnMCd9XCJcbiAgICAgICAgICAgIEBrZXlkb3duPVwiJHsoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgfHwgZS5rZXkgPT09ICcgJykge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlY3JlYXNlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlY3JlYXNlIHF1YW50aXR5XCJcbiAgICAgICAgICA+XHUyMjEyPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInF1YW50aXR5XCIgYXJpYS1saXZlPVwicG9saXRlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCI+JHt0aGlzLnZhbHVlfTwvZGl2PlxuICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICBjbGFzcz1cInNlbGVjdG9yIHBsdXNcIiBcbiAgICAgICAgICAgIEBjbGljaz1cIiR7KCkgPT4ge3RoaXMuaW5jcmVhc2UoKTt9fVwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIiR7dGhpcy5kaXNhYmxlZCA/ICctMScgOiAnMCd9XCJcbiAgICAgICAgICAgIEBrZXlkb3duPVwiJHsoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgfHwgZS5rZXkgPT09ICcgJykge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmluY3JlYXNlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkluY3JlYXNlIHF1YW50aXR5XCJcbiAgICAgICAgICA+KzwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwdWJsaWMgaW5jcmVhc2UoKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnZhbHVlKys7XG4gICAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVjcmVhc2UoKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMudmFsdWUgPiAwKSB7XG4gICAgICB0aGlzLnZhbHVlLS07XG4gICAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgaHRtbCwgY3NzIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAnQGRlc2lnbi5lc3RhdGUvZGVlcy13Y2N0b29scy9kZW1vdG9vbHMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLXBhbmVsL2RlZXMtcGFuZWwuanMnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiBodG1sYFxuICA8ZGVlcy1kZW1vd3JhcHBlcj5cbiAgICA8c3R5bGU+XG4gICAgICAke2Nzc2BcbiAgICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGRlZXMtcGFuZWwge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmRlbW8tZ3JpZCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTtcbiAgICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5yZXN1bHQtZGlzcGxheSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB9XG4gICAgICBgfVxuICAgIDwvc3R5bGU+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnMS4gQmFzaWMgUmFkaW8gR3JvdXBzJ30gLnN1YnRpdGxlPSR7J1NpbXBsZSBzdHJpbmcgb3B0aW9ucyBmb3IgY29tbW9uIHVzZSBjYXNlcyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVtby1ncmlkXCI+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cFxuICAgICAgICAgICAgLmxhYmVsPSR7J1N1YnNjcmlwdGlvbiBQbGFuJ31cbiAgICAgICAgICAgIC5vcHRpb25zPSR7WydCYXNpYyAtICQ5L21vbnRoJywgJ1BybyAtICQyOS9tb250aCcsICdFbnRlcnByaXNlIC0gJDk5L21vbnRoJ119XG4gICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsnUHJvIC0gJDI5L21vbnRoJ31cbiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydDaG9vc2UgeW91ciBzdWJzY3JpcHRpb24gdGllcid9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXBcbiAgICAgICAgICAgIC5sYWJlbD0keydQcmlvcml0eSBMZXZlbCd9XG4gICAgICAgICAgICAub3B0aW9ucz0ke1snSGlnaCcsICdNZWRpdW0nLCAnTG93J119XG4gICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsnTWVkaXVtJ31cbiAgICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzIuIEhvcml6b250YWwgTGF5b3V0J30gLnN1YnRpdGxlPSR7J1JhZGlvIGdyb3VwcyB3aXRoIGhvcml6b250YWwgYXJyYW5nZW1lbnQnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cFxuICAgICAgICAgIC5sYWJlbD0keydEbyB5b3UgYWdyZWUgd2l0aCB0aGUgdGVybXM/J31cbiAgICAgICAgICAub3B0aW9ucz0ke1snWWVzJywgJ05vJywgJ01heWJlJ119XG4gICAgICAgICAgLmRpcmVjdGlvbj0keydob3Jpem9udGFsJ31cbiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsnWWVzJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cFxuICAgICAgICAgIC5sYWJlbD0keydFeHBlcmllbmNlIExldmVsJ31cbiAgICAgICAgICAub3B0aW9ucz0ke1snQmVnaW5uZXInLCAnSW50ZXJtZWRpYXRlJywgJ0V4cGVydCddfVxuICAgICAgICAgIC5kaXJlY3Rpb249JHsnaG9yaXpvbnRhbCd9XG4gICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7J0ludGVybWVkaWF0ZSd9XG4gICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J1NlbGVjdCB5b3VyIGV4cGVyaWVuY2UgbGV2ZWwgd2l0aCB3ZWIgZGV2ZWxvcG1lbnQnfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyczLiBBZHZhbmNlZCBPcHRpb25zJ30gLnN1YnRpdGxlPSR7J1VzaW5nIG9iamVjdCBmb3JtYXQgd2l0aCBrZXlzIGFuZCBwYXlsb2Fkcyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwXG4gICAgICAgICAgaWQ9XCJhZHZhbmNlZC1yYWRpb1wiXG4gICAgICAgICAgLmxhYmVsPSR7J1NlbGVjdCBSZWdpb24nfVxuICAgICAgICAgIC5vcHRpb25zPSR7W1xuICAgICAgICAgICAgeyBvcHRpb246ICdVbml0ZWQgU3RhdGVzIChVUyBFYXN0KScsIGtleTogJ3VzLWVhc3QnLCBwYXlsb2FkOiB7IHJlZ2lvbjogJ3VzLWVhc3QtMScsIGxhdGVuY3k6IDIwIH0gfSxcbiAgICAgICAgICAgIHsgb3B0aW9uOiAnRXVyb3BlIChGcmFua2Z1cnQpJywga2V5OiAnZXUtY2VudHJhbCcsIHBheWxvYWQ6IHsgcmVnaW9uOiAnZXUtY2VudHJhbC0xJywgbGF0ZW5jeTogNTAgfSB9LFxuICAgICAgICAgICAgeyBvcHRpb246ICdBc2lhIFBhY2lmaWMgKFNpbmdhcG9yZSknLCBrZXk6ICdhcC1zb3V0aGVhc3QnLCBwYXlsb2FkOiB7IHJlZ2lvbjogJ2FwLXNvdXRoZWFzdC0xJywgbGF0ZW5jeTogMTIwIH0gfVxuICAgICAgICAgIF19XG4gICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7J2V1LWNlbnRyYWwnfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydDaG9vc2UgdGhlIGNsb3Nlc3QgcmVnaW9uIGZvciBvcHRpbWFsIHBlcmZvcm1hbmNlJ31cbiAgICAgICAgICBAY2hhbmdlPSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JlZ2lvbi1yZXN1bHQnKTtcbiAgICAgICAgICAgIGlmIChkaXNwbGF5KSB7XG4gICAgICAgICAgICAgIGRpc3BsYXkudGV4dENvbnRlbnQgPSAnU2VsZWN0ZWQ6ICcgKyBKU09OLnN0cmluZ2lmeShlLmRldGFpbC52YWx1ZSwgbnVsbCwgMik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPlxuICAgICAgICA8ZGl2IGlkPVwicmVnaW9uLXJlc3VsdFwiIGNsYXNzPVwicmVzdWx0LWRpc3BsYXlcIj5TZWxlY3RlZDogeyBcInJlZ2lvblwiOiBcImV1LWNlbnRyYWwtMVwiLCBcImxhdGVuY3lcIjogNTAgfTwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgICAgXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnNC4gU3VydmV5IEV4YW1wbGUnfSAuc3VidGl0bGU9JHsnTXVsdGlwbGUgcmFkaW8gZ3JvdXBzIGZvciBzdXJ2ZXlzIGFuZCBmb3Jtcyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVtby1ncmlkXCI+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cFxuICAgICAgICAgICAgLmxhYmVsPSR7J0hvdyBzYXRpc2ZpZWQgYXJlIHlvdT8nfVxuICAgICAgICAgICAgLm9wdGlvbnM9JHtbJ1ZlcnkgU2F0aXNmaWVkJywgJ1NhdGlzZmllZCcsICdOZXV0cmFsJywgJ0Rpc3NhdGlzZmllZCcsICdWZXJ5IERpc3NhdGlzZmllZCddfVxuICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7J1NhdGlzZmllZCd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXBcbiAgICAgICAgICAgIC5sYWJlbD0keydXb3VsZCB5b3UgcmVjb21tZW5kIHVzPyd9XG4gICAgICAgICAgICAub3B0aW9ucz0ke1snRGVmaW5pdGVseScsICdQcm9iYWJseScsICdOb3QgU3VyZScsICdQcm9iYWJseSBOb3QnLCAnRGVmaW5pdGVseSBOb3QnXX1cbiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keydQcm9iYWJseSd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzUuIFN0YXRlcyAmIFZhbGlkYXRpb24nfSAuc3VidGl0bGU9JHsnRGlmZmVyZW50IHN0YXRlcyBhbmQgdmFsaWRhdGlvbiBleGFtcGxlcyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVtby1ncmlkXCI+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cFxuICAgICAgICAgICAgLmxhYmVsPSR7J1JlcXVpcmVkIFNlbGVjdGlvbid9XG4gICAgICAgICAgICAub3B0aW9ucz0ke1snT3B0aW9uIEEnLCAnT3B0aW9uIEInLCAnT3B0aW9uIEMnXX1cbiAgICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgICAuZGVzY3JpcHRpb249JHsnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXBcbiAgICAgICAgICAgIC5sYWJlbD0keydEaXNhYmxlZCBTdGF0ZSd9XG4gICAgICAgICAgICAub3B0aW9ucz0ke1snRGlzYWJsZWQgT3B0aW9uIDEnLCAnRGlzYWJsZWQgT3B0aW9uIDInLCAnRGlzYWJsZWQgT3B0aW9uIDMnXX1cbiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keydEaXNhYmxlZCBPcHRpb24gMid9XG4gICAgICAgICAgICAuZGlzYWJsZWQ9JHt0cnVlfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc2LiBTZXR0aW5ncyBFeGFtcGxlJ30gLnN1YnRpdGxlPSR7J0NvbW1vbiBwYXR0ZXJucyBpbiBhcHBsaWNhdGlvbiBzZXR0aW5ncyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwXG4gICAgICAgICAgLmxhYmVsPSR7J1RoZW1lIFByZWZlcmVuY2UnfVxuICAgICAgICAgIC5vcHRpb25zPSR7W1xuICAgICAgICAgICAgeyBvcHRpb246ICdMaWdodCBUaGVtZScsIGtleTogJ2xpZ2h0JywgcGF5bG9hZDogJ2xpZ2h0JyB9LFxuICAgICAgICAgICAgeyBvcHRpb246ICdEYXJrIFRoZW1lJywga2V5OiAnZGFyaycsIHBheWxvYWQ6ICdkYXJrJyB9LFxuICAgICAgICAgICAgeyBvcHRpb246ICdTeXN0ZW0gRGVmYXVsdCcsIGtleTogJ3N5c3RlbScsIHBheWxvYWQ6ICdhdXRvJyB9XG4gICAgICAgICAgXX1cbiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsnZGFyayd9XG4gICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J0Nob29zZSBob3cgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCBhcHBlYXInfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwXG4gICAgICAgICAgLmxhYmVsPSR7J05vdGlmaWNhdGlvbiBGcmVxdWVuY3knfVxuICAgICAgICAgIC5vcHRpb25zPSR7WydBbGwgTm90aWZpY2F0aW9ucycsICdJbXBvcnRhbnQgT25seScsICdOb25lJ119XG4gICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7J0ltcG9ydGFudCBPbmx5J31cbiAgICAgICAgICAuZGVzY3JpcHRpb249JHsnQ29udHJvbCBob3cgb2Z0ZW4geW91IHJlY2VpdmUgbm90aWZpY2F0aW9ucyd9XG4gICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXBcbiAgICAgICAgICAubGFiZWw9JHsnTGFuZ3VhZ2UnfVxuICAgICAgICAgIC5vcHRpb25zPSR7WydFbmdsaXNoJywgJ0dlcm1hbicsICdGcmVuY2gnLCAnU3BhbmlzaCcsICdKYXBhbmVzZSddfVxuICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keydFbmdsaXNoJ31cbiAgICAgICAgICAuZGlyZWN0aW9uPSR7J2hvcml6b250YWwnfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc3LiBGb3JtIEludGVncmF0aW9uJ30gLnN1YnRpdGxlPSR7J1dvcmtzIHNlYW1sZXNzbHkgd2l0aCBkZWVzLWZvcm0nfT5cbiAgICAgICAgPGRlZXMtZm9ybT5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0XG4gICAgICAgICAgICAubGFiZWw9JHsnUHJvZHVjdCBOYW1lJ31cbiAgICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgICAua2V5PSR7J3Byb2R1Y3ROYW1lJ31cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cFxuICAgICAgICAgICAgLmxhYmVsPSR7J1Byb2R1Y3QgQ2F0ZWdvcnknfVxuICAgICAgICAgICAgLm9wdGlvbnM9JHtbJ0VsZWN0cm9uaWNzJywgJ0Nsb3RoaW5nJywgJ0Jvb2tzJywgJ0hvbWUgJiBHYXJkZW4nLCAnU3BvcnRzJ119XG4gICAgICAgICAgICAucmVxdWlyZWQ9JHt0cnVlfVxuICAgICAgICAgICAgLmtleT0keydjYXRlZ29yeSd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXBcbiAgICAgICAgICAgIC5sYWJlbD0keydDb25kaXRpb24nfVxuICAgICAgICAgICAgLm9wdGlvbnM9JHtbJ05ldycsICdMaWtlIE5ldycsICdHb29kJywgJ0ZhaXInLCAnUG9vciddfVxuICAgICAgICAgICAgLmRpcmVjdGlvbj0keydob3Jpem9udGFsJ31cbiAgICAgICAgICAgIC5rZXk9JHsnY29uZGl0aW9uJ31cbiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keydOZXcnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwXG4gICAgICAgICAgICAubGFiZWw9JHsnU2hpcHBpbmcgU3BlZWQnfVxuICAgICAgICAgICAgLm9wdGlvbnM9JHtbXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnU3RhbmRhcmQgKDUtNyBkYXlzKScsIGtleTogJ3N0YW5kYXJkJywgcGF5bG9hZDogeyBkYXlzOiA3LCBwcmljZTogMCB9IH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnRXhwcmVzcyAoMi0zIGRheXMpJywga2V5OiAnZXhwcmVzcycsIHBheWxvYWQ6IHsgZGF5czogMywgcHJpY2U6IDEwIH0gfSxcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdPdmVybmlnaHQnLCBrZXk6ICdvdmVybmlnaHQnLCBwYXlsb2FkOiB7IGRheXM6IDEsIHByaWNlOiAyNSB9IH1cbiAgICAgICAgICAgIF19XG4gICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsnc3RhbmRhcmQnfVxuICAgICAgICAgICAgLmtleT0keydzaGlwcGluZyd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7J1N1Ym1pdCBQcm9kdWN0J30+PC9kZWVzLWZvcm0tc3VibWl0PlxuICAgICAgICA8L2RlZXMtZm9ybT5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2Rpdj5cbiAgPC9kZWVzLWRlbW93cmFwcGVyPlxuYDsiLCAiaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgcHJvcGVydHksXG4gIGh0bWwsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IERlZXNJbnB1dEJhc2UgfSBmcm9tICcuLi9kZWVzLWlucHV0LWJhc2UvZGVlcy1pbnB1dC1iYXNlLmpzJztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLWlucHV0LXJhZGlvZ3JvdXAuZGVtby5qcyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1pbnB1dC1yYWRpb2dyb3VwJzogRGVlc0lucHV0UmFkaW9ncm91cDtcbiAgfVxufVxuXG50eXBlIFJhZGlvT3B0aW9uID0gc3RyaW5nIHwgeyBvcHRpb246IHN0cmluZzsga2V5OiBzdHJpbmc7IHBheWxvYWQ/OiBhbnkgfTtcblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtaW5wdXQtcmFkaW9ncm91cCcpXG5leHBvcnQgY2xhc3MgRGVlc0lucHV0UmFkaW9ncm91cCBleHRlbmRzIERlZXNJbnB1dEJhc2U8c3RyaW5nIHwgb2JqZWN0PiB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdJbnB1dCc7XG5cbiAgLy8gSU5TVEFOQ0VcblxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBhY2Nlc3NvciBvcHRpb25zOiBSYWRpb09wdGlvbltdID0gW107XG5cbiAgQHByb3BlcnR5KClcbiAgYWNjZXNzb3Igc2VsZWN0ZWRPcHRpb246IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBkaXJlY3Rpb246ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAndmVydGljYWwnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9KVxuICBhY2Nlc3NvciB2YWxpZGF0aW9uU3RhdGU6ICd2YWxpZCcgfCAnaW52YWxpZCcgfCAnd2FybicgfCAncGVuZGluZycgPSBudWxsO1xuXG4gIC8vIEZvcm0gY29tcGF0aWJpbGl0eVxuICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMuZ2V0T3B0aW9uQnlLZXkodGhpcy5zZWxlY3RlZE9wdGlvbik7XG4gICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmIG9wdGlvbi5wYXlsb2FkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBvcHRpb24ucGF5bG9hZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb247XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbDogc3RyaW5nIHwgYW55KSB7XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gdmFsO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUcnkgdG8gZmluZCBvcHRpb24gYnkgcGF5bG9hZFxuICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQob3B0ID0+IFxuICAgICAgICB0eXBlb2Ygb3B0ID09PSAnb2JqZWN0JyAmJiBvcHQucGF5bG9hZCA9PT0gdmFsXG4gICAgICApO1xuICAgICAgaWYgKG9wdGlvbiAmJiB0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0Jykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb3B0aW9uLmtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgLi4uRGVlc0lucHV0QmFzZS5iYXNlU3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgKiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB9XG5cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7XG4gICAgICB9XG5cbiAgICAgIC5tYWluY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAubWFpbmNvbnRhaW5lci5ob3Jpem9udGFsIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDIwcHg7XG4gICAgICB9XG5cbiAgICAgIC5yYWRpby1vcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDZweCAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIH1cblxuICAgICAgLm1haW5jb250YWluZXIuaG9yaXpvbnRhbCAucmFkaW8tb3B0aW9uIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDIwcHggNnB4IDA7XG4gICAgICB9XG5cbiAgICAgIC5yYWRpby1vcHRpb246aG92ZXIgLnJhZGlvLWNpcmNsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUgMjAuMiUgNjUuMSUpJywgJ2hzbCgyMTUgMjAuMiUgMzUuMSUpJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUpJywgJ2hzbCgyMTUgMjAuMiUgMTEuOCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSA4LjglKScsICdoc2woMjEwIDQwJSA5OCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAucmFkaW8tY2lyY2xlIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNSAyMC4yJSA2NS4xJSknLCAnaHNsKDIxNSAyMC4yJSAzNS4xJSknKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMjE1IDMwJSA2LjglKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSknLCAnaHNsKDIxMy4xIDkzLjklIDY3LjglKScpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSknLCAnaHNsKDIxMy4xIDkzLjklIDY3LjglKScpfTtcbiAgICAgIH1cblxuICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMjE1IDMwJSA2LjglKScpfTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgIH1cblxuICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICB9XG5cbiAgICAgIC5yYWRpby1jaXJjbGU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDIxNSAzMCUgMy45JSknKX0sXG4gICAgICAgICAgICAgICAgICAgIDAgMCAwIDRweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNy4yIDkxLjIlIDU5LjglKScsICdoc2woMjEzLjEgOTMuOSUgNjcuOCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAucmFkaW8tbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSAyNi43JSknLCAnaHNsKDIxNy45IDEwLjYlIDc0LjklKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG4gICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSA4LjglKScsICdoc2woMjEwIDQwJSA5OCUpJyl9O1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDIwLjIlIDY1LjElKScsICdoc2woMjE1IDIwLjIlIDM1LjElKScpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgyMTUgMzAlIDYuOCUpJyl9O1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSAyNi43JSknLCAnaHNsKDIxNy45IDEwLjYlIDc0LjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLmxhYmVsLXRleHQge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSA4LjglKScsICdoc2woMjEwIDQwJSA5OCUpJyl9O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG4gICAgICAuZGVzY3JpcHRpb24tdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjQgMTYuMyUgNTYuOSUpJywgJ2hzbCgyMTUgMjAuMiUgNTUuMSUpJyl9O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDAzZW07XG4gICAgICB9XG5cbiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovXG4gICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPVwiaW52YWxpZFwiXSkgLnJhZGlvLWNpcmNsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcyLjIlIDUwLjYlKScsICdoc2woMCA2Mi44JSAzMC42JSknKX07XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9XCJpbnZhbGlkXCJdKSAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCA3Mi4yJSA1MC42JSknLCAnaHNsKDAgNjIuOCUgMzAuNiUpJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgNzIuMiUgNTAuNiUpJywgJ2hzbCgwIDYyLjglIDMwLjYlKScpfTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW3ZhbGlkYXRpb25TdGF0ZT1cInZhbGlkXCJdKSAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMTQyLjEgNzAuNiUgNDUuMyUpJywgJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMTQyLjEgNzAuNiUgNDUuMyUpJywgJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknKX07XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9XCJ3YXJuXCJdKSAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woNDUuNCA5My40JSA0Ny41JSknLCAnaHNsKDQ1LjQgOTMuNCUgNDcuNSUpJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDQ1LjQgOTMuNCUgNDcuNSUpJywgJ2hzbCg0NS40IDkzLjQlIDQ3LjUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogT3ZlcnJpZGUgYmFzZSBncmlkIGxheW91dCBmb3IgcmFkaW9ncm91cCB0byBwcmV2ZW50IGxhcmdlIGdhcHMgKi9cbiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj1cImxlZnRcIl0pIC5pbnB1dC13cmFwcGVyIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj1cInJpZ2h0XCJdKSAuaW5wdXQtd3JhcHBlciB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvO1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAke3RoaXMubGFiZWwgPyBodG1sYDxkaXYgY2xhc3M9XCJsYWJlbC10ZXh0XCI+JHt0aGlzLmxhYmVsfTwvZGl2PmAgOiAnJ31cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jb250YWluZXIgJHt0aGlzLmRpcmVjdGlvbn1cIj5cbiAgICAgICAgICAke3RoaXMub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uS2V5ID0gdGhpcy5nZXRPcHRpb25LZXkob3B0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gdGhpcy5nZXRPcHRpb25MYWJlbChvcHRpb24pO1xuICAgICAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRPcHRpb24gPT09IG9wdGlvbktleTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyYWRpby1vcHRpb24gJHtpc1NlbGVjdGVkID8gJ3NlbGVjdGVkJyA6ICcnfVwiXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiJHsoKSA9PiB0aGlzLnNlbGVjdE9wdGlvbihvcHRpb25LZXkpfVwiXG4gICAgICAgICAgICAgICAgQGtleWRvd249XCIkeyhlOiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLmhhbmRsZUtleWRvd24oZSwgb3B0aW9uS2V5KX1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmFkaW8tY2lyY2xlXCIgXG4gICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIiR7dGhpcy5kaXNhYmxlZCA/ICctMScgOiAnMCd9XCJcbiAgICAgICAgICAgICAgICAgIHJvbGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICBhcmlhLWNoZWNrZWQ9XCIke2lzU2VsZWN0ZWR9XCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke29wdGlvbkxhYmVsfVwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1sYWJlbFwiPiR7b3B0aW9uTGFiZWx9PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYDtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbiA/IGh0bWxgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLXRleHRcIj4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YCA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3B0aW9uS2V5KG9wdGlvbjogUmFkaW9PcHRpb24pOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbi5rZXk7XG4gIH1cblxuICBwcml2YXRlIGdldE9wdGlvbkxhYmVsKG9wdGlvbjogUmFkaW9PcHRpb24pOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbi5vcHRpb247XG4gIH1cblxuICBwcml2YXRlIGdldE9wdGlvbkJ5S2V5KGtleTogc3RyaW5nKTogUmFkaW9PcHRpb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZmluZChvcHQgPT4gdGhpcy5nZXRPcHRpb25LZXkob3B0KSA9PT0ga2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0T3B0aW9uKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRPcHRpb247XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IGtleTtcblxuICAgIGlmIChvbGRWYWx1ZSAhPT0ga2V5KSB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjaGFuZ2UnLCB7XG4gICAgICAgIGRldGFpbDogeyB2YWx1ZTogdGhpcy52YWx1ZSB9LFxuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgIH0pKTtcbiAgICAgIFxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnaW5wdXQnLCB7XG4gICAgICAgIGRldGFpbDogeyB2YWx1ZTogdGhpcy52YWx1ZSB9LFxuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgIH0pKTtcbiAgICAgIFxuICAgICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFZhbHVlKCk6IHN0cmluZyB8IGFueSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0VmFsdWUodmFsOiBzdHJpbmcgfCBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHZhbGlkYXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF0aGlzLnNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25TdGF0ZSA9ICdpbnZhbGlkJztcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy52YWxpZGF0aW9uU3RhdGUgPSAndmFsaWQnO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpcnN0VXBkYXRlZCgpIHtcbiAgICAvLyBBdXRvLXNlbGVjdCBmaXJzdCBvcHRpb24gaWYgbm9uZSBzZWxlY3RlZCBhbmQgbm90IHJlcXVpcmVkXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkT3B0aW9uICYmIHRoaXMub3B0aW9ucy5sZW5ndGggPiAwICYmICF0aGlzLnJlcXVpcmVkKSB7XG4gICAgICBjb25zdCBmaXJzdE9wdGlvbiA9IHRoaXMub3B0aW9uc1swXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLmdldE9wdGlvbktleShmaXJzdE9wdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBvcHRpb25LZXk6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnIHx8IGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKG9wdGlvbktleSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5mb2N1c05leHRPcHRpb24oKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmZvY3VzUHJldmlvdXNPcHRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTmV4dE9wdGlvbigpIHtcbiAgICBjb25zdCByYWRpb0NpcmNsZXMgPSBBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCcucmFkaW8tY2lyY2xlJykpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHJhZGlvQ2lyY2xlcy5maW5kSW5kZXgoZWwgPT4gZWwgPT09IHRoaXMuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KTtcbiAgICBjb25zdCBuZXh0SW5kZXggPSAoY3VycmVudEluZGV4ICsgMSkgJSByYWRpb0NpcmNsZXMubGVuZ3RoO1xuICAgIChyYWRpb0NpcmNsZXNbbmV4dEluZGV4XSBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNQcmV2aW91c09wdGlvbigpIHtcbiAgICBjb25zdCByYWRpb0NpcmNsZXMgPSBBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCcucmFkaW8tY2lyY2xlJykpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHJhZGlvQ2lyY2xlcy5maW5kSW5kZXgoZWwgPT4gZWwgPT09IHRoaXMuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KTtcbiAgICBjb25zdCBwcmV2SW5kZXggPSBjdXJyZW50SW5kZXggPD0gMCA/IHJhZGlvQ2lyY2xlcy5sZW5ndGggLSAxIDogY3VycmVudEluZGV4IC0gMTtcbiAgICAocmFkaW9DaXJjbGVzW3ByZXZJbmRleF0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gIH1cbn0iLCAiaW1wb3J0IHsgaHRtbCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+YDsiLCAiaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtZm9ybS1zdWJtaXQuZGVtby5qcyc7XG5pbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBEZWVzRWxlbWVudCxcbiAgY3NzLFxuICBjc3NNYW5hZ2VyLFxuICBwcm9wZXJ0eSxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB0eXBlIHsgRGVlc0Zvcm0gfSBmcm9tICcuLi9kZWVzLWZvcm0vZGVlcy1mb3JtLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWZvcm0tc3VibWl0JzogRGVlc0Zvcm1TdWJtaXQ7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtZm9ybS1zdWJtaXQnKVxuZXhwb3J0IGNsYXNzIERlZXNGb3JtU3VibWl0IGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnRm9ybSc7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIHJlZmxlY3Q6IHRydWUsXG4gIH0pXG4gIGFjY2Vzc29yIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0pXG4gIGFjY2Vzc29yIHRleHQ6IHN0cmluZztcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IFN0cmluZyxcbiAgfSlcbiAgYWNjZXNzb3Igc3RhdHVzOiAnbm9ybWFsJyB8ICdwZW5kaW5nJyB8ICdzdWNjZXNzJyB8ICdlcnJvcicgPSAnbm9ybWFsJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIFxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFt0aGVtZURlZmF1bHRTdHlsZXMsIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcywgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICBgXTtcblxuICBwdWJsaWMgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRlZXMtYnV0dG9uXG4gICAgICAgIHN0YXR1cz1cIiR7dGhpcy5zdGF0dXN9XCJcbiAgICAgICAgQGNsaWNrPVwiJHt0aGlzLnN1Ym1pdH1cIlxuICAgICAgICA/ZGlzYWJsZWQ9XCIke3RoaXMuZGlzYWJsZWR9XCJcbiAgICAgID5cbiAgICAgICAgJHt0aGlzLnRleHQgfHwgaHRtbGA8c2xvdD48L3Nsb3Q+YH1cbiAgICAgIDwvZGVlcy1idXR0b24+XG4gICAgYDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gV2FsayB1cCB0aGUgRE9NIHRyZWUgdG8gZmluZCB0aGUgbmVhcmVzdCBkZWVzLWZvcm0gZWxlbWVudFxuICAgIGNvbnN0IHBhcmVudEZvcm1FbGVtZW50ID0gdGhpcy5jbG9zZXN0KCdkZWVzLWZvcm0nKSBhcyBEZWVzRm9ybTtcbiAgICBpZiAocGFyZW50Rm9ybUVsZW1lbnQgJiYgcGFyZW50Rm9ybUVsZW1lbnQuZ2F0aGVyQW5kRGlzcGF0Y2gpIHtcbiAgICAgIHBhcmVudEZvcm1FbGVtZW50LmdhdGhlckFuZERpc3BhdGNoKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGZvY3VzKCkge1xuICAgIGNvbnN0IGRvbXRvb2xzID0gYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBhd2FpdCBkb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO1xuICAgICAgdGhpcy5zdWJtaXQoKTtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBodG1sLCBjc3MgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICdAZGVzaWduLmVzdGF0ZS9kZWVzLXdjY3Rvb2xzL2RlbW90b29scyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtcGFuZWwvZGVlcy1wYW5lbC5qcyc7XG5pbXBvcnQgJy4uLy4uLzAwZ3JvdXAtZm9ybS9kZWVzLWZvcm0vZGVlcy1mb3JtLmpzJztcbmltcG9ydCAnLi4vLi4vMDBncm91cC1mb3JtL2RlZXMtZm9ybS1zdWJtaXQvZGVlcy1mb3JtLXN1Ym1pdC5qcyc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG4gIDxzdHlsZT5cbiAgICAke2Nzc2BcbiAgICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgICAgXG4gICAgICBkZWVzLXBhbmVsIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmhvcml6b250YWwtZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnNwYWNlciB7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBjb2xvcjogIzk5OTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuICAgIGB9XG4gIDwvc3R5bGU+XG4gIFxuICA8ZGl2IGNsYXNzPVwiZGVtby1jb250YWluZXJcIj5cbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIC8vIERlbW9uc3RyYXRlIHByb2dyYW1tYXRpYyBpbnRlcmFjdGlvbiB3aXRoIGJhc2ljIGRyb3Bkb3duc1xuICAgICAgY29uc3QgY291bnRyeURyb3Bkb3duID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2xhYmVsPVwiU2VsZWN0IENvdW50cnlcIl0nKTtcbiAgICAgIGNvbnN0IHJvbGVEcm9wZG93biA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltsYWJlbD1cIlNlbGVjdCBSb2xlXCJdJyk7XG4gICAgICBcbiAgICAgIC8vIExvZyB3aGVuIGNvdW50cnkgY2hhbmdlc1xuICAgICAgaWYgKGNvdW50cnlEcm9wZG93bikge1xuICAgICAgICBjb3VudHJ5RHJvcGRvd24uYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0ZWRPcHRpb24nLCAoZXZlbnQ6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0NvdW50cnkgc2VsZWN0ZWQ6JywgZXZlbnQuZGV0YWlsKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIExvZyB3aGVuIHJvbGUgY2hhbmdlc1xuICAgICAgaWYgKHJvbGVEcm9wZG93bikge1xuICAgICAgICByb2xlRHJvcGRvd24uYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0ZWRPcHRpb24nLCAoZXZlbnQ6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1JvbGUgc2VsZWN0ZWQ6JywgZXZlbnQuZGV0YWlsKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfX0+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnMS4gQmFzaWMgRHJvcGRvd25zJ30gLnN1YnRpdGxlPSR7J1N0YW5kYXJkIGRyb3Bkb3duIHdpdGggc2VhcmNoIGZ1bmN0aW9uYWxpdHkgYW5kIHZhcmlvdXMgb3B0aW9ucyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93blxuICAgICAgICAgIC5sYWJlbD0keydTZWxlY3QgQ291bnRyeSd9XG4gICAgICAgICAgLm9wdGlvbnM9JHtbXG4gICAgICAgICAgICB7IG9wdGlvbjogJ1VuaXRlZCBTdGF0ZXMnLCBrZXk6ICd1cycgfSxcbiAgICAgICAgICAgIHsgb3B0aW9uOiAnQ2FuYWRhJywga2V5OiAnY2EnIH0sXG4gICAgICAgICAgICB7IG9wdGlvbjogJ0dlcm1hbnknLCBrZXk6ICdkZScgfSxcbiAgICAgICAgICAgIHsgb3B0aW9uOiAnRnJhbmNlJywga2V5OiAnZnInIH0sXG4gICAgICAgICAgICB7IG9wdGlvbjogJ1VuaXRlZCBLaW5nZG9tJywga2V5OiAndWsnIH0sXG4gICAgICAgICAgICB7IG9wdGlvbjogJ0F1c3RyYWxpYScsIGtleTogJ2F1JyB9LFxuICAgICAgICAgICAgeyBvcHRpb246ICdKYXBhbicsIGtleTogJ2pwJyB9LFxuICAgICAgICAgICAgeyBvcHRpb246ICdCcmF6aWwnLCBrZXk6ICdicicgfVxuICAgICAgICAgIF19XG4gICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7eyBvcHRpb246ICdVbml0ZWQgU3RhdGVzJywga2V5OiAndXMnIH19XG4gICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93blxuICAgICAgICAgIC5sYWJlbD0keydTZWxlY3QgUm9sZSd9XG4gICAgICAgICAgLm9wdGlvbnM9JHtbXG4gICAgICAgICAgICB7IG9wdGlvbjogJ0FkbWluaXN0cmF0b3InLCBrZXk6ICdhZG1pbicgfSxcbiAgICAgICAgICAgIHsgb3B0aW9uOiAnRWRpdG9yJywga2V5OiAnZWRpdG9yJyB9LFxuICAgICAgICAgICAgeyBvcHRpb246ICdWaWV3ZXInLCBrZXk6ICd2aWV3ZXInIH0sXG4gICAgICAgICAgICB7IG9wdGlvbjogJ0d1ZXN0Jywga2V5OiAnZ3Vlc3QnIH1cbiAgICAgICAgICBdfVxuICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cbiAgICBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIC8vIERlbW9uc3RyYXRlIHNpbXBsZXIgZHJvcGRvd24gd2l0aG91dCBzZWFyY2hcbiAgICAgIGNvbnN0IHByaW9yaXR5RHJvcGRvd24gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd24nKTtcbiAgICAgIFxuICAgICAgaWYgKHByaW9yaXR5RHJvcGRvd24pIHtcbiAgICAgICAgcHJpb3JpdHlEcm9wZG93bi5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3RlZE9wdGlvbicsIChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgUHJpb3JpdHkgY2hhbmdlZCB0bzogJHtldmVudC5kZXRhaWwub3B0aW9ufWApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keycyLiBXaXRob3V0IFNlYXJjaCd9IC5zdWJ0aXRsZT0keydEcm9wZG93biB3aXRoIHNlYXJjaCBmdW5jdGlvbmFsaXR5IGRpc2FibGVkIGZvciBzaW1wbGVyIHNlbGVjdGlvbid9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93blxuICAgICAgICAgIC5sYWJlbD0keydQcmlvcml0eSBMZXZlbCd9XG4gICAgICAgICAgLmVuYWJsZVNlYXJjaD0ke2ZhbHNlfVxuICAgICAgICAgIC5vcHRpb25zPSR7W1xuICAgICAgICAgICAgeyBvcHRpb246ICdIaWdoJywga2V5OiAnaGlnaCcgfSxcbiAgICAgICAgICAgIHsgb3B0aW9uOiAnTWVkaXVtJywga2V5OiAnbWVkaXVtJyB9LFxuICAgICAgICAgICAgeyBvcHRpb246ICdMb3cnLCBrZXk6ICdsb3cnIH1cbiAgICAgICAgICBdfVxuICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3sgb3B0aW9uOiAnTWVkaXVtJywga2V5OiAnbWVkaXVtJyB9fVxuICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cbiAgICBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIC8vIERlbW9uc3RyYXRlIGhvcml6b250YWwgbGF5b3V0IHdpdGggbXVsdGlwbGUgZHJvcGRvd25zXG4gICAgICBjb25zdCBkcm9wZG93bnMgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtaW5wdXQtZHJvcGRvd24nKTtcbiAgICAgIFxuICAgICAgLy8gTG9nIGFsbCBjaGFuZ2VzIGZyb20gaG9yaXpvbnRhbCBkcm9wZG93bnNcbiAgICAgIGRyb3Bkb3ducy5mb3JFYWNoKChkcm9wZG93bikgPT4ge1xuICAgICAgICBkcm9wZG93bi5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3RlZE9wdGlvbicsIChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IGRyb3Bkb3duLmdldEF0dHJpYnV0ZSgnbGFiZWwnKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgJHtsYWJlbH06ICR7ZXZlbnQuZGV0YWlsLm9wdGlvbn1gKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyczLiBIb3Jpem9udGFsIExheW91dCd9IC5zdWJ0aXRsZT0keydNdWx0aXBsZSBkcm9wZG93bnMgaW4gYSBob3Jpem9udGFsIGxheW91dCBmb3IgY29tcGFjdCBmb3Jtcyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1ncm91cFwiPlxuICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duXG4gICAgICAgICAgICAubGFiZWw9JHsnRGVwYXJ0bWVudCd9XG4gICAgICAgICAgICAubGF5b3V0TW9kZT0keydob3Jpem9udGFsJ31cbiAgICAgICAgICAgIC5vcHRpb25zPSR7W1xuICAgICAgICAgICAgICB7IG9wdGlvbjogJ0VuZ2luZWVyaW5nJywga2V5OiAnZW5nJyB9LFxuICAgICAgICAgICAgICB7IG9wdGlvbjogJ0Rlc2lnbicsIGtleTogJ2Rlc2lnbicgfSxcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdNYXJrZXRpbmcnLCBrZXk6ICdtYXJrZXRpbmcnIH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnU2FsZXMnLCBrZXk6ICdzYWxlcycgfVxuICAgICAgICAgICAgXX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duXG4gICAgICAgICAgICAubGFiZWw9JHsnVGVhbSBTaXplJ31cbiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7J2hvcml6b250YWwnfVxuICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0ke2ZhbHNlfVxuICAgICAgICAgICAgLm9wdGlvbnM9JHtbXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnMS01Jywga2V5OiAnc21hbGwnIH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnNi0yMCcsIGtleTogJ21lZGl1bScgfSxcbiAgICAgICAgICAgICAgeyBvcHRpb246ICcyMS01MCcsIGtleTogJ2xhcmdlJyB9LFxuICAgICAgICAgICAgICB7IG9wdGlvbjogJzUwKycsIGtleTogJ3hsYXJnZScgfVxuICAgICAgICAgICAgXX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duXG4gICAgICAgICAgICAubGFiZWw9JHsnTG9jYXRpb24nfVxuICAgICAgICAgICAgLmxheW91dE1vZGU9JHsnaG9yaXpvbnRhbCd9XG4gICAgICAgICAgICAub3B0aW9ucz0ke1tcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdSZW1vdGUnLCBrZXk6ICdyZW1vdGUnIH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnT24tc2l0ZScsIGtleTogJ29uc2l0ZScgfSxcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdIeWJyaWQnLCBrZXk6ICdoeWJyaWQnIH1cbiAgICAgICAgICAgIF19XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICAgIFxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gRGVtb25zdHJhdGUgc3RhdGUgaGFuZGxpbmdcbiAgICAgIGNvbnN0IHJlcXVpcmVkRHJvcGRvd24gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25bcmVxdWlyZWRdJyk7XG4gICAgICBcbiAgICAgIGlmIChyZXF1aXJlZERyb3Bkb3duKSB7XG4gICAgICAgIC8vIFNob3cgdmFsaWRhdGlvbiBzdGF0ZSBjaGFuZ2VzXG4gICAgICAgIHJlcXVpcmVkRHJvcGRvd24uYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUmVxdWlyZWQgZHJvcGRvd24gbG9zdCBmb2N1cycpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc0LiBTdGF0ZXMnfSAuc3VidGl0bGU9JHsnRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd25cbiAgICAgICAgICAubGFiZWw9JHsnUmVxdWlyZWQgRmllbGQnfVxuICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgLm9wdGlvbnM9JHtbXG4gICAgICAgICAgICB7IG9wdGlvbjogJ09wdGlvbiBBJywga2V5OiAnYScgfSxcbiAgICAgICAgICAgIHsgb3B0aW9uOiAnT3B0aW9uIEInLCBrZXk6ICdiJyB9LFxuICAgICAgICAgICAgeyBvcHRpb246ICdPcHRpb24gQycsIGtleTogJ2MnIH1cbiAgICAgICAgICBdfVxuICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd25cbiAgICAgICAgICAubGFiZWw9JHsnRGlzYWJsZWQgRHJvcGRvd24nfVxuICAgICAgICAgIC5kaXNhYmxlZD0ke3RydWV9XG4gICAgICAgICAgLm9wdGlvbnM9JHtbXG4gICAgICAgICAgICB7IG9wdGlvbjogJ0Nhbm5vdCBTZWxlY3QnLCBrZXk6ICdkaXNhYmxlZCcgfVxuICAgICAgICAgIF19XG4gICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7eyBvcHRpb246ICdDYW5ub3QgU2VsZWN0Jywga2V5OiAnZGlzYWJsZWQnIH19XG4gICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJzcGFjZXJcIj5cbiAgICAgIChTcGFjZXIgdG8gdGVzdCBkcm9wZG93biBwb3NpdGlvbmluZylcbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIC8vIFRoaXMgZHJvcGRvd24gZGVtb25zdHJhdGVzIGF1dG9tYXRpYyBwb3NpdGlvbmluZ1xuICAgICAgY29uc3QgZHJvcGRvd24gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd24nKTtcbiAgICAgIFxuICAgICAgaWYgKGRyb3Bkb3duKSB7XG4gICAgICAgIGRyb3Bkb3duLmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGVkT3B0aW9uJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdCb3R0b20gZHJvcGRvd24gc2VsZWN0ZWQ6JywgZXZlbnQuZGV0YWlsKTtcbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBOb3RlOiBUaGUgZHJvcGRvd24gYXV0b21hdGljYWxseSBkZXRlY3RzIGF2YWlsYWJsZSBzcGFjZVxuICAgICAgICAvLyBhbmQgb3BlbnMgdXB3YXJkIHdoZW4gbmVhciB0aGUgYm90dG9tIG9mIHRoZSB2aWV3cG9ydFxuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzUuIEJvdHRvbSBQb3NpdGlvbmluZyd9IC5zdWJ0aXRsZT0keydEcm9wZG93biB0aGF0IG9wZW5zIHVwd2FyZCB3aGVuIG5lYXIgYm90dG9tIG9mIHZpZXdwb3J0J30+XG4gICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duXG4gICAgICAgICAgLmxhYmVsPSR7J09wZW5zIFVwd2FyZCd9XG4gICAgICAgICAgLm9wdGlvbnM9JHtbXG4gICAgICAgICAgICB7IG9wdGlvbjogJ0ZpcnN0IE9wdGlvbicsIGtleTogJ2ZpcnN0JyB9LFxuICAgICAgICAgICAgeyBvcHRpb246ICdTZWNvbmQgT3B0aW9uJywga2V5OiAnc2Vjb25kJyB9LFxuICAgICAgICAgICAgeyBvcHRpb246ICdUaGlyZCBPcHRpb24nLCBrZXk6ICd0aGlyZCcgfSxcbiAgICAgICAgICAgIHsgb3B0aW9uOiAnRm91cnRoIE9wdGlvbicsIGtleTogJ2ZvdXJ0aCcgfSxcbiAgICAgICAgICAgIHsgb3B0aW9uOiAnRmlmdGggT3B0aW9uJywga2V5OiAnZmlmdGgnIH1cbiAgICAgICAgICBdfVxuICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cblxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gU2V0dXAgdGhlIGludGVyYWN0aXZlIHBheWxvYWQgZGlzcGxheVxuICAgICAgY29uc3QgZHJvcGRvd24gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd24nKTtcbiAgICAgIGNvbnN0IG91dHB1dCA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignI3NlbGVjdGlvbi1vdXRwdXQnKTtcbiAgICAgIFxuICAgICAgaWYgKGRyb3Bkb3duICYmIG91dHB1dCkge1xuICAgICAgICAvLyBJbml0aWFsaXplIG91dHB1dFxuICAgICAgICBvdXRwdXQuaW5uZXJIVE1MID0gJzxlbT5TZWxlY3QgYSBwcm9kdWN0IHRvIHNlZSBkZXRhaWxzLi4uPC9lbT4nO1xuICAgICAgICBcbiAgICAgICAgLy8gSGFuZGxlIGRyb3Bkb3duIGNoYW5nZXNcbiAgICAgICAgZHJvcGRvd24uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC5kZXRhaWwudmFsdWUpIHtcbiAgICAgICAgICAgIG91dHB1dC5pbm5lckhUTUwgPSBgXG4gICAgICAgICAgICAgIDxzdHJvbmc+U2VsZWN0ZWQ6PC9zdHJvbmc+ICR7ZXZlbnQuZGV0YWlsLnZhbHVlLm9wdGlvbn08YnI+XG4gICAgICAgICAgICAgIDxzdHJvbmc+S2V5Ojwvc3Ryb25nPiAke2V2ZW50LmRldGFpbC52YWx1ZS5rZXl9PGJyPlxuICAgICAgICAgICAgICA8c3Ryb25nPlByaWNlOjwvc3Ryb25nPiAkJHtldmVudC5kZXRhaWwudmFsdWUucGF5bG9hZD8ucHJpY2UgfHwgJ04vQSd9PGJyPlxuICAgICAgICAgICAgICA8c3Ryb25nPkZlYXR1cmVzOjwvc3Ryb25nPiAke2V2ZW50LmRldGFpbC52YWx1ZS5wYXlsb2FkPy5mZWF0dXJlcz8uam9pbignLCAnKSB8fCAnTi9BJ31cbiAgICAgICAgICAgIGA7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc2LiBFdmVudCBIYW5kbGluZyAmIFBheWxvYWQnfSAuc3VidGl0bGU9JHsnRHJvcGRvd24gd2l0aCBwYXlsb2FkIGRhdGEgYW5kIGNoYW5nZSBldmVudCBoYW5kbGluZyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93blxuICAgICAgICAgIC5sYWJlbD0keydTZWxlY3QgUHJvZHVjdCd9XG4gICAgICAgICAgLm9wdGlvbnM9JHtbXG4gICAgICAgICAgICB7IG9wdGlvbjogJ0Jhc2ljIFBsYW4nLCBrZXk6ICdiYXNpYycsIHBheWxvYWQ6IHsgcHJpY2U6IDkuOTksIGZlYXR1cmVzOiBbJ0ZlYXR1cmUgQSddIH0gfSxcbiAgICAgICAgICAgIHsgb3B0aW9uOiAnUHJvIFBsYW4nLCBrZXk6ICdwcm8nLCBwYXlsb2FkOiB7IHByaWNlOiAxOS45OSwgZmVhdHVyZXM6IFsnRmVhdHVyZSBBJywgJ0ZlYXR1cmUgQiddIH0gfSxcbiAgICAgICAgICAgIHsgb3B0aW9uOiAnRW50ZXJwcmlzZSBQbGFuJywga2V5OiAnZW50ZXJwcmlzZScsIHBheWxvYWQ6IHsgcHJpY2U6IDQ5Ljk5LCBmZWF0dXJlczogWydGZWF0dXJlIEEnLCAnRmVhdHVyZSBCJywgJ0ZlYXR1cmUgQyddIH0gfVxuICAgICAgICAgIF19XG4gICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGlkPVwic2VsZWN0aW9uLW91dHB1dFwiIHN0eWxlPVwibWFyZ2luLXRvcDogMTZweDsgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogcmdiYSgwLCAxMDUsIDI0MiwgMC4xKTsgYm9yZGVyLXJhZGl1czogNHB4OyBmb250LXNpemU6IDE0cHg7XCI+PC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuXG4gICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKGVsZW1lbnRBcmc6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAvLyBEZW1vbnN0cmF0ZSBmb3JtIGludGVncmF0aW9uIGFuZCB2YWxpZGF0aW9uXG4gICAgICBjb25zdCBmb3JtID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWZvcm0nKTtcbiAgICAgIGNvbnN0IHByb2plY3RUeXBlRHJvcGRvd24gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PVwicHJvamVjdFR5cGVcIl0nKTtcbiAgICAgIGNvbnN0IGZyYW1ld29ya0Ryb3Bkb3duID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2tleT1cImZyYW1ld29ya1wiXScpO1xuICAgICAgXG4gICAgICBpZiAoZm9ybSkge1xuICAgICAgICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ2Zvcm1EYXRhJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdGb3JtIHN1Ym1pdHRlZCB3aXRoIGRhdGE6JywgZXZlbnQuZGV0YWlsLmRhdGEpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaWYgKHByb2plY3RUeXBlRHJvcGRvd24gJiYgZnJhbWV3b3JrRHJvcGRvd24pIHtcbiAgICAgICAgLy8gRmlsdGVyIGZyYW1ld29ya3MgYmFzZWQgb24gcHJvamVjdCB0eXBlXG4gICAgICAgIHByb2plY3RUeXBlRHJvcGRvd24uYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0ZWRPcHRpb24nLCAoZXZlbnQ6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUeXBlID0gZXZlbnQuZGV0YWlsLmtleTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgUHJvamVjdCB0eXBlIGNoYW5nZWQgdG86ICR7c2VsZWN0ZWRUeXBlfWApO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIEluIGEgcmVhbCBhcHAsIHlvdSBjb3VsZCBmaWx0ZXIgdGhlIGZyYW1ld29yayBvcHRpb25zIGJhc2VkIG9uIHByb2plY3QgdHlwZVxuICAgICAgICAgIC8vIEZvciBkZW1vIHB1cnBvc2VzLCB3ZSBqdXN0IGxvZyB0aGUgY2hhbmdlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzcuIEZvcm0gSW50ZWdyYXRpb24nfSAuc3VidGl0bGU9JHsnRHJvcGRvd24gd29ya2luZyB3aXRoaW4gYSBmb3JtIHdpdGggdmFsaWRhdGlvbid9PlxuICAgICAgICA8ZGVlcy1mb3JtPlxuICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duXG4gICAgICAgICAgICAubGFiZWw9JHsnUHJvamVjdCBUeXBlJ31cbiAgICAgICAgICAgIC5rZXk9JHsncHJvamVjdFR5cGUnfVxuICAgICAgICAgICAgLnJlcXVpcmVkPSR7dHJ1ZX1cbiAgICAgICAgICAgIC5vcHRpb25zPSR7W1xuICAgICAgICAgICAgICB7IG9wdGlvbjogJ1dlYiBBcHBsaWNhdGlvbicsIGtleTogJ3dlYicgfSxcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdNb2JpbGUgQXBwbGljYXRpb24nLCBrZXk6ICdtb2JpbGUnIH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnRGVza3RvcCBBcHBsaWNhdGlvbicsIGtleTogJ2Rlc2t0b3AnIH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnQVBJIFNlcnZpY2UnLCBrZXk6ICdhcGknIH1cbiAgICAgICAgICAgIF19XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93blxuICAgICAgICAgICAgLmxhYmVsPSR7J0RldmVsb3BtZW50IEZyYW1ld29yayd9XG4gICAgICAgICAgICAua2V5PSR7J2ZyYW1ld29yayd9XG4gICAgICAgICAgICAucmVxdWlyZWQ9JHt0cnVlfVxuICAgICAgICAgICAgLm9wdGlvbnM9JHtbXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnUmVhY3QnLCBrZXk6ICdyZWFjdCcsIHBheWxvYWQ6IHsgdHlwZTogJ3dlYicgfSB9LFxuICAgICAgICAgICAgICB7IG9wdGlvbjogJ1Z1ZS5qcycsIGtleTogJ3Z1ZScsIHBheWxvYWQ6IHsgdHlwZTogJ3dlYicgfSB9LFxuICAgICAgICAgICAgICB7IG9wdGlvbjogJ0FuZ3VsYXInLCBrZXk6ICdhbmd1bGFyJywgcGF5bG9hZDogeyB0eXBlOiAnd2ViJyB9IH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnUmVhY3QgTmF0aXZlJywga2V5OiAncmVhY3QtbmF0aXZlJywgcGF5bG9hZDogeyB0eXBlOiAnbW9iaWxlJyB9IH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnRmx1dHRlcicsIGtleTogJ2ZsdXR0ZXInLCBwYXlsb2FkOiB7IHR5cGU6ICdtb2JpbGUnIH0gfSxcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdFbGVjdHJvbicsIGtleTogJ2VsZWN0cm9uJywgcGF5bG9hZDogeyB0eXBlOiAnZGVza3RvcCcgfSB9XG4gICAgICAgICAgICBdfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsnQ3JlYXRlIFByb2plY3QnfT48L2RlZXMtZm9ybS1zdWJtaXQ+XG4gICAgICAgIDwvZGVlcy1mb3JtPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cbiAgPC9kaXY+XG5gIiwgImltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHByb3BlcnR5LFxuICBzdGF0ZSxcbiAgaHRtbCxcbiAgY3NzLFxuICBjc3NNYW5hZ2VyLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICogYXMgZG9tdG9vbHMgZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1pbnB1dC1kcm9wZG93bi5kZW1vLmpzJztcbmltcG9ydCB7IERlZXNJbnB1dEJhc2UgfSBmcm9tICcuLi9kZWVzLWlucHV0LWJhc2UvZGVlcy1pbnB1dC1iYXNlLmpzJztcbmltcG9ydCB7IGNzc0dlaXN0Rm9udEZhbWlseSB9IGZyb20gJy4uLy4uLzAwZm9udHMuanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtaW5wdXQtZHJvcGRvd24nOiBEZWVzSW5wdXREcm9wZG93bjtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1pbnB1dC1kcm9wZG93bicpXG5leHBvcnQgY2xhc3MgRGVlc0lucHV0RHJvcGRvd24gZXh0ZW5kcyBEZWVzSW5wdXRCYXNlPERlZXNJbnB1dERyb3Bkb3duPiB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdJbnB1dCc7XG5cbiAgLy8gSU5TVEFOQ0VcblxuICBAcHJvcGVydHkoKVxuICBhY2Nlc3NvciBvcHRpb25zOiB7IG9wdGlvbjogc3RyaW5nOyBrZXk6IHN0cmluZzsgcGF5bG9hZD86IGFueSB9W10gPSBbXTtcblxuICBAcHJvcGVydHkoKVxuICBhY2Nlc3NvciBzZWxlY3RlZE9wdGlvbjogeyBvcHRpb246IHN0cmluZzsga2V5OiBzdHJpbmc7IHBheWxvYWQ/OiBhbnkgfSA9IG51bGw7XG5cbiAgLy8gQWRkIHZhbHVlIHByb3BlcnR5IGZvciBmb3JtIGNvbXBhdGliaWxpdHlcbiAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsOiB7IG9wdGlvbjogc3RyaW5nOyBrZXk6IHN0cmluZzsgcGF5bG9hZD86IGFueSB9KSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHZhbDtcbiAgfVxuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSlcbiAgYWNjZXNzb3IgZW5hYmxlU2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBvcGVuc1RvVG9wOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgZmlsdGVyZWRPcHRpb25zOiB7IG9wdGlvbjogc3RyaW5nOyBrZXk6IHN0cmluZzsgcGF5bG9hZD86IGFueSB9W10gPSBbXTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBoaWdobGlnaHRlZEluZGV4OiBudW1iZXIgPSAwO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGlzT3BlbmVkID0gZmFsc2U7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3Igc2VhcmNoVmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICAuLi5EZWVzSW5wdXRCYXNlLmJhc2VTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICAqIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cblxuICAgICAgOmhvc3Qge1xuICAgICAgICBmb250LWZhbWlseTogJHtjc3NHZWlzdEZvbnRGYW1pbHl9O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTUlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAubWFpbmNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5zZWxlY3RlZEJveCB7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDQwcHggMCAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTUlKScpfTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLnNlbGVjdGVkQm94OmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNzkuOCUpJywgJ2hzbCgwIDAlIDIwLjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLnNlbGVjdGVkQm94OmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUpJywgJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSknKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKScsICdoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpJyl9O1xuICAgICAgfVxuXG4gICAgICAuc2VsZWN0ZWRCb3guZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUuMSUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA2My45JSknLCAnaHNsKDAgMCUgNDUuMSUpJyl9O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG5cbiAgICAgIC8qIERyb3Bkb3duIGFycm93ICovXG4gICAgICAuc2VsZWN0ZWRCb3g6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDEycHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1LjElKScsICdoc2woMCAwJSA2My45JSknKX07XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuc2VsZWN0ZWRCb3gub3Blbjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5zZWxlY3Rpb25Cb3gge1xuICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSBzY2FsZSgwLjk4KTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDMuOSUpJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgei1pbmRleDogNTA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuc2VsZWN0aW9uQm94LnRvcCB7XG4gICAgICAgIGJvdHRvbTogY2FsYygxMDAlICsgNHB4KTtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuc2VsZWN0aW9uQm94LmJvdHRvbSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnNlbGVjdGlvbkJveC5zaG93IHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAvKiBPcHRpb25zIGNvbnRhaW5lciAqL1xuICAgICAgLm9wdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgIH1cblxuICAgICAgLyogT3B0aW9ucyAqL1xuICAgICAgLm9wdGlvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgcGFkZGluZzogMCA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgbWFyZ2luOiAycHggMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTUlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAub3B0aW9uLmhpZ2hsaWdodGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk1LjElKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5vcHRpb246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUuMSUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogTm8gb3B0aW9ucyBtZXNzYWdlICovXG4gICAgICAubm8tb3B0aW9ucyB7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNDUuMSUpJywgJ2hzbCgwIDAlIDYzLjklKScpfTtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgfVxuXG4gICAgICAvKiBTZWFyY2ggKi9cbiAgICAgIC5zZWFyY2gge1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuc2VhcmNoLmJvdHRvbSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuc2VhcmNoIGlucHV0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuc2VhcmNoIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNjMuOSUpJywgJ2hzbCgwIDAlIDQ1LjElKScpfTtcbiAgICAgIH1cblxuICAgICAgLnNlYXJjaCBpbnB1dDpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIuMiA0Ny40JSA1MS4yJSknLCAnaHNsKDIxNy4yIDkxLjIlIDU5LjglKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi9cbiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgfVxuXG4gICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgfVxuXG4gICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDc5LjglKScsICdoc2woMCAwJSAyMC45JSknKX07XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkQm94ICR7dGhpcy5pc09wZW5lZCA/ICdvcGVuJyA6ICcnfSAke3RoaXMuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJyd9XCJcbiAgICAgICAgICAgIEBjbGljaz1cIiR7KCkgPT4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKX1cIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCIke3RoaXMuZGlzYWJsZWQgPyAnLTEnIDogJzAnfVwiXG4gICAgICAgICAgICBAa2V5ZG93bj1cIiR7dGhpcy5oYW5kbGVTZWxlY3RlZEJveEtleWRvd259XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWRPcHRpb24/Lm9wdGlvbiB8fCAnU2VsZWN0IGFuIG9wdGlvbid9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGlvbkJveCAke3RoaXMuaXNPcGVuZWQgPyAnc2hvdycgOiAnJ30gJHt0aGlzLm9wZW5zVG9Ub3AgPyAndG9wJyA6ICdib3R0b20nfVwiPlxuICAgICAgICAgICAgJHt0aGlzLmVuYWJsZVNlYXJjaFxuICAgICAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiIFxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIG9wdGlvbnMuLi5cIiBcbiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9XCIke3RoaXMuc2VhcmNoVmFsdWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9XCIke3RoaXMuaGFuZGxlU2VhcmNofVwiXG4gICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiJHsoZTogRXZlbnQpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XCJcbiAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bj1cIiR7dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3dufVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgIDogbnVsbH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25zLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAke3RoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwibm8tb3B0aW9uc1wiPk5vIG9wdGlvbnMgZm91bmQ8L2Rpdj5gXG4gICAgICAgICAgICAgICAgOiB0aGlzLmZpbHRlcmVkT3B0aW9ucy5tYXAoKG9wdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNIaWdobGlnaHRlZCA9IHRoaXMuaGlnaGxpZ2h0ZWRJbmRleCA9PT0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwib3B0aW9uICR7aXNIaWdobGlnaHRlZCA/ICdoaWdobGlnaHRlZCcgOiAnJ31cIlxuICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiJHsoKSA9PiB0aGlzLnVwZGF0ZVNlbGVjdGlvbihvcHRpb24pfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj1cIiR7KCkgPT4gdGhpcy5oaWdobGlnaHRlZEluZGV4ID0gaW5kZXh9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAke29wdGlvbi5vcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIGA7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgYXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSA9IHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlLmJpbmQodGhpcyk7XG4gIH1cblxuICBmaXJzdFVwZGF0ZWQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMuc2VsZWN0ZWRPcHRpb24gfHwgbnVsbDtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgfVxuXG4gIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcsIGFueT4pIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdvcHRpb25zJykpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVTZWxlY3Rpb24oc2VsZWN0ZWRPcHRpb246IHsgb3B0aW9uOiBzdHJpbmc7IGtleTogc3RyaW5nOyBwYXlsb2FkPzogYW55IH0pIHtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gc2VsZWN0ZWRPcHRpb247XG4gICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAnJztcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICB0aGlzLmhpZ2hsaWdodGVkSW5kZXggPSAwO1xuXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdzZWxlY3RlZE9wdGlvbicsIHtcbiAgICAgICAgZGV0YWlsOiBzZWxlY3RlZE9wdGlvbixcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcbiAgICBcbiAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGV2ZW50LmNvbXBvc2VkUGF0aCgpO1xuICAgIGlmICghcGF0aC5pbmNsdWRlcyh0aGlzKSkge1xuICAgICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICB9XG4gIH07XG4gIFxuICBwdWJsaWMgYXN5bmMgdG9nZ2xlU2VsZWN0aW9uQm94KCkge1xuICAgIHRoaXMuaXNPcGVuZWQgPSAhdGhpcy5pc09wZW5lZDtcbiAgICBcbiAgICBpZiAodGhpcy5pc09wZW5lZCkge1xuICAgICAgLy8gQ2hlY2sgYXZhaWxhYmxlIHNwYWNlIGFuZCBzZXQgcG9zaXRpb25cbiAgICAgIGNvbnN0IHNlbGVjdGVkQm94ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZEJveCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgcmVjdCA9IHNlbGVjdGVkQm94LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3Qgc3BhY2VCZWxvdyA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHJlY3QuYm90dG9tO1xuICAgICAgY29uc3Qgc3BhY2VBYm92ZSA9IHJlY3QudG9wO1xuICAgICAgXG4gICAgICAvLyBEZXRlcm1pbmUgaWYgd2Ugc2hvdWxkIG9wZW4gdXB3YXJkc1xuICAgICAgdGhpcy5vcGVuc1RvVG9wID0gc3BhY2VCZWxvdyA8IDMwMCAmJiBzcGFjZUFib3ZlID4gc3BhY2VCZWxvdztcbiAgICAgIFxuICAgICAgLy8gRm9jdXMgc2VhcmNoIGlucHV0IGlmIHByZXNlbnRcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7XG4gICAgICBjb25zdCBzZWFyY2hJbnB1dCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuc2VhcmNoIGlucHV0JykgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgIGlmIChzZWFyY2hJbnB1dCkge1xuICAgICAgICBzZWFyY2hJbnB1dC5mb2N1cygpO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBBZGQgY2xpY2sgb3V0c2lkZSBsaXN0ZW5lclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVDbGlja091dHNpZGUpO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENsZWFudXBcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAnJztcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTZWFyY2goZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc2VhcmNoVGVybSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHNlYXJjaFRlcm07XG4gICAgY29uc3Qgc2VhcmNoTG93ZXIgPSBzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+XG4gICAgICBvcHRpb24ub3B0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoTG93ZXIpXG4gICAgKTtcbiAgICB0aGlzLmhpZ2hsaWdodGVkSW5kZXggPSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xuICAgIGNvbnN0IG1heEluZGV4ID0gdGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoIC0gMTtcblxuICAgIGlmIChrZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5oaWdobGlnaHRlZEluZGV4ID0gdGhpcy5oaWdobGlnaHRlZEluZGV4ICsgMSA+IG1heEluZGV4ID8gMCA6IHRoaXMuaGlnaGxpZ2h0ZWRJbmRleCArIDE7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRJbmRleCA9IHRoaXMuaGlnaGxpZ2h0ZWRJbmRleCAtIDEgPCAwID8gbWF4SW5kZXggOiB0aGlzLmhpZ2hsaWdodGVkSW5kZXggLSAxO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnRW50ZXInKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKHRoaXMuZmlsdGVyZWRPcHRpb25zW3RoaXMuaGlnaGxpZ2h0ZWRJbmRleF0pIHtcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3Rpb24odGhpcy5maWx0ZXJlZE9wdGlvbnNbdGhpcy5oaWdobGlnaHRlZEluZGV4XSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VhcmNoS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5oYW5kbGVLZXlEb3duKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNlbGVjdGVkQm94S2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudG9nZ2xlU2VsZWN0aW9uQm94KCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKCF0aGlzLmlzT3BlbmVkKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlU2VsZWN0aW9uQm94KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKHRoaXMuaXNPcGVuZWQpIHtcbiAgICAgICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiB7IG9wdGlvbjogc3RyaW5nOyBrZXk6IHN0cmluZzsgcGF5bG9hZD86IGFueSB9IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogeyBvcHRpb246IHN0cmluZzsga2V5OiBzdHJpbmc7IHBheWxvYWQ/OiBhbnkgfSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB2YWx1ZTtcbiAgfVxuICBcbiAgYXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgfVxufSIsICJpbXBvcnQgeyBjc3MsIGNzc01hbmFnZXIsIGh0bWwgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICcuL2NvbXBvbmVudC5qcyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtcGFuZWwvZGVlcy1wYW5lbC5qcyc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG4gIDxkZWVzLWRlbW93cmFwcGVyPlxuICAgIDxzdHlsZT5cbiAgICAgICR7Y3NzYFxuICAgICAgICAuZGVtby1zaGVsbCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogMzJweDtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICAgIG1heC13aWR0aDogMTE2MHB4O1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRlbW8tZ3JpZCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgICAgICAuZGVtby1ncmlkLS10d28ge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kZW1vLXN0YWNrIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZ2FwOiAxOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmRlbW8tbm90ZSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTcgOTElIDkwJSknLCAnaHNsKDIxNSAyMCUgMjYlKScpfTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMyAxMDAlIDk3JSknLCAnaHNsKDIxNSAyMCUgMTIlKScpfTtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUgMjUlIDMyJSknLCAnaHNsKDIxNSAyMCUgODIlKScpfTtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTU7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVtby1ub3RlIHN0cm9uZyB7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE3IDkxJSA0NSUpJywgJ2hzbCgyMTMgOTMlIDY4JSknKX07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgICA8L3N0eWxlPlxuXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tc2hlbGxcIj5cbiAgICAgIDxkZWVzLXBhbmVsXG4gICAgICAgIC50aXRsZT0keydNb2Rlcm4gZmlsZSB1cGxvYWRlcid9XG4gICAgICAgIC5zdWJ0aXRsZT0keydTaGFkY24taW5zcGlyZWQgbGF5b3V0IHdpdGggZHJhZyAmIGRyb3AsIHByZXZpZXdzIGFuZCB2YWxpZGF0aW9uJ31cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlbW8tZ3JpZCBkZW1vLWdyaWQtLXR3b1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXN0YWNrXCI+XG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkXG4gICAgICAgICAgICAgIC5sYWJlbD0keydBdHRhY2htZW50cyd9XG4gICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydVcGxvYWQgc3VwcG9ydGluZyBkb2N1bWVudHMgZm9yIHlvdXIgcmVxdWVzdCd9XG4gICAgICAgICAgICAgIC5hY2NlcHQ9JHsnaW1hZ2UvKiwucGRmLC56aXAnfVxuICAgICAgICAgICAgICAubWF4U2l6ZT0kezEwICogMTAyNCAqIDEwMjR9XG4gICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+XG5cbiAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWRcbiAgICAgICAgICAgICAgLmxhYmVsPSR7J0JyYW5kIGFzc2V0cyd9XG4gICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydVcGxvYWQgaGlnaC1yZXNvbHV0aW9uIGltYWdlcnkgKEpQRy9QTkcpJ31cbiAgICAgICAgICAgICAgLmFjY2VwdD0keydpbWFnZS9qcGVnLGltYWdlL3BuZyd9XG4gICAgICAgICAgICAgIC5tdWx0aXBsZT0ke2ZhbHNlfVxuICAgICAgICAgICAgICAubWF4U2l6ZT0kezUgKiAxMDI0ICogMTAyNH1cbiAgICAgICAgICAgICAgLmJ1dHRvblRleHQ9JHsnU2VsZWN0IGNvdmVyIGltYWdlJ31cbiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXN0YWNrXCI+XG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkXG4gICAgICAgICAgICAgIC5sYWJlbD0keydBdWRpbyB1cGxvYWRzJ31cbiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J1NoYXJlIHBvZGNhc3QgZHJhZnRzIChNUDMvV0FWLCBtYXggMjVNQiBlYWNoKSd9XG4gICAgICAgICAgICAgIC5hY2NlcHQ9JHsnYXVkaW8vKid9XG4gICAgICAgICAgICAgIC5tYXhTaXplPSR7MjUgKiAxMDI0ICogMTAyNH1cbiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD5cblxuICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZFxuICAgICAgICAgICAgICAubGFiZWw9JHsnRGlzYWJsZWQgZXhhbXBsZSd9XG4gICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydVcGxvYWRlciBpcyBkaXNhYmxlZCB3aGlsZSBtb2RlcmF0aW9uIGlzIHBlbmRpbmcnfVxuICAgICAgICAgICAgICAuZGlzYWJsZWQ9JHt0cnVlfVxuICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPGRlZXMtcGFuZWxcbiAgICAgICAgLnRpdGxlPSR7J0Zvcm0gaW50ZWdyYXRpb24nfVxuICAgICAgICAuc3VidGl0bGU9JHsnQ29tYmluZSBmaWxlIHVwbG9hZHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgREVFUyBmb3JtIGVjb3N5c3RlbSd9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLWdyaWRcIj5cbiAgICAgICAgICA8ZGVlcy1mb3JtPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbW8tc3RhY2tcIj5cbiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dFxuICAgICAgICAgICAgICAgIC5sYWJlbD0keydQcm9qZWN0IG5hbWUnfVxuICAgICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydIb3cgc2hvdWxkIHdlIHJlZmVyIHRvIHRoaXMgcHJvamVjdCBpbnRlcm5hbGx5Pyd9XG4gICAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7dHJ1ZX1cbiAgICAgICAgICAgICAgICAua2V5PSR7J3Byb2plY3ROYW1lJ31cbiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuXG4gICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHRcbiAgICAgICAgICAgICAgICAubGFiZWw9JHsnQ29udGFjdCBlbWFpbCd9XG4gICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keydlbWFpbCd9XG4gICAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7dHJ1ZX1cbiAgICAgICAgICAgICAgICAua2V5PSR7J2NvbnRhY3RFbWFpbCd9XG4gICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cblxuICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkXG4gICAgICAgICAgICAgICAgLmxhYmVsPSR7J1N0YXRlbWVudCBvZiB3b3JrJ31cbiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsnVXBsb2FkIGEgc2lnbmVkIHN0YXRlbWVudCBvZiB3b3JrIChQREYsIG1heCAxNU1CKSd9XG4gICAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7dHJ1ZX1cbiAgICAgICAgICAgICAgICAuYWNjZXB0PSR7J2FwcGxpY2F0aW9uL3BkZid9XG4gICAgICAgICAgICAgICAgLm1heFNpemU9JHsxNSAqIDEwMjQgKiAxMDI0fVxuICAgICAgICAgICAgICAgIC5tdWx0aXBsZT0ke2ZhbHNlfVxuICAgICAgICAgICAgICAgIC5rZXk9JHsnc293J31cbiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPlxuXG4gICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWRcbiAgICAgICAgICAgICAgICAubGFiZWw9JHsnQ3JlYXRpdmUgcmVmZXJlbmNlcyd9XG4gICAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J09wdGlvbmFsLiBVcGxvYWQgdXAgdG8gZml2ZSB2aXN1YWwgcmVmZXJlbmNlcyd9XG4gICAgICAgICAgICAgICAgLmFjY2VwdD0keydpbWFnZS8qJ31cbiAgICAgICAgICAgICAgICAubWF4RmlsZXM9JHs1fVxuICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7OCAqIDEwMjQgKiAxMDI0fVxuICAgICAgICAgICAgICAgIC5rZXk9JHsncmVmZXJlbmNlcyd9XG4gICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD5cblxuICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0XG4gICAgICAgICAgICAgICAgLmxhYmVsPSR7J05vdGVzJ31cbiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsnQWRkIG9wdGlvbmFsIGNvbnRleHQgZm9yIHJldmlld2Vycyd9XG4gICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyd0ZXh0YXJlYSd9XG4gICAgICAgICAgICAgICAgLmtleT0keydub3Rlcyd9XG4gICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cblxuICAgICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keydTdWJtaXQgYnJpZWZpbmcnfT48L2RlZXMtZm9ybS1zdWJtaXQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2RlZXMtZm9ybT5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLW5vdGVcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+R29vZCB0byBrbm93Ojwvc3Ryb25nPlxuICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICA8bGk+RHJhZyAmIGRyb3AgaGlnaGxpZ2h0cyB0aGUgZHJvcHpvbmUgYW5kIHN1cHBvcnRzIGtleWJvYXJkIGFjdGl2YXRpb24uPC9saT5cbiAgICAgICAgICAgICAgPGxpPkFjY2VwdGVkIGZpbGUgdHlwZXMgYXJlIHN1bW1hcmlzZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSA8Y29kZT5hY2NlcHQ8L2NvZGU+IGF0dHJpYnV0ZS48L2xpPlxuICAgICAgICAgICAgICA8bGk+SW1hZ2UgdXBsb2FkcyBzaG93IGxpdmUgcHJldmlld3MgZ2VuZXJhdGVkIHZpYSA8Y29kZT5VUkwuY3JlYXRlT2JqZWN0VVJMPC9jb2RlPi48L2xpPlxuICAgICAgICAgICAgICA8bGk+RmlsZSBzaXplIGFuZCBmaWxlLWNvdW50IGxpbWl0cyBzdXJmYWNlIGlubGluZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLjwvbGk+XG4gICAgICAgICAgICAgIDxsaT5UaGUgY29tcG9uZW50IHN0YXlzIGNvbXBhdGlibGUgd2l0aCA8Y29kZT5kZWVzLWZvcm08L2NvZGU+IHZhbHVlIGFjY2Vzc29ycy48L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kaXY+XG4gIDwvZGVlcy1kZW1vd3JhcHBlcj5cbmA7XG4iLCAiaW1wb3J0IHsgY3NzLCBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IERlZXNJbnB1dEJhc2UgfSBmcm9tICcuLi9kZWVzLWlucHV0LWJhc2UvZGVlcy1pbnB1dC1iYXNlLmpzJztcblxuZXhwb3J0IGNvbnN0IGZpbGV1cGxvYWRTdHlsZXMgPSBbXG4gIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgLi4uRGVlc0lucHV0QmFzZS5iYXNlU3R5bGVzLFxuICBjc3NgXG4gICAgOmhvc3Qge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG5cbiAgICAuaW5wdXQtd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cbiAgICAuZHJvcHpvbmUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICBib3JkZXI6IDEuNXB4IGRhc2hlZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNSAxNiUgODAlKScsICdoc2woMjE3IDIwJSAyNSUpJyl9O1xuICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgyMTUgMjAlIDEyJSknKX07XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjJzIGVhc2U7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgIC5kcm9wem9uZTpmb2N1cy12aXNpYmxlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDIxNSAyMCUgMTIlKScpfSxcbiAgICAgICAgMCAwIDAgNHB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE3IDkxJSA2MCUgLyAwLjUpJywgJ2hzbCgyMTMgOTMlIDY4JSAvIDAuNCknKX07XG4gICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE3IDkxJSA2MCUpJywgJ2hzbCgyMTMgOTMlIDY4JSknKX07XG4gICAgfVxuXG4gICAgLmRyb3B6b25lLS1hY3RpdmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNyA5MSUgNjAlKScsICdoc2woMjEzIDkzJSA2OCUpJyl9O1xuICAgICAgYm94LXNoYWRvdzogMCAxMnB4IDMycHggJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMTUsIDIzLCA0MiwgMC4xMiknLCAncmdiYSgwLCAwLCAwLCAwLjM1KScpfTtcbiAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE3IDkxJSA2MCUgLyAwLjA2KScsICdoc2woMjEzIDkzJSA2OCUgLyAwLjEyKScpfTtcbiAgICB9XG5cbiAgICAuZHJvcHpvbmUtLWhhcy1maWxlcyB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTklKScsICdoc2woMjE1IDIwJSAxMSUpJyl9O1xuICAgIH1cblxuICAgIC5kcm9wem9uZS0tZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cblxuICAgIC5kcm9wem9uZV9fYm9keSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMTZweDtcbiAgICB9XG5cbiAgICAuZHJvcHpvbmVfX2ljb24ge1xuICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNyA5MSUgNjAlKScsICdoc2woMjEzIDkzJSA2OCUpJyl9O1xuICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTcgOTElIDYwJSAvIDAuMTIpJywgJ2hzbCgyMTMgOTMlIDY4JSAvIDAuMTIpJyl9O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgLmRyb3B6b25lX19pY29uIGRlZXMtaWNvbiB7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgfVxuXG4gICAgLmRyb3B6b25lX19sb2FkZXIge1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDE1LCAyMywgNDIsIDAuMTUpJywgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSknKX07XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNyA5MSUgNjAlKScsICdoc2woMjEzIDkzJSA2OCUpJyl9O1xuICAgICAgYW5pbWF0aW9uOiBsb2FkZXItc3BpbiAwLjZzIGxpbmVhciBpbmZpbml0ZTtcbiAgICB9XG5cbiAgICAuZHJvcHpvbmVfX2NvbnRlbnQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDRweDtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG5cbiAgICAuZHJvcHpvbmVfX2hlYWRsaW5lIHtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIgNDclIDExJSknLCAnaHNsKDIxMCAyMCUgOTYlKScpfTtcbiAgICB9XG5cbiAgICAuZHJvcHpvbmVfX3N1YmxpbmUge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDE2JSA0NiUpJywgJ2hzbCgyMTUgMTYlIDcwJSknKX07XG4gICAgfVxuXG4gICAgLmRyb3B6b25lX19icm93c2Uge1xuICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNyA5MSUgNjAlKScsICdoc2woMjEzIDkzJSA2OCUpJyl9O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAuZHJvcHpvbmVfX2Jyb3dzZTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAuZHJvcHpvbmVfX2Jyb3dzZTpkaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgb3BhY2l0eTogMC42O1xuICAgIH1cblxuICAgIC5kcm9wem9uZV9fbWV0YSB7XG4gICAgICBtYXJnaW4tdG9wOiAxNHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDE2JSA1MCUpJywgJ2hzbCgyMTUgMTYlIDcyJSknKX07XG4gICAgfVxuXG4gICAgLmRyb3B6b25lX19tZXRhIHNwYW4ge1xuICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE3IDkxJSA5NSUpJywgJ2hzbCgyMTMgOTMlIDE4JSknKX07XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNyA5MSUgOTAlKScsICdoc2woMjEzIDkzJSAyNCUpJyl9O1xuICAgIH1cblxuICAgIC5maWxlLWxpc3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDEycHg7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTcgOTElIDkwJSknLCAnaHNsKDIxMyA5MyUgMjQlKScpfTtcbiAgICB9XG5cbiAgICAuZmlsZS1saXN0X19oZWFkZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDE2JSA0NSUpJywgJ2hzbCgyMTUgMTYlIDY4JSknKX07XG4gICAgfVxuXG4gICAgLmZpbGUtbGlzdF9fY2xlYXIge1xuICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTcgOTElIDYwJSknLCAnaHNsKDIxMyA5MyUgNjglKScpfTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5maWxlLWxpc3RfX2NsZWFyOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIC5maWxlLWxpc3RfX2l0ZW1zIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cblxuICAgIC5maWxlLXJvdyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMTJweDtcbiAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlIC8gMC41KScsICdoc2woMjE1IDIwJSAxNiUgLyAwLjUpJyl9O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTMgMjclIDkyJSknLCAnaHNsKDIxNyAyNSUgMjYlKScpfTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbiAgICB9XG5cbiAgICAuZmlsZS1yb3c6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUgLyAwLjgpJywgJ2hzbCgyMTUgMjAlIDE2JSAvIDAuOCknKX07XG4gICAgfVxuXG4gICAgLmZpbGUtdGh1bWIge1xuICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNCAzMSUgOTIlKScsICdoc2woMjE3IDMyJSAxOCUpJyl9O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICAuZmlsZS10aHVtYiBkZWVzLWljb24ge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDE2JSA0NSUpJywgJ2hzbCgyMTUgMTYlIDcwJSknKX07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cblxuICAgIC50aHVtYi1pbWFnZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cblxuICAgIC5maWxlLW1ldGEge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDRweDtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG5cbiAgICAuZmlsZS1uYW1lIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIgNDclIDExJSknLCAnaHNsKDIxMCAyMCUgOTYlKScpfTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgLmZpbGUtZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDE2JSA0NiUpJywgJ2hzbCgyMTUgMTYlIDcwJSknKX07XG4gICAgfVxuXG4gICAgLmZpbGUtc2l6ZSB7XG4gICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIH1cblxuICAgIC5maWxlLXR5cGUge1xuICAgICAgcGFkZGluZzogMnB4IDhweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTQgMzElIDg2JSknLCAnaHNsKDIxNyAzMiUgMjglKScpfTtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNSAxNiUgNDYlKScsICdoc2woMjE1IDE2JSA3MCUpJyl9O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAuZmlsZS1hY3Rpb25zIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiA4cHg7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAucmVtb3ZlLWJ1dHRvbiB7XG4gICAgICB3aWR0aDogMjhweDtcbiAgICAgIGhlaWdodDogMjhweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUgMTYlIDUyJSknLCAnaHNsKDIxNSAxNiUgNjglKScpfTtcbiAgICB9XG5cbiAgICAucmVtb3ZlLWJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgNzIlIDUwJSAvIDAuMDgpJywgJ2hzbCgwIDYyJSAzMiUgLyAwLjE1KScpfTtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgNzIlIDQ2JSknLCAnaHNsKDAgNzAlIDcwJSknKX07XG4gICAgfVxuXG4gICAgLnJlbW92ZS1idXR0b246YWN0aXZlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7XG4gICAgfVxuXG4gICAgLnJlbW92ZS1idXR0b24gZGVlcy1pY29uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cblxuICAgIC52YWxpZGF0aW9uLW1lc3NhZ2Uge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCA3MiUgNDAlKScsICdoc2woMCA3MCUgNjglKScpfTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBsb2FkZXItc3BpbiB7XG4gICAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICB9XG4gICAgfVxuICBgLFxuXTtcbiIsICJpbXBvcnQgeyBEZWVzSW5wdXRCYXNlIH0gZnJvbSAnLi4vZGVlcy1pbnB1dC1iYXNlL2RlZXMtaW5wdXQtYmFzZS5qcyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVtby5qcyc7XG5pbXBvcnQgeyBmaWxldXBsb2FkU3R5bGVzIH0gZnJvbSAnLi9zdHlsZXMuanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcbmltcG9ydCAnLi4vLi4vZGVlcy1sYWJlbC9kZWVzLWxhYmVsLmpzJztcblxuaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgcHJvcGVydHksXG4gIHN0YXRlLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWlucHV0LWZpbGV1cGxvYWQnOiBEZWVzSW5wdXRGaWxldXBsb2FkO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWlucHV0LWZpbGV1cGxvYWQnKVxuZXhwb3J0IGNsYXNzIERlZXNJbnB1dEZpbGV1cGxvYWQgZXh0ZW5kcyBEZWVzSW5wdXRCYXNlPERlZXNJbnB1dEZpbGV1cGxvYWQ+IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ0lucHV0JztcblxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIGFjY2Vzc29yIHZhbHVlOiBGaWxlW10gPSBbXTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBzdGF0ZTogJ2lkbGUnIHwgJ2RyYWdPdmVyJyB8ICdkcm9wcGVkJyB8ICd1cGxvYWRpbmcnIHwgJ2NvbXBsZXRlZCcgPSAnaWRsZSc7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIGJ1dHRvblRleHQ6IHN0cmluZyA9ICdTZWxlY3QgZmlsZXMnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBhY2NlcHQ6IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3IgbXVsdGlwbGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBtYXhTaXplOiBudW1iZXIgPSAwOyAvLyAwIG1lYW5zIG5vIGxpbWl0XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIG1heEZpbGVzOiBudW1iZXIgPSAwOyAvLyAwIG1lYW5zIG5vIGxpbWl0XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0pXG4gIGFjY2Vzc29yIHZhbGlkYXRpb25TdGF0ZTogJ3ZhbGlkJyB8ICdpbnZhbGlkJyB8ICd3YXJuJyB8ICdwZW5kaW5nJyA9IG51bGw7XG5cbiAgYWNjZXNzb3IgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgcHJldmlld1VybE1hcDogV2Vha01hcDxGaWxlLCBzdHJpbmc+ID0gbmV3IFdlYWtNYXAoKTtcbiAgcHJpdmF0ZSBkcm9wQXJlYTogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IGZpbGV1cGxvYWRTdHlsZXM7XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgYWNjZXB0ZWRTdW1tYXJ5ID0gdGhpcy5nZXRBY2NlcHRlZFN1bW1hcnkoKTtcbiAgICBjb25zdCBtZXRhRW50cmllczogc3RyaW5nW10gPSBbXG4gICAgICB0aGlzLm11bHRpcGxlID8gJ011bHRpcGxlIGZpbGVzIHN1cHBvcnRlZCcgOiAnU2luZ2xlIGZpbGUgb25seScsXG4gICAgICB0aGlzLm1heFNpemUgPiAwID8gYE1heCAke3RoaXMuZm9ybWF0RmlsZVNpemUodGhpcy5tYXhTaXplKX1gIDogJ05vIHNpemUgbGltaXQnLFxuICAgIF07XG5cbiAgICBpZiAoYWNjZXB0ZWRTdW1tYXJ5KSB7XG4gICAgICBtZXRhRW50cmllcy5wdXNoKGBBY2NlcHRzICR7YWNjZXB0ZWRTdW1tYXJ5fWApO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgPGRlZXMtbGFiZWxcbiAgICAgICAgICAubGFiZWw9JHt0aGlzLmxhYmVsfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259XG4gICAgICAgICAgLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH1cbiAgICAgICAgPjwvZGVlcy1sYWJlbD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZHJvcHpvbmUgJHt0aGlzLnN0YXRlID09PSAnZHJhZ092ZXInID8gJ2Ryb3B6b25lLS1hY3RpdmUnIDogJyd9ICR7dGhpcy5kaXNhYmxlZCA/ICdkcm9wem9uZS0tZGlzYWJsZWQnIDogJyd9ICR7dGhpcy52YWx1ZS5sZW5ndGggPiAwID8gJ2Ryb3B6b25lLS1oYXMtZmlsZXMnIDogJyd9XCJcbiAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICB0YWJpbmRleD0ke3RoaXMuZGlzYWJsZWQgPyAtMSA6IDB9XG4gICAgICAgICAgYXJpYS1kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9XG4gICAgICAgICAgYXJpYS1sYWJlbD0ke2BTZWxlY3QgZmlsZXMke2FjY2VwdGVkU3VtbWFyeSA/IGAgKCR7YWNjZXB0ZWRTdW1tYXJ5fSlgIDogJyd9YH1cbiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZURyb3B6b25lQ2xpY2t9XG4gICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZURyb3B6b25lS2V5ZG93bn1cbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWlucHV0XCJcbiAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBvcGFjaXR5OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHRvcDogMDsgbGVmdDogMDsgb3ZlcmZsb3c6IGhpZGRlbjtcIlxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgP211bHRpcGxlPSR7dGhpcy5tdWx0aXBsZX1cbiAgICAgICAgICAgIGFjY2VwdD0ke3RoaXMuYWNjZXB0IHx8ICcnfVxuICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVJbnB1dENoYW5nZX1cbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3B6b25lX19ib2R5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcHpvbmVfX2ljb25cIj5cbiAgICAgICAgICAgICAgJHt0aGlzLmlzTG9hZGluZ1xuICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cImRyb3B6b25lX19sb2FkZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+YFxuICAgICAgICAgICAgICAgIDogaHRtbGA8ZGVlcy1pY29uIGljb249XCJsdWNpZGU6Rm9sZGVyT3BlblwiPjwvZGVlcy1pY29uPmB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wem9uZV9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3B6b25lX19oZWFkbGluZVwiPiR7dGhpcy5idXR0b25UZXh0IHx8ICdTZWxlY3QgZmlsZXMnfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wem9uZV9fc3VibGluZVwiPlxuICAgICAgICAgICAgICAgIERyYWcgYW5kIGRyb3AgZmlsZXMgaGVyZSBvclxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wem9uZV9fYnJvd3NlXCJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQnJvd3NlQ2xpY2t9XG4gICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIGJyb3dzZVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcHpvbmVfX21ldGFcIj5cbiAgICAgICAgICAgICR7bWV0YUVudHJpZXMubWFwKChlbnRyeSkgPT4gaHRtbGA8c3Bhbj4ke2VudHJ5fTwvc3Bhbj5gKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAke3RoaXMucmVuZGVyRmlsZUxpc3QoKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgICR7dGhpcy52YWxpZGF0aW9uTWVzc2FnZVxuICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwidmFsaWRhdGlvbi1tZXNzYWdlXCIgYXJpYS1saXZlPVwicG9saXRlXCI+JHt0aGlzLnZhbGlkYXRpb25NZXNzYWdlfTwvZGl2PmBcbiAgICAgICAgICA6IGh0bWxgYH1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckZpbGVMaXN0KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBodG1sYGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1saXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RfX2hlYWRlclwiPlxuICAgICAgICAgIDxzcGFuPiR7dGhpcy52YWx1ZS5sZW5ndGh9IGZpbGUke3RoaXMudmFsdWUubGVuZ3RoID09PSAxID8gJycgOiAncyd9IHNlbGVjdGVkPC9zcGFuPlxuICAgICAgICAgICR7dGhpcy52YWx1ZS5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IGh0bWxgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJmaWxlLWxpc3RfX2NsZWFyXCIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGVhckFsbH0+Q2xlYXIgJHt0aGlzLnZhbHVlLmxlbmd0aCA+IDEgPyAnYWxsJyA6ICcnfTwvYnV0dG9uPmBcbiAgICAgICAgICAgIDogaHRtbGBgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdF9faXRlbXNcIj5cbiAgICAgICAgICAke3RoaXMudmFsdWUubWFwKChmaWxlKSA9PiB0aGlzLnJlbmRlckZpbGVSb3coZmlsZSkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckZpbGVSb3coZmlsZTogRmlsZSk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBmaWxlVHlwZSA9IHRoaXMuZ2V0RmlsZVR5cGUoZmlsZSk7XG4gICAgY29uc3QgcHJldmlld1VybCA9IHRoaXMuY2FuU2hvd1ByZXZpZXcoZmlsZSkgPyB0aGlzLmdldFByZXZpZXdVcmwoZmlsZSkgOiBudWxsO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1yb3cgJHtmaWxlVHlwZX0tZmlsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS10aHVtYlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICR7cHJldmlld1VybFxuICAgICAgICAgICAgPyBodG1sYDxpbWcgY2xhc3M9XCJ0aHVtYi1pbWFnZVwiIHNyYz0ke3ByZXZpZXdVcmx9IGFsdD0ke2BQcmV2aWV3IG9mICR7ZmlsZS5uYW1lfWB9PmBcbiAgICAgICAgICAgIDogaHRtbGA8ZGVlcy1pY29uIGljb249JHt0aGlzLmdldEZpbGVJY29uKGZpbGUpfT48L2RlZXMtaWNvbj5gfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbWV0YVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLW5hbWVcIiB0aXRsZT0ke2ZpbGUubmFtZX0+JHtmaWxlLm5hbWV9PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtZGV0YWlsc1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLXNpemVcIj4ke3RoaXMuZm9ybWF0RmlsZVNpemUoZmlsZS5zaXplKX08L3NwYW4+XG4gICAgICAgICAgICAke2ZpbGVUeXBlICE9PSAnZmlsZScgPyBodG1sYDxzcGFuIGNsYXNzPVwiZmlsZS10eXBlXCI+JHtmaWxlVHlwZX08L3NwYW4+YCA6IGh0bWxgYH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWFjdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwicmVtb3ZlLWJ1dHRvblwiXG4gICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLnJlbW92ZUZpbGUoZmlsZSl9XG4gICAgICAgICAgICBhcmlhLWxhYmVsPSR7YFJlbW92ZSAke2ZpbGUubmFtZX1gfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj1cImx1Y2lkZTpYXCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRmlsZUlucHV0Q2hhbmdlID0gYXN5bmMgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZXMgPSBBcnJheS5mcm9tKHRhcmdldC5maWxlcyA/PyBbXSk7XG4gICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuYWRkRmlsZXMoZmlsZXMpO1xuICAgIH1cbiAgICB0YXJnZXQudmFsdWUgPSAnJztcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZURyb3B6b25lQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBEb24ndCBvcGVuIGZpbGUgc2VsZWN0b3IgaWYgY2xpY2tpbmcgb24gdGhlIGJyb3dzZSBidXR0b24gb3IgZmlsZSBsaXN0XG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5kcm9wem9uZV9fYnJvd3NlLCAuZmlsZS1saXN0JykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vcGVuRmlsZVNlbGVjdG9yKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBoYW5kbGVCcm93c2VDbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBTdG9wIHByb3BhZ2F0aW9uIHRvIHByZXZlbnQgZG91YmxlIHRyaWdnZXJcbiAgICB0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKTtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZURyb3B6b25lS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBoYW5kbGVDbGVhckFsbCA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5jbGVhckFsbCgpO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlRHJhZ0V2ZW50ID0gYXN5bmMgKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2RyYWdlbnRlcicgfHwgZXZlbnQudHlwZSA9PT0gJ2RyYWdvdmVyJykge1xuICAgICAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5JztcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RhdGUgPSAnZHJhZ092ZXInO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC50eXBlID09PSAnZHJhZ2xlYXZlJykge1xuICAgICAgaWYgKCF0aGlzLmRyb3BBcmVhKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnaWRsZSc7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLmRyb3BBcmVhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgeyBjbGllbnRYID0gMCwgY2xpZW50WSA9IDAgfSA9IGV2ZW50O1xuICAgICAgaWYgKGNsaWVudFggPD0gcmVjdC5sZWZ0IHx8IGNsaWVudFggPj0gcmVjdC5yaWdodCB8fCBjbGllbnRZIDw9IHJlY3QudG9wIHx8IGNsaWVudFkgPj0gcmVjdC5ib3R0b20pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdpZGxlJztcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2Ryb3AnKSB7XG4gICAgICB0aGlzLnN0YXRlID0gJ2lkbGUnO1xuICAgICAgY29uc3QgZmlsZXMgPSBBcnJheS5mcm9tKGV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXMgPz8gW10pO1xuICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hZGRGaWxlcyhmaWxlcyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgYXR0YWNoRHJvcExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJvcEFyZWEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgWydkcmFnZW50ZXInLCAnZHJhZ292ZXInLCAnZHJhZ2xlYXZlJywgJ2Ryb3AnXS5mb3JFYWNoKChldmVudE5hbWUpID0+IHtcbiAgICAgIHRoaXMuZHJvcEFyZWEhLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCB0aGlzLmhhbmRsZURyYWdFdmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRldGFjaERyb3BMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRyb3BBcmVhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFsnZHJhZ2VudGVyJywgJ2RyYWdvdmVyJywgJ2RyYWdsZWF2ZScsICdkcm9wJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XG4gICAgICB0aGlzLmRyb3BBcmVhIS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgdGhpcy5oYW5kbGVEcmFnRXZlbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld0Ryb3BBcmVhID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuZHJvcHpvbmUnKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICBpZiAobmV3RHJvcEFyZWEgIT09IHRoaXMuZHJvcEFyZWEpIHtcbiAgICAgIHRoaXMuZGV0YWNoRHJvcExpc3RlbmVycygpO1xuICAgICAgdGhpcy5kcm9wQXJlYSA9IG5ld0Ryb3BBcmVhO1xuICAgICAgdGhpcy5hdHRhY2hEcm9wTGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1hdEZpbGVTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVuaXRzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQiddO1xuICAgIGlmIChieXRlcyA9PT0gMCkgcmV0dXJuICcwIEJ5dGVzJztcbiAgICBjb25zdCBleHBvbmVudCA9IE1hdGgubWluKE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coMTAyNCkpLCB1bml0cy5sZW5ndGggLSAxKTtcbiAgICBjb25zdCBzaXplID0gYnl0ZXMgLyBNYXRoLnBvdygxMDI0LCBleHBvbmVudCk7XG4gICAgcmV0dXJuIGAke01hdGgucm91bmQoc2l6ZSAqIDEwMCkgLyAxMDB9ICR7dW5pdHNbZXhwb25lbnRdfWA7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmlsZVR5cGUoZmlsZTogRmlsZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZSA9IGZpbGUudHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICh0eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpKSByZXR1cm4gJ2ltYWdlJztcbiAgICBpZiAodHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicpIHJldHVybiAncGRmJztcbiAgICBpZiAodHlwZS5pbmNsdWRlcygnd29yZCcpIHx8IHR5cGUuaW5jbHVkZXMoJ2RvY3VtZW50JykpIHJldHVybiAnZG9jJztcbiAgICBpZiAodHlwZS5pbmNsdWRlcygnc2hlZXQnKSB8fCB0eXBlLmluY2x1ZGVzKCdleGNlbCcpKSByZXR1cm4gJ3NwcmVhZHNoZWV0JztcbiAgICBpZiAodHlwZS5pbmNsdWRlcygncHJlc2VudGF0aW9uJykgfHwgdHlwZS5pbmNsdWRlcygncG93ZXJwb2ludCcpKSByZXR1cm4gJ3ByZXNlbnRhdGlvbic7XG4gICAgaWYgKHR5cGUuc3RhcnRzV2l0aCgndmlkZW8vJykpIHJldHVybiAndmlkZW8nO1xuICAgIGlmICh0eXBlLnN0YXJ0c1dpdGgoJ2F1ZGlvLycpKSByZXR1cm4gJ2F1ZGlvJztcbiAgICBpZiAodHlwZS5pbmNsdWRlcygnemlwJykgfHwgdHlwZS5pbmNsdWRlcygnY29tcHJlc3NlZCcpKSByZXR1cm4gJ2FyY2hpdmUnO1xuICAgIHJldHVybiAnZmlsZSc7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmlsZUljb24oZmlsZTogRmlsZSk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlsZVR5cGUgPSB0aGlzLmdldEZpbGVUeXBlKGZpbGUpO1xuICAgIGNvbnN0IGljb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBpbWFnZTogJ2x1Y2lkZTpGaWxlSW1hZ2UnLFxuICAgICAgcGRmOiAnbHVjaWRlOkZpbGVUZXh0JyxcbiAgICAgIGRvYzogJ2x1Y2lkZTpGaWxlVGV4dCcsXG4gICAgICBzcHJlYWRzaGVldDogJ2x1Y2lkZTpGaWxlU3ByZWFkc2hlZXQnLFxuICAgICAgcHJlc2VudGF0aW9uOiAnbHVjaWRlOkZpbGVCYXJDaGFydCcsXG4gICAgICB2aWRlbzogJ2x1Y2lkZTpGaWxlVmlkZW8nLFxuICAgICAgYXVkaW86ICdsdWNpZGU6RmlsZUF1ZGlvJyxcbiAgICAgIGFyY2hpdmU6ICdsdWNpZGU6RmlsZUFyY2hpdmUnLFxuICAgICAgZmlsZTogJ2x1Y2lkZTpGaWxlJyxcbiAgICB9O1xuICAgIHJldHVybiBpY29uTWFwW2ZpbGVUeXBlXSA/PyAnbHVjaWRlOkZpbGUnO1xuICB9XG5cbiAgcHVibGljIGNhblNob3dQcmV2aWV3KGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpICYmIGZpbGUuc2l6ZSA8IDUgKiAxMDI0ICogMTAyNDtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWxlKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5tYXhTaXplID4gMCAmJiBmaWxlLnNpemUgPiB0aGlzLm1heFNpemUpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBgRmlsZSBcIiR7ZmlsZS5uYW1lfVwiIGV4Y2VlZHMgdGhlIG1heGltdW0gc2l6ZSBvZiAke3RoaXMuZm9ybWF0RmlsZVNpemUodGhpcy5tYXhTaXplKX1gO1xuICAgICAgdGhpcy52YWxpZGF0aW9uU3RhdGUgPSAnaW52YWxpZCc7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYWNjZXB0KSB7XG4gICAgICBjb25zdCBhY2NlcHRlZFR5cGVzID0gdGhpcy5hY2NlcHRcbiAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgLm1hcCgoZW50cnkpID0+IGVudHJ5LnRyaW0oKSlcbiAgICAgICAgLmZpbHRlcigoZW50cnkpID0+IGVudHJ5Lmxlbmd0aCA+IDApO1xuXG4gICAgICBpZiAoYWNjZXB0ZWRUeXBlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCBpc0FjY2VwdGVkID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgYWNjZXB0VHlwZSBvZiBhY2NlcHRlZFR5cGVzKSB7XG4gICAgICAgICAgaWYgKGFjY2VwdFR5cGUuc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgICAgICBpZiAoZmlsZS5uYW1lLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoYWNjZXB0VHlwZS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgICAgICBpc0FjY2VwdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChhY2NlcHRUeXBlLmVuZHNXaXRoKCcvKicpKSB7XG4gICAgICAgICAgICBjb25zdCBwcmVmaXggPSBhY2NlcHRUeXBlLnNsaWNlKDAsIC0yKTtcbiAgICAgICAgICAgIGlmIChmaWxlLnR5cGUuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgICAgICAgICAgIGlzQWNjZXB0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGZpbGUudHlwZSA9PT0gYWNjZXB0VHlwZSkge1xuICAgICAgICAgICAgaXNBY2NlcHRlZCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzQWNjZXB0ZWQpIHtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYEZpbGUgdHlwZSBub3QgYWNjZXB0ZWQuIEFsbG93ZWQ6ICR7YWNjZXB0ZWRUeXBlcy5qb2luKCcsICcpfWA7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uU3RhdGUgPSAnaW52YWxpZCc7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGdldFByZXZpZXdVcmwoZmlsZTogRmlsZSk6IHN0cmluZyB7XG4gICAgbGV0IHVybCA9IHRoaXMucHJldmlld1VybE1hcC5nZXQoZmlsZSk7XG4gICAgaWYgKCF1cmwpIHtcbiAgICAgIHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7XG4gICAgICB0aGlzLnByZXZpZXdVcmxNYXAuc2V0KGZpbGUsIHVybCk7XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBwcml2YXRlIHJlbGVhc2VQcmV2aWV3KGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnByZXZpZXdVcmxNYXAuZ2V0KGZpbGUpO1xuICAgIGlmICh1cmwpIHtcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICAgIHRoaXMucHJldmlld1VybE1hcC5kZWxldGUoZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY2NlcHRlZFN1bW1hcnkoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmFjY2VwdCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQoXG4gICAgICAgIHRoaXMuYWNjZXB0XG4gICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAubWFwKCh0b2tlbikgPT4gdG9rZW4udHJpbSgpKVxuICAgICAgICAgIC5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5sZW5ndGggPiAwKVxuICAgICAgICAgIC5tYXAoKHRva2VuKSA9PiB0aGlzLmZvcm1hdEFjY2VwdFRva2VuKHRva2VuKSlcbiAgICAgIClcbiAgICApLmZpbHRlcihCb29sZWFuKTtcblxuICAgIGlmIChmb3JtYXR0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0dGVkLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIGZvcm1hdHRlZFswXTtcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0dGVkLmxlbmd0aCA9PT0gMikge1xuICAgICAgcmV0dXJuIGAke2Zvcm1hdHRlZFswXX0sICR7Zm9ybWF0dGVkWzFdfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke2Zvcm1hdHRlZC5zbGljZSgwLCAyKS5qb2luKCcsICcpfVx1MjAyNmA7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEFjY2VwdFRva2VuKHRva2VuOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0b2tlbiA9PT0gJyovKicpIHtcbiAgICAgIHJldHVybiAnQWxsIGZpbGVzJztcbiAgICB9XG5cbiAgICBpZiAodG9rZW4uZW5kc1dpdGgoJy8qJykpIHtcbiAgICAgIGNvbnN0IGZhbWlseSA9IHRva2VuLnNwbGl0KCcvJylbMF07XG4gICAgICBpZiAoIWZhbWlseSkge1xuICAgICAgICByZXR1cm4gJ0FsbCBmaWxlcyc7XG4gICAgICB9XG4gICAgICByZXR1cm4gYCR7ZmFtaWx5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7ZmFtaWx5LnNsaWNlKDEpfSBmaWxlc2A7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgICAgcmV0dXJuIHRva2VuLnNsaWNlKDEpLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuLmluY2x1ZGVzKCdwZGYnKSkgcmV0dXJuICdQREYnO1xuICAgIGlmICh0b2tlbi5pbmNsdWRlcygnemlwJykpIHJldHVybiAnWklQJztcbiAgICBpZiAodG9rZW4uaW5jbHVkZXMoJ2pzb24nKSkgcmV0dXJuICdKU09OJztcbiAgICBpZiAodG9rZW4uaW5jbHVkZXMoJ21zd29yZCcpKSByZXR1cm4gJ0RPQyc7XG4gICAgaWYgKHRva2VuLmluY2x1ZGVzKCd3b3JkcHJvY2Vzc2luZ21sJykpIHJldHVybiAnRE9DWCc7XG4gICAgaWYgKHRva2VuLmluY2x1ZGVzKCdleGNlbCcpKSByZXR1cm4gJ1hMUyc7XG4gICAgaWYgKHRva2VuLmluY2x1ZGVzKCdwcmVzZW50YXRpb24nKSkgcmV0dXJuICdQUFQnO1xuXG4gICAgY29uc3Qgc2VnbWVudHMgPSB0b2tlbi5zcGxpdCgnLycpO1xuICAgIGNvbnN0IGxhc3RTZWdtZW50ID0gc2VnbWVudHMucG9wKCkgPz8gdG9rZW47XG4gICAgcmV0dXJuIGxhc3RTZWdtZW50LnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaExpZmVjeWNsZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLnJlYmluZEludGVyYWN0aXZlRWxlbWVudHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcsIHVua25vd24+KSB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLmF0dGFjaExpZmVjeWNsZUxpc3RlbmVycygpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcsIHVua25vd24+KSB7XG4gICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndmFsdWUnKSkge1xuICAgICAgdm9pZCB0aGlzLnZhbGlkYXRlKCk7XG4gICAgfVxuICAgIHRoaXMucmViaW5kSW50ZXJhY3RpdmVFbGVtZW50cygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZGV0YWNoRHJvcExpc3RlbmVycygpO1xuICAgIHRoaXMudmFsdWUuZm9yRWFjaCgoZmlsZSkgPT4gdGhpcy5yZWxlYXNlUHJldmlldyhmaWxlKSk7XG4gICAgdGhpcy5wcmV2aWV3VXJsTWFwID0gbmV3IFdlYWtNYXAoKTtcbiAgICBhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG9wZW5GaWxlU2VsZWN0b3IoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICAvLyBFbnN1cmUgd2UgaGF2ZSB0aGUgbGF0ZXN0IHJlZmVyZW5jZSB0byB0aGUgZmlsZSBpbnB1dFxuICAgIGNvbnN0IGlucHV0RmlsZSA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLmZpbGUtaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcblxuICAgIGlmICghaW5wdXRGaWxlKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzID0gKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghaW5wdXRGaWxlLmZpbGVzIHx8IGlucHV0RmlsZS5maWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIGhhbmRsZUZvY3VzKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGhhbmRsZUZvY3VzKTtcblxuICAgIC8vIENsaWNrIHRoZSBpbnB1dCB0byBvcGVuIGZpbGUgc2VsZWN0b3JcbiAgICBpbnB1dEZpbGUuY2xpY2soKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVGaWxlKGZpbGU6IEZpbGUpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudmFsdWUuaW5kZXhPZihmaWxlKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5yZWxlYXNlUHJldmlldyhmaWxlKTtcbiAgICAgIHRoaXMudmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgndmFsdWUnKTtcbiAgICAgIHZvaWQgdGhpcy52YWxpZGF0ZSgpO1xuICAgICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsKCkge1xuICAgIGNvbnN0IGV4aXN0aW5nRmlsZXMgPSBbLi4udGhpcy52YWx1ZV07XG4gICAgdGhpcy52YWx1ZSA9IFtdO1xuICAgIGV4aXN0aW5nRmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4gdGhpcy5yZWxlYXNlUHJldmlldyhmaWxlKSk7XG4gICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCd2YWx1ZScpO1xuICAgIHZvaWQgdGhpcy52YWxpZGF0ZSgpO1xuICAgIHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpO1xuICAgIHRoaXMuYnV0dG9uVGV4dCA9ICdTZWxlY3QgZmlsZXMnO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZVZhbHVlKGV2ZW50QXJnOiBFdmVudCkge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50QXJnLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHRoaXMudmFsdWUgPSBBcnJheS5mcm9tKHRhcmdldC5maWxlcyA/PyBbXSk7XG4gICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IEZpbGVbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUuZm9yRWFjaCgoZmlsZSkgPT4gdGhpcy5yZWxlYXNlUHJldmlldyhmaWxlKSk7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmJ1dHRvblRleHQgPSB0aGlzLm11bHRpcGxlID8gJ0FkZCBtb3JlIGZpbGVzJyA6ICdSZXBsYWNlIGZpbGUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1dHRvblRleHQgPSAnU2VsZWN0IGZpbGVzJztcbiAgICB9XG4gICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCd2YWx1ZScpO1xuICAgIHZvaWQgdGhpcy52YWxpZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFZhbHVlKCk6IEZpbGVbXSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFkZEZpbGVzKGZpbGVzOiBGaWxlW10pIHtcbiAgICBjb25zdCBmaWxlc1RvQWRkOiBGaWxlW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgaWYgKHRoaXMudmFsaWRhdGVGaWxlKGZpbGUpKSB7XG4gICAgICAgIGZpbGVzVG9BZGQucHVzaChmaWxlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmlsZXNUb0FkZC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubWF4RmlsZXMgPiAwKSB7XG4gICAgICBjb25zdCB0b3RhbEZpbGVzID0gdGhpcy52YWx1ZS5sZW5ndGggKyBmaWxlc1RvQWRkLmxlbmd0aDtcbiAgICAgIGlmICh0b3RhbEZpbGVzID4gdGhpcy5tYXhGaWxlcykge1xuICAgICAgICBjb25zdCBhbGxvd2VkQ291bnQgPSB0aGlzLm1heEZpbGVzIC0gdGhpcy52YWx1ZS5sZW5ndGg7XG4gICAgICAgIGlmIChhbGxvd2VkQ291bnQgPD0gMCkge1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBgTWF4aW11bSAke3RoaXMubWF4RmlsZXN9IGZpbGVzIGFsbG93ZWRgO1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvblN0YXRlID0gJ2ludmFsaWQnO1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZpbGVzVG9BZGQuc3BsaWNlKGFsbG93ZWRDb3VudCk7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBgT25seSAke2FsbG93ZWRDb3VudH0gbW9yZSBmaWxlKHMpIGNhbiBiZSBhZGRlZGA7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvblN0YXRlID0gJ3dhcm4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiBmaWxlc1RvQWRkLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmFsdWUuZm9yRWFjaCgoZmlsZSkgPT4gdGhpcy5yZWxlYXNlUHJldmlldyhmaWxlKSk7XG4gICAgICB0aGlzLnZhbHVlID0gW2ZpbGVzVG9BZGRbMF1dO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlLnB1c2goLi4uZmlsZXNUb0FkZCk7XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICcnO1xuICAgIHRoaXMudmFsaWRhdGlvblN0YXRlID0gbnVsbDtcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoJ3ZhbHVlJyk7XG4gICAgYXdhaXQgdGhpcy52YWxpZGF0ZSgpO1xuICAgIHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmJ1dHRvblRleHQgPSB0aGlzLm11bHRpcGxlID8gJ0FkZCBtb3JlIGZpbGVzJyA6ICdSZXBsYWNlIGZpbGUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1dHRvblRleHQgPSAnU2VsZWN0IGZpbGVzJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICcnO1xuXG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgdGhpcy52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvblN0YXRlID0gJ2ludmFsaWQnO1xuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICdQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBmaWxlJztcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdGhpcy52YWx1ZSkge1xuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRmlsZShmaWxlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZGF0aW9uU3RhdGUgPSB0aGlzLnZhbHVlLmxlbmd0aCA+IDAgPyAndmFsaWQnIDogbnVsbDtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBTYVx1MDE2MWEgSm92YW5pXHUwMTA3XG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTW96aWxsYSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAyLjAgb3IgdGhlIE1JVCBsaWNlbnNlLFxuICogYXQgeW91ciBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkXG4gKiBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLlxuICogU1BEWC1GaWxlQ29weXJpZ2h0VGV4dDogU2FcdTAxNjFhIEpvdmFuaVx1MDEwN1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCBvciBNUEwvMi4wXG4gKi9cbi8qKlxuICogVmFsaWRhdGlvbiwgZXh0cmFjdGlvbiBhbmQgY3JlYXRpb24gb2YgSUJBTiwgQkJBTiwgQklDL1NXSUZUIG51bWJlcnMgcGx1cyBzb21lIG90aGVyIGhlbHBmdWwgc3R1ZmZcbiAqIEBwYWNrYWdlIERvY3VtZW50YXRpb25cbiAqIEBhdXRob3IgU2FcdTAxNjFhIEpvdmFuaVx1MDEwN1xuICogQG1vZHVsZSBpYmFudG9vbHNcbiAqIEB2ZXJzaW9uIDQuNS4xXG4gKiBAbGljZW5zZSBNSVQgb3IgTVBMLTIuMFxuICogQHByZWZlcnJlZFxuICovXG4ndXNlIHN0cmljdCc7XG4vKipcbiAqIFZhbGlkYXRlIElCQU5cbiAqIGBgYFxuICogLy8gcmV0dXJucyB0cnVlXG4gKiBpYmFudG9vbHMuaXNWYWxpZElCQU4oXCJOTDkxQUJOQTA0MTcxNjQzMDBcIik7XG4gKiBgYGBcbiAqIGBgYFxuICogLy8gcmV0dXJucyBmYWxzZVxuICogaWJhbnRvb2xzLmlzVmFsaWRJQkFOKFwiTkw5MkFCTkEwNTE3MTY0MzAwXCIpO1xuICogYGBgXG4gKiBgYGBcbiAqIC8vIHJldHVybnMgdHJ1ZVxuICogaWJhbnRvb2xzLmlzVmFsaWRJQkFOKCdDSDQ0MzE5OTkxMjMwMDA4ODkwMTInKTtcbiAqIGBgYFxuICogYGBgXG4gKiAvLyByZXR1cm5zIGZhbHNlXG4gKiBpYmFudG9vbHMuaXNWYWxpZElCQU4oJ0NINDQzMTk5OTEyMzAwMDg4OTAxMicsIHsgYWxsb3dRUklCQU46IGZhbHNlIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkSUJBTihpYmFuLCB2YWxpZGF0aW9uT3B0aW9ucykge1xuICAgIGlmICh2YWxpZGF0aW9uT3B0aW9ucyA9PT0gdm9pZCAwKSB7IHZhbGlkYXRpb25PcHRpb25zID0geyBhbGxvd1FSSUJBTjogdHJ1ZSB9OyB9XG4gICAgaWYgKGliYW4gPT09IHVuZGVmaW5lZCB8fCBpYmFuID09PSBudWxsKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgdmFyIHJlZyA9IG5ldyBSZWdFeHAoJ15bMC05XXsyfSQnLCAnJyk7XG4gICAgdmFyIGNvdW50cnlDb2RlID0gaWJhbi5zbGljZSgwLCAyKTtcbiAgICB2YXIgc3BlYyA9IGNvdW50cnlTcGVjc1tjb3VudHJ5Q29kZV07XG4gICAgaWYgKHNwZWMgPT09IHVuZGVmaW5lZCB8fCBzcGVjLmJiYW5fcmVnZXhwID09PSB1bmRlZmluZWQgfHwgc3BlYy5iYmFuX3JlZ2V4cCA9PT0gbnVsbCB8fCBzcGVjLmNoYXJzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gKHNwZWMuY2hhcnMgPT09IGliYW4ubGVuZ3RoICYmXG4gICAgICAgIHJlZy50ZXN0KGliYW4uc2xpY2UoMiwgNCkpICYmXG4gICAgICAgIGlzVmFsaWRCQkFOKGliYW4uc2xpY2UoNCksIGNvdW50cnlDb2RlKSAmJlxuICAgICAgICBpc1ZhbGlkSUJBTkNoZWNrc3VtKGliYW4pICYmXG4gICAgICAgICh2YWxpZGF0aW9uT3B0aW9ucy5hbGxvd1FSSUJBTiB8fCAhaXNRUklCQU4oaWJhbikpKTtcbn1cbi8qKlxuICogSUJBTSB2YWxpZGF0aW9uIGVycm9yc1xuICovXG5leHBvcnQgdmFyIFZhbGlkYXRpb25FcnJvcnNJQkFOO1xuKGZ1bmN0aW9uIChWYWxpZGF0aW9uRXJyb3JzSUJBTikge1xuICAgIFZhbGlkYXRpb25FcnJvcnNJQkFOW1ZhbGlkYXRpb25FcnJvcnNJQkFOW1wiTm9JQkFOUHJvdmlkZWRcIl0gPSAwXSA9IFwiTm9JQkFOUHJvdmlkZWRcIjtcbiAgICBWYWxpZGF0aW9uRXJyb3JzSUJBTltWYWxpZGF0aW9uRXJyb3JzSUJBTltcIk5vSUJBTkNvdW50cnlcIl0gPSAxXSA9IFwiTm9JQkFOQ291bnRyeVwiO1xuICAgIFZhbGlkYXRpb25FcnJvcnNJQkFOW1ZhbGlkYXRpb25FcnJvcnNJQkFOW1wiV3JvbmdCQkFOTGVuZ3RoXCJdID0gMl0gPSBcIldyb25nQkJBTkxlbmd0aFwiO1xuICAgIFZhbGlkYXRpb25FcnJvcnNJQkFOW1ZhbGlkYXRpb25FcnJvcnNJQkFOW1wiV3JvbmdCQkFORm9ybWF0XCJdID0gM10gPSBcIldyb25nQkJBTkZvcm1hdFwiO1xuICAgIFZhbGlkYXRpb25FcnJvcnNJQkFOW1ZhbGlkYXRpb25FcnJvcnNJQkFOW1wiQ2hlY2tzdW1Ob3ROdW1iZXJcIl0gPSA0XSA9IFwiQ2hlY2tzdW1Ob3ROdW1iZXJcIjtcbiAgICBWYWxpZGF0aW9uRXJyb3JzSUJBTltWYWxpZGF0aW9uRXJyb3JzSUJBTltcIldyb25nSUJBTkNoZWNrc3VtXCJdID0gNV0gPSBcIldyb25nSUJBTkNoZWNrc3VtXCI7XG4gICAgVmFsaWRhdGlvbkVycm9yc0lCQU5bVmFsaWRhdGlvbkVycm9yc0lCQU5bXCJXcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW1cIl0gPSA2XSA9IFwiV3JvbmdBY2NvdW50QmFua0JyYW5jaENoZWNrc3VtXCI7XG4gICAgVmFsaWRhdGlvbkVycm9yc0lCQU5bVmFsaWRhdGlvbkVycm9yc0lCQU5bXCJRUklCQU5Ob3RBbGxvd2VkXCJdID0gN10gPSBcIlFSSUJBTk5vdEFsbG93ZWRcIjtcbn0pKFZhbGlkYXRpb25FcnJvcnNJQkFOIHx8IChWYWxpZGF0aW9uRXJyb3JzSUJBTiA9IHt9KSk7XG4vKipcbiAqIHZhbGlkYXRlSUJBTlxuICogYGBgXG4gKiAvLyByZXR1cm5zIHtlcnJvckNvZGVzOiBbXSwgdmFsaWQ6IHRydWV9XG4gKiBpYmFudG9vbHMudmFsaWRhdGVJQkFOKFwiTkw5MUFCTkEwNDE3MTY0MzAwXCIpO1xuICogYGBgXG4gKiBgYGBcbiAqIGBgYFxuICogLy8gcmV0dXJucyB7ZXJyb3JDb2RlczogW10sIHZhbGlkOiB0cnVlfVxuICogaWJhbnRvb2xzLnZhbGlkYXRlSUJBTignQ0g0NDMxOTk5MTIzMDAwODg5MDEyJyk7XG4gKiBgYGBcbiAqIGBgYFxuICogLy8gcmV0dXJucyB7ZXJyb3JDb2RlczogWzddLCB2YWxpZDogZmFsc2V9XG4gKiBpYmFudG9vbHMudmFsaWRhdGVJQkFOKCdDSDQ0MzE5OTkxMjMwMDA4ODkwMTInLCB7IGFsbG93UVJJQkFOOiBmYWxzZSB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVJQkFOKGliYW4sIHZhbGlkYXRpb25PcHRpb25zKSB7XG4gICAgaWYgKHZhbGlkYXRpb25PcHRpb25zID09PSB2b2lkIDApIHsgdmFsaWRhdGlvbk9wdGlvbnMgPSB7IGFsbG93UVJJQkFOOiB0cnVlIH07IH1cbiAgICB2YXIgcmVzdWx0ID0geyBlcnJvckNvZGVzOiBbXSwgdmFsaWQ6IHRydWUgfTtcbiAgICBpZiAoaWJhbiAhPT0gdW5kZWZpbmVkICYmIGliYW4gIT09IG51bGwgJiYgaWJhbiAhPT0gJycpIHtcbiAgICAgICAgdmFyIHNwZWMgPSBjb3VudHJ5U3BlY3NbaWJhbi5zbGljZSgwLCAyKV07XG4gICAgICAgIGlmICghc3BlYyB8fCAhKHNwZWMuYmJhbl9yZWdleHAgfHwgc3BlYy5jaGFycykpIHtcbiAgICAgICAgICAgIHJlc3VsdC52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmVzdWx0LmVycm9yQ29kZXMucHVzaChWYWxpZGF0aW9uRXJyb3JzSUJBTi5Ob0lCQU5Db3VudHJ5KTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNwZWMgJiYgc3BlYy5jaGFycyAmJiBzcGVjLmNoYXJzICE9PSBpYmFuLmxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0LnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICByZXN1bHQuZXJyb3JDb2Rlcy5wdXNoKFZhbGlkYXRpb25FcnJvcnNJQkFOLldyb25nQkJBTkxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNwZWMgJiYgc3BlYy5iYmFuX3JlZ2V4cCAmJiAhY2hlY2tGb3JtYXRCQkFOKGliYW4uc2xpY2UoNCksIHNwZWMuYmJhbl9yZWdleHApKSB7XG4gICAgICAgICAgICByZXN1bHQudmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJlc3VsdC5lcnJvckNvZGVzLnB1c2goVmFsaWRhdGlvbkVycm9yc0lCQU4uV3JvbmdCQkFORm9ybWF0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3BlYyAmJiBzcGVjLmJiYW5fdmFsaWRhdGlvbl9mdW5jICYmICFzcGVjLmJiYW5fdmFsaWRhdGlvbl9mdW5jKGliYW4uc2xpY2UoNCkpKSB7XG4gICAgICAgICAgICByZXN1bHQudmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJlc3VsdC5lcnJvckNvZGVzLnB1c2goVmFsaWRhdGlvbkVycm9yc0lCQU4uV3JvbmdBY2NvdW50QmFua0JyYW5jaENoZWNrc3VtKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmVnID0gbmV3IFJlZ0V4cCgnXlswLTldezJ9JCcsICcnKTtcbiAgICAgICAgaWYgKCFyZWcudGVzdChpYmFuLnNsaWNlKDIsIDQpKSkge1xuICAgICAgICAgICAgcmVzdWx0LnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICByZXN1bHQuZXJyb3JDb2Rlcy5wdXNoKFZhbGlkYXRpb25FcnJvcnNJQkFOLkNoZWNrc3VtTm90TnVtYmVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzdWx0LmVycm9yQ29kZXMuaW5kZXhPZihWYWxpZGF0aW9uRXJyb3JzSUJBTi5Xcm9uZ0JCQU5Gb3JtYXQpICE9PSAtMSB8fCAhaXNWYWxpZElCQU5DaGVja3N1bShpYmFuKSkge1xuICAgICAgICAgICAgcmVzdWx0LnZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICByZXN1bHQuZXJyb3JDb2Rlcy5wdXNoKFZhbGlkYXRpb25FcnJvcnNJQkFOLldyb25nSUJBTkNoZWNrc3VtKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbGlkYXRpb25PcHRpb25zLmFsbG93UVJJQkFOICYmIGlzUVJJQkFOKGliYW4pKSB7XG4gICAgICAgICAgICByZXN1bHQudmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJlc3VsdC5lcnJvckNvZGVzLnB1c2goVmFsaWRhdGlvbkVycm9yc0lCQU4uUVJJQkFOTm90QWxsb3dlZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJlc3VsdC52YWxpZCA9IGZhbHNlO1xuICAgICAgICByZXN1bHQuZXJyb3JDb2Rlcy5wdXNoKFZhbGlkYXRpb25FcnJvcnNJQkFOLk5vSUJBTlByb3ZpZGVkKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbi8qKlxuICogVmFsaWRhdGUgQkJBTlxuICpcbiAqIGBgYFxuICogLy8gcmV0dXJucyB0cnVlXG4gKiBpYmFudG9vbHMuaXNWYWxpZEJCQU4oXCJBQk5BMDQxNzE2NDMwMFwiLCBcIk5MXCIpO1xuICogYGBgXG4gKiBgYGBcbiAqIC8vIHJldHVybnMgZmFsc2VcbiAqIGliYW50b29scy5pc1ZhbGlkQkJBTihcIkE3TkEwNTE3MTY0MzAwXCIsIFwiTkxcIik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRCQkFOKGJiYW4sIGNvdW50cnlDb2RlKSB7XG4gICAgaWYgKGJiYW4gPT09IHVuZGVmaW5lZCB8fCBiYmFuID09PSBudWxsIHx8IGNvdW50cnlDb2RlID09PSB1bmRlZmluZWQgfHwgY291bnRyeUNvZGUgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB2YXIgc3BlYyA9IGNvdW50cnlTcGVjc1tjb3VudHJ5Q29kZV07XG4gICAgaWYgKHNwZWMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICBzcGVjID09PSBudWxsIHx8XG4gICAgICAgIHNwZWMuYmJhbl9yZWdleHAgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICBzcGVjLmJiYW5fcmVnZXhwID09PSBudWxsIHx8XG4gICAgICAgIHNwZWMuY2hhcnMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICBzcGVjLmNoYXJzID09PSBudWxsKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHNwZWMuY2hhcnMgLSA0ID09PSBiYmFuLmxlbmd0aCAmJiBjaGVja0Zvcm1hdEJCQU4oYmJhbiwgc3BlYy5iYmFuX3JlZ2V4cCkpIHtcbiAgICAgICAgaWYgKHNwZWMuYmJhbl92YWxpZGF0aW9uX2Z1bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBzcGVjLmJiYW5fdmFsaWRhdGlvbl9mdW5jKGJiYW4ucmVwbGFjZSgvW1xccy5dKy9nLCAnJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG4vKipcbiAqIFZhbGlkYXRlIGlmIGNvdW50cnkgY29kZSBpcyBmcm9tIGEgU0VQQSBjb3VudHJ5XG4gKiBgYGBcbiAqIC8vIHJldHVybnMgdHJ1ZVxuICogaWJhbnRvb2xzLmlzU0VQQUNvdW50cnkoXCJOTFwiKTtcbiAqIGBgYFxuICogYGBgXG4gKiAvLyByZXR1cm5zIGZhbHNlXG4gKiBpYmFudG9vbHMuaXNTRVBBQ291bnRyeShcIlBLXCIpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NFUEFDb3VudHJ5KGNvdW50cnlDb2RlKSB7XG4gICAgaWYgKGNvdW50cnlDb2RlICE9PSB1bmRlZmluZWQgJiYgY291bnRyeUNvZGUgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIHNwZWMgPSBjb3VudHJ5U3BlY3NbY291bnRyeUNvZGVdO1xuICAgICAgICBpZiAoc3BlYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gc3BlYy5TRVBBID8gc3BlYy5TRVBBIDogZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuLyoqXG4gKiBDaGVjayBpZiBJQkFOIGlzIFFSLUlCQU5cbiAqIGBgYFxuICogLy8gcmV0dXJucyB0cnVlXG4gKiBpYmFudG9vbHMuaXNRUklCQU4oXCJDSDQ0MzE5OTkxMjMwMDA4ODkwMTJcIik7XG4gKiBgYGBcbiAqIGBgYFxuICogLy8gcmV0dXJucyBmYWxzZVxuICogaWJhbnRvb2xzLmlzUVJJQkFOKFwiTkw5MkFCTkEwNTE3MTY0MzAwXCIpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1FSSUJBTihpYmFuKSB7XG4gICAgaWYgKGliYW4gPT09IHVuZGVmaW5lZCB8fCBpYmFuID09PSBudWxsKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgdmFyIGNvdW50cnlDb2RlID0gaWJhbi5zbGljZSgwLCAyKTtcbiAgICB2YXIgUVJJQkFOQ291bnRyaWVzID0gWydMSScsICdDSCddO1xuICAgIGlmICghUVJJQkFOQ291bnRyaWVzLmluY2x1ZGVzKGNvdW50cnlDb2RlKSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHZhciByZWcgPSBuZXcgUmVnRXhwKCdeM1swLTFdezF9WzAtOV17M30kJywgJycpO1xuICAgIHJldHVybiByZWcudGVzdChpYmFuLnNsaWNlKDQsIDkpKTtcbn1cbi8qKlxuICogY29tcG9zZUlCQU5cbiAqXG4gKiBgYGBcbiAqIC8vIHJldHVybnMgTkw5MUFCTkEwNDE3MTY0MzAwXG4gKiBpYmFudG9vbHMuY29tcG9zZUlCQU4oeyBjb3VudHJ5Q29kZTogXCJOTFwiLCBiYmFuOiBcIkFCTkEwNDE3MTY0MzAwXCIgfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VJQkFOKHBhcmFtcykge1xuICAgIHZhciBmb3JtYXRlZF9iYmFuID0gZWxlY3Ryb25pY0Zvcm1hdElCQU4ocGFyYW1zLmJiYW4pIHx8ICcnO1xuICAgIGlmIChwYXJhbXMuY291bnRyeUNvZGUgPT09IG51bGwgfHwgcGFyYW1zLmNvdW50cnlDb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHZhciBzcGVjID0gY291bnRyeVNwZWNzW3BhcmFtcy5jb3VudHJ5Q29kZV07XG4gICAgaWYgKGZvcm1hdGVkX2JiYW4gIT09ICcnICYmXG4gICAgICAgIHNwZWMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBzcGVjLmNoYXJzICYmXG4gICAgICAgIHNwZWMuY2hhcnMgIT09IG51bGwgJiZcbiAgICAgICAgc3BlYy5jaGFycyA9PT0gZm9ybWF0ZWRfYmJhbi5sZW5ndGggKyA0ICYmXG4gICAgICAgIHNwZWMuYmJhbl9yZWdleHAgJiZcbiAgICAgICAgc3BlYy5iYmFuX3JlZ2V4cCAhPT0gbnVsbCAmJlxuICAgICAgICBjaGVja0Zvcm1hdEJCQU4oZm9ybWF0ZWRfYmJhbiwgc3BlYy5iYmFuX3JlZ2V4cCkpIHtcbiAgICAgICAgdmFyIGNoZWNrc29tID0gbW9kOTcxMEliYW4ocGFyYW1zLmNvdW50cnlDb2RlICsgJzAwJyArIGZvcm1hdGVkX2JiYW4pO1xuICAgICAgICByZXR1cm4gcGFyYW1zLmNvdW50cnlDb2RlICsgKCcwJyArICg5OCAtIGNoZWNrc29tKSkuc2xpY2UoLTIpICsgZm9ybWF0ZWRfYmJhbjtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG4vKipcbiAqIGV4dHJhY3RJQkFOXG4gKiBgYGBcbiAqIC8vIHJldHVybnMge2liYW46IFwiTkw5MUFCTkEwNDE3MTY0MzAwXCIsIGJiYW46IFwiQUJOQTA0MTcxNjQzMDBcIiwgY291bnRyeUNvZGU6IFwiTkxcIiwgdmFsaWQ6IHRydWUsIGFjY291bnROdW1iZXI6ICcwNDE3MTY0MzAwJywgYmFua0lkZW50aWZpZXI6ICdBQk5BJ31cbiAqIGliYW50b29scy5leHRyYWN0SUJBTihcIk5MOTEgQUJOQSAwNDE3IDE2NDMgMDBcIik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJQkFOKGliYW4pIHtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgdmFyIGVGb3JtYXRJQkFOID0gZWxlY3Ryb25pY0Zvcm1hdElCQU4oaWJhbik7XG4gICAgcmVzdWx0LmliYW4gPSBlRm9ybWF0SUJBTiB8fCBpYmFuO1xuICAgIGlmICghIWVGb3JtYXRJQkFOICYmIGlzVmFsaWRJQkFOKGVGb3JtYXRJQkFOKSkge1xuICAgICAgICByZXN1bHQuYmJhbiA9IGVGb3JtYXRJQkFOLnNsaWNlKDQpO1xuICAgICAgICByZXN1bHQuY291bnRyeUNvZGUgPSBlRm9ybWF0SUJBTi5zbGljZSgwLCAyKTtcbiAgICAgICAgcmVzdWx0LnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgdmFyIHNwZWMgPSBjb3VudHJ5U3BlY3NbcmVzdWx0LmNvdW50cnlDb2RlXTtcbiAgICAgICAgaWYgKHNwZWMuYWNjb3VudF9pbmRlbnRpZmllcikge1xuICAgICAgICAgICAgdmFyIGFjID0gc3BlYy5hY2NvdW50X2luZGVudGlmaWVyLnNwbGl0KCctJyk7XG4gICAgICAgICAgICB2YXIgc3RhcnRpbmcgPSBwYXJzZUludChhY1swXSk7XG4gICAgICAgICAgICB2YXIgZW5kaW5nID0gcGFyc2VJbnQoYWNbMV0pO1xuICAgICAgICAgICAgcmVzdWx0LmFjY291bnROdW1iZXIgPSByZXN1bHQuaWJhbi5zbGljZShzdGFydGluZywgZW5kaW5nICsgMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNwZWMuYmFua19pZGVudGlmaWVyKSB7XG4gICAgICAgICAgICB2YXIgYWMgPSBzcGVjLmJhbmtfaWRlbnRpZmllci5zcGxpdCgnLScpO1xuICAgICAgICAgICAgdmFyIHN0YXJ0aW5nID0gcGFyc2VJbnQoYWNbMF0pO1xuICAgICAgICAgICAgdmFyIGVuZGluZyA9IHBhcnNlSW50KGFjWzFdKTtcbiAgICAgICAgICAgIHJlc3VsdC5iYW5rSWRlbnRpZmllciA9IHJlc3VsdC5iYmFuLnNsaWNlKHN0YXJ0aW5nLCBlbmRpbmcgKyAxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3BlYy5icmFuY2hfaW5kZW50aWZpZXIpIHtcbiAgICAgICAgICAgIHZhciBhYyA9IHNwZWMuYnJhbmNoX2luZGVudGlmaWVyLnNwbGl0KCctJyk7XG4gICAgICAgICAgICB2YXIgc3RhcnRpbmcgPSBwYXJzZUludChhY1swXSk7XG4gICAgICAgICAgICB2YXIgZW5kaW5nID0gcGFyc2VJbnQoYWNbMV0pO1xuICAgICAgICAgICAgcmVzdWx0LmJyYW5jaElkZW50aWZpZXIgPSByZXN1bHQuYmJhbi5zbGljZShzdGFydGluZywgZW5kaW5nICsgMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJlc3VsdC52YWxpZCA9IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBDaGVjayBCQkFOIGZvcm1hdFxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZnVuY3Rpb24gY2hlY2tGb3JtYXRCQkFOKGJiYW4sIGJmb3JtYXQpIHtcbiAgICB2YXIgcmVnID0gbmV3IFJlZ0V4cChiZm9ybWF0LCAnJyk7XG4gICAgcmV0dXJuIHJlZy50ZXN0KGJiYW4pO1xufVxuLyoqXG4gKiBHZXQgSUJBTiBpbiBlbGVjdHJvbmljIGZvcm1hdCAobm8gc3BhY2VzKVxuICogSUJBTiB2YWxpZGF0aW9uIGlzIG5vdCBwZXJmb3JtZWQuXG4gKiBXaGVuIG5vbi1zdHJpbmcgdmFsdWUgZm9yIElCQU4gaXMgcHJvdmlkZWQsIHJldHVybnMgbnVsbC5cbiAqIGBgYFxuICogLy8gcmV0dXJucyBcIk5MOTFBQk5BMDQxNzE2NDMwMFwiXG4gKiBpYmFudG9vbHMuZWxlY3Ryb25pY0Zvcm1hdElCQU4oXCJOTDkxIEFCTkEgMDQxNyAxNjQzIDAwXCIpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbGVjdHJvbmljRm9ybWF0SUJBTihpYmFuKSB7XG4gICAgaWYgKHR5cGVvZiBpYmFuICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGliYW4ucmVwbGFjZSgvWy1cXCBdL2csICcnKS50b1VwcGVyQ2FzZSgpO1xufVxuLyoqXG4gKiBHZXQgSUJBTiBpbiBmcmllbmRseSBmb3JtYXQgKHNlcGFyYXRlZCBhZnRlciBldmVyeSA0IGNoYXJhY3RlcnMpXG4gKiBJQkFOIHZhbGlkYXRpb24gaXMgbm90IHBlcmZvcm1lZC5cbiAqIFdoZW4gbm9uLXN0cmluZyB2YWx1ZSBmb3IgSUJBTiBpcyBwcm92aWRlZCwgcmV0dXJucyBudWxsLlxuICogYGBgXG4gKiAvLyByZXR1cm5zIFwiTkw5MSBBQk5BIDA0MTcgMTY0MyAwMFwiXG4gKiBpYmFudG9vbHMuZnJpZW5kbHlGb3JtYXRJQkFOKFwiTkw5MUFCTkEwNDE3MTY0MzAwXCIpO1xuICogYGBgXG4gKiBgYGBcbiAqIC8vIHJldHVybnMgXCJOTDkxLUFCTkEtMDQxNy0xNjQzLTAwXCJcbiAqIGliYW50b29scy5mcmllbmRseUZvcm1hdElCQU4oXCJOTDkxQUJOQTA0MTcxNjQzMDBcIixcIi1cIik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyaWVuZGx5Rm9ybWF0SUJBTihpYmFuLCBzZXBhcmF0b3IpIHtcbiAgICBpZiAodHlwZW9mIGliYW4gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoc2VwYXJhdG9yID09PSB1bmRlZmluZWQgfHwgc2VwYXJhdG9yID09PSBudWxsKSB7XG4gICAgICAgIHNlcGFyYXRvciA9ICcgJztcbiAgICB9XG4gICAgdmFyIGVsZWN0cm9uaWNfaWJhbiA9IGVsZWN0cm9uaWNGb3JtYXRJQkFOKGliYW4pO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChlbGVjdHJvbmljX2liYW4gPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBlbGVjdHJvbmljX2liYW4ucmVwbGFjZSgvKC57NH0pKD8hJCkvZywgJyQxJyArIHNlcGFyYXRvcik7XG59XG4vKipcbiAqIENhbGN1bGF0ZSBjaGVja3N1bSBvZiBJQkFOIGFuZCBjb21wYXJlcyBpdCB3aXRoIGNoZWNrc3VtIHByb3ZpZGVkIGluIElCQU4gUmVnaXN0cnlcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRJQkFOQ2hlY2tzdW0oaWJhbikge1xuICAgIHZhciBjb3VudHJ5Q29kZSA9IGliYW4uc2xpY2UoMCwgMik7XG4gICAgdmFyIHByb3ZpZGVkQ2hlY2tzdW0gPSBwYXJzZUludChpYmFuLnNsaWNlKDIsIDQpLCAxMCk7XG4gICAgdmFyIGJiYW4gPSBpYmFuLnNsaWNlKDQpO1xuICAgIC8vIFdpa2lwZWRpYVt2YWxpZGF0aW5nX2liYW5dIHNheXMgdGhlcmUgYXJlIGEgc3BlY2lmIHdheSB0byBjaGVjayBpZiBhIElCQU4gaXMgdmFsaWQgYnV0XG4gICAgLy8gaXQuIEl0IHNheXMgJ0lmIHRoZSByZW1haW5kZXIgaXMgMSwgdGhlIGNoZWNrIGRpZ2l0IHRlc3QgaXMgcGFzc2VkIGFuZCB0aGVcbiAgICAvLyBJQkFOIG1pZ2h0IGJlIHZhbGlkLicuIG1pZ2h0LCBNSUdIVCFcbiAgICAvLyBXZSBkb24ndCB3YW50IG1pZ2h0IGJ1dCB3YW50IHllcyBvciBuby4gU2luY2UgZXZlcnkgQkJBTiBpcyBJQkFOIGZyb20gdGhlIGZpZnRoXG4gICAgLy8gKHNsaWNlKDQpKSB3ZSBjYW4gZ2VuZXJhdGUgdGhlIElCQU4gZnJvbSBCQkFOIGFuZCBjb3VudHJ5IGNvZGUodHdvIGZpcnN0IGNoYXJhY3RlcnMpXG4gICAgLy8gZnJvbSBpbiB0aGUgSUJBTi5cbiAgICAvLyBUbyBnZW5lcmF0ZSB0aGUgKGdlbmVyYXRlIHRoZSBpYmFuIGNoZWNrIGRpZ2l0cylbZ2VuZXJhdGluZy1pYmFuLWNoZWNrXVxuICAgIC8vICAgTW92ZSB0aGUgY291bnRyeSBjb2RlIHRvIHRoZSBlbmRcbiAgICAvLyAgIHJlbW92ZSB0aGUgY2hlY2tzdW0gZnJvbSB0aGUgYmVnZ2luZ1xuICAgIC8vICAgQWRkIFwiMDBcIiB0byB0aGUgZW5kXG4gICAgLy8gICBtb2R1bG8gOTcgb24gdGhlIGFtb3VudFxuICAgIC8vICAgc3VidHJhY3QgcmVtYWluZGVyIGZyb20gOTgsICg5OCAtIHJlbWFpbmRlcilcbiAgICAvLyAgIEFkZCBhIGxlYWRpbmcgMCBpZiB0aGUgcmVtYWluZGVyIGlzIGxlc3MgdGhlbiAxMCAocGFkU3RhcnQoMiwgXCIwXCIpKSAod2Ugc2tpcCB0aGlzXG4gICAgLy8gICAgIHNpbmNlIHdlIGNvbXBhcmUgaW50LCBub3Qgc3RyaW5nKVxuICAgIC8vXG4gICAgLy8gW3ZhbGlkYXRpbmdfaWJhbl1baHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSW50ZXJuYXRpb25hbF9CYW5rX0FjY291bnRfTnVtYmVyI1ZhbGlkYXRpbmdfdGhlX0lCQU5dXG4gICAgLy8gW2dlbmVyYXRpbmctaWJhbi1jaGVja11baHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSW50ZXJuYXRpb25hbF9CYW5rX0FjY291bnRfTnVtYmVyI0dlbmVyYXRpbmdfSUJBTl9jaGVja19kaWdpdHNdXG4gICAgdmFyIHZhbGlkYXRpb25TdHJpbmcgPSByZXBsYWNlQ2hhcmF0ZXJXaXRoQ29kZShcIlwiLmNvbmNhdChiYmFuKS5jb25jYXQoY291bnRyeUNvZGUsIFwiMDBcIikpO1xuICAgIHZhciByZXN0ID0gbW9kOTcxMCh2YWxpZGF0aW9uU3RyaW5nKTtcbiAgICByZXR1cm4gOTggLSByZXN0ID09PSBwcm92aWRlZENoZWNrc3VtO1xufVxuLyoqXG4gKiBJYmFuIGNvbnRhaW4gY2hhcmFjdGVycyBhbmQgc2hvdWxkIGJlIGNvbnZlcnRlZCB0byBpbnRlcmVnZXIgYnkgNTUgc3Vic3RyYWN0ZWRcbiAqIGZyb20gdGhlcmUgYXNjaWkgdmFsdWVcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmZ1bmN0aW9uIHJlcGxhY2VDaGFyYXRlcldpdGhDb2RlKHN0cikge1xuICAgIC8vIEl0IGlzIHNsb3dlciBidXQgYWxvdCBtb3JlIHJlYWRhYmxlXG4gICAgLy8gaHR0cHM6Ly9qc2JlbmNoLm1lL3R0a3pnc2VrYWUvMVxuICAgIHJldHVybiBzdHJcbiAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAubWFwKGZ1bmN0aW9uIChjKSB7XG4gICAgICAgIHZhciBjb2RlID0gYy5jaGFyQ29kZUF0KDApO1xuICAgICAgICByZXR1cm4gY29kZSA+PSA2NSA/IChjb2RlIC0gNTUpLnRvU3RyaW5nKCkgOiBjO1xuICAgIH0pXG4gICAgICAgIC5qb2luKCcnKTtcbn1cbi8qKlxuICogTU9ELTk3LTEwXG4gKlxuICogQGlnbm9yZVxuICovXG5mdW5jdGlvbiBtb2Q5NzEwSWJhbihpYmFuKSB7XG4gICAgcmV0dXJuIG1vZDk3MTAocmVwbGFjZUNoYXJhdGVyV2l0aENvZGUoaWJhbi5zbGljZSg0KSArIGliYW4uc2xpY2UoMCwgNCkpKTtcbn1cbi8qKlxuICogUmV0dXJucyBzcGVjaWZpY2F0aW9ucyBmb3IgYWxsIGNvdW50cmllcywgZXZlbiB0aG9zZSB3aG8gYXJlIG5vdFxuICogbWVtYmVycyBvZiBJQkFOIHJlZ2lzdHJ5LiBgSUJBTlJlZ2lzdHJ5YCBmaWVsZCBpbmRpY2F0ZXMgaWYgY291bnRyeVxuICogaXMgbWVtYmVyIG9mIG5vdC5cbiAqXG4gKiBgYGBcbiAqIC8vIFZhbGlkYXRpbmcgSUJBTiBmb3JtIGZpZWxkIGFmdGVyIHVzZXIgc2VsZWN0cyBoaXMgY291bnRyeVxuICogLy8gPHNlbGVjdCBpZD1cImNvdW50cmllc1wiPlxuICogLy8gICAuLi5cbiAqIC8vICAgPG9wdGlvbiB2YWx1ZT1cIk5MXCI+TmV0aGVybGFuZHM8L29wdGlvbj5cbiAqIC8vICAgLi4uXG4gKiAvLyA8L3NlbGVjdD5cbiAqICQoXCIjY291bnRyaWVzXCIpLnNlbGVjdChmdW5jdGlvbigpIHtcbiAqICAgLy8gRmluZCBjb3VudHJ5XG4gKiAgIGxldCBjb3VudHJ5ID0gaWJhbnRvb2xzLmdldENvdW50cnlTcGVjaWZpY2F0aW9ucygpWyQodGhpcykudmFsKCldO1xuICogICAvLyBBZGQgY291bnRyeSBjb2RlIGxldHRlcnMgdG8gSUJBTiBmb3JtIGZpZWxkXG4gKiAgICQoXCJpbnB1dCNpYmFuXCIpLnZhbHVlKCQodGhpcykudmFsKCkpO1xuICogICAvLyBBZGQgTmV3IHZhbHVlIHRvIFwicGF0dGVyblwiIGF0dHJpYnV0ZSB0byAjaWJhbiBpbnB1dCB0ZXh0IGZpZWxkXG4gKiAgICQoXCJpbnB1dCNpYmFuXCIpLmF0dHIoXCJwYXR0ZXJuXCIsICQodGhpcykudmFsKCkgKyBcIlswLTldezJ9XCIgKyBjb3VudHJ5LmJiYW5fcmVnZXhwLnNsaWNlKDEpLnJlcGxhY2UoXCIkXCIsXCJcIikpO1xuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvdW50cnlTcGVjaWZpY2F0aW9ucygpIHtcbiAgICB2YXIgY291bnR5TWFwID0ge307XG4gICAgZm9yICh2YXIgY291bnR5Q29kZSBpbiBjb3VudHJ5U3BlY3MpIHtcbiAgICAgICAgdmFyIGNvdW50eSA9IGNvdW50cnlTcGVjc1tjb3VudHlDb2RlXTtcbiAgICAgICAgY291bnR5TWFwW2NvdW50eUNvZGVdID0ge1xuICAgICAgICAgICAgY2hhcnM6IGNvdW50eS5jaGFycyB8fCBudWxsLFxuICAgICAgICAgICAgYmJhbl9yZWdleHA6IGNvdW50eS5iYmFuX3JlZ2V4cCB8fCBudWxsLFxuICAgICAgICAgICAgSUJBTlJlZ2lzdHJ5OiBjb3VudHkuSUJBTlJlZ2lzdHJ5IHx8IGZhbHNlLFxuICAgICAgICAgICAgU0VQQTogY291bnR5LlNFUEEgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBjb3VudHlNYXA7XG59XG4vKipcbiAqIFZhbGlkYXRlIEJJQy9TV0lGVFxuICpcbiAqIGBgYFxuICogLy8gcmV0dXJucyB0cnVlXG4gKiBpYmFudG9vbHMuaXNWYWxpZEJJQyhcIkFCTkFOTDJBXCIpO1xuICpcbiAqIC8vIHJldHVybnMgdHJ1ZVxuICogaWJhbnRvb2xzLmlzVmFsaWRCSUMoXCJORURTWkFKSlhYWFwiKTtcbiAqXG4gKiAvLyByZXR1cm5zIGZhbHNlXG4gKiBpYmFudG9vbHMuaXNWYWxpZEJJQyhcIkFCTjROTDJBXCIpO1xuICpcbiAqIC8vIHJldHVybnMgZmFsc2VcbiAqIGliYW50b29scy5pc1ZhbGlkQklDKFwiQUJOQSBOTCAyQVwiKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEJJQyhiaWMpIHtcbiAgICBpZiAoIWJpYykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciByZWcgPSBuZXcgUmVnRXhwKCdeW2EtekEtWl17Nn1bYS16QS1aMC05XXsyfShbYS16QS1aMC05XXszfSk/JCcsICcnKTtcbiAgICB2YXIgc3BlYyA9IGNvdW50cnlTcGVjc1tiaWMudG9VcHBlckNhc2UoKS5zbGljZSg0LCA2KV07XG4gICAgcmV0dXJuIHJlZy50ZXN0KGJpYykgJiYgc3BlYyAhPT0gdW5kZWZpbmVkO1xufVxuLyoqXG4gKiBCSUMgdmFsaWRhdGlvbiBlcnJvcnNcbiAqL1xuZXhwb3J0IHZhciBWYWxpZGF0aW9uRXJyb3JzQklDO1xuKGZ1bmN0aW9uIChWYWxpZGF0aW9uRXJyb3JzQklDKSB7XG4gICAgVmFsaWRhdGlvbkVycm9yc0JJQ1tWYWxpZGF0aW9uRXJyb3JzQklDW1wiTm9CSUNQcm92aWRlZFwiXSA9IDBdID0gXCJOb0JJQ1Byb3ZpZGVkXCI7XG4gICAgVmFsaWRhdGlvbkVycm9yc0JJQ1tWYWxpZGF0aW9uRXJyb3JzQklDW1wiTm9CSUNDb3VudHJ5XCJdID0gMV0gPSBcIk5vQklDQ291bnRyeVwiO1xuICAgIFZhbGlkYXRpb25FcnJvcnNCSUNbVmFsaWRhdGlvbkVycm9yc0JJQ1tcIldyb25nQklDRm9ybWF0XCJdID0gMl0gPSBcIldyb25nQklDRm9ybWF0XCI7XG59KShWYWxpZGF0aW9uRXJyb3JzQklDIHx8IChWYWxpZGF0aW9uRXJyb3JzQklDID0ge30pKTtcbi8qKlxuICogdmFsaWRhdGVCSUNcbiAqIGBgYFxuICogLy8gcmV0dXJucyB7ZXJyb3JDb2RlczogW10sIHZhbGlkOiB0cnVlfVxuICogaWJhbnRvb2xzLnZhbGlkYXRlQklDKFwiTkVEU1pBSkpYWFhcIik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQklDKGJpYykge1xuICAgIHZhciByZXN1bHQgPSB7IGVycm9yQ29kZXM6IFtdLCB2YWxpZDogdHJ1ZSB9O1xuICAgIGlmIChiaWMgIT09IHVuZGVmaW5lZCAmJiBiaWMgIT09IG51bGwgJiYgYmljICE9PSAnJykge1xuICAgICAgICB2YXIgc3BlYyA9IGNvdW50cnlTcGVjc1tiaWMudG9VcHBlckNhc2UoKS5zbGljZSg0LCA2KV07XG4gICAgICAgIGlmIChzcGVjID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlc3VsdC52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmVzdWx0LmVycm9yQ29kZXMucHVzaChWYWxpZGF0aW9uRXJyb3JzQklDLk5vQklDQ291bnRyeSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgcmVnID0gbmV3IFJlZ0V4cCgnXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQnLCAnJyk7XG4gICAgICAgICAgICBpZiAoIXJlZy50ZXN0KGJpYykpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQudmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXN1bHQuZXJyb3JDb2Rlcy5wdXNoKFZhbGlkYXRpb25FcnJvcnNCSUMuV3JvbmdCSUNGb3JtYXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXN1bHQudmFsaWQgPSBmYWxzZTtcbiAgICAgICAgcmVzdWx0LmVycm9yQ29kZXMucHVzaChWYWxpZGF0aW9uRXJyb3JzQklDLk5vQklDUHJvdmlkZWQpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBleHRyYWN0QklDXG4gKiBgYGBcbiAqIC8vIHJldHVybnMge2JhbmtDb2RlOiBcIkFCTkFcIiwgY291bnRyeUNvZGU6IFwiTkxcIiwgbG9jYXRpb25Db2RlOiBcIjJBXCIsIGJyYW5jaENvZGU6IG51bGwsIHRlc3RCSUM6IGZhbHNlLCB2YWxpZDogdHJ1ZX1cbiAqIGliYW50b29scy5leHRyYWN0QklDKFwiQUJOQU5MMkFcIik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RCSUMoaW5wdXRCaWMpIHtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgdmFyIGJpYyA9IGlucHV0QmljLnRvVXBwZXJDYXNlKCk7XG4gICAgaWYgKGlzVmFsaWRCSUMoYmljKSkge1xuICAgICAgICByZXN1bHQuYmFua0NvZGUgPSBiaWMuc2xpY2UoMCwgNCk7XG4gICAgICAgIHJlc3VsdC5jb3VudHJ5Q29kZSA9IGJpYy5zbGljZSg0LCA2KTtcbiAgICAgICAgcmVzdWx0LmxvY2F0aW9uQ29kZSA9IGJpYy5zbGljZSg2LCA4KTtcbiAgICAgICAgcmVzdWx0LnRlc3RCSUMgPSByZXN1bHQubG9jYXRpb25Db2RlWzFdID09PSAnMCcgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHJlc3VsdC5icmFuY2hDb2RlID0gYmljLmxlbmd0aCA+IDggPyBiaWMuc2xpY2UoOCkgOiBudWxsO1xuICAgICAgICByZXN1bHQudmFsaWQgPSB0cnVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmVzdWx0LnZhbGlkID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG4vKipcbiAqIFVzZWQgZm9yIE5vcndheSBCQkFOIGNoZWNrXG4gKlxuICogQGlnbm9yZVxuICovXG52YXIgY2hlY2tOb3J3YXlCQkFOID0gZnVuY3Rpb24gKGJiYW4pIHtcbiAgICB2YXIgd2VpZ2h0cyA9IFs1LCA0LCAzLCAyLCA3LCA2LCA1LCA0LCAzLCAyXTtcbiAgICB2YXIgYmJhbldpdGhvdXRTcGFjZXNBbmRQZXJpb2RzID0gYmJhbi5yZXBsYWNlKC9bXFxzLl0rL2csICcnKTtcbiAgICB2YXIgY29udHJvbERpZ2l0ID0gcGFyc2VJbnQoYmJhbldpdGhvdXRTcGFjZXNBbmRQZXJpb2RzLmNoYXJBdCgxMCksIDEwKTtcbiAgICB2YXIgYmJhbldpdGhvdXRDb250cm9sRGlnaXQgPSBiYmFuV2l0aG91dFNwYWNlc0FuZFBlcmlvZHMuc3Vic3RyaW5nKDAsIDEwKTtcbiAgICB2YXIgc3VtID0gMDtcbiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTA7IGluZGV4KyspIHtcbiAgICAgICAgc3VtICs9IHBhcnNlSW50KGJiYW5XaXRob3V0Q29udHJvbERpZ2l0LmNoYXJBdChpbmRleCksIDEwKSAqIHdlaWdodHNbaW5kZXhdO1xuICAgIH1cbiAgICB2YXIgcmVtYWluZGVyID0gc3VtICUgMTE7XG4gICAgcmV0dXJuIGNvbnRyb2xEaWdpdCA9PT0gKHJlbWFpbmRlciA9PT0gMCA/IDAgOiAxMSAtIHJlbWFpbmRlcik7XG59O1xuLyoqXG4gKiBVc2VkIGZvciBCZWxnaWFuIEJCQU4gY2hlY2tcbiAqXG4gKiBAaWdub3JlXG4gKi9cbnZhciBjaGVja0JlbGdpYW5CQkFOID0gZnVuY3Rpb24gKGJiYW4pIHtcbiAgICB2YXIgc3RyaXBwZWQgPSBiYmFuLnJlcGxhY2UoL1tcXHMuXSsvZywgJycpO1xuICAgIHZhciBjaGVja2luZ1BhcnQgPSBwYXJzZUludChzdHJpcHBlZC5zdWJzdHJpbmcoMCwgc3RyaXBwZWQubGVuZ3RoIC0gMiksIDEwKTtcbiAgICB2YXIgY2hlY2tzdW0gPSBwYXJzZUludChzdHJpcHBlZC5zdWJzdHJpbmcoc3RyaXBwZWQubGVuZ3RoIC0gMiwgc3RyaXBwZWQubGVuZ3RoKSwgMTApO1xuICAgIHZhciByZW1haW5kZXIgPSBjaGVja2luZ1BhcnQgJSA5NyA9PT0gMCA/IDk3IDogY2hlY2tpbmdQYXJ0ICUgOTc7XG4gICAgcmV0dXJuIHJlbWFpbmRlciA9PT0gY2hlY2tzdW07XG59O1xuLyoqXG4gKiBNb2QgOTcvMTAgY2FsY3VsYXRpb25cbiAqXG4gKiBAaWdub3JlXG4gKi9cbnZhciBtb2Q5NzEwID0gZnVuY3Rpb24gKHZhbGlkYXRpb25TdHJpbmcpIHtcbiAgICB3aGlsZSAodmFsaWRhdGlvblN0cmluZy5sZW5ndGggPiAyKSB7XG4gICAgICAgIC8vID4gQW55IGNvbXB1dGVyIHByb2dyYW1taW5nIGxhbmd1YWdlIG9yIHNvZnR3YXJlIHBhY2thZ2UgdGhhdCBpcyB1c2VkIHRvIGNvbXB1dGUgRFxuICAgICAgICAvLyA+IG1vZCA5NyBkaXJlY3RseSBtdXN0IGhhdmUgdGhlIGFiaWxpdHkgdG8gaGFuZGxlIGludGVnZXJzIG9mIG1vcmUgdGhhbiAzMCBkaWdpdHMuXG4gICAgICAgIC8vID4gSW4gcHJhY3RpY2UsIHRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSBzb2Z0d2FyZSB0aGF0IGVpdGhlciBzdXBwb3J0c1xuICAgICAgICAvLyA+IGFyYml0cmFyeS1wcmVjaXNpb24gYXJpdGhtZXRpYyBvciB0aGF0IGNhbiBoYW5kbGUgMjE5LWJpdCAodW5zaWduZWQpIGludGVnZXJzXG4gICAgICAgIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0ludGVybmF0aW9uYWxfQmFua19BY2NvdW50X051bWJlciNNb2R1bG9fb3BlcmF0aW9uX29uX0lCQU5cbiAgICAgICAgdmFyIHBhcnQgPSB2YWxpZGF0aW9uU3RyaW5nLnNsaWNlKDAsIDYpO1xuICAgICAgICB2YXIgcGFydEludCA9IHBhcnNlSW50KHBhcnQsIDEwKTtcbiAgICAgICAgaWYgKGlzTmFOKHBhcnRJbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhbGlkYXRpb25TdHJpbmcgPSAocGFydEludCAlIDk3KSArIHZhbGlkYXRpb25TdHJpbmcuc2xpY2UocGFydC5sZW5ndGgpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VJbnQodmFsaWRhdGlvblN0cmluZywgMTApICUgOTc7XG59O1xuLyoqXG4gKiBDaGVjayBCQkFOIGJhc2VkIG9uIE1vZDk3LzEwIGNhbGN1bGF0aW9uIGZvciBjb3VudHJpZXMgdGhhdCBzdXBwb3J0IGl0OlxuICogQkEsIE1FLCBNSywgUFQsIFJTLCBTSVxuICpcbiAqIEBpZ25vcmVcbiAqL1xudmFyIGNoZWNrTW9kOTcxMEJCQU4gPSBmdW5jdGlvbiAoYmJhbikge1xuICAgIHZhciBzdHJpcHBlZCA9IGJiYW4ucmVwbGFjZSgvW1xccy5dKy9nLCAnJyk7XG4gICAgdmFyIHJlbWluZGVyID0gbW9kOTcxMChzdHJpcHBlZCk7XG4gICAgcmV0dXJuIHJlbWluZGVyID09PSAxO1xufTtcbi8qKlxuICogVXNlZCBmb3IgUG9sYW5kIEJCQU4gY2hlY2tcbiAqXG4gKiBAaWdub3JlXG4gKi9cbnZhciBjaGVja1BvbGFuZEJCQU4gPSBmdW5jdGlvbiAoYmJhbikge1xuICAgIHZhciB3ZWlnaHRzID0gWzMsIDksIDcsIDEsIDMsIDksIDddO1xuICAgIHZhciBjb250cm9sRGlnaXQgPSBwYXJzZUludChiYmFuLmNoYXJBdCg3KSwgMTApO1xuICAgIHZhciB0b0NoZWNrID0gYmJhbi5zdWJzdHJpbmcoMCwgNyk7XG4gICAgdmFyIHN1bSA9IDA7XG4gICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IDc7IGluZGV4KyspIHtcbiAgICAgICAgc3VtICs9IHBhcnNlSW50KHRvQ2hlY2suY2hhckF0KGluZGV4KSwgMTApICogd2VpZ2h0c1tpbmRleF07XG4gICAgfVxuICAgIHZhciByZW1haW5kZXIgPSBzdW0gJSAxMDtcbiAgICByZXR1cm4gY29udHJvbERpZ2l0ID09PSAocmVtYWluZGVyID09PSAwID8gMCA6IDEwIC0gcmVtYWluZGVyKTtcbn07XG4vKipcbiAqIFNwYWluIChFUykgQkJBTiBjaGVja1xuICpcbiAqIEBpZ25vcmVcbiAqL1xudmFyIGNoZWNrU3BhaW5CQkFOID0gZnVuY3Rpb24gKGJiYW4pIHtcbiAgICB2YXIgd2VpZ2h0c0JhbmtCcmFuY2ggPSBbNCwgOCwgNSwgMTAsIDksIDcsIDMsIDZdO1xuICAgIHZhciB3ZWlnaHRzQWNjb3VudCA9IFsxLCAyLCA0LCA4LCA1LCAxMCwgOSwgNywgMywgNl07XG4gICAgdmFyIGNvbnRyb2xCYW5rQnJhbmNoID0gcGFyc2VJbnQoYmJhbi5jaGFyQXQoOCksIDEwKTtcbiAgICB2YXIgY29udHJvbEFjY291bnQgPSBwYXJzZUludChiYmFuLmNoYXJBdCg5KSwgMTApO1xuICAgIHZhciBiYW5rQnJhbmNoID0gYmJhbi5zdWJzdHJpbmcoMCwgOCk7XG4gICAgdmFyIGFjY291bnQgPSBiYmFuLnN1YnN0cmluZygxMCwgMjApO1xuICAgIHZhciBzdW0gPSAwO1xuICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCA4OyBpbmRleCsrKSB7XG4gICAgICAgIHN1bSArPSBwYXJzZUludChiYW5rQnJhbmNoLmNoYXJBdChpbmRleCksIDEwKSAqIHdlaWdodHNCYW5rQnJhbmNoW2luZGV4XTtcbiAgICB9XG4gICAgdmFyIHJlbWFpbmRlciA9IHN1bSAlIDExO1xuICAgIGlmIChjb250cm9sQmFua0JyYW5jaCAhPT0gKHJlbWFpbmRlciA9PT0gMCA/IDAgOiByZW1haW5kZXIgPT09IDEgPyAxIDogMTEgLSByZW1haW5kZXIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc3VtID0gMDtcbiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTA7IGluZGV4KyspIHtcbiAgICAgICAgc3VtICs9IHBhcnNlSW50KGFjY291bnQuY2hhckF0KGluZGV4KSwgMTApICogd2VpZ2h0c0FjY291bnRbaW5kZXhdO1xuICAgIH1cbiAgICByZW1haW5kZXIgPSBzdW0gJSAxMTtcbiAgICByZXR1cm4gY29udHJvbEFjY291bnQgPT09IChyZW1haW5kZXIgPT09IDAgPyAwIDogcmVtYWluZGVyID09PSAxID8gMSA6IDExIC0gcmVtYWluZGVyKTtcbn07XG4vKipcbiAqIE1vZCAxMS8xMCBjaGVja1xuICpcbiAqIEBpZ25vcmVcbiAqL1xudmFyIGNoZWNrTW9kMTExMCA9IGZ1bmN0aW9uICh0b0NoZWNrLCBjb250cm9sKSB7XG4gICAgdmFyIG5yID0gMTA7XG4gICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IHRvQ2hlY2subGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIG5yICs9IHBhcnNlSW50KHRvQ2hlY2suY2hhckF0KGluZGV4KSwgMTApO1xuICAgICAgICBpZiAobnIgJSAxMCAhPT0gMCkge1xuICAgICAgICAgICAgbnIgPSBuciAlIDEwO1xuICAgICAgICB9XG4gICAgICAgIG5yID0gbnIgKiAyO1xuICAgICAgICBuciA9IG5yICUgMTE7XG4gICAgfVxuICAgIHJldHVybiBjb250cm9sID09PSAoMTEgLSBuciA9PT0gMTAgPyAwIDogMTEgLSBucik7XG59O1xuLyoqXG4gKiBDcm9hdGlhbiAoSFIpIEJCQU4gY2hlY2tcbiAqXG4gKiBAaWdub3JlXG4gKi9cbnZhciBjaGVja0Nyb2F0aWFuQkJBTiA9IGZ1bmN0aW9uIChiYmFuKSB7XG4gICAgdmFyIGNvbnRyb2xCYW5rQnJhbmNoID0gcGFyc2VJbnQoYmJhbi5jaGFyQXQoNiksIDEwKTtcbiAgICB2YXIgY29udHJvbEFjY291bnQgPSBwYXJzZUludChiYmFuLmNoYXJBdCgxNiksIDEwKTtcbiAgICB2YXIgYmFua0JyYW5jaCA9IGJiYW4uc3Vic3RyaW5nKDAsIDYpO1xuICAgIHZhciBhY2NvdW50ID0gYmJhbi5zdWJzdHJpbmcoNywgMTYpO1xuICAgIHJldHVybiBjaGVja01vZDExMTAoYmFua0JyYW5jaCwgY29udHJvbEJhbmtCcmFuY2gpICYmIGNoZWNrTW9kMTExMChhY2NvdW50LCBjb250cm9sQWNjb3VudCk7XG59O1xuLyoqXG4gKiBDemVjaCAoQ1opIGFuZCBTbG93YWsgKFNLKSBCQkFOIGNoZWNrXG4gKlxuICogQGlnbm9yZVxuICovXG52YXIgY2hlY2tDemVjaEFuZFNsb3Zha0JCQU4gPSBmdW5jdGlvbiAoYmJhbikge1xuICAgIHZhciB3ZWlnaHRzUHJlZml4ID0gWzEwLCA1LCA4LCA0LCAyLCAxXTtcbiAgICB2YXIgd2VpZ2h0c1N1ZmZpeCA9IFs2LCAzLCA3LCA5LCAxMCwgNSwgOCwgNCwgMiwgMV07XG4gICAgdmFyIGNvbnRyb2xQcmVmaXggPSBwYXJzZUludChiYmFuLmNoYXJBdCg5KSwgMTApO1xuICAgIHZhciBjb250cm9sU3VmZml4ID0gcGFyc2VJbnQoYmJhbi5jaGFyQXQoMTkpLCAxMCk7XG4gICAgdmFyIHByZWZpeCA9IGJiYW4uc3Vic3RyaW5nKDQsIDkpO1xuICAgIHZhciBzdWZmaXggPSBiYmFuLnN1YnN0cmluZygxMCwgMTkpO1xuICAgIHZhciBzdW0gPSAwO1xuICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBwcmVmaXgubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIHN1bSArPSBwYXJzZUludChwcmVmaXguY2hhckF0KGluZGV4KSwgMTApICogd2VpZ2h0c1ByZWZpeFtpbmRleF07XG4gICAgfVxuICAgIHZhciByZW1haW5kZXIgPSBzdW0gJSAxMTtcbiAgICBpZiAoY29udHJvbFByZWZpeCAhPT0gKHJlbWFpbmRlciA9PT0gMCA/IDAgOiByZW1haW5kZXIgPT09IDEgPyAxIDogMTEgLSByZW1haW5kZXIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc3VtID0gMDtcbiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgc3VmZml4Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBzdW0gKz0gcGFyc2VJbnQoc3VmZml4LmNoYXJBdChpbmRleCksIDEwKSAqIHdlaWdodHNTdWZmaXhbaW5kZXhdO1xuICAgIH1cbiAgICByZW1haW5kZXIgPSBzdW0gJSAxMTtcbiAgICByZXR1cm4gY29udHJvbFN1ZmZpeCA9PT0gKHJlbWFpbmRlciA9PT0gMCA/IDAgOiByZW1haW5kZXIgPT09IDEgPyAxIDogMTEgLSByZW1haW5kZXIpO1xufTtcbi8qKlxuICogRXN0b25pYW4gKEVFKSBCQkFOIGNoZWNrXG4gKlxuICogQGlnbm9yZVxuICovXG52YXIgY2hlY2tFc3RvbmlhbkJCQU4gPSBmdW5jdGlvbiAoYmJhbikge1xuICAgIHZhciB3ZWlnaHRzID0gWzcsIDEsIDMsIDcsIDEsIDMsIDcsIDEsIDMsIDcsIDEsIDMsIDddO1xuICAgIHZhciBjb250cm9sRGlnaXQgPSBwYXJzZUludChiYmFuLmNoYXJBdCgxNSksIDEwKTtcbiAgICB2YXIgdG9DaGVjayA9IGJiYW4uc3Vic3RyaW5nKDIsIDE1KTtcbiAgICB2YXIgc3VtID0gMDtcbiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdG9DaGVjay5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgc3VtICs9IHBhcnNlSW50KHRvQ2hlY2suY2hhckF0KGluZGV4KSwgMTApICogd2VpZ2h0c1tpbmRleF07XG4gICAgfVxuICAgIHZhciByZW1haW5kZXIgPSBzdW0gJSAxMDtcbiAgICByZXR1cm4gY29udHJvbERpZ2l0ID09PSAocmVtYWluZGVyID09PSAwID8gMCA6IDEwIC0gcmVtYWluZGVyKTtcbn07XG4vKipcbiAqIENoZWNrIEZyZW5jaCAoRlIpIEJCQU5cbiAqIEFsc28gZm9yIE1vbmFjbyAoTUMpXG4gKlxuICogQGlnbm9yZVxuICovXG52YXIgY2hlY2tGcmVuY2hCQkFOID0gZnVuY3Rpb24gKGJiYW4pIHtcbiAgICB2YXIgc3RyaXBwZWQgPSBiYmFuLnJlcGxhY2UoL1tcXHMuXSsvZywgJycpO1xuICAgIHZhciBub3JtYWxpemVkID0gQXJyYXkuZnJvbShzdHJpcHBlZCk7XG4gICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IHN0cmlwcGVkLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICB2YXIgYyA9IG5vcm1hbGl6ZWRbaW5kZXhdLmNoYXJDb2RlQXQoMCk7XG4gICAgICAgIGlmIChjID49IDY1KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGMpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDY1OlxuICAgICAgICAgICAgICAgIGNhc2UgNzQ6XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRbaW5kZXhdID0gJzEnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDY2OlxuICAgICAgICAgICAgICAgIGNhc2UgNzU6XG4gICAgICAgICAgICAgICAgY2FzZSA4MzpcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFtpbmRleF0gPSAnMic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNjc6XG4gICAgICAgICAgICAgICAgY2FzZSA3NjpcbiAgICAgICAgICAgICAgICBjYXNlIDg0OlxuICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkW2luZGV4XSA9ICczJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA2ODpcbiAgICAgICAgICAgICAgICBjYXNlIDc3OlxuICAgICAgICAgICAgICAgIGNhc2UgODU6XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRbaW5kZXhdID0gJzQnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDY5OlxuICAgICAgICAgICAgICAgIGNhc2UgNzg6XG4gICAgICAgICAgICAgICAgY2FzZSA4NjpcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFtpbmRleF0gPSAnNSc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNzA6XG4gICAgICAgICAgICAgICAgY2FzZSA3OTpcbiAgICAgICAgICAgICAgICBjYXNlIDg3OlxuICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkW2luZGV4XSA9ICc2JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA3MTpcbiAgICAgICAgICAgICAgICBjYXNlIDgwOlxuICAgICAgICAgICAgICAgIGNhc2UgODg6XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRbaW5kZXhdID0gJzcnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDcyOlxuICAgICAgICAgICAgICAgIGNhc2UgODE6XG4gICAgICAgICAgICAgICAgY2FzZSA4OTpcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFtpbmRleF0gPSAnOCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNzM6XG4gICAgICAgICAgICAgICAgY2FzZSA4MjpcbiAgICAgICAgICAgICAgICBjYXNlIDkwOlxuICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkW2luZGV4XSA9ICc5JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFyIHJlbWFpbmRlciA9IG1vZDk3MTAobm9ybWFsaXplZC5qb2luKCcnKSk7XG4gICAgcmV0dXJuIHJlbWFpbmRlciA9PT0gMDtcbn07XG4vKipcbiAqIEh1bmdhcmlhbiAoSFUpIEJCQU4gY2hlY2tcbiAqXG4gKiBAaWdub3JlXG4gKi9cbnZhciBjaGVja0h1bmdhcmlhbkJCQU4gPSBmdW5jdGlvbiAoYmJhbikge1xuICAgIHZhciB3ZWlnaHRzID0gWzksIDcsIDMsIDEsIDksIDcsIDMsIDEsIDksIDcsIDMsIDEsIDksIDcsIDNdO1xuICAgIHZhciBjb250cm9sRGlnaXRCYW5rQnJhbmNoID0gcGFyc2VJbnQoYmJhbi5jaGFyQXQoNyksIDEwKTtcbiAgICB2YXIgdG9DaGVja0JhbmtCcmFuY2ggPSBiYmFuLnN1YnN0cmluZygwLCA3KTtcbiAgICB2YXIgc3VtID0gMDtcbiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdG9DaGVja0JhbmtCcmFuY2gubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIHN1bSArPSBwYXJzZUludCh0b0NoZWNrQmFua0JyYW5jaC5jaGFyQXQoaW5kZXgpLCAxMCkgKiB3ZWlnaHRzW2luZGV4XTtcbiAgICB9XG4gICAgdmFyIHJlbWFpbmRlciA9IHN1bSAlIDEwO1xuICAgIGlmIChjb250cm9sRGlnaXRCYW5rQnJhbmNoICE9PSAocmVtYWluZGVyID09PSAwID8gMCA6IDEwIC0gcmVtYWluZGVyKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHN1bSA9IDA7XG4gICAgaWYgKGJiYW4uZW5kc1dpdGgoJzAwMDAwMDAwJykpIHtcbiAgICAgICAgdmFyIHRvQ2hlY2tBY2NvdW50ID0gYmJhbi5zdWJzdHJpbmcoOCwgMTUpO1xuICAgICAgICB2YXIgY29udHJvbERpZ2l0QWNjb3VudCA9IHBhcnNlSW50KGJiYW4uY2hhckF0KDE1KSwgMTApO1xuICAgICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdG9DaGVja0FjY291bnQubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBzdW0gKz0gcGFyc2VJbnQodG9DaGVja0FjY291bnQuY2hhckF0KGluZGV4KSwgMTApICogd2VpZ2h0c1tpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlbWFpbmRlcl8xID0gc3VtICUgMTA7XG4gICAgICAgIHJldHVybiBjb250cm9sRGlnaXRBY2NvdW50ID09PSAocmVtYWluZGVyXzEgPT09IDAgPyAwIDogMTAgLSByZW1haW5kZXJfMSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB2YXIgdG9DaGVja0FjY291bnQgPSBiYmFuLnN1YnN0cmluZyg4LCAyMyk7XG4gICAgICAgIHZhciBjb250cm9sRGlnaXRBY2NvdW50ID0gcGFyc2VJbnQoYmJhbi5jaGFyQXQoMjMpLCAxMCk7XG4gICAgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCB0b0NoZWNrQWNjb3VudC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIHN1bSArPSBwYXJzZUludCh0b0NoZWNrQWNjb3VudC5jaGFyQXQoaW5kZXgpLCAxMCkgKiB3ZWlnaHRzW2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmVtYWluZGVyXzIgPSBzdW0gJSAxMDtcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xEaWdpdEFjY291bnQgPT09IChyZW1haW5kZXJfMiA9PT0gMCA/IDAgOiAxMCAtIHJlbWFpbmRlcl8yKTtcbiAgICB9XG59O1xuLyoqXG4gKiBTZXQgY3VzdG9tIEJCQU4gdmFsaWRhdGlvbiBmdW5jdGlvbiBmb3IgY291bnRyeS5cbiAqXG4gKiBJZiBgYmJhbl92YWxpZGF0aW9uX2Z1bmNgIGFscmVhZHkgZXhpc3RzIGZvciB0aGUgY29ycmVzcG9uZGluZyBjb3VudHJ5LFxuICogaXQgd2lsbCBiZSBvdmVyd3JpdHRlbi5cbiAqL1xuZXhwb3J0IHZhciBzZXRDb3VudHJ5QkJBTlZhbGlkYXRpb24gPSBmdW5jdGlvbiAoY291bnRyeSwgZnVuYykge1xuICAgIGlmICh0eXBlb2YgY291bnRyeVNwZWNzW2NvdW50cnldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvdW50cnlTcGVjc1tjb3VudHJ5XS5iYmFuX3ZhbGlkYXRpb25fZnVuYyA9IGZ1bmM7XG4gICAgcmV0dXJuIHRydWU7XG59O1xuLyoqXG4gKiBDb3VudHJ5IHNwZWNpZmljYXRpb25zXG4gKi9cbmV4cG9ydCB2YXIgY291bnRyeVNwZWNzID0ge1xuICAgIEFEOiB7XG4gICAgICAgIGNoYXJzOiAyNCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17OH1bQS1aMC05XXsxMn0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBTRVBBOiB0cnVlLFxuICAgICAgICBicmFuY2hfaW5kZW50aWZpZXI6ICc0LTcnLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTMnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnOC0yNCcsXG4gICAgfSxcbiAgICBBRToge1xuICAgICAgICBjaGFyczogMjMsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezN9WzAtOV17MTZ9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0yJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzctMjMnLFxuICAgIH0sXG4gICAgQUY6IHt9LFxuICAgIEFHOiB7fSxcbiAgICBBSToge30sXG4gICAgQUw6IHtcbiAgICAgICAgY2hhcnM6IDI4LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXs4fVtBLVowLTldezE2fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzMtNycsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMicsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICcxMi0yOCcsXG4gICAgfSxcbiAgICBBTToge30sXG4gICAgQU86IHtcbiAgICAgICAgY2hhcnM6IDI1LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsyMX0kJyxcbiAgICB9LFxuICAgIEFROiB7fSxcbiAgICBBUjoge30sXG4gICAgQVM6IHt9LFxuICAgIEFUOiB7IGNoYXJzOiAyMCwgYmJhbl9yZWdleHA6ICdeWzAtOV17MTZ9JCcsIElCQU5SZWdpc3RyeTogdHJ1ZSwgU0VQQTogdHJ1ZSwgYmFua19pZGVudGlmaWVyOiAnMC00JyB9LFxuICAgIEFVOiB7fSxcbiAgICBBVzoge30sXG4gICAgQVg6IHtcbiAgICAgICAgY2hhcnM6IDE4LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxNH0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgIH0sXG4gICAgQVo6IHtcbiAgICAgICAgY2hhcnM6IDI4LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bQS1aXXs0fVtBLVowLTldezIwfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc0LTI4JyxcbiAgICB9LFxuICAgIEJBOiB7XG4gICAgICAgIGNoYXJzOiAyMCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTZ9JCcsXG4gICAgICAgIGJiYW5fdmFsaWRhdGlvbl9mdW5jOiBjaGVja01vZDk3MTBCQkFOLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzMtNScsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMicsXG4gICAgfSxcbiAgICBCQjoge30sXG4gICAgQkQ6IHt9LFxuICAgIEJFOiB7XG4gICAgICAgIGNoYXJzOiAxNixcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTJ9JCcsXG4gICAgICAgIGJiYW5fdmFsaWRhdGlvbl9mdW5jOiBjaGVja0JlbGdpYW5CQkFOLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMicsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICcwLTE2JyxcbiAgICB9LFxuICAgIEJGOiB7XG4gICAgICAgIGNoYXJzOiAyOCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWjAtOV17Mn1bMC05XXsyMn0kJyxcbiAgICB9LFxuICAgIEJHOiB7XG4gICAgICAgIGNoYXJzOiAyMixcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17NH1bMC05XXs2fVtBLVowLTldezh9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYnJhbmNoX2luZGVudGlmaWVyOiAnNC03JyxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0zJyxcbiAgICB9LFxuICAgIEJIOiB7XG4gICAgICAgIGNoYXJzOiAyMixcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17NH1bQS1aMC05XXsxNH0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTMnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnOC0yMicsXG4gICAgfSxcbiAgICBCSToge1xuICAgICAgICBjaGFyczogMjcsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezIzfSQnLFxuICAgICAgICBicmFuY2hfaW5kZW50aWZpZXI6ICc1LTknLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTQnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnMTQtMjcnLFxuICAgIH0sXG4gICAgQko6IHtcbiAgICAgICAgY2hhcnM6IDI4LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bQS1aMC05XXsyfVswLTldezIyfSQnLFxuICAgIH0sXG4gICAgQkw6IHtcbiAgICAgICAgY2hhcnM6IDI3LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQnLFxuICAgIH0sXG4gICAgQk06IHt9LFxuICAgIEJOOiB7fSxcbiAgICBCTzoge30sXG4gICAgQlE6IHt9LFxuICAgIEJSOiB7XG4gICAgICAgIGNoYXJzOiAyOSxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MjN9W0EtWl17MX1bQS1aMC05XXsxfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzgtMTInLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTcnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnMTctMjknLFxuICAgIH0sXG4gICAgQlM6IHt9LFxuICAgIEJUOiB7fSxcbiAgICBCVjoge30sXG4gICAgQlc6IHt9LFxuICAgIEJZOiB7XG4gICAgICAgIGNoYXJzOiAyOCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17NH1bMC05XXs0fVtBLVowLTldezE2fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgfSxcbiAgICBCWjoge30sXG4gICAgQ0E6IHt9LFxuICAgIENDOiB7fSxcbiAgICBDRDoge30sXG4gICAgQ0Y6IHtcbiAgICAgICAgY2hhcnM6IDI3LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsyM30kJyxcbiAgICB9LFxuICAgIENHOiB7XG4gICAgICAgIGNoYXJzOiAyNyxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MjN9JCcsXG4gICAgfSxcbiAgICBDSDoge1xuICAgICAgICBjaGFyczogMjEsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezV9W0EtWjAtOV17MTJ9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC00JyxcbiAgICB9LFxuICAgIENJOiB7XG4gICAgICAgIGNoYXJzOiAyOCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17MX1bMC05XXsyM30kJyxcbiAgICB9LFxuICAgIENLOiB7fSxcbiAgICBDTDoge30sXG4gICAgQ006IHtcbiAgICAgICAgY2hhcnM6IDI3LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsyM30kJyxcbiAgICB9LFxuICAgIENOOiB7fSxcbiAgICBDTzoge30sXG4gICAgQ1I6IHtcbiAgICAgICAgY2hhcnM6IDIyLFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxOH0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTMnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnOC0yMicsXG4gICAgfSxcbiAgICBDVToge30sXG4gICAgQ1Y6IHsgY2hhcnM6IDI1LCBiYmFuX3JlZ2V4cDogJ15bMC05XXsyMX0kJyB9LFxuICAgIENXOiB7fSxcbiAgICBDWDoge30sXG4gICAgQ1k6IHtcbiAgICAgICAgY2hhcnM6IDI4LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXs4fVtBLVowLTldezE2fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzMtNycsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMicsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICcxMi0yOCcsXG4gICAgfSxcbiAgICBDWjoge1xuICAgICAgICBjaGFyczogMjQsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezIwfSQnLFxuICAgICAgICBiYmFuX3ZhbGlkYXRpb25fZnVuYzogY2hlY2tDemVjaEFuZFNsb3Zha0JCQU4sXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0zJyxcbiAgICB9LFxuICAgIERFOiB7XG4gICAgICAgIGNoYXJzOiAyMixcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTh9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC03JyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzEzLTIyJyxcbiAgICB9LFxuICAgIERKOiB7XG4gICAgICAgIGNoYXJzOiAyNyxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MjN9JCcsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzUtOScsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtNCcsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICcxNC0yNycsXG4gICAgfSxcbiAgICBESzoge1xuICAgICAgICBjaGFyczogMTgsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezE0fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc0LTE4JyxcbiAgICB9LFxuICAgIERNOiB7fSxcbiAgICBETzoge1xuICAgICAgICBjaGFyczogMjgsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVpdezR9WzAtOV17MjB9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0zJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzgtMjgnLFxuICAgIH0sXG4gICAgRFo6IHtcbiAgICAgICAgY2hhcnM6IDI2LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsyMn0kJyxcbiAgICB9LFxuICAgIEVDOiB7fSxcbiAgICBFRToge1xuICAgICAgICBjaGFyczogMjAsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezE2fSQnLFxuICAgICAgICBiYmFuX3ZhbGlkYXRpb25fZnVuYzogY2hlY2tFc3RvbmlhbkJCQU4sXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0xJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzgtMjAnLFxuICAgIH0sXG4gICAgRUc6IHtcbiAgICAgICAgY2hhcnM6IDI5LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsyNX0nLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzQtNycsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICcxNy0yOScsXG4gICAgfSxcbiAgICBFSDoge30sXG4gICAgRVI6IHt9LFxuICAgIEVTOiB7XG4gICAgICAgIGNoYXJzOiAyNCxcbiAgICAgICAgYmJhbl92YWxpZGF0aW9uX2Z1bmM6IGNoZWNrU3BhaW5CQkFOLFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsyMH0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBTRVBBOiB0cnVlLFxuICAgICAgICBicmFuY2hfaW5kZW50aWZpZXI6ICc0LTcnLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTMnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnMTQtMjQnLFxuICAgIH0sXG4gICAgRVQ6IHt9LFxuICAgIEZJOiB7XG4gICAgICAgIGNoYXJzOiAxOCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTR9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0yJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzAtMCcsXG4gICAgfSxcbiAgICBGSjoge30sXG4gICAgRks6IHtcbiAgICAgICAgY2hhcnM6IDE4LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bQS1aXXsyfVswLTldezEyfSQnLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTEnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnNi0xOCcsXG4gICAgfSxcbiAgICBGTToge30sXG4gICAgRk86IHtcbiAgICAgICAgY2hhcnM6IDE4LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxNH0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTMnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnNC0xOCcsXG4gICAgfSxcbiAgICBGUjoge1xuICAgICAgICBjaGFyczogMjcsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCcsXG4gICAgICAgIGJiYW5fdmFsaWRhdGlvbl9mdW5jOiBjaGVja0ZyZW5jaEJCQU4sXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC00JyxcbiAgICAgICAgYnJhbmNoX2luZGVudGlmaWVyOiAnNS05JyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzE0LTI0JyxcbiAgICB9LFxuICAgIEdBOiB7XG4gICAgICAgIGNoYXJzOiAyNyxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MjN9JCcsXG4gICAgfSxcbiAgICBHQjoge1xuICAgICAgICBjaGFyczogMjIsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVpdezR9WzAtOV17MTR9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYnJhbmNoX2luZGVudGlmaWVyOiAnNC05JyxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0zJyxcbiAgICB9LFxuICAgIEdEOiB7fSxcbiAgICBHRToge1xuICAgICAgICBjaGFyczogMjIsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVowLTldezJ9WzAtOV17MTZ9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0xJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzYtMjInLFxuICAgIH0sXG4gICAgR0Y6IHtcbiAgICAgICAgY2hhcnM6IDI3LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgfSxcbiAgICBHRzoge30sXG4gICAgR0g6IHt9LFxuICAgIEdJOiB7XG4gICAgICAgIGNoYXJzOiAyMyxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17NH1bQS1aMC05XXsxNX0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBTRVBBOiB0cnVlLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTMnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnOC0yMycsXG4gICAgfSxcbiAgICBHTDoge1xuICAgICAgICBjaGFyczogMTgsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezE0fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc0LTE4JyxcbiAgICB9LFxuICAgIEdNOiB7fSxcbiAgICBHTjoge30sXG4gICAgR1A6IHtcbiAgICAgICAgY2hhcnM6IDI3LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgfSxcbiAgICBHUToge1xuICAgICAgICBjaGFyczogMjcsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezIzfSQnLFxuICAgIH0sXG4gICAgR1I6IHtcbiAgICAgICAgY2hhcnM6IDI3LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXs3fVtBLVowLTldezE2fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzMtNicsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMicsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc3LTI3JyxcbiAgICB9LFxuICAgIEdTOiB7fSxcbiAgICBHVDoge1xuICAgICAgICBjaGFyczogMjgsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVowLTldezI0fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc4LTI4JyxcbiAgICB9LFxuICAgIEdVOiB7fSxcbiAgICBHVzoge1xuICAgICAgICBjaGFyczogMjUsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVpdezJ9WzAtOV17MTl9JCcsXG4gICAgfSxcbiAgICBHWToge30sXG4gICAgSEs6IHt9LFxuICAgIEhNOiB7fSxcbiAgICBITjoge1xuICAgICAgICBjaGFyczogMjgsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVpdezR9WzAtOV17MjB9JCcsXG4gICAgfSxcbiAgICBIUjoge1xuICAgICAgICBjaGFyczogMjEsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezE3fSQnLFxuICAgICAgICBiYmFuX3ZhbGlkYXRpb25fZnVuYzogY2hlY2tDcm9hdGlhbkJCQU4sXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC02JyxcbiAgICB9LFxuICAgIEhUOiB7fSxcbiAgICBIVToge1xuICAgICAgICBjaGFyczogMjgsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezI0fSQnLFxuICAgICAgICBiYmFuX3ZhbGlkYXRpb25fZnVuYzogY2hlY2tIdW5nYXJpYW5CQkFOLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzMtNicsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMicsXG4gICAgfSxcbiAgICBJRDoge30sXG4gICAgSUU6IHtcbiAgICAgICAgY2hhcnM6IDIyLFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bQS1aMC05XXs0fVswLTldezE0fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzQtOScsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgfSxcbiAgICBJTDoge1xuICAgICAgICBjaGFyczogMjMsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezE5fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzMtNScsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMicsXG4gICAgfSxcbiAgICBJTToge30sXG4gICAgSU46IHt9LFxuICAgIElPOiB7fSxcbiAgICBJUToge1xuICAgICAgICBjaGFyczogMjMsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVpdezR9WzAtOV17MTV9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYnJhbmNoX2luZGVudGlmaWVyOiAnNC02JyxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0zJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzExLTIzJyxcbiAgICB9LFxuICAgIElSOiB7XG4gICAgICAgIGNoYXJzOiAyNixcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MjJ9JCcsXG4gICAgfSxcbiAgICBJUzoge1xuICAgICAgICBjaGFyczogMjYsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezIyfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzItMycsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMScsXG4gICAgfSxcbiAgICBJVDoge1xuICAgICAgICBjaGFyczogMjcsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVpdezF9WzAtOV17MTB9W0EtWjAtOV17MTJ9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYnJhbmNoX2luZGVudGlmaWVyOiAnNi0xMCcsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzEtNScsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc0LTI3JyxcbiAgICB9LFxuICAgIEpFOiB7fSxcbiAgICBKTToge30sXG4gICAgSk86IHtcbiAgICAgICAgY2hhcnM6IDMwLFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTh9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYnJhbmNoX2luZGVudGlmaWVyOiAnNC03JyxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnNC03JyxcbiAgICB9LFxuICAgIEpQOiB7fSxcbiAgICBLRToge30sXG4gICAgS0c6IHt9LFxuICAgIEtIOiB7fSxcbiAgICBLSToge30sXG4gICAgS006IHtcbiAgICAgICAgY2hhcnM6IDI3LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsyM30kJyxcbiAgICB9LFxuICAgIEtOOiB7fSxcbiAgICBLUDoge30sXG4gICAgS1I6IHt9LFxuICAgIEtXOiB7XG4gICAgICAgIGNoYXJzOiAzMCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17NH1bQS1aMC05XXsyMn0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTMnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnMjAtMzAnLFxuICAgIH0sXG4gICAgS1k6IHt9LFxuICAgIEtaOiB7XG4gICAgICAgIGNoYXJzOiAyMCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17M31bQS1aMC05XXsxM30kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTInLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnMC0yMCcsXG4gICAgfSxcbiAgICBMQToge30sXG4gICAgTEI6IHtcbiAgICAgICAgY2hhcnM6IDI4LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXs0fVtBLVowLTldezIwfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICcxNC0yOCcsXG4gICAgfSxcbiAgICBMQzoge1xuICAgICAgICBjaGFyczogMzIsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVpdezR9W0EtWjAtOV17MjR9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0zJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzgtMzInLFxuICAgIH0sXG4gICAgTEk6IHtcbiAgICAgICAgY2hhcnM6IDIxLFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXs1fVtBLVowLTldezEyfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtNCcsXG4gICAgfSxcbiAgICBMSzoge30sXG4gICAgTFI6IHt9LFxuICAgIExTOiB7fSxcbiAgICBMVDogeyBjaGFyczogMjAsIGJiYW5fcmVnZXhwOiAnXlswLTldezE2fSQnLCBJQkFOUmVnaXN0cnk6IHRydWUsIFNFUEE6IHRydWUsIGJhbmtfaWRlbnRpZmllcjogJzAtNCcgfSxcbiAgICBMVToge1xuICAgICAgICBjaGFyczogMjAsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezN9W0EtWjAtOV17MTN9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0yJyxcbiAgICB9LFxuICAgIExWOiB7XG4gICAgICAgIGNoYXJzOiAyMSxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17NH1bQS1aMC05XXsxM30kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBTRVBBOiB0cnVlLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTMnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnMC0yMScsXG4gICAgfSxcbiAgICBMWToge1xuICAgICAgICBjaGFyczogMjUsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezIxfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzMtNScsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMicsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICcxMC0yNScsXG4gICAgfSxcbiAgICBNQToge1xuICAgICAgICBjaGFyczogMjgsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezI0fSQnLFxuICAgIH0sXG4gICAgTUM6IHtcbiAgICAgICAgY2hhcnM6IDI3LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQnLFxuICAgICAgICBiYmFuX3ZhbGlkYXRpb25fZnVuYzogY2hlY2tGcmVuY2hCQkFOLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzUtOScsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtNCcsXG4gICAgfSxcbiAgICBNRDoge1xuICAgICAgICBjaGFyczogMjQsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVowLTldezJ9W0EtWjAtOV17MTh9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0xJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzYtMjQnLFxuICAgIH0sXG4gICAgTUU6IHtcbiAgICAgICAgY2hhcnM6IDIyLFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxOH0kJyxcbiAgICAgICAgYmJhbl92YWxpZGF0aW9uX2Z1bmM6IGNoZWNrTW9kOTcxMEJCQU4sXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0yJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzQtMjInLFxuICAgIH0sXG4gICAgTUY6IHtcbiAgICAgICAgY2hhcnM6IDI3LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgfSxcbiAgICBNRzoge1xuICAgICAgICBjaGFyczogMjcsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezIzfSQnLFxuICAgIH0sXG4gICAgTUg6IHt9LFxuICAgIE1LOiB7XG4gICAgICAgIGNoYXJzOiAxOSxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17M31bQS1aMC05XXsxMH1bMC05XXsyfSQnLFxuICAgICAgICBiYmFuX3ZhbGlkYXRpb25fZnVuYzogY2hlY2tNb2Q5NzEwQkJBTixcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTInLFxuICAgIH0sXG4gICAgTUw6IHtcbiAgICAgICAgY2hhcnM6IDI4LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bQS1aMC05XXsyfVswLTldezIyfSQnLFxuICAgIH0sXG4gICAgTU06IHt9LFxuICAgIE1OOiB7XG4gICAgICAgIGNoYXJzOiAyMCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTZ9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0zJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzgtMjAnLFxuICAgIH0sXG4gICAgTU86IHt9LFxuICAgIE1QOiB7fSxcbiAgICBNUToge1xuICAgICAgICBjaGFyczogMjcsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICB9LFxuICAgIE1SOiB7XG4gICAgICAgIGNoYXJzOiAyNyxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MjN9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYnJhbmNoX2luZGVudGlmaWVyOiAnNS05JyxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC00JyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzQtMjcnLFxuICAgIH0sXG4gICAgTVM6IHt9LFxuICAgIE1UOiB7XG4gICAgICAgIGNoYXJzOiAzMSxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17NH1bMC05XXs1fVtBLVowLTldezE4fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzQtOCcsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICcxNS0zMScsXG4gICAgfSxcbiAgICBNVToge1xuICAgICAgICBjaGFyczogMzAsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVpdezR9WzAtOV17MTl9W0EtWl17M30kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBicmFuY2hfaW5kZW50aWZpZXI6ICc2LTcnLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTUnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnMC0zMCcsXG4gICAgfSxcbiAgICBNVjoge30sXG4gICAgTVc6IHt9LFxuICAgIE1YOiB7fSxcbiAgICBNWToge30sXG4gICAgTVo6IHtcbiAgICAgICAgY2hhcnM6IDI1LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsyMX0kJyxcbiAgICB9LFxuICAgIE5BOiB7fSxcbiAgICBOQzoge1xuICAgICAgICBjaGFyczogMjcsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICB9LFxuICAgIE5FOiB7XG4gICAgICAgIGNoYXJzOiAyOCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17Mn1bMC05XXsyMn0kJyxcbiAgICB9LFxuICAgIE5GOiB7fSxcbiAgICBORzoge30sXG4gICAgTkk6IHtcbiAgICAgICAgY2hhcnM6IDI4LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bQS1aXXs0fVswLTldezIwfSQnLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTMnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc4LTI4JyxcbiAgICB9LFxuICAgIE5MOiB7XG4gICAgICAgIGNoYXJzOiAxOCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17NH1bMC05XXsxMH0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBTRVBBOiB0cnVlLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTMnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnOC0xOCcsXG4gICAgfSxcbiAgICBOTzoge1xuICAgICAgICBjaGFyczogMTUsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezExfSQnLFxuICAgICAgICBiYmFuX3ZhbGlkYXRpb25fZnVuYzogY2hlY2tOb3J3YXlCQkFOLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc0LTE1JyxcbiAgICB9LFxuICAgIE5QOiB7fSxcbiAgICBOUjoge30sXG4gICAgTlU6IHt9LFxuICAgIE5aOiB7fSxcbiAgICBPTToge1xuICAgICAgICBjaGFyczogMjMsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezN9W0EtWjAtOV17MTZ9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogZmFsc2UsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMicsXG4gICAgfSxcbiAgICBQQToge30sXG4gICAgUEU6IHt9LFxuICAgIFBGOiB7XG4gICAgICAgIGNoYXJzOiAyNyxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgIH0sXG4gICAgUEc6IHt9LFxuICAgIFBIOiB7fSxcbiAgICBQSzoge1xuICAgICAgICBjaGFyczogMjQsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVowLTldezR9WzAtOV17MTZ9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0zJyxcbiAgICB9LFxuICAgIFBMOiB7XG4gICAgICAgIGNoYXJzOiAyOCxcbiAgICAgICAgYmJhbl92YWxpZGF0aW9uX2Z1bmM6IGNoZWNrUG9sYW5kQkJBTixcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MjR9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYnJhbmNoX2luZGVudGlmaWVyOiAnMC03JyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzItMjgnLFxuICAgIH0sXG4gICAgUE06IHtcbiAgICAgICAgY2hhcnM6IDI3LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgfSxcbiAgICBQTjoge30sXG4gICAgUFI6IHt9LFxuICAgIFBTOiB7XG4gICAgICAgIGNoYXJzOiAyOSxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWjAtOV17NH1bMC05XXsyMX0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTMnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnMTctMjknLFxuICAgIH0sXG4gICAgUFQ6IHtcbiAgICAgICAgY2hhcnM6IDI1LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsyMX0kJyxcbiAgICAgICAgYmJhbl92YWxpZGF0aW9uX2Z1bmM6IGNoZWNrTW9kOTcxMEJCQU4sXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0zJyxcbiAgICB9LFxuICAgIFBXOiB7fSxcbiAgICBQWToge30sXG4gICAgUUE6IHtcbiAgICAgICAgY2hhcnM6IDI5LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bQS1aXXs0fVtBLVowLTldezIxfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc4LTI5JyxcbiAgICB9LFxuICAgIFJFOiB7XG4gICAgICAgIGNoYXJzOiAyNyxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgIH0sXG4gICAgUk86IHtcbiAgICAgICAgY2hhcnM6IDI0LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bQS1aXXs0fVtBLVowLTldezE2fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMycsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICcwLTI0JyxcbiAgICB9LFxuICAgIFJTOiB7XG4gICAgICAgIGNoYXJzOiAyMixcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTh9JCcsXG4gICAgICAgIGJiYW5fdmFsaWRhdGlvbl9mdW5jOiBjaGVja01vZDk3MTBCQkFOLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMicsXG4gICAgfSxcbiAgICBSVToge1xuICAgICAgICBjaGFyczogMzMsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezE0fVtBLVowLTldezE1fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzktMTMnLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTgnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnMTMtMzMnLFxuICAgIH0sXG4gICAgUlc6IHt9LFxuICAgIFNBOiB7XG4gICAgICAgIGNoYXJzOiAyNCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17Mn1bQS1aMC05XXsxOH0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBiYW5rX2lkZW50aWZpZXI6ICcwLTEnLFxuICAgICAgICBhY2NvdW50X2luZGVudGlmaWVyOiAnMTItMjQnLFxuICAgIH0sXG4gICAgU0I6IHt9LFxuICAgIFNDOiB7XG4gICAgICAgIGNoYXJzOiAzMSxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17NH1bMC05XXsyMH1bQS1aXXszfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzYtNycsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtNScsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICcxMi0yOCcsXG4gICAgfSxcbiAgICBTRDoge1xuICAgICAgICBjaGFyczogMTgsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezE0fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJhbmtfaWRlbnRpZmllcjogJzAtMScsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc2LTE4JyxcbiAgICB9LFxuICAgIFNFOiB7IGNoYXJzOiAyNCwgYmJhbl9yZWdleHA6ICdeWzAtOV17MjB9JCcsIElCQU5SZWdpc3RyeTogdHJ1ZSwgU0VQQTogdHJ1ZSwgYmFua19pZGVudGlmaWVyOiAnMC0yJyB9LFxuICAgIFNHOiB7fSxcbiAgICBTSDoge30sXG4gICAgU0k6IHtcbiAgICAgICAgY2hhcnM6IDE5LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxNX0kJyxcbiAgICAgICAgYmJhbl92YWxpZGF0aW9uX2Z1bmM6IGNoZWNrTW9kOTcxMEJCQU4sXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgU0VQQTogdHJ1ZSxcbiAgICAgICAgYnJhbmNoX2luZGVudGlmaWVyOiAnMi00JyxcbiAgICAgICAgYmFua19pZGVudGlmaWVyOiAnMC0xJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzktMTYnLFxuICAgIH0sXG4gICAgU0o6IHt9LFxuICAgIFNLOiB7XG4gICAgICAgIGNoYXJzOiAyNCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MjB9JCcsXG4gICAgICAgIGJiYW5fdmFsaWRhdGlvbl9mdW5jOiBjaGVja0N6ZWNoQW5kU2xvdmFrQkJBTixcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBTRVBBOiB0cnVlLFxuICAgIH0sXG4gICAgU0w6IHt9LFxuICAgIFNNOiB7XG4gICAgICAgIGNoYXJzOiAyNyxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17MX1bMC05XXsxMH1bQS1aMC05XXsxMn0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBTRVBBOiB0cnVlLFxuICAgICAgICBicmFuY2hfaW5kZW50aWZpZXI6ICc2LTEwJyxcbiAgICB9LFxuICAgIFNOOiB7XG4gICAgICAgIGNoYXJzOiAyOCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeW0EtWl17Mn1bMC05XXsyMn0kJyxcbiAgICB9LFxuICAgIFNPOiB7XG4gICAgICAgIGNoYXJzOiAyMyxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTl9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYnJhbmNoX2luZGVudGlmaWVyOiAnNC02JyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzExLTIzJyxcbiAgICB9LFxuICAgIFNSOiB7fSxcbiAgICBTUzoge30sXG4gICAgU1Q6IHtcbiAgICAgICAgY2hhcnM6IDI1LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsyMX0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgICAgICBicmFuY2hfaW5kZW50aWZpZXI6ICc0LTcnLFxuICAgIH0sXG4gICAgU1Y6IHtcbiAgICAgICAgY2hhcnM6IDI4LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bQS1aXXs0fVswLTldezIwfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc4LTI4JyxcbiAgICB9LFxuICAgIFNYOiB7fSxcbiAgICBTWToge30sXG4gICAgU1o6IHt9LFxuICAgIFRDOiB7fSxcbiAgICBURDoge1xuICAgICAgICBjaGFyczogMjcsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezIzfSQnLFxuICAgIH0sXG4gICAgVEY6IHtcbiAgICAgICAgY2hhcnM6IDI3LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgfSxcbiAgICBURzoge1xuICAgICAgICBjaGFyczogMjgsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXltBLVpdezJ9WzAtOV17MjJ9JCcsXG4gICAgfSxcbiAgICBUSDoge30sXG4gICAgVEo6IHt9LFxuICAgIFRLOiB7fSxcbiAgICBUTDoge1xuICAgICAgICBjaGFyczogMjMsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezE5fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc0LTIzJyxcbiAgICB9LFxuICAgIFRNOiB7fSxcbiAgICBUTjoge1xuICAgICAgICBjaGFyczogMjQsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezIwfSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGJyYW5jaF9pbmRlbnRpZmllcjogJzItNCcsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc0LTI0JyxcbiAgICB9LFxuICAgIFRPOiB7fSxcbiAgICBUUjoge1xuICAgICAgICBjaGFyczogMjYsXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezV9W0EtWjAtOV17MTd9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICB9LFxuICAgIFRUOiB7fSxcbiAgICBUVjoge30sXG4gICAgVFc6IHt9LFxuICAgIFRaOiB7fSxcbiAgICBVQToge1xuICAgICAgICBjaGFyczogMjksXG4gICAgICAgIGJiYW5fcmVnZXhwOiAnXlswLTldezZ9W0EtWjAtOV17MTl9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzE1LTI5JyxcbiAgICB9LFxuICAgIFVHOiB7fSxcbiAgICBVTToge30sXG4gICAgVVM6IHt9LFxuICAgIFVZOiB7fSxcbiAgICBVWjoge30sXG4gICAgVkE6IHtcbiAgICAgICAgY2hhcnM6IDIyLFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bMC05XXsxOH0nLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIFNFUEE6IHRydWUsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc3LTIyJyxcbiAgICB9LFxuICAgIFZDOiB7fSxcbiAgICBWRToge30sXG4gICAgVkc6IHtcbiAgICAgICAgY2hhcnM6IDI0LFxuICAgICAgICBiYmFuX3JlZ2V4cDogJ15bQS1aMC05XXs0fVswLTldezE2fSQnLFxuICAgICAgICBJQkFOUmVnaXN0cnk6IHRydWUsXG4gICAgICAgIGFjY291bnRfaW5kZW50aWZpZXI6ICc4LTI0JyxcbiAgICB9LFxuICAgIFZJOiB7fSxcbiAgICBWTjoge30sXG4gICAgVlU6IHt9LFxuICAgIFdGOiB7XG4gICAgICAgIGNoYXJzOiAyNyxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgIH0sXG4gICAgV1M6IHt9LFxuICAgIFhLOiB7XG4gICAgICAgIGNoYXJzOiAyMCxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTZ9JCcsXG4gICAgICAgIElCQU5SZWdpc3RyeTogdHJ1ZSxcbiAgICAgICAgYnJhbmNoX2luZGVudGlmaWVyOiAnMi0zJyxcbiAgICAgICAgYWNjb3VudF9pbmRlbnRpZmllcjogJzQtMjAnLFxuICAgIH0sXG4gICAgWUU6IHt9LFxuICAgIFlUOiB7XG4gICAgICAgIGNoYXJzOiAyNyxcbiAgICAgICAgYmJhbl9yZWdleHA6ICdeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kJyxcbiAgICAgICAgSUJBTlJlZ2lzdHJ5OiB0cnVlLFxuICAgIH0sXG4gICAgWkE6IHt9LFxuICAgIFpNOiB7fSxcbiAgICBaVzoge30sXG59O1xuIiwgImltcG9ydCB7IGh0bWwsIGNzcyB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG4gIDxkZWVzLWRlbW93cmFwcGVyPlxuICAgIDxzdHlsZT5cbiAgICAgICR7Y3NzYFxuICAgICAgICAuZGVtby1jb250YWluZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnBheW1lbnQtZ3JvdXAge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG4gICAgICBgfVxuICAgIDwvc3R5bGU+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnQmFzaWMgSUJBTiBJbnB1dCd9IC5zdWJ0aXRsZT0keydJbnRlcm5hdGlvbmFsIEJhbmsgQWNjb3VudCBOdW1iZXIgd2l0aCBhdXRvbWF0aWMgZm9ybWF0dGluZyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIFxuICAgICAgICAgIC5sYWJlbD0keydCYW5rIEFjY291bnQgSUJBTid9IFxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydFbnRlciB5b3VyIEludGVybmF0aW9uYWwgQmFuayBBY2NvdW50IE51bWJlcid9XG4gICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLWlucHV0LWliYW4gXG4gICAgICAgICAgLmxhYmVsPSR7J1ZlcmlmaWVkIElCQU4nfSBcbiAgICAgICAgICAuZGVzY3JpcHRpb249JHsnVGhpcyBJQkFOIGhhcyBiZWVuIHZlcmlmaWVkJ31cbiAgICAgICAgICAudmFsdWU9JHsnREU4OTM3MDQwMDQ0MDUzMjAxMzAwMCd9XG4gICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J1BheW1lbnQgSW5mb3JtYXRpb24nfSAuc3VidGl0bGU9JHsnSUJBTiBpbnB1dCB3aXRoIGhvcml6b250YWwgbGF5b3V0IGZvciBwYXltZW50IGZvcm1zJ30+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LWdyb3VwXCI+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBcbiAgICAgICAgICAgIC5sYWJlbD0keydBY2NvdW50IEhvbGRlcid9IFxuICAgICAgICAgICAgLmxheW91dE1vZGU9JHsnaG9yaXpvbnRhbCd9XG4gICAgICAgICAgICAudmFsdWU9JHsnSm9obiBEb2UnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIFxuICAgICAgICAgICAgLmxhYmVsPSR7J0lCQU4nfSBcbiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7J2hvcml6b250YWwnfVxuICAgICAgICAgICAgLnZhbHVlPSR7J0dCODJXRVNUMTIzNDU2OTg3NjU0MzInfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydWYWxpZGF0aW9uICYgU3RhdGVzJ30gLnN1YnRpdGxlPSR7J1JlcXVpcmVkIGZpZWxkcyBhbmQgZGlzYWJsZWQgc3RhdGVzJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LWliYW4gXG4gICAgICAgICAgLmxhYmVsPSR7J1BheW1lbnQgQWNjb3VudCd9IFxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydSZXF1aXJlZCBmb3IgcHJvY2Vzc2luZyBwYXltZW50cyd9XG4gICAgICAgICAgLnJlcXVpcmVkPSR7dHJ1ZX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiBcbiAgICAgICAgICAubGFiZWw9JHsnTG9ja2VkIElCQU4nfSBcbiAgICAgICAgICAuZGVzY3JpcHRpb249JHsnVGhpcyBJQkFOIGNhbm5vdCBiZSBjaGFuZ2VkJ31cbiAgICAgICAgICAudmFsdWU9JHsnRlIxNDIwMDQxMDEwMDUwNTAwMDEzTTAyNjA2J31cbiAgICAgICAgICAuZGlzYWJsZWQ9JHt0cnVlfVxuICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydCYW5rIFRyYW5zZmVyIEZvcm0nfSAuc3VidGl0bGU9JHsnQ29tcGxldGUgZm9ybSBleGFtcGxlIHdpdGggSUJBTiB2YWxpZGF0aW9uJ30+XG4gICAgICAgIDxkZWVzLWZvcm0+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsnUmVjaXBpZW50IE5hbWUnfSAucmVxdWlyZWQ9JHt0cnVlfT48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIC5sYWJlbD0keydSZWNpcGllbnQgSUJBTid9IC5yZXF1aXJlZD0ke3RydWV9PjwvZGVlcy1pbnB1dC1pYmFuPlxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7J1RyYW5zZmVyIFJlZmVyZW5jZSd9IC5kZXNjcmlwdGlvbj0keydPcHRpb25hbCByZWZlcmVuY2UgZm9yIHRoZSB0cmFuc2Zlcid9PjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7J0Ftb3VudCd9IC5pbnB1dFR5cGU9JHsnbnVtYmVyJ30gLnJlcXVpcmVkPSR7dHJ1ZX0+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgIDwvZGVlcy1mb3JtPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGl2PlxuICA8L2RlZXMtZGVtb3dyYXBwZXI+XG5gOyIsICJpbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBzdGF0ZSxcbiAgaHRtbCxcbiAgcHJvcGVydHksXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAqIGFzIGRvbXRvb2xzIGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMnO1xuaW1wb3J0IHsgRGVlc0lucHV0QmFzZSB9IGZyb20gJy4uL2RlZXMtaW5wdXQtYmFzZS9kZWVzLWlucHV0LWJhc2UuanMnO1xuaW1wb3J0ICogYXMgaWJhbnRvb2xzIGZyb20gJ2liYW50b29scyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1pbnB1dC1pYmFuLmRlbW8uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWlucHV0LWliYW4nKVxuZXhwb3J0IGNsYXNzIERlZXNJbnB1dEliYW4gZXh0ZW5kcyBEZWVzSW5wdXRCYXNlPERlZXNJbnB1dEliYW4+IHtcbiAgLy8gU1RBVElDXG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdJbnB1dCc7XG5cbiAgLy8gSU5TVEFOQ0VcbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgZW50ZXJlZFN0cmluZzogc3RyaW5nID0gJyc7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgZW50ZXJlZEliYW5Jc1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0pXG4gIGFjY2Vzc29yIHZhbHVlID0gJyc7XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIC4uLkRlZXNJbnB1dEJhc2UuYmFzZVN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIC8qIElCQU4gaW5wdXQgc3BlY2lmaWMgc3R5bGVzIGNhbiBnbyBoZXJlICovXG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWwgfHwgJ0lCQU4nfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+XG4gICAgICAgIDxkZWVzLWlucHV0LXRleHRcbiAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfVxuICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9XG4gICAgICAgICAgLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH1cbiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsnREU4OSAzNzA0IDAwNDQgMDUzMiAwMTMwIDAwJ31cbiAgICAgICAgICBAaW5wdXQ9JHsoZXZlbnRBcmc6IElucHV0RXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVJYmFuKGV2ZW50QXJnKTtcbiAgICAgICAgICB9fVxuICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGZpcnN0VXBkYXRlZChfY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+KSB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgY29uc3QgZGVlc0lucHV0VGV4dCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHQnKSBhcyBhbnk7XG4gICAgaWYgKGRlZXNJbnB1dFRleHQgJiYgZGVlc0lucHV0VGV4dC5jaGFuZ2VTdWJqZWN0KSB7XG4gICAgICBkZWVzSW5wdXRUZXh0LmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGVJYmFuKGV2ZW50QXJnOiBJbnB1dEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50ID0gZXZlbnRBcmcudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IGVudGVyZWRTdHJpbmcgPSBpbnB1dEVsZW1lbnQ/LnZhbHVlO1xuICAgIGVudGVyZWRTdHJpbmcgPSBlbnRlcmVkU3RyaW5nIHx8ICcnO1xuICAgIGlmICh0aGlzLmVudGVyZWRTdHJpbmcgIT09IGVudGVyZWRTdHJpbmcpIHtcbiAgICAgIHRoaXMuZW50ZXJlZFN0cmluZyA9IGliYW50b29scy5mcmllbmRseUZvcm1hdElCQU4oZW50ZXJlZFN0cmluZykgfHwgJyc7XG4gICAgICBpZiAoaW5wdXRFbGVtZW50KSB7XG4gICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuZW50ZXJlZFN0cmluZztcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZW50ZXJlZFN0cmluZztcbiAgICAgICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZW50ZXJlZEliYW5Jc1ZhbGlkID0gaWJhbnRvb2xzLmlzVmFsaWRJQkFOKHRoaXMuZW50ZXJlZFN0cmluZy5yZXBsYWNlKC8gL2csICcnKSk7XG4gICAgY29uc3QgZGVlc0lucHV0VGV4dCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHQnKTtcbiAgICBkZWVzSW5wdXRUZXh0LnZhbGlkYXRpb25UZXh0ID0gYElCQU4gaXMgdmFsaWQ6ICR7dGhpcy5lbnRlcmVkSWJhbklzVmFsaWR9YDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5lbnRlcmVkU3RyaW5nID0gaWJhbnRvb2xzLmZyaWVuZGx5Rm9ybWF0SUJBTih2YWx1ZSkgfHwgJyc7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBodG1sLCBjc3MsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiBodG1sYFxuICA8ZGVlcy1kZW1vd3JhcHBlcj5cbiAgICA8c3R5bGU+XG4gICAgICAke2Nzc2BcbiAgICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZ2FwOiAzMnB4O1xuICAgICAgICAgIHBhZGRpbmc6IDQ4cHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmOGY5ZmEnLCAnIzBhMGEwYScpfTtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnNlY3Rpb24ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMxODE4MWInKX07XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuc2VjdGlvbi10aXRsZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA5MDkwYicsICcjZmFmYWZhJyl9O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjYTFhMWFhJyl9O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5zZXR0aW5ncy1ncmlkIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIC5zZXR0aW5ncy1ncmlkIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYH1cbiAgICA8L3N0eWxlPlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5NdWx0aS1PcHRpb24gVG9nZ2xlPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWRlc2NyaXB0aW9uXCI+U2VsZWN0IGZyb20gbXVsdGlwbGUgb3B0aW9ucyB3aXRoIGEgc21vb3RoIHNsaWRpbmcgaW5kaWNhdG9yIGFuaW1hdGlvbi48L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlXG4gICAgICAgICAgLmxhYmVsPSR7J0Rpc3BsYXkgTW9kZSd9XG4gICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J0Nob29zZSBob3cgY29udGVudCBpcyBkaXNwbGF5ZWQnfVxuICAgICAgICAgIC5vcHRpb25zPSR7WydMaXN0IFZpZXcnLCAnR3JpZCBWaWV3JywgJ0NvbXBhY3QnXX1cbiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsnR3JpZCBWaWV3J31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT5cbiAgICAgICAgXG4gICAgICAgIDxicj48YnI+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZVxuICAgICAgICAgIC5sYWJlbD0keydULVNoaXJ0IFNpemUnfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydTZWxlY3QgeW91ciBwcmVmZXJyZWQgc2l6ZSd9XG4gICAgICAgICAgLm9wdGlvbnM9JHtbJ1hTJywgJ1MnLCAnTScsICdMJywgJ1hMJywgJ1hYTCddfVxuICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keydNJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkJvb2xlYW4gVG9nZ2xlPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWRlc2NyaXB0aW9uXCI+U2ltcGxlIG9uL29mZiBzd2l0Y2hlcyB3aXRoIGN1c3RvbWl6YWJsZSBsYWJlbHMgZm9yIGNsZWFyZXIgY29udGV4dC48L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlXG4gICAgICAgICAgLmxhYmVsPSR7J05vdGlmaWNhdGlvbnMnfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydFbmFibGUgb3IgZGlzYWJsZSBwdXNoIG5vdGlmaWNhdGlvbnMnfVxuICAgICAgICAgIC50eXBlPSR7J2Jvb2xlYW4nfVxuICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyd0cnVlJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT5cbiAgICAgICAgXG4gICAgICAgIDxicj48YnI+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZVxuICAgICAgICAgIC5sYWJlbD0keydUaGVtZSBNb2RlJ31cbiAgICAgICAgICAuZGVzY3JpcHRpb249JHsnU3dpdGNoIGJldHdlZW4gbGlnaHQgYW5kIGRhcmsgdGhlbWUnfVxuICAgICAgICAgIC50eXBlPSR7J2Jvb2xlYW4nfVxuICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsnRGFyayd9XG4gICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsnTGlnaHQnfVxuICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keydEYXJrJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlNldHRpbmdzIEdyaWQ8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tZGVzY3JpcHRpb25cIj5Db25maWd1cmF0aW9uIG9wdGlvbnMgYXJyYW5nZWQgaW4gYSByZXNwb25zaXZlIGdyaWQgbGF5b3V0LjwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLWdyaWRcIj5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZVxuICAgICAgICAgICAgLmxhYmVsPSR7J0F1dG8tU2F2ZSd9XG4gICAgICAgICAgICAudHlwZT0keydib29sZWFuJ31cbiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsnRW5hYmxlZCd9XG4gICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keydEaXNhYmxlZCd9XG4gICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsnRW5hYmxlZCd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZVxuICAgICAgICAgICAgLmxhYmVsPSR7J0xhbmd1YWdlJ31cbiAgICAgICAgICAgIC5vcHRpb25zPSR7WydFbmdsaXNoJywgJ0dlcm1hbicsICdGcmVuY2gnLCAnU3BhbmlzaCddfVxuICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7J0VuZ2xpc2gnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGVcbiAgICAgICAgICAgIC5sYWJlbD0keydRdWFsaXR5J31cbiAgICAgICAgICAgIC5vcHRpb25zPSR7WydMb3cnLCAnTWVkaXVtJywgJ0hpZ2gnLCAnVWx0cmEnXX1cbiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keydIaWdoJ31cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlXG4gICAgICAgICAgICAubGFiZWw9JHsnUHJpdmFjeSd9XG4gICAgICAgICAgICAudHlwZT0keydib29sZWFuJ31cbiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsnUHJpdmF0ZSd9XG4gICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keydQdWJsaWMnfVxuICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7J1ByaXZhdGUnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+U3RhdGVzICYgRm9ybSBJbnRlZ3JhdGlvbjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1kZXNjcmlwdGlvblwiPkV4YW1wbGVzIG9mIGRpc2FibGVkIHN0YXRlcyBhbmQgaW50ZWdyYXRpb24gd2l0aGluIGZvcm1zLjwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGVcbiAgICAgICAgICAubGFiZWw9JHsnQWNjb3VudCBUeXBlJ31cbiAgICAgICAgICAuZGVzY3JpcHRpb249JHsnVGhpcyBzZXR0aW5nIGlzIGxvY2tlZCd9XG4gICAgICAgICAgLm9wdGlvbnM9JHtbJ0ZyZWUnLCAnUHJvJywgJ0VudGVycHJpc2UnXX1cbiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsnRW50ZXJwcmlzZSd9XG4gICAgICAgICAgLmRpc2FibGVkPSR7dHJ1ZX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT5cbiAgICAgICAgXG4gICAgICAgIDxicj48YnI+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1mb3JtPlxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7J1Byb2plY3QgTmFtZSd9IC5yZXF1aXJlZD0ke3RydWV9PjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlXG4gICAgICAgICAgICAubGFiZWw9JHsnVmlzaWJpbGl0eSd9XG4gICAgICAgICAgICAudHlwZT0keydib29sZWFuJ31cbiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsnUHVibGljJ31cbiAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7J1ByaXZhdGUnfVxuICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7J1ByaXZhdGUnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGVcbiAgICAgICAgICAgIC5sYWJlbD0keydMaWNlbnNlJ31cbiAgICAgICAgICAgIC5vcHRpb25zPSR7WydNSVQnLCAnQXBhY2hlIDIuMCcsICdHUEwgdjMnLCAnUHJvcHJpZXRhcnknXX1cbiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keydNSVQnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+XG4gICAgICAgIDwvZGVlcy1mb3JtPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGVlcy1kZW1vd3JhcHBlcj5cbmA7IiwgImltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIGh0bWwsXG4gIHByb3BlcnR5LFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBEZWVzSW5wdXRCYXNlIH0gZnJvbSAnLi4vZGVlcy1pbnB1dC1iYXNlL2RlZXMtaW5wdXQtYmFzZS5qcyc7XG5cbmltcG9ydCAqIGFzIGNvbG9ycyBmcm9tICcuLi8uLi8wMGNvbG9ycy5qcydcblxuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtaW5wdXQtbXVsdGl0b2dnbGUuZGVtby5qcyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZSc6IERlZXNJbnB1dE11bHRpdG9nZ2xlO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWlucHV0LW11bHRpdG9nZ2xlJylcbmV4cG9ydCBjbGFzcyBEZWVzSW5wdXRNdWx0aXRvZ2dsZSBleHRlbmRzIERlZXNJbnB1dEJhc2U8RGVlc0lucHV0TXVsdGl0b2dnbGU+IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ0lucHV0JztcblxuXG4gIEBwcm9wZXJ0eSgpXG4gIGFjY2Vzc29yIHR5cGU6ICdib29sZWFuJyB8ICdtdWx0aScgfCAnc2luZ2xlJyA9ICdtdWx0aSc7XG5cbiAgQHByb3BlcnR5KClcbiAgYWNjZXNzb3IgYm9vbGVhblRydWVOYW1lOiBzdHJpbmcgPSAndHJ1ZSc7XG5cbiAgQHByb3BlcnR5KClcbiAgYWNjZXNzb3IgYm9vbGVhbkZhbHNlTmFtZTogc3RyaW5nID0gJ2ZhbHNlJztcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IEFycmF5LFxuICB9KVxuICBhY2Nlc3NvciBvcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBwcm9wZXJ0eSgpXG4gIGFjY2Vzc29yIHNlbGVjdGVkT3B0aW9uOiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIGJvb2xWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIEFkZCB2YWx1ZSBwcm9wZXJ0eSBmb3IgZm9ybSBjb21wYXRpYmlsaXR5XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHwgYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA9PT0gdGhpcy5ib29sZWFuVHJ1ZU5hbWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9uO1xuICB9XG5cbiAgcHVibGljIHNldCB2YWx1ZSh2YWw6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnYm9vbGVhbicgJiYgdHlwZW9mIHZhbCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gdmFsID8gdGhpcy5ib29sZWFuVHJ1ZU5hbWUgOiB0aGlzLmJvb2xlYW5GYWxzZU5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB2YWwgYXMgc3RyaW5nO1xuICAgIH1cbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAvLyBEZWZlciBpbmRpY2F0b3IgdXBkYXRlIHRvIG5leHQgZnJhbWUgaWYgY29tcG9uZW50IG5vdCB5ZXQgdXBkYXRlZFxuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0SW5kaWNhdG9yKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgLi4uRGVlc0lucHV0QmFzZS5iYXNlU3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgOmhvc3Qge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5zZWxlY3Rpb25zIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzE4MTgxYicpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgICB9XG5cbiAgICAgIC5vcHRpb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjNzE3MTdhJyl9O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cblxuICAgICAgLm9wdGlvbjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzE4MTgxYicsICcjZTRlNGU3Jyl9O1xuICAgICAgfVxuXG4gICAgICAub3B0aW9uLnNlbGVjdGVkIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyM2MGE1ZmEnKX07XG4gICAgICB9XG5cbiAgICAgIC5pbmRpY2F0b3Ige1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gOHB4KTtcbiAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KScsICdyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSknKX07XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5pbmRpY2F0b3Iubm8tdHJhbnNpdGlvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5zZWxlY3Rpb25zIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSAub3B0aW9uIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5pbmRpY2F0b3Ige1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgxMTMsIDExMywgMTIyLCAwLjE1KScsICdyZ2JhKDExMywgMTEzLCAxMjIsIDAuMTUpJyl9O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluYm94XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGlvbnNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5kaWNhdG9yXCI+PC9kaXY+XG4gICAgICAgICAgJHt0aGlzLm9wdGlvbnMubWFwKFxuICAgICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgaHRtbGA8ZGl2IGNsYXNzPVwib3B0aW9uICR7b3B0aW9uID09PSB0aGlzLnNlbGVjdGVkT3B0aW9uID8gJ3NlbGVjdGVkJzogJyd9XCIgQGNsaWNrPSR7KCkgPT4gdGhpcy5oYW5kbGVTZWxlY3Rpb24ob3B0aW9uKX0+XG4gICAgICAgICAgICAgICAgJHtvcHRpb259XG4gICAgICAgICAgICAgIDwvZGl2PiBgXG4gICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGF3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgLy8gSW5pdGlhbGl6ZSBib29sZWFuIG9wdGlvbnMgZWFybHlcbiAgICBpZiAodGhpcy50eXBlID09PSAnYm9vbGVhbicgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5vcHRpb25zID0gW3RoaXMuYm9vbGVhblRydWVOYW1lIHx8ICd0cnVlJywgdGhpcy5ib29sZWFuRmFsc2VOYW1lIHx8ICdmYWxzZSddO1xuICAgICAgLy8gU2V0IGRlZmF1bHQgc2VsZWN0aW9uIGZvciBib29sZWFuIGlmIG5vdCBzZXRcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZE9wdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gdGhpcy5ib29sZWFuRmFsc2VOYW1lIHx8ICdmYWxzZSc7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFNldCBkZWZhdWx0IHNlbGVjdGlvbiB0byBmaXJzdCBvcHRpb24gaWYgbm90IHNldFxuICAgIGlmICghdGhpcy5zZWxlY3RlZE9wdGlvbiAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMub3B0aW9uc1swXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllczogTWFwPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgdW5rbm93bj4pIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoX2NoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICAvLyBVcGRhdGUgYm9vbGVhbiBvcHRpb25zIGlmIHRoZXkgY2hhbmdlZFxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdib29sZWFuJykge1xuICAgICAgdGhpcy5vcHRpb25zID0gW3RoaXMuYm9vbGVhblRydWVOYW1lIHx8ICd0cnVlJywgdGhpcy5ib29sZWFuRmFsc2VOYW1lIHx8ICdmYWxzZSddO1xuICAgIH1cbiAgICAvLyBXYWl0IGZvciB0aGUgbmV4dCBmcmFtZSB0byBlbnN1cmUgRE9NIGlzIGZ1bGx5IHJlbmRlcmVkXG4gICAgYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtcbiAgICBcbiAgICAvLyBXYWl0IGZvciBmb250cyB0byBsb2FkXG4gICAgaWYgKGRvY3VtZW50LmZvbnRzKSB7XG4gICAgICBhd2FpdCBkb2N1bWVudC5mb250cy5yZWFkeTtcbiAgICB9XG4gICAgXG4gICAgLy8gV2FpdCBvbmUgbW9yZSBmcmFtZSBhZnRlciBmb250cyBhcmUgbG9hZGVkXG4gICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVzb2x2ZSkpO1xuICAgIFxuICAgIC8vIE5vdyBzZXQgdGhlIGluZGljYXRvclxuICAgIHRoaXMuc2V0SW5kaWNhdG9yKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2VsZWN0aW9uKG9wdGlvbkFyZzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb3B0aW9uQXJnO1xuICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xuICAgIHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpO1xuICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7XG4gICAgdGhpcy5zZXRJbmRpY2F0b3IoKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBpbmRpY2F0b3JJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBhc3luYyBzZXRJbmRpY2F0b3IoKSB7XG4gICAgY29uc3QgaW5kaWNhdG9yOiBIVE1MRGl2RWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuaW5kaWNhdG9yJyk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHRoaXMub3B0aW9ucy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRPcHRpb24pO1xuICAgIFxuICAgIC8vIElmIG5vIHZhbGlkIHNlbGVjdGlvbiwgaGlkZSBpbmRpY2F0b3JcbiAgICBpZiAoc2VsZWN0ZWRJbmRleCA9PT0gLTEgfHwgIWluZGljYXRvcikge1xuICAgICAgaWYgKGluZGljYXRvcikge1xuICAgICAgICBpbmRpY2F0b3Iuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgY29uc3Qgb3B0aW9uOiBIVE1MRGl2RWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKFxuICAgICAgYC5vcHRpb246bnRoLWNoaWxkKCR7c2VsZWN0ZWRJbmRleCArIDJ9KWBcbiAgICApO1xuICAgIFxuICAgIGlmIChpbmRpY2F0b3IgJiYgb3B0aW9uKSB7XG4gICAgICAvLyBPbmx5IGRpc2FibGUgdHJhbnNpdGlvbiBmb3IgdGhlIHZlcnkgZmlyc3QgcG9zaXRpb25pbmdcbiAgICAgIGlmICghdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZCkge1xuICAgICAgICBpbmRpY2F0b3IuY2xhc3NMaXN0LmFkZCgnbm8tdHJhbnNpdGlvbicpO1xuICAgICAgICB0aGlzLmluZGljYXRvckluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgbm8tdHJhbnNpdGlvbiBjbGFzcyBhZnRlciBhIGJyaWVmIGRlbGF5XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGluZGljYXRvci5jbGFzc0xpc3QucmVtb3ZlKCduby10cmFuc2l0aW9uJyk7XG4gICAgICAgIH0sIDUwKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaW5kaWNhdG9yLnN0eWxlLndpZHRoID0gYCR7b3B0aW9uLmNsaWVudFdpZHRofXB4YDtcbiAgICAgIGluZGljYXRvci5zdHlsZS5sZWZ0ID0gYCR7b3B0aW9uLm9mZnNldExlZnR9cHhgO1xuICAgICAgaW5kaWNhdG9yLnN0eWxlLm9wYWNpdHkgPSAnMSc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFZhbHVlKCk6IHN0cmluZyB8IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24gPT09IHRoaXMuYm9vbGVhblRydWVOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdib29sZWFuJyAmJiB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHZhbHVlID8gKHRoaXMuYm9vbGVhblRydWVOYW1lIHx8ICd0cnVlJykgOiAodGhpcy5ib29sZWFuRmFsc2VOYW1lIHx8ICdmYWxzZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gdmFsdWUgYXMgc3RyaW5nO1xuICAgIH1cbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldEluZGljYXRvcigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0IHsgaHRtbCwgY3NzIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGBcbiAgPGRlZXMtZGVtb3dyYXBwZXI+XG4gICAgPHN0eWxlPlxuICAgICAgJHtjc3NgXG4gICAgICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPC9zdHlsZT5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiZGVtby1jb250YWluZXJcIj5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydCYXNpYyBQaG9uZSBJbnB1dCd9IC5zdWJ0aXRsZT0keydBdXRvbWF0aWMgZm9ybWF0dGluZyBmb3IgcGhvbmUgbnVtYmVycyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSBcbiAgICAgICAgICAubGFiZWw9JHsnUGhvbmUgTnVtYmVyJ30gXG4gICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J0VudGVyIHlvdXIgcGhvbmUgbnVtYmVyIHdpdGggY291bnRyeSBjb2RlJ31cbiAgICAgICAgICAudmFsdWU9JHsnNTU1MTIzNDU2Nyd9XG4gICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSBcbiAgICAgICAgICAubGFiZWw9JHsnQ29udGFjdCBQaG9uZSd9IFxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydSZXF1aXJlZCBmb3IgYWNjb3VudCB2ZXJpZmljYXRpb24nfVxuICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgLnBsYWNlaG9sZGVyPSR7JysxICg1NTUpIDAwMC0wMDAwJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0hvcml6b250YWwgTGF5b3V0J30gLnN1YnRpdGxlPSR7J1Bob25lIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHknfT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtZ3JvdXBcIj5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSBcbiAgICAgICAgICAgIC5sYWJlbD0keydNb2JpbGUnfSBcbiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7J2hvcml6b250YWwnfVxuICAgICAgICAgICAgLnZhbHVlPSR7JzQxNTU1NTEyMzQnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUgXG4gICAgICAgICAgICAubGFiZWw9JHsnT2ZmaWNlJ30gXG4gICAgICAgICAgICAubGF5b3V0TW9kZT0keydob3Jpem9udGFsJ31cbiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keycrMSAoODAwKSA1NTUtMDAwMCd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydJbnRlcm5hdGlvbmFsIE51bWJlcnMnfSAuc3VidGl0bGU9JHsnU3VwcG9ydHMgZm9ybWF0dGluZyBmb3IgbnVtYmVycyB3aXRoIGNvdW50cnkgY29kZXMnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUgXG4gICAgICAgICAgLmxhYmVsPSR7J0ludGVybmF0aW9uYWwgQ29udGFjdCd9IFxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydBdXRvbWF0aWNhbGx5IGZvcm1hdHMgaW50ZXJuYXRpb25hbCBudW1iZXJzJ31cbiAgICAgICAgICAudmFsdWU9JHsnNDQxMjM0NTY3ODkwJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLWlucHV0LXBob25lIFxuICAgICAgICAgIC5sYWJlbD0keydFbWVyZ2VuY3kgQ29udGFjdCd9IFxuICAgICAgICAgIC52YWx1ZT0keyc5MTEnfVxuICAgICAgICAgIC5kaXNhYmxlZD0ke3RydWV9XG4gICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydGb3JtIEludGVncmF0aW9uJ30gLnN1YnRpdGxlPSR7J1Bob25lIGlucHV0IGFzIHBhcnQgb2YgYSBjb250YWN0IGZvcm0nfT5cbiAgICAgICAgPGRlZXMtZm9ybT5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keydGdWxsIE5hbWUnfSAucmVxdWlyZWQ9JHt0cnVlfT48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAubGFiZWw9JHsnUGhvbmUgTnVtYmVyJ30gLnJlcXVpcmVkPSR7dHJ1ZX0+PC9kZWVzLWlucHV0LXBob25lPlxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7J0VtYWlsJ30gLmlucHV0VHlwZT0keydlbWFpbCd9PjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICA8L2RlZXMtZm9ybT5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2Rpdj5cbiAgPC9kZWVzLWRlbW93cmFwcGVyPlxuYDsiLCAiaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgcHJvcGVydHksXG4gIHN0YXRlLFxuICBodG1sLFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCB7IERlZXNJbnB1dEJhc2UgfSBmcm9tICcuLi9kZWVzLWlucHV0LWJhc2UvZGVlcy1pbnB1dC1iYXNlLmpzJztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLWlucHV0LXBob25lLmRlbW8uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtaW5wdXQtcGhvbmUnOiBEZWVzSW5wdXRQaG9uZTtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1pbnB1dC1waG9uZScpXG5leHBvcnQgY2xhc3MgRGVlc0lucHV0UGhvbmUgZXh0ZW5kcyBEZWVzSW5wdXRCYXNlPERlZXNJbnB1dFBob25lPiB7XG4gIC8vIFNUQVRJQ1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnSW5wdXQnO1xuXG4gIC8vIElOU1RBTkNFXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGZvcm1hdHRlZFBob25lOiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBwbGFjZWhvbGRlcjogc3RyaW5nID0gJysxICg1NTUpIDEyMy00NTY3JztcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgLi4uRGVlc0lucHV0QmFzZS5iYXNlU3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgLyogUGhvbmUgaW5wdXQgc3BlY2lmaWMgc3R5bGVzIGNhbiBnbyBoZXJlICovXG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259PjwvZGVlcy1sYWJlbD5cbiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dFxuICAgICAgICAgIC52YWx1ZT0ke3RoaXMuZm9ybWF0dGVkUGhvbmV9XG4gICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfVxuICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgQGlucHV0PSR7KGV2ZW50OiBJbnB1dEV2ZW50KSA9PiB0aGlzLmhhbmRsZVBob25lSW5wdXQoZXZlbnQpfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGZpcnN0VXBkYXRlZChfY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+KSB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgLy8gSW5pdGlhbGl6ZSBmb3JtYXR0ZWQgcGhvbmUgZnJvbSB2YWx1ZVxuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmZvcm1hdHRlZFBob25lID0gdGhpcy5mb3JtYXRQaG9uZU51bWJlcih0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgXG4gICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBpbm5lciBpbnB1dCdzIGNoYW5nZXNcbiAgICBjb25zdCBpbm5lcklucHV0ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dCcpIGFzIGFueTtcbiAgICBpZiAoaW5uZXJJbnB1dCAmJiBpbm5lcklucHV0LmNoYW5nZVN1YmplY3QpIHtcbiAgICAgIGlubmVySW5wdXQuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUGhvbmVJbnB1dChldmVudDogSW5wdXRFdmVudCkge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgY2xlYW5lZFZhbHVlID0gdGhpcy5jbGVhblBob25lTnVtYmVyKGlucHV0LnZhbHVlKTtcbiAgICBjb25zdCBmb3JtYXR0ZWQgPSB0aGlzLmZvcm1hdFBob25lTnVtYmVyKGNsZWFuZWRWYWx1ZSk7XG4gICAgXG4gICAgLy8gVXBkYXRlIHRoZSBpbnB1dCB3aXRoIGZvcm1hdHRlZCB2YWx1ZVxuICAgIGlmIChpbnB1dC52YWx1ZSAhPT0gZm9ybWF0dGVkKSB7XG4gICAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IGlucHV0LnNlbGVjdGlvblN0YXJ0IHx8IDA7XG4gICAgICBpbnB1dC52YWx1ZSA9IGZvcm1hdHRlZDtcbiAgICAgIFxuICAgICAgLy8gVHJ5IHRvIG1haW50YWluIGN1cnNvciBwb3NpdGlvbiBpbnRlbGxpZ2VudGx5XG4gICAgICBjb25zdCBuZXdDdXJzb3JQb3MgPSB0aGlzLmNhbGN1bGF0ZUN1cnNvclBvc2l0aW9uKGNsZWFuZWRWYWx1ZSwgZm9ybWF0dGVkLCBjdXJzb3JQb3NpdGlvbik7XG4gICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShuZXdDdXJzb3JQb3MsIG5ld0N1cnNvclBvcyk7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuZm9ybWF0dGVkUGhvbmUgPSBmb3JtYXR0ZWQ7XG4gICAgdGhpcy52YWx1ZSA9IGNsZWFuZWRWYWx1ZTtcbiAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW5QaG9uZU51bWJlcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBSZW1vdmUgYWxsIG5vbi1udW1lcmljIGNoYXJhY3RlcnNcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0UGhvbmVOdW1iZXIodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gQmFzaWMgVVMgcGhvbmUgbnVtYmVyIGZvcm1hdHRpbmdcbiAgICAvLyBUaGlzIGNhbiBiZSBlbmhhbmNlZCB0byBzdXBwb3J0IGludGVybmF0aW9uYWwgZm9ybWF0c1xuICAgIGNvbnN0IGNsZWFuZWQgPSB0aGlzLmNsZWFuUGhvbmVOdW1iZXIodmFsdWUpO1xuICAgIFxuICAgIGlmIChjbGVhbmVkLmxlbmd0aCA9PT0gMCkgcmV0dXJuICcnO1xuICAgIGlmIChjbGVhbmVkLmxlbmd0aCA8PSAzKSByZXR1cm4gY2xlYW5lZDtcbiAgICBpZiAoY2xlYW5lZC5sZW5ndGggPD0gNikgcmV0dXJuIGAoJHtjbGVhbmVkLnNsaWNlKDAsIDMpfSkgJHtjbGVhbmVkLnNsaWNlKDMpfWA7XG4gICAgaWYgKGNsZWFuZWQubGVuZ3RoIDw9IDEwKSByZXR1cm4gYCgke2NsZWFuZWQuc2xpY2UoMCwgMyl9KSAke2NsZWFuZWQuc2xpY2UoMywgNil9LSR7Y2xlYW5lZC5zbGljZSg2KX1gO1xuICAgIFxuICAgIC8vIEZvciBudW1iZXJzIGxvbmdlciB0aGFuIDEwIGRpZ2l0cywgZm9ybWF0IGFzIGludGVybmF0aW9uYWxcbiAgICByZXR1cm4gYCske2NsZWFuZWQuc2xpY2UoMCwgY2xlYW5lZC5sZW5ndGggLSAxMCl9ICgke2NsZWFuZWQuc2xpY2UoLTEwLCAtNyl9KSAke2NsZWFuZWQuc2xpY2UoLTcsIC00KX0tJHtjbGVhbmVkLnNsaWNlKC00KX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVDdXJzb3JQb3NpdGlvbihjbGVhbmVkOiBzdHJpbmcsIGZvcm1hdHRlZDogc3RyaW5nLCBvbGRQb3M6IG51bWJlcik6IG51bWJlciB7XG4gICAgLy8gU2ltcGxlIGN1cnNvciBwb3NpdGlvbiBjYWxjdWxhdGlvblxuICAgIC8vIENvdW50IGhvdyBtYW55IGZvcm1hdHRpbmcgY2hhcmFjdGVycyBhcmUgYmVmb3JlIHRoZSBjdXJzb3JcbiAgICBsZXQgZm9ybWF0dGluZ0NoYXJzID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9sZFBvcyAmJiBpIDwgZm9ybWF0dGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIS9cXGQvLnRlc3QoZm9ybWF0dGVkW2ldKSkge1xuICAgICAgICBmb3JtYXR0aW5nQ2hhcnMrKztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIE1hdGgubWluKG9sZFBvcyArIGZvcm1hdHRpbmdDaGFycywgZm9ybWF0dGVkLmxlbmd0aCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuZm9ybWF0dGVkUGhvbmUgPSB0aGlzLmZvcm1hdFBob25lTnVtYmVyKHZhbHVlKTtcbiAgfVxufSIsICJpbXBvcnQgeyBodG1sLCBjc3MgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiBodG1sYFxuICA8ZGVlcy1kZW1vd3JhcHBlcj5cbiAgICA8c3R5bGU+XG4gICAgICAke2Nzc2BcbiAgICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmluZm8tYm94IHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2UzZjJmZDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGNvbG9yOiAjMTk3NmQyO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgLmluZm8tYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7XG4gICAgICAgICAgICBjb2xvcjogIzkwY2FmOTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPC9zdHlsZT5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiZGVtby1jb250YWluZXJcIj5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydCYXNpYyBUeXBlIExpc3QnfSAuc3VidGl0bGU9JHsnQWRkIGFuZCByZW1vdmUgaXRlbXMgZnJvbSBhIGxpc3QnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3RcbiAgICAgICAgICAubGFiZWw9JHsnVGFncyd9XG4gICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J0FkZCB0YWdzIGJ5IHR5cGluZyBhbmQgcHJlc3NpbmcgRW50ZXInfVxuICAgICAgICAgIC52YWx1ZT0ke1snamF2YXNjcmlwdCcsICd0eXBlc2NyaXB0JywgJ3dlYi1jb21wb25lbnRzJ119XG4gICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdFxuICAgICAgICAgIC5sYWJlbD0keydUZWFtIE1lbWJlcnMnfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydBZGQgZW1haWwgYWRkcmVzc2VzIG9mIHRlYW0gbWVtYmVycyd9XG4gICAgICAgICAgLnZhbHVlPSR7WydhbGljZUBleGFtcGxlLmNvbScsICdib2JAZXhhbXBsZS5jb20nXX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J1NraWxscyAmIEtleXdvcmRzJ30gLnN1YnRpdGxlPSR7J01hbmFnZSBsaXN0cyBvZiBza2lsbHMgYW5kIGtleXdvcmRzJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0XG4gICAgICAgICAgLmxhYmVsPSR7J1lvdXIgU2tpbGxzJ31cbiAgICAgICAgICAuZGVzY3JpcHRpb249JHsnTGlzdCB5b3VyIHByb2Zlc3Npb25hbCBza2lsbHMnfVxuICAgICAgICAgIC52YWx1ZT0ke1snSFRNTCcsICdDU1MnLCAnSmF2YVNjcmlwdCcsICdOb2RlLmpzJywgJ1JlYWN0J119XG4gICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1ncm91cFwiPlxuICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0XG4gICAgICAgICAgICAubGFiZWw9JHsnQ2F0ZWdvcmllcyd9XG4gICAgICAgICAgICAubGF5b3V0TW9kZT0keydob3Jpem9udGFsJ31cbiAgICAgICAgICAgIC52YWx1ZT0ke1snVGVjaG5vbG9neScsICdEZXNpZ24nLCAnQnVzaW5lc3MnXX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0XG4gICAgICAgICAgICAubGFiZWw9JHsnS2V5d29yZHMnfVxuICAgICAgICAgICAgLmxheW91dE1vZGU9JHsnaG9yaXpvbnRhbCd9XG4gICAgICAgICAgICAudmFsdWU9JHtbJ2lubm92YXRpb24nLCAnc3RhcnR1cCcsICdncm93dGgnXX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J1JlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzJ30gLnN1YnRpdGxlPSR7J0RpZmZlcmVudCBpbnB1dCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24nfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3RcbiAgICAgICAgICAubGFiZWw9JHsnUHJvamVjdCBEZXBlbmRlbmNpZXMnfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydMaXN0IGFsbCByZXF1aXJlZCBucG0gcGFja2FnZXMnfVxuICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgLnZhbHVlPSR7WydAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnLCAnQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyddfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3RcbiAgICAgICAgICAubGFiZWw9JHsnU3lzdGVtIFRhZ3MnfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydUaGVzZSB0YWdzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0nfVxuICAgICAgICAgIC5kaXNhYmxlZD0ke3RydWV9XG4gICAgICAgICAgLnZhbHVlPSR7WydzeXN0ZW0nLCAncHJvdGVjdGVkJywgJ3JlYWRvbmx5J119XG4gICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydBcnRpY2xlIFB1Ymxpc2hpbmcgRm9ybSd9IC5zdWJ0aXRsZT0keydDb21wbGV0ZSBmb3JtIHdpdGggdGFnIG1hbmFnZW1lbnQnfT5cbiAgICAgICAgPGRlZXMtZm9ybT5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keydBcnRpY2xlIFRpdGxlJ30gLnJlcXVpcmVkPSR7dHJ1ZX0+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBcbiAgICAgICAgICAgIC5sYWJlbD0keydTdW1tYXJ5J30gXG4gICAgICAgICAgICAuaW5wdXRUeXBlPSR7J3RleHRhcmVhJ31cbiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydCcmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgYXJ0aWNsZSd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0XG4gICAgICAgICAgICAubGFiZWw9JHsnVGFncyd9XG4gICAgICAgICAgICAuZGVzY3JpcHRpb249JHsnQWRkIHJlbGV2YW50IHRhZ3MgZm9yIGJldHRlciBkaXNjb3ZlcmFiaWxpdHknfVxuICAgICAgICAgICAgLnZhbHVlPSR7Wyd0dXRvcmlhbCcsICd3ZWItZGV2ZWxvcG1lbnQnXX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PlxuICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0XG4gICAgICAgICAgICAubGFiZWw9JHsnQ28tQXV0aG9ycyd9XG4gICAgICAgICAgICAuZGVzY3JpcHRpb249JHsnQWRkIGVtYWlsIGFkZHJlc3NlcyBvZiBjby1hdXRob3JzJ31cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PlxuICAgICAgICA8L2RlZXMtZm9ybT5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWJveFwiPlxuICAgICAgICAgIDxzdHJvbmc+VGlwOjwvc3Ryb25nPiBUeXBlIGEgdmFsdWUgYW5kIHByZXNzIEVudGVyIHRvIGFkZCBpdCB0byB0aGUgbGlzdC4gQ2xpY2sgb24gYW55IGl0ZW0gdG8gcmVtb3ZlIGl0LlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2Rpdj5cbiAgPC9kZWVzLWRlbW93cmFwcGVyPlxuYDsiLCAiaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgc3RhdGUsXG4gIGh0bWwsXG4gIHByb3BlcnR5LFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCB7IERlZXNJbnB1dEJhc2UgfSBmcm9tICcuLi9kZWVzLWlucHV0LWJhc2UvZGVlcy1pbnB1dC1iYXNlLmpzJztcblxuaW1wb3J0IHsgZGVtb0Z1bmMgfSAgZnJvbSAnLi9kZWVzLWlucHV0LXR5cGVsaXN0LmRlbW8uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWlucHV0LXR5cGVsaXN0JylcbmV4cG9ydCBjbGFzcyBEZWVzSW5wdXRUeXBlbGlzdCBleHRlbmRzIERlZXNJbnB1dEJhc2U8RGVlc0lucHV0VHlwZWxpc3Q+IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ0lucHV0JztcblxuXG4gIC8vIElOU1RBTkNFXG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3IgdmFsdWU6IHN0cmluZ1tdID0gW107XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgaW5wdXRWYWx1ZTogc3RyaW5nID0gJyc7XG5cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgLi4uRGVlc0lucHV0QmFzZS5iYXNlU3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgOmhvc3Qge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzMzMnLCAnI2ZmZicpfTtcbiAgICAgIH1cbiAgICAgIC5tYWluYm94IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZhZmFmYScsICcjMjIyMjIyJyl9O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXItdG9wOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnMXB4IHNvbGlkICNDQ0MnLCAnMXB4IHNvbGlkICNmZmZmZmYxMCcpfTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJzFweCBzb2xpZCAjQ0NDJywgJzFweCBzb2xpZCAjMjIyJyl9O1xuICAgICAgICBib3JkZXItcmlnaHQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcxcHggc29saWQgI0NDQycsICcxcHggc29saWQgI2ZmZmZmZjEwJyl9O1xuICAgICAgICBib3JkZXItbGVmdDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJzFweCBzb2xpZCAjQ0NDJywgJzFweCBzb2xpZCAjZmZmZmZmMTAnKX07XG4gICAgICAgIGJveC1zaGFkb3c6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcwcHggMXB4IDRweCByZ2JhKDAsMCwwLDAuMyknLCAnbm9uZScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLm1haW5ib3g6aG92ZXIge1xuICAgICAgICBmaWx0ZXI6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdicmlnaHRuZXNzKDAuOTgpJywgJ2JyaWdodG5lc3MoMS4wNSknKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5tYWluYm94OmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwNjlmMicsICcjMDA4NGZmJyl9O1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIH1cblxuICAgICAgLnRhZ3Mge1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG5cbiAgICAgIC5ub3RhZ3Mge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzk5OScsICcjNjY2Jyl9O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIH1cblxuICAgICAgaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmNWY1ZjUnLCAnIzE4MTgxOCcpfTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6IDBweCAxNnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjJzO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlMGUwZTAnLCAnIzMzMycpfTtcbiAgICAgIH1cblxuICAgICAgaW5wdXQ6Zm9jdXMge1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmFmYWZhJywgJyMxYTFhMWEnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzk5OScsICcjNjY2Jyl9O1xuICAgICAgfVxuXG4gICAgICAudGFnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U4ZjVlOScsICcjMmQzYTJkJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMyZTdkMzInLCAnIzgxYzc4NCcpfTtcbiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgbWFyZ2luOiAzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjYzhlNmM5JywgJyMxYjVlMjAnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC50YWc6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2M4ZTZjOScsICcjM2Q0ZjNkJyl9O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgICB9XG5cbiAgICAgIC50YWcgLnJlbW92ZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gICAgICB9XG5cbiAgICAgIC50YWcgLnJlbW92ZTpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2M2MjgyOCcsICcjZWY1MzUwJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqL1xuICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLm1haW5ib3gge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50YWdzIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRhZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuICAgICAgXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSBpbnB1dCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjBmMGYwJywgJyMxYTFhMWEnKX07XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259PjwvZGVlcy1sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5ib3hcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFnc1wiIEBjbGljaz0keygpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XG4gICAgICAgICAgfX0+XG4gICAgICAgICAgICAke3RoaXMudmFsdWUubGVuZ3RoID09PSAwXG4gICAgICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwibm90YWdzXCI+Tm8gdGFncyB5ZXQ8L2Rpdj5gXG4gICAgICAgICAgICAgIDogdGhpcy52YWx1ZS5tYXAoXG4gICAgICAgICAgICAgICAgICAodGFnKSA9PiBodG1sYFxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICR7dGFnfVxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVtb3ZlXCIgQGNsaWNrPSR7KGU6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVUYWcodGFnKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fT5cdTAwRDc8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUeXBlLCBwcmVzcyBFbnRlciB0byBhZGQgaXQuLi5cIlxuICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfVxuICAgICAgICAgICAgQGlucHV0PSR7KGU6IElucHV0RXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIEBrZXlkb3duPSR7KGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmIHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRUYWcodGhpcy5pbnB1dFZhbHVlLnRyaW0oKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAuZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVGFnKHRhZzogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlLmluY2x1ZGVzKHRhZykpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBbLi4udGhpcy52YWx1ZSwgdGFnXTtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVUYWcodGFnOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5maWx0ZXIoKHQpID0+IHQgIT09IHRhZyk7XG4gICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuIiwgImltcG9ydCB7IHR5cGUgSVRhYmxlQWN0aW9uIH0gZnJvbSAnLi9kZWVzLXRhYmxlLmpzJztcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi4vMDBwbHVnaW5zLmpzJztcbmltcG9ydCB7IGh0bWwsIGNzcywgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmludGVyZmFjZSBJVGFibGVEZW1vRGF0YSB7XG4gIGRhdGU6IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG4gIDxzdHlsZT5cbiAgICAke2Nzc2BcbiAgICAgIC5kZW1vV3JhcHBlciB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMzJweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk1JSknLCAnaHNsKDAgMCUgNSUpJyl9O1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgfVxuICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgICAgLmRlbW8tc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7XG4gICAgICB9XG4gICAgICAuZGVtby10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDklKScsICdoc2woMCAwJSA5NSUpJyl9O1xuICAgICAgfVxuICAgICAgLmRlbW8tZGVzY3JpcHRpb24ge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS40IDE2LjMlIDQ2LjklKScsICdoc2woMjE1IDIwLjIlIDY1LjElKScpfTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgIH1cbiAgICAgIC50aGVtZS10b2dnbGUge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMTZweDtcbiAgICAgICAgcmlnaHQ6IDE2cHg7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICB9XG4gICAgYH1cbiAgPC9zdHlsZT5cbiAgPGRpdiBjbGFzcz1cImRlbW9XcmFwcGVyXCI+XG4gICAgPGRlZXMtYnV0dG9uIGNsYXNzPVwidGhlbWUtdG9nZ2xlXCIgQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdicmlnaHQnKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnZGFyaycpO1xuICAgIH19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImRlbW8tdGl0bGVcIj5CYXNpYyBUYWJsZSB3aXRoIEFjdGlvbnM8L2gyPlxuICAgICAgICA8cCBjbGFzcz1cImRlbW8tZGVzY3JpcHRpb25cIj5BIHN0YW5kYXJkIHRhYmxlIHdpdGggcm93IGFjdGlvbnMsIGVkaXRhYmxlIGZpZWxkcywgYW5kIGNvbnRleHQgbWVudSBzdXBwb3J0LiBEb3VibGUtY2xpY2sgb24gZGVzY3JpcHRpb25zIHRvIGVkaXQuIEdyaWQgbGluZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdC48L3A+XG4gICAgICAgIDxkZWVzLXRhYmxlXG4gICAgICAgICAgaGVhZGluZzE9XCJDdXJyZW50IEFjY291bnQgU3RhdGVtZW50XCJcbiAgICAgICAgICBoZWFkaW5nMj1cIkJ1bnEgLSBQYXltZW50IEFjY291bnQgMiAtIEFwcmlsIDIwMjFcIlxuICAgICAgICAgIC5lZGl0YWJsZUZpZWxkcz1cIiR7WydkZXNjcmlwdGlvbiddfVwiXG4gICAgICAgICAgLmRhdGE9JHtbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRhdGU6ICcyMDIxLTA0LTAxJyxcbiAgICAgICAgICAgICAgYW1vdW50OiAnMjQ2NC42NSBcdTIwQUMnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1ByaW50aW5nIFBhcGVyIChPZmZpY2UgU3VwcGxpZXMpIC0gU1RBUExFUyBCUkVNRU4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGF0ZTogJzIwMjEtMDQtMDInLFxuICAgICAgICAgICAgICBhbW91bnQ6ICcxNjUuNjUgXHUyMEFDJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdMb2dpdGVjaCBNb3VzZSAoSGFyZHdhcmUpIC0gbG9naS5jb20gT25saW5lU2hvcCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkYXRlOiAnMjAyMS0wNC0wMycsXG4gICAgICAgICAgICAgIGFtb3VudDogJzI5OTksMDAgXHUyMEFDJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdNYWNib29rIFBybyAxNmluY2ggKEhhcmR3YXJlKSAtIEFwcGxlLmRlIE9ubGluZVNob3AnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGF0ZTogJzIwMjEtMDQtMDEnLFxuICAgICAgICAgICAgICBhbW91bnQ6ICcyNDY0LjY1IFx1MjBBQycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnT2ZmaWNlLVN1cHBsaWVzIC0gU1RBUExFUyBCUkVNRU4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGF0ZTogJzIwMjEtMDQtMDEnLFxuICAgICAgICAgICAgICBhbW91bnQ6ICcyNDY0LjY1IFx1MjBBQycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnT2ZmaWNlLVN1cHBsaWVzIC0gU1RBUExFUyBCUkVNRU4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIGRhdGFOYW1lPVwidHJhbnNhY3Rpb25zXCJcbiAgICAgICAgICAuZGF0YUFjdGlvbnM9XCIke1tcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3VwbG9hZCcsXG4gICAgICAgICAgICAgIGljb25OYW1lOiAnYmVsbCcsXG4gICAgICAgICAgICAgIHVzZVRhYmxlQmVoYXZpb3VyOiAndXBsb2FkJyxcbiAgICAgICAgICAgICAgdHlwZTogWydpblJvdyddLFxuICAgICAgICAgICAgICBhY3Rpb25GdW5jOiBhc3luYyAob3B0aW9uc0FyZykgPT4ge1xuICAgICAgICAgICAgICAgIGFsZXJ0KG9wdGlvbnNBcmcuaXRlbS5hbW91bnQpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3Zpc2liaWxpdHknLFxuICAgICAgICAgICAgICBpY29uTmFtZTogJ2NvcHknLFxuICAgICAgICAgICAgICB0eXBlOiBbJ2luUm93J10sXG4gICAgICAgICAgICAgIHVzZVRhYmxlQmVoYXZpb3VyOiAncHJldmlldycsXG4gICAgICAgICAgICAgIGFjdGlvbkZ1bmM6IGFzeW5jIChpdGVtQXJnOiBhbnkpID0+IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2NyZWF0ZSBuZXcnLFxuICAgICAgICAgICAgICBpY29uTmFtZTogJ2luc3RhZ3JhbScsXG4gICAgICAgICAgICAgIHR5cGU6IFsnaGVhZGVyJ10sXG4gICAgICAgICAgICAgIHVzZVRhYmxlQmVoYXZpb3VyOiAncHJldmlldycsXG4gICAgICAgICAgICAgIGFjdGlvbkZ1bmM6IGFzeW5jIChpdGVtQXJnOiBhbnkpID0+IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3RvIGdhbGxlcnknLFxuICAgICAgICAgICAgICBpY29uTmFtZTogJ21lc3NhZ2UnLFxuICAgICAgICAgICAgICB0eXBlOiBbJ2Zvb3RlciddLFxuICAgICAgICAgICAgICB1c2VUYWJsZUJlaGF2aW91cjogJ3ByZXZpZXcnLFxuICAgICAgICAgICAgICBhY3Rpb25GdW5jOiBhc3luYyAoaXRlbUFyZzogYW55KSA9PiB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdjb3B5JyxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdjb3B5U29saWQnLFxuICAgICAgICAgICAgICB0eXBlOiBbJ2NvbnRleHRtZW51JywgJ2luUm93J10sXG4gICAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2VkaXQgKGZyb20gZGVtbyknLFxuICAgICAgICAgICAgICBpY29uTmFtZTogJ3BlblRvU3F1YXJlJyxcbiAgICAgICAgICAgICAgdHlwZTogWydjb250ZXh0bWVudSddLFxuICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdwYXN0ZScsXG4gICAgICAgICAgICAgIGljb25OYW1lOiAncGFzdGVTb2xpZCcsXG4gICAgICAgICAgICAgIHR5cGU6IFsnY29udGV4dG1lbnUnXSxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAncHJldmlldycsXG4gICAgICAgICAgICAgIHR5cGU6IFsnZG91YmxlQ2xpY2snLCAnY29udGV4dG1lbnUnXSxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdleWUnLFxuICAgICAgICAgICAgICBhY3Rpb25GdW5jOiBhc3luYyAoaXRlbUFyZykgPT4ge1xuICAgICAgICAgICAgICAgIGFsZXJ0KGl0ZW1BcmcuaXRlbS5hbW91bnQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0gYXMgSVRhYmxlQWN0aW9uW119XCJcbiAgICAgICAgPjwvZGVlcy10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImRlbW8tdGl0bGVcIj5UYWJsZSB3aXRoIFZlcnRpY2FsIExpbmVzPC9oMj5cbiAgICAgICAgPHAgY2xhc3M9XCJkZW1vLWRlc2NyaXB0aW9uXCI+RW5oYW5jZWQgY29sdW1uIHNlcGFyYXRpb24gZm9yIGJldHRlciBkYXRhIHRyYWNraW5nLjwvcD5cbiAgICAgICAgPGRlZXMtdGFibGVcbiAgICAgICAgICBoZWFkaW5nMT1cIlByb2R1Y3QgSW52ZW50b3J5XCJcbiAgICAgICAgICBoZWFkaW5nMj1cIkN1cnJlbnQgc3RvY2sgbGV2ZWxzIGFjcm9zcyB3YXJlaG91c2VzXCJcbiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHt0cnVlfVxuICAgICAgICAgIC5kYXRhPSR7W1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwcm9kdWN0OiAnTWFjQm9vayBQcm8gMTZcIicsXG4gICAgICAgICAgICAgIHdhcmVob3VzZV9hOiAnNDUnLFxuICAgICAgICAgICAgICB3YXJlaG91c2VfYjogJzMyJyxcbiAgICAgICAgICAgICAgd2FyZWhvdXNlX2M6ICcyOCcsXG4gICAgICAgICAgICAgIHRvdGFsOiAnMTA1JyxcbiAgICAgICAgICAgICAgc3RhdHVzOiAnXHUyNzEzIEluIFN0b2NrJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJvZHVjdDogJ2lQaG9uZSAxNSBQcm8nLFxuICAgICAgICAgICAgICB3YXJlaG91c2VfYTogJzEyMCcsXG4gICAgICAgICAgICAgIHdhcmVob3VzZV9iOiAnODknLFxuICAgICAgICAgICAgICB3YXJlaG91c2VfYzogJzE1NicsXG4gICAgICAgICAgICAgIHRvdGFsOiAnMzY1JyxcbiAgICAgICAgICAgICAgc3RhdHVzOiAnXHUyNzEzIEluIFN0b2NrJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJvZHVjdDogJ0FpclBvZHMgUHJvJyxcbiAgICAgICAgICAgICAgd2FyZWhvdXNlX2E6ICcwJyxcbiAgICAgICAgICAgICAgd2FyZWhvdXNlX2I6ICcxMicsXG4gICAgICAgICAgICAgIHdhcmVob3VzZV9jOiAnNScsXG4gICAgICAgICAgICAgIHRvdGFsOiAnMTcnLFxuICAgICAgICAgICAgICBzdGF0dXM6ICdcdTI2QTAgTG93IFN0b2NrJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJvZHVjdDogJ2lQYWQgQWlyJyxcbiAgICAgICAgICAgICAgd2FyZWhvdXNlX2E6ICcyMycsXG4gICAgICAgICAgICAgIHdhcmVob3VzZV9iOiAnNDUnLFxuICAgICAgICAgICAgICB3YXJlaG91c2VfYzogJzY3JyxcbiAgICAgICAgICAgICAgdG90YWw6ICcxMzUnLFxuICAgICAgICAgICAgICBzdGF0dXM6ICdcdTI3MTMgSW4gU3RvY2snXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXX1cbiAgICAgICAgICBkYXRhTmFtZT1cInByb2R1Y3RzXCJcbiAgICAgICAgPjwvZGVlcy10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImRlbW8tdGl0bGVcIj5UYWJsZSB3aXRoIEZ1bGwgR3JpZDwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwiZGVtby1kZXNjcmlwdGlvblwiPkNvbXBsZXRlIGdyaWQgbGluZXMgZm9yIG1heGltdW0gcmVhZGFiaWxpdHkgYW5kIHN0cnVjdHVyZS48L3A+XG4gICAgICAgIDxkZWVzLXRhYmxlXG4gICAgICAgICAgaGVhZGluZzE9XCJTZXJ2ZXIgTW9uaXRvcmluZyBEYXNoYm9hcmRcIlxuICAgICAgICAgIGhlYWRpbmcyPVwiUmVhbC10aW1lIG1ldHJpY3MgYWNyb3NzIHJlZ2lvbnNcIlxuICAgICAgICAgIC5zaG93R3JpZD0ke3RydWV9XG4gICAgICAgICAgLmRhdGE9JHtbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNlcnZlcjogJ0FQSS0xJyxcbiAgICAgICAgICAgICAgcmVnaW9uOiAnVVMtRWFzdCcsXG4gICAgICAgICAgICAgIGNwdTogJzQ1JScsXG4gICAgICAgICAgICAgIG1lbW9yeTogJzYyJScsXG4gICAgICAgICAgICAgIGRpc2s6ICc3OCUnLFxuICAgICAgICAgICAgICBsYXRlbmN5OiAnMTJtcycsXG4gICAgICAgICAgICAgIHVwdGltZTogJzk5LjklJyxcbiAgICAgICAgICAgICAgc3RhdHVzOiAnXHVEODNEXHVERkUyIEhlYWx0aHknXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzZXJ2ZXI6ICdBUEktMicsXG4gICAgICAgICAgICAgIHJlZ2lvbjogJ0VVLVdlc3QnLFxuICAgICAgICAgICAgICBjcHU6ICczOCUnLFxuICAgICAgICAgICAgICBtZW1vcnk6ICc1NSUnLFxuICAgICAgICAgICAgICBkaXNrOiAnNDUlJyxcbiAgICAgICAgICAgICAgbGF0ZW5jeTogJzI1bXMnLFxuICAgICAgICAgICAgICB1cHRpbWU6ICc5OS44JScsXG4gICAgICAgICAgICAgIHN0YXR1czogJ1x1RDgzRFx1REZFMiBIZWFsdGh5J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2VydmVyOiAnREItTWFzdGVyJyxcbiAgICAgICAgICAgICAgcmVnaW9uOiAnVVMtRWFzdCcsXG4gICAgICAgICAgICAgIGNwdTogJzcyJScsXG4gICAgICAgICAgICAgIG1lbW9yeTogJzgxJScsXG4gICAgICAgICAgICAgIGRpc2s6ICc5MiUnLFxuICAgICAgICAgICAgICBsYXRlbmN5OiAnOG1zJyxcbiAgICAgICAgICAgICAgdXB0aW1lOiAnMTAwJScsXG4gICAgICAgICAgICAgIHN0YXR1czogJ1x1RDgzRFx1REZFMSBXYXJuaW5nJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2VydmVyOiAnREItUmVwbGljYScsXG4gICAgICAgICAgICAgIHJlZ2lvbjogJ0VVLVdlc3QnLFxuICAgICAgICAgICAgICBjcHU6ICcyMyUnLFxuICAgICAgICAgICAgICBtZW1vcnk6ICczNCUnLFxuICAgICAgICAgICAgICBkaXNrOiAnNDUlJyxcbiAgICAgICAgICAgICAgbGF0ZW5jeTogJzE1bXMnLFxuICAgICAgICAgICAgICB1cHRpbWU6ICc5OS43JScsXG4gICAgICAgICAgICAgIHN0YXR1czogJ1x1RDgzRFx1REZFMiBIZWFsdGh5J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2VydmVyOiAnQ2FjaGUtMScsXG4gICAgICAgICAgICAgIHJlZ2lvbjogJ0FQLVNvdXRoJyxcbiAgICAgICAgICAgICAgY3B1OiAnODklJyxcbiAgICAgICAgICAgICAgbWVtb3J5OiAnOTIlJyxcbiAgICAgICAgICAgICAgZGlzazogJzEyJScsXG4gICAgICAgICAgICAgIGxhdGVuY3k6ICcxMjBtcycsXG4gICAgICAgICAgICAgIHVwdGltZTogJzk4LjUlJyxcbiAgICAgICAgICAgICAgc3RhdHVzOiAnXHVEODNEXHVERDM0IENyaXRpY2FsJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF19XG4gICAgICAgICAgZGF0YU5hbWU9XCJzZXJ2ZXJzXCJcbiAgICAgICAgICAuZGF0YUFjdGlvbnM9XCIke1tcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ1NTSCBDb25uZWN0JyxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6dGVybWluYWwnLFxuICAgICAgICAgICAgICB0eXBlOiBbJ2luUm93J10sXG4gICAgICAgICAgICAgIGFjdGlvbkZ1bmM6IGFzeW5jIChvcHRpb25zQXJnKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0Nvbm5lY3RpbmcgdG86Jywgb3B0aW9uc0FyZy5pdGVtLnNlcnZlcik7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnVmlldyBMb2dzJyxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6ZmlsZS10ZXh0JyxcbiAgICAgICAgICAgICAgdHlwZTogWydpblJvdycsICdjb250ZXh0bWVudSddLFxuICAgICAgICAgICAgICBhY3Rpb25GdW5jOiBhc3luYyAob3B0aW9uc0FyZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdWaWV3aW5nIGxvZ3MgZm9yOicsIG9wdGlvbnNBcmcuaXRlbS5zZXJ2ZXIpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ1Jlc3RhcnQgU2VydmVyJyxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaC1jdycsXG4gICAgICAgICAgICAgIHR5cGU6IFsnY29udGV4dG1lbnUnXSxcbiAgICAgICAgICAgICAgYWN0aW9uRnVuYzogYXN5bmMgKG9wdGlvbnNBcmcpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnUmVzdGFydGluZzonLCBvcHRpb25zQXJnLml0ZW0uc2VydmVyKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdIGFzIElUYWJsZUFjdGlvbltdfVwiXG4gICAgICAgID48L2RlZXMtdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImRlbW8tc2VjdGlvblwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJkZW1vLXRpdGxlXCI+VGFibGUgd2l0aCBIb3Jpem9udGFsIExpbmVzIE9ubHk8L2gyPlxuICAgICAgICA8cCBjbGFzcz1cImRlbW8tZGVzY3JpcHRpb25cIj5FbXBoYXNpcyBvbiByb3cgc2VwYXJhdGlvbiB3aXRob3V0IGNvbHVtbiBkaXZpZGVycy48L3A+XG4gICAgICAgIDxkZWVzLXRhYmxlXG4gICAgICAgICAgaGVhZGluZzE9XCJTYWxlcyBQZXJmb3JtYW5jZVwiXG4gICAgICAgICAgaGVhZGluZzI9XCJUb3AgcGVyZm9ybWVycyB0aGlzIHF1YXJ0ZXJcIlxuICAgICAgICAgIC5zaG93SG9yaXpvbnRhbExpbmVzPSR7dHJ1ZX1cbiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHtmYWxzZX1cbiAgICAgICAgICAuZGF0YT0ke1tcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2FsZXNwZXJzb246ICdFbWlseSBKb2huc29uJyxcbiAgICAgICAgICAgICAgcmVnaW9uOiAnTm9ydGggQW1lcmljYScsXG4gICAgICAgICAgICAgIGRlYWxzX2Nsb3NlZDogJzQyJyxcbiAgICAgICAgICAgICAgcmV2ZW51ZTogJyQxLjJNJyxcbiAgICAgICAgICAgICAgcXVvdGFfYWNoaWV2ZW1lbnQ6ICcxMjglJyxcbiAgICAgICAgICAgICAgcmF0aW5nOiAnXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2FsZXNwZXJzb246ICdNaWNoYWVsIENoZW4nLFxuICAgICAgICAgICAgICByZWdpb246ICdBc2lhIFBhY2lmaWMnLFxuICAgICAgICAgICAgICBkZWFsc19jbG9zZWQ6ICczOCcsXG4gICAgICAgICAgICAgIHJldmVudWU6ICckOTgwSycsXG4gICAgICAgICAgICAgIHF1b3RhX2FjaGlldmVtZW50OiAnMTE1JScsXG4gICAgICAgICAgICAgIHJhdGluZzogJ1x1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MCdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNhbGVzcGVyc29uOiAnU2FyYWggV2lsbGlhbXMnLFxuICAgICAgICAgICAgICByZWdpb246ICdFdXJvcGUnLFxuICAgICAgICAgICAgICBkZWFsc19jbG9zZWQ6ICczNScsXG4gICAgICAgICAgICAgIHJldmVudWU6ICckODc1SycsXG4gICAgICAgICAgICAgIHF1b3RhX2FjaGlldmVtZW50OiAnMTA4JScsXG4gICAgICAgICAgICAgIHJhdGluZzogJ1x1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MCdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNhbGVzcGVyc29uOiAnRGF2aWQgR2FyY2lhJyxcbiAgICAgICAgICAgICAgcmVnaW9uOiAnTGF0aW4gQW1lcmljYScsXG4gICAgICAgICAgICAgIGRlYWxzX2Nsb3NlZDogJzMxJyxcbiAgICAgICAgICAgICAgcmV2ZW51ZTogJyQ3NTBLJyxcbiAgICAgICAgICAgICAgcXVvdGFfYWNoaWV2ZW1lbnQ6ICc5NSUnLFxuICAgICAgICAgICAgICByYXRpbmc6ICdcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXX1cbiAgICAgICAgICBkYXRhTmFtZT1cInNhbGVzIHJlcHNcIlxuICAgICAgICA+PC9kZWVzLXRhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZGVtby10aXRsZVwiPlNpbXBsZSBUYWJsZSAoTm8gR3JpZCk8L2gyPlxuICAgICAgICA8cCBjbGFzcz1cImRlbW8tZGVzY3JpcHRpb25cIj5DbGVhbiwgbWluaW1hbCBkZXNpZ24gd2l0aG91dCBncmlkIGxpbmVzLiBTZXQgc2hvd0dyaWQgdG8gZmFsc2UgdG8gZGlzYWJsZSB0aGUgZGVmYXVsdCBncmlkLjwvcD5cbiAgICAgICAgPGRlZXMtdGFibGVcbiAgICAgICAgICBoZWFkaW5nMT1cIlRlYW0gTWVtYmVyc1wiXG4gICAgICAgICAgaGVhZGluZzI9XCJFbmdpbmVlcmluZyBEZXBhcnRtZW50XCJcbiAgICAgICAgICAuc2hvd0dyaWQ9JHtmYWxzZX1cbiAgICAgICAgICAuZGF0YT0ke1tcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ0FsaWNlIEpvaG5zb24nLFxuICAgICAgICAgICAgICByb2xlOiAnTGVhZCBFbmdpbmVlcicsXG4gICAgICAgICAgICAgIGVtYWlsOiAnYWxpY2VAY29tcGFueS5jb20nLFxuICAgICAgICAgICAgICBsb2NhdGlvbjogJ1NhbiBGcmFuY2lzY28nLFxuICAgICAgICAgICAgICBqb2luZWQ6ICcyMDIwLTAzLTE1J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ0JvYiBTbWl0aCcsXG4gICAgICAgICAgICAgIHJvbGU6ICdTZW5pb3IgRGV2ZWxvcGVyJyxcbiAgICAgICAgICAgICAgZW1haWw6ICdib2JAY29tcGFueS5jb20nLFxuICAgICAgICAgICAgICBsb2NhdGlvbjogJ05ldyBZb3JrJyxcbiAgICAgICAgICAgICAgam9pbmVkOiAnMjAxOS0wNy0yMidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdDaGFybGllIERhdmlzJyxcbiAgICAgICAgICAgICAgcm9sZTogJ0Rldk9wcyBFbmdpbmVlcicsXG4gICAgICAgICAgICAgIGVtYWlsOiAnY2hhcmxpZUBjb21wYW55LmNvbScsXG4gICAgICAgICAgICAgIGxvY2F0aW9uOiAnTG9uZG9uJyxcbiAgICAgICAgICAgICAgam9pbmVkOiAnMjAyMS0wMS0xMCdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdEaWFuYSBNYXJ0aW5leicsXG4gICAgICAgICAgICAgIHJvbGU6ICdGcm9udGVuZCBEZXZlbG9wZXInLFxuICAgICAgICAgICAgICBlbWFpbDogJ2RpYW5hQGNvbXBhbnkuY29tJyxcbiAgICAgICAgICAgICAgbG9jYXRpb246ICdCYXJjZWxvbmEnLFxuICAgICAgICAgICAgICBqb2luZWQ6ICcyMDIyLTA1LTE4J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF19XG4gICAgICAgICAgZGF0YU5hbWU9XCJ0ZWFtIG1lbWJlcnNcIlxuICAgICAgICA+PC9kZWVzLXRhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZGVtby10aXRsZVwiPlRhYmxlIHdpdGggQ3VzdG9tIERpc3BsYXkgRnVuY3Rpb248L2gyPlxuICAgICAgICA8cCBjbGFzcz1cImRlbW8tZGVzY3JpcHRpb25cIj5UcmFuc2Zvcm0gZGF0YSBmb3IgZGlzcGxheSB1c2luZyBjdXN0b20gZm9ybWF0dGluZy48L3A+XG4gICAgICAgIDxkZWVzLXRhYmxlXG4gICAgICAgICAgaGVhZGluZzE9XCJTYWxlcyBSZXBvcnRcIlxuICAgICAgICAgIGhlYWRpbmcyPVwiUTQgMjAyMyBQZXJmb3JtYW5jZVwiXG4gICAgICAgICAgLmRhdGE9JHtbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHByb2R1Y3Q6ICdFbnRlcnByaXNlIExpY2Vuc2UnLFxuICAgICAgICAgICAgICB1bml0czogNDUsXG4gICAgICAgICAgICAgIHJldmVudWU6IDIyNTAwMCxcbiAgICAgICAgICAgICAgZ3Jvd3RoOiAwLjIzLFxuICAgICAgICAgICAgICBmb3JlY2FzdDogMjgwMDAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwcm9kdWN0OiAnUHJvZmVzc2lvbmFsIExpY2Vuc2UnLFxuICAgICAgICAgICAgICB1bml0czogMTI4LFxuICAgICAgICAgICAgICByZXZlbnVlOiAxMjgwMDAsXG4gICAgICAgICAgICAgIGdyb3d0aDogMC4xNSxcbiAgICAgICAgICAgICAgZm9yZWNhc3Q6IDE0NzAwMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJvZHVjdDogJ1N0YXJ0ZXIgTGljZW5zZScsXG4gICAgICAgICAgICAgIHVuaXRzOiAzNDIsXG4gICAgICAgICAgICAgIHJldmVudWU6IDY4NDAwLFxuICAgICAgICAgICAgICBncm93dGg6IDAuNDIsXG4gICAgICAgICAgICAgIGZvcmVjYXN0OiA5NzAwMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF19XG4gICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0keyhpdGVtKSA9PiAoe1xuICAgICAgICAgICAgUHJvZHVjdDogaXRlbS5wcm9kdWN0LFxuICAgICAgICAgICAgJ1VuaXRzIFNvbGQnOiBpdGVtLnVuaXRzLnRvTG9jYWxlU3RyaW5nKCksXG4gICAgICAgICAgICBSZXZlbnVlOiAnJCcgKyBpdGVtLnJldmVudWUudG9Mb2NhbGVTdHJpbmcoKSxcbiAgICAgICAgICAgIEdyb3d0aDogKGl0ZW0uZ3Jvd3RoICogMTAwKS50b0ZpeGVkKDEpICsgJyUnLFxuICAgICAgICAgICAgJ1ExIDIwMjQgRm9yZWNhc3QnOiAnJCcgKyBpdGVtLmZvcmVjYXN0LnRvTG9jYWxlU3RyaW5nKClcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBkYXRhTmFtZT1cInByb2R1Y3RzXCJcbiAgICAgICAgPjwvZGVlcy10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImRlbW8tdGl0bGVcIj5FbXB0eSBUYWJsZSBTdGF0ZTwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwiZGVtby1kZXNjcmlwdGlvblwiPkhvdyB0aGUgdGFibGUgbG9va3Mgd2hlbiBubyBkYXRhIGlzIGF2YWlsYWJsZS48L3A+XG4gICAgICAgIDxkZWVzLXRhYmxlXG4gICAgICAgICAgaGVhZGluZzE9XCJObyBEYXRhIEF2YWlsYWJsZVwiXG4gICAgICAgICAgaGVhZGluZzI9XCJUaGlzIHRhYmxlIGlzIGN1cnJlbnRseSBlbXB0eVwiXG4gICAgICAgICAgLmRhdGE9JHtbXX1cbiAgICAgICAgICBkYXRhTmFtZT1cIml0ZW1zXCJcbiAgICAgICAgPjwvZGVlcy10YWJsZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImRlbW8tdGl0bGVcIj5TY2hlbWEtRmlyc3QgQ29sdW1ucyAoTmV3KTwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwiZGVtby1kZXNjcmlwdGlvblwiPkRlZmluZXMgY29sdW1ucyBleHBsaWNpdGx5IGFuZCByZW5kZXJzIHZpYSBzY2hlbWEuIE5vIGRpc3BsYXlGdW5jdGlvbiBuZWVkZWQuPC9wPlxuICAgICAgICA8ZGVlcy10YWJsZVxuICAgICAgICAgIGhlYWRpbmcxPVwiVXNlcnMgKFNjaGVtYS1GaXJzdClcIlxuICAgICAgICAgIGhlYWRpbmcyPVwiQ29sdW1ucyBkZWZpbmUgcmVuZGVyaW5nIGFuZCBvcmRlclwiXG4gICAgICAgICAgLmNvbHVtbnM9JHtbXG4gICAgICAgICAgICB7IGtleTogJ25hbWUnLCBoZWFkZXI6ICdOYW1lJywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsga2V5OiAnZW1haWwnLCBoZWFkZXI6ICdFbWFpbCcsIHJlbmRlcmVyOiAodjogc3RyaW5nKSA9PiBodG1sYDxkZWVzLWJhZGdlPiR7dn08L2RlZXMtYmFkZ2U+YCB9LFxuICAgICAgICAgICAgeyBrZXk6ICdqb2luZWRBdCcsIGhlYWRlcjogJ0pvaW5lZCcsIHJlbmRlcmVyOiAodjogc3RyaW5nKSA9PiBuZXcgRGF0ZSh2KS50b0xvY2FsZURhdGVTdHJpbmcoKSB9LFxuICAgICAgICAgIF19XG4gICAgICAgICAgLmRhdGE9JHtbXG4gICAgICAgICAgICB7IG5hbWU6ICdBbGljZScsIGVtYWlsOiAnYWxpY2VAZXhhbXBsZS5jb20nLCBqb2luZWRBdDogJzIwMjItMDgtMDEnIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdCb2InLCBlbWFpbDogJ2JvYkBleGFtcGxlLmNvbScsIGpvaW5lZEF0OiAnMjAyMS0xMi0xMScgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0Nhcm9sJywgZW1haWw6ICdjYXJvbEBleGFtcGxlLmNvbScsIGpvaW5lZEF0OiAnMjAyMy0wMy0yMicgfSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIGRhdGFOYW1lPVwidXNlcnNcIlxuICAgICAgICA+PC9kZWVzLXRhYmxlPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZGVtby10aXRsZVwiPlBhcnRpYWwgU2NoZW1hICsgQXVnbWVudCAoTmV3KTwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwiZGVtby1kZXNjcmlwdGlvblwiPlByb3ZpZGVzIG9ubHkgdGhlIGltcG9ydGFudCBjb2x1bW5zOyB0aGUgcmVzdCBhcmUgbWVyZ2VkIGluIGZyb20gZGlzcGxheUZ1bmN0aW9uLjwvcD5cbiAgICAgICAgPGRlZXMtdGFibGVcbiAgICAgICAgICBoZWFkaW5nMT1cIlVzZXJzIChQYXJ0aWFsICsgQXVnbWVudClcIlxuICAgICAgICAgIGhlYWRpbmcyPVwiTWlzc2luZyBjb2x1bW5zIGFyZSBkZXJpdmVkXCJcbiAgICAgICAgICAuY29sdW1ucz0ke1tcbiAgICAgICAgICAgIHsga2V5OiAnbmFtZScsIGhlYWRlcjogJ05hbWUnLCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgIF19XG4gICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0keyh1OiBhbnkpID0+ICh7IG5hbWU6IHUubmFtZSwgZW1haWw6IHUuZW1haWwsIHJvbGU6IHUucm9sZSB9KX1cbiAgICAgICAgICAuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249JHt0cnVlfVxuICAgICAgICAgIC5kYXRhPSR7W1xuICAgICAgICAgICAgeyBuYW1lOiAnRXJpbicsIGVtYWlsOiAnZXJpbkBleGFtcGxlLmNvbScsIHJvbGU6ICdBZG1pbicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0Zpbm4nLCBlbWFpbDogJ2Zpbm5AZXhhbXBsZS5jb20nLCByb2xlOiAnVXNlcicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0dpbmEnLCBlbWFpbDogJ2dpbmFAZXhhbXBsZS5jb20nLCByb2xlOiAnVXNlcicgfSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIGRhdGFOYW1lPVwidXNlcnNcIlxuICAgICAgICA+PC9kZWVzLXRhYmxlPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIiBcbiAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0keyhlOiBDdXN0b21FdmVudCkgPT4geyBjb25zb2xlLmxvZygnU2VsZWN0aW9uIGNoYW5nZWQnLCBlLmRldGFpbCk7IH19XG4gICAgICAgICAgIEBzZWFyY2gtY2hhbmdlZD0keyhlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgICAgIGNvbnN0IHRibCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YWJsZUZpbHRlclNlbGVjdERlbW8nKSBhcyBhbnk7XG4gICAgICAgICAgICAgaWYgKHRibCkgdGJsLnNldEZpbHRlclRleHQoZS5kZXRhaWwudmFsdWUpO1xuICAgICAgICAgICB9fVxuICAgICAgICAgICBAc2VhcmNoLXN1Ym1pdD0keyhlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgICAgIGNvbnN0IHRibCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YWJsZUZpbHRlclNlbGVjdERlbW8nKSBhcyBhbnk7XG4gICAgICAgICAgICAgaWYgKHRibCkgdGJsLnNldEZpbHRlclRleHQoZS5kZXRhaWwudmFsdWUpO1xuICAgICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8aDIgY2xhc3M9XCJkZW1vLXRpdGxlXCI+RmlsdGVyaW5nICsgTXVsdGktU2VsZWN0aW9uIChOZXcpPC9oMj5cbiAgICAgICAgPHAgY2xhc3M9XCJkZW1vLWRlc2NyaXB0aW9uXCI+VXNlIHRoZSBzZWFyY2ggYmFyIHRvIGZpbHRlciByb3dzOyB0b2dnbGUgc2VsZWN0aW9uIHZpYSBjaGVja2JveGVzLiBDbGljayBoZWFkZXJzIHRvIHNvcnQuPC9wPlxuICAgICAgICA8ZGVlcy1zZWFyY2hiYXI+PC9kZWVzLXNlYXJjaGJhcj5cbiAgICAgICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTJweFwiPjwvZGl2PlxuICAgICAgICA8ZGVlcy10YWJsZVxuICAgICAgICAgIGlkPVwidGFibGVGaWx0ZXJTZWxlY3REZW1vXCJcbiAgICAgICAgICBoZWFkaW5nMT1cIkludmVudG9yeSAoRmlsdGVyICsgU2VsZWN0KVwiXG4gICAgICAgICAgaGVhZGluZzI9XCJUcnkgdHlwaW5nIHRvIGZpbHRlciBhbmQgc2VsZWN0aW5nIG11bHRpcGxlIHJvd3NcIlxuICAgICAgICAgIC5zZWxlY3Rpb25Nb2RlPSR7J211bHRpJ31cbiAgICAgICAgICAucm93S2V5PSR7J3NrdSd9XG4gICAgICAgICAgLmNvbHVtbnM9JHtbXG4gICAgICAgICAgICB7IGtleTogJ3NrdScsIGhlYWRlcjogJ1NLVScsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IGtleTogJ25hbWUnLCBoZWFkZXI6ICdOYW1lJywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsga2V5OiAnc3RvY2snLCBoZWFkZXI6ICdTdG9jaycsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgXX1cbiAgICAgICAgICAuZGF0YT0ke1tcbiAgICAgICAgICAgIHsgc2t1OiAnQS0xMDAnLCBuYW1lOiAnVVNCLUMgQ2FibGUnLCBzdG9jazogMTIwIH0sXG4gICAgICAgICAgICB7IHNrdTogJ0EtMTAxJywgbmFtZTogJ1dpcmVsZXNzIE1vdXNlJywgc3RvY2s6IDU1IH0sXG4gICAgICAgICAgICB7IHNrdTogJ0EtMTAyJywgbmFtZTogJ0xhcHRvcCBTdGFuZCcsIHN0b2NrOiAxOCB9LFxuICAgICAgICAgICAgeyBza3U6ICdCLTIwMCcsIG5hbWU6ICdLZXlib2FyZCAoSVNPKScsIHN0b2NrOiA4OSB9LFxuICAgICAgICAgICAgeyBza3U6ICdCLTIwMScsIG5hbWU6ICdIRE1JIEFkYXB0ZXInLCBzdG9jazogMCB9LFxuICAgICAgICAgICAgeyBza3U6ICdDLTMwMCcsIG5hbWU6ICdXZWJjYW0gMTA4MHAnLCBzdG9jazogNDIgfSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIGRhdGFOYW1lPVwiaXRlbXNcIlxuICAgICAgICA+PC9kZWVzLXRhYmxlPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZGVtby10aXRsZVwiPkNvbHVtbiBGaWx0ZXJzICsgU3RpY2t5IEhlYWRlciAoTmV3KTwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwiZGVtby1kZXNjcmlwdGlvblwiPlBlci1jb2x1bW4gcXVpY2sgZmlsdGVycyBhbmQgc3RpY2t5IGhlYWRlciB3aXRoIGludGVybmFsIHNjcm9sbC4gVHJ5IGZpbHRlcmluZyB0aGUgTmFtZSBjb2x1bW4uIFVzZXMgLS10YWJsZS1tYXgtaGVpZ2h0IHZhci48L3A+XG4gICAgICAgIDxzdHlsZT5cbiAgICAgICAgICBkZWVzLXRhYmxlW3N0aWNreS1oZWFkZXJdIHsgLS10YWJsZS1tYXgtaGVpZ2h0OiAyMjBweDsgfVxuICAgICAgICA8L3N0eWxlPlxuICAgICAgICA8ZGVlcy10YWJsZVxuICAgICAgICAgIGhlYWRpbmcxPVwiRW1wbG95ZWVzXCJcbiAgICAgICAgICBoZWFkaW5nMj1cIlF1aWNrIGZpbHRlciBwZXIgY29sdW1uICsgc3RpY2t5IGhlYWRlclwiXG4gICAgICAgICAgLnNob3dDb2x1bW5GaWx0ZXJzPSR7dHJ1ZX1cbiAgICAgICAgICAuc3RpY2t5SGVhZGVyPSR7dHJ1ZX1cbiAgICAgICAgICAuY29sdW1ucz0ke1tcbiAgICAgICAgICAgIHsga2V5OiAnbmFtZScsIGhlYWRlcjogJ05hbWUnLCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBrZXk6ICdlbWFpbCcsIGhlYWRlcjogJ0VtYWlsJywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsga2V5OiAnZGVwYXJ0bWVudCcsIGhlYWRlcjogJ0RlcGFydG1lbnQnLCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgIF19XG4gICAgICAgICAgLmRhdGE9JHtbXG4gICAgICAgICAgICB7IG5hbWU6ICdBbGljZSBKb2huc29uJywgZW1haWw6ICdhbGljZUBjb3JwLmNvbScsIGRlcGFydG1lbnQ6ICdFbmdpbmVlcmluZycgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0JvYiBTbWl0aCcsIGVtYWlsOiAnYm9iQGNvcnAuY29tJywgZGVwYXJ0bWVudDogJ1NhbGVzJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnQ2hhcmxpZSBEYXZpcycsIGVtYWlsOiAnY2hhcmxpZUBjb3JwLmNvbScsIGRlcGFydG1lbnQ6ICdIUicgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0RpYW5hIE1hcnRpbmV6JywgZW1haWw6ICdkaWFuYUBjb3JwLmNvbScsIGRlcGFydG1lbnQ6ICdFbmdpbmVlcmluZycgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0V0aGFuIEJyb3duJywgZW1haWw6ICdldGhhbkBjb3JwLmNvbScsIGRlcGFydG1lbnQ6ICdGaW5hbmNlJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnRmlvbmEgQ2xhcmsnLCBlbWFpbDogJ2Zpb25hQGNvcnAuY29tJywgZGVwYXJ0bWVudDogJ1NhbGVzJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnR3JhY2UgTGVlJywgZW1haWw6ICdncmFjZUBjb3JwLmNvbScsIGRlcGFydG1lbnQ6ICdFbmdpbmVlcmluZycgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0hlbnJ5IFdpbHNvbicsIGVtYWlsOiAnaGVucnlAY29ycC5jb20nLCBkZXBhcnRtZW50OiAnTWFya2V0aW5nJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnSXJlbmUgV2Fsa2VyJywgZW1haWw6ICdpcmVuZUBjb3JwLmNvbScsIGRlcGFydG1lbnQ6ICdGaW5hbmNlJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnSmFjayBUdXJuZXInLCBlbWFpbDogJ2phY2tAY29ycC5jb20nLCBkZXBhcnRtZW50OiAnU3VwcG9ydCcgfSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIGRhdGFOYW1lPVwiZW1wbG95ZWVzXCJcbiAgICAgICAgPjwvZGVlcy10YWJsZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCJcbiAgICAgICAgQHNlYXJjaFJlcXVlc3Q9JHthc3luYyAoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCB7IHF1ZXJ5IH0gPSBlLmRldGFpbCB8fCB7IHF1ZXJ5OiAnJyB9O1xuICAgICAgICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlcnZlclNlYXJjaERlbW8nKSBhcyBhbnk7XG4gICAgICAgICAgY29uc3QgYmFzZURhdGEgPSBbXG4gICAgICAgICAgICB7IGlkOiAxLCBuYW1lOiAnQWxpY2UnLCBjaXR5OiAnQmVybGluJywgdGl0bGU6ICdFbmdpbmVlcicgfSxcbiAgICAgICAgICAgIHsgaWQ6IDIsIG5hbWU6ICdCb2InLCBjaXR5OiAnUGFyaXMnLCB0aXRsZTogJ0Rlc2lnbmVyJyB9LFxuICAgICAgICAgICAgeyBpZDogMywgbmFtZTogJ0NoYXJsaWUnLCBjaXR5OiAnTG9uZG9uJywgdGl0bGU6ICdNYW5hZ2VyJyB9LFxuICAgICAgICAgICAgeyBpZDogNCwgbmFtZTogJ0RpYW5hJywgY2l0eTogJ01hZHJpZCcsIHRpdGxlOiAnRW5naW5lZXInIH0sXG4gICAgICAgICAgICB7IGlkOiA1LCBuYW1lOiAnRXRoYW4nLCBjaXR5OiAnUm9tZScsIHRpdGxlOiAnU3VwcG9ydCcgfSxcbiAgICAgICAgICBdO1xuICAgICAgICAgIC8vIFNpbXVsYXRlIGFzeW5jIHJlcXVlc3RcbiAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocikgPT4gc2V0VGltZW91dChyLCAzMDApKTtcbiAgICAgICAgICBjb25zdCBxID0gU3RyaW5nKHF1ZXJ5IHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIGNvbnN0IGZpbHRlcmVkID0gcVxuICAgICAgICAgICAgPyBiYXNlRGF0YS5maWx0ZXIoKHIpID0+IE9iamVjdC52YWx1ZXMocikuc29tZSgodikgPT4gU3RyaW5nKHYpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpKVxuICAgICAgICAgICAgOiBiYXNlRGF0YTtcbiAgICAgICAgICB0YWJsZS5kYXRhID0gZmlsdGVyZWQ7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxoMiBjbGFzcz1cImRlbW8tdGl0bGVcIj5TZXJ2ZXIgU2VhcmNoIChOZXcpPC9oMj5cbiAgICAgICAgPHAgY2xhc3M9XCJkZW1vLWRlc2NyaXB0aW9uXCI+U2VsZWN0IFNlcnZlciBtb2RlLCB0eXBlIGEgcXVlcnksIGFuZCB3YXRjaCB0aGUgdGFibGUgZmV0Y2ggc2ltdWxhdGVkIHJlc3VsdHMuPC9wPlxuICAgICAgICA8ZGVlcy10YWJsZVxuICAgICAgICAgIGlkPVwic2VydmVyU2VhcmNoRGVtb1wiXG4gICAgICAgICAgaGVhZGluZzE9XCJQZW9wbGUgKFNlcnZlciBTZWFyY2gpXCJcbiAgICAgICAgICBoZWFkaW5nMj1cIkNsaWNrIFNlYXJjaCwgY2hvb3NlIFNlcnZlciBtb2RlLCBhbmQgdHlwZVwiXG4gICAgICAgICAgLmNvbHVtbnM9JHtbXG4gICAgICAgICAgICB7IGtleTogJ25hbWUnLCBoZWFkZXI6ICdOYW1lJyB9LFxuICAgICAgICAgICAgeyBrZXk6ICdjaXR5JywgaGVhZGVyOiAnQ2l0eScgfSxcbiAgICAgICAgICAgIHsga2V5OiAndGl0bGUnLCBoZWFkZXI6ICdUaXRsZScgfSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIC5kYXRhPSR7W1xuICAgICAgICAgICAgeyBpZDogMSwgbmFtZTogJ0FsaWNlJywgY2l0eTogJ0JlcmxpbicsIHRpdGxlOiAnRW5naW5lZXInIH0sXG4gICAgICAgICAgICB7IGlkOiAyLCBuYW1lOiAnQm9iJywgY2l0eTogJ1BhcmlzJywgdGl0bGU6ICdEZXNpZ25lcicgfSxcbiAgICAgICAgICAgIHsgaWQ6IDMsIG5hbWU6ICdDaGFybGllJywgY2l0eTogJ0xvbmRvbicsIHRpdGxlOiAnTWFuYWdlcicgfSxcbiAgICAgICAgICAgIHsgaWQ6IDQsIG5hbWU6ICdEaWFuYScsIGNpdHk6ICdNYWRyaWQnLCB0aXRsZTogJ0VuZ2luZWVyJyB9LFxuICAgICAgICAgICAgeyBpZDogNSwgbmFtZTogJ0V0aGFuJywgY2l0eTogJ1JvbWUnLCB0aXRsZTogJ1N1cHBvcnQnIH0sXG4gICAgICAgICAgXX1cbiAgICAgICAgICBkYXRhTmFtZT1cInBlb3BsZVwiXG4gICAgICAgID48L2RlZXMtdGFibGU+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlbW8tc2VjdGlvblwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJkZW1vLXRpdGxlXCI+V2lkZSBQcm9wZXJ0aWVzICsgTWFueSBBY3Rpb25zPC9oMj5cbiAgICAgICAgPHAgY2xhc3M9XCJkZW1vLWRlc2NyaXB0aW9uXCI+QSB0YWJsZSB3aXRoIG1hbnkgY29sdW1ucyBhbmQgcmljaCBhY3Rpb25zIHRvIHN0cmVzcyB0ZXN0IGxheW91dCBhbmQgc3RpY2t5IEFjdGlvbnMuPC9wPlxuICAgICAgICA8ZGVlcy10YWJsZVxuICAgICAgICAgIGhlYWRpbmcxPVwiUGVvcGxlIERpcmVjdG9yeVwiXG4gICAgICAgICAgaGVhZGluZzI9XCJNYW55IHByb3BlcnRpZXMgYW5kIGFjdGlvbnNcIlxuICAgICAgICAgIC5jb2x1bW5zPSR7W1xuICAgICAgICAgICAgeyBrZXk6ICdpZCcsIGhlYWRlcjogJ0lEJywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsga2V5OiAnbmFtZScsIGhlYWRlcjogJ05hbWUnLCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBrZXk6ICdyb2xlJywgaGVhZGVyOiAnUm9sZScsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IGtleTogJ2RlcGFydG1lbnQnLCBoZWFkZXI6ICdEZXBhcnRtZW50Jywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsga2V5OiAnZW1haWwnLCBoZWFkZXI6ICdFbWFpbCcgfSxcbiAgICAgICAgICAgIHsga2V5OiAncGhvbmUnLCBoZWFkZXI6ICdQaG9uZScgfSxcbiAgICAgICAgICAgIHsga2V5OiAnbG9jYXRpb24nLCBoZWFkZXI6ICdMb2NhdGlvbicsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IGtleTogJ3N0YXR1cycsIGhlYWRlcjogJ1N0YXR1cycsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IGtleTogJ2NyZWF0ZWRBdCcsIGhlYWRlcjogJ0NyZWF0ZWQnLCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBrZXk6ICd1cGRhdGVkQXQnLCBoZWFkZXI6ICdVcGRhdGVkJywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsga2V5OiAnbGFzdExvZ2luJywgaGVhZGVyOiAnTGFzdCBMb2dpbicsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IGtleTogJ3Byb2plY3RzJywgaGVhZGVyOiAnUHJvamVjdHMnIH0sXG4gICAgICAgICAgICB7IGtleTogJ3RhZ3MnLCBoZWFkZXI6ICdUYWdzJyB9LFxuICAgICAgICAgICAgeyBrZXk6ICdub3RlcycsIGhlYWRlcjogJ05vdGVzJyB9LFxuICAgICAgICAgIF19XG4gICAgICAgICAgLmRhdGE9JHtbXG4gICAgICAgICAgICB7IGlkOiAxLCBuYW1lOiAnQWxpY2UgSm9obnNvbicsIHJvbGU6ICdFbmdpbmVlcicsIGRlcGFydG1lbnQ6ICdSJkQnLCBlbWFpbDogJ2FsaWNlQGNvcnAuY29tJywgcGhvbmU6ICcrMSAyMDIgNTU1IDAxMTEnLCBsb2NhdGlvbjogJ0JlcmxpbicsIHN0YXR1czogJ0FjdGl2ZScsIGNyZWF0ZWRBdDogJzIwMjMtMDEtMTInLCB1cGRhdGVkQXQ6ICcyMDI0LTA1LTAzJywgbGFzdExvZ2luOiAnMjAyNC0xMC0wMScsIHByb2plY3RzOiA1LCB0YWdzOiAndHlwZXNjcmlwdCwgdWknLCBub3RlczogJ01lbnRvcicgfSxcbiAgICAgICAgICAgIHsgaWQ6IDIsIG5hbWU6ICdCb2IgU21pdGgnLCByb2xlOiAnRGVzaWduZXInLCBkZXBhcnRtZW50OiAnRGVzaWduJywgZW1haWw6ICdib2JAY29ycC5jb20nLCBwaG9uZTogJysxIDIwMiA1NTUgMDExMicsIGxvY2F0aW9uOiAnUGFyaXMnLCBzdGF0dXM6ICdBY3RpdmUnLCBjcmVhdGVkQXQ6ICcyMDIyLTExLTA1JywgdXBkYXRlZEF0OiAnMjAyNC0wNC0xMCcsIGxhc3RMb2dpbjogJzIwMjQtMDktMjgnLCBwcm9qZWN0czogOCwgdGFnczogJ2ZpZ21hLCBicmFuZCcsIG5vdGVzOiAnUGFydC10aW1lJyB9LFxuICAgICAgICAgICAgeyBpZDogMywgbmFtZTogJ0NoYXJsaWUgRGF2aXMnLCByb2xlOiAnTWFuYWdlcicsIGRlcGFydG1lbnQ6ICdPcHMnLCBlbWFpbDogJ2NoYXJsaWVAY29ycC5jb20nLCBwaG9uZTogJysxIDIwMiA1NTUgMDExMycsIGxvY2F0aW9uOiAnTG9uZG9uJywgc3RhdHVzOiAnT24gTGVhdmUnLCBjcmVhdGVkQXQ6ICcyMDIxLTA0LTIxJywgdXBkYXRlZEF0OiAnMjAyNC0wMi0xNScsIGxhc3RMb2dpbjogJzIwMjQtMDgtMTInLCBwcm9qZWN0czogMywgdGFnczogJ3NyZSwgbGVhZGVyc2hpcCcsIG5vdGVzOiAnJyB9LFxuICAgICAgICAgICAgeyBpZDogNCwgbmFtZTogJ0RpYW5hIE1hcnRpbmV6Jywgcm9sZTogJ0VuZ2luZWVyJywgZGVwYXJ0bWVudDogJ1BsYXRmb3JtJywgZW1haWw6ICdkaWFuYUBjb3JwLmNvbScsIHBob25lOiAnKzEgMjAyIDU1NSAwMTE0JywgbG9jYXRpb246ICdNYWRyaWQnLCBzdGF0dXM6ICdBY3RpdmUnLCBjcmVhdGVkQXQ6ICcyMDIwLTA2LTMwJywgdXBkYXRlZEF0OiAnMjAyNC0wNi0yNScsIGxhc3RMb2dpbjogJzIwMjQtMTAtMDInLCBwcm9qZWN0czogNiwgdGFnczogJ25vZGUsIGFwaScsIG5vdGVzOiAnT24tY2FsbCcgfSxcbiAgICAgICAgICAgIHsgaWQ6IDUsIG5hbWU6ICdFdGhhbiBCcm93bicsIHJvbGU6ICdTdXBwb3J0JywgZGVwYXJ0bWVudDogJ0NTJywgZW1haWw6ICdldGhhbkBjb3JwLmNvbScsIHBob25lOiAnKzEgMjAyIDU1NSAwMTE1JywgbG9jYXRpb246ICdSb21lJywgc3RhdHVzOiAnSW5hY3RpdmUnLCBjcmVhdGVkQXQ6ICcyMDE5LTA5LTE4JywgdXBkYXRlZEF0OiAnMjAyNC0wMy0wOScsIGxhc3RMb2dpbjogJzIwMjQtMDYtMTknLCBwcm9qZWN0czogMiwgdGFnczogJ3plbmRlc2snLCBub3RlczogJ1JlaGlyZScgfSxcbiAgICAgICAgICAgIHsgaWQ6IDYsIG5hbWU6ICdGaW9uYSBDbGFyaycsIHJvbGU6ICdRQScsIGRlcGFydG1lbnQ6ICdRQScsIGVtYWlsOiAnZmlvbmFAY29ycC5jb20nLCBwaG9uZTogJysxIDIwMiA1NTUgMDExNicsIGxvY2F0aW9uOiAnVmllbm5hJywgc3RhdHVzOiAnQWN0aXZlJywgY3JlYXRlZEF0OiAnMjAyMi0wMy0xNCcsIHVwZGF0ZWRBdDogJzIwMjQtMDMtMDEnLCBsYXN0TG9naW46ICcyMDI0LTA5LTA3JywgcHJvamVjdHM6IDcsIHRhZ3M6ICdwbGF5d3JpZ2h0Jywgbm90ZXM6ICcnIH0sXG4gICAgICAgICAgXX1cbiAgICAgICAgICAuZGF0YUFjdGlvbnM9JHtbXG4gICAgICAgICAgICB7IG5hbWU6ICdWaWV3JywgaWNvbk5hbWU6ICdsdWNpZGU6ZXllJywgdHlwZTogWydpblJvdycsICdjb250ZXh0bWVudSddLCBhY3Rpb25GdW5jOiBhc3luYyAoeyBpdGVtIH0pID0+IHsgY29uc29sZS5sb2coJ3ZpZXcnLCBpdGVtKTsgfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnRWRpdCcsIGljb25OYW1lOiAnbHVjaWRlOmVkaXQnLCB0eXBlOiBbJ2luUm93JywgJ2NvbnRleHRtZW51J10sIGFjdGlvbkZ1bmM6IGFzeW5jICh7IGl0ZW0gfSkgPT4geyBjb25zb2xlLmxvZygnZWRpdCcsIGl0ZW0pOyB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdEZWxldGUnLCBpY29uTmFtZTogJ2x1Y2lkZTp0cmFzaCcsIHR5cGU6IFsnaW5Sb3cnLCAnY29udGV4dG1lbnUnXSwgYWN0aW9uRnVuYzogYXN5bmMgKHsgaXRlbSB9KSA9PiB7IGNvbnNvbGUubG9nKCdkZWxldGUnLCBpdGVtKTsgfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnTWVzc2FnZScsIGljb25OYW1lOiAnbHVjaWRlOm1lc3NhZ2Utc3F1YXJlJywgdHlwZTogWydpblJvdyddLCBhY3Rpb25GdW5jOiBhc3luYyAoeyBpdGVtIH0pID0+IHsgY29uc29sZS5sb2coJ21lc3NhZ2UnLCBpdGVtKTsgfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnSGlzdG9yeScsIGljb25OYW1lOiAnbHVjaWRlOmNsb2NrJywgdHlwZTogWydpblJvdyddLCBhY3Rpb25GdW5jOiBhc3luYyAoeyBpdGVtIH0pID0+IHsgY29uc29sZS5sb2coJ2hpc3RvcnknLCBpdGVtKTsgfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnQWRkIE5ldycsIGljb25OYW1lOiAnbHVjaWRlOnBsdXMnLCB0eXBlOiBbJ2hlYWRlciddLCBhY3Rpb25GdW5jOiBhc3luYyAoeyB0YWJsZSB9KSA9PiB7IGNvbnNvbGUubG9nKCdhZGQnKTsgfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnRXhwb3J0IENTVicsIGljb25OYW1lOiAnbHVjaWRlOmRvd25sb2FkJywgdHlwZTogWydoZWFkZXInXSwgYWN0aW9uRnVuYzogYXN5bmMgKHsgdGFibGUgfSkgPT4geyBjb25zb2xlLmxvZygnZXhwb3J0Jyk7IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0J1bGsgRGVsZXRlJywgaWNvbk5hbWU6ICdsdWNpZGU6dHJhc2gtMicsIHR5cGU6IFsnZm9vdGVyJ10sIGFjdGlvbkZ1bmM6IGFzeW5jICh7IHRhYmxlIH0pID0+IHsgY29uc29sZS5sb2coJ2J1bGsgZGVsZXRlJyk7IH0gfSxcbiAgICAgICAgICBdIGFzIElUYWJsZUFjdGlvbltdfVxuICAgICAgICA+PC9kZWVzLXRhYmxlPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZGVtby10aXRsZVwiPlNjcm9sbGFibGUgU21hbGwgSGVpZ2h0PC9oMj5cbiAgICAgICAgPHAgY2xhc3M9XCJkZW1vLWRlc2NyaXB0aW9uXCI+U2FtZSBhcyBhYm92ZSwgYnV0IHdpdGggbWFueSBpdGVtcyBhbmQgYSBzbWFsbCBmaXhlZCBoZWlnaHQgdG8gZm9yY2UgdmVydGljYWwgc2Nyb2xsaW5nIGluc2lkZSB0aGUgdGFibGUuIEFjdGlvbnMgcmVtYWluIHZpc2libGUgb24gdGhlIHJpZ2h0OyBob3Jpem9udGFsIHNjcm9sbCBhcHBlYXJzIGlmIG5lZWRlZC48L3A+XG4gICAgICAgIDxzdHlsZT5cbiAgICAgICAgICAjc2Nyb2xsU21hbGxIZWlnaHQgeyAtLXRhYmxlLW1heC1oZWlnaHQ6IDI0MHB4OyB9XG4gICAgICAgIDwvc3R5bGU+XG4gICAgICAgIDxkZWVzLXRhYmxlXG4gICAgICAgICAgaWQ9XCJzY3JvbGxTbWFsbEhlaWdodFwiXG4gICAgICAgICAgLnN0aWNreUhlYWRlcj0ke3RydWV9XG4gICAgICAgICAgaGVhZGluZzE9XCJQZW9wbGUgRGlyZWN0b3J5IChTY3JvbGxhYmxlKVwiXG4gICAgICAgICAgaGVhZGluZzI9XCJGb3JjZWQgc2Nyb2xsaW5nIHdpdGggbWFueSBpdGVtc1wiXG4gICAgICAgICAgLmNvbHVtbnM9JHtbXG4gICAgICAgICAgICB7IGtleTogJ2lkJywgaGVhZGVyOiAnSUQnLCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBrZXk6ICduYW1lJywgaGVhZGVyOiAnTmFtZScsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IGtleTogJ3JvbGUnLCBoZWFkZXI6ICdSb2xlJywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsga2V5OiAnZGVwYXJ0bWVudCcsIGhlYWRlcjogJ0RlcGFydG1lbnQnLCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBrZXk6ICdlbWFpbCcsIGhlYWRlcjogJ0VtYWlsJyB9LFxuICAgICAgICAgICAgeyBrZXk6ICdwaG9uZScsIGhlYWRlcjogJ1Bob25lJyB9LFxuICAgICAgICAgICAgeyBrZXk6ICdsb2NhdGlvbicsIGhlYWRlcjogJ0xvY2F0aW9uJywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsga2V5OiAnc3RhdHVzJywgaGVhZGVyOiAnU3RhdHVzJywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsga2V5OiAnY3JlYXRlZEF0JywgaGVhZGVyOiAnQ3JlYXRlZCcsIHNvcnRhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IGtleTogJ3VwZGF0ZWRBdCcsIGhlYWRlcjogJ1VwZGF0ZWQnLCBzb3J0YWJsZTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBrZXk6ICdsYXN0TG9naW4nLCBoZWFkZXI6ICdMYXN0IExvZ2luJywgc29ydGFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsga2V5OiAncHJvamVjdHMnLCBoZWFkZXI6ICdQcm9qZWN0cycgfSxcbiAgICAgICAgICAgIHsga2V5OiAndGFncycsIGhlYWRlcjogJ1RhZ3MnIH0sXG4gICAgICAgICAgICB7IGtleTogJ25vdGVzJywgaGVhZGVyOiAnTm90ZXMnIH0sXG4gICAgICAgICAgXX1cbiAgICAgICAgICAuZGF0YT0ke0FycmF5LmZyb20oeyBsZW5ndGg6IDEwMCB9LCAoXywgaSkgPT4gKHtcbiAgICAgICAgICAgIGlkOiBpICsgMSxcbiAgICAgICAgICAgIG5hbWU6IGBVc2VyICR7aSArIDF9YCxcbiAgICAgICAgICAgIHJvbGU6IFsnRW5naW5lZXInLCdEZXNpZ25lcicsJ01hbmFnZXInLCdRQScsJ1N1cHBvcnQnXVtpICUgNV0sXG4gICAgICAgICAgICBkZXBhcnRtZW50OiBbJ1ImRCcsJ0Rlc2lnbicsJ09wcycsJ1FBJywnQ1MnXVtpICUgNV0sXG4gICAgICAgICAgICBlbWFpbDogYHVzZXIke2krMX1AY29ycC5jb21gLFxuICAgICAgICAgICAgcGhvbmU6IGArMSAyMDIgNTU1ICR7U3RyaW5nKDEwMDAgKyBpKS5zbGljZSgtNCl9YCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiBbJ0JlcmxpbicsJ1BhcmlzJywnTG9uZG9uJywnTWFkcmlkJywnUm9tZSddW2kgJSA1XSxcbiAgICAgICAgICAgIHN0YXR1czogWydBY3RpdmUnLCdJbmFjdGl2ZScsJ09uIExlYXZlJ11baSAlIDNdLFxuICAgICAgICAgICAgY3JlYXRlZEF0OiBgMjAyMy0ke1N0cmluZygoaSUxMikrMSkucGFkU3RhcnQoMiwnMCcpfS0ke1N0cmluZygoaSUyOCkrMSkucGFkU3RhcnQoMiwnMCcpfWAsXG4gICAgICAgICAgICB1cGRhdGVkQXQ6IGAyMDI0LSR7U3RyaW5nKCgoaSszKSUxMikrMSkucGFkU3RhcnQoMiwnMCcpfS0ke1N0cmluZygoKGkrNyklMjgpKzEpLnBhZFN0YXJ0KDIsJzAnKX1gLFxuICAgICAgICAgICAgbGFzdExvZ2luOiBgMjAyNC0ke1N0cmluZygoKGkrNiklMTIpKzEpLnBhZFN0YXJ0KDIsJzAnKX0tJHtTdHJpbmcoKChpKzEwKSUyOCkrMSkucGFkU3RhcnQoMiwnMCcpfWAsXG4gICAgICAgICAgICBwcm9qZWN0czogKGkgJSAxMiksXG4gICAgICAgICAgICB0YWdzOiBpICUgMiA/ICd0eXBlc2NyaXB0JyA6ICdkZXNpZ24nLFxuICAgICAgICAgICAgbm90ZXM6IGkgJSAzID8gJycgOiAnTm90ZScsXG4gICAgICAgICAgfSkpfVxuICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1tcbiAgICAgICAgICAgIHsgbmFtZTogJ1ZpZXcnLCBpY29uTmFtZTogJ2x1Y2lkZTpleWUnLCB0eXBlOiBbJ2luUm93J10sIGFjdGlvbkZ1bmM6IGFzeW5jICh7IGl0ZW0gfSkgPT4ge30gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ0VkaXQnLCBpY29uTmFtZTogJ2x1Y2lkZTplZGl0JywgdHlwZTogWydpblJvdyddLCBhY3Rpb25GdW5jOiBhc3luYyAoeyBpdGVtIH0pID0+IHt9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdEZWxldGUnLCBpY29uTmFtZTogJ2x1Y2lkZTp0cmFzaCcsIHR5cGU6IFsnaW5Sb3cnXSwgYWN0aW9uRnVuYzogYXN5bmMgKHsgaXRlbSB9KSA9PiB7fSB9LFxuICAgICAgICAgIF0gYXMgSVRhYmxlQWN0aW9uW119XG4gICAgICAgID48L2RlZXMtdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5gO1xuIiwgImltcG9ydCB7IGNzc01hbmFnZXIsIGNzcywgdHlwZSBDU1NSZXN1bHQgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgY3NzR2Vpc3RGb250RmFtaWx5IH0gZnJvbSAnLi4vMDBmb250cy5qcyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8wMHRoZW1lLmpzJztcblxuZXhwb3J0IGNvbnN0IHRhYmxlU3R5bGVzOiBDU1NSZXN1bHRbXSA9IFtcbiAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLm1haW5ib3gge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDMuOSUpJywgJ2hzbCgwIDAlIDk4JSknKX07XG4gICAgICAgIGZvbnQtZmFtaWx5OiAke2Nzc0dlaXN0Rm9udEZhbWlseX07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDAgMCUgMy45JSknKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTZweCAyNHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA2NHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5oZWFkaW5nQ29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cblxuICAgICAgLmhlYWRpbmcge1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgfVxuXG4gICAgICAuaGVhZGluZzEge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUpJywgJ2hzbCgwIDAlIDk1JSknKX07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmhlYWRpbmcyIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA1Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA1NS4xJSknKX07XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgIH1cblxuICAgICAgLmhlYWRpbmdTZXBhcmF0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlckFjdGlvbnMge1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5oZWFkZXJBY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA0NS4xJSknLCAnaHNsKDAgMCUgNjMuOSUpJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlckFjdGlvbjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUpJywgJ2hzbCgwIDAlIDk1JSknKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NS4xJSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA3OS44JSknLCAnaHNsKDAgMCUgMjAuOSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuaGVhZGVyQWN0aW9uIGRlZXMtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2hHcmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1nYXA6IDE2cHg7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIG1heC1jb250ZW50O1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDQwJSA5OCUpJywgJ2hzbCgwIDAlIDMuOSUpJyl9O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgICAgICAuc2VhcmNoR3JpZCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLyogbGV0IHNlYXJjaCBtb2RlIHNpemUgdG8gY29udGVudCAobm8gZm9yY2VkIHdpZHRoKSAqL1xuXG4gICAgICAuc2VhcmNoR3JpZC5oaWRkZW4ge1xuICAgICAgICBoZWlnaHQ6IDBweDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMHB4IDI0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcbiAgICAgIH1cblxuICAgICAgLnRhYmxlU2Nyb2xsIHtcbiAgICAgICAgLyogZW5hYmxlIGhvcml6b250YWwgc2Nyb2xsIG9ubHkgd2hlbiBjb250ZW50IGV4Y2VlZHMgd2lkdGggKi9cbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgLyogcHJldmVudCB2ZXJ0aWNhbCBzY3JvbGwgaW5zaWRlIHRoZSB0YWJsZSBjb250YWluZXIgKi9cbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICAvKiBhdm9pZCByZXNlcnZpbmcgZXh0cmEgc3BhY2UgZm9yIGNsYXNzaWMgc2Nyb2xsYmFycyB3aGVyZSBwb3NzaWJsZSAqL1xuICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGUgYm90aC1lZGdlcztcbiAgICAgIH1cbiAgICAgIC8qIEhpZGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgZW50aXJlbHkgd2hlbiBub3QgdXNpbmcgc3RpY2t5IGhlYWRlciAqL1xuICAgICAgOmhvc3QoOm5vdChbc3RpY2t5LWhlYWRlcl0pKSAudGFibGVTY3JvbGwge1xuICAgICAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIElFL0VkZ2UgKi9cbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAgIC8qIEZpcmVmb3ggKGhpZGVzIGJvdGggYXhlcykgKi9cbiAgICAgIH1cbiAgICAgIDpob3N0KDpub3QoW3N0aWNreS1oZWFkZXJdKSkgLnRhYmxlU2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IC8qIENocm9tZS9TYWZhcmkgKi9cbiAgICAgIH1cbiAgICAgIC8qIEluIHN0aWNreS1oZWFkZXIgbW9kZSwgaGlkZSBvbmx5IHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBpbiBXZWJLaXQvQmxpbmsgKi9cbiAgICAgIDpob3N0KFtzdGlja3ktaGVhZGVyXSkgLnRhYmxlU2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFsIHtcbiAgICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICB9XG4gICAgICA6aG9zdChbc3RpY2t5LWhlYWRlcl0pIC50YWJsZVNjcm9sbCB7XG4gICAgICAgIG1heC1oZWlnaHQ6IHZhcigtLXRhYmxlLW1heC1oZWlnaHQsIDM2MHB4KTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIHRhYmxlIHtcbiAgICAgICAgLyogYWxsb3cgdGFibGUgdG8gZ3JvdyB3aWRlciB0aGFuIGNvbnRhaW5lciBzbyBhY3Rpb25zIGNvbHVtbiBjYW4gc3RpY2sgKi9cbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIGNhcHRpb24tc2lkZTogYm90dG9tO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAubm9EYXRhU2V0IHtcbiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS40IDE2LjMlIDU2LjklKScsICdoc2woMjE1IDIwLjIlIDU1LjElKScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGhlYWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUpJywgJ2hzbCgwIDAlIDklKScpfTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA3OS44JSknLCAnaHNsKDAgMCUgMjAuOSUpJyl9O1xuICAgICAgfVxuICAgICAgOmhvc3QoW3N0aWNreS1oZWFkZXJdKSB0aGVhZCB0aCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGJvZHkgdHIge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLyogRGVmYXVsdCBob3Jpem9udGFsIGxpbmVzIChib3R0b20gYm9yZGVyIG9ubHkpICovXG4gICAgICB0Ym9keSB0ciB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIEZ1bGwgaG9yaXpvbnRhbCBsaW5lcyB3aGVuIGVuYWJsZWQgKi9cbiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0ciB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICA6aG9zdChbc2hvdy1ob3Jpem9udGFsLWxpbmVzXSkgdGJvZHkgdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgfVxuICAgICAgXG4gICAgICA6aG9zdChbc2hvdy1ob3Jpem9udGFsLWxpbmVzXSkgdGJvZHkgdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGJvZHkgdHI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUgLyAwLjUpJywgJ2hzbCgwIDAlIDE0LjklIC8gMC41KScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLyogQ29sdW1uIGhvdmVyIGVmZmVjdCBmb3IgYmV0dGVyIHRyYWNlYWJpbGl0eSAqL1xuICAgICAgdGQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHRkOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgNDAlIDk2LjElIC8gMC4zKScsICdoc2woMCAwJSAxNC45JSAvIDAuMyknKX07XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgfVxuICAgICAgXG4gICAgICB0ZDpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBHcmlkIG1vZGUgLSBzaG93cyBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGxpbmVzICovXG4gICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGgge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0ZCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRoOmZpcnN0LWNoaWxkLFxuICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLyogU3RpY2t5IEFjdGlvbnMgY29sdW1uIChyaWdodCBwaW5uZWQpICovXG4gICAgICB0aGVhZCB0aC5hY3Rpb25zQ29sLFxuICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDAgMCUgMy45JSknKX07XG4gICAgICB9XG4gICAgICB0aGVhZCB0aC5hY3Rpb25zQ29sIHsgei1pbmRleDogMzsgfVxuICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGJveC1zaGFkb3c6IC0xcHggMCAwIDAgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIHRib2R5IHRyLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgNDAlIDk2LjElKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICB9XG5cbiAgICAgIHRib2R5IHRyLmhhc0F0dGFjaG1lbnQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKScsICdoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpJyl9O1xuICAgICAgfVxuXG4gICAgICB0aCB7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA0Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICAgICAgfVxuICAgICAgXG4gICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDMuOSUpJywgJ2hzbCgwIDAlIDk4JSknKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGg6Zmlyc3QtY2hpbGQsXG4gICAgICB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGg6bGFzdC1jaGlsZCxcbiAgICAgIHRkOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoOmxhc3QtY2hpbGQsXG4gICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRkOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5pbm5lckNlbGxDb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgfVxuICAgICAgdGQgaW5wdXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNHB4O1xuICAgICAgICBib3R0b206IDRweDtcbiAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4cHgpO1xuICAgICAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSA5JSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMy45JSknLCAnaHNsKDAgMCUgOTglKScpfTtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGQgaW5wdXQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUpJywgJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSknKX07XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjIpJywgJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMiknKX07XG4gICAgICB9XG5cbiAgICAgIC8qIGZpbHRlciByb3cgKi9cbiAgICAgIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGgge1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweCAxMnB4IDEycHg7XG4gICAgICB9XG4gICAgICB0aGVhZCB0ci5maWx0ZXJzUm93IHRoIGlucHV0W3R5cGU9J3RleHQnXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSA5JSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMy45JSknLCAnaHNsKDAgMCUgOTglKScpfTtcbiAgICAgIH1cbiAgICAgIC5hY3Rpb25zQ29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5hY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA0Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUpJywgJ2hzbCgwIDAlIDExLjglKScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmFjdGlvbiBkZWVzLWljb24ge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAuZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBoZWlnaHQ6IDUycHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA0Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDQwJSA5Ni4xJSknLCAnaHNsKDAgMCUgOSUpJyl9O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC50YWJsZVN0YXRpc3RpY3Mge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuXG4gICAgICAuZm9vdGVyQWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAuZm9vdGVyQWN0aW9ucyAuZm9vdGVyQWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA0Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUuMSUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbiBkZWVzLWljb24ge1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgfVxuICBgLFxuXTtcbiIsICJpbXBvcnQgdHlwZSB7IENvbHVtbiwgVERpc3BsYXlGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUNvbHVtbnNGcm9tRGlzcGxheUZ1bmN0aW9uPFQ+KFxuICBkaXNwbGF5RnVuY3Rpb246IFREaXNwbGF5RnVuY3Rpb248VD4sXG4gIGRhdGE6IFRbXVxuKTogQ29sdW1uPFQ+W10ge1xuICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHJldHVybiBbXTtcbiAgY29uc3QgZmlyc3RUcmFuc2Zvcm1lZEl0ZW0gPSBkaXNwbGF5RnVuY3Rpb24oZGF0YVswXSk7XG4gIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoZmlyc3RUcmFuc2Zvcm1lZEl0ZW0pO1xuICByZXR1cm4ga2V5cy5tYXAoKGtleSkgPT4gKHtcbiAgICBrZXksXG4gICAgaGVhZGVyOiBrZXksXG4gICAgdmFsdWU6IChyb3c6IFQpID0+IGRpc3BsYXlGdW5jdGlvbihyb3cpW2tleV0sXG4gIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVFZmZlY3RpdmVDb2x1bW5zPFQ+KFxuICBjb2x1bW5zOiBDb2x1bW48VD5bXSB8IHVuZGVmaW5lZCxcbiAgYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb246IGJvb2xlYW4sXG4gIGRpc3BsYXlGdW5jdGlvbjogVERpc3BsYXlGdW5jdGlvbjxUPixcbiAgZGF0YTogVFtdXG4pOiBDb2x1bW48VD5bXSB7XG4gIGNvbnN0IGJhc2UgPSAoY29sdW1ucyB8fCBbXSkuc2xpY2UoKTtcbiAgaWYgKCFhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbikgcmV0dXJuIGJhc2U7XG4gIGNvbnN0IGZyb21EaXNwbGF5ID0gY29tcHV0ZUNvbHVtbnNGcm9tRGlzcGxheUZ1bmN0aW9uKGRpc3BsYXlGdW5jdGlvbiwgZGF0YSk7XG4gIGNvbnN0IGV4aXN0aW5nS2V5cyA9IG5ldyBTZXQoYmFzZS5tYXAoKGMpID0+IFN0cmluZyhjLmtleSkpKTtcbiAgZm9yIChjb25zdCBjb2wgb2YgZnJvbURpc3BsYXkpIHtcbiAgICBpZiAoIWV4aXN0aW5nS2V5cy5oYXMoU3RyaW5nKGNvbC5rZXkpKSkge1xuICAgICAgYmFzZS5wdXNoKGNvbCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBiYXNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2VsbFZhbHVlPFQ+KHJvdzogVCwgY29sOiBDb2x1bW48VD4sIGRpc3BsYXlGdW5jdGlvbj86IFREaXNwbGF5RnVuY3Rpb248VD4pOiBhbnkge1xuICByZXR1cm4gY29sLnZhbHVlID8gY29sLnZhbHVlKHJvdykgOiAocm93IGFzIGFueSlbY29sLmtleSBhcyBhbnldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld0RhdGE8VD4oXG4gIGRhdGE6IFRbXSxcbiAgZWZmZWN0aXZlQ29sdW1uczogQ29sdW1uPFQ+W10sXG4gIHNvcnRLZXk/OiBzdHJpbmcsXG4gIHNvcnREaXI/OiAnYXNjJyB8ICdkZXNjJyB8IG51bGwsXG4gIGZpbHRlclRleHQ/OiBzdHJpbmcsXG4gIGNvbHVtbkZpbHRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBmaWx0ZXJNb2RlOiAndGFibGUnIHwgJ2RhdGEnID0gJ3RhYmxlJyxcbiAgbHVjZW5lUHJlZGljYXRlPzogKHJvdzogVCkgPT4gYm9vbGVhblxuKTogVFtdIHtcbiAgbGV0IGFyciA9IGRhdGEuc2xpY2UoKTtcbiAgY29uc3QgZnQgPSAoZmlsdGVyVGV4dCB8fCAnJykudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IGNmID0gY29sdW1uRmlsdGVycyB8fCB7fTtcbiAgY29uc3QgY2ZLZXlzID0gT2JqZWN0LmtleXMoY2YpLmZpbHRlcigoaykgPT4gKGNmW2tdID8/ICcnKS50cmltKCkubGVuZ3RoID4gMCk7XG4gIGlmIChmdCB8fCBjZktleXMubGVuZ3RoID4gMCkge1xuICAgIGFyciA9IGFyci5maWx0ZXIoKHJvdykgPT4ge1xuICAgICAgLy8gY29sdW1uIGZpbHRlcnMgKEFORCBhY3Jvc3MgY29sdW1ucylcbiAgICAgIGZvciAoY29uc3QgayBvZiBjZktleXMpIHtcbiAgICAgICAgaWYgKGZpbHRlck1vZGUgPT09ICdkYXRhJykge1xuICAgICAgICAgIC8vIHJhdyBvYmplY3QgY2hlY2sgZm9yIHRoYXQga2V5XG4gICAgICAgICAgY29uc3QgdmFsID0gKHJvdyBhcyBhbnkpW2tdO1xuICAgICAgICAgIGNvbnN0IHMgPSBTdHJpbmcodmFsID8/ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIGNvbnN0IG5lZWRsZSA9IFN0cmluZyhjZltrXSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBpZiAoIXMuaW5jbHVkZXMobmVlZGxlKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGNvbCA9IGVmZmVjdGl2ZUNvbHVtbnMuZmluZCgoYykgPT4gU3RyaW5nKGMua2V5KSA9PT0gayk7XG4gICAgICAgICAgaWYgKCFjb2wgfHwgY29sLmhpZGRlbiB8fCBjb2wuZmlsdGVyYWJsZSA9PT0gZmFsc2UpIGNvbnRpbnVlO1xuICAgICAgICAgIGNvbnN0IHZhbCA9IGdldENlbGxWYWx1ZShyb3csIGNvbCk7XG4gICAgICAgICAgY29uc3QgcyA9IFN0cmluZyh2YWwgPz8gJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgY29uc3QgbmVlZGxlID0gU3RyaW5nKGNmW2tdKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIGlmICghcy5pbmNsdWRlcyhuZWVkbGUpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIGdsb2JhbCBmaWx0ZXIgKE9SIGFjcm9zcyB2aXNpYmxlIGNvbHVtbnMpIG9yIGx1Y2VuZSBwcmVkaWNhdGVcbiAgICAgIGlmIChmdCkge1xuICAgICAgICBpZiAobHVjZW5lUHJlZGljYXRlKSB7XG4gICAgICAgICAgaWYgKCFsdWNlbmVQcmVkaWNhdGUocm93KSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBhbnkgPSBmYWxzZTtcbiAgICAgICAgaWYgKGZpbHRlck1vZGUgPT09ICdkYXRhJykge1xuICAgICAgICAgIGZvciAoY29uc3QgdmFsIG9mIE9iamVjdC52YWx1ZXMocm93IGFzIGFueSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHMgPSBTdHJpbmcodmFsID8/ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgaWYgKHMuaW5jbHVkZXMoZnQpKSB7IGFueSA9IHRydWU7IGJyZWFrOyB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvciAoY29uc3QgY29sIG9mIGVmZmVjdGl2ZUNvbHVtbnMpIHtcbiAgICAgICAgICAgIGlmIChjb2wuaGlkZGVuKSBjb250aW51ZTtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGdldENlbGxWYWx1ZShyb3csIGNvbCk7XG4gICAgICAgICAgICBjb25zdCBzID0gU3RyaW5nKHZhbCA/PyAnJykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChzLmluY2x1ZGVzKGZ0KSkgeyBhbnkgPSB0cnVlOyBicmVhazsgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFueSkgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cbiAgaWYgKCFzb3J0S2V5IHx8ICFzb3J0RGlyKSByZXR1cm4gYXJyO1xuICBjb25zdCBjb2wgPSBlZmZlY3RpdmVDb2x1bW5zLmZpbmQoKGMpID0+IFN0cmluZyhjLmtleSkgPT09IHNvcnRLZXkpO1xuICBpZiAoIWNvbCkgcmV0dXJuIGFycjtcbiAgY29uc3QgZGlyID0gc29ydERpciA9PT0gJ2FzYycgPyAxIDogLTE7XG4gIGFyci5zb3J0KChhLCBiKSA9PiB7XG4gICAgY29uc3QgdmEgPSBnZXRDZWxsVmFsdWUoYSwgY29sKTtcbiAgICBjb25zdCB2YiA9IGdldENlbGxWYWx1ZShiLCBjb2wpO1xuICAgIGlmICh2YSA9PSBudWxsICYmIHZiID09IG51bGwpIHJldHVybiAwO1xuICAgIGlmICh2YSA9PSBudWxsKSByZXR1cm4gLTEgKiBkaXI7XG4gICAgaWYgKHZiID09IG51bGwpIHJldHVybiAxICogZGlyO1xuICAgIGlmICh0eXBlb2YgdmEgPT09ICdudW1iZXInICYmIHR5cGVvZiB2YiA9PT0gJ251bWJlcicpIHJldHVybiAodmEgLSB2YikgKiBkaXI7XG4gICAgY29uc3Qgc2EgPSBTdHJpbmcodmEpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3Qgc2IgPSBTdHJpbmcodmIpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHNhIDwgc2IpIHJldHVybiAtMSAqIGRpcjtcbiAgICBpZiAoc2EgPiBzYikgcmV0dXJuIDEgKiBkaXI7XG4gICAgcmV0dXJuIDA7XG4gIH0pO1xuICByZXR1cm4gYXJyO1xufVxuIiwgImltcG9ydCB0eXBlIHsgQ29sdW1uIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbnR5cGUgRmlsdGVyTW9kZSA9ICd0YWJsZScgfCAnZGF0YSc7XG5cbmV4cG9ydCB0eXBlIFJvd1ByZWRpY2F0ZTxUPiA9IChyb3c6IFQpID0+IGJvb2xlYW47XG5cbmludGVyZmFjZSBUZXJtIHtcbiAgZmllbGQ/OiBzdHJpbmc7IC8vIGlmIHVuZGVmaW5lZCwgbWF0Y2ggYWNyb3NzIGFsbCBmaWVsZHNcbiAgdmFsdWU/OiBzdHJpbmc7IC8vIGxvd2VyY2FzZWQgc3RyaW5nXG4gIG5lZ2F0ZT86IGJvb2xlYW47XG4gIHJhbmdlPzogeyBsb3dlcjogc3RyaW5nOyB1cHBlcjogc3RyaW5nOyBpbmNsdXNpdmU6IGJvb2xlYW4gfTtcbn1cblxuaW50ZXJmYWNlIENsYXVzZSB7XG4gIHRlcm1zOiBUZXJtW107IC8vIEFORCBhY3Jvc3MgdGVybXNcbn1cblxuaW50ZXJmYWNlIEx1Y2VuZVF1ZXJ5IHtcbiAgY2xhdXNlczogQ2xhdXNlW107IC8vIE9SIGFjcm9zcyBjbGF1c2VzXG59XG5cbmZ1bmN0aW9uIHN0cmlwUXVvdGVzKHM6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICgocy5zdGFydHNXaXRoKCdcIicpICYmIHMuZW5kc1dpdGgoJ1wiJykpIHx8IChzLnN0YXJ0c1dpdGgoXCInXCIpICYmIHMuZW5kc1dpdGgoXCInXCIpKSkge1xuICAgIHJldHVybiBzLnNsaWNlKDEsIC0xKTtcbiAgfVxuICByZXR1cm4gcztcbn1cblxuZnVuY3Rpb24gc3BsaXRCeU9yKGlucHV0OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBpbnB1dC5zcGxpdCgvXFxzK09SXFxzKy9pKS5tYXAoKHMpID0+IHMudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik7XG59XG5cbmZ1bmN0aW9uIHNwbGl0QnlBbmQoaW5wdXQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGlucHV0LnNwbGl0KC9cXHMrQU5EXFxzKy9pKS5tYXAoKHMpID0+IHMudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVGVybShyYXc6IHN0cmluZyk6IFRlcm0gfCBudWxsIHtcbiAgaWYgKCFyYXcpIHJldHVybiBudWxsO1xuICBsZXQgbmVnYXRlID0gZmFsc2U7XG4gIC8vIGhhbmRsZSBOT1QgcHJlZml4IG9yIGxlYWRpbmcgJy0nXG4gIGNvbnN0IG5vdE1hdGNoID0gcmF3Lm1hdGNoKC9eXFxzKihOT1RcXHMrfC0pXFxzKiguKikkL2kpO1xuICBpZiAobm90TWF0Y2gpIHtcbiAgICBuZWdhdGUgPSB0cnVlO1xuICAgIHJhdyA9IG5vdE1hdGNoWzJdO1xuICB9XG4gIC8vIHJhbmdlOiBmaWVsZDpbbG93ZXIgVE8gdXBwZXJdXG4gIGNvbnN0IHJhbmdlTWF0Y2ggPSByYXcubWF0Y2goL14oW146XFxzXSspXFxzKjpcXHMqXFxbKC4qPylcXHMrVE9cXHMrKC4qPylcXF0kL2kpO1xuICBpZiAocmFuZ2VNYXRjaCkge1xuICAgIHJldHVybiB7XG4gICAgICBmaWVsZDogcmFuZ2VNYXRjaFsxXSxcbiAgICAgIG5lZ2F0ZSxcbiAgICAgIHJhbmdlOiB7IGxvd2VyOiBzdHJpcFF1b3RlcyhyYW5nZU1hdGNoWzJdKS50b0xvd2VyQ2FzZSgpLCB1cHBlcjogc3RyaXBRdW90ZXMocmFuZ2VNYXRjaFszXSkudG9Mb3dlckNhc2UoKSwgaW5jbHVzaXZlOiB0cnVlIH0sXG4gICAgfTtcbiAgfVxuICAvLyBmaWVsZDp2YWx1ZSAodmFsdWUgbWF5IGJlIHF1b3RlZClcbiAgY29uc3QgbSA9IHJhdy5tYXRjaCgvXihbXjpcXHNdKylcXHMqOlxccyooXCJbXlwiXSpcInwnW14nXSonfFteXCInXFxzXSspJC8pO1xuICBpZiAobSkge1xuICAgIHJldHVybiB7IGZpZWxkOiBtWzFdLCB2YWx1ZTogc3RyaXBRdW90ZXMobVsyXSkudG9Mb3dlckNhc2UoKSwgbmVnYXRlIH07XG4gIH1cbiAgLy8gcGxhaW4gdGVybVxuICBpZiAocmF3Lmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4geyB2YWx1ZTogc3RyaXBRdW90ZXMocmF3KS50b0xvd2VyQ2FzZSgpLCBuZWdhdGUgfTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gcGFyc2VMdWNlbmUoaW5wdXQ6IHN0cmluZyk6IEx1Y2VuZVF1ZXJ5IHwgbnVsbCB7XG4gIGlmICghaW5wdXQpIHJldHVybiBudWxsO1xuICBjb25zdCBjbGF1c2VzID0gc3BsaXRCeU9yKGlucHV0KS5tYXAoKGNsYXVzZVN0cikgPT4ge1xuICAgIGNvbnN0IHRlcm1zID0gc3BsaXRCeUFuZChjbGF1c2VTdHIpXG4gICAgICAubWFwKHBhcnNlVGVybSlcbiAgICAgIC5maWx0ZXIoKHQpOiB0IGlzIFRlcm0gPT4gISF0ICYmICEhdC52YWx1ZSk7XG4gICAgcmV0dXJuIHsgdGVybXMgfSBhcyBDbGF1c2U7XG4gIH0pLmZpbHRlcigoYykgPT4gYy50ZXJtcy5sZW5ndGggPiAwKTtcbiAgaWYgKGNsYXVzZXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIHsgY2xhdXNlcyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZUx1Y2VuZVByZWRpY2F0ZTxUPihcbiAgaW5wdXQ6IHN0cmluZyxcbiAgbW9kZTogRmlsdGVyTW9kZSxcbiAgY29sdW1uczogQ29sdW1uPFQ+W11cbik6IFJvd1ByZWRpY2F0ZTxUPiB8IG51bGwge1xuICBjb25zdCBhc3QgPSBwYXJzZUx1Y2VuZShpbnB1dCk7XG4gIGlmICghYXN0KSByZXR1cm4gbnVsbDtcbiAgY29uc3QgY29sTWFwID0gbmV3IE1hcDxzdHJpbmcsIENvbHVtbjxUPj4oXG4gICAgY29sdW1ucy5tYXAoKGMpID0+IFtTdHJpbmcoYy5rZXkpLCBjXSlcbiAgKTtcbiAgY29uc3QgY21wID0gKGE6IHN0cmluZywgYjogc3RyaW5nKSA9PiAoYSA8IGIgPyAtMSA6IGEgPiBiID8gMSA6IDApO1xuICBjb25zdCBjb2VyY2UgPSAoczogYW55KSA9PiB7XG4gICAgY29uc3Qgc3RyID0gU3RyaW5nKHMgPz8gJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgbnVtID0gTnVtYmVyKHN0cik7XG4gICAgY29uc3QgZGF0ZSA9IERhdGUucGFyc2Uoc3RyKTtcbiAgICBpZiAoIU51bWJlci5pc05hTihudW0pICYmIHN0ci50cmltKCkgIT09ICcnKSByZXR1cm4geyB0OiAnbicgYXMgY29uc3QsIHY6IG51bSB9O1xuICAgIGlmICghTnVtYmVyLmlzTmFOKGRhdGUpKSByZXR1cm4geyB0OiAnZCcgYXMgY29uc3QsIHY6IGRhdGUgfTtcbiAgICByZXR1cm4geyB0OiAncycgYXMgY29uc3QsIHY6IHN0ciB9O1xuICB9O1xuICBjb25zdCBpblJhbmdlID0gKHZhbDogYW55LCBsb3dlcjogc3RyaW5nLCB1cHBlcjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgYSA9IGNvZXJjZSh2YWwpO1xuICAgIGNvbnN0IGxvID0gY29lcmNlKGxvd2VyKTtcbiAgICBjb25zdCB1cCA9IGNvZXJjZSh1cHBlcik7XG4gICAgLy8gQWxsIHN0cmluZ3M6IGxleGljYWwgY29tcGFyZVxuICAgIGlmIChhLnQgPT09ICdzJyAmJiBsby50ID09PSAncycgJiYgdXAudCA9PT0gJ3MnKSB7XG4gICAgICBjb25zdCBhdiA9IGEudiBhcyBzdHJpbmc7XG4gICAgICByZXR1cm4gY21wKGF2LCBsby52IGFzIHN0cmluZykgPj0gMCAmJiBjbXAoYXYsIHVwLnYgYXMgc3RyaW5nKSA8PSAwO1xuICAgIH1cbiAgICAvLyBBbGwgbnVtYmVyc1xuICAgIGlmIChhLnQgPT09ICduJyAmJiBsby50ID09PSAnbicgJiYgdXAudCA9PT0gJ24nKSB7XG4gICAgICBjb25zdCBhdiA9IGEudiBhcyBudW1iZXI7XG4gICAgICByZXR1cm4gYXYgPj0gKGxvLnYgYXMgbnVtYmVyKSAmJiBhdiA8PSAodXAudiBhcyBudW1iZXIpO1xuICAgIH1cbiAgICAvLyBBbGwgZGF0ZXMgKGFzIG51bWJlcnMpXG4gICAgaWYgKGEudCA9PT0gJ2QnICYmIGxvLnQgPT09ICdkJyAmJiB1cC50ID09PSAnZCcpIHtcbiAgICAgIGNvbnN0IGF2ID0gYS52IGFzIG51bWJlcjtcbiAgICAgIHJldHVybiBhdiA+PSAobG8udiBhcyBudW1iZXIpICYmIGF2IDw9ICh1cC52IGFzIG51bWJlcik7XG4gICAgfVxuICAgIC8vIEZhbGxiYWNrOiBjb21wYXJlIHN0cmluZyBmb3Jtc1xuICAgIGNvbnN0IGFzID0gU3RyaW5nKHZhbCA/PyAnJykudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gY21wKGFzLCBsb3dlcikgPj0gMCAmJiBjbXAoYXMsIHVwcGVyKSA8PSAwO1xuICB9O1xuICByZXR1cm4gKHJvdzogVCkgPT4ge1xuICAgIGZvciAoY29uc3QgY2xhdXNlIG9mIGFzdC5jbGF1c2VzKSB7XG4gICAgICBsZXQgY2xhdXNlT2sgPSB0cnVlO1xuICAgICAgZm9yIChjb25zdCB0ZXJtIG9mIGNsYXVzZS50ZXJtcykge1xuICAgICAgICBsZXQgb2sgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRlcm0ucmFuZ2UgJiYgdGVybS5maWVsZCkge1xuICAgICAgICAgIC8vIHJhbmdlIGNvbXBhcmUgb24gZmllbGRcbiAgICAgICAgICBpZiAobW9kZSA9PT0gJ2RhdGEnKSB7XG4gICAgICAgICAgICBvayA9IGluUmFuZ2UoKHJvdyBhcyBhbnkpW3Rlcm0uZmllbGRdLCB0ZXJtLnJhbmdlLmxvd2VyLCB0ZXJtLnJhbmdlLnVwcGVyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY29sID0gY29sTWFwLmdldCh0ZXJtLmZpZWxkKTtcbiAgICAgICAgICAgIGlmICghY29sIHx8IGNvbC5oaWRkZW4pIHsgb2sgPSBmYWxzZTsgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsID0gY29sLnZhbHVlID8gY29sLnZhbHVlKHJvdykgOiAocm93IGFzIGFueSlbY29sLmtleSBhcyBhbnldO1xuICAgICAgICAgICAgICBvayA9IGluUmFuZ2UodmFsLCB0ZXJtLnJhbmdlLmxvd2VyLCB0ZXJtLnJhbmdlLnVwcGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGVybS5maWVsZCAmJiB0ZXJtLnZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICBpZiAobW9kZSA9PT0gJ2RhdGEnKSB7XG4gICAgICAgICAgICBjb25zdCBzID0gU3RyaW5nKChyb3cgYXMgYW55KVt0ZXJtLmZpZWxkXSA/PyAnJykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIG9rID0gcy5pbmNsdWRlcyh0ZXJtLnZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY29sID0gY29sTWFwLmdldCh0ZXJtLmZpZWxkKTtcbiAgICAgICAgICAgIGlmICghY29sIHx8IGNvbC5oaWRkZW4gPT09IHRydWUpIHsgb2sgPSBmYWxzZTsgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbCA9IGNvbC52YWx1ZSA/IGNvbC52YWx1ZShyb3cpIDogKHJvdyBhcyBhbnkpW2NvbC5rZXkgYXMgYW55XTtcbiAgICAgICAgICAgICAgY29uc3QgcyA9IFN0cmluZyh2YWwgPz8gJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgIG9rID0gcy5pbmNsdWRlcyh0ZXJtLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGVybS52YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgLy8gc2VhcmNoIGFjcm9zcyBhbGwgdmlzaWJsZS9yYXcgZmllbGRzXG4gICAgICAgICAgaWYgKG1vZGUgPT09ICdkYXRhJykge1xuICAgICAgICAgICAgb2sgPSBPYmplY3QudmFsdWVzKHJvdyBhcyBhbnkpLnNvbWUoKHYpID0+IFN0cmluZyh2ID8/ICcnKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRlcm0udmFsdWUhKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9rID0gY29sdW1ucy5zb21lKChjb2wpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGNvbC5oaWRkZW4pIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgY29uc3QgdmFsID0gY29sLnZhbHVlID8gY29sLnZhbHVlKHJvdykgOiAocm93IGFzIGFueSlbY29sLmtleSBhcyBhbnldO1xuICAgICAgICAgICAgICBjb25zdCBzID0gU3RyaW5nKHZhbCA/PyAnJykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHMuaW5jbHVkZXModGVybS52YWx1ZSEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0ZXJtLm5lZ2F0ZSkgb2sgPSAhb2s7XG4gICAgICAgIGlmICghb2spIHsgY2xhdXNlT2sgPSBmYWxzZTsgYnJlYWs7IH1cbiAgICAgIH1cbiAgICAgIGlmIChjbGF1c2VPaykgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcbn1cbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLzAwcGx1Z2lucy5qcyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy10YWJsZS5kZW1vLmpzJztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIGh0bWwsIERlZXNFbGVtZW50LCBwcm9wZXJ0eSwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgZGlyZWN0aXZlcyB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmltcG9ydCB7IERlZXNDb250ZXh0bWVudSB9IGZyb20gJy4uL2RlZXMtY29udGV4dG1lbnUvZGVlcy1jb250ZXh0bWVudS5qcyc7XG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCB7IHR5cGUgVEljb25LZXkgfSBmcm9tICcuLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcbmltcG9ydCB7IHRhYmxlU3R5bGVzIH0gZnJvbSAnLi9zdHlsZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBDb2x1bW4sIElUYWJsZUFjdGlvbiwgSVRhYmxlQWN0aW9uRGF0YUFyZywgVERpc3BsYXlGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHtcbiAgY29tcHV0ZUNvbHVtbnNGcm9tRGlzcGxheUZ1bmN0aW9uIGFzIGNvbXB1dGVDb2x1bW5zRnJvbURpc3BsYXlGdW5jdGlvbkZuLFxuICBjb21wdXRlRWZmZWN0aXZlQ29sdW1ucyBhcyBjb21wdXRlRWZmZWN0aXZlQ29sdW1uc0ZuLFxuICBnZXRDZWxsVmFsdWUgYXMgZ2V0Q2VsbFZhbHVlRm4sXG4gIGdldFZpZXdEYXRhIGFzIGdldFZpZXdEYXRhRm4sXG59IGZyb20gJy4vZGF0YS5qcyc7XG5pbXBvcnQgeyBjb21waWxlTHVjZW5lUHJlZGljYXRlIH0gZnJvbSAnLi9sdWNlbmUuanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmV4cG9ydCB0eXBlIHsgQ29sdW1uLCBJVGFibGVBY3Rpb24sIElUYWJsZUFjdGlvbkRhdGFBcmcsIFREaXNwbGF5RnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy10YWJsZSc6IERlZXNUYWJsZTxhbnk+O1xuICB9XG59XG5cbi8vIGludGVyZmFjZXMgbW92ZWQgdG8gLi90eXBlcy50cyBhbmQgcmUtZXhwb3J0ZWQgYWJvdmVcblxuLy8gdGhlIHRhYmxlIGltcGxlbWVudGF0aW9uXG5AY3VzdG9tRWxlbWVudCgnZGVlcy10YWJsZScpXG5leHBvcnQgY2xhc3MgRGVlc1RhYmxlPFQ+IGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcblxuICAvLyBJTlNUQU5DRVxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IFN0cmluZyxcbiAgfSlcbiAgYWNjZXNzb3IgaGVhZGluZzE6IHN0cmluZyA9ICdoZWFkaW5nIDEnO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogU3RyaW5nLFxuICB9KVxuICBhY2Nlc3NvciBoZWFkaW5nMjogc3RyaW5nID0gJ2hlYWRpbmcgMic7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBBcnJheSxcbiAgfSlcbiAgYWNjZXNzb3IgZGF0YTogVFtdID0gW107XG5cbiAgLy8gZGVlcy1mb3JtIGNvbXBhdGliaWxpdHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0pXG4gIGFjY2Vzc29yIGtleTogc3RyaW5nO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogU3RyaW5nLFxuICB9KVxuICBhY2Nlc3NvciBsYWJlbDogc3RyaW5nO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSlcbiAgYWNjZXNzb3IgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0pXG4gIGFjY2Vzc29yIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGE7XG4gIH1cbiAgc2V0IHZhbHVlKF92YWx1ZUFyZykge31cbiAgcHVibGljIGNoYW5nZVN1YmplY3QgPSBuZXcgZG9tdG9vbHMucGx1Z2lucy5zbWFydHJ4LnJ4anMuU3ViamVjdDxEZWVzVGFibGU8VD4+KCk7XG4gIC8vIGVuZCBkZWVzLWZvcm0gY29tcGF0aWJpbGl0eSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBXaGF0IGRvZXMgYSByb3cgb2YgZGF0YSByZXByZXNlbnQ/XG4gICAqL1xuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICByZWZsZWN0OiB0cnVlLFxuICB9KVxuICBhY2Nlc3NvciBkYXRhTmFtZTogc3RyaW5nO1xuXG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9KVxuICBhY2Nlc3NvciBzZWFyY2hhYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IEFycmF5LFxuICB9KVxuICBhY2Nlc3NvciBkYXRhQWN0aW9uczogSVRhYmxlQWN0aW9uPFQ+W10gPSBbXTtcblxuICAvLyBzY2hlbWEtZmlyc3QgY29sdW1ucyBBUElcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBhY2Nlc3NvciBjb2x1bW5zOiBDb2x1bW48VD5bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBTdGFibGUgcm93IGlkZW50aXR5IGZvciBzZWxlY3Rpb24gYW5kIHVwZGF0ZXMuIElmIHByb3ZpZGVkIGFzIGEgZnVuY3Rpb24sXG4gICAqIGl0IGlzIG9ubHkgdXNhYmxlIGFzIGEgcHJvcGVydHkgKG5vdCB2aWEgYXR0cmlidXRlKS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgYWNjZXNzb3Igcm93S2V5OiBrZXlvZiBUIHwgKChyb3c6IFQpID0+IHN0cmluZykgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSBhbmQgY29sdW1ucyBhcmUgcHJvdmlkZWQsIG1lcmdlIGFueSBtaXNzaW5nIGNvbHVtbnMgZGlzY292ZXJlZFxuICAgKiB2aWEgZGlzcGxheUZ1bmN0aW9uIGludG8gdGhlIGVmZmVjdGl2ZSBzY2hlbWEuXG4gICAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHtcbiAgICBhdHRyaWJ1dGU6IGZhbHNlLFxuICB9KVxuICBhY2Nlc3NvciBkaXNwbGF5RnVuY3Rpb246IFREaXNwbGF5RnVuY3Rpb24gPSAoaXRlbUFyZzogVCkgPT4gaXRlbUFyZyBhcyBhbnk7XG5cbiAgQHByb3BlcnR5KHtcbiAgICBhdHRyaWJ1dGU6IGZhbHNlLFxuICB9KVxuICBhY2Nlc3NvciByZXZlcnNlRGlzcGxheUZ1bmN0aW9uOiAoaXRlbUFyZzogYW55KSA9PiBUID0gKGl0ZW1Bcmc6IGFueSkgPT4gaXRlbUFyZyBhcyBUO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogT2JqZWN0LFxuICB9KVxuICBhY2Nlc3NvciBzZWxlY3RlZERhdGFSb3c6IFQ7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBBcnJheSxcbiAgfSlcbiAgYWNjZXNzb3IgZWRpdGFibGVGaWVsZHM6IHN0cmluZ1tdID0gW107XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIHJlZmxlY3Q6IHRydWUsXG4gICAgYXR0cmlidXRlOiAnc2hvdy12ZXJ0aWNhbC1saW5lcydcbiAgfSlcbiAgYWNjZXNzb3Igc2hvd1ZlcnRpY2FsTGluZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgcmVmbGVjdDogdHJ1ZSxcbiAgICBhdHRyaWJ1dGU6ICdzaG93LWhvcml6b250YWwtbGluZXMnXG4gIH0pXG4gIGFjY2Vzc29yIHNob3dIb3Jpem9udGFsTGluZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgcmVmbGVjdDogdHJ1ZSxcbiAgICBhdHRyaWJ1dGU6ICdzaG93LWdyaWQnXG4gIH0pXG4gIGFjY2Vzc29yIHNob3dHcmlkOiBib29sZWFuID0gdHJ1ZTtcblxuICBwdWJsaWMgZmlsZXM6IEZpbGVbXSA9IFtdO1xuICBwdWJsaWMgZmlsZVdlYWtNYXAgPSBuZXcgV2Vha01hcCgpO1xuXG4gIHB1YmxpYyBkYXRhQ2hhbmdlU3ViamVjdCA9IG5ldyBkb210b29scy5wbHVnaW5zLnNtYXJ0cngucnhqcy5TdWJqZWN0KCk7XG5cbiAgLy8gc2ltcGxlIGNsaWVudC1zaWRlIHNvcnRpbmcgKFBoYXNlIDEpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgYWNjZXNzb3Igc29ydEtleTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIGFjY2Vzc29yIHNvcnREaXI6ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gc2ltcGxlIGNsaWVudC1zaWRlIGZpbHRlcmluZyAoUGhhc2UgMSlcbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIGZpbHRlclRleHQ6IHN0cmluZyA9ICcnO1xuICAvLyBwZXItY29sdW1uIHF1aWNrIGZpbHRlcnNcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBhY2Nlc3NvciBjb2x1bW5GaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ3Nob3ctY29sdW1uLWZpbHRlcnMnIH0pXG4gIGFjY2Vzc29yIHNob3dDb2x1bW5GaWx0ZXJzOiBib29sZWFuID0gZmFsc2U7XG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUsIGF0dHJpYnV0ZTogJ3N0aWNreS1oZWFkZXInIH0pXG4gIGFjY2Vzc29yIHN0aWNreUhlYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIHNlYXJjaCByb3cgc3RhdGVcbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIHNlYXJjaE1vZGU6ICd0YWJsZScgfCAnZGF0YScgfCAnc2VydmVyJyA9ICd0YWJsZSc7XG4gIHByaXZhdGUgX19zZWFyY2hUZXh0U3ViPzogeyB1bnN1YnNjcmliZT86ICgpID0+IHZvaWQgfTtcbiAgcHJpdmF0ZSBfX3NlYXJjaE1vZGVTdWI/OiB7IHVuc3Vic2NyaWJlPzogKCkgPT4gdm9pZCB9O1xuXG4gIC8vIHNlbGVjdGlvbiAoUGhhc2UgMSlcbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIHNlbGVjdGlvbk1vZGU6ICdub25lJyB8ICdzaW5nbGUnIHwgJ211bHRpJyA9ICdub25lJztcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBhY2Nlc3NvciBzZWxlY3RlZElkczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gIHByaXZhdGUgX3Jvd0lkTWFwID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBzdHJpbmc+KCk7XG4gIHByaXZhdGUgX3Jvd0lkQ291bnRlciA9IDA7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gdGFibGVTdHlsZXM7XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgdXNpbmdDb2x1bW5zID0gQXJyYXkuaXNBcnJheSh0aGlzLmNvbHVtbnMpICYmIHRoaXMuY29sdW1ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGVmZmVjdGl2ZUNvbHVtbnM6IENvbHVtbjxUPltdID0gdXNpbmdDb2x1bW5zXG4gICAgICA/IGNvbXB1dGVFZmZlY3RpdmVDb2x1bW5zRm4odGhpcy5jb2x1bW5zLCB0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLCB0aGlzLmRpc3BsYXlGdW5jdGlvbiwgdGhpcy5kYXRhKVxuICAgICAgOiBjb21wdXRlQ29sdW1uc0Zyb21EaXNwbGF5RnVuY3Rpb25Gbih0aGlzLmRpc3BsYXlGdW5jdGlvbiwgdGhpcy5kYXRhKTtcblxuICAgIGNvbnN0IGx1Y2VuZVByZWQgPSBjb21waWxlTHVjZW5lUHJlZGljYXRlPFQ+KFxuICAgICAgdGhpcy5maWx0ZXJUZXh0LFxuICAgICAgdGhpcy5zZWFyY2hNb2RlID09PSAnZGF0YScgPyAnZGF0YScgOiAndGFibGUnLFxuICAgICAgZWZmZWN0aXZlQ29sdW1uc1xuICAgICk7XG5cbiAgICBjb25zdCB2aWV3RGF0YSA9IGdldFZpZXdEYXRhRm4oXG4gICAgICB0aGlzLmRhdGEsXG4gICAgICBlZmZlY3RpdmVDb2x1bW5zLFxuICAgICAgdGhpcy5zb3J0S2V5LFxuICAgICAgdGhpcy5zb3J0RGlyLFxuICAgICAgdGhpcy5maWx0ZXJUZXh0LFxuICAgICAgdGhpcy5jb2x1bW5GaWx0ZXJzLFxuICAgICAgdGhpcy5zZWFyY2hNb2RlID09PSAnZGF0YScgPyAnZGF0YScgOiAndGFibGUnLFxuICAgICAgbHVjZW5lUHJlZCB8fCB1bmRlZmluZWRcbiAgICApO1xuICAgICh0aGlzIGFzIGFueSkuX2xhc3RWaWV3RGF0YSA9IHZpZXdEYXRhO1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cIm1haW5ib3hcIj5cbiAgICAgICAgPCEtLSB0aGUgaGVhZGluZyBwYXJ0IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdDb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nIGhlYWRpbmcxXCI+JHt0aGlzLmxhYmVsIHx8IHRoaXMuaGVhZGluZzF9PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZyBoZWFkaW5nMlwiPiR7dGhpcy5oZWFkaW5nMn08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyQWN0aW9uc1wiPlxuICAgICAgICAgICAgJHtkaXJlY3RpdmVzLnJlc29sdmVFeGVjKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzdWx0QXJyYXk6IFRlbXBsYXRlUmVzdWx0W10gPSBbXTtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5kYXRhQWN0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmICghYWN0aW9uLnR5cGUuaW5jbHVkZXMoJ2hlYWRlcicpKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICByZXN1bHRBcnJheS5wdXNoKFxuICAgICAgICAgICAgICAgICAgaHRtbGA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyQWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5hY3Rpb25GdW5jKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW06IHRoaXMuc2VsZWN0ZWREYXRhUm93LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFibGU6IHRoaXMsXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICR7YWN0aW9uLmljb25OYW1lXG4gICAgICAgICAgICAgICAgICAgICAgPyBodG1sYDxkZWVzLWljb24gLmljb25TaXplPSR7MTR9IC5pY29uPSR7YWN0aW9uLmljb25OYW1lfT48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgJHthY3Rpb24ubmFtZX1gXG4gICAgICAgICAgICAgICAgICAgICAgOiBhY3Rpb24ubmFtZX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHRBcnJheTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdTZXBhcmF0aW9uXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2hHcmlkIGhpZGRlblwiPlxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHRcbiAgICAgICAgICAgIC5sYWJlbD0keydsdWNlbmUgc3ludGF4IHNlYXJjaCd9XG4gICAgICAgICAgICAuZGVzY3JpcHRpb249JHtgXG4gICAgICAgICAgICAgIFlvdSBjYW4gdXNlIHRoZSBsdWNlbmUgc3ludGF4IHRvIHNlYXJjaCBmb3IgZGF0YSwgZS5nLjpcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIFxcYFxcYFxcYFxuICAgICAgICAgICAgICBuYW1lOiBcImpvaG5cIiBBTkQgYWdlOiAxOFxuICAgICAgICAgICAgICBcXGBcXGBcXGBcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICBgfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZVxuICAgICAgICAgICAgLmxhYmVsPSR7J3NlYXJjaCBtb2RlJ31cbiAgICAgICAgICAgIC5vcHRpb25zPSR7Wyd0YWJsZScsICdkYXRhJywgJ3NlcnZlciddfVxuICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7J3RhYmxlJ31cbiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke2BcbiAgICAgICAgICAgICAgVGhlcmUgYXJlIHRocmVlIGJhc2ljIG1vZGVzOlxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgKiB0YWJsZTogb25seSBzZWFyY2hlcyBkYXRhIGFscmVhZHkgaW4gdGhlIHRhYmxlXG4gICAgICAgICAgICAgICogZGF0YTogc2VhcmNoZXMgb3JpZ2luYWwgZGF0YSwgaWdub3JpbmcgdGFibGUgdHJhbnNmb3Jtc1xuICAgICAgICAgICAgICAqIHNlcnZlcjogc2VhcmNoZXMgZGF0YSBvbiB0aGUgc2VydmVyXG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIHRoZSBhY3R1YWwgdGFibGUgLS0+XG4gICAgICAgIDxzdHlsZT48L3N0eWxlPlxuICAgICAgICAke3RoaXMuZGF0YS5sZW5ndGggPiAwXG4gICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGVTY3JvbGxcIj5cbiAgICAgICAgICAgICAgPHRhYmxlPlxuICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6NDJweDsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5hcmVBbGxWaXNpYmxlU2VsZWN0ZWQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRldGVybWluYXRlPSR7dGhpcy5pc1Zpc2libGVTZWxlY3Rpb25JbmRldGVybWluYXRlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHsoZTogQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RWaXNpYmxlKGUuZGV0YWlsID09PSB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBodG1sYGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgICAgICAgICAgOiBodG1sYGB9XG4gICAgICAgICAgICAgICAgICAgICR7ZWZmZWN0aXZlQ29sdW1uc1xuICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGMpID0+ICFjLmhpZGRlbilcbiAgICAgICAgICAgICAgICAgICAgICAubWFwKChjb2wpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzU29ydGFibGUgPSAhIWNvbC5zb3J0YWJsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFyaWFTb3J0ID0gdGhpcy5nZXRBcmlhU29ydChjb2wpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtc29ydD0ke2FyaWFTb3J0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiJHtpc1NvcnRhYmxlID8gJ2N1cnNvcjogcG9pbnRlcjsnIDogJyd9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiAoaXNTb3J0YWJsZSA/IHRoaXMudG9nZ2xlU29ydChjb2wpIDogbnVsbCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2NvbC5oZWFkZXIgPz8gKGNvbC5rZXkgYXMgYW55KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU29ydEluZGljYXRvcihjb2wpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPmA7XG4gICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICR7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhQWN0aW9ucyAmJiB0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBodG1sYCA8dGggY2xhc3M9XCJhY3Rpb25zQ29sXCI+QWN0aW9uczwvdGg+IGA7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5zaG93Q29sdW1uRmlsdGVyc1xuICAgICAgICAgICAgICAgICAgICA/IGh0bWxgPHRyIGNsYXNzPVwiZmlsdGVyc1Jvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGh0bWxgPHRoIHN0eWxlPVwid2lkdGg6NDJweDtcIj48L3RoPmBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBodG1sYGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAke2VmZmVjdGl2ZUNvbHVtbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoYykgPT4gIWMuaGlkZGVuKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChjb2wpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBTdHJpbmcoY29sLmtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbC5maWx0ZXJhYmxlID09PSBmYWxzZSkgcmV0dXJuIGh0bWxgPHRoPjwvdGg+YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaHRtbGA8dGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkZpbHRlci4uLlwiIC52YWx1ZT0ke3RoaXMuY29sdW1uRmlsdGVyc1trZXldIHx8ICcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHsoZTogRXZlbnQpID0+IHRoaXMuc2V0Q29sdW1uRmlsdGVyKGtleSwgKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPmA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhQWN0aW9ucyAmJiB0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaHRtbGAgPHRoPjwvdGg+IGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgPC90cj5gXG4gICAgICAgICAgICAgICAgICAgIDogaHRtbGBgfVxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgJHt2aWV3RGF0YS5tYXAoKGl0ZW1BcmcsIHJvd0luZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdldFRyID0gKGVsZW1lbnRBcmc6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50QXJnLnRhZ05hbWUgPT09ICdUUicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50QXJnO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0VHIoZWxlbWVudEFyZy5wYXJlbnRFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgICAgICAgICAgICAgIDx0clxuICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0YVJvdyA9IGl0ZW1Bcmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaWQgPSB0aGlzLmdldFJvd0lkKGl0ZW1BcmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLmFkZChpZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBAZHJhZ2VudGVyPSR7YXN5bmMgKGV2ZW50QXJnOiBEcmFnRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRBcmcucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRBcmcuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWxUYXJnZXQgPSBnZXRUcihldmVudEFyZy50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFsVGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2hhc0F0dGFjaG1lbnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgQGRyYWdsZWF2ZT0ke2FzeW5jIChldmVudEFyZzogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QXJnLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QXJnLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWFsVGFyZ2V0ID0gZ2V0VHIoZXZlbnRBcmcudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhbFRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdoYXNBdHRhY2htZW50Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgQGRyYWdvdmVyPSR7YXN5bmMgKGV2ZW50QXJnOiBEcmFnRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRBcmcucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBAZHJvcD0ke2FzeW5jIChldmVudEFyZzogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QXJnLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0ZpbGVzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBBcnJheS5mcm9tKGV2ZW50QXJnLmRhdGFUcmFuc2Zlci5maWxlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVzLnB1c2goZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3RmlsZXMucHVzaChmaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IEZpbGVbXSA9IHRoaXMuZmlsZVdlYWtNYXAuZ2V0KGl0ZW1BcmcgYXMgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVXZWFrTWFwLnNldChpdGVtQXJnIGFzIG9iamVjdCwgbmV3RmlsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLm5ld0ZpbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke2FzeW5jIChldmVudEFyZzogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBEZWVzQ29udGV4dG1lbnUub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRBcmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgnY29udGV4dG1lbnUnKS5tYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVudUl0ZW06IHBsdWdpbnMudHNjbGFzcy53ZWJzaXRlLklNZW51SXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogYWN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25OYW1lOiBhY3Rpb24uaWNvbk5hbWUgYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBhY3Rpb24uYWN0aW9uRnVuYyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtOiBpdGVtQXJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGU6IHRoaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lbnVJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIke2l0ZW1BcmcgPT09IHRoaXMuc2VsZWN0ZWREYXRhUm93ID8gJ3NlbGVjdGVkJyA6ICcnfVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGh0bWxgPHRkIHN0eWxlPVwid2lkdGg6NDJweDsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlzUm93U2VsZWN0ZWQoaXRlbUFyZyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBuZXdWYWx1ZT0keyhlOiBDdXN0b21FdmVudDxib29sZWFuPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSb3dTZWxlY3RlZChpdGVtQXJnLCBlLmRldGFpbCA9PT0gdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+YFxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGh0bWxgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICR7ZWZmZWN0aXZlQ29sdW1uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChjKSA9PiAhYy5oaWRkZW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGNvbCwgY29sSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGdldENlbGxWYWx1ZUZuKGl0ZW1BcmcsIGNvbCwgdGhpcy5kaXNwbGF5RnVuY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBjb2wucmVuZGVyZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY29sLnJlbmRlcmVyKHZhbHVlLCBpdGVtQXJnLCB7IHJvd0luZGV4LCBjb2xJbmRleCwgY29sdW1uOiBjb2wgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWRpdEtleSA9IFN0cmluZyhjb2wua2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGJsY2xpY2s9JHsoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYmxBY3Rpb24gPSB0aGlzLmRhdGFBY3Rpb25zLmZpbmQoKGFjdGlvbkFyZykgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkFyZy50eXBlLmluY2x1ZGVzKCdkb3VibGVDbGljaycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5lZGl0YWJsZUZpZWxkcy5pbmNsdWRlcyhlZGl0S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDZWxsRWRpdGluZyhlLCBpdGVtQXJnLCBlZGl0S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRibEFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJsQWN0aW9uLmFjdGlvbkZ1bmMoeyBpdGVtOiBpdGVtQXJnLCB0YWJsZTogdGhpcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lckNlbGxDb250YWluZXJcIj4ke2NvbnRlbnR9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgJHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhQWN0aW9ucyAmJiB0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFjdGlvbnNDb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNDb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoJ2luUm93JykubWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGlvbkFyZykgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uQXJnLmFjdGlvbkZ1bmMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtOiBpdGVtQXJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZTogdGhpcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHthY3Rpb25BcmcuaWNvbk5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaHRtbGAgPGRlZXMtaWNvbiAuaWNvbj0ke2FjdGlvbkFyZy5pY29uTmFtZX0+PC9kZWVzLWljb24+IGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYWN0aW9uQXJnLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvdHI+YDtcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYFxuICAgICAgICAgIDogaHRtbGAgPGRpdiBjbGFzcz1cIm5vRGF0YVNldFwiPk5vIGRhdGEgc2V0ITwvZGl2PiBgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlU3RhdGlzdGljc1wiPlxuICAgICAgICAgICAgJHt0aGlzLmRhdGEubGVuZ3RofSAke3RoaXMuZGF0YU5hbWUgfHwgJ2RhdGEgcm93cyd9ICh0b3RhbCkgfFxuICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGVkRGF0YVJvdyA/ICcjICcgKyBgJHt0aGlzLmRhdGEuaW5kZXhPZih0aGlzLnNlbGVjdGVkRGF0YVJvdykgKyAxfWAgOiBgTm9gfVxuICAgICAgICAgICAgc2VsZWN0ZWRcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyQWN0aW9uc1wiPlxuICAgICAgICAgICAgJHtkaXJlY3RpdmVzLnJlc29sdmVFeGVjKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzdWx0QXJyYXk6IFRlbXBsYXRlUmVzdWx0W10gPSBbXTtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5kYXRhQWN0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmICghYWN0aW9uLnR5cGUuaW5jbHVkZXMoJ2Zvb3RlcicpKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICByZXN1bHRBcnJheS5wdXNoKFxuICAgICAgICAgICAgICAgICAgaHRtbGA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9vdGVyQWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5hY3Rpb25GdW5jKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW06IHRoaXMuc2VsZWN0ZWREYXRhUm93LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFibGU6IHRoaXMsXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICR7YWN0aW9uLmljb25OYW1lXG4gICAgICAgICAgICAgICAgICAgICAgPyBodG1sYDxkZWVzLWljb24gLmljb25TaXplPSR7MTR9IC5pY29uPSR7YWN0aW9uLmljb25OYW1lfT48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgJHthY3Rpb24ubmFtZX1gXG4gICAgICAgICAgICAgICAgICAgICAgOiBhY3Rpb24ubmFtZX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHRBcnJheTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlyc3RVcGRhdGVkKCkge1xuICAgIFxuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5kZXRlcm1pbmVDb2x1bW5XaWR0aHMoKTtcbiAgICBpZiAodGhpcy5zZWFyY2hhYmxlKSB7XG4gICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuZGF0YUFjdGlvbnMuZmluZCgoYWN0aW9uQXJnKSA9PiBhY3Rpb25BcmcudHlwZS5pbmNsdWRlcygnaGVhZGVyJykgJiYgYWN0aW9uQXJnLm5hbWUgPT09ICdTZWFyY2gnKTtcbiAgICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgICAgdGhpcy5kYXRhQWN0aW9ucy51bnNoaWZ0KHtcbiAgICAgICAgICBuYW1lOiAnU2VhcmNoJyxcbiAgICAgICAgICBpY29uTmFtZTogJ21hZ25pZnlpbmdHbGFzcycsXG4gICAgICAgICAgdHlwZTogWydoZWFkZXInXSxcbiAgICAgICAgICBhY3Rpb25GdW5jOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnb3BlbiBzZWFyY2gnKTtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaEdyaWQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnNlYXJjaEdyaWQnKTtcbiAgICAgICAgICAgIHNlYXJjaEdyaWQuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZGVuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5kYXRhQWN0aW9ucyk7XG4gICAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xuICAgICAgfTtcbiAgICAgIC8vIHdpcmUgc2VhcmNoIGlucHV0c1xuICAgICAgdGhpcy53aXJlU2VhcmNoSW5wdXRzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfX2RlYm91bmNlVGltZXI/OiBhbnk7XG4gIHByaXZhdGUgZGVib3VuY2VSdW4oZm46ICgpID0+IHZvaWQsIG1zID0gMjAwKSB7XG4gICAgaWYgKHRoaXMuX19kZWJvdW5jZVRpbWVyKSBjbGVhclRpbWVvdXQodGhpcy5fX2RlYm91bmNlVGltZXIpO1xuICAgIHRoaXMuX19kZWJvdW5jZVRpbWVyID0gc2V0VGltZW91dChmbiwgbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSB3aXJlU2VhcmNoSW5wdXRzKCkge1xuICAgIGNvbnN0IHNlYXJjaFRleHRFbDogYW55ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuc2VhcmNoR3JpZCBkZWVzLWlucHV0LXRleHQnKTtcbiAgICBjb25zdCBzZWFyY2hNb2RlRWw6IGFueSA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnNlYXJjaEdyaWQgZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZScpO1xuICAgIGlmIChzZWFyY2hUZXh0RWwgJiYgIXRoaXMuX19zZWFyY2hUZXh0U3ViKSB7XG4gICAgICB0aGlzLl9fc2VhcmNoVGV4dFN1YiA9IHNlYXJjaFRleHRFbC5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoZWw6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCB2YWw6IHN0cmluZyA9IGVsPy52YWx1ZSA/PyAnJztcbiAgICAgICAgdGhpcy5kZWJvdW5jZVJ1bigoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuc2VhcmNoTW9kZSA9PT0gJ3NlcnZlcicpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdzZWFyY2hSZXF1ZXN0Jywge1xuICAgICAgICAgICAgICAgIGRldGFpbDogeyBxdWVyeTogdmFsLCBtb2RlOiAnc2VydmVyJyB9LFxuICAgICAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldEZpbHRlclRleHQodmFsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChzZWFyY2hNb2RlRWwgJiYgIXRoaXMuX19zZWFyY2hNb2RlU3ViKSB7XG4gICAgICB0aGlzLl9fc2VhcmNoTW9kZVN1YiA9IHNlYXJjaE1vZGVFbC5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoZWw6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBtb2RlOiBzdHJpbmcgPSBlbD8uc2VsZWN0ZWRPcHRpb24gfHwgZWw/LnZhbHVlIHx8ICd0YWJsZSc7XG4gICAgICAgIGlmIChtb2RlID09PSAndGFibGUnIHx8IG1vZGUgPT09ICdkYXRhJyB8fCBtb2RlID09PSAnc2VydmVyJykge1xuICAgICAgICAgIHRoaXMuc2VhcmNoTW9kZSA9IG1vZGUgYXMgYW55O1xuICAgICAgICAgIC8vIFdoZW4gc3dpdGNoaW5nIG1vZGVzLCByZS1hcHBseSBjdXJyZW50IHRleHQgaW5wdXRcbiAgICAgICAgICBjb25zdCB2YWw6IHN0cmluZyA9IHNlYXJjaFRleHRFbD8udmFsdWUgPz8gJyc7XG4gICAgICAgICAgdGhpcy5kZWJvdW5jZVJ1bigoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWFyY2hNb2RlID09PSAnc2VydmVyJykge1xuICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdzZWFyY2hSZXF1ZXN0JywgeyBkZXRhaWw6IHsgcXVlcnk6IHZhbCwgbW9kZTogJ3NlcnZlcicgfSwgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnNldEZpbHRlclRleHQodmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRldGVybWluZUNvbHVtbldpZHRocygpIHtcbiAgICBjb25zdCBkb210b29scyA9IGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO1xuICAgIGF3YWl0IGRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7XG4gICAgLy8gR2V0IHRoZSB0YWJsZSBlbGVtZW50XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigndGFibGUnKTtcbiAgICBpZiAoIXRhYmxlKSByZXR1cm47XG5cbiAgICAvLyBHZXQgdGhlIGZpcnN0IHJvdydzIGNlbGxzIHRvIG1lYXN1cmUgdGhlIHdpZHRoc1xuICAgIGNvbnN0IGNlbGxzID0gdGFibGUucm93c1swXS5jZWxscztcblxuICAgIGNvbnN0IGhhbmRsZUNvbHVtbkJ5SW5kZXggPSBhc3luYyAoaTogbnVtYmVyLCB3YWl0Rm9yUmVuZGVyQXJnOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgIGNvbnN0IGRvbmUgPSBwbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO1xuICAgICAgY29uc3QgY2VsbCA9IGNlbGxzW2ldO1xuXG4gICAgICAvLyBHZXQgY29tcHV0ZWQgd2lkdGhcbiAgICAgIGNvbnN0IHdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoY2VsbCkud2lkdGg7XG4gICAgICBpZiAoY2VsbC50ZXh0Q29udGVudC5pbmNsdWRlcygnQWN0aW9ucycpKSB7XG4gICAgICAgIGNvbnN0IG5lZWRlZFdpZHRoID1cbiAgICAgICAgICB0aGlzLmRhdGFBY3Rpb25zLmZpbHRlcigoYWN0aW9uQXJnKSA9PiBhY3Rpb25BcmcudHlwZS5pbmNsdWRlcygnaW5Sb3cnKSkubGVuZ3RoICogMzY7XG4gICAgICAgIGNlbGwuc3R5bGUud2lkdGggPSBgJHtNYXRoLm1heChuZWVkZWRXaWR0aCwgNjgpfXB4YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNlbGwuc3R5bGUud2lkdGggPSB3aWR0aDtcbiAgICAgIH1cbiAgICAgIGlmICh3YWl0Rm9yUmVuZGVyQXJnKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCBkb25lLnByb21pc2U7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChjZWxsc1tjZWxscy5sZW5ndGggLSAxXS50ZXh0Q29udGVudC5pbmNsdWRlcygnQWN0aW9ucycpKSB7XG4gICAgICBhd2FpdCBoYW5kbGVDb2x1bW5CeUluZGV4KGNlbGxzLmxlbmd0aCAtIDEsIHRydWUpO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2VsbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChjZWxsc1tpXS50ZXh0Q29udGVudC5pbmNsdWRlcygnQWN0aW9ucycpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgYXdhaXQgaGFuZGxlQ29sdW1uQnlJbmRleChpKTtcbiAgICB9XG4gICAgdGFibGUuc3R5bGUudGFibGVMYXlvdXQgPSAnZml4ZWQnO1xuICB9XG5cbiAgLy8gY29tcHV0ZSBoZWxwZXJzIG1vdmVkIHRvIC4vZGF0YS50c1xuXG4gIHByaXZhdGUgdG9nZ2xlU29ydChjb2w6IENvbHVtbjxUPikge1xuICAgIGNvbnN0IGtleSA9IFN0cmluZyhjb2wua2V5KTtcbiAgICBpZiAodGhpcy5zb3J0S2V5ICE9PSBrZXkpIHtcbiAgICAgIHRoaXMuc29ydEtleSA9IGtleTtcbiAgICAgIHRoaXMuc29ydERpciA9ICdhc2MnO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5zb3J0RGlyID09PSAnYXNjJykgdGhpcy5zb3J0RGlyID0gJ2Rlc2MnO1xuICAgICAgZWxzZSBpZiAodGhpcy5zb3J0RGlyID09PSAnZGVzYycpIHtcbiAgICAgICAgdGhpcy5zb3J0RGlyID0gbnVsbDtcbiAgICAgICAgdGhpcy5zb3J0S2V5ID0gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIHRoaXMuc29ydERpciA9ICdhc2MnO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3NvcnRDaGFuZ2UnLCB7XG4gICAgICAgIGRldGFpbDogeyBrZXk6IHRoaXMuc29ydEtleSwgZGlyOiB0aGlzLnNvcnREaXIgfSxcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXJpYVNvcnQoY29sOiBDb2x1bW48VD4pOiAnbm9uZScgfCAnYXNjZW5kaW5nJyB8ICdkZXNjZW5kaW5nJyB7XG4gICAgaWYgKFN0cmluZyhjb2wua2V5KSAhPT0gdGhpcy5zb3J0S2V5IHx8ICF0aGlzLnNvcnREaXIpIHJldHVybiAnbm9uZSc7XG4gICAgcmV0dXJuIHRoaXMuc29ydERpciA9PT0gJ2FzYycgPyAnYXNjZW5kaW5nJyA6ICdkZXNjZW5kaW5nJztcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyU29ydEluZGljYXRvcihjb2w6IENvbHVtbjxUPikge1xuICAgIGlmIChTdHJpbmcoY29sLmtleSkgIT09IHRoaXMuc29ydEtleSB8fCAhdGhpcy5zb3J0RGlyKSByZXR1cm4gaHRtbGBgO1xuICAgIHJldHVybiBodG1sYDxzcGFuIHN0eWxlPVwibWFyZ2luLWxlZnQ6NnB4OyBvcGFjaXR5OjAuNztcIj4ke3RoaXMuc29ydERpciA9PT0gJ2FzYycgPyAnXHUyNUIyJyA6ICdcdTI1QkMnfTwvc3Bhbj5gO1xuICB9XG5cbiAgLy8gZmlsdGVyaW5nIGhlbHBlcnNcbiAgcHVibGljIHNldEZpbHRlclRleHQodmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IHByZXYgPSB0aGlzLmZpbHRlclRleHQ7XG4gICAgdGhpcy5maWx0ZXJUZXh0ID0gdmFsdWUgPz8gJyc7XG4gICAgaWYgKHByZXYgIT09IHRoaXMuZmlsdGVyVGV4dCkge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2ZpbHRlckNoYW5nZScsIHtcbiAgICAgICAgICBkZXRhaWw6IHsgdGV4dDogdGhpcy5maWx0ZXJUZXh0LCBjb2x1bW5zOiB7IC4uLnRoaXMuY29sdW1uRmlsdGVycyB9IH0sXG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0Q29sdW1uRmlsdGVyKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJzID0geyAuLi50aGlzLmNvbHVtbkZpbHRlcnMsIFtrZXldOiB2YWx1ZSB9O1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgnZmlsdGVyQ2hhbmdlJywge1xuICAgICAgICBkZXRhaWw6IHsgdGV4dDogdGhpcy5maWx0ZXJUZXh0LCBjb2x1bW5zOiB7IC4uLnRoaXMuY29sdW1uRmlsdGVycyB9IH0sXG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gIH1cblxuICAvLyBzZWxlY3Rpb24gaGVscGVyc1xuICBwcml2YXRlIGdldFJvd0lkKHJvdzogVCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucm93S2V5KSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMucm93S2V5ID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdGhpcy5yb3dLZXkocm93KTtcbiAgICAgIHJldHVybiBTdHJpbmcoKHJvdyBhcyBhbnkpW3RoaXMucm93S2V5XSk7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IHJvdyBhcyBhbnkgYXMgb2JqZWN0O1xuICAgIGlmICghdGhpcy5fcm93SWRNYXAuaGFzKGtleSkpIHtcbiAgICAgIHRoaXMuX3Jvd0lkTWFwLnNldChrZXksIFN0cmluZygrK3RoaXMuX3Jvd0lkQ291bnRlcikpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcm93SWRNYXAuZ2V0KGtleSk7XG4gIH1cblxuICBwcml2YXRlIGlzUm93U2VsZWN0ZWQocm93OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQocm93KSk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZVJvd1NlbGVjdGVkKHJvdzogVCkge1xuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRSb3dJZChyb3cpO1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCk7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLmFkZChpZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aScpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzLmhhcyhpZCkpIHRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKGlkKTtcbiAgICAgIGVsc2UgdGhpcy5zZWxlY3RlZElkcy5hZGQoaWQpO1xuICAgIH1cbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Um93U2VsZWN0ZWQocm93OiBULCBjaGVja2VkOiBib29sZWFuKSB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldFJvd0lkKHJvdyk7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKTtcbiAgICAgIGlmIChjaGVja2VkKSB0aGlzLnNlbGVjdGVkSWRzLmFkZChpZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aScpIHtcbiAgICAgIGlmIChjaGVja2VkKSB0aGlzLnNlbGVjdGVkSWRzLmFkZChpZCk7XG4gICAgICBlbHNlIHRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKGlkKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCk7XG4gICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGFyZUFsbFZpc2libGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCB2aWV3OiBUW10gPSAodGhpcyBhcyBhbnkpLl9sYXN0Vmlld0RhdGEgfHwgW107XG4gICAgaWYgKHZpZXcubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2U7XG4gICAgZm9yIChjb25zdCByIG9mIHZpZXcpIHtcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChyKSkpIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGlzVmlzaWJsZVNlbGVjdGlvbkluZGV0ZXJtaW5hdGUoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmlldzogVFtdID0gKHRoaXMgYXMgYW55KS5fbGFzdFZpZXdEYXRhIHx8IFtdO1xuICAgIGlmICh2aWV3Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgZm9yIChjb25zdCByIG9mIHZpZXcpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKHIpKSkgY291bnQrKztcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50ID4gMCAmJiBjb3VudCA8IHZpZXcubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZWxlY3RWaXNpYmxlKGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCB2aWV3OiBUW10gPSAodGhpcyBhcyBhbnkpLl9sYXN0Vmlld0RhdGEgfHwgW107XG4gICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgIGZvciAoY29uc3QgciBvZiB2aWV3KSB0aGlzLnNlbGVjdGVkSWRzLmFkZCh0aGlzLmdldFJvd0lkKHIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCByIG9mIHZpZXcpIHRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKHRoaXMuZ2V0Um93SWQocikpO1xuICAgIH1cbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICBjb25zdCBzZWxlY3RlZElkcyA9IEFycmF5LmZyb20odGhpcy5zZWxlY3RlZElkcyk7XG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dzID0gdGhpcy5kYXRhLmZpbHRlcigocikgPT4gdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChyKSkpO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgnc2VsZWN0aW9uQ2hhbmdlJywge1xuICAgICAgICBkZXRhaWw6IHsgc2VsZWN0ZWRJZHMsIHNlbGVjdGVkUm93cyB9LFxuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QWN0aW9uc0ZvclR5cGUodHlwZUFyZzogSVRhYmxlQWN0aW9uWyd0eXBlJ11bMF0pIHtcbiAgICBjb25zdCBhY3Rpb25zOiBJVGFibGVBY3Rpb25bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMuZGF0YUFjdGlvbnMpIHtcbiAgICAgIGlmICghYWN0aW9uLnR5cGUuaW5jbHVkZXModHlwZUFyZykpIGNvbnRpbnVlO1xuICAgICAgYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb25zO1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlQ2VsbEVkaXRpbmcoZXZlbnQ6IEV2ZW50LCBpdGVtQXJnOiBULCBrZXk6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBvcmlnaW5hbENvbG9yID0gdGFyZ2V0LnN0eWxlLmNvbG9yO1xuICAgIHRhcmdldC5zdHlsZS5jb2xvciA9ICd0cmFuc3BhcmVudCc7XG4gICAgY29uc3QgdHJhbnNmb3JtZWRJdGVtID0gdGhpcy5kaXNwbGF5RnVuY3Rpb24oaXRlbUFyZyk7XG4gICAgY29uc3QgaW5pdGlhbFZhbHVlID0gKCh0cmFuc2Zvcm1lZEl0ZW0gYXMgYW55KVtrZXldID8/IChpdGVtQXJnIGFzIGFueSlba2V5XSA/PyAnJykgYXMgc3RyaW5nO1xuICAgIC8vIENyZWF0ZSBhbiBpbnB1dCBlbGVtZW50XG4gICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGlucHV0LnR5cGUgPSAndGV4dCc7XG4gICAgaW5wdXQudmFsdWUgPSBpbml0aWFsVmFsdWU7XG5cbiAgICBjb25zdCBibHVySW5wdXQgPSBhc3luYyAoYmx1ckFyZyA9IHRydWUsIHNhdmVBcmcgPSBmYWxzZSkgPT4ge1xuICAgICAgaWYgKGJsdXJBcmcpIHtcbiAgICAgICAgaW5wdXQuYmx1cigpO1xuICAgICAgfVxuICAgICAgaWYgKHNhdmVBcmcpIHtcbiAgICAgICAgaXRlbUFyZ1trZXldID0gaW5wdXQudmFsdWUgYXMgYW55OyAvLyBDb252ZXJ0IHN0cmluZyB0byBUICh5b3UgbWlnaHQgbmVlZCBiZXR0ZXIgdHlwZSBjYXN0aW5nIGRlcGVuZGluZyBvbiB5b3VyIGRhdGEgc3RydWN0dXJlKVxuICAgICAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgICAgIH1cbiAgICAgIGlucHV0LnJlbW92ZSgpO1xuICAgICAgdGFyZ2V0LnN0eWxlLmNvbG9yID0gb3JpZ2luYWxDb2xvcjtcbiAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xuICAgIH07XG5cbiAgICAvLyBXaGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cyBvciB0aGUgRW50ZXIga2V5IGlzIHByZXNzZWQsIHVwZGF0ZSB0aGUgZGF0YVxuICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB7XG4gICAgICBibHVySW5wdXQoZmFsc2UsIGZhbHNlKTtcbiAgICB9KTtcbiAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICBibHVySW5wdXQodHJ1ZSwgdHJ1ZSk7IC8vIFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBibHVyIGV2ZW50IGhhbmRsZXIgYWJvdmVcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFJlcGxhY2UgdGhlIGNlbGwncyBjb250ZW50IHdpdGggdGhlIGlucHV0XG4gICAgdGFyZ2V0LmFwcGVuZENoaWxkKGlucHV0KTtcbiAgICBpbnB1dC5mb2N1cygpO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgaHRtbCwgY3NzLCBkb210b29scywgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgdHlwZSB7IERlZXNGb3JtIH0gZnJvbSAnLi9kZWVzLWZvcm0uanMnO1xuaW1wb3J0ICdAZGVzaWduLmVzdGF0ZS9kZWVzLXdjY3Rvb2xzL2RlbW90b29scyc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG4gIDxzdHlsZT5cbiAgICAke2Nzc2BcbiAgICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgICAgXG4gICAgICBkZWVzLXBhbmVsIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmZvcm0tb3V0cHV0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgNDAlIDk2LjElKScsICdoc2woMjE1IDIwLjIlIDE2LjglKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnN0YXR1cy1tZXNzYWdlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5zdGF0dXMtbWVzc2FnZS5zdWNjZXNzIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSknLCAnaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMTQyLjEgNzAuNiUgMzUuMyUpJywgJ2hzbCgxNDIuMSA3MC42JSA2NS4zJSknKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5zdGF0dXMtbWVzc2FnZS5lcnJvciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSknLCAnaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjIpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcyLjIlIDQwLjYlKScsICdoc2woMCA3Mi4yJSA2MC42JSknKX07XG4gICAgICB9XG4gICAgYH1cbiAgPC9zdHlsZT5cbiAgXG4gIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRhaW5lclwiPlxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgZm9ybSA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1mb3JtJykgYXMgRGVlc0Zvcm07XG4gICAgICBjb25zdCBvdXRwdXREaXYgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLW91dHB1dCcpO1xuICAgICAgXG4gICAgICBpZiAoZm9ybSAmJiBvdXRwdXREaXYpIHtcbiAgICAgICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKCdmb3JtRGF0YScsIGFzeW5jIChldmVudEFyZzogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gZXZlbnRBcmcuZGV0YWlsLmRhdGE7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0Zvcm0gc3VibWl0dGVkIHdpdGggZGF0YTonLCBkYXRhKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTaG93IHByb2Nlc3Npbmcgc3RhdGVcbiAgICAgICAgICBmb3JtLnNldFN0YXR1cygncGVuZGluZycsICdQcm9jZXNzaW5nIHlvdXIgcmVnaXN0cmF0aW9uLi4uJyk7XG4gICAgICAgICAgb3V0cHV0RGl2LmlubmVySFRNTCA9IGA8c3Ryb25nPlN1Ym1pdHRlZCBEYXRhOjwvc3Ryb25nPlxcbiR7SlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMil9YDtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTaW11bGF0ZSBBUEkgY2FsbFxuICAgICAgICAgIGF3YWl0IGRvbXRvb2xzLnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyMDAwKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTaG93IHN1Y2Nlc3NcbiAgICAgICAgICBmb3JtLnNldFN0YXR1cygnc3VjY2VzcycsICdSZWdpc3RyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBSZXNldCBmb3JtIGFmdGVyIGRlbGF5XG4gICAgICAgICAgYXdhaXQgZG9tdG9vbHMucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDIwMDApO1xuICAgICAgICAgIGZvcm0ucmVzZXQoKTtcbiAgICAgICAgICBvdXRwdXREaXYuaW5uZXJIVE1MID0gJzxlbT5Gb3JtIGhhcyBiZWVuIHJlc2V0PC9lbT4nO1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIC8vIFRyYWNrIGluZGl2aWR1YWwgZmllbGQgY2hhbmdlc1xuICAgICAgICBjb25zdCBpbnB1dHMgPSBmb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtaW5wdXQtdGV4dCwgZGVlcy1pbnB1dC1kcm9wZG93biwgZGVlcy1pbnB1dC1jaGVja2JveCcpO1xuICAgICAgICBpbnB1dHMuZm9yRWFjaCgoaW5wdXQpID0+IHtcbiAgICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2VTdWJqZWN0JywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZpZWxkIGNoYW5nZWQ6JywgaW5wdXQuZ2V0QXR0cmlidXRlKCdrZXknKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9XCJDb21wbGV0ZSBGb3JtIEV4YW1wbGVcIiAuZGVzY3JpcHRpb249XCJBIGNvbXByZWhlbnNpdmUgZm9ybSB3aXRoIHZhcmlvdXMgaW5wdXQgdHlwZXMsIHZhbGlkYXRpb24sIGFuZCBmb3JtIHN1Ym1pc3Npb24gaGFuZGxpbmdcIj5cbiAgICAgICAgPGRlZXMtZm9ybT5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IFxuICAgICAgICAgICAgLnJlcXVpcmVkPSR7dHJ1ZX0gXG4gICAgICAgICAgICBrZXk9XCJmaXJzdE5hbWVcIiBcbiAgICAgICAgICAgIGxhYmVsPVwiRmlyc3QgTmFtZVwiXG4gICAgICAgICAgICAuZGVzY3JpcHRpb249JHsnWW91ciBnaXZlbiBuYW1lJ31cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBcbiAgICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9IFxuICAgICAgICAgICAga2V5PVwibGFzdE5hbWVcIiBcbiAgICAgICAgICAgIGxhYmVsPVwiTGFzdCBOYW1lXCJcbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBcbiAgICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9IFxuICAgICAgICAgICAga2V5PVwiZW1haWxcIiBcbiAgICAgICAgICAgIGxhYmVsPVwiRW1haWwgQWRkcmVzc1wiXG4gICAgICAgICAgICAuZGVzY3JpcHRpb249JHsnV2Ugd2lsbCB1c2UgdGhpcyB0byBjb250YWN0IHlvdSd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duXG4gICAgICAgICAgICAucmVxdWlyZWQ9JHt0cnVlfVxuICAgICAgICAgICAga2V5PVwiY291bnRyeVwiXG4gICAgICAgICAgICAubGFiZWw9JHsnQ291bnRyeSd9XG4gICAgICAgICAgICAub3B0aW9ucz0ke1tcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdVbml0ZWQgU3RhdGVzJywga2V5OiAndXMnIH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnQ2FuYWRhJywga2V5OiAnY2EnIH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnR2VybWFueScsIGtleTogJ2RlJyB9LFxuICAgICAgICAgICAgICB7IG9wdGlvbjogJ0ZyYW5jZScsIGtleTogJ2ZyJyB9LFxuICAgICAgICAgICAgICB7IG9wdGlvbjogJ1VuaXRlZCBLaW5nZG9tJywga2V5OiAndWsnIH0sXG4gICAgICAgICAgICBdfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dFxuICAgICAgICAgICAgLnJlcXVpcmVkPSR7dHJ1ZX1cbiAgICAgICAgICAgIGtleT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgIGxhYmVsPVwiUGFzc3dvcmRcIlxuICAgICAgICAgICAgaXNQYXNzd29yZEJvb2xcbiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydNaW5pbXVtIDggY2hhcmFjdGVycyd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94XG4gICAgICAgICAgICAucmVxdWlyZWQ9JHt0cnVlfVxuICAgICAgICAgICAga2V5PVwidGVybXNcIlxuICAgICAgICAgICAgbGFiZWw9XCJJIGFncmVlIHRvIHRoZSBUZXJtcyBhbmQgQ29uZGl0aW9uc1wiXG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveFxuICAgICAgICAgICAga2V5PVwibmV3c2xldHRlclwiXG4gICAgICAgICAgICBsYWJlbD1cIlNlbmQgbWUgcHJvbW90aW9uYWwgZW1haWxzXCJcbiAgICAgICAgICAgIC52YWx1ZT0ke3RydWV9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5DcmVhdGUgQWNjb3VudDwvZGVlcy1mb3JtLXN1Ym1pdD5cbiAgICAgICAgPC9kZWVzLWZvcm0+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1vdXRwdXRcIj5cbiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgY29sbGVjdGVkIGRhdGEuLi48L2VtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+XG4gICAgXG4gICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKGVsZW1lbnRBcmc6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCBmb3JtID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWZvcm0nKSBhcyBEZWVzRm9ybTtcbiAgICAgIFxuICAgICAgaWYgKGZvcm0pIHtcbiAgICAgICAgLy8gVHJhY2sgaG9yaXpvbnRhbCBsYXlvdXQgYmVoYXZpb3JcbiAgICAgICAgY29uc29sZS5sb2coJ0hvcml6b250YWwgZm9ybSBsYXlvdXQgYWN0aXZlJyk7XG4gICAgICAgIFxuICAgICAgICAvLyBNb25pdG9yIGZpbHRlciBjaGFuZ2VzXG4gICAgICAgIGZvcm0uYWRkRXZlbnRMaXN0ZW5lcignZm9ybURhdGEnLCAoZXZlbnQ6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsdGVycyA9IGV2ZW50LmRldGFpbC5kYXRhO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdGaWx0ZXIgYXBwbGllZDonLCBmaWx0ZXJzKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTaW11bGF0ZSBzZWFyY2hcbiAgICAgICAgICBjb25zdCByZXN1bHRzQ291bnQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApICsgMTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgRm91bmQgJHtyZXN1bHRzQ291bnR9IHJlc3VsdHMgd2l0aCBmaWx0ZXJzOmAsIGZpbHRlcnMpO1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIC8vIFNldHVwIHJlYWwtdGltZSBmaWx0ZXIgdXBkYXRlc1xuICAgICAgICBjb25zdCBpbnB1dHMgPSBmb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ1trZXldJyk7XG4gICAgICAgIGlucHV0cy5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZVN1YmplY3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAvLyBHZXQgY3VycmVudCBmb3JtIGRhdGFcbiAgICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gYXdhaXQgZm9ybS5jb2xsZWN0Rm9ybURhdGEoKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdMaXZlIGZpbHRlciB1cGRhdGU6JywgZm9ybURhdGEpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPVwiSG9yaXpvbnRhbCBGb3JtIExheW91dFwiIC5kZXNjcmlwdGlvbj1cIkNvbXBhY3QgZm9ybSB3aXRoIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkgLSBwZXJmZWN0IGZvciBmaWx0ZXJzIGFuZCBxdWljayBmb3Jtc1wiPlxuICAgICAgICA8ZGVlcy1mb3JtIGhvcml6b250YWwtbGF5b3V0PlxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgXG4gICAgICAgICAgICBrZXk9XCJzZWFyY2hcIiBcbiAgICAgICAgICAgIGxhYmVsPVwiU2VhcmNoXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIga2V5d29yZHMuLi5cIlxuICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93blxuICAgICAgICAgICAga2V5PVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgLmxhYmVsPSR7J0NhdGVnb3J5J31cbiAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHtmYWxzZX1cbiAgICAgICAgICAgIC5vcHRpb25zPSR7W1xuICAgICAgICAgICAgICB7IG9wdGlvbjogJ0FsbCcsIGtleTogJ2FsbCcgfSxcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdQcm9kdWN0cycsIGtleTogJ3Byb2R1Y3RzJyB9LFxuICAgICAgICAgICAgICB7IG9wdGlvbjogJ1NlcnZpY2VzJywga2V5OiAnc2VydmljZXMnIH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnU3VwcG9ydCcsIGtleTogJ3N1cHBvcnQnIH0sXG4gICAgICAgICAgICBdfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd25cbiAgICAgICAgICAgIGtleT1cInNvcnRcIlxuICAgICAgICAgICAgLmxhYmVsPSR7J1NvcnQgQnknfVxuICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0ke2ZhbHNlfVxuICAgICAgICAgICAgLm9wdGlvbnM9JHtbXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnTmV3ZXN0Jywga2V5OiAnbmV3ZXN0JyB9LFxuICAgICAgICAgICAgICB7IG9wdGlvbjogJ1BvcHVsYXInLCBrZXk6ICdwb3B1bGFyJyB9LFxuICAgICAgICAgICAgICB7IG9wdGlvbjogJ1ByaWNlOiBMb3cgdG8gSGlnaCcsIGtleTogJ3ByaWNlX2FzYycgfSxcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdQcmljZTogSGlnaCB0byBMb3cnLCBrZXk6ICdwcmljZV9kZXNjJyB9LFxuICAgICAgICAgICAgXX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94XG4gICAgICAgICAgICBrZXk9XCJpblN0b2NrXCJcbiAgICAgICAgICAgIGxhYmVsPVwiSW4gU3RvY2sgT25seVwiXG4gICAgICAgICAgICAudmFsdWU9JHt0cnVlfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+XG4gICAgICAgIDwvZGVlcy1mb3JtPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cbiAgICBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGZvcm0gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtZm9ybScpIGFzIERlZXNGb3JtO1xuICAgICAgY29uc3Qgc3RhdHVzRGl2ID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCcjc3RhdHVzLWRpc3BsYXknKTtcbiAgICAgIFxuICAgICAgaWYgKGZvcm0pIHtcbiAgICAgICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKCdmb3JtRGF0YScsIGFzeW5jIChldmVudEFyZzogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gZXZlbnRBcmcuZGV0YWlsLmRhdGE7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0FkdmFuY2VkIGZvcm0gZGF0YTonLCBkYXRhKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTaG93IHZhbGlkYXRpb24gaW4gcHJvZ3Jlc3NcbiAgICAgICAgICBmb3JtLnNldFN0YXR1cygncGVuZGluZycsICdWYWxpZGF0aW5nIHlvdXIgaW5mb3JtYXRpb24uLi4nKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTaW11bGF0ZSB2YWxpZGF0aW9uXG4gICAgICAgICAgYXdhaXQgZG9tdG9vbHMucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MDApO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIENoZWNrIElCQU4gdmFsaWRpdHkgKHNpbXBsZSBjaGVjaylcbiAgICAgICAgICBpZiAoZGF0YS5pYmFuICYmIGRhdGEuaWJhbi5sZW5ndGggPiAxNSkge1xuICAgICAgICAgICAgZm9ybS5zZXRTdGF0dXMoJ3N1Y2Nlc3MnLCAnQXBwbGljYXRpb24gc3VibWl0dGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHN0YXR1c0Rpdikge1xuICAgICAgICAgICAgICBzdGF0dXNEaXYuY2xhc3NOYW1lID0gJ3N0YXR1cy1tZXNzYWdlIHN1Y2Nlc3MnO1xuICAgICAgICAgICAgICBzdGF0dXNEaXYudGV4dENvbnRlbnQgPSAnXHUyNzEzIFlvdXIgYXBwbGljYXRpb24gaGFzIGJlZW4gc3VibWl0dGVkLiBXZSB3aWxsIGNvbnRhY3QgeW91IHNvb24uJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybS5zZXRTdGF0dXMoJ2Vycm9yJywgJ1BsZWFzZSBjaGVjayB5b3VyIElCQU4nKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHN0YXR1c0Rpdikge1xuICAgICAgICAgICAgICBzdGF0dXNEaXYuY2xhc3NOYW1lID0gJ3N0YXR1cy1tZXNzYWdlIGVycm9yJztcbiAgICAgICAgICAgICAgc3RhdHVzRGl2LnRleHRDb250ZW50ID0gJ1x1MjcxNyBJbnZhbGlkIElCQU4gZm9ybWF0LiBQbGVhc2UgY2hlY2sgYW5kIHRyeSBhZ2Fpbi4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICBjb25zb2xlLmxvZygnRm9ybSBkYXRhIGxvZ2dlZDonLCBkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBNb25pdG9yIGZpbGUgdXBsb2Fkc1xuICAgICAgICBjb25zdCBmaWxlVXBsb2FkID0gZm9ybS5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWZpbGV1cGxvYWQnKTtcbiAgICAgICAgaWYgKGZpbGVVcGxvYWQpIHtcbiAgICAgICAgICBmaWxlVXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlcyA9IGV2ZW50LmRldGFpbD8uZmlsZXMgfHwgW107XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgJHtmaWxlcy5sZW5ndGh9IGZpbGUocykgc2VsZWN0ZWQgZm9yIHVwbG9hZGApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfX0+XG4gICAgICA8ZGVlcy1wYW5lbCAuaGVhZGluZz1cIkFkdmFuY2VkIEZvcm0gRmVhdHVyZXNcIiAuZGVzY3JpcHRpb249XCJGb3JtIHdpdGggc3BlY2lhbGl6ZWQgaW5wdXQgdHlwZXMgYW5kIGNvbXBsZXggdmFsaWRhdGlvblwiPlxuICAgICAgICA8ZGVlcy1mb3JtPlxuICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4gXG4gICAgICAgICAgICBrZXk9XCJpYmFuXCJcbiAgICAgICAgICAgIGxhYmVsPVwiSUJBTlwiXG4gICAgICAgICAgICAucmVxdWlyZWQ9JHt0cnVlfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZVxuICAgICAgICAgICAga2V5PVwicGhvbmVcIlxuICAgICAgICAgICAgbGFiZWw9XCJQaG9uZSBOdW1iZXJcIlxuICAgICAgICAgICAgLnJlcXVpcmVkPSR7dHJ1ZX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlXG4gICAgICAgICAgICBrZXk9XCJwcmVmZXJlbmNlc1wiXG4gICAgICAgICAgICAubGFiZWw9JHsnTm90aWZpY2F0aW9uIFByZWZlcmVuY2VzJ31cbiAgICAgICAgICAgIC5vcHRpb25zPSR7WydFbWFpbCcsICdTTVMnLCAnUHVzaCcsICdJbi1BcHAnXX1cbiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keydFbWFpbCd9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXNlbGVjdFxuICAgICAgICAgICAga2V5PVwiaW50ZXJlc3RzXCJcbiAgICAgICAgICAgIC5sYWJlbD0keydBcmVhcyBvZiBJbnRlcmVzdCd9XG4gICAgICAgICAgICAub3B0aW9ucz0ke1tcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdUZWNobm9sb2d5Jywga2V5OiAndGVjaCcgfSxcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdEZXNpZ24nLCBrZXk6ICdkZXNpZ24nIH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnQnVzaW5lc3MnLCBrZXk6ICdidXNpbmVzcycgfSxcbiAgICAgICAgICAgICAgeyBvcHRpb246ICdNYXJrZXRpbmcnLCBrZXk6ICdtYXJrZXRpbmcnIH0sXG4gICAgICAgICAgICAgIHsgb3B0aW9uOiAnU2FsZXMnLCBrZXk6ICdzYWxlcycgfSxcbiAgICAgICAgICAgIF19XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXNlbGVjdD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkXG4gICAgICAgICAgICBrZXk9XCJkb2N1bWVudHNcIlxuICAgICAgICAgICAgLmxhYmVsPSR7J1VwbG9hZCBEb2N1bWVudHMnfVxuICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J1BERiwgRE9DLCBvciBET0NYIGZpbGVzIHVwIHRvIDEwTUInfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgQXBwbGljYXRpb248L2RlZXMtZm9ybS1zdWJtaXQ+XG4gICAgICAgIDwvZGVlcy1mb3JtPlxuICAgICAgICBcbiAgICAgICAgPGRpdiBpZD1cInN0YXR1cy1kaXNwbGF5XCI+PC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICA8L2Rpdj5cbmA7IiwgImltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIGh0bWwsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIERlZXNFbGVtZW50LFxuICB0eXBlIENTU1Jlc3VsdCxcbiAgcHJvcGVydHksXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcblxuaW1wb3J0IHsgRGVlc0lucHV0Q2hlY2tib3ggfSBmcm9tICcuLi8uLi8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtY2hlY2tib3gvZGVlcy1pbnB1dC1jaGVja2JveC5qcyc7XG5pbXBvcnQgeyBEZWVzSW5wdXRDb2RlIH0gZnJvbSAnLi4vLi4vMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LWNvZGUvZGVlcy1pbnB1dC1jb2RlLmpzJztcbmltcG9ydCB7IERlZXNJbnB1dERhdGVwaWNrZXIgfSBmcm9tICcuLi8uLi8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtZGF0ZXBpY2tlci9pbmRleC5qcyc7XG5pbXBvcnQgeyBEZWVzSW5wdXRUZXh0IH0gZnJvbSAnLi4vLi4vMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXRleHQvZGVlcy1pbnB1dC10ZXh0LmpzJztcbmltcG9ydCB7IERlZXNJbnB1dFF1YW50aXR5U2VsZWN0b3IgfSBmcm9tICcuLi8uLi8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvci9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3IuanMnO1xuaW1wb3J0IHsgRGVlc0lucHV0UmFkaW9ncm91cCB9IGZyb20gJy4uLy4uLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1yYWRpb2dyb3VwL2RlZXMtaW5wdXQtcmFkaW9ncm91cC5qcyc7XG5pbXBvcnQgeyBEZWVzSW5wdXREcm9wZG93biB9IGZyb20gJy4uLy4uLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1kcm9wZG93bi9kZWVzLWlucHV0LWRyb3Bkb3duLmpzJztcbmltcG9ydCB7IERlZXNJbnB1dEZpbGV1cGxvYWQgfSBmcm9tICcuLi8uLi8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtZmlsZXVwbG9hZC9pbmRleC5qcyc7XG5pbXBvcnQgeyBEZWVzSW5wdXRJYmFuIH0gZnJvbSAnLi4vLi4vMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LWliYW4vZGVlcy1pbnB1dC1pYmFuLmpzJztcbmltcG9ydCB7IERlZXNJbnB1dE11bHRpdG9nZ2xlIH0gZnJvbSAnLi4vLi4vMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlL2RlZXMtaW5wdXQtbXVsdGl0b2dnbGUuanMnO1xuaW1wb3J0IHsgRGVlc0lucHV0UGhvbmUgfSBmcm9tICcuLi8uLi8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtcGhvbmUvZGVlcy1pbnB1dC1waG9uZS5qcyc7XG5pbXBvcnQgeyBEZWVzSW5wdXRUeXBlbGlzdCB9IGZyb20gJy4uLy4uLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC10eXBlbGlzdC9kZWVzLWlucHV0LXR5cGVsaXN0LmpzJztcbmltcG9ydCB7IERlZXNGb3JtU3VibWl0IH0gZnJvbSAnLi4vZGVlcy1mb3JtLXN1Ym1pdC9kZWVzLWZvcm0tc3VibWl0LmpzJztcbmltcG9ydCB7IERlZXNUYWJsZSB9IGZyb20gJy4uLy4uL2RlZXMtdGFibGUvaW5kZXguanMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtZm9ybS5kZW1vLmpzJztcblxuLy8gVW5pZmllZCBzZXQgZm9yIGZvcm0gaW5wdXQgdHlwZXNcbmNvbnN0IEZPUk1fSU5QVVRfVFlQRVMgPSBbXG4gIERlZXNJbnB1dENoZWNrYm94LFxuICBEZWVzSW5wdXRDb2RlLFxuICBEZWVzSW5wdXREYXRlcGlja2VyLFxuICBEZWVzSW5wdXREcm9wZG93bixcbiAgRGVlc0lucHV0RmlsZXVwbG9hZCxcbiAgRGVlc0lucHV0SWJhbixcbiAgRGVlc0lucHV0TXVsdGl0b2dnbGUsXG4gIERlZXNJbnB1dFBob25lLFxuICBEZWVzSW5wdXRRdWFudGl0eVNlbGVjdG9yLFxuICBEZWVzSW5wdXRSYWRpb2dyb3VwLFxuICBEZWVzSW5wdXRUZXh0LFxuICBEZWVzSW5wdXRUeXBlbGlzdCxcbiAgRGVlc1RhYmxlLFxuXTtcblxuZXhwb3J0IHR5cGUgVEZvcm1JbnB1dEVsZW1lbnQgPVxuICB8IERlZXNJbnB1dENoZWNrYm94XG4gIHwgRGVlc0lucHV0Q29kZVxuICB8IERlZXNJbnB1dERhdGVwaWNrZXJcbiAgfCBEZWVzSW5wdXREcm9wZG93blxuICB8IERlZXNJbnB1dEZpbGV1cGxvYWRcbiAgfCBEZWVzSW5wdXRJYmFuXG4gIHwgRGVlc0lucHV0TXVsdGl0b2dnbGVcbiAgfCBEZWVzSW5wdXRQaG9uZVxuICB8IERlZXNJbnB1dFF1YW50aXR5U2VsZWN0b3JcbiAgfCBEZWVzSW5wdXRSYWRpb2dyb3VwXG4gIHwgRGVlc0lucHV0VGV4dFxuICB8IERlZXNJbnB1dFR5cGVsaXN0XG4gIHwgRGVlc1RhYmxlPGFueT47XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtZm9ybSc6IERlZXNGb3JtO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWZvcm0nKVxuZXhwb3J0IGNsYXNzIERlZXNGb3JtIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnRm9ybSc7XG5cbiAgcHVibGljIG5hbWU6IHN0cmluZyA9ICdteWZvcm0nO1xuICBwdWJsaWMgY2hhbmdlU3ViamVjdCA9IG5ldyBkb210b29scy5wbHVnaW5zLnNtYXJ0cngucnhqcy5TdWJqZWN0KCk7XG4gIHB1YmxpYyByZWFkeURlZmVycmVkID0gZG9tdG9vbHMucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtcblxuICAvKipcbiAgICogQ29udHJvbHMgdGhlIGxheW91dCBtb2RlIG9mIGNoaWxkIGlucHV0IGNvbXBvbmVudHNcbiAgICogV2hlbiB0cnVlLCBzZXRzIGFsbCBjaGlsZCBpbnB1dHMgdG8gaG9yaXpvbnRhbCBsYXlvdXRcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUsIGF0dHJpYnV0ZTogJ2hvcml6b250YWwtbGF5b3V0JyB9KVxuICBhY2Nlc3NvciBob3Jpem9udGFsTGF5b3V0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3R5bGU+XG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgICAgfVxuICAgICAgPC9zdHlsZT5cbiAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpcnN0VXBkYXRlZCgpIHtcbiAgICBjb25zdCBmb3JtQ2hpbGRyZW4gPSB0aGlzLmdldEZvcm1FbGVtZW50cygpO1xuICAgIHRoaXMudXBkYXRlUmVxdWlyZWRTdGF0dXMoKTtcbiAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBmb3JtQ2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVPYmplY3QgPSBhd2FpdCB0aGlzLmNvbGxlY3RGb3JtRGF0YSgpO1xuICAgICAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh2YWx1ZU9iamVjdCk7XG4gICAgICAgIGNvbnNvbGUubG9nKHZhbHVlT2JqZWN0KTtcbiAgICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZFN0YXR1cygpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuYWRkQmVoYXZpb3VycygpO1xuICAgIHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9ybUVsZW1lbnRzKCk6IEFycmF5PFRGb3JtSW5wdXRFbGVtZW50PiB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbikuZmlsdGVyKChjaGlsZCkgPT5cbiAgICAgIEZPUk1fSU5QVVRfVFlQRVMuaW5jbHVkZXMoY2hpbGQuY29uc3RydWN0b3IgYXMgYW55KVxuICAgICkgYXMgdW5rbm93biBhcyBURm9ybUlucHV0RWxlbWVudFtdO1xuICB9XG5cbiAgcHVibGljIGdldFN1Ym1pdEJ1dHRvbigpOiBEZWVzRm9ybVN1Ym1pdCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbikuZmluZChcbiAgICAgIChjaGlsZCkgPT4gY2hpbGQgaW5zdGFuY2VvZiBEZWVzRm9ybVN1Ym1pdFxuICAgICkgYXMgRGVlc0Zvcm1TdWJtaXQ7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlUmVxdWlyZWRTdGF0dXMoKSB7XG4gICAgY29uc29sZS5sb2coJ2NoZWNraW5nIHRoZSByZXF1aXJlZCBzdGF0dXMuJyk7XG5cbiAgICBsZXQgcmVxdWlyZWRPSyA9IHRydWU7XG4gICAgZm9yIChjb25zdCBjaGlsZEFyZyBvZiB0aGlzLmdldEZvcm1FbGVtZW50cygpKSB7XG4gICAgICBpZiAoY2hpbGRBcmcucmVxdWlyZWQgJiYgIWNoaWxkQXJnLnZhbHVlKSB7XG4gICAgICAgIHJlcXVpcmVkT0sgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuZ2V0U3VibWl0QnV0dG9uKCkpIHtcbiAgICAgIHRoaXMuZ2V0U3VibWl0QnV0dG9uKCkuZGlzYWJsZWQgPSAhcmVxdWlyZWRPSztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogY29sbGVjdHMgdGhlIGZvcm0gZGF0YVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGNvbGxlY3RGb3JtRGF0YSgpIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7XG4gICAgY29uc3QgdmFsdWVPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IGFueVtdIHwgRmlsZVtdIHwgeyBvcHRpb246IHN0cmluZzsga2V5OiBzdHJpbmc7IHBheWxvYWQ/OiBhbnkgfSB9ID0ge307XG4gICAgXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgaWYgKCFjaGlsZC5rZXkpIHtcbiAgICAgICAgY29uc29sZS5sb2coYGZvcm0gZWxlbWVudCB3aXRoIGxhYmVsIFwiJHtjaGlsZC5sYWJlbH1cIiBoYXMgbm8ga2V5LiBza2lwcGluZy5gKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHZhbHVlT2JqZWN0W2NoaWxkLmtleV0gPSBjaGlsZC52YWx1ZTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHZhbHVlT2JqZWN0O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdhdGhlckFuZERpc3BhdGNoKCkge1xuICAgIGNvbnN0IHZhbHVlT2JqZWN0ID0gYXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKTtcbiAgICBjb25zdCBmb3JtRGF0YUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdmb3JtRGF0YScsIHtcbiAgICAgIGRldGFpbDoge1xuICAgICAgICBkYXRhOiB2YWx1ZU9iamVjdCxcbiAgICAgIH0sXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChmb3JtRGF0YUV2ZW50KTtcbiAgICBjb25zb2xlLmxvZygnZGlzcGF0Y2hlZCBkYXRhOicpO1xuICAgIGNvbnNvbGUubG9nKHZhbHVlT2JqZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTdGF0dXMoXG4gICAgdmlzdWFsU3RhdGVBcmc6ICdub3JtYWwnIHwgJ3BlbmRpbmcnIHwgJ2Vycm9yJyB8ICdzdWNjZXNzJyxcbiAgICB0ZXh0U3RhdGVBcmc6IHN0cmluZ1xuICApIHtcbiAgICBjb25zdCBpbnB1dENoaWxkcmVuID0gdGhpcy5nZXRGb3JtRWxlbWVudHMoKTtcbiAgICBjb25zdCBzdWJtaXRCdXR0b24gPSB0aGlzLmdldFN1Ym1pdEJ1dHRvbigpO1xuXG4gICAgc3dpdGNoICh2aXN1YWxTdGF0ZUFyZykge1xuICAgICAgY2FzZSAnbm9ybWFsJzpcbiAgICAgICAgc3VibWl0QnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHN1Ym1pdEJ1dHRvbi5zdGF0dXMgPSAnbm9ybWFsJztcbiAgICAgICAgZm9yIChjb25zdCBpbnB1dENoaWxkIG9mIGlucHV0Q2hpbGRyZW4pIHtcbiAgICAgICAgICBpbnB1dENoaWxkLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwZW5kaW5nJzpcbiAgICAgICAgc3VibWl0QnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgc3VibWl0QnV0dG9uLnN0YXR1cyA9ICdwZW5kaW5nJztcbiAgICAgICAgZm9yIChjb25zdCBpbnB1dENoaWxkIG9mIGlucHV0Q2hpbGRyZW4pIHtcbiAgICAgICAgICBpbnB1dENoaWxkLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICBzdWJtaXRCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICBzdWJtaXRCdXR0b24uc3RhdHVzID0gJ3N1Y2Nlc3MnO1xuICAgICAgICBmb3IgKGNvbnN0IGlucHV0Q2hpbGQgb2YgaW5wdXRDaGlsZHJlbikge1xuICAgICAgICAgIGlucHV0Q2hpbGQuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICBzdWJtaXRCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICBzdWJtaXRCdXR0b24uc3RhdHVzID0gJ2Vycm9yJztcbiAgICAgICAgZm9yIChjb25zdCBpbnB1dENoaWxkIG9mIGlucHV0Q2hpbGRyZW4pIHtcbiAgICAgICAgICBpbnB1dENoaWxkLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBzdWJtaXRCdXR0b24udGV4dCA9IHRleHRTdGF0ZUFyZztcbiAgfVxuXG4gIC8qKlxuICAgKiByZXNldHMgdGhlIGZvcm1cbiAgICovXG4gIHJlc2V0KCkge1xuICAgIGNvbnN0IGlucHV0Q2hpbGRyZW4gPSB0aGlzLmdldEZvcm1FbGVtZW50cygpO1xuICAgIGNvbnN0IHN1Ym1pdEJ1dHRvbiA9IHRoaXMuZ2V0U3VibWl0QnV0dG9uKCk7XG5cbiAgICBmb3IgKGNvbnN0IGlucHV0Q2hpbGQgb2YgaW5wdXRDaGlsZHJlbikge1xuICAgICAgaW5wdXRDaGlsZC52YWx1ZSA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuc2V0U3RhdHVzKCdub3JtYWwnLCAnU3VibWl0Jyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkQmVoYXZpb3VycygpIHtcbiAgICAvLyBVc2UgZXZlbnQgZGVsZWdhdGlvblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIERlZXNFbGVtZW50O1xuICAgICAgaWYgKCFGT1JNX0lOUFVUX1RZUEVTLmluY2x1ZGVzKHRhcmdldC5jb25zdHJ1Y3RvciBhcyBhbnkpKSByZXR1cm47XG5cbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmdldEZvcm1FbGVtZW50cygpO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBjaGlsZHJlbi5pbmRleE9mKHRhcmdldCBhcyBhbnkpO1xuICAgICAgICBpZiAoY3VycmVudEluZGV4IDwgY2hpbGRyZW4ubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIGNoaWxkcmVuW2N1cnJlbnRJbmRleCArIDFdLmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0LmJsdXIoKTtcbiAgICAgICAgICB0aGlzLmdldFN1Ym1pdEJ1dHRvbigpPy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgbGF5b3V0IG1vZGUgb2YgY2hpbGQgaW5wdXQgY29tcG9uZW50cyBiYXNlZCBvbiBmb3JtJ3MgaG9yaXpvbnRhbExheW91dCBwcm9wZXJ0eVxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVDaGlsZHJlbkxheW91dE1vZGUoKSB7XG4gICAgY29uc3QgZm9ybUNoaWxkcmVuID0gdGhpcy5nZXRGb3JtRWxlbWVudHMoKTtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGZvcm1DaGlsZHJlbikge1xuICAgICAgaWYgKCdsYXlvdXRNb2RlJyBpbiBjaGlsZCkge1xuICAgICAgICAvLyBUaGUgY2hpbGQncyBhdXRvIG1vZGUgd2lsbCBkZXRlY3QgdGhpcyBmb3JtJ3MgaG9yaXpvbnRhbC1sYXlvdXQgYXR0cmlidXRlXG4gICAgICAgIChjaGlsZCBhcyBhbnkpLmxheW91dE1vZGUgPSAnYXV0byc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHByb3BlcnRpZXMgY2hhbmdlXG4gICAqL1xuICB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBNYXA8c3RyaW5nLCBhbnk+KSB7XG4gICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnaG9yaXpvbnRhbExheW91dCcpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuTGF5b3V0TW9kZSgpO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7IGh0bWwsIGNzcywgY3NzTWFuYWdlciwgZG9tdG9vbHMgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICdAZGVzaWduLmVzdGF0ZS9kZWVzLXdjY3Rvb2xzL2RlbW90b29scyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtcGFuZWwvZGVlcy1wYW5lbC5qcyc7XG5pbXBvcnQgJy4uLy4uLzAwZ3JvdXAtZm9ybS9kZWVzLWZvcm0vZGVlcy1mb3JtLmpzJztcbmltcG9ydCAnLi4vLi4vMDBncm91cC1mb3JtL2RlZXMtZm9ybS1zdWJtaXQvZGVlcy1mb3JtLXN1Ym1pdC5qcyc7XG5pbXBvcnQgJy4uLy4uLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC10ZXh0L2RlZXMtaW5wdXQtdGV4dC5qcyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0IHR5cGUgeyBEZWVzQnV0dG9uIH0gZnJvbSAnLi4vZGVlcy1idXR0b24vZGVlcy1idXR0b24uanMnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiBodG1sYFxuICA8c3R5bGU+XG4gICAgJHtjc3NgXG4gICAgICAuZGVtby1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAgIFxuICAgICAgZGVlcy1wYW5lbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5idXR0b24tZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnZlcnRpY2FsLWdyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5kZW1vLW91dHB1dCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDQwJSA5Ni4xJSknLCAnaHNsKDIxNSAyMC4yJSAxNi44JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuMyAyNSUgOC44JSknLCAnaHNsKDIxMCA0MCUgOTglKScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmljb24tcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29kZS1zbmlwcGV0IHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgNDAlIDk2LjElKScsICdoc2woMjE1IDIwLjIlIDExLjglKScpfTtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogNHB4IDA7XG4gICAgICB9XG4gICAgYH1cbiAgPC9zdHlsZT5cbiAgXG4gIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRhaW5lclwiPlxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gTG9nIGJ1dHRvbiBjbGlja3MgZm9yIGRlbW8gcHVycG9zZXNcbiAgICAgIGNvbnN0IGJ1dHRvbnMgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtYnV0dG9uJyk7XG4gICAgICBidXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2tlZCcsICgpID0+IHtcbiAgICAgICAgICBjb25zdCB0eXBlID0gYnV0dG9uLmdldEF0dHJpYnV0ZSgndHlwZScpIHx8ICdkZWZhdWx0JztcbiAgICAgICAgICBjb25zb2xlLmxvZyhgQnV0dG9uIHZhcmlhbnQgY2xpY2tlZDogJHt0eXBlfWApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzEuIEJ1dHRvbiBWYXJpYW50cyd9IC5zdWJ0aXRsZT0keydEaWZmZXJlbnQgdmlzdWFsIHN0eWxlcyBmb3IgdmFyaW91cyB1c2UgY2FzZXMnfT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncm91cFwiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwiZGVmYXVsdFwiPkRlZmF1bHQ8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwic2Vjb25kYXJ5XCI+U2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT1cImRlc3RydWN0aXZlXCI+RGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwib3V0bGluZVwiPk91dGxpbmU8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwiZ2hvc3RcIj5HaG9zdDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJsaW5rXCI+TGluayBCdXR0b248L2RlZXMtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+XG4gICAgXG4gICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKGVsZW1lbnRBcmc6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAvLyBEZW1vbnN0cmF0ZSBzaXplIGRpZmZlcmVuY2VzIHByb2dyYW1tYXRpY2FsbHlcbiAgICAgIGNvbnN0IGJ1dHRvbnMgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtYnV0dG9uJyk7XG4gICAgICBidXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2tlZCcsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBzaXplID0gYnV0dG9uLmdldEF0dHJpYnV0ZSgnc2l6ZScpIHx8ICdkZWZhdWx0JztcbiAgICAgICAgICBjb25zb2xlLmxvZyhgQnV0dG9uIHNpemU6ICR7c2l6ZX1gKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keycyLiBCdXR0b24gU2l6ZXMnfSAuc3VidGl0bGU9JHsnTXVsdGlwbGUgc2l6ZXMgZm9yIGRpZmZlcmVudCBjb250ZXh0cyBhbmQgdXNlIGNhc2VzJ30+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT1cInNtXCI+U21hbGwgQnV0dG9uPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT1cImRlZmF1bHRcIj5EZWZhdWx0IFNpemU8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPVwibGdcIj5MYXJnZSBCdXR0b248L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPVwiaWNvblwiIHR5cGU9XCJvdXRsaW5lXCIgLnRleHQ9JHsnXHVEODNEXHVERTgwJ30+PC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxNnB4O1wiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPVwic21cIiB0eXBlPVwic2Vjb25kYXJ5XCI+U21hbGwgU2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT1cImRlZmF1bHRcIiB0eXBlPVwiZGVzdHJ1Y3RpdmVcIj5EZWZhdWx0IERlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT1cImxnXCIgdHlwZT1cIm91dGxpbmVcIj5MYXJnZSBPdXRsaW5lPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICAgIFxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gVHJhY2sgaWNvbiBidXR0b24gY2xpY2tzXG4gICAgICBjb25zdCBpY29uQnV0dG9ucyA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1idXR0b24nKTtcbiAgICAgIGljb25CdXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2tlZCcsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBoYXNJY29uID0gYnV0dG9uLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaWNvbicpO1xuICAgICAgICAgIGlmIChoYXNJY29uKSB7XG4gICAgICAgICAgICBjb25zdCBpY29uTmFtZSA9IGhhc0ljb24uZ2V0QXR0cmlidXRlKCdpY29uRkEnKSB8fCAndW5rbm93bic7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgSWNvbiBidXR0b24gY2xpY2tlZDogJHtpY29uTmFtZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfX0+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnMy4gQnV0dG9ucyB3aXRoIEljb25zJ30gLnN1YnRpdGxlPSR7J0NvbWJpbmluZyBpY29ucyB3aXRoIHRleHQgZm9yIGVuaGFuY2VkIHZpc3VhbCBjb21tdW5pY2F0aW9uJ30+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXJvd1wiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPVwiZmFQbHVzXCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICBBZGQgSXRlbVxuICAgICAgICAgIDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJkZXN0cnVjdGl2ZVwiPlxuICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uRkE9XCJmYVRyYXNoXCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICBEZWxldGVcbiAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uRkE9XCJmYURvd25sb2FkXCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICBEb3dubG9hZFxuICAgICAgICAgIDwvZGVlcy1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24tcm93XCI+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJzZWNvbmRhcnlcIiBzaXplPVwic21cIj5cbiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPVwiZmFDb2dcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgIFNldHRpbmdzXG4gICAgICAgICAgPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT1cImdob3N0XCI+XG4gICAgICAgICAgICA8ZGVlcy1pY29uIGljb25GQT1cImZhQ2hldnJvbkxlZnRcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgIEJhY2tcbiAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwiZ2hvc3RcIj5cbiAgICAgICAgICAgIE5leHRcbiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPVwiZmFDaGV2cm9uUmlnaHRcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXJvd1wiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPVwiaWNvblwiIHR5cGU9XCJkZWZhdWx0XCI+XG4gICAgICAgICAgICA8ZGVlcy1pY29uIGljb25GQT1cImZhUGx1c1wiPjwvZGVlcy1pY29uPlxuICAgICAgICAgIDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9XCJpY29uXCIgdHlwZT1cInNlY29uZGFyeVwiPlxuICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uRkE9XCJmYUNvZ1wiPjwvZGVlcy1pY29uPlxuICAgICAgICAgIDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9XCJpY29uXCIgdHlwZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPVwiZmFTZWFyY2hcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPVwiaWNvblwiIHR5cGU9XCJnaG9zdFwiPlxuICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uRkE9XCJmYUVsbGlwc2lzVlwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgIDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9XCJpY29uXCIgdHlwZT1cImRlc3RydWN0aXZlXCI+XG4gICAgICAgICAgICA8ZGVlcy1pY29uIGljb25GQT1cImZhVHJhc2hcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+XG4gICAgXG4gICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKGVsZW1lbnRBcmc6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAvLyBEZW1vbnN0cmF0ZSBzdGF0dXMgY2hhbmdlc1xuICAgICAgY29uc3QgcGVuZGluZ0J1dHRvbiA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bc3RhdHVzPVwicGVuZGluZ1wiXScpO1xuICAgICAgY29uc3Qgc3VjY2Vzc0J1dHRvbiA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bc3RhdHVzPVwic3VjY2Vzc1wiXScpO1xuICAgICAgY29uc3QgZXJyb3JCdXR0b24gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3N0YXR1cz1cImVycm9yXCJdJyk7XG4gICAgICBcbiAgICAgIC8vIFNpbXVsYXRlIHN0YXR1cyBjaGFuZ2VzXG4gICAgICBpZiAocGVuZGluZ0J1dHRvbikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUGVuZGluZyBidXR0b24gaXMgc2hvd2luZyBsb2FkaW5nIHN0YXRlJyk7XG4gICAgICAgIH0sIDEwMDApO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoc3VjY2Vzc0J1dHRvbikge1xuICAgICAgICBzdWNjZXNzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrZWQnLCAoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1N1Y2Nlc3Mgc3RhdGUgYnV0dG9uIGNsaWNrZWQnKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChlcnJvckJ1dHRvbikge1xuICAgICAgICBlcnJvckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGlja2VkJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBzdGF0ZSBidXR0b24gY2xpY2tlZCcpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc0LiBCdXR0b24gU3RhdGVzJ30gLnN1YnRpdGxlPSR7J0RpZmZlcmVudCBzdGF0ZXMgdG8gaW5kaWNhdGUgYnV0dG9uIHN0YXR1cyBhbmQgbG9hZGluZyBjb25kaXRpb25zJ30+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPVwibm9ybWFsXCI+Tm9ybWFsPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPVwicGVuZGluZ1wiPlByb2Nlc3NpbmcuLi48L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzdGF0dXM9XCJzdWNjZXNzXCI+U3VjY2VzcyE8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzdGF0dXM9XCJlcnJvclwiPkVycm9yITwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIGRpc2FibGVkPkRpc2FibGVkPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxNnB4O1wiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwic2Vjb25kYXJ5XCIgc3RhdHVzPVwicGVuZGluZ1wiIHNpemU9XCJzbVwiPlNtYWxsIExvYWRpbmc8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwib3V0bGluZVwiIHN0YXR1cz1cInBlbmRpbmdcIj5EZWZhdWx0IExvYWRpbmc8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwiZGVzdHJ1Y3RpdmVcIiBzdGF0dXM9XCJwZW5kaW5nXCIgc2l6ZT1cImxnXCI+TGFyZ2UgTG9hZGluZzwvZGVlcy1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cbiAgICBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIC8vIFNldCB1cCBjbGljayBoYW5kbGVycyB3aXRoIHRoZSBvdXRwdXQgZWxlbWVudFxuICAgICAgY29uc3Qgb3V0cHV0ID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCcjY2xpY2stb3V0cHV0Jyk7XG4gICAgICBcbiAgICAgIGNvbnN0IGNsaWNrTWVCdG4gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uOmZpcnN0LW9mLXR5cGUnKTtcbiAgICAgIGNvbnN0IGRhdGFCdG4gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9XCJzZWNvbmRhcnlcIl0nKTtcbiAgICAgIGNvbnN0IGFzeW5jQnRuID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvblt0eXBlPVwiZGVzdHJ1Y3RpdmVcIl0nKTtcbiAgICAgIFxuICAgICAgaWYgKGNsaWNrTWVCdG4gJiYgb3V0cHV0KSB7XG4gICAgICAgIGNsaWNrTWVCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2tlZCcsICgpID0+IHtcbiAgICAgICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSBgQ2xpY2tlZDogRGVmYXVsdCBidXR0b24gYXQgJHtuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpfWA7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoZGF0YUJ0biAmJiBvdXRwdXQpIHtcbiAgICAgICAgZGF0YUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGlja2VkJywgKGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gYENsaWNrZWQ6IFNlY29uZGFyeSBidXR0b24gd2l0aCBkYXRhOiAke2UuZGV0YWlsLmRhdGF9YDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChhc3luY0J0biAmJiBvdXRwdXQpIHtcbiAgICAgICAgYXN5bmNCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2tlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAnUHJvY2Vzc2luZy4uLic7XG4gICAgICAgICAgYXdhaXQgZG9tdG9vbHMucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDIwMDApO1xuICAgICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9ICdBY3Rpb24gY29tcGxldGVkISc7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzUuIEV2ZW50IEhhbmRsaW5nJ30gLnN1YnRpdGxlPSR7J0ludGVyYWN0aXZlIGV4YW1wbGVzIHdpdGggY2xpY2sgZXZlbnQgaGFuZGxpbmcnfT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncm91cFwiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DbGljayBNZTwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJzZWNvbmRhcnlcIiAuZXZlbnREZXRhaWxEYXRhPSR7J2N1c3RvbS1kYXRhLTEyMyd9PlxuICAgICAgICAgICAgQ2xpY2sgd2l0aCBEYXRhXG4gICAgICAgICAgPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT1cImRlc3RydWN0aXZlXCI+QXN5bmMgQWN0aW9uPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGlkPVwiY2xpY2stb3V0cHV0XCIgY2xhc3M9XCJkZW1vLW91dHB1dFwiPlxuICAgICAgICAgIDxlbT5DbGljayBhIGJ1dHRvbiB0byBzZWUgdGhlIHJlc3VsdC4uLjwvZW0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cbiAgICBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIC8vIFNldCB1cCBmb3JtIHN1Ym1pc3Npb24gaGFuZGxpbmdcbiAgICAgIGNvbnN0IGZvcm0gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtZm9ybScpO1xuICAgICAgY29uc3Qgb3V0cHV0ID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCcjZm9ybS1vdXRwdXQnKTtcbiAgICAgIFxuICAgICAgaWYgKGZvcm0gJiYgb3V0cHV0KSB7XG4gICAgICAgIGZvcm0uYWRkRXZlbnRMaXN0ZW5lcignZm9ybURhdGEnLCAoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1MID0gJzxzdHJvbmc+Rm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOjwvc3Ryb25nPjxicj4nICsgXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShlLmRldGFpbC5kYXRhLCBudWxsLCAyKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFRyYWNrIG5vbi1zdWJtaXQgYnV0dG9uIGNsaWNrc1xuICAgICAgY29uc3QgZHJhZnRCdG4gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9XCJzZWNvbmRhcnlcIl0nKTtcbiAgICAgIGNvbnN0IGNhbmNlbEJ0biA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT1cImdob3N0XCJdJyk7XG4gICAgICBcbiAgICAgIGlmIChkcmFmdEJ0bikge1xuICAgICAgICBkcmFmdEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGlja2VkJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdTYXZlIERyYWZ0IGNsaWNrZWQnKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChjYW5jZWxCdG4pIHtcbiAgICAgICAgY2FuY2VsQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrZWQnLCAoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0NhbmNlbCBjbGlja2VkJyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzYuIEZvcm0gSW50ZWdyYXRpb24nfSAuc3VidGl0bGU9JHsnQnV0dG9ucyB3b3JraW5nIHdpdGhpbiBmb3JtcyB3aXRoIGF1dG9tYXRpYyBzcGFjaW5nJ30+XG4gICAgICAgIDxkZWVzLWZvcm0+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD1cIk5hbWVcIiBrZXk9XCJuYW1lXCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD1cIkVtYWlsXCIga2V5PVwiZW1haWxcIiB0eXBlPVwiZW1haWxcIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPVwiTWVzc2FnZVwiIGtleT1cIm1lc3NhZ2VcIiBpc011bHRpbGluZT48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT1cInNlY29uZGFyeVwiPlNhdmUgRHJhZnQ8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwiZ2hvc3RcIj5DYW5jZWw8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlN1Ym1pdCBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PlxuICAgICAgICA8L2RlZXMtZm9ybT5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgaWQ9XCJmb3JtLW91dHB1dFwiIGNsYXNzPVwiZGVtby1vdXRwdXRcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmUtd3JhcDtcIj5cbiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgZGF0YS4uLjwvZW0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cbiAgICBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIC8vIExvZyBsZWdhY3kgdHlwZSBtYXBwaW5nc1xuICAgICAgY29uc3QgYnV0dG9ucyA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1idXR0b24nKTtcbiAgICAgIGJ1dHRvbnMuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBidXR0b24uZ2V0QXR0cmlidXRlKCd0eXBlJyk7XG4gICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExlZ2FjeSB0eXBlIFwiJHt0eXBlfVwiIGlzIHN1cHBvcnRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc3LiBCYWNrd2FyZCBDb21wYXRpYmlsaXR5J30gLnN1YnRpdGxlPSR7J09sZCBidXR0b24gdHlwZXMgYXJlIGF1dG9tYXRpY2FsbHkgbWFwcGVkIHRvIG5ldyB2YXJpYW50cyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJub3JtYWxcIj5Ob3JtYWwgXHUyMTkyIERlZmF1bHQ8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwiaGlnaGxpZ2h0ZWRcIj5IaWdobGlnaHRlZCBcdTIxOTIgRGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwiZGlzY3JlZXRcIj5EaXNjcmVldCBcdTIxOTIgT3V0bGluZTwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJiaWdcIj5CaWcgXHUyMTkyIExhcmdlIFNpemU8L2RlZXMtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDxwIHN0eWxlPVwibWFyZ2luLXRvcDogMTZweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA1Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA1NS4xJSknKX07XCI+XG4gICAgICAgICAgVGhlc2UgbGVnYWN5IHR5cGUgdmFsdWVzIGFyZSBtYWludGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGJ1dCB3ZSByZWNvbW1lbmQgdXNpbmcgdGhlIG5ldyB2YXJpYW50IHN5c3RlbS5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cbiAgICBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIC8vIFRyYWNrIGFjdGlvbiBncm91cCBjbGlja3NcbiAgICAgIGNvbnN0IGFjdGlvbkdyb3VwID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yQWxsKCcudmVydGljYWwtZ3JvdXAnKVswXTtcbiAgICAgIGNvbnN0IGRhbmdlckdyb3VwID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yQWxsKCcudmVydGljYWwtZ3JvdXAnKVsxXTtcbiAgICAgIFxuICAgICAgaWYgKGFjdGlvbkdyb3VwKSB7XG4gICAgICAgIGNvbnN0IGJ1dHRvbnMgPSBhY3Rpb25Hcm91cC5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWJ1dHRvbicpO1xuICAgICAgICBidXR0b25zLmZvckVhY2goKGJ1dHRvbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2tlZCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IFsnU2F2ZSBDaGFuZ2VzJywgJ0Rpc2NhcmQnLCAnSGVscCddW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBBY3Rpb24gZ3JvdXA6ICR7YWN0aW9ufSBjbGlja2VkYCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoZGFuZ2VyR3JvdXApIHtcbiAgICAgICAgY29uc3QgYnV0dG9ucyA9IGRhbmdlckdyb3VwLnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtYnV0dG9uJyk7XG4gICAgICAgIGJ1dHRvbnMuZm9yRWFjaCgoYnV0dG9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGlja2VkJywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gWydEZWxldGUgQWNjb3VudCcsICdBcmNoaXZlIERhdGEnLCAnTm90IEF2YWlsYWJsZSddW2luZGV4XTtcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gMikgeyAvLyBTa2lwIGRpc2FibGVkIGJ1dHRvblxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgRGFuZ2VyIHpvbmU6ICR7YWN0aW9ufSBjbGlja2VkYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzguIEFkdmFuY2VkIEV4YW1wbGVzJ30gLnN1YnRpdGxlPSR7J0NvbXBsZXggYnV0dG9uIGNvbmZpZ3VyYXRpb25zIGFuZCByZWFsLXdvcmxkIHVzZSBjYXNlcyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1ncm91cFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1ncm91cFwiPlxuICAgICAgICAgICAgPGg0IHN0eWxlPVwibWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDtcIj5BY3Rpb24gR3JvdXA8L2g0PlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJkZWZhdWx0XCIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPVwiZmFTYXZlXCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgIFNhdmUgQ2hhbmdlc1xuICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPVwiZmFVbmRvXCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgIERpc2NhcmRcbiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT1cImdob3N0XCIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPVwiZmFRdWVzdGlvbkNpcmNsZVwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICBIZWxwXG4gICAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJ0aWNhbC1ncm91cFwiPlxuICAgICAgICAgICAgPGg0IHN0eWxlPVwibWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDtcIj5EYW5nZXIgWm9uZTwvaDQ+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT1cImRlc3RydWN0aXZlXCIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPVwiZmFUcmFzaFwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICBEZWxldGUgQWNjb3VudFxuICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwib3V0bGluZVwiIHNpemU9XCJzbVwiPlxuICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb25GQT1cImZhQXJjaGl2ZVwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICBBcmNoaXZlIERhdGFcbiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT1cImdob3N0XCIgc2l6ZT1cInNtXCIgZGlzYWJsZWQ+XG4gICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbkZBPVwiZmFCYW5cIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgTm90IEF2YWlsYWJsZVxuICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMjRweDtcIj5cbiAgICAgICAgICA8aDQgc3R5bGU9XCJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwO1wiPkNvZGUgRXhhbXBsZTo8L2g0PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2RlLXNuaXBwZXRcIj5cbiAgICAgICAgICAgICZsdDtkZWVzLWJ1dHRvbiB0eXBlPVwiZGVmYXVsdFwiIHNpemU9XCJzbVwiIEBjbGlja2VkPVwiXFwke2hhbmRsZUNsaWNrfVwiJmd0Ozxicj5cbiAgICAgICAgICAgICZuYnNwOyZuYnNwOyZsdDtkZWVzLWljb24gaWNvbkZBPVwiZmFTYXZlXCImZ3Q7Jmx0Oy9kZWVzLWljb24mZ3Q7PGJyPlxuICAgICAgICAgICAgJm5ic3A7Jm5ic3A7U2F2ZSBDaGFuZ2VzPGJyPlxuICAgICAgICAgICAgJmx0Oy9kZWVzLWJ1dHRvbiZndDtcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICA8L2Rpdj5cbmA7IiwgImltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIGh0bWwsXG4gIERlZXNFbGVtZW50LFxuICBwcm9wZXJ0eSxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgY3NzTWFuYWdlcixcbiAgY3NzLFxuICB0eXBlIENTU1Jlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLWJ1dHRvbi5kZW1vLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWJ1dHRvbic6IERlZXNCdXR0b247XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtYnV0dG9uJylcbmV4cG9ydCBjbGFzcyBEZWVzQnV0dG9uIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnQnV0dG9uJztcblxuICBAcHJvcGVydHkoe1xuICAgIHJlZmxlY3Q6IHRydWUsXG4gICAgaGFzQ2hhbmdlZCgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSlcbiAgYWNjZXNzb3IgdGV4dDogc3RyaW5nO1xuXG4gIEBwcm9wZXJ0eSgpXG4gIGFjY2Vzc29yIGV2ZW50RGV0YWlsRGF0YTogc3RyaW5nO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICByZWZsZWN0OiB0cnVlLFxuICB9KVxuICBhY2Nlc3NvciBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogQm9vbGVhblxuICB9KVxuICBhY2Nlc3NvciBpc0hpZGRlbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogU3RyaW5nXG4gIH0pXG4gIGFjY2Vzc29yIHR5cGU6ICdkZWZhdWx0JyB8ICdkZXN0cnVjdGl2ZScgfCAnb3V0bGluZScgfCAnc2Vjb25kYXJ5JyB8ICdnaG9zdCcgfCAnbGluaycgfCAnbm9ybWFsJyB8ICdoaWdobGlnaHRlZCcgfCAnZGlzY3JlZXQnIHwgJ2JpZycgPSAnZGVmYXVsdCc7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmdcbiAgfSlcbiAgYWNjZXNzb3Igc2l6ZTogJ2RlZmF1bHQnIHwgJ3NtJyB8ICdsZycgfCAnaWNvbicgPSAnZGVmYXVsdCc7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmdcbiAgfSlcbiAgYWNjZXNzb3Igc3RhdHVzOiAnbm9ybWFsJyB8ICdwZW5kaW5nJyB8ICdzdWNjZXNzJyB8ICdlcnJvcicgPSAnbm9ybWFsJztcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgcmVmbGVjdDogdHJ1ZVxuICB9KVxuICBhY2Nlc3NvciBpbnNpZGVGb3JtOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBhd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIC8vIEF1dG8tZGV0ZWN0IGlmIGluc2lkZSBhIGZvcm1cbiAgICBpZiAoIXRoaXMuaW5zaWRlRm9ybSAmJiB0aGlzLmNsb3Nlc3QoJ2RlZXMtZm9ybScpKSB7XG4gICAgICB0aGlzLmluc2lkZUZvcm0gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgIH1cbiAgICAgIDpob3N0KFtoaWRkZW5dKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIEZvcm0gc3BhY2luZyBzdHlsZXMgKi9cbiAgICAgIDpob3N0KFtpbnNpZGUtZm9ybV0pIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgOmhvc3QoW2luc2lkZS1mb3JtXTpsYXN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGRlZXMtZm9ybVtob3Jpem9udGFsLWxheW91dF0gOmhvc3QoW2luc2lkZS1mb3JtXSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgZGVlcy1mb3JtW2hvcml6b250YWwtbGF5b3V0XSA6aG9zdChbaW5zaWRlLWZvcm1dOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLyogU2l6ZSB2YXJpYW50cyAqL1xuICAgICAgLmJ1dHRvbi5zaXplLWRlZmF1bHQge1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uLnNpemUtc20ge1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uLnNpemUtbGcge1xuICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uLnNpemUtaWNvbiB7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC8qIERlZmF1bHQgdmFyaWFudCAqL1xuICAgICAgLmJ1dHRvbi5kZWZhdWx0IHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgyMTUgMjAuMiUgMTEuOCUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuMyAyNSUgOC44JSknLCAnaHNsKDIxMCA0MCUgOTglKScpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTQuMyAzMS44JSA5MS40JSknLCAnaHNsKDIxNSAyMC4yJSAxNi44JSknKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpO1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uLmRlZmF1bHQ6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUpJywgJ2hzbCgyMTUgMjAuMiUgMTAuMiUpJyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgODUlKScsICdoc2woMjE1IDIwLjIlIDIwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24uZGVmYXVsdDphY3RpdmU6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNC4zIDMxLjglIDkxLjQlKScsICdoc2woMjE1IDIwLjIlIDklKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogRGVzdHJ1Y3RpdmUgdmFyaWFudCAqL1xuICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDYwLjIlKTtcbiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDk4JSk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uLmRlc3RydWN0aXZlOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgODQuMiUgNTYuMiUpO1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uLmRlc3RydWN0aXZlOmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDUyLjIlKTtcbiAgICAgIH1cblxuICAgICAgLyogT3V0bGluZSB2YXJpYW50ICovXG4gICAgICAuYnV0dG9uLm91dGxpbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjMgMjUlIDguOCUpJywgJ2hzbCgyMTAgNDAlIDk4JSknKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgOTEuNCUpJywgJ2hzbCgyMTUgMjAuMiUgMjEuOCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uLm91dGxpbmU6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUpJywgJ2hzbCgyMTUgMjAuMiUgMTYuOCUpJyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgODUlKScsICdoc2woMjE1IDIwLjIlIDI2LjglKScpfTtcbiAgICAgIH1cblxuICAgICAgLmJ1dHRvbi5vdXRsaW5lOmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgOTEuNCUpJywgJ2hzbCgyMTUgMjAuMiUgMTMuOCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAvKiBTZWNvbmRhcnkgdmFyaWFudCAqL1xuICAgICAgLmJ1dHRvbi5zZWNvbmRhcnkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUpJywgJ2hzbCgyMTUgMjAuMiUgMTYuOCUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuMyAyNSUgOC44JSknLCAnaHNsKDIxMCA0MCUgOTglKScpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTQuMyAzMS44JSA5MS40JSknLCAnaHNsKDIxNSAyMC4yJSAxMy44JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24uc2Vjb25kYXJ5OmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgODUlKScsICdoc2woMjE1IDIwLjIlIDExLjglKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogR2hvc3QgdmFyaWFudCAqL1xuICAgICAgLmJ1dHRvbi5naG9zdCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuMyAyNSUgOC44JSknLCAnaHNsKDIxMCA0MCUgOTglKScpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24uZ2hvc3Q6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUpJywgJ2hzbCgyMTUgMjAuMiUgMTYuOCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uLmdob3N0OmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgOTEuNCUpJywgJ2hzbCgyMTUgMjAuMiUgMTMuOCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAvKiBMaW5rIHZhcmlhbnQgKi9cbiAgICAgIC5idXR0b24ubGluayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIuMiA0Ny40JSA1MS4yJSknLCAnaHNsKDIxMy4xIDkzLjklIDY3LjglKScpfTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uLmxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgIH1cblxuICAgICAgLyogU3RhdHVzIHN0YXRlcyAqL1xuICAgICAgLmJ1dHRvbi5wZW5kaW5nLFxuICAgICAgLmJ1dHRvbi5zdWNjZXNzLFxuICAgICAgLmJ1dHRvbi5lcnJvciB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7IC8qIFNwYWNlIGZvciBzcGlubmVyICovXG4gICAgICB9XG4gICAgICBcbiAgICAgIC5idXR0b24uc2l6ZS1zbS5wZW5kaW5nLFxuICAgICAgLmJ1dHRvbi5zaXplLXNtLnN1Y2Nlc3MsXG4gICAgICAuYnV0dG9uLnNpemUtc20uZXJyb3Ige1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5idXR0b24uc2l6ZS1sZy5wZW5kaW5nLFxuICAgICAgLmJ1dHRvbi5zaXplLWxnLnN1Y2Nlc3MsXG4gICAgICAuYnV0dG9uLnNpemUtbGcuZXJyb3Ige1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24ucGVuZGluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUpJywgJ2hzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMiknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDIxMy4xIDkzLjklIDY3LjglKScpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24uc3VjY2VzcyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJywgJ2hzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMiknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKScpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24uZXJyb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgODQuMiUgNjAuMiUpJywgJ2hzbCgwIDYyLjglIDcwLjYlIC8gMC4yKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCA2Mi44JSA3MC42JSknKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqL1xuICAgICAgLmJ1dHRvbi5kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIEhpZGRlbiBzdGF0ZSAqL1xuICAgICAgLmJ1dHRvbi5oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAvKiBGb2N1cyBzdGF0ZSAqL1xuICAgICAgLmJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUpJywgJ2hzbCgyMTMuMSA5My45JSA2Ny44JSknKX07XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgICB9XG5cbiAgICAgIC8qIExvYWRpbmcgc3Bpbm5lciAqL1xuICAgICAgZGVlcy1zcGlubmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAxMHB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuYnV0dG9uLnNpemUtc20gZGVlcy1zcGlubmVyIHtcbiAgICAgICAgbGVmdDogOHB4O1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1zcGlubmVyIHtcbiAgICAgICAgbGVmdDogMTRweDtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLyogSWNvbiBzaXppbmcgd2l0aGluIGJ1dHRvbnMgKi9cbiAgICAgIC5idXR0b24gZGVlcy1pY29uIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5idXR0b24uc2l6ZS1zbSBkZWVzLWljb24ge1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1pY29uIHtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgIH1cblxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgLy8gTWFwIG9sZCB0eXBlcyB0byBuZXcgdHlwZXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICBjb25zdCB0eXBlTWFwOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHtcbiAgICAgICdub3JtYWwnOiAnZGVmYXVsdCcsXG4gICAgICAnaGlnaGxpZ2h0ZWQnOiAnZGVzdHJ1Y3RpdmUnLFxuICAgICAgJ2Rpc2NyZWV0JzogJ291dGxpbmUnLFxuICAgICAgJ2JpZyc6ICdkZWZhdWx0JyAvLyBXaWxsIHVzZSBzaXplIGluc3RlYWRcbiAgICB9O1xuICAgIFxuICAgIGNvbnN0IGFjdHVhbFR5cGUgPSB0eXBlTWFwW3RoaXMudHlwZV0gfHwgdGhpcy50eXBlO1xuICAgIGNvbnN0IGFjdHVhbFNpemUgPSB0aGlzLnR5cGUgPT09ICdiaWcnID8gJ2xnJyA6IHRoaXMuc2l6ZTtcbiAgICBcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJidXR0b24gJHt0aGlzLmlzSGlkZGVuID8gJ2hpZGRlbicgOiAnJ30gJHthY3R1YWxUeXBlfSBzaXplLSR7YWN0dWFsU2l6ZX0gJHt0aGlzLnN0YXR1c30gJHt0aGlzLmRpc2FibGVkXG4gICAgICAgICAgPyAnZGlzYWJsZWQnXG4gICAgICAgICAgOiAnJ31cIlxuICAgICAgICBAY2xpY2s9XCIke3RoaXMuZGlzcGF0Y2hDbGlja31cIlxuICAgICAgPlxuICAgICAgICAke3RoaXMuc3RhdHVzID09PSAnbm9ybWFsJyA/IGh0bWxgYDogaHRtbGBcbiAgICAgICAgICA8ZGVlcy1zcGlubmVyIFxuICAgICAgICAgICAgLmJudz0ke3RydWV9IFxuICAgICAgICAgICAgc3RhdHVzPVwiJHt0aGlzLnN0YXR1c31cIlxuICAgICAgICAgICAgc2l6ZT1cIiR7YWN0dWFsU2l6ZSA9PT0gJ3NtJyA/IDE0IDogYWN0dWFsU2l6ZSA9PT0gJ2xnJyA/IDE4IDogMTZ9XCJcbiAgICAgICAgICA+PC9kZWVzLXNwaW5uZXI+XG4gICAgICAgIGB9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0Ym94XCI+JHt0aGlzLnRleHQgfHwgaHRtbGA8c2xvdD5CdXR0b248L3Nsb3Q+YH08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzcGF0Y2hDbGljaygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgnY2xpY2tlZCcsIHtcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgZGF0YTogdGhpcy5ldmVudERldGFpbERhdGEsXG4gICAgICAgIH0sXG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlyc3RVcGRhdGVkKCkge1xuICAgIC8vIERvbid0IHNldCBkZWZhdWx0IHRleHQgaGVyZSBhcyBpdCBpbnRlcmZlcmVzIHdpdGggc2xvdHRlZCBjb250ZW50XG4gIH1cbn1cbiIsICJpbXBvcnQge1xuICBjc3NNYW5hZ2VyLFxuICBjdXN0b21FbGVtZW50LFxuICBEZWVzRWxlbWVudCxcbiAgaHRtbCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgY3NzLFxuICB0eXBlIENTU1Jlc3VsdCxcbiAgc3RhdGUsXG4gIHByb3BlcnR5XG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWJ1dHRvbi1leGl0JylcbmV4cG9ydCBjbGFzcyBEZWVzQnV0dG9uRXhpdCBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgLy8gREVNT1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSAoKSA9PiBodG1sYFxuICAgIDxkZWVzLWJ1dHRvbi1leGl0PjwvZGVlcy1idXR0b24tZXhpdD5cbiAgYDtcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnQnV0dG9uJztcblxuICAvLyBJTlNUQU5DRVxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IE51bWJlclxuICB9KVxuICBhY2Nlc3NvciBzaXplOiBudW1iZXIgPSAyNDtcblxuICBwdWJsaWMgc3R5bGVzID0gW1xuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG5cbiAgICBgXG4gIF1cblxuICBwdWJsaWMgcmVuZGVyICgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3R5bGU+XG4gICAgICAgIC5tYWluY29udGFpbmVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgd2lkdGg6ICR7dGhpcy5zaXplfXB4O1xuICAgICAgICAgIGhlaWdodDogJHt0aGlzLnNpemV9cHg7XG4gICAgICAgIH1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFpbmNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlyc3RMaW5lXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWNvbmRMaW5lXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59IiwgImltcG9ydCB7IGh0bWwsIGNzcyB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IHtcbiAgcmV0dXJuIGh0bWxgXG4gICAgPHN0eWxlPlxuICAgICAgJHtjc3NgXG4gICAgICAgIC5kZW1vQm94IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgICAgICAgIHBhZGRpbmc6IDQwcHg7XG4gICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kZW1vLXNlY3Rpb24ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVtby10aXRsZSB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRlbW8tZGVzY3JpcHRpb24ge1xuICAgICAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPC9zdHlsZT5cbiAgICA8ZGl2IGNsYXNzPVwiZGVtb0JveFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImRlbW8tc2VjdGlvblwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJkZW1vLXRpdGxlXCI+QmFzaWMgQnV0dG9uIEdyb3VwczwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwiZGVtby1kZXNjcmlwdGlvblwiPkJ1dHRvbiBncm91cHMgd2l0aG91dCBsYWJlbHMgZm9yIHNpbXBsZSBncm91cGluZzwvcD5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cD5cbiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDE8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMjwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAzPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImRlbW8tdGl0bGVcIj5MYWJlbGVkIEJ1dHRvbiBHcm91cHM8L2gyPlxuICAgICAgICA8cCBjbGFzcz1cImRlbW8tZGVzY3JpcHRpb25cIj5CdXR0b24gZ3JvdXBzIHdpdGggZGVzY3JpcHRpdmUgbGFiZWxzPC9wPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPVwiVmlldyBNb2RlOlwiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwiaGlnaGxpZ2h0ZWRcIj5HcmlkPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24+TGlzdDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uPkNhcmRzPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImRlbW8tdGl0bGVcIj5NdWx0aXBsZSBHcm91cHM8L2gyPlxuICAgICAgICA8cCBjbGFzcz1cImRlbW8tZGVzY3JpcHRpb25cIj5NdWx0aXBsZSBidXR0b24gZ3JvdXBzIHVzZWQgdG9nZXRoZXI8L3A+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAxNnB4OyBmbGV4LXdyYXA6IHdyYXA7XCI+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPVwiRGF0YXNldDpcIj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwiaGlnaGxpZ2h0ZWRcIj5TeXN0ZW08L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcms8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNhbGVzPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD1cIlRpbWUgUmFuZ2U6XCI+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24+MUg8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJoaWdobGlnaHRlZFwiPjI0SDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24+N0Q8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjMwRDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9XCJBY3Rpb25zOlwiPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlZnJlc2g8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkV4cG9ydDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlbW8tc2VjdGlvblwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJkZW1vLXRpdGxlXCI+VmVydGljYWwgQnV0dG9uIEdyb3VwczwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwiZGVtby1kZXNjcmlwdGlvblwiPkJ1dHRvbiBncm91cHMgd2l0aCB2ZXJ0aWNhbCBsYXlvdXQ8L3A+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAyNHB4O1wiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIGxhYmVsPVwiTmF2aWdhdGlvbjpcIj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXNoYm9hcmQ8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJoaWdobGlnaHRlZFwiPkFuYWx5dGljczwvZGVlcy1idXR0b24+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVwb3J0czwvZGVlcy1idXR0b24+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24+U2V0dGluZ3M8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGRpcmVjdGlvbj1cInZlcnRpY2FsXCI+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkVkaXQgSXRlbTwvZGVlcy1idXR0b24+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24+RGVsZXRlIEl0ZW08L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZGVtby10aXRsZVwiPk1peGVkIEJ1dHRvbiBUeXBlczwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwiZGVtby1kZXNjcmlwdGlvblwiPkRpZmZlcmVudCBidXR0b24gdHlwZXMgd2l0aGluIGdyb3VwczwvcD5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD1cIlN0YXR1czpcIj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT1cInN1Y2Nlc3NcIj5BY3RpdmU8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbj5QZW5kaW5nPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT1cImRhbmdlclwiPkluYWN0aXZlPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgO1xufTsiLCAiaW1wb3J0IHtcbiAgRGVlc0VsZW1lbnQsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgcHJvcGVydHksXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmltcG9ydCAqIGFzIGRvbXRvb2xzIGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtYnV0dG9uLWdyb3VwLmRlbW8uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtYnV0dG9uLWdyb3VwJzogRGVlc0J1dHRvbkdyb3VwO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWJ1dHRvbi1ncm91cCcpXG5leHBvcnQgY2xhc3MgRGVlc0J1dHRvbkdyb3VwIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnQnV0dG9uJztcblxuICBAcHJvcGVydHkoKVxuICBhY2Nlc3NvciBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgQHByb3BlcnR5KClcbiAgYWNjZXNzb3IgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZG9tdG9vbHMuZWxlbWVudEJhc2ljLnNldHVwKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgLmJ1dHRvbi1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMDUpJywgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIH1cblxuICAgICAgLmJ1dHRvbi1ncm91cC52ZXJ0aWNhbCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgfVxuXG4gICAgICAubGFiZWwge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM2NjYnLCAnIzk5OScpfTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmJ1dHRvbi1ncm91cC52ZXJ0aWNhbCAubGFiZWwge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgIH1cblxuICAgICAgOjpzbG90dGVkKCopIHtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXAgJHt0aGlzLmRpcmVjdGlvbn1cIj5cbiAgICAgICAgJHt0aGlzLmxhYmVsID8gaHRtbGA8c3BhbiBjbGFzcz1cImxhYmVsXCI+JHt0aGlzLmxhYmVsfTwvc3Bhbj5gIDogJyd9XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn0iLCAiaW1wb3J0IHsgaHRtbCwgY3NzLCBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB0eXBlIHsgRGVlc0NoYXJ0QXJlYSB9IGZyb20gJy4vY29tcG9uZW50LmpzJztcbmltcG9ydCAnQGRlc2lnbi5lc3RhdGUvZGVlcy13Y2N0b29scy9kZW1vdG9vbHMnO1xuaW1wb3J0ICcuL2NvbXBvbmVudC5qcyc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IHtcbiAgLy8gSW5pdGlhbCBkYXRhc2V0IHZhbHVlc1xuICBjb25zdCBpbml0aWFsRGF0YXNldHMgPSB7XG4gICAgc3lzdGVtOiB7XG4gICAgICBsYWJlbDogJ1N5c3RlbSBVc2FnZSAoJSknLFxuICAgICAgc2VyaWVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ1BVJyxcbiAgICAgICAgICBkYXRhOiBbXG4gICAgICAgICAgICB7IHg6IG5ldyBEYXRlKERhdGUubm93KCkgLSAzMDAwMDApLnRvSVNPU3RyaW5nKCksIHk6IDI1IH0sXG4gICAgICAgICAgICB7IHg6IG5ldyBEYXRlKERhdGUubm93KCkgLSAyNDAwMDApLnRvSVNPU3RyaW5nKCksIHk6IDMwIH0sXG4gICAgICAgICAgICB7IHg6IG5ldyBEYXRlKERhdGUubm93KCkgLSAxODAwMDApLnRvSVNPU3RyaW5nKCksIHk6IDI4IH0sXG4gICAgICAgICAgICB7IHg6IG5ldyBEYXRlKERhdGUubm93KCkgLSAxMjAwMDApLnRvSVNPU3RyaW5nKCksIHk6IDM1IH0sXG4gICAgICAgICAgICB7IHg6IG5ldyBEYXRlKERhdGUubm93KCkgLSA2MDAwMCkudG9JU09TdHJpbmcoKSwgeTogMzIgfSxcbiAgICAgICAgICAgIHsgeDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLCB5OiAzOCB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnTWVtb3J5JyxcbiAgICAgICAgICBkYXRhOiBbXG4gICAgICAgICAgICB7IHg6IG5ldyBEYXRlKERhdGUubm93KCkgLSAzMDAwMDApLnRvSVNPU3RyaW5nKCksIHk6IDQ1IH0sXG4gICAgICAgICAgICB7IHg6IG5ldyBEYXRlKERhdGUubm93KCkgLSAyNDAwMDApLnRvSVNPU3RyaW5nKCksIHk6IDQ4IH0sXG4gICAgICAgICAgICB7IHg6IG5ldyBEYXRlKERhdGUubm93KCkgLSAxODAwMDApLnRvSVNPU3RyaW5nKCksIHk6IDQ2IH0sXG4gICAgICAgICAgICB7IHg6IG5ldyBEYXRlKERhdGUubm93KCkgLSAxMjAwMDApLnRvSVNPU3RyaW5nKCksIHk6IDUyIH0sXG4gICAgICAgICAgICB7IHg6IG5ldyBEYXRlKERhdGUubm93KCkgLSA2MDAwMCkudG9JU09TdHJpbmcoKSwgeTogNTAgfSxcbiAgICAgICAgICAgIHsgeDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLCB5OiA1NSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH07XG4gIFxuICBjb25zdCBpbml0aWFsRm9ybWF0dGVycyA9IHtcbiAgICBzeXN0ZW06ICh2YWw6IG51bWJlcikgPT4gYCR7dmFsfSVgLFxuICB9O1xuICBcbiAgcmV0dXJuIGh0bWxgXG4gICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKGVsZW1lbnRBcmc6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAvLyBHZXQgdGhlIGNoYXJ0IGVsZW1lbnRzXG4gICAgICBjb25zdCBjaGFydEVsZW1lbnQgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJyNtYWluLWNoYXJ0JykgYXMgRGVlc0NoYXJ0QXJlYTtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb25zQ2hhcnRFbGVtZW50ID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCcjY29ubmVjdGlvbnMtY2hhcnQnKSBhcyBEZWVzQ2hhcnRBcmVhO1xuICAgICAgbGV0IGludGVydmFsSWQ6IG51bWJlcjtcbiAgICAgIGxldCBjb25uZWN0aW9uc0ludGVydmFsSWQ6IG51bWJlcjtcbiAgICAgIGxldCBjdXJyZW50RGF0YXNldCA9ICdzeXN0ZW0nO1xuXG4gICAgICAvLyBZLWF4aXMgZm9ybWF0dGVycyBmb3IgZGlmZmVyZW50IGRhdGFzZXRzXG4gICAgICBjb25zdCBmb3JtYXR0ZXJzID0ge1xuICAgICAgICBzeXN0ZW06ICh2YWw6IG51bWJlcikgPT4gYCR7dmFsfSVgLFxuICAgICAgICBuZXR3b3JrOiAodmFsOiBudW1iZXIpID0+IGAke3ZhbH0gTWJwc2AsXG4gICAgICAgIHNhbGVzOiAodmFsOiBudW1iZXIpID0+IGAkJHt2YWwudG9Mb2NhbGVTdHJpbmcoKX1gLFxuICAgICAgfTtcbiAgICAgIFxuICAgICAgLy8gVGltZSB3aW5kb3cgY29uZmlndXJhdGlvbiAoaW4gbWlsbGlzZWNvbmRzKVxuICAgICAgY29uc3QgVElNRV9XSU5ET1cgPSAyICogNjAgKiAxMDAwOyAvLyAyIG1pbnV0ZXNcbiAgICAgIGNvbnN0IFVQREFURV9JTlRFUlZBTCA9IDEwMDA7IC8vIDEgc2Vjb25kXG4gICAgICBjb25zdCBEQVRBX1BPSU5UX0lOVEVSVkFMID0gNTAwMDsgLy8gU2hvdyBkYXRhIHBvaW50cyBldmVyeSA1IHNlY29uZHNcbiAgICAgIFxuICAgICAgLy8gU3RvcmUgcHJldmlvdXMgdmFsdWVzIGZvciBzbW9vdGggdHJhbnNpdGlvbnNcbiAgICAgIGxldCBwcmV2aW91c1ZhbHVlcyA9IHtcbiAgICAgICAgY3B1OiAzMCxcbiAgICAgICAgbWVtb3J5OiA1MCxcbiAgICAgICAgZG93bmxvYWQ6IDE1MCxcbiAgICAgICAgdXBsb2FkOiAzMCxcbiAgICAgICAgY29ubmVjdGlvbnM6IDE1MFxuICAgICAgfTtcblxuICAgICAgLy8gR2VuZXJhdGUgaW5pdGlhbCBkYXRhIHBvaW50cyBmb3IgdGltZSB3aW5kb3dcbiAgICAgIGNvbnN0IGdlbmVyYXRlSW5pdGlhbERhdGEgPSAoYmFzZVZhbHVlOiBudW1iZXIsIHZhcmlhbmNlOiBudW1iZXIsIGludGVydmFsOiBudW1iZXIgPSBEQVRBX1BPSU5UX0lOVEVSVkFMKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBbXTtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgcG9pbnRDb3VudCA9IE1hdGguZmxvb3IoVElNRV9XSU5ET1cgLyBpbnRlcnZhbCk7XG4gICAgICAgIFxuICAgICAgICBmb3IgKGxldCBpID0gcG9pbnRDb3VudDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZShub3cgLSAoaSAqIGludGVydmFsKSkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGJhc2VWYWx1ZSArIChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIHZhcmlhbmNlO1xuICAgICAgICAgIGRhdGEucHVzaCh7IHg6IHRpbWVzdGFtcCwgeTogTWF0aC5yb3VuZCh2YWx1ZSkgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9O1xuICAgICAgXG4gICAgICAvLyBEaWZmZXJlbnQgZGF0YXNldHMgdG8gc2hvd2Nhc2VcbiAgICAgIGNvbnN0IGRhdGFzZXRzID0ge1xuICAgICAgICBzeXN0ZW06IHtcbiAgICAgICAgICBsYWJlbDogJ1N5c3RlbSBVc2FnZSAoJSknLFxuICAgICAgICAgIHNlcmllczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnQ1BVJyxcbiAgICAgICAgICAgICAgZGF0YTogZ2VuZXJhdGVJbml0aWFsRGF0YShwcmV2aW91c1ZhbHVlcy5jcHUsIDEwKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdNZW1vcnknLFxuICAgICAgICAgICAgICBkYXRhOiBnZW5lcmF0ZUluaXRpYWxEYXRhKHByZXZpb3VzVmFsdWVzLm1lbW9yeSwgOCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIG5ldHdvcms6IHtcbiAgICAgICAgICBsYWJlbDogJ05ldHdvcmsgVHJhZmZpYyAoTWJwcyknLFxuICAgICAgICAgIHNlcmllczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnRG93bmxvYWQnLFxuICAgICAgICAgICAgICBkYXRhOiBnZW5lcmF0ZUluaXRpYWxEYXRhKHByZXZpb3VzVmFsdWVzLmRvd25sb2FkLCAzMCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnVXBsb2FkJyxcbiAgICAgICAgICAgICAgZGF0YTogZ2VuZXJhdGVJbml0aWFsRGF0YShwcmV2aW91c1ZhbHVlcy51cGxvYWQsIDEwKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgc2FsZXM6IHtcbiAgICAgICAgICBsYWJlbDogJ1NhbGVzIEFuYWx5dGljcycsXG4gICAgICAgICAgc2VyaWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdSZXZlbnVlJyxcbiAgICAgICAgICAgICAgZGF0YTogW1xuICAgICAgICAgICAgICAgIHsgeDogJzIwMjUtMDEtMDEnLCB5OiA0NTAwMCB9LFxuICAgICAgICAgICAgICAgIHsgeDogJzIwMjUtMDEtMDInLCB5OiA1MjAwMCB9LFxuICAgICAgICAgICAgICAgIHsgeDogJzIwMjUtMDEtMDMnLCB5OiA0ODAwMCB9LFxuICAgICAgICAgICAgICAgIHsgeDogJzIwMjUtMDEtMDQnLCB5OiA2MTAwMCB9LFxuICAgICAgICAgICAgICAgIHsgeDogJzIwMjUtMDEtMDUnLCB5OiA1ODAwMCB9LFxuICAgICAgICAgICAgICAgIHsgeDogJzIwMjUtMDEtMDYnLCB5OiA2NTAwMCB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ1Byb2ZpdCcsXG4gICAgICAgICAgICAgIGRhdGE6IFtcbiAgICAgICAgICAgICAgICB7IHg6ICcyMDI1LTAxLTAxJywgeTogMTIwMDAgfSxcbiAgICAgICAgICAgICAgICB7IHg6ICcyMDI1LTAxLTAyJywgeTogMTQwMDAgfSxcbiAgICAgICAgICAgICAgICB7IHg6ICcyMDI1LTAxLTAzJywgeTogMTEwMDAgfSxcbiAgICAgICAgICAgICAgICB7IHg6ICcyMDI1LTAxLTA0JywgeTogMTgwMDAgfSxcbiAgICAgICAgICAgICAgICB7IHg6ICcyMDI1LTAxLTA1JywgeTogMTYwMDAgfSxcbiAgICAgICAgICAgICAgICB7IHg6ICcyMDI1LTAxLTA2JywgeTogMjAwMDAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIC8vIEdlbmVyYXRlIHNtb290aCB2YWx1ZSB0cmFuc2l0aW9uc1xuICAgICAgY29uc3QgZ2V0TmV4dFZhbHVlID0gKGN1cnJlbnQ6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyLCBtYXhDaGFuZ2U6IG51bWJlciA9IDUpID0+IHtcbiAgICAgICAgLy8gQWRkIHNvbWUgcmFuZG9tbmVzcyBidXQga2VlcCBpdCBjbG9zZSB0byBjdXJyZW50IHZhbHVlXG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIG1heENoYW5nZSAqIDI7XG4gICAgICAgIGxldCBuZXdWYWx1ZSA9IGN1cnJlbnQgKyBjaGFuZ2U7XG4gICAgICAgIFxuICAgICAgICAvLyBBcHBseSBzb21lIFwicHJlc3N1cmVcIiB0byBtb3ZlIHRvd2FyZHMgY2VudGVyIG9mIHJhbmdlXG4gICAgICAgIGNvbnN0IGNlbnRlciA9IChtaW4gKyBtYXgpIC8gMjtcbiAgICAgICAgY29uc3QgcHJlc3N1cmUgPSAoY2VudGVyIC0gbmV3VmFsdWUpICogMC4xO1xuICAgICAgICBuZXdWYWx1ZSArPSBwcmVzc3VyZTtcbiAgICAgICAgXG4gICAgICAgIC8vIEVuc3VyZSB3aXRoaW4gYm91bmRzXG4gICAgICAgIG5ld1ZhbHVlID0gTWF0aC5tYXgobWluLCBNYXRoLm1pbihtYXgsIG5ld1ZhbHVlKSk7XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG5ld1ZhbHVlKTtcbiAgICAgIH07XG5cbiAgICAgIC8vIFRyYWNrIHRpbWUgb2YgbGFzdCBkYXRhIHBvaW50XG4gICAgICBsZXQgbGFzdERhdGFQb2ludFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgbGV0IGNvbm5lY3Rpb25zTGFzdFVwZGF0ZSA9IERhdGUubm93KCk7XG4gICAgICBcbiAgICAgIC8vIEFkZCByZWFsLXRpbWUgZGF0YVxuICAgICAgY29uc3QgYWRkUmVhbHRpbWVEYXRhID0gKCkgPT4ge1xuICAgICAgICBpZiAoIWNoYXJ0RWxlbWVudCkgcmV0dXJuO1xuICAgICAgICBcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgXG4gICAgICAgIC8vIE9ubHkgYWRkIG5ldyBkYXRhIHBvaW50IGV2ZXJ5IERBVEFfUE9JTlRfSU5URVJWQUxcbiAgICAgICAgY29uc3Qgc2hvdWxkQWRkUG9pbnQgPSAobm93IC0gbGFzdERhdGFQb2ludFRpbWUpID49IERBVEFfUE9JTlRfSU5URVJWQUw7XG4gICAgICAgIFxuICAgICAgICBpZiAoc2hvdWxkQWRkUG9pbnQpIHtcbiAgICAgICAgICBsYXN0RGF0YVBvaW50VGltZSA9IG5vdztcbiAgICAgICAgICBjb25zdCBuZXdUaW1lc3RhbXAgPSBuZXcgRGF0ZShub3cpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gR2VuZXJhdGUgc21vb3RoIHRyYW5zaXRpb25zIGZvciBuZXcgdmFsdWVzXG4gICAgICAgICAgaWYgKGN1cnJlbnREYXRhc2V0ID09PSAnc3lzdGVtJykge1xuICAgICAgICAgICAgLy8gR2VuZXJhdGUgbmV3IHZhbHVlc1xuICAgICAgICAgICAgcHJldmlvdXNWYWx1ZXMuY3B1ID0gZ2V0TmV4dFZhbHVlKHByZXZpb3VzVmFsdWVzLmNwdSwgMjAsIDUwLCAzKTtcbiAgICAgICAgICAgIHByZXZpb3VzVmFsdWVzLm1lbW9yeSA9IGdldE5leHRWYWx1ZShwcmV2aW91c1ZhbHVlcy5tZW1vcnksIDQwLCA3MCwgMik7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIEdldCBjdXJyZW50IGRhdGEgYW5kIGFkZCBuZXcgcG9pbnRzXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U2VyaWVzID0gY2hhcnRFbGVtZW50LmNoYXJ0U2VyaWVzLm1hcCgoc2VyaWVzLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgbmFtZTogc2VyaWVzLm5hbWUsXG4gICAgICAgICAgICAgIGRhdGE6IFtcbiAgICAgICAgICAgICAgICAuLi4oc2VyaWVzLmRhdGEgYXMgQXJyYXk8e3g6IGFueTsgeTogYW55fT4pLFxuICAgICAgICAgICAgICAgIGluZGV4ID09PSAwIFxuICAgICAgICAgICAgICAgICAgPyB7IHg6IG5ld1RpbWVzdGFtcCwgeTogcHJldmlvdXNWYWx1ZXMuY3B1IH1cbiAgICAgICAgICAgICAgICAgIDogeyB4OiBuZXdUaW1lc3RhbXAsIHk6IHByZXZpb3VzVmFsdWVzLm1lbW9yeSB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY2hhcnRFbGVtZW50LnVwZGF0ZVNlcmllcyhjdXJyZW50U2VyaWVzLCBmYWxzZSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnREYXRhc2V0ID09PSAnbmV0d29yaycpIHtcbiAgICAgICAgICAgIC8vIEdlbmVyYXRlIG5ldyB2YWx1ZXNcbiAgICAgICAgICAgIHByZXZpb3VzVmFsdWVzLmRvd25sb2FkID0gZ2V0TmV4dFZhbHVlKHByZXZpb3VzVmFsdWVzLmRvd25sb2FkLCAxMDAsIDIwMCwgMTApO1xuICAgICAgICAgICAgcHJldmlvdXNWYWx1ZXMudXBsb2FkID0gZ2V0TmV4dFZhbHVlKHByZXZpb3VzVmFsdWVzLnVwbG9hZCwgMjAsIDUwLCA1KTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8gR2V0IGN1cnJlbnQgZGF0YSBhbmQgYWRkIG5ldyBwb2ludHNcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTZXJpZXMgPSBjaGFydEVsZW1lbnQuY2hhcnRTZXJpZXMubWFwKChzZXJpZXMsIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgICBuYW1lOiBzZXJpZXMubmFtZSxcbiAgICAgICAgICAgICAgZGF0YTogW1xuICAgICAgICAgICAgICAgIC4uLihzZXJpZXMuZGF0YSBhcyBBcnJheTx7eDogYW55OyB5OiBhbnl9PiksXG4gICAgICAgICAgICAgICAgaW5kZXggPT09IDAgXG4gICAgICAgICAgICAgICAgICA/IHsgeDogbmV3VGltZXN0YW1wLCB5OiBwcmV2aW91c1ZhbHVlcy5kb3dubG9hZCB9XG4gICAgICAgICAgICAgICAgICA6IHsgeDogbmV3VGltZXN0YW1wLCB5OiBwcmV2aW91c1ZhbHVlcy51cGxvYWQgfVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNoYXJ0RWxlbWVudC51cGRhdGVTZXJpZXMoY3VycmVudFNlcmllcywgZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgLy8gVXBkYXRlIGNvbm5lY3Rpb25zIGNoYXJ0IGRhdGFcbiAgICAgIGNvbnN0IHVwZGF0ZUNvbm5lY3Rpb25zID0gKCkgPT4ge1xuICAgICAgICBpZiAoIWNvbm5lY3Rpb25zQ2hhcnRFbGVtZW50KSByZXR1cm47XG4gICAgICAgIFxuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBuZXdUaW1lc3RhbXAgPSBuZXcgRGF0ZShub3cpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgIFxuICAgICAgICAvLyBHZW5lcmF0ZSBuZXcgY29ubmVjdGlvbnMgdmFsdWUgd2l0aCBkaXNjcmV0ZSBjaGFuZ2VzXG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIxKSAtIDEwOyAvLyAtMTAgdG8gKzEwIGNvbm5lY3Rpb25zXG4gICAgICAgIHByZXZpb3VzVmFsdWVzLmNvbm5lY3Rpb25zID0gTWF0aC5tYXgoNTAsIE1hdGgubWluKDMwMCwgcHJldmlvdXNWYWx1ZXMuY29ubmVjdGlvbnMgKyBjaGFuZ2UpKTtcbiAgICAgICAgXG4gICAgICAgIC8vIEdldCBjdXJyZW50IGRhdGEgYW5kIGFkZCBuZXcgcG9pbnRcbiAgICAgICAgY29uc3QgY3VycmVudFNlcmllcyA9IGNvbm5lY3Rpb25zQ2hhcnRFbGVtZW50LmNoYXJ0U2VyaWVzO1xuICAgICAgICBjb25zdCBuZXdEYXRhID0gW3tcbiAgICAgICAgICBuYW1lOiBjdXJyZW50U2VyaWVzWzBdPy5uYW1lIHx8ICdDb25uZWN0aW9ucycsXG4gICAgICAgICAgZGF0YTogW1xuICAgICAgICAgICAgLi4uKGN1cnJlbnRTZXJpZXNbMF0/LmRhdGEgYXMgQXJyYXk8e3g6IGFueTsgeTogYW55fT4gfHwgW10pLFxuICAgICAgICAgICAgeyB4OiBuZXdUaW1lc3RhbXAsIHk6IHByZXZpb3VzVmFsdWVzLmNvbm5lY3Rpb25zIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1dO1xuICAgICAgICBcbiAgICAgICAgY29ubmVjdGlvbnNDaGFydEVsZW1lbnQudXBkYXRlU2VyaWVzKG5ld0RhdGEsIGZhbHNlKTtcbiAgICAgIH07XG5cbiAgICAgIC8vIFN3aXRjaCBkYXRhc2V0XG4gICAgICBjb25zdCBzd2l0Y2hEYXRhc2V0ID0gKG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBjdXJyZW50RGF0YXNldCA9IG5hbWU7XG4gICAgICAgIGNvbnN0IGRhdGFzZXQgPSBkYXRhc2V0c1tuYW1lXTtcbiAgICAgICAgY2hhcnRFbGVtZW50LmxhYmVsID0gZGF0YXNldC5sYWJlbDtcbiAgICAgICAgY2hhcnRFbGVtZW50LnNlcmllcyA9IGRhdGFzZXQuc2VyaWVzO1xuICAgICAgICBjaGFydEVsZW1lbnQueUF4aXNGb3JtYXR0ZXIgPSBmb3JtYXR0ZXJzW25hbWVdO1xuICAgICAgICBcbiAgICAgICAgLy8gU2V0IGFwcHJvcHJpYXRlIHktYXhpcyBzY2FsaW5nXG4gICAgICAgIGlmIChuYW1lID09PSAnc3lzdGVtJykge1xuICAgICAgICAgIGNoYXJ0RWxlbWVudC55QXhpc1NjYWxpbmcgPSAncGVyY2VudGFnZSc7XG4gICAgICAgICAgY2hhcnRFbGVtZW50LnlBeGlzTWF4ID0gMTAwO1xuICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICduZXR3b3JrJykge1xuICAgICAgICAgIGNoYXJ0RWxlbWVudC55QXhpc1NjYWxpbmcgPSAnZHluYW1pYyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2hhcnRFbGVtZW50LnlBeGlzU2NhbGluZyA9ICdkeW5hbWljJztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gUmVzZXQgbGFzdCBkYXRhIHBvaW50IHRpbWUgdG8gZ2V0IGZyZXNoIGRhdGEgaW1tZWRpYXRlbHlcbiAgICAgICAgbGFzdERhdGFQb2ludFRpbWUgPSBEYXRlLm5vdygpIC0gREFUQV9QT0lOVF9JTlRFUlZBTDtcbiAgICAgIH07XG5cbiAgICAgIC8vIFN0YXJ0L3N0b3AgcmVhbC10aW1lIHVwZGF0ZXNcbiAgICAgIGNvbnN0IHN0YXJ0UmVhbHRpbWUgPSAoKSA9PiB7XG4gICAgICAgIGlmICghaW50ZXJ2YWxJZCAmJiAoY3VycmVudERhdGFzZXQgPT09ICdzeXN0ZW0nIHx8IGN1cnJlbnREYXRhc2V0ID09PSAnbmV0d29yaycpKSB7XG4gICAgICAgICAgY2hhcnRFbGVtZW50LnJlYWx0aW1lTW9kZSA9IHRydWU7XG4gICAgICAgICAgLy8gT25seSBhZGQgZGF0YSBldmVyeSA1IHNlY29uZHMsIGNoYXJ0IGF1dG8tc2Nyb2xscyBpbmRlcGVuZGVudGx5XG4gICAgICAgICAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiBhZGRSZWFsdGltZURhdGEoKSwgREFUQV9QT0lOVF9JTlRFUlZBTCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIFN0YXJ0IGNvbm5lY3Rpb25zIHVwZGF0ZXNcbiAgICAgICAgaWYgKCFjb25uZWN0aW9uc0ludGVydmFsSWQpIHtcbiAgICAgICAgICBjb25uZWN0aW9uc0NoYXJ0RWxlbWVudC5yZWFsdGltZU1vZGUgPSB0cnVlO1xuICAgICAgICAgIC8vIFVwZGF0ZSBjb25uZWN0aW9ucyBldmVyeSBzZWNvbmRcbiAgICAgICAgICBjb25uZWN0aW9uc0ludGVydmFsSWQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4gdXBkYXRlQ29ubmVjdGlvbnMoKSwgVVBEQVRFX0lOVEVSVkFMKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc3RvcFJlYWx0aW1lID0gKCkgPT4ge1xuICAgICAgICBpZiAoaW50ZXJ2YWxJZCkge1xuICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgICAgICAgIGludGVydmFsSWQgPSBudWxsO1xuICAgICAgICAgIGNoYXJ0RWxlbWVudC5yZWFsdGltZU1vZGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gU3RvcCBjb25uZWN0aW9ucyB1cGRhdGVzXG4gICAgICAgIGlmIChjb25uZWN0aW9uc0ludGVydmFsSWQpIHtcbiAgICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChjb25uZWN0aW9uc0ludGVydmFsSWQpO1xuICAgICAgICAgIGNvbm5lY3Rpb25zSW50ZXJ2YWxJZCA9IG51bGw7XG4gICAgICAgICAgY29ubmVjdGlvbnNDaGFydEVsZW1lbnQucmVhbHRpbWVNb2RlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIC8vIFJhbmRvbWl6ZSBjdXJyZW50IGRhdGEgKHNwaWtlL2Ryb3Agc2ltdWxhdGlvbilcbiAgICAgIGNvbnN0IHJhbmRvbWl6ZURhdGEgPSAoKSA9PiB7XG4gICAgICAgIGlmIChjdXJyZW50RGF0YXNldCA9PT0gJ3N5c3RlbScpIHtcbiAgICAgICAgICAvLyBTaW11bGF0ZSBDUFUvTWVtb3J5IHNwaWtlXG4gICAgICAgICAgcHJldmlvdXNWYWx1ZXMuY3B1ID0gTWF0aC5yYW5kb20oKSA+IDAuNSA/IDg1IDogMjU7XG4gICAgICAgICAgcHJldmlvdXNWYWx1ZXMubWVtb3J5ID0gTWF0aC5yYW5kb20oKSA+IDAuNSA/IDgwIDogNDU7XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudERhdGFzZXQgPT09ICduZXR3b3JrJykge1xuICAgICAgICAgIC8vIFNpbXVsYXRlIG5ldHdvcmsgdHJhZmZpYyBzcGlrZVxuICAgICAgICAgIHByZXZpb3VzVmFsdWVzLmRvd25sb2FkID0gTWF0aC5yYW5kb20oKSA+IDAuNSA/IDI1MCA6IDEwMDtcbiAgICAgICAgICBwcmV2aW91c1ZhbHVlcy51cGxvYWQgPSBNYXRoLnJhbmRvbSgpID4gMC41ID8gODAgOiAyMDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gQWxzbyBzcGlrZSBjb25uZWN0aW9uc1xuICAgICAgICBwcmV2aW91c1ZhbHVlcy5jb25uZWN0aW9ucyA9IE1hdGgucmFuZG9tKCkgPiAwLjUgPyAyODAgOiA4MDtcbiAgICAgICAgXG4gICAgICAgIC8vIEZvcmNlIGltbWVkaWF0ZSB1cGRhdGUgYnkgcmVzZXR0aW5nIHRpbWVyc1xuICAgICAgICBsYXN0RGF0YVBvaW50VGltZSA9IDA7XG4gICAgICAgIGNvbm5lY3Rpb25zTGFzdFVwZGF0ZSA9IDA7XG4gICAgICB9O1xuXG4gICAgICAvLyBXaXJlIHVwIGJ1dHRvbiBjbGljayBoYW5kbGVyc1xuICAgICAgY29uc3QgYnV0dG9ucyA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1idXR0b24nKTtcbiAgICAgIGJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4ge1xuICAgICAgICBjb25zdCB0ZXh0ID0gYnV0dG9uLnRleHRDb250ZW50Py50cmltKCk7XG4gICAgICAgIGlmICh0ZXh0ID09PSAnU3lzdGVtIFVzYWdlJykge1xuICAgICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHN3aXRjaERhdGFzZXQoJ3N5c3RlbScpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0ZXh0ID09PSAnTmV0d29yayBUcmFmZmljJykge1xuICAgICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHN3aXRjaERhdGFzZXQoJ25ldHdvcmsnKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGV4dCA9PT0gJ1NhbGVzIERhdGEnKSB7XG4gICAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gc3dpdGNoRGF0YXNldCgnc2FsZXMnKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGV4dCA9PT0gJ1N0YXJ0IExpdmUnKSB7XG4gICAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gc3RhcnRSZWFsdGltZSgpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0ZXh0ID09PSAnU3RvcCBMaXZlJykge1xuICAgICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHN0b3BSZWFsdGltZSgpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0ZXh0ID09PSAnU3Bpa2UgVmFsdWVzJykge1xuICAgICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHJhbmRvbWl6ZURhdGEoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBVcGRhdGUgYnV0dG9uIHN0YXRlcyBiYXNlZCBvbiBjdXJyZW50IGRhdGFzZXRcbiAgICAgIGNvbnN0IHVwZGF0ZUJ1dHRvblN0YXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgYnV0dG9ucyA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1idXR0b24nKTtcbiAgICAgICAgYnV0dG9ucy5mb3JFYWNoKGJ1dHRvbiA9PiB7XG4gICAgICAgICAgY29uc3QgdGV4dCA9IGJ1dHRvbi50ZXh0Q29udGVudD8udHJpbSgpO1xuICAgICAgICAgIGlmICh0ZXh0ID09PSAnU3lzdGVtIFVzYWdlJykge1xuICAgICAgICAgICAgYnV0dG9uLnR5cGUgPSBjdXJyZW50RGF0YXNldCA9PT0gJ3N5c3RlbScgPyAnaGlnaGxpZ2h0ZWQnIDogJ25vcm1hbCc7XG4gICAgICAgICAgfSBlbHNlIGlmICh0ZXh0ID09PSAnTmV0d29yayBUcmFmZmljJykge1xuICAgICAgICAgICAgYnV0dG9uLnR5cGUgPSBjdXJyZW50RGF0YXNldCA9PT0gJ25ldHdvcmsnID8gJ2hpZ2hsaWdodGVkJyA6ICdub3JtYWwnO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGV4dCA9PT0gJ1NhbGVzIERhdGEnKSB7XG4gICAgICAgICAgICBidXR0b24udHlwZSA9IGN1cnJlbnREYXRhc2V0ID09PSAnc2FsZXMnID8gJ2hpZ2hsaWdodGVkJyA6ICdub3JtYWwnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgXG4gICAgICAvLyBDb25maWd1cmUgbWFpbiBjaGFydCB3aXRoIHJvbGxpbmcgd2luZG93XG4gICAgICBjaGFydEVsZW1lbnQucm9sbGluZ1dpbmRvdyA9IFRJTUVfV0lORE9XO1xuICAgICAgY2hhcnRFbGVtZW50LnJlYWx0aW1lTW9kZSA9IGZhbHNlOyAvLyBXaWxsIGJlIGVuYWJsZWQgd2hlbiBzdGFydGluZyBsaXZlIHVwZGF0ZXNcbiAgICAgIGNoYXJ0RWxlbWVudC55QXhpc1NjYWxpbmcgPSAncGVyY2VudGFnZSc7IC8vIEluaXRpYWwgc3lzdGVtIGRhdGFzZXQgdXNlcyBwZXJjZW50YWdlXG4gICAgICBjaGFydEVsZW1lbnQueUF4aXNNYXggPSAxMDA7XG4gICAgICBjaGFydEVsZW1lbnQuYXV0b1Njcm9sbEludGVydmFsID0gMTAwMDsgLy8gQXV0by1zY3JvbGwgZXZlcnkgc2Vjb25kXG4gICAgICBcbiAgICAgIC8vIFNldCBpbml0aWFsIHRpbWUgd2luZG93XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY2hhcnRFbGVtZW50LnVwZGF0ZVRpbWVXaW5kb3coKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBidXR0b24gc3RhdGVzIHdoZW4gZGF0YXNldCBjaGFuZ2VzXG4gICAgICBjb25zdCBvcmlnaW5hbFN3aXRjaERhdGFzZXQgPSBzd2l0Y2hEYXRhc2V0O1xuICAgICAgY29uc3Qgc3dpdGNoRGF0YXNldFdpdGhCdXR0b25VcGRhdGUgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIG9yaWdpbmFsU3dpdGNoRGF0YXNldChuYW1lKTtcbiAgICAgICAgdXBkYXRlQnV0dG9uU3RhdGVzKCk7XG4gICAgICB9O1xuICAgICAgXG4gICAgICAvLyBSZXBsYWNlIHN3aXRjaERhdGFzZXQgd2l0aCB0aGUgb25lIHRoYXQgdXBkYXRlcyBidXR0b25zXG4gICAgICBidXR0b25zLmZvckVhY2goYnV0dG9uID0+IHtcbiAgICAgICAgY29uc3QgdGV4dCA9IGJ1dHRvbi50ZXh0Q29udGVudD8udHJpbSgpO1xuICAgICAgICBpZiAodGV4dCA9PT0gJ1N5c3RlbSBVc2FnZScpIHtcbiAgICAgICAgICBidXR0b24ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBzd2l0Y2hEYXRhc2V0KCdzeXN0ZW0nKSk7XG4gICAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gc3dpdGNoRGF0YXNldFdpdGhCdXR0b25VcGRhdGUoJ3N5c3RlbScpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0ZXh0ID09PSAnTmV0d29yayBUcmFmZmljJykge1xuICAgICAgICAgIGJ1dHRvbi5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHN3aXRjaERhdGFzZXQoJ25ldHdvcmsnKSk7XG4gICAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gc3dpdGNoRGF0YXNldFdpdGhCdXR0b25VcGRhdGUoJ25ldHdvcmsnKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGV4dCA9PT0gJ1NhbGVzIERhdGEnKSB7XG4gICAgICAgICAgYnV0dG9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gc3dpdGNoRGF0YXNldCgnc2FsZXMnKSk7XG4gICAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gc3dpdGNoRGF0YXNldFdpdGhCdXR0b25VcGRhdGUoJ3NhbGVzJykpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gSW5pdGlhbGl6ZSBjb25uZWN0aW9ucyBjaGFydCB3aXRoIGRhdGFcbiAgICAgIGlmIChjb25uZWN0aW9uc0NoYXJ0RWxlbWVudCkge1xuICAgICAgICBjb25zdCBpbml0aWFsQ29ubmVjdGlvbnNEYXRhID0gZ2VuZXJhdGVJbml0aWFsRGF0YShwcmV2aW91c1ZhbHVlcy5jb25uZWN0aW9ucywgMzAsIFVQREFURV9JTlRFUlZBTCk7XG4gICAgICAgIGNvbm5lY3Rpb25zQ2hhcnRFbGVtZW50LnNlcmllcyA9IFt7XG4gICAgICAgICAgbmFtZTogJ0Nvbm5lY3Rpb25zJyxcbiAgICAgICAgICBkYXRhOiBpbml0aWFsQ29ubmVjdGlvbnNEYXRhXG4gICAgICAgIH1dO1xuICAgICAgICBcbiAgICAgICAgLy8gQ29uZmlndXJlIGNvbm5lY3Rpb25zIGNoYXJ0XG4gICAgICAgIGNvbm5lY3Rpb25zQ2hhcnRFbGVtZW50LnJvbGxpbmdXaW5kb3cgPSBUSU1FX1dJTkRPVztcbiAgICAgICAgY29ubmVjdGlvbnNDaGFydEVsZW1lbnQucmVhbHRpbWVNb2RlID0gZmFsc2U7IC8vIFdpbGwgYmUgZW5hYmxlZCB3aGVuIHN0YXJ0aW5nIGxpdmUgdXBkYXRlc1xuICAgICAgICBjb25uZWN0aW9uc0NoYXJ0RWxlbWVudC55QXhpc1NjYWxpbmcgPSAnZml4ZWQnO1xuICAgICAgICBjb25uZWN0aW9uc0NoYXJ0RWxlbWVudC55QXhpc01heCA9IDM1MDtcbiAgICAgICAgY29ubmVjdGlvbnNDaGFydEVsZW1lbnQuYXV0b1Njcm9sbEludGVydmFsID0gMTAwMDsgLy8gQXV0by1zY3JvbGwgZXZlcnkgc2Vjb25kXG4gICAgICAgIFxuICAgICAgICAvLyBTZXQgaW5pdGlhbCB0aW1lIHdpbmRvd1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25uZWN0aW9uc0NoYXJ0RWxlbWVudC51cGRhdGVUaW1lV2luZG93KCk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgICB9XG4gICAgfX0+XG4gICAgICA8c3R5bGU+XG4gICAgICAgICR7Y3NzYFxuICAgICAgICAuZGVtb0JveCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NSUpJywgJ2hzbCgwIDAlIDklKScpfTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZzogNDBweDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5jb250cm9scyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmluZm8ge1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS40IDE2LjMlIDU2LjklKScsICdoc2woMjE1IDIwLjIlIDU1LjElKScpfTtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPC9zdHlsZT5cbiAgICA8ZGl2IGNsYXNzPVwiZGVtb0JveFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xzXCI+XG4gICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD1cIkRhdGFzZXQ6XCI+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJoaWdobGlnaHRlZFwiPlN5c3RlbSBVc2FnZTwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcmsgVHJhZmZpYzwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uPlNhbGVzIERhdGE8L2RlZXMtYnV0dG9uPlxuICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPVwiUmVhbC10aW1lOlwiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBMaXZlPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBMaXZlPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD5cbiAgICAgICAgXG4gICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD1cIkFjdGlvbnM6XCI+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uPlNwaWtlIFZhbHVlczwvZGVlcy1idXR0b24+XG4gICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGVlcy1jaGFydC1hcmVhXG4gICAgICAgICAgaWQ9XCJtYWluLWNoYXJ0XCJcbiAgICAgICAgICAubGFiZWw9JHtpbml0aWFsRGF0YXNldHMuc3lzdGVtLmxhYmVsfVxuICAgICAgICAgIC5zZXJpZXM9JHtpbml0aWFsRGF0YXNldHMuc3lzdGVtLnNlcmllc31cbiAgICAgICAgICAueUF4aXNGb3JtYXR0ZXI9JHtpbml0aWFsRm9ybWF0dGVycy5zeXN0ZW19XG4gICAgICAgID48L2RlZXMtY2hhcnQtYXJlYT5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICA8ZGVlcy1jaGFydC1hcmVhXG4gICAgICAgICAgaWQ9XCJjb25uZWN0aW9ucy1jaGFydFwiXG4gICAgICAgICAgLmxhYmVsPSR7J0FjdGl2ZSBDb25uZWN0aW9ucyd9XG4gICAgICAgICAgLnNlcmllcz0ke1t7XG4gICAgICAgICAgICBuYW1lOiAnQ29ubmVjdGlvbnMnLFxuICAgICAgICAgICAgZGF0YTogW10gYXMgQXJyYXk8e3g6IGFueTsgeTogYW55fT5cbiAgICAgICAgICB9XX1cbiAgICAgICAgICAueUF4aXNGb3JtYXR0ZXI9JHsodmFsOiBudW1iZXIpID0+IGAke3ZhbH1gfVxuICAgICAgICA+PC9kZWVzLWNoYXJ0LWFyZWE+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImluZm9cIj5cbiAgICAgICAgUmVhbC10aW1lIG1vbml0b3Jpbmcgd2l0aCAyLW1pbnV0ZSByb2xsaW5nIHdpbmRvdyBcdTIwMjIgXG4gICAgICAgIFVwZGF0ZXMgZXZlcnkgc2Vjb25kIHdpdGggc21vb3RoIHZhbHVlIHRyYW5zaXRpb25zIFx1MjAyMiBcbiAgICAgICAgQ2xpY2sgJ1NwaWtlIFZhbHVlcycgdG8gc2ltdWxhdGUgbG9hZCBzcGlrZXNcbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cbiAgYDtcbn07IiwgImltcG9ydCB7IGNzcywgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBjaGFydEFyZWFTdHlsZXMgPSBbXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMy45JSknLCAnaHNsKDAgMCUgOTglKScpfTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuICAgICAgLm1haW5ib3gge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDAgMCUgMy45JSknKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5jaGFydFRpdGxlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDIwJSknLCAnaHNsKDAgMCUgNjMuOSUpJyl9O1xuICAgICAgfVxuICAgICAgLmNoYXJ0Q29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICBib3R0b206IDBweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgcGFkZGluZzogNDRweCAxNnB4IDE2cHggMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogRW5zdXJlIGNvbnRhaW5lciBkb2Vzbid0IG92ZXJyaWRlIGNoYXJ0IGJhY2tncm91bmQgKi9cbiAgICAgIH1cbiAgICAgIFxuICAgICAgLyogQXBleENoYXJ0cyB0aGVtZSBvdmVycmlkZXMgKi9cbiAgICAgIC5hcGV4Y2hhcnRzLWNhbnZhcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5hcGV4Y2hhcnRzLWlubmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmFwZXhjaGFydHMtZ3JhcGhpY2FsIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4iLCAiaW1wb3J0IHsgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgdHlwZSB7IERlZXNDaGFydEFyZWEgfSBmcm9tICcuL2NvbXBvbmVudC5qcyc7XG5cbmV4cG9ydCBjb25zdCByZW5kZXJDaGFydEFyZWEgPSAoY29tcG9uZW50OiBEZWVzQ2hhcnRBcmVhKTogVGVtcGxhdGVSZXN1bHQgPT4ge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluYm94XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0VGl0bGVcIj4ke2NvbXBvbmVudC5sYWJlbH08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnRDb250YWluZXJcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICBcbn07XG4iLCAiaW1wb3J0IHtcbiAgRGVlc0VsZW1lbnQsXG4gIGN1c3RvbUVsZW1lbnQsXG4gIHByb3BlcnR5LFxuICBzdGF0ZSxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuaW1wb3J0ICogYXMgZG9tdG9vbHMgZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVtby5qcyc7XG5pbXBvcnQgeyBjaGFydEFyZWFTdHlsZXMgfSBmcm9tICcuL3N0eWxlcy5qcyc7XG5pbXBvcnQgeyByZW5kZXJDaGFydEFyZWEgfSBmcm9tICcuL3RlbXBsYXRlLmpzJztcblxuaW1wb3J0IHR5cGUgQXBleENoYXJ0cyBmcm9tICdhcGV4Y2hhcnRzJztcbmltcG9ydCB7IERlZXNTZXJ2aWNlTGliTG9hZGVyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW5kZXguanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWNoYXJ0LWFyZWEnOiBEZWVzQ2hhcnRBcmVhO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWNoYXJ0LWFyZWEnKVxuZXhwb3J0IGNsYXNzIERlZXNDaGFydEFyZWEgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdDaGFydCc7XG5cbiAgLy8gaW5zdGFuY2VcbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgY2hhcnQ6IEFwZXhDaGFydHM7XG5cbiAgQHByb3BlcnR5KClcbiAgYWNjZXNzb3IgbGFiZWw6IHN0cmluZyA9ICdVbnRpdGxlZCBDaGFydCc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3Igc2VyaWVzOiBBcGV4QXhpc0NoYXJ0U2VyaWVzID0gW107XG5cbiAgLy8gT3ZlcnJpZGUgZ2V0dGVyIHRvIHJldHVybiBpbnRlcm5hbCBjaGFydCBkYXRhXG4gIGdldCBjaGFydFNlcmllcygpOiBBcGV4QXhpc0NoYXJ0U2VyaWVzIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcm5hbENoYXJ0RGF0YS5sZW5ndGggPiAwID8gdGhpcy5pbnRlcm5hbENoYXJ0RGF0YSA6IHRoaXMuc2VyaWVzO1xuICB9XG5cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBhY2Nlc3NvciB5QXhpc0Zvcm1hdHRlcjogKHZhbHVlOiBudW1iZXIpID0+IHN0cmluZyA9ICh2YWwpID0+IGAke3ZhbH0gTWJwc2A7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIHJvbGxpbmdXaW5kb3c6IG51bWJlciA9IDA7IC8vIDAgbWVhbnMgbm8gcm9sbGluZyB3aW5kb3dcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIHJlYWx0aW1lTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciB5QXhpc1NjYWxpbmc6ICdmaXhlZCcgfCAnZHluYW1pYycgfCAncGVyY2VudGFnZScgPSAnZHluYW1pYyc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIHlBeGlzTWF4OiBudW1iZXIgPSAxMDA7IC8vIFVzZWQgd2hlbiB5QXhpc1NjYWxpbmcgaXMgJ2ZpeGVkJyBvciAncGVyY2VudGFnZSdcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3IgYXV0b1Njcm9sbEludGVydmFsOiBudW1iZXIgPSAxMDAwOyAvLyBBdXRvLXNjcm9sbCBpbnRlcnZhbCBpbiBtaWxsaXNlY29uZHMgKDAgdG8gZGlzYWJsZSlcblxuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgcHJpdmF0ZSByZXNpemVUaW1lb3V0OiBudW1iZXI7XG4gIHByaXZhdGUgaW50ZXJuYWxDaGFydERhdGE6IEFwZXhBeGlzQ2hhcnRTZXJpZXMgPSBbXTtcbiAgcHJpdmF0ZSBhdXRvU2Nyb2xsVGltZXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IERFQlVHX1JFU0laRSA9IGZhbHNlOyAvLyBTZXQgdG8gdHJ1ZSB0byBlbmFibGUgcmVzaXplIGRlYnVnZ2luZ1xuICBcbiAgLy8gQ2hhcnQgY29sb3Igc2NoZW1lc1xuICBwcml2YXRlIHJlYWRvbmx5IENIQVJUX0NPTE9SUyA9IHtcbiAgICBkYXJrOiBbXG4gICAgICAnaHNsKDIxNy4yIDkxLjIlIDU5LjglKScsIC8vIEJsdWVcbiAgICAgICdoc2woMTczLjQgODAuNCUgNDAlKScsICAgLy8gVGVhbFxuICAgICAgJ2hzbCgyODAuMyA4Ny40JSA2Ni43JSknLCAvLyBQdXJwbGVcbiAgICAgICdoc2woMjQuNiA5NSUgNTMuMSUpJywgICAgLy8gT3JhbmdlXG4gICAgXSxcbiAgICBsaWdodDogW1xuICAgICAgJ2hzbCgyMjIuMiA0Ny40JSA1MS4yJSknLCAvLyBCbHVlIChzaGFkY24gcHJpbWFyeSlcbiAgICAgICdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJywgLy8gR3JlZW4gKHNoYWRjbiBzdWNjZXNzKVxuICAgICAgJ2hzbCgyODAuMyA0Ny43JSA1MC4yJSknLCAvLyBQdXJwbGUgKG11dGVkKVxuICAgICAgJ2hzbCgyMC41IDkwLjIlIDQ4LjIlKScsICAvLyBPcmFuZ2UgKHNoYWRjbiBkZXN0cnVjdGl2ZSB2YXJpYW50KVxuICAgIF1cbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGRvbXRvb2xzLmVsZW1lbnRCYXNpYy5zZXR1cCgpO1xuXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgLy8gRGVib3VuY2UgcmVzaXplIGNhbGxzIHRvIHByZXZlbnQgZXhjZXNzaXZlIHVwZGF0ZXNcbiAgICAgIGlmICh0aGlzLnJlc2l6ZVRpbWVvdXQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZW91dCk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHRoaXMucmVzaXplVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gU2ltcGx5IHJlc2l6ZSBpZiB3ZSBoYXZlIGEgY2hhcnQsIHNpbmNlIHdlJ3JlIG9ubHkgb2JzZXJ2aW5nIHRoZSBtYWluYm94XG4gICAgICAgIGlmICh0aGlzLmNoYXJ0KSB7XG4gICAgICAgICAgLy8gTG9nIHJlc2l6ZSBldmVudCBmb3IgZGVidWdnaW5nXG4gICAgICAgICAgaWYgKHRoaXMuREVCVUdfUkVTSVpFICYmIGVudHJpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBlbnRyaWVzWzBdO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0RlZXNDaGFydEFyZWEgLSBSZXNpemUgZGV0ZWN0ZWQ6Jywge1xuICAgICAgICAgICAgICB3aWR0aDogZW50cnkuY29udGVudFJlY3Qud2lkdGgsXG4gICAgICAgICAgICAgIGhlaWdodDogZW50cnkuY29udGVudFJlY3QuaGVpZ2h0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZXNpemVDaGFydCgpO1xuICAgICAgICB9XG4gICAgICB9LCAxMDApOyAvLyAxMDBtcyBkZWJvdW5jZVxuICAgIH0pO1xuICAgIFxuICAgIC8vIE5vdGU6IFJlc2l6ZU9ic2VydmVyIGlzIG5vdyBzZXQgdXAgYWZ0ZXIgY2hhcnQgaW5pdGlhbGl6YXRpb24gaW4gZmlyc3RVcGRhdGVkKClcbiAgICAvLyB0byBlbnN1cmUgcHJvcGVyIHRpbWluZyBhbmQgYXZvaWQgcmFjZSBjb25kaXRpb25zXG4gICAgXG4gICAgdGhpcy5yZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5yZXNpemVUaW1lb3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVvdXQpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgICB0aGlzLnN0b3BBdXRvU2Nyb2xsKCk7XG4gICAgICBcbiAgICAgIC8vIENyaXRpY2FsOiBEZXN0cm95IGNoYXJ0IGluc3RhbmNlIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtcbiAgICAgIGlmICh0aGlzLmNoYXJ0KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhpcy5jaGFydC5kZXN0cm95KCk7XG4gICAgICAgICAgdGhpcy5jaGFydCA9IG51bGw7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVzdHJveWluZyBjaGFydDonLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBcbiAgcHVibGljIGFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgXG4gICAgLy8gVHJpZ2dlciByZXNpemUgd2hlbiBlbGVtZW50IGlzIGNvbm5lY3RlZCB0byBET01cbiAgICAvLyBUaGlzIGhlbHBzIHdpdGggZHluYW1pY2FsbHkgYWRkZWQgY2hhcnRzXG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIC8vIFdhaXQgYSBmcmFtZSBmb3IgbGF5b3V0IHRvIHNldHRsZVxuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVzb2x2ZSkpO1xuICAgICAgYXdhaXQgdGhpcy5yZXNpemVDaGFydCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gY2hhcnRBcmVhU3R5bGVzO1xuXG4gIHB1YmxpYyByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiByZW5kZXJDaGFydEFyZWEodGhpcyk7XG4gIH1cblxuXG5cbiAgcHVibGljIGFzeW5jIGZpcnN0VXBkYXRlZCgpIHtcbiAgICBhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtcblxuICAgIC8vIExvYWQgQXBleENoYXJ0cyBmcm9tIENETlxuICAgIGNvbnN0IEFwZXhDaGFydHNMaWIgPSBhd2FpdCBEZWVzU2VydmljZUxpYkxvYWRlci5nZXRJbnN0YW5jZSgpLmxvYWRBcGV4Q2hhcnRzKCk7XG5cbiAgICAvLyBXYWl0IGZvciBuZXh0IGFuaW1hdGlvbiBmcmFtZSB0byBlbnN1cmUgbGF5b3V0IGlzIGNvbXBsZXRlXG4gICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVzb2x2ZSkpO1xuICAgIFxuICAgIC8vIEdldCBhY3R1YWwgZGltZW5zaW9ucyBvZiB0aGUgY29udGFpbmVyXG4gICAgY29uc3QgbWFpbmJveDogSFRNTERpdkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1haW5ib3gnKTtcbiAgICBjb25zdCBjaGFydENvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmNoYXJ0Q29udGFpbmVyJyk7XG4gICAgXG4gICAgaWYgKCFtYWluYm94IHx8ICFjaGFydENvbnRhaW5lcikge1xuICAgICAgY29uc29sZS5lcnJvcignQ2hhcnQgY29udGFpbmVycyBub3QgZm91bmQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIGluaXRpYWwgZGltZW5zaW9uc1xuICAgIGNvbnN0IHN0eWxlQ2hhcnRDb250YWluZXIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGFydENvbnRhaW5lcik7XG4gICAgY29uc3QgcGFkZGluZ1RvcCA9IHBhcnNlSW50KHN0eWxlQ2hhcnRDb250YWluZXIucGFkZGluZ1RvcCwgMTApO1xuICAgIGNvbnN0IHBhZGRpbmdCb3R0b20gPSBwYXJzZUludChzdHlsZUNoYXJ0Q29udGFpbmVyLnBhZGRpbmdCb3R0b20sIDEwKTtcbiAgICBjb25zdCBwYWRkaW5nTGVmdCA9IHBhcnNlSW50KHN0eWxlQ2hhcnRDb250YWluZXIucGFkZGluZ0xlZnQsIDEwKTtcbiAgICBjb25zdCBwYWRkaW5nUmlnaHQgPSBwYXJzZUludChzdHlsZUNoYXJ0Q29udGFpbmVyLnBhZGRpbmdSaWdodCwgMTApO1xuICAgIFxuICAgIGNvbnN0IGluaXRpYWxXaWR0aCA9IG1haW5ib3guY2xpZW50V2lkdGggLSBwYWRkaW5nTGVmdCAtIHBhZGRpbmdSaWdodDtcbiAgICBjb25zdCBpbml0aWFsSGVpZ2h0ID0gbWFpbmJveC5vZmZzZXRIZWlnaHQgLSBwYWRkaW5nVG9wIC0gcGFkZGluZ0JvdHRvbTtcbiAgICBcbiAgICAvLyBVc2UgcHJvdmlkZWQgc2VyaWVzIGRhdGEgb3IgZGVmYXVsdCBkZW1vIGRhdGFcbiAgICBjb25zdCBjaGFydFNlcmllcyA9IHRoaXMuc2VyaWVzLmxlbmd0aCA+IDAgPyB0aGlzLnNlcmllcyA6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NwdScsXG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7IHg6ICcyMDI1LTAxLTE1VDAzOjAwOjAwJywgeTogMjUgfSxcbiAgICAgICAgICB7IHg6ICcyMDI1LTAxLTE1VDA3OjAwOjAwJywgeTogMzAgfSxcbiAgICAgICAgICB7IHg6ICcyMDI1LTAxLTE1VDExOjAwOjAwJywgeTogMjAgfSxcbiAgICAgICAgICB7IHg6ICcyMDI1LTAxLTE1VDE1OjAwOjAwJywgeTogMzUgfSxcbiAgICAgICAgICB7IHg6ICcyMDI1LTAxLTE1VDE5OjAwOjAwJywgeTogMjUgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdtZW1vcnknLFxuICAgICAgICBkYXRhOiBbXG4gICAgICAgICAgeyB4OiAnMjAyNS0wMS0xNVQwMzowMDowMCcsIHk6IDEwIH0sXG4gICAgICAgICAgeyB4OiAnMjAyNS0wMS0xNVQwNzowMDowMCcsIHk6IDEyIH0sXG4gICAgICAgICAgeyB4OiAnMjAyNS0wMS0xNVQxMTowMDowMCcsIHk6IDEwIH0sXG4gICAgICAgICAgeyB4OiAnMjAyNS0wMS0xNVQxNTowMDowMCcsIHk6IDMwIH0sXG4gICAgICAgICAgeyB4OiAnMjAyNS0wMS0xNVQxOTowMDowMCcsIHk6IDQwIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIF07XG4gICAgXG4gICAgLy8gU3RvcmUgaW50ZXJuYWwgZGF0YVxuICAgIHRoaXMuaW50ZXJuYWxDaGFydERhdGEgPSBjaGFydFNlcmllcztcbiAgICBcbiAgICAvLyBHZXQgY3VycmVudCB0aGVtZVxuICAgIGNvbnN0IGlzRGFyayA9ICF0aGlzLmdvQnJpZ2h0O1xuICAgIGNvbnN0IHRoZW1lID0gaXNEYXJrID8gJ2RhcmsnIDogJ2xpZ2h0JztcbiAgICBcbiAgICB2YXIgb3B0aW9uczogQXBleENoYXJ0cy5BcGV4T3B0aW9ucyA9IHtcbiAgICAgIHNlcmllczogY2hhcnRTZXJpZXMsXG4gICAgICBjaGFydDoge1xuICAgICAgICB3aWR0aDogaW5pdGlhbFdpZHRoIHx8IDEwMCwgLy8gVXNlIGFjdHVhbCB3aWR0aCBvciBmYWxsYmFja1xuICAgICAgICBoZWlnaHQ6IGluaXRpYWxIZWlnaHQgfHwgMTAwLCAvLyBVc2UgYWN0dWFsIGhlaWdodCBvciBmYWxsYmFja1xuICAgICAgICB0eXBlOiAnYXJlYScsXG4gICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsIC8vIFRyYW5zcGFyZW50IGJhY2tncm91bmQgdG8gaW5oZXJpdCBmcm9tIGNvbnRhaW5lclxuICAgICAgICB0b29sYmFyOiB7XG4gICAgICAgICAgc2hvdzogZmFsc2UsIC8vIFRoaXMgbGluZSBkaXNhYmxlcyB0aGUgdG9vbGJhclxuICAgICAgICB9LFxuICAgICAgICBhbmltYXRpb25zOiB7XG4gICAgICAgICAgZW5hYmxlZDogIXRoaXMucmVhbHRpbWVNb2RlLCAvLyBEaXNhYmxlIGFuaW1hdGlvbnMgaW4gcmVhbHRpbWUgbW9kZVxuICAgICAgICAgIHNwZWVkOiA0MDAsXG4gICAgICAgICAgYW5pbWF0ZUdyYWR1YWxseToge1xuICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsIC8vIERpc2FibGUgZ3JhZHVhbCBhbmltYXRpb24gZm9yIGNsZWFuZXIgdXBkYXRlc1xuICAgICAgICAgICAgZGVsYXk6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIGR5bmFtaWNBbmltYXRpb246IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6ICF0aGlzLnJlYWx0aW1lTW9kZSxcbiAgICAgICAgICAgIHNwZWVkOiAzNTBcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHpvb206IHtcbiAgICAgICAgICBlbmFibGVkOiBmYWxzZSwgLy8gRGlzYWJsZSB6b29tIGZvciBjbGVhbmVyIGludGVyYWN0aW9uXG4gICAgICAgIH0sXG4gICAgICAgIHNlbGVjdGlvbjoge1xuICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLCAvLyBEaXNhYmxlIHNlbGVjdGlvblxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGRhdGFMYWJlbHM6IHtcbiAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc3Ryb2tlOiB7XG4gICAgICAgIHdpZHRoOiAyLFxuICAgICAgICBjdXJ2ZTogJ3Ntb290aCcsXG4gICAgICB9LFxuICAgICAgeGF4aXM6IHtcbiAgICAgICAgdHlwZTogJ2RhdGV0aW1lJywgLy8gVGltZS1zZXJpZXMgZGF0YVxuICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdISDptbTpzcycsIC8vIFRpbWUgZm9ybWF0dGluZyB3aXRoIHNlY29uZHNcbiAgICAgICAgICBkYXRldGltZVVUQzogZmFsc2UsXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIGNvbG9yczogW2lzRGFyayA/ICdoc2woMCAwJSA2My45JSknIDogJ2hzbCgwIDAlIDIwJSknXSwgLy8gTGFiZWwgY29sb3JcbiAgICAgICAgICAgIGZvbnRTaXplOiAnMTJweCcsXG4gICAgICAgICAgICBmb250RmFtaWx5OiAnLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWYnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogJzQwMCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYXhpc0JvcmRlcjoge1xuICAgICAgICAgIHNob3c6IGZhbHNlLCAvLyBIaWRlIHgtYXhpcyBib3JkZXJcbiAgICAgICAgfSxcbiAgICAgICAgYXhpc1RpY2tzOiB7XG4gICAgICAgICAgc2hvdzogZmFsc2UsIC8vIEhpZGUgeC1heGlzIHRpY2tzXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgeWF4aXM6IHtcbiAgICAgICAgbWluOiAwLFxuICAgICAgICBtYXg6IHRoaXMueUF4aXNTY2FsaW5nID09PSAnZHluYW1pYycgPyB1bmRlZmluZWQgOiB0aGlzLnlBeGlzTWF4LFxuICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICBmb3JtYXR0ZXI6IHRoaXMueUF4aXNGb3JtYXR0ZXIsXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIGNvbG9yczogW2lzRGFyayA/ICdoc2woMCAwJSA2My45JSknIDogJ2hzbCgwIDAlIDIwJSknXSwgLy8gTGFiZWwgY29sb3JcbiAgICAgICAgICAgIGZvbnRTaXplOiAnMTJweCcsXG4gICAgICAgICAgICBmb250RmFtaWx5OiAnLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWYnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogJzQwMCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYXhpc0JvcmRlcjoge1xuICAgICAgICAgIHNob3c6IGZhbHNlLCAvLyBIaWRlIHktYXhpcyBib3JkZXJcbiAgICAgICAgfSxcbiAgICAgICAgYXhpc1RpY2tzOiB7XG4gICAgICAgICAgc2hvdzogZmFsc2UsIC8vIEhpZGUgeS1heGlzIHRpY2tzXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdG9vbHRpcDoge1xuICAgICAgICBzaGFyZWQ6IHRydWUsIC8vIEVuYWJsZXMgdGhlIHRvb2x0aXAgdG8gZGlzcGxheSBhY3Jvc3Mgc2VyaWVzXG4gICAgICAgIGludGVyc2VjdDogZmFsc2UsIC8vIEFsbG93cyBob3ZlcmluZyBhbnl3aGVyZSBvbiB0aGUgY2hhcnRcbiAgICAgICAgZm9sbG93Q3Vyc29yOiB0cnVlLCAvLyBNYWtlcyB0b29sdGlwIGZvbGxvdyBtb3VzZSBldmVuIGJldHdlZW4gcG9pbnRzXG4gICAgICAgIHg6IHtcbiAgICAgICAgICBmb3JtYXQ6ICdkZC9NTS95eSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGN1c3RvbTogKHsgc2VyaWVzLCBkYXRhUG9pbnRJbmRleCwgdyB9OiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBzZXJpZXMgYW5kIGdldCBpdHMgdmFsdWVcbiAgICAgICAgICAvLyBOb3RlOiBXZSBjYW4ndCBhY2Nlc3MgY29tcG9uZW50IGluc3RhbmNlIGhlcmUsIHNvIHdlJ2xsIHVzZSB3LmNvbmZpZy50aGVtZS5tb2RlXG4gICAgICAgICAgY29uc3QgY3VycmVudFRoZW1lID0gdy5jb25maWcudGhlbWUubW9kZTtcbiAgICAgICAgICBjb25zdCBpc0RhcmtNb2RlID0gY3VycmVudFRoZW1lID09PSAnZGFyayc7XG4gICAgICAgICAgY29uc3QgYmdDb2xvciA9IGlzRGFya01vZGUgPyAnaHNsKDAgMCUgOSUpJyA6ICdoc2woMCAwJSAxMDAlKSc7XG4gICAgICAgICAgY29uc3QgdGV4dENvbG9yID0gaXNEYXJrTW9kZSA/ICdoc2woMCAwJSA5NSUpJyA6ICdoc2woMCAwJSA5JSknO1xuICAgICAgICAgIGNvbnN0IGJvcmRlckNvbG9yID0gaXNEYXJrTW9kZSA/ICdoc2woMCAwJSAxNC45JSknIDogJ2hzbCgwIDAlIDg5LjglKSc7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gR2V0IGZvcm1hdHRlciBmcm9tIGNoYXJ0IGNvbmZpZ1xuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlciA9IHcuY29uZmlnLnlheGlzWzBdPy5sYWJlbHM/LmZvcm1hdHRlciB8fCAoKHZhbDogbnVtYmVyKSA9PiB2YWwudG9TdHJpbmcoKSk7XG4gICAgICAgICAgXG4gICAgICAgICAgbGV0IHRvb2x0aXBDb250ZW50ID0gYDxkaXYgc3R5bGU9XCJwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiAke2JnQ29sb3J9OyBjb2xvcjogJHt0ZXh0Q29sb3J9OyBib3JkZXItcmFkaXVzOiA2cHg7IGJveC1zaGFkb3c6IDAgMnB4IDhweCAwIGhzbCgwIDAlIDAlIC8gJHtpc0RhcmtNb2RlID8gJzAuMicgOiAnMC4xJ30pOyBib3JkZXI6IDFweCBzb2xpZCAke2JvcmRlckNvbG9yfTtmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHg7XCI+YDtcblxuICAgICAgICAgIHNlcmllcy5mb3JFYWNoKChzOiBudW1iZXJbXSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB3Lmdsb2JhbHMuc2VyaWVzTmFtZXNbaW5kZXhdOyAvLyBHZXQgc2VyaWVzIGxhYmVsXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHNbZGF0YVBvaW50SW5kZXhdOyAvLyBHZXQgdmFsdWUgYXQgZGF0YSBwb2ludFxuICAgICAgICAgICAgY29uc3QgY29sb3IgPSB3Lmdsb2JhbHMuY29sb3JzW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVyKHZhbHVlKTtcbiAgICAgICAgICAgIHRvb2x0aXBDb250ZW50ICs9IGA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IG1hcmdpbjogJHtpbmRleCA+IDAgPyAnNnB4JyA6ICcwJ30gMDtcIj5cbiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJhY2tncm91bmQ6ICR7Y29sb3J9OyBib3JkZXItcmFkaXVzOiAycHg7XCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA1MDA7XCI+JHtsYWJlbH06PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvOyBmb250LXdlaWdodDogNjAwO1wiPiR7Zm9ybWF0dGVkVmFsdWV9PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRvb2x0aXBDb250ZW50ICs9IGA8L2Rpdj5gO1xuICAgICAgICAgIHJldHVybiB0b29sdGlwQ29udGVudDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBncmlkOiB7XG4gICAgICAgIHhheGlzOiB7XG4gICAgICAgICAgbGluZXM6IHtcbiAgICAgICAgICAgIHNob3c6IGZhbHNlLCAvLyBIaWRlIHZlcnRpY2FsIGdyaWQgbGluZXMgZm9yIGNsZWFuZXIgbG9va1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHlheGlzOiB7XG4gICAgICAgICAgbGluZXM6IHtcbiAgICAgICAgICAgIHNob3c6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYm9yZGVyQ29sb3I6IGlzRGFyayA/ICdoc2woMCAwJSAxNC45JSknIDogJ2hzbCgwIDAlIDk0JSknLCAvLyBWZXJ5IHN1YnRsZSBncmlkIGxpbmVzXG4gICAgICAgIHN0cm9rZURhc2hBcnJheTogMCwgLy8gU29saWQgbGluZVxuICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgdG9wOiAxMCxcbiAgICAgICAgICByaWdodDogMjAsXG4gICAgICAgICAgYm90dG9tOiAxMCxcbiAgICAgICAgICBsZWZ0OiAyMCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBmaWxsOiB7XG4gICAgICAgIHR5cGU6ICdncmFkaWVudCcsIC8vIEdyYWRpZW50IGZpbGwgZm9yIHRoZSBhcmVhXG4gICAgICAgIGdyYWRpZW50OiB7XG4gICAgICAgICAgc2hhZGU6IGlzRGFyayA/ICdkYXJrJyA6ICdsaWdodCcsXG4gICAgICAgICAgdHlwZTogJ3ZlcnRpY2FsJyxcbiAgICAgICAgICBzaGFkZUludGVuc2l0eTogMC4xLFxuICAgICAgICAgIG9wYWNpdHlGcm9tOiBpc0RhcmsgPyAwLjIgOiAwLjMsXG4gICAgICAgICAgb3BhY2l0eVRvOiAwLFxuICAgICAgICAgIHN0b3BzOiBbMCwgMTAwXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb2xvcnM6IGlzRGFyayA/IHRoaXMuQ0hBUlRfQ09MT1JTLmRhcmsgOiB0aGlzLkNIQVJUX0NPTE9SUy5saWdodCxcbiAgICAgIHRoZW1lOiB7XG4gICAgICAgIG1vZGU6IHRoZW1lLFxuICAgICAgfSxcbiAgICB9O1xuICAgIFxuICAgIHRyeSB7XG4gICAgICB0aGlzLmNoYXJ0ID0gbmV3IEFwZXhDaGFydHNMaWIodGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5jaGFydENvbnRhaW5lcicpLCBvcHRpb25zKTtcbiAgICAgIGF3YWl0IHRoaXMuY2hhcnQucmVuZGVyKCk7XG4gICAgICBcbiAgICAgIC8vIEdpdmUgdGhlIGNoYXJ0IGEgbW9tZW50IHRvIGZ1bGx5IGluaXRpYWxpemUgYmVmb3JlIHJlc2l6aW5nXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwKSk7XG4gICAgICBhd2FpdCB0aGlzLnJlc2l6ZUNoYXJ0KCk7XG4gICAgICBcbiAgICAgIC8vIEVuc3VyZSByZXNpemUgb2JzZXJ2ZXIgaXMgd2F0Y2hpbmcgdGhlIG1haW5ib3hcbiAgICAgIGNvbnN0IG1haW5ib3ggPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1haW5ib3gnKTtcbiAgICAgIGlmIChtYWluYm94ICYmIHRoaXMucmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgLy8gRGlzY29ubmVjdCBhbnkgcHJldmlvdXMgb2JzZXJ2YXRpb25zXG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcgdGhlIG1haW5ib3hcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKG1haW5ib3gpO1xuICAgICAgICBpZiAodGhpcy5ERUJVR19SRVNJWkUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnRGVlc0NoYXJ0QXJlYSAtIFJlc2l6ZU9ic2VydmVyIGF0dGFjaGVkIHRvIG1haW5ib3gnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gaW5pdGlhbGl6ZSBjaGFydDonLCBlcnJvcik7XG4gICAgICAvLyBPcHRpb25hbGx5LCB5b3UgY291bGQgc2V0IGFuIGVycm9yIHN0YXRlIGhlcmVcbiAgICAgIC8vIHRoaXMuY2hhcnRTdGF0ZSA9ICdlcnJvcic7XG4gICAgICAvLyB0aGlzLmVycm9yTWVzc2FnZSA9ICdGYWlsZWQgdG8gaW5pdGlhbGl6ZSBjaGFydCc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcsIGFueT4pIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBcbiAgICAvLyBVcGRhdGUgY2hhcnQgdGhlbWUgd2hlbiBnb0JyaWdodCBjaGFuZ2VzXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZ29CcmlnaHQnKSAmJiB0aGlzLmNoYXJ0KSB7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZUNoYXJ0VGhlbWUoKTtcbiAgICB9XG4gICAgXG4gICAgLy8gVXBkYXRlIGNoYXJ0IGlmIHNlcmllcyBkYXRhIGNoYW5nZXNcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzZXJpZXMnKSAmJiB0aGlzLmNoYXJ0ICYmIHRoaXMuc2VyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlU2VyaWVzKHRoaXMuc2VyaWVzKTtcbiAgICB9XG4gICAgXG4gICAgLy8gVXBkYXRlIHktYXhpcyBmb3JtYXR0ZXIgaWYgaXQgY2hhbmdlc1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3lBeGlzRm9ybWF0dGVyJykgJiYgdGhpcy5jaGFydCkge1xuICAgICAgYXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHtcbiAgICAgICAgeWF4aXM6IHtcbiAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgIGZvcm1hdHRlcjogdGhpcy55QXhpc0Zvcm1hdHRlcixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIFxuICAgIC8vIEhhbmRsZSByZWFsdGltZSBtb2RlIGNoYW5nZXNcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdyZWFsdGltZU1vZGUnKSAmJiB0aGlzLmNoYXJ0KSB7XG4gICAgICBhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICBjaGFydDoge1xuICAgICAgICAgIGFuaW1hdGlvbnM6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6ICF0aGlzLnJlYWx0aW1lTW9kZSxcbiAgICAgICAgICAgIHNwZWVkOiA0MDAsXG4gICAgICAgICAgICBhbmltYXRlR3JhZHVhbGx5OiB7XG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBkZWxheTogMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGR5bmFtaWNBbmltYXRpb246IHtcbiAgICAgICAgICAgICAgZW5hYmxlZDogIXRoaXMucmVhbHRpbWVNb2RlLFxuICAgICAgICAgICAgICBzcGVlZDogMzUwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gU3RhcnQvc3RvcCBhdXRvLXNjcm9sbCBiYXNlZCBvbiByZWFsdGltZSBtb2RlXG4gICAgICBpZiAodGhpcy5yZWFsdGltZU1vZGUgJiYgdGhpcy5yb2xsaW5nV2luZG93ID4gMCAmJiB0aGlzLmF1dG9TY3JvbGxJbnRlcnZhbCA+IDApIHtcbiAgICAgICAgdGhpcy5zdGFydEF1dG9TY3JvbGwoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RvcEF1dG9TY3JvbGwoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gSGFuZGxlIGF1dG8tc2Nyb2xsIGludGVydmFsIGNoYW5nZXNcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdhdXRvU2Nyb2xsSW50ZXJ2YWwnKSAmJiB0aGlzLmNoYXJ0KSB7XG4gICAgICB0aGlzLnN0b3BBdXRvU2Nyb2xsKCk7XG4gICAgICBpZiAodGhpcy5yZWFsdGltZU1vZGUgJiYgdGhpcy5yb2xsaW5nV2luZG93ID4gMCAmJiB0aGlzLmF1dG9TY3JvbGxJbnRlcnZhbCA+IDApIHtcbiAgICAgICAgdGhpcy5zdGFydEF1dG9TY3JvbGwoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gSGFuZGxlIHktYXhpcyBzY2FsaW5nIGNoYW5nZXNcbiAgICBpZiAoKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygneUF4aXNTY2FsaW5nJykgfHwgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd5QXhpc01heCcpKSAmJiB0aGlzLmNoYXJ0KSB7XG4gICAgICBhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICB5YXhpczoge1xuICAgICAgICAgIG1pbjogMCxcbiAgICAgICAgICBtYXg6IHRoaXMueUF4aXNTY2FsaW5nID09PSAnZHluYW1pYycgPyB1bmRlZmluZWQgOiB0aGlzLnlBeGlzTWF4XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVTZXJpZXMobmV3U2VyaWVzOiBBcGV4QXhpc0NoYXJ0U2VyaWVzLCBhbmltYXRlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGlmICghdGhpcy5jaGFydCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICB0cnkge1xuICAgICAgLy8gU3RvcmUgdGhlIG5ldyBkYXRhIGZpcnN0XG4gICAgICB0aGlzLmludGVybmFsQ2hhcnREYXRhID0gbmV3U2VyaWVzO1xuICAgICAgXG4gICAgICAvLyBIYW5kbGUgcm9sbGluZyB3aW5kb3cgaWYgZW5hYmxlZFxuICAgICAgaWYgKHRoaXMucm9sbGluZ1dpbmRvdyA+IDAgJiYgdGhpcy5yZWFsdGltZU1vZGUpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgY3V0b2ZmVGltZSA9IG5vdyAtIHRoaXMucm9sbGluZ1dpbmRvdztcbiAgICAgICAgXG4gICAgICAgIC8vIEZpbHRlciBkYXRhIHRvIG9ubHkgaW5jbHVkZSBwb2ludHMgd2l0aGluIHRoZSByb2xsaW5nIHdpbmRvd1xuICAgICAgICBjb25zdCBmaWx0ZXJlZFNlcmllcyA9IG5ld1Nlcmllcy5tYXAoc2VyaWVzID0+ICh7XG4gICAgICAgICAgbmFtZTogc2VyaWVzLm5hbWUsXG4gICAgICAgICAgZGF0YTogKHNlcmllcy5kYXRhIGFzIGFueVtdKS5maWx0ZXIocG9pbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwb2ludCA9PT0gJ29iamVjdCcgJiYgcG9pbnQgIT09IG51bGwgJiYgJ3gnIGluIHBvaW50KSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShwb2ludC54KS5nZXRUaW1lKCkgPiBjdXRvZmZUaW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH0pXG4gICAgICAgIH0pKTtcbiAgICAgICAgXG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIGlmIHdlIGhhdmUgZGF0YVxuICAgICAgICBpZiAoZmlsdGVyZWRTZXJpZXMuc29tZShzID0+IHMuZGF0YS5sZW5ndGggPiAwKSkge1xuICAgICAgICAgIC8vIEhhbmRsZSB5LWF4aXMgc2NhbGluZyBmaXJzdFxuICAgICAgICAgIGlmICh0aGlzLnlBeGlzU2NhbGluZyA9PT0gJ2R5bmFtaWMnKSB7XG4gICAgICAgICAgICBjb25zdCBhbGxWYWx1ZXMgPSBmaWx0ZXJlZFNlcmllcy5mbGF0TWFwKHMgPT4gKHMuZGF0YSBhcyBhbnlbXSkubWFwKGQgPT4gZC55KSk7XG4gICAgICAgICAgICBpZiAoYWxsVmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgY29uc3QgbWF4VmFsdWUgPSBNYXRoLm1heCguLi5hbGxWYWx1ZXMpO1xuICAgICAgICAgICAgICBjb25zdCBkeW5hbWljTWF4ID0gTWF0aC5jZWlsKG1heFZhbHVlICogMS4xKTtcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHtcbiAgICAgICAgICAgICAgICB5YXhpczoge1xuICAgICAgICAgICAgICAgICAgbWluOiAwLFxuICAgICAgICAgICAgICAgICAgbWF4OiBkeW5hbWljTWF4XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICBhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZVNlcmllcyhmaWx0ZXJlZFNlcmllcywgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZVNlcmllcyhuZXdTZXJpZXMsIGFuaW1hdGUpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gdXBkYXRlIGNoYXJ0IHNlcmllczonLCBlcnJvcik7XG4gICAgfVxuICB9XG4gIFxuICAvLyBVcGRhdGUganVzdCB0aGUgeC1heGlzIGZvciBzbW9vdGggc2Nyb2xsaW5nIGluIHJlYWx0aW1lIG1vZGVcbiAgLy8gUHVibGljIGZvciBhZHZhbmNlZCB1c2FnZSBpbiBkZW1vcywgYnV0IHR5cGljYWxseSBoYW5kbGVkIGF1dG9tYXRpY2FsbHlcbiAgcHVibGljIGFzeW5jIHVwZGF0ZVRpbWVXaW5kb3coKSB7XG4gICAgaWYgKCF0aGlzLmNoYXJ0IHx8IHRoaXMucm9sbGluZ1dpbmRvdyA8PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgY3V0b2ZmVGltZSA9IG5vdyAtIHRoaXMucm9sbGluZ1dpbmRvdztcbiAgICBcbiAgICBhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgeGF4aXM6IHtcbiAgICAgICAgbWluOiBjdXRvZmZUaW1lLFxuICAgICAgICBtYXg6IG5vdyxcbiAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgZm9ybWF0OiAnSEg6bW06c3MnLFxuICAgICAgICAgIGRhdGV0aW1lVVRDOiBmYWxzZSxcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgY29sb3JzOiBbIXRoaXMuZ29CcmlnaHQgPyAnaHNsKDAgMCUgNjMuOSUpJyA6ICdoc2woMCAwJSAyMCUpJ10sXG4gICAgICAgICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgICAgICAgICAgZm9udEZhbWlseTogJy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmJyxcbiAgICAgICAgICAgIGZvbnRXZWlnaHQ6ICc0MDAnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHRpY2tBbW91bnQ6IDYsXG4gICAgICB9XG4gICAgfSwgZmFsc2UsIGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcHBlbmREYXRhKG5ld0RhdGE6IHsgZGF0YTogYW55W10gfVtdKSB7XG4gICAgaWYgKCF0aGlzLmNoYXJ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIFVzZSBBcGV4Q2hhcnRzJyBhcHBlbmREYXRhIG1ldGhvZCBmb3Igc21vb3RoZXIgcmVhbC10aW1lIHVwZGF0ZXNcbiAgICB0aGlzLmNoYXJ0LmFwcGVuZERhdGEobmV3RGF0YSk7XG4gIH1cbiAgXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVPcHRpb25zKG9wdGlvbnM6IEFwZXhDaGFydHMuQXBleE9wdGlvbnMsIHJlZHJhd1BhdGhzPzogYm9vbGVhbiwgYW5pbWF0ZT86IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuY2hhcnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyhvcHRpb25zLCByZWRyYXdQYXRocywgYW5pbWF0ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVzaXplQ2hhcnQoKSB7XG4gICAgaWYgKCF0aGlzLmNoYXJ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGlmICh0aGlzLkRFQlVHX1JFU0laRSkge1xuICAgICAgY29uc29sZS5sb2coJ0RlZXNDaGFydEFyZWEgLSByZXNpemVDaGFydCBjYWxsZWQnKTtcbiAgICB9XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1haW5ib3g6IEhUTUxEaXZFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tYWluYm94Jyk7XG4gICAgICBjb25zdCBjaGFydENvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmNoYXJ0Q29udGFpbmVyJyk7XG4gICAgICBcbiAgICAgIGlmICghbWFpbmJveCB8fCAhY2hhcnRDb250YWluZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBGb3JjZSBsYXlvdXQgcmVjYWxjdWxhdGlvblxuICAgICAgdm9pZCBtYWluYm94Lm9mZnNldEhlaWdodDtcblxuICAgICAgLy8gR2V0IGNvbXB1dGVkIHN0eWxlIG9mIHRoZSBlbGVtZW50XG4gICAgICBjb25zdCBzdHlsZUNoYXJ0Q29udGFpbmVyID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoY2hhcnRDb250YWluZXIpO1xuXG4gICAgICAvLyBFeHRyYWN0IHBhZGRpbmcgdmFsdWVzXG4gICAgICBjb25zdCBwYWRkaW5nVG9wID0gcGFyc2VJbnQoc3R5bGVDaGFydENvbnRhaW5lci5wYWRkaW5nVG9wLCAxMCk7XG4gICAgICBjb25zdCBwYWRkaW5nQm90dG9tID0gcGFyc2VJbnQoc3R5bGVDaGFydENvbnRhaW5lci5wYWRkaW5nQm90dG9tLCAxMCk7XG4gICAgICBjb25zdCBwYWRkaW5nTGVmdCA9IHBhcnNlSW50KHN0eWxlQ2hhcnRDb250YWluZXIucGFkZGluZ0xlZnQsIDEwKTtcbiAgICAgIGNvbnN0IHBhZGRpbmdSaWdodCA9IHBhcnNlSW50KHN0eWxlQ2hhcnRDb250YWluZXIucGFkZGluZ1JpZ2h0LCAxMCk7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgYWN0dWFsIHdpZHRoIGFuZCBoZWlnaHQgdG8gdXNlLCBzdWJ0cmFjdGluZyBwYWRkaW5nXG4gICAgICBjb25zdCBhY3R1YWxXaWR0aCA9IG1haW5ib3guY2xpZW50V2lkdGggLSBwYWRkaW5nTGVmdCAtIHBhZGRpbmdSaWdodDtcbiAgICAgIGNvbnN0IGFjdHVhbEhlaWdodCA9IG1haW5ib3gub2Zmc2V0SGVpZ2h0IC0gcGFkZGluZ1RvcCAtIHBhZGRpbmdCb3R0b207XG4gICAgICBcbiAgICAgIC8vIFZhbGlkYXRlIGRpbWVuc2lvbnNcbiAgICAgIGlmIChhY3R1YWxXaWR0aCA+IDAgJiYgYWN0dWFsSGVpZ2h0ID4gMCkge1xuICAgICAgICBpZiAodGhpcy5ERUJVR19SRVNJWkUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnRGVlc0NoYXJ0QXJlYSAtIFVwZGF0aW5nIGNoYXJ0IGRpbWVuc2lvbnM6Jywge1xuICAgICAgICAgICAgd2lkdGg6IGFjdHVhbFdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBhY3R1YWxIZWlnaHRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgYXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHtcbiAgICAgICAgICBjaGFydDoge1xuICAgICAgICAgICAgd2lkdGg6IGFjdHVhbFdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBhY3R1YWxIZWlnaHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSwgdHJ1ZSwgZmFsc2UpOyAvLyBSZWRyYXcgcGF0aHMgYnV0IGRvbid0IGFuaW1hdGVcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHJlc2l6ZSBjaGFydDonLCBlcnJvcik7XG4gICAgfVxuICB9XG4gIFxuICAvKipcbiAgICogTWFudWFsbHkgdHJpZ2dlciBhIGNoYXJ0IHJlc2l6ZS4gVXNlZnVsIHdoZW4gYXV0b21hdGljIGRldGVjdGlvbiBkb2Vzbid0IHdvcmsuXG4gICAqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBtZXRob2QgdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZvcmNlUmVzaXplKCkge1xuICAgIGF3YWl0IHRoaXMucmVzaXplQ2hhcnQoKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBzdGFydEF1dG9TY3JvbGwoKSB7XG4gICAgaWYgKHRoaXMuYXV0b1Njcm9sbFRpbWVyKSB7XG4gICAgICByZXR1cm47IC8vIEFscmVhZHkgcnVubmluZ1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmF1dG9TY3JvbGxUaW1lciA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVRpbWVXaW5kb3coKTtcbiAgICB9LCB0aGlzLmF1dG9TY3JvbGxJbnRlcnZhbCk7XG4gIH1cbiAgXG4gIHByaXZhdGUgc3RvcEF1dG9TY3JvbGwoKSB7XG4gICAgaWYgKHRoaXMuYXV0b1Njcm9sbFRpbWVyKSB7XG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TY3JvbGxUaW1lcik7XG4gICAgICB0aGlzLmF1dG9TY3JvbGxUaW1lciA9IG51bGw7XG4gICAgfVxuICB9XG4gIFxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUNoYXJ0VGhlbWUoKSB7XG4gICAgaWYgKCF0aGlzLmNoYXJ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGlzRGFyayA9ICF0aGlzLmdvQnJpZ2h0O1xuICAgIGNvbnN0IHRoZW1lID0gaXNEYXJrID8gJ2RhcmsnIDogJ2xpZ2h0JztcbiAgICBcbiAgICBhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgdGhlbWU6IHtcbiAgICAgICAgbW9kZTogdGhlbWUsXG4gICAgICB9LFxuICAgICAgY29sb3JzOiBpc0RhcmsgPyB0aGlzLkNIQVJUX0NPTE9SUy5kYXJrIDogdGhpcy5DSEFSVF9DT0xPUlMubGlnaHQsXG4gICAgICB4YXhpczoge1xuICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgY29sb3JzOiBbaXNEYXJrID8gJ2hzbCgwIDAlIDYzLjklKScgOiAnaHNsKDAgMCUgMjAlKSddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgeWF4aXM6IHtcbiAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIGNvbG9yczogW2lzRGFyayA/ICdoc2woMCAwJSA2My45JSknIDogJ2hzbCgwIDAlIDIwJSknXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGdyaWQ6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGlzRGFyayA/ICdoc2woMCAwJSAxNC45JSknIDogJ2hzbCgwIDAlIDk0JSknLFxuICAgICAgfSxcbiAgICAgIGZpbGw6IHtcbiAgICAgICAgZ3JhZGllbnQ6IHtcbiAgICAgICAgICBzaGFkZTogaXNEYXJrID8gJ2RhcmsnIDogJ2xpZ2h0JyxcbiAgICAgICAgICBvcGFjaXR5RnJvbTogaXNEYXJrID8gMC4yIDogMC4zLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGh0bWwgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHR5cGUgeyBEZWVzQ2hhcnRMb2cgfSBmcm9tICcuLi9kZWVzLWNoYXJ0LWxvZy9kZWVzLWNoYXJ0LWxvZy5qcyc7XG5pbXBvcnQgJ0BkZXNpZ24uZXN0YXRlL2RlZXMtd2NjdG9vbHMvZGVtb3Rvb2xzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4ge1xuICByZXR1cm4gaHRtbGBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIC8vIEdldCB0aGUgbG9nIGVsZW1lbnRcbiAgICAgIGNvbnN0IGxvZ0VsZW1lbnQgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtY2hhcnQtbG9nJykgYXMgRGVlc0NoYXJ0TG9nO1xuICAgICAgbGV0IGludGVydmFsSWQ6IG51bWJlcjtcblxuICAgICAgY29uc3Qgc2VydmVyU291cmNlcyA9IFsnU2VydmVyJywgJ0RhdGFiYXNlJywgJ0FQSScsICdBdXRoJywgJ0NhY2hlJywgJ1F1ZXVlJywgJ1dlYlNvY2tldCcsICdTY2hlZHVsZXInXTtcbiAgICAgIFxuICAgICAgY29uc3QgbG9nVGVtcGxhdGVzID0ge1xuICAgICAgICBkZWJ1ZzogW1xuICAgICAgICAgICdMb2FkaW5nIG1vZHVsZToge3ttb2R1bGV9fScsXG4gICAgICAgICAgJ0NhY2hlIGhpdCBmb3Iga2V5OiB7e2tleX19JyxcbiAgICAgICAgICAnU1FMIHF1ZXJ5IGV4ZWN1dGVkIGluIHt7dGltZX19bXMnLFxuICAgICAgICAgICdSZXF1ZXN0IGhlYWRlcnM6IHt7aGVhZGVyc319JyxcbiAgICAgICAgICAnRW52aXJvbm1lbnQgdmFyaWFibGUgbG9hZGVkOiB7e3Zhcn19JyxcbiAgICAgICAgXSxcbiAgICAgICAgaW5mbzogW1xuICAgICAgICAgICdSZXF1ZXN0IHJlY2VpdmVkOiB7e21ldGhvZH19IHt7cGF0aH19JyxcbiAgICAgICAgICAnVXNlciB7e3VzZXJJZH19IGF1dGhlbnRpY2F0ZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgICAgICAnUHJvY2Vzc2luZyBqb2Ige3tqb2JJZH19IGZyb20gcXVldWUnLFxuICAgICAgICAgICdTY2hlZHVsZWQgdGFzayBcInt7dGFza319XCIgc3RhcnRlZCcsXG4gICAgICAgICAgJ1dlYlNvY2tldCBjb25uZWN0aW9uIGVzdGFibGlzaGVkIGZyb20ge3tpcH19JyxcbiAgICAgICAgXSxcbiAgICAgICAgd2FybjogW1xuICAgICAgICAgICdTbG93IHF1ZXJ5IGRldGVjdGVkOiB7e3F1ZXJ5fX0gKHt7dGltZX19bXMpJyxcbiAgICAgICAgICAnTWVtb3J5IHVzYWdlIGF0IHt7cGVyY2VudH19JScsXG4gICAgICAgICAgJ1JhdGUgbGltaXQgYXBwcm9hY2hpbmcgZm9yIElQIHt7aXB9fScsXG4gICAgICAgICAgJ0RlcHJlY2F0ZWQgQVBJIGVuZHBvaW50IGNhbGxlZDoge3tlbmRwb2ludH19JyxcbiAgICAgICAgICAnQ2VydGlmaWNhdGUgZXhwaXJlcyBpbiB7e2RheXN9fSBkYXlzJyxcbiAgICAgICAgXSxcbiAgICAgICAgZXJyb3I6IFtcbiAgICAgICAgICAnRGF0YWJhc2UgY29ubmVjdGlvbiBsb3N0OiB7e2Vycm9yfX0nLFxuICAgICAgICAgICdGYWlsZWQgdG8gcHJvY2VzcyByZXF1ZXN0OiB7e2Vycm9yfX0nLFxuICAgICAgICAgICdBdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIge3t1c2VyfX0nLFxuICAgICAgICAgICdGaWxlIG5vdCBmb3VuZDoge3twYXRofX0nLFxuICAgICAgICAgICdTZXJ2aWNlIHVuYXZhaWxhYmxlOiB7e3NlcnZpY2V9fScsXG4gICAgICAgIF0sXG4gICAgICAgIHN1Y2Nlc3M6IFtcbiAgICAgICAgICAnU2VydmVyIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5IG9uIHBvcnQge3twb3J0fX0nLFxuICAgICAgICAgICdEYXRhYmFzZSBtaWdyYXRpb24gY29tcGxldGVkJyxcbiAgICAgICAgICAnQmFja3VwIGNvbXBsZXRlZDoge3tzaXplfX0gTUInLFxuICAgICAgICAgICdTU0wgY2VydGlmaWNhdGUgcmVuZXdlZCcsXG4gICAgICAgICAgJ0hlYWx0aCBjaGVjayBwYXNzZWQ6IGFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsJyxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGdlbmVyYXRlUmFuZG9tTG9nID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBsZXZlbHM6IEFycmF5PCdkZWJ1ZycgfCAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InIHwgJ3N1Y2Nlc3MnPiA9IFsnZGVidWcnLCAnaW5mbycsICd3YXJuJywgJ2Vycm9yJywgJ3N1Y2Nlc3MnXTtcbiAgICAgICAgY29uc3Qgd2VpZ2h0cyA9IFswLjIsIDAuNSwgMC4xNSwgMC4xLCAwLjA1XTsgLy8gV2VpZ2h0ZWQgcHJvYmFiaWxpdHlcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHJhbmRvbSA9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgIGxldCBjdW11bGF0aXZlID0gMDtcbiAgICAgICAgbGV0IGxldmVsOiB0eXBlb2YgbGV2ZWxzWzBdID0gJ2luZm8nO1xuICAgICAgICBcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3ZWlnaHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY3VtdWxhdGl2ZSArPSB3ZWlnaHRzW2ldO1xuICAgICAgICAgIGlmIChyYW5kb20gPCBjdW11bGF0aXZlKSB7XG4gICAgICAgICAgICBsZXZlbCA9IGxldmVsc1tpXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHNlcnZlclNvdXJjZXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogc2VydmVyU291cmNlcy5sZW5ndGgpXTtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVzID0gbG9nVGVtcGxhdGVzW2xldmVsXTtcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSB0ZW1wbGF0ZXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGVtcGxhdGVzLmxlbmd0aCldO1xuICAgICAgICBcbiAgICAgICAgLy8gUmVwbGFjZSBwbGFjZWhvbGRlcnMgd2l0aCByYW5kb20gdmFsdWVzXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0ZW1wbGF0ZVxuICAgICAgICAgIC5yZXBsYWNlKCd7e21vZHVsZX19JywgWydleHByZXNzJywgJ21vbmdvb3NlJywgJ3JlZGlzJywgJ3NvY2tldC5pbyddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDQpXSlcbiAgICAgICAgICAucmVwbGFjZSgne3trZXl9fScsICd1c2VyOicgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwKSlcbiAgICAgICAgICAucmVwbGFjZSgne3t0aW1lfX0nLCBTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNTAwKSArIDUwKSlcbiAgICAgICAgICAucmVwbGFjZSgne3toZWFkZXJzfX0nLCAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uLCBBdXRob3JpemF0aW9uOiBCZWFyZXIgLi4uJylcbiAgICAgICAgICAucmVwbGFjZSgne3t2YXJ9fScsIFsnTk9ERV9FTlYnLCAnREFUQUJBU0VfVVJMJywgJ0FQSV9LRVknLCAnUE9SVCddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDQpXSlcbiAgICAgICAgICAucmVwbGFjZSgne3ttZXRob2R9fScsIFsnR0VUJywgJ1BPU1QnLCAnUFVUJywgJ0RFTEVURSddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDQpXSlcbiAgICAgICAgICAucmVwbGFjZSgne3twYXRofX0nLCBbJy9hcGkvdXNlcnMnLCAnL2FwaS9hdXRoL2xvZ2luJywgJy9hcGkvcHJvZHVjdHMnLCAnL2hlYWx0aCddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDQpXSlcbiAgICAgICAgICAucmVwbGFjZSgne3t1c2VySWR9fScsIFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMCkpKVxuICAgICAgICAgIC5yZXBsYWNlKCd7e2pvYklkfX0nLCAnam9iXycgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgMTEpKVxuICAgICAgICAgIC5yZXBsYWNlKCd7e3Rhc2t9fScsIFsnY2xlYW51cCcsICdiYWNrdXAnLCAncmVwb3J0LWdlbmVyYXRpb24nLCAnY2FjaGUtcmVmcmVzaCddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDQpXSlcbiAgICAgICAgICAucmVwbGFjZSgne3tpcH19JywgYDE5Mi4xNjguMS4ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSl9YClcbiAgICAgICAgICAucmVwbGFjZSgne3txdWVyeX19JywgJ1NFTEVDVCAqIEZST00gdXNlcnMgV0hFUkUgLi4uJylcbiAgICAgICAgICAucmVwbGFjZSgne3twZXJjZW50fX0nLCBTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMzApICsgNzApKVxuICAgICAgICAgIC5yZXBsYWNlKCd7e2VuZHBvaW50fX0nLCAnL2FwaS92MS9sZWdhY3knKVxuICAgICAgICAgIC5yZXBsYWNlKCd7e2RheXN9fScsIFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAzMCkgKyAxKSlcbiAgICAgICAgICAucmVwbGFjZSgne3tlcnJvcn19JywgWydFQ09OTlJFRlVTRUQnLCAnRVRJTUVET1VUJywgJ0VOT1RGT1VORCddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDMpXSlcbiAgICAgICAgICAucmVwbGFjZSgne3t1c2VyfX0nLCAndXNlcl8nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMCkpXG4gICAgICAgICAgLnJlcGxhY2UoJ3t7c2VydmljZX19JywgWydSZWRpcycsICdNb25nb0RCJywgJ0VsYXN0aWNTZWFyY2gnXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAzKV0pXG4gICAgICAgICAgLnJlcGxhY2UoJ3t7cG9ydH19JywgU3RyaW5nKDMwMDAgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMCkpKVxuICAgICAgICAgIC5yZXBsYWNlKCd7e3NpemV9fScsIFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1MDApICsgMTAwKSk7XG5cbiAgICAgICAgbG9nRWxlbWVudC5hZGRMb2cobGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzdGFydFNpbXVsYXRpb24gPSAoKSA9PiB7XG4gICAgICAgIGlmICghaW50ZXJ2YWxJZCkge1xuICAgICAgICAgIC8vIEdlbmVyYXRlIGxvZ3MgYXQgcmFuZG9tIGludGVydmFscyBiZXR3ZWVuIDUwMG1zIGFuZCAyNTAwbXNcbiAgICAgICAgICBjb25zdCBzY2hlZHVsZU5leHQgPSAoKSA9PiB7XG4gICAgICAgICAgICBnZW5lcmF0ZVJhbmRvbUxvZygpO1xuICAgICAgICAgICAgY29uc3QgbmV4dERlbGF5ID0gTWF0aC5yYW5kb20oKSAqIDIwMDAgKyA1MDA7XG4gICAgICAgICAgICBpbnRlcnZhbElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaW50ZXJ2YWxJZCkge1xuICAgICAgICAgICAgICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBuZXh0RGVsYXkpO1xuICAgICAgICAgIH07XG4gICAgICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHN0b3BTaW11bGF0aW9uID0gKCkgPT4ge1xuICAgICAgICBpZiAoaW50ZXJ2YWxJZCkge1xuICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoaW50ZXJ2YWxJZCk7XG4gICAgICAgICAgaW50ZXJ2YWxJZCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIC8vIFdpcmUgdXAgYnV0dG9uIGNsaWNrIGhhbmRsZXJzXG4gICAgICBjb25zdCBidXR0b25zID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWJ1dHRvbicpO1xuICAgICAgYnV0dG9ucy5mb3JFYWNoKGJ1dHRvbiA9PiB7XG4gICAgICAgIGNvbnN0IHRleHQgPSBidXR0b24udGV4dENvbnRlbnQ/LnRyaW0oKTtcbiAgICAgICAgaWYgKHRleHQgPT09ICdBZGQgU2luZ2xlIExvZycpIHtcbiAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBnZW5lcmF0ZVJhbmRvbUxvZygpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0ZXh0ID09PSAnU3RhcnQgU2ltdWxhdGlvbicpIHtcbiAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBzdGFydFNpbXVsYXRpb24oKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGV4dCA9PT0gJ1N0b3AgU2ltdWxhdGlvbicpIHtcbiAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBzdG9wU2ltdWxhdGlvbigpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfX0+XG4gICAgICA8c3R5bGU+XG4gICAgICAuZGVtb0JveCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogNDBweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAyMHB4O1xuICAgICAgfVxuICAgICAgLmNvbnRyb2xzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG4gICAgICAuaW5mbyB7XG4gICAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7XG4gICAgICB9XG4gICAgPC9zdHlsZT5cbiAgICA8ZGl2IGNsYXNzPVwiZGVtb0JveFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xzXCI+XG4gICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgU2luZ2xlIExvZzwvZGVlcy1idXR0b24+XG4gICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBTaW11bGF0aW9uPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgU2ltdWxhdGlvbjwvZGVlcy1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvXCI+U2ltdWxhdGluZyByZWFsaXN0aWMgc2VydmVyIGxvZ3Mgd2l0aCB2YXJpb3VzIGxldmVscyBhbmQgc291cmNlczwvZGl2PlxuICAgICAgPGRlZXMtY2hhcnQtbG9nXG4gICAgICAgIC5sYWJlbD0keydQcm9kdWN0aW9uIFNlcnZlciBMb2dzJ31cbiAgICAgID48L2RlZXMtY2hhcnQtbG9nPlxuICAgIDwvZGl2PlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cbiAgYDtcbn07IiwgImltcG9ydCB7XG4gIERlZXNFbGVtZW50LFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG4gIGN1c3RvbUVsZW1lbnQsXG4gIGh0bWwsXG4gIHByb3BlcnR5LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLWNoYXJ0LWxvZy5kZW1vLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuXG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtY2hhcnQtbG9nJzogRGVlc0NoYXJ0TG9nO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ0VudHJ5IHtcbiAgdGltZXN0YW1wOiBzdHJpbmc7XG4gIGxldmVsOiAnZGVidWcnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJyB8ICdzdWNjZXNzJztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWNoYXJ0LWxvZycpXG5leHBvcnQgY2xhc3MgRGVlc0NoYXJ0TG9nIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnQ2hhcnQnO1xuXG4gIEBwcm9wZXJ0eSgpXG4gIGFjY2Vzc29yIGxhYmVsOiBzdHJpbmcgPSAnU2VydmVyIExvZ3MnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIGFjY2Vzc29yIGxvZ0VudHJpZXM6IElMb2dFbnRyeVtdID0gW107XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBhdXRvU2Nyb2xsOiBib29sZWFuID0gdHJ1ZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3IgbWF4RW50cmllczogbnVtYmVyID0gMTAwMDtcblxuICBwcml2YXRlIGxvZ0NvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBkb210b29scy5lbGVtZW50QmFzaWMuc2V0dXAoKTtcbiAgICBcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdDb25zb2xhcycsICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMy45JSknLCAnaHNsKDAgMCUgOTglKScpfTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgfVxuICAgICAgLm1haW5ib3gge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDAgMCUgMy45JSknKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5oZWFkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTclKScsICdoc2woMCAwJSA3JSknKX07XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAudGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUpJywgJ2hzbCgwIDAlIDk1JSknKX07XG4gICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7XG4gICAgICB9XG5cbiAgICAgIC5jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAuY29udHJvbC1idXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA0NS4xJSknLCAnaHNsKDAgMCUgNjMuOSUpJyl9O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzO1xuICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmO1xuICAgICAgfVxuXG4gICAgICAuY29udHJvbC1idXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUuMSUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNzkuOCUpJywgJ2hzbCgwIDAlIDIwLjklKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxNSUpJywgJ2hzbCgwIDAlIDkzLjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLmNvbnRyb2wtYnV0dG9uLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTMuOSUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk4JSknLCAnaHNsKDAgMCUgMy45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5sb2dDb250YWluZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIH1cblxuICAgICAgLmxvZ0VudHJ5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAgIH1cblxuICAgICAgLnRpbWVzdGFtcCB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNjMuOSUpJywgJ2hzbCgwIDAlIDQ1LjElKScpfTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLmxldmVsIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC5sZXZlbC5kZWJ1ZyB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNDUuMSUpJywgJ2hzbCgwIDAlIDYzLjklKScpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1LjElIC8gMC4xKScsICdoc2woMCAwJSA2My45JSAvIDAuMSknKX07XG4gICAgICB9XG5cbiAgICAgIC5sZXZlbC5pbmZvIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUpJywgJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSknKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpJywgJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSknKX07XG4gICAgICB9XG5cbiAgICAgIC5sZXZlbC53YXJuIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjUgOTUlIDUzJSknLCAnaHNsKDI1IDk1JSA2MyUpJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDI1IDk1JSA1MyUgLyAwLjEpJywgJ2hzbCgyNSA5NSUgNjMlIC8gMC4xKScpfTtcbiAgICAgIH1cblxuICAgICAgLmxldmVsLmVycm9yIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCA4NC4yJSA2MC4yJSknLCAnaHNsKDAgNzIuMiUgNTAuNiUpJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgODQuMiUgNjAuMiUgLyAwLjEpJywgJ2hzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKScpfTtcbiAgICAgIH1cblxuICAgICAgLmxldmVsLnN1Y2Nlc3Mge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknLCAnaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKScpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSknLCAnaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKScpfTtcbiAgICAgIH1cblxuICAgICAgLnNvdXJjZSB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNDUuMSUpJywgJ2hzbCgwIDAlIDYzLjklKScpfTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAubWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTUlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgfVxuXG4gICAgICAuZW1wdHktc3RhdGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1LjElKScsICdoc2woMCAwJSA2My45JSknKX07XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIH1cblxuICAgICAgLyogQ3VzdG9tIHNjcm9sbGJhciAqL1xuICAgICAgLmxvZ0NvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgfVxuXG4gICAgICAubG9nQ29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NSUpJywgJ2hzbCgwIDAlIDEwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5sb2dDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDcwJSknLCAnaHNsKDAgMCUgMzAlKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgfVxuXG4gICAgICAubG9nQ29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA2MCUpJywgJ2hzbCgwIDAlIDQwJSknKX07XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluYm94XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj4ke3RoaXMubGFiZWx9PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xzXCI+XG4gICAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgICBjbGFzcz1cImNvbnRyb2wtYnV0dG9uICR7dGhpcy5hdXRvU2Nyb2xsID8gJ2FjdGl2ZScgOiAnJ31cIlxuICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB7IHRoaXMuYXV0b1Njcm9sbCA9ICF0aGlzLmF1dG9TY3JvbGw7IH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEF1dG8gU2Nyb2xsXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICAgIGNsYXNzPVwiY29udHJvbC1idXR0b25cIlxuICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB7IHRoaXMuY2xlYXJMb2dzKCk7IH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIENsZWFyXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2dDb250YWluZXJcIj5cbiAgICAgICAgICAke3RoaXMubG9nRW50cmllcy5sZW5ndGggPT09IDAgXG4gICAgICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+Tm8gbG9ncyB0byBkaXNwbGF5PC9kaXY+YFxuICAgICAgICAgICAgOiB0aGlzLmxvZ0VudHJpZXMubWFwKGVudHJ5ID0+IHRoaXMucmVuZGVyTG9nRW50cnkoZW50cnkpKVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJMb2dFbnRyeShlbnRyeTogSUxvZ0VudHJ5KTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IG5ldyBEYXRlKGVudHJ5LnRpbWVzdGFtcCkudG9Mb2NhbGVUaW1lU3RyaW5nKCdlbi1VUycsIHtcbiAgICAgIGhvdXIxMjogZmFsc2UsXG4gICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgIHNlY29uZDogJzItZGlnaXQnLFxuICAgICAgZnJhY3Rpb25hbFNlY29uZERpZ2l0czogM1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwibG9nRW50cnlcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lc3RhbXBcIj4ke3RpbWVzdGFtcH08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGV2ZWwgJHtlbnRyeS5sZXZlbH1cIj4ke2VudHJ5LmxldmVsfTwvc3Bhbj5cbiAgICAgICAgJHtlbnRyeS5zb3VyY2UgPyBodG1sYDxzcGFuIGNsYXNzPVwic291cmNlXCI+WyR7ZW50cnkuc291cmNlfV08L3NwYW4+YCA6ICcnfVxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lc3NhZ2VcIj4ke2VudHJ5Lm1lc3NhZ2V9PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmaXJzdFVwZGF0ZWQoKSB7XG4gICAgYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7XG4gICAgdGhpcy5sb2dDb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmxvZ0NvbnRhaW5lcicpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSB3aXRoIGRlbW8gc2VydmVyIGxvZ3NcbiAgICBjb25zdCBkZW1vTG9nczogSUxvZ0VudHJ5W10gPSBbXG4gICAgICB7IHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLCBsZXZlbDogJ2luZm8nLCBtZXNzYWdlOiAnU2VydmVyIHN0YXJ0ZWQgb24gcG9ydCAzMDAwJywgc291cmNlOiAnU2VydmVyJyB9LFxuICAgICAgeyB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSwgbGV2ZWw6ICdkZWJ1ZycsIG1lc3NhZ2U6ICdMb2FkaW5nIGNvbmZpZ3VyYXRpb24gZnJvbSAvZXRjL2FwcC9jb25maWcuanNvbicsIHNvdXJjZTogJ0NvbmZpZycgfSxcbiAgICAgIHsgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksIGxldmVsOiAnaW5mbycsIG1lc3NhZ2U6ICdDb25uZWN0ZWQgdG8gTW9uZ29EQiBhdCBtb25nb2RiOi8vbG9jYWxob3N0OjI3MDE3Jywgc291cmNlOiAnRGF0YWJhc2UnIH0sXG4gICAgICB7IHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLCBsZXZlbDogJ3N1Y2Nlc3MnLCBtZXNzYWdlOiAnRGF0YWJhc2UgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCBzdWNjZXNzZnVsbHknLCBzb3VyY2U6ICdEYXRhYmFzZScgfSxcbiAgICAgIHsgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksIGxldmVsOiAnd2FybicsIG1lc3NhZ2U6ICdObyBTU0wgY2VydGlmaWNhdGUgZm91bmQsIHVzaW5nIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlJywgc291cmNlOiAnU2VjdXJpdHknIH0sXG4gICAgICB7IHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLCBsZXZlbDogJ2luZm8nLCBtZXNzYWdlOiAnQVBJIHJvdXRlcyBpbml0aWFsaXplZDogR0VUIC9hcGkvdXNlcnMsIFBPU1QgL2FwaS91c2VycywgREVMRVRFIC9hcGkvdXNlcnMvOmlkJywgc291cmNlOiAnUm91dGVyJyB9LFxuICAgICAgeyB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSwgbGV2ZWw6ICdkZWJ1ZycsIG1lc3NhZ2U6ICdNaWRkbGV3YXJlIHN0YWNrOiBjb3JzLCBib2R5UGFyc2VyLCBhdXRoZW50aWNhdGlvbiwgZXJyb3JIYW5kbGVyJywgc291cmNlOiAnTWlkZGxld2FyZScgfSxcbiAgICAgIHsgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksIGxldmVsOiAnaW5mbycsIG1lc3NhZ2U6ICdXZWJTb2NrZXQgc2VydmVyIGxpc3RlbmluZyBvbiB3czovL2xvY2FsaG9zdDozMDAxJywgc291cmNlOiAnV2ViU29ja2V0JyB9LFxuICAgIF07XG5cbiAgICB0aGlzLmxvZ0VudHJpZXMgPSBkZW1vTG9ncztcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlTG9nKGVudHJpZXM/OiBJTG9nRW50cnlbXSkge1xuICAgIGlmIChlbnRyaWVzKSB7XG4gICAgICAvLyBBZGQgbmV3IGVudHJpZXNcbiAgICAgIHRoaXMubG9nRW50cmllcyA9IFsuLi50aGlzLmxvZ0VudHJpZXMsIC4uLmVudHJpZXNdO1xuICAgICAgXG4gICAgICAvLyBUcmltIGlmIGV4Y2VlZHMgbWF4IGVudHJpZXNcbiAgICAgIGlmICh0aGlzLmxvZ0VudHJpZXMubGVuZ3RoID4gdGhpcy5tYXhFbnRyaWVzKSB7XG4gICAgICAgIHRoaXMubG9nRW50cmllcyA9IHRoaXMubG9nRW50cmllcy5zbGljZSgtdGhpcy5tYXhFbnRyaWVzKTtcbiAgICAgIH1cblxuICAgICAgLy8gVHJpZ2dlciByZS1yZW5kZXJcbiAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xuXG4gICAgICAvLyBBdXRvLXNjcm9sbCBpZiBlbmFibGVkXG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO1xuICAgICAgaWYgKHRoaXMuYXV0b1Njcm9sbCkge1xuICAgICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyTG9ncygpIHtcbiAgICB0aGlzLmxvZ0VudHJpZXMgPSBbXTtcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9Cb3R0b20oKSB7XG4gICAgaWYgKHRoaXMubG9nQ29udGFpbmVyKSB7XG4gICAgICB0aGlzLmxvZ0NvbnRhaW5lci5zY3JvbGxUb3AgPSB0aGlzLmxvZ0NvbnRhaW5lci5zY3JvbGxIZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZExvZyhsZXZlbDogSUxvZ0VudHJ5WydsZXZlbCddLCBtZXNzYWdlOiBzdHJpbmcsIHNvdXJjZT86IHN0cmluZykge1xuICAgIGNvbnN0IG5ld0VudHJ5OiBJTG9nRW50cnkgPSB7XG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIGxldmVsLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHNvdXJjZVxuICAgIH07XG4gICAgdGhpcy51cGRhdGVMb2coW25ld0VudHJ5XSk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBodG1sLCBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGBcbiAgPHN0eWxlPlxuICAgIC5kZW1vV3JhcHBlciB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgIHBhZGRpbmc6IDQ4cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y4ZjlmYScsICcjMGEwYTBhJyl9O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDMycHg7XG4gICAgfVxuICAgIFxuICAgIC5zZWN0aW9uIHtcbiAgICAgIG1heC13aWR0aDogOTAwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgICBcbiAgICAuc2VjdGlvbi10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA5MDkwYicsICcjZmFmYWZhJyl9O1xuICAgIH1cbiAgICBcbiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MTcxN2EnLCAnI2ExYTFhYScpfTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgfVxuICA8L3N0eWxlPlxuICA8ZGl2IGNsYXNzPVwiZGVtb1dyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5UeXBlU2NyaXB0IENvZGUgRXhhbXBsZTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tZGVzY3JpcHRpb25cIj5BIGNvbXByZWhlbnNpdmUgVHlwZVNjcmlwdCBjb2RlIGV4YW1wbGUgd2l0aCB2YXJpb3VzIHN5bnRheCBoaWdobGlnaHRpbmcuPC9kaXY+XG4gICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPVwidHlwZXNjcmlwdFwiPlxuaW50ZXJmYWNlIFVzZXIge1xuICBpZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGlzQWN0aXZlOiBib29sZWFuO1xufVxuXG5jbGFzcyBVc2VyU2VydmljZSB7XG4gIHByaXZhdGUgdXNlcnM6IFVzZXJbXSA9IFtdO1xuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlVcmw6IHN0cmluZykge1xuICAgIGNvbnNvbGUubG9nKCdVc2VyU2VydmljZSBpbml0aWFsaXplZCcpO1xuICB9XG4gIFxuICBhc3luYyBnZXRVc2VycygpOiBQcm9taXNlPFVzZXJbXT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMuYXBpVXJsKTtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICByZXR1cm4gZGF0YS51c2VycztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIHVzZXJzOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbiAgXG4gIGFkZFVzZXIodXNlcjogVXNlcik6IHZvaWQge1xuICAgIHRoaXMudXNlcnMucHVzaCh1c2VyKTtcbiAgfVxufVxuXG4vLyBVc2FnZSBleGFtcGxlXG5jb25zdCBzZXJ2aWNlID0gbmV3IFVzZXJTZXJ2aWNlKCdodHRwczovL2FwaS5leGFtcGxlLmNvbS91c2VycycpO1xuY29uc3QgdXNlcnMgPSBhd2FpdCBzZXJ2aWNlLmdldFVzZXJzKCk7XG5jb25zb2xlLmxvZygnRm91bmQgdXNlcnM6JywgdXNlcnMubGVuZ3RoKTtcbiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkphdmFTY3JpcHQgRXhhbXBsZTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tZGVzY3JpcHRpb25cIj5Nb2Rlcm4gSmF2YVNjcmlwdCB3aXRoIEVTNisgZmVhdHVyZXMuPC9kaXY+XG4gICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPVwiamF2YXNjcmlwdFwiPlxuLy8gQXJyYXkgbWFuaXB1bGF0aW9uIGV4YW1wbGVzXG5jb25zdCBudW1iZXJzID0gWzEsIDIsIDMsIDQsIDVdO1xuY29uc3QgZG91YmxlZCA9IG51bWJlcnMubWFwKG4gPT4gbiAqIDIpO1xuY29uc3QgZmlsdGVyZWQgPSBudW1iZXJzLmZpbHRlcihuID0+IG4gPiAzKTtcblxuLy8gT2JqZWN0IGRlc3RydWN0dXJpbmdcbmNvbnN0IHVzZXIgPSB7IG5hbWU6ICdKb2huJywgYWdlOiAzMCwgY2l0eTogJ05ldyBZb3JrJyB9O1xuY29uc3QgeyBuYW1lLCBhZ2UgfSA9IHVzZXI7XG5cbi8vIFByb21pc2UgaGFuZGxpbmdcbmNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICh1cmwpID0+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpO1xuICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xufTtcblxuLy8gTW9kZXJuIHN5bnRheFxuY29uc3QgZ3JlZXQgPSAobmFtZSA9ICdXb3JsZCcpID0+IFxcYEhlbGxvLCBcXCR7bmFtZX0hXFxgO1xuY29uc29sZS5sb2coZ3JlZXQoJ1NoYWRDTicpKTtcbiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlB5dGhvbiBFeGFtcGxlPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1kZXNjcmlwdGlvblwiPlB5dGhvbiBjb2RlIHdpdGggY2xhc3NlcyBhbmQgdHlwZSBoaW50cy48L2Rpdj5cbiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9XCJweXRob25cIj5cbmZyb20gdHlwaW5nIGltcG9ydCBMaXN0LCBPcHRpb25hbFxuaW1wb3J0IGFzeW5jaW9cblxuY2xhc3MgRGF0YVByb2Nlc3NvcjpcbiAgICBcIlwiXCJBIHNpbXBsZSBkYXRhIHByb2Nlc3NvciBjbGFzc1wiXCJcIlxuICAgIFxuICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lOiBzdHIpOlxuICAgICAgICBzZWxmLm5hbWUgPSBuYW1lXG4gICAgICAgIHNlbGYuZGF0YTogTGlzdFtkaWN0XSA9IFtdXG4gICAgXG4gICAgYXN5bmMgZGVmIHByb2Nlc3NfZGF0YShzZWxmLCBpdGVtczogTGlzdFtkaWN0XSkgLT4gTGlzdFtkaWN0XTpcbiAgICAgICAgXCJcIlwiUHJvY2VzcyBkYXRhIGl0ZW1zIGFzeW5jaHJvbm91c2x5XCJcIlwiXG4gICAgICAgIHJlc3VsdHMgPSBbXVxuICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczpcbiAgICAgICAgICAgICMgU2ltdWxhdGUgYXN5bmMgcHJvY2Vzc2luZ1xuICAgICAgICAgICAgYXdhaXQgYXN5bmNpby5zbGVlcCgwLjEpXG4gICAgICAgICAgICByZXN1bHRzLmFwcGVuZCh7XG4gICAgICAgICAgICAgICAgJ2lkJzogaXRlbS5nZXQoJ2lkJyksXG4gICAgICAgICAgICAgICAgJ3Byb2Nlc3NlZCc6IFRydWUsXG4gICAgICAgICAgICAgICAgJ3Byb2Nlc3Nvcic6IHNlbGYubmFtZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHJlc3VsdHNcbiAgICBcbiAgICBkZWYgZ2V0X3N1bW1hcnkoc2VsZikgLT4gZGljdDpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUsXG4gICAgICAgICAgICAnaXRlbXNfcHJvY2Vzc2VkJzogbGVuKHNlbGYuZGF0YSlcbiAgICAgICAgfVxuXG4jIFVzYWdlXG5wcm9jZXNzb3IgPSBEYXRhUHJvY2Vzc29yKFwiTWFpblwiKVxuZGF0YSA9IGF3YWl0IHByb2Nlc3Nvci5wcm9jZXNzX2RhdGEoW3snaWQnOiAxfSwgeydpZCc6IDJ9XSlcbiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkNTUyBFeGFtcGxlPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1kZXNjcmlwdGlvblwiPk1vZGVybiBDU1Mgd2l0aCBjdXN0b20gcHJvcGVydGllcyBhbmQgYW5pbWF0aW9ucy4gTm90ZSB0aGUgc2hvcnRlciBsYW5ndWFnZSBsYWJlbC48L2Rpdj5cbiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9XCJjc3NcIj5cbi8qIE1vZGVybiBDU1Mgd2l0aCBjdXN0b20gcHJvcGVydGllcyAqL1xuOnJvb3Qge1xuICAtLXByaW1hcnktY29sb3I6ICMzYjgyZjY7XG4gIC0tc2Vjb25kYXJ5LWNvbG9yOiAjMTBiOTgxO1xuICAtLWJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIC0tdGV4dC1jb2xvcjogIzA5MDkwYjtcbiAgLS1ib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiAyNHB4O1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uY2FyZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgYm94LXNoYWRvdzogMCA0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9XG4gIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG4gICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5KU09OIEV4YW1wbGU8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWRlc2NyaXB0aW9uXCI+SlNPTiBjb25maWd1cmF0aW9uIHdpdGggcHJvcGVyIGZvcm1hdHRpbmcuPC9kaXY+XG4gICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPVwianNvblwiPlxue1xuICBcIm5hbWVcIjogXCJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2dcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMS4xMC43XCIsXG4gIFwiZGVzY3JpcHRpb25cIjogXCJBIGNvbXByZWhlbnNpdmUgY2F0YWxvZyBvZiB3ZWIgY29tcG9uZW50c1wiLFxuICBcIm1haW5cIjogXCJkaXN0X3RzX3dlYi9pbmRleC5qc1wiLFxuICBcInR5cGVcIjogXCJtb2R1bGVcIixcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImJ1aWxkXCI6IFwidHNidWlsZCB0c2ZvbGRlcnMgLS1hbGxvd2ltcGxpY2l0YW55ICYmIHRzYnVuZGxlIGVsZW1lbnQgLS1wcm9kdWN0aW9uXCIsXG4gICAgXCJ3YXRjaFwiOiBcInRzd2F0Y2ggZWxlbWVudFwiLFxuICAgIFwidGVzdFwiOiBcInRzdGVzdCB0ZXN0LyAtLXdlYiAtLXZlcmJvc2VcIlxuICB9LFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnRcIjogXCJeMi4wLjQ1XCIsXG4gICAgXCJoaWdobGlnaHQuanNcIjogXCJeMTEuOS4wXCJcbiAgfVxufVxuICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuYCIsICJpbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1kYXRhdmlldy1jb2RlYm94LmRlbW8uanMnO1xuaW1wb3J0IHtcbiAgRGVlc0VsZW1lbnQsXG4gIGh0bWwsXG4gIGN1c3RvbUVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHByb3BlcnR5LFxuICBzdGF0ZSxcbiAgY3NzTWFuYWdlcixcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IGNzc0dlaXN0Rm9udEZhbWlseSwgY3NzTW9ub0ZvbnRGYW1pbHkgfSBmcm9tICcuLi8uLi8wMGZvbnRzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBITEpTQXBpIH0gZnJvbSAnaGlnaGxpZ2h0LmpzJztcblxuaW1wb3J0ICogYXMgc21hcnRzdHJpbmcgZnJvbSAnQHB1c2gucm9ja3Mvc21hcnRzdHJpbmcnO1xuXG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCB7IERlZXNDb250ZXh0bWVudSB9IGZyb20gJy4uLy4uL2RlZXMtY29udGV4dG1lbnUvZGVlcy1jb250ZXh0bWVudS5qcyc7XG5pbXBvcnQgeyBEZWVzU2VydmljZUxpYkxvYWRlciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2luZGV4LmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1kYXRhdmlldy1jb2RlYm94JzogRGVlc0RhdGF2aWV3Q29kZWJveDtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1kYXRhdmlldy1jb2RlYm94JylcbmV4cG9ydCBjbGFzcyBEZWVzRGF0YXZpZXdDb2RlYm94IGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnRGF0YSBWaWV3JztcblxuICBAcHJvcGVydHkoKVxuICBhY2Nlc3NvciBwcm9nTGFuZzogc3RyaW5nID0gJ3R5cGVzY3JpcHQnO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIHJlZmxlY3Q6IHRydWUsXG4gIH0pXG4gIGFjY2Vzc29yIGNvZGVUb0Rpc3BsYXk6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgJHtkb210b29scy5lbGVtZW50QmFzaWMuc3R5bGVzfVxuICAgICAgPHN0eWxlPlxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAke2Nzc0dlaXN0Rm9udEZhbWlseX07XG4gICAgICAgIH1cbiAgICAgICAgLm1haW5ib3gge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwOTA5MGInKX07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAuYXBwYmFyIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyNhMWExYWEnKX07XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmOWZhZmInLCAnIzE4MTgxYicpfTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hcHBiYXIgLmZpbGVOYW1lIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYm90dG9tQmFyIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyNhMWExYWEnKX07XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmOWZhZmInLCAnIzE4MTgxYicpfTtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNwYWNlc0xhYmVsIHtcbiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxhbmd1YWdlTGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzNiODJmNicsICcjM2I4MmY2Jyl9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSg1OSwgMTMwLCAyNDYsIDAuMSknLCAncmdiYSg1OSwgMTMwLCAyNDYsIDAuMSknKX07XG4gICAgICAgICAgcGFkZGluZzogMHB4IDE2cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuaGxqcy1rZXl3b3JkIHtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkYzI2MjYnLCAnI2Y4NzE3MScpfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2RlZ3JpZCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwcHggYXV0bztcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpbmVOdW1iZXJzIHtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MTcxN2EnLCAnIzUyNTI1YicpfTtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDE2cHggMHB4IDBweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpbmVDb3VudGVyOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG9wYWNpdHk6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZSB7XG4gICAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICBjb2RlIHtcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvZGUsXG4gICAgICAgIGNvZGUgKixcbiAgICAgICAgLmxpbmVOdW1iZXJzIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgICAgICBmb250LWZhbWlseTogJHtjc3NNb25vRm9udEZhbWlseX07XG4gICAgICAgIH1cblxuICAgICAgICAuaGxqcy1zdHJpbmcge1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA1OTY2OScsICcjMTBiOTgxJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmhsanMtYnVpbHRfaW4ge1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzhiNWNmNicsICcjYTc4YmZhJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmhsanMtZnVuY3Rpb24ge1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzNiODJmNicsICcjNjBhNWZhJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmhsanMtcGFyYW1zIHtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwODkxYjInLCAnIzA2YjZkNCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5obGpzLWNvbW1lbnQge1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjNzE3MTdhJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmhsanMtbnVtYmVyIHtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlYTU4MGMnLCAnI2ZiOTIzYycpfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5obGpzLWxpdGVyYWwge1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2RjMjYyNicsICcjZjg3MTcxJyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmhsanMtYXR0ciB7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjOGI1Y2Y2JywgJyNhNzhiZmEnKX07XG4gICAgICAgIH1cblxuICAgICAgICAuaGxqcy12YXJpYWJsZSB7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gICAgICAgIH1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWFpbmJveFwiXG4gICAgICAgIEBjb250ZXh0bWVudT1cIiR7KGV2ZW50QXJnKSA9PiB7XG4gICAgICAgICAgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGV2ZW50QXJnLCBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdBYm91dCcsXG4gICAgICAgICAgICAgIGljb25OYW1lOiAnY2lyY2xlSW5mbycsXG4gICAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgfX1cIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwYmFyXCI+XG4gICAgICAgICAgPGRlZXMtd2luZG93Y29udHJvbHMgdHlwZT1cIm1hY1wiIHBvc2l0aW9uPVwibGVmdFwiPjwvZGVlcy13aW5kb3djb250cm9scz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZU5hbWVcIj5pbmRleC50czwvZGl2PlxuICAgICAgICAgIDxkZWVzLXdpbmRvd2NvbnRyb2xzIHR5cGU9XCJtYWNcIiBwb3NpdGlvbj1cInJpZ2h0XCI+PC9kZWVzLXdpbmRvd2NvbnRyb2xzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvZGVncmlkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVOdW1iZXJzXCI+XG4gICAgICAgICAgICAkeygoKSA9PiB7XG4gICAgICAgICAgICAgIGxldCBsaW5lQ291bnRlciA9IDA7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvZGVUb0Rpc3BsYXkuc3BsaXQoJ1xcbicpLm1hcCgobGluZUFyZykgPT4ge1xuICAgICAgICAgICAgICAgIGxpbmVDb3VudGVyKys7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImxpbmVDb3VudGVyXCI+JHtsaW5lQ291bnRlcn08L2Rpdj5gO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHByZT48Y29kZT48L2NvZGU+PC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tQmFyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlc0xhYmVsXCI+U3BhY2VzOiAyPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhbmd1YWdlTGFiZWxcIj4ke3RoaXMucHJvZ0xhbmd9PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgY29kZVRvRGlzcGxheVN0b3JlID0gJyc7XG4gIHByaXZhdGUgaGlnaGxpZ2h0SnM6IEhMSlNBcGkgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlZChfY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBzdXBlci51cGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgY29uc29sZS5sb2coJ2hpZ2hsaWdodGluZyBub3cnKTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNoaWxkTm9kZXMpO1xuICAgIGNvbnN0IHNsb3R0ZWRDb2RlTm9kZXM6IFRleHRbXSA9IFtdO1xuICAgIHRoaXMuY2hpbGROb2Rlcy5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGlmIChjaGlsZE5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCcpIHtcbiAgICAgICAgc2xvdHRlZENvZGVOb2Rlcy5wdXNoKGNoaWxkTm9kZSBhcyBUZXh0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodGhpcy5jb2RlVG9EaXNwbGF5ICYmIHRoaXMuY29kZVRvRGlzcGxheSAhPT0gdGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUpIHtcbiAgICAgIHRoaXMuY29kZVRvRGlzcGxheVN0b3JlID0gc21hcnRzdHJpbmcuaW5kZW50Lm5vcm1hbGl6ZSh0aGlzLmNvZGVUb0Rpc3BsYXkpLnRyaW1TdGFydCgpO1xuICAgIH1cbiAgICBpZiAoc2xvdHRlZENvZGVOb2Rlc1swXSAmJiBzbG90dGVkQ29kZU5vZGVzWzBdLndob2xlVGV4dCAmJiAhdGhpcy5jb2RlVG9EaXNwbGF5KSB7XG4gICAgICB0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZSA9IHNtYXJ0c3RyaW5nLmluZGVudFxuICAgICAgICAubm9ybWFsaXplKHNsb3R0ZWRDb2RlTm9kZXNbMF0ud2hvbGVUZXh0KVxuICAgICAgICAudHJpbVN0YXJ0KCk7XG4gICAgICB0aGlzLmNvZGVUb0Rpc3BsYXkgPSB0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZTtcbiAgICB9XG4gICAgYXdhaXQgZG9tdG9vbHMucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO1xuXG4gICAgLy8gTG9hZCBoaWdobGlnaHQuanMgZnJvbSBDRE4gaWYgbm90IGFscmVhZHkgbG9hZGVkXG4gICAgaWYgKCF0aGlzLmhpZ2hsaWdodEpzKSB7XG4gICAgICB0aGlzLmhpZ2hsaWdodEpzID0gYXdhaXQgRGVlc1NlcnZpY2VMaWJMb2FkZXIuZ2V0SW5zdGFuY2UoKS5sb2FkSGlnaGxpZ2h0SnMoKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2NhbENvZGVOb2RlID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2NvZGUnKTtcbiAgICBjb25zdCBoaWdobGlnaHRlZEh0bWwgPSB0aGlzLmhpZ2hsaWdodEpzLmhpZ2hsaWdodCh0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZSwge1xuICAgICAgbGFuZ3VhZ2U6IHRoaXMucHJvZ0xhbmcsXG4gICAgICBpZ25vcmVJbGxlZ2FsczogdHJ1ZSxcbiAgICB9KTtcbiAgICBsb2NhbENvZGVOb2RlLmlubmVySFRNTCA9IGhpZ2hsaWdodGVkSHRtbC52YWx1ZTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGh0bWwsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICogYXMgdHNjbGFzcyBmcm9tICdAdHNjbGFzcy90c2NsYXNzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGAgPHN0eWxlPlxuICAgIC5kZW1vIHtcbiAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjVmNWY1JywgJyMwYTBhMGEnKX07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcGFkZGluZzogNDBweDtcbiAgICB9XG4gICAgXG4gICAgLmRlbW8tZ3JpZCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ2FwOiAyNHB4O1xuICAgICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgICBcbiAgICAuZGVtby1zZWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAxNnB4O1xuICAgIH1cbiAgICBcbiAgICAuZGVtby10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA0NS4xJSknLCAnaHNsKDAgMCUgNjMuOSUpJyl9O1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjtcbiAgICB9XG4gICAgXG4gICAgLmRlbW8tbm90ZSB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1LjElKScsICdoc2woMCAwJSA2My45JSknKX07XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjtcbiAgICB9XG4gIDwvc3R5bGU+XG4gIDxkaXYgY2xhc3M9XCJkZW1vXCI+XG4gICAgPGRpdiBjbGFzcz1cImRlbW8tbm90ZVwiPlxuICAgICAgUmlnaHQtY2xpY2sgb24gYW55IGRldGFpbCByb3cgdG8gY29weSB0aGUgdmFsdWUsIGtleSwgb3Iga2V5OnZhbHVlIGNvbWJpbmF0aW9uXG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImRlbW8tZ3JpZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImRlbW8tc2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVtby10aXRsZVwiPlNlcnZpY2UgSGVhbHRoIFN0YXR1czwvZGl2PlxuICAgICAgICA8ZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3RcbiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e1xuICAgICAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgICAgIG5hbWU6ICdBUEkgR2F0ZXdheSBTZXJ2aWNlJyxcbiAgICAgICAgICAgIGNvbWJpbmVkU3RhdHVzOiAnb2snLFxuICAgICAgICAgICAgY29tYmluZWRTdGF0dXNUZXh0OiAnQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwnLFxuICAgICAgICAgICAgZGV0YWlsczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1Jlc3BvbnNlIFRpbWUnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnNDVtcyAoYXZnKScsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAnb2snLFxuICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6ICdXaXRoaW4gbm9ybWFsIHJhbmdlJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdVcHRpbWUnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnOTkuOTklICgzMCBkYXlzKScsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAnb2snLFxuICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6ICdFeGNlbGxlbnQgdXB0aW1lJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdBY3RpdmUgQ29ubmVjdGlvbnMnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnMSwyMzQgLyAxMCwwMDAnLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ29rJyxcbiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiAnTm9ybWFsIGxvYWQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1NTTCBDZXJ0aWZpY2F0ZScsXG4gICAgICAgICAgICAgICAgdmFsdWU6ICdWYWxpZCB1bnRpbCAyMDI0LTEyLTMxJyxcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdvaycsXG4gICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogJ0NlcnRpZmljYXRlIHZhbGlkJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSBhcyB0c2NsYXNzLmNvZGUuSVN0YXR1c09iamVjdH1cbiAgICAgICAgPlxuICAgICAgICA8L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0PlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlbW8tdGl0bGVcIj5EYXRhYmFzZSBDbHVzdGVyIFN0YXR1czwvZGl2PlxuICAgICAgICA8ZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3RcbiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e1xuICAgICAgICAgICAgaWQ6ICcyJyxcbiAgICAgICAgICAgIG5hbWU6ICdQb3N0Z3JlU1FMIENsdXN0ZXInLFxuICAgICAgICAgICAgY29tYmluZWRTdGF0dXM6ICdwYXJ0bHlfb2snLFxuICAgICAgICAgICAgY29tYmluZWRTdGF0dXNUZXh0OiAnTWlub3IgaXNzdWVzIGRldGVjdGVkJyxcbiAgICAgICAgICAgIGRldGFpbHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdQcmltYXJ5IE5vZGUnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnZGItcHJpbWFyeS0wMSAoaGVhbHRoeSknLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ29rJyxcbiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiAnT3BlcmF0aW5nIG5vcm1hbGx5JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdSZXBsaWNhIExhZycsXG4gICAgICAgICAgICAgICAgdmFsdWU6ICcyLjUgc2Vjb25kcycsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAncGFydGx5X29rJyxcbiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiAnU2xpZ2h0bHkgZWxldmF0ZWQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0Rpc2sgVXNhZ2UnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnNzglICgzMTJHQiAvIDQwMEdCKScsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAncGFydGx5X29rJyxcbiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiAnQXBwcm9hY2hpbmcgdGhyZXNob2xkJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDb25uZWN0aW9uIFBvb2wnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnODkgLyAxMDAgY29ubmVjdGlvbnMnLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ29rJyxcbiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiAnV2l0aGluIGxpbWl0cycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0gYXMgdHNjbGFzcy5jb2RlLklTdGF0dXNPYmplY3R9XG4gICAgICAgID5cbiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXRpdGxlXCI+QnVpbGQgUGlwZWxpbmUgU3RhdHVzPC9kaXY+XG4gICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdFxuICAgICAgICAgIC5zdGF0dXNPYmplY3Q9JHt7XG4gICAgICAgICAgICBpZDogJzMnLFxuICAgICAgICAgICAgbmFtZTogJ0NJL0NEIFBpcGVsaW5lJyxcbiAgICAgICAgICAgIGNvbWJpbmVkU3RhdHVzOiAnbm90X29rJyxcbiAgICAgICAgICAgIGNvbWJpbmVkU3RhdHVzVGV4dDogJ0J1aWxkIGZhaWx1cmUnLFxuICAgICAgICAgICAgZGV0YWlsczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0xhc3QgQnVpbGQnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnQnVpbGQgIzEyMzQgLSBGYWlsZWQnLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ25vdF9vaycsXG4gICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogJ1Rlc3QgZmFpbHVyZXMnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0ZhaWxlZCBUZXN0cycsXG4gICAgICAgICAgICAgICAgdmFsdWU6ICczIHRlc3RzIGZhaWxlZDogYXV0aC5zcGVjLnRzLCB1c2VyLnNwZWMudHMsIGFwaS5zcGVjLnRzJyxcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdub3Rfb2snLFxuICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6ICdVbml0IHRlc3QgZmFpbHVyZXMnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NvZGUgQ292ZXJhZ2UnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnODIuNSUgKHRhcmdldDogODUlKScsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAncGFydGx5X29rJyxcbiAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiAnQmVsb3cgdGFyZ2V0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdCdWlsZCBEdXJhdGlvbicsXG4gICAgICAgICAgICAgICAgdmFsdWU6ICcxMm0gMzRzJyxcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdvaycsXG4gICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogJ05vcm1hbCBkdXJhdGlvbicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0gYXMgdHNjbGFzcy5jb2RlLklTdGF0dXNPYmplY3R9XG4gICAgICAgID5cbiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5gO1xuIiwgImltcG9ydCAqIGFzIGNvbG9ycyBmcm9tICcuLi8uLi8wMGNvbG9ycy5qcyc7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLy4uLzAwcGx1Z2lucy5qcyc7XG5cbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdC5kZW1vLmpzJztcbmltcG9ydCB7XG4gIERlZXNFbGVtZW50LFxuICBodG1sLFxuICBjdXN0b21FbGVtZW50LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBwcm9wZXJ0eSxcbiAgc3RhdGUsXG4gIGNzc01hbmFnZXIsXG4gIGNzcyxcbiAgdHlwZSBDU1NSZXN1bHQsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmltcG9ydCAqIGFzIHRzY2xhc3MgZnJvbSAnQHRzY2xhc3MvdHNjbGFzcyc7XG5pbXBvcnQgeyBEZWVzQ29udGV4dG1lbnUgfSBmcm9tICcuLi8uLi9kZWVzLWNvbnRleHRtZW51L2RlZXMtY29udGV4dG1lbnUuanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0JzogRGVlc0RhdGF2aWV3U3RhdHVzb2JqZWN0O1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdCcpXG5leHBvcnQgY2xhc3MgRGVlc0RhdGF2aWV3U3RhdHVzb2JqZWN0IGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnRGF0YSBWaWV3JztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBPYmplY3QgfSkgYWNjZXNzb3Igc3RhdHVzT2JqZWN0OiB0c2NsYXNzLmNvZGUuSVN0YXR1c09iamVjdDtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xuICAgICAgfVxuXG4gICAgICAubWFpbmJveCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDMuOSUpJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IDAgaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDFweCAycHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUpJywgJ2hzbCgwIDAlIDk4JSknKX07XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLmhlYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ4cHggYXV0byAxMDBweDtcbiAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NyUpJywgJ2hzbCgwIDAlIDclKScpfTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgfVxuXG4gICAgICBoMSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTUlKScsICdoc2woMCAwJSA5My45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5zdGF0dXNkb3Qge1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA2My45JSknLCAnaHNsKDAgMCUgNDUuMSUpJyl9O1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNjMuOSUgLyAwLjIpJywgJ2hzbCgwIDAlIDQ1LjElIC8gMC4yKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNvcHlNYWluIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1LjElKScsICdoc2woMCAwJSA2My45JSknKX07XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuY29weU1haW46aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUuMSUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNzkuOCUpJywgJ2hzbCgwIDAlIDIwLjklKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxNSUpJywgJ2hzbCgwIDAlIDkzLjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLmNvcHlNYWluOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5MSUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbiAgICAgIH1cblxuICAgICAgLnN0YXR1c2RvdC5vayB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJywgJ2hzbCgxNDIuMSA3MC42JSA0NS4zJSknKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4yKScsICdoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpJyl9O1xuICAgICAgfVxuXG4gICAgICAuc3RhdHVzZG90Lm5vdF9vayB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCA4NC4yJSA2MC4yJSknLCAnaHNsKDAgNzIuMiUgNTAuNiUpJyl9O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDg0LjIlIDYwLjIlIC8gMC4yKScsICdoc2woMCA3Mi4yJSA1MC42JSAvIDAuMiknKX07XG4gICAgICB9XG5cbiAgICAgIC5zdGF0dXNkb3QucGFydGx5X29rIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyNSA5NSUgNTMlKScsICdoc2woMjUgOTUlIDYzJSknKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDI1IDk1JSA1MyUgLyAwLjIpJywgJ2hzbCgyNSA5NSUgNjMlIC8gMC4yKScpfTtcbiAgICAgIH1cblxuICAgICAgLmRldGFpbCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDhweCBhdXRvO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk0JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgICAgIGN1cnNvcjogY29udGV4dC1tZW51O1xuICAgICAgfVxuXG4gICAgICAuZGV0YWlsOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk3JSknLCAnaHNsKDAgMCUgNyUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuZGV0YWlsOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NSUpJywgJ2hzbCgwIDAlIDklKScpfTtcbiAgICAgIH1cblxuICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQge1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICB9XG5cbiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IC5sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA0NS4xJSknLCAnaHNsKDAgMCUgNjMuOSUpJyl9XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gICAgICB9XG5cbiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IC52YWx1ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdHZWlzdCBNb25vJywgbW9ub3NwYWNlO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDE1JSknLCAnaHNsKDAgMCUgOTAlKScpfTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4gIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwibWFpbmJveFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXNkb3QgJHt0aGlzLnN0YXR1c09iamVjdD8uY29tYmluZWRTdGF0dXN9XCI+PC9kaXY+XG4gICAgICAgICAgPGgxPiR7dGhpcy5zdGF0dXNPYmplY3Q/Lm5hbWUgfHwgJ05vIHN0YXR1cyBvYmplY3QgYXNzaWduZWQnfTwvaDE+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvcHlNYWluXCIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDb3B5QXNKc29ufT5Db3B5IEpTT048L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgICR7dGhpcy5zdGF0dXNPYmplY3Q/LmRldGFpbHM/Lm1hcCgoZGV0YWlsQXJnKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgICBjbGFzcz1cImRldGFpbFwiXG4gICAgICAgICAgICAgIEBjb250ZXh0bWVudT0keyhldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGV2ZW50LCBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdDb3B5IFZhbHVlJyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y29weScsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGRldGFpbEFyZy52YWx1ZSwgJ1ZhbHVlJyk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnQ29weSBLZXknLFxuICAgICAgICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTprZXknLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChkZXRhaWxBcmcubmFtZSwgJ0tleScpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0NvcHkgS2V5OlZhbHVlJyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Y29weS1wbHVzJyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5jb3B5VG9DbGlwYm9hcmQoYCR7ZGV0YWlsQXJnLm5hbWV9OiAke2RldGFpbEFyZy52YWx1ZX1gLCAnS2V5OlZhbHVlJyk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzZG90ICR7ZGV0YWlsQXJnLnN0YXR1c31cIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHNUZXh0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+JHtkZXRhaWxBcmcubmFtZX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj4ke2RldGFpbEFyZy52YWx1ZX08L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgO1xuICAgICAgICB9KX1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBhc3luYyBmaXJzdFVwZGF0ZWQoKSB7fVxuXG4gIHByaXZhdGUgYXN5bmMgY29weVRvQ2xpcGJvYXJkKHRleHQ6IHN0cmluZywgdHlwZTogc3RyaW5nID0gJ1RleHQnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpO1xuICAgICAgY29uc29sZS5sb2coYCR7dHlwZX0gY29waWVkIHRvIGNsaXBib2FyZGApO1xuICAgICAgLy8gWW91IGNvdWxkIGFkZCB2aXN1YWwgZmVlZGJhY2sgaGVyZSBpZiBuZWVkZWRcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjb3B5ICR7dHlwZX06YCwgZXJyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUNvcHlBc0pzb24oKSB7XG4gICAgaWYgKCF0aGlzLnN0YXR1c09iamVjdCkgcmV0dXJuO1xuICAgIFxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXR1c09iamVjdCwgbnVsbCwgMikpO1xuICAgICAgXG4gICAgICAvLyBTaG93IGZlZWRiYWNrXG4gICAgICBjb25zdCBidXR0b24gPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmNvcHlNYWluJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBvcmlnaW5hbFRleHQgPSBidXR0b24udGV4dENvbnRlbnQ7XG4gICAgICBidXR0b24udGV4dENvbnRlbnQgPSAnQ29waWVkISc7XG4gICAgICBcbiAgICAgIC8vIEFwcGx5IHN1Y2Nlc3Mgc3R5bGVzIGJhc2VkIG9uIHRoZW1lXG4gICAgICBjb25zdCBpc0RhcmsgPSAhdGhpcy5nb0JyaWdodDtcbiAgICAgIGJ1dHRvbi5zdHlsZS5iYWNrZ3JvdW5kID0gaXNEYXJrID8gJ2hzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSknIDogJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSknO1xuICAgICAgYnV0dG9uLnN0eWxlLmJvcmRlckNvbG9yID0gaXNEYXJrID8gJ2hzbCgxNDIuMSA3MC42JSA0NS4zJSknIDogJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknO1xuICAgICAgYnV0dG9uLnN0eWxlLmNvbG9yID0gaXNEYXJrID8gJ2hzbCgxNDIuMSA3MC42JSA0NS4zJSknIDogJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknO1xuICAgICAgXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gb3JpZ2luYWxUZXh0O1xuICAgICAgICBidXR0b24uc3R5bGUuYmFja2dyb3VuZCA9ICcnO1xuICAgICAgICBidXR0b24uc3R5bGUuYm9yZGVyQ29sb3IgPSAnJztcbiAgICAgICAgYnV0dG9uLnN0eWxlLmNvbG9yID0gJyc7XG4gICAgICB9LCAxNTAwKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjb3B5OicsIGVycik7XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0IHtcbiAgRGVlc0VsZW1lbnQsXG4gIHByb3BlcnR5LFxuICBodG1sLFxuICBjdXN0b21FbGVtZW50LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG4gIHN0YXRlLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICogYXMgZG9tdG9vbHMgZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcbmltcG9ydCB0eXBlIHsgSUV4ZWN1dGlvbkVudmlyb25tZW50LCBJRmlsZUVudHJ5LCBJRmlsZVdhdGNoZXIgfSBmcm9tICcuLi8uLi8wMGdyb3VwLXJ1bnRpbWUvaW5kZXguanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcbmltcG9ydCAnLi4vLi4vZGVlcy1jb250ZXh0bWVudS9kZWVzLWNvbnRleHRtZW51LmpzJztcbmltcG9ydCB7IERlZXNDb250ZXh0bWVudSB9IGZyb20gJy4uLy4uL2RlZXMtY29udGV4dG1lbnUvZGVlcy1jb250ZXh0bWVudS5qcyc7XG5pbXBvcnQgeyBEZWVzTW9kYWwgfSBmcm9tICcuLi8uLi9kZWVzLW1vZGFsL2RlZXMtbW9kYWwuanMnO1xuaW1wb3J0ICcuLi8uLi8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtdGV4dC9kZWVzLWlucHV0LXRleHQuanMnO1xuaW1wb3J0IHsgRGVlc0lucHV0VGV4dCB9IGZyb20gJy4uLy4uLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC10ZXh0L2RlZXMtaW5wdXQtdGV4dC5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtd29ya3NwYWNlLWZpbGV0cmVlJzogRGVlc1dvcmtzcGFjZUZpbGV0cmVlO1xuICB9XG59XG5cbmludGVyZmFjZSBJVHJlZU5vZGUgZXh0ZW5kcyBJRmlsZUVudHJ5IHtcbiAgY2hpbGRyZW4/OiBJVHJlZU5vZGVbXTtcbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xuICBsZXZlbDogbnVtYmVyO1xufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUnKVxuZXhwb3J0IGNsYXNzIERlZXNXb3Jrc3BhY2VGaWxldHJlZSBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gKCkgPT4gaHRtbGBcbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7XCI+XG4gICAgICA8ZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+PC9kZWVzLXdvcmtzcGFjZS1maWxldHJlZT5cbiAgICA8L2Rpdj5cbiAgYDtcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnV29ya3NwYWNlJztcblxuICAvLyBJTlNUQU5DRVxuICBAcHJvcGVydHkoeyB0eXBlOiBPYmplY3QgfSlcbiAgYWNjZXNzb3IgZXhlY3V0aW9uRW52aXJvbm1lbnQ6IElFeGVjdXRpb25FbnZpcm9ubWVudCB8IG51bGwgPSBudWxsO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciByb290UGF0aDogc3RyaW5nID0gJy8nO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBzZWxlY3RlZFBhdGg6IHN0cmluZyA9ICcnO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHRyZWVEYXRhOiBJVHJlZU5vZGVbXSA9IFtdO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSBleHBhbmRlZFBhdGhzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcbiAgcHJpdmF0ZSBsb2FkVHJlZVN0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBDbGlwYm9hcmQgc3RhdGUgZm9yIGNvcHkvcGFzdGUgb3BlcmF0aW9uc1xuICBwcml2YXRlIGNsaXBib2FyZFBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNsaXBib2FyZE9wZXJhdGlvbjogJ2NvcHknIHwgJ2N1dCcgfCBudWxsID0gbnVsbDtcblxuICAvLyBGaWxlIHdhdGNoZXIgZm9yIGF1dG8tcmVmcmVzaFxuICBwcml2YXRlIGZpbGVXYXRjaGVyOiBJRmlsZVdhdGNoZXIgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWZyZXNoRGVib3VuY2VUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGxhc3RFeGVjdXRpb25FbnZpcm9ubWVudDogSUV4ZWN1dGlvbkVudmlyb25tZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5OCUpJywgJ2hzbCgwIDAlIDklKScpfTtcbiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG5cbiAgICAgIC50cmVlLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgfVxuXG4gICAgICAudHJlZS1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogNHB4IDhweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBtYXJnaW46IDFweCA0cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAudHJlZS1pdGVtOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDkzJSknLCAnaHNsKDAgMCUgMTQlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDEwMCUgOTUlKScsICdoc2woMjEwIDUwJSAyMCUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgMTAwJSA0MCUpJywgJ2hzbCgyMTAgMTAwJSA3MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAudHJlZS1pdGVtLnNlbGVjdGVkOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgMTAwJSA5MiUpJywgJ2hzbCgyMTAgNTAlIDI1JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5pbmRlbnQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLmV4cGFuZC1pY29uIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDUwJSknLCAnaHNsKDAgMCUgNjAlKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5leHBhbmQtaWNvbi5leHBhbmRlZCB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmV4cGFuZC1pY29uLmhpZGRlbiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLmZpbGUtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5maWxlLWljb24gZGVlcy1pY29uIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgIH1cblxuICAgICAgLmZpbGUtaWNvbi5mb2xkZXIge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCg0NSA4MCUgNDUlKScsICdoc2woNDUgNzAlIDU1JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5maWxlLWljb24uZmlsZSB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNTAlKScsICdoc2woMCAwJSA2MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuZmlsZS1pY29uLnR5cGVzY3JpcHQge1xuICAgICAgICBjb2xvcjogaHNsKDIxMSA2MCUgNDglKTtcbiAgICAgIH1cblxuICAgICAgLmZpbGUtaWNvbi5qYXZhc2NyaXB0IHtcbiAgICAgICAgY29sb3I6IGhzbCg1MyA5MyUgNTQlKTtcbiAgICAgIH1cblxuICAgICAgLmZpbGUtaWNvbi5qc29uIHtcbiAgICAgICAgY29sb3I6IGhzbCg0NSA4MCUgNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmZpbGUtaWNvbi5odG1sIHtcbiAgICAgICAgY29sb3I6IGhzbCgxNCA3NyUgNTIlKTtcbiAgICAgIH1cblxuICAgICAgLmZpbGUtaWNvbi5jc3Mge1xuICAgICAgICBjb2xvcjogaHNsKDIyOCA3NyUgNTklKTtcbiAgICAgIH1cblxuICAgICAgLmZpbGUtaWNvbi5tYXJrZG93biB7XG4gICAgICAgIGNvbG9yOiBoc2woMCAwJSA1MCUpO1xuICAgICAgfVxuXG4gICAgICAuZmlsZS1uYW1lIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMjAlKScsICdoc2woMCAwJSA4NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAubG9hZGluZyB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA1MCUpJywgJ2hzbCgwIDAlIDYwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5lcnJvciB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IGhzbCgwIDcwJSA1MCUpO1xuICAgICAgfVxuXG4gICAgICAuZW1wdHkge1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNTAlKScsICdoc2woMCAwJSA2MCUpJyl9O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB9XG5cbiAgICAgIC5maWxldHJlZS10b29sYmFyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4NSUpJywgJ2hzbCgwIDAlIDE1JSknKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NiUpJywgJ2hzbCgwIDAlIDglKScpfTtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfVxuXG4gICAgICAudG9vbGJhci10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQwJSknLCAnaHNsKDAgMCUgNjAlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRvb2xiYXItYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgfVxuXG4gICAgICAudG9vbGJhci1idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDMwJSknLCAnaHNsKDAgMCUgNzAlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDAlIC8gMC4wOCknLCAnaHNsKDAgMCUgMTAwJSAvIDAuMSknKX07XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHlcIj5cbiAgICAgICAgICBObyBleGVjdXRpb24gZW52aXJvbm1lbnQgcHJvdmlkZWQuXG4gICAgICAgIDwvZGl2PlxuICAgICAgYDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZ1wiPlxuICAgICAgICAgIExvYWRpbmcgZmlsZXMuLi5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVycm9yTWVzc2FnZSkge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclwiPlxuICAgICAgICAgICR7dGhpcy5lcnJvck1lc3NhZ2V9XG4gICAgICAgIDwvZGl2PlxuICAgICAgYDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxldHJlZS10b29sYmFyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbGJhci10aXRsZVwiPkV4cGxvcmVyPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1hY3Rpb25zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCIgQGNsaWNrPSR7KCkgPT4gdGhpcy5jcmVhdGVOZXdGaWxlKCcvJyl9IHRpdGxlPVwiTmV3IEZpbGVcIj5cbiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOmZpbGVQbHVzJ30gaWNvblNpemU9XCIxNlwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWJ1dHRvblwiIEBjbGljaz0keygpID0+IHRoaXMuY3JlYXRlTmV3Rm9sZGVyKCcvJyl9IHRpdGxlPVwiTmV3IEZvbGRlclwiPlxuICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6Zm9sZGVyUGx1cyd9IGljb25TaXplPVwiMTZcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgICR7dGhpcy50cmVlRGF0YS5sZW5ndGggPT09IDBcbiAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJlbXB0eVwiPk5vIGZpbGVzIGZvdW5kLjwvZGl2PmBcbiAgICAgICAgOiBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyZWUtY29udGFpbmVyXCIgQGNvbnRleHRtZW51PSR7dGhpcy5oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnV9PlxuICAgICAgICAgICAgICAke3RoaXMucmVuZGVyVHJlZSh0aGlzLnRyZWVEYXRhKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGB9XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyVHJlZShub2RlczogSVRyZWVOb2RlW10pOiBUZW1wbGF0ZVJlc3VsdFtdIHtcbiAgICByZXR1cm4gbm9kZXMubWFwKG5vZGUgPT4gdGhpcy5yZW5kZXJOb2RlKG5vZGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyTm9kZShub2RlOiBJVHJlZU5vZGUpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgaXNEaXJlY3RvcnkgPSBub2RlLnR5cGUgPT09ICdkaXJlY3RvcnknO1xuICAgIGNvbnN0IGlzRXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkUGF0aHMuaGFzKG5vZGUucGF0aCk7XG4gICAgY29uc3QgaXNTZWxlY3RlZCA9IG5vZGUucGF0aCA9PT0gdGhpcy5zZWxlY3RlZFBhdGg7XG4gICAgY29uc3QgaWNvbkNsYXNzID0gdGhpcy5nZXRGaWxlSWNvbkNsYXNzKG5vZGUpO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidHJlZS1pdGVtICR7aXNTZWxlY3RlZCA/ICdzZWxlY3RlZCcgOiAnJ31cIlxuICAgICAgICBzdHlsZT1cInBhZGRpbmctbGVmdDogJHs4ICsgbm9kZS5sZXZlbCAqIDE2fXB4XCJcbiAgICAgICAgQGNsaWNrPSR7KGU6IE1vdXNlRXZlbnQpID0+IHRoaXMuaGFuZGxlSXRlbUNsaWNrKGUsIG5vZGUpfVxuICAgICAgICBAY29udGV4dG1lbnU9JHsoZTogTW91c2VFdmVudCkgPT4gdGhpcy5oYW5kbGVDb250ZXh0TWVudShlLCBub2RlKX1cbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJleHBhbmQtaWNvbiAke2lzRXhwYW5kZWQgPyAnZXhwYW5kZWQnIDogJyd9ICR7IWlzRGlyZWN0b3J5ID8gJ2hpZGRlbicgOiAnJ31cIj5cbiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTpjaGV2cm9uUmlnaHQnfSBpY29uU2l6ZT1cIjEyXCI+PC9kZWVzLWljb24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLWljb24gJHtpY29uQ2xhc3N9XCI+XG4gICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuZ2V0RmlsZUljb24obm9kZSl9IGljb25TaXplPVwiMTZcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPiR7bm9kZS5uYW1lfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgJHtpc0RpcmVjdG9yeSAmJiBpc0V4cGFuZGVkICYmIG5vZGUuY2hpbGRyZW5cbiAgICAgICAgPyB0aGlzLnJlbmRlclRyZWUobm9kZS5jaGlsZHJlbilcbiAgICAgICAgOiAnJ31cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlSWNvbihub2RlOiBJVHJlZU5vZGUpOiBzdHJpbmcge1xuICAgIGlmIChub2RlLnR5cGUgPT09ICdkaXJlY3RvcnknKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHBhbmRlZFBhdGhzLmhhcyhub2RlLnBhdGgpID8gJ2x1Y2lkZTpmb2xkZXJPcGVuJyA6ICdsdWNpZGU6Zm9sZGVyJztcbiAgICB9XG5cbiAgICBjb25zdCBleHQgPSBub2RlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcbiAgICBzd2l0Y2ggKGV4dCkge1xuICAgICAgY2FzZSAndHMnOlxuICAgICAgY2FzZSAndHN4JzpcbiAgICAgICAgcmV0dXJuICdsdWNpZGU6ZmlsZUNvZGUnO1xuICAgICAgY2FzZSAnanMnOlxuICAgICAgY2FzZSAnanN4JzpcbiAgICAgICAgcmV0dXJuICdsdWNpZGU6ZmlsZUNvZGUnO1xuICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgIHJldHVybiAnbHVjaWRlOmZpbGVKc29uJztcbiAgICAgIGNhc2UgJ2h0bWwnOlxuICAgICAgICByZXR1cm4gJ2x1Y2lkZTpmaWxlQ29kZSc7XG4gICAgICBjYXNlICdjc3MnOlxuICAgICAgY2FzZSAnc2Nzcyc6XG4gICAgICBjYXNlICdsZXNzJzpcbiAgICAgICAgcmV0dXJuICdsdWNpZGU6ZmlsZUNvZGUnO1xuICAgICAgY2FzZSAnbWQnOlxuICAgICAgICByZXR1cm4gJ2x1Y2lkZTpmaWxlVGV4dCc7XG4gICAgICBjYXNlICdwbmcnOlxuICAgICAgY2FzZSAnanBnJzpcbiAgICAgIGNhc2UgJ2pwZWcnOlxuICAgICAgY2FzZSAnZ2lmJzpcbiAgICAgIGNhc2UgJ3N2Zyc6XG4gICAgICAgIHJldHVybiAnbHVjaWRlOmltYWdlJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnbHVjaWRlOmZpbGUnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZUljb25DbGFzcyhub2RlOiBJVHJlZU5vZGUpOiBzdHJpbmcge1xuICAgIGlmIChub2RlLnR5cGUgPT09ICdkaXJlY3RvcnknKSByZXR1cm4gJ2ZvbGRlcic7XG5cbiAgICBjb25zdCBleHQgPSBub2RlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcbiAgICBzd2l0Y2ggKGV4dCkge1xuICAgICAgY2FzZSAndHMnOlxuICAgICAgY2FzZSAndHN4JzpcbiAgICAgICAgcmV0dXJuICd0eXBlc2NyaXB0JztcbiAgICAgIGNhc2UgJ2pzJzpcbiAgICAgIGNhc2UgJ2pzeCc6XG4gICAgICAgIHJldHVybiAnamF2YXNjcmlwdCc7XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgcmV0dXJuICdqc29uJztcbiAgICAgIGNhc2UgJ2h0bWwnOlxuICAgICAgICByZXR1cm4gJ2h0bWwnO1xuICAgICAgY2FzZSAnY3NzJzpcbiAgICAgIGNhc2UgJ3Njc3MnOlxuICAgICAgY2FzZSAnbGVzcyc6XG4gICAgICAgIHJldHVybiAnY3NzJztcbiAgICAgIGNhc2UgJ21kJzpcbiAgICAgICAgcmV0dXJuICdtYXJrZG93bic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2ZpbGUnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlSXRlbUNsaWNrKGU6IE1vdXNlRXZlbnQsIG5vZGU6IElUcmVlTm9kZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnZGlyZWN0b3J5Jykge1xuICAgICAgYXdhaXQgdGhpcy50b2dnbGVEaXJlY3Rvcnkobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYXRoID0gbm9kZS5wYXRoO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2ZpbGUtc2VsZWN0Jywge1xuICAgICAgICAgIGRldGFpbDogeyBwYXRoOiBub2RlLnBhdGgsIG5hbWU6IG5vZGUubmFtZSB9LFxuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdG9nZ2xlRGlyZWN0b3J5KG5vZGU6IElUcmVlTm9kZSkge1xuICAgIGlmICh0aGlzLmV4cGFuZGVkUGF0aHMuaGFzKG5vZGUucGF0aCkpIHtcbiAgICAgIHRoaXMuZXhwYW5kZWRQYXRocy5kZWxldGUobm9kZS5wYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5leHBhbmRlZFBhdGhzLmFkZChub2RlLnBhdGgpO1xuICAgICAgLy8gTG9hZCBjaGlsZHJlbiBpZiBub3QgYWxyZWFkeSBsb2FkZWRcbiAgICAgIGlmICghbm9kZS5jaGlsZHJlbiB8fCBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWREaXJlY3RvcnlDb250ZW50cyhub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWREaXJlY3RvcnlDb250ZW50cyhub2RlOiBJVHJlZU5vZGUpIHtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpIHJldHVybjtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBlbnRyaWVzID0gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKG5vZGUucGF0aCk7XG4gICAgICBub2RlLmNoaWxkcmVuID0gdGhpcy5zb3J0RW50cmllcyhlbnRyaWVzKS5tYXAoZW50cnkgPT4gKHtcbiAgICAgICAgLi4uZW50cnksXG4gICAgICAgIGxldmVsOiBub2RlLmxldmVsICsgMSxcbiAgICAgICAgZXhwYW5kZWQ6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogZW50cnkudHlwZSA9PT0gJ2RpcmVjdG9yeScgPyBbXSA6IHVuZGVmaW5lZCxcbiAgICAgIH0pKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgZGlyZWN0b3J5ICR7bm9kZS5wYXRofTpgLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVDb250ZXh0TWVudShlOiBNb3VzZUV2ZW50LCBub2RlOiBJVHJlZU5vZGUpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IG1lbnVJdGVtcyA9IFtdO1xuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2RpcmVjdG9yeScpIHtcbiAgICAgIC8vIERpcmVjdG9yeS1zcGVjaWZpYyBvcHRpb25zXG4gICAgICBtZW51SXRlbXMucHVzaChcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdOZXcgRmlsZScsXG4gICAgICAgICAgaWNvbk5hbWU6ICdmaWxlUGx1cycsXG4gICAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB0aGlzLmNyZWF0ZU5ld0ZpbGUobm9kZS5wYXRoKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdOZXcgRm9sZGVyJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2ZvbGRlclBsdXMnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gdGhpcy5jcmVhdGVOZXdGb2xkZXIobm9kZS5wYXRoKSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ29tbW9uIG9wdGlvbnMgZm9yIGJvdGggZmlsZXMgYW5kIGRpcmVjdG9yaWVzXG4gICAgbWVudUl0ZW1zLnB1c2goXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdSZW5hbWUnLFxuICAgICAgICBpY29uTmFtZTogJ3BlbmNpbCcsXG4gICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gdGhpcy5yZW5hbWVJdGVtKG5vZGUpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0R1cGxpY2F0ZScsXG4gICAgICAgIGljb25OYW1lOiAnZmlsZXMnLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHRoaXMuZHVwbGljYXRlSXRlbShub2RlKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdDb3B5JyxcbiAgICAgICAgaWNvbk5hbWU6ICdjb3B5JyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB0aGlzLmNvcHlJdGVtKG5vZGUpLFxuICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBQYXN0ZSBvcHRpb24gKG9ubHkgZm9yIGRpcmVjdG9yaWVzIGFuZCB3aGVuIGNsaXBib2FyZCBoYXMgY29udGVudClcbiAgICBpZiAobm9kZS50eXBlID09PSAnZGlyZWN0b3J5JyAmJiB0aGlzLmNsaXBib2FyZFBhdGgpIHtcbiAgICAgIG1lbnVJdGVtcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ1Bhc3RlJyxcbiAgICAgICAgaWNvbk5hbWU6ICdjbGlwYm9hcmQnLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHRoaXMucGFzdGVJdGVtKG5vZGUucGF0aCksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBtZW51SXRlbXMucHVzaChcbiAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnRGVsZXRlJyxcbiAgICAgICAgaWNvbk5hbWU6ICd0cmFzaDInLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHRoaXMuZGVsZXRlSXRlbShub2RlKSxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgYXdhaXQgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGUsIG1lbnVJdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUVtcHR5U3BhY2VDb250ZXh0TWVudShlOiBNb3VzZUV2ZW50KSB7XG4gICAgLy8gT25seSB0cmlnZ2VyIGlmIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgaXRzZWxmLCBub3QgYSB0cmVlIGl0ZW1cbiAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAodGFyZ2V0LmNsb3Nlc3QoJy50cmVlLWl0ZW0nKSkgcmV0dXJuO1xuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCBtZW51SXRlbXM6IGFueVtdID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnTmV3IEZpbGUnLFxuICAgICAgICBpY29uTmFtZTogJ2ZpbGVQbHVzJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB0aGlzLmNyZWF0ZU5ld0ZpbGUoJy8nKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdOZXcgRm9sZGVyJyxcbiAgICAgICAgaWNvbk5hbWU6ICdmb2xkZXJQbHVzJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB0aGlzLmNyZWF0ZU5ld0ZvbGRlcignLycpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgLy8gQWRkIFBhc3RlIG9wdGlvbiBpZiBjbGlwYm9hcmQgaGFzIGNvbnRlbnRcbiAgICBpZiAodGhpcy5jbGlwYm9hcmRQYXRoKSB7XG4gICAgICBtZW51SXRlbXMucHVzaChcbiAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnUGFzdGUnLFxuICAgICAgICAgIGljb25OYW1lOiAnY2xpcGJvYXJkJyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHRoaXMucGFzdGVJdGVtKCcvJyksXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXdhaXQgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGUsIG1lbnVJdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNob3dJbnB1dE1vZGFsKG9wdGlvbnM6IHtcbiAgICBoZWFkaW5nOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgICBidXR0b25OYW1lPzogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCBtb2RhbCA9IGF3YWl0IERlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtcbiAgICAgICAgaGVhZGluZzogb3B0aW9ucy5oZWFkaW5nLFxuICAgICAgICB3aWR0aDogJ3NtYWxsJyxcbiAgICAgICAgY29udGVudDogaHRtbGBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0XG4gICAgICAgICAgICAubGFiZWw9JHtvcHRpb25zLmxhYmVsfVxuICAgICAgICAgICAgLnZhbHVlPSR7b3B0aW9ucy52YWx1ZSB8fCAnJ31cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgIGAsXG4gICAgICAgIG1lbnVPcHRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0NhbmNlbCcsXG4gICAgICAgICAgICBhY3Rpb246IGFzeW5jIChtb2RhbFJlZikgPT4ge1xuICAgICAgICAgICAgICBhd2FpdCBtb2RhbFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogb3B0aW9ucy5idXR0b25OYW1lIHx8ICdDcmVhdGUnLFxuICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAobW9kYWxSZWYpID0+IHtcbiAgICAgICAgICAgICAgLy8gUXVlcnkgdGhlIGlucHV0IGVsZW1lbnQgZGlyZWN0bHkgYW5kIHJlYWQgaXRzIHZhbHVlXG4gICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRFbCA9IG1vZGFsUmVmLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbCAuY29udGVudCcpO1xuICAgICAgICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBjb250ZW50RWw/LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dCcpIGFzIERlZXNJbnB1dFRleHQgfCBudWxsO1xuICAgICAgICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gaW5wdXRFbGVtZW50Py52YWx1ZT8udHJpbSgpIHx8ICcnO1xuXG4gICAgICAgICAgICAgIGF3YWl0IG1vZGFsUmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgcmVzb2x2ZShpbnB1dFZhbHVlIHx8IG51bGwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEZvY3VzIHRoZSBpbnB1dCBhZnRlciBtb2RhbCByZW5kZXJzXG4gICAgICBhd2FpdCBtb2RhbC51cGRhdGVDb21wbGV0ZTtcbiAgICAgIGNvbnN0IGNvbnRlbnRFbCA9IG1vZGFsLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbCAuY29udGVudCcpO1xuICAgICAgaWYgKGNvbnRlbnRFbCkge1xuICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBjb250ZW50RWwucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0JykgYXMgRGVlc0lucHV0VGV4dCB8IG51bGw7XG4gICAgICAgIGlmIChpbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICBhd2FpdCBpbnB1dEVsZW1lbnQudXBkYXRlQ29tcGxldGU7XG4gICAgICAgICAgaW5wdXRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlTmV3RmlsZShwYXJlbnRQYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmaWxlTmFtZSA9IGF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe1xuICAgICAgaGVhZGluZzogJ05ldyBGaWxlJyxcbiAgICAgIGxhYmVsOiAnRmlsZSBuYW1lJyxcbiAgICB9KTtcbiAgICBpZiAoIWZpbGVOYW1lIHx8ICF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBuZXdQYXRoID0gcGFyZW50UGF0aCA9PT0gJy8nID8gYC8ke2ZpbGVOYW1lfWAgOiBgJHtwYXJlbnRQYXRofS8ke2ZpbGVOYW1lfWA7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKG5ld1BhdGgsICcnKTtcbiAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2ZpbGUtY3JlYXRlZCcsIHtcbiAgICAgICAgICBkZXRhaWw6IHsgcGF0aDogbmV3UGF0aCB9LFxuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGZpbGU6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlTmV3Rm9sZGVyKHBhcmVudFBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGZvbGRlck5hbWUgPSBhd2FpdCB0aGlzLnNob3dJbnB1dE1vZGFsKHtcbiAgICAgIGhlYWRpbmc6ICdOZXcgRm9sZGVyJyxcbiAgICAgIGxhYmVsOiAnRm9sZGVyIG5hbWUnLFxuICAgIH0pO1xuICAgIGlmICghZm9sZGVyTmFtZSB8fCAhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbmV3UGF0aCA9IHBhcmVudFBhdGggPT09ICcvJyA/IGAvJHtmb2xkZXJOYW1lfWAgOiBgJHtwYXJlbnRQYXRofS8ke2ZvbGRlck5hbWV9YDtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ta2RpcihuZXdQYXRoKTtcbiAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2ZvbGRlci1jcmVhdGVkJywge1xuICAgICAgICAgIGRldGFpbDogeyBwYXRoOiBuZXdQYXRoIH0sXG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgZm9sZGVyOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGRlbGV0ZUl0ZW0obm9kZTogSVRyZWVOb2RlKSB7XG4gICAgaWYgKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBjb25maXJtZWQgPSBjb25maXJtKGBEZWxldGUgJHtub2RlLm5hbWV9P2ApO1xuICAgIGlmICghY29uZmlybWVkKSByZXR1cm47XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ybShub2RlLnBhdGgsIHsgcmVjdXJzaXZlOiBub2RlLnR5cGUgPT09ICdkaXJlY3RvcnknIH0pO1xuICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoKCk7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudCgnaXRlbS1kZWxldGVkJywge1xuICAgICAgICAgIGRldGFpbDogeyBwYXRoOiBub2RlLnBhdGgsIHR5cGU6IG5vZGUudHlwZSB9LFxuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZGVsZXRlIGl0ZW06JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5hbWUgYSBmaWxlIG9yIGZvbGRlclxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZW5hbWVJdGVtKG5vZGU6IElUcmVlTm9kZSkge1xuICAgIGlmICghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbmV3TmFtZSA9IGF3YWl0IHRoaXMuc2hvd0lucHV0TW9kYWwoe1xuICAgICAgaGVhZGluZzogJ1JlbmFtZScsXG4gICAgICBsYWJlbDogJ05ldyBuYW1lJyxcbiAgICAgIHZhbHVlOiBub2RlLm5hbWUsXG4gICAgICBidXR0b25OYW1lOiAnUmVuYW1lJyxcbiAgICB9KTtcbiAgICBpZiAoIW5ld05hbWUgfHwgbmV3TmFtZSA9PT0gbm9kZS5uYW1lKSByZXR1cm47XG5cbiAgICAvLyBDYWxjdWxhdGUgbmV3IHBhdGhcbiAgICBjb25zdCBwYXJlbnRQYXRoID0gbm9kZS5wYXRoLnN1YnN0cmluZygwLCBub2RlLnBhdGgubGFzdEluZGV4T2YoJy8nKSkgfHwgJy8nO1xuICAgIGNvbnN0IG5ld1BhdGggPSBwYXJlbnRQYXRoID09PSAnLycgPyBgLyR7bmV3TmFtZX1gIDogYCR7cGFyZW50UGF0aH0vJHtuZXdOYW1lfWA7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKG5vZGUudHlwZSA9PT0gJ2ZpbGUnKSB7XG4gICAgICAgIC8vIEZvciBmaWxlczogcmVhZCBjb250ZW50LCB3cml0ZSB0byBuZXcgcGF0aCwgZGVsZXRlIG9sZFxuICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShub2RlLnBhdGgpO1xuICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShuZXdQYXRoLCBjb250ZW50KTtcbiAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5ybShub2RlLnBhdGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRm9yIGRpcmVjdG9yaWVzOiByZWN1cnNpdmVseSBjb3B5IGNvbnRlbnRzIHRoZW4gZGVsZXRlIG9sZFxuICAgICAgICBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyhub2RlLnBhdGgsIG5ld1BhdGgpO1xuICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKG5vZGUucGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdpdGVtLXJlbmFtZWQnLCB7XG4gICAgICAgICAgZGV0YWlsOiB7IG9sZFBhdGg6IG5vZGUucGF0aCwgbmV3UGF0aCwgdHlwZTogbm9kZS50eXBlIH0sXG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byByZW5hbWUgaXRlbTonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIER1cGxpY2F0ZSBhIGZpbGUgb3IgZm9sZGVyXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGR1cGxpY2F0ZUl0ZW0obm9kZTogSVRyZWVOb2RlKSB7XG4gICAgaWYgKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBwYXJlbnRQYXRoID0gbm9kZS5wYXRoLnN1YnN0cmluZygwLCBub2RlLnBhdGgubGFzdEluZGV4T2YoJy8nKSkgfHwgJy8nO1xuICAgIGxldCBuZXdOYW1lOiBzdHJpbmc7XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnZmlsZScpIHtcbiAgICAgIC8vIEFkZCBfY29weSBiZWZvcmUgZXh0ZW5zaW9uXG4gICAgICBjb25zdCBsYXN0RG90ID0gbm9kZS5uYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICBpZiAobGFzdERvdCA+IDApIHtcbiAgICAgICAgY29uc3QgYmFzZU5hbWUgPSBub2RlLm5hbWUuc3Vic3RyaW5nKDAsIGxhc3REb3QpO1xuICAgICAgICBjb25zdCBleHQgPSBub2RlLm5hbWUuc3Vic3RyaW5nKGxhc3REb3QpO1xuICAgICAgICBuZXdOYW1lID0gYCR7YmFzZU5hbWV9X2NvcHkke2V4dH1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3TmFtZSA9IGAke25vZGUubmFtZX1fY29weWA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld05hbWUgPSBgJHtub2RlLm5hbWV9X2NvcHlgO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1BhdGggPSBwYXJlbnRQYXRoID09PSAnLycgPyBgLyR7bmV3TmFtZX1gIDogYCR7cGFyZW50UGF0aH0vJHtuZXdOYW1lfWA7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKG5vZGUudHlwZSA9PT0gJ2ZpbGUnKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKG5vZGUucGF0aCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKG5ld1BhdGgsIGNvbnRlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb3B5RGlyZWN0b3J5Q29udGVudHMobm9kZS5wYXRoLCBuZXdQYXRoKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2l0ZW0tZHVwbGljYXRlZCcsIHtcbiAgICAgICAgICBkZXRhaWw6IHsgc291cmNlUGF0aDogbm9kZS5wYXRoLCBuZXdQYXRoLCB0eXBlOiBub2RlLnR5cGUgfSxcbiAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGR1cGxpY2F0ZSBpdGVtOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29weSBpdGVtIHBhdGggdG8gY2xpcGJvYXJkXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNvcHlJdGVtKG5vZGU6IElUcmVlTm9kZSkge1xuICAgIHRoaXMuY2xpcGJvYXJkUGF0aCA9IG5vZGUucGF0aDtcbiAgICB0aGlzLmNsaXBib2FyZE9wZXJhdGlvbiA9ICdjb3B5JztcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXN0ZSBjb3BpZWQgaXRlbSB0byB0YXJnZXQgZGlyZWN0b3J5XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHBhc3RlSXRlbSh0YXJnZXRQYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQgfHwgIXRoaXMuY2xpcGJvYXJkUGF0aCkgcmV0dXJuO1xuXG4gICAgLy8gR2V0IHRoZSBuYW1lIGZyb20gY2xpcGJvYXJkIHBhdGhcbiAgICBjb25zdCBuYW1lID0gdGhpcy5jbGlwYm9hcmRQYXRoLnNwbGl0KCcvJykucG9wKCkgfHwgJ3Bhc3RlZCc7XG4gICAgY29uc3QgbmV3UGF0aCA9IHRhcmdldFBhdGggPT09ICcvJyA/IGAvJHtuYW1lfWAgOiBgJHt0YXJnZXRQYXRofS8ke25hbWV9YDtcblxuICAgIHRyeSB7XG4gICAgICAvLyBDaGVjayBpZiBzb3VyY2UgZXhpc3RzXG4gICAgICBpZiAoIShhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyh0aGlzLmNsaXBib2FyZFBhdGgpKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdTb3VyY2UgZmlsZSBubyBsb25nZXIgZXhpc3RzJyk7XG4gICAgICAgIHRoaXMuY2xpcGJvYXJkUGF0aCA9IG51bGw7XG4gICAgICAgIHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uID0gbnVsbDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBpdCdzIGEgZmlsZSBvciBkaXJlY3RvcnkgYnkgdHJ5aW5nIHRvIHJlYWQgYXMgZmlsZVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUodGhpcy5jbGlwYm9hcmRQYXRoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUobmV3UGF0aCwgY29udGVudCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gSWYgcmVhZGluZyBmYWlscywgaXQncyBhIGRpcmVjdG9yeVxuICAgICAgICBhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyh0aGlzLmNsaXBib2FyZFBhdGgsIG5ld1BhdGgpO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdpdGVtLXBhc3RlZCcsIHtcbiAgICAgICAgICBkZXRhaWw6IHsgc291cmNlUGF0aDogdGhpcy5jbGlwYm9hcmRQYXRoLCB0YXJnZXRQYXRoOiBuZXdQYXRoIH0sXG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIC8vIENsZWFyIGNsaXBib2FyZCBhZnRlciBwYXN0ZVxuICAgICAgdGhpcy5jbGlwYm9hcmRQYXRoID0gbnVsbDtcbiAgICAgIHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uID0gbnVsbDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBhc3RlIGl0ZW06JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBjb3B5IGRpcmVjdG9yeSBjb250ZW50cyB0byBhIG5ldyBwYXRoXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNvcHlEaXJlY3RvcnlDb250ZW50cyhzb3VyY2VQYXRoOiBzdHJpbmcsIGRlc3RQYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpIHJldHVybjtcblxuICAgIC8vIENyZWF0ZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnlcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKGRlc3RQYXRoKTtcblxuICAgIC8vIFJlYWQgc291cmNlIGRpcmVjdG9yeSBjb250ZW50c1xuICAgIGNvbnN0IGVudHJpZXMgPSBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoc291cmNlUGF0aCk7XG5cbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgIGNvbnN0IHNyY0VudHJ5UGF0aCA9IHNvdXJjZVBhdGggPT09ICcvJyA/IGAvJHtlbnRyeS5uYW1lfWAgOiBgJHtzb3VyY2VQYXRofS8ke2VudHJ5Lm5hbWV9YDtcbiAgICAgIGNvbnN0IGRlc3RFbnRyeVBhdGggPSBkZXN0UGF0aCA9PT0gJy8nID8gYC8ke2VudHJ5Lm5hbWV9YCA6IGAke2Rlc3RQYXRofS8ke2VudHJ5Lm5hbWV9YDtcblxuICAgICAgaWYgKGVudHJ5LnR5cGUgPT09ICdkaXJlY3RvcnknKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKHNyY0VudHJ5UGF0aCwgZGVzdEVudHJ5UGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShzcmNFbnRyeVBhdGgpO1xuICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShkZXN0RW50cnlQYXRoLCBjb250ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlyc3RVcGRhdGVkKCkge1xuICAgIGF3YWl0IHRoaXMubG9hZFRyZWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBNYXA8c3RyaW5nLCBhbnk+KSB7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZXhlY3V0aW9uRW52aXJvbm1lbnQnKSkge1xuICAgICAgLy8gU3RvcCB3YXRjaGluZyB0aGUgb2xkIGVudmlyb25tZW50XG4gICAgICBpZiAodGhpcy5sYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQgIT09IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpIHtcbiAgICAgICAgdGhpcy5zdG9wRmlsZVdhdGNoZXIoKTtcbiAgICAgICAgdGhpcy5sYXN0RXhlY3V0aW9uRW52aXJvbm1lbnQgPSB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50O1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRUcmVlKCk7XG4gICAgICAgIHRoaXMuc3RhcnRGaWxlV2F0Y2hlcigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc3RvcEZpbGVXYXRjaGVyKCk7XG4gICAgaWYgKHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaERlYm91bmNlVGltZW91dCk7XG4gICAgICB0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRGaWxlV2F0Y2hlcigpIHtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQgfHwgdGhpcy5maWxlV2F0Y2hlcikgcmV0dXJuO1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuZmlsZVdhdGNoZXIgPSB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKFxuICAgICAgICAnLycsXG4gICAgICAgIChfZXZlbnQsIF9maWxlbmFtZSkgPT4ge1xuICAgICAgICAgIC8vIERlYm91bmNlIHJlZnJlc2ggdG8gYXZvaWQgZXhjZXNzaXZlIHVwZGF0ZXNcbiAgICAgICAgICBpZiAodGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgICAgICB9LCAzMDApO1xuICAgICAgICB9LFxuICAgICAgICB7IHJlY3Vyc2l2ZTogdHJ1ZSB9XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0ZpbGUgd2F0Y2hpbmcgbm90IHN1cHBvcnRlZDonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdG9wRmlsZVdhdGNoZXIoKSB7XG4gICAgaWYgKHRoaXMuZmlsZVdhdGNoZXIpIHtcbiAgICAgIHRoaXMuZmlsZVdhdGNoZXIuc3RvcCgpO1xuICAgICAgdGhpcy5maWxlV2F0Y2hlciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkVHJlZSgpIHtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpIHJldHVybjtcblxuICAgIC8vIFByZXZlbnQgZG91YmxlIGxvYWRpbmcgb24gaW5pdGlhbCByZW5kZXJcbiAgICBpZiAodGhpcy5sb2FkVHJlZVN0YXJ0ZWQpIHJldHVybjtcbiAgICB0aGlzLmxvYWRUcmVlU3RhcnRlZCA9IHRydWU7XG5cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcblxuICAgIHRyeSB7XG4gICAgICAvLyBXYWl0IGZvciBlbnZpcm9ubWVudCB0byBiZSByZWFkeVxuICAgICAgaWYgKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRyaWVzID0gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKHRoaXMucm9vdFBhdGgpO1xuICAgICAgdGhpcy50cmVlRGF0YSA9IHRoaXMuc29ydEVudHJpZXMoZW50cmllcykubWFwKGVudHJ5ID0+ICh7XG4gICAgICAgIC4uLmVudHJ5LFxuICAgICAgICBsZXZlbDogMCxcbiAgICAgICAgZXhwYW5kZWQ6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogZW50cnkudHlwZSA9PT0gJ2RpcmVjdG9yeScgPyBbXSA6IHVuZGVmaW5lZCxcbiAgICAgIH0pKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBgRmFpbGVkIHRvIGxvYWQgZmlsZXM6ICR7ZXJyb3J9YDtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGZpbGUgdHJlZTonLCBlcnJvcik7XG4gICAgICAvLyBSZXNldCBmbGFnIHRvIGFsbG93IHJldHJ5XG4gICAgICB0aGlzLmxvYWRUcmVlU3RhcnRlZCA9IGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc29ydEVudHJpZXMoZW50cmllczogSUZpbGVFbnRyeVtdKTogSUZpbGVFbnRyeVtdIHtcbiAgICByZXR1cm4gZW50cmllcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAvLyBEaXJlY3RvcmllcyBmaXJzdFxuICAgICAgaWYgKGEudHlwZSAhPT0gYi50eXBlKSB7XG4gICAgICAgIHJldHVybiBhLnR5cGUgPT09ICdkaXJlY3RvcnknID8gLTEgOiAxO1xuICAgICAgfVxuICAgICAgLy8gVGhlbiBhbHBoYWJldGljYWxseVxuICAgICAgcmV0dXJuIGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmV4cGFuZGVkUGF0aHMuY2xlYXIoKTtcbiAgICB0aGlzLmxvYWRUcmVlU3RhcnRlZCA9IGZhbHNlOyAvLyBSZXNldCB0byBhbGxvdyBsb2FkaW5nXG4gICAgYXdhaXQgdGhpcy5sb2FkVHJlZSgpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEZpbGUocGF0aDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBhdGggPSBwYXRoO1xuICB9XG59XG4iLCAiaW1wb3J0IHtcbiAgRGVlc0VsZW1lbnQsXG4gIHByb3BlcnR5LFxuICBodG1sLFxuICBjdXN0b21FbGVtZW50LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgdHlwZSB7IFRlcm1pbmFsIH0gZnJvbSAneHRlcm0nO1xuaW1wb3J0IHR5cGUgeyBGaXRBZGRvbiB9IGZyb20gJ3h0ZXJtLWFkZG9uLWZpdCc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcbmltcG9ydCB7IERlZXNTZXJ2aWNlTGliTG9hZGVyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW5kZXguanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3JzogRGVlc1dvcmtzcGFjZVRlcm1pbmFsUHJldmlldztcbiAgfVxufVxuXG4vKipcbiAqIEEgcmVhZC1vbmx5IHRlcm1pbmFsIHByZXZpZXcgY29tcG9uZW50IHVzaW5nIHh0ZXJtLmpzIGZvciByZW5kZXJpbmcuXG4gKiBVc2VkIGR1cmluZyB3b3Jrc3BhY2UgaW5pdGlhbGl6YXRpb24gdG8gc2hvdyBvbkluaXQgY29tbWFuZCBwcm9ncmVzcy5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXcnKVxuZXhwb3J0IGNsYXNzIERlZXNXb3Jrc3BhY2VUZXJtaW5hbFByZXZpZXcgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9ICgpID0+IGh0bWxgXG4gICAgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXdcbiAgICAgIC5jb21tYW5kPSR7J3BucG0gaW5zdGFsbCd9XG4gICAgICAubGluZXM9JHtbXG4gICAgICAgICdQYWNrYWdlczogKzQyJyxcbiAgICAgICAgJ1Byb2dyZXNzOiByZXNvbHZlZCAxNDIsIHJldXNlZCAxNDAsIGRvd25sb2FkZWQgMiwgYWRkZWQgNDIsIGRvbmUnLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2RlcGVuZGVuY2llczonLFxuICAgICAgICAnKyBAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UgNC4yLjMnLFxuICAgICAgICAnKyB0eXBlc2NyaXB0IDUuMy4zJyxcbiAgICAgICAgJycsXG4gICAgICAgICdEb25lIGluIDIuM3MnXG4gICAgICBdfVxuICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+XG4gIGA7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ1dvcmtzcGFjZSc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIGJlaW5nIGRpc3BsYXllZCAoc2hvd24gaW4gaGVhZGVyKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIGNvbW1hbmQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgbGluZXMgdG8gZGlzcGxheVxuICAgKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3IgbGluZXM6IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSB0ZXJtaW5hbDogVGVybWluYWwgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBmaXRBZGRvbjogRml0QWRkb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsYXN0TGluZUNvdW50OiBudW1iZXIgPSAwO1xuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb246IGFueSA9IG51bGw7XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgfVxuXG4gICAgICAudGVybWluYWwtcHJldmlldyB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMDAwMDAwJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODUlKScsICdoc2woMCAwJSAyMCUpJyl9O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuXG4gICAgICAudGVybWluYWwtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTYlKScsICdoc2woMCAwJSAxMCUpJyl9O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQwJSknLCAnaHNsKDAgMCUgNjAlKScpfTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4NSUpJywgJ2hzbCgwIDAlIDIwJSknKX07XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAudGVybWluYWwtaGVhZGVyLWljb24ge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDUwJSknLCAnaHNsKDAgMCUgNTAlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRlcm1pbmFsLWhlYWRlci1jb21tYW5kIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAyMCUpJywgJ2hzbCgwIDAlIDgwJSknKX07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB9XG5cbiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgIH1cblxuICAgICAgI3h0ZXJtLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA4cHg7XG4gICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgcmlnaHQ6IDhweDtcbiAgICAgICAgYm90dG9tOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIHh0ZXJtLmpzIHN0eWxlcyAqL1xuICAgICAgLnh0ZXJtIHtcbiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgfVxuXG4gICAgICAueHRlcm0uZm9jdXMsXG4gICAgICAueHRlcm06Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgfVxuXG4gICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBsZWZ0OiAtOTk5OWVtO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IC01O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwMDAwMDAnKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzMzMzMzMycsICcjZmZmZmZmJyl9O1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICB9XG5cbiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwMDAwMDAnKX07XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC54dGVybSAueHRlcm0tc2NyZWVuIGNhbnZhcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAueHRlcm0gLnh0ZXJtLXNjcm9sbC1hcmVhIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IC05OTk5ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICB9XG5cbiAgICAgIC54dGVybSB7XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtLmVuYWJsZS1tb3VzZS1ldmVudHMge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG5cbiAgICAgIC54dGVybS54dGVybS1jdXJzb3ItcG9pbnRlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMge1xuICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtIC54dGVybS1hY2Nlc3NpYmlsaXR5LFxuICAgICAgLnh0ZXJtIC54dGVybS1tZXNzYWdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC05OTk5cHg7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAueHRlcm0tZGltIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuXG4gICAgICAueHRlcm0tdW5kZXJsaW5lIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIEN1c3RvbSBzY3JvbGxiYXIgZm9yIHh0ZXJtIHZpZXdwb3J0ICovXG4gICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk2JSknLCAnaHNsKDAgMCUgOCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4MCUpJywgJ2hzbCgwIDAlIDI1JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIH1cblxuICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNzAlKScsICdoc2woMCAwJSAzNSUpJyl9O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWwtcHJldmlld1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWwtaGVhZGVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXJtaW5hbC1oZWFkZXItaWNvblwiPiQ8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXJtaW5hbC1oZWFkZXItY29tbWFuZFwiPiR7dGhpcy5jb21tYW5kIHx8ICdXYWl0aW5nLi4uJ308L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBpZD1cInh0ZXJtLWNvbnRhaW5lclwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRlcm1pbmFsIHRoZW1lIGNvbG9ycyBiYXNlZCBvbiBicmlnaHQvZGFyayBtb2RlXG4gICAqL1xuICBwcml2YXRlIGdldFRlcm1pbmFsVGhlbWUoaXNCcmlnaHQ6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gaXNCcmlnaHRcbiAgICAgID8ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICcjZmZmZmZmJyxcbiAgICAgICAgICBmb3JlZ3JvdW5kOiAnIzMzMzMzMycsXG4gICAgICAgICAgY3Vyc29yOiAnIzMzMzMzMycsXG4gICAgICAgICAgY3Vyc29yQWNjZW50OiAnI2ZmZmZmZicsXG4gICAgICAgICAgc2VsZWN0aW9uQmFja2dyb3VuZDogJ3JnYmEoMCwgMCwgMCwgMC4yKScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICcjMDAwMDAwJyxcbiAgICAgICAgICBmb3JlZ3JvdW5kOiAnI2NjY2NjYycsXG4gICAgICAgICAgY3Vyc29yOiAnI2NjY2NjYycsXG4gICAgICAgICAgY3Vyc29yQWNjZW50OiAnIzAwMDAwMCcsXG4gICAgICAgICAgc2VsZWN0aW9uQmFja2dyb3VuZDogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKScsXG4gICAgICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlyc3RVcGRhdGVkKFxuICAgIF9jaGFuZ2VkUHJvcGVydGllczogTWFwPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgdW5rbm93bj5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCd4dGVybS1jb250YWluZXInKTtcbiAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuO1xuXG4gICAgLy8gR2V0IGN1cnJlbnQgdGhlbWUgZnJvbSBkb210b29sc1xuICAgIGNvbnN0IGRvbXRvb2xzSW5zdGFuY2UgPSBhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtcbiAgICBjb25zdCBpc0JyaWdodCA9IGRvbXRvb2xzSW5zdGFuY2UudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbjtcblxuICAgIC8vIExvYWQgeHRlcm0gZnJvbSBDRE5cbiAgICBjb25zdCBsaWJMb2FkZXIgPSBEZWVzU2VydmljZUxpYkxvYWRlci5nZXRJbnN0YW5jZSgpO1xuICAgIGNvbnN0IFt4dGVybUJ1bmRsZSwgZml0QWRkb25CdW5kbGVdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgbGliTG9hZGVyLmxvYWRYdGVybSgpLFxuICAgICAgbGliTG9hZGVyLmxvYWRYdGVybUZpdEFkZG9uKCksXG4gICAgXSk7XG5cbiAgICAvLyBDcmVhdGUgeHRlcm0gdGVybWluYWwgaW4gcmVhZC1vbmx5IG1vZGUgdXNpbmcgQ0ROLWxvYWRlZCBtb2R1bGVcbiAgICB0aGlzLnRlcm1pbmFsID0gbmV3IHh0ZXJtQnVuZGxlLlRlcm1pbmFsKHtcbiAgICAgIGNvbnZlcnRFb2w6IHRydWUsXG4gICAgICBjdXJzb3JCbGluazogZmFsc2UsXG4gICAgICBkaXNhYmxlU3RkaW46IHRydWUsXG4gICAgICBmb250U2l6ZTogMTIsXG4gICAgICBmb250RmFtaWx5OiBcIidTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2VcIixcbiAgICAgIHRoZW1lOiB0aGlzLmdldFRlcm1pbmFsVGhlbWUoaXNCcmlnaHQpLFxuICAgICAgc2Nyb2xsYmFjazogMTAwMCxcbiAgICB9KTtcblxuICAgIC8vIFN1YnNjcmliZSB0byB0aGVtZSBjaGFuZ2VzXG4gICAgdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uID0gZG9tdG9vbHNJbnN0YW5jZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSgoZ29CcmlnaHQ6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmICh0aGlzLnRlcm1pbmFsKSB7XG4gICAgICAgIHRoaXMudGVybWluYWwub3B0aW9ucy50aGVtZSA9IHRoaXMuZ2V0VGVybWluYWxUaGVtZShnb0JyaWdodCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmZpdEFkZG9uID0gbmV3IGZpdEFkZG9uQnVuZGxlLkZpdEFkZG9uKCk7XG4gICAgdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbik7XG4gICAgdGhpcy50ZXJtaW5hbC5vcGVuKGNvbnRhaW5lcik7XG4gICAgdGhpcy5maXRBZGRvbi5maXQoKTtcblxuICAgIC8vIFNldCB1cCByZXNpemUgb2JzZXJ2ZXIgdG8gcmVmaXQgdGVybWluYWxcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmZpdEFkZG9uKSB7XG4gICAgICAgIHRoaXMuZml0QWRkb24uZml0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGNvbnRhaW5lcik7XG5cbiAgICAvLyBXcml0ZSBhbnkgZXhpc3RpbmcgbGluZXNcbiAgICB0aGlzLndyaXRlTmV3TGluZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBNYXA8c3RyaW5nLCBhbnk+KSB7XG4gICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaW5lcycpKSB7XG4gICAgICB0aGlzLndyaXRlTmV3TGluZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHdyaXRlTmV3TGluZXMoKSB7XG4gICAgaWYgKCF0aGlzLnRlcm1pbmFsKSByZXR1cm47XG5cbiAgICAvLyBXcml0ZSBvbmx5IG5ldyBsaW5lcyBzaW5jZSBsYXN0IHVwZGF0ZVxuICAgIGNvbnN0IG5ld0xpbmVzID0gdGhpcy5saW5lcy5zbGljZSh0aGlzLmxhc3RMaW5lQ291bnQpO1xuICAgIGZvciAoY29uc3QgbGluZSBvZiBuZXdMaW5lcykge1xuICAgICAgdGhpcy50ZXJtaW5hbC53cml0ZWxuKGxpbmUpO1xuICAgIH1cbiAgICB0aGlzLmxhc3RMaW5lQ291bnQgPSB0aGlzLmxpbmVzLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy50ZXJtaW5hbCkge1xuICAgICAgdGhpcy50ZXJtaW5hbC5kaXNwb3NlKCk7XG4gICAgICB0aGlzLnRlcm1pbmFsID0gbnVsbDtcbiAgICB9XG4gICAgYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgbGluZSB0byB0aGUgb3V0cHV0XG4gICAqL1xuICBwdWJsaWMgYWRkTGluZShsaW5lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxpbmVzID0gWy4uLnRoaXMubGluZXMsIGxpbmVdO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGFsbCBvdXRwdXQgbGluZXNcbiAgICovXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLmxpbmVzID0gW107XG4gICAgdGhpcy5sYXN0TGluZUNvdW50ID0gMDtcbiAgICBpZiAodGhpcy50ZXJtaW5hbCkge1xuICAgICAgdGhpcy50ZXJtaW5hbC5jbGVhcigpO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7XG4gIERlZXNFbGVtZW50LFxuICBwcm9wZXJ0eSxcbiAgaHRtbCxcbiAgY3VzdG9tRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgY3NzLFxuICBjc3NNYW5hZ2VyLFxuICBzdGF0ZSxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuaW1wb3J0IHR5cGUgeyBJRXhlY3V0aW9uRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi8wMGdyb3VwLXJ1bnRpbWUvaW5kZXguanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcbmltcG9ydCB7IERlZXNDb250ZXh0bWVudSB9IGZyb20gJy4uLy4uL2RlZXMtY29udGV4dG1lbnUvZGVlcy1jb250ZXh0bWVudS5qcyc7XG5pbXBvcnQgdHlwZSB7IElSdW5Qcm9jZXNzRXZlbnREZXRhaWwsIElUZXJtaW5hbFByb2Nlc3NDb21wbGV0ZUV2ZW50RGV0YWlsIH0gZnJvbSAnLi4vZGVlcy13b3Jrc3BhY2UtdGVybWluYWwvaW50ZXJmYWNlcy5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtd29ya3NwYWNlLWJvdHRvbWJhcic6IERlZXNXb3Jrc3BhY2VCb3R0b21iYXI7XG4gIH1cbn1cblxuaW50ZXJmYWNlIElPdXRkYXRlZFBhY2thZ2Uge1xuICBuYW1lOiBzdHJpbmc7XG4gIGN1cnJlbnQ6IHN0cmluZztcbiAgd2FudGVkOiBzdHJpbmc7XG4gIGxhdGVzdDogc3RyaW5nO1xuICB0eXBlOiAnZGVwZW5kZW5jaWVzJyB8ICdkZXZEZXBlbmRlbmNpZXMnO1xufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyJylcbmV4cG9ydCBjbGFzcyBEZWVzV29ya3NwYWNlQm90dG9tYmFyIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICAvLyBJTlNUQU5DRVxuICBAcHJvcGVydHkoeyB0eXBlOiBPYmplY3QgfSlcbiAgYWNjZXNzb3IgZXhlY3V0aW9uRW52aXJvbm1lbnQ6IElFeGVjdXRpb25FbnZpcm9ubWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8vIFNjcmlwdCBydW5uZXIgc3RhdGVcbiAgQHN0YXRlKClcbiAgYWNjZXNzb3Igc2NyaXB0czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIC8vIFBhY2thZ2UgY2hlY2tlciBzdGF0ZVxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBwYWNrYWdlU3RhdHVzOiAnY2hlY2tpbmcnIHwgJ3VwLXRvLWRhdGUnIHwgJ3VwZGF0ZXMtYXZhaWxhYmxlJyB8ICdlcnJvcicgfCAnaWRsZScgPSAnaWRsZSc7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3Igb3V0ZGF0ZWRQYWNrYWdlczogSU91dGRhdGVkUGFja2FnZVtdID0gW107XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgaXNDaGVja2luZ1BhY2thZ2VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gVHJhY2sgaWYgd2UgaGF2ZSBhIHBlbmRpbmcgcGFja2FnZSB1cGRhdGUgdGhhdCBzaG91bGQgdHJpZ2dlciByZWZyZXNoXG4gIHByaXZhdGUgcGVuZGluZ1BhY2thZ2VVcGRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBCb3VuZCBoYW5kbGVyIGZvciBwcm9jZXNzLWNvbXBsZXRlIGV2ZW50c1xuICBwcml2YXRlIGhhbmRsZVByb2Nlc3NDb21wbGV0ZSA9IChlOiBDdXN0b21FdmVudDxJVGVybWluYWxQcm9jZXNzQ29tcGxldGVFdmVudERldGFpbD4pID0+IHtcbiAgICAvLyBJZiB3ZSBoYXZlIGEgcGVuZGluZyBwYWNrYWdlIHVwZGF0ZSBhbmQgYSBwcm9jZXNzIGNvbXBsZXRlZCwgcmVmcmVzaFxuICAgIGlmICh0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlKSB7XG4gICAgICB0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlID0gZmFsc2U7XG4gICAgICAvLyBTbWFsbCBkZWxheSB0byBsZXQgcG5wbS1sb2NrLnlhbWwgdXBkYXRlXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hlY2tQYWNrYWdlcygpLCA1MDApO1xuICAgIH1cbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC5ib3R0b20tYmFyIHtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NCUpJywgJ2hzbCgwIDAlIDYlKScpfTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4NSUpJywgJ2hzbCgwIDAlIDE1JSknKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA0MCUpJywgJ2hzbCgwIDAlIDYwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC53aWRnZXQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZzogMnB4IDZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLndpZGdldDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OCUpJywgJ2hzbCgwIDAlIDEyJSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMjAlKScsICdoc2woMCAwJSA4MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAud2lkZ2V0IGRlZXMtaWNvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAud2lkZ2V0LXNlcGFyYXRvciB7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDgwJSknLCAnaHNsKDAgMCUgMjAlKScpfTtcbiAgICAgICAgbWFyZ2luOiAwIDRweDtcbiAgICAgIH1cblxuICAgICAgLndpZGdldC5ydW5uaW5nIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDEwMCUgNDUlKScsICdoc2woMjEwIDEwMCUgNjAlKScpfTtcbiAgICAgIH1cblxuICAgICAgLndpZGdldC51cC10by1kYXRlIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMTQyIDcwJSAzNSUpJywgJ2hzbCgxNDIgNzAlIDUwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC53aWRnZXQudXBkYXRlcy1hdmFpbGFibGUge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgzOCA5MiUgNDUlKScsICdoc2woMzggOTIlIDU1JSknKX07XG4gICAgICB9XG5cbiAgICAgIC53aWRnZXQuZXJyb3Ige1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcwJSA1MCUpJywgJ2hzbCgwIDcwJSA2MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIHNwaW4ge1xuICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG4gICAgICB9XG5cbiAgICAgIC5zcGlubmluZyB7XG4gICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC5zcGFjZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLWJhclwiPlxuICAgICAgICA8IS0tIFNjcmlwdCBSdW5uZXIgV2lkZ2V0IC0tPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ3aWRnZXRcIlxuICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlU2NyaXB0Q2xpY2t9XG4gICAgICAgICAgdGl0bGU9XCJSdW4gc2NyaXB0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkZWVzLWljb25cbiAgICAgICAgICAgIC5pY29uPSR7J2x1Y2lkZTpwbGF5J31cbiAgICAgICAgICAgIGljb25TaXplPVwiMTJcIlxuICAgICAgICAgID48L2RlZXMtaWNvbj5cbiAgICAgICAgICA8c3Bhbj5TY3JpcHRzPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LXNlcGFyYXRvclwiPjwvZGl2PlxuXG4gICAgICAgIDwhLS0gUGFja2FnZSBDaGVja2VyIFdpZGdldCAtLT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwid2lkZ2V0ICR7dGhpcy5nZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKX1cIlxuICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlUGFja2FnZUNsaWNrfVxuICAgICAgICAgIHRpdGxlPVwiJHt0aGlzLmdldFBhY2thZ2VUb29sdGlwKCl9XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkZWVzLWljb25cbiAgICAgICAgICAgIC5pY29uPSR7dGhpcy5nZXRQYWNrYWdlSWNvbigpfVxuICAgICAgICAgICAgaWNvblNpemU9XCIxMlwiXG4gICAgICAgICAgICBjbGFzcz1cIiR7dGhpcy5pc0NoZWNraW5nUGFja2FnZXMgPyAnc3Bpbm5pbmcnIDogJyd9XCJcbiAgICAgICAgICA+PC9kZWVzLWljb24+XG4gICAgICAgICAgPHNwYW4+JHt0aGlzLmdldFBhY2thZ2VTdGF0dXNUZXh0KCl9PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2VyXCI+PC9kaXY+XG5cbiAgICAgICAgPCEtLSBGdXR1cmUgd2lkZ2V0cyBjYW4gYmUgYWRkZWQgaGVyZSAtLT5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgYXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAvLyBMaXN0ZW4gZm9yIHByb2Nlc3MtY29tcGxldGUgZXZlbnRzIHRvIHJlZnJlc2ggYWZ0ZXIgcGFja2FnZSB1cGRhdGVzXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Byb2Nlc3MtY29tcGxldGUnLCB0aGlzLmhhbmRsZVByb2Nlc3NDb21wbGV0ZSBhcyBFdmVudExpc3RlbmVyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwcm9jZXNzLWNvbXBsZXRlJywgdGhpcy5oYW5kbGVQcm9jZXNzQ29tcGxldGUgYXMgRXZlbnRMaXN0ZW5lcik7XG4gIH1cblxuICBhc3luYyBmaXJzdFVwZGF0ZWQoKSB7XG4gICAgYXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpO1xuICAgIGF3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogTWFwPHN0cmluZywgYW55Pikge1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2V4ZWN1dGlvbkVudmlyb25tZW50JykgJiYgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpO1xuICAgICAgYXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PSBTY3JpcHQgUnVubmVyID09PT09PT09PT1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRTY3JpcHRzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhY2thZ2VKc29uRXhpc3RzID0gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoJy9wYWNrYWdlLmpzb24nKTtcbiAgICAgIGlmICghcGFja2FnZUpzb25FeGlzdHMpIHtcbiAgICAgICAgdGhpcy5zY3JpcHRzID0ge307XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoJy9wYWNrYWdlLmpzb24nKTtcbiAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShjb250ZW50KTtcbiAgICAgIHRoaXMuc2NyaXB0cyA9IHBhY2thZ2VKc29uLnNjcmlwdHMgfHwge307XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIGxvYWQgc2NyaXB0cyBmcm9tIHBhY2thZ2UuanNvbjonLCBlcnJvcik7XG4gICAgICB0aGlzLnNjcmlwdHMgPSB7fTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVNjcmlwdENsaWNrKGU6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgY29uc3Qgc2NyaXB0TmFtZXMgPSBPYmplY3Qua2V5cyh0aGlzLnNjcmlwdHMpO1xuICAgIGlmIChzY3JpcHROYW1lcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZW51SXRlbXMgPSBzY3JpcHROYW1lcy5tYXAobmFtZSA9PiAoe1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIGljb25OYW1lOiAnbHVjaWRlOnRlcm1pbmFsJyBhcyBjb25zdCxcbiAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLnJ1blNjcmlwdChuYW1lKTtcbiAgICAgIH0sXG4gICAgfSkpO1xuXG4gICAgYXdhaXQgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGUsIG1lbnVJdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJ1blNjcmlwdChzY3JpcHROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpIHJldHVybjtcblxuICAgIC8vIEVtaXQgcnVuLXByb2Nlc3MgZXZlbnQgZm9yIHRoZSB3b3Jrc3BhY2UgdG8gY3JlYXRlIGEgdGVybWluYWwgdGFiXG4gICAgY29uc3QgZGV0YWlsOiBJUnVuUHJvY2Vzc0V2ZW50RGV0YWlsID0ge1xuICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICBsYWJlbDogc2NyaXB0TmFtZSxcbiAgICAgIGNvbW1hbmQ6ICdwbnBtJyxcbiAgICAgIGFyZ3M6IFsncnVuJywgc2NyaXB0TmFtZV0sXG4gICAgICBtZXRhZGF0YTogeyBzY3JpcHROYW1lIH0sXG4gICAgfTtcblxuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3J1bi1wcm9jZXNzJywge1xuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgZGV0YWlsLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT0gUGFja2FnZSBDaGVja2VyID09PT09PT09PT1cblxuICBwcml2YXRlIGFzeW5jIGNoZWNrUGFja2FnZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSB7XG4gICAgICB0aGlzLnBhY2thZ2VTdGF0dXMgPSAnaWRsZSc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhY2thZ2VKc29uRXhpc3RzID0gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoJy9wYWNrYWdlLmpzb24nKTtcbiAgICAgIGlmICghcGFja2FnZUpzb25FeGlzdHMpIHtcbiAgICAgICAgdGhpcy5wYWNrYWdlU3RhdHVzID0gJ2lkbGUnO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMucGFja2FnZVN0YXR1cyA9ICdjaGVja2luZyc7XG4gICAgICB0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcyA9IHRydWU7XG5cbiAgICAgIC8vIFJ1biBwbnBtIG91dGRhdGVkIC0tanNvbiB3aXRoIHRpbWVvdXRcbiAgICAgIGNvbnN0IHByb2Nlc3MgPSBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKCdwbnBtJywgWydvdXRkYXRlZCcsICctLWpzb24nXSk7XG5cbiAgICAgIGxldCBvdXRwdXQgPSAnJztcblxuICAgICAgLy8gQ29sbGVjdCBvdXRwdXQgYXN5bmNocm9ub3VzbHkgLSBkb24ndCBhd2FpdCwgc3RyZWFtIG1heSBub3QgY2xvc2UgaWYgbm8gb3V0cHV0XG4gICAgICBjb25zdCBvdXRwdXRSZWFkZXIgPSBwcm9jZXNzLm91dHB1dC5nZXRSZWFkZXIoKTtcbiAgICAgIGNvbnN0IHJlYWRPdXRwdXQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IG91dHB1dFJlYWRlci5yZWFkKCk7XG4gICAgICAgICAgICBpZiAoZG9uZSkgYnJlYWs7XG4gICAgICAgICAgICBvdXRwdXQgKz0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBJZ25vcmUgc3RyZWFtIGVycm9yc1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgLy8gU3RhcnQgcmVhZGluZyBidXQgZG9uJ3QgYXdhaXQgLSB3ZSdsbCB1c2Ugd2hhdGV2ZXIgd2UgaGF2ZSB3aGVuIHByb2Nlc3MgZXhpdHNcbiAgICAgIHJlYWRPdXRwdXQoKTtcblxuICAgICAgLy8gV2FpdCBmb3IgcHJvY2VzcyBleGl0IHdpdGggdGltZW91dCAoMTAgc2Vjb25kcylcbiAgICAgIGNvbnN0IGV4aXRDb2RlID0gYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgICAgcHJvY2Vzcy5leGl0LFxuICAgICAgICBuZXcgUHJvbWlzZTxudW1iZXI+KChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KCgpID0+IHJlc29sdmUoLTEpLCAxMDAwMCkpLFxuICAgICAgXSk7XG5cbiAgICAgIC8vIENhbmNlbCByZWFkZXIgd2hlbiBkb25lXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBvdXRwdXRSZWFkZXIuY2FuY2VsKCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gSWdub3JlIGNhbmNlbCBlcnJvcnNcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIHRpbWVvdXRcbiAgICAgIGlmIChleGl0Q29kZSA9PT0gLTEpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdQYWNrYWdlIGNoZWNrIHRpbWVkIG91dCcpO1xuICAgICAgICB0aGlzLnBhY2thZ2VTdGF0dXMgPSAnZXJyb3InO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIHBucG0gb3V0ZGF0ZWQgcmV0dXJucyBleGl0IGNvZGUgMSBpZiB0aGVyZSBhcmUgb3V0ZGF0ZWQgcGFja2FnZXNcbiAgICAgIGlmIChleGl0Q29kZSA9PT0gMCkge1xuICAgICAgICAvLyBObyBvdXRkYXRlZCBwYWNrYWdlc1xuICAgICAgICB0aGlzLnBhY2thZ2VTdGF0dXMgPSAndXAtdG8tZGF0ZSc7XG4gICAgICAgIHRoaXMub3V0ZGF0ZWRQYWNrYWdlcyA9IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUGFyc2Ugb3V0ZGF0ZWQgcGFja2FnZXNcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBvdXRkYXRlZERhdGEgPSBKU09OLnBhcnNlKG91dHB1dCk7XG4gICAgICAgICAgdGhpcy5vdXRkYXRlZFBhY2thZ2VzID0gdGhpcy5wYXJzZU91dGRhdGVkUGFja2FnZXMob3V0ZGF0ZWREYXRhKTtcbiAgICAgICAgICB0aGlzLnBhY2thZ2VTdGF0dXMgPSB0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoID4gMCA/ICd1cGRhdGVzLWF2YWlsYWJsZScgOiAndXAtdG8tZGF0ZSc7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElmIHBhcnNpbmcgZmFpbHMgYnV0IGV4aXQgY29kZSBpcyAxLCBhc3N1bWUgdGhlcmUgYXJlIHVwZGF0ZXNcbiAgICAgICAgICB0aGlzLnBhY2thZ2VTdGF0dXMgPSAndXBkYXRlcy1hdmFpbGFibGUnO1xuICAgICAgICAgIHRoaXMub3V0ZGF0ZWRQYWNrYWdlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIGNoZWNrIGZvciBwYWNrYWdlIHVwZGF0ZXM6JywgZXJyb3IpO1xuICAgICAgdGhpcy5wYWNrYWdlU3RhdHVzID0gJ2Vycm9yJztcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0NoZWNraW5nUGFja2FnZXMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlT3V0ZGF0ZWRQYWNrYWdlcyhkYXRhOiBhbnkpOiBJT3V0ZGF0ZWRQYWNrYWdlW10ge1xuICAgIGNvbnN0IHBhY2thZ2VzOiBJT3V0ZGF0ZWRQYWNrYWdlW10gPSBbXTtcblxuICAgIC8vIHBucG0gb3V0ZGF0ZWQgLS1qc29uIHJldHVybnMgYW4gb2JqZWN0IHdpdGggcGFja2FnZSBuYW1lcyBhcyBrZXlzXG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhICE9PSBudWxsKSB7XG4gICAgICBmb3IgKGNvbnN0IFtuYW1lLCBpbmZvXSBvZiBPYmplY3QuZW50cmllcyhkYXRhKSkge1xuICAgICAgICBjb25zdCBwa2dJbmZvID0gaW5mbyBhcyBhbnk7XG4gICAgICAgIHBhY2thZ2VzLnB1c2goe1xuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgY3VycmVudDogcGtnSW5mby5jdXJyZW50IHx8ICd1bmtub3duJyxcbiAgICAgICAgICB3YW50ZWQ6IHBrZ0luZm8ud2FudGVkIHx8IHBrZ0luZm8uY3VycmVudCB8fCAndW5rbm93bicsXG4gICAgICAgICAgbGF0ZXN0OiBwa2dJbmZvLmxhdGVzdCB8fCBwa2dJbmZvLndhbnRlZCB8fCAndW5rbm93bicsXG4gICAgICAgICAgdHlwZTogcGtnSW5mby5kZXBlbmRlbmN5VHlwZSA9PT0gJ2RldkRlcGVuZGVuY2llcycgPyAnZGV2RGVwZW5kZW5jaWVzJyA6ICdkZXBlbmRlbmNpZXMnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFja2FnZXM7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVBhY2thZ2VDbGljayhlOiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IG1lbnVJdGVtczogUGFyYW1ldGVyczx0eXBlb2YgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zPlsxXSA9IFtdO1xuXG4gICAgLy8gUmVmcmVzaCBvcHRpb24gLSBzaG93IG91dHB1dCBpbiB0ZXJtaW5hbFxuICAgIG1lbnVJdGVtcy5wdXNoKHtcbiAgICAgIG5hbWU6IHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzID8gJ0NoZWNraW5nLi4uJyA6ICdDaGVjayBmb3IgdXBkYXRlcycsXG4gICAgICBpY29uTmFtZTogJ2x1Y2lkZTpyZWZyZXNoQ3cnLFxuICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcykgcmV0dXJuO1xuXG4gICAgICAgIC8vIENyZWF0ZSB0ZXJtaW5hbCB0YWIgdG8gc2hvdyBwbnBtIG91dGRhdGVkIG91dHB1dFxuICAgICAgICBjb25zdCBkZXRhaWw6IElSdW5Qcm9jZXNzRXZlbnREZXRhaWwgPSB7XG4gICAgICAgICAgdHlwZTogJ3BhY2thZ2UtdXBkYXRlJyxcbiAgICAgICAgICBsYWJlbDogJ2NoZWNrIHBhY2thZ2VzJyxcbiAgICAgICAgICBjb21tYW5kOiAncG5wbScsXG4gICAgICAgICAgYXJnczogWydvdXRkYXRlZCddLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3J1bi1wcm9jZXNzJywge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgICAgZGV0YWlsLFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgLy8gQWxzbyByZWZyZXNoIHRoZSB3aWRnZXQgc3RhdHVzIHNpbGVudGx5IGFmdGVyIGEgZGVsYXlcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoZWNrUGFja2FnZXMoKSwgMzAwMCk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICBtZW51SXRlbXMucHVzaCh7IGRpdmlkZXI6IHRydWUgfSk7XG5cbiAgICAgIC8vIFNob3cgb3V0ZGF0ZWQgcGFja2FnZXMgKG1heCAxMClcbiAgICAgIGNvbnN0IGRpc3BsYXlQYWNrYWdlcyA9IHRoaXMub3V0ZGF0ZWRQYWNrYWdlcy5zbGljZSgwLCAxMCk7XG4gICAgICBmb3IgKGNvbnN0IHBrZyBvZiBkaXNwbGF5UGFja2FnZXMpIHtcbiAgICAgICAgbWVudUl0ZW1zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IGAke3BrZy5uYW1lfTogJHtwa2cuY3VycmVudH0gXHUyMTkyICR7cGtnLmxhdGVzdH1gLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnBhY2thZ2UnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgLy8gVXBkYXRlIHNpbmdsZSBwYWNrYWdlXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZVBhY2thZ2UocGtnLm5hbWUpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aCA+IDEwKSB7XG4gICAgICAgIG1lbnVJdGVtcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBgLi4uIGFuZCAke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGggLSAxMH0gbW9yZWAsXG4gICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6bW9yZUhvcml6b250YWwnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge30sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBtZW51SXRlbXMucHVzaCh7IGRpdmlkZXI6IHRydWUgfSk7XG5cbiAgICAgIG1lbnVJdGVtcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ1VwZGF0ZSBhbGwgcGFja2FnZXMnLFxuICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTphcnJvd1VwQ2lyY2xlJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVBbGxQYWNrYWdlcygpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXdhaXQgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGUsIG1lbnVJdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVBhY2thZ2UocGFja2FnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuXG4gICAgLy8gTWFyayB0aGF0IHdlIGhhdmUgYSBwZW5kaW5nIHVwZGF0ZSAtIHdpbGwgdHJpZ2dlciByZWZyZXNoIHdoZW4gY29tcGxldGVcbiAgICB0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlID0gdHJ1ZTtcblxuICAgIC8vIEVtaXQgcnVuLXByb2Nlc3MgZXZlbnQgZm9yIHRoZSB3b3Jrc3BhY2UgdG8gY3JlYXRlIGEgdGVybWluYWwgdGFiXG4gICAgY29uc3QgZGV0YWlsOiBJUnVuUHJvY2Vzc0V2ZW50RGV0YWlsID0ge1xuICAgICAgdHlwZTogJ3BhY2thZ2UtdXBkYXRlJyxcbiAgICAgIGxhYmVsOiBgdXBkYXRlICR7cGFja2FnZU5hbWV9YCxcbiAgICAgIGNvbW1hbmQ6ICdwbnBtJyxcbiAgICAgIGFyZ3M6IFsndXBkYXRlJywgJy0tbGF0ZXN0JywgcGFja2FnZU5hbWVdLFxuICAgICAgbWV0YWRhdGE6IHsgcGFja2FnZU5hbWUgfSxcbiAgICB9O1xuXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgncnVuLXByb2Nlc3MnLCB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICBkZXRhaWwsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVBbGxQYWNrYWdlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpIHJldHVybjtcblxuICAgIC8vIE1hcmsgdGhhdCB3ZSBoYXZlIGEgcGVuZGluZyB1cGRhdGUgLSB3aWxsIHRyaWdnZXIgcmVmcmVzaCB3aGVuIGNvbXBsZXRlXG4gICAgdGhpcy5wZW5kaW5nUGFja2FnZVVwZGF0ZSA9IHRydWU7XG5cbiAgICAvLyBFbWl0IHJ1bi1wcm9jZXNzIGV2ZW50IGZvciB0aGUgd29ya3NwYWNlIHRvIGNyZWF0ZSBhIHRlcm1pbmFsIHRhYlxuICAgIGNvbnN0IGRldGFpbDogSVJ1blByb2Nlc3NFdmVudERldGFpbCA9IHtcbiAgICAgIHR5cGU6ICdwYWNrYWdlLXVwZGF0ZScsXG4gICAgICBsYWJlbDogJ3VwZGF0ZSBhbGwnLFxuICAgICAgY29tbWFuZDogJ3BucG0nLFxuICAgICAgYXJnczogWyd1cGRhdGUnLCAnLS1sYXRlc3QnXSxcbiAgICB9O1xuXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgncnVuLXByb2Nlc3MnLCB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICBkZXRhaWwsXG4gICAgfSkpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PSBIZWxwZXIgTWV0aG9kcyA9PT09PT09PT09XG5cbiAgcHJpdmF0ZSBnZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpIHJldHVybiAnJztcbiAgICByZXR1cm4gdGhpcy5wYWNrYWdlU3RhdHVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYWNrYWdlSWNvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcykgcmV0dXJuICdsdWNpZGU6bG9hZGVyMic7XG5cbiAgICBzd2l0Y2ggKHRoaXMucGFja2FnZVN0YXR1cykge1xuICAgICAgY2FzZSAndXAtdG8tZGF0ZSc6XG4gICAgICAgIHJldHVybiAnbHVjaWRlOmNoZWNrQ2lyY2xlJztcbiAgICAgIGNhc2UgJ3VwZGF0ZXMtYXZhaWxhYmxlJzpcbiAgICAgICAgcmV0dXJuICdsdWNpZGU6YWxlcnRDaXJjbGUnO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICByZXR1cm4gJ2x1Y2lkZTp4Q2lyY2xlJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnbHVjaWRlOnBhY2thZ2UnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFja2FnZVN0YXR1c1RleHQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpIHJldHVybiAnQ2hlY2tpbmcuLi4nO1xuXG4gICAgc3dpdGNoICh0aGlzLnBhY2thZ2VTdGF0dXMpIHtcbiAgICAgIGNhc2UgJ3VwLXRvLWRhdGUnOlxuICAgICAgICByZXR1cm4gJ1VwIHRvIGRhdGUnO1xuICAgICAgY2FzZSAndXBkYXRlcy1hdmFpbGFibGUnOlxuICAgICAgICByZXR1cm4gYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gdXBkYXRlJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoICE9PSAxID8gJ3MnIDogJyd9YDtcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgcmV0dXJuICdDaGVjayBmYWlsZWQnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdQYWNrYWdlcyc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYWNrYWdlVG9vbHRpcCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcykgcmV0dXJuICdDaGVja2luZyBmb3IgcGFja2FnZSB1cGRhdGVzLi4uJztcblxuICAgIHN3aXRjaCAodGhpcy5wYWNrYWdlU3RhdHVzKSB7XG4gICAgICBjYXNlICd1cC10by1kYXRlJzpcbiAgICAgICAgcmV0dXJuICdBbGwgcGFja2FnZXMgYXJlIHVwIHRvIGRhdGUnO1xuICAgICAgY2FzZSAndXBkYXRlcy1hdmFpbGFibGUnOlxuICAgICAgICByZXR1cm4gYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gcGFja2FnZSB1cGRhdGUke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGggIT09IDEgPyAncycgOiAnJ30gYXZhaWxhYmxlYDtcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgcmV0dXJuICdGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXMuIENsaWNrIHRvIHJldHJ5Lic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ0NsaWNrIHRvIGNoZWNrIGZvciBwYWNrYWdlIHVwZGF0ZXMnO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT0gUHVibGljIE1ldGhvZHMgPT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBNYW51YWxseSB0cmlnZ2VyIGEgcGFja2FnZSBjaGVja1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlZnJlc2hQYWNrYWdlU3RhdHVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hbnVhbGx5IHJlbG9hZCBzY3JpcHRzIGZyb20gcGFja2FnZS5qc29uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVmcmVzaFNjcmlwdHMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpO1xuICB9XG59XG4iLCAiaW1wb3J0IHR5cGUgKiBhcyBtb25hY28gZnJvbSAnbW9uYWNvLWVkaXRvcic7XG5pbXBvcnQgdHlwZSB7IElFeGVjdXRpb25FbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uLzAwZ3JvdXAtcnVudGltZS9pbmRleC5qcyc7XG5cbi8vIE1vbmFjbyBUeXBlU2NyaXB0IEFQSSB0eXBlcyAocnVudGltZSBBUEkgc3RpbGwgZXhpc3RzLCB0eXBlcyBkZXByZWNhdGVkIGluIDAuNTUrKVxuaW50ZXJmYWNlIElFeHRyYUxpYkRpc3Bvc2FibGUge1xuICBkaXNwb3NlKCk6IHZvaWQ7XG59XG5cbmludGVyZmFjZSBJTW9uYWNvVHlwZVNjcmlwdEFQSSB7XG4gIHR5cGVzY3JpcHREZWZhdWx0czoge1xuICAgIHNldENvbXBpbGVyT3B0aW9ucyhvcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQ7XG4gICAgc2V0RGlhZ25vc3RpY3NPcHRpb25zKG9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZDtcbiAgICBhZGRFeHRyYUxpYihjb250ZW50OiBzdHJpbmcsIGZpbGVQYXRoPzogc3RyaW5nKTogSUV4dHJhTGliRGlzcG9zYWJsZTtcbiAgICBzZXRFYWdlck1vZGVsU3luYyh2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG4gIH07XG4gIFNjcmlwdFRhcmdldDogeyBFUzIwMjA6IG51bWJlciB9O1xuICBNb2R1bGVLaW5kOiB7IEVTTmV4dDogbnVtYmVyIH07XG4gIE1vZHVsZVJlc29sdXRpb25LaW5kOiB7IE5vZGVKczogbnVtYmVyOyBCdW5kbGVyPzogbnVtYmVyIH07XG59XG5cbi8qKlxuICogTWFuYWdlcyBUeXBlU2NyaXB0IEludGVsbGlTZW5zZSBieSBsb2FkaW5nIHR5cGUgZGVmaW5pdGlvbnNcbiAqIGZyb20gdGhlIHZpcnR1YWwgZmlsZXN5c3RlbSBpbnRvIE1vbmFjby5cbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVTY3JpcHRJbnRlbGxpU2Vuc2VNYW5hZ2VyIHtcbiAgcHJpdmF0ZSBsb2FkZWRMaWJzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcbiAgcHJpdmF0ZSBub3RGb3VuZFBhY2thZ2VzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTsgLy8gUGFja2FnZXMgY2hlY2tlZCBidXQgbm90IGZvdW5kXG4gIHByaXZhdGUgbW9uYWNvSW5zdGFuY2U6IHR5cGVvZiBtb25hY28gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBleGVjdXRpb25FbnZpcm9ubWVudDogSUV4ZWN1dGlvbkVudmlyb25tZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gQ2FjaGUgb2YgZmlsZSBjb250ZW50cyBmb3Igc3luY2hyb25vdXMgYWNjZXNzIGFuZCBtb2R1bGUgcmVzb2x1dGlvblxuICBwcml2YXRlIGZpbGVDYWNoZTogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKTtcblxuICAvLyBUcmFjayBleHRyYSBsaWJzIGFkZGVkIGZvciBjbGVhbnVwXG4gIHByaXZhdGUgYWRkZWRFeHRyYUxpYnM6IE1hcDxzdHJpbmcsIElFeHRyYUxpYkRpc3Bvc2FibGU+ID0gbmV3IE1hcCgpO1xuXG4gIC8qKlxuICAgKiBHZXQgVHlwZVNjcmlwdCBBUEkgd2l0aCBwcm9wZXIgdHlwaW5nIGZvciBNb25hY28gMC41NStcbiAgICovXG4gIHByaXZhdGUgZ2V0IHRzQXBpKCk6IElNb25hY29UeXBlU2NyaXB0QVBJIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLm1vbmFjb0luc3RhbmNlKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKHRoaXMubW9uYWNvSW5zdGFuY2UubGFuZ3VhZ2VzIGFzIGFueSkudHlwZXNjcmlwdCBhcyBJTW9uYWNvVHlwZVNjcmlwdEFQSTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHdpdGggTW9uYWNvIGFuZCBleGVjdXRpb24gZW52aXJvbm1lbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpbml0KFxuICAgIG1vbmFjb0luc3Q6IHR5cGVvZiBtb25hY28sXG4gICAgZW52OiBJRXhlY3V0aW9uRW52aXJvbm1lbnRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5tb25hY29JbnN0YW5jZSA9IG1vbmFjb0luc3Q7XG4gICAgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCA9IGVudjtcbiAgICB0aGlzLmNvbmZpZ3VyZUNvbXBpbGVyT3B0aW9ucygpO1xuICAgIC8vIExvYWQgYWxsIHByb2plY3QgVHlwZVNjcmlwdC9KYXZhU2NyaXB0IGZpbGVzIGludG8gTW9uYWNvIGZvciBjcm9zcy1maWxlIHJlc29sdXRpb25cbiAgICBhd2FpdCB0aGlzLmxvYWRBbGxQcm9qZWN0RmlsZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBsb2FkIGFsbCAudHMvLmpzIGZpbGVzIGZyb20gdGhlIHZpcnR1YWwgZmlsZXN5c3RlbSBpbnRvIE1vbmFjb1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkQWxsUHJvamVjdEZpbGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMubG9hZEZpbGVzRnJvbURpcmVjdG9yeSgnLycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IGxvYWQgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkRmlsZXNGcm9tRGlyZWN0b3J5KGRpclBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoZGlyUGF0aCk7XG5cbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICBjb25zdCBmdWxsUGF0aCA9IGRpclBhdGggPT09ICcvJyA/IGAvJHtlbnRyeS5uYW1lfWAgOiBgJHtkaXJQYXRofS8ke2VudHJ5Lm5hbWV9YDtcblxuICAgICAgICAvLyBTa2lwIG5vZGVfbW9kdWxlcyAtIHRvbyBsYXJnZSBhbmQgaGFuZGxlZCBzZXBhcmF0ZWx5IHZpYSBhZGRFeHRyYUxpYlxuICAgICAgICBpZiAoZW50cnkubmFtZSA9PT0gJ25vZGVfbW9kdWxlcycpIGNvbnRpbnVlO1xuXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSAnZGlyZWN0b3J5Jykge1xuICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEZpbGVzRnJvbURpcmVjdG9yeShmdWxsUGF0aCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZW50cnkudHlwZSA9PT0gJ2ZpbGUnKSB7XG4gICAgICAgICAgY29uc3QgZXh0ID0gZW50cnkubmFtZS5zcGxpdCgnLicpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIGlmIChleHQgPT09ICd0cycgfHwgZXh0ID09PSAndHN4JyB8fCBleHQgPT09ICdqcycgfHwgZXh0ID09PSAnanN4Jykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoZnVsbFBhdGgpO1xuICAgICAgICAgICAgICB0aGlzLmFkZEZpbGVNb2RlbChmdWxsUGF0aCwgY29udGVudCk7XG4gICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgLy8gSWdub3JlIGZpbGVzIHRoYXQgY2FuJ3QgYmUgcmVhZFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gRGlyZWN0b3J5IG1pZ2h0IG5vdCBleGlzdCBvciBub3QgYmUgcmVhZGFibGVcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZUNvbXBpbGVyT3B0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCB0cyA9IHRoaXMudHNBcGk7XG4gICAgaWYgKCF0cykgcmV0dXJuO1xuXG4gICAgdHMudHlwZXNjcmlwdERlZmF1bHRzLnNldENvbXBpbGVyT3B0aW9ucyh7XG4gICAgICB0YXJnZXQ6IHRzLlNjcmlwdFRhcmdldC5FUzIwMjAsXG4gICAgICBtb2R1bGU6IHRzLk1vZHVsZUtpbmQuRVNOZXh0LFxuICAgICAgLy8gVXNlIEJ1bmRsZXIgcmVzb2x1dGlvbiBpZiBhdmFpbGFibGUgKE1vbmFjbyAwLjQ1KyksIGZhbGxiYWNrIHRvIE5vZGVKc1xuICAgICAgbW9kdWxlUmVzb2x1dGlvbjogdHMuTW9kdWxlUmVzb2x1dGlvbktpbmQuQnVuZGxlciA/PyB0cy5Nb2R1bGVSZXNvbHV0aW9uS2luZC5Ob2RlSnMsXG4gICAgICBhbGxvd1N5bnRoZXRpY0RlZmF1bHRJbXBvcnRzOiB0cnVlLFxuICAgICAgZXNNb2R1bGVJbnRlcm9wOiB0cnVlLFxuICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgbm9FbWl0OiB0cnVlLFxuICAgICAgYWxsb3dKczogdHJ1ZSxcbiAgICAgIGNoZWNrSnM6IGZhbHNlLFxuICAgICAgYWxsb3dOb25Uc0V4dGVuc2lvbnM6IHRydWUsXG4gICAgICBsaWI6IFsnZXMyMDIwJywgJ2RvbScsICdkb20uaXRlcmFibGUnXSxcbiAgICAgIC8vIFNldCBiYXNlVXJsIHRvIHJvb3QgZm9yIHJlc29sdmluZyBhYnNvbHV0ZSBpbXBvcnRzXG4gICAgICBiYXNlVXJsOiAnLycsXG4gICAgICAvLyBBbGxvdyBpbXBvcnRpbmcgLnRzIGV4dGVuc2lvbnMgZGlyZWN0bHkgKHVzZWZ1bCBmb3Igc29tZSBzZXR1cHMpXG4gICAgICBhbGxvd0ltcG9ydGluZ1RzRXh0ZW5zaW9uczogdHJ1ZSxcbiAgICAgIC8vIFJlc29sdmUgSlNPTiBtb2R1bGVzXG4gICAgICByZXNvbHZlSnNvbk1vZHVsZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRzLnR5cGVzY3JpcHREZWZhdWx0cy5zZXREaWFnbm9zdGljc09wdGlvbnMoe1xuICAgICAgbm9TZW1hbnRpY1ZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgbm9TeW50YXhWYWxpZGF0aW9uOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIC8vIEVuYWJsZSBlYWdlciBtb2RlbCBzeW5jIHNvIFR5cGVTY3JpcHQgaW1tZWRpYXRlbHkgcHJvY2Vzc2VzIGFsbCBtb2RlbHNcbiAgICAvLyBUaGlzIGlzIGNyaXRpY2FsIGZvciBjcm9zcy1maWxlIEludGVsbGlTZW5zZSB0byB3b3JrIHdpdGhvdXQgcmVxdWlyaW5nIGVkaXRzXG4gICAgdHMudHlwZXNjcmlwdERlZmF1bHRzLnNldEVhZ2VyTW9kZWxTeW5jKHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGltcG9ydHMgZnJvbSBUeXBlU2NyaXB0L0phdmFTY3JpcHQgY29udGVudFxuICAgKi9cbiAgcHVibGljIHBhcnNlSW1wb3J0cyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgaW1wb3J0czogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIE1hdGNoIEVTNiBpbXBvcnRzOiBpbXBvcnQgeyB4IH0gZnJvbSAncGFja2FnZScgb3IgaW1wb3J0ICdwYWNrYWdlJ1xuICAgIGNvbnN0IGltcG9ydFJlZ2V4ID0gL2ltcG9ydFxccysoPzpbXFx3Knt9XFxzLF0rZnJvbVxccyspP1snXCJdKFteJ1wiXSspWydcIl0vZztcbiAgICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGw7XG5cbiAgICB3aGlsZSAoKG1hdGNoID0gaW1wb3J0UmVnZXguZXhlYyhjb250ZW50KSkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGltcG9ydFBhdGggPSBtYXRjaFsxXTtcbiAgICAgIC8vIE9ubHkgcHJvY2VzcyBub24tcmVsYXRpdmUgaW1wb3J0cyAobnBtIHBhY2thZ2VzKVxuICAgICAgaWYgKCFpbXBvcnRQYXRoLnN0YXJ0c1dpdGgoJy4nKSAmJiAhaW1wb3J0UGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgY29uc3QgcGFja2FnZU5hbWUgPSBpbXBvcnRQYXRoLnN0YXJ0c1dpdGgoJ0AnKVxuICAgICAgICAgID8gaW1wb3J0UGF0aC5zcGxpdCgnLycpLnNsaWNlKDAsIDIpLmpvaW4oJy8nKSAvLyBAc2NvcGUvcGFja2FnZVxuICAgICAgICAgIDogaW1wb3J0UGF0aC5zcGxpdCgnLycpWzBdOyAvLyBwYWNrYWdlXG4gICAgICAgIGltcG9ydHMucHVzaChwYWNrYWdlTmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWF0Y2ggcmVxdWlyZSBjYWxsczogcmVxdWlyZSgncGFja2FnZScpXG4gICAgY29uc3QgcmVxdWlyZVJlZ2V4ID0gL3JlcXVpcmVcXHMqXFwoXFxzKlsnXCJdKFteJ1wiXSspWydcIl1cXHMqXFwpL2c7XG4gICAgd2hpbGUgKChtYXRjaCA9IHJlcXVpcmVSZWdleC5leGVjKGNvbnRlbnQpKSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgaW1wb3J0UGF0aCA9IG1hdGNoWzFdO1xuICAgICAgaWYgKCFpbXBvcnRQYXRoLnN0YXJ0c1dpdGgoJy4nKSAmJiAhaW1wb3J0UGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgY29uc3QgcGFja2FnZU5hbWUgPSBpbXBvcnRQYXRoLnN0YXJ0c1dpdGgoJ0AnKVxuICAgICAgICAgID8gaW1wb3J0UGF0aC5zcGxpdCgnLycpLnNsaWNlKDAsIDIpLmpvaW4oJy8nKVxuICAgICAgICAgIDogaW1wb3J0UGF0aC5zcGxpdCgnLycpWzBdO1xuICAgICAgICBpbXBvcnRzLnB1c2gocGFja2FnZU5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbLi4ubmV3IFNldChpbXBvcnRzKV07XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0eXBlIGRlZmluaXRpb25zIGZvciBhIHBhY2thZ2UgZnJvbSB2aXJ0dWFsIEZTXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9hZFR5cGVzRm9yUGFja2FnZShwYWNrYWdlTmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLm1vbmFjb0luc3RhbmNlIHx8ICF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSByZXR1cm47XG4gICAgaWYgKHRoaXMubG9hZGVkTGlicy5oYXMocGFja2FnZU5hbWUpKSByZXR1cm47XG4gICAgaWYgKHRoaXMubm90Rm91bmRQYWNrYWdlcy5oYXMocGFja2FnZU5hbWUpKSByZXR1cm47IC8vIFNraXAgcGFja2FnZXMgd2UgYWxyZWFkeSBjaGVja2VkXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHR5cGVzTG9hZGVkID0gYXdhaXQgdGhpcy50cnlMb2FkUGFja2FnZVR5cGVzKHBhY2thZ2VOYW1lKTtcbiAgICAgIGlmICghdHlwZXNMb2FkZWQpIHtcbiAgICAgICAgdHlwZXNMb2FkZWQgPSBhd2FpdCB0aGlzLnRyeUxvYWRBdFR5cGVzUGFja2FnZShwYWNrYWdlTmFtZSk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZXNMb2FkZWQpIHtcbiAgICAgICAgdGhpcy5sb2FkZWRMaWJzLmFkZChwYWNrYWdlTmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBDYWNoZSB0aGF0IHRoaXMgcGFja2FnZSB3YXNuJ3QgZm91bmQgdG8gYXZvaWQgcmVwZWF0ZWQgZmlsZXN5c3RlbSBjaGVja3NcbiAgICAgICAgdGhpcy5ub3RGb3VuZFBhY2thZ2VzLmFkZChwYWNrYWdlTmFtZSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGxvYWQgdHlwZXMgZm9yICR7cGFja2FnZU5hbWV9OmAsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHRyeUxvYWRQYWNrYWdlVHlwZXMocGFja2FnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHRzID0gdGhpcy50c0FwaTtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQgfHwgIXRzKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBiYXNlUGF0aCA9IGAvbm9kZV9tb2R1bGVzLyR7cGFja2FnZU5hbWV9YDtcblxuICAgIHRyeSB7XG4gICAgICAvLyBDaGVjayBwYWNrYWdlLmpzb24gZm9yIHR5cGVzIGZpZWxkXG4gICAgICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBgJHtiYXNlUGF0aH0vcGFja2FnZS5qc29uYDtcbiAgICAgIGNvbnN0IHBhY2thZ2VKc29uRXhpc3RzID0gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMocGFja2FnZUpzb25QYXRoKTtcblxuICAgICAgaWYgKHBhY2thZ2VKc29uRXhpc3RzKSB7XG4gICAgICAgIGNvbnN0IHBhY2thZ2VKc29uQ29udGVudCA9IGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUocGFja2FnZUpzb25QYXRoKTtcbiAgICAgICAgY29uc3QgcGFja2FnZUpzb24gPSBKU09OLnBhcnNlKHBhY2thZ2VKc29uQ29udGVudCk7XG5cbiAgICAgICAgLy8gQWRkIHBhY2thZ2UuanNvbiB0byBNb25hY28gc28gVHlwZVNjcmlwdCBjYW4gcmVzb2x2ZSB0aGUgdHlwZXMgZmllbGRcbiAgICAgICAgdHMudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHBhY2thZ2VKc29uQ29udGVudCwgYGZpbGU6Ly8ke3BhY2thZ2VKc29uUGF0aH1gKTtcblxuICAgICAgICBjb25zdCB0eXBlc1BhdGggPSBwYWNrYWdlSnNvbi50eXBlcyB8fCBwYWNrYWdlSnNvbi50eXBpbmdzO1xuICAgICAgICBpZiAodHlwZXNQYXRoKSB7XG4gICAgICAgICAgLy8gTG9hZCBhbGwgLmQudHMgZmlsZXMgZnJvbSB0aGUgcGFja2FnZSwgbm90IGp1c3QgdGhlIGVudHJ5IHBvaW50XG4gICAgICAgICAgLy8gTW9kZXJuIHBhY2thZ2VzIG9mdGVuIGhhdmUgbXVsdGlwbGUgZGVjbGFyYXRpb24gZmlsZXMgd2l0aCBpbXBvcnRzXG4gICAgICAgICAgYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShiYXNlUGF0aCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVHJ5IGNvbW1vbiBsb2NhdGlvbnMgLSBpZiBhbnkgZXhpc3QsIGxvYWQgYWxsIC5kLnRzIGZpbGVzXG4gICAgICBjb25zdCBjb21tb25QYXRocyA9IFtcbiAgICAgICAgYCR7YmFzZVBhdGh9L2luZGV4LmQudHNgLFxuICAgICAgICBgJHtiYXNlUGF0aH0vZGlzdC9pbmRleC5kLnRzYCxcbiAgICAgICAgYCR7YmFzZVBhdGh9L2xpYi9pbmRleC5kLnRzYCxcbiAgICAgIF07XG5cbiAgICAgIGZvciAoY29uc3QgZHRzUGF0aCBvZiBjb21tb25QYXRocykge1xuICAgICAgICBpZiAoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoZHRzUGF0aCkpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGJhc2VQYXRoKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIHBhY2thZ2UgdHlwZXMgZm9yICR7cGFja2FnZU5hbWV9OmAsIGVycm9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVjdXJzaXZlbHkgbG9hZCBhbGwgLmQudHMgZmlsZXMgZnJvbSBhIHBhY2thZ2UgZGlyZWN0b3J5XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGJhc2VQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0cyA9IHRoaXMudHNBcGk7XG4gICAgaWYgKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50IHx8ICF0cykgcmV0dXJuO1xuXG4gICAgYXdhaXQgdGhpcy5sb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KGJhc2VQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBsb2FkIC5kLnRzIGZpbGVzIGZyb20gYSBkaXJlY3RvcnlcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgbG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeShkaXJQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0cyA9IHRoaXMudHNBcGk7XG4gICAgaWYgKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50IHx8ICF0cykgcmV0dXJuO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoZGlyUGF0aCk7XG5cbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICBjb25zdCBmdWxsUGF0aCA9IGRpclBhdGggPT09ICcvJyA/IGAvJHtlbnRyeS5uYW1lfWAgOiBgJHtkaXJQYXRofS8ke2VudHJ5Lm5hbWV9YDtcblxuICAgICAgICAvLyBTa2lwIG5lc3RlZCBub2RlX21vZHVsZXMgKHNob3VsZG4ndCBoYXBwZW4gaW4gYSBwYWNrYWdlIGJ1dCBiZSBzYWZlKVxuICAgICAgICBpZiAoZW50cnkubmFtZSA9PT0gJ25vZGVfbW9kdWxlcycpIGNvbnRpbnVlO1xuXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSAnZGlyZWN0b3J5Jykge1xuICAgICAgICAgIGF3YWl0IHRoaXMubG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeShmdWxsUGF0aCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZW50cnkudHlwZSA9PT0gJ2ZpbGUnICYmIGVudHJ5Lm5hbWUuZW5kc1dpdGgoJy5kLnRzJykpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoZnVsbFBhdGgpO1xuICAgICAgICAgICAgdHMudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKGNvbnRlbnQsIGBmaWxlOi8vJHtmdWxsUGF0aH1gKTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBmaWxlcyB0aGF0IGNhbid0IGJlIHJlYWRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIERpcmVjdG9yeSBtaWdodCBub3QgYmUgcmVhZGFibGVcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHRyeUxvYWRBdFR5cGVzUGFja2FnZShwYWNrYWdlTmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBIYW5kbGUgc2NvcGVkIHBhY2thZ2VzOiBAc2NvcGUvcGFja2FnZSAtPiBAdHlwZXMvc2NvcGVfX3BhY2thZ2VcbiAgICBjb25zdCB0eXBlc1BhY2thZ2VOYW1lID0gcGFja2FnZU5hbWUuc3RhcnRzV2l0aCgnQCcpXG4gICAgICA/IGBAdHlwZXMvJHtwYWNrYWdlTmFtZS5zbGljZSgxKS5yZXBsYWNlKCcvJywgJ19fJyl9YFxuICAgICAgOiBgQHR5cGVzLyR7cGFja2FnZU5hbWV9YDtcblxuICAgIGNvbnN0IGJhc2VQYXRoID0gYC9ub2RlX21vZHVsZXMvJHt0eXBlc1BhY2thZ2VOYW1lfWA7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgaW5kZXhQYXRoID0gYCR7YmFzZVBhdGh9L2luZGV4LmQudHNgO1xuICAgICAgaWYgKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKGluZGV4UGF0aCkpIHtcbiAgICAgICAgLy8gTG9hZCBhbGwgLmQudHMgZmlsZXMgZnJvbSB0aGUgQHR5cGVzIHBhY2thZ2VcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShiYXNlUGF0aCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGNvbnRlbnQgY2hhbmdlIGFuZCBsb2FkIHR5cGVzIGZvciBhbnkgbmV3IGltcG9ydHNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBwcm9jZXNzQ29udGVudENoYW5nZShjb250ZW50OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbXBvcnRzID0gdGhpcy5wYXJzZUltcG9ydHMoY29udGVudCk7XG5cbiAgICBmb3IgKGNvbnN0IHBhY2thZ2VOYW1lIG9mIGltcG9ydHMpIHtcbiAgICAgIGlmICghdGhpcy5sb2FkZWRMaWJzLmhhcyhwYWNrYWdlTmFtZSkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKHBhY2thZ2VOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2NhbiBub2RlX21vZHVsZXMgZm9yIHBhY2thZ2VzIGFuZCBsb2FkIHR5cGVzIGZvciBhbnkgbm90IHlldCBsb2FkZWQuXG4gICAqIENhbGxlZCB3aGVuIG5vZGVfbW9kdWxlcyBjaGFuZ2VzIChlLmcuLCBhZnRlciBwbnBtIGluc3RhbGwpLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuXG4gICAgLy8gQ2xlYXIgbm90LWZvdW5kIGNhY2hlIHNvIG5ld2x5IGluc3RhbGxlZCBwYWNrYWdlcyBjYW4gYmUgZGV0ZWN0ZWRcbiAgICB0aGlzLm5vdEZvdW5kUGFja2FnZXMuY2xlYXIoKTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBDaGVjayBpZiBub2RlX21vZHVsZXMgZXhpc3RzXG4gICAgICBpZiAoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCcvbm9kZV9tb2R1bGVzJykpIHJldHVybjtcblxuICAgICAgLy8gUmVhZCB0b3AtbGV2ZWwgbm9kZV9tb2R1bGVzXG4gICAgICBjb25zdCBlbnRyaWVzID0gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKCcvbm9kZV9tb2R1bGVzJyk7XG5cbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICBpZiAoZW50cnkudHlwZSAhPT0gJ2RpcmVjdG9yeScpIGNvbnRpbnVlO1xuXG4gICAgICAgIGlmIChlbnRyeS5uYW1lLnN0YXJ0c1dpdGgoJ0AnKSkge1xuICAgICAgICAgIC8vIFNjb3BlZCBwYWNrYWdlIC0gcmVhZCBzdWJkaXJlY3Rvcmllc1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzY29wZWRQYXRoID0gYC9ub2RlX21vZHVsZXMvJHtlbnRyeS5uYW1lfWA7XG4gICAgICAgICAgICBjb25zdCBzY29wZWRFbnRyaWVzID0gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKHNjb3BlZFBhdGgpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBzY29wZWRFbnRyeSBvZiBzY29wZWRFbnRyaWVzKSB7XG4gICAgICAgICAgICAgIGlmIChzY29wZWRFbnRyeS50eXBlID09PSAnZGlyZWN0b3J5Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gYCR7ZW50cnkubmFtZX0vJHtzY29wZWRFbnRyeS5uYW1lfWA7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKHBhY2thZ2VOYW1lKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gU2tpcCBpZiB3ZSBjYW4ndCByZWFkIHNjb3BlZCBkaXJlY3RvcnlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5Lm5hbWUuc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgICAgLy8gUmVndWxhciBwYWNrYWdlXG4gICAgICAgICAgYXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKGVudHJ5Lm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIHNjYW4gbm9kZV9tb2R1bGVzOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZmlsZSBtb2RlbCB0byBNb25hY28gZm9yIGNyb3NzLWZpbGUgSW50ZWxsaVNlbnNlXG4gICAqIEFsc28gcmVnaXN0ZXJzIHRoZSBmaWxlIHdpdGggVHlwZVNjcmlwdCB2aWEgYWRkRXh0cmFMaWIgZm9yIG1vZHVsZSByZXNvbHV0aW9uXG4gICAqL1xuICBwdWJsaWMgYWRkRmlsZU1vZGVsKHBhdGg6IHN0cmluZywgY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1vbmFjb0luc3RhbmNlKSByZXR1cm47XG5cbiAgICAvLyBDYWNoZSB0aGUgY29udGVudCBmb3Igc3luYyBhY2Nlc3NcbiAgICB0aGlzLmZpbGVDYWNoZS5zZXQocGF0aCwgY29udGVudCk7XG5cbiAgICAvLyBDcmVhdGUvdXBkYXRlIHRoZSBlZGl0b3IgbW9kZWxcbiAgICBjb25zdCB1cmkgPSB0aGlzLm1vbmFjb0luc3RhbmNlLlVyaS5wYXJzZShgZmlsZTovLyR7cGF0aH1gKTtcbiAgICBjb25zdCBleGlzdGluZ01vZGVsID0gdGhpcy5tb25hY29JbnN0YW5jZS5lZGl0b3IuZ2V0TW9kZWwodXJpKTtcblxuICAgIGlmIChleGlzdGluZ01vZGVsKSB7XG4gICAgICAvLyBPbmx5IHVwZGF0ZSBpZiBjb250ZW50IGFjdHVhbGx5IGNoYW5nZWQgKHByZXZlbnRzIGN1cnNvciByZXNldClcbiAgICAgIGlmIChleGlzdGluZ01vZGVsLmdldFZhbHVlKCkgIT09IGNvbnRlbnQpIHtcbiAgICAgICAgZXhpc3RpbmdNb2RlbC5zZXRWYWx1ZShjb250ZW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmdldExhbmd1YWdlRnJvbVBhdGgocGF0aCk7XG4gICAgICB0aGlzLm1vbmFjb0luc3RhbmNlLmVkaXRvci5jcmVhdGVNb2RlbChjb250ZW50LCBsYW5ndWFnZSwgdXJpKTtcbiAgICB9XG5cbiAgICAvLyBBbHNvIGFkZCBhcyBleHRyYSBsaWIgZm9yIFR5cGVTY3JpcHQgbW9kdWxlIHJlc29sdXRpb25cbiAgICAvLyBUaGlzIGlzIGNyaXRpY2FsIC0gVHlwZVNjcmlwdCdzIHJlc29sdmVyIHVzZXMgZXh0cmEgbGlicywgbm90IGVkaXRvciBtb2RlbHNcbiAgICB0aGlzLmFkZEZpbGVBc0V4dHJhTGliKHBhdGgsIGNvbnRlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGZpbGUgYXMgYW4gZXh0cmEgbGliIGZvciBUeXBlU2NyaXB0IG1vZHVsZSByZXNvbHV0aW9uLlxuICAgKiBUaGlzIGVuYWJsZXMgVHlwZVNjcmlwdCB0byByZXNvbHZlIGltcG9ydHMgdG8gcHJvamVjdCBmaWxlcy5cbiAgICovXG4gIHByaXZhdGUgYWRkRmlsZUFzRXh0cmFMaWIocGF0aDogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB0cyA9IHRoaXMudHNBcGk7XG4gICAgaWYgKCF0cykgcmV0dXJuO1xuXG4gICAgLy8gRGlzcG9zZSBleGlzdGluZyBsaWIgaWYgcHJlc2VudCAoZm9yIHVwZGF0ZXMpXG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmFkZGVkRXh0cmFMaWJzLmdldChwYXRoKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIGV4aXN0aW5nLmRpc3Bvc2UoKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIGZpbGUgd2l0aCBpdHMgYWN0dWFsIHBhdGhcbiAgICBjb25zdCBmaWxlUGF0aCA9IGBmaWxlOi8vJHtwYXRofWA7XG4gICAgY29uc3QgZGlzcG9zYWJsZSA9IHRzLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihjb250ZW50LCBmaWxlUGF0aCk7XG4gICAgdGhpcy5hZGRlZEV4dHJhTGlicy5zZXQocGF0aCwgZGlzcG9zYWJsZSk7XG5cbiAgICAvLyBGb3IgLnRzIGZpbGVzLCBhbHNvIGFkZCB3aXRoIC5qcyBleHRlbnNpb24gdG8gaGFuZGxlIEVTTSBpbXBvcnRzXG4gICAgLy8gKGUuZy4sIGltcG9ydCBmcm9tICcuL3V0aWxzLmpzJyBzaG91bGQgcmVzb2x2ZSB0byAuL3V0aWxzLnRzKVxuICAgIGlmIChwYXRoLmVuZHNXaXRoKCcudHMnKSAmJiAhcGF0aC5lbmRzV2l0aCgnLmQudHMnKSkge1xuICAgICAgY29uc3QganNQYXRoID0gcGF0aC5yZXBsYWNlKC9cXC50cyQvLCAnLmpzJyk7XG4gICAgICBjb25zdCBqc0ZpbGVQYXRoID0gYGZpbGU6Ly8ke2pzUGF0aH1gO1xuICAgICAgY29uc3QganNEaXNwb3NhYmxlID0gdHMudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKGNvbnRlbnQsIGpzRmlsZVBhdGgpO1xuICAgICAgdGhpcy5hZGRlZEV4dHJhTGlicy5zZXQoanNQYXRoLCBqc0Rpc3Bvc2FibGUpO1xuICAgICAgdGhpcy5maWxlQ2FjaGUuc2V0KGpzUGF0aCwgY29udGVudCk7XG4gICAgfSBlbHNlIGlmIChwYXRoLmVuZHNXaXRoKCcudHN4JykpIHtcbiAgICAgIGNvbnN0IGpzeFBhdGggPSBwYXRoLnJlcGxhY2UoL1xcLnRzeCQvLCAnLmpzeCcpO1xuICAgICAgY29uc3QganN4RmlsZVBhdGggPSBgZmlsZTovLyR7anN4UGF0aH1gO1xuICAgICAgY29uc3QganN4RGlzcG9zYWJsZSA9IHRzLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihjb250ZW50LCBqc3hGaWxlUGF0aCk7XG4gICAgICB0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChqc3hQYXRoLCBqc3hEaXNwb3NhYmxlKTtcbiAgICAgIHRoaXMuZmlsZUNhY2hlLnNldChqc3hQYXRoLCBjb250ZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNhY2hlZCBmaWxlIGNvbnRlbnQgZm9yIHN5bmNocm9ub3VzIGFjY2Vzc1xuICAgKi9cbiAgcHVibGljIGdldEZpbGVDb250ZW50KHBhdGg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNhY2hlLmdldChwYXRoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFuZ3VhZ2VGcm9tUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGV4dCA9IHBhdGguc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcbiAgICBzd2l0Y2ggKGV4dCkge1xuICAgICAgY2FzZSAndHMnOlxuICAgICAgY2FzZSAndHN4JzpcbiAgICAgICAgcmV0dXJuICd0eXBlc2NyaXB0JztcbiAgICAgIGNhc2UgJ2pzJzpcbiAgICAgIGNhc2UgJ2pzeCc6XG4gICAgICAgIHJldHVybiAnamF2YXNjcmlwdCc7XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgcmV0dXJuICdqc29uJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAncGxhaW50ZXh0JztcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgcHJvcGVydHksXG4gIGh0bWwsXG4gIGN1c3RvbUVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAqIGFzIGRvbXRvb2xzIGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMnO1xuaW1wb3J0IHsgTU9OQUNPX1ZFUlNJT04gfSBmcm9tICcuLi9kZWVzLXdvcmtzcGFjZS1tb25hY28vdmVyc2lvbi5qcyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcbmltcG9ydCAnLi4vLi4vMDBncm91cC1idXR0b24vZGVlcy1idXR0b24vZGVlcy1idXR0b24uanMnO1xuXG5pbXBvcnQgdHlwZSAqIGFzIG1vbmFjbyBmcm9tICdtb25hY28tZWRpdG9yJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3InOiBEZWVzV29ya3NwYWNlRGlmZkVkaXRvcjtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3InKVxuZXhwb3J0IGNsYXNzIERlZXNXb3Jrc3BhY2VEaWZmRWRpdG9yIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICAvLyBERU1PXG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9ICgpID0+IGh0bWxgXG4gICAgPGRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yXG4gICAgICAub3JpZ2luYWxDb250ZW50PSR7J2Z1bmN0aW9uIGhlbGxvKCkge1xcbiAgY29uc29sZS5sb2coXCJIZWxsb1wiKTtcXG59J31cbiAgICAgIC5tb2RpZmllZENvbnRlbnQ9JHsnZnVuY3Rpb24gaGVsbG8oKSB7XFxuICBjb25zb2xlLmxvZyhcIkhlbGxvIFdvcmxkIVwiKTtcXG4gIHJldHVybiB0cnVlO1xcbn0nfVxuICAgICAgLmxhbmd1YWdlPSR7J3R5cGVzY3JpcHQnfVxuICAgICAgLmZpbGVQYXRoPSR7Jy9kZW1vL2V4YW1wbGUudHMnfVxuICAgID48L2RlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yPlxuICBgO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdXb3Jrc3BhY2UnO1xuXG4gIC8vIElOU1RBTkNFXG4gIHB1YmxpYyBkaWZmRWRpdG9yRGVmZXJyZWQgPSBkb210b29scy5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcjxtb25hY28uZWRpdG9yLklTdGFuZGFsb25lRGlmZkVkaXRvcj4oKTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3Igb3JpZ2luYWxDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgbW9kaWZpZWRDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3Igb3JpZ2luYWxMYWJlbDogc3RyaW5nID0gJ0Rpc2sgVmVyc2lvbic7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIG1vZGlmaWVkTGFiZWw6IHN0cmluZyA9ICdMb2NhbCBWZXJzaW9uJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgbGFuZ3VhZ2U6IHN0cmluZyA9ICd0eXBlc2NyaXB0JztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgZmlsZVBhdGg6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgZGlmZkVkaXRvcjogbW9uYWNvLmVkaXRvci5JU3RhbmRhbG9uZURpZmZFZGl0b3IgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBtb25hY29UaGVtZVN1YnNjcmlwdGlvbjogZG9tdG9vbHMucGx1Z2lucy5zbWFydHJ4LnJ4anMuU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgb3JpZ2luYWxNb2RlbDogbW9uYWNvLmVkaXRvci5JVGV4dE1vZGVsIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbW9kaWZpZWRNb2RlbDogbW9uYWNvLmVkaXRvci5JVGV4dE1vZGVsIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBkb210b29scy5Eb21Ub29scy5zZXR1cERvbVRvb2xzKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAqIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cblxuICAgICAgLmRpZmYtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5kaWZmLXRvb2xiYXIge1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTYlKScsICdoc2woMCAwJSAxMiUpJyl9O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg1JSknLCAnaHNsKDAgMCUgMjAlKScpfTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC5kaWZmLWluZm8ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAzMCUpJywgJ2hzbCgwIDAlIDgwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5kaWZmLWZpbGVuYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAyMCUpJywgJ2hzbCgwIDAlIDkwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5kaWZmLWxhYmVscyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA1MCUpJywgJ2hzbCgwIDAlIDYwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5kaWZmLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLmRpZmYtY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5uYXYtYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBmaWxlTmFtZSA9IHRoaXMuZmlsZVBhdGguc3BsaXQoJy8nKS5wb3AoKSB8fCAnZmlsZSc7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJkaWZmLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRpZmYtdG9vbGJhclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaWZmLWluZm9cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGlmZi1maWxlbmFtZVwiPiR7ZmlsZU5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaWZmLWxhYmVsc1wiPiR7dGhpcy5vcmlnaW5hbExhYmVsfSBcdTIxOTQgJHt0aGlzLm1vZGlmaWVkTGFiZWx9PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaWZmLWFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtYnV0dG9uc1wiPlxuICAgICAgICAgICAgICA8ZGVlcy1idXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5nb1RvUHJldmlvdXNEaWZmfVxuICAgICAgICAgICAgICA+UHJldmlvdXM8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgICA8ZGVlcy1idXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5nb1RvTmV4dERpZmZ9XG4gICAgICAgICAgICAgID5OZXh0PC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zXCI+XG4gICAgICAgICAgICAgIDxkZWVzLWJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJoaWdobGlnaHRlZFwiXG4gICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hY2NlcHRMb2NhbH1cbiAgICAgICAgICAgICAgPlVzZSBMb2NhbDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgICAgIDxkZWVzLWJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFjY2VwdERpc2t9XG4gICAgICAgICAgICAgID5Vc2UgRGlzazwvZGVlcy1idXR0b24+XG4gICAgICAgICAgICAgIDxkZWVzLWJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmNsb3NlfVxuICAgICAgICAgICAgICA+Q2xvc2U8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlmZi1jb250YWluZXJcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlyc3RVcGRhdGVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChuZXcgTWFwKCkpO1xuICAgIGF3YWl0IHRoaXMuaW5pdERpZmZFZGl0b3IoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW5pdERpZmZFZGl0b3IoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuZGlmZi1jb250YWluZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuO1xuXG4gICAgY29uc3QgbW9uYWNvQ2RuQmFzZSA9IGBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21vbmFjby1lZGl0b3JAJHtNT05BQ09fVkVSU0lPTn1gO1xuXG4gICAgLy8gV2FpdCBmb3IgTW9uYWNvIHRvIGJlIGxvYWRlZCAoc2hvdWxkIGFscmVhZHkgYmUgbG9hZGVkIGJ5IGRlZXMtd29ya3NwYWNlLW1vbmFjbylcbiAgICBsZXQgbW9uYWNvSW5zdGFuY2UgPSAod2luZG93IGFzIGFueSkubW9uYWNvIGFzIHR5cGVvZiBtb25hY287XG5cbiAgICBpZiAoIW1vbmFjb0luc3RhbmNlKSB7XG4gICAgICAvLyBNb25hY28gbm90IGxvYWRlZCB5ZXQsIHdhaXQgZm9yIGl0XG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjb25zdCBjaGVja01vbmFjbyA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLm1vbmFjbykge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChjaGVja01vbmFjbyk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAxMDApO1xuICAgICAgfSk7XG4gICAgICBtb25hY29JbnN0YW5jZSA9ICh3aW5kb3cgYXMgYW55KS5tb25hY28gYXMgdHlwZW9mIG1vbmFjbztcbiAgICB9XG5cbiAgICAvLyBHZXQgY3VycmVudCB0aGVtZSBmcm9tIGRvbXRvb2xzXG4gICAgY29uc3QgZG9tdG9vbHNJbnN0YW5jZSA9IGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO1xuICAgIGNvbnN0IGlzQnJpZ2h0ID0gZG9tdG9vbHNJbnN0YW5jZS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuO1xuICAgIGNvbnN0IGluaXRpYWxUaGVtZSA9IGlzQnJpZ2h0ID8gJ3ZzJyA6ICd2cy1kYXJrJztcblxuICAgIC8vIENyZWF0ZSB1bmlxdWUgVVJJcyBmb3IgbW9kZWxzXG4gICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBvcmlnaW5hbFVyaSA9IG1vbmFjb0luc3RhbmNlLlVyaS5wYXJzZShgZGlmZjovL29yaWdpbmFsLyR7dGltZXN0YW1wfSR7dGhpcy5maWxlUGF0aH1gKTtcbiAgICBjb25zdCBtb2RpZmllZFVyaSA9IG1vbmFjb0luc3RhbmNlLlVyaS5wYXJzZShgZGlmZjovL21vZGlmaWVkLyR7dGltZXN0YW1wfSR7dGhpcy5maWxlUGF0aH1gKTtcblxuICAgIC8vIENyZWF0ZSBtb2RlbHNcbiAgICB0aGlzLm9yaWdpbmFsTW9kZWwgPSBtb25hY29JbnN0YW5jZS5lZGl0b3IuY3JlYXRlTW9kZWwoXG4gICAgICB0aGlzLm9yaWdpbmFsQ29udGVudCxcbiAgICAgIHRoaXMubGFuZ3VhZ2UsXG4gICAgICBvcmlnaW5hbFVyaVxuICAgICk7XG4gICAgdGhpcy5tb2RpZmllZE1vZGVsID0gbW9uYWNvSW5zdGFuY2UuZWRpdG9yLmNyZWF0ZU1vZGVsKFxuICAgICAgdGhpcy5tb2RpZmllZENvbnRlbnQsXG4gICAgICB0aGlzLmxhbmd1YWdlLFxuICAgICAgbW9kaWZpZWRVcmlcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIGRpZmYgZWRpdG9yXG4gICAgdGhpcy5kaWZmRWRpdG9yID0gbW9uYWNvSW5zdGFuY2UuZWRpdG9yLmNyZWF0ZURpZmZFZGl0b3IoY29udGFpbmVyLCB7XG4gICAgICBhdXRvbWF0aWNMYXlvdXQ6IHRydWUsXG4gICAgICByZWFkT25seTogZmFsc2UsIC8vIEFsbG93IGVkaXRpbmcgdGhlIG1vZGlmaWVkIChsb2NhbCkgc2lkZVxuICAgICAgb3JpZ2luYWxFZGl0YWJsZTogZmFsc2UsIC8vIERpc2sgdmVyc2lvbiBpcyByZWFkLW9ubHlcbiAgICAgIHJlbmRlclNpZGVCeVNpZGU6IHRydWUsXG4gICAgICBpZ25vcmVUcmltV2hpdGVzcGFjZTogZmFsc2UsXG4gICAgICBmb250U2l6ZTogMTQsXG4gICAgICBtaW5pbWFwOiB7XG4gICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFNldCB0aGUgdGhlbWVcbiAgICBtb25hY29JbnN0YW5jZS5lZGl0b3Iuc2V0VGhlbWUoaW5pdGlhbFRoZW1lKTtcblxuICAgIHRoaXMuZGlmZkVkaXRvci5zZXRNb2RlbCh7XG4gICAgICBvcmlnaW5hbDogdGhpcy5vcmlnaW5hbE1vZGVsLFxuICAgICAgbW9kaWZpZWQ6IHRoaXMubW9kaWZpZWRNb2RlbCxcbiAgICB9KTtcblxuICAgIC8vIFN1YnNjcmliZSB0byB0aGVtZSBjaGFuZ2VzXG4gICAgdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiA9IGRvbXRvb2xzSW5zdGFuY2UudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoXG4gICAgICAoZ29CcmlnaHQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgY29uc3QgbmV3VGhlbWUgPSBnb0JyaWdodCA/ICd2cycgOiAndnMtZGFyayc7XG4gICAgICAgIG1vbmFjb0luc3RhbmNlLmVkaXRvci5zZXRUaGVtZShuZXdUaGVtZSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIC8vIEluamVjdCBNb25hY28gQ1NTIGlmIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICBjb25zdCBjc3NJZCA9ICdtb25hY28tZGlmZi1lZGl0b3ItY3NzJztcbiAgICBpZiAoIXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoY3NzSWQpKSB7XG4gICAgICBjb25zdCBjc3NSZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke21vbmFjb0NkbkJhc2V9L21pbi92cy9lZGl0b3IvZWRpdG9yLm1haW4uY3NzYCk7XG4gICAgICBjb25zdCBjc3NUZXh0ID0gYXdhaXQgY3NzUmVzcG9uc2UudGV4dCgpO1xuICAgICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIHN0eWxlRWxlbWVudC5pZCA9IGNzc0lkO1xuICAgICAgc3R5bGVFbGVtZW50LnRleHRDb250ZW50ID0gY3NzVGV4dDtcbiAgICAgIHRoaXMuc2hhZG93Um9vdD8uYXBwZW5kKHN0eWxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgLy8gTmF2aWdhdGUgdG8gZmlyc3QgZGlmZiBhZnRlciBhIHNob3J0IGRlbGF5XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmRpZmZFZGl0b3I/LnJldmVhbEZpcnN0RGlmZigpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIElnbm9yZSBpZiBubyBkaWZmc1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG5cbiAgICB0aGlzLmRpZmZFZGl0b3JEZWZlcnJlZC5yZXNvbHZlKHRoaXMuZGlmZkVkaXRvcik7XG4gIH1cblxuICBwdWJsaWMgZ29Ub05leHREaWZmKCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmRpZmZFZGl0b3I/LmdvVG9EaWZmKCduZXh0Jyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBJZ25vcmUgaWYgbm8gbW9yZSBkaWZmc1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnb1RvUHJldmlvdXNEaWZmKCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmRpZmZFZGl0b3I/LmdvVG9EaWZmKCdwcmV2aW91cycpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gSWdub3JlIGlmIG5vIG1vcmUgZGlmZnNcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWNjZXB0TG9jYWwoKTogdm9pZCB7XG4gICAgLy8gVXNlciB3YW50cyB0byBrZWVwIGxvY2FsIHZlcnNpb24gKHBvdGVudGlhbGx5IHdpdGggZWRpdHMgbWFkZSBpbiBkaWZmIHZpZXcpXG4gICAgY29uc3QgbW9kaWZpZWRDb250ZW50ID0gdGhpcy5kaWZmRWRpdG9yPy5nZXRNb2RpZmllZEVkaXRvcigpLmdldFZhbHVlKCkgfHwgdGhpcy5tb2RpZmllZENvbnRlbnQ7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdkaWZmLXJlc29sdmVkJywge1xuICAgICAgICBkZXRhaWw6IHsgYWN0aW9uOiAndXNlLWxvY2FsJywgY29udGVudDogbW9kaWZpZWRDb250ZW50IH0sXG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFjY2VwdERpc2soKTogdm9pZCB7XG4gICAgLy8gVXNlciB3YW50cyBkaXNrIHZlcnNpb25cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2RpZmYtcmVzb2x2ZWQnLCB7XG4gICAgICAgIGRldGFpbDogeyBhY3Rpb246ICd1c2UtZGlzaycsIGNvbnRlbnQ6IHRoaXMub3JpZ2luYWxDb250ZW50IH0sXG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgnZGlmZi1jbG9zZWQnLCB7XG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICBpZiAodGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gRGlzcG9zZSBtb2RlbHNcbiAgICBpZiAodGhpcy5vcmlnaW5hbE1vZGVsKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsTW9kZWwuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vcmlnaW5hbE1vZGVsID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kaWZpZWRNb2RlbCkge1xuICAgICAgdGhpcy5tb2RpZmllZE1vZGVsLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMubW9kaWZpZWRNb2RlbCA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gRGlzcG9zZSBlZGl0b3JcbiAgICBpZiAodGhpcy5kaWZmRWRpdG9yKSB7XG4gICAgICB0aGlzLmRpZmZFZGl0b3IuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5kaWZmRWRpdG9yID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgcHJvcGVydHksXG4gIGh0bWwsXG4gIGN1c3RvbUVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbiAgc3RhdGUsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBkb210b29scyBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWRvbXRvb2xzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuaW1wb3J0IHR5cGUgeyBJRXhlY3V0aW9uRW52aXJvbm1lbnQsIElGaWxlV2F0Y2hlciB9IGZyb20gJy4uLy4uLzAwZ3JvdXAtcnVudGltZS9pbmRleC5qcyc7XG5pbXBvcnQgeyBXZWJDb250YWluZXJFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uLzAwZ3JvdXAtcnVudGltZS9pbmRleC5qcyc7XG5pbXBvcnQgdHlwZSB7IEZpbGVTeXN0ZW1UcmVlIH0gZnJvbSAnQHRlbXBmaXgvd2ViY29udGFpbmVyX19hcGknO1xuaW1wb3J0ICcuLi9kZWVzLXdvcmtzcGFjZS1tb25hY28vZGVlcy13b3Jrc3BhY2UtbW9uYWNvLmpzJztcbmltcG9ydCAnLi4vZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUuanMnO1xuaW1wb3J0IHsgRGVlc1dvcmtzcGFjZUZpbGV0cmVlIH0gZnJvbSAnLi4vZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUuanMnO1xuaW1wb3J0ICcuLi9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC5qcyc7XG5pbXBvcnQgeyBEZWVzV29ya3NwYWNlVGVybWluYWwgfSBmcm9tICcuLi9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC5qcyc7XG5pbXBvcnQgdHlwZSB7IElSdW5Qcm9jZXNzRXZlbnREZXRhaWwgfSBmcm9tICcuLi9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCAnLi4vZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldy9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3LmpzJztcbmltcG9ydCAnLi4vZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyL2RlZXMtd29ya3NwYWNlLWJvdHRvbWJhci5qcyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0IHsgRGVlc1dvcmtzcGFjZU1vbmFjbyB9IGZyb20gJy4uL2RlZXMtd29ya3NwYWNlLW1vbmFjby9kZWVzLXdvcmtzcGFjZS1tb25hY28uanMnO1xuaW1wb3J0IHsgVHlwZVNjcmlwdEludGVsbGlTZW5zZU1hbmFnZXIgfSBmcm9tICcuL3R5cGVzY3JpcHQtaW50ZWxsaXNlbnNlLmpzJztcbmltcG9ydCB7IERlZXNDb250ZXh0bWVudSB9IGZyb20gJy4uLy4uL2RlZXMtY29udGV4dG1lbnUvZGVlcy1jb250ZXh0bWVudS5qcyc7XG5pbXBvcnQgJ0BkZXNpZ24uZXN0YXRlL2RlZXMtd2NjdG9vbHMvZGVtb3Rvb2xzJztcbmltcG9ydCAnLi4vLi4vZGVlcy1hY3Rpb25iYXIvZGVlcy1hY3Rpb25iYXIuanMnO1xuaW1wb3J0IHR5cGUgeyBEZWVzQWN0aW9uYmFyIH0gZnJvbSAnLi4vLi4vZGVlcy1hY3Rpb25iYXIvZGVlcy1hY3Rpb25iYXIuanMnO1xuaW1wb3J0ICcuLi9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvci9kZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvci5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtd29ya3NwYWNlJzogRGVlc1dvcmtzcGFjZTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgSU9wZW5GaWxlIHtcbiAgcGF0aDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgbW9kaWZpZWQ6IGJvb2xlYW47XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLXdvcmtzcGFjZScpXG5leHBvcnQgY2xhc3MgRGVlc1dvcmtzcGFjZSBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gKCkgPT4ge1xuICAgIGNvbnN0IGVudiA9IG5ldyBXZWJDb250YWluZXJFbnZpcm9ubWVudCgpO1xuXG4gICAgLy8gTW91bnQgaW5pdGlhbCBUeXBlU2NyaXB0IHByb2plY3QgZmlsZXNcbiAgICBjb25zdCBtb3VudFByb21pc2UgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgZW52LmluaXQoKTtcblxuICAgICAgY29uc3QgZmlsZVRyZWU6IEZpbGVTeXN0ZW1UcmVlID0ge1xuICAgICAgICAncGFja2FnZS5qc29uJzoge1xuICAgICAgICAgIGZpbGU6IHtcbiAgICAgICAgICAgIGNvbnRlbnRzOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdkZW1vLXByb2plY3QnLFxuICAgICAgICAgICAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ21vZHVsZScsXG4gICAgICAgICAgICAgICAgc2NyaXB0czoge1xuICAgICAgICAgICAgICAgICAgYnVpbGQ6ICd0c2MnLFxuICAgICAgICAgICAgICAgICAgZGV2OiAndHNjIC0td2F0Y2gnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgICAgICAgICAnQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlJzogJ140LjIuMycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZXZEZXBlbmRlbmNpZXM6IHtcbiAgICAgICAgICAgICAgICAgICdAdHlwZXMvbm9kZSc6ICdeMjIuMC4wJyxcbiAgICAgICAgICAgICAgICAgIHR5cGVzY3JpcHQ6ICdeNS4wLjAnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgJ25wbWV4dHJhLmpzb24nOiB7XG4gICAgICAgICAgZmlsZToge1xuICAgICAgICAgICAgY29udGVudHM6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGVlc0VkaXRvcldvcmtzcGFjZToge1xuICAgICAgICAgICAgICAgICAgb25Jbml0OiAncG5wbSBpbnN0YWxsJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAyXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgICd0c2NvbmZpZy5qc29uJzoge1xuICAgICAgICAgIGZpbGU6IHtcbiAgICAgICAgICAgIGNvbnRlbnRzOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgdGFyZ2V0OiAnRVMyMDIyJyxcbiAgICAgICAgICAgICAgICAgIG1vZHVsZTogJ05vZGVOZXh0JyxcbiAgICAgICAgICAgICAgICAgIG1vZHVsZVJlc29sdXRpb246ICdOb2RlTmV4dCcsXG4gICAgICAgICAgICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICBvdXREaXI6ICcuL2Rpc3QnLFxuICAgICAgICAgICAgICAgICAgcm9vdERpcjogJy4vc3JjJyxcbiAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaW5jbHVkZTogWydzcmMvKiovKiddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAyXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHNyYzoge1xuICAgICAgICAgIGRpcmVjdG9yeToge1xuICAgICAgICAgICAgJ2luZGV4LnRzJzoge1xuICAgICAgICAgICAgICBmaWxlOiB7XG4gICAgICAgICAgICAgICAgY29udGVudHM6IGAvLyBNYWluIGVudHJ5IHBvaW50XG5pbXBvcnQgeyBncmVldCwgZm9ybWF0TmFtZSB9IGZyb20gJy4vdXRpbHMuanMnO1xuXG5jb25zdCBuYW1lID0gZm9ybWF0TmFtZSgnV29ybGQnKTtcbmNvbnNvbGUubG9nKGdyZWV0KG5hbWUpKTtcblxuLy8gRXhhbXBsZSBhc3luYyBmdW5jdGlvblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCdIZWxsbyBmcm9tIGFzeW5jIScpO1xuICBjb25zb2xlLmxvZyhyZXN1bHQpO1xufVxuXG5tYWluKCk7XG5gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICd1dGlscy50cyc6IHtcbiAgICAgICAgICAgICAgZmlsZToge1xuICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBgLy8gVXRpbGl0eSBmdW5jdGlvbnNcblxuZXhwb3J0IGludGVyZmFjZSBJVXNlciB7XG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIFxcYEhlbGxvLCBcXCR7bmFtZX0hXFxgO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbmFtZS50cmltKCkudG9VcHBlckNhc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVzZXIoZmlyc3ROYW1lOiBzdHJpbmcsIGxhc3ROYW1lOiBzdHJpbmcpOiBJVXNlciB7XG4gIHJldHVybiB7IGZpcnN0TmFtZSwgbGFzdE5hbWUgfTtcbn1cbmAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ2ltcG9ydHRlc3QudHMnOiB7XG4gICAgICAgICAgICAgIGZpbGU6IHtcbiAgICAgICAgICAgICAgICBjb250ZW50czogYC8vIFRlc3QgbnBtIHBhY2thZ2UgaW1wb3J0c1xuaW1wb3J0ICogYXMgc21hcnRwcm9taXNlIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSc7XG5cbi8vIFRoaXMgc2hvdWxkIGhhdmUgSW50ZWxsaVNlbnNlIHNob3dpbmcgZGVmZXIoKSBtZXRob2RcbmNvbnN0IGRlZmVycmVkID0gc21hcnRwcm9taXNlLmRlZmVyPHN0cmluZz4oKTtcblxuLy8gVGVzdCB1c2luZyB0aGUgZGVmZXJyZWQgcHJvbWlzZVxuYXN5bmMgZnVuY3Rpb24gdGVzdFNtYXJ0UHJvbWlzZSgpIHtcbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgZGVmZXJyZWQucmVzb2x2ZSgnSGVsbG8gZnJvbSBzbWFydHByb21pc2UhJyk7XG4gIH0sIDEwMCk7XG5cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGVmZXJyZWQucHJvbWlzZTtcbiAgY29uc29sZS5sb2cocmVzdWx0KTtcbn1cblxudGVzdFNtYXJ0UHJvbWlzZSgpO1xuYCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IGVudi5tb3VudChmaWxlVHJlZSk7XG4gICAgfSkoKTtcblxuICAgIC8vIENyZWF0ZSBjb250YWluZXIgZWxlbWVudCBmb3IgcHJvcGVyIDEwMCUgaGVpZ2h0IGxpa2UgZGVlcy1hcHB1aVxuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBjb250YWluZXJFbGVtZW50LnN0eWxlLmNzc1RleHQgPSAncG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47JztcblxuICAgIGNvbnN0IHdvcmtzcGFjZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkZWVzLXdvcmtzcGFjZScpIGFzIERlZXNXb3Jrc3BhY2U7XG4gICAgd29ya3NwYWNlRWxlbWVudC5leGVjdXRpb25FbnZpcm9ubWVudCA9IGVudjtcbiAgICB3b3Jrc3BhY2VFbGVtZW50LmluaXRpYWxpemF0aW9uUHJvbWlzZSA9IG1vdW50UHJvbWlzZTtcbiAgICBjb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKHdvcmtzcGFjZUVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGVlcy1kZW1vd3JhcHBlcj5cbiAgICAgICAgJHtjb250YWluZXJFbGVtZW50fVxuICAgICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICAgIGA7XG4gIH07XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ1dvcmtzcGFjZSc7XG5cbiAgLy8gSU5TVEFOQ0VcbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pXG4gIGFjY2Vzc29yIGV4ZWN1dGlvbkVudmlyb25tZW50OiBJRXhlY3V0aW9uRW52aXJvbm1lbnQgfCBudWxsID0gbnVsbDtcblxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIGFjY2Vzc29yIGluaXRpYWxpemF0aW9uUHJvbWlzZTogUHJvbWlzZTx2b2lkPiB8IG51bGwgPSBudWxsO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3Igc2hvd0ZpbGVUcmVlOiBib29sZWFuID0gdHJ1ZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIHNob3dUZXJtaW5hbDogYm9vbGVhbiA9IHRydWU7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIGZpbGVUcmVlV2lkdGg6IG51bWJlciA9IDI1MDtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3IgdGVybWluYWxIZWlnaHQ6IG51bWJlciA9IDIwMDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBvcGVuRmlsZXM6IElPcGVuRmlsZVtdID0gW107XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgYWN0aXZlRmlsZVBhdGg6IHN0cmluZyA9ICcnO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGlzVGVybWluYWxDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBpc0ZpbGVUcmVlQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgaXNJbml0aWFsaXppbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGFjdGl2ZUJvdHRvbVBhbmVsOiAndGVybWluYWwnIHwgJ3Byb2JsZW1zJyA9ICd0ZXJtaW5hbCc7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgZGlhZ25vc3RpY01hcmtlcnM6IEFycmF5PHtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgc2V2ZXJpdHk6IG51bWJlcjtcbiAgICBzdGFydExpbmVOdW1iZXI6IG51bWJlcjtcbiAgICBzdGFydENvbHVtbjogbnVtYmVyO1xuICAgIGVuZExpbmVOdW1iZXI6IG51bWJlcjtcbiAgICBlbmRDb2x1bW46IG51bWJlcjtcbiAgICBzb3VyY2U/OiBzdHJpbmc7XG4gICAgcmVzb3VyY2U6IHsgcGF0aDogc3RyaW5nIH07XG4gIH0+ID0gW107XG5cbiAgcHJpdmF0ZSBlZGl0b3JFbGVtZW50OiBEZWVzV29ya3NwYWNlTW9uYWNvIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgaW5pdGlhbGl6YXRpb25TdGFydGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgaW50ZWxsaVNlbnNlTWFuYWdlcjogVHlwZVNjcmlwdEludGVsbGlTZW5zZU1hbmFnZXIgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBpbnRlbGxpU2Vuc2VJbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIG5vZGVfbW9kdWxlcyB3YXRjaGVyIGZvciBhdXRvLWxvYWRpbmcgdHlwZXNcbiAgcHJpdmF0ZSBub2RlTW9kdWxlc1dhdGNoZXI6IElGaWxlV2F0Y2hlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGludGVsbGlTZW5zZURlYm91bmNlVGltZW91dDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcblxuICAvLyBPcGVuIGZpbGUgd2F0Y2hlcnMgZm9yIGV4dGVybmFsIGNoYW5nZSBkZXRlY3Rpb25cbiAgcHJpdmF0ZSBvcGVuRmlsZVdhdGNoZXJzOiBNYXA8c3RyaW5nLCBJRmlsZVdhdGNoZXI+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGZpbGVDaGFuZ2VEZWJvdW5jZTogTWFwPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGFjdGlvbmJhckVsZW1lbnQ6IERlZXNBY3Rpb25iYXIgfCBudWxsID0gbnVsbDtcblxuICAvLyBBdXRvLXNhdmUgZnVuY3Rpb25hbGl0eVxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBhdXRvU2F2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGF1dG9TYXZlSW50ZXJ2YWw6IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPiB8IG51bGwgPSBudWxsO1xuXG4gIC8vIEluaXQgdGVybWluYWwgcHJldmlldyBzdGF0ZVxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBpbml0Q29tbWFuZDogc3RyaW5nID0gJyc7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgaW5pdE91dHB1dDogc3RyaW5nW10gPSBbXTtcblxuICAvLyBSZXNpemUgc3RhdGVcbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgY3VycmVudEZpbGVUcmVlV2lkdGg6IG51bWJlciA9IDI1MDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBjdXJyZW50VGVybWluYWxIZWlnaHQ6IG51bWJlciA9IDIwMDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBpc0RyYWdnaW5nRmlsZVRyZWU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBpc0RyYWdnaW5nVGVybWluYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBEaWZmIHZpZXcgc3RhdGVcbiAgQHN0YXRlKClcbiAgYWNjZXNzb3Igc2hvd0RpZmZWaWV3OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgZGlmZlZpZXdDb25maWc6IHtcbiAgICBmaWxlUGF0aDogc3RyaW5nO1xuICAgIG9yaWdpbmFsQ29udGVudDogc3RyaW5nO1xuICAgIG1vZGlmaWVkQ29udGVudDogc3RyaW5nO1xuICAgIGxhbmd1YWdlOiBzdHJpbmc7XG4gIH0gfCBudWxsID0gbnVsbDtcblxuICAvLyBLZXlib2FyZCBzaG9ydGN1dCBoYW5kbGVyIChib3VuZCBmb3IgcHJvcGVyIGNsZWFudXApXG4gIHByaXZhdGUga2V5ZG93bkhhbmRsZXIgPSAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIC8vIENtZCtTIChNYWMpIG9yIEN0cmwrUyAoV2luZG93cy9MaW51eCkgLSBTYXZlXG4gICAgaWYgKChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSAmJiBlLmtleSA9PT0gJ3MnICYmICFlLnNoaWZ0S2V5KSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnNhdmVBY3RpdmVGaWxlKCk7XG4gICAgfVxuXG4gICAgLy8gQ21kK1NoaWZ0K1MgLSBTYXZlIEFsbFxuICAgIGlmICgoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkgJiYgZS5zaGlmdEtleSAmJiBlLmtleS50b0xvd2VyQ2FzZSgpID09PSAncycpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2F2ZUFsbEZpbGVzKCk7XG4gICAgfVxuICB9O1xuXG4gIC8vID09PT09PT09PT0gRmlsZXRyZWUgUmVzaXplIEhhbmRsZXJzID09PT09PT09PT1cbiAgcHJpdmF0ZSBoYW5kbGVGaWxlVHJlZU1vdXNlRG93biA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlID0gdHJ1ZTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlVXApO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgIGlmICghdGhpcy5pc0RyYWdnaW5nRmlsZVRyZWUpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IG1vdXNlWCA9IGUuY2xpZW50WCAtIGNvbnRhaW5lclJlY3QubGVmdDtcblxuICAgIC8vIENsYW1wIHRvIG1pbi9tYXggKDE1MHB4IG1pbiwgNTAlIG9mIGNvbnRhaW5lciBtYXgpXG4gICAgY29uc3QgbWluV2lkdGggPSAxNTA7XG4gICAgY29uc3QgbWF4V2lkdGggPSBjb250YWluZXJSZWN0LndpZHRoICogMC41O1xuICAgIGNvbnN0IG5ld1dpZHRoID0gTWF0aC5tYXgobWluV2lkdGgsIE1hdGgubWluKG1heFdpZHRoLCBtb3VzZVgpKTtcblxuICAgIHRoaXMuY3VycmVudEZpbGVUcmVlV2lkdGggPSBuZXdXaWR0aDtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZUZpbGVUcmVlTW91c2VVcCA9ICgpID0+IHtcbiAgICB0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZSA9IGZhbHNlO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCk7XG5cbiAgICAvLyBOb3RpZnkgTW9uYWNvIGVkaXRvciBvZiBzaXplIGNoYW5nZVxuICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpO1xuICB9O1xuXG4gIC8vID09PT09PT09PT0gVGVybWluYWwgUmVzaXplIEhhbmRsZXJzID09PT09PT09PT1cbiAgcHJpdmF0ZSBoYW5kbGVUZXJtaW5hbE1vdXNlRG93biA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsID0gdHJ1ZTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlVXApO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlVGVybWluYWxNb3VzZU1vdmUgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgIGlmICghdGhpcy5pc0RyYWdnaW5nVGVybWluYWwpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IG1vdXNlWSA9IGUuY2xpZW50WSAtIGNvbnRhaW5lclJlY3QudG9wO1xuXG4gICAgLy8gQ2FsY3VsYXRlIHRlcm1pbmFsIGhlaWdodCBmcm9tIGJvdHRvbVxuICAgIGNvbnN0IHRlcm1pbmFsSGVpZ2h0ID0gY29udGFpbmVyUmVjdC5oZWlnaHQgLSBtb3VzZVk7XG5cbiAgICAvLyBDbGFtcCB0byBtaW4vbWF4ICgxMDBweCBtaW4sIDcwJSBvZiBjb250YWluZXIgbWF4KVxuICAgIGNvbnN0IG1pbkhlaWdodCA9IDEwMDtcbiAgICBjb25zdCBtYXhIZWlnaHQgPSBjb250YWluZXJSZWN0LmhlaWdodCAqIDAuNztcbiAgICBjb25zdCBuZXdIZWlnaHQgPSBNYXRoLm1heChtaW5IZWlnaHQsIE1hdGgubWluKG1heEhlaWdodCwgdGVybWluYWxIZWlnaHQpKTtcblxuICAgIHRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0ID0gbmV3SGVpZ2h0O1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlVGVybWluYWxNb3VzZVVwID0gKCkgPT4ge1xuICAgIHRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsID0gZmFsc2U7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKTtcblxuICAgIC8vIE5vdGlmeSBNb25hY28gZWRpdG9yIG9mIHNpemUgY2hhbmdlXG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnKSk7XG4gIH07XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk2JSknLCAnaHNsKDAgMCUgNyUpJyl9O1xuICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gICAgICB9XG5cbiAgICAgIC53b3Jrc3BhY2Utb3V0ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAud29ya3NwYWNlLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAuZWRpdG9yLWFyZWEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5maWxldHJlZS1wYW5lbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC5maWxldHJlZS1wYW5lbC5jb2xsYXBzZWQge1xuICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAuZWRpdG9yLXBhbmVsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDAgMCUgOSUpJyl9O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgfVxuXG4gICAgICAudGVybWluYWwtcGFuZWwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODUlKScsICdoc2woMCAwJSAxNSUpJyl9O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLnRlcm1pbmFsLXBhbmVsLmNvbGxhcHNlZCB7XG4gICAgICAgIGhlaWdodDogMzJweCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAucGFuZWwtaGVhZGVyIHtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUlKScsICdoc2woMCAwJSA4JSknKX07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODUlKScsICdoc2woMCAwJSAxNSUpJyl9O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNDAlKScsICdoc2woMCAwJSA2MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAucGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICB9XG5cbiAgICAgIC5wYW5lbC1oZWFkZXItYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgfVxuXG4gICAgICAucGFuZWwtYWN0aW9uIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDUwJSknLCAnaHNsKDAgMCUgNjAlKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5wYW5lbC1hY3Rpb246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODglKScsICdoc2woMCAwJSAxOCUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDMwJSknLCAnaHNsKDAgMCUgODAlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRhYnMtYmFyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk2JSknLCAnaHNsKDAgMCUgOCUpJyl9O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg1JSknLCAnaHNsKDAgMCUgMTUlKScpfTtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgIH1cblxuICAgICAgLnRhYiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OCUpJywgJ2hzbCgwIDAlIDEyJSknKX07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDUwJSknLCAnaHNsKDAgMCUgNjAlKScpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk0JSknLCAnaHNsKDAgMCUgMTAlKScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC50YWI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTIlKScsICdoc2woMCAwJSAxMiUpJyl9O1xuICAgICAgfVxuXG4gICAgICAudGFiLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSA5JSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMjAlKScsICdoc2woMCAwJSA5MCUpJyl9O1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgMTAwJSA1MCUpJywgJ2hzbCgyMTAgMTAwJSA2MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAudGFiLW5hbWUge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLnRhYi1jbG9zZSB7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAudGFiOmhvdmVyIC50YWItY2xvc2Uge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAudGFiLWNsb3NlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg1JSknLCAnaHNsKDAgMCUgMjUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRhYi1tb2RpZmllZCB7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA1MCUpJywgJ2hzbCgwIDAlIDYwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC50YWJzLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIC5lZGl0b3ItbWVudS1idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmVkaXRvci1tZW51LWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAwJSAvIDAuMDgpJywgJ2hzbCgwIDAlIDEwMCUgLyAwLjEpJyl9O1xuICAgICAgfVxuXG4gICAgICAuZWRpdG9yLWNvbnRlbnQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDMycHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIC5wcm9ibGVtcy1jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDMycHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSA5JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5wYW5lbC10YWJzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgfVxuXG4gICAgICAucGFuZWwtdGFiIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA1MCUpJywgJ2hzbCgwIDAlIDU1JSknKX07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5wYW5lbC10YWI6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDMwJSknLCAnaHNsKDAgMCUgNzUlKScpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDkwJSknLCAnaHNsKDAgMCUgMTIlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnBhbmVsLXRhYi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDIwJSknLCAnaHNsKDAgMCUgOTAlKScpfTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgMTAwJSA1MCUpJywgJ2hzbCgyMTAgMTAwJSA2MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAucGFuZWwtdGFiLWJhZGdlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgNzAlIDUwJSknLCAnaHNsKDAgNzAlIDQ1JSknKX07XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cblxuICAgICAgLnBhbmVsLXRhYi1iYWRnZS53YXJuaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCg0MCA3MCUgNTAlKScsICdoc2woNDAgNzAlIDQ1JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5wYW5lbC10YWItYmFkZ2Uubm9uZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5wcm9ibGVtcy1saXN0IHtcbiAgICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICB9XG5cbiAgICAgIC5wcm9ibGVtLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAzMCUpJywgJ2hzbCgwIDAlIDgwJSknKX07XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAucHJvYmxlbS1pdGVtOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk1JSknLCAnaHNsKDAgMCUgMTUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnByb2JsZW0taWNvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICB9XG5cbiAgICAgIC5wcm9ibGVtLWljb24uZXJyb3Ige1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcwJSA1MCUpJywgJ2hzbCgwIDcwJSA2MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAucHJvYmxlbS1pY29uLndhcm5pbmcge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCg0MCA3MCUgNTAlKScsICdoc2woNDAgNzAlIDYwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5wcm9ibGVtLWRldGFpbHMge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5wcm9ibGVtLW1lc3NhZ2Uge1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgfVxuXG4gICAgICAucHJvYmxlbS1sb2NhdGlvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDUwJSknLCAnaHNsKDAgMCUgNTUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnByb2JsZW1zLWVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA1NSUpJywgJ2hzbCgwIDAlIDUwJSknKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5lbXB0eS1zdGF0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNTAlKScsICdoc2woMCAwJSA1MCUpJyl9O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAuZW1wdHktc3RhdGUgZGVlcy1pY29uIHtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIHNwaW4ge1xuICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG4gICAgICB9XG5cbiAgICAgIC5pbml0aWFsaXppbmcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDUwJSknLCAnaHNsKDAgMCUgNjAlKScpfTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG5cbiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy1pY29uIHtcbiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgLmluaXRpYWxpemluZyBkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgIH1cblxuICAgICAgZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIC8qIFJlc2l6ZSBoYW5kbGVzICovXG4gICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbCB7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICB9XG5cbiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOmhvdmVyLFxuICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzNiODJmNicsICcjNThhNmZmJyl9O1xuICAgICAgfVxuXG4gICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDJweDtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzljYTNhZicsICcjNmU3NjgxJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6aG92ZXI6OmFmdGVyLFxuICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwuZHJhZ2dpbmc6OmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnI2ZmZmZmZicpfTtcbiAgICAgIH1cblxuICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCB7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICBjdXJzb3I6IHJvdy1yZXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgfVxuXG4gICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsOmhvdmVyLFxuICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbC5kcmFnZ2luZyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyM1OGE2ZmYnKX07XG4gICAgICB9XG5cbiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5Y2EzYWYnLCAnIzZlNzY4MScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXI6OmFmdGVyLFxuICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbC5kcmFnZ2luZzo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjZmZmZmZmJyl9O1xuICAgICAgfVxuXG4gICAgICAvKiBQcmV2ZW50IHRleHQgc2VsZWN0aW9uIHdoaWxlIGRyYWdnaW5nICovXG4gICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyB7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgfVxuXG4gICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyAuZmlsZXRyZWUtcGFuZWwsXG4gICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyAuZWRpdG9yLXBhbmVsLFxuICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLnRlcm1pbmFsLXBhbmVsIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICBgLFxuICBdO1xuXG4gIHB1YmxpYyByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNvbnRhaW5lckNsYXNzZXMgPSBbXG4gICAgICAnd29ya3NwYWNlLWNvbnRhaW5lcicsXG4gICAgICAodGhpcy5pc0RyYWdnaW5nRmlsZVRyZWUgfHwgdGhpcy5pc0RyYWdnaW5nVGVybWluYWwpID8gJ2RyYWdnaW5nJyA6ICcnLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKTtcblxuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6aW5nKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImluaXRpYWxpemluZ1wiPlxuICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOmxvYWRlcjInfSBpY29uU2l6ZT1cIjMyXCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgPHNwYW4+SW5pdGlhbGl6aW5nIHdvcmtzcGFjZS4uLjwvc3Bhbj5cbiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlld1xuICAgICAgICAgICAgLmNvbW1hbmQ9JHt0aGlzLmluaXRDb21tYW5kIHx8ICcnfVxuICAgICAgICAgICAgLmxpbmVzPSR7dGhpcy5pbml0T3V0cHV0fVxuICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJ3b3Jrc3BhY2Utb3V0ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y29udGFpbmVyQ2xhc3Nlc31cIj5cbiAgICAgICAgICA8IS0tIEZpbGV0cmVlIHBhbmVsIChmdWxsIGhlaWdodCkgLS0+XG4gICAgICAgICAgJHt0aGlzLnNob3dGaWxlVHJlZSA/IGh0bWxgXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiZmlsZXRyZWUtcGFuZWwgJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQgPyAnY29sbGFwc2VkJyA6ICcnfVwiXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6ICR7dGhpcy5pc0ZpbGVUcmVlQ29sbGFwc2VkID8gMCA6IHRoaXMuY3VycmVudEZpbGVUcmVlV2lkdGh9cHhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWVcbiAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgIC5zZWxlY3RlZFBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofVxuICAgICAgICAgICAgICAgIEBmaWxlLXNlbGVjdD0ke3RoaXMuaGFuZGxlRmlsZVNlbGVjdH1cbiAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICR7IXRoaXMuaXNGaWxlVHJlZUNvbGxhcHNlZCA/IGh0bWxgXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJlc2l6ZS1oYW5kbGUtdmVydGljYWwgJHt0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZSA/ICdkcmFnZ2luZycgOiAnJ31cIlxuICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VEb3dufVxuICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgYCA6ICcnfVxuXG4gICAgICAgICAgPCEtLSBFZGl0b3IgKyBUZXJtaW5hbCBhcmVhIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0b3ItYXJlYVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRvci1wYW5lbFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFicy1iYXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFicy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5vcGVuRmlsZXMubWFwKGZpbGUgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFiICR7ZmlsZS5wYXRoID09PSB0aGlzLmFjdGl2ZUZpbGVQYXRoID8gJ2FjdGl2ZScgOiAnJ31cIlxuICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuYWN0aXZhdGVGaWxlKGZpbGUucGF0aCl9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAke2ZpbGUubW9kaWZpZWQgPyBodG1sYDxzcGFuIGNsYXNzPVwidGFiLW1vZGlmaWVkXCI+PC9zcGFuPmAgOiAnJ31cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhYi1uYW1lXCI+JHtmaWxlLm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFiLWNsb3NlXCIgQGNsaWNrPSR7KGU6IEV2ZW50KSA9PiB0aGlzLmNsb3NlRmlsZShlLCBmaWxlLnBhdGgpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOngnfSBpY29uU2l6ZT1cIjEyXCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIGApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0b3ItbWVudS1idXR0b25cIiBAY2xpY2s9JHt0aGlzLnNob3dFZGl0b3JNZW51fSB0aXRsZT1cIkVkaXRvciBvcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTptb3JlVmVydGljYWwnfSBpY29uU2l6ZT1cIjE2XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAke3RoaXMuc2hvd0RpZmZWaWV3ICYmIHRoaXMuZGlmZlZpZXdDb25maWcgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgIC5maWxlUGF0aD0ke3RoaXMuZGlmZlZpZXdDb25maWcuZmlsZVBhdGh9XG4gICAgICAgICAgICAgICAgICAgIC5vcmlnaW5hbENvbnRlbnQ9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLm9yaWdpbmFsQ29udGVudH1cbiAgICAgICAgICAgICAgICAgICAgLm1vZGlmaWVkQ29udGVudD0ke3RoaXMuZGlmZlZpZXdDb25maWcubW9kaWZpZWRDb250ZW50fVxuICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLmxhbmd1YWdlfVxuICAgICAgICAgICAgICAgICAgICBAZGlmZi1yZXNvbHZlZD0ke3RoaXMuaGFuZGxlRGlmZlJlc29sdmVkfVxuICAgICAgICAgICAgICAgICAgICBAZGlmZi1jbG9zZWQ9JHsoKSA9PiB7IHRoaXMuc2hvd0RpZmZWaWV3ID0gZmFsc2U7IHRoaXMuZGlmZlZpZXdDb25maWcgPSBudWxsOyB9fVxuICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3I+XG4gICAgICAgICAgICAgICAgYCA6IHRoaXMub3BlbkZpbGVzLmxlbmd0aCA9PT0gMCA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6ZmlsZUNvZGUnfSBpY29uU2l6ZT1cIjQ4XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlNlbGVjdCBhIGZpbGUgdG8gZWRpdDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIGAgOiBodG1sYFxuICAgICAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjb1xuICAgICAgICAgICAgICAgICAgICAuZmlsZVBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofVxuICAgICAgICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMuZ2V0QWN0aXZlRmlsZUNvbnRlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKHRoaXMuYWN0aXZlRmlsZVBhdGgpfVxuICAgICAgICAgICAgICAgICAgICBAY29udGVudC1jaGFuZ2U9JHt0aGlzLmhhbmRsZUNvbnRlbnRDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+XG4gICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gSG9yaXpvbnRhbCByZXNpemUgaGFuZGxlIGZvciB0ZXJtaW5hbCAtLT5cbiAgICAgICAgICAgICR7dGhpcy5zaG93VGVybWluYWwgJiYgIXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZCA/IGh0bWxgXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbCAke3RoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsID8gJ2RyYWdnaW5nJyA6ICcnfVwiXG4gICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlVGVybWluYWxNb3VzZURvd259XG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIGAgOiAnJ31cblxuICAgICAgICAgICAgPCEtLSBUZXJtaW5hbCBwYW5lbCAtLT5cbiAgICAgICAgICAgICR7dGhpcy5zaG93VGVybWluYWwgPyBodG1sYFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXJtaW5hbC1wYW5lbCAke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZCA/ICdjb2xsYXBzZWQnIDogJyd9XCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cImhlaWdodDogJHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQgPyAzMiA6IHRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0fXB4XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC10YWJzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBhbmVsLXRhYiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWwgPT09ICd0ZXJtaW5hbCcgPyAnYWN0aXZlJyA6ICcnfVwiXG4gICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5hY3RpdmVCb3R0b21QYW5lbCA9ICd0ZXJtaW5hbCd9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTp0ZXJtaW5hbCd9IGljb25TaXplPVwiMTRcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICBUZXJtaW5hbFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGFuZWwtdGFiICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbCA9PT0gJ3Byb2JsZW1zJyA/ICdhY3RpdmUnIDogJyd9XCJcbiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsID0gJ3Byb2JsZW1zJ31cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOmNpcmNsZUFsZXJ0J30gaWNvblNpemU9XCIxNFwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIFByb2JsZW1zXG4gICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aCA+IDAgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYW5lbC10YWItYmFkZ2UgJHt0aGlzLmdldEVycm9yQ291bnQoKSA9PT0gMCA/ICd3YXJuaW5nJyA6ICcnfVwiPiR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5sZW5ndGh9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtYWN0aW9uXCIgQGNsaWNrPSR7dGhpcy50b2dnbGVUZXJtaW5hbH0+XG4gICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgLmljb249JHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQgPyAnbHVjaWRlOmNoZXZyb25VcCcgOiAnbHVjaWRlOmNoZXZyb25Eb3duJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25TaXplPVwiMTRcIlxuICAgICAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWwtY29udGVudFwiIHN0eWxlPVwiZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsID09PSAndGVybWluYWwnID8gJ2Jsb2NrJyA6ICdub25lJ31cIj5cbiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbFxuICAgICAgICAgICAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAuc2V0dXBDb21tYW5kPSR7Jyd9XG4gICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvYmxlbXMtY29udGVudFwiIHN0eWxlPVwiZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsID09PSAncHJvYmxlbXMnID8gJ2Jsb2NrJyA6ICdub25lJ31cIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJQcm9ibGVtc1BhbmVsKCl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYCA6ICcnfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEJvdHRvbSBCYXIgKGZ1bGwgd2lkdGgpIC0tPlxuICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyXG4gICAgICAgICAgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICBAcnVuLXByb2Nlc3M9JHt0aGlzLmhhbmRsZVJ1blByb2Nlc3N9XG4gICAgICAgID48L2RlZXMtd29ya3NwYWNlLWJvdHRvbWJhcj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBhd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmtleWRvd25IYW5kbGVyKTtcbiAgfVxuXG4gIGFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMua2V5ZG93bkhhbmRsZXIpO1xuXG4gICAgLy8gQ2xlYW4gdXAgcmVzaXplIGV2ZW50IGxpc3RlbmVyc1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKTtcblxuICAgIGlmICh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2F2ZUludGVydmFsKTtcbiAgICAgIHRoaXMuYXV0b1NhdmVJbnRlcnZhbCA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuc3RvcE5vZGVNb2R1bGVzV2F0Y2hlcigpO1xuICAgIHRoaXMuc3RvcEFsbEZpbGVXYXRjaGVycygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpcnN0VXBkYXRlZCgpIHtcbiAgICAvLyBJbml0aWFsaXplIGN1cnJlbnQgc2l6ZXMgZnJvbSBwcm9wZXJ0aWVzXG4gICAgdGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aCA9IHRoaXMuZmlsZVRyZWVXaWR0aDtcbiAgICB0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodCA9IHRoaXMudGVybWluYWxIZWlnaHQ7XG5cbiAgICBpZiAodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkge1xuICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplV29ya3NwYWNlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcsIGFueT4pIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdleGVjdXRpb25FbnZpcm9ubWVudCcpICYmIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVdvcmtzcGFjZSgpO1xuICAgIH1cblxuICAgIC8vIENhcHR1cmUgYWN0aW9uYmFyIHJlZmVyZW5jZSB3aGVuIGl0IGJlY29tZXMgYXZhaWxhYmxlIChhZnRlciBpbml0aWFsaXphdGlvbiBjb21wbGV0ZXMpXG4gICAgaWYgKCF0aGlzLmFjdGlvbmJhckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuYWN0aW9uYmFyRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLmVkaXRvci1wYW5lbCBkZWVzLWFjdGlvbmJhcicpIGFzIERlZXNBY3Rpb25iYXI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsaXplV29ya3NwYWNlKCkge1xuICAgIGlmICghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuXG4gICAgLy8gUHJldmVudCBkb3VibGUgaW5pdGlhbGl6YXRpb25cbiAgICBpZiAodGhpcy5pbml0aWFsaXphdGlvblN0YXJ0ZWQpIHJldHVybjtcbiAgICB0aGlzLmluaXRpYWxpemF0aW9uU3RhcnRlZCA9IHRydWU7XG5cbiAgICB0aGlzLmlzSW5pdGlhbGl6aW5nID0gdHJ1ZTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBXYWl0IGZvciBhbnkgZXh0ZXJuYWwgaW5pdGlhbGl6YXRpb24gKGUuZy4sIGZpbGUgbW91bnRpbmcpXG4gICAgICBpZiAodGhpcy5pbml0aWFsaXphdGlvblByb21pc2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXphdGlvblByb21pc2U7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBFeGVjdXRlIG9uSW5pdCBjb21tYW5kIGZyb20gbnBtZXh0cmEuanNvbiBpZiBwcmVzZW50XG4gICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVPbkluaXRDb21tYW5kKCk7XG5cbiAgICAgIC8vIEludGVsbGlTZW5zZSBpcyBpbml0aWFsaXplZCBsYXppbHkgd2hlbiBmaXJzdCBmaWxlIGlzIG9wZW5lZCAoTW9uYWNvIGxvYWRzIG9uIGRlbWFuZClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgd29ya3NwYWNlOicsIGVycm9yKTtcbiAgICAgIC8vIFJlc2V0IGZsYWcgdG8gYWxsb3cgcmV0cnlcbiAgICAgIHRoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkID0gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNJbml0aWFsaXppbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBvbkluaXQgY29tbWFuZCBmcm9tIG5wbWV4dHJhLmpzb24gaWYgcHJlc2VudFxuICAgKiBUaGlzIGFsbG93cyBhdXRvbWF0aWMgc2V0dXAgbGlrZSBgcG5wbSBpbnN0YWxsYCBvbiB3b3Jrc3BhY2UgaW5pdGlhbGl6YXRpb25cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZU9uSW5pdENvbW1hbmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSByZXR1cm47XG5cbiAgICB0cnkge1xuICAgICAgaWYgKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCcvbnBtZXh0cmEuanNvbicpKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCcvbnBtZXh0cmEuanNvbicpO1xuICAgICAgICBjb25zdCBjb25maWcgPSBKU09OLnBhcnNlKGNvbnRlbnQpO1xuICAgICAgICBjb25zdCBvbkluaXQgPSBjb25maWc/LmRlZXNFZGl0b3JXb3Jrc3BhY2U/Lm9uSW5pdDtcblxuICAgICAgICBpZiAob25Jbml0ICYmIHR5cGVvZiBvbkluaXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0V4ZWN1dGluZyBvbkluaXQgY29tbWFuZDonLCBvbkluaXQpO1xuXG4gICAgICAgICAgLy8gU2V0IGNvbW1hbmQgZm9yIHRlcm1pbmFsIHByZXZpZXcgZGlzcGxheVxuICAgICAgICAgIHRoaXMuaW5pdENvbW1hbmQgPSBvbkluaXQ7XG4gICAgICAgICAgdGhpcy5pbml0T3V0cHV0ID0gW107XG5cbiAgICAgICAgICAvLyBQYXJzZSBjb21tYW5kIGFuZCBhcmdzXG4gICAgICAgICAgY29uc3QgW2NtZCwgLi4uYXJnc10gPSBvbkluaXQuc3BsaXQoJyAnKTtcbiAgICAgICAgICBjb25zdCBwcm9jZXNzID0gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bihjbWQsIGFyZ3MpO1xuXG4gICAgICAgICAgLy8gQ2FwdHVyZSBzdGRvdXQvc3RkZXJyIGZvciB0ZXJtaW5hbCBwcmV2aWV3XG4gICAgICAgICAgcHJvY2Vzcy5vdXRwdXQucGlwZVRvKFxuICAgICAgICAgICAgbmV3IFdyaXRhYmxlU3RyZWFtKHtcbiAgICAgICAgICAgICAgd3JpdGU6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gU3BsaXQgZGF0YSBpbnRvIGxpbmVzIGFuZCBhcHBlbmRcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lcyA9IGRhdGEuc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICAgICAgICAgICAgaWYgKGxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0T3V0cHV0ID0gWy4uLnRoaXMuaW5pdE91dHB1dCwgbGluZV07XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gV2FpdCBmb3IgY29tcGxldGlvblxuICAgICAgICAgIGNvbnN0IGV4aXRDb2RlID0gYXdhaXQgcHJvY2Vzcy5leGl0O1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdvbkluaXQgY29tbWFuZCBjb21wbGV0ZWQgd2l0aCBleGl0IGNvZGU6JywgZXhpdENvZGUpO1xuXG4gICAgICAgICAgLy8gQWRkIGNvbXBsZXRpb24gbWVzc2FnZVxuICAgICAgICAgIHRoaXMuaW5pdE91dHB1dCA9IFsuLi50aGlzLmluaXRPdXRwdXQsICcnLCBgQ29tbWFuZCBjb21wbGV0ZWQgd2l0aCBleGl0IGNvZGU6ICR7ZXhpdENvZGV9YF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gZXhlY3V0ZSBvbkluaXQgY29tbWFuZDonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsaXplSW50ZWxsaVNlbnNlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmludGVsbGlTZW5zZUluaXRpYWxpemVkKSByZXR1cm47XG5cbiAgICAvLyBXYWl0IGZvciBNb25hY28gdG8gYmUgYXZhaWxhYmxlIGdsb2JhbGx5ICh3aXRoIHJldHJ5IGZvciB0aW1pbmcpXG4gICAgbGV0IG1vbmFjb0luc3RhbmNlID0gKHdpbmRvdyBhcyBhbnkpLm1vbmFjbztcbiAgICBpZiAoIW1vbmFjb0luc3RhbmNlKSB7XG4gICAgICAvLyBNb25hY28gbG9hZHMgYXN5bmNocm9ub3VzbHkgd2hlbiB0aGUgZWRpdG9yIG1vdW50cywgd2FpdCBhIGJpdFxuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMCkpO1xuICAgICAgbW9uYWNvSW5zdGFuY2UgPSAod2luZG93IGFzIGFueSkubW9uYWNvO1xuICAgIH1cblxuICAgIGlmICghbW9uYWNvSW5zdGFuY2UpIHtcbiAgICAgIGNvbnNvbGUud2FybignTW9uYWNvIG5vdCB5ZXQgbG9hZGVkLCBJbnRlbGxpU2Vuc2Ugd2lsbCBiZSBpbml0aWFsaXplZCBsYXRlcicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciA9IG5ldyBUeXBlU2NyaXB0SW50ZWxsaVNlbnNlTWFuYWdlcigpO1xuICAgIGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5pbml0KG1vbmFjb0luc3RhbmNlLCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KTtcblxuICAgIC8vIFNldCB1cCBtYXJrZXIgbGlzdGVuZXIgZm9yIFByb2JsZW1zIHBhbmVsXG4gICAgdGhpcy5zZXR1cE1hcmtlckxpc3RlbmVyKCk7XG5cbiAgICAvLyBTdGFydCB3YXRjaGluZyBub2RlX21vZHVsZXMgZm9yIHBhY2thZ2UgaW5zdGFsbGF0aW9uc1xuICAgIHRoaXMuc3RhcnROb2RlTW9kdWxlc1dhdGNoZXIoKTtcblxuICAgIC8vIEluaXRpYWwgc2NhbiBmb3IgYW55IGV4aXN0aW5nIHBhY2thZ2VzXG4gICAgYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCk7XG4gIH1cblxuICAvKipcbiAgICogV2F0Y2ggbm9kZV9tb2R1bGVzIGZvciBjaGFuZ2VzIChlLmcuLCBhZnRlciBwbnBtIGluc3RhbGwpXG4gICAqIGFuZCBhdXRvbWF0aWNhbGx5IGxvYWQgdHlwZXMgZm9yIG5ldyBwYWNrYWdlc1xuICAgKi9cbiAgcHJpdmF0ZSBzdGFydE5vZGVNb2R1bGVzV2F0Y2hlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQgfHwgdGhpcy5ub2RlTW9kdWxlc1dhdGNoZXIpIHJldHVybjtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlciA9IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud2F0Y2goXG4gICAgICAgICcvbm9kZV9tb2R1bGVzJyxcbiAgICAgICAgKF9ldmVudCwgX2ZpbGVuYW1lKSA9PiB7XG4gICAgICAgICAgLy8gRGVib3VuY2UgLSBwbnBtIGluc3RhbGwgY3JlYXRlcyBtYW55IGZpbGUgY2hhbmdlc1xuICAgICAgICAgIGlmICh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQgPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIpIHtcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgMjAwMCk7IC8vIDIgc2Vjb25kIGRlYm91bmNlIGZvciBwYWNrYWdlIGluc3RhbGxhdGlvblxuICAgICAgICB9LFxuICAgICAgICB7IHJlY3Vyc2l2ZTogdHJ1ZSB9XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCB3YXRjaCBub2RlX21vZHVsZXM6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RvcE5vZGVNb2R1bGVzV2F0Y2hlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ub2RlTW9kdWxlc1dhdGNoZXIpIHtcbiAgICAgIHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyLnN0b3AoKTtcbiAgICAgIHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0KTtcbiAgICAgIHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT0gT3BlbiBGaWxlIFdhdGNoaW5nIGZvciBFeHRlcm5hbCBDaGFuZ2VzID09PT09PT09PT1cblxuICAvKipcbiAgICogU3RhcnQgd2F0Y2hpbmcgYW4gb3BlbiBmaWxlIGZvciBleHRlcm5hbCBjaGFuZ2VzXG4gICAqL1xuICBwcml2YXRlIHN0YXJ0V2F0Y2hpbmdGaWxlKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCB8fCB0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuaGFzKHBhdGgpKSByZXR1cm47XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgd2F0Y2hlciA9IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud2F0Y2goXG4gICAgICAgIHBhdGgsXG4gICAgICAgIChfZXZlbnQsIF9maWxlbmFtZSkgPT4ge1xuICAgICAgICAgIC8vIERlYm91bmNlIHRvIGF2b2lkIG11bHRpcGxlIHJhcGlkIHRyaWdnZXJzXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdUaW1lb3V0ID0gdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KHBhdGgpO1xuICAgICAgICAgIGlmIChleGlzdGluZ1RpbWVvdXQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChleGlzdGluZ1RpbWVvdXQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUV4dGVybmFsRmlsZUNoYW5nZShwYXRoKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLmRlbGV0ZShwYXRoKTtcbiAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgIHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLnNldChwYXRoLCB0aW1lb3V0KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMub3BlbkZpbGVXYXRjaGVycy5zZXQocGF0aCwgd2F0Y2hlcik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybihgQ291bGQgbm90IHdhdGNoIGZpbGUgJHtwYXRofTpgLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3Agd2F0Y2hpbmcgYSBmaWxlIHdoZW4gaXQncyBjbG9zZWRcbiAgICovXG4gIHByaXZhdGUgc3RvcFdhdGNoaW5nRmlsZShwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB3YXRjaGVyID0gdGhpcy5vcGVuRmlsZVdhdGNoZXJzLmdldChwYXRoKTtcbiAgICBpZiAod2F0Y2hlcikge1xuICAgICAgd2F0Y2hlci5zdG9wKCk7XG4gICAgICB0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuZGVsZXRlKHBhdGgpO1xuICAgIH1cbiAgICBjb25zdCB0aW1lb3V0ID0gdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZ2V0KHBhdGgpO1xuICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICB0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5kZWxldGUocGF0aCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgYWxsIGZpbGUgd2F0Y2hlcnNcbiAgICovXG4gIHByaXZhdGUgc3RvcEFsbEZpbGVXYXRjaGVycygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHdhdGNoZXIgb2YgdGhpcy5vcGVuRmlsZVdhdGNoZXJzLnZhbHVlcygpKSB7XG4gICAgICB3YXRjaGVyLnN0b3AoKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuRmlsZVdhdGNoZXJzLmNsZWFyKCk7XG5cbiAgICBmb3IgKGNvbnN0IHRpbWVvdXQgb2YgdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UudmFsdWVzKCkpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB9XG4gICAgdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgZXh0ZXJuYWwgZmlsZSBjaGFuZ2UgLSBzaG93IGFjdGlvbmJhciBpZiBmaWxlIGhhcyBsb2NhbCBjaGFuZ2VzLFxuICAgKiBvdGhlcndpc2Ugc2lsZW50bHkgdXBkYXRlIHdpdGggY3Vyc29yIHByZXNlcnZhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UocGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZSA9IHRoaXMub3BlbkZpbGVzLmZpbmQoZiA9PiBmLnBhdGggPT09IHBhdGgpO1xuICAgIGlmICghZmlsZSB8fCAhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlYWQgdGhlIG5ldyBjb250ZW50IGZyb20gZGlza1xuICAgICAgY29uc3QgbmV3Q29udGVudCA9IGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUocGF0aCk7XG5cbiAgICAgIC8vIElmIGNvbnRlbnQgaXMgc2FtZSBhcyB3aGF0IHdlIGhhdmUsIG5vIGFjdGlvbiBuZWVkZWRcbiAgICAgIGlmIChuZXdDb250ZW50ID09PSBmaWxlLmNvbnRlbnQpIHJldHVybjtcblxuICAgICAgaWYgKGZpbGUubW9kaWZpZWQpIHtcbiAgICAgICAgLy8gRmlsZSBoYXMgdW5zYXZlZCBsb2NhbCBjaGFuZ2VzIEFORCBkaXNrIGNoYW5nZWQgLSBjb25mbGljdCFcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hY3Rpb25iYXJFbGVtZW50Py5zaG93KHtcbiAgICAgICAgICBtZXNzYWdlOiBgXCIke2ZpbGUubmFtZX1cIiBjaGFuZ2VkIG9uIGRpc2suIFdoYXQgZG8geW91IHdhbnQgdG8gZG8/YCxcbiAgICAgICAgICB0eXBlOiAncXVlc3Rpb24nLFxuICAgICAgICAgIGljb246ICdsdWNpZGU6Z2l0TWVyZ2UnLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIHsgaWQ6ICdsb2FkLWRpc2snLCBsYWJlbDogJ0xvYWQgZnJvbSBEaXNrJywgcHJpbWFyeTogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBpZDogJ3NhdmUtbG9jYWwnLCBsYWJlbDogJ1NhdmUgTG9jYWwgdG8gRGlzaycgfSxcbiAgICAgICAgICAgIHsgaWQ6ICdjb21wYXJlJywgbGFiZWw6ICdDb21wYXJlJyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgdGltZW91dDogeyBkdXJhdGlvbjogMTUwMDAsIGRlZmF1bHRBY3Rpb25JZDogJ2xvYWQtZGlzaycgfSxcbiAgICAgICAgICBkaXNtaXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlc3VsdD8uYWN0aW9uSWQgPT09ICdsb2FkLWRpc2snKSB7XG4gICAgICAgICAgLy8gRGlzY2FyZCBsb2NhbCBjaGFuZ2VzLCBsb2FkIGRpc2sgdmVyc2lvblxuICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlRmlsZUNvbnRlbnQocGF0aCwgbmV3Q29udGVudCwgZmFsc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdD8uYWN0aW9uSWQgPT09ICdzYXZlLWxvY2FsJykge1xuICAgICAgICAgIC8vIEtlZXAgbG9jYWwgY2hhbmdlcyBhbmQgc2F2ZSB0byBkaXNrIChvdmVyd3JpdGUgZXh0ZXJuYWwpXG4gICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUocGF0aCwgZmlsZS5jb250ZW50KTtcbiAgICAgICAgICAvLyBNYXJrIGFzIHNhdmVkXG4gICAgICAgICAgdGhpcy5vcGVuRmlsZXMgPSB0aGlzLm9wZW5GaWxlcy5tYXAoZiA9PlxuICAgICAgICAgICAgZi5wYXRoID09PSBwYXRoID8geyAuLi5mLCBtb2RpZmllZDogZmFsc2UgfSA6IGZcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdD8uYWN0aW9uSWQgPT09ICdjb21wYXJlJykge1xuICAgICAgICAgIC8vIE9wZW4gZGlmZiB2aWV3XG4gICAgICAgICAgdGhpcy5vcGVuRGlmZlZpZXcocGF0aCwgZmlsZS5jb250ZW50LCBuZXdDb250ZW50KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBkaXNtaXNzZWQsIGRvIG5vdGhpbmcgLSB1c2VyIGNhbiBtYW51YWxseSByZXNvbHZlIGxhdGVyXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBObyBsb2NhbCBjaGFuZ2VzIC0gc2lsZW50bHkgdXBkYXRlIHdpdGggY3Vyc29yIHByZXNlcnZhdGlvblxuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KHBhdGgsIG5ld0NvbnRlbnQsIHRydWUpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oYEZhaWxlZCB0byBoYW5kbGUgZXh0ZXJuYWwgY2hhbmdlIGZvciAke3BhdGh9OmAsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGZpbGUgY29udGVudCBpbiBzdGF0ZSBhbmQgb3B0aW9uYWxseSBpbiB0aGUgZWRpdG9yXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUZpbGVDb250ZW50KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuZXdDb250ZW50OiBzdHJpbmcsXG4gICAgcHJlc2VydmVDdXJzb3I6IGJvb2xlYW5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVXBkYXRlIGludGVybmFsIHN0YXRlXG4gICAgdGhpcy5vcGVuRmlsZXMgPSB0aGlzLm9wZW5GaWxlcy5tYXAoZiA9PlxuICAgICAgZi5wYXRoID09PSBwYXRoID8geyAuLi5mLCBjb250ZW50OiBuZXdDb250ZW50LCBtb2RpZmllZDogZmFsc2UgfSA6IGZcbiAgICApO1xuXG4gICAgLy8gSWYgdGhpcyBpcyB0aGUgYWN0aXZlIGZpbGUsIHVwZGF0ZSBNb25hY28gZWRpdG9yXG4gICAgaWYgKHBhdGggPT09IHRoaXMuYWN0aXZlRmlsZVBhdGgpIHtcbiAgICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignZGVlcy13b3Jrc3BhY2UtbW9uYWNvJykgYXMgRGVlc1dvcmtzcGFjZU1vbmFjbztcbiAgICAgIGlmIChlZGl0b3IpIHtcbiAgICAgICAgYXdhaXQgZWRpdG9yLnNldENvbnRlbnRFeHRlcm5hbChuZXdDb250ZW50LCBwcmVzZXJ2ZUN1cnNvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9wZW4gdGhlIGRpZmYgdmlldyB0byBjb21wYXJlIGxvY2FsIGFuZCBkaXNrIHZlcnNpb25zXG4gICAqL1xuICBwcml2YXRlIG9wZW5EaWZmVmlldyhwYXRoOiBzdHJpbmcsIGxvY2FsQ29udGVudDogc3RyaW5nLCBkaXNrQ29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kaWZmVmlld0NvbmZpZyA9IHtcbiAgICAgIGZpbGVQYXRoOiBwYXRoLFxuICAgICAgb3JpZ2luYWxDb250ZW50OiBkaXNrQ29udGVudCxcbiAgICAgIG1vZGlmaWVkQ29udGVudDogbG9jYWxDb250ZW50LFxuICAgICAgbGFuZ3VhZ2U6IHRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChwYXRoKSxcbiAgICB9O1xuICAgIHRoaXMuc2hvd0RpZmZWaWV3ID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgZGlmZiB2aWV3IHJlc29sdXRpb25cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlRGlmZlJlc29sdmVkKGU6IEN1c3RvbUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBhY3Rpb24sIGNvbnRlbnQgfSA9IGUuZGV0YWlsO1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLmRpZmZWaWV3Q29uZmlnPy5maWxlUGF0aDtcblxuICAgIGlmICghcGF0aCB8fCAhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkge1xuICAgICAgdGhpcy5zaG93RGlmZlZpZXcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZGlmZlZpZXdDb25maWcgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChhY3Rpb24gPT09ICd1c2UtbG9jYWwnKSB7XG4gICAgICAvLyBTYXZlIGxvY2FsIGNvbnRlbnQgdG8gZGlza1xuICAgICAgYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUocGF0aCwgY29udGVudCk7XG4gICAgICB0aGlzLm9wZW5GaWxlcyA9IHRoaXMub3BlbkZpbGVzLm1hcChmID0+XG4gICAgICAgIGYucGF0aCA9PT0gcGF0aCA/IHsgLi4uZiwgY29udGVudCwgbW9kaWZpZWQ6IGZhbHNlIH0gOiBmXG4gICAgICApO1xuICAgICAgLy8gVXBkYXRlIGVkaXRvciBpZiBhY3RpdmVcbiAgICAgIGlmIChwYXRoID09PSB0aGlzLmFjdGl2ZUZpbGVQYXRoKSB7XG4gICAgICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignZGVlcy13b3Jrc3BhY2UtbW9uYWNvJykgYXMgRGVlc1dvcmtzcGFjZU1vbmFjbztcbiAgICAgICAgaWYgKGVkaXRvcikge1xuICAgICAgICAgIGF3YWl0IGVkaXRvci5zZXRDb250ZW50RXh0ZXJuYWwoY29udGVudCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhY3Rpb24gPT09ICd1c2UtZGlzaycpIHtcbiAgICAgIC8vIFVwZGF0ZSBlZGl0b3Igd2l0aCBkaXNrIGNvbnRlbnRcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlRmlsZUNvbnRlbnQocGF0aCwgY29udGVudCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd0RpZmZWaWV3ID0gZmFsc2U7XG4gICAgdGhpcy5kaWZmVmlld0NvbmZpZyA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUZpbGVTZWxlY3QoZTogQ3VzdG9tRXZlbnQ8eyBwYXRoOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9Pikge1xuICAgIGNvbnN0IHsgcGF0aCwgbmFtZSB9ID0gZS5kZXRhaWw7XG4gICAgYXdhaXQgdGhpcy5vcGVuRmlsZShwYXRoLCBuYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb3BlbkZpbGUocGF0aDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcbiAgICAvLyBDaGVjayBpZiBhbHJlYWR5IG9wZW5cbiAgICBjb25zdCBleGlzdGluZ0ZpbGUgPSB0aGlzLm9wZW5GaWxlcy5maW5kKGYgPT4gZi5wYXRoID09PSBwYXRoKTtcbiAgICBpZiAoZXhpc3RpbmdGaWxlKSB7XG4gICAgICB0aGlzLmFjdGl2ZUZpbGVQYXRoID0gcGF0aDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBMb2FkIGZpbGUgY29udGVudFxuICAgIGlmICghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKHBhdGgpO1xuICAgICAgdGhpcy5vcGVuRmlsZXMgPSBbXG4gICAgICAgIC4uLnRoaXMub3BlbkZpbGVzLFxuICAgICAgICB7IHBhdGgsIG5hbWUsIGNvbnRlbnQsIG1vZGlmaWVkOiBmYWxzZSB9LFxuICAgICAgXTtcbiAgICAgIHRoaXMuYWN0aXZlRmlsZVBhdGggPSBwYXRoO1xuXG4gICAgICAvLyBTdGFydCB3YXRjaGluZyBmb3IgZXh0ZXJuYWwgY2hhbmdlc1xuICAgICAgdGhpcy5zdGFydFdhdGNoaW5nRmlsZShwYXRoKTtcblxuICAgICAgLy8gSW5pdGlhbGl6ZSBJbnRlbGxpU2Vuc2UgbGF6aWx5IGFmdGVyIGZpcnN0IGZpbGUgb3BlbnMgKE1vbmFjbyBsb2FkcyBvbiBkZW1hbmQpXG4gICAgICBpZiAoIXRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgLy8gV2FpdCBmb3IgTW9uYWNvIGVkaXRvciB0byBtb3VudCBhbmQgbG9hZCBNb25hY28gZnJvbSBDRE5cbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtcbiAgICAgICAgLy8gR2l2ZSBNb25hY28gdGltZSB0byBsb2FkIHZpYSByZXF1aXJlLmpzXG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MDApKTtcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplSW50ZWxsaVNlbnNlKCk7XG5cbiAgICAgICAgLy8gUHJvY2VzcyB0aGUgaW5pdGlhbCBmaWxlIGNvbnRlbnQgZm9yIEludGVsbGlTZW5zZVxuICAgICAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChwYXRoKTtcbiAgICAgICAgaWYgKHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciAmJiAobGFuZ3VhZ2UgPT09ICd0eXBlc2NyaXB0JyB8fCBsYW5ndWFnZSA9PT0gJ2phdmFzY3JpcHQnKSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5wcm9jZXNzQ29udGVudENoYW5nZShjb250ZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gb3BlbiBmaWxlICR7cGF0aH06YCwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVGaWxlKHBhdGg6IHN0cmluZykge1xuICAgIHRoaXMuYWN0aXZlRmlsZVBhdGggPSBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZUZpbGUoZTogRXZlbnQsIHBhdGg6IHN0cmluZykge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCBmaWxlSW5kZXggPSB0aGlzLm9wZW5GaWxlcy5maW5kSW5kZXgoZiA9PiBmLnBhdGggPT09IHBhdGgpO1xuICAgIGlmIChmaWxlSW5kZXggPT09IC0xKSByZXR1cm47XG5cbiAgICAvLyBDaGVjayBmb3IgdW5zYXZlZCBjaGFuZ2VzXG4gICAgY29uc3QgZmlsZSA9IHRoaXMub3BlbkZpbGVzW2ZpbGVJbmRleF07XG4gICAgaWYgKGZpbGUubW9kaWZpZWQpIHtcbiAgICAgIGNvbnN0IGNvbmZpcm1lZCA9IGNvbmZpcm0oYCR7ZmlsZS5uYW1lfSBoYXMgdW5zYXZlZCBjaGFuZ2VzLiBDbG9zZSBhbnl3YXk/YCk7XG4gICAgICBpZiAoIWNvbmZpcm1lZCkgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFN0b3Agd2F0Y2hpbmcgdGhpcyBmaWxlXG4gICAgdGhpcy5zdG9wV2F0Y2hpbmdGaWxlKHBhdGgpO1xuXG4gICAgdGhpcy5vcGVuRmlsZXMgPSB0aGlzLm9wZW5GaWxlcy5maWx0ZXIoZiA9PiBmLnBhdGggIT09IHBhdGgpO1xuXG4gICAgLy8gSWYgY2xvc2luZyB0aGUgYWN0aXZlIGZpbGUsIGFjdGl2YXRlIGFub3RoZXIgb25lXG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsZVBhdGggPT09IHBhdGgpIHtcbiAgICAgIGlmICh0aGlzLm9wZW5GaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gTWF0aC5taW4oZmlsZUluZGV4LCB0aGlzLm9wZW5GaWxlcy5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5hY3RpdmVGaWxlUGF0aCA9IHRoaXMub3BlbkZpbGVzW25ld0luZGV4XS5wYXRoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hY3RpdmVGaWxlUGF0aCA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aXZlRmlsZUNvbnRlbnQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaWxlID0gdGhpcy5vcGVuRmlsZXMuZmluZChmID0+IGYucGF0aCA9PT0gdGhpcy5hY3RpdmVGaWxlUGF0aCk7XG4gICAgcmV0dXJuIGZpbGU/LmNvbnRlbnQgfHwgJyc7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNvbnRlbnRDaGFuZ2UoZTogQ3VzdG9tRXZlbnQpIHtcbiAgICBjb25zdCBuZXdDb250ZW50ID0gZS5kZXRhaWw7XG4gICAgY29uc3QgZmlsZUluZGV4ID0gdGhpcy5vcGVuRmlsZXMuZmluZEluZGV4KGYgPT4gZi5wYXRoID09PSB0aGlzLmFjdGl2ZUZpbGVQYXRoKTtcbiAgICBpZiAoZmlsZUluZGV4ID09PSAtMSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZmlsZSA9IHRoaXMub3BlbkZpbGVzW2ZpbGVJbmRleF07XG4gICAgaWYgKGZpbGUuY29udGVudCAhPT0gbmV3Q29udGVudCkge1xuICAgICAgdGhpcy5vcGVuRmlsZXMgPSBbXG4gICAgICAgIC4uLnRoaXMub3BlbkZpbGVzLnNsaWNlKDAsIGZpbGVJbmRleCksXG4gICAgICAgIHsgLi4uZmlsZSwgY29udGVudDogbmV3Q29udGVudCwgbW9kaWZpZWQ6IHRydWUgfSxcbiAgICAgICAgLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoZmlsZUluZGV4ICsgMSksXG4gICAgICBdO1xuXG4gICAgICAvLyBQcm9jZXNzIGNvbnRlbnQgZm9yIEludGVsbGlTZW5zZSAoZGVib3VuY2VkIHRvIGF2b2lkIHBhcnNpbmcgb24gZXZlcnkga2V5c3Ryb2tlKVxuICAgICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCk7XG4gICAgICBpZiAodGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyICYmIChsYW5ndWFnZSA9PT0gJ3R5cGVzY3JpcHQnIHx8IGxhbmd1YWdlID09PSAnamF2YXNjcmlwdCcpKSB7XG4gICAgICAgIGlmICh0aGlzLmludGVsbGlTZW5zZURlYm91bmNlVGltZW91dCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmludGVsbGlTZW5zZURlYm91bmNlVGltZW91dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXI/LnByb2Nlc3NDb250ZW50Q2hhbmdlKG5ld0NvbnRlbnQpO1xuICAgICAgICB9LCA1MDApOyAvLyA1MDBtcyBkZWJvdW5jZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFuZ3VhZ2VGcm9tUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGV4dCA9IHBhdGguc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBsYW5ndWFnZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIHRzOiAndHlwZXNjcmlwdCcsXG4gICAgICB0c3g6ICd0eXBlc2NyaXB0JyxcbiAgICAgIGpzOiAnamF2YXNjcmlwdCcsXG4gICAgICBqc3g6ICdqYXZhc2NyaXB0JyxcbiAgICAgIGpzb246ICdqc29uJyxcbiAgICAgIGh0bWw6ICdodG1sJyxcbiAgICAgIGNzczogJ2NzcycsXG4gICAgICBzY3NzOiAnc2NzcycsXG4gICAgICBsZXNzOiAnbGVzcycsXG4gICAgICBtZDogJ21hcmtkb3duJyxcbiAgICAgIHlhbWw6ICd5YW1sJyxcbiAgICAgIHltbDogJ3lhbWwnLFxuICAgICAgeG1sOiAneG1sJyxcbiAgICAgIHNxbDogJ3NxbCcsXG4gICAgICBweTogJ3B5dGhvbicsXG4gICAgICBzaDogJ3NoZWxsJyxcbiAgICAgIGJhc2g6ICdzaGVsbCcsXG4gICAgfTtcbiAgICByZXR1cm4gbGFuZ3VhZ2VNYXBbZXh0IHx8ICcnXSB8fCAncGxhaW50ZXh0JztcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlVGVybWluYWwoKSB7XG4gICAgdGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkID0gIXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZDtcbiAgfVxuXG4gIC8vID09PT09PT09PT0gU2F2ZSBPcGVyYXRpb25zID09PT09PT09PT1cblxuICBwdWJsaWMgYXN5bmMgc2F2ZUFjdGl2ZUZpbGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZSA9IHRoaXMub3BlbkZpbGVzLmZpbmQoZiA9PiBmLnBhdGggPT09IHRoaXMuYWN0aXZlRmlsZVBhdGgpO1xuICAgIGlmICghZmlsZSB8fCAhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkgcmV0dXJuO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGZpbGUucGF0aCwgZmlsZS5jb250ZW50KTtcblxuICAgICAgLy8gVXBkYXRlIGZpbGUgc3RhdGUgdG8gbWFyayBhcyBzYXZlZFxuICAgICAgdGhpcy5vcGVuRmlsZXMgPSB0aGlzLm9wZW5GaWxlcy5tYXAoZiA9PlxuICAgICAgICBmLnBhdGggPT09IGZpbGUucGF0aCA/IHsgLi4uZiwgbW9kaWZpZWQ6IGZhbHNlIH0gOiBmXG4gICAgICApO1xuXG4gICAgICAvLyBVcGRhdGUgSW50ZWxsaVNlbnNlIG1hbmFnZXIgd2l0aCBsYXRlc3QgY29udGVudFxuICAgICAgaWYgKHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlcikge1xuICAgICAgICB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuYWRkRmlsZU1vZGVsKGZpbGUucGF0aCwgZmlsZS5jb250ZW50KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHNhdmUgZmlsZTonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNhdmVBbGxGaWxlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpIHJldHVybjtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiB0aGlzLm9wZW5GaWxlcy5maWx0ZXIoZiA9PiBmLm1vZGlmaWVkKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoZmlsZS5wYXRoLCBmaWxlLmNvbnRlbnQpO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBJbnRlbGxpU2Vuc2UgbWFuYWdlclxuICAgICAgICBpZiAodGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyKSB7XG4gICAgICAgICAgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLmFkZEZpbGVNb2RlbChmaWxlLnBhdGgsIGZpbGUuY29udGVudCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBzYXZlICR7ZmlsZS5wYXRofTpgLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWFyayBhbGwgZmlsZXMgYXMgc2F2ZWRcbiAgICB0aGlzLm9wZW5GaWxlcyA9IHRoaXMub3BlbkZpbGVzLm1hcChmID0+ICh7IC4uLmYsIG1vZGlmaWVkOiBmYWxzZSB9KSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09IEVkaXRvciBNZW51ID09PT09PT09PT1cblxuICBwcml2YXRlIGFzeW5jIHNob3dFZGl0b3JNZW51KGU6IE1vdXNlRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgY29uc3QgbWVudUl0ZW1zOiBQYXJhbWV0ZXJzPHR5cGVvZiBEZWVzQ29udGV4dG1lbnUub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnM+WzFdID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLmF1dG9TYXZlID8gJ1x1MjcxMyBBdXRvIFNhdmUnIDogJ0F1dG8gU2F2ZScsXG4gICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnNhdmUnLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHRoaXMudG9nZ2xlQXV0b1NhdmUoKSxcbiAgICAgIH0sXG4gICAgICB7IGRpdmlkZXI6IHRydWUgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1NhdmUnLFxuICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpzYXZlJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB0aGlzLnNhdmVBY3RpdmVGaWxlKCksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnU2F2ZSBBbGwnLFxuICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpzYXZlJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB0aGlzLnNhdmVBbGxGaWxlcygpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgYXdhaXQgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGUsIG1lbnVJdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUF1dG9TYXZlKCkge1xuICAgIHRoaXMuYXV0b1NhdmUgPSAhdGhpcy5hdXRvU2F2ZTtcblxuICAgIGlmICh0aGlzLmF1dG9TYXZlKSB7XG4gICAgICAvLyBTYXZlIGV2ZXJ5IDIgc2Vjb25kcyBpZiB0aGVyZSBhcmUgY2hhbmdlc1xuICAgICAgdGhpcy5hdXRvU2F2ZUludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICBjb25zdCBoYXNVbnNhdmVkID0gdGhpcy5vcGVuRmlsZXMuc29tZShmID0+IGYubW9kaWZpZWQpO1xuICAgICAgICBpZiAoaGFzVW5zYXZlZCkge1xuICAgICAgICAgIHRoaXMuc2F2ZUFsbEZpbGVzKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDIwMDApO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hdXRvU2F2ZUludGVydmFsKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2F2ZUludGVydmFsKTtcbiAgICAgICAgdGhpcy5hdXRvU2F2ZUludGVydmFsID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEVycm9yQ291bnQoKTogbnVtYmVyIHtcbiAgICAvLyBNb25hY28gTWFya2VyU2V2ZXJpdHk6IEVycm9yID0gOCwgV2FybmluZyA9IDQsIEluZm8gPSAyLCBIaW50ID0gMVxuICAgIHJldHVybiB0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmZpbHRlcihtID0+IG0uc2V2ZXJpdHkgPT09IDgpLmxlbmd0aDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyUHJvYmxlbXNQYW5lbCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgaWYgKHRoaXMuZGlhZ25vc3RpY01hcmtlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2JsZW1zLWVtcHR5XCI+XG4gICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6Y2hlY2tDaXJjbGUnfSBpY29uU2l6ZT1cIjI0XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgPHNwYW4+Tm8gcHJvYmxlbXMgZGV0ZWN0ZWQ8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9ibGVtcy1saXN0XCI+XG4gICAgICAgICR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5tYXAobWFya2VyID0+IGh0bWxgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByb2JsZW0taXRlbVwiIEBjbGljaz0keygpID0+IHRoaXMubmF2aWdhdGVUb1Byb2JsZW0obWFya2VyKX0+XG4gICAgICAgICAgICA8ZGVlcy1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwicHJvYmxlbS1pY29uICR7bWFya2VyLnNldmVyaXR5ID09PSA4ID8gJ2Vycm9yJyA6ICd3YXJuaW5nJ31cIlxuICAgICAgICAgICAgICAuaWNvbj0ke21hcmtlci5zZXZlcml0eSA9PT0gOCA/ICdsdWNpZGU6Y2lyY2xlWCcgOiAnbHVjaWRlOnRyaWFuZ2xlQWxlcnQnfVxuICAgICAgICAgICAgICBpY29uU2l6ZT1cIjE0XCJcbiAgICAgICAgICAgID48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ibGVtLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2JsZW0tbWVzc2FnZVwiPiR7bWFya2VyLm1lc3NhZ2V9PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ibGVtLWxvY2F0aW9uXCI+XG4gICAgICAgICAgICAgICAgJHttYXJrZXIucmVzb3VyY2UucGF0aC5zcGxpdCgnLycpLnBvcCgpfSAoJHttYXJrZXIuc3RhcnRMaW5lTnVtYmVyfSwgJHttYXJrZXIuc3RhcnRDb2x1bW59KVxuICAgICAgICAgICAgICAgICR7bWFya2VyLnNvdXJjZSA/IGBbJHttYXJrZXIuc291cmNlfV1gIDogJyd9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIGApfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbmF2aWdhdGVUb1Byb2JsZW0obWFya2VyOiB0eXBlb2YgdGhpcy5kaWFnbm9zdGljTWFya2Vyc1swXSkge1xuICAgIC8vIEV4dHJhY3QgZmlsZSBwYXRoIGZyb20gcmVzb3VyY2VcbiAgICBjb25zdCBmaWxlUGF0aCA9IG1hcmtlci5yZXNvdXJjZS5wYXRoO1xuICAgIGNvbnN0IGZpbGVOYW1lID0gZmlsZVBhdGguc3BsaXQoJy8nKS5wb3AoKSB8fCAnJztcblxuICAgIC8vIE9wZW4gdGhlIGZpbGUgaWYgbm90IGFscmVhZHkgb3BlblxuICAgIGNvbnN0IGV4aXN0aW5nRmlsZSA9IHRoaXMub3BlbkZpbGVzLmZpbmQoZiA9PiBmLnBhdGggPT09IGZpbGVQYXRoKTtcbiAgICBpZiAoIWV4aXN0aW5nRmlsZSkge1xuICAgICAgYXdhaXQgdGhpcy5vcGVuRmlsZShmaWxlUGF0aCwgZmlsZU5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZUZpbGVQYXRoID0gZmlsZVBhdGg7XG4gICAgfVxuXG4gICAgLy8gV2FpdCBmb3IgZWRpdG9yIHRvIGJlIHJlYWR5LCB0aGVuIG5hdmlnYXRlIHRvIHRoZSBsaW5lXG4gICAgYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtcbiAgICBjb25zdCBlZGl0b3JFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCdkZWVzLXdvcmtzcGFjZS1tb25hY28nKSBhcyBEZWVzV29ya3NwYWNlTW9uYWNvO1xuICAgIGlmIChlZGl0b3JFbGVtZW50KSB7XG4gICAgICBjb25zdCBlZGl0b3IgPSBhd2FpdCBlZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2U7XG4gICAgICBlZGl0b3IucmV2ZWFsTGluZUluQ2VudGVyKG1hcmtlci5zdGFydExpbmVOdW1iZXIpO1xuICAgICAgZWRpdG9yLnNldFBvc2l0aW9uKHtcbiAgICAgICAgbGluZU51bWJlcjogbWFya2VyLnN0YXJ0TGluZU51bWJlcixcbiAgICAgICAgY29sdW1uOiBtYXJrZXIuc3RhcnRDb2x1bW4sXG4gICAgICB9KTtcbiAgICAgIGVkaXRvci5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBNYXJrZXJMaXN0ZW5lcigpIHtcbiAgICBjb25zdCBtb25hY29JbnN0YW5jZSA9ICh3aW5kb3cgYXMgYW55KS5tb25hY287XG4gICAgaWYgKCFtb25hY29JbnN0YW5jZSkgcmV0dXJuO1xuXG4gICAgLy8gTGlzdGVuIGZvciBtYXJrZXIgY2hhbmdlc1xuICAgIG1vbmFjb0luc3RhbmNlLmVkaXRvci5vbkRpZENoYW5nZU1hcmtlcnMoKHVyaXM6IGFueVtdKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCk7XG4gICAgfSk7XG5cbiAgICAvLyBJbml0aWFsIGxvYWRcbiAgICB0aGlzLnVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCkge1xuICAgIGNvbnN0IG1vbmFjb0luc3RhbmNlID0gKHdpbmRvdyBhcyBhbnkpLm1vbmFjbztcbiAgICBpZiAoIW1vbmFjb0luc3RhbmNlKSByZXR1cm47XG5cbiAgICAvLyBHZXQgYWxsIG1hcmtlcnMgZnJvbSBNb25hY29cbiAgICBjb25zdCBhbGxNYXJrZXJzID0gbW9uYWNvSW5zdGFuY2UuZWRpdG9yLmdldE1vZGVsTWFya2Vycyh7fSk7XG5cbiAgICAvLyBUcmFuc2Zvcm0gdG8gb3VyIGZvcm1hdFxuICAgIHRoaXMuZGlhZ25vc3RpY01hcmtlcnMgPSBhbGxNYXJrZXJzLm1hcCgobTogYW55KSA9PiAoe1xuICAgICAgbWVzc2FnZTogbS5tZXNzYWdlLFxuICAgICAgc2V2ZXJpdHk6IG0uc2V2ZXJpdHksXG4gICAgICBzdGFydExpbmVOdW1iZXI6IG0uc3RhcnRMaW5lTnVtYmVyLFxuICAgICAgc3RhcnRDb2x1bW46IG0uc3RhcnRDb2x1bW4sXG4gICAgICBlbmRMaW5lTnVtYmVyOiBtLmVuZExpbmVOdW1iZXIsXG4gICAgICBlbmRDb2x1bW46IG0uZW5kQ29sdW1uLFxuICAgICAgc291cmNlOiBtLnNvdXJjZSxcbiAgICAgIHJlc291cmNlOiB7IHBhdGg6IG0ucmVzb3VyY2UucGF0aCB9LFxuICAgIH0pKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT0gQm90dG9tIEJhciBFdmVudCBIYW5kbGVycyA9PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBydW4tcHJvY2VzcyBldmVudHMgZnJvbSBib3R0b20gYmFyIHdpZGdldHNcbiAgICogQ3JlYXRlcyBhIG5ldyB0ZXJtaW5hbCB0YWIgZm9yIHRoZSBwcm9jZXNzXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZVJ1blByb2Nlc3MoZTogQ3VzdG9tRXZlbnQ8SVJ1blByb2Nlc3NFdmVudERldGFpbD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkZXRhaWwgPSBlLmRldGFpbDtcblxuICAgIC8vIEZpbmQgdGhlIHRlcm1pbmFsIGNvbXBvbmVudFxuICAgIGNvbnN0IHRlcm1pbmFsID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCdkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCcpIGFzIERlZXNXb3Jrc3BhY2VUZXJtaW5hbDtcbiAgICBpZiAoIXRlcm1pbmFsKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1Rlcm1pbmFsIGNvbXBvbmVudCBub3QgZm91bmQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFeHBhbmQgdGVybWluYWwgaWYgY29sbGFwc2VkXG4gICAgaWYgKHRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZCkge1xuICAgICAgdGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gU3dpdGNoIHRvIHRlcm1pbmFsIHBhbmVsXG4gICAgdGhpcy5hY3RpdmVCb3R0b21QYW5lbCA9ICd0ZXJtaW5hbCc7XG5cbiAgICAvLyBXYWl0IGZvciBVSSB1cGRhdGVcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO1xuXG4gICAgLy8gQ3JlYXRlIGEgbmV3IHRlcm1pbmFsIHRhYiBmb3IgdGhlIHByb2Nlc3NcbiAgICBhd2FpdCB0ZXJtaW5hbC5jcmVhdGVQcm9jZXNzVGFiKHtcbiAgICAgIHR5cGU6IGRldGFpbC50eXBlLFxuICAgICAgbGFiZWw6IGRldGFpbC5sYWJlbCxcbiAgICAgIGNvbW1hbmQ6IGRldGFpbC5jb21tYW5kLFxuICAgICAgYXJnczogZGV0YWlsLmFyZ3MsXG4gICAgICBtZXRhZGF0YTogZGV0YWlsLm1ldGFkYXRhLFxuICAgICAgc3dpdGNoVG9UYWI6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09IFB1YmxpYyBMYXlvdXQgTWV0aG9kcyA9PT09PT09PT09XG5cbiAgLyoqXG4gICAqIFByb2dyYW1tYXRpY2FsbHkgc2V0IHRoZSBmaWxlIHRyZWUgd2lkdGhcbiAgICovXG4gIHB1YmxpYyBzZXRGaWxlVHJlZVdpZHRoKHdpZHRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBtaW5XaWR0aCA9IDE1MDtcbiAgICBjb25zdCBtYXhXaWR0aCA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggKiAwLjU7XG4gICAgdGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aCA9IE1hdGgubWF4KG1pbldpZHRoLCBNYXRoLm1pbihtYXhXaWR0aCwgd2lkdGgpKTtcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZScpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9ncmFtbWF0aWNhbGx5IHNldCB0aGUgdGVybWluYWwgaGVpZ2h0XG4gICAqL1xuICBwdWJsaWMgc2V0VGVybWluYWxIZWlnaHQoaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBtaW5IZWlnaHQgPSAxMDA7XG4gICAgY29uc3QgbWF4SGVpZ2h0ID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgKiAwLjc7XG4gICAgdGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQgPSBNYXRoLm1heChtaW5IZWlnaHQsIE1hdGgubWluKG1heEhlaWdodCwgaGVpZ2h0KSk7XG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgbGF5b3V0IHRvIGluaXRpYWwgcHJvcGVydHkgdmFsdWVzXG4gICAqL1xuICBwdWJsaWMgcmVzZXRMYXlvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aCA9IHRoaXMuZmlsZVRyZWVXaWR0aDtcbiAgICB0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodCA9IHRoaXMudGVybWluYWxIZWlnaHQ7XG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnKSk7XG4gIH1cbn1cbiIsICJleHBvcnQgKiBmcm9tICcuL2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Rlcm1pbmFsLXRhYi1tYW5hZ2VyLmpzJztcbiIsICJpbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgcHJvcGVydHksXG4gIGh0bWwsXG4gIGN1c3RvbUVsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbiAgZG9tdG9vbHMsXG4gIHN0YXRlLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5pbXBvcnQgeyBEZWVzV29ya3NwYWNlTW9uYWNvIH0gZnJvbSAnLi4vZGVlcy13b3Jrc3BhY2UtbW9uYWNvL2RlZXMtd29ya3NwYWNlLW1vbmFjby5qcyc7XG5cbmNvbnN0IGRlZmVycmVkID0gZG9tdG9vbHMucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24nOiBEZWVzV29ya3NwYWNlTWFya2Rvd247XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtd29ya3NwYWNlLW1hcmtkb3duJylcbmV4cG9ydCBjbGFzcyBEZWVzV29ya3NwYWNlTWFya2Rvd24gZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9ICgpID0+IGh0bWxgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3duPjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24+YDtcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnV29ya3NwYWNlJztcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnNwbGl0Q29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgfVxuXG4gICAgICAuZWRpdG9yQ29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5yZXNpemVIYW5kbGUge1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzMDM2M2QnKX07XG4gICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAucmVzaXplSGFuZGxlOmhvdmVyLFxuICAgICAgLnJlc2l6ZUhhbmRsZS5kcmFnZ2luZyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyM1OGE2ZmYnKX07XG4gICAgICB9XG5cbiAgICAgIC5yZXNpemVIYW5kbGU6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5Y2EzYWYnLCAnIzZlNzY4MScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICB9XG5cbiAgICAgIC5yZXNpemVIYW5kbGU6aG92ZXI6OmFmdGVyLFxuICAgICAgLnJlc2l6ZUhhbmRsZS5kcmFnZ2luZzo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjZmZmZmZmJyl9O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAub3V0bGV0Q29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwZDExMTcnKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzI0MjkyZicsICcjZTZlZGYzJyl9O1xuICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnTm90byBTYW5zJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cblxuICAgICAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGlsZSBkcmFnZ2luZyAqL1xuICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIHtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5zcGxpdENvbnRhaW5lci5kcmFnZ2luZyAuZWRpdG9yQ29udGFpbmVyLFxuICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5vdXRsZXRDb250YWluZXIge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHNwbGl0IHJhdGlvIGZvciB0aGUgZWRpdG9yIChsZWZ0KSBwYW5lbC5cbiAgICogVmFsdWUgZnJvbSAwIHRvIDEwMCByZXByZXNlbnRpbmcgcGVyY2VudGFnZSB3aWR0aC5cbiAgICogRGVmYXVsdCBpcyA1MCAoNTAvNTAgc3BsaXQpLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIHNwbGl0UmF0aW86IG51bWJlciA9IDUwO1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIHdpZHRoIHBlcmNlbnRhZ2UgZm9yIGVpdGhlciBwYW5lbC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBtaW5QYW5lbFNpemU6IG51bWJlciA9IDEwO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGN1cnJlbnRTcGxpdFJhdGlvOiBudW1iZXIgPSA1MDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBpc0RyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZXNpemVIYW5kbGVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNwbGl0Q29udGFpbmVyICR7dGhpcy5pc0RyYWdnaW5nID8gJ2RyYWdnaW5nJyA6ICcnfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yQ29udGFpbmVyXCIgc3R5bGU9XCJ3aWR0aDogJHt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvfSVcIj5cbiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvXG4gICAgICAgICAgICAubGFuZ3VhZ2U9JHsnbWFya2Rvd24nfVxuICAgICAgICAgICAgLmNvbnRlbnQ9JHtgIyBhIHRlc3QgY29udGVudFxuXG5UaGlzIGlzIHRlc3QgY29udGVudCB0aGF0IGlzIG9mIGxvbmdlciBmb3JtIGFuIGhvcGVmdWxseSBzdGFydHMgdG8gd3JhcCB3aGVuIEkgbmVlZCBpdC4gQW5kIHllcywgaXQgZG9lcyBwZXJmZWN0bHkuIG5pY2UuXG5cblRlc3QgfCBIZWxsb1xuLS0tIHwgLS0tXG5ZZWFoIHwgU28gZ29vZFxuXG5UaGlzIGlzIHJlYWwgYXNzZXQgSSB0aGluay4gV2h5IHdvdWxkIHdlIHdhbnQgdG8gbGVhdmUgdGhhdCBvbiB0aGUgdGFibGU/IENhbiB5b3UgdGVsbCBteSB0aGF0P1xuXG5XaHkgYXJlIHdlIGhlcmU/XG5cbkRvIHlvdSBrbm93P1xuXG4+IG5vdGU6XG5UaGVyZSBpcyBzb21ldGhpbmcgZ29pbmcgb24uXG5cblxcYFxcYFxcYHR5cGVzY3JpcHRcbmNvbnN0IGhlbGxvID0gJ3llcydcblxcYFxcYFxcYFxuYH1cbiAgICAgICAgICAgIHdvcmRXcmFwPVwiYm91bmRlZFwiXG4gICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwicmVzaXplSGFuZGxlICR7dGhpcy5pc0RyYWdnaW5nID8gJ2RyYWdnaW5nJyA6ICcnfVwiXG4gICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlTW91c2VEb3dufVxuICAgICAgICA+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdXRsZXRDb250YWluZXJcIiBzdHlsZT1cIndpZHRoOiAkezEwMCAtIHRoaXMuY3VycmVudFNwbGl0UmF0aW99JVwiPlxuICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllc0FyZykge1xuICAgIGF3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChfY2hhbmdlZFByb3BlcnRpZXNBcmcpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBjdXJyZW50IHJhdGlvIGZyb20gcHJvcGVydHlcbiAgICB0aGlzLmN1cnJlbnRTcGxpdFJhdGlvID0gdGhpcy5zcGxpdFJhdGlvO1xuXG4gICAgLy8gQ2FjaGUgZWxlbWVudHNcbiAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnNwbGl0Q29udGFpbmVyJyk7XG4gICAgdGhpcy5yZXNpemVIYW5kbGVFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5yZXNpemVIYW5kbGUnKTtcblxuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdkZWVzLXdvcmtzcGFjZS1tb25hY28nKSBhcyBEZWVzV29ya3NwYWNlTW9uYWNvO1xuXG4gICAgLy8gV2lyZSB1cCBtYXJrZG93biByZW5kZXJpbmdcbiAgICBjb25zdCBtYXJrZG93bk91dGxldCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCcpO1xuICAgIGNvbnN0IHNtYXJ0bWFya2Rvd25JbnN0YW5jZSA9IG5ldyBkb210b29scy5wbHVnaW5zLnNtYXJ0bWFya2Rvd24uU21hcnRNYXJrZG93bigpO1xuICAgIGNvbnN0IG1kUGFyc2VkUmVzdWx0ID0gYXdhaXQgc21hcnRtYXJrZG93bkluc3RhbmNlLmdldE1kUGFyc2VkUmVzdWx0RnJvbU1hcmtkb3duKCdsb2FkaW5nLi4uJylcbiAgICBlZGl0b3IuY29udGVudFN1YmplY3Quc3Vic2NyaWJlKGFzeW5jIGNvbnRlbnRBcmcgPT4ge1xuICAgICAgYXdhaXQgbWRQYXJzZWRSZXN1bHQudXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKGNvbnRlbnRBcmcpXG4gICAgICBjb25zdCBodG1sID0gbWRQYXJzZWRSZXN1bHQuaHRtbDtcbiAgICAgIG1hcmtkb3duT3V0bGV0LnVwZGF0ZUh0bWxUZXh0KGh0bWwpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZURvd24gPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVNb3VzZU1vdmUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmhhbmRsZU1vdXNlVXApO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlTW91c2VNb3ZlID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAoIXRoaXMuaXNEcmFnZ2luZyB8fCAhdGhpcy5jb250YWluZXJFbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBjb250YWluZXJSZWN0ID0gdGhpcy5jb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyUmVjdC53aWR0aDtcbiAgICBjb25zdCBtb3VzZVggPSBlLmNsaWVudFggLSBjb250YWluZXJSZWN0LmxlZnQ7XG5cbiAgICAvLyBDYWxjdWxhdGUgcGVyY2VudGFnZSwgYWNjb3VudGluZyBmb3IgdGhlIHJlc2l6ZSBoYW5kbGUgd2lkdGggKDZweClcbiAgICBsZXQgbmV3UmF0aW8gPSAobW91c2VYIC8gY29udGFpbmVyV2lkdGgpICogMTAwO1xuXG4gICAgLy8gQ2xhbXAgdG8gbWluL21heFxuICAgIG5ld1JhdGlvID0gTWF0aC5tYXgodGhpcy5taW5QYW5lbFNpemUsIE1hdGgubWluKDEwMCAtIHRoaXMubWluUGFuZWxTaXplLCBuZXdSYXRpbykpO1xuXG4gICAgdGhpcy5jdXJyZW50U3BsaXRSYXRpbyA9IG5ld1JhdGlvO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlTW91c2VVcCA9ICgpID0+IHtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZU1vdXNlTW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuaGFuZGxlTW91c2VVcCk7XG5cbiAgICAvLyBUcmlnZ2VyIHJlc2l6ZSBvbiBtb25hY28gZWRpdG9yXG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtd29ya3NwYWNlLW1vbmFjbycpIGFzIERlZXNXb3Jrc3BhY2VNb25hY287XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgLy8gTW9uYWNvIG5lZWRzIHRvIGJlIG5vdGlmaWVkIG9mIHNpemUgY2hhbmdlc1xuICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnKSk7XG4gICAgfVxuICB9O1xuXG4gIGFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgLy8gQ2xlYW4gdXAgZXZlbnQgbGlzdGVuZXJzXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVNb3VzZU1vdmUpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmhhbmRsZU1vdXNlVXApO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2dyYW1tYXRpY2FsbHkgc2V0IHRoZSBzcGxpdCByYXRpb1xuICAgKi9cbiAgcHVibGljIHNldFNwbGl0UmF0aW8ocmF0aW86IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudFNwbGl0UmF0aW8gPSBNYXRoLm1heCh0aGlzLm1pblBhbmVsU2l6ZSwgTWF0aC5taW4oMTAwIC0gdGhpcy5taW5QYW5lbFNpemUsIHJhdGlvKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdG8gaW5pdGlhbCBzcGxpdCByYXRpb1xuICAgKi9cbiAgcHVibGljIHJlc2V0U3BsaXRSYXRpbygpIHtcbiAgICB0aGlzLmN1cnJlbnRTcGxpdFJhdGlvID0gdGhpcy5zcGxpdFJhdGlvO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgaHRtbCwgY3NzIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAnQGRlc2lnbi5lc3RhdGUvZGVlcy13Y2N0b29scy9kZW1vdG9vbHMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLXBhbmVsL2RlZXMtcGFuZWwuanMnO1xuaW1wb3J0IHR5cGUgeyBEZWVzV29ya3NwYWNlTWFya2Rvd25vdXRsZXQgfSBmcm9tICcuL2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0LmpzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGBcbiAgPGRlZXMtZGVtb3dyYXBwZXI+XG4gICAgPHN0eWxlPlxuICAgICAgJHtjc3NgXG4gICAgICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPC9zdHlsZT5cblxuICAgIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRhaW5lclwiPlxuICAgICAgPCEtLSBEZW1vIDE6IEhlYWRpbmdzIC0tPlxuICAgICAgPGRlZXMtcGFuZWxcbiAgICAgICAgLnRpdGxlPSR7J0hlYWRpbmdzJ31cbiAgICAgICAgLnN1YnRpdGxlPSR7J0FsbCBoZWFkaW5nIGxldmVscyBmcm9tIEgxIHRvIEg2J31cbiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKHBhbmVsRWw6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3V0bGV0ID0gcGFuZWxFbC5xdWVyeVNlbGVjdG9yKCdkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCcpIGFzIERlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldDtcbiAgICAgICAgICBhd2FpdCBvdXRsZXQ/LnVwZGF0ZUh0bWxUZXh0KGBcbiAgICAgICAgICAgIDxoMT5IZWFkaW5nIExldmVsIDE8L2gxPlxuICAgICAgICAgICAgPGgyPkhlYWRpbmcgTGV2ZWwgMjwvaDI+XG4gICAgICAgICAgICA8aDM+SGVhZGluZyBMZXZlbCAzPC9oMz5cbiAgICAgICAgICAgIDxoND5IZWFkaW5nIExldmVsIDQ8L2g0PlxuICAgICAgICAgICAgPGg1PkhlYWRpbmcgTGV2ZWwgNTwvaDU+XG4gICAgICAgICAgICA8aDY+SGVhZGluZyBMZXZlbCA2PC9oNj5cbiAgICAgICAgICBgKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+XG4gICAgICA8L2RlZXMtcGFuZWw+XG5cbiAgICAgIDwhLS0gRGVtbyAyOiBUZXh0IEZvcm1hdHRpbmcgLS0+XG4gICAgICA8ZGVlcy1wYW5lbFxuICAgICAgICAudGl0bGU9JHsnVGV4dCBGb3JtYXR0aW5nJ31cbiAgICAgICAgLnN1YnRpdGxlPSR7J0JvbGQsIGl0YWxpYywgbGlua3MsIGNvZGUsIGFuZCBrZXlib2FyZCBpbnB1dCd9XG4gICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChwYW5lbEVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG91dGxldCA9IHBhbmVsRWwucXVlcnlTZWxlY3RvcignZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQnKSBhcyBEZWVzV29ya3NwYWNlTWFya2Rvd25vdXRsZXQ7XG4gICAgICAgICAgYXdhaXQgb3V0bGV0Py51cGRhdGVIdG1sVGV4dChgXG4gICAgICAgICAgICA8cD5UaGlzIGlzIGEgcGFyYWdyYXBoIHdpdGggPHN0cm9uZz5ib2xkIHRleHQ8L3N0cm9uZz4gYW5kIDxlbT5pdGFsaWMgdGV4dDwvZW0+LjwvcD5cbiAgICAgICAgICAgIDxwPllvdSBjYW4gYWxzbyB1c2UgPHN0cm9uZz48ZW0+Ym9sZCBpdGFsaWM8L2VtPjwvc3Ryb25nPiBmb3IgZW1waGFzaXMuPC9wPlxuICAgICAgICAgICAgPHA+SGVyZSdzIGEgPGEgaHJlZj1cIiNcIj5saW5rIGV4YW1wbGU8L2E+IGFuZCBzb21lIDxjb2RlPmlubGluZSBjb2RlPC9jb2RlPi48L3A+XG4gICAgICAgICAgICA8cD5QcmVzcyA8a2JkPkN0cmw8L2tiZD4gKyA8a2JkPkM8L2tiZD4gdG8gY29weSB0ZXh0LjwvcD5cbiAgICAgICAgICAgIDxocj5cbiAgICAgICAgICAgIDxwPkFib3ZlIGlzIGEgaG9yaXpvbnRhbCBydWxlIHNlcGFyYXRvci48L3A+XG4gICAgICAgICAgYCk7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuXG4gICAgICA8IS0tIERlbW8gMzogTGlzdHMgLS0+XG4gICAgICA8ZGVlcy1wYW5lbFxuICAgICAgICAudGl0bGU9JHsnTGlzdHMnfVxuICAgICAgICAuc3VidGl0bGU9JHsnT3JkZXJlZCwgdW5vcmRlcmVkLCBhbmQgdGFzayBsaXN0cyd9XG4gICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChwYW5lbEVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG91dGxldCA9IHBhbmVsRWwucXVlcnlTZWxlY3RvcignZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQnKSBhcyBEZWVzV29ya3NwYWNlTWFya2Rvd25vdXRsZXQ7XG4gICAgICAgICAgYXdhaXQgb3V0bGV0Py51cGRhdGVIdG1sVGV4dChgXG4gICAgICAgICAgICA8aDM+VW5vcmRlcmVkIExpc3Q8L2gzPlxuICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICA8bGk+Rmlyc3QgaXRlbTwvbGk+XG4gICAgICAgICAgICAgIDxsaT5TZWNvbmQgaXRlbVxuICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgaXRlbSAxPC9saT5cbiAgICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgaXRlbSAyPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGk+VGhpcmQgaXRlbTwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuXG4gICAgICAgICAgICA8aDM+T3JkZXJlZCBMaXN0PC9oMz5cbiAgICAgICAgICAgIDxvbD5cbiAgICAgICAgICAgICAgPGxpPlN0ZXAgb25lPC9saT5cbiAgICAgICAgICAgICAgPGxpPlN0ZXAgdHdvPC9saT5cbiAgICAgICAgICAgICAgPGxpPlN0ZXAgdGhyZWU8L2xpPlxuICAgICAgICAgICAgPC9vbD5cblxuICAgICAgICAgICAgPGgzPlRhc2sgTGlzdDwvaDM+XG4gICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cInRhc2stbGlzdC1pdGVtXCI+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQgZGlzYWJsZWQ+IENvbXBsZXRlZCB0YXNrPC9saT5cbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwidGFzay1saXN0LWl0ZW1cIj48aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgZGlzYWJsZWQ+IFBlbmRpbmcgdGFzazwvbGk+XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cInRhc2stbGlzdC1pdGVtXCI+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGRpc2FibGVkPiBBbm90aGVyIHRhc2s8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICBgKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+XG4gICAgICA8L2RlZXMtcGFuZWw+XG5cbiAgICAgIDwhLS0gRGVtbyA0OiBDb2RlIEJsb2NrcyAtLT5cbiAgICAgIDxkZWVzLXBhbmVsXG4gICAgICAgIC50aXRsZT0keydDb2RlIEJsb2Nrcyd9XG4gICAgICAgIC5zdWJ0aXRsZT0keydTeW50YXggaGlnaGxpZ2h0ZWQgY29kZSBleGFtcGxlcyd9XG4gICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChwYW5lbEVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG91dGxldCA9IHBhbmVsRWwucXVlcnlTZWxlY3RvcignZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQnKSBhcyBEZWVzV29ya3NwYWNlTWFya2Rvd25vdXRsZXQ7XG4gICAgICAgICAgYXdhaXQgb3V0bGV0Py51cGRhdGVIdG1sVGV4dChgXG4gICAgICAgICAgICA8cD5JbmxpbmUgY29kZTogPGNvZGU+Y29uc3QgZ3JlZXRpbmcgPSBcIkhlbGxvLCBXb3JsZCFcIjs8L2NvZGU+PC9wPlxuXG4gICAgICAgICAgICA8aDM+VHlwZVNjcmlwdCBFeGFtcGxlPC9oMz5cbiAgICAgICAgICAgIDxwcmU+PGNvZGU+PHNwYW4gY2xhc3M9XCJobGpzLWtleXdvcmRcIj5pbXBvcnQ8L3NwYW4+IHsgaHRtbCwgY3NzIH0gPHNwYW4gY2xhc3M9XCJobGpzLWtleXdvcmRcIj5mcm9tPC9zcGFuPiA8c3BhbiBjbGFzcz1cImhsanMtc3RyaW5nXCI+J0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc8L3NwYW4+O1xuXG48c3BhbiBjbGFzcz1cImhsanMta2V5d29yZFwiPmludGVyZmFjZTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJobGpzLXRpdGxlXCI+SVVzZXI8L3NwYW4+IHtcbiAgPHNwYW4gY2xhc3M9XCJobGpzLWF0dHJcIj5uYW1lPC9zcGFuPjogPHNwYW4gY2xhc3M9XCJobGpzLWJ1aWx0X2luXCI+c3RyaW5nPC9zcGFuPjtcbiAgPHNwYW4gY2xhc3M9XCJobGpzLWF0dHJcIj5lbWFpbDwvc3Bhbj46IDxzcGFuIGNsYXNzPVwiaGxqcy1idWlsdF9pblwiPnN0cmluZzwvc3Bhbj47XG4gIDxzcGFuIGNsYXNzPVwiaGxqcy1hdHRyXCI+YWdlPC9zcGFuPj86IDxzcGFuIGNsYXNzPVwiaGxqcy1idWlsdF9pblwiPm51bWJlcjwvc3Bhbj47XG59XG5cbjxzcGFuIGNsYXNzPVwiaGxqcy1rZXl3b3JkXCI+Y29uc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPVwiaGxqcy10aXRsZVwiPmdldFVzZXI8L3NwYW4+ID0gPHNwYW4gY2xhc3M9XCJobGpzLWtleXdvcmRcIj5hc3luYzwvc3Bhbj4gKDxzcGFuIGNsYXNzPVwiaGxqcy1hdHRyXCI+aWQ8L3NwYW4+OiA8c3BhbiBjbGFzcz1cImhsanMtYnVpbHRfaW5cIj5zdHJpbmc8L3NwYW4+KTogPHNwYW4gY2xhc3M9XCJobGpzLWJ1aWx0X2luXCI+UHJvbWlzZTwvc3Bhbj4mbHQ7SVVzZXImZ3Q7ID0mZ3Q7IHtcbiAgPHNwYW4gY2xhc3M9XCJobGpzLWtleXdvcmRcIj5jb25zdDwvc3Bhbj4gcmVzcG9uc2UgPSA8c3BhbiBjbGFzcz1cImhsanMta2V5d29yZFwiPmF3YWl0PC9zcGFuPiBmZXRjaChcXGAvYXBpL3VzZXJzL1xcJHtpZH1cXGApO1xuICA8c3BhbiBjbGFzcz1cImhsanMta2V5d29yZFwiPnJldHVybjwvc3Bhbj4gcmVzcG9uc2UuanNvbigpO1xufTs8L2NvZGU+PC9wcmU+XG5cbiAgICAgICAgICAgIDxoMz5KU09OIEV4YW1wbGU8L2gzPlxuICAgICAgICAgICAgPHByZT48Y29kZT57XG4gIDxzcGFuIGNsYXNzPVwiaGxqcy1hdHRyXCI+XCJuYW1lXCI8L3NwYW4+OiA8c3BhbiBjbGFzcz1cImhsanMtc3RyaW5nXCI+XCJkZWVzLWNhdGFsb2dcIjwvc3Bhbj4sXG4gIDxzcGFuIGNsYXNzPVwiaGxqcy1hdHRyXCI+XCJ2ZXJzaW9uXCI8L3NwYW4+OiA8c3BhbiBjbGFzcz1cImhsanMtc3RyaW5nXCI+XCIzLjAuMFwiPC9zcGFuPixcbiAgPHNwYW4gY2xhc3M9XCJobGpzLWF0dHJcIj5cImRlcGVuZGVuY2llc1wiPC9zcGFuPjoge1xuICAgIDxzcGFuIGNsYXNzPVwiaGxqcy1hdHRyXCI+XCJAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnRcIjwvc3Bhbj46IDxzcGFuIGNsYXNzPVwiaGxqcy1zdHJpbmdcIj5cIl4yLjAuMFwiPC9zcGFuPlxuICB9XG59PC9jb2RlPjwvcHJlPlxuICAgICAgICAgIGApO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPCEtLSBEZW1vIDU6IFRhYmxlcyAtLT5cbiAgICAgIDxkZWVzLXBhbmVsXG4gICAgICAgIC50aXRsZT0keydUYWJsZXMnfVxuICAgICAgICAuc3VidGl0bGU9JHsnU3R5bGVkIHRhYmxlcyB3aXRoIGFsdGVybmF0aW5nIHJvd3MnfVxuICAgICAgICAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAocGFuZWxFbDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBvdXRsZXQgPSBwYW5lbEVsLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0JykgYXMgRGVlc1dvcmtzcGFjZU1hcmtkb3dub3V0bGV0O1xuICAgICAgICAgIGF3YWl0IG91dGxldD8udXBkYXRlSHRtbFRleHQoYFxuICAgICAgICAgICAgPHRhYmxlPlxuICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgPHRoPkZlYXR1cmU8L3RoPlxuICAgICAgICAgICAgICAgICAgPHRoPlN0YXR1czwvdGg+XG4gICAgICAgICAgICAgICAgICA8dGg+UHJpb3JpdHk8L3RoPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICA8dGQ+RGFyayBtb2RlIHN1cHBvcnQ8L3RkPlxuICAgICAgICAgICAgICAgICAgPHRkPkNvbXBsZXRlZDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQ+SGlnaDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICA8dGQ+UmVzcG9uc2l2ZSBkZXNpZ248L3RkPlxuICAgICAgICAgICAgICAgICAgPHRkPkluIFByb2dyZXNzPC90ZD5cbiAgICAgICAgICAgICAgICAgIDx0ZD5NZWRpdW08L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgPHRkPkFjY2Vzc2liaWxpdHk8L3RkPlxuICAgICAgICAgICAgICAgICAgPHRkPlBsYW5uZWQ8L3RkPlxuICAgICAgICAgICAgICAgICAgPHRkPkhpZ2g8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgPHRkPkRvY3VtZW50YXRpb248L3RkPlxuICAgICAgICAgICAgICAgICAgPHRkPkluIFByb2dyZXNzPC90ZD5cbiAgICAgICAgICAgICAgICAgIDx0ZD5Mb3c8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgIGApO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPCEtLSBEZW1vIDY6IEJsb2NrcXVvdGVzICYgQWxlcnRzIC0tPlxuICAgICAgPGRlZXMtcGFuZWxcbiAgICAgICAgLnRpdGxlPSR7J0Jsb2NrcXVvdGVzICYgQWxlcnRzJ31cbiAgICAgICAgLnN1YnRpdGxlPSR7J1F1b3RlcyBhbmQgR2l0SHViLXN0eWxlIGFsZXJ0cyd9XG4gICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChwYW5lbEVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG91dGxldCA9IHBhbmVsRWwucXVlcnlTZWxlY3RvcignZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQnKSBhcyBEZWVzV29ya3NwYWNlTWFya2Rvd25vdXRsZXQ7XG4gICAgICAgICAgYXdhaXQgb3V0bGV0Py51cGRhdGVIdG1sVGV4dChgXG4gICAgICAgICAgICA8YmxvY2txdW90ZT5cbiAgICAgICAgICAgICAgPHA+VGhpcyBpcyBhIHN0YW5kYXJkIGJsb2NrcXVvdGUuIEl0J3MgZ3JlYXQgZm9yIGhpZ2hsaWdodGluZyBpbXBvcnRhbnQgaW5mb3JtYXRpb24gb3IgcXVvdGVzIGZyb20gb3RoZXIgc291cmNlcy48L3A+XG4gICAgICAgICAgICA8L2Jsb2NrcXVvdGU+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1ub3RlXCI+XG4gICAgICAgICAgICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIG5vdGUgdG8gZHJhdyBhdHRlbnRpb24gdG8gaW1wb3J0YW50IGRldGFpbHMuPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC10aXBcIj5cbiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5UaXA6PC9zdHJvbmc+IEhlcmUncyBhIGhlbHBmdWwgdGlwIHRvIGltcHJvdmUgeW91ciB3b3JrZmxvdy48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWltcG9ydGFudFwiPlxuICAgICAgICAgICAgICA8cD48c3Ryb25nPkltcG9ydGFudDo8L3N0cm9uZz4gVGhpcyBpbmZvcm1hdGlvbiBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSB0b3BpYy48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LXdhcm5pbmdcIj5cbiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPiBCZSBjYXJlZnVsIHdoZW4gcGVyZm9ybWluZyB0aGlzIGFjdGlvbi48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtkb3duLWFsZXJ0IG1hcmtkb3duLWFsZXJ0LWNhdXRpb25cIj5cbiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5DYXV0aW9uOjwvc3Ryb25nPiBUaGlzIGFjdGlvbiBtYXkgaGF2ZSB1bmludGVuZGVkIGNvbnNlcXVlbmNlcy48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+XG4gICAgICA8L2RlZXMtcGFuZWw+XG5cbiAgICAgIDwhLS0gRGVtbyA3OiBGdWxsIERvY3VtZW50IC0tPlxuICAgICAgPGRlZXMtcGFuZWxcbiAgICAgICAgLnRpdGxlPSR7J0Z1bGwgRG9jdW1lbnQnfVxuICAgICAgICAuc3VidGl0bGU9JHsnQSBjb21wbGV0ZSBtYXJrZG93biBkb2N1bWVudCBleGFtcGxlJ31cbiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKHBhbmVsRWw6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3V0bGV0ID0gcGFuZWxFbC5xdWVyeVNlbGVjdG9yKCdkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCcpIGFzIERlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldDtcbiAgICAgICAgICBhd2FpdCBvdXRsZXQ/LnVwZGF0ZUh0bWxUZXh0KGBcbiAgICAgICAgICAgIDxoMT5HZXR0aW5nIFN0YXJ0ZWQgR3VpZGU8L2gxPlxuICAgICAgICAgICAgPHA+V2VsY29tZSB0byB0aGUgPHN0cm9uZz5kZWVzLWNhdGFsb2c8L3N0cm9uZz4gY29tcG9uZW50IGxpYnJhcnkuIFRoaXMgZ3VpZGUgd2lsbCBoZWxwIHlvdSBnZXQgdXAgYW5kIHJ1bm5pbmcgcXVpY2tseS48L3A+XG5cbiAgICAgICAgICAgIDxoMj5JbnN0YWxsYXRpb248L2gyPlxuICAgICAgICAgICAgPHA+SW5zdGFsbCB0aGUgcGFja2FnZSB1c2luZyB5b3VyIHByZWZlcnJlZCBwYWNrYWdlIG1hbmFnZXI6PC9wPlxuICAgICAgICAgICAgPHByZT48Y29kZT48c3BhbiBjbGFzcz1cImhsanMtY29tbWVudFwiPiMgVXNpbmcgcG5wbSAocmVjb21tZW5kZWQpPC9zcGFuPlxucG5wbSBhZGQgQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nXG5cbjxzcGFuIGNsYXNzPVwiaGxqcy1jb21tZW50XCI+IyBVc2luZyBucG08L3NwYW4+XG5ucG0gaW5zdGFsbCBAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2c8L2NvZGU+PC9wcmU+XG5cbiAgICAgICAgICAgIDxoMj5CYXNpYyBVc2FnZTwvaDI+XG4gICAgICAgICAgICA8cD5JbXBvcnQgYW5kIHVzZSBjb21wb25lbnRzIGluIHlvdXIgVHlwZVNjcmlwdCBmaWxlczo8L3A+XG4gICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPVwiaGxqcy1rZXl3b3JkXCI+aW1wb3J0PC9zcGFuPiB7IERlZXNCdXR0b24gfSA8c3BhbiBjbGFzcz1cImhsanMta2V5d29yZFwiPmZyb208L3NwYW4+IDxzcGFuIGNsYXNzPVwiaGxqcy1zdHJpbmdcIj4nQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nJzwvc3Bhbj47XG5cbjxzcGFuIGNsYXNzPVwiaGxqcy1jb21tZW50XCI+Ly8gVXNlIGluIHlvdXIgdGVtcGxhdGVzPC9zcGFuPlxuaHRtbFxcYCZsdDtkZWVzLWJ1dHRvbiZndDtDbGljayBtZSZsdDsvZGVlcy1idXR0b24mZ3Q7XFxgPC9jb2RlPjwvcHJlPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtdGlwXCI+XG4gICAgICAgICAgICAgIDxwPjxzdHJvbmc+VGlwOjwvc3Ryb25nPiBDaGVjayB0aGUgZGVtbyBzaG93Y2FzZSBmb3IgbGl2ZSBleGFtcGxlcyBvZiBhbGwgY29tcG9uZW50cy48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGgyPkF2YWlsYWJsZSBDb21wb25lbnRzPC9oMj5cbiAgICAgICAgICAgIDx0YWJsZT5cbiAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0aD5Db21wb25lbnQ8L3RoPlxuICAgICAgICAgICAgICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtYnV0dG9uPC9jb2RlPjwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQ+UHJpbWFyeSBidXR0b24gY29tcG9uZW50PC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLWlucHV0LXRleHQ8L2NvZGU+PC90ZD5cbiAgICAgICAgICAgICAgICAgIDx0ZD5UZXh0IGlucHV0IGZpZWxkPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLXRhYmxlPC9jb2RlPjwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQ+RGF0YSB0YWJsZSB3aXRoIHNvcnRpbmc8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgPHRkPjxjb2RlPmRlZXMtbW9kYWw8L2NvZGU+PC90ZD5cbiAgICAgICAgICAgICAgICAgIDx0ZD5Nb2RhbCBkaWFsb2c8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICA8L3RhYmxlPlxuXG4gICAgICAgICAgICA8aDI+TmV4dCBTdGVwczwvaDI+XG4gICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgIDxsaT5FeHBsb3JlIHRoZSA8YSBocmVmPVwiI1wiPmNvbXBvbmVudCBkb2N1bWVudGF0aW9uPC9hPjwvbGk+XG4gICAgICAgICAgICAgIDxsaT5DaGVjayBvdXQgdGhlIDxhIGhyZWY9XCIjXCI+dGhlbWluZyBndWlkZTwvYT48L2xpPlxuICAgICAgICAgICAgICA8bGk+Sm9pbiBvdXIgPGEgaHJlZj1cIiNcIj5jb21tdW5pdHkgRGlzY29yZDwvYT48L2xpPlxuICAgICAgICAgICAgPC91bD5cblxuICAgICAgICAgICAgPGJsb2NrcXVvdGU+XG4gICAgICAgICAgICAgIDxwPlwiVGhlIGJlc3QgY29tcG9uZW50IGxpYnJhcnkgaXMgb25lIHRoYXQgZ2V0cyBvdXQgb2YgeW91ciB3YXkuXCIgXHUyMDE0IERlc2lnbiBTeXN0ZW1zIFRlYW08L3A+XG4gICAgICAgICAgICA8L2Jsb2NrcXVvdGU+XG4gICAgICAgICAgYCk7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGl2PlxuICA8L2RlZXMtZGVtb3dyYXBwZXI+XG5gO1xuIiwgImltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIERlZXNFbGVtZW50LFxuICBodG1sLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldC5kZW1vLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQnOiBEZWVzV29ya3NwYWNlTWFya2Rvd25vdXRsZXQ7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0JylcbmV4cG9ydCBjbGFzcyBEZWVzV29ya3NwYWNlTWFya2Rvd25vdXRsZXQgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIC8vIERFTU9cbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ1dvcmtzcGFjZSc7XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnTm90byBTYW5zJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMyNDI5MmYnLCAnI2U2ZWRmMycpfTtcbiAgICAgIH1cblxuICAgICAgLm91dGxldCB7XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgIH1cblxuICAgICAgLyogSGVhZGluZ3MgKi9cbiAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMWYyMzI4JywgJyNmMGY2ZmMnKX07XG4gICAgICB9XG5cbiAgICAgIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZDFkOWUwJywgJyMzMDM2M2QnKX07XG4gICAgICB9XG5cbiAgICAgIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkMWQ5ZTAnLCAnIzMwMzYzZCcpfTtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIH1cblxuICAgICAgaDUge1xuICAgICAgICBmb250LXNpemU6IDAuODc1ZW07XG4gICAgICB9XG5cbiAgICAgIGg2IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzY1NmQ3NicsICcjOGI5NDllJyl9O1xuICAgICAgfVxuXG4gICAgICAvKiBQYXJhZ3JhcGhzIGFuZCB0ZXh0ICovXG4gICAgICBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIH1cblxuICAgICAgLyogTGlua3MgKi9cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTY5ZGEnLCAnIzU4YTZmZicpfTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuXG4gICAgICBhOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIFN0cm9uZyBhbmQgZW1waGFzaXMgKi9cbiAgICAgIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzFmMjMyOCcsICcjZjBmNmZjJyl9O1xuICAgICAgfVxuXG4gICAgICBlbSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIH1cblxuICAgICAgLyogTGlzdHMgKi9cbiAgICAgIHVsLCBvbCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMmVtO1xuICAgICAgfVxuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgIH1cblxuICAgICAgbGkgKyBsaSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgIH1cblxuICAgICAgdWwgdWwsIHVsIG9sLCBvbCB1bCwgb2wgb2wge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAvKiBCbG9ja3F1b3RlcyAqL1xuICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDE2cHggMDtcbiAgICAgICAgcGFkZGluZzogMCAxZW07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzY1NmQ3NicsICcjOGI5NDllJyl9O1xuICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZDFkOWUwJywgJyMzMDM2M2QnKX07XG4gICAgICB9XG5cbiAgICAgIGJsb2NrcXVvdGUgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICBibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAvKiBJbmxpbmUgY29kZSAqL1xuICAgICAgY29kZSB7XG4gICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogODUlO1xuICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDE3NSwgMTg0LCAxOTMsIDAuMiknLCAncmdiYSgxMTAsIDExOCwgMTI5LCAwLjQpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7XG4gICAgICB9XG5cbiAgICAgIC8qIENvZGUgYmxvY2tzICovXG4gICAgICBwcmUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgZm9udC1zaXplOiA4NSU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjZmOGZhJywgJyMxNjFiMjInKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgd29yZC13cmFwOiBub3JtYWw7XG4gICAgICB9XG5cbiAgICAgIHByZSBjb2RlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxMDAlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgICAgfVxuXG4gICAgICAvKiBUYWJsZXMgKi9cbiAgICAgIHRhYmxlIHtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIHRhYmxlIHRoIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgcGFkZGluZzogNnB4IDEzcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZDFkOWUwJywgJyMzMDM2M2QnKX07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjZmOGZhJywgJyMxNjFiMjInKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzFmMjMyOCcsICcjZTZlZGYzJyl9O1xuICAgICAgfVxuXG4gICAgICB0YWJsZSB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxM3B4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2QxZDllMCcsICcjMzAzNjNkJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMxZjIzMjgnLCAnI2U2ZWRmMycpfTtcbiAgICAgIH1cblxuICAgICAgdGFibGUgdHIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMGQxMTE3Jyl9O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkMWQ5ZTAnLCAnIzIxMjYyZCcpfTtcbiAgICAgIH1cblxuICAgICAgdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjZmOGZhJywgJyMxNjFiMjInKX07XG4gICAgICB9XG5cbiAgICAgIC8qIEhvcml6b250YWwgcnVsZXMgKi9cbiAgICAgIGhyIHtcbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMjRweCAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2QxZDllMCcsICcjMzAzNjNkJyl9O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIH1cblxuICAgICAgLyogSW1hZ2VzICovXG4gICAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIH1cblxuICAgICAgLyogVGFzayBsaXN0cyAqL1xuICAgICAgLnRhc2stbGlzdC1pdGVtIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgfVxuXG4gICAgICAudGFzay1saXN0LWl0ZW0gaW5wdXQge1xuICAgICAgICBtYXJnaW46IDAgMC4yZW0gMC4yNWVtIC0xLjRlbTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgLyogRGVmaW5pdGlvbiBsaXN0cyAqL1xuICAgICAgZGwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICBkbCBkdCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG5cbiAgICAgIGRsIGRkIHtcbiAgICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAvKiBLZXlib2FyZCBpbnB1dCAqL1xuICAgICAga2JkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzFmMjMyOCcsICcjZTZlZGYzJyl9O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y2ZjhmYScsICcjMTYxYjIyJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2QxZDllMCcsICcjMzAzNjNkJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZDFkOWUwJywgJyMzMDM2M2QnKX07XG4gICAgICB9XG5cbiAgICAgIC8qIEZvb3Rub3RlcyAqL1xuICAgICAgLmZvb3Rub3RlcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNjU2ZDc2JywgJyM4Yjk0OWUnKX07XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2QxZDllMCcsICcjMzAzNjNkJyl9O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICAgIH1cblxuICAgICAgLyogQWxlcnRzL0FkbW9uaXRpb25zICovXG4gICAgICAubWFya2Rvd24tYWxlcnQge1xuICAgICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgfVxuXG4gICAgICAubWFya2Rvd24tYWxlcnQtbm90ZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTY5ZGEnLCAnIzU4YTZmZicpfTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoOSwgMTA1LCAyMTgsIDAuMSknLCAncmdiYSg1NiwgMTM5LCAyNTMsIDAuMSknKX07XG4gICAgICB9XG5cbiAgICAgIC5tYXJrZG93bi1hbGVydC13YXJuaW5nIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2JmODcwMCcsICcjZDI5OTIyJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgxOTEsIDEzNSwgMCwgMC4xKScsICdyZ2JhKDE4NywgMTI4LCA5LCAwLjEpJyl9O1xuICAgICAgfVxuXG4gICAgICAubWFya2Rvd24tYWxlcnQtaW1wb3J0YW50IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzgyNTBkZicsICcjYTM3MWY3Jyl9O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgxMzAsIDgwLCAyMjMsIDAuMSknLCAncmdiYSgxNjMsIDExMywgMjQ3LCAwLjEpJyl9O1xuICAgICAgfVxuXG4gICAgICAubWFya2Rvd24tYWxlcnQtY2F1dGlvbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNjZjIyMmUnLCAnI2Y4NTE0OScpfTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMjA3LCAzNCwgNDYsIDAuMSknLCAncmdiYSgyNDgsIDgxLCA3MywgMC4xKScpfTtcbiAgICAgIH1cblxuICAgICAgLm1hcmtkb3duLWFsZXJ0LXRpcCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMxYTdmMzcnLCAnIzNmYjk1MCcpfTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMjYsIDEyNywgNTUsIDAuMSknLCAncmdiYSg0NiwgMTYwLCA2NywgMC4xKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogU3ludGF4IGhpZ2hsaWdodGluZyBmb3IgY29kZSBibG9ja3MgKi9cbiAgICAgIC5obGpzLWNvbW1lbnQsXG4gICAgICAuaGxqcy1xdW90ZSB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzZhNzM3ZCcsICcjOGI5NDllJyl9O1xuICAgICAgfVxuXG4gICAgICAuaGxqcy1rZXl3b3JkLFxuICAgICAgLmhsanMtc2VsZWN0b3ItdGFnLFxuICAgICAgLmhsanMtYWRkaXRpb24ge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkNzNhNDknLCAnI2ZmN2I3MicpfTtcbiAgICAgIH1cblxuICAgICAgLmhsanMtbnVtYmVyLFxuICAgICAgLmhsanMtc3RyaW5nLFxuICAgICAgLmhsanMtbWV0YSAuaGxqcy1tZXRhLXN0cmluZyxcbiAgICAgIC5obGpzLWxpdGVyYWwsXG4gICAgICAuaGxqcy1kb2N0YWcsXG4gICAgICAuaGxqcy1yZWdleHAge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMzJmNjInLCAnI2E1ZDZmZicpfTtcbiAgICAgIH1cblxuICAgICAgLmhsanMtdGl0bGUsXG4gICAgICAuaGxqcy1zZWN0aW9uLFxuICAgICAgLmhsanMtbmFtZSxcbiAgICAgIC5obGpzLXNlbGVjdG9yLWlkLFxuICAgICAgLmhsanMtc2VsZWN0b3ItY2xhc3Mge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM2ZjQyYzEnLCAnI2QyYThmZicpfTtcbiAgICAgIH1cblxuICAgICAgLmhsanMtYXR0cmlidXRlLFxuICAgICAgLmhsanMtYXR0cixcbiAgICAgIC5obGpzLXZhcmlhYmxlLFxuICAgICAgLmhsanMtdGVtcGxhdGUtdmFyaWFibGUsXG4gICAgICAuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSxcbiAgICAgIC5obGpzLXR5cGUge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDVjYzUnLCAnIzc5YzBmZicpfTtcbiAgICAgIH1cblxuICAgICAgLmhsanMtc3ltYm9sLFxuICAgICAgLmhsanMtYnVsbGV0LFxuICAgICAgLmhsanMtc3Vic3QsXG4gICAgICAuaGxqcy1tZXRhLFxuICAgICAgLmhsanMtbWV0YSAuaGxqcy1rZXl3b3JkLFxuICAgICAgLmhsanMtc2VsZWN0b3ItYXR0cixcbiAgICAgIC5obGpzLXNlbGVjdG9yLXBzZXVkbyxcbiAgICAgIC5obGpzLWxpbmsge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlMzYyMDknLCAnI2ZmYTY1NycpfTtcbiAgICAgIH1cblxuICAgICAgLmhsanMtYnVpbHRfaW4sXG4gICAgICAuaGxqcy1kZWxldGlvbiB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2IzMWQyOCcsICcjZmZhMTk4Jyl9O1xuICAgICAgfVxuXG4gICAgICAuaGxqcy1mb3JtdWxhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmNmY4ZmEnLCAnIzE2MWIyMicpfTtcbiAgICAgIH1cblxuICAgICAgLmhsanMtZW1waGFzaXMge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB9XG5cbiAgICAgIC5obGpzLXN0cm9uZyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgLy8gSU5TVEFOQ0VcbiAgcHJpdmF0ZSBvdXRsZXQ6IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cIm91dGxldFwiPlxuICAgICAgICA8aDE+TWFya2Rvd24gUHJldmlldzwvaDE+XG4gICAgICAgIDxwPkNvbnRlbnQgd2lsbCBhcHBlYXIgaGVyZSB3aGVuIG1hcmtkb3duIGlzIHBhcnNlZC48L3A+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpcnN0VXBkYXRlZChfY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+KSB7XG4gICAgYXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5vdXRsZXQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm91dGxldCcpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUh0bWxUZXh0KGh0bWxUZXh0QXJnOiBzdHJpbmcpIHtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO1xuICAgIGlmICghdGhpcy5vdXRsZXQpIHtcbiAgICAgIHRoaXMub3V0bGV0ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5vdXRsZXQnKTtcbiAgICB9XG4gICAgdGhpcy5vdXRsZXQuaW5uZXJIVE1MID0gaHRtbFRleHRBcmc7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBodG1sLCBjc3MgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICdAZGVzaWduLmVzdGF0ZS9kZWVzLXdjY3Rvb2xzL2RlbW90b29scyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtcGFuZWwvZGVlcy1wYW5lbC5qcyc7XG5pbXBvcnQgJy4uLy4uLzAwZ3JvdXAtZm9ybS9kZWVzLWZvcm0vZGVlcy1mb3JtLmpzJztcbmltcG9ydCAnLi4vZGVlcy1pbnB1dC10ZXh0L2RlZXMtaW5wdXQtdGV4dC5qcyc7XG5pbXBvcnQgJy4uLy4uLzAwZ3JvdXAtZm9ybS9kZWVzLWZvcm0tc3VibWl0L2RlZXMtZm9ybS1zdWJtaXQuanMnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiBodG1sYFxuICA8ZGVlcy1kZW1vd3JhcHBlcj5cbiAgICA8c3R5bGU+XG4gICAgICAke2Nzc2BcbiAgICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGRlZXMtcGFuZWwge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmdyaWQtbGF5b3V0IHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIC5ncmlkLWxheW91dCB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5vdXRwdXQtcHJldmlldyB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmM2Y0ZjY7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBjb2xvcjogIzM3NDE1MTtcbiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjO1xuICAgICAgICAgICAgY29sb3I6ICNlNGU0ZTc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuZmVhdHVyZS1ub3RlIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2VmZjZmZjtcbiAgICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMzYjgyZjY7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICBjb2xvcjogIzFlNDBhZjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAgIC5mZWF0dXJlLW5vdGUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlM2E1ZjtcbiAgICAgICAgICAgIGNvbG9yOiAjOTNjNWZkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYH1cbiAgICA8L3N0eWxlPlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRhaW5lclwiPlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzEuIEJhc2ljIExpc3QgSW5wdXQnfSAuc3VidGl0bGU9JHsnU2ltcGxlIGxpc3QgbWFuYWdlbWVudCB3aXRoIGFkZCwgZWRpdCwgYW5kIGRlbGV0ZSd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1saXN0XG4gICAgICAgICAgLmxhYmVsPSR7J1Nob3BwaW5nIExpc3QnfVxuICAgICAgICAgIC5wbGFjZWhvbGRlcj0keydBZGQgaXRlbSB0byB5b3VyIGxpc3QuLi4nfVxuICAgICAgICAgIC52YWx1ZT0ke1snTWlsaycsICdCcmVhZCcsICdFZ2dzJywgJ0NoZWVzZSddfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydEb3VibGUtY2xpY2sgdG8gZWRpdCBpdGVtcywgb3IgdXNlIHRoZSBlZGl0IGJ1dHRvbid9XG4gICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZlYXR1cmUtbm90ZVwiPlxuICAgICAgICAgIFx1RDgzRFx1RENBMSBEb3VibGUtY2xpY2sgYW55IGl0ZW0gdG8gcXVpY2tseSBlZGl0IGl0IGlubGluZVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzIuIFNvcnRhYmxlIExpc3QnfSAuc3VidGl0bGU9JHsnRHJhZyBhbmQgZHJvcCB0byByZW9yZGVyIGl0ZW1zJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LWxpc3RcbiAgICAgICAgICAubGFiZWw9JHsnVGFzayBQcmlvcml0eSd9XG4gICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J0FkZCBhIHRhc2suLi4nfVxuICAgICAgICAgIC5zb3J0YWJsZT0ke3RydWV9XG4gICAgICAgICAgLnZhbHVlPSR7W1xuICAgICAgICAgICAgJ1JldmlldyBwdWxsIHJlcXVlc3RzJyxcbiAgICAgICAgICAgICdGaXggY3JpdGljYWwgYnVnJyxcbiAgICAgICAgICAgICdVcGRhdGUgZG9jdW1lbnRhdGlvbicsXG4gICAgICAgICAgICAnRGVwbG95IHRvIHByb2R1Y3Rpb24nLFxuICAgICAgICAgICAgJ1RlYW0gc3RhbmR1cCBtZWV0aW5nJ1xuICAgICAgICAgIF19XG4gICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J0RyYWcgaXRlbXMgdXNpbmcgdGhlIGhhbmRsZSB0byByZW9yZGVyIHRoZW0nfVxuICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlLW5vdGVcIj5cbiAgICAgICAgICBcdUQ4M0RcdUREMDQgRHJhZyB0aGUgZ3JpcCBoYW5kbGUgdG8gcmVvcmRlciB0YXNrcyBieSBwcmlvcml0eVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzMuIFZhbGlkYXRpb24gJiBDb25zdHJhaW50cyd9IC5zdWJ0aXRsZT0keydMaXN0cyB3aXRoIG1pbmltdW0vbWF4aW11bSBpdGVtcyBhbmQgZHVwbGljYXRlIHByZXZlbnRpb24nfT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtbGF5b3V0XCI+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdFxuICAgICAgICAgICAgLmxhYmVsPSR7J1RlYW0gTWVtYmVycyAoTWluIDIsIE1heCA1KSd9XG4gICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsnQWRkIHRlYW0gbWVtYmVyLi4uJ31cbiAgICAgICAgICAgIC5taW5JdGVtcz0kezJ9XG4gICAgICAgICAgICAubWF4SXRlbXM9JHs1fVxuICAgICAgICAgICAgLnZhbHVlPSR7WydBbGljZScsICdCb2InXX1cbiAgICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgICAuZGVzY3JpcHRpb249JHsnQWRkIDItNSB0ZWFtIG1lbWJlcnMnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0XG4gICAgICAgICAgICAubGFiZWw9JHsnVW5pcXVlIFRhZ3MgKE5vIER1cGxpY2F0ZXMpJ31cbiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keydBZGQgdW5pcXVlIHRhZy4uLid9XG4gICAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ZmFsc2V9XG4gICAgICAgICAgICAudmFsdWU9JHtbJ2Zyb250ZW5kJywgJ2JhY2tlbmQnLCAnZGF0YWJhc2UnXX1cbiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydEdXBsaWNhdGUgaXRlbXMgYXJlIG5vdCBhbGxvd2VkJ31cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnNC4gRGVsZXRlIENvbmZpcm1hdGlvbid9IC5zdWJ0aXRsZT0keydSZXF1aXJlIGNvbmZpcm1hdGlvbiBiZWZvcmUgZGVsZXRpbmcgaXRlbXMnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdFxuICAgICAgICAgIC5sYWJlbD0keydJbXBvcnRhbnQgRG9jdW1lbnRzJ31cbiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsnQWRkIGRvY3VtZW50IG5hbWUuLi4nfVxuICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7dHJ1ZX1cbiAgICAgICAgICAudmFsdWU9JHtbXG4gICAgICAgICAgICAnQ29udHJhY3RfMjAyNC5wZGYnLFxuICAgICAgICAgICAgJ0ZpbmFuY2lhbF9SZXBvcnRfUTMueGxzeCcsXG4gICAgICAgICAgICAnUHJvamVjdF9Qcm9wb3NhbC5kb2N4JyxcbiAgICAgICAgICAgICdNZWV0aW5nX05vdGVzLnR4dCdcbiAgICAgICAgICBdfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydEZWxldGlvbiByZXF1aXJlcyBjb25maXJtYXRpb24gZm9yIHNhZmV0eSd9XG4gICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzUuIERpc2FibGVkIFN0YXRlJ30gLnN1YnRpdGxlPSR7J1JlYWQtb25seSBsaXN0IGRpc3BsYXknfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdFxuICAgICAgICAgIC5sYWJlbD0keydTeXN0ZW0gRGVmYXVsdHMnfVxuICAgICAgICAgIC52YWx1ZT0ke1snRGVmYXVsdCBTZXR0aW5nIDEnLCAnRGVmYXVsdCBTZXR0aW5nIDInLCAnRGVmYXVsdCBTZXR0aW5nIDMnXX1cbiAgICAgICAgICAuZGlzYWJsZWQ9JHt0cnVlfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydUaGVzZSBpdGVtcyBjYW5ub3QgYmUgbW9kaWZpZWQnfVxuICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+XG4gICAgICA8L2RlZXMtcGFuZWw+XG5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc2LiBGb3JtIEludGVncmF0aW9uJ30gLnN1YnRpdGxlPSR7J0xpc3QgaW5wdXQgd29ya2luZyB3aXRoaW4gYSBmb3JtIGNvbnRleHQnfT5cbiAgICAgICAgPGRlZXMtZm9ybT5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0XG4gICAgICAgICAgICAubGFiZWw9JHsnUmVjaXBlIE5hbWUnfVxuICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J015IEFtYXppbmcgUmVjaXBlJ31cbiAgICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgICAua2V5PSR7J25hbWUnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1sYXlvdXRcIj5cbiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3RcbiAgICAgICAgICAgICAgLmxhYmVsPSR7J0luZ3JlZGllbnRzJ31cbiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J0FkZCBpbmdyZWRpZW50Li4uJ31cbiAgICAgICAgICAgICAgLnJlcXVpcmVkPSR7dHJ1ZX1cbiAgICAgICAgICAgICAgLm1pbkl0ZW1zPSR7M31cbiAgICAgICAgICAgICAgLmtleT0keydpbmdyZWRpZW50cyd9XG4gICAgICAgICAgICAgIC5zb3J0YWJsZT0ke3RydWV9XG4gICAgICAgICAgICAgIC52YWx1ZT0ke1tcbiAgICAgICAgICAgICAgICAnMiBjdXBzIGZsb3VyJyxcbiAgICAgICAgICAgICAgICAnMSBjdXAgc3VnYXInLFxuICAgICAgICAgICAgICAgICczIGVnZ3MnXG4gICAgICAgICAgICAgIF19XG4gICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydBZGQgYXQgbGVhc3QgMyBpbmdyZWRpZW50cyd9XG4gICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3RcbiAgICAgICAgICAgICAgLmxhYmVsPSR7J0luc3RydWN0aW9ucyd9XG4gICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keydBZGQgaW5zdHJ1Y3Rpb24gc3RlcC4uLid9XG4gICAgICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgICAgIC5taW5JdGVtcz0kezJ9XG4gICAgICAgICAgICAgIC5rZXk9JHsnaW5zdHJ1Y3Rpb25zJ31cbiAgICAgICAgICAgICAgLnNvcnRhYmxlPSR7dHJ1ZX1cbiAgICAgICAgICAgICAgLnZhbHVlPSR7W1xuICAgICAgICAgICAgICAgICdQcmVoZWF0IG92ZW4gdG8gMzUwXHUwMEIwRicsXG4gICAgICAgICAgICAgICAgJ01peCBkcnkgaW5ncmVkaWVudHMnXG4gICAgICAgICAgICAgIF19XG4gICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydBZGQgY29va2luZyBpbnN0cnVjdGlvbnMgaW4gb3JkZXInfVxuICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHRcbiAgICAgICAgICAgIC5sYWJlbD0keydOb3Rlcyd9XG4gICAgICAgICAgICAuaW5wdXRUeXBlPSR7J3RleHRhcmVhJ31cbiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keydBbnkgc3BlY2lhbCBub3RlcyBvciB0aXBzLi4uJ31cbiAgICAgICAgICAgIC5rZXk9JHsnbm90ZXMnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keydTYXZlIFJlY2lwZSd9PjwvZGVlcy1mb3JtLXN1Ym1pdD5cbiAgICAgICAgPC9kZWVzLWZvcm0+XG4gICAgICA8L2RlZXMtcGFuZWw+XG5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc3LiBJbnRlcmFjdGl2ZSBEZW1vJ30gLnN1YnRpdGxlPSR7J0J1aWxkIHlvdXIgb3duIGZlYXR1cmUgbGlzdCBhbmQgc2VlIHRoZSBkYXRhJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LWxpc3RcbiAgICAgICAgICBpZD1cImludGVyYWN0aXZlLWxpc3RcIlxuICAgICAgICAgIC5sYWJlbD0keydQcm9kdWN0IEZlYXR1cmVzJ31cbiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsnQWRkIGEgZmVhdHVyZS4uLid9XG4gICAgICAgICAgLnNvcnRhYmxlPSR7dHJ1ZX1cbiAgICAgICAgICAuY29uZmlybURlbGV0ZT0ke2ZhbHNlfVxuICAgICAgICAgIC5hbGxvd0R1cGxpY2F0ZXM9JHtmYWxzZX1cbiAgICAgICAgICAubWF4SXRlbXM9JHsxMH1cbiAgICAgICAgICBAY2hhbmdlPSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcmV2aWV3ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2xpc3QtanNvbicpO1xuICAgICAgICAgICAgaWYgKHByZXZpZXcpIHtcbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICBpdGVtczogZS5kZXRhaWwudmFsdWUsXG4gICAgICAgICAgICAgICAgY291bnQ6IGUuZGV0YWlsLnZhbHVlLmxlbmd0aCxcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICBwcmV2aWV3LnRleHRDb250ZW50ID0gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cIm91dHB1dC1wcmV2aWV3XCIgaWQ9XCJsaXN0LWpzb25cIj5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIml0ZW1zXCI6IFtdLFxuICAgICAgICAgICAgXCJjb3VudFwiOiAwLFxuICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjogXCIke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1cIlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmVhdHVyZS1ub3RlXCI+XG4gICAgICAgICAgXHUyNzI4IEFkZCwgZWRpdCwgcmVtb3ZlLCBhbmQgcmVvcmRlciBpdGVtcyB0byBzZWUgdGhlIEpTT04gb3V0cHV0IHVwZGF0ZSBpbiByZWFsLXRpbWVcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc4LiBBZHZhbmNlZCBDb25maWd1cmF0aW9uJ30gLnN1YnRpdGxlPSR7J0NvbWJpbmUgYWxsIGZlYXR1cmVzIGZvciBjb21wbGV4IHVzZSBjYXNlcyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1saXN0XG4gICAgICAgICAgLmxhYmVsPSR7J1Byb2plY3QgTWlsZXN0b25lcyd9XG4gICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J0FkZCBtaWxlc3RvbmUuLi4nfVxuICAgICAgICAgIC52YWx1ZT0ke1tcbiAgICAgICAgICAgICdQcm9qZWN0IEtpY2tvZmYgLSBXZWVrIDEnLFxuICAgICAgICAgICAgJ1JlcXVpcmVtZW50cyBHYXRoZXJpbmcgLSBXZWVrIDItMycsXG4gICAgICAgICAgICAnRGVzaWduIFBoYXNlIC0gV2VlayA0LTYnLFxuICAgICAgICAgICAgJ0RldmVsb3BtZW50IFNwcmludCAxIC0gV2VlayA3LTknLFxuICAgICAgICAgICAgJ1Rlc3RpbmcgJiBRQSAtIFdlZWsgMTAtMTEnLFxuICAgICAgICAgICAgJ0RlcGxveW1lbnQgLSBXZWVrIDEyJ1xuICAgICAgICAgIF19XG4gICAgICAgICAgLnNvcnRhYmxlPSR7dHJ1ZX1cbiAgICAgICAgICAuY29uZmlybURlbGV0ZT0ke3RydWV9XG4gICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0ke2ZhbHNlfVxuICAgICAgICAgIC5taW5JdGVtcz0kezN9XG4gICAgICAgICAgLm1heEl0ZW1zPSR7MTJ9XG4gICAgICAgICAgLnJlcXVpcmVkPSR7dHJ1ZX1cbiAgICAgICAgICAuZGVzY3JpcHRpb249JHsnTWFuYWdlIHByb2plY3QgbWlsZXN0b25lcyAoMy0xMiBpdGVtcywgc29ydGFibGUsIG5vIGR1cGxpY2F0ZXMpJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnOS4gRW1wdHkgU3RhdGUnfSAuc3VidGl0bGU9JHsnSG93IHRoZSBjb21wb25lbnQgbG9va3Mgd2l0aCBubyBpdGVtcyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1saXN0XG4gICAgICAgICAgLmxhYmVsPSR7J1lvdXIgSWRlYXMnfVxuICAgICAgICAgIC5wbGFjZWhvbGRlcj0keydTaGFyZSB5b3VyIGlkZWFzLi4uJ31cbiAgICAgICAgICAudmFsdWU9JHtbXX1cbiAgICAgICAgICAuZGVzY3JpcHRpb249JHsnU3RhcnQgYWRkaW5nIGl0ZW1zIHRvIGJ1aWxkIHlvdXIgbGlzdCd9XG4gICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2Rpdj5cbiAgPC9kZWVzLWRlbW93cmFwcGVyPlxuYDsiLCAiaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgY3NzLFxuICBjc3NNYW5hZ2VyLFxuICBwcm9wZXJ0eSxcbiAgc3RhdGUsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBEZWVzSW5wdXRCYXNlIH0gZnJvbSAnLi4vZGVlcy1pbnB1dC1iYXNlL2RlZXMtaW5wdXQtYmFzZS5qcyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0ICcuLi8uLi8wMGdyb3VwLWJ1dHRvbi9kZWVzLWJ1dHRvbi9kZWVzLWJ1dHRvbi5qcyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1pbnB1dC1saXN0LmRlbW8uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtaW5wdXQtbGlzdCc6IERlZXNJbnB1dExpc3Q7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtaW5wdXQtbGlzdCcpXG5leHBvcnQgY2xhc3MgRGVlc0lucHV0TGlzdCBleHRlbmRzIERlZXNJbnB1dEJhc2U8RGVlc0lucHV0TGlzdD4ge1xuICAvLyBTVEFUSUNcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ0lucHV0JztcblxuICAvLyBJTlNUQU5DRVxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBhY2Nlc3NvciB2YWx1ZTogc3RyaW5nW10gPSBbXTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdBZGQgbmV3IGl0ZW0uLi4nO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBtYXhJdGVtczogbnVtYmVyID0gMDsgLy8gMCBtZWFucyB1bmxpbWl0ZWRcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3IgbWluSXRlbXM6IG51bWJlciA9IDA7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBhbGxvd0R1cGxpY2F0ZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIHNvcnRhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBjb25maXJtRGVsZXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIHZhbGlkYXRpb25UZXh0OiBzdHJpbmcgPSAnJztcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBpbnB1dFZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBlZGl0aW5nSW5kZXg6IG51bWJlciA9IC0xO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGVkaXRpbmdWYWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgZHJhZ2dlZEluZGV4OiBudW1iZXIgPSAtMTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBkcmFnT3ZlckluZGV4OiBudW1iZXIgPSAtMTtcblxuICAvLyBFbmhhbmNlZCBkcmFnIHN0YXRlIGZvciBpbnRlcmFjdGl2ZSByZW9yZGVyaW5nXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGRyYWdTdGFydFk6IG51bWJlciA9IDA7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgZHJhZ0N1cnJlbnRZOiBudW1iZXIgPSAwO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHRhcmdldEluZGV4OiBudW1iZXIgPSAtMTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBpdGVtSGVpZ2h0OiBudW1iZXIgPSAwO1xuXG4gIC8vIEJvdW5kIGV2ZW50IGhhbmRsZXJzIGZvciBjbGVhbnVwXG4gIHByaXZhdGUgYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlcjogKChlOiBEcmFnRXZlbnQpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICAvLyBTdG9yZSBvcmlnaW5hbCBpdGVtIHBvc2l0aW9ucyBmb3IgYWNjdXJhdGUgaGl0IGRldGVjdGlvbiAoYmVmb3JlIHRyYW5zZm9ybXMpXG4gIHByaXZhdGUgb3JpZ2luYWxJdGVtUmVjdHM6IERPTVJlY3RbXSA9IFtdO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICAuLi5EZWVzSW5wdXRCYXNlLmJhc2VTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjtcbiAgICAgIH1cblxuICAgICAgLmlucHV0LXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmxpc3QtY29udGFpbmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDMuOSUpJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmxpc3QtY29udGFpbmVyOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNzkuOCUpJywgJ2hzbCgwIDAlIDIwLjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLmxpc3QtY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIuMiA0Ny40JSA1MS4yJSknLCAnaHNsKDIxNy4yIDkxLjIlIDU5LjglKScpfTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpJywgJ2hzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSknKX07XG4gICAgICB9XG5cbiAgICAgIC5saXN0LWNvbnRhaW5lci5kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIH1cblxuICAgICAgLmxpc3QtaXRlbXMge1xuICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgIH1cblxuICAgICAgLmxpc3QtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDMuOSUpJyl9O1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBQcmV2ZW50IGFuaW1hdGlvbiBmcm9tIGFmZmVjdGluZyBzY3JvbGwgYm91bmRzICovXG4gICAgICB9XG5cbiAgICAgIC5saXN0LWl0ZW06bGFzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmxpc3QtaXRlbXM6bm90KC5pcy1kcmFnZ2luZykgLmxpc3QtaXRlbTpob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5Ny41JSknLCAnaHNsKDAgMCUgNi45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC8qIERyYWdnaW5nIGl0ZW0gLSBmb2xsb3dzIGN1cnNvciAqL1xuICAgICAgLmxpc3QtaXRlbS5kcmFnZ2luZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTglKScsICdoc2woMjE1IDIwLjIlIDEyJSknKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4xNSknLCAncmdiYSgwLCAwLCAwLCAwLjQpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xNXMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAvKiBJdGVtcyB0aGF0IG5lZWQgdG8gbW92ZSB1cCB0byBtYWtlIHNwYWNlICovXG4gICAgICAubGlzdC1pdGVtLm1vdmUtdXAge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSkpO1xuICAgICAgfVxuXG4gICAgICAvKiBJdGVtcyB0aGF0IG5lZWQgdG8gbW92ZSBkb3duIHRvIG1ha2Ugc3BhY2UgKi9cbiAgICAgIC5saXN0LWl0ZW0ubW92ZS1kb3duIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSk7XG4gICAgICB9XG5cblxuICAgICAgLmRyYWctaGFuZGxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBtb3ZlO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDYzLjklKScsICdoc2woMCAwJSA0NS4xJSknKX07XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5kcmFnLWhhbmRsZTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNDUuMSUpJywgJ2hzbCgwIDAlIDYzLjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLmRyYWctaGFuZGxlIGRlZXMtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIC5pdGVtLWNvbnRlbnQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5pdGVtLXRleHQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDklKScsICdoc2woMCAwJSA5NSUpJyl9O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgfVxuXG4gICAgICAuaXRlbS1lZGl0LWlucHV0IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgcGFkZGluZzogNHB4IDhweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDklKScpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIuMiA0Ny40JSA1MS4yJSknLCAnaHNsKDIxNy4yIDkxLjIlIDU5LjglKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDklKScsICdoc2woMCAwJSA5NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuaXRlbS1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb24tYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA0NS4xJSknLCAnaHNsKDAgMCUgNjMuOSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NS4xJSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDklKScsICdoc2woMCAwJSA5NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbi5zYXZlIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJywgJ2hzbCgxNDIuMSA3MC42JSA0NS4zJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb24tYnV0dG9uLnNhdmU6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKScsICdoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbi5jYW5jZWwge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcyLjIlIDUwLjYlKScsICdoc2woMCA2Mi44JSA1MC42JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb24tYnV0dG9uLmNhbmNlbDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSknLCAnaHNsKDAgNjIuOCUgNTAuNiUgLyAwLjEpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcyLjIlIDUwLjYlKScsICdoc2woMCA2Mi44JSA1MC42JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb24tYnV0dG9uLmRlbGV0ZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSknLCAnaHNsKDAgNjIuOCUgNTAuNiUgLyAwLjEpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbiBkZWVzLWljb24ge1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgfVxuXG4gICAgICAuYWRkLWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk3LjUlKScsICdoc2woMCAwJSA2LjklKScpfTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWRkLWlucHV0IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSA5JSknKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUpJywgJ2hzbCgwIDAlIDk1JSknKX07XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuYWRkLWlucHV0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKScsICdoc2woMjE3LjIgOTEuMiUgNTkuOCUpJyl9O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSknLCAnaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKScpfTtcbiAgICAgIH1cblxuICAgICAgLmFkZC1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDYzLjklKScsICdoc2woMCAwJSA0NS4xJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5hZGQtaW5wdXQ6ZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG5cbiAgICAgIC5hZGQtYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIC5lbXB0eS1zdGF0ZSB7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMTZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDYzLjklKScsICdoc2woMCAwJSA0NS4xJSknKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgfVxuXG4gICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCA3Mi4yJSA1MC42JSknLCAnaHNsKDAgNjIuOCUgMzAuNiUpJyl9O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIH1cblxuICAgICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjQgMTYuMyUgNTYuOSUpJywgJ2hzbCgyMTUgMjAuMiUgNTUuMSUpJyl9O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIH1cblxuICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi9cbiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDI0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgfVxuXG4gICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNzkuOCUpJywgJ2hzbCgwIDAlIDM0LjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogRGlzYWJsZSB0cmFuc2l0aW9ucyBkdXJpbmcgZHJvcCB0byBwcmV2ZW50IGZsYXNoICovXG4gICAgICAubGlzdC1pdGVtcy5kcm9wcGluZyAubGlzdC1pdGVtIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAke3RoaXMubGFiZWwgPyBodG1sYDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gIDogJyd9XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1jb250YWluZXIgJHt0aGlzLmRpc2FibGVkID8gJ2Rpc2FibGVkJyA6ICcnfVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW1zXCI+XG4gICAgICAgICAgICAke3RoaXMudmFsdWUubGVuZ3RoID4gMCA/IHRoaXMudmFsdWUubWFwKChpdGVtLCBpbmRleCkgPT4gaHRtbGBcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtICR7dGhpcy5kcmFnZ2VkSW5kZXggPT09IGluZGV4ID8gJ2RyYWdnaW5nJyA6ICcnfVwiXG4gICAgICAgICAgICAgICAgZHJhZ2dhYmxlPVwiJHt0aGlzLnNvcnRhYmxlICYmICF0aGlzLmRpc2FibGVkfVwiXG4gICAgICAgICAgICAgICAgQGRyYWdzdGFydD0keyhlOiBEcmFnRXZlbnQpID0+IHRoaXMuaGFuZGxlRHJhZ1N0YXJ0KGUsIGluZGV4KX1cbiAgICAgICAgICAgICAgICBAZHJhZ2VuZD0ke3RoaXMuaGFuZGxlRHJhZ0VuZH1cbiAgICAgICAgICAgICAgICBAZHJhZ292ZXI9JHsoZTogRHJhZ0V2ZW50KSA9PiB0aGlzLmhhbmRsZURyYWdPdmVyKGUsIGluZGV4KX1cbiAgICAgICAgICAgICAgICBAZHJvcD0keyhlOiBEcmFnRXZlbnQpID0+IHRoaXMuaGFuZGxlRHJvcChlLCBpbmRleCl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAke3RoaXMuc29ydGFibGUgJiYgIXRoaXMuZGlzYWJsZWQgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYWctaGFuZGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOmdyaXBWZXJ0aWNhbCd9PjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgYCA6ICcnfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXggPT09IGluZGV4ID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaXRlbS1lZGl0LWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmVkaXRpbmdWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHsoZTogSW5wdXRFdmVudCkgPT4gdGhpcy5lZGl0aW5nVmFsdWUgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgQGtleWRvd249JHsoZTogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5oYW5kbGVFZGl0S2V5RG93bihlLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgQGJsdXI9JHsoKSA9PiB0aGlzLnNhdmVFZGl0KGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIGAgOiBodG1sYFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS10ZXh0XCIgQGRibGNsaWNrPSR7KCkgPT4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5zdGFydEVkaXQoaW5kZXgpfT5cbiAgICAgICAgICAgICAgICAgICAgICAke2l0ZW19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMuZWRpdGluZ0luZGV4ID09PSBpbmRleCA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhY3Rpb24tYnV0dG9uIHNhdmVcIiBAY2xpY2s9JHsoKSA9PiB0aGlzLnNhdmVFZGl0KGluZGV4KX0+XG4gICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6Y2hlY2snfT48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhY3Rpb24tYnV0dG9uIGNhbmNlbFwiIEBjbGljaz0keygpID0+IHRoaXMuY2FuY2VsRWRpdCgpfT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTp4J30+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgYCA6IGh0bWxgXG4gICAgICAgICAgICAgICAgICAgICR7IXRoaXMuZGlzYWJsZWQgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgQGNsaWNrPSR7KCkgPT4gdGhpcy5zdGFydEVkaXQoaW5kZXgpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOnBlbmNpbCd9PjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhY3Rpb24tYnV0dG9uIGRlbGV0ZVwiIEBjbGljaz0keygpID0+IHRoaXMucmVtb3ZlSXRlbShpbmRleCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6dHJhc2gyJ30+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYCkgOiBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgICBObyBpdGVtcyBhZGRlZCB5ZXRcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgICR7IXRoaXMuZGlzYWJsZWQgJiYgKCF0aGlzLm1heEl0ZW1zIHx8IHRoaXMudmFsdWUubGVuZ3RoIDwgdGhpcy5tYXhJdGVtcykgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1pdGVtLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGQtaW5wdXRcIlxuICAgICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfVxuICAgICAgICAgICAgICAgIEBpbnB1dD0ke3RoaXMuaGFuZGxlSW5wdXR9XG4gICAgICAgICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZUFkZEtleURvd259XG4gICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFkZEl0ZW19XG4gICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuaW5wdXRWYWx1ZS50cmltKCl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTpwbHVzJ30+PC9kZWVzLWljb24+IEFkZFxuICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYCA6ICcnfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQgPyBodG1sYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWxpZGF0aW9uLW1lc3NhZ2VcIj4ke3RoaXMudmFsaWRhdGlvblRleHR9PC9kaXY+XG4gICAgICAgIGAgOiAnJ31cbiAgICAgICAgXG4gICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbiA/IGh0bWxgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+JHt0aGlzLmRlc2NyaXB0aW9ufTwvZGl2PlxuICAgICAgICBgIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbnB1dChlOiBJbnB1dEV2ZW50KSB7XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBZGRLZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgdGhpcy5pbnB1dFZhbHVlLnRyaW0oKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5hZGRJdGVtKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFZGl0S2V5RG93bihlOiBLZXlib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnNhdmVFZGl0KGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5jYW5jZWxFZGl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRJdGVtKCkge1xuICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHRoaXMuaW5wdXRWYWx1ZS50cmltKCk7XG4gICAgaWYgKCF0cmltbWVkVmFsdWUpIHJldHVybjtcblxuICAgIGlmICghdGhpcy5hbGxvd0R1cGxpY2F0ZXMgJiYgdGhpcy52YWx1ZS5pbmNsdWRlcyh0cmltbWVkVmFsdWUpKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25UZXh0ID0gJ1RoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCc7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudmFsaWRhdGlvblRleHQgPSAnJywgMzAwMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubWF4SXRlbXMgJiYgdGhpcy52YWx1ZS5sZW5ndGggPj0gdGhpcy5tYXhJdGVtcykge1xuICAgICAgdGhpcy52YWxpZGF0aW9uVGV4dCA9IGBNYXhpbXVtICR7dGhpcy5tYXhJdGVtc30gaXRlbXMgYWxsb3dlZGA7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudmFsaWRhdGlvblRleHQgPSAnJywgMzAwMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSA9IFsuLi50aGlzLnZhbHVlLCB0cmltbWVkVmFsdWVdO1xuICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgIHRoaXMudmFsaWRhdGlvblRleHQgPSAnJztcbiAgICBcbiAgICAvLyBDbGVhciB0aGUgaW5wdXRcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLmFkZC1pbnB1dCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRFZGl0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmVkaXRpbmdJbmRleCA9IGluZGV4O1xuICAgIHRoaXMuZWRpdGluZ1ZhbHVlID0gdGhpcy52YWx1ZVtpbmRleF07XG4gICAgXG4gICAgLy8gRm9jdXMgdGhlIGlucHV0IGFmdGVyIHJlbmRlclxuICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLml0ZW0tZWRpdC1pbnB1dCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgaW5wdXQuc2VsZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNhdmVFZGl0KGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCB0cmltbWVkVmFsdWUgPSB0aGlzLmVkaXRpbmdWYWx1ZS50cmltKCk7XG4gICAgXG4gICAgaWYgKCF0cmltbWVkVmFsdWUpIHtcbiAgICAgIHRoaXMuY2FuY2VsRWRpdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hbGxvd0R1cGxpY2F0ZXMgJiYgdHJpbW1lZFZhbHVlICE9PSB0aGlzLnZhbHVlW2luZGV4XSAmJiB0aGlzLnZhbHVlLmluY2x1ZGVzKHRyaW1tZWRWYWx1ZSkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvblRleHQgPSAnVGhpcyBpdGVtIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0JztcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy52YWxpZGF0aW9uVGV4dCA9ICcnLCAzMDAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdWYWx1ZSA9IFsuLi50aGlzLnZhbHVlXTtcbiAgICBuZXdWYWx1ZVtpbmRleF0gPSB0cmltbWVkVmFsdWU7XG4gICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIFxuICAgIHRoaXMuZWRpdGluZ0luZGV4ID0gLTE7XG4gICAgdGhpcy5lZGl0aW5nVmFsdWUgPSAnJztcbiAgICB0aGlzLnZhbGlkYXRpb25UZXh0ID0gJyc7XG4gICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIGNhbmNlbEVkaXQoKSB7XG4gICAgdGhpcy5lZGl0aW5nSW5kZXggPSAtMTtcbiAgICB0aGlzLmVkaXRpbmdWYWx1ZSA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZW1vdmVJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5jb25maXJtRGVsZXRlKSB7XG4gICAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCB0aGlzLnNob3dDb25maXJtRGlhbG9nKGBEZWxldGUgXCIke3RoaXMudmFsdWVbaW5kZXhdfVwiP2ApO1xuICAgICAgaWYgKCFjb25maXJtZWQpIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5maWx0ZXIoKF8sIGkpID0+IGkgIT09IGluZGV4KTtcbiAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2hvd0NvbmZpcm1EaWFsb2cobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgLy8gRm9yIG5vdywgdXNlIG5hdGl2ZSBjb25maXJtLiBJbiBwcm9kdWN0aW9uLCB0aGlzIHNob3VsZCB1c2UgYSBwcm9wZXIgbW9kYWxcbiAgICByZXR1cm4gY29uZmlybShtZXNzYWdlKTtcbiAgfVxuXG4gIC8vIERyYWcgYW5kIGRyb3AgaGFuZGxlcnMgLSBJbnRlcmFjdGl2ZSBpbXBsZW1lbnRhdGlvblxuICBwcml2YXRlIGhhbmRsZURyYWdTdGFydChlOiBEcmFnRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuc29ydGFibGUgfHwgdGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5kcmFnZ2VkSW5kZXggPSBpbmRleDtcbiAgICB0aGlzLnRhcmdldEluZGV4ID0gaW5kZXg7XG4gICAgZS5kYXRhVHJhbnNmZXIhLmVmZmVjdEFsbG93ZWQgPSAnbW92ZSc7XG4gICAgZS5kYXRhVHJhbnNmZXIhLnNldERhdGEoJ3RleHQvcGxhaW4nLCBpbmRleC50b1N0cmluZygpKTtcblxuICAgIC8vIEhpZGUgdGhlIGRlZmF1bHQgZHJhZyBpbWFnZVxuICAgIGNvbnN0IGVtcHR5SW1nID0gbmV3IEltYWdlKCk7XG4gICAgZW1wdHlJbWcuc3JjID0gJ2RhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFVRUJBQUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0nO1xuICAgIGUuZGF0YVRyYW5zZmVyIS5zZXREcmFnSW1hZ2UoZW1wdHlJbWcsIDAsIDApO1xuXG4gICAgLy8gU3RvcmUgaW5pdGlhbCBtb3VzZSBwb3NpdGlvblxuICAgIHRoaXMuZHJhZ1N0YXJ0WSA9IGUuY2xpZW50WTtcbiAgICB0aGlzLmRyYWdDdXJyZW50WSA9IGUuY2xpZW50WTtcblxuICAgIC8vIE1lYXN1cmUgaXRlbSBoZWlnaHQgYW5kIHN0b3JlIGFsbCBvcmlnaW5hbCBwb3NpdGlvbnMgYmVmb3JlIGFueSB0cmFuc2Zvcm1zXG4gICAgY29uc3QgbGlzdEl0ZW1zID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcubGlzdC1pdGVtcycpO1xuICAgIGNvbnN0IGFsbEl0ZW1zID0gQXJyYXkuZnJvbShsaXN0SXRlbXM/LnF1ZXJ5U2VsZWN0b3JBbGwoJy5saXN0LWl0ZW0nKSB8fCBbXSkgYXMgSFRNTEVsZW1lbnRbXTtcblxuICAgIGlmIChhbGxJdGVtc1tpbmRleF0pIHtcbiAgICAgIHRoaXMuaXRlbUhlaWdodCA9IGFsbEl0ZW1zW2luZGV4XS5vZmZzZXRIZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gU3RvcmUgb3JpZ2luYWwgcG9zaXRpb25zIGZvciBhY2N1cmF0ZSBoaXQgZGV0ZWN0aW9uIChiZWZvcmUgYW55IHRyYW5zZm9ybXMgYXJlIGFwcGxpZWQpXG4gICAgdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cyA9IGFsbEl0ZW1zLm1hcChpdGVtID0+IGl0ZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuXG4gICAgLy8gQWRkIGNsYXNzIHRvIGNvbnRhaW5lclxuICAgIGxpc3RJdGVtcz8uY2xhc3NMaXN0LmFkZCgnaXMtZHJhZ2dpbmcnKTtcblxuICAgIC8vIFNldCB1cCBnbG9iYWwgZXZlbnQgbGlzdGVuZXJzXG4gICAgdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyID0gdGhpcy5oYW5kbGVHbG9iYWxEcmFnT3Zlci5iaW5kKHRoaXMpO1xuICAgIHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kID0gdGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kLmJpbmQodGhpcyk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXIpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdlbmQnLCB0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUdsb2JhbERyYWdPdmVyKGU6IERyYWdFdmVudCkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5kcmFnZ2VkSW5kZXggPT09IC0xKSByZXR1cm47XG5cbiAgICB0aGlzLmRyYWdDdXJyZW50WSA9IGUuY2xpZW50WTtcblxuICAgIC8vIENhbGN1bGF0ZSB3aGljaCBwb3NpdGlvbiB0aGUgaXRlbSBzaG91bGQgbW92ZSB0b1xuICAgIGNvbnN0IGxpc3RJdGVtcyA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLmxpc3QtaXRlbXMnKTtcbiAgICBpZiAoIWxpc3RJdGVtcykgcmV0dXJuO1xuXG4gICAgY29uc3QgaXRlbXMgPSBBcnJheS5mcm9tKGxpc3RJdGVtcy5xdWVyeVNlbGVjdG9yQWxsKCcubGlzdC1pdGVtJykpIGFzIEhUTUxFbGVtZW50W107XG4gICAgY29uc3QgZHJhZ2dlZEVsZW1lbnQgPSBpdGVtc1t0aGlzLmRyYWdnZWRJbmRleF07XG4gICAgaWYgKCFkcmFnZ2VkRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgLy8gQXBwbHkgdHJhbnNmb3JtIHRvIGRyYWdnZWQgaXRlbVxuICAgIGNvbnN0IGRlbHRhWSA9IHRoaXMuZHJhZ0N1cnJlbnRZIC0gdGhpcy5kcmFnU3RhcnRZO1xuICAgIGRyYWdnZWRFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7ZGVsdGFZfXB4KWA7XG5cbiAgICAvLyBDYWxjdWxhdGUgdGhlIGRyYWdnZWQgaXRlbSdzIGN1cnJlbnQgY2VudGVyIHBvc2l0aW9uXG4gICAgY29uc3QgZHJhZ2dlZFJlY3QgPSB0aGlzLm9yaWdpbmFsSXRlbVJlY3RzW3RoaXMuZHJhZ2dlZEluZGV4XTtcbiAgICBpZiAoIWRyYWdnZWRSZWN0KSByZXR1cm47XG4gICAgY29uc3QgZHJhZ2dlZENlbnRlciA9IGRyYWdnZWRSZWN0LnRvcCArIGRyYWdnZWRSZWN0LmhlaWdodCAvIDIgKyBkZWx0YVk7XG5cbiAgICAvLyBEZXRlcm1pbmUgdGFyZ2V0IGluZGV4OiBzd2FwIHdoZW4gZHJhZ2dlZCBpdGVtJ3MgY2VudGVyIGNyb3NzZXMgYW5vdGhlciBpdGVtJ3MgY2VudGVyXG4gICAgLy8gQWNjb3VudCBmb3IgaXRlbXMgdGhhdCBoYXZlIGFscmVhZHkgc2hpZnRlZCAodGhlaXIgdmlzdWFsIHBvc2l0aW9uIGNoYW5nZWQpXG4gICAgbGV0IG5ld1RhcmdldEluZGV4ID0gdGhpcy5kcmFnZ2VkSW5kZXg7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoaSA9PT0gdGhpcy5kcmFnZ2VkSW5kZXgpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCByZWN0ID0gdGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1tpXTtcbiAgICAgIGlmICghcmVjdCkgY29udGludWU7XG5cbiAgICAgIC8vIEFkanVzdCBpdGVtIGNlbnRlciBiYXNlZCBvbiB3aGV0aGVyIGl0IGhhcyBzaGlmdGVkXG4gICAgICBsZXQgaXRlbUNlbnRlciA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyO1xuXG4gICAgICAvLyBJZiBpdGVtIGhhcyBtb3ZlZCwgdXNlIGl0cyBzaGlmdGVkIHBvc2l0aW9uXG4gICAgICBpZiAoaXRlbXNbaV0uY2xhc3NMaXN0LmNvbnRhaW5zKCdtb3ZlLXVwJykpIHtcbiAgICAgICAgaXRlbUNlbnRlciAtPSB0aGlzLml0ZW1IZWlnaHQ7XG4gICAgICB9IGVsc2UgaWYgKGl0ZW1zW2ldLmNsYXNzTGlzdC5jb250YWlucygnbW92ZS1kb3duJykpIHtcbiAgICAgICAgaXRlbUNlbnRlciArPSB0aGlzLml0ZW1IZWlnaHQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChkcmFnZ2VkQ2VudGVyIDwgaXRlbUNlbnRlciAmJiBpIDwgdGhpcy5kcmFnZ2VkSW5kZXgpIHtcbiAgICAgICAgbmV3VGFyZ2V0SW5kZXggPSBpO1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSBpZiAoZHJhZ2dlZENlbnRlciA+IGl0ZW1DZW50ZXIgJiYgaSA+IHRoaXMuZHJhZ2dlZEluZGV4KSB7XG4gICAgICAgIG5ld1RhcmdldEluZGV4ID0gaTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGFyZ2V0IGluZGV4IGFuZCBhcHBseSBtb3ZlIGNsYXNzZXNcbiAgICBpZiAobmV3VGFyZ2V0SW5kZXggIT09IHRoaXMudGFyZ2V0SW5kZXgpIHtcbiAgICAgIHRoaXMudGFyZ2V0SW5kZXggPSBuZXdUYXJnZXRJbmRleDtcbiAgICAgIHRoaXMudXBkYXRlSXRlbVBvc2l0aW9ucyhpdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJdGVtUG9zaXRpb25zKGl0ZW1zOiBIVE1MRWxlbWVudFtdKSB7XG4gICAgY29uc3QgZHJhZ2dlZElkeCA9IHRoaXMuZHJhZ2dlZEluZGV4O1xuICAgIGNvbnN0IHRhcmdldElkeCA9IHRoaXMudGFyZ2V0SW5kZXg7XG5cbiAgICAvLyBTZXQgQ1NTIHZhcmlhYmxlIGZvciBpdGVtIGhlaWdodFxuICAgIGNvbnN0IGxpc3RJdGVtcyA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLmxpc3QtaXRlbXMnKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAobGlzdEl0ZW1zKSB7XG4gICAgICBsaXN0SXRlbXMuc3R5bGUuc2V0UHJvcGVydHkoJy0taXRlbS1oZWlnaHQnLCBgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKTtcbiAgICB9XG5cbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpKSA9PiB7XG4gICAgICBpZiAoaSA9PT0gZHJhZ2dlZElkeCkgcmV0dXJuOyAvLyBTa2lwIGRyYWdnZWQgaXRlbVxuXG4gICAgICBpdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ21vdmUtdXAnLCAnbW92ZS1kb3duJyk7XG4gICAgICBpdGVtLnN0eWxlLnNldFByb3BlcnR5KCctLWl0ZW0taGVpZ2h0JywgYCR7dGhpcy5pdGVtSGVpZ2h0fXB4YCk7XG5cbiAgICAgIGlmIChkcmFnZ2VkSWR4IDwgdGFyZ2V0SWR4KSB7XG4gICAgICAgIC8vIERyYWdnaW5nIGRvd246IGl0ZW1zIGJldHdlZW4gZHJhZ2dlZElkeCBhbmQgdGFyZ2V0SWR4IG1vdmUgdXBcbiAgICAgICAgaWYgKGkgPiBkcmFnZ2VkSWR4ICYmIGkgPD0gdGFyZ2V0SWR4KSB7XG4gICAgICAgICAgaXRlbS5jbGFzc0xpc3QuYWRkKCdtb3ZlLXVwJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZHJhZ2dlZElkeCA+IHRhcmdldElkeCkge1xuICAgICAgICAvLyBEcmFnZ2luZyB1cDogaXRlbXMgYmV0d2VlbiB0YXJnZXRJZHggYW5kIGRyYWdnZWRJZHggbW92ZSBkb3duXG4gICAgICAgIGlmIChpID49IHRhcmdldElkeCAmJiBpIDwgZHJhZ2dlZElkeCkge1xuICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgnbW92ZS1kb3duJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlR2xvYmFsRHJhZ0VuZCgpIHtcbiAgICAvLyBDbGVhbiB1cCBldmVudCBsaXN0ZW5lcnNcbiAgICBpZiAodGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyKSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcik7XG4gICAgICB0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXIgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQpIHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdlbmQnLCB0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCk7XG4gICAgICB0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCA9IG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdEl0ZW1zID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcubGlzdC1pdGVtcycpO1xuICAgIGNvbnN0IGl0ZW1zID0gbGlzdEl0ZW1zPy5xdWVyeVNlbGVjdG9yQWxsKCcubGlzdC1pdGVtJykgYXMgTm9kZUxpc3RPZjxIVE1MRWxlbWVudD47XG4gICAgY29uc3QgZHJhZ2dlZEVsZW1lbnQgPSBpdGVtcz8uW3RoaXMuZHJhZ2dlZEluZGV4XTtcblxuICAgIC8vIElmIG5vIHJlb3JkZXIgbmVlZGVkLCBhbmltYXRlIGJhY2sgYW5kIGNsZWFuIHVwXG4gICAgaWYgKHRoaXMuZHJhZ2dlZEluZGV4ID09PSAtMSB8fCB0aGlzLnRhcmdldEluZGV4ID09PSAtMSB8fCB0aGlzLmRyYWdnZWRJbmRleCA9PT0gdGhpcy50YXJnZXRJbmRleCkge1xuICAgICAgLy8gQW5pbWF0ZSBkcmFnZ2VkIGl0ZW0gYmFjayB0byBvcmlnaW5hbCBwb3NpdGlvblxuICAgICAgaWYgKGRyYWdnZWRFbGVtZW50ICYmIHRoaXMuZHJhZ2dlZEluZGV4ICE9PSAtMSkge1xuICAgICAgICBkcmFnZ2VkRWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gJ3RyYW5zZm9ybSAwLjE1cyBlYXNlJztcbiAgICAgICAgZHJhZ2dlZEVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVkoMCknO1xuXG4gICAgICAgIGxldCBoYW5kbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG9uUmV0dXJuID0gKCkgPT4ge1xuICAgICAgICAgIGlmIChoYW5kbGVkKSByZXR1cm47XG4gICAgICAgICAgaGFuZGxlZCA9IHRydWU7XG4gICAgICAgICAgZHJhZ2dlZEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIG9uUmV0dXJuKTtcbiAgICAgICAgICB0aGlzLmNsZWFudXBEcmFnU3RhdGUobGlzdEl0ZW1zLCBpdGVtcyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgZHJhZ2dlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIG9uUmV0dXJuLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgICAgIHNldFRpbWVvdXQob25SZXR1cm4sIDIwMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsZWFudXBEcmFnU3RhdGUobGlzdEl0ZW1zLCBpdGVtcyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2FsY3VsYXRlIGZpbmFsIHBvc2l0aW9uIGZvciBkcmFnZ2VkIGl0ZW1cbiAgICBjb25zdCBkcmFnZ2VkUmVjdCA9IHRoaXMub3JpZ2luYWxJdGVtUmVjdHNbdGhpcy5kcmFnZ2VkSW5kZXhdO1xuICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0aGlzLm9yaWdpbmFsSXRlbVJlY3RzW3RoaXMudGFyZ2V0SW5kZXhdO1xuXG4gICAgaWYgKCFkcmFnZ2VkUmVjdCB8fCAhdGFyZ2V0UmVjdCB8fCAhZHJhZ2dlZEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuY2xlYW51cERyYWdTdGF0ZShsaXN0SXRlbXMsIGl0ZW1zKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhdGUgd2hlcmUgZHJhZ2dlZCBpdGVtIG5lZWRzIHRvIGdvXG4gICAgbGV0IGZpbmFsWTogbnVtYmVyO1xuICAgIGlmICh0aGlzLnRhcmdldEluZGV4ID4gdGhpcy5kcmFnZ2VkSW5kZXgpIHtcbiAgICAgIC8vIE1vdmluZyBkb3duOiBnbyB0byBib3R0b20gb2YgdGFyZ2V0XG4gICAgICBmaW5hbFkgPSB0YXJnZXRSZWN0LmJvdHRvbSAtIGRyYWdnZWRSZWN0LmJvdHRvbTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTW92aW5nIHVwOiBnbyB0byB0b3Agb2YgdGFyZ2V0XG4gICAgICBmaW5hbFkgPSB0YXJnZXRSZWN0LnRvcCAtIGRyYWdnZWRSZWN0LnRvcDtcbiAgICB9XG5cbiAgICAvLyBBbmltYXRlIGRyYWdnZWQgaXRlbSB0byBmaW5hbCBwb3NpdGlvblxuICAgIGRyYWdnZWRFbGVtZW50LnN0eWxlLnRyYW5zaXRpb24gPSAndHJhbnNmb3JtIDAuMTVzIGVhc2UnO1xuICAgIGRyYWdnZWRFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7ZmluYWxZfXB4KWA7XG5cbiAgICAvLyBBZnRlciBhbmltYXRpb24gY29tcGxldGVzLCB1cGRhdGUgZGF0YVxuICAgIGxldCBoYW5kbGVkID0gZmFsc2U7XG4gICAgY29uc3Qgb25UcmFuc2l0aW9uRW5kID0gKCkgPT4ge1xuICAgICAgaWYgKGhhbmRsZWQpIHJldHVybjtcbiAgICAgIGhhbmRsZWQgPSB0cnVlO1xuICAgICAgZHJhZ2dlZEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIG9uVHJhbnNpdGlvbkVuZCk7XG5cbiAgICAgIC8vIERpc2FibGUgYWxsIHRyYW5zaXRpb25zXG4gICAgICBsaXN0SXRlbXM/LmNsYXNzTGlzdC5hZGQoJ2Ryb3BwaW5nJyk7XG5cbiAgICAgIC8vIEZvcmNlIHJlZmxvdyBzbyBkcm9wcGluZyBjbGFzcyB0YWtlcyBlZmZlY3QgaW1tZWRpYXRlbHlcbiAgICAgIHZvaWQgKGxpc3RJdGVtcyBhcyBIVE1MRWxlbWVudCk/Lm9mZnNldEhlaWdodDtcblxuICAgICAgLy8gQ2xlYW4gdXAgYWxsIGVsZW1lbnQgc3RhdGVcbiAgICAgIGl0ZW1zPy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ21vdmUtdXAnLCAnbW92ZS1kb3duJywgJ2RyYWdnaW5nJyk7XG4gICAgICAgIGl0ZW0uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ3RyYW5zZm9ybScpO1xuICAgICAgICBpdGVtLnN0eWxlLnJlbW92ZVByb3BlcnR5KCd0cmFuc2l0aW9uJyk7XG4gICAgICB9KTtcblxuICAgICAgLy8gVXBkYXRlIGRhdGFcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gWy4uLnRoaXMudmFsdWVdO1xuICAgICAgY29uc3QgW2RyYWdnZWRJdGVtXSA9IG5ld1ZhbHVlLnNwbGljZSh0aGlzLmRyYWdnZWRJbmRleCwgMSk7XG4gICAgICBuZXdWYWx1ZS5zcGxpY2UodGhpcy50YXJnZXRJbmRleCwgMCwgZHJhZ2dlZEl0ZW0pO1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG5cbiAgICAgIC8vIFJlc2V0IHN0YXRlXG4gICAgICB0aGlzLmRyYWdnZWRJbmRleCA9IC0xO1xuICAgICAgdGhpcy5kcmFnT3ZlckluZGV4ID0gLTE7XG4gICAgICB0aGlzLnRhcmdldEluZGV4ID0gLTE7XG4gICAgICB0aGlzLmRyYWdTdGFydFkgPSAwO1xuICAgICAgdGhpcy5kcmFnQ3VycmVudFkgPSAwO1xuICAgICAgdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cyA9IFtdO1xuXG4gICAgICAvLyBBZnRlciByZW5kZXIsIGVuc3VyZSBubyBhbmltYXRpb24gdGhlbiByZS1lbmFibGUgdHJhbnNpdGlvbnNcbiAgICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICAgIC8vIFNldCBpbmxpbmUgdHJhbnNpdGlvbjpub25lIG9uIGZyZXNoIGVsZW1lbnRzXG4gICAgICAgIGNvbnN0IGZyZXNoSXRlbXMgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoJy5saXN0LWl0ZW0nKSBhcyBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PjtcbiAgICAgICAgZnJlc2hJdGVtcz8uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICBpdGVtLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEZvcmNlIHJlZmxvd1xuICAgICAgICB2b2lkICh0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5saXN0LWl0ZW1zJykgYXMgSFRNTEVsZW1lbnQpPy5vZmZzZXRIZWlnaHQ7XG5cbiAgICAgICAgLy8gTm93IHJlLWVuYWJsZSB0cmFuc2l0aW9uc1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIGZyZXNoSXRlbXM/LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpdGVtLnN0eWxlLnJlbW92ZVByb3BlcnR5KCd0cmFuc2l0aW9uJyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbGlzdEl0ZW1zPy5jbGFzc0xpc3QucmVtb3ZlKCdkcm9wcGluZycsICdpcy1kcmFnZ2luZycpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBkcmFnZ2VkRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0cmFuc2l0aW9uZW5kJywgb25UcmFuc2l0aW9uRW5kLCB7IG9uY2U6IHRydWUgfSk7XG5cbiAgICAvLyBGYWxsYmFjayB0aW1lb3V0IGluIGNhc2UgdHJhbnNpdGlvbmVuZCBkb2Vzbid0IGZpcmVcbiAgICBzZXRUaW1lb3V0KG9uVHJhbnNpdGlvbkVuZCwgMjAwKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW51cERyYWdTdGF0ZShsaXN0SXRlbXM6IEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBpdGVtczogTm9kZUxpc3RPZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQpIHtcbiAgICBsaXN0SXRlbXM/LmNsYXNzTGlzdC5hZGQoJ2Ryb3BwaW5nJyk7XG5cbiAgICAvLyBGb3JjZSByZWZsb3cgc28gZHJvcHBpbmcgY2xhc3MgdGFrZXMgZWZmZWN0IGltbWVkaWF0ZWx5XG4gICAgdm9pZCAobGlzdEl0ZW1zIGFzIEhUTUxFbGVtZW50KT8ub2Zmc2V0SGVpZ2h0O1xuXG4gICAgaXRlbXM/LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ21vdmUtdXAnLCAnbW92ZS1kb3duJywgJ2RyYWdnaW5nJyk7XG4gICAgICBpdGVtLnN0eWxlLnJlbW92ZVByb3BlcnR5KCd0cmFuc2Zvcm0nKTtcbiAgICAgIGl0ZW0uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ3RyYW5zaXRpb24nKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZHJhZ2dlZEluZGV4ID0gLTE7XG4gICAgdGhpcy5kcmFnT3ZlckluZGV4ID0gLTE7XG4gICAgdGhpcy50YXJnZXRJbmRleCA9IC0xO1xuICAgIHRoaXMuZHJhZ1N0YXJ0WSA9IDA7XG4gICAgdGhpcy5kcmFnQ3VycmVudFkgPSAwO1xuICAgIHRoaXMub3JpZ2luYWxJdGVtUmVjdHMgPSBbXTtcblxuICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICBjb25zdCBmcmVzaEl0ZW1zID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCcubGlzdC1pdGVtJykgYXMgTm9kZUxpc3RPZjxIVE1MRWxlbWVudD47XG4gICAgICBmcmVzaEl0ZW1zPy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpdGVtLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XG4gICAgICB9KTtcblxuICAgICAgdm9pZCAodGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcubGlzdC1pdGVtcycpIGFzIEhUTUxFbGVtZW50KT8ub2Zmc2V0SGVpZ2h0O1xuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBmcmVzaEl0ZW1zPy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIGl0ZW0uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ3RyYW5zaXRpb24nKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxpc3RJdGVtcz8uY2xhc3NMaXN0LnJlbW92ZSgnZHJvcHBpbmcnLCAnaXMtZHJhZ2dpbmcnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEcmFnRW5kKCkge1xuICAgIC8vIFRoaXMgaXMgY2FsbGVkIGJ5IHRoZSBuYXRpdmUgZHJhZ2VuZCBvbiB0aGUgZWxlbWVudFxuICAgIC8vIFRoZSBhY3R1YWwgY2xlYW51cCBpcyBkb25lIGluIGhhbmRsZUdsb2JhbERyYWdFbmRcbiAgICB0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRHJhZ092ZXIoZTogRHJhZ0V2ZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLnNvcnRhYmxlIHx8IHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5kYXRhVHJhbnNmZXIhLmRyb3BFZmZlY3QgPSAnbW92ZSc7XG4gICAgLy8gV2UgaGFuZGxlIHBvc2l0aW9uaW5nIGluIGhhbmRsZUdsb2JhbERyYWdPdmVyIG5vd1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEcmFnTGVhdmUoKSB7XG4gICAgLy8gTm8gbG9uZ2VyIG5lZWRlZCBmb3IgdmlzdWFsIGZlZWRiYWNrIC0gaGFuZGxlZCBieSB0cmFuc2Zvcm1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRHJvcChlOiBEcmFnRXZlbnQsIGRyb3BJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLnNvcnRhYmxlIHx8IHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgLy8gVGhlIGFjdHVhbCByZW9yZGVyIGhhcHBlbnMgaW4gaGFuZGxlR2xvYmFsRHJhZ0VuZFxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q2hhbmdlKCkge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2NoYW5nZScsIHtcbiAgICAgIGRldGFpbDogeyB2YWx1ZTogdGhpcy52YWx1ZSB9LFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgfSkpO1xuICAgIHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGdldFZhbHVlKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgW107XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgKCF0aGlzLnZhbHVlIHx8IHRoaXMudmFsdWUubGVuZ3RoID09PSAwKSkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uVGV4dCA9ICdBdCBsZWFzdCBvbmUgaXRlbSBpcyByZXF1aXJlZCc7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIFxuICAgIGlmICh0aGlzLm1pbkl0ZW1zICYmIHRoaXMudmFsdWUubGVuZ3RoIDwgdGhpcy5taW5JdGVtcykge1xuICAgICAgdGhpcy52YWxpZGF0aW9uVGV4dCA9IGBBdCBsZWFzdCAke3RoaXMubWluSXRlbXN9IGl0ZW1zIHJlcXVpcmVkYDtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy52YWxpZGF0aW9uVGV4dCA9ICcnO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59IiwgImltcG9ydCB7IGh0bWwsIGNzcyB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgJ0BkZXNpZ24uZXN0YXRlL2RlZXMtd2NjdG9vbHMvZGVtb3Rvb2xzJztcbmltcG9ydCAnLi9jb21wb25lbnQuanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLXBhbmVsL2RlZXMtcGFuZWwuanMnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiBodG1sYFxuICA8ZGVlcy1kZW1vd3JhcHBlcj5cbiAgICA8c3R5bGU+XG4gICAgICAke2Nzc2BcbiAgICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGRlZXMtcGFuZWwge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmdyaWQtbGF5b3V0IHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIC5ncmlkLWxheW91dCB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5vdXRwdXQtcHJldmlldyB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmM2Y0ZjY7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBjb2xvcjogIzM3NDE1MTtcbiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjO1xuICAgICAgICAgICAgY29sb3I6ICNlNGU0ZTc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgIDwvc3R5bGU+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnMS4gQmFzaWMgUmljaCBUZXh0IEVkaXRvcid9IC5zdWJ0aXRsZT0keydBIGZ1bGwtZmVhdHVyZWQgcmljaCB0ZXh0IGVkaXRvciB3aXRoIGZvcm1hdHRpbmcgdG9vbGJhcid9PlxuICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCBcbiAgICAgICAgICAubGFiZWw9JHsnQXJ0aWNsZSBDb250ZW50J30gXG4gICAgICAgICAgLnZhbHVlPSR7JzxoMT5XZWxjb21lIHRvIHRoZSBSaWNoIFRleHQgRWRpdG9yITwvaDE+PHA+VGhpcyBpcyBhIGZlYXR1cmUtcmljaCBlZGl0b3IgYnVpbHQgd2l0aCBUaXBUYXAuIFlvdSBjYW46PC9wPjx1bD48bGk+PHN0cm9uZz5Gb3JtYXQgdGV4dDwvc3Ryb25nPiB3aXRoIDxlbT52YXJpb3VzPC9lbT4gPHU+c3R5bGVzPC91PjwvbGk+PGxpPkNyZWF0ZSBkaWZmZXJlbnQgaGVhZGluZyBsZXZlbHM8L2xpPjxsaT5BZGQgPGEgaHJlZj1cImh0dHBzOi8vZXhhbXBsZS5jb21cIj5saW5rczwvYT4gdG8gZXh0ZXJuYWwgcmVzb3VyY2VzPC9saT48bGk+V3JpdGUgPGNvZGU+aW5saW5lIGNvZGU8L2NvZGU+IG9yIGNvZGUgYmxvY2tzPC9saT48L3VsPjxibG9ja3F1b3RlPjxwPlVzZSB0aGUgdG9vbGJhciBhYm92ZSB0byBleHBsb3JlIGFsbCB0aGUgZm9ybWF0dGluZyBvcHRpb25zIGF2YWlsYWJsZSE8L3A+PC9ibG9ja3F1b3RlPjxwPlN0YXJ0IHR5cGluZyB0byBzZWUgdGhlIG1hZ2ljIGhhcHBlbi4uLjwvcD4nfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydVc2UgdGhlIHRvb2xiYXIgdG8gZm9ybWF0IHlvdXIgY29udGVudCB3aXRoIGhlYWRpbmdzLCBsaXN0cywgbGlua3MsIGFuZCBtb3JlJ31cbiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0ke3RydWV9XG4gICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keycyLiBXaXRoIFBsYWNlaG9sZGVyJ30gLnN1YnRpdGxlPSR7J0VtcHR5IGVkaXRvciB3aXRoIHBsYWNlaG9sZGVyIHRleHQnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgXG4gICAgICAgICAgLmxhYmVsPSR7J0Jsb2cgUG9zdCd9IFxuICAgICAgICAgIC5wbGFjZWhvbGRlcj0keydTdGFydCB3cml0aW5nIHlvdXIgYmxvZyBwb3N0IGhlcmUuLi4nfVxuICAgICAgICAgIC5zaG93V29yZENvdW50PSR7dHJ1ZX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzMuIERpZmZlcmVudCBIZWlnaHRzJ30gLnN1YnRpdGxlPSR7J0VkaXRvcnMgd2l0aCBkaWZmZXJlbnQgbWluaW11bSBoZWlnaHRzIGZvciB2YXJpb3VzIHVzZSBjYXNlcyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1sYXlvdXRcIj5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCBcbiAgICAgICAgICAgIC5sYWJlbD0keydTaG9ydCBOb3RlJ30gXG4gICAgICAgICAgICAubWluSGVpZ2h0PSR7MTUwfVxuICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J1F1aWNrIG5vdGUuLi4nfVxuICAgICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHtmYWxzZX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IFxuICAgICAgICAgICAgLmxhYmVsPSR7J0V4dGVuZGVkIENvbnRlbnQnfSBcbiAgICAgICAgICAgIC5taW5IZWlnaHQ9JHszMDB9XG4gICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsnV3JpdGUgeW91ciBleHRlbmRlZCBjb250ZW50IGhlcmUuLi4nfVxuICAgICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHt0cnVlfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgICAgXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnNC4gQ29kZSBFeGFtcGxlcyd9IC5zdWJ0aXRsZT0keydFZGl0b3IgcHJlLWZpbGxlZCB3aXRoIGNvZGUgZXhhbXBsZXMnfT5cbiAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgXG4gICAgICAgICAgLmxhYmVsPSR7J1RlY2huaWNhbCBEb2N1bWVudGF0aW9uJ30gXG4gICAgICAgICAgLnZhbHVlPSR7JzxoMj5JbnN0YWxsYXRpb24gR3VpZGU8L2gyPjxwPlRvIGluc3RhbGwgdGhlIHBhY2thZ2UsIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6PC9wPjxwcmU+PGNvZGU+bnBtIGluc3RhbGwgQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nPC9jb2RlPjwvcHJlPjxwPlRoZW4gaW1wb3J0IHRoZSBjb21wb25lbnQgaW4geW91ciBUeXBlU2NyaXB0IGZpbGU6PC9wPjxwcmU+PGNvZGU+aW1wb3J0IHsgRGVlc0lucHV0UmljaHRleHQgfSBmcm9tIFwiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nXCI7PC9jb2RlPjwvcHJlPjxwPllvdSBjYW4gbm93IHVzZSB0aGUgPGNvZGU+Jmx0O2RlZXMtaW5wdXQtcmljaHRleHQmZ3Q7PC9jb2RlPiBlbGVtZW50IGluIHlvdXIgdGVtcGxhdGVzLjwvcD4nfVxuICAgICAgICAgIC5taW5IZWlnaHQ9JHsyNTB9XG4gICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHt0cnVlfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgICAgXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnNS4gRGlzYWJsZWQgU3RhdGUnfSAuc3VidGl0bGU9JHsnUmVhZC1vbmx5IHJpY2ggdGV4dCBjb250ZW50J30+XG4gICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IFxuICAgICAgICAgIC5sYWJlbD0keydQdWJsaXNoZWQgQXJ0aWNsZSAoUmVhZCBPbmx5KSd9IFxuICAgICAgICAgIC52YWx1ZT0keyc8aDI+VGhlIEZ1dHVyZSBvZiBXZWIgQ29tcG9uZW50czwvaDI+PHA+V2ViIENvbXBvbmVudHMgaGF2ZSByZXZvbHV0aW9uaXplZCBob3cgd2UgYnVpbGQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMuLi48L3A+PGJsb2NrcXVvdGU+PHA+XCJUaGUgZnV0dXJlIG9mIHdlYiBkZXZlbG9wbWVudCBsaWVzIGluIHJldXNhYmxlLCBlbmNhcHN1bGF0ZWQgY29tcG9uZW50cy5cIjwvcD48L2Jsb2NrcXVvdGU+J31cbiAgICAgICAgICAuZGlzYWJsZWQ9JHt0cnVlfVxuICAgICAgICAgIC5zaG93V29yZENvdW50PSR7dHJ1ZX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzYuIEludGVyYWN0aXZlIERlbW8nfSAuc3VidGl0bGU9JHsnVHlwZSBpbiB0aGUgZWRpdG9yIGJlbG93IGFuZCBzZWUgdGhlIEhUTUwgb3V0cHV0J30+XG4gICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IFxuICAgICAgICAgIGlkPVwiaW50ZXJhY3RpdmUtZWRpdG9yXCJcbiAgICAgICAgICAubGFiZWw9JHsnVHJ5IGl0IHlvdXJzZWxmJ30gXG4gICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J1R5cGUgc29tZXRoaW5nIGhlcmUuLi4nfVxuICAgICAgICAgIC5zaG93V29yZENvdW50PSR7dHJ1ZX1cbiAgICAgICAgICBAY2hhbmdlPSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvdXRwdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjb3V0cHV0LXByZXZpZXcnKTtcbiAgICAgICAgICAgIGlmIChvdXRwdXQpIHtcbiAgICAgICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gZS5kZXRhaWwudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdXRwdXQtcHJldmlld1wiIGlkPVwib3V0cHV0LXByZXZpZXdcIj5cbiAgICAgICAgICA8ZW0+SFRNTCBvdXRwdXQgd2lsbCBhcHBlYXIgaGVyZS4uLjwvZW0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGl2PlxuICA8L2RlZXMtZGVtb3dyYXBwZXI+XG5gOyIsICJpbXBvcnQgeyBjc3MsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgRGVlc0lucHV0QmFzZSB9IGZyb20gJy4uL2RlZXMtaW5wdXQtYmFzZS9kZWVzLWlucHV0LWJhc2UuanMnO1xuXG5leHBvcnQgY29uc3QgcmljaHRleHRTdHlsZXMgPSBbXG4gICAgLi4uRGVlc0lucHV0QmFzZS5iYXNlU3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlciwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gICAgICB9XG5cbiAgICAgIC5pbnB1dC13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAubGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTUlKScsICdoc2woMCAwJSA5My45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5lZGl0b3ItY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLWhlaWdodDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJzIwMHB4JywgJzIwMHB4Jyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDAgMCUgOSUpJyl9O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgICAgfVxuXG4gICAgICAuZWRpdG9yLWNvbnRhaW5lcjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDc5LjglKScsICdoc2woMCAwJSAyMC45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5lZGl0b3ItY29udGFpbmVyLmZvY3VzZWQge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTglKScpfTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSAvIDAuMDUpJywgJ2hzbCgwIDAlIDk4JSAvIDAuMDUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuZWRpdG9yLXRvb2xiYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgNDAlIDk2LjElKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAudG9vbGJhci1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjQgMTYuMyUgNDYuOSUpJywgJ2hzbCgyMTUgMjAuMiUgNjUuMSUpJyl9O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24ge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAudG9vbGJhci1idXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUuMSUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTglKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSAzLjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRvb2xiYXItYnV0dG9uOmRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuXG4gICAgICAudG9vbGJhci1kaXZpZGVyIHtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgbWFyZ2luOiAwIDRweDtcbiAgICAgIH1cblxuICAgICAgLmVkaXRvci1jb250ZW50IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tbWluLWhlaWdodCwgMjAwcHgpO1xuICAgICAgfVxuXG4gICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAzLjklKScsICdoc2woMCAwJSA5OCUpJyl9O1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHAge1xuICAgICAgICBtYXJnaW46IDAuNWVtIDA7XG4gICAgICB9XG5cbiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG5cbiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgfVxuXG4gICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIH1cblxuICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgfVxuXG4gICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHVsLFxuICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBvbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41ZW07XG4gICAgICAgIG1hcmdpbjogMC41ZW0gMDtcbiAgICAgIH1cblxuICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBsaSB7XG4gICAgICAgIG1hcmdpbjogMC4yNWVtIDA7XG4gICAgICB9XG5cbiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYmxvY2txdW90ZSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIG1hcmdpbjogMWVtIDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA0Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIH1cblxuICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBjb2RlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk1LjElKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgcGFkZGluZzogMC4yZW0gMC40ZW07XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnRmlyYSBDb2RlJywgJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgJ1JvYm90byBNb25vJywgQ29uc29sYXMsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxNSUpJywgJ2hzbCgwIDAlIDkzLjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMy45JSknLCAnaHNsKDAgMCUgOTglKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5OCUpJywgJ2hzbCgwIDAlIDMuOSUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIHBhZGRpbmc6IDFlbTtcbiAgICAgICAgbWFyZ2luOiAxZW0gMDtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgIH1cblxuICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUgY29kZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgfVxuXG4gICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGEge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIuMiA0Ny40JSA1MS4yJSknLCAnaHNsKDIxNy4yIDkxLjIlIDU5LjglKScpfTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIyLjIgNDcuNCUgNDEuMiUpJywgJ2hzbCgyMTcuMiA5MS4yJSA2OS44JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5lZGl0b3ItZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDQwJSA5Ni4xJSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjQgMTYuMyUgNDYuOSUpJywgJ2hzbCgyMTUgMjAuMiUgNjUuMSUpJyl9O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC53b3JkLWNvdW50IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cblxuICAgICAgLmxpbmstaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSA5JSknKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgIH1cblxuICAgICAgLmxpbmstaW5wdXQuc2hvdyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAubGluay1pbnB1dCBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDAgMCUgOSUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDMuOSUpJywgJ2hzbCgwIDAlIDk4JSknKX07XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICB9XG5cbiAgICAgIC5saW5rLWlucHV0IGlucHV0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUpJywgJ2hzbCgwIDAlIDk4JSknKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUgLyAwLjA1KScsICdoc2woMCAwJSA5OCUgLyAwLjA1KScpfTtcbiAgICAgIH1cblxuICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA4OS44JSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSA5JSknKX07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1LjElKScsICdoc2woMCAwJSA2My45JSknKX07XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuXG4gICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5NS4xJSknLCAnaHNsKDAgMCUgMTQuOSUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDklKScsICdoc2woMCAwJSA5NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbi5wcmltYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDklKScsICdoc2woMCAwJSA5OCUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDMuOSUpJyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTglKScpfTtcbiAgICAgIH1cblxuICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyBidXR0b24ucHJpbWFyeTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxNSUpJywgJ2hzbCgwIDAlIDkzLjklKScpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTUlKScsICdoc2woMCAwJSA5My45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA0Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5lZGl0b3ItY29udGFpbmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSAudG9vbGJhci1idXR0b24sXG4gICAgICA6aG9zdChbZGlzYWJsZWRdKSAuZWRpdG9yLWNvbnRlbnQge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4iLCAiaW1wb3J0IHsgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgdHlwZSB7IERlZXNJbnB1dFJpY2h0ZXh0IH0gZnJvbSAnLi9jb21wb25lbnQuanMnO1xuXG5leHBvcnQgY29uc3QgcmVuZGVyUmljaHRleHQgPSAoY29tcG9uZW50OiBEZWVzSW5wdXRSaWNodGV4dCk6IFRlbXBsYXRlUmVzdWx0ID0+IHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAgICR7Y29tcG9uZW50LmxhYmVsID8gaHRtbGA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiPiR7Y29tcG9uZW50LmxhYmVsfTwvbGFiZWw+YCA6ICcnfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0b3ItY29udGFpbmVyICR7Y29tcG9uZW50LmVkaXRvcj8uaXNGb2N1c2VkID8gJ2ZvY3VzZWQnIDogJyd9XCIgc3R5bGU9XCItLW1pbi1oZWlnaHQ6ICR7Y29tcG9uZW50Lm1pbkhlaWdodH1weFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRvci10b29sYmFyXCI+XG4gICAgICAgICAgICAgICR7Y29tcG9uZW50LnJlbmRlclRvb2xiYXIoKX1cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstaW5wdXQgJHtjb21wb25lbnQuc2hvd0xpbmtJbnB1dCA/ICdzaG93JyA6ICcnfVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidXJsXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBVUkwuLi5cIiBAa2V5ZG93bj0ke2NvbXBvbmVudC5oYW5kbGVMaW5rSW5wdXRLZXlkb3dufSAvPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLWlucHV0LWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgQGNsaWNrPSR7Y29tcG9uZW50LnNhdmVMaW5rfT5TYXZlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0ke2NvbXBvbmVudC5yZW1vdmVMaW5rfT5SZW1vdmU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7Y29tcG9uZW50LmhpZGVMaW5rSW5wdXR9PkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXRvci1jb250ZW50XCI+PC9kaXY+XG4gICAgICAgICAgICAke2NvbXBvbmVudC5zaG93V29yZENvdW50XG4gICAgICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0b3ItZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid29yZC1jb3VudFwiPiR7Y29tcG9uZW50LndvcmRDb3VudH0gd29yZCR7Y29tcG9uZW50LndvcmRDb3VudCAhPT0gMSA/ICdzJyA6ICcnfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgOiAnJ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAke2NvbXBvbmVudC5kZXNjcmlwdGlvbiA/IGh0bWxgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+JHtjb21wb25lbnQuZGVzY3JpcHRpb259PC9kaXY+YCA6ICcnfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG4gIFxufTtcbiIsICJpbXBvcnQgeyBEZWVzSW5wdXRCYXNlIH0gZnJvbSAnLi4vZGVlcy1pbnB1dC1iYXNlL2RlZXMtaW5wdXQtYmFzZS5qcyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVtby5qcyc7XG5pbXBvcnQgeyByaWNodGV4dFN0eWxlcyB9IGZyb20gJy4vc3R5bGVzLmpzJztcbmltcG9ydCB7IHJlbmRlclJpY2h0ZXh0IH0gZnJvbSAnLi90ZW1wbGF0ZS5qcyc7XG5pbXBvcnQgdHlwZSB7IElUb29sYmFyQnV0dG9uIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuXG5pbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBwcm9wZXJ0eSxcbiAgaHRtbCxcbiAgc3RhdGUsXG4gIHF1ZXJ5LFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgdHlwZSB7IEVkaXRvciB9IGZyb20gJ0B0aXB0YXAvY29yZSc7XG5pbXBvcnQgeyBEZWVzU2VydmljZUxpYkxvYWRlciwgdHlwZSBJVGlwdGFwQnVuZGxlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW5kZXguanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWlucHV0LXJpY2h0ZXh0JzogRGVlc0lucHV0UmljaHRleHQ7XG4gIH1cbn1cblxuXG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWlucHV0LXJpY2h0ZXh0JylcbmV4cG9ydCBjbGFzcyBEZWVzSW5wdXRSaWNodGV4dCBleHRlbmRzIERlZXNJbnB1dEJhc2U8c3RyaW5nPiB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdJbnB1dCc7XG5cbiAgLy8gSU5TVEFOQ0VcbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgcmVmbGVjdDogdHJ1ZSxcbiAgfSlcbiAgYWNjZXNzb3IgdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogU3RyaW5nLFxuICB9KVxuICBhY2Nlc3NvciBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9KVxuICBhY2Nlc3NvciBzaG93V29yZENvdW50OiBib29sZWFuID0gdHJ1ZTtcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IE51bWJlcixcbiAgfSlcbiAgYWNjZXNzb3IgbWluSGVpZ2h0OiBudW1iZXIgPSAyMDA7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3Igc2hvd0xpbmtJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHdvcmRDb3VudDogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIGVkaXRvckVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGxpbmtJbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIHByaXZhdGUgdGlwdGFwQnVuZGxlOiBJVGlwdGFwQnVuZGxlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGVkaXRvcjogRWRpdG9yO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gcmljaHRleHRTdHlsZXM7XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIHJlbmRlclJpY2h0ZXh0KHRoaXMpO1xuICB9XG5cblxuXG4gIHB1YmxpYyByZW5kZXJUb29sYmFyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBidXR0b25zOiBJVG9vbGJhckJ1dHRvbltdID0gdGhpcy5nZXRUb29sYmFyQnV0dG9ucygpO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke2J1dHRvbnMubWFwKChidXR0b24pID0+IHtcbiAgICAgICAgaWYgKGJ1dHRvbi5pc0RpdmlkZXIpIHtcbiAgICAgICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwidG9vbGJhci1kaXZpZGVyXCI+PC9kaXY+YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInRvb2xiYXItYnV0dG9uICR7YnV0dG9uLmlzQWN0aXZlPy4oKSA/ICdhY3RpdmUnIDogJyd9XCJcbiAgICAgICAgICAgIEBjbGljaz0ke2J1dHRvbi5hY3Rpb259XG4gICAgICAgICAgICB0aXRsZT0ke2J1dHRvbi50aXRsZX1cbiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgIXRoaXMuZWRpdG9yfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtidXR0b24uaWNvbn0+PC9kZWVzLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIGA7XG4gICAgICB9KX1cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb29sYmFyQnV0dG9ucygpOiBJVG9vbGJhckJ1dHRvbltdIHtcbiAgICBpZiAoIXRoaXMuZWRpdG9yKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnYm9sZCcsXG4gICAgICAgIGljb246ICdsdWNpZGU6Ym9sZCcsXG4gICAgICAgIHRpdGxlOiAnQm9sZCAoQ3RybCtCKScsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJvbGQoKS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdib2xkJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaXRhbGljJyxcbiAgICAgICAgaWNvbjogJ2x1Y2lkZTppdGFsaWMnLFxuICAgICAgICB0aXRsZTogJ0l0YWxpYyAoQ3RybCtJKScsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUl0YWxpYygpLnJ1bigpLFxuICAgICAgICBpc0FjdGl2ZTogKCkgPT4gdGhpcy5lZGl0b3IuaXNBY3RpdmUoJ2l0YWxpYycpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3VuZGVybGluZScsXG4gICAgICAgIGljb246ICdsdWNpZGU6dW5kZXJsaW5lJyxcbiAgICAgICAgdGl0bGU6ICdVbmRlcmxpbmUgKEN0cmwrVSknLFxuICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVVbmRlcmxpbmUoKS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCd1bmRlcmxpbmUnKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdHJpa2UnLFxuICAgICAgICBpY29uOiAnbHVjaWRlOnN0cmlrZXRocm91Z2gnLFxuICAgICAgICB0aXRsZTogJ1N0cmlrZXRocm91Z2gnLFxuICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVTdHJpa2UoKS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdzdHJpa2UnKSxcbiAgICAgIH0sXG4gICAgICB7IG5hbWU6ICdkaXZpZGVyMScsIHRpdGxlOiAnJywgaXNEaXZpZGVyOiB0cnVlIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdoMScsXG4gICAgICAgIGljb246ICdsdWNpZGU6aGVhZGluZzEnLFxuICAgICAgICB0aXRsZTogJ0hlYWRpbmcgMScsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUhlYWRpbmcoeyBsZXZlbDogMSB9KS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdoZWFkaW5nJywgeyBsZXZlbDogMSB9KSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdoMicsXG4gICAgICAgIGljb246ICdsdWNpZGU6aGVhZGluZzInLFxuICAgICAgICB0aXRsZTogJ0hlYWRpbmcgMicsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUhlYWRpbmcoeyBsZXZlbDogMiB9KS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdoZWFkaW5nJywgeyBsZXZlbDogMiB9KSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdoMycsXG4gICAgICAgIGljb246ICdsdWNpZGU6aGVhZGluZzMnLFxuICAgICAgICB0aXRsZTogJ0hlYWRpbmcgMycsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUhlYWRpbmcoeyBsZXZlbDogMyB9KS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdoZWFkaW5nJywgeyBsZXZlbDogMyB9KSxcbiAgICAgIH0sXG4gICAgICB7IG5hbWU6ICdkaXZpZGVyMicsIHRpdGxlOiAnJywgaXNEaXZpZGVyOiB0cnVlIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdidWxsZXRMaXN0JyxcbiAgICAgICAgaWNvbjogJ2x1Y2lkZTpsaXN0JyxcbiAgICAgICAgdGl0bGU6ICdCdWxsZXQgTGlzdCcsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJ1bGxldExpc3QoKS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdidWxsZXRMaXN0JyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3JkZXJlZExpc3QnLFxuICAgICAgICBpY29uOiAnbHVjaWRlOmxpc3RPcmRlcmVkJyxcbiAgICAgICAgdGl0bGU6ICdOdW1iZXJlZCBMaXN0JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlT3JkZXJlZExpc3QoKS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdvcmRlcmVkTGlzdCcpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2Jsb2NrcXVvdGUnLFxuICAgICAgICBpY29uOiAnbHVjaWRlOnF1b3RlJyxcbiAgICAgICAgdGl0bGU6ICdRdW90ZScsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJsb2NrcXVvdGUoKS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdibG9ja3F1b3RlJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY29kZScsXG4gICAgICAgIGljb246ICdsdWNpZGU6Y29kZScsXG4gICAgICAgIHRpdGxlOiAnQ29kZScsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGUoKS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdjb2RlJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY29kZUJsb2NrJyxcbiAgICAgICAgaWNvbjogJ2x1Y2lkZTpmaWxlQ29kZScsXG4gICAgICAgIHRpdGxlOiAnQ29kZSBCbG9jaycsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGVCbG9jaygpLnJ1bigpLFxuICAgICAgICBpc0FjdGl2ZTogKCkgPT4gdGhpcy5lZGl0b3IuaXNBY3RpdmUoJ2NvZGVCbG9jaycpLFxuICAgICAgfSxcbiAgICAgIHsgbmFtZTogJ2RpdmlkZXIzJywgdGl0bGU6ICcnLCBpc0RpdmlkZXI6IHRydWUgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2xpbmsnLFxuICAgICAgICBpY29uOiAnbHVjaWRlOmxpbmsnLFxuICAgICAgICB0aXRsZTogJ0FkZCBMaW5rJyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLnRvZ2dsZUxpbmsoKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdsaW5rJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnYWxpZ25MZWZ0JyxcbiAgICAgICAgaWNvbjogJ2x1Y2lkZTphbGlnbkxlZnQnLFxuICAgICAgICB0aXRsZTogJ0FsaWduIExlZnQnLFxuICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oJ2xlZnQnKS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6ICgpID0+IHRoaXMuZWRpdG9yLmlzQWN0aXZlKHsgdGV4dEFsaWduOiAnbGVmdCcgfSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnYWxpZ25DZW50ZXInLFxuICAgICAgICBpY29uOiAnbHVjaWRlOmFsaWduQ2VudGVyJyxcbiAgICAgICAgdGl0bGU6ICdBbGlnbiBDZW50ZXInLFxuICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpLnJ1bigpLFxuICAgICAgICBpc0FjdGl2ZTogKCkgPT4gdGhpcy5lZGl0b3IuaXNBY3RpdmUoeyB0ZXh0QWxpZ246ICdjZW50ZXInIH0pLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2FsaWduUmlnaHQnLFxuICAgICAgICBpY29uOiAnbHVjaWRlOmFsaWduUmlnaHQnLFxuICAgICAgICB0aXRsZTogJ0FsaWduIFJpZ2h0JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCdyaWdodCcpLnJ1bigpLFxuICAgICAgICBpc0FjdGl2ZTogKCkgPT4gdGhpcy5lZGl0b3IuaXNBY3RpdmUoeyB0ZXh0QWxpZ246ICdyaWdodCcgfSksXG4gICAgICB9LFxuICAgICAgeyBuYW1lOiAnZGl2aWRlcjQnLCB0aXRsZTogJycsIGlzRGl2aWRlcjogdHJ1ZSB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndW5kbycsXG4gICAgICAgIGljb246ICdsdWNpZGU6dW5kbycsXG4gICAgICAgIHRpdGxlOiAnVW5kbyAoQ3RybCtaKScsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnVuZG8oKS5ydW4oKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdyZWRvJyxcbiAgICAgICAgaWNvbjogJ2x1Y2lkZTpyZWRvJyxcbiAgICAgICAgdGl0bGU6ICdSZWRvIChDdHJsK1kpJyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkucmVkbygpLnJ1bigpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpcnN0VXBkYXRlZCgpIHtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO1xuXG4gICAgLy8gTG9hZCBUaXB0YXAgZnJvbSBDRE5cbiAgICB0aGlzLnRpcHRhcEJ1bmRsZSA9IGF3YWl0IERlZXNTZXJ2aWNlTGliTG9hZGVyLmdldEluc3RhbmNlKCkubG9hZFRpcHRhcCgpO1xuXG4gICAgdGhpcy5lZGl0b3JFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5lZGl0b3ItY29udGVudCcpO1xuICAgIHRoaXMubGlua0lucHV0RWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubGluay1pbnB1dCBpbnB1dCcpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUVkaXRvcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRWRpdG9yKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8ICF0aGlzLnRpcHRhcEJ1bmRsZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgeyBFZGl0b3IsIFN0YXJ0ZXJLaXQsIFVuZGVybGluZSwgVGV4dEFsaWduLCBMaW5rLCBUeXBvZ3JhcGh5IH0gPSB0aGlzLnRpcHRhcEJ1bmRsZTtcblxuICAgIHRoaXMuZWRpdG9yID0gbmV3IEVkaXRvcih7XG4gICAgICBlbGVtZW50OiB0aGlzLmVkaXRvckVsZW1lbnQsXG4gICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgIFN0YXJ0ZXJLaXQuY29uZmlndXJlKHtcbiAgICAgICAgICBoZWFkaW5nOiB7XG4gICAgICAgICAgICBsZXZlbHM6IFsxLCAyLCAzXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgVW5kZXJsaW5lLmNvbmZpZ3VyZSh7fSksXG4gICAgICAgIFRleHRBbGlnbi5jb25maWd1cmUoe1xuICAgICAgICAgIHR5cGVzOiBbJ2hlYWRpbmcnLCAncGFyYWdyYXBoJ10sXG4gICAgICAgIH0pLFxuICAgICAgICBMaW5rLmNvbmZpZ3VyZSh7XG4gICAgICAgICAgb3Blbk9uQ2xpY2s6IGZhbHNlLFxuICAgICAgICAgIEhUTUxBdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICBjbGFzczogJ2VkaXRvci1saW5rJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgVHlwb2dyYXBoeS5jb25maWd1cmUoe30pLFxuICAgICAgXSxcbiAgICAgIGNvbnRlbnQ6IHRoaXMudmFsdWUgfHwgKHRoaXMucGxhY2Vob2xkZXIgPyBgPHA+JHt0aGlzLnBsYWNlaG9sZGVyfTwvcD5gIDogJycpLFxuICAgICAgb25VcGRhdGU6ICh7IGVkaXRvciB9KSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBlZGl0b3IuZ2V0SFRNTCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVdvcmRDb3VudCgpO1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdpbnB1dCcsIHtcbiAgICAgICAgICAgIGRldGFpbDogeyB2YWx1ZTogdGhpcy52YWx1ZSB9LFxuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2NoYW5nZScsIHtcbiAgICAgICAgICAgIGRldGFpbDogeyB2YWx1ZTogdGhpcy52YWx1ZSB9LFxuICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgb25TZWxlY3Rpb25VcGRhdGU6ICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgICB9LFxuICAgICAgb25Gb2N1czogKCkgPT4ge1xuICAgICAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgIH0sXG4gICAgICBvbkJsdXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy51cGRhdGVXb3JkQ291bnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlV29yZENvdW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5lZGl0b3IpIHJldHVybjtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5lZGl0b3IuZ2V0VGV4dCgpO1xuICAgIHRoaXMud29yZENvdW50ID0gdGV4dC50cmltKCkgPyB0ZXh0LnRyaW0oKS5zcGxpdCgvXFxzKy8pLmxlbmd0aCA6IDA7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUxpbmsoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmVkaXRvcikgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuZWRpdG9yLmlzQWN0aXZlKCdsaW5rJykpIHtcbiAgICAgIGNvbnN0IGhyZWYgPSB0aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKCdsaW5rJykuaHJlZjtcbiAgICAgIHRoaXMuc2hvd0xpbmtJbnB1dCA9IHRydWU7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5saW5rSW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgdGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlID0gaHJlZiB8fCAnJztcbiAgICAgICAgICB0aGlzLmxpbmtJbnB1dEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICB0aGlzLmxpbmtJbnB1dEVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dMaW5rSW5wdXQgPSB0cnVlO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubGlua0lucHV0RWxlbWVudCkge1xuICAgICAgICAgIHRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICAgIHRoaXMubGlua0lucHV0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2F2ZUxpbmsoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmVkaXRvciB8fCAhdGhpcy5saW5rSW5wdXRFbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCB1cmwgPSB0aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU7XG4gICAgaWYgKHVybCkge1xuICAgICAgdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldExpbmsoeyBocmVmOiB1cmwgfSkucnVuKCk7XG4gICAgfVxuICAgIHRoaXMuaGlkZUxpbmtJbnB1dCgpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUxpbmsoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmVkaXRvcikgcmV0dXJuO1xuICAgIHRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS51bnNldExpbmsoKS5ydW4oKTtcbiAgICB0aGlzLmhpZGVMaW5rSW5wdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlTGlua0lucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0xpbmtJbnB1dCA9IGZhbHNlO1xuICAgIHRoaXMuZWRpdG9yPy5jb21tYW5kcy5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUxpbmtJbnB1dEtleWRvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5zYXZlTGluaygpO1xuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmhpZGVMaW5rSW5wdXQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5lZGl0b3IgJiYgdmFsdWUgIT09IHRoaXMuZWRpdG9yLmdldEhUTUwoKSkge1xuICAgICAgdGhpcy5lZGl0b3IuY29tbWFuZHMuc2V0Q29udGVudCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3I/LmNvbW1hbmRzLmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAodGhpcy5lZGl0b3IpIHtcbiAgICAgIHRoaXMuZWRpdG9yLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cbn0iLCAiaW1wb3J0IHsgaHRtbCwgY3NzIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAnQGRlc2lnbi5lc3RhdGUvZGVlcy13Y2N0b29scy9kZW1vdG9vbHMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLXBhbmVsL2RlZXMtcGFuZWwuanMnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiBodG1sYFxuICA8ZGVlcy1kZW1vd3JhcHBlcj5cbiAgICA8c3R5bGU+XG4gICAgICAke2Nzc2BcbiAgICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGRlZXMtcGFuZWwge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmdyaWQtbGF5b3V0IHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIC5ncmlkLWxheW91dCB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5vdXRwdXQtcHJldmlldyB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmM2Y0ZjY7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBjb2xvcjogIzM3NDE1MTtcbiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjO1xuICAgICAgICAgICAgY29sb3I6ICNlNGU0ZTc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudGFnLXByZXZpZXcge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgIGdhcDogOHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2Y5ZmFmYjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgLnRhZy1wcmV2aWV3IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZjI5Mzc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAudGFnLXByZXZpZXctaXRlbSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBhZGRpbmc6IDRweCAxMnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNlMGU3ZmY7XG4gICAgICAgICAgY29sb3I6ICM0MzM4Y2E7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAgICAgICAudGFnLXByZXZpZXctaXRlbSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzEyZTgxO1xuICAgICAgICAgICAgY29sb3I6ICNjN2QyZmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgIDwvc3R5bGU+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnMS4gQmFzaWMgVGFncyBJbnB1dCd9IC5zdWJ0aXRsZT0keydTaW1wbGUgdGFnIGlucHV0IHdpdGggY29tbW9uIHByb2dyYW1taW5nIGxhbmd1YWdlcyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC10YWdzXG4gICAgICAgICAgLmxhYmVsPSR7J1Byb2dyYW1taW5nIExhbmd1YWdlcyd9XG4gICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J0FkZCBhIGxhbmd1YWdlLi4uJ31cbiAgICAgICAgICAudmFsdWU9JHtbJ0phdmFTY3JpcHQnLCAnVHlwZVNjcmlwdCcsICdQeXRob24nLCAnR28nXX1cbiAgICAgICAgICAuZGVzY3JpcHRpb249JHsnUHJlc3MgRW50ZXIgb3IgY29tbWEgdG8gYWRkIHRhZ3MnfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+XG4gICAgICA8L2RlZXMtcGFuZWw+XG5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keycyLiBUYWdzIHdpdGggU3VnZ2VzdGlvbnMnfSAuc3VidGl0bGU9JHsnQXV0by1jb21wbGV0ZSBzdWdnZXN0aW9ucyBmb3IgZmFzdGVyIGlucHV0J30+XG4gICAgICAgIDxkZWVzLWlucHV0LXRhZ3NcbiAgICAgICAgICAubGFiZWw9JHsnVGVjaCBTdGFjayd9XG4gICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J1R5cGUgdG8gc2VlIHN1Z2dlc3Rpb25zLi4uJ31cbiAgICAgICAgICAuc3VnZ2VzdGlvbnM9JHtbXG4gICAgICAgICAgICAnUmVhY3QnLCAnVnVlJywgJ0FuZ3VsYXInLCAnU3ZlbHRlJywgJ0xpdCcsICdOZXh0LmpzJywgJ051eHQnLCAnU3ZlbHRlS2l0JyxcbiAgICAgICAgICAgICdOb2RlLmpzJywgJ0Rlbm8nLCAnQnVuJywgJ0V4cHJlc3MnLCAnRmFzdGlmeScsICdOZXN0LmpzJywgJ0tvYScsXG4gICAgICAgICAgICAnTW9uZ29EQicsICdQb3N0Z3JlU1FMJywgJ1JlZGlzJywgJ015U1FMJywgJ1NRTGl0ZScsICdDYXNzYW5kcmEnLFxuICAgICAgICAgICAgJ0RvY2tlcicsICdLdWJlcm5ldGVzJywgJ0FXUycsICdBenVyZScsICdHQ1AnLCAnVmVyY2VsJywgJ05ldGxpZnknXG4gICAgICAgICAgXX1cbiAgICAgICAgICAudmFsdWU9JHtbJ1JlYWN0JywgJ05vZGUuanMnLCAnUG9zdGdyZVNRTCcsICdEb2NrZXInXX1cbiAgICAgICAgICAuZGVzY3JpcHRpb249JHsnU3RhcnQgdHlwaW5nIHRvIHNlZSBzdWdnZXN0aW9ucyBmcm9tIHBvcHVsYXIgdGVjaG5vbG9naWVzJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnMy4gTGltaXRlZCBUYWdzJ30gLnN1YnRpdGxlPSR7J1Jlc3RyaWN0IHRoZSBudW1iZXIgb2YgdGFncyB1c2VycyBjYW4gYWRkJ30+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLWxheW91dFwiPlxuICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3NcbiAgICAgICAgICAgIC5sYWJlbD0keydUb3AgMyBTa2lsbHMnfVxuICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J0FkZCB1cCB0byAzIHNraWxscy4uLid9XG4gICAgICAgICAgICAubWF4VGFncz0kezN9XG4gICAgICAgICAgICAudmFsdWU9JHtbJ0Rlc2lnbicsICdEZXZlbG9wbWVudCddfVxuICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J01heGltdW0gMyB0YWdzIGFsbG93ZWQnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzXG4gICAgICAgICAgICAubGFiZWw9JHsnQ2F0ZWdvcmllcyAoTWF4IDUpJ31cbiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keydTZWxlY3QgY2F0ZWdvcmllcy4uLid9XG4gICAgICAgICAgICAubWF4VGFncz0kezV9XG4gICAgICAgICAgICAuc3VnZ2VzdGlvbnM9JHtbJ0Jsb2cnLCAnVHV0b3JpYWwnLCAnTmV3cycsICdSZXZpZXcnLCAnR3VpZGUnLCAnQ2FzZSBTdHVkeScsICdJbnRlcnZpZXcnXX1cbiAgICAgICAgICAgIC52YWx1ZT0ke1snVHV0b3JpYWwnLCAnR3VpZGUnXX1cbiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydDaG9vc2UgdXAgdG8gNSBjYXRlZ29yaWVzJ31cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnNC4gUmVxdWlyZWQgJiBWYWxpZGF0aW9uJ30gLnN1YnRpdGxlPSR7J1RhZ3MgaW5wdXQgd2l0aCB2YWxpZGF0aW9uIHJlcXVpcmVtZW50cyd9PlxuICAgICAgICA8ZGVlcy1pbnB1dC10YWdzXG4gICAgICAgICAgLmxhYmVsPSR7J1Byb2plY3QgVGFncyd9XG4gICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J0FkZCBhdCBsZWFzdCBvbmUgdGFnLi4uJ31cbiAgICAgICAgICAucmVxdWlyZWQ9JHt0cnVlfVxuICAgICAgICAgIC5kZXNjcmlwdGlvbj0keydUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIC0gYWRkIGF0IGxlYXN0IG9uZSB0YWcnfVxuICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+XG4gICAgICA8L2RlZXMtcGFuZWw+XG5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc1LiBEaXNhYmxlZCBTdGF0ZSd9IC5zdWJ0aXRsZT0keydSZWFkLW9ubHkgdGFncyBkaXNwbGF5J30+XG4gICAgICAgIDxkZWVzLWlucHV0LXRhZ3NcbiAgICAgICAgICAubGFiZWw9JHsnU3lzdGVtIFRhZ3MnfVxuICAgICAgICAgIC52YWx1ZT0ke1snU3lzdGVtJywgJ1Byb3RlY3RlZCcsICdSZWFkLU9ubHknLCAnQXJjaGl2ZSddfVxuICAgICAgICAgIC5kaXNhYmxlZD0ke3RydWV9XG4gICAgICAgICAgLmRlc2NyaXB0aW9uPSR7J1RoZXNlIHRhZ3MgY2Fubm90IGJlIG1vZGlmaWVkJ31cbiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnNi4gRm9ybSBJbnRlZ3JhdGlvbid9IC5zdWJ0aXRsZT0keydUYWdzIGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0J30+XG4gICAgICAgIDxkZWVzLWZvcm0+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dFxuICAgICAgICAgICAgLmxhYmVsPSR7J1Byb2plY3QgTmFtZSd9XG4gICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsnTXkgQXdlc29tZSBQcm9qZWN0J31cbiAgICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgICAua2V5PSR7J25hbWUnfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1sYXlvdXRcIj5cbiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3NcbiAgICAgICAgICAgICAgLmxhYmVsPSR7J1RlY2hub2xvZ2llcyBVc2VkJ31cbiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J0FkZCB0ZWNobm9sb2dpZXMuLi4nfVxuICAgICAgICAgICAgICAucmVxdWlyZWQ9JHt0cnVlfVxuICAgICAgICAgICAgICAua2V5PSR7J3RlY2hub2xvZ2llcyd9XG4gICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz0ke1tcbiAgICAgICAgICAgICAgICAnVHlwZVNjcmlwdCcsICdKYXZhU2NyaXB0JywgJ1B5dGhvbicsICdHbycsICdSdXN0JyxcbiAgICAgICAgICAgICAgICAnUmVhY3QnLCAnVnVlJywgJ0FuZ3VsYXInLCAnU3ZlbHRlJyxcbiAgICAgICAgICAgICAgICAnTm9kZS5qcycsICdEZW5vJywgJ0V4cHJlc3MnLCAnRmFzdEFQSSdcbiAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFnc1xuICAgICAgICAgICAgICAubGFiZWw9JHsnUHJvamVjdCBUYWdzJ31cbiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J0FkZCBkZXNjcmlwdGl2ZSB0YWdzLi4uJ31cbiAgICAgICAgICAgICAgLmtleT0keyd0YWdzJ31cbiAgICAgICAgICAgICAgLm1heFRhZ3M9JHsxMH1cbiAgICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPSR7W1xuICAgICAgICAgICAgICAgICdmcm9udGVuZCcsICdiYWNrZW5kJywgJ2Z1bGxzdGFjaycsICdtb2JpbGUnLCAnZGVza3RvcCcsXG4gICAgICAgICAgICAgICAgJ3dlYicsICdhcGknLCAnZGF0YWJhc2UnLCAnZGV2b3BzJywgJ3VpL3V4JyxcbiAgICAgICAgICAgICAgICAnb3BlbnNvdXJjZScsICdzYWFzJywgJ2VudGVycHJpc2UnLCAnc3RhcnR1cCdcbiAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0XG4gICAgICAgICAgICAubGFiZWw9JHsnRGVzY3JpcHRpb24nfVxuICAgICAgICAgICAgLmlucHV0VHlwZT0keyd0ZXh0YXJlYSd9XG4gICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsnRGVzY3JpYmUgeW91ciBwcm9qZWN0Li4uJ31cbiAgICAgICAgICAgIC5rZXk9JHsnZGVzY3JpcHRpb24nfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keydDcmVhdGUgUHJvamVjdCd9PjwvZGVlcy1mb3JtLXN1Ym1pdD5cbiAgICAgICAgPC9kZWVzLWZvcm0+XG4gICAgICA8L2RlZXMtcGFuZWw+XG5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc3LiBJbnRlcmFjdGl2ZSBEZW1vJ30gLnN1YnRpdGxlPSR7J0FkZCB0YWdzIGFuZCBzZWUgdGhlbSBjb2xsZWN0ZWQgaW4gcmVhbC10aW1lJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LXRhZ3NcbiAgICAgICAgICBpZD1cImludGVyYWN0aXZlLXRhZ3NcIlxuICAgICAgICAgIC5sYWJlbD0keydZb3VyIEludGVyZXN0cyd9XG4gICAgICAgICAgLnBsYWNlaG9sZGVyPSR7J1R5cGUgeW91ciBpbnRlcmVzdHMuLi4nfVxuICAgICAgICAgIC5zdWdnZXN0aW9ucz0ke1tcbiAgICAgICAgICAgICdNdXNpYycsICdNb3ZpZXMnLCAnQm9va3MnLCAnVHJhdmVsJywgJ1Bob3RvZ3JhcGh5JyxcbiAgICAgICAgICAgICdDb29raW5nJywgJ0dhbWluZycsICdTcG9ydHMnLCAnQXJ0JywgJ1RlY2hub2xvZ3knLFxuICAgICAgICAgICAgJ0Zhc2hpb24nLCAnRml0bmVzcycsICdOYXR1cmUnLCAnU2NpZW5jZScsICdIaXN0b3J5J1xuICAgICAgICAgIF19XG4gICAgICAgICAgQGNoYW5nZT0keyhlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJldmlldyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0YWdzLXByZXZpZXcnKTtcbiAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSBlLmRldGFpbC52YWx1ZTtcbiAgICAgICAgICAgIGlmIChwcmV2aWV3KSB7XG4gICAgICAgICAgICAgIGlmICh0YWdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHByZXZpZXcuaW5uZXJIVE1MID0gJzxlbSBzdHlsZT1cImNvbG9yOiAjOTk5O1wiPk5vIHRhZ3MgYWRkZWQgeWV0Li4uPC9lbT4nO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHByZXZpZXcuaW5uZXJIVE1MID0gdGFncy5tYXAoKHRhZzogc3RyaW5nKSA9PiBcbiAgICAgICAgICAgICAgICAgIGA8c3BhbiBjbGFzcz1cInRhZy1wcmV2aWV3LWl0ZW1cIj4ke3RhZ308L3NwYW4+YFxuICAgICAgICAgICAgICAgICkuam9pbignJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFnLXByZXZpZXdcIiBpZD1cInRhZ3MtcHJldmlld1wiPlxuICAgICAgICAgIDxlbSBzdHlsZT1cImNvbG9yOiAjOTk5O1wiPk5vIHRhZ3MgYWRkZWQgeWV0Li4uPC9lbT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwib3V0cHV0LXByZXZpZXdcIiBpZD1cInRhZ3MtanNvblwiPlxuICAgICAgICAgIDxlbT5KU09OIG91dHB1dCB3aWxsIGFwcGVhciBoZXJlLi4uPC9lbT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8c2NyaXB0PlxuICAgICAgICAgIC8vIFVwZGF0ZSBKU09OIHByZXZpZXdcbiAgICAgICAgICBjb25zdCB0YWdzSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaW50ZXJhY3RpdmUtdGFncycpO1xuICAgICAgICAgIHRhZ3NJbnB1dD8uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGpzb25QcmV2aWV3ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RhZ3MtanNvbicpO1xuICAgICAgICAgICAgaWYgKGpzb25QcmV2aWV3KSB7XG4gICAgICAgICAgICAgIGpzb25QcmV2aWV3LnRleHRDb250ZW50ID0gSlNPTi5zdHJpbmdpZnkoZS5kZXRhaWwudmFsdWUsIG51bGwsIDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICA8L3NjcmlwdD5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2Rpdj5cbiAgPC9kZWVzLWRlbW93cmFwcGVyPlxuYDsiLCAiaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgY3NzLFxuICBjc3NNYW5hZ2VyLFxuICBwcm9wZXJ0eSxcbiAgc3RhdGUsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBEZWVzSW5wdXRCYXNlIH0gZnJvbSAnLi4vZGVlcy1pbnB1dC1iYXNlL2RlZXMtaW5wdXQtYmFzZS5qcyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtaW5wdXQtdGFncy5kZW1vLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWlucHV0LXRhZ3MnOiBEZWVzSW5wdXRUYWdzO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWlucHV0LXRhZ3MnKVxuZXhwb3J0IGNsYXNzIERlZXNJbnB1dFRhZ3MgZXh0ZW5kcyBEZWVzSW5wdXRCYXNlPERlZXNJbnB1dFRhZ3M+IHtcbiAgLy8gU1RBVElDXG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdJbnB1dCc7XG5cbiAgLy8gSU5TVEFOQ0VcbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3IgdmFsdWU6IHN0cmluZ1tdID0gW107XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnQWRkIHRhZ3MuLi4nO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBtYXhUYWdzOiBudW1iZXIgPSAwOyAvLyAwIG1lYW5zIHVubGltaXRlZFxuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIGFjY2Vzc29yIHN1Z2dlc3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGlucHV0VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHNob3dTdWdnZXN0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4OiBudW1iZXIgPSAtMTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgdmFsaWRhdGlvblRleHQ6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICAuLi5EZWVzSW5wdXRCYXNlLmJhc2VTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjtcbiAgICAgIH1cblxuICAgICAgLmlucHV0LXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnRhZ3MtY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgfVxuXG4gICAgICAudGFncy1jb250YWluZXI6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA3OS44JSknLCAnaHNsKDAgMCUgMjAuOSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAudGFncy1jb250YWluZXI6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKScsICdoc2woMjE3LjIgOTEuMiUgNTkuOCUpJyl9O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSknLCAnaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRhZ3MtY29udGFpbmVyLmRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk1LjElKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIH1cblxuICAgICAgLnRhZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZzogMnB4IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUgMjAuMiUgNjUuMSUgLyAwLjIpJywgJ2hzbCgyMTUgMjAuMiUgMzUuMSUgLyAwLjIpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuMyAyNSUgMjYuNyUpJywgJ2hzbCgyMTcuOSAxMC42JSA3NC45JSknKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDIwLjIlIDY1LjElIC8gMC4zKScsICdoc2woMjE1IDIwLjIlIDM1LjElIC8gMC4zKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgYW5pbWF0aW9uOiB0YWdBcHBlYXIgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyB0YWdBcHBlYXIge1xuICAgICAgICBmcm9tIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICAgICAgdG8ge1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAudGFnLXJlbW92ZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSA0Ni43JSknLCAnaHNsKDIxNy45IDEwLjYlIDU0LjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRhZy1yZW1vdmU6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMCUgLyAwLjA4KScsICdoc2woMCAwJSAxMDAlIC8gMC4wOCknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSAyNi43JSknLCAnaHNsKDIxNy45IDEwLjYlIDc0LjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRhZy1yZW1vdmUgZGVlcy1pY29uIHtcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIH1cblxuICAgICAgLnRhZy1pbnB1dCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOSUpJywgJ2hzbCgwIDAlIDk1JSknKX07XG4gICAgICAgIHBhZGRpbmc6IDJweCA0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG4gICAgICAudGFnLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgNjMuOSUpJywgJ2hzbCgwIDAlIDQ1LjElKScpfTtcbiAgICAgIH1cblxuICAgICAgLnRhZy1pbnB1dDpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG5cbiAgICAgIC8qIFN1Z2dlc3Rpb25zIGRyb3Bkb3duICovXG4gICAgICAuc3VnZ2VzdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDMuOSUpJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODkuOCUpJywgJ2hzbCgwIDAlIDE0LjklKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTtcbiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICB9XG5cbiAgICAgIC5zdWdnZXN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxNSUpJywgJ2hzbCgwIDAlIDkwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5zdWdnZXN0aW9uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk1LjElKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5zdWdnZXN0aW9uLmhpZ2hsaWdodGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgNDAlIDk2LjElKScsICdoc2woMjE1IDIwLjIlIDE2LjglKScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi9cbiAgICAgIC52YWxpZGF0aW9uLW1lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcyLjIlIDUwLjYlKScsICdoc2woMCA2Mi44JSAzMC42JSknKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgfVxuXG4gICAgICAvKiBEZXNjcmlwdGlvbiBzdHlsZXMgKi9cbiAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS40IDE2LjMlIDU2LjklKScsICdoc2woMjE1IDIwLjIlIDU1LjElKScpfTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICB9XG5cbiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovXG4gICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgIH1cblxuICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIH1cblxuICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA3OS44JSknLCAnaHNsKDAgMCUgMjAuOSUpJyl9O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgZmlsdGVyZWRTdWdnZXN0aW9ucyA9IHRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKFxuICAgICAgc3VnZ2VzdGlvbiA9PiBcbiAgICAgICAgIXRoaXMudmFsdWUuaW5jbHVkZXMoc3VnZ2VzdGlvbikgJiZcbiAgICAgICAgc3VnZ2VzdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKVxuICAgICk7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgICAgICR7dGhpcy5sYWJlbCA/IGh0bWxgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPmAgOiAnJ31cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdWdnZXN0aW9ucy1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRhZ3MtY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiAnJ31cIlxuICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDb250YWluZXJDbGlja31cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMudmFsdWUubWFwKHRhZyA9PiBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFnXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+JHt0YWd9PC9zcGFuPlxuICAgICAgICAgICAgICAgICR7IXRoaXMuZGlzYWJsZWQgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZy1yZW1vdmVcIiBAY2xpY2s9JHsoZTogRXZlbnQpID0+IHRoaXMucmVtb3ZlVGFnKGUsIHRhZyl9PlxuICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTp4J30+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYCl9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICR7IXRoaXMuZGlzYWJsZWQgJiYgKCF0aGlzLm1heFRhZ3MgfHwgdGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm1heFRhZ3MpID8gaHRtbGBcbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFnLWlucHV0XCJcbiAgICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0aGlzLnBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuaW5wdXRWYWx1ZX1cbiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fVxuICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgIEBmb2N1cz0ke3RoaXMuaGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgQGJsdXI9JHt0aGlzLmhhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICR7dGhpcy5zaG93U3VnZ2VzdGlvbnMgJiYgZmlsdGVyZWRTdWdnZXN0aW9ucy5sZW5ndGggPiAwID8gaHRtbGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWdnZXN0aW9ucy1kcm9wZG93blwiPlxuICAgICAgICAgICAgICAke2ZpbHRlcmVkU3VnZ2VzdGlvbnMubWFwKChzdWdnZXN0aW9uLCBpbmRleCkgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInN1Z2dlc3Rpb24gJHtpbmRleCA9PT0gdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCA/ICdoaWdobGlnaHRlZCcgOiAnJ31cIlxuICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0keyhlOiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7IC8vIFByZXZlbnQgYmx1clxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFRhZyhzdWdnZXN0aW9uKTtcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0keygpID0+IHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXggPSBpbmRleH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAke3N1Z2dlc3Rpb259XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIGApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYCA6ICcnfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQgPyBodG1sYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWxpZGF0aW9uLW1lc3NhZ2VcIj4ke3RoaXMudmFsaWRhdGlvblRleHR9PC9kaXY+XG4gICAgICAgIGAgOiAnJ31cbiAgICAgICAgXG4gICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbiA/IGh0bWxgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+JHt0aGlzLmRlc2NyaXB0aW9ufTwvZGl2PlxuICAgICAgICBgIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDb250YWluZXJDbGljayhlOiBFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy50YWctaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmIChpbnB1dCAmJiBlLnRhcmdldCAhPT0gaW5wdXQpIHtcbiAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbnB1dChlOiBFdmVudCkge1xuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICB0aGlzLmlucHV0VmFsdWUgPSBpbnB1dC52YWx1ZTtcbiAgICBcbiAgICAvLyBDaGVjayBmb3IgY29tbWEgb3Igc2VtaWNvbG9uIHRvIGFkZCB0YWdcbiAgICBpZiAodGhpcy5pbnB1dFZhbHVlLmluY2x1ZGVzKCcsJykgfHwgdGhpcy5pbnB1dFZhbHVlLmluY2x1ZGVzKCc7JykpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHRoaXMuaW5wdXRWYWx1ZS5yZXBsYWNlKC9bLDtdL2csICcnKS50cmltKCk7XG4gICAgICBpZiAodGFnKSB7XG4gICAgICAgIHRoaXMuYWRkVGFnKHRhZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVLZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgXG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAodGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCA+PSAwICYmIHRoaXMuc2hvd1N1Z2dlc3Rpb25zKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkU3VnZ2VzdGlvbnMgPSB0aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihcbiAgICAgICAgICBzdWdnZXN0aW9uID0+IFxuICAgICAgICAgICAgIXRoaXMudmFsdWUuaW5jbHVkZXMoc3VnZ2VzdGlvbikgJiZcbiAgICAgICAgICAgIHN1Z2dlc3Rpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGZpbHRlcmVkU3VnZ2VzdGlvbnNbdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleF0pIHtcbiAgICAgICAgICB0aGlzLmFkZFRhZyhmaWx0ZXJlZFN1Z2dlc3Rpb25zW3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXhdKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLmlucHV0VmFsdWUudHJpbSgpKSB7XG4gICAgICAgIHRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdCYWNrc3BhY2UnICYmICF0aGlzLmlucHV0VmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBSZW1vdmUgbGFzdCB0YWcgd2hlbiBiYWNrc3BhY2UgaXMgcHJlc3NlZCBvbiBlbXB0eSBpbnB1dFxuICAgICAgdGhpcy5yZW1vdmVUYWcoZSwgdGhpcy52YWx1ZVt0aGlzLnZhbHVlLmxlbmd0aCAtIDFdKTtcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJyAmJiB0aGlzLnNob3dTdWdnZXN0aW9ucykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgZmlsdGVyZWRDb3VudCA9IHRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKFxuICAgICAgICBzID0+ICF0aGlzLnZhbHVlLmluY2x1ZGVzKHMpICYmIHMudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICkubGVuZ3RoO1xuICAgICAgdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCA9IE1hdGgubWluKFxuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4ICsgMSxcbiAgICAgICAgZmlsdGVyZWRDb3VudCAtIDFcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnICYmIHRoaXMuc2hvd1N1Z2dlc3Rpb25zKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4ID0gTWF0aC5tYXgodGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCAtIDEsIDApO1xuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLnNob3dTdWdnZXN0aW9ucyA9IGZhbHNlO1xuICAgICAgdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCA9IC0xO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuc3VnZ2VzdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbnMgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQmx1cigpIHtcbiAgICAvLyBEZWxheSB0byBhbGxvdyBjbGljayBvbiBzdWdnZXN0aW9uc1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbnMgPSBmYWxzZTtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXggPSAtMTtcbiAgICB9LCAyMDApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRUYWcodGFnOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRhZyB8fCB0aGlzLnZhbHVlLmluY2x1ZGVzKHRhZykpIHJldHVybjtcbiAgICBpZiAodGhpcy5tYXhUYWdzICYmIHRoaXMudmFsdWUubGVuZ3RoID49IHRoaXMubWF4VGFncykgcmV0dXJuO1xuXG4gICAgdGhpcy52YWx1ZSA9IFsuLi50aGlzLnZhbHVlLCB0YWddO1xuICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb25zID0gZmFsc2U7XG4gICAgdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCA9IC0xO1xuICAgIFxuICAgIC8vIENsZWFyIHRoZSBpbnB1dFxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcudGFnLWlucHV0JykgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVRhZyhlOiBFdmVudCwgdGFnOiBzdHJpbmcpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLmZpbHRlcih0ID0+IHQgIT09IHRhZyk7XG4gICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDaGFuZ2UoKSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnY2hhbmdlJywge1xuICAgICAgZGV0YWlsOiB7IHZhbHVlOiB0aGlzLnZhbHVlIH0sXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICB9KSk7XG4gICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCBbXTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAoIXRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZS5sZW5ndGggPT09IDApKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25UZXh0ID0gJ0F0IGxlYXN0IG9uZSB0YWcgaXMgcmVxdWlyZWQnO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRpb25UZXh0ID0gJyc7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn0iLCAiaW1wb3J0IHsgaHRtbCwgY3NzLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAnQGRlc2lnbi5lc3RhdGUvZGVlcy13Y2N0b29scy9kZW1vdG9vbHMnO1xuaW1wb3J0ICcuLi9kZWVzLXBhbmVsL2RlZXMtcGFuZWwuanMnO1xuaW1wb3J0IHR5cGUgeyBEZWVzSW5wdXRXeXNpd3lnIH0gZnJvbSAnLi9kZWVzLWlucHV0LXd5c2l3eWcvZGVlcy1pbnB1dC13eXNpd3lnLmpzJztcbmltcG9ydCB0eXBlIHsgSUJsb2NrIH0gZnJvbSAnLi9kZWVzLWlucHV0LXd5c2l3eWcvd3lzaXd5Zy50eXBlcy5qcyc7XG5cbmludGVyZmFjZSBJRGVtb0VkaXRvciB7XG4gIGJhc2ljOiBEZWVzSW5wdXRXeXNpd3lnO1xuICBhcnRpY2xlOiBEZWVzSW5wdXRXeXNpd3lnO1xuICBkcmFnRHJvcDogRGVlc0lucHV0V3lzaXd5ZztcbiAgdHV0b3JpYWw6IERlZXNJbnB1dFd5c2l3eWc7XG4gIG1lZXRpbmc6IERlZXNJbnB1dFd5c2l3eWc7XG4gIHJlY2lwZTogRGVlc0lucHV0V3lzaXd5ZztcbiAgdGVjaG5pY2FsOiBEZWVzSW5wdXRXeXNpd3lnO1xuICBmb3JtSW50ZWdyYXRpb246IERlZXNJbnB1dFd5c2l3eWc7XG4gIHByb2dyYW1tYXRpYzogRGVlc0lucHV0V3lzaXd5ZztcbiAgZXhwb3J0RGVtbzogRGVlc0lucHV0V3lzaXd5Zztcbn1cblxuLy8gU2FtcGxlIGNvbnRlbnQgZ2VuZXJhdG9yc1xuY29uc3QgZ2VuZXJhdGVSZXBvcnRCbG9ja3MgPSAoKTogSUJsb2NrW10gPT4ge1xuICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGlkOiBgdGl0bGUtJHt0aW1lc3RhbXB9YCxcbiAgICAgIHR5cGU6ICdoZWFkaW5nLTEnLFxuICAgICAgY29udGVudDogJ1N5c3RlbSBQZXJmb3JtYW5jZSBSZXBvcnQnXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogYGRhdGUtJHt0aW1lc3RhbXAgKyAxfWAsXG4gICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgIGNvbnRlbnQ6IGBHZW5lcmF0ZWQgb246ICR7bmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpfWBcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBgc3VtbWFyeS1oZWFkaW5nLSR7dGltZXN0YW1wICsgMn1gLFxuICAgICAgdHlwZTogJ2hlYWRpbmctMicsXG4gICAgICBjb250ZW50OiAnRXhlY3V0aXZlIFN1bW1hcnknXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogYHN1bW1hcnktJHt0aW1lc3RhbXAgKyAzfWAsXG4gICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgIGNvbnRlbnQ6ICdUaGlzIHJlcG9ydCBwcm92aWRlcyBhbiBhbmFseXNpcyBvZiBzeXN0ZW0gcGVyZm9ybWFuY2UgbWV0cmljcyBvdmVyIHRoZSBsYXN0IDMwIGRheXMuJ1xuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IGBtZXRyaWNzLWhlYWRpbmctJHt0aW1lc3RhbXAgKyA0fWAsXG4gICAgICB0eXBlOiAnaGVhZGluZy0yJyxcbiAgICAgIGNvbnRlbnQ6ICdLZXkgTWV0cmljcydcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBgbWV0cmljcy1saXN0LSR7dGltZXN0YW1wICsgNX1gLFxuICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgY29udGVudDogJ0F2ZXJhZ2UgcmVzcG9uc2UgdGltZTogMTI0bXNcXG5VcHRpbWU6IDk5Ljk3JVxcbkNQVSB1dGlsaXphdGlvbjogNDUlXFxuTWVtb3J5IHVzYWdlOiAyLjNHQiAvIDhHQicsXG4gICAgICBtZXRhZGF0YTogeyBsaXN0VHlwZTogJ2J1bGxldCcgfVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IGBhbmFseXNpcy1oZWFkaW5nLSR7dGltZXN0YW1wICsgNn1gLFxuICAgICAgdHlwZTogJ2hlYWRpbmctMicsXG4gICAgICBjb250ZW50OiAnUGVyZm9ybWFuY2UgQW5hbHlzaXMnXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogYGFuYWx5c2lzLXF1b3RlLSR7dGltZXN0YW1wICsgN31gLFxuICAgICAgdHlwZTogJ3F1b3RlJyxcbiAgICAgIGNvbnRlbnQ6ICdTeXN0ZW0gcGVyZm9ybWFuY2UgcmVtYWlucyB3aXRoaW4gYWNjZXB0YWJsZSBwYXJhbWV0ZXJzIHdpdGggcm9vbSBmb3Igb3B0aW1pemF0aW9uIGluIG1lbW9yeSBtYW5hZ2VtZW50LidcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBgY29kZS1oZWFkaW5nLSR7dGltZXN0YW1wICsgOH1gLFxuICAgICAgdHlwZTogJ2hlYWRpbmctMycsXG4gICAgICBjb250ZW50OiAnU2FtcGxlIFF1ZXJ5IFBlcmZvcm1hbmNlJ1xuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IGBjb2RlLWJsb2NrLSR7dGltZXN0YW1wICsgOX1gLFxuICAgICAgdHlwZTogJ2NvZGUnLFxuICAgICAgY29udGVudDogJ1NFTEVDVCBBVkcocmVzcG9uc2VfdGltZSkgYXMgYXZnX3RpbWUsXFxuICAgICAgIENPVU5UKCopIGFzIHRvdGFsX3JlcXVlc3RzLFxcbiAgICAgICBEQVRFKGNyZWF0ZWRfYXQpIGFzIGRhdGVcXG5GUk9NIHBlcmZvcm1hbmNlX2xvZ3NcXG5XSEVSRSBjcmVhdGVkX2F0ID49IE5PVygpIC0gSU5URVJWQUwgMzAgREFZXFxuR1JPVVAgQlkgREFURShjcmVhdGVkX2F0KVxcbk9SREVSIEJZIGRhdGUgREVTQzsnLFxuICAgICAgbWV0YWRhdGE6IHsgbGFuZ3VhZ2U6ICdzcWwnIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBgZGl2aWRlci0ke3RpbWVzdGFtcCArIDEwfWAsXG4gICAgICB0eXBlOiAnZGl2aWRlcicsXG4gICAgICBjb250ZW50OiAnJ1xuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IGBmb290ZXItJHt0aW1lc3RhbXAgKyAxMX1gLFxuICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICBjb250ZW50OiAnUmVwb3J0IGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IFN5c3RlbSBNb25pdG9yIHYyLjUuMCdcbiAgICB9XG4gIF07XG59O1xuXG5jb25zdCBnZW5lcmF0ZVJlY2lwZUJsb2NrcyA9ICgpOiBJQmxvY2tbXSA9PiB7XG4gIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgaWQ6IGByZWNpcGUtdGl0bGUtJHt0aW1lc3RhbXB9YCxcbiAgICAgIHR5cGU6ICdoZWFkaW5nLTEnLFxuICAgICAgY29udGVudDogJ0NsYXNzaWMgTWFyZ2hlcml0YSBQaXp6YSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBgcmVjaXBlLWludHJvLSR7dGltZXN0YW1wICsgMX1gLFxuICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICBjb250ZW50OiAnQSB0cmFkaXRpb25hbCBJdGFsaWFuIHBpenphIHdpdGggZnJlc2ggYmFzaWwsIG1venphcmVsbGEsIGFuZCB0b21hdG8gc2F1Y2UuJ1xuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IGBpbmdyZWRpZW50cy1oZWFkaW5nLSR7dGltZXN0YW1wICsgMn1gLFxuICAgICAgdHlwZTogJ2hlYWRpbmctMicsXG4gICAgICBjb250ZW50OiAnXHVEODNDXHVERjU1IEluZ3JlZGllbnRzJ1xuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IGBkb3VnaC1oZWFkaW5nLSR7dGltZXN0YW1wICsgM31gLFxuICAgICAgdHlwZTogJ2hlYWRpbmctMycsXG4gICAgICBjb250ZW50OiAnRm9yIHRoZSBEb3VnaDonXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogYGRvdWdoLWxpc3QtJHt0aW1lc3RhbXAgKyA0fWAsXG4gICAgICB0eXBlOiAnbGlzdCcsXG4gICAgICBjb250ZW50OiAnNTAwZyB0aXBvIFwiMDBcIiBmbG91clxcbjMyNW1sIHdhcm0gd2F0ZXJcXG4xMGcgc2FsdFxcbjdnIGFjdGl2ZSBkcnkgeWVhc3RcXG4yIHRic3Agb2xpdmUgb2lsJyxcbiAgICAgIG1ldGFkYXRhOiB7IGxpc3RUeXBlOiAnYnVsbGV0JyB9XG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogYHRvcHBpbmdzLWhlYWRpbmctJHt0aW1lc3RhbXAgKyA1fWAsXG4gICAgICB0eXBlOiAnaGVhZGluZy0zJyxcbiAgICAgIGNvbnRlbnQ6ICdGb3IgdGhlIFRvcHBpbmdzOidcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBgdG9wcGluZ3MtbGlzdC0ke3RpbWVzdGFtcCArIDZ9YCxcbiAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgIGNvbnRlbnQ6ICc0MDBnIGNhbm5lZCBTYW4gTWFyemFubyB0b21hdG9lc1xcbjI1MGcgZnJlc2ggbW96emFyZWxsYVxcbkZyZXNoIGJhc2lsIGxlYXZlc1xcbkV4dHJhIHZpcmdpbiBvbGl2ZSBvaWxcXG5TYWx0IGFuZCBwZXBwZXIgdG8gdGFzdGUnLFxuICAgICAgbWV0YWRhdGE6IHsgbGlzdFR5cGU6ICdidWxsZXQnIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBgaW5zdHJ1Y3Rpb25zLWhlYWRpbmctJHt0aW1lc3RhbXAgKyA3fWAsXG4gICAgICB0eXBlOiAnaGVhZGluZy0yJyxcbiAgICAgIGNvbnRlbnQ6ICdcdUQ4M0RcdURDNjhcdTIwMERcdUQ4M0NcdURGNzMgSW5zdHJ1Y3Rpb25zJ1xuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IGBzdGVwcy1saXN0LSR7dGltZXN0YW1wICsgOH1gLFxuICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgY29udGVudDogJ0Rpc3NvbHZlIHllYXN0IGluIHdhcm0gd2F0ZXIgYW5kIGxldCBzdGFuZCBmb3IgNSBtaW51dGVzXFxuTWl4IGZsb3VyIGFuZCBzYWx0LCBjcmVhdGUgYSB3ZWxsIGluIGNlbnRlclxcbkFkZCB5ZWFzdCBtaXh0dXJlIGFuZCBvbGl2ZSBvaWxcXG5LbmVhZCBmb3IgMTAgbWludXRlcyB1bnRpbCBzbW9vdGhcXG5MZXQgcmlzZSBmb3IgMS0yIGhvdXJzIHVudGlsIGRvdWJsZWRcXG5QdW5jaCBkb3duIGFuZCBkaXZpZGUgaW50byBwb3J0aW9uc1xcblJvbGwgb3V0IGVhY2ggcG9ydGlvbiB0byAxMi1pbmNoIGNpcmNsZXNcXG5Ub3Agd2l0aCBjcnVzaGVkIHRvbWF0b2VzLCBtb3p6YXJlbGxhLCBhbmQgYmFzaWxcXG5CYWtlIGF0IDQ3NVx1MDBCMEYgKDI0NVx1MDBCMEMpIGZvciAxMC0xMiBtaW51dGVzJyxcbiAgICAgIG1ldGFkYXRhOiB7IGxpc3RUeXBlOiAnb3JkZXJlZCcgfVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IGB0aXAtJHt0aW1lc3RhbXAgKyA5fWAsXG4gICAgICB0eXBlOiAncXVvdGUnLFxuICAgICAgY29udGVudDogJ1BybyB0aXA6IEZvciBhbiBhdXRoZW50aWMgdGFzdGUsIHVzZSBhIHBpenphIHN0b25lIGFuZCBwcmVoZWF0IGl0IGluIHRoZSBvdmVuIGZvciBhdCBsZWFzdCAzMCBtaW51dGVzIGJlZm9yZSBiYWtpbmcuJ1xuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IGBkaXZpZGVyLSR7dGltZXN0YW1wICsgMTB9YCxcbiAgICAgIHR5cGU6ICdkaXZpZGVyJyxcbiAgICAgIGNvbnRlbnQ6ICcnXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogYHNlcnZpbmdzLSR7dGltZXN0YW1wICsgMTF9YCxcbiAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgY29udGVudDogJ1NlcnZpbmdzOiA0IHBpenphcyB8IFByZXAgdGltZTogMiBob3VycyB8IENvb2sgdGltZTogMTIgbWludXRlcydcbiAgICB9XG4gIF07XG59O1xuXG5jb25zdCBpbml0aWFsaXplRWRpdG9ycyA9IChjb250YWluZXI6IEhUTUxFbGVtZW50KTogSURlbW9FZGl0b3IgPT4ge1xuICBjb25zdCBlZGl0b3JzOiBQYXJ0aWFsPElEZW1vRWRpdG9yPiA9IHt9O1xuICBcbiAgLy8gR2V0IGFsbCBlZGl0b3IgcmVmZXJlbmNlc1xuICBlZGl0b3JzLmJhc2ljID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyNlZGl0b3ItYmFzaWMnKSBhcyBEZWVzSW5wdXRXeXNpd3lnO1xuICBlZGl0b3JzLmFydGljbGUgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignI2VkaXRvci1hcnRpY2xlJykgYXMgRGVlc0lucHV0V3lzaXd5ZztcbiAgZWRpdG9ycy5kcmFnRHJvcCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjZWRpdG9yLWRyYWdkcm9wJykgYXMgRGVlc0lucHV0V3lzaXd5ZztcbiAgZWRpdG9ycy50dXRvcmlhbCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjZWRpdG9yLXR1dG9yaWFsJykgYXMgRGVlc0lucHV0V3lzaXd5ZztcbiAgZWRpdG9ycy5tZWV0aW5nID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyNlZGl0b3ItbWVldGluZycpIGFzIERlZXNJbnB1dFd5c2l3eWc7XG4gIGVkaXRvcnMucmVjaXBlID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyNlZGl0b3ItcmVjaXBlJykgYXMgRGVlc0lucHV0V3lzaXd5ZztcbiAgZWRpdG9ycy50ZWNobmljYWwgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignI2VkaXRvci10ZWNobmljYWwnKSBhcyBEZWVzSW5wdXRXeXNpd3lnO1xuICBlZGl0b3JzLmZvcm1JbnRlZ3JhdGlvbiA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjZWRpdG9yLWZvcm0taW50ZWdyYXRpb24nKSBhcyBEZWVzSW5wdXRXeXNpd3lnO1xuICBlZGl0b3JzLnByb2dyYW1tYXRpYyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjZWRpdG9yLXByb2dyYW1tYXRpYycpIGFzIERlZXNJbnB1dFd5c2l3eWc7XG4gIGVkaXRvcnMuZXhwb3J0RGVtbyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjZWRpdG9yLWV4cG9ydCcpIGFzIERlZXNJbnB1dFd5c2l3eWc7XG4gIFxuICByZXR1cm4gZWRpdG9ycyBhcyBJRGVtb0VkaXRvcjtcbn07XG5cbmNvbnN0IHNldHVwUHJvZ3JhbW1hdGljRGVtbyA9IChjb250YWluZXI6IEhUTUxFbGVtZW50LCBlZGl0b3I6IERlZXNJbnB1dFd5c2l3eWcpID0+IHtcbiAgY29uc3QgcmVwb3J0QnRuID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyNidG4tZ2VuZXJhdGUtcmVwb3J0JykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIGNvbnN0IHJlY2lwZUJ0biA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjYnRuLWdlbmVyYXRlLXJlY2lwZScpIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICBjb25zdCBjbGVhckJ0biA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjYnRuLWNsZWFyLWVkaXRvcicpIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICBcbiAgaWYgKHJlcG9ydEJ0bikge1xuICAgIHJlcG9ydEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGVkaXRvci5pbXBvcnRCbG9ja3MoZ2VuZXJhdGVSZXBvcnRCbG9ja3MoKSk7XG4gICAgfSk7XG4gIH1cbiAgXG4gIGlmIChyZWNpcGVCdG4pIHtcbiAgICByZWNpcGVCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICBlZGl0b3IuaW1wb3J0QmxvY2tzKGdlbmVyYXRlUmVjaXBlQmxvY2tzKCkpO1xuICAgIH0pO1xuICB9XG4gIFxuICBpZiAoY2xlYXJCdG4pIHtcbiAgICBjbGVhckJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGVkaXRvci5pbXBvcnRCbG9ja3MoW10pO1xuICAgIH0pO1xuICB9XG59O1xuXG5jb25zdCBzZXR1cEV4cG9ydERlbW8gPSAoY29udGFpbmVyOiBIVE1MRWxlbWVudCwgZWRpdG9yOiBEZWVzSW5wdXRXeXNpd3lnKSA9PiB7XG4gIGNvbnN0IGV4cG9ydEJsb2Nrc0J0biA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjYnRuLWV4cG9ydC1ibG9ja3MnKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgY29uc3QgZXhwb3J0SHRtbEJ0biA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjYnRuLWV4cG9ydC1odG1sJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIGNvbnN0IGV4cG9ydE1hcmtkb3duQnRuID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyNidG4tZXhwb3J0LW1hcmtkb3duJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIGNvbnN0IHNhdmVTdGF0ZUJ0biA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjYnRuLXNhdmUtc3RhdGUnKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgY29uc3QgcmVzdG9yZVN0YXRlQnRuID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyNidG4tcmVzdG9yZS1zdGF0ZScpIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICBcbiAgbGV0IHNhdmVkU3RhdGU6IGFueSA9IG51bGw7XG4gIFxuICBpZiAoZXhwb3J0QmxvY2tzQnRuKSB7XG4gICAgZXhwb3J0QmxvY2tzQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgY29uc3QgYmxvY2tzID0gZWRpdG9yLmV4cG9ydEJsb2NrcygpO1xuICAgICAgY29uc29sZS5sb2coJ0V4cG9ydGVkIGJsb2NrczonLCBibG9ja3MpO1xuICAgICAgYWxlcnQoYEV4cG9ydGVkICR7YmxvY2tzLmxlbmd0aH0gYmxvY2tzIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy5gKTtcbiAgICB9KTtcbiAgfVxuICBcbiAgaWYgKGV4cG9ydEh0bWxCdG4pIHtcbiAgICBleHBvcnRIdG1sQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgY29uc3QgaHRtbCA9IGVkaXRvci5leHBvcnRBc0h0bWwoKTtcbiAgICAgIGNvbnNvbGUubG9nKCdIVE1MIEV4cG9ydDonLCBodG1sKTtcbiAgICAgIGFsZXJ0KCdIVE1MIGV4cG9ydGVkIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy4nKTtcbiAgICB9KTtcbiAgfVxuICBcbiAgaWYgKGV4cG9ydE1hcmtkb3duQnRuKSB7XG4gICAgZXhwb3J0TWFya2Rvd25CdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICBjb25zdCBtYXJrZG93biA9IGVkaXRvci5leHBvcnRBc01hcmtkb3duKCk7XG4gICAgICBjb25zb2xlLmxvZygnTWFya2Rvd24gRXhwb3J0OicsIG1hcmtkb3duKTtcbiAgICAgIGFsZXJ0KCdNYXJrZG93biBleHBvcnRlZCB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuJyk7XG4gICAgfSk7XG4gIH1cbiAgXG4gIGlmIChzYXZlU3RhdGVCdG4pIHtcbiAgICBzYXZlU3RhdGVCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICBzYXZlZFN0YXRlID0gZWRpdG9yLmV4cG9ydFN0YXRlKCk7XG4gICAgICBjb25zb2xlLmxvZygnU2F2ZWQgc3RhdGU6Jywgc2F2ZWRTdGF0ZSk7XG4gICAgICBhbGVydCgnRWRpdG9yIHN0YXRlIHNhdmVkIScpO1xuICAgIH0pO1xuICB9XG4gIFxuICBpZiAocmVzdG9yZVN0YXRlQnRuKSB7XG4gICAgcmVzdG9yZVN0YXRlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgaWYgKHNhdmVkU3RhdGUpIHtcbiAgICAgICAgZWRpdG9yLmltcG9ydFN0YXRlKHNhdmVkU3RhdGUpO1xuICAgICAgICBhbGVydCgnRWRpdG9yIHN0YXRlIHJlc3RvcmVkIScpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWxlcnQoJ05vIHNhdmVkIHN0YXRlIGZvdW5kLiBTYXZlIHN0YXRlIGZpcnN0IScpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG5jb25zdCBzZXR1cE91dHB1dEZvcm1hdERlbW8gPSAoXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gIGh0bWxFZGl0b3I/OiBEZWVzSW5wdXRXeXNpd3lnLFxuICBtYXJrZG93bkVkaXRvcj86IERlZXNJbnB1dFd5c2l3eWcsXG4pID0+IHtcbiAgY29uc3QgaHRtbEJ0biA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjYnRuLXNob3ctaHRtbC1vdXRwdXQnKSBhcyBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGw7XG4gIGNvbnN0IGh0bWxQcmV2aWV3ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyNvdXRwdXQtcHJldmlldy1odG1sJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICBpZiAoaHRtbEJ0biAmJiBodG1sUHJldmlldyAmJiBodG1sRWRpdG9yKSB7XG4gICAgaHRtbEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGh0bWxQcmV2aWV3LnRleHRDb250ZW50ID0gaHRtbEVkaXRvci5nZXRWYWx1ZSgpO1xuICAgICAgaHRtbFByZXZpZXcuY2xhc3NMaXN0LmFkZCgndmlzaWJsZScpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgbWFya2Rvd25CdG4gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignI2J0bi1zaG93LW1hcmtkb3duLW91dHB1dCcpIGFzIEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbDtcbiAgY29uc3QgbWFya2Rvd25QcmV2aWV3ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyNvdXRwdXQtcHJldmlldy1tYXJrZG93bicpIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgaWYgKG1hcmtkb3duQnRuICYmIG1hcmtkb3duUHJldmlldyAmJiBtYXJrZG93bkVkaXRvcikge1xuICAgIG1hcmtkb3duQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgbWFya2Rvd25QcmV2aWV3LnRleHRDb250ZW50ID0gbWFya2Rvd25FZGl0b3IuZ2V0VmFsdWUoKTtcbiAgICAgIG1hcmtkb3duUHJldmlldy5jbGFzc0xpc3QuYWRkKCd2aXNpYmxlJyk7XG4gICAgfSk7XG4gIH1cbn07XG5cbmNvbnN0IHBvcHVsYXRlSW5pdGlhbENvbnRlbnQgPSAoZWRpdG9yczogSURlbW9FZGl0b3IpID0+IHtcbiAgLy8gQXJ0aWNsZSBlZGl0b3IgY29udGVudFxuICBpZiAoZWRpdG9ycy5hcnRpY2xlKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBhcnRpY2xlQmxvY2tzOiBJQmxvY2tbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnaW50cm8taGVhZGluZy0nICsgRGF0ZS5ub3coKSxcbiAgICAgICAgICB0eXBlOiAnaGVhZGluZy0yJyxcbiAgICAgICAgICBjb250ZW50OiAnSW50cm9kdWN0aW9uIHRvIE1vZGVybiBXZWIgRGV2ZWxvcG1lbnQnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2ludHJvLXBhcmEtJyArIERhdGUubm93KCksXG4gICAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgICAgY29udGVudDogJ01vZGVybiB3ZWIgZGV2ZWxvcG1lbnQgaGFzIGV2b2x2ZWQgc2lnbmlmaWNhbnRseSBvdmVyIHRoZSBwYXN0IGRlY2FkZS4gSW4gdGhpcyBhcnRpY2xlLCB3ZVxcJ2xsIGV4cGxvcmUgdGhlIGtleSB0ZWNobm9sb2dpZXMgYW5kIGJlc3QgcHJhY3RpY2VzIHRoYXQgZGVmaW5lIHdlYiBkZXZlbG9wbWVudCBpbiAyMDI0LidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAndGVjaC1oZWFkaW5nLScgKyBEYXRlLm5vdygpLFxuICAgICAgICAgIHR5cGU6ICdoZWFkaW5nLTMnLFxuICAgICAgICAgIGNvbnRlbnQ6ICdLZXkgVGVjaG5vbG9naWVzJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd0ZWNoLWxpc3QtJyArIERhdGUubm93KCksXG4gICAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICAgIGNvbnRlbnQ6ICdUeXBlU2NyaXB0IC0gVHlwZS1zYWZlIEphdmFTY3JpcHQgZGV2ZWxvcG1lbnRcXG5XZWIgQ29tcG9uZW50cyAtIE5hdGl2ZSBjb21wb25lbnQgbW9kZWxcXG5FUyBNb2R1bGVzIC0gTW9kZXJuIG1vZHVsZSBzeXN0ZW1cXG5XZWJBc3NlbWJseSAtIEhpZ2gtcGVyZm9ybWFuY2UgY29tcHV0aW5nJyxcbiAgICAgICAgICBtZXRhZGF0YTogeyBsaXN0VHlwZTogJ29yZGVyZWQnIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAncXVvdGUtJyArIERhdGUubm93KCksXG4gICAgICAgICAgdHlwZTogJ3F1b3RlJyxcbiAgICAgICAgICBjb250ZW50OiAnVGhlIGJlc3Qgd2F5IHRvIHByZWRpY3QgdGhlIGZ1dHVyZSBpcyB0byBpbnZlbnQgaXQuIC0gQWxhbiBLYXknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2V4YW1wbGUtaGVhZGluZy0nICsgRGF0ZS5ub3coKSxcbiAgICAgICAgICB0eXBlOiAnaGVhZGluZy0zJyxcbiAgICAgICAgICBjb250ZW50OiAnQ29kZSBFeGFtcGxlJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdjb2RlLWV4YW1wbGUtJyArIERhdGUubm93KCksXG4gICAgICAgICAgdHlwZTogJ2NvZGUnLFxuICAgICAgICAgIGNvbnRlbnQ6ICdjbGFzcyBNb2Rlcm5XZWJBcHAgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XFxuICBjb25zdHJ1Y3RvcigpIHtcXG4gICAgc3VwZXIoKTtcXG4gICAgdGhpcy5hdHRhY2hTaGFkb3coeyBtb2RlOiBcXCdvcGVuXFwnIH0pO1xcbiAgfVxcbiAgXFxuICBjb25uZWN0ZWRDYWxsYmFjaygpIHtcXG4gICAgdGhpcy5yZW5kZXIoKTtcXG4gIH1cXG59JyxcbiAgICAgICAgICBtZXRhZGF0YTogeyBsYW5ndWFnZTogJ2phdmFzY3JpcHQnIH1cbiAgICAgICAgfVxuICAgICAgXTtcbiAgICAgIGVkaXRvcnMuYXJ0aWNsZS5pbXBvcnRCbG9ja3MoYXJ0aWNsZUJsb2Nrcyk7XG4gICAgfSwgNTAwKTtcbiAgfVxuICBcbiAgLy8gRHJhZyAmIERyb3AgZGVtbyBjb250ZW50XG4gIGlmIChlZGl0b3JzLmRyYWdEcm9wKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBkcmFnQmxvY2tzOiBJQmxvY2tbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnZHJhZy10aXRsZS0nICsgRGF0ZS5ub3coKSxcbiAgICAgICAgICB0eXBlOiAnaGVhZGluZy0xJyxcbiAgICAgICAgICBjb250ZW50OiAnRHJhZyAmIERyb3AgRGVtbydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnZHJhZy1pbnRyby0nICsgRGF0ZS5ub3coKSxcbiAgICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgICBjb250ZW50OiAnVGhpcyBlZGl0b3IgZGVtb25zdHJhdGVzIGRyYWcgYW5kIGRyb3AgZnVuY3Rpb25hbGl0eS4gVHJ5IGRyYWdnaW5nIHRoZXNlIGJsb2NrcyBhcm91bmQhJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdkcmFnLWhlYWRpbmctJyArIERhdGUubm93KCksXG4gICAgICAgICAgdHlwZTogJ2hlYWRpbmctMicsXG4gICAgICAgICAgY29udGVudDogJ0hvdyBJdCBXb3JrcydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnZHJhZy1saXN0LScgKyBEYXRlLm5vdygpLFxuICAgICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgICBjb250ZW50OiAnSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZVxcbkNsaWNrIGFuZCBob2xkIHRoZSBoYW5kbGUgdG8gc3RhcnQgZHJhZ2dpbmdcXG5EcmFnIHRvIHJlb3JkZXIgYmxvY2tzXFxuUmVsZWFzZSB0byBkcm9wIGluIHRoZSBuZXcgcG9zaXRpb24nLFxuICAgICAgICAgIG1ldGFkYXRhOiB7IGxpc3RUeXBlOiAnb3JkZXJlZCcgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdkcmFnLXF1b3RlLScgKyBEYXRlLm5vdygpLFxuICAgICAgICAgIHR5cGU6ICdxdW90ZScsXG4gICAgICAgICAgY29udGVudDogJ1RoZSBkcmFnIGFuZCBkcm9wIGZlYXR1cmUgbWFrZXMgaXQgZWFzeSB0byByZW9yZ2FuaXplIHlvdXIgY29udGVudCB3aXRob3V0IGN1dHRpbmcgYW5kIHBhc3RpbmcuJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdkcmFnLWRpdmlkZXItJyArIERhdGUubm93KCksXG4gICAgICAgICAgdHlwZTogJ2RpdmlkZXInLFxuICAgICAgICAgIGNvbnRlbnQ6ICcnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2RyYWctZm9vdGVyLScgKyBEYXRlLm5vdygpLFxuICAgICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICAgIGNvbnRlbnQ6ICdOb3RlOiBEaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZCwgYnV0IG90aGVyIGJsb2NrcyBjYW4gYmUgbW92ZWQgYXJvdW5kIHRoZW0uJ1xuICAgICAgICB9XG4gICAgICBdO1xuICAgICAgZWRpdG9ycy5kcmFnRHJvcC5pbXBvcnRCbG9ja3MoZHJhZ0Jsb2Nrcyk7XG4gICAgfSwgNjAwKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCk6IFRlbXBsYXRlUmVzdWx0ID0+IGh0bWxgXG4gIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIC8vIFdhaXQgZm9yIGVsZW1lbnRzIHRvIGJlIHJlYWR5XG4gICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwMCkpO1xuICAgIFxuICAgIGNvbnN0IGVkaXRvcnMgPSBpbml0aWFsaXplRWRpdG9ycyhlbGVtZW50QXJnKTtcbiAgICBcbiAgICAvLyBTZXR1cCBwcm9ncmFtbWF0aWMgZGVtb1xuICAgIGlmIChlZGl0b3JzLnByb2dyYW1tYXRpYykge1xuICAgICAgc2V0dXBQcm9ncmFtbWF0aWNEZW1vKGVsZW1lbnRBcmcsIGVkaXRvcnMucHJvZ3JhbW1hdGljKTtcbiAgICB9XG4gICAgXG4gICAgLy8gU2V0dXAgZXhwb3J0IGRlbW9cbiAgICBpZiAoZWRpdG9ycy5leHBvcnREZW1vKSB7XG4gICAgICBzZXR1cEV4cG9ydERlbW8oZWxlbWVudEFyZywgZWRpdG9ycy5leHBvcnREZW1vKTtcbiAgICB9XG5cbiAgICAvLyBTZXR1cCBvdXRwdXQgZm9ybWF0IHByZXZpZXcgYnV0dG9uc1xuICAgIHNldHVwT3V0cHV0Rm9ybWF0RGVtbyhlbGVtZW50QXJnLCBlZGl0b3JzLm1lZXRpbmcsIGVkaXRvcnMucmVjaXBlKTtcblxuICAgIC8vIFBvcHVsYXRlIGluaXRpYWwgY29udGVudFxuICAgIHBvcHVsYXRlSW5pdGlhbENvbnRlbnQoZWRpdG9ycyk7XG4gICAgXG4gICAgLy8gTG9nIGluaXRpYWxpemF0aW9uXG4gICAgY29uc29sZS5sb2coJ1dZU0lXWUcgRGVtbyBpbml0aWFsaXplZCB3aXRoIGVkaXRvcnM6JywgT2JqZWN0LmtleXMoZWRpdG9ycykpO1xuICB9fT5cbiAgPHN0eWxlPlxuICAgICR7Y3NzYFxuICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAzMnB4O1xuICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICBcbiAgICAgIGRlZXMtcGFuZWwge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAucGFuZWwtZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICBjb2xvcjogIzY2NjtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgfVxuICAgICAgXG4gICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgIC5wYW5lbC1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgY29sb3I6ICM5OTk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmUtZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgY29sb3I6ICM1NTU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmUtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjMDA2NmNjO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgIC5mZWF0dXJlLWl0ZW0ge1xuICAgICAgICAgIGNvbG9yOiAjYWFhO1xuICAgICAgICB9XG4gICAgICAgIC5mZWF0dXJlLWljb24ge1xuICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zaG9ydGN1dHMtYm94IHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDIsIDIwNCwgMC4wNSk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMTAyLCAyMDQsIDAuMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAuc2hvcnRjdXRzLWJveCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMSk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4zKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc2hvcnRjdXRzLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAjMDA2NmNjO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgIC5zaG9ydGN1dHMtdGl0bGUge1xuICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zaG9ydGN1dHMtZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE4MHB4LCAxZnIpKTtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5zaG9ydGN1dC1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6ICM1NTU7XG4gICAgICB9XG5cbiAgICAgIC5zaG9ydGN1dC1rZXkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAgICAgLnNob3J0Y3V0LWl0ZW0ge1xuICAgICAgICAgIGNvbG9yOiAjYmJiO1xuICAgICAgICB9XG4gICAgICAgIC5zaG9ydGN1dC1rZXkge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgICAgICAgY29sb3I6ICNkZGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm91dHB1dC1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMjBweCwgMWZyKSk7XG4gICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgIH1cblxuICAgICAgLm91dHB1dC1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgfVxuXG4gICAgICAub3V0cHV0LWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgfVxuXG4gICAgICAub3V0cHV0LXByZXZpZXcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuMDQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tZGVlcy1jb2xvci10ZXh0LCAjMGYxNzJhKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBNb25vJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFt0aGVtZT0nZGFyayddKSAub3V0cHV0LXByZXZpZXcge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuMDYpO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4xNSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQsICNmNGY0ZjUpO1xuICAgICAgfVxuXG4gICAgICAub3V0cHV0LXByZXZpZXcudmlzaWJsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgLm91dHB1dC1ncmlkIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICAudGlwcy1ib3gge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmOGZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAudGlwcy1ib3gge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzcsIDE0OCwgMjU1LCAwLjEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIC50aXBzLWJveCBzdHJvbmcge1xuICAgICAgICBjb2xvcjogIzAwNjZjYztcbiAgICAgIH1cbiAgICAgIFxuICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAudGlwcy1ib3ggc3Ryb25nIHtcbiAgICAgICAgICBjb2xvcjogIzRkOTRmZjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICAudGlwcy1saXN0IHtcbiAgICAgICAgbWFyZ2luOiA4cHggMCAwIDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnRpcHMtbGlzdCBsaSB7XG4gICAgICAgIG1hcmdpbjogNHB4IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5idXR0b24tZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZGVtby1idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2NjYztcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmRlbW8tYnV0dG9uOmFjdGl2ZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xuICAgICAgfVxuICAgICAgXG4gICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgIC5kZW1vLWJ1dHRvbiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogIzMzMztcbiAgICAgICAgICBib3JkZXItY29sb3I6ICM1NTU7XG4gICAgICAgICAgY29sb3I6ICNkZGQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogIzQ0NDtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICM2NjY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmV4cG9ydC1pbmZvLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZXhwb3J0LWluZm8tY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuYmxvY2tzIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDIsIDIwNCwgMC4xKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuaHRtbCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzYsIDE3NSwgODAsIDAuMSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5leHBvcnQtaW5mby1jYXJkLm1hcmtkb3duIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDE1MiwgMCwgMC4xKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuc3RhdGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1NiwgMzksIDE3NiwgMC4xKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgc3Ryb25nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuYmxvY2tzIHN0cm9uZyB7XG4gICAgICAgIGNvbG9yOiAjMDA2NmNjO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZXhwb3J0LWluZm8tY2FyZC5odG1sIHN0cm9uZyB7XG4gICAgICAgIGNvbG9yOiAjNENBRjUwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZXhwb3J0LWluZm8tY2FyZC5tYXJrZG93biBzdHJvbmcge1xuICAgICAgICBjb2xvcjogI0ZGOTgwMDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuc3RhdGUgc3Ryb25nIHtcbiAgICAgICAgY29sb3I6ICM5QzI3QjA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIH1cbiAgICBgfVxuICA8L3N0eWxlPlxuICBcbiAgICA8ZGl2IGNsYXNzPVwiZGVtby1jb250YWluZXJcIj5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keycxLiBcdUQ4M0RcdURFODAgTW9kZXJuIFdZU0lXWUcgRWRpdG9yJ30+XG4gICAgICAgIDxwIGNsYXNzPVwicGFuZWwtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICBBIHBvd2VyZnVsIGJsb2NrLWJhc2VkIGVkaXRvciB3aXRoIHNsYXNoIGNvbW1hbmRzLCBrZXlib2FyZCBzaG9ydGN1dHMsIGFuZCBtdWx0aXBsZSBvdXRwdXQgZm9ybWF0cy4gXG4gICAgICAgICAgUGVyZmVjdCBmb3IgY29udGVudCBjcmVhdGlvbiwgYmxvZyBwb3N0cywgZG9jdW1lbnRhdGlvbiwgYW5kIG1vcmUuXG4gICAgICAgIDwvcD5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlLWdyaWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmVhdHVyZS1pdGVtXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZlYXR1cmUtaWNvblwiPlx1MjcxMzwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlNsYXNoIGNvbW1hbmRzICgvKTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmVhdHVyZS1pdGVtXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZlYXR1cmUtaWNvblwiPlx1MjcxMzwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPktleWJvYXJkIHNob3J0Y3V0czwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmVhdHVyZS1pdGVtXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZlYXR1cmUtaWNvblwiPlx1MjcxMzwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPkJsb2NrLWJhc2VkIGVkaXRpbmc8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZlYXR1cmUtaXRlbVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZWF0dXJlLWljb25cIj5cdTI3MTM8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5EcmFnICYgZHJvcCByZW9yZGVyaW5nPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlLWl0ZW1cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmVhdHVyZS1pY29uXCI+XHUyNzEzPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+SFRNTCAmIE1hcmtkb3duIG91dHB1dDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmVhdHVyZS1pdGVtXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZlYXR1cmUtaWNvblwiPlx1MjcxMzwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPkRhcmsgbW9kZSBzdXBwb3J0PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlLWl0ZW1cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmVhdHVyZS1pY29uXCI+XHUyNzEzPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+TW9iaWxlIHJlc3BvbnNpdmU8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyBcbiAgICAgICAgICBpZD1cImVkaXRvci1iYXNpY1wiXG4gICAgICAgICAgbGFiZWw9XCJSaWNoIFRleHQgRWRpdG9yXCIgXG4gICAgICAgICAgZGVzY3JpcHRpb249XCJTdGFydCB0eXBpbmcgb3IgdXNlICcvJyB0byBpbnNlcnQgZGlmZmVyZW50IGJsb2NrIHR5cGVzXCJcbiAgICAgICAgICBvdXRwdXRGb3JtYXQ9XCJodG1sXCJcbiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaG9ydGN1dHMtYm94XCI+XG4gICAgICAgICAgPGg0IGNsYXNzPVwic2hvcnRjdXRzLXRpdGxlXCI+XHUyMzI4XHVGRTBGIEtleWJvYXJkIFNob3J0Y3V0czwvaDQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNob3J0Y3V0cy1ncmlkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hvcnRjdXQtaXRlbVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3J0Y3V0LWtleVwiPi88L3NwYW4+IFNsYXNoIGNvbW1hbmRzXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaG9ydGN1dC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2hvcnRjdXQta2V5XCI+Izwvc3Bhbj4gSGVhZGluZyAxXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaG9ydGN1dC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2hvcnRjdXQta2V5XCI+IyM8L3NwYW4+IEhlYWRpbmcgMlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hvcnRjdXQtaXRlbVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3J0Y3V0LWtleVwiPiMjIzwvc3Bhbj4gSGVhZGluZyAzXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaG9ydGN1dC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2hvcnRjdXQta2V5XCI+Pjwvc3Bhbj4gUXVvdGVcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNob3J0Y3V0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzaG9ydGN1dC1rZXlcIj5cXGBcXGBcXGA8L3NwYW4+IENvZGUgYmxvY2tcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNob3J0Y3V0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzaG9ydGN1dC1rZXlcIj4qPC9zcGFuPiBvciA8c3BhbiBjbGFzcz1cInNob3J0Y3V0LWtleVwiPi08L3NwYW4+IEJ1bGxldCBsaXN0XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaG9ydGN1dC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2hvcnRjdXQta2V5XCI+MS48L3NwYW4+IE51bWJlcmVkIGxpc3RcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNob3J0Y3V0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzaG9ydGN1dC1rZXlcIj4tLS08L3NwYW4+IERpdmlkZXJcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgIFxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzIuIFx1RDgzRFx1RENERCBCbG9nIFBvc3QgRXhhbXBsZSd9PlxuICAgICAgICA8cCBjbGFzcz1cInBhbmVsLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgUGVyZmVjdCBmb3IgY3JlYXRpbmcgcmljaCBjb250ZW50IHdpdGggbXVsdGlwbGUgYmxvY2sgdHlwZXMuIFxuICAgICAgICAgIFRoZSBlZGl0b3IgcHJlc2VydmVzIGZvcm1hdHRpbmcgYW5kIHByb3ZpZGVzIGEgY2xlYW4gZWRpdGluZyBleHBlcmllbmNlLlxuICAgICAgICA8L3A+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIFxuICAgICAgICAgIGlkPVwiZWRpdG9yLWFydGljbGVcIlxuICAgICAgICAgIGxhYmVsPVwiQmxvZyBQb3N0IENvbnRlbnRcIiBcbiAgICAgICAgICBkZXNjcmlwdGlvbj1cIldyaXRlIHlvdXIgYXJ0aWNsZSB1c2luZyB2YXJpb3VzIGZvcm1hdHRpbmcgb3B0aW9uc1wiXG4gICAgICAgICAgb3V0cHV0Rm9ybWF0PVwiaHRtbFwiXG4gICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzMuIFx1RDgzRFx1REQwMCBEcmFnICYgRHJvcCBSZW9yZGVyaW5nJ30+XG4gICAgICAgIDxwIGNsYXNzPVwicGFuZWwtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICBFYXNpbHkgcmVhcnJhbmdlIHlvdXIgY29udGVudCBibG9ja3MgYnkgZHJhZ2dpbmcgdGhlbS4gXG4gICAgICAgICAgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gcmV2ZWFsIHRoZSBkcmFnIGhhbmRsZSBvbiB0aGUgbGVmdCBzaWRlLlxuICAgICAgICA8L3A+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIFxuICAgICAgICAgIGlkPVwiZWRpdG9yLWRyYWdkcm9wXCJcbiAgICAgICAgICBsYWJlbD1cIkRyYWcgJiBEcm9wIERlbW9cIiBcbiAgICAgICAgICBkZXNjcmlwdGlvbj1cIlRyeSBkcmFnZ2luZyBibG9ja3MgdG8gcmVvcmRlciB0aGVtIC0gaG92ZXIgdG8gc2VlIGRyYWcgaGFuZGxlc1wiXG4gICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXBzLWJveFwiPlxuICAgICAgICAgIDxzdHJvbmc+XHVEODNEXHVEQ0ExIFRpcHM6PC9zdHJvbmc+XG4gICAgICAgICAgPHVsIGNsYXNzPVwidGlwcy1saXN0XCI+XG4gICAgICAgICAgICA8bGk+SG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZSAoXHUyMkVFXHUyMkVFKSBvbiB0aGUgbGVmdDwvbGk+XG4gICAgICAgICAgICA8bGk+Q2xpY2sgYW5kIGhvbGQgdGhlIGRyYWcgaGFuZGxlIHRvIHN0YXJ0IGRyYWdnaW5nPC9saT5cbiAgICAgICAgICAgIDxsaT5CbHVlIGluZGljYXRvcnMgc2hvdyB3aGVyZSB0aGUgYmxvY2sgd2lsbCBiZSBkcm9wcGVkPC9saT5cbiAgICAgICAgICAgIDxsaT5EaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZDwvbGk+XG4gICAgICAgICAgICA8bGk+VGhlIGVkaXRvciBtYWludGFpbnMgZm9jdXMgb24gdGhlIG1vdmVkIGJsb2NrIGFmdGVyIGRyb3BwaW5nPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzQuIFx1RDgzRFx1RENEQSBUdXRvcmlhbCAmIERvY3VtZW50YXRpb24nfT5cbiAgICAgICAgPHAgY2xhc3M9XCJwYW5lbC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgIENyZWF0ZSBjb21wcmVoZW5zaXZlIHR1dG9yaWFscyBhbmQgZG9jdW1lbnRhdGlvbiB3aXRoIGNvZGUgZXhhbXBsZXMsIGxpc3RzLCBhbmQgc3RydWN0dXJlZCBjb250ZW50LlxuICAgICAgICA8L3A+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIFxuICAgICAgICAgIGlkPVwiZWRpdG9yLXR1dG9yaWFsXCJcbiAgICAgICAgICBsYWJlbD1cIkdpdCBUdXRvcmlhbFwiIFxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiU3RlcC1ieS1zdGVwIGd1aWRlIHdpdGggY29tbWFuZHMgYW5kIGV4cGxhbmF0aW9uc1wiXG4gICAgICAgICAgb3V0cHV0Rm9ybWF0PVwibWFya2Rvd25cIlxuICAgICAgICAgIHZhbHVlPVwiIyBHaXQgVHV0b3JpYWwgZm9yIEJlZ2lubmVyc1xuXG5HaXQgaXMgYSBkaXN0cmlidXRlZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIHRoYXQgaGVscHMgeW91IHRyYWNrIGNoYW5nZXMgaW4geW91ciBjb2RlIG92ZXIgdGltZS4gVGhpcyB0dXRvcmlhbCB3aWxsIGd1aWRlIHlvdSB0aHJvdWdoIHRoZSBiYXNpY3MuXG5cbiMjIFByZXJlcXVpc2l0ZXNcblxuQmVmb3JlIHN0YXJ0aW5nLCBlbnN1cmUgeW91IGhhdmU6XG5cbi0gR2l0IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbVxuLSBBIHRleHQgZWRpdG9yIG9yIElERVxuLSBCYXNpYyBjb21tYW5kIGxpbmUga25vd2xlZGdlXG5cbiMjIEdldHRpbmcgU3RhcnRlZFxuXG4jIyMgMS4gQ29uZmlndXJlIEdpdFxuXG5GaXJzdCwgc2V0IHVwIHlvdXIgaWRlbnRpdHk6XG5cblxcYFxcYFxcYGJhc2hcbmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lICZxdW90O1lvdXIgTmFtZSZxdW90O1xuZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsICZxdW90O3lvdXIuZW1haWxAZXhhbXBsZS5jb20mcXVvdDtcblxcYFxcYFxcYFxuXG4jIyMgMi4gSW5pdGlhbGl6ZSBhIFJlcG9zaXRvcnlcblxuQ3JlYXRlIGEgbmV3IEdpdCByZXBvc2l0b3J5OlxuXG5cXGBcXGBcXGBiYXNoXG5ta2RpciBteS1wcm9qZWN0XG5jZCBteS1wcm9qZWN0XG5naXQgaW5pdFxuXFxgXFxgXFxgXG5cbiMjIyAzLiBCYXNpYyBHaXQgV29ya2Zsb3dcblxuIyMjIyBBZGRpbmcgRmlsZXNcblxuQ3JlYXRlIGEgZmlsZSBhbmQgYWRkIGl0IHRvIHN0YWdpbmc6XG5cblxcYFxcYFxcYGJhc2hcbmVjaG8gJnF1b3Q7IyBNeSBQcm9qZWN0JnF1b3Q7ID4gUkVBRE1FLm1kXG5naXQgYWRkIFJFQURNRS5tZFxuXFxgXFxgXFxgXG5cbiMjIyMgQ29tbWl0dGluZyBDaGFuZ2VzXG5cblxcYFxcYFxcYGJhc2hcbmdpdCBjb21taXQgLW0gJnF1b3Q7SW5pdGlhbCBjb21taXQmcXVvdDtcblxcYFxcYFxcYFxuXG4+ICoqQmVzdCBQcmFjdGljZToqKiBXcml0ZSBjbGVhciwgZGVzY3JpcHRpdmUgY29tbWl0IG1lc3NhZ2VzIHRoYXQgZXhwbGFpbiB3aGF0IGNoYW5nZXMgd2VyZSBtYWRlIGFuZCB3aHkuXG5cbiMjIyA0LiBXb3JraW5nIHdpdGggQnJhbmNoZXNcblxuQnJhbmNoZXMgYWxsb3cgeW91IHRvIHdvcmsgb24gZmVhdHVyZXMgaW5kZXBlbmRlbnRseTpcblxuXFxgXFxgXFxgYmFzaFxuIyBDcmVhdGUgYW5kIHN3aXRjaCB0byBhIG5ldyBicmFuY2hcbmdpdCBjaGVja291dCAtYiBmZWF0dXJlLWJyYW5jaFxuXG4jIE1ha2UgY2hhbmdlcyBhbmQgY29tbWl0XG5naXQgYWRkIC5cbmdpdCBjb21taXQgLW0gJnF1b3Q7QWRkIG5ldyBmZWF0dXJlJnF1b3Q7XG5cbiMgU3dpdGNoIGJhY2sgdG8gbWFpblxuZ2l0IGNoZWNrb3V0IG1haW5cblxuIyBNZXJnZSB0aGUgZmVhdHVyZVxuZ2l0IG1lcmdlIGZlYXR1cmUtYnJhbmNoXG5cXGBcXGBcXGBcblxuLS0tXG5cbiMjIENvbW1vbiBDb21tYW5kcyBSZWZlcmVuY2VcblxufCBDb21tYW5kIHwgRGVzY3JpcHRpb24gfFxufC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfFxufCBcXGBnaXQgc3RhdHVzXFxgIHwgQ2hlY2sgcmVwb3NpdG9yeSBzdGF0dXMgfFxufCBcXGBnaXQgbG9nXFxgIHwgVmlldyBjb21taXQgaGlzdG9yeSB8XG58IFxcYGdpdCBkaWZmXFxgIHwgU2hvdyBjaGFuZ2VzIHxcbnwgXFxgZ2l0IHB1bGxcXGAgfCBGZXRjaCBhbmQgbWVyZ2UgY2hhbmdlcyB8XG58IFxcYGdpdCBwdXNoXFxgIHwgVXBsb2FkIGNoYW5nZXMgdG8gcmVtb3RlIHxcblxuIyMgTmV4dCBTdGVwc1xuXG4xLiBMZWFybiBhYm91dCByZW1vdGUgcmVwb3NpdG9yaWVzXG4yLiBFeHBsb3JlIGFkdmFuY2VkIEdpdCBmZWF0dXJlc1xuMy4gUHJhY3RpY2Ugd2l0aCByZWFsIHByb2plY3RzXG40LiBDb250cmlidXRlIHRvIG9wZW4gc291cmNlXG5cbioqSGFwcHkgY29kaW5nISoqIFx1RDgzRFx1REU4MFwiXG4gICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzUuIFx1RDgzRFx1REQwNCBPdXRwdXQgRm9ybWF0cyd9PlxuICAgICAgICA8cCBjbGFzcz1cInBhbmVsLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgQ2hvb3NlIGJldHdlZW4gSFRNTCBhbmQgTWFya2Rvd24gb3V0cHV0IGZvcm1hdHMgZGVwZW5kaW5nIG9uIHlvdXIgbmVlZHMuIFxuICAgICAgICAgIFBlcmZlY3QgZm9yIHN0YXRpYyBzaXRlIGdlbmVyYXRvcnMsIGRvY3VtZW50YXRpb24gc3lzdGVtcywgb3IgYW55IGNvbnRlbnQgbWFuYWdlbWVudCB3b3JrZmxvdy5cbiAgICAgICAgPC9wPlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cIm91dHB1dC1ncmlkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm91dHB1dC1jYXJkXCI+XG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIFxuICAgICAgICAgICAgICBpZD1cImVkaXRvci1tZWV0aW5nXCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJNZWV0aW5nIE5vdGVzXCIgXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiU3RydWN0dXJlZCBtZWV0aW5nIGRvY3VtZW50YXRpb25cIlxuICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9XCJodG1sXCJcbiAgICAgICAgICAgICAgdmFsdWU9XCI8aDI+UTQgUGxhbm5pbmcgTWVldGluZzwvaDI+PHA+PHN0cm9uZz5EYXRlOjwvc3Ryb25nPiBEZWNlbWJlciAxNSwgMjAyNDxicj48c3Ryb25nPkF0dGVuZGVlczo8L3N0cm9uZz4gUHJvZHVjdCBUZWFtLCBFbmdpbmVlcmluZywgRGVzaWduPC9wPjxoMz5BZ2VuZGEgSXRlbXM8L2gzPjxvbD48bGk+UmV2aWV3IFEzIGFjaGlldmVtZW50czwvbGk+PGxpPlNldCBRNCBvYmplY3RpdmVzPC9saT48bGk+UmVzb3VyY2UgYWxsb2NhdGlvbjwvbGk+PGxpPlRpbWVsaW5lIGRpc2N1c3Npb248L2xpPjwvb2w+PGgzPktleSBEZWNpc2lvbnM8L2gzPjx1bD48bGk+TGF1bmNoIG5ldyBkYXNoYm9hcmQgZmVhdHVyZSBieSBlbmQgb2YgSmFudWFyeTwvbGk+PGxpPkluY3JlYXNlIGVuZ2luZWVyaW5nIHRlYW0gYnkgMiBkZXZlbG9wZXJzPC9saT48bGk+SW1wbGVtZW50IHdlZWtseSBkZXNpZ24gcmV2aWV3czwvbGk+PC91bD48YmxvY2txdW90ZT4mcXVvdDtGb2N1cyBvbiB1c2VyIGV4cGVyaWVuY2UgaW1wcm92ZW1lbnRzIGJhc2VkIG9uIFEzIGZlZWRiYWNrJnF1b3Q7IC0gUHJvZHVjdCBNYW5hZ2VyPC9ibG9ja3F1b3RlPjxoMz5BY3Rpb24gSXRlbXM8L2gzPjx1bD48bGk+U2FyYWg6IENyZWF0ZSBkZXRhaWxlZCBwcm9qZWN0IHRpbWVsaW5lPC9saT48bGk+TWlrZTogRHJhZnQgdGVjaG5pY2FsIHJlcXVpcmVtZW50czwvbGk+PGxpPkxpc2E6IFNjaGVkdWxlIHVzZXIgcmVzZWFyY2ggc2Vzc2lvbnM8L2xpPjwvdWw+PGhyPjxwPk5leHQgbWVldGluZzogSmFudWFyeSA1LCAyMDI1PC9wPlwiXG4gICAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3V0cHV0LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cImJ0bi1zaG93LWh0bWwtb3V0cHV0XCIgY2xhc3M9XCJkZW1vLWJ1dHRvblwiPlNob3cgSFRNTCBPdXRwdXQ8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHByZSBpZD1cIm91dHB1dC1wcmV2aWV3LWh0bWxcIiBjbGFzcz1cIm91dHB1dC1wcmV2aWV3XCIgYXJpYS1saXZlPVwicG9saXRlXCI+PC9wcmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm91dHB1dC1jYXJkXCI+XG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIFxuICAgICAgICAgICAgICBpZD1cImVkaXRvci1yZWNpcGVcIlxuICAgICAgICAgICAgICBsYWJlbD1cIlJlY2lwZSBCbG9nIFBvc3RcIiBcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249XCJGb29kIGJsb2cgd2l0aCBtaXhlZCBjb250ZW50XCJcbiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PVwibWFya2Rvd25cIlxuICAgICAgICAgICAgICB2YWx1ZT1cIiMgVWx0aW1hdGUgQ2hvY29sYXRlIENoaXAgQ29va2llc1xuXG5UaGVyZSdzIG5vdGhpbmcgcXVpdGUgbGlrZSB0aGUgc21lbGwgb2YgZnJlc2hseSBiYWtlZCBjaG9jb2xhdGUgY2hpcCBjb29raWVzLiBUaGlzIHJlY2lwZSBoYXMgYmVlbiBwZXJmZWN0ZWQgb3ZlciB5ZWFycyBvZiB0ZXN0aW5nIVxuXG4jIyBJbmdyZWRpZW50c1xuXG4tIDJcdTAwQkMgY3VwcyBhbGwtcHVycG9zZSBmbG91clxuLSAxIHRzcCBiYWtpbmcgc29kYVxuLSAxIHRzcCBzYWx0XG4tIDEgY3VwIGJ1dHRlciwgc29mdGVuZWRcbi0gXHUwMEJFIGN1cCBncmFudWxhdGVkIHN1Z2FyXG4tIFx1MDBCRSBjdXAgcGFja2VkIGJyb3duIHN1Z2FyXG4tIDIgbGFyZ2UgZWdnc1xuLSAyIHRzcCB2YW5pbGxhIGV4dHJhY3Rcbi0gMiBjdXBzIGNob2NvbGF0ZSBjaGlwc1xuXG4jIyBJbnN0cnVjdGlvbnNcblxuIyMjIFN0ZXAgMTogUHJlcGFyYXRpb25cblxuUHJlaGVhdCB5b3VyIG92ZW4gdG8gKiozNzVcdTAwQjBGICgxOTBcdTAwQjBDKSoqLiBUaGlzIHRlbXBlcmF0dXJlIGlzIGNydWNpYWwgZm9yIGFjaGlldmluZyB0aGUgcGVyZmVjdCB0ZXh0dXJlLlxuXG4jIyMgU3RlcCAyOiBNaXggRHJ5IEluZ3JlZGllbnRzXG5cbkluIGEgbWVkaXVtIGJvd2wsIHdoaXNrIHRvZ2V0aGVyOlxuXG4xLiBGbG91clxuMi4gQmFraW5nIHNvZGFcbjMuIFNhbHRcblxuIyMjIFN0ZXAgMzogQ3JlYW0gQnV0dGVyIGFuZCBTdWdhcnNcblxuXFxgXFxgXFxgXG5DcmVhbSBidXR0ZXIgYW5kIHN1Z2FycyBmb3IgMy00IG1pbnV0ZXNcbnVudGlsIGxpZ2h0IGFuZCBmbHVmZnlcblxcYFxcYFxcYFxuXG4+ICoqUHJvIHRpcDoqKiBSb29tIHRlbXBlcmF0dXJlIGluZ3JlZGllbnRzIG1peCBiZXR0ZXIgYW5kIGNyZWF0ZSBhIG1vcmUgdW5pZm9ybSBkb3VnaC5cblxuIyMjIFN0ZXAgNDogQWRkIFdldCBJbmdyZWRpZW50c1xuXG5CZWF0IGluIGVnZ3Mgb25lIGF0IGEgdGltZSwgdGhlbiBhZGQgdmFuaWxsYSBleHRyYWN0LlxuXG4jIyMgU3RlcCA1OiBDb21iaW5lIGFuZCBCYWtlXG5cbkdyYWR1YWxseSBibGVuZCBpbiBmbG91ciBtaXh0dXJlLCB0aGVuIHN0aXIgaW4gY2hvY29sYXRlIGNoaXBzLiBEcm9wIHJvdW5kZWQgdGFibGVzcG9vbnMgb250byB1bmdyZWFzZWQgY29va2llIHNoZWV0cy5cblxuLS0tXG5cbioqQmFraW5nIHRpbWU6KiogOS0xMSBtaW51dGVzIG9yIHVudGlsIGdvbGRlbiBicm93blxuXG4qKllpZWxkOioqIEFib3V0IDUgZG96ZW4gY29va2llc1wiXG4gICAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3V0cHV0LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cImJ0bi1zaG93LW1hcmtkb3duLW91dHB1dFwiIGNsYXNzPVwiZGVtby1idXR0b25cIj5TaG93IE1hcmtkb3duIE91dHB1dDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cHJlIGlkPVwib3V0cHV0LXByZXZpZXctbWFya2Rvd25cIiBjbGFzcz1cIm91dHB1dC1wcmV2aWV3XCIgYXJpYS1saXZlPVwicG9saXRlXCI+PC9wcmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnNi4gXHVEODNDXHVERkE4IEFkdmFuY2VkIEVkaXRpbmcnfT5cbiAgICAgICAgPHAgY2xhc3M9XCJwYW5lbC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgIENyZWF0ZSBjb21wbGV4IGRvY3VtZW50cyB3aXRoIG1peGVkIGNvbnRlbnQgdHlwZXMuIFRoZSBlZGl0b3IgaGFuZGxlcyBhbGwgZm9ybWF0dGluZyBzZWFtbGVzc2x5LlxuICAgICAgICA8L3A+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIFxuICAgICAgICAgIGlkPVwiZWRpdG9yLXRlY2huaWNhbFwiXG4gICAgICAgICAgbGFiZWw9XCJUZWNobmljYWwgRG9jdW1lbnRhdGlvblwiIFxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiQ3JlYXRlIHRlY2huaWNhbCBkb2NzIHdpdGggY29kZSBleGFtcGxlcyBhbmQgc3RydWN0dXJlZCBjb250ZW50XCJcbiAgICAgICAgICB2YWx1ZT1cIjxoMT5BUEkgRG9jdW1lbnRhdGlvbjwvaDE+PHA+V2VsY29tZSB0byBvdXIgQVBJIGRvY3VtZW50YXRpb24uIEJlbG93IHlvdSdsbCBmaW5kIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ugb3VyIGVuZHBvaW50cy48L3A+PGgyPkF1dGhlbnRpY2F0aW9uPC9oMj48cD5BbGwgQVBJIHJlcXVlc3RzIHJlcXVpcmUgYXV0aGVudGljYXRpb24gdXNpbmcgYW4gQVBJIGtleTo8L3A+PHByZT48Y29kZT5BdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZPC9jb2RlPjwvcHJlPjxoMj5FbmRwb2ludHM8L2gyPjxoMz5HRVQgL3VzZXJzPC9oMz48cD5SZXRyaWV2ZSBhIGxpc3Qgb2YgdXNlcnMgZnJvbSB0aGUgc3lzdGVtLjwvcD48cHJlPjxjb2RlPmN1cmwgLVggR0VUIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzIFxcXFxcbiAgLUggJnF1b3Q7QXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSZxdW90OzwvY29kZT48L3ByZT48YmxvY2txdW90ZT5Ob3RlOiBSYXRlIGxpbWl0aW5nIGFwcGxpZXMgdG8gYWxsIGVuZHBvaW50cy4gWW91IGNhbiBtYWtlIHVwIHRvIDEwMCByZXF1ZXN0cyBwZXIgbWludXRlLjwvYmxvY2txdW90ZT48aDM+UE9TVCAvdXNlcnM8L2gzPjxwPkNyZWF0ZSBhIG5ldyB1c2VyIGluIHRoZSBzeXN0ZW0uPC9wPjxwcmU+PGNvZGU+e1xuICAmcXVvdDtuYW1lJnF1b3Q7OiAmcXVvdDtKb2huIERvZSZxdW90OyxcbiAgJnF1b3Q7ZW1haWwmcXVvdDs6ICZxdW90O2pvaG5AZXhhbXBsZS5jb20mcXVvdDssXG4gICZxdW90O3JvbGUmcXVvdDs6ICZxdW90O3VzZXImcXVvdDtcbn08L2NvZGU+PC9wcmU+PGhyPjxwPkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gb3VyIGNvbXBsZXRlIGRvY3VtZW50YXRpb24uPC9wPlwiXG4gICAgICAgICAgb3V0cHV0Rm9ybWF0PVwiaHRtbFwiXG4gICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzcuIFx1MjY5OVx1RkUwRiBGb3JtIEludGVncmF0aW9uJ30+XG4gICAgICAgIDxwIGNsYXNzPVwicGFuZWwtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICBTZWFtbGVzc2x5IGludGVncmF0ZXMgd2l0aCBkZWVzLWZvcm0gZm9yIGNvbXBsZXRlIGZvcm0gc29sdXRpb25zLiBcbiAgICAgICAgICBBbGwgc3RhbmRhcmQgZm9ybSBmZWF0dXJlcyBsaWtlIHZhbGlkYXRpb24sIHJlcXVpcmVkIGZpZWxkcywgYW5kIGRhdGEgYmluZGluZyB3b3JrIG91dCBvZiB0aGUgYm94LlxuICAgICAgICA8L3A+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1mb3JtPlxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgXG4gICAgICAgICAgICBsYWJlbD1cIkFydGljbGUgVGl0bGVcIiBcbiAgICAgICAgICAgIHJlcXVpcmVkPVwidHJ1ZVwiXG4gICAgICAgICAgICB2YWx1ZT1cIkhvdyB0byBCdWlsZCBNb2Rlcm4gV2ViIEFwcGxpY2F0aW9uc1wiXG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgXG4gICAgICAgICAgICBpZD1cImVkaXRvci1mb3JtLWludGVncmF0aW9uXCJcbiAgICAgICAgICAgIGxhYmVsPVwiQXJ0aWNsZSBDb250ZW50XCIgXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIldyaXRlIHlvdXIgYXJ0aWNsZSBjb250ZW50IGhlcmVcIlxuICAgICAgICAgICAgcmVxdWlyZWQ9XCJ0cnVlXCJcbiAgICAgICAgICAgIG91dHB1dEZvcm1hdD1cIm1hcmtkb3duXCJcbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGFnc1xuICAgICAgICAgICAgbGFiZWw9XCJUYWdzXCJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiQWRkIHJlbGV2YW50IHRhZ3MgZm9yIHlvdXIgYXJ0aWNsZVwiXG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPlxuICAgICAgICA8L2RlZXMtZm9ybT5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzguIFx1RDgzRVx1RERFOSBQcm9ncmFtbWF0aWMgQmxvY2sgQ3JlYXRpb24nfT5cbiAgICAgICAgPHAgY2xhc3M9XCJwYW5lbC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgIENyZWF0ZSBjb250ZW50IHByb2dyYW1tYXRpY2FsbHkgdXNpbmcgdGhlIGJsb2NrIEFQSSBmb3IgZHluYW1pYyBkb2N1bWVudCBnZW5lcmF0aW9uLlxuICAgICAgICA8L3A+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnXG4gICAgICAgICAgaWQ9XCJlZGl0b3ItcHJvZ3JhbW1hdGljXCJcbiAgICAgICAgICBsYWJlbD1cIlByb2dyYW1tYXRpY2FsbHkgR2VuZXJhdGVkIENvbnRlbnRcIlxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiVGhpcyBjb250ZW50IHdhcyBjcmVhdGVkIHVzaW5nIHRoZSBpbXBvcnRCbG9ja3MgQVBJXCJcbiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncm91cFwiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJidG4tZ2VuZXJhdGUtcmVwb3J0XCIgY2xhc3M9XCJkZW1vLWJ1dHRvblwiPlxuICAgICAgICAgICAgR2VuZXJhdGUgUmVwb3J0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImJ0bi1nZW5lcmF0ZS1yZWNpcGVcIiBjbGFzcz1cImRlbW8tYnV0dG9uXCI+XG4gICAgICAgICAgICBHZW5lcmF0ZSBSZWNpcGVcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICA8YnV0dG9uIGlkPVwiYnRuLWNsZWFyLWVkaXRvclwiIGNsYXNzPVwiZGVtby1idXR0b25cIj5cbiAgICAgICAgICAgIENsZWFyIEVkaXRvclxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cblxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzkuIFx1RDgzRFx1RENFNCBFeHBvcnQvSW1wb3J0IEZlYXR1cmVzJ30+XG4gICAgICAgIDxwIGNsYXNzPVwicGFuZWwtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICBUaGUgV1lTSVdZRyBlZGl0b3IgcHJvdmlkZXMgbXVsdGlwbGUgZXhwb3J0IGZvcm1hdHMgYW5kIGxvc3NsZXNzIHNhdmUvcmVzdG9yZSBjYXBhYmlsaXRpZXMgZm9yIG1heGltdW0gZmxleGliaWxpdHkuXG4gICAgICAgIDwvcD5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleHBvcnQtaW5mby1ncmlkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImV4cG9ydC1pbmZvLWNhcmQgYmxvY2tzXCI+XG4gICAgICAgICAgICA8c3Ryb25nPkxvc3NsZXNzIEJsb2Nrczwvc3Ryb25nPlxuICAgICAgICAgICAgPHA+RXhwb3J0IGFuZCBpbXBvcnQgcmF3IGJsb2NrIHN0cnVjdHVyZSBmb3IgcGVyZmVjdCByb3VuZC10cmlwIGVkaXRpbmc8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImV4cG9ydC1pbmZvLWNhcmQgaHRtbFwiPlxuICAgICAgICAgICAgPHN0cm9uZz5IVE1MIEV4cG9ydDwvc3Ryb25nPlxuICAgICAgICAgICAgPHA+R2V0IGNsZWFuLCBzZW1hbnRpYyBIVE1MIHJlZ2FyZGxlc3Mgb2Ygb3V0cHV0IGZvcm1hdCBzZXR0aW5nPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJleHBvcnQtaW5mby1jYXJkIG1hcmtkb3duXCI+XG4gICAgICAgICAgICA8c3Ryb25nPk1hcmtkb3duIEV4cG9ydDwvc3Ryb25nPlxuICAgICAgICAgICAgPHA+RXhwb3J0IGFzIE1hcmtkb3duIGZvciBkb2NzLCBSRUFETUVzLCBhbmQgc3RhdGljIHNpdGVzPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJleHBvcnQtaW5mby1jYXJkIHN0YXRlXCI+XG4gICAgICAgICAgICA8c3Ryb25nPlN0YXRlIE1hbmFnZW1lbnQ8L3N0cm9uZz5cbiAgICAgICAgICAgIDxwPlNhdmUgYW5kIHJlc3RvcmUgY29tcGxldGUgZWRpdG9yIHN0YXRlIGluY2x1ZGluZyBzZXR0aW5nczwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnXG4gICAgICAgICAgaWQ9XCJlZGl0b3ItZXhwb3J0XCJcbiAgICAgICAgICBsYWJlbD1cIkV4cG9ydCBEZW1vIEVkaXRvclwiXG4gICAgICAgICAgZGVzY3JpcHRpb249XCJUcnkgdGhlIGV4cG9ydCBidXR0b25zIGJlbG93IHRvIHNlZSBkaWZmZXJlbnQgb3V0cHV0IGZvcm1hdHNcIlxuICAgICAgICAgIHZhbHVlPVwiPGgxPlNvZnR3YXJlIFJlbGVhc2UgTm90ZXM8L2gxPjxwPjxzdHJvbmc+VmVyc2lvbiAyLjUuMDwvc3Ryb25nPiAtIFJlbGVhc2VkIERlY2VtYmVyIDE1LCAyMDI0PC9wPjxoMj5cdUQ4M0NcdURGODkgTmV3IEZlYXR1cmVzPC9oMj48dWw+PGxpPkFkZGVkIGRhcmsgbW9kZSBzdXBwb3J0IGFjcm9zcyBhbGwgY29tcG9uZW50czwvbGk+PGxpPkltcGxlbWVudGVkIHJlYWwtdGltZSBjb2xsYWJvcmF0aW9uIGZlYXR1cmVzPC9saT48bGk+TmV3IGRhc2hib2FyZCBhbmFseXRpY3Mgd2lkZ2V0czwvbGk+PGxpPkV4cG9ydCBmdW5jdGlvbmFsaXR5IGZvciBhbGwgcmVwb3J0IHR5cGVzPC9saT48L3VsPjxoMj5cdUQ4M0RcdURDMUIgQnVnIEZpeGVzPC9oMj48dWw+PGxpPkZpeGVkIG1lbW9yeSBsZWFrIGluIGRhdGEgcHJvY2Vzc2luZyBtb2R1bGU8L2xpPjxsaT5SZXNvbHZlZCBhdXRoZW50aWNhdGlvbiB0aW1lb3V0IGlzc3VlczwvbGk+PGxpPkNvcnJlY3RlZCB0aW1lem9uZSBoYW5kbGluZyBpbiBzY2hlZHVsZWQgdGFza3M8L2xpPjwvdWw+PGgyPlx1MjZBMSBQZXJmb3JtYW5jZSBJbXByb3ZlbWVudHM8L2gyPjxibG9ja3F1b3RlPlBhZ2UgbG9hZCB0aW1lcyByZWR1Y2VkIGJ5IDQwJSB0aHJvdWdoIGxhenkgbG9hZGluZyBhbmQgY29kZSBzcGxpdHRpbmc8L2Jsb2NrcXVvdGU+PGgyPlx1RDgzRFx1REQyNyBUZWNobmljYWwgRGV0YWlsczwvaDI+PHByZT48Y29kZT4vLyBOZXcgQVBJIGVuZHBvaW50IGZvciBiYXRjaCBvcGVyYXRpb25zXG5QT1NUIC9hcGkvdjIvYmF0Y2hcbntcbiAgJnF1b3Q7b3BlcmF0aW9ucyZxdW90OzogW1xuICAgIHsgJnF1b3Q7bWV0aG9kJnF1b3Q7OiAmcXVvdDtHRVQmcXVvdDssICZxdW90O3BhdGgmcXVvdDs6ICZxdW90Oy91c2Vycy8xMjMmcXVvdDsgfSxcbiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7UFVUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvc2V0dGluZ3MmcXVvdDssICZxdW90O2JvZHkmcXVvdDs6IHsuLi59IH1cbiAgXVxufTwvY29kZT48L3ByZT48aDI+XHVEODNEXHVEQ0ExIE1pZ3JhdGlvbiBHdWlkZTwvaDI+PG9sPjxsaT5VcGRhdGUgeW91ciBkZXBlbmRlbmNpZXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uczwvbGk+PGxpPlJ1biBkYXRhYmFzZSBtaWdyYXRpb25zOiA8Y29kZT5ucG0gcnVuIG1pZ3JhdGU8L2NvZGU+PC9saT48bGk+Q2xlYXIgY2FjaGU6IDxjb2RlPm5wbSBydW4gY2FjaGU6Y2xlYXI8L2NvZGU+PC9saT48bGk+UmVzdGFydCBhbGwgc2VydmljZXM8L2xpPjwvb2w+PGhyPjxwPkZvciBxdWVzdGlvbnMgb3IgaXNzdWVzLCBwbGVhc2UgY29udGFjdCB0aGUgZGV2ZWxvcG1lbnQgdGVhbSBvciBmaWxlIGEgdGlja2V0IGluIG91ciBpc3N1ZSB0cmFja2VyLjwvcD5cIlxuICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImJ0bi1leHBvcnQtYmxvY2tzXCIgY2xhc3M9XCJkZW1vLWJ1dHRvblwiPlxuICAgICAgICAgICAgRXhwb3J0IEJsb2Nrc1xuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxidXR0b24gaWQ9XCJidG4tZXhwb3J0LWh0bWxcIiBjbGFzcz1cImRlbW8tYnV0dG9uXCI+XG4gICAgICAgICAgICBFeHBvcnQgYXMgSFRNTFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxidXR0b24gaWQ9XCJidG4tZXhwb3J0LW1hcmtkb3duXCIgY2xhc3M9XCJkZW1vLWJ1dHRvblwiPlxuICAgICAgICAgICAgRXhwb3J0IGFzIE1hcmtkb3duXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImJ0bi1zYXZlLXN0YXRlXCIgY2xhc3M9XCJkZW1vLWJ1dHRvblwiPlxuICAgICAgICAgICAgU2F2ZSBTdGF0ZVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxidXR0b24gaWQ9XCJidG4tcmVzdG9yZS1zdGF0ZVwiIGNsYXNzPVwiZGVtby1idXR0b25cIj5cbiAgICAgICAgICAgIFJlc3RvcmUgU3RhdGVcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kaXY+XG4gIDwvZGVlcy1kZW1vd3JhcHBlcj5cbmA7XG4iLCAiaW1wb3J0IHsgdHlwZSBJQmxvY2ssIHR5cGUgSVNob3J0Y3V0UGF0dGVybiwgdHlwZSBJU2xhc2hNZW51SXRlbSB9IGZyb20gJy4vd3lzaXd5Zy50eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBXeXNpd3lnU2hvcnRjdXRzIHtcbiAgc3RhdGljIHJlYWRvbmx5IEhFQURJTkdfUEFUVEVSTlM6IElTaG9ydGN1dFBhdHRlcm5bXSA9IFtcbiAgICB7IHBhdHRlcm46IC9eI1tcXHNcXHUwMEEwXSQvLCB0eXBlOiAnaGVhZGluZy0xJyB9LFxuICAgIHsgcGF0dGVybjogL14jI1tcXHNcXHUwMEEwXSQvLCB0eXBlOiAnaGVhZGluZy0yJyB9LFxuICAgIHsgcGF0dGVybjogL14jIyNbXFxzXFx1MDBBMF0kLywgdHlwZTogJ2hlYWRpbmctMycgfVxuICBdO1xuXG4gIHN0YXRpYyByZWFkb25seSBMSVNUX1BBVFRFUk5TOiBJU2hvcnRjdXRQYXR0ZXJuW10gPSBbXG4gICAgeyBwYXR0ZXJuOiAvXlsqLV1bXFxzXFx1MDBBMF0kLywgdHlwZTogJ2J1bGxldCcgfSxcbiAgICB7IHBhdHRlcm46IC9eKFxcZCspXFwuW1xcc1xcdTAwQTBdJC8sIHR5cGU6ICdvcmRlcmVkJyB9LFxuICAgIHsgcGF0dGVybjogL14oXFxkKylcXClbXFxzXFx1MDBBMF0kLywgdHlwZTogJ29yZGVyZWQnIH1cbiAgXTtcblxuICBzdGF0aWMgcmVhZG9ubHkgUVVPVEVfUEFUVEVSTiA9IC9ePltcXHNcXHUwMEEwXSQvO1xuICBzdGF0aWMgcmVhZG9ubHkgQ09ERV9QQVRURVJOID0gL15gYGAkLztcbiAgc3RhdGljIHJlYWRvbmx5IERJVklERVJfUEFUVEVSTlMgPSBbJy0tLScsICcqKionLCAnX19fJ107XG5cbiAgc3RhdGljIGNoZWNrSGVhZGluZ1Nob3J0Y3V0KGNvbnRlbnQ6IHN0cmluZyk6IHsgdHlwZTogSUJsb2NrWyd0eXBlJ10gfSB8IG51bGwge1xuICAgIGZvciAoY29uc3QgeyBwYXR0ZXJuLCB0eXBlIH0gb2YgdGhpcy5IRUFESU5HX1BBVFRFUk5TKSB7XG4gICAgICBpZiAocGF0dGVybi50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6IHR5cGUgYXMgSUJsb2NrWyd0eXBlJ10gfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgY2hlY2tMaXN0U2hvcnRjdXQoY29udGVudDogc3RyaW5nKTogeyB0eXBlOiAnbGlzdCcsIGxpc3RUeXBlOiAnYnVsbGV0JyB8ICdvcmRlcmVkJyB9IHwgbnVsbCB7XG4gICAgZm9yIChjb25zdCB7IHBhdHRlcm4sIHR5cGUgfSBvZiB0aGlzLkxJU1RfUEFUVEVSTlMpIHtcbiAgICAgIGlmIChwYXR0ZXJuLnRlc3QoY29udGVudCkpIHtcbiAgICAgICAgcmV0dXJuIHsgdHlwZTogJ2xpc3QnLCBsaXN0VHlwZTogdHlwZSBhcyAnYnVsbGV0JyB8ICdvcmRlcmVkJyB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBjaGVja1F1b3RlU2hvcnRjdXQoY29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuUVVPVEVfUEFUVEVSTi50ZXN0KGNvbnRlbnQpO1xuICB9XG5cbiAgc3RhdGljIGNoZWNrQ29kZVNob3J0Y3V0KGNvbnRlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLkNPREVfUEFUVEVSTi50ZXN0KGNvbnRlbnQpO1xuICB9XG5cbiAgc3RhdGljIGNoZWNrRGl2aWRlclNob3J0Y3V0KGNvbnRlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLkRJVklERVJfUEFUVEVSTlMuaW5jbHVkZXMoY29udGVudCk7XG4gIH1cblxuICBzdGF0aWMgZ2V0U2xhc2hNZW51SXRlbXMoKTogSVNsYXNoTWVudUl0ZW1bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgdHlwZTogJ3BhcmFncmFwaCcsIGxhYmVsOiAnUGFyYWdyYXBoJywgaWNvbjogJ2x1Y2lkZTpwaWxjcm93JyB9LFxuICAgICAgeyB0eXBlOiAnaGVhZGluZy0xJywgbGFiZWw6ICdIZWFkaW5nIDEnLCBpY29uOiAnbHVjaWRlOmhlYWRpbmcxJyB9LFxuICAgICAgeyB0eXBlOiAnaGVhZGluZy0yJywgbGFiZWw6ICdIZWFkaW5nIDInLCBpY29uOiAnbHVjaWRlOmhlYWRpbmcyJyB9LFxuICAgICAgeyB0eXBlOiAnaGVhZGluZy0zJywgbGFiZWw6ICdIZWFkaW5nIDMnLCBpY29uOiAnbHVjaWRlOmhlYWRpbmczJyB9LFxuICAgICAgeyB0eXBlOiAncXVvdGUnLCBsYWJlbDogJ1F1b3RlJywgaWNvbjogJ2x1Y2lkZTpxdW90ZScgfSxcbiAgICAgIHsgdHlwZTogJ2NvZGUnLCBsYWJlbDogJ0NvZGUgQmxvY2snLCBpY29uOiAnbHVjaWRlOmZpbGVDb2RlJyB9LFxuICAgICAgeyB0eXBlOiAnbGlzdCcsIGxhYmVsOiAnQnVsbGV0IExpc3QnLCBpY29uOiAnbHVjaWRlOmxpc3QnIH0sXG4gICAgICB7IHR5cGU6ICdpbWFnZScsIGxhYmVsOiAnSW1hZ2UnLCBpY29uOiAnbHVjaWRlOmltYWdlJyB9LFxuICAgICAgeyB0eXBlOiAnZGl2aWRlcicsIGxhYmVsOiAnRGl2aWRlcicsIGljb246ICdsdWNpZGU6bWludXMnIH0sXG4gICAgICB7IHR5cGU6ICd5b3V0dWJlJywgbGFiZWw6ICdZb3VUdWJlJywgaWNvbjogJ2x1Y2lkZTp5b3V0dWJlJyB9LFxuICAgICAgeyB0eXBlOiAnbWFya2Rvd24nLCBsYWJlbDogJ01hcmtkb3duJywgaWNvbjogJ2x1Y2lkZTpmaWxlVGV4dCcgfSxcbiAgICAgIHsgdHlwZTogJ2h0bWwnLCBsYWJlbDogJ0hUTUwnLCBpY29uOiAnbHVjaWRlOmNvZGUnIH0sXG4gICAgICB7IHR5cGU6ICdhdHRhY2htZW50JywgbGFiZWw6ICdGaWxlIEF0dGFjaG1lbnQnLCBpY29uOiAnbHVjaWRlOnBhcGVyY2xpcCcgfSxcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGdlbmVyYXRlQmxvY2tJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX1gO1xuICB9XG59XG5cbi8vIFJlLWV4cG9ydCB0aGUgdHlwZSB0aGF0IGlzIHVzZWQgaW4gdGhpcyBtb2R1bGVcbmV4cG9ydCB0eXBlIHsgSVNsYXNoTWVudUl0ZW0gfSBmcm9tICcuL3d5c2l3eWcudHlwZXMuanMnOyIsICJpbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBEZWVzRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgY3NzTWFuYWdlcixcbiAgY3NzLFxuICBzdGF0ZSxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IHpJbmRleFJlZ2lzdHJ5IH0gZnJvbSAnLi4vLi4vMDB6aW5kZXguanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcblxuaW1wb3J0IHsgdHlwZSBJU2xhc2hNZW51SXRlbSB9IGZyb20gJy4vd3lzaXd5Zy50eXBlcy5qcyc7XG5pbXBvcnQgeyBXeXNpd3lnU2hvcnRjdXRzIH0gZnJvbSAnLi93eXNpd3lnLnNob3J0Y3V0cy5qcyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8uLi8wMHRoZW1lLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1zbGFzaC1tZW51JzogRGVlc1NsYXNoTWVudTtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1zbGFzaC1tZW51JylcbmV4cG9ydCBjbGFzcyBEZWVzU2xhc2hNZW51IGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwcml2YXRlIHN0YXRpYyBpbnN0YW5jZTogRGVlc1NsYXNoTWVudTtcbiAgXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SW5zdGFuY2UoKTogRGVlc1NsYXNoTWVudSB7XG4gICAgaWYgKCFEZWVzU2xhc2hNZW51Lmluc3RhbmNlKSB7XG4gICAgICBEZWVzU2xhc2hNZW51Lmluc3RhbmNlID0gbmV3IERlZXNTbGFzaE1lbnUoKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoRGVlc1NsYXNoTWVudS5pbnN0YW5jZSk7XG4gICAgfVxuICAgIHJldHVybiBEZWVzU2xhc2hNZW51Lmluc3RhbmNlO1xuICB9XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHBvc2l0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gPSB7IHg6IDAsIHk6IDAgfTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBmaWx0ZXI6IHN0cmluZyA9ICcnO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHNlbGVjdGVkSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgbWVudVpJbmRleDogbnVtYmVyID0gMTAwMDtcblxuICBwcml2YXRlIGNhbGxiYWNrOiAoKHR5cGU6IHN0cmluZykgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgLnNsYXNoLW1lbnUge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwOTA5MGInKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMyNzI3MmEnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgbWluLXdpZHRoOiAyMjBweDtcbiAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKC0ycHgpO1xuICAgICAgICB9XG4gICAgICAgIHRvIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc2xhc2gtbWVudS1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuXG4gICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyLFxuICAgICAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjRmNGY1JywgJyMyNzI3MmEnKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA5MDkwYicsICcjZmFmYWZhJyl9O1xuICAgICAgfVxuXG4gICAgICAuc2xhc2gtbWVudS1pdGVtIC5pY29uIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjYTFhMWFhJyl9O1xuICAgICAgfVxuXG4gICAgICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLFxuICAgICAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCAuaWNvbiB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzNiODJmNicsICcjM2I4MmY2Jyl9O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkgcmV0dXJuIGh0bWxgYDtcblxuICAgIC8vIEVuc3VyZSB6LWluZGV4IGlzIGFwcGxpZWQgdG8gaG9zdCBlbGVtZW50XG4gICAgdGhpcy5zdHlsZS56SW5kZXggPSB0aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0IG1lbnVJdGVtcyA9IHRoaXMuZ2V0RmlsdGVyZWRNZW51SXRlbXMoKTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3M9XCJzbGFzaC1tZW51XCIgXG4gICAgICAgIHN0eWxlPVwibGVmdDogJHt0aGlzLnBvc2l0aW9uLnh9cHg7IHRvcDogJHt0aGlzLnBvc2l0aW9uLnl9cHg7XCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGRhdGEtbWVudS10eXBlPVwic2xhc2hcIlxuICAgICAgPlxuICAgICAgICAke21lbnVJdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiBodG1sYFxuICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICBjbGFzcz1cInNsYXNoLW1lbnUtaXRlbSAke2luZGV4ID09PSB0aGlzLnNlbGVjdGVkSW5kZXggPyAnc2VsZWN0ZWQnIDogJyd9XCJcbiAgICAgICAgICAgIGRhdGEtaXRlbS10eXBlPVwiJHtpdGVtLnR5cGV9XCJcbiAgICAgICAgICAgIGRhdGEtaXRlbS1pbmRleD1cIiR7aW5kZXh9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPVwiaWNvblwiIC5pY29uPVwiJHtpdGVtLmljb259XCIgaWNvblNpemU9XCIxNlwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgPHNwYW4+JHtpdGVtLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgYCl9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWx0ZXJlZE1lbnVJdGVtcygpOiBJU2xhc2hNZW51SXRlbVtdIHtcbiAgICBjb25zdCBhbGxJdGVtcyA9IFd5c2l3eWdTaG9ydGN1dHMuZ2V0U2xhc2hNZW51SXRlbXMoKTtcbiAgICByZXR1cm4gYWxsSXRlbXMuZmlsdGVyKGl0ZW0gPT4gXG4gICAgICB0aGlzLmZpbHRlciA9PT0gJycgfHwgXG4gICAgICBpdGVtLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5maWx0ZXIudG9Mb3dlckNhc2UoKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJdGVtKHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbGxiYWNrKSB7XG4gICAgICB0aGlzLmNhbGxiYWNrKHR5cGUpO1xuICAgIH1cbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93KHBvc2l0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0sIGNhbGxiYWNrOiAodHlwZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB0aGlzLmZpbHRlciA9ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XG4gICAgXG4gICAgLy8gR2V0IHotaW5kZXggZnJvbSByZWdpc3RyeSBhbmQgYXBwbHkgaW1tZWRpYXRlbHlcbiAgICB0aGlzLm1lbnVaSW5kZXggPSB6SW5kZXhSZWdpc3RyeS5nZXROZXh0WkluZGV4KCk7XG4gICAgekluZGV4UmVnaXN0cnkucmVnaXN0ZXIodGhpcywgdGhpcy5tZW51WkluZGV4KTtcbiAgICB0aGlzLnN0eWxlLnpJbmRleCA9IHRoaXMubWVudVpJbmRleC50b1N0cmluZygpO1xuICAgIFxuICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLmNhbGxiYWNrID0gbnVsbDtcbiAgICB0aGlzLmZpbHRlciA9ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XG4gICAgXG4gICAgLy8gVW5yZWdpc3RlciBmcm9tIHotaW5kZXggcmVnaXN0cnlcbiAgICB6SW5kZXhSZWdpc3RyeS51bnJlZ2lzdGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZpbHRlcihmaWx0ZXI6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGUoZGlyZWN0aW9uOiAndXAnIHwgJ2Rvd24nKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2Rvd24nKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSAodGhpcy5zZWxlY3RlZEluZGV4ICsgMSkgJSBpdGVtcy5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gMCBcbiAgICAgICAgPyBpdGVtcy5sZW5ndGggLSAxIFxuICAgICAgICA6IHRoaXMuc2VsZWN0ZWRJbmRleCAtIDE7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdEN1cnJlbnQoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7XG4gICAgaWYgKGl0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF0pIHtcbiAgICAgIHRoaXMuc2VsZWN0SXRlbShpdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdLnR5cGUpO1xuICAgIH1cbiAgfVxuICBcbiAgcHVibGljIGZpcnN0VXBkYXRlZCgpOiB2b2lkIHtcbiAgICAvLyBTZXQgdXAgZXZlbnQgZGVsZWdhdGlvblxuICAgIHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IG1lbnUgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zbGFzaC1tZW51Jyk7XG4gICAgICBpZiAobWVudSAmJiBtZW51LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIC8vIFByZXZlbnQgZm9jdXMgbG9zc1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IG1lbnVJdGVtID0gdGFyZ2V0LmNsb3Nlc3QoJy5zbGFzaC1tZW51LWl0ZW0nKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIFxuICAgICAgaWYgKG1lbnVJdGVtKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGl0ZW1UeXBlID0gbWVudUl0ZW0uZ2V0QXR0cmlidXRlKCdkYXRhLWl0ZW0tdHlwZScpO1xuICAgICAgICBpZiAoaXRlbVR5cGUpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oaXRlbVR5cGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgbWVudUl0ZW0gPSB0YXJnZXQuY2xvc2VzdCgnLnNsYXNoLW1lbnUtaXRlbScpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgXG4gICAgICBpZiAobWVudUl0ZW0pIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBwYXJzZUludChtZW51SXRlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXRlbS1pbmRleCcpIHx8ICcwJywgMTApO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgICAgIH1cbiAgICB9LCB0cnVlKTsgLy8gVXNlIGNhcHR1cmUgcGhhc2VcbiAgICBcbiAgICB0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKGU6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IG1lbnUgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zbGFzaC1tZW51Jyk7XG4gICAgICBpZiAobWVudSAmJiBtZW51LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIC8vIFByZXZlbnQgbWVudSBmcm9tIHRha2luZyBmb2N1c1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfSwgdHJ1ZSk7IC8vIFVzZSBjYXB0dXJlIHBoYXNlXG4gIH1cbn0iLCAiLyoqXG4gKiBVdGlsaXRpZXMgZm9yIGhhbmRsaW5nIHNlbGVjdGlvbiBhY3Jvc3MgU2hhZG93IERPTSBib3VuZGFyaWVzXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25JbmZvIHtcbiAgc3RhcnRDb250YWluZXI6IE5vZGU7XG4gIHN0YXJ0T2Zmc2V0OiBudW1iZXI7XG4gIGVuZENvbnRhaW5lcjogTm9kZTtcbiAgZW5kT2Zmc2V0OiBudW1iZXI7XG4gIGNvbGxhcHNlZDogYm9vbGVhbjtcbn1cblxuLy8gVHlwZSBmb3IgdGhlIGV4dGVuZGVkIGNhcmV0UG9zaXRpb25Gcm9tUG9pbnQgd2l0aCBTaGFkb3cgRE9NIHN1cHBvcnRcbnR5cGUgQ2FyZXRQb3NpdGlvbkZyb21Qb2ludEV4dGVuZGVkID0gKHg6IG51bWJlciwgeTogbnVtYmVyLCAuLi5zaGFkb3dSb290czogU2hhZG93Um9vdFtdKSA9PiBDYXJldFBvc2l0aW9uIHwgbnVsbDtcblxuZXhwb3J0IGNsYXNzIFd5c2l3eWdTZWxlY3Rpb24ge1xuICAvKipcbiAgICogR2V0cyBzZWxlY3Rpb24gaW5mbyB0aGF0IHdvcmtzIGFjcm9zcyBTaGFkb3cgRE9NIGJvdW5kYXJpZXNcbiAgICogQHBhcmFtIHNoYWRvd1Jvb3RzIC0gU2hhZG93IHJvb3RzIHRvIGluY2x1ZGUgaW4gdGhlIHNlbGVjdGlvbiBzZWFyY2hcbiAgICovXG4gIHN0YXRpYyBnZXRTZWxlY3Rpb25JbmZvKC4uLnNoYWRvd1Jvb3RzOiBTaGFkb3dSb290W10pOiBTZWxlY3Rpb25JbmZvIHwgbnVsbCB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGNvbnNvbGUubG9nKCdXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8gLSBzZWxlY3Rpb246Jywgc2VsZWN0aW9uLCAncmFuZ2VDb3VudDonLCBzZWxlY3Rpb24/LnJhbmdlQ291bnQpO1xuICAgIGlmICghc2VsZWN0aW9uKSByZXR1cm4gbnVsbDtcblxuICAgIC8vIFRyeSB1c2luZyBnZXRDb21wb3NlZFJhbmdlcyBpZiBhdmFpbGFibGUgKGJldHRlciBTaGFkb3cgRE9NIHN1cHBvcnQpXG4gICAgaWYgKCdnZXRDb21wb3NlZFJhbmdlcycgaW4gc2VsZWN0aW9uICYmIHR5cGVvZiBzZWxlY3Rpb24uZ2V0Q29tcG9zZWRSYW5nZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdVc2luZyBnZXRDb21wb3NlZFJhbmdlcyB3aXRoJywgc2hhZG93Um9vdHMubGVuZ3RoLCAnc2hhZG93IHJvb3RzJyk7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBQYXNzIHNoYWRvdyByb290cyBpbiB0aGUgY29ycmVjdCBmb3JtYXQgYXMgcGVyIE1ETlxuICAgICAgICBjb25zdCByYW5nZXMgPSBzZWxlY3Rpb24uZ2V0Q29tcG9zZWRSYW5nZXMoeyBzaGFkb3dSb290cyB9KTtcbiAgICAgICAgY29uc29sZS5sb2coJ2dldENvbXBvc2VkUmFuZ2VzIHJldHVybmVkJywgcmFuZ2VzLmxlbmd0aCwgJ3JhbmdlcycpO1xuICAgICAgICBpZiAocmFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCByYW5nZSA9IHJhbmdlc1swXTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RhcnRDb250YWluZXI6IHJhbmdlLnN0YXJ0Q29udGFpbmVyLFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQ6IHJhbmdlLnN0YXJ0T2Zmc2V0LFxuICAgICAgICAgICAgZW5kQ29udGFpbmVyOiByYW5nZS5lbmRDb250YWluZXIsXG4gICAgICAgICAgICBlbmRPZmZzZXQ6IHJhbmdlLmVuZE9mZnNldCxcbiAgICAgICAgICAgIGNvbGxhcHNlZDogcmFuZ2UuY29sbGFwc2VkXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdnZXRDb21wb3NlZFJhbmdlcyBmYWlsZWQsIGZhbGxpbmcgYmFjayB0byBnZXRSYW5nZUF0OicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ2dldENvbXBvc2VkUmFuZ2VzIG5vdCBhdmFpbGFibGUsIHVzaW5nIGZhbGxiYWNrJyk7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgdG8gdHJhZGl0aW9uYWwgc2VsZWN0aW9uIEFQSVxuICAgIGlmIChzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGFydENvbnRhaW5lcjogcmFuZ2Uuc3RhcnRDb250YWluZXIsXG4gICAgICAgIHN0YXJ0T2Zmc2V0OiByYW5nZS5zdGFydE9mZnNldCxcbiAgICAgICAgZW5kQ29udGFpbmVyOiByYW5nZS5lbmRDb250YWluZXIsXG4gICAgICAgIGVuZE9mZnNldDogcmFuZ2UuZW5kT2Zmc2V0LFxuICAgICAgICBjb2xsYXBzZWQ6IHJhbmdlLmNvbGxhcHNlZFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBzZWxlY3Rpb24gaXMgd2l0aGluIGEgc3BlY2lmaWMgZWxlbWVudCAoY29uc2lkZXJpbmcgU2hhZG93IERPTSlcbiAgICovXG4gIHN0YXRpYyBpc1NlbGVjdGlvbkluRWxlbWVudChlbGVtZW50OiBFbGVtZW50LCBzaGFkb3dSb290PzogU2hhZG93Um9vdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbkluZm8gPSBzaGFkb3dSb290IFxuICAgICAgPyB0aGlzLmdldFNlbGVjdGlvbkluZm8oc2hhZG93Um9vdClcbiAgICAgIDogdGhpcy5nZXRTZWxlY3Rpb25JbmZvKCk7XG4gICAgXG4gICAgaWYgKCFzZWxlY3Rpb25JbmZvKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgc2VsZWN0aW9uJ3MgY29tbW9uIGFuY2VzdG9yIGlzIHdpdGhpbiB0aGUgZWxlbWVudFxuICAgIHJldHVybiBlbGVtZW50LmNvbnRhaW5zKHNlbGVjdGlvbkluZm8uc3RhcnRDb250YWluZXIpIHx8IFxuICAgICAgICAgICBlbGVtZW50LmNvbnRhaW5zKHNlbGVjdGlvbkluZm8uZW5kQ29udGFpbmVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzZWxlY3RlZCB0ZXh0IGFjcm9zcyBTaGFkb3cgRE9NIGJvdW5kYXJpZXNcbiAgICovXG4gIHN0YXRpYyBnZXRTZWxlY3RlZFRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgcmV0dXJuIHNlbGVjdGlvbiA/IHNlbGVjdGlvbi50b1N0cmluZygpIDogJyc7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHJhbmdlIGZyb20gc2VsZWN0aW9uIGluZm9cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVSYW5nZUZyb21JbmZvKGluZm86IFNlbGVjdGlvbkluZm8pOiBSYW5nZSB7XG4gICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgIHJhbmdlLnNldFN0YXJ0KGluZm8uc3RhcnRDb250YWluZXIsIGluZm8uc3RhcnRPZmZzZXQpO1xuICAgIHJhbmdlLnNldEVuZChpbmZvLmVuZENvbnRhaW5lciwgaW5mby5lbmRPZmZzZXQpO1xuICAgIHJldHVybiByYW5nZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHNlbGVjdGlvbiBmcm9tIGEgcmFuZ2UgKHdvcmtzIHdpdGggU2hhZG93IERPTSlcbiAgICovXG4gIHN0YXRpYyBzZXRTZWxlY3Rpb25Gcm9tUmFuZ2UocmFuZ2U6IFJhbmdlKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmIChzZWxlY3Rpb24pIHtcbiAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY3Vyc29yIHBvc2l0aW9uIHJlbGF0aXZlIHRvIGEgc3BlY2lmaWMgZWxlbWVudFxuICAgKi9cbiAgc3RhdGljIGdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQsIC4uLnNoYWRvd1Jvb3RzOiBTaGFkb3dSb290W10pOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBzZWxlY3Rpb25JbmZvID0gc2hhZG93Um9vdHMubGVuZ3RoID4gMFxuICAgICAgPyB0aGlzLmdldFNlbGVjdGlvbkluZm8oLi4uc2hhZG93Um9vdHMpXG4gICAgICA6IHRoaXMuZ2V0U2VsZWN0aW9uSW5mbygpO1xuICAgIFxuICAgIGlmICghc2VsZWN0aW9uSW5mbyB8fCAhc2VsZWN0aW9uSW5mby5jb2xsYXBzZWQpIHJldHVybiBudWxsO1xuICAgIFxuICAgIC8vIENyZWF0ZSBhIHJhbmdlIGZyb20gc3RhcnQgb2YgZWxlbWVudCB0byBjdXJzb3IgcG9zaXRpb25cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVsZW1lbnQpO1xuICAgICAgXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVyZSBzZWxlY3Rpb24gaXMgaW4gYSB0ZXh0IG5vZGUgdGhhdCdzIGEgY2hpbGQgb2YgdGhlIGVsZW1lbnRcbiAgICAgIC8vIFVzZSBvdXIgU2hhZG93IERPTS1hd2FyZSBjb250YWlucyBtZXRob2RcbiAgICAgIGNvbnN0IGlzQ29udGFpbmVkID0gdGhpcy5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShlbGVtZW50LCBzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyKTtcbiAgICAgIFxuICAgICAgaWYgKGlzQ29udGFpbmVkKSB7XG4gICAgICAgIHJhbmdlLnNldEVuZChzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyLCBzZWxlY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0KTtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSByYW5nZS50b1N0cmluZygpLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2VsZWN0aW9uIG1pZ2h0IGJlIGluIHNoYWRvdyBET00gb3IgZGlmZmVyZW50IGNvbnRleHRcbiAgICAgICAgLy8gVHJ5IHRvIGZpbmQgdGhlIGVxdWl2YWxlbnQgcG9zaXRpb24gaW4gdGhlIGVsZW1lbnRcbiAgICAgICAgY29uc3QgdGV4dCA9IGVsZW1lbnQudGV4dENvbnRlbnQgfHwgJyc7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblRleHQgPSBzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyLnRleHRDb250ZW50IHx8ICcnO1xuICAgICAgICBcbiAgICAgICAgLy8gSWYgdGhlIHNlbGVjdGlvbiBpcyBhdCB0aGUgYmVnaW5uaW5nIG9yIGVuZCwgaGFuZGxlIHRob3NlIGNhc2VzXG4gICAgICAgIGlmIChzZWxlY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0ID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0gZWxzZSBpZiAoc2VsZWN0aW9uSW5mby5zdGFydE9mZnNldCA9PT0gc2VsZWN0aW9uVGV4dC5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gdGV4dC5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEZvciBvdGhlciBjYXNlcywgdHJ5IHRvIG1hdGNoIGJhc2VkIG9uIHRleHQgY29udGVudFxuICAgICAgICBjb25zb2xlLndhcm4oJ1NlbGVjdGlvbiBjb250YWluZXIgbm90IHdpdGhpbiBlbGVtZW50LCB1c2luZyB0ZXh0IG1hdGNoaW5nIGZhbGxiYWNrJyk7XG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byBnZXQgY3Vyc29yIHBvc2l0aW9uOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGN1cnNvciBwb3NpdGlvbiBmcm9tIG1vdXNlIGNvb3JkaW5hdGVzIHdpdGggU2hhZG93IERPTSBzdXBwb3J0XG4gICAqL1xuICBzdGF0aWMgZ2V0Q3Vyc29yUG9zaXRpb25Gcm9tUG9pbnQoeDogbnVtYmVyLCB5OiBudW1iZXIsIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsIC4uLnNoYWRvd1Jvb3RzOiBTaGFkb3dSb290W10pOiBudW1iZXIgfCBudWxsIHtcbiAgICAvLyBUcnkgbW9kZXJuIEFQSSB3aXRoIHNoYWRvdyByb290IHN1cHBvcnRcbiAgICBpZiAoJ2NhcmV0UG9zaXRpb25Gcm9tUG9pbnQnIGluIGRvY3VtZW50ICYmIGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQpIHtcbiAgICAgIGxldCBjYXJldFBvczogQ2FyZXRQb3NpdGlvbiB8IG51bGwgPSBudWxsO1xuICAgICAgXG4gICAgICAvLyBUcnkgd2l0aCBzaGFkb3cgcm9vdHMgZmlyc3QgKG5ld2VyIEFQSSlcbiAgICAgIHRyeSB7XG4gICAgICAgIGNhcmV0UG9zID0gKGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQgYXMgYW55KSh4LCB5LCAuLi5zaGFkb3dSb290cyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIEZhbGxiYWNrIHRvIHN0YW5kYXJkIEFQSSB3aXRob3V0IHNoYWRvdyByb290c1xuICAgICAgICBjYXJldFBvcyA9IGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQoeCwgeSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChjYXJldFBvcyAmJiBjb250YWluZXIuY29udGFpbnMoY2FyZXRQb3Mub2Zmc2V0Tm9kZSkpIHtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRvdGFsIG9mZnNldCB3aXRoaW4gdGhlIGNvbnRhaW5lclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRPZmZzZXRJbkVsZW1lbnQoY2FyZXRQb3Mub2Zmc2V0Tm9kZSwgY2FyZXRQb3Mub2Zmc2V0LCBjb250YWluZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBTYWZhcmkvV2ViS2l0IGZhbGxiYWNrXG4gICAgaWYgKCdjYXJldFJhbmdlRnJvbVBvaW50JyBpbiBkb2N1bWVudCkge1xuICAgICAgY29uc3QgcmFuZ2UgPSAoZG9jdW1lbnQgYXMgYW55KS5jYXJldFJhbmdlRnJvbVBvaW50KHgsIHkpO1xuICAgICAgaWYgKHJhbmdlICYmIGNvbnRhaW5lci5jb250YWlucyhyYW5nZS5zdGFydENvbnRhaW5lcikpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T2Zmc2V0SW5FbGVtZW50KHJhbmdlLnN0YXJ0Q29udGFpbmVyLCByYW5nZS5zdGFydE9mZnNldCwgY29udGFpbmVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gZ2V0IHRoZSB0b3RhbCBjaGFyYWN0ZXIgb2Zmc2V0IG9mIGEgcG9zaXRpb24gd2l0aGluIGFuIGVsZW1lbnRcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGdldE9mZnNldEluRWxlbWVudChub2RlOiBOb2RlLCBvZmZzZXQ6IG51bWJlciwgY29udGFpbmVyOiBIVE1MRWxlbWVudCk6IG51bWJlciB7XG4gICAgbGV0IHRvdGFsT2Zmc2V0ID0gMDtcbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICBcbiAgICBjb25zdCB3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKFxuICAgICAgY29udGFpbmVyLFxuICAgICAgTm9kZUZpbHRlci5TSE9XX1RFWFQsXG4gICAgICBudWxsXG4gICAgKTtcbiAgICBcbiAgICBsZXQgdGV4dE5vZGU6IE5vZGUgfCBudWxsO1xuICAgIHdoaWxlICh0ZXh0Tm9kZSA9IHdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgICBpZiAodGV4dE5vZGUgPT09IG5vZGUpIHtcbiAgICAgICAgdG90YWxPZmZzZXQgKz0gb2Zmc2V0O1xuICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdG90YWxPZmZzZXQgKz0gdGV4dE5vZGUudGV4dENvbnRlbnQ/Lmxlbmd0aCB8fCAwO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gZm91bmQgPyB0b3RhbE9mZnNldCA6IDA7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBjdXJzb3IgcG9zaXRpb24gaW4gYW4gZWxlbWVudFxuICAgKi9cbiAgc3RhdGljIHNldEN1cnNvclBvc2l0aW9uKGVsZW1lbnQ6IEVsZW1lbnQsIHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKFxuICAgICAgZWxlbWVudCxcbiAgICAgIE5vZGVGaWx0ZXIuU0hPV19URVhULFxuICAgICAgbnVsbFxuICAgICk7XG5cbiAgICBsZXQgY3VycmVudFBvc2l0aW9uID0gMDtcbiAgICBsZXQgdGFyZ2V0Tm9kZTogVGV4dCB8IG51bGwgPSBudWxsO1xuICAgIGxldCB0YXJnZXRPZmZzZXQgPSAwO1xuXG4gICAgd2hpbGUgKHdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgICBjb25zdCBub2RlID0gd2Fsa2VyLmN1cnJlbnROb2RlIGFzIFRleHQ7XG4gICAgICBjb25zdCBub2RlTGVuZ3RoID0gbm9kZS50ZXh0Q29udGVudD8ubGVuZ3RoIHx8IDA7XG4gICAgICBcbiAgICAgIGlmIChjdXJyZW50UG9zaXRpb24gKyBub2RlTGVuZ3RoID49IHBvc2l0aW9uKSB7XG4gICAgICAgIHRhcmdldE5vZGUgPSBub2RlO1xuICAgICAgICB0YXJnZXRPZmZzZXQgPSBwb3NpdGlvbiAtIGN1cnJlbnRQb3NpdGlvbjtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGN1cnJlbnRQb3NpdGlvbiArPSBub2RlTGVuZ3RoO1xuICAgIH1cblxuICAgIGlmICh0YXJnZXROb2RlKSB7XG4gICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICByYW5nZS5zZXRTdGFydCh0YXJnZXROb2RlLCB0YXJnZXRPZmZzZXQpO1xuICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICB0aGlzLnNldFNlbGVjdGlvbkZyb21SYW5nZShyYW5nZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgbm9kZSBpcyBjb250YWluZWQgd2l0aGluIGFuIGVsZW1lbnQgYWNyb3NzIFNoYWRvdyBET00gYm91bmRhcmllc1xuICAgKiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIGVsZW1lbnQuY29udGFpbnMoKSBkb2Vzbid0IHdvcmsgYWNyb3NzIFNoYWRvdyBET01cbiAgICovXG4gIHN0YXRpYyBjb250YWluc0Fjcm9zc1NoYWRvd0RPTShjb250YWluZXI6IE5vZGUsIG5vZGU6IE5vZGUpOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhbm9kZSkgcmV0dXJuIGZhbHNlO1xuICAgIFxuICAgIC8vIFN0YXJ0IHdpdGggdGhlIG5vZGUgYW5kIHRyYXZlcnNlIHVwXG4gICAgbGV0IGN1cnJlbnQ6IE5vZGUgfCBudWxsID0gbm9kZTtcbiAgICBcbiAgICB3aGlsZSAoY3VycmVudCkge1xuICAgICAgLy8gRGlyZWN0IG1hdGNoXG4gICAgICBpZiAoY3VycmVudCA9PT0gY29udGFpbmVyKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBJZiB3ZSdyZSBhdCBhIHNoYWRvdyByb290LCBjaGVjayBpdHMgaG9zdFxuICAgICAgaWYgKGN1cnJlbnQubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSAmJiAoY3VycmVudCBhcyBhbnkpLmhvc3QpIHtcbiAgICAgICAgY29uc3Qgc2hhZG93Um9vdCA9IGN1cnJlbnQgYXMgU2hhZG93Um9vdDtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNvbnRhaW5lciBpcyB3aXRoaW4gdGhpcyBzaGFkb3cgcm9vdFxuICAgICAgICBpZiAoc2hhZG93Um9vdC5jb250YWlucyhjb250YWluZXIpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBDb250YWluZXIgaXMgaW4gYSBjaGlsZCBzaGFkb3cgRE9NXG4gICAgICAgIH1cbiAgICAgICAgLy8gTW92ZSB0byB0aGUgaG9zdCBlbGVtZW50XG4gICAgICAgIGN1cnJlbnQgPSBzaGFkb3dSb290Lmhvc3Q7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBSZWd1bGFyIERPTSB0cmF2ZXJzYWxcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50Tm9kZTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59IiwgImltcG9ydCB7IGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgV3lzaXd5Z1NlbGVjdGlvbiB9IGZyb20gJy4vd3lzaXd5Zy5zZWxlY3Rpb24uanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtYXRCdXR0b24ge1xuICBjb21tYW5kOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgc2hvcnRjdXQ/OiBzdHJpbmc7XG4gIGFjdGlvbj86ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogSGFuZGxlcyB0ZXh0IGZvcm1hdHRpbmcgd2l0aCBzbWFydCB0b2dnbGUgYmVoYXZpb3I6XG4gKiAtIElmIHNlbGVjdGlvbiBjb250YWlucyBBTlkgaW5zdGFuY2Ugb2YgYSBmb3JtYXQsIHJlbW92ZXMgQUxMIGluc3RhbmNlc1xuICogLSBJZiBzZWxlY3Rpb24gaGFzIG5vIGZvcm1hdHRpbmcsIGFwcGxpZXMgdGhlIGZvcm1hdFxuICogLSBXb3JrcyBjb3JyZWN0bHkgd2l0aCBTaGFkb3cgRE9NIHVzaW5nIHJhbmdlLWJhc2VkIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIFd5c2l3eWdGb3JtYXR0aW5nIHtcbiAgc3RhdGljIHJlYWRvbmx5IGZvcm1hdEJ1dHRvbnM6IElGb3JtYXRCdXR0b25bXSA9IFtcbiAgICB7IGNvbW1hbmQ6ICdib2xkJywgaWNvbjogJ0InLCBsYWJlbDogJ0JvbGQnLCBzaG9ydGN1dDogJ1x1MjMxOEInIH0sXG4gICAgeyBjb21tYW5kOiAnaXRhbGljJywgaWNvbjogJ0knLCBsYWJlbDogJ0l0YWxpYycsIHNob3J0Y3V0OiAnXHUyMzE4SScgfSxcbiAgICB7IGNvbW1hbmQ6ICd1bmRlcmxpbmUnLCBpY29uOiAnVScsIGxhYmVsOiAnVW5kZXJsaW5lJywgc2hvcnRjdXQ6ICdcdTIzMThVJyB9LFxuICAgIHsgY29tbWFuZDogJ3N0cmlrZVRocm91Z2gnLCBpY29uOiAnU1x1MDMzNicsIGxhYmVsOiAnU3RyaWtldGhyb3VnaCcgfSxcbiAgICB7IGNvbW1hbmQ6ICdjb2RlJywgaWNvbjogJ3sgfScsIGxhYmVsOiAnSW5saW5lIENvZGUnIH0sXG4gICAgeyBjb21tYW5kOiAnbGluaycsIGljb246ICdcdUQ4M0RcdUREMTcnLCBsYWJlbDogJ0xpbmsnLCBzaG9ydGN1dDogJ1x1MjMxOEsnIH0sXG4gIF07XG5cbiAgc3RhdGljIHJlbmRlckZvcm1hdHRpbmdNZW51KFxuICAgIHBvc2l0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0sXG4gICAgb25Gb3JtYXQ6IChjb21tYW5kOiBzdHJpbmcpID0+IHZvaWRcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3M9XCJmb3JtYXR0aW5nLW1lbnVcIiBcbiAgICAgICAgc3R5bGU9XCJ0b3A6ICR7cG9zaXRpb24ueX1weDsgbGVmdDogJHtwb3NpdGlvbi54fXB4O1wiXG4gICAgICAgIEBtb3VzZWRvd249XCIkeyhlOiBNb3VzZUV2ZW50KSA9PiB7IGUucHJldmVudERlZmF1bHQoKTsgZS5zdG9wUHJvcGFnYXRpb24oKTsgfX1cIlxuICAgICAgICBAY2xpY2s9XCIkeyhlOiBNb3VzZUV2ZW50KSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVwiXG4gICAgICA+XG4gICAgICAgICR7dGhpcy5mb3JtYXRCdXR0b25zLm1hcChidXR0b24gPT4gaHRtbGBcbiAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtYXQtYnV0dG9uICR7YnV0dG9uLmNvbW1hbmR9XCJcbiAgICAgICAgICAgIEBjbGljaz1cIiR7KCkgPT4gb25Gb3JtYXQoYnV0dG9uLmNvbW1hbmQpfVwiXG4gICAgICAgICAgICB0aXRsZT1cIiR7YnV0dG9uLmxhYmVsfSR7YnV0dG9uLnNob3J0Y3V0ID8gYCAoJHtidXR0b24uc2hvcnRjdXR9KWAgOiAnJ31cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiJHtidXR0b24uY29tbWFuZCA9PT0gJ2NvZGUnID8gJ2NvZGUtaWNvbicgOiAnJ31cIj4ke2J1dHRvbi5pY29ufTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgYCl9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgc3RhdGljIGFwcGx5Rm9ybWF0KGNvbW1hbmQ6IHN0cmluZywgdmFsdWU/OiBzdHJpbmcsIHJhbmdlPzogUmFuZ2UsIHNoYWRvd1Jvb3RzPzogU2hhZG93Um9vdFtdKTogYm9vbGVhbiB7XG4gICAgLy8gSWYgcmFuZ2UgaXMgcHJvdmlkZWQsIHVzZSBpdCBkaXJlY3RseSAoU2hhZG93IERPTSBjYXNlKVxuICAgIC8vIE90aGVyd2lzZSBmYWxsIGJhY2sgdG8gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgbGV0IHdvcmtpbmdSYW5nZTogUmFuZ2U7XG4gICAgXG4gICAgaWYgKHJhbmdlKSB7XG4gICAgICB3b3JraW5nUmFuZ2UgPSByYW5nZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDApIHJldHVybiBmYWxzZTtcbiAgICAgIHdvcmtpbmdSYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xuICAgIH1cbiAgICBcbiAgICAvLyBBcHBseSBmb3JtYXQgYmFzZWQgb24gY29tbWFuZFxuICAgIHN3aXRjaCAoY29tbWFuZCkge1xuICAgICAgY2FzZSAnYm9sZCc6XG4gICAgICAgIHRoaXMud3JhcFNlbGVjdGlvbih3b3JraW5nUmFuZ2UsICdzdHJvbmcnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBcbiAgICAgIGNhc2UgJ2l0YWxpYyc6XG4gICAgICAgIHRoaXMud3JhcFNlbGVjdGlvbih3b3JraW5nUmFuZ2UsICdlbScpO1xuICAgICAgICBicmVhaztcbiAgICAgIFxuICAgICAgY2FzZSAndW5kZXJsaW5lJzpcbiAgICAgICAgdGhpcy53cmFwU2VsZWN0aW9uKHdvcmtpbmdSYW5nZSwgJ3UnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBcbiAgICAgIGNhc2UgJ3N0cmlrZVRocm91Z2gnOlxuICAgICAgICB0aGlzLndyYXBTZWxlY3Rpb24od29ya2luZ1JhbmdlLCAncycpO1xuICAgICAgICBicmVhaztcbiAgICAgIFxuICAgICAgY2FzZSAnY29kZSc6XG4gICAgICAgIHRoaXMud3JhcFNlbGVjdGlvbih3b3JraW5nUmFuZ2UsICdjb2RlJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgXG4gICAgICBjYXNlICdsaW5rJzpcbiAgICAgICAgLy8gRG9uJ3QgdXNlIHByb21wdCAtIHJldHVybiBmYWxzZSB0byBpbmRpY2F0ZSB3ZSBuZWVkIGFzeW5jIGlucHV0XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53cmFwU2VsZWN0aW9uV2l0aExpbmsod29ya2luZ1JhbmdlLCB2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBcbiAgICAvLyBJZiB3ZSBoYXZlIHNoYWRvdyByb290cywgdXNlIG91ciBTaGFkb3cgRE9NIHNlbGVjdGlvbiB1dGlsaXR5XG4gICAgaWYgKHNoYWRvd1Jvb3RzICYmIHNoYWRvd1Jvb3RzLmxlbmd0aCA+IDApIHtcbiAgICAgIFd5c2l3eWdTZWxlY3Rpb24uc2V0U2VsZWN0aW9uRnJvbVJhbmdlKHdvcmtpbmdSYW5nZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlZ3VsYXIgc2VsZWN0aW9uIHJlc3RvcmF0aW9uXG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHdvcmtpbmdSYW5nZSk7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIFxuICBwcml2YXRlIHN0YXRpYyB3cmFwU2VsZWN0aW9uKHJhbmdlOiBSYW5nZSwgdGFnTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmICghc2VsZWN0aW9uKSByZXR1cm47XG4gICAgXG4gICAgLy8gQ2hlY2sgaWYgQU5ZIHBhcnQgb2YgdGhlIHNlbGVjdGlvbiBjb250YWlucyB0aGlzIGZvcm1hdHRpbmdcbiAgICBjb25zdCBoYXNGb3JtYXR0aW5nID0gdGhpcy5zZWxlY3Rpb25Db250YWluc1RhZyhyYW5nZSwgdGFnTmFtZSk7XG4gICAgXG4gICAgaWYgKGhhc0Zvcm1hdHRpbmcpIHtcbiAgICAgIC8vIFJlbW92ZSBhbGwgaW5zdGFuY2VzIG9mIHRoaXMgdGFnIGZyb20gdGhlIHNlbGVjdGlvblxuICAgICAgdGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKHJhbmdlLCB0YWdOYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gV3JhcCBzZWxlY3Rpb24gd2l0aCB0aGUgdGFnXG4gICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIEV4dHJhY3QgYW5kIHdyYXAgY29udGVudHNcbiAgICAgICAgY29uc3QgY29udGVudHMgPSByYW5nZS5leHRyYWN0Q29udGVudHMoKTtcbiAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChjb250ZW50cyk7XG4gICAgICAgIHJhbmdlLmluc2VydE5vZGUod3JhcHBlcik7XG4gICAgICAgIFxuICAgICAgICAvLyBTZWxlY3QgdGhlIHdyYXBwZWQgY29udGVudFxuICAgICAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMod3JhcHBlcik7XG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHdyYXAgc2VsZWN0aW9uOicsIGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBzZWxlY3Rpb24gY29udGFpbnMgb3IgaXMgd2l0aGluIGFueSBpbnN0YW5jZXMgb2YgYSB0YWdcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHNlbGVjdGlvbkNvbnRhaW5zVGFnKHJhbmdlOiBSYW5nZSwgdGFnTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgLy8gRmlyc3QgY2hlY2s6IEFyZSB3ZSBpbnNpZGUgYSB0YWc/IChldmVuIGlmIHNlbGVjdGlvbiBkb2Vzbid0IGluY2x1ZGUgdGhlIHRhZylcbiAgICBsZXQgbm9kZTogTm9kZSB8IG51bGwgPSByYW5nZS5zdGFydENvbnRhaW5lcjtcbiAgICBcbiAgICB3aGlsZSAobm9kZSAmJiBub2RlICE9PSByYW5nZS5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50KSB7XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IG5vZGUgYXMgRWxlbWVudDtcbiAgICAgICAgaWYgKGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSB0YWdOYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gICAgfVxuICAgIFxuICAgIC8vIEFsc28gY2hlY2sgdGhlIGVuZCBjb250YWluZXJcbiAgICBub2RlID0gcmFuZ2UuZW5kQ29udGFpbmVyO1xuICAgIFxuICAgIHdoaWxlIChub2RlICYmIG5vZGUgIT09IHJhbmdlLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQpIHtcbiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gbm9kZSBhcyBFbGVtZW50O1xuICAgICAgICBpZiAoZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRhZ05hbWUpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG4gICAgXG4gICAgLy8gU2Vjb25kIGNoZWNrOiBEb2VzIHRoZSBzZWxlY3Rpb24gY29udGFpbiBhbnkgY29tcGxldGUgdGFncz9cbiAgICBjb25zdCB0ZW1wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgY29uc3QgY29udGVudHMgPSByYW5nZS5jbG9uZUNvbnRlbnRzKCk7XG4gICAgdGVtcERpdi5hcHBlbmRDaGlsZChjb250ZW50cyk7XG4gICAgY29uc3QgdGFncyA9IHRlbXBEaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUodGFnTmFtZSk7XG4gICAgXG4gICAgcmV0dXJuIHRhZ3MubGVuZ3RoID4gMDtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFJlbW92ZSBhbGwgaW5zdGFuY2VzIG9mIGEgdGFnIGZyb20gdGhlIHNlbGVjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihyYW5nZTogUmFuZ2UsIHRhZ05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoIXNlbGVjdGlvbikgcmV0dXJuO1xuICAgIFxuICAgIC8vIFNwZWNpYWwgaGFuZGxpbmc6IENoZWNrIGlmIHdlIG5lZWQgdG8gZXhwYW5kIHRoZSBzZWxlY3Rpb24gdG8gaW5jbHVkZSBwYXJlbnQgdGFnc1xuICAgIGxldCBleHBhbmRlZFJhbmdlID0gcmFuZ2UuY2xvbmVSYW5nZSgpO1xuICAgIFxuICAgIC8vIENoZWNrIGlmIHN0YXJ0IGlzIGluc2lkZSBhIHRhZ1xuICAgIGxldCBzdGFydE5vZGU6IE5vZGUgfCBudWxsID0gcmFuZ2Uuc3RhcnRDb250YWluZXI7XG4gICAgbGV0IHN0YXJ0VGFnOiBFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgd2hpbGUgKHN0YXJ0Tm9kZSAmJiBzdGFydE5vZGUgIT09IHJhbmdlLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQpIHtcbiAgICAgIGlmIChzdGFydE5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFICYmIChzdGFydE5vZGUgYXMgRWxlbWVudCkudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSB0YWdOYW1lKSB7XG4gICAgICAgIHN0YXJ0VGFnID0gc3RhcnROb2RlIGFzIEVsZW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgc3RhcnROb2RlID0gc3RhcnROb2RlLnBhcmVudE5vZGU7XG4gICAgfVxuICAgIFxuICAgIC8vIENoZWNrIGlmIGVuZCBpcyBpbnNpZGUgYSB0YWdcbiAgICBsZXQgZW5kTm9kZTogTm9kZSB8IG51bGwgPSByYW5nZS5lbmRDb250YWluZXI7XG4gICAgbGV0IGVuZFRhZzogRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIHdoaWxlIChlbmROb2RlICYmIGVuZE5vZGUgIT09IHJhbmdlLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQpIHtcbiAgICAgIGlmIChlbmROb2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAoZW5kTm9kZSBhcyBFbGVtZW50KS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRhZ05hbWUpIHtcbiAgICAgICAgZW5kVGFnID0gZW5kTm9kZSBhcyBFbGVtZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGVuZE5vZGUgPSBlbmROb2RlLnBhcmVudE5vZGU7XG4gICAgfVxuICAgIFxuICAgIC8vIEV4cGFuZCByYW5nZSB0byBpbmNsdWRlIHRoZSB0YWdzIGlmIG5lZWRlZFxuICAgIGlmIChzdGFydFRhZykge1xuICAgICAgZXhwYW5kZWRSYW5nZS5zZXRTdGFydEJlZm9yZShzdGFydFRhZyk7XG4gICAgfVxuICAgIGlmIChlbmRUYWcpIHtcbiAgICAgIGV4cGFuZGVkUmFuZ2Uuc2V0RW5kQWZ0ZXIoZW5kVGFnKTtcbiAgICB9XG4gICAgXG4gICAgLy8gRXh0cmFjdCB0aGUgY29udGVudHMgdXNpbmcgdGhlIGV4cGFuZGVkIHJhbmdlXG4gICAgY29uc3QgZnJhZ21lbnQgPSBleHBhbmRlZFJhbmdlLmV4dHJhY3RDb250ZW50cygpO1xuICAgIFxuICAgIC8vIFByb2Nlc3MgdGhlIGZyYWdtZW50IHRvIHJlbW92ZSB0YWdzXG4gICAgY29uc3QgcHJvY2Vzc2VkRnJhZ21lbnQgPSB0aGlzLnJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQoZnJhZ21lbnQsIHRhZ05hbWUpO1xuICAgIFxuICAgIC8vIEluc2VydCB0aGUgcHJvY2Vzc2VkIGNvbnRlbnQgYmFja1xuICAgIGV4cGFuZGVkUmFuZ2UuaW5zZXJ0Tm9kZShwcm9jZXNzZWRGcmFnbWVudCk7XG4gICAgXG4gICAgLy8gUmVzdG9yZSBzZWxlY3Rpb24gdG8gbWF0Y2ggdGhlIG9yaWdpbmFsIHNlbGVjdGlvbiBpbnRlbnRcbiAgICAvLyBGaW5kIHRoZSB0ZXh0IG5vZGVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgb3JpZ2luYWwgc2VsZWN0aW9uXG4gICAgY29uc3QgdGV4dE5vZGVzOiBOb2RlW10gPSBbXTtcbiAgICBjb25zdCB3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKFxuICAgICAgcHJvY2Vzc2VkRnJhZ21lbnQsXG4gICAgICBOb2RlRmlsdGVyLlNIT1dfVEVYVCxcbiAgICAgIG51bGxcbiAgICApO1xuICAgIFxuICAgIGxldCBub2RlO1xuICAgIHdoaWxlIChub2RlID0gd2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICAgIHRleHROb2Rlcy5wdXNoKG5vZGUpO1xuICAgIH1cbiAgICBcbiAgICBpZiAodGV4dE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG5ld1JhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIG5ld1JhbmdlLnNldFN0YXJ0KHRleHROb2Rlc1swXSwgMCk7XG4gICAgICBuZXdSYW5nZS5zZXRFbmQodGV4dE5vZGVzW3RleHROb2Rlcy5sZW5ndGggLSAxXSwgdGV4dE5vZGVzW3RleHROb2Rlcy5sZW5ndGggLSAxXS50ZXh0Q29udGVudD8ubGVuZ3RoIHx8IDApO1xuICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKG5ld1JhbmdlKTtcbiAgICB9XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBSZW1vdmUgYWxsIGluc3RhbmNlcyBvZiBhIHRhZyBmcm9tIGEgZG9jdW1lbnQgZnJhZ21lbnRcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQoZnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQsIHRhZ05hbWU6IHN0cmluZyk6IERvY3VtZW50RnJhZ21lbnQge1xuICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0ZW1wRGl2LmFwcGVuZENoaWxkKGZyYWdtZW50KTtcbiAgICBcbiAgICAvLyBGaW5kIGFsbCBpbnN0YW5jZXMgb2YgdGhlIHRhZ1xuICAgIGNvbnN0IHRhZ3MgPSB0ZW1wRGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZ05hbWUpO1xuICAgIFxuICAgIC8vIENvbnZlcnQgdG8gYXJyYXkgdG8gYXZvaWQgbGl2ZSBjb2xsZWN0aW9uIGlzc3Vlc1xuICAgIGNvbnN0IHRhZ0FycmF5ID0gQXJyYXkuZnJvbSh0YWdzKTtcbiAgICBcbiAgICAvLyBVbndyYXAgZWFjaCB0YWdcbiAgICB0YWdBcnJheS5mb3JFYWNoKHRhZyA9PiB7XG4gICAgICBjb25zdCBwYXJlbnQgPSB0YWcucGFyZW50Tm9kZTtcbiAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgLy8gTW92ZSBhbGwgY2hpbGRyZW4gb3V0IG9mIHRoZSB0YWdcbiAgICAgICAgd2hpbGUgKHRhZy5maXJzdENoaWxkKSB7XG4gICAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZSh0YWcuZmlyc3RDaGlsZCwgdGFnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZW1vdmUgdGhlIGVtcHR5IHRhZ1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGFnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICAvLyBDcmVhdGUgYSBuZXcgZnJhZ21lbnQgZnJvbSB0aGUgcHJvY2Vzc2VkIGNvbnRlbnRcbiAgICBjb25zdCBuZXdGcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICB3aGlsZSAodGVtcERpdi5maXJzdENoaWxkKSB7XG4gICAgICBuZXdGcmFnbWVudC5hcHBlbmRDaGlsZCh0ZW1wRGl2LmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gbmV3RnJhZ21lbnQ7XG4gIH1cbiAgXG4gIHByaXZhdGUgc3RhdGljIHdyYXBTZWxlY3Rpb25XaXRoTGluayhyYW5nZTogUmFuZ2UsIHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmICghc2VsZWN0aW9uKSByZXR1cm47XG4gICAgXG4gICAgLy8gRmlyc3QgcmVtb3ZlIGFueSBleGlzdGluZyBsaW5rcyBpbiB0aGUgc2VsZWN0aW9uXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uQ29udGFpbnNUYWcocmFuZ2UsICdhJykpIHtcbiAgICAgIHRoaXMucmVtb3ZlVGFnRnJvbVNlbGVjdGlvbihyYW5nZSwgJ2EnKTtcbiAgICAgIC8vIFJlLWdldCB0aGUgcmFuZ2UgYWZ0ZXIgbW9kaWZpY2F0aW9uXG4gICAgICBpZiAoc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwKSB7XG4gICAgICAgIHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5ocmVmID0gdXJsO1xuICAgIGxpbmsudGFyZ2V0ID0gJ19ibGFuayc7XG4gICAgbGluay5yZWwgPSAnbm9vcGVuZXIgbm9yZWZlcnJlcic7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbnRlbnRzID0gcmFuZ2UuZXh0cmFjdENvbnRlbnRzKCk7XG4gICAgICBsaW5rLmFwcGVuZENoaWxkKGNvbnRlbnRzKTtcbiAgICAgIHJhbmdlLmluc2VydE5vZGUobGluayk7XG4gICAgICBcbiAgICAgIC8vIFNlbGVjdCB0aGUgbGlua1xuICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGxpbmspO1xuICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGxpbms6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldFNlbGVjdGlvbkNvb3JkaW5hdGVzKC4uLnNoYWRvd1Jvb3RzOiBTaGFkb3dSb290W10pOiB7IHg6IG51bWJlciwgeTogbnVtYmVyIH0gfCBudWxsIHtcbiAgICAvLyBHZXQgc2VsZWN0aW9uIGluZm8gdXNpbmcgdGhlIG5ldyB1dGlsaXR5IHRoYXQgaGFuZGxlcyBTaGFkb3cgRE9NXG4gICAgY29uc3Qgc2VsZWN0aW9uSW5mbyA9IFd5c2l3eWdTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uSW5mbyguLi5zaGFkb3dSb290cyk7XG4gICAgXG4gICAgY29uc29sZS5sb2coJ2dldFNlbGVjdGlvbkNvb3JkaW5hdGVzIC0gc2VsZWN0aW9uSW5mbzonLCBzZWxlY3Rpb25JbmZvKTtcbiAgICBcbiAgICBpZiAoIXNlbGVjdGlvbkluZm8pIHtcbiAgICAgIGNvbnNvbGUubG9nKCdObyBzZWxlY3Rpb24gaW5mbyBhdmFpbGFibGUnKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIHJhbmdlIGZyb20gdGhlIHNlbGVjdGlvbiBpbmZvIHRvIGdldCBib3VuZGluZyByZWN0XG4gICAgY29uc3QgcmFuZ2UgPSBXeXNpd3lnU2VsZWN0aW9uLmNyZWF0ZVJhbmdlRnJvbUluZm8oc2VsZWN0aW9uSW5mbyk7XG4gICAgY29uc3QgcmVjdCA9IHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIFxuICAgIGNvbnNvbGUubG9nKCdSYW5nZSByZWN0OicsIHJlY3QpO1xuICAgIFxuICAgIGlmIChyZWN0LndpZHRoID09PSAwICYmIHJlY3QuaGVpZ2h0ID09PSAwKSB7XG4gICAgICBjb25zb2xlLmxvZygnUmVjdCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwLCB0cnlpbmcgZGlmZmVyZW50IGFwcHJvYWNoJyk7XG4gICAgICAvLyBTb21ldGltZXMgdGhlIHJlY3QgaXMgY29sbGFwc2VkLCBsZXQncyB0cnkgZ2V0dGluZyB0aGUgY2FyZXQgcG9zaXRpb25cbiAgICAgIGlmICgnY2FyZXRQb3NpdGlvbkZyb21Qb2ludCcgaW4gZG9jdW1lbnQpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xuICAgICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgY29uc3QgdGVtcFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgdGVtcFNwYW4udGV4dENvbnRlbnQgPSAnXFx1MjAwQic7IC8vIFplcm8td2lkdGggc3BhY2VcbiAgICAgICAgICByYW5nZS5pbnNlcnROb2RlKHRlbXBTcGFuKTtcbiAgICAgICAgICBjb25zdCBzcGFuUmVjdCA9IHRlbXBTcGFuLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIHRlbXBTcGFuLnJlbW92ZSgpO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmIChzcGFuUmVjdC53aWR0aCA+IDAgfHwgc3BhblJlY3QuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgICAgY29uc3QgY29vcmRzID0ge1xuICAgICAgICAgICAgICB4OiBzcGFuUmVjdC5sZWZ0LFxuICAgICAgICAgICAgICB5OiBNYXRoLm1heCg0NSwgc3BhblJlY3QudG9wIC0gNDUpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1VzZWQgc3BhbiB0cmljayBmb3IgY29vcmRzOicsIGNvb3Jkcyk7XG4gICAgICAgICAgICByZXR1cm4gY29vcmRzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY29vcmRzID0ge1xuICAgICAgeDogcmVjdC5sZWZ0ICsgKHJlY3Qud2lkdGggLyAyKSxcbiAgICAgIHk6IE1hdGgubWF4KDQ1LCByZWN0LnRvcCAtIDQ1KSAvLyBQb3NpdGlvbiBhYm92ZSBzZWxlY3Rpb24sIGJ1dCBlbnN1cmUgaXQncyBub3QgbmVnYXRpdmVcbiAgICB9O1xuICAgIFxuICAgIGNvbnNvbGUubG9nKCdSZXR1cm5pbmcgY29vcmRzOicsIGNvb3Jkcyk7XG4gICAgcmV0dXJuIGNvb3JkcztcbiAgfVxufSIsICJpbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBEZWVzRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgY3NzTWFuYWdlcixcbiAgY3NzLFxuICBzdGF0ZSxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IHpJbmRleFJlZ2lzdHJ5IH0gZnJvbSAnLi4vLi4vMDB6aW5kZXguanMnO1xuXG5pbXBvcnQgeyBXeXNpd3lnRm9ybWF0dGluZyB9IGZyb20gJy4vd3lzaXd5Zy5mb3JtYXR0aW5nLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWZvcm1hdHRpbmctbWVudSc6IERlZXNGb3JtYXR0aW5nTWVudTtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1mb3JtYXR0aW5nLW1lbnUnKVxuZXhwb3J0IGNsYXNzIERlZXNGb3JtYXR0aW5nTWVudSBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2U6IERlZXNGb3JtYXR0aW5nTWVudTtcbiAgXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SW5zdGFuY2UoKTogRGVlc0Zvcm1hdHRpbmdNZW51IHtcbiAgICBpZiAoIURlZXNGb3JtYXR0aW5nTWVudS5pbnN0YW5jZSkge1xuICAgICAgRGVlc0Zvcm1hdHRpbmdNZW51Lmluc3RhbmNlID0gbmV3IERlZXNGb3JtYXR0aW5nTWVudSgpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChEZWVzRm9ybWF0dGluZ01lbnUuaW5zdGFuY2UpO1xuICAgIH1cbiAgICByZXR1cm4gRGVlc0Zvcm1hdHRpbmdNZW51Lmluc3RhbmNlO1xuICB9XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHBvc2l0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gPSB7IHg6IDAsIHk6IDAgfTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBtZW51WkluZGV4OiBudW1iZXIgPSAxMDAwO1xuXG4gIHByaXZhdGUgY2FsbGJhY2s6ICgoY29tbWFuZDogc3RyaW5nKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPikgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgLmZvcm1hdHRpbmctbWVudSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzI2MjYyNicpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlMGUwZTAnLCAnIzQwNDA0MCcpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKDVweCk7XG4gICAgICAgIH1cbiAgICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5mb3JtYXQtYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDAwMDAwJywgJyNlMGUwZTAnKX07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAuZm9ybWF0LWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjBmMGYwJywgJyMzMzMzMzMnKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwNjZjYycsICcjNGQ5NGZmJyl9O1xuICAgICAgfVxuXG4gICAgICAuZm9ybWF0LWJ1dHRvbjphY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICAgICAgfVxuXG4gICAgICAuZm9ybWF0LWJ1dHRvbi5ib2xkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIH1cblxuICAgICAgLmZvcm1hdC1idXR0b24uaXRhbGljIHtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgfVxuXG4gICAgICAuZm9ybWF0LWJ1dHRvbi51bmRlcmxpbmUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cblxuICAgICAgLmZvcm1hdC1idXR0b24gLmNvZGUtaWNvbiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSByZXR1cm4gaHRtbGBgO1xuXG4gICAgLy8gQXBwbHkgei1pbmRleCB0byBob3N0IGVsZW1lbnRcbiAgICB0aGlzLnN0eWxlLnpJbmRleCA9IHRoaXMubWVudVpJbmRleC50b1N0cmluZygpO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IFxuICAgICAgICBjbGFzcz1cImZvcm1hdHRpbmctbWVudVwiIFxuICAgICAgICBzdHlsZT1cImxlZnQ6ICR7dGhpcy5wb3NpdGlvbi54fXB4OyB0b3A6ICR7dGhpcy5wb3NpdGlvbi55fXB4O1wiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBkYXRhLW1lbnUtdHlwZT1cImZvcm1hdHRpbmdcIlxuICAgICAgPlxuICAgICAgICAke1d5c2l3eWdGb3JtYXR0aW5nLmZvcm1hdEJ1dHRvbnMubWFwKGJ1dHRvbiA9PiBodG1sYFxuICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICBjbGFzcz1cImZvcm1hdC1idXR0b24gJHtidXR0b24uY29tbWFuZH1cIlxuICAgICAgICAgICAgZGF0YS1jb21tYW5kPVwiJHtidXR0b24uY29tbWFuZH1cIlxuICAgICAgICAgICAgdGl0bGU9XCIke2J1dHRvbi5sYWJlbH0ke2J1dHRvbi5zaG9ydGN1dCA/IGAgKCR7YnV0dG9uLnNob3J0Y3V0fSlgIDogJyd9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiR7YnV0dG9uLmNvbW1hbmQgPT09ICdjb2RlJyA/ICdjb2RlLWljb24nIDogJyd9XCI+JHtidXR0b24uaWNvbn08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIGApfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGb3JtYXQoY29tbWFuZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FsbGJhY2spIHtcbiAgICAgIHRoaXMuY2FsbGJhY2soY29tbWFuZCk7XG4gICAgfVxuICAgIC8vIERvbid0IGhpZGUgbWVudSBhZnRlciBhcHBseWluZyBmb3JtYXQgKGV4Y2VwdCBmb3IgbGluaylcbiAgICBpZiAoY29tbWFuZCA9PT0gJ2xpbmsnKSB7XG4gICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvdyhwb3NpdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9LCBjYWxsYmFjazogKGNvbW1hbmQ6IHN0cmluZykgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4pOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnRm9ybWF0dGluZ01lbnUuc2hvdyBjYWxsZWQ6JywgeyBwb3NpdGlvbiwgdmlzaWJsZTogdGhpcy52aXNpYmxlIH0pO1xuICAgIHRoaXMucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgXG4gICAgLy8gR2V0IHotaW5kZXggZnJvbSByZWdpc3RyeSBhbmQgYXBwbHkgaW1tZWRpYXRlbHlcbiAgICB0aGlzLm1lbnVaSW5kZXggPSB6SW5kZXhSZWdpc3RyeS5nZXROZXh0WkluZGV4KCk7XG4gICAgekluZGV4UmVnaXN0cnkucmVnaXN0ZXIodGhpcywgdGhpcy5tZW51WkluZGV4KTtcbiAgICB0aGlzLnN0eWxlLnpJbmRleCA9IHRoaXMubWVudVpJbmRleC50b1N0cmluZygpO1xuICAgIFxuICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLmNhbGxiYWNrID0gbnVsbDtcbiAgICBcbiAgICAvLyBVbnJlZ2lzdGVyIGZyb20gei1pbmRleCByZWdpc3RyeVxuICAgIHpJbmRleFJlZ2lzdHJ5LnVucmVnaXN0ZXIodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24ocG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSk6IHZvaWQge1xuICAgIHRoaXMucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgfVxuICBcbiAgcHVibGljIGZpcnN0VXBkYXRlZCgpOiB2b2lkIHtcbiAgICAvLyBTZXQgdXAgZXZlbnQgZGVsZWdhdGlvbiBmb3IgdGhlIG1lbnVcbiAgICB0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBtZW51ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuZm9ybWF0dGluZy1tZW51Jyk7XG4gICAgICBpZiAobWVudSAmJiBtZW51LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIC8vIFByZXZlbnQgZm9jdXMgbG9zc1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IGJ1dHRvbiA9IHRhcmdldC5jbG9zZXN0KCcuZm9ybWF0LWJ1dHRvbicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgXG4gICAgICBpZiAoYnV0dG9uKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBidXR0b24uZ2V0QXR0cmlidXRlKCdkYXRhLWNvbW1hbmQnKTtcbiAgICAgICAgaWYgKGNvbW1hbmQpIHtcbiAgICAgICAgICB0aGlzLmFwcGx5Rm9ybWF0KGNvbW1hbmQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChlOiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICBjb25zdCBtZW51ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuZm9ybWF0dGluZy1tZW51Jyk7XG4gICAgICBpZiAobWVudSAmJiBtZW51LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIC8vIFByZXZlbnQgbWVudSBmcm9tIHRha2luZyBmb2N1c1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfSwgdHJ1ZSk7IC8vIFVzZSBjYXB0dXJlIHBoYXNlXG4gIH1cbn0iLCAiaW1wb3J0IHsgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyB0eXBlIElCbG9jayB9IGZyb20gJy4vd3lzaXd5Zy50eXBlcy5qcyc7XG5pbXBvcnQgeyBEZWVzU2xhc2hNZW51IH0gZnJvbSAnLi9kZWVzLXNsYXNoLW1lbnUuanMnO1xuaW1wb3J0IHsgRGVlc0Zvcm1hdHRpbmdNZW51IH0gZnJvbSAnLi9kZWVzLWZvcm1hdHRpbmctbWVudS5qcyc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciB0aGUgbWFpbiB3eXNpd3lnIGNvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElXeXNpd3lnQ29tcG9uZW50IHtcbiAgLy8gU3RhdGVcbiAgYmxvY2tzOiBJQmxvY2tbXTtcbiAgc2VsZWN0ZWRCbG9ja0lkOiBzdHJpbmcgfCBudWxsO1xuICBzaGFkb3dSb290OiBTaGFkb3dSb290IHwgbnVsbDtcbiAgZWRpdG9yQ29udGVudFJlZjogSFRNTERpdkVsZW1lbnQ7XG4gIGRyYWdnZWRCbG9ja0lkOiBzdHJpbmcgfCBudWxsO1xuICBkcmFnT3ZlckJsb2NrSWQ6IHN0cmluZyB8IG51bGw7XG4gIGRyYWdPdmVyUG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJyB8IG51bGw7XG4gIGlzQ29tcG9zaW5nOiBib29sZWFuO1xuICBcbiAgLy8gTWVudXNcbiAgc2xhc2hNZW51OiBEZWVzU2xhc2hNZW51O1xuICBmb3JtYXR0aW5nTWVudTogRGVlc0Zvcm1hdHRpbmdNZW51O1xuICBcbiAgLy8gTWV0aG9kc1xuICB1cGRhdGVWYWx1ZSgpOiB2b2lkO1xuICByZXF1ZXN0VXBkYXRlKCk6IHZvaWQ7XG4gIHVwZGF0ZUNvbXBsZXRlOiBQcm9taXNlPGJvb2xlYW4+O1xuICBpbnNlcnRCbG9jayh0eXBlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICBjbG9zZVNsYXNoTWVudShjbGVhclNsYXNoPzogYm9vbGVhbik6IHZvaWQ7XG4gIGFwcGx5Rm9ybWF0KGNvbW1hbmQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG4gIGhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xuICBjcmVhdGVCbG9ja0VsZW1lbnQoYmxvY2s6IElCbG9jayk6IEhUTUxFbGVtZW50O1xuICB1cGRhdGVCbG9ja0VsZW1lbnQoYmxvY2tJZDogc3RyaW5nKTogdm9pZDtcbiAgaGFuZGxlRHJvcChlOiBEcmFnRXZlbnQsIHRhcmdldEJsb2NrOiBJQmxvY2spOiB2b2lkO1xuICByZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCk6IHZvaWQ7XG4gIHNhdmVUb0hpc3RvcnkoZGVib3VuY2U/OiBib29sZWFuKTogdm9pZDtcbiAgXG4gIC8vIEhhbmRsZXJzXG4gIGJsb2NrT3BlcmF0aW9uczogSUJsb2NrT3BlcmF0aW9ucztcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIGJsb2NrIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQmxvY2tPcGVyYXRpb25zIHtcbiAgY3JlYXRlQmxvY2sodHlwZT86IElCbG9ja1sndHlwZSddLCBjb250ZW50Pzogc3RyaW5nLCBtZXRhZGF0YT86IGFueSk6IElCbG9jaztcbiAgaW5zZXJ0QmxvY2tBZnRlcihhZnRlckJsb2NrOiBJQmxvY2ssIG5ld0Jsb2NrOiBJQmxvY2ssIGZvY3VzTmV3QmxvY2s/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPjtcbiAgcmVtb3ZlQmxvY2soYmxvY2tJZDogc3RyaW5nKTogdm9pZDtcbiAgZmluZEJsb2NrKGJsb2NrSWQ6IHN0cmluZyk6IElCbG9jayB8IHVuZGVmaW5lZDtcbiAgZ2V0QmxvY2tJbmRleChibG9ja0lkOiBzdHJpbmcpOiBudW1iZXI7XG4gIGZvY3VzQmxvY2soYmxvY2tJZDogc3RyaW5nLCBjdXJzb3JQb3NpdGlvbj86ICdzdGFydCcgfCAnZW5kJyB8IG51bWJlcik6IFByb21pc2U8dm9pZD47XG4gIHVwZGF0ZUJsb2NrQ29udGVudChibG9ja0lkOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQ7XG4gIHRyYW5zZm9ybUJsb2NrKGJsb2NrSWQ6IHN0cmluZywgbmV3VHlwZTogSUJsb2NrWyd0eXBlJ10sIG1ldGFkYXRhPzogYW55KTogdm9pZDtcbiAgbW92ZUJsb2NrKGJsb2NrSWQ6IHN0cmluZywgdGFyZ2V0SW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIGdldFByZXZpb3VzQmxvY2soYmxvY2tJZDogc3RyaW5nKTogSUJsb2NrIHwgbnVsbDtcbiAgZ2V0TmV4dEJsb2NrKGJsb2NrSWQ6IHN0cmluZyk6IElCbG9jayB8IG51bGw7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBibG9jayBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV3lzaXd5Z0Jsb2NrQ29tcG9uZW50IHtcbiAgYmxvY2s6IElCbG9jaztcbiAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgYmxvY2tFbGVtZW50OiBIVE1MRGl2RWxlbWVudCB8IG51bGw7XG4gIFxuICBmb2N1cygpOiB2b2lkO1xuICBmb2N1c1dpdGhDdXJzb3IocG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyB8IG51bWJlcik6IHZvaWQ7XG4gIGdldENvbnRlbnQoKTogc3RyaW5nO1xuICBzZXRDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQ7XG4gIHNldEN1cnNvclRvU3RhcnQoKTogdm9pZDtcbiAgc2V0Q3Vyc29yVG9FbmQoKTogdm9pZDtcbiAgZm9jdXNMaXN0SXRlbSgpOiB2b2lkO1xuICBnZXRTcGxpdENvbnRlbnQoc3BsaXRQb3NpdGlvbjogbnVtYmVyKTogeyBiZWZvcmU6IHN0cmluZzsgYWZ0ZXI6IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEV2ZW50IGhhbmRsZXIgaW50ZXJmYWNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElCbG9ja0V2ZW50SGFuZGxlcnMge1xuICBvbklucHV0OiAoZTogSW5wdXRFdmVudCkgPT4gdm9pZDtcbiAgb25LZXlEb3duOiAoZTogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgb25Gb2N1czogKCkgPT4gdm9pZDtcbiAgb25CbHVyOiAoKSA9PiB2b2lkO1xuICBvbkNvbXBvc2l0aW9uU3RhcnQ6ICgpID0+IHZvaWQ7XG4gIG9uQ29tcG9zaXRpb25FbmQ6ICgpID0+IHZvaWQ7XG4gIG9uTW91c2VVcD86IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBvblJlcXVlc3RVcGRhdGU/OiAoKSA9PiB2b2lkOyAvLyBSZXF1ZXN0IGltbWVkaWF0ZSByZS1yZW5kZXIgb2YgdGhlIGJsb2NrXG59IiwgIi8qKlxuICogU2hhcmVkIGNvbnN0YW50cyBmb3IgdGhlIFdZU0lXWUcgZWRpdG9yXG4gKi9cblxuLyoqXG4gKiBBdmFpbGFibGUgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIGZvciBjb2RlIGJsb2Nrc1xuICovXG5leHBvcnQgY29uc3QgUFJPR1JBTU1JTkdfTEFOR1VBR0VTID0gW1xuICAnSmF2YVNjcmlwdCcsXG4gICdUeXBlU2NyaXB0JywgXG4gICdQeXRob24nLFxuICAnSmF2YScsXG4gICdDKysnLFxuICAnQyMnLFxuICAnR28nLFxuICAnUnVzdCcsXG4gICdIVE1MJyxcbiAgJ0NTUycsXG4gICdTUUwnLFxuICAnU2hlbGwnLFxuICAnSlNPTicsXG4gICdZQU1MJyxcbiAgJ01hcmtkb3duJyxcbiAgJ1BsYWluIFRleHQnXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBQcm9ncmFtbWluZ0xhbmd1YWdlID0gdHlwZW9mIFBST0dSQU1NSU5HX0xBTkdVQUdFU1tudW1iZXJdOyIsICJpbXBvcnQgeyBjc3MsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3Qgd3lzaXd5Z1N0eWxlcyA9IGNzc2BcbiAgOmhvc3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC53eXNpd3lnLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzA5MDkwYicpfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICBwYWRkaW5nOiAyNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA5MDkwYicsICcjZmFmYWZhJyl9O1xuICB9XG5cbiAgLnd5c2l3eWctY29udGFpbmVyOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZDFkNWRiJywgJyMzZjNmNDYnKX07XG4gIH1cblxuICAud3lzaXd5Zy1jb250YWluZXI6Zm9jdXMtd2l0aGluIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmNGY0ZjUnLCAnIzE4MTgxYicpfSwgMCAwIDAgNHB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDU5LCAxMzAsIDI0NiwgMC41KScsICdyZ2JhKDU5LCAxMzAsIDI0NiwgMC41KScpfTtcbiAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyMzYjgyZjYnKX07XG4gIH1cblxuICAvKiBWaXN1YWwgaGludCBmb3IgdGV4dCBzZWxlY3Rpb24gKi9cbiAgLmVkaXRvci1jb250ZW50OmhvdmVyIHtcbiAgICBjdXJzb3I6IHRleHQ7XG4gIH1cblxuICAuZWRpdG9yLWNvbnRlbnQge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgbWluLWhlaWdodDogMTYwcHg7XG4gICAgbWFyZ2luOiAwIC04cHg7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gIH1cblxuICAuYmxvY2sge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiA0cHggMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgbWluLWhlaWdodDogMS42ZW07XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gIH1cblxuICAvKiBGaXJzdCBhbmQgbGFzdCBibG9ja3MgZG9uJ3QgbmVlZCBleHRyYSBzcGFjaW5nICovXG4gIC5ibG9jay13cmFwcGVyOmZpcnN0LWNoaWxkIC5ibG9jayB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmJsb2NrLXdyYXBwZXI6bGFzdC1jaGlsZCAuYmxvY2sge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuYmxvY2suc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSknLCAncmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpJyl9O1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSg1OSwgMTMwLCAyNDYsIDAuMiknLCAncmdiYSg1OSwgMTMwLCAyNDYsIDAuMiknKX07XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAgIG1hcmdpbi1yaWdodDogLThweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gIH1cblxuICAuYmxvY2tbY29udGVudGVkaXRhYmxlXSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC5ibG9jay5wYXJhZ3JhcGgge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cblxuICAuYmxvY2sucGFyYWdyYXBoOmVtcHR5OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uXCI7XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyM3MTcxN2EnKX07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuXG4gIC5ibG9jay5oZWFkaW5nLTEge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gIH1cblxuICAuYmxvY2suaGVhZGluZy0xOmVtcHR5OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiSGVhZGluZyAxXCI7XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyM3MTcxN2EnKX07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZm9udC1zaXplOiAzMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgfVxuXG4gIC5ibG9jay5oZWFkaW5nLTIge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gIH1cblxuICAuYmxvY2suaGVhZGluZy0yOmVtcHR5OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiSGVhZGluZyAyXCI7XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyM3MTcxN2EnKX07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIC5ibG9jay5oZWFkaW5nLTMge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gIH1cblxuICAuYmxvY2suaGVhZGluZy0zOmVtcHR5OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiSGVhZGluZyAzXCI7XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyM3MTcxN2EnKX07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIC5ibG9jay5xdW90ZSB7XG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyNhMWExYWEnKX07XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIH1cblxuICAuYmxvY2sucXVvdGU6ZW1wdHk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJRdW90ZVwiO1xuICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjNzE3MTdhJyl9O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgLmNvZGUtYmxvY2stY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG4gIH1cblxuICAuY29kZS1sYW5ndWFnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y0ZjRmNScsICcjMjcyNzJhJyl9O1xuICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjYTFhMWFhJyl9O1xuICAgIHBhZGRpbmc6IDRweCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAwIDRweCAwIDRweDtcbiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgLmJsb2NrLmNvZGUge1xuICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjRmNGY1JywgJyMxODE4MWInKX07XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBwYWRkaW5nLXRvcDogMzJweDsgLyogTWFrZSByb29tIGZvciBsYW5ndWFnZSBpbmRpY2F0b3IgKi9cbiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuXG4gIC5ibG9jay5jb2RlOmVtcHR5OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiLy8gQ29kZSBibG9ja1wiO1xuICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjNzE3MTdhJyl9O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cblxuICAuYmxvY2subGlzdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgLmJsb2NrLmxpc3QgdWwsXG4gIC5ibG9jay5saXN0IG9sIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAwIDAgMjRweDtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICB9XG5cbiAgLmJsb2NrLmxpc3QgdWwge1xuICAgIGxpc3Qtc3R5bGU6IGRpc2M7XG4gIH1cblxuICAuYmxvY2subGlzdCBvbCB7XG4gICAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbiAgfVxuXG4gIC5ibG9jay5saXN0IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgfVxuXG4gIC5ibG9jay5saXN0IGxpOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuYmxvY2suZGl2aWRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAuYmxvY2suZGl2aWRlciBociB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5zbGFzaC1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzA5MDkwYicpfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBtaW4td2lkdGg6IDIyMHB4O1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAuc2xhc2gtbWVudS1pdGVtIHtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG5cbiAgLnNsYXNoLW1lbnUtaXRlbTpob3ZlcixcbiAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmNGY0ZjUnLCAnIzI3MjcyYScpfTtcbiAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgfVxuXG4gIC5zbGFzaC1tZW51LWl0ZW0gLmljb24ge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjYTFhMWFhJyl9O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAuc2xhc2gtbWVudS1pdGVtOmhvdmVyIC5pY29uLFxuICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIC5pY29uIHtcbiAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzYjgyZjYnLCAnIzNiODJmNicpfTtcbiAgfVxuXG4gIC50b29sYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtNDBweDtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwOTA5MGInKX07XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZ2FwOiA0cHg7XG4gICAgei1pbmRleDogMTAwMDtcbiAgfVxuXG4gIC50b29sYmFyLnZpc2libGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAudG9vbGJhci1idXR0b24ge1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gIH1cblxuICAudG9vbGJhci1idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjRmNGY1JywgJyMyNzI3MmEnKX07XG4gICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyMzYjgyZjYnKX07XG4gIH1cblxuICAvKiBEcmFnIGFuZCBEcm9wIFN0eWxlcyAqL1xuICAuYmxvY2std3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlO1xuICB9XG5cbiAgLyogRW5zdXJlIHByb3BlciBzcGFjaW5nIGNvbnRleHQgZm9yIGJsb2NrcyAqL1xuICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jayB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgfVxuXG4gIC8qIE92ZXJyaWRlIGZvciBoZWFkaW5ncyBmb2xsb3dpbmcgb3RoZXIgYmxvY2tzICovXG4gIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMSxcbiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0yLFxuICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTMge1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gIH1cblxuICAvKiBDb2RlIGFuZCBxdW90ZSBibG9ja3MgbmVlZCBjb25zaXN0ZW50IHNwYWNpbmcgKi9cbiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suY29kZSxcbiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2sucXVvdGUge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cblxuICAuZHJhZy1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMjhweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MTcxN2EnLCAnIzcxNzE3YScpfTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cblxuICAuZHJhZy1oYW5kbGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcdTIyRUVcdTIyRUVcIjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0ycHg7XG4gIH1cblxuICAuYmxvY2std3JhcHBlcjpob3ZlciAuZHJhZy1oYW5kbGUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAuZHJhZy1oYW5kbGU6aG92ZXIge1xuICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjYTFhMWFhJyl9O1xuICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjRmNGY1JywgJyMyNzI3MmEnKX07XG4gIH1cblxuICAuZHJhZy1oYW5kbGU6YWN0aXZlIHtcbiAgICBjdXJzb3I6IGdyYWJiaW5nO1xuICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzZjNmNDYnKX07XG4gIH1cblxuICAuYmxvY2std3JhcHBlci5kcmFnZ2luZyB7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyMDAxO1xuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG5cbiAgLyogQmxvY2tzIHRoYXQgc2hvdWxkIG1vdmUgb3V0IG9mIHRoZSB3YXkgKi9cbiAgLmJsb2NrLXdyYXBwZXIubW92ZS1kb3duIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tZHJhZy1vZmZzZXQsIDBweCkpO1xuICB9XG5cbiAgLmJsb2NrLXdyYXBwZXIubW92ZS11cCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoLTEgKiB2YXIoLS1kcmFnLW9mZnNldCwgMHB4KSkpO1xuICB9XG5cbiAgLyogRHJvcCBpbmRpY2F0b3IgKi9cbiAgLmRyb3AtaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSg1OSwgMTMwLCAyNDYsIDAuMDUpJywgJ3JnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KScpfTtcbiAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzYjgyZjYnLCAnIzNiODJmNicpfTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgZWFzZSwgaGVpZ2h0IDAuMnMgZWFzZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAxOTk5O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvKiBSZW1vdmUgb2xkIGRyYWctb3ZlciBzdHlsZXMgKi9cbiAgLmJsb2NrLXdyYXBwZXIuZHJhZy1vdmVyLWJlZm9yZSxcbiAgLmJsb2NrLXdyYXBwZXIuZHJhZy1vdmVyLWFmdGVyIHtcbiAgICAvKiBObyBsb25nZXIgbmVlZGVkLCB1c2luZyBkcm9wIGluZGljYXRvciBpbnN0ZWFkICovXG4gIH1cblxuICAuZWRpdG9yLWNvbnRlbnQuZHJhZ2dpbmcgKiB7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAvKiBCbG9jayBTZXR0aW5ncyBCdXR0b24gLSBSZW1vdmVkIGluIGZhdm9yIG9mIGNvbnRleHQgbWVudSAqL1xuXG4gIC8qIFRleHQgU2VsZWN0aW9uIFN0eWxlcyAqL1xuICAuYmxvY2sgOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKScsICdyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKScpfTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC8qIEZvcm1hdHRpbmcgTWVudSAqL1xuICAuZm9ybWF0dGluZy1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzA5MDkwYicpfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDJweDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC4xNXMgZWFzZS1vdXQ7XG4gIH1cblxuICBAa2V5ZnJhbWVzIGZhZGVJblNjYWxlIHtcbiAgICBmcm9tIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpIHRyYW5zbGF0ZVkoMnB4KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgICB9XG4gIH1cblxuICAuZm9ybWF0LWJ1dHRvbiB7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuZm9ybWF0LWJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmNGY0ZjUnLCAnIzI3MjcyYScpfTtcbiAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzYjgyZjYnLCAnIzNiODJmNicpfTtcbiAgfVxuXG4gIC5mb3JtYXQtYnV0dG9uOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgfVxuXG4gIC5mb3JtYXQtYnV0dG9uLmJvbGQge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cblxuICAuZm9ybWF0LWJ1dHRvbi5pdGFsaWMge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIC5mb3JtYXQtYnV0dG9uLnVuZGVybGluZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICAuZm9ybWF0LWJ1dHRvbiAuY29kZS1pY29uIHtcbiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cblxuICAvKiBBcHBsaWVkIGZvcm1hdCBzdHlsZXMgaW4gY29udGVudCAqL1xuICAuYmxvY2sgc3Ryb25nLFxuICAuYmxvY2sgYiB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgfVxuXG4gIC5ibG9jayBlbSxcbiAgLmJsb2NrIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIC5ibG9jayB1IHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuXG4gIC5ibG9jayBzdHJpa2UsXG4gIC5ibG9jayBzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cblxuICAuYmxvY2sgY29kZSB7XG4gICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmNGY0ZjUnLCAnIzI3MjcyYScpfTtcbiAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA5MDkwYicsICcjZmFmYWZhJyl9O1xuICB9XG5cbiAgLmJsb2NrIGEge1xuICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzNiODJmNicsICcjM2I4MmY2Jyl9O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG4gIH1cblxuICAuYmxvY2sgYTpob3ZlciB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzYjgyZjYnLCAnIzNiODJmNicpfTtcbiAgfVxuYDsiLCAiaW1wb3J0IHsgdHlwZSBJQmxvY2sgfSBmcm9tICcuL3d5c2l3eWcudHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgV3lzaXd5Z0NvbnZlcnRlcnMge1xuICBzdGF0aWMgZXNjYXBlSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGRpdi50ZXh0Q29udGVudCA9IHRleHQ7XG4gICAgcmV0dXJuIGRpdi5pbm5lckhUTUw7XG4gIH1cblxuICBzdGF0aWMgZm9ybWF0RmlsZVNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGJ5dGVzID09PSAwKSByZXR1cm4gJzAgQnl0ZXMnO1xuICAgIGNvbnN0IGsgPSAxMDI0O1xuICAgIGNvbnN0IHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQiddO1xuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZCgyKSkgKyAnICcgKyBzaXplc1tpXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRIdG1sT3V0cHV0KGJsb2NrczogSUJsb2NrW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBibG9ja3MubWFwKGJsb2NrID0+IHtcbiAgICAgIC8vIENoZWNrIGlmIGNvbnRlbnQgYWxyZWFkeSBjb250YWlucyBIVE1MIGZvcm1hdHRpbmdcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBibG9jay5jb250ZW50LmluY2x1ZGVzKCc8JykgJiYgYmxvY2suY29udGVudC5pbmNsdWRlcygnPicpIFxuICAgICAgICA/IGJsb2NrLmNvbnRlbnQgLy8gQWxyZWFkeSBjb250YWlucyBIVE1MIGZvcm1hdHRpbmdcbiAgICAgICAgOiB0aGlzLmVzY2FwZUh0bWwoYmxvY2suY29udGVudCk7XG4gICAgICBcbiAgICAgIHN3aXRjaCAoYmxvY2sudHlwZSkge1xuICAgICAgICBjYXNlICdwYXJhZ3JhcGgnOlxuICAgICAgICAgIHJldHVybiBibG9jay5jb250ZW50ID8gYDxwPiR7Y29udGVudH08L3A+YCA6ICcnO1xuICAgICAgICBjYXNlICdoZWFkaW5nLTEnOlxuICAgICAgICAgIHJldHVybiBgPGgxPiR7Y29udGVudH08L2gxPmA7XG4gICAgICAgIGNhc2UgJ2hlYWRpbmctMic6XG4gICAgICAgICAgcmV0dXJuIGA8aDI+JHtjb250ZW50fTwvaDI+YDtcbiAgICAgICAgY2FzZSAnaGVhZGluZy0zJzpcbiAgICAgICAgICByZXR1cm4gYDxoMz4ke2NvbnRlbnR9PC9oMz5gO1xuICAgICAgICBjYXNlICdxdW90ZSc6XG4gICAgICAgICAgcmV0dXJuIGA8YmxvY2txdW90ZT4ke2NvbnRlbnR9PC9ibG9ja3F1b3RlPmA7XG4gICAgICAgIGNhc2UgJ2NvZGUnOlxuICAgICAgICAgIHJldHVybiBgPHByZT48Y29kZT4ke3RoaXMuZXNjYXBlSHRtbChibG9jay5jb250ZW50KX08L2NvZGU+PC9wcmU+YDtcbiAgICAgICAgY2FzZSAnbGlzdCc6XG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBibG9jay5jb250ZW50LnNwbGl0KCdcXG4nKS5maWx0ZXIoaXRlbSA9PiBpdGVtLnRyaW0oKSk7XG4gICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RUYWcgPSBibG9jay5tZXRhZGF0YT8ubGlzdFR5cGUgPT09ICdvcmRlcmVkJyA/ICdvbCcgOiAndWwnO1xuICAgICAgICAgICAgLy8gRG9uJ3QgZXNjYXBlIEhUTUwgaW4gbGlzdCBpdGVtcyB0byBwcmVzZXJ2ZSBmb3JtYXR0aW5nXG4gICAgICAgICAgICByZXR1cm4gYDwke2xpc3RUYWd9PiR7aXRlbXMubWFwKGl0ZW0gPT4gYDxsaT4ke2l0ZW19PC9saT5gKS5qb2luKCcnKX08LyR7bGlzdFRhZ30+YDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICBjYXNlICdkaXZpZGVyJzpcbiAgICAgICAgICByZXR1cm4gJzxocj4nO1xuICAgICAgICBjYXNlICdpbWFnZSc6XG4gICAgICAgICAgY29uc3QgaW1hZ2VVcmwgPSBibG9jay5tZXRhZGF0YT8udXJsO1xuICAgICAgICAgIGlmIChpbWFnZVVybCkge1xuICAgICAgICAgICAgY29uc3QgYWx0VGV4dCA9IHRoaXMuZXNjYXBlSHRtbChibG9jay5jb250ZW50IHx8ICdJbWFnZScpO1xuICAgICAgICAgICAgcmV0dXJuIGA8aW1nIHNyYz1cIiR7aW1hZ2VVcmx9XCIgYWx0PVwiJHthbHRUZXh0fVwiIC8+YDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICBjYXNlICd5b3V0dWJlJzpcbiAgICAgICAgICBjb25zdCB2aWRlb0lkID0gYmxvY2subWV0YWRhdGE/LnZpZGVvSWQ7XG4gICAgICAgICAgaWYgKHZpZGVvSWQpIHtcbiAgICAgICAgICAgIHJldHVybiBgPGlmcmFtZSB3aWR0aD1cIjU2MFwiIGhlaWdodD1cIjMxNVwiIHNyYz1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7dmlkZW9JZH1cIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvdz1cImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmVcIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+YDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICBjYXNlICdtYXJrZG93bic6XG4gICAgICAgICAgLy8gUmV0dXJuIHRoZSByYXcgbWFya2Rvd24gY29udGVudCB3cmFwcGVkIGluIGEgZGl2XG4gICAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwibWFya2Rvd24tY29udGVudFwiPiR7dGhpcy5lc2NhcGVIdG1sKGJsb2NrLmNvbnRlbnQpfTwvZGl2PmA7XG4gICAgICAgIGNhc2UgJ2h0bWwnOlxuICAgICAgICAgIC8vIFJldHVybiB0aGUgcmF3IEhUTUwgY29udGVudCAoYWxyZWFkeSBIVE1MKVxuICAgICAgICAgIHJldHVybiBibG9jay5jb250ZW50O1xuICAgICAgICBjYXNlICdhdHRhY2htZW50JzpcbiAgICAgICAgICBjb25zdCBmaWxlcyA9IGJsb2NrLm1ldGFkYXRhPy5maWxlcyB8fCBbXTtcbiAgICAgICAgICBpZiAoZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudHNcIj4ke2ZpbGVzLm1hcCgoZmlsZTogYW55KSA9PiBcbiAgICAgICAgICAgICAgYDxkaXYgY2xhc3M9XCJhdHRhY2htZW50LWl0ZW1cIiBkYXRhLWZpbGUtaWQ9XCIke2ZpbGUuaWR9XCI+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiR7ZmlsZS5kYXRhfVwiIGRvd25sb2FkPVwiJHtmaWxlLm5hbWV9XCI+JHt0aGlzLmVzY2FwZUh0bWwoZmlsZS5uYW1lKX08L2E+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLXNpemVcIj4oJHt0aGlzLmZvcm1hdEZpbGVTaXplKGZpbGUuc2l6ZSl9KTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICAgICAgKS5qb2luKCcnKX08L2Rpdj5gO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGA8cD4ke2NvbnRlbnR9PC9wPmA7XG4gICAgICB9XG4gICAgfSkuZmlsdGVyKGh0bWwgPT4gaHRtbCAhPT0gJycpLmpvaW4oJ1xcbicpO1xuICB9XG5cbiAgc3RhdGljIGdldE1hcmtkb3duT3V0cHV0KGJsb2NrczogSUJsb2NrW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBibG9ja3MubWFwKGJsb2NrID0+IHtcbiAgICAgIHN3aXRjaCAoYmxvY2sudHlwZSkge1xuICAgICAgICBjYXNlICdwYXJhZ3JhcGgnOlxuICAgICAgICAgIHJldHVybiBibG9jay5jb250ZW50O1xuICAgICAgICBjYXNlICdoZWFkaW5nLTEnOlxuICAgICAgICAgIHJldHVybiBgIyAke2Jsb2NrLmNvbnRlbnR9YDtcbiAgICAgICAgY2FzZSAnaGVhZGluZy0yJzpcbiAgICAgICAgICByZXR1cm4gYCMjICR7YmxvY2suY29udGVudH1gO1xuICAgICAgICBjYXNlICdoZWFkaW5nLTMnOlxuICAgICAgICAgIHJldHVybiBgIyMjICR7YmxvY2suY29udGVudH1gO1xuICAgICAgICBjYXNlICdxdW90ZSc6XG4gICAgICAgICAgcmV0dXJuIGA+ICR7YmxvY2suY29udGVudH1gO1xuICAgICAgICBjYXNlICdjb2RlJzpcbiAgICAgICAgICByZXR1cm4gYFxcYFxcYFxcYFxcbiR7YmxvY2suY29udGVudH1cXG5cXGBcXGBcXGBgO1xuICAgICAgICBjYXNlICdsaXN0JzpcbiAgICAgICAgICBjb25zdCBpdGVtcyA9IGJsb2NrLmNvbnRlbnQuc3BsaXQoJ1xcbicpLmZpbHRlcihpdGVtID0+IGl0ZW0udHJpbSgpKTtcbiAgICAgICAgICBpZiAoYmxvY2subWV0YWRhdGE/Lmxpc3RUeXBlID09PSAnb3JkZXJlZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiBgJHtpbmRleCArIDF9LiAke2l0ZW19YCkuam9pbignXFxuJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoaXRlbSA9PiBgLSAke2l0ZW19YCkuam9pbignXFxuJyk7XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlICdkaXZpZGVyJzpcbiAgICAgICAgICByZXR1cm4gJy0tLSc7XG4gICAgICAgIGNhc2UgJ2ltYWdlJzpcbiAgICAgICAgICBjb25zdCBpbWFnZVVybCA9IGJsb2NrLm1ldGFkYXRhPy51cmw7XG4gICAgICAgICAgY29uc3QgYWx0VGV4dCA9IGJsb2NrLmNvbnRlbnQgfHwgJ0ltYWdlJztcbiAgICAgICAgICByZXR1cm4gaW1hZ2VVcmwgPyBgIVske2FsdFRleHR9XSgke2ltYWdlVXJsfSlgIDogJyc7XG4gICAgICAgIGNhc2UgJ3lvdXR1YmUnOlxuICAgICAgICAgIGNvbnN0IHZpZGVvSWQgPSBibG9jay5tZXRhZGF0YT8udmlkZW9JZDtcbiAgICAgICAgICBjb25zdCB1cmwgPSBibG9jay5tZXRhZGF0YT8udXJsIHx8ICh2aWRlb0lkID8gYGh0dHBzOi8veW91dHViZS5jb20vd2F0Y2g/dj0ke3ZpZGVvSWR9YCA6ICcnKTtcbiAgICAgICAgICByZXR1cm4gdXJsID8gYFtZb3VUdWJlIFZpZGVvXSgke3VybH0pYCA6ICcnO1xuICAgICAgICBjYXNlICdtYXJrZG93bic6XG4gICAgICAgICAgLy8gUmV0dXJuIHRoZSByYXcgbWFya2Rvd24gY29udGVudFxuICAgICAgICAgIHJldHVybiBibG9jay5jb250ZW50O1xuICAgICAgICBjYXNlICdodG1sJzpcbiAgICAgICAgICAvLyBSZXR1cm4gYXMgSFRNTCBjb21tZW50IGluIG1hcmtkb3duXG4gICAgICAgICAgcmV0dXJuIGA8IS0tIEhUTUwgQmxvY2tcXG4ke2Jsb2NrLmNvbnRlbnR9XFxuLS0+YDtcbiAgICAgICAgY2FzZSAnYXR0YWNobWVudCc6XG4gICAgICAgICAgY29uc3QgZmlsZXMgPSBibG9jay5tZXRhZGF0YT8uZmlsZXMgfHwgW107XG4gICAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmaWxlcy5tYXAoKGZpbGU6IGFueSkgPT4gYC0gWyR7ZmlsZS5uYW1lfV0oJHtmaWxlLmRhdGF9KWApLmpvaW4oJ1xcbicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGJsb2NrLmNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSkuZmlsdGVyKG1kID0+IG1kICE9PSAnJykuam9pbignXFxuXFxuJyk7XG4gIH1cblxuICBzdGF0aWMgcGFyc2VIdG1sVG9CbG9ja3MoaHRtbDogc3RyaW5nKTogSUJsb2NrW10ge1xuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcbiAgICBjb25zdCBkb2MgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKGh0bWwsICd0ZXh0L2h0bWwnKTtcbiAgICBjb25zdCBibG9ja3M6IElCbG9ja1tdID0gW107XG4gICAgXG4gICAgY29uc3QgcHJvY2Vzc05vZGUgPSAobm9kZTogTm9kZSkgPT4ge1xuICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFICYmIG5vZGUudGV4dENvbnRlbnQ/LnRyaW0oKSkge1xuICAgICAgICBibG9ja3MucHVzaCh7XG4gICAgICAgICAgaWQ6IGBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfWAsXG4gICAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgICAgY29udGVudDogbm9kZS50ZXh0Q29udGVudC50cmltKCksXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gbm9kZSBhcyBFbGVtZW50O1xuICAgICAgICBjb25zdCB0YWdOYW1lID0gZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIFxuICAgICAgICBzd2l0Y2ggKHRhZ05hbWUpIHtcbiAgICAgICAgICBjYXNlICdwJzpcbiAgICAgICAgICAgIGJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IGBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfWAsXG4gICAgICAgICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICAgICAgICBjb250ZW50OiBlbGVtZW50LmlubmVySFRNTCB8fCAnJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnaDEnOlxuICAgICAgICAgICAgYmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICBpZDogYGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgOSl9YCxcbiAgICAgICAgICAgICAgdHlwZTogJ2hlYWRpbmctMScsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGVsZW1lbnQuaW5uZXJIVE1MIHx8ICcnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdoMic6XG4gICAgICAgICAgICBibG9ja3MucHVzaCh7XG4gICAgICAgICAgICAgIGlkOiBgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX1gLFxuICAgICAgICAgICAgICB0eXBlOiAnaGVhZGluZy0yJyxcbiAgICAgICAgICAgICAgY29udGVudDogZWxlbWVudC5pbm5lckhUTUwgfHwgJycsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2gzJzpcbiAgICAgICAgICAgIGJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IGBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfWAsXG4gICAgICAgICAgICAgIHR5cGU6ICdoZWFkaW5nLTMnLFxuICAgICAgICAgICAgICBjb250ZW50OiBlbGVtZW50LmlubmVySFRNTCB8fCAnJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYmxvY2txdW90ZSc6XG4gICAgICAgICAgICBibG9ja3MucHVzaCh7XG4gICAgICAgICAgICAgIGlkOiBgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX1gLFxuICAgICAgICAgICAgICB0eXBlOiAncXVvdGUnLFxuICAgICAgICAgICAgICBjb250ZW50OiBlbGVtZW50LmlubmVySFRNTCB8fCAnJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncHJlJzpcbiAgICAgICAgICBjYXNlICdjb2RlJzpcbiAgICAgICAgICAgIGJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IGBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfWAsXG4gICAgICAgICAgICAgIHR5cGU6ICdjb2RlJyxcbiAgICAgICAgICAgICAgY29udGVudDogZWxlbWVudC50ZXh0Q29udGVudCB8fCAnJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndWwnOlxuICAgICAgICAgIGNhc2UgJ29sJzpcbiAgICAgICAgICAgIGNvbnN0IGxpc3RJdGVtcyA9IEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaScpKTtcbiAgICAgICAgICAgIC8vIFVzZSBpbm5lckhUTUwgdG8gcHJlc2VydmUgZm9ybWF0dGluZ1xuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGxpc3RJdGVtcy5tYXAobGkgPT4gbGkuaW5uZXJIVE1MIHx8ICcnKS5qb2luKCdcXG4nKTtcbiAgICAgICAgICAgIGJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IGBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfWAsXG4gICAgICAgICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgICAgICAgY29udGVudDogY29udGVudCxcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IHsgbGlzdFR5cGU6IHRhZ05hbWUgPT09ICdvbCcgPyAnb3JkZXJlZCcgOiAnYnVsbGV0JyB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2hyJzpcbiAgICAgICAgICAgIGJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IGBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfWAsXG4gICAgICAgICAgICAgIHR5cGU6ICdkaXZpZGVyJyxcbiAgICAgICAgICAgICAgY29udGVudDogJyAnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdpbWcnOlxuICAgICAgICAgICAgY29uc3QgaW1nRWxlbWVudCA9IGVsZW1lbnQgYXMgSFRNTEltYWdlRWxlbWVudDtcbiAgICAgICAgICAgIGJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IGBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfWAsXG4gICAgICAgICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGltZ0VsZW1lbnQuYWx0IHx8ICcnLFxuICAgICAgICAgICAgICBtZXRhZGF0YTogeyB1cmw6IGltZ0VsZW1lbnQuc3JjIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIFByb2Nlc3MgY2hpbGRyZW4gZm9yIG90aGVyIGVsZW1lbnRzXG4gICAgICAgICAgICBlbGVtZW50LmNoaWxkTm9kZXMuZm9yRWFjaChjaGlsZCA9PiBwcm9jZXNzTm9kZShjaGlsZCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICBcbiAgICBkb2MuYm9keS5jaGlsZE5vZGVzLmZvckVhY2gobm9kZSA9PiBwcm9jZXNzTm9kZShub2RlKSk7XG4gICAgcmV0dXJuIGJsb2NrcztcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZU1hcmtkb3duVG9CbG9ja3MobWFya2Rvd246IHN0cmluZyk6IElCbG9ja1tdIHtcbiAgICBjb25zdCBsaW5lcyA9IG1hcmtkb3duLnNwbGl0KCdcXG4nKTtcbiAgICBjb25zdCBibG9ja3M6IElCbG9ja1tdID0gW107XG4gICAgbGV0IGN1cnJlbnRMaXN0SXRlbXM6IHN0cmluZ1tdID0gW107XG4gICAgXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgbGluZSA9IGxpbmVzW2ldO1xuICAgICAgXG4gICAgICBpZiAobGluZS5zdGFydHNXaXRoKCcjICcpKSB7XG4gICAgICAgIGJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICBpZDogYGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgOSl9YCxcbiAgICAgICAgICB0eXBlOiAnaGVhZGluZy0xJyxcbiAgICAgICAgICBjb250ZW50OiBsaW5lLnN1YnN0cmluZygyKSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aCgnIyMgJykpIHtcbiAgICAgICAgYmxvY2tzLnB1c2goe1xuICAgICAgICAgIGlkOiBgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX1gLFxuICAgICAgICAgIHR5cGU6ICdoZWFkaW5nLTInLFxuICAgICAgICAgIGNvbnRlbnQ6IGxpbmUuc3Vic3RyaW5nKDMpLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAobGluZS5zdGFydHNXaXRoKCcjIyMgJykpIHtcbiAgICAgICAgYmxvY2tzLnB1c2goe1xuICAgICAgICAgIGlkOiBgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX1gLFxuICAgICAgICAgIHR5cGU6ICdoZWFkaW5nLTMnLFxuICAgICAgICAgIGNvbnRlbnQ6IGxpbmUuc3Vic3RyaW5nKDQpLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAobGluZS5zdGFydHNXaXRoKCc+ICcpKSB7XG4gICAgICAgIGJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICBpZDogYGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgOSl9YCxcbiAgICAgICAgICB0eXBlOiAncXVvdGUnLFxuICAgICAgICAgIGNvbnRlbnQ6IGxpbmUuc3Vic3RyaW5nKDIpLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAobGluZS5zdGFydHNXaXRoKCdgYGAnKSkge1xuICAgICAgICBjb25zdCBjb2RlTGluZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGkrKztcbiAgICAgICAgd2hpbGUgKGkgPCBsaW5lcy5sZW5ndGggJiYgIWxpbmVzW2ldLnN0YXJ0c1dpdGgoJ2BgYCcpKSB7XG4gICAgICAgICAgY29kZUxpbmVzLnB1c2gobGluZXNbaV0pO1xuICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICBibG9ja3MucHVzaCh7XG4gICAgICAgICAgaWQ6IGBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfWAsXG4gICAgICAgICAgdHlwZTogJ2NvZGUnLFxuICAgICAgICAgIGNvbnRlbnQ6IGNvZGVMaW5lcy5qb2luKCdcXG4nKSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGxpbmUubWF0Y2goL14oXFwqfC0pIC8pKSB7XG4gICAgICAgIGN1cnJlbnRMaXN0SXRlbXMucHVzaChsaW5lLnN1YnN0cmluZygyKSk7XG4gICAgICAgIC8vIENoZWNrIGlmIG5leHQgbGluZSBpcyBub3QgYSBsaXN0IGl0ZW1cbiAgICAgICAgaWYgKGkgPT09IGxpbmVzLmxlbmd0aCAtIDEgfHwgKCFsaW5lc1tpICsgMV0ubWF0Y2goL14oXFwqfC0pIC8pKSkge1xuICAgICAgICAgIGJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgIGlkOiBgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX1gLFxuICAgICAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICAgICAgY29udGVudDogY3VycmVudExpc3RJdGVtcy5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7IGxpc3RUeXBlOiAnYnVsbGV0JyB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY3VycmVudExpc3RJdGVtcyA9IFtdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGxpbmUubWF0Y2goL15cXGQrXFwuIC8pKSB7XG4gICAgICAgIGN1cnJlbnRMaXN0SXRlbXMucHVzaChsaW5lLnJlcGxhY2UoL15cXGQrXFwuIC8sICcnKSk7XG4gICAgICAgIC8vIENoZWNrIGlmIG5leHQgbGluZSBpcyBub3QgYSBudW1iZXJlZCBsaXN0IGl0ZW1cbiAgICAgICAgaWYgKGkgPT09IGxpbmVzLmxlbmd0aCAtIDEgfHwgKCFsaW5lc1tpICsgMV0ubWF0Y2goL15cXGQrXFwuIC8pKSkge1xuICAgICAgICAgIGJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgIGlkOiBgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX1gLFxuICAgICAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICAgICAgY29udGVudDogY3VycmVudExpc3RJdGVtcy5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7IGxpc3RUeXBlOiAnb3JkZXJlZCcgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGN1cnJlbnRMaXN0SXRlbXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChsaW5lID09PSAnLS0tJyB8fCBsaW5lID09PSAnKioqJyB8fCBsaW5lID09PSAnX19fJykge1xuICAgICAgICBibG9ja3MucHVzaCh7XG4gICAgICAgICAgaWQ6IGBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfWAsXG4gICAgICAgICAgdHlwZTogJ2RpdmlkZXInLFxuICAgICAgICAgIGNvbnRlbnQ6ICcgJyxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGxpbmUubWF0Y2goL14hXFxbKFteXFxdXSopXFxdXFwoKFteXFwpXSspXFwpJC8pKSB7XG4gICAgICAgIC8vIFBhcnNlIG1hcmtkb3duIGltYWdlIHN5bnRheCAhW2FsdF0odXJsKVxuICAgICAgICBjb25zdCBtYXRjaCA9IGxpbmUubWF0Y2goL14hXFxbKFteXFxdXSopXFxdXFwoKFteXFwpXSspXFwpJC8pO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICBibG9ja3MucHVzaCh7XG4gICAgICAgICAgICBpZDogYGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgOSl9YCxcbiAgICAgICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgICAgICBjb250ZW50OiBtYXRjaFsxXSB8fCAnJyxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7IHVybDogbWF0Y2hbMl0gfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGxpbmUudHJpbSgpKSB7XG4gICAgICAgIGJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICBpZDogYGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgOSl9YCxcbiAgICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgICBjb250ZW50OiBsaW5lLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGJsb2NrcztcbiAgfVxufSIsICJpbXBvcnQgeyBodG1sLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IHR5cGUgSUJsb2NrIH0gZnJvbSAnLi93eXNpd3lnLnR5cGVzLmpzJztcbmltcG9ydCB7IFd5c2l3eWdDb252ZXJ0ZXJzIH0gZnJvbSAnLi93eXNpd3lnLmNvbnZlcnRlcnMuanMnO1xuXG5leHBvcnQgY2xhc3MgV3lzaXd5Z0Jsb2NrcyB7XG4gIHN0YXRpYyByZW5kZXJMaXN0Q29udGVudChjb250ZW50OiBzdHJpbmcsIG1ldGFkYXRhPzogYW55KTogc3RyaW5nIHtcbiAgICBjb25zdCBpdGVtcyA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpLmZpbHRlcihpdGVtID0+IGl0ZW0udHJpbSgpKTtcbiAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7XG4gICAgY29uc3QgbGlzdFRhZyA9IG1ldGFkYXRhPy5saXN0VHlwZSA9PT0gJ29yZGVyZWQnID8gJ29sJyA6ICd1bCc7XG4gICAgLy8gRG9uJ3QgZXNjYXBlIEhUTUwgdG8gcHJlc2VydmUgZm9ybWF0dGluZ1xuICAgIHJldHVybiBgPCR7bGlzdFRhZ30+JHtpdGVtcy5tYXAoaXRlbSA9PiBgPGxpPiR7aXRlbX08L2xpPmApLmpvaW4oJycpfTwvJHtsaXN0VGFnfT5gO1xuICB9XG5cbiAgc3RhdGljIHJlbmRlckJsb2NrKFxuICAgIGJsb2NrOiBJQmxvY2ssXG4gICAgaXNTZWxlY3RlZDogYm9vbGVhbixcbiAgICBoYW5kbGVyczoge1xuICAgICAgb25JbnB1dDogKGU6IElucHV0RXZlbnQpID0+IHZvaWQ7XG4gICAgICBvbktleURvd246IChlOiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuICAgICAgb25Gb2N1czogKCkgPT4gdm9pZDtcbiAgICAgIG9uQmx1cjogKCkgPT4gdm9pZDtcbiAgICAgIG9uQ29tcG9zaXRpb25TdGFydDogKCkgPT4gdm9pZDtcbiAgICAgIG9uQ29tcG9zaXRpb25FbmQ6ICgpID0+IHZvaWQ7XG4gICAgICBvbk1vdXNlVXA/OiAoZTogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICB9XG4gICk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBpZiAoYmxvY2sudHlwZSA9PT0gJ2RpdmlkZXInKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYmxvY2sgZGl2aWRlclwiXG4gICAgICAgICAgZGF0YS1ibG9jay1pZD1cIiR7YmxvY2suaWR9XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxocj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cblxuICAgIGlmIChibG9jay50eXBlID09PSAnbGlzdCcpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJibG9jayBsaXN0ICR7aXNTZWxlY3RlZCA/ICdzZWxlY3RlZCcgOiAnJ31cIlxuICAgICAgICAgIGRhdGEtYmxvY2staWQ9XCIke2Jsb2NrLmlkfVwiXG4gICAgICAgICAgY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgQGlucHV0PVwiJHtoYW5kbGVycy5vbklucHV0fVwiXG4gICAgICAgICAgQGtleWRvd249XCIke2hhbmRsZXJzLm9uS2V5RG93bn1cIlxuICAgICAgICAgIEBmb2N1cz1cIiR7aGFuZGxlcnMub25Gb2N1c31cIlxuICAgICAgICAgIEBibHVyPVwiJHtoYW5kbGVycy5vbkJsdXJ9XCJcbiAgICAgICAgICBAY29tcG9zaXRpb25zdGFydD1cIiR7aGFuZGxlcnMub25Db21wb3NpdGlvblN0YXJ0fVwiXG4gICAgICAgICAgQGNvbXBvc2l0aW9uZW5kPVwiJHtoYW5kbGVycy5vbkNvbXBvc2l0aW9uRW5kfVwiXG4gICAgICAgICAgQG1vdXNldXA9XCIkeyhlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0Jsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQnKTtcbiAgICAgICAgICBpZiAoaGFuZGxlcnMub25Nb3VzZVVwKSBoYW5kbGVycy5vbk1vdXNlVXAoZSk7XG4gICAgICAgIH19XCJcbiAgICAgICAgICAuaW5uZXJIVE1MPVwiJHt0aGlzLnJlbmRlckxpc3RDb250ZW50KGJsb2NrLmNvbnRlbnQsIGJsb2NrLm1ldGFkYXRhKX1cIlxuICAgICAgICA+PC9kaXY+XG4gICAgICBgO1xuICAgIH1cbiAgICBcbiAgICAvLyBTcGVjaWFsIHJlbmRlcmluZyBmb3IgY29kZSBibG9ja3Mgd2l0aCBsYW5ndWFnZSBpbmRpY2F0b3JcbiAgICBpZiAoYmxvY2sudHlwZSA9PT0gJ2NvZGUnKSB7XG4gICAgICBjb25zdCBsYW5ndWFnZSA9IGJsb2NrLm1ldGFkYXRhPy5sYW5ndWFnZSB8fCAncGxhaW4gdGV4dCc7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvZGUtYmxvY2stY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvZGUtbGFuZ3VhZ2VcIj4ke2xhbmd1YWdlfTwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYmxvY2sgJHtibG9jay50eXBlfSAke2lzU2VsZWN0ZWQgPyAnc2VsZWN0ZWQnIDogJyd9XCJcbiAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT1cInRydWVcIlxuICAgICAgICAgICAgQGlucHV0PVwiJHtoYW5kbGVycy5vbklucHV0fVwiXG4gICAgICAgICAgICBAa2V5ZG93bj1cIiR7aGFuZGxlcnMub25LZXlEb3dufVwiXG4gICAgICAgICAgICBAZm9jdXM9XCIke2hhbmRsZXJzLm9uRm9jdXN9XCJcbiAgICAgICAgICAgIEBibHVyPVwiJHtoYW5kbGVycy5vbkJsdXJ9XCJcbiAgICAgICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PVwiJHtoYW5kbGVycy5vbkNvbXBvc2l0aW9uU3RhcnR9XCJcbiAgICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD1cIiR7aGFuZGxlcnMub25Db21wb3NpdGlvbkVuZH1cIlxuICAgICAgICAgICAgQG1vdXNldXA9XCIkeyhlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkJyk7XG4gICAgICAgICAgICAgIGlmIChoYW5kbGVycy5vbk1vdXNlVXApIGhhbmRsZXJzLm9uTW91c2VVcChlKTtcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIC50ZXh0Q29udGVudD1cIiR7YmxvY2suY29udGVudCB8fCAnJ31cIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBibG9ja0VsZW1lbnQgPSBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImJsb2NrICR7YmxvY2sudHlwZX0gJHtpc1NlbGVjdGVkID8gJ3NlbGVjdGVkJyA6ICcnfVwiXG4gICAgICAgIGNvbnRlbnRlZGl0YWJsZT1cInRydWVcIlxuICAgICAgICBAaW5wdXQ9XCIke2hhbmRsZXJzLm9uSW5wdXR9XCJcbiAgICAgICAgQGtleWRvd249XCIke2hhbmRsZXJzLm9uS2V5RG93bn1cIlxuICAgICAgICBAZm9jdXM9XCIke2hhbmRsZXJzLm9uRm9jdXN9XCJcbiAgICAgICAgQGJsdXI9XCIke2hhbmRsZXJzLm9uQmx1cn1cIlxuICAgICAgICBAY29tcG9zaXRpb25zdGFydD1cIiR7aGFuZGxlcnMub25Db21wb3NpdGlvblN0YXJ0fVwiXG4gICAgICAgIEBjb21wb3NpdGlvbmVuZD1cIiR7aGFuZGxlcnMub25Db21wb3NpdGlvbkVuZH1cIlxuICAgICAgICBAbW91c2V1cD1cIiR7KGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnQmxvY2sgbW91c2V1cCBldmVudCBmaXJlZCcpO1xuICAgICAgICAgIGlmIChoYW5kbGVycy5vbk1vdXNlVXApIGhhbmRsZXJzLm9uTW91c2VVcChlKTtcbiAgICAgICAgfX1cIlxuICAgICAgICAuaW5uZXJIVE1MPVwiJHtibG9jay5jb250ZW50IHx8ICcnfVwiXG4gICAgICA+PC9kaXY+XG4gICAgYDtcbiAgICBcbiAgICByZXR1cm4gYmxvY2tFbGVtZW50O1xuICB9XG5cbiAgc3RhdGljIHNldEN1cnNvclRvRW5kKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmICghc2VsKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgIFxuICAgIC8vIEhhbmRsZSBkaWZmZXJlbnQgY29udGVudCB0eXBlc1xuICAgIGlmIChlbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBFbXB0eSBlbGVtZW50IC0gYWRkIGEgemVyby13aWR0aCBzcGFjZSB0byBlbmFibGUgY3Vyc29yXG4gICAgICBjb25zdCB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdcXHUyMDBCJyk7XG4gICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHRleHROb2RlKTtcbiAgICAgIHJhbmdlLnNldFN0YXJ0KHRleHROb2RlLCAxKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGaW5kIHRoZSBsYXN0IHRleHQgbm9kZSBvciBlbGVtZW50XG4gICAgICBjb25zdCBsYXN0Tm9kZSA9IHRoaXMuZ2V0TGFzdE5vZGUoZWxlbWVudCk7XG4gICAgICBpZiAobGFzdE5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICAgIHJhbmdlLnNldFN0YXJ0KGxhc3ROb2RlLCBsYXN0Tm9kZS50ZXh0Q29udGVudD8ubGVuZ3RoIHx8IDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnRBZnRlcihsYXN0Tm9kZSk7XG4gICAgICB9XG4gICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKTtcbiAgICB9XG4gICAgXG4gICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIHNlbC5hZGRSYW5nZShyYW5nZSk7XG4gICAgXG4gICAgLy8gUmVtb3ZlIHplcm8td2lkdGggc3BhY2UgaWYgaXQgd2FzIGFkZGVkXG4gICAgaWYgKGVsZW1lbnQudGV4dENvbnRlbnQgPT09ICdcXHUyMDBCJykge1xuICAgICAgZWxlbWVudC50ZXh0Q29udGVudCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBzZXRDdXJzb3JUb1N0YXJ0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmICghc2VsKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgIFxuICAgIC8vIEhhbmRsZSBkaWZmZXJlbnQgY29udGVudCB0eXBlc1xuICAgIGlmIChlbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBFbXB0eSBlbGVtZW50XG4gICAgICByYW5nZS5zZXRTdGFydChlbGVtZW50LCAwKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGaW5kIHRoZSBmaXJzdCB0ZXh0IG5vZGUgb3IgZWxlbWVudFxuICAgICAgY29uc3QgZmlyc3ROb2RlID0gdGhpcy5nZXRGaXJzdE5vZGUoZWxlbWVudCk7XG4gICAgICBpZiAoZmlyc3ROb2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICByYW5nZS5zZXRTdGFydChmaXJzdE5vZGUsIDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnRCZWZvcmUoZmlyc3ROb2RlKTtcbiAgICAgIH1cbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgIH1cbiAgICBcbiAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgc2VsLmFkZFJhbmdlKHJhbmdlKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0TGFzdE5vZGUoZWxlbWVudDogTm9kZSk6IE5vZGUge1xuICAgIGlmIChlbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgbGFzdENoaWxkID0gZWxlbWVudC5jaGlsZE5vZGVzW2VsZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGggLSAxXTtcbiAgICBpZiAobGFzdENoaWxkLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSB8fCBsYXN0Q2hpbGQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBsYXN0Q2hpbGQ7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiB0aGlzLmdldExhc3ROb2RlKGxhc3RDaGlsZCk7XG4gIH1cbiAgXG4gIHByaXZhdGUgc3RhdGljIGdldEZpcnN0Tm9kZShlbGVtZW50OiBOb2RlKTogTm9kZSB7XG4gICAgaWYgKGVsZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBmaXJzdENoaWxkID0gZWxlbWVudC5jaGlsZE5vZGVzWzBdO1xuICAgIGlmIChmaXJzdENoaWxkLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSB8fCBmaXJzdENoaWxkLmNoaWxkTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZmlyc3RDaGlsZDtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHRoaXMuZ2V0Rmlyc3ROb2RlKGZpcnN0Q2hpbGQpO1xuICB9XG5cbiAgc3RhdGljIGZvY3VzTGlzdEl0ZW0obGlzdEVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3RMaSA9IGxpc3RFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpJyk7XG4gICAgaWYgKGZpcnN0TGkpIHtcbiAgICAgIGZpcnN0TGkuZm9jdXMoKTtcbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhmaXJzdExpKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgc2VsIS5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIHNlbCEuYWRkUmFuZ2UocmFuZ2UpO1xuICAgIH1cbiAgfVxufSIsICJpbXBvcnQgeyB0eXBlIElCbG9jayB9IGZyb20gJy4vd3lzaXd5Zy50eXBlcy5qcyc7XG5pbXBvcnQgeyB0eXBlIElXeXNpd3lnQ29tcG9uZW50IH0gZnJvbSAnLi93eXNpd3lnLmludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgV3lzaXd5Z1Nob3J0Y3V0cyB9IGZyb20gJy4vd3lzaXd5Zy5zaG9ydGN1dHMuanMnO1xuaW1wb3J0IHsgV3lzaXd5Z0Jsb2NrcyB9IGZyb20gJy4vd3lzaXd5Zy5ibG9ja3MuanMnO1xuXG5leHBvcnQgY2xhc3MgV3lzaXd5Z0Jsb2NrT3BlcmF0aW9ucyB7XG4gIHByaXZhdGUgY29tcG9uZW50OiBJV3lzaXd5Z0NvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcihjb21wb25lbnQ6IElXeXNpd3lnQ29tcG9uZW50KSB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBibG9jayB3aXRoIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgKi9cbiAgY3JlYXRlQmxvY2sodHlwZTogSUJsb2NrWyd0eXBlJ10gPSAncGFyYWdyYXBoJywgY29udGVudDogc3RyaW5nID0gJycsIG1ldGFkYXRhPzogYW55KTogSUJsb2NrIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IFd5c2l3eWdTaG9ydGN1dHMuZ2VuZXJhdGVCbG9ja0lkKCksXG4gICAgICB0eXBlLFxuICAgICAgY29udGVudCxcbiAgICAgIC4uLihtZXRhZGF0YSAmJiB7IG1ldGFkYXRhIH0pXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnNlcnRzIGEgYmxvY2sgYWZ0ZXIgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKi9cbiAgYXN5bmMgaW5zZXJ0QmxvY2tBZnRlcihhZnRlckJsb2NrOiBJQmxvY2ssIG5ld0Jsb2NrOiBJQmxvY2ssIGZvY3VzTmV3QmxvY2s6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmxvY2tzID0gdGhpcy5jb21wb25lbnQuYmxvY2tzO1xuICAgIGNvbnN0IGJsb2NrSW5kZXggPSBibG9ja3MuZmluZEluZGV4KChiOiBJQmxvY2spID0+IGIuaWQgPT09IGFmdGVyQmxvY2suaWQpO1xuICAgIFxuICAgIHRoaXMuY29tcG9uZW50LmJsb2NrcyA9IFtcbiAgICAgIC4uLmJsb2Nrcy5zbGljZSgwLCBibG9ja0luZGV4ICsgMSksIFxuICAgICAgbmV3QmxvY2ssIFxuICAgICAgLi4uYmxvY2tzLnNsaWNlKGJsb2NrSW5kZXggKyAxKVxuICAgIF07XG4gICAgXG4gICAgLy8gSW5zZXJ0IHRoZSBuZXcgYmxvY2sgZWxlbWVudCBwcm9ncmFtbWF0aWNhbGx5IGlmIHdlIGhhdmUgdGhlIGVkaXRvclxuICAgIGlmICh0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKSB7XG4gICAgICBjb25zdCBhZnRlcldyYXBwZXIgPSB0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPVwiJHthZnRlckJsb2NrLmlkfVwiXWApO1xuICAgICAgaWYgKGFmdGVyV3JhcHBlcikge1xuICAgICAgICBjb25zdCBuZXdXcmFwcGVyID0gdGhpcy5jb21wb25lbnQuY3JlYXRlQmxvY2tFbGVtZW50KG5ld0Jsb2NrKTtcbiAgICAgICAgYWZ0ZXJXcmFwcGVyLmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJlbmQnLCBuZXdXcmFwcGVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtcbiAgICBcbiAgICBpZiAoZm9jdXNOZXdCbG9jayAmJiBuZXdCbG9jay50eXBlICE9PSAnZGl2aWRlcicpIHtcbiAgICAgIC8vIEdpdmUgRE9NIHRpbWUgdG8gc2V0dGxlXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMCkpO1xuICAgICAgXG4gICAgICAvLyBGb2N1cyB0aGUgbmV3IGJsb2NrXG4gICAgICBhd2FpdCB0aGlzLmZvY3VzQmxvY2sobmV3QmxvY2suaWQsICdzdGFydCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgYmxvY2sgYnkgaXRzIElEXG4gICAqL1xuICByZW1vdmVCbG9jayhibG9ja0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBTYXZlIGNoZWNrcG9pbnQgYmVmb3JlIGRlbGV0aW9uXG4gICAgdGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeShmYWxzZSk7XG4gICAgXG4gICAgdGhpcy5jb21wb25lbnQuYmxvY2tzID0gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbHRlcigoYjogSUJsb2NrKSA9PiBiLmlkICE9PSBibG9ja0lkKTtcbiAgICBcbiAgICAvLyBSZW1vdmUgdGhlIGJsb2NrIGVsZW1lbnQgcHJvZ3JhbW1hdGljYWxseSBpZiB3ZSBoYXZlIHRoZSBlZGl0b3JcbiAgICBpZiAodGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZikge1xuICAgICAgY29uc3Qgd3JhcHBlciA9IHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9XCIke2Jsb2NrSWR9XCJdYCk7XG4gICAgICBpZiAod3JhcHBlcikge1xuICAgICAgICB3cmFwcGVyLnJlbW92ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICB0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIGEgYmxvY2sgYnkgaXRzIElEXG4gICAqL1xuICBmaW5kQmxvY2soYmxvY2tJZDogc3RyaW5nKTogSUJsb2NrIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQoKGI6IElCbG9jaykgPT4gYi5pZCA9PT0gYmxvY2tJZCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaW5kZXggb2YgYSBibG9ja1xuICAgKi9cbiAgZ2V0QmxvY2tJbmRleChibG9ja0lkOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudC5ibG9ja3MuZmluZEluZGV4KChiOiBJQmxvY2spID0+IGIuaWQgPT09IGJsb2NrSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgYSBzcGVjaWZpYyBibG9ja1xuICAgKi9cbiAgYXN5bmMgZm9jdXNCbG9jayhibG9ja0lkOiBzdHJpbmcsIGN1cnNvclBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgfCBudW1iZXIgPSAnc3RhcnQnKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgd3JhcHBlckVsZW1lbnQgPSB0aGlzLmNvbXBvbmVudC5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD1cIiR7YmxvY2tJZH1cIl1gKTtcbiAgICBpZiAod3JhcHBlckVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGJsb2NrQ29tcG9uZW50ID0gd3JhcHBlckVsZW1lbnQucXVlcnlTZWxlY3RvcignZGVlcy13eXNpd3lnLWJsb2NrJykgYXMgYW55O1xuICAgICAgaWYgKGJsb2NrQ29tcG9uZW50KSB7XG4gICAgICAgIC8vIFdhaXQgYSBmcmFtZSB0byBlbnN1cmUgdGhlIGJsb2NrIGlzIHJlbmRlcmVkXG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29sdmUpKTtcbiAgICAgICAgXG4gICAgICAgIC8vIE5vdyBmb2N1cyB3aXRoIGN1cnNvciBwb3NpdGlvblxuICAgICAgICBibG9ja0NvbXBvbmVudC5mb2N1c1dpdGhDdXJzb3IoY3Vyc29yUG9zaXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjb250ZW50IG9mIGEgYmxvY2tcbiAgICovXG4gIHVwZGF0ZUJsb2NrQ29udGVudChibG9ja0lkOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGJsb2NrID0gdGhpcy5maW5kQmxvY2soYmxvY2tJZCk7XG4gICAgaWYgKGJsb2NrKSB7XG4gICAgICBibG9jay5jb250ZW50ID0gY29udGVudDtcbiAgICAgIHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgYSBibG9jayB0byBhIGRpZmZlcmVudCB0eXBlXG4gICAqL1xuICB0cmFuc2Zvcm1CbG9jayhibG9ja0lkOiBzdHJpbmcsIG5ld1R5cGU6IElCbG9ja1sndHlwZSddLCBtZXRhZGF0YT86IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGJsb2NrID0gdGhpcy5maW5kQmxvY2soYmxvY2tJZCk7XG4gICAgaWYgKGJsb2NrKSB7XG4gICAgICAvLyBTYXZlIGNoZWNrcG9pbnQgYmVmb3JlIHRyYW5zZm9ybWF0aW9uXG4gICAgICB0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KGZhbHNlKTtcbiAgICAgIFxuICAgICAgYmxvY2sudHlwZSA9IG5ld1R5cGU7XG4gICAgICBibG9jay5jb250ZW50ID0gJyc7XG4gICAgICBpZiAobWV0YWRhdGEpIHtcbiAgICAgICAgYmxvY2subWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gVXBkYXRlIHRoZSBibG9jayBlbGVtZW50IHByb2dyYW1tYXRpY2FsbHkgaWYgd2UgaGF2ZSB0aGUgZWRpdG9yXG4gICAgICBpZiAodGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZikge1xuICAgICAgICB0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoYmxvY2tJZCk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vdmVzIGEgYmxvY2sgdG8gYSBuZXcgcG9zaXRpb25cbiAgICovXG4gIG1vdmVCbG9jayhibG9ja0lkOiBzdHJpbmcsIHRhcmdldEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBibG9ja3MgPSBbLi4udGhpcy5jb21wb25lbnQuYmxvY2tzXTtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmdldEJsb2NrSW5kZXgoYmxvY2tJZCk7XG4gICAgXG4gICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gLTEgfHwgdGFyZ2V0SW5kZXggPCAwIHx8IHRhcmdldEluZGV4ID49IGJsb2Nrcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgW21vdmVkQmxvY2tdID0gYmxvY2tzLnNwbGljZShjdXJyZW50SW5kZXgsIDEpO1xuICAgIGJsb2Nrcy5zcGxpY2UodGFyZ2V0SW5kZXgsIDAsIG1vdmVkQmxvY2spO1xuICAgIFxuICAgIHRoaXMuY29tcG9uZW50LmJsb2NrcyA9IGJsb2NrcztcbiAgICB0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHByZXZpb3VzIGJsb2NrXG4gICAqL1xuICBnZXRQcmV2aW91c0Jsb2NrKGJsb2NrSWQ6IHN0cmluZyk6IElCbG9jayB8IG51bGwge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRCbG9ja0luZGV4KGJsb2NrSWQpO1xuICAgIHJldHVybiBpbmRleCA+IDAgPyB0aGlzLmNvbXBvbmVudC5ibG9ja3NbaW5kZXggLSAxXSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbmV4dCBibG9ja1xuICAgKi9cbiAgZ2V0TmV4dEJsb2NrKGJsb2NrSWQ6IHN0cmluZyk6IElCbG9jayB8IG51bGwge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRCbG9ja0luZGV4KGJsb2NrSWQpO1xuICAgIHJldHVybiBpbmRleCA8IHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGggLSAxID8gdGhpcy5jb21wb25lbnQuYmxvY2tzW2luZGV4ICsgMV0gOiBudWxsO1xuICB9XG59IiwgImltcG9ydCB0eXBlIHsgSUJsb2NrIH0gZnJvbSAnLi4vd3lzaXd5Zy50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IElCbG9ja0V2ZW50SGFuZGxlcnMgfSBmcm9tICcuLi93eXNpd3lnLmludGVyZmFjZXMuanMnO1xuXG4vLyBSZS1leHBvcnQgdHlwZXMgZnJvbSB0aGUgaW50ZXJmYWNlc1xuZXhwb3J0IHR5cGUgeyBJQmxvY2tFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi4vd3lzaXd5Zy5pbnRlcmZhY2VzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQmxvY2tDb250ZXh0IHtcbiAgc2hhZG93Um9vdDogU2hhZG93Um9vdDtcbiAgY29tcG9uZW50OiBhbnk7IC8vIFJlZmVyZW5jZSB0byB0aGUgd3lzaXd5Zy1ibG9jayBjb21wb25lbnRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQmxvY2tIYW5kbGVyIHtcbiAgdHlwZTogc3RyaW5nO1xuICByZW5kZXIoYmxvY2s6IElCbG9jaywgaXNTZWxlY3RlZDogYm9vbGVhbik6IHN0cmluZztcbiAgc2V0dXAoZWxlbWVudDogSFRNTEVsZW1lbnQsIGJsb2NrOiBJQmxvY2ssIGhhbmRsZXJzOiBJQmxvY2tFdmVudEhhbmRsZXJzKTogdm9pZDtcbiAgZ2V0U3R5bGVzKCk6IHN0cmluZztcbiAgZ2V0UGxhY2Vob2xkZXI/KCk6IHN0cmluZztcbiAgXG4gIC8vIE9wdGlvbmFsIG1ldGhvZHMgZm9yIGVkaXRhYmxlIGJsb2NrcyAtIG5vdyB3aXRoIGNvbnRleHRcbiAgZ2V0Q29udGVudD8oZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBJQmxvY2tDb250ZXh0KTogc3RyaW5nO1xuICBzZXRDb250ZW50PyhlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGVudDogc3RyaW5nLCBjb250ZXh0PzogSUJsb2NrQ29udGV4dCk6IHZvaWQ7XG4gIGdldEN1cnNvclBvc2l0aW9uPyhlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dD86IElCbG9ja0NvbnRleHQpOiBudW1iZXIgfCBudWxsO1xuICBzZXRDdXJzb3JUb1N0YXJ0PyhlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dD86IElCbG9ja0NvbnRleHQpOiB2b2lkO1xuICBzZXRDdXJzb3JUb0VuZD8oZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBJQmxvY2tDb250ZXh0KTogdm9pZDtcbiAgZm9jdXM/KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0PzogSUJsb2NrQ29udGV4dCk6IHZvaWQ7XG4gIGZvY3VzV2l0aEN1cnNvcj8oZWxlbWVudDogSFRNTEVsZW1lbnQsIHBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgfCBudW1iZXIsIGNvbnRleHQ/OiBJQmxvY2tDb250ZXh0KTogdm9pZDtcbiAgZ2V0U3BsaXRDb250ZW50PyhlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dD86IElCbG9ja0NvbnRleHQpOiB7IGJlZm9yZTogc3RyaW5nOyBhZnRlcjogc3RyaW5nIH0gfCBudWxsO1xufVxuXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQmxvY2tIYW5kbGVyIGltcGxlbWVudHMgSUJsb2NrSGFuZGxlciB7XG4gIGFic3RyYWN0IHR5cGU6IHN0cmluZztcbiAgYWJzdHJhY3QgcmVuZGVyKGJsb2NrOiBJQmxvY2ssIGlzU2VsZWN0ZWQ6IGJvb2xlYW4pOiBzdHJpbmc7XG4gIFxuICAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBjb21tb24gc2V0dXBcbiAgc2V0dXAoZWxlbWVudDogSFRNTEVsZW1lbnQsIGJsb2NrOiBJQmxvY2ssIGhhbmRsZXJzOiBJQmxvY2tFdmVudEhhbmRsZXJzKTogdm9pZCB7XG4gICAgLy8gQ29tbW9uIHNldHVwIGxvZ2ljXG4gIH1cbiAgXG4gIC8vIENvbW1vbiBzdHlsZXMgY2FuIGJlIGRlZmluZWQgaGVyZVxuICBnZXRTdHlsZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbn0iLCAiaW1wb3J0IHR5cGUgeyBJQmxvY2tIYW5kbGVyIH0gZnJvbSAnLi9ibG9jay5iYXNlLmpzJztcblxuZXhwb3J0IGNsYXNzIEJsb2NrUmVnaXN0cnkge1xuICBwcml2YXRlIHN0YXRpYyBoYW5kbGVycyA9IG5ldyBNYXA8c3RyaW5nLCBJQmxvY2tIYW5kbGVyPigpO1xuICBcbiAgc3RhdGljIHJlZ2lzdGVyKHR5cGU6IHN0cmluZywgaGFuZGxlcjogSUJsb2NrSGFuZGxlcik6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlcnMuc2V0KHR5cGUsIGhhbmRsZXIpO1xuICB9XG4gIFxuICBzdGF0aWMgZ2V0SGFuZGxlcih0eXBlOiBzdHJpbmcpOiBJQmxvY2tIYW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVycy5nZXQodHlwZSk7XG4gIH1cbiAgXG4gIHN0YXRpYyBnZXRBbGxUeXBlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5oYW5kbGVycy5rZXlzKCkpO1xuICB9XG59IiwgImltcG9ydCB7IEJhc2VCbG9ja0hhbmRsZXIsIHR5cGUgSUJsb2NrRXZlbnRIYW5kbGVycyB9IGZyb20gJy4uL2Jsb2NrLmJhc2UuanMnO1xuaW1wb3J0IHR5cGUgeyBJQmxvY2sgfSBmcm9tICcuLi8uLi93eXNpd3lnLnR5cGVzLmpzJztcbmltcG9ydCB7IGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgV3lzaXd5Z0Jsb2NrcyB9IGZyb20gJy4uLy4uL3d5c2l3eWcuYmxvY2tzLmpzJztcbmltcG9ydCB7IFd5c2l3eWdTZWxlY3Rpb24gfSBmcm9tICcuLi8uLi93eXNpd3lnLnNlbGVjdGlvbi5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQYXJhZ3JhcGhCbG9ja0hhbmRsZXIgZXh0ZW5kcyBCYXNlQmxvY2tIYW5kbGVyIHtcbiAgdHlwZSA9ICdwYXJhZ3JhcGgnO1xuICBcbiAgLy8gVHJhY2sgY3Vyc29yIHBvc2l0aW9uXG4gIHByaXZhdGUgbGFzdEtub3duQ3Vyc29yUG9zaXRpb246IG51bWJlciA9IDA7XG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkVGV4dDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgc2VsZWN0aW9uSGFuZGxlcjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIFxuICByZW5kZXIoYmxvY2s6IElCbG9jaywgaXNTZWxlY3RlZDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VsZWN0ZWRDbGFzcyA9IGlzU2VsZWN0ZWQgPyAnIHNlbGVjdGVkJyA6ICcnO1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gdGhpcy5nZXRQbGFjZWhvbGRlcigpO1xuICAgIFxuICAgIFxuICAgIHJldHVybiBgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYmxvY2sgcGFyYWdyYXBoJHtzZWxlY3RlZENsYXNzfVwiXG4gICAgICAgIGNvbnRlbnRlZGl0YWJsZT1cInRydWVcIlxuICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPVwiJHtwbGFjZWhvbGRlcn1cIlxuICAgICAgICBkYXRhLWJsb2NrLWlkPVwiJHtibG9jay5pZH1cIlxuICAgICAgICBkYXRhLWJsb2NrLXR5cGU9XCIke2Jsb2NrLnR5cGV9XCJcbiAgICAgID48L2Rpdj5cbiAgICBgO1xuICB9XG4gIFxuICBzZXR1cChlbGVtZW50OiBIVE1MRWxlbWVudCwgYmxvY2s6IElCbG9jaywgaGFuZGxlcnM6IElCbG9ja0V2ZW50SGFuZGxlcnMpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhZ3JhcGhCbG9jayA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJsb2NrLnBhcmFncmFwaCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGlmICghcGFyYWdyYXBoQmxvY2spIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1BhcmFncmFwaEJsb2NrSGFuZGxlci5zZXR1cDogTm8gcGFyYWdyYXBoIGJsb2NrIGVsZW1lbnQgZm91bmQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgXG4gICAgLy8gU2V0IGluaXRpYWwgY29udGVudCBpZiBuZWVkZWRcbiAgICBpZiAoYmxvY2suY29udGVudCAmJiAhcGFyYWdyYXBoQmxvY2suaW5uZXJIVE1MKSB7XG4gICAgICBwYXJhZ3JhcGhCbG9jay5pbm5lckhUTUwgPSBibG9jay5jb250ZW50O1xuICAgIH1cbiAgICBcbiAgICAvLyBJbnB1dCBoYW5kbGVyIHdpdGggY3Vyc29yIHRyYWNraW5nXG4gICAgcGFyYWdyYXBoQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoZSkgPT4ge1xuICAgICAgaGFuZGxlcnMub25JbnB1dChlIGFzIElucHV0RXZlbnQpO1xuICAgICAgXG4gICAgICAvLyBUcmFjayBjdXJzb3IgcG9zaXRpb24gYWZ0ZXIgaW5wdXRcbiAgICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudCk7XG4gICAgICBpZiAocG9zICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gPSBwb3M7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgLy8gS2V5ZG93biBoYW5kbGVyIHdpdGggY3Vyc29yIHRyYWNraW5nXG4gICAgcGFyYWdyYXBoQmxvY2suYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB7XG4gICAgICAvLyBUcmFjayBjdXJzb3IgcG9zaXRpb24gYmVmb3JlIGtleWRvd25cbiAgICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudCk7XG4gICAgICBpZiAocG9zICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gPSBwb3M7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGhhbmRsZXJzLm9uS2V5RG93bihlKTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBGb2N1cyBoYW5kbGVyXG4gICAgcGFyYWdyYXBoQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG4gICAgICBoYW5kbGVycy5vbkZvY3VzKCk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gQmx1ciBoYW5kbGVyXG4gICAgcGFyYWdyYXBoQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgIGhhbmRsZXJzLm9uQmx1cigpO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIENvbXBvc2l0aW9uIGhhbmRsZXJzIGZvciBJTUUgc3VwcG9ydFxuICAgIHBhcmFncmFwaEJsb2NrLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uc3RhcnQnLCAoKSA9PiB7XG4gICAgICBoYW5kbGVycy5vbkNvbXBvc2l0aW9uU3RhcnQoKTtcbiAgICB9KTtcbiAgICBcbiAgICBwYXJhZ3JhcGhCbG9jay5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbmVuZCcsICgpID0+IHtcbiAgICAgIGhhbmRsZXJzLm9uQ29tcG9zaXRpb25FbmQoKTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBNb3VzZSB1cCBoYW5kbGVyXG4gICAgcGFyYWdyYXBoQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIChlKSA9PiB7XG4gICAgICBjb25zdCBwb3MgPSB0aGlzLmdldEN1cnNvclBvc2l0aW9uKGVsZW1lbnQpO1xuICAgICAgaWYgKHBvcyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uID0gcG9zO1xuICAgICAgICB9XG4gICAgICBcbiAgICAgIC8vIFNlbGVjdGlvbiB3aWxsIGJlIGhhbmRsZWQgYnkgc2VsZWN0aW9uY2hhbmdlIGV2ZW50XG4gICAgICBoYW5kbGVycy5vbk1vdXNlVXA/LihlKTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBDbGljayBoYW5kbGVyIHdpdGggZGVsYXllZCBjdXJzb3IgdHJhY2tpbmdcbiAgICBwYXJhZ3JhcGhCbG9jay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAvLyBTbWFsbCBkZWxheSB0byBsZXQgYnJvd3NlciBzZXQgY3Vyc29yIHBvc2l0aW9uXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50KTtcbiAgICAgICAgaWYgKHBvcyAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gPSBwb3M7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIEtleXVwIGhhbmRsZXIgZm9yIGFkZGl0aW9uYWwgY3Vyc29yIHRyYWNraW5nXG4gICAgcGFyYWdyYXBoQmxvY2suYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZSkgPT4ge1xuICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50KTtcbiAgICAgIGlmIChwb3MgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiA9IHBvcztcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICAvLyBTZXQgdXAgc2VsZWN0aW9uIGNoYW5nZSBoYW5kbGVyXG4gICAgdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZWxlbWVudCwgcGFyYWdyYXBoQmxvY2ssIGJsb2NrKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBzZXR1cFNlbGVjdGlvbkhhbmRsZXIoZWxlbWVudDogSFRNTEVsZW1lbnQsIHBhcmFncmFwaEJsb2NrOiBIVE1MRGl2RWxlbWVudCwgYmxvY2s6IElCbG9jayk6IHZvaWQge1xuICAgIC8vIEFkZCBzZWxlY3Rpb24gY2hhbmdlIGhhbmRsZXJcbiAgICBjb25zdCBjaGVja1NlbGVjdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSByZXR1cm47XG4gICAgICBcbiAgICAgIGNvbnN0IHNlbGVjdGVkVGV4dCA9IHNlbGVjdGlvbi50b1N0cmluZygpO1xuICAgICAgaWYgKHNlbGVjdGVkVGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gQ2xlYXIgc2VsZWN0aW9uIGlmIG5vIHRleHRcbiAgICAgICAgaWYgKHRoaXMubGFzdFNlbGVjdGVkVGV4dCkge1xuICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVGV4dCA9ICcnO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlbGVtZW50LCB7XG4gICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgIGJsb2NrSWQ6IGJsb2NrLmlkLFxuICAgICAgICAgICAgaGFzU2VsZWN0aW9uOiBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gR2V0IHBhcmVudCB3eXNpd3lnIGNvbXBvbmVudCdzIHNoYWRvdyByb290IC0gdHJhdmVyc2UgZnJvbSBzaGFkb3cgcm9vdFxuICAgICAgY29uc3Qgd3lzaXd5Z0Jsb2NrID0gKHBhcmFncmFwaEJsb2NrLmdldFJvb3ROb2RlKCkgYXMgU2hhZG93Um9vdCkuaG9zdCBhcyBhbnk7XG4gICAgICBjb25zdCBwYXJlbnRDb21wb25lbnQgPSB3eXNpd3lnQmxvY2s/LmNsb3Nlc3QoJ2RlZXMtaW5wdXQtd3lzaXd5ZycpO1xuICAgICAgY29uc3QgcGFyZW50U2hhZG93Um9vdCA9IHBhcmVudENvbXBvbmVudD8uc2hhZG93Um9vdDtcbiAgICAgIGNvbnN0IGJsb2NrU2hhZG93Um9vdCA9IHd5c2l3eWdCbG9jaz8uc2hhZG93Um9vdDtcbiAgICAgIFxuICAgICAgLy8gVXNlIGdldENvbXBvc2VkUmFuZ2VzIHdpdGggc2hhZG93IHJvb3RzIGFzIHBlciBNRE4gZG9jc1xuICAgICAgY29uc3Qgc2hhZG93Um9vdHM6IFNoYWRvd1Jvb3RbXSA9IFtdO1xuICAgICAgaWYgKHBhcmVudFNoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2gocGFyZW50U2hhZG93Um9vdCk7XG4gICAgICBpZiAoYmxvY2tTaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKGJsb2NrU2hhZG93Um9vdCk7XG4gICAgICBcbiAgICAgIC8vIEdldCBzZWxlY3Rpb24gaW5mbyB1c2luZyBvdXIgU2hhZG93IERPTS1hd2FyZSB1dGlsaXR5XG4gICAgICBjb25zdCBzZWxlY3Rpb25JbmZvID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvKC4uLnNoYWRvd1Jvb3RzKTtcbiAgICAgIGlmICghc2VsZWN0aW9uSW5mbykgcmV0dXJuO1xuICAgICAgXG4gICAgICAvLyBDaGVjayBpZiBzZWxlY3Rpb24gaXMgd2l0aGluIHRoaXMgYmxvY2tcbiAgICAgIGNvbnN0IHN0YXJ0SW5CbG9jayA9IFd5c2l3eWdTZWxlY3Rpb24uY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocGFyYWdyYXBoQmxvY2ssIHNlbGVjdGlvbkluZm8uc3RhcnRDb250YWluZXIpO1xuICAgICAgY29uc3QgZW5kSW5CbG9jayA9IFd5c2l3eWdTZWxlY3Rpb24uY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocGFyYWdyYXBoQmxvY2ssIHNlbGVjdGlvbkluZm8uZW5kQ29udGFpbmVyKTtcbiAgICAgIFxuICAgICAgaWYgKHN0YXJ0SW5CbG9jayB8fCBlbmRJbkJsb2NrKSB7XG4gICAgICAgIGlmIChzZWxlY3RlZFRleHQgIT09IHRoaXMubGFzdFNlbGVjdGVkVGV4dCkge1xuICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVGV4dCA9IHNlbGVjdGVkVGV4dDtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBDcmVhdGUgcmFuZ2UgYW5kIGdldCByZWN0XG4gICAgICAgICAgY29uc3QgcmFuZ2UgPSBXeXNpd3lnU2VsZWN0aW9uLmNyZWF0ZVJhbmdlRnJvbUluZm8oc2VsZWN0aW9uSW5mbyk7XG4gICAgICAgICAgY29uc3QgcmVjdCA9IHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIERpc3BhdGNoIGV2ZW50XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGVsZW1lbnQsIHtcbiAgICAgICAgICAgIHRleHQ6IHNlbGVjdGVkVGV4dC50cmltKCksXG4gICAgICAgICAgICBibG9ja0lkOiBibG9jay5pZCxcbiAgICAgICAgICAgIHJhbmdlOiByYW5nZSxcbiAgICAgICAgICAgIHJlY3Q6IHJlY3QsXG4gICAgICAgICAgICBoYXNTZWxlY3Rpb246IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLmxhc3RTZWxlY3RlZFRleHQpIHtcbiAgICAgICAgLy8gQ2xlYXIgc2VsZWN0aW9uIGlmIG5vIGxvbmdlciBpbiB0aGlzIGJsb2NrXG4gICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVGV4dCA9ICcnO1xuICAgICAgICB0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZWxlbWVudCwge1xuICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgIGJsb2NrSWQ6IGJsb2NrLmlkLFxuICAgICAgICAgIGhhc1NlbGVjdGlvbjogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBcbiAgICAvLyBMaXN0ZW4gZm9yIHNlbGVjdGlvbiBjaGFuZ2VzXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgY2hlY2tTZWxlY3Rpb24pO1xuICAgIFxuICAgIC8vIFN0b3JlIHRoZSBoYW5kbGVyIGZvciBjbGVhbnVwXG4gICAgdGhpcy5zZWxlY3Rpb25IYW5kbGVyID0gY2hlY2tTZWxlY3Rpb247XG4gICAgXG4gICAgLy8gQ2xlYW4gdXAgb24gZGlzY29ubmVjdCAod2lsbCBiZSBjYWxsZWQgYnkgZGVlcy13eXNpd3lnLWJsb2NrKVxuICAgIGNvbnN0IHd5c2l3eWdCbG9jayA9IGVsZW1lbnQuY2xvc2VzdCgnZGVlcy13eXNpd3lnLWJsb2NrJyk7XG4gICAgaWYgKHd5c2l3eWdCbG9jaykge1xuICAgICAgY29uc3Qgb3JpZ2luYWxEaXNjb25uZWN0ZWRDYWxsYmFjayA9ICh3eXNpd3lnQmxvY2sgYXMgYW55KS5kaXNjb25uZWN0ZWRDYWxsYmFjaztcbiAgICAgICh3eXNpd3lnQmxvY2sgYXMgYW55KS5kaXNjb25uZWN0ZWRDYWxsYmFjayA9IGFzeW5jIGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25IYW5kbGVyKSB7XG4gICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgdGhpcy5zZWxlY3Rpb25IYW5kbGVyKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbkhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcmlnaW5hbERpc2Nvbm5lY3RlZENhbGxiYWNrKSB7XG4gICAgICAgICAgYXdhaXQgb3JpZ2luYWxEaXNjb25uZWN0ZWRDYWxsYmFjay5jYWxsKHd5c2l3eWdCbG9jayk7XG4gICAgICAgIH1cbiAgICAgIH0uYmluZCh0aGlzKTtcbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgZGV0YWlsOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnYmxvY2stdGV4dC1zZWxlY3RlZCcsIHtcbiAgICAgIGRldGFpbCxcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZVxuICAgIH0pO1xuICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH1cbiAgXG4gIGdldFN0eWxlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXG4gICAgICAvKiBQYXJhZ3JhcGggc3BlY2lmaWMgc3R5bGVzICovXG4gICAgICAuYmxvY2sucGFyYWdyYXBoIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgfVxuICAgIGA7XG4gIH1cbiAgXG4gIGdldFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uXCI7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gZ2V0IHRoZSBsYXN0IHRleHQgbm9kZSBpbiBhbiBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIGdldExhc3RUZXh0Tm9kZShlbGVtZW50OiBOb2RlKTogVGV4dCB8IG51bGwge1xuICAgIGlmIChlbGVtZW50Lm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQgYXMgVGV4dDtcbiAgICB9XG4gICAgXG4gICAgZm9yIChsZXQgaSA9IGVsZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgbGFzdFRleHQgPSB0aGlzLmdldExhc3RUZXh0Tm9kZShlbGVtZW50LmNoaWxkTm9kZXNbaV0pO1xuICAgICAgaWYgKGxhc3RUZXh0KSByZXR1cm4gbGFzdFRleHQ7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIFxuICAvLyBIZWxwZXIgbWV0aG9kcyBmb3IgcGFyYWdyYXBoIGZ1bmN0aW9uYWxpdHlcbiAgXG4gIGdldEN1cnNvclBvc2l0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0PzogYW55KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgLy8gR2V0IHRoZSBhY3R1YWwgcGFyYWdyYXBoIGVsZW1lbnRcbiAgICBjb25zdCBwYXJhZ3JhcGhCbG9jayA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJsb2NrLnBhcmFncmFwaCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGlmICghcGFyYWdyYXBoQmxvY2spIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBcbiAgICAvLyBHZXQgc2hhZG93IHJvb3RzIGZyb20gY29udGV4dFxuICAgIGNvbnN0IHd5c2l3eWdCbG9jayA9IGNvbnRleHQ/LmNvbXBvbmVudDtcbiAgICBjb25zdCBwYXJlbnRDb21wb25lbnQgPSB3eXNpd3lnQmxvY2s/LmNsb3Nlc3QoJ2RlZXMtaW5wdXQtd3lzaXd5ZycpO1xuICAgIGNvbnN0IHBhcmVudFNoYWRvd1Jvb3QgPSBwYXJlbnRDb21wb25lbnQ/LnNoYWRvd1Jvb3Q7XG4gICAgY29uc3QgYmxvY2tTaGFkb3dSb290ID0gY29udGV4dD8uc2hhZG93Um9vdDtcbiAgICBcbiAgICAvLyBHZXQgc2VsZWN0aW9uIGluZm8gd2l0aCBib3RoIHNoYWRvdyByb290cyBmb3IgcHJvcGVyIHRyYXZlcnNhbFxuICAgIGNvbnN0IHNoYWRvd1Jvb3RzOiBTaGFkb3dSb290W10gPSBbXTtcbiAgICBpZiAocGFyZW50U2hhZG93Um9vdCkgc2hhZG93Um9vdHMucHVzaChwYXJlbnRTaGFkb3dSb290KTtcbiAgICBpZiAoYmxvY2tTaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKGJsb2NrU2hhZG93Um9vdCk7XG4gICAgXG4gICAgY29uc3Qgc2VsZWN0aW9uSW5mbyA9IFd5c2l3eWdTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uSW5mbyguLi5zaGFkb3dSb290cyk7XG4gICAgXG4gICAgaWYgKCFzZWxlY3Rpb25JbmZvKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgaWYgKCFXeXNpd3lnU2VsZWN0aW9uLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHBhcmFncmFwaEJsb2NrLCBzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIC8vIENyZWF0ZSBhIHJhbmdlIGZyb20gc3RhcnQgb2YgZWxlbWVudCB0byBjdXJzb3IgcG9zaXRpb25cbiAgICBjb25zdCBwcmVDYXJldFJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICBwcmVDYXJldFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhwYXJhZ3JhcGhCbG9jayk7XG4gICAgcHJlQ2FyZXRSYW5nZS5zZXRFbmQoc2VsZWN0aW9uSW5mby5zdGFydENvbnRhaW5lciwgc2VsZWN0aW9uSW5mby5zdGFydE9mZnNldCk7XG4gICAgXG4gICAgLy8gR2V0IHRoZSB0ZXh0IGNvbnRlbnQgbGVuZ3RoIHVwIHRvIGN1cnNvclxuICAgIGNvbnN0IHBvc2l0aW9uID0gcHJlQ2FyZXRSYW5nZS50b1N0cmluZygpLmxlbmd0aDtcbiAgICBcbiAgICByZXR1cm4gcG9zaXRpb247XG4gIH1cbiAgXG4gIGdldENvbnRlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcmFncmFwaEJsb2NrID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYmxvY2sucGFyYWdyYXBoJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFwYXJhZ3JhcGhCbG9jaykgcmV0dXJuICcnO1xuICAgIFxuICAgIC8vIEZvciBwYXJhZ3JhcGhzLCBnZXQgdGhlIGlubmVySFRNTCB3aGljaCBpbmNsdWRlcyBmb3JtYXR0aW5nIHRhZ3NcbiAgICBjb25zdCBjb250ZW50ID0gcGFyYWdyYXBoQmxvY2suaW5uZXJIVE1MIHx8ICcnO1xuICAgIHJldHVybiBjb250ZW50O1xuICB9XG4gIFxuICBzZXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZW50OiBzdHJpbmcsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhZ3JhcGhCbG9jayA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJsb2NrLnBhcmFncmFwaCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGlmICghcGFyYWdyYXBoQmxvY2spIHJldHVybjtcbiAgICBcbiAgICAvLyBTdG9yZSBpZiB3ZSBoYXZlIGZvY3VzXG4gICAgY29uc3QgaGFkRm9jdXMgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBwYXJhZ3JhcGhCbG9jayB8fCBcbiAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCA9PT0gcGFyYWdyYXBoQmxvY2s7XG4gICAgXG4gICAgcGFyYWdyYXBoQmxvY2suaW5uZXJIVE1MID0gY29udGVudDtcbiAgICBcbiAgICAvLyBSZXN0b3JlIGZvY3VzIGlmIHdlIGhhZCBpdFxuICAgIGlmIChoYWRGb2N1cykge1xuICAgICAgcGFyYWdyYXBoQmxvY2suZm9jdXMoKTtcbiAgICB9XG4gIH1cbiAgXG4gIHNldEN1cnNvclRvU3RhcnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhZ3JhcGhCbG9jayA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJsb2NrLnBhcmFncmFwaCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGlmIChwYXJhZ3JhcGhCbG9jaykge1xuICAgICAgV3lzaXd5Z0Jsb2Nrcy5zZXRDdXJzb3JUb1N0YXJ0KHBhcmFncmFwaEJsb2NrKTtcbiAgICB9XG4gIH1cbiAgXG4gIHNldEN1cnNvclRvRW5kKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0PzogYW55KTogdm9pZCB7XG4gICAgY29uc3QgcGFyYWdyYXBoQmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5wYXJhZ3JhcGgnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAocGFyYWdyYXBoQmxvY2spIHtcbiAgICAgIFd5c2l3eWdCbG9ja3Muc2V0Q3Vyc29yVG9FbmQocGFyYWdyYXBoQmxvY2spO1xuICAgIH1cbiAgfVxuICBcbiAgZm9jdXMoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhZ3JhcGhCbG9jayA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJsb2NrLnBhcmFncmFwaCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGlmICghcGFyYWdyYXBoQmxvY2spIHJldHVybjtcbiAgICBcbiAgICAvLyBFbnN1cmUgdGhlIGVsZW1lbnQgaXMgZm9jdXNhYmxlXG4gICAgaWYgKCFwYXJhZ3JhcGhCbG9jay5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpKSB7XG4gICAgICBwYXJhZ3JhcGhCbG9jay5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICd0cnVlJyk7XG4gICAgfVxuICAgIFxuICAgIHBhcmFncmFwaEJsb2NrLmZvY3VzKCk7XG4gICAgXG4gICAgLy8gSWYgZm9jdXMgZmFpbGVkLCB0cnkgYWdhaW4gYWZ0ZXIgYSBtaWNyb3Rhc2tcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gcGFyYWdyYXBoQmxvY2sgJiYgZWxlbWVudC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50ICE9PSBwYXJhZ3JhcGhCbG9jaykge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHBhcmFncmFwaEJsb2NrLmZvY3VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgXG4gIGZvY3VzV2l0aEN1cnNvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgcG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyB8IG51bWJlciA9ICdlbmQnLCBjb250ZXh0PzogYW55KTogdm9pZCB7XG4gICAgY29uc3QgcGFyYWdyYXBoQmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5wYXJhZ3JhcGgnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoIXBhcmFncmFwaEJsb2NrKSByZXR1cm47XG4gICAgXG4gICAgXG4gICAgLy8gRW5zdXJlIGVsZW1lbnQgaXMgZm9jdXNhYmxlIGZpcnN0XG4gICAgaWYgKCFwYXJhZ3JhcGhCbG9jay5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpKSB7XG4gICAgICBwYXJhZ3JhcGhCbG9jay5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICd0cnVlJyk7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciAnZW5kJyBwb3NpdGlvbiwgd2UgbmVlZCB0byBzZXQgdXAgc2VsZWN0aW9uIGJlZm9yZSBmb2N1cyB0byBwcmV2ZW50IGJyb3dzZXIgZGVmYXVsdFxuICAgIGlmIChwb3NpdGlvbiA9PT0gJ2VuZCcgJiYgcGFyYWdyYXBoQmxvY2sudGV4dENvbnRlbnQgJiYgcGFyYWdyYXBoQmxvY2sudGV4dENvbnRlbnQubGVuZ3RoID4gMCkge1xuICAgICAgLy8gU2V0IHVwIHRoZSBzZWxlY3Rpb24gZmlyc3RcbiAgICAgIGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIGlmIChzZWwpIHtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgICBjb25zdCBsYXN0Tm9kZSA9IHRoaXMuZ2V0TGFzdFRleHROb2RlKHBhcmFncmFwaEJsb2NrKSB8fCBwYXJhZ3JhcGhCbG9jaztcbiAgICAgICAgaWYgKGxhc3ROb2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICAgIHJhbmdlLnNldFN0YXJ0KGxhc3ROb2RlLCBsYXN0Tm9kZS50ZXh0Q29udGVudD8ubGVuZ3RoIHx8IDApO1xuICAgICAgICAgIHJhbmdlLnNldEVuZChsYXN0Tm9kZSwgbGFzdE5vZGUudGV4dENvbnRlbnQ/Lmxlbmd0aCB8fCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMobGFzdE5vZGUpO1xuICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIHNlbC5hZGRSYW5nZShyYW5nZSk7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIE5vdyBmb2N1cyB0aGUgZWxlbWVudFxuICAgIHBhcmFncmFwaEJsb2NrLmZvY3VzKCk7XG4gICAgXG4gICAgLy8gU2V0IGN1cnNvciBwb3NpdGlvbiBhZnRlciBmb2N1cyBpcyBlc3RhYmxpc2hlZCAoZm9yIG5vbi1lbmQgcG9zaXRpb25zKVxuICAgIGNvbnN0IHNldEN1cnNvciA9ICgpID0+IHtcbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICB0aGlzLnNldEN1cnNvclRvU3RhcnQoZWxlbWVudCwgY29udGV4dCk7XG4gICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnZW5kJyAmJiAoIXBhcmFncmFwaEJsb2NrLnRleHRDb250ZW50IHx8IHBhcmFncmFwaEJsb2NrLnRleHRDb250ZW50Lmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgLy8gT25seSBjYWxsIHNldEN1cnNvclRvRW5kIGZvciBlbXB0eSBibG9ja3NcbiAgICAgICAgdGhpcy5zZXRDdXJzb3JUb0VuZChlbGVtZW50LCBjb250ZXh0KTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHBvc2l0aW9uID09PSAnbnVtYmVyJykge1xuICAgICAgICAvLyBVc2UgdGhlIHNlbGVjdGlvbiB1dGlsaXR5IHRvIHNldCBjdXJzb3IgcG9zaXRpb25cbiAgICAgICAgV3lzaXd5Z1NlbGVjdGlvbi5zZXRDdXJzb3JQb3NpdGlvbihwYXJhZ3JhcGhCbG9jaywgcG9zaXRpb24pO1xuICAgICAgfVxuICAgIH07XG4gICAgXG4gICAgLy8gRW5zdXJlIGN1cnNvciBpcyBzZXQgYWZ0ZXIgZm9jdXNcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gcGFyYWdyYXBoQmxvY2sgfHwgZWxlbWVudC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50ID09PSBwYXJhZ3JhcGhCbG9jaykge1xuICAgICAgc2V0Q3Vyc29yKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFdhaXQgZm9yIGZvY3VzIHRvIGJlIGVzdGFibGlzaGVkXG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHBhcmFncmFwaEJsb2NrIHx8IGVsZW1lbnQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCA9PT0gcGFyYWdyYXBoQmxvY2spIHtcbiAgICAgICAgICBzZXRDdXJzb3IoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUcnkgYWdhaW4gd2l0aCBhIHNtYWxsIGRlbGF5IC0gc29tZXRpbWVzIGZvY3VzIG5lZWRzIG1vcmUgdGltZVxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHBhcmFncmFwaEJsb2NrIHx8IGVsZW1lbnQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCA9PT0gcGFyYWdyYXBoQmxvY2spIHtcbiAgICAgICAgICAgICAgc2V0Q3Vyc29yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgMTApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgXG4gIGdldFNwbGl0Q29udGVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dD86IGFueSk6IHsgYmVmb3JlOiBzdHJpbmc7IGFmdGVyOiBzdHJpbmcgfSB8IG51bGwge1xuICAgIGNvbnN0IHBhcmFncmFwaEJsb2NrID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYmxvY2sucGFyYWdyYXBoJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFwYXJhZ3JhcGhCbG9jaykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIC8vIEdldCBzaGFkb3cgcm9vdHMgZnJvbSBjb250ZXh0XG4gICAgY29uc3Qgd3lzaXd5Z0Jsb2NrID0gY29udGV4dD8uY29tcG9uZW50O1xuICAgIGNvbnN0IHBhcmVudENvbXBvbmVudCA9IHd5c2l3eWdCbG9jaz8uY2xvc2VzdCgnZGVlcy1pbnB1dC13eXNpd3lnJyk7XG4gICAgY29uc3QgcGFyZW50U2hhZG93Um9vdCA9IHBhcmVudENvbXBvbmVudD8uc2hhZG93Um9vdDtcbiAgICBjb25zdCBibG9ja1NoYWRvd1Jvb3QgPSBjb250ZXh0Py5zaGFkb3dSb290O1xuICAgIFxuICAgIC8vIEdldCBzZWxlY3Rpb24gaW5mbyB3aXRoIGJvdGggc2hhZG93IHJvb3RzIGZvciBwcm9wZXIgdHJhdmVyc2FsXG4gICAgY29uc3Qgc2hhZG93Um9vdHM6IFNoYWRvd1Jvb3RbXSA9IFtdO1xuICAgIGlmIChwYXJlbnRTaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKHBhcmVudFNoYWRvd1Jvb3QpO1xuICAgIGlmIChibG9ja1NoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2goYmxvY2tTaGFkb3dSb290KTtcbiAgICBcbiAgICBjb25zdCBzZWxlY3Rpb25JbmZvID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvKC4uLnNoYWRvd1Jvb3RzKTtcbiAgICBcbiAgICBpZiAoIXNlbGVjdGlvbkluZm8pIHtcbiAgICAgIC8vIFRyeSB1c2luZyBsYXN0IGtub3duIGN1cnNvciBwb3NpdGlvblxuICAgICAgaWYgKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZnVsbFRleHQgPSBwYXJhZ3JhcGhCbG9jay50ZXh0Q29udGVudCB8fCAnJztcbiAgICAgICAgY29uc3QgcG9zID0gTWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiwgZnVsbFRleHQubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBiZWZvcmU6IGZ1bGxUZXh0LnN1YnN0cmluZygwLCBwb3MpLFxuICAgICAgICAgIGFmdGVyOiBmdWxsVGV4dC5zdWJzdHJpbmcocG9zKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIC8vIE1ha2Ugc3VyZSB0aGUgc2VsZWN0aW9uIGlzIHdpdGhpbiB0aGlzIGJsb2NrXG4gICAgaWYgKCFXeXNpd3lnU2VsZWN0aW9uLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHBhcmFncmFwaEJsb2NrLCBzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyKSkge1xuICAgICAgLy8gVHJ5IHVzaW5nIGxhc3Qga25vd24gY3Vyc29yIHBvc2l0aW9uXG4gICAgICBpZiAodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmdWxsVGV4dCA9IHBhcmFncmFwaEJsb2NrLnRleHRDb250ZW50IHx8ICcnO1xuICAgICAgICBjb25zdCBwb3MgPSBNYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLCBmdWxsVGV4dC5sZW5ndGgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJlZm9yZTogZnVsbFRleHQuc3Vic3RyaW5nKDAsIHBvcyksXG4gICAgICAgICAgYWZ0ZXI6IGZ1bGxUZXh0LnN1YnN0cmluZyhwb3MpXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgLy8gR2V0IGN1cnNvciBwb3NpdGlvbiBmaXJzdFxuICAgIGNvbnN0IGN1cnNvclBvcyA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudCwgY29udGV4dCk7XG4gICAgXG4gICAgaWYgKGN1cnNvclBvcyA9PT0gbnVsbCB8fCBjdXJzb3JQb3MgPT09IDApIHtcbiAgICAgIC8vIElmIGN1cnNvciBpcyBhdCBzdGFydCBvciBjYW4ndCBkZXRlcm1pbmUgcG9zaXRpb24sIG1vdmUgYWxsIGNvbnRlbnRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJlZm9yZTogJycsXG4gICAgICAgIGFmdGVyOiBwYXJhZ3JhcGhCbG9jay5pbm5lckhUTUxcbiAgICAgIH07XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciBIVE1MIGNvbnRlbnQsIHNwbGl0IHVzaW5nIHJhbmdlcyB0byBwcmVzZXJ2ZSBmb3JtYXR0aW5nXG4gICAgY29uc3QgYmVmb3JlUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgIGNvbnN0IGFmdGVyUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgIFxuICAgIC8vIEJlZm9yZSByYW5nZTogZnJvbSBzdGFydCBvZiBlbGVtZW50IHRvIGN1cnNvclxuICAgIGJlZm9yZVJhbmdlLnNldFN0YXJ0KHBhcmFncmFwaEJsb2NrLCAwKTtcbiAgICBiZWZvcmVSYW5nZS5zZXRFbmQoc2VsZWN0aW9uSW5mby5zdGFydENvbnRhaW5lciwgc2VsZWN0aW9uSW5mby5zdGFydE9mZnNldCk7XG4gICAgXG4gICAgLy8gQWZ0ZXIgcmFuZ2U6IGZyb20gY3Vyc29yIHRvIGVuZCBvZiBlbGVtZW50XG4gICAgYWZ0ZXJSYW5nZS5zZXRTdGFydChzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyLCBzZWxlY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0KTtcbiAgICBhZnRlclJhbmdlLnNldEVuZChwYXJhZ3JhcGhCbG9jaywgcGFyYWdyYXBoQmxvY2suY2hpbGROb2Rlcy5sZW5ndGgpO1xuICAgIFxuICAgIC8vIEV4dHJhY3QgSFRNTCBjb250ZW50XG4gICAgY29uc3QgYmVmb3JlRnJhZ21lbnQgPSBiZWZvcmVSYW5nZS5jbG9uZUNvbnRlbnRzKCk7XG4gICAgY29uc3QgYWZ0ZXJGcmFnbWVudCA9IGFmdGVyUmFuZ2UuY2xvbmVDb250ZW50cygpO1xuICAgIFxuICAgIC8vIENvbnZlcnQgdG8gSFRNTCBzdHJpbmdzXG4gICAgY29uc3QgdGVtcERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRlbXBEaXYuYXBwZW5kQ2hpbGQoYmVmb3JlRnJhZ21lbnQpO1xuICAgIGNvbnN0IGJlZm9yZUh0bWwgPSB0ZW1wRGl2LmlubmVySFRNTDtcbiAgICBcbiAgICB0ZW1wRGl2LmlubmVySFRNTCA9ICcnO1xuICAgIHRlbXBEaXYuYXBwZW5kQ2hpbGQoYWZ0ZXJGcmFnbWVudCk7XG4gICAgY29uc3QgYWZ0ZXJIdG1sID0gdGVtcERpdi5pbm5lckhUTUw7XG4gICAgXG4gICAgcmV0dXJuIHsgXG4gICAgICBiZWZvcmU6IGJlZm9yZUh0bWwsIFxuICAgICAgYWZ0ZXI6IGFmdGVySHRtbCBcbiAgICB9O1xuICB9XG59IiwgImltcG9ydCB7IEJhc2VCbG9ja0hhbmRsZXIsIHR5cGUgSUJsb2NrRXZlbnRIYW5kbGVycyB9IGZyb20gJy4uL2Jsb2NrLmJhc2UuanMnO1xuaW1wb3J0IHR5cGUgeyBJQmxvY2sgfSBmcm9tICcuLi8uLi93eXNpd3lnLnR5cGVzLmpzJztcbmltcG9ydCB7IGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgV3lzaXd5Z0Jsb2NrcyB9IGZyb20gJy4uLy4uL3d5c2l3eWcuYmxvY2tzLmpzJztcbmltcG9ydCB7IFd5c2l3eWdTZWxlY3Rpb24gfSBmcm9tICcuLi8uLi93eXNpd3lnLnNlbGVjdGlvbi5qcyc7XG5cbmV4cG9ydCBjbGFzcyBIZWFkaW5nQmxvY2tIYW5kbGVyIGV4dGVuZHMgQmFzZUJsb2NrSGFuZGxlciB7XG4gIHR5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSBsZXZlbDogMSB8IDIgfCAzO1xuICBcbiAgLy8gVHJhY2sgY3Vyc29yIHBvc2l0aW9uXG4gIHByaXZhdGUgbGFzdEtub3duQ3Vyc29yUG9zaXRpb246IG51bWJlciA9IDA7XG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkVGV4dDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgc2VsZWN0aW9uSGFuZGxlcjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIFxuICBjb25zdHJ1Y3Rvcih0eXBlOiAnaGVhZGluZy0xJyB8ICdoZWFkaW5nLTInIHwgJ2hlYWRpbmctMycpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5sZXZlbCA9IHBhcnNlSW50KHR5cGUuc3BsaXQoJy0nKVsxXSkgYXMgMSB8IDIgfCAzO1xuICB9XG4gIFxuICByZW5kZXIoYmxvY2s6IElCbG9jaywgaXNTZWxlY3RlZDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VsZWN0ZWRDbGFzcyA9IGlzU2VsZWN0ZWQgPyAnIHNlbGVjdGVkJyA6ICcnO1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gdGhpcy5nZXRQbGFjZWhvbGRlcigpO1xuICAgIFxuICAgIFxuICAgIHJldHVybiBgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYmxvY2sgaGVhZGluZy0ke3RoaXMubGV2ZWx9JHtzZWxlY3RlZENsYXNzfVwiXG4gICAgICAgIGNvbnRlbnRlZGl0YWJsZT1cInRydWVcIlxuICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPVwiJHtwbGFjZWhvbGRlcn1cIlxuICAgICAgICBkYXRhLWJsb2NrLWlkPVwiJHtibG9jay5pZH1cIlxuICAgICAgICBkYXRhLWJsb2NrLXR5cGU9XCIke2Jsb2NrLnR5cGV9XCJcbiAgICAgID48L2Rpdj5cbiAgICBgO1xuICB9XG4gIFxuICBzZXR1cChlbGVtZW50OiBIVE1MRWxlbWVudCwgYmxvY2s6IElCbG9jaywgaGFuZGxlcnM6IElCbG9ja0V2ZW50SGFuZGxlcnMpOiB2b2lkIHtcbiAgICBjb25zdCBoZWFkaW5nQmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoIWhlYWRpbmdCbG9jaykge1xuICAgICAgY29uc29sZS5lcnJvcignSGVhZGluZ0Jsb2NrSGFuZGxlci5zZXR1cDogTm8gaGVhZGluZyBibG9jayBlbGVtZW50IGZvdW5kJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIFxuICAgIC8vIFNldCBpbml0aWFsIGNvbnRlbnQgaWYgbmVlZGVkXG4gICAgaWYgKGJsb2NrLmNvbnRlbnQgJiYgIWhlYWRpbmdCbG9jay5pbm5lckhUTUwpIHtcbiAgICAgIGhlYWRpbmdCbG9jay5pbm5lckhUTUwgPSBibG9jay5jb250ZW50O1xuICAgIH1cbiAgICBcbiAgICAvLyBJbnB1dCBoYW5kbGVyIHdpdGggY3Vyc29yIHRyYWNraW5nXG4gICAgaGVhZGluZ0Jsb2NrLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKGUpID0+IHtcbiAgICAgIGhhbmRsZXJzLm9uSW5wdXQoZSBhcyBJbnB1dEV2ZW50KTtcbiAgICAgIFxuICAgICAgLy8gVHJhY2sgY3Vyc29yIHBvc2l0aW9uIGFmdGVyIGlucHV0XG4gICAgICBjb25zdCBwb3MgPSB0aGlzLmdldEN1cnNvclBvc2l0aW9uKGVsZW1lbnQpO1xuICAgICAgaWYgKHBvcyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uID0gcG9zO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIEtleWRvd24gaGFuZGxlciB3aXRoIGN1cnNvciB0cmFja2luZ1xuICAgIGhlYWRpbmdCbG9jay5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHtcbiAgICAgIC8vIFRyYWNrIGN1cnNvciBwb3NpdGlvbiBiZWZvcmUga2V5ZG93blxuICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50KTtcbiAgICAgIGlmIChwb3MgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiA9IHBvcztcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaGFuZGxlcnMub25LZXlEb3duKGUpO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIEZvY3VzIGhhbmRsZXJcbiAgICBoZWFkaW5nQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG4gICAgICBoYW5kbGVycy5vbkZvY3VzKCk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gQmx1ciBoYW5kbGVyXG4gICAgaGVhZGluZ0Jsb2NrLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB7XG4gICAgICBoYW5kbGVycy5vbkJsdXIoKTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBDb21wb3NpdGlvbiBoYW5kbGVycyBmb3IgSU1FIHN1cHBvcnRcbiAgICBoZWFkaW5nQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignY29tcG9zaXRpb25zdGFydCcsICgpID0+IHtcbiAgICAgIGhhbmRsZXJzLm9uQ29tcG9zaXRpb25TdGFydCgpO1xuICAgIH0pO1xuICAgIFxuICAgIGhlYWRpbmdCbG9jay5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbmVuZCcsICgpID0+IHtcbiAgICAgIGhhbmRsZXJzLm9uQ29tcG9zaXRpb25FbmQoKTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBNb3VzZSB1cCBoYW5kbGVyXG4gICAgaGVhZGluZ0Jsb2NrLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCAoZSkgPT4ge1xuICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50KTtcbiAgICAgIGlmIChwb3MgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiA9IHBvcztcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gU2VsZWN0aW9uIHdpbGwgYmUgaGFuZGxlZCBieSBzZWxlY3Rpb25jaGFuZ2UgZXZlbnRcbiAgICAgIGhhbmRsZXJzLm9uTW91c2VVcD8uKGUpO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIENsaWNrIGhhbmRsZXIgd2l0aCBkZWxheWVkIGN1cnNvciB0cmFja2luZ1xuICAgIGhlYWRpbmdCbG9jay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAvLyBTbWFsbCBkZWxheSB0byBsZXQgYnJvd3NlciBzZXQgY3Vyc29yIHBvc2l0aW9uXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50KTtcbiAgICAgICAgaWYgKHBvcyAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gPSBwb3M7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIEtleXVwIGhhbmRsZXIgZm9yIGFkZGl0aW9uYWwgY3Vyc29yIHRyYWNraW5nXG4gICAgaGVhZGluZ0Jsb2NrLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKGUpID0+IHtcbiAgICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudCk7XG4gICAgICBpZiAocG9zICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gPSBwb3M7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgLy8gU2V0IHVwIHNlbGVjdGlvbiBjaGFuZ2UgaGFuZGxlclxuICAgIHRoaXMuc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGVsZW1lbnQsIGhlYWRpbmdCbG9jaywgYmxvY2spO1xuICB9XG4gIFxuICBwcml2YXRlIHNldHVwU2VsZWN0aW9uSGFuZGxlcihlbGVtZW50OiBIVE1MRWxlbWVudCwgaGVhZGluZ0Jsb2NrOiBIVE1MRGl2RWxlbWVudCwgYmxvY2s6IElCbG9jayk6IHZvaWQge1xuICAgIC8vIEFkZCBzZWxlY3Rpb24gY2hhbmdlIGhhbmRsZXJcbiAgICBjb25zdCBjaGVja1NlbGVjdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSByZXR1cm47XG4gICAgICBcbiAgICAgIGNvbnN0IHNlbGVjdGVkVGV4dCA9IHNlbGVjdGlvbi50b1N0cmluZygpO1xuICAgICAgaWYgKHNlbGVjdGVkVGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gQ2xlYXIgc2VsZWN0aW9uIGlmIG5vIHRleHRcbiAgICAgICAgaWYgKHRoaXMubGFzdFNlbGVjdGVkVGV4dCkge1xuICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVGV4dCA9ICcnO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlbGVtZW50LCB7XG4gICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgIGJsb2NrSWQ6IGJsb2NrLmlkLFxuICAgICAgICAgICAgaGFzU2VsZWN0aW9uOiBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gR2V0IHBhcmVudCB3eXNpd3lnIGNvbXBvbmVudCdzIHNoYWRvdyByb290IC0gaW4gc2V0dXAsIHdlIG5lZWQgdG8gdHJhdmVyc2VcbiAgICAgIGNvbnN0IHd5c2l3eWdCbG9jayA9IChoZWFkaW5nQmxvY2suZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KS5ob3N0IGFzIGFueTtcbiAgICAgIGNvbnN0IHBhcmVudENvbXBvbmVudCA9IHd5c2l3eWdCbG9jaz8uY2xvc2VzdCgnZGVlcy1pbnB1dC13eXNpd3lnJyk7XG4gICAgICBjb25zdCBwYXJlbnRTaGFkb3dSb290ID0gcGFyZW50Q29tcG9uZW50Py5zaGFkb3dSb290O1xuICAgICAgY29uc3QgYmxvY2tTaGFkb3dSb290ID0gd3lzaXd5Z0Jsb2NrPy5zaGFkb3dSb290O1xuICAgICAgXG4gICAgICAvLyBVc2UgZ2V0Q29tcG9zZWRSYW5nZXMgd2l0aCBzaGFkb3cgcm9vdHMgYXMgcGVyIE1ETiBkb2NzXG4gICAgICBjb25zdCBzaGFkb3dSb290czogU2hhZG93Um9vdFtdID0gW107XG4gICAgICBpZiAocGFyZW50U2hhZG93Um9vdCkgc2hhZG93Um9vdHMucHVzaChwYXJlbnRTaGFkb3dSb290KTtcbiAgICAgIGlmIChibG9ja1NoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2goYmxvY2tTaGFkb3dSb290KTtcbiAgICAgIFxuICAgICAgLy8gR2V0IHNlbGVjdGlvbiBpbmZvIHVzaW5nIG91ciBTaGFkb3cgRE9NLWF3YXJlIHV0aWxpdHlcbiAgICAgIGNvbnN0IHNlbGVjdGlvbkluZm8gPSBXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8oLi4uc2hhZG93Um9vdHMpO1xuICAgICAgaWYgKCFzZWxlY3Rpb25JbmZvKSByZXR1cm47XG4gICAgICBcbiAgICAgIC8vIENoZWNrIGlmIHNlbGVjdGlvbiBpcyB3aXRoaW4gdGhpcyBibG9ja1xuICAgICAgY29uc3Qgc3RhcnRJbkJsb2NrID0gV3lzaXd5Z1NlbGVjdGlvbi5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShoZWFkaW5nQmxvY2ssIHNlbGVjdGlvbkluZm8uc3RhcnRDb250YWluZXIpO1xuICAgICAgY29uc3QgZW5kSW5CbG9jayA9IFd5c2l3eWdTZWxlY3Rpb24uY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaGVhZGluZ0Jsb2NrLCBzZWxlY3Rpb25JbmZvLmVuZENvbnRhaW5lcik7XG4gICAgICBcbiAgICAgIGlmIChzdGFydEluQmxvY2sgfHwgZW5kSW5CbG9jaykge1xuICAgICAgICBpZiAoc2VsZWN0ZWRUZXh0ICE9PSB0aGlzLmxhc3RTZWxlY3RlZFRleHQpIHtcbiAgICAgICAgICB0aGlzLmxhc3RTZWxlY3RlZFRleHQgPSBzZWxlY3RlZFRleHQ7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gQ3JlYXRlIHJhbmdlIGFuZCBnZXQgcmVjdFxuICAgICAgICAgIGNvbnN0IHJhbmdlID0gV3lzaXd5Z1NlbGVjdGlvbi5jcmVhdGVSYW5nZUZyb21JbmZvKHNlbGVjdGlvbkluZm8pO1xuICAgICAgICAgIGNvbnN0IHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBEaXNwYXRjaCBldmVudFxuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlbGVtZW50LCB7XG4gICAgICAgICAgICB0ZXh0OiBzZWxlY3RlZFRleHQudHJpbSgpLFxuICAgICAgICAgICAgYmxvY2tJZDogYmxvY2suaWQsXG4gICAgICAgICAgICByYW5nZTogcmFuZ2UsXG4gICAgICAgICAgICByZWN0OiByZWN0LFxuICAgICAgICAgICAgaGFzU2VsZWN0aW9uOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5sYXN0U2VsZWN0ZWRUZXh0KSB7XG4gICAgICAgIC8vIENsZWFyIHNlbGVjdGlvbiBpZiBubyBsb25nZXIgaW4gdGhpcyBibG9ja1xuICAgICAgICB0aGlzLmxhc3RTZWxlY3RlZFRleHQgPSAnJztcbiAgICAgICAgdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGVsZW1lbnQsIHtcbiAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICBibG9ja0lkOiBibG9jay5pZCxcbiAgICAgICAgICBoYXNTZWxlY3Rpb246IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgXG4gICAgLy8gTGlzdGVuIGZvciBzZWxlY3Rpb24gY2hhbmdlc1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbmNoYW5nZScsIGNoZWNrU2VsZWN0aW9uKTtcbiAgICBcbiAgICAvLyBTdG9yZSB0aGUgaGFuZGxlciBmb3IgY2xlYW51cFxuICAgIHRoaXMuc2VsZWN0aW9uSGFuZGxlciA9IGNoZWNrU2VsZWN0aW9uO1xuICAgIFxuICAgIC8vIENsZWFuIHVwIG9uIGRpc2Nvbm5lY3QgKHdpbGwgYmUgY2FsbGVkIGJ5IGRlZXMtd3lzaXd5Zy1ibG9jaylcbiAgICBjb25zdCB3eXNpd3lnQmxvY2sgPSAoaGVhZGluZ0Jsb2NrLmdldFJvb3ROb2RlKCkgYXMgU2hhZG93Um9vdCkuaG9zdCBhcyBhbnk7XG4gICAgaWYgKHd5c2l3eWdCbG9jaykge1xuICAgICAgY29uc3Qgb3JpZ2luYWxEaXNjb25uZWN0ZWRDYWxsYmFjayA9ICh3eXNpd3lnQmxvY2sgYXMgYW55KS5kaXNjb25uZWN0ZWRDYWxsYmFjaztcbiAgICAgICh3eXNpd3lnQmxvY2sgYXMgYW55KS5kaXNjb25uZWN0ZWRDYWxsYmFjayA9IGFzeW5jIGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25IYW5kbGVyKSB7XG4gICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgdGhpcy5zZWxlY3Rpb25IYW5kbGVyKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbkhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcmlnaW5hbERpc2Nvbm5lY3RlZENhbGxiYWNrKSB7XG4gICAgICAgICAgYXdhaXQgb3JpZ2luYWxEaXNjb25uZWN0ZWRDYWxsYmFjay5jYWxsKHd5c2l3eWdCbG9jayk7XG4gICAgICAgIH1cbiAgICAgIH0uYmluZCh0aGlzKTtcbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgZGV0YWlsOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnYmxvY2stdGV4dC1zZWxlY3RlZCcsIHtcbiAgICAgIGRldGFpbCxcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZVxuICAgIH0pO1xuICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH1cbiAgXG4gIGdldFN0eWxlcygpOiBzdHJpbmcge1xuICAgIC8vIFJldHVybiBzdHlsZXMgZm9yIGFsbCBoZWFkaW5nIGxldmVsc1xuICAgIHJldHVybiBgXG4gICAgICAuYmxvY2suaGVhZGluZy0xIHtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICBtYXJnaW46IDI0cHggMCA4cHggMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDAwMDAwJywgJyNmZmZmZmYnKX07XG4gICAgICB9XG5cbiAgICAgIC5ibG9jay5oZWFkaW5nLTIge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIG1hcmdpbjogMjBweCAwIDZweCAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAwMDAnLCAnI2ZmZmZmZicpfTtcbiAgICAgIH1cblxuICAgICAgLmJsb2NrLmhlYWRpbmctMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgbWFyZ2luOiAxNnB4IDAgNHB4IDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwMDAwMCcsICcjZmZmZmZmJyl9O1xuICAgICAgfVxuICAgIGA7XG4gIH1cbiAgXG4gIGdldFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoKHRoaXMubGV2ZWwpIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgcmV0dXJuICdIZWFkaW5nIDEnO1xuICAgICAgY2FzZSAyOlxuICAgICAgICByZXR1cm4gJ0hlYWRpbmcgMic7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIHJldHVybiAnSGVhZGluZyAzJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnSGVhZGluZyc7XG4gICAgfVxuICB9XG4gIFxuICAvKipcbiAgICogSGVscGVyIHRvIGdldCB0aGUgbGFzdCB0ZXh0IG5vZGUgaW4gYW4gZWxlbWVudFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRMYXN0VGV4dE5vZGUoZWxlbWVudDogTm9kZSk6IFRleHQgfCBudWxsIHtcbiAgICBpZiAoZWxlbWVudC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgIHJldHVybiBlbGVtZW50IGFzIFRleHQ7XG4gICAgfVxuICAgIFxuICAgIGZvciAobGV0IGkgPSBlbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGxhc3RUZXh0ID0gdGhpcy5nZXRMYXN0VGV4dE5vZGUoZWxlbWVudC5jaGlsZE5vZGVzW2ldKTtcbiAgICAgIGlmIChsYXN0VGV4dCkgcmV0dXJuIGxhc3RUZXh0O1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBcbiAgLy8gSGVscGVyIG1ldGhvZHMgZm9yIGhlYWRpbmcgZnVuY3Rpb25hbGl0eSAobW9zdGx5IHRoZSBzYW1lIGFzIHBhcmFncmFwaClcbiAgXG4gIGdldEN1cnNvclBvc2l0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0PzogYW55KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgLy8gR2V0IHRoZSBhY3R1YWwgaGVhZGluZyBlbGVtZW50XG4gICAgY29uc3QgaGVhZGluZ0Jsb2NrID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCkgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFoZWFkaW5nQmxvY2spIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBcbiAgICAvLyBHZXQgc2hhZG93IHJvb3RzIGZyb20gY29udGV4dFxuICAgIGNvbnN0IHd5c2l3eWdCbG9jayA9IGNvbnRleHQ/LmNvbXBvbmVudDtcbiAgICBjb25zdCBwYXJlbnRDb21wb25lbnQgPSB3eXNpd3lnQmxvY2s/LmNsb3Nlc3QoJ2RlZXMtaW5wdXQtd3lzaXd5ZycpO1xuICAgIGNvbnN0IHBhcmVudFNoYWRvd1Jvb3QgPSBwYXJlbnRDb21wb25lbnQ/LnNoYWRvd1Jvb3Q7XG4gICAgY29uc3QgYmxvY2tTaGFkb3dSb290ID0gY29udGV4dD8uc2hhZG93Um9vdDtcbiAgICBcbiAgICAvLyBHZXQgc2VsZWN0aW9uIGluZm8gd2l0aCBib3RoIHNoYWRvdyByb290cyBmb3IgcHJvcGVyIHRyYXZlcnNhbFxuICAgIGNvbnN0IHNoYWRvd1Jvb3RzOiBTaGFkb3dSb290W10gPSBbXTtcbiAgICBpZiAocGFyZW50U2hhZG93Um9vdCkgc2hhZG93Um9vdHMucHVzaChwYXJlbnRTaGFkb3dSb290KTtcbiAgICBpZiAoYmxvY2tTaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKGJsb2NrU2hhZG93Um9vdCk7XG4gICAgXG4gICAgY29uc3Qgc2VsZWN0aW9uSW5mbyA9IFd5c2l3eWdTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uSW5mbyguLi5zaGFkb3dSb290cyk7XG4gICAgXG4gICAgaWYgKCFzZWxlY3Rpb25JbmZvKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgaWYgKCFXeXNpd3lnU2VsZWN0aW9uLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGhlYWRpbmdCbG9jaywgc2VsZWN0aW9uSW5mby5zdGFydENvbnRhaW5lcikpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBcbiAgICAvLyBDcmVhdGUgYSByYW5nZSBmcm9tIHN0YXJ0IG9mIGVsZW1lbnQgdG8gY3Vyc29yIHBvc2l0aW9uXG4gICAgY29uc3QgcHJlQ2FyZXRSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgcHJlQ2FyZXRSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoaGVhZGluZ0Jsb2NrKTtcbiAgICBwcmVDYXJldFJhbmdlLnNldEVuZChzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyLCBzZWxlY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0KTtcbiAgICBcbiAgICAvLyBHZXQgdGhlIHRleHQgY29udGVudCBsZW5ndGggdXAgdG8gY3Vyc29yXG4gICAgY29uc3QgcG9zaXRpb24gPSBwcmVDYXJldFJhbmdlLnRvU3RyaW5nKCkubGVuZ3RoO1xuICAgIFxuICAgIHJldHVybiBwb3NpdGlvbjtcbiAgfVxuICBcbiAgZ2V0Q29udGVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dD86IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgaGVhZGluZ0Jsb2NrID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCkgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFoZWFkaW5nQmxvY2spIHJldHVybiAnJztcbiAgICBcbiAgICAvLyBGb3IgaGVhZGluZ3MsIGdldCB0aGUgaW5uZXJIVE1MIHdoaWNoIGluY2x1ZGVzIGZvcm1hdHRpbmcgdGFnc1xuICAgIGNvbnN0IGNvbnRlbnQgPSBoZWFkaW5nQmxvY2suaW5uZXJIVE1MIHx8ICcnO1xuICAgIHJldHVybiBjb250ZW50O1xuICB9XG4gIFxuICBzZXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZW50OiBzdHJpbmcsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBoZWFkaW5nQmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoIWhlYWRpbmdCbG9jaykgcmV0dXJuO1xuICAgIFxuICAgIC8vIFN0b3JlIGlmIHdlIGhhdmUgZm9jdXNcbiAgICBjb25zdCBoYWRGb2N1cyA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGhlYWRpbmdCbG9jayB8fCBcbiAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCA9PT0gaGVhZGluZ0Jsb2NrO1xuICAgIFxuICAgIGhlYWRpbmdCbG9jay5pbm5lckhUTUwgPSBjb250ZW50O1xuICAgIFxuICAgIC8vIFJlc3RvcmUgZm9jdXMgaWYgd2UgaGFkIGl0XG4gICAgaWYgKGhhZEZvY3VzKSB7XG4gICAgICBoZWFkaW5nQmxvY2suZm9jdXMoKTtcbiAgICB9XG4gIH1cbiAgXG4gIHNldEN1cnNvclRvU3RhcnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBoZWFkaW5nQmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoaGVhZGluZ0Jsb2NrKSB7XG4gICAgICBXeXNpd3lnQmxvY2tzLnNldEN1cnNvclRvU3RhcnQoaGVhZGluZ0Jsb2NrKTtcbiAgICB9XG4gIH1cbiAgXG4gIHNldEN1cnNvclRvRW5kKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0PzogYW55KTogdm9pZCB7XG4gICAgY29uc3QgaGVhZGluZ0Jsb2NrID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCkgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKGhlYWRpbmdCbG9jaykge1xuICAgICAgV3lzaXd5Z0Jsb2Nrcy5zZXRDdXJzb3JUb0VuZChoZWFkaW5nQmxvY2spO1xuICAgIH1cbiAgfVxuICBcbiAgZm9jdXMoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBoZWFkaW5nQmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoIWhlYWRpbmdCbG9jaykgcmV0dXJuO1xuICAgIFxuICAgIC8vIEVuc3VyZSB0aGUgZWxlbWVudCBpcyBmb2N1c2FibGVcbiAgICBpZiAoIWhlYWRpbmdCbG9jay5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpKSB7XG4gICAgICBoZWFkaW5nQmxvY2suc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAndHJ1ZScpO1xuICAgIH1cbiAgICBcbiAgICBoZWFkaW5nQmxvY2suZm9jdXMoKTtcbiAgICBcbiAgICAvLyBJZiBmb2N1cyBmYWlsZWQsIHRyeSBhZ2FpbiBhZnRlciBhIG1pY3JvdGFza1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBoZWFkaW5nQmxvY2sgJiYgZWxlbWVudC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50ICE9PSBoZWFkaW5nQmxvY2spIHtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBoZWFkaW5nQmxvY2suZm9jdXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgZm9jdXNXaXRoQ3Vyc29yKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnIHwgbnVtYmVyID0gJ2VuZCcsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBoZWFkaW5nQmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoIWhlYWRpbmdCbG9jaykgcmV0dXJuO1xuICAgIFxuICAgIFxuICAgIC8vIEVuc3VyZSBlbGVtZW50IGlzIGZvY3VzYWJsZSBmaXJzdFxuICAgIGlmICghaGVhZGluZ0Jsb2NrLmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykpIHtcbiAgICAgIGhlYWRpbmdCbG9jay5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICd0cnVlJyk7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciAnZW5kJyBwb3NpdGlvbiwgd2UgbmVlZCB0byBzZXQgdXAgc2VsZWN0aW9uIGJlZm9yZSBmb2N1cyB0byBwcmV2ZW50IGJyb3dzZXIgZGVmYXVsdFxuICAgIGlmIChwb3NpdGlvbiA9PT0gJ2VuZCcgJiYgaGVhZGluZ0Jsb2NrLnRleHRDb250ZW50ICYmIGhlYWRpbmdCbG9jay50ZXh0Q29udGVudC5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBTZXQgdXAgdGhlIHNlbGVjdGlvbiBmaXJzdFxuICAgICAgY29uc3Qgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgaWYgKHNlbCkge1xuICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgIGNvbnN0IGxhc3ROb2RlID0gdGhpcy5nZXRMYXN0VGV4dE5vZGUoaGVhZGluZ0Jsb2NrKSB8fCBoZWFkaW5nQmxvY2s7XG4gICAgICAgIGlmIChsYXN0Tm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgICByYW5nZS5zZXRTdGFydChsYXN0Tm9kZSwgbGFzdE5vZGUudGV4dENvbnRlbnQ/Lmxlbmd0aCB8fCAwKTtcbiAgICAgICAgICByYW5nZS5zZXRFbmQobGFzdE5vZGUsIGxhc3ROb2RlLnRleHRDb250ZW50Py5sZW5ndGggfHwgMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGxhc3ROb2RlKTtcbiAgICAgICAgICByYW5nZS5jb2xsYXBzZShmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICBzZWwuYWRkUmFuZ2UocmFuZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBOb3cgZm9jdXMgdGhlIGVsZW1lbnRcbiAgICBoZWFkaW5nQmxvY2suZm9jdXMoKTtcbiAgICBcbiAgICAvLyBTZXQgY3Vyc29yIHBvc2l0aW9uIGFmdGVyIGZvY3VzIGlzIGVzdGFibGlzaGVkIChmb3Igbm9uLWVuZCBwb3NpdGlvbnMpXG4gICAgY29uc3Qgc2V0Q3Vyc29yID0gKCkgPT4ge1xuICAgICAgaWYgKHBvc2l0aW9uID09PSAnc3RhcnQnKSB7XG4gICAgICAgIHRoaXMuc2V0Q3Vyc29yVG9TdGFydChlbGVtZW50LCBjb250ZXh0KTtcbiAgICAgIH0gZWxzZSBpZiAocG9zaXRpb24gPT09ICdlbmQnICYmICghaGVhZGluZ0Jsb2NrLnRleHRDb250ZW50IHx8IGhlYWRpbmdCbG9jay50ZXh0Q29udGVudC5sZW5ndGggPT09IDApKSB7XG4gICAgICAgIC8vIE9ubHkgY2FsbCBzZXRDdXJzb3JUb0VuZCBmb3IgZW1wdHkgYmxvY2tzXG4gICAgICAgIHRoaXMuc2V0Q3Vyc29yVG9FbmQoZWxlbWVudCwgY29udGV4dCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwb3NpdGlvbiA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgLy8gVXNlIHRoZSBzZWxlY3Rpb24gdXRpbGl0eSB0byBzZXQgY3Vyc29yIHBvc2l0aW9uXG4gICAgICAgIFd5c2l3eWdTZWxlY3Rpb24uc2V0Q3Vyc29yUG9zaXRpb24oaGVhZGluZ0Jsb2NrLCBwb3NpdGlvbik7XG4gICAgICB9XG4gICAgfTtcbiAgICBcbiAgICAvLyBFbnN1cmUgY3Vyc29yIGlzIHNldCBhZnRlciBmb2N1c1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBoZWFkaW5nQmxvY2sgfHwgZWxlbWVudC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50ID09PSBoZWFkaW5nQmxvY2spIHtcbiAgICAgIHNldEN1cnNvcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXYWl0IGZvciBmb2N1cyB0byBiZSBlc3RhYmxpc2hlZFxuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBoZWFkaW5nQmxvY2sgfHwgZWxlbWVudC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50ID09PSBoZWFkaW5nQmxvY2spIHtcbiAgICAgICAgICBzZXRDdXJzb3IoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUcnkgYWdhaW4gd2l0aCBhIHNtYWxsIGRlbGF5IC0gc29tZXRpbWVzIGZvY3VzIG5lZWRzIG1vcmUgdGltZVxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGhlYWRpbmdCbG9jayB8fCBlbGVtZW50LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQgPT09IGhlYWRpbmdCbG9jaykge1xuICAgICAgICAgICAgICBzZXRDdXJzb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCAxMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgZ2V0U3BsaXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0PzogYW55KTogeyBiZWZvcmU6IHN0cmluZzsgYWZ0ZXI6IHN0cmluZyB9IHwgbnVsbCB7XG4gICAgY29uc3QgaGVhZGluZ0Jsb2NrID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCkgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFoZWFkaW5nQmxvY2spIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBcbiAgICAvLyBHZXQgc2hhZG93IHJvb3RzIGZyb20gY29udGV4dFxuICAgIGNvbnN0IHd5c2l3eWdCbG9jayA9IGNvbnRleHQ/LmNvbXBvbmVudDtcbiAgICBjb25zdCBwYXJlbnRDb21wb25lbnQgPSB3eXNpd3lnQmxvY2s/LmNsb3Nlc3QoJ2RlZXMtaW5wdXQtd3lzaXd5ZycpO1xuICAgIGNvbnN0IHBhcmVudFNoYWRvd1Jvb3QgPSBwYXJlbnRDb21wb25lbnQ/LnNoYWRvd1Jvb3Q7XG4gICAgY29uc3QgYmxvY2tTaGFkb3dSb290ID0gY29udGV4dD8uc2hhZG93Um9vdDtcbiAgICBcbiAgICAvLyBHZXQgc2VsZWN0aW9uIGluZm8gd2l0aCBib3RoIHNoYWRvdyByb290cyBmb3IgcHJvcGVyIHRyYXZlcnNhbFxuICAgIGNvbnN0IHNoYWRvd1Jvb3RzOiBTaGFkb3dSb290W10gPSBbXTtcbiAgICBpZiAocGFyZW50U2hhZG93Um9vdCkgc2hhZG93Um9vdHMucHVzaChwYXJlbnRTaGFkb3dSb290KTtcbiAgICBpZiAoYmxvY2tTaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKGJsb2NrU2hhZG93Um9vdCk7XG4gICAgXG4gICAgY29uc3Qgc2VsZWN0aW9uSW5mbyA9IFd5c2l3eWdTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uSW5mbyguLi5zaGFkb3dSb290cyk7XG4gICAgXG4gICAgaWYgKCFzZWxlY3Rpb25JbmZvKSB7XG4gICAgICAvLyBUcnkgdXNpbmcgbGFzdCBrbm93biBjdXJzb3IgcG9zaXRpb25cbiAgICAgIGlmICh0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGZ1bGxUZXh0ID0gaGVhZGluZ0Jsb2NrLnRleHRDb250ZW50IHx8ICcnO1xuICAgICAgICBjb25zdCBwb3MgPSBNYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLCBmdWxsVGV4dC5sZW5ndGgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJlZm9yZTogZnVsbFRleHQuc3Vic3RyaW5nKDAsIHBvcyksXG4gICAgICAgICAgYWZ0ZXI6IGZ1bGxUZXh0LnN1YnN0cmluZyhwb3MpXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgLy8gTWFrZSBzdXJlIHRoZSBzZWxlY3Rpb24gaXMgd2l0aGluIHRoaXMgYmxvY2tcbiAgICBpZiAoIVd5c2l3eWdTZWxlY3Rpb24uY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaGVhZGluZ0Jsb2NrLCBzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyKSkge1xuICAgICAgLy8gVHJ5IHVzaW5nIGxhc3Qga25vd24gY3Vyc29yIHBvc2l0aW9uXG4gICAgICBpZiAodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmdWxsVGV4dCA9IGhlYWRpbmdCbG9jay50ZXh0Q29udGVudCB8fCAnJztcbiAgICAgICAgY29uc3QgcG9zID0gTWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiwgZnVsbFRleHQubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBiZWZvcmU6IGZ1bGxUZXh0LnN1YnN0cmluZygwLCBwb3MpLFxuICAgICAgICAgIGFmdGVyOiBmdWxsVGV4dC5zdWJzdHJpbmcocG9zKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIC8vIEdldCBjdXJzb3IgcG9zaXRpb24gZmlyc3RcbiAgICBjb25zdCBjdXJzb3JQb3MgPSB0aGlzLmdldEN1cnNvclBvc2l0aW9uKGVsZW1lbnQsIGNvbnRleHQpO1xuICAgIFxuICAgIGlmIChjdXJzb3JQb3MgPT09IG51bGwgfHwgY3Vyc29yUG9zID09PSAwKSB7XG4gICAgICAvLyBJZiBjdXJzb3IgaXMgYXQgc3RhcnQgb3IgY2FuJ3QgZGV0ZXJtaW5lIHBvc2l0aW9uLCBtb3ZlIGFsbCBjb250ZW50XG4gICAgICByZXR1cm4ge1xuICAgICAgICBiZWZvcmU6ICcnLFxuICAgICAgICBhZnRlcjogaGVhZGluZ0Jsb2NrLmlubmVySFRNTFxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgLy8gRm9yIEhUTUwgY29udGVudCwgc3BsaXQgdXNpbmcgcmFuZ2VzIHRvIHByZXNlcnZlIGZvcm1hdHRpbmdcbiAgICBjb25zdCBiZWZvcmVSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgY29uc3QgYWZ0ZXJSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgXG4gICAgLy8gQmVmb3JlIHJhbmdlOiBmcm9tIHN0YXJ0IG9mIGVsZW1lbnQgdG8gY3Vyc29yXG4gICAgYmVmb3JlUmFuZ2Uuc2V0U3RhcnQoaGVhZGluZ0Jsb2NrLCAwKTtcbiAgICBiZWZvcmVSYW5nZS5zZXRFbmQoc2VsZWN0aW9uSW5mby5zdGFydENvbnRhaW5lciwgc2VsZWN0aW9uSW5mby5zdGFydE9mZnNldCk7XG4gICAgXG4gICAgLy8gQWZ0ZXIgcmFuZ2U6IGZyb20gY3Vyc29yIHRvIGVuZCBvZiBlbGVtZW50XG4gICAgYWZ0ZXJSYW5nZS5zZXRTdGFydChzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyLCBzZWxlY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0KTtcbiAgICBhZnRlclJhbmdlLnNldEVuZChoZWFkaW5nQmxvY2ssIGhlYWRpbmdCbG9jay5jaGlsZE5vZGVzLmxlbmd0aCk7XG4gICAgXG4gICAgLy8gRXh0cmFjdCBIVE1MIGNvbnRlbnRcbiAgICBjb25zdCBiZWZvcmVGcmFnbWVudCA9IGJlZm9yZVJhbmdlLmNsb25lQ29udGVudHMoKTtcbiAgICBjb25zdCBhZnRlckZyYWdtZW50ID0gYWZ0ZXJSYW5nZS5jbG9uZUNvbnRlbnRzKCk7XG4gICAgXG4gICAgLy8gQ29udmVydCB0byBIVE1MIHN0cmluZ3NcbiAgICBjb25zdCB0ZW1wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGVtcERpdi5hcHBlbmRDaGlsZChiZWZvcmVGcmFnbWVudCk7XG4gICAgY29uc3QgYmVmb3JlSHRtbCA9IHRlbXBEaXYuaW5uZXJIVE1MO1xuICAgIFxuICAgIHRlbXBEaXYuaW5uZXJIVE1MID0gJyc7XG4gICAgdGVtcERpdi5hcHBlbmRDaGlsZChhZnRlckZyYWdtZW50KTtcbiAgICBjb25zdCBhZnRlckh0bWwgPSB0ZW1wRGl2LmlubmVySFRNTDtcbiAgICBcbiAgICByZXR1cm4geyBcbiAgICAgIGJlZm9yZTogYmVmb3JlSHRtbCwgXG4gICAgICBhZnRlcjogYWZ0ZXJIdG1sIFxuICAgIH07XG4gIH1cbn0iLCAiaW1wb3J0IHsgQmFzZUJsb2NrSGFuZGxlciwgdHlwZSBJQmxvY2tFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi4vYmxvY2suYmFzZS5qcyc7XG5pbXBvcnQgdHlwZSB7IElCbG9jayB9IGZyb20gJy4uLy4uL3d5c2l3eWcudHlwZXMuanMnO1xuaW1wb3J0IHsgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBXeXNpd3lnQmxvY2tzIH0gZnJvbSAnLi4vLi4vd3lzaXd5Zy5ibG9ja3MuanMnO1xuaW1wb3J0IHsgV3lzaXd5Z1NlbGVjdGlvbiB9IGZyb20gJy4uLy4uL3d5c2l3eWcuc2VsZWN0aW9uLmpzJztcblxuZXhwb3J0IGNsYXNzIFF1b3RlQmxvY2tIYW5kbGVyIGV4dGVuZHMgQmFzZUJsb2NrSGFuZGxlciB7XG4gIHR5cGUgPSAncXVvdGUnO1xuICBcbiAgLy8gVHJhY2sgY3Vyc29yIHBvc2l0aW9uXG4gIHByaXZhdGUgbGFzdEtub3duQ3Vyc29yUG9zaXRpb246IG51bWJlciA9IDA7XG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkVGV4dDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgc2VsZWN0aW9uSGFuZGxlcjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIFxuICByZW5kZXIoYmxvY2s6IElCbG9jaywgaXNTZWxlY3RlZDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VsZWN0ZWRDbGFzcyA9IGlzU2VsZWN0ZWQgPyAnIHNlbGVjdGVkJyA6ICcnO1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gdGhpcy5nZXRQbGFjZWhvbGRlcigpO1xuICAgIFxuICAgIFxuICAgIHJldHVybiBgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYmxvY2sgcXVvdGUke3NlbGVjdGVkQ2xhc3N9XCJcbiAgICAgICAgY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXG4gICAgICAgIGRhdGEtcGxhY2Vob2xkZXI9XCIke3BsYWNlaG9sZGVyfVwiXG4gICAgICAgIGRhdGEtYmxvY2staWQ9XCIke2Jsb2NrLmlkfVwiXG4gICAgICAgIGRhdGEtYmxvY2stdHlwZT1cIiR7YmxvY2sudHlwZX1cIlxuICAgICAgPjwvZGl2PlxuICAgIGA7XG4gIH1cbiAgXG4gIHNldHVwKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBibG9jazogSUJsb2NrLCBoYW5kbGVyczogSUJsb2NrRXZlbnRIYW5kbGVycyk6IHZvaWQge1xuICAgIGNvbnN0IHF1b3RlQmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5xdW90ZScpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGlmICghcXVvdGVCbG9jaykge1xuICAgICAgY29uc29sZS5lcnJvcignUXVvdGVCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIHF1b3RlIGJsb2NrIGVsZW1lbnQgZm91bmQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gU2V0IGluaXRpYWwgY29udGVudCBpZiBuZWVkZWRcbiAgICBpZiAoYmxvY2suY29udGVudCAmJiAhcXVvdGVCbG9jay5pbm5lckhUTUwpIHtcbiAgICAgIHF1b3RlQmxvY2suaW5uZXJIVE1MID0gYmxvY2suY29udGVudDtcbiAgICB9XG4gICAgXG4gICAgLy8gSW5wdXQgaGFuZGxlciB3aXRoIGN1cnNvciB0cmFja2luZ1xuICAgIHF1b3RlQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoZSkgPT4ge1xuICAgICAgaGFuZGxlcnMub25JbnB1dChlIGFzIElucHV0RXZlbnQpO1xuICAgICAgXG4gICAgICAvLyBUcmFjayBjdXJzb3IgcG9zaXRpb24gYWZ0ZXIgaW5wdXRcbiAgICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudCk7XG4gICAgICBpZiAocG9zICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gPSBwb3M7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgLy8gS2V5ZG93biBoYW5kbGVyIHdpdGggY3Vyc29yIHRyYWNraW5nXG4gICAgcXVvdGVCbG9jay5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHtcbiAgICAgIC8vIFRyYWNrIGN1cnNvciBwb3NpdGlvbiBiZWZvcmUga2V5ZG93blxuICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50KTtcbiAgICAgIGlmIChwb3MgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiA9IHBvcztcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaGFuZGxlcnMub25LZXlEb3duKGUpO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIEZvY3VzIGhhbmRsZXJcbiAgICBxdW90ZUJsb2NrLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgaGFuZGxlcnMub25Gb2N1cygpO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIEJsdXIgaGFuZGxlclxuICAgIHF1b3RlQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgIGhhbmRsZXJzLm9uQmx1cigpO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIENvbXBvc2l0aW9uIGhhbmRsZXJzIGZvciBJTUUgc3VwcG9ydFxuICAgIHF1b3RlQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignY29tcG9zaXRpb25zdGFydCcsICgpID0+IHtcbiAgICAgIGhhbmRsZXJzLm9uQ29tcG9zaXRpb25TdGFydCgpO1xuICAgIH0pO1xuICAgIFxuICAgIHF1b3RlQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignY29tcG9zaXRpb25lbmQnLCAoKSA9PiB7XG4gICAgICBoYW5kbGVycy5vbkNvbXBvc2l0aW9uRW5kKCk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gTW91c2UgdXAgaGFuZGxlclxuICAgIHF1b3RlQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIChlKSA9PiB7XG4gICAgICBjb25zdCBwb3MgPSB0aGlzLmdldEN1cnNvclBvc2l0aW9uKGVsZW1lbnQpO1xuICAgICAgaWYgKHBvcyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uID0gcG9zO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBTZWxlY3Rpb24gd2lsbCBiZSBoYW5kbGVkIGJ5IHNlbGVjdGlvbmNoYW5nZSBldmVudFxuICAgICAgaGFuZGxlcnMub25Nb3VzZVVwPy4oZSk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gQ2xpY2sgaGFuZGxlciB3aXRoIGRlbGF5ZWQgY3Vyc29yIHRyYWNraW5nXG4gICAgcXVvdGVCbG9jay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAvLyBTbWFsbCBkZWxheSB0byBsZXQgYnJvd3NlciBzZXQgY3Vyc29yIHBvc2l0aW9uXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50KTtcbiAgICAgICAgaWYgKHBvcyAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gPSBwb3M7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIEtleXVwIGhhbmRsZXIgZm9yIGFkZGl0aW9uYWwgY3Vyc29yIHRyYWNraW5nXG4gICAgcXVvdGVCbG9jay5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChlKSA9PiB7XG4gICAgICBjb25zdCBwb3MgPSB0aGlzLmdldEN1cnNvclBvc2l0aW9uKGVsZW1lbnQpO1xuICAgICAgaWYgKHBvcyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uID0gcG9zO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIFNldCB1cCBzZWxlY3Rpb24gY2hhbmdlIGhhbmRsZXJcbiAgICB0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlbGVtZW50LCBxdW90ZUJsb2NrLCBibG9jayk7XG4gIH1cbiAgXG4gIHByaXZhdGUgc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBxdW90ZUJsb2NrOiBIVE1MRGl2RWxlbWVudCwgYmxvY2s6IElCbG9jayk6IHZvaWQge1xuICAgIC8vIEFkZCBzZWxlY3Rpb24gY2hhbmdlIGhhbmRsZXJcbiAgICBjb25zdCBjaGVja1NlbGVjdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSByZXR1cm47XG4gICAgICBcbiAgICAgIGNvbnN0IHNlbGVjdGVkVGV4dCA9IHNlbGVjdGlvbi50b1N0cmluZygpO1xuICAgICAgaWYgKHNlbGVjdGVkVGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gQ2xlYXIgc2VsZWN0aW9uIGlmIG5vIHRleHRcbiAgICAgICAgaWYgKHRoaXMubGFzdFNlbGVjdGVkVGV4dCkge1xuICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVGV4dCA9ICcnO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlbGVtZW50LCB7XG4gICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgIGJsb2NrSWQ6IGJsb2NrLmlkLFxuICAgICAgICAgICAgaGFzU2VsZWN0aW9uOiBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gR2V0IHBhcmVudCB3eXNpd3lnIGNvbXBvbmVudCdzIHNoYWRvdyByb290IC0gdHJhdmVyc2UgZnJvbSBzaGFkb3cgcm9vdFxuICAgICAgY29uc3Qgd3lzaXd5Z0Jsb2NrID0gKHF1b3RlQmxvY2suZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KS5ob3N0IGFzIGFueTtcbiAgICAgIGNvbnN0IHBhcmVudENvbXBvbmVudCA9IHd5c2l3eWdCbG9jaz8uY2xvc2VzdCgnZGVlcy1pbnB1dC13eXNpd3lnJyk7XG4gICAgICBjb25zdCBwYXJlbnRTaGFkb3dSb290ID0gcGFyZW50Q29tcG9uZW50Py5zaGFkb3dSb290O1xuICAgICAgY29uc3QgYmxvY2tTaGFkb3dSb290ID0gd3lzaXd5Z0Jsb2NrPy5zaGFkb3dSb290O1xuICAgICAgXG4gICAgICAvLyBVc2UgZ2V0Q29tcG9zZWRSYW5nZXMgd2l0aCBzaGFkb3cgcm9vdHMgYXMgcGVyIE1ETiBkb2NzXG4gICAgICBjb25zdCBzaGFkb3dSb290czogU2hhZG93Um9vdFtdID0gW107XG4gICAgICBpZiAocGFyZW50U2hhZG93Um9vdCkgc2hhZG93Um9vdHMucHVzaChwYXJlbnRTaGFkb3dSb290KTtcbiAgICAgIGlmIChibG9ja1NoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2goYmxvY2tTaGFkb3dSb290KTtcbiAgICAgIFxuICAgICAgLy8gR2V0IHNlbGVjdGlvbiBpbmZvIHVzaW5nIG91ciBTaGFkb3cgRE9NLWF3YXJlIHV0aWxpdHlcbiAgICAgIGNvbnN0IHNlbGVjdGlvbkluZm8gPSBXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8oLi4uc2hhZG93Um9vdHMpO1xuICAgICAgaWYgKCFzZWxlY3Rpb25JbmZvKSByZXR1cm47XG4gICAgICBcbiAgICAgIC8vIENoZWNrIGlmIHNlbGVjdGlvbiBpcyB3aXRoaW4gdGhpcyBibG9ja1xuICAgICAgY29uc3Qgc3RhcnRJbkJsb2NrID0gV3lzaXd5Z1NlbGVjdGlvbi5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShxdW90ZUJsb2NrLCBzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyKTtcbiAgICAgIGNvbnN0IGVuZEluQmxvY2sgPSBXeXNpd3lnU2VsZWN0aW9uLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHF1b3RlQmxvY2ssIHNlbGVjdGlvbkluZm8uZW5kQ29udGFpbmVyKTtcbiAgICAgIFxuICAgICAgaWYgKHN0YXJ0SW5CbG9jayB8fCBlbmRJbkJsb2NrKSB7XG4gICAgICAgIGlmIChzZWxlY3RlZFRleHQgIT09IHRoaXMubGFzdFNlbGVjdGVkVGV4dCkge1xuICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVGV4dCA9IHNlbGVjdGVkVGV4dDtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBDcmVhdGUgcmFuZ2UgYW5kIGdldCByZWN0XG4gICAgICAgICAgY29uc3QgcmFuZ2UgPSBXeXNpd3lnU2VsZWN0aW9uLmNyZWF0ZVJhbmdlRnJvbUluZm8oc2VsZWN0aW9uSW5mbyk7XG4gICAgICAgICAgY29uc3QgcmVjdCA9IHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIERpc3BhdGNoIGV2ZW50XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGVsZW1lbnQsIHtcbiAgICAgICAgICAgIHRleHQ6IHNlbGVjdGVkVGV4dC50cmltKCksXG4gICAgICAgICAgICBibG9ja0lkOiBibG9jay5pZCxcbiAgICAgICAgICAgIHJhbmdlOiByYW5nZSxcbiAgICAgICAgICAgIHJlY3Q6IHJlY3QsXG4gICAgICAgICAgICBoYXNTZWxlY3Rpb246IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLmxhc3RTZWxlY3RlZFRleHQpIHtcbiAgICAgICAgLy8gQ2xlYXIgc2VsZWN0aW9uIGlmIG5vIGxvbmdlciBpbiB0aGlzIGJsb2NrXG4gICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVGV4dCA9ICcnO1xuICAgICAgICB0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZWxlbWVudCwge1xuICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgIGJsb2NrSWQ6IGJsb2NrLmlkLFxuICAgICAgICAgIGhhc1NlbGVjdGlvbjogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBcbiAgICAvLyBMaXN0ZW4gZm9yIHNlbGVjdGlvbiBjaGFuZ2VzXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgY2hlY2tTZWxlY3Rpb24pO1xuICAgIFxuICAgIC8vIFN0b3JlIHRoZSBoYW5kbGVyIGZvciBjbGVhbnVwXG4gICAgdGhpcy5zZWxlY3Rpb25IYW5kbGVyID0gY2hlY2tTZWxlY3Rpb247XG4gICAgXG4gICAgLy8gQ2xlYW4gdXAgb24gZGlzY29ubmVjdCAod2lsbCBiZSBjYWxsZWQgYnkgZGVlcy13eXNpd3lnLWJsb2NrKVxuICAgIGNvbnN0IHd5c2l3eWdCbG9jayA9IChxdW90ZUJsb2NrLmdldFJvb3ROb2RlKCkgYXMgU2hhZG93Um9vdCkuaG9zdCBhcyBhbnk7XG4gICAgaWYgKHd5c2l3eWdCbG9jaykge1xuICAgICAgY29uc3Qgb3JpZ2luYWxEaXNjb25uZWN0ZWRDYWxsYmFjayA9ICh3eXNpd3lnQmxvY2sgYXMgYW55KS5kaXNjb25uZWN0ZWRDYWxsYmFjaztcbiAgICAgICh3eXNpd3lnQmxvY2sgYXMgYW55KS5kaXNjb25uZWN0ZWRDYWxsYmFjayA9IGFzeW5jIGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25IYW5kbGVyKSB7XG4gICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgdGhpcy5zZWxlY3Rpb25IYW5kbGVyKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbkhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcmlnaW5hbERpc2Nvbm5lY3RlZENhbGxiYWNrKSB7XG4gICAgICAgICAgYXdhaXQgb3JpZ2luYWxEaXNjb25uZWN0ZWRDYWxsYmFjay5jYWxsKHd5c2l3eWdCbG9jayk7XG4gICAgICAgIH1cbiAgICAgIH0uYmluZCh0aGlzKTtcbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgZGV0YWlsOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnYmxvY2stdGV4dC1zZWxlY3RlZCcsIHtcbiAgICAgIGRldGFpbCxcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZVxuICAgIH0pO1xuICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH1cbiAgXG4gIGdldFN0eWxlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXG4gICAgICAvKiBRdW90ZSBzcGVjaWZpYyBzdHlsZXMgKi9cbiAgICAgIC5ibG9jay5xdW90ZSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDY2Y2MnLCAnIzRkOTRmZicpfTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM1NTUnLCAnI2IwYjBiMCcpfTtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgICBtYXJnaW46IDE2cHggMDtcbiAgICAgIH1cbiAgICBgO1xuICB9XG4gIFxuICBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiAnQWRkIGEgcXVvdGUuLi4nO1xuICB9XG4gIFxuICAvLyBIZWxwZXIgbWV0aG9kcyBmb3IgcXVvdGUgZnVuY3Rpb25hbGl0eVxuICBcbiAgZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBhbnkpOiBudW1iZXIgfCBudWxsIHtcbiAgICAvLyBHZXQgdGhlIGFjdHVhbCBxdW90ZSBlbGVtZW50XG4gICAgY29uc3QgcXVvdGVCbG9jayA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJsb2NrLnF1b3RlJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFxdW90ZUJsb2NrKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgLy8gR2V0IHNoYWRvdyByb290cyBmcm9tIGNvbnRleHRcbiAgICBjb25zdCB3eXNpd3lnQmxvY2sgPSBjb250ZXh0Py5jb21wb25lbnQ7XG4gICAgY29uc3QgcGFyZW50Q29tcG9uZW50ID0gd3lzaXd5Z0Jsb2NrPy5jbG9zZXN0KCdkZWVzLWlucHV0LXd5c2l3eWcnKTtcbiAgICBjb25zdCBwYXJlbnRTaGFkb3dSb290ID0gcGFyZW50Q29tcG9uZW50Py5zaGFkb3dSb290O1xuICAgIGNvbnN0IGJsb2NrU2hhZG93Um9vdCA9IGNvbnRleHQ/LnNoYWRvd1Jvb3Q7XG4gICAgXG4gICAgLy8gR2V0IHNlbGVjdGlvbiBpbmZvIHdpdGggYm90aCBzaGFkb3cgcm9vdHMgZm9yIHByb3BlciB0cmF2ZXJzYWxcbiAgICBjb25zdCBzaGFkb3dSb290czogU2hhZG93Um9vdFtdID0gW107XG4gICAgaWYgKHBhcmVudFNoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2gocGFyZW50U2hhZG93Um9vdCk7XG4gICAgaWYgKGJsb2NrU2hhZG93Um9vdCkgc2hhZG93Um9vdHMucHVzaChibG9ja1NoYWRvd1Jvb3QpO1xuICAgIFxuICAgIGNvbnN0IHNlbGVjdGlvbkluZm8gPSBXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8oLi4uc2hhZG93Um9vdHMpO1xuICAgIFxuICAgIGlmICghc2VsZWN0aW9uSW5mbykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIGlmICghV3lzaXd5Z1NlbGVjdGlvbi5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShxdW90ZUJsb2NrLCBzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIC8vIENyZWF0ZSBhIHJhbmdlIGZyb20gc3RhcnQgb2YgZWxlbWVudCB0byBjdXJzb3IgcG9zaXRpb25cbiAgICBjb25zdCBwcmVDYXJldFJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICBwcmVDYXJldFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhxdW90ZUJsb2NrKTtcbiAgICBwcmVDYXJldFJhbmdlLnNldEVuZChzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyLCBzZWxlY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0KTtcbiAgICBcbiAgICAvLyBHZXQgdGhlIHRleHQgY29udGVudCBsZW5ndGggdXAgdG8gY3Vyc29yXG4gICAgY29uc3QgcG9zaXRpb24gPSBwcmVDYXJldFJhbmdlLnRvU3RyaW5nKCkubGVuZ3RoO1xuICAgIFxuICAgIHJldHVybiBwb3NpdGlvbjtcbiAgfVxuICBcbiAgZ2V0Q29udGVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dD86IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgcXVvdGVCbG9jayA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJsb2NrLnF1b3RlJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFxdW90ZUJsb2NrKSByZXR1cm4gJyc7XG4gICAgXG4gICAgLy8gRm9yIHF1b3RlcywgZ2V0IHRoZSBpbm5lckhUTUwgd2hpY2ggaW5jbHVkZXMgZm9ybWF0dGluZyB0YWdzXG4gICAgY29uc3QgY29udGVudCA9IHF1b3RlQmxvY2suaW5uZXJIVE1MIHx8ICcnO1xuICAgIHJldHVybiBjb250ZW50O1xuICB9XG4gIFxuICBzZXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZW50OiBzdHJpbmcsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBxdW90ZUJsb2NrID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYmxvY2sucXVvdGUnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoIXF1b3RlQmxvY2spIHJldHVybjtcbiAgICBcbiAgICAvLyBTdG9yZSBpZiB3ZSBoYXZlIGZvY3VzXG4gICAgY29uc3QgaGFkRm9jdXMgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBxdW90ZUJsb2NrIHx8IFxuICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50ID09PSBxdW90ZUJsb2NrO1xuICAgIFxuICAgIHF1b3RlQmxvY2suaW5uZXJIVE1MID0gY29udGVudDtcbiAgICBcbiAgICAvLyBSZXN0b3JlIGZvY3VzIGlmIHdlIGhhZCBpdFxuICAgIGlmIChoYWRGb2N1cykge1xuICAgICAgcXVvdGVCbG9jay5mb2N1cygpO1xuICAgIH1cbiAgfVxuICBcbiAgc2V0Q3Vyc29yVG9TdGFydChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dD86IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHF1b3RlQmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5xdW90ZScpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGlmIChxdW90ZUJsb2NrKSB7XG4gICAgICBXeXNpd3lnQmxvY2tzLnNldEN1cnNvclRvU3RhcnQocXVvdGVCbG9jayk7XG4gICAgfVxuICB9XG4gIFxuICBzZXRDdXJzb3JUb0VuZChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dD86IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHF1b3RlQmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5xdW90ZScpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGlmIChxdW90ZUJsb2NrKSB7XG4gICAgICBXeXNpd3lnQmxvY2tzLnNldEN1cnNvclRvRW5kKHF1b3RlQmxvY2spO1xuICAgIH1cbiAgfVxuICBcbiAgZm9jdXMoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBxdW90ZUJsb2NrID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYmxvY2sucXVvdGUnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoIXF1b3RlQmxvY2spIHJldHVybjtcbiAgICBcbiAgICAvLyBFbnN1cmUgdGhlIGVsZW1lbnQgaXMgZm9jdXNhYmxlXG4gICAgaWYgKCFxdW90ZUJsb2NrLmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykpIHtcbiAgICAgIHF1b3RlQmxvY2suc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAndHJ1ZScpO1xuICAgIH1cbiAgICBcbiAgICBxdW90ZUJsb2NrLmZvY3VzKCk7XG4gICAgXG4gICAgLy8gSWYgZm9jdXMgZmFpbGVkLCB0cnkgYWdhaW4gYWZ0ZXIgYSBtaWNyb3Rhc2tcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gcXVvdGVCbG9jayAmJiBlbGVtZW50LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQgIT09IHF1b3RlQmxvY2spIHtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBxdW90ZUJsb2NrLmZvY3VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgXG4gIGZvY3VzV2l0aEN1cnNvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgcG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyB8IG51bWJlciA9ICdlbmQnLCBjb250ZXh0PzogYW55KTogdm9pZCB7XG4gICAgY29uc3QgcXVvdGVCbG9jayA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJsb2NrLnF1b3RlJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFxdW90ZUJsb2NrKSByZXR1cm47XG4gICAgXG4gICAgLy8gRW5zdXJlIGVsZW1lbnQgaXMgZm9jdXNhYmxlIGZpcnN0XG4gICAgaWYgKCFxdW90ZUJsb2NrLmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykpIHtcbiAgICAgIHF1b3RlQmxvY2suc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAndHJ1ZScpO1xuICAgIH1cbiAgICBcbiAgICAvLyBGb2N1cyB0aGUgZWxlbWVudFxuICAgIHF1b3RlQmxvY2suZm9jdXMoKTtcbiAgICBcbiAgICAvLyBTZXQgY3Vyc29yIHBvc2l0aW9uIGFmdGVyIGZvY3VzIGlzIGVzdGFibGlzaGVkXG4gICAgY29uc3Qgc2V0Q3Vyc29yID0gKCkgPT4ge1xuICAgICAgaWYgKHBvc2l0aW9uID09PSAnc3RhcnQnKSB7XG4gICAgICAgIHRoaXMuc2V0Q3Vyc29yVG9TdGFydChlbGVtZW50LCBjb250ZXh0KTtcbiAgICAgIH0gZWxzZSBpZiAocG9zaXRpb24gPT09ICdlbmQnKSB7XG4gICAgICAgIHRoaXMuc2V0Q3Vyc29yVG9FbmQoZWxlbWVudCwgY29udGV4dCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwb3NpdGlvbiA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgLy8gVXNlIHRoZSBzZWxlY3Rpb24gdXRpbGl0eSB0byBzZXQgY3Vyc29yIHBvc2l0aW9uXG4gICAgICAgIFd5c2l3eWdTZWxlY3Rpb24uc2V0Q3Vyc29yUG9zaXRpb24ocXVvdGVCbG9jaywgcG9zaXRpb24pO1xuICAgICAgfVxuICAgIH07XG4gICAgXG4gICAgLy8gRW5zdXJlIGN1cnNvciBpcyBzZXQgYWZ0ZXIgZm9jdXNcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gcXVvdGVCbG9jayB8fCBlbGVtZW50LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQgPT09IHF1b3RlQmxvY2spIHtcbiAgICAgIHNldEN1cnNvcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXYWl0IGZvciBmb2N1cyB0byBiZSBlc3RhYmxpc2hlZFxuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBxdW90ZUJsb2NrIHx8IGVsZW1lbnQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCA9PT0gcXVvdGVCbG9jaykge1xuICAgICAgICAgIHNldEN1cnNvcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgXG4gIGdldFNwbGl0Q29udGVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dD86IGFueSk6IHsgYmVmb3JlOiBzdHJpbmc7IGFmdGVyOiBzdHJpbmcgfSB8IG51bGwge1xuICAgIGNvbnN0IHF1b3RlQmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5xdW90ZScpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGlmICghcXVvdGVCbG9jaykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIC8vIEdldCBzaGFkb3cgcm9vdHMgZnJvbSBjb250ZXh0XG4gICAgY29uc3Qgd3lzaXd5Z0Jsb2NrID0gY29udGV4dD8uY29tcG9uZW50O1xuICAgIGNvbnN0IHBhcmVudENvbXBvbmVudCA9IHd5c2l3eWdCbG9jaz8uY2xvc2VzdCgnZGVlcy1pbnB1dC13eXNpd3lnJyk7XG4gICAgY29uc3QgcGFyZW50U2hhZG93Um9vdCA9IHBhcmVudENvbXBvbmVudD8uc2hhZG93Um9vdDtcbiAgICBjb25zdCBibG9ja1NoYWRvd1Jvb3QgPSBjb250ZXh0Py5zaGFkb3dSb290O1xuICAgIFxuICAgIC8vIEdldCBzZWxlY3Rpb24gaW5mbyB3aXRoIGJvdGggc2hhZG93IHJvb3RzIGZvciBwcm9wZXIgdHJhdmVyc2FsXG4gICAgY29uc3Qgc2hhZG93Um9vdHM6IFNoYWRvd1Jvb3RbXSA9IFtdO1xuICAgIGlmIChwYXJlbnRTaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKHBhcmVudFNoYWRvd1Jvb3QpO1xuICAgIGlmIChibG9ja1NoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2goYmxvY2tTaGFkb3dSb290KTtcbiAgICBcbiAgICBjb25zdCBzZWxlY3Rpb25JbmZvID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvKC4uLnNoYWRvd1Jvb3RzKTtcbiAgICBcbiAgICBpZiAoIXNlbGVjdGlvbkluZm8pIHtcbiAgICAgIC8vIFRyeSB1c2luZyBsYXN0IGtub3duIGN1cnNvciBwb3NpdGlvblxuICAgICAgaWYgKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZnVsbFRleHQgPSBxdW90ZUJsb2NrLnRleHRDb250ZW50IHx8ICcnO1xuICAgICAgICBjb25zdCBwb3MgPSBNYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLCBmdWxsVGV4dC5sZW5ndGgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJlZm9yZTogZnVsbFRleHQuc3Vic3RyaW5nKDAsIHBvcyksXG4gICAgICAgICAgYWZ0ZXI6IGZ1bGxUZXh0LnN1YnN0cmluZyhwb3MpXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgLy8gTWFrZSBzdXJlIHRoZSBzZWxlY3Rpb24gaXMgd2l0aGluIHRoaXMgYmxvY2tcbiAgICBpZiAoIVd5c2l3eWdTZWxlY3Rpb24uY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocXVvdGVCbG9jaywgc2VsZWN0aW9uSW5mby5zdGFydENvbnRhaW5lcikpIHtcbiAgICAgIC8vIFRyeSB1c2luZyBsYXN0IGtub3duIGN1cnNvciBwb3NpdGlvblxuICAgICAgaWYgKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZnVsbFRleHQgPSBxdW90ZUJsb2NrLnRleHRDb250ZW50IHx8ICcnO1xuICAgICAgICBjb25zdCBwb3MgPSBNYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLCBmdWxsVGV4dC5sZW5ndGgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJlZm9yZTogZnVsbFRleHQuc3Vic3RyaW5nKDAsIHBvcyksXG4gICAgICAgICAgYWZ0ZXI6IGZ1bGxUZXh0LnN1YnN0cmluZyhwb3MpXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgLy8gR2V0IGN1cnNvciBwb3NpdGlvbiBmaXJzdFxuICAgIGNvbnN0IGN1cnNvclBvcyA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudCwgY29udGV4dCk7XG4gICAgXG4gICAgaWYgKGN1cnNvclBvcyA9PT0gbnVsbCB8fCBjdXJzb3JQb3MgPT09IDApIHtcbiAgICAgIC8vIElmIGN1cnNvciBpcyBhdCBzdGFydCBvciBjYW4ndCBkZXRlcm1pbmUgcG9zaXRpb24sIG1vdmUgYWxsIGNvbnRlbnRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJlZm9yZTogJycsXG4gICAgICAgIGFmdGVyOiBxdW90ZUJsb2NrLmlubmVySFRNTFxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgLy8gRm9yIEhUTUwgY29udGVudCwgc3BsaXQgdXNpbmcgcmFuZ2VzIHRvIHByZXNlcnZlIGZvcm1hdHRpbmdcbiAgICBjb25zdCBiZWZvcmVSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgY29uc3QgYWZ0ZXJSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgXG4gICAgLy8gQmVmb3JlIHJhbmdlOiBmcm9tIHN0YXJ0IG9mIGVsZW1lbnQgdG8gY3Vyc29yXG4gICAgYmVmb3JlUmFuZ2Uuc2V0U3RhcnQocXVvdGVCbG9jaywgMCk7XG4gICAgYmVmb3JlUmFuZ2Uuc2V0RW5kKHNlbGVjdGlvbkluZm8uc3RhcnRDb250YWluZXIsIHNlbGVjdGlvbkluZm8uc3RhcnRPZmZzZXQpO1xuICAgIFxuICAgIC8vIEFmdGVyIHJhbmdlOiBmcm9tIGN1cnNvciB0byBlbmQgb2YgZWxlbWVudFxuICAgIGFmdGVyUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0aW9uSW5mby5zdGFydENvbnRhaW5lciwgc2VsZWN0aW9uSW5mby5zdGFydE9mZnNldCk7XG4gICAgYWZ0ZXJSYW5nZS5zZXRFbmQocXVvdGVCbG9jaywgcXVvdGVCbG9jay5jaGlsZE5vZGVzLmxlbmd0aCk7XG4gICAgXG4gICAgLy8gRXh0cmFjdCBIVE1MIGNvbnRlbnRcbiAgICBjb25zdCBiZWZvcmVGcmFnbWVudCA9IGJlZm9yZVJhbmdlLmNsb25lQ29udGVudHMoKTtcbiAgICBjb25zdCBhZnRlckZyYWdtZW50ID0gYWZ0ZXJSYW5nZS5jbG9uZUNvbnRlbnRzKCk7XG4gICAgXG4gICAgLy8gQ29udmVydCB0byBIVE1MIHN0cmluZ3NcbiAgICBjb25zdCB0ZW1wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGVtcERpdi5hcHBlbmRDaGlsZChiZWZvcmVGcmFnbWVudCk7XG4gICAgY29uc3QgYmVmb3JlSHRtbCA9IHRlbXBEaXYuaW5uZXJIVE1MO1xuICAgIFxuICAgIHRlbXBEaXYuaW5uZXJIVE1MID0gJyc7XG4gICAgdGVtcERpdi5hcHBlbmRDaGlsZChhZnRlckZyYWdtZW50KTtcbiAgICBjb25zdCBhZnRlckh0bWwgPSB0ZW1wRGl2LmlubmVySFRNTDtcbiAgICBcbiAgICByZXR1cm4geyBcbiAgICAgIGJlZm9yZTogYmVmb3JlSHRtbCwgXG4gICAgICBhZnRlcjogYWZ0ZXJIdG1sIFxuICAgIH07XG4gIH1cbn0iLCAiaW1wb3J0IHsgQmFzZUJsb2NrSGFuZGxlciwgdHlwZSBJQmxvY2tFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi4vYmxvY2suYmFzZS5qcyc7XG5pbXBvcnQgdHlwZSB7IElCbG9jayB9IGZyb20gJy4uLy4uL3d5c2l3eWcudHlwZXMuanMnO1xuaW1wb3J0IHsgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBXeXNpd3lnU2VsZWN0aW9uIH0gZnJvbSAnLi4vLi4vd3lzaXd5Zy5zZWxlY3Rpb24uanMnO1xuaW1wb3J0IHR5cGUgeyBITEpTQXBpIH0gZnJvbSAnaGlnaGxpZ2h0LmpzJztcbmltcG9ydCB7IGNzc0dlaXN0Rm9udEZhbWlseSwgY3NzTW9ub0ZvbnRGYW1pbHkgfSBmcm9tICcuLi8uLi8uLi8uLi8wMGZvbnRzLmpzJztcbmltcG9ydCB7IFBST0dSQU1NSU5HX0xBTkdVQUdFUyB9IGZyb20gJy4uLy4uL3d5c2l3eWcuY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IERlZXNTZXJ2aWNlTGliTG9hZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvaW5kZXguanMnO1xuXG4vKipcbiAqIENvZGVCbG9ja0hhbmRsZXIgd2l0aCBpbXByb3ZlZCBhcmNoaXRlY3R1cmVcbiAqIFxuICogS2V5IGZlYXR1cmVzOlxuICogMS4gU2ltcGxlIERPTSBzdHJ1Y3R1cmVcbiAqIDIuIExpbmUgbnVtYmVyIGhhbmRsaW5nXG4gKiAzLiBTeW50YXggaGlnaGxpZ2h0aW5nIG9ubHkgd2hlbiBub3QgZm9jdXNlZCAoZ3JleSB0ZXh0IHdoaWxlIGVkaXRpbmcpXG4gKiA0LiBDbGVhbiBldmVudCBoYW5kbGluZ1xuICogNS4gQ29weSBidXR0b24gZnVuY3Rpb25hbGl0eVxuICovXG5leHBvcnQgY2xhc3MgQ29kZUJsb2NrSGFuZGxlciBleHRlbmRzIEJhc2VCbG9ja0hhbmRsZXIge1xuICB0eXBlID0gJ2NvZGUnO1xuXG4gIHByaXZhdGUgaGlnaGxpZ2h0VGltZXI6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgaGlnaGxpZ2h0SnM6IEhMSlNBcGkgfCBudWxsID0gbnVsbDtcbiAgXG4gIHJlbmRlcihibG9jazogSUJsb2NrLCBpc1NlbGVjdGVkOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IGJsb2NrLm1ldGFkYXRhPy5sYW5ndWFnZSB8fCAndHlwZXNjcmlwdCc7XG4gICAgY29uc3QgY29udGVudCA9IGJsb2NrLmNvbnRlbnQgfHwgJyc7XG4gICAgY29uc3QgbGluZUNvdW50ID0gY29udGVudC5zcGxpdCgnXFxuJykubGVuZ3RoO1xuICAgIFxuICAgIC8vIEdlbmVyYXRlIGxpbmUgbnVtYmVyc1xuICAgIGxldCBsaW5lTnVtYmVyc0h0bWwgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBsaW5lQ291bnQ7IGkrKykge1xuICAgICAgbGluZU51bWJlcnNIdG1sICs9IGA8ZGl2IGNsYXNzPVwibGluZS1udW1iZXJcIj4ke2l9PC9kaXY+YDtcbiAgICB9XG4gICAgXG4gICAgLy8gR2VuZXJhdGUgbGFuZ3VhZ2Ugb3B0aW9uc1xuICAgIGNvbnN0IGxhbmd1YWdlT3B0aW9ucyA9IFBST0dSQU1NSU5HX0xBTkdVQUdFUy5tYXAobGFuZyA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGxhbmcudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJldHVybiBgPG9wdGlvbiB2YWx1ZT1cIiR7dmFsdWV9XCIgJHt2YWx1ZSA9PT0gbGFuZ3VhZ2UgPyAnc2VsZWN0ZWQnIDogJyd9PiR7bGFuZ308L29wdGlvbj5gO1xuICAgIH0pLmpvaW4oJycpO1xuICAgIFxuICAgIHJldHVybiBgXG4gICAgICA8ZGl2IGNsYXNzPVwiY29kZS1ibG9jay1jb250YWluZXIke2lzU2VsZWN0ZWQgPyAnIHNlbGVjdGVkJyA6ICcnfVwiIGRhdGEtbGFuZ3VhZ2U9XCIke2xhbmd1YWdlfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29kZS1oZWFkZXJcIj5cbiAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwibGFuZ3VhZ2Utc2VsZWN0b3JcIiBkYXRhLWJsb2NrLWlkPVwiJHtibG9jay5pZH1cIj5cbiAgICAgICAgICAgICR7bGFuZ3VhZ2VPcHRpb25zfVxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3B5LWJ1dHRvblwiIHRpdGxlPVwiQ29weSBjb2RlXCI+XG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY29weS1pY29uXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0wIDYuNzVDMCA1Ljc4NC43ODQgNSAxLjc1IDVoMS41YS43NS43NSAwIDAxMCAxLjVoLTEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2Ny41YzAgLjEzOC4xMTIuMjUuMjUuMjVoNy41YS4yNS4yNSAwIDAwLjI1LS4yNXYtMS41YS43NS43NSAwIDAxMS41IDB2MS41QTEuNzUgMS43NSAwIDAxOS4yNSAxNmgtNy41QTEuNzUgMS43NSAwIDAxMCAxNC4yNXYtNy41elwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDEuNzVDNSAuNzg0IDUuNzg0IDAgNi43NSAwaDcuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2Ny41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTFoLTcuNUExLjc1IDEuNzUgMCAwMTUgOS4yNXYtNy41em0xLjc1LS4yNWEuMjUuMjUgMCAwMC0uMjUuMjV2Ny41YzAgLjEzOC4xMTIuMjUuMjUuMjVoNy41YS4yNS4yNSAwIDAwLjI1LS4yNXYtNy41YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTcuNXpcIj48L3BhdGg+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29weS10ZXh0XCI+Q29weTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2RlLWJvZHlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZS1udW1iZXJzXCI+JHtsaW5lTnVtYmVyc0h0bWx9PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvZGUtY29udGVudFwiPlxuICAgICAgICAgICAgPHByZSBjbGFzcz1cImNvZGUtcHJlXCI+PGNvZGUgY2xhc3M9XCJjb2RlLWVkaXRvclwiIFxuICAgICAgICAgICAgICAgICBjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgZGF0YS1ibG9jay1pZD1cIiR7YmxvY2suaWR9XCJcbiAgICAgICAgICAgICAgICAgZGF0YS1ibG9jay10eXBlPVwiJHtibG9jay50eXBlfVwiXG4gICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiPiR7dGhpcy5lc2NhcGVIdG1sKGNvbnRlbnQpfTwvY29kZT48L3ByZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG4gIFxuICBzZXR1cChlbGVtZW50OiBIVE1MRWxlbWVudCwgYmxvY2s6IElCbG9jaywgaGFuZGxlcnM6IElCbG9ja0V2ZW50SGFuZGxlcnMpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb2RlLWVkaXRvcicpIGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvZGUtYmxvY2stY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgY29weUJ1dHRvbiA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvcHktYnV0dG9uJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgY29uc3QgbGFuZ3VhZ2VTZWxlY3RvciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmxhbmd1YWdlLXNlbGVjdG9yJykgYXMgSFRNTFNlbGVjdEVsZW1lbnQ7XG4gICAgXG4gICAgaWYgKCFlZGl0b3IgfHwgIWNvbnRhaW5lcikgcmV0dXJuO1xuICAgIFxuICAgIC8vIFNldHVwIGxhbmd1YWdlIHNlbGVjdG9yXG4gICAgaWYgKGxhbmd1YWdlU2VsZWN0b3IpIHtcbiAgICAgIGxhbmd1YWdlU2VsZWN0b3IuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHtcbiAgICAgICAgY29uc3QgbmV3TGFuZ3VhZ2UgPSAoZS50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICBibG9jay5tZXRhZGF0YSA9IHsgLi4uYmxvY2subWV0YWRhdGEsIGxhbmd1YWdlOiBuZXdMYW5ndWFnZSB9O1xuICAgICAgICBjb250YWluZXIuc2V0QXR0cmlidXRlKCdkYXRhLWxhbmd1YWdlJywgbmV3TGFuZ3VhZ2UpO1xuICAgICAgICBcbiAgICAgICAgLy8gVXBkYXRlIHRoZSBzeW50YXggaGlnaGxpZ2h0aW5nIGlmIGNvbnRlbnQgZXhpc3RzIGFuZCBub3QgZm9jdXNlZFxuICAgICAgICBpZiAoYmxvY2suY29udGVudCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBlZGl0b3IpIHtcbiAgICAgICAgICB0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGVsZW1lbnQsIGJsb2NrKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gTm90aWZ5IGFib3V0IHRoZSBjaGFuZ2VcbiAgICAgICAgaWYgKGhhbmRsZXJzLm9uSW5wdXQpIHtcbiAgICAgICAgICBoYW5kbGVycy5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIFxuICAgIC8vIFNldHVwIGNvcHkgYnV0dG9uXG4gICAgaWYgKGNvcHlCdXR0b24pIHtcbiAgICAgIGNvcHlCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBlZGl0b3IudGV4dENvbnRlbnQgfHwgJyc7XG4gICAgICAgIFxuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGNvbnRlbnQpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNob3cgZmVlZGJhY2tcbiAgICAgICAgICBjb25zdCBjb3B5VGV4dCA9IGNvcHlCdXR0b24ucXVlcnlTZWxlY3RvcignLmNvcHktdGV4dCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsVGV4dCA9IGNvcHlUZXh0LnRleHRDb250ZW50O1xuICAgICAgICAgIGNvcHlUZXh0LnRleHRDb250ZW50ID0gJ0NvcGllZCEnO1xuICAgICAgICAgIGNvcHlCdXR0b24uY2xhc3NMaXN0LmFkZCgnY29waWVkJyk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gUmVzZXQgYWZ0ZXIgMiBzZWNvbmRzXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb3B5VGV4dC50ZXh0Q29udGVudCA9IG9yaWdpbmFsVGV4dDtcbiAgICAgICAgICAgIGNvcHlCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnY29waWVkJyk7XG4gICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjb3B5OicsIGVycik7XG4gICAgICAgICAgLy8gRmFsbGJhY2sgZm9yIG9sZGVyIGJyb3dzZXJzXG4gICAgICAgICAgY29uc3QgdGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgICAgICAgIHRleHRBcmVhLnZhbHVlID0gY29udGVudDtcbiAgICAgICAgICB0ZXh0QXJlYS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgICAgICAgdGV4dEFyZWEuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRBcmVhKTtcbiAgICAgICAgICB0ZXh0QXJlYS5zZWxlY3QoKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSAtIGV4ZWNDb21tYW5kIGlzIGRlcHJlY2F0ZWQgYnV0IG5lZWRlZCBmb3IgZmFsbGJhY2tcbiAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICAgICAgICAvLyBTaG93IGZlZWRiYWNrXG4gICAgICAgICAgICBjb25zdCBjb3B5VGV4dCA9IGNvcHlCdXR0b24ucXVlcnlTZWxlY3RvcignLmNvcHktdGV4dCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxUZXh0ID0gY29weVRleHQudGV4dENvbnRlbnQ7XG4gICAgICAgICAgICBjb3B5VGV4dC50ZXh0Q29udGVudCA9ICdDb3BpZWQhJztcbiAgICAgICAgICAgIGNvcHlCdXR0b24uY2xhc3NMaXN0LmFkZCgnY29waWVkJyk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBjb3B5VGV4dC50ZXh0Q29udGVudCA9IG9yaWdpbmFsVGV4dDtcbiAgICAgICAgICAgICAgY29weUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdjb3BpZWQnKTtcbiAgICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFsbGJhY2sgY29weSBmYWlsZWQ6JywgZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0QXJlYSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBcbiAgICAvLyBUcmFjayBpZiB3ZSdyZSBjdXJyZW50bHkgZWRpdGluZ1xuICAgIGxldCBpc0VkaXRpbmcgPSBmYWxzZTtcbiAgICBcbiAgICAvLyBGb2N1cyBoYW5kbGVyXG4gICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgaXNFZGl0aW5nID0gdHJ1ZTtcbiAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdlZGl0aW5nJyk7XG4gICAgICBcbiAgICAgIC8vIFJlbW92ZSBhbGwgc3ludGF4IGhpZ2hsaWdodGluZyB3aGVuIGZvY3VzZWRcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBlZGl0b3IudGV4dENvbnRlbnQgfHwgJyc7XG4gICAgICBlZGl0b3IudGV4dENvbnRlbnQgPSBjb250ZW50OyAvLyBUaGlzIHJlbW92ZXMgYWxsIEhUTUwgZm9ybWF0dGluZ1xuICAgICAgXG4gICAgICAvLyBSZXN0b3JlIGN1cnNvciBwb3NpdGlvbiBhZnRlciByZW1vdmluZyBoaWdobGlnaHRpbmdcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoZWRpdG9yLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICByYW5nZS5zZXRTdGFydChlZGl0b3IuZmlyc3RDaGlsZCwgMCk7XG4gICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICAgICAgc2VsZWN0aW9uPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICBzZWxlY3Rpb24/LmFkZFJhbmdlKHJhbmdlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGhhbmRsZXJzLm9uRm9jdXMoKTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBCbHVyIGhhbmRsZXJcbiAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgIGlzRWRpdGluZyA9IGZhbHNlO1xuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2VkaXRpbmcnKTtcbiAgICAgIC8vIEFwcGx5IGZpbmFsIGhpZ2hsaWdodGluZyBvbiBibHVyXG4gICAgICB0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGVsZW1lbnQsIGJsb2NrKTtcbiAgICAgIGhhbmRsZXJzLm9uQmx1cigpO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIElucHV0IGhhbmRsZXJcbiAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoZSkgPT4ge1xuICAgICAgaGFuZGxlcnMub25JbnB1dChlIGFzIElucHV0RXZlbnQpO1xuICAgICAgXG4gICAgICAvLyBVcGRhdGUgbGluZSBudW1iZXJzXG4gICAgICB0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGVsZW1lbnQpO1xuICAgICAgXG4gICAgICAvLyBDbGVhciBhbnkgcGVuZGluZyBoaWdobGlnaHQgdGltZXIgKG5vIGhpZ2hsaWdodGluZyB3aGlsZSBlZGl0aW5nKVxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGlnaGxpZ2h0VGltZXIpO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIEtleWRvd24gaGFuZGxlclxuICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHtcbiAgICAgIC8vIEhhbmRsZSBUYWIga2V5IGZvciBjb2RlIGJsb2Nrc1xuICAgICAgaWYgKGUua2V5ID09PSAnVGFiJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcbiAgICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xuICAgICAgICAgIGNvbnN0IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAgJyk7XG4gICAgICAgICAgcmFuZ2UuaW5zZXJ0Tm9kZSh0ZXh0Tm9kZSk7XG4gICAgICAgICAgcmFuZ2Uuc2V0U3RhcnRBZnRlcih0ZXh0Tm9kZSk7XG4gICAgICAgICAgcmFuZ2Uuc2V0RW5kQWZ0ZXIodGV4dE5vZGUpO1xuICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgICAgICAgIGhhbmRsZXJzLm9uSW5wdXQobmV3IElucHV0RXZlbnQoJ2lucHV0JykpO1xuICAgICAgICAgIHRoaXMudXBkYXRlTGluZU51bWJlcnMoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBDaGVjayBjdXJzb3IgcG9zaXRpb24gZm9yIG5hdmlnYXRpb24ga2V5c1xuICAgICAgaWYgKFsnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnLCAnQXJyb3dVcCcsICdBcnJvd0Rvd24nXS5pbmNsdWRlcyhlLmtleSkpIHtcbiAgICAgICAgY29uc3QgY3Vyc29yUG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50KTtcbiAgICAgICAgY29uc3QgdGV4dExlbmd0aCA9IGVkaXRvci50ZXh0Q29udGVudD8ubGVuZ3RoIHx8IDA7XG4gICAgICAgIFxuICAgICAgICAvLyBGb3IgQXJyb3dMZWZ0IGF0IHBvc2l0aW9uIDAgb3IgQXJyb3dSaWdodCBhdCBlbmQsIGxldCBwYXJlbnQgaGFuZGxlIG5hdmlnYXRpb25cbiAgICAgICAgaWYgKChlLmtleSA9PT0gJ0Fycm93TGVmdCcgJiYgY3Vyc29yUG9zID09PSAwKSB8fCBcbiAgICAgICAgICAgIChlLmtleSA9PT0gJ0Fycm93UmlnaHQnICYmIGN1cnNvclBvcyA9PT0gdGV4dExlbmd0aCkpIHtcbiAgICAgICAgICAvLyBQYXNzIHRvIHBhcmVudCBoYW5kbGVyIGZvciBpbnRlci1ibG9jayBuYXZpZ2F0aW9uXG4gICAgICAgICAgaGFuZGxlcnMub25LZXlEb3duKGUpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gRm9yIEFycm93VXAvRG93biwgY2hlY2sgaWYgd2UncmUgYXQgZmlyc3QvbGFzdCBsaW5lXG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnIHx8IGUua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAgIGNvbnN0IGxpbmVzID0gKGVkaXRvci50ZXh0Q29udGVudCB8fCAnJykuc3BsaXQoJ1xcbicpO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRMaW5lID0gdGhpcy5nZXRDdXJyZW50TGluZUluZGV4KGVkaXRvcik7XG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKChlLmtleSA9PT0gJ0Fycm93VXAnICYmIGN1cnJlbnRMaW5lID09PSAwKSB8fFxuICAgICAgICAgICAgICAoZS5rZXkgPT09ICdBcnJvd0Rvd24nICYmIGN1cnJlbnRMaW5lID09PSBsaW5lcy5sZW5ndGggLSAxKSkge1xuICAgICAgICAgICAgLy8gTGV0IHBhcmVudCBoYW5kbGUgbmF2aWdhdGlvbiB0byBwcmV2L25leHQgYmxvY2tcbiAgICAgICAgICAgIGhhbmRsZXJzLm9uS2V5RG93bihlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gUGFzcyBvdGhlciBrZXlzIHRvIHBhcmVudCBoYW5kbGVyXG4gICAgICBoYW5kbGVycy5vbktleURvd24oZSk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gUGFzdGUgaGFuZGxlciAtIHBsYWluIHRleHQgb25seVxuICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCB0ZXh0ID0gZS5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XG4gICAgICBpZiAodGV4dCkge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwKSB7XG4gICAgICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgICByYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgIGNvbnN0IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCk7XG4gICAgICAgICAgcmFuZ2UuaW5zZXJ0Tm9kZSh0ZXh0Tm9kZSk7XG4gICAgICAgICAgcmFuZ2Uuc2V0U3RhcnRBZnRlcih0ZXh0Tm9kZSk7XG4gICAgICAgICAgcmFuZ2Uuc2V0RW5kQWZ0ZXIodGV4dE5vZGUpO1xuICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgICAgICAgIGhhbmRsZXJzLm9uSW5wdXQobmV3IElucHV0RXZlbnQoJ2lucHV0JykpO1xuICAgICAgICAgIHRoaXMudXBkYXRlTGluZU51bWJlcnMoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICAvLyBDb21wb3NpdGlvbiBoYW5kbGVyc1xuICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbnN0YXJ0JywgKCkgPT4gaGFuZGxlcnMub25Db21wb3NpdGlvblN0YXJ0KCkpO1xuICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbmVuZCcsICgpID0+IGhhbmRsZXJzLm9uQ29tcG9zaXRpb25FbmQoKSk7XG4gICAgXG4gICAgLy8gSW5pdGlhbCBzeW50YXggaGlnaGxpZ2h0aW5nIGlmIGNvbnRlbnQgZXhpc3RzIGFuZCBub3QgZm9jdXNlZFxuICAgIGlmIChibG9jay5jb250ZW50ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGVkaXRvcikge1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5hcHBseUhpZ2hsaWdodGluZyhlbGVtZW50LCBibG9jayk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgdXBkYXRlTGluZU51bWJlcnMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb2RlLWVkaXRvcicpIGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGxpbmVOdW1iZXJzQ29udGFpbmVyID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubGluZS1udW1iZXJzJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgXG4gICAgaWYgKCFlZGl0b3IgfHwgIWxpbmVOdW1iZXJzQ29udGFpbmVyKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgY29udGVudCA9IGVkaXRvci50ZXh0Q29udGVudCB8fCAnJztcbiAgICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpO1xuICAgIGNvbnN0IGxpbmVDb3VudCA9IGxpbmVzLmxlbmd0aCB8fCAxO1xuICAgIFxuICAgIGxldCBsaW5lTnVtYmVyc0h0bWwgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBsaW5lQ291bnQ7IGkrKykge1xuICAgICAgbGluZU51bWJlcnNIdG1sICs9IGA8ZGl2IGNsYXNzPVwibGluZS1udW1iZXJcIj4ke2l9PC9kaXY+YDtcbiAgICB9XG4gICAgXG4gICAgbGluZU51bWJlcnNDb250YWluZXIuaW5uZXJIVE1MID0gbGluZU51bWJlcnNIdG1sO1xuICB9XG4gIFxuICBwcml2YXRlIGdldEN1cnJlbnRMaW5lSW5kZXgoZWRpdG9yOiBIVE1MRWxlbWVudCk6IG51bWJlciB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSByZXR1cm4gMDtcbiAgICBcbiAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xuICAgIGNvbnN0IHByZUNhcmV0UmFuZ2UgPSByYW5nZS5jbG9uZVJhbmdlKCk7XG4gICAgcHJlQ2FyZXRSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZWRpdG9yKTtcbiAgICBwcmVDYXJldFJhbmdlLnNldEVuZChyYW5nZS5zdGFydENvbnRhaW5lciwgcmFuZ2Uuc3RhcnRPZmZzZXQpO1xuICAgIFxuICAgIGNvbnN0IHRleHRCZWZvcmVDdXJzb3IgPSBwcmVDYXJldFJhbmdlLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgbGluZXNCZWZvcmVDdXJzb3IgPSB0ZXh0QmVmb3JlQ3Vyc29yLnNwbGl0KCdcXG4nKTtcbiAgICBcbiAgICByZXR1cm4gbGluZXNCZWZvcmVDdXJzb3IubGVuZ3RoIC0gMTsgLy8gMC1pbmRleGVkXG4gIH1cbiAgXG4gIHByaXZhdGUgYXN5bmMgYXBwbHlIaWdobGlnaHRpbmcoZWxlbWVudDogSFRNTEVsZW1lbnQsIGJsb2NrOiBJQmxvY2spOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBlZGl0b3IgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb2RlLWVkaXRvcicpIGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICghZWRpdG9yKSByZXR1cm47XG5cbiAgICAvLyBMb2FkIGhpZ2hsaWdodC5qcyBmcm9tIENETiBpZiBub3QgYWxyZWFkeSBsb2FkZWRcbiAgICBpZiAoIXRoaXMuaGlnaGxpZ2h0SnMpIHtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0SnMgPSBhd2FpdCBEZWVzU2VydmljZUxpYkxvYWRlci5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpO1xuICAgIH1cblxuICAgIC8vIFN0b3JlIGN1cnNvciBwb3NpdGlvblxuICAgIGNvbnN0IGN1cnNvclBvcyA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudCk7XG5cbiAgICAvLyBHZXQgcGxhaW4gdGV4dCBjb250ZW50XG4gICAgY29uc3QgY29udGVudCA9IGVkaXRvci50ZXh0Q29udGVudCB8fCAnJztcbiAgICBjb25zdCBsYW5ndWFnZSA9IGJsb2NrLm1ldGFkYXRhPy5sYW5ndWFnZSB8fCAndHlwZXNjcmlwdCc7XG5cbiAgICAvLyBBcHBseSBoaWdobGlnaHRpbmdcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5oaWdobGlnaHRKcy5oaWdobGlnaHQoY29udGVudCwge1xuICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgICAgIGlnbm9yZUlsbGVnYWxzOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIE9ubHkgdXBkYXRlIGlmIHdlIGhhdmUgdmFsaWQgaGlnaGxpZ2h0ZWQgY29udGVudFxuICAgICAgaWYgKHJlc3VsdC52YWx1ZSkge1xuICAgICAgICBlZGl0b3IuaW5uZXJIVE1MID0gcmVzdWx0LnZhbHVlO1xuXG4gICAgICAgIC8vIFJlc3RvcmUgY3Vyc29yIHBvc2l0aW9uIGlmIGVkaXRvciBpcyBmb2N1c2VkXG4gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlZGl0b3IgJiYgY3Vyc29yUG9zICE9PSBudWxsKSB7XG4gICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIFd5c2l3eWdTZWxlY3Rpb24uc2V0Q3Vyc29yUG9zaXRpb24oZWRpdG9yLCBjdXJzb3JQb3MpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIElmIGhpZ2hsaWdodGluZyBmYWlscywga2VlcCBwbGFpbiB0ZXh0XG4gICAgICBjb25zb2xlLndhcm4oJ1N5bnRheCBoaWdobGlnaHRpbmcgZmFpbGVkOicsIGVycm9yKTtcbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgZXNjYXBlSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGRpdi50ZXh0Q29udGVudCA9IHRleHQ7XG4gICAgcmV0dXJuIGRpdi5pbm5lckhUTUw7XG4gIH1cbiAgXG4gIGdldENvbnRlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGVkaXRvciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvZGUtZWRpdG9yJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgcmV0dXJuIGVkaXRvcj8udGV4dENvbnRlbnQgfHwgJyc7XG4gIH1cbiAgXG4gIHNldENvbnRlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvZGUtZWRpdG9yJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKCFlZGl0b3IpIHJldHVybjtcbiAgICBcbiAgICBlZGl0b3IudGV4dENvbnRlbnQgPSBjb250ZW50O1xuICAgIHRoaXMudXBkYXRlTGluZU51bWJlcnMoZWxlbWVudCk7XG4gICAgXG4gICAgLy8gQXBwbHkgaGlnaGxpZ2h0aW5nIGlmIG5vdCBmb2N1c2VkXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGVkaXRvcikge1xuICAgICAgY29uc3QgYmxvY2s6IElCbG9jayA9IHtcbiAgICAgICAgaWQ6IGVkaXRvci5kYXRhc2V0LmJsb2NrSWQgfHwgJycsXG4gICAgICAgIHR5cGU6ICdjb2RlJyxcbiAgICAgICAgY29udGVudDogY29udGVudCxcbiAgICAgICAgbWV0YWRhdGE6IHsgXG4gICAgICAgICAgbGFuZ3VhZ2U6IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvZGUtYmxvY2stY29udGFpbmVyJyk/LmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5ndWFnZScpIHx8ICd0eXBlc2NyaXB0J1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdGhpcy5hcHBseUhpZ2hsaWdodGluZyhlbGVtZW50LCBibG9jayk7XG4gICAgfVxuICB9XG4gIFxuICBnZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IG51bWJlciB8IG51bGwge1xuICAgIGNvbnN0IGVkaXRvciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvZGUtZWRpdG9yJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKCFlZGl0b3IpIHJldHVybiBudWxsO1xuICAgIFxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoIXNlbGVjdGlvbiB8fCBzZWxlY3Rpb24ucmFuZ2VDb3VudCA9PT0gMCkgcmV0dXJuIG51bGw7XG4gICAgXG4gICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAgICBpZiAoIWVkaXRvci5jb250YWlucyhyYW5nZS5zdGFydENvbnRhaW5lcikpIHJldHVybiBudWxsO1xuICAgIFxuICAgIGNvbnN0IHByZUNhcmV0UmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgIHByZUNhcmV0UmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVkaXRvcik7XG4gICAgcHJlQ2FyZXRSYW5nZS5zZXRFbmQocmFuZ2Uuc3RhcnRDb250YWluZXIsIHJhbmdlLnN0YXJ0T2Zmc2V0KTtcbiAgICBcbiAgICByZXR1cm4gcHJlQ2FyZXRSYW5nZS50b1N0cmluZygpLmxlbmd0aDtcbiAgfVxuICBcbiAgc2V0Q3Vyc29yVG9TdGFydChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvZGUtZWRpdG9yJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgV3lzaXd5Z1NlbGVjdGlvbi5zZXRDdXJzb3JQb3NpdGlvbihlZGl0b3IsIDApO1xuICAgIH1cbiAgfVxuICBcbiAgc2V0Q3Vyc29yVG9FbmQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb2RlLWVkaXRvcicpIGFzIEhUTUxFbGVtZW50O1xuICAgIGlmIChlZGl0b3IpIHtcbiAgICAgIGNvbnN0IGxlbmd0aCA9IGVkaXRvci50ZXh0Q29udGVudD8ubGVuZ3RoIHx8IDA7XG4gICAgICBXeXNpd3lnU2VsZWN0aW9uLnNldEN1cnNvclBvc2l0aW9uKGVkaXRvciwgbGVuZ3RoKTtcbiAgICB9XG4gIH1cbiAgXG4gIGZvY3VzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY29kZS1lZGl0b3InKSBhcyBIVE1MRWxlbWVudDtcbiAgICBlZGl0b3I/LmZvY3VzKCk7XG4gIH1cbiAgXG4gIGZvY3VzV2l0aEN1cnNvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgcG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyB8IG51bWJlciA9ICdlbmQnKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY29kZS1lZGl0b3InKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoIWVkaXRvcikgcmV0dXJuO1xuICAgIFxuICAgIGVkaXRvci5mb2N1cygpO1xuICAgIFxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBpZiAocG9zaXRpb24gPT09ICdzdGFydCcpIHtcbiAgICAgICAgdGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGVsZW1lbnQpO1xuICAgICAgfSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ2VuZCcpIHtcbiAgICAgICAgdGhpcy5zZXRDdXJzb3JUb0VuZChlbGVtZW50KTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHBvc2l0aW9uID09PSAnbnVtYmVyJykge1xuICAgICAgICBXeXNpd3lnU2VsZWN0aW9uLnNldEN1cnNvclBvc2l0aW9uKGVkaXRvciwgcG9zaXRpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIFxuICBnZXRTcGxpdENvbnRlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB7IGJlZm9yZTogc3RyaW5nOyBhZnRlcjogc3RyaW5nIH0gfCBudWxsIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudCk7XG4gICAgaWYgKHBvc2l0aW9uID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICBcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KGVsZW1lbnQpO1xuICAgIHJldHVybiB7XG4gICAgICBiZWZvcmU6IGNvbnRlbnQuc3Vic3RyaW5nKDAsIHBvc2l0aW9uKSxcbiAgICAgIGFmdGVyOiBjb250ZW50LnN1YnN0cmluZyhwb3NpdGlvbilcbiAgICB9O1xuICB9XG4gIFxuICBnZXRTdHlsZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxuICAgICAgLyogQ29kZSBCbG9jayBDb250YWluZXIgLSBNaW5pbWFsaXN0IHNoYWRjbiBzdHlsZSAqL1xuICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDEycHggMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzNzQxNTEnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5Y2EzYWYnLCAnIzZiNzI4MCcpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNmI3MjgwJywgJyM5Y2EzYWYnKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmFmYWZhJywgJyMwYTBhMGEnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIEhlYWRlciAtIFNpbXBsaWZpZWQgKi9cbiAgICAgIC5jb2RlLWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzM3NDE1MScpfTtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM2YjcyODAnLCAnIzljYTNhZicpfTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICR7Y3NzR2Vpc3RGb250RmFtaWx5fTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5sYW5ndWFnZS1zZWxlY3Rvcjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjlmYWZiJywgJyMxZjI5MzcnKX07XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzM3NDE1MScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzc0MTUxJywgJyNlNWU3ZWInKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5sYW5ndWFnZS1zZWxlY3Rvcjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5Y2EzYWYnLCAnIzZiNzI4MCcpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLyogQ29weSBCdXR0b24gLSBNaW5pbWFsICovXG4gICAgICAuY29weS1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzZiNzI4MCcsICcjOWNhM2FmJyl9O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAke2Nzc0dlaXN0Rm9udEZhbWlseX07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjlmYWZiJywgJyMxZjI5MzcnKX07XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzM3NDE1MScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzc0MTUxJywgJyNlNWU3ZWInKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb3B5LWJ1dHRvbjphY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29weS1idXR0b24uY29waWVkIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDU5NjY5JywgJyMxMGI5ODEnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb3B5LWljb24ge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29weS1idXR0b246aG92ZXIgLmNvcHktaWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb3B5LXRleHQge1xuICAgICAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLyogQ29kZSBCb2R5ICovXG4gICAgICAuY29kZS1ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZhZmFmYScsICcjMGEwYTBhJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBMaW5lIE51bWJlcnMgLSBTdWJ0bGUgKi9cbiAgICAgIC5saW5lLW51bWJlcnMge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgcGFkZGluZzogMTJweCAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzNzQxNTEnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5saW5lLW51bWJlciB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweCAwIDhweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjOWNhM2FmJywgJyM0YjU1NjMnKX07XG4gICAgICAgIGZvbnQtZmFtaWx5OiAke2Nzc01vbm9Gb250RmFtaWx5fTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBDb2RlIENvbnRlbnQgKi9cbiAgICAgIC5jb2RlLWNvbnRlbnQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb2RlLXByZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb2RlLWVkaXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICR7Y3NzTW9ub0ZvbnRGYW1pbHl9O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMxMTE4MjcnLCAnI2Y5ZmFmYicpfTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBQbGFjZWhvbGRlciAqL1xuICAgICAgLmNvZGUtZWRpdG9yOmVtcHR5OjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIi8vIFR5cGUgb3IgcGFzdGUgY29kZSBoZXJlLi4uXCI7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzljYTNhZicsICcjNGI1NTYzJyl9O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLyogV2hlbiBlZGl0aW5nIChmb2N1c2VkKSwgc2hvdyBncmV5IHRleHQgd2l0aG91dCBoaWdobGlnaHRpbmcgKi9cbiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIC5jb2RlLWVkaXRvciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzZiNzI4MCcsICcjOWNhM2FmJyl9ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIC5jb2RlLWVkaXRvciAqIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLyogU3ludGF4IEhpZ2hsaWdodGluZyAtIE11dGVkIGNvbG9ycyAqL1xuICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWtleXdvcmQge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkYzI2MjYnLCAnI2Y4NzE3MScpfTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXN0cmluZyB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA1OTY2OScsICcjMTBiOTgxJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29kZS1lZGl0b3IgLmhsanMtbnVtYmVyIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjN2MzYWVkJywgJyNhNzhiZmEnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1mdW5jdGlvbiB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzI1NjNlYicsICcjNjBhNWZhJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29kZS1lZGl0b3IgLmhsanMtY29tbWVudCB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzZiNzI4MCcsICcjNmI3MjgwJyl9O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy12YXJpYWJsZSxcbiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1hdHRyIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZWE1ODBjJywgJyNmYjkyM2MnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1jbGFzcyxcbiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy10aXRsZSB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzI1NjNlYicsICcjNjBhNWZhJyl9O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29kZS1lZGl0b3IgLmhsanMtcGFyYW1zIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzc0MTUxJywgJyNlNWU3ZWInKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1idWlsdF9pbiB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzdjM2FlZCcsICcjYTc4YmZhJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29kZS1lZGl0b3IgLmhsanMtbGl0ZXJhbCB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzdjM2FlZCcsICcjYTc4YmZhJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29kZS1lZGl0b3IgLmhsanMtbWV0YSB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzZiNzI4MCcsICcjOWNhM2FmJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29kZS1lZGl0b3IgLmhsanMtcHVuY3R1YXRpb24ge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzNzQxNTEnLCAnI2QxZDVkYicpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXRhZyB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2RjMjYyNicsICcjZjg3MTcxJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29kZS1lZGl0b3IgLmhsanMtYXR0cmlidXRlIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMjU2M2ViJywgJyM2MGE1ZmEnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci10YWcge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkYzI2MjYnLCAnI2Y4NzE3MScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXNlbGVjdG9yLWNsYXNzIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMjU2M2ViJywgJyM2MGE1ZmEnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci1pZCB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzdjM2FlZCcsICcjYTc4YmZhJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBTZWxlY3Rpb24gKi9cbiAgICAgIC5jb2RlLWVkaXRvcjo6c2VsZWN0aW9uLFxuICAgICAgLmNvZGUtZWRpdG9yICo6OnNlbGVjdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDk5LCAxMDIsIDI0MSwgMC4yKScsICdyZ2JhKDk5LCAxMDIsIDI0MSwgMC4zKScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgLSBNaW5pbWFsICovXG4gICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZDFkNWRiJywgJyM0YjU1NjMnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzljYTNhZicsICcjNmI3MjgwJyl9O1xuICAgICAgfVxuICAgIGA7XG4gIH1cbn0iLCAiaW1wb3J0IHsgQmFzZUJsb2NrSGFuZGxlciwgdHlwZSBJQmxvY2tFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi4vYmxvY2suYmFzZS5qcyc7XG5pbXBvcnQgdHlwZSB7IElCbG9jayB9IGZyb20gJy4uLy4uL3d5c2l3eWcudHlwZXMuanMnO1xuaW1wb3J0IHsgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBXeXNpd3lnQmxvY2tzIH0gZnJvbSAnLi4vLi4vd3lzaXd5Zy5ibG9ja3MuanMnO1xuaW1wb3J0IHsgV3lzaXd5Z1NlbGVjdGlvbiB9IGZyb20gJy4uLy4uL3d5c2l3eWcuc2VsZWN0aW9uLmpzJztcblxuZXhwb3J0IGNsYXNzIExpc3RCbG9ja0hhbmRsZXIgZXh0ZW5kcyBCYXNlQmxvY2tIYW5kbGVyIHtcbiAgdHlwZSA9ICdsaXN0JztcbiAgXG4gIC8vIFRyYWNrIGN1cnNvciBwb3NpdGlvbiBhbmQgbGlzdCBzdGF0ZVxuICBwcml2YXRlIGxhc3RLbm93bkN1cnNvclBvc2l0aW9uOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIGxhc3RTZWxlY3RlZFRleHQ6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIHNlbGVjdGlvbkhhbmRsZXI6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuICBcbiAgcmVuZGVyKGJsb2NrOiBJQmxvY2ssIGlzU2VsZWN0ZWQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlbGVjdGVkQ2xhc3MgPSBpc1NlbGVjdGVkID8gJyBzZWxlY3RlZCcgOiAnJztcbiAgICBjb25zdCBsaXN0VHlwZSA9IGJsb2NrLm1ldGFkYXRhPy5saXN0VHlwZSB8fCAndW5vcmRlcmVkJztcbiAgICBjb25zdCBsaXN0VGFnID0gbGlzdFR5cGUgPT09ICdvcmRlcmVkJyA/ICdvbCcgOiAndWwnO1xuICAgIFxuICAgIC8vIFJlbmRlciBsaXN0IGNvbnRlbnRcbiAgICBjb25zdCBsaXN0Q29udGVudCA9IHRoaXMucmVuZGVyTGlzdENvbnRlbnQoYmxvY2suY29udGVudCwgYmxvY2subWV0YWRhdGEpO1xuICAgIFxuICAgIHJldHVybiBgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYmxvY2sgbGlzdCR7c2VsZWN0ZWRDbGFzc31cIlxuICAgICAgICBjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJcbiAgICAgICAgZGF0YS1ibG9jay1pZD1cIiR7YmxvY2suaWR9XCJcbiAgICAgICAgZGF0YS1ibG9jay10eXBlPVwiJHtibG9jay50eXBlfVwiXG4gICAgICA+JHtsaXN0Q29udGVudH08L2Rpdj5cbiAgICBgO1xuICB9XG4gIFxuICBwcml2YXRlIHJlbmRlckxpc3RDb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgbWV0YWRhdGE6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKCFjb250ZW50KSByZXR1cm4gJzx1bD48bGk+PC9saT48L3VsPic7XG4gICAgXG4gICAgY29uc3QgbGlzdFR5cGUgPSBtZXRhZGF0YT8ubGlzdFR5cGUgfHwgJ3Vub3JkZXJlZCc7XG4gICAgY29uc3QgbGlzdFRhZyA9IGxpc3RUeXBlID09PSAnb3JkZXJlZCcgPyAnb2wnIDogJ3VsJztcbiAgICBcbiAgICAvLyBTcGxpdCBjb250ZW50IGJ5IG5ld2xpbmVzIHRvIGNyZWF0ZSBsaXN0IGl0ZW1zXG4gICAgY29uc3QgbGluZXMgPSBjb250ZW50LnNwbGl0KCdcXG4nKS5maWx0ZXIobGluZSA9PiBsaW5lLnRyaW0oKSk7XG4gICAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGA8JHtsaXN0VGFnfT48bGk+PC9saT48LyR7bGlzdFRhZ30+YDtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgbGlzdEl0ZW1zID0gbGluZXMubWFwKGxpbmUgPT4gYDxsaT4ke2xpbmV9PC9saT5gKS5qb2luKCcnKTtcbiAgICByZXR1cm4gYDwke2xpc3RUYWd9PiR7bGlzdEl0ZW1zfTwvJHtsaXN0VGFnfT5gO1xuICB9XG4gIFxuICBzZXR1cChlbGVtZW50OiBIVE1MRWxlbWVudCwgYmxvY2s6IElCbG9jaywgaGFuZGxlcnM6IElCbG9ja0V2ZW50SGFuZGxlcnMpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0QmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5saXN0JykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFsaXN0QmxvY2spIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0xpc3RCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIGxpc3QgYmxvY2sgZWxlbWVudCBmb3VuZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBTZXQgaW5pdGlhbCBjb250ZW50IGlmIG5lZWRlZFxuICAgIGlmIChibG9jay5jb250ZW50ICYmICFsaXN0QmxvY2suaW5uZXJIVE1MKSB7XG4gICAgICBsaXN0QmxvY2suaW5uZXJIVE1MID0gdGhpcy5yZW5kZXJMaXN0Q29udGVudChibG9jay5jb250ZW50LCBibG9jay5tZXRhZGF0YSk7XG4gICAgfVxuICAgIFxuICAgIC8vIElucHV0IGhhbmRsZXJcbiAgICBsaXN0QmxvY2suYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoZSkgPT4ge1xuICAgICAgaGFuZGxlcnMub25JbnB1dChlIGFzIElucHV0RXZlbnQpO1xuICAgICAgXG4gICAgICAvLyBUcmFjayBjdXJzb3IgcG9zaXRpb24gYWZ0ZXIgaW5wdXRcbiAgICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudCk7XG4gICAgICBpZiAocG9zICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gPSBwb3M7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgLy8gS2V5ZG93biBoYW5kbGVyXG4gICAgbGlzdEJsb2NrLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZSkgPT4ge1xuICAgICAgLy8gVHJhY2sgY3Vyc29yIHBvc2l0aW9uIGJlZm9yZSBrZXlkb3duXG4gICAgICBjb25zdCBwb3MgPSB0aGlzLmdldEN1cnNvclBvc2l0aW9uKGVsZW1lbnQpO1xuICAgICAgaWYgKHBvcyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uID0gcG9zO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciBFbnRlciBrZXkgaW4gbGlzdHNcbiAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiAhZS5zaGlmdEtleSkge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwKSB7XG4gICAgICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50TGkgPSByYW5nZS5zdGFydENvbnRhaW5lci5wYXJlbnRFbGVtZW50Py5jbG9zZXN0KCdsaScpO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmIChjdXJyZW50TGkgJiYgY3VycmVudExpLnRleHRDb250ZW50ID09PSAnJykge1xuICAgICAgICAgICAgLy8gRW1wdHkgbGlzdCBpdGVtIC0gZXhpdCBsaXN0IG1vZGVcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZXJzLm9uS2V5RG93bihlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gT3RoZXJ3aXNlLCBsZXQgYnJvd3NlciBjcmVhdGUgbmV3IGxpc3QgaXRlbSBuYXR1cmFsbHlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICBoYW5kbGVycy5vbktleURvd24oZSk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gRm9jdXMgaGFuZGxlclxuICAgIGxpc3RCbG9jay5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHtcbiAgICAgIGhhbmRsZXJzLm9uRm9jdXMoKTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBCbHVyIGhhbmRsZXJcbiAgICBsaXN0QmxvY2suYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgIGhhbmRsZXJzLm9uQmx1cigpO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIENvbXBvc2l0aW9uIGhhbmRsZXJzIGZvciBJTUUgc3VwcG9ydFxuICAgIGxpc3RCbG9jay5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbnN0YXJ0JywgKCkgPT4ge1xuICAgICAgaGFuZGxlcnMub25Db21wb3NpdGlvblN0YXJ0KCk7XG4gICAgfSk7XG4gICAgXG4gICAgbGlzdEJsb2NrLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uZW5kJywgKCkgPT4ge1xuICAgICAgaGFuZGxlcnMub25Db21wb3NpdGlvbkVuZCgpO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIE1vdXNlIHVwIGhhbmRsZXJcbiAgICBsaXN0QmxvY2suYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIChlKSA9PiB7XG4gICAgICBjb25zdCBwb3MgPSB0aGlzLmdldEN1cnNvclBvc2l0aW9uKGVsZW1lbnQpO1xuICAgICAgaWYgKHBvcyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uID0gcG9zO1xuICAgICAgfVxuICAgICAgaGFuZGxlcnMub25Nb3VzZVVwPy4oZSk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gQ2xpY2sgaGFuZGxlclxuICAgIGxpc3RCbG9jay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50KTtcbiAgICAgICAgaWYgKHBvcyAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gPSBwb3M7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIEtleXVwIGhhbmRsZXJcbiAgICBsaXN0QmxvY2suYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZSkgPT4ge1xuICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50KTtcbiAgICAgIGlmIChwb3MgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiA9IHBvcztcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICAvLyBTZXQgdXAgc2VsZWN0aW9uIGhhbmRsZXJcbiAgICB0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcihlbGVtZW50LCBsaXN0QmxvY2ssIGJsb2NrKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBzZXR1cFNlbGVjdGlvbkhhbmRsZXIoZWxlbWVudDogSFRNTEVsZW1lbnQsIGxpc3RCbG9jazogSFRNTERpdkVsZW1lbnQsIGJsb2NrOiBJQmxvY2spOiB2b2lkIHtcbiAgICBjb25zdCBjaGVja1NlbGVjdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSByZXR1cm47XG4gICAgICBcbiAgICAgIGNvbnN0IHNlbGVjdGVkVGV4dCA9IHNlbGVjdGlvbi50b1N0cmluZygpO1xuICAgICAgaWYgKHNlbGVjdGVkVGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKHRoaXMubGFzdFNlbGVjdGVkVGV4dCkge1xuICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVGV4dCA9ICcnO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlbGVtZW50LCB7XG4gICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgIGJsb2NrSWQ6IGJsb2NrLmlkLFxuICAgICAgICAgICAgaGFzU2VsZWN0aW9uOiBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gR2V0IHBhcmVudCB3eXNpd3lnIGNvbXBvbmVudCdzIHNoYWRvdyByb290XG4gICAgICBjb25zdCB3eXNpd3lnQmxvY2sgPSAobGlzdEJsb2NrLmdldFJvb3ROb2RlKCkgYXMgU2hhZG93Um9vdCkuaG9zdCBhcyBhbnk7XG4gICAgICBjb25zdCBwYXJlbnRDb21wb25lbnQgPSB3eXNpd3lnQmxvY2s/LmNsb3Nlc3QoJ2RlZXMtaW5wdXQtd3lzaXd5ZycpO1xuICAgICAgY29uc3QgcGFyZW50U2hhZG93Um9vdCA9IHBhcmVudENvbXBvbmVudD8uc2hhZG93Um9vdDtcbiAgICAgIGNvbnN0IGJsb2NrU2hhZG93Um9vdCA9IHd5c2l3eWdCbG9jaz8uc2hhZG93Um9vdDtcbiAgICAgIFxuICAgICAgY29uc3Qgc2hhZG93Um9vdHM6IFNoYWRvd1Jvb3RbXSA9IFtdO1xuICAgICAgaWYgKHBhcmVudFNoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2gocGFyZW50U2hhZG93Um9vdCk7XG4gICAgICBpZiAoYmxvY2tTaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKGJsb2NrU2hhZG93Um9vdCk7XG4gICAgICBcbiAgICAgIGNvbnN0IHNlbGVjdGlvbkluZm8gPSBXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8oLi4uc2hhZG93Um9vdHMpO1xuICAgICAgaWYgKCFzZWxlY3Rpb25JbmZvKSByZXR1cm47XG4gICAgICBcbiAgICAgIGNvbnN0IHN0YXJ0SW5CbG9jayA9IFd5c2l3eWdTZWxlY3Rpb24uY29udGFpbnNBY3Jvc3NTaGFkb3dET00obGlzdEJsb2NrLCBzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyKTtcbiAgICAgIGNvbnN0IGVuZEluQmxvY2sgPSBXeXNpd3lnU2VsZWN0aW9uLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGxpc3RCbG9jaywgc2VsZWN0aW9uSW5mby5lbmRDb250YWluZXIpO1xuICAgICAgXG4gICAgICBpZiAoc3RhcnRJbkJsb2NrIHx8IGVuZEluQmxvY2spIHtcbiAgICAgICAgaWYgKHNlbGVjdGVkVGV4dCAhPT0gdGhpcy5sYXN0U2VsZWN0ZWRUZXh0KSB7XG4gICAgICAgICAgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0ID0gc2VsZWN0ZWRUZXh0O1xuICAgICAgICAgIFxuICAgICAgICAgIGNvbnN0IHJhbmdlID0gV3lzaXd5Z1NlbGVjdGlvbi5jcmVhdGVSYW5nZUZyb21JbmZvKHNlbGVjdGlvbkluZm8pO1xuICAgICAgICAgIGNvbnN0IHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZWxlbWVudCwge1xuICAgICAgICAgICAgdGV4dDogc2VsZWN0ZWRUZXh0LnRyaW0oKSxcbiAgICAgICAgICAgIGJsb2NrSWQ6IGJsb2NrLmlkLFxuICAgICAgICAgICAgcmFuZ2U6IHJhbmdlLFxuICAgICAgICAgICAgcmVjdDogcmVjdCxcbiAgICAgICAgICAgIGhhc1NlbGVjdGlvbjogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubGFzdFNlbGVjdGVkVGV4dCkge1xuICAgICAgICB0aGlzLmxhc3RTZWxlY3RlZFRleHQgPSAnJztcbiAgICAgICAgdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGVsZW1lbnQsIHtcbiAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICBibG9ja0lkOiBibG9jay5pZCxcbiAgICAgICAgICBoYXNTZWxlY3Rpb246IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgY2hlY2tTZWxlY3Rpb24pO1xuICAgIHRoaXMuc2VsZWN0aW9uSGFuZGxlciA9IGNoZWNrU2VsZWN0aW9uO1xuICAgIFxuICAgIC8vIENsZWFudXAgb24gZGlzY29ubmVjdFxuICAgIGNvbnN0IHd5c2l3eWdCbG9jayA9IChsaXN0QmxvY2suZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KS5ob3N0IGFzIGFueTtcbiAgICBpZiAod3lzaXd5Z0Jsb2NrKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbERpc2Nvbm5lY3RlZENhbGxiYWNrID0gKHd5c2l3eWdCbG9jayBhcyBhbnkpLmRpc2Nvbm5lY3RlZENhbGxiYWNrO1xuICAgICAgKHd5c2l3eWdCbG9jayBhcyBhbnkpLmRpc2Nvbm5lY3RlZENhbGxiYWNrID0gYXN5bmMgZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkhhbmRsZXIpIHtcbiAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzZWxlY3Rpb25jaGFuZ2UnLCB0aGlzLnNlbGVjdGlvbkhhbmRsZXIpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uSGFuZGxlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9yaWdpbmFsRGlzY29ubmVjdGVkQ2FsbGJhY2spIHtcbiAgICAgICAgICBhd2FpdCBvcmlnaW5hbERpc2Nvbm5lY3RlZENhbGxiYWNrLmNhbGwod3lzaXd5Z0Jsb2NrKTtcbiAgICAgICAgfVxuICAgICAgfS5iaW5kKHRoaXMpO1xuICAgIH1cbiAgfVxuICBcbiAgcHJpdmF0ZSBkaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBkZXRhaWw6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdibG9jay10ZXh0LXNlbGVjdGVkJywge1xuICAgICAgZGV0YWlsLFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgfSk7XG4gICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxuICBcbiAgZ2V0U3R5bGVzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbiAgICAgIC8qIExpc3Qgc3BlY2lmaWMgc3R5bGVzICovXG4gICAgICAuYmxvY2subGlzdCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5ibG9jay5saXN0IHVsLFxuICAgICAgLmJsb2NrLmxpc3Qgb2wge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmJsb2NrLmxpc3QgbGkge1xuICAgICAgICBtYXJnaW46IDRweCAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuYmxvY2subGlzdCBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICBgO1xuICB9XG4gIFxuICBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBcbiAgLy8gSGVscGVyIG1ldGhvZHMgZm9yIGxpc3QgZnVuY3Rpb25hbGl0eVxuICBcbiAgZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBhbnkpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBsaXN0QmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5saXN0JykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFsaXN0QmxvY2spIHJldHVybiBudWxsO1xuICAgIFxuICAgIGNvbnN0IHd5c2l3eWdCbG9jayA9IGNvbnRleHQ/LmNvbXBvbmVudDtcbiAgICBjb25zdCBwYXJlbnRDb21wb25lbnQgPSB3eXNpd3lnQmxvY2s/LmNsb3Nlc3QoJ2RlZXMtaW5wdXQtd3lzaXd5ZycpO1xuICAgIGNvbnN0IHBhcmVudFNoYWRvd1Jvb3QgPSBwYXJlbnRDb21wb25lbnQ/LnNoYWRvd1Jvb3Q7XG4gICAgY29uc3QgYmxvY2tTaGFkb3dSb290ID0gY29udGV4dD8uc2hhZG93Um9vdDtcbiAgICBcbiAgICBjb25zdCBzaGFkb3dSb290czogU2hhZG93Um9vdFtdID0gW107XG4gICAgaWYgKHBhcmVudFNoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2gocGFyZW50U2hhZG93Um9vdCk7XG4gICAgaWYgKGJsb2NrU2hhZG93Um9vdCkgc2hhZG93Um9vdHMucHVzaChibG9ja1NoYWRvd1Jvb3QpO1xuICAgIFxuICAgIGNvbnN0IHNlbGVjdGlvbkluZm8gPSBXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8oLi4uc2hhZG93Um9vdHMpO1xuICAgIGlmICghc2VsZWN0aW9uSW5mbykgcmV0dXJuIG51bGw7XG4gICAgXG4gICAgaWYgKCFXeXNpd3lnU2VsZWN0aW9uLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGxpc3RCbG9jaywgc2VsZWN0aW9uSW5mby5zdGFydENvbnRhaW5lcikpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBcbiAgICAvLyBGb3IgbGlzdHMsIGNhbGN1bGF0ZSBwb3NpdGlvbiBiYXNlZCBvbiB0ZXh0IGNvbnRlbnRcbiAgICBjb25zdCBwcmVDYXJldFJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICBwcmVDYXJldFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhsaXN0QmxvY2spO1xuICAgIHByZUNhcmV0UmFuZ2Uuc2V0RW5kKHNlbGVjdGlvbkluZm8uc3RhcnRDb250YWluZXIsIHNlbGVjdGlvbkluZm8uc3RhcnRPZmZzZXQpO1xuICAgIFxuICAgIHJldHVybiBwcmVDYXJldFJhbmdlLnRvU3RyaW5nKCkubGVuZ3RoO1xuICB9XG4gIFxuICBnZXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0PzogYW55KTogc3RyaW5nIHtcbiAgICBjb25zdCBsaXN0QmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5saXN0JykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFsaXN0QmxvY2spIHJldHVybiAnJztcbiAgICBcbiAgICAvLyBFeHRyYWN0IHRleHQgY29udGVudCBmcm9tIGxpc3QgaXRlbXNcbiAgICBjb25zdCBsaXN0SXRlbXMgPSBsaXN0QmxvY2sucXVlcnlTZWxlY3RvckFsbCgnbGknKTtcbiAgICBjb25zdCBjb250ZW50ID0gQXJyYXkuZnJvbShsaXN0SXRlbXMpXG4gICAgICAubWFwKGxpID0+IGxpLnRleHRDb250ZW50IHx8ICcnKVxuICAgICAgLmpvaW4oJ1xcbicpO1xuICAgIFxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG4gIFxuICBzZXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZW50OiBzdHJpbmcsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0QmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5saXN0JykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFsaXN0QmxvY2spIHJldHVybjtcbiAgICBcbiAgICBjb25zdCBoYWRGb2N1cyA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxpc3RCbG9jayB8fCBcbiAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCA9PT0gbGlzdEJsb2NrO1xuICAgIFxuICAgIC8vIEdldCBjdXJyZW50IG1ldGFkYXRhIHRvIHByZXNlcnZlIGxpc3QgdHlwZVxuICAgIGNvbnN0IGxpc3RFbGVtZW50ID0gbGlzdEJsb2NrLnF1ZXJ5U2VsZWN0b3IoJ3VsLCBvbCcpO1xuICAgIGNvbnN0IGlzT3JkZXJlZCA9IGxpc3RFbGVtZW50Py50YWdOYW1lID09PSAnT0wnO1xuICAgIFxuICAgIC8vIFVwZGF0ZSBjb250ZW50XG4gICAgbGlzdEJsb2NrLmlubmVySFRNTCA9IHRoaXMucmVuZGVyTGlzdENvbnRlbnQoY29udGVudCwgeyBsaXN0VHlwZTogaXNPcmRlcmVkID8gJ29yZGVyZWQnIDogJ3Vub3JkZXJlZCcgfSk7XG4gICAgXG4gICAgaWYgKGhhZEZvY3VzKSB7XG4gICAgICBsaXN0QmxvY2suZm9jdXMoKTtcbiAgICB9XG4gIH1cbiAgXG4gIHNldEN1cnNvclRvU3RhcnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0QmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5saXN0JykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFsaXN0QmxvY2spIHJldHVybjtcbiAgICBcbiAgICBjb25zdCBmaXJzdExpID0gbGlzdEJsb2NrLnF1ZXJ5U2VsZWN0b3IoJ2xpJyk7XG4gICAgaWYgKGZpcnN0TGkpIHtcbiAgICAgIGNvbnN0IHRleHROb2RlID0gdGhpcy5nZXRGaXJzdFRleHROb2RlKGZpcnN0TGkpO1xuICAgICAgaWYgKHRleHROb2RlKSB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICByYW5nZS5zZXRTdGFydCh0ZXh0Tm9kZSwgMCk7XG4gICAgICAgIHJhbmdlLnNldEVuZCh0ZXh0Tm9kZSwgMCk7XG4gICAgICAgIHNlbGVjdGlvbj8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIHNlbGVjdGlvbj8uYWRkUmFuZ2UocmFuZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgc2V0Q3Vyc29yVG9FbmQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0QmxvY2sgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jay5saXN0JykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCFsaXN0QmxvY2spIHJldHVybjtcbiAgICBcbiAgICBjb25zdCBsYXN0TGkgPSBsaXN0QmxvY2sucXVlcnlTZWxlY3RvcignbGk6bGFzdC1jaGlsZCcpO1xuICAgIGlmIChsYXN0TGkpIHtcbiAgICAgIGNvbnN0IHRleHROb2RlID0gdGhpcy5nZXRMYXN0VGV4dE5vZGUobGFzdExpKTtcbiAgICAgIGlmICh0ZXh0Tm9kZSkge1xuICAgICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgY29uc3QgdGV4dExlbmd0aCA9IHRleHROb2RlLnRleHRDb250ZW50Py5sZW5ndGggfHwgMDtcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQodGV4dE5vZGUsIHRleHRMZW5ndGgpO1xuICAgICAgICByYW5nZS5zZXRFbmQodGV4dE5vZGUsIHRleHRMZW5ndGgpO1xuICAgICAgICBzZWxlY3Rpb24/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICBzZWxlY3Rpb24/LmFkZFJhbmdlKHJhbmdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgZ2V0Rmlyc3RUZXh0Tm9kZShlbGVtZW50OiBOb2RlKTogVGV4dCB8IG51bGwge1xuICAgIGlmIChlbGVtZW50Lm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQgYXMgVGV4dDtcbiAgICB9XG4gICAgXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGZpcnN0VGV4dCA9IHRoaXMuZ2V0Rmlyc3RUZXh0Tm9kZShlbGVtZW50LmNoaWxkTm9kZXNbaV0pO1xuICAgICAgaWYgKGZpcnN0VGV4dCkgcmV0dXJuIGZpcnN0VGV4dDtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIHByaXZhdGUgZ2V0TGFzdFRleHROb2RlKGVsZW1lbnQ6IE5vZGUpOiBUZXh0IHwgbnVsbCB7XG4gICAgaWYgKGVsZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICByZXR1cm4gZWxlbWVudCBhcyBUZXh0O1xuICAgIH1cbiAgICBcbiAgICBmb3IgKGxldCBpID0gZWxlbWVudC5jaGlsZE5vZGVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCBsYXN0VGV4dCA9IHRoaXMuZ2V0TGFzdFRleHROb2RlKGVsZW1lbnQuY2hpbGROb2Rlc1tpXSk7XG4gICAgICBpZiAobGFzdFRleHQpIHJldHVybiBsYXN0VGV4dDtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIGZvY3VzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZXh0PzogYW55KTogdm9pZCB7XG4gICAgY29uc3QgbGlzdEJsb2NrID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYmxvY2subGlzdCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGlmICghbGlzdEJsb2NrKSByZXR1cm47XG4gICAgXG4gICAgaWYgKCFsaXN0QmxvY2suaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKSkge1xuICAgICAgbGlzdEJsb2NrLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgJ3RydWUnKTtcbiAgICB9XG4gICAgXG4gICAgbGlzdEJsb2NrLmZvY3VzKCk7XG4gICAgXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGxpc3RCbG9jayAmJiBlbGVtZW50LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQgIT09IGxpc3RCbG9jaykge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGxpc3RCbG9jay5mb2N1cygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIFxuICBmb2N1c1dpdGhDdXJzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgfCBudW1iZXIgPSAnZW5kJywgY29udGV4dD86IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGxpc3RCbG9jayA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJsb2NrLmxpc3QnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoIWxpc3RCbG9jaykgcmV0dXJuO1xuICAgIFxuICAgIGlmICghbGlzdEJsb2NrLmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykpIHtcbiAgICAgIGxpc3RCbG9jay5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICd0cnVlJyk7XG4gICAgfVxuICAgIFxuICAgIGxpc3RCbG9jay5mb2N1cygpO1xuICAgIFxuICAgIGNvbnN0IHNldEN1cnNvciA9ICgpID0+IHtcbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICB0aGlzLnNldEN1cnNvclRvU3RhcnQoZWxlbWVudCwgY29udGV4dCk7XG4gICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnZW5kJykge1xuICAgICAgICB0aGlzLnNldEN1cnNvclRvRW5kKGVsZW1lbnQsIGNvbnRleHQpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcG9zaXRpb24gPT09ICdudW1iZXInKSB7XG4gICAgICAgIC8vIEZvciBudW1lcmljIHBvc2l0aW9ucyBpbiBsaXN0cywgd2UgbmVlZCBjdXN0b20gbG9naWNcbiAgICAgICAgLy8gVGhpcyBpcyBjb21wbGV4IGR1ZSB0byBsaXN0IHN0cnVjdHVyZSwgc28gZGVmYXVsdCB0byBlbmRcbiAgICAgICAgdGhpcy5zZXRDdXJzb3JUb0VuZChlbGVtZW50LCBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIFxuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsaXN0QmxvY2sgfHwgZWxlbWVudC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50ID09PSBsaXN0QmxvY2spIHtcbiAgICAgIHNldEN1cnNvcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxpc3RCbG9jayB8fCBlbGVtZW50LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQgPT09IGxpc3RCbG9jaykge1xuICAgICAgICAgIHNldEN1cnNvcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgXG4gIGdldFNwbGl0Q29udGVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dD86IGFueSk6IHsgYmVmb3JlOiBzdHJpbmc7IGFmdGVyOiBzdHJpbmcgfSB8IG51bGwge1xuICAgIGNvbnN0IGxpc3RCbG9jayA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJsb2NrLmxpc3QnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoIWxpc3RCbG9jaykgcmV0dXJuIG51bGw7XG4gICAgXG4gICAgLy8gRm9yIGxpc3RzLCB3ZSBkb24ndCBzcGxpdCBjb250ZW50IC0gaW5zdGVhZCBsZXQgdGhlIGtleWJvYXJkIGhhbmRsZXJcbiAgICAvLyBjcmVhdGUgYSBuZXcgcGFyYWdyYXBoIGJsb2NrIHdoZW4gRW50ZXIgaXMgcHJlc3NlZCBvbiBlbXB0eSBsaXN0IGl0ZW1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufSIsICJpbXBvcnQgeyBCYXNlQmxvY2tIYW5kbGVyLCB0eXBlIElCbG9ja0V2ZW50SGFuZGxlcnMgfSBmcm9tICcuLi9ibG9jay5iYXNlLmpzJztcbmltcG9ydCB0eXBlIHsgSUJsb2NrIH0gZnJvbSAnLi4vLi4vd3lzaXd5Zy50eXBlcy5qcyc7XG5pbXBvcnQgeyBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuLyoqXG4gKiBJbWFnZUJsb2NrSGFuZGxlciAtIEhhbmRsZXMgaW1hZ2UgdXBsb2FkLCBkaXNwbGF5LCBhbmQgaW50ZXJhY3Rpb25zXG4gKiBcbiAqIEZlYXR1cmVzOlxuICogLSBDbGljayB0byB1cGxvYWRcbiAqIC0gRHJhZyBhbmQgZHJvcCBzdXBwb3J0XG4gKiAtIEJhc2U2NCBlbmNvZGluZyAoVE9ETzogc2VydmVyIHVwbG9hZCBpbiBwcm9kdWN0aW9uKVxuICogLSBMb2FkaW5nIHN0YXRlc1xuICogLSBBbHQgdGV4dCBmcm9tIGZpbGVuYW1lXG4gKi9cbmV4cG9ydCBjbGFzcyBJbWFnZUJsb2NrSGFuZGxlciBleHRlbmRzIEJhc2VCbG9ja0hhbmRsZXIge1xuICB0eXBlID0gJ2ltYWdlJztcbiAgXG4gIHJlbmRlcihibG9jazogSUJsb2NrLCBpc1NlbGVjdGVkOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBjb25zdCBpbWFnZVVybCA9IGJsb2NrLm1ldGFkYXRhPy51cmw7XG4gICAgY29uc3QgYWx0VGV4dCA9IGJsb2NrLmNvbnRlbnQgfHwgJ0ltYWdlJztcbiAgICBjb25zdCBpc0xvYWRpbmcgPSBibG9jay5tZXRhZGF0YT8ubG9hZGluZztcbiAgICBcbiAgICByZXR1cm4gYFxuICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWJsb2NrLWNvbnRhaW5lciR7aXNTZWxlY3RlZCA/ICcgc2VsZWN0ZWQnIDogJyd9XCIgXG4gICAgICAgICAgIGRhdGEtYmxvY2staWQ9XCIke2Jsb2NrLmlkfVwiXG4gICAgICAgICAgIGRhdGEtaGFzLWltYWdlPVwiJHshIWltYWdlVXJsfVwiXG4gICAgICAgICAgIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICAke2lzTG9hZGluZyA/IHRoaXMucmVuZGVyTG9hZGluZygpIDogXG4gICAgICAgICAgaW1hZ2VVcmwgPyB0aGlzLnJlbmRlckltYWdlKGltYWdlVXJsLCBhbHRUZXh0KSA6IFxuICAgICAgICAgIHRoaXMucmVuZGVyUGxhY2Vob2xkZXIoKX1cbiAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgXG4gICAgICAgICAgICAgICBjbGFzcz1cImltYWdlLWZpbGUtaW5wdXRcIiBcbiAgICAgICAgICAgICAgIGFjY2VwdD1cImltYWdlLypcIiBcbiAgICAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuICBcbiAgcHJpdmF0ZSByZW5kZXJQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXG4gICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaWNvblwiIHN0eWxlPVwicG9pbnRlci1ldmVudHM6IG5vbmU7XCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIj5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiByeD1cIjJcIiByeT1cIjJcIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOC41XCIgY3k9XCI4LjVcIiByPVwiMS41XCIvPlxuICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz1cIjIxIDE1IDE2IDEwIDUgMjFcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLXRleHRcIiBzdHlsZT1cInBvaW50ZXItZXZlbnRzOiBub25lO1wiPkNsaWNrIHRvIHVwbG9hZCBhbiBpbWFnZTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWhpbnRcIiBzdHlsZT1cInBvaW50ZXItZXZlbnRzOiBub25lO1wiPm9yIGRyYWcgYW5kIGRyb3A8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbiAgXG4gIHByaXZhdGUgcmVuZGVySW1hZ2UodXJsOiBzdHJpbmcsIGFsdFRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1jb250YWluZXJcIj5cbiAgICAgICAgPGltZyBzcmM9XCIke3VybH1cIiBhbHQ9XCIke3RoaXMuZXNjYXBlSHRtbChhbHRUZXh0KX1cIiAvPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuICBcbiAgcHJpdmF0ZSByZW5kZXJMb2FkaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1sb2FkaW5nXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLXNwaW5uZXJcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctdGV4dFwiPlVwbG9hZGluZyBpbWFnZS4uLjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuICBcbiAgc2V0dXAoZWxlbWVudDogSFRNTEVsZW1lbnQsIGJsb2NrOiBJQmxvY2ssIGhhbmRsZXJzOiBJQmxvY2tFdmVudEhhbmRsZXJzKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaW1hZ2UtYmxvY2stY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZUlucHV0ID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaW1hZ2UtZmlsZS1pbnB1dCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBjb250YWluZXInKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgaWYgKCFmaWxlSW5wdXQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ltYWdlQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCBmaWxlIGlucHV0Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIENsaWNrIHRvIHVwbG9hZCAob25seSBvbiBwbGFjZWhvbGRlcilcbiAgICBjb25zdCBwbGFjZWhvbGRlciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyJyk7XG4gICAgaWYgKHBsYWNlaG9sZGVyKSB7XG4gICAgICBwbGFjZWhvbGRlci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgY29uc29sZS5sb2coJ0ltYWdlQmxvY2tIYW5kbGVyOiBQbGFjZWhvbGRlciBjbGlja2VkLCBvcGVuaW5nIGZpbGUgc2VsZWN0b3InKTtcbiAgICAgICAgZmlsZUlucHV0LmNsaWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgXG4gICAgLy8gQ29udGFpbmVyIGNsaWNrIGZvciBmb2N1c1xuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGhhbmRsZXJzLm9uRm9jdXMoKTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBGaWxlIGlucHV0IGNoYW5nZVxuICAgIGZpbGVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBhc3luYyAoZSkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSBlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzPy5bMF07XG4gICAgICBpZiAoZmlsZSkge1xuICAgICAgICBjb25zb2xlLmxvZygnSW1hZ2VCbG9ja0hhbmRsZXI6IEZpbGUgc2VsZWN0ZWQ6JywgZmlsZS5uYW1lKTtcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKGZpbGUsIGJsb2NrLCBoYW5kbGVycyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgLy8gRHJhZyBhbmQgZHJvcFxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIChlKSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgaWYgKCFibG9jay5tZXRhZGF0YT8udXJsKSB7XG4gICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdkcmFnLW92ZXInKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2xlYXZlJywgKGUpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZy1vdmVyJyk7XG4gICAgfSk7XG4gICAgXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBhc3luYyAoZSkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnLW92ZXInKTtcbiAgICAgIFxuICAgICAgY29uc3QgZmlsZSA9IGUuZGF0YVRyYW5zZmVyPy5maWxlc1swXTtcbiAgICAgIGlmIChmaWxlICYmIGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSAmJiAhYmxvY2subWV0YWRhdGE/LnVybCkge1xuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUZpbGVVcGxvYWQoZmlsZSwgYmxvY2ssIGhhbmRsZXJzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICAvLyBGb2N1cy9ibHVyXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gaGFuZGxlcnMub25Gb2N1cygpKTtcbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IGhhbmRsZXJzLm9uQmx1cigpKTtcbiAgICBcbiAgICAvLyBLZXlib2FyZCBuYXZpZ2F0aW9uXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZSkgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSAnRGVsZXRlJyB8fCBlLmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgICAgaWYgKGJsb2NrLm1ldGFkYXRhPy51cmwpIHtcbiAgICAgICAgICAvLyBDbGVhciB0aGUgaW1hZ2VcbiAgICAgICAgICBibG9jay5tZXRhZGF0YS51cmwgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgYmxvY2subWV0YWRhdGEubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIGJsb2NrLmNvbnRlbnQgPSAnJztcbiAgICAgICAgICBoYW5kbGVycy5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcpKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGhhbmRsZXJzLm9uS2V5RG93bihlKTtcbiAgICB9KTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVGaWxlVXBsb2FkKFxuICAgIGZpbGU6IEZpbGUsIFxuICAgIGJsb2NrOiBJQmxvY2ssIFxuICAgIGhhbmRsZXJzOiBJQmxvY2tFdmVudEhhbmRsZXJzXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnNvbGUubG9nKCdJbWFnZUJsb2NrSGFuZGxlcjogU3RhcnRpbmcgZmlsZSB1cGxvYWQnLCB7IFxuICAgICAgZmlsZU5hbWU6IGZpbGUubmFtZSwgXG4gICAgICBmaWxlU2l6ZTogZmlsZS5zaXplLFxuICAgICAgYmxvY2tJZDogYmxvY2suaWQgXG4gICAgfSk7XG4gICAgXG4gICAgLy8gVmFsaWRhdGUgZmlsZVxuICAgIGlmICghZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIGZpbGUgdHlwZTonLCBmaWxlLnR5cGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBmaWxlIHNpemUgKDEwTUIgbGltaXQpXG4gICAgY29uc3QgbWF4U2l6ZSA9IDEwICogMTAyNCAqIDEwMjQ7XG4gICAgaWYgKGZpbGUuc2l6ZSA+IG1heFNpemUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZpbGUgdG9vIGxhcmdlLiBNYXhpbXVtIHNpemUgaXMgMTBNQicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBTZXQgbG9hZGluZyBzdGF0ZVxuICAgIGlmICghYmxvY2subWV0YWRhdGEpIGJsb2NrLm1ldGFkYXRhID0ge307XG4gICAgYmxvY2subWV0YWRhdGEubG9hZGluZyA9IHRydWU7XG4gICAgYmxvY2subWV0YWRhdGEuZmlsZU5hbWUgPSBmaWxlLm5hbWU7XG4gICAgYmxvY2subWV0YWRhdGEuZmlsZVNpemUgPSBmaWxlLnNpemU7XG4gICAgYmxvY2subWV0YWRhdGEubWltZVR5cGUgPSBmaWxlLnR5cGU7XG4gICAgXG4gICAgY29uc29sZS5sb2coJ0ltYWdlQmxvY2tIYW5kbGVyOiBTZXQgbG9hZGluZyBzdGF0ZSwgcmVxdWVzdGluZyB1cGRhdGUnKTtcbiAgICAvLyBSZXF1ZXN0IGltbWVkaWF0ZSBVSSB1cGRhdGUgZm9yIGxvYWRpbmcgc3RhdGVcbiAgICBoYW5kbGVycy5vblJlcXVlc3RVcGRhdGU/LigpO1xuICAgIFxuICAgIHRyeSB7XG4gICAgICAvLyBDb252ZXJ0IHRvIGJhc2U2NFxuICAgICAgY29uc3QgZGF0YVVybCA9IGF3YWl0IHRoaXMuZmlsZVRvRGF0YVVybChmaWxlKTtcbiAgICAgIFxuICAgICAgLy8gVXBkYXRlIGJsb2NrXG4gICAgICBibG9jay5tZXRhZGF0YS51cmwgPSBkYXRhVXJsO1xuICAgICAgYmxvY2subWV0YWRhdGEubG9hZGluZyA9IGZhbHNlO1xuICAgICAgXG4gICAgICAvLyBTZXQgZGVmYXVsdCBhbHQgdGV4dCBmcm9tIGZpbGVuYW1lXG4gICAgICBjb25zdCBuYW1lV2l0aG91dEV4dCA9IGZpbGUubmFtZS5yZXBsYWNlKC9cXC5bXi8uXSskLywgJycpO1xuICAgICAgYmxvY2suY29udGVudCA9IG5hbWVXaXRob3V0RXh0O1xuICAgICAgXG4gICAgICBjb25zb2xlLmxvZygnSW1hZ2VCbG9ja0hhbmRsZXI6IFVwbG9hZCBjb21wbGV0ZSwgcmVxdWVzdGluZyB1cGRhdGUnLCB7XG4gICAgICAgIGhhc1VybDogISFibG9jay5tZXRhZGF0YS51cmwsXG4gICAgICAgIHVybExlbmd0aDogZGF0YVVybC5sZW5ndGgsXG4gICAgICAgIGFsdFRleHQ6IGJsb2NrLmNvbnRlbnRcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBSZXF1ZXN0IGltbWVkaWF0ZSBVSSB1cGRhdGUgdG8gc2hvdyB1cGxvYWRlZCBpbWFnZVxuICAgICAgaGFuZGxlcnMub25SZXF1ZXN0VXBkYXRlPy4oKTtcbiAgICAgIFxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gdXBsb2FkIGltYWdlOicsIGVycm9yKTtcbiAgICAgIGJsb2NrLm1ldGFkYXRhLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIC8vIFJlcXVlc3QgVUkgdXBkYXRlIHRvIGNsZWFyIGxvYWRpbmcgc3RhdGVcbiAgICAgIGhhbmRsZXJzLm9uUmVxdWVzdFVwZGF0ZT8uKCk7XG4gICAgfVxuICB9XG4gIFxuICBwcml2YXRlIGZpbGVUb0RhdGFVcmwoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25sb2FkID0gKGUpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZS50YXJnZXQ/LnJlc3VsdDtcbiAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0ZhaWxlZCB0byByZWFkIGZpbGUnKSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgIH0pO1xuICB9XG4gIFxuICBwcml2YXRlIGVzY2FwZUh0bWwodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBkaXYudGV4dENvbnRlbnQgPSB0ZXh0O1xuICAgIHJldHVybiBkaXYuaW5uZXJIVE1MO1xuICB9XG4gIFxuICBnZXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogc3RyaW5nIHtcbiAgICAvLyBDb250ZW50IGlzIHRoZSBhbHQgdGV4dFxuICAgIGNvbnN0IGJsb2NrID0gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGVsZW1lbnQpO1xuICAgIHJldHVybiBibG9jaz8uY29udGVudCB8fCAnJztcbiAgfVxuICBcbiAgc2V0Q29udGVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gQ29udGVudCBpcyB0aGUgYWx0IHRleHRcbiAgICBjb25zdCBibG9jayA9IHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudChlbGVtZW50KTtcbiAgICBpZiAoYmxvY2spIHtcbiAgICAgIGJsb2NrLmNvbnRlbnQgPSBjb250ZW50O1xuICAgIH1cbiAgfVxuICBcbiAgcHJpdmF0ZSBnZXRCbG9ja0Zyb21FbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSUJsb2NrIHwgbnVsbCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaW1hZ2UtYmxvY2stY29udGFpbmVyJyk7XG4gICAgY29uc3QgYmxvY2tJZCA9IGNvbnRhaW5lcj8uZ2V0QXR0cmlidXRlKCdkYXRhLWJsb2NrLWlkJyk7XG4gICAgaWYgKCFibG9ja0lkKSByZXR1cm4gbnVsbDtcbiAgICBcbiAgICAvLyBUaGlzIGlzIGEgc2ltcGxpZmllZCB2ZXJzaW9uIC0gaW4gcmVhbCBpbXBsZW1lbnRhdGlvbixcbiAgICAvLyB3ZSdkIG5lZWQgYWNjZXNzIHRvIHRoZSBibG9jayBkYXRhXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBibG9ja0lkLFxuICAgICAgdHlwZTogJ2ltYWdlJyxcbiAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgbWV0YWRhdGE6IHt9XG4gICAgfTtcbiAgfVxuICBcbiAgZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbDsgLy8gSW1hZ2VzIGRvbid0IGhhdmUgY3Vyc29yIHBvc2l0aW9uXG4gIH1cbiAgXG4gIHNldEN1cnNvclRvU3RhcnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzKGVsZW1lbnQpO1xuICB9XG4gIFxuICBzZXRDdXJzb3JUb0VuZChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXMoZWxlbWVudCk7XG4gIH1cbiAgXG4gIGZvY3VzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaW1hZ2UtYmxvY2stY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29udGFpbmVyPy5mb2N1cygpO1xuICB9XG4gIFxuICBmb2N1c1dpdGhDdXJzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgfCBudW1iZXIgPSAnZW5kJyk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXMoZWxlbWVudCk7XG4gIH1cbiAgXG4gIGdldFNwbGl0Q29udGVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHsgYmVmb3JlOiBzdHJpbmc7IGFmdGVyOiBzdHJpbmcgfSB8IG51bGwge1xuICAgIHJldHVybiBudWxsOyAvLyBJbWFnZXMgY2FuJ3QgYmUgc3BsaXRcbiAgfVxuICBcbiAgZ2V0U3R5bGVzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbiAgICAgIC8qIEltYWdlIEJsb2NrIENvbnRhaW5lciAqL1xuICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzYzNjZmMScsICcjODE4Y2Y4Jyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBVcGxvYWQgUGxhY2Vob2xkZXIgKi9cbiAgICAgIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4O1xuICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzM3NDE1MScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZhZmFmYScsICcjMGEwYTBhJyl9O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lcjpob3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzljYTNhZicsICcjNmI3MjgwJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y5ZmFmYicsICcjMTExODI3Jyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLmRyYWctb3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzYzNjZmMScsICcjODE4Y2Y4Jyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2VmZjZmZicsICcjMWUxYjRiJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAudXBsb2FkLWljb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5Y2EzYWYnLCAnIzRiNTU2MycpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnVwbG9hZC10ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzNzQxNTEnLCAnI2U1ZTdlYicpfTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAudXBsb2FkLWhpbnQge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzljYTNhZicsICcjNmI3MjgwJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBJbWFnZSBDb250YWluZXIgKi9cbiAgICAgIC5pbWFnZS1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjlmYWZiJywgJyMxMTE4MjcnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5pbWFnZS1jb250YWluZXIgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIExvYWRpbmcgU3RhdGUgKi9cbiAgICAgIC5pbWFnZS1sb2FkaW5nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmYWZhZmEnLCAnIzBhMGEwYScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmxvYWRpbmctc3Bpbm5lciB7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzNzQxNTEnKX07XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNjM2NmYxJywgJyM4MThjZjgnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICBAa2V5ZnJhbWVzIHNwaW4ge1xuICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmxvYWRpbmctdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNmI3MjgwJywgJyM5Y2EzYWYnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIEZpbGUgaW5wdXQgaGlkZGVuICovXG4gICAgICAuaW1hZ2UtZmlsZS1pbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICBgO1xuICB9XG59IiwgImltcG9ydCB7IEJhc2VCbG9ja0hhbmRsZXIsIHR5cGUgSUJsb2NrRXZlbnRIYW5kbGVycyB9IGZyb20gJy4uL2Jsb2NrLmJhc2UuanMnO1xuaW1wb3J0IHR5cGUgeyBJQmxvY2sgfSBmcm9tICcuLi8uLi93eXNpd3lnLnR5cGVzLmpzJztcbmltcG9ydCB7IGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG4vKipcbiAqIFlvdVR1YmVCbG9ja0hhbmRsZXIgLSBIYW5kbGVzIFlvdVR1YmUgdmlkZW8gZW1iZWRkaW5nXG4gKiBcbiAqIEZlYXR1cmVzOlxuICogLSBZb3VUdWJlIFVSTCBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uXG4gKiAtIFZpZGVvIElEIGV4dHJhY3Rpb24gZnJvbSB2YXJpb3VzIFlvdVR1YmUgVVJMIGZvcm1hdHNcbiAqIC0gRW1iZWRkZWQgaWZyYW1lIHBsYXllclxuICogLSBDbGVhbiBtaW5pbWFsaXN0IGRlc2lnblxuICovXG5leHBvcnQgY2xhc3MgWW91VHViZUJsb2NrSGFuZGxlciBleHRlbmRzIEJhc2VCbG9ja0hhbmRsZXIge1xuICB0eXBlID0gJ3lvdXR1YmUnO1xuICBcbiAgcmVuZGVyKGJsb2NrOiBJQmxvY2ssIGlzU2VsZWN0ZWQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIGNvbnN0IHZpZGVvSWQgPSBibG9jay5tZXRhZGF0YT8udmlkZW9JZDtcbiAgICBjb25zdCB1cmwgPSBibG9jay5tZXRhZGF0YT8udXJsIHx8ICcnO1xuICAgIFxuICAgIHJldHVybiBgXG4gICAgICA8ZGl2IGNsYXNzPVwieW91dHViZS1ibG9jay1jb250YWluZXIke2lzU2VsZWN0ZWQgPyAnIHNlbGVjdGVkJyA6ICcnfVwiIFxuICAgICAgICAgICBkYXRhLWJsb2NrLWlkPVwiJHtibG9jay5pZH1cIlxuICAgICAgICAgICBkYXRhLWhhcy12aWRlbz1cIiR7ISF2aWRlb0lkfVwiPlxuICAgICAgICAke3ZpZGVvSWQgPyB0aGlzLnJlbmRlclZpZGVvKHZpZGVvSWQpIDogdGhpcy5yZW5kZXJQbGFjZWhvbGRlcih1cmwpfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuICBcbiAgcHJpdmF0ZSByZW5kZXJQbGFjZWhvbGRlcih1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbiAgICAgIDxkaXYgY2xhc3M9XCJ5b3V0dWJlLXBsYWNlaG9sZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlci1pY29uXCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0xOS42MTUgMy4xODRjLTMuNjA0LS4yNDYtMTEuNjMxLS4yNDUtMTUuMjMgMC0zLjg5Ny4yNjYtNC4zNTYgMi42Mi00LjM4NSA4LjgxNi4wMjkgNi4xODUuNDg0IDguNTQ5IDQuMzg1IDguODE2IDMuNi4yNDUgMTEuNjI2LjI0NiAxNS4yMyAwIDMuODk3LS4yNjYgNC4zNTYtMi42MiA0LjM4NS04LjgxNi0uMDI5LTYuMTg1LS40ODQtOC41NDktNC4zODUtOC44MTZ6bS0xMC42MTUgMTIuODE2di04bDggMy45OTMtOCA0LjAwN3pcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXItdGV4dFwiPkVudGVyIFlvdVR1YmUgVVJMPC9kaXY+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidXJsXCIgXG4gICAgICAgICAgICAgICBjbGFzcz1cInlvdXR1YmUtdXJsLWlucHV0XCIgXG4gICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImh0dHBzOi8veW91dHViZS5jb20vd2F0Y2g/dj0uLi5cIiBcbiAgICAgICAgICAgICAgIHZhbHVlPVwiJHt0aGlzLmVzY2FwZUh0bWwodXJsKX1cIiAvPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwieW91dHViZS1lbWJlZC1idG5cIj5FbWJlZCBWaWRlbzwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuICBcbiAgcHJpdmF0ZSByZW5kZXJWaWRlbyh2aWRlb0lkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXG4gICAgICA8ZGl2IGNsYXNzPVwieW91dHViZS1jb250YWluZXJcIj5cbiAgICAgICAgPGlmcmFtZSBcbiAgICAgICAgICBzcmM9XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke3ZpZGVvSWR9XCJcbiAgICAgICAgICBmcmFtZWJvcmRlcj1cIjBcIlxuICAgICAgICAgIGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZVwiXG4gICAgICAgICAgYWxsb3dmdWxsc2NyZWVuXG4gICAgICAgID48L2lmcmFtZT5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbiAgXG4gIHNldHVwKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBibG9jazogSUJsb2NrLCBoYW5kbGVyczogSUJsb2NrRXZlbnRIYW5kbGVycyk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLnlvdXR1YmUtYmxvY2stY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKCFjb250YWluZXIpIHJldHVybjtcbiAgICBcbiAgICAvLyBJZiB2aWRlbyBpcyBhbHJlYWR5IGVtYmVkZGVkLCBqdXN0IGhhbmRsZSBmb2N1cy9ibHVyXG4gICAgaWYgKGJsb2NrLm1ldGFkYXRhPy52aWRlb0lkKSB7XG4gICAgICBjb250YWluZXIuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiBoYW5kbGVycy5vbkZvY3VzKCkpO1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiBoYW5kbGVycy5vbkJsdXIoKSk7XG4gICAgICBcbiAgICAgIC8vIEhhbmRsZSBkZWxldGlvblxuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZSkgPT4ge1xuICAgICAgICBpZiAoZS5rZXkgPT09ICdEZWxldGUnIHx8IGUua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBoYW5kbGVycy5vbktleURvd24oZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGFuZGxlcnMub25LZXlEb3duKGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gU2V0dXAgcGxhY2Vob2xkZXIgaW50ZXJhY3Rpb25zXG4gICAgY29uc3QgdXJsSW5wdXQgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy55b3V0dWJlLXVybC1pbnB1dCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZW1iZWRCdG4gPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy55b3V0dWJlLWVtYmVkLWJ0bicpIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgIFxuICAgIGlmICghdXJsSW5wdXQgfHwgIWVtYmVkQnRuKSByZXR1cm47XG4gICAgXG4gICAgLy8gRm9jdXMgbWFuYWdlbWVudFxuICAgIHVybElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gaGFuZGxlcnMub25Gb2N1cygpKTtcbiAgICB1cmxJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4gaGFuZGxlcnMub25CbHVyKCkpO1xuICAgIFxuICAgIC8vIEhhbmRsZSBlbWJlZCBidXR0b24gY2xpY2tcbiAgICBlbWJlZEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIHRoaXMuZW1iZWRWaWRlbyh1cmxJbnB1dC52YWx1ZSwgYmxvY2ssIGhhbmRsZXJzKTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBIYW5kbGUgRW50ZXIga2V5IGluIGlucHV0XG4gICAgdXJsSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB7XG4gICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmVtYmVkVmlkZW8odXJsSW5wdXQudmFsdWUsIGJsb2NrLCBoYW5kbGVycyk7XG4gICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHVybElucHV0LmJsdXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICAvLyBIYW5kbGUgcGFzdGUgZXZlbnRcbiAgICB1cmxJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAvLyBBbGxvdyBwYXN0ZSB0byBjb21wbGV0ZSBmaXJzdFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhc3RlZFVybCA9IHVybElucHV0LnZhbHVlO1xuICAgICAgICBpZiAodGhpcy5leHRyYWN0WW91VHViZVZpZGVvSWQocGFzdGVkVXJsKSkge1xuICAgICAgICAgIC8vIEF1dG8tZW1iZWQgaWYgdmFsaWQgWW91VHViZSBVUkwgd2FzIHBhc3RlZFxuICAgICAgICAgIHRoaXMuZW1iZWRWaWRlbyhwYXN0ZWRVcmwsIGJsb2NrLCBoYW5kbGVycyk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIFVwZGF0ZSBVUkwgaW4gbWV0YWRhdGEgYXMgdXNlciB0eXBlc1xuICAgIHVybElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4ge1xuICAgICAgaWYgKCFibG9jay5tZXRhZGF0YSkgYmxvY2subWV0YWRhdGEgPSB7fTtcbiAgICAgIGJsb2NrLm1ldGFkYXRhLnVybCA9IHVybElucHV0LnZhbHVlO1xuICAgIH0pO1xuICB9XG4gIFxuICBwcml2YXRlIGVtYmVkVmlkZW8odXJsOiBzdHJpbmcsIGJsb2NrOiBJQmxvY2ssIGhhbmRsZXJzOiBJQmxvY2tFdmVudEhhbmRsZXJzKTogdm9pZCB7XG4gICAgY29uc3QgdmlkZW9JZCA9IHRoaXMuZXh0cmFjdFlvdVR1YmVWaWRlb0lkKHVybCk7XG4gICAgXG4gICAgaWYgKCF2aWRlb0lkKSB7XG4gICAgICAvLyBDb3VsZCBzaG93IGFuIGVycm9yIG1lc3NhZ2UgaGVyZVxuICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBZb3VUdWJlIFVSTCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBVcGRhdGUgYmxvY2sgbWV0YWRhdGFcbiAgICBpZiAoIWJsb2NrLm1ldGFkYXRhKSBibG9jay5tZXRhZGF0YSA9IHt9O1xuICAgIGJsb2NrLm1ldGFkYXRhLnZpZGVvSWQgPSB2aWRlb0lkO1xuICAgIGJsb2NrLm1ldGFkYXRhLnVybCA9IHVybDtcbiAgICBcbiAgICAvLyBTZXQgY29udGVudCBhcyB2aWRlbyB0aXRsZSAoY291bGQgYmUgZmV0Y2hlZCBmcm9tIEFQSSBpbiB0aGUgZnV0dXJlKVxuICAgIGJsb2NrLmNvbnRlbnQgPSBgWW91VHViZSBWaWRlbzogJHt2aWRlb0lkfWA7XG4gICAgXG4gICAgLy8gUmVxdWVzdCBpbW1lZGlhdGUgVUkgdXBkYXRlIHRvIHNob3cgZW1iZWRkZWQgdmlkZW9cbiAgICBoYW5kbGVycy5vblJlcXVlc3RVcGRhdGU/LigpO1xuICB9XG4gIFxuICBwcml2YXRlIGV4dHJhY3RZb3VUdWJlVmlkZW9JZCh1cmw6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIC8vIEhhbmRsZSB2YXJpb3VzIFlvdVR1YmUgVVJMIGZvcm1hdHNcbiAgICBjb25zdCBwYXR0ZXJucyA9IFtcbiAgICAgIC8oPzp5b3V0dWJlXFwuY29tXFwvKD86W15cXC9dK1xcLy4rXFwvfCg/OnZ8ZSg/Om1iZWQpPylcXC98LipbPyZddj0pfHlvdXR1XFwuYmVcXC8pKFteXCImP1xcLyBdezExfSkvLFxuICAgICAgL3lvdXR1YmVcXC5jb21cXC9lbWJlZFxcLyhbXlwiJj9cXC8gXXsxMX0pLyxcbiAgICAgIC95b3V0dWJlXFwuY29tXFwvd2F0Y2hcXD92PShbXlwiJj9cXC8gXXsxMX0pLyxcbiAgICAgIC95b3V0dVxcLmJlXFwvKFteXCImP1xcLyBdezExfSkvXG4gICAgXTtcbiAgICBcbiAgICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgcGF0dGVybnMpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gdXJsLm1hdGNoKHBhdHRlcm4pO1xuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIHJldHVybiBtYXRjaFsxXTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIHByaXZhdGUgZXNjYXBlSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGRpdi50ZXh0Q29udGVudCA9IHRleHQ7XG4gICAgcmV0dXJuIGRpdi5pbm5lckhUTUw7XG4gIH1cbiAgXG4gIGdldENvbnRlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBzdHJpbmcge1xuICAgIC8vIENvbnRlbnQgaXMgdGhlIHZpZGVvIGRlc2NyaXB0aW9uL3RpdGxlXG4gICAgY29uc3QgYmxvY2sgPSB0aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQoZWxlbWVudCk7XG4gICAgcmV0dXJuIGJsb2NrPy5jb250ZW50IHx8ICcnO1xuICB9XG4gIFxuICBzZXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBDb250ZW50IGlzIHRoZSB2aWRlbyBkZXNjcmlwdGlvbi90aXRsZVxuICAgIGNvbnN0IGJsb2NrID0gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGVsZW1lbnQpO1xuICAgIGlmIChibG9jaykge1xuICAgICAgYmxvY2suY29udGVudCA9IGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIFxuICBwcml2YXRlIGdldEJsb2NrRnJvbUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBJQmxvY2sgfCBudWxsIHtcbiAgICBjb25zdCBjb250YWluZXIgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy55b3V0dWJlLWJsb2NrLWNvbnRhaW5lcicpO1xuICAgIGNvbnN0IGJsb2NrSWQgPSBjb250YWluZXI/LmdldEF0dHJpYnV0ZSgnZGF0YS1ibG9jay1pZCcpO1xuICAgIGlmICghYmxvY2tJZCkgcmV0dXJuIG51bGw7XG4gICAgXG4gICAgLy8gU2ltcGxpZmllZCB2ZXJzaW9uIC0gaW4gcmVhbCBpbXBsZW1lbnRhdGlvbiB3b3VsZCBuZWVkIGFjY2VzcyB0byBibG9jayBkYXRhXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBibG9ja0lkLFxuICAgICAgdHlwZTogJ3lvdXR1YmUnLFxuICAgICAgY29udGVudDogJycsXG4gICAgICBtZXRhZGF0YToge31cbiAgICB9O1xuICB9XG4gIFxuICBnZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiBudWxsOyAvLyBZb3VUdWJlIGJsb2NrcyBkb24ndCBoYXZlIGN1cnNvciBwb3NpdGlvblxuICB9XG4gIFxuICBzZXRDdXJzb3JUb1N0YXJ0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cyhlbGVtZW50KTtcbiAgfVxuICBcbiAgc2V0Q3Vyc29yVG9FbmQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzKGVsZW1lbnQpO1xuICB9XG4gIFxuICBmb2N1cyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLnlvdXR1YmUtYmxvY2stY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgdXJsSW5wdXQgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy55b3V0dWJlLXVybC1pbnB1dCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgXG4gICAgaWYgKHVybElucHV0KSB7XG4gICAgICB1cmxJbnB1dC5mb2N1cygpO1xuICAgIH0gZWxzZSBpZiAoY29udGFpbmVyKSB7XG4gICAgICBjb250YWluZXIuZm9jdXMoKTtcbiAgICB9XG4gIH1cbiAgXG4gIGZvY3VzV2l0aEN1cnNvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgcG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyB8IG51bWJlciA9ICdlbmQnKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cyhlbGVtZW50KTtcbiAgfVxuICBcbiAgZ2V0U3BsaXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogeyBiZWZvcmU6IHN0cmluZzsgYWZ0ZXI6IHN0cmluZyB9IHwgbnVsbCB7XG4gICAgcmV0dXJuIG51bGw7IC8vIFlvdVR1YmUgYmxvY2tzIGNhbid0IGJlIHNwbGl0XG4gIH1cbiAgXG4gIGdldFN0eWxlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXG4gICAgICAvKiBZb3VUdWJlIEJsb2NrIENvbnRhaW5lciAqL1xuICAgICAgLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDEycHggMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnlvdXR1YmUtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNjM2NmYxJywgJyM4MThjZjgnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIFlvdVR1YmUgUGxhY2Vob2xkZXIgKi9cbiAgICAgIC55b3V0dWJlLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMjRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzM3NDE1MScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZhZmFmYScsICcjMGEwYTBhJyl9O1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5wbGFjZWhvbGRlci1pY29uIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZGMyNjI2JywgJyNlZjQ0NDQnKX07XG4gICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnBsYWNlaG9sZGVyLXRleHQge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzM3NDE1MScsICcjZTVlN2ViJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAueW91dHViZS11cmwtaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzNzQxNTEnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzExMTgyNycpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMTExODI3JywgJyNmOWZhZmInKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC55b3V0dWJlLXVybC1pbnB1dDpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM2YjcyODAnLCAnIzljYTNhZicpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzFmMjkzNycpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnlvdXR1YmUtdXJsLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzljYTNhZicsICcjNGI1NTYzJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAueW91dHViZS1lbWJlZC1idG4ge1xuICAgICAgICBwYWRkaW5nOiA2cHggMTZweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMxMTE4MjcnLCAnI2Y5ZmFmYicpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjlmYWZiJywgJyMxMTE4MjcnKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzNzQxNTEnLCAnI2U1ZTdlYicpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuOmFjdGl2ZSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIFlvdVR1YmUgQ29udGFpbmVyICovXG4gICAgICAueW91dHViZS1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyAvKiAxNjo5IGFzcGVjdCByYXRpbyAqL1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwMDAwMCcsICcjMDAwMDAwJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAueW91dHViZS1jb250YWluZXIgaWZyYW1lIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgfVxuICAgIGA7XG4gIH1cbn0iLCAiaW1wb3J0IHsgQmFzZUJsb2NrSGFuZGxlciwgdHlwZSBJQmxvY2tFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi4vYmxvY2suYmFzZS5qcyc7XG5pbXBvcnQgdHlwZSB7IElCbG9jayB9IGZyb20gJy4uLy4uL3d5c2l3eWcudHlwZXMuanMnO1xuaW1wb3J0IHsgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbi8qKlxuICogQXR0YWNobWVudEJsb2NrSGFuZGxlciAtIEhhbmRsZXMgZmlsZSBhdHRhY2htZW50c1xuICogXG4gKiBGZWF0dXJlczpcbiAqIC0gTXVsdGlwbGUgZmlsZSB1cGxvYWQgc3VwcG9ydFxuICogLSBDbGljayB0byB1cGxvYWQgb3IgZHJhZyBhbmQgZHJvcFxuICogLSBGaWxlIHR5cGUgaWNvbnNcbiAqIC0gUmVtb3ZlIGluZGl2aWR1YWwgZmlsZXNcbiAqIC0gQmFzZTY0IGVuY29kaW5nIChUT0RPOiBzZXJ2ZXIgdXBsb2FkIGluIHByb2R1Y3Rpb24pXG4gKi9cbmV4cG9ydCBjbGFzcyBBdHRhY2htZW50QmxvY2tIYW5kbGVyIGV4dGVuZHMgQmFzZUJsb2NrSGFuZGxlciB7XG4gIHR5cGUgPSAnYXR0YWNobWVudCc7XG4gIFxuICByZW5kZXIoYmxvY2s6IElCbG9jaywgaXNTZWxlY3RlZDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgY29uc3QgZmlsZXMgPSBibG9jay5tZXRhZGF0YT8uZmlsZXMgfHwgW107XG4gICAgXG4gICAgcmV0dXJuIGBcbiAgICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciR7aXNTZWxlY3RlZCA/ICcgc2VsZWN0ZWQnIDogJyd9XCIgXG4gICAgICAgICAgIGRhdGEtYmxvY2staWQ9XCIke2Jsb2NrLmlkfVwiXG4gICAgICAgICAgIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1pY29uXCI+XHVEODNEXHVEQ0NFPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnQtdGl0bGVcIj5GaWxlIEF0dGFjaG1lbnRzPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1saXN0XCI+XG4gICAgICAgICAgJHtmaWxlcy5sZW5ndGggPiAwID8gdGhpcy5yZW5kZXJGaWxlcyhmaWxlcykgOiB0aGlzLnJlbmRlclBsYWNlaG9sZGVyKCl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBcbiAgICAgICAgICAgICAgIGNsYXNzPVwiYXR0YWNobWVudC1maWxlLWlucHV0XCIgXG4gICAgICAgICAgICAgICBtdWx0aXBsZSBcbiAgICAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAvPlxuICAgICAgICAke2ZpbGVzLmxlbmd0aCA+IDAgPyAnPGJ1dHRvbiBjbGFzcz1cImFkZC1tb3JlLWZpbGVzXCI+QWRkIE1vcmUgRmlsZXM8L2J1dHRvbj4nIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG4gIFxuICBwcml2YXRlIHJlbmRlclBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbiAgICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50LXBsYWNlaG9sZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlci10ZXh0XCI+Q2xpY2sgdG8gYWRkIGZpbGVzPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlci1oaW50XCI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuICBcbiAgcHJpdmF0ZSByZW5kZXJGaWxlcyhmaWxlczogYW55W10pOiBzdHJpbmcge1xuICAgIHJldHVybiBmaWxlcy5tYXAoKGZpbGU6IGFueSkgPT4gYFxuICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnQtaXRlbVwiIGRhdGEtZmlsZS1pZD1cIiR7ZmlsZS5pZH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaWNvblwiPiR7dGhpcy5nZXRGaWxlSWNvbihmaWxlLnR5cGUpfTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pbmZvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbmFtZVwiPiR7dGhpcy5lc2NhcGVIdG1sKGZpbGUubmFtZSl9PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtc2l6ZVwiPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZShmaWxlLnNpemUpfTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlbW92ZS1maWxlXCIgZGF0YS1maWxlLWlkPVwiJHtmaWxlLmlkfVwiPlx1MDBENzwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgYCkuam9pbignJyk7XG4gIH1cbiAgXG4gIHNldHVwKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBibG9jazogSUJsb2NrLCBoYW5kbGVyczogSUJsb2NrRXZlbnRIYW5kbGVycyk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZUlucHV0ID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYXR0YWNobWVudC1maWxlLWlucHV0JykgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhZmlsZUlucHV0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBdHRhY2htZW50QmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBJbml0aWFsaXplIGZpbGVzIGFycmF5IGlmIG5lZWRlZFxuICAgIGlmICghYmxvY2subWV0YWRhdGEpIGJsb2NrLm1ldGFkYXRhID0ge307XG4gICAgaWYgKCFibG9jay5tZXRhZGF0YS5maWxlcykgYmxvY2subWV0YWRhdGEuZmlsZXMgPSBbXTtcbiAgICBcbiAgICAvLyBDbGljayB0byB1cGxvYWQgb24gcGxhY2Vob2xkZXJcbiAgICBjb25zdCBwbGFjZWhvbGRlciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcuYXR0YWNobWVudC1wbGFjZWhvbGRlcicpO1xuICAgIGlmIChwbGFjZWhvbGRlcikge1xuICAgICAgcGxhY2Vob2xkZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGZpbGVJbnB1dC5jbGljaygpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIFxuICAgIC8vIEFkZCBtb3JlIGZpbGVzIGJ1dHRvblxuICAgIGNvbnN0IGFkZE1vcmVCdG4gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignLmFkZC1tb3JlLWZpbGVzJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgaWYgKGFkZE1vcmVCdG4pIHtcbiAgICAgIGFkZE1vcmVCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGZpbGVJbnB1dC5jbGljaygpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIFxuICAgIC8vIEZpbGUgaW5wdXQgY2hhbmdlXG4gICAgZmlsZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGFzeW5jIChlKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICBjb25zdCBmaWxlcyA9IGlucHV0LmZpbGVzO1xuICAgICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVGaWxlQXR0YWNobWVudHMoZmlsZXMsIGJsb2NrLCBoYW5kbGVycyk7XG4gICAgICAgIGlucHV0LnZhbHVlID0gJyc7IC8vIENsZWFyIGlucHV0IGZvciBuZXh0IHNlbGVjdGlvblxuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIFJlbW92ZSBmaWxlIGJ1dHRvbnNcbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygncmVtb3ZlLWZpbGUnKSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGNvbnN0IGZpbGVJZCA9IHRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZmlsZS1pZCcpO1xuICAgICAgICBpZiAoZmlsZUlkKSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVGaWxlKGZpbGVJZCwgYmxvY2ssIGhhbmRsZXJzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIERyYWcgYW5kIGRyb3BcbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCAoZSkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdkcmFnLW92ZXInKTtcbiAgICB9KTtcbiAgICBcbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2xlYXZlJywgKGUpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZy1vdmVyJyk7XG4gICAgfSk7XG4gICAgXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBhc3luYyAoZSkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnLW92ZXInKTtcbiAgICAgIFxuICAgICAgY29uc3QgZmlsZXMgPSBlLmRhdGFUcmFuc2Zlcj8uZmlsZXM7XG4gICAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUZpbGVBdHRhY2htZW50cyhmaWxlcywgYmxvY2ssIGhhbmRsZXJzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICAvLyBGb2N1cy9ibHVyXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gaGFuZGxlcnMub25Gb2N1cygpKTtcbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IGhhbmRsZXJzLm9uQmx1cigpKTtcbiAgICBcbiAgICAvLyBLZXlib2FyZCBuYXZpZ2F0aW9uXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZSkgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSAnRGVsZXRlJyB8fCBlLmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgICAgLy8gT25seSByZW1vdmUgYWxsIGZpbGVzIGlmIGNvbnRhaW5lciBpcyBmb2N1c2VkLCBub3Qgd2hlbiByZW1vdmluZyBpbmRpdmlkdWFsIGZpbGVzXG4gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBjb250YWluZXIgJiYgYmxvY2subWV0YWRhdGE/LmZpbGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGJsb2NrLm1ldGFkYXRhLmZpbGVzID0gW107XG4gICAgICAgICAgaGFuZGxlcnMub25SZXF1ZXN0VXBkYXRlPy4oKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGhhbmRsZXJzLm9uS2V5RG93bihlKTtcbiAgICB9KTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVGaWxlQXR0YWNobWVudHMoXG4gICAgZmlsZXM6IEZpbGVMaXN0LFxuICAgIGJsb2NrOiBJQmxvY2ssXG4gICAgaGFuZGxlcnM6IElCbG9ja0V2ZW50SGFuZGxlcnNcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFibG9jay5tZXRhZGF0YSkgYmxvY2subWV0YWRhdGEgPSB7fTtcbiAgICBpZiAoIWJsb2NrLm1ldGFkYXRhLmZpbGVzKSBibG9jay5tZXRhZGF0YS5maWxlcyA9IFtdO1xuICAgIFxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBBcnJheS5mcm9tKGZpbGVzKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGF0YVVybCA9IGF3YWl0IHRoaXMuZmlsZVRvRGF0YVVybChmaWxlKTtcbiAgICAgICAgY29uc3QgZmlsZURhdGEgPSB7XG4gICAgICAgICAgaWQ6IHRoaXMuZ2VuZXJhdGVJZCgpLFxuICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgICAgICAgIGRhdGE6IGRhdGFVcmxcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIGJsb2NrLm1ldGFkYXRhLmZpbGVzLnB1c2goZmlsZURhdGEpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGF0dGFjaCBmaWxlOicsIGZpbGUubmFtZSwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBVcGRhdGUgYmxvY2sgY29udGVudCB3aXRoIGZpbGUgY291bnRcbiAgICBibG9jay5jb250ZW50ID0gYCR7YmxvY2subWV0YWRhdGEuZmlsZXMubGVuZ3RofSBmaWxlJHtibG9jay5tZXRhZGF0YS5maWxlcy5sZW5ndGggIT09IDEgPyAncycgOiAnJ30gYXR0YWNoZWRgO1xuICAgIFxuICAgIC8vIFJlcXVlc3QgVUkgdXBkYXRlXG4gICAgaGFuZGxlcnMub25SZXF1ZXN0VXBkYXRlPy4oKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSByZW1vdmVGaWxlKGZpbGVJZDogc3RyaW5nLCBibG9jazogSUJsb2NrLCBoYW5kbGVyczogSUJsb2NrRXZlbnRIYW5kbGVycyk6IHZvaWQge1xuICAgIGlmICghYmxvY2subWV0YWRhdGE/LmZpbGVzKSByZXR1cm47XG4gICAgXG4gICAgYmxvY2subWV0YWRhdGEuZmlsZXMgPSBibG9jay5tZXRhZGF0YS5maWxlcy5maWx0ZXIoKGY6IGFueSkgPT4gZi5pZCAhPT0gZmlsZUlkKTtcbiAgICBcbiAgICAvLyBVcGRhdGUgY29udGVudFxuICAgIGJsb2NrLmNvbnRlbnQgPSBibG9jay5tZXRhZGF0YS5maWxlcy5sZW5ndGggPiAwIFxuICAgICAgPyBgJHtibG9jay5tZXRhZGF0YS5maWxlcy5sZW5ndGh9IGZpbGUke2Jsb2NrLm1ldGFkYXRhLmZpbGVzLmxlbmd0aCAhPT0gMSA/ICdzJyA6ICcnfSBhdHRhY2hlZGBcbiAgICAgIDogJyc7XG4gICAgXG4gICAgLy8gUmVxdWVzdCBVSSB1cGRhdGVcbiAgICBoYW5kbGVycy5vblJlcXVlc3RVcGRhdGU/LigpO1xuICB9XG4gIFxuICBwcml2YXRlIGZpbGVUb0RhdGFVcmwoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25sb2FkID0gKGUpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZS50YXJnZXQ/LnJlc3VsdDtcbiAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0ZhaWxlZCB0byByZWFkIGZpbGUnKSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgIH0pO1xuICB9XG4gIFxuICBwcml2YXRlIGdldEZpbGVJY29uKG1pbWVUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChtaW1lVHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkgcmV0dXJuICdcdUQ4M0RcdUREQkNcdUZFMEYnO1xuICAgIGlmIChtaW1lVHlwZS5zdGFydHNXaXRoKCd2aWRlby8nKSkgcmV0dXJuICdcdUQ4M0NcdURGQTUnO1xuICAgIGlmIChtaW1lVHlwZS5zdGFydHNXaXRoKCdhdWRpby8nKSkgcmV0dXJuICdcdUQ4M0NcdURGQjUnO1xuICAgIGlmIChtaW1lVHlwZS5pbmNsdWRlcygncGRmJykpIHJldHVybiAnXHVEODNEXHVEQ0M0JztcbiAgICBpZiAobWltZVR5cGUuaW5jbHVkZXMoJ3ppcCcpIHx8IG1pbWVUeXBlLmluY2x1ZGVzKCdyYXInKSB8fCBtaW1lVHlwZS5pbmNsdWRlcygndGFyJykpIHJldHVybiAnXHVEODNEXHVEREM0XHVGRTBGJztcbiAgICBpZiAobWltZVR5cGUuaW5jbHVkZXMoJ3NoZWV0JykpIHJldHVybiAnXHVEODNEXHVEQ0NBJztcbiAgICBpZiAobWltZVR5cGUuaW5jbHVkZXMoJ2RvY3VtZW50JykgfHwgbWltZVR5cGUuaW5jbHVkZXMoJ21zd29yZCcpKSByZXR1cm4gJ1x1RDgzRFx1RENERCc7XG4gICAgaWYgKG1pbWVUeXBlLmluY2x1ZGVzKCdwcmVzZW50YXRpb24nKSkgcmV0dXJuICdcdUQ4M0RcdURDQ0InO1xuICAgIGlmIChtaW1lVHlwZS5pbmNsdWRlcygndGV4dCcpKSByZXR1cm4gJ1x1RDgzRFx1RENDMyc7XG4gICAgcmV0dXJuICdcdUQ4M0RcdURDQzEnO1xuICB9XG4gIFxuICBwcml2YXRlIGZvcm1hdEZpbGVTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA9PT0gMCkgcmV0dXJuICcwIEJ5dGVzJztcbiAgICBjb25zdCBrID0gMTAyNDtcbiAgICBjb25zdCBzaXplcyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InXTtcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoMikpICsgJyAnICsgc2l6ZXNbaV07XG4gIH1cbiAgXG4gIHByaXZhdGUgZ2VuZXJhdGVJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgZmlsZS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG4gIH1cbiAgXG4gIHByaXZhdGUgZXNjYXBlSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGRpdi50ZXh0Q29udGVudCA9IHRleHQ7XG4gICAgcmV0dXJuIGRpdi5pbm5lckhUTUw7XG4gIH1cbiAgXG4gIGdldENvbnRlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBzdHJpbmcge1xuICAgIC8vIENvbnRlbnQgaXMgdGhlIGRlc2NyaXB0aW9uIG9mIGF0dGFjaGVkIGZpbGVzXG4gICAgY29uc3QgYmxvY2sgPSB0aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQoZWxlbWVudCk7XG4gICAgcmV0dXJuIGJsb2NrPy5jb250ZW50IHx8ICcnO1xuICB9XG4gIFxuICBzZXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBDb250ZW50IGlzIHRoZSBkZXNjcmlwdGlvbiBvZiBhdHRhY2hlZCBmaWxlc1xuICAgIGNvbnN0IGJsb2NrID0gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGVsZW1lbnQpO1xuICAgIGlmIChibG9jaykge1xuICAgICAgYmxvY2suY29udGVudCA9IGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIFxuICBwcml2YXRlIGdldEJsb2NrRnJvbUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBJQmxvY2sgfCBudWxsIHtcbiAgICBjb25zdCBjb250YWluZXIgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lcicpO1xuICAgIGNvbnN0IGJsb2NrSWQgPSBjb250YWluZXI/LmdldEF0dHJpYnV0ZSgnZGF0YS1ibG9jay1pZCcpO1xuICAgIGlmICghYmxvY2tJZCkgcmV0dXJuIG51bGw7XG4gICAgXG4gICAgLy8gU2ltcGxpZmllZCB2ZXJzaW9uIC0gaW4gcmVhbCBpbXBsZW1lbnRhdGlvbiB3b3VsZCBuZWVkIGFjY2VzcyB0byBibG9jayBkYXRhXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBibG9ja0lkLFxuICAgICAgdHlwZTogJ2F0dGFjaG1lbnQnLFxuICAgICAgY29udGVudDogJycsXG4gICAgICBtZXRhZGF0YToge31cbiAgICB9O1xuICB9XG4gIFxuICBnZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiBudWxsOyAvLyBBdHRhY2htZW50IGJsb2NrcyBkb24ndCBoYXZlIGN1cnNvciBwb3NpdGlvblxuICB9XG4gIFxuICBzZXRDdXJzb3JUb1N0YXJ0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cyhlbGVtZW50KTtcbiAgfVxuICBcbiAgc2V0Q3Vyc29yVG9FbmQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzKGVsZW1lbnQpO1xuICB9XG4gIFxuICBmb2N1cyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29udGFpbmVyPy5mb2N1cygpO1xuICB9XG4gIFxuICBmb2N1c1dpdGhDdXJzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgfCBudW1iZXIgPSAnZW5kJyk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXMoZWxlbWVudCk7XG4gIH1cbiAgXG4gIGdldFNwbGl0Q29udGVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHsgYmVmb3JlOiBzdHJpbmc7IGFmdGVyOiBzdHJpbmcgfSB8IG51bGwge1xuICAgIHJldHVybiBudWxsOyAvLyBBdHRhY2htZW50IGJsb2NrcyBjYW4ndCBiZSBzcGxpdFxuICB9XG4gIFxuICBnZXRTdHlsZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxuICAgICAgLyogQXR0YWNobWVudCBCbG9jayBDb250YWluZXIgKi9cbiAgICAgIC5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzNzQxNTEnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMxMTE4MjcnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5Y2EzYWYnLCAnIzZiNzI4MCcpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyLmRyYWctb3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjlmYWZiJywgJyMxZjI5MzcnKX07XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM2MzY2ZjEnLCAnIzgxOGNmOCcpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLyogSGVhZGVyICovXG4gICAgICAuYXR0YWNobWVudC1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzM3NDE1MScpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmOWZhZmInLCAnIzBhMGEwYScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmF0dGFjaG1lbnQtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuYXR0YWNobWVudC10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzc0MTUxJywgJyNlNWU3ZWInKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIEZpbGUgTGlzdCAqL1xuICAgICAgLmF0dGFjaG1lbnQtbGlzdCB7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgbWluLWhlaWdodDogODBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIFBsYWNlaG9sZGVyICovXG4gICAgICAuYXR0YWNobWVudC1wbGFjZWhvbGRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuYXR0YWNobWVudC1wbGFjZWhvbGRlcjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjlmYWZiJywgJyMxZjI5MzcnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM2YjcyODAnLCAnIzljYTNhZicpfTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAucGxhY2Vob2xkZXItaGludCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjOWNhM2FmJywgJyM2YjcyODAnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIEZpbGUgSXRlbXMgKi9cbiAgICAgIC5hdHRhY2htZW50LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y5ZmFmYicsICcjMWYyOTM3Jyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMzc0MTUxJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuYXR0YWNobWVudC1pdGVtOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmM2Y0ZjYnLCAnIzM3NDE1MScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmZpbGUtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5maWxlLWluZm8ge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5maWxlLW5hbWUge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzExMTgyNycsICcjZjlmYWZiJyl9O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmZpbGUtc2l6ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNmI3MjgwJywgJyM5Y2EzYWYnKX07XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnJlbW92ZS1maWxlIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNmI3MjgwJywgJyM5Y2EzYWYnKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5yZW1vdmUtZmlsZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmVlMmUyJywgJyM5OTFiMWInKX07XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmY2E1YTUnLCAnI2RjMjYyNicpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZGMyNjI2JywgJyNmY2E1YTUnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIEFkZCBNb3JlIEZpbGVzIEJ1dHRvbiAqL1xuICAgICAgLmFkZC1tb3JlLWZpbGVzIHtcbiAgICAgICAgbWFyZ2luOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzM3NDE1MScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzM3NDE1MScsICcjZTVlN2ViJyl9O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuYWRkLW1vcmUtZmlsZXM6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y5ZmFmYicsICcjMWYyOTM3Jyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZDFkNWRiJywgJyM0YjU1NjMnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIEhpZGRlbiBmaWxlIGlucHV0ICovXG4gICAgICAuYXR0YWNobWVudC1maWxlLWlucHV0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIGA7XG4gIH1cbn0iLCAiaW1wb3J0IHsgQmFzZUJsb2NrSGFuZGxlciwgdHlwZSBJQmxvY2tFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi4vYmxvY2suYmFzZS5qcyc7XG5pbXBvcnQgdHlwZSB7IElCbG9jayB9IGZyb20gJy4uLy4uL3d5c2l3eWcudHlwZXMuanMnO1xuaW1wb3J0IHsgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmV4cG9ydCBjbGFzcyBEaXZpZGVyQmxvY2tIYW5kbGVyIGV4dGVuZHMgQmFzZUJsb2NrSGFuZGxlciB7XG4gIHR5cGUgPSAnZGl2aWRlcic7XG4gIFxuICByZW5kZXIoYmxvY2s6IElCbG9jaywgaXNTZWxlY3RlZDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VsZWN0ZWRDbGFzcyA9IGlzU2VsZWN0ZWQgPyAnIHNlbGVjdGVkJyA6ICcnO1xuICAgIHJldHVybiBgXG4gICAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgZGl2aWRlciR7c2VsZWN0ZWRDbGFzc31cIiBkYXRhLWJsb2NrLWlkPVwiJHtibG9jay5pZH1cIiBkYXRhLWJsb2NrLXR5cGU9XCIke2Jsb2NrLnR5cGV9XCIgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgIDxocj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbiAgXG4gIHNldHVwKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBibG9jazogSUJsb2NrLCBoYW5kbGVyczogSUJsb2NrRXZlbnRIYW5kbGVycyk6IHZvaWQge1xuICAgIGNvbnN0IGRpdmlkZXJCbG9jayA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJsb2NrLmRpdmlkZXInKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoIWRpdmlkZXJCbG9jaykgcmV0dXJuO1xuICAgIFxuICAgIC8vIEhhbmRsZSBjbGljayB0byBzZWxlY3RcbiAgICBkaXZpZGVyQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIC8vIEZvY3VzIHdpbGwgdHJpZ2dlciB0aGUgc2VsZWN0aW9uXG4gICAgICBkaXZpZGVyQmxvY2suZm9jdXMoKTtcbiAgICAgIC8vIEVuc3VyZSBmb2N1cyBoYW5kbGVyIGlzIGNhbGxlZCBpbW1lZGlhdGVseVxuICAgICAgaGFuZGxlcnMub25Gb2N1cz8uKCk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gSGFuZGxlIGZvY3VzL2JsdXJcbiAgICBkaXZpZGVyQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG4gICAgICBoYW5kbGVycy5vbkZvY3VzPy4oKTtcbiAgICB9KTtcbiAgICBcbiAgICBkaXZpZGVyQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgIGhhbmRsZXJzLm9uQmx1cj8uKCk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gSGFuZGxlIGtleWJvYXJkIGV2ZW50c1xuICAgIGRpdmlkZXJCbG9jay5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHtcbiAgICAgIGlmIChlLmtleSA9PT0gJ0JhY2tzcGFjZScgfHwgZS5rZXkgPT09ICdEZWxldGUnKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgLy8gTGV0IHRoZSBrZXlib2FyZCBoYW5kbGVyIGluIHRoZSBwYXJlbnQgY29tcG9uZW50IGhhbmRsZSB0aGUgZGVsZXRpb25cbiAgICAgICAgaGFuZGxlcnMub25LZXlEb3duPy4oZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBIYW5kbGUgbmF2aWdhdGlvbiBrZXlzXG4gICAgICAgIGhhbmRsZXJzLm9uS2V5RG93bj8uKGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIFxuICBnZXRTdHlsZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxuICAgICAgLmJsb2NrLmRpdmlkZXIge1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgICAgbWFyZ2luOiAxNnB4IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuYmxvY2suZGl2aWRlcjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5ibG9jay5kaXZpZGVyLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMTAyLCAyMDQsIDAuMDUpJywgJ3JnYmEoNzcsIDE0OCwgMjU1LCAwLjA4KScpfTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpJywgJ3JnYmEoNzcsIDE0OCwgMjU1LCAwLjIpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYmxvY2suZGl2aWRlciBociB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTBlMGUwJywgJyMzMzMnKX07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG4gICAgYDtcbiAgfVxufSIsICJpbXBvcnQgeyBCYXNlQmxvY2tIYW5kbGVyLCB0eXBlIElCbG9ja0V2ZW50SGFuZGxlcnMgfSBmcm9tICcuLi9ibG9jay5iYXNlLmpzJztcbmltcG9ydCB0eXBlIHsgSUJsb2NrIH0gZnJvbSAnLi4vLi4vd3lzaXd5Zy50eXBlcy5qcyc7XG5pbXBvcnQgeyBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuLyoqXG4gKiBNYXJrZG93bkJsb2NrSGFuZGxlciAtIEhhbmRsZXMgbWFya2Rvd24gY29udGVudCB3aXRoIHByZXZpZXcvZWRpdCB0b2dnbGVcbiAqIFxuICogRmVhdHVyZXM6XG4gKiAtIExpdmUgbWFya2Rvd24gcHJldmlld1xuICogLSBFZGl0L3ByZXZpZXcgbW9kZSB0b2dnbGVcbiAqIC0gU3ludGF4IGhpZ2hsaWdodGluZyBpbiBlZGl0IG1vZGVcbiAqIC0gQ29tbW9uIG1hcmtkb3duIHNob3J0Y3V0c1xuICogLSBBdXRvLXNhdmUgb24gbW9kZSBzd2l0Y2hcbiAqL1xuZXhwb3J0IGNsYXNzIE1hcmtkb3duQmxvY2tIYW5kbGVyIGV4dGVuZHMgQmFzZUJsb2NrSGFuZGxlciB7XG4gIHR5cGUgPSAnbWFya2Rvd24nO1xuICBcbiAgcmVuZGVyKGJsb2NrOiBJQmxvY2ssIGlzU2VsZWN0ZWQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGlzRWRpdE1vZGUgPSBibG9jay5tZXRhZGF0YT8uaXNFZGl0TW9kZSA/PyB0cnVlO1xuICAgIGNvbnN0IGNvbnRlbnQgPSBibG9jay5jb250ZW50IHx8ICcnO1xuICAgIFxuICAgIHJldHVybiBgXG4gICAgICA8ZGl2IGNsYXNzPVwibWFya2Rvd24tYmxvY2stY29udGFpbmVyJHtpc1NlbGVjdGVkID8gJyBzZWxlY3RlZCcgOiAnJ31cIiBcbiAgICAgICAgICAgZGF0YS1ibG9jay1pZD1cIiR7YmxvY2suaWR9XCJcbiAgICAgICAgICAgZGF0YS1lZGl0LW1vZGU9XCIke2lzRWRpdE1vZGV9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZG93bi1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFya2Rvd24taWNvblwiPk1cdTIxOTM8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFya2Rvd24tdGl0bGVcIj5NYXJrZG93bjwvZGl2PlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYXJrZG93bi10b2dnbGUtbW9kZVwiIHRpdGxlPVwiJHtpc0VkaXRNb2RlID8gJ1ByZXZpZXcnIDogJ0VkaXQnfVwiPlxuICAgICAgICAgICAgJHtpc0VkaXRNb2RlID8gJ1x1RDgzRFx1REM0MVx1RkUwRicgOiAnXHUyNzBGXHVGRTBGJ31cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZG93bi1jb250ZW50XCI+XG4gICAgICAgICAgJHtpc0VkaXRNb2RlID8gdGhpcy5yZW5kZXJFZGl0b3IoY29udGVudCkgOiB0aGlzLnJlbmRlclByZXZpZXcoY29udGVudCl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuICBcbiAgcHJpdmF0ZSByZW5kZXJFZGl0b3IoY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxuICAgICAgPHRleHRhcmVhIGNsYXNzPVwibWFya2Rvd24tZWRpdG9yXCIgXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBtYXJrZG93biBjb250ZW50Li4uXCJcbiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIj4ke3RoaXMuZXNjYXBlSHRtbChjb250ZW50KX08L3RleHRhcmVhPlxuICAgIGA7XG4gIH1cbiAgXG4gIHByaXZhdGUgcmVuZGVyUHJldmlldyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGh0bWwgPSB0aGlzLnBhcnNlTWFya2Rvd24oY29udGVudCk7XG4gICAgcmV0dXJuIGBcbiAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZG93bi1wcmV2aWV3XCI+XG4gICAgICAgICR7aHRtbCB8fCAnPGRpdiBjbGFzcz1cInByZXZpZXctZW1wdHlcIj5ObyBjb250ZW50IHRvIHByZXZpZXc8L2Rpdj4nfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuICBcbiAgc2V0dXAoZWxlbWVudDogSFRNTEVsZW1lbnQsIGJsb2NrOiBJQmxvY2ssIGhhbmRsZXJzOiBJQmxvY2tFdmVudEhhbmRsZXJzKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubWFya2Rvd24tYmxvY2stY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgdG9nZ2xlQnRuID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubWFya2Rvd24tdG9nZ2xlLW1vZGUnKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICBcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhdG9nZ2xlQnRuKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdNYXJrZG93bkJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgZWxlbWVudHMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gSW5pdGlhbGl6ZSBtZXRhZGF0YVxuICAgIGlmICghYmxvY2subWV0YWRhdGEpIGJsb2NrLm1ldGFkYXRhID0ge307XG4gICAgaWYgKGJsb2NrLm1ldGFkYXRhLmlzRWRpdE1vZGUgPT09IHVuZGVmaW5lZCkgYmxvY2subWV0YWRhdGEuaXNFZGl0TW9kZSA9IHRydWU7XG4gICAgXG4gICAgLy8gVG9nZ2xlIG1vZGUgYnV0dG9uXG4gICAgdG9nZ2xlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBcbiAgICAgIC8vIFNhdmUgY3VycmVudCBjb250ZW50IGlmIGluIGVkaXQgbW9kZVxuICAgICAgaWYgKGJsb2NrLm1ldGFkYXRhLmlzRWRpdE1vZGUpIHtcbiAgICAgICAgY29uc3QgZWRpdG9yID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5tYXJrZG93bi1lZGl0b3InKSBhcyBIVE1MVGV4dEFyZWFFbGVtZW50O1xuICAgICAgICBpZiAoZWRpdG9yKSB7XG4gICAgICAgICAgYmxvY2suY29udGVudCA9IGVkaXRvci52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBUb2dnbGUgbW9kZVxuICAgICAgYmxvY2subWV0YWRhdGEuaXNFZGl0TW9kZSA9ICFibG9jay5tZXRhZGF0YS5pc0VkaXRNb2RlO1xuICAgICAgXG4gICAgICAvLyBSZXF1ZXN0IFVJIHVwZGF0ZVxuICAgICAgaGFuZGxlcnMub25SZXF1ZXN0VXBkYXRlPy4oKTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBTZXR1cCBiYXNlZCBvbiBtb2RlXG4gICAgaWYgKGJsb2NrLm1ldGFkYXRhLmlzRWRpdE1vZGUpIHtcbiAgICAgIHRoaXMuc2V0dXBFZGl0b3IoZWxlbWVudCwgYmxvY2ssIGhhbmRsZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXR1cFByZXZpZXcoZWxlbWVudCwgYmxvY2ssIGhhbmRsZXJzKTtcbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgc2V0dXBFZGl0b3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIGJsb2NrOiBJQmxvY2ssIGhhbmRsZXJzOiBJQmxvY2tFdmVudEhhbmRsZXJzKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubWFya2Rvd24tZWRpdG9yJykgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgICBpZiAoIWVkaXRvcikgcmV0dXJuO1xuICAgIFxuICAgIC8vIEZvY3VzIGhhbmRsaW5nXG4gICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gaGFuZGxlcnMub25Gb2N1cygpKTtcbiAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IGhhbmRsZXJzLm9uQmx1cigpKTtcbiAgICBcbiAgICAvLyBDb250ZW50IGNoYW5nZXNcbiAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB7XG4gICAgICBibG9jay5jb250ZW50ID0gZWRpdG9yLnZhbHVlO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIEtleWJvYXJkIHNob3J0Y3V0c1xuICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHtcbiAgICAgIC8vIFRhYiBoYW5kbGluZyBmb3IgaW5kZW50YXRpb25cbiAgICAgIGlmIChlLmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBzdGFydCA9IGVkaXRvci5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgY29uc3QgZW5kID0gZWRpdG9yLnNlbGVjdGlvbkVuZDtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlZGl0b3IudmFsdWU7XG4gICAgICAgIFxuICAgICAgICBpZiAoZS5zaGlmdEtleSkge1xuICAgICAgICAgIC8vIFVuaW5kZW50XG4gICAgICAgICAgY29uc3QgYmVmb3JlQ3Vyc29yID0gdmFsdWUuc3Vic3RyaW5nKDAsIHN0YXJ0KTtcbiAgICAgICAgICBjb25zdCBsYXN0TmV3bGluZSA9IGJlZm9yZUN1cnNvci5sYXN0SW5kZXhPZignXFxuJyk7XG4gICAgICAgICAgY29uc3QgbGluZVN0YXJ0ID0gbGFzdE5ld2xpbmUgKyAxO1xuICAgICAgICAgIGNvbnN0IGxpbmVDb250ZW50ID0gdmFsdWUuc3Vic3RyaW5nKGxpbmVTdGFydCwgc3RhcnQpO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmIChsaW5lQ29udGVudC5zdGFydHNXaXRoKCcgICcpKSB7XG4gICAgICAgICAgICBlZGl0b3IudmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgbGluZVN0YXJ0KSArIGxpbmVDb250ZW50LnN1YnN0cmluZygyKSArIHZhbHVlLnN1YnN0cmluZyhzdGFydCk7XG4gICAgICAgICAgICBlZGl0b3Iuc2VsZWN0aW9uU3RhcnQgPSBlZGl0b3Iuc2VsZWN0aW9uRW5kID0gc3RhcnQgLSAyO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJbmRlbnRcbiAgICAgICAgICBlZGl0b3IudmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgc3RhcnQpICsgJyAgJyArIHZhbHVlLnN1YnN0cmluZyhlbmQpO1xuICAgICAgICAgIGVkaXRvci5zZWxlY3Rpb25TdGFydCA9IGVkaXRvci5zZWxlY3Rpb25FbmQgPSBzdGFydCArIDI7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGJsb2NrLmNvbnRlbnQgPSBlZGl0b3IudmFsdWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gQm9sZCBzaG9ydGN1dCAoQ3RybC9DbWQgKyBCKVxuICAgICAgaWYgKChlLmN0cmxLZXkgfHwgZS5tZXRhS2V5KSAmJiBlLmtleSA9PT0gJ2InKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy53cmFwU2VsZWN0aW9uKGVkaXRvciwgJyoqJywgJyoqJyk7XG4gICAgICAgIGJsb2NrLmNvbnRlbnQgPSBlZGl0b3IudmFsdWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gSXRhbGljIHNob3J0Y3V0IChDdHJsL0NtZCArIEkpXG4gICAgICBpZiAoKGUuY3RybEtleSB8fCBlLm1ldGFLZXkpICYmIGUua2V5ID09PSAnaScpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLndyYXBTZWxlY3Rpb24oZWRpdG9yLCAnXycsICdfJyk7XG4gICAgICAgIGJsb2NrLmNvbnRlbnQgPSBlZGl0b3IudmFsdWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gTGluayBzaG9ydGN1dCAoQ3RybC9DbWQgKyBLKVxuICAgICAgaWYgKChlLmN0cmxLZXkgfHwgZS5tZXRhS2V5KSAmJiBlLmtleSA9PT0gJ2snKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pbnNlcnRMaW5rKGVkaXRvcik7XG4gICAgICAgIGJsb2NrLmNvbnRlbnQgPSBlZGl0b3IudmFsdWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gUGFzcyBvdGhlciBrZXkgZXZlbnRzIHRvIGhhbmRsZXJzXG4gICAgICBoYW5kbGVycy5vbktleURvd24oZSk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gQXV0by1yZXNpemVcbiAgICB0aGlzLmF1dG9SZXNpemUoZWRpdG9yKTtcbiAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB0aGlzLmF1dG9SZXNpemUoZWRpdG9yKSk7XG4gIH1cbiAgXG4gIHByaXZhdGUgc2V0dXBQcmV2aWV3KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBibG9jazogSUJsb2NrLCBoYW5kbGVyczogSUJsb2NrRXZlbnRIYW5kbGVycyk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHByZXZpZXcgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tYXJrZG93bi1wcmV2aWV3JykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgXG4gICAgaWYgKCFjb250YWluZXIgfHwgIXByZXZpZXcpIHJldHVybjtcbiAgICBcbiAgICAvLyBNYWtlIHByZXZpZXcgZm9jdXNhYmxlXG4gICAgcHJldmlldy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICBcbiAgICAvLyBGb2N1cyBoYW5kbGluZ1xuICAgIHByZXZpZXcuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiBoYW5kbGVycy5vbkZvY3VzKCkpO1xuICAgIHByZXZpZXcuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IGhhbmRsZXJzLm9uQmx1cigpKTtcbiAgICBcbiAgICAvLyBLZXlib2FyZCBuYXZpZ2F0aW9uXG4gICAgcHJldmlldy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHtcbiAgICAgIC8vIFN3aXRjaCB0byBlZGl0IG1vZGUgb24gRW50ZXJcbiAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiAhZS5zaGlmdEtleSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJsb2NrLm1ldGFkYXRhLmlzRWRpdE1vZGUgPSB0cnVlO1xuICAgICAgICBoYW5kbGVycy5vblJlcXVlc3RVcGRhdGU/LigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIGhhbmRsZXJzLm9uS2V5RG93bihlKTtcbiAgICB9KTtcbiAgfVxuICBcbiAgcHJpdmF0ZSB3cmFwU2VsZWN0aW9uKGVkaXRvcjogSFRNTFRleHRBcmVhRWxlbWVudCwgYmVmb3JlOiBzdHJpbmcsIGFmdGVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFydCA9IGVkaXRvci5zZWxlY3Rpb25TdGFydDtcbiAgICBjb25zdCBlbmQgPSBlZGl0b3Iuc2VsZWN0aW9uRW5kO1xuICAgIGNvbnN0IHNlbGVjdGVkVGV4dCA9IGVkaXRvci52YWx1ZS5zdWJzdHJpbmcoc3RhcnQsIGVuZCk7XG4gICAgY29uc3QgcmVwbGFjZW1lbnQgPSBiZWZvcmUgKyAoc2VsZWN0ZWRUZXh0IHx8ICd0ZXh0JykgKyBhZnRlcjtcbiAgICBcbiAgICBlZGl0b3IudmFsdWUgPSBlZGl0b3IudmFsdWUuc3Vic3RyaW5nKDAsIHN0YXJ0KSArIHJlcGxhY2VtZW50ICsgZWRpdG9yLnZhbHVlLnN1YnN0cmluZyhlbmQpO1xuICAgIFxuICAgIGlmIChzZWxlY3RlZFRleHQpIHtcbiAgICAgIGVkaXRvci5zZWxlY3Rpb25TdGFydCA9IHN0YXJ0O1xuICAgICAgZWRpdG9yLnNlbGVjdGlvbkVuZCA9IHN0YXJ0ICsgcmVwbGFjZW1lbnQubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICBlZGl0b3Iuc2VsZWN0aW9uU3RhcnQgPSBzdGFydCArIGJlZm9yZS5sZW5ndGg7XG4gICAgICBlZGl0b3Iuc2VsZWN0aW9uRW5kID0gc3RhcnQgKyBiZWZvcmUubGVuZ3RoICsgNDsgLy8gJ3RleHQnLmxlbmd0aFxuICAgIH1cbiAgICBcbiAgICBlZGl0b3IuZm9jdXMoKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBpbnNlcnRMaW5rKGVkaXRvcjogSFRNTFRleHRBcmVhRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXJ0ID0gZWRpdG9yLnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IGVuZCA9IGVkaXRvci5zZWxlY3Rpb25FbmQ7XG4gICAgY29uc3Qgc2VsZWN0ZWRUZXh0ID0gZWRpdG9yLnZhbHVlLnN1YnN0cmluZyhzdGFydCwgZW5kKTtcbiAgICBjb25zdCBsaW5rVGV4dCA9IHNlbGVjdGVkVGV4dCB8fCAnbGluayB0ZXh0JztcbiAgICBjb25zdCByZXBsYWNlbWVudCA9IGBbJHtsaW5rVGV4dH1dKHVybClgO1xuICAgIFxuICAgIGVkaXRvci52YWx1ZSA9IGVkaXRvci52YWx1ZS5zdWJzdHJpbmcoMCwgc3RhcnQpICsgcmVwbGFjZW1lbnQgKyBlZGl0b3IudmFsdWUuc3Vic3RyaW5nKGVuZCk7XG4gICAgXG4gICAgLy8gU2VsZWN0IHRoZSBVUkwgcGFydFxuICAgIGVkaXRvci5zZWxlY3Rpb25TdGFydCA9IHN0YXJ0ICsgbGlua1RleHQubGVuZ3RoICsgMzsgLy8gJ1tsaW5rdGV4dF0oJy5sZW5ndGhcbiAgICBlZGl0b3Iuc2VsZWN0aW9uRW5kID0gc3RhcnQgKyBsaW5rVGV4dC5sZW5ndGggKyA2OyAvLyAnW2xpbmt0ZXh0XSh1cmwnLmxlbmd0aFxuICAgIFxuICAgIGVkaXRvci5mb2N1cygpO1xuICB9XG4gIFxuICBwcml2YXRlIGF1dG9SZXNpemUoZWRpdG9yOiBIVE1MVGV4dEFyZWFFbGVtZW50KTogdm9pZCB7XG4gICAgZWRpdG9yLnN0eWxlLmhlaWdodCA9ICdhdXRvJztcbiAgICBlZGl0b3Iuc3R5bGUuaGVpZ2h0ID0gZWRpdG9yLnNjcm9sbEhlaWdodCArICdweCc7XG4gIH1cbiAgXG4gIHByaXZhdGUgcGFyc2VNYXJrZG93bihtYXJrZG93bjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBCYXNpYyBtYXJrZG93biBwYXJzaW5nIC0gaW4gcHJvZHVjdGlvbiwgdXNlIGEgcHJvcGVyIG1hcmtkb3duIHBhcnNlclxuICAgIGxldCBodG1sID0gdGhpcy5lc2NhcGVIdG1sKG1hcmtkb3duKTtcbiAgICBcbiAgICAvLyBIZWFkZXJzXG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgvXiMjIyAoLispJC9nbSwgJzxoMz4kMTwvaDM+Jyk7XG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgvXiMjICguKykkL2dtLCAnPGgyPiQxPC9oMj4nKTtcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKC9eIyAoLispJC9nbSwgJzxoMT4kMTwvaDE+Jyk7XG4gICAgXG4gICAgLy8gQm9sZFxuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoL1xcKlxcKiguKz8pXFwqXFwqL2csICc8c3Ryb25nPiQxPC9zdHJvbmc+Jyk7XG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgvX18oLis/KV9fL2csICc8c3Ryb25nPiQxPC9zdHJvbmc+Jyk7XG4gICAgXG4gICAgLy8gSXRhbGljXG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgvXFwqKC4rPylcXCovZywgJzxlbT4kMTwvZW0+Jyk7XG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgvXyguKz8pXy9nLCAnPGVtPiQxPC9lbT4nKTtcbiAgICBcbiAgICAvLyBDb2RlIGJsb2Nrc1xuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoL2BgYChbXFxzXFxTXSo/KWBgYC9nLCAnPHByZT48Y29kZT4kMTwvY29kZT48L3ByZT4nKTtcbiAgICBcbiAgICAvLyBJbmxpbmUgY29kZVxuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoL2AoLis/KWAvZywgJzxjb2RlPiQxPC9jb2RlPicpO1xuICAgIFxuICAgIC8vIExpbmtzXG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgvXFxbKFteXFxdXSspXFxdXFwoKFteKV0rKVxcKS9nLCAnPGEgaHJlZj1cIiQyXCI+JDE8L2E+Jyk7XG4gICAgXG4gICAgLy8gTGlzdHNcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKC9eXFwqICguKykkL2dtLCAnPGxpPiQxPC9saT4nKTtcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKC9eLSAoLispJC9nbSwgJzxsaT4kMTwvbGk+Jyk7XG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgvXlxcZCtcXC4gKC4rKSQvZ20sICc8bGk+JDE8L2xpPicpO1xuICAgIFxuICAgIC8vIFdyYXAgY29uc2VjdXRpdmUgbGlzdCBpdGVtc1xuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoLyg8bGk+Lio8XFwvbGk+XFxuPykrL2csIChtYXRjaCkgPT4ge1xuICAgICAgcmV0dXJuICc8dWw+JyArIG1hdGNoICsgJzwvdWw+JztcbiAgICB9KTtcbiAgICBcbiAgICAvLyBQYXJhZ3JhcGhzXG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgvXFxuXFxuL2csICc8L3A+PHA+Jyk7XG4gICAgaHRtbCA9ICc8cD4nICsgaHRtbCArICc8L3A+JztcbiAgICBcbiAgICAvLyBDbGVhbiB1cCBlbXB0eSBwYXJhZ3JhcGhzXG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgvPHA+PFxcL3A+L2csICcnKTtcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKC88cD4oPGhbMS0zXT4pL2csICckMScpO1xuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoLyg8XFwvaFsxLTNdPik8XFwvcD4vZywgJyQxJyk7XG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgvPHA+KDx1bD4pL2csICckMScpO1xuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoLyg8XFwvdWw+KTxcXC9wPi9nLCAnJDEnKTtcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKC88cD4oPHByZT4pL2csICckMScpO1xuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoLyg8XFwvcHJlPik8XFwvcD4vZywgJyQxJyk7XG4gICAgXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cbiAgXG4gIHByaXZhdGUgZXNjYXBlSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGRpdi50ZXh0Q29udGVudCA9IHRleHQ7XG4gICAgcmV0dXJuIGRpdi5pbm5lckhUTUw7XG4gIH1cbiAgXG4gIGdldENvbnRlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGVkaXRvciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1hcmtkb3duLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgcmV0dXJuIGVkaXRvci52YWx1ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gSWYgaW4gcHJldmlldyBtb2RlLCByZXR1cm4gdGhlIHN0b3JlZCBjb250ZW50XG4gICAgY29uc3QgY29udGFpbmVyID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubWFya2Rvd24tYmxvY2stY29udGFpbmVyJyk7XG4gICAgY29uc3QgYmxvY2tJZCA9IGNvbnRhaW5lcj8uZ2V0QXR0cmlidXRlKCdkYXRhLWJsb2NrLWlkJyk7XG4gICAgLy8gSW4gcmVhbCBpbXBsZW1lbnRhdGlvbiwgd291bGQgbmVlZCBhY2Nlc3MgdG8gYmxvY2sgZGF0YVxuICAgIHJldHVybiAnJztcbiAgfVxuICBcbiAgc2V0Q29udGVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubWFya2Rvd24tZWRpdG9yJykgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgICBpZiAoZWRpdG9yKSB7XG4gICAgICBlZGl0b3IudmFsdWUgPSBjb250ZW50O1xuICAgICAgdGhpcy5hdXRvUmVzaXplKGVkaXRvcik7XG4gICAgfVxuICB9XG4gIFxuICBnZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IG51bWJlciB8IG51bGwge1xuICAgIGNvbnN0IGVkaXRvciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1hcmtkb3duLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgcmV0dXJuIGVkaXRvciA/IGVkaXRvci5zZWxlY3Rpb25TdGFydCA6IG51bGw7XG4gIH1cbiAgXG4gIHNldEN1cnNvclRvU3RhcnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tYXJrZG93bi1lZGl0b3InKSBhcyBIVE1MVGV4dEFyZWFFbGVtZW50O1xuICAgIGlmIChlZGl0b3IpIHtcbiAgICAgIGVkaXRvci5zZWxlY3Rpb25TdGFydCA9IGVkaXRvci5zZWxlY3Rpb25FbmQgPSAwO1xuICAgICAgZWRpdG9yLmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXMoZWxlbWVudCk7XG4gICAgfVxuICB9XG4gIFxuICBzZXRDdXJzb3JUb0VuZChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1hcmtkb3duLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgY29uc3QgbGVuZ3RoID0gZWRpdG9yLnZhbHVlLmxlbmd0aDtcbiAgICAgIGVkaXRvci5zZWxlY3Rpb25TdGFydCA9IGVkaXRvci5zZWxlY3Rpb25FbmQgPSBsZW5ndGg7XG4gICAgICBlZGl0b3IuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb2N1cyhlbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgXG4gIGZvY3VzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubWFya2Rvd24tZWRpdG9yJykgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgICBpZiAoZWRpdG9yKSB7XG4gICAgICBlZGl0b3IuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcHJldmlldyA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1hcmtkb3duLXByZXZpZXcnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIHByZXZpZXc/LmZvY3VzKCk7XG4gICAgfVxuICB9XG4gIFxuICBmb2N1c1dpdGhDdXJzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgfCBudW1iZXIgPSAnZW5kJyk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1hcmtkb3duLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgaWYgKHBvc2l0aW9uID09PSAnc3RhcnQnKSB7XG4gICAgICAgIHRoaXMuc2V0Q3Vyc29yVG9TdGFydChlbGVtZW50KTtcbiAgICAgIH0gZWxzZSBpZiAocG9zaXRpb24gPT09ICdlbmQnKSB7XG4gICAgICAgIHRoaXMuc2V0Q3Vyc29yVG9FbmQoZWxlbWVudCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwb3NpdGlvbiA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgZWRpdG9yLnNlbGVjdGlvblN0YXJ0ID0gZWRpdG9yLnNlbGVjdGlvbkVuZCA9IHBvc2l0aW9uO1xuICAgICAgICBlZGl0b3IuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb2N1cyhlbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgXG4gIGdldFNwbGl0Q29udGVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHsgYmVmb3JlOiBzdHJpbmc7IGFmdGVyOiBzdHJpbmcgfSB8IG51bGwge1xuICAgIGNvbnN0IGVkaXRvciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1hcmtkb3duLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgaWYgKCFlZGl0b3IpIHJldHVybiBudWxsO1xuICAgIFxuICAgIGNvbnN0IGN1cnNvclBvcyA9IGVkaXRvci5zZWxlY3Rpb25TdGFydDtcbiAgICByZXR1cm4ge1xuICAgICAgYmVmb3JlOiBlZGl0b3IudmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclBvcyksXG4gICAgICBhZnRlcjogZWRpdG9yLnZhbHVlLnN1YnN0cmluZyhjdXJzb3JQb3MpXG4gICAgfTtcbiAgfVxuICBcbiAgZ2V0U3R5bGVzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbiAgICAgIC8qIE1hcmtkb3duIEJsb2NrIENvbnRhaW5lciAqL1xuICAgICAgLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzNzQxNTEnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMxMTE4MjcnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5tYXJrZG93bi1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjOWNhM2FmJywgJyM2YjcyODAnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIEhlYWRlciAqL1xuICAgICAgLm1hcmtkb3duLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzNzQxNTEnKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjlmYWZiJywgJyMwYTBhMGEnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5tYXJrZG93bi1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5tYXJrZG93bi10aXRsZSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzc0MTUxJywgJyNlNWU3ZWInKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5tYXJrZG93bi10b2dnbGUtbW9kZSB7XG4gICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMzc0MTUxJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLm1hcmtkb3duLXRvZ2dsZS1tb2RlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmM2Y0ZjYnLCAnIzFmMjkzNycpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2QxZDVkYicsICcjNGI1NTYzJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBDb250ZW50ICovXG4gICAgICAubWFya2Rvd24tY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIEVkaXRvciAqL1xuICAgICAgLm1hcmtkb3duLWVkaXRvciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcmVzaXplOiBub25lO1xuICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMxZjI5MzcnLCAnI2YzZjRmNicpfTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLm1hcmtkb3duLWVkaXRvcjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5Y2EzYWYnLCAnIzZiNzI4MCcpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLyogUHJldmlldyAqL1xuICAgICAgLm1hcmtkb3duLXByZXZpZXcge1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA5NnB4O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzFmMjkzNycsICcjZjNmNGY2Jyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAucHJldmlldy1lbXB0eSB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzljYTNhZicsICcjNmI3MjgwJyl9O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIE1hcmtkb3duIHByZXZpZXcgc3R5bGVzICovXG4gICAgICAubWFya2Rvd24tcHJldmlldyBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbWFyZ2luOiAxNnB4IDAgOHB4IDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzExMTgyNycsICcjZjlmYWZiJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAubWFya2Rvd24tcHJldmlldyBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbWFyZ2luOiAxNHB4IDAgNnB4IDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzExMTgyNycsICcjZjlmYWZiJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAubWFya2Rvd24tcHJldmlldyBoMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDAgNHB4IDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzExMTgyNycsICcjZjlmYWZiJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAubWFya2Rvd24tcHJldmlldyBwIHtcbiAgICAgICAgbWFyZ2luOiA4cHggMDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLm1hcmtkb3duLXByZXZpZXcgdWwsXG4gICAgICAubWFya2Rvd24tcHJldmlldyBvbCB7XG4gICAgICAgIG1hcmdpbjogOHB4IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLm1hcmtkb3duLXByZXZpZXcgbGkge1xuICAgICAgICBtYXJnaW46IDRweCAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAubWFya2Rvd24tcHJldmlldyBjb2RlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmM2Y0ZjYnLCAnIzFmMjkzNycpfTtcbiAgICAgICAgcGFkZGluZzogMnB4IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLm1hcmtkb3duLXByZXZpZXcgcHJlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmM2Y0ZjYnLCAnIzFmMjkzNycpfTtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAubWFya2Rvd24tcHJldmlldyBwcmUgY29kZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAubWFya2Rvd24tcHJldmlldyBzdHJvbmcge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMxMTE4MjcnLCAnI2Y5ZmFmYicpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLm1hcmtkb3duLXByZXZpZXcgZW0ge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGEge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzYjgyZjYnLCAnIzYwYTVmYScpfTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgICAgXG4gICAgICAubWFya2Rvd24tcHJldmlldyBhOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGJsb2NrcXVvdGUge1xuICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzNzQxNTEnKX07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICAgICAgbWFyZ2luOiA4cHggMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNmI3MjgwJywgJyM5Y2EzYWYnKX07XG4gICAgICB9XG4gICAgYDtcbiAgfVxufSIsICJpbXBvcnQgeyBCYXNlQmxvY2tIYW5kbGVyLCB0eXBlIElCbG9ja0V2ZW50SGFuZGxlcnMgfSBmcm9tICcuLi9ibG9jay5iYXNlLmpzJztcbmltcG9ydCB0eXBlIHsgSUJsb2NrIH0gZnJvbSAnLi4vLi4vd3lzaXd5Zy50eXBlcy5qcyc7XG5pbXBvcnQgeyBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuLyoqXG4gKiBIVE1MQmxvY2tIYW5kbGVyIC0gSGFuZGxlcyByYXcgSFRNTCBjb250ZW50IHdpdGggcHJldmlldy9lZGl0IHRvZ2dsZVxuICogXG4gKiBGZWF0dXJlczpcbiAqIC0gTGl2ZSBIVE1MIHByZXZpZXcgKHNhbmRib3hlZClcbiAqIC0gRWRpdC9wcmV2aWV3IG1vZGUgdG9nZ2xlXG4gKiAtIFN5bnRheCBoaWdobGlnaHRpbmcgaW4gZWRpdCBtb2RlXG4gKiAtIEhUTUwgdmFsaWRhdGlvbiBoaW50c1xuICogLSBBdXRvLXNhdmUgb24gbW9kZSBzd2l0Y2hcbiAqL1xuZXhwb3J0IGNsYXNzIEh0bWxCbG9ja0hhbmRsZXIgZXh0ZW5kcyBCYXNlQmxvY2tIYW5kbGVyIHtcbiAgdHlwZSA9ICdodG1sJztcbiAgXG4gIHJlbmRlcihibG9jazogSUJsb2NrLCBpc1NlbGVjdGVkOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBjb25zdCBpc0VkaXRNb2RlID0gYmxvY2subWV0YWRhdGE/LmlzRWRpdE1vZGUgPz8gdHJ1ZTtcbiAgICBjb25zdCBjb250ZW50ID0gYmxvY2suY29udGVudCB8fCAnJztcbiAgICBcbiAgICByZXR1cm4gYFxuICAgICAgPGRpdiBjbGFzcz1cImh0bWwtYmxvY2stY29udGFpbmVyJHtpc1NlbGVjdGVkID8gJyBzZWxlY3RlZCcgOiAnJ31cIiBcbiAgICAgICAgICAgZGF0YS1ibG9jay1pZD1cIiR7YmxvY2suaWR9XCJcbiAgICAgICAgICAgZGF0YS1lZGl0LW1vZGU9XCIke2lzRWRpdE1vZGV9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJodG1sLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJodG1sLWljb25cIj4mbHQ7LyZndDs8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaHRtbC10aXRsZVwiPkhUTUw8L2Rpdj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaHRtbC10b2dnbGUtbW9kZVwiIHRpdGxlPVwiJHtpc0VkaXRNb2RlID8gJ1ByZXZpZXcnIDogJ0VkaXQnfVwiPlxuICAgICAgICAgICAgJHtpc0VkaXRNb2RlID8gJ1x1RDgzRFx1REM0MVx1RkUwRicgOiAnXHUyNzBGXHVGRTBGJ31cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJodG1sLWNvbnRlbnRcIj5cbiAgICAgICAgICAke2lzRWRpdE1vZGUgPyB0aGlzLnJlbmRlckVkaXRvcihjb250ZW50KSA6IHRoaXMucmVuZGVyUHJldmlldyhjb250ZW50KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG4gIFxuICBwcml2YXRlIHJlbmRlckVkaXRvcihjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXG4gICAgICA8dGV4dGFyZWEgY2xhc3M9XCJodG1sLWVkaXRvclwiIFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgSFRNTCBjb250ZW50Li4uXCJcbiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIj4ke3RoaXMuZXNjYXBlSHRtbChjb250ZW50KX08L3RleHRhcmVhPlxuICAgIGA7XG4gIH1cbiAgXG4gIHByaXZhdGUgcmVuZGVyUHJldmlldyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXG4gICAgICA8ZGl2IGNsYXNzPVwiaHRtbC1wcmV2aWV3XCI+XG4gICAgICAgICR7Y29udGVudCB8fCAnPGRpdiBjbGFzcz1cInByZXZpZXctZW1wdHlcIj5ObyBjb250ZW50IHRvIHByZXZpZXc8L2Rpdj4nfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuICBcbiAgc2V0dXAoZWxlbWVudDogSFRNTEVsZW1lbnQsIGJsb2NrOiBJQmxvY2ssIGhhbmRsZXJzOiBJQmxvY2tFdmVudEhhbmRsZXJzKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaHRtbC1ibG9jay1jb250YWluZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCB0b2dnbGVCdG4gPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5odG1sLXRvZ2dsZS1tb2RlJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgXG4gICAgaWYgKCFjb250YWluZXIgfHwgIXRvZ2dsZUJ0bikge1xuICAgICAgY29uc29sZS5lcnJvcignSHRtbEJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgZWxlbWVudHMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gSW5pdGlhbGl6ZSBtZXRhZGF0YVxuICAgIGlmICghYmxvY2subWV0YWRhdGEpIGJsb2NrLm1ldGFkYXRhID0ge307XG4gICAgaWYgKGJsb2NrLm1ldGFkYXRhLmlzRWRpdE1vZGUgPT09IHVuZGVmaW5lZCkgYmxvY2subWV0YWRhdGEuaXNFZGl0TW9kZSA9IHRydWU7XG4gICAgXG4gICAgLy8gVG9nZ2xlIG1vZGUgYnV0dG9uXG4gICAgdG9nZ2xlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBcbiAgICAgIC8vIFNhdmUgY3VycmVudCBjb250ZW50IGlmIGluIGVkaXQgbW9kZVxuICAgICAgaWYgKGJsb2NrLm1ldGFkYXRhLmlzRWRpdE1vZGUpIHtcbiAgICAgICAgY29uc3QgZWRpdG9yID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5odG1sLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgICAgIGlmIChlZGl0b3IpIHtcbiAgICAgICAgICBibG9jay5jb250ZW50ID0gZWRpdG9yLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFRvZ2dsZSBtb2RlXG4gICAgICBibG9jay5tZXRhZGF0YS5pc0VkaXRNb2RlID0gIWJsb2NrLm1ldGFkYXRhLmlzRWRpdE1vZGU7XG4gICAgICBcbiAgICAgIC8vIFJlcXVlc3QgVUkgdXBkYXRlXG4gICAgICBoYW5kbGVycy5vblJlcXVlc3RVcGRhdGU/LigpO1xuICAgIH0pO1xuICAgIFxuICAgIC8vIFNldHVwIGJhc2VkIG9uIG1vZGVcbiAgICBpZiAoYmxvY2subWV0YWRhdGEuaXNFZGl0TW9kZSkge1xuICAgICAgdGhpcy5zZXR1cEVkaXRvcihlbGVtZW50LCBibG9jaywgaGFuZGxlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldHVwUHJldmlldyhlbGVtZW50LCBibG9jaywgaGFuZGxlcnMpO1xuICAgIH1cbiAgfVxuICBcbiAgcHJpdmF0ZSBzZXR1cEVkaXRvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgYmxvY2s6IElCbG9jaywgaGFuZGxlcnM6IElCbG9ja0V2ZW50SGFuZGxlcnMpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5odG1sLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgaWYgKCFlZGl0b3IpIHJldHVybjtcbiAgICBcbiAgICAvLyBGb2N1cyBoYW5kbGluZ1xuICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IGhhbmRsZXJzLm9uRm9jdXMoKSk7XG4gICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiBoYW5kbGVycy5vbkJsdXIoKSk7XG4gICAgXG4gICAgLy8gQ29udGVudCBjaGFuZ2VzXG4gICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4ge1xuICAgICAgYmxvY2suY29udGVudCA9IGVkaXRvci52YWx1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGVIdG1sKGVkaXRvci52YWx1ZSk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gS2V5Ym9hcmQgc2hvcnRjdXRzXG4gICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZSkgPT4ge1xuICAgICAgLy8gVGFiIGhhbmRsaW5nIGZvciBpbmRlbnRhdGlvblxuICAgICAgaWYgKGUua2V5ID09PSAnVGFiJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gZWRpdG9yLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICBjb25zdCBlbmQgPSBlZGl0b3Iuc2VsZWN0aW9uRW5kO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGVkaXRvci52YWx1ZTtcbiAgICAgICAgXG4gICAgICAgIGlmIChlLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgLy8gVW5pbmRlbnRcbiAgICAgICAgICBjb25zdCBiZWZvcmVDdXJzb3IgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgc3RhcnQpO1xuICAgICAgICAgIGNvbnN0IGxhc3ROZXdsaW5lID0gYmVmb3JlQ3Vyc29yLmxhc3RJbmRleE9mKCdcXG4nKTtcbiAgICAgICAgICBjb25zdCBsaW5lU3RhcnQgPSBsYXN0TmV3bGluZSArIDE7XG4gICAgICAgICAgY29uc3QgbGluZUNvbnRlbnQgPSB2YWx1ZS5zdWJzdHJpbmcobGluZVN0YXJ0LCBzdGFydCk7XG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKGxpbmVDb250ZW50LnN0YXJ0c1dpdGgoJyAgJykpIHtcbiAgICAgICAgICAgIGVkaXRvci52YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBsaW5lU3RhcnQpICsgbGluZUNvbnRlbnQuc3Vic3RyaW5nKDIpICsgdmFsdWUuc3Vic3RyaW5nKHN0YXJ0KTtcbiAgICAgICAgICAgIGVkaXRvci5zZWxlY3Rpb25TdGFydCA9IGVkaXRvci5zZWxlY3Rpb25FbmQgPSBzdGFydCAtIDI7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEluZGVudFxuICAgICAgICAgIGVkaXRvci52YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBzdGFydCkgKyAnICAnICsgdmFsdWUuc3Vic3RyaW5nKGVuZCk7XG4gICAgICAgICAgZWRpdG9yLnNlbGVjdGlvblN0YXJ0ID0gZWRpdG9yLnNlbGVjdGlvbkVuZCA9IHN0YXJ0ICsgMjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgYmxvY2suY29udGVudCA9IGVkaXRvci52YWx1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBBdXRvLWNsb3NlIHRhZ3MgKEN0cmwvQ21kICsgLylcbiAgICAgIGlmICgoZS5jdHJsS2V5IHx8IGUubWV0YUtleSkgJiYgZS5rZXkgPT09ICcvJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuYXV0b0Nsb3NlVGFnKGVkaXRvcik7XG4gICAgICAgIGJsb2NrLmNvbnRlbnQgPSBlZGl0b3IudmFsdWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gUGFzcyBvdGhlciBrZXkgZXZlbnRzIHRvIGhhbmRsZXJzXG4gICAgICBoYW5kbGVycy5vbktleURvd24oZSk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gQXV0by1yZXNpemVcbiAgICB0aGlzLmF1dG9SZXNpemUoZWRpdG9yKTtcbiAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB0aGlzLmF1dG9SZXNpemUoZWRpdG9yKSk7XG4gIH1cbiAgXG4gIHByaXZhdGUgc2V0dXBQcmV2aWV3KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBibG9jazogSUJsb2NrLCBoYW5kbGVyczogSUJsb2NrRXZlbnRIYW5kbGVycyk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmh0bWwtYmxvY2stY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgcHJldmlldyA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmh0bWwtcHJldmlldycpIGFzIEhUTUxFbGVtZW50O1xuICAgIFxuICAgIGlmICghY29udGFpbmVyIHx8ICFwcmV2aWV3KSByZXR1cm47XG4gICAgXG4gICAgLy8gTWFrZSBwcmV2aWV3IGZvY3VzYWJsZVxuICAgIHByZXZpZXcuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgXG4gICAgLy8gRm9jdXMgaGFuZGxpbmdcbiAgICBwcmV2aWV3LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gaGFuZGxlcnMub25Gb2N1cygpKTtcbiAgICBwcmV2aWV3LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiBoYW5kbGVycy5vbkJsdXIoKSk7XG4gICAgXG4gICAgLy8gS2V5Ym9hcmQgbmF2aWdhdGlvblxuICAgIHByZXZpZXcuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB7XG4gICAgICAvLyBTd2l0Y2ggdG8gZWRpdCBtb2RlIG9uIEVudGVyXG4gICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgIWUuc2hpZnRLZXkpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBibG9jay5tZXRhZGF0YS5pc0VkaXRNb2RlID0gdHJ1ZTtcbiAgICAgICAgaGFuZGxlcnMub25SZXF1ZXN0VXBkYXRlPy4oKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICBoYW5kbGVycy5vbktleURvd24oZSk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gU2FuZGJveCBzdHlsZXMgYW5kIHNjcmlwdHMgaW4gcHJldmlld1xuICAgIHRoaXMuc2FuZGJveENvbnRlbnQocHJldmlldyk7XG4gIH1cbiAgXG4gIHByaXZhdGUgYXV0b0Nsb3NlVGFnKGVkaXRvcjogSFRNTFRleHRBcmVhRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnNvclBvcyA9IGVkaXRvci5zZWxlY3Rpb25TdGFydDtcbiAgICBjb25zdCB0ZXh0ID0gZWRpdG9yLnZhbHVlO1xuICAgIFxuICAgIC8vIEZpbmQgdGhlIG9wZW5pbmcgdGFnXG4gICAgbGV0IHRhZ1N0YXJ0ID0gY3Vyc29yUG9zO1xuICAgIHdoaWxlICh0YWdTdGFydCA+IDAgJiYgdGV4dFt0YWdTdGFydCAtIDFdICE9PSAnPCcpIHtcbiAgICAgIHRhZ1N0YXJ0LS07XG4gICAgfVxuICAgIFxuICAgIGlmICh0YWdTdGFydCA+IDApIHtcbiAgICAgIGNvbnN0IHRhZ0NvbnRlbnQgPSB0ZXh0LnN1YnN0cmluZyh0YWdTdGFydCwgY3Vyc29yUG9zKTtcbiAgICAgIGNvbnN0IHRhZ01hdGNoID0gdGFnQ29udGVudC5tYXRjaCgvXihcXHcrKS8pO1xuICAgICAgXG4gICAgICBpZiAodGFnTWF0Y2gpIHtcbiAgICAgICAgY29uc3QgdGFnTmFtZSA9IHRhZ01hdGNoWzFdO1xuICAgICAgICBjb25zdCBjbG9zaW5nVGFnID0gYDwvJHt0YWdOYW1lfT5gO1xuICAgICAgICBcbiAgICAgICAgLy8gSW5zZXJ0IGNsb3NpbmcgdGFnXG4gICAgICAgIGVkaXRvci52YWx1ZSA9IHRleHQuc3Vic3RyaW5nKDAsIGN1cnNvclBvcykgKyAnPicgKyBjbG9zaW5nVGFnICsgdGV4dC5zdWJzdHJpbmcoY3Vyc29yUG9zKTtcbiAgICAgICAgZWRpdG9yLnNlbGVjdGlvblN0YXJ0ID0gZWRpdG9yLnNlbGVjdGlvbkVuZCA9IGN1cnNvclBvcyArIDE7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBwcml2YXRlIGF1dG9SZXNpemUoZWRpdG9yOiBIVE1MVGV4dEFyZWFFbGVtZW50KTogdm9pZCB7XG4gICAgZWRpdG9yLnN0eWxlLmhlaWdodCA9ICdhdXRvJztcbiAgICBlZGl0b3Iuc3R5bGUuaGVpZ2h0ID0gZWRpdG9yLnNjcm9sbEhlaWdodCArICdweCc7XG4gIH1cbiAgXG4gIHByaXZhdGUgdmFsaWRhdGVIdG1sKGh0bWw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIC8vIEJhc2ljIEhUTUwgdmFsaWRhdGlvblxuICAgIGNvbnN0IG9wZW5UYWdzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHRhZ1JlZ2V4ID0gLzxcXC8/KFthLXpBLVpdW2EtekEtWjAtOV0qKVxcYltePl0qPi9nO1xuICAgIGxldCBtYXRjaDtcbiAgICBcbiAgICB3aGlsZSAoKG1hdGNoID0gdGFnUmVnZXguZXhlYyhodG1sKSkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGlzQ2xvc2luZyA9IG1hdGNoWzBdLnN0YXJ0c1dpdGgoJzwvJyk7XG4gICAgICBjb25zdCB0YWdOYW1lID0gbWF0Y2hbMV0udG9Mb3dlckNhc2UoKTtcbiAgICAgIFxuICAgICAgaWYgKGlzQ2xvc2luZykge1xuICAgICAgICBpZiAob3BlblRhZ3MubGVuZ3RoID09PSAwIHx8IG9wZW5UYWdzW29wZW5UYWdzLmxlbmd0aCAtIDFdICE9PSB0YWdOYW1lKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGBNaXNtYXRjaGVkIGNsb3NpbmcgdGFnOiAke3RhZ05hbWV9YCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIG9wZW5UYWdzLnBvcCgpO1xuICAgICAgfSBlbHNlIGlmICghbWF0Y2hbMF0uZW5kc1dpdGgoJy8+JykpIHtcbiAgICAgICAgLy8gTm90IGEgc2VsZi1jbG9zaW5nIHRhZ1xuICAgICAgICBvcGVuVGFncy5wdXNoKHRhZ05hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpZiAob3BlblRhZ3MubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS53YXJuKGBVbmNsb3NlZCB0YWdzOiAke29wZW5UYWdzLmpvaW4oJywgJyl9YCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIFxuICBwcml2YXRlIHNhbmRib3hDb250ZW50KHByZXZpZXc6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgLy8gUmVtb3ZlIGFueSBzY3JpcHQgdGFnc1xuICAgIGNvbnN0IHNjcmlwdHMgPSBwcmV2aWV3LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdHMuZm9yRWFjaChzY3JpcHQgPT4gc2NyaXB0LnJlbW92ZSgpKTtcbiAgICBcbiAgICAvLyBSZW1vdmUgZXZlbnQgaGFuZGxlcnNcbiAgICBjb25zdCBhbGxFbGVtZW50cyA9IHByZXZpZXcucXVlcnlTZWxlY3RvckFsbCgnKicpO1xuICAgIGFsbEVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgLy8gUmVtb3ZlIGFsbCBvbiogYXR0cmlidXRlc1xuICAgICAgQXJyYXkuZnJvbShlbC5hdHRyaWJ1dGVzKS5mb3JFYWNoKGF0dHIgPT4ge1xuICAgICAgICBpZiAoYXR0ci5uYW1lLnN0YXJ0c1dpdGgoJ29uJykpIHtcbiAgICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gUHJldmVudCBmb3JtcyBmcm9tIHN1Ym1pdHRpbmdcbiAgICBjb25zdCBmb3JtcyA9IHByZXZpZXcucXVlcnlTZWxlY3RvckFsbCgnZm9ybScpO1xuICAgIGZvcm1zLmZvckVhY2goZm9ybSA9PiB7XG4gICAgICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIFxuICBwcml2YXRlIGVzY2FwZUh0bWwodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBkaXYudGV4dENvbnRlbnQgPSB0ZXh0O1xuICAgIHJldHVybiBkaXYuaW5uZXJIVE1MO1xuICB9XG4gIFxuICBnZXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCBlZGl0b3IgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5odG1sLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgcmV0dXJuIGVkaXRvci52YWx1ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gSWYgaW4gcHJldmlldyBtb2RlLCByZXR1cm4gdGhlIHN0b3JlZCBjb250ZW50XG4gICAgY29uc3QgY29udGFpbmVyID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaHRtbC1ibG9jay1jb250YWluZXInKTtcbiAgICBjb25zdCBibG9ja0lkID0gY29udGFpbmVyPy5nZXRBdHRyaWJ1dGUoJ2RhdGEtYmxvY2staWQnKTtcbiAgICAvLyBJbiByZWFsIGltcGxlbWVudGF0aW9uLCB3b3VsZCBuZWVkIGFjY2VzcyB0byBibG9jayBkYXRhXG4gICAgcmV0dXJuICcnO1xuICB9XG4gIFxuICBzZXRDb250ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5odG1sLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgZWRpdG9yLnZhbHVlID0gY29udGVudDtcbiAgICAgIHRoaXMuYXV0b1Jlc2l6ZShlZGl0b3IpO1xuICAgIH1cbiAgfVxuICBcbiAgZ2V0Q3Vyc29yUG9zaXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBlZGl0b3IgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5odG1sLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgcmV0dXJuIGVkaXRvciA/IGVkaXRvci5zZWxlY3Rpb25TdGFydCA6IG51bGw7XG4gIH1cbiAgXG4gIHNldEN1cnNvclRvU3RhcnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5odG1sLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgZWRpdG9yLnNlbGVjdGlvblN0YXJ0ID0gZWRpdG9yLnNlbGVjdGlvbkVuZCA9IDA7XG4gICAgICBlZGl0b3IuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb2N1cyhlbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgXG4gIHNldEN1cnNvclRvRW5kKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaHRtbC1lZGl0b3InKSBhcyBIVE1MVGV4dEFyZWFFbGVtZW50O1xuICAgIGlmIChlZGl0b3IpIHtcbiAgICAgIGNvbnN0IGxlbmd0aCA9IGVkaXRvci52YWx1ZS5sZW5ndGg7XG4gICAgICBlZGl0b3Iuc2VsZWN0aW9uU3RhcnQgPSBlZGl0b3Iuc2VsZWN0aW9uRW5kID0gbGVuZ3RoO1xuICAgICAgZWRpdG9yLmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXMoZWxlbWVudCk7XG4gICAgfVxuICB9XG4gIFxuICBmb2N1cyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmh0bWwtZWRpdG9yJykgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgICBpZiAoZWRpdG9yKSB7XG4gICAgICBlZGl0b3IuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcHJldmlldyA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmh0bWwtcHJldmlldycpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgcHJldmlldz8uZm9jdXMoKTtcbiAgICB9XG4gIH1cbiAgXG4gIGZvY3VzV2l0aEN1cnNvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgcG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyB8IG51bWJlciA9ICdlbmQnKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaHRtbC1lZGl0b3InKSBhcyBIVE1MVGV4dEFyZWFFbGVtZW50O1xuICAgIGlmIChlZGl0b3IpIHtcbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICB0aGlzLnNldEN1cnNvclRvU3RhcnQoZWxlbWVudCk7XG4gICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnZW5kJykge1xuICAgICAgICB0aGlzLnNldEN1cnNvclRvRW5kKGVsZW1lbnQpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcG9zaXRpb24gPT09ICdudW1iZXInKSB7XG4gICAgICAgIGVkaXRvci5zZWxlY3Rpb25TdGFydCA9IGVkaXRvci5zZWxlY3Rpb25FbmQgPSBwb3NpdGlvbjtcbiAgICAgICAgZWRpdG9yLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXMoZWxlbWVudCk7XG4gICAgfVxuICB9XG4gIFxuICBnZXRTcGxpdENvbnRlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB7IGJlZm9yZTogc3RyaW5nOyBhZnRlcjogc3RyaW5nIH0gfCBudWxsIHtcbiAgICBjb25zdCBlZGl0b3IgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5odG1sLWVkaXRvcicpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgaWYgKCFlZGl0b3IpIHJldHVybiBudWxsO1xuICAgIFxuICAgIGNvbnN0IGN1cnNvclBvcyA9IGVkaXRvci5zZWxlY3Rpb25TdGFydDtcbiAgICByZXR1cm4ge1xuICAgICAgYmVmb3JlOiBlZGl0b3IudmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclBvcyksXG4gICAgICBhZnRlcjogZWRpdG9yLnZhbHVlLnN1YnN0cmluZyhjdXJzb3JQb3MpXG4gICAgfTtcbiAgfVxuICBcbiAgZ2V0U3R5bGVzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbiAgICAgIC8qIEhUTUwgQmxvY2sgQ29udGFpbmVyICovXG4gICAgICAuaHRtbC1ibG9jay1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMTJweCAwO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMzc0MTUxJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMTExODI3Jyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuaHRtbC1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjOWNhM2FmJywgJyM2YjcyODAnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIEhlYWRlciAqL1xuICAgICAgLmh0bWwtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzM3NDE1MScpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmOWZhZmInLCAnIzBhMGEwYScpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmh0bWwtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmh0bWwtdGl0bGUge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzM3NDE1MScsICcjZTVlN2ViJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuaHRtbC10b2dnbGUtbW9kZSB7XG4gICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMzc0MTUxJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmh0bWwtdG9nZ2xlLW1vZGU6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2YzZjRmNicsICcjMWYyOTM3Jyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZDFkNWRiJywgJyM0YjU1NjMnKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIENvbnRlbnQgKi9cbiAgICAgIC5odG1sLWNvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBFZGl0b3IgKi9cbiAgICAgIC5odG1sLWVkaXRvciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgcmVzaXplOiBub25lO1xuICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMxZjI5MzcnLCAnI2YzZjRmNicpfTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmh0bWwtZWRpdG9yOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzljYTNhZicsICcjNmI3MjgwJyl9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBQcmV2aWV3ICovXG4gICAgICAuaHRtbC1wcmV2aWV3IHtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgbWluLWhlaWdodDogOTZweDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMxZjI5MzcnLCAnI2YzZjRmNicpfTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLnByZXZpZXctZW1wdHkge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5Y2EzYWYnLCAnIzZiNzI4MCcpfTtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvKiBTYW5kYm94ZWQgSFRNTCBwcmV2aWV3IHN0eWxlcyAqL1xuICAgICAgLmh0bWwtcHJldmlldyAqIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuaHRtbC1wcmV2aWV3IGltZyB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmh0bWwtcHJldmlldyBhIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyM2MGE1ZmEnKX07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmh0bWwtcHJldmlldyBhOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5odG1sLXByZXZpZXcgdGFibGUge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiA4cHggMDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmh0bWwtcHJldmlldyB0aCxcbiAgICAgIC5odG1sLXByZXZpZXcgdGQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMzc0MTUxJyl9O1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5odG1sLXByZXZpZXcgdGgge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y5ZmFmYicsICcjMWYyOTM3Jyl9O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuaHRtbC1wcmV2aWV3IHByZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjNmNGY2JywgJyMxZjI5MzcnKX07XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgbWFyZ2luOiA4cHggMDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmh0bWwtcHJldmlldyBjb2RlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmM2Y0ZjYnLCAnIzFmMjkzNycpfTtcbiAgICAgICAgcGFkZGluZzogMnB4IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmh0bWwtcHJldmlldyBwcmUgY29kZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgIGA7XG4gIH1cbn0iLCAiLyoqXG4gKiBCbG9jayBSZWdpc3RyYXRpb24gTW9kdWxlXG4gKiBIYW5kbGVzIHJlZ2lzdHJhdGlvbiBvZiBhbGwgYmxvY2sgaGFuZGxlcnMgd2l0aCB0aGUgQmxvY2tSZWdpc3RyeVxuICogXG4gKiBQaGFzZSAyIENvbXBsZXRlOiBEaXZpZGVyIGJsb2NrIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBtaWdyYXRlZFxuICogdG8gdGhlIG5ldyBibG9jayBoYW5kbGVyIGFyY2hpdGVjdHVyZS5cbiAqIFBoYXNlIDMgQ29tcGxldGU6IFBhcmFncmFwaCBibG9jayBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgbWlncmF0ZWRcbiAqIHRvIHRoZSBuZXcgYmxvY2sgaGFuZGxlciBhcmNoaXRlY3R1cmUuXG4gKiBQaGFzZSA0IENvbXBsZXRlOiBBbGwgaGVhZGluZyBibG9ja3MgKGgxLCBoMiwgaDMpIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgbWlncmF0ZWRcbiAqIHRvIHRoZSBuZXcgYmxvY2sgaGFuZGxlciBhcmNoaXRlY3R1cmUgdXNpbmcgYSB1bmlmaWVkIEhlYWRpbmdCbG9ja0hhbmRsZXIuXG4gKiBQaGFzZSA1IENvbXBsZXRlOiBRdW90ZSwgQ29kZSwgYW5kIExpc3QgYmxvY2tzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgbWlncmF0ZWRcbiAqIHRvIHRoZSBuZXcgYmxvY2sgaGFuZGxlciBhcmNoaXRlY3R1cmUuXG4gKiBQaGFzZSA2IENvbXBsZXRlOiBJbWFnZSwgWW91VHViZSwgYW5kIEF0dGFjaG1lbnQgYmxvY2tzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgbWlncmF0ZWRcbiAqIHRvIHRoZSBuZXcgYmxvY2sgaGFuZGxlciBhcmNoaXRlY3R1cmUuXG4gKiBQaGFzZSA3IENvbXBsZXRlOiBNYXJrZG93biBhbmQgSFRNTCBibG9ja3MgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBtaWdyYXRlZFxuICogdG8gdGhlIG5ldyBibG9jayBoYW5kbGVyIGFyY2hpdGVjdHVyZS5cbiAqL1xuXG5pbXBvcnQgeyBcbiAgQmxvY2tSZWdpc3RyeSwgXG4gIERpdmlkZXJCbG9ja0hhbmRsZXIsXG4gIFBhcmFncmFwaEJsb2NrSGFuZGxlcixcbiAgSGVhZGluZ0Jsb2NrSGFuZGxlcixcbiAgUXVvdGVCbG9ja0hhbmRsZXIsXG4gIENvZGVCbG9ja0hhbmRsZXIsXG4gIExpc3RCbG9ja0hhbmRsZXIsXG4gIEltYWdlQmxvY2tIYW5kbGVyLFxuICBZb3VUdWJlQmxvY2tIYW5kbGVyLFxuICBBdHRhY2htZW50QmxvY2tIYW5kbGVyLFxuICBNYXJrZG93bkJsb2NrSGFuZGxlcixcbiAgSHRtbEJsb2NrSGFuZGxlclxufSBmcm9tICcuL2Jsb2Nrcy9pbmRleC5qcyc7XG5cbi8vIEluaXRpYWxpemUgYW5kIHJlZ2lzdGVyIGFsbCBibG9jayBoYW5kbGVyc1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQWxsQmxvY2tIYW5kbGVycygpOiB2b2lkIHtcbiAgLy8gUmVnaXN0ZXIgY29udGVudCBibG9ja3NcbiAgQmxvY2tSZWdpc3RyeS5yZWdpc3RlcignZGl2aWRlcicsIG5ldyBEaXZpZGVyQmxvY2tIYW5kbGVyKCkpO1xuICBcbiAgLy8gUmVnaXN0ZXIgdGV4dCBibG9ja3NcbiAgQmxvY2tSZWdpc3RyeS5yZWdpc3RlcigncGFyYWdyYXBoJywgbmV3IFBhcmFncmFwaEJsb2NrSGFuZGxlcigpKTtcbiAgQmxvY2tSZWdpc3RyeS5yZWdpc3RlcignaGVhZGluZy0xJywgbmV3IEhlYWRpbmdCbG9ja0hhbmRsZXIoJ2hlYWRpbmctMScpKTtcbiAgQmxvY2tSZWdpc3RyeS5yZWdpc3RlcignaGVhZGluZy0yJywgbmV3IEhlYWRpbmdCbG9ja0hhbmRsZXIoJ2hlYWRpbmctMicpKTtcbiAgQmxvY2tSZWdpc3RyeS5yZWdpc3RlcignaGVhZGluZy0zJywgbmV3IEhlYWRpbmdCbG9ja0hhbmRsZXIoJ2hlYWRpbmctMycpKTtcbiAgQmxvY2tSZWdpc3RyeS5yZWdpc3RlcigncXVvdGUnLCBuZXcgUXVvdGVCbG9ja0hhbmRsZXIoKSk7XG4gIEJsb2NrUmVnaXN0cnkucmVnaXN0ZXIoJ2NvZGUnLCBuZXcgQ29kZUJsb2NrSGFuZGxlcigpKTtcbiAgQmxvY2tSZWdpc3RyeS5yZWdpc3RlcignbGlzdCcsIG5ldyBMaXN0QmxvY2tIYW5kbGVyKCkpO1xuICBcbiAgLy8gUmVnaXN0ZXIgbWVkaWEgYmxvY2tzXG4gIEJsb2NrUmVnaXN0cnkucmVnaXN0ZXIoJ2ltYWdlJywgbmV3IEltYWdlQmxvY2tIYW5kbGVyKCkpO1xuICBCbG9ja1JlZ2lzdHJ5LnJlZ2lzdGVyKCd5b3V0dWJlJywgbmV3IFlvdVR1YmVCbG9ja0hhbmRsZXIoKSk7XG4gIEJsb2NrUmVnaXN0cnkucmVnaXN0ZXIoJ2F0dGFjaG1lbnQnLCBuZXcgQXR0YWNobWVudEJsb2NrSGFuZGxlcigpKTtcbiAgXG4gIC8vIFJlZ2lzdGVyIG90aGVyIGNvbnRlbnQgYmxvY2tzXG4gIEJsb2NrUmVnaXN0cnkucmVnaXN0ZXIoJ21hcmtkb3duJywgbmV3IE1hcmtkb3duQmxvY2tIYW5kbGVyKCkpO1xuICBCbG9ja1JlZ2lzdHJ5LnJlZ2lzdGVyKCdodG1sJywgbmV3IEh0bWxCbG9ja0hhbmRsZXIoKSk7XG59XG5cbi8vIEVuc3VyZSBibG9ja3MgYXJlIHJlZ2lzdGVyZWQgd2hlbiB0aGlzIG1vZHVsZSBpcyBpbXBvcnRlZFxucmVnaXN0ZXJBbGxCbG9ja0hhbmRsZXJzKCk7IiwgImltcG9ydCB7IGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgRGVlc01vZGFsIH0gZnJvbSAnLi4vLi4vZGVlcy1tb2RhbC9kZWVzLW1vZGFsLmpzJztcbmltcG9ydCB7IHR5cGUgSUJsb2NrIH0gZnJvbSAnLi93eXNpd3lnLnR5cGVzLmpzJztcbmltcG9ydCB7IFd5c2l3eWdTaG9ydGN1dHMgfSBmcm9tICcuL3d5c2l3eWcuc2hvcnRjdXRzLmpzJztcbmltcG9ydCB7IFBST0dSQU1NSU5HX0xBTkdVQUdFUyB9IGZyb20gJy4vd3lzaXd5Zy5jb25zdGFudHMuanMnO1xuXG5leHBvcnQgY2xhc3MgV3lzaXd5Z01vZGFsTWFuYWdlciB7XG4gIC8qKlxuICAgKiBTaG93cyBsYW5ndWFnZSBzZWxlY3Rpb24gbW9kYWwgZm9yIGNvZGUgYmxvY2tzXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBsZXQgc2VsZWN0ZWRMYW5ndWFnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgICBcbiAgICAgIERlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtcbiAgICAgICAgaGVhZGluZzogJ1NlbGVjdCBQcm9ncmFtbWluZyBMYW5ndWFnZScsXG4gICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgPHN0eWxlPlxuICAgICAgICAgICAgLmxhbmd1YWdlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmxhbmd1YWdlLWdyaWQge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjBweCwgMWZyKSk7XG4gICAgICAgICAgICAgIGdhcDogOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDEycHggOHB4O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzM3NDE1MScpfTtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzc0MTUxJywgJyNlNWU3ZWInKX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmOWZhZmInLCAnIzFmMjkzNycpfTtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2QxZDVkYicsICcjNGI1NTYzJyl9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbi5zZWxlY3RlZCB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjNmNGY2JywgJyMzNzQxNTEnKX07XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5Y2EzYWYnLCAnIzZiNzI4MCcpfTtcbiAgICAgICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMTExODI3JywgJyNmOWZhZmInKX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zdHlsZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFuZ3VhZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFuZ3VhZ2UtZ3JpZFwiPlxuICAgICAgICAgICAgICAke3RoaXMuZ2V0TGFuZ3VhZ2VzKCkubWFwKGxhbmcgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYW5ndWFnZS1idXR0b24gJHtzZWxlY3RlZExhbmd1YWdlID09PSBsYW5nLnRvTG93ZXJDYXNlKCkgPyAnc2VsZWN0ZWQnIDogJyd9XCIgXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9XCIkeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMYW5ndWFnZSA9IGxhbmcudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2xvc2UgbW9kYWwgYnkgZmluZGluZyBpdCBpbiBET01cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kYWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkZWVzLW1vZGFsJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RhbCAmJiB0eXBlb2YgKG1vZGFsIGFzIGFueSkuZGVzdHJveSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgIChtb2RhbCBhcyBhbnkpLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHNlbGVjdGVkTGFuZ3VhZ2UpO1xuICAgICAgICAgICAgICAgICAgfX1cIj5cbiAgICAgICAgICAgICAgICAgICR7bGFuZ31cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgYCl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgYCxcbiAgICAgICAgbWVudU9wdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQ2FuY2VsJyxcbiAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKG1vZGFsKSA9PiB7XG4gICAgICAgICAgICAgIG1vZGFsLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIGJsb2NrIHNldHRpbmdzIG1vZGFsXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgc2hvd0Jsb2NrU2V0dGluZ3NNb2RhbChcbiAgICBibG9jazogSUJsb2NrLCBcbiAgICBvblVwZGF0ZTogKGJsb2NrOiBJQmxvY2spID0+IHZvaWRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgXG4gICAgY29uc3QgY29udGVudCA9IGh0bWxgXG4gICAgICA8c3R5bGU+XG4gICAgICAgIC5zZXR0aW5ncy1jb250YWluZXIge1xuICAgICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgICAgLnNldHRpbmdzLXNlY3Rpb24ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgIH1cbiAgICAgICAgLnNldHRpbmdzLXNlY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAuc2V0dGluZ3MtbGFiZWwge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzZiNzI4MCcsICcjOWNhM2FmJyl9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gICAgICAgIH1cbiAgICAgICAgLmJsb2NrLXR5cGUtZ3JpZCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxNjBweCwgMWZyKSk7XG4gICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uIHtcbiAgICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzNzQxNTEnKX07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzc0MTUxJywgJyNlNWU3ZWInKX07XG4gICAgICAgIH1cbiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y5ZmFmYicsICcjMWYyOTM3Jyl9O1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkMWQ1ZGInLCAnIzRiNTU2MycpfTtcbiAgICAgICAgfVxuICAgICAgICAuYmxvY2stdHlwZS1idXR0b24uc2VsZWN0ZWQge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjNmNGY2JywgJyMzNzQxNTEnKX07XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzljYTNhZicsICcjNmI3MjgwJyl9O1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzExMTgyNycsICcjZjlmYWZiJyl9O1xuICAgICAgICB9XG4gICAgICAgIC5ibG9jay10eXBlLWljb24ge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIH1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtY29udGFpbmVyXCI+XG4gICAgICAgICR7dGhpcy5nZXRCbG9ja1R5cGVTZWxlY3RvcihibG9jaywgb25VcGRhdGUpfVxuICAgICAgICAke2Jsb2NrLnR5cGUgPT09ICdjb2RlJyA/IHRoaXMuZ2V0Q29kZUJsb2NrU2V0dGluZ3MoYmxvY2ssIG9uVXBkYXRlKSA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgICBcbiAgICBEZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7XG4gICAgICBoZWFkaW5nOiAnQmxvY2sgU2V0dGluZ3MnLFxuICAgICAgY29udGVudCxcbiAgICAgIG1lbnVPcHRpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnRG9uZScsXG4gICAgICAgICAgYWN0aW9uOiBhc3luYyAobW9kYWwpID0+IHtcbiAgICAgICAgICAgIG1vZGFsLmRlc3Ryb3koKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNvZGUgYmxvY2sgc2V0dGluZ3MgY29udGVudFxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0Q29kZUJsb2NrU2V0dGluZ3MoXG4gICAgYmxvY2s6IElCbG9jaywgXG4gICAgb25VcGRhdGU6IChibG9jazogSUJsb2NrKSA9PiB2b2lkXG4gICk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBjdXJyZW50TGFuZ3VhZ2UgPSBibG9jay5tZXRhZGF0YT8ubGFuZ3VhZ2UgfHwgJ2phdmFzY3JpcHQnO1xuICAgIFxuICAgIHJldHVybiBodG1sYFxuICAgICAgPHN0eWxlPlxuICAgICAgICAubGFuZ3VhZ2UtZ3JpZCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMDBweCwgMWZyKSk7XG4gICAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7XG4gICAgICAgICAgcGFkZGluZzogOHB4IDRweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMzc0MTUxJyl9O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzNzQxNTEnLCAnI2U1ZTdlYicpfTtcbiAgICAgICAgfVxuICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y5ZmFmYicsICcjMWYyOTM3Jyl9O1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNkMWQ1ZGInLCAnIzRiNTU2MycpfTtcbiAgICAgICAgfVxuICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uLnNlbGVjdGVkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2YzZjRmNicsICcjMzc0MTUxJyl9O1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5Y2EzYWYnLCAnIzZiNzI4MCcpfTtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMxMTE4MjcnLCAnI2Y5ZmFmYicpfTtcbiAgICAgICAgfVxuICAgICAgPC9zdHlsZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1sYWJlbFwiPlByb2dyYW1taW5nIExhbmd1YWdlPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYW5ndWFnZS1ncmlkXCI+XG4gICAgICAgICAgJHt0aGlzLmdldExhbmd1YWdlcygpLm1hcChsYW5nID0+IGh0bWxgXG4gICAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgICBjbGFzcz1cImxhbmd1YWdlLWJ1dHRvbiAke2N1cnJlbnRMYW5ndWFnZSA9PT0gbGFuZy50b0xvd2VyQ2FzZSgpID8gJ3NlbGVjdGVkJyA6ICcnfVwiIFxuICAgICAgICAgICAgICBAY2xpY2s9XCIkeygpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrLm1ldGFkYXRhKSBibG9jay5tZXRhZGF0YSA9IHt9O1xuICAgICAgICAgICAgICAgIGJsb2NrLm1ldGFkYXRhLmxhbmd1YWdlID0gbGFuZy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIG9uVXBkYXRlKGJsb2NrKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBDbG9zZSBtb2RhbCBpbW1lZGlhdGVseVxuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGFsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGVlcy1tb2RhbCcpO1xuICAgICAgICAgICAgICAgIGlmIChtb2RhbCAmJiB0eXBlb2YgKG1vZGFsIGFzIGFueSkuZGVzdHJveSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgKG1vZGFsIGFzIGFueSkuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICBkYXRhLWxhbmc9XCIke2xhbmd9XCJcbiAgICAgICAgICAgID4ke2xhbmd9PC9kaXY+XG4gICAgICAgICAgYCl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGF2YWlsYWJsZSBwcm9ncmFtbWluZyBsYW5ndWFnZXNcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGdldExhbmd1YWdlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi5QUk9HUkFNTUlOR19MQU5HVUFHRVNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYmxvY2sgdHlwZSBzZWxlY3RvclxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0QmxvY2tUeXBlU2VsZWN0b3IoXG4gICAgYmxvY2s6IElCbG9jayxcbiAgICBvblVwZGF0ZTogKGJsb2NrOiBJQmxvY2spID0+IHZvaWRcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGJsb2NrVHlwZXMgPSBXeXNpd3lnU2hvcnRjdXRzLmdldFNsYXNoTWVudUl0ZW1zKCkuZmlsdGVyKGl0ZW0gPT4gaXRlbS50eXBlICE9PSAnZGl2aWRlcicpO1xuICAgIFxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLWxhYmVsXCI+QmxvY2sgVHlwZTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2stdHlwZS1ncmlkXCI+XG4gICAgICAgICAgJHtibG9ja1R5cGVzLm1hcChpdGVtID0+IGh0bWxgXG4gICAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgICBjbGFzcz1cImJsb2NrLXR5cGUtYnV0dG9uICR7YmxvY2sudHlwZSA9PT0gaXRlbS50eXBlID8gJ3NlbGVjdGVkJyA6ICcnfVwiXG4gICAgICAgICAgICAgIEBjbGljaz1cIiR7YXN5bmMgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBidXR0b24gPSBlLmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgY29uc3Qgb2xkVHlwZSA9IGJsb2NrLnR5cGU7XG4gICAgICAgICAgICAgICAgYmxvY2sudHlwZSA9IGl0ZW0udHlwZSBhcyBJQmxvY2tbJ3R5cGUnXTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBSZXNldCBtZXRhZGF0YSBmb3IgdHlwZSBjaGFuZ2VcbiAgICAgICAgICAgICAgICBpZiAob2xkVHlwZSA9PT0gJ2NvZGUnICYmIGJsb2NrLnR5cGUgIT09ICdjb2RlJykge1xuICAgICAgICAgICAgICAgICAgZGVsZXRlIGJsb2NrLm1ldGFkYXRhPy5sYW5ndWFnZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9sZFR5cGUgPT09ICdsaXN0JyAmJiBibG9jay50eXBlICE9PSAnbGlzdCcpIHtcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBibG9jay5tZXRhZGF0YT8ubGlzdFR5cGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChibG9jay50eXBlID09PSAnbGlzdCcgJiYgIWJsb2NrLm1ldGFkYXRhPy5saXN0VHlwZSkge1xuICAgICAgICAgICAgICAgICAgYmxvY2subWV0YWRhdGEgPSB7IGxpc3RUeXBlOiAnYnVsbGV0JyB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYmxvY2sudHlwZSA9PT0gJ2NvZGUnICYmICFibG9jay5tZXRhZGF0YT8ubGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICAgIC8vIEFzayBmb3IgbGFuZ3VhZ2UgaWYgY2hhbmdpbmcgdG8gY29kZSBibG9ja1xuICAgICAgICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBhd2FpdCB0aGlzLnNob3dMYW5ndWFnZVNlbGVjdGlvbk1vZGFsKCk7XG4gICAgICAgICAgICAgICAgICBpZiAobGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2subWV0YWRhdGEgPSB7IGxhbmd1YWdlIH07XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBVc2VyIGNhbmNlbGxlZCwgcmV2ZXJ0XG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLnR5cGUgPSBvbGRUeXBlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIG9uVXBkYXRlKGJsb2NrKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBDbG9zZSBtb2RhbCBpbW1lZGlhdGVseVxuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGFsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGVlcy1tb2RhbCcpO1xuICAgICAgICAgICAgICAgIGlmIChtb2RhbCAmJiB0eXBlb2YgKG1vZGFsIGFzIGFueSkuZGVzdHJveSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgKG1vZGFsIGFzIGFueSkuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJsb2NrLXR5cGUtaWNvblwiPiR7aXRlbS5pY29ufTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4+JHtpdGVtLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn0iLCAiaW1wb3J0IHsgdHlwZSBJQmxvY2sgfSBmcm9tICcuL3d5c2l3eWcudHlwZXMuanMnO1xuaW1wb3J0IHsgdHlwZSBJV3lzaXd5Z0NvbXBvbmVudCB9IGZyb20gJy4vd3lzaXd5Zy5pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IFd5c2l3eWdTaG9ydGN1dHMgfSBmcm9tICcuL3d5c2l3eWcuc2hvcnRjdXRzLmpzJztcbmltcG9ydCB7IFd5c2l3eWdCbG9ja3MgfSBmcm9tICcuL3d5c2l3eWcuYmxvY2tzLmpzJztcbmltcG9ydCB7IFd5c2l3eWdCbG9ja09wZXJhdGlvbnMgfSBmcm9tICcuL3d5c2l3eWcuYmxvY2tvcGVyYXRpb25zLmpzJztcbmltcG9ydCB7IFd5c2l3eWdNb2RhbE1hbmFnZXIgfSBmcm9tICcuL3d5c2l3eWcubW9kYWxtYW5hZ2VyLmpzJztcblxuZXhwb3J0IGNsYXNzIFd5c2l3eWdJbnB1dEhhbmRsZXIge1xuICBwcml2YXRlIGNvbXBvbmVudDogSVd5c2l3eWdDb21wb25lbnQ7XG4gIHByaXZhdGUgc2F2ZVRpbWVvdXQ6IGFueSA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoY29tcG9uZW50OiBJV3lzaXd5Z0NvbXBvbmVudCkge1xuICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgaW5wdXQgZXZlbnRzIGZvciBibG9ja3NcbiAgICovXG4gIGhhbmRsZUJsb2NrSW5wdXQoZTogSW5wdXRFdmVudCwgYmxvY2s6IElCbG9jayk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudC5pc0NvbXBvc2luZykgcmV0dXJuO1xuICAgIFxuICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGNvbnN0IHRleHRDb250ZW50ID0gdGFyZ2V0LnRleHRDb250ZW50IHx8ICcnO1xuICAgIFxuICAgIC8vIENoZWNrIGZvciBibG9jayB0eXBlIHRyYW5zZm9ybWF0aW9ucyBCRUZPUkUgdXBkYXRpbmcgY29udGVudFxuICAgIGNvbnN0IGRldGVjdGVkVHlwZSA9IHRoaXMuZGV0ZWN0QmxvY2tUeXBlSW50ZW50KHRleHRDb250ZW50KTtcbiAgICBpZiAoZGV0ZWN0ZWRUeXBlICYmIGRldGVjdGVkVHlwZS50eXBlICE9PSBibG9jay50eXBlKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmhhbmRsZUJsb2NrVHJhbnNmb3JtYXRpb24oYmxvY2ssIGRldGVjdGVkVHlwZSwgdGFyZ2V0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gSGFuZGxlIHNsYXNoIGNvbW1hbmRzXG4gICAgdGhpcy5oYW5kbGVTbGFzaENvbW1hbmQodGV4dENvbnRlbnQsIHRhcmdldCk7XG4gICAgXG4gICAgLy8gRG9uJ3QgdXBkYXRlIGJsb2NrIGNvbnRlbnQgaW1tZWRpYXRlbHkgLSBsZXQgdGhlIGJsb2NrIGhhbmRsZSBpdHMgb3duIGNvbnRlbnRcbiAgICAvLyBUaGlzIHByZXZlbnRzIHJlLXJlbmRlcnMgZHVyaW5nIHR5cGluZ1xuICAgIFxuICAgIC8vIFNjaGVkdWxlIGF1dG8tc2F2ZSAod2hpY2ggd2lsbCBzeW5jIGNvbnRlbnQgbGF0ZXIpXG4gICAgdGhpcy5zY2hlZHVsZUF1dG9TYXZlKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBibG9jayBjb250ZW50IGJhc2VkIG9uIGl0cyB0eXBlXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUJsb2NrQ29udGVudChibG9jazogSUJsb2NrLCB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50KTogdm9pZCB7XG4gICAgLy8gR2V0IHRoZSBibG9jayBjb21wb25lbnQgZm9yIHByb3BlciBjb250ZW50IGV4dHJhY3Rpb25cbiAgICBjb25zdCB3cmFwcGVyRWxlbWVudCA9IHRhcmdldC5jbG9zZXN0KCcuYmxvY2std3JhcHBlcicpO1xuICAgIGNvbnN0IGJsb2NrQ29tcG9uZW50ID0gd3JhcHBlckVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtd3lzaXd5Zy1ibG9jaycpIGFzIGFueTtcbiAgICBcbiAgICBpZiAoYmxvY2tDb21wb25lbnQpIHtcbiAgICAgIC8vIFVzZSB0aGUgYmxvY2sgY29tcG9uZW50J3MgZ2V0Q29udGVudCBtZXRob2QgZm9yIGNvbnNpc3RlbmN5XG4gICAgICBjb25zdCBuZXdDb250ZW50ID0gYmxvY2tDb21wb25lbnQuZ2V0Q29udGVudCgpO1xuICAgICAgLy8gT25seSB1cGRhdGUgaWYgY29udGVudCBhY3R1YWxseSBjaGFuZ2VkIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHVwZGF0ZXNcbiAgICAgIGlmIChibG9jay5jb250ZW50ICE9PSBuZXdDb250ZW50KSB7XG4gICAgICAgIGJsb2NrLmNvbnRlbnQgPSBuZXdDb250ZW50O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBVcGRhdGUgbGlzdCBtZXRhZGF0YSBpZiBuZWVkZWRcbiAgICAgIGlmIChibG9jay50eXBlID09PSAnbGlzdCcpIHtcbiAgICAgICAgY29uc3QgbGlzdEVsZW1lbnQgPSB0YXJnZXQucXVlcnlTZWxlY3Rvcignb2wsIHVsJyk7XG4gICAgICAgIGlmIChsaXN0RWxlbWVudCkge1xuICAgICAgICAgIGJsb2NrLm1ldGFkYXRhID0geyBcbiAgICAgICAgICAgIGxpc3RUeXBlOiBsaXN0RWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdvbCcgPyAnb3JkZXJlZCcgOiAnYnVsbGV0JyBcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZhbGxiYWNrIGlmIGJsb2NrIGNvbXBvbmVudCBub3QgZm91bmRcbiAgICAgIGlmIChibG9jay50eXBlID09PSAnbGlzdCcpIHtcbiAgICAgICAgY29uc3QgbGlzdEl0ZW1zID0gdGFyZ2V0LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpJyk7XG4gICAgICAgIC8vIFVzZSBpbm5lckhUTUwgdG8gcHJlc2VydmUgZm9ybWF0dGluZ1xuICAgICAgICBibG9jay5jb250ZW50ID0gQXJyYXkuZnJvbShsaXN0SXRlbXMpLm1hcChsaSA9PiBsaS5pbm5lckhUTUwgfHwgJycpLmpvaW4oJ1xcbicpO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgbGlzdEVsZW1lbnQgPSB0YXJnZXQucXVlcnlTZWxlY3Rvcignb2wsIHVsJyk7XG4gICAgICAgIGlmIChsaXN0RWxlbWVudCkge1xuICAgICAgICAgIGJsb2NrLm1ldGFkYXRhID0geyBcbiAgICAgICAgICAgIGxpc3RUeXBlOiBsaXN0RWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdvbCcgPyAnb3JkZXJlZCcgOiAnYnVsbGV0JyBcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGJsb2NrLnR5cGUgPT09ICdjb2RlJykge1xuICAgICAgICBibG9jay5jb250ZW50ID0gdGFyZ2V0LnRleHRDb250ZW50IHx8ICcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmxvY2suY29udGVudCA9IHRhcmdldC5pbm5lckhUTUwgfHwgJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVjdHMgaWYgdGhlIHVzZXIgaXMgdHJ5aW5nIHRvIGNyZWF0ZSBhIHNwZWNpZmljIGJsb2NrIHR5cGVcbiAgICovXG4gIHByaXZhdGUgZGV0ZWN0QmxvY2tUeXBlSW50ZW50KGNvbnRlbnQ6IHN0cmluZyk6IHsgdHlwZTogSUJsb2NrWyd0eXBlJ10sIGxpc3RUeXBlPzogJ2J1bGxldCcgfCAnb3JkZXJlZCcgfSB8IG51bGwge1xuICAgIC8vIENoZWNrIGhlYWRpbmcgcGF0dGVybnNcbiAgICBjb25zdCBoZWFkaW5nUmVzdWx0ID0gV3lzaXd5Z1Nob3J0Y3V0cy5jaGVja0hlYWRpbmdTaG9ydGN1dChjb250ZW50KTtcbiAgICBpZiAoaGVhZGluZ1Jlc3VsdCkge1xuICAgICAgcmV0dXJuIGhlYWRpbmdSZXN1bHQ7XG4gICAgfVxuICAgIFxuICAgIC8vIENoZWNrIGxpc3QgcGF0dGVybnNcbiAgICBjb25zdCBsaXN0UmVzdWx0ID0gV3lzaXd5Z1Nob3J0Y3V0cy5jaGVja0xpc3RTaG9ydGN1dChjb250ZW50KTtcbiAgICBpZiAobGlzdFJlc3VsdCkge1xuICAgICAgcmV0dXJuIGxpc3RSZXN1bHQ7XG4gICAgfVxuICAgIFxuICAgIC8vIENoZWNrIHF1b3RlIHBhdHRlcm5cbiAgICBpZiAoV3lzaXd5Z1Nob3J0Y3V0cy5jaGVja1F1b3RlU2hvcnRjdXQoY29udGVudCkpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdxdW90ZScgfTtcbiAgICB9XG4gICAgXG4gICAgLy8gQ2hlY2sgY29kZSBwYXR0ZXJuXG4gICAgaWYgKFd5c2l3eWdTaG9ydGN1dHMuY2hlY2tDb2RlU2hvcnRjdXQoY29udGVudCkpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdjb2RlJyB9O1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBkaXZpZGVyIHBhdHRlcm5cbiAgICBpZiAoV3lzaXd5Z1Nob3J0Y3V0cy5jaGVja0RpdmlkZXJTaG9ydGN1dChjb250ZW50KSkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogJ2RpdmlkZXInIH07XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgYmxvY2sgdHlwZSB0cmFuc2Zvcm1hdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVCbG9ja1RyYW5zZm9ybWF0aW9uKFxuICAgIGJsb2NrOiBJQmxvY2ssIFxuICAgIGRldGVjdGVkVHlwZTogeyB0eXBlOiBJQmxvY2tbJ3R5cGUnXSwgbGlzdFR5cGU/OiAnYnVsbGV0JyB8ICdvcmRlcmVkJyB9LCBcbiAgICB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJsb2NrT3BzID0gdGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO1xuICAgIFxuICAgIGlmIChkZXRlY3RlZFR5cGUudHlwZSA9PT0gJ2xpc3QnKSB7XG4gICAgICBibG9jay50eXBlID0gJ2xpc3QnO1xuICAgICAgYmxvY2suY29udGVudCA9ICcnO1xuICAgICAgYmxvY2subWV0YWRhdGEgPSB7IGxpc3RUeXBlOiBkZXRlY3RlZFR5cGUubGlzdFR5cGUgfTtcbiAgICAgIFxuICAgICAgY29uc3QgbGlzdFRhZyA9IGRldGVjdGVkVHlwZS5saXN0VHlwZSA9PT0gJ29yZGVyZWQnID8gJ29sJyA6ICd1bCc7XG4gICAgICB0YXJnZXQuaW5uZXJIVE1MID0gYDwke2xpc3RUYWd9PjxsaT48L2xpPjwvJHtsaXN0VGFnfT5gO1xuICAgICAgXG4gICAgICB0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpO1xuICAgICAgXG4gICAgICAvLyBVcGRhdGUgdGhlIGJsb2NrIGVsZW1lbnQgcHJvZ3JhbW1hdGljYWxseVxuICAgICAgaWYgKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGJsb2NrLmlkKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIFd5c2l3eWdCbG9ja3MuZm9jdXNMaXN0SXRlbSh0YXJnZXQpO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIGlmIChkZXRlY3RlZFR5cGUudHlwZSA9PT0gJ2RpdmlkZXInKSB7XG4gICAgICBibG9jay50eXBlID0gJ2RpdmlkZXInO1xuICAgICAgYmxvY2suY29udGVudCA9ICcgJztcbiAgICAgIFxuICAgICAgLy8gVXBkYXRlIHRoZSBibG9jayBlbGVtZW50IHByb2dyYW1tYXRpY2FsbHlcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChibG9jay5pZCk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IG5ld0Jsb2NrID0gYmxvY2tPcHMuY3JlYXRlQmxvY2soKTtcbiAgICAgIGJsb2NrT3BzLmluc2VydEJsb2NrQWZ0ZXIoYmxvY2ssIG5ld0Jsb2NrKTtcbiAgICAgIFxuICAgICAgdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtcbiAgICB9IGVsc2UgaWYgKGRldGVjdGVkVHlwZS50eXBlID09PSAnY29kZScpIHtcbiAgICAgIGNvbnN0IGxhbmd1YWdlID0gYXdhaXQgV3lzaXd5Z01vZGFsTWFuYWdlci5zaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpO1xuICAgICAgaWYgKGxhbmd1YWdlKSB7XG4gICAgICAgIGJsb2NrLnR5cGUgPSAnY29kZSc7XG4gICAgICAgIGJsb2NrLmNvbnRlbnQgPSAnJztcbiAgICAgICAgYmxvY2subWV0YWRhdGEgPSB7IGxhbmd1YWdlIH07XG4gICAgICAgIHRhcmdldC50ZXh0Q29udGVudCA9ICcnO1xuICAgICAgICBcbiAgICAgICAgdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgXG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgYmxvY2sgZWxlbWVudCBwcm9ncmFtbWF0aWNhbGx5XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKSB7XG4gICAgICAgICAgdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGJsb2NrLmlkKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gRm9jdXMgdGhlIGNvZGUgYmxvY2tcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgYmxvY2tPcHMuZm9jdXNCbG9jayhibG9jay5pZCwgJ3N0YXJ0Jyk7XG4gICAgICAgIH0sIDUwKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYmxvY2sudHlwZSA9IGRldGVjdGVkVHlwZS50eXBlO1xuICAgICAgYmxvY2suY29udGVudCA9ICcnO1xuICAgICAgdGFyZ2V0LnRleHRDb250ZW50ID0gJyc7XG4gICAgICBcbiAgICAgIHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSB0aGUgYmxvY2sgZWxlbWVudCBwcm9ncmFtbWF0aWNhbGx5XG4gICAgICBpZiAodGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZikge1xuICAgICAgICB0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoYmxvY2suaWQpO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBGb2N1cyB0aGUgdHJhbnNmb3JtZWQgYmxvY2tcbiAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCBibG9ja09wcy5mb2N1c0Jsb2NrKGJsb2NrLmlkLCAnc3RhcnQnKTtcbiAgICAgIH0sIDUwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBzbGFzaCBjb21tYW5kIGRldGVjdGlvbiBhbmQgbWVudSBkaXNwbGF5XG4gICAqL1xuICBwcml2YXRlIGhhbmRsZVNsYXNoQ29tbWFuZCh0ZXh0Q29udGVudDogc3RyaW5nLCB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc2xhc2hNZW51ID0gdGhpcy5jb21wb25lbnQuc2xhc2hNZW51O1xuICAgIGNvbnN0IGlzU2xhc2hNZW51VmlzaWJsZSA9IHNsYXNoTWVudSAmJiBzbGFzaE1lbnUudmlzaWJsZTtcbiAgICBcbiAgICBpZiAodGV4dENvbnRlbnQgPT09ICcvJyB8fCAodGV4dENvbnRlbnQuc3RhcnRzV2l0aCgnLycpICYmIGlzU2xhc2hNZW51VmlzaWJsZSkpIHtcbiAgICAgIGlmICghaXNTbGFzaE1lbnVWaXNpYmxlICYmIHRleHRDb250ZW50ID09PSAnLycpIHtcbiAgICAgICAgLy8gR2V0IHBvc2l0aW9uIGZvciBtZW51IGJhc2VkIG9uIGN1cnNvciBsb2NhdGlvblxuICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5nZXRDYXJldENvb3JkaW5hdGVzKHRhcmdldCk7XG4gICAgICAgIFxuICAgICAgICAvLyBTaG93IHRoZSBzbGFzaCBtZW51IGF0IHRoZSBjdXJzb3IgcG9zaXRpb25cbiAgICAgICAgc2xhc2hNZW51LnNob3coXG4gICAgICAgICAgeyB4OiByZWN0LmxlZnQsIHk6IHJlY3QuYm90dG9tICsgNCB9LFxuICAgICAgICAgICh0eXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50Lmluc2VydEJsb2NrKHR5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgXG4gICAgICAgIC8vIEVuc3VyZSB0aGUgYmxvY2sgbWFpbnRhaW5zIGZvY3VzXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IHRhcmdldCkge1xuICAgICAgICAgICAgdGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIFVwZGF0ZSBmaWx0ZXJcbiAgICAgIGlmIChzbGFzaE1lbnUpIHtcbiAgICAgICAgc2xhc2hNZW51LnVwZGF0ZUZpbHRlcih0ZXh0Q29udGVudC5zbGljZSgxKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghdGV4dENvbnRlbnQuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudC5jbG9zZVNsYXNoTWVudSgpO1xuICAgIH1cbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldHMgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBjYXJldC9jdXJzb3JcbiAgICovXG4gIHByaXZhdGUgZ2V0Q2FyZXRDb29yZGluYXRlcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IERPTVJlY3Qge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xuICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgIGNvbnN0IHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGlmIChyZWN0LndpZHRoID4gMCB8fCByZWN0LmhlaWdodCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHJlY3Q7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIEZhbGxiYWNrIHRvIGVsZW1lbnQgcG9zaXRpb25cbiAgICByZXR1cm4gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY2hlZHVsZXMgYXV0by1zYXZlIGFmdGVyIGEgZGVsYXlcbiAgICovXG4gIHByaXZhdGUgc2NoZWR1bGVBdXRvU2F2ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zYXZlVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2F2ZVRpbWVvdXQpO1xuICAgIH1cbiAgICAvLyBEb24ndCBhdXRvLXNhdmUgaWYgc2xhc2ggbWVudSBpcyBvcGVuXG4gICAgaWYgKHRoaXMuY29tcG9uZW50LnNsYXNoTWVudSAmJiB0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUudmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNhdmVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBTeW5jIGFsbCBibG9jayBjb250ZW50IGZyb20gRE9NIGJlZm9yZSBzYXZpbmdcbiAgICAgIHRoaXMuc3luY0FsbEJsb2NrQ29udGVudCgpO1xuICAgICAgLy8gT25seSB1cGRhdGUgdmFsdWUsIGRvbid0IHRyaWdnZXIgYW55IHJlLXJlbmRlcnNcbiAgICAgIHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7XG4gICAgICAvLyBEb24ndCBjYWxsIHJlcXVlc3RVcGRhdGUoKSBhcyBpdCdzIG5vdCBuZWVkZWRcbiAgICB9LCAyMDAwKTsgLy8gSW5jcmVhc2VkIGRlbGF5IHRvIHJlZHVjZSBpbnRlcmZlcmVuY2Ugd2l0aCB0eXBpbmdcbiAgfVxuICBcbiAgLyoqXG4gICAqIFN5bmNzIGNvbnRlbnQgZnJvbSBhbGwgYmxvY2sgRE9NcyB0byB0aGUgZGF0YSBtb2RlbFxuICAgKi9cbiAgcHJpdmF0ZSBzeW5jQWxsQmxvY2tDb250ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50LmJsb2Nrcy5mb3JFYWNoKChibG9jazogSUJsb2NrKSA9PiB7XG4gICAgICBjb25zdCB3cmFwcGVyRWxlbWVudCA9IHRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPVwiJHtibG9jay5pZH1cIl1gKTtcbiAgICAgIGNvbnN0IGJsb2NrQ29tcG9uZW50ID0gd3JhcHBlckVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtd3lzaXd5Zy1ibG9jaycpIGFzIGFueTtcbiAgICAgIFxuICAgICAgaWYgKGJsb2NrQ29tcG9uZW50ICYmIGJsb2NrQ29tcG9uZW50LmdldENvbnRlbnQpIHtcbiAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IGJsb2NrQ29tcG9uZW50LmdldENvbnRlbnQoKTtcbiAgICAgICAgLy8gT25seSB1cGRhdGUgaWYgY29udGVudCBhY3R1YWxseSBjaGFuZ2VkXG4gICAgICAgIGlmIChibG9jay5jb250ZW50ICE9PSBuZXdDb250ZW50KSB7XG4gICAgICAgICAgYmxvY2suY29udGVudCA9IG5ld0NvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhbnMgdXAgcmVzb3VyY2VzXG4gICAqL1xuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNhdmVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zYXZlVGltZW91dCk7XG4gICAgfVxuICB9XG59IiwgImltcG9ydCB7IHR5cGUgSUJsb2NrIH0gZnJvbSAnLi93eXNpd3lnLnR5cGVzLmpzJztcbmltcG9ydCB7IHR5cGUgSVd5c2l3eWdDb21wb25lbnQgfSBmcm9tICcuL3d5c2l3eWcuaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBXeXNpd3lnU2VsZWN0aW9uIH0gZnJvbSAnLi93eXNpd3lnLnNlbGVjdGlvbi5qcyc7XG5cbmV4cG9ydCBjbGFzcyBXeXNpd3lnS2V5Ym9hcmRIYW5kbGVyIHtcbiAgcHJpdmF0ZSBjb21wb25lbnQ6IElXeXNpd3lnQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKGNvbXBvbmVudDogSVd5c2l3eWdDb21wb25lbnQpIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGtleWJvYXJkIGV2ZW50cyBmb3IgYmxvY2tzXG4gICAqL1xuICBhc3luYyBoYW5kbGVCbG9ja0tleURvd24oZTogS2V5Ym9hcmRFdmVudCwgYmxvY2s6IElCbG9jayk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEhhbmRsZSBzbGFzaCBtZW51IG5hdmlnYXRpb25cbiAgICBpZiAodGhpcy5jb21wb25lbnQuc2xhc2hNZW51LnZpc2libGUgJiYgdGhpcy5pc1NsYXNoTWVudUtleShlLmtleSkpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LmhhbmRsZVNsYXNoTWVudUtleWJvYXJkKGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBmb3JtYXR0aW5nIHNob3J0Y3V0c1xuICAgIGlmICh0aGlzLmhhbmRsZUZvcm1hdHRpbmdTaG9ydGN1dHMoZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgc3BlY2lhbCBrZXlzXG4gICAgc3dpdGNoIChlLmtleSkge1xuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgdGhpcy5oYW5kbGVUYWIoZSwgYmxvY2spO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFbnRlcihlLCBibG9jayk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVCYWNrc3BhY2UoZSwgYmxvY2spO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlRGVsZXRlKGUsIGJsb2NrKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVBcnJvd1VwKGUsIGJsb2NrKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUFycm93RG93bihlLCBibG9jayk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVBcnJvd0xlZnQoZSwgYmxvY2spO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUFycm93UmlnaHQoZSwgYmxvY2spO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGtleSBpcyBmb3Igc2xhc2ggbWVudSBuYXZpZ2F0aW9uXG4gICAqL1xuICBwcml2YXRlIGlzU2xhc2hNZW51S2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsnQXJyb3dEb3duJywgJ0Fycm93VXAnLCAnRW50ZXInLCAnRXNjYXBlJ10uaW5jbHVkZXMoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGZvcm1hdHRpbmcga2V5Ym9hcmQgc2hvcnRjdXRzXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUZvcm1hdHRpbmdTaG9ydGN1dHMoZTogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgIGlmICghKGUubWV0YUtleSB8fCBlLmN0cmxLZXkpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGUua2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ2InOlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIC8vIFVzZSBQcm9taXNlIHRvIGVuc3VyZSBmb2N1cyBpcyBtYWludGFpbmVkXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoJ2JvbGQnKSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnaSc6XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgnaXRhbGljJykpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgJ3UnOlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoJ3VuZGVybGluZScpKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlICdrJzpcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCdsaW5rJykpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgVGFiIGtleVxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVUYWIoZTogS2V5Ym9hcmRFdmVudCwgYmxvY2s6IElCbG9jayk6IHZvaWQge1xuICAgIGlmIChibG9jay50eXBlID09PSAnY29kZScpIHtcbiAgICAgIC8vIEFsbG93IHRhYiBpbiBjb2RlIGJsb2NrcyAtIGhhbmRsZWQgYnkgQ29kZUJsb2NrSGFuZGxlclxuICAgICAgLy8gTGV0IGl0IGJ1YmJsZSB0byB0aGUgYmxvY2sgaGFuZGxlclxuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoYmxvY2sudHlwZSA9PT0gJ2xpc3QnKSB7XG4gICAgICAvLyBGdXR1cmU6IGltcGxlbWVudCBsaXN0IGluZGVudGF0aW9uXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgRW50ZXIga2V5XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZUVudGVyKGU6IEtleWJvYXJkRXZlbnQsIGJsb2NrOiBJQmxvY2spOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBibG9ja09wcyA9IHRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztcblxuICAgIC8vIEZvciBub24tZWRpdGFibGUgYmxvY2tzLCBjcmVhdGUgYSBuZXcgcGFyYWdyYXBoIGFmdGVyXG4gICAgY29uc3Qgbm9uRWRpdGFibGVUeXBlcyA9IFsnZGl2aWRlcicsICdpbWFnZScsICd5b3V0dWJlJywgJ2F0dGFjaG1lbnQnXTtcbiAgICBpZiAobm9uRWRpdGFibGVUeXBlcy5pbmNsdWRlcyhibG9jay50eXBlKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgbmV3QmxvY2sgPSBibG9ja09wcy5jcmVhdGVCbG9jaygpO1xuICAgICAgYXdhaXQgYmxvY2tPcHMuaW5zZXJ0QmxvY2tBZnRlcihibG9jaywgbmV3QmxvY2spO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChibG9jay50eXBlID09PSAnY29kZScpIHtcbiAgICAgIGlmIChlLnNoaWZ0S2V5KSB7XG4gICAgICAgIC8vIFNoaWZ0K0VudGVyIGluIGNvZGUgYmxvY2tzIGNyZWF0ZXMgYSBuZXcgYmxvY2tcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBuZXdCbG9jayA9IGJsb2NrT3BzLmNyZWF0ZUJsb2NrKCk7XG4gICAgICAgIGF3YWl0IGJsb2NrT3BzLmluc2VydEJsb2NrQWZ0ZXIoYmxvY2ssIG5ld0Jsb2NrKTtcbiAgICAgIH1cbiAgICAgIC8vIE5vcm1hbCBFbnRlciBpbiBjb2RlIGJsb2NrcyBjcmVhdGVzIG5ldyBsaW5lIChsZXQgYnJvd3NlciBoYW5kbGUgaXQpXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFlLnNoaWZ0S2V5KSB7XG4gICAgICBpZiAoYmxvY2sudHlwZSA9PT0gJ2xpc3QnKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlRW50ZXJJbkxpc3QoZSwgYmxvY2spO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU3BsaXQgY29udGVudCBhdCBjdXJzb3IgcG9zaXRpb25cbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBcbiAgICAgICAgLy8gR2V0IHRoZSBibG9jayBjb21wb25lbnQgLSBuZWVkIHRvIHNlYXJjaCBpbiB0aGUgd3lzaXd5ZyBjb21wb25lbnQncyBzaGFkb3cgRE9NXG4gICAgICAgIGNvbnN0IGJsb2NrV3JhcHBlciA9IHRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPVwiJHtibG9jay5pZH1cIl1gKTtcbiAgICAgICAgY29uc3QgYmxvY2tDb21wb25lbnQgPSBibG9ja1dyYXBwZXI/LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtd3lzaXd5Zy1ibG9jaycpIGFzIGFueTtcbiAgICAgICAgXG4gICAgICAgIGlmIChibG9ja0NvbXBvbmVudCAmJiBibG9ja0NvbXBvbmVudC5nZXRTcGxpdENvbnRlbnQpIHtcbiAgICAgICAgICBjb25zdCBzcGxpdENvbnRlbnQgPSBibG9ja0NvbXBvbmVudC5nZXRTcGxpdENvbnRlbnQoKTtcbiAgICAgICAgICBcbiAgICAgICAgICBpZiAoc3BsaXRDb250ZW50KSB7XG4gICAgICAgICAgICAvLyBVcGRhdGUgY3VycmVudCBibG9jayB3aXRoIGNvbnRlbnQgYmVmb3JlIGN1cnNvclxuICAgICAgICAgICAgYmxvY2tDb21wb25lbnQuc2V0Q29udGVudChzcGxpdENvbnRlbnQuYmVmb3JlKTtcbiAgICAgICAgICAgIGJsb2NrLmNvbnRlbnQgPSBzcGxpdENvbnRlbnQuYmVmb3JlO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBDcmVhdGUgbmV3IGJsb2NrIHdpdGggY29udGVudCBhZnRlciBjdXJzb3JcbiAgICAgICAgICAgIGNvbnN0IG5ld0Jsb2NrID0gYmxvY2tPcHMuY3JlYXRlQmxvY2soJ3BhcmFncmFwaCcsIHNwbGl0Q29udGVudC5hZnRlcik7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIEluc2VydCB0aGUgbmV3IGJsb2NrXG4gICAgICAgICAgICBhd2FpdCBibG9ja09wcy5pbnNlcnRCbG9ja0FmdGVyKGJsb2NrLCBuZXdCbG9jayk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdmFsdWUgYWZ0ZXIgYm90aCBibG9ja3MgYXJlIHNldFxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRmFsbGJhY2sgLSBqdXN0IGNyZWF0ZSBlbXB0eSBibG9ja1xuICAgICAgICAgICAgY29uc3QgbmV3QmxvY2sgPSBibG9ja09wcy5jcmVhdGVCbG9jaygpO1xuICAgICAgICAgICAgYXdhaXQgYmxvY2tPcHMuaW5zZXJ0QmxvY2tBZnRlcihibG9jaywgbmV3QmxvY2spO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBObyBibG9jayBjb21wb25lbnQgb3IgbWV0aG9kLCBqdXN0IGNyZWF0ZSBlbXB0eSBibG9ja1xuICAgICAgICAgIGNvbnN0IG5ld0Jsb2NrID0gYmxvY2tPcHMuY3JlYXRlQmxvY2soKTtcbiAgICAgICAgICBhd2FpdCBibG9ja09wcy5pbnNlcnRCbG9ja0FmdGVyKGJsb2NrLCBuZXdCbG9jayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gU2hpZnQrRW50ZXIgY3JlYXRlcyBsaW5lIGJyZWFrIChsZXQgYnJvd3NlciBoYW5kbGUgaXQpXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBFbnRlciBrZXkgaW4gbGlzdCBibG9ja3NcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlRW50ZXJJbkxpc3QoZTogS2V5Ym9hcmRFdmVudCwgYmxvY2s6IElCbG9jayk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICBcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xuICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRMaSA9IHJhbmdlLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ2xpJyk7XG4gICAgICBcbiAgICAgIGlmIChjdXJyZW50TGkgJiYgY3VycmVudExpLnRleHRDb250ZW50ID09PSAnJykge1xuICAgICAgICAvLyBFbXB0eSBsaXN0IGl0ZW0gLSBleGl0IGxpc3QgbW9kZVxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGJsb2NrT3BzID0gdGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO1xuICAgICAgICBjb25zdCBuZXdCbG9jayA9IGJsb2NrT3BzLmNyZWF0ZUJsb2NrKCk7XG4gICAgICAgIGF3YWl0IGJsb2NrT3BzLmluc2VydEJsb2NrQWZ0ZXIoYmxvY2ssIG5ld0Jsb2NrKTtcbiAgICAgIH1cbiAgICAgIC8vIE90aGVyd2lzZSwgbGV0IGJyb3dzZXIgY3JlYXRlIG5ldyBsaXN0IGl0ZW1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBCYWNrc3BhY2Uga2V5XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZUJhY2tzcGFjZShlOiBLZXlib2FyZEV2ZW50LCBibG9jazogSUJsb2NrKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmxvY2tPcHMgPSB0aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7XG4gICAgXG4gICAgLy8gSGFuZGxlIG5vbi1lZGl0YWJsZSBibG9ja3NcbiAgICBjb25zdCBub25FZGl0YWJsZVR5cGVzID0gWydkaXZpZGVyJywgJ2ltYWdlJywgJ3lvdXR1YmUnLCAnYXR0YWNobWVudCddO1xuICAgIGlmIChub25FZGl0YWJsZVR5cGVzLmluY2x1ZGVzKGJsb2NrLnR5cGUpKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBcbiAgICAgIC8vIElmIGl0J3MgdGhlIG9ubHkgYmxvY2ssIGRlbGV0ZSBpdCBhbmQgY3JlYXRlIGEgbmV3IHBhcmFncmFwaFxuICAgICAgaWYgKHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgLy8gU2F2ZSBzdGF0ZSBmb3IgdW5kb1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KGZhbHNlKTtcbiAgICAgICAgXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgYmxvY2tcbiAgICAgICAgYmxvY2tPcHMucmVtb3ZlQmxvY2soYmxvY2suaWQpO1xuICAgICAgICBcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHBhcmFncmFwaCBibG9ja1xuICAgICAgICBjb25zdCBuZXdCbG9jayA9IGJsb2NrT3BzLmNyZWF0ZUJsb2NrKCdwYXJhZ3JhcGgnLCAnJyk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50LmJsb2NrcyA9IFtuZXdCbG9ja107XG4gICAgICAgIFxuICAgICAgICAvLyBSZS1yZW5kZXIgYmxvY2tzXG4gICAgICAgIHRoaXMuY29tcG9uZW50LnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKTtcbiAgICAgICAgXG4gICAgICAgIC8vIEZvY3VzIHRoZSBuZXcgYmxvY2tcbiAgICAgICAgYXdhaXQgYmxvY2tPcHMuZm9jdXNCbG9jayhuZXdCbG9jay5pZCwgJ3N0YXJ0Jyk7XG4gICAgICAgIFxuICAgICAgICAvLyBVcGRhdGUgdmFsdWVcbiAgICAgICAgdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBTYXZlIHN0YXRlIGZvciB1bmRvXG4gICAgICB0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KGZhbHNlKTtcbiAgICAgIFxuICAgICAgLy8gRmluZCB0aGUgcHJldmlvdXMgYmxvY2sgdG8gZm9jdXNcbiAgICAgIGNvbnN0IHByZXZCbG9jayA9IGJsb2NrT3BzLmdldFByZXZpb3VzQmxvY2soYmxvY2suaWQpO1xuICAgICAgY29uc3QgbmV4dEJsb2NrID0gYmxvY2tPcHMuZ2V0TmV4dEJsb2NrKGJsb2NrLmlkKTtcbiAgICAgIFxuICAgICAgLy8gUmVtb3ZlIHRoZSBibG9ja1xuICAgICAgYmxvY2tPcHMucmVtb3ZlQmxvY2soYmxvY2suaWQpO1xuICAgICAgXG4gICAgICAvLyBGb2N1cyB0aGUgYXBwcm9wcmlhdGUgYmxvY2tcbiAgICAgIGlmIChwcmV2QmxvY2sgJiYgcHJldkJsb2NrLnR5cGUgIT09ICdkaXZpZGVyJyAmJiBwcmV2QmxvY2sudHlwZSAhPT0gJ2ltYWdlJykge1xuICAgICAgICBhd2FpdCBibG9ja09wcy5mb2N1c0Jsb2NrKHByZXZCbG9jay5pZCwgJ2VuZCcpO1xuICAgICAgfSBlbHNlIGlmIChuZXh0QmxvY2sgJiYgbmV4dEJsb2NrLnR5cGUgIT09ICdkaXZpZGVyJyAmJiBuZXh0QmxvY2sudHlwZSAhPT0gJ2ltYWdlJykge1xuICAgICAgICBhd2FpdCBibG9ja09wcy5mb2N1c0Jsb2NrKG5leHRCbG9jay5pZCwgJ3N0YXJ0Jyk7XG4gICAgICB9IGVsc2UgaWYgKHByZXZCbG9jaykge1xuICAgICAgICAvLyBJZiBwcmV2aW91cyBibG9jayBpcyBhbHNvIG5vbi1lZGl0YWJsZSwganVzdCBzZWxlY3QgaXRcbiAgICAgICAgYXdhaXQgYmxvY2tPcHMuZm9jdXNCbG9jayhwcmV2QmxvY2suaWQpO1xuICAgICAgfSBlbHNlIGlmIChuZXh0QmxvY2spIHtcbiAgICAgICAgLy8gSWYgbmV4dCBibG9jayBpcyBhbHNvIG5vbi1lZGl0YWJsZSwganVzdCBzZWxlY3QgaXRcbiAgICAgICAgYXdhaXQgYmxvY2tPcHMuZm9jdXNCbG9jayhuZXh0QmxvY2suaWQpO1xuICAgICAgfVxuICAgICAgXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIEdldCB0aGUgYmxvY2sgY29tcG9uZW50IHRvIGNoZWNrIGN1cnNvciBwb3NpdGlvblxuICAgIGNvbnN0IGJsb2NrV3JhcHBlciA9IHRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPVwiJHtibG9jay5pZH1cIl1gKTtcbiAgICBjb25zdCBibG9ja0NvbXBvbmVudCA9IGJsb2NrV3JhcHBlcj8ucXVlcnlTZWxlY3RvcignZGVlcy13eXNpd3lnLWJsb2NrJykgYXMgYW55O1xuICAgIGlmICghYmxvY2tDb21wb25lbnQgfHwgIWJsb2NrQ29tcG9uZW50LnNoYWRvd1Jvb3QpIHJldHVybjtcbiAgICBcbiAgICAvLyBHZXQgdGhlIGFjdHVhbCBlZGl0YWJsZSBlbGVtZW50XG4gICAgY29uc3QgdGFyZ2V0ID0gYmxvY2sudHlwZSA9PT0gJ2NvZGUnIFxuICAgICAgPyBibG9ja0NvbXBvbmVudC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5jb2RlLWVkaXRvcicpIGFzIEhUTUxFbGVtZW50XG4gICAgICA6IGJsb2NrQ29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmJsb2NrJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcbiAgICBcbiAgICAvLyBHZXQgY3Vyc29yIHBvc2l0aW9uXG4gICAgY29uc3QgcGFyZW50Q29tcG9uZW50ID0gYmxvY2tDb21wb25lbnQuY2xvc2VzdCgnZGVlcy1pbnB1dC13eXNpd3lnJyk7XG4gICAgY29uc3Qgc2hhZG93Um9vdHM6IFNoYWRvd1Jvb3RbXSA9IFtdO1xuICAgIGlmIChwYXJlbnRDb21wb25lbnQ/LnNoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2gocGFyZW50Q29tcG9uZW50LnNoYWRvd1Jvb3QpO1xuICAgIHNoYWRvd1Jvb3RzLnB1c2goYmxvY2tDb21wb25lbnQuc2hhZG93Um9vdCk7XG4gICAgXG4gICAgY29uc3QgY3Vyc29yUG9zID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudCh0YXJnZXQsIC4uLnNoYWRvd1Jvb3RzKTtcbiAgICBcbiAgICBjb25zdCBhY3R1YWxDb250ZW50ID0gYmxvY2tDb21wb25lbnQuZ2V0Q29udGVudCA/IGJsb2NrQ29tcG9uZW50LmdldENvbnRlbnQoKSA6IHRhcmdldC50ZXh0Q29udGVudDtcbiAgICBcbiAgICAvLyBDaGVjayBpZiBjdXJzb3IgaXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYmxvY2tcbiAgICBpZiAoY3Vyc29yUG9zID09PSAwKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBwcmV2QmxvY2sgPSBibG9ja09wcy5nZXRQcmV2aW91c0Jsb2NrKGJsb2NrLmlkKTtcbiAgICAgIFxuICAgICAgaWYgKHByZXZCbG9jaykge1xuICAgICAgICAvLyBJZiBwcmV2aW91cyBibG9jayBpcyBub24tZWRpdGFibGUsIHNlbGVjdCBpdCBmaXJzdFxuICAgICAgICBjb25zdCBub25FZGl0YWJsZVR5cGVzID0gWydkaXZpZGVyJywgJ2ltYWdlJywgJ3lvdXR1YmUnLCAnYXR0YWNobWVudCddO1xuICAgICAgICBpZiAobm9uRWRpdGFibGVUeXBlcy5pbmNsdWRlcyhwcmV2QmxvY2sudHlwZSkpIHtcbiAgICAgICAgICBhd2FpdCBibG9ja09wcy5mb2N1c0Jsb2NrKHByZXZCbG9jay5pZCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBcbiAgICAgICAgLy8gU2F2ZSBjaGVja3BvaW50IGZvciB1bmRvXG4gICAgICAgIHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoZmFsc2UpO1xuICAgICAgICBcbiAgICAgICAgLy8gU3BlY2lhbCBoYW5kbGluZyBmb3IgZGlmZmVyZW50IGJsb2NrIHR5cGVzXG4gICAgICAgIGlmIChwcmV2QmxvY2sudHlwZSA9PT0gJ2NvZGUnICYmIGJsb2NrLnR5cGUgIT09ICdjb2RlJykge1xuICAgICAgICAgIC8vIENhbid0IG1lcmdlIG5vbi1jb2RlIGludG8gY29kZSBibG9jaywganVzdCByZW1vdmUgZW1wdHkgYmxvY2tcbiAgICAgICAgICBpZiAoYmxvY2suY29udGVudCA9PT0gJycpIHtcbiAgICAgICAgICAgIGJsb2NrT3BzLnJlbW92ZUJsb2NrKGJsb2NrLmlkKTtcbiAgICAgICAgICAgIGF3YWl0IGJsb2NrT3BzLmZvY3VzQmxvY2socHJldkJsb2NrLmlkLCAnZW5kJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKGJsb2NrLnR5cGUgPT09ICdjb2RlJyAmJiBwcmV2QmxvY2sudHlwZSAhPT0gJ2NvZGUnKSB7XG4gICAgICAgICAgLy8gQ2FuJ3QgbWVyZ2UgY29kZSBpbnRvIG5vbi1jb2RlIGJsb2NrXG4gICAgICAgICAgY29uc3QgYWN0dWFsQ29udGVudCA9IGJsb2NrQ29tcG9uZW50LmdldENvbnRlbnQgPyBibG9ja0NvbXBvbmVudC5nZXRDb250ZW50KCkgOiBibG9jay5jb250ZW50O1xuICAgICAgICAgIGlmIChhY3R1YWxDb250ZW50ID09PSAnJyB8fCBhY3R1YWxDb250ZW50LnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgICAgIGJsb2NrT3BzLnJlbW92ZUJsb2NrKGJsb2NrLmlkKTtcbiAgICAgICAgICAgIGF3YWl0IGJsb2NrT3BzLmZvY3VzQmxvY2socHJldkJsb2NrLmlkLCAnZW5kJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gR2V0IHRoZSBjb250ZW50IG9mIGJvdGggYmxvY2tzXG4gICAgICAgIGNvbnN0IHByZXZCbG9ja1dyYXBwZXIgPSB0aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD1cIiR7cHJldkJsb2NrLmlkfVwiXWApO1xuICAgICAgICBjb25zdCBwcmV2QmxvY2tDb21wb25lbnQgPSBwcmV2QmxvY2tXcmFwcGVyPy5xdWVyeVNlbGVjdG9yKCdkZWVzLXd5c2l3eWctYmxvY2snKSBhcyBhbnk7XG4gICAgICAgIGNvbnN0IHByZXZDb250ZW50ID0gcHJldkJsb2NrQ29tcG9uZW50Py5nZXRDb250ZW50KCkgfHwgcHJldkJsb2NrLmNvbnRlbnQgfHwgJyc7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDb250ZW50ID0gYmxvY2tDb21wb25lbnQuZ2V0Q29udGVudCgpIHx8IGJsb2NrLmNvbnRlbnQgfHwgJyc7XG4gICAgICAgIFxuICAgICAgICAvLyBNZXJnZSBjb250ZW50XG4gICAgICAgIGxldCBtZXJnZWRDb250ZW50ID0gJyc7XG4gICAgICAgIGlmIChwcmV2QmxvY2sudHlwZSA9PT0gJ2NvZGUnICYmIGJsb2NrLnR5cGUgPT09ICdjb2RlJykge1xuICAgICAgICAgIC8vIEZvciBjb2RlIGJsb2Nrcywgam9pbiB3aXRoIG5ld2xpbmVcbiAgICAgICAgICBtZXJnZWRDb250ZW50ID0gcHJldkNvbnRlbnQgKyAocHJldkNvbnRlbnQgJiYgY3VycmVudENvbnRlbnQgPyAnXFxuJyA6ICcnKSArIGN1cnJlbnRDb250ZW50O1xuICAgICAgICB9IGVsc2UgaWYgKHByZXZCbG9jay50eXBlID09PSAnbGlzdCcgJiYgYmxvY2sudHlwZSA9PT0gJ2xpc3QnKSB7XG4gICAgICAgICAgLy8gRm9yIGxpc3RzLCBjb21iaW5lIHRoZSBsaXN0IGl0ZW1zXG4gICAgICAgICAgbWVyZ2VkQ29udGVudCA9IHByZXZDb250ZW50ICsgKHByZXZDb250ZW50ICYmIGN1cnJlbnRDb250ZW50ID8gJ1xcbicgOiAnJykgKyBjdXJyZW50Q29udGVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBGb3Igb3RoZXIgYmxvY2tzLCBqb2luIHdpdGggc3BhY2UgaWYgYm90aCBoYXZlIGNvbnRlbnRcbiAgICAgICAgICBtZXJnZWRDb250ZW50ID0gcHJldkNvbnRlbnQgKyAocHJldkNvbnRlbnQgJiYgY3VycmVudENvbnRlbnQgPyAnICcgOiAnJykgKyBjdXJyZW50Q29udGVudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gU3RvcmUgY3Vyc29yIHBvc2l0aW9uICh3aGVyZSB0aGUgbWVyZ2UgcG9pbnQgaXMpXG4gICAgICAgIGNvbnN0IG1lcmdlUG9pbnQgPSBwcmV2Q29udGVudC5sZW5ndGg7XG4gICAgICAgIFxuICAgICAgICAvLyBVcGRhdGUgcHJldmlvdXMgYmxvY2sgd2l0aCBtZXJnZWQgY29udGVudFxuICAgICAgICBibG9ja09wcy51cGRhdGVCbG9ja0NvbnRlbnQocHJldkJsb2NrLmlkLCBtZXJnZWRDb250ZW50KTtcbiAgICAgICAgaWYgKHByZXZCbG9ja0NvbXBvbmVudCkge1xuICAgICAgICAgIHByZXZCbG9ja0NvbXBvbmVudC5zZXRDb250ZW50KG1lcmdlZENvbnRlbnQpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBSZW1vdmUgY3VycmVudCBibG9ja1xuICAgICAgICBibG9ja09wcy5yZW1vdmVCbG9jayhibG9jay5pZCk7XG4gICAgICAgIFxuICAgICAgICAvLyBGb2N1cyBwcmV2aW91cyBibG9jayBhdCBtZXJnZSBwb2ludFxuICAgICAgICBhd2FpdCBibG9ja09wcy5mb2N1c0Jsb2NrKHByZXZCbG9jay5pZCwgbWVyZ2VQb2ludCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoID4gMSkge1xuICAgICAgLy8gQ2hlY2sgaWYgYmxvY2sgaXMgYWN0dWFsbHkgZW1wdHkgYnkgZ2V0dGluZyBjdXJyZW50IGNvbnRlbnQgZnJvbSBET01cbiAgICAgIGNvbnN0IGN1cnJlbnRDb250ZW50ID0gYmxvY2tDb21wb25lbnQuZ2V0Q29udGVudCA/IGJsb2NrQ29tcG9uZW50LmdldENvbnRlbnQoKSA6IGJsb2NrLmNvbnRlbnQ7XG4gICAgICBcbiAgICAgIGlmIChjdXJyZW50Q29udGVudCA9PT0gJycgfHwgY3VycmVudENvbnRlbnQudHJpbSgpID09PSAnJykge1xuICAgICAgICAvLyBFbXB0eSBibG9jayAtIGp1c3QgcmVtb3ZlIGl0XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgcHJldkJsb2NrID0gYmxvY2tPcHMuZ2V0UHJldmlvdXNCbG9jayhibG9jay5pZCk7XG4gICAgICAgIFxuICAgICAgICBpZiAocHJldkJsb2NrKSB7XG4gICAgICAgICAgYmxvY2tPcHMucmVtb3ZlQmxvY2soYmxvY2suaWQpO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmIChwcmV2QmxvY2sudHlwZSAhPT0gJ2RpdmlkZXInKSB7XG4gICAgICAgICAgICBhd2FpdCBibG9ja09wcy5mb2N1c0Jsb2NrKHByZXZCbG9jay5pZCwgJ2VuZCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBPdGhlcndpc2UsIGxldCBicm93c2VyIGhhbmRsZSBub3JtYWwgYmFja3NwYWNlXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBEZWxldGUga2V5XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZURlbGV0ZShlOiBLZXlib2FyZEV2ZW50LCBibG9jazogSUJsb2NrKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmxvY2tPcHMgPSB0aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7XG4gICAgXG4gICAgLy8gSGFuZGxlIG5vbi1lZGl0YWJsZSBibG9ja3MgLSBzYW1lIGFzIGJhY2tzcGFjZVxuICAgIGNvbnN0IG5vbkVkaXRhYmxlVHlwZXMgPSBbJ2RpdmlkZXInLCAnaW1hZ2UnLCAneW91dHViZScsICdhdHRhY2htZW50J107XG4gICAgaWYgKG5vbkVkaXRhYmxlVHlwZXMuaW5jbHVkZXMoYmxvY2sudHlwZSkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIFxuICAgICAgLy8gSWYgaXQncyB0aGUgb25seSBibG9jaywgZGVsZXRlIGl0IGFuZCBjcmVhdGUgYSBuZXcgcGFyYWdyYXBoXG4gICAgICBpZiAodGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAvLyBTYXZlIHN0YXRlIGZvciB1bmRvXG4gICAgICAgIHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoZmFsc2UpO1xuICAgICAgICBcbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBibG9ja1xuICAgICAgICBibG9ja09wcy5yZW1vdmVCbG9jayhibG9jay5pZCk7XG4gICAgICAgIFxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgcGFyYWdyYXBoIGJsb2NrXG4gICAgICAgIGNvbnN0IG5ld0Jsb2NrID0gYmxvY2tPcHMuY3JlYXRlQmxvY2soJ3BhcmFncmFwaCcsICcnKTtcbiAgICAgICAgdGhpcy5jb21wb25lbnQuYmxvY2tzID0gW25ld0Jsb2NrXTtcbiAgICAgICAgXG4gICAgICAgIC8vIFJlLXJlbmRlciBibG9ja3NcbiAgICAgICAgdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpO1xuICAgICAgICBcbiAgICAgICAgLy8gRm9jdXMgdGhlIG5ldyBibG9ja1xuICAgICAgICBhd2FpdCBibG9ja09wcy5mb2N1c0Jsb2NrKG5ld0Jsb2NrLmlkLCAnc3RhcnQnKTtcbiAgICAgICAgXG4gICAgICAgIC8vIFVwZGF0ZSB2YWx1ZVxuICAgICAgICB0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFNhdmUgc3RhdGUgZm9yIHVuZG9cbiAgICAgIHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoZmFsc2UpO1xuICAgICAgXG4gICAgICAvLyBGaW5kIHRoZSBwcmV2aW91cyBibG9jayB0byBmb2N1c1xuICAgICAgY29uc3QgcHJldkJsb2NrID0gYmxvY2tPcHMuZ2V0UHJldmlvdXNCbG9jayhibG9jay5pZCk7XG4gICAgICBjb25zdCBuZXh0QmxvY2sgPSBibG9ja09wcy5nZXROZXh0QmxvY2soYmxvY2suaWQpO1xuICAgICAgXG4gICAgICAvLyBSZW1vdmUgdGhlIGJsb2NrXG4gICAgICBibG9ja09wcy5yZW1vdmVCbG9jayhibG9jay5pZCk7XG4gICAgICBcbiAgICAgIC8vIEZvY3VzIHRoZSBhcHByb3ByaWF0ZSBibG9ja1xuICAgICAgY29uc3Qgbm9uRWRpdGFibGVUeXBlcyA9IFsnZGl2aWRlcicsICdpbWFnZScsICd5b3V0dWJlJywgJ2F0dGFjaG1lbnQnXTtcbiAgICAgIGlmIChuZXh0QmxvY2sgJiYgIW5vbkVkaXRhYmxlVHlwZXMuaW5jbHVkZXMobmV4dEJsb2NrLnR5cGUpKSB7XG4gICAgICAgIGF3YWl0IGJsb2NrT3BzLmZvY3VzQmxvY2sobmV4dEJsb2NrLmlkLCAnc3RhcnQnKTtcbiAgICAgIH0gZWxzZSBpZiAocHJldkJsb2NrICYmICFub25FZGl0YWJsZVR5cGVzLmluY2x1ZGVzKHByZXZCbG9jay50eXBlKSkge1xuICAgICAgICBhd2FpdCBibG9ja09wcy5mb2N1c0Jsb2NrKHByZXZCbG9jay5pZCwgJ2VuZCcpO1xuICAgICAgfSBlbHNlIGlmIChuZXh0QmxvY2spIHtcbiAgICAgICAgLy8gSWYgbmV4dCBibG9jayBpcyBhbHNvIG5vbi1lZGl0YWJsZSwganVzdCBzZWxlY3QgaXRcbiAgICAgICAgYXdhaXQgYmxvY2tPcHMuZm9jdXNCbG9jayhuZXh0QmxvY2suaWQpO1xuICAgICAgfSBlbHNlIGlmIChwcmV2QmxvY2spIHtcbiAgICAgICAgLy8gSWYgcHJldmlvdXMgYmxvY2sgaXMgYWxzbyBub24tZWRpdGFibGUsIGp1c3Qgc2VsZWN0IGl0XG4gICAgICAgIGF3YWl0IGJsb2NrT3BzLmZvY3VzQmxvY2socHJldkJsb2NrLmlkKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBGb3IgZWRpdGFibGUgYmxvY2tzLCBjaGVjayBpZiB3ZSdyZSBhdCB0aGUgZW5kIGFuZCBuZXh0IGJsb2NrIGlzIG5vbi1lZGl0YWJsZVxuICAgIGNvbnN0IGJsb2NrV3JhcHBlciA9IHRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPVwiJHtibG9jay5pZH1cIl1gKTtcbiAgICBjb25zdCBibG9ja0NvbXBvbmVudCA9IGJsb2NrV3JhcHBlcj8ucXVlcnlTZWxlY3RvcignZGVlcy13eXNpd3lnLWJsb2NrJykgYXMgYW55O1xuICAgIGlmICghYmxvY2tDb21wb25lbnQgfHwgIWJsb2NrQ29tcG9uZW50LnNoYWRvd1Jvb3QpIHJldHVybjtcbiAgICBcbiAgICAvLyBHZXQgdGhlIGFjdHVhbCBlZGl0YWJsZSBlbGVtZW50XG4gICAgY29uc3QgdGFyZ2V0ID0gYmxvY2sudHlwZSA9PT0gJ2NvZGUnIFxuICAgICAgPyBibG9ja0NvbXBvbmVudC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5jb2RlLWVkaXRvcicpIGFzIEhUTUxFbGVtZW50XG4gICAgICA6IGJsb2NrQ29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmJsb2NrJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcbiAgICBcbiAgICAvLyBHZXQgY3Vyc29yIHBvc2l0aW9uXG4gICAgY29uc3QgcGFyZW50Q29tcG9uZW50ID0gYmxvY2tDb21wb25lbnQuY2xvc2VzdCgnZGVlcy1pbnB1dC13eXNpd3lnJyk7XG4gICAgY29uc3Qgc2hhZG93Um9vdHM6IFNoYWRvd1Jvb3RbXSA9IFtdO1xuICAgIGlmIChwYXJlbnRDb21wb25lbnQ/LnNoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2gocGFyZW50Q29tcG9uZW50LnNoYWRvd1Jvb3QpO1xuICAgIHNoYWRvd1Jvb3RzLnB1c2goYmxvY2tDb21wb25lbnQuc2hhZG93Um9vdCk7XG4gICAgXG4gICAgY29uc3QgY3Vyc29yUG9zID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudCh0YXJnZXQsIC4uLnNoYWRvd1Jvb3RzKTtcbiAgICBjb25zdCB0ZXh0TGVuZ3RoID0gdGFyZ2V0LnRleHRDb250ZW50Py5sZW5ndGggfHwgMDtcbiAgICBcbiAgICAvLyBDaGVjayBpZiBjdXJzb3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgYmxvY2tcbiAgICBpZiAoY3Vyc29yUG9zID09PSB0ZXh0TGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXh0QmxvY2sgPSBibG9ja09wcy5nZXROZXh0QmxvY2soYmxvY2suaWQpO1xuICAgICAgXG4gICAgICBjb25zdCBub25FZGl0YWJsZVR5cGVzID0gWydkaXZpZGVyJywgJ2ltYWdlJywgJ3lvdXR1YmUnLCAnYXR0YWNobWVudCddO1xuICAgICAgaWYgKG5leHRCbG9jayAmJiBub25FZGl0YWJsZVR5cGVzLmluY2x1ZGVzKG5leHRCbG9jay50eXBlKSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGF3YWl0IGJsb2NrT3BzLmZvY3VzQmxvY2sobmV4dEJsb2NrLmlkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBPdGhlcndpc2UsIGxldCBicm93c2VyIGhhbmRsZSBub3JtYWwgZGVsZXRlXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBBcnJvd1VwIGtleSAtIG5hdmlnYXRlIHRvIHByZXZpb3VzIGJsb2NrIGlmIGF0IGJlZ2lubmluZyBvciBmaXJzdCBsaW5lXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZUFycm93VXAoZTogS2V5Ym9hcmRFdmVudCwgYmxvY2s6IElCbG9jayk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEZvciBub24tZWRpdGFibGUgYmxvY2tzLCBhbHdheXMgbmF2aWdhdGUgdG8gcHJldmlvdXMgYmxvY2tcbiAgICBjb25zdCBub25FZGl0YWJsZVR5cGVzID0gWydkaXZpZGVyJywgJ2ltYWdlJywgJ3lvdXR1YmUnLCAnYXR0YWNobWVudCddO1xuICAgIGlmIChub25FZGl0YWJsZVR5cGVzLmluY2x1ZGVzKGJsb2NrLnR5cGUpKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBibG9ja09wcyA9IHRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztcbiAgICAgIGNvbnN0IHByZXZCbG9jayA9IGJsb2NrT3BzLmdldFByZXZpb3VzQmxvY2soYmxvY2suaWQpO1xuICAgICAgXG4gICAgICBpZiAocHJldkJsb2NrKSB7XG4gICAgICAgIGF3YWl0IGJsb2NrT3BzLmZvY3VzQmxvY2socHJldkJsb2NrLmlkLCBub25FZGl0YWJsZVR5cGVzLmluY2x1ZGVzKHByZXZCbG9jay50eXBlKSA/IHVuZGVmaW5lZCA6ICdlbmQnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gR2V0IHRoZSBibG9jayBjb21wb25lbnQgZnJvbSB0aGUgd3lzaXd5ZyBjb21wb25lbnQncyBzaGFkb3cgRE9NXG4gICAgY29uc3QgYmxvY2tXcmFwcGVyID0gdGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9XCIke2Jsb2NrLmlkfVwiXWApO1xuICAgIGNvbnN0IGJsb2NrQ29tcG9uZW50ID0gYmxvY2tXcmFwcGVyPy5xdWVyeVNlbGVjdG9yKCdkZWVzLXd5c2l3eWctYmxvY2snKTtcbiAgICBpZiAoIWJsb2NrQ29tcG9uZW50IHx8ICFibG9ja0NvbXBvbmVudC5zaGFkb3dSb290KSByZXR1cm47XG4gICAgXG4gICAgLy8gR2V0IHRoZSBhY3R1YWwgZWRpdGFibGUgZWxlbWVudCAtIGNvZGUgYmxvY2tzIG5vdyB1c2UgLmNvZGUtZWRpdG9yXG4gICAgY29uc3QgdGFyZ2V0ID0gYmxvY2sudHlwZSA9PT0gJ2NvZGUnIFxuICAgICAgPyBibG9ja0NvbXBvbmVudC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5jb2RlLWVkaXRvcicpIGFzIEhUTUxFbGVtZW50XG4gICAgICA6IGJsb2NrQ29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmJsb2NrJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcbiAgICBcbiAgICAvLyBHZXQgc2VsZWN0aW9uIGluZm8gd2l0aCBwcm9wZXIgc2hhZG93IERPTSBzdXBwb3J0XG4gICAgY29uc3QgcGFyZW50Q29tcG9uZW50ID0gYmxvY2tDb21wb25lbnQuY2xvc2VzdCgnZGVlcy1pbnB1dC13eXNpd3lnJyk7XG4gICAgY29uc3Qgc2hhZG93Um9vdHM6IFNoYWRvd1Jvb3RbXSA9IFtdO1xuICAgIGlmIChwYXJlbnRDb21wb25lbnQ/LnNoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2gocGFyZW50Q29tcG9uZW50LnNoYWRvd1Jvb3QpO1xuICAgIHNoYWRvd1Jvb3RzLnB1c2goYmxvY2tDb21wb25lbnQuc2hhZG93Um9vdCk7XG4gICAgXG4gICAgY29uc3Qgc2VsZWN0aW9uSW5mbyA9IFd5c2l3eWdTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uSW5mbyguLi5zaGFkb3dSb290cyk7XG4gICAgaWYgKCFzZWxlY3Rpb25JbmZvIHx8ICFzZWxlY3Rpb25JbmZvLmNvbGxhcHNlZCkgcmV0dXJuO1xuICAgIFxuICAgIC8vIENoZWNrIGlmIHdlJ3JlIG9uIHRoZSBmaXJzdCBsaW5lXG4gICAgaWYgKHRoaXMuaXNPbkZpcnN0TGluZShzZWxlY3Rpb25JbmZvLCB0YXJnZXQsIC4uLnNoYWRvd1Jvb3RzKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgYmxvY2tPcHMgPSB0aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7XG4gICAgICBjb25zdCBwcmV2QmxvY2sgPSBibG9ja09wcy5nZXRQcmV2aW91c0Jsb2NrKGJsb2NrLmlkKTtcbiAgICAgIFxuICAgICAgaWYgKHByZXZCbG9jaykge1xuICAgICAgICBjb25zdCBub25FZGl0YWJsZVR5cGVzID0gWydkaXZpZGVyJywgJ2ltYWdlJywgJ3lvdXR1YmUnLCAnYXR0YWNobWVudCddO1xuICAgICAgICBhd2FpdCBibG9ja09wcy5mb2N1c0Jsb2NrKHByZXZCbG9jay5pZCwgbm9uRWRpdGFibGVUeXBlcy5pbmNsdWRlcyhwcmV2QmxvY2sudHlwZSkgPyB1bmRlZmluZWQgOiAnZW5kJyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIE90aGVyd2lzZSwgbGV0IGJyb3dzZXIgaGFuZGxlIG5vcm1hbCBuYXZpZ2F0aW9uXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBBcnJvd0Rvd24ga2V5IC0gbmF2aWdhdGUgdG8gbmV4dCBibG9jayBpZiBhdCBlbmQgb3IgbGFzdCBsaW5lXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZUFycm93RG93bihlOiBLZXlib2FyZEV2ZW50LCBibG9jazogSUJsb2NrKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gRm9yIG5vbi1lZGl0YWJsZSBibG9ja3MsIGFsd2F5cyBuYXZpZ2F0ZSB0byBuZXh0IGJsb2NrXG4gICAgY29uc3Qgbm9uRWRpdGFibGVUeXBlcyA9IFsnZGl2aWRlcicsICdpbWFnZScsICd5b3V0dWJlJywgJ2F0dGFjaG1lbnQnXTtcbiAgICBpZiAobm9uRWRpdGFibGVUeXBlcy5pbmNsdWRlcyhibG9jay50eXBlKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgYmxvY2tPcHMgPSB0aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7XG4gICAgICBjb25zdCBuZXh0QmxvY2sgPSBibG9ja09wcy5nZXROZXh0QmxvY2soYmxvY2suaWQpO1xuICAgICAgXG4gICAgICBpZiAobmV4dEJsb2NrKSB7XG4gICAgICAgIGNvbnN0IG5vbkVkaXRhYmxlVHlwZXMgPSBbJ2RpdmlkZXInLCAnaW1hZ2UnLCAneW91dHViZScsICdhdHRhY2htZW50J107XG4gICAgICAgIGF3YWl0IGJsb2NrT3BzLmZvY3VzQmxvY2sobmV4dEJsb2NrLmlkLCBub25FZGl0YWJsZVR5cGVzLmluY2x1ZGVzKG5leHRCbG9jay50eXBlKSA/IHVuZGVmaW5lZCA6ICdzdGFydCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBHZXQgdGhlIGJsb2NrIGNvbXBvbmVudCBmcm9tIHRoZSB3eXNpd3lnIGNvbXBvbmVudCdzIHNoYWRvdyBET01cbiAgICBjb25zdCBibG9ja1dyYXBwZXIgPSB0aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD1cIiR7YmxvY2suaWR9XCJdYCk7XG4gICAgY29uc3QgYmxvY2tDb21wb25lbnQgPSBibG9ja1dyYXBwZXI/LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtd3lzaXd5Zy1ibG9jaycpO1xuICAgIGlmICghYmxvY2tDb21wb25lbnQgfHwgIWJsb2NrQ29tcG9uZW50LnNoYWRvd1Jvb3QpIHJldHVybjtcbiAgICBcbiAgICAvLyBHZXQgdGhlIGFjdHVhbCBlZGl0YWJsZSBlbGVtZW50IC0gY29kZSBibG9ja3Mgbm93IHVzZSAuY29kZS1lZGl0b3JcbiAgICBjb25zdCB0YXJnZXQgPSBibG9jay50eXBlID09PSAnY29kZScgXG4gICAgICA/IGJsb2NrQ29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmNvZGUtZWRpdG9yJykgYXMgSFRNTEVsZW1lbnRcbiAgICAgIDogYmxvY2tDb21wb25lbnQuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuYmxvY2snKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoIXRhcmdldCkgcmV0dXJuO1xuICAgIFxuICAgIC8vIEdldCBzZWxlY3Rpb24gaW5mbyB3aXRoIHByb3BlciBzaGFkb3cgRE9NIHN1cHBvcnRcbiAgICBjb25zdCBwYXJlbnRDb21wb25lbnQgPSBibG9ja0NvbXBvbmVudC5jbG9zZXN0KCdkZWVzLWlucHV0LXd5c2l3eWcnKTtcbiAgICBjb25zdCBzaGFkb3dSb290czogU2hhZG93Um9vdFtdID0gW107XG4gICAgaWYgKHBhcmVudENvbXBvbmVudD8uc2hhZG93Um9vdCkgc2hhZG93Um9vdHMucHVzaChwYXJlbnRDb21wb25lbnQuc2hhZG93Um9vdCk7XG4gICAgc2hhZG93Um9vdHMucHVzaChibG9ja0NvbXBvbmVudC5zaGFkb3dSb290KTtcbiAgICBcbiAgICBjb25zdCBzZWxlY3Rpb25JbmZvID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvKC4uLnNoYWRvd1Jvb3RzKTtcbiAgICBpZiAoIXNlbGVjdGlvbkluZm8gfHwgIXNlbGVjdGlvbkluZm8uY29sbGFwc2VkKSByZXR1cm47XG4gICAgXG4gICAgLy8gQ2hlY2sgaWYgd2UncmUgb24gdGhlIGxhc3QgbGluZVxuICAgIGlmICh0aGlzLmlzT25MYXN0TGluZShzZWxlY3Rpb25JbmZvLCB0YXJnZXQsIC4uLnNoYWRvd1Jvb3RzKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgYmxvY2tPcHMgPSB0aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7XG4gICAgICBjb25zdCBuZXh0QmxvY2sgPSBibG9ja09wcy5nZXROZXh0QmxvY2soYmxvY2suaWQpO1xuICAgICAgXG4gICAgICBpZiAobmV4dEJsb2NrKSB7XG4gICAgICAgIGNvbnN0IG5vbkVkaXRhYmxlVHlwZXMgPSBbJ2RpdmlkZXInLCAnaW1hZ2UnLCAneW91dHViZScsICdhdHRhY2htZW50J107XG4gICAgICAgIGF3YWl0IGJsb2NrT3BzLmZvY3VzQmxvY2sobmV4dEJsb2NrLmlkLCBub25FZGl0YWJsZVR5cGVzLmluY2x1ZGVzKG5leHRCbG9jay50eXBlKSA/IHVuZGVmaW5lZCA6ICdzdGFydCcpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBPdGhlcndpc2UsIGxldCBicm93c2VyIGhhbmRsZSBub3JtYWwgbmF2aWdhdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciB0byBnZXQgdGhlIGxhc3QgdGV4dCBub2RlIGluIGFuIGVsZW1lbnRcbiAgICovXG4gIHByaXZhdGUgZ2V0TGFzdFRleHROb2RlKGVsZW1lbnQ6IE5vZGUpOiBUZXh0IHwgbnVsbCB7XG4gICAgaWYgKGVsZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICByZXR1cm4gZWxlbWVudCBhcyBUZXh0O1xuICAgIH1cbiAgICBcbiAgICBmb3IgKGxldCBpID0gZWxlbWVudC5jaGlsZE5vZGVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCBsYXN0VGV4dCA9IHRoaXMuZ2V0TGFzdFRleHROb2RlKGVsZW1lbnQuY2hpbGROb2Rlc1tpXSk7XG4gICAgICBpZiAobGFzdFRleHQpIHJldHVybiBsYXN0VGV4dDtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBBcnJvd0xlZnQga2V5IC0gbmF2aWdhdGUgdG8gcHJldmlvdXMgYmxvY2sgaWYgYXQgYmVnaW5uaW5nXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZUFycm93TGVmdChlOiBLZXlib2FyZEV2ZW50LCBibG9jazogSUJsb2NrKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gRm9yIG5vbi1lZGl0YWJsZSBibG9ja3MsIG5hdmlnYXRlIHRvIHByZXZpb3VzIGJsb2NrXG4gICAgY29uc3Qgbm9uRWRpdGFibGVUeXBlcyA9IFsnZGl2aWRlcicsICdpbWFnZScsICd5b3V0dWJlJywgJ2F0dGFjaG1lbnQnXTtcbiAgICBpZiAobm9uRWRpdGFibGVUeXBlcy5pbmNsdWRlcyhibG9jay50eXBlKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgYmxvY2tPcHMgPSB0aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7XG4gICAgICBjb25zdCBwcmV2QmxvY2sgPSBibG9ja09wcy5nZXRQcmV2aW91c0Jsb2NrKGJsb2NrLmlkKTtcbiAgICAgIFxuICAgICAgaWYgKHByZXZCbG9jaykge1xuICAgICAgICBjb25zdCBub25FZGl0YWJsZVR5cGVzID0gWydkaXZpZGVyJywgJ2ltYWdlJywgJ3lvdXR1YmUnLCAnYXR0YWNobWVudCddO1xuICAgICAgICBhd2FpdCBibG9ja09wcy5mb2N1c0Jsb2NrKHByZXZCbG9jay5pZCwgbm9uRWRpdGFibGVUeXBlcy5pbmNsdWRlcyhwcmV2QmxvY2sudHlwZSkgPyB1bmRlZmluZWQgOiAnZW5kJyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIEdldCB0aGUgYmxvY2sgY29tcG9uZW50IGZyb20gdGhlIHd5c2l3eWcgY29tcG9uZW50J3Mgc2hhZG93IERPTVxuICAgIGNvbnN0IGJsb2NrV3JhcHBlciA9IHRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPVwiJHtibG9jay5pZH1cIl1gKTtcbiAgICBjb25zdCBibG9ja0NvbXBvbmVudCA9IGJsb2NrV3JhcHBlcj8ucXVlcnlTZWxlY3RvcignZGVlcy13eXNpd3lnLWJsb2NrJyk7XG4gICAgaWYgKCFibG9ja0NvbXBvbmVudCB8fCAhYmxvY2tDb21wb25lbnQuc2hhZG93Um9vdCkgcmV0dXJuO1xuICAgIFxuICAgIC8vIEdldCB0aGUgYWN0dWFsIGVkaXRhYmxlIGVsZW1lbnQgLSBjb2RlIGJsb2NrcyBub3cgdXNlIC5jb2RlLWVkaXRvclxuICAgIGNvbnN0IHRhcmdldCA9IGJsb2NrLnR5cGUgPT09ICdjb2RlJyBcbiAgICAgID8gYmxvY2tDb21wb25lbnQuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuY29kZS1lZGl0b3InKSBhcyBIVE1MRWxlbWVudFxuICAgICAgOiBibG9ja0NvbXBvbmVudC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jaycpIGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICghdGFyZ2V0KSByZXR1cm47XG4gICAgXG4gICAgLy8gR2V0IHNlbGVjdGlvbiBpbmZvIHdpdGggcHJvcGVyIHNoYWRvdyBET00gc3VwcG9ydFxuICAgIGNvbnN0IHBhcmVudENvbXBvbmVudCA9IGJsb2NrQ29tcG9uZW50LmNsb3Nlc3QoJ2RlZXMtaW5wdXQtd3lzaXd5ZycpO1xuICAgIGNvbnN0IHNoYWRvd1Jvb3RzOiBTaGFkb3dSb290W10gPSBbXTtcbiAgICBpZiAocGFyZW50Q29tcG9uZW50Py5zaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKHBhcmVudENvbXBvbmVudC5zaGFkb3dSb290KTtcbiAgICBzaGFkb3dSb290cy5wdXNoKGJsb2NrQ29tcG9uZW50LnNoYWRvd1Jvb3QpO1xuICAgIFxuICAgIGNvbnN0IHNlbGVjdGlvbkluZm8gPSBXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8oLi4uc2hhZG93Um9vdHMpO1xuICAgIGlmICghc2VsZWN0aW9uSW5mbyB8fCAhc2VsZWN0aW9uSW5mby5jb2xsYXBzZWQpIHJldHVybjtcbiAgICBcbiAgICAvLyBDaGVjayBpZiBjdXJzb3IgaXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYmxvY2tcbiAgICBjb25zdCBjdXJzb3JQb3MgPSBXeXNpd3lnU2VsZWN0aW9uLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KHRhcmdldCwgLi4uc2hhZG93Um9vdHMpO1xuICAgIFxuICAgIGlmIChjdXJzb3JQb3MgPT09IDApIHtcbiAgICAgIGNvbnN0IGJsb2NrT3BzID0gdGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO1xuICAgICAgY29uc3QgcHJldkJsb2NrID0gYmxvY2tPcHMuZ2V0UHJldmlvdXNCbG9jayhibG9jay5pZCk7XG4gICAgICBcbiAgICAgIGlmIChwcmV2QmxvY2spIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBub25FZGl0YWJsZVR5cGVzID0gWydkaXZpZGVyJywgJ2ltYWdlJywgJ3lvdXR1YmUnLCAnYXR0YWNobWVudCddO1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IG5vbkVkaXRhYmxlVHlwZXMuaW5jbHVkZXMocHJldkJsb2NrLnR5cGUpID8gdW5kZWZpbmVkIDogJ2VuZCc7XG4gICAgICAgIGF3YWl0IGJsb2NrT3BzLmZvY3VzQmxvY2socHJldkJsb2NrLmlkLCBwb3NpdGlvbik7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIE90aGVyd2lzZSwgbGV0IHRoZSBicm93c2VyIGhhbmRsZSBub3JtYWwgbGVmdCBhcnJvdyBuYXZpZ2F0aW9uXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBBcnJvd1JpZ2h0IGtleSAtIG5hdmlnYXRlIHRvIG5leHQgYmxvY2sgaWYgYXQgZW5kXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZUFycm93UmlnaHQoZTogS2V5Ym9hcmRFdmVudCwgYmxvY2s6IElCbG9jayk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEZvciBub24tZWRpdGFibGUgYmxvY2tzLCBuYXZpZ2F0ZSB0byBuZXh0IGJsb2NrXG4gICAgY29uc3Qgbm9uRWRpdGFibGVUeXBlcyA9IFsnZGl2aWRlcicsICdpbWFnZScsICd5b3V0dWJlJywgJ2F0dGFjaG1lbnQnXTtcbiAgICBpZiAobm9uRWRpdGFibGVUeXBlcy5pbmNsdWRlcyhibG9jay50eXBlKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgYmxvY2tPcHMgPSB0aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7XG4gICAgICBjb25zdCBuZXh0QmxvY2sgPSBibG9ja09wcy5nZXROZXh0QmxvY2soYmxvY2suaWQpO1xuICAgICAgXG4gICAgICBpZiAobmV4dEJsb2NrKSB7XG4gICAgICAgIGNvbnN0IG5vbkVkaXRhYmxlVHlwZXMgPSBbJ2RpdmlkZXInLCAnaW1hZ2UnLCAneW91dHViZScsICdhdHRhY2htZW50J107XG4gICAgICAgIGF3YWl0IGJsb2NrT3BzLmZvY3VzQmxvY2sobmV4dEJsb2NrLmlkLCBub25FZGl0YWJsZVR5cGVzLmluY2x1ZGVzKG5leHRCbG9jay50eXBlKSA/IHVuZGVmaW5lZCA6ICdzdGFydCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBHZXQgdGhlIGJsb2NrIGNvbXBvbmVudCBmcm9tIHRoZSB3eXNpd3lnIGNvbXBvbmVudCdzIHNoYWRvdyBET01cbiAgICBjb25zdCBibG9ja1dyYXBwZXIgPSB0aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD1cIiR7YmxvY2suaWR9XCJdYCk7XG4gICAgY29uc3QgYmxvY2tDb21wb25lbnQgPSBibG9ja1dyYXBwZXI/LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtd3lzaXd5Zy1ibG9jaycpO1xuICAgIGlmICghYmxvY2tDb21wb25lbnQgfHwgIWJsb2NrQ29tcG9uZW50LnNoYWRvd1Jvb3QpIHJldHVybjtcbiAgICBcbiAgICAvLyBHZXQgdGhlIGFjdHVhbCBlZGl0YWJsZSBlbGVtZW50IC0gY29kZSBibG9ja3Mgbm93IHVzZSAuY29kZS1lZGl0b3JcbiAgICBjb25zdCB0YXJnZXQgPSBibG9jay50eXBlID09PSAnY29kZScgXG4gICAgICA/IGJsb2NrQ29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmNvZGUtZWRpdG9yJykgYXMgSFRNTEVsZW1lbnRcbiAgICAgIDogYmxvY2tDb21wb25lbnQuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuYmxvY2snKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoIXRhcmdldCkgcmV0dXJuO1xuICAgIFxuICAgIC8vIEdldCBzZWxlY3Rpb24gaW5mbyB3aXRoIHByb3BlciBzaGFkb3cgRE9NIHN1cHBvcnRcbiAgICBjb25zdCBwYXJlbnRDb21wb25lbnQgPSBibG9ja0NvbXBvbmVudC5jbG9zZXN0KCdkZWVzLWlucHV0LXd5c2l3eWcnKTtcbiAgICBjb25zdCBzaGFkb3dSb290czogU2hhZG93Um9vdFtdID0gW107XG4gICAgaWYgKHBhcmVudENvbXBvbmVudD8uc2hhZG93Um9vdCkgc2hhZG93Um9vdHMucHVzaChwYXJlbnRDb21wb25lbnQuc2hhZG93Um9vdCk7XG4gICAgc2hhZG93Um9vdHMucHVzaChibG9ja0NvbXBvbmVudC5zaGFkb3dSb290KTtcbiAgICBcbiAgICBjb25zdCBzZWxlY3Rpb25JbmZvID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvKC4uLnNoYWRvd1Jvb3RzKTtcbiAgICBpZiAoIXNlbGVjdGlvbkluZm8gfHwgIXNlbGVjdGlvbkluZm8uY29sbGFwc2VkKSByZXR1cm47XG4gICAgXG4gICAgLy8gQ2hlY2sgaWYgY3Vyc29yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGJsb2NrXG4gICAgY29uc3QgY3Vyc29yUG9zID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudCh0YXJnZXQsIC4uLnNoYWRvd1Jvb3RzKTtcbiAgICBjb25zdCB0ZXh0TGVuZ3RoID0gdGFyZ2V0LnRleHRDb250ZW50Py5sZW5ndGggfHwgMDtcbiAgICBcbiAgICBpZiAoY3Vyc29yUG9zID09PSB0ZXh0TGVuZ3RoKSB7XG4gICAgICBjb25zdCBibG9ja09wcyA9IHRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztcbiAgICAgIGNvbnN0IG5leHRCbG9jayA9IGJsb2NrT3BzLmdldE5leHRCbG9jayhibG9jay5pZCk7XG4gICAgICBcbiAgICAgIGlmIChuZXh0QmxvY2spIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBub25FZGl0YWJsZVR5cGVzID0gWydkaXZpZGVyJywgJ2ltYWdlJywgJ3lvdXR1YmUnLCAnYXR0YWNobWVudCddO1xuICAgICAgICBhd2FpdCBibG9ja09wcy5mb2N1c0Jsb2NrKG5leHRCbG9jay5pZCwgbm9uRWRpdGFibGVUeXBlcy5pbmNsdWRlcyhuZXh0QmxvY2sudHlwZSkgPyB1bmRlZmluZWQgOiAnc3RhcnQnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gT3RoZXJ3aXNlLCBsZXQgdGhlIGJyb3dzZXIgaGFuZGxlIG5vcm1hbCByaWdodCBhcnJvdyBuYXZpZ2F0aW9uXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBzbGFzaCBtZW51IGtleWJvYXJkIG5hdmlnYXRpb25cbiAgICogTm90ZTogVGhpcyBpcyBub3cgaGFuZGxlZCBieSB0aGUgY29tcG9uZW50IGRpcmVjdGx5XG4gICAqL1xuICBcbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnNvciBpcyBvbiB0aGUgZmlyc3QgbGluZSBvZiBhIGJsb2NrXG4gICAqL1xuICBwcml2YXRlIGlzT25GaXJzdExpbmUoc2VsZWN0aW9uSW5mbzogYW55LCB0YXJnZXQ6IEhUTUxFbGVtZW50LCAuLi5zaGFkb3dSb290czogU2hhZG93Um9vdFtdKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENyZWF0ZSBhIHJhbmdlIGZyb20gdGhlIHNlbGVjdGlvbiBpbmZvXG4gICAgICBjb25zdCByYW5nZSA9IFd5c2l3eWdTZWxlY3Rpb24uY3JlYXRlUmFuZ2VGcm9tSW5mbyhzZWxlY3Rpb25JbmZvKTtcbiAgICAgIGNvbnN0IHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIFxuICAgICAgLy8gR2V0IHRoZSBjb250YWluZXIgZWxlbWVudFxuICAgICAgbGV0IGNvbnRhaW5lciA9IHJhbmdlLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyO1xuICAgICAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgY29udGFpbmVyID0gY29udGFpbmVyLnBhcmVudEVsZW1lbnQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIEdldCB0aGUgdG9wIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSAoY29udGFpbmVyIGFzIEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgXG4gICAgICAvLyBDaGVjayBpZiB3ZSdyZSBuZWFyIHRoZSB0b3AgKHdpdGhpbiA1cHggdG9sZXJhbmNlIGZvciBsaW5lIGhlaWdodCB2YXJpYXRpb25zKVxuICAgICAgY29uc3QgaXNOZWFyVG9wID0gcmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCA8IDU7XG4gICAgICBcbiAgICAgIC8vIEZvciBzaW5nbGUtbGluZSBjb250ZW50LCBhbHNvIGNoZWNrIGlmIHdlJ3JlIGF0IHRoZSBiZWdpbm5pbmdcbiAgICAgIGlmIChjb250YWluZXIudGV4dENvbnRlbnQgJiYgIWNvbnRhaW5lci50ZXh0Q29udGVudC5pbmNsdWRlcygnXFxuJykpIHtcbiAgICAgICAgY29uc3QgY3Vyc29yUG9zID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChjb250YWluZXIgYXMgRWxlbWVudCwgLi4uc2hhZG93Um9vdHMpO1xuICAgICAgICByZXR1cm4gY3Vyc29yUG9zID09PSAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICByZXR1cm4gaXNOZWFyVG9wO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignRXJyb3IgY2hlY2tpbmcgZmlyc3QgbGluZTonLCBlKTtcbiAgICAgIC8vIEZhbGxiYWNrIHRvIHBvc2l0aW9uLWJhc2VkIGNoZWNrXG4gICAgICBjb25zdCBjdXJzb3JQb3MgPSBzZWxlY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0O1xuICAgICAgcmV0dXJuIGN1cnNvclBvcyA9PT0gMDtcbiAgICB9XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBDaGVjayBpZiBjdXJzb3IgaXMgb24gdGhlIGxhc3QgbGluZSBvZiBhIGJsb2NrXG4gICAqL1xuICBwcml2YXRlIGlzT25MYXN0TGluZShzZWxlY3Rpb25JbmZvOiBhbnksIHRhcmdldDogSFRNTEVsZW1lbnQsIC4uLnNoYWRvd1Jvb3RzOiBTaGFkb3dSb290W10pOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgLy8gQ3JlYXRlIGEgcmFuZ2UgZnJvbSB0aGUgc2VsZWN0aW9uIGluZm9cbiAgICAgIGNvbnN0IHJhbmdlID0gV3lzaXd5Z1NlbGVjdGlvbi5jcmVhdGVSYW5nZUZyb21JbmZvKHNlbGVjdGlvbkluZm8pO1xuICAgICAgY29uc3QgcmVjdCA9IHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgXG4gICAgICAvLyBHZXQgdGhlIGNvbnRhaW5lciBlbGVtZW50XG4gICAgICBsZXQgY29udGFpbmVyID0gcmFuZ2UuY29tbW9uQW5jZXN0b3JDb250YWluZXI7XG4gICAgICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICBjb250YWluZXIgPSBjb250YWluZXIucGFyZW50RWxlbWVudDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gR2V0IHRoZSBib3R0b20gcG9zaXRpb24gb2YgdGhlIGNvbnRhaW5lclxuICAgICAgY29uc3QgY29udGFpbmVyUmVjdCA9IChjb250YWluZXIgYXMgRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBcbiAgICAgIC8vIENoZWNrIGlmIHdlJ3JlIG5lYXIgdGhlIGJvdHRvbSAod2l0aGluIDVweCB0b2xlcmFuY2UgZm9yIGxpbmUgaGVpZ2h0IHZhcmlhdGlvbnMpXG4gICAgICBjb25zdCBpc05lYXJCb3R0b20gPSBjb250YWluZXJSZWN0LmJvdHRvbSAtIHJlY3QuYm90dG9tIDwgNTtcbiAgICAgIFxuICAgICAgLy8gRm9yIHNpbmdsZS1saW5lIGNvbnRlbnQsIGFsc28gY2hlY2sgaWYgd2UncmUgYXQgdGhlIGVuZFxuICAgICAgaWYgKGNvbnRhaW5lci50ZXh0Q29udGVudCAmJiAhY29udGFpbmVyLnRleHRDb250ZW50LmluY2x1ZGVzKCdcXG4nKSkge1xuICAgICAgICBjb25zdCB0ZXh0TGVuZ3RoID0gdGFyZ2V0LnRleHRDb250ZW50Py5sZW5ndGggfHwgMDtcbiAgICAgICAgY29uc3QgY3Vyc29yUG9zID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudCh0YXJnZXQsIC4uLnNoYWRvd1Jvb3RzKTtcbiAgICAgICAgcmV0dXJuIGN1cnNvclBvcyA9PT0gdGV4dExlbmd0aDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgcmV0dXJuIGlzTmVhckJvdHRvbTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIGNoZWNraW5nIGxhc3QgbGluZTonLCBlKTtcbiAgICAgIC8vIEZhbGxiYWNrIHRvIHBvc2l0aW9uLWJhc2VkIGNoZWNrXG4gICAgICBjb25zdCB0ZXh0TGVuZ3RoID0gdGFyZ2V0LnRleHRDb250ZW50Py5sZW5ndGggfHwgMDtcbiAgICAgIGNvbnN0IGN1cnNvclBvcyA9IFd5c2l3eWdTZWxlY3Rpb24uZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQodGFyZ2V0LCAuLi5zaGFkb3dSb290cyk7XG4gICAgICByZXR1cm4gY3Vyc29yUG9zID09PSB0ZXh0TGVuZ3RoO1xuICAgIH1cbiAgfVxufSIsICJpbXBvcnQgeyB0eXBlIElCbG9jayB9IGZyb20gJy4vd3lzaXd5Zy50eXBlcy5qcyc7XG5pbXBvcnQgeyB0eXBlIElXeXNpd3lnQ29tcG9uZW50IH0gZnJvbSAnLi93eXNpd3lnLmludGVyZmFjZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgV3lzaXd5Z0RyYWdEcm9wSGFuZGxlciB7XG4gIHByaXZhdGUgY29tcG9uZW50OiBJV3lzaXd5Z0NvbXBvbmVudDtcbiAgcHJpdmF0ZSBkcmFnZ2VkQmxvY2tJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZHJhZ092ZXJCbG9ja0lkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBkcmFnT3ZlclBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBkcm9wSW5kaWNhdG9yOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGluaXRpYWxNb3VzZVk6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgaW5pdGlhbEJsb2NrWTogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBkcmFnZ2VkQmxvY2tFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGRyYWdnZWRCbG9ja0hlaWdodDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBkcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0OiBudW1iZXIgPSAwO1xuICBwcml2YXRlIGRyYWdnZWRCbG9ja01hcmdpblRvcDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBsYXN0VXBkYXRlVGltZTogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSB1cGRhdGVUaHJvdHRsZTogbnVtYmVyID0gODA7IC8vIG1pbGxpc2Vjb25kc1xuXG4gIGNvbnN0cnVjdG9yKGNvbXBvbmVudDogSVd5c2l3eWdDb21wb25lbnQpIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGRyYWcgc3RhdGVcbiAgICovXG4gIGdldCBkcmFnU3RhdGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRyYWdnZWRCbG9ja0lkOiB0aGlzLmRyYWdnZWRCbG9ja0lkLFxuICAgICAgZHJhZ092ZXJCbG9ja0lkOiB0aGlzLmRyYWdPdmVyQmxvY2tJZCxcbiAgICAgIGRyYWdPdmVyUG9zaXRpb246IHRoaXMuZHJhZ092ZXJQb3NpdGlvblxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBkcmFnIHN0YXJ0XG4gICAqL1xuICBoYW5kbGVEcmFnU3RhcnQoZTogRHJhZ0V2ZW50LCBibG9jazogSUJsb2NrKTogdm9pZCB7XG4gICAgaWYgKCFlLmRhdGFUcmFuc2ZlcikgcmV0dXJuO1xuICAgIFxuICAgIHRoaXMuZHJhZ2dlZEJsb2NrSWQgPSBibG9jay5pZDtcbiAgICBlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gJ21vdmUnO1xuICAgIGUuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBibG9jay5pZCk7XG4gICAgXG4gICAgLy8gSGlkZSB0aGUgZGVmYXVsdCBkcmFnIGltYWdlXG4gICAgY29uc3QgZW1wdHlJbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICBlbXB0eUltZy5zcmMgPSAnZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQVVFQkFBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSc7XG4gICAgZS5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKGVtcHR5SW1nLCAwLCAwKTtcbiAgICBcbiAgICAvLyBTdG9yZSBpbml0aWFsIG1vdXNlIHBvc2l0aW9uIGFuZCBibG9jayBlbGVtZW50XG4gICAgdGhpcy5pbml0aWFsTW91c2VZID0gZS5jbGllbnRZO1xuICAgIHRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCA9IHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9XCIke2Jsb2NrLmlkfVwiXWApO1xuICAgIFxuICAgIFxuICAgIGlmICh0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpIHtcbiAgICAgIC8vIEdldCB0aGUgd3JhcHBlciByZWN0IGZvciBtZWFzdXJlbWVudHNcbiAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLmluaXRpYWxCbG9ja1kgPSByZWN0LnRvcDtcbiAgICAgIFxuICAgICAgLy8gR2V0IHRoZSBpbm5lciBibG9jayBlbGVtZW50IGZvciBwcm9wZXIgbWVhc3VyZW1lbnRzXG4gICAgICBjb25zdCBpbm5lckJsb2NrID0gdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jaycpO1xuICAgICAgaWYgKGlubmVyQmxvY2spIHtcbiAgICAgICAgY29uc3QgaW5uZXJSZWN0ID0gaW5uZXJCbG9jay5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGlubmVyQmxvY2spO1xuICAgICAgICB0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcCA9IHBhcnNlSW50KGNvbXB1dGVkU3R5bGUubWFyZ2luVG9wKSB8fCAwO1xuICAgICAgICB0aGlzLmRyYWdnZWRCbG9ja0NvbnRlbnRIZWlnaHQgPSBpbm5lclJlY3QuaGVpZ2h0O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBUaGUgZHJvcCBpbmRpY2F0b3Igc2hvdWxkIG1hdGNoIHRoZSB3cmFwcGVyIGhlaWdodCBleGFjdGx5XG4gICAgICAvLyBUaGUgd3JhcHBlciBhbHJlYWR5IGluY2x1ZGVzIGFsbCB0aGUgc3BhY2UgdGhlIGJsb2NrIG9jY3VwaWVzXG4gICAgICB0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCA9IHJlY3QuaGVpZ2h0O1xuICAgICAgXG4gICAgICBjb25zb2xlLmxvZygnRHJhZyBtZWFzdXJlbWVudHM6Jywge1xuICAgICAgICB3cmFwcGVySGVpZ2h0OiByZWN0LmhlaWdodCxcbiAgICAgICAgbWFyZ2luVG9wOiB0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcCxcbiAgICAgICAgZHJvcEluZGljYXRvckhlaWdodDogdGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQsXG4gICAgICAgIGNvbnRlbnRIZWlnaHQ6IHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodCxcbiAgICAgICAgYmxvY2tJZDogYmxvY2suaWRcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBDcmVhdGUgZHJvcCBpbmRpY2F0b3JcbiAgICAgIHRoaXMuY3JlYXRlRHJvcEluZGljYXRvcigpO1xuICAgICAgXG4gICAgICAvLyBTZXQgdXAgZHJhZyBldmVudCBsaXN0ZW5lcnNcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVHbG9iYWxEcmFnT3Zlcik7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnZW5kJywgdGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKTtcbiAgICB9XG4gICAgXG4gICAgLy8gVXBkYXRlIGNvbXBvbmVudCBzdGF0ZVxuICAgIHRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkID0gdGhpcy5kcmFnZ2VkQmxvY2tJZDtcbiAgICBcbiAgICAvLyBBZGQgZHJhZ2dpbmcgY2xhc3MgYWZ0ZXIgYSBzbWFsbCBkZWxheVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCkge1xuICAgICAgICB0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZHJhZ2dpbmcnKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LmFkZCgnZHJhZ2dpbmcnKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBkcmFnIGVuZFxuICAgKi9cbiAgaGFuZGxlRHJhZ0VuZCgpOiB2b2lkIHtcbiAgICAvLyBDbGVhbiB1cCB2aXN1YWwgc3RhdGVcbiAgICBjb25zdCBhbGxCbG9ja3MgPSB0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoJy5ibG9jay13cmFwcGVyJyk7XG4gICAgYWxsQmxvY2tzLmZvckVhY2goKGJsb2NrOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgYmxvY2suY2xhc3NMaXN0LnJlbW92ZSgnZHJhZ2dpbmcnLCAnbW92ZS11cCcsICdtb3ZlLWRvd24nKTtcbiAgICAgIGJsb2NrLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLWRyYWctb2Zmc2V0Jyk7XG4gICAgICBibG9jay5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgndHJhbnNmb3JtJyk7XG4gICAgfSk7XG4gICAgXG4gICAgLy8gUmVtb3ZlIGRyYWdnaW5nIGNsYXNzIGZyb20gZWRpdG9yXG4gICAgaWYgKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZ2dpbmcnKTtcbiAgICB9XG4gICAgXG4gICAgLy8gUmVzZXQgZHJhZyBzdGF0ZVxuICAgIHRoaXMuZHJhZ2dlZEJsb2NrSWQgPSBudWxsO1xuICAgIHRoaXMuZHJhZ092ZXJCbG9ja0lkID0gbnVsbDtcbiAgICB0aGlzLmRyYWdPdmVyUG9zaXRpb24gPSBudWxsO1xuICAgIHRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCA9IG51bGw7XG4gICAgdGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQgPSAwO1xuICAgIHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodCA9IDA7XG4gICAgdGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3AgPSAwO1xuICAgIHRoaXMuaW5pdGlhbEJsb2NrWSA9IDA7XG4gICAgXG4gICAgLy8gVXBkYXRlIGNvbXBvbmVudCBzdGF0ZVxuICAgIHRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkID0gbnVsbDtcbiAgICB0aGlzLmNvbXBvbmVudC5kcmFnT3ZlckJsb2NrSWQgPSBudWxsO1xuICAgIHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb24gPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgZHJhZyBvdmVyXG4gICAqL1xuICBoYW5kbGVEcmFnT3ZlcihlOiBEcmFnRXZlbnQsIGJsb2NrOiBJQmxvY2spOiB2b2lkIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCFlLmRhdGFUcmFuc2ZlciB8fCAhdGhpcy5kcmFnZ2VkQmxvY2tJZCB8fCB0aGlzLmRyYWdnZWRCbG9ja0lkID09PSBibG9jay5pZCkgcmV0dXJuO1xuICAgIFxuICAgIGUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnbW92ZSc7XG4gICAgXG4gICAgY29uc3QgcmVjdCA9IChlLmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IG1pZHBvaW50ID0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDI7XG4gICAgXG4gICAgdGhpcy5kcmFnT3ZlckJsb2NrSWQgPSBibG9jay5pZDtcbiAgICB0aGlzLmRyYWdPdmVyUG9zaXRpb24gPSBlLmNsaWVudFkgPCBtaWRwb2ludCA/ICdiZWZvcmUnIDogJ2FmdGVyJztcbiAgICBcbiAgICAvLyBVcGRhdGUgY29tcG9uZW50IHN0YXRlXG4gICAgdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkID0gdGhpcy5kcmFnT3ZlckJsb2NrSWQ7XG4gICAgdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbiA9IHRoaXMuZHJhZ092ZXJQb3NpdGlvbjtcbiAgICBcbiAgICAvLyBUaGUgcGFyZW50IGNvbXBvbmVudCBhbHJlYWR5IGhhbmRsZXMgZHJhZy1vdmVyIGNsYXNzZXMgcHJvZ3JhbW1hdGljYWxseVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgZHJhZyBsZWF2ZVxuICAgKi9cbiAgaGFuZGxlRHJhZ0xlYXZlKGJsb2NrOiBJQmxvY2spOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcmFnT3ZlckJsb2NrSWQgPT09IGJsb2NrLmlkKSB7XG4gICAgICB0aGlzLmRyYWdPdmVyQmxvY2tJZCA9IG51bGw7XG4gICAgICB0aGlzLmRyYWdPdmVyUG9zaXRpb24gPSBudWxsO1xuICAgICAgXG4gICAgICAvLyBVcGRhdGUgY29tcG9uZW50IHN0YXRlXG4gICAgICB0aGlzLmNvbXBvbmVudC5kcmFnT3ZlckJsb2NrSWQgPSBudWxsO1xuICAgICAgdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbiA9IG51bGw7XG4gICAgICBcbiAgICAgIC8vIFRoZSBwYXJlbnQgY29tcG9uZW50IGFscmVhZHkgaGFuZGxlcyByZW1vdmluZyBkcmFnLW92ZXIgY2xhc3NlcyBwcm9ncmFtbWF0aWNhbGx5XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgZHJvcFxuICAgKi9cbiAgaGFuZGxlRHJvcChlOiBEcmFnRXZlbnQsIHRhcmdldEJsb2NrOiBJQmxvY2spOiB2b2lkIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgXG4gICAgaWYgKCF0aGlzLmRyYWdnZWRCbG9ja0lkIHx8IHRoaXMuZHJhZ2dlZEJsb2NrSWQgPT09IHRhcmdldEJsb2NrLmlkKSByZXR1cm47XG4gICAgXG4gICAgLy8gVGhlIHBhcmVudCBjb21wb25lbnQgYWxyZWFkeSBoYXMgYSBoYW5kbGVEcm9wIG1ldGhvZCB0aGF0IGhhbmRsZXMgdGhpcyBwcm9ncmFtbWF0aWNhbGx5XG4gICAgLy8gV2UnbGwgZGVsZWdhdGUgdG8gdGhhdCB0byBlbnN1cmUgcHJvcGVyIHByb2dyYW1tYXRpYyByZW5kZXJpbmdcbiAgICB0aGlzLmNvbXBvbmVudC5oYW5kbGVEcm9wKGUsIHRhcmdldEJsb2NrKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGJsb2NrIGlzIGJlaW5nIGRyYWdnZWRcbiAgICovXG4gIGlzRHJhZ2dpbmcoYmxvY2tJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZHJhZ2dlZEJsb2NrSWQgPT09IGJsb2NrSWQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgYmxvY2sgaGFzIGRyYWcgb3ZlciBzdGF0ZVxuICAgKi9cbiAgaXNEcmFnT3ZlcihibG9ja0lkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kcmFnT3ZlckJsb2NrSWQgPT09IGJsb2NrSWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBkcmFnIG92ZXIgQ1NTIGNsYXNzZXMgZm9yIGEgYmxvY2tcbiAgICovXG4gIGdldERyYWdPdmVyQ2xhc3NlcyhibG9ja0lkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5pc0RyYWdPdmVyKGJsb2NrSWQpKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIHRoaXMuZHJhZ092ZXJQb3NpdGlvbiA9PT0gJ2JlZm9yZScgPyAnZHJhZy1vdmVyLWJlZm9yZScgOiAnZHJhZy1vdmVyLWFmdGVyJztcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGRyb3AgaW5kaWNhdG9yIGVsZW1lbnRcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRHJvcEluZGljYXRvcigpOiB2b2lkIHtcbiAgICB0aGlzLmRyb3BJbmRpY2F0b3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLmRyb3BJbmRpY2F0b3IuY2xhc3NOYW1lID0gJ2Ryb3AtaW5kaWNhdG9yJztcbiAgICB0aGlzLmRyb3BJbmRpY2F0b3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmFwcGVuZENoaWxkKHRoaXMuZHJvcEluZGljYXRvcik7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBnbG9iYWwgZHJhZ292ZXIgdG8gdXBkYXRlIGRyYWdnZWQgYmxvY2sgcG9zaXRpb24gYW5kIG1vdmUgb3RoZXIgYmxvY2tzXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUdsb2JhbERyYWdPdmVyID0gKGU6IERyYWdFdmVudCk6IHZvaWQgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBcbiAgICBpZiAoIXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCkgcmV0dXJuO1xuICAgIFxuICAgIC8vIENhbGN1bGF0ZSB2ZXJ0aWNhbCBvZmZzZXQgZnJvbSBpbml0aWFsIHBvc2l0aW9uXG4gICAgY29uc3QgZGVsdGFZID0gZS5jbGllbnRZIC0gdGhpcy5pbml0aWFsTW91c2VZO1xuICAgIFxuICAgIC8vIEFwcGx5IHRyYW5zZm9ybSB0byBtb3ZlIHRoZSBkcmFnZ2VkIGJsb2NrIHZlcnRpY2FsbHlcbiAgICB0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVkoJHtkZWx0YVl9cHgpYDtcbiAgICBcbiAgICAvLyBUaHJvdHRsZSBwb3NpdGlvbiB1cGRhdGVzIHRvIHJlZHVjZSBzdHV0dGVyaW5nXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBpZiAobm93IC0gdGhpcy5sYXN0VXBkYXRlVGltZSA8IHRoaXMudXBkYXRlVGhyb3R0bGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sYXN0VXBkYXRlVGltZSA9IG5vdztcbiAgICBcbiAgICAvLyBDYWxjdWxhdGUgd2hpY2ggYmxvY2tzIHNob3VsZCBtb3ZlXG4gICAgdGhpcy51cGRhdGVCbG9ja1Bvc2l0aW9ucyhlLmNsaWVudFkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGJsb2NrIHBvc2l0aW9ucyBiYXNlZCBvbiBjdXJzb3IgcG9zaXRpb25cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlQmxvY2tQb3NpdGlvbnMobW91c2VZOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBibG9ja3MgPSBBcnJheS5mcm9tKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgnLmJsb2NrLXdyYXBwZXInKSkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICBjb25zdCBkcmFnZ2VkSW5kZXggPSBibG9ja3MuZmluZEluZGV4KGIgPT4gYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtYmxvY2staWQnKSA9PT0gdGhpcy5kcmFnZ2VkQmxvY2tJZCk7XG4gICAgXG4gICAgaWYgKGRyYWdnZWRJbmRleCA9PT0gLTEpIHJldHVybjtcbiAgICBcbiAgICAvLyBSZXNldCBhbGwgdHJhbnNmb3JtcyBmaXJzdCAoZXhjZXB0IHRoZSBkcmFnZ2VkIGJsb2NrKVxuICAgIGJsb2Nrcy5mb3JFYWNoKGJsb2NrID0+IHtcbiAgICAgIGlmIChibG9jay5nZXRBdHRyaWJ1dGUoJ2RhdGEtYmxvY2staWQnKSAhPT0gdGhpcy5kcmFnZ2VkQmxvY2tJZCkge1xuICAgICAgICBibG9jay5jbGFzc0xpc3QucmVtb3ZlKCdtb3ZlLXVwJywgJ21vdmUtZG93bicpO1xuICAgICAgICBibG9jay5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1kcmFnLW9mZnNldCcpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIENhbGN1bGF0ZSB3aGVyZSB0aGUgZHJhZ2dlZCBibG9jayBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICBsZXQgbmV3SW5kZXggPSBibG9ja3MubGVuZ3RoOyAvLyBEZWZhdWx0IHRvIGVuZFxuICAgIFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmxvY2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoaSA9PT0gZHJhZ2dlZEluZGV4KSBjb250aW51ZTtcbiAgICAgIFxuICAgICAgY29uc3QgYmxvY2sgPSBibG9ja3NbaV07XG4gICAgICBjb25zdCByZWN0ID0gYmxvY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBibG9ja1RvcCA9IHJlY3QudG9wO1xuICAgICAgXG4gICAgICAvLyBDaGVjayBpZiBtb3VzZSBpcyBhYm92ZSB0aGlzIGJsb2NrJ3MgbWlkZGxlXG4gICAgICBpZiAobW91c2VZIDwgYmxvY2tUb3AgKyAocmVjdC5oZWlnaHQgKiAwLjUpKSB7XG4gICAgICAgIG5ld0luZGV4ID0gaTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIFxuICAgIC8vIEFwcGx5IHRyYW5zZm9ybXMgdG8gbW92ZSBibG9ja3Mgb3V0IG9mIHRoZSB3YXlcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJsb2Nrcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGkgPT09IGRyYWdnZWRJbmRleCkgY29udGludWU7XG4gICAgICBcbiAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tzW2ldO1xuICAgICAgXG4gICAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBibG9jayBuZWVkcyB0byBtb3ZlXG4gICAgICBpZiAoZHJhZ2dlZEluZGV4IDwgbmV3SW5kZXgpIHtcbiAgICAgICAgLy8gRHJhZ2dpbmcgZG93bjogYmxvY2tzIGJldHdlZW4gb3JpZ2luYWwgYW5kIG5ldyBwb3NpdGlvbiBtb3ZlIHVwXG4gICAgICAgIGlmIChpID4gZHJhZ2dlZEluZGV4ICYmIGkgPCBuZXdJbmRleCkge1xuICAgICAgICAgIGJsb2NrLmNsYXNzTGlzdC5hZGQoJ21vdmUtdXAnKTtcbiAgICAgICAgICBibG9jay5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kcmFnLW9mZnNldCcsIGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZHJhZ2dlZEluZGV4ID4gbmV3SW5kZXgpIHtcbiAgICAgICAgLy8gRHJhZ2dpbmcgdXA6IGJsb2NrcyBiZXR3ZWVuIG5ldyBhbmQgb3JpZ2luYWwgcG9zaXRpb24gbW92ZSBkb3duXG4gICAgICAgIGlmIChpID49IG5ld0luZGV4ICYmIGkgPCBkcmFnZ2VkSW5kZXgpIHtcbiAgICAgICAgICBibG9jay5jbGFzc0xpc3QuYWRkKCdtb3ZlLWRvd24nKTtcbiAgICAgICAgICBibG9jay5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kcmFnLW9mZnNldCcsIGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gVXBkYXRlIGRyb3AgaW5kaWNhdG9yIHBvc2l0aW9uXG4gICAgdGhpcy51cGRhdGVEcm9wSW5kaWNhdG9yKGJsb2NrcywgbmV3SW5kZXgsIGRyYWdnZWRJbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZHJvcCBpbmRpY2F0b3IgcG9zaXRpb25cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlRHJvcEluZGljYXRvcihibG9ja3M6IEhUTUxFbGVtZW50W10sIHRhcmdldEluZGV4OiBudW1iZXIsIGRyYWdnZWRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRyb3BJbmRpY2F0b3IgfHwgIXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCkgcmV0dXJuO1xuICAgIFxuICAgIHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICBcbiAgICBjb25zdCBjb250YWluZXJSZWN0ID0gdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBsZXQgdG9wUG9zaXRpb24gPSAwO1xuICAgIFxuICAgIC8vIEJ1aWxkIGFycmF5IG9mIHZpc3VhbCBibG9jayBwb3NpdGlvbnMgKGV4Y2x1ZGluZyBkcmFnZ2VkIGJsb2NrKVxuICAgIGNvbnN0IHZpc3VhbEJsb2NrczogeyBpbmRleDogbnVtYmVyLCB0b3A6IG51bWJlciwgYm90dG9tOiBudW1iZXIgfVtdID0gW107XG4gICAgXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBibG9ja3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpID09PSBkcmFnZ2VkSW5kZXgpIGNvbnRpbnVlOyAvLyBTa2lwIHRoZSBkcmFnZ2VkIGJsb2NrXG4gICAgICBcbiAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tzW2ldO1xuICAgICAgY29uc3QgcmVjdCA9IGJsb2NrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgbGV0IHRvcCA9IHJlY3QudG9wIC0gY29udGFpbmVyUmVjdC50b3A7XG4gICAgICBsZXQgYm90dG9tID0gcmVjdC5ib3R0b20gLSBjb250YWluZXJSZWN0LnRvcDtcbiAgICAgIFxuICAgICAgLy8gQWNjb3VudCBmb3IgYW55IHRyYW5zZm9ybXNcbiAgICAgIGNvbnN0IHRyYW5zZm9ybSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGJsb2NrKS50cmFuc2Zvcm07XG4gICAgICBpZiAodHJhbnNmb3JtICYmIHRyYW5zZm9ybSAhPT0gJ25vbmUnKSB7XG4gICAgICAgIGNvbnN0IG1hdHJpeCA9IG5ldyBET01NYXRyaXgodHJhbnNmb3JtKTtcbiAgICAgICAgY29uc3QgeU9mZnNldCA9IG1hdHJpeC5tNDI7XG4gICAgICAgIHRvcCArPSB5T2Zmc2V0O1xuICAgICAgICBib3R0b20gKz0geU9mZnNldDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdmlzdWFsQmxvY2tzLnB1c2goeyBpbmRleDogaSwgdG9wLCBib3R0b20gfSk7XG4gICAgfVxuICAgIFxuICAgIC8vIFNvcnQgYnkgdmlzdWFsIHBvc2l0aW9uXG4gICAgdmlzdWFsQmxvY2tzLnNvcnQoKGEsIGIpID0+IGEudG9wIC0gYi50b3ApO1xuICAgIFxuICAgIC8vIEFkanVzdCB0YXJnZXRJbmRleCB0byBhY2NvdW50IGZvciBleGNsdWRlZCBkcmFnZ2VkIGJsb2NrXG4gICAgbGV0IGFkanVzdGVkVGFyZ2V0SW5kZXggPSB0YXJnZXRJbmRleDtcbiAgICBpZiAodGFyZ2V0SW5kZXggPiBkcmFnZ2VkSW5kZXgpIHtcbiAgICAgIGFkanVzdGVkVGFyZ2V0SW5kZXgtLTsgLy8gUmVkdWNlIGJ5IDEgc2luY2UgZHJhZ2dlZCBibG9jayBpcyBub3QgaW4gdmlzdWFsQmxvY2tzXG4gICAgfVxuICAgIFxuICAgIC8vIENhbGN1bGF0ZSBkcm9wIHBvc2l0aW9uXG4gICAgLy8gR2V0IHRoZSBtYXJnaW4gdGhhdCB3aWxsIGJlIGFwcGxpZWQgYmFzZWQgb24gdGhlIGRyYWdnZWQgYmxvY2sgdHlwZVxuICAgIGxldCBibG9ja01hcmdpbiA9IDE2OyAvLyBkZWZhdWx0IG1hcmdpblxuICAgIGlmICh0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGRyYWdnZWRCbG9jayA9IHRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kKGIgPT4gYi5pZCA9PT0gdGhpcy5kcmFnZ2VkQmxvY2tJZCk7XG4gICAgICBpZiAoZHJhZ2dlZEJsb2NrKSB7XG4gICAgICAgIGNvbnN0IGJsb2NrVHlwZSA9IGRyYWdnZWRCbG9jay50eXBlO1xuICAgICAgICBpZiAoYmxvY2tUeXBlID09PSAnaGVhZGluZy0xJyB8fCBibG9ja1R5cGUgPT09ICdoZWFkaW5nLTInIHx8IGJsb2NrVHlwZSA9PT0gJ2hlYWRpbmctMycpIHtcbiAgICAgICAgICBibG9ja01hcmdpbiA9IDI0O1xuICAgICAgICB9IGVsc2UgaWYgKGJsb2NrVHlwZSA9PT0gJ2NvZGUnIHx8IGJsb2NrVHlwZSA9PT0gJ3F1b3RlJykge1xuICAgICAgICAgIGJsb2NrTWFyZ2luID0gMjA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgaWYgKGFkanVzdGVkVGFyZ2V0SW5kZXggPT09IDApIHtcbiAgICAgIC8vIEluc2VydCBhdCB0aGUgdmVyeSB0b3AgLSBubyBtYXJnaW4gbmVlZGVkIGZvciBmaXJzdCBibG9ja1xuICAgICAgdG9wUG9zaXRpb24gPSAwO1xuICAgIH0gZWxzZSBpZiAoYWRqdXN0ZWRUYXJnZXRJbmRleCA+PSB2aXN1YWxCbG9ja3MubGVuZ3RoKSB7XG4gICAgICAvLyBJbnNlcnQgYXQgdGhlIGVuZFxuICAgICAgY29uc3QgbGFzdEJsb2NrID0gdmlzdWFsQmxvY2tzW3Zpc3VhbEJsb2Nrcy5sZW5ndGggLSAxXTtcbiAgICAgIGlmIChsYXN0QmxvY2spIHtcbiAgICAgICAgdG9wUG9zaXRpb24gPSBsYXN0QmxvY2suYm90dG9tO1xuICAgICAgICAvLyBBZGQgbWFyZ2luIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBkcm9wcGVkIGJsb2NrXG4gICAgICAgIHRvcFBvc2l0aW9uICs9IGJsb2NrTWFyZ2luO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJbnNlcnQgYmV0d2VlbiBibG9ja3NcbiAgICAgIGNvbnN0IGJsb2NrQmVmb3JlID0gdmlzdWFsQmxvY2tzW2FkanVzdGVkVGFyZ2V0SW5kZXggLSAxXTtcbiAgICAgIGlmIChibG9ja0JlZm9yZSkge1xuICAgICAgICB0b3BQb3NpdGlvbiA9IGJsb2NrQmVmb3JlLmJvdHRvbTtcbiAgICAgICAgLy8gQWRkIG1hcmdpbiB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgZHJvcHBlZCBibG9ja1xuICAgICAgICB0b3BQb3NpdGlvbiArPSBibG9ja01hcmdpbjtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gU2V0IHRoZSBpbmRpY2F0b3IgaGVpZ2h0IHRvIG1hdGNoIHRoZSBkcmFnZ2VkIGJsb2NrXG4gICAgdGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmhlaWdodCA9IGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YDtcbiAgICBcbiAgICAvLyBTZXQgcG9zaXRpb25cbiAgICB0aGlzLmRyb3BJbmRpY2F0b3Iuc3R5bGUudG9wID0gYCR7TWF0aC5tYXgoMCwgdG9wUG9zaXRpb24pfXB4YDtcbiAgICBcbiAgICBjb25zb2xlLmxvZygnRHJvcCBpbmRpY2F0b3IgdXBkYXRlOicsIHtcbiAgICAgIHRhcmdldEluZGV4LFxuICAgICAgYWRqdXN0ZWRUYXJnZXRJbmRleCxcbiAgICAgIGRyYWdnZWRJbmRleCxcbiAgICAgIHRvcFBvc2l0aW9uLFxuICAgICAgaGVpZ2h0OiB0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxcbiAgICAgIGJsb2NrTWFyZ2luLFxuICAgICAgdmlzdWFsQmxvY2tzOiB2aXN1YWxCbG9ja3MubWFwKGIgPT4gKHsgaW5kZXg6IGIuaW5kZXgsIHRvcDogYi50b3AsIGJvdHRvbTogYi5ib3R0b20gfSkpXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBnbG9iYWwgZHJhZyBlbmRcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlR2xvYmFsRHJhZ0VuZCA9ICgpOiB2b2lkID0+IHtcbiAgICAvLyBDbGVhbiB1cCBldmVudCBsaXN0ZW5lcnNcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaGFuZGxlR2xvYmFsRHJhZ092ZXIpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdlbmQnLCB0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQpO1xuICAgIFxuICAgIC8vIFJlbW92ZSBkcm9wIGluZGljYXRvclxuICAgIGlmICh0aGlzLmRyb3BJbmRpY2F0b3IpIHtcbiAgICAgIHRoaXMuZHJvcEluZGljYXRvci5yZW1vdmUoKTtcbiAgICAgIHRoaXMuZHJvcEluZGljYXRvciA9IG51bGw7XG4gICAgfVxuICAgIFxuICAgIC8vIFRyaWdnZXIgdGhlIGFjdHVhbCBkcm9wIGlmIHdlIGhhdmUgYSBkcmFnZ2VkIGJsb2NrXG4gICAgaWYgKHRoaXMuZHJhZ2dlZEJsb2NrSWQpIHtcbiAgICAgIC8vIFNtYWxsIGRlbGF5IHRvIGVuc3VyZSB0cmFuc2Zvcm1zIGFyZSBhcHBsaWVkXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnBlcmZvcm1Ecm9wKCk7XG4gICAgICAgIC8vIENhbGwgdGhlIHJlZ3VsYXIgZHJhZyBlbmQgaGFuZGxlciBhZnRlciBkcm9wXG4gICAgICAgIHRoaXMuaGFuZGxlRHJhZ0VuZCgpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENhbGwgdGhlIHJlZ3VsYXIgZHJhZyBlbmQgaGFuZGxlclxuICAgICAgdGhpcy5oYW5kbGVEcmFnRW5kKCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyB0aGUgYWN0dWFsIGRyb3Agb3BlcmF0aW9uXG4gICAqL1xuICBwcml2YXRlIHBlcmZvcm1Ecm9wKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2VkQmxvY2tJZCkgcmV0dXJuO1xuICAgIFxuICAgIC8vIEdldCB0aGUgdmlzdWFsIG9yZGVyIG9mIGJsb2NrcyBiYXNlZCBvbiB0aGVpciBwb3NpdGlvbnNcbiAgICBjb25zdCBibG9ja0VsZW1lbnRzID0gQXJyYXkuZnJvbSh0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoJy5ibG9jay13cmFwcGVyJykpIGFzIEhUTUxFbGVtZW50W107XG4gICAgY29uc3QgZHJhZ2dlZEVsZW1lbnQgPSBibG9ja0VsZW1lbnRzLmZpbmQoZWwgPT4gZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWJsb2NrLWlkJykgPT09IHRoaXMuZHJhZ2dlZEJsb2NrSWQpO1xuICAgIFxuICAgIGlmICghZHJhZ2dlZEVsZW1lbnQpIHJldHVybjtcbiAgICBcbiAgICBcbiAgICAvLyBDcmVhdGUgYW4gYXJyYXkgb2YgYmxvY2tzIHdpdGggdGhlaXIgdmlzdWFsIHBvc2l0aW9uc1xuICAgIGNvbnN0IHZpc3VhbE9yZGVyID0gYmxvY2tFbGVtZW50cy5tYXAoZWwgPT4ge1xuICAgICAgY29uc3QgaWQgPSBlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtYmxvY2staWQnKTtcbiAgICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGNlbnRlclkgPSByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjtcbiAgICAgIHJldHVybiB7IGlkLCBjZW50ZXJZLCBlbGVtZW50OiBlbCB9O1xuICAgIH0pO1xuICAgIFxuICAgIC8vIFNvcnQgYnkgdmlzdWFsIFkgcG9zaXRpb25cbiAgICB2aXN1YWxPcmRlci5zb3J0KChhLCBiKSA9PiBhLmNlbnRlclkgLSBiLmNlbnRlclkpO1xuICAgIFxuICAgIC8vIEdldCB0aGUgbmV3IG9yZGVyIG9mIGJsb2NrIElEc1xuICAgIGNvbnN0IG5ld0Jsb2NrSWRzID0gdmlzdWFsT3JkZXIubWFwKGl0ZW0gPT4gaXRlbS5pZCkuZmlsdGVyKGlkID0+IGlkICE9PSBudWxsKTtcbiAgICBcbiAgICAvLyBGaW5kIHRoZSBvcmlnaW5hbCBibG9jayBkYXRhXG4gICAgY29uc3Qgb3JpZ2luYWxCbG9ja3MgPSBbLi4udGhpcy5jb21wb25lbnQuYmxvY2tzXTtcbiAgICBjb25zdCBkcmFnZ2VkQmxvY2sgPSBvcmlnaW5hbEJsb2Nrcy5maW5kKGIgPT4gYi5pZCA9PT0gdGhpcy5kcmFnZ2VkQmxvY2tJZCk7XG4gICAgXG4gICAgaWYgKCFkcmFnZ2VkQmxvY2spIHJldHVybjtcbiAgICBcbiAgICAvLyBDaGVjayBpZiBvcmRlciBhY3R1YWxseSBjaGFuZ2VkXG4gICAgY29uc3Qgb2xkT3JkZXIgPSBvcmlnaW5hbEJsb2Nrcy5tYXAoYiA9PiBiLmlkKTtcbiAgICBjb25zdCBvcmRlckNoYW5nZWQgPSAhbmV3QmxvY2tJZHMuZXZlcnkoKGlkLCBpbmRleCkgPT4gaWQgPT09IG9sZE9yZGVyW2luZGV4XSk7XG4gICAgXG4gICAgaWYgKCFvcmRlckNoYW5nZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gUmVvcmRlciBibG9ja3MgYmFzZWQgb24gdmlzdWFsIHBvc2l0aW9uc1xuICAgIGNvbnN0IG5ld0Jsb2NrcyA9IG5ld0Jsb2NrSWRzLm1hcChpZCA9PiBvcmlnaW5hbEJsb2Nrcy5maW5kKGIgPT4gYi5pZCA9PT0gaWQpISkuZmlsdGVyKEJvb2xlYW4pO1xuICAgIFxuICAgIC8vIFVwZGF0ZSBibG9ja3NcbiAgICB0aGlzLmNvbXBvbmVudC5ibG9ja3MgPSBuZXdCbG9ja3M7XG4gICAgXG4gICAgLy8gUmUtcmVuZGVyIGJsb2NrcyBwcm9ncmFtbWF0aWNhbGx5XG4gICAgdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpO1xuICAgIFxuICAgIC8vIFVwZGF0ZSB2YWx1ZVxuICAgIHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7XG4gICAgXG4gICAgLy8gRm9jdXMgdGhlIG1vdmVkIGJsb2NrIGFmdGVyIGEgZGVsYXlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChkcmFnZ2VkQmxvY2sudHlwZSAhPT0gJ2RpdmlkZXInKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKGRyYWdnZWRCbG9jay5pZCk7XG4gICAgICB9XG4gICAgfSwgMTAwKTtcbiAgfVxufSIsICJpbXBvcnQgeyB0eXBlIElCbG9jayB9IGZyb20gJy4vd3lzaXd5Zy50eXBlcy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUhpc3RvcnlTdGF0ZSB7XG4gIGJsb2NrczogSUJsb2NrW107XG4gIHNlbGVjdGVkQmxvY2tJZDogc3RyaW5nIHwgbnVsbDtcbiAgY3Vyc29yUG9zaXRpb24/OiB7XG4gICAgYmxvY2tJZDogc3RyaW5nO1xuICAgIG9mZnNldDogbnVtYmVyO1xuICB9O1xuICB0aW1lc3RhbXA6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFd5c2l3eWdIaXN0b3J5IHtcbiAgcHJpdmF0ZSBoaXN0b3J5OiBJSGlzdG9yeVN0YXRlW10gPSBbXTtcbiAgcHJpdmF0ZSBjdXJyZW50SW5kZXg6IG51bWJlciA9IC0xO1xuICBwcml2YXRlIG1heEhpc3RvcnlTaXplOiBudW1iZXIgPSA1MDtcbiAgcHJpdmF0ZSBsYXN0U2F2ZVRpbWU6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgc2F2ZURlYm91bmNlTXM6IG51bWJlciA9IDUwMDsgLy8gRGVib3VuY2Ugc2F2ZXMgdG8gYXZvaWQgdG9vIG1hbnkgc25hcHNob3RzXG4gIFxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBJbml0aWFsaXplIHdpdGggZW1wdHkgc3RhdGVcbiAgICB0aGlzLmhpc3RvcnkgPSBbXTtcbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9IC0xO1xuICB9XG4gIFxuICAvKipcbiAgICogU2F2ZSBjdXJyZW50IHN0YXRlIHRvIGhpc3RvcnlcbiAgICovXG4gIHNhdmVTdGF0ZShibG9ja3M6IElCbG9ja1tdLCBzZWxlY3RlZEJsb2NrSWQ6IHN0cmluZyB8IG51bGwsIGN1cnNvclBvc2l0aW9uPzogeyBibG9ja0lkOiBzdHJpbmc7IG9mZnNldDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIFxuICAgIC8vIERlYm91bmNlIHJhcGlkIGNoYW5nZXMgKGxpa2UgdHlwaW5nKVxuICAgIGlmIChub3cgLSB0aGlzLmxhc3RTYXZlVGltZSA8IHRoaXMuc2F2ZURlYm91bmNlTXMgJiYgdGhpcy5jdXJyZW50SW5kZXggPj0gMCkge1xuICAgICAgLy8gVXBkYXRlIHRoZSBjdXJyZW50IHN0YXRlIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25lXG4gICAgICB0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdID0ge1xuICAgICAgICBibG9ja3M6IHRoaXMuY2xvbmVCbG9ja3MoYmxvY2tzKSxcbiAgICAgICAgc2VsZWN0ZWRCbG9ja0lkLFxuICAgICAgICBjdXJzb3JQb3NpdGlvbjogY3Vyc29yUG9zaXRpb24gPyB7IC4uLmN1cnNvclBvc2l0aW9uIH0gOiB1bmRlZmluZWQsXG4gICAgICAgIHRpbWVzdGFtcDogbm93XG4gICAgICB9O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBSZW1vdmUgYW55IHN0YXRlcyBhZnRlciBjdXJyZW50IGluZGV4ICh3aGVuIHdlIHNhdmUgYWZ0ZXIgdW5kb2luZylcbiAgICBpZiAodGhpcy5jdXJyZW50SW5kZXggPCB0aGlzLmhpc3RvcnkubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5oaXN0b3J5ID0gdGhpcy5oaXN0b3J5LnNsaWNlKDAsIHRoaXMuY3VycmVudEluZGV4ICsgMSk7XG4gICAgfVxuICAgIFxuICAgIC8vIEFkZCBuZXcgc3RhdGVcbiAgICBjb25zdCBuZXdTdGF0ZTogSUhpc3RvcnlTdGF0ZSA9IHtcbiAgICAgIGJsb2NrczogdGhpcy5jbG9uZUJsb2NrcyhibG9ja3MpLFxuICAgICAgc2VsZWN0ZWRCbG9ja0lkLFxuICAgICAgY3Vyc29yUG9zaXRpb246IGN1cnNvclBvc2l0aW9uID8geyAuLi5jdXJzb3JQb3NpdGlvbiB9IDogdW5kZWZpbmVkLFxuICAgICAgdGltZXN0YW1wOiBub3dcbiAgICB9O1xuICAgIFxuICAgIHRoaXMuaGlzdG9yeS5wdXNoKG5ld1N0YXRlKTtcbiAgICB0aGlzLmN1cnJlbnRJbmRleCsrO1xuICAgIFxuICAgIC8vIExpbWl0IGhpc3Rvcnkgc2l6ZVxuICAgIGlmICh0aGlzLmhpc3RvcnkubGVuZ3RoID4gdGhpcy5tYXhIaXN0b3J5U2l6ZSkge1xuICAgICAgdGhpcy5oaXN0b3J5LnNoaWZ0KCk7XG4gICAgICB0aGlzLmN1cnJlbnRJbmRleC0tO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmxhc3RTYXZlVGltZSA9IG5vdztcbiAgfVxuICBcbiAgLyoqXG4gICAqIEZvcmNlIHNhdmUgYSBjaGVja3BvaW50ICh1c2VmdWwgZm9yIG9wZXJhdGlvbnMgbGlrZSBibG9jayBkZWxldGlvbilcbiAgICovXG4gIHNhdmVDaGVja3BvaW50KGJsb2NrczogSUJsb2NrW10sIHNlbGVjdGVkQmxvY2tJZDogc3RyaW5nIHwgbnVsbCwgY3Vyc29yUG9zaXRpb24/OiB7IGJsb2NrSWQ6IHN0cmluZzsgb2Zmc2V0OiBudW1iZXIgfSk6IHZvaWQge1xuICAgIHRoaXMubGFzdFNhdmVUaW1lID0gMDsgLy8gUmVzZXQgZGVib3VuY2VcbiAgICB0aGlzLnNhdmVTdGF0ZShibG9ja3MsIHNlbGVjdGVkQmxvY2tJZCwgY3Vyc29yUG9zaXRpb24pO1xuICB9XG4gIFxuICAvKipcbiAgICogVW5kbyB0byBwcmV2aW91cyBzdGF0ZVxuICAgKi9cbiAgdW5kbygpOiBJSGlzdG9yeVN0YXRlIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmNhblVuZG8oKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuY3VycmVudEluZGV4LS07XG4gICAgcmV0dXJuIHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFJlZG8gdG8gbmV4dCBzdGF0ZVxuICAgKi9cbiAgcmVkbygpOiBJSGlzdG9yeVN0YXRlIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmNhblJlZG8oKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuY3VycmVudEluZGV4Kys7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIENoZWNrIGlmIHVuZG8gaXMgYXZhaWxhYmxlXG4gICAqL1xuICBjYW5VbmRvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbmRleCA+IDA7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBDaGVjayBpZiByZWRvIGlzIGF2YWlsYWJsZVxuICAgKi9cbiAgY2FuUmVkbygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50SW5kZXggPCB0aGlzLmhpc3RvcnkubGVuZ3RoIC0gMTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCBjdXJyZW50IHN0YXRlXG4gICAqL1xuICBnZXRDdXJyZW50U3RhdGUoKTogSUhpc3RvcnlTdGF0ZSB8IG51bGwge1xuICAgIGlmICh0aGlzLmN1cnJlbnRJbmRleCA+PSAwICYmIHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5oaXN0b3J5Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBDbGVhciBoaXN0b3J5XG4gICAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmhpc3RvcnkgPSBbXTtcbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9IC0xO1xuICAgIHRoaXMubGFzdFNhdmVUaW1lID0gMDtcbiAgfVxuICBcbiAgLyoqXG4gICAqIERlZXAgY2xvbmUgYmxvY2tzXG4gICAqL1xuICBwcml2YXRlIGNsb25lQmxvY2tzKGJsb2NrczogSUJsb2NrW10pOiBJQmxvY2tbXSB7XG4gICAgcmV0dXJuIGJsb2Nrcy5tYXAoYmxvY2sgPT4gKHtcbiAgICAgIC4uLmJsb2NrLFxuICAgICAgbWV0YWRhdGE6IGJsb2NrLm1ldGFkYXRhID8geyAuLi5ibG9jay5tZXRhZGF0YSB9IDogdW5kZWZpbmVkXG4gICAgfSkpO1xuICB9XG4gIFxuICAvKipcbiAgICogQ2xvbmUgYSBoaXN0b3J5IHN0YXRlXG4gICAqL1xuICBwcml2YXRlIGNsb25lU3RhdGUoc3RhdGU6IElIaXN0b3J5U3RhdGUpOiBJSGlzdG9yeVN0YXRlIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmxvY2tzOiB0aGlzLmNsb25lQmxvY2tzKHN0YXRlLmJsb2NrcyksXG4gICAgICBzZWxlY3RlZEJsb2NrSWQ6IHN0YXRlLnNlbGVjdGVkQmxvY2tJZCxcbiAgICAgIGN1cnNvclBvc2l0aW9uOiBzdGF0ZS5jdXJzb3JQb3NpdGlvbiA/IHsgLi4uc3RhdGUuY3Vyc29yUG9zaXRpb24gfSA6IHVuZGVmaW5lZCxcbiAgICAgIHRpbWVzdGFtcDogc3RhdGUudGltZXN0YW1wXG4gICAgfTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCBoaXN0b3J5IGluZm8gZm9yIGRlYnVnZ2luZ1xuICAgKi9cbiAgZ2V0SGlzdG9yeUluZm8oKTogeyBzaXplOiBudW1iZXI7IGN1cnJlbnRJbmRleDogbnVtYmVyOyBjYW5VbmRvOiBib29sZWFuOyBjYW5SZWRvOiBib29sZWFuIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBzaXplOiB0aGlzLmhpc3RvcnkubGVuZ3RoLFxuICAgICAgY3VycmVudEluZGV4OiB0aGlzLmN1cnJlbnRJbmRleCxcbiAgICAgIGNhblVuZG86IHRoaXMuY2FuVW5kbygpLFxuICAgICAgY2FuUmVkbzogdGhpcy5jYW5SZWRvKClcbiAgICB9O1xuICB9XG59IiwgImltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIHByb3BlcnR5LFxuICBzdGF0aWMgYXMgaHRtbCxcbiAgRGVlc0VsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIGNzc01hbmFnZXIsXG4gIGNzcyxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuaW1wb3J0IHsgdHlwZSBJQmxvY2sgfSBmcm9tICcuL3d5c2l3eWcudHlwZXMuanMnO1xuaW1wb3J0IHsgV3lzaXd5Z0Jsb2NrcyB9IGZyb20gJy4vd3lzaXd5Zy5ibG9ja3MuanMnO1xuaW1wb3J0IHsgV3lzaXd5Z1NlbGVjdGlvbiB9IGZyb20gJy4vd3lzaXd5Zy5zZWxlY3Rpb24uanMnO1xuaW1wb3J0IHsgQmxvY2tSZWdpc3RyeSwgdHlwZSBJQmxvY2tFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi9ibG9ja3MvaW5kZXguanMnO1xuaW1wb3J0ICcuL3d5c2l3eWcuYmxvY2tyZWdpc3RyYXRpb24uanMnO1xuaW1wb3J0IHsgV3lzaXd5Z1Nob3J0Y3V0cyB9IGZyb20gJy4vd3lzaXd5Zy5zaG9ydGN1dHMuanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLWNvbnRleHRtZW51L2RlZXMtY29udGV4dG1lbnUuanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtd3lzaXd5Zy1ibG9jayc6IERlZXNXeXNpd3lnQmxvY2s7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtd3lzaXd5Zy1ibG9jaycpXG5leHBvcnQgY2xhc3MgRGVlc1d5c2l3eWdCbG9jayBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgYXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAvLyBDbGVhbiB1cCBzZWxlY3Rpb24gaGFuZGxlclxuICAgIGlmICgodGhpcyBhcyBhbnkpLl9zZWxlY3Rpb25IYW5kbGVyKSB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzZWxlY3Rpb25jaGFuZ2UnLCAodGhpcyBhcyBhbnkpLl9zZWxlY3Rpb25IYW5kbGVyKTtcbiAgICB9XG4gIH1cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pXG4gIGFjY2Vzc29yIGJsb2NrOiBJQmxvY2s7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBpc1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pXG4gIGFjY2Vzc29yIGhhbmRsZXJzOiBJQmxvY2tFdmVudEhhbmRsZXJzO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE9iamVjdCB9KVxuICBhY2Nlc3NvciB3eXNpd3lnQ29tcG9uZW50OiBhbnk7IC8vIFJlZmVyZW5jZSB0byBwYXJlbnQgZGVlcy1pbnB1dC13eXNpd3lnXG5cbiAgLy8gUmVmZXJlbmNlIHRvIHRoZSBlZGl0YWJsZSBibG9jayBlbGVtZW50XG4gIHByaXZhdGUgYmxvY2tFbGVtZW50OiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBcbiAgLy8gVHJhY2sgaWYgd2UndmUgaW5pdGlhbGl6ZWQgdGhlIGNvbnRlbnRcbiAgcHJpdmF0ZSBjb250ZW50SW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgXG4gIC8vIFRyYWNrIGN1cnNvciBwb3NpdGlvblxuICBwcml2YXRlIGxhc3RLbm93bkN1cnNvclBvc2l0aW9uOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIGxhc3RTZWxlY3RlZFRleHQ6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgaGFuZGxlclN0eWxlc0luamVjdGVkID0gZmFsc2U7XG4gIFxuICAvLyBCbG9jayB0eXBlcyB0aGF0IGRvbid0IHN1cHBvcnQgY29udGVudGVkaXRhYmxlXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE5PTl9FRElUQUJMRV9UWVBFUyA9IFsnaW1hZ2UnLCAnZGl2aWRlcicsICd5b3V0dWJlJ107XG4gIFxuICBwcml2YXRlIGluamVjdEhhbmRsZXJTdHlsZXMoKTogdm9pZCB7XG4gICAgLy8gT25seSBpbmplY3Qgb25jZSBwZXIgaW5zdGFuY2VcbiAgICBpZiAodGhpcy5oYW5kbGVyU3R5bGVzSW5qZWN0ZWQpIHJldHVybjtcbiAgICB0aGlzLmhhbmRsZXJTdHlsZXNJbmplY3RlZCA9IHRydWU7XG4gICAgXG4gICAgLy8gR2V0IHN0eWxlcyBmcm9tIGFsbCByZWdpc3RlcmVkIGJsb2NrIGhhbmRsZXJzXG4gICAgbGV0IHN0eWxlcyA9ICcnO1xuICAgIGNvbnN0IGJsb2NrVHlwZXMgPSBCbG9ja1JlZ2lzdHJ5LmdldEFsbFR5cGVzKCk7XG4gICAgZm9yIChjb25zdCB0eXBlIG9mIGJsb2NrVHlwZXMpIHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSBCbG9ja1JlZ2lzdHJ5LmdldEhhbmRsZXIodHlwZSk7XG4gICAgICBpZiAoaGFuZGxlcikge1xuICAgICAgICBzdHlsZXMgKz0gaGFuZGxlci5nZXRTdHlsZXMoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgaWYgKHN0eWxlcykge1xuICAgICAgLy8gQ3JlYXRlIGFuZCBpbmplY3Qgc3R5bGUgZWxlbWVudFxuICAgICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIHN0eWxlRWxlbWVudC50ZXh0Q29udGVudCA9IHN0eWxlcztcbiAgICAgIHRoaXMuc2hhZG93Um9vdD8uYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuYmxvY2sge1xuICAgICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICAgICAgbWluLWhlaWdodDogMS42ZW07XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwMDAwMCcsICcjZTBlMGUwJyl9O1xuICAgICAgfVxuXG4gICAgICAuYmxvY2s6ZW1wdHk6bm90KDpmb2N1cyk6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzk5OScsICcjNjY2Jyl9O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAvKiBCbG9jay1zcGVjaWZpYyBzdHlsZXMgbW92ZWQgdG8gaGFuZGxlcnMgKi9cblxuXG4gICAgICAvKiBGb3JtYXR0aW5nIHN0eWxlcyAqL1xuICAgICAgLmJsb2NrIDppcyhiLCBzdHJvbmcpIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDAwMDAwJywgJyNmZmZmZmYnKX07XG4gICAgICB9XG5cbiAgICAgIC5ibG9jayA6aXMoaSwgZW0pIHtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgfVxuXG4gICAgICAuYmxvY2sgdSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuXG4gICAgICAuYmxvY2sgcyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgfVxuXG4gICAgICAuYmxvY2sgY29kZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjA2KScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSknKX07XG4gICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZDE0JywgJyNmZjZiNmInKX07XG4gICAgICB9XG5cbiAgICAgIC5ibG9jayBhIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDA2NmNjJywgJyM0ZDk0ZmYnKX07XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuXG4gICAgICAuYmxvY2sgYTpob3ZlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDA2NmNjJywgJyM0ZDk0ZmYnKX07XG4gICAgICB9XG5cbiAgICAgIC8qIENvZGUgYmxvY2sgY29udGFpbmVyIGFuZCBsYW5ndWFnZSBzdHlsZXMgbW92ZWQgdG8gaGFuZGxlciAqL1xuXG4gICAgICAvKiBTZWxlY3Rpb24gc3R5bGVzICovXG4gICAgICAuYmxvY2sgOjpzZWxlY3Rpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAxMDIsIDIwNCwgMC4zKScsICdyZ2JhKDc3LCAxNDgsIDI1NSwgMC4zKScpfTtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG5cblxuICAgICAgLyogU3RyaWtlIHRocm91Z2ggKi9cbiAgICAgIC5ibG9jayA6aXMocywgc3RyaWtlKSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG5cblxuICAgICAgLyogQmxvY2sgbWFyZ2luIGFkanVzdG1lbnRzIGJhc2VkIG9uIHR5cGUgKi9cbiAgICAgIDpob3N0LWNvbnRleHQoLmJsb2NrLXdyYXBwZXI6Zmlyc3QtY2hpbGQpIC5ibG9jayB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguYmxvY2std3JhcHBlcjpsYXN0LWNoaWxkKSAuYmxvY2sge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAvKiBTZWxlY3RlZCBzdGF0ZSAqL1xuICAgICAgLmJsb2NrLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMTAyLCAyMDQsIDAuMDUpJywgJ3JnYmEoNzcsIDE0OCwgMjU1LCAwLjA4KScpfTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpJywgJ3JnYmEoNzcsIDE0OCwgMjU1LCAwLjIpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC04cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgICB9XG5cblxuXG5cbiAgICBgLFxuICBdO1xuXG4gIHByb3RlY3RlZCBzaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcsIGFueT4pOiBib29sZWFuIHtcbiAgICAvLyBJZiBzZWxlY3Rpb24gc3RhdGUgY2hhbmdlZCwgdXBkYXRlIHRoZSBzZWxlY3RlZCBjbGFzcyB3aXRob3V0IHJlLXJlbmRlcmluZ1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2lzU2VsZWN0ZWQnKSAmJiB0aGlzLmJsb2NrKSB7XG4gICAgICAvLyBGaW5kIHRoZSBibG9jayBlbGVtZW50IGJhc2VkIG9uIGJsb2NrIHR5cGVcbiAgICAgIGxldCBlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgICAgXG4gICAgICAvLyBCdWlsZCB0aGUgc3BlY2lmaWMgc2VsZWN0b3IgYmFzZWQgb24gYmxvY2sgdHlwZVxuICAgICAgY29uc3QgYmxvY2tUeXBlID0gdGhpcy5ibG9jay50eXBlO1xuICAgICAgY29uc3Qgc2VsZWN0b3IgPSBgLmJsb2NrLiR7YmxvY2tUeXBlfWA7XG4gICAgICBcbiAgICAgIGVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgXG4gICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdzZWxlY3RlZCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlOyAvLyBEb24ndCByZS1yZW5kZXIsIGp1c3QgdXBkYXRlIHRoZSBjbGFzc1xuICAgIH1cbiAgICBcbiAgICAvLyBOZXZlciB1cGRhdGUgaWYgb25seSB0aGUgYmxvY2sgY29udGVudCBjaGFuZ2VkXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnYmxvY2snKSAmJiB0aGlzLmJsb2NrKSB7XG4gICAgICBjb25zdCBvbGRCbG9jayA9IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgnYmxvY2snKTtcbiAgICAgIGlmIChvbGRCbG9jayAmJiBvbGRCbG9jay5pZCAmJiBvbGRCbG9jay50eXBlICYmIG9sZEJsb2NrLmlkID09PSB0aGlzLmJsb2NrLmlkICYmIG9sZEJsb2NrLnR5cGUgPT09IHRoaXMuYmxvY2sudHlwZSkge1xuICAgICAgICAvLyBPbmx5IGNvbnRlbnQgb3IgbWV0YWRhdGEgY2hhbmdlZCwgZG9uJ3QgcmUtcmVuZGVyXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gT25seSB1cGRhdGUgaWYgdGhlIGJsb2NrIHR5cGUgb3IgaWQgY2hhbmdlc1xuICAgIHJldHVybiAhdGhpcy5ibG9ja0VsZW1lbnQgfHwgdGhpcy5ibG9jaz8udHlwZSAhPT0gdGhpcy5ibG9ja0VsZW1lbnQuZGF0YXNldC5ibG9ja1R5cGU7XG4gIH1cbiAgXG4gIHB1YmxpYyBmaXJzdFVwZGF0ZWQoKTogdm9pZCB7XG4gICAgLy8gTWFyayB0aGF0IGNvbnRlbnQgaGFzIGJlZW4gaW5pdGlhbGl6ZWRcbiAgICB0aGlzLmNvbnRlbnRJbml0aWFsaXplZCA9IHRydWU7XG4gICAgXG4gICAgLy8gSW5qZWN0IGhhbmRsZXIgc3R5bGVzIGlmIG5vdCBhbHJlYWR5IGRvbmVcbiAgICB0aGlzLmluamVjdEhhbmRsZXJTdHlsZXMoKTtcbiAgICBcbiAgICAvLyBGaXJzdCwgcG9wdWxhdGUgdGhlIGNvbnRhaW5lciB3aXRoIHRoZSByZW5kZXJlZCBjb250ZW50XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcud3lzaXd5Zy1ibG9jay1jb250YWluZXInKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoY29udGFpbmVyICYmIHRoaXMuYmxvY2spIHtcbiAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSB0aGlzLnJlbmRlckJsb2NrQ29udGVudCgpO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGEgcmVnaXN0ZXJlZCBoYW5kbGVyIGZvciB0aGlzIGJsb2NrIHR5cGVcbiAgICBpZiAodGhpcy5ibG9jaykge1xuICAgICAgY29uc3QgaGFuZGxlciA9IEJsb2NrUmVnaXN0cnkuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO1xuICAgICAgaWYgKGhhbmRsZXIpIHtcbiAgICAgICAgY29uc3QgYmxvY2tFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcud3lzaXd5Zy1ibG9jay1jb250YWluZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKGJsb2NrRWxlbWVudCkge1xuICAgICAgICAgIGhhbmRsZXIuc2V0dXAoYmxvY2tFbGVtZW50LCB0aGlzLmJsb2NrLCB0aGlzLmhhbmRsZXJzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47IC8vIEJsb2NrIGhhbmRsZXIgdGFrZXMgY2FyZSBvZiBhbGwgc2V0dXBcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gSGFuZGxlIHNwZWNpYWwgYmxvY2sgdHlwZXNcbiAgICBcbiAgICAvLyBOb3cgZmluZCB0aGUgYWN0dWFsIGVkaXRhYmxlIGJsb2NrIGVsZW1lbnRcbiAgICBjb25zdCBlZGl0YWJsZUJsb2NrID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuYmxvY2snKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBcbiAgICAvLyBFbnN1cmUgdGhlIGJsb2NrIGVsZW1lbnQgbWFpbnRhaW5zIGl0cyBjb250ZW50XG4gICAgaWYgKGVkaXRhYmxlQmxvY2spIHtcbiAgICAgIGVkaXRhYmxlQmxvY2suc2V0QXR0cmlidXRlKCdkYXRhLWJsb2NrLWlkJywgdGhpcy5ibG9jay5pZCk7XG4gICAgICBlZGl0YWJsZUJsb2NrLnNldEF0dHJpYnV0ZSgnZGF0YS1ibG9jay10eXBlJywgdGhpcy5ibG9jay50eXBlKTtcbiAgICAgIFxuICAgICAgLy8gU2V0IHVwIGFsbCBldmVudCBoYW5kbGVycyBtYW51YWxseSB0byBhdm9pZCBMaXQgcmUtcmVuZGVyc1xuICAgICAgZWRpdGFibGVCbG9jay5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIChlKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlcnM/Lm9uSW5wdXQ/LihlIGFzIElucHV0RXZlbnQpO1xuICAgICAgICBcbiAgICAgICAgLy8gVHJhY2sgY3Vyc29yIHBvc2l0aW9uIGFmdGVyIGlucHV0XG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWRpdGFibGVCbG9jayk7XG4gICAgICAgIGlmIChwb3MgIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uID0gcG9zO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgZWRpdGFibGVCbG9jay5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHtcbiAgICAgICAgLy8gVHJhY2sgY3Vyc29yIHBvc2l0aW9uIGJlZm9yZSBrZXlkb3duXG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWRpdGFibGVCbG9jayk7XG4gICAgICAgIGlmIChwb3MgIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uID0gcG9zO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICB0aGlzLmhhbmRsZXJzPy5vbktleURvd24/LihlKTtcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICBcbiAgICAgIGVkaXRhYmxlQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlcnM/Lm9uRm9jdXM/LigpO1xuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGVkaXRhYmxlQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVycz8ub25CbHVyPy4oKTtcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICBlZGl0YWJsZUJsb2NrLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uc3RhcnQnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlcnM/Lm9uQ29tcG9zaXRpb25TdGFydD8uKCk7XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgZWRpdGFibGVCbG9jay5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbmVuZCcsICgpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvbkVuZD8uKCk7XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgZWRpdGFibGVCbG9jay5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgKGUpID0+IHtcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlZGl0YWJsZUJsb2NrKTtcbiAgICAgICAgaWYgKHBvcyAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gPSBwb3M7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIFNlbGVjdGlvbiB3aWxsIGJlIGhhbmRsZWQgYnkgc2VsZWN0aW9uY2hhbmdlIGV2ZW50XG4gICAgICAgIHRoaXMuaGFuZGxlcnM/Lm9uTW91c2VVcD8uKGUpO1xuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGVkaXRhYmxlQmxvY2suYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIC8vIFNtYWxsIGRlbGF5IHRvIGxldCBicm93c2VyIHNldCBjdXJzb3IgcG9zaXRpb25cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlZGl0YWJsZUJsb2NrKTtcbiAgICAgICAgICBpZiAocG9zICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uID0gcG9zO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gQWRkIHNlbGVjdGlvbiBjaGFuZ2UgaGFuZGxlclxuICAgICAgY29uc3QgY2hlY2tTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDApIHJldHVybjtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVGV4dCA9IHNlbGVjdGlvbi50b1N0cmluZygpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRUZXh0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIC8vIENsZWFyIHNlbGVjdGlvbiBpZiBubyB0ZXh0XG4gICAgICAgICAgaWYgKHRoaXMubGFzdFNlbGVjdGVkVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0ID0gJyc7XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdibG9jay10ZXh0LXNlbGVjdGVkJywge1xuICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgICAgICBibG9ja0lkOiB0aGlzLmJsb2NrLmlkLFxuICAgICAgICAgICAgICAgIGhhc1NlbGVjdGlvbjogZmFsc2VcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBHZXQgZnJlc2ggcmVmZXJlbmNlIHRvIHRoZSBlZGl0YWJsZSBibG9ja1xuICAgICAgICBjb25zdCBjdXJyZW50RWRpdGFibGVCbG9jayA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLmJsb2NrJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICAgICAgXG4gICAgICAgIGlmICghY3VycmVudEVkaXRhYmxlQmxvY2spIHJldHVybjtcbiAgICAgICAgXG4gICAgICAgIC8vIEdldCBwYXJlbnQgd3lzaXd5ZyBjb21wb25lbnQncyBzaGFkb3cgcm9vdFxuICAgICAgICBjb25zdCBwYXJlbnRDb21wb25lbnQgPSB0aGlzLmNsb3Nlc3QoJ2RlZXMtaW5wdXQtd3lzaXd5ZycpO1xuICAgICAgICBjb25zdCBwYXJlbnRTaGFkb3dSb290ID0gcGFyZW50Q29tcG9uZW50Py5zaGFkb3dSb290O1xuICAgICAgICBcbiAgICAgICAgLy8gVXNlIGdldENvbXBvc2VkUmFuZ2VzIHdpdGggc2hhZG93IHJvb3RzIGFzIHBlciBNRE4gZG9jc1xuICAgICAgICBjb25zdCBzaGFkb3dSb290czogU2hhZG93Um9vdFtdID0gW107XG4gICAgICAgIGlmIChwYXJlbnRTaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKHBhcmVudFNoYWRvd1Jvb3QpO1xuICAgICAgICBpZiAodGhpcy5zaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKHRoaXMuc2hhZG93Um9vdCk7XG4gICAgICAgIFxuICAgICAgICAvLyBHZXQgc2VsZWN0aW9uIGluZm8gdXNpbmcgb3VyIFNoYWRvdyBET00tYXdhcmUgdXRpbGl0eVxuICAgICAgICBjb25zdCBzZWxlY3Rpb25JbmZvID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvKC4uLnNoYWRvd1Jvb3RzKTtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb25JbmZvKSByZXR1cm47XG4gICAgICAgIFxuICAgICAgICAvLyBDaGVjayBpZiBzZWxlY3Rpb24gaXMgd2l0aGluIHRoaXMgYmxvY2tcbiAgICAgICAgY29uc3Qgc3RhcnRJbkJsb2NrID0gV3lzaXd5Z1NlbGVjdGlvbi5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShjdXJyZW50RWRpdGFibGVCbG9jaywgc2VsZWN0aW9uSW5mby5zdGFydENvbnRhaW5lcik7XG4gICAgICAgIGNvbnN0IGVuZEluQmxvY2sgPSBXeXNpd3lnU2VsZWN0aW9uLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGN1cnJlbnRFZGl0YWJsZUJsb2NrLCBzZWxlY3Rpb25JbmZvLmVuZENvbnRhaW5lcik7XG4gICAgICAgIFxuICAgICAgICBpZiAoc3RhcnRJbkJsb2NrIHx8IGVuZEluQmxvY2spIHtcbiAgICAgICAgICBpZiAoc2VsZWN0ZWRUZXh0ICE9PSB0aGlzLmxhc3RTZWxlY3RlZFRleHQpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVGV4dCA9IHNlbGVjdGVkVGV4dDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8gQ3JlYXRlIHJhbmdlIGFuZCBnZXQgcmVjdFxuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBXeXNpd3lnU2VsZWN0aW9uLmNyZWF0ZVJhbmdlRnJvbUluZm8oc2VsZWN0aW9uSW5mbyk7XG4gICAgICAgICAgICBjb25zdCByZWN0ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIERpc3BhdGNoIGV2ZW50XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdibG9jay10ZXh0LXNlbGVjdGVkJywge1xuICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBzZWxlY3RlZFRleHQudHJpbSgpLFxuICAgICAgICAgICAgICAgIGJsb2NrSWQ6IHRoaXMuYmxvY2suaWQsXG4gICAgICAgICAgICAgICAgcmFuZ2U6IHJhbmdlLFxuICAgICAgICAgICAgICAgIHJlY3Q6IHJlY3QsXG4gICAgICAgICAgICAgICAgaGFzU2VsZWN0aW9uOiB0cnVlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGFzdFNlbGVjdGVkVGV4dCkge1xuICAgICAgICAgIC8vIENsZWFyIHNlbGVjdGlvbiBpZiBubyBsb25nZXIgaW4gdGhpcyBibG9ja1xuICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVGV4dCA9ICcnO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2Jsb2NrLXRleHQtc2VsZWN0ZWQnLCB7XG4gICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgIGJsb2NrSWQ6IHRoaXMuYmxvY2suaWQsXG4gICAgICAgICAgICAgIGhhc1NlbGVjdGlvbjogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBcbiAgICAgIC8vIExpc3RlbiBmb3Igc2VsZWN0aW9uIGNoYW5nZXNcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbmNoYW5nZScsIGNoZWNrU2VsZWN0aW9uKTtcbiAgICAgIFxuICAgICAgLy8gU3RvcmUgdGhlIGhhbmRsZXIgZm9yIGNsZWFudXBcbiAgICAgICh0aGlzIGFzIGFueSkuX3NlbGVjdGlvbkhhbmRsZXIgPSBjaGVja1NlbGVjdGlvbjtcbiAgICAgIFxuICAgICAgLy8gQWRkIGtleXVwIGhhbmRsZXIgZm9yIGN1cnNvciBwb3NpdGlvbiB0cmFja2luZ1xuICAgICAgZWRpdGFibGVCbG9jay5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsICgpID0+IHtcbiAgICAgICAgLy8gVHJhY2sgY3Vyc29yIHBvc2l0aW9uXG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZWRpdGFibGVCbG9jayk7XG4gICAgICAgIGlmIChwb3MgIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uID0gcG9zO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gU2V0IGluaXRpYWwgY29udGVudCBpZiBuZWVkZWRcbiAgICAgIGlmICh0aGlzLmJsb2NrLmNvbnRlbnQpIHtcbiAgICAgICAgZWRpdGFibGVCbG9jay5pbm5lckhUTUwgPSB0aGlzLmJsb2NrLmNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIFN0b3JlIHJlZmVyZW5jZSB0byB0aGUgYmxvY2sgZWxlbWVudCBmb3IgcXVpY2sgYWNjZXNzXG4gICAgdGhpcy5ibG9ja0VsZW1lbnQgPSBlZGl0YWJsZUJsb2NrO1xuICB9XG5cbiAgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBpZiAoIXRoaXMuYmxvY2spIHJldHVybiBodG1sYGA7XG5cbiAgICAvLyBTaW5jZSB3ZSBuZWVkIGR5bmFtaWMgY29udGVudCwgd2UnbGwgcmVuZGVyIGFuIGVtcHR5IGNvbnRhaW5lclxuICAgIC8vIGFuZCBzZXQgdGhlIGlubmVySFRNTCBpbiBmaXJzdFVwZGF0ZWRcbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwid3lzaXd5Zy1ibG9jay1jb250YWluZXJcIj48L2Rpdj5gO1xuICB9XG4gIFxuICBwcml2YXRlIHJlbmRlckJsb2NrQ29udGVudCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5ibG9jaykgcmV0dXJuICcnO1xuXG4gICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhIHJlZ2lzdGVyZWQgaGFuZGxlciBmb3IgdGhpcyBibG9jayB0eXBlXG4gICAgY29uc3QgaGFuZGxlciA9IEJsb2NrUmVnaXN0cnkuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO1xuICAgIGlmIChoYW5kbGVyKSB7XG4gICAgICByZXR1cm4gaGFuZGxlci5yZW5kZXIodGhpcy5ibG9jaywgdGhpcy5pc1NlbGVjdGVkKTtcbiAgICB9XG5cbiAgICAvLyBEZWZhdWx0IHJlbmRlcmluZyBmb3IgYmxvY2tzIHdpdGhvdXQgaGFuZGxlcnNcbiAgICBjb25zdCBzZWxlY3RlZENsYXNzID0gdGhpcy5pc1NlbGVjdGVkID8gJyBzZWxlY3RlZCcgOiAnJztcbiAgICByZXR1cm4gYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImJsb2NrICR7dGhpcy5ibG9jay50eXBlfSR7c2VsZWN0ZWRDbGFzc31cIlxuICAgICAgICBjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJcbiAgICAgID48L2Rpdj5cbiAgICBgO1xuICB9XG5cblxuXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGEgcmVnaXN0ZXJlZCBoYW5kbGVyIGZvciB0aGlzIGJsb2NrIHR5cGVcbiAgICBjb25zdCBoYW5kbGVyID0gQmxvY2tSZWdpc3RyeS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7XG4gICAgaWYgKGhhbmRsZXIgJiYgaGFuZGxlci5mb2N1cykge1xuICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcud3lzaXd5Zy1ibG9jay1jb250YWluZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB7IHNoYWRvd1Jvb3Q6IHRoaXMuc2hhZG93Um9vdCEsIGNvbXBvbmVudDogdGhpcyB9O1xuICAgICAgcmV0dXJuIGhhbmRsZXIuZm9jdXMoY29udGFpbmVyLCBjb250ZXh0KTtcbiAgICB9XG4gICAgXG4gICAgLy8gSGFuZGxlIG5vbi1lZGl0YWJsZSBibG9ja3NcbiAgICBpZiAodGhpcy5ibG9jayAmJiBEZWVzV3lzaXd5Z0Jsb2NrLk5PTl9FRElUQUJMRV9UWVBFUy5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpKSB7XG4gICAgICBjb25zdCBibG9ja0VsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay4ke3RoaXMuYmxvY2sudHlwZX1gKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGlmIChibG9ja0VsZW1lbnQpIHtcbiAgICAgICAgYmxvY2tFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIEdldCB0aGUgYWN0dWFsIGVkaXRhYmxlIGVsZW1lbnRcbiAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jaycpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgXG4gICAgaWYgKCFlZGl0YWJsZUVsZW1lbnQpIHJldHVybjtcbiAgICBcbiAgICAvLyBFbnN1cmUgdGhlIGVsZW1lbnQgaXMgZm9jdXNhYmxlXG4gICAgaWYgKCFlZGl0YWJsZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKSkge1xuICAgICAgZWRpdGFibGVFbGVtZW50LnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgJ3RydWUnKTtcbiAgICB9XG4gICAgXG4gICAgZWRpdGFibGVFbGVtZW50LmZvY3VzKCk7XG4gICAgXG4gICAgLy8gSWYgZm9jdXMgZmFpbGVkLCB0cnkgYWdhaW4gYWZ0ZXIgYSBtaWNyb3Rhc2tcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gZWRpdGFibGVFbGVtZW50ICYmIHRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCAhPT0gZWRpdGFibGVFbGVtZW50KSB7XG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgZWRpdGFibGVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgXG4gIHB1YmxpYyBmb2N1c1dpdGhDdXJzb3IocG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyB8IG51bWJlciA9ICdlbmQnKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhIHJlZ2lzdGVyZWQgaGFuZGxlciBmb3IgdGhpcyBibG9jayB0eXBlXG4gICAgY29uc3QgaGFuZGxlciA9IEJsb2NrUmVnaXN0cnkuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO1xuICAgIGlmIChoYW5kbGVyICYmIGhhbmRsZXIuZm9jdXNXaXRoQ3Vyc29yKSB7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy53eXNpd3lnLWJsb2NrLWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgY29udGV4dCA9IHsgc2hhZG93Um9vdDogdGhpcy5zaGFkb3dSb290ISwgY29tcG9uZW50OiB0aGlzIH07XG4gICAgICByZXR1cm4gaGFuZGxlci5mb2N1c1dpdGhDdXJzb3IoY29udGFpbmVyLCBwb3NpdGlvbiwgY29udGV4dCk7XG4gICAgfVxuICAgIFxuICAgIC8vIE5vbi1lZGl0YWJsZSBibG9ja3MgZG9uJ3Qgc3VwcG9ydCBjdXJzb3IgcG9zaXRpb25pbmdcbiAgICBpZiAodGhpcy5ibG9jayAmJiBEZWVzV3lzaXd5Z0Jsb2NrLk5PTl9FRElUQUJMRV9UWVBFUy5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpKSB7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIEdldCB0aGUgYWN0dWFsIGVkaXRhYmxlIGVsZW1lbnRcbiAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jaycpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgXG4gICAgaWYgKCFlZGl0YWJsZUVsZW1lbnQpIHJldHVybjtcbiAgICBcbiAgICAvLyBFbnN1cmUgZWxlbWVudCBpcyBmb2N1c2FibGUgZmlyc3RcbiAgICBpZiAoIWVkaXRhYmxlRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpKSB7XG4gICAgICBlZGl0YWJsZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAndHJ1ZScpO1xuICAgIH1cbiAgICBcbiAgICAvLyBGb2N1cyB0aGUgZWxlbWVudFxuICAgIGVkaXRhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgIFxuICAgIC8vIFNldCBjdXJzb3IgcG9zaXRpb24gYWZ0ZXIgZm9jdXMgaXMgZXN0YWJsaXNoZWRcbiAgICBjb25zdCBzZXRDdXJzb3IgPSAoKSA9PiB7XG4gICAgICBpZiAocG9zaXRpb24gPT09ICdzdGFydCcpIHtcbiAgICAgICAgdGhpcy5zZXRDdXJzb3JUb1N0YXJ0KCk7XG4gICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnZW5kJykge1xuICAgICAgICB0aGlzLnNldEN1cnNvclRvRW5kKCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwb3NpdGlvbiA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgLy8gVXNlIHRoZSBuZXcgc2VsZWN0aW9uIHV0aWxpdHkgdG8gc2V0IGN1cnNvciBwb3NpdGlvblxuICAgICAgICBXeXNpd3lnU2VsZWN0aW9uLnNldEN1cnNvclBvc2l0aW9uKGVkaXRhYmxlRWxlbWVudCwgcG9zaXRpb24pO1xuICAgICAgfVxuICAgIH07XG4gICAgXG4gICAgLy8gRW5zdXJlIGN1cnNvciBpcyBzZXQgYWZ0ZXIgZm9jdXNcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZWRpdGFibGVFbGVtZW50IHx8IHRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCA9PT0gZWRpdGFibGVFbGVtZW50KSB7XG4gICAgICBzZXRDdXJzb3IoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gV2FpdCBmb3IgZm9jdXMgdG8gYmUgZXN0YWJsaXNoZWRcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZWRpdGFibGVFbGVtZW50IHx8IHRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCA9PT0gZWRpdGFibGVFbGVtZW50KSB7XG4gICAgICAgICAgc2V0Q3Vyc29yKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgXG5cbiAgLyoqXG4gICAqIEdldCBjdXJzb3IgcG9zaXRpb24gaW4gdGhlIGVkaXRhYmxlIGVsZW1lbnRcbiAgICovXG4gIHB1YmxpYyBnZXRDdXJzb3JQb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IG51bWJlciB8IG51bGwge1xuICAgIC8vIENoZWNrIGlmIHdlIGhhdmUgYSByZWdpc3RlcmVkIGhhbmRsZXIgZm9yIHRoaXMgYmxvY2sgdHlwZVxuICAgIGNvbnN0IGhhbmRsZXIgPSBCbG9ja1JlZ2lzdHJ5LmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtcbiAgICBpZiAoaGFuZGxlciAmJiBoYW5kbGVyLmdldEN1cnNvclBvc2l0aW9uKSB7XG4gICAgICBjb25zdCBjb250ZXh0ID0geyBzaGFkb3dSb290OiB0aGlzLnNoYWRvd1Jvb3QhLCBjb21wb25lbnQ6IHRoaXMgfTtcbiAgICAgIHJldHVybiBoYW5kbGVyLmdldEN1cnNvclBvc2l0aW9uKGVsZW1lbnQsIGNvbnRleHQpO1xuICAgIH1cbiAgICBcbiAgICAvLyBHZXQgcGFyZW50IHd5c2l3eWcgY29tcG9uZW50J3Mgc2hhZG93IHJvb3RcbiAgICBjb25zdCBwYXJlbnRDb21wb25lbnQgPSB0aGlzLmNsb3Nlc3QoJ2RlZXMtaW5wdXQtd3lzaXd5ZycpO1xuICAgIGNvbnN0IHBhcmVudFNoYWRvd1Jvb3QgPSBwYXJlbnRDb21wb25lbnQ/LnNoYWRvd1Jvb3Q7XG4gICAgXG4gICAgLy8gR2V0IHNlbGVjdGlvbiBpbmZvIHdpdGggYm90aCBzaGFkb3cgcm9vdHMgZm9yIHByb3BlciB0cmF2ZXJzYWxcbiAgICBjb25zdCBzaGFkb3dSb290czogU2hhZG93Um9vdFtdID0gW107XG4gICAgaWYgKHBhcmVudFNoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2gocGFyZW50U2hhZG93Um9vdCk7XG4gICAgaWYgKHRoaXMuc2hhZG93Um9vdCkgc2hhZG93Um9vdHMucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO1xuICAgIFxuICAgIGNvbnN0IHNlbGVjdGlvbkluZm8gPSBXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8oLi4uc2hhZG93Um9vdHMpO1xuICAgIGNvbnNvbGUubG9nKCdnZXRDdXJzb3JQb3NpdGlvbjogU2VsZWN0aW9uIGluZm8gZnJvbSBzaGFkb3cgRE9NczonLCB7XG4gICAgICBzZWxlY3Rpb25JbmZvLFxuICAgICAgc2hhZG93Um9vdHNDb3VudDogc2hhZG93Um9vdHMubGVuZ3RoXG4gICAgfSk7XG4gICAgXG4gICAgaWYgKCFzZWxlY3Rpb25JbmZvKSB7XG4gICAgICBjb25zb2xlLmxvZygnZ2V0Q3Vyc29yUG9zaXRpb246IE5vIHNlbGVjdGlvbiBmb3VuZCcpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIGNvbnNvbGUubG9nKCdnZXRDdXJzb3JQb3NpdGlvbjogUmFuZ2UgaW5mbzonLCB7XG4gICAgICBzdGFydENvbnRhaW5lcjogc2VsZWN0aW9uSW5mby5zdGFydENvbnRhaW5lcixcbiAgICAgIHN0YXJ0T2Zmc2V0OiBzZWxlY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0LFxuICAgICAgY29sbGFwc2VkOiBzZWxlY3Rpb25JbmZvLmNvbGxhcHNlZCxcbiAgICAgIHN0YXJ0Q29udGFpbmVyVGV4dDogc2VsZWN0aW9uSW5mby5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudFxuICAgIH0pO1xuICAgIFxuICAgIGlmICghZWxlbWVudC5jb250YWlucyhzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyKSkge1xuICAgICAgY29uc29sZS5sb2coJ2dldEN1cnNvclBvc2l0aW9uOiBSYW5nZSBub3QgaW4gZWxlbWVudCcpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIC8vIENyZWF0ZSBhIHJhbmdlIGZyb20gc3RhcnQgb2YgZWxlbWVudCB0byBjdXJzb3IgcG9zaXRpb25cbiAgICBjb25zdCBwcmVDYXJldFJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICBwcmVDYXJldFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlbGVtZW50KTtcbiAgICBwcmVDYXJldFJhbmdlLnNldEVuZChzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyLCBzZWxlY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0KTtcbiAgICBcbiAgICAvLyBHZXQgdGhlIHRleHQgY29udGVudCBsZW5ndGggdXAgdG8gY3Vyc29yXG4gICAgY29uc3QgcG9zaXRpb24gPSBwcmVDYXJldFJhbmdlLnRvU3RyaW5nKCkubGVuZ3RoO1xuICAgIGNvbnNvbGUubG9nKCdnZXRDdXJzb3JQb3NpdGlvbjogQ2FsY3VsYXRlZCBwb3NpdGlvbjonLCB7XG4gICAgICBwb3NpdGlvbixcbiAgICAgIHByZUNhcmV0VGV4dDogcHJlQ2FyZXRSYW5nZS50b1N0cmluZygpLFxuICAgICAgZWxlbWVudFRleHQ6IGVsZW1lbnQudGV4dENvbnRlbnQsXG4gICAgICBlbGVtZW50VGV4dExlbmd0aDogZWxlbWVudC50ZXh0Q29udGVudD8ubGVuZ3RoXG4gICAgfSk7XG4gICAgXG4gICAgcmV0dXJuIHBvc2l0aW9uO1xuICB9XG5cbiAgcHVibGljIGdldENvbnRlbnQoKTogc3RyaW5nIHtcbiAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGEgcmVnaXN0ZXJlZCBoYW5kbGVyIGZvciB0aGlzIGJsb2NrIHR5cGVcbiAgICBjb25zdCBoYW5kbGVyID0gQmxvY2tSZWdpc3RyeS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7XG4gICAgaWYgKGhhbmRsZXIgJiYgaGFuZGxlci5nZXRDb250ZW50KSB7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy53eXNpd3lnLWJsb2NrLWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgY29udGV4dCA9IHsgc2hhZG93Um9vdDogdGhpcy5zaGFkb3dSb290ISwgY29tcG9uZW50OiB0aGlzIH07XG4gICAgICByZXR1cm4gaGFuZGxlci5nZXRDb250ZW50KGNvbnRhaW5lciwgY29udGV4dCk7XG4gICAgfVxuICAgIFxuICAgIFxuICAgIC8vIEdldCB0aGUgYWN0dWFsIGVkaXRhYmxlIGVsZW1lbnRcbiAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jaycpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgXG4gICAgaWYgKCFlZGl0YWJsZUVsZW1lbnQpIHJldHVybiAnJztcbiAgICBcbiAgICAvLyBHZXQgdGhlIGlubmVySFRNTCB3aGljaCBpbmNsdWRlcyBmb3JtYXR0aW5nIHRhZ3NcbiAgICBjb25zdCBjb250ZW50ID0gZWRpdGFibGVFbGVtZW50LmlubmVySFRNTCB8fCAnJztcbiAgICBjb25zb2xlLmxvZygnR2V0dGluZyBjb250ZW50IGZyb20gYmxvY2s6JywgY29udGVudCk7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29udGVudChjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGEgcmVnaXN0ZXJlZCBoYW5kbGVyIGZvciB0aGlzIGJsb2NrIHR5cGVcbiAgICBjb25zdCBoYW5kbGVyID0gQmxvY2tSZWdpc3RyeS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7XG4gICAgaWYgKGhhbmRsZXIgJiYgaGFuZGxlci5zZXRDb250ZW50KSB7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy53eXNpd3lnLWJsb2NrLWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgY29udGV4dCA9IHsgc2hhZG93Um9vdDogdGhpcy5zaGFkb3dSb290ISwgY29tcG9uZW50OiB0aGlzIH07XG4gICAgICByZXR1cm4gaGFuZGxlci5zZXRDb250ZW50KGNvbnRhaW5lciwgY29udGVudCwgY29udGV4dCk7XG4gICAgfVxuICAgIFxuICAgIC8vIEdldCB0aGUgYWN0dWFsIGVkaXRhYmxlIGVsZW1lbnRcbiAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jaycpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgXG4gICAgaWYgKCFlZGl0YWJsZUVsZW1lbnQpIHJldHVybjtcbiAgICBcbiAgICAvLyBTdG9yZSBpZiB3ZSBoYXZlIGZvY3VzXG4gICAgY29uc3QgaGFkRm9jdXMgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlZGl0YWJsZUVsZW1lbnQgfHwgdGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50ID09PSBlZGl0YWJsZUVsZW1lbnQ7XG4gICAgXG4gICAgZWRpdGFibGVFbGVtZW50LmlubmVySFRNTCA9IGNvbnRlbnQ7XG4gICAgXG4gICAgLy8gUmVzdG9yZSBmb2N1cyBpZiB3ZSBoYWQgaXRcbiAgICBpZiAoaGFkRm9jdXMpIHtcbiAgICAgIGVkaXRhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRDdXJzb3JUb1N0YXJ0KCk6IHZvaWQge1xuICAgIC8vIENoZWNrIGlmIHdlIGhhdmUgYSByZWdpc3RlcmVkIGhhbmRsZXIgZm9yIHRoaXMgYmxvY2sgdHlwZVxuICAgIGNvbnN0IGhhbmRsZXIgPSBCbG9ja1JlZ2lzdHJ5LmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtcbiAgICBpZiAoaGFuZGxlciAmJiBoYW5kbGVyLnNldEN1cnNvclRvU3RhcnQpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnd5c2l3eWctYmxvY2stY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBjb250ZXh0ID0geyBzaGFkb3dSb290OiB0aGlzLnNoYWRvd1Jvb3QhLCBjb21wb25lbnQ6IHRoaXMgfTtcbiAgICAgIHJldHVybiBoYW5kbGVyLnNldEN1cnNvclRvU3RhcnQoY29udGFpbmVyLCBjb250ZXh0KTtcbiAgICB9XG4gICAgXG4gICAgLy8gQWx3YXlzIGZpbmQgdGhlIGVsZW1lbnQgZnJlc2gsIGRvbid0IHJlbHkgb24gY2FjaGVkIGJsb2NrRWxlbWVudFxuICAgIGNvbnN0IGVkaXRhYmxlRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLmJsb2NrJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKGVkaXRhYmxlRWxlbWVudCkge1xuICAgICAgV3lzaXd5Z0Jsb2Nrcy5zZXRDdXJzb3JUb1N0YXJ0KGVkaXRhYmxlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEN1cnNvclRvRW5kKCk6IHZvaWQge1xuICAgIC8vIENoZWNrIGlmIHdlIGhhdmUgYSByZWdpc3RlcmVkIGhhbmRsZXIgZm9yIHRoaXMgYmxvY2sgdHlwZVxuICAgIGNvbnN0IGhhbmRsZXIgPSBCbG9ja1JlZ2lzdHJ5LmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtcbiAgICBpZiAoaGFuZGxlciAmJiBoYW5kbGVyLnNldEN1cnNvclRvRW5kKSB7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy53eXNpd3lnLWJsb2NrLWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgY29udGV4dCA9IHsgc2hhZG93Um9vdDogdGhpcy5zaGFkb3dSb290ISwgY29tcG9uZW50OiB0aGlzIH07XG4gICAgICByZXR1cm4gaGFuZGxlci5zZXRDdXJzb3JUb0VuZChjb250YWluZXIsIGNvbnRleHQpO1xuICAgIH1cbiAgICBcbiAgICAvLyBBbHdheXMgZmluZCB0aGUgZWxlbWVudCBmcmVzaCwgZG9uJ3QgcmVseSBvbiBjYWNoZWQgYmxvY2tFbGVtZW50XG4gICAgY29uc3QgZWRpdGFibGVFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuYmxvY2snKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoZWRpdGFibGVFbGVtZW50KSB7XG4gICAgICBXeXNpd3lnQmxvY2tzLnNldEN1cnNvclRvRW5kKGVkaXRhYmxlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cblxuXG5cbiAgXG5cbiAgXG4gIC8qKlxuICAgKiBHZXQgY29udGV4dCBtZW51IGl0ZW1zIGZvciB0aGlzIGJsb2NrXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29udGV4dE1lbnVJdGVtcygpOiBhbnlbXSB7XG4gICAgaWYgKCF0aGlzLmJsb2NrIHx8IHRoaXMuYmxvY2sudHlwZSA9PT0gJ2RpdmlkZXInKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGJsb2NrVHlwZXMgPSBXeXNpd3lnU2hvcnRjdXRzLmdldFNsYXNoTWVudUl0ZW1zKCk7XG4gICAgY29uc3QgY3VycmVudFR5cGUgPSB0aGlzLmJsb2NrLnR5cGU7XG4gICAgXG4gICAgLy8gVXNlIHRoZSBwYXJlbnQgcmVmZXJlbmNlIHBhc3NlZCBmcm9tIGRlZXMtaW5wdXQtd3lzaXd5Z1xuICAgIGNvbnN0IHd5c2l3eWdDb21wb25lbnQgPSB0aGlzLnd5c2l3eWdDb21wb25lbnQ7XG4gICAgY29uc3QgYmxvY2tJZCA9IHRoaXMuYmxvY2suaWQ7XG4gICAgXG4gICAgXG4gICAgLy8gQ3JlYXRlIHN1Ym1lbnUgaXRlbXMgZm9yIGJsb2NrIHR5cGUgY2hhbmdlXG4gICAgY29uc3QgYmxvY2tUeXBlSXRlbXMgPSBibG9ja1R5cGVzXG4gICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbS50eXBlICE9PSBjdXJyZW50VHlwZSAmJiBpdGVtLnR5cGUgIT09ICdkaXZpZGVyJylcbiAgICAgIC5tYXAoaXRlbSA9PiAoe1xuICAgICAgICBuYW1lOiBpdGVtLmxhYmVsLFxuICAgICAgICBpY29uTmFtZTogaXRlbS5pY29uLnJlcGxhY2UoJ2x1Y2lkZTonLCAnJyksXG4gICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGlmICh3eXNpd3lnQ29tcG9uZW50ICYmIHd5c2l3eWdDb21wb25lbnQuYmxvY2tPcGVyYXRpb25zKSB7XG4gICAgICAgICAgICAvLyBUcmFuc2Zvcm0gdGhlIGJsb2NrIHR5cGVcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrVG9UcmFuc2Zvcm0gPSB3eXNpd3lnQ29tcG9uZW50LmJsb2Nrcy5maW5kKChiOiBJQmxvY2spID0+IGIuaWQgPT09IGJsb2NrSWQpO1xuICAgICAgICAgICAgaWYgKGJsb2NrVG9UcmFuc2Zvcm0pIHtcbiAgICAgICAgICAgICAgYmxvY2tUb1RyYW5zZm9ybS50eXBlID0gaXRlbS50eXBlO1xuICAgICAgICAgICAgICBibG9ja1RvVHJhbnNmb3JtLmNvbnRlbnQgPSBibG9ja1RvVHJhbnNmb3JtLmNvbnRlbnQgfHwgJyc7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAvLyBIYW5kbGUgc3BlY2lhbCBtZXRhZGF0YSBmb3IgZGlmZmVyZW50IGJsb2NrIHR5cGVzXG4gICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdjb2RlJykge1xuICAgICAgICAgICAgICAgIGJsb2NrVG9UcmFuc2Zvcm0ubWV0YWRhdGEgPSB7IGxhbmd1YWdlOiAndHlwZXNjcmlwdCcgfTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdsaXN0Jykge1xuICAgICAgICAgICAgICAgIGJsb2NrVG9UcmFuc2Zvcm0ubWV0YWRhdGEgPSB7IGxpc3RUeXBlOiAnYnVsbGV0JyB9O1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgICAgICAgICAgIGJsb2NrVG9UcmFuc2Zvcm0uY29udGVudCA9ICcnO1xuICAgICAgICAgICAgICAgIGJsb2NrVG9UcmFuc2Zvcm0ubWV0YWRhdGEgPSB7IHVybDogJycsIGxvYWRpbmc6IGZhbHNlIH07XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAneW91dHViZScpIHtcbiAgICAgICAgICAgICAgICBibG9ja1RvVHJhbnNmb3JtLmNvbnRlbnQgPSAnJztcbiAgICAgICAgICAgICAgICBibG9ja1RvVHJhbnNmb3JtLm1ldGFkYXRhID0geyB2aWRlb0lkOiAnJywgdXJsOiAnJyB9O1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ21hcmtkb3duJykge1xuICAgICAgICAgICAgICAgIGJsb2NrVG9UcmFuc2Zvcm0ubWV0YWRhdGEgPSB7IHNob3dQcmV2aWV3OiBmYWxzZSB9O1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ2h0bWwnKSB7XG4gICAgICAgICAgICAgICAgYmxvY2tUb1RyYW5zZm9ybS5tZXRhZGF0YSA9IHsgc2hvd1ByZXZpZXc6IGZhbHNlIH07XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAnYXR0YWNobWVudCcpIHtcbiAgICAgICAgICAgICAgICBibG9ja1RvVHJhbnNmb3JtLmNvbnRlbnQgPSAnJztcbiAgICAgICAgICAgICAgICBibG9ja1RvVHJhbnNmb3JtLm1ldGFkYXRhID0geyBmaWxlczogW10gfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBibG9jayBlbGVtZW50XG4gICAgICAgICAgICAgIHd5c2l3eWdDb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGJsb2NrSWQpO1xuICAgICAgICAgICAgICB3eXNpd3lnQ29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAvLyBGb2N1cyB0aGUgYmxvY2sgYWZ0ZXIgdHJhbnNmb3JtYXRpb25cbiAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICB3eXNpd3lnQ29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKGJsb2NrSWQpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgICBcbiAgICBjb25zdCBtZW51SXRlbXM6IGFueVtdID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnQ2hhbmdlIFR5cGUnLFxuICAgICAgICBpY29uTmFtZTogJ3R5cGUnLFxuICAgICAgICBzdWJtZW51OiBibG9ja1R5cGVJdGVtc1xuICAgICAgfVxuICAgIF07XG4gICAgXG4gICAgLy8gQWRkIGNvcHkvY3V0L3Bhc3RlIGZvciBlZGl0YWJsZSBibG9ja3NcbiAgICBpZiAoIVsnaW1hZ2UnLCAnZGl2aWRlcicsICd5b3V0dWJlJywgJ2F0dGFjaG1lbnQnXS5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpKSB7XG4gICAgICBtZW51SXRlbXMucHVzaChcbiAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ3V0JyxcbiAgICAgICAgICBpY29uTmFtZTogJ3NjaXNzb3JzJyxcbiAgICAgICAgICBzaG9ydGN1dDogJ0NtZCtYJyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjdXQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ29weScsXG4gICAgICAgICAgaWNvbk5hbWU6ICdjb3B5JyxcbiAgICAgICAgICBzaG9ydGN1dDogJ0NtZCtDJyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1Bhc3RlJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2NsaXBib2FyZCcsXG4gICAgICAgICAgc2hvcnRjdXQ6ICdDbWQrVicsXG4gICAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgncGFzdGUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIFxuICAgIC8vIEFkZCBkZWxldGUgb3B0aW9uXG4gICAgbWVudUl0ZW1zLnB1c2goXG4gICAgICB7IGRpdmlkZXI6IHRydWUgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0RlbGV0ZSBCbG9jaycsXG4gICAgICAgIGljb25OYW1lOiAndHJhc2gyJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgaWYgKHd5c2l3eWdDb21wb25lbnQgJiYgd3lzaXd5Z0NvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMpIHtcbiAgICAgICAgICAgIHd5c2l3eWdDb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLmRlbGV0ZUJsb2NrKGJsb2NrSWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgXG4gICAgcmV0dXJuIG1lbnVJdGVtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNvbnRlbnQgc3BsaXQgYXQgY3Vyc29yIHBvc2l0aW9uXG4gICAqL1xuICBwdWJsaWMgZ2V0U3BsaXRDb250ZW50KCk6IHsgYmVmb3JlOiBzdHJpbmc7IGFmdGVyOiBzdHJpbmcgfSB8IG51bGwge1xuICAgIGNvbnNvbGUubG9nKCdnZXRTcGxpdENvbnRlbnQ6IFN0YXJ0aW5nLi4uJyk7XG4gICAgXG4gICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhIHJlZ2lzdGVyZWQgaGFuZGxlciBmb3IgdGhpcyBibG9jayB0eXBlXG4gICAgY29uc3QgaGFuZGxlciA9IEJsb2NrUmVnaXN0cnkuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO1xuICAgIGNvbnNvbGUubG9nKCdnZXRTcGxpdENvbnRlbnQ6IENoZWNraW5nIGZvciBoYW5kbGVyJywgeyBcbiAgICAgIGJsb2NrVHlwZTogdGhpcy5ibG9jay50eXBlLCBcbiAgICAgIGhhc0hhbmRsZXI6ICEhaGFuZGxlcixcbiAgICAgIGhhc1NwbGl0TWV0aG9kOiAhIShoYW5kbGVyICYmIGhhbmRsZXIuZ2V0U3BsaXRDb250ZW50KVxuICAgIH0pO1xuICAgIFxuICAgIGlmIChoYW5kbGVyICYmIGhhbmRsZXIuZ2V0U3BsaXRDb250ZW50KSB7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy53eXNpd3lnLWJsb2NrLWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc29sZS5sb2coJ2dldFNwbGl0Q29udGVudDogRm91bmQgY29udGFpbmVyJywgeyBcbiAgICAgICAgY29udGFpbmVyOiAhIWNvbnRhaW5lcixcbiAgICAgICAgY29udGFpbmVySFRNTDogY29udGFpbmVyPy5pbm5lckhUTUw/LnN1YnN0cmluZygwLCAxMDApXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgICAgIHNoYWRvd1Jvb3Q6IHRoaXMuc2hhZG93Um9vdCEsXG4gICAgICAgIGNvbXBvbmVudDogdGhpc1xuICAgICAgfTtcbiAgICAgIHJldHVybiBoYW5kbGVyLmdldFNwbGl0Q29udGVudChjb250YWluZXIsIGNvbnRleHQpO1xuICAgIH1cbiAgICBcbiAgICBcbiAgICAvLyBHZXQgdGhlIGFjdHVhbCBlZGl0YWJsZSBlbGVtZW50IGZpcnN0XG4gICAgY29uc3QgZWRpdGFibGVFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuYmxvY2snKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIFxuICAgIGlmICghZWRpdGFibGVFbGVtZW50KSB7XG4gICAgICBjb25zb2xlLmxvZygnZ2V0U3BsaXRDb250ZW50OiBObyBlZGl0YWJsZSBlbGVtZW50IGZvdW5kJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgY29uc29sZS5sb2coJ2dldFNwbGl0Q29udGVudDogRWxlbWVudCBpbmZvOicsIHtcbiAgICAgIGJsb2NrVHlwZTogdGhpcy5ibG9jay50eXBlLFxuICAgICAgaW5uZXJIVE1MOiBlZGl0YWJsZUVsZW1lbnQuaW5uZXJIVE1MLFxuICAgICAgdGV4dENvbnRlbnQ6IGVkaXRhYmxlRWxlbWVudC50ZXh0Q29udGVudCxcbiAgICAgIHRleHRMZW5ndGg6IGVkaXRhYmxlRWxlbWVudC50ZXh0Q29udGVudD8ubGVuZ3RoXG4gICAgfSk7XG4gICAgXG4gICAgLy8gR2V0IHBhcmVudCB3eXNpd3lnIGNvbXBvbmVudCdzIHNoYWRvdyByb290XG4gICAgY29uc3QgcGFyZW50Q29tcG9uZW50ID0gdGhpcy5jbG9zZXN0KCdkZWVzLWlucHV0LXd5c2l3eWcnKTtcbiAgICBjb25zdCBwYXJlbnRTaGFkb3dSb290ID0gcGFyZW50Q29tcG9uZW50Py5zaGFkb3dSb290O1xuICAgIFxuICAgIC8vIEdldCBzZWxlY3Rpb24gaW5mbyB3aXRoIGJvdGggc2hhZG93IHJvb3RzIGZvciBwcm9wZXIgdHJhdmVyc2FsXG4gICAgY29uc3Qgc2hhZG93Um9vdHM6IFNoYWRvd1Jvb3RbXSA9IFtdO1xuICAgIGlmIChwYXJlbnRTaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKHBhcmVudFNoYWRvd1Jvb3QpO1xuICAgIGlmICh0aGlzLnNoYWRvd1Jvb3QpIHNoYWRvd1Jvb3RzLnB1c2godGhpcy5zaGFkb3dSb290KTtcbiAgICBcbiAgICBjb25zdCBzZWxlY3Rpb25JbmZvID0gV3lzaXd5Z1NlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvKC4uLnNoYWRvd1Jvb3RzKTtcbiAgICBjb25zb2xlLmxvZygnZ2V0U3BsaXRDb250ZW50OiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOicsIHtcbiAgICAgIHNlbGVjdGlvbkluZm8sXG4gICAgICBzaGFkb3dSb290c0NvdW50OiBzaGFkb3dSb290cy5sZW5ndGhcbiAgICB9KTtcbiAgICBcbiAgICBpZiAoIXNlbGVjdGlvbkluZm8pIHtcbiAgICAgIGNvbnNvbGUubG9nKCdnZXRTcGxpdENvbnRlbnQ6IE5vIHNlbGVjdGlvbiwgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjonLCB0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uKTtcbiAgICAgIC8vIFRyeSB1c2luZyBsYXN0IGtub3duIGN1cnNvciBwb3NpdGlvblxuICAgICAgaWYgKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZnVsbFRleHQgPSBlZGl0YWJsZUVsZW1lbnQudGV4dENvbnRlbnQgfHwgJyc7XG4gICAgICAgIGNvbnN0IHBvcyA9IE1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sIGZ1bGxUZXh0Lmxlbmd0aCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdnZXRTcGxpdENvbnRlbnQ6IFNwbGl0dGluZyB3aXRoIGxhc3Qga25vd24gcG9zaXRpb246Jywge1xuICAgICAgICAgIHBvcyxcbiAgICAgICAgICBmdWxsVGV4dExlbmd0aDogZnVsbFRleHQubGVuZ3RoLFxuICAgICAgICAgIGJlZm9yZTogZnVsbFRleHQuc3Vic3RyaW5nKDAsIHBvcyksXG4gICAgICAgICAgYWZ0ZXI6IGZ1bGxUZXh0LnN1YnN0cmluZyhwb3MpXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJlZm9yZTogZnVsbFRleHQuc3Vic3RyaW5nKDAsIHBvcyksXG4gICAgICAgICAgYWZ0ZXI6IGZ1bGxUZXh0LnN1YnN0cmluZyhwb3MpXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgY29uc29sZS5sb2coJ2dldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIHJhbmdlOicsIHtcbiAgICAgIHN0YXJ0Q29udGFpbmVyOiBzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyLFxuICAgICAgc3RhcnRPZmZzZXQ6IHNlbGVjdGlvbkluZm8uc3RhcnRPZmZzZXQsXG4gICAgICBzdGFydENvbnRhaW5lckluRWxlbWVudDogZWRpdGFibGVFbGVtZW50LmNvbnRhaW5zKHNlbGVjdGlvbkluZm8uc3RhcnRDb250YWluZXIpXG4gICAgfSk7XG4gICAgXG4gICAgLy8gTWFrZSBzdXJlIHRoZSBzZWxlY3Rpb24gaXMgd2l0aGluIHRoaXMgYmxvY2tcbiAgICBpZiAoIVd5c2l3eWdTZWxlY3Rpb24uY29udGFpbnNBY3Jvc3NTaGFkb3dET00oZWRpdGFibGVFbGVtZW50LCBzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyKSkge1xuICAgICAgY29uc29sZS5sb2coJ2dldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIG5vdCBpbiB0aGlzIGJsb2NrLCB1c2luZyBsYXN0IGtub3duIHBvc2l0aW9uOicsIHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pO1xuICAgICAgLy8gVHJ5IHVzaW5nIGxhc3Qga25vd24gY3Vyc29yIHBvc2l0aW9uXG4gICAgICBpZiAodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmdWxsVGV4dCA9IGVkaXRhYmxlRWxlbWVudC50ZXh0Q29udGVudCB8fCAnJztcbiAgICAgICAgY29uc3QgcG9zID0gTWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiwgZnVsbFRleHQubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBiZWZvcmU6IGZ1bGxUZXh0LnN1YnN0cmluZygwLCBwb3MpLFxuICAgICAgICAgIGFmdGVyOiBmdWxsVGV4dC5zdWJzdHJpbmcocG9zKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciBIVE1MIGNvbnRlbnQsIGdldCBjdXJzb3IgcG9zaXRpb24gZmlyc3RcbiAgICBjb25zdCBjdXJzb3JQb3MgPSB0aGlzLmdldEN1cnNvclBvc2l0aW9uKGVkaXRhYmxlRWxlbWVudCk7XG4gICAgY29uc29sZS5sb2coJ2dldFNwbGl0Q29udGVudDogQ3Vyc29yIHBvc2l0aW9uIGZvciBIVE1MIHNwbGl0OicsIGN1cnNvclBvcyk7XG4gICAgXG4gICAgaWYgKGN1cnNvclBvcyA9PT0gbnVsbCB8fCBjdXJzb3JQb3MgPT09IDApIHtcbiAgICAgIC8vIElmIGN1cnNvciBpcyBhdCBzdGFydCBvciBjYW4ndCBkZXRlcm1pbmUgcG9zaXRpb24sIG1vdmUgYWxsIGNvbnRlbnRcbiAgICAgIGNvbnNvbGUubG9nKCdnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBhdCBzdGFydCBvciBudWxsLCBtb3ZpbmcgYWxsIGNvbnRlbnQnKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJlZm9yZTogJycsXG4gICAgICAgIGFmdGVyOiBlZGl0YWJsZUVsZW1lbnQuaW5uZXJIVE1MXG4gICAgICB9O1xuICAgIH1cbiAgICBcbiAgICAvLyBGb3IgSFRNTCBjb250ZW50LCBzcGxpdCB1c2luZyByYW5nZXMgdG8gcHJlc2VydmUgZm9ybWF0dGluZ1xuICAgIGNvbnN0IGJlZm9yZVJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICBjb25zdCBhZnRlclJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICBcbiAgICAvLyBCZWZvcmUgcmFuZ2U6IGZyb20gc3RhcnQgb2YgZWxlbWVudCB0byBjdXJzb3JcbiAgICBiZWZvcmVSYW5nZS5zZXRTdGFydChlZGl0YWJsZUVsZW1lbnQsIDApO1xuICAgIGJlZm9yZVJhbmdlLnNldEVuZChzZWxlY3Rpb25JbmZvLnN0YXJ0Q29udGFpbmVyLCBzZWxlY3Rpb25JbmZvLnN0YXJ0T2Zmc2V0KTtcbiAgICBcbiAgICAvLyBBZnRlciByYW5nZTogZnJvbSBjdXJzb3IgdG8gZW5kIG9mIGVsZW1lbnRcbiAgICBhZnRlclJhbmdlLnNldFN0YXJ0KHNlbGVjdGlvbkluZm8uc3RhcnRDb250YWluZXIsIHNlbGVjdGlvbkluZm8uc3RhcnRPZmZzZXQpO1xuICAgIGFmdGVyUmFuZ2Uuc2V0RW5kKGVkaXRhYmxlRWxlbWVudCwgZWRpdGFibGVFbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoKTtcbiAgICBcbiAgICAvLyBFeHRyYWN0IEhUTUwgY29udGVudFxuICAgIGNvbnN0IGJlZm9yZUZyYWdtZW50ID0gYmVmb3JlUmFuZ2UuY2xvbmVDb250ZW50cygpO1xuICAgIGNvbnN0IGFmdGVyRnJhZ21lbnQgPSBhZnRlclJhbmdlLmNsb25lQ29udGVudHMoKTtcbiAgICBcbiAgICAvLyBDb252ZXJ0IHRvIEhUTUwgc3RyaW5nc1xuICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0ZW1wRGl2LmFwcGVuZENoaWxkKGJlZm9yZUZyYWdtZW50KTtcbiAgICBjb25zdCBiZWZvcmVIdG1sID0gdGVtcERpdi5pbm5lckhUTUw7XG4gICAgXG4gICAgdGVtcERpdi5pbm5lckhUTUwgPSAnJztcbiAgICB0ZW1wRGl2LmFwcGVuZENoaWxkKGFmdGVyRnJhZ21lbnQpO1xuICAgIGNvbnN0IGFmdGVySHRtbCA9IHRlbXBEaXYuaW5uZXJIVE1MO1xuICAgIFxuICAgIGNvbnNvbGUubG9nKCdnZXRTcGxpdENvbnRlbnQ6IEZpbmFsIHNwbGl0IHJlc3VsdDonLCB7XG4gICAgICBjdXJzb3JQb3MsXG4gICAgICBiZWZvcmVIdG1sLFxuICAgICAgYmVmb3JlTGVuZ3RoOiBiZWZvcmVIdG1sLmxlbmd0aCxcbiAgICAgIGJlZm9yZUh0bWxQcmV2aWV3OiBiZWZvcmVIdG1sLnN1YnN0cmluZygwLCAxMDApICsgKGJlZm9yZUh0bWwubGVuZ3RoID4gMTAwID8gJy4uLicgOiAnJyksXG4gICAgICBhZnRlckh0bWwsXG4gICAgICBhZnRlckxlbmd0aDogYWZ0ZXJIdG1sLmxlbmd0aCxcbiAgICAgIGFmdGVySHRtbFByZXZpZXc6IGFmdGVySHRtbC5zdWJzdHJpbmcoMCwgMTAwKSArIChhZnRlckh0bWwubGVuZ3RoID4gMTAwID8gJy4uLicgOiAnJylcbiAgICB9KTtcbiAgICBcbiAgICByZXR1cm4geyBcbiAgICAgIGJlZm9yZTogYmVmb3JlSHRtbCwgXG4gICAgICBhZnRlcjogYWZ0ZXJIdG1sIFxuICAgIH07XG4gIH1cbiAgXG59XG4iLCAiaW1wb3J0IHsgRGVlc0lucHV0QmFzZSB9IGZyb20gJy4uL2RlZXMtaW5wdXQtYmFzZS9kZWVzLWlucHV0LWJhc2UuanMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuLi9kZWVzLWlucHV0LXd5c2l3eWcuZGVtby5qcyc7XG5pbXBvcnQgeyBEZWVzTW9kYWwgfSBmcm9tICcuLi8uLi9kZWVzLW1vZGFsL2RlZXMtbW9kYWwuanMnO1xuXG5pbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBwcm9wZXJ0eSxcbiAgc3RhdGljIGFzIGh0bWwsXG4gIGNzc01hbmFnZXIsXG4gIHN0YXRlLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQge1xuICB0eXBlIElCbG9jayxcbiAgdHlwZSBPdXRwdXRGb3JtYXQsXG4gIHd5c2l3eWdTdHlsZXMsXG4gIFd5c2l3eWdDb252ZXJ0ZXJzLFxuICBXeXNpd3lnU2hvcnRjdXRzLFxuICBXeXNpd3lnRm9ybWF0dGluZyxcbiAgV3lzaXd5Z0Jsb2NrT3BlcmF0aW9ucyxcbiAgV3lzaXd5Z0lucHV0SGFuZGxlcixcbiAgV3lzaXd5Z0tleWJvYXJkSGFuZGxlcixcbiAgV3lzaXd5Z0RyYWdEcm9wSGFuZGxlcixcbiAgV3lzaXd5Z01vZGFsTWFuYWdlcixcbiAgV3lzaXd5Z0hpc3RvcnksXG4gIFd5c2l3eWdTZWxlY3Rpb24sXG4gIERlZXNTbGFzaE1lbnUsXG4gIERlZXNGb3JtYXR0aW5nTWVudVxufSBmcm9tICcuL2luZGV4LmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWlucHV0LXd5c2l3eWcnOiBEZWVzSW5wdXRXeXNpd3lnO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWlucHV0LXd5c2l3eWcnKVxuZXhwb3J0IGNsYXNzIERlZXNJbnB1dFd5c2l3eWcgZXh0ZW5kcyBEZWVzSW5wdXRCYXNlPHN0cmluZz4ge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnSW5wdXQnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciB2YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0ID0gJ2h0bWwnO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGJsb2NrczogSUJsb2NrW10gPSBbXG4gICAge1xuICAgICAgaWQ6IFd5c2l3eWdTaG9ydGN1dHMuZ2VuZXJhdGVCbG9ja0lkKCksXG4gICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgIGNvbnRlbnQ6ICcnLFxuICAgIH1cbiAgXTtcblxuICAvLyBOb3QgdXNpbmcgQHN0YXRlIHRvIGF2b2lkIHJlLXJlbmRlcnMgd2hlbiBzZWxlY3Rpb24gY2hhbmdlc1xuICBwdWJsaWMgc2VsZWN0ZWRCbG9ja0lkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvLyBTbGFzaCBtZW51IGlzIG5vdyBnbG9iYWxseSByZW5kZXJlZFxuICBwdWJsaWMgc2xhc2hNZW51ID0gRGVlc1NsYXNoTWVudS5nZXRJbnN0YW5jZSgpO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGRyYWdnZWRCbG9ja0lkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBkcmFnT3ZlckJsb2NrSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGRyYWdPdmVyUG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJyB8IG51bGwgPSBudWxsO1xuXG4gIC8vIEZvcm1hdHRpbmcgbWVudSBpcyBub3cgZ2xvYmFsbHkgcmVuZGVyZWRcbiAgcHVibGljIGZvcm1hdHRpbmdNZW51ID0gRGVlc0Zvcm1hdHRpbmdNZW51LmdldEluc3RhbmNlKCk7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3Igc2VsZWN0ZWRUZXh0OiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgZWRpdG9yQ29udGVudFJlZjogSFRNTERpdkVsZW1lbnQ7XG4gIHB1YmxpYyBpc0NvbXBvc2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBcbiAgLy8gSGFuZGxlciBpbnN0YW5jZXNcbiAgcHVibGljIGJsb2NrT3BlcmF0aW9uczogV3lzaXd5Z0Jsb2NrT3BlcmF0aW9ucztcbiAgcHJpdmF0ZSBpbnB1dEhhbmRsZXI6IFd5c2l3eWdJbnB1dEhhbmRsZXI7XG4gIHByaXZhdGUga2V5Ym9hcmRIYW5kbGVyOiBXeXNpd3lnS2V5Ym9hcmRIYW5kbGVyO1xuICBwcml2YXRlIGRyYWdEcm9wSGFuZGxlcjogV3lzaXd5Z0RyYWdEcm9wSGFuZGxlcjtcbiAgcHJpdmF0ZSBoaXN0b3J5OiBXeXNpd3lnSGlzdG9yeTtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgLi4uRGVlc0lucHV0QmFzZS5iYXNlU3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICB3eXNpd3lnU3R5bGVzXG4gIF07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBJbml0aWFsaXplIGhhbmRsZXJzXG4gICAgdGhpcy5ibG9ja09wZXJhdGlvbnMgPSBuZXcgV3lzaXd5Z0Jsb2NrT3BlcmF0aW9ucyh0aGlzKTtcbiAgICB0aGlzLmlucHV0SGFuZGxlciA9IG5ldyBXeXNpd3lnSW5wdXRIYW5kbGVyKHRoaXMpO1xuICAgIHRoaXMua2V5Ym9hcmRIYW5kbGVyID0gbmV3IFd5c2l3eWdLZXlib2FyZEhhbmRsZXIodGhpcyk7XG4gICAgdGhpcy5kcmFnRHJvcEhhbmRsZXIgPSBuZXcgV3lzaXd5Z0RyYWdEcm9wSGFuZGxlcih0aGlzKTtcbiAgICB0aGlzLmhpc3RvcnkgPSBuZXcgV3lzaXd5Z0hpc3RvcnkoKTtcbiAgfVxuXG4gIGFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGF3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gIH1cblxuICBhc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIC8vIFNlbGVjdGlvbiBsaXN0ZW5lcnMgYXJlIG5vdyBoYW5kbGVkIGF0IGJsb2NrIGxldmVsXG4gICAgLy8gQ2xlYW4gdXAgaGFuZGxlcnNcbiAgICB0aGlzLmlucHV0SGFuZGxlcj8uZGVzdHJveSgpO1xuICAgIC8vIENsZWFuIHVwIGJsdXIgdGltZW91dFxuICAgIGlmICh0aGlzLmJsdXJUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5ibHVyVGltZW91dCk7XG4gICAgICB0aGlzLmJsdXJUaW1lb3V0ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBmaXJzdFVwZGF0ZWQoKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS50cmltKCkubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcGFyc2VkQmxvY2tzID1cbiAgICAgICAgdGhpcy5vdXRwdXRGb3JtYXQgPT09ICdodG1sJ1xuICAgICAgICAgID8gV3lzaXd5Z0NvbnZlcnRlcnMucGFyc2VIdG1sVG9CbG9ja3ModGhpcy52YWx1ZSlcbiAgICAgICAgICA6IFd5c2l3eWdDb252ZXJ0ZXJzLnBhcnNlTWFya2Rvd25Ub0Jsb2Nrcyh0aGlzLnZhbHVlKTtcblxuICAgICAgaWYgKHBhcnNlZEJsb2Nrcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuYmxvY2tzID0gcGFyc2VkQmxvY2tzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICB0aGlzLmVkaXRvckNvbnRlbnRSZWYgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5lZGl0b3ItY29udGVudCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIFxuICAgIC8vIEFkZCBjbGljayBoYW5kbGVyIHRvIGVkaXRvciBjb250ZW50XG4gICAgaWYgKHRoaXMuZWRpdG9yQ29udGVudFJlZikge1xuICAgICAgdGhpcy5lZGl0b3JDb250ZW50UmVmLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHRoaXMuaGFuZGxlRWRpdG9yQ2xpY2soZSkpO1xuICAgIH1cbiAgICBcbiAgICAvLyBXZSBub3cgcmVseSBvbiBibG9jay1sZXZlbCBzZWxlY3Rpb24gZGV0ZWN0aW9uXG4gICAgLy8gTm8gZ2xvYmFsIHNlbGVjdGlvbiBsaXN0ZW5lciBuZWVkZWRcbiAgICBcbiAgICAvLyBMaXN0ZW4gZm9yIGN1c3RvbSBzZWxlY3Rpb24gZXZlbnRzIGZyb20gYmxvY2tzXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdibG9jay10ZXh0LXNlbGVjdGVkJywgKGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICBcbiAgICAgIGlmICghdGhpcy5zbGFzaE1lbnUudmlzaWJsZSAmJiBlLmRldGFpbC5oYXNTZWxlY3Rpb24gJiYgZS5kZXRhaWwudGV4dC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUZXh0ID0gZS5kZXRhaWwudGV4dDtcbiAgICAgICAgXG4gICAgICAgIC8vIFVzZSB0aGUgcmVjdCBmcm9tIHRoZSBldmVudCBpZiBhdmFpbGFibGVcbiAgICAgICAgaWYgKGUuZGV0YWlsLnJlY3QpIHtcbiAgICAgICAgICBjb25zdCBjb29yZHMgPSB7XG4gICAgICAgICAgICB4OiBlLmRldGFpbC5yZWN0LmxlZnQgKyAoZS5kZXRhaWwucmVjdC53aWR0aCAvIDIpLFxuICAgICAgICAgICAgeTogTWF0aC5tYXgoNDUsIGUuZGV0YWlsLnJlY3QudG9wIC0gNDUpXG4gICAgICAgICAgfTtcbiAgICAgICAgICBcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTaG93IHRoZSBmb3JtYXR0aW5nIG1lbnUgYXQgdGhlIGNhbGN1bGF0ZWQgcG9zaXRpb25cbiAgICAgICAgICB0aGlzLmZvcm1hdHRpbmdNZW51LnNob3coXG4gICAgICAgICAgICBjb29yZHMsXG4gICAgICAgICAgICBhc3luYyAoY29tbWFuZDogc3RyaW5nKSA9PiBhd2FpdCB0aGlzLmFwcGx5Rm9ybWF0KGNvbW1hbmQpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIEhpZGUgZm9ybWF0dGluZyBtZW51IHdoZW4gY2xpY2tpbmcgb3V0c2lkZVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIChlKSA9PiB7XG4gICAgICAvLyBDaGVjayBpZiBjbGljayBpcyBvbiB0aGUgZm9ybWF0dGluZyBtZW51IGl0c2VsZlxuICAgICAgY29uc3QgZm9ybWF0dGluZ01lbnVFbGVtZW50ID0gdGhpcy5mb3JtYXR0aW5nTWVudS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuZm9ybWF0dGluZy1tZW51Jyk7XG4gICAgICBpZiAoZm9ybWF0dGluZ01lbnVFbGVtZW50ICYmIGZvcm1hdHRpbmdNZW51RWxlbWVudC5jb250YWlucyhlLnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIENoZWNrIGlmIHdlIGhhdmUgYW4gYWN0aXZlIHNlbGVjdGlvblxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24udG9TdHJpbmcoKS50cmltKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyBEb24ndCBoaWRlIGlmIHdlIHN0aWxsIGhhdmUgYSBzZWxlY3Rpb25cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBIaWRlIHRoZSBtZW51XG4gICAgICBpZiAodGhpcy5mb3JtYXR0aW5nTWVudS52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMuaGlkZUZvcm1hdHRpbmdNZW51KCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgLy8gQWRkIGdsb2JhbCBrZXlib2FyZCBsaXN0ZW5lciBmb3IgdW5kby9yZWRvXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBldmVudCBpcyBmcm9tIHdpdGhpbiBvdXIgZWRpdG9yXG4gICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmICghdGhpcy5jb250YWlucyh0YXJnZXQpICYmICF0aGlzLnNoYWRvd1Jvb3Q/LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBIYW5kbGUgdW5kby9yZWRvXG4gICAgICBpZiAoKGUubWV0YUtleSB8fCBlLmN0cmxLZXkpICYmICFlLnNoaWZ0S2V5ICYmIGUua2V5ID09PSAneicpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnVuZG8oKTtcbiAgICAgIH0gZWxzZSBpZiAoKGUubWV0YUtleSB8fCBlLmN0cmxLZXkpICYmIGUuc2hpZnRLZXkgJiYgZS5rZXkgPT09ICd6Jykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMucmVkbygpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIFNhdmUgaW5pdGlhbCBzdGF0ZSB0byBoaXN0b3J5XG4gICAgdGhpcy5oaXN0b3J5LnNhdmVTdGF0ZSh0aGlzLmJsb2NrcywgdGhpcy5zZWxlY3RlZEJsb2NrSWQpO1xuICAgIFxuICAgIC8vIFJlbmRlciBibG9ja3MgcHJvZ3JhbW1hdGljYWxseVxuICAgIHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpO1xuICB9XG4gIFxuICAvKipcbiAgICogUmVuZGVycyBhbGwgYmxvY2tzIHByb2dyYW1tYXRpY2FsbHkgd2l0aG91dCB0cmlnZ2VyaW5nIHJlLXJlbmRlcnNcbiAgICovXG4gIHB1YmxpYyByZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCkge1xuICAgIGlmICghdGhpcy5lZGl0b3JDb250ZW50UmVmKSByZXR1cm47XG4gICAgXG4gICAgLy8gQ2xlYXIgZXhpc3RpbmcgYmxvY2tzXG4gICAgdGhpcy5lZGl0b3JDb250ZW50UmVmLmlubmVySFRNTCA9ICcnO1xuICAgIFxuICAgIC8vIENyZWF0ZSBhbmQgYXBwZW5kIGJsb2NrIGVsZW1lbnRzXG4gICAgdGhpcy5ibG9ja3MuZm9yRWFjaChibG9jayA9PiB7XG4gICAgICBjb25zdCBibG9ja1dyYXBwZXIgPSB0aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChibG9jayk7XG4gICAgICB0aGlzLmVkaXRvckNvbnRlbnRSZWYuYXBwZW5kQ2hpbGQoYmxvY2tXcmFwcGVyKTtcbiAgICB9KTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBibG9jayBlbGVtZW50IHByb2dyYW1tYXRpY2FsbHlcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVCbG9ja0VsZW1lbnQoYmxvY2s6IElCbG9jayk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgd3JhcHBlci5jbGFzc05hbWUgPSAnYmxvY2std3JhcHBlcic7XG4gICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoJ2RhdGEtYmxvY2staWQnLCBibG9jay5pZCk7XG4gICAgXG4gICAgLy8gQWRkIGRyYWcgaGFuZGxlIGZvciBub24tZGl2aWRlciBibG9ja3NcbiAgICBpZiAoYmxvY2sudHlwZSAhPT0gJ2RpdmlkZXInKSB7XG4gICAgICBjb25zdCBkcmFnSGFuZGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBkcmFnSGFuZGxlLmNsYXNzTmFtZSA9ICdkcmFnLWhhbmRsZSc7XG4gICAgICBkcmFnSGFuZGxlLmRyYWdnYWJsZSA9IHRydWU7XG4gICAgICBkcmFnSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdzdGFydCcsIChlKSA9PiB0aGlzLmRyYWdEcm9wSGFuZGxlci5oYW5kbGVEcmFnU3RhcnQoZSwgYmxvY2spKTtcbiAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoZHJhZ0hhbmRsZSk7XG4gICAgfVxuICAgIFxuICAgIC8vIENyZWF0ZSB0aGUgYmxvY2sgY29tcG9uZW50XG4gICAgY29uc3QgYmxvY2tDb21wb25lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkZWVzLXd5c2l3eWctYmxvY2snKSBhcyBhbnk7XG4gICAgYmxvY2tDb21wb25lbnQuYmxvY2sgPSBibG9jaztcbiAgICBibG9ja0NvbXBvbmVudC5pc1NlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEJsb2NrSWQgPT09IGJsb2NrLmlkO1xuICAgIGJsb2NrQ29tcG9uZW50Lnd5c2l3eWdDb21wb25lbnQgPSB0aGlzOyAvLyBQYXNzIHBhcmVudCByZWZlcmVuY2VcbiAgICBibG9ja0NvbXBvbmVudC5oYW5kbGVycyA9IHtcbiAgICAgIG9uSW5wdXQ6IChlOiBJbnB1dEV2ZW50KSA9PiB0aGlzLmlucHV0SGFuZGxlci5oYW5kbGVCbG9ja0lucHV0KGUsIGJsb2NrKSxcbiAgICAgIG9uS2V5RG93bjogKGU6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMua2V5Ym9hcmRIYW5kbGVyLmhhbmRsZUJsb2NrS2V5RG93bihlLCBibG9jayksXG4gICAgICBvbkZvY3VzOiAoKSA9PiB0aGlzLmhhbmRsZUJsb2NrRm9jdXMoYmxvY2spLFxuICAgICAgb25CbHVyOiAoKSA9PiB0aGlzLmhhbmRsZUJsb2NrQmx1cihibG9jayksXG4gICAgICBvbkNvbXBvc2l0aW9uU3RhcnQ6ICgpID0+IHRoaXMuaXNDb21wb3NpbmcgPSB0cnVlLFxuICAgICAgb25Db21wb3NpdGlvbkVuZDogKCkgPT4gdGhpcy5pc0NvbXBvc2luZyA9IGZhbHNlLFxuICAgICAgb25Nb3VzZVVwOiAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5oYW5kbGVUZXh0U2VsZWN0aW9uKGUpLFxuICAgICAgb25SZXF1ZXN0VXBkYXRlOiAoKSA9PiB0aGlzLnVwZGF0ZUJsb2NrRWxlbWVudChibG9jay5pZCksXG4gICAgfTtcbiAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGJsb2NrQ29tcG9uZW50KTtcbiAgICBcbiAgICAvLyBSZW1vdmUgc2V0dGluZ3MgYnV0dG9uIC0gY29udGV4dCBtZW51IHdpbGwgaGFuZGxlIHRoaXNcbiAgICBcbiAgICAvLyBBZGQgZHJhZyBldmVudCBsaXN0ZW5lcnNcbiAgICB3cmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgKGUpID0+IHRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyYWdPdmVyKGUsIGJsb2NrKSk7XG4gICAgd3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgKGUpID0+IHRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyb3AoZSwgYmxvY2spKTtcbiAgICB3cmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsICgpID0+IHRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyYWdMZWF2ZShibG9jaykpO1xuICAgIFxuICAgIHJldHVybiB3cmFwcGVyO1xuICB9XG4gIFxuICAvKipcbiAgICogVXBkYXRlcyBhIHNwZWNpZmljIGJsb2NrIGVsZW1lbnRcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVCbG9ja0VsZW1lbnQoYmxvY2tJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgYmxvY2sgPSB0aGlzLmJsb2Nrcy5maW5kKGIgPT4gYi5pZCA9PT0gYmxvY2tJZCk7XG4gICAgaWYgKCFibG9jaykgcmV0dXJuO1xuICAgIFxuICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9XCIke2Jsb2NrSWR9XCJdYCk7XG4gICAgaWYgKCF3cmFwcGVyKSByZXR1cm47XG4gICAgXG4gICAgLy8gUmVwbGFjZSB3aXRoIG5ldyBlbGVtZW50XG4gICAgY29uc3QgbmV3V3JhcHBlciA9IHRoaXMuY3JlYXRlQmxvY2tFbGVtZW50KGJsb2NrKTtcbiAgICB3cmFwcGVyLnJlcGxhY2VXaXRoKG5ld1dyYXBwZXIpO1xuICB9XG5cblxuICByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRlZXMtbGFiZWxcbiAgICAgICAgLmxhYmVsPVwiJHt0aGlzLmxhYmVsfVwiXG4gICAgICAgIC5kZXNjcmlwdGlvbj1cIiR7dGhpcy5kZXNjcmlwdGlvbn1cIlxuICAgICAgICAucmVxdWlyZWQ9XCIke3RoaXMucmVxdWlyZWR9XCJcbiAgICAgID48L2RlZXMtbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwid3lzaXd5Zy1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICBjbGFzcz1cImVkaXRvci1jb250ZW50ICR7dGhpcy5kcmFnZ2VkQmxvY2tJZCA/ICdkcmFnZ2luZycgOiAnJ31cIlxuICAgICAgICAgIGlkPVwiZWRpdG9yLWNvbnRlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgPCEtLSBCbG9ja3Mgd2lsbCBiZSByZW5kZXJlZCBwcm9ncmFtbWF0aWNhbGx5IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICAvLyBPbGQgcmVuZGVyQmxvY2sgbWV0aG9kIHJlbW92ZWQgLSB1c2luZyBwcm9ncmFtbWF0aWMgcmVuZGVyaW5nIGluc3RlYWRcblxuXG5cblxuICBwdWJsaWMgaGFuZGxlU2xhc2hNZW51S2V5Ym9hcmQoZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaChlLmtleSkge1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnNsYXNoTWVudS5uYXZpZ2F0ZSgnZG93bicpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCd1cCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnNsYXNoTWVudS5zZWxlY3RDdXJyZW50KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmNsb3NlU2xhc2hNZW51KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2VTbGFzaE1lbnUoY2xlYXJTbGFzaDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKGNsZWFyU2xhc2ggJiYgdGhpcy5zZWxlY3RlZEJsb2NrSWQpIHtcbiAgICAgIC8vIENsZWFyIHRoZSBzbGFzaCBjb21tYW5kIGZyb20gdGhlIGNvbnRlbnQgaWYgbWVudSBpcyBjbG9zaW5nIHdpdGhvdXQgc2VsZWN0aW9uXG4gICAgICBjb25zdCBjdXJyZW50QmxvY2sgPSB0aGlzLmJsb2Nrcy5maW5kKGIgPT4gYi5pZCA9PT0gdGhpcy5zZWxlY3RlZEJsb2NrSWQpO1xuICAgICAgaWYgKGN1cnJlbnRCbG9jaykge1xuICAgICAgICBjb25zdCB3cmFwcGVyRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9XCIke2N1cnJlbnRCbG9jay5pZH1cIl1gKTtcbiAgICAgICAgY29uc3QgYmxvY2tDb21wb25lbnQgPSB3cmFwcGVyRWxlbWVudD8ucXVlcnlTZWxlY3RvcignZGVlcy13eXNpd3lnLWJsb2NrJykgYXMgYW55O1xuICAgICAgICBcbiAgICAgICAgaWYgKGJsb2NrQ29tcG9uZW50KSB7XG4gICAgICAgICAgY29uc3QgY29udGVudCA9IGJsb2NrQ29tcG9uZW50LmdldENvbnRlbnQoKTtcbiAgICAgICAgICBpZiAoY29udGVudC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgZW50aXJlIHNsYXNoIGNvbW1hbmQgKHNsYXNoICsgYW55IGZpbHRlciB0ZXh0KVxuICAgICAgICAgICAgY29uc3QgY2xlYW5Db250ZW50ID0gY29udGVudC5yZXBsYWNlKC9eXFwvW15cXHNdKlxccyovLCAnJykudHJpbSgpO1xuICAgICAgICAgICAgYmxvY2tDb21wb25lbnQuc2V0Q29udGVudChjbGVhbkNvbnRlbnQpO1xuICAgICAgICAgICAgY3VycmVudEJsb2NrLmNvbnRlbnQgPSBjbGVhbkNvbnRlbnQ7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIEZvY3VzIGFuZCBzZXQgY3Vyc29yIGF0IGJlZ2lubmluZ1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgYmxvY2tDb21wb25lbnQuZm9jdXNXaXRoQ3Vyc29yKDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHRoaXMuc2xhc2hNZW51LmhpZGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQmxvY2tGb2N1cyhibG9jazogSUJsb2NrKSB7XG4gICAgLy8gQ2xlYXIgYW55IHBlbmRpbmcgYmx1ciB0aW1lb3V0IHdoZW4gZm9jdXNpbmdcbiAgICBpZiAodGhpcy5ibHVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpO1xuICAgICAgdGhpcy5ibHVyVGltZW91dCA9IG51bGw7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IHByZXZTZWxlY3RlZElkID0gdGhpcy5zZWxlY3RlZEJsb2NrSWQ7XG4gICAgdGhpcy5zZWxlY3RlZEJsb2NrSWQgPSBibG9jay5pZDtcbiAgICBcbiAgICAvLyBPbmx5IHVwZGF0ZSBzZWxlY3Rpb24gVUkgaWYgaXQgY2hhbmdlZFxuICAgIGlmIChwcmV2U2VsZWN0ZWRJZCAhPT0gYmxvY2suaWQpIHtcbiAgICAgIC8vIFVwZGF0ZSB0aGUgcHJldmlvdXMgYmxvY2sncyBzZWxlY3Rpb24gc3RhdGVcbiAgICAgIGlmIChwcmV2U2VsZWN0ZWRJZCkge1xuICAgICAgICBjb25zdCBwcmV2V3JhcHBlciA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9XCIke3ByZXZTZWxlY3RlZElkfVwiXWApO1xuICAgICAgICBjb25zdCBwcmV2QmxvY2tDb21wb25lbnQgPSBwcmV2V3JhcHBlcj8ucXVlcnlTZWxlY3RvcignZGVlcy13eXNpd3lnLWJsb2NrJykgYXMgYW55O1xuICAgICAgICBpZiAocHJldkJsb2NrQ29tcG9uZW50KSB7XG4gICAgICAgICAgcHJldkJsb2NrQ29tcG9uZW50LmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBVcGRhdGUgdGhlIG5ldyBibG9jaydzIHNlbGVjdGlvbiBzdGF0ZVxuICAgICAgY29uc3Qgd3JhcHBlciA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9XCIke2Jsb2NrLmlkfVwiXWApO1xuICAgICAgY29uc3QgYmxvY2tDb21wb25lbnQgPSB3cmFwcGVyPy5xdWVyeVNlbGVjdG9yKCdkZWVzLXd5c2l3eWctYmxvY2snKSBhcyBhbnk7XG4gICAgICBpZiAoYmxvY2tDb21wb25lbnQpIHtcbiAgICAgICAgYmxvY2tDb21wb25lbnQuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBibHVyVGltZW91dDogYW55ID0gbnVsbDtcbiAgXG4gIHByaXZhdGUgaGFuZGxlQmxvY2tCbHVyKGJsb2NrOiBJQmxvY2spIHtcbiAgICAvLyBDbGVhciBhbnkgZXhpc3RpbmcgYmx1ciB0aW1lb3V0XG4gICAgaWYgKHRoaXMuYmx1clRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KTtcbiAgICB9XG4gICAgXG4gICAgLy8gRG9uJ3QgdXBkYXRlIHZhbHVlIGlmIHNsYXNoIG1lbnUgaXMgdmlzaWJsZVxuICAgIGlmICh0aGlzLnNsYXNoTWVudS52aXNpYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIFN5bmMgY29udGVudCBmcm9tIHRoZSBibG9jayB0aGF0J3MgbG9zaW5nIGZvY3VzXG4gICAgY29uc3Qgd3JhcHBlckVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPVwiJHtibG9jay5pZH1cIl1gKTtcbiAgICBjb25zdCBibG9ja0NvbXBvbmVudCA9IHdyYXBwZXJFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCdkZWVzLXd5c2l3eWctYmxvY2snKSBhcyBhbnk7XG4gICAgXG4gICAgaWYgKGJsb2NrQ29tcG9uZW50ICYmIGJsb2NrQ29tcG9uZW50LmdldENvbnRlbnQpIHtcbiAgICAgIGNvbnN0IG5ld0NvbnRlbnQgPSBibG9ja0NvbXBvbmVudC5nZXRDb250ZW50KCk7XG4gICAgICAvLyBPbmx5IHVwZGF0ZSBpZiBjb250ZW50IGFjdHVhbGx5IGNoYW5nZWRcbiAgICAgIGlmIChibG9jay5jb250ZW50ICE9PSBuZXdDb250ZW50KSB7XG4gICAgICAgIGJsb2NrLmNvbnRlbnQgPSBuZXdDb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBEZWxheSB0aGUgYmx1ciBoYW5kbGluZyB0byBhdm9pZCBpbnRlcmZlcmluZyB3aXRoIHR5cGluZ1xuICAgIHRoaXMuYmx1clRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIENoZWNrIGlmIHdlJ3ZlIHJlZm9jdXNlZCBvbiBhbm90aGVyIGJsb2NrXG4gICAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50O1xuICAgICAgY29uc3QgaXNCbG9ja0ZvY3VzZWQgPSBhY3RpdmVFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoJ2Jsb2NrJyk7XG4gICAgICBcbiAgICAgIGlmICghaXNCbG9ja0ZvY3VzZWQpIHtcbiAgICAgICAgLy8gT25seSB1cGRhdGUgdmFsdWUgaWYgd2UncmUgdHJ1bHkgYmx1cnJpbmcgYXdheSBmcm9tIGFsbCBibG9ja3NcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gICAgXG4gICAgLy8gRG9uJ3QgaW1tZWRpYXRlbHkgY2xlYXIgc2VsZWN0ZWRCbG9ja0lkIG9yIGNsb3NlIG1lbnVzXG4gICAgLy8gTGV0IGNsaWNrIGhhbmRsZXJzIGRlY2lkZSB3aGF0IHRvIGRvXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVkaXRvckNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBcbiAgICAvLyBDbG9zZSBzbGFzaCBtZW51IGlmIGNsaWNraW5nIG91dHNpZGUgb2YgaXRcbiAgICBpZiAodGhpcy5zbGFzaE1lbnUudmlzaWJsZSkge1xuICAgICAgdGhpcy5jbG9zZVNsYXNoTWVudSh0cnVlKTtcbiAgICB9XG4gICAgXG4gICAgLy8gRm9jdXMgbGFzdCBibG9jayBpZiBjbGlja2luZyBvbiBlbXB0eSBlZGl0b3IgYXJlYVxuICAgIGlmICh0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdlZGl0b3ItY29udGVudCcpKSB7XG4gICAgICBjb25zdCBsYXN0QmxvY2sgPSB0aGlzLmJsb2Nrc1t0aGlzLmJsb2Nrcy5sZW5ndGggLSAxXTtcbiAgICAgIHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2sobGFzdEJsb2NrLmlkLCBsYXN0QmxvY2sudHlwZSA9PT0gJ2RpdmlkZXInIHx8IGxhc3RCbG9jay50eXBlID09PSAnaW1hZ2UnID8gdW5kZWZpbmVkIDogJ2VuZCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTmV3QmxvY2sodHlwZTogSUJsb2NrWyd0eXBlJ10gPSAncGFyYWdyYXBoJywgY29udGVudDogc3RyaW5nID0gJycsIG1ldGFkYXRhPzogYW55KTogSUJsb2NrIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IFd5c2l3eWdTaG9ydGN1dHMuZ2VuZXJhdGVCbG9ja0lkKCksXG4gICAgICB0eXBlLFxuICAgICAgY29udGVudCxcbiAgICAgIC4uLihtZXRhZGF0YSAmJiB7IG1ldGFkYXRhIH0pXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW5zZXJ0QmxvY2tBZnRlcihhZnRlckJsb2NrOiBJQmxvY2ssIG5ld0Jsb2NrOiBJQmxvY2ssIGZvY3VzTmV3QmxvY2s6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmxvY2tJbmRleCA9IHRoaXMuYmxvY2tzLmZpbmRJbmRleChiID0+IGIuaWQgPT09IGFmdGVyQmxvY2suaWQpO1xuICAgIHRoaXMuYmxvY2tzID0gWy4uLnRoaXMuYmxvY2tzLnNsaWNlKDAsIGJsb2NrSW5kZXggKyAxKSwgbmV3QmxvY2ssIC4uLnRoaXMuYmxvY2tzLnNsaWNlKGJsb2NrSW5kZXggKyAxKV07XG4gICAgXG4gICAgLy8gSW5zZXJ0IHRoZSBuZXcgYmxvY2sgZWxlbWVudCBwcm9ncmFtbWF0aWNhbGx5XG4gICAgY29uc3QgYWZ0ZXJXcmFwcGVyID0gdGhpcy5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPVwiJHthZnRlckJsb2NrLmlkfVwiXWApO1xuICAgIGlmIChhZnRlcldyYXBwZXIpIHtcbiAgICAgIGNvbnN0IG5ld1dyYXBwZXIgPSB0aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChuZXdCbG9jayk7XG4gICAgICBhZnRlcldyYXBwZXIuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmVuZCcsIG5ld1dyYXBwZXIpO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gICAgXG4gICAgaWYgKGZvY3VzTmV3QmxvY2sgJiYgbmV3QmxvY2sudHlwZSAhPT0gJ2RpdmlkZXInKSB7XG4gICAgICAvLyBHaXZlIERPTSB0aW1lIHRvIHNldHRsZVxuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDApKTtcbiAgICAgIGF3YWl0IHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2sobmV3QmxvY2suaWQsICdzdGFydCcpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbnNlcnRCbG9jayh0eXBlOiBJQmxvY2tbJ3R5cGUnXSkge1xuICAgIGNvbnN0IGN1cnJlbnRCbG9jayA9IHRoaXMuYmxvY2tzLmZpbmQoYiA9PiBiLmlkID09PSB0aGlzLnNlbGVjdGVkQmxvY2tJZCk7XG4gICAgXG4gICAgaWYgKCFjdXJyZW50QmxvY2spIHtcbiAgICAgIHRoaXMuY2xvc2VTbGFzaE1lbnUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIGJsb2NrIGNvbXBvbmVudCB0byBleHRyYWN0IGNsZWFuIGNvbnRlbnRcbiAgICBjb25zdCB3cmFwcGVyRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9XCIke2N1cnJlbnRCbG9jay5pZH1cIl1gKTtcbiAgICBjb25zdCBibG9ja0NvbXBvbmVudCA9IHdyYXBwZXJFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCdkZWVzLXd5c2l3eWctYmxvY2snKSBhcyBhbnk7XG4gICAgXG4gICAgLy8gQ2xlYXIgdGhlIHNsYXNoIGNvbW1hbmQgZnJvbSB0aGUgY29udGVudCBiZWZvcmUgdHJhbnNmb3JtaW5nXG4gICAgaWYgKGJsb2NrQ29tcG9uZW50KSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gYmxvY2tDb21wb25lbnQuZ2V0Q29udGVudCgpO1xuICAgICAgaWYgKGNvbnRlbnQuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgc2xhc2ggYW5kIGFueSBmaWx0ZXIgdGV4dCAoaW5jbHVkaW5nIG5vbi13b3JkIGNoYXJhY3RlcnMpXG4gICAgICAgIGNvbnN0IGNsZWFuQ29udGVudCA9IGNvbnRlbnQucmVwbGFjZSgvXlxcL1teXFxzXSpcXHMqLywgJycpLnRyaW0oKTtcbiAgICAgICAgYmxvY2tDb21wb25lbnQuc2V0Q29udGVudChjbGVhbkNvbnRlbnQpO1xuICAgICAgICBjdXJyZW50QmxvY2suY29udGVudCA9IGNsZWFuQ29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gQ2xvc2UgbWVudVxuICAgIHRoaXMuY2xvc2VTbGFzaE1lbnUoZmFsc2UpO1xuICAgIFxuICAgIC8vIElmIGl0J3MgYSBjb2RlIGJsb2NrLCBkZWZhdWx0IHRvIFR5cGVTY3JpcHRcbiAgICBpZiAodHlwZSA9PT0gJ2NvZGUnKSB7XG4gICAgICBjdXJyZW50QmxvY2subWV0YWRhdGEgPSB7IGxhbmd1YWdlOiAndHlwZXNjcmlwdCcgfTtcbiAgICB9XG4gICAgXG4gICAgLy8gVHJhbnNmb3JtIHRoZSBjdXJyZW50IGJsb2NrXG4gICAgY3VycmVudEJsb2NrLnR5cGUgPSB0eXBlO1xuICAgIGN1cnJlbnRCbG9jay5jb250ZW50ID0gY3VycmVudEJsb2NrLmNvbnRlbnQgfHwgJyc7XG4gICAgXG4gICAgaWYgKHR5cGUgPT09ICdkaXZpZGVyJykge1xuICAgICAgY3VycmVudEJsb2NrLmNvbnRlbnQgPSAnICc7XG4gICAgICBjb25zdCBuZXdCbG9jayA9IHRoaXMuY3JlYXRlTmV3QmxvY2soKTtcbiAgICAgIHRoaXMuaW5zZXJ0QmxvY2tBZnRlcihjdXJyZW50QmxvY2ssIG5ld0Jsb2NrKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdsaXN0Jykge1xuICAgICAgY3VycmVudEJsb2NrLm1ldGFkYXRhID0geyBsaXN0VHlwZTogJ2J1bGxldCcgfTtcbiAgICAgIC8vIEZvciBsaXN0cywgZW5zdXJlIHdlIHN0YXJ0IHdpdGggZW1wdHkgY29udGVudFxuICAgICAgY3VycmVudEJsb2NrLmNvbnRlbnQgPSAnJztcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgIC8vIEZvciBpbWFnZSBibG9ja3MsIGNsZWFyIGNvbnRlbnQgYW5kIHNldCBlbXB0eSBtZXRhZGF0YVxuICAgICAgY3VycmVudEJsb2NrLmNvbnRlbnQgPSAnJztcbiAgICAgIGN1cnJlbnRCbG9jay5tZXRhZGF0YSA9IHsgdXJsOiAnJywgbG9hZGluZzogZmFsc2UgfTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd5b3V0dWJlJykge1xuICAgICAgLy8gRm9yIFlvdVR1YmUgYmxvY2tzLCBjbGVhciBjb250ZW50IGFuZCBzZXQgZW1wdHkgbWV0YWRhdGFcbiAgICAgIGN1cnJlbnRCbG9jay5jb250ZW50ID0gJyc7XG4gICAgICBjdXJyZW50QmxvY2subWV0YWRhdGEgPSB7IHZpZGVvSWQ6ICcnLCB1cmw6ICcnIH07XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnbWFya2Rvd24nKSB7XG4gICAgICAvLyBGb3IgTWFya2Rvd24gYmxvY2tzLCBwcmVzZXJ2ZSBjb250ZW50IGFuZCBkZWZhdWx0IHRvIGVkaXQgbW9kZVxuICAgICAgY3VycmVudEJsb2NrLm1ldGFkYXRhID0geyBzaG93UHJldmlldzogZmFsc2UgfTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdodG1sJykge1xuICAgICAgLy8gRm9yIEhUTUwgYmxvY2tzLCBwcmVzZXJ2ZSBjb250ZW50IGFuZCBkZWZhdWx0IHRvIGVkaXQgbW9kZVxuICAgICAgY3VycmVudEJsb2NrLm1ldGFkYXRhID0geyBzaG93UHJldmlldzogZmFsc2UgfTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhdHRhY2htZW50Jykge1xuICAgICAgLy8gRm9yIGF0dGFjaG1lbnQgYmxvY2tzLCBjbGVhciBjb250ZW50IGFuZCBzZXQgZW1wdHkgZmlsZXMgYXJyYXlcbiAgICAgIGN1cnJlbnRCbG9jay5jb250ZW50ID0gJyc7XG4gICAgICBjdXJyZW50QmxvY2subWV0YWRhdGEgPSB7IGZpbGVzOiBbXSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGb3IgYWxsIG90aGVyIGJsb2NrIHR5cGVzLCBlbnN1cmUgY29udGVudCBpcyBjbGVhblxuICAgICAgY3VycmVudEJsb2NrLmNvbnRlbnQgPSBjdXJyZW50QmxvY2suY29udGVudCB8fCAnJztcbiAgICB9XG4gICAgXG4gICAgLy8gVXBkYXRlIHRoZSBibG9jayBlbGVtZW50IHByb2dyYW1tYXRpY2FsbHlcbiAgICB0aGlzLnVwZGF0ZUJsb2NrRWxlbWVudChjdXJyZW50QmxvY2suaWQpO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICBcbiAgICAvLyBHaXZlIERPTSB0aW1lIHRvIHNldHRsZVxuICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAwKSk7XG4gICAgXG4gICAgLy8gRm9jdXMgdGhlIGJsb2NrIGFmdGVyIHJlbmRlcmluZ1xuICAgIGlmICh0eXBlID09PSAnbGlzdCcpIHtcbiAgICAgIHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soY3VycmVudEJsb2NrLmlkLCAnc3RhcnQnKTtcbiAgICAgIC8vIEFkZGl0aW9uYWwgbGlzdC1zcGVjaWZpYyBmb2N1cyBoYW5kbGluZ1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgY29uc3QgYmxvY2tXcmFwcGVyID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD1cIiR7Y3VycmVudEJsb2NrLmlkfVwiXWApO1xuICAgICAgICBjb25zdCBibG9ja0NvbXBvbmVudCA9IGJsb2NrV3JhcHBlcj8ucXVlcnlTZWxlY3RvcignZGVlcy13eXNpd3lnLWJsb2NrJykgYXMgYW55O1xuICAgICAgICBpZiAoYmxvY2tDb21wb25lbnQpIHtcbiAgICAgICAgICBibG9ja0NvbXBvbmVudC5mb2N1c0xpc3RJdGVtKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gJ2RpdmlkZXInICYmIHR5cGUgIT09ICdpbWFnZScgJiYgdHlwZSAhPT0gJ3lvdXR1YmUnICYmIHR5cGUgIT09ICdtYXJrZG93bicgJiYgdHlwZSAhPT0gJ2h0bWwnICYmIHR5cGUgIT09ICdhdHRhY2htZW50Jykge1xuICAgICAgdGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhjdXJyZW50QmxvY2suaWQsICdzdGFydCcpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ltYWdlJyB8fCB0eXBlID09PSAneW91dHViZScgfHwgdHlwZSA9PT0gJ21hcmtkb3duJyB8fCB0eXBlID09PSAnaHRtbCcgfHwgdHlwZSA9PT0gJ2F0dGFjaG1lbnQnKSB7XG4gICAgICAvLyBGb2N1cyB0aGUgbm9uLWVkaXRhYmxlIGJsb2NrXG4gICAgICB0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKGN1cnJlbnRCbG9jay5pZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZhbHVlKCkge1xuICAgIGlmICh0aGlzLm91dHB1dEZvcm1hdCA9PT0gJ2h0bWwnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gV3lzaXd5Z0NvbnZlcnRlcnMuZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSBXeXNpd3lnQ29udmVydGVycy5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2Nrcyk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMudmFsdWUpO1xuICAgIFxuICAgIC8vIFNhdmUgdG8gaGlzdG9yeSAoZGVib3VuY2VkKVxuICAgIHRoaXMuc2F2ZVRvSGlzdG9yeSh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgXG4gICAgaWYgKHRoaXMub3V0cHV0Rm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgIHRoaXMuYmxvY2tzID0gV3lzaXd5Z0NvbnZlcnRlcnMucGFyc2VIdG1sVG9CbG9ja3ModmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJsb2NrcyA9IFd5c2l3eWdDb252ZXJ0ZXJzLnBhcnNlTWFya2Rvd25Ub0Jsb2Nrcyh2YWx1ZSk7XG4gICAgfVxuICAgIFxuICAgIGlmICh0aGlzLmJsb2Nrcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYmxvY2tzID0gW3tcbiAgICAgICAgaWQ6IFd5c2l3eWdTaG9ydGN1dHMuZ2VuZXJhdGVCbG9ja0lkKCksXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBjb250ZW50OiAnJyxcbiAgICAgIH1dO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzLnZhbHVlKTtcbiAgICBcbiAgICAvLyBSZS1yZW5kZXIgYmxvY2tzIHByb2dyYW1tYXRpY2FsbHkgaWYgd2UgaGF2ZSB0aGUgZWRpdG9yXG4gICAgaWYgKHRoaXMuZWRpdG9yQ29udGVudFJlZikge1xuICAgICAgdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCB0aGUgZWRpdG9yIGNvbnRlbnQgYXMgcmF3IGJsb2NrcyAobG9zc2xlc3MpXG4gICAqL1xuICBwdWJsaWMgZXhwb3J0QmxvY2tzKCk6IElCbG9ja1tdIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmJsb2NrcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCByYXcgYmxvY2tzIChsb3NzbGVzcylcbiAgICovXG4gIHB1YmxpYyBpbXBvcnRCbG9ja3MoYmxvY2tzOiBJQmxvY2tbXSk6IHZvaWQge1xuICAgIHRoaXMuYmxvY2tzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShibG9ja3MpKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gICAgXG4gICAgLy8gUmUtcmVuZGVyIGJsb2NrcyBwcm9ncmFtbWF0aWNhbGx5IGlmIHdlIGhhdmUgdGhlIGVkaXRvclxuICAgIGlmICh0aGlzLmVkaXRvckNvbnRlbnRSZWYpIHtcbiAgICAgIHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgY29udGVudCBhcyBIVE1MIHJlZ2FyZGxlc3Mgb2Ygb3V0cHV0Rm9ybWF0IHNldHRpbmdcbiAgICovXG4gIHB1YmxpYyBleHBvcnRBc0h0bWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gV3lzaXd5Z0NvbnZlcnRlcnMuZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyk7XG4gIH1cblxuICAvKipcbiAgICogRXhwb3J0IGNvbnRlbnQgYXMgTWFya2Rvd24gcmVnYXJkbGVzcyBvZiBvdXRwdXRGb3JtYXQgc2V0dGluZ1xuICAgKi9cbiAgcHVibGljIGV4cG9ydEFzTWFya2Rvd24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gV3lzaXd5Z0NvbnZlcnRlcnMuZ2V0TWFya2Rvd25PdXRwdXQodGhpcy5ibG9ja3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGVkaXRvciBzdGF0ZSAoZm9yIHNhdmluZylcbiAgICovXG4gIHB1YmxpYyBleHBvcnRTdGF0ZSgpOiB7IGJsb2NrczogSUJsb2NrW10sIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0IH0ge1xuICAgIHJldHVybiB7XG4gICAgICBibG9ja3M6IHRoaXMuZXhwb3J0QmxvY2tzKCksXG4gICAgICBvdXRwdXRGb3JtYXQ6IHRoaXMub3V0cHV0Rm9ybWF0XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlIGVkaXRvciBzdGF0ZSBmcm9tIEpTT05cbiAgICovXG4gIHB1YmxpYyBpbXBvcnRTdGF0ZShzdGF0ZTogeyBibG9ja3M6IElCbG9ja1tdLCBvdXRwdXRGb3JtYXQ/OiBPdXRwdXRGb3JtYXQgfSk6IHZvaWQge1xuICAgIGlmIChzdGF0ZS5vdXRwdXRGb3JtYXQpIHtcbiAgICAgIHRoaXMub3V0cHV0Rm9ybWF0ID0gc3RhdGUub3V0cHV0Rm9ybWF0O1xuICAgIH1cbiAgICB0aGlzLmltcG9ydEJsb2NrcyhzdGF0ZS5ibG9ja3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEcmFnRW5kKCk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSBhbGwgZHJhZy1yZWxhdGVkIGNsYXNzZXNcbiAgICBpZiAodGhpcy5kcmFnZ2VkQmxvY2tJZCkge1xuICAgICAgY29uc3Qgd3JhcHBlciA9IHRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD1cIiR7dGhpcy5kcmFnZ2VkQmxvY2tJZH1cIl1gKTtcbiAgICAgIGlmICh3cmFwcGVyKSB7XG4gICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZ2dpbmcnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gUmVtb3ZlIGFsbCBkcmFnLW92ZXIgY2xhc3Nlc1xuICAgIGNvbnN0IGFsbFdyYXBwZXJzID0gdGhpcy5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoJy5ibG9jay13cmFwcGVyJyk7XG4gICAgYWxsV3JhcHBlcnMuZm9yRWFjaCh3cmFwcGVyID0+IHtcbiAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZy1vdmVyLWJlZm9yZScsICdkcmFnLW92ZXItYWZ0ZXInKTtcbiAgICB9KTtcbiAgICBcbiAgICAvLyBSZW1vdmUgZHJhZ2dpbmcgY2xhc3MgZnJvbSBlZGl0b3IgY29udGVudFxuICAgIHRoaXMuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnZ2luZycpO1xuICAgIFxuICAgIHRoaXMuZHJhZ2dlZEJsb2NrSWQgPSBudWxsO1xuICAgIHRoaXMuZHJhZ092ZXJCbG9ja0lkID0gbnVsbDtcbiAgICB0aGlzLmRyYWdPdmVyUG9zaXRpb24gPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZURyb3AoZTogRHJhZ0V2ZW50LCB0YXJnZXRCbG9jazogSUJsb2NrKTogdm9pZCB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIFxuICAgIGlmICghdGhpcy5kcmFnZ2VkQmxvY2tJZCB8fCB0aGlzLmRyYWdnZWRCbG9ja0lkID09PSB0YXJnZXRCbG9jay5pZCkgcmV0dXJuO1xuICAgIFxuICAgIGNvbnN0IGRyYWdnZWRJbmRleCA9IHRoaXMuYmxvY2tzLmZpbmRJbmRleChiID0+IGIuaWQgPT09IHRoaXMuZHJhZ2dlZEJsb2NrSWQpO1xuICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5ibG9ja3MuZmluZEluZGV4KGIgPT4gYi5pZCA9PT0gdGFyZ2V0QmxvY2suaWQpO1xuICAgIFxuICAgIGlmIChkcmFnZ2VkSW5kZXggPT09IC0xIHx8IHRhcmdldEluZGV4ID09PSAtMSkgcmV0dXJuO1xuICAgIFxuICAgIC8vIFJlbW92ZSB0aGUgZHJhZ2dlZCBibG9ja1xuICAgIGNvbnN0IFtkcmFnZ2VkQmxvY2tdID0gdGhpcy5ibG9ja3Muc3BsaWNlKGRyYWdnZWRJbmRleCwgMSk7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgaW5kZXhcbiAgICBsZXQgbmV3SW5kZXggPSB0YXJnZXRJbmRleDtcbiAgICBpZiAodGhpcy5kcmFnT3ZlclBvc2l0aW9uID09PSAnYWZ0ZXInKSB7XG4gICAgICBuZXdJbmRleCA9IGRyYWdnZWRJbmRleCA8IHRhcmdldEluZGV4ID8gdGFyZ2V0SW5kZXggOiB0YXJnZXRJbmRleCArIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0luZGV4ID0gZHJhZ2dlZEluZGV4IDwgdGFyZ2V0SW5kZXggPyB0YXJnZXRJbmRleCAtIDEgOiB0YXJnZXRJbmRleDtcbiAgICB9XG4gICAgXG4gICAgLy8gSW5zZXJ0IGF0IG5ldyBwb3NpdGlvblxuICAgIHRoaXMuYmxvY2tzLnNwbGljZShuZXdJbmRleCwgMCwgZHJhZ2dlZEJsb2NrKTtcbiAgICBcbiAgICAvLyBSZS1yZW5kZXIgYmxvY2tzIHByb2dyYW1tYXRpY2FsbHkgdG8gcmVmbGVjdCB0aGUgbmV3IG9yZGVyXG4gICAgdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCk7XG4gICAgXG4gICAgLy8gVXBkYXRlIHN0YXRlXG4gICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICAgIHRoaXMuaGFuZGxlRHJhZ0VuZCgpO1xuICAgIFxuICAgIC8vIEZvY3VzIHRoZSBtb3ZlZCBibG9ja1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgbW92ZWRCbG9ja0VsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPVwiJHtkcmFnZ2VkQmxvY2suaWR9XCJdIC5ibG9ja2ApIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgaWYgKG1vdmVkQmxvY2tFbGVtZW50ICYmIGRyYWdnZWRCbG9jay50eXBlICE9PSAnZGl2aWRlcicpIHtcbiAgICAgICAgbW92ZWRCbG9ja0VsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cblxuICBwcml2YXRlIGhhbmRsZVRleHRTZWxlY3Rpb24oX2U6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBEb24ndCBpbnRlcmZlcmUgd2l0aCBzbGFzaCBtZW51XG4gICAgaWYgKHRoaXMuc2xhc2hNZW51LnZpc2libGUpIHJldHVybjtcbiAgICBcbiAgICAvLyBMZXQgdGhlIGJsb2NrIGNvbXBvbmVudCBoYW5kbGUgc2VsZWN0aW9uIHZpYSBjdXN0b20gZXZlbnRcbiAgfVxuXG4gIFxuXG4gIHByaXZhdGUgdXBkYXRlRm9ybWF0dGluZ01lbnVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBcbiAgICAvLyBHZXQgYWxsIHNoYWRvdyByb290c1xuICAgIGNvbnN0IHNoYWRvd1Jvb3RzOiBTaGFkb3dSb290W10gPSBbXTtcbiAgICBpZiAodGhpcy5zaGFkb3dSb290KSBzaGFkb3dSb290cy5wdXNoKHRoaXMuc2hhZG93Um9vdCk7XG4gICAgXG4gICAgLy8gRmluZCBhbGwgYmxvY2sgc2hhZG93IHJvb3RzXG4gICAgY29uc3QgYmxvY2tXcmFwcGVycyA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgnLmJsb2NrLXdyYXBwZXInKTtcbiAgICBibG9ja1dyYXBwZXJzPy5mb3JFYWNoKHdyYXBwZXIgPT4ge1xuICAgICAgY29uc3QgYmxvY2tDb21wb25lbnQgPSB3cmFwcGVyLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtd3lzaXd5Zy1ibG9jaycpO1xuICAgICAgaWYgKGJsb2NrQ29tcG9uZW50Py5zaGFkb3dSb290KSB7XG4gICAgICAgIHNoYWRvd1Jvb3RzLnB1c2goYmxvY2tDb21wb25lbnQuc2hhZG93Um9vdCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgY29uc3QgY29vcmRzID0gV3lzaXd5Z0Zvcm1hdHRpbmcuZ2V0U2VsZWN0aW9uQ29vcmRpbmF0ZXMoLi4uc2hhZG93Um9vdHMpO1xuICAgIFxuICAgIGlmIChjb29yZHMpIHtcbiAgICAgIC8vIFNob3cgdGhlIGdsb2JhbCBmb3JtYXR0aW5nIG1lbnUgYXQgYWJzb2x1dGUgY29vcmRpbmF0ZXNcbiAgICAgIHRoaXMuZm9ybWF0dGluZ01lbnUuc2hvdyhcbiAgICAgICAgeyB4OiBjb29yZHMueCwgeTogY29vcmRzLnkgfSxcbiAgICAgICAgYXN5bmMgKGNvbW1hbmQ6IHN0cmluZykgPT4gYXdhaXQgdGhpcy5hcHBseUZvcm1hdChjb21tYW5kKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlkZUZvcm1hdHRpbmdNZW51KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybWF0dGluZ01lbnUuaGlkZSgpO1xuICAgIHRoaXMuc2VsZWN0ZWRUZXh0ID0gJyc7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYXBwbHlGb3JtYXQoY29tbWFuZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gR2V0IGFsbCBzaGFkb3cgcm9vdHNcbiAgICBjb25zdCBzaGFkb3dSb290czogU2hhZG93Um9vdFtdID0gW107XG4gICAgaWYgKHRoaXMuc2hhZG93Um9vdCkgc2hhZG93Um9vdHMucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO1xuICAgIFxuICAgIC8vIEZpbmQgYWxsIGJsb2NrIHNoYWRvdyByb290c1xuICAgIGNvbnN0IGJsb2NrV3JhcHBlcnMgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ibG9jay13cmFwcGVyJyk7XG4gICAgYmxvY2tXcmFwcGVycz8uZm9yRWFjaCh3cmFwcGVyID0+IHtcbiAgICAgIGNvbnN0IGJsb2NrQ29tcG9uZW50ID0gd3JhcHBlci5xdWVyeVNlbGVjdG9yKCdkZWVzLXd5c2l3eWctYmxvY2snKTtcbiAgICAgIGlmIChibG9ja0NvbXBvbmVudD8uc2hhZG93Um9vdCkge1xuICAgICAgICBzaGFkb3dSb290cy5wdXNoKGJsb2NrQ29tcG9uZW50LnNoYWRvd1Jvb3QpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIC8vIEdldCBzZWxlY3Rpb24gaW5mbyB1c2luZyBTaGFkb3cgRE9NLWF3YXJlIHV0aWxpdGllc1xuICAgIGNvbnN0IHNlbGVjdGlvbkluZm8gPSBXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8oLi4uc2hhZG93Um9vdHMpO1xuICAgIGlmICghc2VsZWN0aW9uSW5mbykgcmV0dXJuO1xuICAgIFxuICAgIC8vIEZpbmQgd2hpY2ggYmxvY2sgY29udGFpbnMgdGhlIHNlbGVjdGlvblxuICAgIGxldCB0YXJnZXRCbG9jazogSUJsb2NrIHwgdW5kZWZpbmVkO1xuICAgIGxldCB0YXJnZXRCbG9ja0NvbXBvbmVudDogYW55O1xuICAgIFxuICAgIGNvbnN0IHdyYXBwZXJzID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yQWxsKCcuYmxvY2std3JhcHBlcicpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd3JhcHBlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSB3cmFwcGVyc1tpXTtcbiAgICAgIGNvbnN0IGJsb2NrQ29tcG9uZW50ID0gd3JhcHBlci5xdWVyeVNlbGVjdG9yKCdkZWVzLXd5c2l3eWctYmxvY2snKSBhcyBhbnk7XG4gICAgICBpZiAoYmxvY2tDb21wb25lbnQ/LnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0NvbXBvbmVudC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5ibG9jaycpO1xuICAgICAgICBpZiAoYmxvY2sgJiYgKFxuICAgICAgICAgIGJsb2NrLmNvbnRhaW5zKHNlbGVjdGlvbkluZm8uc3RhcnRDb250YWluZXIpIHx8IFxuICAgICAgICAgIGJsb2NrLmNvbnRhaW5zKHNlbGVjdGlvbkluZm8uZW5kQ29udGFpbmVyKVxuICAgICAgICApKSB7XG4gICAgICAgICAgY29uc3QgYmxvY2tJZCA9IHdyYXBwZXIuZ2V0QXR0cmlidXRlKCdkYXRhLWJsb2NrLWlkJyk7XG4gICAgICAgICAgdGFyZ2V0QmxvY2sgPSB0aGlzLmJsb2Nrcy5maW5kKGIgPT4gYi5pZCA9PT0gYmxvY2tJZCk7XG4gICAgICAgICAgdGFyZ2V0QmxvY2tDb21wb25lbnQgPSBibG9ja0NvbXBvbmVudDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpZiAoIXRhcmdldEJsb2NrIHx8ICF0YXJnZXRCbG9ja0NvbXBvbmVudCkgcmV0dXJuO1xuXG4gICAgLy8gQ3JlYXRlIGEgcmFuZ2UgZnJvbSBvdXIgc2VsZWN0aW9uIGluZm9cbiAgICBjb25zdCByYW5nZSA9IFd5c2l3eWdTZWxlY3Rpb24uY3JlYXRlUmFuZ2VGcm9tSW5mbyhzZWxlY3Rpb25JbmZvKTtcbiAgICBcbiAgICAvLyBIYW5kbGUgbGluayBjb21tYW5kIHNwZWNpYWxseVxuICAgIGlmIChjb21tYW5kID09PSAnbGluaycpIHtcbiAgICAgIGNvbnN0IHVybCA9IGF3YWl0IHRoaXMuc2hvd0xpbmtEaWFsb2coKTtcbiAgICAgIGlmICghdXJsKSB7XG4gICAgICAgIC8vIFVzZXIgY2FuY2VsbGVkIC0gcmVzdG9yZSBmb2N1cyB0byBibG9ja1xuICAgICAgICB0YXJnZXRCbG9ja0NvbXBvbmVudC5mb2N1cygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBBcHBseSBsaW5rIGZvcm1hdFxuICAgICAgV3lzaXd5Z0Zvcm1hdHRpbmcuYXBwbHlGb3JtYXQoY29tbWFuZCwgdXJsLCByYW5nZSwgc2hhZG93Um9vdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBBcHBseSB0aGUgZm9ybWF0XG4gICAgICBXeXNpd3lnRm9ybWF0dGluZy5hcHBseUZvcm1hdChjb21tYW5kLCB1bmRlZmluZWQsIHJhbmdlLCBzaGFkb3dSb290cyk7XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIGNvbnRlbnQgYWZ0ZXIgYSBtaWNyb3Rhc2sgdG8gZW5zdXJlIERPTSBpcyB1cGRhdGVkXG4gICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwKSk7XG4gICAgXG4gICAgLy8gRm9yY2UgY29udGVudCB1cGRhdGVcbiAgICB0YXJnZXRCbG9jay5jb250ZW50ID0gdGFyZ2V0QmxvY2tDb21wb25lbnQuZ2V0Q29udGVudCgpO1xuICAgIFxuICAgIC8vIFVwZGF0ZSB2YWx1ZSB0byBwZXJzaXN0IGNoYW5nZXNcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gICAgXG4gICAgLy8gUmVzdG9yZSBmb2N1cyB0byB0aGUgYmxvY2tcbiAgICB0YXJnZXRCbG9ja0NvbXBvbmVudC5mb2N1cygpO1xuICAgIFxuICAgIC8vIEZvciBsaW5rIGNvbW1hbmQsIGNsb3NlIHRoZSBmb3JtYXR0aW5nIG1lbnVcbiAgICBpZiAoY29tbWFuZCA9PT0gJ2xpbmsnKSB7XG4gICAgICB0aGlzLmhpZGVGb3JtYXR0aW5nTWVudSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBMZXQgc2VsZWN0aW9uIGhhbmRsZXIgdXBkYXRlIG1lbnUgcG9zaXRpb25cbiAgICAgIHRoaXMuc2VsZWN0ZWRUZXh0ID0gJyc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaG93TGlua0RpYWxvZygpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGxldCBsaW5rVXJsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAgIFxuICAgICAgRGVlc01vZGFsLmNyZWF0ZUFuZFNob3coe1xuICAgICAgICBoZWFkaW5nOiAnQWRkIExpbmsnLFxuICAgICAgICBjb250ZW50OiBodG1sYFxuICAgICAgICAgIDxzdHlsZT5cbiAgICAgICAgICAgIC5saW5rLWlucHV0IHtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGVlcy1jb2xvci1saW5lLWJyaWdodCk7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1pbnB1dCk7XG4gICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQpO1xuICAgICAgICAgICAgICBtYXJnaW46IDE2cHggMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5saW5rLWlucHV0OmZvY3VzIHtcbiAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3R5bGU+XG4gICAgICAgICAgPGlucHV0IFxuICAgICAgICAgICAgY2xhc3M9XCJsaW5rLWlucHV0XCIgXG4gICAgICAgICAgICB0eXBlPVwidXJsXCIgXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cImh0dHBzOi8vZXhhbXBsZS5jb21cIiBcbiAgICAgICAgICAgIEBrZXlkb3duPVwiJHsoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgbGlua1VybCA9IGlucHV0LnZhbHVlO1xuICAgICAgICAgICAgICAgIC8vIEZpbmQgYW5kIGNsaWNrIHRoZSBPSyBidXR0b25cbiAgICAgICAgICAgICAgICBjb25zdCBtb2RhbCA9IGlucHV0LmNsb3Nlc3QoJ2RlZXMtbW9kYWwnKTtcbiAgICAgICAgICAgICAgICBpZiAobW9kYWwpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG9rQnV0dG9uID0gbW9kYWwuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLmJvdHRvbUJ1dHRvbjpsYXN0LWNoaWxkJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAob2tCdXR0b24pIG9rQnV0dG9uLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICBAaW5wdXQ9XCIkeyhlOiBJbnB1dEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGxpbmtVcmwgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgICAgICB9fVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgYCxcbiAgICAgICAgbWVudU9wdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQ2FuY2VsJyxcbiAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKG1vZGFsKSA9PiB7XG4gICAgICAgICAgICAgIG1vZGFsLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdBZGQgTGluaycsXG4gICAgICAgICAgICBhY3Rpb246IGFzeW5jIChtb2RhbCkgPT4ge1xuICAgICAgICAgICAgICBtb2RhbC5kZXN0cm95KCk7XG4gICAgICAgICAgICAgIHJlc29sdmUobGlua1VybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gRm9jdXMgdGhlIGlucHV0IGFmdGVyIG1vZGFsIGlzIHNob3duXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkZWVzLW1vZGFsIC5saW5rLWlucHV0JykgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSwgMTAwKTtcbiAgICB9KTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFVuZG8gdGhlIGxhc3QgYWN0aW9uXG4gICAqL1xuICBwcml2YXRlIHVuZG8oKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmhpc3RvcnkudW5kbygpO1xuICAgIGlmIChzdGF0ZSkge1xuICAgICAgdGhpcy5yZXN0b3JlU3RhdGUoc3RhdGUpO1xuICAgIH1cbiAgfVxuICBcbiAgLyoqXG4gICAqIFJlZG8gdGhlIG5leHQgYWN0aW9uXG4gICAqL1xuICBwcml2YXRlIHJlZG8oKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmhpc3RvcnkucmVkbygpO1xuICAgIGlmIChzdGF0ZSkge1xuICAgICAgdGhpcy5yZXN0b3JlU3RhdGUoc3RhdGUpO1xuICAgIH1cbiAgfVxuICBcbiAgLyoqXG4gICAqIFJlc3RvcmUgZWRpdG9yIHN0YXRlIGZyb20gaGlzdG9yeVxuICAgKi9cbiAgcHJpdmF0ZSByZXN0b3JlU3RhdGUoc3RhdGU6IHsgYmxvY2tzOiBJQmxvY2tbXTsgc2VsZWN0ZWRCbG9ja0lkOiBzdHJpbmcgfCBudWxsOyBjdXJzb3JQb3NpdGlvbj86IHsgYmxvY2tJZDogc3RyaW5nOyBvZmZzZXQ6IG51bWJlciB9IH0pOiB2b2lkIHtcbiAgICAvLyBVcGRhdGUgYmxvY2tzXG4gICAgdGhpcy5ibG9ja3MgPSBzdGF0ZS5ibG9ja3M7XG4gICAgdGhpcy5zZWxlY3RlZEJsb2NrSWQgPSBzdGF0ZS5zZWxlY3RlZEJsb2NrSWQ7XG4gICAgXG4gICAgLy8gUmUtcmVuZGVyIGJsb2Nrc1xuICAgIHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpO1xuICAgIFxuICAgIC8vIFJlc3RvcmUgY3Vyc29yIHBvc2l0aW9uIGlmIGF2YWlsYWJsZVxuICAgIGlmIChzdGF0ZS5jdXJzb3JQb3NpdGlvbikge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJsb2NrV3JhcHBlciA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9XCIke3N0YXRlLmN1cnNvclBvc2l0aW9uIS5ibG9ja0lkfVwiXWApO1xuICAgICAgICBjb25zdCBibG9ja0NvbXBvbmVudCA9IGJsb2NrV3JhcHBlcj8ucXVlcnlTZWxlY3RvcignZGVlcy13eXNpd3lnLWJsb2NrJykgYXMgYW55O1xuICAgICAgICBpZiAoYmxvY2tDb21wb25lbnQpIHtcbiAgICAgICAgICBibG9ja0NvbXBvbmVudC5mb2N1c1dpdGhDdXJzb3Ioc3RhdGUuY3Vyc29yUG9zaXRpb24hLm9mZnNldCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDUwKTtcbiAgICB9IGVsc2UgaWYgKHN0YXRlLnNlbGVjdGVkQmxvY2tJZCkge1xuICAgICAgLy8gSnVzdCBmb2N1cyB0aGUgc2VsZWN0ZWQgYmxvY2tcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKHN0YXRlLnNlbGVjdGVkQmxvY2tJZCEpO1xuICAgICAgfSwgNTApO1xuICAgIH1cbiAgICBcbiAgICAvLyBVcGRhdGUgdmFsdWVcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBTYXZlIGN1cnJlbnQgc3RhdGUgdG8gaGlzdG9yeSB3aXRoIGN1cnNvciBwb3NpdGlvblxuICAgKi9cbiAgXG4gIHB1YmxpYyBzYXZlVG9IaXN0b3J5KGRlYm91bmNlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIC8vIEdldCBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBpZiBhIGJsb2NrIGlzIGZvY3VzZWRcbiAgICBsZXQgY3Vyc29yUG9zaXRpb246IHsgYmxvY2tJZDogc3RyaW5nOyBvZmZzZXQ6IG51bWJlciB9IHwgdW5kZWZpbmVkO1xuICAgIFxuICAgIGlmICh0aGlzLnNlbGVjdGVkQmxvY2tJZCkge1xuICAgICAgY29uc3QgYmxvY2tXcmFwcGVyID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD1cIiR7dGhpcy5zZWxlY3RlZEJsb2NrSWR9XCJdYCk7XG4gICAgICBjb25zdCBibG9ja0NvbXBvbmVudCA9IGJsb2NrV3JhcHBlcj8ucXVlcnlTZWxlY3RvcignZGVlcy13eXNpd3lnLWJsb2NrJykgYXMgYW55O1xuICAgICAgaWYgKGJsb2NrQ29tcG9uZW50ICYmIHR5cGVvZiBibG9ja0NvbXBvbmVudC5nZXRDdXJzb3JQb3NpdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSBibG9ja0NvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcuYmxvY2snKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKGVkaXRhYmxlRWxlbWVudCkge1xuICAgICAgICAgIGNvbnN0IG9mZnNldCA9IGJsb2NrQ29tcG9uZW50LmdldEN1cnNvclBvc2l0aW9uKGVkaXRhYmxlRWxlbWVudCk7XG4gICAgICAgICAgaWYgKG9mZnNldCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY3Vyc29yUG9zaXRpb24gPSB7XG4gICAgICAgICAgICAgIGJsb2NrSWQ6IHRoaXMuc2VsZWN0ZWRCbG9ja0lkLFxuICAgICAgICAgICAgICBvZmZzZXRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIGlmIChkZWJvdW5jZSkge1xuICAgICAgdGhpcy5oaXN0b3J5LnNhdmVTdGF0ZSh0aGlzLmJsb2NrcywgdGhpcy5zZWxlY3RlZEJsb2NrSWQsIGN1cnNvclBvc2l0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaXN0b3J5LnNhdmVDaGVja3BvaW50KHRoaXMuYmxvY2tzLCB0aGlzLnNlbGVjdGVkQmxvY2tJZCwgY3Vyc29yUG9zaXRpb24pO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB0eXBlIHsgUHJvZmlsZVNoYXBlIH0gZnJvbSAnLi9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBDcm9wcGVyT3B0aW9ucyB7XG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gIGltYWdlOiBzdHJpbmc7XG4gIHNoYXBlOiBQcm9maWxlU2hhcGU7XG4gIGFzcGVjdFJhdGlvOiBudW1iZXI7XG4gIG1pblNpemU/OiBudW1iZXI7XG4gIG91dHB1dFNpemU/OiBudW1iZXI7XG4gIG91dHB1dFF1YWxpdHk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBJbWFnZUNyb3BwZXIge1xuICBwcml2YXRlIG9wdGlvbnM6IENyb3BwZXJPcHRpb25zO1xuICBwcml2YXRlIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG4gIHByaXZhdGUgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG4gIHByaXZhdGUgaW1nOiBIVE1MSW1hZ2VFbGVtZW50O1xuICBwcml2YXRlIG92ZXJsYXlDYW52YXM6IEhUTUxDYW52YXNFbGVtZW50O1xuICBwcml2YXRlIG92ZXJsYXlDdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcbiAgXG4gIC8vIENyb3AgYXJlYSBwcm9wZXJ0aWVzXG4gIHByaXZhdGUgY3JvcFg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgY3JvcFk6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgY3JvcFNpemU6IG51bWJlciA9IDIwMDtcbiAgcHJpdmF0ZSBtaW5Dcm9wU2l6ZTogbnVtYmVyID0gNTA7XG4gIFxuICAvLyBJbnRlcmFjdGlvbiBzdGF0ZVxuICBwcml2YXRlIGlzRHJhZ2dpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc1Jlc2l6aW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0WDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBkcmFnU3RhcnRZOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIHJlc2l6ZUhhbmRsZTogc3RyaW5nID0gJyc7XG4gIFxuICAvLyBJbWFnZSBwcm9wZXJ0aWVzXG4gIHByaXZhdGUgaW1hZ2VTY2FsZTogbnVtYmVyID0gMTtcbiAgcHJpdmF0ZSBpbWFnZU9mZnNldFg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgaW1hZ2VPZmZzZXRZOiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENyb3BwZXJPcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgbWluU2l6ZTogNTAsXG4gICAgICBvdXRwdXRTaXplOiA4MDAsIC8vIEhpZ2hlciBkZWZhdWx0IHJlc29sdXRpb25cbiAgICAgIG91dHB1dFF1YWxpdHk6IDAuOTUsIC8vIEhpZ2hlciBxdWFsaXR5XG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcbiAgICBcbiAgICB0aGlzLmNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIHRoaXMuY3R4ID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKSE7XG4gICAgXG4gICAgdGhpcy5vdmVybGF5Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgdGhpcy5vdmVybGF5Q3R4ID0gdGhpcy5vdmVybGF5Q2FudmFzLmdldENvbnRleHQoJzJkJykhO1xuICAgIFxuICAgIHRoaXMuaW1nID0gbmV3IEltYWdlKCk7XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXplKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIExvYWQgaW1hZ2VcbiAgICBhd2FpdCB0aGlzLmxvYWRJbWFnZSgpO1xuICAgIFxuICAgIC8vIFNldHVwIGNhbnZhc2VzXG4gICAgdGhpcy5zZXR1cENhbnZhc2VzKCk7XG4gICAgXG4gICAgLy8gU2V0dXAgZXZlbnQgbGlzdGVuZXJzXG4gICAgdGhpcy5zZXR1cEV2ZW50TGlzdGVuZXJzKCk7XG4gICAgXG4gICAgLy8gSW5pdGlhbCByZW5kZXJcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkSW1hZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuaW1nLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoKTtcbiAgICAgIHRoaXMuaW1nLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICB0aGlzLmltZy5zcmMgPSB0aGlzLm9wdGlvbnMuaW1hZ2U7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQ2FudmFzZXMoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5vcHRpb25zLmNvbnRhaW5lcjtcbiAgICBjb25zdCBjb250YWluZXJTaXplID0gTWF0aC5taW4oY29udGFpbmVyLmNsaWVudFdpZHRoLCBjb250YWluZXIuY2xpZW50SGVpZ2h0KTtcbiAgICBcbiAgICAvLyBTZXQgY2FudmFzIHNpemVzXG4gICAgdGhpcy5jYW52YXMud2lkdGggPSBjb250YWluZXJTaXplO1xuICAgIHRoaXMuY2FudmFzLmhlaWdodCA9IGNvbnRhaW5lclNpemU7XG4gICAgdGhpcy5jYW52YXMuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgdGhpcy5jYW52YXMuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgIHRoaXMuY2FudmFzLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICB0aGlzLmNhbnZhcy5zdHlsZS50b3AgPSAnMCc7XG4gICAgdGhpcy5jYW52YXMuc3R5bGUubGVmdCA9ICcwJztcbiAgICBcbiAgICB0aGlzLm92ZXJsYXlDYW52YXMud2lkdGggPSBjb250YWluZXJTaXplO1xuICAgIHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQgPSBjb250YWluZXJTaXplO1xuICAgIHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICB0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgIHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLnRvcCA9ICcwJztcbiAgICB0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUubGVmdCA9ICcwJztcbiAgICB0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yID0gJ21vdmUnO1xuICAgIFxuICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmNhbnZhcyk7XG4gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUNhbnZhcyk7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIGltYWdlIHNjYWxlIHRvIGZpdCB3aXRoaW4gY29udGFpbmVyIChub3QgZmlsbClcbiAgICBjb25zdCBzY2FsZSA9IE1hdGgubWluKFxuICAgICAgY29udGFpbmVyU2l6ZSAvIHRoaXMuaW1nLndpZHRoLFxuICAgICAgY29udGFpbmVyU2l6ZSAvIHRoaXMuaW1nLmhlaWdodFxuICAgICk7XG4gICAgXG4gICAgdGhpcy5pbWFnZVNjYWxlID0gc2NhbGU7XG4gICAgdGhpcy5pbWFnZU9mZnNldFggPSAoY29udGFpbmVyU2l6ZSAtIHRoaXMuaW1nLndpZHRoICogc2NhbGUpIC8gMjtcbiAgICB0aGlzLmltYWdlT2Zmc2V0WSA9IChjb250YWluZXJTaXplIC0gdGhpcy5pbWcuaGVpZ2h0ICogc2NhbGUpIC8gMjtcbiAgICBcbiAgICAvLyBJbml0aWFsaXplIGNyb3AgYXJlYVxuICAgIC8vIE1ha2UgdGhlIGNyb3AgYXJlYSBmaXQgd2l0aGluIHRoZSBhY3R1YWwgaW1hZ2UgYm91bmRzXG4gICAgY29uc3Qgc2NhbGVkSW1hZ2VXaWR0aCA9IHRoaXMuaW1nLndpZHRoICogc2NhbGU7XG4gICAgY29uc3Qgc2NhbGVkSW1hZ2VIZWlnaHQgPSB0aGlzLmltZy5oZWlnaHQgKiBzY2FsZTtcbiAgICBjb25zdCBtYXhDcm9wU2l6ZSA9IE1hdGgubWluKHNjYWxlZEltYWdlV2lkdGgsIHNjYWxlZEltYWdlSGVpZ2h0LCBjb250YWluZXJTaXplICogMC44KTtcbiAgICBcbiAgICB0aGlzLmNyb3BTaXplID0gbWF4Q3JvcFNpemUgKiAwLjg7IC8vIFN0YXJ0IGF0IDgwJSBvZiBtYXggcG9zc2libGUgc2l6ZVxuICAgIHRoaXMuY3JvcFggPSAoY29udGFpbmVyU2l6ZSAtIHRoaXMuY3JvcFNpemUpIC8gMjtcbiAgICB0aGlzLmNyb3BZID0gKGNvbnRhaW5lclNpemUgLSB0aGlzLmNyb3BTaXplKSAvIDI7XG4gIH1cblxuICBwcml2YXRlIHNldHVwRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuaGFuZGxlTW91c2VEb3duLmJpbmQodGhpcykpO1xuICAgIHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZU1vdXNlTW92ZS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuaGFuZGxlTW91c2VVcC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuaGFuZGxlTW91c2VVcC5iaW5kKHRoaXMpKTtcbiAgICBcbiAgICAvLyBUb3VjaCBldmVudHNcbiAgICB0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuaGFuZGxlVG91Y2hTdGFydC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5oYW5kbGVUb3VjaE1vdmUuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5oYW5kbGVUb3VjaEVuZC5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTW91c2VEb3duKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5vdmVybGF5Q2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHggPSAoZS5jbGllbnRYIC0gcmVjdC5sZWZ0KSAqICh0aGlzLm92ZXJsYXlDYW52YXMud2lkdGggLyByZWN0LndpZHRoKTtcbiAgICBjb25zdCB5ID0gKGUuY2xpZW50WSAtIHJlY3QudG9wKSAqICh0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0IC8gcmVjdC5oZWlnaHQpO1xuICAgIFxuICAgIGNvbnN0IGhhbmRsZSA9IHRoaXMuZ2V0UmVzaXplSGFuZGxlKHgsIHkpO1xuICAgIFxuICAgIGlmIChoYW5kbGUpIHtcbiAgICAgIHRoaXMuaXNSZXNpemluZyA9IHRydWU7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZSA9IGhhbmRsZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNJbnNpZGVDcm9wQXJlYSh4LCB5KSkge1xuICAgICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5kcmFnU3RhcnRYID0geDtcbiAgICB0aGlzLmRyYWdTdGFydFkgPSB5O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZU1vdmUoZTogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLm92ZXJsYXlDYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgeCA9IChlLmNsaWVudFggLSByZWN0LmxlZnQpICogKHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aCAvIHJlY3Qud2lkdGgpO1xuICAgIGNvbnN0IHkgPSAoZS5jbGllbnRZIC0gcmVjdC50b3ApICogKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQgLyByZWN0LmhlaWdodCk7XG4gICAgXG4gICAgLy8gVXBkYXRlIGN1cnNvclxuICAgIGNvbnN0IGhhbmRsZSA9IHRoaXMuZ2V0UmVzaXplSGFuZGxlKHgsIHkpO1xuICAgIGlmIChoYW5kbGUpIHtcbiAgICAgIHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3IgPSB0aGlzLmdldFJlc2l6ZUN1cnNvcihoYW5kbGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0luc2lkZUNyb3BBcmVhKHgsIHkpKSB7XG4gICAgICB0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yID0gJ21vdmUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yID0gJ2RlZmF1bHQnO1xuICAgIH1cbiAgICBcbiAgICAvLyBIYW5kbGUgZHJhZ2dpbmdcbiAgICBpZiAodGhpcy5pc0RyYWdnaW5nKSB7XG4gICAgICBjb25zdCBkeCA9IHggLSB0aGlzLmRyYWdTdGFydFg7XG4gICAgICBjb25zdCBkeSA9IHkgLSB0aGlzLmRyYWdTdGFydFk7XG4gICAgICBcbiAgICAgIC8vIENvbnN0cmFpbiBjcm9wIGFyZWEgdG8gaW1hZ2UgYm91bmRzXG4gICAgICBjb25zdCBtaW5YID0gdGhpcy5pbWFnZU9mZnNldFg7XG4gICAgICBjb25zdCBtYXhYID0gdGhpcy5pbWFnZU9mZnNldFggKyB0aGlzLmltZy53aWR0aCAqIHRoaXMuaW1hZ2VTY2FsZSAtIHRoaXMuY3JvcFNpemU7XG4gICAgICBjb25zdCBtaW5ZID0gdGhpcy5pbWFnZU9mZnNldFk7XG4gICAgICBjb25zdCBtYXhZID0gdGhpcy5pbWFnZU9mZnNldFkgKyB0aGlzLmltZy5oZWlnaHQgKiB0aGlzLmltYWdlU2NhbGUgLSB0aGlzLmNyb3BTaXplO1xuICAgICAgXG4gICAgICB0aGlzLmNyb3BYID0gTWF0aC5tYXgobWluWCwgTWF0aC5taW4obWF4WCwgdGhpcy5jcm9wWCArIGR4KSk7XG4gICAgICB0aGlzLmNyb3BZID0gTWF0aC5tYXgobWluWSwgTWF0aC5taW4obWF4WSwgdGhpcy5jcm9wWSArIGR5KSk7XG4gICAgICBcbiAgICAgIHRoaXMuZHJhZ1N0YXJ0WCA9IHg7XG4gICAgICB0aGlzLmRyYWdTdGFydFkgPSB5O1xuICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICB9XG4gICAgXG4gICAgLy8gSGFuZGxlIHJlc2l6aW5nXG4gICAgaWYgKHRoaXMuaXNSZXNpemluZykge1xuICAgICAgdGhpcy5oYW5kbGVSZXNpemUoeCwgeSk7XG4gICAgICB0aGlzLmRyYWdTdGFydFggPSB4O1xuICAgICAgdGhpcy5kcmFnU3RhcnRZID0geTtcbiAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZVVwKCk6IHZvaWQge1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgIHRoaXMuaXNSZXNpemluZyA9IGZhbHNlO1xuICAgIHRoaXMucmVzaXplSGFuZGxlID0gJyc7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVRvdWNoU3RhcnQoZTogVG91Y2hFdmVudCk6IHZvaWQge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB0b3VjaCA9IGUudG91Y2hlc1swXTtcbiAgICBjb25zdCBtb3VzZUV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ21vdXNlZG93bicsIHtcbiAgICAgIGNsaWVudFg6IHRvdWNoLmNsaWVudFgsXG4gICAgICBjbGllbnRZOiB0b3VjaC5jbGllbnRZXG4gICAgfSk7XG4gICAgdGhpcy5oYW5kbGVNb3VzZURvd24obW91c2VFdmVudCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVRvdWNoTW92ZShlOiBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHRvdWNoID0gZS50b3VjaGVzWzBdO1xuICAgIGNvbnN0IG1vdXNlRXZlbnQgPSBuZXcgTW91c2VFdmVudCgnbW91c2Vtb3ZlJywge1xuICAgICAgY2xpZW50WDogdG91Y2guY2xpZW50WCxcbiAgICAgIGNsaWVudFk6IHRvdWNoLmNsaWVudFlcbiAgICB9KTtcbiAgICB0aGlzLmhhbmRsZU1vdXNlTW92ZShtb3VzZUV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVG91Y2hFbmQoZTogVG91Y2hFdmVudCk6IHZvaWQge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmhhbmRsZU1vdXNlVXAoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVzaXplSGFuZGxlKHg6IG51bWJlciwgeTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBoYW5kbGVTaXplID0gMjA7XG4gICAgY29uc3QgaGFuZGxlcyA9IHtcbiAgICAgICdudyc6IHsgeDogdGhpcy5jcm9wWCwgeTogdGhpcy5jcm9wWSB9LFxuICAgICAgJ25lJzogeyB4OiB0aGlzLmNyb3BYICsgdGhpcy5jcm9wU2l6ZSwgeTogdGhpcy5jcm9wWSB9LFxuICAgICAgJ3N3JzogeyB4OiB0aGlzLmNyb3BYLCB5OiB0aGlzLmNyb3BZICsgdGhpcy5jcm9wU2l6ZSB9LFxuICAgICAgJ3NlJzogeyB4OiB0aGlzLmNyb3BYICsgdGhpcy5jcm9wU2l6ZSwgeTogdGhpcy5jcm9wWSArIHRoaXMuY3JvcFNpemUgfVxuICAgIH07XG4gICAgXG4gICAgZm9yIChjb25zdCBba2V5LCBwb3NdIG9mIE9iamVjdC5lbnRyaWVzKGhhbmRsZXMpKSB7XG4gICAgICBpZiAoTWF0aC5hYnMoeCAtIHBvcy54KSA8IGhhbmRsZVNpemUgJiYgTWF0aC5hYnMoeSAtIHBvcy55KSA8IGhhbmRsZVNpemUpIHtcbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZXNpemVDdXJzb3IoaGFuZGxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGN1cnNvcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnbncnOiAnbnctcmVzaXplJyxcbiAgICAgICduZSc6ICduZS1yZXNpemUnLFxuICAgICAgJ3N3JzogJ3N3LXJlc2l6ZScsXG4gICAgICAnc2UnOiAnc2UtcmVzaXplJ1xuICAgIH07XG4gICAgcmV0dXJuIGN1cnNvcnNbaGFuZGxlXSB8fCAnZGVmYXVsdCc7XG4gIH1cblxuICBwcml2YXRlIGlzSW5zaWRlQ3JvcEFyZWEoeDogbnVtYmVyLCB5OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4geCA+PSB0aGlzLmNyb3BYICYmIHggPD0gdGhpcy5jcm9wWCArIHRoaXMuY3JvcFNpemUgJiZcbiAgICAgICAgICAgeSA+PSB0aGlzLmNyb3BZICYmIHkgPD0gdGhpcy5jcm9wWSArIHRoaXMuY3JvcFNpemU7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJlc2l6ZSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGR4ID0geCAtIHRoaXMuZHJhZ1N0YXJ0WDtcbiAgICBjb25zdCBkeSA9IHkgLSB0aGlzLmRyYWdTdGFydFk7XG4gICAgXG4gICAgLy8gR2V0IGltYWdlIGJvdW5kc1xuICAgIGNvbnN0IGltZ0xlZnQgPSB0aGlzLmltYWdlT2Zmc2V0WDtcbiAgICBjb25zdCBpbWdUb3AgPSB0aGlzLmltYWdlT2Zmc2V0WTtcbiAgICBjb25zdCBpbWdSaWdodCA9IHRoaXMuaW1hZ2VPZmZzZXRYICsgdGhpcy5pbWcud2lkdGggKiB0aGlzLmltYWdlU2NhbGU7XG4gICAgY29uc3QgaW1nQm90dG9tID0gdGhpcy5pbWFnZU9mZnNldFkgKyB0aGlzLmltZy5oZWlnaHQgKiB0aGlzLmltYWdlU2NhbGU7XG4gICAgXG4gICAgc3dpdGNoICh0aGlzLnJlc2l6ZUhhbmRsZSkge1xuICAgICAgY2FzZSAnc2UnOlxuICAgICAgICB0aGlzLmNyb3BTaXplID0gTWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSwgTWF0aC5taW4oXG4gICAgICAgICAgdGhpcy5jcm9wU2l6ZSArIE1hdGgubWF4KGR4LCBkeSksXG4gICAgICAgICAgTWF0aC5taW4oXG4gICAgICAgICAgICBpbWdSaWdodCAtIHRoaXMuY3JvcFgsXG4gICAgICAgICAgICBpbWdCb3R0b20gLSB0aGlzLmNyb3BZXG4gICAgICAgICAgKVxuICAgICAgICApKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdudyc6XG4gICAgICAgIGNvbnN0IG5ld1NpemUgPSBNYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLCB0aGlzLmNyb3BTaXplIC0gTWF0aC5tYXgoZHgsIGR5KSk7XG4gICAgICAgIGNvbnN0IHNpemVEaWZmID0gdGhpcy5jcm9wU2l6ZSAtIG5ld1NpemU7XG4gICAgICAgIGNvbnN0IG5ld1ggPSB0aGlzLmNyb3BYICsgc2l6ZURpZmY7XG4gICAgICAgIGNvbnN0IG5ld1kgPSB0aGlzLmNyb3BZICsgc2l6ZURpZmY7XG4gICAgICAgIGlmIChuZXdYID49IGltZ0xlZnQgJiYgbmV3WSA+PSBpbWdUb3ApIHtcbiAgICAgICAgICB0aGlzLmNyb3BYID0gbmV3WDtcbiAgICAgICAgICB0aGlzLmNyb3BZID0gbmV3WTtcbiAgICAgICAgICB0aGlzLmNyb3BTaXplID0gbmV3U2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ25lJzpcbiAgICAgICAgY29uc3QgbmVTaXplRHggPSBNYXRoLm1heChkeCwgLWR5KTtcbiAgICAgICAgY29uc3QgbmVOZXdTaXplID0gTWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSwgdGhpcy5jcm9wU2l6ZSArIG5lU2l6ZUR4KTtcbiAgICAgICAgY29uc3QgbmVTaXplRGlmZiA9IG5lTmV3U2l6ZSAtIHRoaXMuY3JvcFNpemU7XG4gICAgICAgIGNvbnN0IG5lTmV3WSA9IHRoaXMuY3JvcFkgLSBuZVNpemVEaWZmO1xuICAgICAgICBpZiAobmVOZXdZID49IGltZ1RvcCAmJiB0aGlzLmNyb3BYICsgbmVOZXdTaXplIDw9IGltZ1JpZ2h0KSB7XG4gICAgICAgICAgdGhpcy5jcm9wWSA9IG5lTmV3WTtcbiAgICAgICAgICB0aGlzLmNyb3BTaXplID0gbmVOZXdTaXplO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3cnOlxuICAgICAgICBjb25zdCBzd1NpemVEeCA9IE1hdGgubWF4KC1keCwgZHkpO1xuICAgICAgICBjb25zdCBzd05ld1NpemUgPSBNYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLCB0aGlzLmNyb3BTaXplICsgc3dTaXplRHgpO1xuICAgICAgICBjb25zdCBzd1NpemVEaWZmID0gc3dOZXdTaXplIC0gdGhpcy5jcm9wU2l6ZTtcbiAgICAgICAgY29uc3Qgc3dOZXdYID0gdGhpcy5jcm9wWCAtIHN3U2l6ZURpZmY7XG4gICAgICAgIGlmIChzd05ld1ggPj0gaW1nTGVmdCAmJiB0aGlzLmNyb3BZICsgc3dOZXdTaXplIDw9IGltZ0JvdHRvbSkge1xuICAgICAgICAgIHRoaXMuY3JvcFggPSBzd05ld1g7XG4gICAgICAgICAgdGhpcy5jcm9wU2l6ZSA9IHN3TmV3U2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcigpOiB2b2lkIHtcbiAgICAvLyBDbGVhciBjYW52YXNlc1xuICAgIHRoaXMuY3R4LmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhcy53aWR0aCwgdGhpcy5jYW52YXMuaGVpZ2h0KTtcbiAgICB0aGlzLm92ZXJsYXlDdHguY2xlYXJSZWN0KDAsIDAsIHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aCwgdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodCk7XG4gICAgXG4gICAgLy8gRmlsbCBiYWNrZ3JvdW5kXG4gICAgdGhpcy5jdHguZmlsbFN0eWxlID0gJyMwMDAwMDAnO1xuICAgIHRoaXMuY3R4LmZpbGxSZWN0KDAsIDAsIHRoaXMuY2FudmFzLndpZHRoLCB0aGlzLmNhbnZhcy5oZWlnaHQpO1xuICAgIFxuICAgIC8vIERyYXcgaW1hZ2VcbiAgICB0aGlzLmN0eC5kcmF3SW1hZ2UoXG4gICAgICB0aGlzLmltZyxcbiAgICAgIHRoaXMuaW1hZ2VPZmZzZXRYLFxuICAgICAgdGhpcy5pbWFnZU9mZnNldFksXG4gICAgICB0aGlzLmltZy53aWR0aCAqIHRoaXMuaW1hZ2VTY2FsZSxcbiAgICAgIHRoaXMuaW1nLmhlaWdodCAqIHRoaXMuaW1hZ2VTY2FsZVxuICAgICk7XG4gICAgXG4gICAgLy8gRHJhdyBvdmVybGF5IG9ubHkgb3ZlciB0aGUgaW1hZ2UgYXJlYVxuICAgIHRoaXMub3ZlcmxheUN0eC5maWxsU3R5bGUgPSAncmdiYSgwLCAwLCAwLCAwLjUpJztcbiAgICB0aGlzLm92ZXJsYXlDdHguZmlsbFJlY3QoXG4gICAgICB0aGlzLmltYWdlT2Zmc2V0WCxcbiAgICAgIHRoaXMuaW1hZ2VPZmZzZXRZLFxuICAgICAgdGhpcy5pbWcud2lkdGggKiB0aGlzLmltYWdlU2NhbGUsXG4gICAgICB0aGlzLmltZy5oZWlnaHQgKiB0aGlzLmltYWdlU2NhbGVcbiAgICApO1xuICAgIFxuICAgIC8vIENsZWFyIGNyb3AgYXJlYVxuICAgIHRoaXMub3ZlcmxheUN0eC5zYXZlKCk7XG4gICAgXG4gICAgaWYgKHRoaXMub3B0aW9ucy5zaGFwZSA9PT0gJ3JvdW5kJykge1xuICAgICAgdGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpO1xuICAgICAgdGhpcy5vdmVybGF5Q3R4LmFyYyhcbiAgICAgICAgdGhpcy5jcm9wWCArIHRoaXMuY3JvcFNpemUgLyAyLFxuICAgICAgICB0aGlzLmNyb3BZICsgdGhpcy5jcm9wU2l6ZSAvIDIsXG4gICAgICAgIHRoaXMuY3JvcFNpemUgLyAyLFxuICAgICAgICAwLFxuICAgICAgICBNYXRoLlBJICogMlxuICAgICAgKTtcbiAgICAgIHRoaXMub3ZlcmxheUN0eC5jbGlwKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKTtcbiAgICAgIHRoaXMub3ZlcmxheUN0eC5yZWN0KHRoaXMuY3JvcFgsIHRoaXMuY3JvcFksIHRoaXMuY3JvcFNpemUsIHRoaXMuY3JvcFNpemUpO1xuICAgICAgdGhpcy5vdmVybGF5Q3R4LmNsaXAoKTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5vdmVybGF5Q3R4LmNsZWFyUmVjdCgwLCAwLCB0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgsIHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQpO1xuICAgIHRoaXMub3ZlcmxheUN0eC5yZXN0b3JlKCk7XG4gICAgXG4gICAgLy8gRHJhdyBjcm9wIGJvcmRlclxuICAgIHRoaXMub3ZlcmxheUN0eC5zdHJva2VTdHlsZSA9ICd3aGl0ZSc7XG4gICAgdGhpcy5vdmVybGF5Q3R4LmxpbmVXaWR0aCA9IDI7XG4gICAgXG4gICAgaWYgKHRoaXMub3B0aW9ucy5zaGFwZSA9PT0gJ3JvdW5kJykge1xuICAgICAgdGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpO1xuICAgICAgdGhpcy5vdmVybGF5Q3R4LmFyYyhcbiAgICAgICAgdGhpcy5jcm9wWCArIHRoaXMuY3JvcFNpemUgLyAyLFxuICAgICAgICB0aGlzLmNyb3BZICsgdGhpcy5jcm9wU2l6ZSAvIDIsXG4gICAgICAgIHRoaXMuY3JvcFNpemUgLyAyLFxuICAgICAgICAwLFxuICAgICAgICBNYXRoLlBJICogMlxuICAgICAgKTtcbiAgICAgIHRoaXMub3ZlcmxheUN0eC5zdHJva2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdmVybGF5Q3R4LnN0cm9rZVJlY3QodGhpcy5jcm9wWCwgdGhpcy5jcm9wWSwgdGhpcy5jcm9wU2l6ZSwgdGhpcy5jcm9wU2l6ZSk7XG4gICAgfVxuICAgIFxuICAgIC8vIERyYXcgcmVzaXplIGhhbmRsZXNcbiAgICB0aGlzLmRyYXdSZXNpemVIYW5kbGVzKCk7XG4gIH1cblxuICBwcml2YXRlIGRyYXdSZXNpemVIYW5kbGVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGhhbmRsZVNpemUgPSA4O1xuICAgIGNvbnN0IGhhbmRsZXMgPSBbXG4gICAgICB7IHg6IHRoaXMuY3JvcFgsIHk6IHRoaXMuY3JvcFkgfSxcbiAgICAgIHsgeDogdGhpcy5jcm9wWCArIHRoaXMuY3JvcFNpemUsIHk6IHRoaXMuY3JvcFkgfSxcbiAgICAgIHsgeDogdGhpcy5jcm9wWCwgeTogdGhpcy5jcm9wWSArIHRoaXMuY3JvcFNpemUgfSxcbiAgICAgIHsgeDogdGhpcy5jcm9wWCArIHRoaXMuY3JvcFNpemUsIHk6IHRoaXMuY3JvcFkgKyB0aGlzLmNyb3BTaXplIH1cbiAgICBdO1xuICAgIFxuICAgIHRoaXMub3ZlcmxheUN0eC5maWxsU3R5bGUgPSAnd2hpdGUnO1xuICAgIFxuICAgIGhhbmRsZXMuZm9yRWFjaChoYW5kbGUgPT4ge1xuICAgICAgdGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpO1xuICAgICAgdGhpcy5vdmVybGF5Q3R4LmFyYyhoYW5kbGUueCwgaGFuZGxlLnksIGhhbmRsZVNpemUsIDAsIE1hdGguUEkgKiAyKTtcbiAgICAgIHRoaXMub3ZlcmxheUN0eC5maWxsKCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRDcm9wcGVkSW1hZ2UoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjcm9wQ2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgY29uc3QgY3JvcEN0eCA9IGNyb3BDYW52YXMuZ2V0Q29udGV4dCgnMmQnKSE7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBhY3R1YWwgY3JvcCBzaXplIGluIG9yaWdpbmFsIGltYWdlIHBpeGVsc1xuICAgIGNvbnN0IHNjYWxlID0gMSAvIHRoaXMuaW1hZ2VTY2FsZTtcbiAgICBjb25zdCBvcmlnaW5hbENyb3BTaXplID0gdGhpcy5jcm9wU2l6ZSAqIHNjYWxlO1xuICAgIFxuICAgIC8vIFVzZSByZXF1ZXN0ZWQgb3V0cHV0IHNpemUsIGJ1dCB3YXJuIGlmIHVwc2NhbGluZ1xuICAgIGNvbnN0IG91dHB1dFNpemUgPSB0aGlzLm9wdGlvbnMub3V0cHV0U2l6ZSE7XG4gICAgXG4gICAgaWYgKG91dHB1dFNpemUgPiBvcmlnaW5hbENyb3BTaXplKSB7XG4gICAgICBjb25zb2xlLmluZm8oYFByb2ZpbGUgcGljdHVyZTogVXBzY2FsaW5nIGZyb20gJHtNYXRoLnJvdW5kKG9yaWdpbmFsQ3JvcFNpemUpfXB4IHRvICR7b3V0cHV0U2l6ZX1weGApO1xuICAgIH1cbiAgICBcbiAgICBjcm9wQ2FudmFzLndpZHRoID0gb3V0cHV0U2l6ZTtcbiAgICBjcm9wQ2FudmFzLmhlaWdodCA9IG91dHB1dFNpemU7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIHNvdXJjZSBjb29yZGluYXRlc1xuICAgIGNvbnN0IHN4ID0gKHRoaXMuY3JvcFggLSB0aGlzLmltYWdlT2Zmc2V0WCkgKiBzY2FsZTtcbiAgICBjb25zdCBzeSA9ICh0aGlzLmNyb3BZIC0gdGhpcy5pbWFnZU9mZnNldFkpICogc2NhbGU7XG4gICAgY29uc3Qgc1NpemUgPSB0aGlzLmNyb3BTaXplICogc2NhbGU7XG4gICAgXG4gICAgLy8gQXBwbHkgc2hhcGUgbWFzayBpZiByb3VuZFxuICAgIGlmICh0aGlzLm9wdGlvbnMuc2hhcGUgPT09ICdyb3VuZCcpIHtcbiAgICAgIGNyb3BDdHguYmVnaW5QYXRoKCk7XG4gICAgICBjcm9wQ3R4LmFyYyhvdXRwdXRTaXplIC8gMiwgb3V0cHV0U2l6ZSAvIDIsIG91dHB1dFNpemUgLyAyLCAwLCBNYXRoLlBJICogMik7XG4gICAgICBjcm9wQ3R4LmNsaXAoKTtcbiAgICB9XG4gICAgXG4gICAgLy8gRW5hYmxlIGltYWdlIHNtb290aGluZyBmb3IgcXVhbGl0eVxuICAgIGNyb3BDdHguaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gdHJ1ZTtcbiAgICBjcm9wQ3R4LmltYWdlU21vb3RoaW5nUXVhbGl0eSA9ICdoaWdoJztcbiAgICBcbiAgICAvLyBEcmF3IGNyb3BwZWQgaW1hZ2VcbiAgICBjcm9wQ3R4LmRyYXdJbWFnZShcbiAgICAgIHRoaXMuaW1nLFxuICAgICAgc3gsIHN5LCBzU2l6ZSwgc1NpemUsXG4gICAgICAwLCAwLCBvdXRwdXRTaXplLCBvdXRwdXRTaXplXG4gICAgKTtcbiAgICBcbiAgICAvLyBEZXRlY3QgZm9ybWF0IGZyb20gb3JpZ2luYWwgaW1hZ2VcbiAgICBjb25zdCBpc1BuZyA9IHRoaXMub3B0aW9ucy5pbWFnZS5pbmNsdWRlcygnaW1hZ2UvcG5nJyk7XG4gICAgY29uc3QgZm9ybWF0ID0gaXNQbmcgPyAnaW1hZ2UvcG5nJyA6ICdpbWFnZS9qcGVnJztcbiAgICBcbiAgICByZXR1cm4gY3JvcENhbnZhcy50b0RhdGFVUkwoZm9ybWF0LCB0aGlzLm9wdGlvbnMub3V0cHV0UXVhbGl0eSk7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2FudmFzLnJlbW92ZSgpO1xuICAgIHRoaXMub3ZlcmxheUNhbnZhcy5yZW1vdmUoKTtcbiAgfVxufSIsICJpbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgcHJvcGVydHksXG4gIGNzcyxcbiAgY3NzTWFuYWdlcixcbiAgc3RhdGUsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBjb2xvcnMgZnJvbSAnLi4vLi4vMDBjb2xvcnMuanMnO1xuaW1wb3J0IHsgY3NzR2Vpc3RGb250RmFtaWx5IH0gZnJvbSAnLi4vLi4vMDBmb250cy5qcyc7XG5pbXBvcnQgeyB6SW5kZXhSZWdpc3RyeSB9IGZyb20gJy4uLy4uLzAwemluZGV4LmpzJztcbmltcG9ydCAnLi4vLi4vZGVlcy1pY29uL2RlZXMtaWNvbi5qcyc7XG5pbXBvcnQgJy4uLy4uLzAwZ3JvdXAtYnV0dG9uL2RlZXMtYnV0dG9uL2RlZXMtYnV0dG9uLmpzJztcbmltcG9ydCAnLi4vLi4vZGVlcy13aW5kb3dsYXllci9kZWVzLXdpbmRvd2xheWVyLmpzJztcbmltcG9ydCB7IERlZXNXaW5kb3dMYXllciB9IGZyb20gJy4uLy4uL2RlZXMtd2luZG93bGF5ZXIvZGVlcy13aW5kb3dsYXllci5qcyc7XG5pbXBvcnQgeyBJbWFnZUNyb3BwZXIgfSBmcm9tICcuL3Byb2ZpbGVwaWN0dXJlLmNyb3BwZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBQcm9maWxlU2hhcGUgfSBmcm9tICcuL2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUuanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLXByb2ZpbGVwaWN0dXJlLW1vZGFsJylcbmV4cG9ydCBjbGFzcyBQcm9maWxlUGljdHVyZU1vZGFsIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgaW5pdGlhbEltYWdlOiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3Igc2hhcGU6IFByb2ZpbGVTaGFwZSA9ICdyb3VuZCc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIG91dHB1dFNpemU6IG51bWJlciA9IDgwMDtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3Igb3V0cHV0UXVhbGl0eTogbnVtYmVyID0gMC45NTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBjdXJyZW50U3RlcDogJ2Nyb3AnIHwgJ3ByZXZpZXcnID0gJ2Nyb3AnO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGNyb3BwZWRJbWFnZTogc3RyaW5nID0gJyc7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgaXNQcm9jZXNzaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBjcm9wcGVyOiBJbWFnZUNyb3BwZXIgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB3aW5kb3dMYXllcjogYW55O1xuICBwcml2YXRlIHpJbmRleDogbnVtYmVyID0gMDtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAke2Nzc0dlaXN0Rm9udEZhbWlseX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzMzMycsICcjZmZmJyl9O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpO1xuICAgICAgfVxuXG4gICAgICAubW9kYWwtY29udGFpbmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzBhMGEwYScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4wOCknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KScpfTtcbiAgICAgICAgYm94LXNoYWRvdzogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoXG4gICAgICAgICAgJzAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDEwcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCknLFxuICAgICAgICAgICcwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiknXG4gICAgICAgICl9O1xuICAgICAgICB3aWR0aDogNDgwcHg7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGUoMC45OCk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIGFuaW1hdGlvbjogbW9kYWxTaG93IDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgZm9yd2FyZHM7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgbW9kYWxTaG93IHtcbiAgICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1vZGFsLWhlYWRlciB7XG4gICAgICAgIGhlaWdodDogNTJweDtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4wNiknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KScpfTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC5tb2RhbC10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICAgICAgfVxuXG4gICAgICAuY2xvc2UtYnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MTcxN2EnLCAnIzcxNzE3YScpfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jbG9zZS1idXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjA1KScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgIH1cblxuICAgICAgLmNsb3NlLWJ1dHRvbjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjA4KScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpJyl9O1xuICAgICAgfVxuXG4gICAgICAubW9kYWwtYm9keSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMjBweDtcbiAgICAgIH1cblxuICAgICAgLmNyb3BwZXItY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwMDAwMCcsICcjMDAwMDAwJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3gtc2hhZG93OiAke2Nzc01hbmFnZXIuYmRUaGVtZShcbiAgICAgICAgICAnaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNiknLFxuICAgICAgICAgICdpbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpJ1xuICAgICAgICApfTtcbiAgICAgIH1cblxuICAgICAgLnByZXZpZXctY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAyMHB4O1xuICAgICAgfVxuXG4gICAgICAucHJldmlldy1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgaGVpZ2h0OiAxODBweDtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIGJvcmRlcjogNHB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMxODE4MWInKX07XG4gICAgICAgIGJveC1zaGFkb3c6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKFxuICAgICAgICAgICcwIDEwcHggMTVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCA0cHggNnB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjA1KScsXG4gICAgICAgICAgJzAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiknXG4gICAgICAgICl9O1xuICAgICAgfVxuXG4gICAgICAucHJldmlldy1pbWFnZS5yb3VuZCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIH1cblxuICAgICAgLnByZXZpZXctaW1hZ2Uuc3F1YXJlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgIH1cblxuICAgICAgLnN1Y2Nlc3MtbWVzc2FnZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzEwYjk4MScsICcjMTBiOTgxJyl9O1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGFuaW1hdGlvbjogc3VjY2Vzc1B1bHNlIDAuNHMgZWFzZS1vdXQ7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgc3VjY2Vzc1B1bHNlIHtcbiAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IG9wYWNpdHk6IDA7IH1cbiAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsgfVxuICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfVxuICAgICAgfVxuXG4gICAgICAubW9kYWwtZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogMjBweCAyNHB4O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4wNiknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KScpfTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgfVxuXG4gICAgICAuaW5zdHJ1Y3Rpb25zIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MTcxN2EnLCAnI2ExYTFhYScpfTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICAgICAgfVxuXG4gICAgICAubG9hZGluZy1zcGlubmVyIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4xKScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSknKX07XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyM2MGE1ZmEnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuNnMgbGluZWFyIGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIHNwaW4ge1xuICAgICAgICB0byB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTtcbiAgICAgICAgICBtYXJnaW46IDE2cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5tb2RhbC1ib2R5IHtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIFxuICAgIC8vIENyZWF0ZSB3aW5kb3cgbGF5ZXIgZmlyc3QgKGl0IHdpbGwgZ2V0IGl0cyBvd24gei1pbmRleClcbiAgICB0aGlzLndpbmRvd0xheWVyID0gYXdhaXQgRGVlc1dpbmRvd0xheWVyLmNyZWF0ZUFuZFNob3coe1xuICAgICAgYmx1cjogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgICBcbiAgICAvLyBOb3cgZ2V0IHotaW5kZXggZm9yIG1vZGFsICh3aWxsIGJlIGFib3ZlIHdpbmRvdyBsYXllcilcbiAgICB0aGlzLnpJbmRleCA9IHpJbmRleFJlZ2lzdHJ5LmdldE5leHRaSW5kZXgoKTtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXotaW5kZXgnLCB0aGlzLnpJbmRleC50b1N0cmluZygpKTtcbiAgICBcbiAgICAvLyBSZWdpc3RlciB3aXRoIHotaW5kZXggcmVnaXN0cnlcbiAgICB6SW5kZXhSZWdpc3RyeS5yZWdpc3Rlcih0aGlzLCB0aGlzLnpJbmRleCk7XG4gIH1cblxuICBhc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIFxuICAgIC8vIENsZWFudXBcbiAgICBpZiAodGhpcy5jcm9wcGVyKSB7XG4gICAgICB0aGlzLmNyb3BwZXIuZGVzdHJveSgpO1xuICAgIH1cbiAgICBcbiAgICBpZiAodGhpcy53aW5kb3dMYXllcikge1xuICAgICAgYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCk7XG4gICAgfVxuICAgIFxuICAgIC8vIFVucmVnaXN0ZXIgZnJvbSB6LWluZGV4IHJlZ2lzdHJ5XG4gICAgekluZGV4UmVnaXN0cnkudW5yZWdpc3Rlcih0aGlzKTtcbiAgfVxuXG4gIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGFpbmVyXCIgQGNsaWNrPSR7KGU6IEV2ZW50KSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+XG4gICAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXAgPT09ICdjcm9wJyA/ICdBZGp1c3QgSW1hZ2UnIDogJ1N1Y2Nlc3MnfVxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiIEBjbGljaz0ke3RoaXMuY2xvc2V9IHRpdGxlPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj1cImx1Y2lkZTp4XCIgaWNvblNpemU9XCIxNlwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwID09PSAnY3JvcCcgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc3RydWN0aW9uc1wiPlxuICAgICAgICAgICAgICBQb3NpdGlvbiBhbmQgcmVzaXplIHRoZSBzcXVhcmUgdG8gc2VsZWN0IHlvdXIgcHJvZmlsZSBhcmVhXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcm9wcGVyLWNvbnRhaW5lclwiIGlkPVwiY3JvcHBlckNvbnRhaW5lclwiPjwvZGl2PlxuICAgICAgICAgIGAgOiBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICR7dGhpcy5pc1Byb2Nlc3NpbmcgPyBodG1sYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLXNwaW5uZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5zdHJ1Y3Rpb25zXCI+U2F2aW5nLi4uPC9kaXY+XG4gICAgICAgICAgICAgIGAgOiBodG1sYFxuICAgICAgICAgICAgICAgIDxpbWcgXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInByZXZpZXctaW1hZ2UgJHt0aGlzLnNoYXBlfVwiIFxuICAgICAgICAgICAgICAgICAgc3JjPVwiJHt0aGlzLmNyb3BwZWRJbWFnZX1cIiBcbiAgICAgICAgICAgICAgICAgIGFsdD1cIkNyb3BwZWQgcHJldmlld1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VjY2Vzcy1tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249XCJsdWNpZGU6Y2hlY2tcIiBpY29uU2l6ZT1cIjE2XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5Mb29raW5nIGdvb2QhPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwID09PSAnY3JvcCcgPyBodG1sYFxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJkZXN0cnVjdGl2ZVwiIHNpemU9XCJzbVwiIEBjbGljaz0ke3RoaXMuY2xvc2V9PlxuICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT1cImRlZmF1bHRcIiBzaXplPVwic21cIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNyb3B9PlxuICAgICAgICAgICAgICBTYXZlXG4gICAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgYXN5bmMgZmlyc3RVcGRhdGVkKCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwID09PSAnY3JvcCcpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZUNyb3BwZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXRpYWxpemVDcm9wcGVyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7XG4gICAgXG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5zaGFkb3dSb290IS5nZXRFbGVtZW50QnlJZCgnY3JvcHBlckNvbnRhaW5lcicpO1xuICAgIGlmICghY29udGFpbmVyKSByZXR1cm47XG4gICAgXG4gICAgdGhpcy5jcm9wcGVyID0gbmV3IEltYWdlQ3JvcHBlcih7XG4gICAgICBjb250YWluZXIsXG4gICAgICBpbWFnZTogdGhpcy5pbml0aWFsSW1hZ2UsXG4gICAgICBzaGFwZTogdGhpcy5zaGFwZSxcbiAgICAgIGFzcGVjdFJhdGlvOiAxLFxuICAgICAgb3V0cHV0U2l6ZTogdGhpcy5vdXRwdXRTaXplLFxuICAgICAgb3V0cHV0UXVhbGl0eTogdGhpcy5vdXRwdXRRdWFsaXR5LFxuICAgIH0pO1xuICAgIFxuICAgIGF3YWl0IHRoaXMuY3JvcHBlci5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUNyb3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNyb3BwZXIpIHJldHVybjtcbiAgICBcbiAgICB0cnkge1xuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5jdXJyZW50U3RlcCA9ICdwcmV2aWV3JztcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7XG4gICAgICBcbiAgICAgIC8vIEdldCBjcm9wcGVkIGltYWdlXG4gICAgICBjb25zdCBjcm9wcGVkRGF0YSA9IGF3YWl0IHRoaXMuY3JvcHBlci5nZXRDcm9wcGVkSW1hZ2UoKTtcbiAgICAgIHRoaXMuY3JvcHBlZEltYWdlID0gY3JvcHBlZERhdGE7XG4gICAgICBcbiAgICAgIC8vIFNpbXVsYXRlIHByb2Nlc3NpbmcgdGltZSBmb3IgYmV0dGVyIFVYXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgODAwKSk7XG4gICAgICBcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICBcbiAgICAgIC8vIEVtaXQgc2F2ZSBldmVudFxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnc2F2ZScsIHtcbiAgICAgICAgZGV0YWlsOiB7IGNyb3BwZWRJbWFnZTogdGhpcy5jcm9wcGVkSW1hZ2UgfSxcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWVcbiAgICAgIH0pKTtcbiAgICAgIFxuICAgICAgLy8gQXV0byBjbG9zZSBhZnRlciBzaG93aW5nIHN1Y2Nlc3NcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9LCAxNTAwKTtcbiAgICAgIFxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjcm9wcGluZyBpbWFnZTonLCBlcnJvcik7XG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmUoKTtcbiAgfVxufSIsICJpbXBvcnQgeyBodG1sLCBjc3MgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICdAZGVzaWduLmVzdGF0ZS9kZWVzLXdjY3Rvb2xzL2RlbW90b29scyc7XG5pbXBvcnQgJy4uLy4uL2RlZXMtcGFuZWwvZGVlcy1wYW5lbC5qcyc7XG5pbXBvcnQgJy4vZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZS5qcyc7XG5pbXBvcnQgdHlwZSB7IERlZXNJbnB1dFByb2ZpbGVQaWN0dXJlIH0gZnJvbSAnLi9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlLmpzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGBcbiAgPHN0eWxlPlxuICAgICR7Y3NzYFxuICAgICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICBcbiAgICAgIGRlZXMtcGFuZWwge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZGVtby1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDQ4cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmRlbW8tb3V0cHV0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDUsIDI0MiwgMC4xKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5mZWF0dXJlLWxpc3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5mZWF0dXJlLWxpc3QgbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICB9XG4gICAgYH1cbiAgPC9zdHlsZT5cbiAgXG4gIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRhaW5lclwiPlxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gQmFzaWMgZGVtbyB3aXRoIHJvdW5kIHByb2ZpbGUgcGljdHVyZVxuICAgICAgY29uc3Qgcm91bmRQcm9maWxlID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlW3NoYXBlPVwicm91bmRcIl0nKTtcbiAgICAgIFxuICAgICAgaWYgKHJvdW5kUHJvZmlsZSkge1xuICAgICAgICByb3VuZFByb2ZpbGUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBEZWVzSW5wdXRQcm9maWxlUGljdHVyZTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUm91bmQgcHJvZmlsZSBwaWN0dXJlIGNoYW5nZWQ6JywgdGFyZ2V0LnZhbHVlPy5zdWJzdHJpbmcoMCwgNTApICsgJy4uLicpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9fT5cbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keydQcm9maWxlIFBpY3R1cmUgSW5wdXQnfSAuc3VidGl0bGU9JHsnQmFzaWMgdXNhZ2Ugd2l0aCByb3VuZCBhbmQgc3F1YXJlIHNoYXBlcyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVtby1yb3dcIj5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZVxuICAgICAgICAgICAgbGFiZWw9XCJQcm9maWxlIFBpY3R1cmUgKFJvdW5kKVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIkNsaWNrIHRvIHVwbG9hZCBvciBkcmFnICYgZHJvcCBhbiBpbWFnZVwiXG4gICAgICAgICAgICBzaGFwZT1cInJvdW5kXCJcbiAgICAgICAgICAgIHNpemU9XCIxMjBcIlxuICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmVcbiAgICAgICAgICAgIGxhYmVsPVwiUHJvZmlsZSBQaWN0dXJlIChTcXVhcmUpXCJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiU3VwcG9ydHMgSlBFRywgUE5HLCBhbmQgV2ViUCBmb3JtYXRzXCJcbiAgICAgICAgICAgIHNoYXBlPVwic3F1YXJlXCJcbiAgICAgICAgICAgIHNpemU9XCIxMjBcIlxuICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cblxuICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIChlbGVtZW50QXJnOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgLy8gRGlmZmVyZW50IHNpemVzIGRlbW9cbiAgICAgIGNvbnN0IHByb2ZpbGVzID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlJyk7XG4gICAgICBwcm9maWxlcy5mb3JFYWNoKChwcm9maWxlKSA9PiB7XG4gICAgICAgIHByb2ZpbGUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBEZWVzSW5wdXRQcm9maWxlUGljdHVyZTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgUHJvZmlsZSAoc2l6ZSAke3RhcmdldC5zaXplfSkgY2hhbmdlZGApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J1NpemUgVmFyaWF0aW9ucyd9IC5zdWJ0aXRsZT0keydQcm9maWxlIHBpY3R1cmVzIGluIGRpZmZlcmVudCBzaXplcyd9PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVtby1yb3dcIj5cbiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZVxuICAgICAgICAgICAgbGFiZWw9XCJTbWFsbCAoODBweClcIlxuICAgICAgICAgICAgc2hhcGU9XCJyb3VuZFwiXG4gICAgICAgICAgICBzaXplPVwiODBcIlxuICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmVcbiAgICAgICAgICAgIGxhYmVsPVwiTWVkaXVtICgxMjBweClcIlxuICAgICAgICAgICAgc2hhcGU9XCJyb3VuZFwiXG4gICAgICAgICAgICBzaXplPVwiMTIwXCJcbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlXG4gICAgICAgICAgICBsYWJlbD1cIkxhcmdlICgxNjBweClcIlxuICAgICAgICAgICAgc2hhcGU9XCJyb3VuZFwiXG4gICAgICAgICAgICBzaXplPVwiMTYwXCJcbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+XG5cbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIC8vIFByZS1maWxsZWQgcHJvZmlsZSB3aXRoIHBsYWNlaG9sZGVyXG4gICAgICBjb25zdCBzYW1wbGVJbWFnZVVybCA9ICdkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4WkdWbWN6NEtJQ0FnSUR4c2FXNWxZWEpIY21Ga2FXVnVkQ0JwWkQwaVozSmhaR2xsYm5RaUlIZ3hQU0l3SlNJZ2VURTlJakFsSWlCNE1qMGlNVEF3SlNJZ2VUSTlJakV3TUNVaVBnb2dJQ0FnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakFsSWlCemRHOXdMV052Ykc5eVBTSWpOalkzWldWaElpQXZQZ29nSUNBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlNM05qUmlZVElpSUM4K0NpQWdJQ0E4TDJ4cGJtVmhja2R5WVdScFpXNTBQZ29nSUR3dlpHVm1jejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdabWxzYkQwaWRYSnNLQ05uY21Ga2FXVnVkQ2tpSUM4K0NpQWdQSFJsZUhRZ2VEMGlOVEFsSWlCNVBTSTFNQ1VpSUdSdmJXbHVZVzUwTFdKaGMyVnNhVzVsUFNKdGFXUmtiR1VpSUhSbGVIUXRZVzVqYUc5eVBTSnRhV1JrYkdVaUlHWnZiblF0Wm1GdGFXeDVQU0pCY21saGJDSWdabTl1ZEMxemFYcGxQU0k0TUNJZ1ptbHNiRDBpZDJocGRHVWlQa3BFUEM5MFpYaDBQZ284TDNOMlp6ND0nO1xuICAgICAgXG4gICAgICBjb25zdCBwcmVmaWxsZWRQcm9maWxlID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCcjcHJlZmlsbGVkLXByb2ZpbGUnKSBhcyBEZWVzSW5wdXRQcm9maWxlUGljdHVyZTtcbiAgICAgIGlmIChwcmVmaWxsZWRQcm9maWxlKSB7XG4gICAgICAgIHByZWZpbGxlZFByb2ZpbGUudmFsdWUgPSBzYW1wbGVJbWFnZVVybDtcbiAgICAgICAgXG4gICAgICAgIHByZWZpbGxlZFByb2ZpbGUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBEZWVzSW5wdXRQcm9maWxlUGljdHVyZTtcbiAgICAgICAgICBjb25zdCBvdXRwdXQgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJyNwcmVmaWxsZWQtb3V0cHV0Jyk7XG4gICAgICAgICAgaWYgKG91dHB1dCkge1xuICAgICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gdGFyZ2V0LnZhbHVlID8gXG4gICAgICAgICAgICAgIGBJbWFnZSBkYXRhOiAke3RhcmdldC52YWx1ZS5zdWJzdHJpbmcoMCwgODApfS4uLmAgOiBcbiAgICAgICAgICAgICAgJ05vIGltYWdlIHNlbGVjdGVkJztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J1ByZS1maWxsZWQgYW5kIFZhbHVlIEJpbmRpbmcnfSAuc3VidGl0bGU9JHsnUHJvZmlsZSBwaWN0dXJlIHdpdGggaW5pdGlhbCB2YWx1ZSBhbmQgY2hhbmdlIHRyYWNraW5nJ30+XG4gICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlXG4gICAgICAgICAgaWQ9XCJwcmVmaWxsZWQtcHJvZmlsZVwiXG4gICAgICAgICAgbGFiZWw9XCJFZGl0IEV4aXN0aW5nIFByb2ZpbGVcIlxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiQ2xpY2sgdGhlIGVkaXQgYnV0dG9uIHRvIGNoYW5nZSBvciBkZWxldGUgdG8gcmVtb3ZlXCJcbiAgICAgICAgICBzaGFwZT1cInJvdW5kXCJcbiAgICAgICAgICBzaXplPVwiMTUwXCJcbiAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgaWQ9XCJwcmVmaWxsZWQtb3V0cHV0XCIgY2xhc3M9XCJkZW1vLW91dHB1dFwiPlxuICAgICAgICAgIEltYWdlIGRhdGEgd2lsbCBhcHBlYXIgaGVyZSB3aGVuIGNoYW5nZWRcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuXG4gICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgKGVsZW1lbnRBcmc6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAvLyBEaXNhYmxlZCBzdGF0ZSBkZW1vXG4gICAgICBjb25zdCBkaXNhYmxlZFByb2ZpbGUgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJyNkaXNhYmxlZC1wcm9maWxlJykgYXMgRGVlc0lucHV0UHJvZmlsZVBpY3R1cmU7XG4gICAgICBpZiAoZGlzYWJsZWRQcm9maWxlKSB7XG4gICAgICAgIGRpc2FibGVkUHJvZmlsZS52YWx1ZSA9ICdkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ1ptbHNiRDBpSTJOalkyTmpZeUlnTHo0S0lDQThkR1Y0ZENCNFBTSTFNQ1VpSUhrOUlqVXdKU0lnWkc5dGFXNWhiblF0WW1GelpXeHBibVU5SW0xcFpHUnNaU0lnZEdWNGRDMWhibU5vYjNJOUltMXBaR1JzWlNJZ1ptOXVkQzFtWVcxcGJIazlJa0Z5YVdGc0lpQm1iMjUwTFhOcGVtVTlJall3SWlCbWFXeHNQU0ozYUdsMFpTSStUa0U4TDNSbGVIUStDand2YzNablBnPT0nO1xuICAgICAgfVxuICAgIH19PlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0Zvcm0gU3RhdGVzJ30gLnN1YnRpdGxlPSR7J0RpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zJ30+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXJvd1wiPlxuICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlXG4gICAgICAgICAgICBsYWJlbD1cIlJlcXVpcmVkIEZpZWxkXCJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiVGhpcyBmaWVsZCBpcyByZXF1aXJlZFwiXG4gICAgICAgICAgICBzaGFwZT1cInJvdW5kXCJcbiAgICAgICAgICAgIC5yZXF1aXJlZD0ke3RydWV9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZVxuICAgICAgICAgICAgaWQ9XCJkaXNhYmxlZC1wcm9maWxlXCJcbiAgICAgICAgICAgIGxhYmVsPVwiRGlzYWJsZWQgU3RhdGVcIlxuICAgICAgICAgICAgZGVzY3JpcHRpb249XCJDYW5ub3QgYmUgZWRpdGVkXCJcbiAgICAgICAgICAgIHNoYXBlPVwic3F1YXJlXCJcbiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RydWV9XG4gICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZVxuICAgICAgICAgICAgbGFiZWw9XCJVcGxvYWQgT25seVwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cIkRlbGV0ZSBub3QgYWxsb3dlZFwiXG4gICAgICAgICAgICBzaGFwZT1cInJvdW5kXCJcbiAgICAgICAgICAgIC5hbGxvd0RlbGV0ZT0ke2ZhbHNlfVxuICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGVlcy1kZW1vd3JhcHBlcj5cblxuICAgIDxkZWVzLWRlbW93cmFwcGVyPlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7J0ZlYXR1cmVzJ30gLnN1YnRpdGxlPSR7J0NvbXBsZXRlIGZlYXR1cmUgc2V0IG9mIHRoZSBwcm9maWxlIHBpY3R1cmUgaW5wdXQnfT5cbiAgICAgICAgPHVsIGNsYXNzPVwiZmVhdHVyZS1saXN0XCI+XG4gICAgICAgICAgPGxpPjxzdHJvbmc+SW1hZ2UgVXBsb2FkOjwvc3Ryb25nPiBDbGljayB0byB1cGxvYWQgb3IgZHJhZyAmIGRyb3AgaW1hZ2VzPC9saT5cbiAgICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBDcm9wcGluZzo8L3N0cm9uZz4gSW50ZXJhY3RpdmUgY3JvcCB0b29sIHdpdGggcmVzaXplIGhhbmRsZXM8L2xpPlxuICAgICAgICAgIDxsaT48c3Ryb25nPlNoYXBlIFN1cHBvcnQ6PC9zdHJvbmc+IFJvdW5kIG9yIHNxdWFyZSBwcm9maWxlIHBpY3R1cmVzPC9saT5cbiAgICAgICAgICA8bGk+PHN0cm9uZz5TaXplIEN1c3RvbWl6YXRpb246PC9zdHJvbmc+IEFkanVzdGFibGUgZGltZW5zaW9uczwvbGk+XG4gICAgICAgICAgPGxpPjxzdHJvbmc+UHJldmlldyAmIEVkaXQ6PC9zdHJvbmc+IEhvdmVyIG92ZXJsYXkgd2l0aCBlZGl0IGFuZCBkZWxldGUgb3B0aW9uczwvbGk+XG4gICAgICAgICAgPGxpPjxzdHJvbmc+RmlsZSBWYWxpZGF0aW9uOjwvc3Ryb25nPiBGb3JtYXQgYW5kIHNpemUgcmVzdHJpY3Rpb25zPC9saT5cbiAgICAgICAgICA8bGk+PHN0cm9uZz5SZXNwb25zaXZlIERlc2lnbjo8L3N0cm9uZz4gV29ya3Mgb24gZGVza3RvcCBhbmQgbW9iaWxlIGRldmljZXM8L2xpPlxuICAgICAgICAgIDxsaT48c3Ryb25nPkZvcm0gSW50ZWdyYXRpb246PC9zdHJvbmc+IFN0YW5kYXJkIGZvcm0gdmFsdWUgYmluZGluZyBhbmQgdmFsaWRhdGlvbjwvbGk+XG4gICAgICAgICAgPGxpPjxzdHJvbmc+QWNjZXNzaWJpbGl0eTo8L3N0cm9uZz4gS2V5Ym9hcmQgbmF2aWdhdGlvbiBhbmQgc2NyZWVuIHJlYWRlciBzdXBwb3J0PC9saT5cbiAgICAgICAgICA8bGk+PHN0cm9uZz5aLUluZGV4IE1hbmFnZW1lbnQ6PC9zdHJvbmc+IFByb3BlciBtb2RhbCBzdGFja2luZyB3aXRoIHJlZ2lzdHJ5PC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAyNHB4O1wiPlxuICAgICAgICAgIDxzdHJvbmc+U3VwcG9ydGVkIEZvcm1hdHM6PC9zdHJvbmc+IEpQRUcsIFBORywgV2ViUDxicj5cbiAgICAgICAgICA8c3Ryb25nPk1heCBGaWxlIFNpemU6PC9zdHJvbmc+IDVNQiAoY29uZmlndXJhYmxlKTxicj5cbiAgICAgICAgICA8c3Ryb25nPk91dHB1dCBGb3JtYXQ6PC9zdHJvbmc+IEJhc2U2NCBlbmNvZGVkIEpQRUdcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICA8L2Rpdj5cbmA7IiwgImltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIGh0bWwsXG4gIHByb3BlcnR5LFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG4gIHN0YXRlLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgRGVlc0lucHV0QmFzZSB9IGZyb20gJy4uL2RlZXMtaW5wdXQtYmFzZS9kZWVzLWlucHV0LWJhc2UuanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcbmltcG9ydCAnLi4vLi4vZGVlcy1sYWJlbC9kZWVzLWxhYmVsLmpzJztcbmltcG9ydCB7IFByb2ZpbGVQaWN0dXJlTW9kYWwgfSBmcm9tICcuL3Byb2ZpbGVwaWN0dXJlLm1vZGFsLmpzJztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlLmRlbW8uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUnOiBEZWVzSW5wdXRQcm9maWxlUGljdHVyZTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBQcm9maWxlU2hhcGUgPSAnc3F1YXJlJyB8ICdyb3VuZCc7XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlJylcbmV4cG9ydCBjbGFzcyBEZWVzSW5wdXRQcm9maWxlUGljdHVyZSBleHRlbmRzIERlZXNJbnB1dEJhc2U8RGVlc0lucHV0UHJvZmlsZVBpY3R1cmU+IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ0lucHV0JztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgdmFsdWU6IHN0cmluZyA9ICcnOyAvLyBCYXNlNjQgZW5jb2RlZCBpbWFnZSBvciBVUkxcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3Igc2hhcGU6IFByb2ZpbGVTaGFwZSA9ICdyb3VuZCc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIHNpemU6IG51bWJlciA9IDEyMDtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3IgYWxsb3dVcGxvYWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3IgYWxsb3dEZWxldGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBtYXhGaWxlU2l6ZTogbnVtYmVyID0gNSAqIDEwMjQgKiAxMDI0OyAvLyA1TUJcblxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBhY2Nlc3NvciBhY2NlcHRlZEZvcm1hdHM6IHN0cmluZ1tdID0gWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZycsICdpbWFnZS93ZWJwJ107XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIG91dHB1dFNpemU6IG51bWJlciA9IDgwMDsgLy8gT3V0cHV0IHJlc29sdXRpb24gaW4gcGl4ZWxzXG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIG91dHB1dFF1YWxpdHk6IG51bWJlciA9IDAuOTU7IC8vIDAtMSBxdWFsaXR5IGZvciBKUEVHXG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgaXNIb3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgaXNEcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgbW9kYWxJbnN0YW5jZTogUHJvZmlsZVBpY3R1cmVNb2RhbCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICAuLi5EZWVzSW5wdXRCYXNlLmJhc2VTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5pbnB1dC13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1waWN0dXJlIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXNpemUsIDEyMHB4KTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLCAxMjBweCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjVmNWY1JywgJyMxODE4MWInKX07XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMyNzI3MmEnKX07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5wcm9maWxlLXBpY3R1cmUucm91bmQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG5cbiAgICAgIC5wcm9maWxlLXBpY3R1cmUuc3F1YXJlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgIH1cblxuICAgICAgLnByb2ZpbGUtcGljdHVyZS5kcmFnZ2luZyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzYjgyZjYnLCAnIzYwYTVmYScpfTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSknLCAncmdiYSg5NiwgMTY1LCAyNTAsIDAuMTUpJyl9O1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1waWN0dXJlOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Q0ZDRkOCcsICcjM2YzZjQ2Jyl9O1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1waWN0dXJlOmRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuXG4gICAgICAucGxhY2Vob2xkZXItaWNvbiB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjYTFhMWFhJyl9O1xuICAgICAgfVxuXG4gICAgICAub3ZlcmxheSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5wcm9maWxlLWNvbnRhaW5lcjpob3ZlciAub3ZlcmxheSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC5vdmVybGF5LWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG5cbiAgICAgIC5vdmVybGF5LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSknLCAncmdiYSgzOSwgMzksIDQyLCAwLjk1KScpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMCwgMCwgMCwgMC4xKScsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSknKX07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA5MDkwYicsICcjZmFmYWZhJyl9O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgIH1cblxuICAgICAgLm92ZXJsYXktYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzNmM2Y0NicpfTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgIH1cblxuICAgICAgLm92ZXJsYXktYnV0dG9uLmRlbGV0ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDIzOSwgNjgsIDY4LCAwLjkpJywgJ3JnYmEoMjIwLCAzOCwgMzgsIDAuOSknKX07XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgLm92ZXJsYXktYnV0dG9uLmRlbGV0ZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZWY0NDQ0JywgJyNkYzI2MjYnKX07XG4gICAgICB9XG5cbiAgICAgIC5kcm9wLXpvbmUtdGV4dCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmhpZGRlbi1pbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIExvYWRpbmcgYW5pbWF0aW9uICovXG4gICAgICAubG9hZGluZy1vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCknLCAncmdiYSgwLCAwLCAwLCAwLjgpJyl9O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAubG9hZGluZy1vdmVybGF5LnNob3cge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgIH1cblxuICAgICAgLmxvYWRpbmctc3Bpbm5lciB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMSknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpJyl9O1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzNiODJmNicsICcjNjBhNWZhJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjZzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBzcGluIHtcbiAgICAgICAgdG8ge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBwdWxzZSB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnByb2ZpbGUtcGljdHVyZS5jbGlja2luZyB7XG4gICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMC4zcyBlYXNlLW91dDtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4gIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IFxuICAgICAgICAgIGNsYXNzPVwicHJvZmlsZS1jb250YWluZXJcIlxuICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9XG4gICAgICAgICAgQGRyYWdvdmVyPSR7dGhpcy5oYW5kbGVEcmFnT3Zlcn1cbiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5oYW5kbGVEcmFnTGVhdmV9XG4gICAgICAgICAgQGRyb3A9JHt0aGlzLmhhbmRsZURyb3B9XG4gICAgICAgICAgc3R5bGU9XCItLXNpemU6ICR7dGhpcy5zaXplfXB4XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLXBpY3R1cmUgJHt0aGlzLnNoYXBlfSAke3RoaXMuaXNEcmFnZ2luZyA/ICdkcmFnZ2luZycgOiAnJ30gJHt0aGlzLmlzTG9hZGluZyAmJiAhdGhpcy52YWx1ZSA/ICdjbGlja2luZycgOiAnJ31cIj5cbiAgICAgICAgICAgICR7dGhpcy52YWx1ZSA/IGh0bWxgXG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJwcm9maWxlLWltYWdlXCIgc3JjPVwiJHt0aGlzLnZhbHVlfVwiIGFsdD1cIlByb2ZpbGUgcGljdHVyZVwiIC8+XG4gICAgICAgICAgICBgIDogaHRtbGBcbiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz1cInBsYWNlaG9sZGVyLWljb25cIiBpY29uPVwibHVjaWRlOnVzZXJcIiBpY29uU2l6ZT1cIiR7dGhpcy5zaXplICogMC41fVwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgYH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJHt0aGlzLmlzRHJhZ2dpbmcgPyBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheVwiIHN0eWxlPVwib3BhY2l0eTogMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLXpvbmUtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgRHJvcCBpbWFnZSBoZXJlXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYCA6ICcnfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAke3RoaXMudmFsdWUgJiYgIXRoaXMuZGlzYWJsZWQgPyBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5hbGxvd1VwbG9hZCA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJvdmVybGF5LWJ1dHRvblwiIEBjbGljaz0keyhlOiBFdmVudCkgPT4geyBlLnN0b3BQcm9wYWdhdGlvbigpOyB0aGlzLm9wZW5Nb2RhbCgpOyB9fSB0aXRsZT1cIkNoYW5nZSBwaWN0dXJlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPVwibHVjaWRlOnBlbmNpbFwiIGljb25TaXplPVwiMjBcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgICAgICAgICAke3RoaXMuYWxsb3dEZWxldGUgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwib3ZlcmxheS1idXR0b24gZGVsZXRlXCIgQGNsaWNrPSR7KGU6IEV2ZW50KSA9PiB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IHRoaXMuZGVsZXRlUGljdHVyZSgpOyB9fSB0aXRsZT1cIkRlbGV0ZSBwaWN0dXJlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPVwibHVjaWRlOnRyYXNoMlwiIGljb25TaXplPVwiMjBcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICBgIDogJyd9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYCA6ICcnfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAke3RoaXMuaXNMb2FkaW5nICYmICF0aGlzLnZhbHVlID8gaHRtbGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctb3ZlcmxheSBzaG93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctc3Bpbm5lclwiPjwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgY2xhc3M9XCJoaWRkZW4taW5wdXRcIlxuICAgICAgICAgIGFjY2VwdD1cIiR7dGhpcy5hY2NlcHRlZEZvcm1hdHMuam9pbignLCcpfVwiXG4gICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlRmlsZVNlbGVjdH1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8ICF0aGlzLmFsbG93VXBsb2FkKSByZXR1cm47XG4gICAgXG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAvLyBJZiBubyBpbWFnZSwgb3BlbiBmaWxlIHBpY2tlclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5oaWRkZW4taW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgXG4gICAgICAvLyBTZXQgdXAgYSBmb2N1cyBoYW5kbGVyIHRvIGRldGVjdCB3aGVuIHRoZSBkaWFsb2cgaXMgY2xvc2VkIHdpdGhvdXQgc2VsZWN0aW9uXG4gICAgICBjb25zdCBoYW5kbGVGb2N1cyA9ICgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgbm8gZmlsZSB3YXMgc2VsZWN0ZWRcbiAgICAgICAgICBpZiAoIWlucHV0LmZpbGVzIHx8IGlucHV0LmZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgaGFuZGxlRm9jdXMpO1xuICAgICAgICB9LCAzMDApO1xuICAgICAgfTtcbiAgICAgIFxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgaGFuZGxlRm9jdXMpO1xuICAgICAgaW5wdXQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZpbGVTZWxlY3QoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBmaWxlID0gaW5wdXQuZmlsZXM/LlswXTtcbiAgICBcbiAgICAvLyBBbHdheXMgcmVzZXQgbG9hZGluZyBzdGF0ZSB3aGVuIGZpbGUgZGlhbG9nIGludGVyYWN0aW9uIGNvbXBsZXRlc1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgXG4gICAgaWYgKGZpbGUpIHtcbiAgICAgIHRoaXMucHJvY2Vzc0ZpbGUoZmlsZSk7XG4gICAgfVxuICAgIFxuICAgIC8vIFJlc2V0IGlucHV0IHRvIGFsbG93IHNlbGVjdGluZyB0aGUgc2FtZSBmaWxlIGFnYWluXG4gICAgaW5wdXQudmFsdWUgPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMuYWxsb3dVcGxvYWQpIHtcbiAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEcmFnTGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMuYWxsb3dVcGxvYWQpIHJldHVybjtcbiAgICBcbiAgICBjb25zdCBmaWxlID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlc1swXTtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgdGhpcy5wcm9jZXNzRmlsZShmaWxlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NGaWxlKGZpbGU6IEZpbGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBWYWxpZGF0ZSBmaWxlIHR5cGVcbiAgICBpZiAoIXRoaXMuYWNjZXB0ZWRGb3JtYXRzLmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgZmlsZSB0eXBlOicsIGZpbGUudHlwZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIFZhbGlkYXRlIGZpbGUgc2l6ZVxuICAgIGlmIChmaWxlLnNpemUgPiB0aGlzLm1heEZpbGVTaXplKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGaWxlIHRvbyBsYXJnZTonLCBmaWxlLnNpemUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBSZWFkIGZpbGUgYXMgYmFzZTY0XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICByZWFkZXIub25sb2FkID0gYXN5bmMgKGUpID0+IHtcbiAgICAgIGNvbnN0IGJhc2U2NCA9IGUudGFyZ2V0Py5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgXG4gICAgICAvLyBPcGVuIG1vZGFsIGZvciBjcm9wcGluZ1xuICAgICAgYXdhaXQgdGhpcy5vcGVuTW9kYWwoYmFzZTY0KTtcbiAgICB9O1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvcGVuTW9kYWwoaW5pdGlhbEltYWdlPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW1hZ2VUb0VkaXQgPSBpbml0aWFsSW1hZ2UgfHwgdGhpcy52YWx1ZTtcbiAgICBcbiAgICBpZiAoIWltYWdlVG9FZGl0KSB7XG4gICAgICAvLyBJZiBubyBpbWFnZSBwcm92aWRlZCwgb3BlbiBmaWxlIHBpY2tlclxuICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5oaWRkZW4taW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgaW5wdXQuY2xpY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gQ3JlYXRlIGFuZCBzaG93IG1vZGFsXG4gICAgdGhpcy5tb2RhbEluc3RhbmNlID0gbmV3IFByb2ZpbGVQaWN0dXJlTW9kYWwoKTtcbiAgICB0aGlzLm1vZGFsSW5zdGFuY2Uuc2hhcGUgPSB0aGlzLnNoYXBlO1xuICAgIHRoaXMubW9kYWxJbnN0YW5jZS5pbml0aWFsSW1hZ2UgPSBpbWFnZVRvRWRpdDtcbiAgICB0aGlzLm1vZGFsSW5zdGFuY2Uub3V0cHV0U2l6ZSA9IHRoaXMub3V0cHV0U2l6ZTtcbiAgICB0aGlzLm1vZGFsSW5zdGFuY2Uub3V0cHV0UXVhbGl0eSA9IHRoaXMub3V0cHV0UXVhbGl0eTtcbiAgICBcbiAgICB0aGlzLm1vZGFsSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcignc2F2ZScsIChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgIHRoaXMudmFsdWUgPSBldmVudC5kZXRhaWwuY3JvcHBlZEltYWdlO1xuICAgICAgdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7XG4gICAgfSk7XG4gICAgXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLm1vZGFsSW5zdGFuY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVQaWN0dXJlKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn0iLCAiaW1wb3J0IHsgRGVlc0VsZW1lbnQsIHByb3BlcnR5LCBodG1sLCBjdXN0b21FbGVtZW50LCBkb210b29scywgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdHlwZSBDU1NSZXN1bHQsIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuaW1wb3J0IHsgRGVmZXJyZWQgfSBmcm9tICdAcHVzaC5yb2Nrcy9zbWFydHByb21pc2UnO1xuaW1wb3J0IHsgRGVlc0NvbnRleHRtZW51IH0gZnJvbSAnLi4vLi4vZGVlcy1jb250ZXh0bWVudS9kZWVzLWNvbnRleHRtZW51LmpzJztcbmltcG9ydCAnLi4vLi4vZGVlcy1pY29uL2RlZXMtaWNvbi5qcyc7XG5cbi8vIGltcG9ydCB0eXBlIHBkZmpzVHlwZXMgZnJvbSAncGRmanMtZGlzdCc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtcGRmJzogRGVlc1BkZjtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBEZWVzUGRmVmlld2VyIG9yIERlZXNQZGZQcmV2aWV3IGluc3RlYWRcbiAqIC0gRGVlc1BkZlZpZXdlcjogRnVsbC1mZWF0dXJlZCBQREYgdmlld2luZyB3aXRoIGNvbnRyb2xzLCBuYXZpZ2F0aW9uLCB6b29tXG4gKiAtIERlZXNQZGZQcmV2aWV3OiBMaWdodHdlaWdodCwgcGVyZm9ybWFuY2Utb3B0aW1pemVkIHByZXZpZXcgZm9yIGdyaWRzXG4gKi9cbkBjdXN0b21FbGVtZW50KCdkZWVzLXBkZicpXG5leHBvcnQgY2xhc3MgRGVlc1BkZiBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgLy8gREVNT1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSAoKSA9PiBodG1sYCA8ZGVlcy1wZGY+PC9kZWVzLXBkZj4gYDtcbiAgcHVibGljIHN0YXRpYyBkZW1vR3JvdXAgPSAnUERGJztcblxuICAvLyBJTlNUQU5DRVxuXG4gIEBwcm9wZXJ0eSgpXG4gIGFjY2Vzc29yIHBkZlVybDogc3RyaW5nID1cbiAgICAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmJztcblxuXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8vIHlvdSBoYXZlIGFjY2VzcyB0byBhbGwga2luZHMgb2YgdGhpbmdzIHRocm91Z2ggdGhpcy5cbiAgICAvLyB0aGlzLnNldEF0dHJpYnV0ZSgnZ290SXQnLCd0cnVlJyk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzdHlsZT5cbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgICAgICB9XG4gICAgICAgIDpob3N0KFtoaWRkZW5dKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICNwZGZjYW52YXMge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggNXB4ICNjY2M7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgICA8L3N0eWxlPlxuICAgICAgPGNhbnZhc1xuICAgICAgICBpZD1cInBkZmNhbnZhc1wiXG4gICAgICAgIC5oZWlnaHQ9JHswfVxuICAgICAgICAud2lkdGg9JHswfVxuXG4gICAgICA+PC9jYW52YXM+XG4gICAgYDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGRmSnNSZWFkeTogUHJvbWlzZTxhbnk+O1xuICBwdWJsaWMgc3RhdGljIHBkZmpzTGliOiBhbnkgLy8gdHlwZW9mIHBkZmpzVHlwZXM7XG4gIHB1YmxpYyBhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmICghRGVlc1BkZi5wZGZKc1JlYWR5KSB7XG4gICAgICBjb25zdCBwZGZKc1JlYWR5RGVmZXJyZWQgPSBkb210b29scy5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO1xuICAgICAgRGVlc1BkZi5wZGZKc1JlYWR5ID0gcGRmSnNSZWFkeURlZmVycmVkLnByb21pc2U7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBEZWVzUGRmLnBkZmpzTGliID0gYXdhaXQgaW1wb3J0KCdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS8rZXNtJyk7XG4gICAgICBEZWVzUGRmLnBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjID0gJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5L2J1aWxkL3BkZi53b3JrZXIubWpzJztcbiAgICAgIHBkZkpzUmVhZHlEZWZlcnJlZC5yZXNvbHZlKCk7XG4gICAgfVxuICAgIGF3YWl0IERlZXNQZGYucGRmSnNSZWFkeTtcbiAgICB0aGlzLmRpc3BsYXlDb250ZW50KCk7XG5cblxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc3BsYXlDb250ZW50KCkge1xuICAgIGF3YWl0IERlZXNQZGYucGRmSnNSZWFkeTtcblxuICAgIC8vIEFzeW5jaHJvbm91cyBkb3dubG9hZCBvZiBQREZcbiAgICBjb25zdCBsb2FkaW5nVGFzayA9IERlZXNQZGYucGRmanNMaWIuZ2V0RG9jdW1lbnQodGhpcy5wZGZVcmwpO1xuICAgIGxvYWRpbmdUYXNrLnByb21pc2UudGhlbihcbiAgICAgIChwZGYpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ1BERiBsb2FkZWQnKTtcblxuICAgICAgICAvLyBGZXRjaCB0aGUgZmlyc3QgcGFnZVxuICAgICAgICBjb25zdCBwYWdlTnVtYmVyID0gMTtcbiAgICAgICAgcGRmLmdldFBhZ2UocGFnZU51bWJlcikudGhlbigocGFnZSkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdQYWdlIGxvYWRlZCcpO1xuXG4gICAgICAgICAgY29uc3Qgc2NhbGUgPSAxMDtcbiAgICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHBhZ2UuZ2V0Vmlld3BvcnQoeyBzY2FsZTogc2NhbGUgfSk7XG5cbiAgICAgICAgICAvLyBQcmVwYXJlIGNhbnZhcyB1c2luZyBQREYgcGFnZSBkaW1lbnNpb25zXG4gICAgICAgICAgY29uc3QgY2FudmFzOiBhbnkgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3BkZmNhbnZhcycpO1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gdmlld3BvcnQuaGVpZ2h0O1xuICAgICAgICAgIGNhbnZhcy53aWR0aCA9IHZpZXdwb3J0LndpZHRoO1xuXG4gICAgICAgICAgLy8gUmVuZGVyIFBERiBwYWdlIGludG8gY2FudmFzIGNvbnRleHRcbiAgICAgICAgICBjb25zdCByZW5kZXJDb250ZXh0ID0ge1xuICAgICAgICAgICAgY2FudmFzQ29udGV4dDogY29udGV4dCxcbiAgICAgICAgICAgIHZpZXdwb3J0OiB2aWV3cG9ydCxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3QgcmVuZGVyVGFzayA9IHBhZ2UucmVuZGVyKHJlbmRlckNvbnRleHQpO1xuICAgICAgICAgIHJlbmRlclRhc2sucHJvbWlzZS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQYWdlIHJlbmRlcmVkJyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIChyZWFzb24pID0+IHtcbiAgICAgICAgLy8gUERGIGxvYWRpbmcgZXJyb3JcbiAgICAgICAgY29uc29sZS5lcnJvcihyZWFzb24pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZSBjb250ZXh0IG1lbnUgaXRlbXMgZm9yIHRoZSBnbG9iYWwgY29udGV4dCBtZW51IGhhbmRsZXJcbiAgICovXG4gIHB1YmxpYyBnZXRDb250ZXh0TWVudUl0ZW1zKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdPcGVuIFBERiBpbiBOZXcgVGFiJyxcbiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6RXh0ZXJuYWxMaW5rJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgd2luZG93Lm9wZW4odGhpcy5wZGZVcmwsICdfYmxhbmsnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnQ29weSBQREYgVVJMJyxcbiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Q29weScsXG4gICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMucGRmVXJsKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0Rvd25sb2FkIFBERicsXG4gICAgICAgIGljb25OYW1lOiAnbHVjaWRlOkRvd25sb2FkJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICBsaW5rLmhyZWYgPSB0aGlzLnBkZlVybDtcbiAgICAgICAgICBsaW5rLmRvd25sb2FkID0gdGhpcy5wZGZVcmwuc3BsaXQoJy8nKS5wb3AoKSB8fCAnZG9jdW1lbnQucGRmJztcbiAgICAgICAgICBsaW5rLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdO1xuICB9XG59IiwgImltcG9ydCB7IGRvbXRvb2xzIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuZXhwb3J0IGNsYXNzIFBkZk1hbmFnZXIge1xuICBwcml2YXRlIHN0YXRpYyBwZGZqc0xpYjogYW55O1xuICBwcml2YXRlIHN0YXRpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICBpZiAodGhpcy5pbml0aWFsaXplZCkgcmV0dXJuO1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMucGRmanNMaWIgPSBhd2FpdCBpbXBvcnQoJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20nKTtcbiAgICB0aGlzLnBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjID0gJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5L2J1aWxkL3BkZi53b3JrZXIubWpzJztcblxuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhc3luYyBsb2FkRG9jdW1lbnQodXJsOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpO1xuXG4gICAgLy8gSU1QT1JUQU5UOiBEaXNhYmxlZCBjYWNoaW5nIHRvIGVuc3VyZSBjb21wb25lbnQgaXNvbGF0aW9uXG4gICAgLy8gRWFjaCB2aWV3ZXIgaW5zdGFuY2UgZ2V0cyBpdHMgb3duIGRvY3VtZW50IHRvIHByZXZlbnQgc3RhdGUgc2hhcmluZ1xuICAgIC8vIFRoaXMgZml4ZXMgaXNzdWVzIHdoZXJlIG11bHRpcGxlIHZpZXdlcnMgaW50ZXJmZXJlIHdpdGggZWFjaCBvdGhlclxuICAgIGNvbnN0IGxvYWRpbmdUYXNrID0gdGhpcy5wZGZqc0xpYi5nZXREb2N1bWVudCh1cmwpO1xuICAgIGNvbnN0IGRvY3VtZW50ID0gYXdhaXQgbG9hZGluZ1Rhc2sucHJvbWlzZTtcblxuICAgIHJldHVybiBkb2N1bWVudDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVsZWFzZURvY3VtZW50KF91cmw6IHN0cmluZykge1xuICAgIC8vIE5vLW9wIHNpbmNlIHdlJ3JlIG5vdCBjYWNoaW5nIGRvY3VtZW50cyBhbnltb3JlXG4gICAgLy8gRWFjaCB2aWV3ZXIgbWFuYWdlcyBpdHMgb3duIGRvY3VtZW50IGxpZmVjeWNsZVxuICB9XG5cbiAgLy8gQ2FjaGUgbWV0aG9kcyByZW1vdmVkIHRvIGVuc3VyZSBjb21wb25lbnQgaXNvbGF0aW9uXG4gIC8vIEVhY2ggdmlld2VyIG5vdyBtYW5hZ2VzIGl0cyBvd24gZG9jdW1lbnQgbGlmZWN5Y2xlXG59XG4iLCAiZXhwb3J0IGludGVyZmFjZSBQb29sZWRDYW52YXMge1xuICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50O1xuICBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcbiAgaW5Vc2U6IGJvb2xlYW47XG4gIGxhc3RVc2VkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBDYW52YXNQb29sIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcG9vbDogUG9vbGVkQ2FudmFzW10gPSBbXTtcbiAgcHJpdmF0ZSBzdGF0aWMgbWF4UG9vbFNpemUgPSAyMDtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTUlOX0NBTlZBU19TSVpFID0gMjU2O1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBNQVhfQ0FOVkFTX1NJWkUgPSA0MDk2O1xuXG4gIHB1YmxpYyBzdGF0aWMgYWNxdWlyZSh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IFBvb2xlZENhbnZhcyB7XG4gICAgLy8gVHJ5IHRvIGZpbmQgYSBzdWl0YWJsZSBjYW52YXMgZnJvbSB0aGUgcG9vbFxuICAgIGNvbnN0IHN1aXRhYmxlID0gdGhpcy5wb29sLmZpbmQoXG4gICAgICAoaXRlbSkgPT4gIWl0ZW0uaW5Vc2UgJiZcbiAgICAgIGl0ZW0uY2FudmFzLndpZHRoID49IHdpZHRoICYmXG4gICAgICBpdGVtLmNhbnZhcy5oZWlnaHQgPj0gaGVpZ2h0ICYmXG4gICAgICBpdGVtLmNhbnZhcy53aWR0aCA8PSB3aWR0aCAqIDEuNSAmJlxuICAgICAgaXRlbS5jYW52YXMuaGVpZ2h0IDw9IGhlaWdodCAqIDEuNVxuICAgICk7XG5cbiAgICBpZiAoc3VpdGFibGUpIHtcbiAgICAgIHN1aXRhYmxlLmluVXNlID0gdHJ1ZTtcbiAgICAgIHN1aXRhYmxlLmxhc3RVc2VkID0gRGF0ZS5ub3coKTtcblxuICAgICAgLy8gQ2xlYXIgYW5kIHJlc2l6ZSBpZiBuZWVkZWRcbiAgICAgIHN1aXRhYmxlLmNhbnZhcy53aWR0aCA9IHdpZHRoO1xuICAgICAgc3VpdGFibGUuY2FudmFzLmhlaWdodCA9IGhlaWdodDtcbiAgICAgIHN1aXRhYmxlLmN0eC5jbGVhclJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7XG5cbiAgICAgIHJldHVybiBzdWl0YWJsZTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgbmV3IGNhbnZhcyBpZiBwb29sIG5vdCBmdWxsXG4gICAgaWYgKHRoaXMucG9vbC5sZW5ndGggPCB0aGlzLm1heFBvb2xTaXplKSB7XG4gICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcsIHtcbiAgICAgICAgYWxwaGE6IHRydWUsXG4gICAgICAgIGRlc3luY2hyb25pemVkOiB0cnVlLFxuICAgICAgfSkgYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xuXG4gICAgICBjYW52YXMud2lkdGggPSBNYXRoLm1pbihNYXRoLm1heCh3aWR0aCwgdGhpcy5NSU5fQ0FOVkFTX1NJWkUpLCB0aGlzLk1BWF9DQU5WQVNfU0laRSk7XG4gICAgICBjYW52YXMuaGVpZ2h0ID0gTWF0aC5taW4oTWF0aC5tYXgoaGVpZ2h0LCB0aGlzLk1JTl9DQU5WQVNfU0laRSksIHRoaXMuTUFYX0NBTlZBU19TSVpFKTtcblxuICAgICAgY29uc3QgcG9vbGVkQ2FudmFzOiBQb29sZWRDYW52YXMgPSB7XG4gICAgICAgIGNhbnZhcyxcbiAgICAgICAgY3R4LFxuICAgICAgICBpblVzZTogdHJ1ZSxcbiAgICAgICAgbGFzdFVzZWQ6IERhdGUubm93KCksXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnBvb2wucHVzaChwb29sZWRDYW52YXMpO1xuICAgICAgcmV0dXJuIHBvb2xlZENhbnZhcztcbiAgICB9XG5cbiAgICAvLyBFdmljdCBhbmQgcmV1c2UgbGVhc3QgcmVjZW50bHkgdXNlZCBjYW52YXNcbiAgICBjb25zdCBscnUgPSB0aGlzLnBvb2xcbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmluVXNlKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEubGFzdFVzZWQgLSBiLmxhc3RVc2VkKVswXTtcblxuICAgIGlmIChscnUpIHtcbiAgICAgIGxydS5jYW52YXMud2lkdGggPSB3aWR0aDtcbiAgICAgIGxydS5jYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgbHJ1LmN0eC5jbGVhclJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7XG4gICAgICBscnUuaW5Vc2UgPSB0cnVlO1xuICAgICAgbHJ1Lmxhc3RVc2VkID0gRGF0ZS5ub3coKTtcbiAgICAgIHJldHVybiBscnU7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2s6IGNyZWF0ZSB0ZW1wb3JhcnkgY2FudmFzIChzaG91bGRuJ3Qgbm9ybWFsbHkgaGFwcGVuKVxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpIGFzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcbiAgICBjYW52YXMud2lkdGggPSB3aWR0aDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNhbnZhcyxcbiAgICAgIGN0eCxcbiAgICAgIGluVXNlOiB0cnVlLFxuICAgICAgbGFzdFVzZWQ6IERhdGUubm93KCksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVsZWFzZShwb29sZWRDYW52YXM6IFBvb2xlZENhbnZhcykge1xuICAgIGlmICh0aGlzLnBvb2wuaW5jbHVkZXMocG9vbGVkQ2FudmFzKSkge1xuICAgICAgcG9vbGVkQ2FudmFzLmluVXNlID0gZmFsc2U7XG4gICAgICAvLyBDbGVhciBjYW52YXMgdG8gZnJlZSBtZW1vcnlcbiAgICAgIHBvb2xlZENhbnZhcy5jdHguY2xlYXJSZWN0KDAsIDAsIHBvb2xlZENhbnZhcy5jYW52YXMud2lkdGgsIHBvb2xlZENhbnZhcy5jYW52YXMuaGVpZ2h0KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlbGVhc2VBbGwoKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMucG9vbCkge1xuICAgICAgaXRlbS5pblVzZSA9IGZhbHNlO1xuICAgICAgaXRlbS5jdHguY2xlYXJSZWN0KDAsIDAsIGl0ZW0uY2FudmFzLndpZHRoLCBpdGVtLmNhbnZhcy5oZWlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGVzdHJveSgpIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5wb29sKSB7XG4gICAgICBpdGVtLmNhbnZhcy53aWR0aCA9IDA7XG4gICAgICBpdGVtLmNhbnZhcy5oZWlnaHQgPSAwO1xuICAgIH1cbiAgICB0aGlzLnBvb2wgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0U3RhdHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvb2xTaXplOiB0aGlzLnBvb2wubGVuZ3RoLFxuICAgICAgbWF4UG9vbFNpemU6IHRoaXMubWF4UG9vbFNpemUsXG4gICAgICBpblVzZTogdGhpcy5wb29sLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5pblVzZSkubGVuZ3RoLFxuICAgICAgYXZhaWxhYmxlOiB0aGlzLnBvb2wuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5pblVzZSkubGVuZ3RoLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFkanVzdFBvb2xTaXplKG5ld1NpemU6IG51bWJlcikge1xuICAgIGlmIChuZXdTaXplIDwgdGhpcy5wb29sLmxlbmd0aCkge1xuICAgICAgLy8gUmVtb3ZlIGV4Y2VzcyBjYW52YXNlc1xuICAgICAgY29uc3QgdG9SZW1vdmUgPSB0aGlzLnBvb2wubGVuZ3RoIC0gbmV3U2l6ZTtcbiAgICAgIGNvbnN0IHJlbW92ZWQgPSB0aGlzLnBvb2xcbiAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uaW5Vc2UpXG4gICAgICAgIC5zbGljZSgwLCB0b1JlbW92ZSk7XG5cbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiByZW1vdmVkKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wb29sLmluZGV4T2YoaXRlbSk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgdGhpcy5wb29sLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5tYXhQb29sU2l6ZSA9IG5ld1NpemU7XG4gIH1cbn0iLCAiZXhwb3J0IGZ1bmN0aW9uIGRlYm91bmNlPFQgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IGFueT4oXG4gIGZ1bmM6IFQsXG4gIHdhaXQ6IG51bWJlclxuKTogKC4uLmFyZ3M6IFBhcmFtZXRlcnM8VD4pID0+IHZvaWQge1xuICBsZXQgdGltZW91dDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHJldHVybiBmdW5jdGlvbiBleGVjdXRlZEZ1bmN0aW9uKC4uLmFyZ3M6IFBhcmFtZXRlcnM8VD4pIHtcbiAgICBjb25zdCBsYXRlciA9ICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgIGZ1bmMoLi4uYXJncyk7XG4gICAgfTtcblxuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB0aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQobGF0ZXIsIHdhaXQpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3R0bGU8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgZnVuYzogVCxcbiAgbGltaXQ6IG51bWJlclxuKTogKC4uLmFyZ3M6IFBhcmFtZXRlcnM8VD4pID0+IHZvaWQge1xuICBsZXQgaW5UaHJvdHRsZTogYm9vbGVhbjtcblxuICByZXR1cm4gZnVuY3Rpb24gZXhlY3V0ZWRGdW5jdGlvbiguLi5hcmdzOiBQYXJhbWV0ZXJzPFQ+KSB7XG4gICAgaWYgKCFpblRocm90dGxlKSB7XG4gICAgICBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgaW5UaHJvdHRsZSA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IGluVGhyb3R0bGUgPSBmYWxzZSwgbGltaXQpO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEZpbGVTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICBpZiAoYnl0ZXMgPT09IDApIHJldHVybiAnMCBCeXRlcyc7XG5cbiAgY29uc3QgayA9IDEwMjQ7XG4gIGNvbnN0IHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQiddO1xuICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG5cbiAgcmV0dXJuIE1hdGgucm91bmQoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSAqIDEwMCkgLyAxMDAgKyAnICcgKyBzaXplc1tpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW5WaWV3cG9ydChlbGVtZW50OiBFbGVtZW50LCBtYXJnaW4gPSAwKTogYm9vbGVhbiB7XG4gIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICByZXR1cm4gKFxuICAgIHJlY3QudG9wID49IC1tYXJnaW4gJiZcbiAgICByZWN0LmxlZnQgPj0gLW1hcmdpbiAmJlxuICAgIHJlY3QuYm90dG9tIDw9ICh3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkgKyBtYXJnaW4gJiZcbiAgICByZWN0LnJpZ2h0IDw9ICh3aW5kb3cuaW5uZXJXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpICsgbWFyZ2luXG4gICk7XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJmb3JtYW5jZU1vbml0b3Ige1xuICBwcml2YXRlIHN0YXRpYyBtYXJrcyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIHByaXZhdGUgc3RhdGljIG1lYXN1cmVzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgZHVyYXRpb246IG51bWJlciB9PiA9IFtdO1xuXG4gIHB1YmxpYyBzdGF0aWMgbWFyayhuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1hcmtzLnNldChuYW1lLCBwZXJmb3JtYW5jZS5ub3coKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG1lYXN1cmUobmFtZTogc3RyaW5nLCBzdGFydE1hcms6IHN0cmluZykge1xuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5tYXJrcy5nZXQoc3RhcnRNYXJrKTtcbiAgICBpZiAoc3RhcnQpIHtcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydDtcbiAgICAgIHRoaXMubWVhc3VyZXMucHVzaCh7IG5hbWUsIGR1cmF0aW9uIH0pO1xuICAgICAgdGhpcy5tYXJrcy5kZWxldGUoc3RhcnRNYXJrKTtcbiAgICAgIHJldHVybiBkdXJhdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldFJlcG9ydCgpIHtcbiAgICBjb25zdCByZXBvcnQgPSB7XG4gICAgICBtZWFzdXJlczogWy4uLnRoaXMubWVhc3VyZXNdLFxuICAgICAgYXZlcmFnZXM6IHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4sXG4gICAgfTtcblxuICAgIC8vIENhbGN1bGF0ZSBhdmVyYWdlcyBmb3IgcmVwZWF0ZWQgbWVhc3VyZXNcbiAgICBjb25zdCBncm91cGVkID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcltdPigpO1xuICAgIGZvciAoY29uc3QgbWVhc3VyZSBvZiB0aGlzLm1lYXN1cmVzKSB7XG4gICAgICBpZiAoIWdyb3VwZWQuaGFzKG1lYXN1cmUubmFtZSkpIHtcbiAgICAgICAgZ3JvdXBlZC5zZXQobWVhc3VyZS5uYW1lLCBbXSk7XG4gICAgICB9XG4gICAgICBncm91cGVkLmdldChtZWFzdXJlLm5hbWUpIS5wdXNoKG1lYXN1cmUuZHVyYXRpb24pO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW25hbWUsIGR1cmF0aW9uc10gb2YgZ3JvdXBlZCkge1xuICAgICAgcmVwb3J0LmF2ZXJhZ2VzW25hbWVdID0gZHVyYXRpb25zLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApIC8gZHVyYXRpb25zLmxlbmd0aDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVwb3J0O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjbGVhcigpIHtcbiAgICB0aGlzLm1hcmtzLmNsZWFyKCk7XG4gICAgdGhpcy5tZWFzdXJlcyA9IFtdO1xuICB9XG59IiwgImltcG9ydCB7IGNzcywgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBwcmV2aWV3U3R5bGVzID0gW1xuICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gIGNzc2BcbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLnByZXZpZXctY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgIGhlaWdodDogMjYwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTglKScsICdoc2woMjE1IDIwJSAxNCUpJyl9O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJveC1zaGFkb3cgMC4ycyBlYXNlO1xuICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMTIpJywgJ3JnYmEoMCwgMCwgMCwgMC4yNCknKX07XG4gICAgfVxuXG4gICAgLnByZXZpZXctY29udGFpbmVyLmNsaWNrYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLnByZXZpZXctY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMTIpJywgJ3JnYmEoMCwgMCwgMCwgMC4zKScpfTtcbiAgICB9XG5cbiAgICAucHJldmlldy1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC5wcmV2aWV3LW92ZXJsYXkge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAucHJldmlldy1zdGFjayB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAucHJldmlldy1zdGFjay5ub24tYTQge1xuICAgICAgcGFkZGluZzogMTJweDtcbiAgICB9XG5cbiAgICAucHJldmlldy1jYW52YXMge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICBpbWFnZS1yZW5kZXJpbmc6IGF1dG87XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjEpJywgJ3JnYmEoMCwgMCwgMCwgMC4zKScpfTtcbiAgICB9XG5cbiAgICAubm9uLWE0IC5wcmV2aWV3LWNhbnZhcyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNCAzMSUgOTIlKScsICdoc2woMjE3IDI1JSAyNCUpJyl9O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIH1cblxuICAgIC5wcmV2aWV3LWluZm8ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiA4cHg7XG4gICAgICBsZWZ0OiA4cHg7XG4gICAgICByaWdodDogOHB4O1xuICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSAvIDAuOTIpJywgJ2hzbCgyMTUgMjAlIDEyJSAvIDAuOTIpJyl9O1xuICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDZweDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNSAxNiUgNDUlKScsICdoc2woMjE1IDE2JSA3NSUpJyl9O1xuICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgIH1cblxuICAgIC5wcmV2aWV3LWluZm8gZGVlcy1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNyA5MSUgNjAlKScsICdoc2woMjEzIDkzJSA2OCUpJyl9O1xuICAgIH1cblxuICAgIC5wcmV2aWV3LXBhZ2VzIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuXG4gICAgLnByZXZpZXctb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjcpJywgJ3JnYmEoMCwgMCwgMCwgMC44KScpfTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZ2FwOiA4cHg7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG4gICAgICB6LWluZGV4OiAyMDtcbiAgICB9XG5cbiAgICAucHJldmlldy1vdmVybGF5IGRlZXMtaWNvbiB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuXG4gICAgLnByZXZpZXctb3ZlcmxheSBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuXG4gICAgLnByZXZpZXctbG9hZGluZyxcbiAgICAucHJldmlldy1lcnJvciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGdhcDogMTJweDtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNSAxNiUgNDUlKScsICdoc2woMjE1IDE2JSA3NSUpJyl9O1xuICAgIH1cblxuICAgIC5wcmV2aWV3LWxvYWRpbmcge1xuICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk5JSknLCAnaHNsKDIxNSAyMCUgMTQlKScpfTtcbiAgICB9XG5cbiAgICAucHJldmlldy1lcnJvciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgNzIlIDk4JSknLCAnaHNsKDAgNjIlIDIwJSknKX07XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDcyJSA0MCUpJywgJ2hzbCgwIDcwJSA2OCUpJyl9O1xuICAgIH1cblxuICAgIC5wcmV2aWV3LXNwaW5uZXIge1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNCAzMSUgODYlKScsICdoc2woMjE3IDI1JSAyOCUpJyl9O1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTcgOTElIDYwJSknLCAnaHNsKDIxMyA5MyUgNjglKScpfTtcbiAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIHNwaW4ge1xuICAgICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wcmV2aWV3LXRleHQge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICAucHJldmlldy1lcnJvciBkZWVzLWljb24ge1xuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgIH1cblxuICAgIC5wcmV2aWV3LXBhZ2UtaW5kaWNhdG9yIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogOHB4O1xuICAgICAgbGVmdDogOHB4O1xuICAgICAgcmlnaHQ6IDhweDtcbiAgICAgIHBhZGRpbmc6IDVweCA4cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMCUgLyAwLjcpJywgJ2hzbCgwIDAlIDEwMCUgLyAwLjkpJyl9O1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCd3aGl0ZScsICdoc2woMjE1IDIwJSAxMiUpJyl9O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcbiAgICAgIHotaW5kZXg6IDE1O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2U7XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBmYWRlSW4ge1xuICAgICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIFJlc3BvbnNpdmUgc2l6ZXMgKi9cbiAgICA6aG9zdChbc2l6ZT1cInNtYWxsXCJdKSAucHJldmlldy1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgaGVpZ2h0OiAxOTVweDtcbiAgICB9XG5cbiAgICA6aG9zdChbc2l6ZT1cImxhcmdlXCJdKSAucHJldmlldy1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDI1MHB4O1xuICAgICAgaGVpZ2h0OiAzMjVweDtcbiAgICB9XG5cbiAgICAvKiBHcmlkIG9wdGltaXphdGlvbnMgKi9cbiAgICA6aG9zdChbZ3JpZC1tb2RlXSkgLnByZXZpZXctY29udGFpbmVyIHtcbiAgICAgIHdpbGwtY2hhbmdlOiBhdXRvO1xuICAgIH1cblxuICAgIDpob3N0KFtncmlkLW1vZGVdKSAucHJldmlldy1jYW52YXMge1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgICB9XG4gIGAsXG5dOyIsICJpbXBvcnQgeyBodG1sIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IGRlbW8gPSAoKSA9PiB7XG4gIGNvbnN0IHNhbXBsZVBkZnMgPSBbXG4gICAgJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZicsXG4gICAgJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZicsXG4gIF07XG5cbiAgY29uc3QgZ2VuZXJhdGVHcmlkSXRlbXMgPSAoY291bnQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICBjb25zdCBwZGZVcmwgPSBzYW1wbGVQZGZzW2kgJSBzYW1wbGVQZGZzLmxlbmd0aF07XG4gICAgICBpdGVtcy5wdXNoKGh0bWxgXG4gICAgICAgIDxkZWVzLXBkZi1wcmV2aWV3XG4gICAgICAgICAgcGRmVXJsPVwiJHtwZGZVcmx9XCJcbiAgICAgICAgICBtYXhQYWdlcz1cIjNcIlxuICAgICAgICAgIHN0YWNrT2Zmc2V0PVwiNlwiXG4gICAgICAgICAgY2xpY2thYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgZ3JpZC1tb2RlXG4gICAgICAgICAgQHBkZi1wcmV2aWV3LWNsaWNrPSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnUERGIFByZXZpZXcgY2xpY2tlZDonLCBlLmRldGFpbCk7XG4gICAgICAgICAgICBhbGVydChgUERGIGNsaWNrZWQ6ICR7ZS5kZXRhaWwucGFnZUNvdW50fSBwYWdlc2ApO1xuICAgICAgICAgIH19XG4gICAgICAgID48L2RlZXMtcGRmLXByZXZpZXc+XG4gICAgICBgKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9O1xuXG4gIHJldHVybiBodG1sYFxuICAgIDxzdHlsZT5cbiAgICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDQwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgICB9XG5cbiAgICAgIC5kZW1vLXNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgICAgfVxuXG4gICAgICBoMyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIH1cblxuICAgICAgLnByZXZpZXctZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTtcbiAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgfVxuXG4gICAgICAucHJldmlldy1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICB9XG5cbiAgICAgIC5wcmV2aWV3LWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgICAgfVxuXG4gICAgICAucGVyZm9ybWFuY2Utc3RhdHMge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICB9XG5cbiAgICAgIC5zdGF0cy1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTUwcHgsIDFmcikpO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICB9XG5cbiAgICAgIC5zdGF0LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgIH1cblxuICAgICAgLnN0YXQtbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgfVxuXG4gICAgICAuc3RhdC12YWx1ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIH1cbiAgICA8L3N0eWxlPlxuXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxoMz5TaW5nbGUgUERGIFByZXZpZXcgd2l0aCBTdGFja2VkIFBhZ2VzPC9oMz5cbiAgICAgICAgPGRlZXMtcGRmLXByZXZpZXdcbiAgICAgICAgICBwZGZVcmw9XCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGZcIlxuICAgICAgICAgIG1heFBhZ2VzPVwiM1wiXG4gICAgICAgICAgc3RhY2tPZmZzZXQ9XCI4XCJcbiAgICAgICAgICBjbGlja2FibGU9XCJ0cnVlXCJcbiAgICAgICAgPjwvZGVlcy1wZGYtcHJldmlldz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxoMz5EaWZmZXJlbnQgU2l6ZXM8L2gzPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1yb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1sYWJlbFwiPlNtYWxsOjwvZGl2PlxuICAgICAgICAgIDxkZWVzLXBkZi1wcmV2aWV3XG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgcGRmVXJsPVwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmXCJcbiAgICAgICAgICAgIG1heFBhZ2VzPVwiMlwiXG4gICAgICAgICAgICBzdGFja09mZnNldD1cIjZcIlxuICAgICAgICAgICAgY2xpY2thYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgPjwvZGVlcy1wZGYtcHJldmlldz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctcm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctbGFiZWxcIj5EZWZhdWx0OjwvZGl2PlxuICAgICAgICAgIDxkZWVzLXBkZi1wcmV2aWV3XG4gICAgICAgICAgICBwZGZVcmw9XCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGZcIlxuICAgICAgICAgICAgbWF4UGFnZXM9XCIzXCJcbiAgICAgICAgICAgIHN0YWNrT2Zmc2V0PVwiOFwiXG4gICAgICAgICAgICBjbGlja2FibGU9XCJ0cnVlXCJcbiAgICAgICAgICA+PC9kZWVzLXBkZi1wcmV2aWV3PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1yb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1sYWJlbFwiPkxhcmdlOjwvZGl2PlxuICAgICAgICAgIDxkZWVzLXBkZi1wcmV2aWV3XG4gICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgcGRmVXJsPVwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmXCJcbiAgICAgICAgICAgIG1heFBhZ2VzPVwiNFwiXG4gICAgICAgICAgICBzdGFja09mZnNldD1cIjEwXCJcbiAgICAgICAgICAgIGNsaWNrYWJsZT1cInRydWVcIlxuICAgICAgICAgID48L2RlZXMtcGRmLXByZXZpZXc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgPGgzPk5vbi1DbGlja2FibGUgUHJldmlldzwvaDM+XG4gICAgICAgIDxkZWVzLXBkZi1wcmV2aWV3XG4gICAgICAgICAgcGRmVXJsPVwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmXCJcbiAgICAgICAgICBtYXhQYWdlcz1cIjNcIlxuICAgICAgICAgIHN0YWNrT2Zmc2V0PVwiOFwiXG4gICAgICAgICAgY2xpY2thYmxlPVwiZmFsc2VcIlxuICAgICAgICA+PC9kZWVzLXBkZi1wcmV2aWV3PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgPGgzPlBlcmZvcm1hbmNlIEdyaWQgLSA1MCBQREZzIHdpdGggTGF6eSBMb2FkaW5nPC9oMz5cbiAgICAgICAgPHAgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAyMHB4OyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAjNjY2O1wiPlxuICAgICAgICAgIFRoaXMgZ3JpZCBkZW1vbnN0cmF0ZXMgdGhlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbnMgd2l0aCA1MCBQREYgcHJldmlld3MuXG4gICAgICAgICAgU2Nyb2xsIHRvIHNlZSBsYXp5IGxvYWRpbmcgaW4gYWN0aW9uIC0gcHJldmlld3MgcmVuZGVyIG9ubHkgd2hlbiB2aXNpYmxlLlxuICAgICAgICA8L3A+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctZ3JpZFwiPlxuICAgICAgICAgICR7Z2VuZXJhdGVHcmlkSXRlbXMoNTApfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicGVyZm9ybWFuY2Utc3RhdHNcIj5cbiAgICAgICAgICA8aDQ+UGVyZm9ybWFuY2UgRmVhdHVyZXM8L2g0PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0cy1ncmlkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdC1sYWJlbFwiPkxhenkgTG9hZGluZzwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0LXZhbHVlXCI+XHUyNzEzIEVuYWJsZWQ8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0LWxhYmVsXCI+Q2FudmFzIFBvb2xpbmc8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdC12YWx1ZVwiPlx1MjcxMyBBY3RpdmU8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0LWxhYmVsXCI+TWVtb3J5IE1hbmFnZW1lbnQ8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdC12YWx1ZVwiPlx1MjcxMyBPcHRpbWl6ZWQ8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0LWxhYmVsXCI+SW50ZXJzZWN0aW9uIE9ic2VydmVyPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXQtdmFsdWVcIj4yMDBweCBtYXJnaW48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYDtcbn07IiwgImltcG9ydCB7IERlZXNFbGVtZW50LCBwcm9wZXJ0eSwgaHRtbCwgY3VzdG9tRWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBQZGZNYW5hZ2VyIH0gZnJvbSAnLi4vZGVlcy1wZGYtc2hhcmVkL1BkZk1hbmFnZXIuanMnO1xuaW1wb3J0IHsgQ2FudmFzUG9vbCwgdHlwZSBQb29sZWRDYW52YXMgfSBmcm9tICcuLi9kZWVzLXBkZi1zaGFyZWQvQ2FudmFzUG9vbC5qcyc7XG5pbXBvcnQgeyBQZXJmb3JtYW5jZU1vbml0b3IsIHRocm90dGxlIH0gZnJvbSAnLi4vZGVlcy1wZGYtc2hhcmVkL3V0aWxzLmpzJztcbmltcG9ydCB7IHByZXZpZXdTdHlsZXMgfSBmcm9tICcuL3N0eWxlcy5qcyc7XG5pbXBvcnQgeyBkZW1vIGFzIGRlbW9GdW5jIH0gZnJvbSAnLi9kZW1vLmpzJztcbmltcG9ydCAnLi4vLi4vZGVlcy1pY29uL2RlZXMtaWNvbi5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtcGRmLXByZXZpZXcnOiBEZWVzUGRmUHJldmlldztcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1wZGYtcHJldmlldycpXG5leHBvcnQgY2xhc3MgRGVlc1BkZlByZXZpZXcgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIGRlbW9Hcm91cCA9ICdQREYnO1xuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IHByZXZpZXdTdHlsZXM7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIHBkZlVybDogc3RyaW5nID0gJyc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIGN1cnJlbnRQcmV2aWV3UGFnZTogbnVtYmVyID0gMTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIGNsaWNrYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIHBhZ2VDb3VudDogbnVtYmVyID0gMDtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIHJlbmRlcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBlcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3IgaXNIb3ZlcmluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3IgaXNBNEZvcm1hdDogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZW5kZXJQYWdlc1Rhc2s6IFByb21pc2U8dm9pZD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZW5kZXJQYWdlc1F1ZXVlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuICBwcml2YXRlIHBkZkRvY3VtZW50OiBhbnk7XG4gIHByaXZhdGUgY2FudmFzZXM6IFBvb2xlZENhbnZhc1tdID0gW107XG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcbiAgcHJpdmF0ZSBwcmV2aWV3Q29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN0YWNrRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsb2FkZWRQZGZVcmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJwcmV2aWV3LWNvbnRhaW5lciAke3RoaXMubG9hZGluZyA/ICdsb2FkaW5nJyA6ICcnfSAke3RoaXMuZXJyb3IgPyAnZXJyb3InIDogJyd9ICR7dGhpcy5jbGlja2FibGUgPyAnY2xpY2thYmxlJyA6ICcnfVwiXG4gICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9XG4gICAgICAgIEBtb3VzZWVudGVyPSR7dGhpcy5oYW5kbGVNb3VzZUVudGVyfVxuICAgICAgICBAbW91c2VsZWF2ZT0ke3RoaXMuaGFuZGxlTW91c2VMZWF2ZX1cbiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMuaGFuZGxlTW91c2VNb3ZlfVxuICAgICAgPlxuICAgICAgICAke3RoaXMubG9hZGluZyA/IGh0bWxgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctbG9hZGluZ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctc3Bpbm5lclwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctdGV4dFwiPkxvYWRpbmcgcHJldmlldy4uLjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgIDogJyd9XG5cbiAgICAgICAgJHt0aGlzLmVycm9yID8gaHRtbGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1lcnJvclwiPlxuICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPVwibHVjaWRlOkZpbGVYXCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy10ZXh0XCI+RmFpbGVkIHRvIGxvYWQgUERGPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIGAgOiAnJ31cblxuICAgICAgICAkeyF0aGlzLmxvYWRpbmcgJiYgIXRoaXMuZXJyb3IgPyBodG1sYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LXN0YWNrICR7IXRoaXMuaXNBNEZvcm1hdCA/ICdub24tYTQnIDogJyd9XCI+XG4gICAgICAgICAgICA8Y2FudmFzXG4gICAgICAgICAgICAgIGNsYXNzPVwicHJldmlldy1jYW52YXNcIlxuICAgICAgICAgICAgICBkYXRhLXBhZ2U9XCIke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfVwiXG4gICAgICAgICAgICA+PC9jYW52YXM+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAke3RoaXMucGFnZUNvdW50ID4gMSAmJiB0aGlzLmlzSG92ZXJpbmcgPyBodG1sYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctcGFnZS1pbmRpY2F0b3JcIj5cbiAgICAgICAgICAgICAgUGFnZSAke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfSBvZiAke3RoaXMucGFnZUNvdW50fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYCA6ICcnfVxuXG4gICAgICAgICAgJHt0aGlzLnBhZ2VDb3VudCA+IDAgJiYgIXRoaXMuaXNIb3ZlcmluZyA/IGh0bWxgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1pbmZvXCI+XG4gICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj1cImx1Y2lkZTpGaWxlVGV4dFwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByZXZpZXctcGFnZXNcIj4ke3RoaXMucGFnZUNvdW50fSBwYWdlJHt0aGlzLnBhZ2VDb3VudCA+IDEgPyAncycgOiAnJ308L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgIDogJyd9XG5cbiAgICAgICAgICAke3RoaXMuY2xpY2thYmxlID8gaHRtbGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LW92ZXJsYXlcIj5cbiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPVwibHVjaWRlOkV5ZVwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICA8c3Bhbj5WaWV3IFBERjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgYCA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTW91c2VFbnRlcigpIHtcbiAgICB0aGlzLmlzSG92ZXJpbmcgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZUxlYXZlKCkge1xuICAgIHRoaXMuaXNIb3ZlcmluZyA9IGZhbHNlO1xuICAgIC8vIFJlc2V0IHRvIGZpcnN0IHBhZ2Ugd2hlbiBub3QgaG92ZXJpbmdcbiAgICBpZiAodGhpcy5jdXJyZW50UHJldmlld1BhZ2UgIT09IDEpIHtcbiAgICAgIHRoaXMuY3VycmVudFByZXZpZXdQYWdlID0gMTtcbiAgICAgIHZvaWQgdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZU1vdmUoZTogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5pc0hvdmVyaW5nIHx8IHRoaXMucGFnZUNvdW50IDw9IDEpIHJldHVybjtcblxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHggPSBlLmNsaWVudFggLSByZWN0LmxlZnQ7XG4gICAgY29uc3Qgd2lkdGggPSByZWN0LndpZHRoO1xuXG4gICAgLy8gQ2FsY3VsYXRlIHdoaWNoIHBhZ2UgdG8gc2hvdyBiYXNlZCBvbiBob3Jpem9udGFsIHBvc2l0aW9uXG4gICAgY29uc3QgcGVyY2VudGFnZSA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIHggLyB3aWR0aCkpO1xuICAgIGNvbnN0IG5ld1BhZ2UgPSBNYXRoLmNlaWwocGVyY2VudGFnZSAqIHRoaXMucGFnZUNvdW50KSB8fCAxO1xuXG4gICAgaWYgKG5ld1BhZ2UgIT09IHRoaXMuY3VycmVudFByZXZpZXdQYWdlKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSA9IG5ld1BhZ2U7XG4gICAgICB2b2lkIHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBhd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpO1xuICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7XG4gICAgdGhpcy5jYWNoZUVsZW1lbnRzKCk7XG4gICAgdGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgYXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmNsZWFudXAoKTtcbiAgICBpZiAodGhpcy5vYnNlcnZlcikge1xuICAgICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICByb290OiBudWxsLFxuICAgICAgcm9vdE1hcmdpbjogJzIwMHB4JyxcbiAgICAgIHRocmVzaG9sZDogMC4wMSxcbiAgICB9O1xuXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgIHRocm90dGxlKChlbnRyaWVzKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZyAmJiAhdGhpcy5yZW5kZXJlZCAmJiB0aGlzLnBkZlVybCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkQW5kUmVuZGVyUHJldmlldygpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5LmlzSW50ZXJzZWN0aW5nICYmIHRoaXMucmVuZGVyZWQpIHtcbiAgICAgICAgICAgIC8vIE9wdGlvbmFsOiBDbGVhciBjYW52YXNlcyB3aGVuIG91dCBvZiB2aWV3IGZvciBtZW1vcnkgb3B0aW1pemF0aW9uXG4gICAgICAgICAgICAvLyB0aGlzLmNsZWFyQ2FudmFzZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMCksXG4gICAgICBvcHRpb25zXG4gICAgKTtcblxuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZEFuZFJlbmRlclByZXZpZXcoKSB7XG4gICAgaWYgKHRoaXMucmVuZGVyZWQgfHwgdGhpcy5sb2FkaW5nKSByZXR1cm47XG5cbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICBQZXJmb3JtYW5jZU1vbml0b3IubWFyayhgcHJldmlldy1sb2FkLSR7dGhpcy5wZGZVcmx9YCk7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5wZGZEb2N1bWVudCA9IGF3YWl0IFBkZk1hbmFnZXIubG9hZERvY3VtZW50KHRoaXMucGRmVXJsKTtcbiAgICAgIHRoaXMucGFnZUNvdW50ID0gdGhpcy5wZGZEb2N1bWVudC5udW1QYWdlcztcbiAgICAgIHRoaXMuY3VycmVudFByZXZpZXdQYWdlID0gMTtcbiAgICAgIHRoaXMubG9hZGVkUGRmVXJsID0gdGhpcy5wZGZVcmw7XG5cbiAgICAgIC8vIEZvcmNlIGFuIHVwZGF0ZSB0byBlbnN1cmUgdGhlIGNhbnZhcyBlbGVtZW50IGlzIGluIHRoZSBET01cbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtcbiAgICAgIHRoaXMuY2FjaGVFbGVtZW50cygpO1xuXG4gICAgICAvLyBOb3cgcmVuZGVyIHRoZSBmaXJzdCBwYWdlXG4gICAgICBhd2FpdCB0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKTtcblxuICAgICAgdGhpcy5yZW5kZXJlZCA9IHRydWU7XG5cbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gUGVyZm9ybWFuY2VNb25pdG9yLm1lYXN1cmUoYHByZXZpZXctcmVuZGVyLSR7dGhpcy5wZGZVcmx9YCwgYHByZXZpZXctbG9hZC0ke3RoaXMucGRmVXJsfWApO1xuICAgICAgY29uc29sZS5sb2coYFBERiBwcmV2aWV3IHJlbmRlcmVkIGluICR7ZHVyYXRpb259bXNgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgUERGIHByZXZpZXc6JywgZXJyb3IpO1xuICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlUmVuZGVyUGFnZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnBkZkRvY3VtZW50KSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVuZGVyUGFnZXNUYXNrKSB7XG4gICAgICB0aGlzLnJlbmRlclBhZ2VzUXVldWVkID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlclBhZ2VzVGFzaztcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlclBhZ2VzVGFzayA9IChhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnBlcmZvcm1SZW5kZXJQYWdlcygpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHJlbmRlciBQREYgcHJldmlldyBwYWdlczonLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSkoKS5maW5hbGx5KCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyUGFnZXNUYXNrID0gbnVsbDtcbiAgICAgIGlmICh0aGlzLnJlbmRlclBhZ2VzUXVldWVkKSB7XG4gICAgICAgIHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQgPSBmYWxzZTtcbiAgICAgICAgdm9pZCB0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLnJlbmRlclBhZ2VzVGFzaztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcGVyZm9ybVJlbmRlclBhZ2VzKCkge1xuICAgIGlmICghdGhpcy5wZGZEb2N1bWVudCkgcmV0dXJuO1xuXG4gICAgLy8gV2FpdCBhIGZyYW1lIHRvIGVuc3VyZSBET00gaXMgcmVhZHlcbiAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHJlcXVlc3RBbmltYXRpb25GcmFtZShyZXNvbHZlKSk7XG5cbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5wcmV2aWV3LWNhbnZhcycpIGFzIEhUTUxDYW52YXNFbGVtZW50O1xuICAgIGlmICghY2FudmFzKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1ByZXZpZXcgY2FudmFzIG5vdCBmb3VuZCBpbiBET00nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZWxlYXNlIG9sZCBjYW52YXNlc1xuICAgIHRoaXMuY2xlYXJDYW52YXNlcygpO1xuXG4gICAgdGhpcy5jYWNoZUVsZW1lbnRzKCk7XG5cbiAgICAvLyBHZXQgYXZhaWxhYmxlIHNpemUgZm9yIHRoZSBwcmV2aWV3XG4gICAgY29uc3QgeyBhdmFpbGFibGVXaWR0aCwgYXZhaWxhYmxlSGVpZ2h0IH0gPSB0aGlzLmdldEF2YWlsYWJsZVNpemUoKTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBHZXQgdGhlIHBhZ2UgdG8gcmVuZGVyXG4gICAgICBjb25zdCBwYWdlTnVtID0gdGhpcy5jdXJyZW50UHJldmlld1BhZ2U7XG4gICAgICBjb25zdCBwYWdlID0gYXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKHBhZ2VOdW0pO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgc2NhbGUgdG8gZml0IHdpdGhpbiBhdmFpbGFibGUgYXJlYSB3aGlsZSBrZWVwaW5nIGFzcGVjdCByYXRpb1xuICAgICAgLy8gVXNlIGhpZ2hlciBzY2FsZSBmb3Igc2hhcnBlciByZW5kZXJpbmdcbiAgICAgIGNvbnN0IGluaXRpYWxWaWV3cG9ydCA9IHBhZ2UuZ2V0Vmlld3BvcnQoeyBzY2FsZTogMSB9KTtcblxuICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBzdGFuZGFyZCBwYXBlciBmb3JtYXQgKEE0IG9yIFVTIExldHRlcilcbiAgICAgIGNvbnN0IGFzcGVjdFJhdGlvID0gaW5pdGlhbFZpZXdwb3J0LmhlaWdodCAvIGluaXRpYWxWaWV3cG9ydC53aWR0aDtcblxuICAgICAgLy8gQ29tbW9uIHBhcGVyIGZvcm1hdCByYXRpb3NcbiAgICAgIGNvbnN0IGE0UG9ydHJhaXRSYXRpbyA9IDEuNDE0OyAvLyAyOTdtbSAvIDIxMG1tXG4gICAgICBjb25zdCBhNExhbmRzY2FwZVJhdGlvID0gMC43MDc7IC8vIDIxMG1tIC8gMjk3bW1cbiAgICAgIGNvbnN0IGxldHRlclBvcnRyYWl0UmF0aW8gPSAxLjI5NDsgLy8gMTFcIiAvIDguNVwiXG4gICAgICBjb25zdCBsZXR0ZXJMYW5kc2NhcGVSYXRpbyA9IDAuNzczOyAvLyA4LjVcIiAvIDExXCJcblxuICAgICAgLy8gQ2hlY2sgZm9yIHN0YW5kYXJkIGZvcm1hdHMgd2l0aCA1JSB0b2xlcmFuY2VcbiAgICAgIGNvbnN0IHRvbGVyYW5jZSA9IDAuMDU7XG4gICAgICBjb25zdCBpc0E0UG9ydHJhaXQgPSBNYXRoLmFicyhhc3BlY3RSYXRpbyAtIGE0UG9ydHJhaXRSYXRpbykgPCAoYTRQb3J0cmFpdFJhdGlvICogdG9sZXJhbmNlKTtcbiAgICAgIGNvbnN0IGlzQTRMYW5kc2NhcGUgPSBNYXRoLmFicyhhc3BlY3RSYXRpbyAtIGE0TGFuZHNjYXBlUmF0aW8pIDwgKGE0TGFuZHNjYXBlUmF0aW8gKiB0b2xlcmFuY2UpO1xuICAgICAgY29uc3QgaXNMZXR0ZXJQb3J0cmFpdCA9IE1hdGguYWJzKGFzcGVjdFJhdGlvIC0gbGV0dGVyUG9ydHJhaXRSYXRpbykgPCAobGV0dGVyUG9ydHJhaXRSYXRpbyAqIHRvbGVyYW5jZSk7XG4gICAgICBjb25zdCBpc0xldHRlckxhbmRzY2FwZSA9IE1hdGguYWJzKGFzcGVjdFJhdGlvIC0gbGV0dGVyTGFuZHNjYXBlUmF0aW8pIDwgKGxldHRlckxhbmRzY2FwZVJhdGlvICogdG9sZXJhbmNlKTtcblxuICAgICAgLy8gQ29uc2lkZXIgaXQgc3RhbmRhcmQgZm9ybWF0IGlmIGl0IG1hdGNoZXMgQTQgb3IgVVMgTGV0dGVyXG4gICAgICB0aGlzLmlzQTRGb3JtYXQgPSBpc0E0UG9ydHJhaXQgfHwgaXNBNExhbmRzY2FwZSB8fCBpc0xldHRlclBvcnRyYWl0IHx8IGlzTGV0dGVyTGFuZHNjYXBlO1xuXG4gICAgICAvLyBEZWJ1ZyBsb2dnaW5nXG4gICAgICBjb25zb2xlLmxvZyhgUERGIGFzcGVjdCByYXRpbzogJHthc3BlY3RSYXRpby50b0ZpeGVkKDMpfSwgc3RhbmRhcmQgZm9ybWF0OiAke3RoaXMuaXNBNEZvcm1hdH1gKVxuXG4gICAgICAvLyBBZGp1c3QgYXZhaWxhYmxlIHNpemUgZm9yIG5vbi1BNCBkb2N1bWVudHMgKGFjY291bnQgZm9yIHBhZGRpbmcpXG4gICAgICBjb25zdCBhZGp1c3RlZFdpZHRoID0gdGhpcy5pc0E0Rm9ybWF0ID8gYXZhaWxhYmxlV2lkdGggOiBhdmFpbGFibGVXaWR0aCAtIDI0O1xuICAgICAgY29uc3QgYWRqdXN0ZWRIZWlnaHQgPSB0aGlzLmlzQTRGb3JtYXQgPyBhdmFpbGFibGVIZWlnaHQgOiBhdmFpbGFibGVIZWlnaHQgLSAyNDtcblxuICAgICAgY29uc3Qgc2NhbGVYID0gYWRqdXN0ZWRXaWR0aCA+IDAgPyBhZGp1c3RlZFdpZHRoIC8gaW5pdGlhbFZpZXdwb3J0LndpZHRoIDogMDtcbiAgICAgIGNvbnN0IHNjYWxlWSA9IGFkanVzdGVkSGVpZ2h0ID4gMCA/IGFkanVzdGVkSGVpZ2h0IC8gaW5pdGlhbFZpZXdwb3J0LmhlaWdodCA6IDA7XG4gICAgICAvLyBJbmNyZWFzZSBzY2FsZSBieSAyeCBmb3Igc2hhcnBlciByZW5kZXJpbmcsIGJ1dCBsaW1pdCB0byAzLjAgbWF4XG4gICAgICBjb25zdCBiYXNlU2NhbGUgPSBNYXRoLm1pbihzY2FsZVggfHwgMC41LCBzY2FsZVkgfHwgc2NhbGVYIHx8IDAuNSk7XG4gICAgICBjb25zdCByZW5kZXJTY2FsZSA9IE1hdGgubWluKGJhc2VTY2FsZSAqIDIsIDMuMCk7XG5cbiAgICAgIGlmICghTnVtYmVyLmlzRmluaXRlKHJlbmRlclNjYWxlKSB8fCByZW5kZXJTY2FsZSA8PSAwKSB7XG4gICAgICAgIHBhZ2UuY2xlYW51cD8uKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgdmlld3BvcnQgPSBwYWdlLmdldFZpZXdwb3J0KHsgc2NhbGU6IHJlbmRlclNjYWxlIH0pO1xuXG4gICAgICAvLyBBY3F1aXJlIGNhbnZhcyBmcm9tIHBvb2xcbiAgICAgIGNvbnN0IHBvb2xlZENhbnZhcyA9IENhbnZhc1Bvb2wuYWNxdWlyZSh2aWV3cG9ydC53aWR0aCwgdmlld3BvcnQuaGVpZ2h0KTtcbiAgICAgIHRoaXMuY2FudmFzZXMucHVzaChwb29sZWRDYW52YXMpO1xuXG4gICAgICAvLyBSZW5kZXIgdG8gcG9vbGVkIGNhbnZhcyBmaXJzdFxuICAgICAgY29uc3QgcmVuZGVyQ29udGV4dCA9IHtcbiAgICAgICAgY2FudmFzQ29udGV4dDogcG9vbGVkQ2FudmFzLmN0eCxcbiAgICAgICAgdmlld3BvcnQ6IHZpZXdwb3J0LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgcGFnZS5yZW5kZXIocmVuZGVyQ29udGV4dCkucHJvbWlzZTtcblxuICAgICAgLy8gVHJhbnNmZXIgdG8gZGlzcGxheSBjYW52YXNcbiAgICAgIC8vIFNldCBhY3R1YWwgY2FudmFzIHJlc29sdXRpb24gZm9yIHNoYXJwbmVzc1xuICAgICAgY2FudmFzLndpZHRoID0gdmlld3BvcnQud2lkdGg7XG4gICAgICBjYW52YXMuaGVpZ2h0ID0gdmlld3BvcnQuaGVpZ2h0O1xuXG4gICAgICAvLyBTY2FsZSBkb3duIGRpc3BsYXkgc2l6ZSB0byBmaXQgdGhlIGNvbnRhaW5lciB3aGlsZSBrZWVwaW5nIGhpZ2ggcmVzb2x1dGlvblxuICAgICAgLy8gRm9yIEE0LCBmaWxsIHRoZSBjb250YWluZXI7IGZvciBub24tQTQsIHJlc3BlY3QgcGFkZGluZ1xuICAgICAgY29uc3QgZGlzcGxheVdpZHRoID0gYWRqdXN0ZWRXaWR0aDtcbiAgICAgIGNvbnN0IGRpc3BsYXlIZWlnaHQgPSAodmlld3BvcnQuaGVpZ2h0IC8gdmlld3BvcnQud2lkdGgpICogYWRqdXN0ZWRXaWR0aDtcblxuICAgICAgLy8gSWYgaXQgZml0cyBoZWlnaHQtd2lzZSBiZXR0ZXIsIHNjYWxlIGJ5IGhlaWdodCBpbnN0ZWFkXG4gICAgICBpZiAoZGlzcGxheUhlaWdodCA+IGFkanVzdGVkSGVpZ2h0KSB7XG4gICAgICAgIGNvbnN0IGFsdERpc3BsYXlIZWlnaHQgPSBhZGp1c3RlZEhlaWdodDtcbiAgICAgICAgY29uc3QgYWx0RGlzcGxheVdpZHRoID0gKHZpZXdwb3J0LndpZHRoIC8gdmlld3BvcnQuaGVpZ2h0KSAqIGFkanVzdGVkSGVpZ2h0O1xuICAgICAgICBjYW52YXMuc3R5bGUud2lkdGggPSBgJHthbHREaXNwbGF5V2lkdGh9cHhgO1xuICAgICAgICBjYW52YXMuc3R5bGUuaGVpZ2h0ID0gYCR7YWx0RGlzcGxheUhlaWdodH1weGA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjYW52YXMuc3R5bGUud2lkdGggPSBgJHtkaXNwbGF5V2lkdGh9cHhgO1xuICAgICAgICBjYW52YXMuc3R5bGUuaGVpZ2h0ID0gYCR7ZGlzcGxheUhlaWdodH1weGA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgaWYgKGN0eCkge1xuICAgICAgICAvLyBFbmFibGUgaW1hZ2Ugc21vb3RoaW5nIGZvciBiZXR0ZXIgcXVhbGl0eVxuICAgICAgICBjdHguaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgY3R4LmltYWdlU21vb3RoaW5nUXVhbGl0eSA9ICdoaWdoJztcbiAgICAgICAgY3R4LmRyYXdJbWFnZShwb29sZWRDYW52YXMuY2FudmFzLCAwLCAwKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVsZWFzZSBwYWdlIHRvIGZyZWUgbWVtb3J5XG4gICAgICBwYWdlLmNsZWFudXAoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHJlbmRlciBwYWdlICR7dGhpcy5jdXJyZW50UHJldmlld1BhZ2V9OmAsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsZWFyQ2FudmFzZXMoKSB7XG4gICAgLy8gUmVsZWFzZSBwb29sZWQgY2FudmFzZXNcbiAgICBmb3IgKGNvbnN0IHBvb2xlZENhbnZhcyBvZiB0aGlzLmNhbnZhc2VzKSB7XG4gICAgICBDYW52YXNQb29sLnJlbGVhc2UocG9vbGVkQ2FudmFzKTtcbiAgICB9XG4gICAgdGhpcy5jYW52YXNlcyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwKCkge1xuICAgIHRoaXMuY2xlYXJDYW52YXNlcygpO1xuXG4gICAgaWYgKHRoaXMucGRmRG9jdW1lbnQpIHtcbiAgICAgIFBkZk1hbmFnZXIucmVsZWFzZURvY3VtZW50KHRoaXMubG9hZGVkUGRmVXJsID8/IHRoaXMucGRmVXJsKTtcbiAgICAgIHRoaXMucGRmRG9jdW1lbnQgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQgPSBmYWxzZTtcblxuICAgIHRoaXMucGFnZUNvdW50ID0gMDtcbiAgICB0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSA9IDE7XG4gICAgdGhpcy5pc0hvdmVyaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc0E0Rm9ybWF0ID0gdHJ1ZTtcbiAgICB0aGlzLnByZXZpZXdDb250YWluZXIgPSBudWxsO1xuICAgIHRoaXMuc3RhY2tFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLmxvYWRlZFBkZlVybCA9IG51bGw7XG4gICAgdGhpcy5yZW5kZXJlZCA9IGZhbHNlO1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLmNsaWNrYWJsZSkgcmV0dXJuO1xuXG4gICAgLy8gRGlzcGF0Y2ggY3VzdG9tIGV2ZW50IGZvciBwYXJlbnQgdG8gaGFuZGxlXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgncGRmLXByZXZpZXctY2xpY2snLCB7XG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgcGRmVXJsOiB0aGlzLnBkZlVybCxcbiAgICAgICAgcGFnZUNvdW50OiB0aGlzLnBhZ2VDb3VudCxcbiAgICAgIH0sXG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxQcm9wZXJ0eUtleSwgdW5rbm93bj4pIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3BkZlVybCcpICYmIHRoaXMucGRmVXJsKSB7XG4gICAgICBjb25zdCBwcmV2aW91c1VybCA9IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgncGRmVXJsJykgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKHByZXZpb3VzVXJsKSB7XG4gICAgICAgIFBkZk1hbmFnZXIucmVsZWFzZURvY3VtZW50KHByZXZpb3VzVXJsKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2xlYW51cCgpO1xuICAgICAgdGhpcy5yZW5kZXJlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5jdXJyZW50UHJldmlld1BhZ2UgPSAxO1xuXG4gICAgICAvLyBDaGVjayBpZiBpbiB2aWV3cG9ydCBhbmQgcmVuZGVyIGlmIHNvXG4gICAgICBpZiAodGhpcy5vYnNlcnZlcikge1xuICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgaWYgKHJlY3QudG9wIDwgd2luZG93LmlubmVySGVpZ2h0ICYmIHJlY3QuYm90dG9tID4gMCkge1xuICAgICAgICAgIHRoaXMubG9hZEFuZFJlbmRlclByZXZpZXcoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2N1cnJlbnRQcmV2aWV3UGFnZScpICYmIHRoaXMucmVuZGVyZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlIGNvbnRleHQgbWVudSBpdGVtcyBmb3IgcmlnaHQtY2xpY2sgZnVuY3Rpb25hbGl0eVxuICAgKi9cbiAgcHVibGljIGdldENvbnRleHRNZW51SXRlbXMoKSB7XG4gICAgY29uc3QgaXRlbXM6IGFueVtdID0gW107XG5cbiAgICAvLyBJZiBjbGlja2FibGUsIGFkZCBvcHRpb24gdG8gdmlldyB0aGUgUERGXG4gICAgaWYgKHRoaXMuY2xpY2thYmxlKSB7XG4gICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ1ZpZXcgUERGJyxcbiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6RXllJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVDbGljaygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGl0ZW1zLnB1c2goeyBkaXZpZGVyOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGl0ZW1zLnB1c2goXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdPcGVuIFBERiBpbiBOZXcgVGFiJyxcbiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6RXh0ZXJuYWxMaW5rJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgd2luZG93Lm9wZW4odGhpcy5wZGZVcmwsICdfYmxhbmsnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnQ29weSBQREYgVVJMJyxcbiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6Q29weScsXG4gICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMucGRmVXJsKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0Rvd25sb2FkIFBERicsXG4gICAgICAgIGljb25OYW1lOiAnbHVjaWRlOkRvd25sb2FkJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICBsaW5rLmhyZWYgPSB0aGlzLnBkZlVybDtcbiAgICAgICAgICBsaW5rLmRvd25sb2FkID0gdGhpcy5wZGZVcmwuc3BsaXQoJy8nKS5wb3AoKSB8fCAnZG9jdW1lbnQucGRmJztcbiAgICAgICAgICBsaW5rLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gQWRkIHBhZ2UgY291bnQgaW5mbyBhcyBhIGRpc2FibGVkIGl0ZW1cbiAgICBpZiAodGhpcy5wYWdlQ291bnQgPiAwKSB7XG4gICAgICBpdGVtcy5wdXNoKFxuICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGAke3RoaXMucGFnZUNvdW50fSBwYWdlJHt0aGlzLnBhZ2VDb3VudCA+IDEgPyAncycgOiAnJ31gLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOkZpbGVUZXh0JyxcbiAgICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHt9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWNoZUVsZW1lbnRzKCkge1xuICAgIGlmICghdGhpcy5wcmV2aWV3Q29udGFpbmVyKSB7XG4gICAgICB0aGlzLnByZXZpZXdDb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5wcmV2aWV3LWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc3RhY2tFbGVtZW50KSB7XG4gICAgICB0aGlzLnN0YWNrRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnByZXZpZXctc3RhY2snKSBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldHVwUmVzaXplT2JzZXJ2ZXIoKSB7XG4gICAgaWYgKCF0aGlzLnByZXZpZXdDb250YWluZXIgfHwgdGhpcy5yZXNpemVPYnNlcnZlcikgcmV0dXJuO1xuXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5yZW5kZXJlZCAmJiB0aGlzLnBkZkRvY3VtZW50ICYmICF0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgdm9pZCB0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXZhaWxhYmxlU2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMuc3RhY2tFbGVtZW50KSB7XG4gICAgICAvLyBUcnkgdG8gZ2V0IHRoZSBzdGFjayBlbGVtZW50IGlmIGl0J3Mgbm90IGNhY2hlZFxuICAgICAgdGhpcy5zdGFja0VsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5wcmV2aWV3LXN0YWNrJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnN0YWNrRWxlbWVudCkge1xuICAgICAgLy8gRmFsbGJhY2sgdG8gZGVmYXVsdCBzaXplIGlmIGVsZW1lbnQgbm90IGZvdW5kXG4gICAgICByZXR1cm4ge1xuICAgICAgICBhdmFpbGFibGVXaWR0aDogMjAwLCAgLy8gRnVsbCBjb250YWluZXIgd2lkdGhcbiAgICAgICAgYXZhaWxhYmxlSGVpZ2h0OiAyNjAsIC8vIEZ1bGwgY29udGFpbmVyIGhlaWdodFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCByZWN0ID0gdGhpcy5zdGFja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgYXZhaWxhYmxlV2lkdGggPSBNYXRoLm1heChyZWN0LndpZHRoLCAwKSB8fCAyMDA7XG4gICAgY29uc3QgYXZhaWxhYmxlSGVpZ2h0ID0gTWF0aC5tYXgocmVjdC5oZWlnaHQsIDApIHx8IDI2MDtcblxuICAgIHJldHVybiB7IGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQgfTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGNzcywgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCB2aWV3ZXJTdHlsZXMgPSBbXG4gIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgY3NzYFxuICAgIDpob3N0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDYwMHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjtcbiAgICAgIGNvbnRhaW46IGxheW91dCBzdHlsZTtcbiAgICB9XG5cbiAgICAucGRmLXZpZXdlciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk3JSknLCAnaHNsKDIxNSAyMCUgMTAlKScpfTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnRvb2xiYXIge1xuICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgyMTUgMjAlIDE1JSknKX07XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTQgMzElIDkxJSknLCAnaHNsKDIxNyAyNSUgMjIlKScpfTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgICAgZ2FwOiAxNnB4O1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgLnRvb2xiYXItZ3JvdXAge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDRweDtcbiAgICB9XG5cbiAgICAudG9vbGJhci1ncm91cC0tZW5kIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgIC50b29sYmFyLWJ1dHRvbiB7XG4gICAgICB3aWR0aDogMzJweDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNSAxNiUgNDUlKScsICdoc2woMjE1IDE2JSA3NSUpJyl9O1xuICAgIH1cblxuICAgIC50b29sYmFyLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNCAzMSUgOTIlKScsICdoc2woMjE3IDI1JSAyMiUpJyl9O1xuICAgIH1cblxuICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cblxuICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24ge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cblxuICAgIC5wYWdlLWluZm8ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDhweDtcbiAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDE2JSA0NSUpJywgJ2hzbCgyMTUgMTYlIDc1JSknKX07XG4gICAgfVxuXG4gICAgLnBhZ2UtaW5wdXQge1xuICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNCAzMSUgODYlKScsICdoc2woMjE3IDI1JSAyOCUpJyl9O1xuICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgyMTUgMjAlIDEyJSknKX07XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMjIgNDclIDExJSknLCAnaHNsKDIxMCAyMCUgOTYlKScpfTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAucGFnZS1pbnB1dDpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE3IDkxJSA2MCUpJywgJ2hzbCgyMTMgOTMlIDY4JSknKX07XG4gICAgfVxuXG4gICAgLnBhZ2Utc2VwYXJhdG9yIHtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNSAxNiUgNjAlKScsICdoc2woMjE1IDE2JSA1MCUpJyl9O1xuICAgIH1cblxuICAgIC56b29tLWxldmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBtaW4td2lkdGg6IDQ4cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnZpZXdlci1jb250YWluZXIge1xuICAgICAgZmxleDogMTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAuc2lkZWJhciB7XG4gICAgICB3aWR0aDogMjAwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMTAwJSknLCAnaHNsKDIxNSAyMCUgMTUlKScpfTtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0IDMxJSA5MSUpJywgJ2hzbCgyMTcgMjUlIDIyJSknKX07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNpZGViYXItaGVhZGVyIHtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0IDMxJSA5MSUpJywgJ2hzbCgyMTcgMjUlIDIyJSknKX07XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDE2JSA0NSUpJywgJ2hzbCgyMTUgMTYlIDc1JSknKX07XG4gICAgfVxuXG4gICAgLnNpZGViYXItY2xvc2Uge1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUgMTYlIDQ1JSknLCAnaHNsKDIxNSAxNiUgNzUlKScpfTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbiAgICB9XG5cbiAgICAuc2lkZWJhci1jbG9zZTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNCAzMSUgOTIlKScsICdoc2woMjE3IDI1JSAyMiUpJyl9O1xuICAgIH1cblxuICAgIC5zaWRlYmFyLWNsb3NlIGRlZXMtaWNvbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuXG4gICAgLnNpZGViYXItY29udGVudCB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC50aHVtYm5haWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTUlKScsICdoc2woMjE1IDIwJSAxOCUpJyl9O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAvKiBEZWZhdWx0IEE0IGFzcGVjdCByYXRpbyAoMjk3bW0gLyAyMTBtbSBcdTIyNDggMS40MTQpICovXG4gICAgICBtaW4taGVpZ2h0OiBjYWxjKDE3NnB4ICogMS40MTQpO1xuICAgIH1cblxuICAgIC50aHVtYm5haWw6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC50aHVtYm5haWw6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNCAzMSUgODYlKScsICdoc2woMjE3IDI1JSAzNSUpJyl9O1xuICAgIH1cblxuICAgIC50aHVtYm5haWwuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTcgOTElIDYwJSknLCAnaHNsKDIxMyA5MyUgNjglKScpfTtcbiAgICB9XG5cbiAgICAudGh1bWJuYWlsLWNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgICB9XG5cbiAgICAudGh1bWJuYWlsLW51bWJlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDRweDtcbiAgICAgIHJpZ2h0OiA0cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjcpJywgJ3JnYmEoMCwgMCwgMCwgMC44KScpfTtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIH1cblxuICAgIC52aWV3ZXItbWFpbiB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5sb2FkaW5nLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGdhcDogMTZweDtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNSAxNiUgNDUlKScsICdoc2woMjE1IDE2JSA3NSUpJyl9O1xuICAgIH1cblxuICAgIC5sb2FkaW5nLXNwaW5uZXIge1xuICAgICAgd2lkdGg6IDMycHg7XG4gICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBib3JkZXI6IDNweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNCAzMSUgODYlKScsICdoc2woMjE3IDI1JSAyOCUpJyl9O1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTcgOTElIDYwJSknLCAnaHNsKDIxMyA5MyUgNjglKScpfTtcbiAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIHNwaW4ge1xuICAgICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5sb2FkaW5nLXRleHQge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICAucGFnZXMtY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMjBweDtcbiAgICB9XG5cbiAgICAucGFnZS13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5jYW52YXMtY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgYm94LXNoYWRvdzogMCAycHggMTJweCAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgwLCAwLCAwLCAwLjEpJywgJ3JnYmEoMCwgMCwgMCwgMC4zKScpfTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLnBhZ2UtY2FudmFzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgICB9XG5cbiAgICAucGRmLXZpZXdlci53aXRoLXNpZGViYXIgLnZpZXdlci1tYWluIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgYCxcbl07IiwgImltcG9ydCB7IGh0bWwgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgZGVtbyA9ICgpID0+IGh0bWxgXG4gIDxzdHlsZT5cbiAgICAuZGVtby1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogNDBweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgfVxuXG4gICAgLmRlbW8tc2VjdGlvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cblxuICAgIGRlZXMtcGRmLXZpZXdlciB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAudmlld2VyLXRhbGwge1xuICAgICAgaGVpZ2h0OiA4MDBweDtcbiAgICB9XG5cbiAgICAudmlld2VyLWNvbXBhY3Qge1xuICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICB9XG4gIDwvc3R5bGU+XG5cbiAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRlbW8tc2VjdGlvblwiPlxuICAgICAgPGgzPkZ1bGwgRmVhdHVyZWQgUERGIFZpZXdlciB3aXRoIFRvb2xiYXI8L2gzPlxuICAgICAgPGRlZXMtcGRmLXZpZXdlclxuICAgICAgICBjbGFzcz1cInZpZXdlci10YWxsXCJcbiAgICAgICAgcGRmVXJsPVwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmXCJcbiAgICAgICAgc2hvd1Rvb2xiYXI9XCJ0cnVlXCJcbiAgICAgICAgc2hvd1NpZGViYXI9XCJmYWxzZVwiXG4gICAgICAgIGluaXRpYWxab29tPVwicGFnZS1maXRcIlxuICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tc2VjdGlvblwiPlxuICAgICAgPGgzPlBERiBWaWV3ZXIgd2l0aCBTaWRlYmFyIE5hdmlnYXRpb248L2gzPlxuICAgICAgPGRlZXMtcGRmLXZpZXdlclxuICAgICAgICBjbGFzcz1cInZpZXdlci10YWxsXCJcbiAgICAgICAgcGRmVXJsPVwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmXCJcbiAgICAgICAgc2hvd1Rvb2xiYXI9XCJ0cnVlXCJcbiAgICAgICAgc2hvd1NpZGViYXI9XCJ0cnVlXCJcbiAgICAgICAgaW5pdGlhbFpvb209XCJwYWdlLXdpZHRoXCJcbiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgIDxoMz5Db21wYWN0IFZpZXdlciB3aXRob3V0IENvbnRyb2xzPC9oMz5cbiAgICAgIDxkZWVzLXBkZi12aWV3ZXJcbiAgICAgICAgY2xhc3M9XCJ2aWV3ZXItY29tcGFjdFwiXG4gICAgICAgIHBkZlVybD1cImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZlwiXG4gICAgICAgIHNob3dUb29sYmFyPVwiZmFsc2VcIlxuICAgICAgICBzaG93U2lkZWJhcj1cImZhbHNlXCJcbiAgICAgICAgaW5pdGlhbFpvb209XCJhdXRvXCJcbiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5gOyIsICJpbXBvcnQgeyBEZWVzRWxlbWVudCwgcHJvcGVydHksIGh0bWwsIGN1c3RvbUVsZW1lbnQsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIGRpcmVjdGl2ZXMgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgUGRmTWFuYWdlciB9IGZyb20gJy4uL2RlZXMtcGRmLXNoYXJlZC9QZGZNYW5hZ2VyLmpzJztcbmltcG9ydCB7IHZpZXdlclN0eWxlcyB9IGZyb20gJy4vc3R5bGVzLmpzJztcbmltcG9ydCB7IGRlbW8gYXMgZGVtb0Z1bmMgfSBmcm9tICcuL2RlbW8uanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1wZGYtdmlld2VyJzogRGVlc1BkZlZpZXdlcjtcbiAgfVxufVxuXG50eXBlIFJlbmRlclN0YXRlID0gJ2lkbGUnIHwgJ2xvYWRpbmcnIHwgJ3JlbmRlcmluZy1tYWluJyB8ICdyZW5kZXJpbmctdGh1bWJzJyB8ICdyZW5kZXJlZCcgfCAnZXJyb3InIHwgJ2Rpc3Bvc2VkJztcblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtcGRmLXZpZXdlcicpXG5leHBvcnQgY2xhc3MgRGVlc1BkZlZpZXdlciBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ1BERic7XG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gdmlld2VyU3R5bGVzO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBwZGZVcmw6IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBpbml0aWFsUGFnZTogbnVtYmVyID0gMTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgaW5pdGlhbFpvb206ICdhdXRvJyB8ICdwYWdlLWZpdCcgfCAncGFnZS13aWR0aCcgfCBudW1iZXIgPSAnYXV0byc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBzaG93VG9vbGJhcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBzaG93U2lkZWJhcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBjdXJyZW50UGFnZTogbnVtYmVyID0gMTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3IgdG90YWxQYWdlczogbnVtYmVyID0gMTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3IgY3VycmVudFpvb206IG51bWJlciA9IDE7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBhY2Nlc3NvciBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIGRvY3VtZW50SWQ6IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIGFjY2Vzc29yIHRodW1ibmFpbERhdGE6IEFycmF5PHtwYWdlOiBudW1iZXIsIHJlbmRlcmVkOiBib29sZWFufT4gPSBbXTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBhY2Nlc3NvciBwYWdlRGF0YTogQXJyYXk8e3BhZ2U6IG51bWJlciwgcmVuZGVyZWQ6IGJvb2xlYW4sIHJlbmRlcmluZzogYm9vbGVhbn0+ID0gW107XG5cbiAgcHJpdmF0ZSBwZGZEb2N1bWVudDogYW55O1xuICBwcml2YXRlIHJlbmRlclN0YXRlOiBSZW5kZXJTdGF0ZSA9ICdpZGxlJztcbiAgcHJpdmF0ZSByZW5kZXJBYm9ydENvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHBhZ2VSZW5kZXJpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBwYWdlTnVtUGVuZGluZzogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY3VycmVudFJlbmRlclRhc2s6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgY3VycmVudFJlbmRlclByb21pc2U6IFByb21pc2U8dm9pZD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB0aHVtYm5haWxSZW5kZXJUYXNrczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBwYWdlUmVuZGVyVGFza3M6IE1hcDxudW1iZXIsIGFueT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSB2aWV3ZXJNYWluOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyPzogUmVzaXplT2JzZXJ2ZXI7XG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/OiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgcHJpdmF0ZSBzY3JvbGxUaHJvdHRsZVRpbWVvdXQ/OiBudW1iZXI7XG4gIHByaXZhdGUgdmlld3BvcnREaW1lbnNpb25zID0geyB3aWR0aDogMCwgaGVpZ2h0OiAwIH07XG4gIHByaXZhdGUgdmlld3BvcnRNb2RlOiAnYXV0bycgfCAncGFnZS1maXQnIHwgJ3BhZ2Utd2lkdGgnIHwgJ2N1c3RvbScgPSAnYXV0byc7XG4gIHByaXZhdGUgcmVhZG9ubHkgTUFOVUFMX01JTl9aT09NID0gMC41O1xuICBwcml2YXRlIHJlYWRvbmx5IE1BTlVBTF9NQVhfWk9PTSA9IDM7XG4gIHByaXZhdGUgcmVhZG9ubHkgQUJTT0xVVEVfTUlOX1pPT00gPSAwLjE7XG4gIHByaXZhdGUgcmVhZG9ubHkgQUJTT0xVVEVfTUFYX1pPT00gPSA0O1xuICBwcml2YXRlIHJlYWRvbmx5IFBBR0VfR0FQID0gMjA7XG4gIHByaXZhdGUgcmVhZG9ubHkgUkVOREVSX0JVRkZFUiA9IDM7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInBkZi12aWV3ZXIgJHt0aGlzLnNob3dTaWRlYmFyID8gJ3dpdGgtc2lkZWJhcicgOiAnJ31cIj5cbiAgICAgICAgJHt0aGlzLnNob3dUb29sYmFyID8gaHRtbGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXItZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidG9vbGJhci1idXR0b25cIlxuICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucHJldmlvdXNQYWdlfVxuICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuY3VycmVudFBhZ2UgPD0gMX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj1cImx1Y2lkZTpDaGV2cm9uTGVmdFwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2UtaW5mb1wiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBtaW49XCIxXCJcbiAgICAgICAgICAgICAgICAgIG1heD1cIiR7dGhpcy50b3RhbFBhZ2VzfVwiXG4gICAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5jdXJyZW50UGFnZSl9XG4gICAgICAgICAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5oYW5kbGVQYWdlSW5wdXR9XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInBhZ2UtaW5wdXRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlLXNlcGFyYXRvclwiPi88L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlLXRvdGFsXCI+JHt0aGlzLnRvdGFsUGFnZXN9PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidG9vbGJhci1idXR0b25cIlxuICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMubmV4dFBhZ2V9XG4gICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5jdXJyZW50UGFnZSA+PSB0aGlzLnRvdGFsUGFnZXN9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249XCJsdWNpZGU6Q2hldnJvblJpZ2h0XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWdyb3VwXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnpvb21PdXR9XG4gICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7IXRoaXMuY2FuWm9vbU91dH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj1cImx1Y2lkZTpab29tT3V0XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0b29sYmFyLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5yZXNldFpvb219XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInpvb20tbGV2ZWxcIj4ke01hdGgucm91bmQodGhpcy5jdXJyZW50Wm9vbSAqIDEwMCl9JTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnpvb21Jbn1cbiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tSW59XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249XCJsdWNpZGU6Wm9vbUluXCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWdyb3VwXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmZpdFRvUGFnZX1cbiAgICAgICAgICAgICAgICB0aXRsZT1cIkZpdCB0byBwYWdlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj1cImx1Y2lkZTpNYXhpbWl6ZVwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidG9vbGJhci1idXR0b25cIlxuICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZml0VG9XaWR0aH1cbiAgICAgICAgICAgICAgICB0aXRsZT1cIkZpdCB0byB3aWR0aFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249XCJsdWNpZGU6QXJyb3dMZWZ0UmlnaHRcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXItZ3JvdXAgdG9vbGJhci1ncm91cC0tZW5kXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLnNob3dTaWRlYmFyID0gIXRoaXMuc2hvd1NpZGViYXJ9XG4gICAgICAgICAgICAgICAgdGl0bGU9XCIke3RoaXMuc2hvd1NpZGViYXIgPyAnSGlkZSB0aHVtYm5haWxzJyA6ICdTaG93IHRodW1ibmFpbHMnfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249XCIke3RoaXMuc2hvd1NpZGViYXIgPyAnbHVjaWRlOlNpZGViYXJDbG9zZScgOiAnbHVjaWRlOlNpZGViYXInfVwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidG9vbGJhci1idXR0b25cIlxuICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZG93bmxvYWRQZGZ9XG4gICAgICAgICAgICAgICAgdGl0bGU9XCJEb3dubG9hZFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249XCJsdWNpZGU6RG93bmxvYWRcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnByaW50UGRmfVxuICAgICAgICAgICAgICAgIHRpdGxlPVwiUHJpbnRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPVwibHVjaWRlOlByaW50ZXJcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgYCA6ICcnfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3ZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgJHt0aGlzLnNob3dTaWRlYmFyID8gaHRtbGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPlBhZ2VzPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2lkZWJhci1jbG9zZVwiXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLnNob3dTaWRlYmFyID0gZmFsc2V9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPVwibHVjaWRlOlhcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAke2RpcmVjdGl2ZXMua2V5ZWQodGhpcy5kb2N1bWVudElkLCBodG1sYFxuICAgICAgICAgICAgICAgICAgJHtkaXJlY3RpdmVzLnJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aHVtYm5haWxEYXRhLFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5wYWdlLFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRodW1ibmFpbCAke3RoaXMuY3VycmVudFBhZ2UgPT09IGl0ZW0ucGFnZSA/ICdhY3RpdmUnIDogJyd9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcGFnZT1cIiR7aXRlbS5wYWdlfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVRodW1ibmFpbENsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9XCJ0aHVtYm5haWwtY2FudmFzXCIgZGF0YS1wYWdlPVwiJHtpdGVtLnBhZ2V9XCI+PC9jYW52YXM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRodW1ibmFpbC1udW1iZXJcIj4ke2l0ZW0ucGFnZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgYCl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYCA6ICcnfVxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZpZXdlci1tYWluXCIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT5cbiAgICAgICAgICAgICR7dGhpcy5sb2FkaW5nID8gaHRtbGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctc3Bpbm5lclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLXRleHRcIj5Mb2FkaW5nIFBERi4uLjwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGAgOiBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFnZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgJHtkaXJlY3RpdmVzLnJlcGVhdChcbiAgICAgICAgICAgICAgICAgIHRoaXMucGFnZURhdGEsXG4gICAgICAgICAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5wYWdlLFxuICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+IGh0bWxgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdlLXdyYXBwZXJcIiBkYXRhLXBhZ2U9XCIke2l0ZW0ucGFnZX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FudmFzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz1cInBhZ2UtY2FudmFzXCIgZGF0YS1wYWdlPVwiJHtpdGVtLnBhZ2V9XCI+PC9jYW52YXM+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGF3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtcbiAgICB0aGlzLmVuc3VyZVZpZXdlclJlZnMoKTtcblxuICAgIC8vIEdlbmVyYXRlIGEgdW5pcXVlIGRvY3VtZW50IElEIGZvciB0aGlzIGNvbm5lY3Rpb25cbiAgICBpZiAodGhpcy5wZGZVcmwpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRJZCA9IGAke3RoaXMucGRmVXJsfS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gO1xuICAgICAgYXdhaXQgdGhpcy5sb2FkUGRmKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB1bmRlZmluZWQ7XG5cbiAgICAvLyBDbGVhciBzY3JvbGwgdGltZW91dFxuICAgIGlmICh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0KTtcbiAgICAgIHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIE1hcmsgYXMgZGlzcG9zZWQgYW5kIGNsZWFuIHVwXG4gICAgdGhpcy5yZW5kZXJTdGF0ZSA9ICdkaXNwb3NlZCc7XG4gICAgYXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKTtcblxuICAgIC8vIENsZWFyIGFsbCByZWZlcmVuY2VzXG4gICAgdGhpcy5jYW52YXMgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5jdHggPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogTWFwPFByb3BlcnR5S2V5LCB1bmtub3duPikge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygncGRmVXJsJykgJiYgdGhpcy5wZGZVcmwpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzVXJsID0gY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCdwZGZVcmwnKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAocHJldmlvdXNVcmwpIHtcbiAgICAgICAgUGRmTWFuYWdlci5yZWxlYXNlRG9jdW1lbnQocHJldmlvdXNVcmwpO1xuICAgICAgfVxuICAgICAgLy8gR2VuZXJhdGUgbmV3IGRvY3VtZW50IElEIGZvciBuZXcgVVJMXG4gICAgICB0aGlzLmRvY3VtZW50SWQgPSBgJHt0aGlzLnBkZlVybH0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YDtcbiAgICAgIGF3YWl0IHRoaXMubG9hZFBkZigpO1xuICAgIH1cblxuICAgIC8vIFJlLXJlbmRlciB0aHVtYm5haWxzIHdoZW4gc2lkZWJhciBiZWNvbWVzIHZpc2libGUgYW5kIGRvY3VtZW50IGlzIGxvYWRlZFxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3Nob3dTaWRlYmFyJykgJiYgdGhpcy5zaG93U2lkZWJhciAmJiB0aGlzLnBkZkRvY3VtZW50KSB7XG4gICAgICAvLyBVc2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHRvIGVuc3VyZSBET00gaXMgcmVhZHlcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29sdmUpKTtcbiAgICAgIC8vIEZvcmNlIHJlLXJlbmRlciBvZiB0aHVtYm5haWxzIGJ5IHJlc2V0dGluZyB0aGVpciByZW5kZXJlZCBzdGF0ZVxuICAgICAgdGhpcy50aHVtYm5haWxEYXRhLmZvckVhY2godGh1bWIgPT4gdGh1bWIucmVuZGVyZWQgPSBmYWxzZSk7XG4gICAgICBhd2FpdCB0aGlzLnJlbmRlclRodW1ibmFpbHMoKTtcbiAgICAgIC8vIFJlLXNldHVwIGludGVyc2VjdGlvbiBvYnNlcnZlciBmb3IgbGF6eSBsb2FkaW5nIG9mIHBhZ2VzXG4gICAgICB0aGlzLnNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKTtcbiAgICAgIC8vIFNjcm9sbCB0byBhY3RpdmUgdGh1bWJuYWlsIGFmdGVyIHJlbmRlcmluZ1xuICAgICAgdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRQZGYoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlbmRlclN0YXRlID0gJ2xvYWRpbmcnO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xlYW51cERvY3VtZW50KCk7XG5cbiAgICAgIC8vIENyZWF0ZSBuZXcgYWJvcnQgY29udHJvbGxlciBmb3IgdGhpcyBsb2FkIG9wZXJhdGlvblxuICAgICAgdGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICBjb25zdCBzaWduYWwgPSB0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlci5zaWduYWw7XG5cbiAgICAgIHRoaXMucGRmRG9jdW1lbnQgPSBhd2FpdCBQZGZNYW5hZ2VyLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCk7XG4gICAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHJldHVybjtcblxuICAgICAgdGhpcy50b3RhbFBhZ2VzID0gdGhpcy5wZGZEb2N1bWVudC5udW1QYWdlcztcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLmluaXRpYWxQYWdlO1xuICAgICAgdGhpcy5yZXNvbHZlSW5pdGlhbFZpZXdwb3J0TW9kZSgpO1xuXG4gICAgICAvLyBJbml0aWFsaXplIHRodW1ibmFpbCBhbmQgcGFnZSBkYXRhIGFycmF5c1xuICAgICAgdGhpcy50aHVtYm5haWxEYXRhID0gQXJyYXkuZnJvbSh7bGVuZ3RoOiB0aGlzLnRvdGFsUGFnZXN9LCAoXywgaSkgPT4gKHtcbiAgICAgICAgcGFnZTogaSArIDEsXG4gICAgICAgIHJlbmRlcmVkOiBmYWxzZVxuICAgICAgfSkpO1xuXG4gICAgICB0aGlzLnBhZ2VEYXRhID0gQXJyYXkuZnJvbSh7bGVuZ3RoOiB0aGlzLnRvdGFsUGFnZXN9LCAoXywgaSkgPT4gKHtcbiAgICAgICAgcGFnZTogaSArIDEsXG4gICAgICAgIHJlbmRlcmVkOiBmYWxzZSxcbiAgICAgICAgcmVuZGVyaW5nOiBmYWxzZVxuICAgICAgfSkpO1xuXG4gICAgICAvLyBTZXQgbG9hZGluZyB0byBmYWxzZSB0byByZW5kZXIgdGhlIHBhZ2VzXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7XG4gICAgICB0aGlzLmVuc3VyZVZpZXdlclJlZnMoKTtcbiAgICAgIHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpO1xuXG4gICAgICAvLyBXYWl0IGZvciBuZXh0IGZyYW1lIHRvIGVuc3VyZSBET00gaXMgcmVhZHlcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29sdmUpKTtcbiAgICAgIGlmIChzaWduYWwuYWJvcnRlZCkgcmV0dXJuO1xuXG4gICAgICB0aGlzLnJlbmRlclN0YXRlID0gJ3JlbmRlcmluZy1tYWluJztcblxuICAgICAgLy8gUmVuZGVyIGluaXRpYWwgdmlzaWJsZSBwYWdlc1xuICAgICAgYXdhaXQgdGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKTtcbiAgICAgIGlmIChzaWduYWwuYWJvcnRlZCkgcmV0dXJuO1xuXG4gICAgICAvLyBTY3JvbGwgdG8gaW5pdGlhbCBwYWdlXG4gICAgICBpZiAodGhpcy5pbml0aWFsUGFnZSA+IDEpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5pbml0aWFsUGFnZSwgZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5zaG93U2lkZWJhcikge1xuICAgICAgICAvLyBFbnN1cmUgc2lkZWJhciBpcyBpbiBET00gYWZ0ZXIgbG9hZGluZyA9IGZhbHNlXG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7XG4gICAgICAgIC8vIFdhaXQgZm9yIG5leHQgZnJhbWUgdG8gZW5zdXJlIERPTSBpcyBmdWxseSByZWFkeVxuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHJlcXVlc3RBbmltYXRpb25GcmFtZShyZXNvbHZlKSk7XG4gICAgICAgIGlmIChzaWduYWwuYWJvcnRlZCkgcmV0dXJuO1xuXG4gICAgICAgIGF3YWl0IHRoaXMucmVuZGVyVGh1bWJuYWlscygpO1xuICAgICAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yZW5kZXJTdGF0ZSA9ICdyZW5kZXJlZCc7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgUERGOicsIGVycm9yKTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5yZW5kZXJTdGF0ZSA9ICdlcnJvcic7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCkge1xuICAgIGlmICh0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG5cbiAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgY29uc3QgcGFnZVdyYXBwZXIgPSBlbnRyeS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgY29uc3QgcGFnZU51bSA9IHBhcnNlSW50KHBhZ2VXcmFwcGVyLmRhdGFzZXQucGFnZSB8fCAnMScpO1xuXG4gICAgICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlclBhZ2VJZk5lZWRlZChwYWdlTnVtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJvb3Q6IHRoaXMudmlld2VyTWFpbixcbiAgICAgICAgcm9vdE1hcmdpbjogYCR7dGhpcy5SRU5ERVJfQlVGRkVSICogMTAwfXB4IDBweGAsXG4gICAgICAgIHRocmVzaG9sZDogMC4wMVxuICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBPYnNlcnZlIGFsbCBwYWdlIHdyYXBwZXJzXG4gICAgY29uc3QgcGFnZVdyYXBwZXJzID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCcucGFnZS13cmFwcGVyJyk7XG4gICAgaWYgKHBhZ2VXcmFwcGVycykge1xuICAgICAgcGFnZVdyYXBwZXJzLmZvckVhY2god3JhcHBlciA9PiB7XG4gICAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/Lm9ic2VydmUod3JhcHBlcik7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlbmRlclZpc2libGVQYWdlcygpIHtcbiAgICBpZiAoIXRoaXMudmlld2VyTWFpbikgcmV0dXJuO1xuXG4gICAgLy8gRmluZCB2aXNpYmxlIHBhZ2VzIGJhc2VkIG9uIHNjcm9sbCBwb3NpdGlvblxuICAgIGNvbnN0IGNsaWVudEhlaWdodCA9IHRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQ7XG5cbiAgICBmb3IgKGNvbnN0IHBhZ2VJbmZvIG9mIHRoaXMucGFnZURhdGEpIHtcbiAgICAgIGNvbnN0IHBhZ2VXcmFwcGVyID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT1cIiR7cGFnZUluZm8ucGFnZX1cIl1gKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmICghcGFnZVdyYXBwZXIpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCByZWN0ID0gcGFnZVdyYXBwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCB2aWV3ZXJSZWN0ID0gdGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgcmVsYXRpdmVUb3AgPSByZWN0LnRvcCAtIHZpZXdlclJlY3QudG9wO1xuICAgICAgY29uc3QgcmVsYXRpdmVCb3R0b20gPSByZWxhdGl2ZVRvcCArIHJlY3QuaGVpZ2h0O1xuXG4gICAgICAvLyBDaGVjayBpZiBwYWdlIGlzIHZpc2libGUgb3Igd2l0aGluIGJ1ZmZlciB6b25lXG4gICAgICBjb25zdCBidWZmZXIgPSB0aGlzLlJFTkRFUl9CVUZGRVIgKiBjbGllbnRIZWlnaHQ7XG4gICAgICBpZiAocmVsYXRpdmVCb3R0b20gPj0gLWJ1ZmZlciAmJiByZWxhdGl2ZVRvcCA8PSBjbGllbnRIZWlnaHQgKyBidWZmZXIpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQocGFnZUluZm8ucGFnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZW5kZXJQYWdlSWZOZWVkZWQocGFnZU51bTogbnVtYmVyKSB7XG4gICAgY29uc3QgcGFnZUluZm8gPSB0aGlzLnBhZ2VEYXRhLmZpbmQocCA9PiBwLnBhZ2UgPT09IHBhZ2VOdW0pO1xuICAgIGlmICghcGFnZUluZm8gfHwgcGFnZUluZm8ucmVuZGVyZWQgfHwgcGFnZUluZm8ucmVuZGVyaW5nKSByZXR1cm47XG5cbiAgICBwYWdlSW5mby5yZW5kZXJpbmcgPSB0cnVlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2UtY2FudmFzW2RhdGEtcGFnZT1cIiR7cGFnZU51bX1cIl1gKSBhcyBIVE1MQ2FudmFzRWxlbWVudDtcbiAgICAgIGlmICghY2FudmFzKSB7XG4gICAgICAgIHBhZ2VJbmZvLnJlbmRlcmluZyA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UocGFnZU51bSk7XG4gICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuY29tcHV0ZVZpZXdwb3J0KHBhZ2UpO1xuXG4gICAgICAvLyBTZXQgY2FudmFzIGRpbWVuc2lvbnNcbiAgICAgIGNhbnZhcy5oZWlnaHQgPSB2aWV3cG9ydC5oZWlnaHQ7XG4gICAgICBjYW52YXMud2lkdGggPSB2aWV3cG9ydC53aWR0aDtcbiAgICAgIGNhbnZhcy5zdHlsZS53aWR0aCA9IGAke3ZpZXdwb3J0LndpZHRofXB4YDtcbiAgICAgIGNhbnZhcy5zdHlsZS5oZWlnaHQgPSBgJHt2aWV3cG9ydC5oZWlnaHR9cHhgO1xuXG4gICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgIGlmICghY3R4KSB7XG4gICAgICAgIHBhZ2UuY2xlYW51cD8uKCk7XG4gICAgICAgIHBhZ2VJbmZvLnJlbmRlcmluZyA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlbmRlckNvbnRleHQgPSB7XG4gICAgICAgIGNhbnZhc0NvbnRleHQ6IGN0eCxcbiAgICAgICAgdmlld3BvcnQ6IHZpZXdwb3J0LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVuZGVyVGFzayA9IHBhZ2UucmVuZGVyKHJlbmRlckNvbnRleHQpO1xuICAgICAgdGhpcy5wYWdlUmVuZGVyVGFza3Muc2V0KHBhZ2VOdW0sIHJlbmRlclRhc2spO1xuXG4gICAgICBhd2FpdCByZW5kZXJUYXNrLnByb21pc2U7XG5cbiAgICAgIHBhZ2UuY2xlYW51cD8uKCk7XG4gICAgICBwYWdlSW5mby5yZW5kZXJlZCA9IHRydWU7XG4gICAgICBwYWdlSW5mby5yZW5kZXJpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMucGFnZVJlbmRlclRhc2tzLmRlbGV0ZShwYWdlTnVtKTtcblxuICAgICAgLy8gVXBkYXRlIHBhZ2UgZGF0YSB0byByZWZsZWN0IHJlbmRlcmVkIHN0YXRlXG4gICAgICB0aGlzLnJlcXVlc3RVcGRhdGUoJ3BhZ2VEYXRhJyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKGVycm9yPy5uYW1lICE9PSAnUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uJykge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgcGFnZSAke3BhZ2VOdW19OmAsIGVycm9yKTtcbiAgICAgIH1cbiAgICAgIHBhZ2VJbmZvLnJlbmRlcmluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKHBhZ2VOdW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgIC8vIFRocm90dGxlIHNjcm9sbCBldmVudHNcbiAgICBpZiAodGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRQYWdlKCk7XG4gICAgICB0aGlzLnJlbmRlclZpc2libGVQYWdlcygpO1xuICAgIH0sIDUwKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ3VycmVudFBhZ2UoKSB7XG4gICAgaWYgKCF0aGlzLnZpZXdlck1haW4pIHJldHVybjtcblxuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3A7XG4gICAgY29uc3QgY2xpZW50SGVpZ2h0ID0gdGhpcy52aWV3ZXJNYWluLmNsaWVudEhlaWdodDtcbiAgICBjb25zdCBjZW50ZXJZID0gc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0IC8gMjtcblxuICAgIC8vIEZpbmQgd2hpY2ggcGFnZSBpcyBhdCB0aGUgY2VudGVyIG9mIHRoZSB2aWV3cG9ydFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYWdlRGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcGFnZVdyYXBwZXIgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPVwiJHtpICsgMX1cIl1gKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmICghcGFnZVdyYXBwZXIpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCByZWN0ID0gcGFnZVdyYXBwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCB2aWV3ZXJSZWN0ID0gdGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgcmVsYXRpdmVUb3AgPSByZWN0LnRvcCAtIHZpZXdlclJlY3QudG9wICsgc2Nyb2xsVG9wO1xuICAgICAgY29uc3QgcmVsYXRpdmVCb3R0b20gPSByZWxhdGl2ZVRvcCArIHJlY3QuaGVpZ2h0O1xuXG4gICAgICBpZiAoY2VudGVyWSA+PSByZWxhdGl2ZVRvcCAmJiBjZW50ZXJZIDw9IHJlbGF0aXZlQm90dG9tKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlICE9PSBpICsgMSkge1xuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBpICsgMTtcbiAgICAgICAgICAvLyBTY3JvbGwgdGhlIHRodW1ibmFpbCBpbnRvIHZpZXcgaWYgc2lkZWJhciBpcyB2aXNpYmxlXG4gICAgICAgICAgaWYgKHRoaXMuc2hvd1NpZGViYXIpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcoaSArIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFRodW1ibmFpbEludG9WaWV3KHBhZ2VOdW06IG51bWJlcikge1xuICAgIGNvbnN0IHRodW1ibmFpbCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnRodW1ibmFpbFtkYXRhLXBhZ2U9XCIke3BhZ2VOdW19XCJdYCkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3Qgc2lkZWJhckNvbnRlbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zaWRlYmFyLWNvbnRlbnQnKSBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmICh0aHVtYm5haWwgJiYgc2lkZWJhckNvbnRlbnQpIHtcbiAgICAgIC8vIEdldCB0aGUgdGh1bWJuYWlsJ3MgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHNpZGViYXJcbiAgICAgIGNvbnN0IHRodW1ibmFpbFJlY3QgPSB0aHVtYm5haWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBzaWRlYmFyUmVjdCA9IHNpZGViYXJDb250ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAvLyBDaGVjayBpZiB0aHVtYm5haWwgaXMgb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhXG4gICAgICBjb25zdCBpc0Fib3ZlID0gdGh1bWJuYWlsUmVjdC50b3AgPCBzaWRlYmFyUmVjdC50b3A7XG4gICAgICBjb25zdCBpc0JlbG93ID0gdGh1bWJuYWlsUmVjdC5ib3R0b20gPiBzaWRlYmFyUmVjdC5ib3R0b207XG5cbiAgICAgIGlmIChpc0Fib3ZlIHx8IGlzQmVsb3cpIHtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gY2VudGVyIHRoZSB0aHVtYm5haWxcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsT2Zmc2V0ID0gdGh1bWJuYWlsLm9mZnNldFRvcDtcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsSGVpZ2h0ID0gdGh1bWJuYWlsLm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3Qgc2lkZWJhckhlaWdodCA9IHNpZGViYXJDb250ZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgY29uc3QgdGFyZ2V0U2Nyb2xsVG9wID0gdGh1bWJuYWlsT2Zmc2V0IC0gKHNpZGViYXJIZWlnaHQgLyAyKSArICh0aHVtYm5haWxIZWlnaHQgLyAyKTtcblxuICAgICAgICAvLyBTY3JvbGwgdGhlIHNpZGViYXIgdG8gY2VudGVyIHRoZSB0aHVtYm5haWxcbiAgICAgICAgc2lkZWJhckNvbnRlbnQuc2Nyb2xsVG8oe1xuICAgICAgICAgIHRvcDogTWF0aC5tYXgoMCwgdGFyZ2V0U2Nyb2xsVG9wKSxcbiAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCdcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzY3JvbGxUb1BhZ2UocGFnZU51bTogbnVtYmVyLCBzbW9vdGg6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtcbiAgICBjb25zdCBwYWdlV3JhcHBlciA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9XCIke3BhZ2VOdW19XCJdYCkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHBhZ2VXcmFwcGVyICYmIHRoaXMudmlld2VyTWFpbikge1xuICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBvZmZzZXQgb2YgdGhlIHBhZ2Ugd3JhcHBlciByZWxhdGl2ZSB0byB0aGUgdmlld2VyXG4gICAgICBjb25zdCBwYWdlUmVjdCA9IHBhZ2VXcmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3Qgdmlld2VyUmVjdCA9IHRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxUb3AgPSB0aGlzLnZpZXdlck1haW4uc2Nyb2xsVG9wO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIHRhcmdldCBzY3JvbGwgcG9zaXRpb25cbiAgICAgIGNvbnN0IHRhcmdldFNjcm9sbFRvcCA9IGN1cnJlbnRTY3JvbGxUb3AgKyAocGFnZVJlY3QudG9wIC0gdmlld2VyUmVjdC50b3ApIC0gdGhpcy52aWV3ZXJNYWluLmNsaWVudFRvcDtcblxuICAgICAgLy8gU2Nyb2xsIHRvIHRoZSBjYWxjdWxhdGVkIHBvc2l0aW9uXG4gICAgICBpZiAoc21vb3RoKSB7XG4gICAgICAgIHRoaXMudmlld2VyTWFpbi5zY3JvbGxUbyh7XG4gICAgICAgICAgdG9wOiB0YXJnZXRTY3JvbGxUb3AsXG4gICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcCA9IHRhcmdldFNjcm9sbFRvcDtcbiAgICAgIH1cblxuICAgICAgLy8gVXBkYXRlIGN1cnJlbnQgcGFnZVxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2VOdW07XG5cbiAgICAgIC8vIFNjcm9sbCB0aHVtYm5haWwgaW50byB2aWV3IGlmIHNpZGViYXIgaXMgdmlzaWJsZVxuICAgICAgaWYgKHRoaXMuc2hvd1NpZGViYXIpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhwYWdlTnVtKTtcbiAgICAgIH1cblxuICAgICAgLy8gRW5zdXJlIHRoZSBwYWdlIGlzIHJlbmRlcmVkXG4gICAgICBhd2FpdCB0aGlzLnJlbmRlclBhZ2VJZk5lZWRlZChwYWdlTnVtKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlbmRlclRodW1ibmFpbHMoKSB7XG4gICAgLy8gQ2hlY2sgaWYgZG9jdW1lbnQgaXMgbG9hZGVkXG4gICAgaWYgKCF0aGlzLnBkZkRvY3VtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgYWxyZWFkeSByZW5kZXJlZFxuICAgIGlmICh0aGlzLnRodW1ibmFpbERhdGEubGVuZ3RoID4gMCAmJiB0aGlzLnRodW1ibmFpbERhdGEuZXZlcnkodCA9PiB0LnJlbmRlcmVkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGFib3J0IHNpZ25hbFxuICAgIGlmICh0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj8uc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj8uc2lnbmFsO1xuICAgIHRoaXMucmVuZGVyU3RhdGUgPSAncmVuZGVyaW5nLXRodW1icyc7XG5cbiAgICAvLyBDYW5jZWwgYW55IGV4aXN0aW5nIHRodW1ibmFpbCByZW5kZXIgdGFza3NcbiAgICBmb3IgKGNvbnN0IHRhc2sgb2YgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGFzay5jYW5jZWwoKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIElnbm9yZSBjYW5jZWxsYXRpb24gZXJyb3JzXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3MgPSBbXTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO1xuICAgICAgY29uc3QgdGh1bWJuYWlscyA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgnLnRodW1ibmFpbCcpIGFzIE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+O1xuICAgICAgY29uc3QgdGh1bWJuYWlsQ2FudmFzZXMgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoJy50aHVtYm5haWwtY2FudmFzJykgYXMgTm9kZUxpc3RPZjxIVE1MQ2FudmFzRWxlbWVudD47XG4gICAgICBjb25zdCBzaWRlYmFyQ29udGVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnNpZGViYXItY29udGVudCcpIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAvLyBHZXQgdGhlIGFjdHVhbCBhdmFpbGFibGUgd2lkdGggZm9yIHRodW1ibmFpbHMgKHNpZGViYXIgd2lkdGggbWludXMgcGFkZGluZylcbiAgICAgIGNvbnN0IHNpZGViYXJTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzaWRlYmFyQ29udGVudCk7XG4gICAgICBjb25zdCBzaWRlYmFyUGFkZGluZyA9IHBhcnNlRmxvYXQoc2lkZWJhclN0eWxlcy5wYWRkaW5nTGVmdCkgKyBwYXJzZUZsb2F0KHNpZGViYXJTdHlsZXMucGFkZGluZ1JpZ2h0KTtcbiAgICAgIGNvbnN0IG1heFRodW1ibmFpbFdpZHRoID0gMjAwIC0gc2lkZWJhclBhZGRpbmcgLSA0OyAvLyBBY2NvdW50IGZvciBib3JkZXJcblxuICAgICAgLy8gQ2xlYXIgYWxsIGNhbnZhc2VzIGZpcnN0IHRvIHByZXZlbnQgY29uZmxpY3RzXG4gICAgICBmb3IgKGNvbnN0IGNhbnZhcyBvZiBBcnJheS5mcm9tKHRodW1ibmFpbENhbnZhc2VzKSkge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRodW1ibmFpbENhbnZhc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzaWduYWw/LmFib3J0ZWQpIHJldHVybjtcblxuICAgICAgICBjb25zdCBjYW52YXMgPSB0aHVtYm5haWxDYW52YXNlc1tpXTtcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsID0gdGh1bWJuYWlsc1tpXTtcbiAgICAgICAgY29uc3QgcGFnZU51bSA9IHBhcnNlSW50KGNhbnZhcy5kYXRhc2V0LnBhZ2UgfHwgJzEnKTtcbiAgICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShwYWdlTnVtKTtcblxuICAgICAgICAvLyBHZXQgdGhlIHBhZ2UncyBuYXR1cmFsIGRpbWVuc2lvbnNcbiAgICAgICAgY29uc3QgaW5pdGlhbFZpZXdwb3J0ID0gcGFnZS5nZXRWaWV3cG9ydCh7IHNjYWxlOiAxIH0pO1xuXG4gICAgICAgIC8vIENhbGN1bGF0ZSBzY2FsZSB0byBmaXQgd2l0aGluIHRoZSBtYXggdGh1bWJuYWlsIHdpZHRoXG4gICAgICAgIGNvbnN0IHNjYWxlID0gbWF4VGh1bWJuYWlsV2lkdGggLyBpbml0aWFsVmlld3BvcnQud2lkdGg7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gcGFnZS5nZXRWaWV3cG9ydCh7IHNjYWxlIH0pO1xuXG4gICAgICAgIC8vIFNldCBjYW52YXMgZGltZW5zaW9ucyB0byBhY3R1YWwgcmVuZGVyIHNpemVcbiAgICAgICAgY2FudmFzLndpZHRoID0gdmlld3BvcnQud2lkdGg7XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB2aWV3cG9ydC5oZWlnaHQ7XG5cbiAgICAgICAgLy8gU2V0IHRoZSBkaXNwbGF5IHNpemUgdmlhIHN0eWxlIHRvIGVuc3VyZSBwcm9wZXIgZGlzcGxheVxuICAgICAgICBjYW52YXMuc3R5bGUud2lkdGggPSBgJHt2aWV3cG9ydC53aWR0aH1weGA7XG4gICAgICAgIGNhbnZhcy5zdHlsZS5oZWlnaHQgPSBgJHt2aWV3cG9ydC5oZWlnaHR9cHhgO1xuXG4gICAgICAgIC8vIFNldCB0aGUgYWN0dWFsIHRodW1ibmFpbCBjb250YWluZXIgaGVpZ2h0XG4gICAgICAgIHRodW1ibmFpbC5zdHlsZS5oZWlnaHQgPSBgJHt2aWV3cG9ydC5oZWlnaHR9cHhgO1xuICAgICAgICB0aHVtYm5haWwuc3R5bGUubWluSGVpZ2h0ID0gYCR7dmlld3BvcnQuaGVpZ2h0fXB4YDtcblxuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGlmICghY29udGV4dCkge1xuICAgICAgICAgIHBhZ2UuY2xlYW51cD8uKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZW5kZXJDb250ZXh0ID0ge1xuICAgICAgICAgIGNhbnZhc0NvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgICAgdmlld3BvcnQ6IHZpZXdwb3J0LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlbmRlclRhc2sgPSBwYWdlLnJlbmRlcihyZW5kZXJDb250ZXh0KTtcbiAgICAgICAgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcy5wdXNoKHJlbmRlclRhc2spO1xuICAgICAgICBhd2FpdCByZW5kZXJUYXNrLnByb21pc2U7XG4gICAgICAgIHBhZ2UuY2xlYW51cD8uKCk7XG5cbiAgICAgICAgLy8gTWFyayB0aGlzIHRodW1ibmFpbCBhcyByZW5kZXJlZFxuICAgICAgICBjb25zdCB0aHVtYkRhdGEgPSB0aGlzLnRodW1ibmFpbERhdGEuZmluZCh0ID0+IHQucGFnZSA9PT0gcGFnZU51bSk7XG4gICAgICAgIGlmICh0aHVtYkRhdGEpIHtcbiAgICAgICAgICB0aHVtYkRhdGEucmVuZGVyZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRyaWdnZXIgdXBkYXRlIHRvIHJlZmxlY3QgcmVuZGVyZWQgc3RhdGVcbiAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgndGh1bWJuYWlsRGF0YScpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIC8vIE9ubHkgbG9nIG5vbi1jYW5jZWxsYXRpb24gZXJyb3JzXG4gICAgICBpZiAoZXJyb3I/Lm5hbWUgIT09ICdSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24nKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlbmRlcmluZyB0aHVtYm5haWxzOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJldmlvdXNQYWdlKCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID4gMSkge1xuICAgICAgdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5jdXJyZW50UGFnZSAtIDEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbmV4dFBhZ2UoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPCB0aGlzLnRvdGFsUGFnZXMpIHtcbiAgICAgIHRoaXMuc2Nyb2xsVG9QYWdlKHRoaXMuY3VycmVudFBhZ2UgKyAxKTtcbiAgICB9XG4gIH1cblxuXG4gIHByaXZhdGUgaGFuZGxlVGh1bWJuYWlsQ2xpY2soZTogRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBlLmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgcGFnZU51bSA9IHBhcnNlSW50KHRhcmdldC5kYXRhc2V0LnBhZ2UgfHwgJzEnKTtcbiAgICB0aGlzLnNjcm9sbFRvUGFnZShwYWdlTnVtKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUGFnZUlucHV0KGU6IEV2ZW50KSB7XG4gICAgY29uc3QgaW5wdXQgPSBlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IHBhZ2VOdW0gPSBwYXJzZUludChpbnB1dC52YWx1ZSk7XG4gICAgdGhpcy5zY3JvbGxUb1BhZ2UocGFnZU51bSk7XG4gIH1cblxuICBwcml2YXRlIHpvb21JbigpIHtcbiAgICBjb25zdCBuZXh0Wm9vbSA9IE1hdGgubWluKHRoaXMuTUFOVUFMX01BWF9aT09NLCB0aGlzLmN1cnJlbnRab29tICogMS4yKTtcbiAgICB0aGlzLnZpZXdwb3J0TW9kZSA9ICdjdXN0b20nO1xuICAgIGlmIChuZXh0Wm9vbSAhPT0gdGhpcy5jdXJyZW50Wm9vbSkge1xuICAgICAgdGhpcy5jdXJyZW50Wm9vbSA9IG5leHRab29tO1xuICAgICAgdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB6b29tT3V0KCkge1xuICAgIGNvbnN0IG5leHRab29tID0gTWF0aC5tYXgodGhpcy5NQU5VQUxfTUlOX1pPT00sIHRoaXMuY3VycmVudFpvb20gLyAxLjIpO1xuICAgIHRoaXMudmlld3BvcnRNb2RlID0gJ2N1c3RvbSc7XG4gICAgaWYgKG5leHRab29tICE9PSB0aGlzLmN1cnJlbnRab29tKSB7XG4gICAgICB0aGlzLmN1cnJlbnRab29tID0gbmV4dFpvb207XG4gICAgICB0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Wm9vbSgpIHtcbiAgICB0aGlzLnZpZXdwb3J0TW9kZSA9ICdjdXN0b20nO1xuICAgIHRoaXMuY3VycmVudFpvb20gPSAxO1xuICAgIHRoaXMucmVSZW5kZXJBbGxQYWdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaXRUb1BhZ2UoKSB7XG4gICAgdGhpcy52aWV3cG9ydE1vZGUgPSAncGFnZS1maXQnO1xuICAgIHRoaXMucmVSZW5kZXJBbGxQYWdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaXRUb1dpZHRoKCkge1xuICAgIHRoaXMudmlld3BvcnRNb2RlID0gJ3BhZ2Utd2lkdGgnO1xuICAgIHRoaXMucmVSZW5kZXJBbGxQYWdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZVJlbmRlckFsbFBhZ2VzKCkge1xuICAgIC8vIENsZWFyIGFsbCByZW5kZXJlZCBwYWdlcyB0byBmb3JjZSByZS1yZW5kZXIgd2l0aCBuZXcgem9vbVxuICAgIHRoaXMucGFnZURhdGEuZm9yRWFjaChwYWdlID0+IHtcbiAgICAgIHBhZ2UucmVuZGVyZWQgPSBmYWxzZTtcbiAgICAgIHBhZ2UucmVuZGVyaW5nID0gZmFsc2U7XG4gICAgfSk7XG5cbiAgICAvLyBDYW5jZWwgYW55IG9uZ29pbmcgcmVuZGVyIHRhc2tzXG4gICAgdGhpcy5wYWdlUmVuZGVyVGFza3MuZm9yRWFjaCh0YXNrID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRhc2suY2FuY2VsKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBJZ25vcmUgY2FuY2VsbGF0aW9uIGVycm9yc1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucGFnZVJlbmRlclRhc2tzLmNsZWFyKCk7XG5cbiAgICAvLyBSZXF1ZXN0IHVwZGF0ZSB0byByZS1yZW5kZXIgcGFnZXNcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcblxuICAgIC8vIFJlbmRlciB2aXNpYmxlIHBhZ2VzIGFmdGVyIHVwZGF0ZVxuICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlclZpc2libGVQYWdlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkb3dubG9hZFBkZigpIHtcbiAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGxpbmsuaHJlZiA9IHRoaXMucGRmVXJsO1xuICAgIGxpbmsuZG93bmxvYWQgPSB0aGlzLnBkZlVybC5zcGxpdCgnLycpLnBvcCgpIHx8ICdkb2N1bWVudC5wZGYnO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJpbnRQZGYoKSB7XG4gICAgd2luZG93Lm9wZW4odGhpcy5wZGZVcmwsICdfYmxhbmsnKT8ucHJpbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlIGNvbnRleHQgbWVudSBpdGVtcyBmb3IgcmlnaHQtY2xpY2sgZnVuY3Rpb25hbGl0eVxuICAgKi9cbiAgcHVibGljIGdldENvbnRleHRNZW51SXRlbXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ09wZW4gUERGIGluIE5ldyBUYWInLFxuICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpFeHRlcm5hbExpbmsnLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICB3aW5kb3cub3Blbih0aGlzLnBkZlVybCwgJ19ibGFuaycpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBkaXZpZGVyOiB0cnVlIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdDb3B5IFBERiBVUkwnLFxuICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpDb3B5JyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy5wZGZVcmwpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnRG93bmxvYWQgUERGJyxcbiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6RG93bmxvYWQnLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0aGlzLmRvd25sb2FkUGRmKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdQcmludCBQREYnLFxuICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpQcmludGVyJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcmludFBkZigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNhblpvb21JbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUgIT09ICdjdXN0b20nIHx8IHRoaXMuY3VycmVudFpvb20gPCB0aGlzLk1BTlVBTF9NQVhfWk9PTTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNhblpvb21PdXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmlld3BvcnRNb2RlICE9PSAnY3VzdG9tJyB8fCB0aGlzLmN1cnJlbnRab29tID4gdGhpcy5NQU5VQUxfTUlOX1pPT007XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZVZpZXdlclJlZnMoKSB7XG4gICAgaWYgKCF0aGlzLnZpZXdlck1haW4pIHtcbiAgICAgIHRoaXMudmlld2VyTWFpbiA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnZpZXdlci1tYWluJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuICAgIGlmICh0aGlzLnZpZXdlck1haW4gJiYgIXRoaXMucmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKTtcbiAgICAgICAgaWYgKHRoaXMucGRmRG9jdW1lbnQpIHtcbiAgICAgICAgICAvLyBSZS1yZW5kZXIgYWxsIHBhZ2VzIHdoZW4gdmlld3BvcnQgc2l6ZSBjaGFuZ2VzXG4gICAgICAgICAgdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMudmlld2VyTWFpbik7XG4gICAgICB0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKTtcblxuICAgICAgLy8gUHJldmVudCBzY3JvbGwgcHJvcGFnYXRpb24gdG8gcGFyZW50IHdoZW4gc2Nyb2xsaW5nIGluc2lkZSB2aWV3ZXJcbiAgICAgIHRoaXMudmlld2VyTWFpbi5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIChlKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBlLmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IGVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSBlbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICAgICAgY29uc3QgY2xpZW50SGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGRlbHRhWSA9IGUuZGVsdGFZO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHdlJ3JlIGF0IHRoZSBib3VuZGFyaWVzXG4gICAgICAgIGNvbnN0IGlzQXRUb3AgPSBzY3JvbGxUb3AgPT09IDA7XG4gICAgICAgIGNvbnN0IGlzQXRCb3R0b20gPSBNYXRoLmFicyhzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgLSBzY3JvbGxIZWlnaHQpIDwgMTtcblxuICAgICAgICAvLyBQcmV2ZW50IHByb3BhZ2F0aW9uIGlmIHdlJ3JlIHNjcm9sbGluZyB3aXRoaW4gYm91bmRzXG4gICAgICAgIGlmICgoZGVsdGFZIDwgMCAmJiAhaXNBdFRvcCkgfHwgKGRlbHRhWSA+IDAgJiYgIWlzQXRCb3R0b20pKSB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSBlbHNlIGlmICgoZGVsdGFZIDwgMCAmJiBpc0F0VG9wKSB8fCAoZGVsdGFZID4gMCAmJiBpc0F0Qm90dG9tKSkge1xuICAgICAgICAgIC8vIFByZXZlbnQgZGVmYXVsdCBhbmQgcHJvcGFnYXRpb24gd2hlbiBhdCBib3VuZGFyaWVzXG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCkge1xuICAgIGlmICghdGhpcy52aWV3ZXJNYWluKSB7XG4gICAgICB0aGlzLnZpZXdwb3J0RGltZW5zaW9ucyA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9O1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHN0eWxlcyA9IGdldENvbXB1dGVkU3R5bGUodGhpcy52aWV3ZXJNYWluKTtcbiAgICBjb25zdCBwYWRkaW5nWCA9IHBhcnNlRmxvYXQoc3R5bGVzLnBhZGRpbmdMZWZ0IHx8ICcwJykgKyBwYXJzZUZsb2F0KHN0eWxlcy5wYWRkaW5nUmlnaHQgfHwgJzAnKTtcbiAgICBjb25zdCBwYWRkaW5nWSA9IHBhcnNlRmxvYXQoc3R5bGVzLnBhZGRpbmdUb3AgfHwgJzAnKSArIHBhcnNlRmxvYXQoc3R5bGVzLnBhZGRpbmdCb3R0b20gfHwgJzAnKTtcbiAgICBjb25zdCB3aWR0aCA9IE1hdGgubWF4KHRoaXMudmlld2VyTWFpbi5jbGllbnRXaWR0aCAtIHBhZGRpbmdYLCAwKTtcbiAgICBjb25zdCBoZWlnaHQgPSBNYXRoLm1heCh0aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0IC0gcGFkZGluZ1ksIDApO1xuICAgIHRoaXMudmlld3BvcnREaW1lbnNpb25zID0geyB3aWR0aCwgaGVpZ2h0IH07XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVJbml0aWFsVmlld3BvcnRNb2RlKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5pbml0aWFsWm9vbSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMudmlld3BvcnRNb2RlID0gJ2N1c3RvbSc7XG4gICAgICB0aGlzLmN1cnJlbnRab29tID0gdGhpcy5ub3JtYWxpemVab29tKHRoaXMuaW5pdGlhbFpvb20sIHRydWUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pbml0aWFsWm9vbSA9PT0gJ3BhZ2Utd2lkdGgnKSB7XG4gICAgICB0aGlzLnZpZXdwb3J0TW9kZSA9ICdwYWdlLXdpZHRoJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5pdGlhbFpvb20gPT09ICdwYWdlLWZpdCcgfHwgdGhpcy5pbml0aWFsWm9vbSA9PT0gJ2F1dG8nKSB7XG4gICAgICB0aGlzLnZpZXdwb3J0TW9kZSA9ICdwYWdlLWZpdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld3BvcnRNb2RlID0gJ2F1dG8nO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZpZXdwb3J0TW9kZSAhPT0gJ2N1c3RvbScpIHtcbiAgICAgIHRoaXMuY3VycmVudFpvb20gPSAxO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZVZpZXdwb3J0KHBhZ2U6IGFueSkge1xuICAgIHRoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpO1xuICAgIGNvbnN0IGJhc2VWaWV3cG9ydCA9IHBhZ2UuZ2V0Vmlld3BvcnQoeyBzY2FsZTogMSB9KTtcbiAgICBsZXQgc2NhbGU6IG51bWJlcjtcblxuICAgIHN3aXRjaCAodGhpcy52aWV3cG9ydE1vZGUpIHtcbiAgICAgIGNhc2UgJ3BhZ2Utd2lkdGgnOiB7XG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZVdpZHRoID0gdGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGggfHwgYmFzZVZpZXdwb3J0LndpZHRoO1xuICAgICAgICBzY2FsZSA9IGF2YWlsYWJsZVdpZHRoIC8gYmFzZVZpZXdwb3J0LndpZHRoO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3BhZ2UtZml0JzpcbiAgICAgIGNhc2UgJ2F1dG8nOiB7XG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZVdpZHRoID0gdGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGggfHwgYmFzZVZpZXdwb3J0LndpZHRoO1xuICAgICAgICBjb25zdCBhdmFpbGFibGVIZWlnaHQgPSB0aGlzLnZpZXdwb3J0RGltZW5zaW9ucy5oZWlnaHQgfHwgYmFzZVZpZXdwb3J0LmhlaWdodDtcbiAgICAgICAgY29uc3Qgd2lkdGhTY2FsZSA9IGF2YWlsYWJsZVdpZHRoIC8gYmFzZVZpZXdwb3J0LndpZHRoO1xuICAgICAgICBjb25zdCBoZWlnaHRTY2FsZSA9IGF2YWlsYWJsZUhlaWdodCAvIGJhc2VWaWV3cG9ydC5oZWlnaHQ7XG4gICAgICAgIHNjYWxlID0gTWF0aC5taW4od2lkdGhTY2FsZSwgaGVpZ2h0U2NhbGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHNjYWxlID0gdGhpcy5ub3JtYWxpemVab29tKHRoaXMuY3VycmVudFpvb20gfHwgMSwgZmFsc2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShzY2FsZSkgfHwgc2NhbGUgPD0gMCkge1xuICAgICAgc2NhbGUgPSAxO1xuICAgIH1cblxuICAgIGNvbnN0IGNsYW1wZWRTY2FsZSA9IHRoaXMudmlld3BvcnRNb2RlID09PSAnY3VzdG9tJ1xuICAgICAgPyB0aGlzLm5vcm1hbGl6ZVpvb20oc2NhbGUsIHRydWUpXG4gICAgICA6IHRoaXMubm9ybWFsaXplWm9vbShzY2FsZSwgZmFsc2UpO1xuXG4gICAgaWYgKHRoaXMudmlld3BvcnRNb2RlICE9PSAnY3VzdG9tJykge1xuICAgICAgdGhpcy5jdXJyZW50Wm9vbSA9IGNsYW1wZWRTY2FsZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFnZS5nZXRWaWV3cG9ydCh7IHNjYWxlOiBjbGFtcGVkU2NhbGUgfSk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVpvb20odmFsdWU6IG51bWJlciwgY2xhbXBUb01hbnVhbFJhbmdlOiBib29sZWFuKSB7XG4gICAgY29uc3QgbWluID0gY2xhbXBUb01hbnVhbFJhbmdlID8gdGhpcy5NQU5VQUxfTUlOX1pPT00gOiB0aGlzLkFCU09MVVRFX01JTl9aT09NO1xuICAgIGNvbnN0IG1heCA9IGNsYW1wVG9NYW51YWxSYW5nZSA/IHRoaXMuTUFOVUFMX01BWF9aT09NIDogdGhpcy5BQlNPTFVURV9NQVhfWk9PTTtcbiAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgodmFsdWUsIG1pbiksIG1heCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNsZWFudXBEb2N1bWVudCgpIHtcbiAgICAvLyBBYm9ydCBhbnkgb25nb2luZyByZW5kZXIgb3BlcmF0aW9uc1xuICAgIGlmICh0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcikge1xuICAgICAgdGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICAgIHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBXYWl0IGZvciBhbnkgZXhpc3RpbmcgcmVuZGVyIHRvIGNvbXBsZXRlXG4gICAgaWYgKHRoaXMuY3VycmVudFJlbmRlclByb21pc2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY3VycmVudFJlbmRlclByb21pc2U7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBJZ25vcmUgZXJyb3JzXG4gICAgICB9XG4gICAgICB0aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBDbGVhciB0aGUgcmVuZGVyIHRhc2sgcmVmZXJlbmNlXG4gICAgdGhpcy5jdXJyZW50UmVuZGVyVGFzayA9IG51bGw7XG5cbiAgICAvLyBDYW5jZWwgYW55IHBhZ2UgcmVuZGVyIHRhc2tzXG4gICAgdGhpcy5wYWdlUmVuZGVyVGFza3MuZm9yRWFjaCh0YXNrID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRhc2suY2FuY2VsKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBJZ25vcmUgY2FuY2VsbGF0aW9uIGVycm9yc1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucGFnZVJlbmRlclRhc2tzLmNsZWFyKCk7XG5cbiAgICAvLyBDYW5jZWwgYW55IHRodW1ibmFpbCByZW5kZXIgdGFza3NcbiAgICBmb3IgKGNvbnN0IHRhc2sgb2YgKHRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3MgfHwgW10pKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0YXNrLmNhbmNlbCgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSWdub3JlIGNhbmNlbGxhdGlvbiBlcnJvcnNcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcyA9IFtdO1xuXG4gICAgLy8gUmVzZXQgYWxsIHN0YXRlIGZsYWdzXG4gICAgdGhpcy5yZW5kZXJTdGF0ZSA9ICdpZGxlJztcbiAgICB0aGlzLnBhZ2VSZW5kZXJpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnBhZ2VOdW1QZW5kaW5nID0gbnVsbDtcbiAgICB0aGlzLnRodW1ibmFpbERhdGEgPSBbXTtcbiAgICB0aGlzLnBhZ2VEYXRhID0gW107XG4gICAgdGhpcy5kb2N1bWVudElkID0gJyc7XG5cbiAgICAvLyBDbGVhciBjYW52YXMgY29udGVudFxuICAgIGlmICh0aGlzLmNhbnZhcyAmJiB0aGlzLmN0eCkge1xuICAgICAgdGhpcy5jdHguY2xlYXJSZWN0KDAsIDAsIHRoaXMuY2FudmFzLndpZHRoLCB0aGlzLmNhbnZhcy5oZWlnaHQpO1xuICAgIH1cblxuICAgIC8vIERlc3Ryb3kgdGhlIGRvY3VtZW50IHRvIGZyZWUgbWVtb3J5XG4gICAgaWYgKHRoaXMucGRmRG9jdW1lbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMucGRmRG9jdW1lbnQuZGVzdHJveSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVzdHJveWluZyBQREYgZG9jdW1lbnQ6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmFsbHkgbnVsbCB0aGUgZG9jdW1lbnQgcmVmZXJlbmNlXG4gICAgdGhpcy5wZGZEb2N1bWVudCA9IG51bGw7XG5cbiAgICAvLyBSZXF1ZXN0IHVwZGF0ZSB0byByZWZsZWN0IHN0YXRlIGNoYW5nZXNcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGh0bWwsIGNzcywgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgJ0BkZXNpZ24uZXN0YXRlL2RlZXMtd2NjdG9vbHMvZGVtb3Rvb2xzJztcbmltcG9ydCAnLi4vZGVlcy1wYW5lbC9kZWVzLXBhbmVsLmpzJztcbmltcG9ydCB0eXBlIHsgSVN0YXRzVGlsZSB9IGZyb20gJy4uL2RlZXMtc3RhdHNncmlkL2RlZXMtc3RhdHNncmlkLmpzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4ge1xuICByZXR1cm4gaHRtbGBcbiAgPGRlZXMtZGVtb3dyYXBwZXI+XG4gICAgPHN0eWxlPlxuICAgICAgJHtjc3NgXG4gICAgICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICAgIG1heC13aWR0aDogMTQwMHB4O1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBkZWVzLXBhbmVsIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC50aWxlLWNvbmZpZyB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTtcbiAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmNvbmZpZy1zZWN0aW9uIHtcbiAgICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjEwIDQwJSA5Ni4xJSknLCAnaHNsKDIxNSAyMC4yJSAxNi44JSknKX07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuY29uZmlnLXRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjMgMjUlIDguOCUpJywgJ2hzbCgyMTAgNDAlIDk4JSknKX07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5jb25maWctZGVzY3JpcHRpb24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA1Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA1NS4xJSknKX07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5jb2RlLWJsb2NrIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxMCA0MCUgOTYuMSUpJywgJ2hzbCgyMTUgMjAuMiUgMTEuOCUpJyl9O1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE0LjMgMzEuOCUgOTEuNCUpJywgJ2hzbCgyMTUgMjAuMiUgMTYuOCUpJyl9O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgICA8L3N0eWxlPlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJkZW1vLWNvbnRhaW5lclwiPlxuICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7JzEuIENvbXByZWhlbnNpdmUgRGFzaGJvYXJkJ30gLnN1YnRpdGxlPSR7J0Z1bGwtZmVhdHVyZWQgc3RhdHMgZ3JpZCB3aXRoIHZhcmlvdXMgdGlsZSB0eXBlcywgYWN0aW9ucywgYW5kIEx1Y2lkZSBpY29ucyd9PlxuICAgICAgICA8ZGVlcy1zdGF0c2dyaWRcbiAgICAgICAgICAudGlsZXM9JHtbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAncmV2ZW51ZScsXG4gICAgICAgICAgICAgIHRpdGxlOiAnVG90YWwgUmV2ZW51ZScsXG4gICAgICAgICAgICAgIHZhbHVlOiAxMjU0MjAsXG4gICAgICAgICAgICAgIHVuaXQ6ICckJyxcbiAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgIGljb246ICdsdWNpZGU6ZG9sbGFyLXNpZ24nLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJysxMi41JSBmcm9tIGxhc3QgbW9udGgnLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ1ZpZXcgRGV0YWlscycsXG4gICAgICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTp0cmVuZGluZy11cCcsXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2FjdGlvbi1vdXRwdXQnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG91dHB1dCkge1xuICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9ICdWaWV3aW5nIHJldmVudWUgZGV0YWlsczogJDEyNSw0MjAgKCsxMi41JSknO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnRXhwb3J0IERhdGEnLFxuICAgICAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6ZG93bmxvYWQnLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNhY3Rpb24tb3V0cHV0Jyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvdXRwdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAnRXhwb3J0aW5nIHJldmVudWUgZGF0YSB0byBDU1YuLi4nO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ3VzZXJzJyxcbiAgICAgICAgICAgICAgdGl0bGU6ICdBY3RpdmUgVXNlcnMnLFxuICAgICAgICAgICAgICB2YWx1ZTogMzg0NyxcbiAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgIGljb246ICdsdWNpZGU6dXNlcnMnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJzMyNCBuZXcgdGhpcyB3ZWVrJyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdWaWV3IFVzZXIgTGlzdCcsXG4gICAgICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpsaXN0JyxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvdXRwdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYWN0aW9uLW91dHB1dCcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3V0cHV0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnRleHRDb250ZW50ID0gJ09wZW5pbmcgdXNlciBsaXN0Li4uJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdjcHUnLFxuICAgICAgICAgICAgICB0aXRsZTogJ0NQVSBVc2FnZScsXG4gICAgICAgICAgICAgIHZhbHVlOiA3MyxcbiAgICAgICAgICAgICAgdW5pdDogJyUnLFxuICAgICAgICAgICAgICB0eXBlOiAnZ2F1Z2UnLFxuICAgICAgICAgICAgICBpY29uOiAnbHVjaWRlOmNwdScsXG4gICAgICAgICAgICAgIGdhdWdlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIG1pbjogMCxcbiAgICAgICAgICAgICAgICBtYXg6IDEwMCxcbiAgICAgICAgICAgICAgICB0aHJlc2hvbGRzOiBbXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAwLCBjb2xvcjogJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknIH0sXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiA2MCwgY29sb3I6ICdoc2woNDUuNCA5My40JSA0Ny41JSknIH0sXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiA4MCwgY29sb3I6ICdoc2woMCA4NC4yJSA2MC4yJSknIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAnc3RvcmFnZScsXG4gICAgICAgICAgICAgIHRpdGxlOiAnU3RvcmFnZSBVc2VkJyxcbiAgICAgICAgICAgICAgdmFsdWU6IDY1LFxuICAgICAgICAgICAgICB0eXBlOiAncGVyY2VudGFnZScsXG4gICAgICAgICAgICAgIGljb246ICdsdWNpZGU6aGFyZC1kcml2ZScsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnNjUwIEdCIG9mIDEgVEInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdsYXRlbmN5JyxcbiAgICAgICAgICAgICAgdGl0bGU6ICdSZXNwb25zZSBUaW1lJyxcbiAgICAgICAgICAgICAgdmFsdWU6IDE0MixcbiAgICAgICAgICAgICAgdW5pdDogJ21zJyxcbiAgICAgICAgICAgICAgdHlwZTogJ3RyZW5kJyxcbiAgICAgICAgICAgICAgaWNvbjogJ2x1Y2lkZTphY3Rpdml0eScsXG4gICAgICAgICAgICAgIHRyZW5kRGF0YTogWzE1MCwgMTQ1LCAxNDgsIDE0MiwgMTM4LCAxNDAsIDEzNSwgMTQ1LCAxNDJdLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1A5NSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAndXB0aW1lJyxcbiAgICAgICAgICAgICAgdGl0bGU6ICdTeXN0ZW0gVXB0aW1lJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICc5OS45NSUnLFxuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIGljb246ICdsdWNpZGU6Y2hlY2stY2lyY2xlJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdMYXN0IDMwIGRheXMnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXX1cbiAgICAgICAgICAuZ3JpZEFjdGlvbnM9JHtbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdSZWZyZXNoJyxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaC1jdycsXG4gICAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyaWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkZWVzLXN0YXRzZ3JpZCcpO1xuICAgICAgICAgICAgICAgIGlmIChncmlkKSB7XG4gICAgICAgICAgICAgICAgICBncmlkLnN0eWxlLm9wYWNpdHkgPSAnMC41JztcbiAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBncmlkLnN0eWxlLm9wYWNpdHkgPSAnMSc7XG4gICAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ0V4cG9ydCcsXG4gICAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnNoYXJlJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2FjdGlvbi1vdXRwdXQnKTtcbiAgICAgICAgICAgICAgICBpZiAob3V0cHV0KSB7XG4gICAgICAgICAgICAgICAgICBvdXRwdXQudGV4dENvbnRlbnQgPSAnRXhwb3J0aW5nIGRhc2hib2FyZCByZXBvcnQuLi4nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ1NldHRpbmdzJyxcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6c2V0dGluZ3MnLFxuICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvdXRwdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYWN0aW9uLW91dHB1dCcpO1xuICAgICAgICAgICAgICAgIGlmIChvdXRwdXQpIHtcbiAgICAgICAgICAgICAgICAgIG91dHB1dC50ZXh0Q29udGVudCA9ICdPcGVuaW5nIGRhc2hib2FyZCBzZXR0aW5ncy4uLic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXX1cbiAgICAgICAgICAubWluVGlsZVdpZHRoPSR7MjUwfVxuICAgICAgICAgIC5nYXA9JHsxNn1cbiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGlkPVwiYWN0aW9uLW91dHB1dFwiIHN0eWxlPVwibWFyZ2luLXRvcDogMTZweDsgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTAgNDAlIDk2LjElKScsICdoc2woMjE1IDIwLjIlIDE2LjglKScpfTsgYm9yZGVyLXJhZGl1czogNnB4OyBmb250LXNpemU6IDE0cHg7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSA4LjglKScsICdoc2woMjEwIDQwJSA5OCUpJyl9O1wiPlxuICAgICAgICAgIDxlbT5DbGljayBvbiB0aWxlIGFjdGlvbnMgb3IgZ3JpZCBhY3Rpb25zIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keycyLiBUaWxlIFR5cGVzJ30gLnN1YnRpdGxlPSR7J0RpZmZlcmVudCB2aXN1YWxpemF0aW9uIHR5cGVzIGF2YWlsYWJsZSBpbiB0aGUgc3RhdHMgZ3JpZCd9PlxuICAgICAgICA8ZGVlcy1zdGF0c2dyaWRcbiAgICAgICAgICAudGlsZXM9JHtbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAnbnVtYmVyLWV4YW1wbGUnLFxuICAgICAgICAgICAgICB0aXRsZTogJ051bWJlciBUaWxlJyxcbiAgICAgICAgICAgICAgdmFsdWU6IDQyMTk1LFxuICAgICAgICAgICAgICB1bml0OiAnJCcsXG4gICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICBpY29uOiAnbHVjaWRlOmhhc2gnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NpbXBsZSBudW1lcmljIGRpc3BsYXknXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ2dhdWdlLWV4YW1wbGUnLFxuICAgICAgICAgICAgICB0aXRsZTogJ0dhdWdlIFRpbGUnLFxuICAgICAgICAgICAgICB2YWx1ZTogNjgsXG4gICAgICAgICAgICAgIHVuaXQ6ICclJyxcbiAgICAgICAgICAgICAgdHlwZTogJ2dhdWdlJyxcbiAgICAgICAgICAgICAgaWNvbjogJ2x1Y2lkZTpnYXVnZScsXG4gICAgICAgICAgICAgIGdhdWdlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIG1pbjogMCxcbiAgICAgICAgICAgICAgICBtYXg6IDEwMCxcbiAgICAgICAgICAgICAgICB0aHJlc2hvbGRzOiBbXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAwLCBjb2xvcjogJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknIH0sXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiA1MCwgY29sb3I6ICdoc2woNDUuNCA5My40JSA0Ny41JSknIH0sXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiA4MCwgY29sb3I6ICdoc2woMCA4NC4yJSA2MC4yJSknIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAncGVyY2VudGFnZS1leGFtcGxlJyxcbiAgICAgICAgICAgICAgdGl0bGU6ICdQZXJjZW50YWdlIFRpbGUnLFxuICAgICAgICAgICAgICB2YWx1ZTogNzgsXG4gICAgICAgICAgICAgIHR5cGU6ICdwZXJjZW50YWdlJyxcbiAgICAgICAgICAgICAgaWNvbjogJ2x1Y2lkZTpwZXJjZW50JyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQcm9ncmVzcyBiYXIgdmlzdWFsaXphdGlvbidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAndHJlbmQtZXhhbXBsZScsXG4gICAgICAgICAgICAgIHRpdGxlOiAnVHJlbmQgVGlsZScsXG4gICAgICAgICAgICAgIHZhbHVlOiA4OTIsXG4gICAgICAgICAgICAgIHVuaXQ6ICdvcHMvcycsXG4gICAgICAgICAgICAgIHR5cGU6ICd0cmVuZCcsXG4gICAgICAgICAgICAgIGljb246ICdsdWNpZGU6dHJlbmRpbmctdXAnLFxuICAgICAgICAgICAgICB0cmVuZERhdGE6IFs3MjAsIDc1MCwgNzgwLCA3OTUsIDgxMCwgODM1LCA4NTAsIDg2NSwgODgwLCA4OTJdLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ2F2ZydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAndGV4dC1leGFtcGxlJyxcbiAgICAgICAgICAgICAgdGl0bGU6ICdUZXh0IFRpbGUnLFxuICAgICAgICAgICAgICB2YWx1ZTogJ09wZXJhdGlvbmFsJyxcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICBpY29uOiAnbHVjaWRlOmluZm8nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1N0YXR1cyBkaXNwbGF5J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF19XG4gICAgICAgICAgLm1pblRpbGVXaWR0aD0kezI4MH1cbiAgICAgICAgICAuZ2FwPSR7MTZ9XG4gICAgICAgID48L2RlZXMtc3RhdHNncmlkPlxuICAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbGUtY29uZmlnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLXRpdGxlXCI+Q29uZmlndXJhdGlvbiBPcHRpb25zPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIEVhY2ggdGlsZSB0eXBlIHN1cHBvcnRzIGRpZmZlcmVudCBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAgICA8dWwgc3R5bGU9XCJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7XCI+XG4gICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+TnVtYmVyOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgY29sb3IsIGRlc2NyaXB0aW9uPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5HYXVnZTo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIGdhdWdlT3B0aW9ucyAobWluLCBtYXgsIHRocmVzaG9sZHMpPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5QZXJjZW50YWdlOjwvc3Ryb25nPiB2YWx1ZSAoMC0xMDApLCBjb2xvciwgZGVzY3JpcHRpb248L2xpPlxuICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlRyZW5kOjwvc3Ryb25nPiB2YWx1ZSwgdW5pdCwgdHJlbmREYXRhIGFycmF5LCBkZXNjcmlwdGlvbjwvbGk+XG4gICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+VGV4dDo8L3N0cm9uZz4gdmFsdWUgKHN0cmluZyksIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+XG4gICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyczLiBHcmlkIENvbmZpZ3VyYXRpb25zJ30gLnN1YnRpdGxlPSR7J0RpZmZlcmVudCBsYXlvdXQgb3B0aW9ucyBhbmQgcmVzcG9uc2l2ZSBiZWhhdmlvcid9PlxuICAgICAgICA8aDQgc3R5bGU9XCJtYXJnaW46IDAgMCAxNnB4IDA7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDtcIj5Db21wYWN0IExheW91dCAoMTgwcHggdGlsZXMpPC9oND5cbiAgICAgICAgPGRlZXMtc3RhdHNncmlkXG4gICAgICAgICAgLnRpbGVzPSR7W1xuICAgICAgICAgICAgeyBpZDogJzEnLCB0aXRsZTogJ09yZGVycycsIHZhbHVlOiAxNTYsIHR5cGU6ICdudW1iZXInLCBpY29uOiAnbHVjaWRlOnNob3BwaW5nLWNhcnQnIH0sXG4gICAgICAgICAgICB7IGlkOiAnMicsIHRpdGxlOiAnUmV2ZW51ZScsIHZhbHVlOiA4NDIwLCB1bml0OiAnJCcsIHR5cGU6ICdudW1iZXInLCBpY29uOiAnbHVjaWRlOmRvbGxhci1zaWduJyB9LFxuICAgICAgICAgICAgeyBpZDogJzMnLCB0aXRsZTogJ1VzZXJzJywgdmFsdWU6IDQyMywgdHlwZTogJ251bWJlcicsIGljb246ICdsdWNpZGU6dXNlcnMnIH0sXG4gICAgICAgICAgICB7IGlkOiAnNCcsIHRpdGxlOiAnR3Jvd3RoJywgdmFsdWU6IDEyLjUsIHVuaXQ6ICclJywgdHlwZTogJ251bWJlcicsIGljb246ICdsdWNpZGU6dHJlbmRpbmctdXAnLCBjb2xvcjogJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknIH1cbiAgICAgICAgICBdfVxuICAgICAgICAgIC5taW5UaWxlV2lkdGg9JHsxODB9XG4gICAgICAgICAgLmdhcD0kezEyfVxuICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD5cbiAgICAgICAgXG4gICAgICAgIDxoNCBzdHlsZT1cIm1hcmdpbjogMjRweCAwIDE2cHggMDsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwO1wiPlNwYWNpb3VzIExheW91dCAoMzIwcHggdGlsZXMpPC9oND5cbiAgICAgICAgPGRlZXMtc3RhdHNncmlkXG4gICAgICAgICAgLnRpbGVzPSR7W1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ3NwYWNpb3VzMScsXG4gICAgICAgICAgICAgIHRpdGxlOiAnTW9udGhseSBSZXZlbnVlJyxcbiAgICAgICAgICAgICAgdmFsdWU6IDE4NDUwMCxcbiAgICAgICAgICAgICAgdW5pdDogJyQnLFxuICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgaWNvbjogJ2x1Y2lkZTpjcmVkaXQtY2FyZCcsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVG90YWwgcmV2ZW51ZSB0aGlzIG1vbnRoJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdzcGFjaW91czInLFxuICAgICAgICAgICAgICB0aXRsZTogJ0N1c3RvbWVyIFNhdGlzZmFjdGlvbicsXG4gICAgICAgICAgICAgIHZhbHVlOiA5NCxcbiAgICAgICAgICAgICAgdHlwZTogJ3BlcmNlbnRhZ2UnLFxuICAgICAgICAgICAgICBpY29uOiAnbHVjaWRlOnNtaWxlJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdCYXNlZCBvbiAxLDIzNCByZXZpZXdzJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdzcGFjaW91czMnLFxuICAgICAgICAgICAgICB0aXRsZTogJ1NlcnZlciBSZXNwb25zZScsXG4gICAgICAgICAgICAgIHZhbHVlOiA5OCxcbiAgICAgICAgICAgICAgdW5pdDogJ21zJyxcbiAgICAgICAgICAgICAgdHlwZTogJ3RyZW5kJyxcbiAgICAgICAgICAgICAgaWNvbjogJ2x1Y2lkZTpzZXJ2ZXInLFxuICAgICAgICAgICAgICB0cmVuZERhdGE6IFsxMDUsIDEwMiwgMTAwLCA5OSwgOTgsIDk4LCA5NywgOThdLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ2F2ZyByZXNwb25zZSB0aW1lJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF19XG4gICAgICAgICAgLm1pblRpbGVXaWR0aD0kezMyMH1cbiAgICAgICAgICAuZ2FwPSR7MjB9XG4gICAgICAgID48L2RlZXMtc3RhdHNncmlkPlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgICAgXG4gICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsnNC4gSW50ZXJhY3RpdmUgRmVhdHVyZXMnfSAuc3VidGl0bGU9JHsnVGlsZXMgd2l0aCBhY3Rpb25zIGFuZCByZWFsLXRpbWUgdXBkYXRlcyd9PlxuICAgICAgICA8ZGVlcy1zdGF0c2dyaWRcbiAgICAgICAgICBpZD1cImludGVyYWN0aXZlLWdyaWRcIlxuICAgICAgICAgIC50aWxlcz0ke1tcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdsaXZlLWNwdScsXG4gICAgICAgICAgICAgIHRpdGxlOiAnTGl2ZSBDUFUnLFxuICAgICAgICAgICAgICB2YWx1ZTogNDUsXG4gICAgICAgICAgICAgIHVuaXQ6ICclJyxcbiAgICAgICAgICAgICAgdHlwZTogJ2dhdWdlJyxcbiAgICAgICAgICAgICAgaWNvbjogJ2x1Y2lkZTpjcHUnLFxuICAgICAgICAgICAgICBnYXVnZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBtaW46IDAsXG4gICAgICAgICAgICAgICAgbWF4OiAxMDAsXG4gICAgICAgICAgICAgICAgdGhyZXNob2xkczogW1xuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogMCwgY29sb3I6ICdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJyB9LFxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogNjAsIGNvbG9yOiAnaHNsKDQ1LjQgOTMuNCUgNDcuNSUpJyB9LFxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogODAsIGNvbG9yOiAnaHNsKDAgODQuMiUgNjAuMiUpJyB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ2xpdmUtcmVxdWVzdHMnLFxuICAgICAgICAgICAgICB0aXRsZTogJ1JlcXVlc3RzL3NlYycsXG4gICAgICAgICAgICAgIHZhbHVlOiA4OTIsXG4gICAgICAgICAgICAgIHR5cGU6ICd0cmVuZCcsXG4gICAgICAgICAgICAgIGljb246ICdsdWNpZGU6YWN0aXZpdHknLFxuICAgICAgICAgICAgICB0cmVuZERhdGE6IFs4NTAsIDg2MCwgODcwLCA4ODAsIDg4NSwgODkwLCA4OTJdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ2xpdmUtbWVtb3J5JyxcbiAgICAgICAgICAgICAgdGl0bGU6ICdNZW1vcnkgVXNhZ2UnLFxuICAgICAgICAgICAgICB2YWx1ZTogNjIsXG4gICAgICAgICAgICAgIHR5cGU6ICdwZXJjZW50YWdlJyxcbiAgICAgICAgICAgICAgaWNvbjogJ2x1Y2lkZTpkYXRhYmFzZSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAnY291bnRlcicsXG4gICAgICAgICAgICAgIHRpdGxlOiAnRXZlbnQgQ291bnRlcicsXG4gICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgaWNvbjogJ2x1Y2lkZTp6YXAnLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0luY3JlbWVudCcsXG4gICAgICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpwbHVzJyxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBncmlkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2ludGVyYWN0aXZlLWdyaWQnKSBhcyBhbnk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZ3JpZCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aWxlID0gZ3JpZC50aWxlcy5maW5kKCh0OiBhbnkpID0+IHQuaWQgPT09ICdjb3VudGVyJyk7XG4gICAgICAgICAgICAgICAgICAgIHRpbGUudmFsdWUgPSB0eXBlb2YgdGlsZS52YWx1ZSA9PT0gJ251bWJlcicgPyB0aWxlLnZhbHVlICsgMSA6IDE7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQudGlsZXMgPSBbLi4uZ3JpZC50aWxlc107XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnUmVzZXQnLFxuICAgICAgICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6cm90YXRlLWNjdycsXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JpZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNpbnRlcmFjdGl2ZS1ncmlkJykgYXMgYW55O1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWdyaWQpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGlsZSA9IGdyaWQudGlsZXMuZmluZCgodDogYW55KSA9PiB0LmlkID09PSAnY291bnRlcicpO1xuICAgICAgICAgICAgICAgICAgICB0aWxlLnZhbHVlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC50aWxlcyA9IFsuLi5ncmlkLnRpbGVzXTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdfVxuICAgICAgICAgIC5ncmlkQWN0aW9ucz0ke1tcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ1N0YXJ0IExpdmUgVXBkYXRlcycsXG4gICAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnBsYXknLFxuICAgICAgICAgICAgICBhY3Rpb246IGFzeW5jIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBsaXZlIHVwZGF0ZXNcbiAgICAgICAgICAgICAgICBpZiAoISh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgICAgICAgICh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyaWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaW50ZXJhY3RpdmUtZ3JpZCcpIGFzIGFueTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdyaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aWxlcyA9IFsuLi5ncmlkLnRpbGVzXTtcbiAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgQ1BVIGdhdWdlXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3B1VGlsZSA9IHRpbGVzLmZpbmQodCA9PiB0LmlkID09PSAnbGl2ZS1jcHUnKTtcbiAgICAgICAgICAgICAgICAgICAgICBjcHVUaWxlLnZhbHVlID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAwLCBjcHVUaWxlLnZhbHVlICsgKE1hdGgucmFuZG9tKCkgKiAyMCAtIDEwKSkpO1xuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSByZXF1ZXN0cyB0cmVuZFxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzVGlsZSA9IHRpbGVzLmZpbmQodCA9PiB0LmlkID09PSAnbGl2ZS1yZXF1ZXN0cycpO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gcmVxdWVzdHNUaWxlLnZhbHVlICsgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogNTAgLSAyNSk7XG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdHNUaWxlLnZhbHVlID0gTWF0aC5tYXgoODAwLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdHNUaWxlLnRyZW5kRGF0YSA9IFsuLi5yZXF1ZXN0c1RpbGUudHJlbmREYXRhLnNsaWNlKDEpLCByZXF1ZXN0c1RpbGUudmFsdWVdO1xuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBtZW1vcnkgcGVyY2VudGFnZVxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbW9yeVRpbGUgPSB0aWxlcy5maW5kKHQgPT4gdC5pZCA9PT0gJ2xpdmUtbWVtb3J5Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgbWVtb3J5VGlsZS52YWx1ZSA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgbWVtb3J5VGlsZS52YWx1ZSArIChNYXRoLnJhbmRvbSgpICogMTAgLSA1KSkpO1xuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIGdyaWQudGlsZXMgPSB0aWxlcztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSA9ICdTdG9wIExpdmUgVXBkYXRlcyc7XG4gICAgICAgICAgICAgICAgICB0aGlzLmljb25OYW1lID0gJ2x1Y2lkZTpwYXVzZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoKHdpbmRvdyBhcyBhbnkpLmxpdmVVcGRhdGVJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgICAod2luZG93IGFzIGFueSkubGl2ZVVwZGF0ZUludGVydmFsID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSA9ICdTdGFydCBMaXZlIFVwZGF0ZXMnO1xuICAgICAgICAgICAgICAgICAgdGhpcy5pY29uTmFtZSA9ICdsdWNpZGU6cGxheSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXX1cbiAgICAgICAgICAubWluVGlsZVdpZHRoPSR7MjUwfVxuICAgICAgICAgIC5nYXA9JHsxNn1cbiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+XG4gICAgICA8L2RlZXMtcGFuZWw+XG4gICAgICBcbiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyc1LiBDb2RlIEV4YW1wbGUnfSAuc3VidGl0bGU9JHsnSG93IHRvIGltcGxlbWVudCBhIHN0YXRzIGdyaWQgd2l0aCBUeXBlU2NyaXB0J30+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2RlLWJsb2NrXCI+JHtgY29uc3QgdGlsZXM6IElTdGF0c1RpbGVbXSA9IFtcbiAge1xuICAgIGlkOiAncmV2ZW51ZScsXG4gICAgdGl0bGU6ICdUb3RhbCBSZXZlbnVlJyxcbiAgICB2YWx1ZTogMTI1NDIwLFxuICAgIHVuaXQ6ICckJyxcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBpY29uOiAnbHVjaWRlOmRvbGxhci1zaWduJyxcbiAgICBkZXNjcmlwdGlvbjogJysxMi41JSBmcm9tIGxhc3QgbW9udGgnLFxuICAgIGFjdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1ZpZXcgRGV0YWlscycsXG4gICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnRyZW5kaW5nLXVwJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1ZpZXcgcmV2ZW51ZSBkZXRhaWxzJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH0sXG4gIHtcbiAgICBpZDogJ2NwdScsXG4gICAgdGl0bGU6ICdDUFUgVXNhZ2UnLFxuICAgIHZhbHVlOiA3MyxcbiAgICB1bml0OiAnJScsXG4gICAgdHlwZTogJ2dhdWdlJyxcbiAgICBpY29uOiAnbHVjaWRlOmNwdScsXG4gICAgZ2F1Z2VPcHRpb25zOiB7XG4gICAgICBtaW46IDAsXG4gICAgICBtYXg6IDEwMCxcbiAgICAgIHRocmVzaG9sZHM6IFtcbiAgICAgICAgeyB2YWx1ZTogMCwgY29sb3I6ICdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJyB9LFxuICAgICAgICB7IHZhbHVlOiA2MCwgY29sb3I6ICdoc2woNDUuNCA5My40JSA0Ny41JSknIH0sXG4gICAgICAgIHsgdmFsdWU6IDgwLCBjb2xvcjogJ2hzbCgwIDg0LjIlIDYwLjIlKScgfVxuICAgICAgXVxuICAgIH1cbiAgfVxuXTtcblxuLy8gUmVuZGVyIHRoZSBzdGF0cyBncmlkXG5odG1sXFxgXG4gIDxkZWVzLXN0YXRzZ3JpZFxuICAgIC50aWxlcz1cXCR7dGlsZXN9XG4gICAgLm1pblRpbGVXaWR0aD1cXCR7MjUwfVxuICAgIC5nYXA9XFwkezE2fVxuICAgIC5ncmlkQWN0aW9ucz1cXCR7W1xuICAgICAge1xuICAgICAgICBuYW1lOiAnUmVmcmVzaCcsXG4gICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnJlZnJlc2gtY3cnLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdSZWZyZXNoJylcbiAgICAgIH1cbiAgICBdfVxuICA+PC9kZWVzLXN0YXRzZ3JpZD5cblxcYDtgfTwvZGl2PlxuICAgICAgPC9kZWVzLXBhbmVsPlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxzY3JpcHQ+XG4gICAgICAvLyBDbGVhbnVwIGxpdmUgdXBkYXRlcyBvbiBwYWdlIHVubG9hZFxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsICgpID0+IHtcbiAgICAgICAgaWYgKCh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKCh3aW5kb3cgYXMgYW55KS5saXZlVXBkYXRlSW50ZXJ2YWwpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICA8L3NjcmlwdD5cbiAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICBgO1xufTsiLCAiaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtc3RhdHNncmlkLmRlbW8uanMnO1xuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tICcuLi8wMHBsdWdpbnMuanMnO1xuaW1wb3J0IHsgY3NzR2Vpc3RGb250RmFtaWx5IH0gZnJvbSAnLi4vMDBmb250cy5qcyc7XG5pbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBEZWVzRWxlbWVudCxcbiAgcHJvcGVydHksXG4gIHN0YXRlLFxuICBjc3MsXG4gIHVuc2FmZUNTUyxcbiAgY3NzTWFuYWdlcixcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgJy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0ICcuLi9kZWVzLWNvbnRleHRtZW51L2RlZXMtY29udGV4dG1lbnUuanMnO1xuaW1wb3J0ICcuLi8wMGdyb3VwLWJ1dHRvbi9kZWVzLWJ1dHRvbi9kZWVzLWJ1dHRvbi5qcyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8wMHRoZW1lLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1zdGF0c2dyaWQnOiBEZWVzU3RhdHNHcmlkO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN0YXRzVGlsZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXIgfCBzdHJpbmc7XG4gIHVuaXQ/OiBzdHJpbmc7XG4gIHR5cGU6ICdudW1iZXInIHwgJ2dhdWdlJyB8ICdwZXJjZW50YWdlJyB8ICd0cmVuZCcgfCAndGV4dCc7XG4gIFxuICAvLyBGb3IgZ2F1Z2UgdHlwZVxuICBnYXVnZU9wdGlvbnM/OiB7XG4gICAgbWluOiBudW1iZXI7XG4gICAgbWF4OiBudW1iZXI7XG4gICAgdGhyZXNob2xkcz86IEFycmF5PHt2YWx1ZTogbnVtYmVyOyBjb2xvcjogc3RyaW5nfT47XG4gIH07XG4gIFxuICAvLyBGb3IgdHJlbmQgdHlwZVxuICB0cmVuZERhdGE/OiBudW1iZXJbXTtcbiAgXG4gIC8vIFZpc3VhbCBjdXN0b21pemF0aW9uXG4gIGNvbG9yPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgXG4gIC8vIFRpbGUtc3BlY2lmaWMgYWN0aW9uc1xuICBhY3Rpb25zPzogcGx1Z2lucy50c2NsYXNzLndlYnNpdGUuSU1lbnVJdGVtW107XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLXN0YXRzZ3JpZCcpXG5leHBvcnQgY2xhc3MgRGVlc1N0YXRzR3JpZCBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3IgdGlsZXM6IElTdGF0c1RpbGVbXSA9IFtdO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBtaW5UaWxlV2lkdGg6IG51bWJlciA9IDI1MDtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3IgZ2FwOiBudW1iZXIgPSAxNjtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBhY2Nlc3NvciBncmlkQWN0aW9uczogcGx1Z2lucy50c2NsYXNzLndlYnNpdGUuSU1lbnVJdGVtW10gPSBbXTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBjb250ZXh0TWVudVZpc2libGUgPSBmYWxzZTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBjb250ZXh0TWVudVBvc2l0aW9uID0geyB4OiAwLCB5OiAwIH07XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3IgY29udGV4dE1lbnVBY3Rpb25zOiBwbHVnaW5zLnRzY2xhc3Mud2Vic2l0ZS5JTWVudUl0ZW1bXSA9IFtdO1xuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmb250LWZhbWlseTogJHtjc3NHZWlzdEZvbnRGYW1pbHl9O1xuICAgICAgfVxuXG4gICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHNpemluZyAqL1xuICAgICAgOmhvc3Qge1xuICAgICAgICAtLWdyaWQtZ2FwOiAxMnB4O1xuICAgICAgICAtLXRpbGUtcGFkZGluZzogMTZweDtcbiAgICAgICAgLS1oZWFkZXItc3BhY2luZzogMTJweDtcbiAgICAgICAgLS1jb250ZW50LW1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIC0tdmFsdWUtZm9udC1zaXplOiAyNnB4O1xuICAgICAgICAtLXVuaXQtZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAtLWxhYmVsLWZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgLS10aXRsZS1mb250LXNpemU6IDEzcHg7XG4gICAgICAgIC0tZGVzY3JpcHRpb24tc3BhY2luZzogOHB4O1xuICAgICAgICAtLWJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiAgICAgIH1cblxuICAgICAgLyogR3JpZCBMYXlvdXQgKi9cbiAgICAgIC5ncmlkLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1ncmlkLWdhcCkgKiAxLjUpO1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgfVxuXG4gICAgICAuZ3JpZC10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICAgICAgfVxuXG4gICAgICAuZ3JpZC1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLWFjdGlvbnMgZGVlcy1idXR0b24ge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWxhYmVsLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zdGF0cy1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgke3Vuc2FmZUNTUygyNTApfXB4LCAxZnIpKTtcbiAgICAgICAgZ2FwOiAke3Vuc2FmZUNTUygxNil9cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAvKiBUaWxlIEJhc2UgU3R5bGVzICovXG4gICAgICAuc3RhdHMtdGlsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwOTA5MGInKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTBlMGUwJywgJyMyMDIwMjAnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS10aWxlLXBhZGRpbmcpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgZWFzZTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG5cbiAgICAgIC5zdGF0cy10aWxlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmYWZhZmEnLCAnIzBkMGQwZCcpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2QwZDBkMCcsICcjMmEyYTJhJyl9O1xuICAgICAgfVxuXG4gICAgICAuc3RhdHMtdGlsZS5jbGlja2FibGUge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5zdGF0cy10aWxlLmNsaWNrYWJsZTpob3ZlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNnB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsMCwwLDAuMDMpJywgJ3JnYmEoMCwwLDAsMC4xNSknKX07XG4gICAgICB9XG5cbiAgICAgIC8qIFRpbGUgSGVhZGVyICovXG4gICAgICAudGlsZS1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAudGlsZS10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdGl0bGUtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjQgMTYuMyUgNDYuOSUpJywgJ2hzbCgyMTUgMjAuMiUgNjUuMSUpJyl9O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgfVxuXG4gICAgICAudGlsZS1pY29uIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA0Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC8qIFRpbGUgQ29udGVudCAqL1xuICAgICAgLnRpbGUtY29udGVudCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWNvbnRlbnQtbWluLWhlaWdodCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgfVxuXG4gICAgICAudGlsZS12YWx1ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjMgMjUlIDguOCUpJywgJ2hzbCgyMTAgNDAlIDk4JSknKX07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTtcbiAgICAgIH1cblxuICAgICAgLnRpbGUtdW5pdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA0Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICAgICAgfVxuXG4gICAgICAudGlsZS1kZXNjcmlwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjQgMTYuMyUgNTYuOSUpJywgJ2hzbCgyMTUgMjAuMiUgNTUuMSUpJyl9O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1kZXNjcmlwdGlvbi1zcGFjaW5nKTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAvKiBHYXVnZSBTdHlsZXMgKi9cbiAgICAgIC5nYXVnZS13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuZ2F1Z2UtY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLXRvcDogLThweDtcbiAgICAgIH1cblxuICAgICAgLmdhdWdlLXN2ZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5nYXVnZS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgZmlsbDogbm9uZTtcbiAgICAgICAgc3Ryb2tlOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U4ZThlOCcsICcjMWExYTFhJyl9O1xuICAgICAgICBzdHJva2Utd2lkdGg6IDY7XG4gICAgICB9XG5cbiAgICAgIC5nYXVnZS1maWxsIHtcbiAgICAgICAgZmlsbDogbm9uZTtcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2O1xuICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gICAgICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgIH1cblxuICAgICAgLmdhdWdlLXRleHQge1xuICAgICAgICBmaWxsOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSA4LjglKScsICdoc2woMjEwIDQwJSA5OCUpJyl9O1xuICAgICAgICBmb250LWZhbWlseTogJHtjc3NHZWlzdEZvbnRGYW1pbHl9O1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmdhdWdlLXVuaXQge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTtcbiAgICAgICAgZmlsbDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuNCAxNi4zJSA0Ni45JSknLCAnaHNsKDIxNSAyMC4yJSA2NS4xJSknKX07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAke2Nzc0dlaXN0Rm9udEZhbWlseX07XG4gICAgICB9XG5cbiAgICAgIC8qIFBlcmNlbnRhZ2UgU3R5bGVzICovXG4gICAgICAucGVyY2VudGFnZS13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgLnBlcmNlbnRhZ2UtdmFsdWUge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSA4LjglKScsICdoc2woMjEwIDQwJSA5OCUpJyl9O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgIH1cblxuICAgICAgLnBlcmNlbnRhZ2UtYmFyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U4ZThlOCcsICcjMWExYTFhJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5wZXJjZW50YWdlLWZpbGwge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzMzMzMzJywgJyNlMGUwZTAnKX07XG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgfVxuXG4gICAgICAvKiBUcmVuZCBTdHlsZXMgKi9cbiAgICAgIC50cmVuZC1jb250YWluZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC50cmVuZC1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAudHJlbmQtdmFsdWUge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSA4LjglKScsICdoc2woMjEwIDQwJSA5OCUpJyl9O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07XG4gICAgICB9XG5cbiAgICAgIC50cmVuZC11bml0IHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS11bml0LWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS40IDE2LjMlIDQ2LjklKScsICdoc2woMjE1IDIwLjIlIDY1LjElKScpfTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gICAgICB9XG5cbiAgICAgIC50cmVuZC1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1LjQgMTYuMyUgNTYuOSUpJywgJ2hzbCgyMTUgMjAuMiUgNTUuMSUpJyl9O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIC50cmVuZC1ncmFwaCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgLnRyZW5kLXN2ZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAudHJlbmQtbGluZSB7XG4gICAgICAgIGZpbGw6IG5vbmU7XG4gICAgICAgIHN0cm9rZTogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM5OTk5OTknLCAnIzY2NjY2NicpfTtcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxLjU7XG4gICAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQ7XG4gICAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDtcbiAgICAgIH1cblxuICAgICAgLnRyZW5kLWFyZWEge1xuICAgICAgICBmaWxsOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgxNTAsIDE1MCwgMTUwLCAwLjA4KScsICdyZ2JhKDEwMCwgMTAwLCAxMDAsIDAuMDgpJyl9O1xuICAgICAgfVxuXG4gICAgICAvKiBUZXh0IFZhbHVlIFN0eWxlcyAqL1xuICAgICAgLnRleHQtdmFsdWUge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNS4zIDI1JSA4LjglKScsICdoc2woMjEwIDQwJSA5OCUpJyl9O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07XG4gICAgICB9XG5cbiAgICAgIC8qIENvbnRleHQgTWVudSAqL1xuICAgICAgZGVlcy1jb250ZXh0bWVudSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7dGhpcy5ncmlkQWN0aW9ucy5sZW5ndGggPiAwID8gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtaGVhZGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtdGl0bGVcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAke3RoaXMuZ3JpZEFjdGlvbnMubWFwKGFjdGlvbiA9PiBodG1sYFxuICAgICAgICAgICAgICA8ZGVlcy1idXR0b24gXG4gICAgICAgICAgICAgICAgQGNsaWNrZWQ9JHsoKSA9PiB0aGlzLmhhbmRsZUdyaWRBY3Rpb24oYWN0aW9uKX1cbiAgICAgICAgICAgICAgICB0eXBlPVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICR7YWN0aW9uLmljb25OYW1lID8gaHRtbGA8ZGVlcy1pY29uIC5pY29uPSR7YWN0aW9uLmljb25OYW1lfSBzaXplPVwic21hbGxcIj48L2RlZXMtaWNvbj5gIDogJyd9XG4gICAgICAgICAgICAgICAgJHthY3Rpb24ubmFtZX1cbiAgICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICAgIGApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAgOiAnJ31cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLWdyaWRcIiBzdHlsZT1cImdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHt0aGlzLm1pblRpbGVXaWR0aH1weCwgMWZyKSk7IGdhcDogJHt0aGlzLmdhcH1weDtcIj5cbiAgICAgICAgJHt0aGlzLnRpbGVzLm1hcCh0aWxlID0+IHRoaXMucmVuZGVyVGlsZSh0aWxlKSl9XG4gICAgICA8L2Rpdj5cblxuICAgICAgJHt0aGlzLmNvbnRleHRNZW51VmlzaWJsZSA/IGh0bWxgXG4gICAgICAgIDxkZWVzLWNvbnRleHRtZW51XG4gICAgICAgICAgLng9JHt0aGlzLmNvbnRleHRNZW51UG9zaXRpb24ueH1cbiAgICAgICAgICAueT0ke3RoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55fVxuICAgICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLmNvbnRleHRNZW51QWN0aW9ucyBhcyBhbnl9XG4gICAgICAgICAgQGNsaWNrZWQ9JHsoKSA9PiB0aGlzLmNvbnRleHRNZW51VmlzaWJsZSA9IGZhbHNlfVxuICAgICAgICA+PC9kZWVzLWNvbnRleHRtZW51PlxuICAgICAgYCA6ICcnfVxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclRpbGUodGlsZTogSVN0YXRzVGlsZSk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBoYXNBY3Rpb25zID0gdGlsZS5hY3Rpb25zICYmIHRpbGUuYWN0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGNsaWNrYWJsZSA9IGhhc0FjdGlvbnMgJiYgdGlsZS5hY3Rpb25zLmxlbmd0aCA9PT0gMTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3M9XCJzdGF0cy10aWxlICR7Y2xpY2thYmxlID8gJ2NsaWNrYWJsZScgOiAnJ31cIlxuICAgICAgICBAY2xpY2s9JHtjbGlja2FibGUgPyAoKSA9PiB0aGlzLmhhbmRsZVRpbGVBY3Rpb24odGlsZS5hY3Rpb25zIVswXSwgdGlsZSkgOiB1bmRlZmluZWR9XG4gICAgICAgIEBjb250ZXh0bWVudT0ke2hhc0FjdGlvbnMgPyAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5zaG93Q29udGV4dE1lbnUoZSwgdGlsZSkgOiB1bmRlZmluZWR9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWxlLWhlYWRlclwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cInRpbGUtdGl0bGVcIj4ke3RpbGUudGl0bGV9PC9oMz5cbiAgICAgICAgICAke3RpbGUuaWNvbiA/IGh0bWxgXG4gICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPVwidGlsZS1pY29uXCIgLmljb249JHt0aWxlLmljb259IHNpemU9XCJzbWFsbFwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwidGlsZS1jb250ZW50XCI+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlclRpbGVDb250ZW50KHRpbGUpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgICR7dGlsZS5kZXNjcmlwdGlvbiAmJiB0aWxlLnR5cGUgIT09ICd0cmVuZCcgPyBodG1sYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWxlLWRlc2NyaXB0aW9uXCI+JHt0aWxlLmRlc2NyaXB0aW9ufTwvZGl2PlxuICAgICAgICBgIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJUaWxlQ29udGVudCh0aWxlOiBJU3RhdHNUaWxlKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHN3aXRjaCAodGlsZS50eXBlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlsZS12YWx1ZVwiIHN0eWxlPVwiJHt0aWxlLmNvbG9yID8gYGNvbG9yOiAke3RpbGUuY29sb3J9YCA6ICcnfVwiPlxuICAgICAgICAgICAgPHNwYW4+JHt0aWxlLnZhbHVlfTwvc3Bhbj5cbiAgICAgICAgICAgICR7dGlsZS51bml0ID8gaHRtbGA8c3BhbiBjbGFzcz1cInRpbGUtdW5pdFwiPiR7dGlsZS51bml0fTwvc3Bhbj5gIDogJyd9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIGA7XG5cbiAgICAgIGNhc2UgJ2dhdWdlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyR2F1Z2UodGlsZSk7XG5cbiAgICAgIGNhc2UgJ3BlcmNlbnRhZ2UnOlxuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJQZXJjZW50YWdlKHRpbGUpO1xuXG4gICAgICBjYXNlICd0cmVuZCc6XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlclRyZW5kKHRpbGUpO1xuXG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtdmFsdWVcIiBzdHlsZT1cIiR7dGlsZS5jb2xvciA/IGBjb2xvcjogJHt0aWxlLmNvbG9yfWAgOiAnJ31cIj5cbiAgICAgICAgICAgICR7dGlsZS52YWx1ZX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgYDtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInRpbGUtdmFsdWVcIj4ke3RpbGUudmFsdWV9PC9kaXY+YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckdhdWdlKHRpbGU6IElTdGF0c1RpbGUpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgdmFsdWUgPSB0eXBlb2YgdGlsZS52YWx1ZSA9PT0gJ251bWJlcicgPyB0aWxlLnZhbHVlIDogcGFyc2VGbG9hdCh0aWxlLnZhbHVlKTtcbiAgICBjb25zdCBvcHRpb25zID0gdGlsZS5nYXVnZU9wdGlvbnMgfHwgeyBtaW46IDAsIG1heDogMTAwIH07XG4gICAgY29uc3QgcGVyY2VudGFnZSA9ICgodmFsdWUgLSBvcHRpb25zLm1pbikgLyAob3B0aW9ucy5tYXggLSBvcHRpb25zLm1pbikpICogMTAwO1xuXG4gICAgLy8gU1ZHIGRpbWVuc2lvbnMgYW5kIGNhbGN1bGF0aW9uc1xuICAgIGNvbnN0IHdpZHRoID0gMTIwO1xuICAgIGNvbnN0IGhlaWdodCA9IDcwO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gNjtcbiAgICBjb25zdCBwYWRkaW5nID0gc3Ryb2tlV2lkdGggLyAyICsgMjtcbiAgICBjb25zdCByYWRpdXMgPSA0MDtcbiAgICBjb25zdCBjZW50ZXJYID0gd2lkdGggLyAyO1xuICAgIGNvbnN0IGNlbnRlclkgPSBoZWlnaHQgLSBwYWRkaW5nO1xuICAgIFxuICAgIC8vIEFyYyBwYXRoXG4gICAgY29uc3Qgc3RhcnRYID0gY2VudGVyWCAtIHJhZGl1cztcbiAgICBjb25zdCBzdGFydFkgPSBjZW50ZXJZO1xuICAgIGNvbnN0IGVuZFggPSBjZW50ZXJYICsgcmFkaXVzO1xuICAgIGNvbnN0IGVuZFkgPSBjZW50ZXJZO1xuICAgIGNvbnN0IGFyY1BhdGggPSBgTSAke3N0YXJ0WH0gJHtzdGFydFl9IEEgJHtyYWRpdXN9ICR7cmFkaXVzfSAwIDAgMSAke2VuZFh9ICR7ZW5kWX1gO1xuICAgIFxuICAgIC8vIENhbGN1bGF0ZSBzdHJva2UgZGFzaGFycmF5IGFuZCBkYXNob2Zmc2V0XG4gICAgY29uc3QgY2lyY3VtZmVyZW5jZSA9IE1hdGguUEkgKiByYWRpdXM7XG4gICAgY29uc3Qgc3Ryb2tlRGFzaG9mZnNldCA9IGNpcmN1bWZlcmVuY2UgLSAoY2lyY3VtZmVyZW5jZSAqIHBlcmNlbnRhZ2UpIC8gMTAwO1xuXG4gICAgbGV0IHN0cm9rZUNvbG9yID0gdGlsZS5jb2xvciB8fCBjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUuMyAyNSUgMjguOCUpJywgJ2hzbCgyMTAgNDAlIDc4JSknKTtcbiAgICBpZiAob3B0aW9ucy50aHJlc2hvbGRzKSB7XG4gICAgICBjb25zdCBzb3J0ZWRUaHJlc2hvbGRzID0gWy4uLm9wdGlvbnMudGhyZXNob2xkc10uc29ydCgoYSwgYikgPT4gYi52YWx1ZSAtIGEudmFsdWUpO1xuICAgICAgZm9yIChjb25zdCB0aHJlc2hvbGQgb2Ygc29ydGVkVGhyZXNob2xkcykge1xuICAgICAgICBpZiAodmFsdWUgPj0gdGhyZXNob2xkLnZhbHVlKSB7XG4gICAgICAgICAgc3Ryb2tlQ29sb3IgPSB0aHJlc2hvbGQuY29sb3I7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJnYXVnZS13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnYXVnZS1jb250YWluZXJcIj5cbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiZ2F1Z2Utc3ZnXCIgdmlld0JveD1cIjAgMCAke3dpZHRofSAke2hlaWdodH1cIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiPlxuICAgICAgICAgICAgPCEtLSBCYWNrZ3JvdW5kIGFyYyAtLT5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGNsYXNzPVwiZ2F1Z2UtYmFja2dyb3VuZFwiXG4gICAgICAgICAgICAgIGQ9XCIke2FyY1BhdGh9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8IS0tIEZpbGxlZCBhcmMgLS0+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGFzcz1cImdhdWdlLWZpbGxcIlxuICAgICAgICAgICAgICBkPVwiJHthcmNQYXRofVwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cIiR7c3Ryb2tlQ29sb3J9XCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hhcnJheT1cIiR7Y2lyY3VtZmVyZW5jZX1cIlxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldD1cIiR7c3Ryb2tlRGFzaG9mZnNldH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwhLS0gVmFsdWUgdGV4dCAtLT5cbiAgICAgICAgICAgIDx0ZXh0IGNsYXNzPVwiZ2F1Z2UtdGV4dFwiIHg9XCIke2NlbnRlclh9XCIgeT1cIiR7Y2VudGVyWSAtIDh9XCIgZG9taW5hbnQtYmFzZWxpbmU9XCJtaWRkbGVcIj5cbiAgICAgICAgICAgICAgPHRzcGFuPiR7dmFsdWV9PC90c3Bhbj4ke3RpbGUudW5pdCA/IGh0bWxgPHRzcGFuIGNsYXNzPVwiZ2F1Z2UtdW5pdFwiIGR4PVwiMlwiIGR5PVwiMFwiPiR7dGlsZS51bml0fTwvdHNwYW4+YCA6ICcnfVxuICAgICAgICAgICAgPC90ZXh0PlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclBlcmNlbnRhZ2UodGlsZTogSVN0YXRzVGlsZSk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCB2YWx1ZSA9IHR5cGVvZiB0aWxlLnZhbHVlID09PSAnbnVtYmVyJyA/IHRpbGUudmFsdWUgOiBwYXJzZUZsb2F0KHRpbGUudmFsdWUpO1xuICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSBNYXRoLm1pbigxMDAsIE1hdGgubWF4KDAsIHZhbHVlKSk7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJwZXJjZW50YWdlLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBlcmNlbnRhZ2UtdmFsdWVcIj4ke3BlcmNlbnRhZ2V9JTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGVyY2VudGFnZS1iYXJcIj5cbiAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgY2xhc3M9XCJwZXJjZW50YWdlLWZpbGxcIiBcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6ICR7cGVyY2VudGFnZX0lOyAke3RpbGUuY29sb3IgPyBgYmFja2dyb3VuZDogJHt0aWxlLmNvbG9yfWAgOiAnJ31cIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJUcmVuZCh0aWxlOiBJU3RhdHNUaWxlKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmICghdGlsZS50cmVuZERhdGEgfHwgdGlsZS50cmVuZERhdGEubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cInRpbGUtdmFsdWVcIj4ke3RpbGUudmFsdWV9PC9kaXY+YDtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gdGlsZS50cmVuZERhdGE7XG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoLi4uZGF0YSk7XG4gICAgY29uc3QgbWluID0gTWF0aC5taW4oLi4uZGF0YSk7XG4gICAgY29uc3QgcmFuZ2UgPSBtYXggLSBtaW4gfHwgMTtcbiAgICBjb25zdCB3aWR0aCA9IDMwMDtcbiAgICBjb25zdCBoZWlnaHQgPSAzMjtcbiAgICBcbiAgICAvLyBBZGQgcGFkZGluZyB0byBwcmV2ZW50IGNsaXBwaW5nXG4gICAgY29uc3QgcGFkZGluZyA9IDI7XG4gICAgY29uc3QgcG9pbnRzID0gZGF0YS5tYXAoKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgeCA9IChpbmRleCAvIChkYXRhLmxlbmd0aCAtIDEpKSAqIHdpZHRoO1xuICAgICAgY29uc3QgeSA9IHBhZGRpbmcgKyAoaGVpZ2h0IC0gMiAqIHBhZGRpbmcpIC0gKCh2YWx1ZSAtIG1pbikgLyByYW5nZSkgKiAoaGVpZ2h0IC0gMiAqIHBhZGRpbmcpO1xuICAgICAgcmV0dXJuIGAke3h9LCR7eX1gO1xuICAgIH0pLmpvaW4oJyAnKTtcblxuICAgIGNvbnN0IGFyZWFQb2ludHMgPSBgMCwke2hlaWdodH0gJHtwb2ludHN9ICR7d2lkdGh9LCR7aGVpZ2h0fWA7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmVuZC1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRyZW5kLWhlYWRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJlbmQtdmFsdWVcIj4ke3RpbGUudmFsdWV9PC9zcGFuPlxuICAgICAgICAgICR7dGlsZS51bml0ID8gaHRtbGA8c3BhbiBjbGFzcz1cInRyZW5kLXVuaXRcIj4ke3RpbGUudW5pdH08L3NwYW4+YCA6ICcnfVxuICAgICAgICAgICR7dGlsZS5kZXNjcmlwdGlvbiA/IGh0bWxgPHNwYW4gY2xhc3M9XCJ0cmVuZC1sYWJlbFwiPiR7dGlsZS5kZXNjcmlwdGlvbn08L3NwYW4+YCA6ICcnfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRyZW5kLWdyYXBoXCI+XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cInRyZW5kLXN2Z1wiIHZpZXdCb3g9XCIwIDAgJHt3aWR0aH0gJHtoZWlnaHR9XCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIj5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPVwidHJlbmQtYXJlYVwiIHBvaW50cz1cIiR7YXJlYVBvaW50c31cIiAvPlxuICAgICAgICAgICAgPHBvbHlsaW5lIGNsYXNzPVwidHJlbmQtbGluZVwiIHBvaW50cz1cIiR7cG9pbnRzfVwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlR3JpZEFjdGlvbihhY3Rpb246IHBsdWdpbnMudHNjbGFzcy53ZWJzaXRlLklNZW51SXRlbSkge1xuICAgIGlmIChhY3Rpb24uYWN0aW9uKSB7XG4gICAgICBhd2FpdCBhY3Rpb24uYWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVUaWxlQWN0aW9uKGFjdGlvbjogcGx1Z2lucy50c2NsYXNzLndlYnNpdGUuSU1lbnVJdGVtLCBfdGlsZTogSVN0YXRzVGlsZSkge1xuICAgIGlmIChhY3Rpb24uYWN0aW9uKSB7XG4gICAgICBhd2FpdCBhY3Rpb24uYWN0aW9uKCk7XG4gICAgfVxuICAgIC8vIE5vdGU6IHRpbGUgZGF0YSBpcyBhdmFpbGFibGUgdGhyb3VnaCBjbG9zdXJlIHdoZW4gZGVmaW5pbmcgYWN0aW9uc1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93Q29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQsIHRpbGU6IElTdGF0c1RpbGUpIHtcbiAgICBpZiAoIXRpbGUuYWN0aW9ucyB8fCB0aWxlLmFjdGlvbnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmNvbnRleHRNZW51UG9zaXRpb24gPSB7IHg6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50LmNsaWVudFkgfTtcbiAgICB0aGlzLmNvbnRleHRNZW51QWN0aW9ucyA9IHRpbGUuYWN0aW9ucztcbiAgICB0aGlzLmNvbnRleHRNZW51VmlzaWJsZSA9IHRydWU7XG5cbiAgICAvLyBDbG9zZSBjb250ZXh0IG1lbnUgb24gY2xpY2sgb3V0c2lkZVxuICAgIGNvbnN0IGNsb3NlSGFuZGxlciA9ICgpID0+IHtcbiAgICAgIHRoaXMuY29udGV4dE1lbnVWaXNpYmxlID0gZmFsc2U7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlSGFuZGxlcik7XG4gICAgfTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xvc2VIYW5kbGVyKTtcbiAgICB9LCAxMDApO1xuICB9XG59IiwgImltcG9ydCB7IGh0bWwsIERlZXNFbGVtZW50LCBjdXN0b21FbGVtZW50LCBjc3MsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHR5cGUgeyBJVmlldyB9IGZyb20gJy4vZGVlcy1zaW1wbGUtYXBwZGFzaC5qcyc7XG5pbXBvcnQgJy4uLy4uLzAwZ3JvdXAtZm9ybS9kZWVzLWZvcm0vZGVlcy1mb3JtLmpzJztcbmltcG9ydCAnLi4vLi4vMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXRleHQvZGVlcy1pbnB1dC10ZXh0LmpzJztcbmltcG9ydCAnLi4vLi4vMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LWNoZWNrYm94L2RlZXMtaW5wdXQtY2hlY2tib3guanMnO1xuaW1wb3J0ICcuLi8uLi8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtZHJvcGRvd24vZGVlcy1pbnB1dC1kcm9wZG93bi5qcyc7XG5pbXBvcnQgJy4uLy4uLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1yYWRpb2dyb3VwL2RlZXMtaW5wdXQtcmFkaW9ncm91cC5qcyc7XG5pbXBvcnQgJy4uLy4uLzAwZ3JvdXAtZm9ybS9kZWVzLWZvcm0tc3VibWl0L2RlZXMtZm9ybS1zdWJtaXQuanMnO1xuaW1wb3J0ICcuLi8uLi9kZWVzLXN0YXRzZ3JpZC9kZWVzLXN0YXRzZ3JpZC5qcyc7XG5pbXBvcnQgdHlwZSB7IElTdGF0c1RpbGUgfSBmcm9tICcuLi8uLi9kZWVzLXN0YXRzZ3JpZC9kZWVzLXN0YXRzZ3JpZC5qcyc7XG5cbi8vIENyZWF0ZSBkZW1vIHZpZXcgY29tcG9uZW50c1xuQGN1c3RvbUVsZW1lbnQoJ2RlbW8tdmlldy1kYXNoYm9hcmQnKVxuY2xhc3MgRGVtb1ZpZXdEYXNoYm9hcmQgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDQwcHg7XG4gICAgICB9XG4gICAgICBoMSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDAwJywgJyNmZmYnKX07XG4gICAgICB9XG4gICAgICBkZWVzLXN0YXRzZ3JpZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICB9XG4gICAgYFxuICBdO1xuICBcbiAgcHJpdmF0ZSBzdGF0c1RpbGVzOiBJU3RhdHNUaWxlW10gPSBbXG4gICAge1xuICAgICAgaWQ6ICd1c2VycycsXG4gICAgICB0aXRsZTogJ0FjdGl2ZSBVc2VycycsXG4gICAgICB2YWx1ZTogMTIzNCxcbiAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgaWNvbjogJ2ZhVXNlcnMnLFxuICAgICAgZGVzY3JpcHRpb246ICcrMTUlIGZyb20gbGFzdCB3ZWVrJyxcbiAgICAgIGNvbG9yOiAnIzIyYzU1ZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAncGFnZXZpZXdzJyxcbiAgICAgIHRpdGxlOiAnUGFnZSBWaWV3cycsXG4gICAgICB2YWx1ZTogNTY3MDAsXG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIGljb246ICdmYUV5ZScsXG4gICAgICBkZXNjcmlwdGlvbjogJzU2LjdrIHRvdGFsIHZpZXdzJyxcbiAgICAgIGNvbG9yOiAnIzNiODJmNidcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAndXB0aW1lJyxcbiAgICAgIHRpdGxlOiAnU3lzdGVtIFVwdGltZScsXG4gICAgICB2YWx1ZTogODksXG4gICAgICB1bml0OiAnJScsXG4gICAgICB0eXBlOiAnZ2F1Z2UnLFxuICAgICAgaWNvbjogJ2ZhU2VydmVyJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnTGFzdCAzMCBkYXlzJyxcbiAgICAgIGNvbG9yOiAnIzEwYjk4MScsXG4gICAgICBnYXVnZU9wdGlvbnM6IHtcbiAgICAgICAgbWluOiAwLFxuICAgICAgICBtYXg6IDEwMCxcbiAgICAgICAgdGhyZXNob2xkczogW1xuICAgICAgICAgIHsgdmFsdWU6IDgwLCBjb2xvcjogJyNlZjQ0NDQnIH0sXG4gICAgICAgICAgeyB2YWx1ZTogOTAsIGNvbG9yOiAnI2Y1OWUwYicgfSxcbiAgICAgICAgICB7IHZhbHVlOiAxMDAsIGNvbG9yOiAnIzEwYjk4MScgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ3Jlc3BvbnNlJyxcbiAgICAgIHRpdGxlOiAnQXZnIFJlc3BvbnNlIFRpbWUnLFxuICAgICAgdmFsdWU6IDMuMixcbiAgICAgIHVuaXQ6ICdzJyxcbiAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgaWNvbjogJ2ZhQ2xvY2snLFxuICAgICAgZGVzY3JpcHRpb246ICctMC41cyBpbXByb3ZlbWVudCcsXG4gICAgICBjb2xvcjogJyNmNTllMGInXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ3JldmVudWUnLFxuICAgICAgdGl0bGU6ICdNb250aGx5IFJldmVudWUnLFxuICAgICAgdmFsdWU6IDQ4NTIwLFxuICAgICAgdW5pdDogJyQnLFxuICAgICAgdHlwZTogJ3RyZW5kJyxcbiAgICAgIGljb246ICdmYURvbGxhclNpZ24nLFxuICAgICAgZGVzY3JpcHRpb246ICcrOC4yJSBncm93dGgnLFxuICAgICAgY29sb3I6ICcjMjJjNTVlJyxcbiAgICAgIHRyZW5kRGF0YTogWzM1MDAwLCAzODAwMCwgMzc1MDAsIDQxMDAwLCAzOTgwMCwgNDIwMDAsIDQ0MTAwLCA0MzIwMCwgNDU2MDAsIDQ3MTAwLCA0NjgwMCwgNDg1MjBdXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ3RyYWZmaWMnLFxuICAgICAgdGl0bGU6ICdUcmFmZmljIFRyZW5kJyxcbiAgICAgIHZhbHVlOiAxNjgwLFxuICAgICAgdHlwZTogJ3RyZW5kJyxcbiAgICAgIGljb246ICdmYUNoYXJ0TGluZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0xhc3QgNyBkYXlzJyxcbiAgICAgIGNvbG9yOiAnIzNiODJmNicsXG4gICAgICB0cmVuZERhdGE6IFsxMjAwLCAxMzUwLCAxMTAwLCAxNDUwLCAxNjAwLCAxNTUwLCAxNjgwXVxuICAgIH1cbiAgXTtcbiAgXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPlxuICAgICAgPHA+V2VsY29tZSB0byB5b3VyIGFwcGxpY2F0aW9uIGRhc2hib2FyZC4gSGVyZSdzIGFuIG92ZXJ2aWV3IG9mIHlvdXIgbWV0cmljczo8L3A+XG4gICAgICA8ZGVlcy1zdGF0c2dyaWRcbiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfVxuICAgICAgICBAdGlsZS1hY3Rpb249JHsoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnVGlsZSBhY3Rpb246JywgZS5kZXRhaWwpO1xuICAgICAgICB9fVxuICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+XG4gICAgYDtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVtby12aWV3LWFuYWx5dGljcycpXG5jbGFzcyBEZW1vVmlld0FuYWx5dGljcyBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgc3RhdGljIHN0eWxlcyA9IFtcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogNDBweDtcbiAgICAgIH1cbiAgICAgIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAnLCAnI2ZmZicpfTtcbiAgICAgIH1cbiAgICBgXG4gIF07XG4gIFxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8aDE+QW5hbHl0aWNzPC9oMT5cbiAgICAgIDxwPlRoaXMgaXMgdGhlIGFuYWx5dGljcyB2aWV3LiBZb3UgY2FuIGFkZCBjaGFydHMgYW5kIG1ldHJpY3MgaGVyZS48L3A+XG4gICAgYDtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVtby12aWV3LXNldHRpbmdzJylcbmNsYXNzIERlbW9WaWV3U2V0dGluZ3MgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDQwcHg7XG4gICAgICB9XG4gICAgICBoMSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDAwJywgJyNmZmYnKX07XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzMzMnLCAnI2NjYycpfTtcbiAgICAgIH1cbiAgICAgIC5ob3Jpem9udGFsLWZvcm0tc2VjdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjVmNWY1JywgJyMxYTFhMWEnKX07XG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgbWFyZ2luOiAxNXB4IDA7XG4gICAgICB9XG4gICAgYFxuICBdO1xuICBcbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGgxPlNldHRpbmdzPC9oMT5cbiAgICAgIDxwPkNvbmZpZ3VyZSB5b3VyIGFwcGxpY2F0aW9uIHNldHRpbmdzIGJlbG93OjwvcD5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgPGgyPkdlbmVyYWwgU2V0dGluZ3M8L2gyPlxuICAgICAgICA8ZGVlcy1mb3JtPlxuICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PVwiYXBwTmFtZVwiIGxhYmVsPVwiQXBwbGljYXRpb24gTmFtZVwiIHZhbHVlPVwiTXkgQXBwXCI+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9XCJhcGlFbmRwb2ludFwiIGxhYmVsPVwiQVBJIEVuZHBvaW50XCIgdmFsdWU9XCJodHRwczovL2FwaS5leGFtcGxlLmNvbVwiPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duXG4gICAgICAgICAgICBrZXk9XCJlbnZpcm9ubWVudFwiXG4gICAgICAgICAgICBsYWJlbD1cIkVudmlyb25tZW50XCJcbiAgICAgICAgICAgIC5vcHRpb25zPSR7W1xuICAgICAgICAgICAgICB7IG9wdGlvbjogJ0RldmVsb3BtZW50Jywga2V5OiAnZGV2JyB9LFxuICAgICAgICAgICAgICB7IG9wdGlvbjogJ1N0YWdpbmcnLCBrZXk6ICdzdGFnaW5nJyB9LFxuICAgICAgICAgICAgICB7IG9wdGlvbjogJ1Byb2R1Y3Rpb24nLCBrZXk6ICdwcm9kJyB9XG4gICAgICAgICAgICBdfVxuICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7eyBvcHRpb246ICdQcm9kdWN0aW9uJywga2V5OiAncHJvZCcgfX1cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT1cImVuYWJsZU5vdGlmaWNhdGlvbnNcIiBsYWJlbD1cIkVuYWJsZSBOb3RpZmljYXRpb25zXCIgdmFsdWU9XCJ0cnVlXCI+PC9kZWVzLWlucHV0LWNoZWNrYm94PlxuICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT1cImVuYWJsZUFuYWx5dGljc1wiIGxhYmVsPVwiRW5hYmxlIEFuYWx5dGljc1wiIHZhbHVlPVwiZmFsc2VcIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+XG4gICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U2F2ZSBHZW5lcmFsIFNldHRpbmdzPC9kZWVzLWZvcm0tc3VibWl0PlxuICAgICAgICA8L2RlZXMtZm9ybT5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICA8aDI+RGlzcGxheSBQcmVmZXJlbmNlczwvaDI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJob3Jpem9udGFsLWZvcm0tc2VjdGlvblwiPlxuICAgICAgICAgIDxwIHN0eWxlPVwibWFyZ2luLXRvcDogMDsgbWFyZ2luLWJvdHRvbTogMTZweDtcIj5RdWljayBkaXNwbGF5IHNldHRpbmdzIHVzaW5nIGhvcml6b250YWwgbGF5b3V0OjwvcD5cbiAgICAgICAgICA8ZGVlcy1mb3JtIGhvcml6b250YWwtbGF5b3V0PlxuICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd25cbiAgICAgICAgICAgICAga2V5PVwidGhlbWVcIlxuICAgICAgICAgICAgICBsYWJlbD1cIlRoZW1lXCJcbiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0ke2ZhbHNlfVxuICAgICAgICAgICAgICAub3B0aW9ucz0ke1tcbiAgICAgICAgICAgICAgICB7IG9wdGlvbjogJ0xpZ2h0Jywga2V5OiAnbGlnaHQnIH0sXG4gICAgICAgICAgICAgICAgeyBvcHRpb246ICdEYXJrJywga2V5OiAnZGFyaycgfSxcbiAgICAgICAgICAgICAgICB7IG9wdGlvbjogJ0F1dG8nLCBrZXk6ICdhdXRvJyB9XG4gICAgICAgICAgICAgIF19XG4gICAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3sgb3B0aW9uOiAnRGFyaycsIGtleTogJ2RhcmsnIH19XG4gICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd25cbiAgICAgICAgICAgICAga2V5PVwibGFuZ3VhZ2VcIlxuICAgICAgICAgICAgICBsYWJlbD1cIkxhbmd1YWdlXCJcbiAgICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0ke2ZhbHNlfVxuICAgICAgICAgICAgICAub3B0aW9ucz0ke1tcbiAgICAgICAgICAgICAgICB7IG9wdGlvbjogJ0VuZ2xpc2gnLCBrZXk6ICdlbicgfSxcbiAgICAgICAgICAgICAgICB7IG9wdGlvbjogJ0dlcm1hbicsIGtleTogJ2RlJyB9LFxuICAgICAgICAgICAgICAgIHsgb3B0aW9uOiAnU3BhbmlzaCcsIGtleTogJ2VzJyB9LFxuICAgICAgICAgICAgICAgIHsgb3B0aW9uOiAnRnJlbmNoJywga2V5OiAnZnInIH1cbiAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7eyBvcHRpb246ICdFbmdsaXNoJywga2V5OiAnZW4nIH19XG4gICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PVwiY29tcGFjdE1vZGVcIiBsYWJlbD1cIkNvbXBhY3QgTW9kZVwiPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICA8L2RlZXMtZm9ybT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgPGgyPk5vdGlmaWNhdGlvbiBTZXR0aW5nczwvaDI+XG4gICAgICAgIDxkZWVzLWZvcm0+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cFxuICAgICAgICAgICAgLmxhYmVsPSR7J0VtYWlsIEZyZXF1ZW5jeSd9XG4gICAgICAgICAgICAub3B0aW9ucz0ke1snUmVhbC10aW1lJywgJ0RhaWx5IERpZ2VzdCcsICdXZWVrbHkgU3VtbWFyeScsICdOZXZlciddfVxuICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7J1JlYWwtdGltZSd9XG4gICAgICAgICAgICAua2V5PSR7J2VtYWlsRnJlcXVlbmN5J31cbiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PVwicHVzaE5vdGlmaWNhdGlvbnNcIiBsYWJlbD1cIkVuYWJsZSBQdXNoIE5vdGlmaWNhdGlvbnNcIiB2YWx1ZT1cInRydWVcIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+XG4gICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PVwic291bmRBbGVydHNcIiBsYWJlbD1cIlBsYXkgU291bmQgZm9yIEFsZXJ0c1wiIHZhbHVlPVwidHJ1ZVwiPjwvZGVlcy1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5VcGRhdGUgTm90aWZpY2F0aW9uczwvZGVlcy1mb3JtLXN1Ym1pdD5cbiAgICAgICAgPC9kZWVzLWZvcm0+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG4gIDxzdHlsZT5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICA8L3N0eWxlPlxuICA8ZGl2IGNsYXNzPVwiZGVtby1jb250YWluZXJcIj5cbiAgICA8ZGVlcy1zaW1wbGUtYXBwZGFzaFxuICAgICAgbmFtZT1cIk15IEFwcGxpY2F0aW9uXCJcbiAgICAgIHRlcm1pbmFsU2V0dXBDb21tYW5kPVwiZWNobyAnV2VsY29tZSB0byB0aGUgdGVybWluYWwhJ1wiXG4gICAgICAudmlld1RhYnM9JHtbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnRGFzaGJvYXJkJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpob21lJyxcbiAgICAgICAgICBlbGVtZW50OiBEZW1vVmlld0Rhc2hib2FyZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdBbmFseXRpY3MnLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmxpbmVDaGFydCcsXG4gICAgICAgICAgZWxlbWVudDogRGVtb1ZpZXdBbmFseXRpY3MsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnU2V0dGluZ3MnLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnNldHRpbmdzJyxcbiAgICAgICAgICBlbGVtZW50OiBEZW1vVmlld1NldHRpbmdzLFxuICAgICAgICB9XG4gICAgICBdIGFzIElWaWV3W119XG4gICAgICBAbG9nb3V0PSR7KCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnTG9nb3V0IGV2ZW50IHRyaWdnZXJlZCcpO1xuICAgICAgICBhbGVydCgnTG9nb3V0IGNsaWNrZWQhJyk7XG4gICAgICB9fVxuICAgICAgQHZpZXctc2VsZWN0PSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdWaWV3IHNlbGVjdGVkOicsIGUuZGV0YWlsLnZpZXcubmFtZSk7XG4gICAgICB9fVxuICAgID48L2RlZXMtc2ltcGxlLWFwcGRhc2g+XG4gIDwvZGl2PlxuYDtcbiIsICJpbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1zaW1wbGUtYXBwZGFzaC5kZW1vLmpzJztcblxuaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgRGVlc0VsZW1lbnQsXG4gIHByb3BlcnR5LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBjc3NNYW5hZ2VyLFxuICBjc3MsXG4gIHVuc2FmZUNTUyxcbiAgdHlwZSBDU1NSZXN1bHQsXG4gIHN0YXRlLFxuICBkb210b29scyxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCAnLi4vLi4vZGVlcy1pY29uL2RlZXMtaWNvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IERlZXNXb3Jrc3BhY2VUZXJtaW5hbCB9IGZyb20gJy4uLy4uLzAwZ3JvdXAtd29ya3NwYWNlL2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsL2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLy4uLzAwdGhlbWUuanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLXNpbXBsZS1hcHBkYXNoJzogRGVlc1NpbXBsZUFwcERhc2g7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmlldyB7XG4gIG5hbWU6IHN0cmluZztcbiAgaWNvbk5hbWU/OiBzdHJpbmc7XG4gIGVsZW1lbnQ6IERlZXNFbGVtZW50Wydjb25zdHJ1Y3RvciddWydwcm90b3R5cGUnXTtcbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtc2ltcGxlLWFwcGRhc2gnKVxuZXhwb3J0IGNsYXNzIERlZXNTaW1wbGVBcHBEYXNoIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICAvLyBTVEFUSUNcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ1NpbXBsZSc7XG4gIC8vIElOU1RBTkNFXG5cbiAgQHByb3BlcnR5KClcbiAgYWNjZXNzb3IgbmFtZTogc3RyaW5nID0gJ0FwcGxpY2F0aW9uIERhc2hib2FyZCc7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3Igdmlld1RhYnM6IElWaWV3W10gPSBbXTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgdGVybWluYWxTZXR1cENvbW1hbmQ6IHN0cmluZyA9IGBlY2hvIFwiVGVybWluYWwgcmVhZHlcImA7XG5cbiAgQHN0YXRlKClcbiAgYWNjZXNzb3Igc2VsZWN0ZWRWaWV3OiBJVmlldztcblxuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIDpob3N0IHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxNSUpJywgJ2hzbCgwIDAlIDkwJSknKX07XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAubWFpbmNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5hcHBiYXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMjRweCk7XG4gICAgICAgIHdpZHRoOiAyNDBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk5JSknLCAnaHNsKDAgMCUgNyUpJyl9O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgOTElKScsICdoc2woMCAwJSAxMyUpJyl9O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgbWluLWNvbnRlbnQ7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5zaWRlYmFyLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMTZweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5MSUpJywgJ2hzbCgwIDAlIDEzJSknKX07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlci1pY29uLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoXG4gICAgICAgICAgJ2xpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyMTUgMjAlIDk1JSkgMCUsIGhzbCgyMTUgMjAlIDkwJSkgMTAwJSknLFxuICAgICAgICAgICdsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2woMjE1IDIwJSAxOCUpIDAlLCBoc2woMjE1IDIwJSAxNCUpIDEwMCUpJ1xuICAgICAgICApfTtcbiAgICAgICAgYm94LXNoYWRvdzogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoXG4gICAgICAgICAgJzAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA1KSwgaW5zZXQgMCAxcHggMCByZ2IoMjU1IDI1NSAyNTUgLyAwLjUpJyxcbiAgICAgICAgICAnMCAxcHggMnB4IHJnYigwIDAgMCAvIDAuMiksIGluc2V0IDAgMXB4IDAgcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSknXG4gICAgICAgICl9O1xuICAgICAgfVxuXG4gICAgICAuaGVhZGVyLWljb24td3JhcHBlciBkZWVzLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNSAyMCUgNDAlKScsICdoc2woMjE1IDIwJSA3MCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYXBwTmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5JSknLCAnaHNsKDAgMCUgOTglKScpfTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgICAgfVxuXG4gICAgICAudmlld1RhYnMtY29udGFpbmVyIHtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgODUlKScsICdoc2woMCAwJSAyMCUpJyl9IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICB9XG5cbiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg1JSknLCAnaHNsKDAgMCUgMjAlKScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgfVxuXG4gICAgICAudmlld1RhYnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA3NSUpJywgJ2hzbCgwIDAlIDMwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5zZWN0aW9uLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDUwJSknLCAnaHNsKDAgMCUgNTAlKScpfTtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHggOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICB9XG5cbiAgICAgIC52aWV3VGFicyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuXG4gICAgICAudmlld1RhYiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQwJSknLCAnaHNsKDAgMCUgNjUlKScpfTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgfVxuXG4gICAgICAudmlld1RhYjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAwJSAvIDAuMDQpJywgJ2hzbCgwIDAlIDEwMCUgLyAwLjA1KScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxNSUpJywgJ2hzbCgwIDAlIDkwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC52aWV3VGFiOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAwJSAvIDAuMDYpJywgJ2hzbCgwIDAlIDEwMCUgLyAwLjA3KScpfTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk5KTtcbiAgICAgIH1cblxuICAgICAgLnZpZXdUYWIuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDIxNSAyNSUgOTUlKScsICdoc2woMjE1IDIwJSAxNSUpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgyMTUgMjUlIDMwJSknLCAnaHNsKDIxNSAyNSUgODUlKScpfTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cblxuICAgICAgLnZpZXdUYWIuc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogOHB4O1xuICAgICAgICBib3R0b206IDhweDtcbiAgICAgICAgd2lkdGg6IDNweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAycHggMnB4IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDcwJSA1MCUpJywgJ2hzbCgyMTUgNzAlIDYwJSknKX07XG4gICAgICB9XG5cbiAgICAgIC52aWV3VGFiIGRlZXMtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgb3BhY2l0eTogMC41NTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC52aWV3VGFiOmhvdmVyIGRlZXMtaWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgICB9XG5cbiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIGRlZXMtaWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjE1IDcwJSA0NSUpJywgJ2hzbCgyMTUgNzAlIDY1JSknKX07XG4gICAgICB9XG5cbiAgICAgIC52aWV3VGFiIHNwYW4ge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmFwcEFjdGlvbnMge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSA5MSUpJywgJ2hzbCgwIDAlIDEzJSknKX07XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQwJSknLCAnaHNsKDAgMCUgNjUlKScpfTtcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCA4NCUgNjAlIC8gMC4wOCknLCAnaHNsKDAgODQlIDYwJSAvIDAuMTIpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDg0JSA0NSUpJywgJ2hzbCgwIDg0JSA2NSUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uIGRlZXMtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbjpob3ZlciBkZWVzLWljb24ge1xuICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgODQlIDQ1JSknLCAnaHNsKDAgODQlIDY1JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5hcHBjb250ZW50IHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyNHB4KTtcbiAgICAgICAgYm90dG9tOiAyNHB4O1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjQwcHgpO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDk3JSknLCAnaHNsKDAgMCUgNSUpJyl9O1xuICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICAuY29udHJvbGJhciB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMjIwIDEzJSAxOCUpJywgJ2hzbCgyMjAgMTMlIDEyJSknKX07XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgICAgIH1cblxuICAgICAgLmNvbnRyb2wge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDcwJSk7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGhzbCgwIDAlIDEwMCUgLyAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNvbnRyb2w6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNvbnRyb2w6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCAwJSAxMDAlIC8gMC4wNik7XG4gICAgICAgIGNvbG9yOiBoc2woMCAwJSA5NSUpO1xuICAgICAgfVxuXG4gICAgICAuY29udHJvbCBkZWVzLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG5cbiAgICAgIC5jb250cm9sLnN0YXR1cy1jb25uZWN0ZWQgZGVlcy1pY29uIHtcbiAgICAgICAgY29sb3I6IGhzbCgxNDIgNzAlIDUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jb250cm9sLnN0YXR1cy10ZXJtaW5hbCBkZWVzLWljb24ge1xuICAgICAgICBjb2xvcjogaHNsKDQ1IDkwJSA1NSUpO1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwibWFpbmNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwYmFyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWljb24td3JhcHBlclwiPlxuICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPVwiJHsnbHVjaWRlOmxheW91dEdyaWQnfVwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwTmFtZVwiPiR7dGhpcy5uYW1lfTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3VGFicy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWxhYmVsXCI+TmF2aWdhdGlvbjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZXdUYWJzXCI+XG4gICAgICAgICAgICAgICR7dGhpcy52aWV3VGFicy5tYXAoXG4gICAgICAgICAgICAgICAgKHZpZXcpID0+IGh0bWxgXG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlld1RhYiAke3RoaXMuc2VsZWN0ZWRWaWV3ID09PSB2aWV3ID8gJ3NlbGVjdGVkJyA6ICcnfVwiXG4gICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMubG9hZFZpZXcodmlldyl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICR7dmlldy5pY29uTmFtZSA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj1cIiR7dmlldy5pY29uTmFtZS5pbmNsdWRlcygnOicpID8gdmlldy5pY29uTmFtZSA6IGBsdWNpZGU6JHt2aWV3Lmljb25OYW1lfWB9XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgICAgIGAgOiBodG1sYFxuICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249XCIkeydsdWNpZGU6ZmlsZSd9XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7dmlldy5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHBBY3Rpb25zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uXCIgQGNsaWNrPSR7KCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdsb2dvdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPVwiJHsnbHVjaWRlOmxvZ091dCd9XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPlNpZ24gb3V0PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwY29udGVudFwiPlxuICAgICAgICAgIDwhLS0gQ29udGVudCBnb2VzIGhlcmUgLS0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbGJhclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIHN0YXR1cy1jb25uZWN0ZWRcIj5cbiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249XCIkeydsdWNpZGU6d2lmaSd9XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICA8c3Bhbj5Db25uZWN0ZWQ8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2wgc3RhdHVzLXRlcm1pbmFsXCIgQGNsaWNrPSR7dGhpcy5sYXVuY2hUZXJtaW5hbH0+XG4gICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPVwiJHsnbHVjaWRlOnRlcm1pbmFsJ31cIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuPlRlcm1pbmFsPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRvbXRvb2xzID0gYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgaWYgKHRoaXMudmlld1RhYnMgJiYgdGhpcy52aWV3VGFicy5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRWaWV3KHRoaXMudmlld1RhYnNbMF0pO1xuICAgIH1cbiAgfVxuICBcbiAgcHVibGljIGN1cnJlbnRUZXJtaW5hbDogRGVlc1dvcmtzcGFjZVRlcm1pbmFsO1xuICBwdWJsaWMgYXN5bmMgbGF1bmNoVGVybWluYWwoKSB7XG4gICAgY29uc3QgZG9tdG9vbHMgPSBhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtcbiAgICBpZiAodGhpcy5jdXJyZW50VGVybWluYWwpIHtcbiAgICAgIC8vIElmIHRlcm1pbmFsIGFscmVhZHkgZXhpc3RzLCByZW1vdmUgaXRcbiAgICAgIGF3YWl0IHRoaXMuY2xvc2VUZXJtaW5hbCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1haW5jb250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1haW5jb250YWluZXInKTtcbiAgICBjb25zdCB7IERlZXNXb3Jrc3BhY2VUZXJtaW5hbCB9ID0gYXdhaXQgaW1wb3J0KCcuLi8uLi8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC5qcycpO1xuICAgIGNvbnN0IHRlcm1pbmFsID0gbmV3IERlZXNXb3Jrc3BhY2VUZXJtaW5hbCgpO1xuICAgIHRlcm1pbmFsLnNldHVwQ29tbWFuZCA9IHRoaXMudGVybWluYWxTZXR1cENvbW1hbmQ7XG4gICAgdGhpcy5jdXJyZW50VGVybWluYWwgPSB0ZXJtaW5hbDtcbiAgICBtYWluY29udGFpbmVyLmFwcGVuZENoaWxkKHRlcm1pbmFsKTtcbiAgICB0ZXJtaW5hbC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgdGVybWluYWwuc3R5bGUuekluZGV4ID0gJzEwJztcbiAgICB0ZXJtaW5hbC5zdHlsZS50b3AgPSAnMHB4JztcbiAgICB0ZXJtaW5hbC5zdHlsZS5sZWZ0ID0gJzI0MHB4JztcbiAgICB0ZXJtaW5hbC5zdHlsZS5yaWdodCA9ICcwcHgnO1xuICAgIHRlcm1pbmFsLnN0eWxlLmJvdHRvbSA9ICcyNHB4JztcbiAgICB0ZXJtaW5hbC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgIHRlcm1pbmFsLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OSknO1xuICAgIHRlcm1pbmFsLnN0eWxlLnRyYW5zaXRpb24gPSAnYWxsIDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSknO1xuICAgIHRlcm1pbmFsLnN0eWxlLmJveFNoYWRvdyA9ICcwIDI1cHggNTBweCAtMTJweCByZ2IoMCAwIDAgLyAwLjUpLCAwIDAgMCAxcHggcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSknO1xuICAgIHRlcm1pbmFsLnN0eWxlLm1heFdpZHRoID0gYGNhbGMoJHttYWluY29udGFpbmVyLmNsaWVudFdpZHRofXB4IC0yNDBweClgO1xuICAgIHRlcm1pbmFsLnN0eWxlLm1heEhlaWdodCA9IGBjYWxjKCR7bWFpbmNvbnRhaW5lci5jbGllbnRIZWlnaHR9cHggLSAyNHB4KWA7XG4gICAgXG4gICAgLy8gQWRkIGNsb3NlIGJ1dHRvbiB0byB0ZXJtaW5hbFxuICAgIHRlcm1pbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Nsb3NlJywgKCkgPT4gdGhpcy5jbG9zZVRlcm1pbmFsKCkpO1xuICAgIFxuICAgIGF3YWl0IGRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7XG4gICAgdGVybWluYWwuc3R5bGUub3BhY2l0eSA9ICcxJztcbiAgICB0ZXJtaW5hbC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWSgwKSBzY2FsZSgxKSc7XG4gICAgcmV0dXJuIHRlcm1pbmFsO1xuICB9XG4gIFxuICBwcml2YXRlIGFzeW5jIGNsb3NlVGVybWluYWwoKSB7XG4gICAgY29uc3QgZG9tdG9vbHMgPSBhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtcbiAgICBpZiAodGhpcy5jdXJyZW50VGVybWluYWwpIHtcbiAgICAgIHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgICB0aGlzLmN1cnJlbnRUZXJtaW5hbC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpJztcbiAgICAgIGF3YWl0IGRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjUwKTtcbiAgICAgIHRoaXMuY3VycmVudFRlcm1pbmFsLnJlbW92ZSgpO1xuICAgICAgdGhpcy5jdXJyZW50VGVybWluYWwgPSBudWxsO1xuICAgIH1cbiAgfVxuXG5cbiAgcHJpdmF0ZSBjdXJyZW50VmlldzogRGVlc0VsZW1lbnQ7XG4gIHB1YmxpYyBhc3luYyBsb2FkVmlldyh2aWV3QXJnOiBJVmlldykge1xuICAgIGNvbnN0IGFwcGNvbnRlbnQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmFwcGNvbnRlbnQnKTtcbiAgICBjb25zdCB2aWV3ID0gbmV3IHZpZXdBcmcuZWxlbWVudCgpO1xuICAgIGlmICh0aGlzLmN1cnJlbnRWaWV3KSB7XG4gICAgICB0aGlzLmN1cnJlbnRWaWV3LnJlbW92ZSgpO1xuICAgIH1cbiAgICBhcHBjb250ZW50LmFwcGVuZENoaWxkKHZpZXcpO1xuICAgIHRoaXMuY3VycmVudFZpZXcgPSB2aWV3O1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gdmlld0FyZztcbiAgICBcbiAgICAvLyBFbWl0IHZpZXctc2VsZWN0IGV2ZW50XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgndmlldy1zZWxlY3QnLCB7XG4gICAgICBkZXRhaWw6IHsgdmlldzogdmlld0FyZyB9LFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlXG4gICAgfSkpO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgaHRtbCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG4gIDxzdHlsZT5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICA8L3N0eWxlPlxuICA8ZGl2IGNsYXNzPVwiZGVtby1jb250YWluZXJcIj5cbiAgICA8ZGVlcy1zaW1wbGUtbG9naW4gXG4gICAgICBuYW1lPVwiTXkgQXBwbGljYXRpb25cIlxuICAgICAgQGxvZ2luPSR7KGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdMb2dpbiBldmVudCByZWNlaXZlZDonLCBlLmRldGFpbCk7XG4gICAgICAgIGNvbnN0IGxvZ2luRGF0YSA9IGUuZGV0YWlsPy5kYXRhIHx8IGUuZGV0YWlsO1xuICAgICAgICBpZiAobG9naW5EYXRhPy51c2VybmFtZSAmJiBsb2dpbkRhdGE/LnBhc3N3b3JkKSB7XG4gICAgICAgICAgYWxlcnQoYExvZ2luIGF0dGVtcHRlZCB3aXRoOlxcblVzZXJuYW1lOiAke2xvZ2luRGF0YS51c2VybmFtZX1cXG5QYXNzd29yZDogJHtsb2dpbkRhdGEucGFzc3dvcmR9YCk7XG4gICAgICAgICAgLy8gSGVyZSB5b3Ugd291bGQgdHlwaWNhbGx5IHZhbGlkYXRlIGNyZWRlbnRpYWxzIGFuZCBzaG93IHRoZSBzbG90dGVkIGNvbnRlbnRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIGxvZ2luIGRhdGEgc3RydWN0dXJlOicsIGUuZGV0YWlsKTtcbiAgICAgICAgfVxuICAgICAgfX1cbiAgICA+XG4gICAgICA8ZGl2IHN0eWxlPVwicGFkZGluZzogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyO1wiPlxuICAgICAgICA8aDE+V2VsY29tZSE8L2gxPlxuICAgICAgICA8cD5UaGlzIGlzIHRoZSBzbG90dGVkIGNvbnRlbnQgdGhhdCBhcHBlYXJzIGFmdGVyIGxvZ2luLjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGVlcy1zaW1wbGUtbG9naW4+XG4gIDwvZGl2PlxuYDtcbiIsICJpbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1zaW1wbGUtbG9naW4uZGVtby5qcyc7XG5cbmltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIGh0bWwsXG4gIERlZXNFbGVtZW50LFxuICBwcm9wZXJ0eSxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgY3NzTWFuYWdlcixcbiAgY3NzLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtc2ltcGxlLWxvZ2luJzogRGVlc1NpbXBsZUxvZ2luO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLXNpbXBsZS1sb2dpbicpXG5leHBvcnQgY2xhc3MgRGVlc1NpbXBsZUxvZ2luIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICAvLyBTVEFUSUNcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG4gIHB1YmxpYyBzdGF0aWMgZGVtb0dyb3VwID0gJ1NpbXBsZSc7XG4gIC8vIElOU1RBTkNFXG5cbiAgQHByb3BlcnR5KClcbiAgYWNjZXNzb3IgbmFtZTogc3RyaW5nID0gJ0FwcGxpY2F0aW9uJztcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnaHNsKDAgMCUgMy45JSknLCAnaHNsKDAgMCUgOTglKScpfTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmO1xuICAgICAgfVxuXG4gICAgICAubG9naW5Db250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdoc2woMCAwJSAxMDAlKScsICdoc2woMCAwJSAzLjklKScpfTtcbiAgICAgIH1cblxuICAgICAgLnNsb3RDb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAubG9naW4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgfVxuXG4gICAgICAubG9naW4taGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDklKScsICdoc2woMCAwJSA5OCUpJyl9O1xuICAgICAgfVxuXG4gICAgICAuc3ViaGVhZGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDQ1LjElKScsICdoc2woMCAwJSA2My45JSknKX07XG4gICAgICB9XG5cbiAgICAgIC5sb2dpbi1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDEwMCUpJywgJ2hzbCgwIDAlIDklKScpfTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ2hzbCgwIDAlIDg5LjglKScsICdoc2woMCAwJSAxNC45JSknKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgIH1cblxuICAgICAgLmxvZ2luLWNhcmQgZGVlcy1mb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAubG9naW4tY2FyZCBkZWVzLWlucHV0LXRleHQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmxvZ2luLWNhcmQgZGVlcy1mb3JtLXN1Ym1pdCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbkNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4taGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+U2lnbiBpbjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YmhlYWRlclwiPkVudGVyIHlvdXIgY3JlZGVudGlhbHMgdG8gYWNjZXNzICR7dGhpcy5uYW1lfTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1jYXJkXCI+XG4gICAgICAgICAgICA8ZGVlcy1mb3JtPlxuICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT1cInVzZXJuYW1lXCIgbGFiZWw9XCJVc2VybmFtZVwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT1cInBhc3N3b3JkXCIgbGFiZWw9XCJQYXNzd29yZFwiIGlzUGFzc3dvcmRCb29sIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TaWduIGluPC9kZWVzLWZvcm0tc3VibWl0PlxuICAgICAgICAgICAgPC9kZWVzLWZvcm0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2xvdENvbnRhaW5lclwiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGZpcnN0VXBkYXRlZChfY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdkZWVzLWZvcm0nKSBhcyBhbnk7XG4gICAgaWYgKGZvcm0pIHtcbiAgICAgIGZvcm0uYWRkRXZlbnRMaXN0ZW5lcignZm9ybURhdGEnLCAoZXZlbnQ6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2xvZ2luJywgeyBcbiAgICAgICAgICBkZXRhaWw6IGV2ZW50LmRldGFpbCwgXG4gICAgICAgICAgYnViYmxlczogdHJ1ZSwgXG4gICAgICAgICAgY29tcG9zZWQ6IHRydWUgXG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBhbGxvd3Mgc3dpdGNoaW5nIHRvIHNsb3R0ZWQgY29udGVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKSB7XG4gICAgY29uc3QgZG9tdG9vbHMgPSBhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtcbiAgICBjb25zdCBsb2dpbkRpdjogSFRNTERpdkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmxvZ2luJyk7XG4gICAgY29uc3QgbG9naW5Db250YWluZXJEaXY6IEhUTUxEaXZFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5sb2dpbkNvbnRhaW5lcicpO1xuICAgIGNvbnN0IHNsb3RDb250YWluZXJEaXY6IEhUTUxEaXZFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5zbG90Q29udGFpbmVyJyk7XG4gICAgbG9naW5EaXYuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICBsb2dpbkRpdi5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWSgyMHB4KSc7XG4gICAgbG9naW5Db250YWluZXJEaXYuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgICBzbG90Q29udGFpbmVyRGl2LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKDIwcHgpJztcbiAgICBhd2FpdCBkb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCk7XG4gICAgc2xvdENvbnRhaW5lckRpdi5zdHlsZS5vcGFjaXR5ID0gJzEnO1xuICAgIHNsb3RDb250YWluZXJEaXYuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVkoMHB4KSc7XG4gICAgYXdhaXQgZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApO1xuICAgIHNsb3RDb250YWluZXJEaXYuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdhbGwnO1xuICB9XG59XG4iLCAiZXhwb3J0ICogZnJvbSAnLi9kZWVzLWFjdGlvbmJhci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbmJhci5pbnRlcmZhY2VzLmpzJztcbiIsICJpbXBvcnQgeyBodG1sIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4gaHRtbGBcbiAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxuICAgIDxkZWVzLWJhZGdlIC50ZXh0PSR7J0RlZmF1bHQnfT48L2RlZXMtYmFkZ2U+XG4gICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsncHJpbWFyeSd9IC50ZXh0PSR7J1ByaW1hcnknfT48L2RlZXMtYmFkZ2U+XG4gICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsnc3VjY2Vzcyd9IC50ZXh0PSR7J1N1Y2Nlc3MnfT48L2RlZXMtYmFkZ2U+XG4gICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsnd2FybmluZyd9IC50ZXh0PSR7J1dhcm5pbmcnfT48L2RlZXMtYmFkZ2U+XG4gICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsnZXJyb3InfSAudGV4dD0keydFcnJvcid9PjwvZGVlcy1iYWRnZT5cbiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keydwcmltYXJ5J30gLnJvdW5kZWQ9JHt0cnVlfSAudGV4dD0keydSb3VuZGVkJ30+PC9kZWVzLWJhZGdlPlxuICA8L2Rpdj5cbmA7IiwgImltcG9ydCB7XG4gIERlZXNFbGVtZW50LFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG4gIGN1c3RvbUVsZW1lbnQsXG4gIGh0bWwsXG4gIHByb3BlcnR5LFxuICB0eXBlIENTU1Jlc3VsdCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuaW1wb3J0ICogYXMgZG9tdG9vbHMgZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1iYWRnZS5kZW1vLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLzAwdGhlbWUuanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWJhZGdlJzogRGVlc0JhZGdlO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWJhZGdlJylcbmV4cG9ydCBjbGFzcyBEZWVzQmFkZ2UgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciB0eXBlOiAnZGVmYXVsdCcgfCAncHJpbWFyeScgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZXJyb3InID0gJ2RlZmF1bHQnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciB0ZXh0OiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIHJvdW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGRvbXRvb2xzLmVsZW1lbnRCYXNpYy5zZXR1cCgpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC5iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMnB4IDhweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5iYWRnZS5yb3VuZGVkIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgIH1cblxuICAgICAgLmJhZGdlLmRlZmF1bHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y1ZjVmNScsICcjMzMzJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM2NjYnLCAnI2NjYycpfTtcbiAgICAgIH1cblxuICAgICAgLmJhZGdlLnByaW1hcnkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDA1MGI5O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmJhZGdlLnN1Y2Nlc3Mge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMmU3ZDMyO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmJhZGdlLndhcm5pbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWQ2YzAyO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmJhZGdlLmVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2U0MDAyYjtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZSAke3RoaXMudHlwZX0gJHt0aGlzLnJvdW5kZWQgPyAncm91bmRlZCcgOiAnJ31cIj5cbiAgICAgICAgJHt0aGlzLnRleHR9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59IiwgImltcG9ydCB7IGh0bWwsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiBodG1sYFxuICA8c3R5bGU+XG4gICAgLmRlbW9Db250YWluZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDMycHg7XG4gICAgICBwYWRkaW5nOiA0OHB4O1xuICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmOGY5ZmEnLCAnIzBhMGEwYScpfTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIH1cbiAgICBcbiAgICAuc2VjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMTgxODFiJyl9O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIH1cbiAgICBcbiAgICAuc2VjdGlvbi10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA5MDkwYicsICcjZmFmYWZhJyl9O1xuICAgIH1cbiAgICBcbiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MTcxN2EnLCAnI2ExYTFhYScpfTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgfVxuICA8L3N0eWxlPlxuICA8ZGl2IGNsYXNzPVwiZGVtb0NvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPk5vbi1TZWxlY3RhYmxlIENoaXBzPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1kZXNjcmlwdGlvblwiPkJhc2ljIGNoaXBzIHdpdGhvdXQgc2VsZWN0aW9uIGNhcGFiaWxpdHkuIFVzZSBmb3IgZGlzcGxheS1vbmx5IHRhZ3MuPC9kaXY+XG4gICAgICA8ZGVlcy1jaGlwc1xuICAgICAgICBzZWxlY3Rpb25Nb2RlPVwibm9uZVwiXG4gICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbXG4gICAgICAgICAgeyBrZXk6ICdzdGF0dXMnLCB2YWx1ZTogJ0FjdGl2ZScgfSxcbiAgICAgICAgICB7IGtleTogJ3RpZXInLCB2YWx1ZTogJ1ByZW1pdW0nIH0sXG4gICAgICAgICAgeyBrZXk6ICdyZWdpb24nLCB2YWx1ZTogJ0VVLVdlc3QnIH0sXG4gICAgICAgICAgeyBrZXk6ICd0eXBlJywgdmFsdWU6ICdFbnRlcnByaXNlJyB9LFxuICAgICAgICBdfVxuICAgICAgPjwvZGVlcy1jaGlwcz5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5TaW5nbGUgU2VsZWN0aW9uIENoaXBzPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1kZXNjcmlwdGlvblwiPkNsaWNrIHRvIHNlbGVjdCBvbmUgY2hpcCBhdCBhIHRpbWUuIFVzZWZ1bCBmb3IgZmlsdGVycyBhbmQgb3B0aW9ucy48L2Rpdj5cbiAgICAgIDxkZWVzLWNoaXBzXG4gICAgICAgIHNlbGVjdGlvbk1vZGU9XCJzaW5nbGVcIlxuICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W1xuICAgICAgICAgIHsga2V5OiAnYWxsJywgdmFsdWU6ICdBbGwgUHJvamVjdHMnIH0sXG4gICAgICAgICAgeyBrZXk6ICdhY3RpdmUnLCB2YWx1ZTogJ0FjdGl2ZScgfSxcbiAgICAgICAgICB7IGtleTogJ2FyY2hpdmVkJywgdmFsdWU6ICdBcmNoaXZlZCcgfSxcbiAgICAgICAgICB7IGtleTogJ2RyYWZ0cycsIHZhbHVlOiAnRHJhZnRzJyB9LFxuICAgICAgICBdfVxuICAgICAgPjwvZGVlcy1jaGlwcz5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5NdWx0aXBsZSBTZWxlY3Rpb24gQ2hpcHM8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWRlc2NyaXB0aW9uXCI+U2VsZWN0IG11bHRpcGxlIGNoaXBzIHNpbXVsdGFuZW91c2x5LiBHcmVhdCBmb3IgdGFnIHNlbGVjdGlvbi48L2Rpdj5cbiAgICAgIDxkZWVzLWNoaXBzXG4gICAgICAgIHNlbGVjdGlvbk1vZGU9XCJtdWx0aXBsZVwiXG4gICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbXG4gICAgICAgICAgeyBrZXk6ICdqcycsIHZhbHVlOiAnSmF2YVNjcmlwdCcgfSxcbiAgICAgICAgICB7IGtleTogJ3RzJywgdmFsdWU6ICdUeXBlU2NyaXB0JyB9LFxuICAgICAgICAgIHsga2V5OiAncmVhY3QnLCB2YWx1ZTogJ1JlYWN0JyB9LFxuICAgICAgICAgIHsga2V5OiAndnVlJywgdmFsdWU6ICdWdWUnIH0sXG4gICAgICAgICAgeyBrZXk6ICdhbmd1bGFyJywgdmFsdWU6ICdBbmd1bGFyJyB9LFxuICAgICAgICAgIHsga2V5OiAnbm9kZScsIHZhbHVlOiAnTm9kZS5qcycgfSxcbiAgICAgICAgXX1cbiAgICAgID48L2RlZXMtY2hpcHM+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+UmVtb3ZhYmxlIENoaXBzIHdpdGggS2V5czwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tZGVzY3JpcHRpb25cIj5DaGlwcyB3aXRoIHJlbW92ZSBidXR0b25zIGFuZCBrZXktdmFsdWUgcGFpcnMuIFBlcmZlY3QgZm9yIGR5bmFtaWMgbGlzdHMuPC9kaXY+XG4gICAgICA8ZGVlcy1jaGlwc1xuICAgICAgICBzZWxlY3Rpb25Nb2RlPVwic2luZ2xlXCJcbiAgICAgICAgY2hpcHNBcmVSZW1vdmFibGVcbiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1tcbiAgICAgICAgICB7IGtleTogJ2VudicsIHZhbHVlOiAnUHJvZHVjdGlvbicgfSxcbiAgICAgICAgICB7IGtleTogJ3ZlcnNpb24nLCB2YWx1ZTogJzIuNC4xJyB9LFxuICAgICAgICAgIHsga2V5OiAnYnJhbmNoJywgdmFsdWU6ICdtYWluJyB9LFxuICAgICAgICAgIHsga2V5OiAnYXV0aG9yJywgdmFsdWU6ICdKb2huIERvZScgfSxcbiAgICAgICAgXX1cbiAgICAgID48L2RlZXMtY2hpcHM+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+TWl4ZWQgQ29udGVudCBFeGFtcGxlPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1kZXNjcmlwdGlvblwiPkNvbWJpbmluZyBkaWZmZXJlbnQgY2hpcCB0eXBlcyBmb3IgY29tcGxleCBVSXMuPC9kaXY+XG4gICAgICA8ZGVlcy1jaGlwc1xuICAgICAgICBzZWxlY3Rpb25Nb2RlPVwibXVsdGlwbGVcIlxuICAgICAgICBjaGlwc0FyZVJlbW92YWJsZVxuICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W1xuICAgICAgICAgIHsga2V5OiAncHJpb3JpdHknLCB2YWx1ZTogJ0hpZ2gnIH0sXG4gICAgICAgICAgeyBrZXk6ICdzdGF0dXMnLCB2YWx1ZTogJ0luIFByb2dyZXNzJyB9LFxuICAgICAgICAgIHsga2V5OiAnYnVnJywgdmFsdWU6ICdCdWcnIH0sXG4gICAgICAgICAgeyBrZXk6ICdmZWF0dXJlJywgdmFsdWU6ICdGZWF0dXJlJyB9LFxuICAgICAgICAgIHsga2V5OiAnc3ByaW50JywgdmFsdWU6ICdTcHJpbnQgMjMnIH0sXG4gICAgICAgICAgeyBrZXk6ICdhc3NpZ25lZScsIHZhbHVlOiAnQWxpY2UnIH0sXG4gICAgICAgIF19XG4gICAgICA+PC9kZWVzLWNoaXBzPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbmA7XG4iLCAiaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgRGVlc0VsZW1lbnQsXG4gIHByb3BlcnR5LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBjc3NNYW5hZ2VyLFxuICBjc3MsXG4gIHR5cGUgQ1NTUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmltcG9ydCAqIGFzIGRvbXRvb2xzIGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtY2hpcHMuZGVtby5qcyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8wMHRoZW1lLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1jaGlwcyc6IERlZXNDaGlwcztcbiAgfVxufVxuXG50eXBlIFRhZyA9IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfTtcblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtY2hpcHMnKVxuZXhwb3J0IGNsYXNzIERlZXNDaGlwcyBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG5cbiAgQHByb3BlcnR5KClcbiAgYWNjZXNzb3Igc2VsZWN0aW9uTW9kZTogJ25vbmUnIHwgJ3NpbmdsZScgfCAnbXVsdGlwbGUnID0gJ3NpbmdsZSc7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9KVxuICBhY2Nlc3NvciBjaGlwc0FyZVJlbW92YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogQXJyYXksXG4gIH0pXG4gIGFjY2Vzc29yIHNlbGVjdGFibGVDaGlwczogVGFnW10gPSBbXTtcblxuICBAcHJvcGVydHkoKVxuICBhY2Nlc3NvciBzZWxlY3RlZENoaXA6IFRhZyA9IG51bGw7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBBcnJheSxcbiAgfSlcbiAgYWNjZXNzb3Igc2VsZWN0ZWRDaGlwczogVGFnW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cblxuICAgICAgLm1haW5ib3gge1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLmNoaXAge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y0ZjRmNScsICcjMjcyNzJhJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjM2YzZjQ2Jyl9O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICBwYWRkaW5nOiAwcHggMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgICB9XG5cbiAgICAgIC5jaGlwOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzNmM2Y0NicpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2QxZDVkYicsICcjNTI1MjViJyl9O1xuICAgICAgfVxuXG4gICAgICAuY2hpcDphY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xuICAgICAgfVxuXG4gICAgICAuY2hpcC5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyMzYjgyZjYnKX07XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzYjgyZjYnLCAnIzNiODJmNicpfTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB9XG5cbiAgICAgIC5jaGlwLnNlbGVjdGVkOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMyNTYzZWInLCAnIzI1NjNlYicpfTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzI1NjNlYicsICcjMjU2M2ViJyl9O1xuICAgICAgfVxuXG4gICAgICAuY2hpcEtleSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMDYpJywgJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKScpfTtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAgICAgICBwYWRkaW5nOiAwcHggOHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjYTFhMWFhJyl9O1xuICAgICAgfVxuXG4gICAgICAuY2hpcC5zZWxlY3RlZCAuY2hpcEtleSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgIH1cblxuICAgICAgZGVlcy1pY29uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyNhMWExYWEnKX07XG4gICAgICB9XG5cbiAgICAgIC5jaGlwLnNlbGVjdGVkIGRlZXMtaWNvbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gICAgICB9XG5cbiAgICAgIGRlZXMtaWNvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMSknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlZjQ0NDQnLCAnI2VmNDQ0NCcpfTtcbiAgICAgIH1cblxuICAgICAgLmNoaXAuc2VsZWN0ZWQgZGVlcy1pY29uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4gIHB1YmxpYyByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cIm1haW5ib3hcIj5cbiAgICAgICAgJHt0aGlzLnNlbGVjdGFibGVDaGlwcy5tYXAoXG4gICAgICAgICAgKGNoaXApID0+IGh0bWxgXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuc2VsZWN0Q2hpcChjaGlwKX1cbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwICR7dGhpcy5pc1NlbGVjdGVkKGNoaXApID8gJ3NlbGVjdGVkJyA6ICcnfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICR7Y2hpcC5rZXkgPyBodG1sYDxkaXYgY2xhc3M9XCJjaGlwS2V5XCI+JHtjaGlwLmtleX08L2Rpdj5gIDogaHRtbGBgfSAke2NoaXAudmFsdWV9XG4gICAgICAgICAgICAgICR7dGhpcy5jaGlwc0FyZVJlbW92YWJsZVxuICAgICAgICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvblxuICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keyhldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBwcmV2ZW50IHRoZSBzZWxlY3RDaGlwIGV2ZW50IGZyb20gYmVpbmcgdHJpZ2dlcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNoaXAoY2hpcCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAuaWNvbj0keydmYTp4bWFyayd9XG4gICAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgICA6IGh0bWxgYH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGBcbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlyc3RVcGRhdGVkKCkge1xuICAgIC8vIENvbXBvbmVudCBpbml0aWFsaXplZFxuICB9XG5cbiAgcHJpdmF0ZSBpc1NlbGVjdGVkKGNoaXA6IFRhZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZENoaXAgPyB0aGlzLmlzU2FtZUNoaXAodGhpcy5zZWxlY3RlZENoaXAsIGNoaXApIDogZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkQ2hpcHMuc29tZSgoc2VsZWN0ZWQpID0+IHRoaXMuaXNTYW1lQ2hpcChzZWxlY3RlZCwgY2hpcCkpO1xuICAgIH1cbiAgfVxuICBcbiAgcHJpdmF0ZSBpc1NhbWVDaGlwKGNoaXAxOiBUYWcsIGNoaXAyOiBUYWcpOiBib29sZWFuIHtcbiAgICAvLyBJZiBib3RoIGhhdmUga2V5cywgY29tcGFyZSBieSBrZXlcbiAgICBpZiAoY2hpcDEua2V5ICYmIGNoaXAyLmtleSkge1xuICAgICAgcmV0dXJuIGNoaXAxLmtleSA9PT0gY2hpcDIua2V5O1xuICAgIH1cbiAgICAvLyBPdGhlcndpc2UgY29tcGFyZSBieSB2YWx1ZSAoYW5kIGtleSBpZiBwcmVzZW50KVxuICAgIHJldHVybiBjaGlwMS52YWx1ZSA9PT0gY2hpcDIudmFsdWUgJiYgY2hpcDEua2V5ID09PSBjaGlwMi5rZXk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2VsZWN0Q2hpcChjaGlwOiBUYWcpIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbm9uZScpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZChjaGlwKSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2hpcCA9IG51bGw7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGlwcyA9IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoaXAgPSBjaGlwO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2hpcHMgPSBbY2hpcF07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQoY2hpcCkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoaXBzID0gdGhpcy5zZWxlY3RlZENoaXBzLmZpbHRlcigoc2VsZWN0ZWQpID0+ICF0aGlzLmlzU2FtZUNoaXAoc2VsZWN0ZWQsIGNoaXApKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGlwcyA9IFsuLi50aGlzLnNlbGVjdGVkQ2hpcHMsIGNoaXBdO1xuICAgICAgfVxuICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRDaGlwcyk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ2hpcChjaGlwVG9SZW1vdmU6IFRhZyk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSB0aGUgY2hpcCBmcm9tIHNlbGVjdGFibGVDaGlwc1xuICAgIHRoaXMuc2VsZWN0YWJsZUNoaXBzID0gdGhpcy5zZWxlY3RhYmxlQ2hpcHMuZmlsdGVyKChjaGlwKSA9PiAhdGhpcy5pc1NhbWVDaGlwKGNoaXAsIGNoaXBUb1JlbW92ZSkpO1xuXG4gICAgLy8gUmVtb3ZlIHRoZSBjaGlwIGZyb20gc2VsZWN0ZWRDaGlwcyBpZiBwcmVzZW50XG4gICAgdGhpcy5zZWxlY3RlZENoaXBzID0gdGhpcy5zZWxlY3RlZENoaXBzLmZpbHRlcigoY2hpcCkgPT4gIXRoaXMuaXNTYW1lQ2hpcChjaGlwLCBjaGlwVG9SZW1vdmUpKTtcblxuICAgIC8vIElmIHRoZSByZW1vdmVkIGNoaXAgd2FzIHRoZSBzZWxlY3RlZENoaXAsIHNldCBzZWxlY3RlZENoaXAgdG8gbnVsbFxuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2hpcCAmJiB0aGlzLmlzU2FtZUNoaXAodGhpcy5zZWxlY3RlZENoaXAsIGNoaXBUb1JlbW92ZSkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDaGlwID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGFuIHVwZGF0ZSB0byByZS1yZW5kZXIgdGhlIGNvbXBvbmVudFxuICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgaHRtbCwgY3NzLCBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB0eXBlIHsgRGVlc0Rhc2hib2FyZGdyaWQgfSBmcm9tICcuL2RlZXMtZGFzaGJvYXJkZ3JpZC5qcyc7XG5pbXBvcnQgJ0BkZXNpZ24uZXN0YXRlL2RlZXMtd2NjdG9vbHMvZGVtb3Rvb2xzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4ge1xuICByZXR1cm4gaHRtbGBcbiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyAoZWxlbWVudEFyZzogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGdyaWQgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJyNkYXNoYm9hcmRHcmlkJykgYXMgRGVlc0Rhc2hib2FyZGdyaWQ7XG5cbiAgICAgIGNvbnN0IHNlZWRXaWRnZXRzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdtZXRyaWNzMScsXG4gICAgICAgICAgeDogMCxcbiAgICAgICAgICB5OiAwLFxuICAgICAgICAgIHc6IDMsXG4gICAgICAgICAgaDogMixcbiAgICAgICAgICB0aXRsZTogJ1JldmVudWUnLFxuICAgICAgICAgIGljb246ICdsdWNpZGU6ZG9sbGFyU2lnbicsXG4gICAgICAgICAgY29udGVudDogaHRtbGBcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nOiAyMHB4O1wiPlxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAzMnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcIj4kMTI0LDU2MzwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiY29sb3I6ICMyMmM1NWU7IGZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4O1wiPlx1MjE5MSAxMi41JSBmcm9tIGxhc3QgbW9udGg8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ21ldHJpY3MyJyxcbiAgICAgICAgICB4OiAzLFxuICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgdzogMyxcbiAgICAgICAgICBoOiAyLFxuICAgICAgICAgIHRpdGxlOiAnVXNlcnMnLFxuICAgICAgICAgIGljb246ICdsdWNpZGU6dXNlcnMnLFxuICAgICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwicGFkZGluZzogMjBweDtcIj5cbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMzJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XCI+OCwyMzQ8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImNvbG9yOiAjM2I4MmY2OyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDtcIj5cdTIxOTEgNS4yJSBmcm9tIGxhc3Qgd2VlazwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnY2hhcnQxJyxcbiAgICAgICAgICB4OiA2LFxuICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgdzogNixcbiAgICAgICAgICBoOiA0LFxuICAgICAgICAgIHRpdGxlOiAnQW5hbHl0aWNzJyxcbiAgICAgICAgICBpY29uOiAnbHVjaWRlOmxpbmVDaGFydCcsXG4gICAgICAgICAgY29udGVudDogaHRtbGBcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nOiAyMHB4OyBoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1wiPlxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzcxNzE3YTtcIj5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTpsaW5lQ2hhcnQnfSBzdHlsZT1cImZvbnQtc2l6ZTogNDhweDsgbWFyZ2luLWJvdHRvbTogMTZweDtcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICA8ZGl2PkNoYXJ0IHZpc3VhbGl6YXRpb24gYXJlYTwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGAsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBncmlkLndpZGdldHMgPSBzZWVkV2lkZ2V0cy5tYXAod2lkZ2V0ID0+ICh7IC4uLndpZGdldCB9KSk7XG4gICAgICBncmlkLmNlbGxIZWlnaHQgPSA4MDtcbiAgICAgIGdyaWQubWFyZ2luID0geyB0b3A6IDEwLCByaWdodDogMTAsIGJvdHRvbTogMTAsIGxlZnQ6IDEwIH07XG4gICAgICBncmlkLmVuYWJsZUFuaW1hdGlvbiA9IHRydWU7XG4gICAgICBncmlkLnNob3dHcmlkTGluZXMgPSBmYWxzZTtcblxuICAgICAgY29uc3QgYmFzZUxheW91dCA9IGdyaWQuZ2V0TGF5b3V0KCkubWFwKGl0ZW0gPT4gKHsgLi4uaXRlbSB9KSk7XG4gICAgICBjb25zdCBtb2JpbGVMYXlvdXQgPSBncmlkLndpZGdldHMubWFwKCh3aWRnZXQsIGluZGV4KSA9PiAoe1xuICAgICAgICBpZDogd2lkZ2V0LmlkLFxuICAgICAgICB4OiAwLFxuICAgICAgICB5OiBpbmRleCA9PT0gMCA/IDAgOiBncmlkLndpZGdldHMuc2xpY2UoMCwgaW5kZXgpLnJlZHVjZSgoYWNjLCBwcmV2KSA9PiBhY2MgKyBwcmV2LmgsIDApLFxuICAgICAgICB3OiBncmlkLmNvbHVtbnMsXG4gICAgICAgIGg6IHdpZGdldC5oLFxuICAgICAgfSkpO1xuXG4gICAgICBncmlkLmxheW91dHMgPSB7XG4gICAgICAgIGJhc2U6IGJhc2VMYXlvdXQsXG4gICAgICAgIG1vYmlsZTogbW9iaWxlTGF5b3V0LFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc3RhdHVzRWwgPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJyNkYXNoYm9hcmRMYXlvdXRTdGF0dXMnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IHVwZGF0ZVN0YXR1cyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgbGF5b3V0ID0gZ3JpZC5nZXRMYXlvdXQoKTtcbiAgICAgICAgc3RhdHVzRWwudGV4dENvbnRlbnQgPSBgQWN0aXZlIGJyZWFrcG9pbnQ6ICR7Z3JpZC5hY3RpdmVCcmVha3BvaW50fSBcdTIwMjIgVGlsZXM6ICR7bGF5b3V0Lmxlbmd0aH1gO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgbWVkaWFRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiA3NjhweCknKTtcbiAgICAgIGNvbnN0IGhhbmRsZUJyZWFrcG9pbnQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IG1lZGlhUXVlcnkubWF0Y2hlcyA/ICdtb2JpbGUnIDogJ2Jhc2UnO1xuICAgICAgICBncmlkLmFwcGx5QnJlYWtwb2ludExheW91dCh0YXJnZXQpO1xuICAgICAgICB1cGRhdGVTdGF0dXMoKTtcbiAgICAgIH07XG4gICAgICBpZiAodHlwZW9mIG1lZGlhUXVlcnkuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBtZWRpYVF1ZXJ5LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGhhbmRsZUJyZWFrcG9pbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKG1lZGlhUXVlcnkgYXMgTWVkaWFRdWVyeUxpc3QgJiB7XG4gICAgICAgICAgYWRkTGlzdGVuZXI/OiAobGlzdGVuZXI6ICh0aGlzOiBNZWRpYVF1ZXJ5TGlzdCwgZXY6IE1lZGlhUXVlcnlMaXN0RXZlbnQpID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgICAgIH0pLmFkZExpc3RlbmVyPy4oaGFuZGxlQnJlYWtwb2ludCk7XG4gICAgICB9XG4gICAgICBoYW5kbGVCcmVha3BvaW50KCk7XG5cbiAgICAgIGxldCB3aWRnZXRDb3VudGVyID0gNDtcblxuICAgICAgY29uc3QgYnV0dG9ucyA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvckFsbCgnZGVlcy1idXR0b24nKTtcbiAgICAgIGJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4ge1xuICAgICAgICBjb25zdCB0ZXh0ID0gYnV0dG9uLnRleHRDb250ZW50Py50cmltKCk7XG5cbiAgICAgICAgc3dpdGNoICh0ZXh0KSB7XG4gICAgICAgICAgY2FzZSAnVG9nZ2xlIEFuaW1hdGlvbic6XG4gICAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgIGdyaWQuZW5hYmxlQW5pbWF0aW9uID0gIWdyaWQuZW5hYmxlQW5pbWF0aW9uO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdUb2dnbGUgR3JpZCBMaW5lcyc6XG4gICAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgIGdyaWQuc2hvd0dyaWRMaW5lcyA9ICFncmlkLnNob3dHcmlkTGluZXM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0FkZCBXaWRnZXQnOlxuICAgICAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBuZXdXaWRnZXQgPSB7XG4gICAgICAgICAgICAgICAgaWQ6IGB3aWRnZXQke3dpZGdldENvdW50ZXIrK31gLFxuICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgeTogMCxcbiAgICAgICAgICAgICAgICB3OiAzLFxuICAgICAgICAgICAgICAgIGg6IDIsXG4gICAgICAgICAgICAgICAgYXV0b1Bvc2l0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBgV2lkZ2V0ICR7d2lkZ2V0Q291bnRlciAtIDF9YCxcbiAgICAgICAgICAgICAgICBpY29uOiAnbHVjaWRlOnBhY2thZ2UnLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwicGFkZGluZzogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyO1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiY29sb3I6ICM3MTcxN2E7XCI+TmV3IHdpZGdldCBjb250ZW50PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiA4cHg7IGZvbnQtc2l6ZTogMjRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XCI+JHtNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICAgICAgIE1hdGgucmFuZG9tKCkgKiAxMDAwLFxuICAgICAgICAgICAgICAgICAgICApfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgYCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgZ3JpZC5hZGRXaWRnZXQobmV3V2lkZ2V0LCB0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnQ29tcGFjdCBHcmlkJzpcbiAgICAgICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgZ3JpZC5jb21wYWN0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ1RvZ2dsZSBFZGl0IE1vZGUnOlxuICAgICAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICBncmlkLmVkaXRhYmxlID0gIWdyaWQuZWRpdGFibGU7XG4gICAgICAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9IGdyaWQuZWRpdGFibGUgPyAnTG9jayBHcmlkJyA6ICdVbmxvY2sgR3JpZCc7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ1Jlc2V0IExheW91dCc6XG4gICAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgIGdyaWQuYXBwbHlCcmVha3BvaW50TGF5b3V0KGdyaWQuYWN0aXZlQnJlYWtwb2ludCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIEVuaGFuY2VkIGxvZ2dpbmcgZm9yIHJlZmxvdyBldmVudHNcbiAgICAgIGxldCBsYXN0UGxhY2Vob2xkZXJQb3NpdGlvbiA9IG51bGw7XG4gICAgICBsZXQgbW92ZUV2ZW50Q291bnRlciA9IDA7XG5cbiAgICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBsb2cgZ3JpZCBzdGF0ZVxuICAgICAgY29uc3QgbG9nR3JpZFN0YXRlID0gKGV2ZW50TmFtZTogc3RyaW5nLCBkZXRhaWxzPzogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGxheW91dCA9IGdyaWQuZ2V0TGF5b3V0KCk7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXAoYFx1RDgzRFx1REQwNCAke2V2ZW50TmFtZX0gW0V2ZW50ICMkeysrbW92ZUV2ZW50Q291bnRlcn1dYCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdUaW1lc3RhbXA6JywgbmV3IERhdGUoKS50b0lTT1N0cmluZygpKTtcbiAgICAgICAgY29uc29sZS5sb2coJ0dyaWQgQ29uZmlndXJhdGlvbjonLCB7XG4gICAgICAgICAgY29sdW1uczogZ3JpZC5jb2x1bW5zLFxuICAgICAgICAgIGNlbGxIZWlnaHQ6IGdyaWQuY2VsbEhlaWdodCxcbiAgICAgICAgICBtYXJnaW46IGdyaWQubWFyZ2luLFxuICAgICAgICAgIGVkaXRhYmxlOiBncmlkLmVkaXRhYmxlLFxuICAgICAgICAgIGFjdGl2ZUJyZWFrcG9pbnQ6IGdyaWQuYWN0aXZlQnJlYWtwb2ludFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc29sZS5sb2coJ0N1cnJlbnQgTGF5b3V0OicsIGxheW91dCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdXaWRnZXQgQ291bnQ6JywgbGF5b3V0Lmxlbmd0aCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdHcmlkIEJvdW5kczonLCB7XG4gICAgICAgICAgdG90YWxXaWRnZXRzOiBncmlkLndpZGdldHMubGVuZ3RoLFxuICAgICAgICAgIG1heFk6IE1hdGgubWF4KC4uLmxheW91dC5tYXAodyA9PiB3LnkgKyB3LmgpKSxcbiAgICAgICAgICBvY2N1cGllZDogbGF5b3V0Lm1hcCh3ID0+IGAke3cuaWR9OiAoJHt3Lnh9LCR7dy55fSkgJHt3Lnd9eCR7dy5ofWApLmpvaW4oJywgJylcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkZXRhaWxzKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0V2ZW50IERldGFpbHM6JywgZGV0YWlscyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5ncm91cEVuZCgpO1xuICAgICAgfTtcblxuICAgICAgLy8gTW9uaXRvciBwbGFjZWhvbGRlciBwb3NpdGlvbiBjaGFuZ2VzIHVzaW5nIE11dGF0aW9uT2JzZXJ2ZXJcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gZ3JpZC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcucGxhY2Vob2xkZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudFBvc2l0aW9uID0ge1xuICAgICAgICAgICAgbGVmdDogcGxhY2Vob2xkZXIuc3R5bGUubGVmdCxcbiAgICAgICAgICAgIHRvcDogcGxhY2Vob2xkZXIuc3R5bGUudG9wLFxuICAgICAgICAgICAgd2lkdGg6IHBsYWNlaG9sZGVyLnN0eWxlLndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBwbGFjZWhvbGRlci5zdHlsZS5oZWlnaHRcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGN1cnJlbnRQb3NpdGlvbikgIT09IEpTT04uc3RyaW5naWZ5KGxhc3RQbGFjZWhvbGRlclBvc2l0aW9uKSkge1xuICAgICAgICAgICAgY29uc29sZS5ncm91cCgnXHVEODNEXHVEQ0NEIFBsYWNlaG9sZGVyIFBvc2l0aW9uIENoYW5nZWQnKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQcmV2aW91czonLCBsYXN0UGxhY2Vob2xkZXJQb3NpdGlvbik7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQ3VycmVudDonLCBjdXJyZW50UG9zaXRpb24pO1xuXG4gICAgICAgICAgICAvLyBFeHRyYWN0IGdyaWQgY29vcmRpbmF0ZXMgZnJvbSBzdHlsZVxuICAgICAgICAgICAgY29uc3QgZ3JpZEluZm8gPSBncmlkLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5ncmlkLWNvbnRhaW5lcicpO1xuICAgICAgICAgICAgaWYgKGdyaWRJbmZvKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdHcmlkIENvbnRhaW5lciBEaW1lbnNpb25zOicsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogZ3JpZEluZm8uY2xpZW50V2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBncmlkSW5mby5jbGllbnRIZWlnaHRcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zb2xlLmdyb3VwRW5kKCk7XG4gICAgICAgICAgICBsYXN0UGxhY2Vob2xkZXJQb3NpdGlvbiA9IGN1cnJlbnRQb3NpdGlvbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBTdGFydCBvYnNlcnZpbmcgdGhlIHNoYWRvdyBET00gZm9yIHBsYWNlaG9sZGVyIGNoYW5nZXNcbiAgICAgIGlmIChncmlkLnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgcGxhY2Vob2xkZXJPYnNlcnZlci5vYnNlcnZlKGdyaWQuc2hhZG93Um9vdCwge1xuICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ3N0eWxlJ11cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIExvZyBpbml0aWFsIHN0YXRlXG4gICAgICBsb2dHcmlkU3RhdGUoJ0luaXRpYWwgR3JpZCBTdGF0ZScpO1xuXG4gICAgICBncmlkLmFkZEV2ZW50TGlzdGVuZXIoJ3dpZGdldC1tb3ZlJywgKGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgIGxvZ0dyaWRTdGF0ZSgnV2lkZ2V0IE1vdmUnLCB7XG4gICAgICAgICAgd2lkZ2V0OiBlLmRldGFpbC53aWRnZXQsXG4gICAgICAgICAgZGlzcGxhY2VkOiBlLmRldGFpbC5kaXNwbGFjZWQsXG4gICAgICAgICAgc3dhcHBlZFdpdGg6IGUuZGV0YWlsLnN3YXBwZWRXaXRoXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGdyaWQuYWRkRXZlbnRMaXN0ZW5lcignd2lkZ2V0LXJlc2l6ZScsIChlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICBsb2dHcmlkU3RhdGUoJ1dpZGdldCBSZXNpemUnLCB7XG4gICAgICAgICAgd2lkZ2V0OiBlLmRldGFpbC53aWRnZXQsXG4gICAgICAgICAgZGlzcGxhY2VkOiBlLmRldGFpbC5kaXNwbGFjZWQsXG4gICAgICAgICAgc3dhcHBlZFdpdGg6IGUuZGV0YWlsLnN3YXBwZWRXaXRoXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGdyaWQuYWRkRXZlbnRMaXN0ZW5lcignd2lkZ2V0LXJlbW92ZScsIChlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICBsb2dHcmlkU3RhdGUoJ1dpZGdldCBSZW1vdmUnLCB7XG4gICAgICAgICAgcmVtb3ZlZFdpZGdldDogZS5kZXRhaWwud2lkZ2V0XG4gICAgICAgIH0pO1xuICAgICAgICB1cGRhdGVTdGF0dXMoKTtcbiAgICAgIH0pO1xuXG4gICAgICBncmlkLmFkZEV2ZW50TGlzdGVuZXIoJ2xheW91dC1jaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgIGxvZ0dyaWRTdGF0ZSgnTGF5b3V0IENoYW5nZScpO1xuICAgICAgICB1cGRhdGVTdGF0dXMoKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBNb25pdG9yIGR1cmluZyBkcmFnL3Jlc2l6ZSBvcGVyYXRpb25zIHVzaW5nIHBvaW50ZXIgZXZlbnRzXG4gICAgICBncmlkLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgKGU6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBpc0hlYWRlciA9IChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnLndpZGdldC1oZWFkZXInKTtcbiAgICAgICAgY29uc3QgaXNSZXNpemVIYW5kbGUgPSAoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5yZXNpemUtaGFuZGxlJyk7XG5cbiAgICAgICAgaWYgKGlzSGVhZGVyIHx8IGlzUmVzaXplSGFuZGxlKSB7XG4gICAgICAgICAgY29uc29sZS5ncm91cChgXHVEODNDXHVERkFGIEludGVyYWN0aW9uIFN0YXJ0ZWQ6ICR7aXNIZWFkZXIgPyAnRHJhZycgOiAnUmVzaXplJ31gKTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnVGFyZ2V0IFdpZGdldDonLCAoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy53aWRnZXQnKT8uZ2V0QXR0cmlidXRlKCdkYXRhLXdpZGdldC1pZCcpKTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUG9pbnRlciBQb3NpdGlvbjonLCB7IHg6IGUuY2xpZW50WCwgeTogZS5jbGllbnRZIH0pO1xuICAgICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcblxuICAgICAgICAgIC8vIFRyYWNrIHBvaW50ZXIgbW92ZSBkdXJpbmcgaW50ZXJhY3Rpb25cbiAgICAgICAgICBjb25zdCBoYW5kbGVQb2ludGVyTW92ZSA9IChtb3ZlRXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgd2lkZ2V0ID0gKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCcud2lkZ2V0Jyk7XG4gICAgICAgICAgICBpZiAod2lkZ2V0KSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBcdTIxOTRcdUZFMEYgUG9pbnRlciBNb3ZlOmAsIHtcbiAgICAgICAgICAgICAgICB3aWRnZXRJZDogd2lkZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS13aWRnZXQtaWQnKSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogeyB4OiBtb3ZlRXZlbnQuY2xpZW50WCwgeTogbW92ZUV2ZW50LmNsaWVudFkgfSxcbiAgICAgICAgICAgICAgICBkZWx0YToge1xuICAgICAgICAgICAgICAgICAgeDogbW92ZUV2ZW50LmNsaWVudFggLSBlLmNsaWVudFgsXG4gICAgICAgICAgICAgICAgICB5OiBtb3ZlRXZlbnQuY2xpZW50WSAtIGUuY2xpZW50WVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJVcCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZ3JvdXAoJ1x1RDgzQ1x1REZDMSBJbnRlcmFjdGlvbiBFbmRlZCcpO1xuICAgICAgICAgICAgbG9nR3JpZFN0YXRlKCdGaW5hbCBTdGF0ZSBBZnRlciBJbnRlcmFjdGlvbicpO1xuICAgICAgICAgICAgY29uc29sZS5ncm91cEVuZCgpO1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBoYW5kbGVQb2ludGVyTW92ZSk7XG4gICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBoYW5kbGVQb2ludGVyVXApO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybW92ZScsIGhhbmRsZVBvaW50ZXJNb3ZlKTtcbiAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBoYW5kbGVQb2ludGVyVXApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gTG9nIHdoZW4gd2lkZ2V0cyBhcmUgYWRkZWRcbiAgICAgIGNvbnN0IG9yaWdpbmFsQWRkV2lkZ2V0ID0gZ3JpZC5hZGRXaWRnZXQuYmluZChncmlkKTtcbiAgICAgIGdyaWQuYWRkV2lkZ2V0ID0gKHdpZGdldDogYW55LCBhdXRvUG9zaXRpb24/OiBib29sZWFuKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXAoJ1x1Mjc5NSBBZGRpbmcgV2lkZ2V0Jyk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdOZXcgV2lkZ2V0OicsIHdpZGdldCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdBdXRvIFBvc2l0aW9uOicsIGF1dG9Qb3NpdGlvbik7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG9yaWdpbmFsQWRkV2lkZ2V0KHdpZGdldCwgYXV0b1Bvc2l0aW9uKTtcbiAgICAgICAgbG9nR3JpZFN0YXRlKCdBZnRlciBXaWRnZXQgQWRkZWQnKTtcbiAgICAgICAgY29uc29sZS5ncm91cEVuZCgpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcblxuICAgICAgLy8gTG9nIGNvbXBhY3Qgb3BlcmF0aW9uc1xuICAgICAgY29uc3Qgb3JpZ2luYWxDb21wYWN0ID0gZ3JpZC5jb21wYWN0LmJpbmQoZ3JpZCk7XG4gICAgICBncmlkLmNvbXBhY3QgPSAoZGlyZWN0aW9uPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXAoJ1x1RDgzRFx1REREQ1x1RkUwRiBDb21wYWN0aW5nIEdyaWQnKTtcbiAgICAgICAgY29uc29sZS5sb2coJ0RpcmVjdGlvbjonLCBkaXJlY3Rpb24gfHwgJ3ZlcnRpY2FsJyk7XG4gICAgICAgIGxvZ0dyaWRTdGF0ZSgnQmVmb3JlIENvbXBhY3QnKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gb3JpZ2luYWxDb21wYWN0KGRpcmVjdGlvbik7XG4gICAgICAgIGxvZ0dyaWRTdGF0ZSgnQWZ0ZXIgQ29tcGFjdCcpO1xuICAgICAgICBjb25zb2xlLmdyb3VwRW5kKCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuXG4gICAgICB1cGRhdGVTdGF0dXMoKTtcbiAgICB9fT5cbiAgICAgIDxzdHlsZT5cbiAgICAgICAgJHtjc3NgXG4gICAgICAgICAgLmRlbW9Cb3gge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmNGY0ZjUnLCAnIzA5MDkwYicpfTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogNDBweDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuZGVtby1jb250cm9scyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5kZW1vLWNvbnRyb2xzIGRlZXMtYnV0dG9uIHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5ncmlkLWNvbnRhaW5lci13cmFwcGVyIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA2MDBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuaW5mbyB7XG4gICAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MTcxN2EnLCAnIzcxNzE3YScpfTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogNnB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICNkYXNoYm9hcmRMYXlvdXRTdGF0dXMge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzNiODJmNicsICcjNjBhNWZhJyl9O1xuICAgICAgICAgIH1cbiAgICAgICAgYH1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtb0JveFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVtby1jb250cm9sc1wiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD1cIkFuaW1hdGlvbjpcIj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgQW5pbWF0aW9uPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPlxuXG4gICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPVwiRGlzcGxheTpcIj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgR3JpZCBMaW5lczwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD5cblxuICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD1cIkFjdGlvbnM6XCI+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIFdpZGdldDwvZGVlcy1idXR0b24+XG4gICAgICAgICAgICA8ZGVlcy1idXR0b24+Q29tcGFjdCBHcmlkPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXNldCBMYXlvdXQ8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+XG5cbiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9XCJNb2RlOlwiPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZSBFZGl0IE1vZGU8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLWNvbnRhaW5lci13cmFwcGVyXCI+XG4gICAgICAgICAgPGRlZXMtZGFzaGJvYXJkZ3JpZCBpZD1cImRhc2hib2FyZEdyaWRcIj48L2RlZXMtZGFzaGJvYXJkZ3JpZD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImluZm9cIj5cbiAgICAgICAgICA8ZGl2PkRyYWcgdG8gcmVwb3NpdGlvbiwgcmVzaXplIGZyb20gaGFuZGxlcywgb3IgcmlnaHQtY2xpY2sgYSBoZWFkZXIgdG8gZGVsZXRlIGEgdGlsZS48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGlkPVwiZGFzaGJvYXJkTGF5b3V0U3RhdHVzXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kZWVzLWRlbW93cmFwcGVyPlxuICBgO1xufTtcbiIsICJpbXBvcnQgeyBjc3MsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgZGFzaGJvYXJkR3JpZFN0eWxlcyA9IFtcbiAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICBjc3NgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgfVxuXG4gICAgICAuZ3JpZC13aWRnZXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpbGwtY2hhbmdlOiBhdXRvO1xuICAgICAgfVxuICAgICAgXG4gICAgICA6aG9zdChbZW5hYmxlYW5pbWF0aW9uXSkgLmdyaWQtd2lkZ2V0IHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgIH1cblxuICAgICAgLmdyaWQtd2lkZ2V0LmRyYWdnaW5nIHtcbiAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZ3JpZC13aWRnZXQucGxhY2Vob2xkZXIge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLmdyaWQtd2lkZ2V0LnBsYWNlaG9sZGVyIC53aWRnZXQtY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKScsICdyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKScpfTtcbiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyMzYjgyZjYnKX07XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLXdpZGdldC5yZXNpemluZyB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgLndpZGdldC1jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwOTA5MGInKX07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMyNzI3MmEnKX07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYm94LXNoYWRvdzogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoXG4gICAgICAgICAgJzAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSknLFxuICAgICAgICAgICcwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpJ1xuICAgICAgICApfTtcbiAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLXdpZGdldDpob3ZlciAud2lkZ2V0LWNvbnRlbnQge1xuICAgICAgICBib3gtc2hhZG93OiAke2Nzc01hbmFnZXIuYmRUaGVtZShcbiAgICAgICAgICAnMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpJyxcbiAgICAgICAgICAnMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCknXG4gICAgICAgICl9O1xuICAgICAgfVxuXG4gICAgICAuZ3JpZC13aWRnZXQuZHJhZ2dpbmcgLndpZGdldC1jb250ZW50IHtcbiAgICAgICAgYm94LXNoYWRvdzogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoXG4gICAgICAgICAgJzAgMTZweCA0OHB4IHJnYmEoMCwgMCwgMCwgMC4yNSknLFxuICAgICAgICAgICcwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuNiknXG4gICAgICAgICl9O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgICAgfVxuXG4gICAgICAud2lkZ2V0LWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMyNzI3MmEnKX07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA5MDkwYicsICcjZmFmYWZhJyl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y5ZmFmYicsICcjMGEwYTBhJyl9O1xuICAgICAgICBjdXJzb3I6IGdyYWI7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgfVxuICAgICAgXG4gICAgICAud2lkZ2V0LWhlYWRlcjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjRmNGY1JywgJyMxODE4MWInKX07XG4gICAgICB9XG4gICAgICBcbiAgICAgIC53aWRnZXQtaGVhZGVyOmFjdGl2ZSB7XG4gICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgICB9XG5cbiAgICAgIC53aWRnZXQtaGVhZGVyLmxvY2tlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLndpZGdldC1oZWFkZXIubG9ja2VkOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmOWZhZmInLCAnIzBhMGEwYScpfTtcbiAgICAgIH1cblxuICAgICAgLndpZGdldC1oZWFkZXIgZGVlcy1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MTcxN2EnLCAnIzcxNzE3YScpfTtcbiAgICAgIH1cblxuICAgICAgLndpZGdldC1ib2R5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgIH1cblxuICAgICAgLndpZGdldC1ib2R5Lmhhcy1oZWFkZXIge1xuICAgICAgICB0b3A6IDQ1cHg7XG4gICAgICB9XG5cbiAgICAgIC5yZXNpemUtaGFuZGxlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICB9XG5cbiAgICAgIC5yZXNpemUtaGFuZGxlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzYjgyZjYnLCAnIzNiODJmNicpfTtcbiAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgfVxuXG4gICAgICAucmVzaXplLWhhbmRsZS1lIHtcbiAgICAgICAgY3Vyc29yOiBldy1yZXNpemU7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICByaWdodDogLTZweDtcbiAgICAgICAgdG9wOiAxMCU7XG4gICAgICAgIGhlaWdodDogODAlO1xuICAgICAgfVxuXG4gICAgICAucmVzaXplLWhhbmRsZS1zIHtcbiAgICAgICAgY3Vyc29yOiBucy1yZXNpemU7XG4gICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgYm90dG9tOiAtNnB4O1xuICAgICAgICBsZWZ0OiAxMCU7XG4gICAgICB9XG5cbiAgICAgIC5yZXNpemUtaGFuZGxlLXNlIHtcbiAgICAgICAgY3Vyc29yOiBzZS1yZXNpemU7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHJpZ2h0OiAtMnB4O1xuICAgICAgICBib3R0b206IC0ycHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgICAgfVxuICAgICAgXG4gICAgICAucmVzaXplLWhhbmRsZS1zZTo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogNHB4O1xuICAgICAgICBib3R0b206IDRweDtcbiAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyM3MTcxN2EnKX07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjNzE3MTdhJyl9O1xuICAgICAgfVxuXG4gICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLnJlc2l6ZS1oYW5kbGUtc2Uge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG5cbiAgICAgIC5yZXNpemUtaGFuZGxlLXNlOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgXG4gICAgICAucmVzaXplLWhhbmRsZS1zZTpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyMzYjgyZjYnKX07XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzNiODJmNicsICcjM2I4MmY2Jyl9O1xuICAgICAgICBvcGFjaXR5OiAwLjE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyMzYjgyZjYnKX07XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuZW1wdHktc3RhdGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyM3MTcxN2EnKX07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMzJweDtcbiAgICAgIH1cblxuICAgICAgLmVtcHR5LXN0YXRlIGRlZXMtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuZ3JpZC1saW5lcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5ncmlkLWxpbmUtdmVydGljYWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5ncmlkLWxpbmUtaG9yaXpvbnRhbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICB9XG4gIGAsXG5dO1xuIiwgImltcG9ydCB0eXBlIHtcbiAgRGFzaGJvYXJkUmVzb2x2ZWRNYXJnaW5zLFxuICBEYXNoYm9hcmRNYXJnaW4sXG4gIERhc2hib2FyZFdpZGdldCxcbiAgRGFzaGJvYXJkTGF5b3V0SXRlbSxcbiAgR3JpZENlbGxNZXRyaWNzLFxuICBMYXlvdXREaXJlY3Rpb24sXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVJHSU4gPSAxMDtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVNYXJnaW5zID0gKG1hcmdpbjogRGFzaGJvYXJkTWFyZ2luKTogRGFzaGJvYXJkUmVzb2x2ZWRNYXJnaW5zID0+IHtcbiAgaWYgKHR5cGVvZiBtYXJnaW4gPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhvcml6b250YWw6IG1hcmdpbixcbiAgICAgIHZlcnRpY2FsOiBtYXJnaW4sXG4gICAgICB0b3A6IG1hcmdpbixcbiAgICAgIHJpZ2h0OiBtYXJnaW4sXG4gICAgICBib3R0b206IG1hcmdpbixcbiAgICAgIGxlZnQ6IG1hcmdpbixcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgcmVzb2x2ZWQgPSB7XG4gICAgdG9wOiBtYXJnaW4udG9wID8/IERFRkFVTFRfTUFSR0lOLFxuICAgIHJpZ2h0OiBtYXJnaW4ucmlnaHQgPz8gREVGQVVMVF9NQVJHSU4sXG4gICAgYm90dG9tOiBtYXJnaW4uYm90dG9tID8/IERFRkFVTFRfTUFSR0lOLFxuICAgIGxlZnQ6IG1hcmdpbi5sZWZ0ID8/IERFRkFVTFRfTUFSR0lOLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgLi4ucmVzb2x2ZWQsXG4gICAgaG9yaXpvbnRhbDogKHJlc29sdmVkLmxlZnQgKyByZXNvbHZlZC5yaWdodCkgLyAyLFxuICAgIHZlcnRpY2FsOiAocmVzb2x2ZWQudG9wICsgcmVzb2x2ZWQuYm90dG9tKSAvIDIsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY2FsY3VsYXRlQ2VsbE1ldHJpY3MgPSAoXG4gIGNvbnRhaW5lcldpZHRoOiBudW1iZXIsXG4gIGNvbHVtbnM6IG51bWJlcixcbiAgbWFyZ2luczogRGFzaGJvYXJkUmVzb2x2ZWRNYXJnaW5zLFxuICBjZWxsSGVpZ2h0OiBudW1iZXIsXG4gIGNlbGxIZWlnaHRVbml0OiBzdHJpbmcsXG4pOiBHcmlkQ2VsbE1ldHJpY3MgPT4ge1xuICBjb25zdCB0b3RhbE1hcmdpbldpZHRoID0gbWFyZ2lucy5ob3Jpem9udGFsICogKGNvbHVtbnMgKyAxKTtcbiAgY29uc3QgYXZhaWxhYmxlV2lkdGggPSBNYXRoLm1heChjb250YWluZXJXaWR0aCAtIHRvdGFsTWFyZ2luV2lkdGgsIDApO1xuICBjb25zdCBjZWxsV2lkdGhQeCA9IGNvbHVtbnMgPiAwID8gYXZhaWxhYmxlV2lkdGggLyBjb2x1bW5zIDogMDtcbiAgY29uc3QgY2VsbEhlaWdodFB4ID0gY2VsbEhlaWdodFVuaXQgPT09ICdhdXRvJyA/IGNlbGxXaWR0aFB4IDogY2VsbEhlaWdodDtcblxuICByZXR1cm4ge1xuICAgIGNvbnRhaW5lcldpZHRoLFxuICAgIGNlbGxXaWR0aFB4LFxuICAgIG1hcmdpbkhvcml6b250YWxQeDogbWFyZ2lucy5ob3Jpem9udGFsLFxuICAgIGNlbGxIZWlnaHRQeCxcbiAgICBtYXJnaW5WZXJ0aWNhbFB4OiBtYXJnaW5zLnZlcnRpY2FsLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZUdyaWRIZWlnaHQgPSAoXG4gIHdpZGdldHM6IERhc2hib2FyZFdpZGdldFtdLFxuICBtYXJnaW5zOiBEYXNoYm9hcmRSZXNvbHZlZE1hcmdpbnMsXG4gIGNlbGxIZWlnaHQ6IG51bWJlcixcbik6IG51bWJlciA9PiB7XG4gIGlmICh3aWRnZXRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG4gIGNvbnN0IG1heFkgPSBNYXRoLm1heCguLi53aWRnZXRzLm1hcCh3aWRnZXQgPT4gd2lkZ2V0LnkgKyB3aWRnZXQuaCksIDApO1xuICByZXR1cm4gbWF4WSAqIGNlbGxIZWlnaHQgKyAobWF4WSArIDEpICogbWFyZ2lucy52ZXJ0aWNhbDtcbn07XG5cbmNvbnN0IG92ZXJsYXBzID0gKFxuICB3aWRnZXQ6IERhc2hib2FyZFdpZGdldCxcbiAgeDogbnVtYmVyLFxuICB5OiBudW1iZXIsXG4gIHc6IG51bWJlcixcbiAgaDogbnVtYmVyLFxuKSA9PiB4IDwgd2lkZ2V0LnggKyB3aWRnZXQudyAmJiB4ICsgdyA+IHdpZGdldC54ICYmIHkgPCB3aWRnZXQueSArIHdpZGdldC5oICYmIHkgKyBoID4gd2lkZ2V0Lnk7XG5cbmV4cG9ydCBjb25zdCBjb2xsZWN0Q29sbGlzaW9ucyA9IChcbiAgd2lkZ2V0czogRGFzaGJvYXJkV2lkZ2V0W10sXG4gIHRhcmdldDogRGFzaGJvYXJkV2lkZ2V0LFxuICBuZXh0WDogbnVtYmVyLFxuICBuZXh0WTogbnVtYmVyLFxuICBuZXh0VzogbnVtYmVyID0gdGFyZ2V0LncsXG4gIG5leHRIOiBudW1iZXIgPSB0YXJnZXQuaCxcbik6IERhc2hib2FyZFdpZGdldFtdID0+IHtcbiAgcmV0dXJuIHdpZGdldHMuZmlsdGVyKHdpZGdldCA9PiB7XG4gICAgaWYgKHdpZGdldC5pZCA9PT0gdGFyZ2V0LmlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIG92ZXJsYXBzKHdpZGdldCwgbmV4dFgsIG5leHRZLCBuZXh0VywgbmV4dEgpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjaGVja0NvbGxpc2lvbiA9IChcbiAgd2lkZ2V0czogRGFzaGJvYXJkV2lkZ2V0W10sXG4gIHRhcmdldDogRGFzaGJvYXJkV2lkZ2V0LFxuICBuZXh0WDogbnVtYmVyLFxuICBuZXh0WTogbnVtYmVyLFxuKTogYm9vbGVhbiA9PiBjb2xsZWN0Q29sbGlzaW9ucyh3aWRnZXRzLCB0YXJnZXQsIG5leHRYLCBuZXh0WSkubGVuZ3RoID4gMDtcblxuZXhwb3J0IGNvbnN0IGNsb25lV2lkZ2V0ID0gKHdpZGdldDogRGFzaGJvYXJkV2lkZ2V0KTogRGFzaGJvYXJkV2lkZ2V0ID0+ICh7IC4uLndpZGdldCB9KTtcblxuZXhwb3J0IGNvbnN0IGNsb25lV2lkZ2V0cyA9ICh3aWRnZXRzOiBEYXNoYm9hcmRXaWRnZXRbXSk6IERhc2hib2FyZFdpZGdldFtdID0+IHdpZGdldHMubWFwKGNsb25lV2lkZ2V0KTtcblxuZXhwb3J0IGNvbnN0IGZpbmRBdmFpbGFibGVQb3NpdGlvbiA9IChcbiAgd2lkZ2V0czogRGFzaGJvYXJkV2lkZ2V0W10sXG4gIHdpZHRoOiBudW1iZXIsXG4gIGhlaWdodDogbnVtYmVyLFxuICBjb2x1bW5zOiBudW1iZXIsXG4pOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gPT4ge1xuICBmb3IgKGxldCB5ID0gMDsgeSA8IDIwMDsgeSsrKSB7XG4gICAgZm9yIChsZXQgeCA9IDA7IHggPD0gY29sdW1ucyAtIHdpZHRoOyB4KyspIHtcbiAgICAgIGNvbnN0IGlzRnJlZSA9ICF3aWRnZXRzLnNvbWUod2lkZ2V0ID0+IG92ZXJsYXBzKHdpZGdldCwgeCwgeSwgd2lkdGgsIGhlaWdodCkpO1xuICAgICAgaWYgKGlzRnJlZSkge1xuICAgICAgICByZXR1cm4geyB4LCB5IH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbWF4WSA9IHdpZGdldHMucmVkdWNlKChhY2MsIHdpZGdldCkgPT4gTWF0aC5tYXgoYWNjLCB3aWRnZXQueSArIHdpZGdldC5oKSwgMCk7XG4gIHJldHVybiB7IHg6IDAsIHk6IG1heFkgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2VtZW50UmVzdWx0IHtcbiAgd2lkZ2V0czogRGFzaGJvYXJkV2lkZ2V0W107XG4gIG1vdmVkV2lkZ2V0czogc3RyaW5nW107XG4gIHN3YXBwZWRXaXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVdpZGdldFBsYWNlbWVudCA9IChcbiAgd2lkZ2V0czogRGFzaGJvYXJkV2lkZ2V0W10sXG4gIHdpZGdldElkOiBzdHJpbmcsXG4gIG5leHQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHc/OiBudW1iZXI7IGg/OiBudW1iZXIgfSxcbiAgY29sdW1uczogbnVtYmVyLFxuICBwcmV2aW91c1Bvc2l0aW9uPzogRGFzaGJvYXJkTGF5b3V0SXRlbSxcbik6IFBsYWNlbWVudFJlc3VsdCB8IG51bGwgPT4ge1xuICBjb25zdCBzb3VyY2VXaWRnZXRzID0gY2xvbmVXaWRnZXRzKHdpZGdldHMpO1xuICBjb25zdCBtb3ZpbmcgPSBzb3VyY2VXaWRnZXRzLmZpbmQod2lkZ2V0ID0+IHdpZGdldC5pZCA9PT0gd2lkZ2V0SWQpO1xuICBjb25zdCBvcmlnaW5hbCA9IHdpZGdldHMuZmluZCh3aWRnZXQgPT4gd2lkZ2V0LmlkID09PSB3aWRnZXRJZCk7XG4gIGlmICghbW92aW5nIHx8ICFvcmlnaW5hbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgdGFyZ2V0ID0ge1xuICAgIHg6IG5leHQueCxcbiAgICB5OiBuZXh0LnksXG4gICAgdzogbmV4dC53ID8/IG1vdmluZy53LFxuICAgIGg6IG5leHQuaCA/PyBtb3ZpbmcuaCxcbiAgfTtcblxuICBtb3ZpbmcueCA9IHRhcmdldC54O1xuICBtb3ZpbmcueSA9IHRhcmdldC55O1xuICBtb3ZpbmcudyA9IHRhcmdldC53O1xuICBtb3ZpbmcuaCA9IHRhcmdldC5oO1xuXG4gIGNvbnN0IGNvbGxpc2lvbnMgPSBjb2xsZWN0Q29sbGlzaW9ucyhzb3VyY2VXaWRnZXRzLCBtb3ZpbmcsIHRhcmdldC54LCB0YXJnZXQueSwgdGFyZ2V0LncsIHRhcmdldC5oKTtcblxuICBpZiAoY29sbGlzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4geyB3aWRnZXRzOiBzb3VyY2VXaWRnZXRzLCBtb3ZlZFdpZGdldHM6IFttb3ZpbmcuaWRdIH07XG4gIH1cblxuICBpZiAoY29sbGlzaW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBvdGhlciA9IGNvbGxpc2lvbnNbMF07XG4gICAgaWYgKCFvdGhlci5sb2NrZWQgJiYgIW90aGVyLm5vTW92ZSAmJiBvdGhlci53ID09PSBtb3ZpbmcudyAmJiBvdGhlci5oID09PSBtb3ZpbmcuaCkge1xuICAgICAgY29uc3Qgb3RoZXJDbG9uZSA9IHNvdXJjZVdpZGdldHMuZmluZCh3aWRnZXQgPT4gd2lkZ2V0LmlkID09PSBvdGhlci5pZCk7XG4gICAgICBpZiAob3RoZXJDbG9uZSkge1xuICAgICAgICAvLyBVc2UgdGhlIG9yaWdpbmFsIHBvc2l0aW9uIG9mIHRoZSBtb3Zpbmcgd2lkZ2V0IGZvciBhIGNsZWFuIHN3YXBcbiAgICAgICAgLy8gVGhpcyBwcmV2ZW50cyB0aGUgXCJzbmFwcGluZyB0b2dldGhlclwiIGlzc3VlIHdoZXJlIGJvdGggd2lkZ2V0cyBlbmQgdXAgYXQgdGhlIHNhbWUgcG9zaXRpb25cbiAgICAgICAgY29uc3Qgc3dhcFRhcmdldCA9IG9yaWdpbmFsO1xuICAgICAgICBjb25zdCBwcmV2aW91c090aGVyUG9zaXRpb24gPSB7IHg6IG90aGVyQ2xvbmUueCwgeTogb3RoZXJDbG9uZS55IH07XG4gICAgICAgIG90aGVyQ2xvbmUueCA9IHN3YXBUYXJnZXQueDtcbiAgICAgICAgb3RoZXJDbG9uZS55ID0gc3dhcFRhcmdldC55O1xuXG4gICAgICAgIGNvbnN0IHN3YXBWYWxpZCA9XG4gICAgICAgICAgY29sbGVjdENvbGxpc2lvbnMoc291cmNlV2lkZ2V0cywgbW92aW5nLCBtb3ZpbmcueCwgbW92aW5nLnksIG1vdmluZy53LCBtb3ZpbmcuaCkubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgY29sbGVjdENvbGxpc2lvbnMoc291cmNlV2lkZ2V0cywgb3RoZXJDbG9uZSwgb3RoZXJDbG9uZS54LCBvdGhlckNsb25lLnksIG90aGVyQ2xvbmUudywgb3RoZXJDbG9uZS5oKS5sZW5ndGggPT09IDA7XG5cbiAgICAgICAgaWYgKHN3YXBWYWxpZCkge1xuICAgICAgICAgIHJldHVybiB7IHdpZGdldHM6IHNvdXJjZVdpZGdldHMsIG1vdmVkV2lkZ2V0czogW21vdmluZy5pZCwgb3RoZXJDbG9uZS5pZF0sIHN3YXBwZWRXaXRoOiBvdGhlckNsb25lLmlkIH07XG4gICAgICAgIH1cblxuICAgICAgICBvdGhlckNsb25lLnggPSBwcmV2aW91c090aGVyUG9zaXRpb24ueDtcbiAgICAgICAgb3RoZXJDbG9uZS55ID0gcHJldmlvdXNPdGhlclBvc2l0aW9uLnk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gYXR0ZW1wdCBkaXNwbGFjZW1lbnQgY2FzY2FkZVxuICBjb25zdCBtb3ZlZElkcyA9IG5ldyBTZXQ8c3RyaW5nPihbbW92aW5nLmlkXSk7XG4gIGZvciAoY29uc3Qgb2ZmZW5kaW5nIG9mIGNvbGxpc2lvbnMpIHtcbiAgICBpZiAob2ZmZW5kaW5nLmxvY2tlZCB8fCBvZmZlbmRpbmcubm9Nb3ZlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgY2xvbmUgPSBzb3VyY2VXaWRnZXRzLmZpbmQod2lkZ2V0ID0+IHdpZGdldC5pZCA9PT0gb2ZmZW5kaW5nLmlkKTtcbiAgICBpZiAoIWNsb25lKSBjb250aW51ZTtcbiAgICBjb25zdCByZW1haW5pbmcgPSBzb3VyY2VXaWRnZXRzLmZpbHRlcih3aWRnZXQgPT4gd2lkZ2V0LmlkICE9PSBvZmZlbmRpbmcuaWQpO1xuICAgIGNvbnN0IHBvc2l0aW9uID0gZmluZEF2YWlsYWJsZVBvc2l0aW9uKHJlbWFpbmluZywgY2xvbmUudywgY2xvbmUuaCwgY29sdW1ucyk7XG4gICAgY2xvbmUueCA9IHBvc2l0aW9uLng7XG4gICAgY2xvbmUueSA9IHBvc2l0aW9uLnk7XG4gICAgbW92ZWRJZHMuYWRkKGNsb25lLmlkKTtcbiAgfVxuXG4gIC8vIHZlcmlmeSBubyBvdmVybGFwcyByZW1haW5cbiAgY29uc3QgdmVyaWZ5ID0gY29sbGVjdENvbGxpc2lvbnMoc291cmNlV2lkZ2V0cywgbW92aW5nLCBtb3ZpbmcueCwgbW92aW5nLnksIG1vdmluZy53LCBtb3ZpbmcuaCk7XG4gIGlmICh2ZXJpZnkubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHsgd2lkZ2V0czogc291cmNlV2lkZ2V0cywgbW92ZWRXaWRnZXRzOiBBcnJheS5mcm9tKG1vdmVkSWRzKSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbXBhY3RMYXlvdXQgPSAoXG4gIHdpZGdldHM6IERhc2hib2FyZFdpZGdldFtdLFxuICBkaXJlY3Rpb246IExheW91dERpcmVjdGlvbiA9ICd2ZXJ0aWNhbCcsXG4pID0+IHtcbiAgY29uc3Qgc29ydGVkID0gWy4uLndpZGdldHNdLnNvcnQoKGEsIGIpID0+IHtcbiAgICBpZiAoZGlyZWN0aW9uID09PSAndmVydGljYWwnKSB7XG4gICAgICBpZiAoYS55ICE9PSBiLnkpIHJldHVybiBhLnkgLSBiLnk7XG4gICAgICByZXR1cm4gYS54IC0gYi54O1xuICAgIH1cblxuICAgIGlmIChhLnggIT09IGIueCkgcmV0dXJuIGEueCAtIGIueDtcbiAgICByZXR1cm4gYS55IC0gYi55O1xuICB9KTtcblxuICBmb3IgKGNvbnN0IHdpZGdldCBvZiBzb3J0ZWQpIHtcbiAgICBpZiAod2lkZ2V0LmxvY2tlZCB8fCB3aWRnZXQubm9Nb3ZlKSBjb250aW51ZTtcblxuICAgIGlmIChkaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgIHdoaWxlICh3aWRnZXQueSA+IDAgJiYgIWNoZWNrQ29sbGlzaW9uKHdpZGdldHMsIHdpZGdldCwgd2lkZ2V0LngsIHdpZGdldC55IC0gMSkpIHtcbiAgICAgICAgd2lkZ2V0LnkgLT0gMTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgd2hpbGUgKHdpZGdldC54ID4gMCAmJiAhY2hlY2tDb2xsaXNpb24od2lkZ2V0cywgd2lkZ2V0LCB3aWRnZXQueCAtIDEsIHdpZGdldC55KSkge1xuICAgICAgICB3aWRnZXQueCAtPSAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGFwcGx5TGF5b3V0ID0gKFxuICB3aWRnZXRzOiBEYXNoYm9hcmRXaWRnZXRbXSxcbiAgbGF5b3V0OiBEYXNoYm9hcmRMYXlvdXRJdGVtW10sXG4pOiBEYXNoYm9hcmRXaWRnZXRbXSA9PiB7XG4gIHJldHVybiB3aWRnZXRzLm1hcCh3aWRnZXQgPT4ge1xuICAgIGNvbnN0IGxheW91dEl0ZW0gPSBsYXlvdXQuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IHdpZGdldC5pZCk7XG4gICAgcmV0dXJuIGxheW91dEl0ZW0gPyB7IC4uLndpZGdldCwgLi4ubGF5b3V0SXRlbSB9IDogd2lkZ2V0O1xuICB9KTtcbn07XG4iLCAiaW1wb3J0IHR5cGUgeyBEYXNoYm9hcmRXaWRnZXQsIEdyaWRDZWxsTWV0cmljcyB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50ZXJQb3NpdGlvbiB7XG4gIGNsaWVudFg6IG51bWJlcjtcbiAgY2xpZW50WTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERyYWdDb21wdXRhdGlvbkFyZ3Mge1xuICBwb2ludGVyOiBQb2ludGVyUG9zaXRpb247XG4gIGNvbnRhaW5lclJlY3Q6IERPTVJlY3Q7XG4gIG1ldHJpY3M6IEdyaWRDZWxsTWV0cmljcztcbiAgY29sdW1uczogbnVtYmVyO1xuICB3aWRnZXQ6IERhc2hib2FyZFdpZGdldDtcbiAgcnRsOiBib29sZWFuO1xuICBkcmFnT2Zmc2V0WD86IG51bWJlcjtcbiAgZHJhZ09mZnNldFk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBjb21wdXRlR3JpZENvb3JkaW5hdGVzID0gKHtcbiAgcG9pbnRlcixcbiAgY29udGFpbmVyUmVjdCxcbiAgbWV0cmljcyxcbiAgY29sdW1ucyxcbiAgd2lkZ2V0LFxuICBydGwsXG4gIGRyYWdPZmZzZXRYID0gMCxcbiAgZHJhZ09mZnNldFkgPSAwLFxufTogRHJhZ0NvbXB1dGF0aW9uQXJncyk6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSA9PiB7XG4gIGNvbnN0IHJlbGF0aXZlWCA9IHBvaW50ZXIuY2xpZW50WCAtIGNvbnRhaW5lclJlY3QubGVmdCAtIGRyYWdPZmZzZXRYO1xuICBjb25zdCByZWxhdGl2ZVkgPSBwb2ludGVyLmNsaWVudFkgLSBjb250YWluZXJSZWN0LnRvcCAtIGRyYWdPZmZzZXRZO1xuXG4gIGNvbnN0IG1hcmdpblggPSBtZXRyaWNzLm1hcmdpbkhvcml6b250YWxQeDtcbiAgY29uc3QgbWFyZ2luWSA9IG1ldHJpY3MubWFyZ2luVmVydGljYWxQeDtcbiAgY29uc3QgY2VsbFdpZHRoID0gbWV0cmljcy5jZWxsV2lkdGhQeDtcbiAgY29uc3QgY2VsbEhlaWdodCA9IG1ldHJpY3MuY2VsbEhlaWdodFB4O1xuXG4gIGNvbnN0IGNsYW1wID0gKHZhbHVlOiBudW1iZXIsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikgPT4gTWF0aC5tYXgobWluLCBNYXRoLm1pbihtYXgsIHZhbHVlKSk7XG5cbiAgY29uc3QgYWRqdXN0ZWRYID0gY2xhbXAocmVsYXRpdmVYIC0gbWFyZ2luWCwgMCwgY29udGFpbmVyUmVjdC53aWR0aCAtIG1hcmdpblgpO1xuICBjb25zdCBhZGp1c3RlZFkgPSBjbGFtcChyZWxhdGl2ZVkgLSBtYXJnaW5ZLCAwLCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO1xuXG4gIGNvbnN0IGNlbGxQbHVzTWFyZ2luWCA9IGNlbGxXaWR0aCArIG1hcmdpblg7XG4gIGNvbnN0IGNlbGxQbHVzTWFyZ2luWSA9IGNlbGxIZWlnaHQgKyBtYXJnaW5ZO1xuXG4gIGxldCBncmlkWCA9IE1hdGgucm91bmQoYWRqdXN0ZWRYIC8gY2VsbFBsdXNNYXJnaW5YKTtcbiAgaWYgKHJ0bCkge1xuICAgIGdyaWRYID0gY29sdW1ucyAtIHdpZGdldC53IC0gZ3JpZFg7XG4gIH1cbiAgZ3JpZFggPSBjbGFtcChncmlkWCwgMCwgY29sdW1ucyAtIHdpZGdldC53KTtcblxuICBjb25zdCBncmlkWSA9IGNsYW1wKE1hdGgucm91bmQoYWRqdXN0ZWRZIC8gY2VsbFBsdXNNYXJnaW5ZKSwgMCwgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO1xuXG4gIHJldHVybiB7IHg6IGdyaWRYLCB5OiBncmlkWSB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNpemVDb21wdXRhdGlvbkFyZ3Mge1xuICBwb2ludGVyOiBQb2ludGVyUG9zaXRpb247XG4gIGNvbnRhaW5lclJlY3Q6IERPTVJlY3Q7XG4gIG1ldHJpY3M6IEdyaWRDZWxsTWV0cmljcztcbiAgc3RhcnRXaWR0aDogbnVtYmVyO1xuICBzdGFydEhlaWdodDogbnVtYmVyO1xuICBzdGFydFBvaW50ZXI6IFBvaW50ZXJQb3NpdGlvbjtcbiAgaGFuZGxlcjogJ2UnIHwgJ3MnIHwgJ3NlJztcbiAgd2lkZ2V0OiBEYXNoYm9hcmRXaWRnZXQ7XG4gIGNvbHVtbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGNvbXB1dGVSZXNpemVEaW1lbnNpb25zID0gKHtcbiAgcG9pbnRlcixcbiAgY29udGFpbmVyUmVjdCxcbiAgbWV0cmljcyxcbiAgc3RhcnRXaWR0aCxcbiAgc3RhcnRIZWlnaHQsXG4gIHN0YXJ0UG9pbnRlcixcbiAgaGFuZGxlcixcbiAgd2lkZ2V0LFxuICBjb2x1bW5zLFxufTogUmVzaXplQ29tcHV0YXRpb25BcmdzKTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9ID0+IHtcbiAgY29uc3QgZGVsdGFYID0gcG9pbnRlci5jbGllbnRYIC0gc3RhcnRQb2ludGVyLmNsaWVudFg7XG4gIGNvbnN0IGRlbHRhWSA9IHBvaW50ZXIuY2xpZW50WSAtIHN0YXJ0UG9pbnRlci5jbGllbnRZO1xuXG4gIGxldCB3aWR0aCA9IHN0YXJ0V2lkdGg7XG4gIGxldCBoZWlnaHQgPSBzdGFydEhlaWdodDtcblxuICBjb25zdCBjZWxsUGx1c01hcmdpblggPSBtZXRyaWNzLmNlbGxXaWR0aFB4ICsgbWV0cmljcy5tYXJnaW5Ib3Jpem9udGFsUHg7XG4gIGNvbnN0IGNlbGxQbHVzTWFyZ2luWSA9IG1ldHJpY3MuY2VsbEhlaWdodFB4ICsgbWV0cmljcy5tYXJnaW5WZXJ0aWNhbFB4O1xuXG4gIGlmIChoYW5kbGVyLmluY2x1ZGVzKCdlJykpIHtcbiAgICBjb25zdCBkZWx0YUNvbHMgPSBNYXRoLnJvdW5kKGRlbHRhWCAvIGNlbGxQbHVzTWFyZ2luWCk7XG4gICAgd2lkdGggPSBzdGFydFdpZHRoICsgZGVsdGFDb2xzO1xuICB9XG5cbiAgaWYgKGhhbmRsZXIuaW5jbHVkZXMoJ3MnKSkge1xuICAgIGNvbnN0IGRlbHRhUm93cyA9IE1hdGgucm91bmQoZGVsdGFZIC8gY2VsbFBsdXNNYXJnaW5ZKTtcbiAgICBoZWlnaHQgPSBzdGFydEhlaWdodCArIGRlbHRhUm93cztcbiAgfVxuXG4gIGNvbnN0IGNsYW1wZWRXaWR0aCA9IE1hdGgubWF4KHdpZGdldC5taW5XIHx8IDEsIE1hdGgubWluKHdpZHRoLCB3aWRnZXQubWF4VyB8fCBjb2x1bW5zIC0gd2lkZ2V0LngpKTtcbiAgY29uc3QgY2xhbXBlZEhlaWdodCA9IE1hdGgubWF4KHdpZGdldC5taW5IIHx8IDEsIE1hdGgubWluKGhlaWdodCwgd2lkZ2V0Lm1heEggfHwgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKTtcblxuICByZXR1cm4ge1xuICAgIHdpZHRoOiBjbGFtcGVkV2lkdGgsXG4gICAgaGVpZ2h0OiBjbGFtcGVkSGVpZ2h0LFxuICB9O1xufTtcbiIsICJpbXBvcnQgdHlwZSB7IERhc2hib2FyZFdpZGdldCB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHsgRGVlc0NvbnRleHRtZW51IH0gZnJvbSAnLi4vZGVlcy1jb250ZXh0bWVudS9kZWVzLWNvbnRleHRtZW51LmpzJztcbmltcG9ydCB0eXBlIHsgRGVlc0Rhc2hib2FyZGdyaWQgfSBmcm9tICcuL2RlZXMtZGFzaGJvYXJkZ3JpZC5qcyc7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLzAwcGx1Z2lucy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2lkZ2V0Q29udGV4dE1lbnVPcHRpb25zIHtcbiAgd2lkZ2V0OiBEYXNoYm9hcmRXaWRnZXQ7XG4gIGhvc3Q6IERlZXNEYXNoYm9hcmRncmlkO1xuICBldmVudDogTW91c2VFdmVudDtcbn1cblxuZXhwb3J0IGNvbnN0IG9wZW5XaWRnZXRDb250ZXh0TWVudSA9ICh7XG4gIHdpZGdldCxcbiAgaG9zdCxcbiAgZXZlbnQsXG59OiBXaWRnZXRDb250ZXh0TWVudU9wdGlvbnMpID0+IHtcbiAgY29uc3QgaXRlbXM6IChwbHVnaW5zLnRzY2xhc3Mud2Vic2l0ZS5JTWVudUl0ZW0gfCB7IGRpdmlkZXI6IHRydWUgfSlbXSA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnRGVsZXRlIHRpbGUnLFxuICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6dHJhc2gyJyBhcyBhbnksXG4gICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgaG9zdC5yZW1vdmVXaWRnZXQod2lkZ2V0LmlkKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9LFxuICAgIH0sXG4gIF07XG5cbiAgRGVlc0NvbnRleHRtZW51Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGV2ZW50LCBpdGVtcyBhcyBhbnkpO1xufTtcbiIsICJpbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgY3VzdG9tRWxlbWVudCxcbiAgcHJvcGVydHksXG4gIHN0YXRlLFxuICBodG1sLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgJy4uL2RlZXMtaWNvbi9kZWVzLWljb24uanMnO1xuaW1wb3J0ICcuLi9kZWVzLWNvbnRleHRtZW51L2RlZXMtY29udGV4dG1lbnUuanMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtZGFzaGJvYXJkZ3JpZC5kZW1vLmpzJztcbmltcG9ydCB7IGRhc2hib2FyZEdyaWRTdHlsZXMgfSBmcm9tICcuL3N0eWxlcy5qcyc7XG5pbXBvcnQge1xuICByZXNvbHZlTWFyZ2lucyxcbiAgY2FsY3VsYXRlQ2VsbE1ldHJpY3MsXG4gIGNhbGN1bGF0ZUdyaWRIZWlnaHQsXG4gIGZpbmRBdmFpbGFibGVQb3NpdGlvbixcbiAgY29tcGFjdExheW91dCxcbiAgYXBwbHlMYXlvdXQsXG4gIHJlc29sdmVXaWRnZXRQbGFjZW1lbnQsXG4gIHR5cGUgUGxhY2VtZW50UmVzdWx0LFxufSBmcm9tICcuL2xheW91dC5qcyc7XG5pbXBvcnQge1xuICBjb21wdXRlR3JpZENvb3JkaW5hdGVzLFxuICBjb21wdXRlUmVzaXplRGltZW5zaW9ucyxcbiAgdHlwZSBQb2ludGVyUG9zaXRpb24sXG59IGZyb20gJy4vaW50ZXJhY3Rpb24uanMnO1xuaW1wb3J0IHsgb3BlbldpZGdldENvbnRleHRNZW51IH0gZnJvbSAnLi9jb250ZXh0bWVudS5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIERhc2hib2FyZFdpZGdldCxcbiAgRGFzaGJvYXJkTWFyZ2luLFxuICBEYXNoYm9hcmRSZXNvbHZlZE1hcmdpbnMsXG4gIEdyaWRDZWxsTWV0cmljcyxcbiAgRGFzaGJvYXJkTGF5b3V0SXRlbSxcbiAgTGF5b3V0RGlyZWN0aW9uLFxuICBDZWxsSGVpZ2h0VW5pdCxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtZGFzaGJvYXJkZ3JpZCc6IERlZXNEYXNoYm9hcmRncmlkO1xuICB9XG59XG5cbnR5cGUgRHJhZ1N0YXRlID0ge1xuICB3aWRnZXRJZDogc3RyaW5nO1xuICBwb2ludGVySWQ6IG51bWJlcjtcbiAgb2Zmc2V0WDogbnVtYmVyO1xuICBvZmZzZXRZOiBudW1iZXI7XG4gIHN0YXJ0OiBEYXNoYm9hcmRMYXlvdXRJdGVtO1xuICBwcmV2aW91c1Bvc2l0aW9uOiBEYXNoYm9hcmRMYXlvdXRJdGVtO1xuICBjdXJyZW50UG9pbnRlcjogUG9pbnRlclBvc2l0aW9uO1xuICBsYXN0UGxhY2VtZW50OiBQbGFjZW1lbnRSZXN1bHQgfCBudWxsO1xufTtcblxudHlwZSBSZXNpemVTdGF0ZSA9IHtcbiAgd2lkZ2V0SWQ6IHN0cmluZztcbiAgcG9pbnRlcklkOiBudW1iZXI7XG4gIGhhbmRsZXI6ICdlJyB8ICdzJyB8ICdzZSc7XG4gIHN0YXJ0UG9pbnRlcjogUG9pbnRlclBvc2l0aW9uO1xuICBzdGFydDogRGFzaGJvYXJkTGF5b3V0SXRlbTtcbiAgc3RhcnRXaWR0aDogbnVtYmVyO1xuICBzdGFydEhlaWdodDogbnVtYmVyO1xuICBsYXN0UGxhY2VtZW50OiBQbGFjZW1lbnRSZXN1bHQgfCBudWxsO1xufTtcblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtZGFzaGJvYXJkZ3JpZCcpXG5leHBvcnQgY2xhc3MgRGVlc0Rhc2hib2FyZGdyaWQgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IGRhc2hib2FyZEdyaWRTdHlsZXM7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgYWNjZXNzb3Igd2lkZ2V0czogRGFzaGJvYXJkV2lkZ2V0W10gPSBbXTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgYWNjZXNzb3IgY2VsbEhlaWdodDogbnVtYmVyID0gODA7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pXG4gIGFjY2Vzc29yIG1hcmdpbjogRGFzaGJvYXJkTWFyZ2luID0gMTA7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIGFjY2Vzc29yIGNvbHVtbnM6IG51bWJlciA9IDEyO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3IgZWRpdGFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgYWNjZXNzb3IgZW5hYmxlQW5pbWF0aW9uOiBib29sZWFuID0gdHJ1ZTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgY2VsbEhlaWdodFVuaXQ6IENlbGxIZWlnaHRVbml0ID0gJ3B4JztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIGFjY2Vzc29yIHJ0bDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgYWNjZXNzb3Igc2hvd0dyaWRMaW5lczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgYWNjZXNzb3IgbGF5b3V0czogUmVjb3JkPHN0cmluZywgRGFzaGJvYXJkTGF5b3V0SXRlbVtdPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgYWN0aXZlQnJlYWtwb2ludDogc3RyaW5nID0gJ2Jhc2UnO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHBsYWNlaG9sZGVyUG9zaXRpb246IERhc2hib2FyZExheW91dEl0ZW0gfCBudWxsID0gbnVsbDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBtZXRyaWNzOiBHcmlkQ2VsbE1ldHJpY3MgfCBudWxsID0gbnVsbDtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciByZXNvbHZlZE1hcmdpbnM6IERhc2hib2FyZFJlc29sdmVkTWFyZ2lucyB8IG51bGwgPSBudWxsO1xuXG4gIEBzdGF0ZSgpXG4gIGFjY2Vzc29yIHByZXZpZXdXaWRnZXRzOiBEYXNoYm9hcmRXaWRnZXRbXSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgY29udGFpbmVyQm91bmRzOiBET01SZWN0IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZHJhZ1N0YXRlOiBEcmFnU3RhdGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZXNpemVTdGF0ZTogUmVzaXplU3RhdGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcj86IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIGludGVyYWN0aW9uQWN0aXZlID0gZmFsc2U7XG5cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5jb21wdXRlTWV0cmljcygpO1xuICAgIHRoaXMub2JzZXJ2ZVJlc2l6ZSgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5kaXNjb25uZWN0UmVzaXplT2JzZXJ2ZXIoKTtcbiAgICB0aGlzLnJlbGVhc2VQb2ludGVyRXZlbnRzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlZChjaGFuZ2VkOiBNYXA8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGNoYW5nZWQuaGFzKCdtYXJnaW4nKSB8fFxuICAgICAgY2hhbmdlZC5oYXMoJ2NvbHVtbnMnKSB8fFxuICAgICAgY2hhbmdlZC5oYXMoJ2NlbGxIZWlnaHQnKSB8fFxuICAgICAgY2hhbmdlZC5oYXMoJ2NlbGxIZWlnaHRVbml0JylcbiAgICApIHtcbiAgICAgIHRoaXMuY29tcHV0ZU1ldHJpY3MoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZC5oYXMoJ3dpZGdldHMnKSAmJiAhdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZSkge1xuICAgICAgdGhpcy5ub3RpZnlMYXlvdXRDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBiYXNlV2lkZ2V0cyA9IHRoaXMud2lkZ2V0cztcbiAgICBpZiAoYmFzZVdpZGdldHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6bGF5b3V0R3JpZCd9PjwvZGVlcy1pY29uPlxuICAgICAgICAgIDxkaXY+Tm8gd2lkZ2V0cyBjb25maWd1cmVkPC9kaXY+XG4gICAgICAgICAgPGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4O1wiPkFkZCB3aWRnZXRzIHRvIHBvcHVsYXRlIHRoZSBkYXNoYm9hcmQ8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldHJpY3MgPSB0aGlzLmVuc3VyZU1ldHJpY3MoKTtcbiAgICBjb25zdCBtYXJnaW5zID0gdGhpcy5yZXNvbHZlZE1hcmdpbnMgPz8gcmVzb2x2ZU1hcmdpbnModGhpcy5tYXJnaW4pO1xuICAgIGNvbnN0IGNlbGxIZWlnaHQgPSBtZXRyaWNzLmNlbGxIZWlnaHRQeDtcbiAgICBjb25zdCBsYXlvdXRGb3JIZWlnaHQgPSB0aGlzLnByZXZpZXdXaWRnZXRzID8/IHRoaXMud2lkZ2V0cztcbiAgICBjb25zdCBncmlkSGVpZ2h0ID0gY2FsY3VsYXRlR3JpZEhlaWdodChsYXlvdXRGb3JIZWlnaHQsIG1hcmdpbnMsIGNlbGxIZWlnaHQpO1xuICAgIGNvbnN0IHByZXZpZXdNYXAgPSB0aGlzLnByZXZpZXdXaWRnZXRzID8gbmV3IE1hcCh0aGlzLnByZXZpZXdXaWRnZXRzLm1hcCh3aWRnZXQgPT4gW3dpZGdldC5pZCwgd2lkZ2V0XSkpIDogbnVsbDtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cImdyaWQtY29udGFpbmVyXCIgc3R5bGU9XCJoZWlnaHQ6ICR7Z3JpZEhlaWdodH1weDtcIj5cbiAgICAgICAgJHt0aGlzLnNob3dHcmlkTGluZXMgPyB0aGlzLnJlbmRlckdyaWRMaW5lcyhtZXRyaWNzLCBncmlkSGVpZ2h0KSA6IG51bGx9XG4gICAgICAgICR7YmFzZVdpZGdldHMubWFwKHdpZGdldCA9PiB0aGlzLnJlbmRlcldpZGdldCh3aWRnZXQsIG1ldHJpY3MsIG1hcmdpbnMsIHByZXZpZXdNYXApKX1cbiAgICAgICAgJHt0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24gPyB0aGlzLnJlbmRlclBsYWNlaG9sZGVyKG1ldHJpY3MsIG1hcmdpbnMpIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckdyaWRMaW5lcyhtZXRyaWNzOiBHcmlkQ2VsbE1ldHJpY3MsIGdyaWRIZWlnaHQ6IG51bWJlcik6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCB2ZXJ0aWNhbDogVGVtcGxhdGVSZXN1bHRbXSA9IFtdO1xuICAgIGNvbnN0IGhvcml6b250YWw6IFRlbXBsYXRlUmVzdWx0W10gPSBbXTtcbiAgICBjb25zdCBjZWxsUGx1c01hcmdpblggPSBtZXRyaWNzLmNlbGxXaWR0aFB4ICsgbWV0cmljcy5tYXJnaW5Ib3Jpem9udGFsUHg7XG4gICAgY29uc3QgY2VsbFBsdXNNYXJnaW5ZID0gbWV0cmljcy5jZWxsSGVpZ2h0UHggKyBtZXRyaWNzLm1hcmdpblZlcnRpY2FsUHg7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB0aGlzLmNvbHVtbnM7IGkrKykge1xuICAgICAgY29uc3QgbGVmdFB4ID0gaSAqIGNlbGxQbHVzTWFyZ2luWCArIG1ldHJpY3MubWFyZ2luSG9yaXpvbnRhbFB4O1xuICAgICAgY29uc3QgbGVmdFBlcmNlbnQgPSB0aGlzLnB4VG9QZXJjZW50KGxlZnRQeCwgbWV0cmljcy5jb250YWluZXJXaWR0aCk7XG4gICAgICB2ZXJ0aWNhbC5wdXNoKGh0bWxgPGRpdiBjbGFzcz1cImdyaWQtbGluZS12ZXJ0aWNhbFwiIHN0eWxlPVwibGVmdDogJHtsZWZ0UGVyY2VudH0lO1wiPjwvZGl2PmApO1xuICAgIH1cblxuICAgIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwoZ3JpZEhlaWdodCAvIGNlbGxQbHVzTWFyZ2luWSk7XG4gICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDw9IHJvd3M7IHJvdysrKSB7XG4gICAgICBjb25zdCB0b3AgPSByb3cgKiBjZWxsUGx1c01hcmdpblk7XG4gICAgICBob3Jpem9udGFsLnB1c2goaHRtbGA8ZGl2IGNsYXNzPVwiZ3JpZC1saW5lLWhvcml6b250YWxcIiBzdHlsZT1cInRvcDogJHt0b3B9cHg7XCI+PC9kaXY+YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1saW5lc1wiPlxuICAgICAgICAke3ZlcnRpY2FsfVxuICAgICAgICAke2hvcml6b250YWx9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJXaWRnZXQoXG4gICAgd2lkZ2V0OiBEYXNoYm9hcmRXaWRnZXQsXG4gICAgbWV0cmljczogR3JpZENlbGxNZXRyaWNzLFxuICAgIG1hcmdpbnM6IERhc2hib2FyZFJlc29sdmVkTWFyZ2lucyxcbiAgICBwcmV2aWV3TWFwOiBNYXA8c3RyaW5nLCBEYXNoYm9hcmRXaWRnZXQ+IHwgbnVsbCxcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGlzRHJhZ2dpbmcgPSB0aGlzLmRyYWdTdGF0ZT8ud2lkZ2V0SWQgPT09IHdpZGdldC5pZDtcbiAgICBjb25zdCBpc1Jlc2l6aW5nID0gdGhpcy5yZXNpemVTdGF0ZT8ud2lkZ2V0SWQgPT09IHdpZGdldC5pZDtcbiAgICBjb25zdCBpc0xvY2tlZCA9IHdpZGdldC5sb2NrZWQgfHwgIXRoaXMuZWRpdGFibGU7XG4gICAgY29uc3QgcHJldmlld1dpZGdldCA9IHByZXZpZXdNYXA/LmdldCh3aWRnZXQuaWQpID8/IG51bGw7XG4gICAgY29uc3QgbGF5b3V0Rm9yUmVuZGVyID0gaXNEcmFnZ2luZyA/IHdpZGdldCA6IHByZXZpZXdXaWRnZXQgPz8gd2lkZ2V0O1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmNvbXB1dGVXaWRnZXRSZWN0KGxheW91dEZvclJlbmRlciwgbWV0cmljcywgbWFyZ2lucyk7XG5cbiAgICBjb25zdCBzaWRlUHJvcGVydHkgPSB0aGlzLnJ0bCA/ICdyaWdodCcgOiAnbGVmdCc7XG4gICAgY29uc3Qgc2lkZVZhbHVlID0gdGhpcy5weFRvUGVyY2VudChyZWN0LmxlZnQsIG1ldHJpY3MuY29udGFpbmVyV2lkdGgpO1xuICAgIGNvbnN0IHdpZHRoUGVyY2VudCA9IHRoaXMucHhUb1BlcmNlbnQocmVjdC53aWR0aCwgbWV0cmljcy5jb250YWluZXJXaWR0aCk7XG5cbiAgICBsZXQgdHJhbnNmb3JtID0gJyc7XG4gICAgaWYgKGlzRHJhZ2dpbmcgJiYgdGhpcy5kcmFnU3RhdGU/LmN1cnJlbnRQb2ludGVyKSB7XG4gICAgICBjb25zdCBwb2ludGVyID0gdGhpcy5kcmFnU3RhdGUuY3VycmVudFBvaW50ZXI7XG4gICAgICBjb25zdCBib3VuZHMgPSB0aGlzLmNvbnRhaW5lckJvdW5kcyA/PyB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgdHJhbnNsYXRlWCA9IHBvaW50ZXIuY2xpZW50WCAtIGJvdW5kcy5sZWZ0IC0gdGhpcy5kcmFnU3RhdGUub2Zmc2V0WCAtIHJlY3QubGVmdDtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZVkgPSBwb2ludGVyLmNsaWVudFkgLSBib3VuZHMudG9wIC0gdGhpcy5kcmFnU3RhdGUub2Zmc2V0WSAtIHJlY3QudG9wO1xuICAgICAgdHJhbnNmb3JtID0gYHRyYW5zZm9ybTogdHJhbnNsYXRlKCR7dHJhbnNsYXRlWH1weCwgJHt0cmFuc2xhdGVZfXB4KTtgO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdyaWQtd2lkZ2V0ICR7aXNEcmFnZ2luZyA/ICdkcmFnZ2luZycgOiAnJ30gJHtpc1Jlc2l6aW5nID8gJ3Jlc2l6aW5nJyA6ICcnfVwiXG4gICAgICAgIHN0eWxlPVwiXG4gICAgICAgICAgJHtzaWRlUHJvcGVydHl9OiAke3NpZGVWYWx1ZX0lO1xuICAgICAgICAgIHRvcDogJHtyZWN0LnRvcH1weDtcbiAgICAgICAgICB3aWR0aDogJHt3aWR0aFBlcmNlbnR9JTtcbiAgICAgICAgICBoZWlnaHQ6ICR7cmVjdC5oZWlnaHR9cHg7XG4gICAgICAgICAgJHt0cmFuc2Zvcm19XG4gICAgICAgIFwiXG4gICAgICAgIGRhdGEtd2lkZ2V0LWlkPSR7d2lkZ2V0LmlkfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWNvbnRlbnRcIj5cbiAgICAgICAgICAke3dpZGdldC50aXRsZVxuICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2lkZ2V0LWhlYWRlciAke2lzTG9ja2VkID8gJ2xvY2tlZCcgOiAnJ31cIlxuICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7IWlzTG9ja2VkICYmICF3aWRnZXQubm9Nb3ZlXG4gICAgICAgICAgICAgICAgICAgID8gKGV2dDogUG9pbnRlckV2ZW50KSA9PiB0aGlzLnN0YXJ0RHJhZyhldnQsIHdpZGdldClcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7KGV2dDogTW91c2VFdmVudCkgPT4gdGhpcy5oYW5kbGVXaWRnZXRDb250ZXh0TWVudShldnQsIHdpZGdldCl9XG4gICAgICAgICAgICAgICAgICB0YWJpbmRleD0keyFpc0xvY2tlZCAmJiAhd2lkZ2V0Lm5vTW92ZSA/IDAgOiAtMX1cbiAgICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7KGV2dDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5oYW5kbGVIZWFkZXJLZXlkb3duKGV2dCwgd2lkZ2V0KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAke3dpZGdldC5pY29uID8gaHRtbGA8ZGVlcy1pY29uIC5pY29uPSR7d2lkZ2V0Lmljb259PjwvZGVlcy1pY29uPmAgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgJHt3aWRnZXQudGl0bGV9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIGBcbiAgICAgICAgICAgIDogbnVsbH1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWJvZHkgJHt3aWRnZXQudGl0bGUgPyAnaGFzLWhlYWRlcicgOiAnJ31cIj5cbiAgICAgICAgICAgICR7d2lkZ2V0LmNvbnRlbnR9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgJHshaXNMb2NrZWQgJiYgIXdpZGdldC5ub1Jlc2l6ZVxuICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLWVcIlxuICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7KGV2dDogUG9pbnRlckV2ZW50KSA9PiB0aGlzLnN0YXJ0UmVzaXplKGV2dCwgd2lkZ2V0LCAnZScpfVxuICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zXCJcbiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0keyhldnQ6IFBvaW50ZXJFdmVudCkgPT4gdGhpcy5zdGFydFJlc2l6ZShldnQsIHdpZGdldCwgJ3MnKX1cbiAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtc2VcIlxuICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7KGV2dDogUG9pbnRlckV2ZW50KSA9PiB0aGlzLnN0YXJ0UmVzaXplKGV2dCwgd2lkZ2V0LCAnc2UnKX1cbiAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgIGBcbiAgICAgICAgICAgIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJQbGFjZWhvbGRlcihcbiAgICBtZXRyaWNzOiBHcmlkQ2VsbE1ldHJpY3MsXG4gICAgbWFyZ2luczogRGFzaGJvYXJkUmVzb2x2ZWRNYXJnaW5zLFxuICApOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24pIHtcbiAgICAgIHJldHVybiBodG1sYGA7XG4gICAgfVxuXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuY29tcHV0ZVdpZGdldFJlY3QodGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uLCBtZXRyaWNzLCBtYXJnaW5zKTtcbiAgICBjb25zdCBzaWRlUHJvcGVydHkgPSB0aGlzLnJ0bCA/ICdyaWdodCcgOiAnbGVmdCc7XG4gICAgY29uc3Qgc2lkZVZhbHVlID0gdGhpcy5weFRvUGVyY2VudChyZWN0LmxlZnQsIG1ldHJpY3MuY29udGFpbmVyV2lkdGgpO1xuICAgIGNvbnN0IHdpZHRoUGVyY2VudCA9IHRoaXMucHhUb1BlcmNlbnQocmVjdC53aWR0aCwgbWV0cmljcy5jb250YWluZXJXaWR0aCk7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncmlkLXdpZGdldCBwbGFjZWhvbGRlclwiXG4gICAgICAgIHN0eWxlPVwiXG4gICAgICAgICAgJHtzaWRlUHJvcGVydHl9OiAke3NpZGVWYWx1ZX0lO1xuICAgICAgICAgIHRvcDogJHtyZWN0LnRvcH1weDtcbiAgICAgICAgICB3aWR0aDogJHt3aWR0aFBlcmNlbnR9JTtcbiAgICAgICAgICBoZWlnaHQ6ICR7cmVjdC5oZWlnaHR9cHg7XG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtY29udGVudFwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnREcmFnKGV2ZW50OiBQb2ludGVyRXZlbnQsIHdpZGdldDogRGFzaGJvYXJkV2lkZ2V0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmVkaXRhYmxlIHx8IHdpZGdldC5ub01vdmUgfHwgd2lkZ2V0LmxvY2tlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCB3aWRnZXRFbGVtZW50ID0gKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5ncmlkLXdpZGdldCcpIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBpZiAoIXdpZGdldEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB3aWRnZXRSZWN0ID0gd2lkZ2V0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLmNvbnRhaW5lckJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5lbnN1cmVNZXRyaWNzKCk7XG5cbiAgICB0aGlzLmRyYWdTdGF0ZSA9IHtcbiAgICAgIHdpZGdldElkOiB3aWRnZXQuaWQsXG4gICAgICBwb2ludGVySWQ6IGV2ZW50LnBvaW50ZXJJZCxcbiAgICAgIG9mZnNldFg6IGV2ZW50LmNsaWVudFggLSB3aWRnZXRSZWN0LmxlZnQsXG4gICAgICBvZmZzZXRZOiBldmVudC5jbGllbnRZIC0gd2lkZ2V0UmVjdC50b3AsXG4gICAgICBzdGFydDogeyBpZDogd2lkZ2V0LmlkLCB4OiB3aWRnZXQueCwgeTogd2lkZ2V0LnksIHc6IHdpZGdldC53LCBoOiB3aWRnZXQuaCB9LFxuICAgICAgcHJldmlvdXNQb3NpdGlvbjogeyBpZDogd2lkZ2V0LmlkLCB4OiB3aWRnZXQueCwgeTogd2lkZ2V0LnksIHc6IHdpZGdldC53LCBoOiB3aWRnZXQuaCB9LFxuICAgICAgY3VycmVudFBvaW50ZXI6IHsgY2xpZW50WDogZXZlbnQuY2xpZW50WCwgY2xpZW50WTogZXZlbnQuY2xpZW50WSB9LFxuICAgICAgbGFzdFBsYWNlbWVudDogbnVsbCxcbiAgICB9O1xuXG4gICAgdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZSA9IHRydWU7XG4gICAgKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLnNldFBvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCB0aGlzLmhhbmRsZURyYWdNb3ZlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLmhhbmRsZURyYWdFbmQpO1xuXG4gICAgdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uID0geyBpZDogd2lkZ2V0LmlkLCB4OiB3aWRnZXQueCwgeTogd2lkZ2V0LnksIHc6IHdpZGdldC53LCBoOiB3aWRnZXQuaCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEcmFnTW92ZSA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKCF0aGlzLmRyYWdTdGF0ZSkgcmV0dXJuO1xuICAgIGNvbnN0IG1ldHJpY3MgPSB0aGlzLmVuc3VyZU1ldHJpY3MoKTtcbiAgICBjb25zdCBhY3RpdmVXaWRnZXRzID0gdGhpcy53aWRnZXRzO1xuICAgIGNvbnN0IHdpZGdldCA9IGFjdGl2ZVdpZGdldHMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IHRoaXMuZHJhZ1N0YXRlIS53aWRnZXRJZCk7XG4gICAgaWYgKCF3aWRnZXQpIHJldHVybjtcblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBwcmV2aW91c1Bvc2l0aW9uID0gdGhpcy5kcmFnU3RhdGUucHJldmlvdXNQb3NpdGlvbjtcblxuICAgIGNvbnN0IGNvb3JkcyA9IGNvbXB1dGVHcmlkQ29vcmRpbmF0ZXMoe1xuICAgICAgcG9pbnRlcjogeyBjbGllbnRYOiBldmVudC5jbGllbnRYLCBjbGllbnRZOiBldmVudC5jbGllbnRZIH0sXG4gICAgICBjb250YWluZXJSZWN0OiB0aGlzLmNvbnRhaW5lckJvdW5kcyA/PyB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgbWV0cmljcyxcbiAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucyxcbiAgICAgIHdpZGdldCxcbiAgICAgIHJ0bDogdGhpcy5ydGwsXG4gICAgICBkcmFnT2Zmc2V0WDogdGhpcy5kcmFnU3RhdGUub2Zmc2V0WCxcbiAgICAgIGRyYWdPZmZzZXRZOiB0aGlzLmRyYWdTdGF0ZS5vZmZzZXRZLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGxhY2VtZW50ID0gcmVzb2x2ZVdpZGdldFBsYWNlbWVudChcbiAgICAgIGFjdGl2ZVdpZGdldHMsXG4gICAgICB3aWRnZXQuaWQsXG4gICAgICB7IHg6IGNvb3Jkcy54LCB5OiBjb29yZHMueSB9LFxuICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgcHJldmlvdXNQb3NpdGlvbixcbiAgICApO1xuICAgIGlmIChwbGFjZW1lbnQpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZWRXaWRnZXQgPSBwbGFjZW1lbnQud2lkZ2V0cy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gd2lkZ2V0LmlkKTtcbiAgICAgIHRoaXMuZHJhZ1N0YXRlID0ge1xuICAgICAgICAuLi50aGlzLmRyYWdTdGF0ZSxcbiAgICAgICAgY3VycmVudFBvaW50ZXI6IHsgY2xpZW50WDogZXZlbnQuY2xpZW50WCwgY2xpZW50WTogZXZlbnQuY2xpZW50WSB9LFxuICAgICAgICBsYXN0UGxhY2VtZW50OiBwbGFjZW1lbnQsXG4gICAgICAgIHByZXZpb3VzUG9zaXRpb246IHVwZGF0ZWRXaWRnZXRcbiAgICAgICAgICA/IHsgaWQ6IHVwZGF0ZWRXaWRnZXQuaWQsIHg6IHVwZGF0ZWRXaWRnZXQueCwgeTogdXBkYXRlZFdpZGdldC55LCB3OiB1cGRhdGVkV2lkZ2V0LncsIGg6IHVwZGF0ZWRXaWRnZXQuaCB9XG4gICAgICAgICAgOiB7IGlkOiB3aWRnZXQuaWQsIHg6IGNvb3Jkcy54LCB5OiBjb29yZHMueSwgdzogd2lkZ2V0LncsIGg6IHdpZGdldC5oIH0sXG4gICAgICB9O1xuICAgICAgdGhpcy5wcmV2aWV3V2lkZ2V0cyA9IHBsYWNlbWVudC53aWRnZXRzO1xuICAgICAgY29uc3QgcHJldmlld1dpZGdldCA9IHBsYWNlbWVudC53aWRnZXRzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSB3aWRnZXQuaWQpO1xuICAgICAgaWYgKHByZXZpZXdXaWRnZXQpIHtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uID0ge1xuICAgICAgICAgIGlkOiBwcmV2aWV3V2lkZ2V0LmlkLFxuICAgICAgICAgIHg6IHByZXZpZXdXaWRnZXQueCxcbiAgICAgICAgICB5OiBwcmV2aWV3V2lkZ2V0LnksXG4gICAgICAgICAgdzogcHJldmlld1dpZGdldC53LFxuICAgICAgICAgIGg6IHByZXZpZXdXaWRnZXQuaCxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbiA9IHsgaWQ6IHdpZGdldC5pZCwgeDogY29vcmRzLngsIHk6IGNvb3Jkcy55LCB3OiB3aWRnZXQudywgaDogd2lkZ2V0LmggfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmV2aWV3V2lkZ2V0cyA9IG51bGw7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24gPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlRHJhZ0VuZCA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgZHJhZ1N0YXRlID0gdGhpcy5kcmFnU3RhdGU7XG4gICAgaWYgKCFkcmFnU3RhdGUgfHwgZXZlbnQucG9pbnRlcklkICE9PSBkcmFnU3RhdGUucG9pbnRlcklkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGF5b3V0U291cmNlID0gdGhpcy53aWRnZXRzO1xuICAgIHRoaXMucHJldmlld1dpZGdldHMgPSBudWxsO1xuXG4gICAgLy8gQWx3YXlzIHZhbGlkYXRlIHRoZSBmaW5hbCBwb3NpdGlvbiwgZG9uJ3QgcmVseSBvbiBsYXN0UGxhY2VtZW50IGZyb20gZHJhZ1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbiA/PyBkcmFnU3RhdGUuc3RhcnQ7XG4gICAgY29uc3QgcGxhY2VtZW50ID0gcmVzb2x2ZVdpZGdldFBsYWNlbWVudChcbiAgICAgIGxheW91dFNvdXJjZSxcbiAgICAgIGRyYWdTdGF0ZS53aWRnZXRJZCxcbiAgICAgIHsgeDogdGFyZ2V0LngsIHk6IHRhcmdldC55IH0sXG4gICAgICB0aGlzLmNvbHVtbnMsXG4gICAgICBkcmFnU3RhdGUucHJldmlvdXNQb3NpdGlvbixcbiAgICApO1xuXG4gICAgaWYgKHBsYWNlbWVudCkge1xuICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHBsYWNlbWVudCBkb2Vzbid0IHJlc3VsdCBpbiBvdmVybGFwcGluZyB3aWRnZXRzXG4gICAgICBjb25zdCBmaW5hbFdpZGdldCA9IHBsYWNlbWVudC53aWRnZXRzLmZpbmQodyA9PiB3LmlkID09PSBkcmFnU3RhdGUud2lkZ2V0SWQpO1xuICAgICAgaWYgKGZpbmFsV2lkZ2V0KSB7XG4gICAgICAgIGNvbnN0IGhhc092ZXJsYXAgPSBwbGFjZW1lbnQud2lkZ2V0cy5zb21lKHcgPT4ge1xuICAgICAgICAgIGlmICh3LmlkID09PSBkcmFnU3RhdGUud2lkZ2V0SWQpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZmluYWxXaWRnZXQueCA8IHcueCArIHcudyAmJlxuICAgICAgICAgICAgZmluYWxXaWRnZXQueCArIGZpbmFsV2lkZ2V0LncgPiB3LnggJiZcbiAgICAgICAgICAgIGZpbmFsV2lkZ2V0LnkgPCB3LnkgKyB3LmggJiZcbiAgICAgICAgICAgIGZpbmFsV2lkZ2V0LnkgKyBmaW5hbFdpZGdldC5oID4gdy55XG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFoYXNPdmVybGFwKSB7XG4gICAgICAgICAgdGhpcy5jb21taXRQbGFjZW1lbnQocGxhY2VtZW50LCBkcmFnU3RhdGUud2lkZ2V0SWQsICd3aWRnZXQtbW92ZScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFJldHVybiB0byBzdGFydCBwb3NpdGlvbiBpZiBvdmVybGFwIGRldGVjdGVkXG4gICAgICAgICAgdGhpcy53aWRnZXRzID0gdGhpcy53aWRnZXRzLm1hcCh3aWRnZXQgPT5cbiAgICAgICAgICAgIHdpZGdldC5pZCA9PT0gZHJhZ1N0YXRlLndpZGdldElkID8geyAuLi53aWRnZXQsIHg6IGRyYWdTdGF0ZS5zdGFydC54LCB5OiBkcmFnU3RhdGUuc3RhcnQueSB9IDogd2lkZ2V0LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmV0dXJuIHRvIHN0YXJ0IHBvc2l0aW9uIGlmIG5vIHZhbGlkIHBsYWNlbWVudFxuICAgICAgdGhpcy53aWRnZXRzID0gdGhpcy53aWRnZXRzLm1hcCh3aWRnZXQgPT5cbiAgICAgICAgd2lkZ2V0LmlkID09PSBkcmFnU3RhdGUud2lkZ2V0SWQgPyB7IC4uLndpZGdldCwgeDogZHJhZ1N0YXRlLnN0YXJ0LngsIHk6IGRyYWdTdGF0ZS5zdGFydC55IH0gOiB3aWRnZXQsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbiA9IG51bGw7XG4gICAgdGhpcy5kcmFnU3RhdGUgPSBudWxsO1xuICAgIHRoaXMuaW50ZXJhY3Rpb25BY3RpdmUgPSBmYWxzZTtcbiAgICB0aGlzLnJlbGVhc2VQb2ludGVyRXZlbnRzKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBzdGFydFJlc2l6ZShldmVudDogUG9pbnRlckV2ZW50LCB3aWRnZXQ6IERhc2hib2FyZFdpZGdldCwgaGFuZGxlcjogJ2UnIHwgJ3MnIHwgJ3NlJyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5lZGl0YWJsZSB8fCB3aWRnZXQubm9SZXNpemUgfHwgd2lkZ2V0LmxvY2tlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLmVuc3VyZU1ldHJpY3MoKTtcblxuICAgIHRoaXMucmVzaXplU3RhdGUgPSB7XG4gICAgICB3aWRnZXRJZDogd2lkZ2V0LmlkLFxuICAgICAgcG9pbnRlcklkOiBldmVudC5wb2ludGVySWQsXG4gICAgICBoYW5kbGVyLFxuICAgICAgc3RhcnRQb2ludGVyOiB7IGNsaWVudFg6IGV2ZW50LmNsaWVudFgsIGNsaWVudFk6IGV2ZW50LmNsaWVudFkgfSxcbiAgICAgIHN0YXJ0OiB7IGlkOiB3aWRnZXQuaWQsIHg6IHdpZGdldC54LCB5OiB3aWRnZXQueSwgdzogd2lkZ2V0LncsIGg6IHdpZGdldC5oIH0sXG4gICAgICBzdGFydFdpZHRoOiB3aWRnZXQudyxcbiAgICAgIHN0YXJ0SGVpZ2h0OiB3aWRnZXQuaCxcbiAgICAgIGxhc3RQbGFjZW1lbnQ6IG51bGwsXG4gICAgfTtcblxuICAgIHRoaXMuaW50ZXJhY3Rpb25BY3RpdmUgPSB0cnVlO1xuICAgIChldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zZXRQb2ludGVyQ2FwdHVyZShldmVudC5wb2ludGVySWQpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgdGhpcy5oYW5kbGVSZXNpemVNb3ZlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLmhhbmRsZVJlc2l6ZUVuZCk7XG5cbiAgICB0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24gPSB7IGlkOiB3aWRnZXQuaWQsIHg6IHdpZGdldC54LCB5OiB3aWRnZXQueSwgdzogd2lkZ2V0LncsIGg6IHdpZGdldC5oIH07XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJlc2l6ZU1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5yZXNpemVTdGF0ZSkgcmV0dXJuO1xuICAgIGNvbnN0IG1ldHJpY3MgPSB0aGlzLmVuc3VyZU1ldHJpY3MoKTtcbiAgICBjb25zdCBhY3RpdmVXaWRnZXRzID0gdGhpcy53aWRnZXRzO1xuICAgIGNvbnN0IHdpZGdldCA9IGFjdGl2ZVdpZGdldHMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IHRoaXMucmVzaXplU3RhdGUhLndpZGdldElkKTtcbiAgICBpZiAoIXdpZGdldCkgcmV0dXJuO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IG5leHRTaXplID0gY29tcHV0ZVJlc2l6ZURpbWVuc2lvbnMoe1xuICAgICAgcG9pbnRlcjogeyBjbGllbnRYOiBldmVudC5jbGllbnRYLCBjbGllbnRZOiBldmVudC5jbGllbnRZIH0sXG4gICAgICBjb250YWluZXJSZWN0OiB0aGlzLmNvbnRhaW5lckJvdW5kcyA/PyB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgbWV0cmljcyxcbiAgICAgIHN0YXJ0V2lkdGg6IHRoaXMucmVzaXplU3RhdGUuc3RhcnRXaWR0aCxcbiAgICAgIHN0YXJ0SGVpZ2h0OiB0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0SGVpZ2h0LFxuICAgICAgc3RhcnRQb2ludGVyOiB0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0UG9pbnRlcixcbiAgICAgIGhhbmRsZXI6IHRoaXMucmVzaXplU3RhdGUuaGFuZGxlcixcbiAgICAgIHdpZGdldCxcbiAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHBsYWNlbWVudCA9IHJlc29sdmVXaWRnZXRQbGFjZW1lbnQoXG4gICAgICBhY3RpdmVXaWRnZXRzLFxuICAgICAgd2lkZ2V0LmlkLFxuICAgICAgeyB4OiB3aWRnZXQueCwgeTogd2lkZ2V0LnksIHc6IG5leHRTaXplLndpZHRoLCBoOiBuZXh0U2l6ZS5oZWlnaHQgfSxcbiAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgIHRoaXMucmVzaXplU3RhdGUuc3RhcnQsXG4gICAgKTtcblxuICAgIGlmIChwbGFjZW1lbnQpIHtcbiAgICAgIHRoaXMucmVzaXplU3RhdGUgPSB7IC4uLnRoaXMucmVzaXplU3RhdGUsIGxhc3RQbGFjZW1lbnQ6IHBsYWNlbWVudCB9O1xuICAgICAgdGhpcy5wcmV2aWV3V2lkZ2V0cyA9IHBsYWNlbWVudC53aWRnZXRzO1xuICAgICAgY29uc3QgcHJldmlld1dpZGdldCA9IHBsYWNlbWVudC53aWRnZXRzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSB3aWRnZXQuaWQpO1xuICAgICAgaWYgKHByZXZpZXdXaWRnZXQpIHtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uID0ge1xuICAgICAgICAgIGlkOiBwcmV2aWV3V2lkZ2V0LmlkLFxuICAgICAgICAgIHg6IHByZXZpZXdXaWRnZXQueCxcbiAgICAgICAgICB5OiBwcmV2aWV3V2lkZ2V0LnksXG4gICAgICAgICAgdzogcHJldmlld1dpZGdldC53LFxuICAgICAgICAgIGg6IHByZXZpZXdXaWRnZXQuaCxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbiA9IHtcbiAgICAgICAgICBpZDogd2lkZ2V0LmlkLFxuICAgICAgICAgIHg6IHdpZGdldC54LFxuICAgICAgICAgIHk6IHdpZGdldC55LFxuICAgICAgICAgIHc6IG5leHRTaXplLndpZHRoLFxuICAgICAgICAgIGg6IG5leHRTaXplLmhlaWdodCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmV2aWV3V2lkZ2V0cyA9IG51bGw7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24gPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlUmVzaXplRW5kID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCByZXNpemVTdGF0ZSA9IHRoaXMucmVzaXplU3RhdGU7XG4gICAgaWYgKCFyZXNpemVTdGF0ZSB8fCBldmVudC5wb2ludGVySWQgIT09IHJlc2l6ZVN0YXRlLnBvaW50ZXJJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxheW91dFNvdXJjZSA9IHRoaXMud2lkZ2V0cztcbiAgICB0aGlzLnByZXZpZXdXaWRnZXRzID0gbnVsbDtcbiAgICBjb25zdCBwbGFjZW1lbnQgPVxuICAgICAgcmVzaXplU3RhdGUubGFzdFBsYWNlbWVudCA/P1xuICAgICAgcmVzb2x2ZVdpZGdldFBsYWNlbWVudChcbiAgICAgICAgbGF5b3V0U291cmNlLFxuICAgICAgICByZXNpemVTdGF0ZS53aWRnZXRJZCxcbiAgICAgICAge1xuICAgICAgICAgIHg6IHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueCA/PyByZXNpemVTdGF0ZS5zdGFydC54LFxuICAgICAgICAgIHk6IHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueSA/PyByZXNpemVTdGF0ZS5zdGFydC55LFxuICAgICAgICAgIHc6IHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8udyA/PyByZXNpemVTdGF0ZS5zdGFydC53LFxuICAgICAgICAgIGg6IHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8uaCA/PyByZXNpemVTdGF0ZS5zdGFydC5oLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLmNvbHVtbnMsXG4gICAgICAgIHJlc2l6ZVN0YXRlLnN0YXJ0LFxuICAgICAgKTtcblxuICAgIGlmIChwbGFjZW1lbnQpIHtcbiAgICAgIHRoaXMuY29tbWl0UGxhY2VtZW50KHBsYWNlbWVudCwgcmVzaXplU3RhdGUud2lkZ2V0SWQsICd3aWRnZXQtcmVzaXplJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud2lkZ2V0cyA9IHRoaXMud2lkZ2V0cy5tYXAod2lkZ2V0ID0+XG4gICAgICAgIHdpZGdldC5pZCA9PT0gcmVzaXplU3RhdGUud2lkZ2V0SWQgPyB7IC4uLndpZGdldCwgdzogcmVzaXplU3RhdGUuc3RhcnQudywgaDogcmVzaXplU3RhdGUuc3RhcnQuaCB9IDogd2lkZ2V0LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24gPSBudWxsO1xuICAgIHRoaXMucmVzaXplU3RhdGUgPSBudWxsO1xuICAgIHRoaXMuaW50ZXJhY3Rpb25BY3RpdmUgPSBmYWxzZTtcbiAgICB0aGlzLnJlbGVhc2VQb2ludGVyRXZlbnRzKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBoYW5kbGVIZWFkZXJLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCB3aWRnZXQ6IERhc2hib2FyZFdpZGdldCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5lZGl0YWJsZSB8fCB3aWRnZXQubm9Nb3ZlIHx8IHdpZGdldC5sb2NrZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG4gICAgY29uc3QgaXNSZXNpemUgPSBldmVudC5zaGlmdEtleTtcbiAgICBsZXQgcGxhY2VtZW50OiBQbGFjZW1lbnRSZXN1bHQgfCBudWxsID0gbnVsbDtcblxuICAgIGlmIChpc1Jlc2l6ZSAmJiBbJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0JywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoa2V5KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IGRlbHRhID0ga2V5ID09PSAnQXJyb3dSaWdodCcgfHwga2V5ID09PSAnQXJyb3dEb3duJyA/IDEgOiAtMTtcblxuICAgICAgaWYgKGtleSA9PT0gJ0Fycm93TGVmdCcgfHwga2V5ID09PSAnQXJyb3dSaWdodCcpIHtcbiAgICAgICAgY29uc3QgbWF4V2lkdGggPSB3aWRnZXQubWF4VyA/PyB0aGlzLmNvbHVtbnMgLSB3aWRnZXQueDtcbiAgICAgICAgY29uc3QgbmV4dFdpZHRoID0gTWF0aC5tYXgod2lkZ2V0Lm1pblcgPz8gMSwgTWF0aC5taW4obWF4V2lkdGgsIHdpZGdldC53ICsgZGVsdGEpKTtcbiAgICAgICAgcGxhY2VtZW50ID0gcmVzb2x2ZVdpZGdldFBsYWNlbWVudChcbiAgICAgICAgICB0aGlzLndpZGdldHMsXG4gICAgICAgICAgd2lkZ2V0LmlkLFxuICAgICAgICAgIHsgeDogd2lkZ2V0LngsIHk6IHdpZGdldC55LCB3OiBuZXh0V2lkdGgsIGg6IHdpZGdldC5oIH0sXG4gICAgICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gd2lkZ2V0Lm1heEggPz8gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgICAgICBjb25zdCBuZXh0SGVpZ2h0ID0gTWF0aC5tYXgod2lkZ2V0Lm1pbkggPz8gMSwgTWF0aC5taW4obWF4SGVpZ2h0LCB3aWRnZXQuaCArIGRlbHRhKSk7XG4gICAgICAgIHBsYWNlbWVudCA9IHJlc29sdmVXaWRnZXRQbGFjZW1lbnQoXG4gICAgICAgICAgdGhpcy53aWRnZXRzLFxuICAgICAgICAgIHdpZGdldC5pZCxcbiAgICAgICAgICB7IHg6IHdpZGdldC54LCB5OiB3aWRnZXQueSwgdzogd2lkZ2V0LncsIGg6IG5leHRIZWlnaHQgfSxcbiAgICAgICAgICB0aGlzLmNvbHVtbnMsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwbGFjZW1lbnQpIHtcbiAgICAgICAgdGhpcy5jb21taXRQbGFjZW1lbnQocGxhY2VtZW50LCB3aWRnZXQuaWQsICd3aWRnZXQtcmVzaXplJyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbW92ZU1hcDogUmVjb3JkPHN0cmluZywgeyBkeDogbnVtYmVyOyBkeTogbnVtYmVyIH0+ID0ge1xuICAgICAgQXJyb3dMZWZ0OiB7IGR4OiAtMSwgZHk6IDAgfSxcbiAgICAgIEFycm93UmlnaHQ6IHsgZHg6IDEsIGR5OiAwIH0sXG4gICAgICBBcnJvd1VwOiB7IGR4OiAwLCBkeTogLTEgfSxcbiAgICAgIEFycm93RG93bjogeyBkeDogMCwgZHk6IDEgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgZGVsdGEgPSBtb3ZlTWFwW2tleV07XG4gICAgaWYgKCFkZWx0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgdGFyZ2V0WCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHRoaXMuY29sdW1ucyAtIHdpZGdldC53LCB3aWRnZXQueCArIGRlbHRhLmR4KSk7XG4gICAgY29uc3QgdGFyZ2V0WSA9IE1hdGgubWF4KDAsIHdpZGdldC55ICsgZGVsdGEuZHkpO1xuXG4gICAgcGxhY2VtZW50ID0gcmVzb2x2ZVdpZGdldFBsYWNlbWVudCh0aGlzLndpZGdldHMsIHdpZGdldC5pZCwgeyB4OiB0YXJnZXRYLCB5OiB0YXJnZXRZIH0sIHRoaXMuY29sdW1ucyk7XG4gICAgaWYgKHBsYWNlbWVudCkge1xuICAgICAgdGhpcy5jb21taXRQbGFjZW1lbnQocGxhY2VtZW50LCB3aWRnZXQuaWQsICd3aWRnZXQtbW92ZScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQsIHdpZGdldDogRGFzaGJvYXJkV2lkZ2V0KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBvcGVuV2lkZ2V0Q29udGV4dE1lbnUoeyB3aWRnZXQsIGhvc3Q6IHRoaXMsIGV2ZW50IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21taXRQbGFjZW1lbnQocmVzdWx0OiBQbGFjZW1lbnRSZXN1bHQsIHdpZGdldElkOiBzdHJpbmcsIHR5cGU6ICd3aWRnZXQtbW92ZScgfCAnd2lkZ2V0LXJlc2l6ZScpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZpZXdXaWRnZXRzID0gbnVsbDtcbiAgICB0aGlzLndpZGdldHMgPSByZXN1bHQud2lkZ2V0cztcbiAgICBjb25zdCBzdWJqZWN0ID0gdGhpcy53aWRnZXRzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSB3aWRnZXRJZCk7XG4gICAgaWYgKHN1YmplY3QpIHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50KHR5cGUsIHtcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIHdpZGdldDogc3ViamVjdCxcbiAgICAgICAgICAgIGRpc3BsYWNlZDogcmVzdWx0Lm1vdmVkV2lkZ2V0cy5maWx0ZXIoaWQgPT4gaWQgIT09IHdpZGdldElkKSxcbiAgICAgICAgICAgIHN3YXBwZWRXaXRoOiByZXN1bHQuc3dhcHBlZFdpdGgsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZVdpZGdldCh3aWRnZXRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy53aWRnZXRzLmZpbmQod2lkZ2V0ID0+IHdpZGdldC5pZCA9PT0gd2lkZ2V0SWQpO1xuICAgIGlmICghdGFyZ2V0KSByZXR1cm47XG4gICAgdGhpcy53aWRnZXRzID0gdGhpcy53aWRnZXRzLmZpbHRlcih3aWRnZXQgPT4gd2lkZ2V0LmlkICE9PSB3aWRnZXRJZCk7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCd3aWRnZXQtcmVtb3ZlJywge1xuICAgICAgICBkZXRhaWw6IHsgd2lkZ2V0OiB0YXJnZXQgfSxcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVdpZGdldCh3aWRnZXRJZDogc3RyaW5nLCB1cGRhdGVzOiBQYXJ0aWFsPERhc2hib2FyZFdpZGdldD4pOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldHMgPSB0aGlzLndpZGdldHMubWFwKHdpZGdldCA9PiAod2lkZ2V0LmlkID09PSB3aWRnZXRJZCA/IHsgLi4ud2lkZ2V0LCAuLi51cGRhdGVzIH0gOiB3aWRnZXQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYXlvdXQoKTogRGFzaGJvYXJkTGF5b3V0SXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy53aWRnZXRzLm1hcCgoeyBpZCwgeCwgeSwgdywgaCB9KSA9PiAoeyBpZCwgeCwgeSwgdywgaCB9KSk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGF5b3V0KGxheW91dDogRGFzaGJvYXJkTGF5b3V0SXRlbVtdKTogdm9pZCB7XG4gICAgdGhpcy53aWRnZXRzID0gYXBwbHlMYXlvdXQodGhpcy53aWRnZXRzLCBsYXlvdXQpO1xuICB9XG5cbiAgcHVibGljIGxvY2tHcmlkKCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdGFibGUgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB1bmxvY2tHcmlkKCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdGFibGUgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGFkZFdpZGdldCh3aWRnZXQ6IERhc2hib2FyZFdpZGdldCwgYXV0b1Bvc2l0aW9uID0gZmFsc2UpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0V2lkZ2V0ID0geyAuLi53aWRnZXQgfTtcbiAgICBpZiAoYXV0b1Bvc2l0aW9uIHx8IG5leHRXaWRnZXQuYXV0b1Bvc2l0aW9uKSB7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IGZpbmRBdmFpbGFibGVQb3NpdGlvbih0aGlzLndpZGdldHMsIG5leHRXaWRnZXQudywgbmV4dFdpZGdldC5oLCB0aGlzLmNvbHVtbnMpO1xuICAgICAgbmV4dFdpZGdldC54ID0gcG9zaXRpb24ueDtcbiAgICAgIG5leHRXaWRnZXQueSA9IHBvc2l0aW9uLnk7XG4gICAgfVxuXG4gICAgdGhpcy53aWRnZXRzID0gWy4uLnRoaXMud2lkZ2V0cywgbmV4dFdpZGdldF07XG4gIH1cblxuICBwdWJsaWMgY29tcGFjdChkaXJlY3Rpb246IExheW91dERpcmVjdGlvbiA9ICd2ZXJ0aWNhbCcpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0V2lkZ2V0cyA9IHRoaXMud2lkZ2V0cy5tYXAod2lkZ2V0ID0+ICh7IC4uLndpZGdldCB9KSk7XG4gICAgY29tcGFjdExheW91dChuZXh0V2lkZ2V0cywgZGlyZWN0aW9uKTtcbiAgICB0aGlzLndpZGdldHMgPSBuZXh0V2lkZ2V0cztcbiAgfVxuXG4gIHB1YmxpYyBhcHBseUJyZWFrcG9pbnRMYXlvdXQoYnJlYWtwb2ludDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVCcmVha3BvaW50ID0gYnJlYWtwb2ludDtcbiAgICBjb25zdCBsYXlvdXQgPSB0aGlzLmxheW91dHM/LlticmVha3BvaW50XTtcbiAgICBpZiAobGF5b3V0KSB7XG4gICAgICB0aGlzLnNldExheW91dChsYXlvdXQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBub3RpZnlMYXlvdXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdsYXlvdXQtY2hhbmdlJywge1xuICAgICAgICBkZXRhaWw6IHsgbGF5b3V0OiB0aGlzLmdldExheW91dCgpIH0sXG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlTWV0cmljcygpOiBHcmlkQ2VsbE1ldHJpY3Mge1xuICAgIGlmICghdGhpcy5tZXRyaWNzKSB7XG4gICAgICB0aGlzLmNvbXB1dGVNZXRyaWNzKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1ldHJpY3MhO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wdXRlTWV0cmljcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHJldHVybjtcbiAgICBjb25zdCBib3VuZHMgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMuY29udGFpbmVyQm91bmRzID0gYm91bmRzO1xuICAgIGNvbnN0IG1hcmdpbnMgPSByZXNvbHZlTWFyZ2lucyh0aGlzLm1hcmdpbik7XG4gICAgdGhpcy5yZXNvbHZlZE1hcmdpbnMgPSBtYXJnaW5zO1xuICAgIHRoaXMubWV0cmljcyA9IGNhbGN1bGF0ZUNlbGxNZXRyaWNzKGJvdW5kcy53aWR0aCwgdGhpcy5jb2x1bW5zLCBtYXJnaW5zLCB0aGlzLmNlbGxIZWlnaHQsIHRoaXMuY2VsbEhlaWdodFVuaXQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlUmVzaXplKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSByZXR1cm47XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLmNvbXB1dGVNZXRyaWNzKCk7XG4gICAgfSk7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNjb25uZWN0UmVzaXplT2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHJlbGVhc2VQb2ludGVyRXZlbnRzKCk6IHZvaWQge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgdGhpcy5oYW5kbGVEcmFnTW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5oYW5kbGVEcmFnRW5kKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVybW92ZScsIHRoaXMuaGFuZGxlUmVzaXplTW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5oYW5kbGVSZXNpemVFbmQpO1xuICB9XG5cbiAgcHJpdmF0ZSBweFRvUGVyY2VudCh2YWx1ZTogbnVtYmVyLCBjb250YWluZXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKCFjb250YWluZXIpIHJldHVybiAwO1xuICAgIHJldHVybiBOdW1iZXIoKCh2YWx1ZSAvIGNvbnRhaW5lcikgKiAxMDApLnRvRml4ZWQoNCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wdXRlV2lkZ2V0UmVjdChcbiAgICB3aWRnZXQ6IFBpY2s8RGFzaGJvYXJkV2lkZ2V0LCAneCcgfCAneScgfCAndycgfCAnaCc+LFxuICAgIG1ldHJpY3M6IEdyaWRDZWxsTWV0cmljcyxcbiAgICBtYXJnaW5zOiBEYXNoYm9hcmRSZXNvbHZlZE1hcmdpbnMsXG4gICkge1xuICAgIGNvbnN0IGNlbGxXaWR0aCA9IG1ldHJpY3MuY2VsbFdpZHRoUHg7XG4gICAgY29uc3QgY2VsbEhlaWdodCA9IG1ldHJpY3MuY2VsbEhlaWdodFB4O1xuICAgIGNvbnN0IGxlZnQgPSB3aWRnZXQueCAqIChjZWxsV2lkdGggKyBtYXJnaW5zLmhvcml6b250YWwpICsgbWFyZ2lucy5ob3Jpem9udGFsO1xuICAgIGNvbnN0IHRvcCA9IHdpZGdldC55ICogKGNlbGxIZWlnaHQgKyBtYXJnaW5zLnZlcnRpY2FsKSArIG1hcmdpbnMudmVydGljYWw7XG4gICAgY29uc3Qgd2lkdGggPSB3aWRnZXQudyAqIGNlbGxXaWR0aCArIE1hdGgubWF4KDAsIHdpZGdldC53IC0gMSkgKiBtYXJnaW5zLmhvcml6b250YWw7XG4gICAgY29uc3QgaGVpZ2h0ID0gd2lkZ2V0LmggKiBjZWxsSGVpZ2h0ICsgTWF0aC5tYXgoMCwgd2lkZ2V0LmggLSAxKSAqIG1hcmdpbnMudmVydGljYWw7XG5cbiAgICByZXR1cm4geyBsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQgfTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGh0bWwgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVtb0Z1bmMoKSB7XG4gIHJldHVybiBodG1sYFxuICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9XCIxXCI+VGhpcyBpcyBhIEgxIGhlYWRpbmc8L2RlZXMtaGVhZGluZz5cbiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPVwiMlwiPlRoaXMgaXMgYSBIMiBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+XG4gICAgPGRlZXMtaGVhZGluZyBsZXZlbD1cIjNcIj5UaGlzIGlzIGEgSDMgaGVhZGluZzwvZGVlcy1oZWFkaW5nPlxuICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9XCI0XCI+VGhpcyBpcyBhIEg0IGhlYWRpbmc8L2RlZXMtaGVhZGluZz5cbiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPVwiNVwiPlRoaXMgaXMgYSBINSBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+XG4gICAgPGRlZXMtaGVhZGluZyBsZXZlbD1cIjZcIj5UaGlzIGlzIGEgSDYgaGVhZGluZzwvZGVlcy1oZWFkaW5nPlxuICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9XCJoclwiPlRoaXMgaXMgYW4gaHIgaGVhZGluZzwvZGVlcy1oZWFkaW5nPlxuICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9XCJoci1zbWFsbFwiPlRoaXMgaXMgYW4gaHIgc21hbGwgaGVhZGluZzwvZGVlcy1oZWFkaW5nPlxuICBgO1xufSIsICJpbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBjc3MsXG4gIHByb3BlcnR5LFxuICBjc3NNYW5hZ2VyLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBEZWVzRWxlbWVudCxcbiAgdHlwZSBDU1NSZXN1bHQsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLWhlYWRpbmcuZGVtby5qcyc7XG5pbXBvcnQgeyBjc3NDYWxTYW5zRm9udEZhbWlseSB9IGZyb20gJy4uLzAwZm9udHMuanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtaGVhZGluZyc6IERlZXNIZWFkaW5nO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLWhlYWRpbmcnKVxuZXhwb3J0IGNsYXNzIERlZXNIZWFkaW5nIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICAvLyBkZW1vXG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuXG4gIC8vIHByb3BlcnRpZXNcbiAgLyoqXG4gICAqIEhlYWRpbmcgbGV2ZWw6IDEtNiBmb3IgaDEtaDYsIG9yICdocicgZm9yIGhvcml6b250YWwgcnVsZSBzdHlsZVxuICAgKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0pXG4gIGFjY2Vzc29yIGxldmVsOiAnMScgfCAnMicgfCAnMycgfCAnNCcgfCAnNScgfCAnNicgfCAnaHInIHwgJ2hyLXNtYWxsJyA9ICcxJztcblxuICAvLyBTVEFUSUMgU1RZTEVTXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzOiBDU1NSZXN1bHRbXSA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICAvKiBIZWFkaW5nIHN0eWxlcyAqL1xuICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICAgIG1hcmdpbjogMTZweCAwIDhweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDAwJywgJyNmZmYnKX07XG4gICAgICB9XG4gICAgICBoMSB7IGZvbnQtc2l6ZTogMzJweDsgZm9udC1mYW1pbHk6ICR7Y3NzQ2FsU2Fuc0ZvbnRGYW1pbHl9OyBsZXR0ZXItc3BhY2luZzogMC4wMjVlbTt9XG4gICAgICBoMiB7IGZvbnQtc2l6ZTogMjhweDsgfVxuICAgICAgaDMgeyBmb250LXNpemU6IDI0cHg7IH1cbiAgICAgIGg0IHsgZm9udC1zaXplOiAyMHB4OyB9XG4gICAgICBoNSB7IGZvbnQtc2l6ZTogMTZweDsgfVxuICAgICAgaDYgeyBmb250LXNpemU6IDE0cHg7IH1cbiAgICAgIC8qIEhvcml6b250YWwgcnVsZSBzdHlsZSBoZWFkaW5nICovXG4gICAgICAuaGVhZGluZy1ociB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiAxNnB4IDA7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzAwMCcsICcjZmZmJyl9O1xuICAgICAgfVxuICAgICAgLyogRmFkZSBsaW5lcyB0b3dhcmQgYW5kIGF3YXkgZnJvbSB0ZXh0IGZvciBociBzdHlsZSAqL1xuICAgICAgLmhlYWRpbmctaHI6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgLyogZmFkZSBpbiB0b3dhcmQgY2VudGVyICovXG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKFxuICAgICAgICAgICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50LCAjY2NjKScsXG4gICAgICAgICAgJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsICMzMzMpJ1xuICAgICAgICApfTtcbiAgICAgICAgbWFyZ2luOiAwIDhweDtcbiAgICAgIH1cbiAgICAgIC5oZWFkaW5nLWhyOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgLyogZmFkZSBvdXQgYXdheSBmcm9tIGNlbnRlciAqL1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZShcbiAgICAgICAgICAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjY2NjLCB0cmFuc3BhcmVudCknLFxuICAgICAgICAgICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMzMzMsIHRyYW5zcGFyZW50KSdcbiAgICAgICAgKX07XG4gICAgICAgIG1hcmdpbjogMCA4cHg7XG4gICAgICB9XG4gICAgICAvKiBTbWFsbCBociB2YXJpYW50IHdpdGggcmVkdWNlZCBtYXJnaW5zICovXG4gICAgICAuaGVhZGluZy1oci5oZWFkaW5nLWhyLXNtYWxsIHtcbiAgICAgICAgbWFyZ2luOiA4cHggMDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgfVxuICAgICAgLmhlYWRpbmctaHIuaGVhZGluZy1oci1zbWFsbDo6YmVmb3JlLFxuICAgICAgLmhlYWRpbmctaHIuaGVhZGluZy1oci1zbWFsbDo6YWZ0ZXIge1xuICAgICAgICBtYXJnaW46IDAgOHB4O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cblxuICAvLyBJTlNUQU5DRVxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBzd2l0Y2ggKHRoaXMubGV2ZWwpIHtcbiAgICAgIGNhc2UgJzEnOlxuICAgICAgICByZXR1cm4gaHRtbGA8aDE+PHNsb3Q+PC9zbG90PjwvaDE+YDtcbiAgICAgIGNhc2UgJzInOlxuICAgICAgICByZXR1cm4gaHRtbGA8aDI+PHNsb3Q+PC9zbG90PjwvaDI+YDtcbiAgICAgIGNhc2UgJzMnOlxuICAgICAgICByZXR1cm4gaHRtbGA8aDM+PHNsb3Q+PC9zbG90PjwvaDM+YDtcbiAgICAgIGNhc2UgJzQnOlxuICAgICAgICByZXR1cm4gaHRtbGA8aDQ+PHNsb3Q+PC9zbG90PjwvaDQ+YDtcbiAgICAgIGNhc2UgJzUnOlxuICAgICAgICByZXR1cm4gaHRtbGA8aDU+PHNsb3Q+PC9zbG90PjwvaDU+YDtcbiAgICAgIGNhc2UgJzYnOlxuICAgICAgICByZXR1cm4gaHRtbGA8aDY+PHNsb3Q+PC9zbG90PjwvaDY+YDtcbiAgICAgIGNhc2UgJ2hyJzpcbiAgICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImhlYWRpbmctaHJcIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDtcbiAgICAgIGNhc2UgJ2hyLXNtYWxsJzpcbiAgICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImhlYWRpbmctaHIgaGVhZGluZy1oci1zbWFsbFwiPjxzbG90Pjwvc2xvdD48L2Rpdj5gO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGh0bWxgPGgxPjxzbG90Pjwvc2xvdD48L2gxPmA7XG4gICAgfVxuICB9XG59IiwgImltcG9ydCB7IGh0bWwgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiBodG1sYFxuICA8ZGVlcy1oaW50PjwvZGVlcy1oaW50PlxuYDtcbiIsICJpbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgY3NzLFxuICBjc3NNYW5hZ2VyLFxuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBwcm9wZXJ0eSxcbiAgdHlwZSBDU1NSZXN1bHQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmltcG9ydCAqIGFzIGRvbXRvb2xzIGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtaGludC5kZW1vLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLzAwdGhlbWUuanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdkZWVzLWhpbnQnOiBEZWVzSGludDtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1oaW50JylcbmV4cG9ydCBjbGFzcyBEZWVzSGludCBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGFjY2Vzc29yIHR5cGU6ICdpbmZvJyB8ICd3YXJuJyB8ICdlcnJvcicgfCAnY3JpdGljYWwnID0gJ2luZm8nO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZG9tdG9vbHMuZWxlbWVudEJhc2ljLnNldHVwKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFt0aGVtZURlZmF1bHRTdHlsZXMsIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcywgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICBgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGAgPGRpdiBjbGFzcz1cIm1haW5ib3hcIj48L2Rpdj4gYDtcbiAgfVxufVxuIiwgImV4cG9ydCAqIGZyb20gJy4vZGVlcy1pY29uLmpzJztcbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLzAwcGx1Z2lucy5qcyc7XG5pbXBvcnQgeyB6SW5kZXhSZWdpc3RyeSB9IGZyb20gJy4uLzAwemluZGV4LmpzJztcbmltcG9ydCB7IGNzc0dlaXN0Rm9udEZhbWlseSB9IGZyb20gJy4uLzAwZm9udHMuanMnO1xuaW1wb3J0IHtcbiAgY3NzTWFuYWdlcixcbiAgY3NzLFxuICB0eXBlIENTU1Jlc3VsdCxcbiAgY3VzdG9tRWxlbWVudCxcbiAgRGVlc0VsZW1lbnQsXG4gIGRvbXRvb2xzLFxuICBodG1sLFxuICBwcm9wZXJ0eSxcbiAgc3RhdGUsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBEZWVzV2luZG93TGF5ZXIgfSBmcm9tICcuLi9kZWVzLXdpbmRvd2xheWVyL2RlZXMtd2luZG93bGF5ZXIuanMnO1xuaW1wb3J0ICcuLi9kZWVzLWljb24vZGVlcy1pY29uLmpzJztcbmltcG9ydCB7IHRoZW1lRGVmYXVsdFN0eWxlcyB9IGZyb20gJy4uLzAwdGhlbWUuanMnO1xuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1tb2JpbGVuYXZpZ2F0aW9uJylcbmV4cG9ydCBjbGFzcyBEZWVzTW9iaWxlbmF2aWdhdGlvbiBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgLy8gU1RBVElDXG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9ICgpID0+IGh0bWxgXG4gICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpID0+IHtcbiAgICAgIERlZXNNb2JpbGVuYXZpZ2F0aW9uLmNyZWF0ZUFuZFNob3coW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0Rhc2hib2FyZCcsXG4gICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6bGF5b3V0LWRhc2hib2FyZCcsXG4gICAgICAgICAgYWN0aW9uOiBhc3luYyAoZGVlc01vYmlsZU5hdikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ05hdmlnYXRlIHRvIGRhc2hib2FyZCcpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdQcm9maWxlJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTp1c2VyJyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jIChkZWVzTW9iaWxlTmF2KSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnTmF2aWdhdGUgdG8gcHJvZmlsZScpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTZXR0aW5ncycsXG4gICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6c2V0dGluZ3MnLFxuICAgICAgICAgIGFjdGlvbjogYXN5bmMgKGRlZXNNb2JpbGVOYXYpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdOYXZpZ2F0ZSB0byBzZXR0aW5ncycpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBkaXZpZGVyOiB0cnVlIH0gYXMgYW55LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0hlbHAnLFxuICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmhlbHAtY2lyY2xlJyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jIChkZWVzTW9iaWxlTmF2KSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnU2hvdyBoZWxwJyk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1NpZ24gT3V0JyxcbiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpsb2ctb3V0JyxcbiAgICAgICAgICBhY3Rpb246IGFzeW5jIChkZWVzTW9iaWxlTmF2KSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnU2lnbiBvdXQnKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9fT5PcGVuIE1vYmlsZSBOYXZpZ2F0aW9uPC9kZWVzLWJ1dHRvbj5cbiAgYDtcblxuICBwcml2YXRlIHN0YXRpYyBzaW5nbGV0b25SZWY6IERlZXNNb2JpbGVuYXZpZ2F0aW9uO1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3cobWVudUl0ZW1zQXJnOiBwbHVnaW5zLnRzY2xhc3Mud2Vic2l0ZS5JTWVudUl0ZW08RGVlc01vYmlsZW5hdmlnYXRpb24+W10pIHtcbiAgICBpZiAoIXRoaXMuc2luZ2xldG9uUmVmKSB7XG4gICAgICB0aGlzLnNpbmdsZXRvblJlZiA9IG5ldyBEZWVzTW9iaWxlbmF2aWdhdGlvbigpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5zaW5nbGV0b25SZWYpO1xuICAgICAgYXdhaXQgdGhpcy5zaW5nbGV0b25SZWYuaW5pdCgpO1xuICAgIH1cbiAgICB0aGlzLnNpbmdsZXRvblJlZi5tZW51SXRlbXMgPSBtZW51SXRlbXNBcmc7XG4gICAgYXdhaXQgdGhpcy5zaW5nbGV0b25SZWYucmVhZHlEZWZlcnJlZC5wcm9taXNlO1xuICAgIHRoaXMuc2luZ2xldG9uUmVmLnNob3coKTtcbiAgICByZXR1cm4gdGhpcy5zaW5nbGV0b25SZWY7XG4gIH1cblxuICAvLyBJTlNUQU5DRVxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IFN0cmluZyxcbiAgfSlcbiAgYWNjZXNzb3IgaGVhZGluZzogc3RyaW5nID0gYE1lbnVgO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogQXJyYXksXG4gIH0pXG4gIGFjY2Vzc29yIG1lbnVJdGVtczogcGx1Z2lucy50c2NsYXNzLndlYnNpdGUuSU1lbnVJdGVtW10gPSBbXTtcblxuICBAc3RhdGUoKVxuICBhY2Nlc3NvciBtb2JpbGVOYXZaSW5kZXg6IG51bWJlciA9IDEwMDA7XG5cbiAgcmVhZHlEZWZlcnJlZDogcGx1Z2lucy5zbWFydHByb21pc2UuRGVmZXJyZWQ8YW55PiA9IGRvbXRvb2xzLnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvKiB0aGlzLmluaXQoKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuc2hvdygpO1xuICAgIH0pOyAqL1xuICB9XG5cbiAgLyoqXG4gICAqIGluaXRzIHRoZSBtb2JpbGUgbmF2aWdhdGlvblxuICAgKi9cbiAgcHVibGljIGFzeW5jIGluaXQoKSB7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtcbiAgICB0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgOmhvc3Qge1xuICAgICAgICBmb250LWZhbWlseTogJHtjc3NHZWlzdEZvbnRGYW1pbHl9O1xuICAgICAgfVxuXG4gICAgICAubWFpbiB7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMzIwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDkwOTBiJywgJyNmYWZhZmEnKX07XG4gICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICByaWdodDogMHB4O1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmZmZmJywgJyMwOTA5MGInKX07XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKFxuICAgICAgICAgICctMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCknLFxuICAgICAgICAgICctMjBweCAwIDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMyksIC0xMHB4IDAgMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSdcbiAgICAgICAgKX07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG5cbiAgICAgIC5tYWluLnNob3cge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjMjcyNzJhJyl9O1xuICAgICAgfVxuXG4gICAgICAuaGVhZGluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzA5MDkwYicsICcjZmFmYWZhJyl9O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5tZW51LWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgIH1cblxuICAgICAgLm1lbnVJdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzcxNzE3YScsICcjYTFhMWFhJyl9O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgfVxuXG4gICAgICAubWVudUl0ZW06aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y0ZjRmNScsICcjMjcyNzJhJyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgIH1cblxuICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZTVlN2ViJywgJyMzZjNmNDYnKX07XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7XG4gICAgICB9XG5cbiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24ge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyM3MTcxN2EnKX07XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5tZW51SXRlbTpob3ZlciBkZWVzLWljb24ge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICAgIH1cblxuICAgICAgLm1lbnVJdGVtLXRleHQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgICAgIH1cblxuICAgICAgLm1lbnVJdGVtLWRpdmlkZXIge1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICAgICAgbWFyZ2luOiA4cHggMTZweDtcbiAgICAgIH1cblxuICAgICAgLyogTW9iaWxlIHJlc3BvbnNpdmVuZXNzICovXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpIHtcbiAgICAgICAgLm1haW4ge1xuICAgICAgICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgICAgICAgd2lkdGg6IDg1dnc7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLyogQW5pbWF0aW9uIGZvciBtZW51IGl0ZW1zICovXG4gICAgICBAa2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xuICAgICAgICB9XG4gICAgICAgIHRvIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWFpbi5zaG93IC5tZW51SXRlbSB7XG4gICAgICAgIGFuaW1hdGlvbjogc2xpZGVJblJpZ2h0IDAuM3MgZWFzZS1vdXQgZm9yd2FyZHM7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogY2FsYyh2YXIoLS1pdGVtLWluZGV4LCAwKSAqIDAuMDVzKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi9cbiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgfVxuXG4gICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2U1ZTdlYicsICcjM2YzZjQ2Jyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICB9XG5cbiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2QxZDVkYicsICcjNTI1MjViJyl9O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpIHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzdHlsZT5cbiAgICAgICAgLm1haW4ge1xuICAgICAgICAgIC0tei1pbmRleDogJHt0aGlzLm1vYmlsZU5hdlpJbmRleH07XG4gICAgICAgIH1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFpblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiaGVhZGluZ1wiPiR7dGhpcy5oZWFkaW5nfTwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250YWluZXJcIj5cbiAgICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgobWVudUl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoJ2RpdmlkZXInIGluIG1lbnVJdGVtICYmIG1lbnVJdGVtLmRpdmlkZXIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cIm1lbnVJdGVtLWRpdmlkZXJcIj48L2Rpdj5gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnVJdGVtXCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIi0taXRlbS1pbmRleDogJHtpbmRleH1cIlxuICAgICAgICAgICAgICAgIEBjbGljaz1cIiR7KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICBtZW51SXRlbS5hY3Rpb24odGhpcyk7XG4gICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJHttZW51SXRlbS5pY29uTmFtZSA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7bWVudUl0ZW0uaWNvbk5hbWV9IHNpemU9XCIyMFwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICAgIGAgOiAnJ31cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnVJdGVtLXRleHRcIj4ke21lbnVJdGVtLm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgd2luZG93TGF5ZXI6IERlZXNXaW5kb3dMYXllcjtcblxuICAvKipcbiAgICogaW5pdHMgdGhlIHNob3dcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaG93KCkge1xuICAgIGNvbnN0IGRvbXRvb2xzID0gYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7XG4gICAgY29uc3QgbWFpbiA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWFpbicpO1xuICAgIFxuICAgIC8vIENyZWF0ZSB3aW5kb3cgbGF5ZXIgZmlyc3QgKGl0IHdpbGwgZ2V0IGl0cyBvd24gei1pbmRleClcbiAgICBpZiAoIXRoaXMud2luZG93TGF5ZXIpIHtcbiAgICAgIHRoaXMud2luZG93TGF5ZXIgPSBhd2FpdCBEZWVzV2luZG93TGF5ZXIuY3JlYXRlQW5kU2hvdyh7XG4gICAgICAgIGJsdXI6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHRoaXMud2luZG93TGF5ZXIpO1xuICAgICAgYXdhaXQgdGhpcy53aW5kb3dMYXllci5zaG93KCk7XG4gICAgfVxuICAgIFxuICAgIC8vIEdldCB6LWluZGV4IGZvciBtb2JpbGUgbmF2ICh3aWxsIGJlIGFib3ZlIHdpbmRvdyBsYXllcilcbiAgICB0aGlzLm1vYmlsZU5hdlpJbmRleCA9IHpJbmRleFJlZ2lzdHJ5LmdldE5leHRaSW5kZXgoKTtcbiAgICB6SW5kZXhSZWdpc3RyeS5yZWdpc3Rlcih0aGlzLCB0aGlzLm1vYmlsZU5hdlpJbmRleCk7XG5cbiAgICBhd2FpdCBkb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwKTtcbiAgICBtYWluLmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBpbml0cyB0aGUgaGlkZSBmdW5jdGlvblxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhpZGUoKSB7XG4gICAgY29uc3QgZG9tdG9vbHMgPSBhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtcbiAgICBjb25zdCBtYWluID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tYWluJyk7XG4gICAgbWFpbi5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XG4gICAgXG4gICAgLy8gVW5yZWdpc3RlciBmcm9tIHotaW5kZXggcmVnaXN0cnlcbiAgICB6SW5kZXhSZWdpc3RyeS51bnJlZ2lzdGVyKHRoaXMpO1xuICAgIFxuICAgIGlmICh0aGlzLndpbmRvd0xheWVyKSB7XG4gICAgICBhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIFxuICAgIC8vIENsZWFudXBcbiAgICB6SW5kZXhSZWdpc3RyeS51bnJlZ2lzdGVyKHRoaXMpO1xuICAgIFxuICAgIGlmICh0aGlzLndpbmRvd0xheWVyKSB7XG4gICAgICBhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBodG1sIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuLyoqXG4gKiBEZW1vIGZvciBkZWVzLXBhZ2luYXRpb24gY29tcG9uZW50XG4gKi9cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IGh0bWxgXG4gIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDE2cHg7XCI+XG4gICAgPCEtLSBTbWFsbCBzZXQgb2YgcGFnZXMgLS0+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4O1wiPlxuICAgICAgPHNwYW4+NSBwYWdlcywgc3RhcnRpbmcgYXQgMTo8L3NwYW4+XG4gICAgICA8ZGVlcy1wYWdpbmF0aW9uXG4gICAgICAgIC50b3RhbD0kezV9XG4gICAgICAgIC5wYWdlPSR7MX1cbiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7KGU6IEN1c3RvbUV2ZW50KSA9PiBjb25zb2xlLmxvZygnUGFnZSBjaGFuZ2VkIHRvJywgZS5kZXRhaWwucGFnZSl9XG4gICAgICA+PC9kZWVzLXBhZ2luYXRpb24+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIExhcmdlciBzZXQgb2YgcGFnZXMgLS0+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4O1wiPlxuICAgICAgPHNwYW4+MTUgcGFnZXMsIHN0YXJ0aW5nIGF0IDg6PC9zcGFuPlxuICAgICAgPGRlZXMtcGFnaW5hdGlvblxuICAgICAgICAudG90YWw9JHsxNX1cbiAgICAgICAgLnBhZ2U9JHs4fVxuICAgICAgICBAcGFnZS1jaGFuZ2U9JHsoZTogQ3VzdG9tRXZlbnQpID0+IGNvbnNvbGUubG9nKCdQYWdlIGNoYW5nZWQgdG8nLCBlLmRldGFpbC5wYWdlKX1cbiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5gOyIsICJpbXBvcnQgeyBjdXN0b21FbGVtZW50LCBodG1sLCBEZWVzRWxlbWVudCwgcHJvcGVydHksIGNzcywgY3NzTWFuYWdlciwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy1wYWdpbmF0aW9uLmRlbW8uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtcGFnaW5hdGlvbic6IERlZXNQYWdpbmF0aW9uO1xuICB9XG59XG5cbi8qKlxuICogQSBzaW1wbGUgcGFnaW5hdGlvbiBjb21wb25lbnQuXG4gKiBAZmlyZXMgcGFnZS1jaGFuZ2UgLSBFbWl0dGVkIHdoZW4gdGhlIHBhZ2UgaXMgY2hhbmdlZC4gZGV0YWlsOiB7IHBhZ2U6IG51bWJlciB9XG4gKi9cbkBjdXN0b21FbGVtZW50KCdkZWVzLXBhZ2luYXRpb24nKVxuZXhwb3J0IGNsYXNzIERlZXNQYWdpbmF0aW9uIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcbiAgLyoqIEN1cnJlbnQgcGFnZSAoMS1iYXNlZCkgKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyLCByZWZsZWN0OiB0cnVlIH0pXG4gIGFjY2Vzc29yIHBhZ2UgPSAxO1xuXG4gIC8qKiBUb3RhbCBudW1iZXIgb2YgcGFnZXMgKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyLCByZWZsZWN0OiB0cnVlIH0pXG4gIGFjY2Vzc29yIHRvdGFsID0gMTtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuICAgICAgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzMzMycsICcjY2NjJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycztcbiAgICAgIH1cbiAgICAgIGJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZWVlJywgJyM0NDQnKX07XG4gICAgICB9XG4gICAgICBidXR0b246ZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2FhYScsICcjNjY2Jyl9O1xuICAgICAgfVxuICAgICAgYnV0dG9uLmN1cnJlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDA1MGI5O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICAgICAgc3Bhbi5lbGxpcHNpcyB7XG4gICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzMzMycsICcjY2NjJyl9O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHJpdmF0ZSBnZXQgcGFnZXMoKTogKG51bWJlciB8IHN0cmluZylbXSB7XG4gICAgY29uc3QgcGFnZXM6IChudW1iZXIgfCBzdHJpbmcpW10gPSBbXTtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMudG90YWw7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMucGFnZTtcbiAgICBpZiAodG90YWwgPD0gNykge1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdG90YWw7IGkrKykge1xuICAgICAgICBwYWdlcy5wdXNoKGkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYWdlcy5wdXNoKDEpO1xuICAgICAgaWYgKGN1cnJlbnQgPiA0KSB7XG4gICAgICAgIHBhZ2VzLnB1c2goJy4uLicpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3RhcnQgPSBNYXRoLm1heCgyLCBjdXJyZW50IC0gMik7XG4gICAgICBjb25zdCBlbmQgPSBNYXRoLm1pbih0b3RhbCAtIDEsIGN1cnJlbnQgKyAyKTtcbiAgICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykge1xuICAgICAgICBwYWdlcy5wdXNoKGkpO1xuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnQgPCB0b3RhbCAtIDMpIHtcbiAgICAgICAgcGFnZXMucHVzaCgnLi4uJyk7XG4gICAgICB9XG4gICAgICBwYWdlcy5wdXNoKHRvdGFsKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhZ2VzO1xuICB9XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8YnV0dG9uXG4gICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuY2hhbmdlUGFnZSh0aGlzLnBhZ2UgLSAxKX1cbiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5wYWdlIDw9IDF9XG4gICAgICAgIGFyaWEtbGFiZWw9XCJQcmV2aW91cyBwYWdlXCJcbiAgICAgID5cbiAgICAgICAgXHUyMDM5XG4gICAgICA8L2J1dHRvbj5cbiAgICAgICR7dGhpcy5wYWdlcy5tYXAoKHApID0+XG4gICAgICAgIHAgPT09ICcuLi4nXG4gICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwiZWxsaXBzaXNcIj5cdTIwMjY8L3NwYW4+YFxuICAgICAgICAgIDogaHRtbGBcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiJHtwID09PSB0aGlzLnBhZ2UgPyAnY3VycmVudCcgOiAnJ31cIlxuICAgICAgICAgICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuY2hhbmdlUGFnZShwIGFzIG51bWJlcil9XG4gICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7cCA9PT0gdGhpcy5wYWdlfVxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJQYWdlICR7cH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJHtwfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIGBcbiAgICAgICl9XG4gICAgICA8YnV0dG9uXG4gICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuY2hhbmdlUGFnZSh0aGlzLnBhZ2UgKyAxKX1cbiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5wYWdlID49IHRoaXMudG90YWx9XG4gICAgICAgIGFyaWEtbGFiZWw9XCJOZXh0IHBhZ2VcIlxuICAgICAgPlxuICAgICAgICBcdTIwM0FcbiAgICAgIDwvYnV0dG9uPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZVBhZ2UobmV3UGFnZTogbnVtYmVyKSB7XG4gICAgaWYgKG5ld1BhZ2UgPCAxIHx8IG5ld1BhZ2UgPiB0aGlzLnRvdGFsIHx8IG5ld1BhZ2UgPT09IHRoaXMucGFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnBhZ2UgPSBuZXdQYWdlO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgncGFnZS1jaGFuZ2UnLCB7XG4gICAgICAgIGRldGFpbDogeyBwYWdlOiB0aGlzLnBhZ2UgfSxcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufSIsICJpbXBvcnQgeyBodG1sIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuaW1wb3J0IHsgRGVlc1Byb2dyZXNzYmFyIH0gZnJvbSAnLi4vZGVlcy1wcm9ncmVzc2Jhci9kZWVzLXByb2dyZXNzYmFyLmpzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gKCkgPT4ge1xuICByZXR1cm4gaHRtbGBcbiAgICA8ZGVlcy1wcm9ncmVzc2JhclxuICAgICAgLnBlcmNlbnRhZ2U9JHs1MH1cbiAgICA+PC9kZWVzLXByb2dyZXNzYmFyPlxuICBgO1xufSIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLzAwcGx1Z2lucy5qcyc7XG5pbXBvcnQgKiBhcyBjb2xvcnMgZnJvbSAnLi4vMDBjb2xvcnMuanMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtcHJvZ3Jlc3NiYXIuZGVtby5qcyc7XG5pbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBEZWVzRWxlbWVudCxcbiAgcHJvcGVydHksXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIGNzc01hbmFnZXIsXG4gIGNzcyxcbiAgdHlwZSBDU1NSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbiAgdW5zYWZlSFRNTCxcbiAgc3RhdGUsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmltcG9ydCAqIGFzIGRvbXRvb2xzIGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLXByb2dyZXNzYmFyJylcbmV4cG9ydCBjbGFzcyBEZWVzUHJvZ3Jlc3NiYXIgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIC8vIFNUQVRJQ1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBkZW1vRnVuYztcblxuICAvLyBJTlNUQU5DRVxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IE51bWJlcixcbiAgfSlcbiAgYWNjZXNzb3IgcGVyY2VudGFnZSA9IDA7XG5cbiAgcHVibGljIHN0YXRpYyBzdHlsZXMgPSBbXG4gICAgdGhlbWVEZWZhdWx0U3R5bGVzLFxuICAgIGNzc01hbmFnZXIuZGVmYXVsdFN0eWxlcyxcbiAgICBjc3NgXG4gICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqL1xuICAgICAgOmhvc3Qge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoY29sb3JzLmJyaWdodC50ZXh0LCBjb2xvcnMuZGFyay50ZXh0KX07XG4gICAgICB9XG4gICAgICAucHJvZ3Jlc3NCYXJDb250YWluZXIge1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICB9XG5cbiAgICAgIC5wcm9ncmVzc0JhciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZWVlZWViJywgJyM0NDQnKX07XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXItdG9wOiAwLjVweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnbm9uZScsICcjNTU1Jyl9O1xuICAgICAgfVxuXG4gICAgICAucHJvZ3Jlc3NCYXJGaWxsIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoY29sb3JzLmRhcmsuYmx1ZUFjdGl2ZSwgY29sb3JzLmJyaWdodC5ibHVlQWN0aXZlKX07XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMC41cHg7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMnMgd2lkdGg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgd2lkdGg6IDBweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMC41IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdub25lJywgJyMzOThmZmYnKX07XG4gICAgICB9XG5cbiAgICAgIC5wcm9ncmVzc1RleHQge1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICBgXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpIHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc0JhckNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NCYXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NCYXJGaWxsXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzVGV4dFwiPlxuICAgICAgICAgICAgJHt0aGlzLnBlcmNlbnRhZ2V9JVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYFxuICB9XG5cbiAgZmlyc3RVcGRhdGVkIChfY2hhbmdlZFByb3BlcnRpZXM6IE1hcDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUGVyY2VudGFnZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZVBlcmNlbnRhZ2UoKSB7XG4gICAgY29uc3QgcHJvZ3Jlc3NCYXJGaWxsID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5wcm9ncmVzc0JhckZpbGwnKSBhcyBIVE1MRWxlbWVudDtcbiAgICBwcm9ncmVzc0JhckZpbGwuc3R5bGUud2lkdGggPSBgJHt0aGlzLnBlcmNlbnRhZ2V9JWA7XG4gIH1cblxuICB1cGRhdGVkKCl7XG4gICAgdGhpcy51cGRhdGVQZXJjZW50YWdlKCk7XG4gIH1cbn0iLCAiaW1wb3J0IHsgaHRtbCB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBkZW1vRnVuYyA9ICgpID0+IHtcbiAgY29uc3Qgb25DaGFuZ2VkID0gKGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgLy8gZmluZCB0aGUgZGVtbyB3cmFwcGVyIGFuZCB1cGRhdGUgdGhlICdjaGFuZ2VkJyBsb2cgaW5zaWRlIGl0XG4gICAgY29uc3Qgd3JhcHBlciA9IChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnLmRlbW9XcmFwcGVyJyk7XG4gICAgY29uc3QgZWwgPSB3cmFwcGVyPy5xdWVyeVNlbGVjdG9yKCcjY2hhbmdlZCcpO1xuICAgIGlmIChlbCkgZWwudGV4dENvbnRlbnQgPSBgc2VhcmNoLWNoYW5nZWQ6ICR7ZS5kZXRhaWwudmFsdWV9YDtcbiAgfTtcbiAgY29uc3Qgb25TdWJtaXQgPSAoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAvLyBmaW5kIHRoZSBkZW1vIHdyYXBwZXIgYW5kIHVwZGF0ZSB0aGUgJ3N1Ym1pdHRlZCcgbG9nIGluc2lkZSBpdFxuICAgIGNvbnN0IHdyYXBwZXIgPSAoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5kZW1vV3JhcHBlcicpO1xuICAgIGNvbnN0IGVsID0gd3JhcHBlcj8ucXVlcnlTZWxlY3RvcignI3N1Ym1pdHRlZCcpO1xuICAgIGlmIChlbCkgZWwudGV4dENvbnRlbnQgPSBgc2VhcmNoLXN1Ym1pdDogJHtlLmRldGFpbC52YWx1ZX1gO1xuICB9O1xuICByZXR1cm4gaHRtbGBcbiAgICA8c3R5bGU+XG4gICAgICAuZGVtb1dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgXG4gICAgICAgIGJhY2tncm91bmQ6ICM4ODg4ODg7XG4gICAgICB9XG4gICAgICAubG9ncyB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIHdpZHRoOiA2MDBweDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICB9XG4gICAgICAubG9ncyBkaXYge1xuICAgICAgICBtYXJnaW46IDRweCAwO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gICAgPGRpdiBjbGFzcz1cImRlbW9XcmFwcGVyXCI+XG4gICAgICA8ZGVlcy1zZWFyY2hiYXJcbiAgICAgICAgQHNlYXJjaC1jaGFuZ2VkPSR7b25DaGFuZ2VkfVxuICAgICAgICBAc2VhcmNoLXN1Ym1pdD0ke29uU3VibWl0fVxuICAgICAgPjwvZGVlcy1zZWFyY2hiYXI+XG4gICAgICA8ZGl2IGNsYXNzPVwibG9nc1wiPlxuICAgICAgICA8ZGl2IGlkPVwiY2hhbmdlZFwiPnNlYXJjaC1jaGFuZ2VkOjwvZGl2PlxuICAgICAgICA8ZGl2IGlkPVwic3VibWl0dGVkXCI+c2VhcmNoLXN1Ym1pdDo8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgO1xufTsiLCAiaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgRGVlc0VsZW1lbnQsXG4gIHByb3BlcnR5LFxuICBodG1sLFxuICBjc3NNYW5hZ2VyLFxuICB1bnNhZmVDU1MsXG4gIGNzcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgZG9tdG9vbHMsXG4gIHF1ZXJ5LFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5pbXBvcnQgKiBhcyBjb2xvcnMgZnJvbSAnLi4vMDBjb2xvcnMuanMnO1xuaW1wb3J0IHsgZGVtb0Z1bmMgfSBmcm9tICcuL2RlZXMtc2VhcmNoYmFyLmRlbW8uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtc2VhcmNoYmFyJzogRGVlc1NlYXJjaGJhcjtcbiAgfVxufVxuXG5AY3VzdG9tRWxlbWVudCgnZGVlcy1zZWFyY2hiYXInKVxuZXhwb3J0IGNsYXNzIERlZXNTZWFyY2hiYXIgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIC8vIERFTU9cbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG5cbiAgLy8gU1RBVElDXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIDpob3N0IHtcbiAgICAgICAgcGFkZGluZzogNDBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IERlZXMgU2FucztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZWVlZWViJywgJyMwMDAwMDAnKX07XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2hib3hDb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwMDAwMDAxNScsICcjZmZmZmZmMTUnKX07XG4gICAgICAgIC0tYm94SGVpZ2h0OiA2MHB4O1xuICAgICAgICBoZWlnaHQ6IHZhcigtLWJveEhlaWdodCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE0MHB4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDAwMDAwMTUnLCAnI2ZmZmZmZjIwJyl9O1xuICAgICAgfVxuXG4gICAgICBpbnB1dCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDAwMDAwJywgJyNlZWVlZWInKX07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjVweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2hCdXR0b24ge1xuICAgICAgICAtLWJ1dHRvblBhZGRpbmc6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlZWVlZWInLCAnIzAwMDAwMCcpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMDAwMDAwJywgJyNlZWVlZWInKX07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWJveEhlaWdodCkgLSAodmFyKC0tYnV0dG9uUGFkZGluZykgKiAyKSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIFxuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcywgYmFja2dyb3VuZCAwLjFzO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvblBhZGRpbmcpO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnNlYXJjaEJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZShjb2xvcnMuYnJpZ2h0LmJsdWUsIGNvbG9ycy5kYXJrLmJsdWUpfTtcbiAgICAgIH1cblxuICAgICAgLnNlYXJjaEJ1dHRvbjphY3RpdmUge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoY29sb3JzLmJyaWdodC5ibHVlQWN0aXZlLCBjb2xvcnMuZGFyay5ibHVlQWN0aXZlKX07XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7XG4gICAgICB9XG5cbiAgICAgIC5maWx0ZXJzIHtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgLy8gSU5TVEFOQ0VcblxuICBAcHJvcGVydHkoKVxuICBhY2Nlc3NvciBmaWx0ZXJzID0gW107XG5cblxuICBwdWJsaWMgc2VhcmNoSW5wdXQhOiBIVE1MSW5wdXRFbGVtZW50O1xuICBwdWJsaWMgc2VhcmNoQnV0dG9uITogSFRNTEVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaGJveENvbnRhaW5lclwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIllvdXIgU2tpbGxzIChlLmcuIFR5cGVTY3JpcHQsIFJ1c3QsIFByb2plY3RtYW5hZ2VtZW50KVwiIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2hCdXR0b25cIj5TZWFyY2ggLT48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgJHt0aGlzLmZpbHRlcnMubGVuZ3RoID4gMCA/IGh0bWxgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXJzXCI+XG4gICAgICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9XCJoci1zbWFsbFwiPkZpbHRlcnM8L2RlZXMtaGVhZGluZz5cbiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24gLmxhYmVsPSR7J2xvY2F0aW9uJ30+PC9kZWVzLWlucHV0LWRyb3Bkb3duPlxuICAgICAgPC9kaXY+ICBcbiAgICAgIGAgOiBodG1sYGB9XG4gICAgYDtcbiAgfVxuICAvKipcbiAgICogTGlmZWN5Y2xlOiBhZnRlciBmaXJzdCByZW5kZXIsIHdpcmUgdXAgZXZlbnRzIGZvciBpbnB1dCBhbmQgc3VibWl0IGFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyBmaXJzdFVwZGF0ZWQoKTogdm9pZCB7XG4gICAgLy8gZGlzcGF0Y2ggY2hhbmdlIG9uIGVhY2ggaW5wdXRcbiAgICB0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4ge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnc2VhcmNoLWNoYW5nZWQnLCB7XG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICBkZXRhaWw6IHsgdmFsdWU6IHRoaXMuc2VhcmNoSW5wdXQudmFsdWUgfVxuICAgICAgfSkpO1xuICAgIH0pO1xuICAgIC8vIHN1Ym1pdCBvbiBFbnRlciBrZXlcbiAgICB0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoU3VibWl0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gc3VibWl0IG9uIGJ1dHRvbiBjbGlja1xuICAgIHRoaXMuc2VhcmNoQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5fZGlzcGF0Y2hTdWJtaXQoKSk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGF0Y2ggYSBzdWJtaXQgZXZlbnQgd2l0aCB0aGUgY3VycmVudCBzZWFyY2ggdmFsdWVcbiAgICovXG4gIHByaXZhdGUgX2Rpc3BhdGNoU3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3NlYXJjaC1zdWJtaXQnLCB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICBkZXRhaWw6IHsgdmFsdWU6IHRoaXMuc2VhcmNoSW5wdXQudmFsdWUgfVxuICAgIH0pKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGh0bWwsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiB7XG4gIHJldHVybiBodG1sYFxuICAgIDxzdHlsZT5cbiAgICAgIC5yZWYxIHtcbiAgICAgICAgbWFyZ2luOiAyMHB4O1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gICAgICB9XG4gICAgPC9zdHlsZT5cbiAgICA8ZGl2IGNsYXNzPVwicmVmMVwiPjwvZGl2PlxuICAgIDxkZWVzLXNwZWVjaGJ1YmJsZSAudGV4dD0ke2BcbiAgICAgICoqVGhpcyBpcyBhIGxvbmdlciBtYXJrZG93biB0ZXh0IHRoYXQgIGNhbiBiZSB1c2VkIHRoZSB3cml0ZSoqICBcbiAgICAgIGEgbG9uZ2VyIGRlc2NyaXB0aW9uIGFib3V0IHdoYXRzIGdvaW5nIG9uIHRoZSBhcHAgIFxuICBcbiAgICAgICoqVGhpcyBpcyBhIHN1YmhlYWRlcioqXG4gICAgICBhbmQgYW5vdGhlciB0ZXh0XG4gICAgXG4gICAgYH0+PC9kZWVzLXNwZWVjaGJ1YmJsZT5cbiAgYDtcbn07IiwgImltcG9ydCAqIGFzIGNvbG9ycyBmcm9tICcuLi8wMGNvbG9ycy5qcyc7XG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLzAwcGx1Z2lucy5qcyc7XG5cbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLXNwZWVjaGJ1YmJsZS5kZW1vLmpzJztcbmltcG9ydCB7XG4gIGN1c3RvbUVsZW1lbnQsXG4gIGh0bWwsXG4gIERlZXNFbGVtZW50LFxuICBwcm9wZXJ0eSxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgY3NzTWFuYWdlcixcbiAgY3NzLFxuICB0eXBlIENTU1Jlc3VsdCxcbiAgdW5zYWZlQ1NTLFxuICBkb210b29scyxcbiAgZGlyZWN0aXZlcyxcbiAgdW5zYWZlSFRNTCxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IERlZXNXaW5kb3dMYXllciB9IGZyb20gJy4uL2RlZXMtd2luZG93bGF5ZXIvZGVlcy13aW5kb3dsYXllci5qcyc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8wMHRoZW1lLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy1zcGVlY2hidWJibGUnOiBEZWVzU3BlZWNoYnViYmxlO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLXNwZWVjaGJ1YmJsZScpXG5leHBvcnQgY2xhc3MgRGVlc1NwZWVjaGJ1YmJsZSBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBkZW1vID0gZGVtb0Z1bmM7XG5cbiAgLy8gU1RBVElDXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhyZWZFbGVtZW50OiBIVE1MRWxlbWVudCwgdGV4dEFyZzogc3RyaW5nKSB7XG4gICAgY29uc3Qgd2luZG93TGF5ZXIgPSBhd2FpdCBEZWVzV2luZG93TGF5ZXIuY3JlYXRlQW5kU2hvdyh7XG4gICAgICBibHVyOiBmYWxzZSxcbiAgICB9KTtcbiAgICBjb25zdCBzcGVlY2hidWJibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkZWVzLXNwZWVjaGJ1YmJsZScpO1xuICAgIHNwZWVjaGJ1YmJsZS53aW5kb3dMYXllciA9IHdpbmRvd0xheWVyO1xuICAgIHNwZWVjaGJ1YmJsZS5yZWZmZWRFbGVtZW50ID0gcmVmRWxlbWVudDtcbiAgICBzcGVlY2hidWJibGUudGV4dCA9IHRleHRBcmc7XG4gICAgc3BlZWNoYnViYmxlLm1hbmlmZXN0ZWQgPSB0cnVlO1xuICAgIHdpbmRvd0xheWVyLmFwcGVuZENoaWxkKHNwZWVjaGJ1YmJsZSk7XG4gICAgd2luZG93TGF5ZXIuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgICAod2luZG93TGF5ZXIuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcud2luZG93T3ZlcmxheScpIGFzIEhUTUxFbGVtZW50KS5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xuICAgIHJldHVybiBzcGVlY2hidWJibGU7XG4gIH1cblxuICAvLyBJTlNUQU5DRVxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IE9iamVjdCxcbiAgfSlcbiAgYWNjZXNzb3IgcmVmZmVkRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgcmVmbGVjdDogdHJ1ZSxcbiAgfSlcbiAgYWNjZXNzb3IgdGV4dDogc3RyaW5nO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSlcbiAgYWNjZXNzb3Igd2F2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSlcbiAgYWNjZXNzb3IgbWFuaWZlc3RlZCA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogU3RyaW5nLFxuICB9KVxuICBhY2Nlc3NvciBzdGF0dXM6ICdub3JtYWwnIHwgJ3BlbmRpbmcnIHwgJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyA9ICdub3JtYWwnO1xuXG4gIHB1YmxpYyB3aW5kb3dMYXllcjogRGVlc1dpbmRvd0xheWVyO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzMzMycsICcjZmZmJyl9O1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLm1haW5jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgICAgfVxuXG4gICAgICAuYXJyb3cge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmYnLCAnIzMzMycpfTtcbiAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgbGVmdDogMnB4O1xuICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIH1cblxuICAgICAgLnNwZWVjaGJ1YmJsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZmZmJywgJyMzMzMnKX07XG4gICAgICAgIHBhZGRpbmc6IDBweCAxNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyNDBweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgbGVmdDogOHB4O1xuICAgICAgfVxuXG4gICAgICAud2F2ZSB7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiB3YXZlLWFuaW1hdGlvbjsgLyogUmVmZXJzIHRvIHRoZSBuYW1lIG9mIHlvdXIgQGtleWZyYW1lcyBlbGVtZW50IGJlbG93ICovXG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMi41czsgLyogQ2hhbmdlIHRvIHNwZWVkIHVwIG9yIHNsb3cgZG93biAqL1xuICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgLyogTmV2ZXIgc3RvcCB3YXZpbmcgOikgKi9cbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNzAlIDcwJTsgLyogUGl2b3QgYXJvdW5kIHRoZSBib3R0b20tbGVmdCBwYWxtICovXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyB3YXZlLWFuaW1hdGlvbiB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgICAxMCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE0ZGVnKTtcbiAgICAgICAgfSAvKiBUaGUgZm9sbG93aW5nIGZpdmUgdmFsdWVzIGNhbiBiZSBwbGF5ZWQgd2l0aCB0byBtYWtlIHRoZSB3YXZpbmcgbW9yZSBvciBsZXNzIGV4dHJlbWUgKi9cbiAgICAgICAgMjAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOGRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgMzAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNGRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgNDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNGRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMGRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgNjAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgfSAvKiBSZXNldCBmb3IgdGhlIGxhc3QgaGFsZiB0byBwYXVzZSAqL1xuICAgICAgICAxMDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke3RoaXMubWFuaWZlc3RlZFxuICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNvbnRhaW5lclwiIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJyb3dcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZWVjaGJ1YmJsZVwiPlxuICAgICAgICAgICAgICAgICR7dGhpcy53YXZlID8gaHRtbGA8c3BhbiBjbGFzcz1cIndhdmVcIj5cdUQ4M0RcdURDNEI8L3NwYW4+YCA6IGh0bWxgYH1cbiAgICAgICAgICAgICAgICAke2RpcmVjdGl2ZXMucmVzb2x2ZSh0aGlzLmdldEh0bWwoKSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYFxuICAgICAgICA6IGh0bWxgYH1cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhbmRsZUNsaWNrKCkge1xuICAgIGNvbnNvbGUubG9nKCdzcGVlY2hidWJibGUgZ290IGNsaWNrZWQuJyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlyc3RVcGRhdGVkKCkge1xuICAgIC8vIGxldHMgbWFrZSBzdXJlIHdlIGhhdmUgYSByZWZcbiAgICBpZiAoIXRoaXMucmVmZmVkRWxlbWVudCkge1xuICAgICAgdGhpcy5yZWZmZWRFbGVtZW50ID0gdGhpcy5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIGFzIEhUTUxFbGVtZW50O1xuICAgIH1cbiAgICBpZiAodGhpcy5tYW5pZmVzdGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAodGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tYWluY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLm9wYWNpdHkgPSAnMSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGxldHMgbWFrZSBzdXJlIHdlIGluc3RydW1lbnQgaXRcbiAgICAgIGxldCBzcGVlY2hidWJibGU6IERlZXNTcGVlY2hidWJibGU7XG4gICAgICB0aGlzLnJlZmZlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGFzeW5jICgpID0+IHtcbiAgICAgICAgc3BlZWNoYnViYmxlID0gYXdhaXQgRGVlc1NwZWVjaGJ1YmJsZS5jcmVhdGVBbmRTaG93KHRoaXMucmVmZmVkRWxlbWVudCwgdGhpcy50ZXh0KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5yZWZmZWRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG4gICAgICAgIHNwZWVjaGJ1YmJsZS5kZXN0cm95KCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlUG9zaXRpb24oKSB7XG4gICAgY29uc3QgcmVmRWxlbWVudCA9IHRoaXMucmVmZmVkRWxlbWVudDtcbiAgICBjb25zdCBib3VuZGluZ0NsaWVudFJlY3QgPSByZWZFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICAgIHRoaXMuc3R5bGUudG9wID0gYCR7Ym91bmRpbmdDbGllbnRSZWN0LnRvcCAtIDEzfXB4YDtcbiAgICB0aGlzLnN0eWxlLmxlZnQgPSBgJHtib3VuZGluZ0NsaWVudFJlY3QubGVmdCArIHJlZkVsZW1lbnQuY2xpZW50V2lkdGggKyA0fXB4YDtcbiAgICBpZiAoYm91bmRpbmdDbGllbnRSZWN0LnJpZ2h0ID4gMjUwKSB7XG4gICAgICB0aGlzLnN0eWxlLndpZHRoID0gYDI1MHB4YDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0SHRtbCgpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICghdGhpcy50ZXh0KSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBkb210b29scy5wbHVnaW5zLnNtYXJ0c3RyaW5nLm5vcm1hbGl6ZS5zdGFuZGFyZCh0aGlzLnRleHQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRvbXRvb2xzLnBsdWdpbnMuc21hcnRtYXJrZG93bi5TbWFydE1hcmtkb3duLmVhc3lNYXJrZG93blRvSHRtbChcbiAgICAgIG5vcm1hbGl6ZWRcbiAgICApO1xuICAgIHJldHVybiB1bnNhZmVIVE1MKHJlc3VsdCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2hvdygpIHt9XG5cbiAgcHVibGljIGFzeW5jIGRlc3Ryb3koKSB7XG4gICAgKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWFpbmNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50KS5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgIHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpO1xuICB9XG59XG4iLCAiaW1wb3J0IHtcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgRGVlc0VsZW1lbnQsXG4gIHByb3BlcnR5LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBjc3NNYW5hZ2VyLFxuICBjc3MsXG4gIHR5cGUgQ1NTUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmltcG9ydCAqIGFzIGRvbXRvb2xzIGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZG9tdG9vbHMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtc3Bpbm5lcic6IERlZXNTcGlubmVyO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLXNwaW5uZXInKVxuZXhwb3J0IGNsYXNzIERlZXNTcGlubmVyIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSAoKSA9PiBodG1sYFxuICAgIDxkZWVzLXNwaW5uZXI+PC9kZWVzLXNwaW5uZXI+XG4gICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9XCJzdWNjZXNzXCI+PC9kZWVzLXNwaW5uZXI+XG4gICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9XCJlcnJvclwiPjwvZGVlcy1zcGlubmVyPlxuICAgIDxkZWVzLXNwaW5uZXIgc2l6ZT0kezY0fSBzdGF0dXM9XCJzdWNjZXNzXCI+PC9kZWVzLXNwaW5uZXI+XG4gICAgPGRlZXMtc3Bpbm5lciAuc2l6ZT0kezY0fSBzdGF0dXM9XCJlcnJvclwiPjwvZGVlcy1zcGlubmVyPlxuICBgO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogTnVtYmVyLFxuICB9KVxuICBhY2Nlc3NvciBzaXplID0gMjA7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0pXG4gIGFjY2Vzc29yIGJudzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSgpXG4gIGFjY2Vzc29yIHN0YXR1czogJ25vcm1hbCcgfCAncGVuZGluZycgfCAnc3VjY2VzcycgfCAnZXJyb3InID0gJ25vcm1hbCc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi9cbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgICNsb2FkaW5nIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjOGJjMzRhMDA7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsIDAsIDAsIDAuMSknLCAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpJyl9O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzMzJywgJyNmZmYnKX07XG4gICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgICNsb2FkaW5nLnN1Y2Nlc3Mge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogbm9uZTtcbiAgICAgIH1cblxuICAgICAgI2xvYWRpbmcuZXJyb3Ige1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogbm9uZTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBzcGluIHtcbiAgICAgICAgdG8ge1xuICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4ge1xuICAgICAgICB0byB7XG4gICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRlZXMtaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzdHlsZT5cbiAgICAgICAgI2xvYWRpbmcge1xuICAgICAgICAgIHdpZHRoOiAke3RoaXMuc2l6ZX1weDtcbiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5zaXplfXB4O1xuICAgICAgICB9XG4gICAgICAgICNsb2FkaW5nLnN1Y2Nlc3Mge1xuICAgICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSh0aGlzLmJudyA/ICcjMzMzJzogYCM4YmMzNGFgLCB0aGlzLmJudyA/ICcjZmZmJyA6IGAjOGJjMzRhYCl9O1xuICAgICAgICAgIFxuICAgICAgICB9XG4gICAgICAgICNsb2FkaW5nLmVycm9yIHtcbiAgICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUodGhpcy5ibncgPyAnIzMzMyc6IGAjZTY0YTE5YCwgdGhpcy5ibncgPyAnI2ZmZicgOiBgI2U2NGExOWApfTtcbiAgICAgICAgfVxuICAgICAgICBkZWVzLWljb24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGlzLnNpemV9cHg7XG4gICAgICAgIH1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiJHt0aGlzLnN0YXR1c31cIiBpZD1cImxvYWRpbmdcIj5cbiAgICAgICAgJHsoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICByZXR1cm4gaHRtbGA8ZGVlcy1pY29uIHN0eWxlPVwidHJhbnNmb3JtOiB0cmFuc2xhdGVYKDElKSB0cmFuc2xhdGVZKDMlKTtcIiAuaWNvbj0keydmYTpjaXJjbGUtY2hlY2snfT48L2RlZXMtaWNvbj5gO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICAgICAgICAgIHJldHVybiAgaHRtbGA8ZGVlcy1pY29uIC5pY29uPSR7J2ZhOmNpcmNsZS14bWFyayd9PjwvZGVlcy1pY29uPmA7XG4gICAgICAgICAgfVxuICAgICAgICB9KSgpfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuIiwgImltcG9ydCB7IGh0bWwgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3Qgc3RlcHBlckRlbW8gPSAoKSA9PiBodG1sYFxuICA8ZGVlcy1zdGVwcGVyXG4gICAgLnN0ZXBzPSR7W1xuICAgICAge1xuICAgICAgICB0aXRsZTogJ0FjY291bnQgU2V0dXAnLFxuICAgICAgICBjb250ZW50OiBodG1sYFxuICAgICAgICAgIDxkZWVzLWZvcm0+XG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT1cImVtYWlsXCIgbGFiZWw9XCJXb3JrIEVtYWlsXCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT1cInBhc3N3b3JkXCIgbGFiZWw9XCJDcmVhdGUgUGFzc3dvcmRcIiB0eXBlPVwicGFzc3dvcmRcIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PlxuICAgICAgICAgIDwvZGVlcy1mb3JtPlxuICAgICAgICBgLFxuICAgICAgICB2YWxpZGF0aW9uRnVuYzogYXN5bmMgKHN0ZXBwZXJBcmcsIGVsZW1lbnRBcmcpID0+IHtcbiAgICAgICAgICBjb25zdCBkZWVzRm9ybSA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1mb3JtJyk7XG4gICAgICAgICAgZGVlc0Zvcm0uYWRkRXZlbnRMaXN0ZW5lcignZm9ybURhdGEnLCAoKSA9PiBzdGVwcGVyQXJnLmdvTmV4dCgpLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0aXRsZTogJ1Byb2ZpbGUgRGV0YWlscycsXG4gICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgPGRlZXMtZm9ybT5cbiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PVwiZmlyc3ROYW1lXCIgbGFiZWw9XCJGaXJzdCBOYW1lXCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT1cImxhc3ROYW1lXCIgbGFiZWw9XCJMYXN0IE5hbWVcIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD5cbiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PlxuICAgICAgICAgIDwvZGVlcy1mb3JtPlxuICAgICAgICBgLFxuICAgICAgICB2YWxpZGF0aW9uRnVuYzogYXN5bmMgKHN0ZXBwZXJBcmcsIGVsZW1lbnRBcmcpID0+IHtcbiAgICAgICAgICBjb25zdCBkZWVzRm9ybSA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1mb3JtJyk7XG4gICAgICAgICAgZGVlc0Zvcm0uYWRkRXZlbnRMaXN0ZW5lcignZm9ybURhdGEnLCAoKSA9PiBzdGVwcGVyQXJnLmdvTmV4dCgpLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0aXRsZTogJ0NvbnRhY3QgSW5mb3JtYXRpb24nLFxuICAgICAgICBjb250ZW50OiBodG1sYFxuICAgICAgICAgIDxkZWVzLWZvcm0+XG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSBrZXk9XCJwaG9uZVwiIGxhYmVsPVwiTW9iaWxlIE51bWJlclwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC1waG9uZT5cbiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PVwiY29tcGFueVwiIGxhYmVsPVwiQ29tcGFueVwiPjwvZGVlcy1pbnB1dC10ZXh0PlxuICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+XG4gICAgICAgICAgPC9kZWVzLWZvcm0+XG4gICAgICAgIGAsXG4gICAgICAgIHZhbGlkYXRpb25GdW5jOiBhc3luYyAoc3RlcHBlckFyZywgZWxlbWVudEFyZykgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlZXNGb3JtID0gZWxlbWVudEFyZy5xdWVyeVNlbGVjdG9yKCdkZWVzLWZvcm0nKTtcbiAgICAgICAgICBkZWVzRm9ybS5hZGRFdmVudExpc3RlbmVyKCdmb3JtRGF0YScsICgpID0+IHN0ZXBwZXJBcmcuZ29OZXh0KCksIHsgb25jZTogdHJ1ZSB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRpdGxlOiAnVGVhbSBTaXplJyxcbiAgICAgICAgY29udGVudDogaHRtbGBcbiAgICAgICAgICA8ZGVlcy1mb3JtPlxuICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd25cbiAgICAgICAgICAgICAga2V5PVwidGVhbVNpemVcIlxuICAgICAgICAgICAgICBsYWJlbD1cIkhvdyBiaWcgaXMgeW91ciB0ZWFtP1wiXG4gICAgICAgICAgICAgIC5vcHRpb25zPSR7W1xuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICcxLTUnLCB2YWx1ZTogJzEtNScgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnNi0yMCcsIHZhbHVlOiAnNi0yMCcgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnMjEtNTAnLCB2YWx1ZTogJzIxLTUwJyB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICc1MSsnLCB2YWx1ZTogJzUxKycgfSxcbiAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+XG4gICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD5cbiAgICAgICAgICA8L2RlZXMtZm9ybT5cbiAgICAgICAgYCxcbiAgICAgICAgdmFsaWRhdGlvbkZ1bmM6IGFzeW5jIChzdGVwcGVyQXJnLCBlbGVtZW50QXJnKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVlc0Zvcm0gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtZm9ybScpO1xuICAgICAgICAgIGRlZXNGb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ2Zvcm1EYXRhJywgKCkgPT4gc3RlcHBlckFyZy5nb05leHQoKSwgeyBvbmNlOiB0cnVlIH0pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6ICdHb2FscycsXG4gICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgPGRlZXMtZm9ybT5cbiAgICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlXG4gICAgICAgICAgICAgIGtleT1cImdvYWxcIlxuICAgICAgICAgICAgICBsYWJlbD1cIk1haW4gb2JqZWN0aXZlXCJcbiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ09uYm9hcmRpbmcnLCB2YWx1ZTogJ29uYm9hcmRpbmcnIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FuYWx5dGljcycsIHZhbHVlOiAnYW5hbHl0aWNzJyB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBdXRvbWF0aW9uJywgdmFsdWU6ICdhdXRvbWF0aW9uJyB9LFxuICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT5cbiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PlxuICAgICAgICAgIDwvZGVlcy1mb3JtPlxuICAgICAgICBgLFxuICAgICAgICB2YWxpZGF0aW9uRnVuYzogYXN5bmMgKHN0ZXBwZXJBcmcsIGVsZW1lbnRBcmcpID0+IHtcbiAgICAgICAgICBjb25zdCBkZWVzRm9ybSA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1mb3JtJyk7XG4gICAgICAgICAgZGVlc0Zvcm0uYWRkRXZlbnRMaXN0ZW5lcignZm9ybURhdGEnLCAoKSA9PiBzdGVwcGVyQXJnLmdvTmV4dCgpLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0aXRsZTogJ0JyYW5kIFByZWZlcmVuY2VzJyxcbiAgICAgICAgY29udGVudDogaHRtbGBcbiAgICAgICAgICA8ZGVlcy1mb3JtPlxuICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9XCJicmFuZENvbG9yXCIgbGFiZWw9XCJQcmltYXJ5IGJyYW5kIGNvbG9yXCI+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT1cInRvbmVcIiBsYWJlbD1cIlByZWZlcnJlZCB0b25lIChlLmcuIGZyaWVuZGx5LCBmb3JtYWwpXCI+PC9kZWVzLWlucHV0LXRleHQ+XG4gICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD5cbiAgICAgICAgICA8L2RlZXMtZm9ybT5cbiAgICAgICAgYCxcbiAgICAgICAgdmFsaWRhdGlvbkZ1bmM6IGFzeW5jIChzdGVwcGVyQXJnLCBlbGVtZW50QXJnKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVlc0Zvcm0gPSBlbGVtZW50QXJnLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtZm9ybScpO1xuICAgICAgICAgIGRlZXNGb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ2Zvcm1EYXRhJywgKCkgPT4gc3RlcHBlckFyZy5nb05leHQoKSwgeyBvbmNlOiB0cnVlIH0pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6ICdJbnRlZ3JhdGlvbnMnLFxuICAgICAgICBjb250ZW50OiBodG1sYFxuICAgICAgICAgIDxkZWVzLWZvcm0+XG4gICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0XG4gICAgICAgICAgICAgIGtleT1cImludGVncmF0aW9uc1wiXG4gICAgICAgICAgICAgIGxhYmVsPVwiSW50ZWdyYXRpb25zIGluIHVzZVwiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQWRkIGludGVncmF0aW9uXCJcbiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD5cbiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PlxuICAgICAgICAgIDwvZGVlcy1mb3JtPlxuICAgICAgICBgLFxuICAgICAgICB2YWxpZGF0aW9uRnVuYzogYXN5bmMgKHN0ZXBwZXJBcmcsIGVsZW1lbnRBcmcpID0+IHtcbiAgICAgICAgICBjb25zdCBkZWVzRm9ybSA9IGVsZW1lbnRBcmcucXVlcnlTZWxlY3RvcignZGVlcy1mb3JtJyk7XG4gICAgICAgICAgZGVlc0Zvcm0uYWRkRXZlbnRMaXN0ZW5lcignZm9ybURhdGEnLCAoKSA9PiBzdGVwcGVyQXJnLmdvTmV4dCgpLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0aXRsZTogJ1JldmlldyAmIExhdW5jaCcsXG4gICAgICAgIGNvbnRlbnQ6IGh0bWxgXG4gICAgICAgICAgPGRlZXMtcGFuZWw+XG4gICAgICAgICAgICA8cD5BbG1vc3QgdGhlcmUhIFJldmlldyB5b3VyIHNlbGVjdGlvbnMgYW5kIGxhdW5jaCB3aGVuZXZlciB5b3UncmUgcmVhZHkuPC9wPlxuICAgICAgICAgIDwvZGVlcy1wYW5lbD5cbiAgICAgICAgYCxcbiAgICAgIH0sXG4gICAgXSBhcyBjb25zdH1cbiAgPjwvZGVlcy1zdGVwcGVyPlxuYDtcbiIsICJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gJy4uLzAwcGx1Z2lucy5qcyc7XG5pbXBvcnQgKiBhcyBjb2xvcnMgZnJvbSAnLi4vMDBjb2xvcnMuanMnO1xuXG5pbXBvcnQge1xuICBEZWVzRWxlbWVudCxcbiAgY3VzdG9tRWxlbWVudCxcbiAgaHRtbCxcbiAgY3NzLFxuICB1bnNhZmVDU1MsXG4gIHR5cGUgQ1NTUmVzdWx0LFxuICBjc3NNYW5hZ2VyLFxuICBwcm9wZXJ0eSxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuaW1wb3J0ICogYXMgZG9tdG9vbHMgZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyc7XG5pbXBvcnQgeyBzdGVwcGVyRGVtbyB9IGZyb20gJy4vZGVlcy1zdGVwcGVyLmRlbW8uanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN0ZXAge1xuICB0aXRsZTogc3RyaW5nO1xuICBjb250ZW50OiBUZW1wbGF0ZVJlc3VsdDtcbiAgdmFsaWRhdGlvbkZ1bmM/OiAoc3RlcHBlcjogRGVlc1N0ZXBwZXIsIGh0bWxFbGVtZW50OiBIVE1MRWxlbWVudCwgc2lnbmFsPzogQWJvcnRTaWduYWwpID0+IFByb21pc2U8YW55PjtcbiAgb25SZXR1cm5Ub1N0ZXBGdW5jPzogKHN0ZXBwZXI6IERlZXNTdGVwcGVyLCBodG1sRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IFByb21pc2U8YW55PjtcbiAgdmFsaWRhdGlvbkZ1bmNDYWxsZWQ/OiBib29sZWFuO1xuICBhYm9ydENvbnRyb2xsZXI/OiBBYm9ydENvbnRyb2xsZXI7XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtc3RlcHBlcic6IERlZXNTdGVwcGVyO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdkZWVzLXN0ZXBwZXInKVxuZXhwb3J0IGNsYXNzIERlZXNTdGVwcGVyIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIGRlbW8gPSBzdGVwcGVyRGVtbztcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IEFycmF5LFxuICB9KVxuICBhY2Nlc3NvciBzdGVwczogSVN0ZXBbXSA9IFtdO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogT2JqZWN0LFxuICB9KVxuICBhY2Nlc3NvciBzZWxlY3RlZFN0ZXA6IElTdGVwO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICAgIC5zdGVwcGVyQ29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAuc3RlcCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgYm94LXNoYWRvdyAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgZmlsdGVyIDAuN3MgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpLCBib3JkZXIgMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSk7XG4gICAgICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMGYwZjExJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2UyZThmMCcsICcjMjcyNzI5Jyl9O1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwZjE3MmEnLCAnI2Y1ZjVmNScpfTtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMC41NSkgc2F0dXJhdGUoMC44NSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnN0ZXAuc2VsZWN0ZWQge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMSkgc2F0dXJhdGUoMSk7XG4gICAgICAgIHVzZXItc2VsZWN0OiBhdXRvO1xuICAgICAgfVxuXG4gICAgICAuc3RlcC5oaWRkZW5TdGVwIHtcbiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDApO1xuICAgICAgfVxuXG4gICAgICAuc3RlcC5lbnRyYW5jZSB7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1cyBlYXNlLCBib3gtc2hhZG93IDAuMzVzIGVhc2UsIGZpbHRlciAwLjM1cyBlYXNlLCBib3JkZXIgMC4zNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnN0ZXAuZW50cmFuY2UuaGlkZGVuU3RlcCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNnB4KTtcbiAgICAgIH1cblxuICAgICAgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZoO1xuICAgICAgfVxuXG4gICAgICAuc3RlcCAuc3RlcENvdW50ZXIge1xuICAgICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM2NDc0OGInLCAnI2ExYTFhYScpfTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgIHJpZ2h0OiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiA2cHggMTRweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMjI2LCAyMzIsIDI0MCwgMC41KScsICdyZ2JhKDYzLCA2MywgNzAsIDAuNDUpJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcpJywgJ3JnYmEoNjMsIDYzLCA3MCwgMC42KScpfTtcbiAgICAgIH1cblxuICAgICAgLnN0ZXAgLmdvQmFjayB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMnB4O1xuICAgICAgICBsZWZ0OiAxMnB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgyMjYsIDIzMiwgMjQwLCAwLjkpJywgJ3JnYmEoNjMsIDYzLCA3MCwgMC44NSknKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSknLCAncmdiYSgzOSwgMzksIDQyLCAwLjg1KScpfTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNDc1NTY5JywgJyNkNGQ0ZDgnKX07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnN0ZXAgLmdvQmFjazpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzBmMTcyYScsICcjZmFmYWZhJyl9O1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKGNvbG9ycy5kYXJrLmJsdWUsIGNvbG9ycy5kYXJrLmJsdWUpfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJ3JnYmEoMjI2LCAyMzIsIDI0MCwgMC45NSknLCAncmdiYSg2MywgNjMsIDcwLCAwLjcpJyl9O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7XG4gICAgICB9XG5cbiAgICAgIC5zdGVwIC5nb0JhY2s6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMGYxNzJhJywgJyNmYWZhZmEnKX07XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoY29sb3JzLmRhcmsuYmx1ZUFjdGl2ZSwgY29sb3JzLmRhcmsuYmx1ZUFjdGl2ZSl9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgncmdiYSgyMjYsIDIzMiwgMjQwLCAwLjg1KScsICdyZ2JhKDYzLCA2MywgNzAsIDAuNiknKX07XG4gICAgICB9XG5cbiAgICAgIC5zdGVwIC5nb0JhY2sgc3BhbiB7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgLnN0ZXAgLmdvQmFjazpob3ZlciBzcGFuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpO1xuICAgICAgfVxuXG4gICAgICAuc3RlcCAudGl0bGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2NHB4O1xuICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgLnN0ZXAgLmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAzMnB4O1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpIHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyQ29udGFpbmVyXCI+XG4gICAgICAgICR7dGhpcy5zdGVwcy5tYXAoXG4gICAgICAgICAgKHN0ZXBBcmcpID0+XG4gICAgICAgICAgICBodG1sYDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJzdGVwICR7c3RlcEFyZyA9PT0gdGhpcy5zZWxlY3RlZFN0ZXBcbiAgICAgICAgICAgICAgICA/ICdzZWxlY3RlZCdcbiAgICAgICAgICAgICAgICA6IG51bGx9ICR7dGhpcy5nZXRJbmRleE9mU3RlcChzdGVwQXJnKSA+IHRoaXMuZ2V0SW5kZXhPZlN0ZXAodGhpcy5zZWxlY3RlZFN0ZXApXG4gICAgICAgICAgICAgICAgPyAnaGlkZGVuU3RlcCdcbiAgICAgICAgICAgICAgICA6ICcnfSAke3RoaXMuZ2V0SW5kZXhPZlN0ZXAoc3RlcEFyZykgPT09IDAgPyAnZW50cmFuY2UnIDogJyd9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgJHt0aGlzLmdldEluZGV4T2ZTdGVwKHN0ZXBBcmcpID4gMFxuICAgICAgICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwiZ29CYWNrXCIgQGNsaWNrPSR7dGhpcy5nb0JhY2t9PjxzcGFuIHN0eWxlPVwiZm9udC1mYW1pbHk6IEludGVyXCI+PC08L3NwYW4+IGdvIHRvIHByZXZpb3VzIHN0ZXA8L2Rpdj5gXG4gICAgICAgICAgICAgICAgOiBgYH1cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXBDb3VudGVyXCI+XG4gICAgICAgICAgICAgICAgU3RlcCAke3RoaXMuc3RlcHMuZmluZEluZGV4KChlbGVtZW50QXJnKSA9PiBlbGVtZW50QXJnID09PSBzdGVwQXJnKSArIDF9IG9mXG4gICAgICAgICAgICAgICAgJHt0aGlzLnN0ZXBzLmxlbmd0aH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPiR7c3RlcEFyZy50aXRsZX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj4ke3N0ZXBBcmcuY29udGVudH08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PiBgXG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGdldEluZGV4T2ZTdGVwID0gKHN0ZXBBcmc6IElTdGVwKTogbnVtYmVyID0+IHtcbiAgICByZXR1cm4gdGhpcy5zdGVwcy5maW5kSW5kZXgoKHN0ZXBBcmcyKSA9PiBzdGVwQXJnID09PSBzdGVwQXJnMik7XG4gIH07XG5cbiAgcHVibGljIGFzeW5jIGZpcnN0VXBkYXRlZCgpIHtcbiAgICBhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtcbiAgICBhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7XG4gICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSB0aGlzLnN0ZXBzWzBdO1xuICAgIHRoaXMuc2V0U2Nyb2xsU3RhdHVzKCk7XG4gICAgLy8gUmVtb3ZlIGVudHJhbmNlIGNsYXNzIGFmdGVyIGluaXRpYWwgYW5pbWF0aW9uIGNvbXBsZXRlc1xuICAgIGF3YWl0IHRoaXMuZG9tdG9vbHMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzNTApO1xuICAgIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuc3RlcC5lbnRyYW5jZScpPy5jbGFzc0xpc3QucmVtb3ZlKCdlbnRyYW5jZScpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZWQoKSB7XG4gICAgdGhpcy5zZXRTY3JvbGxTdGF0dXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGxlcjogdHlwZW9mIGRvbXRvb2xzLnBsdWdpbnMuU3dlZXRTY3JvbGwucHJvdG90eXBlO1xuXG4gIHB1YmxpYyBhc3luYyBzZXRTY3JvbGxTdGF0dXMoKSB7XG4gICAgY29uc3Qgc3RlcHBlckNvbnRhaW5lcjogSFRNTEVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnN0ZXBwZXJDb250YWluZXInKTtcbiAgICBjb25zdCBmaXJzdFN0ZXBFbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuc3RlcCcpO1xuICAgIGNvbnN0IHNlbGVjdGVkU3RlcEVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZCcpO1xuICAgIGlmICghc2VsZWN0ZWRTdGVwRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXN0ZXBwZXJDb250YWluZXIuc3R5bGUucGFkZGluZ1RvcCkge1xuICAgICAgc3RlcHBlckNvbnRhaW5lci5zdHlsZS5wYWRkaW5nVG9wID0gYCR7XG4gICAgICAgIHN0ZXBwZXJDb250YWluZXIub2Zmc2V0SGVpZ2h0IC8gMiAtIHNlbGVjdGVkU3RlcEVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMlxuICAgICAgfXB4YDtcbiAgICB9XG4gICAgY29uc29sZS5sb2coJ1NldHRpbmcgc2Nyb2xsIHN0YXR1cycpO1xuICAgIGNvbnNvbGUubG9nKHNlbGVjdGVkU3RlcEVsZW1lbnQpO1xuICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID1cbiAgICAgIHNlbGVjdGVkU3RlcEVsZW1lbnQub2Zmc2V0VG9wIC1cbiAgICAgIHN0ZXBwZXJDb250YWluZXIub2Zmc2V0SGVpZ2h0IC8gMiArXG4gICAgICBzZWxlY3RlZFN0ZXBFbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7XG4gICAgY29uc29sZS5sb2coc2Nyb2xsUG9zaXRpb24pO1xuICAgIGNvbnN0IGRvbXRvb2xzSW5zdGFuY2UgPSBhd2FpdCBkb210b29scy5Eb21Ub29scy5zZXR1cERvbVRvb2xzKCk7XG4gICAgaWYgKCF0aGlzLnNjcm9sbGVyKSB7XG4gICAgICB0aGlzLnNjcm9sbGVyID0gbmV3IGRvbXRvb2xzLnBsdWdpbnMuU3dlZXRTY3JvbGwoXG4gICAgICAgIHtcbiAgICAgICAgICB2ZXJ0aWNhbDogdHJ1ZSxcbiAgICAgICAgICBob3Jpem9udGFsOiBmYWxzZSxcbiAgICAgICAgICBlYXNpbmc6ICdlYXNlSW5PdXRFeHBvJyxcbiAgICAgICAgICBkdXJhdGlvbjogNzAwLFxuICAgICAgICB9LFxuICAgICAgICBzdGVwcGVyQ29udGFpbmVyXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkICYmIHRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICB0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZCA9IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuYyh0aGlzLCBzZWxlY3RlZFN0ZXBFbGVtZW50LCB0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuc2lnbmFsKTtcbiAgICB9XG4gICAgdGhpcy5zY3JvbGxlci50byhzY3JvbGxQb3NpdGlvbik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ29CYWNrKCkge1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuc3RlcHMuZmluZEluZGV4KChzdGVwQXJnKSA9PiBzdGVwQXJnID09PSB0aGlzLnNlbGVjdGVkU3RlcCk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA8PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIEFib3J0IGFueSBhY3RpdmUgbGlzdGVuZXJzIG9uIGN1cnJlbnQgc3RlcFxuICAgIGlmICh0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50U3RlcCA9IHRoaXMuc3RlcHNbY3VycmVudEluZGV4XTtcbiAgICBjdXJyZW50U3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHByZXZpb3VzU3RlcCA9IHRoaXMuc3RlcHNbY3VycmVudEluZGV4IC0gMV07XG4gICAgcHJldmlvdXNTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBwcmV2aW91c1N0ZXA7XG4gICAgYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7XG4gICAgYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCk7XG4gICAgdGhpcy5zZWxlY3RlZFN0ZXAub25SZXR1cm5Ub1N0ZXBGdW5jPy4odGhpcywgdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZCcpKTtcbiAgfVxuXG4gIHB1YmxpYyBnb05leHQoKSB7XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5zdGVwcy5maW5kSW5kZXgoKHN0ZXBBcmcpID0+IHN0ZXBBcmcgPT09IHRoaXMuc2VsZWN0ZWRTdGVwKTtcbiAgICBpZiAoY3VycmVudEluZGV4IDwgMCB8fCBjdXJyZW50SW5kZXggPj0gdGhpcy5zdGVwcy5sZW5ndGggLSAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIEFib3J0IGFueSBhY3RpdmUgbGlzdGVuZXJzIG9uIGN1cnJlbnQgc3RlcFxuICAgIGlmICh0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50U3RlcCA9IHRoaXMuc3RlcHNbY3VycmVudEluZGV4XTtcbiAgICBjdXJyZW50U3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZCA9IGZhbHNlO1xuICAgIGNvbnN0IG5leHRTdGVwID0gdGhpcy5zdGVwc1tjdXJyZW50SW5kZXggKyAxXTtcbiAgICBuZXh0U3RlcC52YWxpZGF0aW9uRnVuY0NhbGxlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRTdGVwID0gbmV4dFN0ZXA7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBodG1sLCBjc3MsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0IHsgRGVlc1RvYXN0IH0gZnJvbSAnLi4vZGVlcy10b2FzdC9kZWVzLXRvYXN0LmpzJztcbmltcG9ydCAnLi4vMDBncm91cC1idXR0b24vZGVlcy1idXR0b24vZGVlcy1idXR0b24uanMnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiBodG1sYFxuICAgIDxzdHlsZT5cbiAgICAgIC5kZW1vLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDMycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y4ZjlmYScsICcjMGEwYTBhJyl9O1xuICAgICAgfVxuXG4gICAgICAuZGVtby1zZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDtcbiAgICAgIH1cblxuICAgICAgLmRlbW8tdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIGNvbG9yOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnIzMzMycsICcjZmZmJyl9O1xuICAgICAgfVxuXG4gICAgICAuZGVtby1kZXNjcmlwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNjY2JywgJyNhYWEnKX07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24tZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gICAgICB9XG5cbiAgICAgIC50aGVtZS10b2dnbGUge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMTZweDtcbiAgICAgICAgcmlnaHQ6IDE2cHg7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgIH1cbiAgICA8L3N0eWxlPlxuXG4gICAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgICA8ZGVlcy1idXR0b24gY2xhc3M9XCJ0aGVtZS10b2dnbGVcIiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdicmlnaHQnKTtcbiAgICAgIH19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZGVtby10aXRsZVwiPlRvYXN0IFR5cGVzPC9oMj5cbiAgICAgICAgPHAgY2xhc3M9XCJkZW1vLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgRGlmZmVyZW50IHRvYXN0IHR5cGVzIGZvciB2YXJpb3VzIG5vdGlmaWNhdGlvbiBzY2VuYXJpb3MuIENsaWNrIGFueSBidXR0b24gdG8gc2hvdyBhIHRvYXN0LlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JpZFwiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5pbmZvKCdUaGlzIGlzIGFuIGluZm9ybWF0aW9uYWwgbWVzc2FnZScpO1xuICAgICAgICAgIH19PkluZm8gVG9hc3Q8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPVwiaGlnaGxpZ2h0ZWRcIiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5zdWNjZXNzKCdPcGVyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgICB9fT5TdWNjZXNzIFRvYXN0PC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKSA9PiB7XG4gICAgICAgICAgICBEZWVzVG9hc3Qud2FybmluZygnUGxlYXNlIHJldmlldyBiZWZvcmUgcHJvY2VlZGluZycpO1xuICAgICAgICAgIH19Pldhcm5pbmcgVG9hc3Q8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5lcnJvcignQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZycpO1xuICAgICAgICAgIH19PkVycm9yIFRvYXN0PC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlbW8tc2VjdGlvblwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJkZW1vLXRpdGxlXCI+VG9hc3QgUG9zaXRpb25zPC9oMj5cbiAgICAgICAgPHAgY2xhc3M9XCJkZW1vLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgVG9hc3RzIGNhbiBhcHBlYXIgaW4gZGlmZmVyZW50IHBvc2l0aW9ucyBvbiB0aGUgc2NyZWVuLlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JpZFwiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5zaG93KHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1RvcCBSaWdodCBQb3NpdGlvbicsXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgICAgICAgcG9zaXRpb246ICd0b3AtcmlnaHQnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9fT5Ub3AgUmlnaHQ8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5zaG93KHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1RvcCBMZWZ0IFBvc2l0aW9uJyxcbiAgICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxuICAgICAgICAgICAgICBwb3NpdGlvbjogJ3RvcC1sZWZ0J1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfX0+VG9wIExlZnQ8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5zaG93KHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ0JvdHRvbSBSaWdodCBQb3NpdGlvbicsXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgICAgICAgcG9zaXRpb246ICdib3R0b20tcmlnaHQnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9fT5Cb3R0b20gUmlnaHQ8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5zaG93KHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ0JvdHRvbSBMZWZ0IFBvc2l0aW9uJyxcbiAgICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxuICAgICAgICAgICAgICBwb3NpdGlvbjogJ2JvdHRvbS1sZWZ0J1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfX0+Qm90dG9tIExlZnQ8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5zaG93KHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1RvcCBDZW50ZXIgUG9zaXRpb24nLFxuICAgICAgICAgICAgICB0eXBlOiAnaW5mbycsXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAndG9wLWNlbnRlcidcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH19PlRvcCBDZW50ZXI8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5zaG93KHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ0JvdHRvbSBDZW50ZXIgUG9zaXRpb24nLFxuICAgICAgICAgICAgICB0eXBlOiAnaW5mbycsXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAnYm90dG9tLWNlbnRlcidcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH19PkJvdHRvbSBDZW50ZXI8L2RlZXMtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImRlbW8tdGl0bGVcIj5EdXJhdGlvbiBPcHRpb25zPC9oMj5cbiAgICAgICAgPHAgY2xhc3M9XCJkZW1vLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgQ29udHJvbCBob3cgbG9uZyB0b2FzdHMgc3RheSB2aXNpYmxlLiBEdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncmlkXCI+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCkgPT4ge1xuICAgICAgICAgICAgRGVlc1RvYXN0LnNob3coe1xuICAgICAgICAgICAgICBtZXNzYWdlOiAnUXVpY2sgdG9hc3QgKDEgc2Vjb25kKScsXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgICAgICAgZHVyYXRpb246IDEwMDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH19PjEgU2Vjb25kPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKSA9PiB7XG4gICAgICAgICAgICBEZWVzVG9hc3Quc2hvdyh7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdTdGFuZGFyZCB0b2FzdCAoMyBzZWNvbmRzKScsXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH19PjMgU2Vjb25kcyAoRGVmYXVsdCk8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5zaG93KHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ0xvbmcgdG9hc3QgKDUgc2Vjb25kcyknLFxuICAgICAgICAgICAgICB0eXBlOiAnaW5mbycsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9fT41IFNlY29uZHM8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5zaG93KHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ01hbnVhbCBkaXNtaXNzIG9ubHkgKGNsaWNrIHRvIGNsb3NlKScsXG4gICAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJyxcbiAgICAgICAgICAgICAgZHVyYXRpb246IDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH19Pk5vIEF1dG8tRGlzbWlzczwvZGVlcy1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZW1vLXNlY3Rpb25cIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZGVtby10aXRsZVwiPk11bHRpcGxlIFRvYXN0czwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwiZGVtby1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgIE11bHRpcGxlIHRvYXN0cyBzdGFjayBhdXRvbWF0aWNhbGx5LiBUaGV5IG1haW50YWluIHRoZWlyIG9yZGVyIGFuZCBhbmltYXRlIHNtb290aGx5LlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JpZFwiPlxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5pbmZvKCdGaXJzdCBub3RpZmljYXRpb24nKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gRGVlc1RvYXN0LnN1Y2Nlc3MoJ1NlY29uZCBub3RpZmljYXRpb24nKSwgMjAwKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gRGVlc1RvYXN0Lndhcm5pbmcoJ1RoaXJkIG5vdGlmaWNhdGlvbicpLCA0MDApO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBEZWVzVG9hc3QuZXJyb3IoJ0ZvdXJ0aCBub3RpZmljYXRpb24nKSwgNjAwKTtcbiAgICAgICAgICB9fT5TaG93IE11bHRpcGxlPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA1OyBpKyspIHtcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgRGVlc1RvYXN0LnNob3coe1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYE5vdGlmaWNhdGlvbiAjJHtpfWAsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBpICUgMiA9PT0gMCA/ICdzdWNjZXNzJyA6ICdpbmZvJyxcbiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwICsgKGkgKiA1MDApXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0sIGkgKiAxMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19PlJhcGlkIEZpcmU8L2RlZXMtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVtby1zZWN0aW9uXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImRlbW8tdGl0bGVcIj5SZWFsLVdvcmxkIEV4YW1wbGVzPC9oMj5cbiAgICAgICAgPHAgY2xhc3M9XCJkZW1vLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgQ29tbW9uIHVzZSBjYXNlcyBmb3IgdG9hc3Qgbm90aWZpY2F0aW9ucyBpbiBhcHBsaWNhdGlvbnMuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncmlkXCI+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7YXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdG9hc3QgPSBhd2FpdCBEZWVzVG9hc3Quc2hvdyh7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdTYXZpbmcgY2hhbmdlcy4uLicsXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgICAgICAgZHVyYXRpb246IDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBTaW11bGF0ZSBzYXZlIG9wZXJhdGlvblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRvYXN0LmRpc21pc3MoKTtcbiAgICAgICAgICAgICAgRGVlc1RvYXN0LnN1Y2Nlc3MoJ0NoYW5nZXMgc2F2ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgICAgfX0+U2F2ZSBPcGVyYXRpb248L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC5lcnJvcignRmFpbGVkIHRvIGNvbm5lY3QgdG8gc2VydmVyLiBQbGVhc2UgY2hlY2sgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uLicpO1xuICAgICAgICAgIH19Pk5ldHdvcmsgRXJyb3I8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIERlZXNUb2FzdC53YXJuaW5nKCdZb3VyIHNlc3Npb24gd2lsbCBleHBpcmUgaW4gNSBtaW51dGVzJyk7XG4gICAgICAgICAgfX0+U2Vzc2lvbiBXYXJuaW5nPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKSA9PiB7XG4gICAgICAgICAgICBEZWVzVG9hc3Quc3VjY2VzcygnRmlsZSB1cGxvYWRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgICAgfX0+VXBsb2FkIENvbXBsZXRlPC9kZWVzLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlbW8tc2VjdGlvblwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJkZW1vLXRpdGxlXCI+UHJvZ3JhbW1hdGljIENvbnRyb2w8L2gyPlxuICAgICAgICA8cCBjbGFzcz1cImRlbW8tZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICBBZHZhbmNlZCBjb250cm9sIG92ZXIgdG9hc3QgYmVoYXZpb3IuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncmlkXCI+XG4gICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7YXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdG9hc3QgPSBhd2FpdCBEZWVzVG9hc3Quc2hvdyh7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdUaGlzIHRvYXN0IGNhbiBiZSBkaXNtaXNzZWQgcHJvZ3JhbW1hdGljYWxseScsXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgICAgICAgZHVyYXRpb246IDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdG9hc3QuZGlzbWlzcygpO1xuICAgICAgICAgICAgICBEZWVzVG9hc3Quc3VjY2VzcygnVG9hc3QgZGlzbWlzc2VkIGFmdGVyIDIgc2Vjb25kcycpO1xuICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgICAgfX0+UHJvZ3JhbW1hdGljIERpc21pc3M8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpID0+IHtcbiAgICAgICAgICAgIC8vIFVzaW5nIHRoZSBjb252ZW5pZW5jZSBtZXRob2RzXG4gICAgICAgICAgICBEZWVzVG9hc3QuaW5mbygnSW5mbyBtZXNzYWdlJywgMjAwMCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IERlZXNUb2FzdC5zdWNjZXNzKCdTdWNjZXNzIG1lc3NhZ2UnLCAyMDAwKSwgNTAwKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gRGVlc1RvYXN0Lndhcm5pbmcoJ1dhcm5pbmcgbWVzc2FnZScsIDIwMDApLCAxMDAwKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gRGVlc1RvYXN0LmVycm9yKCdFcnJvciBtZXNzYWdlJywgMjAwMCksIDE1MDApO1xuICAgICAgICAgIH19PkNvbnZlbmllbmNlIE1ldGhvZHM8L2RlZXMtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgO1xuIiwgImltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIERlZXNFbGVtZW50LCB0eXBlIFRlbXBsYXRlUmVzdWx0LCBodG1sLCBjc3MsIHByb3BlcnR5LCBjc3NNYW5hZ2VyIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuaW1wb3J0ICogYXMgZG9tdG9vbHMgZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyc7XG5pbXBvcnQgeyB6SW5kZXhMYXllcnMgfSBmcm9tICcuLi8wMHppbmRleC5qcyc7XG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy10b2FzdC5kZW1vLmpzJztcbmltcG9ydCB7IGNzc0dlaXN0Rm9udEZhbWlseSB9IGZyb20gJy4uLzAwZm9udHMuanMnO1xuaW1wb3J0IHsgdGhlbWVEZWZhdWx0U3R5bGVzIH0gZnJvbSAnLi4vMDB0aGVtZS5qcyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgJ2RlZXMtdG9hc3QnOiBEZWVzVG9hc3Q7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgVG9hc3RUeXBlID0gJ2luZm8nIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJztcbmV4cG9ydCB0eXBlIFRvYXN0UG9zaXRpb24gPSAndG9wLXJpZ2h0JyB8ICd0b3AtbGVmdCcgfCAnYm90dG9tLXJpZ2h0JyB8ICdib3R0b20tbGVmdCcgfCAndG9wLWNlbnRlcicgfCAnYm90dG9tLWNlbnRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRvYXN0T3B0aW9ucyB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdHlwZT86IFRvYXN0VHlwZTtcbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIHBvc2l0aW9uPzogVG9hc3RQb3NpdGlvbjtcbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtdG9hc3QnKVxuZXhwb3J0IGNsYXNzIERlZXNUb2FzdCBleHRlbmRzIERlZXNFbGVtZW50IHtcbiAgLy8gU1RBVElDXG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuXG4gIHByaXZhdGUgc3RhdGljIHRvYXN0Q29udGFpbmVycyA9IG5ldyBNYXA8VG9hc3RQb3NpdGlvbiwgSFRNTERpdkVsZW1lbnQ+KCk7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0T3JDcmVhdGVDb250YWluZXIocG9zaXRpb246IFRvYXN0UG9zaXRpb24pOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgaWYgKCF0aGlzLnRvYXN0Q29udGFpbmVycy5oYXMocG9zaXRpb24pKSB7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIGNvbnRhaW5lci5jbGFzc05hbWUgPSBgdG9hc3QtY29udGFpbmVyIHRvYXN0LWNvbnRhaW5lci0ke3Bvc2l0aW9ufWA7XG4gICAgICBjb250YWluZXIuc3R5bGUuY3NzVGV4dCA9IGBcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB6LWluZGV4OiAke3pJbmRleExheWVycy5vdmVybGF5LnRvYXN0fTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgYDtcblxuICAgICAgLy8gUG9zaXRpb24gdGhlIGNvbnRhaW5lclxuICAgICAgc3dpdGNoIChwb3NpdGlvbikge1xuICAgICAgICBjYXNlICd0b3AtcmlnaHQnOlxuICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS50b3AgPSAnMCc7XG4gICAgICAgICAgY29udGFpbmVyLnN0eWxlLnJpZ2h0ID0gJzAnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0b3AtbGVmdCc6XG4gICAgICAgICAgY29udGFpbmVyLnN0eWxlLnRvcCA9ICcwJztcbiAgICAgICAgICBjb250YWluZXIuc3R5bGUubGVmdCA9ICcwJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYm90dG9tLXJpZ2h0JzpcbiAgICAgICAgICBjb250YWluZXIuc3R5bGUuYm90dG9tID0gJzAnO1xuICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS5yaWdodCA9ICcwJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYm90dG9tLWxlZnQnOlxuICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS5ib3R0b20gPSAnMCc7XG4gICAgICAgICAgY29udGFpbmVyLnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvcC1jZW50ZXInOlxuICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS50b3AgPSAnMCc7XG4gICAgICAgICAgY29udGFpbmVyLnN0eWxlLmxlZnQgPSAnNTAlJztcbiAgICAgICAgICBjb250YWluZXIuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVgoLTUwJSknO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdib3R0b20tY2VudGVyJzpcbiAgICAgICAgICBjb250YWluZXIuc3R5bGUuYm90dG9tID0gJzAnO1xuICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS5sZWZ0ID0gJzUwJSc7XG4gICAgICAgICAgY29udGFpbmVyLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVYKC01MCUpJztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpO1xuICAgICAgdGhpcy50b2FzdENvbnRhaW5lcnMuc2V0KHBvc2l0aW9uLCBjb250YWluZXIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50b2FzdENvbnRhaW5lcnMuZ2V0KHBvc2l0aW9uKSE7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIHNob3cob3B0aW9uczogSVRvYXN0T3B0aW9ucyB8IHN0cmluZykge1xuICAgIGNvbnN0IG9wdHM6IElUb2FzdE9wdGlvbnMgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgXG4gICAgICA/IHsgbWVzc2FnZTogb3B0aW9ucyB9IFxuICAgICAgOiBvcHRpb25zO1xuXG4gICAgY29uc3QgdG9hc3QgPSBuZXcgRGVlc1RvYXN0KCk7XG4gICAgdG9hc3QubWVzc2FnZSA9IG9wdHMubWVzc2FnZTtcbiAgICB0b2FzdC50eXBlID0gb3B0cy50eXBlIHx8ICdpbmZvJztcbiAgICB0b2FzdC5kdXJhdGlvbiA9IG9wdHMuZHVyYXRpb24gfHwgMzAwMDtcblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0T3JDcmVhdGVDb250YWluZXIob3B0cy5wb3NpdGlvbiB8fCAndG9wLXJpZ2h0Jyk7XG4gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRvYXN0KTtcblxuICAgIC8vIFRyaWdnZXIgYW5pbWF0aW9uXG4gICAgYXdhaXQgdG9hc3QudXBkYXRlQ29tcGxldGU7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRvYXN0LmlzVmlzaWJsZSA9IHRydWU7XG4gICAgfSk7XG5cbiAgICAvLyBBdXRvIGRpc21pc3NcbiAgICBpZiAodG9hc3QuZHVyYXRpb24gPiAwKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdG9hc3QuZGlzbWlzcygpO1xuICAgICAgfSwgdG9hc3QuZHVyYXRpb24pO1xuICAgIH1cblxuICAgIHJldHVybiB0b2FzdDtcbiAgfVxuXG4gIC8vIEFsaWFzIGZvciBjb25zaXN0ZW5jeSB3aXRoIERlZXNNb2RhbFxuICBwdWJsaWMgc3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3cob3B0aW9uczogSVRvYXN0T3B0aW9ucyB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnNob3cob3B0aW9ucyk7XG4gIH1cblxuICAvLyBDb252ZW5pZW5jZSBtZXRob2RzXG4gIHB1YmxpYyBzdGF0aWMgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIGR1cmF0aW9uPzogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyh7IG1lc3NhZ2UsIHR5cGU6ICdpbmZvJywgZHVyYXRpb24gfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCBkdXJhdGlvbj86IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnNob3coeyBtZXNzYWdlLCB0eXBlOiAnc3VjY2VzcycsIGR1cmF0aW9uIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB3YXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgZHVyYXRpb24/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93KHsgbWVzc2FnZSwgdHlwZTogJ3dhcm5pbmcnLCBkdXJhdGlvbiB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZXJyb3IobWVzc2FnZTogc3RyaW5nLCBkdXJhdGlvbj86IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnNob3coeyBtZXNzYWdlLCB0eXBlOiAnZXJyb3InLCBkdXJhdGlvbiB9KTtcbiAgfVxuXG4gIC8vIElOU1RBTkNFXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBhY2Nlc3NvciBtZXNzYWdlOiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgYWNjZXNzb3IgdHlwZTogVG9hc3RUeXBlID0gJ2luZm8nO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICBhY2Nlc3NvciBkdXJhdGlvbjogbnVtYmVyID0gMzAwMDtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gIGFjY2Vzc29yIGlzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZG9tdG9vbHMuZWxlbWVudEJhc2ljLnNldHVwKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgZm9udC1mYW1pbHk6ICR7Y3NzR2Vpc3RGb250RmFtaWx5fTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW2lzdmlzaWJsZV0pIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgfVxuXG4gICAgICAudG9hc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZicsICcjMjIyJyl9O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2UwZTBlMCcsICcjMzMzJyl9O1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCdyZ2JhKDAsMCwwLDAuMSknLCAncmdiYSgwLDAsMCwwLjMpJyl9O1xuICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC50b2FzdDpob3ZlciB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG4gICAgICB9XG5cbiAgICAgIC5pY29uIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuaWNvbiBzdmcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAubWVzc2FnZSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzMzJywgJyNmZmYnKX07XG4gICAgICB9XG5cbiAgICAgIC5jbG9zZSB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICAgICAgfVxuXG4gICAgICAuY2xvc2U6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAuY2xvc2Ugc3ZnIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgfVxuXG4gICAgICAvKiBUeXBlLXNwZWNpZmljIHN0eWxlcyAqL1xuICAgICAgOmhvc3QoW3R5cGU9XCJpbmZvXCJdKSAuaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjMDA4NGZmO1xuICAgICAgfVxuXG4gICAgICA6aG9zdChbdHlwZT1cInN1Y2Nlc3NcIl0pIC5pY29uIHtcbiAgICAgICAgY29sb3I6ICMyMmM1NWU7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KFt0eXBlPVwid2FybmluZ1wiXSkgLmljb24ge1xuICAgICAgICBjb2xvcjogI2Y1OWUwYjtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoW3R5cGU9XCJlcnJvclwiXSkgLmljb24ge1xuICAgICAgICBjb2xvcjogI2VmNDQ0NDtcbiAgICAgIH1cblxuICAgICAgLyogUHJvZ3Jlc3MgYmFyICovXG4gICAgICAucHJvZ3Jlc3Mge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIG9wYWNpdHk6IDAuMjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5wcm9ncmVzcy1iYXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgICAgICBhbmltYXRpb246IHByb2dyZXNzIGxpbmVhciBmb3J3YXJkcztcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBwcm9ncmVzcyB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgICB9XG4gICAgICAgIHRvIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBpY29ucyA9IHtcbiAgICAgIGluZm86IGh0bWxgPHN2ZyB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0xLTExYTEgMSAwIDEwLTIgMHYySDdhMSAxIDAgMTAwIDJoMnYyYTEgMSAwIDEwMiAwdi0yaDJhMSAxIDAgMTAwLTJoLTJWN3pcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIvPlxuICAgICAgPC9zdmc+YCxcbiAgICAgIHN1Y2Nlc3M6IGh0bWxgPHN2ZyB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0zLjcwNy05LjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEw5IDEwLjU4NiA3LjcwNyA5LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMDAxLjQxNCAwbDQtNHpcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIvPlxuICAgICAgPC9zdmc+YCxcbiAgICAgIHdhcm5pbmc6IGh0bWxgPHN2ZyB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04LjI1NyAzLjA5OWMuNzY1LTEuMzYgMi43MjItMS4zNiAzLjQ4NiAwbDUuNTggOS45MmMuNzUgMS4zMzQtLjIxMyAyLjk4LTEuNzQyIDIuOThINC40MmMtMS41MyAwLTIuNDkzLTEuNjQ2LTEuNzQzLTIuOThsNS41OC05Ljkyek0xMSAxM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0xLThhMSAxIDAgMDAtMSAxdjNhMSAxIDAgMDAyIDBWNmExIDEgMCAwMC0xLTF6XCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiLz5cbiAgICAgIDwvc3ZnPmAsXG4gICAgICBlcnJvcjogaHRtbGA8c3ZnIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTguNzA3IDcuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0TDguNTg2IDEwbC0xLjI5MyAxLjI5M2ExIDEgMCAxMDEuNDE0IDEuNDE0TDEwIDExLjQxNGwxLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDExLjQxNCAxMGwxLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMCA4LjU4NiA4LjcwNyA3LjI5M3pcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIvPlxuICAgICAgPC9zdmc+YFxuICAgIH07XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdFwiIEBjbGljaz0ke3RoaXMuZGlzbWlzc30+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+XG4gICAgICAgICAgJHtpY29uc1t0aGlzLnR5cGVdfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj4ke3RoaXMubWVzc2FnZX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNsb3NlXCI+XG4gICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk00LjY0NiA0LjY0NmEuNS41IDAgMCAxIC43MDggMEw4IDcuMjkzbDIuNjQ2LTIuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhMOC43MDcgOGwyLjY0NyAyLjY0NmEuNS41IDAgMCAxLS43MDguNzA4TDggOC43MDdsLTIuNjQ2IDIuNjQ3YS41LjUgMCAwIDEtLjcwOC0uNzA4TDcuMjkzIDggNC42NDYgNS4zNTRhLjUuNSAwIDAgMSAwLS43MDh6XCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgJHt0aGlzLmR1cmF0aW9uID4gMCA/IGh0bWxgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCIgc3R5bGU9XCJhbmltYXRpb24tZHVyYXRpb246ICR7dGhpcy5kdXJhdGlvbn1tc1wiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc21pc3MoKSB7XG4gICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMzAwKSk7XG4gICAgdGhpcy5yZW1vdmUoKTtcbiAgICBcbiAgICAvLyBDbGVhbiB1cCBlbXB0eSBjb250YWluZXJzXG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5wYXJlbnRFbGVtZW50O1xuICAgIGlmIChjb250YWluZXIgJiYgY29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgZm9yIChjb25zdCBbcG9zaXRpb24sIGNvbnRdIG9mIERlZXNUb2FzdC50b2FzdENvbnRhaW5lcnMuZW50cmllcygpKSB7XG4gICAgICAgIGlmIChjb250ID09PSBjb250YWluZXIpIHtcbiAgICAgICAgICBEZWVzVG9hc3QudG9hc3RDb250YWluZXJzLmRlbGV0ZShwb3NpdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlyc3RVcGRhdGVkKCkge1xuICAgIC8vIFNldCB0aGUgdHlwZSBhdHRyaWJ1dGUgZm9yIENTU1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0eXBlJywgdGhpcy50eXBlKTtcbiAgfVxufSIsICJpbXBvcnQgeyBodG1sIH0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcblxuaW1wb3J0IHsgRGVlc1VwZGF0ZXIgfSBmcm9tICcuLi9kZWVzLXVwZGF0ZXIvZGVlcy11cGRhdGVyLmpzJztcblxuZXhwb3J0IGNvbnN0IGRlbW9GdW5jID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB1cGRhdGVyID0gYXdhaXQgRGVlc1VwZGF0ZXIuY3JlYXRlQW5kU2hvdygpO1xuICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCB1cGRhdGVyLmRlc3Ryb3koKTtcbiAgfSwgMTAwMDApO1xufSIsICJpbXBvcnQge1xuICBjdXN0b21FbGVtZW50LFxuICBEZWVzRWxlbWVudCxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgaHRtbCxcbiAgcHJvcGVydHksXG4gIHR5cGUgQ1NTUmVzdWx0LFxuICBkb210b29scyxcbn0gZnJvbSAnQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50JztcbmltcG9ydCB7IGRlbW9GdW5jIH0gZnJvbSAnLi9kZWVzLXVwZGF0ZXIuZGVtby5qcyc7XG5cbmltcG9ydCAnLi4vZGVlcy13aW5kb3dsYXllci9kZWVzLXdpbmRvd2xheWVyLmpzJztcbmltcG9ydCB7IGNzcywgY3NzTWFuYWdlciB9IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5pbXBvcnQgeyB0aGVtZURlZmF1bHRTdHlsZXMgfSBmcm9tICcuLi8wMHRoZW1lLmpzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAnZGVlcy11cGRhdGVyJzogRGVlc1VwZGF0ZXI7XG4gIH1cbn1cblxuQGN1c3RvbUVsZW1lbnQoJ2RlZXMtdXBkYXRlcicpXG5leHBvcnQgY2xhc3MgRGVlc1VwZGF0ZXIgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdygpIHtcbiAgICBjb25zdCB1cGRhdGVyID0gbmV3IERlZXNVcGRhdGVyKCk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGRhdGVyKTtcbiAgICByZXR1cm4gdXBkYXRlcjtcbiAgfVxuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogU3RyaW5nLFxuICB9KVxuICBhY2Nlc3NvciBjdXJyZW50VmVyc2lvbjogc3RyaW5nO1xuXG4gIEBwcm9wZXJ0eSh7XG4gICAgdHlwZTogU3RyaW5nLFxuICB9KVxuICBhY2Nlc3NvciB1cGRhdGVkVmVyc2lvbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZG9tdG9vbHMuZWxlbWVudEJhc2ljLnNldHVwKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICB0aGVtZURlZmF1bHRTdHlsZXMsXG4gICAgY3NzTWFuYWdlci5kZWZhdWx0U3R5bGVzLFxuICAgIGNzc2BcbiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovXG4gICAgICAubW9kYWxDb250YWluZXIge1xuICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZWVlZWViJywgJyMyMjInKX07XG4gICAgICAgIG1heC13aWR0aDogODAwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZWVlZWViJywgJyMzMzMnKX07XG4gICAgICB9XG5cbiAgICAgIC5oZWFkaW5nQ29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggNDBweDtcbiAgICAgIH1cblxuICAgICAgaDEge1xuICAgICAgICBtYXJnaW46IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjMzMzJywgJyNmZmYnKX07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uQ29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MCUgNTAlO1xuICAgICAgfVxuICAgIGAsXG4gIF07XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGVlcy13aW5kb3dsYXllclxuICAgICAgICBAY2xpY2tlZD1cIiR7dGhpcy53aW5kb3dMYXllckNsaWNrZWR9XCJcbiAgICAgICAgLm9wdGlvbnM9JHt7XG4gICAgICAgICAgYmx1cjogdHJ1ZSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsQ29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdDb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkZWVzLXNwaW5uZXIgLnNpemU9JHs2MH0+PC9kZWVzLXNwaW5uZXI+XG4gICAgICAgICAgICA8aDE+VXBkYXRpbmcgdGhlIGFwcGxpY2F0aW9uLi4uPC9oMT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgIDxkZWVzLXByb2dyZXNzYmFyIC5wcm9ncmVzcz0kezAuNX0+PC9kZWVzLXByb2dyZXNzYmFyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25Db250YWluZXJcIj5cbiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Nb3JlIGluZm88L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkNoYW5nZWxvZzwvZGVlcy1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PiA8L2RlZXMtd2luZG93bGF5ZXJcbiAgICAgID4+XG4gICAgYDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZXN0cm95KCkge1xuICAgIHRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgd2luZG93TGF5ZXJDbGlja2VkKCkge31cbn1cbiIsICJpbXBvcnQgeyBodG1sLCBjc3MsIGNzc01hbmFnZXIgfSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgZGVtb0Z1bmMgPSAoKSA9PiBodG1sYFxuICA8c3R5bGU+XG4gICAgLmRlbW8tY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAzMnB4O1xuICAgICAgcGFkZGluZzogNDhweDtcbiAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjZjhmOWZhJywgJyMwYTBhMGEnKX07XG4gICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICB9XG5cbiAgICAuc2VjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2ZmZmZmZicsICcjMTgxODFiJyl9O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNlNWU3ZWInLCAnIzI3MjcyYScpfTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgfVxuXG4gICAgLnNlY3Rpb24tdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICB9XG5cbiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyM3MTcxN2EnLCAnI2ExYTFhYScpfTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgfVxuXG4gICAgLnRva2VuLWdyaWQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTtcbiAgICAgIGdhcDogMTZweDtcbiAgICB9XG5cbiAgICAudG9rZW4taXRlbSB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2Nzc01hbmFnZXIuYmRUaGVtZSgnI2Y0ZjRmNScsICcjMjcyNzJhJyl9O1xuICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICB9XG5cbiAgICAudG9rZW4tbmFtZSB7XG4gICAgICBmb250LWZhbWlseTogJ0ludGVsIE9uZSBNb25vJywgbW9ub3NwYWNlO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyNhMWExYWEnKX07XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgfVxuXG4gICAgLnRva2VuLXZhbHVlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjb2xvcjogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMwOTA5MGInLCAnI2ZhZmFmYScpfTtcbiAgICB9XG5cbiAgICAuc3BhY2luZy1kZW1vIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICBnYXA6IDhweDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICAuc3BhY2luZy1ib3gge1xuICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzYjgyZjYnLCAnIzNiODJmNicpfTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB9XG5cbiAgICAucmFkaXVzLWRlbW8ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogMTZweDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICAucmFkaXVzLWJveCB7XG4gICAgICB3aWR0aDogNjBweDtcbiAgICAgIGhlaWdodDogNjBweDtcbiAgICAgIGJhY2tncm91bmQ6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjM2I4MmY2JywgJyMzYjgyZjYnKX07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICAuc2hhZG93LWRlbW8ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogMjRweDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICAuc2hhZG93LWJveCB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyNmZmZmZmYnLCAnIzI3MjcyYScpfTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgY29sb3I6ICR7Y3NzTWFuYWdlci5iZFRoZW1lKCcjNzE3MTdhJywgJyNhMWExYWEnKX07XG4gICAgfVxuXG4gICAgLmhlaWdodC1kZW1vIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBnYXA6IDE2cHg7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgLmhlaWdodC1ib3gge1xuICAgICAgYmFja2dyb3VuZDogJHtjc3NNYW5hZ2VyLmJkVGhlbWUoJyMzYjgyZjYnLCAnIzNiODJmNicpfTtcbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgIH1cbiAgPC9zdHlsZT5cbiAgPGRpdiBjbGFzcz1cImRlbW8tY29udGFpbmVyXCI+XG4gICAgPGRlZXMtdGhlbWU+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlNwYWNpbmcgU2NhbGU8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtc3BhY2luZy14cyB0aHJvdWdoIC0tZGVlcy1zcGFjaW5nLTN4bFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNpbmctZGVtb1wiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2luZy1ib3hcIiBzdHlsZT1cIndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy14cyk7XCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4tbmFtZVwiPnhzICg0cHgpPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjaW5nLWJveFwiIHN0eWxlPVwid2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1zbSk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTtcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi1uYW1lXCI+c20gKDhweCk8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNpbmctYm94XCIgc3R5bGU9XCJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLW1kKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctbWQpO1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRva2VuLW5hbWVcIj5tZCAoMTJweCk8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNpbmctYm94XCIgc3R5bGU9XCJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctbGcpO1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRva2VuLW5hbWVcIj5sZyAoMTZweCk8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNpbmctYm94XCIgc3R5bGU9XCJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXhsKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpO1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRva2VuLW5hbWVcIj54bCAoMjRweCk8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNpbmctYm94XCIgc3R5bGU9XCJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLTJ4bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLTJ4bCk7XCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4tbmFtZVwiPjJ4bCAoMzJweCk8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNpbmctYm94XCIgc3R5bGU9XCJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLTN4bCk7XCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4tbmFtZVwiPjN4bCAoNDhweCk8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5Cb3JkZXIgUmFkaXVzIFNjYWxlPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXJhZGl1cy14cyB0aHJvdWdoIC0tZGVlcy1yYWRpdXMtZnVsbFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJhZGl1cy1kZW1vXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpdXMtYm94XCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14cyk7XCI+eHM8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi1uYW1lXCI+MnB4PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpdXMtYm94XCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1zbSk7XCI+c208L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi1uYW1lXCI+NHB4PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpdXMtYm94XCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1tZCk7XCI+bWQ8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi1uYW1lXCI+NnB4PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpdXMtYm94XCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1sZyk7XCI+bGc8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi1uYW1lXCI+OHB4PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpdXMtYm94XCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14bCk7XCI+eGw8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi1uYW1lXCI+MTJweDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaXVzLWJveFwiIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtZnVsbCk7XCI+ZnVsbDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRva2VuLW5hbWVcIj45OTlweDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlNoYWRvdyBFbGV2YXRpb24gU2NhbGU8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtc2hhZG93LXhzIHRocm91Z2ggLS1kZWVzLXNoYWRvdy1sZ1xuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNoYWRvdy1kZW1vXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGFkb3ctYm94XCIgc3R5bGU9XCJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy14cyk7XCI+eHM8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi1uYW1lXCI+bWluaW1hbDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hhZG93LWJveFwiIHN0eWxlPVwiYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctc20pO1wiPnNtPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4tbmFtZVwiPnN1YnRsZTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hhZG93LWJveFwiIHN0eWxlPVwiYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctbWQpO1wiPm1kPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4tbmFtZVwiPm1lZGl1bTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hhZG93LWJveFwiIHN0eWxlPVwiYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctbGcpO1wiPmxnPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4tbmFtZVwiPnByb21pbmVudDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkNvbnRyb2wgSGVpZ2h0IFNjYWxlPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXNtIHRocm91Z2ggLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXhsXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVpZ2h0LWRlbW9cIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlaWdodC1ib3hcIiBzdHlsZT1cImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1zbSk7XCI+c208L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi1uYW1lXCI+MzJweDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVpZ2h0LWJveFwiIHN0eWxlPVwiaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LW1kKTtcIj5tZDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRva2VuLW5hbWVcIj4zNnB4PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWlnaHQtYm94XCIgc3R5bGU9XCJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtbGcpO1wiPmxnPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4tbmFtZVwiPjQwcHg8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlaWdodC1ib3hcIiBzdHlsZT1cImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC14bCk7XCI+eGw8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi1uYW1lXCI+NDhweDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlRyYW5zaXRpb24gRHVyYXRpb25zPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXRyYW5zaXRpb24tZmFzdCB0aHJvdWdoIC0tZGVlcy10cmFuc2l0aW9uLXNsb3dlclxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRva2VuLWdyaWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4taXRlbVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRva2VuLW5hbWVcIj4tLWRlZXMtdHJhbnNpdGlvbi1mYXN0PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4tdmFsdWVcIj4wLjFzPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRva2VuLWl0ZW1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi1uYW1lXCI+LS1kZWVzLXRyYW5zaXRpb24tZGVmYXVsdDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRva2VuLXZhbHVlXCI+MC4xNXM8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4taXRlbVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRva2VuLW5hbWVcIj4tLWRlZXMtdHJhbnNpdGlvbi1zbG93PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4tdmFsdWVcIj4wLjJzPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRva2VuLWl0ZW1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi1uYW1lXCI+LS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9rZW4tdmFsdWVcIj4wLjNzPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kZWVzLXRoZW1lPlxuICA8L2Rpdj5cbmA7XG4iLCAiaW1wb3J0IHtcbiAgRGVlc0VsZW1lbnQsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHByb3BlcnR5LFxuICBjdXN0b21FbGVtZW50LFxuICBodG1sLFxuICBjc3MsXG4gIGNzc01hbmFnZXIsXG59IGZyb20gJ0BkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCc7XG5cbmltcG9ydCB7XG4gIHR5cGUgSVRoZW1lLFxuICB0eXBlIElUaGVtZUNvbG9ycyxcbiAgdHlwZSBJVGhlbWVTcGFjaW5nLFxuICB0eXBlIElUaGVtZVJhZGl1cyxcbiAgdHlwZSBJVGhlbWVTaGFkb3dzLFxuICB0eXBlIElUaGVtZVRyYW5zaXRpb25zLFxuICB0eXBlIElUaGVtZUNvbnRyb2xIZWlnaHRzLFxuICB0aGVtZURlZmF1bHRzLFxuICB0aGVtZURlZmF1bHRTdHlsZXMsXG59IGZyb20gJy4uLzAwdGhlbWUuanMnO1xuXG5pbXBvcnQgeyBkZW1vRnVuYyB9IGZyb20gJy4vZGVlcy10aGVtZS5kZW1vLmpzJztcblxuLyoqXG4gKiBBIHRoZW1lIHByb3ZpZGVyIGNvbXBvbmVudCB0aGF0IHdyYXBzIGNoaWxkcmVuIGFuZCBwcm92aWRlcyBDU1MgY3VzdG9tIHByb3BlcnRpZXMuXG4gKiBDYW4gYmUgdXNlZCBhdCB0aGUgYXBwIHJvb3Qgb3IgYXJvdW5kIHNwZWNpZmljIHNlY3Rpb25zIHRvIGN1c3RvbWl6ZSB0aGVtaW5nLlxuICpcbiAqIFVzYWdlOlxuICogYGBgaHRtbFxuICogPGRlZXMtdGhlbWU+XG4gKiAgIDxteS1hcHA+PC9teS1hcHA+XG4gKiA8L2RlZXMtdGhlbWU+XG4gKiBgYGBcbiAqXG4gKiBXaXRoIGN1c3RvbSBvdmVycmlkZXM6XG4gKiBgYGBodG1sXG4gKiA8ZGVlcy10aGVtZSAuY3VzdG9tU3BhY2luZz0ke3sgbGc6ICcyMHB4JyB9fT5cbiAqICAgPG15LXNlY3Rpb24+PC9teS1zZWN0aW9uPlxuICogPC9kZWVzLXRoZW1lPlxuICogYGBgXG4gKi9cbkBjdXN0b21FbGVtZW50KCdkZWVzLXRoZW1lJylcbmV4cG9ydCBjbGFzcyBEZWVzVGhlbWUgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgZGVtbyA9IGRlbW9GdW5jO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFByb3BlcnRpZXMgZm9yIHRoZW1lIG92ZXJyaWRlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE9iamVjdCB9KVxuICBhY2Nlc3NvciBjdXN0b21TcGFjaW5nOiBQYXJ0aWFsPElUaGVtZVNwYWNpbmc+IHwgbnVsbCA9IG51bGw7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pXG4gIGFjY2Vzc29yIGN1c3RvbVJhZGl1czogUGFydGlhbDxJVGhlbWVSYWRpdXM+IHwgbnVsbCA9IG51bGw7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pXG4gIGFjY2Vzc29yIGN1c3RvbVNoYWRvd3M6IFBhcnRpYWw8SVRoZW1lU2hhZG93cz4gfCBudWxsID0gbnVsbDtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBPYmplY3QgfSlcbiAgYWNjZXNzb3IgY3VzdG9tVHJhbnNpdGlvbnM6IFBhcnRpYWw8SVRoZW1lVHJhbnNpdGlvbnM+IHwgbnVsbCA9IG51bGw7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pXG4gIGFjY2Vzc29yIGN1c3RvbUNvbnRyb2xIZWlnaHRzOiBQYXJ0aWFsPElUaGVtZUNvbnRyb2xIZWlnaHRzPiB8IG51bGwgPSBudWxsO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFN0eWxlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIHRoZW1lRGVmYXVsdFN0eWxlcyxcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgIH1cbiAgICBgLFxuICBdO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJlbmRlclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHB1YmxpYyByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHN0eWxlPlxuICAgICAgICAke3RoaXMuZ2VuZXJhdGVDdXN0b21TdHlsZXMoKX1cbiAgICAgIDwvc3R5bGU+XG4gICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgYDtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFByaXZhdGUgTWV0aG9kc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVDdXN0b21TdHlsZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdHlsZXM6IHN0cmluZ1tdID0gWyc6aG9zdCB7J107XG5cbiAgICAvLyBDdXN0b20gc3BhY2luZ1xuICAgIGlmICh0aGlzLmN1c3RvbVNwYWNpbmcpIHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tU3BhY2luZykpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgc3R5bGVzLnB1c2goYCAgLS1kZWVzLXNwYWNpbmctJHtrZXl9OiAke3ZhbHVlfTtgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEN1c3RvbSByYWRpdXNcbiAgICBpZiAodGhpcy5jdXN0b21SYWRpdXMpIHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tUmFkaXVzKSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICBzdHlsZXMucHVzaChgICAtLWRlZXMtcmFkaXVzLSR7a2V5fTogJHt2YWx1ZX07YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDdXN0b20gc2hhZG93c1xuICAgIGlmICh0aGlzLmN1c3RvbVNoYWRvd3MpIHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tU2hhZG93cykpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgc3R5bGVzLnB1c2goYCAgLS1kZWVzLXNoYWRvdy0ke2tleX06ICR7dmFsdWV9O2ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ3VzdG9tIHRyYW5zaXRpb25zXG4gICAgaWYgKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGNvbnN0IGNzc0tleSA9IGtleSA9PT0gJ2RlZmF1bHQnID8gJ2RlZmF1bHQnIDoga2V5O1xuICAgICAgICAgIHN0eWxlcy5wdXNoKGAgIC0tZGVlcy10cmFuc2l0aW9uLSR7Y3NzS2V5fTogJHt2YWx1ZX07YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDdXN0b20gY29udHJvbCBoZWlnaHRzXG4gICAgaWYgKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpIHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHN0eWxlcy5wdXNoKGAgIC0tZGVlcy1jb250cm9sLWhlaWdodC0ke2tleX06ICR7dmFsdWV9O2ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3R5bGVzLnB1c2goJ30nKTtcbiAgICByZXR1cm4gc3R5bGVzLmpvaW4oJ1xcbicpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUHVibGljIEFQSSBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIFNldCBhIHNwYWNpbmcgdmFsdWUgZHluYW1pY2FsbHlcbiAgICovXG4gIHB1YmxpYyBzZXRTcGFjaW5nKGtleToga2V5b2YgSVRoZW1lU3BhY2luZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY3VzdG9tU3BhY2luZyA9IHsgLi4udGhpcy5jdXN0b21TcGFjaW5nLCBba2V5XTogdmFsdWUgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSByYWRpdXMgdmFsdWUgZHluYW1pY2FsbHlcbiAgICovXG4gIHB1YmxpYyBzZXRSYWRpdXMoa2V5OiBrZXlvZiBJVGhlbWVSYWRpdXMsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmN1c3RvbVJhZGl1cyA9IHsgLi4udGhpcy5jdXN0b21SYWRpdXMsIFtrZXldOiB2YWx1ZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhIHNoYWRvdyB2YWx1ZSBkeW5hbWljYWxseVxuICAgKi9cbiAgcHVibGljIHNldFNoYWRvdyhrZXk6IGtleW9mIElUaGVtZVNoYWRvd3MsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmN1c3RvbVNoYWRvd3MgPSB7IC4uLnRoaXMuY3VzdG9tU2hhZG93cywgW2tleV06IHZhbHVlIH07XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgdHJhbnNpdGlvbiB2YWx1ZSBkeW5hbWljYWxseVxuICAgKi9cbiAgcHVibGljIHNldFRyYW5zaXRpb24oa2V5OiBrZXlvZiBJVGhlbWVUcmFuc2l0aW9ucywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMgPSB7IC4uLnRoaXMuY3VzdG9tVHJhbnNpdGlvbnMsIFtrZXldOiB2YWx1ZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhIGNvbnRyb2wgaGVpZ2h0IHZhbHVlIGR5bmFtaWNhbGx5XG4gICAqL1xuICBwdWJsaWMgc2V0Q29udHJvbEhlaWdodChrZXk6IGtleW9mIElUaGVtZUNvbnRyb2xIZWlnaHRzLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cyA9IHsgLi4udGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cywgW2tleV06IHZhbHVlIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHRoZW1lIGNvbmZpZ3VyYXRpb24gKGRlZmF1bHRzICsgb3ZlcnJpZGVzKVxuICAgKi9cbiAgcHVibGljIGdldFRoZW1lKCk6IElUaGVtZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yczogdGhlbWVEZWZhdWx0cy5jb2xvcnMsXG4gICAgICBzcGFjaW5nOiB7IC4uLnRoZW1lRGVmYXVsdHMuc3BhY2luZywgLi4udGhpcy5jdXN0b21TcGFjaW5nIH0sXG4gICAgICByYWRpdXM6IHsgLi4udGhlbWVEZWZhdWx0cy5yYWRpdXMsIC4uLnRoaXMuY3VzdG9tUmFkaXVzIH0sXG4gICAgICBzaGFkb3dzOiB7IC4uLnRoZW1lRGVmYXVsdHMuc2hhZG93cywgLi4udGhpcy5jdXN0b21TaGFkb3dzIH0sXG4gICAgICB0cmFuc2l0aW9uczogeyAuLi50aGVtZURlZmF1bHRzLnRyYW5zaXRpb25zLCAuLi50aGlzLmN1c3RvbVRyYW5zaXRpb25zIH0sXG4gICAgICBjb250cm9sSGVpZ2h0czogeyAuLi50aGVtZURlZmF1bHRzLmNvbnRyb2xIZWlnaHRzLCAuLi50aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBhbGwgY3VzdG9tIG92ZXJyaWRlcyB0byBkZWZhdWx0c1xuICAgKi9cbiAgcHVibGljIHJlc2V0VG9EZWZhdWx0cygpOiB2b2lkIHtcbiAgICB0aGlzLmN1c3RvbVNwYWNpbmcgPSBudWxsO1xuICAgIHRoaXMuY3VzdG9tUmFkaXVzID0gbnVsbDtcbiAgICB0aGlzLmN1c3RvbVNoYWRvd3MgPSBudWxsO1xuICAgIHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMgPSBudWxsO1xuICAgIHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IGEgY29tcGxldGUgdGhlbWUgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgYXBwbHlUaGVtZSh0aGVtZTogUGFydGlhbDxJVGhlbWU+KTogdm9pZCB7XG4gICAgaWYgKHRoZW1lLnNwYWNpbmcpIHRoaXMuY3VzdG9tU3BhY2luZyA9IHRoZW1lLnNwYWNpbmc7XG4gICAgaWYgKHRoZW1lLnJhZGl1cykgdGhpcy5jdXN0b21SYWRpdXMgPSB0aGVtZS5yYWRpdXM7XG4gICAgaWYgKHRoZW1lLnNoYWRvd3MpIHRoaXMuY3VzdG9tU2hhZG93cyA9IHRoZW1lLnNoYWRvd3M7XG4gICAgaWYgKHRoZW1lLnRyYW5zaXRpb25zKSB0aGlzLmN1c3RvbVRyYW5zaXRpb25zID0gdGhlbWUudHJhbnNpdGlvbnM7XG4gICAgaWYgKHRoZW1lLmNvbnRyb2xIZWlnaHRzKSB0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzID0gdGhlbWUuY29udHJvbEhlaWdodHM7XG4gIH1cbn1cbiIsICJleHBvcnQgKiBmcm9tICcuLzAwemluZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vMDB0aGVtZS5qcyc7XG5cbi8vIENvbXBvbmVudCBHcm91cHNcbmV4cG9ydCAqIGZyb20gJy4vMDBncm91cC1hcHB1aS9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuLzAwZ3JvdXAtYnV0dG9uL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vMDBncm91cC1jaGFydC9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuLzAwZ3JvdXAtZGF0YXZpZXcvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi8wMGdyb3VwLXdvcmtzcGFjZS9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuLzAwZ3JvdXAtZm9ybS9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuLzAwZ3JvdXAtaW5wdXQvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi8wMGdyb3VwLXBkZi9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuLzAwZ3JvdXAtcnVudGltZS9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuLzAwZ3JvdXAtc2ltcGxlL2luZGV4LmpzJztcblxuLy8gU3RhbmRhbG9uZSBDb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2RlZXMtYWN0aW9uYmFyL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy1iYWRnZS9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RlZXMtY2hpcHMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWVzLWNvbnRleHRtZW51L2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy1kYXNoYm9hcmRncmlkL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy1oZWFkaW5nL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy1oaW50L2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy1pY29uL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy1sYWJlbC9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RlZXMtbW9iaWxlbmF2aWdhdGlvbi9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RlZXMtbW9kYWwvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWVzLXBhZ2luYXRpb24vaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWVzLXBhbmVsL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy1wcm9ncmVzc2Jhci9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RlZXMtc2VhcmNoYmFyL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZC9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RlZXMtc3BlZWNoYnViYmxlL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy1zcGlubmVyL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy1zdGF0c2dyaWQvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWVzLXN0ZXBwZXIvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWVzLXRhYmxlL2luZGV4LmpzJztcbi8vIGRlZXMtdGVybWluYWwgaXMgbm93IHBhcnQgb2YgMDBncm91cC13b3Jrc3BhY2UgYXMgZGVlcy13b3Jrc3BhY2UtdGVybWluYWxcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy10b2FzdC9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RlZXMtdXBkYXRlci9pbmRleC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RlZXMtd2luZG93Y29udHJvbHMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWVzLXdpbmRvd2xheWVyL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcy10aGVtZS9pbmRleC5qcyc7XG4iLCAiaW1wb3J0IHtcbiAgRGVlc0VsZW1lbnQsXG4gIHByb3BlcnR5LFxuICBodG1sLFxuICBjdXN0b21FbGVtZW50LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBjc3MsXG4gIHN0YXRlLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICdAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdvcGVuY2RuLW1haW5wYWdlJzogT3BlbmNkbk1haW5wYWdlO1xuICB9XG59XG5cbkBjdXN0b21FbGVtZW50KCdvcGVuY2RuLW1haW5wYWdlJylcbmV4cG9ydCBjbGFzcyBPcGVuY2RuTWFpbnBhZ2UgZXh0ZW5kcyBEZWVzRWxlbWVudCB7XG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdmVyc2lvbjogc3RyaW5nID0gJzEuMC4wJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgcHVibGljIGFjY2Vzc29yIG1vZGU6IHN0cmluZyA9ICdwcm9kJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWxsb3dlZFBhY2thZ2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBzdGF0ZSgpXG4gIHByaXZhdGUgYWNjZXNzb3IgY3VycmVudFZpZXc6ICdob21lJyB8ICdwZWVrJyB8ICdkb2NzJyA9ICdob21lJztcblxuICAvLyBTaGFkY24tbGlrZSBjb2xvciBwYWxldHRlXG4gIHB1YmxpYyBzdGF0aWMgc3R5bGVzID0gW1xuICAgIGNzc2BcbiAgICAgIDpob3N0IHtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiAjMDkwOTBiO1xuICAgICAgICAtLWZvcmVncm91bmQ6ICNmYWZhZmE7XG4gICAgICAgIC0tY2FyZDogIzA5MDkwYjtcbiAgICAgICAgLS1jYXJkLWZvcmVncm91bmQ6ICNmYWZhZmE7XG4gICAgICAgIC0tbXV0ZWQ6ICMyNzI3MmE7XG4gICAgICAgIC0tbXV0ZWQtZm9yZWdyb3VuZDogI2ExYTFhYTtcbiAgICAgICAgLS1ib3JkZXI6ICMyNzI3MmE7XG4gICAgICAgIC0taW5wdXQ6ICMyNzI3MmE7XG4gICAgICAgIC0tcHJpbWFyeTogI2ZhZmFmYTtcbiAgICAgICAgLS1wcmltYXJ5LWZvcmVncm91bmQ6ICMxODE4MWI7XG4gICAgICAgIC0tc2Vjb25kYXJ5OiAjMjcyNzJhO1xuICAgICAgICAtLXNlY29uZGFyeS1mb3JlZ3JvdW5kOiAjZmFmYWZhO1xuICAgICAgICAtLWFjY2VudDogIzI3MjcyYTtcbiAgICAgICAgLS1hY2NlbnQtZm9yZWdyb3VuZDogI2ZhZmFmYTtcbiAgICAgICAgLS1yaW5nOiAjZDRkNGQ4O1xuICAgICAgICAtLXJhZGl1czogMC41cmVtO1xuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIH1cblxuICAgICAgKiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB9XG5cbiAgICAgIC5jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDcwMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgcGFkZGluZzogNjBweCAyNHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDtcbiAgICAgIH1cblxuICAgICAgLmxvZ28ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAubG9nby1pY29uIHtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZm9yZWdyb3VuZCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAubG9nby1pY29uIGRlZXMtaWNvbiB7XG4gICAgICAgIC0tZGVlcy1pY29uLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kKTtcbiAgICAgIH1cblxuICAgICAgLmxvZ28tdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICAgIH1cblxuICAgICAgLnRhZ2xpbmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIH1cblxuICAgICAgLmNvbnRlbnQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDI0cHg7XG4gICAgICB9XG5cbiAgICAgIC5jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2FyZCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICB9XG5cbiAgICAgIC51c2FnZS1ib3gge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tdXRlZCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgICAgIH1cblxuICAgICAgLnVzYWdlLXRpdGxlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLnVzYWdlLWNvZGUge1xuICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnRmlyYSBDb2RlJywgJ0ZpcmEgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLXJhZGl1cykgLSAycHgpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gICAgICB9XG5cbiAgICAgIC5uYXYtYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cblxuICAgICAgLm5hdi1idXR0b25zIGRlZXMtYnV0dG9uIHtcbiAgICAgICAgLS1kZWVzLWJ1dHRvbi13aWR0aDogYXV0bztcbiAgICAgIH1cblxuICAgICAgLnBhY2thZ2VzLXNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5wYWNrYWdlcy10aXRsZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb3JlZ3JvdW5kKTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLnBhY2thZ2VzLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAucGFja2FnZS10YWcge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLXJhZGl1cykgLSAycHgpO1xuICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5wYWNrYWdlLXRhZzpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb3JlZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yaW5nKTtcbiAgICAgIH1cblxuICAgICAgLmZvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy10b3A6IDMycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTtcbiAgICAgIH1cblxuICAgICAgLnN0YXR1cyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgY29sb3I6ICMyMmM1NWU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cblxuICAgICAgLnN0YXR1cy1kb3Qge1xuICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogIzIyYzU1ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIHB1bHNlIHtcbiAgICAgICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAxOyB9XG4gICAgICAgIDUwJSB7IG9wYWNpdHk6IDAuNTsgfVxuICAgICAgfVxuXG4gICAgICAudmVyc2lvbiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICB9XG5cbiAgICAgIC5tb2RlLWJhZGdlIHtcbiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICAgIH1cblxuICAgICAgLm1vZGUtYmFkZ2UuZGV2IHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4xKTtcbiAgICAgICAgY29sb3I6ICMyMmM1NWU7XG4gICAgICB9XG5cbiAgICAgIC5tb2RlLWJhZGdlLnByb2Qge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpO1xuICAgICAgICBjb2xvcjogI2VmNDQ0NDtcbiAgICAgIH1cblxuICAgICAgLmZvb3Rlci1yaWdodCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgIH1cblxuICAgICAgLmZvb3Rlci1saW5rIHtcbiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cblxuICAgICAgLmZvb3Rlci1saW5rOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgfVxuXG4gICAgICAuZW1wdHktc3RhdGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDtcbiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBwdWJsaWMgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9nby1pY29uXCI+XG4gICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOnBhY2thZ2UnfSAuaWNvblNpemU9JHsyNH0+PC9kZWVzLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9nby10ZXh0XCI+b3BlbmNkbjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cCBjbGFzcz1cInRhZ2xpbmVcIj5TZXJ2ZSBmaWxlcyBkaXJlY3RseSBmcm9tIG5wbSBwYWNrYWdlczwvcD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNhZ2UtYm94XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNhZ2UtdGl0bGVcIj5SZXF1ZXN0IGZpbGVzIHVzaW5nOjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzYWdlLWNvZGVcIj4vQHNjb3BlL3BhY2thZ2UvcGF0aC90by9maWxlLmpzP3ZlcnNpb249MS4wLjA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICR7dGhpcy5tb2RlID09PSAnZGV2JyA/IGh0bWxgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9XCJoaWdobGlnaHRlZFwiIEBjbGljaz0keygpID0+IHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9wZWVrLyd9PlxuICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOmZvbGRlci1vcGVuJ30gLmljb25TaXplPSR7MTZ9IHNsb3Q9XCJpY29uTGVmdFwiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICAgIEJyb3dzZSBQYWNrYWdlc1xuICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCkgPT4gd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL3JlYWRtZS8nfT5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTpib29rLW9wZW4nfSAuaWNvblNpemU9JHsxNn0gc2xvdD1cImljb25MZWZ0XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICAgICAgRG9jdW1lbnRhdGlvblxuICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYCA6ICcnfVxuXG4gICAgICAgICAgJHt0aGlzLmFsbG93ZWRQYWNrYWdlcy5sZW5ndGggPiAwID8gaHRtbGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWNrYWdlcy1zZWN0aW9uXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWNrYWdlcy10aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOmJveGVzJ30gLmljb25TaXplPSR7MTZ9PjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICAgIEF2YWlsYWJsZSBQYWNrYWdlc1xuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhY2thZ2VzLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAke3RoaXMuYWxsb3dlZFBhY2thZ2VzLm1hcChwa2cgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGFja2FnZS10YWdcIiBAY2xpY2s9JHsoKSA9PiB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvcGVlay8ke3BrZ31gfT5cbiAgICAgICAgICAgICAgICAgICAgJHtwa2d9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgYCl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYCA6IGh0bWxgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6cGFja2FnZS14J30gLmljb25TaXplPSR7NDh9IHN0eWxlPVwib3BhY2l0eTogMC41O1wiPjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICA8cD5ObyBwYWNrYWdlcyBjb25maWd1cmVkPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEycHg7XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXR1c1wiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXR1cy1kb3RcIj48L3NwYW4+XG4gICAgICAgICAgICAgIE9ubGluZVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZXJzaW9uXCI+diR7dGhpcy52ZXJzaW9ufTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibW9kZS1iYWRnZSAke3RoaXMubW9kZX1cIj4ke3RoaXMubW9kZX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlci1yaWdodFwiPlxuICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vdGFzay52Y1wiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiZm9vdGVyLWxpbmtcIj5UYXNrIFZlbnR1cmUgQ2FwaXRhbDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG4iLCAiaW1wb3J0IHtcbiAgRGVlc0VsZW1lbnQsXG4gIHByb3BlcnR5LFxuICBodG1sLFxuICBjdXN0b21FbGVtZW50LFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICBjc3NNYW5hZ2VyLFxuICBjc3MsXG4gIHN0YXRlLFxufSBmcm9tICdAZGVzaWduLmVzdGF0ZS9kZWVzLWVsZW1lbnQnO1xuaW1wb3J0ICdAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2cnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICdvcGVuY2RuLXBlZWtwYWdlJzogT3BlbmNkblBlZWtwYWdlO1xuICB9XG59XG5cbmludGVyZmFjZSBJRmlsZU5vZGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgaXNGaWxlOiBib29sZWFuO1xuICBjaGlsZHJlbj86IElGaWxlTm9kZVtdO1xufVxuXG5AY3VzdG9tRWxlbWVudCgnb3BlbmNkbi1wZWVrcGFnZScpXG5leHBvcnQgY2xhc3MgT3BlbmNkblBlZWtwYWdlIGV4dGVuZHMgRGVlc0VsZW1lbnQge1xuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgcHVibGljIGFjY2Vzc29yIHBhY2thZ2VOYW1lOiBzdHJpbmcgPSAnJztcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcgfSlcbiAgcHVibGljIGFjY2Vzc29yIHZlcnNpb246IHN0cmluZyA9ICcnO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhbGxvd2VkUGFja2FnZXM6IHN0cmluZ1tdID0gW107XG5cbiAgQHN0YXRlKClcbiAgcHJpdmF0ZSBhY2Nlc3NvciBmaWxlczogc3RyaW5nW10gPSBbXTtcblxuICBAc3RhdGUoKVxuICBwcml2YXRlIGFjY2Vzc29yIGZpbGVUcmVlOiBJRmlsZU5vZGVbXSA9IFtdO1xuXG4gIEBzdGF0ZSgpXG4gIHByaXZhdGUgYWNjZXNzb3Igc2VsZWN0ZWRGaWxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBAc3RhdGUoKVxuICBwcml2YXRlIGFjY2Vzc29yIGZpbGVDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICBAc3RhdGUoKVxuICBwcml2YXRlIGFjY2Vzc29yIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAc3RhdGUoKVxuICBwcml2YXRlIGFjY2Vzc29yIHNlYXJjaFF1ZXJ5OiBzdHJpbmcgPSAnJztcblxuICBAc3RhdGUoKVxuICBwcml2YXRlIGFjY2Vzc29yIGF2YWlsYWJsZVZlcnNpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBzdGF0ZSgpXG4gIHByaXZhdGUgYWNjZXNzb3IgZXhwYW5kZWRGb2xkZXJzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcblxuICBwdWJsaWMgc3RhdGljIHN0eWxlcyA9IFtcbiAgICBjc3NNYW5hZ2VyLmRlZmF1bHRTdHlsZXMsXG4gICAgY3NzYFxuICAgICAgOmhvc3Qge1xuICAgICAgICAtLWJhY2tncm91bmQ6ICMwOTA5MGI7XG4gICAgICAgIC0tZm9yZWdyb3VuZDogI2ZhZmFmYTtcbiAgICAgICAgLS1tdXRlZDogIzI3MjcyYTtcbiAgICAgICAgLS1tdXRlZC1mb3JlZ3JvdW5kOiAjYTFhMWFhO1xuICAgICAgICAtLWJvcmRlcjogIzI3MjcyYTtcbiAgICAgICAgLS1wcmltYXJ5OiAjZmFmYWZhO1xuICAgICAgICAtLXByaW1hcnktZm9yZWdyb3VuZDogIzE4MTgxYjtcbiAgICAgICAgLS1zZWNvbmRhcnk6ICMyNzI3MmE7XG4gICAgICAgIC0tcmluZzogI2Q0ZDRkODtcblxuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgIH1cblxuICAgICAgKiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB9XG5cbiAgICAgIC5hcHAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC8qIEhlYWRlciAqL1xuICAgICAgLmhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gICAgICB9XG5cbiAgICAgIC5oZWFkZXItbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXM7XG4gICAgICB9XG5cbiAgICAgIC5oZWFkZXItbG9nbzpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlci1zZXAge1xuICAgICAgICBjb2xvcjogdmFyKC0tYm9yZGVyKTtcbiAgICAgIH1cblxuICAgICAgLmhlYWRlci1wYWNrYWdlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgfVxuXG4gICAgICAuaGVhZGVyLXZlcnNpb24ge1xuICAgICAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbXV0ZWQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpO1xuICAgICAgfVxuXG4gICAgICAuaGVhZGVyLXNwYWNlciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG5cbiAgICAgIC52ZXJzaW9uLXNlbGVjdCB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tdXRlZCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzO1xuICAgICAgfVxuXG4gICAgICAudmVyc2lvbi1zZWxlY3Q6aG92ZXIsXG4gICAgICAudmVyc2lvbi1zZWxlY3Q6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXJpbmcpO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgfVxuXG4gICAgICAvKiBNYWluIENvbnRlbnQgKi9cbiAgICAgIC5tYWluIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLyogU2lkZWJhciAqL1xuICAgICAgLnNpZGViYXIge1xuICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQpO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuXG4gICAgICAuc2lkZWJhci1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgICAgIH1cblxuICAgICAgLmZpbGUtdHJlZSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgfVxuXG4gICAgICAvKiBUcmVlIEl0ZW1zICovXG4gICAgICAudHJlZS1mb2xkZXIge1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmZvbGRlci1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXM7XG4gICAgICB9XG5cbiAgICAgIC5mb2xkZXItaGVhZGVyOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbXV0ZWQpO1xuICAgICAgfVxuXG4gICAgICAuZm9sZGVyLWNoZXZyb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cztcbiAgICAgIH1cblxuICAgICAgLmZvbGRlci1jaGV2cm9uLm9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5mb2xkZXItY2hpbGRyZW4ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIC50cmVlLWZpbGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cztcbiAgICAgIH1cblxuICAgICAgLnRyZWUtZmlsZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW11dGVkKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgfVxuXG4gICAgICAudHJlZS1maWxlLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1mb3JlZ3JvdW5kKTtcbiAgICAgIH1cblxuICAgICAgLyogQ29udGVudCBBcmVhICovXG4gICAgICAuY29udGVudCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5jb250ZW50LWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gICAgICB9XG5cbiAgICAgIC5jb250ZW50LXBhdGgge1xuICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTtcbiAgICAgIH1cblxuICAgICAgLmNvbnRlbnQtcGF0aCBzcGFuIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgfVxuXG4gICAgICAuY29udGVudC1hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAvKiBDb2RlIFZpZXdlciAqL1xuICAgICAgLmNvZGUtdmlld2VyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQpO1xuICAgICAgfVxuXG4gICAgICAuY29kZS12aWV3ZXIgcHJlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb3JlZ3JvdW5kKTtcbiAgICAgIH1cblxuICAgICAgLyogRW1wdHkgU3RhdGUgKi9cbiAgICAgIC5lbXB0eS1zdGF0ZSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cblxuICAgICAgLyogUGFja2FnZSBMaXN0IFZpZXcgKi9cbiAgICAgIC5wYWNrYWdlLWxpc3QtY29udGFpbmVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDYwcHggMjRweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgfVxuXG4gICAgICAuc2VhcmNoLWJveCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIH1cblxuICAgICAgLnNlYXJjaC1pbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHggMTRweCA0NHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tdXRlZCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXM7XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2gtaW5wdXQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXJpbmcpO1xuICAgICAgfVxuXG4gICAgICAuc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTtcbiAgICAgIH1cblxuICAgICAgLnNlYXJjaC1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAxNHB4O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7XG4gICAgICB9XG5cbiAgICAgIC5wYWNrYWdlLWNvdW50IHtcbiAgICAgICAgY29sb3I6IHZhcigtLW11dGVkLWZvcmVncm91bmQpO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIC5wYWNrYWdlLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLnBhY2thZ2UtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tdXRlZCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzO1xuICAgICAgfVxuXG4gICAgICAucGFja2FnZS1saW5rOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvcmVncm91bmQpO1xuICAgICAgfVxuXG4gICAgICAubm8tcmVzdWx0cyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogNDBweCAyMHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7XG4gICAgICB9XG5cbiAgICAgIC8qIFNjcm9sbGJhciAqL1xuICAgICAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgfVxuICAgICAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgICAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW11dGVkKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgfVxuICAgICAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMzZjNmNDY7XG4gICAgICB9XG4gICAgYCxcbiAgXTtcblxuICBhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIC8vIFBhcnNlIFVSTCB0byBnZXQgcGFja2FnZSBuYW1lXG4gICAgY29uc3QgcGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICBpZiAocGF0aC5zdGFydHNXaXRoKCcvcGVlay8nKSAmJiBwYXRoLmxlbmd0aCA+IDYpIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zbGljZSg2KS5zcGxpdCgnLycpO1xuICAgICAgaWYgKHBhcnRzWzBdPy5zdGFydHNXaXRoKCdAJykgJiYgcGFydHNbMV0pIHtcbiAgICAgICAgdGhpcy5wYWNrYWdlTmFtZSA9IGAke3BhcnRzWzBdfS8ke3BhcnRzWzFdfWA7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZFBhY2thZ2VGaWxlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFBhY2thZ2VGaWxlcygpIHtcbiAgICBpZiAoIXRoaXMucGFja2FnZU5hbWUpIHJldHVybjtcblxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEZldGNoIGZpbGUgbGlzdCBmcm9tIEFQSVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL2FwaS9maWxlcy8ke3RoaXMucGFja2FnZU5hbWV9P3ZlcnNpb249JHt0aGlzLnZlcnNpb259YCk7XG4gICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgdGhpcy5maWxlcyA9IGRhdGEuZmlsZXMgfHwgW107XG4gICAgICAgIHRoaXMuYXZhaWxhYmxlVmVyc2lvbnMgPSBkYXRhLnZlcnNpb25zIHx8IFtdO1xuICAgICAgICB0aGlzLmZpbGVUcmVlID0gdGhpcy5idWlsZEZpbGVUcmVlKHRoaXMuZmlsZXMpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgcGFja2FnZSBmaWxlczonLCBlcnIpO1xuICAgIH1cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRGaWxlVHJlZShmaWxlczogc3RyaW5nW10pOiBJRmlsZU5vZGVbXSB7XG4gICAgY29uc3Qgcm9vdDogSUZpbGVOb2RlW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgZmlsZXMpIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gZmlsZVBhdGguc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICBsZXQgY3VycmVudExldmVsID0gcm9vdDtcbiAgICAgIGxldCBjdXJyZW50UGF0aCA9ICcnO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHBhcnQgPSBwYXJ0c1tpXTtcbiAgICAgICAgY3VycmVudFBhdGggKz0gJy8nICsgcGFydDtcbiAgICAgICAgY29uc3QgaXNGaWxlID0gaSA9PT0gcGFydHMubGVuZ3RoIC0gMTtcblxuICAgICAgICBsZXQgZXhpc3RpbmcgPSBjdXJyZW50TGV2ZWwuZmluZChuID0+IG4ubmFtZSA9PT0gcGFydCk7XG4gICAgICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgICAgICBleGlzdGluZyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHBhcnQsXG4gICAgICAgICAgICBwYXRoOiBjdXJyZW50UGF0aCxcbiAgICAgICAgICAgIGlzRmlsZSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBpc0ZpbGUgPyB1bmRlZmluZWQgOiBbXSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGN1cnJlbnRMZXZlbC5wdXNoKGV4aXN0aW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNGaWxlICYmIGV4aXN0aW5nLmNoaWxkcmVuKSB7XG4gICAgICAgICAgY3VycmVudExldmVsID0gZXhpc3RpbmcuY2hpbGRyZW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb3J0OiBmb2xkZXJzIGZpcnN0LCB0aGVuIGZpbGVzLCBhbHBoYWJldGljYWxseVxuICAgIGNvbnN0IHNvcnROb2RlcyA9IChub2RlczogSUZpbGVOb2RlW10pID0+IHtcbiAgICAgIG5vZGVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKGEuaXNGaWxlICYmICFiLmlzRmlsZSkgcmV0dXJuIDE7XG4gICAgICAgIGlmICghYS5pc0ZpbGUgJiYgYi5pc0ZpbGUpIHJldHVybiAtMTtcbiAgICAgICAgcmV0dXJuIGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSk7XG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikgc29ydE5vZGVzKG5vZGUuY2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH07XG4gICAgc29ydE5vZGVzKHJvb3QpO1xuXG4gICAgcmV0dXJuIHJvb3Q7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUZvbGRlcihwYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdTZXQgPSBuZXcgU2V0KHRoaXMuZXhwYW5kZWRGb2xkZXJzKTtcbiAgICBpZiAobmV3U2V0LmhhcyhwYXRoKSkge1xuICAgICAgbmV3U2V0LmRlbGV0ZShwYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U2V0LmFkZChwYXRoKTtcbiAgICB9XG4gICAgdGhpcy5leHBhbmRlZEZvbGRlcnMgPSBuZXdTZXQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNlbGVjdEZpbGUoZmlsZVBhdGg6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gZmlsZVBhdGg7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSBgLyR7dGhpcy5wYWNrYWdlTmFtZX0ke2ZpbGVQYXRofT92ZXJzaW9uPSR7dGhpcy52ZXJzaW9ufWA7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7XG4gICAgICB0aGlzLmZpbGVDb250ZW50ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5maWxlQ29udGVudCA9ICdGYWlsZWQgdG8gbG9hZCBmaWxlJztcbiAgICB9XG5cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbmF2aWdhdGVUb1BhY2thZ2UocGtnOiBzdHJpbmcpIHtcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvcGVlay8ke3BrZ31gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZmlsdGVyZWRQYWNrYWdlcygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKCF0aGlzLnNlYXJjaFF1ZXJ5KSByZXR1cm4gdGhpcy5hbGxvd2VkUGFja2FnZXM7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dlZFBhY2thZ2VzLmZpbHRlcihwa2cgPT4gcGtnLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyVHJlZU5vZGUobm9kZTogSUZpbGVOb2RlKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmIChub2RlLmlzRmlsZSkge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInRyZWUtZmlsZSAke3RoaXMuc2VsZWN0ZWRGaWxlID09PSBub2RlLnBhdGggPyAnYWN0aXZlJyA6ICcnfVwiXG4gICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5zZWxlY3RGaWxlKG5vZGUucGF0aCl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTpmaWxlJ30gLmljb25TaXplPSR7MTR9PjwvZGVlcy1pY29uPlxuICAgICAgICAgICR7bm9kZS5uYW1lfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG4gICAgfVxuXG4gICAgY29uc3QgaXNFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWRGb2xkZXJzLmhhcyhub2RlLnBhdGgpO1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInRyZWUtZm9sZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb2xkZXItaGVhZGVyXCIgQGNsaWNrPSR7KCkgPT4gdGhpcy50b2dnbGVGb2xkZXIobm9kZS5wYXRoKX0+XG4gICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke2lzRXhwYW5kZWQgPyAnbHVjaWRlOmZvbGRlci1vcGVuJyA6ICdsdWNpZGU6Zm9sZGVyJ30gLmljb25TaXplPSR7MTR9PjwvZGVlcy1pY29uPlxuICAgICAgICAgICR7bm9kZS5uYW1lfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9sZGVyLWNoZXZyb24gJHtpc0V4cGFuZGVkID8gJ29wZW4nIDogJyd9XCI+XHUyNUI2PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgJHtpc0V4cGFuZGVkICYmIG5vZGUuY2hpbGRyZW4gPyBodG1sYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb2xkZXItY2hpbGRyZW5cIj5cbiAgICAgICAgICAgICR7bm9kZS5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gdGhpcy5yZW5kZXJUcmVlTm9kZShjaGlsZCkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJQYWNrYWdlTGlzdCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgZmlsdGVyZWQgPSB0aGlzLmZpbHRlcmVkUGFja2FnZXM7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJwYWNrYWdlLWxpc3QtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItbG9nb1wiIEBjbGljaz0keygpID0+IHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy8nfT5cbiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTpwYWNrYWdlJ30gLmljb25TaXplPSR7MjR9PjwvZGVlcy1pY29uPlxuICAgICAgICAgIG9wZW5jZG5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGgxIGNsYXNzPVwicGFnZS10aXRsZVwiIHN0eWxlPVwibWFyZ2luLXRvcDogMzJweDtcIj5Ccm93c2UgUGFja2FnZXM8L2gxPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYm94XCI+XG4gICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz1cInNlYXJjaC1pY29uXCIgLmljb249JHsnbHVjaWRlOnNlYXJjaCd9IC5pY29uU2l6ZT0kezE2fT48L2RlZXMtaWNvbj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIHBhY2thZ2VzLi4uXCJcbiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VhcmNoUXVlcnl9XG4gICAgICAgICAgICBAaW5wdXQ9JHsoZTogRXZlbnQpID0+IHRoaXMuc2VhcmNoUXVlcnkgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBhY2thZ2UtY291bnRcIj5cbiAgICAgICAgICAke2ZpbHRlcmVkLmxlbmd0aCA9PT0gdGhpcy5hbGxvd2VkUGFja2FnZXMubGVuZ3RoXG4gICAgICAgICAgICA/IGAke3RoaXMuYWxsb3dlZFBhY2thZ2VzLmxlbmd0aH0gcGFja2FnZSR7dGhpcy5hbGxvd2VkUGFja2FnZXMubGVuZ3RoICE9PSAxID8gJ3MnIDogJyd9IGF2YWlsYWJsZWBcbiAgICAgICAgICAgIDogYCR7ZmlsdGVyZWQubGVuZ3RofSBvZiAke3RoaXMuYWxsb3dlZFBhY2thZ2VzLmxlbmd0aH0gcGFja2FnZXNgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICAke2ZpbHRlcmVkLmxlbmd0aCA+IDAgPyBodG1sYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWNrYWdlLWxpc3RcIj5cbiAgICAgICAgICAgICR7ZmlsdGVyZWQubWFwKHBrZyA9PiBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFja2FnZS1saW5rXCIgQGNsaWNrPSR7KCkgPT4gdGhpcy5uYXZpZ2F0ZVRvUGFja2FnZShwa2cpfT5cbiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7J2x1Y2lkZTpwYWNrYWdlJ30gLmljb25TaXplPSR7MTZ9PjwvZGVlcy1pY29uPlxuICAgICAgICAgICAgICAgICR7cGtnfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgIDogaHRtbGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm8tcmVzdWx0c1wiPk5vIHBhY2thZ2VzIGZvdW5kIG1hdGNoaW5nIHlvdXIgc2VhcmNoLjwvZGl2PlxuICAgICAgICBgfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRmlsZUJyb3dzZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cImFwcFwiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1sb2dvXCIgQGNsaWNrPSR7KCkgPT4gd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnLyd9PlxuICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6cGFja2FnZSd9IC5pY29uU2l6ZT0kezIwfT48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgIG9wZW5jZG5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlci1zZXBcIj4vPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLXBhY2thZ2VcIj4ke3RoaXMucGFja2FnZU5hbWV9PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLXZlcnNpb25cIj4ke3RoaXMudmVyc2lvbiB8fCAnbGF0ZXN0J308L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1zcGFjZXJcIj48L2Rpdj5cbiAgICAgICAgICAke3RoaXMuYXZhaWxhYmxlVmVyc2lvbnMubGVuZ3RoID4gMCA/IGh0bWxgXG4gICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgIGNsYXNzPVwidmVyc2lvbi1zZWxlY3RcIlxuICAgICAgICAgICAgICBAY2hhbmdlPSR7KGU6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52ZXJzaW9uID0gKGUudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRQYWNrYWdlRmlsZXMoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPmxhdGVzdDwvb3B0aW9uPlxuICAgICAgICAgICAgICAke3RoaXMuYXZhaWxhYmxlVmVyc2lvbnMubWFwKHYgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSR7dn0gP3NlbGVjdGVkPSR7diA9PT0gdGhpcy52ZXJzaW9ufT4ke3Z9PC9vcHRpb24+XG4gICAgICAgICAgICAgIGApfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgYCA6ICcnfVxuICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKSA9PiB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvcGVlay8nfT5cbiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOmFycm93LWxlZnQnfSAuaWNvblNpemU9JHsxNH0gc2xvdD1cImljb25MZWZ0XCI+PC9kZWVzLWljb24+XG4gICAgICAgICAgICBBbGwgUGFja2FnZXNcbiAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibWFpblwiPlxuICAgICAgICAgIDxhc2lkZSBjbGFzcz1cInNpZGViYXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLWhlYWRlclwiPkZpbGVzICgke3RoaXMuZmlsZXMubGVuZ3RofSk8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXRyZWVcIj5cbiAgICAgICAgICAgICAgJHt0aGlzLmZpbGVUcmVlLm1hcChub2RlID0+IHRoaXMucmVuZGVyVHJlZU5vZGUobm9kZSkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgIDxtYWluIGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGVkRmlsZSA/IGh0bWxgXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LXBhdGhcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPiR7dGhpcy5zZWxlY3RlZEZpbGV9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IGAvJHt0aGlzLnBhY2thZ2VOYW1lfSR7dGhpcy5zZWxlY3RlZEZpbGV9P3ZlcnNpb249JHt0aGlzLnZlcnNpb259YDtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XG4gICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keydsdWNpZGU6ZXh0ZXJuYWwtbGluayd9IC5pY29uU2l6ZT0kezE0fSBzbG90PVwiaWNvbkxlZnRcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgUmF3XG4gICAgICAgICAgICAgICAgICA8L2RlZXMtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvZGUtdmlld2VyXCI+XG4gICAgICAgICAgICAgICAgJHt0aGlzLmxvYWRpbmcgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkZWVzLXNwaW5uZXI+PC9kZWVzLXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBgIDogaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxwcmU+JHt0aGlzLmZpbGVDb250ZW50fTwvcHJlPlxuICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYCA6IGh0bWxgXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsnbHVjaWRlOmZpbGUtdGV4dCd9IC5pY29uU2l6ZT0kezQ4fSBzdHlsZT1cIm9wYWNpdHk6IDAuNTtcIj48L2RlZXMtaWNvbj5cbiAgICAgICAgICAgICAgICA8ZGl2PlNlbGVjdCBhIGZpbGUgdG8gdmlldyBpdHMgY29udGVudHM8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgfVxuICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHVibGljIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgaWYgKHRoaXMucGFja2FnZU5hbWUpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckZpbGVCcm93c2VyKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlbmRlclBhY2thZ2VMaXN0KCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJpNkZBU01BLEdBS09DLEdBc0JQQyxHQUVBQyxJQVNPQyxHQWdGQUMsR0FlQUMs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QUMsRUFBQSxRQ0FBLElBQUFDLEdBQUFDLEVBQUEsUUNBQSxJQUFBQyxHQUFBQyxFQUFBLFFDQ0EsSUFBQUMsR0FBQUMsRUFBQSxRQ0ZBLElBQUFDLEdBQUFDLEVBQUEsUUNBQSxJQUFBQyxHQUFBQyxFQUFBLFFDQ0EsSUFBQUMsR0FBQUMsRUFBQSxRQ0FBLElBQUFDLEdBQUFDLEVBQUEsUUNEQSxJQUFBQyxHQUFBQyxFQUFBLFFDQUEsSUFBQUMsR0FBQUMsRUFBQSxRQ0FBLElBQUFDLEdBQUFDLEVBQUEsUSxpQkNFQSxJQUFBQyxHQUFBQyxFQUFBLFFDQ0EsSUFBQUMsR0FBQUMsRUFBQSxRQ0ZBLElBQUFDLEdBQUFDLEVBQUEsUUNEQSxJQUFBQyxHQUFBQyxFQUFBLFFDQ0EsSUFBQUMsR0FBQUMsRUFBQSxRQ0FBLElBQUFDLEdBQUFDLEVBQUEsUUNFQSxJQUFBQyxHQUFBQyxFQUFBLFFDREEsSUFBQUMsR0FBQUMsRUFBQSxRQ0RBLElBQUFDLEdBQUFDLEVBQUEsUUNEQSxJQUFBQyxHQUFBQyxFQUFBLFFDQ0EsSUFBQUMsR0FBQUMsRUFBQSxRLGlCQ0FBLElBQUFDLEdBQUFDLEVBQUEsUUNEQSxJQUFBQyxHQUFBQyxFQUFBLFFDQUEsSUFBQUMsR0FBQUMsRUFBQSxRQ0FBLElBQUFDLEdBQUFDLEVBQUEsUUNDQSxJQUFBQyxHQUFBQyxFQUFBLFFDQUEsSUFBQUMsR0FBQUMsRUFBQSxRLG1DQ0RBLElBQUFDLEdBQUFDLEVBQUEsUUNFQSxJQUFBQyxHQUFBQyxFQUFBLFEsaUJDREEsSUFBQUMsR0FBQUMsRUFBQSxRQ0RBLElBQUFDLEdBQUFDLEVBQUEsUUNDQSxJQUFBQyxHQUFBQyxFQUFBLFFDQUEsSUFBQUMsR0FBQUMsRUFBQSxRQ0FBLElBQUFDLEdBQUFDLEVBQUEsUUNBQSxJQUFBQyxHQUFBQyxFQUFBLFEsaUJDQUEsSUFBQUMsR0FBQUMsRUFBQSxRQ0FBLElBQUFDLEdBQUFDLEVBQUEsUUNBQSxJQUFBQyxHQUFBQyxFQUFBLFFDQUEsSUFBQUMsR0FBQUMsRUFBQSxRQ0RBLElBQUFDLEdBQUFDLEVB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QyxFQUNBQyxFQUNBQyxFQUF1QixDQUR2QkQsSUFBQSxTQUFBQSxFQUFBRSxJQUdBLElBQU1DLEVBQVlDLEdBQU1MLEVBQVVDLENBQVMsRUFDM0MsT0FBT0ssR0FBUyxVQUFBLENBQU0sT0FBQUYsQ0FBQSxFQUFXRixDQUFNLENBQ3pDLENBN0RBLElBQUFLLEdBQUFDLEVBQUEsS0FBQUMsS0FDQUMsS0FFQUMsT0NIQSxJQUFBQyxHQUFBQyxFQUFBLFFDQUEsSUFBQUMsR0FBQUMsRUFBQSxRQ0NBLElBQUFDLEdBQUFDLEVBQUEsUUNDQSxJQUFBQyxHQUFBQyxFQUFBLFEsaUJDRkEsSUFBQUMsR0FBQUMsRUFBQSxRLGlCQ0VBLElBQUFDLEdBQUFDLEVBQUEsUSxpQkNEQSxJQUFBQyxHQUFBQyxFQUFBLFEsbUNDY0EsSUFBQUMsR0FBQUMsRUFBQSxLQUFBQyxLQUNBQyxNQUdBQyxLQUNBQyxNQUdBQyxLQUNBQyxNQUNBQyxNQUNBQyxNQUdBQyxNQUNBQyxLQUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxLQUdBQyxLQUNBQyxLQUdBQyxNQUdBQyxLQUNBQyxLQUNBQyxLQUNBQyxNQUdBQyxNQUNBQyxNQUdBQyxNQUNBQyxNQUNBQyxNQUNBQyxLQUNBQyxNQUNBQyxLQUNBQyxLQUdBQyxNQUNBQyxNQUNBQyxNQUNBQyxLQUNBQyxNQUNBQyxNQUNBQyxLQUNBQyxNQUNBQyxLQUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxLQUNBQyxLQUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxLQUNBQyxLQUNBQyxNQUNBQyxNQUNBQyxLQUdBcEIsS0FDQVMsS0FHQVksTUFHQUMsS0FHQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQTdILEtBQ0E4SCxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxPQ2hOQSxJQUFBQyxJQUFBQyxFQUFBLFEsa0JDQ0EsSUFBQUMsSUFBQUMsRUFBQSxLQUFBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxNQUNBQyxLQUNBQyxNQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxNQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxLQUNBQyxNQUNBQyxLQUNBQyxL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RSxRQUFRLEVBQUVBLEVBQUUsU0FBUyxFQUFFQSxFQUFFLFdBQVcsRUFBRUEsRUFBRSxXQUFXLEVBQUVELENBQUMsQ0FBQyxDQUE4elUsU0FBU08sSUFBRVIsRUFBRSxDQUFDLEdBQUdBLElBQUksU0FBU0EsRUFBRSxDQUFDLEdBQUcsT0FBT0EsRUFBRSxLQUFLQSxFQUFFLFdBQVdBLEVBQUUsYUFBYSxPQUFPLEdBQUdBLEVBQUUsV0FBV0EsRUFBRSxPQUFPQSxFQUFFLFNBQVMsT0FBTyxHQUFHQSxFQUFFLE9BQU9BLEVBQUUsUUFBUUEsRUFBRSxVQUFVLE9BQU8sSUFBSUEsRUFBRSxRQUFRQSxFQUFFLE1BQU1BLEVBQUUsUUFBUSxPQUFPLEdBQUdBLEVBQUUsTUFBTUEsRUFBRSxTQUFTQSxFQUFFLFdBQVcsT0FBTyxFQUFFLFNBQVNBLEVBQUUsU0FBUyxTQUFTLEVBQUUsRUFBRSxFQUFFQSxFQUFFLFVBQVVBLEVBQUUsWUFBWSxPQUFPLE9BQU8sU0FBU0EsRUFBRSxVQUFVLFNBQVMsRUFBRSxFQUFFLEVBQUVBLEVBQUUsTUFBTUEsRUFBRSxRQUFRLE9BQU8sR0FBR0EsRUFBRSxNQUFNQSxFQUFFLFVBQVVBLEVBQUUsUUFBUSxJQUFJSixHQUFFSSxFQUFFLFFBQVFBLEVBQUUsUUFBUSxHQUFHQSxFQUFFLFNBQVNBLEVBQUUsT0FBTyxJQUFJSixHQUFFSSxFQUFFLE9BQU9BLEVBQUUsUUFBUSxHQUFHQSxFQUFFLFdBQVcsS0FBSyxDQUFDLEdBQUcsTUFBTUEsRUFBRSxRQUFRLEVBQUUsTUFBTSxJQUFJLE1BQU0sMERBQTBELEVBQUUsR0FBR0EsRUFBRSxTQUFTLEVBQUUsTUFBTSxJQUFJLE1BQU0sOERBQThELENBQUMsQ0FBQyxHQUFHQSxFQUFFLFlBQVksT0FBTyxDQUFDLEdBQUcsTUFBTUEsRUFBRSxTQUFTLEVBQUUsTUFBTSxJQUFJLE1BQU0seUdBQXlHLEVBQUUsR0FBR0EsRUFBRSxVQUFVLE1BQU1BLEVBQUUsVUFBVSxJQUFJLE1BQU0sSUFBSSxNQUFNLHVDQUF1QyxFQUFFLEdBQUdBLEVBQUUs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QUFLLE1BQU0sRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxNQUFNLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLE1BQU0sTUFBTSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxVQUFVLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssZUFBZSxHQUFHLEtBQUssUUFBUSxHQUFHLEtBQUssUUFBUSxHQUFHLEtBQUssTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLEtBQUssU0FBUyxVQUFVLEtBQUssbUJBQW1CLFFBQVEsTUFBTSxJQUFJLFVBQVUsZ0RBQWdELEVBQUUsS0FBSyxRQUFRLFFBQVEsR0FBRyxHQUFHLElBQUksS0FBSyxRQUFRLEtBQUssZ0JBQWdCLEtBQUssT0FBTyxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsS0FBSyxRQUFRLFFBQVEsT0FBTyxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksVUFBVSwrQ0FBK0MsS0FBSyxRQUFRLDZEQUE2RCxFQUFFLEdBQUcsRUFBRSxTQUFTLEdBQUcsRUFBRSxRQUFRLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLEdBQUcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsS0FBSyxlQUFlLElBQUksRUFBRSxDQUFDLEdBQUcsTUFBTSxLQUFLLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxNQUFNLEtBQUssUUFBUSxJQUFJLEtBQUssUUFBUSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUlELEdBQUUsSUFBSSxLQUFLLEtBQUssUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEtBQUssVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsU0FBUyxDQUFDLEVBQUUsS0FBSyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQUsseUJBQXlCLENBQUMsRUFBRSxLQUFLLFlBQVksU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLFlBQVksU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLFlBQVksT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLFlBQVksTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLFlBQVksUUFBUSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLFlBQVksWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFaUIsRUFBQyxFQUFFLEtBQUssVUFBVSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLEVBQUVPLEVBQUVqQixFQUFF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QyxFQUFFLEVBQUUsQ0FBQyxHQUFHcEIsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxTQUFTLElBQUksRUFBRSxRQUFRLFFBQVEsR0FBRyxFQUFFLFFBQVEsUUFBUSxHQUFHLEVBQUUsUUFBUSxRQUFRLEdBQUcsRUFBRSxRQUFRLFFBQVEsR0FBRyxFQUFFLFFBQVEsUUFBUSxHQUFHLEVBQUUsUUFBUSxRQUFRLEdBQUcsRUFBRSxRQUFRLFFBQVEsR0FBRyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxRQUFRLEdBQUcsRUFBRSxRQUFRLFFBQVEsR0FBRyxFQUFFLFFBQVEsUUFBUSxHQUFHLEVBQUUsUUFBUSxRQUFRLEdBQUcsRUFBRSxRQUFRLFFBQVEsR0FBRyxFQUFFLFFBQVEsUUFBUSxHQUFHLEVBQUUsUUFBUSxRQUFRLEdBQUcsRUFBRSxRQUFRLFFBQVEsR0FBRyxFQUFFLFFBQVEsUUFBUSxHQUFHLEVBQUUsUUFBUSxRQUFRLElBQUksRUFBRSxRQUFRLFFBQVEsSUFBSSxFQUFFLFFBQVEsUUFBUSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsT0FBTyxJQUFJLFdBQVcsSUFBSSxZQUFZLFlBQVksSUFBSSxXQUFXLFlBQVksSUFBSSxVQUFVLFlBQVksSUFBSSxTQUFTLFlBQVksSUFBSSxVQUFVLFlBQVksQ0FBQyxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sR0FBRyxVQUFVLElBQUksSUFBSSxLQUFLLFVBQVUsQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUFDLEVBQUVTLFdBQVUsSUFBSUMsR0FBRSxLQUFLLFVBQVUsQ0FBQyxFQUFFQSxXQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxVQUFVLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxFQUFFQyxJQUFFLEVBQUUsQ0FBQyxNQUFPLE9BQU0sSUFBSSxVQUFVLHFFQUFxRSxDQUFDLFdBQVcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQU1DLElBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFQyxHQUFFLENBQUMsQ0FBQyxRQUFRLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxRQUFRLEVBQUUsRUFBRSxDQUFDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxTQUFTLENBQUMsQ0FBQyxFQUFFcEIsR0FBRSxNQUFNSSxHQUFDLENBQUMsR0FBRyxHQUFHLE9BQU8sT0FBTyxLQUFLLElBQUksTUFBTSxLQUFLLFlBQVlDLEVBQUVDLEVBQUUsQ0FBQyxHQUFHLEtBQUssR0FBR0EsRUFBRUQsR0FBR0EsYUFBYSxLQUFLLEdBQUcsQ0FBQyxNQUFNQSxDQUFDLEVBQUUsS0FBSyxTQUFTQSxDQUFDLE1BQU8sT0FBTSxJQUFJLFVBQVUsdURBQXVELFVBQVVBLElBQUksT0FBTyxLQUFLLFNBQVMsSUFBSSxJQUFJLFVBQVVBLEdBQUcsT0FBT0EsR0FBRyxTQUFTLEtBQUssV0FBV0EsQ0FBQyxVQUFVQSxhQUFhRCxJQUFFLEtBQUssYUFBYUMsQ0FBQyxNQUFPLE9BQU0sSUFBSSxVQUFVLDJCQUEyQixPQUFPQSxFQUFFLGtDQUFrQyxDQUFDLENBQUMsb0JBQW9CQSxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsQ0FBQyxJQUFJRSxFQUFFLElBQUksS0FBSyxLQUFLLElBQUlKLEVBQUVDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFbUIsRUFBRSxFQUFFLFFBQVFDLEVBQUUsRUFBRUEsR0FBRyxFQUFFQSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUlyQixFQUFFQyxFQUFFb0IsQ0FBQyxDQUFDLEVBQUUsVUFBVSxJQUFJakIsR0FBR2dCLElBQUksR0FBR2xCLEVBQUVVLElBQUdDLElBQUVPLEVBQUUsQ0FBQyxFQUFFbEIsRUFBRSxNQUFNLEdBQUcsR0FBR0EsRUFBRVMsR0FBRSxDQUFDLElBQUlVLEVBQUUsSUFBSSxLQUFLLEtBQUssSUFBSXJCLEVBQUVDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsUUFBUXFCLEVBQUUsRUFBRSxFQUFFQSxHQUFHRCxFQUFFQyxJQUFJLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSXRCLEVBQUVDLEVBQUVxQixDQUFDLENBQUMsRUFBRSxVQUFVLElBQUlsQixFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTSixFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssT0FBTyxHQUFHLE9BQU8sS0FBSyxJQUFJLFNBQVMsS0FBSyxHQUFHQSxFQUFFLG1CQUFtQixFQUFFLEtBQUssT0FBT0EsRUFBRSxjQUFjLEVBQUUsS0FBSyxPQUFPQSxFQUFFLGNBQWMsRUFBRSxLQUFLLEdBQUcsS0FBSyxLQUFLQSxFQUFFLFlBQVksRUFBRSxLQUFLLElBQUlBLEVBQUUsV0FBVyxFQUFFLEtBQUssTUFBTUEsRUFBRSxZQUFZLEVBQUUsS0FBSyxLQUFLQSxFQUFFLGVBQWUsRUFBRSxLQUFLLE1BQU0sTUFBTSxDQUFDLElBQUlDLEVBQUVILEdBQUUsS0FBS0UsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEdBQUdBLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxPQUFPQyxFQUFFLEVBQUUsS0FBSyxPQUFPQSxFQUFFLEVBQUUsS0FBSyxLQUFLQSxFQUFFLEVBQUUsS0FBSyxJQUFJQSxFQUFFLEVBQUUsS0FBSyxNQUFNQSxFQUFFLEVBQUUsRUFBRSxLQUFLLEtBQUtBLEVBQUUsQ0FBQyxNQUFNLEtBQUssR0FBR0QsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLE9BQU9BLEVBQUUsV0FBVyxFQUFFLEtBQUssT0FBT0EsRUFBRSxXQUFXLEVBQUUsS0FBSyxLQUFLQSxFQUFFLFNBQVMsRUFBRSxLQUFLLElBQUlBLEVBQUUsUUFBUSxFQUFFLEtBQUssTUFBTUEsRUFBRSxTQUFTLEVBQUUsS0FBSyxLQUFLQSxFQUFFLFlBQVksQ0FBQyxDQUFDLGFBQWFBLEVBQUUsQ0FBQyxLQUFLLEdBQUdBLEVBQUUsR0FBRyxLQUFLLEtBQUtBLEVBQUUsS0FBSyxLQUFLLE1BQU1BLEVBQUUsTUFBTSxLQUFLLElBQUlBLEVBQUUsSUFBSSxLQUFLLEtBQUtBLEVBQUUsS0FBSyxLQUFLLE9BQU9BLEVBQUUsT0FBTyxLQUFLLE9BQU9BLEVBQUUsT0FBTyxLQUFLLEdBQUdBLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssTUFBTSxJQUFJLEtBQUssSUFBSWMsSUFBRSxLQUFLLEtBQUssR0FBRyxLQUFLLEtBQUssSUFBSSxLQUFLLE9BQU8sSUFBSSxLQUFLLE9BQU8sSUFBSSxLQUFLLEtBQUssR0FBRyxLQUFLLE9BQU8sR0FBRyxLQUFLLE9BQU8sRUFBRSxDQUFDLElBQUlkLEVBQUUsSUFBSSxLQUFLLEtBQUssSUFBSSxLQUFLLEtBQUssS0FBSyxNQUFNLEtBQUssSUFBSSxLQUFLLEtBQUssS0FBSyxPQUFPLEtBQUssT0FBTyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sS0FBSyxHQUFHQSxFQUFFLG1CQUFtQixFQUFFLEtBQUssT0FBT0EsRUFBRSxjQUFjLEVBQUUsS0FBSyxPQUFPQSxFQUFFLGNBQWMsRUFBRSxLQUFLLEtBQUtBLEVBQUUsWUFBWSxFQUFFLEtBQUssSUFBSUEsRUFBRSxXQUFXLEVBQUUsS0FBSyxNQUFNQSxFQUFFLFlBQVksRUFBRSxLQUFLLEtBQUtBLEVBQUUsZUFBZSxFQUFFLEVBQUUsS0FBTSxPQUFNLEVBQUUsQ0FBQyxXQUFXQSxFQUFFLENBQUMsR0FBRyxPQUFPLEtBQUssSUFBSSxTQUFTLENBQUMsSUFBSUMsRUFBRUgsR0FBRSxVQUFVRSxDQUFDLEVBQUUsS0FBSyxHQUFHQyxFQUFFLG1CQUFtQixFQUFFLEtBQUssT0FBT0EsRUFBRSxjQUFjLEVBQUUsS0FBSyxPQUFPQSxFQUFFLGNBQWMsRUFBRSxLQUFLLEtBQUtBLEVBQUUsWUFBWSxFQUFFLEtBQUssSUFBSUEsRUFBRSxXQUFXLEVBQUUsS0FBSyxNQUFNQSxF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QUFHLFFBQVEsSUFBSU4sR0FBRSxXQUFXLENBQUMsRUFBRSxJQUFJLGFBQWEsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLFFBQVEsR0FBRyxFQUFFLEdBQUcsS0FBSyxRQUFRLEtBQUssSUFBSUQsR0FBRSxFQUFFLEtBQUssUUFBUSxVQUFVLEtBQUssUUFBUSxTQUFTLEVBQUUsS0FBSyxRQUFRLFFBQVEsSUFBSUMsR0FBRSxFQUFFLEtBQUssUUFBUSxRQUFRLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBR0MsR0FBRSxLQUFLdUIsR0FBR0EsRUFBRSxPQUFPLEtBQUssSUFBSSxFQUFFLE1BQU0sSUFBSSxNQUFNLDRDQUE0QyxLQUFLLEtBQUssNEJBQTRCLEVBQUV2QixHQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLFFBQVFZLElBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLEtBQUssU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFFBQVEsVUFBVSxRQUFRLEVBQUUsS0FBSyxRQUFRLFVBQVUsRUFBRSxLQUFLLFFBQVEsU0FBUyxJQUFJVSxFQUFFLENBQUMsRUFBRWpCLEVBQUUsR0FBRyxLQUFLLFFBQVEsWUFBWSxPQUFPLEtBQUssTUFBTUEsRUFBRSxLQUFLLFFBQVFBLENBQUMsSUFBSWlCLEVBQUUsS0FBS2pCLENBQUMsRUFBRSxPQUFPaUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLEtBQUssUUFBUSxRQUFRLEtBQUssUUFBUSxRQUFRLFFBQVEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxRQUFRLEtBQUssUUFBUSxVQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssUUFBUSxPQUFPQSxFQUFFLEtBQUssS0FBSyxPQUFPakIsRUFBRSxDQUFDLEtBQUssUUFBUSxLQUFLLE9BQU8sR0FB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QyxJQUFBLGVBQUFDLElBQUEsWUFBQUMsSUFBQSxlQUFBQyxJQUFBLGNBQUFDLElBQUEsWUFBQUMsR0FBQSxnQkFBQUMsSUFBQSxjQUFBQyxHQUFBLHFCQUFBQyxJQUFBLGdCQUFBQyxJQUFBLG9CQUFBQyxJQUFBLHFCQUFBQyxJQUFBLHlCQUFBQyxJQUFBLG1CQUFBQyxHQUFBLHFCQUFBQyxJQUFBLGtCQUFBQyxHQUFBLGtCQUFBQyxJQUFBLGdCQUFBQyxJQUFBLG9CQUFBQyxHQUFBLG1CQUFBQyxHQUFBLFFBQUFDLEdBQUEsaUJBQUFDLElBQUEsd0JBQUFDLElBQUEsMEJBQUFDLElBQUEsMEJBQUFDLElBQUEsUUFBQUMsR0FBQSxtQkFBQUMsSUFBQSwwQkFBQUMsSUFBQSxxQkFBQUMsSUFBQSxxQkFBQUMsSUFBQSxrQkFBQUMsSUFBQSxZQUFBQyxHQUFBLGVBQUFDLElBQUEsZUFBQUMsSUFBQSxpQkFBQUMsSUFBQSxlQUFBQyxJQUFBLGlCQUFBQyxJQUFBLGdCQUFBQyxJQUFBLGtCQUFBQyxJQUFBLFVBQUFDLEdBQUEsYUFBQUMsSUFBQSxjQUFBQyxJQUFBLFlBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsbUJBQUFDLElBQUEsbUJBQUFDLElBQUEscUJBQUFDLElBQUEsbUJBQUFDLElBQUEscUJBQUFDLElBQUEsb0JBQUFDLElBQUEsc0JBQUFDLElBQUEscUJBQUFDLElBQUEsb0JBQUFDLElBQUEsd0JBQUFDLElBQUEsMEJBQUFDLElBQUEsbUJBQUFDLElBQUEsMEJBQUFDLElBQUEscUJBQUFDLElBQUEsUUFBQUMsSUFBQSxZQUFBQyxJQUFBLFdBQUFDLEdBQUEsaUJBQUFDLElBQUEsc0JBQUFDLElBQUEsYUFBQUMsSUFBQSxjQUFBQyxHQUFBLGVBQUFDLEdBQUEsbUJBQUFDLEdBQUEsb0JBQUFDLElBQUEsZUFBQUMsSUFBQSxhQUFBQyxHQUFBLGVBQUFDLElBQUEsZUFBQUMsSUFBQSxZQUFBQyxHQUFBLGdCQUFBQyxJQUFBLFlBQUFDLElBQUEsZUFBQUMsR0FBQSxrQkFBQUMsSUFBQSxnQkFBQUMsR0FBQSxtQkFBQUMsR0FBQSx1QkFBQUMsR0FBQSxrQkFBQUMsR0FBQSxpQkFBQUMsR0FBQSxtQkFBQUMsR0FBQSxrQkFBQUMsR0FBQSxpQkFBQUMsSUFBQSxvQkFBQUMsSUFBQSxnQkFBQUMsR0FBQSxvQkFBQUMsR0FBQSxnQkFBQUMsR0FBQSxxQkFBQUMsSUFBQSxRQUFBQyxJQUFBLG9CQUFBQyxJQUFBLFlBQUFDLEdBQUEsYUFBQUMsSUFBQSxvQkFBQUMsR0FBQSxvQkFBQUMsSUFBQSxlQUFBQyxJQUFBLGNBQUFDLEdBQUEsZ0JBQUFDLElBQUEsZUFBQUMsSUFBQSxhQUFBQyxJQUFBLGFBQUFDLElBQUEsV0FBQUMsR0FBQSxjQUFBQyxHQUFBLGdCQUFBQyxJQUFBLGdCQUFBQyxJQUFBLGtCQUFBQyxJQUFBLG9CQUFBQyxNQUFBLElBQUFDLElBQUFDLEVBQUEsS0FFQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsS0FDQUMsTUFDQUMsS0FDQUMsS0FDQUMsTUFDQUMsTUFDQUMsS0FDQUMsS0FDQUMsTUFDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsTUFDQUMsS0FDQUMsS0FDQUMsS0FDQUMsTUFDQUMsS0FDQUMsTUFDQUMsS0FDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsS0FDQUMsTUFDQUMsS0FDQUMsS0FDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsS0FDQUMsS0FDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsS0FDQUMsS0FDQUMsTUFDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsS0FDQUMsS0FDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsS0FDQUMsTUFDQUMsTUFDQUMsS0FDQUMsS0FDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsS0FDQUMsTUFDQUMsTUFDQUMsTUFD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R0FBRyxFQUFFQSxFQUFFLENBQUMsR0FBRyxFQUFFQSxFQUFFLENBQUMsR0FBRyxFQUFFQSxFQUFFLENBQUMsR0FBRyxFQUFFZCxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxLQUFLWSxDQUFDLENBQUMsR0FBRUQsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUVFLEVBQUUsS0FBSyxVQUFVLENBQUMsSUFBSUYsRUFBRSxLQUFLLEdBQUcsS0FBSyxHQUFHQSxFQUFFLFlBQVksRUFBRSxLQUFLLEdBQUdBLEVBQUUsU0FBUyxFQUFFLEtBQUssR0FBR0EsRUFBRSxRQUFRLEVBQUUsS0FBSyxHQUFHQSxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUdBLEVBQUUsU0FBUyxFQUFFLEtBQUssR0FBR0EsRUFBRSxXQUFXLEVBQUUsS0FBSyxHQUFHQSxFQUFFLFdBQVcsRUFBRSxLQUFLLElBQUlBLEVBQUUsZ0JBQWdCLENBQUMsRUFBRUUsRUFBRSxPQUFPLFVBQVUsQ0FBQyxPQUFPVyxDQUFDLEVBQUVYLEVBQUUsUUFBUSxVQUFVLENBQUMsT0FBUSxLQUFLLEdBQUcsU0FBUyxJQUFJTixDQUFFLEVBQUVNLEVBQUUsT0FBTyxTQUFTRixFQUFFQyxFQUFFLENBQUMsSUFBSWIsRUFBRXdCLEVBQUVaLENBQUMsRUFBRSxPQUFPLEtBQUssUUFBUUMsQ0FBQyxHQUFHYixHQUFHQSxHQUFHLEtBQUssTUFBTWEsQ0FBQyxDQUFDLEVBQUVDLEVBQUUsUUFBUSxTQUFTRixFQUFFQyxFQUFFLENBQUMsT0FBT1csRUFBRVosQ0FBQyxFQUFFLEtBQUssUUFBUUMsQ0FBQyxDQUFDLEVBQUVDLEVBQUUsU0FBUyxTQUFTRixFQUFFQyxFQUFFLENBQUMsT0FBTyxLQUFLLE1BQU1BLENBQUMsRUFBRVcsRUFBRVosQ0FBQyxDQUFDLEVBQUVFLEVBQUUsR0FBRyxTQUFTRixFQUFFQyxFQUFFYixFQUFFLENBQUMsT0FBT3lCLEVBQUUsRUFBRWIsQ0FBQyxFQUFFLEtBQUtDLENBQUMsRUFBRSxLQUFLLElBQUliLEVBQUVZLENBQUMsQ0FBQyxFQUFFRSxFQUFFLEtBQUssVUFBVSxDQUFDLE9BQU8sS0FBSyxNQUFNLEtBQUssUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFQSxFQUFFLFFBQVEsVUFBVSxDQUFDLE9BQU8sS0FBSyxHQUFHLFFBQVEsQ0FBQyxFQUFFQSxFQUFFLFFBQVEsU0FBU0YsRUFBRUMsRUFBRSxDQUFDLElBQUliLEVBQUUsS0FBS2UsRUFBRSxDQUFDLENBQUNVLEVBQUUsRUFBRVosQ0FBQyxHQUFHQSxFQUFFUixFQUFFb0IsRUFBRSxFQUFFYixDQUFDLEVBQUVKLEdBQUUsU0FBU0ksRUFBRUMsRUFBRSxDQUFDLElBQUlJLEVBQUVRLEVBQUUsRUFBRXpCLEVBQUUsR0FBRyxLQUFLLElBQUlBLEVBQUUsR0FBR2EsRUFBRUQsQ0FBQyxFQUFFLElBQUksS0FBS1osRUFBRSxHQUFHYSxFQUFFRCxDQUFDLEVBQUVaLENBQUMsRUFBRSxPQUFPZSxFQUFFRSxFQUFFQSxFQUFFLE1BQU1kLENBQUMsQ0FBQyxFQUFFTSxFQUFFLFNBQVNHLEVBQUVDLEVBQUUsQ0FBQyxPQUFPWSxFQUFFLEVBQUV6QixFQUFFLE9BQU8sRUFBRVksQ0FBQyxFQUFFLE1BQU1aLEVBQUUsT0FBTyxHQUFHLEdBQUdlLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsTUFBTUYsQ0FBQyxDQUFDLEVBQUViLENBQUMsQ0FBQyxFQUFFVSxHQUFFLEtBQUssR0FBR0MsR0FBRSxLQUFLLEdBQUdHLEVBQUUsS0FBSyxHQUFHRSxHQUFFLE9BQU8sS0FBSyxHQUFHLE1BQU0sSUFBSSxPQUFPWCxFQUFFLENBQUMsS0FBS0MsRUFBRSxPQUFPUyxFQUFFUCxHQUFFLEVBQUUsQ0FBQyxFQUFFQSxHQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPTyxFQUFFUCxHQUFFLEVBQUVHLEVBQUMsRUFBRUgsR0FBRSxFQUFFRyxHQUFFLENBQUMsRUFBRSxLQUFLUCxFQUFFLElBQUljLEdBQUUsS0FBSyxRQUFRLEVBQUUsV0FBVyxFQUFFQyxHQUFHVCxHQUFFUSxHQUFFUixHQUFFLEVBQUVBLElBQUdRLEdBQUUsT0FBT1YsR0FBRU8sRUFBRUQsRUFBRUssRUFBRUwsR0FBRyxFQUFFSyxHQUFHUixFQUFDLEVBQUUsS0FBS1IsRUFBRSxLQUFLSSxFQUFFLE9BQU9FLEVBQUVPLEdBQUUsUUFBUSxDQUFDLEVBQUUsS0FBS2QsRUFBRSxPQUFPTyxFQUFFTyxHQUFFLFVBQVUsQ0FBQyxFQUFFLEtBQUtmLEVBQUUsT0FBT1EsRUFBRU8sR0FBRSxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBT1AsRUFBRU8sR0FBRSxlQUFlLENBQUMsRUFBRSxRQUFRLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFRixFQUFFLE1BQU0sU0FBU0YsRUFBRSxDQUFDLE9BQU8sS0FBSyxRQUFRQSxFQUFFLEVBQUUsQ0FBQyxFQUFFRSxFQUFFLEtBQUssU0FBU0YsRUFBRUMsRUFBRSxDQUFDLElBQUliLEVBQUVJLEVBQUVxQixFQUFFLEVBQUViLENBQUMsRUFBRVAsRUFBRSxPQUFPLEtBQUssR0FBRyxNQUFNLElBQUlHLElBQUdSLEVBQUUsQ0FBQyxFQUFFQSxFQUFFRyxDQUFDLEVBQUVFLEVBQUUsT0FBT0wsRUFBRU8sQ0FBQyxFQUFFRixFQUFFLE9BQU9MLEVBQUUsQ0FBQyxFQUFFSyxFQUFFLFFBQVFMLEVBQUVNLENBQUMsRUFBRUQsRUFBRSxXQUFXTCxFQUFFRSxDQUFDLEVBQUVHLEVBQUUsUUFBUUwsRUFBRUMsQ0FBQyxFQUFFSSxFQUFFLFVBQVVMLEVBQUUsQ0FBQyxFQUFFSyxFQUFFLFVBQVVMLEVBQUUsQ0FBQyxFQUFFSyxFQUFFLGVBQWVMLEdBQUdJLENBQUMsRUFBRUssRUFBRUwsSUFBSUQsRUFBRSxLQUFLLElBQUlVLEVBQUUsS0FBSyxJQUFJQSxFQUFFLEdBQUdULElBQUksR0FBR0EsSUFBSUUsRUFBRSxDQUFDLElBQUlJLEdBQUUsS0FBSyxNQUFNLEVBQUUsSUFBSUgsRUFBRSxDQUFDLEVBQUVHLEdBQUUsR0FB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QyxFQUFFTCxFQUFFLE9BQU8sU0FBU0YsRUFBRUMsRUFBRSxDQUFDLEdBQUcsQ0FBQ0QsRUFBRSxPQUFPLEtBQUssR0FBRyxJQUFJWixFQUFFLEtBQUssTUFBTSxFQUFFZSxFQUFFUSxFQUFFWCxFQUFFQyxFQUFFLEVBQUUsRUFBRSxPQUFPRSxJQUFJZixFQUFFLEdBQUdlLEdBQUdmLENBQUMsRUFBRWMsRUFBRSxNQUFNLFVBQVUsQ0FBQyxPQUFPVyxFQUFFLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFWCxFQUFFLE9BQU8sVUFBVSxDQUFDLE9BQU8sSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsRUFBRUEsRUFBRSxPQUFPLFVBQVUsQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFLEtBQUssWUFBWSxFQUFFLElBQUksRUFBRUEsRUFBRSxZQUFZLFVBQVUsQ0FBQyxPQUFPLEtBQUssR0FBRyxZQUFZLENBQUMsRUFBRUEsRUFBRSxTQUFTLFVBQVUsQ0FBQyxPQUFPLEtBQUssR0FBRyxZQUFZLENBQUMsRUFBRUgsQ0FBQyxHQUFFLEVBQUVnQixFQUFFTCxFQUFFLFVBQVUsT0FBT0UsRUFBRSxVQUFVRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSzFCLENBQUMsRUFBRSxDQUFDLEtBQUtDLENBQUMsRUFBRSxDQUFDLEtBQUtDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBS0csQ0FBQyxFQUFFLENBQUMsS0FBS0MsQ0FBQyxDQUFDLEVBQUUsU0FBUyxTQUFTSyxFQUFFLENBQUNlLEVBQUVmLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBU0MsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHQSxFQUFFRCxFQUFFLENBQUMsRUFBRUEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRVksRUFBRSxPQUFPLFNBQVNaLEVBQUVDLEVBQUUsQ0FBQyxPQUFPRCxFQUFFLEtBQUtBLEVBQUVDLEVBQUVTLEVBQUVFLENB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LENBQUMsR0FBSyxLQUFTRCxFQUFNQyxDQUFDLElBQU0sS0FBUUQsRUFBTUMsQ0FBQyxJQUFNLE1BQzVFLEtBQVFELEVBQU1DLEVBQUksQ0FBQyxHQUNuQkQsRUFBTUMsRUFBSSxDQUFDLEdBQUssS0FDaEIsS0FBUUQsRUFBTUMsRUFBSSxDQUFDLEdBQ25CRCxFQUFNQyxFQUFJLENBQUMsR0FBSyxLQUVqQkQsRUFBTUMsQ0FBQyxJQUFNLEtBQ1osS0FBUUQsRUFBTUMsRUFBSSxDQUFDLEdBQ25CRCxFQUFNQyxFQUFJLENBQUMsR0FBSyxLQUNoQixLQUFRRCxFQUFNQyxFQUFJLENBQUMsR0FDbkJELEVBQU1DLEVBQUksQ0FBQyxHQUFLLElBQ2xCLENBQ0FBLEdBQUssRUFDTCxRQUNGLENBRUEsR0FFR0QsRUFBTUMsQ0FBQyxJQUFNLEtBQ1osS0FBUUQsRUFBTUMsRUFBSSxDQUFDLEdBQ25CRCxFQUFNQyxFQUFJLENBQUMsR0FBSyxLQUNoQixLQUFRRCxFQUFNQyxFQUFJLENBQUMsR0FDbkJELEVBQU1DLEVBQUksQ0FBQyxHQUFLLEtBQ2hCLEtBQVFELEVBQU1DLEVBQUksQ0FBQyxHQUNuQkQsRUFBTUMsRUFBSSxDQUFDLEdBQUssS0FFakIsS0FBUUQsRUFBTUMsQ0FBQyxHQUNkRCxFQUFNQyxDQUFDLEdBQUssS0FDWixLQUFRRCxFQUFNQyxFQUFJLENBQUMsR0FDbkJELEVBQU1DLEVBQUksQ0FBQyxHQUFLLEtBQ2hCLEtBQVFELEVBQU1DLEVBQUksQ0FBQyxHQUNuQkQsRUFBTUMsRUFBSSxDQUFDLEdBQUssS0FDaEIsS0FBUUQsRUFBTUMsRUFBSSxDQUFDLEdBQ25CRCxFQUFNQyxFQUFJLENBQUMsR0FBSyxLQUVqQkQsRUFBTUMsQ0FBQyxJQUFNLEtBQ1osS0FBUUQsRUFBTUMsRUFBSSxDQUFDLEdBQ25CRCxFQUFNQyxFQUFJLENBQUMsR0FBSyxLQUNoQixLQUFRRCxFQUFNQyxFQUFJLENBQUMsR0FDbkJELEVBQU1DLEVBQUksQ0FBQyxHQUFLLEtBQ2hCLEtBQVFELEVBQU1DLEVBQUksQ0FBQyxHQUNu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QSxPQUNBLE9BQ0EsU0FDQSxRQUNBLE9BQ0EsUUFDQSxNQUNBLE9BQ0EsTUFDQSxPQUNBLE9BQ0EsT0FDQSxRQUNBLFFBQ0EsUUFDQSxTQUNBLFFBQ0EsU0FDQSxNQUNBLE9BQ0EsU0FDQSxNQUNBLE1BQ0YsSUNoSEEsSUFLYUcsR0FMYkMsSUFBQUMsRUFBQSxLQUthRixHQUF5QixDQUNwQyxLQUFNLE9BQ04sTUFBTyxPQUNQLEtBQU0sT0FDTixNQUFPLE9BQ1AsT0FBUSxPQUNSLElBQUssT0FDTCxPQUFRLE9BQ1IsS0FBTSxPQUNOLElBQUssT0FDTCxLQUFNLE9BQ04sS0FBTSxPQUNOLE1BQU8sT0FDUCxJQUFLLE9BQ0wsSUFBSyxPQUNMLElBQUssT0FDTCxLQUFNLE9BQ04sSUFBSyxPQUNMLE9BQVEsT0FDUixLQUFNLE9BQ04sS0FBTSxPQUNOLE1BQU8sT0FDUCxNQUFPLE9BQ1AsS0FBTSxPQUNOLE9BQVEsT0FDUixNQUFPLE9BQ1AsS0FBTSxPQUNOLEtBQU0sT0FDTixNQUFPLE9BQ1AsT0FBUSxPQUNSLE9BQVEsT0FDUixPQUFRLE9BQ1IsT0FBUSxPQUNSLE9BQVEsT0FDUixPQUFRLE9BQ1IsTUFBTyxPQUNQLE9BQVEsT0FDUixLQUFNLE9BQ04sTUFBTyxPQUNQLE1BQU8sT0FDUCxPQUFRLE9BQ1IsT0FBUSxPQUNSLE9BQVEsT0FDUixNQUFPLE9BQ1AsS0FBTSxPQUNOLE9BQVEsT0FDUixPQUFRLE9BQ1IsTUFBTyxPQUNQLEtBQU0sT0FDTixJQUFLLE9BQ0wsT0FBUSxPQUNSLE9BQVEsT0FDUixPQUFRLE9BQ1IsTUFBTyxPQUNQLE9BQVEsT0FDUixLQUFNLE9BQ04sTUFBTyxPQUNQLE9BQVEsT0FDUixPQUFRLE9BQ1IsT0FBUSxPQUNSLE1BQU8sT0FDUCxLQUFNLE9BQ04sT0FBUSxPQUNSLE1BQU8sT0FDUCxNQUFPLE9BQ1AsT0FBUSxPQUNSLE9BQVEsT0FDUixNQUFPLE9BQ1AsT0FBUSxPQUNSLEtBQU0sT0FDTixNQUFPLE9BQ1AsTUFBTyxPQUNQLE9BQVEsT0FDUixPQUFRLE9BQ1IsT0FBUSxPQUNSLE1BQU8sT0FDUCxLQUFNLE9BQ04sT0FBUSxPQUNSLE9BQVEsT0FDUixNQUFPLE9BQ1AsS0FBTSxPQUNOLElBQUssT0FDTCxPQUFRLE9BQ1IsT0FBUSxPQUNSLE9BQVEsT0FDUixNQUFPLE9BQ1AsT0FBUSxPQUNSLEtBQU0sT0FDTixPQUFRLE9BQ1IsT0FBUSxPQUNSLE9BQVEsT0FDUixPQUFRLE9BQ1IsTUFBTyxPQUNQLEtBQU0sT0FDTixPQUFRLE9BQ1IsTUFBTyxPQUNQLEtBQU0sT0FDTixLQUFNLFNBQ04sTUFBTyxTQUNQLEtBQU0sU0FDTixNQUFPLFNBQ1AsTUFBTyxTQUNQLFFBQVMsU0FDVCxLQUFNLFNBQ04sSUFBSyxTQUNMLE1BQU8sU0FDUCxLQUFNLFNBQ04sTUFBTyxTQUNQLE9BQVEsU0FDUixHQUFJLFNBQ0osR0FBSSxTQUNKLEdBQUksU0FDSixRQUFTLFNBQ1QsR0FBSSxTQUNKLElBQUssU0FDTCxNQUFPLFNBQ1AsSUFBSyxTQUNMLFFBQVMsU0FDVCxJQUFLLFNBQ0wsSUFBSyxTQUNMLElBQUssU0FDTCxNQUFPLFNBQ1AsTUFBTyxTQUNQLEtBQU0sU0FDTixNQUFPLFNBQ1AsTUFBTyxTQUNQLFFBQVMsU0FDVCxLQUFNLFNBQ04sSUFBSyxTQUNMLE1BQU8sU0FDUCxLQUFNLFNBQ04sTUFBTyxTQUNQLE9BQVEsU0FDUixHQUFJLFNBQ0osR0FBSSxTQUNKLEdBQUksU0FDSixRQUFTLFNBQ1QsR0FBSSxTQUNKLElBQUssU0FDTCxPQUFRLFNBQ1IsTUFBTyxTQUNQLElBQUssU0FDTCxRQUFTLFNBQ1QsSUFBSyxTQUNMLElBQUssU0FDTCxJQUFLLFNBQ0wsTUFBTyxTQUNQLFNBQVUsU0FDVixNQUFPLFNBQ1AsSUFBSyxTQUNMLEtBQU0sU0FDTixPQUFRLFNBQ1IsTUFBTyxTQUNQLE1BQU8sU0FDUCxNQUFPLFNBQ1AsTUFBTyxTQUNQLE9BQVEsU0FDUixNQUFPLFNBQ1AsS0FBTSxTQUNOLE1BQU8sU0FDUCxRQUFTLFNBQ1QsS0FBTSxTQUNOLEtBQU0sU0FDTixLQUFNLFNBQ04sS0FBTSxTQUNOLEtBQU0sU0FDTixNQUFPLFNBQ1AsS0FBTSxTQUNOLEtBQU0sU0FDTixLQUFNLFNBQ04sS0FBTSxTQUNOLEtBQU0sU0FDTixPQUFRLFNBQ1IsS0FBTSxTQUNOLE1BQU8sU0FDUCxNQUFPLFNBQ1AsTUFBTyxTQUNQLEtBQU0sU0FDTixNQUFPLFNBQ1AsR0FBSSxTQUNKLEtBQU0sU0FDTixJQUFLLFNBQ0wsTUFBTyxTQUNQLE9BQVEsU0FDUixNQUFPLFNBQ1AsS0FBTSxTQUNOLE1BQU8sU0FDUCxJQUFLLFNBQ0wsSUFBSyxTQUNMLEdBQUksU0FDSixJQUFLLFNBQ0wsSUFBSyxTQUNMLElBQUssU0FDTCxPQUFRLFNBQ1IsSUFBSyxTQUNMLEtBQU0sU0FDTixNQUFPLFNBQ1AsR0FBSSxTQUNKLE1BQU8sU0FDUCxHQUFJLFNBQ0osR0FBSSxTQUNKLElBQUssU0FDTCxJQUFLLFNBQ0wsS0FBTSxTQUNOLEtBQU0sU0FDTixLQUFNLFNBQ04sTUFBTyxTQUNQLE9BQVEsU0FDUixLQUFNLFNBQ04sS0FBTSxTQUNOLE1BQU8sU0FDUCxNQUFPLFNBQ1AsT0FBUSxTQUNSLE9BQVEsU0FDUixLQUFNLFNBQ04sS0FBTSxTQUNOLElBQUssU0FDTCxPQUFRLFNBQ1IsTUFBTyxTQUNQLE9BQVEsU0FDUixNQUFPLFNBQ1AsS0FBTSxJQUNOLElBQUssSUFDTCxHQUFJLElBQ0osR0FBSSxJQUNKLE1BQU8sU0FDUCxNQUFPLFNBQ1AsT0FBUSxTQUNSLE9BQVEsU0FDUixLQUFNLFNBQ04sS0FBTSxTQUNOLE1BQU8sU0FDUCxLQUFNLFNBQ04sS0FBTSxTQUNOLE9BQVEsU0FDUixLQUFNLFNBQ04sSUFBSyxTQUNMLElBQUssU0FDTCxJQUFLLFNBQ0wsTUFBTyxTQUNQLE1BQU8sU0FDUCxNQUFPLFNBQ1AsTUFBTyxTQUNQLE1BQU8sU0FDUCxNQUFPLFNBQ1AsTUFBTyxTQUNQLE1BQU8sU0FDUCxPQUFRLFNBQ1IsT0FBUSxTQUNSLE9BQVEsU0FDUixPQUFRLFNBQ1IsT0FBUSxTQUNSLEtBQU0sUUFDUixJQ2xRQSxJQU1hRyxJQU5i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QUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxNQUNBQyxRQ1BBLElBQUFDLElBQUFDLEVBQUEsUUNBQSxJQUFBQyxJQUFBQyxFQUFBLFFDQUEsSUFBQUMsSUFBQSxPQUFBQyxJQUFBQyxFQUFBLEtBQUFDLE1BQ0FDLFFDREEsSUFBQUMsSUFBQUMsRUFBQSxRQ0FBLElBQUFDLElBQUFDLEVBQUEsUUNBQSxJQUFBQyxJQUFBLE9BQUFDLElBQUFDLEVBQUEsS0FBQUQsTUFDQUUsUUNEQSxJQUFBQyxJQUFBQyxFQUFBLEtBQUFDLE9DQUEsSUFBQUMsSUFBQUMsRUFBQSxLQUFBQyxPQ0FBLElBQUFDLElBQUFDLEVBQUEsS0FBQUMsUUNBQSxJQUFBQyxJQUFBLE9BQUFDLElBQUFDLEVBQUEsS0FBQUMsTUFDQUMsTUFDQUMsUUNGQSxJQUFBQyxJQUFBQyxFQUFBLFFDQUEsSUFBQUMsSUFBQUMsRUFBQSxRQ0FBLElBQUFDLElBQUEsT0FBQUMsSUFBQUMsRUFBQSxLQUFBQyxNQUNBQyxRQ0RBLElBQUFDLElBQUFDLEVBQUEsUUNBQSxJQUVhQyxJQUZiQyxJQUFBQyxFQUFBLEtBQUFDLE1BRWFILElBQVAsS0FBdUIsS0NGN0IsSUFBQUksSUFBQUMsRUFBQSxRQ0FBLElBQUFDLElBQUFDLEVBQUEsUUNBQSxJQUFBQyxJQUFBQyxFQUFBLFFDQUEsSUFBQUMsSUFBQUMsRUFBQSxRQ0FBLElBQUFDLElBQUFDLEVBQUEsUUNBQSxJQUFBQyxJQUFBQyxFQUFBLFFDQUEsSUFBQUMsSUFBQUMsRUFBQSxRQ0FBLElBQUFDLElBQUFDLEVBQUEsUUNBQSxJQUFBQyxJQUFBQyxFQUFBLFFDQUEsSUFBQUMsR0FBQSxHQUFBQyxHQUFBRCxHQUFBLHNCQUFBRSxNQUFBLElBQUFDLElBQUFDLEVBQUEsS0FBQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsTUFDQUMsUUNWQSxJQUFBQyxJQUFBQyxFQUFBLEtBQUFDLE9DQUEsSUFBQUMsSUFBQUMsRUFBQSxLQUFBQyxRQ0FBLElBQUFDLElB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Q0FBLEVBQUFBLEVBQUEsS0FBQSxFQUFBLEVBQUEsT0FDQUEsRUFBQUEsRUFBQSxJQUFBLEVBQUEsRUFBQSxNQUNBQSxFQUFBQSxFQUFBLFdBQUEsRUFBQSxFQUFBLGFBQ0FBLEVBQUFBLEVBQUEsU0FBQSxFQUFBLEVBQUEsV0FDQUEsRUFBQUEsRUFBQSxPQUFBLEVBQUEsRUFBQSxTQUNBQSxFQUFBQSxFQUFBLE1BQUEsRUFBQSxFQUFBLFFBQ0FBLEVBQUFBLEVBQUEsT0FBQSxFQUFBLEVBQUEsU0FDQUEsRUFBQUEsRUFBQSxTQUFBLEVBQUEsRUFBQSxXQUNBQSxFQUFBQSxFQUFBLElBQUEsRUFBQSxFQUFBLE1BQ0FBLEVBQUFBLEVBQUEsS0FBQSxFQUFBLEVBQUEsT0FFQUEsRUFBQUEsRUFBQSxVQUFBLEVBQUEsRUFBQSxZQUNBQSxFQUFBQSxFQUFBLFFBQUEsRUFBQSxFQUFBLFVBQ0FBLEVBQUFBLEVBQUEsV0FBQSxFQUFBLEVBQUEsYUFDQUEsRUFBQUEsRUFBQSxVQUFBLEVBQUEsRUFBQSxZQUVBQSxFQUFBQSxFQUFBLE9BQUEsRUFBQSxFQUFBLFNBQ0FBLEVBQUFBLEVBQUEsT0FBQSxFQUFBLEVBQUEsU0FFQUEsRUFBQUEsRUFBQSxLQUFBLEVBQUEsRUFBQSxPQUNBQSxFQUFBQSxFQUFBLFlBQUEsRUFBQSxFQUFBLGNBQ0FBLEVBQUFBLEVBQUEsSUFBQSxFQUFBLEVBQUEsTUFDQUEsRUFBQUEsRUFBQSxnQkFBQSxFQUFBLEVBQUEsa0JBQ0FBLEVBQUFBLEVBQUEsSUFBQSxFQUFBLEVBQUEsTUFDQUEsRUFBQUEsRUFBQSxPQUFBLEVBQUEsRUFBQSxTQUNBQSxFQUFBQSxFQUFBLE1BQUEsRUFBQSxFQUFBLFFBQ0FBLEVBQUFBLEVBQUEsVUFBQSxFQUFBLEVBQUEsWUFDQUEsRUFBQUEsRUFBQSxLQUFBLEVBQUEsRUFBQSxPQUNBQSxFQUFBQSxFQUFBLEtBQUEsRUFBQSxFQUFBLE9BQ0FBLEVBQUFBLEVBQUEsV0FBQSxFQUFBLEVBQUEsYUFDQUEsRUFBQUEsRUFBQSxLQUFBLEVBQUEsRUFBQSxPQUNBQSxFQUFBQSxFQUFBLFlBQUEsRUFBQSxFQUFBLGNBQ0FBLEVBQUFBLEVBQUEsSUFBQSxFQUFBLEVBQUEsTUFDQUEsRUFBQUEsRUFBQSxNQUFBLEVBQUEsRUFBQSxRQUNBQSxFQUFBQSxFQUFBLElBQUEsRUFBQSxFQUFBLE1BQ0FBLEVBQUFBLEVBQUEsTUFBQSxFQUFBLEVBQUEsUUFDQUEsRUFBQUEsRUFBQSxVQUFBLEVBQUEsRUFBQSxZQUNBQSxFQUFBQSxFQUFBLE1BQUEsRUFBQSxFQUFBLFFBQ0FBLEVBQUFBLEVBQUEsS0FBQSxFQUFBLEVBQUEsT0FDQUEsRUFBQUEsRUFBQSxRQUFBLEVBQUEsRUFBQSxVQUNBQSxFQUFBQSxFQUFBLEtBQUEsRUFBQSxFQUFBLE9BQ0FBLEVBQUFBLEVBQUEsVUFBQSxFQUFBLEVBQUEsWUFFQUEsRUFBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxJQUNBQSxFQUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLElBQ0FBLEVBQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsSUFDQUEsRUFBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxJQUNBQSxFQUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLElBQ0FBLEVBQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsSUFDQUEsRUFBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxJQUNBQSxFQUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLElBQ0FBLEVBQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsSUFDQUEsRUFBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxJQUNBQSxFQUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLElBQ0FBLEVBQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsSUFDQUEsRUFBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxJQUNBQSxFQUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLElBQ0FBLEVBQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsSUFDQUEsRUFBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxJQUNBQSxFQUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLElBQ0FBLEVBQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsSUFDQUEsRUFBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxJQUNBQSxFQUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLElBQ0FBLEVBQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsSUFDQUEsRUFBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxJQUNBQSxFQUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLElBQ0FBLEVBQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsSUFDQUEsRUFBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxJQUNBQSxFQUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLElBRUFBLEVBQUFBLEVBQUEsY0FBQSxFQUFBLEVBQUEsZ0JBQ0FBLEVBQUFBLEVBQUEsZUFBQSxFQUFBLEVBQUEsaUJBQ0FBLEVBQUFBLEVBQUEsVUFBQSxFQUFBLEVBQUEsWUFFQUEsRUFBQUEsRUFBQSxRQUFBLEVBQUEsRUFBQSxVQUNBQSxFQUFBQSxFQUFBLFFBQUEsRUFBQSxFQUFBLFVBQ0FBLEVBQUFBLEVBQUEsUUFBQSxFQUFBLEVBQUEsVUFDQUEsRUFBQUEsRUFBQSxRQUFBLEVBQUEsRUFBQSxVQUNBQSxFQUFBQSxFQUFBLFFBQUEsR0FBQSxFQUFBLFVBQ0FBLEVBQUFBLEVBQUEsUUFBQSxHQUFBLEVBQUEsVUFDQUEsRUFBQUEsRUFBQSxRQUFBLEdBQUEsRUFBQSxVQUNBQSxFQUFBQSxFQUFBLFFBQUEsR0FBQSxFQUFBLFVBQ0FBLEVBQUFBLEVBQUEsUUFBQSxHQUFBLEVBQUEsVUFDQUEsRUFBQUEsRUFBQSxRQUFBLEdBQUEsRUFBQSxVQUVBQSxFQUFBQSxFQUFBLFNBQUEsR0FBQSxFQUFBLFdBQ0FBLEVBQUFBLEVBQUEsSUFBQSxHQUFBLEVBQUEsTUFDQUEsRUFBQUEsRUFBQSxTQUFBLEdBQUEsRUFBQSxXQUNBQSxFQUFBQSxFQUFBLGFBQUEsR0FBQSxFQUFBLGVBQ0FBLEVBQUFBLEVBQUEsT0FBQSxHQUFBLEVBQUEsU0FFQUEsRUFBQUEsRUFBQSxHQUFBLEdBQUEsRUFBQSxLQUNBQSxFQUFBQSxFQUFBLEdBQUEsR0FBQSxFQUFBLEtBQ0FBLEVBQUFBLEVBQUEsR0FBQSxHQUFBLEVBQUEsS0FDQUEsRUFBQUEsRUFBQSxHQUFBLEdBQUEsRUFBQSxLQUNBQSxFQUFBQSxFQUFBLEdBQUEsR0FBQSxFQUFBLEtBQ0FBLEVBQUFBLEVBQUEsR0FBQSxHQUFBLEVBQUEsS0FDQUEsRUFBQUEsRUFBQSxHQUFBLEdBQUEsRUFBQSxLQUNBQSxFQUFBQSxFQUFBLEdBQUEsR0FBQSxFQUFBLEtBQ0FBLEVBQUFBLEVBQUEsR0FBQSxHQUFBLEVBQUEsS0FDQUEsRUFBQUEsRUFBQSxJQUFBLEdBQUEsRUFBQSxNQUNBQSxFQUFBQSxFQUFBLElBQUEsR0FBQSxFQUFBLE1BQ0FBLEVBQUFBLEVBQUEsSUFBQSxHQUFBLEVBQUEsTUFFQUEsRUFBQUEsRUFBQSxRQUFBLEdBQUEsRUFBQSxVQUNBQSxFQUFBQSxFQUFBLFdBQUEsR0FBQSxFQUFBLGFBRUFBLEVBQUFBLEVBQUEsVUFBQSxHQUFBLEVBQUEsWUFDQUEsRUFBQUEsRUFBQSxPQUFBLEdBQUEsRUFBQSxTQUNBQSxFQUFBQSxFQUFBLE1BQUEsR0FBQSxFQUFBLFFBQ0FBLEVBQUFBLEVBQUEsS0FBQSxHQUFBLEVBQUEsT0FDQUEsRUFBQUEsRUFBQSxPQUFBLEdBQUEsRUFBQSxTQUNBQSxFQUFBQSxFQUFBLFdBQUEsR0FBQSxFQUFBLGFBQ0FBLEVBQUFBLEVBQUEsU0FBQSxHQUFBLEVBQUEsV0FDQUEsRUFBQUEsRUFBQSxhQUFBLEdBQUEsRUFBQSxlQUNBQSxFQUFBQSxFQUFBLE1BQUEsR0FBQSxFQUFBLFFBQ0FBLEVBQUFBLEVBQUEsWUFBQSxHQUFBLEVBQUEsY0FFQUEsRUFBQUEsRUFBQSxZQUFBLEdBQUEsRUFBQSxjQUNBQSxFQUFBQSxFQUFBLGNBQUEsR0FBQSxFQUFBLGdCQUNBQSxFQUFBQSxFQUFBLE1BQUEsR0FBQSxFQUFBLE9BQ0YsR0E5SFlBLE1BQUFBLElBQUcsQ0FBQSxFQUFBLEVBZ0lGQyxHQUFQLEtBQWUsQ0FJQyxRQUhaLG9CQUFzQixJQUFJLElBQzFC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O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHQWdCYkssSUFBZSxHQU9md2IsSUFBWSxDQUNkLE9BQVEsVUFBa0IsQ0FDeEIsTUFBTyxDQUNMLElBQUssQ0FDSCxJQUFLcmYsSUFDTCxVQUFXNEQsR0FDYixDQUNGLENBQ0YsRUFDQSxNQUFPLFVBQWlCLENBQ3RCLE1BQU8sQ0FDTCx5QkFBMEIsVUFBb0MsQ0FDNURBLElBQVUsQ0FDWixFQUNBLFlBQWEsVUFBdUIsQ0FDbENBLElBQVUsQ0FDWixDQUNGLENBQ0YsQ0FDRixFQUVJMGIsR0FBTXJQLElBQVUsQ0FBQyxFQUNoQnFQLEdBQUlmLEVBQW9CLElBQUdlLEdBQUlmLEVBQW9CLEVBQUksQ0FBQyxHQUN4RGUsR0FBSWYsRUFBb0IsRUFBRSxTQUFRZSxHQUFJZixFQUFvQixFQUFFLE9BQVMsQ0FBQyxHQUN0RWUsR0FBSWYsRUFBb0IsRUFBRSxRQUFPZSxHQUFJZixFQUFvQixFQUFFLE1BQVEsQ0FBQyxHQUNwRWUsR0FBSWYsRUFBb0IsRUFBRSxRQUFPZSxHQUFJZixFQUFvQixFQUFFLE1BQVEsQ0FBQyxHQUNyRWhaLEdBQVkrWixHQUFJZixFQUFvQixFQUVwQ3RhLElBQVksQ0FBQyxFQUNic2IsSUFBWSxVQUFvQixDQUNsQzlmLEdBQVMsb0JBQW9CLG1CQUFvQjhmLEdBQVMsRUFDMUR2YixHQUFTLEVBQ1RDLElBQVUsSUFBSSxTQUFVRixFQUFJLENBQzFCLE9BQU9BLEVBQUcsQ0FDWixDQUFDLENBQ0gsRUFDSUMsR0FBUyxHQUNUL0QsS0FDRitELElBQVV2RSxHQUFTLGdCQUFnQixTQUFXLGFBQWUsaUJBQWlCLEtBQUtBLEdBQVMsVUFBVSxFQUNqR3VFLElBQVF2RSxHQUFTLGlCQUFpQixtQkFBb0I4ZixHQUFTLEdBa0NsRUMsSUFBZ0IsU0FBdUJnRCxFQUFNQyxFQUFhLENBQzVELE9BQU8sU0FBVXpsQixFQUFHbWMsRUFBRy9MLEVBQUd1TCxFQUFHLENBQzNCLE9BQU82SixFQUFLLEtBQUtDLEVBQWF6bEIsRUFBR21jLEVBQUcvTCxFQUFHdUwsQ0FBQyxDQUMxQyxDQUNGLEVBYUk4RyxJQUFTLFNBQTBCaUQsRUFBUzNlLEVBQUk0ZSxFQUFjRixFQUFhLENBQzdFLElBQUlHLEVBQU8sT0FBTyxLQUFLRixDQUFPLEVBQzVCRyxFQUFTRCxFQUFLLE9BQ2RFLEVBQVdMLElBQWdCLE9BQVlqRCxJQUFjemIsRUFBSTBlLENBQVcsRUFBSTFlLEVBQ3hFMUYsRUFDQTZMLEVBQ0FwQyxFQVFGLElBUEk2YSxJQUFpQixRQUNuQnRrQixFQUFJLEVBQ0p5SixFQUFTNGEsRUFBUUUsRUFBSyxDQUFDLENBQUMsSUFFeEJ2a0IsRUFBSSxFQUNKeUosRUFBUzZhLEdBRUp0a0IsRUFBSXdrQixFQUFReGtCLElBQ2pCNkwsRUFBTTBZLEVBQUt2a0IsQ0FBQyxFQUNaeUosRUFBU2diLEVBQVNoYixFQUFRNGEsRUFBUXhZLENBQUcsRUFBR0EsRUFBS3dZLENBQU8sRUFFdEQsT0FBTzVhLENBQ1QsRUE4Q0k0WCxJQUFPLEVBQ1BDLEdBQU0sRUFHTkMsSUFBZ0IsQ0FBQyxDQUFDRCxHQUFrQjdnQixHQUFZLHlEQUEwRCxDQUM1RyxHQUFJLEVBQ0osR0FBSSxDQUNOLENBQUMsQ0FBQyxFQUFHLENBQUM2Z0IsR0FBa0I3Z0IsR0FBWSxzQ0FBdUMsQ0FDekUsR0FBSSxDQUNOLENBQUMsQ0FBQyxFQUFHLENBQUM0Z0IsSUFBbUI1Z0IsR0FBWSx3Q0FBeUMsQ0FDNUUsR0FBSSxDQUNOLENBQUMsQ0FBQyxDQUFDLEVBUUMrZ0IsSUFBZ0IsQ0FBQyxDQUFDRixHQUFrQjdnQixHQUFZLGlHQUFrRyxDQUNwSixNQUFPLEVBQ1AsR0FBSSxFQUNKLE1BQU8sRUFDUCxHQUFJLENBQ04sQ0FBQyxDQUFDLEVBQUcsQ0FBQzZnQixHQUFrQjdnQixHQUFZLGlHQUFrRyxDQUNwSSxNQUFPLEVBQ1AsR0FBSSxFQUNKLE1BQU8sRUFDUCxHQUFJLENBQ04sQ0FBQyxDQUFDLEVBQUcsQ0FBQzZnQixHQUFrQjdnQixHQUFZLGdEQUFpRCxDQUNuRixNQUFPLEVBQ1AsR0FBSSxDQUNOLENBQUMsQ0FBQyxFQUFHLENBQUM2Z0IsR0FBa0I3Z0IsR0FBWSxrREFBbUQsQ0FDckYsTUFBTyxFQUNQLEdBQUksQ0FDTixDQUFDLENBQUMsRUFBRyxDQUFDNmdCLEdBQWtCN2dCLEdBQVksaUdBQWtHLENBQ3BJLEdBQUksRUFDSixNQUFPLEVBQ1AsR0FBSSxFQUNKLE1BQU8sQ0FDVCxDQUFDLENBQUMsRUFBRyxDQUFDNmdCLEdBQWtCN2dCLEdBQVksaUdBQWtHLENBQ3BJLEdBQUksRUFDSixNQUFPLEVBQ1AsR0FBSSxFQUNKLE1BQU8sQ0FDVCxDQUFDLENBQUMsRUFBRyxDQUFDNmdCLEdBQWtCN2dCLEdBQVksZ0RBQWlELENBQ25GLEdBQUksRUFDSixNQUFPLENBQ1QsQ0FBQyxDQUFDLEVBQUcsQ0FBQzZnQixHQUFrQjdnQixHQUFZLGtEQUFtRCxDQUNyRixHQUFJLEVBQ0osTUFBTyxDQUNULENBQUMsQ0FBQyxFQUFHLENBQUM2Z0IsR0FBa0I3Z0IsR0FBWSxxQ0FBc0MsQ0FDeEUsR0FBSSxFQUNKLEdBQUksQ0FDTixDQUFDLENBQUMsRUFBRyxDQUFDNGdCLElBQW1CNWdCLEdBQVksbUJBQW9CLENBQ3ZELEdBQUksQ0FDTixDQUFDLENBQUMsRUFBRyxDQUFDNGdCLElBQW1CNWdCLEdBQVksb0NBQXFDLENBQ3hFLE1BQU8sRUFDUCxHQUFJLENBQ04sQ0FBQyxDQUFDLENBQUMsRUFFQ3dDLEdBQVNpRSxHQUFVLE9BQ3JCdWEsSUFBUXZhLEdBQVUsTUFDaEI0QixJQUFlLE9BQU8sS0FBS3lYLEdBQW9CLEVBQy9DclgsSUFBc0JKLElBQWEsT0FBTyxTQUFVaEcsRUFBS2lHLEVBQVUsQ0FDckUsT0FBQWpHLEVBQUlpRyxDQUFRLEVBQUksT0FBTyxLQUFLd1gsSUFBcUJ4WCxDQUFRLENBQUMsRUFDbkRqRyxDQUNULEVBQUcsQ0FBQyxDQUFDLEVBQ0QyRixJQUF1QixLQUN2QmQsSUFBYSxDQUFDLEVBQ2RHLElBQWMsQ0FBQyxFQUNmSyxJQUFhLENBQUMsRUFDZEcsSUFBZ0IsQ0FBQyxFQUNqQkwsSUFBVyxDQUFDLEVBY1p5WixJQUFRLFVBQWlCLENBQzNCLElBQUlnRCxFQUFTLFNBQWdCQyxFQUFTLENBQ3BDLE9BQU92RCxJQUFPbmUsR0FBUSxTQUFVMmhCLEVBQU0vaUIsRUFBT3dFLEVBQVEsQ0FDbkQsT0FBQXVlLEVBQUt2ZSxDQUFNLEVBQUkrYSxJQUFPdmYsRUFBTzhpQixFQUFTLENBQUMsQ0FBQyxFQUNqQ0MsQ0FDVCxFQUFHLENBQUMsQ0FBQyxDQUNQLEVBQ0FqZCxJQUFhK2MsRUFBTyxTQUFVNWhCLEVBQUs2RCxFQUFNTCxFQUFVLENBSWpELEdBSElLLEVBQUssQ0FBQyxJQUNSN0QsRUFBSTZELEVBQUssQ0FBQyxDQUFDLEVBQUlMLEdBRWJLLEVBQUssQ0FBQyxFQUFHLENBQ1gsSUFBSWtlLEVBQVVsZSxFQUFLLENBQUMsRUFBRSxPQUFPLFNBQVVtUixFQUFNLENBQzNDLE9BQU8sT0FBT0EsR0FBUyxRQUN6QixDQUFDLEVBQ0QrTSxFQUFRLFFBQVEsU0FBVTdjLEVBQU8sQ0FDL0JsRixFQUFJa0YsRUFBTSxTQUFTLEVBQUUsQ0FBQyxFQUFJMUIsQ0FDNUIsQ0FBQyxDQUNILENBQ0EsT0FBT3hELENBQ1QsQ0FBQyxFQUNEZ0YsSUFBYzRjLEVBQU8sU0FBVTVoQixFQUFLNkQsRUFBTUwsRUFBVSxDQUVsRCxHQURBeEQsRUFBSXdELENBQVEsRUFBSUEsRUFDWkssRUFBSyxDQUFDLEVBQUcsQ0FDWCxJQUFJa2UsRUFBVWxlLEVBQUssQ0FBQyxFQUFFLE9BQU8sU0FBVW1SLEVBQU0sQ0FDM0MsT0FBTyxPQUFPQSxHQUFTLFFBQ3pCLENBQUMsRUFDRCtNLEVBQVEsUUFBUSxTQUFVN2MsRUFBTyxDQUMvQmxGLEVBQUlrRixDQUFLLEVBQUkxQixDQUNmLENBQUMsQ0FDSCxDQUNBLE9BQU94RCxDQUNULENBQUMsRUFDRG1GLElBQVd5YyxFQUFPLFNBQVU1aEIsRUFBSzZELEVBQU1MLEVBQVUsQ0FDL0MsSUFBSXVlLEVBQVVsZSxFQUFLLENBQUMsRUFDcEIsT0FBQTdELEVBQUl3RCxDQUFRLEVBQUlBLEVBQ2hCdWUsRUFBUSxRQUFRLFNBQVU3YyxFQUFPLENBQy9CbEYsRUFBSWtGLENBQUssRUFBSTFCLENBQ2YsQ0FBQyxFQUNNeEQsQ0FDVCxDQUFDLEVBSUQsSUFBSWdpQixFQUFhLFFBQVM3aEIsSUFBVStCLEdBQU8sYUFDdkMrZixFQUFjM0QsSUFBT0ssSUFBTyxTQUFVM2UsRUFBS2tJLEVBQU0sQ0FDbkQsSUFBSWdhLEVBQXdCaGEsRUFBSyxDQUFDLEVBQzlCM0UsRUFBUzJFLEVBQUssQ0FBQyxFQUNmMUUsRUFBVzBFLEVBQUssQ0FBQyxFQUNyQixPQUFJM0UsSUFBVyxPQUFTLENBQUN5ZSxJQUN2QnplLEVBQVMsT0FFUCxPQUFPMmUsR0FBMEIsV0FDbkNsaUIsRUFBSSxNQUFNa2lCLENBQXFCLEVBQUksQ0FDakMsT0FBUTNlLEVBQ1IsU0FBVUMsQ0FDWixHQUVFLE9BQU8wZSxHQUEwQixXQUNuQ2xpQixFQUFJLFNBQVNraUIsRUFBc0IsU0FBUyxFQUFFLENBQUMsRUFBSSxDQUNqRCxPQUFRM2UsRUFDUixTQUFVQyxDQUNaLEdBRUt4RCxDQUNULEVBQUcsQ0FDRCxNQUFPLENBQUMsRUFDUixTQUFVLENBQUMsQ0FDYixDQUFDLEVBQ0RxRixJQUFhNGMsRUFBWSxNQUN6QnpjLElBQWdCeWMsRUFBWSxTQUM1QnRjLElBQXVCVSxHQUFtQm5FLEdBQU8sYUFBYyxDQUM3RCxPQUFRQSxHQUFPLGFBQ2pCLENBQUMsQ0FDSCxFQUNBekQsSUFBUyxTQUFVMFYsRUFBTSxDQUN2QnhPLElBQXVCVSxHQUFtQjhOLEVBQUssYUFBYyxDQUMzRCxPQUFRalMsR0FBTyxhQUNqQixDQUFDLENBQ0gsQ0FBQyxFQUNEMGMsSUFBTSxFQThCRjdKLElBQXFCLFVBQThCLENBQ3JELE1BQU8sQ0FDTCxPQUFRLEtBQ1IsU0FBVSxLQUNWLEtBQU0sQ0FBQyxDQUNULENBQ0YsRUFvREl2TixJQUFxQmdLLElBQUssT0FBT0QsR0FBRSxFQXlEbkMxSSxJQUF1QjNDLElBQUcsT0FBTyxTQUFVRCxFQUFVLENBQ3ZELE9BQU9BLElBQWEvSSxJQUFLK0ksSUFBYTdKLEVBQ3hDLENBQUMsRUFDRzRNLElBQXFCLE9BQU8sS0FBSzRULEdBQUksRUFBRSxPQUFPLFNBQVU3VCxFQUFLLENBQy9ELE9BQU9BLElBQVE3TCxFQUNqQixDQUFDLEVBQUUsSUFBSSxTQUFVNkwsRUFBSyxDQUNwQixPQUFPLE9BQU8sS0FBSzZULElBQUs3VCxDQUFHLENBQUMsQ0FDOUIsQ0FBQyxFQUFFLEtBQUssRUF1Q0o4VixLQUF1QixVQUFZLENBQ3JDLFNBQVNBLEdBQVUsQ0FDakIzaUIsSUFBZ0IsS0FBTTJpQixDQUFPLEVBQzdCLEtBQUssWUFBYyxDQUFDLENBQ3RCLENBQ0EsT0FBT3RpQixJQUFhc2lCLEVBQVMsQ0FBQyxDQUM1QixJQUFLLE1BQ0wsTUFBTyxVQUFlLENBRXBCLFFBRElzRCxFQUFRLEtBQ0hqWSxFQUFPLFVBQVUsT0FBUWtZLEVBQWMsSUFBSSxNQUFNbFksQ0FBSSxFQUFHRSxFQUFPLEVBQUdBLEVBQU9GLEVBQU1FLElBQ3RGZ1ksRUFBWWhZLENBQUksRUFBSSxVQUFVQSxDQUFJLEVBRXBDLElBQUlpWSxFQUFZRCxFQUFZLE9BQU8sS0FBSyxpQkFBa0IsQ0FBQyxDQUFDLEVBQzVELE9BQU8sS0FBS0MsQ0FBUyxFQUFFLFFBQVEsU0FBVXRaLEVBQUssQ0FDNUNvWixFQUFNLFlBQVlwWixDQUFHLEVBQUl6TCxHQUFlQSxHQUFlLENBQUMsRUFBRzZrQixFQUFNLFlBQVlwWixDQUFHLEdBQUssQ0FBQyxDQUFDLEVBQUdzWixFQUFVdFosQ0FBRyxDQUFDLEVBQ3hHaEYsSUFBWWdGLEVBQUtzWixFQUFVdFosQ0FBRyxDQUFDLEVBRy9CLElBQUl1WixFQUFhN0UsSUFBcUJ2Z0IsRUFBQyxFQUFFNkwsQ0FBRyxFQUN4Q3VaLEdBQVl2ZSxJQUFZdWUsRUFBWUQsRUFBVXRaLENBQUcsQ0FBQyxFQUN0RDZWLElBQU0sQ0FDUixDQUFDLENBQ0gsQ0FDRixFQUFHLENBQ0QsSUFBSyxRQUNMLE1BQU8sVUFBaUIsQ0FDdEIsS0FBSyxZQUFjLENBQUMsQ0FDdEIsQ0FDRixFQUFHLENBQ0QsSUFBSyxtQkFDTCxNQUFPLFNBQTBCeUQsRUFBV0UsRUFBWSxDQUN0RCxJQUFJcGUsRUFBYW9lLEVBQVcsUUFBVUEsRUFBVyxVQUFZQSxFQUFXLEtBQU8sQ0FDN0UsRUFBR0EsQ0FDTCxFQUFJQSxFQUNKLGNBQU8sS0FBS3BlLENBQVUsRUFBRSxJQUFJLFNBQVU0RSxFQUFLLENBQ3pDLElBQUl5WixFQUFrQnJlLEVBQVc0RSxDQUFHLEVBQ2xDeEYsRUFBU2lmLEVBQWdCLE9BQ3pCaGYsRUFBV2dmLEVBQWdCLFNBQzNCM2UsRUFBTzJlLEVBQWdCLEtBQ3JCVCxFQUFVbGUsRUFBSyxDQUFDLEVBQ2Z3ZSxFQUFVOWUsQ0FBTSxJQUFHOGUsRUFBVTllLENBQU0sRUFBSSxDQUFDLEdBQ3pDd2UsRUFBUSxPQUFTLEdBQ25CQSxFQUFRLFFBQVEsU0FBVTdjLEVBQU8sQ0FDM0IsT0FBT0EsR0FBVSxXQUNuQm1kLEVBQVU5ZSxDQUFNLEVBQUUyQixDQUFLLEVBQUlyQixFQUUvQixDQUFDLEVBRUh3ZSxFQUFVOWUsQ0FBTSxFQUFFQyxDQUFRLEVBQUlLLENBQ2hDLENBQUMsRUFDTXdlLENBQ1QsQ0FDRixDQUFDLENBQUMsQ0FDSixHQUFFLEVBRUVoWixJQUFXLENBQUMsRUFDWkMsR0FBUyxDQUFDLEVBQ1ZDLEdBQVksQ0FBQyxFQUNiRSxJQUFzQixPQUFPLEtBQUtGLEVBQVMsRUE0RTNDc0IsSUFBVSxJQUFJZ1UsSUFDZEMsSUFBUyxVQUFrQixDQUM3QjVjLEdBQU8sZUFBaUIsR0FDeEJBLEdBQU8saUJBQW1CLEdBQzFCcUksR0FBVSxRQUFRLENBQ3BCLEVBQ0l3VSxJQUFNLENBQ1IsTUFBTyxVQUFpQixDQUN0QixJQUFJL2EsRUFBUyxVQUFVLE9BQVMsR0FBSyxVQUFVLENBQUMsSUFBTSxPQUFZLFVBQVUsQ0FBQyxFQUFJLENBQUMsRUFDbEYsT0FBSWxGLElBQ0Z5TCxHQUFVLGNBQWV2RyxDQUFNLEVBQy9CMEcsR0FBYSxxQkFBc0IxRyxDQUFNLEVBQ2xDMEcsR0FBYSxRQUFTMUcsQ0FBTSxHQUU1QixRQUFRLE9BQU8sSUFBSSxNQUFNLHdDQUF3QyxDQUFDLENBRTdFLEVBQ0EsTUFBTyxVQUFpQixDQUN0QixJQUFJQSxFQUFTLFVBQVUsT0FBUyxHQUFLLFVBQVUsQ0FBQyxJQUFNLE9BQVksVUFBVSxDQUFDLEVBQUksQ0FBQyxFQUM5RXllLEVBQXFCemUsRUFBTyxtQkFDNUI5QixHQUFPLGlCQUFtQixLQUM1QkEsR0FBTyxlQUFpQixJQUUxQkEsR0FBTyxpQkFBbUIsR0FDMUJTLElBQVMsVUFBWSxDQUNuQnVjLElBQVksQ0FDVixtQkFBb0J1RCxDQUN0QixDQUFDLEVBQ0RsWSxHQUFVLFFBQVN2RyxDQUFNLENBQzNCLENBQUMsQ0FDSCxDQUNGLEVBQ0lnYixJQUFRLENBQ1YsS0FBTSxTQUFjMEQsRUFBTyxDQUN6QixHQUFJQSxJQUFVLEtBQ1osT0FBTyxLQUVULEdBQUlobEIsR0FBUWdsQixDQUFLLElBQU0sVUFBWUEsRUFBTSxRQUFVQSxFQUFNLFNBQ3ZELE1BQU8sQ0FDTCxPQUFRQSxFQUFNLE9BQ2QsU0FBVXpkLEdBQVF5ZCxFQUFNLE9BQVFBLEVBQU0sUUFBUSxHQUFLQSxFQUFNLFFBQzNELEVBRUYsR0FBSSxNQUFNLFFBQVFBLENBQUssR0FBS0EsRUFBTSxTQUFXLEVBQUcsQ0FDOUMsSUFBSWxmLEVBQVdrZixFQUFNLENBQUMsRUFBRSxRQUFRLEtBQUssSUFBTSxFQUFJQSxFQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBSUEsRUFBTSxDQUFDLEVBQ3RFbmYsRUFBUzhDLEdBQW1CcWMsRUFBTSxDQUFDLENBQUMsRUFDeEMsTUFBTyxDQUNMLE9BQVFuZixFQUNSLFNBQVUwQixHQUFRMUIsRUFBUUMsQ0FBUSxHQUFLQSxDQUN6QyxDQUNGLENBQ0EsR0FBSSxPQUFPa2YsR0FBVSxXQUFhQSxFQUFNLFFBQVEsR0FBRyxPQUFPeGdCLEdBQU8sVUFBVyxHQUFHLENBQUMsRUFBSSxJQUFNd2dCLEVBQU0sTUFBTTlFLEdBQTZCLEdBQUksQ0FDckksSUFBSStFLEVBQWdCeGIsR0FBaUJ1YixFQUFNLE1BQU0sR0FBRyxFQUFHLENBQ3JELFlBQWEsRUFDZixDQUFDLEVBQ0QsTUFBTyxDQUNMLE9BQVFDLEVBQWMsUUFBVWpkLEdBQXVCLEVBQ3ZELFNBQVVULEdBQVEwZCxFQUFjLE9BQVFBLEVBQWMsUUFBUSxHQUFLQSxFQUFjLFFBQ25GLENBQ0YsQ0FDQSxHQUFJLE9BQU9ELEdBQVUsU0FBVSxDQUM3QixJQUFJRSxFQUFVbGQsR0FBdUIsRUFDckMsTUFBTyxDQUNMLE9BQVFrZCxFQUNSLFNBQVUzZCxHQUFRMmQsRUFBU0YsQ0FBSyxHQUFLQSxDQUN2QyxDQUNGLENBQ0YsQ0FDRixFQUNJekQsR0FBTSxDQUNSLE9BQVFILElBQ1IsT0FBUTVjLEdBQ1IsSUFBSzZjLElBQ0wsTUFBT0MsSUFDUCxRQUFTblUsSUFDVCxtQkFBb0JGLElBQ3BCLE9BQVE1SCxFQUNWLEVBQ0ltYyxJQUFjLFVBQXVCLENBQ3ZDLElBQUlsYixFQUFTLFVBQVUsT0FBUyxHQUFLLFVBQVUsQ0FBQyxJQUFNLE9BQVksVUFBVSxDQUFDLEVBQUksQ0FBQyxFQUM5RTZlLEVBQXdCN2UsRUFBTyxtQkFDakN5ZSxFQUFxQkksSUFBMEIsT0FBU3ZrQixHQUFXdWtCLEdBQ2hFLE9BQU8sS0FBS3plLEdBQVUsTUFBTSxFQUFFLE9BQVMsR0FBS2xDLEdBQU8sZUFBaUJwRCxJQUFVb0QsR0FBTyxnQkFBZ0IrYyxHQUFJLElBQUksTUFBTSxDQUN0SCxLQUFNd0QsQ0FDUixDQUFDLENBQ0gsRUFvTUl2VixJQUFXOUksR0FBVSxPQThDckIrSSxJQUE2QixDQUMvQixNQUFPLEdBQ1AsTUFBTyxJQUNQLE9BQVEsR0FDVixFQTRCSWdTLElBQVMsVUFBZ0IsQ0FBQyxFQUMxQkMsSUFBTWxkLEdBQU8sb0JBQXNCK1UsSUFBZUEsR0FBWSxNQUFRQSxHQUFZLFFBQVVBLEdBQWMsQ0FDNUcsS0FBTWtJLElBQ04sUUFBU0EsR0FDWCxFQUNJRSxHQUFXLGFBQ1hDLElBQVEsU0FBZWhiLEVBQU0sQ0FDL0IsT0FBQThhLElBQUksS0FBSyxHQUFHLE9BQU9DLEdBQVUsR0FBRyxFQUFFLE9BQU8vYSxFQUFNLFNBQVMsQ0FBQyxFQUNsRCxVQUFZLENBQ2pCLE9BQU9nUyxJQUFJaFMsQ0FBSSxDQUNqQixDQUNGLEVBQ0lnUyxJQUFNLFNBQWFoUyxFQUFNLENBQzNCOGEsSUFBSSxLQUFLLEdBQUcsT0FBT0MsR0FBVSxHQUFHLEVBQUUsT0FBTy9hLEVBQU0sT0FBTyxDQUFDLEVBQ3ZEOGEsSUFBSSxRQUFRLEdBQUcsT0FBT0MsR0FBVSxHQUFHLEVBQUUsT0FBTy9hLENBQUksRUFBRyxHQUFHLE9BQU8rYSxHQUFVLEdBQUcsRUFBRSxPQUFPL2EsRUFBTSxTQUFTLEVBQUcsR0FBRyxPQUFPK2EsR0FBVSxHQUFHLEVBQUUsT0FBTy9hLEVBQU0sT0FBTyxDQUFDLENBQ3JKLEVBQ0kwSyxJQUFPLENBQ1QsTUFBT3NRLElBQ1AsSUFBS2hKLEdBQ1AsRUFFSTNILEdBQVMsVUFBZ0IsQ0FBQyxFQW9EMUJoQixHQUFXLENBQ2IsUUFBUyxTQUFpQjBFLEVBQVUsQ0FDbEMsSUFBSTFTLEVBQU8wUyxFQUFTLENBQUMsRUFDckIsR0FBSTFTLEVBQUssV0FJUCxHQUhBMFMsRUFBUyxDQUFDLEVBQUUsUUFBUSxTQUFVeUMsRUFBVSxDQUN0Q25WLEVBQUssV0FBVyxhQUFhb08sSUFBVytHLENBQVEsRUFBR25WLENBQUksQ0FDekQsQ0FBQyxFQUNHQSxFQUFLLGFBQWF3TSxFQUFhLElBQU0sTUFBUWpLLEdBQU8sbUJBQW9CLENBQzFFLElBQUlrTSxFQUFVOVAsR0FBUyxjQUFjNlAsSUFBY3hPLENBQUksQ0FBQyxFQUN4REEsRUFBSyxXQUFXLGFBQWF5TyxFQUFTek8sQ0FBSSxDQUM1QyxNQUNFQSxFQUFLLE9BQU8sQ0FHbEIsRUFDQSxLQUFNLFNBQWMwUyxFQUFVLENBQzVCLElBQUkxUyxFQUFPMFMsRUFBUyxDQUFDLEVBQ2pCeUMsRUFBV3pDLEVBQVMsQ0FBQyxFQUl6QixHQUFJLENBQUMzUyxJQUFXQyxDQUFJLEVBQUUsUUFBUXVDLEdBQU8sZ0JBQWdCLEVBQ25ELE9BQU95TCxHQUFTLFFBQVEwRSxDQUFRLEVBRWxDLElBQUl5USxFQUFTLElBQUksT0FBTyxHQUFHLE9BQU81Z0IsR0FBTyxVQUFXLEtBQUssQ0FBQyxFQUUxRCxHQURBLE9BQU80UyxFQUFTLENBQUMsRUFBRSxXQUFXLEdBQzFCQSxFQUFTLENBQUMsRUFBRSxXQUFXLE1BQU8sQ0FDaEMsSUFBSWlPLEVBQWVqTyxFQUFTLENBQUMsRUFBRSxXQUFXLE1BQU0sTUFBTSxHQUFHLEVBQUUsT0FBTyxTQUFVOVUsRUFBSzBFLEVBQUssQ0FDcEYsT0FBSUEsSUFBUXhDLEdBQU8sa0JBQW9Cd0MsRUFBSSxNQUFNb2UsQ0FBTSxFQUNyRDlpQixFQUFJLE1BQU0sS0FBSzBFLENBQUcsRUFFbEIxRSxFQUFJLE9BQU8sS0FBSzBFLENBQUcsRUFFZDFFLENBQ1QsRUFBRyxDQUNELE9BQVEsQ0FBQyxFQUNULE1BQU8sQ0FBQyxDQUNWLENBQUMsRUFDRDhVLEVBQVMsQ0FBQyxFQUFFLFdBQVcsTUFBUWlPLEVBQWEsTUFBTSxLQUFLLEdBQUcsRUFDdERBLEVBQWEsT0FBTyxTQUFXLEVBQ2pDcGpCLEVBQUssZ0JBQWdCLE9BQU8sRUFFNUJBLEVBQUssYUFBYSxRQUFTb2pCLEVBQWEsT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUU1RCxDQUNBLElBQUlDLEVBQWVsTyxFQUFTLElBQUksU0FBVWpaLEVBQUcsQ0FDM0MsT0FBT2tILEdBQU9sSCxDQUFDLENBQ2pCLENBQUMsRUFBRSxLQUFLO0FBQUEsQ0FBSSxFQUNaOEQsRUFBSyxhQUFhd00sR0FBZSxFQUFFLEVBQ25DeE0sRUFBSyxVQUFZcWpCLENBQ25CLENBQ0YsRUFzQkk5VCxJQUFXLEdBT1hhLEdBQUssS0EySkxrQyxJQUFXN04sR0FBVSxPQW1HckJtYixJQUFTLFNBQWdCM00sRUFBZ0IsQ0FDM0MsSUFBSTVPLEVBQVMsVUFBVSxPQUFTLEdBQUssVUFBVSxDQUFDLElBQU0sT0FBWSxVQUFVLENBQUMsRUFBSSxDQUFDLEVBQzlFaWYsRUFBb0JqZixFQUFPLFVBQzdCMUQsRUFBWTJpQixJQUFzQixPQUFTMWlCLEdBQXVCMGlCLEVBQ2xFQyxFQUFpQmxmLEVBQU8sT0FDeEJzSCxFQUFTNFgsSUFBbUIsT0FBUyxHQUFRQSxFQUM3Q0MsRUFBZW5mLEVBQU8sS0FDdEJtSCxFQUFPZ1ksSUFBaUIsT0FBUyxLQUFPQSxFQUN4Q0MsRUFBaUJwZixFQUFPLE9BQ3hCNEgsRUFBU3dYLElBQW1CLE9BQVMsS0FBT0EsRUFDNUNDLEVBQWtCcmYsRUFBTyxRQUN6QnNmLEVBQVVELElBQW9CLE9BQVMsQ0FBQyxFQUFJQSxFQUM1Q0UsRUFBcUJ2ZixFQUFPLFdBQzVCakUsRUFBYXdqQixJQUF1QixPQUFTLENBQUMsRUFBSUEsRUFDbERDLEVBQWlCeGYsRUFBTyxPQUN4QjdELEVBQVNxakIsSUFBbUIsT0FBUyxDQUFDLEVBQUlBLEVBQzVDLEdBQUs1USxFQUNMLEtBQUlyUCxFQUFTcVAsRUFBZSxPQUMxQnBQLEVBQVdvUCxFQUFlLFNBQzFCL08sRUFBTytPLEVBQWUsS0FDeEIsT0FBTzlILEdBQVl4TixHQUFlLENBQ2hDLEtBQU0sTUFDUixFQUFHc1YsQ0FBYyxFQUFHLFVBQVksQ0FDOUIsT0FBQXJJLEdBQVUsMkJBQTRCLENBQ3BDLGVBQWdCcUksRUFDaEIsT0FBUTVPLENBQ1YsQ0FBQyxFQUNNMEgsSUFBc0IsQ0FDM0IsTUFBTyxDQUNMLEtBQU1jLElBQVkzSSxDQUFJLEVBQ3RCLEtBQU1zSCxFQUFPcUIsSUFBWXJCLEVBQUssSUFBSSxFQUFJLENBQ3BDLE1BQU8sR0FDUCxNQUFPLEtBQ1AsT0FBUSxLQUNSLEtBQU0sQ0FBQyxDQUNULENBQ0YsRUFDQSxPQUFRNUgsRUFDUixTQUFVQyxFQUNWLFVBQVdsRyxHQUFlQSxHQUFlLENBQUMsRUFBR2lELEVBQW9CLEVBQUdELENBQVMsRUFDN0UsT0FBUWdMLEVBQ1IsT0FBUU0sRUFDUixNQUFPLENBQ0wsV0FBWTdMLEVBQ1osT0FBUUksRUFDUixRQUFTbWpCLENBQ1gsQ0FDRixDQUFDLENBQ0gsQ0FBQyxFQUNILEVBQ0k5RCxJQUFrQixDQUNwQixPQUFRLFVBQWtCLENBQ3hCLE1BQU8sQ0FDTCxLQUFNL00sSUFBYThNLEdBQU0sQ0FDM0IsQ0FDRixFQUNBLE1BQU8sVUFBaUIsQ0FDdEIsTUFBTyxDQUNMLDBCQUEyQixTQUFtQ3RWLEVBQWEsQ0FDekUsT0FBQUEsRUFBWSxhQUFld0gsSUFDM0J4SCxFQUFZLGFBQWV1SSxJQUNwQnZJLENBQ1QsQ0FDRixDQUNGLEVBQ0EsU0FBVSxTQUFrQndaLEVBQWMsQ0FDeENBLEVBQWEsTUFBUSxTQUFVemYsRUFBUSxDQUNyQyxJQUFJMGYsRUFBZTFmLEVBQU8sS0FDeEJyRSxFQUFPK2pCLElBQWlCLE9BQVNwbEIsR0FBV29sQixFQUM1Q0MsRUFBbUIzZixFQUFPLFNBQzFCeUssRUFBV2tWLElBQXFCLE9BQVMsVUFBWSxDQUFDLEVBQUlBLEVBQzVELE9BQU9sUyxJQUFPOVIsRUFBTThPLENBQVEsQ0FDOUIsRUFDQWdWLEVBQWEsK0JBQWlDLFNBQVU5akIsRUFBTXlSLEVBQVUsQ0FDdEUsSUFBSTVOLEVBQVc0TixFQUFTLFNBQ3RCN04sRUFBUzZOLEVBQVMsT0FDbEI5USxFQUFZOFEsRUFBUyxVQUNyQjlGLEVBQVM4RixFQUFTLE9BQ2xCakcsRUFBT2lHLEVBQVMsS0FDaEJ4RixFQUFTd0YsRUFBUyxPQUNsQnZGLEVBQVF1RixFQUFTLE1BQ25CLE9BQU8sSUFBSSxRQUFRLFNBQVVwRSxFQUFTQyxFQUFRLENBQzVDLFFBQVEsSUFBSSxDQUFDRixJQUFTdkosRUFBVUQsQ0FBTSxFQUFHNEgsRUFBSyxTQUFXNEIsSUFBUzVCLEVBQUssU0FBVUEsRUFBSyxNQUFNLEVBQUksUUFBUSxRQUFRLENBQzlHLE1BQU8sR0FDUCxNQUFPLElBQ1AsT0FBUSxJQUNSLEtBQU0sQ0FBQyxDQUNULENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFVMUssRUFBTSxDQUN4QixJQUFJVSxFQUFRNUQsR0FBZWtELEVBQU0sQ0FBQyxFQUNoQ3lLLEVBQU8vSixFQUFNLENBQUMsRUFDZGdLLEVBQU9oSyxFQUFNLENBQUMsRUFDaEI2TCxFQUFRLENBQUNyTixFQUFNK0wsSUFBc0IsQ0FDbkMsTUFBTyxDQUNMLEtBQU1SLEVBQ04sS0FBTUMsQ0FDUixFQUNBLE9BQVE1SCxFQUNSLFNBQVVDLEVBQ1YsVUFBV2xELEVBQ1gsT0FBUWdMLEVBQ1IsT0FBUU0sRUFDUixNQUFPQyxFQUNQLFVBQVcsRUFDYixDQUFDLENBQUMsQ0FBQyxDQUNMLENBQUMsRUFBRSxNQUFNb0IsQ0FBTSxDQUNqQixDQUFDLENBQ0gsRUFDQXdXLEVBQWEscUJBQXVCLFNBQVVHLEVBQU8sQ0FDbkQsSUFBSXhnQixFQUFXd2dCLEVBQU0sU0FDbkI3akIsRUFBYTZqQixFQUFNLFdBQ25CMVksRUFBTzBZLEVBQU0sS0FDYnRqQixFQUFZc2pCLEVBQU0sVUFDbEJ6akIsRUFBU3lqQixFQUFNLE9BQ2J0WCxFQUFjcE0sR0FBV0MsQ0FBTSxFQUMvQm1NLEVBQVksT0FBUyxJQUN2QnZNLEVBQVcsTUFBV3VNLEdBRXhCLElBQUl1WCxFQUNKLE9BQUl4akIsSUFBc0JDLENBQVMsSUFDakN1akIsRUFBWW5aLEdBQWEsb0NBQXFDLENBQzVELEtBQU1RLEVBQ04sVUFBVzVLLEVBQ1gsZUFBZ0I0SyxFQUFLLE1BQ3JCLFVBQVdBLEVBQUssS0FDbEIsQ0FBQyxHQUVIOUgsRUFBUyxLQUFLeWdCLEdBQWEzWSxFQUFLLElBQUksRUFDN0IsQ0FDTCxTQUFVOUgsRUFDVixXQUFZckQsQ0FDZCxDQUNGLENBQ0YsQ0FDRixFQUVJMGYsSUFBUyxDQUNYLE9BQVEsVUFBa0IsQ0FDeEIsTUFBTyxDQUNMLE1BQU8sU0FBZXFFLEVBQVcsQ0FDL0IsSUFBSTlmLEVBQVMsVUFBVSxPQUFTLEdBQUssVUFBVSxDQUFDLElBQU0sT0FBWSxVQUFVLENBQUMsRUFBSSxDQUFDLEVBQzlFcWYsRUFBa0JyZixFQUFPLFFBQzNCc2YsRUFBVUQsSUFBb0IsT0FBUyxDQUFDLEVBQUlBLEVBQzlDLE9BQU92WSxHQUFZLENBQ2pCLEtBQU0sT0FDUixFQUFHLFVBQVksQ0FDYlAsR0FBVSwyQkFBNEIsQ0FDcEMsVUFBV3VaLEVBQ1gsT0FBUTlmLENBQ1YsQ0FBQyxFQUNELElBQUlaLEVBQVcsQ0FBQyxFQUNoQixPQUFBMGdCLEVBQVUsU0FBVTNaLEVBQU0sQ0FDeEIsTUFBTSxRQUFRQSxDQUFJLEVBQUlBLEVBQUssSUFBSSxTQUFVdE8sRUFBRyxDQUMxQ3VILEVBQVdBLEVBQVMsT0FBT3ZILEVBQUUsUUFBUSxDQUN2QyxDQUFDLEVBQUl1SCxFQUFXQSxFQUFTLE9BQU8rRyxFQUFLLFFBQVEsQ0FDL0MsQ0FBQyxFQUNNLENBQUMsQ0FDTixJQUFLLE9BQ0wsV0FBWSxDQUNWLE1BQU8sQ0FBQyxHQUFHLE9BQU9qSSxHQUFPLFVBQVcsU0FBUyxDQUFDLEVBQUUsT0FBTzFFLEdBQW1COGxCLENBQU8sQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUM5RixFQUNBLFNBQVVsZ0IsQ0FDWixDQUFDLENBQ0gsQ0FBQyxDQUNILENBQ0YsQ0FDRixDQUNGLEVBRUlzYyxJQUFnQixDQUNsQixPQUFRLFVBQWtCLENBQ3hCLE1BQU8sQ0FDTCxRQUFTLFNBQWlCeFQsRUFBUyxDQUNqQyxJQUFJbEksRUFBUyxVQUFVLE9BQVMsR0FBSyxVQUFVLENBQUMsSUFBTSxPQUFZLFVBQVUsQ0FBQyxFQUFJLENBQUMsRUFDOUUrZixFQUFnQi9mLEVBQU8sTUFDekJnZ0IsRUFBUUQsSUFBa0IsT0FBUyxLQUFPQSxFQUMxQ1YsRUFBa0JyZixFQUFPLFFBQ3pCc2YsRUFBVUQsSUFBb0IsT0FBUyxDQUFDLEVBQUlBLEVBQzVDRSxFQUFxQnZmLEVBQU8sV0FDNUJqRSxFQUFhd2pCLElBQXVCLE9BQVMsQ0FBQyxFQUFJQSxFQUNsREMsRUFBaUJ4ZixFQUFPLE9BQ3hCN0QsRUFBU3FqQixJQUFtQixPQUFTLENBQUMsRUFBSUEsRUFDNUMsT0FBTzFZLEdBQVksQ0FDakIsS0FBTSxVQUNOLFFBQVNvQixDQUNYLEVBQUcsVUFBWSxDQUNiLE9BQUEzQixHQUFVLDJCQUE0QixDQUNwQyxRQUFTMkIsRUFDVCxPQUFRbEksQ0FDVixDQUFDLEVBQ011SSxJQUEwQixDQUMvQixRQUFTTCxFQUFRLFNBQVMsRUFDMUIsTUFBTzhYLEVBQ1AsTUFBTyxDQUNMLFdBQVlqa0IsRUFDWixPQUFRSSxFQUNSLFFBQVMsQ0FBQyxHQUFHLE9BQU8rQixHQUFPLFVBQVcsaUJBQWlCLENBQUMsRUFBRSxPQUFPMUUsR0FBbUI4bEIsQ0FBTyxDQUFDLENBQzlGLENBQ0YsQ0FBQyxDQUNILENBQUMsQ0FDSCxDQUNGLENBQ0YsQ0FDRixFQUVJM0QsSUFBYSxDQUNmLE9BQVEsVUFBa0IsQ0FDeEIsTUFBTyxDQUNMLEtBQU0sU0FBY3pULEVBQVMsQ0FDM0IsSUFBSWxJLEVBQVMsVUFBVSxPQUFTLEdBQUssVUFBVSxDQUFDLElBQU0sT0FBWSxVQUFVLENBQUMsRUFBSSxDQUFDLEVBQzlFaWYsRUFBb0JqZixFQUFPLFVBQzdCMUQsRUFBWTJpQixJQUFzQixPQUFTMWlCLEdBQXVCMGlCLEVBQ2xFSSxFQUFrQnJmLEVBQU8sUUFDekJzZixFQUFVRCxJQUFvQixPQUFTLENBQUMsRUFBSUEsRUFDNUNFLEVBQXFCdmYsRUFBTyxXQUM1QmpFLEVBQWF3akIsSUFBdUIsT0FBUyxDQUFDLEVBQUlBLEVBQ2xEQyxFQUFpQnhmLEVBQU8sT0FDeEI3RCxFQUFTcWpCLElBQW1CLE9BQVMsQ0FBQyxFQUFJQSxFQUM1QyxPQUFPMVksR0FBWSxDQUNqQixLQUFNLE9BQ04sUUFBU29CLENBQ1gsRUFBRyxVQUFZLENBQ2IsT0FBQTNCLEdBQVUsMkJBQTRCLENBQ3BDLFFBQVMyQixFQUNULE9BQVFsSSxDQUNWLENBQUMsRUFDTW9JLElBQXVCLENBQzVCLFFBQVNGLEVBQ1QsVUFBVzVPLEdBQWVBLEdBQWUsQ0FBQyxFQUFHaUQsRUFBb0IsRUFBR0QsQ0FBUyxFQUM3RSxNQUFPLENBQ0wsV0FBWVAsRUFDWixPQUFRSSxFQUNSLFFBQVMsQ0FBQyxHQUFHLE9BQU8rQixHQUFPLFVBQVcsY0FBYyxDQUFDLEVBQUUsT0FBTzFFLEdBQW1COGxCLENBQU8sQ0FBQyxDQUMzRixDQUNGLENBQUMsQ0FDSCxDQUFDLENBQ0gsQ0FDRixDQUNGLEVBQ0EsU0FBVSxTQUFrQkcsRUFBYyxDQUN4Q0EsRUFBYSxtQkFBcUIsU0FBVTlqQixFQUFNeVIsRUFBVSxDQUMxRCxJQUFJOVEsRUFBWThRLEVBQVMsVUFDdkJ2RixFQUFRdUYsRUFBUyxNQUNmL1AsRUFBUSxLQUNSRyxFQUFTLEtBQ2IsR0FBSUcsSUFBTyxDQUNULElBQUlzaUIsRUFBbUIsU0FBUyxpQkFBaUJ0a0IsQ0FBSSxFQUFFLFNBQVUsRUFBRSxFQUMvRHVrQixFQUFxQnZrQixFQUFLLHNCQUFzQixFQUNwRDBCLEVBQVE2aUIsRUFBbUIsTUFBUUQsRUFDbkN6aUIsRUFBUzBpQixFQUFtQixPQUFTRCxDQUN2QyxDQUNBLE9BQU8sUUFBUSxRQUFRLENBQUN0a0IsRUFBTXlNLElBQXVCLENBQ25ELFFBQVN6TSxFQUFLLFVBQ2QsTUFBTzBCLEVBQ1AsT0FBUUcsRUFDUixVQUFXbEIsRUFDWCxNQUFPdUwsRUFDUCxVQUFXLEVBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FDTCxDQUNGLENBQ0YsRUFFSWtILElBQXdCLElBQUksT0FBTyxJQUFNLElBQUksRUFDN0NLLElBQTBCLENBQUMsUUFBUyxPQUFPLEVBQzNDd00sSUFBZ0N0aUIsR0FBZUEsR0FBZUEsR0FBZUEsR0FBZSxDQUFDLEVBQUcsQ0FDbEcsWUFBYSxDQUNYLE9BQVEsTUFDUixJQUFLLEtBQ1AsQ0FDRixDQUFDLEVBQUcyYixHQUFFLEVBQUdrRSxHQUFFLEVBQUd6RCxHQUFFLEVBQ1o5RixJQUErQixPQUFPLEtBQUtnTSxHQUE2QixFQUFFLE9BQU8sU0FBVTVmLEVBQUsrSSxFQUFLLENBQ3ZHLE9BQUEvSSxFQUFJK0ksRUFBSSxZQUFZLENBQUMsRUFBSTZXLElBQThCN1csQ0FBRyxFQUNuRC9JLENBQ1QsRUFBRyxDQUFDLENBQUMsRUFDRDZULElBQThCLE9BQU8sS0FBS0QsR0FBNEIsRUFBRSxPQUFPLFNBQVU1VCxFQUFLdVQsRUFBWSxDQUM1RyxJQUFJNFEsRUFBVXZRLElBQTZCTCxDQUFVLEVBQ3JELE9BQUF2VCxFQUFJdVQsQ0FBVSxFQUFJNFEsRUFBUSxHQUFHLEdBQUszbUIsR0FBbUIsT0FBTyxRQUFRMm1CLENBQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQzNFbmtCLENBQ1QsRUFBRyxDQUFDLENBQUMsRUFpSEQ2ZixJQUFtQixTQUEwQjNKLEVBQVUsQ0FDekQsTUFBTyxDQUFDLENBQUNBLEdBQVltSCxJQUFnQixLQUFLLFNBQVUrRyxFQUFnQixDQUNsRSxPQUFPbE8sRUFBUyxTQUFTa08sQ0FBYyxDQUN6QyxDQUFDLENBQ0gsRUFJSXJPLElBQXlCLFNBQWdDc08sRUFBYyxDQUN6RSxHQUFJLENBQUNBLEVBQWMsTUFBTyxDQUFDLEVBQzNCLElBQUk5TyxFQUFjLElBQUksSUFDbEIrTyxFQUFZRCxFQUFhLE1BQU0sZUFBZSxFQUFFLElBQUksU0FBVUUsRUFBTSxDQUN0RSxPQUFPQSxFQUFLLEtBQUssQ0FDbkIsQ0FBQyxFQUNERCxFQUFZQSxFQUFVLFFBQVEsU0FBVXBPLEVBQVUsQ0FDaEQsT0FBT0EsRUFBUyxTQUFTLEdBQUcsRUFBSUEsRUFBV0EsRUFBUyxNQUFNLEdBQUcsRUFBRSxJQUFJLFNBQVVxTyxFQUFNLENBQ2pGLE9BQU9BLEVBQUssS0FBSyxDQUNuQixDQUFDLENBQ0gsQ0FBQyxFQUNELElBQUlDLEVBQVlob0IsR0FBMkI4bkIsQ0FBUyxFQUNsREcsRUFDRixHQUFJLENBQ0YsSUFBS0QsRUFBVSxFQUFFLEVBQUcsRUFBRUMsRUFBUUQsRUFBVSxFQUFFLEdBQUcsTUFBTyxDQUNsRCxJQUFJdE8sRUFBV3VPLEVBQU0sTUFDckIsR0FBSTVFLElBQWlCM0osQ0FBUSxFQUFHLENBRTlCLElBQUl3TyxFQUF3QnJILElBQWdCLE9BQU8sU0FBVXJkLEVBQUtva0IsRUFBZ0IsQ0FDaEYsT0FBT3BrQixFQUFJLFFBQVFva0IsRUFBZ0IsRUFBRSxDQUN2QyxFQUFHbE8sQ0FBUSxFQUNQd08sSUFBMEIsSUFBTUEsSUFBMEIsS0FDNURuUCxFQUFZLElBQUltUCxDQUFxQixDQUV6QyxDQUNGLENBQ0YsT0FBU3ZPLEVBQUssQ0FDWnFPLEVBQVUsRUFBRXJPLENBQUcsQ0FDakIsUUFBRSxDQUNBcU8sRUFBVSxFQUFFLENBQ2QsQ0FDQSxPQUFPalAsQ0FDVCxFQTBFSXVLLElBQWlCLENBQ25CLE1BQU8sVUFBaUIsQ0FDdEIsTUFBTyxDQUNMLDBCQUEyQixTQUFtQzdWLEVBQWEsQ0FDekUsT0FBQUEsRUFBWSx1QkFBeUJtTCxJQUM5Qm5MLENBQ1QsQ0FDRixDQUNGLEVBQ0EsU0FBVSxTQUFrQlYsRUFBVyxDQUNyQ0EsRUFBVSxtQkFBcUIsU0FBVXZGLEVBQVEsQ0FDL0MsSUFBSTBmLEVBQWUxZixFQUFPLEtBQ3hCckUsRUFBTytqQixJQUFpQixPQUFTcGxCLEdBQVdvbEIsRUFDMUN4aEIsR0FBTyxzQkFDVGtULElBQXFCelYsQ0FBSSxDQUU3QixDQUNGLENBQ0YsRUFFSW9nQixJQUFhLEdBQ2JDLElBQXFCLENBQ3ZCLE9BQVEsVUFBa0IsQ0FDeEIsTUFBTyxDQUNMLElBQUssQ0FDSCxRQUFTLFVBQW1CLENBQzFCL1EsSUFBbUIsRUFDbkI4USxJQUFhLEVBQ2YsQ0FDRixDQUNGLENBQ0YsRUFDQSxNQUFPLFVBQWlCLENBQ3RCLE1BQU8sQ0FDTCxVQUFXLFVBQXFCLENBQzlCM1EsSUFBUXBGLElBQVcsNEJBQTZCLENBQUMsQ0FBQyxDQUFDLENBQ3JELEVBQ0EsT0FBUSxVQUFrQixDQUN4Qm9HLElBQVcsQ0FDYixFQUNBLE1BQU8sU0FBZXBNLEVBQVEsQ0FDNUIsSUFBSThMLEVBQXVCOUwsRUFBTyxxQkFDOUIrYixJQUNGNVEsSUFBa0IsRUFFbEJDLElBQVFwRixJQUFXLDRCQUE2QixDQUM5QyxxQkFBc0I4RixDQUN4QixDQUFDLENBQUMsQ0FFTixDQUNGLENBQ0YsQ0FDRixFQUVJbVEsSUFBdUIsU0FBOEIwRSxFQUFpQixDQUN4RSxJQUFJcmtCLEVBQVksQ0FDZCxLQUFNLEdBQ04sRUFBRyxFQUNILEVBQUcsRUFDSCxNQUFPLEdBQ1AsTUFBTyxHQUNQLE9BQVEsQ0FDVixFQUNBLE9BQU9xa0IsRUFBZ0IsWUFBWSxFQUFFLE1BQU0sR0FBRyxFQUFFLE9BQU8sU0FBVTNrQixFQUFLakUsRUFBRyxDQUN2RSxJQUFJNEksRUFBUTVJLEVBQUUsWUFBWSxFQUFFLE1BQU0sR0FBRyxFQUNqQzZvQixFQUFRamdCLEVBQU0sQ0FBQyxFQUNmbUMsRUFBT25DLEVBQU0sTUFBTSxDQUFDLEVBQUUsS0FBSyxHQUFHLEVBQ2xDLEdBQUlpZ0IsR0FBUzlkLElBQVMsSUFDcEIsT0FBQTlHLEVBQUksTUFBUSxHQUNMQSxFQUVULEdBQUk0a0IsR0FBUzlkLElBQVMsSUFDcEIsT0FBQTlHLEVBQUksTUFBUSxHQUNMQSxFQUdULEdBREE4RyxFQUFPLFdBQVdBLENBQUksRUFDbEIsTUFBTUEsQ0FBSSxFQUNaLE9BQU85RyxFQUVULE9BQVE0a0IsRUFBTyxDQUNiLElBQUssT0FDSDVrQixFQUFJLEtBQU9BLEVBQUksS0FBTzhHLEVBQ3RCLE1BQ0YsSUFBSyxTQUNIOUcsRUFBSSxLQUFPQSxFQUFJLEtBQU84RyxFQUN0QixNQUNGLElBQUssT0FDSDlHLEVBQUksRUFBSUEsRUFBSSxFQUFJOEcsRUFDaEIsTUFDRixJQUFLLFFBQ0g5RyxFQUFJLEVBQUlBLEVBQUksRUFBSThHLEVBQ2hCLE1BQ0YsSUFBSyxLQUNIOUcsRUFBSSxFQUFJQSxFQUFJLEVBQUk4RyxFQUNoQixNQUNGLElBQUssT0FDSDlHLEVBQUksRUFBSUEsRUFBSSxFQUFJOEcsRUFDaEIsTUFDRixJQUFLLFNBQ0g5RyxFQUFJLE9BQVNBLEVBQUksT0FBUzhHLEVBQzFCLEtBQ0osQ0FDQSxPQUFPOUcsQ0FDVCxFQUFHTSxDQUFTLENBQ2QsRUFDSTRmLElBQWtCLENBQ3BCLE9BQVEsVUFBa0IsQ0FDeEIsTUFBTyxDQUNMLE1BQU8sQ0FDTCxVQUFXLFNBQW1CeUUsRUFBaUIsQ0FDN0MsT0FBTzFFLElBQXFCMEUsQ0FBZSxDQUM3QyxDQUNGLENBQ0YsQ0FDRixFQUNBLE1BQU8sVUFBaUIsQ0FDdEIsTUFBTyxDQUNMLG9CQUFxQixTQUE2QjFhLEVBQWF0SyxFQUFNLENBQ25FLElBQUlnbEIsRUFBa0JobEIsRUFBSyxhQUFhLG1CQUFtQixFQUMzRCxPQUFJZ2xCLElBQ0YxYSxFQUFZLFVBQVlnVyxJQUFxQjBFLENBQWUsR0FFdkQxYSxDQUNULENBQ0YsQ0FDRixFQUNBLFNBQVUsU0FBa0JWLEVBQVcsQ0FDckNBLEVBQVUsa0NBQW9DLFNBQVU5SSxFQUFNLENBQzVELElBQUl5SyxFQUFPekssRUFBSyxLQUNkSCxFQUFZRyxFQUFLLFVBQ2pCQyxFQUFpQkQsRUFBSyxlQUN0QkUsRUFBWUYsRUFBSyxVQUNmRyxFQUFRLENBQ1YsVUFBVyxhQUFhLE9BQU9GLEVBQWlCLEVBQUcsT0FBTyxDQUM1RCxFQUNJRyxFQUFpQixhQUFhLE9BQU9QLEVBQVUsRUFBSSxHQUFJLElBQUksRUFBRSxPQUFPQSxFQUFVLEVBQUksR0FBSSxJQUFJLEVBQzFGUSxFQUFhLFNBQVMsT0FBT1IsRUFBVSxLQUFPLElBQU1BLEVBQVUsTUFBUSxHQUFLLEdBQUksSUFBSSxFQUFFLE9BQU9BLEVBQVUsS0FBTyxJQUFNQSxFQUFVLE1BQVEsR0FBSyxHQUFJLElBQUksRUFDbEpTLEVBQWMsVUFBVSxPQUFPVCxFQUFVLE9BQVEsT0FBTyxFQUN4RFUsRUFBUSxDQUNWLFVBQVcsR0FBRyxPQUFPSCxFQUFnQixHQUFHLEVBQUUsT0FBT0MsRUFBWSxHQUFHLEVBQUUsT0FBT0MsQ0FBVyxDQUN0RixFQUNJRSxFQUFPLENBQ1QsVUFBVyxhQUFhLE9BQU9OLEVBQVksRUFBSSxHQUFJLFFBQVEsQ0FDN0QsRUFDSTBWLEVBQWEsQ0FDZixNQUFPelYsRUFDUCxNQUFPSSxFQUNQLEtBQU1DLENBQ1IsRUFDQSxNQUFPLENBQ0wsSUFBSyxJQUNMLFdBQVkzRCxHQUFlLENBQUMsRUFBRytZLEVBQVcsS0FBSyxFQUMvQyxTQUFVLENBQUMsQ0FDVCxJQUFLLElBQ0wsV0FBWS9ZLEdBQWUsQ0FBQyxFQUFHK1ksRUFBVyxLQUFLLEVBQy9DLFNBQVUsQ0FBQyxDQUNULElBQUtuTCxFQUFLLEtBQUssSUFDZixTQUFVQSxFQUFLLEtBQUssU0FDcEIsV0FBWTVOLEdBQWVBLEdBQWUsQ0FBQyxFQUFHNE4sRUFBSyxLQUFLLFVBQVUsRUFBR21MLEVBQVcsSUFBSSxDQUN0RixDQUFDLENBQ0gsQ0FBQyxDQUNILENBQ0YsQ0FDRixDQUNGLEVBRUk4SixJQUFZLENBQ2QsRUFBRyxFQUNILEVBQUcsRUFDSCxNQUFPLE9BQ1AsT0FBUSxNQUNWLEVBZUlDLElBQVEsQ0FDVixNQUFPLFVBQWlCLENBQ3RCLE1BQU8sQ0FDTCxvQkFBcUIsU0FBNkJuVyxFQUFhdEssRUFBTSxDQUNuRSxJQUFJa2xCLEVBQVdsbEIsRUFBSyxhQUFhLGNBQWMsRUFDM0N3TCxFQUFRMFosRUFBa0MxZCxHQUFpQjBkLEVBQVMsTUFBTSxHQUFHLEVBQUUsSUFBSSxTQUFVM25CLEVBQUcsQ0FDbEcsT0FBT0EsRUFBRSxLQUFLLENBQ2hCLENBQUMsQ0FBQyxFQUZxQjZYLElBQW1CLEVBRzFDLE9BQUs1SixFQUFLLFNBQ1JBLEVBQUssT0FBU3pGLEdBQXVCLEdBRXZDdUUsRUFBWSxLQUFPa0IsRUFDbkJsQixFQUFZLE9BQVN0SyxFQUFLLGFBQWEsaUJBQWlCLEVBQ2pEc0ssQ0FDVCxDQUNGLENBQ0YsRUFDQSxTQUFVLFNBQWtCVixFQUFXLENBQ3JDQSxFQUFVLHFCQUF1QixTQUFVOUksRUFBTSxDQUMvQyxJQUFJMkMsRUFBVzNDLEVBQUssU0FDbEJWLEVBQWFVLEVBQUssV0FDbEJ5SyxFQUFPekssRUFBSyxLQUNaMEssRUFBTzFLLEVBQUssS0FDWnFrQixFQUFpQnJrQixFQUFLLE9BQ3RCSCxFQUFZRyxFQUFLLFVBQ2Zza0IsRUFBWTdaLEVBQUssTUFDbkI4WixFQUFXOVosRUFBSyxLQUNkK1osRUFBWTlaLEVBQUssTUFDbkIrWixFQUFXL1osRUFBSyxLQUNkZ2EsRUFBUTNrQixJQUFnQixDQUMxQixVQUFXRixFQUNYLGVBQWdCMmtCLEVBQ2hCLFVBQVdGLENBQ2IsQ0FBQyxFQUNHSyxFQUFXLENBQ2IsSUFBSyxPQUNMLFdBQVk5bkIsR0FBZUEsR0FBZSxDQUFDLEVBQUc2aUIsR0FBUyxFQUFHLENBQUMsRUFBRyxDQUM1RCxLQUFNLE9BQ1IsQ0FBQyxDQUNILEVBQ0lrRixFQUE4QkwsRUFBUyxTQUFXLENBQ3BELFNBQVVBLEVBQVMsU0FBUyxJQUFJek8sR0FBUyxDQUMzQyxFQUFJLENBQUMsRUFDRCtPLEVBQWlCLENBQ25CLElBQUssSUFDTCxXQUFZaG9CLEdBQWUsQ0FBQyxFQUFHNm5CLEVBQU0sS0FBSyxFQUMxQyxTQUFVLENBQUM1TyxJQUFValosR0FBZSxDQUNsQyxJQUFLMG5CLEVBQVMsSUFDZCxXQUFZMW5CLEdBQWVBLEdBQWUsQ0FBQyxFQUFHMG5CLEVBQVMsVUFBVSxFQUFHRyxFQUFNLElBQUksQ0FDaEYsRUFBR0UsQ0FBMkIsQ0FBQyxDQUFDLENBQ2xDLEVBQ0lFLEVBQWlCLENBQ25CLElBQUssSUFDTCxXQUFZam9CLEdBQWUsQ0FBQyxFQUFHNm5CLEVBQU0sS0FBSyxFQUMxQyxTQUFVLENBQUNHLENBQWMsQ0FDM0IsRUFDSTFaLEVBQVMsUUFBUSxPQUFPa1osR0FBa0IxbEIsSUFBYSxDQUFDLEVBQ3hEb21CLEVBQVMsUUFBUSxPQUFPVixHQUFrQjFsQixJQUFhLENBQUMsRUFDeERxbUIsRUFBVSxDQUNaLElBQUssT0FDTCxXQUFZbm9CLEdBQWVBLEdBQWUsQ0FBQyxFQUFHNmlCLEdBQVMsRUFBRyxDQUFDLEVBQUcsQ0FDNUQsR0FBSXZVLEVBQ0osVUFBVyxpQkFDWCxpQkFBa0IsZ0JBQ3BCLENBQUMsRUFDRCxTQUFVLENBQUN3WixFQUFVRyxDQUFjLENBQ3JDLEVBQ0lHLEVBQU8sQ0FDVCxJQUFLLE9BQ0wsU0FBVSxDQUFDLENBQ1QsSUFBSyxXQUNMLFdBQVksQ0FDVixHQUFJRixDQUNOLEVBQ0EsU0FBVS9PLElBQVF5TyxDQUFRLENBQzVCLEVBQUdPLENBQU8sQ0FDWixFQUNBLE9BQUFyaUIsRUFBUyxLQUFLc2lCLEVBQU0sQ0FDbEIsSUFBSyxPQUNMLFdBQVlwb0IsR0FBZSxDQUN6QixLQUFRLGVBQ1IsWUFBYSxRQUFRLE9BQU9rb0IsRUFBUSxHQUFHLEVBQ3ZDLEtBQVEsUUFBUSxPQUFPNVosRUFBUSxHQUFHLENBQ3BDLEVBQUd1VSxHQUFTLENBQ2QsQ0FBQyxFQUNNLENBQ0wsU0FBVS9jLEVBQ1YsV0FBWXJELENBQ2QsQ0FDRixDQUNGLENBQ0YsRUFFSXNnQixJQUF1QixDQUN6QixTQUFVLFNBQWtCOVcsRUFBVyxDQUNyQyxJQUFJb2MsRUFBZSxHQUNmN1csR0FBTyxhQUNUNlcsRUFBZTdXLEdBQU8sV0FBVyxrQ0FBa0MsRUFBRSxTQUV2RXZGLEVBQVUsb0JBQXNCLFVBQVksQ0FDMUMsSUFBSXFjLEVBQVksQ0FBQyxFQUNiQyxFQUFPLENBQ1QsS0FBTSxjQUNSLEVBQ0lDLEVBQWlCLENBQ25CLGNBQWUsTUFDZixZQUFhLGFBQ2IsSUFBSyxJQUNQLEVBR0FGLEVBQVUsS0FBSyxDQUNiLElBQUssT0FDTCxXQUFZdG9CLEdBQWVBLEdBQWUsQ0FBQyxFQUFHdW9CLENBQUksRUFBRyxDQUFDLEVBQUcsQ0FDdkQsRUFBRyxrNENBQ0wsQ0FBQyxDQUNILENBQUMsRUFDRCxJQUFJRSxFQUFrQnpvQixHQUFlQSxHQUFlLENBQUMsRUFBR3dvQixDQUFjLEVBQUcsQ0FBQyxFQUFHLENBQzNFLGNBQWUsU0FDakIsQ0FBQyxFQUNHRSxFQUFNLENBQ1IsSUFBSyxTQUNMLFdBQVkxb0IsR0FBZUEsR0FBZSxDQUFDLEVBQUd1b0IsQ0FBSSxFQUFHLENBQUMsRUFBRyxDQUN2RCxHQUFJLE1BQ0osR0FBSSxNQUNKLEVBQUcsSUFDTCxDQUFDLEVBQ0QsU0FBVSxDQUFDLENBQ2IsRUFDQSxPQUFLRixHQUNISyxFQUFJLFNBQVMsS0FBSyxDQUNoQixJQUFLLFVBQ0wsV0FBWTFvQixHQUFlQSxHQUFlLENBQUMsRUFBR3dvQixDQUFjLEVBQUcsQ0FBQyxFQUFHLENBQ2pFLGNBQWUsSUFDZixPQUFRLG9CQUNWLENBQUMsQ0FDSCxFQUFHLENBQ0QsSUFBSyxVQUNMLFdBQVl4b0IsR0FBZUEsR0FBZSxDQUFDLEVBQUd5b0IsQ0FBZSxFQUFHLENBQUMsRUFBRyxDQUNsRSxPQUFRLGNBQ1YsQ0FBQyxDQUNILENBQUMsRUFFSEgsRUFBVSxLQUFLSSxDQUFHLEVBQ2xCSixFQUFVLEtBQUssQ0FDYixJQUFLLE9BQ0wsV0FBWXRvQixHQUFlQSxHQUFlLENBQUMsRUFBR3VvQixDQUFJLEVBQUcsQ0FBQyxFQUFHLENBQ3ZELFFBQVMsSUFDVCxFQUFHLHNTQUNMLENBQUMsRUFDRCxTQUFVRixFQUFlLENBQUMsRUFBSSxDQUFDLENBQzdCLElBQUssVUFDTCxXQUFZcm9CLEdBQWVBLEdBQWUsQ0FBQyxFQUFHeW9CLENBQWUsRUFBRyxDQUFDLEVBQUcsQ0FDbEUsT0FBUSxjQUNWLENBQUMsQ0FDSCxDQUFDLENBQ0gsQ0FBQyxFQUNJSixHQUVIQyxFQUFVLEtBQUssQ0FDYixJQUFLLE9BQ0wsV0FBWXRvQixHQUFlQSxHQUFlLENBQUMsRUFBR3VvQixDQUFJLEVBQUcsQ0FBQyxFQUFHLENBQ3ZELFFBQVMsSUFDVCxFQUFHLDZJQUNMLENBQUMsRUFDRCxTQUFVLENBQUMsQ0FDVCxJQUFLLFVBQ0wsV0FBWXZvQixHQUFlQSxHQUFlLENBQUMsRUFBR3lvQixDQUFlLEVBQUcsQ0FBQyxFQUFHLENBQ2xFLE9BQVEsY0FDVixDQUFDLENBQ0gsQ0FBQyxDQUNILENBQUMsRUFFSSxDQUNMLElBQUssSUFDTCxXQUFZLENBQ1YsTUFBTyxTQUNULEVBQ0EsU0FBVUgsQ0FDWixDQUNGLENBQ0YsQ0FDRixFQUVJdEYsSUFBYSxDQUNmLE1BQU8sVUFBaUIsQ0FDdEIsTUFBTyxDQUNMLG9CQUFxQixTQUE2QnJXLEVBQWF0SyxFQUFNLENBQ25FLElBQUlzbUIsRUFBYXRtQixFQUFLLGFBQWEsZ0JBQWdCLEVBQy9DMkwsRUFBUzJhLElBQWUsS0FBTyxHQUFRQSxJQUFlLEdBQUssR0FBT0EsRUFDdEUsT0FBQWhjLEVBQVksT0FBWXFCLEVBQ2pCckIsQ0FDVCxDQUNGLENBQ0YsQ0FDRixFQUVJc1csSUFBVSxDQUFDckMsSUFBV3NCLElBQWlCQyxJQUFRQyxJQUFlQyxJQUFZRyxJQUFnQkUsSUFBb0JFLElBQWlCRSxJQUFPQyxJQUFzQkMsR0FBVSxFQUUxS25YLElBQWdCb1gsSUFBUyxDQUN2QixVQUFXdEIsRUFDYixDQUFDLEVBQ0d1QixJQUFXdkIsR0FBSSxPQUNmd0IsSUFBV3hCLEdBQUksT0FDZnlCLElBQVl6QixHQUFJLFFBQ2hCMEIsSUFBUTFCLEdBQUksSUFDWjJCLElBQVUzQixHQUFJLE1BQ2Q0QixJQUF1QjVCLEdBQUksbUJBQzNCNkIsSUFBVzdCLEdBQUksT0FDZnBiLElBQU9vYixHQUFJLEtBQ1g4QixJQUFROUIsR0FBSSxNQUNaK0IsSUFBTy9CLEdBQUksS0FDWGdDLElBQVVoQyxHQUFJLFVDdmtIbEIsSUFLSWlILElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FD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SUFDQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsR0FLQUMsSUFDQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFLQUMsR0FLQUMsSUFDQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsR0FLQUMsSUFDQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFDQUMsR0FLQUMsSUFLQUMsSUFLQUMsR0FLQUMsSUFDQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsR0FLQUMsSUFDQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsR0FLQUMsSUFDQUMsSUFDQUMsSUFDQUMsR0FLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFDQUMsSUFLQUMsSUFDQUMsR0FLQUMsSUFDQUMsSUFDQUMsSUFDQUMsSUFLQUMsSUFDQUMsR0FLQUMsSUFDQUMsSUFDQUMsSUFLQUMsSUFLQUMsSUFLQUMsSUFDQUMsR0FLQUMsSUFDQUMs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S0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBS0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLEdBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLEdBS0FDLEdBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLEdBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLEdBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLEdBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElBS0FDLEdBS0FDLElBQ0FDLElBQ0FDLElBS0FDLElBS0FDLElBS0FDLElB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QUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxFQUM1QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxFQUM1QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxFQUM1QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLDBDQUFBLENBQTRDLEVBQzFELENBQUMsT0FBUSxDQUFFLEVBQUcsSUFBSyxFQUFHLElBQUssTUFBTyxLQUFNLE9BQVEsS0FBTSxHQUFJLEdBQUEsQ0FBSyxDQUNqRSxRQ1pNQyxjQUFBQSxHQUFxQixDQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLE9BQVEsQ0FBRSxNQUFPLEtBQU0sT0FBUSxLQUFNLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssRUFDL0QsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsRUFDNUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsQ0FDN0IsUUNWTUMsY0FBQUEsR0FBZ0IsQ0FDcEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxRQUFBLENBQVUsRUFDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUs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QUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLENBQzVCLFFDTk1DLGNBQUFBLEdBQTJCLENBQy9CLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLElBQUssRUFBRyxHQUFBLENBQUssRUFDeEMsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxFQUN4QyxDQUFDLFNBQVUsQ0FBRSxHQUFJLElBQUssR0FBSSxJQUFLLEVBQUcsR0FBQSxDQUFLLEVBQ3ZDLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssRUFDekMsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxFQUN6QyxDQUFDLFNBQVUsQ0FBRSxHQUFJLElBQUssR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLENBQzFDLFFDUE1DLGNBQUFBLEdBQXlCLENBQzdCLENBQUMsU0FBVSxDQUFFLEdBQUksSUFBSyxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssRUFDeEMsQ0FBQyxTQUFVLENBQUUsR0FBSSxJQUFLLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxFQUN2QyxDQUFDLFNBQVUsQ0FBRSxHQUFJLElBQUssR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLEVBQ3hDLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssRUFDekMsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxFQUN4QyxDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLENBQzNDLFFDUE1DLGNBQUFBLEdBQWlCLENBQ3JCLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLElBQUssRUFBRyxHQUFBLENBQUssRUFDeEMsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksSUFBSyxFQUFHLEdBQUEs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QUFRLENBQUUsRUFBRyxRQUFBLENBQVUsRUFDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxRQUFBLENBQVUsRUFDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsQ0FDM0IsUUNoQk1DLGNBQUFBLEdBQWlDLENBQ3JDLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsc0JBQUEsQ0FBd0IsRUFDdEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxxQ0FBQSxDQUF1QyxFQUNyRCxDQUFDLE9BQVEsQ0FBRSxFQUFHLFFBQUEsQ0FBVSxFQUN4QixDQUFDLE9BQVEsQ0FBRSxFQUFHLHFCQUFBLENBQXVCLEVBQ3JDLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLENBQzNCLFFDVk1DLGNBQUFBLEdBQXlCLENBQzdCLENBQUMsT0FBUSxDQUFFLEVBQUcsb0JBQUEsQ0FBc0IsRUFDcEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxxQkFBQSxDQUF1QixFQUNyQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHNCQUFBLENBQXdCLEVBQ3RDLENBQUMsT0FBUSxDQUFFLEVBQUcscUJBQUEsQ0FBdUIsRUFDckMsQ0FBQyxPQUFRLENBQUUsRUFBRyxRQUFBLENBQVUsRUFDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxRQUFBLENBQVUsRUFDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksQ0FDNUIsUUNiTUMsY0FBQUEsR0FBeUIsQ0FDN0IsQ0FBQyxPQUFRLENBQUUsTUFBTyxLQUFNLE9BQVEsS0FBTSxFQUFHLElBQUssRUFBRyxJQUFLLEdBQUksSUFBSyxHQUFJLEdBQUEsQ0FBSyxFQUN4RSxDQUFDLE9BQVEsQ0FBRSxHQUFJLElBQUssR0FBSSxLQUFNLEdBQUksS0FBTSxHQUFJLElBQUEsQ0FBTSxFQUNsRCxDQUFDLE9BQVEsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEdBQUksS0FBTSxHQUFJLElBQUEsQ0FBTSxFQUNuRCxDQUFDLE9BQVEsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEdBQUksSUFBSyxHQUFJLEdBQUEsQ0FBSyxDQUNuRCxRQ0xNQyxjQUFBQSxHQUFzQixDQUMxQixDQUFDLE9BQVEsQ0FBRSxNQUFPLEtBQU0sT0FBUSxLQUFNLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssRUFDL0QsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxDQUMzQyxRQ0hNQyxjQUFBQSxHQUF3QixDQUM1QixDQUFDLE9BQVEsQ0FBRSxNQUFPLEtBQU0sT0FBUSxLQUFNLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssRUFDL0QsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksQ0FDNUIsUUNKTUMsY0FBQUEsR0FBMkIsQ0FDL0IsQ0FBQyxPQUFRLENBQUUsTUFBTyxLQUFNLE9BQVEsS0FBTSxFQUFHLElBQUssRUFBRyxJQUFLLEdBQUksSUFBSyxHQUFJLEdBQUEsQ0FBSyxFQUN4RSxDQUFDLE9BQVEsQ0FBRSxFQUFHLDRDQUFB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QUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLENBQzVCLFFDSk1DLGNBQUFBLEdBQTRCLENBQ2hDLENBQUMsT0FBUSxDQUFFLEVBQUcseUNBQUEsQ0FBMkMsRUFDekQsQ0FBQyxPQUFRLENBQUUsRUFBRywwQ0FBQSxDQUE0QyxFQUMxRCxDQUFDLE9BQVEsQ0FBRSxFQUFHLDBDQUFBLENBQTRDLEVBQzFELENBQUMsT0FBUSxDQUFFLEVBQUcsc0NBQUEsQ0FBd0MsRUFDdEQsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsQ0FDM0IsUUNOTUMsY0FBQUEsR0FBdUIsQ0FDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRywyQ0FBQSxDQUE2QyxFQUMzRCxDQUFDLE9BQVEsQ0FBRSxFQUFHLDBCQUFBLENBQTRCLEVBQzFDLENBQUMsT0FBUSxDQUFFLEVBQUcsd0JBQUEsQ0FBMEIsQ0FDMUMsUUNKTUMsY0FBQUEsR0FBc0IsQ0FDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsQ0FDM0IsUUNMTUMsY0FBQUEsR0FBd0IsQ0FDNUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRywyQ0FBQSxDQUE2QyxFQUMzRCxDQUFDLE9BQVEsQ0FBRSxFQUFHLGVBQUEsQ0FBaUIsQ0FDakMsUUNOTUMsY0FBQUEsR0FBdUIsQ0FDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxFQUN6QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLGdCQUFBLENBQWtCLENBQ2xDLFFDTk1DLGNBQUFBLEdBQXVCLENBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcscUJBQUEsQ0FBdUIsRUFDckMsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxzQkFBQSxDQUF3QixFQUN0QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFFBQUEsQ0FBVSxFQUN4QixDQUFDLE9BQVEsQ0FBRSxFQUFHLHFCQUFBLENBQXVCLEVBQ3JDLENBQUMsT0FBUSxDQUFFLEVBQUcsb0JBQUEsQ0FBc0IsRUFDcEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxRQUFBLENBQVUsRUFDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxRQUFBLENBQVUsQ0FDMUIsUUNoQk1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQUMsT0FBUSxDQUFFLEVBQUcsZUFBQSxDQUFpQixFQUMvQixDQUFDLE9BQVEsQ0FBRSxFQUFHLGlCQUFBLENBQW1CLEVBQ2pDLENBQUMsT0FBUSxDQUFFLEVBQUcsdUJBQUEsQ0FBeUIsRUFDdkMsQ0FBQyxPQUFRLENBQUUsRUFBRyx1QkFBQSxDQUF5QixFQUN2QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLGVBQUEsQ0FBaUIsRUFDL0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxpQkFBQSxDQUFtQixFQUNqQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDBDQUFBLENBQTRDLEVBQzFELENBQUMsT0FBUSxDQUFFLEVBQUcsMkNBQUEsQ0FBNkMsQ0FDN0QsUUNWTUMsY0FBQUEsR0FBcUIsQ0FDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxnQkFBQSxDQUFrQixFQUNoQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDZCQUFBLENBQStCLEVBQzdDLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLENBQzNCLFFDTE1DLGNBQUFBLEdBQWlDLENBQ3JDLENBQUMsT0FBUSxDQUFFLEVBQUcsc0JBQUEsQ0FBd0IsRUFDdEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxvQkFBQSxDQUFzQixFQUNwQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLGVBQUEsQ0FBaUIsRUFDL0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxnQkFBQSxDQUFrQixFQUNoQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDBDQUFBLENBQTRDLEVBQzFELENBQUMsT0FBUSxDQUFFLEVBQUcsa0JBQUEsQ0FBb0IsRUFDbEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxpQkFBQSxDQUFtQixFQUNqQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxDQUM5QixRQ1RNQyxjQUFBQSxHQUEyQixDQUMvQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDZCQUFBLENBQStCLEVBQzdDLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsMENBQUEsQ0FBNEMsRUFDMUQsQ0FBQyxPQUFRLENBQUUsRUFBRyxzQkFBQSxDQUF3QixFQUN0QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHVCQUFBLENBQXlCLENBQ3pDLFFDUE1DLGNBQUFBLEdBQXdCLENBQUMsQ0FBQyxPQUFRLENBQUUsRUFBRyw0Q0FBQSxDQUE4QyxDQUFDLFFDQXRGQyxjQUFBQSxHQUF1QixDQUMzQixDQUNFLE9BQ0EsQ0FDRSxFQUFHLHlKQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxDQUM1QixRQ1JNQyxjQUFBQSxHQUFxQixDQUN6QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLDBKQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxDQUM1QixRQ1JNQyxjQUFBQSxHQUF3QixDQUM1QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLHVHQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLGVBQUEsQ0FBaUIsQ0FDakMsUUNSTUMsY0FBQUEsR0FBd0IsQ0FDNUIsQ0FDRSxPQUNBLENBQ0UsRUFBRyx1R0FBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsQ0FDM0IsUUNSTUMsY0FBQUEsR0FBMEIsQ0FDOUIsQ0FDRSxPQUNBLENBQ0UsRUFBRyx1R0FBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsQ0FDOUIsUUNWTUMsY0FBQUEsR0FBdUIsQ0FDM0IsQ0FDRSxPQUNBLENBQ0UsRUFBRyx1R0FBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsQ0FDM0IsUUNUTUMsY0FBQUEsR0FBd0IsQ0FDNUIsQ0FDRSxPQUNBLENBQ0UsRUFBRyx1R0FBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRyxlQUFBLENBQWlCLENBQ2pDLFFDUk1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQ0UsT0FDQSxDQUNFLEVBQUcsdUdBQUEsQ0FDTCxFQUVGLENBQUMsT0FBUSxDQUFFLEVBQUcsZUFBQSxDQUFpQixFQUMvQixDQUFDLE9BQVEsQ0FBRSxFQUFHLGNBQUEsQ0FBZ0IsQ0FDaEMsUUNUTUMsY0FBQUEsR0FBbUIsQ0FDdkIsQ0FDRSxPQUNBLENBQ0UsRUFBRyx1R0FBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksQ0FDNUIsUUNWTUMsY0FBQUEsR0FBeUIsQ0FDN0IsQ0FBQyxPQUFRLENBQUUsRUFBRywwQ0FBQSxDQUE0QyxFQUMxRCxDQUFDLE9BQVEsQ0FBRSxFQUFHLGlCQUFBLENBQW1CLEVBQ2pDLENBQUMsT0FBUSxDQUFFLEVBQUcsOENBQUEsQ0FBZ0QsRUFDOUQsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxJQUFLLEVBQUcsSUFBSyxNQUFPLEtBQU0sT0FBUSxLQUFNLEdBQUksR0FBQSxDQUFLLENBQ2pFLFFDUk1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQUMsT0FBUSxDQUFFLEVBQUcsOENBQUEsQ0FBZ0QsRUFDOUQsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxJQUFLLEVBQUcsSUFBSyxNQUFPLEtBQU0sT0FBUSxLQUFNLEdBQUksR0FBQSxDQUFLLENBQ2pFLFFDTk1DLGNBQUFBLEdBQXVCLENBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsNkNBQUEsQ0FBK0MsRUFDN0QsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsQ0FDN0IsUUNMTUMsY0FBQUEsR0FBcUIsQ0FDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyw2Q0FBQSxDQUErQyxFQUM3RCxDQUFDLE9BQVEsQ0FBRSxFQUFHLDZDQUFBLENBQStDLEVBQzdELENBQUMsT0FBUSxDQUFFLEVBQUcsWUFBQSxDQUFjLEVBQzVCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLENBQzdCLFFDTk1DLGNBQUFBLEdBQWtCLENBQ3RCLENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxJQUFLLEdBQUksR0FBQSxDQUFLLEVBQ2pELENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxLQUFNLEdBQUksSUFBQSxDQUFNLEVBQ25ELENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssQ0FDM0MsUUNKTUMsY0FBQUEsR0FBdUIsQ0FDM0IsQ0FBQyxTQUFVLENBQUUsR0FBSSxJQUFLLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxFQUN4QyxDQUFDLE9BQVEsQ0FBRSxNQUFPLEtBQU0sT0FBUSxLQUFNLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssQ0FDakUsUUNITUMsY0FBQUEsR0FBd0IsQ0FDNUIsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxFQUN6QyxDQUFDLE9BQVEsQ0FBRSxNQUFPLEtBQU0sT0FBUSxLQUFNLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssQ0FDakUsUUNITUMsY0FBQUEsR0FBbUIsQ0FDdkIsQ0FDRSxPQUNBLENBQ0UsRUFBRywrSEFBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRyx1REFBQSxDQUF5RCxDQUN6RSxRQ1JNQyxjQUFBQSxHQUFxQixDQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUNFLE9BQ0EsQ0FDRSxFQUFHLHVKQUFBLENBQ0wsRUFFRixDQUNFLE9BQ0EsQ0FDRSxFQUFHLDBGQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLGdGQUFBLENBQWtGLENBQ2xHLFFDZk1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQ0UsT0FDQSxDQUNFLEVBQUcsMEhBQUEsQ0FDTCxFQUVGLENBQUMsT0FBUSxDQUFFLEVBQUcsMENBQUEsQ0FBNEMsRUFDMUQsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsQ0FDM0IsUUNYTUMsY0FBQUEsR0FBb0IsQ0FDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksQ0FDNUIsUUNOTUMsY0FBQUEsR0FBa0IsQ0FDdEIsQ0FBQyxVQUFXLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxHQUFJLElBQUssR0FBSSxHQUFBLENBQUssRUFDcEQsQ0FBQyxVQUFXLENBQUUsR0FBSSxLQUFNLEdBQUksT0FBUSxHQUFJLEtBQU0sR0FBSSxLQUFBLENBQU8sQ0FDM0QsUUNITUMsY0FBQUEsR0FBd0IsQ0FDNUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxlQUFBLENBQWlCLEVBQy9CLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsWUFBQSxDQUFjLEVBQzVCLENBQUMsT0FBUSxDQUFFLEVBQUcsd0NBQUEsQ0FBMEMsRUFDeEQsQ0FBQyxPQUFRLENBQUUsRUFBRyxrQ0FBQSxDQUFvQyxDQUNwRCxRQ1BNQyxjQUFBQSxHQUFxQixDQUN6QixDQUFDLE9BQVEsQ0FBRSxNQUFPLEtBQU0sT0FBUSxLQUFNLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssRUFDL0QsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsQ0FDN0IsUUNKTUMsY0FBQUEsR0FBeUIsQ0FDN0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxzRUFBQSxDQUF3RSxFQUN0RixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxDQUM1QixRQ1JNQyxjQUFBQSxHQUFxQixDQUN6QixDQUFDLE9BQVEsQ0FBRSxNQUFPLEtBQU0sT0FBUSxLQUFNLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssRUFDL0QsQ0FBQyxPQUFRLENBQUUsRUFBRyx5Q0FBQSxDQUEyQyxFQUN6RCxDQUFDLE9BQVEsQ0FBRSxFQUFHLDBDQUFBLENBQTRDLENBQzVELFFDSk1DLGNBQUFBLEdBQXdCLENBQzVCLENBQUMsT0FBUSxDQUFFLEVBQUcsaUNBQUEsQ0FBbUMsRUFDakQsQ0FDRSxPQUNBLENBQ0UsRUFBRyxtSEFBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRywrREFBQSxDQUFpRSxFQUMvRSxDQUFDLE9BQVEsQ0FBRSxFQUFHLGdDQUFBLENBQWtDLENBQ2xELFFDVk1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQUMsT0FBUSxDQUFFLEVBQUcsaUVBQUEsQ0FBbUUsRUFDakYsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRywyQkFBQSxDQUE2QixFQUMzQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHdDQUFBLENBQTBDLEVBQ3hELENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssRUFDekMsQ0FBQyxTQUFVLENBQUUsR0FBSSxJQUFLLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxDQUMxQyxRQ1ZNQyxjQUFBQSxHQUE2QixDQUNqQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDhCQUFBLENBQWdDLEVBQzlDLENBQUMsT0FBUSxDQUFFLEVBQUcsaUNBQUEsQ0FBbUMsRUFDakQsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsRUFDNUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsRUFDNUIsQ0FBQyxPQUFRLENBQUUsRUFBRyx5REFBQSxDQUEyRCxFQUN6RSxDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxDQUM5QixRQ1JNQyxjQUFBQSxHQUF1QixDQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLDRCQUFBLENBQThCLEVBQzVDLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsWUFBQSxDQUFjLEVBQzVCLENBQUMsT0FBUSxDQUFFLEVBQUcsNkRBQUEsQ0FBK0QsRUFDN0UsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsQ0FDOUIsUUNQTUMsY0FBQUEsR0FBdUIsQ0FDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsRUFDNUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsQ0FDOUIsUUNSTUMsY0FBQUEsR0FBc0IsQ0FDMUIsQ0FBQyxPQUFRLENBQUUsTUFBTyxLQUFNLE9BQVEsS0FBTSxFQUFHLElBQUssRUFBRyxJQUFLLEdBQUksR0FBQSxDQUFLLEVBQy9ELENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsWUFBQSxDQUFjLEVBQzVCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsWUFBQSxDQUFjLENBQzlCLFFDUk1DLGNBQUFBLEdBQXdCLENBQzVCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsZ0JBQUEsQ0FBa0IsRUFDaEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxrQkFBQSxDQUFvQixFQUNsQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLGlCQUFBLENBQW1CLEVBQ2pDLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssQ0FDM0MsUUNUTUMsY0FBQUEsR0FBbUIsQ0FDdkIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRywwQ0FBQSxDQUE0QyxFQUMxRCxDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLHdDQUFBLENBQTBDLENBQzFELFFDTk1DLGNBQUFBLEdBQWtCLENBQ3RCLENBQUMsT0FBUSxDQUFFLEVBQUcsMENBQUEsQ0FBNEMsRUFDMUQsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyx3Q0FBQSxDQUEwQyxDQUMxRCxRQ0pNQyxjQUFBQSxHQUEwQixDQUM5QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLDZHQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxDQUM1QixRQ1JNQyxjQUFBQSxHQUFxQixDQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLGtEQUFBLENBQW9ELEVBQ2xFLENBQUMsT0FBUSxDQUFFLEVBQUcsc0VBQUEsQ0FBd0UsRUFDdEYsQ0FDRSxPQUNBLENBQ0UsRUFBRyxxR0FBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRyxrREFBQSxDQUFvRCxDQUNwRSxRQ1ZNQyxjQUFBQSxHQUFxQixDQUN6QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLGdLQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxDQUM3QixRQ1JNQyxjQUFBQSxHQUFrQixDQUN0QixDQUFDLE9BQVEsQ0FBRSxFQUFHLGdFQUFBLENBQWtFLEVBQ2hGLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQ0UsT0FDQSxDQUNFLEVBQUcsOEZBQUEsQ0FDTCxDQUVKLFFDVk1DLGNBQUFBLEdBQW1CLENBQ3ZCLENBQUMsT0FBUSxDQUFFLE1BQU8sS0FBTSxPQUFRLEtBQU0sRUFBRyxJQUFLLEVBQUcsSUFBSyxHQUFJLElBQUssR0FBSSxHQUFBLENBQUssRUFDeEUsQ0FBQyxPQUFRLENBQUUsTUFBTyxJQUFLLE9BQVEsSUFBSyxFQUFHLElBQUssRUFBRyxHQUFBLENBQUssRUFDcEQsQ0FBQyxPQUFRLENBQUUsTUFBTyxJQUFLLE9BQVEsSUFBSyxFQUFHLEtBQU0sRUFBRyxHQUFBLENBQUssQ0FDdkQsUUNKTUMsY0FBQUEsR0FBeUIsQ0FDN0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxhQUFBLENBQWUsRUFDN0IsQ0FBQyxPQUFRLENBQUUsRUFBRyx3QkFBQSxDQUEwQixDQUMxQyxRQ0hNQyxjQUFBQSxHQUEyQixDQUMvQixDQUFDLE9BQVEsQ0FBRSxFQUFHLHNCQUFBLENBQXdCLEVBQ3RDLENBQUMsT0FBUSxDQUFFLEVBQUcsYUFBQSxDQUFlLEVBQzdCLENBQUMsT0FBUSxDQUFFLEVBQUcsbUJBQUEsQ0FBcUIsRUFDbkMsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsQ0FDOUIsUUNMTUMsY0FBQUEsR0FBdUIsQ0FDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyx3QkFBQSxDQUEwQixDQUMxQyxRQ0hNQyxjQUFBQSxHQUEwQixDQUM5QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDBFQUFBLENBQTRFLEVBQzFGLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsWUFBQSxDQUFjLENBQzlCLFFDSk1DLGNBQUFBLEdBQTJCLENBQy9CLENBQUMsT0FBUSxDQUFFLEVBQUcsa0NBQUEsQ0FBb0MsRUFDbEQsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyx1QkFBQSxDQUF5QixFQUN2QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHdCQUFBLENBQTBCLEVBQ3hDLENBQUMsT0FBUSxDQUFFLEVBQUcscUNBQUEsQ0FBdUMsRUFDckQsQ0FBQyxPQUFRLENBQUUsRUFBRyxpQ0FBQSxDQUFtQyxFQUNqRCxDQUFDLE9BQVEsQ0FBRSxFQUFHLHVCQUFBLENBQXlCLEVBQ3ZDLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsc0JBQUEsQ0FBd0IsQ0FDeEMsUUNWTUMsY0FBQUEsR0FBMEIsQ0FDOUIsQ0FBQyxPQUFRLENBQUUsRUFBRywwRUFBQSxDQUE0RSxDQUM1RixRQ0ZNQyxjQUFBQSxHQUFxQixDQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLHFFQUFBLENBQXVFLENBQ3ZGLFFDRk1DLGNBQUFBLEdBQW1CLENBQ3ZCLENBQUMsT0FBUSxDQUFFLEVBQUcseURBQUEsQ0FBMkQsRUFDekUsQ0FBQyxPQUFRLENBQUUsRUFBRywwREFBQSxDQUE0RCxFQUMxRSxDQUFDLE9BQVEsQ0FBRSxFQUFHLDRCQUFBLENBQThCLEVBQzVDLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsc0RBQUEsQ0FBd0QsRUFDdEUsQ0FBQyxPQUFRLENBQUUsRUFBRywwQkFBQSxDQUE0QixDQUM1QyxRQ1BNQyxjQUFBQSxHQUEwQixDQUM5QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDBCQUFBLENBQTRCLEVBQzFDLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsK0VBQUEsQ0FBaUYsRUFDL0YsQ0FBQyxPQUFRLENBQUUsRUFBRyx5QkFBQSxDQUEyQixFQUN6QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHNFQUFBLENBQXdFLEVBQ3RGLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssRUFDekMsQ0FBQyxTQUFVLENBQUUsR0FBSSxJQUFLLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxDQUMxQyxRQ1JNQyxjQUFBQSxHQUFrQixDQUN0QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDJEQUFBLENBQTZELEVBQzNFLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQ0UsT0FDQSxDQUFFLEVBQUcsaUZBQUEsQ0FBa0YsRUFFekYsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxFQUN6QyxDQUFDLFNBQVUsQ0FBRSxHQUFJLElBQUssR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLENBQzFDLFFDVE1DLGNBQUFBLEdBQXdCLENBQzVCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsY0FBQSxDQUFnQixFQUM5QixDQUFDLE9BQVEsQ0FBRSxFQUFHLHdCQUFBLENBQTBCLENBQzFDLFFDSk1DLGNBQUFBLEdBQXNCLENBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsZUFBQSxDQUFpQixFQUMvQixDQUFDLE9BQVEsQ0FBRSxFQUFHLDBCQUFBLENBQTRCLEVBQzFDLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssRUFDekMsQ0FBQyxPQUFRLENBQUUsRUFBRyxJQUFLLEVBQUcsSUFBSyxNQUFPLEtBQU0sT0FBUSxLQUFNLEdBQUksR0FBQSxDQUFLLENBQ2pFLFFDTE1DLGNBQUFBLEdBQW1CLENBQ3ZCLENBQ0UsT0FDQSxDQUNFLEVBQUcsd0dBQUEsQ0FDTCxFQUVGLENBQUMsT0FBUSxDQUFFLEVBQUcsZ0JBQUEsQ0FBa0IsRUFDaEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxrQkFBQSxDQUFvQixFQUNsQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDhCQUFBLENBQWdDLENBQ2hELFFDVk1DLGNBQUFBLEdBQTBCLENBQzlCLENBQ0UsT0FDQSxDQUNFLEVBQUcsd0dBQUEsQ0FDTCxFQUVGLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLE1BQU8sS0FBTSxPQUFRLEtBQU0sRUFBRyxJQUFLLEVBQUcsSUFBSyxHQUFJLEdBQUEsQ0FBSyxDQUNqRSxRQ1RNQyxjQUFBQSxHQUFzQixDQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxNQUFPLEtBQU0sT0FBUSxLQUFNLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssQ0FDakUsUUNITUMsY0FBQUEsR0FBZSxDQUNuQixDQUFDLE9BQVEsQ0FBRSxFQUFHLGVBQUEsQ0FBaUIsRUFDL0IsQ0FBQyxPQUFRLENBQUUsTUFBTyxLQUFNLE9BQVEsS0FBTSxFQUFHLElBQUssRUFBRyxJQUFLLEdBQUksR0FBQSxDQUFLLENBQ2pFLFFDSE1DLGNBQUFBLEdBQW1CLENBQUMsQ0FBQyxPQUFRLENBQUUsRUFBRywyQ0FBQSxDQUE2QyxDQUFDLFFDQWhGQyxjQUFBQSxHQUFvQixDQUN4QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLHlJQUFBLENBQ0wsQ0FFSixRQ1BNQyxjQUFBQSxHQUF3QixDQUM1QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLGdPQUFBLENBQ0wsQ0FFSixRQ1BNQyxjQUFBQSxHQUFpQixDQUNyQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLHlDQUFBLENBQTJDLEVBQ3pELENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLENBQzNCLFFDSk1DLGNBQUFBLEdBQXdCLENBQzVCLENBQUMsT0FBUSxDQUFFLEVBQUcsd0JBQUEsQ0FBMEIsRUFDeEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxxRUFBQSxDQUF1RSxFQUNyRixDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxFQUM1QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDhEQUFBLENBQWdFLENBQ2hGLFFDTk1DLGNBQUFBLEdBQXFCLENBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsd0JBQUEsQ0FBMEIsRUFDeEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyw2RUFBQSxDQUErRSxDQUMvRixRQ0pNQyxjQUFBQSxHQUFzQixDQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLHlCQUFBLENBQTJCLEVBQ3pDLENBQUMsT0FBUSxDQUFFLEdBQUksSUFBSyxHQUFJLEtBQU0sR0FBSSxLQUFNLEdBQUksSUFBQSxDQUFNLENBQ3BELFFDSE1DLGNBQUFBLEdBQWtCLENBQ3RCLENBQUMsT0FBUSxDQUFFLEVBQUcsZUFBQSxDQUFpQixFQUMvQixDQUFDLE9BQVEsQ0FBRSxFQUFHLDBEQUFBLENBQTRELENBQzVFLFFDSE1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQUMsT0FBUSxDQUFFLEVBQUcsOEJBQUEsQ0FBZ0MsRUFDOUMsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxDQUMzQyxRQ0pNQyxjQUFBQSxHQUFpQixDQUNyQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLDJDQUFBLENBQTZDLENBQzdELFFDSE1DLGNBQUFBLEdBQTZCLENBQ2pDLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsZ0JBQUEsQ0FBa0IsRUFDaEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxjQUFBLENBQWdCLENBQ2hDLFFDVE1DLGNBQUFBLEdBQTJCLENBQy9CLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsZ0JBQUEsQ0FBa0IsRUFDaEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxlQUFBLENBQWlCLENBQ2pDLFFDVE1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQUMsT0FBUSxDQUFFLE1BQU8sSUFBSyxPQUFRLElBQUssRUFBRyxJQUFLLEVBQUcsSUFBSyxHQUFJLEdBQUEsQ0FBSyxFQUM3RCxDQUFDLE9BQVEsQ0FBRSxNQUFPLElBQUssT0FBUSxJQUFLLEVBQUcsS0FBTSxFQUFHLEtBQU0sR0FBSSxHQUFBLENBQUssQ0FDakUsUUNITUMsY0FBQUEsR0FBdUIsQ0FDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRywyQkFBQSxDQUE2QixFQUMzQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxFQUM1QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxFQUM1QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLDBKQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLENBQzNDLFFDYk1DLGNBQUFBLEdBQW9CLENBQUMsQ0FBQyxPQUFRLENBQUUsRUFBRyxrREFBQSxDQUFvRCxDQUFDLFFDQXhGQyxjQUFBQSxHQUFtQixDQUN2QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLDRGQUFBLENBQ0wsRUFFRixDQUNFLE9BQ0EsQ0FBRSxFQUFHLHFGQUFBLENBQXNGLEVBRTdGLENBQUMsT0FBUSxDQUFFLEdBQUksSUFBSyxHQUFJLElBQUssR0FBSSxJQUFLLEdBQUksR0FBQSxDQUFLLEVBQy9DLENBQUMsT0FBUSxDQUFFLEdBQUksSUFBSyxHQUFJLElBQUssR0FBSSxJQUFLLEdBQUksR0FBQSxDQUFLLEVBQy9DLENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxLQUFNLEdBQUksSUFBQSxDQUFNLEVBQ25ELENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxLQUFNLEdBQUksSUFBQSxDQUFNLENBQ3JELFFDZk1DLGNBQUFBLEdBQW1CLENBQ3ZCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsdUVBQUEsQ0FBeUUsRUFDdkYsQ0FBQyxPQUFRLENBQUUsRUFBRyxpQkFBQSxDQUFtQixFQUNqQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLGtCQUFBLENBQW9CLEVBQ2xDLENBQUMsT0FBUSxDQUFFLEVBQUcscUVBQUEsQ0FBdUUsQ0FDdkYsUUNQTUMsY0FBQUEsR0FBZ0IsQ0FDcEIsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxFQUN4QyxDQUFDLFNBQVUsQ0FBRSxHQUFJLElBQUssR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLEVBQ3hDLENBQUMsT0FBUSxDQUFFLEVBQUcsZ0JBQUEsQ0FBa0IsRUFDaEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxnQkFBQSxDQUFrQixFQUNoQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHFCQUFBLENBQXVCLEVBQ3JDLENBQUMsT0FBUSxDQUFFLEVBQUcsb0JBQUEsQ0FBc0IsRUFDcEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxxQkFBQSxDQUF1QixDQUN2QyxRQ1JNQyxjQUFBQSxHQUFtQixDQUN2QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLGVBQUEsQ0FBaUIsRUFDL0IsQ0FBQyxPQUFRLENBQUUsRUFBRywyQ0FBQSxDQUE2QyxDQUM3RCxRQ0pNQyxjQUFBQSxHQUFzQixDQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLGdCQUFBLENBQWtCLEVBQ2hDLENBQUMsT0FBUSxDQUFFLEVBQUcsMkNBQUEsQ0FBNkMsRUFDM0QsQ0FBQyxTQUFVLENBQUUsR0FBSSxJQUFLLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxDQUN6QyxRQ0pNQyxjQUFBQSxHQUFvQixDQUN4QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDBCQUFBLENBQTRCLEVBQzFDLENBQUMsT0FBUSxDQUFFLEVBQUcsd0JBQUEsQ0FBMEIsRUFDeEMsQ0FBQyxPQUFRLENBQUUsRUFBRywwQkFBQSxDQUE0QixFQUMxQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDBCQUFBLENBQTRCLEVBQzFDLENBQUMsT0FBUSxDQUFFLEVBQUcseUJBQUEsQ0FBMkIsRUFDekMsQ0FBQyxPQUFRLENBQUUsRUFBRyx5QkFBQSxDQUEyQixFQUN6QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHlCQUFBLENBQTJCLEVBQ3pDLENBQUMsT0FBUSxDQUFFLEVBQUcseUJBQUEsQ0FBMkIsRUFDekMsQ0FBQyxPQUFRLENBQUUsRUFBRyx3QkFBQSxDQUEwQixFQUN4QyxDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLEVBQ3pDLENBQUMsU0FBVSxDQUFFLEdBQUksSUFBSyxHQUFJLElBQUssRUFBRyxHQUFBLENBQUssQ0FDekMsUUNaTUMsY0FBQUEsR0FBcUIsQ0FDekIsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxFQUN4QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDRCQUFBLENBQThCLEVBQzVDLENBQUMsT0FBUSxDQUFFLEVBQUcsK0JBQUEsQ0FBaUMsRUFDL0MsQ0FBQyxPQUFRLENBQUUsTUFBTyxJQUFLLE9BQVEsSUFBSyxFQUFHLEtBQU0sRUFBRyxLQUFNLEdBQUksTUFBQSxDQUFRLENBQ3BFLFFDTE1DLGNBQUFBLEdBQXNCLENBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsMkNBQUEsQ0FBNkMsRUFDM0QsQ0FBQyxTQUFVLENBQUUsR0FBSSxJQUFLLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxFQUN2QyxDQUFDLE9BQVEsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEdBQUksS0FBTSxHQUFJLElBQUEsQ0FBTSxDQUNyRCxRQ0pNQyxjQUFBQSxHQUFvQixDQUN4QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDRCQUFBLENBQThCLEVBQzVDLENBQ0UsT0FDQSxDQUNFLEVBQUcsaUlBQUEsQ0FDTCxFQUVGLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLElBQUssRUFBRyxHQUFBLENBQUssQ0FDMUMsUUNUTUMsY0FBQUEsR0FBcUIsQ0FDekIsQ0FBQyxPQUFRLENBQUUsRUFBRywyQ0FBQSxDQUE2QyxFQUMzRCxDQUFDLFNBQVUsQ0FBRSxHQUFJLElBQUssR0FBSSxJQUFLLEVBQUcsR0FBQSxDQUFLLEVBQ3ZDLENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxJQUFLLEdBQUksSUFBQSxDQUFNLEVBQ2xELENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxLQUFNLEdBQUksSUFBQSxDQUFNLENBQ3JELFFDTE1DLGNBQUFBLEdBQTJCLENBQy9CLENBQUMsT0FBUSxDQUFFLEVBQUcsMEJBQUEsQ0FBNEIsRUFDMUMsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxFQUN4QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLGdCQUFBLENBQWtCLENBQ2xDLFFDSk1DLGNBQUFBLEdBQXlCLENBQzdCLENBQUMsT0FBUSxDQUFFLEVBQUcsd0JBQUEsQ0FBMEIsRUFDeEMsQ0FBQyxPQUFRLENBQUUsRUFBRywwQkFBQSxDQUE0QixFQUMxQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDBCQUFBLENBQTRCLEVBQzFDLENBQUMsT0FBUSxDQUFFLEVBQUcseUJBQUEsQ0FBMkIsRUFDekMsQ0FBQyxPQUFRLENBQUUsRUFBRyx5QkFBQSxDQUEyQixFQUN6QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHlCQUFBLENBQTJCLEVBQ3pDLENBQUMsT0FBUSxDQUFFLEVBQUcsNkJBQUEsQ0FBK0IsRUFDN0MsQ0FBQyxPQUFRLENBQUUsRUFBRyx5QkFBQSxDQUEyQixFQUN6QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHdCQUFBLENBQTBCLEVBQ3hDLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLElBQUssRUFBRyxHQUFBLENBQUssRUFDeEMsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxDQUMzQyxRQ1pNQyxjQUFBQSxHQUEyQixDQUMvQixDQUFDLE9BQVEsQ0FBRSxFQUFHLDBCQUFBLENBQTRCLEVBQzFDLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLElBQUssRUFBRyxHQUFBLENBQUssRUFDeEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsQ0FDN0IsUUNKTUMsY0FBQUEsR0FBeUIsQ0FDN0IsQ0FBQyxPQUFRLENBQUUsRUFBRyw4QkFBQSxDQUFnQyxFQUM5QyxDQUNFLE9BQ0EsQ0FDRSxFQUFHLGlJQUFBLENBQ0wsRUFFRixDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxJQUFLLEVBQUcsR0FBQSxDQUFLLENBQzFDLFFDVE1DLGNBQUFBLEdBQTBCLENBQzlCLENBQUMsT0FBUSxDQUFFLEVBQUcsMEJBQUEsQ0FBNEIsRUFDMUMsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxFQUN4QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxDQUM3QixRQ0xNQyxjQUFBQSxHQUE0QixDQUNoQyxDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxJQUFLLEVBQUcsR0FBQSxDQUFLLEVBQ3hDLENBQUMsT0FBUSxDQUFFLEVBQUcsNkJBQUEsQ0FBK0IsRUFDN0MsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxFQUN6QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLGdCQUFBLENBQWtCLENBQ2xDLFFDTE1DLGNBQUFBLEdBQXNCLENBQzFCLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLElBQUssRUFBRyxHQUFBLENBQUssRUFDeEMsQ0FBQyxPQUFRLENBQUUsRUFBRyx1QkFBQSxDQUF5QixDQUN6QyxRQ0hNQyxjQUFBQSxHQUF1QixDQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLDBCQUFBLENBQTRCLEVBQzFDLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLElBQUssRUFBRyxHQUFBLENBQUssRUFDeEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsRUFDNUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsQ0FDOUIsUUNMTUMsY0FBQUEsR0FBdUIsQ0FDM0IsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxFQUN4QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDRCQUFBLENBQThCLEVBQzVDLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssRUFDekMsQ0FBQyxPQUFRLENBQUUsRUFBRyxnQkFBQSxDQUFrQixDQUNsQyxRQ0xNQyxjQUFBQSxHQUFxQixDQUN6QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLCtUQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLHlCQUFBLENBQTJCLEVBQ3pDLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLElBQUssRUFBRyxHQUFBLENBQUssQ0FDMUMsUUNUTUMsY0FBQUEsR0FBa0IsQ0FDdEIsQ0FBQyxPQUFRLENBQUUsRUFBRywyQ0FBQSxDQUE2QyxFQUMzRCxDQUFDLFNBQVUsQ0FBRSxHQUFJLElBQUssR0FBSSxJQUFLLEVBQUcsR0FBQSxDQUFLLEVBQ3ZDLENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxJQUFLLEdBQUksSUFBQSxDQUFNLEVBQ2xELENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxJQUFLLEdBQUksSUFBQSxDQUFNLENBQ3BELFFDTE1DLGNBQUFBLEdBQWlCLENBQ3JCLENBQUMsT0FBUSxDQUFFLEVBQUcsMkNBQUEsQ0FBNkMsRUFDM0QsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxDQUMxQyxRQ0hNQyxjQUFBQSxHQUF1QixDQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLHVCQUFBLENBQXlCLEVBQ3ZDLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLElBQUssRUFBRyxHQUFBLENBQUssRUFDeEMsQ0FBQyxPQUFRLENBQUUsRUFBRywyQ0FBQSxDQUE2QyxDQUM3RCxRQ0pNQyxjQUFBQSxHQUFrQixDQUN0QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDJDQUFBLENBQTZDLEVBQzNELENBQUMsT0FBUSxDQUFFLEVBQUcsNkJBQUEsQ0FBK0IsRUFDN0MsQ0FBQyxPQUFRLENBQUUsRUFBRyw0QkFBQSxDQUE4QixFQUM1QyxDQUFDLFNBQVUsQ0FBRSxHQUFJLElBQUssR0FBSSxJQUFLLEVBQUcsR0FBQSxDQUFLLENBQ3pDLFFDTE1DLGNBQUFBLEdBQTRCLENBQ2hDLENBQUMsT0FBUSxDQUFFLEVBQUcsNERBQUEsQ0FBOEQsRUFDNUUsQ0FBQyxPQUFRLENBQUUsRUFBRyx5RUFBQSxDQUEyRSxFQUN6RixDQUFDLE9BQVEsQ0FBRSxFQUFHLG1CQUFBLENBQXFCLEVBQ25DLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLENBQzdCLFFDTE1DLGNBQUFBLEdBQXFCLENBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsd0NBQUEsQ0FBMEMsRUFDeEQsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxpREFBQSxDQUFtRCxDQUNuRSxRQ0pNQyxjQUFBQSxHQUFnQixDQUNwQixDQUNFLE9BQ0EsQ0FDRSxFQUFHLCtGQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLHdFQUFBLENBQTBFLEVBQ3hGLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssRUFDekMsQ0FBQyxTQUFVLENBQUUsR0FBSSxJQUFLLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxDQUMxQyxRQ1hNQyxjQUFBQSxHQUF3QixDQUM1QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFFBQUEsQ0FBVSxFQUN4QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFFBQUEsQ0FBVSxFQUN4QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLGVBQUEsQ0FBaUIsQ0FDakMsUUNSTUMsY0FBQUEsR0FBcUIsQ0FDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyx3QkFBQSxDQUEwQixFQUN4QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHVCQUFBLENBQXlCLEVBQ3ZDLENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLElBQUssR0FBSSxJQUFLLEdBQUksSUFBQSxDQUFNLEVBQ2pELENBQUMsT0FBUSxDQUFFLEdBQUksSUFBSyxHQUFJLEtBQU0sR0FBSSxJQUFLLEdBQUksSUFBQSxDQUFNLENBQ25ELFFDTE1DLGNBQUFBLEdBQWtCLENBQ3RCLENBQUMsT0FBUSxDQUFFLE1BQU8sS0FBTSxPQUFRLEtBQU0sRUFBRyxJQUFLLEVBQUcsSUFBSyxHQUFJLEdBQUEsQ0FBSyxFQUMvRCxDQUFDLFNBQVUsQ0FBRSxHQUFJLE1BQU8sR0FBSSxNQUFPLEVBQUcsS0FBTSxLQUFNLGNBQUEsQ0FBZ0IsRUFDbEUsQ0FBQyxPQUFRLENBQUUsRUFBRyxrQkFBQSxDQUFvQixFQUNsQyxDQUFDLFNBQVUsQ0FBRSxHQUFJLE9BQVEsR0FBSSxNQUFPLEVBQUcsS0FBTSxLQUFNLGNBQUEsQ0FBZ0IsRUFDbkUsQ0FBQyxPQUFRLENBQUUsRUFBRyxvQkFBQSxDQUFzQixFQUNwQyxDQUFDLFNBQVUsQ0FBRSxHQUFJLE1BQU8sR0FBSSxPQUFRLEVBQUcsS0FBTSxLQUFNLGNBQUEsQ0FBZ0IsRUFDbkUsQ0FBQyxPQUFRLENBQUUsRUFBRyxtQkFBQSxDQUFxQixFQUNuQyxDQUFDLFNBQVUsQ0FBRSxHQUFJLE9BQVEsR0FBSSxPQUFRLEVBQUcsS0FBTSxLQUFNLGNBQUEsQ0FBZ0IsRUFDcEUsQ0FBQyxPQUFRLENBQUUsRUFBRyxvQkFBQSxDQUFzQixFQUNwQyxDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLENBQzNDLFFDWE1DLGNBQUFBLEdBQXlCLENBQzdCLENBQUMsT0FBUSxDQUFFLEVBQUcsMEJBQUEsQ0FBNEIsRUFDMUMsQ0FBQyxPQUFRLENBQUUsRUFBRyx5QkFBQSxDQUEyQixFQUN6QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDBCQUFBLENBQTRCLEVBQzFDLENBQUMsT0FBUSxDQUFFLEVBQUcseUJBQUEsQ0FBMkIsRUFDekMsQ0FBQyxPQUFRLENBQUUsRUFBRyxLQUFNLEVBQUcsS0FBTSxNQUFPLElBQUssT0FBUSxJQUFLLEdBQUksR0FBQSxDQUFLLEVBQy9ELENBQUMsT0FBUSxDQUFFLEVBQUcsS0FBTSxFQUFHLElBQUssTUFBTyxJQUFLLE9BQVEsSUFBSyxHQUFJLEdBQUEsQ0FBSyxFQUM5RCxDQUFDLE9BQVEsQ0FBRSxFQUFHLElBQUssRUFBRyxLQUFNLE1BQU8sSUFBSyxPQUFRLElBQUssR0FBSSxHQUFBLENBQUssRUFDOUQsQ0FBQyxPQUFRLENBQUUsRUFBRyxJQUFLLEVBQUcsSUFBSyxNQUFPLElBQUssT0FBUSxJQUFLLEdBQUksR0FBQSxDQUFLLENBQy9ELFFDVE1DLGNBQUFBLEdBQWtCLENBQ3RCLENBQUMsT0FBUSxDQUFFLEVBQUcsdUJBQUEsQ0FBeUIsRUFDdkMsQ0FBQyxPQUFRLENBQUUsRUFBRyw2QkFBQSxDQUErQixFQUM3QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLGlEQUFBLENBQW1ELENBQ25FLFFDSk1DLGNBQUFBLEdBQXlCLENBQzdCLENBQUMsT0FBUSxDQUFFLEVBQUcseUJBQUEsQ0FBMkIsRUFDekMsQ0FDRSxPQUNBLENBQ0UsRUFBRyw4SEFBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRyx1QkFBQSxDQUF5QixDQUN6QyxRQ1RNQyxjQUFBQSxHQUFrQixDQUN0QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxJQUFLLEVBQUcsR0FBQSxDQUFLLENBQzFDLFFDSk1DLGNBQUFBLEdBQXlCLENBQzdCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsaUJBQUEsQ0FBbUIsRUFDakMsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxDQUMzQyxRQ05NQyxjQUFBQSxHQUF1QixDQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLHNCQUFBLENBQXdCLEVBQ3RDLENBQUMsT0FBUSxDQUFFLEVBQUcsdUJBQUEsQ0FBeUIsRUFDdkMsQ0FBQyxPQUFRLENBQUUsRUFBRyw2Q0FBQSxDQUErQyxFQUM3RCxDQUFDLE9BQVEsQ0FBRSxFQUFHLG1DQUFBLENBQXFDLEVBQ25ELENBQUMsT0FBUSxDQUFFLEdBQUksSUFBSyxHQUFJLEtBQU0sR0FBSSxJQUFLLEdBQUksSUFBQSxDQUFNLENBQ25ELFFDTk1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQUMsT0FBUSxDQUFFLEVBQUcsc0JBQUEsQ0FBd0IsRUFDdEMsQ0FBQyxPQUFRLENBQUUsRUFBRyx1QkFBQSxDQUF5QixFQUN2QyxDQUFDLE9BQVEsQ0FBRSxNQUFPLElBQUssT0FBUSxLQUFNLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssQ0FDaEUsUUNKTUMsY0FBQUEsR0FBcUIsQ0FDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxvRUFBQSxDQUFzRSxFQUNwRixDQUFDLE9BQVEsQ0FBRSxFQUFHLHdEQUFBLENBQTBELEVBQ3hFLENBQUMsT0FBUSxDQUFFLEVBQUcsWUFBQSxDQUFjLENBQzlCLFFDSk1DLGNBQUFBLEdBQWtCLENBQ3RCLENBQUMsT0FBUSxDQUFFLEVBQUcsMkVBQUEsQ0FBNkUsRUFDM0YsQ0FBQyxPQUFRLENBQUUsRUFBRyxJQUFLLEVBQUcsSUFBSyxNQUFPLEtBQU0sT0FBUSxLQUFNLEdBQUksR0FBQSxDQUFLLENBQ2pFLFFDSE1DLGNBQUFBLEdBQXNCLENBQzFCLENBQUMsU0FBVSxDQUFFLEdBQUksSUFBSyxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssRUFDeEMsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxFQUN6QyxDQUFDLE9BQVEsQ0FBRSxHQUFJLElBQUssR0FBSSxLQUFNLEdBQUksS0FBTSxHQUFJLElBQUEsQ0FBTSxDQUNwRCxRQ0pNQyxjQUFBQSxHQUFzQixDQUMxQixDQUFDLE9BQVEsQ0FBRSxNQUFPLEtBQU0sT0FBUSxLQUFNLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssRUFDL0QsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxTQUFVLENBQUUsR0FBSSxJQUFLLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxFQUN4QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLENBQzNDLFFDTk1DLGNBQUFBLEdBQWlCLENBQ3JCLENBQUMsT0FBUSxDQUFFLEVBQUcsMkNBQUEsQ0FBNkMsRUFDM0QsQ0FBQyxPQUFRLENBQUUsRUFBRyx5Q0FBQSxDQUEyQyxFQUN6RCxDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLEVBQ3pDLENBQ0UsT0FDQSxDQUNFLEVBQUcsNkZBQUEsQ0FDTCxDQUVKLFFDVk1DLGNBQUFBLEdBQXVCLENBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsb0NBQUEsQ0FBc0MsRUFDcEQsQ0FBQyxPQUFRLENBQUUsRUFBRyw4QkFBQSxDQUFnQyxFQUM5QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLG9DQUFBLENBQXNDLEVBQ3BELENBQUMsT0FBUSxDQUFFLEVBQUcscURBQUEsQ0FBdUQsRUFDckUsQ0FBQyxPQUFRLENBQUUsRUFBRyxxQ0FBQSxDQUF1QyxFQUNyRCxDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEVBQUcsSUFBQSxDQUFNLENBQzVDLFFDUE1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQ0UsT0FDQSxDQUNFLEVBQUcsMEtBQUEsQ0FDTCxFQUVGLENBQUMsT0FBUSxDQUFFLEVBQUcscUJBQUEsQ0FBdUIsQ0FDdkMsUUNSTUMsY0FBQUEsR0FBb0IsQ0FDeEIsQ0FDRSxPQUNBLENBQ0UsRUFBRywwS0FBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRyxxQkFBQSxDQUF1QixFQUNyQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLG1DQUFBLENBQXFDLENBQ3JELFFDVE1DLGNBQUFBLEdBQXNCLENBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsMkJBQUEsQ0FBNkIsRUFDM0MsQ0FBQyxPQUFRLENBQUUsRUFBRyxvQ0FBQSxDQUFzQyxFQUNwRCxDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxFQUM1QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLDBJQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLDJDQUFBLENBQTZDLENBQzdELFFDWE1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQ0UsT0FDQSxDQUNFLEVBQUcsMEtBQUEsQ0FDTCxFQUVGLENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxJQUFLLEdBQUksSUFBQSxDQUFNLEVBQ2xELENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxJQUFLLEdBQUksSUFBQSxDQUFNLENBQ3BELFFDVE1DLGNBQUFBLEdBQW1CLENBQ3ZCLENBQ0UsT0FDQSxDQUNFLEVBQUcsMEtBQUEsQ0FDTCxDQUVKLFFDUE1DLGNBQUFBLEdBQWlCLENBQ3JCLENBQUMsT0FBUSxDQUFFLEVBQUcsZUFBQSxDQUFpQixFQUMvQixDQUFDLE9BQVEsQ0FBRSxFQUFHLDZDQUFBLENBQStDLEVBQzdELENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLENBQzVCLFFDSk1DLGNBQUFBLEdBQTBCLENBQzlCLENBQUMsT0FBUSxDQUFFLEVBQUcsWUFBQSxDQUFjLEVBQzVCLENBQUMsT0FBUSxDQUFFLEVBQUcsMkVBQUEsQ0FBNkUsQ0FDN0YsUUNITUMsY0FBQUEsR0FBd0IsQ0FDNUIsQ0FBQyxPQUFRLENBQUUsTUFBTyxLQUFNLE9BQVEsS0FBTSxFQUFHLElBQUssRUFBRyxJQUFLLEdBQUksR0FBQSxDQUFLLEVBQy9ELENBQUMsT0FBUSxDQUFFLEVBQUcscUNBQUEsQ0FBdUMsRUFDckQsQ0FDRSxPQUNBLENBQUUsRUFBRyxvRkFBQSxDQUFxRixDQUU5RixRQ1BNQyxjQUFBQSxHQUFtQixDQUN2QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLDRHQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLDJDQUFBLENBQTZDLENBQzdELFFDUk1DLGNBQUFBLEdBQXNCLENBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsdUNBQUEsQ0FBeUMsRUFDdkQsQ0FBQyxTQUFVLENBQUUsR0FBSSxJQUFLLEdBQUksSUFBSyxFQUFHLEdBQUEsQ0FBSyxFQUN2QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLElBQUssRUFBRyxJQUFLLE1BQU8sS0FBTSxPQUFRLEtBQU0sR0FBSSxHQUFBLENBQUssQ0FDakUsUUNOTUMsY0FBQUEsR0FBeUIsQ0FDN0IsQ0FDRSxPQUNBLENBQ0UsRUFBRywrSUFBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxRQUFBLENBQVUsRUFDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxRQUFBLENBQVUsRUFDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsQ0FDM0IsUUNkTUMsY0FBQUEsR0FBaUIsQ0FDckIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxXQUFBLENBQWEsRUFDM0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxRQUFBLENBQVUsRUFDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxrQkFBQSxDQUFvQixFQUNsQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLGdCQUFBLENBQWtCLEVBQ2hDLENBQUMsT0FBUSxDQUFFLEVBQUcsV0FBQSxDQUFhLEVBQzNCLENBQUMsT0FBUSxDQUFFLEVBQUcsZ0JBQUEsQ0FBa0IsQ0FDbEMsUUNWTUMsY0FBQUEsR0FBc0IsQ0FDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyw0Q0FBQSxDQUE4QyxFQUM1RCxDQUNFLE9BQ0EsQ0FDRSxFQUFHLHVIQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxDQUM1QixRQ1ZNQyxjQUFBQSxHQUEyQixDQUMvQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFFBQUEsQ0FBVSxFQUN4QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxFQUMzQixDQUFDLE9BQVEsQ0FBRSxNQUFPLEtBQU0sT0FBUSxLQUFNLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssRUFDL0QsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxFQUN6QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDRDQUFBLENBQThDLENBQzlELFFDTk1DLGNBQUFBLEdBQWtCLENBQ3RCLENBQUMsT0FBUSxDQUFFLEVBQUcsa0JBQUEsQ0FBb0IsRUFDbEMsQ0FBQyxPQUFRLENBQUUsRUFBRyx3RUFBQSxDQUEwRSxFQUN4RixDQUFDLE9BQVEsQ0FBRSxFQUFHLGlFQUFBLENBQW1FLEVBQ2pGLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssQ0FDM0MsUUNMTUMsY0FBQUEsR0FBMkIsQ0FDL0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxhQUFBLENBQWUsRUFDN0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxpQkFBQSxDQUFtQixFQUNqQyxDQUNFLE9BQ0EsQ0FDRSxFQUFHLG1IQUFBLENBQ0wsRUFFRixDQUNFLE9BQ0EsQ0FDRSxFQUFHLG1IQUFBLENBQ0wsQ0FFSixRQ2ZNQyxjQUFBQSxHQUF5QixDQUM3QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLDBGQUFBLENBQ0wsRUFFRixDQUNFLE9BQ0EsQ0FDRSxFQUFHLDBGQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLGNBQUEsQ0FBZ0IsQ0FDaEMsUUNmTUMsY0FBQUEsR0FBd0IsQ0FDNUIsQ0FBQyxPQUFRLENBQUUsRUFBRyx3QkFBQSxDQUEwQixFQUN4QyxDQUNFLE9BQ0EsQ0FDRSxFQUFHLDBGQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLHVCQUFBLENBQXlCLENBQ3pDLFFDWE1DLGNBQUFBLEdBQWtCLENBQ3RCLENBQ0UsT0FDQSxDQUFFLEVBQUcsdUZBQUEsQ0FBd0YsRUFFL0YsQ0FDRSxPQUNBLENBQ0UsRUFBRywwRkFBQSxDQUNMLEVBRUYsQ0FDRSxPQUNBLENBQ0UsRUFBRywwRkFBQSxDQUNMLENBRUosUUNqQk1DLGNBQUFBLEdBQXNCLENBQzFCLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLE1BQU8sRUFBRyxLQUFBLENBQU8sRUFDNUMsQ0FBQyxPQUFRLENBQUUsRUFBRyxtQkFBQSxDQUFxQixFQUNuQyxDQUFDLFNBQVUsQ0FBRSxHQUFJLE1BQU8sR0FBSSxLQUFNLEVBQUcsS0FBQSxDQUFPLEVBQzVDLENBQUMsT0FBUSxDQUFFLEVBQUcsVUFBQSxDQUFZLEVBQzFCLENBQUMsU0FBVSxDQUFFLEdBQUksT0FBUSxHQUFJLEtBQU0sRUFBRyxLQUFBLENBQU8sRUFDN0MsQ0FBQyxPQUFRLENBQUUsRUFBRyxvQkFBQSxDQUFzQixFQUNwQyxDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxPQUFRLEVBQUcsS0FBQSxDQUFPLENBQy9DLFFDUk1DLGNBQUFBLEdBQW1CLENBQ3ZCLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssRUFDekMsQ0FBQyxTQUFVLENBQUUsR0FBSSxLQUFNLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxFQUN6QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLFVBQUEsQ0FBWSxFQUMxQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFdBQUEsQ0FBYSxDQUM3QixRQ0xNQyxjQUFBQSxHQUF1QixDQUMzQixDQUFDLE9BQVEsQ0FBRSxFQUFHLHVEQUFBLENBQXlELEVBQ3ZFLENBQUMsT0FBUSxDQUFFLEVBQUcsMEJBQUEsQ0FBNEIsRUFDMUMsQ0FBQyxPQUFRLENBQUUsRUFBRyx1Q0FBQSxDQUF5QyxFQUN2RCxDQUFDLE9BQVEsQ0FBRSxFQUFHLDRCQUFBLENBQThCLEVBQzVDLENBQUMsT0FBUSxDQUFFLEVBQUcsZ0NBQUEsQ0FBa0MsRUFDaEQsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsRUFDNUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsQ0FDOUIsUUNSTUMsY0FBQUEsR0FBb0IsQ0FDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRywwRUFBQSxDQUE0RSxFQUMxRixDQUFDLE9BQVEsQ0FBRSxFQUFHLDJEQUFBLENBQTZELEVBQzNFLENBQUMsT0FBUSxDQUFFLEVBQUcsd0RBQUEsQ0FBMEQsQ0FDMUUsUUNKTUMsY0FBQUEsR0FBd0IsQ0FDNUIsQ0FDRSxPQUNBLENBQ0UsRUFBRyx5R0FBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRywrQ0FBQSxDQUFpRCxFQUMvRCxDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxJQUFLLEVBQUcsR0FBQSxDQUFLLENBQzFDLFFDVE1DLGNBQUFBLEdBQW1CLENBQ3ZCLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLElBQUssRUFBRyxHQUFBLENBQUssRUFDeEMsQ0FDRSxPQUNBLENBQ0UsRUFBRyx5R0FBQSxDQUNMLENBRUosUUNSTUMsY0FBQUEsR0FBcUIsQ0FDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxhQUFBLENBQWUsRUFDN0IsQ0FBQyxPQUFRLENBQUUsRUFBRyxpQkFBQSxDQUFtQixFQUNqQyxDQUNFLE9BQ0EsQ0FBRSxFQUFHLHVGQUFBLENBQXdGLEVBRS9GLENBQUMsT0FBUSxDQUFFLEVBQUcseUVBQUEsQ0FBMkUsRUFDekYsQ0FBQyxPQUFRLENBQUUsRUFBRyx5RUFBQSxDQUEyRSxFQUN6RixDQUFDLE9BQVEsQ0FBRSxFQUFHLDZDQUFBLENBQStDLEVBQzdELENBQ0UsT0FDQSxDQUNFLEVBQUcseUZBQUEsQ0FDTCxFQUVGLENBQUMsT0FBUSxDQUFFLEVBQUcsNEVBQUEsQ0FBOEUsRUFDNUYsQ0FBQyxPQUFRLENBQUUsRUFBRyw0RUFBQSxDQUE4RSxFQUM1RixDQUFDLE9BQVEsQ0FBRSxHQUFJLElBQUssR0FBSSxLQUFNLEdBQUksSUFBSyxHQUFJLElBQUEsQ0FBTSxDQUNuRCxRQ25CTUMsY0FBQUEsR0FBa0IsQ0FDdEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsRUFDNUIsQ0FDRSxPQUNBLENBQUUsRUFBRyx1RkFBQSxDQUF3RixFQUUvRixDQUNFLE9BQ0EsQ0FBRSxFQUFHLHFGQUFBLENBQXNGLEVBRTdGLENBQ0UsT0FDQSxDQUFFLEVBQUcsd0ZBQUEsQ0FBeUYsRUFFaEcsQ0FBQyxPQUFRLENBQUUsRUFBRyw2Q0FBQSxDQUErQyxFQUM3RCxDQUNFLE9BQ0EsQ0FDRSxFQUFHLHlGQUFBLENBQ0wsRUFFRixDQUNFLE9BQ0EsQ0FDRSxFQUFHLHlGQUFBLENBQ0wsRUFFRixDQUNFLE9BQ0EsQ0FDRSxFQUFHLHlGQUFBLENBQ0wsQ0FFSixRQ2pDTUMsY0FBQUEsR0FBc0IsQ0FDMUIsQ0FBQyxTQUFVLENBQUUsR0FBSSxJQUFLLEdBQUksS0FBTSxFQUFHLEdBQUEsQ0FBSyxFQUN4QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLEVBQ3pDLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsNENBQUEsQ0FBOEMsQ0FDOUQsUUNOTUMsY0FBQUEsR0FBb0IsQ0FDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyx3QkFBQSxDQUEwQixFQUN4QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDBCQUFBLENBQTRCLEVBQzFDLENBQUMsT0FBUSxDQUFFLEVBQUcsMEJBQUEsQ0FBNEIsRUFDMUMsQ0FBQyxPQUFRLENBQUUsRUFBRyx5QkFBQSxDQUEyQixFQUN6QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHlCQUFBLENBQTJCLEVBQ3pDLENBQUMsT0FBUSxDQUFFLEVBQUcseUJBQUEsQ0FBMkIsRUFDekMsQ0FBQyxPQUFRLENBQUUsRUFBRywwQkFBQSxDQUE0QixFQUMxQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLHlCQUFBLENBQTJCLEVBQ3pDLENBQUMsT0FBUSxDQUFFLEVBQUcsd0JBQUEsQ0FBMEIsRUFDeEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxrQ0FBQSxDQUFvQyxFQUNsRCxDQUFDLE9BQVEsQ0FBRSxFQUFHLGtDQUFBLENBQW9DLEVBQ2xELENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssQ0FDM0MsUUNiTUMsY0FBQUEsR0FBb0IsQ0FDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsRUFDNUIsQ0FBQyxPQUFRLENBQUUsRUFBRywyQkFBQSxDQUE2QixDQUM3QyxRQ0hNQyxjQUFBQSxHQUFxQixDQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxFQUM1QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDRCQUFBLENBQThCLEVBQzVDLENBQUMsT0FBUSxDQUFFLEVBQUcsMkJBQUEsQ0FBNkIsQ0FDN0MsUUNKTUMsY0FBQUEsR0FBb0IsQ0FDeEIsQ0FBQyxPQUFRLENBQUUsRUFBRyxZQUFBLENBQWMsRUFDNUIsQ0FBQyxPQUFRLENBQUUsRUFBRywyQkFBQSxDQUE2QixFQUMzQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLGlDQUFBLENBQW1DLEVBQ2pELENBQUMsT0FBUSxDQUFFLEVBQUcsb0NBQUEsQ0FBc0MsRUFDcEQsQ0FBQyxPQUFRLENBQUUsRUFBRyxpQ0FBQSxDQUFtQyxFQUNqRCxDQUFDLE9BQVEsQ0FBRSxFQUFHLG1DQUFBLENBQXFDLEVBQ25ELENBQUMsT0FBUSxDQUFFLEVBQUcsWUFBQSxDQUFjLENBQzlCLFFDUk1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQUMsT0FBUSxDQUFFLEVBQUcsMEJBQUEsQ0FBNEIsRUFDMUMsQ0FDRSxPQUNBLENBQ0UsRUFBRyxpSUFBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsRUFBRyxrQ0FBQSxDQUFvQyxFQUNsRCxDQUFDLE9BQVEsQ0FBRSxFQUFHLCtCQUFBLENBQWlDLENBQ2pELFFDVk1DLGNBQUFBLEdBQXFCLENBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsNENBQUEsQ0FBOEMsRUFDNUQsQ0FBQyxPQUFRLENBQUUsRUFBRyxrQkFBQSxDQUFvQixFQUNsQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDhDQUFBLENBQWdELEVBQzlELENBQUMsT0FBUSxDQUFFLEVBQUcsMEJBQUEsQ0FBNEIsRUFDMUMsQ0FBQyxPQUFRLENBQUUsRUFBRyxtQkFBQSxDQUFxQixFQUNuQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDhCQUFBLENBQWdDLEVBQzlDLENBQUMsT0FBUSxDQUFFLEVBQUcsaUJBQUEsQ0FBbUIsQ0FDbkMsUUNSTUMsY0FBQUEsR0FBcUIsQ0FBQyxDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxDQUFDLFFDQW5EQyxjQUFBQSxHQUFpQixDQUNyQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxFQUM1QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDBCQUFBLENBQTRCLEVBQzFDLENBQUMsT0FBUSxDQUFFLEVBQUcsNEJBQUEsQ0FBOEIsRUFDNUMsQ0FBQyxPQUFRLENBQUUsRUFBRywyQkFBQSxDQUE2QixDQUM3QyxRQ0xNQyxjQUFBQSxHQUEwQixDQUM5QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFNBQUEsQ0FBVyxFQUN6QixDQUFDLE9BQVEsQ0FBRSxFQUFHLDhCQUFBLENBQWdDLEVBQzlDLENBQUMsT0FBUSxDQUFFLEVBQUcsOEJBQUEsQ0FBZ0MsRUFDOUMsQ0FBQyxPQUFRLENBQUUsRUFBRyxjQUFBLENBQWdCLENBQ2hDLFFDTE1DLGNBQUFBLEdBQWlCLENBQ3JCLENBQUMsT0FBUSxDQUFFLEVBQUcsOEJBQUEsQ0FBZ0MsRUFDOUMsQ0FBQyxPQUFRLENBQUUsRUFBRyw2QkFBQSxDQUErQixFQUM3QyxDQUFDLE9BQVEsQ0FBRSxFQUFHLDJCQUFBLENBQTZCLENBQzdDLFFDSk1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQUMsT0FBUSxDQUFFLEVBQUcsU0FBQSxDQUFXLEVBQ3pCLENBQUMsT0FBUSxDQUFFLEVBQUcsb0JBQUEsQ0FBc0IsRUFDcEMsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FDRSxPQUNBLENBQ0UsRUFBRywySUFBQSxDQUNMLEVBRUYsQ0FBQyxPQUFRLENBQUUsR0FBSSxJQUFLLEdBQUksS0FBTSxHQUFJLElBQUssR0FBSSxJQUFBLENBQU0sQ0FDbkQsUUNYTUMsY0FBQUEsR0FBaUIsQ0FDckIsQ0FBQyxPQUFRLENBQUUsRUFBRyxTQUFBLENBQVcsRUFDekIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxVQUFBLENBQVksRUFDMUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxtRUFBQSxDQUFxRSxDQUNyRixRQ0xNQyxjQUFBQSxHQUFpQixDQUNyQixDQUFDLE9BQVEsQ0FBRSxFQUFHLGNBQUEsQ0FBZ0IsRUFDOUIsQ0FBQyxPQUFRLENBQUUsRUFBRyxvQkFBQSxDQUFzQixFQUNwQyxDQUNFLE9BQ0EsQ0FDRSxFQUFHLHNNQUFBLENBQ0wsQ0FFSixRQ1RNQyxjQUFBQSxHQUFxQixDQUN6QixDQUFDLE9BQVEsQ0FBRSxNQUFPLElBQUssT0FBUSxJQUFLLEVBQUcsSUFBSyxFQUFHLElBQUssR0FBSSxHQUFBLENBQUssRUFDN0QsQ0FBQyxPQUFRLENBQUUsRUFBRyx5QkFBQSxDQUEyQixFQUN6QyxDQUFDLE9BQVEsQ0FBRSxNQUFPLElBQUssT0FBUSxJQUFLLEVBQUcsS0FBTSxFQUFHLEtBQU0sR0FBSSxHQUFBLENBQUssQ0FDakUsUUNKTUMsY0FBQUEsR0FBbUIsQ0FDdkIsQ0FDRSxPQUNBLENBQ0UsRUFBRyxtTUFBQSxDQUNMLENBRUosUUNQTUMsY0FBQUEsR0FBYyxDQUNsQixDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxFQUM1QixDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxDQUM5QixRQ0hNQyxjQUFBQSxHQUFvQixDQUN4QixDQUNFLE9BQ0EsQ0FDRSxFQUFHLCtLQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLGlCQUFBLENBQW1CLENBQ25DLFFDUk1DLGNBQUFBLEdBQW1CLENBQ3ZCLENBQUMsT0FBUSxDQUFFLEVBQUcseURBQUEsQ0FBMkQsRUFDekUsQ0FBQyxPQUFRLENBQUUsRUFBRyw4Q0FBQSxDQUFnRCxFQUM5RCxDQUNFLE9BQ0EsQ0FDRSxFQUFHLDBHQUFBLENBQ0wsRUFFRixDQUFDLE9BQVEsQ0FBRSxFQUFHLFlBQUEsQ0FBYyxDQUM5QixRQ1ZNQyxjQUFBQSxHQUFnQixDQUNwQixDQUNFLE9BQ0EsQ0FDRSxFQUFHLDZKQUFBLENBQ0wsQ0FFSixRQ1BNQyxjQUFBQSxHQUFtQixDQUN2QixDQUFDLFNBQVUsQ0FBRSxHQUFJLEtBQU0sR0FBSSxLQUFNLEVBQUcsR0FBQSxDQUFLLEVBQ3pDLENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLFFBQVMsR0FBSSxLQUFNLEdBQUksT0FBQSxDQUFTLEVBQ3pELENBQUMsT0FBUSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxJQUFLLEdBQUksSUFBQSxDQUFNLEVBQ2xELENBQUMsT0FBUSxDQUFFLEdBQUksSUFBSyxHQUFJLEtBQU0sR0FBSSxLQUFNLEdBQUksSUFBQSxDQUFNLENBQ3BELFFDTE1DLGNBQUFBLEdBQW9CLENBQ3hCLENBQUMsU0FBVSxDQUFFLEdBQUksS0FBTSxHQUFJLEtBQU0sRUFBRyxHQUFBLENBQUssRUFDekMsQ0FBQyxPQUFRLENBQUUsR0FBSSxLQUFNLEdBQUksUUFBUyxHQUFJLEtBQU0sR0FBSSxPQUFBLENBQVMsRUFDekQsQ0FBQyxPQUFRLENBQUUsR0FBSSxJQUFLLEdBQUksS0FBTSxHQUFJLEtBQU0sR0FBSSxJQUFBLENBQU0sQ0FDcEQsSUNqQkEsSUFBQUMsR0FBQSxHQUFBQyxHQUFBRCxHQUFBLGdCQUFBRSxHQUFBLGFBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsa0JBQUFDLEdBQUEsYUFBQUMsR0FBQSxtQkFBQUMsR0FBQSxZQUFBQyxHQUFBLFlBQUFDLEdBQUEsZUFBQUMsR0FBQSxlQUFBQyxHQUFBLG9CQUFBRCxHQUFBLG9CQUFBRSxHQUFBLGtCQUFBQyxHQUFBLG1CQUFBQyxHQUFBLGVBQUFGLEdBQUEsY0FBQUUsR0FBQSxlQUFBQyxHQUFBLFVBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsaUJBQUFDLEdBQUEsa0JBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsMEJBQUFDLEdBQUEsd0JBQUFDLEdBQUEsdUJBQUFDLEdBQUEscUJBQUFDLEdBQUEsb0NBQUFDLEdBQUEsaUNBQUFDLEdBQUEsbUNBQUFDLEdBQUEsaUNBQUFDLEdBQUEsOEJBQUFDLEdBQUEsZ0NBQUFDLEdBQUEsK0JBQUFDLEdBQUEsZ0NBQUFDLEdBQUEsaUJBQUFDLEdBQUEsY0FBQUMsR0FBQSxlQUFBQyxHQUFBLHlCQUFBQyxHQUFBLHVCQUFBQyxHQUFBLGtDQUFBQyxHQUFBLCtCQUFBQyxHQUFBLGlDQUFBQyxHQUFBLCtCQUFBQyxHQUFBLDRCQUFBQyxHQUFBLDhCQUFBQyxHQUFBLDZCQUFBQyxHQUFBLDhCQUFBQyxHQUFBLGNBQUFDLEdBQUEsY0FBQUMsR0FBQSxlQUFBQyxHQUFBLFlBQUFDLEdBQUEsV0FBQUMsR0FBQSxVQUFBQyxHQUFBLFlBQUFDLEdBQUEsWUFBQUMsR0FBQSxVQUFBQyxHQUFBLGFBQUFDLEdBQUEsY0FBQUMsR0FBQSxpQkFBQUMsR0FBQSxVQUFBQyxHQUFBLFlBQUFDLEdBQUEsbUJBQUFDLEdBQUEsYUFBQUMsR0FBQSxjQUFBQyxHQUFBLGFBQUFDLEdBQUEsaUJBQUFDLEdBQUEscUJBQUFDLEdBQUEsaUJBQUFDLEdBQUEscUJBQUFDLEdBQUEsa0JBQUFDLEdBQUEsc0JBQUFDLEdBQUEsZUFBQUMsR0FBQSxtQkFBQUMsR0FBQSxjQUFBQyxHQUFBLGdCQUFBQyxHQUFBLGdCQUFBQyxHQUFBLGdCQUFBQyxHQUFBLGdCQUFBQSxHQUFBLG9CQUFBQyxHQUFBLHNCQUFBQyxHQUFBLGtCQUFBQyxHQUFBLDRCQUFBQyxHQUFBLDRCQUFBQyxHQUFBLHdCQUFBQyxHQUFBLHdCQUFBQyxHQUFBLG1CQUFBQyxHQUFBLDZCQUFBQyxHQUFBLDZCQUFBQyxHQUFBLHlCQUFBQyxHQUFBLG9CQUFBQyxHQUFBLG1CQUFBQyxHQUFBLG9CQUFBQyxHQUFBLGdCQUFBQyxHQUFBLHdCQUFBQyxHQUFBLGdCQUFBQyxHQUFBLGdCQUFBQSxHQUFBLGNBQUFDLEdBQUEsb0JBQUFDLEdBQUEsc0JBQUFDLEdBQUEsbUJBQUFDLEdBQUEsb0JBQUFDLEdBQUEsb0JBQUFDLEdBQUEsZUFBQUMsR0FBQSxxQkFBQUMsR0FBQSx1QkFBQUMsR0FBQSxtQkFBQUMsR0FBQSxxQkFBQUMsR0FBQSxxQkFBQUMsR0FBQSxZQUFBQyxHQUFBLGNBQUFDLEdBQUEsY0FBQUMsR0FBQSxjQUFBQyxHQUFBLGNBQUFBLEdBQUEsa0JBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsbUJBQUFDLEdBQUEsb0JBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsMEJBQUFDLEdBQUEsMEJBQUFDLEdBQUEsc0JBQUFDLEdBQUEsc0JBQUFDLEdBQUEsaUJBQUFDLEdBQUEsMkJBQUFDLEdBQUEsMkJBQUFDLEdBQUEsdUJBQUFDLEdBQUEsa0JBQUFDLEdBQUEsa0JBQUFDLEdBQUEsc0JBQUFDLEdBQUEsY0FBQUMsR0FBQSxjQUFBQSxHQUFBLHFCQUFBQyxHQUFBLGFBQUFDLEdBQUEsbUJBQUFDLEdBQUEsV0FBQUMsR0FBQSxTQUFBQyxHQUFBLGVBQUFDLEdBQUEsa0JBQUFDLEdBQUEsVUFBQUMsR0FBQSxRQUFBQyxHQUFBLFdBQUFDLEdBQUEsV0FBQUEsR0FBQSxTQUFBQyxHQUFBLGFBQUFDLEdBQUEsVUFBQUMsR0FBQSxlQUFBQyxHQUFBLGNBQUFDLEdBQUEsZUFBQUMsR0FBQSxvQkFBQUMsR0FBQSxjQUFBQyxHQUFBLGNBQUFDLEdBQUEscUJBQUFDLEdBQUEsY0FBQUMsR0FBQSxxQkFBQUMsR0FBQSxlQUFBQyxHQUFBLGlCQUFBQyxHQUFBLGNBQUFDLEdBQUEsdUJBQUFDLEdBQUEsc0JBQUFQLEdBQUEsc0JBQUFRLEdBQUEsb0JBQUFDLEdBQUEscUJBQUFDLEdBQUEsV0FBQUMsR0FBQSxpQkFBQUMsR0FBQSxZQUFBQyxHQUFBLFFBQUFDLEdBQUEsV0FBQUMsR0FBQSxZQUFBQyxHQUFBLGFBQUFDLEdBQUEsc0JBQUFDLEdBQUEsb0JBQUFDLEdBQUEsY0FBQUMsR0FBQSxhQUFBQyxHQUFBLGNBQUFDLEdBQUEsY0FBQUMsR0FBQSxjQUFBQyxHQUFBLGdCQUFBQyxHQUFBLHVCQUFBQyxHQUFBLDBCQUFBQyxHQUFBLFlBQUFDLEdBQUEsV0FBQUMsR0FBQSxhQUFBQyxHQUFBLFNBQUFDLEdBQUEsWUFBQUMsR0FBQSxvQkFBQUMsR0FBQSxnQkFBQUMsR0FBQSxlQUFBQyxHQUFBLGtCQUFBQyxHQUFBLGdCQUFBQyxHQUFBLG1CQUFBQyxHQUFBLFdBQUFDLEdBQUEsU0FBQUMsR0FBQSxZQUFBQyxHQUFBLFFBQUFDLEdBQUEsY0FBQUMsR0FBQSxjQUFBQyxHQUFBLFNBQUFDLEdBQUEsU0FBQUMsR0FBQSxZQUFBQyxHQUFBLFNBQUFDLEdBQUEsWUFBQUMsR0FBQSxpQkFBQUMsR0FBQSxjQUFBQyxHQUFBLFlBQUFDLEdBQUEsYUFBQUMsR0FBQSxhQUFBQyxHQUFBLHdCQUFBQyxHQUFBLDBCQUFBQyxHQUFBLHlCQUFBRCxHQUFBLDJCQUFBQyxHQUFBLHVCQUFBQyxHQUFBLHlCQUFBQyxHQUFBLGlCQUFBQyxHQUFBLFNBQUFDLEdBQUEsV0FBQUMsR0FBQSxlQUFBQyxHQUFBLGNBQUFDLEdBQUEsU0FBQUMsR0FBQSxjQUFBQyxHQUFBLFlBQUFDLEdBQUEsVUFBQUMsR0FBQSxXQUFBQyxHQUFBLFdBQUFDLEdBQUEsY0FBQUMsR0FBQSx1QkFBQUMsR0FBQSxpQkFBQUMsR0FBQSx1QkFBQUMsR0FBQSxTQUFBQyxHQUFBLFNBQUFDLEdBQUEsU0FBQUMsR0FBQSxTQUFBQyxHQUFBLFNBQUFDLEdBQUEsVUFBQUMsR0FBQSxjQUFBQyxHQUFBLGNBQUFDLEdBQUEsY0FBQUMsR0FBQSxhQUFBQyxHQUFBLGVBQUFDLEdBQUEsYUFBQUMsR0FBQSxtQkFBQUMsR0FBQSxjQUFBQyxHQUFBLGNBQUFDLEdBQUEsWUFBQUMsR0FBQSxhQUFBQyxHQUFBLGVBQUFDLEdBQUEsY0FBQUMsR0FBQSxhQUFBQyxHQUFBLGtCQUFBQyxHQUFBLGlCQUFBQyxHQUFBLGFBQUFDLEdBQUEsZUFBQUMsR0FBQSxpQkFBQWIsR0FBQSxhQUFBYyxHQUFBLGFBQUFDLEdBQUEsV0FBQUMsR0FBQSxZQUFBQyxHQUFBLGFBQUFDLEdBQUEsVUFBQUMsR0FBQSxhQUFBQyxHQUFBLGtCQUFBQyxHQUFBLGtCQUFBQyxHQUFBLGlCQUFBQyxHQUFBLGNBQUFDLEdBQUEsWUFBQUMsR0FBQSxRQUFBQyxHQUFBLHFCQUFBQyxHQUFBLFdBQUFDLEdBQUEsZUFBQUMsR0FBQSxhQUFBQyxHQUFBLFFBQUFDLEdBQUEsY0FBQUMsR0FBQSxVQUFBQyxHQUFBLFdBQUFDLEdBQUEsYUFBQUMsR0FBQSxVQUFBQyxHQUFBLGlCQUFBQyxHQUFBLGFBQUFDLEdBQUEsY0FBQUMsR0FBQSxrQkFBQUMsR0FBQSxvQkFBQUMsR0FBQSxjQUFBQyxHQUFBLHNCQUFBQyxHQUFBLDBCQUFBQyxHQUFBLHFCQUFBQyxHQUFBLGlCQUFBQyxHQUFBLFVBQUFDLEdBQUEsa0JBQUFDLEdBQUEsWUFBQUMsR0FBQSxRQUFBQyxHQUFBLFdBQUFDLEdBQUEsWUFBQUMsR0FBQSxhQUFBQyxHQUFBLGNBQUFDLEdBQUEsUUFBQUMsR0FBQSxhQUFBQyxHQUFBLFVBQUFDLEdBQUEsYUFB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QUFBQyxHQUFBLHVCQUFBWCxHQUFBLGdCQUFBWSxHQUFBLGlCQUFBQyxHQUFBLGtCQUFBQSxHQUFBLGdCQUFBQyxHQUFBLGVBQUFDLEdBQUEsZUFBQUMsR0FBQSxlQUFBQyxHQUFBLG9CQUFBQyxHQUFBLFlBQUFDLEdBQUEsaUJBQUFDLEdBQUEsV0FBQUMsR0FBQSxpQkFBQUMsR0FBQSxjQUFBQyxHQUFBLG1CQUFBQyxHQUFBLG1CQUFBQyxHQUFBLGtCQUFBQyxHQUFBLGtCQUFBQyxHQUFBLGtCQUFBQyxHQUFBLG1CQUFBQyxHQUFBLG1CQUFBQyxHQUFBLGlCQUFBSCxHQUFBLHFCQUFBSSxHQUFBLGtCQUFBQyxHQUFBLHVCQUFBRCxHQUFBLGtCQUFBRSxHQUFBLGVBQUFDLEdBQUEsVUFBQUMsR0FBQSxXQUFBQyxHQUFBLFlBQUFDLEdBQUEsWUFBQUMsR0FBQSxZQUFBQyxHQUFBLFdBQUFDLEdBQUEsV0FBQUMsR0FBQSxXQUFBQyxHQUFBLFdBQUFDLEdBQUEsV0FBQUMsR0FBQSxXQUFBQyxHQUFBLFdBQUFDLEdBQUEsV0FBQUMsR0FBQSxlQUFBQyxHQUFBLG1CQUFBQyxHQUFBLGlCQUFBQyxHQUFBLGVBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsY0FBQUMsR0FBQSxrQkFBQUMsR0FBQSxVQUFBQyxHQUFBLGVBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsZUFBQUMsR0FBQSxhQUFBQyxHQUFBLGtCQUFBQyxHQUFBLGlCQUFBQyxHQUFBLGFBQUFDLEdBQUEsY0FBQUMsR0FBQSxtQkFBQUMsR0FBQSxjQUFBQyxHQUFBLGtCQUFBQyxHQUFBLGFBQUFDLEdBQUEsY0FBQUMsR0FBQSxrQkFBQUMsR0FBQSxjQUFBQyxHQUFBLGFBQUFDLEdBQUEsaUJBQUFDLEdBQUEsY0FBQUMsR0FBQSxnQkFBQUMsR0FBQSxXQUFBQyxHQUFBLFdBQUFDLEdBQUEsU0FBQUMsR0FBQSxTQUFBQyxHQUFBLFVBQUFDLEdBQUEsZUFBQUMsR0FBQSxZQUFBRCxHQUFBLFlBQUFFLEdBQUEsZ0JBQUFDLEdBQUEsV0FBQUMsR0FBQSxRQUFBQyxHQUFBLFVBQUFDLEdBQUEsWUFBQUMsR0FBQSxhQUFBQSxHQUFBLGFBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsYUFBQUMsR0FBQSxvQkFBQUQsR0FBQSxZQUFBRSxHQUFBLFlBQUFDLEdBQUEsWUFBQUMsR0FBQSxjQUFBQyxHQUFBLGFBQUFDLEdBQUEsa0JBQUFDLEdBQUEsU0FBQUMsR0FBQSxpQkFBQUMsR0FBQSxZQUFBQyxHQUFBLGFBQUFDLEdBQUEsaUJBQUFBLEdBQUEsY0FBQUMsR0FBQSxhQUFBQyxHQUFBLFdBQUFDLEdBQUEsZUFBQUMsR0FBQSxTQUFBQyxHQUFBLGNBQUFDLEdBQUEsY0FBQUMsR0FBQSxhQUFBQyxHQUFBLGNBQUFDLEdBQUEsVUFBQUMsR0FBQSxhQUFBQyxHQUFBLGNBQUFDLEdBQUEsbUJBQUFDLEdBQUEsb0JBQUFDLEdBQUEsbUJBQUFDLEdBQUEsaUJBQUFDLEdBQUEsb0JBQUFDLEdBQUEsa0JBQUFDLEdBQUEsaUJBQUFDLEdBQUEsa0JBQUFDLEdBQUEsUUFBQUMsR0FBQSxvQkFBQUMsR0FBQSxlQUFBQyxHQUFBLGNBQUFDLEdBQUEsU0FBQUMsR0FBQSxVQUFBQyxHQUFBLGNBQUFDLEdBQUEsVUFBQUMsR0FBQSxXQUFBQyxHQUFBLFlBQUFDLEdBQUEsZ0JBQUE5USxHQUFBLGFBQUErUSxHQUFBLGFBQUFDLEdBQUEsUUFBQUMsR0FBQSxhQUFBQyxHQUFBLG1CQUFBQyxHQUFBLGdCQUFBQyxHQUFBLHNCQUFBQyxHQUFBLHVCQUFBQyxHQUFBLFdBQUFDLEdBQUEsWUFBQUMsR0FBQSxhQUFBQyxHQUFBLFlBQUFDLEdBQUEsaUJBQUFDLEdBQUEsbUJBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsVUFBQUMsR0FBQSxVQUFBQyxHQUFBLFVBQUFDLEdBQUEsVUFBQUMsR0FBQSxVQUFBQyxHQUFBLFVBQUFDLEdBQUEsVUFBQUMsR0FBQSxTQUFBQyxHQUFBLFNBQUFDLEdBQUEsVUFBQUMsR0FBQSxVQUFBQyxHQUFBLGNBQUFDLEdBQUEsV0FBQUMsR0FBQSxpQkFBQXRLLEdBQUEsaUJBQUF1SyxHQUFBLFFB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QUEsaUJBQUFDLEdBQUEsZUFBQUMsR0FBQSxlQUFBQyxHQUFBLGdCQUFBQyxHQUFBLGVBQUFDLEdBQUEsaUJBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsc0JBQUFDLEdBQUEsbUJBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsY0FBQUMsR0FBQSxhQUFBQyxHQUFBLFNBQUFDLEdBQUEsYUFBQUMsR0FBQSxtQkFBQXRkLEdBQUEsaUJBQUFDLEdBQUEsY0FBQXNkLEdBQUEsYUFBQUMsR0FBQSxpQkFBQUMsR0FBQSxVQUFBQyxHQUFBLGFBQUFDLEdBQUEsaUJBQUFDLEdBQUEsa0JBQUFDLEdBQUEscUJBQUFDLEdBQUEsb0JBQUFDLEdBQUEsc0JBQUFDLEdBQUEsNkJBQUFDLEdBQUEsU0FBQUMsR0FBQSxXQUFBQyxHQUFBLFdBQUFBLEdBQUEsaUJBQUFDLEdBQUEsa0JBQUFDLEdBQUEsYUFBQUMsR0FBQSxpQkFBQUMsR0FBQSxrQkFBQUMsR0FBQSxtQkFBQUMsR0FBQSxhQUFBQyxHQUFBLGNBQUFDLEdBQUEsV0FBQUMsR0FBQSxlQUFBQyxHQUFBLGdCQUFBQyxHQUFBLGlCQUFBQyxHQUFBLFVBQUFDLEdBQUEsV0FBQUMsR0FBQSxXQUFBQyxHQUFBLFdBQUFDLEdBQUEsZUFBQUMsR0FBQSxnQkFBQUMsR0FBQSxtQkFBQUMsR0FBQSxrQkFBQUMsR0FBQSxZQUFBQyxHQUFBLGNBQUFDLEdBQUEsUUFBQUMsR0FBQSxjQUFBQyxHQUFBLGFBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsaUJBQUFDLEdBQUEsaUJBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsc0JBQUFDLEdBQUEsUUFBQUMsR0FBQSxXQUFBQyxHQUFBLFlBQUFDLEdBQUEsaUJBQUF0a0MsR0FBQSxpQkFBQXVrQyxHQUFBLGlCQUFBQyxHQUFBLGFBQUFDLEdBQUEsVUFBQUMsR0FBQSxXQUFBQyxHQUFBLFVBQUFDLEdBQUEsWUFBQUMsR0FBQSxZQUFBeFAsR0FBQSxZQUFBeVAsR0FBQSxhQUFBQyxHQUFBLGlCQUFBQyxHQUFBLGlCQUFBQyxHQUFBLGdCQUFBQyxHQUFBLGdCQUFB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QkFBQUMsR0FBQSxlQUFBQyxHQUFBLGdCQUFBQyxHQUFBLFlBQUFDLEdBQUEsWUFBQUMsR0FBQSxTQUFBQyxHQUFBLGtCQUFBQyxHQUFBLG1CQUFBQSxHQUFBLGVBQUFDLEdBQUEsd0JBQUFDLEdBQUEsc0JBQUFDLEdBQUEsV0FBQUMsR0FBQSxjQUFBQyxHQUFBLGdCQUFBQyxHQUFBLGNBQUFDLEdBQUEsYUFBQUMsR0FBQSxjQUFBQyxHQUFBLFdBQUFDLEdBQUEsVUFBQUMsR0FBQSxXQUFBQyxHQUFBLFVBQUFDLEdBQUEsVUFBQUMsR0FBQSxXQUFBQyxHQUFBLGdCQUFBQyxHQUFBLGNBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsbUJBQUFDLEdBQUEsZUFBQUMsR0FBQSxnQkFBQUMsR0FBQSxjQUFBQyxHQUFBLGVBQUFDLEdBQUEsbUJBQUFDLEdBQUEsdUJBQUFBLEdBQUEsZUFBQUMsR0FBQSxZQUFBUCxHQUFBLFNBQUFRLEdBQUEsY0FBQUMsR0FBQSxVQUFBQyxHQUFBLGdCQUFBQyxHQUFBLG1CQUFBQyxHQUFBLGlCQUFBQyxHQUFBLFdBQUFDLEdBQUEsZUFBQUMsR0FBQSxhQUFBQyxHQUFBLFdBQUFDLEdBQUEsV0FBQUMsR0FBQSxVQUFBQyxHQUFBLFlBQUFDLEdBQUEsWUFBQTNPLEdBQUEsaUJBQUFDLEdBQUEsZ0JBQUFFLEdBQUEsVUFBQXlPLEdBQUEsZ0JBQUFDLEdBQUEsV0FBQUMsR0FBQSxlQUFBQyxHQUFBLGNBQUFDLEdBQUEsaUJBQUFDLEdBQUEsZUFBQUMsR0FBQSxjQUFBQyxHQUFBLGFBQUFDLEdBQUEsZ0JBQUFDLEdBQUEsVUFBQUMsR0FBQSxhQUFBQyxHQUFBLGdCQUFBQyxHQUFBLFVBQUFDLEdBQUEsVUFBQUMsR0FBQSxVQUFBQyxHQUFBLGdCQUFBQyxHQUFBLFVBQUFDLEdBQUEsWUFBQUMsR0FBQSxzQkFBQUMsR0FBQSxvQkFBQUQsR0FBQSxlQUFBRSxHQUFBLHVCQUFBQyxHQUFBLGtCQUFBQyxHQUFBLFVBQUFDLEdBQUEsY0FBQUMsR0FBQSxVQUFBQyxHQUFBLGNB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LE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FDLE1BQ0FD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Q0FBRSxDQUFDLEtBR3pCQSxFQUFTLENBQUUsS0FBTSxNQUFNLENBQUUsQ0FBQyxLQUcxQkEsRUFBUyxDQUFFLEtBQU0sTUFBTSxDQUFFLENBQUMsS0FHMUJBLEVBQVMsQ0FBRSxLQUFNLE9BQU8sQ0FBRSxDQUFDLEtBRzNCQSxFQUFTLENBQUUsS0FBTSxNQUFNLENBQUUsQ0FBQyxLQUcxQkEsRUFBUyxDQUFFLEtBQU0sS0FBSyxDQUFFLENBQUMsS0FHekJBLEVBQVMsQ0FBRSxLQUFNLE9BQU8sQ0FBRSxDQUFDLEtBSTNCQSxFQUFTLENBQUUsS0FBTSxNQUFNLENBQUUsQ0FBQyxLQUcxQkEsRUFBUyxDQUFFLEtBQU0sTUFBTSxDQUFFLENBQUMsS0FHMUJBLEVBQVMsQ0FBRSxLQUFNLEtBQUssQ0FBRSxDQUFDLE1BR3pCQSxFQUFTLENBQUUsS0FBTSxLQUFLLENBQUUsQ0FBQyxNQUd6QkEsRUFBUyxDQUFFLEtBQU0sS0FBSyxDQUFFLENBQUMsTUFHekJBLEVBQVMsQ0FBRSxLQUFNLE1BQU0sQ0FBRSxDQUFDLEtBSTFCQSxFQUFTLENBQUUsS0FBTSxNQUFNLENBQUUsQ0FBQyxNQUcxQkEsRUFBUyxDQUFFLEtBQU0sS0FBSyxDQUFFLENBQUMsTUFHekJBLEVBQVMsQ0FBRSxLQUFNLE1BQU0sQ0FBRSxDQUFDLE1BSTFCQSxFQUFTLENBQUUsS0FBTSxPQUFPLENBQUUsQ0FBQyxNQUczQkEsRUFBUyxDQUFFLEtBQU0sT0FBTyxDQUFFLENBQUMsTUFJM0JBLEVBQVMsQ0FBRSxLQUFNLE9BQU8sQ0FBRSxDQUFDLE1BRzNCQSxFQUFTLENBQUUsS0FBTSxPQUFPLENBQUUsQ0FBQyxNQUczQkEsRUFBUyxDQUFFLEtBQU0sT0FBTyxDQUFFLENBQUMsTUFHM0JBLEVBQVMsQ0FBRSxLQUFNLE9BQU8sQ0FBRSxDQUFDLE1BRzNCQSxFQUFTLENBQUUsS0FBTSxNQUFNLENBQUUsQ0FBQyxNQUkxQkMsR0FBSyxDQUFFLE1BR1BBLEdBQUssQ0FBRSxNQUlQRCxFQUFTLENBQUUsS0FBTSxLQUFLLENBQUUsQ0FBQyxNQUd6QkEs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LEdBQUEsT0FBQSxDQUFBLElBQUFYLEdBQUEsZUFBQUEsRUFBQSxJQUFBQSxHQUFBQSxFQUFTLFdBQVUsSUFBQSxDQUFBQSxFQUFBQyxLQUFBLENBQUFELEVBQVYsV0FBVUMsRUFBQSxDQUFBLEVBQUEsU0FBQUMsQ0FBQSxFQUFBVSxFQUFBQyxDQUFBLEVBR25CZixHQUFBLEtBQUEsS0FBQWdCLEVBQUEsQ0FBQSxLQUFBLFdBQUEsS0FBQSxTQUFBLE9BQUEsR0FBQSxRQUFBLEdBQUEsT0FBQSxDQUFBLElBQUFkLEdBQUEsV0FBQUEsRUFBQSxJQUFBQSxHQUFBQSxFQUFTLE9BQU0sSUFBQSxDQUFBQSxFQUFBQyxLQUFBLENBQUFELEVBQU4sT0FBTUMsRUFBQSxDQUFBLEVBQUEsU0FBQUMsQ0FBQSxFQUFBYSxFQUFBQyxDQUFBLEVBR2ZsQixHQUFBLEtBQUEsS0FBQW1CLEVBQUEsQ0FBQSxLQUFBLFdBQUEsS0FBQSxXQUFBLE9BQUEsR0FBQSxRQUFBLEdBQUEsT0FBQSxDQUFBLElBQUFqQixHQUFBLGFBQUFBLEVBQUEsSUFBQUEsR0FBQUEsRUFBUyxTQUFRLElBQUEsQ0FBQUEsRUFBQUMsS0FBQSxDQUFBRCxFQUFSLFNBQVFDLEVBQUEsQ0FBQSxFQUFBLFNBQUFDLENBQUEsRUFBQWdCLEVBQUFDLENBQUEsRUFHakJyQixHQUFBLEtBQUEsS0FBQXNCLEVBQUEsQ0FBQSxLQUFBLFdBQUEsS0FBQSxVQUFBLE9BQUEsR0FBQSxRQUFBLEdBQUEsT0FBQSxDQUFBLElBQUFwQixHQUFBLFlBQUFBLEVBQUEsSUFBQUEsR0FBQUEsRUFBUyxRQUFPLElBQUEsQ0FBQUEsRUFBQUMsS0FBQSxDQUFBRCxFQUFQLFFBQU9DLEVBQUEsQ0FBQSxFQUFBLFNBQUFDLENBQUEsRUFBQW1CLEVBQUFDLENBQUEsRUFHaEJ4QixHQUFBLEtBQUEsS0FBQXlCLEVBQUEsQ0FBQSxLQUFBLFdBQUEsS0FBQSxXQUFBLE9BQUEsR0FBQSxRQUFBLEdBQUEsT0FBQSxDQUFBLElBQUF2QixHQUFBLGFBQUFBLEVBQUEsSUFBQUEsR0FBQUEsRUFB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QUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsS0EwVkYsR0E5WEtYLEdBQUFsQixHQUFBLEVBQU1hIiwKICAibmFtZXMiOiBbImdsb2JhbCIsICJzdXBwb3J0c0Fkb3B0aW5nU3R5bGVTaGVldHMiLCAiY29uc3RydWN0aW9uVG9rZW4iLCAiY3NzVGFnQ2FjaGUiLCAiQ1NTUmVzdWx0IiwgInVuc2FmZUNTUyIsICJjc3MiLCAiYWRvcHRTdHlsZXMiLCAiZ2V0Q29tcGF0aWJsZVN0eWxlIiwgImdsb2JhbFRoaXMiLCAiU2hhZG93Um9vdCIsICJTaGFkeUNTUyIsICJuYXRpdmVTaGFkb3ciLCAiRG9jdW1lbnQiLCAicHJvdG90eXBlIiwgIkNTU1N0eWxlU2hlZXQiLCAiU3ltYm9sIiwgIldlYWtNYXAiLCAiY3NzVGV4dCIsICJzdHJpbmdzIiwgInNhZmVUb2tlbiIsICJ0aGlzIiwgIkVycm9yIiwgIl9zdHJpbmdzIiwgInN0eWxlU2hlZXQiLCAiX3N0eWxlU2hlZXQiLCAiY2FjaGVhYmxlIiwgImxlbmd0aCIsICJnZXQiLCAicmVwbGFjZVN5bmMiLCAic2V0IiwgInRvU3RyaW5nIiwgInZhbHVlIiwgIlN0cmluZyIsICJ2YWx1ZXMiLCAicmVkdWNlIiwgImFjYyIsICJ2IiwgImlkeCIsICJyZW5kZXJSb290IiwgInN0eWxlcyIsICJhZG9wdGVkU3R5bGVTaGVldHMiLCAibWFwIiwgInMiLCAic3R5bGUiLCAiZG9jdW1lbnQiLCAiY3JlYXRlRWxlbWVudCIsICJub25jZSIsICJzZXRBdHRyaWJ1dGUiLCAidGV4dENvbnRlbnQiLCAiYXBwZW5kQ2hpbGQiLCAic2hlZXQiLCAicnVsZSIsICJjc3NSdWxlcyIsICJpcyIsICJkZWZpbmVQcm9wZXJ0eSIsICJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCAiZ2V0T3duUHJvcGVydHlOYW1lcyIsICJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCAiZ2V0UHJvdG90eXBlT2YiLCAiZ2xvYmFsIiwgInRydXN0ZWRUeXBlcyIsICJlbXB0eVN0cmluZ0ZvckJvb2xlYW5BdHRyaWJ1dGUiLCAicG9seWZpbGxTdXBwb3J0IiwgIkpTQ29tcGlsZXJfcmVuYW1lUHJvcGVydHkiLCAiZGVmYXVsdENvbnZlcnRlciIsICJub3RFcXVhbCIsICJkZWZhdWx0UHJvcGVydHlEZWNsYXJhdGlvbiIsICJSZWFjdGl2ZUVsZW1lbnQiLCAiT2JqZWN0IiwgImdsb2JhbFRoaXMiLCAiZW1wdHlTY3JpcHQiLCAicmVhY3RpdmVFbGVtZW50UG9seWZpbGxTdXBwb3J0IiwgInByb3AiLCAiX29iaiIsICJ2YWx1ZSIsICJ0eXBlIiwgIkJvb2xlYW4iLCAiQXJyYXkiLCAiSlNPTiIsICJzdHJpbmdpZnkiLCAiZnJvbVZhbHVlIiwgIk51bWJlciIsICJwYXJzZSIsICJlIiwgIm9sZCIsICJhdHRyaWJ1dGUiLCAiU3RyaW5nIiwgImNvbnZlcnRlciIsICJyZWZsZWN0IiwgInVzZURlZmF1bHQiLCAiaGFzQ2hhbmdlZCIsICJTeW1ib2wiLCAibWV0YWRhdGEiLCAibGl0UHJvcGVydHlNZXRhZGF0YSIsICJXZWFrTWFwIiwgIkhUTUxFbGVtZW50IiwgImluaXRpYWxpemVyIiwgInRoaXMiLCAiX19wcmVwYXJlIiwgIl9pbml0aWFsaXplcnMiLCAicHVzaCIsICJvYnNlcnZlZEF0dHJpYnV0ZXMiLCAiZmluYWxpemUiLCAiX19hdHRyaWJ1dGVUb1Byb3BlcnR5TWFwIiwgImtleXMiLCAibmFtZSIsICJvcHRpb25zIiwgInN0YXRlIiwgInByb3RvdHlwZSIsICJoYXNPd25Qcm9wZXJ0eSIsICJjcmVhdGUiLCAid3JhcHBlZCIsICJlbGVtZW50UHJvcGVydGllcyIsICJzZXQiLCAibm9BY2Nlc3NvciIsICJrZXkiLCAiZGVzY3JpcHRvciIsICJnZXRQcm9wZXJ0eURlc2NyaXB0b3IiLCAiZ2V0IiwgInYiLCAib2xkVmFsdWUiLCAiY2FsbCIsICJyZXF1ZXN0VXBkYXRlIiwgImNvbmZpZ3VyYWJsZSIsICJlbnVtZXJhYmxlIiwgInN1cGVyQ3RvciIsICJNYXAiLCAiZmluYWxpemVkIiwgInByb3BzIiwgInByb3BlcnRpZXMiLCAicHJvcEtleXMiLCAicCIsICJjcmVhdGVQcm9wZXJ0eSIsICJhdHRyIiwgIl9fYXR0cmlidXRlTmFtZUZvclByb3BlcnR5IiwgImVsZW1lbnRTdHlsZXMiLCAiZmluYWxpemVTdHlsZXMiLCAic3R5bGVzIiwgImlzQXJyYXkiLCAiU2V0IiwgImZsYXQiLCAiSW5maW5pdHkiLCAicmV2ZXJzZSIsICJzIiwgInVuc2hpZnQiLCAiZ2V0Q29tcGF0aWJsZVN0eWxlIiwgInRvTG93ZXJDYXNlIiwgImNvbnN0cnVjdG9yIiwgInN1cGVyIiwgIl9faW5zdGFuY2VQcm9wZXJ0aWVzIiwgImlzVXBkYXRlUGVuZGluZyIsICJoYXNVcGRhdGVkIiwgIl9fcmVmbGVjdGluZ1Byb3BlcnR5IiwgIl9faW5pdGlhbGl6ZSIsICJfX3VwZGF0ZVByb21pc2UiLCAiUHJvbWlzZSIsICJyZXMiLCAiZW5hYmxlVXBkYXRpbmciLCAiXyRjaGFuZ2VkUHJvcGVydGllcyIsICJfX3NhdmVJbnN0YW5jZVByb3BlcnRpZXMiLCAiZm9yRWFjaCIsICJpIiwgImNvbnRyb2xsZXIiLCAiX19jb250cm9sbGVycyIsICJhZGQiLCAicmVuZGVyUm9vdCIsICJpc0Nvbm5lY3RlZCIsICJob3N0Q29ubmVjdGVkIiwgImRlbGV0ZSIsICJpbnN0YW5jZVByb3BlcnRpZXMiLCAic2l6ZSIsICJjcmVhdGVSZW5kZXJSb290IiwgInNoYWRvd1Jvb3QiLCAiYXR0YWNoU2hhZG93IiwgInNoYWRvd1Jvb3RPcHRpb25zIiwgImFkb3B0U3R5bGVzIiwgImNvbm5lY3RlZENhbGxiYWNrIiwgImMiLCAiX3JlcXVlc3RlZFVwZGF0ZSIsICJkaXNjb25uZWN0ZWRDYWxsYmFjayIsICJob3N0RGlzY29ubmVjdGVkIiwgIl9vbGQiLCAiXyRhdHRyaWJ1dGVUb1Byb3BlcnR5IiwgImF0dHJWYWx1ZSIsICJ0b0F0dHJpYnV0ZSIsICJyZW1vdmVBdHRyaWJ1dGUiLCAic2V0QXR0cmlidXRlIiwgImN0b3IiLCAicHJvcE5hbWUiLCAiZ2V0UHJvcGVydHlPcHRpb25zIiwgImZyb21BdHRyaWJ1dGUiLCAiY29udmVydGVkVmFsdWUiLCAiX19kZWZhdWx0VmFsdWVzIiwgInVzZU5ld1ZhbHVlIiwgIm5ld1ZhbHVlIiwgImhhc0F0dHJpYnV0ZSIsICJfJGNoYW5nZVByb3BlcnR5IiwgIl9fZW5xdWV1ZVVwZGF0ZSIsICJpbml0aWFsaXplVmFsdWUiLCAiaGFzIiwgIl9fcmVmbGVjdGluZ1Byb3BlcnRpZXMiLCAicmVqZWN0IiwgInJlc3VsdCIsICJzY2hlZHVsZVVwZGF0ZSIsICJwZXJmb3JtVXBkYXRlIiwgInNob3VsZFVwZGF0ZSIsICJjaGFuZ2VkUHJvcGVydGllcyIsICJ3aWxsVXBkYXRlIiwgImhvc3RVcGRhdGUiLCAidXBkYXRlIiwgIl9fbWFya1VwZGF0ZWQiLCAiXyRkaWRVcGRhdGUiLCAiX2NoYW5nZWRQcm9wZXJ0aWVzIiwgImhvc3RVcGRhdGVkIiwgImZpcnN0VXBkYXRlZCIsICJ1cGRhdGVkIiwgInVwZGF0ZUNvbXBsZXRlIiwgImdldFVwZGF0ZUNvbXBsZXRlIiwgIl9fcHJvcGVydHlUb0F0dHJpYnV0ZSIsICJtb2RlIiwgInJlYWN0aXZlRWxlbWVudFZlcnNpb25zIiwgInRydXN0RnJvbVRlbXBsYXRlU3RyaW5nIiwgInRzYSIsICJzdHJpbmdGcm9tVFNBIiwgImlzQXJyYXkiLCAiaGFzT3duUHJvcGVydHkiLCAiRXJyb3IiLCAicG9saWN5IiwgImNyZWF0ZUhUTUwiLCAicmVzb2x2ZURpcmVjdGl2ZSIsICJwYXJ0IiwgInZhbHVlIiwgInBhcmVudCIsICJhdHRyaWJ1dGVJbmRleCIsICJub0NoYW5nZSIsICJjdXJyZW50RGlyZWN0aXZlIiwgIl9fZGlyZWN0aXZlcyIsICJfX2RpcmVjdGl2ZSIsICJuZXh0RGlyZWN0aXZlQ29uc3RydWN0b3IiLCAiaXNQcmltaXRpdmUiLCAiY29uc3RydWN0b3IiLCAiXyRpbml0aWFsaXplIiwgIl8kcmVzb2x2ZSIsICJ2YWx1ZXMiLCAiZ2xvYmFsIiwgIndyYXAiLCAidHJ1c3RlZFR5cGVzIiwgImJvdW5kQXR0cmlidXRlU3VmZml4IiwgIm1hcmtlciIsICJtYXJrZXJNYXRjaCIsICJub2RlTWFya2VyIiwgImQiLCAiY3JlYXRlTWFya2VyIiwgImlzSXRlcmFibGUiLCAiU1BBQ0VfQ0hBUiIsICJ0ZXh0RW5kUmVnZXgiLCAiY29tbWVudEVuZFJlZ2V4IiwgImNvbW1lbnQyRW5kUmVnZXgiLCAidGFnRW5kUmVnZXgiLCAic2luZ2xlUXVvdGVBdHRyRW5kUmVnZXgiLCAiZG91YmxlUXVvdGVBdHRyRW5kUmVnZXgiLCAicmF3VGV4dEVsZW1lbnQiLCAidGFnIiwgImh0bWwiLCAic3ZnIiwgIm1hdGhtbCIsICJub3RoaW5nIiwgInRlbXBsYXRlQ2FjaGUiLCAid2Fsa2VyIiwgImdldFRlbXBsYXRlSHRtbCIsICJUZW1wbGF0ZSIsICJUZW1wbGF0ZUluc3RhbmNlIiwgIkNoaWxkUGFydCIsICJBdHRyaWJ1dGVQYXJ0IiwgIlByb3BlcnR5UGFydCIsICJCb29sZWFuQXR0cmlidXRlUGFydCIsICJFdmVudFBhcnQiLCAiRWxlbWVudFBhcnQiLCAiXyRMSCIsICJwb2x5ZmlsbFN1cHBvcnQiLCAicmVuZGVyIiwgImdsb2JhbFRoaXMiLCAibm9kZSIsICJjcmVhdGVQb2xpY3kiLCAicyIsICJNYXRoIiwgInJhbmRvbSIsICJ0b0ZpeGVkIiwgInNsaWNlIiwgImRvY3VtZW50IiwgImNyZWF0ZUNvbW1lbnQiLCAiQXJyYXkiLCAiU3ltYm9sIiwgIml0ZXJhdG9yIiwgIlJlZ0V4cCIsICJ0eXBlIiwgInN0cmluZ3MiLCAiXyRsaXRUeXBlJCIsICJmb3IiLCAiV2Vha01hcCIsICJjcmVhdGVUcmVlV2Fsa2VyIiwgImwiLCAibGVuZ3RoIiwgImF0dHJOYW1lcyIsICJyYXdUZXh0RW5kUmVnZXgiLCAicmVnZXgiLCAiaSIsICJhdHRyTmFtZSIsICJtYXRjaCIsICJhdHRyTmFtZUVuZEluZGV4IiwgImxhc3RJbmRleCIsICJleGVjIiwgInRlc3QiLCAiZW5kIiwgInN0YXJ0c1dpdGgiLCAicHVzaCIsICJvcHRpb25zIiwgInRoaXMiLCAicGFydHMiLCAibm9kZUluZGV4IiwgImF0dHJOYW1lSW5kZXgiLCAicGFydENvdW50IiwgImVsIiwgImNyZWF0ZUVsZW1lbnQiLCAiY3VycmVudE5vZGUiLCAiY29udGVudCIsICJ3cmFwcGVyIiwgImZpcnN0Q2hpbGQiLCAicmVwbGFjZVdpdGgiLCAiY2hpbGROb2RlcyIsICJuZXh0Tm9kZSIsICJub2RlVHlwZSIsICJoYXNBdHRyaWJ1dGVzIiwgIm5hbWUiLCAiZ2V0QXR0cmlidXRlTmFtZXMiLCAiZW5kc1dpdGgiLCAicmVhbE5hbWUiLCAic3RhdGljcyIsICJnZXRBdHRyaWJ1dGUiLCAic3BsaXQiLCAibSIsICJpbmRleCIsICJjdG9yIiwgInJlbW92ZUF0dHJpYnV0ZSIsICJ0YWdOYW1lIiwgInRleHRDb250ZW50IiwgImVtcHR5U2NyaXB0IiwgImFwcGVuZCIsICJkYXRhIiwgImluZGV4T2YiLCAiX29wdGlvbnMiLCAiaW5uZXJIVE1MIiwgInRlbXBsYXRlIiwgIl8kcGFydHMiLCAiXyRkaXNjb25uZWN0YWJsZUNoaWxkcmVuIiwgIl8kdGVtcGxhdGUiLCAiXyRwYXJlbnQiLCAicGFyZW50Tm9kZSIsICJfJGlzQ29ubmVjdGVkIiwgImZyYWdtZW50IiwgImNyZWF0aW9uU2NvcGUiLCAiaW1wb3J0Tm9kZSIsICJwYXJ0SW5kZXgiLCAidGVtcGxhdGVQYXJ0IiwgIm5leHRTaWJsaW5nIiwgIl8kc2V0VmFsdWUiLCAiX19pc0Nvbm5lY3RlZCIsICJzdGFydE5vZGUiLCAiZW5kTm9kZSIsICJfJGNvbW1pdHRlZFZhbHVlIiwgIl8kc3RhcnROb2RlIiwgIl8kZW5kTm9kZSIsICJpc0Nvbm5lY3RlZCIsICJkaXJlY3RpdmVQYXJlbnQiLCAiXyRjbGVhciIsICJfY29tbWl0VGV4dCIsICJfY29tbWl0VGVtcGxhdGVSZXN1bHQiLCAiX2NvbW1pdE5vZGUiLCAiX2NvbW1pdEl0ZXJhYmxlIiwgImluc2VydEJlZm9yZSIsICJfaW5zZXJ0IiwgImNyZWF0ZVRleHROb2RlIiwgInJlc3VsdCIsICJfJGdldFRlbXBsYXRlIiwgImgiLCAiX3VwZGF0ZSIsICJpbnN0YW5jZSIsICJfY2xvbmUiLCAiZ2V0IiwgInNldCIsICJpdGVtUGFydHMiLCAiaXRlbVBhcnQiLCAiaXRlbSIsICJzdGFydCIsICJmcm9tIiwgIl8kbm90aWZ5Q29ubmVjdGlvbkNoYW5nZWQiLCAibiIsICJyZW1vdmUiLCAiZWxlbWVudCIsICJmaWxsIiwgIlN0cmluZyIsICJ2YWx1ZUluZGV4IiwgIm5vQ29tbWl0IiwgImNoYW5nZSIsICJ2IiwgIl9jb21taXRWYWx1ZSIsICJzZXRBdHRyaWJ1dGUiLCAidG9nZ2xlQXR0cmlidXRlIiwgInN1cGVyIiwgIm5ld0xpc3RlbmVyIiwgIm9sZExpc3RlbmVyIiwgInNob3VsZFJlbW92ZUxpc3RlbmVyIiwgImNhcHR1cmUiLCAib25jZSIsICJwYXNzaXZlIiwgInNob3VsZEFkZExpc3RlbmVyIiwgInJlbW92ZUV2ZW50TGlzdGVuZXIiLCAiYWRkRXZlbnRMaXN0ZW5lciIsICJldmVudCIsICJjYWxsIiwgImhvc3QiLCAiaGFuZGxlRXZlbnQiLCAiX2JvdW5kQXR0cmlidXRlU3VmZml4IiwgIl9tYXJrZXIiLCAiX21hcmtlck1hdGNoIiwgIl9IVE1MX1JFU1VMVCIsICJfZ2V0VGVtcGxhdGVIdG1sIiwgIl9UZW1wbGF0ZUluc3RhbmNlIiwgIl9pc0l0ZXJhYmxlIiwgIl9yZXNvbHZlRGlyZWN0aXZlIiwgIl9DaGlsZFBhcnQiLCAiX0F0dHJpYnV0ZVBhcnQiLCAiX0Jvb2xlYW5BdHRyaWJ1dGVQYXJ0IiwgIl9FdmVudFBhcnQiLCAiX1Byb3BlcnR5UGFydCIsICJfRWxlbWVudFBhcnQiLCAibGl0SHRtbFBvbHlmaWxsU3VwcG9ydCIsICJsaXRIdG1sVmVyc2lvbnMiLCAiY29udGFpbmVyIiwgInBhcnRPd25lck5vZGUiLCAicmVuZGVyQmVmb3JlIiwgImdsb2JhbCIsICJMaXRFbGVtZW50IiwgInBvbHlmaWxsU3VwcG9ydCIsICJfJExFIiwgImdsb2JhbFRoaXMiLCAiUmVhY3RpdmVFbGVtZW50IiwgImNvbnN0cnVjdG9yIiwgInRoaXMiLCAicmVuZGVyT3B0aW9ucyIsICJob3N0IiwgIl9fY2hpbGRQYXJ0IiwgImNyZWF0ZVJlbmRlclJvb3QiLCAicmVuZGVyUm9vdCIsICJzdXBlciIsICJyZW5kZXJCZWZvcmUiLCAiZmlyc3RDaGlsZCIsICJjaGFuZ2VkUHJvcGVydGllcyIsICJ2YWx1ZSIsICJyZW5kZXIiLCAiaGFzVXBkYXRlZCIsICJpc0Nvbm5lY3RlZCIsICJ1cGRhdGUiLCAiY29ubmVjdGVkQ2FsbGJhY2siLCAic2V0Q29ubmVjdGVkIiwgImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwgIm5vQ2hhbmdlIiwgImxpdEVsZW1lbnRIeWRyYXRlU3VwcG9ydCIsICJsaXRFbGVtZW50UG9seWZpbGxTdXBwb3J0IiwgIl8kYXR0cmlidXRlVG9Qcm9wZXJ0eSIsICJlbCIsICJuYW1lIiwgIl8kY2hhbmdlZFByb3BlcnRpZXMiLCAibGl0RWxlbWVudFZlcnNpb25zIiwgInB1c2giLCAiaXNTZXJ2ZXIiLCAiaW5pdF9saXQiLCAiX19lc21NaW4iLCAiaW5pdF9yZWFjdGl2ZV9lbGVtZW50IiwgImluaXRfbGl0X2h0bWwiLCAiaW5pdF9saXRfZWxlbWVudCIsICJpbml0X2lzX3NlcnZlciIsICJ1bmkiLCAicHJlZml4IiwgImMiLCAiciIsICJleHBvcnRzIiwgIkRlZmVycmVkIiwgImRlZmVyIiwgImluaXRfc21hcnRwcm9taXNlX2NsYXNzZXNfZGVmZXJyZWQiLCAiX19lc21NaW4iLCAicmVzb2x2ZSIsICJyZWplY3QiLCAidmFsdWVBcmciLCAicmVhc29uIiwgIkN1bXVsYXRpdmVEZWZlcnJlZCIsICJjdW11bGF0aXZlRGVmZXIiLCAiaW5pdF9zbWFydHByb21pc2VfY2xhc3Nlc19jdW11bGF0aXZlZGVmZXJyZWQiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHByb21pc2VfY2xhc3Nlc19kZWZlcnJlZCIsICJkZWZlciIsICJkb25lIiwgInByb21pc2VBcmciLCAiZGlzdF90c19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkN1bXVsYXRpdmVEZWZlcnJlZCIsICJEZWZlcnJlZCIsICJjdW11bGF0aXZlRGVmZXIiLCAiZGVmZXIiLCAiZnJvbUNhbGxiYWNrIiwgImdldEZpcnN0VHJ1ZU9yRmFsc2UiLCAibWFwIiwgInJlamVjdGVkUHJvbWlzZSIsICJyZXNvbHZlZFByb21pc2UiLCAidGltZW91dEFuZENvbnRpbnVlIiwgInRpbWVvdXRXcmFwIiwgImluaXRfZGlzdF90cyIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0cHJvbWlzZV9jbGFzc2VzX2RlZmVycmVkIiwgImluaXRfc21hcnRwcm9taXNlX2NsYXNzZXNfY3VtdWxhdGl2ZWRlZmVycmVkIiwgInZhbHVlIiwgImVyciIsICJpbnB1dEFyZyIsICJmdW5jdGlvbkFyZyIsICJwcm9taXNlQXJyYXkiLCAicmVzdWx0QXJyYXkiLCAiaXRlbSIsICJwcm9taXNlIiwgIngiLCAicHJvbWlzZUFyZyIsICJ0aW1lb3V0SW5Nc0FyZyIsICJyZWplY3RBcmciLCAicmVzb2x2ZSIsICJyZWplY3QiLCAicHJvbWlzZXNBcmciLCAiZG9uZSIsICJyZXN1bHRBcmciLCAiZm4iLCAicmVzdWx0IiwgImluaXRfc21hcnRyeF9wbHVnaW5zIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF90cyIsICJfX2V4dGVuZHMiLCAiZCIsICJiIiwgImV4dGVuZFN0YXRpY3MiLCAiX18iLCAiX19yZXN0IiwgInMiLCAidCIsICJwIiwgIl9fZGVjb3JhdGUiLCAiZGVjb3JhdG9ycyIsICJ0YXJnZXQiLCAia2V5IiwgImRlc2MiLCAiYyIsICJyIiwgImkiLCAiX19wYXJhbSIsICJwYXJhbUluZGV4IiwgImRlY29yYXRvciIsICJfX2VzRGVjb3JhdGUiLCAiY3RvciIsICJkZXNjcmlwdG9ySW4iLCAiY29udGV4dEluIiwgImluaXRpYWxpemVycyIsICJleHRyYUluaXRpYWxpemVycyIsICJhY2NlcHQiLCAiZiIsICJraW5kIiwgImRlc2NyaXB0b3IiLCAiXyIsICJkb25lIiwgImNvbnRleHQiLCAicmVzdWx0IiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgInRoaXNBcmciLCAidmFsdWUiLCAidXNlVmFsdWUiLCAiX19wcm9wS2V5IiwgIngiLCAiX19zZXRGdW5jdGlvbk5hbWUiLCAibmFtZSIsICJwcmVmaXgiLCAiX19tZXRhZGF0YSIsICJtZXRhZGF0YUtleSIsICJtZXRhZGF0YVZhbHVlIiwgIl9fYXdhaXRlciIsICJfYXJndW1lbnRzIiwgIlAiLCAiZ2VuZXJhdG9yIiwgImFkb3B0IiwgInJlc29sdmUiLCAicmVqZWN0IiwgImZ1bGZpbGxlZCIsICJzdGVwIiwgImUiLCAicmVqZWN0ZWQiLCAiX19nZW5lcmF0b3IiLCAiYm9keSIsICJ5IiwgImciLCAidmVyYiIsICJuIiwgInYiLCAib3AiLCAiX19leHBvcnRTdGFyIiwgIm0iLCAibyIsICJfX2NyZWF0ZUJpbmRpbmciLCAiX192YWx1ZXMiLCAiX19yZWFkIiwgImFyIiwgImVycm9yIiwgIl9fc3ByZWFkIiwgIl9fc3ByZWFkQXJyYXlzIiwgImlsIiwgImsiLCAiYSIsICJqIiwgImpsIiwgIl9fc3ByZWFkQXJyYXkiLCAidG8iLCAiZnJvbSIsICJwYWNrIiwgImwiLCAiX19hd2FpdCIsICJfX2FzeW5jR2VuZXJhdG9yIiwgInEiLCAiYXdhaXRSZXR1cm4iLCAicmVzdW1lIiwgInNldHRsZSIsICJmdWxmaWxsIiwgIl9fYXN5bmNEZWxlZ2F0b3IiLCAiX19hc3luY1ZhbHVlcyIsICJfX21ha2VUZW1wbGF0ZU9iamVjdCIsICJjb29rZWQiLCAicmF3IiwgIl9faW1wb3J0U3RhciIsICJtb2QiLCAib3duS2V5cyIsICJfX3NldE1vZHVsZURlZmF1bHQiLCAiX19pbXBvcnREZWZhdWx0IiwgIl9fY2xhc3NQcml2YXRlRmllbGRHZXQiLCAicmVjZWl2ZXIiLCAic3RhdGUiLCAiX19jbGFzc1ByaXZhdGVGaWVsZFNldCIsICJfX2NsYXNzUHJpdmF0ZUZpZWxkSW4iLCAiX19hZGREaXNwb3NhYmxlUmVzb3VyY2UiLCAiZW52IiwgImFzeW5jIiwgImRpc3Bvc2UiLCAiaW5uZXIiLCAiX19kaXNwb3NlUmVzb3VyY2VzIiwgImZhaWwiLCAiX1N1cHByZXNzZWRFcnJvciIsICJuZXh0IiwgIl9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uIiwgInBhdGgiLCAicHJlc2VydmVKc3giLCAidHN4IiwgImV4dCIsICJjbSIsICJfX2Fzc2lnbiIsICJ0c2xpYl9lczZfZGVmYXVsdCIsICJpbml0X3RzbGliX2VzNiIsICJfX2VzbU1pbiIsICJrMiIsICJzdXBwcmVzc2VkIiwgIm1lc3NhZ2UiLCAiaXNGdW5jdGlvbiIsICJ2YWx1ZSIsICJpbml0X2lzRnVuY3Rpb24iLCAiX19lc21NaW4iLCAiY3JlYXRlRXJyb3JDbGFzcyIsICJjcmVhdGVJbXBsIiwgIl9zdXBlciIsICJpbnN0YW5jZSIsICJjdG9yRnVuYyIsICJpbml0X2NyZWF0ZUVycm9yQ2xhc3MiLCAiX19lc21NaW4iLCAiVW5zdWJzY3JpcHRpb25FcnJvciIsICJpbml0X1Vuc3Vic2NyaXB0aW9uRXJyb3IiLCAiX19lc21NaW4iLCAiaW5pdF9jcmVhdGVFcnJvckNsYXNzIiwgImNyZWF0ZUVycm9yQ2xhc3MiLCAiX3N1cGVyIiwgImVycm9ycyIsICJlcnIiLCAiYXJyUmVtb3ZlIiwgImFyciIsICJpdGVtIiwgImluZGV4IiwgImluaXRfYXJyUmVtb3ZlIiwgIl9fZXNtTWluIiwgImlzU3Vic2NyaXB0aW9uIiwgInZhbHVlIiwgIlN1YnNjcmlwdGlvbiIsICJpc0Z1bmN0aW9uIiwgImV4ZWNGaW5hbGl6ZXIiLCAiZmluYWxpemVyIiwgIkVNUFRZX1NVQlNDUklQVElPTiIsICJpbml0X2lzRnVuY3Rpb24iLCAiaW5pdF9VbnN1YnNjcmlwdGlvbkVycm9yIiwgImluaXRfYXJyUmVtb3ZlIiwgImluaXRpYWxUZWFyZG93biIsICJlcnJvcnMiLCAiX3BhcmVudGFnZSIsICJfcGFyZW50YWdlXzEiLCAiX192YWx1ZXMiLCAiX3BhcmVudGFnZV8xXzEiLCAicGFyZW50XzEiLCAiaW5pdGlhbEZpbmFsaXplciIsICJlIiwgIlVuc3Vic2NyaXB0aW9uRXJyb3IiLCAiX2ZpbmFsaXplcnMiLCAiX2ZpbmFsaXplcnNfMSIsICJfZmluYWxpemVyc18xXzEiLCAiZXJyIiwgIl9fc3ByZWFkQXJyYXkiLCAiX19yZWFkIiwgInRlYXJkb3duIiwgIl9hIiwgInBhcmVudCIsICJhcnJSZW1vdmUiLCAiZW1wdHkiLCAiY29uZmlnIiwgImluaXRfY29uZmlnIiwgIl9fZXNtTWluIiwgInRpbWVvdXRQcm92aWRlciIsICJoYW5kbGVyIiwgInRpbWVvdXQiLCAiYXJncyIsICJfaSIsICJkZWxlZ2F0ZSIsICJfX3NwcmVhZEFycmF5IiwgIl9fcmVhZCIsICJoYW5kbGUiLCAicmVwb3J0VW5oYW5kbGVkRXJyb3IiLCAiZXJyIiwgInRpbWVvdXRQcm92aWRlciIsICJvblVuaGFuZGxlZEVycm9yIiwgImNvbmZpZyIsICJpbml0X3JlcG9ydFVuaGFuZGxlZEVycm9yIiwgIl9fZXNtTWluIiwgImluaXRfY29uZmlnIiwgImluaXRfdGltZW91dFByb3ZpZGVyIiwgIm5vb3AiLCAiaW5pdF9ub29wIiwgIl9fZXNtTWluIiwgImVycm9yTm90aWZpY2F0aW9uIiwgImVycm9yIiwgImNyZWF0ZU5vdGlmaWNhdGlvbiIsICJuZXh0Tm90aWZpY2F0aW9uIiwgInZhbHVlIiwgImtpbmQiLCAiQ09NUExFVEVfTk9USUZJQ0FUSU9OIiwgImluaXRfTm90aWZpY2F0aW9uRmFjdG9yaWVzIiwgIl9fZXNtTWluIiwgImVycm9yQ29udGV4dCIsICJjYiIsICJjb25maWciLCAiaXNSb290IiwgImNvbnRleHQiLCAiX2EiLCAiZXJyb3JUaHJvd24iLCAiZXJyb3IiLCAiY2FwdHVyZUVycm9yIiwgImVyciIsICJpbml0X2Vycm9yQ29udGV4dCIsICJfX2VzbU1pbiIsICJpbml0X2NvbmZpZyIsICJiaW5kIiwgImZuIiwgInRoaXNBcmciLCAiX2JpbmQiLCAiaGFuZGxlVW5oYW5kbGVkRXJyb3IiLCAiZXJyb3IiLCAiY29uZmlnIiwgImNhcHR1cmVFcnJvciIsICJyZXBvcnRVbmhhbmRsZWRFcnJvciIsICJkZWZhdWx0RXJyb3JIYW5kbGVyIiwgImVyciIsICJoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uIiwgIm5vdGlmaWNhdGlvbiIsICJzdWJzY3JpYmVyIiwgIm9uU3RvcHBlZE5vdGlmaWNhdGlvbiIsICJ0aW1lb3V0UHJvdmlkZXIiLCAiU3Vic2NyaWJlciIsICJDb25zdW1lck9ic2VydmVyIiwgIlNhZmVTdWJzY3JpYmVyIiwgIkVNUFRZX09CU0VSVkVSIiwgImluaXRfaXNGdW5jdGlvbiIsICJpbml0X1N1YnNjcmlwdGlvbiIsICJpbml0X2NvbmZpZyIsICJpbml0X3JlcG9ydFVuaGFuZGxlZEVycm9yIiwgImluaXRfbm9vcCIsICJpbml0X05vdGlmaWNhdGlvbkZhY3RvcmllcyIsICJpbml0X3RpbWVvdXRQcm92aWRlciIsICJpbml0X2Vycm9yQ29udGV4dCIsICJfc3VwZXIiLCAiX19leHRlbmRzIiwgImRlc3RpbmF0aW9uIiwgIl90aGlzIiwgImlzU3Vic2NyaXB0aW9uIiwgIm5leHQiLCAiY29tcGxldGUiLCAidmFsdWUiLCAibmV4dE5vdGlmaWNhdGlvbiIsICJlcnJvck5vdGlmaWNhdGlvbiIsICJDT01QTEVURV9OT1RJRklDQVRJT04iLCAiU3Vic2NyaXB0aW9uIiwgInBhcnRpYWxPYnNlcnZlciIsICJvYnNlcnZlck9yTmV4dCIsICJpc0Z1bmN0aW9uIiwgImNvbnRleHRfMSIsICJub29wIiwgIm9ic2VydmFibGUiLCAiaW5pdF9vYnNlcnZhYmxlIiwgIl9fZXNtTWluIiwgImlkZW50aXR5IiwgIngiLCAiaW5pdF9pZGVudGl0eSIsICJfX2VzbU1pbiIsICJwaXBlIiwgImZucyIsICJfaSIsICJwaXBlRnJvbUFycmF5IiwgImlkZW50aXR5IiwgImlucHV0IiwgInByZXYiLCAiZm4iLCAiaW5pdF9waXBlIiwgIl9fZXNtTWluIiwgImluaXRfaWRlbnRpdHkiLCAiZ2V0UHJvbWlzZUN0b3IiLCAicHJvbWlzZUN0b3IiLCAiX2EiLCAiY29uZmlnIiwgImlzT2JzZXJ2ZXIiLCAidmFsdWUiLCAiaXNGdW5jdGlvbiIsICJpc1N1YnNjcmliZXIiLCAiU3Vic2NyaWJlciIsICJpc1N1YnNjcmlwdGlvbiIsICJPYnNlcnZhYmxlIiwgImluaXRfT2JzZXJ2YWJsZSIsICJfX2VzbU1pbiIsICJpbml0X1N1YnNjcmliZXIiLCAiaW5pdF9TdWJzY3JpcHRpb24iLCAiaW5pdF9vYnNlcnZhYmxlIiwgImluaXRfcGlwZSIsICJpbml0X2NvbmZpZyIsICJpbml0X2lzRnVuY3Rpb24iLCAiaW5pdF9lcnJvckNvbnRleHQiLCAic3Vic2NyaWJlIiwgIm9wZXJhdG9yIiwgIm9ic2VydmFibGUiLCAib2JzZXJ2ZXJPck5leHQiLCAiZXJyb3IiLCAiY29tcGxldGUiLCAiX3RoaXMiLCAic3Vic2NyaWJlciIsICJTYWZlU3Vic2NyaWJlciIsICJlcnJvckNvbnRleHQiLCAic291cmNlIiwgInNpbmsiLCAiZXJyIiwgIm5leHQiLCAicmVzb2x2ZSIsICJyZWplY3QiLCAib3BlcmF0aW9ucyIsICJfaSIsICJwaXBlRnJvbUFycmF5IiwgIngiLCAiaGFzTGlmdCIsICJzb3VyY2UiLCAiaXNGdW5jdGlvbiIsICJvcGVyYXRlIiwgImluaXQiLCAibGlmdGVkU291cmNlIiwgImVyciIsICJpbml0X2xpZnQiLCAiX19lc21NaW4iLCAiaW5pdF9pc0Z1bmN0aW9uIiwgImNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciIsICJkZXN0aW5hdGlvbiIsICJvbk5leHQiLCAib25Db21wbGV0ZSIsICJvbkVycm9yIiwgIm9uRmluYWxpemUiLCAiT3BlcmF0b3JTdWJzY3JpYmVyIiwgImluaXRfU3Vic2NyaWJlciIsICJfc3VwZXIiLCAiX19leHRlbmRzIiwgInNob3VsZFVuc3Vic2NyaWJlIiwgIl90aGlzIiwgInZhbHVlIiwgImVyciIsICJjbG9zZWRfMSIsICJfYSIsICJTdWJzY3JpYmVyIiwgInJlZkNvdW50IiwgIm9wZXJhdGUiLCAic291cmNlIiwgInN1YnNjcmliZXIiLCAiY29ubmVjdGlvbiIsICJyZWZDb3VudGVyIiwgImNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciIsICJzaGFyZWRDb25uZWN0aW9uIiwgImNvbm4iLCAiaW5pdF9yZWZDb3VudCIsICJfX2VzbU1pbiIsICJpbml0X2xpZnQiLCAiaW5pdF9PcGVyYXRvclN1YnNjcmliZXIiLCAiQ29ubmVjdGFibGVPYnNlcnZhYmxlIiwgImluaXRfT2JzZXJ2YWJsZSIsICJpbml0X1N1YnNjcmlwdGlvbiIsICJpbml0X3JlZkNvdW50IiwgImluaXRfT3BlcmF0b3JTdWJzY3JpYmVyIiwgImluaXRfbGlmdCIsICJfc3VwZXIiLCAiX19leHRlbmRzIiwgInNvdXJjZSIsICJzdWJqZWN0RmFjdG9yeSIsICJfdGhpcyIsICJoYXNMaWZ0IiwgInN1YnNjcmliZXIiLCAic3ViamVjdCIsICJfY29ubmVjdGlvbiIsICJjb25uZWN0aW9uIiwgIlN1YnNjcmlwdGlvbiIsICJzdWJqZWN0XzEiLCAiY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIiwgImVyciIsICJyZWZDb3VudCIsICJPYnNlcnZhYmxlIiwgInBlcmZvcm1hbmNlVGltZXN0YW1wUHJvdmlkZXIiLCAiaW5pdF9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyIiwgIl9fZXNtTWluIiwgImFuaW1hdGlvbkZyYW1lUHJvdmlkZXIiLCAiaW5pdF9TdWJzY3JpcHRpb24iLCAiY2FsbGJhY2siLCAicmVxdWVzdCIsICJjYW5jZWwiLCAiZGVsZWdhdGUiLCAiaGFuZGxlIiwgInRpbWVzdGFtcCIsICJTdWJzY3JpcHRpb24iLCAiYXJncyIsICJfaSIsICJfX3NwcmVhZEFycmF5IiwgIl9fcmVhZCIsICJhbmltYXRpb25GcmFtZXMiLCAidGltZXN0YW1wUHJvdmlkZXIiLCAiYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSIsICJERUZBVUxUX0FOSU1BVElPTl9GUkFNRVMiLCAiT2JzZXJ2YWJsZSIsICJzdWJzY3JpYmVyIiwgInByb3ZpZGVyIiwgInBlcmZvcm1hbmNlVGltZXN0YW1wUHJvdmlkZXIiLCAic3RhcnQiLCAiaWQiLCAicnVuIiwgImFuaW1hdGlvbkZyYW1lUHJvdmlkZXIiLCAidGltZXN0YW1wIiwgIm5vdyIsICJpbml0X2FuaW1hdGlvbkZyYW1lcyIsICJfX2VzbU1pbiIsICJpbml0X09ic2VydmFibGUiLCAiaW5pdF9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyIiwgImluaXRfYW5pbWF0aW9uRnJhbWVQcm92aWRlciIsICJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsICJpbml0X09iamVjdFVuc3Vic2NyaWJlZEVycm9yIiwgIl9fZXNtTWluIiwgImluaXRfY3JlYXRlRXJyb3JDbGFzcyIsICJjcmVhdGVFcnJvckNsYXNzIiwgIl9zdXBlciIsICJTdWJqZWN0IiwgIkFub255bW91c1N1YmplY3QiLCAiaW5pdF9PYnNlcnZhYmxlIiwgImluaXRfU3Vic2NyaXB0aW9uIiwgImluaXRfT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IiLCAiaW5pdF9hcnJSZW1vdmUiLCAiaW5pdF9lcnJvckNvbnRleHQiLCAiX3N1cGVyIiwgIl9fZXh0ZW5kcyIsICJfdGhpcyIsICJvcGVyYXRvciIsICJzdWJqZWN0IiwgIk9iamVjdFVuc3Vic2NyaWJlZEVycm9yIiwgInZhbHVlIiwgImVycm9yQ29udGV4dCIsICJfYiIsICJfX3ZhbHVlcyIsICJfYyIsICJvYnNlcnZlciIsICJlcnIiLCAib2JzZXJ2ZXJzIiwgIl9hIiwgInN1YnNjcmliZXIiLCAiaGFzRXJyb3IiLCAiaXNTdG9wcGVkIiwgIkVNUFRZX1NVQlNDUklQVElPTiIsICJTdWJzY3JpcHRpb24iLCAiYXJyUmVtb3ZlIiwgInRocm93bkVycm9yIiwgIm9ic2VydmFibGUiLCAiT2JzZXJ2YWJsZSIsICJkZXN0aW5hdGlvbiIsICJzb3VyY2UiLCAiQmVoYXZpb3JTdWJqZWN0IiwgImluaXRfU3ViamVjdCIsICJfc3VwZXIiLCAiX19leHRlbmRzIiwgIl92YWx1ZSIsICJfdGhpcyIsICJzdWJzY3JpYmVyIiwgInN1YnNjcmlwdGlvbiIsICJfYSIsICJoYXNFcnJvciIsICJ0aHJvd25FcnJvciIsICJ2YWx1ZSIsICJTdWJqZWN0IiwgImRhdGVUaW1lc3RhbXBQcm92aWRlciIsICJpbml0X2RhdGVUaW1lc3RhbXBQcm92aWRlciIsICJfX2VzbU1pbiIsICJSZXBsYXlTdWJqZWN0IiwgImluaXRfU3ViamVjdCIsICJpbml0X2RhdGVUaW1lc3RhbXBQcm92aWRlciIsICJfc3VwZXIiLCAiX19leHRlbmRzIiwgIl9idWZmZXJTaXplIiwgIl93aW5kb3dUaW1lIiwgIl90aW1lc3RhbXBQcm92aWRlciIsICJkYXRlVGltZXN0YW1wUHJvdmlkZXIiLCAiX3RoaXMiLCAidmFsdWUiLCAiX2EiLCAiaXNTdG9wcGVkIiwgIl9idWZmZXIiLCAiX2luZmluaXRlVGltZVdpbmRvdyIsICJzdWJzY3JpYmVyIiwgInN1YnNjcmlwdGlvbiIsICJjb3B5IiwgImkiLCAiYWRqdXN0ZWRCdWZmZXJTaXplIiwgIm5vdyIsICJsYXN0IiwgIlN1YmplY3QiLCAiQXN5bmNTdWJqZWN0IiwgImluaXRfU3ViamVjdCIsICJfc3VwZXIiLCAiX19leHRlbmRzIiwgIl90aGlzIiwgInN1YnNjcmliZXIiLCAiX2EiLCAiaGFzRXJyb3IiLCAiX2hhc1ZhbHVlIiwgIl92YWx1ZSIsICJ0aHJvd25FcnJvciIsICJpc1N0b3BwZWQiLCAiX2lzQ29tcGxldGUiLCAidmFsdWUiLCAiU3ViamVjdCIsICJBY3Rpb24iLCAiaW5pdF9TdWJzY3JpcHRpb24iLCAiX3N1cGVyIiwgIl9fZXh0ZW5kcyIsICJzY2hlZHVsZXIiLCAid29yayIsICJzdGF0ZSIsICJkZWxheSIsICJTdWJzY3JpcHRpb24iLCAiaW50ZXJ2YWxQcm92aWRlciIsICJoYW5kbGVyIiwgInRpbWVvdXQiLCAiYXJncyIsICJfaSIsICJkZWxlZ2F0ZSIsICJfX3NwcmVhZEFycmF5IiwgIl9fcmVhZCIsICJoYW5kbGUiLCAiQXN5bmNBY3Rpb24iLCAiaW5pdF9BY3Rpb24iLCAiaW5pdF9pbnRlcnZhbFByb3ZpZGVyIiwgImluaXRfYXJyUmVtb3ZlIiwgIl9zdXBlciIsICJfX2V4dGVuZHMiLCAic2NoZWR1bGVyIiwgIndvcmsiLCAiX3RoaXMiLCAic3RhdGUiLCAiZGVsYXkiLCAiaWQiLCAiX2EiLCAiX2lkIiwgImludGVydmFsUHJvdmlkZXIiLCAiX3NjaGVkdWxlciIsICJlcnJvciIsICJfZGVsYXkiLCAiZXJyb3JlZCIsICJlcnJvclZhbHVlIiwgImUiLCAiYWN0aW9ucyIsICJhcnJSZW1vdmUiLCAiQWN0aW9uIiwgImZpbmRBbmRDbGVhckhhbmRsZSIsICJoYW5kbGUiLCAiYWN0aXZlSGFuZGxlcyIsICJuZXh0SGFuZGxlIiwgInJlc29sdmVkIiwgIkltbWVkaWF0ZSIsICJUZXN0VG9vbHMiLCAiaW5pdF9JbW1lZGlhdGUiLCAiX19lc21NaW4iLCAiY2IiLCAic2V0SW1tZWRpYXRlIiwgImNsZWFySW1tZWRpYXRlIiwgImltbWVkaWF0ZVByb3ZpZGVyIiwgImluaXRfSW1tZWRpYXRlIiwgIkltbWVkaWF0ZSIsICJhcmdzIiwgIl9pIiwgImRlbGVnYXRlIiwgIl9fc3ByZWFkQXJyYXkiLCAiX19yZWFkIiwgImhhbmRsZSIsICJBc2FwQWN0aW9uIiwgImluaXRfQXN5bmNBY3Rpb24iLCAiaW5pdF9pbW1lZGlhdGVQcm92aWRlciIsICJfc3VwZXIiLCAiX19leHRlbmRzIiwgInNjaGVkdWxlciIsICJ3b3JrIiwgIl90aGlzIiwgImlkIiwgImRlbGF5IiwgImltbWVkaWF0ZVByb3ZpZGVyIiwgImFjdGlvbnMiLCAiX2EiLCAiQXN5bmNBY3Rpb24iLCAiU2NoZWR1bGVyIiwgImluaXRfU2NoZWR1bGVyIiwgIl9fZXNtTWluIiwgImluaXRfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyIiwgInNjaGVkdWxlckFjdGlvbkN0b3IiLCAibm93IiwgIndvcmsiLCAiZGVsYXkiLCAic3RhdGUiLCAiZGF0ZVRpbWVzdGFtcFByb3ZpZGVyIiwgIkFzeW5jU2NoZWR1bGVyIiwgImluaXRfU2NoZWR1bGVyIiwgIl9zdXBlciIsICJfX2V4dGVuZHMiLCAiU2NoZWR1bGVyQWN0aW9uIiwgIm5vdyIsICJTY2hlZHVsZXIiLCAiX3RoaXMiLCAiYWN0aW9uIiwgImFjdGlvbnMiLCAiZXJyb3IiLCAiQXNhcFNjaGVkdWxlciIsICJpbml0X0FzeW5jU2NoZWR1bGVyIiwgIl9zdXBlciIsICJfX2V4dGVuZHMiLCAiYWN0aW9uIiwgImZsdXNoSWQiLCAiYWN0aW9ucyIsICJlcnJvciIsICJBc3luY1NjaGVkdWxlciIsICJhc2FwU2NoZWR1bGVyIiwgImFzYXAiLCAiaW5pdF9hc2FwIiwgIl9fZXNtTWluIiwgImluaXRfQXNhcEFjdGlvbiIsICJpbml0X0FzYXBTY2hlZHVsZXIiLCAiQXNhcFNjaGVkdWxlciIsICJBc2FwQWN0aW9uIiwgImFzeW5jU2NoZWR1bGVyIiwgImFzeW5jIiwgImluaXRfYXN5bmMiLCAiX19lc21NaW4iLCAiaW5pdF9Bc3luY0FjdGlvbiIsICJpbml0X0FzeW5jU2NoZWR1bGVyIiwgIkFzeW5jU2NoZWR1bGVyIiwgIkFzeW5jQWN0aW9uIiwgIlF1ZXVlQWN0aW9uIiwgImluaXRfQXN5bmNBY3Rpb24iLCAiX3N1cGVyIiwgIl9fZXh0ZW5kcyIsICJzY2hlZHVsZXIiLCAid29yayIsICJfdGhpcyIsICJzdGF0ZSIsICJkZWxheSIsICJpZCIsICJBc3luY0FjdGlvbiIsICJRdWV1ZVNjaGVkdWxlciIsICJpbml0X0FzeW5jU2NoZWR1bGVyIiwgIl9zdXBlciIsICJfX2V4dGVuZHMiLCAiQXN5bmNTY2hlZHVsZXIiLCAicXVldWVTY2hlZHVsZXIiLCAicXVldWUiLCAiaW5pdF9xdWV1ZSIsICJfX2VzbU1pbiIsICJpbml0X1F1ZXVlQWN0aW9uIiwgImluaXRfUXVldWVTY2hlZHVsZXIiLCAiUXVldWVTY2hlZHVsZXIiLCAiUXVldWVBY3Rpb24iLCAiQW5pbWF0aW9uRnJhbWVBY3Rpb24iLCAiaW5pdF9Bc3luY0FjdGlvbiIsICJpbml0X2FuaW1hdGlvbkZyYW1lUHJvdmlkZXIiLCAiX3N1cGVyIiwgIl9fZXh0ZW5kcyIsICJzY2hlZHVsZXIiLCAid29yayIsICJfdGhpcyIsICJpZCIsICJkZWxheSIsICJhbmltYXRpb25GcmFtZVByb3ZpZGVyIiwgImFjdGlvbnMiLCAiX2EiLCAiQXN5bmNBY3Rpb24iLCAiQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIiLCAiaW5pdF9Bc3luY1NjaGVkdWxlciIsICJfc3VwZXIiLCAiX19leHRlbmRzIiwgImFjdGlvbiIsICJmbHVzaElkIiwgImFjdGlvbnMiLCAiZXJyb3IiLCAiQXN5bmNTY2hlZHVsZXIiLCAiYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIiLCAiYW5pbWF0aW9uRnJhbWUiLCAiaW5pdF9hbmltYXRpb25GcmFtZSIsICJfX2VzbU1pbiIsICJpbml0X0FuaW1hdGlvbkZyYW1lQWN0aW9uIiwgImluaXRfQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIiLCAiQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIiLCAiQW5pbWF0aW9uRnJhbWVBY3Rpb24iLCAiVmlydHVhbFRpbWVTY2hlZHVsZXIiLCAiVmlydHVhbEFjdGlvbiIsICJpbml0X0FzeW5jQWN0aW9uIiwgImluaXRfU3Vic2NyaXB0aW9uIiwgImluaXRfQXN5bmNTY2hlZHVsZXIiLCAiX3N1cGVyIiwgIl9fZXh0ZW5kcyIsICJzY2hlZHVsZXJBY3Rpb25DdG9yIiwgIm1heEZyYW1lcyIsICJfdGhpcyIsICJfYSIsICJhY3Rpb25zIiwgImVycm9yIiwgImFjdGlvbiIsICJBc3luY1NjaGVkdWxlciIsICJzY2hlZHVsZXIiLCAid29yayIsICJpbmRleCIsICJzdGF0ZSIsICJkZWxheSIsICJTdWJzY3JpcHRpb24iLCAiaWQiLCAiYiIsICJBc3luY0FjdGlvbiIsICJlbXB0eSIsICJzY2hlZHVsZXIiLCAiZW1wdHlTY2hlZHVsZWQiLCAiRU1QVFkiLCAiT2JzZXJ2YWJsZSIsICJzdWJzY3JpYmVyIiwgImluaXRfZW1wdHkiLCAiX19lc21NaW4iLCAiaW5pdF9PYnNlcnZhYmxlIiwgImlzU2NoZWR1bGVyIiwgInZhbHVlIiwgImlzRnVuY3Rpb24iLCAiaW5pdF9pc1NjaGVkdWxlciIsICJfX2VzbU1pbiIsICJpbml0X2lzRnVuY3Rpb24iLCAibGFzdCIsICJhcnIiLCAicG9wUmVzdWx0U2VsZWN0b3IiLCAiYXJncyIsICJpc0Z1bmN0aW9uIiwgInBvcFNjaGVkdWxlciIsICJpc1NjaGVkdWxlciIsICJwb3BOdW1iZXIiLCAiZGVmYXVsdFZhbHVlIiwgImluaXRfYXJncyIsICJfX2VzbU1pbiIsICJpbml0X2lzRnVuY3Rpb24iLCAiaW5pdF9pc1NjaGVkdWxlciIsICJpc0FycmF5TGlrZSIsICJpbml0X2lzQXJyYXlMaWtlIiwgIl9fZXNtTWluIiwgIngiLCAiaXNQcm9taXNlIiwgInZhbHVlIiwgImlzRnVuY3Rpb24iLCAiaW5pdF9pc1Byb21pc2UiLCAiX19lc21NaW4iLCAiaW5pdF9pc0Z1bmN0aW9uIiwgImlzSW50ZXJvcE9ic2VydmFibGUiLCAiaW5wdXQiLCAiaXNGdW5jdGlvbiIsICJvYnNlcnZhYmxlIiwgImluaXRfaXNJbnRlcm9wT2JzZXJ2YWJsZSIsICJfX2VzbU1pbiIsICJpbml0X29ic2VydmFibGUiLCAiaW5pdF9pc0Z1bmN0aW9uIiwgImlzQXN5bmNJdGVyYWJsZSIsICJvYmoiLCAiaXNGdW5jdGlvbiIsICJpbml0X2lzQXN5bmNJdGVyYWJsZSIsICJfX2VzbU1pbiIsICJpbml0X2lzRnVuY3Rpb24iLCAiY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IiLCAiaW5wdXQiLCAiaW5pdF90aHJvd1Vub2JzZXJ2YWJsZUVycm9yIiwgIl9fZXNtTWluIiwgImdldFN5bWJvbEl0ZXJhdG9yIiwgIml0ZXJhdG9yIiwgImluaXRfaXRlcmF0b3IiLCAiX19lc21NaW4iLCAiaXNJdGVyYWJsZSIsICJpbnB1dCIsICJpc0Z1bmN0aW9uIiwgIml0ZXJhdG9yIiwgImluaXRfaXNJdGVyYWJsZSIsICJfX2VzbU1pbiIsICJpbml0X2l0ZXJhdG9yIiwgImluaXRfaXNGdW5jdGlvbiIsICJyZWFkYWJsZVN0cmVhbUxpa2VUb0FzeW5jR2VuZXJhdG9yIiwgInJlYWRhYmxlU3RyZWFtIiwgInJlYWRlciIsICJfX2F3YWl0IiwgIl9hIiwgIl9iIiwgInZhbHVlIiwgImRvbmUiLCAiaXNSZWFkYWJsZVN0cmVhbUxpa2UiLCAib2JqIiwgImlzRnVuY3Rpb24iLCAiaW5pdF9pc0Z1bmN0aW9uIiwgImlubmVyRnJvbSIsICJpbnB1dCIsICJPYnNlcnZhYmxlIiwgImlzSW50ZXJvcE9ic2VydmFibGUiLCAiZnJvbUludGVyb3BPYnNlcnZhYmxlIiwgImlzQXJyYXlMaWtlIiwgImZyb21BcnJheUxpa2UiLCAiaXNQcm9taXNlIiwgImZyb21Qcm9taXNlIiwgImlzQXN5bmNJdGVyYWJsZSIsICJmcm9tQXN5bmNJdGVyYWJsZSIsICJpc0l0ZXJhYmxlIiwgImZyb21JdGVyYWJsZSIsICJpc1JlYWRhYmxlU3RyZWFtTGlrZSIsICJmcm9tUmVhZGFibGVTdHJlYW1MaWtlIiwgImNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yIiwgIm9iaiIsICJzdWJzY3JpYmVyIiwgIm9icyIsICJvYnNlcnZhYmxlIiwgImlzRnVuY3Rpb24iLCAiYXJyYXkiLCAiaSIsICJwcm9taXNlIiwgInZhbHVlIiwgImVyciIsICJyZXBvcnRVbmhhbmRsZWRFcnJvciIsICJpdGVyYWJsZSIsICJpdGVyYWJsZV8xIiwgIl9fdmFsdWVzIiwgIml0ZXJhYmxlXzFfMSIsICJhc3luY0l0ZXJhYmxlIiwgInByb2Nlc3MiLCAicmVhZGFibGVTdHJlYW0iLCAicmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvciIsICJhc3luY0l0ZXJhYmxlXzEiLCAiX19hc3luY1ZhbHVlcyIsICJhc3luY0l0ZXJhYmxlXzFfMSIsICJpbml0X2lzQXJyYXlMaWtlIiwgImluaXRfaXNQcm9taXNlIiwgImluaXRfT2JzZXJ2YWJsZSIsICJpbml0X2lzSW50ZXJvcE9ic2VydmFibGUiLCAiaW5pdF9pc0FzeW5jSXRlcmFibGUiLCAiaW5pdF90aHJvd1Vub2JzZXJ2YWJsZUVycm9yIiwgImluaXRfaXNJdGVyYWJsZSIsICJpbml0X2lzUmVhZGFibGVTdHJlYW1MaWtlIiwgImluaXRfaXNGdW5jdGlvbiIsICJpbml0X3JlcG9ydFVuaGFuZGxlZEVycm9yIiwgImluaXRfb2JzZXJ2YWJsZSIsICJleGVjdXRlU2NoZWR1bGUiLCAicGFyZW50U3Vic2NyaXB0aW9uIiwgInNjaGVkdWxlciIsICJ3b3JrIiwgImRlbGF5IiwgInJlcGVhdCIsICJzY2hlZHVsZVN1YnNjcmlwdGlvbiIsICJpbml0X2V4ZWN1dGVTY2hlZHVsZSIsICJfX2VzbU1pbiIsICJvYnNlcnZlT24iLCAic2NoZWR1bGVyIiwgImRlbGF5IiwgIm9wZXJhdGUiLCAic291cmNlIiwgInN1YnNjcmliZXIiLCAiY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIiwgInZhbHVlIiwgImV4ZWN1dGVTY2hlZHVsZSIsICJlcnIiLCAiaW5pdF9vYnNlcnZlT24iLCAiX19lc21NaW4iLCAiaW5pdF9leGVjdXRlU2NoZWR1bGUiLCAiaW5pdF9saWZ0IiwgImluaXRfT3BlcmF0b3JTdWJzY3JpYmVyIiwgInN1YnNjcmliZU9uIiwgInNjaGVkdWxlciIsICJkZWxheSIsICJvcGVyYXRlIiwgInNvdXJjZSIsICJzdWJzY3JpYmVyIiwgImluaXRfc3Vic2NyaWJlT24iLCAiX19lc21NaW4iLCAiaW5pdF9saWZ0IiwgInNjaGVkdWxlT2JzZXJ2YWJsZSIsICJpbnB1dCIsICJzY2hlZHVsZXIiLCAiaW5uZXJGcm9tIiwgInN1YnNjcmliZU9uIiwgIm9ic2VydmVPbiIsICJpbml0X3NjaGVkdWxlT2JzZXJ2YWJsZSIsICJfX2VzbU1pbiIsICJpbml0X2lubmVyRnJvbSIsICJpbml0X29ic2VydmVPbiIsICJpbml0X3N1YnNjcmliZU9uIiwgInNjaGVkdWxlUHJvbWlzZSIsICJpbnB1dCIsICJzY2hlZHVsZXIiLCAiaW5uZXJGcm9tIiwgInN1YnNjcmliZU9uIiwgIm9ic2VydmVPbiIsICJpbml0X3NjaGVkdWxlUHJvbWlzZSIsICJfX2VzbU1pbiIsICJpbml0X2lubmVyRnJvbSIsICJpbml0X29ic2VydmVPbiIsICJpbml0X3N1YnNjcmliZU9uIiwgInNjaGVkdWxlQXJyYXkiLCAiaW5wdXQiLCAic2NoZWR1bGVyIiwgIk9ic2VydmFibGUiLCAic3Vic2NyaWJlciIsICJpIiwgImluaXRfc2NoZWR1bGVBcnJheSIsICJfX2VzbU1pbiIsICJpbml0X09ic2VydmFibGUiLCAic2NoZWR1bGVJdGVyYWJsZSIsICJpbnB1dCIsICJzY2hlZHVsZXIiLCAiT2JzZXJ2YWJsZSIsICJzdWJzY3JpYmVyIiwgIml0ZXJhdG9yIiwgImV4ZWN1dGVTY2hlZHVsZSIsICJ2YWx1ZSIsICJkb25lIiwgIl9hIiwgImVyciIsICJpc0Z1bmN0aW9uIiwgImluaXRfc2NoZWR1bGVJdGVyYWJsZSIsICJfX2VzbU1pbiIsICJpbml0X09ic2VydmFibGUiLCAiaW5pdF9pdGVyYXRvciIsICJpbml0X2lzRnVuY3Rpb24iLCAiaW5pdF9leGVjdXRlU2NoZWR1bGUiLCAic2NoZWR1bGVBc3luY0l0ZXJhYmxlIiwgImlucHV0IiwgInNjaGVkdWxlciIsICJPYnNlcnZhYmxlIiwgInN1YnNjcmliZXIiLCAiZXhlY3V0ZVNjaGVkdWxlIiwgIml0ZXJhdG9yIiwgInJlc3VsdCIsICJpbml0X3NjaGVkdWxlQXN5bmNJdGVyYWJsZSIsICJfX2VzbU1pbiIsICJpbml0X09ic2VydmFibGUiLCAiaW5pdF9leGVjdXRlU2NoZWR1bGUiLCAic2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UiLCAiaW5wdXQiLCAic2NoZWR1bGVyIiwgInNjaGVkdWxlQXN5bmNJdGVyYWJsZSIsICJyZWFkYWJsZVN0cmVhbUxpa2VUb0FzeW5jR2VuZXJhdG9yIiwgImluaXRfc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UiLCAiX19lc21NaW4iLCAiaW5pdF9zY2hlZHVsZUFzeW5jSXRlcmFibGUiLCAiaW5pdF9pc1JlYWRhYmxlU3RyZWFtTGlrZSIsICJzY2hlZHVsZWQiLCAiaW5wdXQiLCAic2NoZWR1bGVyIiwgImlzSW50ZXJvcE9ic2VydmFibGUiLCAic2NoZWR1bGVPYnNlcnZhYmxlIiwgImlzQXJyYXlMaWtlIiwgInNjaGVkdWxlQXJyYXkiLCAiaXNQcm9taXNlIiwgInNjaGVkdWxlUHJvbWlzZSIsICJpc0FzeW5jSXRlcmFibGUiLCAic2NoZWR1bGVBc3luY0l0ZXJhYmxlIiwgImlzSXRlcmFibGUiLCAic2NoZWR1bGVJdGVyYWJsZSIsICJpc1JlYWRhYmxlU3RyZWFtTGlrZSIsICJzY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZSIsICJjcmVhdGVJbnZhbGlkT2JzZXJ2YWJsZVR5cGVFcnJvciIsICJpbml0X3NjaGVkdWxlZCIsICJfX2VzbU1pbiIsICJpbml0X3NjaGVkdWxlT2JzZXJ2YWJsZSIsICJpbml0X3NjaGVkdWxlUHJvbWlzZSIsICJpbml0X3NjaGVkdWxlQXJyYXkiLCAiaW5pdF9zY2hlZHVsZUl0ZXJhYmxlIiwgImluaXRfc2NoZWR1bGVBc3luY0l0ZXJhYmxlIiwgImluaXRfaXNJbnRlcm9wT2JzZXJ2YWJsZSIsICJpbml0X2lzUHJvbWlzZSIsICJpbml0X2lzQXJyYXlMaWtlIiwgImluaXRfaXNJdGVyYWJsZSIsICJpbml0X2lzQXN5bmNJdGVyYWJsZSIsICJpbml0X3Rocm93VW5vYnNlcnZhYmxlRXJyb3IiLCAiaW5pdF9pc1JlYWRhYmxlU3RyZWFtTGlrZSIsICJpbml0X3NjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlIiwgImZyb20iLCAiaW5wdXQiLCAic2NoZWR1bGVyIiwgInNjaGVkdWxlZCIsICJpbm5lckZyb20iLCAiaW5pdF9mcm9tIiwgIl9fZXNtTWluIiwgImluaXRfc2NoZWR1bGVkIiwgImluaXRfaW5uZXJGcm9tIiwgIm9mIiwgImFyZ3MiLCAiX2kiLCAic2NoZWR1bGVyIiwgInBvcFNjaGVkdWxlciIsICJmcm9tIiwgImluaXRfb2YiLCAiX19lc21NaW4iLCAiaW5pdF9hcmdzIiwgImluaXRfZnJvbSIsICJ0aHJvd0Vycm9yIiwgImVycm9yT3JFcnJvckZhY3RvcnkiLCAic2NoZWR1bGVyIiwgImVycm9yRmFjdG9yeSIsICJpc0Z1bmN0aW9uIiwgImluaXQiLCAic3Vic2NyaWJlciIsICJPYnNlcnZhYmxlIiwgImluaXRfdGhyb3dFcnJvciIsICJfX2VzbU1pbiIsICJpbml0X09ic2VydmFibGUiLCAiaW5pdF9pc0Z1bmN0aW9uIiwgIm9ic2VydmVOb3RpZmljYXRpb24iLCAibm90aWZpY2F0aW9uIiwgIm9ic2VydmVyIiwgIl9kIiwgImtpbmQiLCAidmFsdWUiLCAiZXJyb3IiLCAiX2EiLCAiX2IiLCAiX2MiLCAiTm90aWZpY2F0aW9uS2luZCIsICJOb3RpZmljYXRpb24iLCAiaW5pdF9Ob3RpZmljYXRpb24iLCAiX19lc21NaW4iLCAiaW5pdF9lbXB0eSIsICJpbml0X29mIiwgImluaXRfdGhyb3dFcnJvciIsICJpbml0X2lzRnVuY3Rpb24iLCAibmV4dEhhbmRsZXIiLCAiZXJyb3JIYW5kbGVyIiwgImNvbXBsZXRlSGFuZGxlciIsICJuZXh0T3JPYnNlcnZlciIsICJjb21wbGV0ZSIsICJpc0Z1bmN0aW9uIiwgInJlc3VsdCIsICJvZiIsICJ0aHJvd0Vycm9yIiwgIkVNUFRZIiwgImVyciIsICJpbml0X2lzT2JzZXJ2YWJsZSIsICJfX2VzbU1pbiIsICJFbXB0eUVycm9yIiwgImluaXRfRW1wdHlFcnJvciIsICJfX2VzbU1pbiIsICJpbml0X2NyZWF0ZUVycm9yQ2xhc3MiLCAiY3JlYXRlRXJyb3JDbGFzcyIsICJfc3VwZXIiLCAiaW5pdF9sYXN0VmFsdWVGcm9tIiwgIl9fZXNtTWluIiwgImluaXRfZmlyc3RWYWx1ZUZyb20iLCAiX19lc21NaW4iLCAiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLCAiaW5pdF9Bcmd1bWVudE91dE9mUmFuZ2VFcnJvciIsICJfX2VzbU1pbiIsICJpbml0X2NyZWF0ZUVycm9yQ2xhc3MiLCAiY3JlYXRlRXJyb3JDbGFzcyIsICJfc3VwZXIiLCAiTm90Rm91bmRFcnJvciIsICJpbml0X05vdEZvdW5kRXJyb3IiLCAiX19lc21NaW4iLCAiaW5pdF9jcmVhdGVFcnJvckNsYXNzIiwgImNyZWF0ZUVycm9yQ2xhc3MiLCAiX3N1cGVyIiwgIm1lc3NhZ2UiLCAiU2VxdWVuY2VFcnJvciIsICJpbml0X1NlcXVlbmNlRXJyb3IiLCAiX19lc21NaW4iLCAiaW5pdF9jcmVhdGVFcnJvckNsYXNzIiwgImNyZWF0ZUVycm9yQ2xhc3MiLCAiX3N1cGVyIiwgIm1lc3NhZ2UiLCAiaXNWYWxpZERhdGUiLCAidmFsdWUiLCAiaW5pdF9pc0RhdGUiLCAiX19lc21NaW4iLCAidGltZW91dCIsICJjb25maWciLCAic2NoZWR1bGVyQXJnIiwgIl9hIiwgImlzVmFsaWREYXRlIiwgImZpcnN0IiwgImVhY2giLCAiX2IiLCAiX3dpdGgiLCAidGltZW91dEVycm9yRmFjdG9yeSIsICJfYyIsICJzY2hlZHVsZXIiLCAiYXN5bmNTY2hlZHVsZXIiLCAiX2QiLCAibWV0YSIsICJvcGVyYXRlIiwgInNvdXJjZSIsICJzdWJzY3JpYmVyIiwgIm9yaWdpbmFsU291cmNlU3Vic2NyaXB0aW9uIiwgInRpbWVyU3Vic2NyaXB0aW9uIiwgImxhc3RWYWx1ZSIsICJzZWVuIiwgInN0YXJ0VGltZXIiLCAiZGVsYXkiLCAiZXhlY3V0ZVNjaGVkdWxlIiwgImlubmVyRnJvbSIsICJlcnIiLCAiY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIiwgInZhbHVlIiwgImluZm8iLCAiVGltZW91dEVycm9yIiwgImluaXRfdGltZW91dCIsICJfX2VzbU1pbiIsICJpbml0X2FzeW5jIiwgImluaXRfaXNEYXRlIiwgImluaXRfbGlmdCIsICJpbml0X2lubmVyRnJvbSIsICJpbml0X2NyZWF0ZUVycm9yQ2xhc3MiLCAiaW5pdF9PcGVyYXRvclN1YnNjcmliZXIiLCAiaW5pdF9leGVjdXRlU2NoZWR1bGUiLCAiY3JlYXRlRXJyb3JDbGFzcyIsICJfc3VwZXIiLCAibWFwIiwgInByb2plY3QiLCAidGhpc0FyZyIsICJvcGVyYXRlIiwgInNvdXJjZSIsICJzdWJzY3JpYmVyIiwgImluZGV4IiwgImNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciIsICJ2YWx1ZSIsICJpbml0X21hcCIsICJfX2VzbU1pbiIsICJpbml0X2xpZnQiLCAiaW5pdF9PcGVyYXRvclN1YnNjcmliZXIiLCAiY2FsbE9yQXBwbHkiLCAiZm4iLCAiYXJncyIsICJpc0FycmF5IiwgIl9fc3ByZWFkQXJyYXkiLCAiX19yZWFkIiwgIm1hcE9uZU9yTWFueUFyZ3MiLCAibWFwIiwgImluaXRfbWFwIiwgImluaXRfYmluZENhbGxiYWNrIiwgIl9fZXNtTWluIiwgImluaXRfYmluZE5vZGVDYWxsYmFjayIsICJfX2VzbU1pbiIsICJpbml0X2NvbWJpbmVMYXRlc3QiLCAiX19lc21NaW4iLCAibWVyZ2VJbnRlcm5hbHMiLCAic291cmNlIiwgInN1YnNjcmliZXIiLCAicHJvamVjdCIsICJjb25jdXJyZW50IiwgIm9uQmVmb3JlTmV4dCIsICJleHBhbmQiLCAiaW5uZXJTdWJTY2hlZHVsZXIiLCAiYWRkaXRpb25hbEZpbmFsaXplciIsICJidWZmZXIiLCAiYWN0aXZlIiwgImluZGV4IiwgImlzQ29tcGxldGUiLCAiY2hlY2tDb21wbGV0ZSIsICJvdXRlck5leHQiLCAidmFsdWUiLCAiZG9Jbm5lclN1YiIsICJpbm5lckNvbXBsZXRlIiwgImlubmVyRnJvbSIsICJjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIiLCAiaW5uZXJWYWx1ZSIsICJidWZmZXJlZFZhbHVlIiwgImV4ZWN1dGVTY2hlZHVsZSIsICJlcnIiLCAiaW5pdF9tZXJnZUludGVybmFscyIsICJfX2VzbU1pbiIsICJpbml0X2lubmVyRnJvbSIsICJpbml0X2V4ZWN1dGVTY2hlZHVsZSIsICJpbml0X09wZXJhdG9yU3Vic2NyaWJlciIsICJtZXJnZU1hcCIsICJwcm9qZWN0IiwgInJlc3VsdFNlbGVjdG9yIiwgImNvbmN1cnJlbnQiLCAiaXNGdW5jdGlvbiIsICJhIiwgIm1hcCIsICJiIiwgImlpIiwgImlubmVyRnJvbSIsICJvcGVyYXRlIiwgInNvdXJjZSIsICJzdWJzY3JpYmVyIiwgIm1lcmdlSW50ZXJuYWxzIiwgImluaXRfbWVyZ2VNYXAiLCAiX19lc21NaW4iLCAiaW5pdF9tYXAiLCAiaW5pdF9pbm5lckZyb20iLCAiaW5pdF9saWZ0IiwgImluaXRfbWVyZ2VJbnRlcm5hbHMiLCAiaW5pdF9pc0Z1bmN0aW9uIiwgIm1lcmdlQWxsIiwgImNvbmN1cnJlbnQiLCAibWVyZ2VNYXAiLCAiaWRlbnRpdHkiLCAiaW5pdF9tZXJnZUFsbCIsICJfX2VzbU1pbiIsICJpbml0X21lcmdlTWFwIiwgImluaXRfaWRlbnRpdHkiLCAiY29uY2F0QWxsIiwgIm1lcmdlQWxsIiwgImluaXRfY29uY2F0QWxsIiwgIl9fZXNtTWluIiwgImluaXRfbWVyZ2VBbGwiLCAiY29uY2F0IiwgImFyZ3MiLCAiX2kiLCAiY29uY2F0QWxsIiwgImZyb20iLCAicG9wU2NoZWR1bGVyIiwgImluaXRfY29uY2F0IiwgIl9fZXNtTWluIiwgImluaXRfY29uY2F0QWxsIiwgImluaXRfYXJncyIsICJpbml0X2Zyb20iLCAiaW5pdF9kZWZlciIsICJfX2VzbU1pbiIsICJpbml0X2Nvbm5lY3RhYmxlIiwgIl9fZXNtTWluIiwgImluaXRfZm9ya0pvaW4iLCAiX19lc21NaW4iLCAiZnJvbUV2ZW50IiwgInRhcmdldCIsICJldmVudE5hbWUiLCAib3B0aW9ucyIsICJyZXN1bHRTZWxlY3RvciIsICJpc0Z1bmN0aW9uIiwgIm1hcE9uZU9yTWFueUFyZ3MiLCAiX2EiLCAiX19yZWFkIiwgImlzRXZlbnRUYXJnZXQiLCAiZXZlbnRUYXJnZXRNZXRob2RzIiwgIm1ldGhvZE5hbWUiLCAiaGFuZGxlciIsICJpc05vZGVTdHlsZUV2ZW50RW1pdHRlciIsICJub2RlRXZlbnRFbWl0dGVyTWV0aG9kcyIsICJ0b0NvbW1vbkhhbmRsZXJSZWdpc3RyeSIsICJpc0pRdWVyeVN0eWxlRXZlbnRFbWl0dGVyIiwgImpxdWVyeU1ldGhvZHMiLCAiYWRkIiwgInJlbW92ZSIsICJpc0FycmF5TGlrZSIsICJtZXJnZU1hcCIsICJzdWJUYXJnZXQiLCAiaW5uZXJGcm9tIiwgIk9ic2VydmFibGUiLCAic3Vic2NyaWJlciIsICJhcmdzIiwgIl9pIiwgImluaXRfaW5uZXJGcm9tIiwgImluaXRfT2JzZXJ2YWJsZSIsICJpbml0X21lcmdlTWFwIiwgImluaXRfaXNBcnJheUxpa2UiLCAiaW5pdF9pc0Z1bmN0aW9uIiwgImluaXRfbWFwT25lT3JNYW55QXJncyIsICJpbml0X2Zyb21FdmVudFBhdHRlcm4iLCAiX19lc21NaW4iLCAiaW5pdF9paWYiLCAiX19lc21NaW4iLCAidGltZXIiLCAiZHVlVGltZSIsICJpbnRlcnZhbE9yU2NoZWR1bGVyIiwgInNjaGVkdWxlciIsICJhc3luYyIsICJpbnRlcnZhbER1cmF0aW9uIiwgImlzU2NoZWR1bGVyIiwgIk9ic2VydmFibGUiLCAic3Vic2NyaWJlciIsICJkdWUiLCAiaXNWYWxpZERhdGUiLCAibiIsICJpbml0X3RpbWVyIiwgIl9fZXNtTWluIiwgImluaXRfT2JzZXJ2YWJsZSIsICJpbml0X2FzeW5jIiwgImluaXRfaXNTY2hlZHVsZXIiLCAiaW5pdF9pc0RhdGUiLCAiaW5pdF9pbnRlcnZhbCIsICJfX2VzbU1pbiIsICJpbml0X21lcmdlIiwgIl9fZXNtTWluIiwgIm5ldmVyIiwgIk5FVkVSIiwgImluaXRfbmV2ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9PYnNlcnZhYmxlIiwgImluaXRfbm9vcCIsICJPYnNlcnZhYmxlIiwgIm5vb3AiLCAiaW5pdF9vbkVycm9yUmVzdW1lTmV4dCIsICJfX2VzbU1pbiIsICJpbml0X3BhaXJzIiwgIl9fZXNtTWluIiwgImZpbHRlciIsICJwcmVkaWNhdGUiLCAidGhpc0FyZyIsICJvcGVyYXRlIiwgInNvdXJjZSIsICJzdWJzY3JpYmVyIiwgImluZGV4IiwgImNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciIsICJ2YWx1ZSIsICJpbml0X2ZpbHRlciIsICJfX2VzbU1pbiIsICJpbml0X2xpZnQiLCAiaW5pdF9PcGVyYXRvclN1YnNjcmliZXIiLCAiaW5pdF9wYXJ0aXRpb24iLCAiX19lc21NaW4iLCAiaW5pdF9yYWNlIiwgIl9fZXNtTWluIiwgImluaXRfcmFuZ2UiLCAiX19lc21NaW4iLCAiaW5pdF91c2luZyIsICJfX2VzbU1pbiIsICJpbml0X3R5cGVzIiwgIl9fZXNtTWluIiwgImluaXRfYXVkaXQiLCAiX19lc21NaW4iLCAiaW5pdF9hdWRpdFRpbWUiLCAiX19lc21NaW4iLCAiYnVmZmVyIiwgImNsb3NpbmdOb3RpZmllciIsICJvcGVyYXRlIiwgInNvdXJjZSIsICJzdWJzY3JpYmVyIiwgImN1cnJlbnRCdWZmZXIiLCAiY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIiwgInZhbHVlIiwgImlubmVyRnJvbSIsICJiIiwgIm5vb3AiLCAiaW5pdF9idWZmZXIiLCAiX19lc21NaW4iLCAiaW5pdF9saWZ0IiwgImluaXRfbm9vcCIsICJpbml0X09wZXJhdG9yU3Vic2NyaWJlciIsICJpbml0X2lubmVyRnJvbSIsICJidWZmZXJDb3VudCIsICJidWZmZXJTaXplIiwgInN0YXJ0QnVmZmVyRXZlcnkiLCAib3BlcmF0ZSIsICJzb3VyY2UiLCAic3Vic2NyaWJlciIsICJidWZmZXJzIiwgImNvdW50IiwgImNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciIsICJ2YWx1ZSIsICJ0b0VtaXQiLCAiYnVmZmVyc18xIiwgIl9fdmFsdWVzIiwgImJ1ZmZlcnNfMV8xIiwgImJ1ZmZlciIsICJ0b0VtaXRfMSIsICJ0b0VtaXRfMV8xIiwgImFyclJlbW92ZSIsICJidWZmZXJzXzIiLCAiYnVmZmVyc18yXzEiLCAiaW5pdF9saWZ0IiwgImluaXRfT3BlcmF0b3JTdWJzY3JpYmVyIiwgImluaXRfYXJyUmVtb3ZlIiwgImJ1ZmZlclRpbWUiLCAiYnVmZmVyVGltZVNwYW4iLCAib3RoZXJBcmdzIiwgIl9pIiwgInNjaGVkdWxlciIsICJfYSIsICJwb3BTY2hlZHVsZXIiLCAiYXN5bmNTY2hlZHVsZXIiLCAiYnVmZmVyQ3JlYXRpb25JbnRlcnZhbCIsICJfYiIsICJtYXhCdWZmZXJTaXplIiwgIm9wZXJhdGUiLCAic291cmNlIiwgInN1YnNjcmliZXIiLCAiYnVmZmVyUmVjb3JkcyIsICJyZXN0YXJ0T25FbWl0IiwgImVtaXQiLCAicmVjb3JkIiwgImJ1ZmZlciIsICJzdWJzIiwgImFyclJlbW92ZSIsICJzdGFydEJ1ZmZlciIsICJTdWJzY3JpcHRpb24iLCAicmVjb3JkXzEiLCAiZXhlY3V0ZVNjaGVkdWxlIiwgImJ1ZmZlclRpbWVTdWJzY3JpYmVyIiwgImNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciIsICJ2YWx1ZSIsICJyZWNvcmRzQ29weSIsICJyZWNvcmRzQ29weV8xIiwgIl9fdmFsdWVzIiwgInJlY29yZHNDb3B5XzFfMSIsICJpbml0X1N1YnNjcmlwdGlvbiIsICJpbml0X2xpZnQiLCAiaW5pdF9PcGVyYXRvclN1YnNjcmliZXIiLCAiaW5pdF9hcnJSZW1vdmUiLCAiaW5pdF9hc3luYyIsICJpbml0X2FyZ3MiLCAiaW5pdF9leGVjdXRlU2NoZWR1bGUiLCAiaW5pdF9idWZmZXJXaGVuIiwgIl9fZXNtTWluIiwgImluaXRfY2F0Y2hFcnJvciIsICJfX2VzbU1pbiIsICJpbml0X3JlZHVjZSIsICJfX2VzbU1pbiIsICJpbml0X3RvQXJyYXkiLCAiX19lc21NaW4iLCAiaW5pdF9jb21iaW5lTGF0ZXN0QWxsIiwgIl9fZXNtTWluIiwgImluaXRfY29tYmluZUFsbCIsICJfX2VzbU1pbiIsICJpbml0X2NvbmNhdE1hcCIsICJfX2VzbU1pbiIsICJpbml0X2NvbmNhdE1hcFRvIiwgIl9fZXNtTWluIiwgImluaXRfY29ubmVjdCIsICJfX2VzbU1pbiIsICJpbml0X2NvdW50IiwgIl9fZXNtTWluIiwgImRlYm91bmNlIiwgImR1cmF0aW9uU2VsZWN0b3IiLCAib3BlcmF0ZSIsICJzb3VyY2UiLCAic3Vic2NyaWJlciIsICJoYXNWYWx1ZSIsICJsYXN0VmFsdWUiLCAiZHVyYXRpb25TdWJzY3JpYmVyIiwgImVtaXQiLCAidmFsdWUiLCAiY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIiwgIm5vb3AiLCAiaW5uZXJGcm9tIiwgImluaXRfZGVib3VuY2UiLCAiX19lc21NaW4iLCAiaW5pdF9saWZ0IiwgImluaXRfbm9vcCIsICJpbml0X09wZXJhdG9yU3Vic2NyaWJlciIsICJpbml0X2lubmVyRnJvbSIsICJkZWJvdW5jZVRpbWUiLCAiZHVlVGltZSIsICJzY2hlZHVsZXIiLCAiYXN5bmNTY2hlZHVsZXIiLCAib3BlcmF0ZSIsICJzb3VyY2UiLCAic3Vic2NyaWJlciIsICJhY3RpdmVUYXNrIiwgImxhc3RWYWx1ZSIsICJsYXN0VGltZSIsICJlbWl0IiwgInZhbHVlIiwgImVtaXRXaGVuSWRsZSIsICJ0YXJnZXRUaW1lIiwgIm5vdyIsICJjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIiLCAiaW5pdF9kZWJvdW5jZVRpbWUiLCAiX19lc21NaW4iLCAiaW5pdF9hc3luYyIsICJpbml0X2xpZnQiLCAiaW5pdF9PcGVyYXRvclN1YnNjcmliZXIiLCAiaW5pdF9kZWZhdWx0SWZFbXB0eSIsICJfX2VzbU1pbiIsICJpbml0X3Rha2UiLCAiX19lc21NaW4iLCAiaW5pdF9pZ25vcmVFbGVtZW50cyIsICJfX2VzbU1pbiIsICJpbml0X21hcFRvIiwgIl9fZXNtTWluIiwgImluaXRfZGVsYXlXaGVuIiwgIl9fZXNtTWluIiwgImluaXRfZGVsYXkiLCAiX19lc21NaW4iLCAiaW5pdF9kZW1hdGVyaWFsaXplIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdGluY3QiLCAiX19lc21NaW4iLCAiaW5pdF9kaXN0aW5jdFVudGlsQ2hhbmdlZCIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RpbmN0VW50aWxLZXlDaGFuZ2VkIiwgIl9fZXNtTWluIiwgImluaXRfdGhyb3dJZkVtcHR5IiwgIl9fZXNtTWluIiwgImluaXRfZWxlbWVudEF0IiwgIl9fZXNtTWluIiwgImluaXRfZXZlcnkiLCAiX19lc21NaW4iLCAiaW5pdF9leGhhdXN0TWFwIiwgIl9fZXNtTWluIiwgImluaXRfZXhoYXVzdEFsbCIsICJfX2VzbU1pbiIsICJpbml0X2V4aGF1c3QiLCAiX19lc21NaW4iLCAiaW5pdF9leHBhbmQiLCAiX19lc21NaW4iLCAiaW5pdF9maW5hbGl6ZSIsICJfX2VzbU1pbiIsICJpbml0X2ZpbmQiLCAiX19lc21NaW4iLCAiaW5pdF9maW5kSW5kZXgiLCAiX19lc21NaW4iLCAiaW5pdF9maXJzdCIsICJfX2VzbU1pbiIsICJpbml0X2dyb3VwQnkiLCAiX19lc21NaW4iLCAiaW5pdF9pc0VtcHR5IiwgIl9fZXNtTWluIiwgImluaXRfbGFzdCIsICJfX2VzbU1pbiIsICJpbml0X21hdGVyaWFsaXplIiwgIl9fZXNtTWluIiwgImluaXRfbWF4IiwgIl9fZXNtTWluIiwgImluaXRfZmxhdE1hcCIsICJfX2VzbU1pbiIsICJpbml0X21lcmdlTWFwVG8iLCAiX19lc21NaW4iLCAiaW5pdF9tZXJnZVNjYW4iLCAiX19lc21NaW4iLCAiaW5pdF9taW4iLCAiX19lc21NaW4iLCAiaW5pdF9tdWx0aWNhc3QiLCAiX19lc21NaW4iLCAiaW5pdF9wYWlyd2lzZSIsICJfX2VzbU1pbiIsICJpbml0X3BsdWNrIiwgIl9fZXNtTWluIiwgImluaXRfcHVibGlzaCIsICJfX2VzbU1pbiIsICJpbml0X3B1Ymxpc2hCZWhhdmlvciIsICJfX2VzbU1pbiIsICJpbml0X3B1Ymxpc2hMYXN0IiwgIl9fZXNtTWluIiwgImluaXRfcHVibGlzaFJlcGxheSIsICJfX2VzbU1pbiIsICJpbml0X3JlcGVhdCIsICJfX2VzbU1pbiIsICJpbml0X3JlcGVhdFdoZW4iLCAiX19lc21NaW4iLCAiaW5pdF9yZXRyeSIsICJfX2VzbU1pbiIsICJpbml0X3JldHJ5V2hlbiIsICJfX2VzbU1pbiIsICJpbml0X3NhbXBsZSIsICJfX2VzbU1pbiIsICJpbml0X3NhbXBsZVRpbWUiLCAiX19lc21NaW4iLCAiaW5pdF9zY2FuIiwgIl9fZXNtTWluIiwgImluaXRfc2VxdWVuY2VFcXVhbCIsICJfX2VzbU1pbiIsICJpbml0X3NoYXJlUmVwbGF5IiwgIl9fZXNtTWluIiwgImluaXRfc2luZ2xlIiwgIl9fZXNtTWluIiwgImluaXRfc2tpcCIsICJfX2VzbU1pbiIsICJpbml0X3NraXBMYXN0IiwgIl9fZXNtTWluIiwgImluaXRfc2tpcFVudGlsIiwgIl9fZXNtTWluIiwgImluaXRfc2tpcFdoaWxlIiwgIl9fZXNtTWluIiwgInN0YXJ0V2l0aCIsICJ2YWx1ZXMiLCAiX2kiLCAic2NoZWR1bGVyIiwgInBvcFNjaGVkdWxlciIsICJvcGVyYXRlIiwgInNvdXJjZSIsICJzdWJzY3JpYmVyIiwgImNvbmNhdCIsICJpbml0X3N0YXJ0V2l0aCIsICJfX2VzbU1pbiIsICJpbml0X2NvbmNhdCIsICJpbml0X2FyZ3MiLCAiaW5pdF9saWZ0IiwgImluaXRfc3dpdGNoTWFwIiwgIl9fZXNtTWluIiwgImluaXRfc3dpdGNoQWxsIiwgIl9fZXNtTWluIiwgImluaXRfc3dpdGNoTWFwVG8iLCAiX19lc21NaW4iLCAiaW5pdF9zd2l0Y2hTY2FuIiwgIl9fZXNtTWluIiwgInRha2VVbnRpbCIsICJub3RpZmllciIsICJvcGVyYXRlIiwgInNvdXJjZSIsICJzdWJzY3JpYmVyIiwgImlubmVyRnJvbSIsICJjcmVhdGVPcGVyYXRvclN1YnNjcmliZXIiLCAibm9vcCIsICJpbml0X3Rha2VVbnRpbCIsICJfX2VzbU1pbiIsICJpbml0X2xpZnQiLCAiaW5pdF9PcGVyYXRvclN1YnNjcmliZXIiLCAiaW5pdF9pbm5lckZyb20iLCAiaW5pdF9ub29wIiwgImluaXRfdGFrZVdoaWxlIiwgIl9fZXNtTWluIiwgImluaXRfdGFwIiwgIl9fZXNtTWluIiwgInRocm90dGxlIiwgImR1cmF0aW9uU2VsZWN0b3IiLCAiY29uZmlnIiwgIm9wZXJhdGUiLCAic291cmNlIiwgInN1YnNjcmliZXIiLCAiX2EiLCAiX2IiLCAibGVhZGluZyIsICJfYyIsICJ0cmFpbGluZyIsICJoYXNWYWx1ZSIsICJzZW5kVmFsdWUiLCAidGhyb3R0bGVkIiwgImlzQ29tcGxldGUiLCAiZW5kVGhyb3R0bGluZyIsICJzZW5kIiwgImNsZWFudXBUaHJvdHRsaW5nIiwgInN0YXJ0VGhyb3R0bGUiLCAidmFsdWUiLCAiaW5uZXJGcm9tIiwgImNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlciIsICJpbml0X3Rocm90dGxlIiwgIl9fZXNtTWluIiwgImluaXRfbGlmdCIsICJpbml0X09wZXJhdG9yU3Vic2NyaWJlciIsICJpbml0X2lubmVyRnJvbSIsICJ0aHJvdHRsZVRpbWUiLCAiZHVyYXRpb24iLCAic2NoZWR1bGVyIiwgImNvbmZpZyIsICJhc3luY1NjaGVkdWxlciIsICJkdXJhdGlvbiQiLCAidGltZXIiLCAidGhyb3R0bGUiLCAiaW5pdF90aHJvdHRsZVRpbWUiLCAiX19lc21NaW4iLCAiaW5pdF9hc3luYyIsICJpbml0X3Rocm90dGxlIiwgImluaXRfdGltZXIiLCAiaW5pdF90aW1lSW50ZXJ2YWwiLCAiX19lc21NaW4iLCAiaW5pdF90aW1lb3V0V2l0aCIsICJfX2VzbU1pbiIsICJpbml0X3RpbWVzdGFtcCIsICJfX2VzbU1pbiIsICJpbml0X3dpbmRvdyIsICJfX2VzbU1pbiIsICJpbml0X3dpbmRvd1RpbWUiLCAiX19lc21NaW4iLCAiaW5pdF93aW5kb3dXaGVuIiwgIl9fZXNtTWluIiwgImluaXRfemlwQWxsIiwgIl9fZXNtTWluIiwgImluaXRfZXNtNSIsICJfX2VzbU1pbiIsICJpbml0X09ic2VydmFibGUiLCAiaW5pdF9Db25uZWN0YWJsZU9ic2VydmFibGUiLCAiaW5pdF9vYnNlcnZhYmxlIiwgImluaXRfYW5pbWF0aW9uRnJhbWVzIiwgImluaXRfU3ViamVjdCIsICJpbml0X0JlaGF2aW9yU3ViamVjdCIsICJpbml0X1JlcGxheVN1YmplY3QiLCAiaW5pdF9Bc3luY1N1YmplY3QiLCAiaW5pdF9hc2FwIiwgImluaXRfYXN5bmMiLCAiaW5pdF9xdWV1ZSIsICJpbml0X2FuaW1hdGlvbkZyYW1lIiwgImluaXRfVmlydHVhbFRpbWVTY2hlZHVsZXIiLCAiaW5pdF9TY2hlZHVsZXIiLCAiaW5pdF9TdWJzY3JpcHRpb24iLCAiaW5pdF9TdWJzY3JpYmVyIiwgImluaXRfTm90aWZpY2F0aW9uIiwgImluaXRfcGlwZSIsICJpbml0X25vb3AiLCAiaW5pdF9pZGVudGl0eSIsICJpbml0X2lzT2JzZXJ2YWJsZSIsICJpbml0X2xhc3RWYWx1ZUZyb20iLCAiaW5pdF9maXJzdFZhbHVlRnJvbSIsICJpbml0X0FyZ3VtZW50T3V0T2ZSYW5nZUVycm9yIiwgImluaXRfRW1wdHlFcnJvciIsICJpbml0X05vdEZvdW5kRXJyb3IiLCAiaW5pdF9PYmplY3RVbnN1YnNjcmliZWRFcnJvciIsICJpbml0X1NlcXVlbmNlRXJyb3IiLCAiaW5pdF90aW1lb3V0IiwgImluaXRfVW5zdWJzY3JpcHRpb25FcnJvciIsICJpbml0X2JpbmRDYWxsYmFjayIsICJpbml0X2JpbmROb2RlQ2FsbGJhY2siLCAiaW5pdF9jb21iaW5lTGF0ZXN0IiwgImluaXRfY29uY2F0IiwgImluaXRfY29ubmVjdGFibGUiLCAiaW5pdF9kZWZlciIsICJpbml0X2VtcHR5IiwgImluaXRfZm9ya0pvaW4iLCAiaW5pdF9mcm9tIiwgImluaXRfZnJvbUV2ZW50IiwgImluaXRfZnJvbUV2ZW50UGF0dGVybiIsICJpbml0X2dlbmVyYXRlIiwgImluaXRfaWlmIiwgImluaXRfaW50ZXJ2YWwiLCAiaW5pdF9tZXJnZSIsICJpbml0X25ldmVyIiwgImluaXRfb2YiLCAiaW5pdF9vbkVycm9yUmVzdW1lTmV4dCIsICJpbml0X3BhaXJzIiwgImluaXRfcGFydGl0aW9uIiwgImluaXRfcmFjZSIsICJpbml0X3JhbmdlIiwgImluaXRfdGhyb3dFcnJvciIsICJpbml0X3RpbWVyIiwgImluaXRfdXNpbmciLCAiaW5pdF96aXAiLCAiaW5pdF9zY2hlZHVsZWQiLCAiaW5pdF90eXBlcyIsICJpbml0X2NvbmZpZyIsICJpbml0X2F1ZGl0IiwgImluaXRfYXVkaXRUaW1lIiwgImluaXRfYnVmZmVyIiwgImluaXRfYnVmZmVyQ291bnQiLCAiaW5pdF9idWZmZXJUaW1lIiwgImluaXRfYnVmZmVyVG9nZ2xlIiwgImluaXRfYnVmZmVyV2hlbiIsICJpbml0X2NhdGNoRXJyb3IiLCAiaW5pdF9jb21iaW5lQWxsIiwgImluaXRfY29tYmluZUxhdGVzdEFsbCIsICJpbml0X2NvbWJpbmVMYXRlc3RXaXRoIiwgImluaXRfY29uY2F0QWxsIiwgImluaXRfY29uY2F0TWFwIiwgImluaXRfY29uY2F0TWFwVG8iLCAiaW5pdF9jb25jYXRXaXRoIiwgImluaXRfY29ubmVjdCIsICJpbml0X2NvdW50IiwgImluaXRfZGVib3VuY2UiLCAiaW5pdF9kZWJvdW5jZVRpbWUiLCAiaW5pdF9kZWZhdWx0SWZFbXB0eSIsICJpbml0X2RlbGF5IiwgImluaXRfZGVsYXlXaGVuIiwgImluaXRfZGVtYXRlcmlhbGl6ZSIsICJpbml0X2Rpc3RpbmN0IiwgImluaXRfZGlzdGluY3RVbnRpbENoYW5nZWQiLCAiaW5pdF9kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCIsICJpbml0X2VsZW1lbnRBdCIsICJpbml0X2VuZFdpdGgiLCAiaW5pdF9ldmVyeSIsICJpbml0X2V4aGF1c3QiLCAiaW5pdF9leGhhdXN0QWxsIiwgImluaXRfZXhoYXVzdE1hcCIsICJpbml0X2V4cGFuZCIsICJpbml0X2ZpbHRlciIsICJpbml0X2ZpbmFsaXplIiwgImluaXRfZmluZCIsICJpbml0X2ZpbmRJbmRleCIsICJpbml0X2ZpcnN0IiwgImluaXRfZ3JvdXBCeSIsICJpbml0X2lnbm9yZUVsZW1lbnRzIiwgImluaXRfaXNFbXB0eSIsICJpbml0X2xhc3QiLCAiaW5pdF9tYXAiLCAiaW5pdF9tYXBUbyIsICJpbml0X21hdGVyaWFsaXplIiwgImluaXRfbWF4IiwgImluaXRfbWVyZ2VBbGwiLCAiaW5pdF9mbGF0TWFwIiwgImluaXRfbWVyZ2VNYXAiLCAiaW5pdF9tZXJnZU1hcFRvIiwgImluaXRfbWVyZ2VTY2FuIiwgImluaXRfbWVyZ2VXaXRoIiwgImluaXRfbWluIiwgImluaXRfbXVsdGljYXN0IiwgImluaXRfb2JzZXJ2ZU9uIiwgImluaXRfb25FcnJvclJlc3VtZU5leHRXaXRoIiwgImluaXRfcGFpcndpc2UiLCAiaW5pdF9wbHVjayIsICJpbml0X3B1Ymxpc2giLCAiaW5pdF9wdWJsaXNoQmVoYXZpb3IiLCAiaW5pdF9wdWJsaXNoTGFzdCIsICJpbml0X3B1Ymxpc2hSZXBsYXkiLCAiaW5pdF9yYWNlV2l0aCIsICJpbml0X3JlZHVjZSIsICJpbml0X3JlcGVhdCIsICJpbml0X3JlcGVhdFdoZW4iLCAiaW5pdF9yZXRyeSIsICJpbml0X3JldHJ5V2hlbiIsICJpbml0X3JlZkNvdW50IiwgImluaXRfc2FtcGxlIiwgImluaXRfc2FtcGxlVGltZSIsICJpbml0X3NjYW4iLCAiaW5pdF9zZXF1ZW5jZUVxdWFsIiwgImluaXRfc2hhcmUiLCAiaW5pdF9zaGFyZVJlcGxheSIsICJpbml0X3NpbmdsZSIsICJpbml0X3NraXAiLCAiaW5pdF9za2lwTGFzdCIsICJpbml0X3NraXBVbnRpbCIsICJpbml0X3NraXBXaGlsZSIsICJpbml0X3N0YXJ0V2l0aCIsICJpbml0X3N1YnNjcmliZU9uIiwgImluaXRfc3dpdGNoQWxsIiwgImluaXRfc3dpdGNoTWFwIiwgImluaXRfc3dpdGNoTWFwVG8iLCAiaW5pdF9zd2l0Y2hTY2FuIiwgImluaXRfdGFrZSIsICJpbml0X3Rha2VMYXN0IiwgImluaXRfdGFrZVVudGlsIiwgImluaXRfdGFrZVdoaWxlIiwgImluaXRfdGFwIiwgImluaXRfdGhyb3R0bGUiLCAiaW5pdF90aHJvdHRsZVRpbWUiLCAiaW5pdF90aHJvd0lmRW1wdHkiLCAiaW5pdF90aW1lSW50ZXJ2YWwiLCAiaW5pdF90aW1lb3V0V2l0aCIsICJpbml0X3RpbWVzdGFtcCIsICJpbml0X3RvQXJyYXkiLCAiaW5pdF93aW5kb3ciLCAiaW5pdF93aW5kb3dDb3VudCIsICJpbml0X3dpbmRvd1RpbWUiLCAiaW5pdF93aW5kb3dUb2dnbGUiLCAiaW5pdF93aW5kb3dXaGVuIiwgImluaXRfd2l0aExhdGVzdEZyb20iLCAiaW5pdF96aXBBbGwiLCAiaW5pdF96aXBXaXRoIiwgImluaXRfcGFydGl0aW9uIiwgIl9fZXNtTWluIiwgImluaXRfb3BlcmF0b3JzIiwgIl9fZXNtTWluIiwgImluaXRfYXVkaXQiLCAiaW5pdF9hdWRpdFRpbWUiLCAiaW5pdF9idWZmZXIiLCAiaW5pdF9idWZmZXJDb3VudCIsICJpbml0X2J1ZmZlclRpbWUiLCAiaW5pdF9idWZmZXJUb2dnbGUiLCAiaW5pdF9idWZmZXJXaGVuIiwgImluaXRfY2F0Y2hFcnJvciIsICJpbml0X2NvbWJpbmVBbGwiLCAiaW5pdF9jb21iaW5lTGF0ZXN0QWxsIiwgImluaXRfY29tYmluZUxhdGVzdCIsICJpbml0X2NvbWJpbmVMYXRlc3RXaXRoIiwgImluaXRfY29uY2F0IiwgImluaXRfY29uY2F0QWxsIiwgImluaXRfY29uY2F0TWFwIiwgImluaXRfY29uY2F0TWFwVG8iLCAiaW5pdF9jb25jYXRXaXRoIiwgImluaXRfY29ubmVjdCIsICJpbml0X2NvdW50IiwgImluaXRfZGVib3VuY2UiLCAiaW5pdF9kZWJvdW5jZVRpbWUiLCAiaW5pdF9kZWZhdWx0SWZFbXB0eSIsICJpbml0X2RlbGF5IiwgImluaXRfZGVsYXlXaGVuIiwgImluaXRfZGVtYXRlcmlhbGl6ZSIsICJpbml0X2Rpc3RpbmN0IiwgImluaXRfZGlzdGluY3RVbnRpbENoYW5nZWQiLCAiaW5pdF9kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCIsICJpbml0X2VsZW1lbnRBdCIsICJpbml0X2VuZFdpdGgiLCAiaW5pdF9ldmVyeSIsICJpbml0X2V4aGF1c3QiLCAiaW5pdF9leGhhdXN0QWxsIiwgImluaXRfZXhoYXVzdE1hcCIsICJpbml0X2V4cGFuZCIsICJpbml0X2ZpbHRlciIsICJpbml0X2ZpbmFsaXplIiwgImluaXRfZmluZCIsICJpbml0X2ZpbmRJbmRleCIsICJpbml0X2ZpcnN0IiwgImluaXRfZ3JvdXBCeSIsICJpbml0X2lnbm9yZUVsZW1lbnRzIiwgImluaXRfaXNFbXB0eSIsICJpbml0X2xhc3QiLCAiaW5pdF9tYXAiLCAiaW5pdF9tYXBUbyIsICJpbml0X21hdGVyaWFsaXplIiwgImluaXRfbWF4IiwgImluaXRfbWVyZ2UiLCAiaW5pdF9tZXJnZUFsbCIsICJpbml0X2ZsYXRNYXAiLCAiaW5pdF9tZXJnZU1hcCIsICJpbml0X21lcmdlTWFwVG8iLCAiaW5pdF9tZXJnZVNjYW4iLCAiaW5pdF9tZXJnZVdpdGgiLCAiaW5pdF9taW4iLCAiaW5pdF9tdWx0aWNhc3QiLCAiaW5pdF9vYnNlcnZlT24iLCAiaW5pdF9vbkVycm9yUmVzdW1lTmV4dFdpdGgiLCAiaW5pdF9wYWlyd2lzZSIsICJpbml0X3BhcnRpdGlvbiIsICJpbml0X3BsdWNrIiwgImluaXRfcHVibGlzaCIsICJpbml0X3B1Ymxpc2hCZWhhdmlvciIsICJpbml0X3B1Ymxpc2hMYXN0IiwgImluaXRfcHVibGlzaFJlcGxheSIsICJpbml0X3JhY2UiLCAiaW5pdF9yYWNlV2l0aCIsICJpbml0X3JlZHVjZSIsICJpbml0X3JlcGVhdCIsICJpbml0X3JlcGVhdFdoZW4iLCAiaW5pdF9yZXRyeSIsICJpbml0X3JldHJ5V2hlbiIsICJpbml0X3JlZkNvdW50IiwgImluaXRfc2FtcGxlIiwgImluaXRfc2FtcGxlVGltZSIsICJpbml0X3NjYW4iLCAiaW5pdF9zZXF1ZW5jZUVxdWFsIiwgImluaXRfc2hhcmUiLCAiaW5pdF9zaGFyZVJlcGxheSIsICJpbml0X3NpbmdsZSIsICJpbml0X3NraXAiLCAiaW5pdF9za2lwTGFzdCIsICJpbml0X3NraXBVbnRpbCIsICJpbml0X3NraXBXaGlsZSIsICJpbml0X3N0YXJ0V2l0aCIsICJpbml0X3N1YnNjcmliZU9uIiwgImluaXRfc3dpdGNoQWxsIiwgImluaXRfc3dpdGNoTWFwIiwgImluaXRfc3dpdGNoTWFwVG8iLCAiaW5pdF9zd2l0Y2hTY2FuIiwgImluaXRfdGFrZSIsICJpbml0X3Rha2VMYXN0IiwgImluaXRfdGFrZVVudGlsIiwgImluaXRfdGFrZVdoaWxlIiwgImluaXRfdGFwIiwgImluaXRfdGhyb3R0bGUiLCAiaW5pdF90aHJvdHRsZVRpbWUiLCAiaW5pdF90aHJvd0lmRW1wdHkiLCAiaW5pdF90aW1lSW50ZXJ2YWwiLCAiaW5pdF90aW1lb3V0IiwgImluaXRfdGltZW91dFdpdGgiLCAiaW5pdF90aW1lc3RhbXAiLCAiaW5pdF90b0FycmF5IiwgImluaXRfd2luZG93IiwgImluaXRfd2luZG93Q291bnQiLCAiaW5pdF93aW5kb3dUaW1lIiwgImluaXRfd2luZG93VG9nZ2xlIiwgImluaXRfd2luZG93V2hlbiIsICJpbml0X3dpdGhMYXRlc3RGcm9tIiwgImluaXRfemlwIiwgImluaXRfemlwQWxsIiwgImluaXRfemlwV2l0aCIsICJzbWFydHJ4X3BsdWdpbnNfcnhqc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIk9ic2VydmFibGUiLCAiUmVwbGF5U3ViamVjdCIsICJTdWJqZWN0IiwgIlN1YnNjcmlwdGlvbiIsICJmcm9tIiwgImZyb21FdmVudCIsICJvZiIsICJvcHMiLCAiaW5pdF9zbWFydHJ4X3BsdWdpbnNfcnhqcyIsICJfX2VzbU1pbiIsICJpbml0X2VzbTUiLCAiaW5pdF9vcGVyYXRvcnMiLCAiYnVmZmVyIiwgImJ1ZmZlckNvdW50IiwgImJ1ZmZlclRpbWUiLCAiZGVib3VuY2UiLCAiZGVib3VuY2VUaW1lIiwgImZpbHRlciIsICJtYXAiLCAic3RhcnRXaXRoIiwgInRha2VVbnRpbCIsICJ0aHJvdHRsZVRpbWUiLCAiT2JzZXJ2YWJsZW1hcCIsICJpbml0X3NtYXJ0cnhfY2xhc3Nlc19vYnNlcnZhYmxlbWFwIiwgIl9fZXNtTWluIiwgImluaXRfc21hcnRyeF9wbHVnaW5zIiwgImluaXRfc21hcnRyeF9wbHVnaW5zX3J4anMiLCAiZW1pdHRlckFyZyIsICJldmVudEFyZyIsICJleGlzdGluZ0J1bmRsZSIsICJidW5kbGVBcmciLCAiZW1pdHRlck9ic2VydmFibGUiLCAiZnJvbUV2ZW50IiwgImVtaXR0ZXJTdWJqZWN0IiwgIlN1YmplY3QiLCAibmV3QnVuZGxlIiwgImV2ZW50VGFyZ2V0QXJnIiwgImV2ZW50TmFtZUFyZyIsICJPYnNlcnZhYmxlSW50YWtlIiwgImluaXRfc21hcnRyeF9jbGFzc2VzX29ic2VydmFibGVpbnRha2UiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHJ4X3BsdWdpbnMiLCAiaW5pdF9zbWFydHJ4X3BsdWdpbnNfcnhqcyIsICJwYXlsb2FkQXJnIiwgIk9ic2VydmFibGUiLCAib2JzZXJ2ZXJBcmciLCAiYXJncyIsICJkaXN0X3RzX2V4cG9ydHMiLCAib2JzZXJ2YWJsZUZ1bmMiLCAicGF5bG9hZEFyZ0FycmF5IiwgIml0ZW0iLCAiZ2VuZXJhdG9yQXJnIiwgImhvd01hbnlBcmciLCAiaSIsICJuZXh0UGF5bG9hZCIsICJmcm9tU3RyZWFtV2l0aEJhY2twcmVzc3VyZSIsICJzdHJlYW0iLCAiT2JzZXJ2YWJsZSIsICJzdWJzY3JpYmVyIiwgInBhdXNlU3RyZWFtIiwgInJlc3VtZVN0cmVhbSIsICJvbkRhdGEiLCAiZGF0YSIsICJlcnJvciIsICJpbml0X3NtYXJ0cnhfZnVuY3Rpb25zIiwgIl9fZXNtTWluIiwgImluaXRfZXNtNSIsICJkaXN0X3RzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiT2JzZXJ2YWJsZUludGFrZSIsICJPYnNlcnZhYmxlbWFwIiwgImZyb21TdHJlYW1XaXRoQmFja3ByZXNzdXJlIiwgInNtYXJ0cnhfcGx1Z2luc19yeGpzX2V4cG9ydHMiLCAiaW5pdF9kaXN0X3RzIiwgIl9fZXNtTWluIiwgImluaXRfc21hcnRyeF9wbHVnaW5zIiwgImluaXRfc21hcnRyeF9jbGFzc2VzX29ic2VydmFibGVtYXAiLCAiaW5pdF9zbWFydHJ4X2NsYXNzZXNfb2JzZXJ2YWJsZWludGFrZSIsICJpbml0X3NtYXJ0cnhfZnVuY3Rpb25zIiwgImluaXRfc21hcnRyeF9wbHVnaW5zX3J4anMiLCAicHJvcGVydHkiLCAib3B0aW9ucyIsICJwcm90b09yVGFyZ2V0IiwgIm5hbWVPckNvbnRleHQiLCAic3RhbmRhcmRQcm9wZXJ0eSIsICJwcm90byIsICJuYW1lIiwgImhhc093blByb3BlcnR5IiwgImNvbnN0cnVjdG9yIiwgImNyZWF0ZVByb3BlcnR5IiwgIk9iamVjdCIsICJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCAidW5kZWZpbmVkIiwgImRlZmF1bHRQcm9wZXJ0eURlY2xhcmF0aW9uIiwgImF0dHJpYnV0ZSIsICJ0eXBlIiwgIlN0cmluZyIsICJjb252ZXJ0ZXIiLCAiZGVmYXVsdENvbnZlcnRlciIsICJyZWZsZWN0IiwgImhhc0NoYW5nZWQiLCAibm90RXF1YWwiLCAidGFyZ2V0IiwgImNvbnRleHQiLCAia2luZCIsICJtZXRhZGF0YSIsICJwcm9wZXJ0aWVzIiwgImdsb2JhbFRoaXMiLCAibGl0UHJvcGVydHlNZXRhZGF0YSIsICJnZXQiLCAic2V0IiwgIk1hcCIsICJjcmVhdGUiLCAid3JhcHBlZCIsICJ2IiwgIm9sZFZhbHVlIiwgImNhbGwiLCAidGhpcyIsICJyZXF1ZXN0VXBkYXRlIiwgIl8kY2hhbmdlUHJvcGVydHkiLCAidmFsdWUiLCAiRXJyb3IiLCAiaW5pdF9wcm9wZXJ0eSIsICJfX2VzbU1pbiIsICJpbml0X2RvbXRvb2xzX2NvbG9ycyIsICJfX2VzbU1pbiIsICJkaXN0X3RzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiVGltZW91dCIsICJkZWxheUZvciIsICJkZWxheUZvclJhbmRvbSIsICJpbml0X2Rpc3RfdHMiLCAiX19lc21NaW4iLCAidGltZUluTWlsbGlzZWNvbmRBcmciLCAicGFzc09uQXJnIiwgInVucmVmZWRBcmciLCAidGltZU1pbkluTWlsbGlzZWNvbmRBcmciLCAidGltZU1heEluTWlsbGlzZWNvbmRBcmciLCAicGFzc09uIiwgImRlZmVyIiwgInJlc3VsdCIsICJkaXN0X3RzX2V4cG9ydHMiLCAiaW5pdF9kaXN0X3RzIiwgIl9fZXNtTWluIiwgImVzY2FwZVN0cmluZ1JlZ2V4cCIsICJzdHJpbmciLCAiaW5pdF9lc2NhcGVfc3RyaW5nX3JlZ2V4cCIsICJfX2VzbU1pbiIsICJtYXRjaGVyX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiaXNNYXRjaCIsICJtYXRjaGVyIiwgImlucHV0cyIsICJwYXR0ZXJucyIsICJvcHRpb25zIiwgImJhc2VNYXRjaGVyIiwgInJlZ2V4cENhY2hlIiwgInNhbml0aXplQXJyYXkiLCAibWFrZVJlZ2V4cCIsICJpbml0X21hdGNoZXIiLCAiX19lc21NaW4iLCAiaW5pdF9lc2NhcGVfc3RyaW5nX3JlZ2V4cCIsICJpbnB1dCIsICJpbnB1dE5hbWUiLCAic3RyaW5nIiwgInBhdHRlcm4iLCAiY2FjaGVLZXkiLCAibmVnYXRlZCIsICJlc2NhcGVTdHJpbmdSZWdleHAiLCAicmVnZXhwIiwgImZpcnN0TWF0Y2hPbmx5IiwgImFsbFBhdHRlcm5zIiwgInJlc3VsdCIsICJtYXRjaGVzIiwgImRpZEZpdCIsICJpbmRleCIsICJ5ZXMiLCAiaW5pdF9zbWFydG1hdGNoX3BsdWdpbnMiLCAiX19lc21NaW4iLCAiaW5pdF9tYXRjaGVyIiwgImRpc3RfdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJTbWFydE1hdGNoIiwgImluaXRfZGlzdF90cyIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0bWF0Y2hfcGx1Z2lucyIsICJ3aWxkY2FyZEFyZyIsICJtYXRjaFN0cmluZ0FyZyIsICJtYXRjaGVyX2V4cG9ydHMiLCAiY3JvbmVyX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiUiIsICJmIiwgImQiLCAieSIsICJoIiwgIm4iLCAidCIsICJlIiwgInMiLCAiaSIsICJhIiwgIkQiLCAiayIsICJOIiwgImciLCAiUyIsICJQIiwgImIiLCAicCIsICJ2IiwgIk8iLCAibSIsICJfIiwgImluaXRfY3JvbmVyIiwgIl9fZXNtTWluIiwgInIiLCAibCIsICJvIiwgInUiLCAidyIsICJDIiwgIlQiLCAiYyIsICJkYXlzSW5XZWVrIiwgImRheXNJblllYXIiLCAibWF4VGltZSIsICJtaW5UaW1lIiwgIm1pbGxpc2Vjb25kc0luV2VlayIsICJtaWxsaXNlY29uZHNJbkRheSIsICJtaWxsaXNlY29uZHNJbk1pbnV0ZSIsICJtaWxsaXNlY29uZHNJbkhvdXIiLCAibWlsbGlzZWNvbmRzSW5TZWNvbmQiLCAibWludXRlc0luWWVhciIsICJtaW51dGVzSW5Nb250aCIsICJtaW51dGVzSW5EYXkiLCAibWludXRlc0luSG91ciIsICJtb250aHNJblF1YXJ0ZXIiLCAibW9udGhzSW5ZZWFyIiwgInF1YXJ0ZXJzSW5ZZWFyIiwgInNlY29uZHNJbkhvdXIiLCAic2Vjb25kc0luTWludXRlIiwgInNlY29uZHNJbkRheSIsICJzZWNvbmRzSW5XZWVrIiwgInNlY29uZHNJblllYXIiLCAic2Vjb25kc0luTW9udGgiLCAic2Vjb25kc0luUXVhcnRlciIsICJjb25zdHJ1Y3RGcm9tU3ltYm9sIiwgImluaXRfY29uc3RhbnRzIiwgIl9fZXNtTWluIiwgImNvbnN0cnVjdEZyb20iLCAiZGF0ZSIsICJ2YWx1ZSIsICJjb25zdHJ1Y3RGcm9tU3ltYm9sIiwgImNvbnN0cnVjdEZyb21fZGVmYXVsdCIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAidG9EYXRlIiwgImFyZ3VtZW50IiwgImNvbnRleHQiLCAiY29uc3RydWN0RnJvbSIsICJ0b0RhdGVfZGVmYXVsdCIsICJpbml0X3RvRGF0ZSIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiYWRkRGF5cyIsICJkYXRlIiwgImFtb3VudCIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJjb25zdHJ1Y3RGcm9tIiwgImFkZERheXNfZGVmYXVsdCIsICJpbml0X2FkZERheXMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfdG9EYXRlIiwgImFkZE1vbnRocyIsICJkYXRlIiwgImFtb3VudCIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJjb25zdHJ1Y3RGcm9tIiwgImRheU9mTW9udGgiLCAiZW5kT2ZEZXNpcmVkTW9udGgiLCAiZGF5c0luTW9udGgiLCAiYWRkTW9udGhzX2RlZmF1bHQiLCAiaW5pdF9hZGRNb250aHMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfdG9EYXRlIiwgImFkZCIsICJkYXRlIiwgImR1cmF0aW9uIiwgIm9wdGlvbnMiLCAieWVhcnMiLCAibW9udGhzIiwgIndlZWtzIiwgImRheXMiLCAiaG91cnMiLCAibWludXRlcyIsICJzZWNvbmRzIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJkYXRlV2l0aE1vbnRocyIsICJhZGRNb250aHMiLCAiZGF0ZVdpdGhEYXlzIiwgImFkZERheXMiLCAibWludXRlc1RvQWRkIiwgIm1zVG9BZGQiLCAiY29uc3RydWN0RnJvbSIsICJhZGRfZGVmYXVsdCIsICJpbml0X2FkZCIsICJfX2VzbU1pbiIsICJpbml0X2FkZERheXMiLCAiaW5pdF9hZGRNb250aHMiLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfdG9EYXRlIiwgImlzU2F0dXJkYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgInRvRGF0ZSIsICJpc1NhdHVyZGF5X2RlZmF1bHQiLCAiaW5pdF9pc1NhdHVyZGF5IiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImlzU3VuZGF5IiwgImRhdGUiLCAib3B0aW9ucyIsICJ0b0RhdGUiLCAiaXNTdW5kYXlfZGVmYXVsdCIsICJpbml0X2lzU3VuZGF5IiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImlzV2Vla2VuZCIsICJkYXRlIiwgIm9wdGlvbnMiLCAiZGF5IiwgInRvRGF0ZSIsICJpc1dlZWtlbmRfZGVmYXVsdCIsICJpbml0X2lzV2Vla2VuZCIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJhZGRCdXNpbmVzc0RheXMiLCAiZGF0ZSIsICJhbW91bnQiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAic3RhcnRlZE9uV2Vla2VuZCIsICJpc1dlZWtlbmQiLCAiY29uc3RydWN0RnJvbSIsICJob3VycyIsICJzaWduIiwgImZ1bGxXZWVrcyIsICJyZXN0RGF5cyIsICJpc1NhdHVyZGF5IiwgImlzU3VuZGF5IiwgImFkZEJ1c2luZXNzRGF5c19kZWZhdWx0IiwgImluaXRfYWRkQnVzaW5lc3NEYXlzIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X2lzU2F0dXJkYXkiLCAiaW5pdF9pc1N1bmRheSIsICJpbml0X2lzV2Vla2VuZCIsICJpbml0X3RvRGF0ZSIsICJhZGRNaWxsaXNlY29uZHMiLCAiZGF0ZSIsICJhbW91bnQiLCAib3B0aW9ucyIsICJjb25zdHJ1Y3RGcm9tIiwgInRvRGF0ZSIsICJhZGRNaWxsaXNlY29uZHNfZGVmYXVsdCIsICJpbml0X2FkZE1pbGxpc2Vjb25kcyIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF90b0RhdGUiLCAiYWRkSG91cnMiLCAiZGF0ZSIsICJhbW91bnQiLCAib3B0aW9ucyIsICJhZGRNaWxsaXNlY29uZHMiLCAibWlsbGlzZWNvbmRzSW5Ib3VyIiwgImFkZEhvdXJzX2RlZmF1bHQiLCAiaW5pdF9hZGRIb3VycyIsICJfX2VzbU1pbiIsICJpbml0X2FkZE1pbGxpc2Vjb25kcyIsICJpbml0X2NvbnN0YW50cyIsICJnZXREZWZhdWx0T3B0aW9ucyIsICJkZWZhdWx0T3B0aW9ucyIsICJzZXREZWZhdWx0T3B0aW9ucyIsICJuZXdPcHRpb25zIiwgImluaXRfZGVmYXVsdE9wdGlvbnMiLCAiX19lc21NaW4iLCAic3RhcnRPZldlZWsiLCAiZGF0ZSIsICJvcHRpb25zIiwgImRlZmF1bHRPcHRpb25zIiwgImdldERlZmF1bHRPcHRpb25zIiwgIndlZWtTdGFydHNPbiIsICJfZGF0ZSIsICJ0b0RhdGUiLCAiZGF5IiwgImRpZmYiLCAic3RhcnRPZldlZWtfZGVmYXVsdCIsICJpbml0X3N0YXJ0T2ZXZWVrIiwgIl9fZXNtTWluIiwgImluaXRfZGVmYXVsdE9wdGlvbnMiLCAiaW5pdF90b0RhdGUiLCAic3RhcnRPZklTT1dlZWsiLCAiZGF0ZSIsICJvcHRpb25zIiwgInN0YXJ0T2ZXZWVrIiwgInN0YXJ0T2ZJU09XZWVrX2RlZmF1bHQiLCAiaW5pdF9zdGFydE9mSVNPV2VlayIsICJfX2VzbU1pbiIsICJpbml0X3N0YXJ0T2ZXZWVrIiwgImdldElTT1dlZWtZZWFyIiwgImRhdGUiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAieWVhciIsICJmb3VydGhPZkphbnVhcnlPZk5leHRZZWFyIiwgImNvbnN0cnVjdEZyb20iLCAic3RhcnRPZk5leHRZZWFyIiwgInN0YXJ0T2ZJU09XZWVrIiwgImZvdXJ0aE9mSmFudWFyeU9mVGhpc1llYXIiLCAic3RhcnRPZlRoaXNZZWFyIiwgImdldElTT1dlZWtZZWFyX2RlZmF1bHQiLCAiaW5pdF9nZXRJU09XZWVrWWVhciIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9zdGFydE9mSVNPV2VlayIsICJpbml0X3RvRGF0ZSIsICJnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIiwgImRhdGUiLCAiX2RhdGUiLCAidG9EYXRlIiwgInV0Y0RhdGUiLCAiaW5pdF9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgIm5vcm1hbGl6ZURhdGVzIiwgImNvbnRleHQiLCAiZGF0ZXMiLCAibm9ybWFsaXplIiwgImNvbnN0cnVjdEZyb20iLCAiZGF0ZSIsICJpbml0X25vcm1hbGl6ZURhdGVzIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJzdGFydE9mRGF5IiwgImRhdGUiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAic3RhcnRPZkRheV9kZWZhdWx0IiwgImluaXRfc3RhcnRPZkRheSIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMiLCAibGF0ZXJEYXRlIiwgImVhcmxpZXJEYXRlIiwgIm9wdGlvbnMiLCAibGF0ZXJEYXRlXyIsICJlYXJsaWVyRGF0ZV8iLCAibm9ybWFsaXplRGF0ZXMiLCAibGF0ZXJTdGFydE9mRGF5IiwgInN0YXJ0T2ZEYXkiLCAiZWFybGllclN0YXJ0T2ZEYXkiLCAibGF0ZXJUaW1lc3RhbXAiLCAiZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyIsICJlYXJsaWVyVGltZXN0YW1wIiwgIm1pbGxpc2Vjb25kc0luRGF5IiwgImRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5c19kZWZhdWx0IiwgImluaXRfZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyIsICJpbml0X25vcm1hbGl6ZURhdGVzIiwgImluaXRfY29uc3RhbnRzIiwgImluaXRfc3RhcnRPZkRheSIsICJzdGFydE9mSVNPV2Vla1llYXIiLCAiZGF0ZSIsICJvcHRpb25zIiwgInllYXIiLCAiZ2V0SVNPV2Vla1llYXIiLCAiZm91cnRoT2ZKYW51YXJ5IiwgImNvbnN0cnVjdEZyb20iLCAic3RhcnRPZklTT1dlZWsiLCAic3RhcnRPZklTT1dlZWtZZWFyX2RlZmF1bHQiLCAiaW5pdF9zdGFydE9mSVNPV2Vla1llYXIiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfZ2V0SVNPV2Vla1llYXIiLCAiaW5pdF9zdGFydE9mSVNPV2VlayIsICJzZXRJU09XZWVrWWVhciIsICJkYXRlIiwgIndlZWtZZWFyIiwgIm9wdGlvbnMiLCAiX2RhdGUiLCAidG9EYXRlIiwgImRpZmYiLCAiZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzIiwgInN0YXJ0T2ZJU09XZWVrWWVhciIsICJmb3VydGhPZkphbnVhcnkiLCAiY29uc3RydWN0RnJvbSIsICJzZXRJU09XZWVrWWVhcl9kZWZhdWx0IiwgImluaXRfc2V0SVNPV2Vla1llYXIiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzIiwgImluaXRfc3RhcnRPZklTT1dlZWtZZWFyIiwgImluaXRfdG9EYXRlIiwgImFkZElTT1dlZWtZZWFycyIsICJkYXRlIiwgImFtb3VudCIsICJvcHRpb25zIiwgInNldElTT1dlZWtZZWFyIiwgImdldElTT1dlZWtZZWFyIiwgImFkZElTT1dlZWtZZWFyc19kZWZhdWx0IiwgImluaXRfYWRkSVNPV2Vla1llYXJzIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0SVNPV2Vla1llYXIiLCAiaW5pdF9zZXRJU09XZWVrWWVhciIsICJhZGRNaW51dGVzIiwgImRhdGUiLCAiYW1vdW50IiwgIm9wdGlvbnMiLCAiX2RhdGUiLCAidG9EYXRlIiwgIm1pbGxpc2Vjb25kc0luTWludXRlIiwgImFkZE1pbnV0ZXNfZGVmYXVsdCIsICJpbml0X2FkZE1pbnV0ZXMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAiaW5pdF90b0RhdGUiLCAiYWRkUXVhcnRlcnMiLCAiZGF0ZSIsICJhbW91bnQiLCAib3B0aW9ucyIsICJhZGRNb250aHMiLCAiYWRkUXVhcnRlcnNfZGVmYXVsdCIsICJpbml0X2FkZFF1YXJ0ZXJzIiwgIl9fZXNtTWluIiwgImluaXRfYWRkTW9udGhzIiwgImFkZFNlY29uZHMiLCAiZGF0ZSIsICJhbW91bnQiLCAib3B0aW9ucyIsICJhZGRNaWxsaXNlY29uZHMiLCAiYWRkU2Vjb25kc19kZWZhdWx0IiwgImluaXRfYWRkU2Vjb25kcyIsICJfX2VzbU1pbiIsICJpbml0X2FkZE1pbGxpc2Vjb25kcyIsICJhZGRXZWVrcyIsICJkYXRlIiwgImFtb3VudCIsICJvcHRpb25zIiwgImFkZERheXMiLCAiYWRkV2Vla3NfZGVmYXVsdCIsICJpbml0X2FkZFdlZWtzIiwgIl9fZXNtTWluIiwgImluaXRfYWRkRGF5cyIsICJhZGRZZWFycyIsICJkYXRlIiwgImFtb3VudCIsICJvcHRpb25zIiwgImFkZE1vbnRocyIsICJhZGRZZWFyc19kZWZhdWx0IiwgImluaXRfYWRkWWVhcnMiLCAiX19lc21NaW4iLCAiaW5pdF9hZGRNb250aHMiLCAiYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmciLCAiaW50ZXJ2YWxMZWZ0IiwgImludGVydmFsUmlnaHQiLCAib3B0aW9ucyIsICJsZWZ0U3RhcnRUaW1lIiwgImxlZnRFbmRUaW1lIiwgInRvRGF0ZSIsICJhIiwgImIiLCAicmlnaHRTdGFydFRpbWUiLCAicmlnaHRFbmRUaW1lIiwgImFyZUludGVydmFsc092ZXJsYXBwaW5nX2RlZmF1bHQiLCAiaW5pdF9hcmVJbnRlcnZhbHNPdmVybGFwcGluZyIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJtYXgiLCAiZGF0ZXMiLCAib3B0aW9ucyIsICJyZXN1bHQiLCAiY29udGV4dCIsICJkYXRlIiwgImNvbnN0cnVjdEZyb20iLCAiZGF0ZV8iLCAidG9EYXRlIiwgIm1heF9kZWZhdWx0IiwgImluaXRfbWF4IiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X3RvRGF0ZSIsICJtaW4iLCAiZGF0ZXMiLCAib3B0aW9ucyIsICJyZXN1bHQiLCAiY29udGV4dCIsICJkYXRlIiwgImNvbnN0cnVjdEZyb20iLCAiZGF0ZV8iLCAidG9EYXRlIiwgIm1pbl9kZWZhdWx0IiwgImluaXRfbWluIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X3RvRGF0ZSIsICJjbGFtcCIsICJkYXRlIiwgImludGVydmFsIiwgIm9wdGlvbnMiLCAiZGF0ZV8iLCAic3RhcnQiLCAiZW5kIiwgIm5vcm1hbGl6ZURhdGVzIiwgIm1pbiIsICJtYXgiLCAiY2xhbXBfZGVmYXVsdCIsICJpbml0X2NsYW1wIiwgIl9fZXNtTWluIiwgImluaXRfbm9ybWFsaXplRGF0ZXMiLCAiaW5pdF9tYXgiLCAiaW5pdF9taW4iLCAiY2xvc2VzdEluZGV4VG8iLCAiZGF0ZVRvQ29tcGFyZSIsICJkYXRlcyIsICJ0aW1lVG9Db21wYXJlIiwgInRvRGF0ZSIsICJyZXN1bHQiLCAibWluRGlzdGFuY2UiLCAiZGF0ZSIsICJpbmRleCIsICJkYXRlXyIsICJkaXN0YW5jZSIsICJjbG9zZXN0SW5kZXhUb19kZWZhdWx0IiwgImluaXRfY2xvc2VzdEluZGV4VG8iLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiY2xvc2VzdFRvIiwgImRhdGVUb0NvbXBhcmUiLCAiZGF0ZXMiLCAib3B0aW9ucyIsICJkYXRlVG9Db21wYXJlXyIsICJkYXRlc18iLCAibm9ybWFsaXplRGF0ZXMiLCAiaW5kZXgiLCAiY2xvc2VzdEluZGV4VG8iLCAiY29uc3RydWN0RnJvbSIsICJjbG9zZXN0VG9fZGVmYXVsdCIsICJpbml0X2Nsb3Nlc3RUbyIsICJfX2VzbU1pbiIsICJpbml0X25vcm1hbGl6ZURhdGVzIiwgImluaXRfY2xvc2VzdEluZGV4VG8iLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImNvbXBhcmVBc2MiLCAiZGF0ZUxlZnQiLCAiZGF0ZVJpZ2h0IiwgImRpZmYiLCAidG9EYXRlIiwgImNvbXBhcmVBc2NfZGVmYXVsdCIsICJpbml0X2NvbXBhcmVBc2MiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiY29tcGFyZURlc2MiLCAiZGF0ZUxlZnQiLCAiZGF0ZVJpZ2h0IiwgImRpZmYiLCAidG9EYXRlIiwgImNvbXBhcmVEZXNjX2RlZmF1bHQiLCAiaW5pdF9jb21wYXJlRGVzYyIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJjb25zdHJ1Y3ROb3ciLCAiZGF0ZSIsICJjb25zdHJ1Y3RGcm9tIiwgImNvbnN0cnVjdE5vd19kZWZhdWx0IiwgImluaXRfY29uc3RydWN0Tm93IiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJkYXlzVG9XZWVrcyIsICJkYXlzIiwgInJlc3VsdCIsICJkYXlzVG9XZWVrc19kZWZhdWx0IiwgImluaXRfZGF5c1RvV2Vla3MiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAiaXNTYW1lRGF5IiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgImRhdGVMZWZ0XyIsICJkYXRlUmlnaHRfIiwgIm5vcm1hbGl6ZURhdGVzIiwgInN0YXJ0T2ZEYXkiLCAiaXNTYW1lRGF5X2RlZmF1bHQiLCAiaW5pdF9pc1NhbWVEYXkiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVEYXRlcyIsICJpbml0X3N0YXJ0T2ZEYXkiLCAiaXNEYXRlIiwgInZhbHVlIiwgImlzRGF0ZV9kZWZhdWx0IiwgImluaXRfaXNEYXRlIiwgIl9fZXNtTWluIiwgImlzVmFsaWQiLCAiZGF0ZSIsICJpc0RhdGUiLCAidG9EYXRlIiwgImlzVmFsaWRfZGVmYXVsdCIsICJpbml0X2lzVmFsaWQiLCAiX19lc21NaW4iLCAiaW5pdF9pc0RhdGUiLCAiaW5pdF90b0RhdGUiLCAiZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzIiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgImxhdGVyRGF0ZV8iLCAiZWFybGllckRhdGVfIiwgIm5vcm1hbGl6ZURhdGVzIiwgImlzVmFsaWQiLCAiZGlmZiIsICJkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMiLCAic2lnbiIsICJ3ZWVrcyIsICJyZXN1bHQiLCAibW92aW5nRGF0ZSIsICJhZGREYXlzIiwgImlzU2FtZURheSIsICJpc1dlZWtlbmQiLCAiZGlmZmVyZW5jZUluQnVzaW5lc3NEYXlzX2RlZmF1bHQiLCAiaW5pdF9kaWZmZXJlbmNlSW5CdXNpbmVzc0RheXMiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVEYXRlcyIsICJpbml0X2FkZERheXMiLCAiaW5pdF9kaWZmZXJlbmNlSW5DYWxlbmRhckRheXMiLCAiaW5pdF9pc1NhbWVEYXkiLCAiaW5pdF9pc1ZhbGlkIiwgImluaXRfaXNXZWVrZW5kIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzIiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgImxhdGVyRGF0ZV8iLCAiZWFybGllckRhdGVfIiwgIm5vcm1hbGl6ZURhdGVzIiwgImdldElTT1dlZWtZZWFyIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzX2RlZmF1bHQiLCAiaW5pdF9kaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFycyIsICJfX2VzbU1pbiIsICJpbml0X25vcm1hbGl6ZURhdGVzIiwgImluaXRfZ2V0SVNPV2Vla1llYXIiLCAiZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrcyIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAib3B0aW9ucyIsICJsYXRlckRhdGVfIiwgImVhcmxpZXJEYXRlXyIsICJub3JtYWxpemVEYXRlcyIsICJzdGFydE9mSVNPV2Vla0xlZnQiLCAic3RhcnRPZklTT1dlZWsiLCAic3RhcnRPZklTT1dlZWtSaWdodCIsICJ0aW1lc3RhbXBMZWZ0IiwgImdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMiLCAidGltZXN0YW1wUmlnaHQiLCAibWlsbGlzZWNvbmRzSW5XZWVrIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3NfZGVmYXVsdCIsICJpbml0X2RpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3MiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIiwgImluaXRfbm9ybWFsaXplRGF0ZXMiLCAiaW5pdF9jb25zdGFudHMiLCAiaW5pdF9zdGFydE9mSVNPV2VlayIsICJkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRocyIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAib3B0aW9ucyIsICJsYXRlckRhdGVfIiwgImVhcmxpZXJEYXRlXyIsICJub3JtYWxpemVEYXRlcyIsICJ5ZWFyc0RpZmYiLCAibW9udGhzRGlmZiIsICJkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRoc19kZWZhdWx0IiwgImluaXRfZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVEYXRlcyIsICJnZXRRdWFydGVyIiwgImRhdGUiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAiZ2V0UXVhcnRlcl9kZWZhdWx0IiwgImluaXRfZ2V0UXVhcnRlciIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzIiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgImxhdGVyRGF0ZV8iLCAiZWFybGllckRhdGVfIiwgIm5vcm1hbGl6ZURhdGVzIiwgInllYXJzRGlmZiIsICJxdWFydGVyc0RpZmYiLCAiZ2V0UXVhcnRlciIsICJkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzX2RlZmF1bHQiLCAiaW5pdF9kaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzIiwgIl9fZXNtTWluIiwgImluaXRfbm9ybWFsaXplRGF0ZXMiLCAiaW5pdF9nZXRRdWFydGVyIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MiLCAibGF0ZXJEYXRlIiwgImVhcmxpZXJEYXRlIiwgIm9wdGlvbnMiLCAibGF0ZXJEYXRlXyIsICJlYXJsaWVyRGF0ZV8iLCAibm9ybWFsaXplRGF0ZXMiLCAibGF0ZXJTdGFydE9mV2VlayIsICJzdGFydE9mV2VlayIsICJlYXJsaWVyU3RhcnRPZldlZWsiLCAibGF0ZXJUaW1lc3RhbXAiLCAiZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyIsICJlYXJsaWVyVGltZXN0YW1wIiwgIm1pbGxpc2Vjb25kc0luV2VlayIsICJkaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzX2RlZmF1bHQiLCAiaW5pdF9kaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyIsICJpbml0X25vcm1hbGl6ZURhdGVzIiwgImluaXRfY29uc3RhbnRzIiwgImluaXRfc3RhcnRPZldlZWsiLCAiZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAib3B0aW9ucyIsICJsYXRlckRhdGVfIiwgImVhcmxpZXJEYXRlXyIsICJub3JtYWxpemVEYXRlcyIsICJkaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzX2RlZmF1bHQiLCAiaW5pdF9kaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzIiwgIl9fZXNtTWluIiwgImluaXRfbm9ybWFsaXplRGF0ZXMiLCAiZGlmZmVyZW5jZUluRGF5cyIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAib3B0aW9ucyIsICJsYXRlckRhdGVfIiwgImVhcmxpZXJEYXRlXyIsICJub3JtYWxpemVEYXRlcyIsICJzaWduIiwgImNvbXBhcmVMb2NhbEFzYyIsICJkaWZmZXJlbmNlIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyIsICJpc0xhc3REYXlOb3RGdWxsIiwgInJlc3VsdCIsICJkaWZmIiwgImRpZmZlcmVuY2VJbkRheXNfZGVmYXVsdCIsICJpbml0X2RpZmZlcmVuY2VJbkRheXMiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVEYXRlcyIsICJpbml0X2RpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyIsICJnZXRSb3VuZGluZ01ldGhvZCIsICJtZXRob2QiLCAibnVtYmVyIiwgInJlc3VsdCIsICJpbml0X2dldFJvdW5kaW5nTWV0aG9kIiwgIl9fZXNtTWluIiwgImRpZmZlcmVuY2VJbkhvdXJzIiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgImxhdGVyRGF0ZV8iLCAiZWFybGllckRhdGVfIiwgIm5vcm1hbGl6ZURhdGVzIiwgImRpZmYiLCAibWlsbGlzZWNvbmRzSW5Ib3VyIiwgImdldFJvdW5kaW5nTWV0aG9kIiwgImRpZmZlcmVuY2VJbkhvdXJzX2RlZmF1bHQiLCAiaW5pdF9kaWZmZXJlbmNlSW5Ib3VycyIsICJfX2VzbU1pbiIsICJpbml0X2dldFJvdW5kaW5nTWV0aG9kIiwgImluaXRfbm9ybWFsaXplRGF0ZXMiLCAiaW5pdF9jb25zdGFudHMiLCAic3ViSVNPV2Vla1llYXJzIiwgImRhdGUiLCAiYW1vdW50IiwgIm9wdGlvbnMiLCAiYWRkSVNPV2Vla1llYXJzIiwgInN1YklTT1dlZWtZZWFyc19kZWZhdWx0IiwgImluaXRfc3ViSVNPV2Vla1llYXJzIiwgIl9fZXNtTWluIiwgImluaXRfYWRkSVNPV2Vla1llYXJzIiwgImRpZmZlcmVuY2VJbklTT1dlZWtZZWFycyIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAib3B0aW9ucyIsICJsYXRlckRhdGVfIiwgImVhcmxpZXJEYXRlXyIsICJub3JtYWxpemVEYXRlcyIsICJzaWduIiwgImNvbXBhcmVBc2MiLCAiZGlmZiIsICJkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFycyIsICJhZGp1c3RlZERhdGUiLCAic3ViSVNPV2Vla1llYXJzIiwgImlzTGFzdElTT1dlZWtZZWFyTm90RnVsbCIsICJyZXN1bHQiLCAiZGlmZmVyZW5jZUluSVNPV2Vla1llYXJzX2RlZmF1bHQiLCAiaW5pdF9kaWZmZXJlbmNlSW5JU09XZWVrWWVhcnMiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVEYXRlcyIsICJpbml0X2NvbXBhcmVBc2MiLCAiaW5pdF9kaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFycyIsICJpbml0X3N1YklTT1dlZWtZZWFycyIsICJkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHMiLCAibGF0ZXJEYXRlIiwgImVhcmxpZXJEYXRlIiwgInRvRGF0ZSIsICJkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHNfZGVmYXVsdCIsICJpbml0X2RpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJkaWZmZXJlbmNlSW5NaW51dGVzIiwgImRhdGVMZWZ0IiwgImRhdGVSaWdodCIsICJvcHRpb25zIiwgImRpZmYiLCAiZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzIiwgIm1pbGxpc2Vjb25kc0luTWludXRlIiwgImdldFJvdW5kaW5nTWV0aG9kIiwgImRpZmZlcmVuY2VJbk1pbnV0ZXNfZGVmYXVsdCIsICJpbml0X2RpZmZlcmVuY2VJbk1pbnV0ZXMiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRSb3VuZGluZ01ldGhvZCIsICJpbml0X2NvbnN0YW50cyIsICJpbml0X2RpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyIsICJlbmRPZkRheSIsICJkYXRlIiwgIm9wdGlvbnMiLCAiX2RhdGUiLCAidG9EYXRlIiwgImVuZE9mRGF5X2RlZmF1bHQiLCAiaW5pdF9lbmRPZkRheSIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJlbmRPZk1vbnRoIiwgImRhdGUiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAibW9udGgiLCAiZW5kT2ZNb250aF9kZWZhdWx0IiwgImluaXRfZW5kT2ZNb250aCIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJpc0xhc3REYXlPZk1vbnRoIiwgImRhdGUiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAiZW5kT2ZEYXkiLCAiZW5kT2ZNb250aCIsICJpc0xhc3REYXlPZk1vbnRoX2RlZmF1bHQiLCAiaW5pdF9pc0xhc3REYXlPZk1vbnRoIiwgIl9fZXNtTWluIiwgImluaXRfZW5kT2ZEYXkiLCAiaW5pdF9lbmRPZk1vbnRoIiwgImluaXRfdG9EYXRlIiwgImRpZmZlcmVuY2VJbk1vbnRocyIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAib3B0aW9ucyIsICJsYXRlckRhdGVfIiwgIndvcmtpbmdMYXRlckRhdGUiLCAiZWFybGllckRhdGVfIiwgIm5vcm1hbGl6ZURhdGVzIiwgInNpZ24iLCAiY29tcGFyZUFzYyIsICJkaWZmZXJlbmNlIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzIiwgImlzTGFzdE1vbnRoTm90RnVsbCIsICJpc0xhc3REYXlPZk1vbnRoIiwgInJlc3VsdCIsICJkaWZmZXJlbmNlSW5Nb250aHNfZGVmYXVsdCIsICJpbml0X2RpZmZlcmVuY2VJbk1vbnRocyIsICJfX2VzbU1pbiIsICJpbml0X25vcm1hbGl6ZURhdGVzIiwgImluaXRfY29tcGFyZUFzYyIsICJpbml0X2RpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzIiwgImluaXRfaXNMYXN0RGF5T2ZNb250aCIsICJkaWZmZXJlbmNlSW5RdWFydGVycyIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAib3B0aW9ucyIsICJkaWZmIiwgImRpZmZlcmVuY2VJbk1vbnRocyIsICJnZXRSb3VuZGluZ01ldGhvZCIsICJkaWZmZXJlbmNlSW5RdWFydGVyc19kZWZhdWx0IiwgImluaXRfZGlmZmVyZW5jZUluUXVhcnRlcnMiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRSb3VuZGluZ01ldGhvZCIsICJpbml0X2RpZmZlcmVuY2VJbk1vbnRocyIsICJkaWZmZXJlbmNlSW5TZWNvbmRzIiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgImRpZmYiLCAiZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzIiwgImdldFJvdW5kaW5nTWV0aG9kIiwgImRpZmZlcmVuY2VJblNlY29uZHNfZGVmYXVsdCIsICJpbml0X2RpZmZlcmVuY2VJblNlY29uZHMiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRSb3VuZGluZ01ldGhvZCIsICJpbml0X2RpZmZlcmVuY2VJbk1pbGxpc2Vjb25kcyIsICJkaWZmZXJlbmNlSW5XZWVrcyIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAib3B0aW9ucyIsICJkaWZmIiwgImRpZmZlcmVuY2VJbkRheXMiLCAiZ2V0Um91bmRpbmdNZXRob2QiLCAiZGlmZmVyZW5jZUluV2Vla3NfZGVmYXVsdCIsICJpbml0X2RpZmZlcmVuY2VJbldlZWtzIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0Um91bmRpbmdNZXRob2QiLCAiaW5pdF9kaWZmZXJlbmNlSW5EYXlzIiwgImRpZmZlcmVuY2VJblllYXJzIiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgImxhdGVyRGF0ZV8iLCAiZWFybGllckRhdGVfIiwgIm5vcm1hbGl6ZURhdGVzIiwgInNpZ24iLCAiY29tcGFyZUFzYyIsICJkaWZmIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnMiLCAicGFydGlhbCIsICJyZXN1bHQiLCAiZGlmZmVyZW5jZUluWWVhcnNfZGVmYXVsdCIsICJpbml0X2RpZmZlcmVuY2VJblllYXJzIiwgIl9fZXNtTWluIiwgImluaXRfbm9ybWFsaXplRGF0ZXMiLCAiaW5pdF9jb21wYXJlQXNjIiwgImluaXRfZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyIsICJub3JtYWxpemVJbnRlcnZhbCIsICJjb250ZXh0IiwgImludGVydmFsIiwgInN0YXJ0IiwgImVuZCIsICJub3JtYWxpemVEYXRlcyIsICJpbml0X25vcm1hbGl6ZUludGVydmFsIiwgIl9fZXNtTWluIiwgImluaXRfbm9ybWFsaXplRGF0ZXMiLCAiZWFjaERheU9mSW50ZXJ2YWwiLCAiaW50ZXJ2YWwiLCAib3B0aW9ucyIsICJzdGFydCIsICJlbmQiLCAibm9ybWFsaXplSW50ZXJ2YWwiLCAicmV2ZXJzZWQiLCAiZW5kVGltZSIsICJkYXRlIiwgInN0ZXAiLCAiZGF0ZXMiLCAiY29uc3RydWN0RnJvbSIsICJlYWNoRGF5T2ZJbnRlcnZhbF9kZWZhdWx0IiwgImluaXRfZWFjaERheU9mSW50ZXJ2YWwiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVJbnRlcnZhbCIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiZWFjaEhvdXJPZkludGVydmFsIiwgImludGVydmFsIiwgIm9wdGlvbnMiLCAic3RhcnQiLCAiZW5kIiwgIm5vcm1hbGl6ZUludGVydmFsIiwgInJldmVyc2VkIiwgImVuZFRpbWUiLCAiZGF0ZSIsICJzdGVwIiwgImRhdGVzIiwgImNvbnN0cnVjdEZyb20iLCAiZWFjaEhvdXJPZkludGVydmFsX2RlZmF1bHQiLCAiaW5pdF9lYWNoSG91ck9mSW50ZXJ2YWwiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVJbnRlcnZhbCIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiZWFjaE1pbnV0ZU9mSW50ZXJ2YWwiLCAiaW50ZXJ2YWwiLCAib3B0aW9ucyIsICJzdGFydCIsICJlbmQiLCAibm9ybWFsaXplSW50ZXJ2YWwiLCAicmV2ZXJzZWQiLCAiZW5kVGltZSIsICJkYXRlIiwgInN0ZXAiLCAiZGF0ZXMiLCAiY29uc3RydWN0RnJvbSIsICJhZGRNaW51dGVzIiwgImVhY2hNaW51dGVPZkludGVydmFsX2RlZmF1bHQiLCAiaW5pdF9lYWNoTWludXRlT2ZJbnRlcnZhbCIsICJfX2VzbU1pbiIsICJpbml0X25vcm1hbGl6ZUludGVydmFsIiwgImluaXRfYWRkTWludXRlcyIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiZWFjaE1vbnRoT2ZJbnRlcnZhbCIsICJpbnRlcnZhbCIsICJvcHRpb25zIiwgInN0YXJ0IiwgImVuZCIsICJub3JtYWxpemVJbnRlcnZhbCIsICJyZXZlcnNlZCIsICJlbmRUaW1lIiwgImRhdGUiLCAic3RlcCIsICJkYXRlcyIsICJjb25zdHJ1Y3RGcm9tIiwgImVhY2hNb250aE9mSW50ZXJ2YWxfZGVmYXVsdCIsICJpbml0X2VhY2hNb250aE9mSW50ZXJ2YWwiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVJbnRlcnZhbCIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAic3RhcnRPZlF1YXJ0ZXIiLCAiZGF0ZSIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJjdXJyZW50TW9udGgiLCAibW9udGgiLCAic3RhcnRPZlF1YXJ0ZXJfZGVmYXVsdCIsICJpbml0X3N0YXJ0T2ZRdWFydGVyIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImVhY2hRdWFydGVyT2ZJbnRlcnZhbCIsICJpbnRlcnZhbCIsICJvcHRpb25zIiwgInN0YXJ0IiwgImVuZCIsICJub3JtYWxpemVJbnRlcnZhbCIsICJyZXZlcnNlZCIsICJlbmRUaW1lIiwgInN0YXJ0T2ZRdWFydGVyIiwgImRhdGUiLCAic3RlcCIsICJkYXRlcyIsICJjb25zdHJ1Y3RGcm9tIiwgImFkZFF1YXJ0ZXJzIiwgImVhY2hRdWFydGVyT2ZJbnRlcnZhbF9kZWZhdWx0IiwgImluaXRfZWFjaFF1YXJ0ZXJPZkludGVydmFsIiwgIl9fZXNtTWluIiwgImluaXRfbm9ybWFsaXplSW50ZXJ2YWwiLCAiaW5pdF9hZGRRdWFydGVycyIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9zdGFydE9mUXVhcnRlciIsICJlYWNoV2Vla09mSW50ZXJ2YWwiLCAiaW50ZXJ2YWwiLCAib3B0aW9ucyIsICJzdGFydCIsICJlbmQiLCAibm9ybWFsaXplSW50ZXJ2YWwiLCAicmV2ZXJzZWQiLCAic3RhcnREYXRlV2VlayIsICJzdGFydE9mV2VlayIsICJlbmREYXRlV2VlayIsICJlbmRUaW1lIiwgImN1cnJlbnREYXRlIiwgInN0ZXAiLCAiZGF0ZXMiLCAiY29uc3RydWN0RnJvbSIsICJhZGRXZWVrcyIsICJlYWNoV2Vla09mSW50ZXJ2YWxfZGVmYXVsdCIsICJpbml0X2VhY2hXZWVrT2ZJbnRlcnZhbCIsICJfX2VzbU1pbiIsICJpbml0X25vcm1hbGl6ZUludGVydmFsIiwgImluaXRfYWRkV2Vla3MiLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfc3RhcnRPZldlZWsiLCAiZWFjaFdlZWtlbmRPZkludGVydmFsIiwgImludGVydmFsIiwgIm9wdGlvbnMiLCAic3RhcnQiLCAiZW5kIiwgIm5vcm1hbGl6ZUludGVydmFsIiwgImRhdGVJbnRlcnZhbCIsICJlYWNoRGF5T2ZJbnRlcnZhbCIsICJ3ZWVrZW5kcyIsICJpbmRleCIsICJkYXRlIiwgImlzV2Vla2VuZCIsICJjb25zdHJ1Y3RGcm9tIiwgImVhY2hXZWVrZW5kT2ZJbnRlcnZhbF9kZWZhdWx0IiwgImluaXRfZWFjaFdlZWtlbmRPZkludGVydmFsIiwgIl9fZXNtTWluIiwgImluaXRfbm9ybWFsaXplSW50ZXJ2YWwiLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfZWFjaERheU9mSW50ZXJ2YWwiLCAiaW5pdF9pc1dlZWtlbmQiLCAic3RhcnRPZk1vbnRoIiwgImRhdGUiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAic3RhcnRPZk1vbnRoX2RlZmF1bHQiLCAiaW5pdF9zdGFydE9mTW9udGgiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiZWFjaFdlZWtlbmRPZk1vbnRoIiwgImRhdGUiLCAib3B0aW9ucyIsICJzdGFydCIsICJzdGFydE9mTW9udGgiLCAiZW5kIiwgImVuZE9mTW9udGgiLCAiZWFjaFdlZWtlbmRPZkludGVydmFsIiwgImVhY2hXZWVrZW5kT2ZNb250aF9kZWZhdWx0IiwgImluaXRfZWFjaFdlZWtlbmRPZk1vbnRoIiwgIl9fZXNtTWluIiwgImluaXRfZWFjaFdlZWtlbmRPZkludGVydmFsIiwgImluaXRfZW5kT2ZNb250aCIsICJpbml0X3N0YXJ0T2ZNb250aCIsICJlbmRPZlllYXIiLCAiZGF0ZSIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJ5ZWFyIiwgImVuZE9mWWVhcl9kZWZhdWx0IiwgImluaXRfZW5kT2ZZZWFyIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgInN0YXJ0T2ZZZWFyIiwgImRhdGUiLCAib3B0aW9ucyIsICJkYXRlXyIsICJ0b0RhdGUiLCAic3RhcnRPZlllYXJfZGVmYXVsdCIsICJpbml0X3N0YXJ0T2ZZZWFyIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImVhY2hXZWVrZW5kT2ZZZWFyIiwgImRhdGUiLCAib3B0aW9ucyIsICJzdGFydCIsICJzdGFydE9mWWVhciIsICJlbmQiLCAiZW5kT2ZZZWFyIiwgImVhY2hXZWVrZW5kT2ZJbnRlcnZhbCIsICJlYWNoV2Vla2VuZE9mWWVhcl9kZWZhdWx0IiwgImluaXRfZWFjaFdlZWtlbmRPZlllYXIiLCAiX19lc21NaW4iLCAiaW5pdF9lYWNoV2Vla2VuZE9mSW50ZXJ2YWwiLCAiaW5pdF9lbmRPZlllYXIiLCAiaW5pdF9zdGFydE9mWWVhciIsICJlYWNoWWVhck9mSW50ZXJ2YWwiLCAiaW50ZXJ2YWwiLCAib3B0aW9ucyIsICJzdGFydCIsICJlbmQiLCAibm9ybWFsaXplSW50ZXJ2YWwiLCAicmV2ZXJzZWQiLCAiZW5kVGltZSIsICJkYXRlIiwgInN0ZXAiLCAiZGF0ZXMiLCAiY29uc3RydWN0RnJvbSIsICJlYWNoWWVhck9mSW50ZXJ2YWxfZGVmYXVsdCIsICJpbml0X2VhY2hZZWFyT2ZJbnRlcnZhbCIsICJfX2VzbU1pbiIsICJpbml0X25vcm1hbGl6ZUludGVydmFsIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJlbmRPZkRlY2FkZSIsICJkYXRlIiwgIm9wdGlvbnMiLCAiX2RhdGUiLCAidG9EYXRlIiwgInllYXIiLCAiZGVjYWRlIiwgImVuZE9mRGVjYWRlX2RlZmF1bHQiLCAiaW5pdF9lbmRPZkRlY2FkZSIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJlbmRPZkhvdXIiLCAiZGF0ZSIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJlbmRPZkhvdXJfZGVmYXVsdCIsICJpbml0X2VuZE9mSG91ciIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJlbmRPZldlZWsiLCAiZGF0ZSIsICJvcHRpb25zIiwgImRlZmF1bHRPcHRpb25zIiwgImdldERlZmF1bHRPcHRpb25zIiwgIndlZWtTdGFydHNPbiIsICJfZGF0ZSIsICJ0b0RhdGUiLCAiZGF5IiwgImRpZmYiLCAiZW5kT2ZXZWVrX2RlZmF1bHQiLCAiaW5pdF9lbmRPZldlZWsiLCAiX19lc21NaW4iLCAiaW5pdF9kZWZhdWx0T3B0aW9ucyIsICJpbml0X3RvRGF0ZSIsICJlbmRPZklTT1dlZWsiLCAiZGF0ZSIsICJvcHRpb25zIiwgImVuZE9mV2VlayIsICJlbmRPZklTT1dlZWtfZGVmYXVsdCIsICJpbml0X2VuZE9mSVNPV2VlayIsICJfX2VzbU1pbiIsICJpbml0X2VuZE9mV2VlayIsICJlbmRPZklTT1dlZWtZZWFyIiwgImRhdGUiLCAib3B0aW9ucyIsICJ5ZWFyIiwgImdldElTT1dlZWtZZWFyIiwgImZvdXJ0aE9mSmFudWFyeU9mTmV4dFllYXIiLCAiY29uc3RydWN0RnJvbSIsICJfZGF0ZSIsICJzdGFydE9mSVNPV2VlayIsICJlbmRPZklTT1dlZWtZZWFyX2RlZmF1bHQiLCAiaW5pdF9lbmRPZklTT1dlZWtZZWFyIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X2dldElTT1dlZWtZZWFyIiwgImluaXRfc3RhcnRPZklTT1dlZWsiLCAiZW5kT2ZNaW51dGUiLCAiZGF0ZSIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJlbmRPZk1pbnV0ZV9kZWZhdWx0IiwgImluaXRfZW5kT2ZNaW51dGUiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiZW5kT2ZRdWFydGVyIiwgImRhdGUiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAiY3VycmVudE1vbnRoIiwgIm1vbnRoIiwgImVuZE9mUXVhcnRlcl9kZWZhdWx0IiwgImluaXRfZW5kT2ZRdWFydGVyIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImVuZE9mU2Vjb25kIiwgImRhdGUiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAiZW5kT2ZTZWNvbmRfZGVmYXVsdCIsICJpbml0X2VuZE9mU2Vjb25kIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImVuZE9mVG9kYXkiLCAib3B0aW9ucyIsICJlbmRPZkRheSIsICJlbmRPZlRvZGF5X2RlZmF1bHQiLCAiaW5pdF9lbmRPZlRvZGF5IiwgIl9fZXNtTWluIiwgImluaXRfZW5kT2ZEYXkiLCAiZW5kT2ZUb21vcnJvdyIsICJvcHRpb25zIiwgIm5vdyIsICJjb25zdHJ1Y3ROb3ciLCAieWVhciIsICJtb250aCIsICJkYXkiLCAiZGF0ZSIsICJlbmRPZlRvbW9ycm93X2RlZmF1bHQiLCAiaW5pdF9lbmRPZlRvbW9ycm93IiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0Tm93IiwgImVuZE9mWWVzdGVyZGF5IiwgIm9wdGlvbnMiLCAibm93IiwgImNvbnN0cnVjdE5vdyIsICJkYXRlIiwgImNvbnN0cnVjdEZyb20iLCAiZW5kT2ZZZXN0ZXJkYXlfZGVmYXVsdCIsICJpbml0X2VuZE9mWWVzdGVyZGF5IiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X2NvbnN0cnVjdE5vdyIsICJmb3JtYXREaXN0YW5jZUxvY2FsZSIsICJmb3JtYXREaXN0YW5jZSIsICJpbml0X2Zvcm1hdERpc3RhbmNlIiwgIl9fZXNtTWluIiwgInRva2VuIiwgImNvdW50IiwgIm9wdGlvbnMiLCAicmVzdWx0IiwgInRva2VuVmFsdWUiLCAiYnVpbGRGb3JtYXRMb25nRm4iLCAiYXJncyIsICJvcHRpb25zIiwgIndpZHRoIiwgImluaXRfYnVpbGRGb3JtYXRMb25nRm4iLCAiX19lc21NaW4iLCAiZGF0ZUZvcm1hdHMiLCAidGltZUZvcm1hdHMiLCAiZGF0ZVRpbWVGb3JtYXRzIiwgImZvcm1hdExvbmciLCAiaW5pdF9mb3JtYXRMb25nIiwgIl9fZXNtTWluIiwgImluaXRfYnVpbGRGb3JtYXRMb25nRm4iLCAiYnVpbGRGb3JtYXRMb25nRm4iLCAiZm9ybWF0UmVsYXRpdmVMb2NhbGUiLCAiZm9ybWF0UmVsYXRpdmUiLCAiaW5pdF9mb3JtYXRSZWxhdGl2ZSIsICJfX2VzbU1pbiIsICJ0b2tlbiIsICJfZGF0ZSIsICJfYmFzZURhdGUiLCAiX29wdGlvbnMiLCAiYnVpbGRMb2NhbGl6ZUZuIiwgImFyZ3MiLCAidmFsdWUiLCAib3B0aW9ucyIsICJjb250ZXh0IiwgInZhbHVlc0FycmF5IiwgImRlZmF1bHRXaWR0aCIsICJ3aWR0aCIsICJpbmRleCIsICJpbml0X2J1aWxkTG9jYWxpemVGbiIsICJfX2VzbU1pbiIsICJlcmFWYWx1ZXMiLCAicXVhcnRlclZhbHVlcyIsICJtb250aFZhbHVlcyIsICJkYXlWYWx1ZXMiLCAiZGF5UGVyaW9kVmFsdWVzIiwgImZvcm1hdHRpbmdEYXlQZXJpb2RWYWx1ZXMiLCAib3JkaW5hbE51bWJlciIsICJsb2NhbGl6ZSIsICJpbml0X2xvY2FsaXplIiwgIl9fZXNtTWluIiwgImluaXRfYnVpbGRMb2NhbGl6ZUZuIiwgImRpcnR5TnVtYmVyIiwgIl9vcHRpb25zIiwgIm51bWJlciIsICJyZW0xMDAiLCAiYnVpbGRMb2NhbGl6ZUZuIiwgInF1YXJ0ZXIiLCAiYnVpbGRNYXRjaEZuIiwgImFyZ3MiLCAic3RyaW5nIiwgIm9wdGlvbnMiLCAid2lkdGgiLCAibWF0Y2hQYXR0ZXJuIiwgIm1hdGNoUmVzdWx0IiwgIm1hdGNoZWRTdHJpbmciLCAicGFyc2VQYXR0ZXJucyIsICJrZXkiLCAiZmluZEluZGV4IiwgInBhdHRlcm4iLCAiZmluZEtleSIsICJ2YWx1ZSIsICJyZXN0IiwgIm9iamVjdCIsICJwcmVkaWNhdGUiLCAiYXJyYXkiLCAiaW5pdF9idWlsZE1hdGNoRm4iLCAiX19lc21NaW4iLCAiYnVpbGRNYXRjaFBhdHRlcm5GbiIsICJhcmdzIiwgInN0cmluZyIsICJvcHRpb25zIiwgIm1hdGNoUmVzdWx0IiwgIm1hdGNoZWRTdHJpbmciLCAicGFyc2VSZXN1bHQiLCAidmFsdWUiLCAicmVzdCIsICJpbml0X2J1aWxkTWF0Y2hQYXR0ZXJuRm4iLCAiX19lc21NaW4iLCAibWF0Y2hPcmRpbmFsTnVtYmVyUGF0dGVybiIsICJwYXJzZU9yZGluYWxOdW1iZXJQYXR0ZXJuIiwgIm1hdGNoRXJhUGF0dGVybnMiLCAicGFyc2VFcmFQYXR0ZXJucyIsICJtYXRjaFF1YXJ0ZXJQYXR0ZXJucyIsICJwYXJzZVF1YXJ0ZXJQYXR0ZXJucyIsICJtYXRjaE1vbnRoUGF0dGVybnMiLCAicGFyc2VNb250aFBhdHRlcm5zIiwgIm1hdGNoRGF5UGF0dGVybnMiLCAicGFyc2VEYXlQYXR0ZXJucyIsICJtYXRjaERheVBlcmlvZFBhdHRlcm5zIiwgInBhcnNlRGF5UGVyaW9kUGF0dGVybnMiLCAibWF0Y2giLCAiaW5pdF9tYXRjaCIsICJfX2VzbU1pbiIsICJpbml0X2J1aWxkTWF0Y2hGbiIsICJpbml0X2J1aWxkTWF0Y2hQYXR0ZXJuRm4iLCAiYnVpbGRNYXRjaFBhdHRlcm5GbiIsICJ2YWx1ZSIsICJidWlsZE1hdGNoRm4iLCAiaW5kZXgiLCAiZW5VUyIsICJlbl9VU19kZWZhdWx0IiwgImluaXRfZW5fVVMiLCAiX19lc21NaW4iLCAiaW5pdF9mb3JtYXREaXN0YW5jZSIsICJpbml0X2Zvcm1hdExvbmciLCAiaW5pdF9mb3JtYXRSZWxhdGl2ZSIsICJpbml0X2xvY2FsaXplIiwgImluaXRfbWF0Y2giLCAiZm9ybWF0RGlzdGFuY2UiLCAiZm9ybWF0TG9uZyIsICJmb3JtYXRSZWxhdGl2ZSIsICJsb2NhbGl6ZSIsICJtYXRjaCIsICJpbml0X2RlZmF1bHRMb2NhbGUiLCAiX19lc21NaW4iLCAiaW5pdF9lbl9VUyIsICJnZXREYXlPZlllYXIiLCAiZGF0ZSIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMiLCAic3RhcnRPZlllYXIiLCAiZ2V0RGF5T2ZZZWFyX2RlZmF1bHQiLCAiaW5pdF9nZXREYXlPZlllYXIiLCAiX19lc21NaW4iLCAiaW5pdF9kaWZmZXJlbmNlSW5DYWxlbmRhckRheXMiLCAiaW5pdF9zdGFydE9mWWVhciIsICJpbml0X3RvRGF0ZSIsICJnZXRJU09XZWVrIiwgImRhdGUiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAiZGlmZiIsICJzdGFydE9mSVNPV2VlayIsICJzdGFydE9mSVNPV2Vla1llYXIiLCAibWlsbGlzZWNvbmRzSW5XZWVrIiwgImdldElTT1dlZWtfZGVmYXVsdCIsICJpbml0X2dldElTT1dlZWsiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAiaW5pdF9zdGFydE9mSVNPV2VlayIsICJpbml0X3N0YXJ0T2ZJU09XZWVrWWVhciIsICJpbml0X3RvRGF0ZSIsICJnZXRXZWVrWWVhciIsICJkYXRlIiwgIm9wdGlvbnMiLCAiX2RhdGUiLCAidG9EYXRlIiwgInllYXIiLCAiZGVmYXVsdE9wdGlvbnMiLCAiZ2V0RGVmYXVsdE9wdGlvbnMiLCAiZmlyc3RXZWVrQ29udGFpbnNEYXRlIiwgImZpcnN0V2Vla09mTmV4dFllYXIiLCAiY29uc3RydWN0RnJvbSIsICJzdGFydE9mTmV4dFllYXIiLCAic3RhcnRPZldlZWsiLCAiZmlyc3RXZWVrT2ZUaGlzWWVhciIsICJzdGFydE9mVGhpc1llYXIiLCAiZ2V0V2Vla1llYXJfZGVmYXVsdCIsICJpbml0X2dldFdlZWtZZWFyIiwgIl9fZXNtTWluIiwgImluaXRfZGVmYXVsdE9wdGlvbnMiLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfc3RhcnRPZldlZWsiLCAiaW5pdF90b0RhdGUiLCAic3RhcnRPZldlZWtZZWFyIiwgImRhdGUiLCAib3B0aW9ucyIsICJkZWZhdWx0T3B0aW9ucyIsICJnZXREZWZhdWx0T3B0aW9ucyIsICJmaXJzdFdlZWtDb250YWluc0RhdGUiLCAieWVhciIsICJnZXRXZWVrWWVhciIsICJmaXJzdFdlZWsiLCAiY29uc3RydWN0RnJvbSIsICJzdGFydE9mV2VlayIsICJzdGFydE9mV2Vla1llYXJfZGVmYXVsdCIsICJpbml0X3N0YXJ0T2ZXZWVrWWVhciIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHRPcHRpb25zIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X2dldFdlZWtZZWFyIiwgImluaXRfc3RhcnRPZldlZWsiLCAiZ2V0V2VlayIsICJkYXRlIiwgIm9wdGlvbnMiLCAiX2RhdGUiLCAidG9EYXRlIiwgImRpZmYiLCAic3RhcnRPZldlZWsiLCAic3RhcnRPZldlZWtZZWFyIiwgIm1pbGxpc2Vjb25kc0luV2VlayIsICJnZXRXZWVrX2RlZmF1bHQiLCAiaW5pdF9nZXRXZWVrIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgImluaXRfc3RhcnRPZldlZWsiLCAiaW5pdF9zdGFydE9mV2Vla1llYXIiLCAiaW5pdF90b0RhdGUiLCAiYWRkTGVhZGluZ1plcm9zIiwgIm51bWJlciIsICJ0YXJnZXRMZW5ndGgiLCAic2lnbiIsICJvdXRwdXQiLCAiaW5pdF9hZGRMZWFkaW5nWmVyb3MiLCAiX19lc21NaW4iLCAibGlnaHRGb3JtYXR0ZXJzIiwgImluaXRfbGlnaHRGb3JtYXR0ZXJzIiwgIl9fZXNtTWluIiwgImluaXRfYWRkTGVhZGluZ1plcm9zIiwgImRhdGUiLCAidG9rZW4iLCAic2lnbmVkWWVhciIsICJ5ZWFyIiwgImFkZExlYWRpbmdaZXJvcyIsICJtb250aCIsICJkYXlQZXJpb2RFbnVtVmFsdWUiLCAibnVtYmVyT2ZEaWdpdHMiLCAibWlsbGlzZWNvbmRzIiwgImZyYWN0aW9uYWxTZWNvbmRzIiwgImZvcm1hdFRpbWV6b25lU2hvcnQiLCAib2Zmc2V0IiwgImRlbGltaXRlciIsICJzaWduIiwgImFic09mZnNldCIsICJob3VycyIsICJtaW51dGVzIiwgImFkZExlYWRpbmdaZXJvcyIsICJmb3JtYXRUaW1lem9uZVdpdGhPcHRpb25hbE1pbnV0ZXMiLCAiZm9ybWF0VGltZXpvbmUiLCAiZGF5UGVyaW9kRW51bSIsICJmb3JtYXR0ZXJzIiwgImluaXRfZm9ybWF0dGVycyIsICJfX2VzbU1pbiIsICJpbml0X2dldERheU9mWWVhciIsICJpbml0X2dldElTT1dlZWsiLCAiaW5pdF9nZXRJU09XZWVrWWVhciIsICJpbml0X2dldFdlZWsiLCAiaW5pdF9nZXRXZWVrWWVhciIsICJpbml0X2FkZExlYWRpbmdaZXJvcyIsICJpbml0X2xpZ2h0Rm9ybWF0dGVycyIsICJkYXRlIiwgInRva2VuIiwgImxvY2FsaXplIiwgImVyYSIsICJzaWduZWRZZWFyIiwgInllYXIiLCAibGlnaHRGb3JtYXR0ZXJzIiwgIm9wdGlvbnMiLCAic2lnbmVkV2Vla1llYXIiLCAiZ2V0V2Vla1llYXIiLCAid2Vla1llYXIiLCAidHdvRGlnaXRZZWFyIiwgImlzb1dlZWtZZWFyIiwgImdldElTT1dlZWtZZWFyIiwgInF1YXJ0ZXIiLCAibW9udGgiLCAid2VlayIsICJnZXRXZWVrIiwgImlzb1dlZWsiLCAiZ2V0SVNPV2VlayIsICJkYXlPZlllYXIiLCAiZ2V0RGF5T2ZZZWFyIiwgImRheU9mV2VlayIsICJsb2NhbERheU9mV2VlayIsICJpc29EYXlPZldlZWsiLCAiZGF5UGVyaW9kRW51bVZhbHVlIiwgIl9sb2NhbGl6ZSIsICJ0aW1lem9uZU9mZnNldCIsICJ0aW1lc3RhbXAiLCAiZGF0ZUxvbmdGb3JtYXR0ZXIiLCAidGltZUxvbmdGb3JtYXR0ZXIiLCAiZGF0ZVRpbWVMb25nRm9ybWF0dGVyIiwgImxvbmdGb3JtYXR0ZXJzIiwgImluaXRfbG9uZ0Zvcm1hdHRlcnMiLCAiX19lc21NaW4iLCAicGF0dGVybiIsICJmb3JtYXRMb25nIiwgIm1hdGNoUmVzdWx0IiwgImRhdGVQYXR0ZXJuIiwgInRpbWVQYXR0ZXJuIiwgImRhdGVUaW1lRm9ybWF0IiwgImlzUHJvdGVjdGVkRGF5T2ZZZWFyVG9rZW4iLCAidG9rZW4iLCAiZGF5T2ZZZWFyVG9rZW5SRSIsICJpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4iLCAid2Vla1llYXJUb2tlblJFIiwgIndhcm5PclRocm93UHJvdGVjdGVkRXJyb3IiLCAiZm9ybWF0IiwgImlucHV0IiwgIl9tZXNzYWdlIiwgIm1lc3NhZ2UiLCAidGhyb3dUb2tlbnMiLCAic3ViamVjdCIsICJpbml0X3Byb3RlY3RlZFRva2VucyIsICJfX2VzbU1pbiIsICJmb3JtYXQiLCAiZGF0ZSIsICJmb3JtYXRTdHIiLCAib3B0aW9ucyIsICJkZWZhdWx0T3B0aW9ucyIsICJnZXREZWZhdWx0T3B0aW9ucyIsICJsb2NhbGUiLCAiZW5VUyIsICJmaXJzdFdlZWtDb250YWluc0RhdGUiLCAid2Vla1N0YXJ0c09uIiwgIm9yaWdpbmFsRGF0ZSIsICJ0b0RhdGUiLCAiaXNWYWxpZCIsICJwYXJ0cyIsICJsb25nRm9ybWF0dGluZ1Rva2Vuc1JlZ0V4cCIsICJzdWJzdHJpbmciLCAiZmlyc3RDaGFyYWN0ZXIiLCAibG9uZ0Zvcm1hdHRlciIsICJsb25nRm9ybWF0dGVycyIsICJmb3JtYXR0aW5nVG9rZW5zUmVnRXhwIiwgImNsZWFuRXNjYXBlZFN0cmluZyIsICJmb3JtYXR0ZXJzIiwgInVuZXNjYXBlZExhdGluQ2hhcmFjdGVyUmVnRXhwIiwgImZvcm1hdHRlck9wdGlvbnMiLCAicGFydCIsICJ0b2tlbiIsICJpc1Byb3RlY3RlZFdlZWtZZWFyVG9rZW4iLCAiaXNQcm90ZWN0ZWREYXlPZlllYXJUb2tlbiIsICJ3YXJuT3JUaHJvd1Byb3RlY3RlZEVycm9yIiwgImZvcm1hdHRlciIsICJpbnB1dCIsICJtYXRjaGVkIiwgImVzY2FwZWRTdHJpbmdSZWdFeHAiLCAiZG91YmxlUXVvdGVSZWdFeHAiLCAiZm9ybWF0X2RlZmF1bHQiLCAiaW5pdF9mb3JtYXQiLCAiX19lc21NaW4iLCAiaW5pdF9kZWZhdWx0TG9jYWxlIiwgImluaXRfZGVmYXVsdE9wdGlvbnMiLCAiaW5pdF9mb3JtYXR0ZXJzIiwgImluaXRfbG9uZ0Zvcm1hdHRlcnMiLCAiaW5pdF9wcm90ZWN0ZWRUb2tlbnMiLCAiaW5pdF9pc1ZhbGlkIiwgImluaXRfdG9EYXRlIiwgImZvcm1hdERpc3RhbmNlIiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgImRlZmF1bHRPcHRpb25zIiwgImdldERlZmF1bHRPcHRpb25zIiwgImxvY2FsZSIsICJlblVTIiwgIm1pbnV0ZXNJbkFsbW9zdFR3b0RheXMiLCAiY29tcGFyaXNvbiIsICJjb21wYXJlQXNjIiwgImxvY2FsaXplT3B0aW9ucyIsICJsYXRlckRhdGVfIiwgImVhcmxpZXJEYXRlXyIsICJub3JtYWxpemVEYXRlcyIsICJzZWNvbmRzIiwgImRpZmZlcmVuY2VJblNlY29uZHMiLCAib2Zmc2V0SW5TZWNvbmRzIiwgImdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMiLCAibWludXRlcyIsICJtb250aHMiLCAibWludXRlc0luRGF5IiwgImhvdXJzIiwgIm1pbnV0ZXNJbk1vbnRoIiwgImRheXMiLCAiZGlmZmVyZW5jZUluTW9udGhzIiwgIm5lYXJlc3RNb250aCIsICJtb250aHNTaW5jZVN0YXJ0T2ZZZWFyIiwgInllYXJzIiwgImZvcm1hdERpc3RhbmNlX2RlZmF1bHQiLCAiaW5pdF9mb3JtYXREaXN0YW5jZSIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHRMb2NhbGUiLCAiaW5pdF9kZWZhdWx0T3B0aW9ucyIsICJpbml0X2dldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMiLCAiaW5pdF9ub3JtYWxpemVEYXRlcyIsICJpbml0X2NvbXBhcmVBc2MiLCAiaW5pdF9jb25zdGFudHMiLCAiaW5pdF9kaWZmZXJlbmNlSW5Nb250aHMiLCAiaW5pdF9kaWZmZXJlbmNlSW5TZWNvbmRzIiwgImZvcm1hdERpc3RhbmNlU3RyaWN0IiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgImRlZmF1bHRPcHRpb25zIiwgImdldERlZmF1bHRPcHRpb25zIiwgImxvY2FsZSIsICJlblVTIiwgImNvbXBhcmlzb24iLCAiY29tcGFyZUFzYyIsICJsb2NhbGl6ZU9wdGlvbnMiLCAibGF0ZXJEYXRlXyIsICJlYXJsaWVyRGF0ZV8iLCAibm9ybWFsaXplRGF0ZXMiLCAicm91bmRpbmdNZXRob2QiLCAiZ2V0Um91bmRpbmdNZXRob2QiLCAibWlsbGlzZWNvbmRzIiwgIm1pbnV0ZXMiLCAibWlsbGlzZWNvbmRzSW5NaW51dGUiLCAidGltZXpvbmVPZmZzZXQiLCAiZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyIsICJkc3ROb3JtYWxpemVkTWludXRlcyIsICJkZWZhdWx0VW5pdCIsICJ1bml0IiwgIm1pbnV0ZXNJbkRheSIsICJtaW51dGVzSW5Nb250aCIsICJtaW51dGVzSW5ZZWFyIiwgInNlY29uZHMiLCAicm91bmRlZE1pbnV0ZXMiLCAiaG91cnMiLCAiZGF5cyIsICJtb250aHMiLCAieWVhcnMiLCAiZm9ybWF0RGlzdGFuY2VTdHJpY3RfZGVmYXVsdCIsICJpbml0X2Zvcm1hdERpc3RhbmNlU3RyaWN0IiwgIl9fZXNtTWluIiwgImluaXRfZGVmYXVsdExvY2FsZSIsICJpbml0X2RlZmF1bHRPcHRpb25zIiwgImluaXRfZ2V0Um91bmRpbmdNZXRob2QiLCAiaW5pdF9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIiwgImluaXRfbm9ybWFsaXplRGF0ZXMiLCAiaW5pdF9jb21wYXJlQXNjIiwgImluaXRfY29uc3RhbnRzIiwgImZvcm1hdERpc3RhbmNlVG9Ob3ciLCAiZGF0ZSIsICJvcHRpb25zIiwgImZvcm1hdERpc3RhbmNlIiwgImNvbnN0cnVjdE5vdyIsICJmb3JtYXREaXN0YW5jZVRvTm93X2RlZmF1bHQiLCAiaW5pdF9mb3JtYXREaXN0YW5jZVRvTm93IiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0Tm93IiwgImluaXRfZm9ybWF0RGlzdGFuY2UiLCAiZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdCIsICJkYXRlIiwgIm9wdGlvbnMiLCAiZm9ybWF0RGlzdGFuY2VTdHJpY3QiLCAiY29uc3RydWN0Tm93IiwgImZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3RfZGVmYXVsdCIsICJpbml0X2Zvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3QiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3ROb3ciLCAiaW5pdF9mb3JtYXREaXN0YW5jZVN0cmljdCIsICJmb3JtYXREdXJhdGlvbiIsICJkdXJhdGlvbiIsICJvcHRpb25zIiwgImRlZmF1bHRPcHRpb25zIiwgImdldERlZmF1bHRPcHRpb25zIiwgImxvY2FsZSIsICJlblVTIiwgImZvcm1hdCIsICJkZWZhdWx0Rm9ybWF0IiwgInplcm8iLCAiZGVsaW1pdGVyIiwgImFjYyIsICJ1bml0IiwgInRva2VuIiwgIm0iLCAidmFsdWUiLCAiZm9ybWF0RHVyYXRpb25fZGVmYXVsdCIsICJpbml0X2Zvcm1hdER1cmF0aW9uIiwgIl9fZXNtTWluIiwgImluaXRfZGVmYXVsdExvY2FsZSIsICJpbml0X2RlZmF1bHRPcHRpb25zIiwgImZvcm1hdElTTyIsICJkYXRlIiwgIm9wdGlvbnMiLCAiZGF0ZV8iLCAidG9EYXRlIiwgImZvcm1hdCIsICJyZXByZXNlbnRhdGlvbiIsICJyZXN1bHQiLCAidHpPZmZzZXQiLCAiZGF0ZURlbGltaXRlciIsICJ0aW1lRGVsaW1pdGVyIiwgImRheSIsICJhZGRMZWFkaW5nWmVyb3MiLCAibW9udGgiLCAib2Zmc2V0IiwgImFic29sdXRlT2Zmc2V0IiwgImhvdXJPZmZzZXQiLCAibWludXRlT2Zmc2V0IiwgImhvdXIiLCAibWludXRlIiwgInNlY29uZCIsICJzZXBhcmF0b3IiLCAidGltZSIsICJmb3JtYXRJU09fZGVmYXVsdCIsICJpbml0X2Zvcm1hdElTTyIsICJfX2VzbU1pbiIsICJpbml0X2FkZExlYWRpbmdaZXJvcyIsICJpbml0X3RvRGF0ZSIsICJmb3JtYXRJU085MDc1IiwgImRhdGUiLCAib3B0aW9ucyIsICJkYXRlXyIsICJ0b0RhdGUiLCAiaXNWYWxpZCIsICJmb3JtYXQiLCAicmVwcmVzZW50YXRpb24iLCAicmVzdWx0IiwgImRhdGVEZWxpbWl0ZXIiLCAidGltZURlbGltaXRlciIsICJkYXkiLCAiYWRkTGVhZGluZ1plcm9zIiwgIm1vbnRoIiwgImhvdXIiLCAibWludXRlIiwgInNlY29uZCIsICJmb3JtYXRJU085MDc1X2RlZmF1bHQiLCAiaW5pdF9mb3JtYXRJU085MDc1IiwgIl9fZXNtTWluIiwgImluaXRfYWRkTGVhZGluZ1plcm9zIiwgImluaXRfaXNWYWxpZCIsICJpbml0X3RvRGF0ZSIsICJmb3JtYXRJU09EdXJhdGlvbiIsICJkdXJhdGlvbiIsICJ5ZWFycyIsICJtb250aHMiLCAiZGF5cyIsICJob3VycyIsICJtaW51dGVzIiwgInNlY29uZHMiLCAiZm9ybWF0SVNPRHVyYXRpb25fZGVmYXVsdCIsICJpbml0X2Zvcm1hdElTT0R1cmF0aW9uIiwgIl9fZXNtTWluIiwgImZvcm1hdFJGQzMzMzkiLCAiZGF0ZSIsICJvcHRpb25zIiwgImRhdGVfIiwgInRvRGF0ZSIsICJpc1ZhbGlkIiwgImZyYWN0aW9uRGlnaXRzIiwgImRheSIsICJhZGRMZWFkaW5nWmVyb3MiLCAibW9udGgiLCAieWVhciIsICJob3VyIiwgIm1pbnV0ZSIsICJzZWNvbmQiLCAiZnJhY3Rpb25hbFNlY29uZCIsICJtaWxsaXNlY29uZHMiLCAiZnJhY3Rpb25hbFNlY29uZHMiLCAib2Zmc2V0IiwgInR6T2Zmc2V0IiwgImFic29sdXRlT2Zmc2V0IiwgImhvdXJPZmZzZXQiLCAibWludXRlT2Zmc2V0IiwgImZvcm1hdFJGQzMzMzlfZGVmYXVsdCIsICJpbml0X2Zvcm1hdFJGQzMzMzkiLCAiX19lc21NaW4iLCAiaW5pdF9hZGRMZWFkaW5nWmVyb3MiLCAiaW5pdF9pc1ZhbGlkIiwgImluaXRfdG9EYXRlIiwgImZvcm1hdFJGQzcyMzEiLCAiZGF0ZSIsICJfZGF0ZSIsICJ0b0RhdGUiLCAiaXNWYWxpZCIsICJkYXlOYW1lIiwgImRheXMiLCAiZGF5T2ZNb250aCIsICJhZGRMZWFkaW5nWmVyb3MiLCAibW9udGhOYW1lIiwgIm1vbnRocyIsICJ5ZWFyIiwgImhvdXIiLCAibWludXRlIiwgInNlY29uZCIsICJmb3JtYXRSRkM3MjMxX2RlZmF1bHQiLCAiaW5pdF9mb3JtYXRSRkM3MjMxIiwgIl9fZXNtTWluIiwgImluaXRfYWRkTGVhZGluZ1plcm9zIiwgImluaXRfaXNWYWxpZCIsICJpbml0X3RvRGF0ZSIsICJmb3JtYXRSZWxhdGl2ZSIsICJkYXRlIiwgImJhc2VEYXRlIiwgIm9wdGlvbnMiLCAiZGF0ZV8iLCAiYmFzZURhdGVfIiwgIm5vcm1hbGl6ZURhdGVzIiwgImRlZmF1bHRPcHRpb25zIiwgImdldERlZmF1bHRPcHRpb25zIiwgImxvY2FsZSIsICJlblVTIiwgIndlZWtTdGFydHNPbiIsICJkaWZmIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyIsICJ0b2tlbiIsICJmb3JtYXRTdHIiLCAiZm9ybWF0IiwgImZvcm1hdFJlbGF0aXZlX2RlZmF1bHQiLCAiaW5pdF9mb3JtYXRSZWxhdGl2ZSIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHRMb2NhbGUiLCAiaW5pdF9kZWZhdWx0T3B0aW9ucyIsICJpbml0X25vcm1hbGl6ZURhdGVzIiwgImluaXRfZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzIiwgImluaXRfZm9ybWF0IiwgImZyb21Vbml4VGltZSIsICJ1bml4VGltZSIsICJvcHRpb25zIiwgInRvRGF0ZSIsICJmcm9tVW5peFRpbWVfZGVmYXVsdCIsICJpbml0X2Zyb21Vbml4VGltZSIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJnZXREYXRlIiwgImRhdGUiLCAib3B0aW9ucyIsICJ0b0RhdGUiLCAiZ2V0RGF0ZV9kZWZhdWx0IiwgImluaXRfZ2V0RGF0ZSIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJnZXREYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgInRvRGF0ZSIsICJnZXREYXlfZGVmYXVsdCIsICJpbml0X2dldERheSIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJnZXREYXlzSW5Nb250aCIsICJkYXRlIiwgIm9wdGlvbnMiLCAiX2RhdGUiLCAidG9EYXRlIiwgInllYXIiLCAibW9udGhJbmRleCIsICJsYXN0RGF5T2ZNb250aCIsICJjb25zdHJ1Y3RGcm9tIiwgImdldERheXNJbk1vbnRoX2RlZmF1bHQiLCAiaW5pdF9nZXREYXlzSW5Nb250aCIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF90b0RhdGUiLCAiaXNMZWFwWWVhciIsICJkYXRlIiwgIm9wdGlvbnMiLCAieWVhciIsICJ0b0RhdGUiLCAiaXNMZWFwWWVhcl9kZWZhdWx0IiwgImluaXRfaXNMZWFwWWVhciIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJnZXREYXlzSW5ZZWFyIiwgImRhdGUiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAiaXNMZWFwWWVhciIsICJnZXREYXlzSW5ZZWFyX2RlZmF1bHQiLCAiaW5pdF9nZXREYXlzSW5ZZWFyIiwgIl9fZXNtTWluIiwgImluaXRfaXNMZWFwWWVhciIsICJpbml0X3RvRGF0ZSIsICJnZXREZWNhZGUiLCAiZGF0ZSIsICJvcHRpb25zIiwgInllYXIiLCAidG9EYXRlIiwgImdldERlY2FkZV9kZWZhdWx0IiwgImluaXRfZ2V0RGVjYWRlIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImdldERlZmF1bHRPcHRpb25zIiwgImdldERlZmF1bHRPcHRpb25zX2RlZmF1bHQiLCAiaW5pdF9nZXREZWZhdWx0T3B0aW9ucyIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHRPcHRpb25zIiwgImdldEhvdXJzIiwgImRhdGUiLCAib3B0aW9ucyIsICJ0b0RhdGUiLCAiZ2V0SG91cnNfZGVmYXVsdCIsICJpbml0X2dldEhvdXJzIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImdldElTT0RheSIsICJkYXRlIiwgIm9wdGlvbnMiLCAiZGF5IiwgInRvRGF0ZSIsICJnZXRJU09EYXlfZGVmYXVsdCIsICJpbml0X2dldElTT0RheSIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJnZXRJU09XZWVrc0luWWVhciIsICJkYXRlIiwgIm9wdGlvbnMiLCAidGhpc1llYXIiLCAic3RhcnRPZklTT1dlZWtZZWFyIiwgImRpZmYiLCAiYWRkV2Vla3MiLCAibWlsbGlzZWNvbmRzSW5XZWVrIiwgImdldElTT1dlZWtzSW5ZZWFyX2RlZmF1bHQiLCAiaW5pdF9nZXRJU09XZWVrc0luWWVhciIsICJfX2VzbU1pbiIsICJpbml0X2FkZFdlZWtzIiwgImluaXRfY29uc3RhbnRzIiwgImluaXRfc3RhcnRPZklTT1dlZWtZZWFyIiwgImdldE1pbGxpc2Vjb25kcyIsICJkYXRlIiwgInRvRGF0ZSIsICJnZXRNaWxsaXNlY29uZHNfZGVmYXVsdCIsICJpbml0X2dldE1pbGxpc2Vjb25kcyIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJnZXRNaW51dGVzIiwgImRhdGUiLCAib3B0aW9ucyIsICJ0b0RhdGUiLCAiZ2V0TWludXRlc19kZWZhdWx0IiwgImluaXRfZ2V0TWludXRlcyIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJnZXRNb250aCIsICJkYXRlIiwgIm9wdGlvbnMiLCAidG9EYXRlIiwgImdldE1vbnRoX2RlZmF1bHQiLCAiaW5pdF9nZXRNb250aCIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFscyIsICJpbnRlcnZhbExlZnQiLCAiaW50ZXJ2YWxSaWdodCIsICJsZWZ0U3RhcnQiLCAibGVmdEVuZCIsICJ0b0RhdGUiLCAiYSIsICJiIiwgInJpZ2h0U3RhcnQiLCAicmlnaHRFbmQiLCAib3ZlcmxhcExlZnQiLCAibGVmdCIsICJnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIiwgIm92ZXJsYXBSaWdodCIsICJyaWdodCIsICJtaWxsaXNlY29uZHNJbkRheSIsICJnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFsc19kZWZhdWx0IiwgImluaXRfZ2V0T3ZlcmxhcHBpbmdEYXlzSW5JbnRlcnZhbHMiLCAiX19lc21NaW4iLCAiaW5pdF9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIiwgImluaXRfY29uc3RhbnRzIiwgImluaXRfdG9EYXRlIiwgImdldFNlY29uZHMiLCAiZGF0ZSIsICJ0b0RhdGUiLCAiZ2V0U2Vjb25kc19kZWZhdWx0IiwgImluaXRfZ2V0U2Vjb25kcyIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJnZXRUaW1lIiwgImRhdGUiLCAidG9EYXRlIiwgImdldFRpbWVfZGVmYXVsdCIsICJpbml0X2dldFRpbWUiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiZ2V0VW5peFRpbWUiLCAiZGF0ZSIsICJ0b0RhdGUiLCAiZ2V0VW5peFRpbWVfZGVmYXVsdCIsICJpbml0X2dldFVuaXhUaW1lIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImdldFdlZWtPZk1vbnRoIiwgImRhdGUiLCAib3B0aW9ucyIsICJkZWZhdWx0T3B0aW9ucyIsICJnZXREZWZhdWx0T3B0aW9ucyIsICJ3ZWVrU3RhcnRzT24iLCAiY3VycmVudERheU9mTW9udGgiLCAiZ2V0RGF0ZSIsICJ0b0RhdGUiLCAic3RhcnRXZWVrRGF5IiwgImdldERheSIsICJzdGFydE9mTW9udGgiLCAibGFzdERheU9mRmlyc3RXZWVrIiwgInJlbWFpbmluZ0RheXNBZnRlckZpcnN0V2VlayIsICJnZXRXZWVrT2ZNb250aF9kZWZhdWx0IiwgImluaXRfZ2V0V2Vla09mTW9udGgiLCAiX19lc21NaW4iLCAiaW5pdF9kZWZhdWx0T3B0aW9ucyIsICJpbml0X2dldERhdGUiLCAiaW5pdF9nZXREYXkiLCAiaW5pdF9zdGFydE9mTW9udGgiLCAiaW5pdF90b0RhdGUiLCAibGFzdERheU9mTW9udGgiLCAiZGF0ZSIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJtb250aCIsICJsYXN0RGF5T2ZNb250aF9kZWZhdWx0IiwgImluaXRfbGFzdERheU9mTW9udGgiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiZ2V0V2Vla3NJbk1vbnRoIiwgImRhdGUiLCAib3B0aW9ucyIsICJjb250ZXh0RGF0ZSIsICJ0b0RhdGUiLCAiZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyIsICJsYXN0RGF5T2ZNb250aCIsICJzdGFydE9mTW9udGgiLCAiZ2V0V2Vla3NJbk1vbnRoX2RlZmF1bHQiLCAiaW5pdF9nZXRXZWVrc0luTW9udGgiLCAiX19lc21NaW4iLCAiaW5pdF9kaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzIiwgImluaXRfbGFzdERheU9mTW9udGgiLCAiaW5pdF9zdGFydE9mTW9udGgiLCAiaW5pdF90b0RhdGUiLCAiZ2V0WWVhciIsICJkYXRlIiwgIm9wdGlvbnMiLCAidG9EYXRlIiwgImdldFllYXJfZGVmYXVsdCIsICJpbml0X2dldFllYXIiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiaG91cnNUb01pbGxpc2Vjb25kcyIsICJob3VycyIsICJtaWxsaXNlY29uZHNJbkhvdXIiLCAiaG91cnNUb01pbGxpc2Vjb25kc19kZWZhdWx0IiwgImluaXRfaG91cnNUb01pbGxpc2Vjb25kcyIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0YW50cyIsICJob3Vyc1RvTWludXRlcyIsICJob3VycyIsICJtaW51dGVzSW5Ib3VyIiwgImhvdXJzVG9NaW51dGVzX2RlZmF1bHQiLCAiaW5pdF9ob3Vyc1RvTWludXRlcyIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0YW50cyIsICJob3Vyc1RvU2Vjb25kcyIsICJob3VycyIsICJzZWNvbmRzSW5Ib3VyIiwgImhvdXJzVG9TZWNvbmRzX2RlZmF1bHQiLCAiaW5pdF9ob3Vyc1RvU2Vjb25kcyIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0YW50cyIsICJpbnRlcnZhbCIsICJzdGFydCIsICJlbmQiLCAib3B0aW9ucyIsICJfc3RhcnQiLCAiX2VuZCIsICJub3JtYWxpemVEYXRlcyIsICJpbnRlcnZhbF9kZWZhdWx0IiwgImluaXRfaW50ZXJ2YWwiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVEYXRlcyIsICJpbnRlcnZhbFRvRHVyYXRpb24iLCAiaW50ZXJ2YWwiLCAib3B0aW9ucyIsICJzdGFydCIsICJlbmQiLCAibm9ybWFsaXplSW50ZXJ2YWwiLCAiZHVyYXRpb24iLCAieWVhcnMiLCAiZGlmZmVyZW5jZUluWWVhcnMiLCAicmVtYWluaW5nTW9udGhzIiwgImFkZCIsICJtb250aHMiLCAiZGlmZmVyZW5jZUluTW9udGhzIiwgInJlbWFpbmluZ0RheXMiLCAiZGF5cyIsICJkaWZmZXJlbmNlSW5EYXlzIiwgInJlbWFpbmluZ0hvdXJzIiwgImhvdXJzIiwgImRpZmZlcmVuY2VJbkhvdXJzIiwgInJlbWFpbmluZ01pbnV0ZXMiLCAibWludXRlcyIsICJkaWZmZXJlbmNlSW5NaW51dGVzIiwgInJlbWFpbmluZ1NlY29uZHMiLCAic2Vjb25kcyIsICJkaWZmZXJlbmNlSW5TZWNvbmRzIiwgImludGVydmFsVG9EdXJhdGlvbl9kZWZhdWx0IiwgImluaXRfaW50ZXJ2YWxUb0R1cmF0aW9uIiwgIl9fZXNtTWluIiwgImluaXRfbm9ybWFsaXplSW50ZXJ2YWwiLCAiaW5pdF9hZGQiLCAiaW5pdF9kaWZmZXJlbmNlSW5EYXlzIiwgImluaXRfZGlmZmVyZW5jZUluSG91cnMiLCAiaW5pdF9kaWZmZXJlbmNlSW5NaW51dGVzIiwgImluaXRfZGlmZmVyZW5jZUluTW9udGhzIiwgImluaXRfZGlmZmVyZW5jZUluU2Vjb25kcyIsICJpbml0X2RpZmZlcmVuY2VJblllYXJzIiwgImludGxGb3JtYXQiLCAiZGF0ZSIsICJmb3JtYXRPckxvY2FsZSIsICJsb2NhbGVPcHRpb25zIiwgImZvcm1hdE9wdGlvbnMiLCAiaXNGb3JtYXRPcHRpb25zIiwgInRvRGF0ZSIsICJvcHRzIiwgImludGxGb3JtYXRfZGVmYXVsdCIsICJpbml0X2ludGxGb3JtYXQiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiaW50bEZvcm1hdERpc3RhbmNlIiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgInZhbHVlIiwgInVuaXQiLCAibGF0ZXJEYXRlXyIsICJlYXJsaWVyRGF0ZV8iLCAibm9ybWFsaXplRGF0ZXMiLCAiZGlmZmVyZW5jZUluU2Vjb25kcyIsICJkaWZmZXJlbmNlSW5NaW51dGVzIiwgImRpZmZlcmVuY2VJbkhvdXJzIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyIsICJkaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnMiLCAiZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyIsICJkaWZmSW5TZWNvbmRzIiwgInNlY29uZHNJbk1pbnV0ZSIsICJzZWNvbmRzSW5Ib3VyIiwgInNlY29uZHNJbkRheSIsICJzZWNvbmRzSW5XZWVrIiwgInNlY29uZHNJbk1vbnRoIiwgInNlY29uZHNJblF1YXJ0ZXIiLCAic2Vjb25kc0luWWVhciIsICJpbnRsRm9ybWF0RGlzdGFuY2VfZGVmYXVsdCIsICJpbml0X2ludGxGb3JtYXREaXN0YW5jZSIsICJfX2VzbU1pbiIsICJpbml0X25vcm1hbGl6ZURhdGVzIiwgImluaXRfY29uc3RhbnRzIiwgImluaXRfZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzIiwgImluaXRfZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMiLCAiaW5pdF9kaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzIiwgImluaXRfZGlmZmVyZW5jZUluQ2FsZW5kYXJXZWVrcyIsICJpbml0X2RpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnMiLCAiaW5pdF9kaWZmZXJlbmNlSW5Ib3VycyIsICJpbml0X2RpZmZlcmVuY2VJbk1pbnV0ZXMiLCAiaW5pdF9kaWZmZXJlbmNlSW5TZWNvbmRzIiwgImlzQWZ0ZXIiLCAiZGF0ZSIsICJkYXRlVG9Db21wYXJlIiwgInRvRGF0ZSIsICJpc0FmdGVyX2RlZmF1bHQiLCAiaW5pdF9pc0FmdGVyIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImlzQmVmb3JlIiwgImRhdGUiLCAiZGF0ZVRvQ29tcGFyZSIsICJ0b0RhdGUiLCAiaXNCZWZvcmVfZGVmYXVsdCIsICJpbml0X2lzQmVmb3JlIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImlzRXF1YWwiLCAibGVmdERhdGUiLCAicmlnaHREYXRlIiwgInRvRGF0ZSIsICJpc0VxdWFsX2RlZmF1bHQiLCAiaW5pdF9pc0VxdWFsIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImlzRXhpc3RzIiwgInllYXIiLCAibW9udGgiLCAiZGF5IiwgImRhdGUiLCAiaXNFeGlzdHNfZGVmYXVsdCIsICJpbml0X2lzRXhpc3RzIiwgIl9fZXNtTWluIiwgImlzRmlyc3REYXlPZk1vbnRoIiwgImRhdGUiLCAib3B0aW9ucyIsICJ0b0RhdGUiLCAiaXNGaXJzdERheU9mTW9udGhfZGVmYXVsdCIsICJpbml0X2lzRmlyc3REYXlPZk1vbnRoIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImlzRnJpZGF5IiwgImRhdGUiLCAib3B0aW9ucyIsICJ0b0RhdGUiLCAiaXNGcmlkYXlfZGVmYXVsdCIsICJpbml0X2lzRnJpZGF5IiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImlzRnV0dXJlIiwgImRhdGUiLCAidG9EYXRlIiwgImlzRnV0dXJlX2RlZmF1bHQiLCAiaW5pdF9pc0Z1dHVyZSIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJ0cmFuc3Bvc2UiLCAiZGF0ZSIsICJjb25zdHJ1Y3RvciIsICJkYXRlXyIsICJpc0NvbnN0cnVjdG9yIiwgImNvbnN0cnVjdEZyb20iLCAidHJhbnNwb3NlX2RlZmF1bHQiLCAiaW5pdF90cmFuc3Bvc2UiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgIlRJTUVaT05FX1VOSVRfUFJJT1JJVFkiLCAiU2V0dGVyIiwgIlZhbHVlU2V0dGVyIiwgIkRhdGVUaW1lem9uZVNldHRlciIsICJpbml0X1NldHRlciIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF90cmFuc3Bvc2UiLCAiX3V0Y0RhdGUiLCAiX29wdGlvbnMiLCAidmFsdWUiLCAidmFsaWRhdGVWYWx1ZSIsICJzZXRWYWx1ZSIsICJwcmlvcml0eSIsICJzdWJQcmlvcml0eSIsICJkYXRlIiwgIm9wdGlvbnMiLCAiZmxhZ3MiLCAiY29udGV4dCIsICJyZWZlcmVuY2UiLCAiY29uc3RydWN0RnJvbSIsICJ0cmFuc3Bvc2UiLCAiUGFyc2VyIiwgImluaXRfUGFyc2VyIiwgIl9fZXNtTWluIiwgImluaXRfU2V0dGVyIiwgImRhdGVTdHJpbmciLCAidG9rZW4iLCAibWF0Y2giLCAib3B0aW9ucyIsICJyZXN1bHQiLCAiVmFsdWVTZXR0ZXIiLCAiX3V0Y0RhdGUiLCAiX3ZhbHVlIiwgIl9vcHRpb25zIiwgIkVyYVBhcnNlciIsICJpbml0X0VyYVBhcnNlciIsICJfX2VzbU1pbiIsICJpbml0X1BhcnNlciIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJkYXRlIiwgImZsYWdzIiwgInZhbHVlIiwgIm51bWVyaWNQYXR0ZXJucyIsICJ0aW1lem9uZVBhdHRlcm5zIiwgImluaXRfY29uc3RhbnRzIiwgIl9fZXNtTWluIiwgIm1hcFZhbHVlIiwgInBhcnNlRm5SZXN1bHQiLCAibWFwRm4iLCAicGFyc2VOdW1lcmljUGF0dGVybiIsICJwYXR0ZXJuIiwgImRhdGVTdHJpbmciLCAibWF0Y2hSZXN1bHQiLCAicGFyc2VUaW1lem9uZVBhdHRlcm4iLCAic2lnbiIsICJob3VycyIsICJtaW51dGVzIiwgInNlY29uZHMiLCAibWlsbGlzZWNvbmRzSW5Ib3VyIiwgIm1pbGxpc2Vjb25kc0luTWludXRlIiwgIm1pbGxpc2Vjb25kc0luU2Vjb25kIiwgInBhcnNlQW55RGlnaXRzU2lnbmVkIiwgIm51bWVyaWNQYXR0ZXJucyIsICJwYXJzZU5EaWdpdHMiLCAibiIsICJwYXJzZU5EaWdpdHNTaWduZWQiLCAiZGF5UGVyaW9kRW51bVRvSG91cnMiLCAiZGF5UGVyaW9kIiwgIm5vcm1hbGl6ZVR3b0RpZ2l0WWVhciIsICJ0d29EaWdpdFllYXIiLCAiY3VycmVudFllYXIiLCAiaXNDb21tb25FcmEiLCAiYWJzQ3VycmVudFllYXIiLCAicmVzdWx0IiwgInJhbmdlRW5kIiwgInJhbmdlRW5kQ2VudHVyeSIsICJpc1ByZXZpb3VzQ2VudHVyeSIsICJpc0xlYXBZZWFySW5kZXgiLCAieWVhciIsICJpbml0X3V0aWxzIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgIlllYXJQYXJzZXIiLCAiaW5pdF9ZZWFyUGFyc2VyIiwgIl9fZXNtTWluIiwgImluaXRfUGFyc2VyIiwgImluaXRfdXRpbHMiLCAiUGFyc2VyIiwgImRhdGVTdHJpbmciLCAidG9rZW4iLCAibWF0Y2giLCAidmFsdWVDYWxsYmFjayIsICJ5ZWFyIiwgIm1hcFZhbHVlIiwgInBhcnNlTkRpZ2l0cyIsICJfZGF0ZSIsICJ2YWx1ZSIsICJkYXRlIiwgImZsYWdzIiwgImN1cnJlbnRZZWFyIiwgIm5vcm1hbGl6ZWRUd29EaWdpdFllYXIiLCAibm9ybWFsaXplVHdvRGlnaXRZZWFyIiwgIkxvY2FsV2Vla1llYXJQYXJzZXIiLCAiaW5pdF9Mb2NhbFdlZWtZZWFyUGFyc2VyIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0V2Vla1llYXIiLCAiaW5pdF9zdGFydE9mV2VlayIsICJpbml0X1BhcnNlciIsICJpbml0X3V0aWxzIiwgIlBhcnNlciIsICJkYXRlU3RyaW5nIiwgInRva2VuIiwgIm1hdGNoIiwgInZhbHVlQ2FsbGJhY2siLCAieWVhciIsICJtYXBWYWx1ZSIsICJwYXJzZU5EaWdpdHMiLCAiX2RhdGUiLCAidmFsdWUiLCAiZGF0ZSIsICJmbGFncyIsICJvcHRpb25zIiwgImN1cnJlbnRZZWFyIiwgImdldFdlZWtZZWFyIiwgIm5vcm1hbGl6ZWRUd29EaWdpdFllYXIiLCAibm9ybWFsaXplVHdvRGlnaXRZZWFyIiwgInN0YXJ0T2ZXZWVrIiwgIklTT1dlZWtZZWFyUGFyc2VyIiwgImluaXRfSVNPV2Vla1llYXJQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9zdGFydE9mSVNPV2VlayIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJwYXJzZU5EaWdpdHNTaWduZWQiLCAiZGF0ZSIsICJfZmxhZ3MiLCAidmFsdWUiLCAiZmlyc3RXZWVrT2ZZZWFyIiwgImNvbnN0cnVjdEZyb20iLCAic3RhcnRPZklTT1dlZWsiLCAiRXh0ZW5kZWRZZWFyUGFyc2VyIiwgImluaXRfRXh0ZW5kZWRZZWFyUGFyc2VyIiwgIl9fZXNtTWluIiwgImluaXRfUGFyc2VyIiwgImluaXRfdXRpbHMiLCAiUGFyc2VyIiwgImRhdGVTdHJpbmciLCAidG9rZW4iLCAicGFyc2VORGlnaXRzU2lnbmVkIiwgImRhdGUiLCAiX2ZsYWdzIiwgInZhbHVlIiwgIlF1YXJ0ZXJQYXJzZXIiLCAiaW5pdF9RdWFydGVyUGFyc2VyIiwgIl9fZXNtTWluIiwgImluaXRfUGFyc2VyIiwgImluaXRfdXRpbHMiLCAiUGFyc2VyIiwgImRhdGVTdHJpbmciLCAidG9rZW4iLCAibWF0Y2giLCAicGFyc2VORGlnaXRzIiwgIl9kYXRlIiwgInZhbHVlIiwgImRhdGUiLCAiX2ZsYWdzIiwgIlN0YW5kQWxvbmVRdWFydGVyUGFyc2VyIiwgImluaXRfU3RhbmRBbG9uZVF1YXJ0ZXJQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJwYXJzZU5EaWdpdHMiLCAiX2RhdGUiLCAidmFsdWUiLCAiZGF0ZSIsICJfZmxhZ3MiLCAiTW9udGhQYXJzZXIiLCAiaW5pdF9Nb250aFBhcnNlciIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0YW50cyIsICJpbml0X1BhcnNlciIsICJpbml0X3V0aWxzIiwgIlBhcnNlciIsICJkYXRlU3RyaW5nIiwgInRva2VuIiwgIm1hdGNoIiwgInZhbHVlQ2FsbGJhY2siLCAidmFsdWUiLCAibWFwVmFsdWUiLCAicGFyc2VOdW1lcmljUGF0dGVybiIsICJudW1lcmljUGF0dGVybnMiLCAicGFyc2VORGlnaXRzIiwgIl9kYXRlIiwgImRhdGUiLCAiX2ZsYWdzIiwgIlN0YW5kQWxvbmVNb250aFBhcnNlciIsICJpbml0X1N0YW5kQWxvbmVNb250aFBhcnNlciIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0YW50cyIsICJpbml0X1BhcnNlciIsICJpbml0X3V0aWxzIiwgIlBhcnNlciIsICJkYXRlU3RyaW5nIiwgInRva2VuIiwgIm1hdGNoIiwgInZhbHVlQ2FsbGJhY2siLCAidmFsdWUiLCAibWFwVmFsdWUiLCAicGFyc2VOdW1lcmljUGF0dGVybiIsICJudW1lcmljUGF0dGVybnMiLCAicGFyc2VORGlnaXRzIiwgIl9kYXRlIiwgImRhdGUiLCAiX2ZsYWdzIiwgInNldFdlZWsiLCAiZGF0ZSIsICJ3ZWVrIiwgIm9wdGlvbnMiLCAiZGF0ZV8iLCAidG9EYXRlIiwgImRpZmYiLCAiZ2V0V2VlayIsICJzZXRXZWVrX2RlZmF1bHQiLCAiaW5pdF9zZXRXZWVrIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0V2VlayIsICJpbml0X3RvRGF0ZSIsICJMb2NhbFdlZWtQYXJzZXIiLCAiaW5pdF9Mb2NhbFdlZWtQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9zZXRXZWVrIiwgImluaXRfc3RhcnRPZldlZWsiLCAiaW5pdF9jb25zdGFudHMiLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJwYXJzZU51bWVyaWNQYXR0ZXJuIiwgIm51bWVyaWNQYXR0ZXJucyIsICJwYXJzZU5EaWdpdHMiLCAiX2RhdGUiLCAidmFsdWUiLCAiZGF0ZSIsICJfZmxhZ3MiLCAib3B0aW9ucyIsICJzdGFydE9mV2VlayIsICJzZXRXZWVrIiwgInNldElTT1dlZWsiLCAiZGF0ZSIsICJ3ZWVrIiwgIm9wdGlvbnMiLCAiX2RhdGUiLCAidG9EYXRlIiwgImRpZmYiLCAiZ2V0SVNPV2VlayIsICJzZXRJU09XZWVrX2RlZmF1bHQiLCAiaW5pdF9zZXRJU09XZWVrIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0SVNPV2VlayIsICJpbml0X3RvRGF0ZSIsICJJU09XZWVrUGFyc2VyIiwgImluaXRfSVNPV2Vla1BhcnNlciIsICJfX2VzbU1pbiIsICJpbml0X3NldElTT1dlZWsiLCAiaW5pdF9zdGFydE9mSVNPV2VlayIsICJpbml0X2NvbnN0YW50cyIsICJpbml0X1BhcnNlciIsICJpbml0X3V0aWxzIiwgIlBhcnNlciIsICJkYXRlU3RyaW5nIiwgInRva2VuIiwgIm1hdGNoIiwgInBhcnNlTnVtZXJpY1BhdHRlcm4iLCAibnVtZXJpY1BhdHRlcm5zIiwgInBhcnNlTkRpZ2l0cyIsICJfZGF0ZSIsICJ2YWx1ZSIsICJkYXRlIiwgIl9mbGFncyIsICJzdGFydE9mSVNPV2VlayIsICJzZXRJU09XZWVrIiwgIkRBWVNfSU5fTU9OVEgiLCAiREFZU19JTl9NT05USF9MRUFQX1lFQVIiLCAiRGF0ZVBhcnNlciIsICJpbml0X0RhdGVQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJwYXJzZU51bWVyaWNQYXR0ZXJuIiwgIm51bWVyaWNQYXR0ZXJucyIsICJwYXJzZU5EaWdpdHMiLCAiZGF0ZSIsICJ2YWx1ZSIsICJ5ZWFyIiwgImlzTGVhcFllYXIiLCAiaXNMZWFwWWVhckluZGV4IiwgIm1vbnRoIiwgIl9mbGFncyIsICJEYXlPZlllYXJQYXJzZXIiLCAiaW5pdF9EYXlPZlllYXJQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJwYXJzZU51bWVyaWNQYXR0ZXJuIiwgIm51bWVyaWNQYXR0ZXJucyIsICJwYXJzZU5EaWdpdHMiLCAiZGF0ZSIsICJ2YWx1ZSIsICJ5ZWFyIiwgImlzTGVhcFllYXJJbmRleCIsICJfZmxhZ3MiLCAic2V0RGF5IiwgImRhdGUiLCAiZGF5IiwgIm9wdGlvbnMiLCAiZGVmYXVsdE9wdGlvbnMiLCAiZ2V0RGVmYXVsdE9wdGlvbnMiLCAid2Vla1N0YXJ0c09uIiwgImRhdGVfIiwgInRvRGF0ZSIsICJjdXJyZW50RGF5IiwgImRheUluZGV4IiwgImRlbHRhIiwgImRpZmYiLCAiYWRkRGF5cyIsICJzZXREYXlfZGVmYXVsdCIsICJpbml0X3NldERheSIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHRPcHRpb25zIiwgImluaXRfYWRkRGF5cyIsICJpbml0X3RvRGF0ZSIsICJEYXlQYXJzZXIiLCAiaW5pdF9EYXlQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9zZXREYXkiLCAiaW5pdF9QYXJzZXIiLCAiUGFyc2VyIiwgImRhdGVTdHJpbmciLCAidG9rZW4iLCAibWF0Y2giLCAiX2RhdGUiLCAidmFsdWUiLCAiZGF0ZSIsICJfZmxhZ3MiLCAib3B0aW9ucyIsICJzZXREYXkiLCAiTG9jYWxEYXlQYXJzZXIiLCAiaW5pdF9Mb2NhbERheVBhcnNlciIsICJfX2VzbU1pbiIsICJpbml0X3NldERheSIsICJpbml0X1BhcnNlciIsICJpbml0X3V0aWxzIiwgIlBhcnNlciIsICJkYXRlU3RyaW5nIiwgInRva2VuIiwgIm1hdGNoIiwgIm9wdGlvbnMiLCAidmFsdWVDYWxsYmFjayIsICJ2YWx1ZSIsICJ3aG9sZVdlZWtEYXlzIiwgIm1hcFZhbHVlIiwgInBhcnNlTkRpZ2l0cyIsICJfZGF0ZSIsICJkYXRlIiwgIl9mbGFncyIsICJzZXREYXkiLCAiU3RhbmRBbG9uZUxvY2FsRGF5UGFyc2VyIiwgImluaXRfU3RhbmRBbG9uZUxvY2FsRGF5UGFyc2VyIiwgIl9fZXNtTWluIiwgImluaXRfc2V0RGF5IiwgImluaXRfUGFyc2VyIiwgImluaXRfdXRpbHMiLCAiUGFyc2VyIiwgImRhdGVTdHJpbmciLCAidG9rZW4iLCAibWF0Y2giLCAib3B0aW9ucyIsICJ2YWx1ZUNhbGxiYWNrIiwgInZhbHVlIiwgIndob2xlV2Vla0RheXMiLCAibWFwVmFsdWUiLCAicGFyc2VORGlnaXRzIiwgIl9kYXRlIiwgImRhdGUiLCAiX2ZsYWdzIiwgInNldERheSIsICJzZXRJU09EYXkiLCAiZGF0ZSIsICJkYXkiLCAib3B0aW9ucyIsICJkYXRlXyIsICJ0b0RhdGUiLCAiY3VycmVudERheSIsICJnZXRJU09EYXkiLCAiZGlmZiIsICJhZGREYXlzIiwgInNldElTT0RheV9kZWZhdWx0IiwgImluaXRfc2V0SVNPRGF5IiwgIl9fZXNtTWluIiwgImluaXRfYWRkRGF5cyIsICJpbml0X2dldElTT0RheSIsICJpbml0X3RvRGF0ZSIsICJJU09EYXlQYXJzZXIiLCAiaW5pdF9JU09EYXlQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9zZXRJU09EYXkiLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJ2YWx1ZUNhbGxiYWNrIiwgInZhbHVlIiwgInBhcnNlTkRpZ2l0cyIsICJtYXBWYWx1ZSIsICJfZGF0ZSIsICJkYXRlIiwgIl9mbGFncyIsICJzZXRJU09EYXkiLCAiQU1QTVBhcnNlciIsICJpbml0X0FNUE1QYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJkYXRlIiwgIl9mbGFncyIsICJ2YWx1ZSIsICJkYXlQZXJpb2RFbnVtVG9Ib3VycyIsICJBTVBNTWlkbmlnaHRQYXJzZXIiLCAiaW5pdF9BTVBNTWlkbmlnaHRQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJkYXRlIiwgIl9mbGFncyIsICJ2YWx1ZSIsICJkYXlQZXJpb2RFbnVtVG9Ib3VycyIsICJEYXlQZXJpb2RQYXJzZXIiLCAiaW5pdF9EYXlQZXJpb2RQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJkYXRlIiwgIl9mbGFncyIsICJ2YWx1ZSIsICJkYXlQZXJpb2RFbnVtVG9Ib3VycyIsICJIb3VyMXRvMTJQYXJzZXIiLCAiaW5pdF9Ib3VyMXRvMTJQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJwYXJzZU51bWVyaWNQYXR0ZXJuIiwgIm51bWVyaWNQYXR0ZXJucyIsICJwYXJzZU5EaWdpdHMiLCAiX2RhdGUiLCAidmFsdWUiLCAiZGF0ZSIsICJfZmxhZ3MiLCAiaXNQTSIsICJIb3VyMHRvMjNQYXJzZXIiLCAiaW5pdF9Ib3VyMHRvMjNQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJwYXJzZU51bWVyaWNQYXR0ZXJuIiwgIm51bWVyaWNQYXR0ZXJucyIsICJwYXJzZU5EaWdpdHMiLCAiX2RhdGUiLCAidmFsdWUiLCAiZGF0ZSIsICJfZmxhZ3MiLCAiSG91cjBUbzExUGFyc2VyIiwgImluaXRfSG91cjBUbzExUGFyc2VyIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgImluaXRfUGFyc2VyIiwgImluaXRfdXRpbHMiLCAiUGFyc2VyIiwgImRhdGVTdHJpbmciLCAidG9rZW4iLCAibWF0Y2giLCAicGFyc2VOdW1lcmljUGF0dGVybiIsICJudW1lcmljUGF0dGVybnMiLCAicGFyc2VORGlnaXRzIiwgIl9kYXRlIiwgInZhbHVlIiwgImRhdGUiLCAiX2ZsYWdzIiwgIkhvdXIxVG8yNFBhcnNlciIsICJpbml0X0hvdXIxVG8yNFBhcnNlciIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0YW50cyIsICJpbml0X1BhcnNlciIsICJpbml0X3V0aWxzIiwgIlBhcnNlciIsICJkYXRlU3RyaW5nIiwgInRva2VuIiwgIm1hdGNoIiwgInBhcnNlTnVtZXJpY1BhdHRlcm4iLCAibnVtZXJpY1BhdHRlcm5zIiwgInBhcnNlTkRpZ2l0cyIsICJfZGF0ZSIsICJ2YWx1ZSIsICJkYXRlIiwgIl9mbGFncyIsICJob3VycyIsICJNaW51dGVQYXJzZXIiLCAiaW5pdF9NaW51dGVQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJ0b2tlbiIsICJtYXRjaCIsICJwYXJzZU51bWVyaWNQYXR0ZXJuIiwgIm51bWVyaWNQYXR0ZXJucyIsICJwYXJzZU5EaWdpdHMiLCAiX2RhdGUiLCAidmFsdWUiLCAiZGF0ZSIsICJfZmxhZ3MiLCAiU2Vjb25kUGFyc2VyIiwgImluaXRfU2Vjb25kUGFyc2VyIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgImluaXRfUGFyc2VyIiwgImluaXRfdXRpbHMiLCAiUGFyc2VyIiwgImRhdGVTdHJpbmciLCAidG9rZW4iLCAibWF0Y2giLCAicGFyc2VOdW1lcmljUGF0dGVybiIsICJudW1lcmljUGF0dGVybnMiLCAicGFyc2VORGlnaXRzIiwgIl9kYXRlIiwgInZhbHVlIiwgImRhdGUiLCAiX2ZsYWdzIiwgIkZyYWN0aW9uT2ZTZWNvbmRQYXJzZXIiLCAiaW5pdF9GcmFjdGlvbk9mU2Vjb25kUGFyc2VyIiwgIl9fZXNtTWluIiwgImluaXRfUGFyc2VyIiwgImluaXRfdXRpbHMiLCAiUGFyc2VyIiwgImRhdGVTdHJpbmciLCAidG9rZW4iLCAidmFsdWVDYWxsYmFjayIsICJ2YWx1ZSIsICJtYXBWYWx1ZSIsICJwYXJzZU5EaWdpdHMiLCAiZGF0ZSIsICJfZmxhZ3MiLCAiSVNPVGltZXpvbmVXaXRoWlBhcnNlciIsICJpbml0X0lTT1RpbWV6b25lV2l0aFpQYXJzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyIsICJpbml0X2NvbnN0YW50cyIsICJpbml0X1BhcnNlciIsICJpbml0X3V0aWxzIiwgIlBhcnNlciIsICJkYXRlU3RyaW5nIiwgInRva2VuIiwgInBhcnNlVGltZXpvbmVQYXR0ZXJuIiwgInRpbWV6b25lUGF0dGVybnMiLCAiZGF0ZSIsICJmbGFncyIsICJ2YWx1ZSIsICJjb25zdHJ1Y3RGcm9tIiwgImdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMiLCAiSVNPVGltZXpvbmVQYXJzZXIiLCAiaW5pdF9JU09UaW1lem9uZVBhcnNlciIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIiwgImluaXRfY29uc3RhbnRzIiwgImluaXRfUGFyc2VyIiwgImluaXRfdXRpbHMiLCAiUGFyc2VyIiwgImRhdGVTdHJpbmciLCAidG9rZW4iLCAicGFyc2VUaW1lem9uZVBhdHRlcm4iLCAidGltZXpvbmVQYXR0ZXJucyIsICJkYXRlIiwgImZsYWdzIiwgInZhbHVlIiwgImNvbnN0cnVjdEZyb20iLCAiZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyIsICJUaW1lc3RhbXBTZWNvbmRzUGFyc2VyIiwgImluaXRfVGltZXN0YW1wU2Vjb25kc1BhcnNlciIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJwYXJzZUFueURpZ2l0c1NpZ25lZCIsICJkYXRlIiwgIl9mbGFncyIsICJ2YWx1ZSIsICJjb25zdHJ1Y3RGcm9tIiwgIlRpbWVzdGFtcE1pbGxpc2Vjb25kc1BhcnNlciIsICJpbml0X1RpbWVzdGFtcE1pbGxpc2Vjb25kc1BhcnNlciIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9QYXJzZXIiLCAiaW5pdF91dGlscyIsICJQYXJzZXIiLCAiZGF0ZVN0cmluZyIsICJwYXJzZUFueURpZ2l0c1NpZ25lZCIsICJkYXRlIiwgIl9mbGFncyIsICJ2YWx1ZSIsICJjb25zdHJ1Y3RGcm9tIiwgInBhcnNlcnMiLCAiaW5pdF9wYXJzZXJzIiwgIl9fZXNtTWluIiwgImluaXRfRXJhUGFyc2VyIiwgImluaXRfWWVhclBhcnNlciIsICJpbml0X0xvY2FsV2Vla1llYXJQYXJzZXIiLCAiaW5pdF9JU09XZWVrWWVhclBhcnNlciIsICJpbml0X0V4dGVuZGVkWWVhclBhcnNlciIsICJpbml0X1F1YXJ0ZXJQYXJzZXIiLCAiaW5pdF9TdGFuZEFsb25lUXVhcnRlclBhcnNlciIsICJpbml0X01vbnRoUGFyc2VyIiwgImluaXRfU3RhbmRBbG9uZU1vbnRoUGFyc2VyIiwgImluaXRfTG9jYWxXZWVrUGFyc2VyIiwgImluaXRfSVNPV2Vla1BhcnNlciIsICJpbml0X0RhdGVQYXJzZXIiLCAiaW5pdF9EYXlPZlllYXJQYXJzZXIiLCAiaW5pdF9EYXlQYXJzZXIiLCAiaW5pdF9Mb2NhbERheVBhcnNlciIsICJpbml0X1N0YW5kQWxvbmVMb2NhbERheVBhcnNlciIsICJpbml0X0lTT0RheVBhcnNlciIsICJpbml0X0FNUE1QYXJzZXIiLCAiaW5pdF9BTVBNTWlkbmlnaHRQYXJzZXIiLCAiaW5pdF9EYXlQZXJpb2RQYXJzZXIiLCAiaW5pdF9Ib3VyMXRvMTJQYXJzZXIiLCAiaW5pdF9Ib3VyMHRvMjNQYXJzZXIiLCAiaW5pdF9Ib3VyMFRvMTFQYXJzZXIiLCAiaW5pdF9Ib3VyMVRvMjRQYXJzZXIiLCAiaW5pdF9NaW51dGVQYXJzZXIiLCAiaW5pdF9TZWNvbmRQYXJzZXIiLCAiaW5pdF9GcmFjdGlvbk9mU2Vjb25kUGFyc2VyIiwgImluaXRfSVNPVGltZXpvbmVXaXRoWlBhcnNlciIsICJpbml0X0lTT1RpbWV6b25lUGFyc2VyIiwgImluaXRfVGltZXN0YW1wU2Vjb25kc1BhcnNlciIsICJpbml0X1RpbWVzdGFtcE1pbGxpc2Vjb25kc1BhcnNlciIsICJFcmFQYXJzZXIiLCAiWWVhclBhcnNlciIsICJMb2NhbFdlZWtZZWFyUGFyc2VyIiwgIklTT1dlZWtZZWFyUGFyc2VyIiwgIkV4dGVuZGVkWWVhclBhcnNlciIsICJRdWFydGVyUGFyc2VyIiwgIlN0YW5kQWxvbmVRdWFydGVyUGFyc2VyIiwgIk1vbnRoUGFyc2VyIiwgIlN0YW5kQWxvbmVNb250aFBhcnNlciIsICJMb2NhbFdlZWtQYXJzZXIiLCAiSVNPV2Vla1BhcnNlciIsICJEYXRlUGFyc2VyIiwgIkRheU9mWWVhclBhcnNlciIsICJEYXlQYXJzZXIiLCAiTG9jYWxEYXlQYXJzZXIiLCAiU3RhbmRBbG9uZUxvY2FsRGF5UGFyc2VyIiwgIklTT0RheVBhcnNlciIsICJBTVBNUGFyc2VyIiwgIkFNUE1NaWRuaWdodFBhcnNlciIsICJEYXlQZXJpb2RQYXJzZXIiLCAiSG91cjF0bzEyUGFyc2VyIiwgIkhvdXIwdG8yM1BhcnNlciIsICJIb3VyMFRvMTFQYXJzZXIiLCAiSG91cjFUbzI0UGFyc2VyIiwgIk1pbnV0ZVBhcnNlciIsICJTZWNvbmRQYXJzZXIiLCAiRnJhY3Rpb25PZlNlY29uZFBhcnNlciIsICJJU09UaW1lem9uZVdpdGhaUGFyc2VyIiwgIklTT1RpbWV6b25lUGFyc2VyIiwgIlRpbWVzdGFtcFNlY29uZHNQYXJzZXIiLCAiVGltZXN0YW1wTWlsbGlzZWNvbmRzUGFyc2VyIiwgInBhcnNlIiwgImRhdGVTdHIiLCAiZm9ybWF0U3RyIiwgInJlZmVyZW5jZURhdGUiLCAib3B0aW9ucyIsICJpbnZhbGlkRGF0ZSIsICJjb25zdHJ1Y3RGcm9tIiwgImRlZmF1bHRPcHRpb25zIiwgImdldERlZmF1bHRPcHRpb25zIiwgImxvY2FsZSIsICJlblVTIiwgImZpcnN0V2Vla0NvbnRhaW5zRGF0ZSIsICJ3ZWVrU3RhcnRzT24iLCAidG9EYXRlIiwgInN1YkZuT3B0aW9ucyIsICJzZXR0ZXJzIiwgIkRhdGVUaW1lem9uZVNldHRlciIsICJ0b2tlbnMiLCAibG9uZ0Zvcm1hdHRpbmdUb2tlbnNSZWdFeHAiLCAic3Vic3RyaW5nIiwgImZpcnN0Q2hhcmFjdGVyIiwgImxvbmdGb3JtYXR0ZXJzIiwgImxvbmdGb3JtYXR0ZXIiLCAiZm9ybWF0dGluZ1Rva2Vuc1JlZ0V4cCIsICJ1c2VkVG9rZW5zIiwgInRva2VuIiwgImlzUHJvdGVjdGVkV2Vla1llYXJUb2tlbiIsICJ3YXJuT3JUaHJvd1Byb3RlY3RlZEVycm9yIiwgImlzUHJvdGVjdGVkRGF5T2ZZZWFyVG9rZW4iLCAicGFyc2VyIiwgInBhcnNlcnMiLCAiaW5jb21wYXRpYmxlVG9rZW5zIiwgImluY29tcGF0aWJsZVRva2VuIiwgInVzZWRUb2tlbiIsICJwYXJzZVJlc3VsdCIsICJ1bmVzY2FwZWRMYXRpbkNoYXJhY3RlclJlZ0V4cCIsICJjbGVhbkVzY2FwZWRTdHJpbmciLCAibm90V2hpdGVzcGFjZVJlZ0V4cCIsICJ1bmlxdWVQcmlvcml0eVNldHRlcnMiLCAic2V0dGVyIiwgImEiLCAiYiIsICJwcmlvcml0eSIsICJpbmRleCIsICJhcnJheSIsICJzZXR0ZXJBcnJheSIsICJkYXRlIiwgImZsYWdzIiwgInJlc3VsdCIsICJpbnB1dCIsICJlc2NhcGVkU3RyaW5nUmVnRXhwIiwgImRvdWJsZVF1b3RlUmVnRXhwIiwgInBhcnNlX2RlZmF1bHQiLCAiaW5pdF9wYXJzZSIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHRMb2NhbGUiLCAiaW5pdF9sb25nRm9ybWF0dGVycyIsICJpbml0X3Byb3RlY3RlZFRva2VucyIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9nZXREZWZhdWx0T3B0aW9ucyIsICJpbml0X3RvRGF0ZSIsICJpbml0X1NldHRlciIsICJpbml0X3BhcnNlcnMiLCAiaXNNYXRjaCIsICJkYXRlU3RyIiwgImZvcm1hdFN0ciIsICJvcHRpb25zIiwgImlzVmFsaWQiLCAicGFyc2UiLCAiaXNNYXRjaF9kZWZhdWx0IiwgImluaXRfaXNNYXRjaCIsICJfX2VzbU1pbiIsICJpbml0X2lzVmFsaWQiLCAiaW5pdF9wYXJzZSIsICJpc01vbmRheSIsICJkYXRlIiwgIm9wdGlvbnMiLCAidG9EYXRlIiwgImlzTW9uZGF5X2RlZmF1bHQiLCAiaW5pdF9pc01vbmRheSIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJpc1Bhc3QiLCAiZGF0ZSIsICJ0b0RhdGUiLCAiaXNQYXN0X2RlZmF1bHQiLCAiaW5pdF9pc1Bhc3QiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAic3RhcnRPZkhvdXIiLCAiZGF0ZSIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJzdGFydE9mSG91cl9kZWZhdWx0IiwgImluaXRfc3RhcnRPZkhvdXIiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiaXNTYW1lSG91ciIsICJkYXRlTGVmdCIsICJkYXRlUmlnaHQiLCAib3B0aW9ucyIsICJkYXRlTGVmdF8iLCAiZGF0ZVJpZ2h0XyIsICJub3JtYWxpemVEYXRlcyIsICJzdGFydE9mSG91ciIsICJpc1NhbWVIb3VyX2RlZmF1bHQiLCAiaW5pdF9pc1NhbWVIb3VyIiwgIl9fZXNtTWluIiwgImluaXRfbm9ybWFsaXplRGF0ZXMiLCAiaW5pdF9zdGFydE9mSG91ciIsICJpc1NhbWVXZWVrIiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgImxhdGVyRGF0ZV8iLCAiZWFybGllckRhdGVfIiwgIm5vcm1hbGl6ZURhdGVzIiwgInN0YXJ0T2ZXZWVrIiwgImlzU2FtZVdlZWtfZGVmYXVsdCIsICJpbml0X2lzU2FtZVdlZWsiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVEYXRlcyIsICJpbml0X3N0YXJ0T2ZXZWVrIiwgImlzU2FtZUlTT1dlZWsiLCAibGF0ZXJEYXRlIiwgImVhcmxpZXJEYXRlIiwgIm9wdGlvbnMiLCAiaXNTYW1lV2VlayIsICJpc1NhbWVJU09XZWVrX2RlZmF1bHQiLCAiaW5pdF9pc1NhbWVJU09XZWVrIiwgIl9fZXNtTWluIiwgImluaXRfaXNTYW1lV2VlayIsICJpc1NhbWVJU09XZWVrWWVhciIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAib3B0aW9ucyIsICJsYXRlckRhdGVfIiwgImVhcmxpZXJEYXRlXyIsICJub3JtYWxpemVEYXRlcyIsICJzdGFydE9mSVNPV2Vla1llYXIiLCAiaXNTYW1lSVNPV2Vla1llYXJfZGVmYXVsdCIsICJpbml0X2lzU2FtZUlTT1dlZWtZZWFyIiwgIl9fZXNtTWluIiwgImluaXRfc3RhcnRPZklTT1dlZWtZZWFyIiwgImluaXRfbm9ybWFsaXplRGF0ZXMiLCAic3RhcnRPZk1pbnV0ZSIsICJkYXRlIiwgIm9wdGlvbnMiLCAiZGF0ZV8iLCAidG9EYXRlIiwgInN0YXJ0T2ZNaW51dGVfZGVmYXVsdCIsICJpbml0X3N0YXJ0T2ZNaW51dGUiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiaXNTYW1lTWludXRlIiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJzdGFydE9mTWludXRlIiwgImlzU2FtZU1pbnV0ZV9kZWZhdWx0IiwgImluaXRfaXNTYW1lTWludXRlIiwgIl9fZXNtTWluIiwgImluaXRfc3RhcnRPZk1pbnV0ZSIsICJpc1NhbWVNb250aCIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAib3B0aW9ucyIsICJsYXRlckRhdGVfIiwgImVhcmxpZXJEYXRlXyIsICJub3JtYWxpemVEYXRlcyIsICJpc1NhbWVNb250aF9kZWZhdWx0IiwgImluaXRfaXNTYW1lTW9udGgiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVEYXRlcyIsICJpc1NhbWVRdWFydGVyIiwgImxhdGVyRGF0ZSIsICJlYXJsaWVyRGF0ZSIsICJvcHRpb25zIiwgImRhdGVMZWZ0XyIsICJkYXRlUmlnaHRfIiwgIm5vcm1hbGl6ZURhdGVzIiwgInN0YXJ0T2ZRdWFydGVyIiwgImlzU2FtZVF1YXJ0ZXJfZGVmYXVsdCIsICJpbml0X2lzU2FtZVF1YXJ0ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemVEYXRlcyIsICJpbml0X3N0YXJ0T2ZRdWFydGVyIiwgInN0YXJ0T2ZTZWNvbmQiLCAiZGF0ZSIsICJvcHRpb25zIiwgImRhdGVfIiwgInRvRGF0ZSIsICJzdGFydE9mU2Vjb25kX2RlZmF1bHQiLCAiaW5pdF9zdGFydE9mU2Vjb25kIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImlzU2FtZVNlY29uZCIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAic3RhcnRPZlNlY29uZCIsICJpc1NhbWVTZWNvbmRfZGVmYXVsdCIsICJpbml0X2lzU2FtZVNlY29uZCIsICJfX2VzbU1pbiIsICJpbml0X3N0YXJ0T2ZTZWNvbmQiLCAiaXNTYW1lWWVhciIsICJsYXRlckRhdGUiLCAiZWFybGllckRhdGUiLCAib3B0aW9ucyIsICJsYXRlckRhdGVfIiwgImVhcmxpZXJEYXRlXyIsICJub3JtYWxpemVEYXRlcyIsICJpc1NhbWVZZWFyX2RlZmF1bHQiLCAiaW5pdF9pc1NhbWVZZWFyIiwgIl9fZXNtTWluIiwgImluaXRfbm9ybWFsaXplRGF0ZXMiLCAiaXNUaGlzSG91ciIsICJkYXRlIiwgIm9wdGlvbnMiLCAiaXNTYW1lSG91ciIsICJ0b0RhdGUiLCAiY29uc3RydWN0Tm93IiwgImlzVGhpc0hvdXJfZGVmYXVsdCIsICJpbml0X2lzVGhpc0hvdXIiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3ROb3ciLCAiaW5pdF9pc1NhbWVIb3VyIiwgImluaXRfdG9EYXRlIiwgImlzVGhpc0lTT1dlZWsiLCAiZGF0ZSIsICJvcHRpb25zIiwgImlzU2FtZUlTT1dlZWsiLCAiY29uc3RydWN0RnJvbSIsICJjb25zdHJ1Y3ROb3ciLCAiaXNUaGlzSVNPV2Vla19kZWZhdWx0IiwgImluaXRfaXNUaGlzSVNPV2VlayIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9jb25zdHJ1Y3ROb3ciLCAiaW5pdF9pc1NhbWVJU09XZWVrIiwgImlzVGhpc01pbnV0ZSIsICJkYXRlIiwgImlzU2FtZU1pbnV0ZSIsICJjb25zdHJ1Y3ROb3ciLCAiaXNUaGlzTWludXRlX2RlZmF1bHQiLCAiaW5pdF9pc1RoaXNNaW51dGUiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3ROb3ciLCAiaW5pdF9pc1NhbWVNaW51dGUiLCAiaXNUaGlzTW9udGgiLCAiZGF0ZSIsICJvcHRpb25zIiwgImlzU2FtZU1vbnRoIiwgImNvbnN0cnVjdEZyb20iLCAiY29uc3RydWN0Tm93IiwgImlzVGhpc01vbnRoX2RlZmF1bHQiLCAiaW5pdF9pc1RoaXNNb250aCIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9jb25zdHJ1Y3ROb3ciLCAiaW5pdF9pc1NhbWVNb250aCIsICJpc1RoaXNRdWFydGVyIiwgImRhdGUiLCAib3B0aW9ucyIsICJpc1NhbWVRdWFydGVyIiwgImNvbnN0cnVjdEZyb20iLCAiY29uc3RydWN0Tm93IiwgImlzVGhpc1F1YXJ0ZXJfZGVmYXVsdCIsICJpbml0X2lzVGhpc1F1YXJ0ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfY29uc3RydWN0Tm93IiwgImluaXRfaXNTYW1lUXVhcnRlciIsICJpc1RoaXNTZWNvbmQiLCAiZGF0ZSIsICJpc1NhbWVTZWNvbmQiLCAiY29uc3RydWN0Tm93IiwgImlzVGhpc1NlY29uZF9kZWZhdWx0IiwgImluaXRfaXNUaGlzU2Vjb25kIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0Tm93IiwgImluaXRfaXNTYW1lU2Vjb25kIiwgImlzVGhpc1dlZWsiLCAiZGF0ZSIsICJvcHRpb25zIiwgImlzU2FtZVdlZWsiLCAiY29uc3RydWN0RnJvbSIsICJjb25zdHJ1Y3ROb3ciLCAiaXNUaGlzV2Vla19kZWZhdWx0IiwgImluaXRfaXNUaGlzV2VlayIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9jb25zdHJ1Y3ROb3ciLCAiaW5pdF9pc1NhbWVXZWVrIiwgImlzVGhpc1llYXIiLCAiZGF0ZSIsICJvcHRpb25zIiwgImlzU2FtZVllYXIiLCAiY29uc3RydWN0RnJvbSIsICJjb25zdHJ1Y3ROb3ciLCAiaXNUaGlzWWVhcl9kZWZhdWx0IiwgImluaXRfaXNUaGlzWWVhciIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9jb25zdHJ1Y3ROb3ciLCAiaW5pdF9pc1NhbWVZZWFyIiwgImlzVGh1cnNkYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgInRvRGF0ZSIsICJpc1RodXJzZGF5X2RlZmF1bHQiLCAiaW5pdF9pc1RodXJzZGF5IiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImlzVG9kYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgImlzU2FtZURheSIsICJjb25zdHJ1Y3RGcm9tIiwgImNvbnN0cnVjdE5vdyIsICJpc1RvZGF5X2RlZmF1bHQiLCAiaW5pdF9pc1RvZGF5IiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X2NvbnN0cnVjdE5vdyIsICJpbml0X2lzU2FtZURheSIsICJpc1RvbW9ycm93IiwgImRhdGUiLCAib3B0aW9ucyIsICJpc1NhbWVEYXkiLCAiYWRkRGF5cyIsICJjb25zdHJ1Y3ROb3ciLCAiaXNUb21vcnJvd19kZWZhdWx0IiwgImluaXRfaXNUb21vcnJvdyIsICJfX2VzbU1pbiIsICJpbml0X2FkZERheXMiLCAiaW5pdF9jb25zdHJ1Y3ROb3ciLCAiaW5pdF9pc1NhbWVEYXkiLCAiaXNUdWVzZGF5IiwgImRhdGUiLCAib3B0aW9ucyIsICJ0b0RhdGUiLCAiaXNUdWVzZGF5X2RlZmF1bHQiLCAiaW5pdF9pc1R1ZXNkYXkiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiaXNXZWRuZXNkYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgInRvRGF0ZSIsICJpc1dlZG5lc2RheV9kZWZhdWx0IiwgImluaXRfaXNXZWRuZXNkYXkiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAiaXNXaXRoaW5JbnRlcnZhbCIsICJkYXRlIiwgImludGVydmFsIiwgIm9wdGlvbnMiLCAidGltZSIsICJ0b0RhdGUiLCAic3RhcnRUaW1lIiwgImVuZFRpbWUiLCAiYSIsICJiIiwgImlzV2l0aGluSW50ZXJ2YWxfZGVmYXVsdCIsICJpbml0X2lzV2l0aGluSW50ZXJ2YWwiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAic3ViRGF5cyIsICJkYXRlIiwgImFtb3VudCIsICJvcHRpb25zIiwgImFkZERheXMiLCAic3ViRGF5c19kZWZhdWx0IiwgImluaXRfc3ViRGF5cyIsICJfX2VzbU1pbiIsICJpbml0X2FkZERheXMiLCAiaXNZZXN0ZXJkYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgImlzU2FtZURheSIsICJjb25zdHJ1Y3RGcm9tIiwgInN1YkRheXMiLCAiY29uc3RydWN0Tm93IiwgImlzWWVzdGVyZGF5X2RlZmF1bHQiLCAiaW5pdF9pc1llc3RlcmRheSIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9jb25zdHJ1Y3ROb3ciLCAiaW5pdF9pc1NhbWVEYXkiLCAiaW5pdF9zdWJEYXlzIiwgImxhc3REYXlPZkRlY2FkZSIsICJkYXRlIiwgIm9wdGlvbnMiLCAiX2RhdGUiLCAidG9EYXRlIiwgInllYXIiLCAiZGVjYWRlIiwgImxhc3REYXlPZkRlY2FkZV9kZWZhdWx0IiwgImluaXRfbGFzdERheU9mRGVjYWRlIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImxhc3REYXlPZldlZWsiLCAiZGF0ZSIsICJvcHRpb25zIiwgImRlZmF1bHRPcHRpb25zIiwgImdldERlZmF1bHRPcHRpb25zIiwgIndlZWtTdGFydHNPbiIsICJfZGF0ZSIsICJ0b0RhdGUiLCAiZGF5IiwgImRpZmYiLCAibGFzdERheU9mV2Vla19kZWZhdWx0IiwgImluaXRfbGFzdERheU9mV2VlayIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHRPcHRpb25zIiwgImluaXRfdG9EYXRlIiwgImxhc3REYXlPZklTT1dlZWsiLCAiZGF0ZSIsICJvcHRpb25zIiwgImxhc3REYXlPZldlZWsiLCAibGFzdERheU9mSVNPV2Vla19kZWZhdWx0IiwgImluaXRfbGFzdERheU9mSVNPV2VlayIsICJfX2VzbU1pbiIsICJpbml0X2xhc3REYXlPZldlZWsiLCAibGFzdERheU9mSVNPV2Vla1llYXIiLCAiZGF0ZSIsICJvcHRpb25zIiwgInllYXIiLCAiZ2V0SVNPV2Vla1llYXIiLCAiZm91cnRoT2ZKYW51YXJ5IiwgImNvbnN0cnVjdEZyb20iLCAiZGF0ZV8iLCAic3RhcnRPZklTT1dlZWsiLCAibGFzdERheU9mSVNPV2Vla1llYXJfZGVmYXVsdCIsICJpbml0X2xhc3REYXlPZklTT1dlZWtZZWFyIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X2dldElTT1dlZWtZZWFyIiwgImluaXRfc3RhcnRPZklTT1dlZWsiLCAibGFzdERheU9mUXVhcnRlciIsICJkYXRlIiwgIm9wdGlvbnMiLCAiZGF0ZV8iLCAidG9EYXRlIiwgImN1cnJlbnRNb250aCIsICJtb250aCIsICJsYXN0RGF5T2ZRdWFydGVyX2RlZmF1bHQiLCAiaW5pdF9sYXN0RGF5T2ZRdWFydGVyIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgImxhc3REYXlPZlllYXIiLCAiZGF0ZSIsICJvcHRpb25zIiwgImRhdGVfIiwgInRvRGF0ZSIsICJ5ZWFyIiwgImxhc3REYXlPZlllYXJfZGVmYXVsdCIsICJpbml0X2xhc3REYXlPZlllYXIiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAibGlnaHRGb3JtYXQiLCAiZGF0ZSIsICJmb3JtYXRTdHIiLCAiZGF0ZV8iLCAidG9EYXRlIiwgImlzVmFsaWQiLCAidG9rZW5zIiwgImZvcm1hdHRpbmdUb2tlbnNSZWdFeHAiLCAic3Vic3RyaW5nIiwgImZpcnN0Q2hhcmFjdGVyIiwgImNsZWFuRXNjYXBlZFN0cmluZyIsICJmb3JtYXR0ZXIiLCAibGlnaHRGb3JtYXR0ZXJzIiwgInVuZXNjYXBlZExhdGluQ2hhcmFjdGVyUmVnRXhwIiwgImlucHV0IiwgIm1hdGNoZXMiLCAiZXNjYXBlZFN0cmluZ1JlZ0V4cCIsICJkb3VibGVRdW90ZVJlZ0V4cCIsICJsaWdodEZvcm1hdF9kZWZhdWx0IiwgImluaXRfbGlnaHRGb3JtYXQiLCAiX19lc21NaW4iLCAiaW5pdF9saWdodEZvcm1hdHRlcnMiLCAiaW5pdF9pc1ZhbGlkIiwgImluaXRfdG9EYXRlIiwgIm1pbGxpc2Vjb25kcyIsICJ5ZWFycyIsICJtb250aHMiLCAid2Vla3MiLCAiZGF5cyIsICJob3VycyIsICJtaW51dGVzIiwgInNlY29uZHMiLCAidG90YWxEYXlzIiwgInRvdGFsU2Vjb25kcyIsICJtaWxsaXNlY29uZHNfZGVmYXVsdCIsICJpbml0X21pbGxpc2Vjb25kcyIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0YW50cyIsICJtaWxsaXNlY29uZHNUb0hvdXJzIiwgIm1pbGxpc2Vjb25kcyIsICJob3VycyIsICJtaWxsaXNlY29uZHNJbkhvdXIiLCAibWlsbGlzZWNvbmRzVG9Ib3Vyc19kZWZhdWx0IiwgImluaXRfbWlsbGlzZWNvbmRzVG9Ib3VycyIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0YW50cyIsICJtaWxsaXNlY29uZHNUb01pbnV0ZXMiLCAibWlsbGlzZWNvbmRzIiwgIm1pbnV0ZXMiLCAibWlsbGlzZWNvbmRzSW5NaW51dGUiLCAibWlsbGlzZWNvbmRzVG9NaW51dGVzX2RlZmF1bHQiLCAiaW5pdF9taWxsaXNlY29uZHNUb01pbnV0ZXMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAibWlsbGlzZWNvbmRzVG9TZWNvbmRzIiwgIm1pbGxpc2Vjb25kcyIsICJzZWNvbmRzIiwgIm1pbGxpc2Vjb25kc0luU2Vjb25kIiwgIm1pbGxpc2Vjb25kc1RvU2Vjb25kc19kZWZhdWx0IiwgImluaXRfbWlsbGlzZWNvbmRzVG9TZWNvbmRzIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgIm1pbnV0ZXNUb0hvdXJzIiwgIm1pbnV0ZXMiLCAiaG91cnMiLCAibWludXRlc0luSG91ciIsICJtaW51dGVzVG9Ib3Vyc19kZWZhdWx0IiwgImluaXRfbWludXRlc1RvSG91cnMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAibWludXRlc1RvTWlsbGlzZWNvbmRzIiwgIm1pbnV0ZXMiLCAibWlsbGlzZWNvbmRzSW5NaW51dGUiLCAibWludXRlc1RvTWlsbGlzZWNvbmRzX2RlZmF1bHQiLCAiaW5pdF9taW51dGVzVG9NaWxsaXNlY29uZHMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAibWludXRlc1RvU2Vjb25kcyIsICJtaW51dGVzIiwgInNlY29uZHNJbk1pbnV0ZSIsICJtaW51dGVzVG9TZWNvbmRzX2RlZmF1bHQiLCAiaW5pdF9taW51dGVzVG9TZWNvbmRzIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgIm1vbnRoc1RvUXVhcnRlcnMiLCAibW9udGhzIiwgInF1YXJ0ZXJzIiwgIm1vbnRoc0luUXVhcnRlciIsICJtb250aHNUb1F1YXJ0ZXJzX2RlZmF1bHQiLCAiaW5pdF9tb250aHNUb1F1YXJ0ZXJzIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgIm1vbnRoc1RvWWVhcnMiLCAibW9udGhzIiwgInllYXJzIiwgIm1vbnRoc0luWWVhciIsICJtb250aHNUb1llYXJzX2RlZmF1bHQiLCAiaW5pdF9tb250aHNUb1llYXJzIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgIm5leHREYXkiLCAiZGF0ZSIsICJkYXkiLCAib3B0aW9ucyIsICJkZWx0YSIsICJnZXREYXkiLCAiYWRkRGF5cyIsICJuZXh0RGF5X2RlZmF1bHQiLCAiaW5pdF9uZXh0RGF5IiwgIl9fZXNtTWluIiwgImluaXRfYWRkRGF5cyIsICJpbml0X2dldERheSIsICJuZXh0RnJpZGF5IiwgImRhdGUiLCAib3B0aW9ucyIsICJuZXh0RGF5IiwgIm5leHRGcmlkYXlfZGVmYXVsdCIsICJpbml0X25leHRGcmlkYXkiLCAiX19lc21NaW4iLCAiaW5pdF9uZXh0RGF5IiwgIm5leHRNb25kYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgIm5leHREYXkiLCAibmV4dE1vbmRheV9kZWZhdWx0IiwgImluaXRfbmV4dE1vbmRheSIsICJfX2VzbU1pbiIsICJpbml0X25leHREYXkiLCAibmV4dFNhdHVyZGF5IiwgImRhdGUiLCAib3B0aW9ucyIsICJuZXh0RGF5IiwgIm5leHRTYXR1cmRheV9kZWZhdWx0IiwgImluaXRfbmV4dFNhdHVyZGF5IiwgIl9fZXNtTWluIiwgImluaXRfbmV4dERheSIsICJuZXh0U3VuZGF5IiwgImRhdGUiLCAib3B0aW9ucyIsICJuZXh0RGF5IiwgIm5leHRTdW5kYXlfZGVmYXVsdCIsICJpbml0X25leHRTdW5kYXkiLCAiX19lc21NaW4iLCAiaW5pdF9uZXh0RGF5IiwgIm5leHRUaHVyc2RheSIsICJkYXRlIiwgIm9wdGlvbnMiLCAibmV4dERheSIsICJuZXh0VGh1cnNkYXlfZGVmYXVsdCIsICJpbml0X25leHRUaHVyc2RheSIsICJfX2VzbU1pbiIsICJpbml0X25leHREYXkiLCAibmV4dFR1ZXNkYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgIm5leHREYXkiLCAibmV4dFR1ZXNkYXlfZGVmYXVsdCIsICJpbml0X25leHRUdWVzZGF5IiwgIl9fZXNtTWluIiwgImluaXRfbmV4dERheSIsICJuZXh0V2VkbmVzZGF5IiwgImRhdGUiLCAib3B0aW9ucyIsICJuZXh0RGF5IiwgIm5leHRXZWRuZXNkYXlfZGVmYXVsdCIsICJpbml0X25leHRXZWRuZXNkYXkiLCAiX19lc21NaW4iLCAiaW5pdF9uZXh0RGF5IiwgInBhcnNlSVNPIiwgImFyZ3VtZW50IiwgIm9wdGlvbnMiLCAiaW52YWxpZERhdGUiLCAiY29uc3RydWN0RnJvbSIsICJhZGRpdGlvbmFsRGlnaXRzIiwgImRhdGVTdHJpbmdzIiwgInNwbGl0RGF0ZVN0cmluZyIsICJkYXRlIiwgInBhcnNlWWVhclJlc3VsdCIsICJwYXJzZVllYXIiLCAicGFyc2VEYXRlIiwgInRpbWVzdGFtcCIsICJ0aW1lIiwgIm9mZnNldCIsICJwYXJzZVRpbWUiLCAicGFyc2VUaW1lem9uZSIsICJ0bXBEYXRlIiwgInJlc3VsdCIsICJ0b0RhdGUiLCAiZGF0ZVN0cmluZyIsICJhcnJheSIsICJwYXR0ZXJucyIsICJ0aW1lU3RyaW5nIiwgInRva2VuIiwgInJlZ2V4IiwgImNhcHR1cmVzIiwgInllYXIiLCAiY2VudHVyeSIsICJkYXRlUmVnZXgiLCAiaXNXZWVrRGF0ZSIsICJkYXlPZlllYXIiLCAicGFyc2VEYXRlVW5pdCIsICJtb250aCIsICJkYXkiLCAid2VlayIsICJkYXlPZldlZWsiLCAidmFsaWRhdGVXZWVrRGF0ZSIsICJkYXlPZklTT1dlZWtZZWFyIiwgInZhbGlkYXRlRGF0ZSIsICJ2YWxpZGF0ZURheU9mWWVhckRhdGUiLCAidmFsdWUiLCAidGltZVJlZ2V4IiwgImhvdXJzIiwgInBhcnNlVGltZVVuaXQiLCAibWludXRlcyIsICJzZWNvbmRzIiwgInZhbGlkYXRlVGltZSIsICJtaWxsaXNlY29uZHNJbkhvdXIiLCAibWlsbGlzZWNvbmRzSW5NaW51dGUiLCAidGltZXpvbmVTdHJpbmciLCAidGltZXpvbmVSZWdleCIsICJzaWduIiwgInZhbGlkYXRlVGltZXpvbmUiLCAiaXNvV2Vla1llYXIiLCAiZm91cnRoT2ZKYW51YXJ5RGF5IiwgImRpZmYiLCAiaXNMZWFwWWVhckluZGV4IiwgImRheXNJbk1vbnRocyIsICJfeWVhciIsICJfaG91cnMiLCAicGFyc2VJU09fZGVmYXVsdCIsICJpbml0X3BhcnNlSVNPIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X3RvRGF0ZSIsICJwYXJzZUpTT04iLCAiZGF0ZVN0ciIsICJvcHRpb25zIiwgInBhcnRzIiwgInRvRGF0ZSIsICJwYXJzZUpTT05fZGVmYXVsdCIsICJpbml0X3BhcnNlSlNPTiIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJwcmV2aW91c0RheSIsICJkYXRlIiwgImRheSIsICJvcHRpb25zIiwgImRlbHRhIiwgImdldERheSIsICJzdWJEYXlzIiwgInByZXZpb3VzRGF5X2RlZmF1bHQiLCAiaW5pdF9wcmV2aW91c0RheSIsICJfX2VzbU1pbiIsICJpbml0X2dldERheSIsICJpbml0X3N1YkRheXMiLCAicHJldmlvdXNGcmlkYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgInByZXZpb3VzRGF5IiwgInByZXZpb3VzRnJpZGF5X2RlZmF1bHQiLCAiaW5pdF9wcmV2aW91c0ZyaWRheSIsICJfX2VzbU1pbiIsICJpbml0X3ByZXZpb3VzRGF5IiwgInByZXZpb3VzTW9uZGF5IiwgImRhdGUiLCAib3B0aW9ucyIsICJwcmV2aW91c0RheSIsICJwcmV2aW91c01vbmRheV9kZWZhdWx0IiwgImluaXRfcHJldmlvdXNNb25kYXkiLCAiX19lc21NaW4iLCAiaW5pdF9wcmV2aW91c0RheSIsICJwcmV2aW91c1NhdHVyZGF5IiwgImRhdGUiLCAib3B0aW9ucyIsICJwcmV2aW91c0RheSIsICJwcmV2aW91c1NhdHVyZGF5X2RlZmF1bHQiLCAiaW5pdF9wcmV2aW91c1NhdHVyZGF5IiwgIl9fZXNtTWluIiwgImluaXRfcHJldmlvdXNEYXkiLCAicHJldmlvdXNTdW5kYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgInByZXZpb3VzRGF5IiwgInByZXZpb3VzU3VuZGF5X2RlZmF1bHQiLCAiaW5pdF9wcmV2aW91c1N1bmRheSIsICJfX2VzbU1pbiIsICJpbml0X3ByZXZpb3VzRGF5IiwgInByZXZpb3VzVGh1cnNkYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgInByZXZpb3VzRGF5IiwgInByZXZpb3VzVGh1cnNkYXlfZGVmYXVsdCIsICJpbml0X3ByZXZpb3VzVGh1cnNkYXkiLCAiX19lc21NaW4iLCAiaW5pdF9wcmV2aW91c0RheSIsICJwcmV2aW91c1R1ZXNkYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgInByZXZpb3VzRGF5IiwgInByZXZpb3VzVHVlc2RheV9kZWZhdWx0IiwgImluaXRfcHJldmlvdXNUdWVzZGF5IiwgIl9fZXNtTWluIiwgImluaXRfcHJldmlvdXNEYXkiLCAicHJldmlvdXNXZWRuZXNkYXkiLCAiZGF0ZSIsICJvcHRpb25zIiwgInByZXZpb3VzRGF5IiwgInByZXZpb3VzV2VkbmVzZGF5X2RlZmF1bHQiLCAiaW5pdF9wcmV2aW91c1dlZG5lc2RheSIsICJfX2VzbU1pbiIsICJpbml0X3ByZXZpb3VzRGF5IiwgInF1YXJ0ZXJzVG9Nb250aHMiLCAicXVhcnRlcnMiLCAibW9udGhzSW5RdWFydGVyIiwgInF1YXJ0ZXJzVG9Nb250aHNfZGVmYXVsdCIsICJpbml0X3F1YXJ0ZXJzVG9Nb250aHMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAicXVhcnRlcnNUb1llYXJzIiwgInF1YXJ0ZXJzIiwgInllYXJzIiwgInF1YXJ0ZXJzSW5ZZWFyIiwgInF1YXJ0ZXJzVG9ZZWFyc19kZWZhdWx0IiwgImluaXRfcXVhcnRlcnNUb1llYXJzIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgInJvdW5kVG9OZWFyZXN0SG91cnMiLCAiZGF0ZSIsICJvcHRpb25zIiwgIm5lYXJlc3RUbyIsICJjb25zdHJ1Y3RGcm9tIiwgImRhdGVfIiwgInRvRGF0ZSIsICJmcmFjdGlvbmFsTWludXRlcyIsICJmcmFjdGlvbmFsU2Vjb25kcyIsICJmcmFjdGlvbmFsTWlsbGlzZWNvbmRzIiwgImhvdXJzIiwgIm1ldGhvZCIsICJyb3VuZGVkSG91cnMiLCAiZ2V0Um91bmRpbmdNZXRob2QiLCAicm91bmRUb05lYXJlc3RIb3Vyc19kZWZhdWx0IiwgImluaXRfcm91bmRUb05lYXJlc3RIb3VycyIsICJfX2VzbU1pbiIsICJpbml0X2dldFJvdW5kaW5nTWV0aG9kIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X3RvRGF0ZSIsICJyb3VuZFRvTmVhcmVzdE1pbnV0ZXMiLCAiZGF0ZSIsICJvcHRpb25zIiwgIm5lYXJlc3RUbyIsICJjb25zdHJ1Y3RGcm9tIiwgImRhdGVfIiwgInRvRGF0ZSIsICJmcmFjdGlvbmFsU2Vjb25kcyIsICJmcmFjdGlvbmFsTWlsbGlzZWNvbmRzIiwgIm1pbnV0ZXMiLCAibWV0aG9kIiwgInJvdW5kZWRNaW51dGVzIiwgImdldFJvdW5kaW5nTWV0aG9kIiwgInJvdW5kVG9OZWFyZXN0TWludXRlc19kZWZhdWx0IiwgImluaXRfcm91bmRUb05lYXJlc3RNaW51dGVzIiwgIl9fZXNtTWluIiwgImluaXRfZ2V0Um91bmRpbmdNZXRob2QiLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfdG9EYXRlIiwgInNlY29uZHNUb0hvdXJzIiwgInNlY29uZHMiLCAiaG91cnMiLCAic2Vjb25kc0luSG91ciIsICJzZWNvbmRzVG9Ib3Vyc19kZWZhdWx0IiwgImluaXRfc2Vjb25kc1RvSG91cnMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAic2Vjb25kc1RvTWlsbGlzZWNvbmRzIiwgInNlY29uZHMiLCAibWlsbGlzZWNvbmRzSW5TZWNvbmQiLCAic2Vjb25kc1RvTWlsbGlzZWNvbmRzX2RlZmF1bHQiLCAiaW5pdF9zZWNvbmRzVG9NaWxsaXNlY29uZHMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAic2Vjb25kc1RvTWludXRlcyIsICJzZWNvbmRzIiwgIm1pbnV0ZXMiLCAic2Vjb25kc0luTWludXRlIiwgInNlY29uZHNUb01pbnV0ZXNfZGVmYXVsdCIsICJpbml0X3NlY29uZHNUb01pbnV0ZXMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAic2V0TW9udGgiLCAiZGF0ZSIsICJtb250aCIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJ5ZWFyIiwgImRheSIsICJtaWRNb250aCIsICJjb25zdHJ1Y3RGcm9tIiwgImRheXNJbk1vbnRoIiwgImdldERheXNJbk1vbnRoIiwgInNldE1vbnRoX2RlZmF1bHQiLCAiaW5pdF9zZXRNb250aCIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9nZXREYXlzSW5Nb250aCIsICJpbml0X3RvRGF0ZSIsICJzZXQiLCAiZGF0ZSIsICJ2YWx1ZXMiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAiY29uc3RydWN0RnJvbSIsICJzZXRNb250aCIsICJzZXRfZGVmYXVsdCIsICJpbml0X3NldCIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9zZXRNb250aCIsICJpbml0X3RvRGF0ZSIsICJzZXREYXRlIiwgImRhdGUiLCAiZGF5T2ZNb250aCIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJzZXREYXRlX2RlZmF1bHQiLCAiaW5pdF9zZXREYXRlIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgInNldERheU9mWWVhciIsICJkYXRlIiwgImRheU9mWWVhciIsICJvcHRpb25zIiwgImRhdGVfIiwgInRvRGF0ZSIsICJzZXREYXlPZlllYXJfZGVmYXVsdCIsICJpbml0X3NldERheU9mWWVhciIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJzZXREZWZhdWx0T3B0aW9ucyIsICJvcHRpb25zIiwgInJlc3VsdCIsICJkZWZhdWx0T3B0aW9ucyIsICJnZXREZWZhdWx0T3B0aW9ucyIsICJwcm9wZXJ0eSIsICJzZXREZWZhdWx0T3B0aW9uc19kZWZhdWx0IiwgImluaXRfc2V0RGVmYXVsdE9wdGlvbnMiLCAiX19lc21NaW4iLCAiaW5pdF9kZWZhdWx0T3B0aW9ucyIsICJzZXRIb3VycyIsICJkYXRlIiwgImhvdXJzIiwgIm9wdGlvbnMiLCAiX2RhdGUiLCAidG9EYXRlIiwgInNldEhvdXJzX2RlZmF1bHQiLCAiaW5pdF9zZXRIb3VycyIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJzZXRNaWxsaXNlY29uZHMiLCAiZGF0ZSIsICJtaWxsaXNlY29uZHMiLCAib3B0aW9ucyIsICJfZGF0ZSIsICJ0b0RhdGUiLCAic2V0TWlsbGlzZWNvbmRzX2RlZmF1bHQiLCAiaW5pdF9zZXRNaWxsaXNlY29uZHMiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAic2V0TWludXRlcyIsICJkYXRlIiwgIm1pbnV0ZXMiLCAib3B0aW9ucyIsICJkYXRlXyIsICJ0b0RhdGUiLCAic2V0TWludXRlc19kZWZhdWx0IiwgImluaXRfc2V0TWludXRlcyIsICJfX2VzbU1pbiIsICJpbml0X3RvRGF0ZSIsICJzZXRRdWFydGVyIiwgImRhdGUiLCAicXVhcnRlciIsICJvcHRpb25zIiwgImRhdGVfIiwgInRvRGF0ZSIsICJvbGRRdWFydGVyIiwgImRpZmYiLCAic2V0TW9udGgiLCAic2V0UXVhcnRlcl9kZWZhdWx0IiwgImluaXRfc2V0UXVhcnRlciIsICJfX2VzbU1pbiIsICJpbml0X3NldE1vbnRoIiwgImluaXRfdG9EYXRlIiwgInNldFNlY29uZHMiLCAiZGF0ZSIsICJzZWNvbmRzIiwgIm9wdGlvbnMiLCAiX2RhdGUiLCAidG9EYXRlIiwgInNldFNlY29uZHNfZGVmYXVsdCIsICJpbml0X3NldFNlY29uZHMiLCAiX19lc21NaW4iLCAiaW5pdF90b0RhdGUiLCAic2V0V2Vla1llYXIiLCAiZGF0ZSIsICJ3ZWVrWWVhciIsICJvcHRpb25zIiwgImRlZmF1bHRPcHRpb25zIiwgImdldERlZmF1bHRPcHRpb25zIiwgImZpcnN0V2Vla0NvbnRhaW5zRGF0ZSIsICJkaWZmIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyIsICJ0b0RhdGUiLCAic3RhcnRPZldlZWtZZWFyIiwgImZpcnN0V2VlayIsICJjb25zdHJ1Y3RGcm9tIiwgImRhdGVfIiwgInNldFdlZWtZZWFyX2RlZmF1bHQiLCAiaW5pdF9zZXRXZWVrWWVhciIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHRPcHRpb25zIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X2RpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyIsICJpbml0X3N0YXJ0T2ZXZWVrWWVhciIsICJpbml0X3RvRGF0ZSIsICJzZXRZZWFyIiwgImRhdGUiLCAieWVhciIsICJvcHRpb25zIiwgImRhdGVfIiwgInRvRGF0ZSIsICJjb25zdHJ1Y3RGcm9tIiwgInNldFllYXJfZGVmYXVsdCIsICJpbml0X3NldFllYXIiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3RGcm9tIiwgImluaXRfdG9EYXRlIiwgInN0YXJ0T2ZEZWNhZGUiLCAiZGF0ZSIsICJvcHRpb25zIiwgIl9kYXRlIiwgInRvRGF0ZSIsICJ5ZWFyIiwgImRlY2FkZSIsICJzdGFydE9mRGVjYWRlX2RlZmF1bHQiLCAiaW5pdF9zdGFydE9mRGVjYWRlIiwgIl9fZXNtTWluIiwgImluaXRfdG9EYXRlIiwgInN0YXJ0T2ZUb2RheSIsICJvcHRpb25zIiwgInN0YXJ0T2ZEYXkiLCAic3RhcnRPZlRvZGF5X2RlZmF1bHQiLCAiaW5pdF9zdGFydE9mVG9kYXkiLCAiX19lc21NaW4iLCAiaW5pdF9zdGFydE9mRGF5IiwgInN0YXJ0T2ZUb21vcnJvdyIsICJvcHRpb25zIiwgIm5vdyIsICJjb25zdHJ1Y3ROb3ciLCAieWVhciIsICJtb250aCIsICJkYXkiLCAiZGF0ZSIsICJjb25zdHJ1Y3RGcm9tIiwgInN0YXJ0T2ZUb21vcnJvd19kZWZhdWx0IiwgImluaXRfc3RhcnRPZlRvbW9ycm93IiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RydWN0RnJvbSIsICJpbml0X2NvbnN0cnVjdE5vdyIsICJzdGFydE9mWWVzdGVyZGF5IiwgIm9wdGlvbnMiLCAibm93IiwgImNvbnN0cnVjdE5vdyIsICJ5ZWFyIiwgIm1vbnRoIiwgImRheSIsICJkYXRlIiwgInN0YXJ0T2ZZZXN0ZXJkYXlfZGVmYXVsdCIsICJpbml0X3N0YXJ0T2ZZZXN0ZXJkYXkiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdHJ1Y3ROb3ciLCAic3ViTW9udGhzIiwgImRhdGUiLCAiYW1vdW50IiwgIm9wdGlvbnMiLCAiYWRkTW9udGhzIiwgInN1Yk1vbnRoc19kZWZhdWx0IiwgImluaXRfc3ViTW9udGhzIiwgIl9fZXNtTWluIiwgImluaXRfYWRkTW9udGhzIiwgInN1YiIsICJkYXRlIiwgImR1cmF0aW9uIiwgIm9wdGlvbnMiLCAieWVhcnMiLCAibW9udGhzIiwgIndlZWtzIiwgImRheXMiLCAiaG91cnMiLCAibWludXRlcyIsICJzZWNvbmRzIiwgIndpdGhvdXRNb250aHMiLCAic3ViTW9udGhzIiwgIndpdGhvdXREYXlzIiwgInN1YkRheXMiLCAibWludXRlc1RvU3ViIiwgIm1zVG9TdWIiLCAiY29uc3RydWN0RnJvbSIsICJzdWJfZGVmYXVsdCIsICJpbml0X3N1YiIsICJfX2VzbU1pbiIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9zdWJEYXlzIiwgImluaXRfc3ViTW9udGhzIiwgInN1YkJ1c2luZXNzRGF5cyIsICJkYXRlIiwgImFtb3VudCIsICJvcHRpb25zIiwgImFkZEJ1c2luZXNzRGF5cyIsICJzdWJCdXNpbmVzc0RheXNfZGVmYXVsdCIsICJpbml0X3N1YkJ1c2luZXNzRGF5cyIsICJfX2VzbU1pbiIsICJpbml0X2FkZEJ1c2luZXNzRGF5cyIsICJzdWJIb3VycyIsICJkYXRlIiwgImFtb3VudCIsICJvcHRpb25zIiwgImFkZEhvdXJzIiwgInN1YkhvdXJzX2RlZmF1bHQiLCAiaW5pdF9zdWJIb3VycyIsICJfX2VzbU1pbiIsICJpbml0X2FkZEhvdXJzIiwgInN1Yk1pbGxpc2Vjb25kcyIsICJkYXRlIiwgImFtb3VudCIsICJvcHRpb25zIiwgImFkZE1pbGxpc2Vjb25kcyIsICJzdWJNaWxsaXNlY29uZHNfZGVmYXVsdCIsICJpbml0X3N1Yk1pbGxpc2Vjb25kcyIsICJfX2VzbU1pbiIsICJpbml0X2FkZE1pbGxpc2Vjb25kcyIsICJzdWJNaW51dGVzIiwgImRhdGUiLCAiYW1vdW50IiwgIm9wdGlvbnMiLCAiYWRkTWludXRlcyIsICJzdWJNaW51dGVzX2RlZmF1bHQiLCAiaW5pdF9zdWJNaW51dGVzIiwgIl9fZXNtTWluIiwgImluaXRfYWRkTWludXRlcyIsICJzdWJRdWFydGVycyIsICJkYXRlIiwgImFtb3VudCIsICJvcHRpb25zIiwgImFkZFF1YXJ0ZXJzIiwgInN1YlF1YXJ0ZXJzX2RlZmF1bHQiLCAiaW5pdF9zdWJRdWFydGVycyIsICJfX2VzbU1pbiIsICJpbml0X2FkZFF1YXJ0ZXJzIiwgInN1YlNlY29uZHMiLCAiZGF0ZSIsICJhbW91bnQiLCAib3B0aW9ucyIsICJhZGRTZWNvbmRzIiwgInN1YlNlY29uZHNfZGVmYXVsdCIsICJpbml0X3N1YlNlY29uZHMiLCAiX19lc21NaW4iLCAiaW5pdF9hZGRTZWNvbmRzIiwgInN1YldlZWtzIiwgImRhdGUiLCAiYW1vdW50IiwgIm9wdGlvbnMiLCAiYWRkV2Vla3MiLCAic3ViV2Vla3NfZGVmYXVsdCIsICJpbml0X3N1YldlZWtzIiwgIl9fZXNtTWluIiwgImluaXRfYWRkV2Vla3MiLCAic3ViWWVhcnMiLCAiZGF0ZSIsICJhbW91bnQiLCAib3B0aW9ucyIsICJhZGRZZWFycyIsICJzdWJZZWFyc19kZWZhdWx0IiwgImluaXRfc3ViWWVhcnMiLCAiX19lc21NaW4iLCAiaW5pdF9hZGRZZWFycyIsICJ3ZWVrc1RvRGF5cyIsICJ3ZWVrcyIsICJ3ZWVrc1RvRGF5c19kZWZhdWx0IiwgImluaXRfd2Vla3NUb0RheXMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAieWVhcnNUb0RheXMiLCAieWVhcnMiLCAieWVhcnNUb0RheXNfZGVmYXVsdCIsICJpbml0X3llYXJzVG9EYXlzIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgInllYXJzVG9Nb250aHMiLCAieWVhcnMiLCAibW9udGhzSW5ZZWFyIiwgInllYXJzVG9Nb250aHNfZGVmYXVsdCIsICJpbml0X3llYXJzVG9Nb250aHMiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAieWVhcnNUb1F1YXJ0ZXJzIiwgInllYXJzIiwgInF1YXJ0ZXJzSW5ZZWFyIiwgInllYXJzVG9RdWFydGVyc19kZWZhdWx0IiwgImluaXRfeWVhcnNUb1F1YXJ0ZXJzIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgImRhdGVfZm5zX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiYWRkIiwgImFkZEJ1c2luZXNzRGF5cyIsICJhZGREYXlzIiwgImFkZEhvdXJzIiwgImFkZElTT1dlZWtZZWFycyIsICJhZGRNaWxsaXNlY29uZHMiLCAiYWRkTWludXRlcyIsICJhZGRNb250aHMiLCAiYWRkUXVhcnRlcnMiLCAiYWRkU2Vjb25kcyIsICJhZGRXZWVrcyIsICJhZGRZZWFycyIsICJhcmVJbnRlcnZhbHNPdmVybGFwcGluZyIsICJjbGFtcCIsICJjbG9zZXN0SW5kZXhUbyIsICJjbG9zZXN0VG8iLCAiY29tcGFyZUFzYyIsICJjb21wYXJlRGVzYyIsICJjb25zdHJ1Y3RGcm9tIiwgImNvbnN0cnVjdE5vdyIsICJkYXlzVG9XZWVrcyIsICJkaWZmZXJlbmNlSW5CdXNpbmVzc0RheXMiLCAiZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla3MiLCAiZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMiLCAiZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyIsICJkaWZmZXJlbmNlSW5DYWxlbmRhcldlZWtzIiwgImRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnMiLCAiZGlmZmVyZW5jZUluRGF5cyIsICJkaWZmZXJlbmNlSW5Ib3VycyIsICJkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnMiLCAiZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzIiwgImRpZmZlcmVuY2VJbk1pbnV0ZXMiLCAiZGlmZmVyZW5jZUluTW9udGhzIiwgImRpZmZlcmVuY2VJblF1YXJ0ZXJzIiwgImRpZmZlcmVuY2VJblNlY29uZHMiLCAiZGlmZmVyZW5jZUluV2Vla3MiLCAiZGlmZmVyZW5jZUluWWVhcnMiLCAiZWFjaERheU9mSW50ZXJ2YWwiLCAiZWFjaEhvdXJPZkludGVydmFsIiwgImVhY2hNaW51dGVPZkludGVydmFsIiwgImVhY2hNb250aE9mSW50ZXJ2YWwiLCAiZWFjaFF1YXJ0ZXJPZkludGVydmFsIiwgImVhY2hXZWVrT2ZJbnRlcnZhbCIsICJlYWNoV2Vla2VuZE9mSW50ZXJ2YWwiLCAiZWFjaFdlZWtlbmRPZk1vbnRoIiwgImVhY2hXZWVrZW5kT2ZZZWFyIiwgImVhY2hZZWFyT2ZJbnRlcnZhbCIsICJlbmRPZkRheSIsICJlbmRPZkRlY2FkZSIsICJlbmRPZkhvdXIiLCAiZW5kT2ZJU09XZWVrIiwgImVuZE9mSVNPV2Vla1llYXIiLCAiZW5kT2ZNaW51dGUiLCAiZW5kT2ZNb250aCIsICJlbmRPZlF1YXJ0ZXIiLCAiZW5kT2ZTZWNvbmQiLCAiZW5kT2ZUb2RheSIsICJlbmRPZlRvbW9ycm93IiwgImVuZE9mV2VlayIsICJlbmRPZlllYXIiLCAiZW5kT2ZZZXN0ZXJkYXkiLCAiZm9ybWF0IiwgImZvcm1hdERpc3RhbmNlIiwgImZvcm1hdERpc3RhbmNlU3RyaWN0IiwgImZvcm1hdERpc3RhbmNlVG9Ob3ciLCAiZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdCIsICJmb3JtYXREdXJhdGlvbiIsICJmb3JtYXRJU08iLCAiZm9ybWF0SVNPOTA3NSIsICJmb3JtYXRJU09EdXJhdGlvbiIsICJmb3JtYXRSRkMzMzM5IiwgImZvcm1hdFJGQzcyMzEiLCAiZm9ybWF0UmVsYXRpdmUiLCAiZm9ybWF0dGVycyIsICJmcm9tVW5peFRpbWUiLCAiZ2V0RGF0ZSIsICJnZXREYXkiLCAiZ2V0RGF5T2ZZZWFyIiwgImdldERheXNJbk1vbnRoIiwgImdldERheXNJblllYXIiLCAiZ2V0RGVjYWRlIiwgImdldERlZmF1bHRPcHRpb25zIiwgImdldEhvdXJzIiwgImdldElTT0RheSIsICJnZXRJU09XZWVrIiwgImdldElTT1dlZWtZZWFyIiwgImdldElTT1dlZWtzSW5ZZWFyIiwgImdldE1pbGxpc2Vjb25kcyIsICJnZXRNaW51dGVzIiwgImdldE1vbnRoIiwgImdldE92ZXJsYXBwaW5nRGF5c0luSW50ZXJ2YWxzIiwgImdldFF1YXJ0ZXIiLCAiZ2V0U2Vjb25kcyIsICJnZXRUaW1lIiwgImdldFVuaXhUaW1lIiwgImdldFdlZWsiLCAiZ2V0V2Vla09mTW9udGgiLCAiZ2V0V2Vla1llYXIiLCAiZ2V0V2Vla3NJbk1vbnRoIiwgImdldFllYXIiLCAiaG91cnNUb01pbGxpc2Vjb25kcyIsICJob3Vyc1RvTWludXRlcyIsICJob3Vyc1RvU2Vjb25kcyIsICJpbnRlcnZhbCIsICJpbnRlcnZhbFRvRHVyYXRpb24iLCAiaW50bEZvcm1hdCIsICJpbnRsRm9ybWF0RGlzdGFuY2UiLCAiaXNBZnRlciIsICJpc0JlZm9yZSIsICJpc0RhdGUiLCAiaXNFcXVhbCIsICJpc0V4aXN0cyIsICJpc0ZpcnN0RGF5T2ZNb250aCIsICJpc0ZyaWRheSIsICJpc0Z1dHVyZSIsICJpc0xhc3REYXlPZk1vbnRoIiwgImlzTGVhcFllYXIiLCAiaXNNYXRjaCIsICJpc01vbmRheSIsICJpc1Bhc3QiLCAiaXNTYW1lRGF5IiwgImlzU2FtZUhvdXIiLCAiaXNTYW1lSVNPV2VlayIsICJpc1NhbWVJU09XZWVrWWVhciIsICJpc1NhbWVNaW51dGUiLCAiaXNTYW1lTW9udGgiLCAiaXNTYW1lUXVhcnRlciIsICJpc1NhbWVTZWNvbmQiLCAiaXNTYW1lV2VlayIsICJpc1NhbWVZZWFyIiwgImlzU2F0dXJkYXkiLCAiaXNTdW5kYXkiLCAiaXNUaGlzSG91ciIsICJpc1RoaXNJU09XZWVrIiwgImlzVGhpc01pbnV0ZSIsICJpc1RoaXNNb250aCIsICJpc1RoaXNRdWFydGVyIiwgImlzVGhpc1NlY29uZCIsICJpc1RoaXNXZWVrIiwgImlzVGhpc1llYXIiLCAiaXNUaHVyc2RheSIsICJpc1RvZGF5IiwgImlzVG9tb3Jyb3ciLCAiaXNUdWVzZGF5IiwgImlzVmFsaWQiLCAiaXNXZWRuZXNkYXkiLCAiaXNXZWVrZW5kIiwgImlzV2l0aGluSW50ZXJ2YWwiLCAiaXNZZXN0ZXJkYXkiLCAibGFzdERheU9mRGVjYWRlIiwgImxhc3REYXlPZklTT1dlZWsiLCAibGFzdERheU9mSVNPV2Vla1llYXIiLCAibGFzdERheU9mTW9udGgiLCAibGFzdERheU9mUXVhcnRlciIsICJsYXN0RGF5T2ZXZWVrIiwgImxhc3REYXlPZlllYXIiLCAibGlnaHRGb3JtYXQiLCAibGlnaHRGb3JtYXR0ZXJzIiwgImxvbmdGb3JtYXR0ZXJzIiwgIm1heCIsICJtaWxsaXNlY29uZHMiLCAibWlsbGlzZWNvbmRzVG9Ib3VycyIsICJtaWxsaXNlY29uZHNUb01pbnV0ZXMiLCAibWlsbGlzZWNvbmRzVG9TZWNvbmRzIiwgIm1pbiIsICJtaW51dGVzVG9Ib3VycyIsICJtaW51dGVzVG9NaWxsaXNlY29uZHMiLCAibWludXRlc1RvU2Vjb25kcyIsICJtb250aHNUb1F1YXJ0ZXJzIiwgIm1vbnRoc1RvWWVhcnMiLCAibmV4dERheSIsICJuZXh0RnJpZGF5IiwgIm5leHRNb25kYXkiLCAibmV4dFNhdHVyZGF5IiwgIm5leHRTdW5kYXkiLCAibmV4dFRodXJzZGF5IiwgIm5leHRUdWVzZGF5IiwgIm5leHRXZWRuZXNkYXkiLCAicGFyc2UiLCAicGFyc2VJU08iLCAicGFyc2VKU09OIiwgInBhcnNlcnMiLCAicHJldmlvdXNEYXkiLCAicHJldmlvdXNGcmlkYXkiLCAicHJldmlvdXNNb25kYXkiLCAicHJldmlvdXNTYXR1cmRheSIsICJwcmV2aW91c1N1bmRheSIsICJwcmV2aW91c1RodXJzZGF5IiwgInByZXZpb3VzVHVlc2RheSIsICJwcmV2aW91c1dlZG5lc2RheSIsICJxdWFydGVyc1RvTW9udGhzIiwgInF1YXJ0ZXJzVG9ZZWFycyIsICJyb3VuZFRvTmVhcmVzdEhvdXJzIiwgInJvdW5kVG9OZWFyZXN0TWludXRlcyIsICJzZWNvbmRzVG9Ib3VycyIsICJzZWNvbmRzVG9NaWxsaXNlY29uZHMiLCAic2Vjb25kc1RvTWludXRlcyIsICJzZXQiLCAic2V0RGF0ZSIsICJzZXREYXkiLCAic2V0RGF5T2ZZZWFyIiwgInNldERlZmF1bHRPcHRpb25zIiwgInNldEhvdXJzIiwgInNldElTT0RheSIsICJzZXRJU09XZWVrIiwgInNldElTT1dlZWtZZWFyIiwgInNldE1pbGxpc2Vjb25kcyIsICJzZXRNaW51dGVzIiwgInNldE1vbnRoIiwgInNldFF1YXJ0ZXIiLCAic2V0U2Vjb25kcyIsICJzZXRXZWVrIiwgInNldFdlZWtZZWFyIiwgInNldFllYXIiLCAic3RhcnRPZkRheSIsICJzdGFydE9mRGVjYWRlIiwgInN0YXJ0T2ZIb3VyIiwgInN0YXJ0T2ZJU09XZWVrIiwgInN0YXJ0T2ZJU09XZWVrWWVhciIsICJzdGFydE9mTWludXRlIiwgInN0YXJ0T2ZNb250aCIsICJzdGFydE9mUXVhcnRlciIsICJzdGFydE9mU2Vjb25kIiwgInN0YXJ0T2ZUb2RheSIsICJzdGFydE9mVG9tb3Jyb3ciLCAic3RhcnRPZldlZWsiLCAic3RhcnRPZldlZWtZZWFyIiwgInN0YXJ0T2ZZZWFyIiwgInN0YXJ0T2ZZZXN0ZXJkYXkiLCAic3ViIiwgInN1YkJ1c2luZXNzRGF5cyIsICJzdWJEYXlzIiwgInN1YkhvdXJzIiwgInN1YklTT1dlZWtZZWFycyIsICJzdWJNaWxsaXNlY29uZHMiLCAic3ViTWludXRlcyIsICJzdWJNb250aHMiLCAic3ViUXVhcnRlcnMiLCAic3ViU2Vjb25kcyIsICJzdWJXZWVrcyIsICJzdWJZZWFycyIsICJ0b0RhdGUiLCAidHJhbnNwb3NlIiwgIndlZWtzVG9EYXlzIiwgInllYXJzVG9EYXlzIiwgInllYXJzVG9Nb250aHMiLCAieWVhcnNUb1F1YXJ0ZXJzIiwgImluaXRfZGF0ZV9mbnMiLCAiX19lc21NaW4iLCAiaW5pdF9hZGQiLCAiaW5pdF9hZGRCdXNpbmVzc0RheXMiLCAiaW5pdF9hZGREYXlzIiwgImluaXRfYWRkSG91cnMiLCAiaW5pdF9hZGRJU09XZWVrWWVhcnMiLCAiaW5pdF9hZGRNaWxsaXNlY29uZHMiLCAiaW5pdF9hZGRNaW51dGVzIiwgImluaXRfYWRkTW9udGhzIiwgImluaXRfYWRkUXVhcnRlcnMiLCAiaW5pdF9hZGRTZWNvbmRzIiwgImluaXRfYWRkV2Vla3MiLCAiaW5pdF9hZGRZZWFycyIsICJpbml0X2FyZUludGVydmFsc092ZXJsYXBwaW5nIiwgImluaXRfY2xhbXAiLCAiaW5pdF9jbG9zZXN0SW5kZXhUbyIsICJpbml0X2Nsb3Nlc3RUbyIsICJpbml0X2NvbXBhcmVBc2MiLCAiaW5pdF9jb21wYXJlRGVzYyIsICJpbml0X2NvbnN0cnVjdEZyb20iLCAiaW5pdF9jb25zdHJ1Y3ROb3ciLCAiaW5pdF9kYXlzVG9XZWVrcyIsICJpbml0X2RpZmZlcmVuY2VJbkJ1c2luZXNzRGF5cyIsICJpbml0X2RpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cyIsICJpbml0X2RpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzIiwgImluaXRfZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrcyIsICJpbml0X2RpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzIiwgImluaXRfZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyIsICJpbml0X2RpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3MiLCAiaW5pdF9kaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzIiwgImluaXRfZGlmZmVyZW5jZUluRGF5cyIsICJpbml0X2RpZmZlcmVuY2VJbkhvdXJzIiwgImluaXRfZGlmZmVyZW5jZUluSVNPV2Vla1llYXJzIiwgImluaXRfZGlmZmVyZW5jZUluTWlsbGlzZWNvbmRzIiwgImluaXRfZGlmZmVyZW5jZUluTWludXRlcyIsICJpbml0X2RpZmZlcmVuY2VJbk1vbnRocyIsICJpbml0X2RpZmZlcmVuY2VJblF1YXJ0ZXJzIiwgImluaXRfZGlmZmVyZW5jZUluU2Vjb25kcyIsICJpbml0X2RpZmZlcmVuY2VJbldlZWtzIiwgImluaXRfZGlmZmVyZW5jZUluWWVhcnMiLCAiaW5pdF9lYWNoRGF5T2ZJbnRlcnZhbCIsICJpbml0X2VhY2hIb3VyT2ZJbnRlcnZhbCIsICJpbml0X2VhY2hNaW51dGVPZkludGVydmFsIiwgImluaXRfZWFjaE1vbnRoT2ZJbnRlcnZhbCIsICJpbml0X2VhY2hRdWFydGVyT2ZJbnRlcnZhbCIsICJpbml0X2VhY2hXZWVrT2ZJbnRlcnZhbCIsICJpbml0X2VhY2hXZWVrZW5kT2ZJbnRlcnZhbCIsICJpbml0X2VhY2hXZWVrZW5kT2ZNb250aCIsICJpbml0X2VhY2hXZWVrZW5kT2ZZZWFyIiwgImluaXRfZWFjaFllYXJPZkludGVydmFsIiwgImluaXRfZW5kT2ZEYXkiLCAiaW5pdF9lbmRPZkRlY2FkZSIsICJpbml0X2VuZE9mSG91ciIsICJpbml0X2VuZE9mSVNPV2VlayIsICJpbml0X2VuZE9mSVNPV2Vla1llYXIiLCAiaW5pdF9lbmRPZk1pbnV0ZSIsICJpbml0X2VuZE9mTW9udGgiLCAiaW5pdF9lbmRPZlF1YXJ0ZXIiLCAiaW5pdF9lbmRPZlNlY29uZCIsICJpbml0X2VuZE9mVG9kYXkiLCAiaW5pdF9lbmRPZlRvbW9ycm93IiwgImluaXRfZW5kT2ZXZWVrIiwgImluaXRfZW5kT2ZZZWFyIiwgImluaXRfZW5kT2ZZZXN0ZXJkYXkiLCAiaW5pdF9mb3JtYXQiLCAiaW5pdF9mb3JtYXREaXN0YW5jZSIsICJpbml0X2Zvcm1hdERpc3RhbmNlU3RyaWN0IiwgImluaXRfZm9ybWF0RGlzdGFuY2VUb05vdyIsICJpbml0X2Zvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3QiLCAiaW5pdF9mb3JtYXREdXJhdGlvbiIsICJpbml0X2Zvcm1hdElTTyIsICJpbml0X2Zvcm1hdElTTzkwNzUiLCAiaW5pdF9mb3JtYXRJU09EdXJhdGlvbiIsICJpbml0X2Zvcm1hdFJGQzMzMzkiLCAiaW5pdF9mb3JtYXRSRkM3MjMxIiwgImluaXRfZm9ybWF0UmVsYXRpdmUiLCAiaW5pdF9mcm9tVW5peFRpbWUiLCAiaW5pdF9nZXREYXRlIiwgImluaXRfZ2V0RGF5IiwgImluaXRfZ2V0RGF5T2ZZZWFyIiwgImluaXRfZ2V0RGF5c0luTW9udGgiLCAiaW5pdF9nZXREYXlzSW5ZZWFyIiwgImluaXRfZ2V0RGVjYWRlIiwgImluaXRfZ2V0RGVmYXVsdE9wdGlvbnMiLCAiaW5pdF9nZXRIb3VycyIsICJpbml0X2dldElTT0RheSIsICJpbml0X2dldElTT1dlZWsiLCAiaW5pdF9nZXRJU09XZWVrWWVhciIsICJpbml0X2dldElTT1dlZWtzSW5ZZWFyIiwgImluaXRfZ2V0TWlsbGlzZWNvbmRzIiwgImluaXRfZ2V0TWludXRlcyIsICJpbml0X2dldE1vbnRoIiwgImluaXRfZ2V0T3ZlcmxhcHBpbmdEYXlzSW5JbnRlcnZhbHMiLCAiaW5pdF9nZXRRdWFydGVyIiwgImluaXRfZ2V0U2Vjb25kcyIsICJpbml0X2dldFRpbWUiLCAiaW5pdF9nZXRVbml4VGltZSIsICJpbml0X2dldFdlZWsiLCAiaW5pdF9nZXRXZWVrT2ZNb250aCIsICJpbml0X2dldFdlZWtZZWFyIiwgImluaXRfZ2V0V2Vla3NJbk1vbnRoIiwgImluaXRfZ2V0WWVhciIsICJpbml0X2hvdXJzVG9NaWxsaXNlY29uZHMiLCAiaW5pdF9ob3Vyc1RvTWludXRlcyIsICJpbml0X2hvdXJzVG9TZWNvbmRzIiwgImluaXRfaW50ZXJ2YWwiLCAiaW5pdF9pbnRlcnZhbFRvRHVyYXRpb24iLCAiaW5pdF9pbnRsRm9ybWF0IiwgImluaXRfaW50bEZvcm1hdERpc3RhbmNlIiwgImluaXRfaXNBZnRlciIsICJpbml0X2lzQmVmb3JlIiwgImluaXRfaXNEYXRlIiwgImluaXRfaXNFcXVhbCIsICJpbml0X2lzRXhpc3RzIiwgImluaXRfaXNGaXJzdERheU9mTW9udGgiLCAiaW5pdF9pc0ZyaWRheSIsICJpbml0X2lzRnV0dXJlIiwgImluaXRfaXNMYXN0RGF5T2ZNb250aCIsICJpbml0X2lzTGVhcFllYXIiLCAiaW5pdF9pc01hdGNoIiwgImluaXRfaXNNb25kYXkiLCAiaW5pdF9pc1Bhc3QiLCAiaW5pdF9pc1NhbWVEYXkiLCAiaW5pdF9pc1NhbWVIb3VyIiwgImluaXRfaXNTYW1lSVNPV2VlayIsICJpbml0X2lzU2FtZUlTT1dlZWtZZWFyIiwgImluaXRfaXNTYW1lTWludXRlIiwgImluaXRfaXNTYW1lTW9udGgiLCAiaW5pdF9pc1NhbWVRdWFydGVyIiwgImluaXRfaXNTYW1lU2Vjb25kIiwgImluaXRfaXNTYW1lV2VlayIsICJpbml0X2lzU2FtZVllYXIiLCAiaW5pdF9pc1NhdHVyZGF5IiwgImluaXRfaXNTdW5kYXkiLCAiaW5pdF9pc1RoaXNIb3VyIiwgImluaXRfaXNUaGlzSVNPV2VlayIsICJpbml0X2lzVGhpc01pbnV0ZSIsICJpbml0X2lzVGhpc01vbnRoIiwgImluaXRfaXNUaGlzUXVhcnRlciIsICJpbml0X2lzVGhpc1NlY29uZCIsICJpbml0X2lzVGhpc1dlZWsiLCAiaW5pdF9pc1RoaXNZZWFyIiwgImluaXRfaXNUaHVyc2RheSIsICJpbml0X2lzVG9kYXkiLCAiaW5pdF9pc1RvbW9ycm93IiwgImluaXRfaXNUdWVzZGF5IiwgImluaXRfaXNWYWxpZCIsICJpbml0X2lzV2VkbmVzZGF5IiwgImluaXRfaXNXZWVrZW5kIiwgImluaXRfaXNXaXRoaW5JbnRlcnZhbCIsICJpbml0X2lzWWVzdGVyZGF5IiwgImluaXRfbGFzdERheU9mRGVjYWRlIiwgImluaXRfbGFzdERheU9mSVNPV2VlayIsICJpbml0X2xhc3REYXlPZklTT1dlZWtZZWFyIiwgImluaXRfbGFzdERheU9mTW9udGgiLCAiaW5pdF9sYXN0RGF5T2ZRdWFydGVyIiwgImluaXRfbGFzdERheU9mV2VlayIsICJpbml0X2xhc3REYXlPZlllYXIiLCAiaW5pdF9saWdodEZvcm1hdCIsICJpbml0X21heCIsICJpbml0X21pbGxpc2Vjb25kcyIsICJpbml0X21pbGxpc2Vjb25kc1RvSG91cnMiLCAiaW5pdF9taWxsaXNlY29uZHNUb01pbnV0ZXMiLCAiaW5pdF9taWxsaXNlY29uZHNUb1NlY29uZHMiLCAiaW5pdF9taW4iLCAiaW5pdF9taW51dGVzVG9Ib3VycyIsICJpbml0X21pbnV0ZXNUb01pbGxpc2Vjb25kcyIsICJpbml0X21pbnV0ZXNUb1NlY29uZHMiLCAiaW5pdF9tb250aHNUb1F1YXJ0ZXJzIiwgImluaXRfbW9udGhzVG9ZZWFycyIsICJpbml0X25leHREYXkiLCAiaW5pdF9uZXh0RnJpZGF5IiwgImluaXRfbmV4dE1vbmRheSIsICJpbml0X25leHRTYXR1cmRheSIsICJpbml0X25leHRTdW5kYXkiLCAiaW5pdF9uZXh0VGh1cnNkYXkiLCAiaW5pdF9uZXh0VHVlc2RheSIsICJpbml0X25leHRXZWRuZXNkYXkiLCAiaW5pdF9wYXJzZSIsICJpbml0X3BhcnNlSVNPIiwgImluaXRfcGFyc2VKU09OIiwgImluaXRfcHJldmlvdXNEYXkiLCAiaW5pdF9wcmV2aW91c0ZyaWRheSIsICJpbml0X3ByZXZpb3VzTW9uZGF5IiwgImluaXRfcHJldmlvdXNTYXR1cmRheSIsICJpbml0X3ByZXZpb3VzU3VuZGF5IiwgImluaXRfcHJldmlvdXNUaHVyc2RheSIsICJpbml0X3ByZXZpb3VzVHVlc2RheSIsICJpbml0X3ByZXZpb3VzV2VkbmVzZGF5IiwgImluaXRfcXVhcnRlcnNUb01vbnRocyIsICJpbml0X3F1YXJ0ZXJzVG9ZZWFycyIsICJpbml0X3JvdW5kVG9OZWFyZXN0SG91cnMiLCAiaW5pdF9yb3VuZFRvTmVhcmVzdE1pbnV0ZXMiLCAiaW5pdF9zZWNvbmRzVG9Ib3VycyIsICJpbml0X3NlY29uZHNUb01pbGxpc2Vjb25kcyIsICJpbml0X3NlY29uZHNUb01pbnV0ZXMiLCAiaW5pdF9zZXQiLCAiaW5pdF9zZXREYXRlIiwgImluaXRfc2V0RGF5IiwgImluaXRfc2V0RGF5T2ZZZWFyIiwgImluaXRfc2V0RGVmYXVsdE9wdGlvbnMiLCAiaW5pdF9zZXRIb3VycyIsICJpbml0X3NldElTT0RheSIsICJpbml0X3NldElTT1dlZWsiLCAiaW5pdF9zZXRJU09XZWVrWWVhciIsICJpbml0X3NldE1pbGxpc2Vjb25kcyIsICJpbml0X3NldE1pbnV0ZXMiLCAiaW5pdF9zZXRNb250aCIsICJpbml0X3NldFF1YXJ0ZXIiLCAiaW5pdF9zZXRTZWNvbmRzIiwgImluaXRfc2V0V2VlayIsICJpbml0X3NldFdlZWtZZWFyIiwgImluaXRfc2V0WWVhciIsICJpbml0X3N0YXJ0T2ZEYXkiLCAiaW5pdF9zdGFydE9mRGVjYWRlIiwgImluaXRfc3RhcnRPZkhvdXIiLCAiaW5pdF9zdGFydE9mSVNPV2VlayIsICJpbml0X3N0YXJ0T2ZJU09XZWVrWWVhciIsICJpbml0X3N0YXJ0T2ZNaW51dGUiLCAiaW5pdF9zdGFydE9mTW9udGgiLCAiaW5pdF9zdGFydE9mUXVhcnRlciIsICJpbml0X3N0YXJ0T2ZTZWNvbmQiLCAiaW5pdF9zdGFydE9mVG9kYXkiLCAiaW5pdF9zdGFydE9mVG9tb3Jyb3ciLCAiaW5pdF9zdGFydE9mV2VlayIsICJpbml0X3N0YXJ0T2ZXZWVrWWVhciIsICJpbml0X3N0YXJ0T2ZZZWFyIiwgImluaXRfc3RhcnRPZlllc3RlcmRheSIsICJpbml0X3N1YiIsICJpbml0X3N1YkJ1c2luZXNzRGF5cyIsICJpbml0X3N1YkRheXMiLCAiaW5pdF9zdWJIb3VycyIsICJpbml0X3N1YklTT1dlZWtZZWFycyIsICJpbml0X3N1Yk1pbGxpc2Vjb25kcyIsICJpbml0X3N1Yk1pbnV0ZXMiLCAiaW5pdF9zdWJNb250aHMiLCAiaW5pdF9zdWJRdWFydGVycyIsICJpbml0X3N1YlNlY29uZHMiLCAiaW5pdF9zdWJXZWVrcyIsICJpbml0X3N1YlllYXJzIiwgImluaXRfdG9EYXRlIiwgImluaXRfdHJhbnNwb3NlIiwgImluaXRfd2Vla3NUb0RheXMiLCAiaW5pdF95ZWFyc1RvRGF5cyIsICJpbml0X3llYXJzVG9Nb250aHMiLCAiaW5pdF95ZWFyc1RvUXVhcnRlcnMiLCAicmVxdWlyZV9kYXlqc19taW4iLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJuIiwgInMiLCAidSIsICJhIiwgIm8iLCAiZiIsICJoIiwgImQiLCAibCIsICIkIiwgInkiLCAiTSIsICJ0IiwgImUiLCAibSIsICJyIiwgInYiLCAiaSIsICJnIiwgIkQiLCAicCIsICJTIiwgIl8iLCAidyIsICJPIiwgImIiLCAiYyIsICJrIiwgInJlcXVpcmVfaXNUb2RheSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImUiLCAibyIsICJ0IiwgInBhcnNlTnVtYmVyIiwgIm1pbGxpc2Vjb25kcyIsICJ0b1plcm9JZkluZmluaXR5IiwgInBhcnNlQmlnaW50IiwgInBhcnNlTWlsbGlzZWNvbmRzIiwgImluaXRfcGFyc2VfbXMiLCAiX19lc21NaW4iLCAidmFsdWUiLCAicHJldHR5TWlsbGlzZWNvbmRzIiwgIm1pbGxpc2Vjb25kcyIsICJvcHRpb25zIiwgImlzQmlnSW50IiwgInNpZ24iLCAicmVzdWx0IiwgImZsb29yRGVjaW1hbHMiLCAidmFsdWUiLCAiZGVjaW1hbERpZ2l0cyIsICJmbG9vcmVkSW50ZXJpbVZhbHVlIiwgIlNFQ09ORF9ST1VORElOR19FUFNJTE9OIiwgImFkZCIsICJsb25nIiwgInNob3J0IiwgInZhbHVlU3RyaW5nIiwgImlzWmVybyIsICJ3aG9sZURpZ2l0cyIsICJtaW5MZW5ndGgiLCAicGx1cmFsaXplIiwgInBhcnNlZCIsICJwYXJzZU1pbGxpc2Vjb25kcyIsICJkYXlzIiwgInNlY29uZHMiLCAibWljcm9zZWNvbmRzIiwgIm5hbm9zZWNvbmRzIiwgIm1pbGxpc2Vjb25kc0FuZEJlbG93IiwgIm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHMiLCAicm91bmRlZE1pbGxpc2Vjb25kcyIsICJtaWxsaXNlY29uZHNTdHJpbmciLCAiT05FX0RBWV9JTl9NSUxMSVNFQ09ORFMiLCAic2Vjb25kc0RlY2ltYWxEaWdpdHMiLCAic2Vjb25kc0ZpeGVkIiwgInNlY29uZHNTdHJpbmciLCAic2VwYXJhdG9yIiwgImluaXRfcHJldHR5X21zIiwgIl9fZXNtTWluIiwgImluaXRfcGFyc2VfbXMiLCAid29yZCIsICJjb3VudCIsICJpbXBvcnRfZGF5anMiLCAiaW1wb3J0X2lzVG9kYXkiLCAiaW5pdF9zbWFydHRpbWVfcGx1Z2lucyIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9jcm9uZXIiLCAiaW5pdF9kYXRlX2ZucyIsICJpbml0X3ByZXR0eV9tcyIsICJkYXlqcyIsICJpc1RvZGF5IiwgIkNyb25QYXJzZXIiLCAiaW5pdF9zbWFydHRpbWVfY2xhc3Nlc19jcm9ucGFyc2VyIiwgIl9fZXNtTWluIiwgImluaXRfc21hcnR0aW1lX3BsdWdpbnMiLCAiY3JvbkV4cHJlc3Npb25BcmciLCAiY3JvblBhcnQiLCAic3RhcnRWYWx1ZSIsICJtb2R1bG9BcmciLCAiZXZlcnkiLCAiZmluZEV2ZW5NYXRjaCIsICJyZWN1cnNpb25TdGFydEFyZyIsICJjcm9uQXJyYXkiLCAic2Vjb25kRXhwcmVzc2lvbiIsICJtaW51dGVFeHByZXNzaW9uIiwgImhvdXJFeHByZXNzaW9uIiwgImRheUV4cHJlc3Npb24iLCAibW9udGhFeHByZXNzaW9uIiwgInllYXJFeHByZXNzaW9uIiwgImN1cnJlbnREYXRlIiwgImN1cnJlbnRTZWNvbmQiLCAiY3VycmVudE1pbnV0ZSIsICJjdXJyZW50SG91ciIsICJjdXJyZW50RGF5IiwgImN1cnJlbnRNb250aCIsICJjdXJyZW50WWVhciIsICJ0YXJnZXRTZWNvbmQiLCAidGFyZ2V0TWludXRlIiwgInRhcmdldEhvdXIiLCAidGFyZ2V0RGF5IiwgInRhcmdldE1vbnRoIiwgInRhcmdldFllYXIiLCAiQ3JvbkpvYiIsICJpbml0X3NtYXJ0dGltZV9jbGFzc2VzX2Nyb25qb2IiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHRpbWVfcGx1Z2lucyIsICJpbml0X3NtYXJ0dGltZV9jbGFzc2VzX2Nyb25tYW5hZ2VyIiwgImluaXRfc21hcnR0aW1lX2NsYXNzZXNfY3JvbnBhcnNlciIsICJjcm9uTWFuYWdlciIsICJjcm9uRXhwcmVzc2lvbkFyZyIsICJqb2JGdW5jdGlvbiIsICJjcm9uZXJfZXhwb3J0cyIsICJtYXliZVByb21pc2UiLCAiZSIsICJ1bml0cyIsICJnZXRNaWxsaVNlY29uZHNGcm9tVW5pdHMiLCAiZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nIiwgImdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZUFnb1RpbWUiLCAiaW5pdF9zbWFydHRpbWVfdW5pdHMiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHRpbWVfcGx1Z2lucyIsICJ0aW1lc0FyZyIsICJjb21iaW5hdGlvbkFyZyIsICJ0aW1lSW5NaWxsaXNlY29uZHMiLCAiYWRkTWlsbGlTZWNvbmRzIiwgIm1pbGxpU2Vjb25kc0FyZyIsICJwcmV0dHlNaWxsaXNlY29uZHMiLCAidGltZVN0YW1wQXJnIiwgImRhdGVfZm5zX2V4cG9ydHMiLCAiQ3Jvbk1hbmFnZXIiLCAiaW5pdF9zbWFydHRpbWVfY2xhc3Nlc19jcm9ubWFuYWdlciIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0dGltZV9wbHVnaW5zIiwgImluaXRfc21hcnR0aW1lX2NsYXNzZXNfY3JvbmpvYiIsICJpbml0X3NtYXJ0dGltZV91bml0cyIsICJkaXN0X3RzX2V4cG9ydHMiLCAiY3JvbklkZW50aWZpZXJBcmciLCAiY3JvbkZ1bmN0aW9uQXJnIiwgIm5ld0Nyb25Kb2IiLCAiQ3JvbkpvYiIsICJjcm9uam9iQXJnIiwgImNyb25Kb2IiLCAibmV4dFJ1bm5pbmdDcm9uam9iIiwgImdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZVN0cmluZyIsICJjcm9uIiwgIkV4dGVuZGVkRGF0ZSIsICJpbml0X3NtYXJ0dGltZV9jbGFzc2VzX2V4dGVuZGVkZGF0ZSIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0dGltZV9wbHVnaW5zIiwgImluaXRfc21hcnR0aW1lX3VuaXRzIiwgIl9FeHRlbmRlZERhdGUiLCAibWlsbGlTZWNvbmRzIiwgImRhdGVBcmciLCAiZXVyb3BlYW5EYXRlIiwgImRhdGVBcnJheSIsICJ1bml4TWlsbGkiLCAiZGF0ZVN0cmluZyIsICJkYXRlTWlsbGlzIiwgImV1cm9wZWFuRGF0ZUFyZyIsICJ0aW1lQXJnIiwgInpvbmVBcmciLCAic2xpY2VEYXRlIiwgImRhdGVUaW1lU3RyaW5nIiwgImRheWpzIiwgInVuaXRzIiwgIm1vbnRoc0FycmF5IiwgImRheXNBcnJheSIsICJmb3JtYXRBcmciLCAidW5pdEFyZ3MiLCAibWF4UGFzc2VkVW5peFRpbWUiLCAiZ2V0TWlsbGlTZWNvbmRzRnJvbVVuaXRzIiwgIkhydE1lYXN1cmVtZW50IiwgImluaXRfc21hcnR0aW1lX2NsYXNzZXNfaHJ0bWVhc3VyZW1lbnQiLCAiX19lc21NaW4iLCAiSW50ZXJ2YWwiLCAiaW5pdF9zbWFydHRpbWVfY2xhc3Nlc19pbnRlcnZhbCIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0dGltZV9wbHVnaW5zIiwgImludGVydmFsTWlsbGlzZW5jb25kc0FyZyIsICJzdGF0dXNBdXRoIiwgImRpc3RfdHNfZXhwb3J0cyIsICJmdW5jQXJnIiwgIlRpbWVTdGFtcCIsICJpbml0X3NtYXJ0dGltZV9jbGFzc2VzX3RpbWVzdGFtcCIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0dGltZV9wbHVnaW5zIiwgIl9UaW1lU3RhbXAiLCAibWlsbGlTZWNvbmRzQXJnIiwgInRpbWVTdGFtcEFyZyIsICJsb2NhbFRpbWVTdGFtcCIsICJjcmVhdG9yQXJnIiwgIlRpbWVTdGFtcEFyZyIsICJ0cmVzaG9sZFRpbWVBcmciLCAibWlsbGlzZWNvbmRBcmciLCAiY29tcGFyZUVwb2NoVGltZSIsICJjb21wYXJlVGltZVN0YW1wIiwgIlRpbWVyIiwgImluaXRfc21hcnR0aW1lX2NsYXNzZXNfdGltZXIiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHRpbWVfcGx1Z2lucyIsICJpbml0X3NtYXJ0dGltZV9jbGFzc2VzX3RpbWVzdGFtcCIsICJ0aW1lSW5NaWxsaXNlY29uZHNBcmciLCAiZGlzdF90c19leHBvcnRzIiwgIlRpbWVTdGFtcCIsICJkaXN0X3RzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiQ3JvbkpvYiIsICJDcm9uTWFuYWdlciIsICJFeHRlbmRlZERhdGUiLCAiSHJ0TWVhc3VyZW1lbnQiLCAiSW50ZXJ2YWwiLCAiVGltZVN0YW1wIiwgIlRpbWVyIiwgImdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZUFnb1RpbWUiLCAiZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nIiwgImdldE1pbGxpU2Vjb25kc0Zyb21Vbml0cyIsICJ1bml0cyIsICJpbml0X2Rpc3RfdHMiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHRpbWVfY2xhc3Nlc19jcm9ubWFuYWdlciIsICJpbml0X3NtYXJ0dGltZV9jbGFzc2VzX2Nyb25qb2IiLCAiaW5pdF9zbWFydHRpbWVfY2xhc3Nlc19leHRlbmRlZGRhdGUiLCAiaW5pdF9zbWFydHRpbWVfY2xhc3Nlc19ocnRtZWFzdXJlbWVudCIsICJpbml0X3NtYXJ0dGltZV9jbGFzc2VzX2ludGVydmFsIiwgImluaXRfc21hcnR0aW1lX2NsYXNzZXNfdGltZXIiLCAiaW5pdF9zbWFydHRpbWVfY2xhc3Nlc190aW1lc3RhbXAiLCAiaW5pdF9zbWFydHRpbWVfdW5pdHMiLCAicmVxdWlyZV9TeW1ib2xUcmVlTm9kZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInBhcmVudE5vZGUiLCAiaW5kZXgiLCAicmVxdWlyZV9UcmVlUG9zaXRpb24iLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJyZXF1aXJlX1RyZWVJdGVyYXRvciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlRSRUUiLCAiUk9PVCIsICJORVhUIiwgIklURVJBVEVfRlVOQyIsICJUcmVlSXRlcmF0b3IiLCAidHJlZSIsICJyb290IiwgImZpcnN0UmVzdWx0IiwgIml0ZXJhdGVGdW5jdGlvbiIsICJpdGVyYXRlRnVuYyIsICJ2YWx1ZSIsICJyZXF1aXJlX1N5bWJvbFRyZWUiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJTeW1ib2xUcmVlTm9kZSIsICJUcmVlUG9zaXRpb24iLCAiVHJlZUl0ZXJhdG9yIiwgInJldHVyblRydWUiLCAicmV2ZXJzZUFycmF5SW5kZXgiLCAiYXJyYXkiLCAicmV2ZXJzZUluZGV4IiwgIlN5bWJvbFRyZWUiLCAiZGVzY3JpcHRpb24iLCAib2JqZWN0IiwgIm5vZGUiLCAibGFzdENoaWxkIiwgImN1cnJlbnQiLCAib3B0aW9ucyIsICJ0cmVlUm9vdCIsICJwcmV2aW91c1NpYmxpbmciLCAiZmlyc3RDaGlsZCIsICJuZXh0U2libGluZyIsICJwYXJlbnQiLCAiZmlsdGVyIiwgInRoaXNBcmciLCAicGFyZW50Tm9kZSIsICJpbmRleCIsICJhbmNlc3RvciIsICJyb290IiwgInJldmVyc2UiLCAiY2hpbGQiLCAiY2hpbGROb2RlIiwgImN1cnJlbnRJbmRleCIsICJjYWNoZWRVcFRvTm9kZSIsICJsZWZ0IiwgInJpZ2h0IiwgImxlZnRBbmNlc3RvcnMiLCAibGVmdEFuY2VzdG9yIiwgInJpZ2h0QW5jZXN0b3JzIiwgInJpZ2h0QW5jZXN0b3IiLCAiY29tbW9uQW5jZXN0b3JJbmRleCIsICJhbmNlc3RvcnNNaW5MZW5ndGgiLCAiaSIsICJsZWZ0SW5kZXgiLCAicmVtb3ZlT2JqZWN0IiwgInJlbW92ZU5vZGUiLCAicHJldk5vZGUiLCAibmV4dE5vZGUiLCAicmVmZXJlbmNlT2JqZWN0IiwgIm5ld09iamVjdCIsICJyZWZlcmVuY2VOb2RlIiwgIm5ld05vZGUiLCAiaW1wb3J0X3N5bWJvbF90cmVlIiwgImluaXRfY2xhc3Nlc19wbHVnaW5zIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF90cyIsICJBc3luY0V4ZWN1dGlvblN0YWNrIiwgImluaXRfY2xhc3Nlc19hc3luY2V4ZWN1dGlvbnN0YWNrIiwgIl9fZXNtTWluIiwgImluaXRfY2xhc3Nlc19wbHVnaW5zIiwgImZ1bmNBcmciLCAidGltZW91dEFyZyIsICJleGVjdXRpb25EZWZlcnJlZCIsICJkaXN0X3RzX2V4cG9ydHMiLCAiZXhlY3V0aW9uU2xvdCIsICJjb25jdXJyZW5jeSIsICJjdXJyZW50U2xvdCIsICJub25FeGNsdXNpdmVTbG90cyIsICJzbG90IiwgInJlc3VsdCIsICJlcnJvciIsICJzbG90cyIsICJwcm9taXNlcyIsICJyZXNvbHZlIiwgIm5leHQiLCAiQmFja3ByZXNzdXJlZEFycmF5IiwgImluaXRfY2xhc3Nlc19iYWNrcHJlc3N1cmVkYXJyYXkiLCAiX19lc21NaW4iLCAiaW5pdF9jbGFzc2VzX3BsdWdpbnMiLCAiaGlnaFdhdGVyTWFyayIsICJkaXN0X3RzX2V4cG9ydHMiLCAiaXRlbSIsICJzcGFjZUF2YWlsYWJsZSIsICJyZXNvbHZlIiwgInN1YnNjcmlwdGlvbiIsICJGYXN0TWFwIiwgImluaXRfY2xhc3Nlc19mYXN0bWFwIiwgIl9fZXNtTWluIiwgImluaXRfY2xhc3Nlc19wbHVnaW5zIiwgIl9GYXN0TWFwIiwgImtleUFyZyIsICJvYmplY3RBcmciLCAib3B0aW9uc0FyZyIsICJyZW1vdmVkSXRlbSIsICJrZXlzIiwgImZhc3RNYXBBcmciLCAiY29uY2F0ZWRGYXN0bWFwIiwgImtleSIsICJmaW5kRnVuY3Rpb25BcmciLCAiaXRlbSIsICJ1bmkiLCAiT2JqZWN0TWFwIiwgImluaXRfY2xhc3Nlc19vYmplY3RtYXAiLCAiX19lc21NaW4iLCAiaW5pdF9jbGFzc2VzX3BsdWdpbnMiLCAiaW5pdF9jbGFzc2VzX2Zhc3RtYXAiLCAicHJlZml4IiwgImMiLCAiciIsICJfT2JqZWN0TWFwIiwgIkZhc3RNYXAiLCAiZGlzdF90c19leHBvcnRzIiwgInVuaXF1ZUtleUFyZyIsICJvYmplY3RBcmciLCAidW5pcXVlS2V5IiwgIm9iamVjdCIsICJrZXlBcmciLCAib2JqZWN0QXJyYXlBcmciLCAiaXRlbSIsICJmb3VuZEtleSIsICJmaW5kRnVuY3Rpb24iLCAiZm91bmRFbGVtZW50IiwgImZ1bmN0aW9uQXJnIiwgImtleXMiLCAia2V5VG9Vc2UiLCAicmVtb3ZlZEl0ZW0iLCAicmV0dXJuQXJyYXkiLCAicmVtb3ZlZE9iamVjdCIsICJvYmplY3RNYXBBcmciLCAiY29uY2F0dGVkT2JqZWN0TWFwIiwgIkludGVyZXN0IiwgImluaXRfY2xhc3Nlc19pbnRlcmVzdG1hcF9pbnRlcmVzdCIsICJfX2VzbU1pbiIsICJpbml0X2NsYXNzZXNfcGx1Z2lucyIsICJpbml0X2NsYXNzZXNfaW50ZXJlc3RtYXAiLCAib2JqZWN0QXJnIiwgImludGVyZXN0TWFwQXJnIiwgImludGVyZXN0QXJnIiwgImNvbXBhcmlzb25GdW5jQXJnIiwgIm9wdGlvbnNBcmciLCAiZGlzdF90c19leHBvcnRzIiwgIkludGVyZXN0TWFwIiwgImluaXRfY2xhc3Nlc19pbnRlcmVzdG1hcCIsICJfX2VzbU1pbiIsICJpbml0X2NsYXNzZXNfcGx1Z2lucyIsICJpbml0X2NsYXNzZXNfb2JqZWN0bWFwIiwgImluaXRfY2xhc3Nlc19pbnRlcmVzdG1hcF9pbnRlcmVzdCIsICJjb21wYXJpc29uRnVuY0FyZyIsICJvcHRpb25zQXJnIiwgIk9iamVjdE1hcCIsICJkaXN0X3RzX2V4cG9ydHMiLCAiaW50ZXJlc3RJZCIsICJkZWZhdWx0RnVsbGZpbGxtZW50QXJnIiwgImNvbXBhcmlzb25TdHJpbmciLCAicmV0dXJuSW50ZXJlc3QiLCAibmV3SW50ZXJlc3QiLCAiSW50ZXJlc3QiLCAiaW50ZXJlc3RFeGlzdHMiLCAiaW50ZXJlc3RBcmciLCAiaW50ZXJlc3RUb1JlbW92ZSIsICJpbnRlcmVzdEFyZzIiLCAib2JqZWN0QXJnIiwgImNvbXBhcmlzb25TdHJpbmdBcmciLCAiaW50ZXJlc3QiLCAid2FudGVkSW50ZXJlc3QiLCAiY29tcGFyYWJsZVN0cmluZyIsICJMaW1pdGVkQXJyYXkiLCAiaW5pdF9jbGFzc2VzX2xpbWl0ZWRhcnJheSIsICJfX2VzbU1pbiIsICJpbml0X2NsYXNzZXNfcGx1Z2lucyIsICJsaW1pdEFyZyIsICJvYmplY3RBcmciLCAib2JqZWN0QXJyYXlBcmciLCAic3VtIiwgImxvY2FsTnVtYmVyIiwgIkxvb3BUcmFja2VyIiwgImluaXRfY2xhc3Nlc19sb29wdHJhY2tlciIsICJfX2VzbU1pbiIsICJpbml0X2NsYXNzZXNfcGx1Z2lucyIsICJpbml0X2NsYXNzZXNfb2JqZWN0bWFwIiwgIk9iamVjdE1hcCIsICJvYmplY3RBcmciLCAiU3RyaW5nbWFwIiwgImluaXRfY2xhc3Nlc19zdHJpbmdtYXAiLCAiX19lc21NaW4iLCAiaW5pdF9jbGFzc2VzX3BsdWdpbnMiLCAic3RyaW5nQXJnIiwgInN0cmluZ0FycmF5QXJnIiwgInN0cmluZ0l0ZW0iLCAia2V5QXJnIiwgIm1pbmlNYXRjaFN0cmluZ0FyZyIsICJzbWFydE1hdGNoSW5zdGFuY2UiLCAiZGlzdF90c19leHBvcnRzIiwgImZvdW5kTWF0Y2giLCAicmV0dXJuQXJyYXkiLCAiZnVuY3Rpb25BcmciLCAiY2FsbGJhY2tBcmciLCAidHJ1ZURlZmVycmVkIiwgInJlc3VsdCIsICJmaWx0ZXJlZEFycmF5IiwgIlRpbWVkQWdncmVndG9yIiwgImluaXRfY2xhc3Nlc190aW1lZGFnZ3JlZ2F0b3IiLCAiX19lc21NaW4iLCAiaW5pdF9jbGFzc2VzX3BsdWdpbnMiLCAib3B0aW9uc0FyZyIsICJhZGRBZ2dyZWdhdGlvblRpbWVyIiwgImRpc3RfdHNfZXhwb3J0cyIsICJhZ2dyZWdhdGVGb3JQcm9jZXNzaW5nIiwgImFnZ3JlZ2F0aW9uQXJnIiwgIlRyZWUiLCAiaW5pdF9jbGFzc2VzX3RyZWUiLCAiX19lc21NaW4iLCAiaW5pdF9jbGFzc2VzX3BsdWdpbnMiLCAic3ltYm9sVHJlZSIsICJvYmplY3RBcmciLCAib3B0aW9uc0FyZyIsICJvYmplY3QiLCAicGFyZW50QXJnIiwgInJvb3RBcmciLCAiY2hpbGRBcmciLCAibGVmdEFyZyIsICJyaWdodEFyZyIsICJyZW1vdmVPYmplY3RBcmciLCAicmVmZXJlbmNlT2JqZWN0QXJnIiwgIm5ld09iamVjdEFyZyIsICJyZWZlcmVuY2VPYmplY3QiLCAicm9vdEVsZW1lbnQiLCAidHJlZUl0ZXJhYmxlIiwgInRyZWVJdGVtIiwgImRpc3RfdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJBc3luY0V4ZWN1dGlvblN0YWNrIiwgIkJhY2twcmVzc3VyZWRBcnJheSIsICJGYXN0TWFwIiwgIkludGVyZXN0IiwgIkludGVyZXN0TWFwIiwgIkxpbWl0ZWRBcnJheSIsICJMb29wVHJhY2tlciIsICJPYmplY3RNYXAiLCAiU3RyaW5nbWFwIiwgIlRpbWVkQWdncmVndG9yIiwgIlRyZWUiLCAidW5pIiwgImluaXRfZGlzdF90cyIsICJfX2VzbU1pbiIsICJpbml0X2NsYXNzZXNfYXN5bmNleGVjdXRpb25zdGFjayIsICJpbml0X2NsYXNzZXNfYmFja3ByZXNzdXJlZGFycmF5IiwgImluaXRfY2xhc3Nlc19mYXN0bWFwIiwgImluaXRfY2xhc3Nlc19pbnRlcmVzdG1hcCIsICJpbml0X2NsYXNzZXNfaW50ZXJlc3RtYXBfaW50ZXJlc3QiLCAiaW5pdF9jbGFzc2VzX2xpbWl0ZWRhcnJheSIsICJpbml0X2NsYXNzZXNfbG9vcHRyYWNrZXIiLCAiaW5pdF9jbGFzc2VzX29iamVjdG1hcCIsICJpbml0X2NsYXNzZXNfc3RyaW5nbWFwIiwgImluaXRfY2xhc3Nlc190aW1lZGFnZ3JlZ2F0b3IiLCAiaW5pdF9jbGFzc2VzX3RyZWUiLCAidWludDhhcnJheV9leHRyYXNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJhcmVVaW50OEFycmF5c0VxdWFsIiwgImFzc2VydFVpbnQ4QXJyYXkiLCAiYXNzZXJ0VWludDhBcnJheU9yQXJyYXlCdWZmZXIiLCAiYmFzZTY0VG9TdHJpbmciLCAiYmFzZTY0VG9VaW50OEFycmF5IiwgImNvbXBhcmVVaW50OEFycmF5cyIsICJjb25jYXRVaW50OEFycmF5cyIsICJnZXRVaW50QkUiLCAiaGV4VG9VaW50OEFycmF5IiwgImluY2x1ZGVzIiwgImluZGV4T2YiLCAiaXNVaW50OEFycmF5IiwgInN0cmluZ1RvQmFzZTY0IiwgInN0cmluZ1RvVWludDhBcnJheSIsICJ0b1VpbnQ4QXJyYXkiLCAidWludDhBcnJheVRvQmFzZTY0IiwgInVpbnQ4QXJyYXlUb0hleCIsICJ1aW50OEFycmF5VG9TdHJpbmciLCAiaXNUeXBlIiwgInZhbHVlIiwgInR5cGVDb25zdHJ1Y3RvciIsICJ0eXBlU3RyaW5naWZpZWQiLCAib2JqZWN0VG9TdHJpbmciLCAidWludDhBcnJheVN0cmluZ2lmaWVkIiwgImlzQXJyYXlCdWZmZXIiLCAiYXJyYXlCdWZmZXJTdHJpbmdpZmllZCIsICJpc1VpbnQ4QXJyYXlPckFycmF5QnVmZmVyIiwgImFycmF5cyIsICJ0b3RhbExlbmd0aCIsICJhY2N1bXVsYXRvciIsICJjdXJyZW50VmFsdWUiLCAicmV0dXJuVmFsdWUiLCAib2Zmc2V0IiwgImFycmF5IiwgImEiLCAiYiIsICJpbmRleCIsICJsZW5ndGgiLCAiZGlmZiIsICJlbmNvZGluZyIsICJjYWNoZWREZWNvZGVycyIsICJhc3NlcnRTdHJpbmciLCAic3RyaW5nIiwgImNhY2hlZEVuY29kZXIiLCAiYmFzZTY0VG9CYXNlNjRVcmwiLCAiYmFzZTY0IiwgImJhc2U2NFVybFRvQmFzZTY0IiwgImJhc2U2NHVybCIsICJwYWRkaW5nIiwgInVybFNhZmUiLCAiTUFYX0JMT0NLX1NJWkUiLCAiY2h1bmsiLCAiYmFzZTY0U3RyaW5nIiwgIngiLCAiaGV4U3RyaW5nIiwgImJ5dGVUb0hleExvb2t1cFRhYmxlIiwgInJlc3VsdExlbmd0aCIsICJieXRlcyIsICJoaWdoTmliYmxlIiwgImhleFRvRGVjaW1hbExvb2t1cFRhYmxlIiwgImxvd05pYmJsZSIsICJ2aWV3IiwgImJ5dGVMZW5ndGgiLCAiYXJyYXlMZW5ndGgiLCAidmFsdWVMZW5ndGgiLCAidmFsaWRPZmZzZXRMZW5ndGgiLCAiaXNNYXRjaCIsICJpbmRleDIiLCAiaW5pdF91aW50OGFycmF5X2V4dHJhcyIsICJfX2VzbU1pbiIsICJfIiwgImluaXRfc21hcnRidWZmZXJfcGx1Z2lucyIsICJfX2VzbU1pbiIsICJpbml0X3VpbnQ4YXJyYXlfZXh0cmFzIiwgImRpc3RfdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJiYXNlNjRUb1VpbnQ4QXJyYXkiLCAiZW5zdXJlUHVyZVVpbnQ4QXJyYXkiLCAiaXNCdWZmZXJMaWtlIiwgImlzVWludDhBcnJheSIsICJ1SW50OEFycmF5RXh0cmFzIiwgInVJbnQ4QXJyYXlUb0Jhc2U2NCIsICJ1SW50OEFycmF5IiwgInVpbnQ4YXJyYXlfZXh0cmFzX2V4cG9ydHMiLCAiYmFzZTY0IiwgIm9iaiIsICJidWZmZXJBcmciLCAidWludDhBcnJheSIsICJpbml0X2Rpc3RfdHMiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydGJ1ZmZlcl9wbHVnaW5zIiwgImluaXRfc21hcnRndWFyZF9wbHVnaW5zIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF90cyIsICJHdWFyZCIsICJpbml0X2NsYXNzZXNfZ3VhcmQiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydGd1YXJkX3BsdWdpbnMiLCAiZ3VhcmRGdW5jdGlvbkFyZyIsICJvcHRpb25zQXJnIiwgImRhdGFBcmciLCAiR3VhcmRFcnJvciIsICJpbml0X2NsYXNzZXNfZ3VhcmRlcnJvciIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0Z3VhcmRfcGx1Z2lucyIsICJtZXNzYWdlIiwgIkd1YXJkU2V0IiwgImluaXRfY2xhc3Nlc19ndWFyZHNldCIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0Z3VhcmRfcGx1Z2lucyIsICJpbml0X2NsYXNzZXNfZ3VhcmQiLCAiR3VhcmQiLCAiZ3VhcmRBcnJheSIsICJkYXRhQXJnIiwgIm9wdGlvbnNBcmciLCAicmVzdWx0UHJvbWlzZXMiLCAiZ3VhcmQiLCAiZ3VhcmRSZXN1bHRQcm9taXNlIiwgInJlc3VsdCIsICJmYWlsZWRIaW50IiwgImRpc3RfdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJHdWFyZCIsICJHdWFyZEVycm9yIiwgIkd1YXJkU2V0IiwgInBhc3NHdWFyZHNPclJlamVjdCIsICJpbml0X2Rpc3RfdHMiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydGd1YXJkX3BsdWdpbnMiLCAiaW5pdF9jbGFzc2VzX2d1YXJkIiwgImluaXRfY2xhc3Nlc19ndWFyZGVycm9yIiwgImluaXRfY2xhc3Nlc19ndWFyZHNldCIsICJkYXRhQXJnIiwgImd1YXJkcyIsICJndWFyZFNldCIsICJmYWlsZWRIaW50IiwgImluaXRfc21hcnRlbnZfcGx1Z2lucyIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9pbnRlcmZhY2VzIiwgIl9fZXNtTWluIiwgIlNtYXJ0ZW52IiwgImluaXRfc21hcnRlbnZfY2xhc3Nlc19zbWFydGVudiIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0ZW52X3BsdWdpbnMiLCAiaW5pdF9pbnRlcmZhY2VzIiwgIm9wdGlvbnNBcmciLCAibW9kdWxlTmFtZUFyZyIsICJydW5BZnRlckZ1bmMiLCAicmV0dXJuVmFsdWUiLCAidXJsQXJnIiwgImdldEZ1bmN0aW9uQXJnIiwgImRvbmUiLCAiZGlzdF90c19leHBvcnRzIiwgInNjcmlwdCIsICJkaXN0X3RzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiU21hcnRlbnYiLCAiaW5pdF9kaXN0X3RzIiwgIl9fZXNtTWluIiwgImluaXRfc21hcnRlbnZfY2xhc3Nlc19zbWFydGVudiIsICJpc291bmlxdWUiLCAiaW5pdF9zbWFydHN0cmluZ19wbHVnaW5zIiwgIl9fZXNtTWluIiwgInNtYXJ0c3RyaW5nX2NyZWF0ZV9leHBvcnRzIiwgIl9fZXhwb3J0IiwgImNyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZyIsICJjcmVhdGVSYW5kb21TdHJpbmciLCAiZ2V0UmFuZG9tSW50IiwgImN1c3RvbVJhbmRvbWF0aWMiLCAiaW5pdF9zbWFydHN0cmluZ19jcmVhdGUiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHN0cmluZ19wbHVnaW5zIiwgIm1pbiIsICJtYXgiLCAicmFuZ2UiLCAiYXJyYXkiLCAicGF0dGVybiIsICJsZW5ndGgiLCAib3B0aW9ucyIsICJjaGFyU2V0cyIsICJhY3R1YWxQYXR0ZXJuIiwgInJlc3VsdCIsICJjaGFyIiwgImNoYXJTZXQiLCAicmFuZG9tSW5kZXgiLCAicGF0dGVybkFyZyIsICJsZW5ndGhBcmciLCAib3B0aW9uc0FyZyIsICJpc291bmlxdWUiLCAic21hcnRzdHJpbmdfZG9ja2VyX2V4cG9ydHMiLCAiX19leHBvcnQiLCAibWFrZUVudk9iamVjdCIsICJpbml0X3NtYXJ0c3RyaW5nX2RvY2tlciIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0c3RyaW5nX3BsdWdpbnMiLCAiZW52QXJyYXlBcmciLCAicmV0dXJuT2JqZWN0IiwgInJlZ2V4U3RyaW5nIiwgImVudktleSIsICJyZWdleE1hdGNoZXMiLCAic21hcnRzdHJpbmdfaW5kZW50X2V4cG9ydHMiLCAiX19leHBvcnQiLCAiaW5kZW50IiwgImluZGVudFdpdGhQcmVmaXgiLCAibm9ybWFsaXplIiwgInNwbGl0U3RyaW5nQXRMaW5lQnJlYWsiLCAiam9pblN0cmluZ1dpdGhMaW5lQnJlYWtzIiwgImNsZWFuU3RyaW5nQXJyYXkiLCAiaW5pdF9zbWFydHN0cmluZ19pbmRlbnQiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHN0cmluZ19wbHVnaW5zIiwgInN0cmluZ0FyZyIsICJyZXN1bHRBcnJheSIsICJzdHJpbmdBcnJheUFyZyIsICJyZXN1bHRTdHJpbmciLCAibGluZSIsICJ0ZXN0UmVnZXgiLCAic3BhY2VBbW91bnQiLCAibG9jYWxTdHJpbmdBcnJheSIsICJwcmVmaXhBcmciLCAic3RyaW5nQXJyYXkiLCAic3RyaW5nSXRlbSIsICJzcGxpdFN0cmluZ0FycmF5IiwgIm1pbkNvbW1vbkxlZnRPZmZzZXQiLCAiZGVJbmRlbnRSZWdleCIsICJlbXB0eUxpbmVSZWdleCIsICJvZmZzZXRTdHJpbmciLCAicmVzdWx0U3BsaXRTdHJpbmdBcnJheSIsICJzbWFydHN0cmluZ19ub3JtYWxpemVfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJyZXBsYWNlQWxsIiwgInN0YW5kYXJkIiwgInN0cmlwSW5kZW50IiwgImluaXRfc21hcnRzdHJpbmdfbm9ybWFsaXplIiwgIl9fZXNtTWluIiwgInN0cmluZ0FyZyIsICJzZWFyY2hQYXR0ZXJuIiwgInJlcGxhY2VtZW50U3RyaW5nIiwgInN0ciIsICJsaW5lcyIsICJtaW5JbmRlbnQiLCAibGluZSIsICJtYXRjaCIsICJvcHRpb25zIiwgInJlc3VsdCIsICJ1bml2ZXJzYWxCYXNlNjQiLCAiQmFzZTY0IiwgImJhc2U2NCIsICJpbml0X3NtYXJ0c3RyaW5nX2Jhc2U2NCIsICJfX2VzbU1pbiIsICJzdHIiLCAidXRmOEJ5dGVzIiwgImJpbmFyeVN0cmluZyIsICJieXRlIiwgImNoYXJzIiwgImJ5dGVzIiwgInJlc3VsdCIsICJhIiwgImIiLCAiYyIsICJiaXRtYXAiLCAiYmFzZTY0U3RyaW5nIiwgImVuY29kZWQxIiwgImVuY29kZWQyIiwgImVuY29kZWQzIiwgImVuY29kZWQ0IiwgImlucHV0U3RyaW5nQXJnIiwgInR5cGVBcmciLCAic3RyaW5nQXJnIiwgInNtYXJ0c3RyaW5nX3R5cGVfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJpc0Jhc2U2NCIsICJpc1V0ZjgiLCAiaW5pdF9zbWFydHN0cmluZ190eXBlIiwgIl9fZXNtTWluIiwgImluaXRfc21hcnRzdHJpbmdfcGx1Z2lucyIsICJpbml0X3NtYXJ0c3RyaW5nX2Jhc2U2NCIsICJzdHJpbmdBcmciLCAiYnl0ZXMiLCAiaSIsICJub3RCYXNlNjQiLCAibGVuIiwgImZpcnN0UGFkZGluZ0NoYXIiLCAiRG9tYWluIiwgImluaXRfc21hcnRzdHJpbmdfZG9tYWluIiwgIl9fZXNtTWluIiwgImRvbWFpblN0cmluZ0FyZyIsICJyZWdleE1hdGNoZXMiLCAiaSIsICJsb2NhbE1hdGNoIiwgInN0cmluZ0FyZyIsICJHaXRSZXBvIiwgImdpdFJlZ2V4IiwgImdpdExpbmsiLCAiaW5pdF9zbWFydHN0cmluZ19naXQiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHN0cmluZ19wbHVnaW5zIiwgInN0cmluZ0FyZyIsICJ0b2tlbkFyZyIsICJyZWdleE1hdGNoZXMiLCAiaG9zdEFyZyIsICJ1c2VyQXJnIiwgInJlcG9BcmciLCAibGlua1R5cGVBcmciLCAicmV0dXJuU3RyaW5nIiwgImRpc3RfdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJCYXNlNjQiLCAiRG9tYWluIiwgIkdpdFJlcG8iLCAiYmFzZTY0IiwgInNtYXJ0c3RyaW5nX2NyZWF0ZV9leHBvcnRzIiwgInNtYXJ0c3RyaW5nX2RvY2tlcl9leHBvcnRzIiwgInNtYXJ0c3RyaW5nX2luZGVudF9leHBvcnRzIiwgInNtYXJ0c3RyaW5nX25vcm1hbGl6ZV9leHBvcnRzIiwgInNtYXJ0c3RyaW5nX3R5cGVfZXhwb3J0cyIsICJpbml0X2Rpc3RfdHMiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHN0cmluZ19jcmVhdGUiLCAiaW5pdF9zbWFydHN0cmluZ19kb2NrZXIiLCAiaW5pdF9zbWFydHN0cmluZ19pbmRlbnQiLCAiaW5pdF9zbWFydHN0cmluZ19ub3JtYWxpemUiLCAiaW5pdF9zbWFydHN0cmluZ190eXBlIiwgImluaXRfc21hcnRzdHJpbmdfYmFzZTY0IiwgImluaXRfc21hcnRzdHJpbmdfZG9tYWluIiwgImluaXRfc21hcnRzdHJpbmdfZ2l0IiwgInJlcXVpcmVfbG9kYXNoIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiTEFSR0VfQVJSQVlfU0laRSIsICJIQVNIX1VOREVGSU5FRCIsICJNQVhfU0FGRV9JTlRFR0VSIiwgImFyZ3NUYWciLCAiYXJyYXlUYWciLCAiYm9vbFRhZyIsICJkYXRlVGFnIiwgImVycm9yVGFnIiwgImZ1bmNUYWciLCAiZ2VuVGFnIiwgIm1hcFRhZyIsICJudW1iZXJUYWciLCAib2JqZWN0VGFnIiwgInByb21pc2VUYWciLCAicmVnZXhwVGFnIiwgInNldFRhZyIsICJzdHJpbmdUYWciLCAic3ltYm9sVGFnIiwgIndlYWtNYXBUYWciLCAiYXJyYXlCdWZmZXJUYWciLCAiZGF0YVZpZXdUYWciLCAiZmxvYXQzMlRhZyIsICJmbG9hdDY0VGFnIiwgImludDhUYWciLCAiaW50MTZUYWciLCAiaW50MzJUYWciLCAidWludDhUYWciLCAidWludDhDbGFtcGVkVGFnIiwgInVpbnQxNlRhZyIsICJ1aW50MzJUYWciLCAicmVSZWdFeHBDaGFyIiwgInJlRmxhZ3MiLCAicmVJc0hvc3RDdG9yIiwgInJlSXNVaW50IiwgImNsb25lYWJsZVRhZ3MiLCAiZnJlZUdsb2JhbCIsICJmcmVlU2VsZiIsICJyb290IiwgImZyZWVFeHBvcnRzIiwgImZyZWVNb2R1bGUiLCAibW9kdWxlRXhwb3J0cyIsICJhZGRNYXBFbnRyeSIsICJtYXAiLCAicGFpciIsICJhZGRTZXRFbnRyeSIsICJzZXQiLCAidmFsdWUiLCAiYXJyYXlFYWNoIiwgImFycmF5IiwgIml0ZXJhdGVlIiwgImluZGV4IiwgImxlbmd0aCIsICJhcnJheVB1c2giLCAidmFsdWVzIiwgIm9mZnNldCIsICJhcnJheVJlZHVjZSIsICJhY2N1bXVsYXRvciIsICJpbml0QWNjdW0iLCAiYmFzZVRpbWVzIiwgIm4iLCAicmVzdWx0IiwgImdldFZhbHVlIiwgIm9iamVjdCIsICJrZXkiLCAiaXNIb3N0T2JqZWN0IiwgIm1hcFRvQXJyYXkiLCAib3ZlckFyZyIsICJmdW5jIiwgInRyYW5zZm9ybSIsICJhcmciLCAic2V0VG9BcnJheSIsICJhcnJheVByb3RvIiwgImZ1bmNQcm90byIsICJvYmplY3RQcm90byIsICJjb3JlSnNEYXRhIiwgIm1hc2tTcmNLZXkiLCAidWlkIiwgImZ1bmNUb1N0cmluZyIsICJoYXNPd25Qcm9wZXJ0eSIsICJvYmplY3RUb1N0cmluZyIsICJyZUlzTmF0aXZlIiwgIkJ1ZmZlciIsICJTeW1ib2wiLCAiVWludDhBcnJheSIsICJnZXRQcm90b3R5cGUiLCAib2JqZWN0Q3JlYXRlIiwgInByb3BlcnR5SXNFbnVtZXJhYmxlIiwgInNwbGljZSIsICJuYXRpdmVHZXRTeW1ib2xzIiwgIm5hdGl2ZUlzQnVmZmVyIiwgIm5hdGl2ZUtleXMiLCAiRGF0YVZpZXciLCAiZ2V0TmF0aXZlIiwgIk1hcCIsICJQcm9taXNlIiwgIlNldCIsICJXZWFrTWFwIiwgIm5hdGl2ZUNyZWF0ZSIsICJkYXRhVmlld0N0b3JTdHJpbmciLCAidG9Tb3VyY2UiLCAibWFwQ3RvclN0cmluZyIsICJwcm9taXNlQ3RvclN0cmluZyIsICJzZXRDdG9yU3RyaW5nIiwgIndlYWtNYXBDdG9yU3RyaW5nIiwgInN5bWJvbFByb3RvIiwgInN5bWJvbFZhbHVlT2YiLCAiSGFzaCIsICJlbnRyaWVzIiwgImVudHJ5IiwgImhhc2hDbGVhciIsICJoYXNoRGVsZXRlIiwgImhhc2hHZXQiLCAiZGF0YSIsICJoYXNoSGFzIiwgImhhc2hTZXQiLCAiTGlzdENhY2hlIiwgImxpc3RDYWNoZUNsZWFyIiwgImxpc3RDYWNoZURlbGV0ZSIsICJhc3NvY0luZGV4T2YiLCAibGFzdEluZGV4IiwgImxpc3RDYWNoZUdldCIsICJsaXN0Q2FjaGVIYXMiLCAibGlzdENhY2hlU2V0IiwgIk1hcENhY2hlIiwgIm1hcENhY2hlQ2xlYXIiLCAibWFwQ2FjaGVEZWxldGUiLCAiZ2V0TWFwRGF0YSIsICJtYXBDYWNoZUdldCIsICJtYXBDYWNoZUhhcyIsICJtYXBDYWNoZVNldCIsICJTdGFjayIsICJzdGFja0NsZWFyIiwgInN0YWNrRGVsZXRlIiwgInN0YWNrR2V0IiwgInN0YWNrSGFzIiwgInN0YWNrU2V0IiwgImNhY2hlIiwgInBhaXJzIiwgImFycmF5TGlrZUtleXMiLCAiaW5oZXJpdGVkIiwgImlzQXJyYXkiLCAiaXNBcmd1bWVudHMiLCAic2tpcEluZGV4ZXMiLCAiaXNJbmRleCIsICJhc3NpZ25WYWx1ZSIsICJvYmpWYWx1ZSIsICJlcSIsICJiYXNlQXNzaWduIiwgInNvdXJjZSIsICJjb3B5T2JqZWN0IiwgImtleXMiLCAiYmFzZUNsb25lIiwgImlzRGVlcCIsICJpc0Z1bGwiLCAiY3VzdG9taXplciIsICJzdGFjayIsICJpc09iamVjdCIsICJpc0FyciIsICJpbml0Q2xvbmVBcnJheSIsICJjb3B5QXJyYXkiLCAidGFnIiwgImdldFRhZyIsICJpc0Z1bmMiLCAiaXNCdWZmZXIiLCAiY2xvbmVCdWZmZXIiLCAiaW5pdENsb25lT2JqZWN0IiwgImNvcHlTeW1ib2xzIiwgImluaXRDbG9uZUJ5VGFnIiwgInN0YWNrZWQiLCAicHJvcHMiLCAiZ2V0QWxsS2V5cyIsICJzdWJWYWx1ZSIsICJiYXNlQ3JlYXRlIiwgInByb3RvIiwgImJhc2VHZXRBbGxLZXlzIiwgImtleXNGdW5jIiwgInN5bWJvbHNGdW5jIiwgImJhc2VHZXRUYWciLCAiYmFzZUlzTmF0aXZlIiwgImlzTWFza2VkIiwgInBhdHRlcm4iLCAiaXNGdW5jdGlvbiIsICJiYXNlS2V5cyIsICJpc1Byb3RvdHlwZSIsICJidWZmZXIiLCAiY2xvbmVBcnJheUJ1ZmZlciIsICJhcnJheUJ1ZmZlciIsICJjbG9uZURhdGFWaWV3IiwgImRhdGFWaWV3IiwgImNsb25lTWFwIiwgImNsb25lRnVuYyIsICJjbG9uZVJlZ0V4cCIsICJyZWdleHAiLCAiY2xvbmVTZXQiLCAiY2xvbmVTeW1ib2wiLCAic3ltYm9sIiwgImNsb25lVHlwZWRBcnJheSIsICJ0eXBlZEFycmF5IiwgIm5ld1ZhbHVlIiwgImdldFN5bWJvbHMiLCAiaXNLZXlhYmxlIiwgInN0dWJBcnJheSIsICJDdG9yIiwgImN0b3JTdHJpbmciLCAidHlwZSIsICJjbG9uZURlZXAiLCAib3RoZXIiLCAiaXNBcnJheUxpa2VPYmplY3QiLCAiaXNBcnJheUxpa2UiLCAiaXNMZW5ndGgiLCAiaXNPYmplY3RMaWtlIiwgInN0dWJGYWxzZSIsICJyZXF1aXJlX2Zhc3RfanNvbl9zdGFibGVfc3RyaW5naWZ5IiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZGF0YSIsICJvcHRzIiwgImN5Y2xlcyIsICJjbXAiLCAiZiIsICJub2RlIiwgImEiLCAiYiIsICJhb2JqIiwgImJvYmoiLCAic2VlbiIsICJzdHJpbmdpZnkiLCAiaSIsICJvdXQiLCAic2VlbkluZGV4IiwgImtleXMiLCAia2V5IiwgInZhbHVlIiwgImltcG9ydF9sb2Rhc2giLCAiaW1wb3J0X2Zhc3RfanNvbl9zdGFibGVfc3RyaW5naWZ5IiwgInN0YWJsZUpzb24iLCAiaW5pdF9zbWFydGpzb25fcGx1Z2lucyIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfdHMiLCAic3RhYmxlSnNvbjIiLCAiYmFzZTY0RW5jb2RlIiwgImRhdGEiLCAiYmFzZTY0RGVjb2RlIiwgInN0ciIsICJidWYiLCAiY2hhciIsICJzdHJpbmdpZnkiLCAidmFsdWUiLCAic3BhY2UiLCAicmVwbGFjZXIiLCAicGFyc2UiLCAidGV4dCIsICJyZXZpdmVyIiwgImlzRW5jb2RlZEJ1ZmZlciIsICJ4IiwgImlzT2JqZWN0IiwgImlzU3RyaW5nIiwgImlzQnVmZmVyTGlrZSIsICJpc0FycmF5IiwgImluaXRfYnVmZmVyaGFuZGxpbmciLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydGpzb25fcGx1Z2lucyIsICJrZXkiLCAiYnVmZmVyRGF0YSIsICJiYXNlNjREYXRhIiwgImRpc3RfdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJTbWFydGpzb24iLCAiZGVlcEVxdWFsSnNvbkxTdHJpbmdzIiwgImRlZXBFcXVhbE9iamVjdHMiLCAiZm9sZERlYyIsICJwYXJzZSIsICJwYXJzZUJhc2U2NCIsICJwYXJzZUpzb25MIiwgInN0YWJsZU9uZVdheVN0cmluZ2lmeSIsICJzdHJpbmdpZnkiLCAic3RyaW5naWZ5QmFzZTY0IiwgInN0cmluZ2lmeUpzb25MIiwgInN0cmluZ2lmeVByZXR0eSIsICJpbml0X2Rpc3RfdHMiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydGpzb25fcGx1Z2lucyIsICJpbml0X2J1ZmZlcmhhbmRsaW5nIiwgImpzb25sRGF0YSIsICJhY2MiLCAibGluZSIsICJ0cmltbWVkIiwgIml0ZW1zIiwgIml0ZW0iLCAib2JqQXJnIiwgInNpbXBsZU9yZGVyQXJyYXkiLCAib3B0aW9uc0FyZyIsICJ2aXNpdGVkIiwgInNhbml0aXplIiwgInZhbCIsICJyZXBsYWNlZCIsICJyZXBsYWNlciIsICJvdXQiLCAia2V5IiwgIm9iaiIsICJvcHRpb25zIiwgIm9yZGVyIiwgImlkeCIsICJhIiwgImIiLCAiYUlkeCIsICJiSWR4IiwgInN0YWJsZUpzb24iLCAiYnVmZmVyZWRKc29uIiwgIm9iamVjdEFyZyIsICJzdHJpbmdpZmllZCIsICJvYmplY3QiLCAiYXJncyIsICJzdHJpbmdpZmllZFJlc3VsdCIsICJiYXNlNjRKc29uU3RyaW5nQXJnIiwgImJhc2U2NCIsICJzaW1wbGVTdHJpbmdpZmllZCIsICJfU21hcnRqc29uIiwgIm5ld0luc3RhbmNlIiwgInNhdmVhYmxlcyIsICJrZXlOYW1lIiwgImpzb25BcmciLCAib2JqZWN0RnJvbUpzb24iLCAidHJhY2tTZXQiLCAicmVzdWx0IiwgImZvbGRWYWx1ZSIsICJsb2Rhc2hDbG9uZURlZXAiLCAicHJvcHMiLCAidmFsdWUiLCAiZm9sZGVkT2JqZWN0IiwgInRhcmdldCIsICJvYmplY3QxIiwgIm9iamVjdDIiLCAib2JqZWN0MVN0cmluZyIsICJvYmplY3QyU3RyaW5nIiwgImpzb25MU3RyaW5nMSIsICJqc29uTFN0cmluZzIiLCAiZmlyc3RBcnJheSIsICJzZWNvbmRBcnJheSIsICJidWlsZF9leHBvcnRzIiwgIl9fZXhwb3J0IiwgImRlbGV0ZURCIiwgIm9wZW5EQiIsICJ1bndyYXAiLCAid3JhcCIsICJnZXRJZGJQcm94eWFibGVUeXBlcyIsICJpZGJQcm94eWFibGVUeXBlcyIsICJnZXRDdXJzb3JBZHZhbmNlTWV0aG9kcyIsICJjdXJzb3JBZHZhbmNlTWV0aG9kcyIsICJwcm9taXNpZnlSZXF1ZXN0IiwgInJlcXVlc3QiLCAicHJvbWlzZSIsICJyZXNvbHZlIiwgInJlamVjdCIsICJ1bmxpc3RlbiIsICJzdWNjZXNzIiwgImVycm9yIiwgInJldmVyc2VUcmFuc2Zvcm1DYWNoZSIsICJjYWNoZURvbmVQcm9taXNlRm9yVHJhbnNhY3Rpb24iLCAidHgiLCAidHJhbnNhY3Rpb25Eb25lTWFwIiwgImRvbmUiLCAiY29tcGxldGUiLCAicmVwbGFjZVRyYXBzIiwgImNhbGxiYWNrIiwgImlkYlByb3h5VHJhcHMiLCAid3JhcEZ1bmN0aW9uIiwgImZ1bmMiLCAiYXJncyIsICJ0cmFuc2Zvcm1DYWNoYWJsZVZhbHVlIiwgInZhbHVlIiwgImluc3RhbmNlT2ZBbnkiLCAidHJhbnNmb3JtQ2FjaGUiLCAibmV3VmFsdWUiLCAibmFtZSIsICJ2ZXJzaW9uIiwgImJsb2NrZWQiLCAidXBncmFkZSIsICJibG9ja2luZyIsICJ0ZXJtaW5hdGVkIiwgIm9wZW5Qcm9taXNlIiwgImV2ZW50IiwgImRiIiwgImdldE1ldGhvZCIsICJ0YXJnZXQiLCAicHJvcCIsICJjYWNoZWRNZXRob2RzIiwgInRhcmdldEZ1bmNOYW1lIiwgInVzZUluZGV4IiwgImlzV3JpdGUiLCAid3JpdGVNZXRob2RzIiwgInJlYWRNZXRob2RzIiwgIm1ldGhvZCIsICJzdG9yZU5hbWUiLCAiaXRlcmF0ZSIsICJjdXJzb3IiLCAicHJveGllZEN1cnNvciIsICJjdXJzb3JJdGVyYXRvclRyYXBzIiwgIml0dHJQcm94aWVkQ3Vyc29yVG9PcmlnaW5hbFByb3h5IiwgImFkdmFuY2VSZXN1bHRzIiwgImlzSXRlcmF0b3JQcm9wIiwgImFkdmFuY2VNZXRob2RQcm9wcyIsICJtZXRob2RNYXAiLCAiaW5pdF9idWlsZCIsICJfX2VzbU1pbiIsICJvYmplY3QiLCAiY29uc3RydWN0b3JzIiwgImMiLCAicmVjZWl2ZXIiLCAib2xkVHJhcHMiLCAiY2FjaGVkRnVuYyIsICJpbml0X3dlYnN0b3JlX3BsdWdpbnMiLCAiX19lc21NaW4iLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfYnVpbGQiLCAiV2ViU3RvcmUiLCAiaW5pdF93ZWJzdG9yZV9jbGFzc2VzX3dlYnN0b3JlIiwgIl9fZXNtTWluIiwgImluaXRfd2Vic3RvcmVfcGx1Z2lucyIsICJvcHRpb25zQXJnIiwgImRpc3RfdHNfZXhwb3J0cyIsICJzbWFydGVudiIsICJtb2QiLCAiYnVpbGRfZXhwb3J0cyIsICJkYiIsICJrZXkiLCAia2V5QXJnIiwgInZhbCIsICJUeXBlZHJlcXVlc3RDYWNoZSIsICJpbml0X3dlYnN0b3JlX2NsYXNzZXNfdHlwZWRyZXF1ZXN0Y2FjaGUiLCAiX19lc21NaW4iLCAiaW5pdF93ZWJzdG9yZV9jbGFzc2VzX3dlYnN0b3JlIiwgImluaXRfd2Vic3RvcmVfcGx1Z2lucyIsICJkb21haW5BcmciLCAiV2ViU3RvcmUiLCAicmVxdWVzdEFyZyIsICJkaXN0X3RzX2V4cG9ydHMiLCAidHlwZWRyZXF1ZXN0QXJnIiwgImRpc3RfdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJUeXBlZHJlcXVlc3RDYWNoZSIsICJXZWJTdG9yZSIsICJpbml0X2Rpc3RfdHMiLCAiX19lc21NaW4iLCAiaW5pdF93ZWJzdG9yZV9jbGFzc2VzX3R5cGVkcmVxdWVzdGNhY2hlIiwgImluaXRfd2Vic3RvcmVfY2xhc3Nlc193ZWJzdG9yZSIsICJpbml0X3dlYnJlcXVlc3RfcGx1Z2lucyIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfdHMiLCAiZGlzdF90c19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIldlYlJlcXVlc3QiLCAiaW5pdF9kaXN0X3RzIiwgIl9fZXNtTWluIiwgImluaXRfd2VicmVxdWVzdF9wbHVnaW5zIiwgIm9wdGlvbnNBcmciLCAidXJsQXJnIiwgInVzZUNhY2hlQXJnIiwgInJlc3BvbnNlVGV4dCIsICJyZXF1ZXN0Qm9keSIsICJ1c2VTdG9yZUFzRmFsbGJhY2siLCAiY29udHJvbGxlciIsICJjYWNoZWRSZXNwb25zZURlZmVycmVkIiwgImNhY2hlVXNlZCIsICJyZXNwb25zZUJ1ZmZlciIsICJyZXNwb25zZSIsICJlcnIiLCAiYnVmZmVyIiwgImFsbFVybHMiLCAidXNlZFVybEluZGV4IiwgInJlcXVlc3RIaXN0b3J5IiwgImRvSGlzdG9yeUNoZWNrIiwgImhpc3RvcnlFbnRyeVR5cGVBcmciLCAibnVtT2ZIaXN0b3J5VHlwZSIsICJlbnRyeSIsICJkb1JlcXVlc3QiLCAidXJsVG9Vc2UiLCAibG9nQXJnIiwgImlzb3VuaXF1ZSIsICJpbml0X3BsdWdpbnMiLCAiX19lc21NaW4iLCAiaW5pdF9kaXN0X3RzIiwgIlR5cGVkUmVzcG9uc2VFcnJvciIsICJpbml0X2NsYXNzZXNfdHlwZWRyZXNwb25zZWVycm9yIiwgIl9fZXNtTWluIiwgImluaXRfcGx1Z2lucyIsICJlcnJvclRleHRBcmciLCAiZXJyb3JEYXRhQXJnIiwgIlR5cGVkVG9vbHMiLCAiaW5pdF9jbGFzc2VzX3R5cGVkdG9vbHMiLCAiX19lc21NaW4iLCAiaW5pdF9jbGFzc2VzX3R5cGVkcmVzcG9uc2VlcnJvciIsICJpbml0X3BsdWdpbnMiLCAiZ3VhcmRzQXJnIiwgImRhdGFBcmciLCAiZ3VhcmRTZXQiLCAiZGlzdF90c19leHBvcnRzIiwgImZhaWxlZEhpbnQiLCAiVHlwZWRSZXNwb25zZUVycm9yIiwgIlR5cGVkSGFuZGxlciIsICJpbml0X2NsYXNzZXNfdHlwZWRoYW5kbGVyIiwgIl9fZXNtTWluIiwgImluaXRfcGx1Z2lucyIsICJpbml0X2NsYXNzZXNfdHlwZWRyZXNwb25zZWVycm9yIiwgImluaXRfY2xhc3Nlc190eXBlZHRvb2xzIiwgIm1ldGhvZEFyZyIsICJoYW5kbGVyRnVuY3Rpb25BcmciLCAidHlwZWRSZXF1ZXN0QXJnIiwgInR5cGVkUmVzcG9uc2VFcnJvciIsICJ0eXBlZHRvb2xzSW5zdGFuY2UiLCAiVHlwZWRUb29scyIsICJyZXNwb25zZSIsICJlIiwgIlR5cGVkUmVzcG9uc2VFcnJvciIsICJUeXBlZFJvdXRlciIsICJpbml0X2NsYXNzZXNfdHlwZWRyb3V0ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9wbHVnaW5zIiwgImluaXRfY2xhc3Nlc192aXJ0dWFsc3RyZWFtIiwgImluaXRfY2xhc3Nlc190eXBlZGhhbmRsZXIiLCAiaW5pdF9jbGFzc2VzX3R5cGVkcmVxdWVzdCIsICJfVHlwZWRSb3V0ZXIiLCAiZGlzdF90c19leHBvcnRzIiwgImNvcnJlbGF0aW9uSWQiLCAidmFsdWUiLCAiaG9va3MiLCAiY3VycmVudCIsICJob29rTmFtZSIsICJlbnRyeSIsICJlcnIiLCAidHlwZWRIYW5kbGVyQXJnIiwgInR5cGVkUm91dGVyQXJnIiwgInJvdXRlckFyZyIsICJtZXRob2RBcmciLCAiY2hlY2tlZFJvdXRlcnMiLCAidHlwZWRIYW5kbGVyIiwgImhhbmRsZXIiLCAidHlwZWRSZXF1ZXN0QXJnIiwgIm9wdGlvbnNBcmciLCAib3B0aW9ucyIsICJWaXJ0dWFsU3RyZWFtIiwgInJlc3VsdCIsICJyZXF1ZXN0U3RhcnRUaW1lIiwgInN0cmVhbVRyQXJnIiwgInJlbGV2YW50VmlydHVhbFN0cmVhbSIsICJ2aXJ0dWFsU3RyZWFtQXJnIiwgImNsb3NpbmdCaXQiLCAiVmlydHVhbFN0cmVhbSIsICJpbml0X2NsYXNzZXNfdmlydHVhbHN0cmVhbSIsICJfX2VzbU1pbiIsICJpbml0X3BsdWdpbnMiLCAiaW5pdF9jbGFzc2VzX3R5cGVkcm91dGVyIiwgIl9WaXJ0dWFsU3RyZWFtIiwgIm9iamVjdFBheWxvYWQiLCAiY29tbUZ1bmN0aW9ucyIsICJvcmlnaW5hbFBheWxvYWQiLCAicGF0aCIsICJkaXN0X3RzX2V4cG9ydHMiLCAiaXRlbSIsICJpbmRleCIsICJhY2MiLCAia2V5IiwgInZhbHVlIiwgIm5ld1BhdGgiLCAiVHlwZWRSb3V0ZXIiLCAidmlydHVhbFN0cmVhbSIsICJyZXR1cm5BcnJheSIsICJpc291bmlxdWUiLCAidGhpc1NpZGVJc0JhY2twcmVzc3VyZWQiLCAib3RoZXJTaWRlSGFzTmV4dCIsICJvdGhlclNpZGVJc0JhY2twcmVzc3VyZWQiLCAiZ2V0RmVlZGJhY2siLCAic3RyZWFtVHIiLCAiZGF0YUFyZyIsICJzdHJlYW1UckFyZyIsICJjb3VudGVyIiwgInJlYWRhYmxlU3RyZWFtQXJnIiwgImNsb3NlQWZ0ZXJSZWFkaW5nIiwgInJlYWRlciIsICJzdHJlYW1Jc0RvbmUiLCAiZG9uZSIsICJ3cml0YWJsZVN0cmVhbUFyZyIsICJ3cml0ZXIiLCAic2VuZENsb3NpbmdCaXRBcmciLCAiVHlwZWRUYXJnZXQiLCAiaW5pdF9jbGFzc2VzX3R5cGVkdGFyZ2V0IiwgIl9fZXNtTWluIiwgImluaXRfY2xhc3Nlc190eXBlZHJvdXRlciIsICJpbml0X3BsdWdpbnMiLCAib3B0aW9uc0FyZyIsICJwYXlsb2FkQXJnIiwgInJlc3BvbnNlSW50ZXJlc3QiLCAicG9zdE1ldGhvZFJldHVyblZhbHVlIiwgInJlc3BvbnNlQm9keSIsICJjYWxsR2xvYmFsSG9vayIsICJob29rTmFtZSIsICJlbnRyeSIsICJUeXBlZFJvdXRlciIsICJlcnIiLCAid2VicmVxdWVzdEluc3RhbmNlIiwgIlR5cGVkUmVxdWVzdCIsICJpbml0X2NsYXNzZXNfdHlwZWRyZXF1ZXN0IiwgIl9fZXNtTWluIiwgImluaXRfcGx1Z2lucyIsICJpbml0X2NsYXNzZXNfdmlydHVhbHN0cmVhbSIsICJpbml0X2NsYXNzZXNfdHlwZWRyZXNwb25zZWVycm9yIiwgImluaXRfY2xhc3Nlc190eXBlZHJvdXRlciIsICJpbml0X2NsYXNzZXNfdHlwZWR0YXJnZXQiLCAiZGlzdF90c19leHBvcnRzIiwgInBvc3RUYXJnZXQiLCAibWV0aG9kQXJnIiwgImZpcmVBcmciLCAidXNlQ2FjaGVBcmciLCAicmVxdWVzdFN0YXJ0VGltZSIsICJwYXlsb2FkU2VuZGluZyIsICJpc291bmlxdWUiLCAiVmlydHVhbFN0cmVhbSIsICJwYXlsb2FkQXJnIiwgInBheWxvYWRSZWNlaXZpbmciLCAicGF5bG9hZFNlbmRpbmdBcmciLCAiVHlwZWRSZXNwb25zZUVycm9yIiwgImRpc3RfdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJUeXBlZEhhbmRsZXIiLCAiVHlwZWRSZXF1ZXN0IiwgIlR5cGVkUmVzcG9uc2VFcnJvciIsICJUeXBlZFJvdXRlciIsICJUeXBlZFRhcmdldCIsICJWaXJ0dWFsU3RyZWFtIiwgImluaXRfZGlzdF90cyIsICJfX2VzbU1pbiIsICJpbml0X2NsYXNzZXNfdHlwZWRyZXF1ZXN0IiwgImluaXRfY2xhc3Nlc190eXBlZGhhbmRsZXIiLCAiaW5pdF9jbGFzc2VzX3R5cGVkcm91dGVyIiwgImluaXRfY2xhc3Nlc190eXBlZHJlc3BvbnNlZXJyb3IiLCAiaW5pdF9jbGFzc2VzX3R5cGVkdGFyZ2V0IiwgImluaXRfY2xhc3Nlc192aXJ0dWFsc3RyZWFtIiwgImlzUHJvbWlzZSIsICJvYmoiLCAic2xlZXAiLCAidGltZSIsICJyZXNvbHZlV2l0aCIsICJyZXMiLCAicmFuZG9tSW50IiwgIm1pbiIsICJtYXgiLCAicmFuZG9tVG9rZW4iLCAibWljcm9TZWNvbmRzIiwgInJldCIsICJsYXN0TXMiLCAic3VwcG9ydHNXZWJMb2NrQVBJIiwgIlBST01JU0VfUkVTT0xWRURfRkFMU0UiLCAiUFJPTUlTRV9SRVNPTFZFRF9UUlVFIiwgIlBST01JU0VfUkVTT0xWRURfVk9JRCIsICJpbml0X3V0aWwiLCAiX19lc21NaW4iLCAiY3JlYXRlIiwgImNoYW5uZWxOYW1lIiwgInN0YXRlIiwgIm1pY3JvU2Vjb25kcyIsICJtc2dFdmVudCIsICJjbG9zZSIsICJjaGFubmVsU3RhdGUiLCAicG9zdE1lc3NhZ2UiLCAibWVzc2FnZUpzb24iLCAiUFJPTUlTRV9SRVNPTFZFRF9WT0lEIiwgImVyciIsICJvbk1lc3NhZ2UiLCAiZm4iLCAiY2FuQmVVc2VkIiwgImF2ZXJhZ2VSZXNwb25zZVRpbWUiLCAidHlwZSIsICJOYXRpdmVNZXRob2QiLCAiaW5pdF9uYXRpdmUiLCAiX19lc21NaW4iLCAiaW5pdF91dGlsIiwgInJlbW92ZVRvb09sZFZhbHVlcyIsICJvYmxpdmlvdXNTZXQiLCAib2xkZXJUaGVuIiwgIm5vdyIsICJpdGVyYXRvciIsICJuZXh0IiwgInZhbHVlIiwgIk9ibGl2aW91c1NldCIsICJpbml0X3NyYyIsICJfX2VzbU1pbiIsICJ0dGwiLCAidmFsdWVUaW1lIiwgImZpbGxPcHRpb25zV2l0aERlZmF1bHRzIiwgIm9yaWdpbmFsT3B0aW9ucyIsICJvcHRpb25zIiwgImluaXRfb3B0aW9ucyIsICJfX2VzbU1pbiIsICJnZXRJZGIiLCAiY29tbWl0SW5kZXhlZERCVHJhbnNhY3Rpb24iLCAidHgiLCAiY3JlYXRlRGF0YWJhc2UiLCAiY2hhbm5lbE5hbWUiLCAiSW5kZXhlZERCIiwgImRiTmFtZSIsICJEQl9QUkVGSVgiLCAib3BlblJlcXVlc3QiLCAiZXYiLCAiZGIiLCAiT0JKRUNUX1NUT1JFX0lEIiwgInJlcyIsICJyZWoiLCAid3JpdGVNZXNzYWdlIiwgInJlYWRlclV1aWQiLCAibWVzc2FnZUpzb24iLCAidGltZSIsICJ3cml0ZU9iamVjdCIsICJUUkFOU0FDVElPTl9TRVRUSU5HUyIsICJvYmplY3RTdG9yZSIsICJnZXRBbGxNZXNzYWdlcyIsICJyZXQiLCAiY3Vyc29yIiwgImdldE1lc3NhZ2VzSGlnaGVyVGhhbiIsICJsYXN0Q3Vyc29ySWQiLCAia2V5UmFuZ2VWYWx1ZSIsICJnZXRBbGxSZXF1ZXN0IiwgImVyciIsICJlIiwgIm9wZW5DdXJzb3IiLCAib3BlbkN1cnNvclJlcXVlc3QiLCAicmVtb3ZlTWVzc2FnZXNCeUlkIiwgImNoYW5uZWxTdGF0ZSIsICJpZHMiLCAiaWQiLCAiZGVsZXRlUmVxdWVzdCIsICJnZXRPbGRNZXNzYWdlcyIsICJ0dGwiLCAib2xkZXJUaGVuIiwgIm1zZ09iayIsICJjbGVhbk9sZE1lc3NhZ2VzIiwgInRvb09sZCIsICJtc2ciLCAiY3JlYXRlIiwgIm9wdGlvbnMiLCAiZmlsbE9wdGlvbnNXaXRoRGVmYXVsdHMiLCAic3RhdGUiLCAicmFuZG9tVG9rZW4iLCAiT2JsaXZpb3VzU2V0IiwgIlBST01JU0VfUkVTT0xWRURfVk9JRCIsICJfcmVhZExvb3AiLCAicmVhZE5ld01lc3NhZ2VzIiwgInNsZWVwIiwgIl9maWx0ZXJNZXNzYWdlIiwgIm1zZ09iaiIsICJuZXdlck1lc3NhZ2VzIiwgInVzZU1lc3NhZ2VzIiwgIm1zZ09iakEiLCAibXNnT2JqQiIsICJjbG9zZSIsICJwb3N0TWVzc2FnZSIsICJyYW5kb21JbnQiLCAib25NZXNzYWdlIiwgImZuIiwgImNhbkJlVXNlZCIsICJhdmVyYWdlUmVzcG9uc2VUaW1lIiwgIm1pY3JvU2Vjb25kcyIsICJ0eXBlIiwgIkluZGV4ZWREQk1ldGhvZCIsICJpbml0X2luZGV4ZWRfZGIiLCAiX19lc21NaW4iLCAiaW5pdF91dGlsIiwgImluaXRfc3JjIiwgImluaXRfb3B0aW9ucyIsICJnZXRMb2NhbFN0b3JhZ2UiLCAibG9jYWxTdG9yYWdlIiwgInN0b3JhZ2VLZXkiLCAiY2hhbm5lbE5hbWUiLCAiS0VZX1BSRUZJWCIsICJwb3N0TWVzc2FnZSIsICJjaGFubmVsU3RhdGUiLCAibWVzc2FnZUpzb24iLCAicmVzIiwgInNsZWVwIiwgImtleSIsICJ3cml0ZU9iaiIsICJyYW5kb21Ub2tlbiIsICJ2YWx1ZSIsICJldiIsICJhZGRTdG9yYWdlRXZlbnRMaXN0ZW5lciIsICJmbiIsICJsaXN0ZW5lciIsICJyZW1vdmVTdG9yYWdlRXZlbnRMaXN0ZW5lciIsICJjcmVhdGUiLCAib3B0aW9ucyIsICJmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyIsICJjYW5CZVVzZWQiLCAidXVpZCIsICJlTUlzIiwgIk9ibGl2aW91c1NldCIsICJzdGF0ZSIsICJtc2dPYmoiLCAiY2xvc2UiLCAib25NZXNzYWdlIiwgInRpbWUiLCAibHMiLCAiYXZlcmFnZVJlc3BvbnNlVGltZSIsICJkZWZhdWx0VGltZSIsICJ1c2VyQWdlbnQiLCAibWljcm9TZWNvbmRzIiwgInR5cGUiLCAiTG9jYWxzdG9yYWdlTWV0aG9kIiwgImluaXRfbG9jYWxzdG9yYWdlIiwgIl9fZXNtTWluIiwgImluaXRfc3JjIiwgImluaXRfb3B0aW9ucyIsICJpbml0X3V0aWwiLCAiY3JlYXRlIiwgImNoYW5uZWxOYW1lIiwgInN0YXRlIiwgIm1pY3JvU2Vjb25kcyIsICJTSU1VTEFURV9DSEFOTkVMUyIsICJjbG9zZSIsICJjaGFubmVsU3RhdGUiLCAicG9zdE1lc3NhZ2UiLCAibWVzc2FnZUpzb24iLCAicmVzIiwgImNoYW5uZWxBcnJheSIsICJjaGFubmVsIiwgIlNJTVVMQVRFX0RFTEFZX1RJTUUiLCAib25NZXNzYWdlIiwgImZuIiwgImNhbkJlVXNlZCIsICJhdmVyYWdlUmVzcG9uc2VUaW1lIiwgInR5cGUiLCAiU2ltdWxhdGVNZXRob2QiLCAiaW5pdF9zaW11bGF0ZSIsICJfX2VzbU1pbiIsICJpbml0X3V0aWwiLCAiY2hvb3NlTWV0aG9kIiwgIm9wdGlvbnMiLCAiY2hvb3NlTWV0aG9kcyIsICJNRVRIT0RTIiwgIlNpbXVsYXRlTWV0aG9kIiwgInJldCIsICJtIiwgInVzZU1ldGhvZCIsICJtZXRob2QiLCAiaW5pdF9tZXRob2RfY2hvb3NlciIsICJfX2VzbU1pbiIsICJpbml0X25hdGl2ZSIsICJpbml0X2luZGV4ZWRfZGIiLCAiaW5pdF9sb2NhbHN0b3JhZ2UiLCAiaW5pdF9zaW11bGF0ZSIsICJOYXRpdmVNZXRob2QiLCAiSW5kZXhlZERCTWV0aG9kIiwgIkxvY2Fsc3RvcmFnZU1ldGhvZCIsICJjbGVhck5vZGVGb2xkZXIiLCAib3B0aW9ucyIsICJmaWxsT3B0aW9uc1dpdGhEZWZhdWx0cyIsICJtZXRob2QiLCAiY2hvb3NlTWV0aG9kIiwgIlBST01JU0VfUkVTT0xWRURfRkFMU0UiLCAiZW5mb3JjZU9wdGlvbnMiLCAiRU5GT1JDRURfT1BUSU9OUyIsICJfcG9zdCIsICJicm9hZGNhc3RDaGFubmVsIiwgInR5cGUiLCAibXNnIiwgInRpbWUiLCAibXNnT2JqIiwgImF3YWl0UHJlcGFyZSIsICJQUk9NSVNFX1JFU09MVkVEX1ZPSUQiLCAic2VuZFByb21pc2UiLCAiX3ByZXBhcmVDaGFubmVsIiwgImNoYW5uZWwiLCAibWF5YmVQcm9taXNlIiwgImlzUHJvbWlzZSIsICJzIiwgIl9oYXNNZXNzYWdlTGlzdGVuZXJzIiwgIl9hZGRMaXN0ZW5lck9iamVjdCIsICJvYmoiLCAiX3N0YXJ0TGlzdGVuaW5nIiwgIl9yZW1vdmVMaXN0ZW5lck9iamVjdCIsICJvIiwgIl9zdG9wTGlzdGVuaW5nIiwgImxpc3RlbmVyRm4iLCAibGlzdGVuZXJPYmplY3QiLCAiT1BFTl9CUk9BRENBU1RfQ0hBTk5FTFMiLCAibGFzdElkIiwgIkJyb2FkY2FzdENoYW5uZWwiLCAiaW5pdF9icm9hZGNhc3RfY2hhbm5lbCIsICJfX2VzbU1pbiIsICJpbml0X3V0aWwiLCAiaW5pdF9tZXRob2RfY2hvb3NlciIsICJpbml0X29wdGlvbnMiLCAibmFtZSIsICJmbiIsICJsaXN0ZW5PYmoiLCAiX3RoaXMiLCAiYWRkQnJvd3NlciIsICJmbiIsICJvbGRDbG9zZSIsICJpbml0X2Jyb3dzZXIiLCAiX19lc21NaW4iLCAiYWRkTm9kZSIsICJmbiIsICJlcnIiLCAiaW5pdF9ub2RlIiwgIl9fZXNtTWluIiwgInN0YXJ0TGlzdGVuaW5nIiwgInN0YXJ0ZWRMaXN0ZW5pbmciLCAiVVNFX01FVEhPRCIsICJydW5BbGwiLCAiYWRkIiwgImZuIiwgIkxJU1RFTkVSUyIsICJhZGRSZXR1cm4iLCAicHJvbWlzZXMiLCAicmVtb3ZlQWxsIiwgImdldFNpemUiLCAiaXNOb2RlIiwgImluaXRfZXMiLCAiX19lc21NaW4iLCAiaW5pdF9icm93c2VyIiwgImluaXRfbm9kZSIsICJhZGROb2RlIiwgImFkZEJyb3dzZXIiLCAic2VuZExlYWRlck1lc3NhZ2UiLCAibGVhZGVyRWxlY3RvciIsICJhY3Rpb24iLCAibXNnSnNvbiIsICJiZUxlYWRlciIsICJ1bmxvYWRGbiIsICJhZGQiLCAiaXNMZWFkZXJMaXN0ZW5lciIsICJtc2ciLCAiaW5pdF9sZWFkZXJfZWxlY3Rpb25fdXRpbCIsICJfX2VzbU1pbiIsICJpbml0X2VzIiwgIkxlYWRlckVsZWN0aW9uV2ViTG9jayIsICJpbml0X2xlYWRlcl9lbGVjdGlvbl93ZWJfbG9jayIsICJfX2VzbU1pbiIsICJpbml0X3V0aWwiLCAiaW5pdF9sZWFkZXJfZWxlY3Rpb25fdXRpbCIsICJicm9hZGNhc3RDaGFubmVsIiwgIm9wdGlvbnMiLCAiX3RoaXMiLCAicmFuZG9tVG9rZW4iLCAiX3RoaXMyIiwgImxvY2tzIiwgInJlbGV2YW50TG9ja3MiLCAibG9jayIsICJfdGhpczMiLCAicmV0dXJuUHJvbWlzZSIsICJyZXMiLCAicmVqIiwgInJlamVjdCIsICJiZUxlYWRlciIsICJlcnIiLCAiX2ZuIiwgIl90aGlzNCIsICJsaXN0ZW5lciIsICJ1Rm4iLCAic2VuZExlYWRlck1lc3NhZ2UiLCAiX2F3YWl0TGVhZGVyc2hpcE9uY2UiLCAibGVhZGVyRWxlY3RvciIsICJQUk9NSVNFX1JFU09MVkVEX1ZPSUQiLCAicmVzIiwgInJlc29sdmVkIiwgImZpbmlzaCIsICJ3aGVuRGVhdGhMaXN0ZW5lciIsICJfdHJ5T25GYWxsQmFjayIsICJzbGVlcCIsICJtc2ciLCAiZmlsbE9wdGlvbnNXaXRoRGVmYXVsdHMiLCAib3B0aW9ucyIsICJjaGFubmVsIiwgImNyZWF0ZUxlYWRlckVsZWN0aW9uIiwgImVsZWN0b3IiLCAic3VwcG9ydHNXZWJMb2NrQVBJIiwgIkxlYWRlckVsZWN0aW9uV2ViTG9jayIsICJMZWFkZXJFbGVjdGlvbiIsICJpbml0X2xlYWRlcl9lbGVjdGlvbiIsICJfX2VzbU1pbiIsICJpbml0X3V0aWwiLCAiaW5pdF9sZWFkZXJfZWxlY3Rpb25fdXRpbCIsICJpbml0X2xlYWRlcl9lbGVjdGlvbl93ZWJfbG9jayIsICJicm9hZGNhc3RDaGFubmVsIiwgIl90aGlzIiwgInJhbmRvbVRva2VuIiwgImhhc0xlYWRlckxpc3RlbmVyIiwgImlzRnJvbUZhbGxiYWNrSW50ZXJ2YWwiLCAiX3RoaXMyIiwgImFwcGx5UnVuIiwgIlBST01JU0VfUkVTT0xWRURfVFJVRSIsICJzdG9wQ3JpdGVyaWEiLCAic3RvcENyaXRlcmlhUHJvbWlzZVJlc29sdmUiLCAic3RvcENyaXRlcmlhUHJvbWlzZSIsICJoYW5kbGVNZXNzYWdlIiwgIndhaXRGb3JBbnN3ZXJUaW1lIiwgInNlbmRMZWFkZXJNZXNzYWdlIiwgImJlTGVhZGVyIiwgImZuIiwgIl90aGlzMyIsICJsaXN0ZW5lciIsICJ1Rm4iLCAiaW5pdF9lc2Jyb3dzZXIiLCAiX19lc21NaW4iLCAiaW5pdF9icm9hZGNhc3RfY2hhbm5lbCIsICJpbml0X2xlYWRlcl9lbGVjdGlvbiIsICJpbml0X2xlYWRlcl9lbGVjdGlvbl91dGlsIiwgImluaXRfZGVlc19jb21tc19wbHVnaW5zIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF90cyIsICJpbml0X2VzYnJvd3NlciIsICJCcm9hZGNhc3RDaGFubmVsIiwgIkRlZXNDb21tcyIsICJpbml0X2RlZXNfY29tbXNfY2xhc3Nlc19kZWVzY29tbXMiLCAiX19lc21NaW4iLCAiaW5pdF9kZWVzX2NvbW1zX3BsdWdpbnMiLCAiZGlzdF90c19leHBvcnRzIiwgIm1lc3NhZ2VBcmciLCAiZXZlbnRBcmciLCAibWVzc2FnZSIsICJyZXNwb25zZSIsICJtZXRob2ROYW1lIiwgIm1ldGhvZEFyZyIsICJoYW5kbGVyRnVuY3Rpb24iLCAiZGlzdF90c19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkRlZXNDb21tcyIsICJpbml0X2Rpc3RfdHMiLCAiX19lc21NaW4iLCAiaW5pdF9kZWVzX2NvbW1zX2NsYXNzZXNfZGVlc2NvbW1zIiwgInJlcXVpcmVfY29tbW9uIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiaXNOb3RoaW5nIiwgInN1YmplY3QiLCAiaXNPYmplY3QiLCAidG9BcnJheSIsICJzZXF1ZW5jZSIsICJleHRlbmQiLCAidGFyZ2V0IiwgInNvdXJjZSIsICJpbmRleCIsICJsZW5ndGgiLCAia2V5IiwgInNvdXJjZUtleXMiLCAicmVwZWF0IiwgInN0cmluZyIsICJjb3VudCIsICJyZXN1bHQiLCAiY3ljbGUiLCAiaXNOZWdhdGl2ZVplcm8iLCAibnVtYmVyIiwgInJlcXVpcmVfZXhjZXB0aW9uIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiWUFNTEV4Y2VwdGlvbiIsICJyZWFzb24iLCAibWFyayIsICJjb21wYWN0IiwgInJlc3VsdCIsICJyZXF1aXJlX21hcmsiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJjb21tb24iLCAiTWFyayIsICJuYW1lIiwgImJ1ZmZlciIsICJwb3NpdGlvbiIsICJsaW5lIiwgImNvbHVtbiIsICJpbmRlbnQiLCAibWF4TGVuZ3RoIiwgImhlYWQiLCAic3RhcnQiLCAidGFpbCIsICJlbmQiLCAic25pcHBldCIsICJjb21wYWN0IiwgIndoZXJlIiwgInJlcXVpcmVfdHlwZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIllBTUxFeGNlcHRpb24iLCAiVFlQRV9DT05TVFJVQ1RPUl9PUFRJT05TIiwgIllBTUxfTk9ERV9LSU5EUyIsICJjb21waWxlU3R5bGVBbGlhc2VzIiwgIm1hcCIsICJyZXN1bHQiLCAic3R5bGUiLCAiYWxpYXMiLCAiVHlwZSIsICJ0YWciLCAib3B0aW9ucyIsICJuYW1lIiwgImRhdGEiLCAicmVxdWlyZV9zY2hlbWEiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJjb21tb24iLCAiWUFNTEV4Y2VwdGlvbiIsICJUeXBlIiwgImNvbXBpbGVMaXN0IiwgInNjaGVtYSIsICJuYW1lIiwgInJlc3VsdCIsICJleGNsdWRlIiwgImluY2x1ZGVkU2NoZW1hIiwgImN1cnJlbnRUeXBlIiwgInByZXZpb3VzVHlwZSIsICJwcmV2aW91c0luZGV4IiwgInR5cGUiLCAiaW5kZXgiLCAiY29tcGlsZU1hcCIsICJsZW5ndGgiLCAiY29sbGVjdFR5cGUiLCAiU2NoZW1hIiwgImRlZmluaXRpb24iLCAic2NoZW1hcyIsICJ0eXBlcyIsICJyZXF1aXJlX3N0ciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlR5cGUiLCAiZGF0YSIsICJyZXF1aXJlX3NlcSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlR5cGUiLCAiZGF0YSIsICJyZXF1aXJlX21hcCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlR5cGUiLCAiZGF0YSIsICJyZXF1aXJlX2ZhaWxzYWZlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiU2NoZW1hIiwgInJlcXVpcmVfbnVsbCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlR5cGUiLCAicmVzb2x2ZVlhbWxOdWxsIiwgImRhdGEiLCAibWF4IiwgImNvbnN0cnVjdFlhbWxOdWxsIiwgImlzTnVsbCIsICJvYmplY3QiLCAicmVxdWlyZV9ib29sIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiVHlwZSIsICJyZXNvbHZlWWFtbEJvb2xlYW4iLCAiZGF0YSIsICJtYXgiLCAiY29uc3RydWN0WWFtbEJvb2xlYW4iLCAiaXNCb29sZWFuIiwgIm9iamVjdCIsICJyZXF1aXJlX2ludCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImNvbW1vbiIsICJUeXBlIiwgImlzSGV4Q29kZSIsICJjIiwgImlzT2N0Q29kZSIsICJpc0RlY0NvZGUiLCAicmVzb2x2ZVlhbWxJbnRlZ2VyIiwgImRhdGEiLCAibWF4IiwgImluZGV4IiwgImhhc0RpZ2l0cyIsICJjaCIsICJjb25zdHJ1Y3RZYW1sSW50ZWdlciIsICJ2YWx1ZSIsICJzaWduIiwgImJhc2UiLCAiZGlnaXRzIiwgInYiLCAiZCIsICJpc0ludGVnZXIiLCAib2JqZWN0IiwgIm9iaiIsICJyZXF1aXJlX2Zsb2F0IiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiY29tbW9uIiwgIlR5cGUiLCAiWUFNTF9GTE9BVF9QQVRURVJOIiwgInJlc29sdmVZYW1sRmxvYXQiLCAiZGF0YSIsICJjb25zdHJ1Y3RZYW1sRmxvYXQiLCAidmFsdWUiLCAic2lnbiIsICJiYXNlIiwgImRpZ2l0cyIsICJ2IiwgImQiLCAiU0NJRU5USUZJQ19XSVRIT1VUX0RPVCIsICJyZXByZXNlbnRZYW1sRmxvYXQiLCAib2JqZWN0IiwgInN0eWxlIiwgInJlcyIsICJpc0Zsb2F0IiwgInJlcXVpcmVfanNvbiIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlNjaGVtYSIsICJyZXF1aXJlX2NvcmUiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJTY2hlbWEiLCAicmVxdWlyZV90aW1lc3RhbXAiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJUeXBlIiwgIllBTUxfREFURV9SRUdFWFAiLCAiWUFNTF9USU1FU1RBTVBfUkVHRVhQIiwgInJlc29sdmVZYW1sVGltZXN0YW1wIiwgImRhdGEiLCAiY29uc3RydWN0WWFtbFRpbWVzdGFtcCIsICJtYXRjaCIsICJ5ZWFyIiwgIm1vbnRoIiwgImRheSIsICJob3VyIiwgIm1pbnV0ZSIsICJzZWNvbmQiLCAiZnJhY3Rpb24iLCAiZGVsdGEiLCAidHpfaG91ciIsICJ0el9taW51dGUiLCAiZGF0ZSIsICJyZXByZXNlbnRZYW1sVGltZXN0YW1wIiwgIm9iamVjdCIsICJyZXF1aXJlX21lcmdlIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiVHlwZSIsICJyZXNvbHZlWWFtbE1lcmdlIiwgImRhdGEiLCAicmVxdWlyZV9iaW5hcnkiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJOb2RlQnVmZmVyIiwgIl9yZXF1aXJlIiwgIl9fcmVxdWlyZSIsICJUeXBlIiwgIkJBU0U2NF9NQVAiLCAicmVzb2x2ZVlhbWxCaW5hcnkiLCAiZGF0YSIsICJjb2RlIiwgImlkeCIsICJiaXRsZW4iLCAibWF4IiwgIm1hcCIsICJjb25zdHJ1Y3RZYW1sQmluYXJ5IiwgInRhaWxiaXRzIiwgImlucHV0IiwgImJpdHMiLCAicmVzdWx0IiwgInJlcHJlc2VudFlhbWxCaW5hcnkiLCAib2JqZWN0IiwgInRhaWwiLCAiaXNCaW5hcnkiLCAicmVxdWlyZV9vbWFwIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiVHlwZSIsICJfaGFzT3duUHJvcGVydHkiLCAiX3RvU3RyaW5nIiwgInJlc29sdmVZYW1sT21hcCIsICJkYXRhIiwgIm9iamVjdEtleXMiLCAiaW5kZXgiLCAibGVuZ3RoIiwgInBhaXIiLCAicGFpcktleSIsICJwYWlySGFzS2V5IiwgIm9iamVjdCIsICJjb25zdHJ1Y3RZYW1sT21hcCIsICJyZXF1aXJlX3BhaXJzIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiVHlwZSIsICJfdG9TdHJpbmciLCAicmVzb2x2ZVlhbWxQYWlycyIsICJkYXRhIiwgImluZGV4IiwgImxlbmd0aCIsICJwYWlyIiwgImtleXMiLCAicmVzdWx0IiwgIm9iamVjdCIsICJjb25zdHJ1Y3RZYW1sUGFpcnMiLCAicmVxdWlyZV9zZXQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJUeXBlIiwgIl9oYXNPd25Qcm9wZXJ0eSIsICJyZXNvbHZlWWFtbFNldCIsICJkYXRhIiwgImtleSIsICJvYmplY3QiLCAiY29uc3RydWN0WWFtbFNldCIsICJyZXF1aXJlX2RlZmF1bHRfc2FmZSIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlNjaGVtYSIsICJyZXF1aXJlX3VuZGVmaW5lZCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlR5cGUiLCAicmVzb2x2ZUphdmFzY3JpcHRVbmRlZmluZWQiLCAiY29uc3RydWN0SmF2YXNjcmlwdFVuZGVmaW5lZCIsICJyZXByZXNlbnRKYXZhc2NyaXB0VW5kZWZpbmVkIiwgImlzVW5kZWZpbmVkIiwgIm9iamVjdCIsICJyZXF1aXJlX3JlZ2V4cCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlR5cGUiLCAicmVzb2x2ZUphdmFzY3JpcHRSZWdFeHAiLCAiZGF0YSIsICJyZWdleHAiLCAidGFpbCIsICJtb2RpZmllcnMiLCAiY29uc3RydWN0SmF2YXNjcmlwdFJlZ0V4cCIsICJyZXByZXNlbnRKYXZhc2NyaXB0UmVnRXhwIiwgIm9iamVjdCIsICJyZXN1bHQiLCAiaXNSZWdFeHAiLCAicmVxdWlyZV9mdW5jdGlvbiIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImVzcHJpbWEiLCAiX3JlcXVpcmUiLCAiX19yZXF1aXJlIiwgIlR5cGUiLCAicmVzb2x2ZUphdmFzY3JpcHRGdW5jdGlvbiIsICJkYXRhIiwgInNvdXJjZSIsICJhc3QiLCAiY29uc3RydWN0SmF2YXNjcmlwdEZ1bmN0aW9uIiwgInBhcmFtcyIsICJib2R5IiwgInBhcmFtIiwgInJlcHJlc2VudEphdmFzY3JpcHRGdW5jdGlvbiIsICJvYmplY3QiLCAiaXNGdW5jdGlvbiIsICJyZXF1aXJlX2RlZmF1bHRfZnVsbCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlNjaGVtYSIsICJyZXF1aXJlX2xvYWRlciIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImNvbW1vbiIsICJZQU1MRXhjZXB0aW9uIiwgIk1hcmsiLCAiREVGQVVMVF9TQUZFX1NDSEVNQSIsICJERUZBVUxUX0ZVTExfU0NIRU1BIiwgIl9oYXNPd25Qcm9wZXJ0eSIsICJDT05URVhUX0ZMT1dfSU4iLCAiQ09OVEVYVF9GTE9XX09VVCIsICJDT05URVhUX0JMT0NLX0lOIiwgIkNPTlRFWFRfQkxPQ0tfT1VUIiwgIkNIT01QSU5HX0NMSVAiLCAiQ0hPTVBJTkdfU1RSSVAiLCAiQ0hPTVBJTkdfS0VFUCIsICJQQVRURVJOX05PTl9QUklOVEFCTEUiLCAiUEFUVEVSTl9OT05fQVNDSUlfTElORV9CUkVBS1MiLCAiUEFUVEVSTl9GTE9XX0lORElDQVRPUlMiLCAiUEFUVEVSTl9UQUdfSEFORExFIiwgIlBBVFRFUk5fVEFHX1VSSSIsICJfY2xhc3MiLCAib2JqIiwgImlzX0VPTCIsICJjIiwgImlzX1dISVRFX1NQQUNFIiwgImlzX1dTX09SX0VPTCIsICJpc19GTE9XX0lORElDQVRPUiIsICJmcm9tSGV4Q29kZSIsICJsYyIsICJlc2NhcGVkSGV4TGVuIiwgImZyb21EZWNpbWFsQ29kZSIsICJzaW1wbGVFc2NhcGVTZXF1ZW5jZSIsICJjaGFyRnJvbUNvZGVwb2ludCIsICJzZXRQcm9wZXJ0eSIsICJvYmplY3QiLCAia2V5IiwgInZhbHVlIiwgInNpbXBsZUVzY2FwZUNoZWNrIiwgInNpbXBsZUVzY2FwZU1hcCIsICJpIiwgIlN0YXRlIiwgImlucHV0IiwgIm9wdGlvbnMiLCAiZ2VuZXJhdGVFcnJvciIsICJzdGF0ZSIsICJtZXNzYWdlIiwgInRocm93RXJyb3IiLCAidGhyb3dXYXJuaW5nIiwgImRpcmVjdGl2ZUhhbmRsZXJzIiwgIm5hbWUiLCAiYXJncyIsICJtYXRjaCIsICJtYWpvciIsICJtaW5vciIsICJoYW5kbGUiLCAicHJlZml4IiwgImNhcHR1cmVTZWdtZW50IiwgInN0YXJ0IiwgImVuZCIsICJjaGVja0pzb24iLCAiX3Bvc2l0aW9uIiwgIl9sZW5ndGgiLCAiX2NoYXJhY3RlciIsICJfcmVzdWx0IiwgIm1lcmdlTWFwcGluZ3MiLCAiZGVzdGluYXRpb24iLCAic291cmNlIiwgIm92ZXJyaWRhYmxlS2V5cyIsICJzb3VyY2VLZXlzIiwgImluZGV4IiwgInF1YW50aXR5IiwgInN0b3JlTWFwcGluZ1BhaXIiLCAia2V5VGFnIiwgImtleU5vZGUiLCAidmFsdWVOb2RlIiwgInN0YXJ0TGluZSIsICJzdGFydFBvcyIsICJyZWFkTGluZUJyZWFrIiwgImNoIiwgInNraXBTZXBhcmF0aW9uU3BhY2UiLCAiYWxsb3dDb21tZW50cyIsICJjaGVja0luZGVudCIsICJsaW5lQnJlYWtzIiwgInRlc3REb2N1bWVudFNlcGFyYXRvciIsICJ3cml0ZUZvbGRlZExpbmVzIiwgImNvdW50IiwgInJlYWRQbGFpblNjYWxhciIsICJub2RlSW5kZW50IiwgIndpdGhpbkZsb3dDb2xsZWN0aW9uIiwgInByZWNlZGluZyIsICJmb2xsb3dpbmciLCAiY2FwdHVyZVN0YXJ0IiwgImNhcHR1cmVFbmQiLCAiaGFzUGVuZGluZ0NvbnRlbnQiLCAiX2xpbmUiLCAiX2xpbmVTdGFydCIsICJfbGluZUluZGVudCIsICJfa2luZCIsICJyZWFkU2luZ2xlUXVvdGVkU2NhbGFyIiwgInJlYWREb3VibGVRdW90ZWRTY2FsYXIiLCAiaGV4TGVuZ3RoIiwgImhleFJlc3VsdCIsICJ0bXAiLCAicmVhZEZsb3dDb2xsZWN0aW9uIiwgInJlYWROZXh0IiwgIl90YWciLCAiX2FuY2hvciIsICJ0ZXJtaW5hdG9yIiwgImlzUGFpciIsICJpc0V4cGxpY2l0UGFpciIsICJpc01hcHBpbmciLCAiY29tcG9zZU5vZGUiLCAicmVhZEJsb2NrU2NhbGFyIiwgImZvbGRpbmciLCAiY2hvbXBpbmciLCAiZGlkUmVhZENvbnRlbnQiLCAiZGV0ZWN0ZWRJbmRlbnQiLCAidGV4dEluZGVudCIsICJlbXB0eUxpbmVzIiwgImF0TW9yZUluZGVudGVkIiwgInJlYWRCbG9ja1NlcXVlbmNlIiwgImRldGVjdGVkIiwgInJlYWRCbG9ja01hcHBpbmciLCAiZmxvd0luZGVudCIsICJhbGxvd0NvbXBhY3QiLCAiX3BvcyIsICJhdEV4cGxpY2l0S2V5IiwgInJlYWRUYWdQcm9wZXJ0eSIsICJpc1ZlcmJhdGltIiwgImlzTmFtZWQiLCAidGFnSGFuZGxlIiwgInRhZ05hbWUiLCAicmVhZEFuY2hvclByb3BlcnR5IiwgInJlYWRBbGlhcyIsICJhbGlhcyIsICJwYXJlbnRJbmRlbnQiLCAibm9kZUNvbnRleHQiLCAiYWxsb3dUb1NlZWsiLCAiYWxsb3dCbG9ja1N0eWxlcyIsICJhbGxvd0Jsb2NrU2NhbGFycyIsICJhbGxvd0Jsb2NrQ29sbGVjdGlvbnMiLCAiaW5kZW50U3RhdHVzIiwgImF0TmV3TGluZSIsICJoYXNDb250ZW50IiwgInR5cGVJbmRleCIsICJ0eXBlUXVhbnRpdHkiLCAidHlwZSIsICJibG9ja0luZGVudCIsICJyZWFkRG9jdW1lbnQiLCAiZG9jdW1lbnRTdGFydCIsICJkaXJlY3RpdmVOYW1lIiwgImRpcmVjdGl2ZUFyZ3MiLCAiaGFzRGlyZWN0aXZlcyIsICJsb2FkRG9jdW1lbnRzIiwgIm51bGxwb3MiLCAibG9hZEFsbCIsICJpdGVyYXRvciIsICJkb2N1bWVudHMiLCAibGVuZ3RoIiwgImxvYWQiLCAic2FmZUxvYWRBbGwiLCAic2FmZUxvYWQiLCAicmVxdWlyZV9kdW1wZXIiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJjb21tb24iLCAiWUFNTEV4Y2VwdGlvbiIsICJERUZBVUxUX0ZVTExfU0NIRU1BIiwgIkRFRkFVTFRfU0FGRV9TQ0hFTUEiLCAiX3RvU3RyaW5nIiwgIl9oYXNPd25Qcm9wZXJ0eSIsICJDSEFSX1RBQiIsICJDSEFSX0xJTkVfRkVFRCIsICJDSEFSX0NBUlJJQUdFX1JFVFVSTiIsICJDSEFSX1NQQUNFIiwgIkNIQVJfRVhDTEFNQVRJT04iLCAiQ0hBUl9ET1VCTEVfUVVPVEUiLCAiQ0hBUl9TSEFSUCIsICJDSEFSX1BFUkNFTlQiLCAiQ0hBUl9BTVBFUlNBTkQiLCAiQ0hBUl9TSU5HTEVfUVVPVEUiLCAiQ0hBUl9BU1RFUklTSyIsICJDSEFSX0NPTU1BIiwgIkNIQVJfTUlOVVMiLCAiQ0hBUl9DT0xPTiIsICJDSEFSX0VRVUFMUyIsICJDSEFSX0dSRUFURVJfVEhBTiIsICJDSEFSX1FVRVNUSU9OIiwgIkNIQVJfQ09NTUVSQ0lBTF9BVCIsICJDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQiLCAiQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCIsICJDSEFSX0dSQVZFX0FDQ0VOVCIsICJDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVCIsICJDSEFSX1ZFUlRJQ0FMX0xJTkUiLCAiQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUIiwgIkVTQ0FQRV9TRVFVRU5DRVMiLCAiREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVgiLCAiY29tcGlsZVN0eWxlTWFwIiwgInNjaGVtYSIsICJtYXAiLCAicmVzdWx0IiwgImtleXMiLCAiaW5kZXgiLCAibGVuZ3RoIiwgInRhZyIsICJzdHlsZSIsICJ0eXBlIiwgImVuY29kZUhleCIsICJjaGFyYWN0ZXIiLCAic3RyaW5nIiwgImhhbmRsZSIsICJTdGF0ZSIsICJvcHRpb25zIiwgImluZGVudFN0cmluZyIsICJzcGFjZXMiLCAiaW5kIiwgInBvc2l0aW9uIiwgIm5leHQiLCAibGluZSIsICJnZW5lcmF0ZU5leHRMaW5lIiwgInN0YXRlIiwgImxldmVsIiwgInRlc3RJbXBsaWNpdFJlc29sdmluZyIsICJzdHIiLCAiaXNXaGl0ZXNwYWNlIiwgImMiLCAiaXNQcmludGFibGUiLCAiaXNOc0NoYXIiLCAiaXNQbGFpblNhZmUiLCAicHJldiIsICJpc1BsYWluU2FmZUZpcnN0IiwgIm5lZWRJbmRlbnRJbmRpY2F0b3IiLCAibGVhZGluZ1NwYWNlUmUiLCAiU1RZTEVfUExBSU4iLCAiU1RZTEVfU0lOR0xFIiwgIlNUWUxFX0xJVEVSQUwiLCAiU1RZTEVfRk9MREVEIiwgIlNUWUxFX0RPVUJMRSIsICJjaG9vc2VTY2FsYXJTdHlsZSIsICJzaW5nbGVMaW5lT25seSIsICJpbmRlbnRQZXJMZXZlbCIsICJsaW5lV2lkdGgiLCAidGVzdEFtYmlndW91c1R5cGUiLCAiaSIsICJjaGFyIiwgInByZXZfY2hhciIsICJoYXNMaW5lQnJlYWsiLCAiaGFzRm9sZGFibGVMaW5lIiwgInNob3VsZFRyYWNrV2lkdGgiLCAicHJldmlvdXNMaW5lQnJlYWsiLCAicGxhaW4iLCAid3JpdGVTY2FsYXIiLCAiaXNrZXkiLCAiaW5kZW50IiwgInRlc3RBbWJpZ3VpdHkiLCAiYmxvY2tIZWFkZXIiLCAiZHJvcEVuZGluZ05ld2xpbmUiLCAiZm9sZFN0cmluZyIsICJlc2NhcGVTdHJpbmciLCAiaW5kZW50SW5kaWNhdG9yIiwgImNsaXAiLCAia2VlcCIsICJjaG9tcCIsICJ3aWR0aCIsICJsaW5lUmUiLCAibmV4dExGIiwgImZvbGRMaW5lIiwgInByZXZNb3JlSW5kZW50ZWQiLCAibW9yZUluZGVudGVkIiwgIm1hdGNoIiwgInByZWZpeCIsICJicmVha1JlIiwgInN0YXJ0IiwgImVuZCIsICJjdXJyIiwgIm5leHRDaGFyIiwgImVzY2FwZVNlcSIsICJ3cml0ZUZsb3dTZXF1ZW5jZSIsICJvYmplY3QiLCAiX3Jlc3VsdCIsICJfdGFnIiwgIndyaXRlTm9kZSIsICJ3cml0ZUJsb2NrU2VxdWVuY2UiLCAiY29tcGFjdCIsICJ3cml0ZUZsb3dNYXBwaW5nIiwgIm9iamVjdEtleUxpc3QiLCAib2JqZWN0S2V5IiwgIm9iamVjdFZhbHVlIiwgInBhaXJCdWZmZXIiLCAid3JpdGVCbG9ja01hcHBpbmciLCAiZXhwbGljaXRQYWlyIiwgImRldGVjdFR5cGUiLCAiZXhwbGljaXQiLCAidHlwZUxpc3QiLCAiYmxvY2siLCAib2JqZWN0T3JBcnJheSIsICJkdXBsaWNhdGVJbmRleCIsICJkdXBsaWNhdGUiLCAiYXJyYXlMZXZlbCIsICJnZXREdXBsaWNhdGVSZWZlcmVuY2VzIiwgIm9iamVjdHMiLCAiZHVwbGljYXRlc0luZGV4ZXMiLCAiaW5zcGVjdE5vZGUiLCAiZHVtcCIsICJpbnB1dCIsICJzYWZlRHVtcCIsICJyZXF1aXJlX2pzX3lhbWwiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJsb2FkZXIiLCAiZHVtcGVyIiwgImRlcHJlY2F0ZWQiLCAibmFtZSIsICJyZXF1aXJlX2pzX3lhbWwiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJ5YW1sIiwgImpzWWFtbCIsICJfX2ltcG9ydFN0YXIiLCAiZXhwb3J0cyIsICJwbHVnaW5zIiwgIl9faW1wb3J0U3RhciIsICJleHBvcnRzIiwgInlhbWxTdHJpbmdBcmciLCAib3B0aW9uc0FyZyIsICJvYmplY3RBcmciLCAiYmFpbCIsICJlcnJvciIsICJpbml0X2JhaWwiLCAiX19lc21NaW4iLCAicmVxdWlyZV9leHRlbmQiLCAiX19jb21tb25KU01pbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJoYXNPd24iLCAidG9TdHIiLCAiZGVmaW5lUHJvcGVydHkiLCAiZ09QRCIsICJpc0FycmF5IiwgImFyciIsICJpc1BsYWluT2JqZWN0IiwgIm9iaiIsICJoYXNPd25Db25zdHJ1Y3RvciIsICJoYXNJc1Byb3RvdHlwZU9mIiwgImtleSIsICJzZXRQcm9wZXJ0eSIsICJ0YXJnZXQiLCAib3B0aW9ucyIsICJnZXRQcm9wZXJ0eSIsICJuYW1lIiwgImV4dGVuZCIsICJzcmMiLCAiY29weSIsICJjb3B5SXNBcnJheSIsICJjbG9uZSIsICJpIiwgImxlbmd0aCIsICJkZWVwIiwgImluaXRfZGVmYXVsdCIsICJfX2VzbU1pbiIsICJpc1BsYWluT2JqZWN0IiwgInZhbHVlIiwgInByb3RvdHlwZSIsICJpbml0X2lzX3BsYWluX29iaiIsICJfX2VzbU1pbiIsICJ0cm91Z2giLCAiZm5zIiwgInBpcGVsaW5lIiwgInJ1biIsICJ1c2UiLCAidmFsdWVzIiwgIm1pZGRsZXdhcmVJbmRleCIsICJjYWxsYmFjayIsICJuZXh0IiwgImVycm9yIiwgIm91dHB1dCIsICJmbiIsICJpbmRleCIsICJ3cmFwIiwgIm1pZGRlbHdhcmUiLCAibWlkZGxld2FyZSIsICJjYWxsZWQiLCAid3JhcHBlZCIsICJwYXJhbWV0ZXJzIiwgImZuRXhwZWN0c0NhbGxiYWNrIiwgInJlc3VsdCIsICJkb25lIiwgImV4Y2VwdGlvbiIsICJ0aGVuIiwgInZhbHVlIiwgImluaXRfbGliIiwgIl9fZXNtTWluIiwgImluaXRfdHJvdWdoIiwgIl9fZXNtTWluIiwgImluaXRfbGliIiwgInN0cmluZ2lmeVBvc2l0aW9uIiwgInZhbHVlIiwgInBvc2l0aW9uIiwgInBvaW50IiwgImluZGV4IiwgInBvcyIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X3VuaXN0X3V0aWxfc3RyaW5naWZ5X3Bvc2l0aW9uIiwgIl9fZXNtTWluIiwgImluaXRfbGliIiwgIlZGaWxlTWVzc2FnZSIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X3VuaXN0X3V0aWxfc3RyaW5naWZ5X3Bvc2l0aW9uIiwgImNhdXNlT3JSZWFzb24iLCAib3B0aW9uc09yUGFyZW50T3JQbGFjZSIsICJvcmlnaW4iLCAicmVhc29uIiwgIm9wdGlvbnMiLCAibGVnYWN5Q2F1c2UiLCAiaW5kZXgiLCAicGFyZW50IiwgInN0YXJ0IiwgInN0cmluZ2lmeVBvc2l0aW9uIiwgImluaXRfdmZpbGVfbWVzc2FnZSIsICJfX2VzbU1pbiIsICJpbml0X2xpYiIsICJiYXNlbmFtZSIsICJwYXRoIiwgImV4dG5hbWUiLCAiYXNzZXJ0UGF0aCIsICJzdGFydCIsICJlbmQiLCAiaW5kZXgiLCAic2Vlbk5vblNsYXNoIiwgImZpcnN0Tm9uU2xhc2hFbmQiLCAiZXh0bmFtZUluZGV4IiwgImRpcm5hbWUiLCAidW5tYXRjaGVkU2xhc2giLCAic3RhcnRQYXJ0IiwgInN0YXJ0RG90IiwgInByZURvdFN0YXRlIiwgImNvZGUiLCAiam9pbiIsICJzZWdtZW50cyIsICJqb2luZWQiLCAibm9ybWFsaXplIiwgImFic29sdXRlIiwgInZhbHVlIiwgIm5vcm1hbGl6ZVN0cmluZyIsICJhbGxvd0Fib3ZlUm9vdCIsICJyZXN1bHQiLCAibGFzdFNlZ21lbnRMZW5ndGgiLCAibGFzdFNsYXNoIiwgImRvdHMiLCAibGFzdFNsYXNoSW5kZXgiLCAibWlucGF0aCIsICJpbml0X21pbnBhdGhfYnJvd3NlciIsICJfX2VzbU1pbiIsICJjd2QiLCAibWlucHJvYyIsICJpbml0X21pbnByb2NfYnJvd3NlciIsICJfX2VzbU1pbiIsICJpc1VybCIsICJmaWxlVXJsT3JQYXRoIiwgImluaXRfbWludXJsX3NoYXJlZCIsICJfX2VzbU1pbiIsICJ1cmxUb1BhdGgiLCAicGF0aCIsICJpc1VybCIsICJlcnJvciIsICJnZXRQYXRoRnJvbVVSTFBvc2l4IiwgInVybCIsICJwYXRobmFtZSIsICJpbmRleCIsICJ0aGlyZCIsICJpbml0X21pbnVybF9icm93c2VyIiwgIl9fZXNtTWluIiwgImluaXRfbWludXJsX3NoYXJlZCIsICJhc3NlcnRQYXJ0IiwgInBhcnQiLCAibmFtZSIsICJtaW5wYXRoIiwgImFzc2VydE5vbkVtcHR5IiwgImFzc2VydFBhdGgiLCAicGF0aCIsICJpc1VpbnQ4QXJyYXkiLCAidmFsdWUiLCAib3JkZXIiLCAiVkZpbGUiLCAiaW5pdF9saWIiLCAiX19lc21NaW4iLCAiaW5pdF92ZmlsZV9tZXNzYWdlIiwgImluaXRfbWlucGF0aF9icm93c2VyIiwgImluaXRfbWlucHJvY19icm93c2VyIiwgImluaXRfbWludXJsX2Jyb3dzZXIiLCAib3B0aW9ucyIsICJpc1VybCIsICJtaW5wcm9jIiwgImluZGV4IiwgImZpZWxkIiwgImJhc2VuYW1lIiwgImRpcm5hbWUiLCAiZXh0bmFtZSIsICJ1cmxUb1BhdGgiLCAic3RlbSIsICJjYXVzZU9yUmVhc29uIiwgIm9wdGlvbnNPclBhcmVudE9yUGxhY2UiLCAib3JpZ2luIiwgIm1lc3NhZ2UiLCAiVkZpbGVNZXNzYWdlIiwgImVuY29kaW5nIiwgImluaXRfdmZpbGUiLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAiQ2FsbGFibGVJbnN0YW5jZSIsICJpbml0X2NhbGxhYmxlX2luc3RhbmNlIiwgIl9fZXNtTWluIiwgInByb3BlcnR5IiwgInByb3RvIiwgInZhbHVlIiwgImFwcGx5IiwgImFzc2VydFBhcnNlciIsICJuYW1lIiwgInZhbHVlIiwgImFzc2VydENvbXBpbGVyIiwgImFzc2VydFVuZnJvemVuIiwgImZyb3plbiIsICJhc3NlcnROb2RlIiwgIm5vZGUiLCAiaXNQbGFpbk9iamVjdCIsICJhc3NlcnREb25lIiwgImFzeW5jTmFtZSIsICJjb21wbGV0ZSIsICJ2ZmlsZSIsICJsb29rc0xpa2VBVkZpbGUiLCAiVkZpbGUiLCAibG9va3NMaWtlQVZhbHVlIiwgImlzVWludDhBcnJheSIsICJpbXBvcnRfZXh0ZW5kIiwgIm93biIsICJQcm9jZXNzb3IiLCAidW5pZmllZCIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X2JhaWwiLCAiaW5pdF9kZWZhdWx0IiwgImluaXRfaXNfcGxhaW5fb2JqIiwgImluaXRfdHJvdWdoIiwgImluaXRfdmZpbGUiLCAiaW5pdF9jYWxsYWJsZV9pbnN0YW5jZSIsICJfUHJvY2Vzc29yIiwgIkNhbGxhYmxlSW5zdGFuY2UiLCAidHJvdWdoIiwgImRlc3RpbmF0aW9uIiwgImluZGV4IiwgImF0dGFjaGVyIiwgImV4dGVuZCIsICJrZXkiLCAic2VsZiIsICJvcHRpb25zIiwgInRyYW5zZm9ybWVyIiwgImZpbGUiLCAicmVhbEZpbGUiLCAicGFyc2VyIiwgImRvbmUiLCAiZXhlY3V0b3IiLCAicmVzb2x2ZSIsICJyZWplY3QiLCAicGFyc2VUcmVlIiwgImVycm9yIiwgInRyZWUiLCAicmVhbERvbmUiLCAiY29tcGlsZVRyZWUiLCAiY29tcGlsZVJlc3VsdCIsICJyZXN1bHQiLCAiYmFpbCIsICJ0cmFuc2Zvcm1lcnMiLCAib3V0cHV0VHJlZSIsICJyZXN1bHRpbmdUcmVlIiwgImNvbXBpbGVyIiwgInBhcmFtZXRlcnMiLCAiYXR0YWNoZXJzIiwgIm5hbWVzcGFjZSIsICJhZGRQbHVnaW4iLCAiYWRkTGlzdCIsICJhZGRQcmVzZXQiLCAiYWRkIiwgInBsdWdpbiIsICJwbHVnaW5zIiwgInRoaW5nIiwgImVudHJ5SW5kZXgiLCAicHJpbWFyeSIsICJyZXN0IiwgImN1cnJlbnRQcmltYXJ5IiwgImluaXRfdW5pZmllZCIsICJfX2VzbU1pbiIsICJpbml0X2xpYiIsICJjY291bnQiLCAidmFsdWUiLCAiY2hhcmFjdGVyIiwgInNvdXJjZSIsICJjb3VudCIsICJpbmRleCIsICJpbml0X2Njb3VudCIsICJfX2VzbU1pbiIsICJhc2NpaUNvbnRyb2wiLCAiY29kZSIsICJtYXJrZG93bkxpbmVFbmRpbmciLCAibWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSIsICJtYXJrZG93blNwYWNlIiwgInJlZ2V4Q2hlY2siLCAicmVnZXgiLCAiY2hlY2siLCAiYXNjaWlBbHBoYSIsICJhc2NpaUFscGhhbnVtZXJpYyIsICJhc2NpaUF0ZXh0IiwgImFzY2lpRGlnaXQiLCAiYXNjaWlIZXhEaWdpdCIsICJhc2NpaVB1bmN0dWF0aW9uIiwgInVuaWNvZGVQdW5jdHVhdGlvbiIsICJ1bmljb2RlV2hpdGVzcGFjZSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJfX2VzbU1pbiIsICJhbnlGYWN0b3J5IiwgInRlc3RzIiwgImNoZWNrcyIsICJpbmRleCIsICJjb252ZXJ0IiwgImNhc3RGYWN0b3J5IiwgImFueSIsICJwYXJhbWV0ZXJzIiwgInByb3BlcnRpZXNGYWN0b3J5IiwgImNoZWNrIiwgImNoZWNrQXNSZWNvcmQiLCAiYWxsIiwgIm5vZGUiLCAibm9kZUFzUmVjb3JkIiwgImtleSIsICJ0eXBlRmFjdG9yeSIsICJ0eXBlIiwgInRlc3RGdW5jdGlvbiIsICJ2YWx1ZSIsICJwYXJlbnQiLCAibG9va3NMaWtlQU5vZGUiLCAib2siLCAiaXMiLCAiaW5pdF9saWIiLCAiX19lc21NaW4iLCAidGVzdCIsICJjb250ZXh0IiwgImluaXRfdW5pc3RfdXRpbF9pcyIsICJfX2VzbU1pbiIsICJpbml0X2xpYiIsICJpbml0X2NvbG9yIiwgIl9fZXNtTWluIiwgInZpc2l0UGFyZW50cyIsICJ0cmVlIiwgInRlc3QiLCAidmlzaXRvciIsICJyZXZlcnNlIiwgImNoZWNrIiwgImlzIiwgImNvbnZlcnQiLCAic3RlcCIsICJmYWN0b3J5IiwgIm5vZGUiLCAiaW5kZXgiLCAicGFyZW50cyIsICJ2YWx1ZSIsICJuYW1lIiwgInZpc2l0IiwgInJlc3VsdCIsICJlbXB0eSIsICJzdWJyZXN1bHQiLCAib2Zmc2V0IiwgImdyYW5kcGFyZW50cyIsICJ0b1Jlc3VsdCIsICJFWElUIiwgIm5vZGVBc1BhcmVudCIsICJTS0lQIiwgImNoaWxkIiwgIkNPTlRJTlVFIiwgImluaXRfbGliIiwgIl9fZXNtTWluIiwgImluaXRfdW5pc3RfdXRpbF9pcyIsICJpbml0X2NvbG9yIiwgImluaXRfdW5pc3RfdXRpbF92aXNpdF9wYXJlbnRzIiwgIl9fZXNtTWluIiwgImluaXRfbGliIiwgImZpbmRBbmRSZXBsYWNlIiwgInRyZWUiLCAibGlzdCIsICJvcHRpb25zIiwgImlnbm9yZWQiLCAiY29udmVydCIsICJwYWlycyIsICJ0b1BhaXJzIiwgInBhaXJJbmRleCIsICJ2aXNpdFBhcmVudHMiLCAidmlzaXRvciIsICJub2RlIiwgInBhcmVudHMiLCAiaW5kZXgiLCAiZ3JhbmRwYXJlbnQiLCAicGFyZW50IiwgInNpYmxpbmdzIiwgImhhbmRsZXIiLCAiZmluZCIsICJyZXBsYWNlIiwgInN0YXJ0IiwgImNoYW5nZSIsICJub2RlcyIsICJtYXRjaCIsICJwb3NpdGlvbiIsICJtYXRjaE9iamVjdCIsICJ2YWx1ZSIsICJ0dXBsZU9yTGlzdCIsICJyZXN1bHQiLCAidHVwbGUiLCAidG9FeHByZXNzaW9uIiwgInRvRnVuY3Rpb24iLCAiZXNjYXBlU3RyaW5nUmVnZXhwIiwgImluaXRfbGliIiwgIl9fZXNtTWluIiwgImluaXRfZXNjYXBlX3N0cmluZ19yZWdleHAiLCAiaW5pdF91bmlzdF91dGlsX3Zpc2l0X3BhcmVudHMiLCAiaW5pdF91bmlzdF91dGlsX2lzIiwgImluaXRfbWRhc3RfdXRpbF9maW5kX2FuZF9yZXBsYWNlIiwgIl9fZXNtTWluIiwgImluaXRfbGliIiwgImdmbUF1dG9saW5rTGl0ZXJhbEZyb21NYXJrZG93biIsICJ0cmFuc2Zvcm1HZm1BdXRvbGlua0xpdGVyYWxzIiwgImVudGVyTGl0ZXJhbEF1dG9saW5rIiwgImVudGVyTGl0ZXJhbEF1dG9saW5rVmFsdWUiLCAiZXhpdExpdGVyYWxBdXRvbGluayIsICJleGl0TGl0ZXJhbEF1dG9saW5rRW1haWwiLCAiZXhpdExpdGVyYWxBdXRvbGlua0h0dHAiLCAiZXhpdExpdGVyYWxBdXRvbGlua1d3dyIsICJnZm1BdXRvbGlua0xpdGVyYWxUb01hcmtkb3duIiwgImluQ29uc3RydWN0IiwgIm5vdEluQ29uc3RydWN0IiwgInRva2VuIiwgIm5vZGUiLCAidHJlZSIsICJmaW5kQW5kUmVwbGFjZSIsICJmaW5kVXJsIiwgImZpbmRFbWFpbCIsICJfIiwgInByb3RvY29sIiwgImRvbWFpbiIsICJwYXRoIiwgIm1hdGNoIiwgInByZWZpeCIsICJwcmV2aW91cyIsICJpc0NvcnJlY3REb21haW4iLCAicGFydHMiLCAic3BsaXRVcmwiLCAicmVzdWx0IiwgImF0ZXh0IiwgImxhYmVsIiwgInVybCIsICJ0cmFpbEV4ZWMiLCAidHJhaWwiLCAiY2xvc2luZ1BhcmVuSW5kZXgiLCAib3BlbmluZ1BhcmVucyIsICJjY291bnQiLCAiY2xvc2luZ1BhcmVucyIsICJlbWFpbCIsICJjb2RlIiwgInVuaWNvZGVXaGl0ZXNwYWNlIiwgInVuaWNvZGVQdW5jdHVhdGlvbiIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X2Njb3VudCIsICJpbml0X2RlZmF1bHQiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAiaW5pdF9tZGFzdF91dGlsX2ZpbmRfYW5kX3JlcGxhY2UiLCAiaW5pdF9tZGFzdF91dGlsX2dmbV9hdXRvbGlua19saXRlcmFsIiwgIl9fZXNtTWluIiwgImluaXRfbGliIiwgIm5vcm1hbGl6ZUlkZW50aWZpZXIiLCAidmFsdWUiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9ub3JtYWxpemVfaWRlbnRpZmllciIsICJfX2VzbU1pbiIsICJlbnRlckZvb3Rub3RlQ2FsbFN0cmluZyIsICJlbnRlckZvb3Rub3RlQ2FsbCIsICJ0b2tlbiIsICJlbnRlckZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIiwgImVudGVyRm9vdG5vdGVEZWZpbml0aW9uIiwgImV4aXRGb290bm90ZUNhbGxTdHJpbmciLCAibGFiZWwiLCAibm9kZSIsICJub3JtYWxpemVJZGVudGlmaWVyIiwgImV4aXRGb290bm90ZUNhbGwiLCAiZXhpdEZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIiwgImV4aXRGb290bm90ZURlZmluaXRpb24iLCAiZm9vdG5vdGVSZWZlcmVuY2VQZWVrIiwgImZvb3Rub3RlUmVmZXJlbmNlIiwgIl8iLCAic3RhdGUiLCAiaW5mbyIsICJ0cmFja2VyIiwgInZhbHVlIiwgImV4aXQiLCAic3ViZXhpdCIsICJnZm1Gb290bm90ZUZyb21NYXJrZG93biIsICJnZm1Gb290bm90ZVRvTWFya2Rvd24iLCAib3B0aW9ucyIsICJmaXJzdExpbmVCbGFuayIsICJmb290bm90ZURlZmluaXRpb24iLCAibWFwQWxsIiwgIm1hcEV4Y2VwdEZpcnN0IiwgImxpbmUiLCAiaW5kZXgiLCAiYmxhbmsiLCAiaW5pdF9saWIiLCAiX19lc21NaW4iLCAiaW5pdF9kZWZhdWx0IiwgImluaXRfbWljcm9tYXJrX3V0aWxfbm9ybWFsaXplX2lkZW50aWZpZXIiLCAiaW5pdF9tZGFzdF91dGlsX2dmbV9mb290bm90ZSIsICJfX2VzbU1pbiIsICJpbml0X2xpYiIsICJnZm1TdHJpa2V0aHJvdWdoRnJvbU1hcmtkb3duIiwgImVudGVyU3RyaWtldGhyb3VnaCIsICJleGl0U3RyaWtldGhyb3VnaCIsICJnZm1TdHJpa2V0aHJvdWdoVG9NYXJrZG93biIsICJjb25zdHJ1Y3RzV2l0aG91dFN0cmlrZXRocm91Z2giLCAiaGFuZGxlRGVsZXRlIiwgInRva2VuIiwgIm5vZGUiLCAiXyIsICJzdGF0ZSIsICJpbmZvIiwgInRyYWNrZXIiLCAiZXhpdCIsICJ2YWx1ZSIsICJwZWVrRGVsZXRlIiwgImluaXRfbGliIiwgIl9fZXNtTWluIiwgImluaXRfbWRhc3RfdXRpbF9nZm1fc3RyaWtldGhyb3VnaCIsICJfX2VzbU1pbiIsICJpbml0X2xpYiIsICJkZWZhdWx0U3RyaW5nTGVuZ3RoIiwgInZhbHVlIiwgIm1hcmtkb3duVGFibGUiLCAidGFibGUiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJhbGlnbiIsICJzdHJpbmdMZW5ndGgiLCAiYWxpZ25tZW50cyIsICJjZWxsTWF0cml4IiwgInNpemVNYXRyaXgiLCAibG9uZ2VzdENlbGxCeUNvbHVtbiIsICJtb3N0Q2VsbHNQZXJSb3ciLCAicm93SW5kZXgiLCAicm93IiwgInNpemVzIiwgImNvbHVtbkluZGV4IiwgImNlbGwiLCAic2VyaWFsaXplIiwgInNpemUiLCAidG9BbGlnbm1lbnQiLCAiY29kZSIsICJiZWZvcmUiLCAiYWZ0ZXIiLCAibGluZXMiLCAibGluZSIsICJpbml0X21hcmtkb3duX3RhYmxlIiwgIl9fZXNtTWluIiwgInp3aXRjaCIsICJrZXkiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJvbmUiLCAidmFsdWUiLCAicGFyYW1ldGVycyIsICJmbiIsICJoYW5kbGVycyIsICJvd24iLCAiaWQiLCAiaW5pdF96d2l0Y2giLCAiX19lc21NaW4iLCAiY29uZmlndXJlIiwgImJhc2UiLCAiZXh0ZW5zaW9uIiwgImluZGV4IiwgImtleSIsICJvd24iLCAibGlzdCIsICJtYXAiLCAibGVmdCIsICJyaWdodCIsICJpbml0X2NvbmZpZ3VyZSIsICJfX2VzbU1pbiIsICJibG9ja3F1b3RlIiwgIm5vZGUiLCAiXyIsICJzdGF0ZSIsICJpbmZvIiwgImV4aXQiLCAidHJhY2tlciIsICJ2YWx1ZSIsICJtYXAiLCAibGluZSIsICJibGFuayIsICJpbml0X2Jsb2NrcXVvdGUiLCAiX19lc21NaW4iLCAicGF0dGVybkluU2NvcGUiLCAic3RhY2siLCAicGF0dGVybiIsICJsaXN0SW5TY29wZSIsICJsaXN0IiwgIm5vbmUiLCAiaW5kZXgiLCAiaW5pdF9wYXR0ZXJuX2luX3Njb3BlIiwgIl9fZXNtTWluIiwgImhhcmRCcmVhayIsICJfIiwgIl8xIiwgInN0YXRlIiwgImluZm8iLCAiaW5kZXgiLCAicGF0dGVybkluU2NvcGUiLCAiaW5pdF9icmVhayIsICJfX2VzbU1pbiIsICJpbml0X3BhdHRlcm5faW5fc2NvcGUiLCAibG9uZ2VzdFN0cmVhayIsICJ2YWx1ZSIsICJzdWJzdHJpbmciLCAic291cmNlIiwgImluZGV4IiwgImV4cGVjdGVkIiwgImNvdW50IiwgIm1heCIsICJpbml0X2xvbmdlc3Rfc3RyZWFrIiwgIl9fZXNtTWluIiwgImZvcm1hdENvZGVBc0luZGVudGVkIiwgIm5vZGUiLCAic3RhdGUiLCAiaW5pdF9mb3JtYXRfY29kZV9hc19pbmRlbnRlZCIsICJfX2VzbU1pbiIsICJjaGVja0ZlbmNlIiwgInN0YXRlIiwgIm1hcmtlciIsICJpbml0X2NoZWNrX2ZlbmNlIiwgIl9fZXNtTWluIiwgImNvZGUiLCAibm9kZSIsICJfIiwgInN0YXRlIiwgImluZm8iLCAibWFya2VyIiwgImNoZWNrRmVuY2UiLCAicmF3IiwgInN1ZmZpeCIsICJmb3JtYXRDb2RlQXNJbmRlbnRlZCIsICJleGl0IiwgInZhbHVlIiwgIm1hcCIsICJ0cmFja2VyIiwgInNlcXVlbmNlIiwgImxvbmdlc3RTdHJlYWsiLCAic3ViZXhpdCIsICJsaW5lIiwgImJsYW5rIiwgImluaXRfY29kZSIsICJfX2VzbU1pbiIsICJpbml0X2xvbmdlc3Rfc3RyZWFrIiwgImluaXRfZm9ybWF0X2NvZGVfYXNfaW5kZW50ZWQiLCAiaW5pdF9jaGVja19mZW5jZSIsICJjaGVja1F1b3RlIiwgInN0YXRlIiwgIm1hcmtlciIsICJpbml0X2NoZWNrX3F1b3RlIiwgIl9fZXNtTWluIiwgImRlZmluaXRpb24iLCAibm9kZSIsICJfIiwgInN0YXRlIiwgImluZm8iLCAicXVvdGUiLCAiY2hlY2tRdW90ZSIsICJzdWZmaXgiLCAiZXhpdCIsICJzdWJleGl0IiwgInRyYWNrZXIiLCAidmFsdWUiLCAiaW5pdF9kZWZpbml0aW9uIiwgIl9fZXNtTWluIiwgImluaXRfY2hlY2tfcXVvdGUiLCAiY2hlY2tFbXBoYXNpcyIsICJzdGF0ZSIsICJtYXJrZXIiLCAiaW5pdF9jaGVja19lbXBoYXNpcyIsICJfX2VzbU1pbiIsICJlbmNvZGVDaGFyYWN0ZXJSZWZlcmVuY2UiLCAiY29kZSIsICJpbml0X2VuY29kZV9jaGFyYWN0ZXJfcmVmZXJlbmNlIiwgIl9fZXNtTWluIiwgImNsYXNzaWZ5Q2hhcmFjdGVyIiwgImNvZGUiLCAibWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSIsICJ1bmljb2RlV2hpdGVzcGFjZSIsICJ1bmljb2RlUHVuY3R1YXRpb24iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jbGFzc2lmeV9jaGFyYWN0ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAiZW5jb2RlSW5mbyIsICJvdXRzaWRlIiwgImluc2lkZSIsICJtYXJrZXIiLCAib3V0c2lkZUtpbmQiLCAiY2xhc3NpZnlDaGFyYWN0ZXIiLCAiaW5zaWRlS2luZCIsICJpbml0X2VuY29kZV9pbmZvIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2xhc3NpZnlfY2hhcmFjdGVyIiwgImVtcGhhc2lzIiwgIm5vZGUiLCAiXyIsICJzdGF0ZSIsICJpbmZvIiwgIm1hcmtlciIsICJjaGVja0VtcGhhc2lzIiwgImV4aXQiLCAidHJhY2tlciIsICJiZWZvcmUiLCAiYmV0d2VlbiIsICJiZXR3ZWVuSGVhZCIsICJvcGVuIiwgImVuY29kZUluZm8iLCAiZW5jb2RlQ2hhcmFjdGVyUmVmZXJlbmNlIiwgImJldHdlZW5UYWlsIiwgImNsb3NlIiwgImFmdGVyIiwgImVtcGhhc2lzUGVlayIsICJfMSIsICJpbml0X2VtcGhhc2lzIiwgIl9fZXNtTWluIiwgImluaXRfY2hlY2tfZW1waGFzaXMiLCAiaW5pdF9lbmNvZGVfY2hhcmFjdGVyX3JlZmVyZW5jZSIsICJpbml0X2VuY29kZV9pbmZvIiwgInZpc2l0IiwgInRyZWUiLCAidGVzdE9yVmlzaXRvciIsICJ2aXNpdG9yT3JSZXZlcnNlIiwgIm1heWJlUmV2ZXJzZSIsICJyZXZlcnNlIiwgInRlc3QiLCAidmlzaXRvciIsICJ2aXNpdFBhcmVudHMiLCAib3ZlcmxvYWQiLCAibm9kZSIsICJwYXJlbnRzIiwgInBhcmVudCIsICJpbmRleCIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X3VuaXN0X3V0aWxfdmlzaXRfcGFyZW50cyIsICJpbml0X3VuaXN0X3V0aWxfdmlzaXQiLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAidG9TdHJpbmciLCAidmFsdWUiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJlbXB0eU9wdGlvbnMiLCAiaW5jbHVkZUltYWdlQWx0IiwgImluY2x1ZGVIdG1sIiwgIm9uZSIsICJub2RlIiwgImFsbCIsICJ2YWx1ZXMiLCAicmVzdWx0IiwgImluZGV4IiwgImluaXRfbGliIiwgIl9fZXNtTWluIiwgImluaXRfbWRhc3RfdXRpbF90b19zdHJpbmciLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAiZm9ybWF0SGVhZGluZ0FzU2V0ZXh0IiwgIm5vZGUiLCAic3RhdGUiLCAibGl0ZXJhbFdpdGhCcmVhayIsICJ2aXNpdCIsICJFWElUIiwgInRvU3RyaW5nIiwgImluaXRfZm9ybWF0X2hlYWRpbmdfYXNfc2V0ZXh0IiwgIl9fZXNtTWluIiwgImluaXRfdW5pc3RfdXRpbF92aXNpdCIsICJpbml0X21kYXN0X3V0aWxfdG9fc3RyaW5nIiwgImhlYWRpbmciLCAibm9kZSIsICJfIiwgInN0YXRlIiwgImluZm8iLCAicmFuayIsICJ0cmFja2VyIiwgImZvcm1hdEhlYWRpbmdBc1NldGV4dCIsICJleGl0IiwgInN1YmV4aXQiLCAidmFsdWUiLCAic2VxdWVuY2UiLCAiZW5jb2RlQ2hhcmFjdGVyUmVmZXJlbmNlIiwgImluaXRfaGVhZGluZyIsICJfX2VzbU1pbiIsICJpbml0X2VuY29kZV9jaGFyYWN0ZXJfcmVmZXJlbmNlIiwgImluaXRfZm9ybWF0X2hlYWRpbmdfYXNfc2V0ZXh0IiwgImh0bWwiLCAibm9kZSIsICJodG1sUGVlayIsICJpbml0X2h0bWwiLCAiX19lc21NaW4iLCAiaW1hZ2UiLCAibm9kZSIsICJfIiwgInN0YXRlIiwgImluZm8iLCAicXVvdGUiLCAiY2hlY2tRdW90ZSIsICJzdWZmaXgiLCAiZXhpdCIsICJzdWJleGl0IiwgInRyYWNrZXIiLCAidmFsdWUiLCAiaW1hZ2VQZWVrIiwgImluaXRfaW1hZ2UiLCAiX19lc21NaW4iLCAiaW5pdF9jaGVja19xdW90ZSIsICJpbWFnZVJlZmVyZW5jZSIsICJub2RlIiwgIl8iLCAic3RhdGUiLCAiaW5mbyIsICJ0eXBlIiwgImV4aXQiLCAic3ViZXhpdCIsICJ0cmFja2VyIiwgInZhbHVlIiwgImFsdCIsICJzdGFjayIsICJyZWZlcmVuY2UiLCAiaW1hZ2VSZWZlcmVuY2VQZWVrIiwgImluaXRfaW1hZ2VfcmVmZXJlbmNlIiwgIl9fZXNtTWluIiwgImlubGluZUNvZGUiLCAibm9kZSIsICJfIiwgInN0YXRlIiwgInZhbHVlIiwgInNlcXVlbmNlIiwgImluZGV4IiwgInBhdHRlcm4iLCAiZXhwcmVzc2lvbiIsICJtYXRjaCIsICJwb3NpdGlvbiIsICJpbmxpbmVDb2RlUGVlayIsICJpbml0X2lubGluZV9jb2RlIiwgIl9fZXNtTWluIiwgImZvcm1hdExpbmtBc0F1dG9saW5rIiwgIm5vZGUiLCAic3RhdGUiLCAicmF3IiwgInRvU3RyaW5nIiwgImluaXRfZm9ybWF0X2xpbmtfYXNfYXV0b2xpbmsiLCAiX19lc21NaW4iLCAiaW5pdF9tZGFzdF91dGlsX3RvX3N0cmluZyIsICJsaW5rIiwgIm5vZGUiLCAiXyIsICJzdGF0ZSIsICJpbmZvIiwgInF1b3RlIiwgImNoZWNrUXVvdGUiLCAic3VmZml4IiwgInRyYWNrZXIiLCAiZXhpdCIsICJzdWJleGl0IiwgImZvcm1hdExpbmtBc0F1dG9saW5rIiwgInN0YWNrIiwgInZhbHVlIiwgImxpbmtQZWVrIiwgImluaXRfbGluayIsICJfX2VzbU1pbiIsICJpbml0X2NoZWNrX3F1b3RlIiwgImluaXRfZm9ybWF0X2xpbmtfYXNfYXV0b2xpbmsiLCAibGlua1JlZmVyZW5jZSIsICJub2RlIiwgIl8iLCAic3RhdGUiLCAiaW5mbyIsICJ0eXBlIiwgImV4aXQiLCAic3ViZXhpdCIsICJ0cmFja2VyIiwgInZhbHVlIiwgInRleHQiLCAic3RhY2siLCAicmVmZXJlbmNlIiwgImxpbmtSZWZlcmVuY2VQZWVrIiwgImluaXRfbGlua19yZWZlcmVuY2UiLCAiX19lc21NaW4iLCAiY2hlY2tCdWxsZXQiLCAic3RhdGUiLCAibWFya2VyIiwgImluaXRfY2hlY2tfYnVsbGV0IiwgIl9fZXNtTWluIiwgImNoZWNrQnVsbGV0T3RoZXIiLCAic3RhdGUiLCAiYnVsbGV0IiwgImNoZWNrQnVsbGV0IiwgImJ1bGxldE90aGVyIiwgImluaXRfY2hlY2tfYnVsbGV0X290aGVyIiwgIl9fZXNtTWluIiwgImluaXRfY2hlY2tfYnVsbGV0IiwgImNoZWNrQnVsbGV0T3JkZXJlZCIsICJzdGF0ZSIsICJtYXJrZXIiLCAiaW5pdF9jaGVja19idWxsZXRfb3JkZXJlZCIsICJfX2VzbU1pbiIsICJjaGVja1J1bGUiLCAic3RhdGUiLCAibWFya2VyIiwgImluaXRfY2hlY2tfcnVsZSIsICJfX2VzbU1pbiIsICJsaXN0IiwgIm5vZGUiLCAicGFyZW50IiwgInN0YXRlIiwgImluZm8iLCAiZXhpdCIsICJidWxsZXRDdXJyZW50IiwgImJ1bGxldCIsICJjaGVja0J1bGxldE9yZGVyZWQiLCAiY2hlY2tCdWxsZXQiLCAiYnVsbGV0T3RoZXIiLCAiY2hlY2tCdWxsZXRPdGhlciIsICJ1c2VEaWZmZXJlbnRNYXJrZXIiLCAiZmlyc3RMaXN0SXRlbSIsICJjaGVja1J1bGUiLCAiaW5kZXgiLCAiaXRlbSIsICJ2YWx1ZSIsICJpbml0X2xpc3QiLCAiX19lc21NaW4iLCAiaW5pdF9jaGVja19idWxsZXQiLCAiaW5pdF9jaGVja19idWxsZXRfb3RoZXIiLCAiaW5pdF9jaGVja19idWxsZXRfb3JkZXJlZCIsICJpbml0X2NoZWNrX3J1bGUiLCAiY2hlY2tMaXN0SXRlbUluZGVudCIsICJzdGF0ZSIsICJzdHlsZSIsICJpbml0X2NoZWNrX2xpc3RfaXRlbV9pbmRlbnQiLCAiX19lc21NaW4iLCAibGlzdEl0ZW0iLCAibm9kZSIsICJwYXJlbnQiLCAic3RhdGUiLCAiaW5mbyIsICJsaXN0SXRlbUluZGVudCIsICJjaGVja0xpc3RJdGVtSW5kZW50IiwgImJ1bGxldCIsICJjaGVja0J1bGxldCIsICJzaXplIiwgInRyYWNrZXIiLCAiZXhpdCIsICJ2YWx1ZSIsICJtYXAiLCAibGluZSIsICJpbmRleCIsICJibGFuayIsICJpbml0X2xpc3RfaXRlbSIsICJfX2VzbU1pbiIsICJpbml0X2NoZWNrX2J1bGxldCIsICJpbml0X2NoZWNrX2xpc3RfaXRlbV9pbmRlbnQiLCAicGFyYWdyYXBoIiwgIm5vZGUiLCAiXyIsICJzdGF0ZSIsICJpbmZvIiwgImV4aXQiLCAic3ViZXhpdCIsICJ2YWx1ZSIsICJpbml0X3BhcmFncmFwaCIsICJfX2VzbU1pbiIsICJwaHJhc2luZyIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X3VuaXN0X3V0aWxfaXMiLCAiY29udmVydCIsICJpbml0X21kYXN0X3V0aWxfcGhyYXNpbmciLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAicm9vdCIsICJub2RlIiwgIl8iLCAic3RhdGUiLCAiaW5mbyIsICJkIiwgInBocmFzaW5nIiwgImluaXRfcm9vdCIsICJfX2VzbU1pbiIsICJpbml0X21kYXN0X3V0aWxfcGhyYXNpbmciLCAiY2hlY2tTdHJvbmciLCAic3RhdGUiLCAibWFya2VyIiwgImluaXRfY2hlY2tfc3Ryb25nIiwgIl9fZXNtTWluIiwgInN0cm9uZyIsICJub2RlIiwgIl8iLCAic3RhdGUiLCAiaW5mbyIsICJtYXJrZXIiLCAiY2hlY2tTdHJvbmciLCAiZXhpdCIsICJ0cmFja2VyIiwgImJlZm9yZSIsICJiZXR3ZWVuIiwgImJldHdlZW5IZWFkIiwgIm9wZW4iLCAiZW5jb2RlSW5mbyIsICJlbmNvZGVDaGFyYWN0ZXJSZWZlcmVuY2UiLCAiYmV0d2VlblRhaWwiLCAiY2xvc2UiLCAiYWZ0ZXIiLCAic3Ryb25nUGVlayIsICJfMSIsICJpbml0X3N0cm9uZyIsICJfX2VzbU1pbiIsICJpbml0X2NoZWNrX3N0cm9uZyIsICJpbml0X2VuY29kZV9jaGFyYWN0ZXJfcmVmZXJlbmNlIiwgImluaXRfZW5jb2RlX2luZm8iLCAidGV4dCIsICJub2RlIiwgIl8iLCAic3RhdGUiLCAiaW5mbyIsICJpbml0X3RleHQiLCAiX19lc21NaW4iLCAiY2hlY2tSdWxlUmVwZXRpdGlvbiIsICJzdGF0ZSIsICJyZXBldGl0aW9uIiwgImluaXRfY2hlY2tfcnVsZV9yZXBldGl0aW9uIiwgIl9fZXNtTWluIiwgInRoZW1hdGljQnJlYWsiLCAiXyIsICJfMSIsICJzdGF0ZSIsICJ2YWx1ZSIsICJjaGVja1J1bGUiLCAiY2hlY2tSdWxlUmVwZXRpdGlvbiIsICJpbml0X3RoZW1hdGljX2JyZWFrIiwgIl9fZXNtTWluIiwgImluaXRfY2hlY2tfcnVsZV9yZXBldGl0aW9uIiwgImluaXRfY2hlY2tfcnVsZSIsICJoYW5kbGUiLCAiaW5pdF9oYW5kbGUiLCAiX19lc21NaW4iLCAiaW5pdF9ibG9ja3F1b3RlIiwgImluaXRfYnJlYWsiLCAiaW5pdF9jb2RlIiwgImluaXRfZGVmaW5pdGlvbiIsICJpbml0X2VtcGhhc2lzIiwgImluaXRfaGVhZGluZyIsICJpbml0X2h0bWwiLCAiaW5pdF9pbWFnZSIsICJpbml0X2ltYWdlX3JlZmVyZW5jZSIsICJpbml0X2lubGluZV9jb2RlIiwgImluaXRfbGluayIsICJpbml0X2xpbmtfcmVmZXJlbmNlIiwgImluaXRfbGlzdCIsICJpbml0X2xpc3RfaXRlbSIsICJpbml0X3BhcmFncmFwaCIsICJpbml0X3Jvb3QiLCAiaW5pdF9zdHJvbmciLCAiaW5pdF90ZXh0IiwgImluaXRfdGhlbWF0aWNfYnJlYWsiLCAiYmxvY2txdW90ZSIsICJoYXJkQnJlYWsiLCAiY29kZSIsICJkZWZpbml0aW9uIiwgImVtcGhhc2lzIiwgImhlYWRpbmciLCAiaHRtbCIsICJpbWFnZSIsICJpbWFnZVJlZmVyZW5jZSIsICJpbmxpbmVDb2RlIiwgImxpbmsiLCAibGlua1JlZmVyZW5jZSIsICJsaXN0IiwgImxpc3RJdGVtIiwgInBhcmFncmFwaCIsICJyb290IiwgInN0cm9uZyIsICJ0ZXh0IiwgInRoZW1hdGljQnJlYWsiLCAiam9pbkRlZmF1bHRzIiwgImxlZnQiLCAicmlnaHQiLCAicGFyZW50IiwgInN0YXRlIiwgImZvcm1hdENvZGVBc0luZGVudGVkIiwgImZvcm1hdEhlYWRpbmdBc1NldGV4dCIsICJqb2luIiwgImluaXRfam9pbiIsICJfX2VzbU1pbiIsICJpbml0X2Zvcm1hdF9jb2RlX2FzX2luZGVudGVkIiwgImluaXRfZm9ybWF0X2hlYWRpbmdfYXNfc2V0ZXh0IiwgImZ1bGxQaHJhc2luZ1NwYW5zIiwgInVuc2FmZSIsICJpbml0X3Vuc2FmZSIsICJfX2VzbU1pbiIsICJkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZSIsICJ2YWx1ZSIsICJjaGFyYWN0ZXJSZWZlcmVuY2UiLCAiZWxlbWVudCIsICJjaGFyYWN0ZXIiLCAiaW5pdF9pbmRleF9kb20iLCAiX19lc21NaW4iLCAiZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSIsICJ2YWx1ZSIsICJiYXNlIiwgImNvZGUiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9kZWNvZGVfbnVtZXJpY19jaGFyYWN0ZXJfcmVmZXJlbmNlIiwgIl9fZXNtTWluIiwgImRlY29kZVN0cmluZyIsICJ2YWx1ZSIsICJjaGFyYWN0ZXJFc2NhcGVPclJlZmVyZW5jZSIsICJkZWNvZGUiLCAiJDAiLCAiJDEiLCAiJDIiLCAiaGVhZCIsICJoZXgiLCAiZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSIsICJkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZSIsICJpbml0X21pY3JvbWFya191dGlsX2RlY29kZV9zdHJpbmciLCAiX19lc21NaW4iLCAiaW5pdF9pbmRleF9kb20iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9kZWNvZGVfbnVtZXJpY19jaGFyYWN0ZXJfcmVmZXJlbmNlIiwgImFzc29jaWF0aW9uIiwgIm5vZGUiLCAiZGVjb2RlU3RyaW5nIiwgImluaXRfYXNzb2NpYXRpb24iLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9kZWNvZGVfc3RyaW5nIiwgImNvbXBpbGVQYXR0ZXJuIiwgInBhdHRlcm4iLCAiYmVmb3JlIiwgImluaXRfY29tcGlsZV9wYXR0ZXJuIiwgIl9fZXNtTWluIiwgImNvbnRhaW5lclBocmFzaW5nIiwgInBhcmVudCIsICJzdGF0ZSIsICJpbmZvIiwgImluZGV4U3RhY2siLCAiY2hpbGRyZW4iLCAicmVzdWx0cyIsICJpbmRleCIsICJiZWZvcmUiLCAiZW5jb2RlQWZ0ZXIiLCAidHJhY2tlciIsICJjaGlsZCIsICJhZnRlciIsICJoYW5kbGUiLCAidmFsdWUiLCAiZW5jb2RlQ2hhcmFjdGVyUmVmZXJlbmNlIiwgImVuY29kaW5nSW5mbyIsICJpbml0X2NvbnRhaW5lcl9waHJhc2luZyIsICJfX2VzbU1pbiIsICJpbml0X2VuY29kZV9jaGFyYWN0ZXJfcmVmZXJlbmNlIiwgImNvbnRhaW5lckZsb3ciLCAicGFyZW50IiwgInN0YXRlIiwgImluZm8iLCAiaW5kZXhTdGFjayIsICJjaGlsZHJlbiIsICJ0cmFja2VyIiwgInJlc3VsdHMiLCAiaW5kZXgiLCAiY2hpbGQiLCAiYmV0d2VlbiIsICJsZWZ0IiwgInJpZ2h0IiwgInJlc3VsdCIsICJpbml0X2NvbnRhaW5lcl9mbG93IiwgIl9fZXNtTWluIiwgImluZGVudExpbmVzIiwgInZhbHVlIiwgIm1hcCIsICJyZXN1bHQiLCAic3RhcnQiLCAibGluZSIsICJtYXRjaCIsICJlb2wiLCAib25lIiwgImluaXRfaW5kZW50X2xpbmVzIiwgIl9fZXNtTWluIiwgInNhZmUiLCAic3RhdGUiLCAiaW5wdXQiLCAiY29uZmlnIiwgInZhbHVlIiwgInBvc2l0aW9ucyIsICJyZXN1bHQiLCAiaW5mb3MiLCAiaW5kZXgiLCAicGF0dGVybiIsICJwYXR0ZXJuSW5TY29wZSIsICJleHByZXNzaW9uIiwgIm1hdGNoIiwgImJlZm9yZSIsICJhZnRlciIsICJwb3NpdGlvbiIsICJudW1lcmljYWwiLCAic3RhcnQiLCAiZW5kIiwgImVzY2FwZUJhY2tzbGFzaGVzIiwgImVuY29kZUNoYXJhY3RlclJlZmVyZW5jZSIsICJhIiwgImIiLCAicmVzdWx0cyIsICJ3aG9sZSIsICJpbml0X3NhZmUiLCAiX19lc21NaW4iLCAiaW5pdF9lbmNvZGVfY2hhcmFjdGVyX3JlZmVyZW5jZSIsICJpbml0X3BhdHRlcm5faW5fc2NvcGUiLCAidHJhY2siLCAiY29uZmlnIiwgIm9wdGlvbnMiLCAibm93IiwgImxpbmVTaGlmdCIsICJsaW5lIiwgImNvbHVtbiIsICJtb3ZlIiwgImN1cnJlbnQiLCAic2hpZnQiLCAidmFsdWUiLCAiaW5wdXQiLCAiY2h1bmtzIiwgInRhaWwiLCAiaW5pdF90cmFjayIsICJfX2VzbU1pbiIsICJ0b01hcmtkb3duIiwgInRyZWUiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJzdGF0ZSIsICJhc3NvY2lhdGlvbiIsICJjb250YWluZXJQaHJhc2luZ0JvdW5kIiwgImNvbnRhaW5lckZsb3dCb3VuZCIsICJ0cmFjayIsICJjb21waWxlUGF0dGVybiIsICJlbnRlciIsICJoYW5kbGUiLCAiaW5kZW50TGluZXMiLCAiam9pbiIsICJzYWZlQm91bmQiLCAidW5zYWZlIiwgImNvbmZpZ3VyZSIsICJqb2luRGVmaW5pdGlvbiIsICJ6d2l0Y2giLCAiaW52YWxpZCIsICJ1bmtub3duIiwgInJlc3VsdCIsICJuYW1lIiwgImV4aXQiLCAidmFsdWUiLCAibm9kZSIsICJsZWZ0IiwgInJpZ2h0IiwgInBhcmVudCIsICJpbmZvIiwgImNvbnRhaW5lclBocmFzaW5nIiwgImNvbnRhaW5lckZsb3ciLCAiY29uZmlnIiwgInNhZmUiLCAiaW5pdF9saWIiLCAiX19lc21NaW4iLCAiaW5pdF96d2l0Y2giLCAiaW5pdF9jb25maWd1cmUiLCAiaW5pdF9oYW5kbGUiLCAiaW5pdF9qb2luIiwgImluaXRfdW5zYWZlIiwgImluaXRfYXNzb2NpYXRpb24iLCAiaW5pdF9jb21waWxlX3BhdHRlcm4iLCAiaW5pdF9jb250YWluZXJfcGhyYXNpbmciLCAiaW5pdF9jb250YWluZXJfZmxvdyIsICJpbml0X2luZGVudF9saW5lcyIsICJpbml0X3NhZmUiLCAiaW5pdF90cmFjayIsICJpbml0X21kYXN0X3V0aWxfdG9fbWFya2Rvd24iLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAiaW5pdF9oYW5kbGUiLCAiZ2ZtVGFibGVGcm9tTWFya2Rvd24iLCAiZW50ZXJUYWJsZSIsICJlbnRlckNlbGwiLCAiZW50ZXJSb3ciLCAiZXhpdENvZGVUZXh0IiwgImV4aXRUYWJsZSIsICJleGl0IiwgInRva2VuIiwgImFsaWduIiwgImQiLCAidmFsdWUiLCAicmVwbGFjZSIsICJub2RlIiwgIiQwIiwgIiQxIiwgImdmbVRhYmxlVG9NYXJrZG93biIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgInBhZGRpbmciLCAiYWxpZ25EZWxpbWl0ZXJzIiwgInN0cmluZ0xlbmd0aCIsICJhcm91bmQiLCAiaW5saW5lQ29kZVdpdGhUYWJsZSIsICJoYW5kbGVUYWJsZSIsICJoYW5kbGVUYWJsZUNlbGwiLCAiaGFuZGxlVGFibGVSb3ciLCAiXyIsICJzdGF0ZSIsICJpbmZvIiwgInNlcmlhbGl6ZURhdGEiLCAiaGFuZGxlVGFibGVBc0RhdGEiLCAicm93IiwgImhhbmRsZVRhYmxlUm93QXNEYXRhIiwgInN1YmV4aXQiLCAibWF0cml4IiwgIm1hcmtkb3duVGFibGUiLCAiY2hpbGRyZW4iLCAiaW5kZXgiLCAicmVzdWx0IiwgInBhcmVudCIsICJoYW5kbGUiLCAiaW5pdF9saWIiLCAiX19lc21NaW4iLCAiaW5pdF9kZWZhdWx0IiwgImluaXRfbWFya2Rvd25fdGFibGUiLCAiaW5pdF9tZGFzdF91dGlsX3RvX21hcmtkb3duIiwgImluaXRfbWRhc3RfdXRpbF9nZm1fdGFibGUiLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAiZ2ZtVGFza0xpc3RJdGVtRnJvbU1hcmtkb3duIiwgImV4aXRDaGVjayIsICJleGl0UGFyYWdyYXBoV2l0aFRhc2tMaXN0SXRlbSIsICJnZm1UYXNrTGlzdEl0ZW1Ub01hcmtkb3duIiwgImxpc3RJdGVtV2l0aFRhc2tMaXN0SXRlbSIsICJ0b2tlbiIsICJub2RlIiwgInBhcmVudCIsICJoZWFkIiwgInNpYmxpbmdzIiwgImluZGV4IiwgImZpcnN0UGFyYWdocmFwaCIsICJzaWJsaW5nIiwgInN0YXRlIiwgImluZm8iLCAiY2hlY2thYmxlIiwgImNoZWNrYm94IiwgInRyYWNrZXIiLCAidmFsdWUiLCAiaGFuZGxlIiwgImNoZWNrIiwgIiQwIiwgImluaXRfbGliIiwgIl9fZXNtTWluIiwgImluaXRfZGVmYXVsdCIsICJpbml0X21kYXN0X3V0aWxfdG9fbWFya2Rvd24iLCAiaW5pdF9tZGFzdF91dGlsX2dmbV90YXNrX2xpc3RfaXRlbSIsICJfX2VzbU1pbiIsICJpbml0X2xpYiIsICJnZm1Gcm9tTWFya2Rvd24iLCAiZ2ZtQXV0b2xpbmtMaXRlcmFsRnJvbU1hcmtkb3duIiwgImdmbUZvb3Rub3RlRnJvbU1hcmtkb3duIiwgImdmbVN0cmlrZXRocm91Z2hGcm9tTWFya2Rvd24iLCAiZ2ZtVGFibGVGcm9tTWFya2Rvd24iLCAiZ2ZtVGFza0xpc3RJdGVtRnJvbU1hcmtkb3duIiwgImdmbVRvTWFya2Rvd24iLCAib3B0aW9ucyIsICJnZm1BdXRvbGlua0xpdGVyYWxUb01hcmtkb3duIiwgImdmbUZvb3Rub3RlVG9NYXJrZG93biIsICJnZm1TdHJpa2V0aHJvdWdoVG9NYXJrZG93biIsICJnZm1UYWJsZVRvTWFya2Rvd24iLCAiZ2ZtVGFza0xpc3RJdGVtVG9NYXJrZG93biIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X21kYXN0X3V0aWxfZ2ZtX2F1dG9saW5rX2xpdGVyYWwiLCAiaW5pdF9tZGFzdF91dGlsX2dmbV9mb290bm90ZSIsICJpbml0X21kYXN0X3V0aWxfZ2ZtX3N0cmlrZXRocm91Z2giLCAiaW5pdF9tZGFzdF91dGlsX2dmbV90YWJsZSIsICJpbml0X21kYXN0X3V0aWxfZ2ZtX3Rhc2tfbGlzdF9pdGVtIiwgImluaXRfbWRhc3RfdXRpbF9nZm0iLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAic3BsaWNlIiwgImxpc3QiLCAic3RhcnQiLCAicmVtb3ZlIiwgIml0ZW1zIiwgImVuZCIsICJjaHVua1N0YXJ0IiwgInBhcmFtZXRlcnMiLCAicHVzaCIsICJpbml0X21pY3JvbWFya191dGlsX2NodW5rZWQiLCAiX19lc21NaW4iLCAiY29tYmluZUV4dGVuc2lvbnMiLCAiZXh0ZW5zaW9ucyIsICJhbGwiLCAiaW5kZXgiLCAic3ludGF4RXh0ZW5zaW9uIiwgImV4dGVuc2lvbiIsICJob29rIiwgImxlZnQiLCAiaGFzT3duUHJvcGVydHkiLCAicmlnaHQiLCAiY29kZSIsICJ2YWx1ZSIsICJjb25zdHJ1Y3RzIiwgImV4aXN0aW5nIiwgImxpc3QiLCAiYmVmb3JlIiwgInNwbGljZSIsICJjb21iaW5lSHRtbEV4dGVuc2lvbnMiLCAiaHRtbEV4dGVuc2lvbnMiLCAiaGFuZGxlcnMiLCAiaHRtbEV4dGVuc2lvbiIsICJ0eXBlIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY29tYmluZV9leHRlbnNpb25zIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2h1bmtlZCIsICJnZm1BdXRvbGlua0xpdGVyYWwiLCAidGV4dCIsICJ0b2tlbml6ZUVtYWlsQXV0b2xpbmsiLCAiZWZmZWN0cyIsICJvayIsICJub2siLCAic2VsZiIsICJkb3QiLCAiZGF0YSIsICJzdGFydCIsICJjb2RlIiwgImdmbUF0ZXh0IiwgInByZXZpb3VzRW1haWwiLCAicHJldmlvdXNVbmJhbGFuY2VkIiwgImF0ZXh0IiwgImVtYWlsRG9tYWluIiwgImVtYWlsRG9tYWluRG90VHJhaWwiLCAiZW1haWxEb21haW5BZnRlciIsICJlbWFpbERvbWFpbkRvdCIsICJhc2NpaUFscGhhbnVtZXJpYyIsICJhc2NpaUFscGhhIiwgInRva2VuaXplV3d3QXV0b2xpbmsiLCAid3d3U3RhcnQiLCAicHJldmlvdXNXd3ciLCAid3d3UHJlZml4IiwgImRvbWFpbiIsICJwYXRoIiwgInd3d0FmdGVyIiwgInRva2VuaXplUHJvdG9jb2xBdXRvbGluayIsICJidWZmZXIiLCAic2VlbiIsICJwcm90b2NvbFN0YXJ0IiwgInByZXZpb3VzUHJvdG9jb2wiLCAicHJvdG9jb2xQcmVmaXhJbnNpZGUiLCAicHJvdG9jb2wiLCAicHJvdG9jb2xTbGFzaGVzSW5zaWRlIiwgImFmdGVyUHJvdG9jb2wiLCAiYXNjaWlDb250cm9sIiwgIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCAidW5pY29kZVdoaXRlc3BhY2UiLCAidW5pY29kZVB1bmN0dWF0aW9uIiwgInByb3RvY29sQWZ0ZXIiLCAidG9rZW5pemVXd3dQcmVmaXgiLCAic2l6ZSIsICJ3d3dQcmVmaXhJbnNpZGUiLCAid3d3UHJlZml4QWZ0ZXIiLCAidG9rZW5pemVEb21haW4iLCAidW5kZXJzY29yZUluTGFzdFNlZ21lbnQiLCAidW5kZXJzY29yZUluTGFzdExhc3RTZWdtZW50IiwgImRvbWFpbkluc2lkZSIsICJ0cmFpbCIsICJkb21haW5BZnRlciIsICJkb21haW5BdFB1bmN0dWF0aW9uIiwgInRva2VuaXplUGF0aCIsICJzaXplT3BlbiIsICJzaXplQ2xvc2UiLCAicGF0aEluc2lkZSIsICJwYXRoQXRQdW5jdHVhdGlvbiIsICJ0b2tlbml6ZVRyYWlsIiwgInRyYWlsQ2hhcmFjdGVyUmVmZXJlbmNlU3RhcnQiLCAidHJhaWxCcmFja2V0QWZ0ZXIiLCAidHJhaWxDaGFyYWN0ZXJSZWZlcmVuY2VJbnNpZGUiLCAidG9rZW5pemVFbWFpbERvbWFpbkRvdFRyYWlsIiwgImFmdGVyIiwgImV2ZW50cyIsICJpbmRleCIsICJyZXN1bHQiLCAidG9rZW4iLCAid3d3QXV0b2xpbmsiLCAicHJvdG9jb2xBdXRvbGluayIsICJlbWFpbEF1dG9saW5rIiwgImluaXRfc3ludGF4IiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgImVuY29kZSIsICJ2YWx1ZSIsICJyZXBsYWNlIiwgImNoYXJhY3RlclJlZmVyZW5jZXMiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9lbmNvZGUiLCAiX19lc21NaW4iLCAic2FuaXRpemVVcmkiLCAidXJsIiwgInByb3RvY29sIiwgInZhbHVlIiwgImVuY29kZSIsICJub3JtYWxpemVVcmkiLCAiY29sb24iLCAicXVlc3Rpb25NYXJrIiwgIm51bWJlclNpZ24iLCAic2xhc2giLCAicmVzdWx0IiwgImluZGV4IiwgInN0YXJ0IiwgInNraXAiLCAiY29kZSIsICJyZXBsYWNlIiwgImFzY2lpQWxwaGFudW1lcmljIiwgIm5leHQiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9zYW5pdGl6ZV91cmkiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9lbmNvZGUiLCAiZ2ZtQXV0b2xpbmtMaXRlcmFsSHRtbCIsICJsaXRlcmFsQXV0b2xpbmtFbWFpbCIsICJsaXRlcmFsQXV0b2xpbmtIdHRwIiwgImxpdGVyYWxBdXRvbGlua1d3dyIsICJ0b2tlbiIsICJhbmNob3JGcm9tVG9rZW4iLCAicHJvdG9jb2wiLCAidXJsIiwgInNhbml0aXplVXJpIiwgImluaXRfaHRtbCIsICJfX2VzbU1pbiIsICJpbml0X21pY3JvbWFya191dGlsX3Nhbml0aXplX3VyaSIsICJpbml0X21pY3JvbWFya19leHRlbnNpb25fZ2ZtX2F1dG9saW5rX2xpdGVyYWwiLCAiX19lc21NaW4iLCAiaW5pdF9zeW50YXgiLCAiaW5pdF9odG1sIiwgInJlc29sdmVBbGwiLCAiY29uc3RydWN0cyIsICJldmVudHMiLCAiY29udGV4dCIsICJjYWxsZWQiLCAiaW5kZXgiLCAicmVzb2x2ZSIsICJpbml0X21pY3JvbWFya191dGlsX3Jlc29sdmVfYWxsIiwgIl9fZXNtTWluIiwgInJlc29sdmVBbGxBdHRlbnRpb24iLCAiZXZlbnRzIiwgImNvbnRleHQiLCAiaW5kZXgiLCAib3BlbiIsICJncm91cCIsICJ0ZXh0IiwgIm9wZW5pbmdTZXF1ZW5jZSIsICJjbG9zaW5nU2VxdWVuY2UiLCAidXNlIiwgIm5leHRFdmVudHMiLCAib2Zmc2V0IiwgInN0YXJ0IiwgImVuZCIsICJtb3ZlUG9pbnQiLCAicHVzaCIsICJyZXNvbHZlQWxsIiwgInNwbGljZSIsICJ0b2tlbml6ZUF0dGVudGlvbiIsICJlZmZlY3RzIiwgIm9rIiwgImF0dGVudGlvbk1hcmtlcnMiLCAicHJldmlvdXMiLCAiYmVmb3JlIiwgImNsYXNzaWZ5Q2hhcmFjdGVyIiwgIm1hcmtlciIsICJjb2RlIiwgImluc2lkZSIsICJ0b2tlbiIsICJhZnRlciIsICJjbG9zZSIsICJwb2ludCIsICJhdHRlbnRpb24iLCAiaW5pdF9hdHRlbnRpb24iLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaHVua2VkIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2xhc3NpZnlfY2hhcmFjdGVyIiwgImluaXRfbWljcm9tYXJrX3V0aWxfcmVzb2x2ZV9hbGwiLCAidG9rZW5pemVBdXRvbGluayIsICJlZmZlY3RzIiwgIm9rIiwgIm5vayIsICJzaXplIiwgInN0YXJ0IiwgImNvZGUiLCAib3BlbiIsICJhc2NpaUFscGhhIiwgInNjaGVtZU9yRW1haWxBdGV4dCIsICJlbWFpbEF0ZXh0IiwgImFzY2lpQWxwaGFudW1lcmljIiwgInNjaGVtZUluc2lkZU9yRW1haWxBdGV4dCIsICJ1cmxJbnNpZGUiLCAiYXNjaWlDb250cm9sIiwgImVtYWlsQXRTaWduT3JEb3QiLCAiYXNjaWlBdGV4dCIsICJlbWFpbExhYmVsIiwgImVtYWlsVmFsdWUiLCAibmV4dCIsICJhdXRvbGluayIsICJpbml0X2F1dG9saW5rIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgImZhY3RvcnlTcGFjZSIsICJlZmZlY3RzIiwgIm9rIiwgInR5cGUiLCAibWF4IiwgImxpbWl0IiwgInNpemUiLCAic3RhcnQiLCAiY29kZSIsICJtYXJrZG93blNwYWNlIiwgInByZWZpeCIsICJpbml0X21pY3JvbWFya19mYWN0b3J5X3NwYWNlIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgInRva2VuaXplQmxhbmtMaW5lIiwgImVmZmVjdHMiLCAib2siLCAibm9rIiwgInN0YXJ0IiwgImNvZGUiLCAibWFya2Rvd25TcGFjZSIsICJmYWN0b3J5U3BhY2UiLCAiYWZ0ZXIiLCAibWFya2Rvd25MaW5lRW5kaW5nIiwgImJsYW5rTGluZSIsICJpbml0X2JsYW5rX2xpbmUiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfZmFjdG9yeV9zcGFjZSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJ0b2tlbml6ZUJsb2NrUXVvdGVTdGFydCIsICJlZmZlY3RzIiwgIm9rIiwgIm5vayIsICJzZWxmIiwgInN0YXJ0IiwgImNvZGUiLCAic3RhdGUiLCAiYWZ0ZXIiLCAibWFya2Rvd25TcGFjZSIsICJ0b2tlbml6ZUJsb2NrUXVvdGVDb250aW51YXRpb24iLCAiY29udFN0YXJ0IiwgImZhY3RvcnlTcGFjZSIsICJjb250QmVmb3JlIiwgImJsb2NrUXVvdGUiLCAiZXhpdCIsICJpbml0X2Jsb2NrX3F1b3RlIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX2ZhY3Rvcnlfc3BhY2UiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAidG9rZW5pemVDaGFyYWN0ZXJFc2NhcGUiLCAiZWZmZWN0cyIsICJvayIsICJub2siLCAic3RhcnQiLCAiY29kZSIsICJpbnNpZGUiLCAiYXNjaWlQdW5jdHVhdGlvbiIsICJjaGFyYWN0ZXJFc2NhcGUiLCAiaW5pdF9jaGFyYWN0ZXJfZXNjYXBlIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgInRva2VuaXplQ2hhcmFjdGVyUmVmZXJlbmNlIiwgImVmZmVjdHMiLCAib2siLCAibm9rIiwgInNlbGYiLCAic2l6ZSIsICJtYXgiLCAidGVzdCIsICJzdGFydCIsICJjb2RlIiwgIm9wZW4iLCAibnVtZXJpYyIsICJhc2NpaUFscGhhbnVtZXJpYyIsICJ2YWx1ZSIsICJhc2NpaUhleERpZ2l0IiwgImFzY2lpRGlnaXQiLCAidG9rZW4iLCAiZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UiLCAiY2hhcmFjdGVyUmVmZXJlbmNlIiwgImluaXRfY2hhcmFjdGVyX3JlZmVyZW5jZSIsICJfX2VzbU1pbiIsICJpbml0X2luZGV4X2RvbSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJ0b2tlbml6ZUNvZGVGZW5jZWQiLCAiZWZmZWN0cyIsICJvayIsICJub2siLCAic2VsZiIsICJjbG9zZVN0YXJ0IiwgInRva2VuaXplQ2xvc2VTdGFydCIsICJpbml0aWFsUHJlZml4IiwgInNpemVPcGVuIiwgIm1hcmtlciIsICJzdGFydCIsICJjb2RlIiwgImJlZm9yZVNlcXVlbmNlT3BlbiIsICJ0YWlsIiwgInNlcXVlbmNlT3BlbiIsICJtYXJrZG93blNwYWNlIiwgImZhY3RvcnlTcGFjZSIsICJpbmZvQmVmb3JlIiwgIm1hcmtkb3duTGluZUVuZGluZyIsICJub25MYXp5Q29udGludWF0aW9uIiwgImF0Tm9uTGF6eUJyZWFrIiwgImFmdGVyIiwgImluZm8iLCAibWV0YUJlZm9yZSIsICJtZXRhIiwgImNvbnRlbnRCZWZvcmUiLCAiY29udGVudFN0YXJ0IiwgImJlZm9yZUNvbnRlbnRDaHVuayIsICJjb250ZW50Q2h1bmsiLCAic2l6ZSIsICJzdGFydEJlZm9yZSIsICJiZWZvcmVTZXF1ZW5jZUNsb3NlIiwgInNlcXVlbmNlQ2xvc2UiLCAic2VxdWVuY2VDbG9zZUFmdGVyIiwgInRva2VuaXplTm9uTGF6eUNvbnRpbnVhdGlvbiIsICJsaW5lU3RhcnQiLCAiY29kZUZlbmNlZCIsICJpbml0X2NvZGVfZmVuY2VkIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX2ZhY3Rvcnlfc3BhY2UiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAidG9rZW5pemVDb2RlSW5kZW50ZWQiLCAiZWZmZWN0cyIsICJvayIsICJub2siLCAic2VsZiIsICJzdGFydCIsICJjb2RlIiwgImZhY3RvcnlTcGFjZSIsICJhZnRlclByZWZpeCIsICJ0YWlsIiwgImF0QnJlYWsiLCAiYWZ0ZXIiLCAibWFya2Rvd25MaW5lRW5kaW5nIiwgImZ1cnRoZXJTdGFydCIsICJpbnNpZGUiLCAidG9rZW5pemVGdXJ0aGVyU3RhcnQiLCAiY29kZUluZGVudGVkIiwgImluaXRfY29kZV9pbmRlbnRlZCIsICJfX2VzbU1pbiIsICJpbml0X21pY3JvbWFya19mYWN0b3J5X3NwYWNlIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgInJlc29sdmVDb2RlVGV4dCIsICJldmVudHMiLCAidGFpbEV4aXRJbmRleCIsICJoZWFkRW50ZXJJbmRleCIsICJpbmRleCIsICJlbnRlciIsICJwcmV2aW91cyIsICJjb2RlIiwgInRva2VuaXplQ29kZVRleHQiLCAiZWZmZWN0cyIsICJvayIsICJub2siLCAic2VsZiIsICJzaXplT3BlbiIsICJzaXplIiwgInRva2VuIiwgInN0YXJ0IiwgInNlcXVlbmNlT3BlbiIsICJiZXR3ZWVuIiwgInNlcXVlbmNlQ2xvc2UiLCAibWFya2Rvd25MaW5lRW5kaW5nIiwgImRhdGEiLCAiY29kZVRleHQiLCAiaW5pdF9jb2RlX3RleHQiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAiY2h1bmtlZFB1c2giLCAibGlzdCIsICJyaWdodCIsICJjaHVua1N0YXJ0IiwgIlNwbGljZUJ1ZmZlciIsICJpbml0X3NwbGljZV9idWZmZXIiLCAiX19lc21NaW4iLCAiaW5pdGlhbCIsICJpbmRleCIsICJzdGFydCIsICJlbmQiLCAic3RvcCIsICJkZWxldGVDb3VudCIsICJpdGVtcyIsICJjb3VudCIsICJyZW1vdmVkIiwgIml0ZW0iLCAibiIsICJzdWJ0b2tlbml6ZSIsICJldmVudHNBcnJheSIsICJqdW1wcyIsICJpbmRleCIsICJldmVudCIsICJsaW5lSW5kZXgiLCAib3RoZXJJbmRleCIsICJvdGhlckV2ZW50IiwgInBhcmFtZXRlcnMiLCAic3ViZXZlbnRzIiwgIm1vcmUiLCAiZXZlbnRzIiwgIlNwbGljZUJ1ZmZlciIsICJzdWJjb250ZW50IiwgInNwbGljZSIsICJldmVudEluZGV4IiwgInRva2VuIiwgImNvbnRleHQiLCAic3RhcnRQb3NpdGlvbiIsICJzdGFydFBvc2l0aW9ucyIsICJ0b2tlbml6ZXIiLCAiY2hpbGRFdmVudHMiLCAiZ2FwcyIsICJzdHJlYW0iLCAicHJldmlvdXMiLCAiY3VycmVudCIsICJhZGp1c3QiLCAic3RhcnQiLCAiYnJlYWtzIiwgInNsaWNlIiwgImluaXRfbWljcm9tYXJrX3V0aWxfc3VidG9rZW5pemUiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaHVua2VkIiwgImluaXRfc3BsaWNlX2J1ZmZlciIsICJyZXNvbHZlQ29udGVudCIsICJldmVudHMiLCAic3VidG9rZW5pemUiLCAidG9rZW5pemVDb250ZW50IiwgImVmZmVjdHMiLCAib2siLCAicHJldmlvdXMiLCAiY2h1bmtTdGFydCIsICJjb2RlIiwgImNodW5rSW5zaWRlIiwgImNvbnRlbnRFbmQiLCAibWFya2Rvd25MaW5lRW5kaW5nIiwgImNvbnRpbnVhdGlvbkNvbnN0cnVjdCIsICJjb250ZW50Q29udGludWUiLCAidG9rZW5pemVDb250aW51YXRpb24iLCAibm9rIiwgInNlbGYiLCAic3RhcnRMb29rYWhlYWQiLCAiZmFjdG9yeVNwYWNlIiwgInByZWZpeGVkIiwgInRhaWwiLCAiY29udGVudCIsICJpbml0X2NvbnRlbnQiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfZmFjdG9yeV9zcGFjZSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJpbml0X21pY3JvbWFya191dGlsX3N1YnRva2VuaXplIiwgImZhY3RvcnlEZXN0aW5hdGlvbiIsICJlZmZlY3RzIiwgIm9rIiwgIm5vayIsICJ0eXBlIiwgImxpdGVyYWxUeXBlIiwgImxpdGVyYWxNYXJrZXJUeXBlIiwgInJhd1R5cGUiLCAic3RyaW5nVHlwZSIsICJtYXgiLCAibGltaXQiLCAiYmFsYW5jZSIsICJzdGFydCIsICJjb2RlIiwgImVuY2xvc2VkQmVmb3JlIiwgImFzY2lpQ29udHJvbCIsICJyYXciLCAiZW5jbG9zZWQiLCAibWFya2Rvd25MaW5lRW5kaW5nIiwgImVuY2xvc2VkRXNjYXBlIiwgIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCAicmF3RXNjYXBlIiwgImluaXRfbWljcm9tYXJrX2ZhY3RvcnlfZGVzdGluYXRpb24iLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAiZmFjdG9yeUxhYmVsIiwgImVmZmVjdHMiLCAib2siLCAibm9rIiwgInR5cGUiLCAibWFya2VyVHlwZSIsICJzdHJpbmdUeXBlIiwgInNlbGYiLCAic2l6ZSIsICJzZWVuIiwgInN0YXJ0IiwgImNvZGUiLCAiYXRCcmVhayIsICJtYXJrZG93bkxpbmVFbmRpbmciLCAibGFiZWxJbnNpZGUiLCAibWFya2Rvd25TcGFjZSIsICJsYWJlbEVzY2FwZSIsICJpbml0X21pY3JvbWFya19mYWN0b3J5X2xhYmVsIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgImZhY3RvcnlUaXRsZSIsICJlZmZlY3RzIiwgIm9rIiwgIm5vayIsICJ0eXBlIiwgIm1hcmtlclR5cGUiLCAic3RyaW5nVHlwZSIsICJtYXJrZXIiLCAic3RhcnQiLCAiY29kZSIsICJiZWdpbiIsICJhdEJyZWFrIiwgIm1hcmtkb3duTGluZUVuZGluZyIsICJmYWN0b3J5U3BhY2UiLCAiaW5zaWRlIiwgImVzY2FwZSIsICJpbml0X21pY3JvbWFya19mYWN0b3J5X3RpdGxlIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX2ZhY3Rvcnlfc3BhY2UiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAiZmFjdG9yeVdoaXRlc3BhY2UiLCAiZWZmZWN0cyIsICJvayIsICJzZWVuIiwgInN0YXJ0IiwgImNvZGUiLCAibWFya2Rvd25MaW5lRW5kaW5nIiwgIm1hcmtkb3duU3BhY2UiLCAiZmFjdG9yeVNwYWNlIiwgImluaXRfbWljcm9tYXJrX2ZhY3Rvcnlfd2hpdGVzcGFjZSIsICJfX2VzbU1pbiIsICJpbml0X21pY3JvbWFya19mYWN0b3J5X3NwYWNlIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgInRva2VuaXplRGVmaW5pdGlvbiIsICJlZmZlY3RzIiwgIm9rIiwgIm5vayIsICJzZWxmIiwgImlkZW50aWZpZXIiLCAic3RhcnQiLCAiY29kZSIsICJiZWZvcmUiLCAiZmFjdG9yeUxhYmVsIiwgImxhYmVsQWZ0ZXIiLCAibm9ybWFsaXplSWRlbnRpZmllciIsICJtYXJrZXJBZnRlciIsICJtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlIiwgImZhY3RvcnlXaGl0ZXNwYWNlIiwgImRlc3RpbmF0aW9uQmVmb3JlIiwgImZhY3RvcnlEZXN0aW5hdGlvbiIsICJkZXN0aW5hdGlvbkFmdGVyIiwgInRpdGxlQmVmb3JlIiwgImFmdGVyIiwgIm1hcmtkb3duU3BhY2UiLCAiZmFjdG9yeVNwYWNlIiwgImFmdGVyV2hpdGVzcGFjZSIsICJtYXJrZG93bkxpbmVFbmRpbmciLCAidG9rZW5pemVUaXRsZUJlZm9yZSIsICJiZWZvcmVNYXJrZXIiLCAiZmFjdG9yeVRpdGxlIiwgInRpdGxlQWZ0ZXIiLCAidGl0bGVBZnRlck9wdGlvbmFsV2hpdGVzcGFjZSIsICJkZWZpbml0aW9uIiwgImluaXRfZGVmaW5pdGlvbiIsICJfX2VzbU1pbiIsICJpbml0X21pY3JvbWFya19mYWN0b3J5X2Rlc3RpbmF0aW9uIiwgImluaXRfbWljcm9tYXJrX2ZhY3RvcnlfbGFiZWwiLCAiaW5pdF9taWNyb21hcmtfZmFjdG9yeV9zcGFjZSIsICJpbml0X21pY3JvbWFya19mYWN0b3J5X3RpdGxlIiwgImluaXRfbWljcm9tYXJrX2ZhY3Rvcnlfd2hpdGVzcGFjZSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJpbml0X21pY3JvbWFya191dGlsX25vcm1hbGl6ZV9pZGVudGlmaWVyIiwgInRva2VuaXplSGFyZEJyZWFrRXNjYXBlIiwgImVmZmVjdHMiLCAib2siLCAibm9rIiwgInN0YXJ0IiwgImNvZGUiLCAiYWZ0ZXIiLCAibWFya2Rvd25MaW5lRW5kaW5nIiwgImhhcmRCcmVha0VzY2FwZSIsICJpbml0X2hhcmRfYnJlYWtfZXNjYXBlIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgInJlc29sdmVIZWFkaW5nQXR4IiwgImV2ZW50cyIsICJjb250ZXh0IiwgImNvbnRlbnRFbmQiLCAiY29udGVudFN0YXJ0IiwgImNvbnRlbnQiLCAidGV4dCIsICJzcGxpY2UiLCAidG9rZW5pemVIZWFkaW5nQXR4IiwgImVmZmVjdHMiLCAib2siLCAibm9rIiwgInNpemUiLCAic3RhcnQiLCAiY29kZSIsICJiZWZvcmUiLCAic2VxdWVuY2VPcGVuIiwgIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCAiYXRCcmVhayIsICJzZXF1ZW5jZUZ1cnRoZXIiLCAibWFya2Rvd25MaW5lRW5kaW5nIiwgIm1hcmtkb3duU3BhY2UiLCAiZmFjdG9yeVNwYWNlIiwgImRhdGEiLCAiaGVhZGluZ0F0eCIsICJpbml0X2hlYWRpbmdfYXR4IiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX2ZhY3Rvcnlfc3BhY2UiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaHVua2VkIiwgImh0bWxCbG9ja05hbWVzIiwgImh0bWxSYXdOYW1lcyIsICJpbml0X21pY3JvbWFya191dGlsX2h0bWxfdGFnX25hbWUiLCAiX19lc21NaW4iLCAicmVzb2x2ZVRvSHRtbEZsb3ciLCAiZXZlbnRzIiwgImluZGV4IiwgInRva2VuaXplSHRtbEZsb3ciLCAiZWZmZWN0cyIsICJvayIsICJub2siLCAic2VsZiIsICJtYXJrZXIiLCAiY2xvc2luZ1RhZyIsICJidWZmZXIiLCAibWFya2VyQiIsICJzdGFydCIsICJjb2RlIiwgImJlZm9yZSIsICJvcGVuIiwgImRlY2xhcmF0aW9uT3BlbiIsICJ0YWdDbG9zZVN0YXJ0IiwgImNvbnRpbnVhdGlvbkRlY2xhcmF0aW9uSW5zaWRlIiwgImFzY2lpQWxwaGEiLCAidGFnTmFtZSIsICJjb21tZW50T3Blbkluc2lkZSIsICJjZGF0YU9wZW5JbnNpZGUiLCAidmFsdWUiLCAiY29udGludWF0aW9uIiwgIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCAic2xhc2giLCAibmFtZSIsICJodG1sUmF3TmFtZXMiLCAiaHRtbEJsb2NrTmFtZXMiLCAiYmFzaWNTZWxmQ2xvc2luZyIsICJjb21wbGV0ZUNsb3NpbmdUYWdBZnRlciIsICJjb21wbGV0ZUF0dHJpYnV0ZU5hbWVCZWZvcmUiLCAiYXNjaWlBbHBoYW51bWVyaWMiLCAibWFya2Rvd25TcGFjZSIsICJjb21wbGV0ZUVuZCIsICJjb21wbGV0ZUF0dHJpYnV0ZU5hbWUiLCAiY29tcGxldGVBdHRyaWJ1dGVOYW1lQWZ0ZXIiLCAiY29tcGxldGVBdHRyaWJ1dGVWYWx1ZUJlZm9yZSIsICJjb21wbGV0ZUF0dHJpYnV0ZVZhbHVlUXVvdGVkIiwgImNvbXBsZXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZCIsICJjb21wbGV0ZUF0dHJpYnV0ZVZhbHVlUXVvdGVkQWZ0ZXIiLCAibWFya2Rvd25MaW5lRW5kaW5nIiwgImNvbXBsZXRlQWZ0ZXIiLCAiY29udGludWF0aW9uQ29tbWVudEluc2lkZSIsICJjb250aW51YXRpb25SYXdUYWdPcGVuIiwgImNvbnRpbnVhdGlvbkNsb3NlIiwgImNvbnRpbnVhdGlvbkNkYXRhSW5zaWRlIiwgImJsYW5rTGluZUJlZm9yZSIsICJjb250aW51YXRpb25BZnRlciIsICJjb250aW51YXRpb25TdGFydCIsICJub25MYXp5Q29udGludWF0aW9uU3RhcnQiLCAiY29udGludWF0aW9uU3RhcnROb25MYXp5IiwgImNvbnRpbnVhdGlvbkJlZm9yZSIsICJjb250aW51YXRpb25SYXdFbmRUYWciLCAidG9rZW5pemVOb25MYXp5Q29udGludWF0aW9uU3RhcnQiLCAiYWZ0ZXIiLCAidG9rZW5pemVCbGFua0xpbmVCZWZvcmUiLCAiYmxhbmtMaW5lIiwgImh0bWxGbG93IiwgImluaXRfaHRtbF9mbG93IiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgImluaXRfbWljcm9tYXJrX3V0aWxfaHRtbF90YWdfbmFtZSIsICJpbml0X2JsYW5rX2xpbmUiLCAidG9rZW5pemVIdG1sVGV4dCIsICJlZmZlY3RzIiwgIm9rIiwgIm5vayIsICJzZWxmIiwgIm1hcmtlciIsICJpbmRleCIsICJyZXR1cm5TdGF0ZSIsICJzdGFydCIsICJjb2RlIiwgIm9wZW4iLCAiZGVjbGFyYXRpb25PcGVuIiwgInRhZ0Nsb3NlU3RhcnQiLCAiaW5zdHJ1Y3Rpb24iLCAiYXNjaWlBbHBoYSIsICJ0YWdPcGVuIiwgImNvbW1lbnRPcGVuSW5zaWRlIiwgImNkYXRhT3Blbkluc2lkZSIsICJkZWNsYXJhdGlvbiIsICJjb21tZW50RW5kIiwgImNvbW1lbnQiLCAiY29tbWVudENsb3NlIiwgIm1hcmtkb3duTGluZUVuZGluZyIsICJsaW5lRW5kaW5nQmVmb3JlIiwgImVuZCIsICJ2YWx1ZSIsICJjZGF0YSIsICJjZGF0YUNsb3NlIiwgImNkYXRhRW5kIiwgImluc3RydWN0aW9uQ2xvc2UiLCAidGFnQ2xvc2UiLCAiYXNjaWlBbHBoYW51bWVyaWMiLCAidGFnQ2xvc2VCZXR3ZWVuIiwgIm1hcmtkb3duU3BhY2UiLCAibWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSIsICJ0YWdPcGVuQmV0d2VlbiIsICJ0YWdPcGVuQXR0cmlidXRlTmFtZSIsICJ0YWdPcGVuQXR0cmlidXRlTmFtZUFmdGVyIiwgInRhZ09wZW5BdHRyaWJ1dGVWYWx1ZUJlZm9yZSIsICJ0YWdPcGVuQXR0cmlidXRlVmFsdWVRdW90ZWQiLCAidGFnT3BlbkF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQiLCAidGFnT3BlbkF0dHJpYnV0ZVZhbHVlUXVvdGVkQWZ0ZXIiLCAibGluZUVuZGluZ0FmdGVyIiwgImZhY3RvcnlTcGFjZSIsICJsaW5lRW5kaW5nQWZ0ZXJQcmVmaXgiLCAiaHRtbFRleHQiLCAiaW5pdF9odG1sX3RleHQiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfZmFjdG9yeV9zcGFjZSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJyZXNvbHZlQWxsTGFiZWxFbmQiLCAiZXZlbnRzIiwgImluZGV4IiwgIm5ld0V2ZW50cyIsICJ0b2tlbiIsICJvZmZzZXQiLCAic3BsaWNlIiwgInJlc29sdmVUb0xhYmVsRW5kIiwgImNvbnRleHQiLCAib3BlbiIsICJjbG9zZSIsICJtZWRpYSIsICJncm91cCIsICJsYWJlbCIsICJ0ZXh0IiwgInB1c2giLCAicmVzb2x2ZUFsbCIsICJ0b2tlbml6ZUxhYmVsRW5kIiwgImVmZmVjdHMiLCAib2siLCAibm9rIiwgInNlbGYiLCAibGFiZWxTdGFydCIsICJkZWZpbmVkIiwgInN0YXJ0IiwgImNvZGUiLCAibGFiZWxFbmROb2siLCAibm9ybWFsaXplSWRlbnRpZmllciIsICJhZnRlciIsICJyZXNvdXJjZUNvbnN0cnVjdCIsICJsYWJlbEVuZE9rIiwgInJlZmVyZW5jZUZ1bGxDb25zdHJ1Y3QiLCAicmVmZXJlbmNlTm90RnVsbCIsICJyZWZlcmVuY2VDb2xsYXBzZWRDb25zdHJ1Y3QiLCAidG9rZW5pemVSZXNvdXJjZSIsICJyZXNvdXJjZVN0YXJ0IiwgInJlc291cmNlQmVmb3JlIiwgIm1hcmtkb3duTGluZUVuZGluZ09yU3BhY2UiLCAiZmFjdG9yeVdoaXRlc3BhY2UiLCAicmVzb3VyY2VPcGVuIiwgInJlc291cmNlRW5kIiwgImZhY3RvcnlEZXN0aW5hdGlvbiIsICJyZXNvdXJjZURlc3RpbmF0aW9uQWZ0ZXIiLCAicmVzb3VyY2VEZXN0aW5hdGlvbk1pc3NpbmciLCAicmVzb3VyY2VCZXR3ZWVuIiwgImZhY3RvcnlUaXRsZSIsICJyZXNvdXJjZVRpdGxlQWZ0ZXIiLCAidG9rZW5pemVSZWZlcmVuY2VGdWxsIiwgInJlZmVyZW5jZUZ1bGwiLCAiZmFjdG9yeUxhYmVsIiwgInJlZmVyZW5jZUZ1bGxBZnRlciIsICJyZWZlcmVuY2VGdWxsTWlzc2luZyIsICJ0b2tlbml6ZVJlZmVyZW5jZUNvbGxhcHNlZCIsICJyZWZlcmVuY2VDb2xsYXBzZWRTdGFydCIsICJyZWZlcmVuY2VDb2xsYXBzZWRPcGVuIiwgImxhYmVsRW5kIiwgImluaXRfbGFiZWxfZW5kIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX2ZhY3RvcnlfZGVzdGluYXRpb24iLCAiaW5pdF9taWNyb21hcmtfZmFjdG9yeV9sYWJlbCIsICJpbml0X21pY3JvbWFya19mYWN0b3J5X3RpdGxlIiwgImluaXRfbWljcm9tYXJrX2ZhY3Rvcnlfd2hpdGVzcGFjZSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJpbml0X21pY3JvbWFya191dGlsX2NodW5rZWQiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9ub3JtYWxpemVfaWRlbnRpZmllciIsICJpbml0X21pY3JvbWFya191dGlsX3Jlc29sdmVfYWxsIiwgInRva2VuaXplTGFiZWxTdGFydEltYWdlIiwgImVmZmVjdHMiLCAib2siLCAibm9rIiwgInNlbGYiLCAic3RhcnQiLCAiY29kZSIsICJvcGVuIiwgImFmdGVyIiwgImxhYmVsU3RhcnRJbWFnZSIsICJpbml0X2xhYmVsX3N0YXJ0X2ltYWdlIiwgIl9fZXNtTWluIiwgImluaXRfbGFiZWxfZW5kIiwgImxhYmVsRW5kIiwgInRva2VuaXplTGFiZWxTdGFydExpbmsiLCAiZWZmZWN0cyIsICJvayIsICJub2siLCAic2VsZiIsICJzdGFydCIsICJjb2RlIiwgImFmdGVyIiwgImxhYmVsU3RhcnRMaW5rIiwgImluaXRfbGFiZWxfc3RhcnRfbGluayIsICJfX2VzbU1pbiIsICJpbml0X2xhYmVsX2VuZCIsICJsYWJlbEVuZCIsICJ0b2tlbml6ZUxpbmVFbmRpbmciLCAiZWZmZWN0cyIsICJvayIsICJzdGFydCIsICJjb2RlIiwgImZhY3RvcnlTcGFjZSIsICJsaW5lRW5kaW5nIiwgImluaXRfbGluZV9lbmRpbmciLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfZmFjdG9yeV9zcGFjZSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJ0b2tlbml6ZVRoZW1hdGljQnJlYWsiLCAiZWZmZWN0cyIsICJvayIsICJub2siLCAic2l6ZSIsICJtYXJrZXIiLCAic3RhcnQiLCAiY29kZSIsICJiZWZvcmUiLCAiYXRCcmVhayIsICJzZXF1ZW5jZSIsICJtYXJrZG93bkxpbmVFbmRpbmciLCAibWFya2Rvd25TcGFjZSIsICJmYWN0b3J5U3BhY2UiLCAidGhlbWF0aWNCcmVhayIsICJpbml0X3RoZW1hdGljX2JyZWFrIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX2ZhY3Rvcnlfc3BhY2UiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAidG9rZW5pemVMaXN0U3RhcnQiLCAiZWZmZWN0cyIsICJvayIsICJub2siLCAic2VsZiIsICJ0YWlsIiwgImluaXRpYWxTaXplIiwgInNpemUiLCAic3RhcnQiLCAiY29kZSIsICJraW5kIiwgImFzY2lpRGlnaXQiLCAidGhlbWF0aWNCcmVhayIsICJhdE1hcmtlciIsICJpbnNpZGUiLCAiYmxhbmtMaW5lIiwgIm9uQmxhbmsiLCAibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlQ29uc3RydWN0IiwgImVuZE9mUHJlZml4IiwgIm90aGVyUHJlZml4IiwgIm1hcmtkb3duU3BhY2UiLCAidG9rZW5pemVMaXN0Q29udGludWF0aW9uIiwgIm5vdEJsYW5rIiwgImZhY3RvcnlTcGFjZSIsICJub3RJbkN1cnJlbnRJdGVtIiwgImluZGVudENvbnN0cnVjdCIsICJsaXN0IiwgInRva2VuaXplSW5kZW50IiwgImFmdGVyUHJlZml4IiwgInRva2VuaXplTGlzdEVuZCIsICJ0b2tlbml6ZUxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsICJpbml0X2xpc3QiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfZmFjdG9yeV9zcGFjZSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJpbml0X2JsYW5rX2xpbmUiLCAiaW5pdF90aGVtYXRpY19icmVhayIsICJyZXNvbHZlVG9TZXRleHRVbmRlcmxpbmUiLCAiZXZlbnRzIiwgImNvbnRleHQiLCAiaW5kZXgiLCAiY29udGVudCIsICJ0ZXh0IiwgImRlZmluaXRpb24iLCAiaGVhZGluZyIsICJ0b2tlbml6ZVNldGV4dFVuZGVybGluZSIsICJlZmZlY3RzIiwgIm9rIiwgIm5vayIsICJzZWxmIiwgIm1hcmtlciIsICJzdGFydCIsICJjb2RlIiwgInBhcmFncmFwaCIsICJiZWZvcmUiLCAiaW5zaWRlIiwgIm1hcmtkb3duU3BhY2UiLCAiZmFjdG9yeVNwYWNlIiwgImFmdGVyIiwgIm1hcmtkb3duTGluZUVuZGluZyIsICJzZXRleHRVbmRlcmxpbmUiLCAiaW5pdF9zZXRleHRfdW5kZXJsaW5lIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX2ZhY3Rvcnlfc3BhY2UiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAiaW5pdF9taWNyb21hcmtfY29yZV9jb21tb25tYXJrIiwgIl9fZXNtTWluIiwgImluaXRfYXR0ZW50aW9uIiwgImluaXRfYXV0b2xpbmsiLCAiaW5pdF9ibGFua19saW5lIiwgImluaXRfYmxvY2tfcXVvdGUiLCAiaW5pdF9jaGFyYWN0ZXJfZXNjYXBlIiwgImluaXRfY2hhcmFjdGVyX3JlZmVyZW5jZSIsICJpbml0X2NvZGVfZmVuY2VkIiwgImluaXRfY29kZV9pbmRlbnRlZCIsICJpbml0X2NvZGVfdGV4dCIsICJpbml0X2NvbnRlbnQiLCAiaW5pdF9kZWZpbml0aW9uIiwgImluaXRfaGFyZF9icmVha19lc2NhcGUiLCAiaW5pdF9oZWFkaW5nX2F0eCIsICJpbml0X2h0bWxfZmxvdyIsICJpbml0X2h0bWxfdGV4dCIsICJpbml0X2xhYmVsX2VuZCIsICJpbml0X2xhYmVsX3N0YXJ0X2ltYWdlIiwgImluaXRfbGFiZWxfc3RhcnRfbGluayIsICJpbml0X2xpbmVfZW5kaW5nIiwgImluaXRfbGlzdCIsICJpbml0X3NldGV4dF91bmRlcmxpbmUiLCAiaW5pdF90aGVtYXRpY19icmVhayIsICJnZm1Gb290bm90ZSIsICJ0b2tlbml6ZURlZmluaXRpb25TdGFydCIsICJ0b2tlbml6ZURlZmluaXRpb25Db250aW51YXRpb24iLCAiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uRW5kIiwgInRva2VuaXplR2ZtRm9vdG5vdGVDYWxsIiwgInRva2VuaXplUG90ZW50aWFsR2ZtRm9vdG5vdGVDYWxsIiwgInJlc29sdmVUb1BvdGVudGlhbEdmbUZvb3Rub3RlQ2FsbCIsICJlZmZlY3RzIiwgIm9rIiwgIm5vayIsICJzZWxmIiwgImluZGV4IiwgImRlZmluZWQiLCAibGFiZWxTdGFydCIsICJ0b2tlbiIsICJzdGFydCIsICJjb2RlIiwgImlkIiwgIm5vcm1hbGl6ZUlkZW50aWZpZXIiLCAiZXZlbnRzIiwgImNvbnRleHQiLCAiY2FsbCIsICJtYXJrZXIiLCAic3RyaW5nIiwgImNodW5rIiwgInJlcGxhY2VtZW50IiwgInNpemUiLCAiZGF0YSIsICJjYWxsU3RhcnQiLCAiY2FsbERhdGEiLCAibWFya2Rvd25MaW5lRW5kaW5nT3JTcGFjZSIsICJjYWxsRXNjYXBlIiwgImlkZW50aWZpZXIiLCAibGFiZWxBdE1hcmtlciIsICJsYWJlbEluc2lkZSIsICJsYWJlbEFmdGVyIiwgImxhYmVsRXNjYXBlIiwgImZhY3RvcnlTcGFjZSIsICJ3aGl0ZXNwYWNlQWZ0ZXIiLCAiYmxhbmtMaW5lIiwgImluZGVudCIsICJ0b2tlbml6ZUluZGVudCIsICJhZnRlclByZWZpeCIsICJ0YWlsIiwgImluaXRfc3ludGF4IiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX2NvcmVfY29tbW9ubWFyayIsICJpbml0X21pY3JvbWFya19mYWN0b3J5X3NwYWNlIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgImluaXRfbWljcm9tYXJrX3V0aWxfbm9ybWFsaXplX2lkZW50aWZpZXIiLCAiZGVmYXVsdEJhY2tMYWJlbCIsICJyZWZlcmVuY2VJbmRleCIsICJyZXJlZmVyZW5jZUluZGV4IiwgImdmbUZvb3Rub3RlSHRtbCIsICJvcHRpb25zIiwgImNvbmZpZyIsICJlbXB0eU9wdGlvbnMiLCAibGFiZWwiLCAibGFiZWxUYWdOYW1lIiwgImxhYmVsQXR0cmlidXRlcyIsICJiYWNrTGFiZWwiLCAiY2xvYmJlclByZWZpeCIsICJkZWZpbml0aW9ucyIsICJmb290bm90ZVN0YWNrIiwgInRpZ2h0U3RhY2siLCAiY3VycmVudCIsICJ2YWx1ZSIsICJvd24iLCAidG9rZW4iLCAibm9ybWFsaXplSWRlbnRpZmllciIsICJjYWxscyIsICJjb3VudHMiLCAiaWQiLCAiY291bnRlciIsICJpbmRleCIsICJzYWZlSWQiLCAic2FuaXRpemVVcmkiLCAicmV1c2VDb3VudGVyIiwgInJlZmVyZW5jZXMiLCAicmVmZXJlbmNlIiwgImluamVjdGVkIiwgIiQwIiwgImluaXRfaHRtbCIsICJfX2VzbU1pbiIsICJpbml0X21pY3JvbWFya191dGlsX25vcm1hbGl6ZV9pZGVudGlmaWVyIiwgImluaXRfbWljcm9tYXJrX3V0aWxfc2FuaXRpemVfdXJpIiwgImluaXRfbWljcm9tYXJrX2V4dGVuc2lvbl9nZm1fZm9vdG5vdGUiLCAiX19lc21NaW4iLCAiaW5pdF9zeW50YXgiLCAiaW5pdF9odG1sIiwgImdmbVN0cmlrZXRocm91Z2hIdG1sIiwgImluaXRfaHRtbCIsICJfX2VzbU1pbiIsICJnZm1TdHJpa2V0aHJvdWdoIiwgIm9wdGlvbnMiLCAic2luZ2xlIiwgInRva2VuaXplciIsICJ0b2tlbml6ZVN0cmlrZXRocm91Z2giLCAicmVzb2x2ZUFsbFN0cmlrZXRocm91Z2giLCAiZXZlbnRzIiwgImNvbnRleHQiLCAiaW5kZXgiLCAib3BlbiIsICJzdHJpa2V0aHJvdWdoIiwgInRleHQiLCAibmV4dEV2ZW50cyIsICJpbnNpZGVTcGFuIiwgInNwbGljZSIsICJyZXNvbHZlQWxsIiwgImVmZmVjdHMiLCAib2siLCAibm9rIiwgInByZXZpb3VzIiwgInNpemUiLCAic3RhcnQiLCAiY29kZSIsICJtb3JlIiwgImJlZm9yZSIsICJjbGFzc2lmeUNoYXJhY3RlciIsICJ0b2tlbiIsICJhZnRlciIsICJpbml0X3N5bnRheCIsICJfX2VzbU1pbiIsICJpbml0X21pY3JvbWFya191dGlsX2NodW5rZWQiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jbGFzc2lmeV9jaGFyYWN0ZXIiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9yZXNvbHZlX2FsbCIsICJpbml0X21pY3JvbWFya19leHRlbnNpb25fZ2ZtX3N0cmlrZXRocm91Z2giLCAiX19lc21NaW4iLCAiaW5pdF9odG1sIiwgImluaXRfc3ludGF4IiwgImdmbVRhYmxlSHRtbCIsICJ0b2tlbiIsICJ0YWJsZUFsaWduIiwgInRhYmxlQ29sdW1uIiwgImFsaWduIiwgImFsaWdubWVudCIsICJ2YWx1ZSIsICJyZXBsYWNlIiwgIiQwIiwgIiQxIiwgImluaXRfaHRtbCIsICJfX2VzbU1pbiIsICJhZGRJbXBsZW1lbnRhdGlvbiIsICJlZGl0TWFwIiwgImF0IiwgInJlbW92ZSIsICJhZGQiLCAiaW5kZXgiLCAiRWRpdE1hcCIsICJpbml0X2VkaXRfbWFwIiwgIl9fZXNtTWluIiwgImV2ZW50cyIsICJhIiwgImIiLCAidmVjcyIsICJzbGljZSIsICJlbGVtZW50IiwgImdmbVRhYmxlQWxpZ24iLCAiZXZlbnRzIiwgImluZGV4IiwgImluRGVsaW1pdGVyUm93IiwgImFsaWduIiwgImV2ZW50IiwgImFsaWduSW5kZXgiLCAiaW5pdF9pbmZlciIsICJfX2VzbU1pbiIsICJnZm1UYWJsZSIsICJ0b2tlbml6ZVRhYmxlIiwgInJlc29sdmVUYWJsZSIsICJlZmZlY3RzIiwgIm9rIiwgIm5vayIsICJzZWxmIiwgInNpemUiLCAic2l6ZUIiLCAic2VlbiIsICJzdGFydCIsICJjb2RlIiwgImluZGV4IiwgInR5cGUiLCAidGFpbCIsICJuZXh0IiwgImJvZHlSb3dTdGFydCIsICJoZWFkUm93QmVmb3JlIiwgImhlYWRSb3dTdGFydCIsICJoZWFkUm93QnJlYWsiLCAibWFya2Rvd25MaW5lRW5kaW5nIiwgImhlYWREZWxpbWl0ZXJTdGFydCIsICJtYXJrZG93blNwYWNlIiwgImZhY3RvcnlTcGFjZSIsICJoZWFkUm93RGF0YSIsICJtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlIiwgImhlYWRSb3dFc2NhcGUiLCAiaGVhZERlbGltaXRlckJlZm9yZSIsICJoZWFkRGVsaW1pdGVyVmFsdWVCZWZvcmUiLCAiaGVhZERlbGltaXRlckNlbGxCZWZvcmUiLCAiaGVhZERlbGltaXRlck5vayIsICJoZWFkRGVsaW1pdGVyTGVmdEFsaWdubWVudEFmdGVyIiwgImhlYWREZWxpbWl0ZXJDZWxsQWZ0ZXIiLCAiaGVhZERlbGltaXRlckZpbGxlciIsICJoZWFkRGVsaW1pdGVyUmlnaHRBbGlnbm1lbnRBZnRlciIsICJib2R5Um93QnJlYWsiLCAiYm9keVJvd0RhdGEiLCAiYm9keVJvd0VzY2FwZSIsICJldmVudHMiLCAiY29udGV4dCIsICJpbkZpcnN0Q2VsbEF3YWl0aW5nUGlwZSIsICJyb3dLaW5kIiwgImxhc3RDZWxsIiwgImNlbGwiLCAiYWZ0ZXJIZWFkQXdhaXRpbmdGaXJzdEJvZHlSb3ciLCAibGFzdFRhYmxlRW5kIiwgImN1cnJlbnRUYWJsZSIsICJjdXJyZW50Qm9keSIsICJjdXJyZW50Q2VsbCIsICJtYXAiLCAiRWRpdE1hcCIsICJldmVudCIsICJ0b2tlbiIsICJmbHVzaFRhYmxlRW5kIiwgImZsdXNoQ2VsbCIsICJnZm1UYWJsZUFsaWduIiwgInJhbmdlIiwgInJvd0VuZCIsICJwcmV2aW91c0NlbGwiLCAiZ3JvdXBOYW1lIiwgInZhbHVlTmFtZSIsICJnZXRQb2ludCIsICJub3ciLCAicmVsYXRlZFN0YXJ0IiwgInJlbGF0ZWRFbmQiLCAidmFsdWVUb2tlbiIsICJlbmQiLCAiYSIsICJiIiwgInRhYmxlIiwgInRhYmxlQm9keSIsICJleGl0cyIsICJyZWxhdGVkIiwgInNpZGUiLCAiaW5pdF9zeW50YXgiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfZmFjdG9yeV9zcGFjZSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJpbml0X2VkaXRfbWFwIiwgImluaXRfaW5mZXIiLCAiaW5pdF9taWNyb21hcmtfZXh0ZW5zaW9uX2dmbV90YWJsZSIsICJfX2VzbU1pbiIsICJpbml0X2h0bWwiLCAiaW5pdF9zeW50YXgiLCAiZ2ZtVGFnZmlsdGVySHRtbCIsICJ0b2tlbiIsICJleGl0SHRtbERhdGEiLCAicmVGbG93IiwgInJlVGV4dCIsICJmaWx0ZXIiLCAidmFsdWUiLCAiaW5pdF9saWIiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfZXh0ZW5zaW9uX2dmbV90YWdmaWx0ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAiZ2ZtVGFza0xpc3RJdGVtSHRtbCIsICJpbml0X2h0bWwiLCAiX19lc21NaW4iLCAiZ2ZtVGFza0xpc3RJdGVtIiwgInRhc2tsaXN0Q2hlY2siLCAidG9rZW5pemVUYXNrbGlzdENoZWNrIiwgImVmZmVjdHMiLCAib2siLCAibm9rIiwgInNlbGYiLCAib3BlbiIsICJjb2RlIiwgImluc2lkZSIsICJtYXJrZG93bkxpbmVFbmRpbmdPclNwYWNlIiwgImNsb3NlIiwgImFmdGVyIiwgIm1hcmtkb3duTGluZUVuZGluZyIsICJtYXJrZG93blNwYWNlIiwgInNwYWNlVGhlbk5vblNwYWNlIiwgImZhY3RvcnlTcGFjZSIsICJpbml0X3N5bnRheCIsICJfX2VzbU1pbiIsICJpbml0X21pY3JvbWFya19mYWN0b3J5X3NwYWNlIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgImluaXRfbWljcm9tYXJrX2V4dGVuc2lvbl9nZm1fdGFza19saXN0X2l0ZW0iLCAiX19lc21NaW4iLCAiaW5pdF9odG1sIiwgImluaXRfc3ludGF4IiwgImdmbSIsICJvcHRpb25zIiwgImNvbWJpbmVFeHRlbnNpb25zIiwgImdmbUF1dG9saW5rTGl0ZXJhbCIsICJnZm1Gb290bm90ZSIsICJnZm1TdHJpa2V0aHJvdWdoIiwgImdmbVRhYmxlIiwgImdmbVRhc2tMaXN0SXRlbSIsICJnZm1IdG1sIiwgImNvbWJpbmVIdG1sRXh0ZW5zaW9ucyIsICJnZm1BdXRvbGlua0xpdGVyYWxIdG1sIiwgImdmbUZvb3Rub3RlSHRtbCIsICJnZm1TdHJpa2V0aHJvdWdoSHRtbCIsICJnZm1UYWJsZUh0bWwiLCAiZ2ZtVGFnZmlsdGVySHRtbCIsICJnZm1UYXNrTGlzdEl0ZW1IdG1sIiwgImluaXRfbWljcm9tYXJrX2V4dGVuc2lvbl9nZm0iLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jb21iaW5lX2V4dGVuc2lvbnMiLCAiaW5pdF9taWNyb21hcmtfZXh0ZW5zaW9uX2dmbV9hdXRvbGlua19saXRlcmFsIiwgImluaXRfbWljcm9tYXJrX2V4dGVuc2lvbl9nZm1fZm9vdG5vdGUiLCAiaW5pdF9taWNyb21hcmtfZXh0ZW5zaW9uX2dmbV9zdHJpa2V0aHJvdWdoIiwgImluaXRfbWljcm9tYXJrX2V4dGVuc2lvbl9nZm1fdGFibGUiLCAiaW5pdF9taWNyb21hcmtfZXh0ZW5zaW9uX2dmbV90YWdmaWx0ZXIiLCAiaW5pdF9taWNyb21hcmtfZXh0ZW5zaW9uX2dmbV90YXNrX2xpc3RfaXRlbSIsICJyZW1hcmtHZm0iLCAib3B0aW9ucyIsICJzZWxmIiwgInNldHRpbmdzIiwgImVtcHR5T3B0aW9ucyIsICJkYXRhIiwgIm1pY3JvbWFya0V4dGVuc2lvbnMiLCAiZnJvbU1hcmtkb3duRXh0ZW5zaW9ucyIsICJ0b01hcmtkb3duRXh0ZW5zaW9ucyIsICJnZm0iLCAiZ2ZtRnJvbU1hcmtkb3duIiwgImdmbVRvTWFya2Rvd24iLCAiaW5pdF9saWIiLCAiX19lc21NaW4iLCAiaW5pdF9tZGFzdF91dGlsX2dmbSIsICJpbml0X21pY3JvbWFya19leHRlbnNpb25fZ2ZtIiwgImluaXRfcmVtYXJrX2dmbSIsICJfX2VzbU1pbiIsICJpbml0X2xpYiIsICJjb21waWxlIiwgIm9wdGlvbnMiLCAic2V0dGluZ3MiLCAidGFncyIsICJkZWZpbml0aW9ucyIsICJidWZmZXJzIiwgIm1lZGlhU3RhY2siLCAidGlnaHRTdGFjayIsICJoYW5kbGVycyIsICJjb21iaW5lSHRtbEV4dGVuc2lvbnMiLCAib25lbnRlcmJsb2NrcXVvdGUiLCAib25lbnRlcmNvZGVmZW5jZWQiLCAiYnVmZmVyIiwgIm9uZW50ZXJjb2RlaW5kZW50ZWQiLCAib25lbnRlcmNvZGV0ZXh0IiwgIm9uZW50ZXJjb250ZW50IiwgIm9uZW50ZXJkZWZpbml0aW9uIiwgIm9uZW50ZXJkZWZpbml0aW9uZGVzdGluYXRpb25zdHJpbmciLCAib25lbnRlcmVtcGhhc2lzIiwgIm9uZW50ZXJodG1sZmxvdyIsICJvbmVudGVyaHRtbCIsICJvbmVudGVyaW1hZ2UiLCAib25lbnRlcmxpbmsiLCAib25lbnRlcmxpc3RpdGVtbWFya2VyIiwgIm9uZW50ZXJsaXN0aXRlbXZhbHVlIiwgIm9uZW50ZXJsaXN0b3JkZXJlZCIsICJvbmVudGVybGlzdHVub3JkZXJlZCIsICJvbmVudGVycGFyYWdyYXBoIiwgIm9uZW50ZXJyZXNvdXJjZSIsICJvbmVudGVycmVzb3VyY2VkZXN0aW5hdGlvbnN0cmluZyIsICJvbmVudGVyc2V0ZXh0aGVhZGluZyIsICJvbmVudGVyc3Ryb25nIiwgIm9uZXhpdGF0eGhlYWRpbmciLCAib25leGl0YXR4aGVhZGluZ3NlcXVlbmNlIiwgIm9uZXhpdGF1dG9saW5rZW1haWwiLCAib25leGl0YXV0b2xpbmtwcm90b2NvbCIsICJvbmV4aXRibG9ja3F1b3RlIiwgIm9uZXhpdGRhdGEiLCAib25leGl0Y2hhcmFjdGVycmVmZXJlbmNlbWFya2VyIiwgIm9uZXhpdGNoYXJhY3RlcnJlZmVyZW5jZXZhbHVlIiwgIm9uZXhpdGZsb3djb2RlIiwgIm9uZXhpdGNvZGVmZW5jZWRmZW5jZSIsICJvbmV4aXRjb2RlZmVuY2VkZmVuY2VpbmZvIiwgIm9ucmVzdW1lZHJvcCIsICJvbmV4aXRjb2RlZmxvd3ZhbHVlIiwgIm9uZXhpdGNvZGV0ZXh0IiwgIm9uZXhpdGRlZmluaXRpb24iLCAib25leGl0ZGVmaW5pdGlvbmRlc3RpbmF0aW9uc3RyaW5nIiwgIm9uZXhpdGRlZmluaXRpb25sYWJlbHN0cmluZyIsICJvbmV4aXRkZWZpbml0aW9udGl0bGVzdHJpbmciLCAib25leGl0ZW1waGFzaXMiLCAib25leGl0aGFyZGJyZWFrIiwgIm9uZXhpdGh0bWwiLCAib25leGl0bWVkaWEiLCAib25leGl0bGFiZWwiLCAib25leGl0bGFiZWx0ZXh0IiwgIm9uZXhpdGxpbmVlbmRpbmciLCAib25leGl0bGlzdG9yZGVyZWQiLCAib25leGl0bGlzdHVub3JkZXJlZCIsICJvbmV4aXRwYXJhZ3JhcGgiLCAib25leGl0cmVmZXJlbmNlc3RyaW5nIiwgIm9uZXhpdHJlc291cmNlZGVzdGluYXRpb25zdHJpbmciLCAib25leGl0cmVzb3VyY2V0aXRsZXN0cmluZyIsICJvbmV4aXRzZXRleHRoZWFkaW5nIiwgIm9uZXhpdHNldGV4dGhlYWRpbmdsaW5lc2VxdWVuY2UiLCAib25leGl0c2V0ZXh0aGVhZGluZ3RleHQiLCAib25leGl0c3Ryb25nIiwgIm9uZXhpdHRoZW1hdGljYnJlYWsiLCAiZGF0YSIsICJjb250ZXh0IiwgImVuY29kZSIsICJnZXREYXRhIiwgImxpbmVFbmRpbmdJZk5lZWRlZCIsICJyYXciLCAicmVzdW1lIiwgInNldERhdGEiLCAidGFnIiwgImxpbmVFbmRpbmdTdHlsZSIsICJldmVudHMiLCAiaW5kZXgiLCAic3RhcnQiLCAibGlzdFN0YWNrIiwgImhlYWQiLCAiYm9keSIsICJwcmVwYXJlTGlzdCIsICJwdXNoIiwgInJlc3VsdCIsICJoYW5kbGVzIiwgImtpbmQiLCAiaGFuZGxlIiwgImhhc093blByb3BlcnR5IiwgInNsaWNlIiwgImxlbmd0aCIsICJjb250YWluZXJCYWxhbmNlIiwgImxvb3NlIiwgImF0TWFya2VyIiwgImV2ZW50IiwgImtleSIsICJ2YWx1ZSIsICJsaW5lRW5kaW5nIiwgInByZXZpb3VzIiwgInRva2VuIiwgIm9uZXhpdGxpc3RpdGVtIiwgImNvdW50IiwgIm1lZGlhIiwgImlkIiwgIm5vcm1hbGl6ZUlkZW50aWZpZXIiLCAic2FuaXRpemVVcmkiLCAicHJvdG9jb2xTb3VyY2UiLCAicHJvdG9jb2xIcmVmIiwgImRlY29kZWQiLCAiZGVjb2RlTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSIsICJkZWNvZGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZSIsICJ1cmkiLCAiaW5pdF9jb21waWxlIiwgIl9fZXNtTWluIiwgImluaXRfaW5kZXhfZG9tIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2h1bmtlZCIsICJpbml0X21pY3JvbWFya191dGlsX2NvbWJpbmVfZXh0ZW5zaW9ucyIsICJpbml0X21pY3JvbWFya191dGlsX2RlY29kZV9udW1lcmljX2NoYXJhY3Rlcl9yZWZlcmVuY2UiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9lbmNvZGUiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9ub3JtYWxpemVfaWRlbnRpZmllciIsICJpbml0X21pY3JvbWFya191dGlsX3Nhbml0aXplX3VyaSIsICJpbml0aWFsaXplQ29udGVudCIsICJlZmZlY3RzIiwgImNvbnRlbnRTdGFydCIsICJhZnRlckNvbnRlbnRTdGFydENvbnN0cnVjdCIsICJwYXJhZ3JhcGhJbml0aWFsIiwgInByZXZpb3VzIiwgImNvZGUiLCAiZmFjdG9yeVNwYWNlIiwgImxpbmVTdGFydCIsICJ0b2tlbiIsICJkYXRhIiwgIm1hcmtkb3duTGluZUVuZGluZyIsICJjb250ZW50IiwgImluaXRfY29udGVudCIsICJfX2VzbU1pbiIsICJpbml0X21pY3JvbWFya19mYWN0b3J5X3NwYWNlIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgImluaXRpYWxpemVEb2N1bWVudCIsICJlZmZlY3RzIiwgInNlbGYiLCAic3RhY2siLCAiY29udGludWVkIiwgImNoaWxkRmxvdyIsICJjaGlsZFRva2VuIiwgImxpbmVTdGFydE9mZnNldCIsICJzdGFydCIsICJjb2RlIiwgIml0ZW0iLCAiZG9jdW1lbnRDb250aW51ZSIsICJjaGVja05ld0NvbnRhaW5lcnMiLCAiY2xvc2VGbG93IiwgImluZGV4QmVmb3JlRXhpdHMiLCAiaW5kZXhCZWZvcmVGbG93IiwgInBvaW50IiwgImV4aXRDb250YWluZXJzIiwgImluZGV4IiwgInNwbGljZSIsICJkb2N1bWVudENvbnRpbnVlZCIsICJmbG93U3RhcnQiLCAiY29udGFpbmVyQ29uc3RydWN0IiwgInRoZXJlSXNBTmV3Q29udGFpbmVyIiwgInRoZXJlSXNOb05ld0NvbnRhaW5lciIsICJjb250YWluZXJDb250aW51ZSIsICJmbG93Q29udGludWUiLCAid3JpdGVUb0NoaWxkIiwgIm1hcmtkb3duTGluZUVuZGluZyIsICJ0b2tlbiIsICJlbmRPZkZpbGUiLCAic3RyZWFtIiwgInNlZW4iLCAic2l6ZSIsICJlbnRyeSIsICJ0b2tlbml6ZUNvbnRhaW5lciIsICJvayIsICJub2siLCAiZmFjdG9yeVNwYWNlIiwgImRvY3VtZW50IiwgImluaXRfZG9jdW1lbnQiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfZmFjdG9yeV9zcGFjZSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJpbml0X21pY3JvbWFya191dGlsX2NodW5rZWQiLCAiaW5pdGlhbGl6ZUZsb3ciLCAiZWZmZWN0cyIsICJzZWxmIiwgImluaXRpYWwiLCAiYmxhbmtMaW5lIiwgImF0QmxhbmtFbmRpbmciLCAiYWZ0ZXJDb25zdHJ1Y3QiLCAiZmFjdG9yeVNwYWNlIiwgImNvbnRlbnQiLCAiY29kZSIsICJmbG93IiwgImluaXRfZmxvdyIsICJfX2VzbU1pbiIsICJpbml0X21pY3JvbWFya19jb3JlX2NvbW1vbm1hcmsiLCAiaW5pdF9taWNyb21hcmtfZmFjdG9yeV9zcGFjZSIsICJpbml0X21pY3JvbWFya191dGlsX2NoYXJhY3RlciIsICJpbml0aWFsaXplRmFjdG9yeSIsICJmaWVsZCIsICJjcmVhdGVSZXNvbHZlciIsICJyZXNvbHZlQWxsTGluZVN1ZmZpeGVzIiwgImluaXRpYWxpemVUZXh0IiwgImVmZmVjdHMiLCAic2VsZiIsICJjb25zdHJ1Y3RzIiwgInRleHQiLCAic3RhcnQiLCAibm90VGV4dCIsICJjb2RlIiwgImF0QnJlYWsiLCAiZGF0YSIsICJsaXN0IiwgImluZGV4IiwgIml0ZW0iLCAiZXh0cmFSZXNvbHZlciIsICJyZXNvbHZlQWxsVGV4dCIsICJldmVudHMiLCAiY29udGV4dCIsICJlbnRlciIsICJldmVudEluZGV4IiwgImNodW5rcyIsICJidWZmZXJJbmRleCIsICJzaXplIiwgInRhYnMiLCAiY2h1bmsiLCAidG9rZW4iLCAicmVzb2x2ZXIiLCAic3RyaW5nIiwgImluaXRfdGV4dCIsICJfX2VzbU1pbiIsICJjb25zdHJ1Y3RzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiYXR0ZW50aW9uTWFya2VycyIsICJjb250ZW50SW5pdGlhbCIsICJkaXNhYmxlIiwgImRvY3VtZW50IiwgImZsb3ciLCAiZmxvd0luaXRpYWwiLCAiaW5zaWRlU3BhbiIsICJzdHJpbmciLCAidGV4dCIsICJpbml0X2NvbnN0cnVjdHMiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfY29yZV9jb21tb25tYXJrIiwgImluaXRfdGV4dCIsICJsaXN0IiwgImJsb2NrUXVvdGUiLCAiZGVmaW5pdGlvbiIsICJjb2RlSW5kZW50ZWQiLCAiaGVhZGluZ0F0eCIsICJ0aGVtYXRpY0JyZWFrIiwgInNldGV4dFVuZGVybGluZSIsICJodG1sRmxvdyIsICJjb2RlRmVuY2VkIiwgImNoYXJhY3RlclJlZmVyZW5jZSIsICJjaGFyYWN0ZXJFc2NhcGUiLCAibGluZUVuZGluZyIsICJsYWJlbFN0YXJ0SW1hZ2UiLCAiYXR0ZW50aW9uIiwgImF1dG9saW5rIiwgImh0bWxUZXh0IiwgImxhYmVsU3RhcnRMaW5rIiwgImhhcmRCcmVha0VzY2FwZSIsICJsYWJlbEVuZCIsICJjb2RlVGV4dCIsICJyZXNvbHZlciIsICJjcmVhdGVUb2tlbml6ZXIiLCAicGFyc2VyIiwgImluaXRpYWxpemUiLCAiZnJvbSIsICJwb2ludCIsICJjb2x1bW5TdGFydCIsICJyZXNvbHZlQWxsQ29uc3RydWN0cyIsICJjaHVua3MiLCAic3RhY2siLCAiY29uc3VtZWQiLCAiZWZmZWN0cyIsICJjb25zdHJ1Y3RGYWN0b3J5IiwgIm9uc3VjY2Vzc2Z1bGNvbnN0cnVjdCIsICJvbnN1Y2Nlc3NmdWxjaGVjayIsICJjb25zdW1lIiwgImVudGVyIiwgImV4aXQiLCAiY29udGV4dCIsICJkZWZpbmVTa2lwIiwgIm5vdyIsICJzbGljZVNlcmlhbGl6ZSIsICJzbGljZVN0cmVhbSIsICJ3cml0ZSIsICJzdGF0ZSIsICJleHBlY3RlZENvZGUiLCAic2xpY2UiLCAicHVzaCIsICJtYWluIiwgImFkZFJlc3VsdCIsICJyZXNvbHZlQWxsIiwgInRva2VuIiwgImV4cGFuZFRhYnMiLCAic2VyaWFsaXplQ2h1bmtzIiwgInNsaWNlQ2h1bmtzIiwgIl9idWZmZXJJbmRleCIsICJfaW5kZXgiLCAibGluZSIsICJjb2x1bW4iLCAib2Zmc2V0IiwgInZhbHVlIiwgImFjY291bnRGb3JQb3RlbnRpYWxTa2lwIiwgImNodW5rSW5kZXgiLCAiY2h1bmsiLCAiZ28iLCAiY29kZSIsICJtYXJrZG93bkxpbmVFbmRpbmciLCAidHlwZSIsICJmaWVsZHMiLCAiY29uc3RydWN0IiwgImluZm8iLCAiXyIsICJvbnJldHVybiIsICJob29rIiwgImNvbnN0cnVjdHMiLCAicmV0dXJuU3RhdGUiLCAiYm9ndXNTdGF0ZSIsICJsaXN0T2ZDb25zdHJ1Y3RzIiwgImNvbnN0cnVjdEluZGV4IiwgImN1cnJlbnRDb25zdHJ1Y3QiLCAiaGFuZGxlTGlzdE9mQ29uc3RydWN0cyIsICJoYW5kbGVNYXBPZkNvbnN0cnVjdHMiLCAibWFwIiwgInN0YXJ0IiwgImxlZnQiLCAiYWxsIiwgImxpc3QiLCAiaGFuZGxlQ29uc3RydWN0IiwgInN0b3JlIiwgIm5vayIsICJvayIsICJzcGxpY2UiLCAic3RhcnRQb2ludCIsICJzdGFydFByZXZpb3VzIiwgInN0YXJ0Q3VycmVudENvbnN0cnVjdCIsICJzdGFydEV2ZW50c0luZGV4IiwgInN0YXJ0U3RhY2siLCAicmVzdG9yZSIsICJzdGFydEluZGV4IiwgInN0YXJ0QnVmZmVySW5kZXgiLCAiZW5kSW5kZXgiLCAiZW5kQnVmZmVySW5kZXgiLCAidmlldyIsICJoZWFkIiwgImluZGV4IiwgInJlc3VsdCIsICJhdFRhYiIsICJpbml0X2NyZWF0ZV90b2tlbml6ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaGFyYWN0ZXIiLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jaHVua2VkIiwgImluaXRfbWljcm9tYXJrX3V0aWxfcmVzb2x2ZV9hbGwiLCAicGFyc2UiLCAib3B0aW9ucyIsICJwYXJzZXIiLCAiY29tYmluZUV4dGVuc2lvbnMiLCAiY29uc3RydWN0c19leHBvcnRzIiwgImNyZWF0ZSIsICJjb250ZW50IiwgImRvY3VtZW50IiwgImZsb3ciLCAic3RyaW5nIiwgInRleHQiLCAiaW5pdGlhbCIsICJjcmVhdG9yIiwgImZyb20iLCAiY3JlYXRlVG9rZW5pemVyIiwgImluaXRfcGFyc2UiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9jb21iaW5lX2V4dGVuc2lvbnMiLCAiaW5pdF9jb250ZW50IiwgImluaXRfZG9jdW1lbnQiLCAiaW5pdF9mbG93IiwgImluaXRfdGV4dCIsICJpbml0X2NvbnN0cnVjdHMiLCAiaW5pdF9jcmVhdGVfdG9rZW5pemVyIiwgInBvc3Rwcm9jZXNzIiwgImV2ZW50cyIsICJzdWJ0b2tlbml6ZSIsICJpbml0X3Bvc3Rwcm9jZXNzIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfc3VidG9rZW5pemUiLCAicHJlcHJvY2VzcyIsICJjb2x1bW4iLCAiYnVmZmVyIiwgInN0YXJ0IiwgImF0Q2FycmlhZ2VSZXR1cm4iLCAicHJlcHJvY2Vzc29yIiwgInZhbHVlIiwgImVuY29kaW5nIiwgImVuZCIsICJjaHVua3MiLCAibWF0Y2giLCAibmV4dCIsICJzdGFydFBvc2l0aW9uIiwgImVuZFBvc2l0aW9uIiwgImNvZGUiLCAic2VhcmNoIiwgImluaXRfcHJlcHJvY2VzcyIsICJfX2VzbU1pbiIsICJtaWNyb21hcmsiLCAidmFsdWUiLCAiZW5jb2RpbmciLCAib3B0aW9ucyIsICJjb21waWxlIiwgInBvc3Rwcm9jZXNzIiwgInBhcnNlIiwgInByZXByb2Nlc3MiLCAiaW5pdF9taWNyb21hcmsiLCAiX19lc21NaW4iLCAiaW5pdF9jb21waWxlIiwgImluaXRfcGFyc2UiLCAiaW5pdF9wb3N0cHJvY2VzcyIsICJpbml0X3ByZXByb2Nlc3MiLCAiZnJvbU1hcmtkb3duIiwgInZhbHVlIiwgImVuY29kaW5nIiwgIm9wdGlvbnMiLCAiY29tcGlsZXIiLCAicG9zdHByb2Nlc3MiLCAicGFyc2UiLCAicHJlcHJvY2VzcyIsICJjb25maWciLCAib3BlbmVyIiwgImxpbmsiLCAib25lbnRlcmRhdGEiLCAiaGVhZGluZyIsICJibG9ja1F1b3RlIiwgImNvZGVGbG93IiwgImJ1ZmZlciIsICJjb2RlVGV4dCIsICJkZWZpbml0aW9uIiwgImVtcGhhc2lzIiwgImhhcmRCcmVhayIsICJodG1sIiwgImltYWdlIiwgImxpc3RJdGVtIiwgIm9uZW50ZXJsaXN0aXRlbXZhbHVlIiwgImxpc3QiLCAib25lbnRlcmxpc3RvcmRlcmVkIiwgInBhcmFncmFwaCIsICJvbmVudGVycmVmZXJlbmNlIiwgInN0cm9uZyIsICJ0aGVtYXRpY0JyZWFrIiwgImNsb3NlciIsICJvbmV4aXRhdHhoZWFkaW5nc2VxdWVuY2UiLCAib25leGl0YXV0b2xpbmtlbWFpbCIsICJvbmV4aXRhdXRvbGlua3Byb3RvY29sIiwgIm9uZXhpdGRhdGEiLCAib25leGl0Y2hhcmFjdGVycmVmZXJlbmNlbWFya2VyIiwgIm9uZXhpdGNoYXJhY3RlcnJlZmVyZW5jZXZhbHVlIiwgIm9uZXhpdGNoYXJhY3RlcnJlZmVyZW5jZSIsICJvbmV4aXRjb2RlZmVuY2VkIiwgIm9uZXhpdGNvZGVmZW5jZWRmZW5jZSIsICJvbmV4aXRjb2RlZmVuY2VkZmVuY2VpbmZvIiwgIm9uZXhpdGNvZGVmZW5jZWRmZW5jZW1ldGEiLCAib25leGl0Y29kZWluZGVudGVkIiwgIm9uZXhpdGNvZGV0ZXh0IiwgIm9uZXhpdGRlZmluaXRpb25kZXN0aW5hdGlvbnN0cmluZyIsICJvbmV4aXRkZWZpbml0aW9ubGFiZWxzdHJpbmciLCAib25leGl0ZGVmaW5pdGlvbnRpdGxlc3RyaW5nIiwgIm9uZXhpdGhhcmRicmVhayIsICJvbmV4aXRodG1sZmxvdyIsICJvbmV4aXRodG1sdGV4dCIsICJvbmV4aXRpbWFnZSIsICJvbmV4aXRsYWJlbCIsICJvbmV4aXRsYWJlbHRleHQiLCAib25leGl0bGluZWVuZGluZyIsICJvbmV4aXRsaW5rIiwgIm9uZXhpdHJlZmVyZW5jZXN0cmluZyIsICJvbmV4aXRyZXNvdXJjZWRlc3RpbmF0aW9uc3RyaW5nIiwgIm9uZXhpdHJlc291cmNldGl0bGVzdHJpbmciLCAib25leGl0cmVzb3VyY2UiLCAib25leGl0c2V0ZXh0aGVhZGluZyIsICJvbmV4aXRzZXRleHRoZWFkaW5nbGluZXNlcXVlbmNlIiwgIm9uZXhpdHNldGV4dGhlYWRpbmd0ZXh0IiwgImNvbmZpZ3VyZSIsICJkYXRhIiwgImNvbXBpbGUiLCAiZXZlbnRzIiwgInRyZWUiLCAiY29udGV4dCIsICJlbnRlciIsICJleGl0IiwgInJlc3VtZSIsICJsaXN0U3RhY2siLCAiaW5kZXgiLCAidGFpbCIsICJwcmVwYXJlTGlzdCIsICJoYW5kbGVyIiwgIm93biIsICJkZWZhdWx0T25FcnJvciIsICJwb2ludCIsICJzdGFydCIsICJsZW5ndGgiLCAiY29udGFpbmVyQmFsYW5jZSIsICJsaXN0U3ByZWFkIiwgImxpbmVJbmRleCIsICJmaXJzdEJsYW5rTGluZUluZGV4IiwgImF0TWFya2VyIiwgImV2ZW50IiwgInRhaWxJbmRleCIsICJ0YWlsRXZlbnQiLCAiaXRlbSIsICJjcmVhdGUiLCAiYW5kIiwgIm9wZW4iLCAidG9rZW4iLCAibm9kZSIsICJlcnJvckhhbmRsZXIiLCAiY2xvc2UiLCAib25FeGl0RXJyb3IiLCAic3RyaW5naWZ5UG9zaXRpb24iLCAidG9TdHJpbmciLCAiYW5jZXN0b3IiLCAibGFiZWwiLCAibm9ybWFsaXplSWRlbnRpZmllciIsICJkZXB0aCIsICJzaWJsaW5ncyIsICJ0ZXh0IiwgInJlZmVyZW5jZVR5cGUiLCAic3RyaW5nIiwgImRlY29kZVN0cmluZyIsICJmcmFnbWVudCIsICJjaGlsZHJlbiIsICJ0eXBlIiwgImRlY29kZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UiLCAiZGVjb2RlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UiLCAiZCIsICJjb21iaW5lZCIsICJleHRlbnNpb25zIiwgImV4dGVuc2lvbiIsICJrZXkiLCAicmlnaHQiLCAibGVmdCIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X21kYXN0X3V0aWxfdG9fc3RyaW5nIiwgImluaXRfbWljcm9tYXJrIiwgImluaXRfbWljcm9tYXJrX3V0aWxfZGVjb2RlX251bWVyaWNfY2hhcmFjdGVyX3JlZmVyZW5jZSIsICJpbml0X21pY3JvbWFya191dGlsX2RlY29kZV9zdHJpbmciLCAiaW5pdF9taWNyb21hcmtfdXRpbF9ub3JtYWxpemVfaWRlbnRpZmllciIsICJpbml0X2luZGV4X2RvbSIsICJpbml0X3VuaXN0X3V0aWxfc3RyaW5naWZ5X3Bvc2l0aW9uIiwgImluaXRfbWRhc3RfdXRpbF9mcm9tX21hcmtkb3duIiwgIl9fZXNtTWluIiwgImluaXRfbGliIiwgInJlbWFya1BhcnNlIiwgIm9wdGlvbnMiLCAic2VsZiIsICJwYXJzZXIiLCAiZG9jIiwgImZyb21NYXJrZG93biIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X21kYXN0X3V0aWxfZnJvbV9tYXJrZG93biIsICJpbml0X3JlbWFya19wYXJzZSIsICJfX2VzbU1pbiIsICJpbml0X2xpYiIsICJyZXF1aXJlX2Zvcm1hdCIsICJfX2NvbW1vbkpTTWluIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIm5hbWVzcGFjZSIsICJmb3JtYXQiLCAidnNwcmludGYiLCAicHJpbnRmIiwgImZtdCIsICJyZXBsYWNlbWVudHMiLCAiYXJnSW5kZXgiLCAiYXJncyIsICJpIiwgIm4iLCAicmVzdWx0IiwgImMiLCAiZXNjYXBlZCIsICJhcmciLCAidG1wIiwgImxlYWRpbmdaZXJvIiwgInByZWNpc2lvbiIsICJuZXh0QXJnIiwgInNsdXJwTnVtYmVyIiwgImRpZ2l0cyIsICJjcmVhdGUiLCAiQ29uc3RydWN0b3IiLCAiRm9ybWF0dGVkRXJyb3IiLCAiZm9ybWF0IiwgInZhbHVlcyIsICJyZWFzb24iLCAiZm9ybWF0dGVyIiwgImltcG9ydF9mb3JtYXQiLCAiZmF1bHQiLCAiaW5pdF9mYXVsdCIsICJfX2VzbU1pbiIsICJ0b01hdHRlcnMiLCAib3B0aW9ucyIsICJyZXN1bHQiLCAiaW5kZXgiLCAicHJlc2V0c09yTWF0dGVycyIsICJtYXR0ZXIiLCAib3B0aW9uIiwgIm93biIsICJtYXJrZXJzIiwgImZhdWx0IiwgImluaXRfdG9fbWF0dGVycyIsICJfX2VzbU1pbiIsICJpbml0X2ZhdWx0IiwgImZyb250bWF0dGVyIiwgIm9wdGlvbnMiLCAibWF0dGVycyIsICJ0b01hdHRlcnMiLCAiZmxvdyIsICJpbmRleCIsICJtYXR0ZXIiLCAiY29kZSIsICJmZW5jZSIsICJjb25zdHJ1Y3QiLCAiY3JlYXRlQ29uc3RydWN0IiwgImV4aXN0aW5nIiwgImFueXdoZXJlIiwgImZyb250bWF0dGVyVHlwZSIsICJmZW5jZVR5cGUiLCAic2VxdWVuY2VUeXBlIiwgInZhbHVlVHlwZSIsICJjbG9zaW5nRmVuY2VDb25zdHJ1Y3QiLCAidG9rZW5pemVDbG9zaW5nRmVuY2UiLCAiYnVmZmVyIiwgImJ1ZmZlckluZGV4IiwgInRva2VuaXplRnJvbnRtYXR0ZXIiLCAiZWZmZWN0cyIsICJvayIsICJub2siLCAic2VsZiIsICJzdGFydCIsICJwb3NpdGlvbiIsICJvcGVuU2VxdWVuY2UiLCAibWFya2Rvd25TcGFjZSIsICJvcGVuU2VxdWVuY2VXaGl0ZXNwYWNlIiwgIm9wZW5BZnRlciIsICJtYXJrZG93bkxpbmVFbmRpbmciLCAiYWZ0ZXIiLCAiY29udGVudFN0YXJ0IiwgImNvbnRlbnRFbmQiLCAiY29udGVudEluc2lkZSIsICJjbG9zZVN0YXJ0IiwgImNsb3NlU2VxdWVuY2UiLCAiY2xvc2VTZXF1ZW5jZVdoaXRlc3BhY2UiLCAiY2xvc2VBZnRlciIsICJwcm9wIiwgInBpY2siLCAic2NoZW1hIiwgImluaXRfc3ludGF4IiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfY2hhcmFjdGVyIiwgImluaXRfdG9fbWF0dGVycyIsICJpbml0X2h0bWwiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfZXh0ZW5zaW9uX2Zyb250bWF0dGVyIiwgIl9fZXNtTWluIiwgImluaXRfc3ludGF4IiwgImluaXRfaHRtbCIsICJpbml0X3RvX21hdHRlcnMiLCAiZnJvbnRtYXR0ZXJGcm9tTWFya2Rvd24iLCAib3B0aW9ucyIsICJtYXR0ZXJzIiwgInRvTWF0dGVycyIsICJlbnRlciIsICJleGl0IiwgImluZGV4IiwgIm1hdHRlciIsICJvcGVuZXIiLCAiY2xvc2UiLCAidmFsdWUiLCAib3BlbiIsICJ0b2tlbiIsICJkYXRhIiwgIm5vZGUiLCAiZnJvbnRtYXR0ZXJUb01hcmtkb3duIiwgInVuc2FmZSIsICJoYW5kbGVycyIsICJoYW5kbGVyIiwgImZlbmNlIiwgImVzY2FwZVN0cmluZ1JlZ2V4cCIsICJoYW5kbGUiLCAicHJvcCIsICJwaWNrIiwgInNjaGVtYSIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHQiLCAiaW5pdF9taWNyb21hcmtfZXh0ZW5zaW9uX2Zyb250bWF0dGVyIiwgImluaXRfZXNjYXBlX3N0cmluZ19yZWdleHAiLCAiaW5pdF9tZGFzdF91dGlsX2Zyb250bWF0dGVyIiwgIl9fZXNtTWluIiwgImluaXRfbGliIiwgInJlbWFya0Zyb250bWF0dGVyIiwgIm9wdGlvbnMiLCAic2VsZiIsICJzZXR0aW5ncyIsICJlbXB0eU9wdGlvbnMiLCAiZGF0YSIsICJtaWNyb21hcmtFeHRlbnNpb25zIiwgImZyb21NYXJrZG93bkV4dGVuc2lvbnMiLCAidG9NYXJrZG93bkV4dGVuc2lvbnMiLCAiZnJvbnRtYXR0ZXIiLCAiZnJvbnRtYXR0ZXJGcm9tTWFya2Rvd24iLCAiZnJvbnRtYXR0ZXJUb01hcmtkb3duIiwgImluaXRfbGliIiwgIl9fZXNtTWluIiwgImluaXRfbWRhc3RfdXRpbF9mcm9udG1hdHRlciIsICJpbml0X21pY3JvbWFya19leHRlbnNpb25fZnJvbnRtYXR0ZXIiLCAiaW5pdF9yZW1hcmtfZnJvbnRtYXR0ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAiaW5pdF90eXBlcyIsICJfX2VzbU1pbiIsICJlbnYiLCAiZGVzZXJpYWxpemVyIiwgImRlc2VyaWFsaXplIiwgImluaXRfZGVzZXJpYWxpemUiLCAiX19lc21NaW4iLCAiaW5pdF90eXBlcyIsICIkIiwgIl8iLCAiYXMiLCAib3V0IiwgImluZGV4IiwgInVucGFpciIsICJ0eXBlIiwgInZhbHVlIiwgImFyciIsICJvYmplY3QiLCAia2V5IiwgInNvdXJjZSIsICJmbGFncyIsICJtYXAiLCAic2V0IiwgIm5hbWUiLCAibWVzc2FnZSIsICJidWZmZXIiLCAic2VyaWFsaXplZCIsICJFTVBUWSIsICJ0b1N0cmluZyIsICJrZXlzIiwgInR5cGVPZiIsICJzaG91bGRTa2lwIiwgInNlcmlhbGl6ZXIiLCAic2VyaWFsaXplIiwgImluaXRfc2VyaWFsaXplIiwgIl9fZXNtTWluIiwgImluaXRfdHlwZXMiLCAidmFsdWUiLCAidHlwZSIsICJhc1N0cmluZyIsICJUWVBFIiwgInN0cmljdCIsICJqc29uIiwgIiQiLCAiXyIsICJhcyIsICJvdXQiLCAiaW5kZXgiLCAicGFpciIsICJlbnRyeSIsICJzcHJlYWQiLCAiYXJyIiwgImVudHJpZXMiLCAia2V5IiwgInNvdXJjZSIsICJmbGFncyIsICJtZXNzYWdlIiwgImxvc3N5IiwgImVzbV9kZWZhdWx0IiwgImluaXRfZXNtIiwgIl9fZXNtTWluIiwgImluaXRfZGVzZXJpYWxpemUiLCAiaW5pdF9zZXJpYWxpemUiLCAiYW55IiwgIm9wdGlvbnMiLCAiZGVzZXJpYWxpemUiLCAic2VyaWFsaXplIiwgInBvaW50IiwgInR5cGUiLCAibm9kZSIsICJwb3NpdGlvbiIsICJzdGFydCIsICJwb2ludFN0YXJ0IiwgImVuZCIsICJwb2ludEVuZCIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X3VuaXN0X3V0aWxfcG9zaXRpb24iLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAiYXJpYSIsICJkZWZhdWx0U2NoZW1hIiwgImluaXRfc2NoZW1hIiwgIl9fZXNtTWluIiwgInNhbml0aXplIiwgIm5vZGUiLCAib3B0aW9ucyIsICJyZXN1bHQiLCAic3RhdGUiLCAiZGVmYXVsdFNjaGVtYSIsICJyZXBsYWNlIiwgInRyYW5zZm9ybSIsICJ1bnNhZmUiLCAiY29tbWVudCIsICJkb2N0eXBlIiwgImVsZW1lbnQiLCAicm9vdCIsICJ0ZXh0IiwgImluZGV4IiwgInBhdGNoIiwgIm5hbWUiLCAiY29udGVudCIsICJjaGlsZHJlbiIsICJwcm9wZXJ0aWVzXyIsICJwcm9wZXJ0aWVzIiwgInNhZmVFbGVtZW50IiwgIm93biIsICJhbmNlc3RvcnMiLCAiXyIsICJyZXN1bHRzIiwgImNoaWxkcmVuVW5rbm93biIsICJ2YWx1ZSIsICJ0YWdOYW1lIiwgImF0dHJpYnV0ZXMiLCAicmVxdWlyZWQiLCAic3BlY2lmaWMiLCAiZGVmYXVsdHMiLCAia2V5IiwgInNhZmUiLCAicHJvcGVydHlWYWx1ZSIsICJmaW5kRGVmaW5pdGlvbiIsICJkZWZpbml0aW9uIiwgInByb3BlcnR5VmFsdWVNYW55IiwgInByb3BlcnR5VmFsdWVQcmltaXRpdmUiLCAidmFsdWVzIiwgInNhZmVQcm90b2NvbCIsICJvayIsICJhbGxvd2VkIiwgInByb3RvY29scyIsICJ1cmwiLCAiY29sb24iLCAicXVlc3Rpb25NYXJrIiwgIm51bWJlclNpZ24iLCAic2xhc2giLCAicHJvdG9jb2wiLCAiY2xlYW5Qb3NpdGlvbiIsICJwb3NpdGlvbiIsICJlc21fZGVmYXVsdCIsICJkZWZpbml0aW9ucyIsICJkYXRhRGVmYXVsdCIsICJlbnRyeSIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X2VzbSIsICJpbml0X3VuaXN0X3V0aWxfcG9zaXRpb24iLCAiaW5pdF9zY2hlbWEiLCAiaW5pdF9oYXN0X3V0aWxfc2FuaXRpemUiLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAiaW5pdF9zY2hlbWEiLCAiYmxvY2txdW90ZSIsICJzdGF0ZSIsICJub2RlIiwgInJlc3VsdCIsICJpbml0X2Jsb2NrcXVvdGUiLCAiX19lc21NaW4iLCAiaGFyZEJyZWFrIiwgInN0YXRlIiwgIm5vZGUiLCAicmVzdWx0IiwgImluaXRfYnJlYWsiLCAiX19lc21NaW4iLCAiY29kZSIsICJzdGF0ZSIsICJub2RlIiwgInZhbHVlIiwgInByb3BlcnRpZXMiLCAibGFuZ3VhZ2UiLCAicmVzdWx0IiwgImluaXRfY29kZSIsICJfX2VzbU1pbiIsICJzdHJpa2V0aHJvdWdoIiwgInN0YXRlIiwgIm5vZGUiLCAicmVzdWx0IiwgImluaXRfZGVsZXRlIiwgIl9fZXNtTWluIiwgImVtcGhhc2lzIiwgInN0YXRlIiwgIm5vZGUiLCAicmVzdWx0IiwgImluaXRfZW1waGFzaXMiLCAiX19lc21NaW4iLCAiZm9vdG5vdGVSZWZlcmVuY2UiLCAic3RhdGUiLCAibm9kZSIsICJjbG9iYmVyUHJlZml4IiwgImlkIiwgInNhZmVJZCIsICJub3JtYWxpemVVcmkiLCAiaW5kZXgiLCAiY291bnRlciIsICJyZXVzZUNvdW50ZXIiLCAibGluayIsICJzdXAiLCAiaW5pdF9mb290bm90ZV9yZWZlcmVuY2UiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9zYW5pdGl6ZV91cmkiLCAiaGVhZGluZyIsICJzdGF0ZSIsICJub2RlIiwgInJlc3VsdCIsICJpbml0X2hlYWRpbmciLCAiX19lc21NaW4iLCAiaHRtbCIsICJzdGF0ZSIsICJub2RlIiwgInJlc3VsdCIsICJpbml0X2h0bWwiLCAiX19lc21NaW4iLCAicmV2ZXJ0IiwgInN0YXRlIiwgIm5vZGUiLCAic3VidHlwZSIsICJzdWZmaXgiLCAiY29udGVudHMiLCAiaGVhZCIsICJ0YWlsIiwgImluaXRfcmV2ZXJ0IiwgIl9fZXNtTWluIiwgImltYWdlUmVmZXJlbmNlIiwgInN0YXRlIiwgIm5vZGUiLCAiaWQiLCAiZGVmaW5pdGlvbiIsICJyZXZlcnQiLCAicHJvcGVydGllcyIsICJub3JtYWxpemVVcmkiLCAicmVzdWx0IiwgImluaXRfaW1hZ2VfcmVmZXJlbmNlIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfc2FuaXRpemVfdXJpIiwgImluaXRfcmV2ZXJ0IiwgImltYWdlIiwgInN0YXRlIiwgIm5vZGUiLCAicHJvcGVydGllcyIsICJub3JtYWxpemVVcmkiLCAicmVzdWx0IiwgImluaXRfaW1hZ2UiLCAiX19lc21NaW4iLCAiaW5pdF9taWNyb21hcmtfdXRpbF9zYW5pdGl6ZV91cmkiLCAiaW5saW5lQ29kZSIsICJzdGF0ZSIsICJub2RlIiwgInRleHQiLCAicmVzdWx0IiwgImluaXRfaW5saW5lX2NvZGUiLCAiX19lc21NaW4iLCAibGlua1JlZmVyZW5jZSIsICJzdGF0ZSIsICJub2RlIiwgImlkIiwgImRlZmluaXRpb24iLCAicmV2ZXJ0IiwgInByb3BlcnRpZXMiLCAibm9ybWFsaXplVXJpIiwgInJlc3VsdCIsICJpbml0X2xpbmtfcmVmZXJlbmNlIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfc2FuaXRpemVfdXJpIiwgImluaXRfcmV2ZXJ0IiwgImxpbmsiLCAic3RhdGUiLCAibm9kZSIsICJwcm9wZXJ0aWVzIiwgIm5vcm1hbGl6ZVVyaSIsICJyZXN1bHQiLCAiaW5pdF9saW5rIiwgIl9fZXNtTWluIiwgImluaXRfbWljcm9tYXJrX3V0aWxfc2FuaXRpemVfdXJpIiwgImxpc3RJdGVtIiwgInN0YXRlIiwgIm5vZGUiLCAicGFyZW50IiwgInJlc3VsdHMiLCAibG9vc2UiLCAibGlzdExvb3NlIiwgImxpc3RJdGVtTG9vc2UiLCAicHJvcGVydGllcyIsICJjaGlsZHJlbiIsICJoZWFkIiwgInBhcmFncmFwaCIsICJpbmRleCIsICJjaGlsZCIsICJ0YWlsIiwgInJlc3VsdCIsICJzcHJlYWQiLCAiaW5pdF9saXN0X2l0ZW0iLCAiX19lc21NaW4iLCAibGlzdCIsICJzdGF0ZSIsICJub2RlIiwgInByb3BlcnRpZXMiLCAicmVzdWx0cyIsICJpbmRleCIsICJjaGlsZCIsICJyZXN1bHQiLCAiaW5pdF9saXN0IiwgIl9fZXNtTWluIiwgInBhcmFncmFwaCIsICJzdGF0ZSIsICJub2RlIiwgInJlc3VsdCIsICJpbml0X3BhcmFncmFwaCIsICJfX2VzbU1pbiIsICJyb290IiwgInN0YXRlIiwgIm5vZGUiLCAicmVzdWx0IiwgImluaXRfcm9vdCIsICJfX2VzbU1pbiIsICJzdHJvbmciLCAic3RhdGUiLCAibm9kZSIsICJyZXN1bHQiLCAiaW5pdF9zdHJvbmciLCAiX19lc21NaW4iLCAidGFibGUiLCAic3RhdGUiLCAibm9kZSIsICJyb3dzIiwgImZpcnN0Um93IiwgInRhYmxlQ29udGVudCIsICJoZWFkIiwgImJvZHkiLCAic3RhcnQiLCAicG9pbnRTdGFydCIsICJlbmQiLCAicG9pbnRFbmQiLCAicmVzdWx0IiwgImluaXRfdGFibGUiLCAiX19lc21NaW4iLCAiaW5pdF91bmlzdF91dGlsX3Bvc2l0aW9uIiwgInRhYmxlUm93IiwgInN0YXRlIiwgIm5vZGUiLCAicGFyZW50IiwgInNpYmxpbmdzIiwgInRhZ05hbWUiLCAiYWxpZ24iLCAibGVuZ3RoIiwgImNlbGxJbmRleCIsICJjZWxscyIsICJjZWxsIiwgInByb3BlcnRpZXMiLCAiYWxpZ25WYWx1ZSIsICJyZXN1bHQiLCAiaW5pdF90YWJsZV9yb3ciLCAiX19lc21NaW4iLCAidGFibGVDZWxsIiwgInN0YXRlIiwgIm5vZGUiLCAicmVzdWx0IiwgImluaXRfdGFibGVfY2VsbCIsICJfX2VzbU1pbiIsICJ0cmltTGluZXMiLCAidmFsdWUiLCAic291cmNlIiwgInNlYXJjaCIsICJtYXRjaCIsICJsYXN0IiwgImxpbmVzIiwgInRyaW1MaW5lIiwgInN0YXJ0IiwgImVuZCIsICJzdGFydEluZGV4IiwgImVuZEluZGV4IiwgImNvZGUiLCAidGFiIiwgInNwYWNlIiwgImluaXRfdHJpbV9saW5lcyIsICJfX2VzbU1pbiIsICJ0ZXh0IiwgInN0YXRlIiwgIm5vZGUiLCAicmVzdWx0IiwgInRyaW1MaW5lcyIsICJpbml0X3RleHQiLCAiX19lc21NaW4iLCAiaW5pdF90cmltX2xpbmVzIiwgInRoZW1hdGljQnJlYWsiLCAic3RhdGUiLCAibm9kZSIsICJyZXN1bHQiLCAiaW5pdF90aGVtYXRpY19icmVhayIsICJfX2VzbU1pbiIsICJpZ25vcmUiLCAiaGFuZGxlcnMiLCAiaW5pdF9oYW5kbGVycyIsICJfX2VzbU1pbiIsICJpbml0X2Jsb2NrcXVvdGUiLCAiaW5pdF9icmVhayIsICJpbml0X2NvZGUiLCAiaW5pdF9kZWxldGUiLCAiaW5pdF9lbXBoYXNpcyIsICJpbml0X2Zvb3Rub3RlX3JlZmVyZW5jZSIsICJpbml0X2hlYWRpbmciLCAiaW5pdF9odG1sIiwgImluaXRfaW1hZ2VfcmVmZXJlbmNlIiwgImluaXRfaW1hZ2UiLCAiaW5pdF9pbmxpbmVfY29kZSIsICJpbml0X2xpbmtfcmVmZXJlbmNlIiwgImluaXRfbGluayIsICJpbml0X2xpc3RfaXRlbSIsICJpbml0X2xpc3QiLCAiaW5pdF9wYXJhZ3JhcGgiLCAiaW5pdF9yb290IiwgImluaXRfc3Ryb25nIiwgImluaXRfdGFibGUiLCAiaW5pdF90YWJsZV9yb3ciLCAiaW5pdF90YWJsZV9jZWxsIiwgImluaXRfdGV4dCIsICJpbml0X3RoZW1hdGljX2JyZWFrIiwgImJsb2NrcXVvdGUiLCAiaGFyZEJyZWFrIiwgImNvZGUiLCAic3RyaWtldGhyb3VnaCIsICJlbXBoYXNpcyIsICJmb290bm90ZVJlZmVyZW5jZSIsICJoZWFkaW5nIiwgImh0bWwiLCAiaW1hZ2VSZWZlcmVuY2UiLCAiaW1hZ2UiLCAiaW5saW5lQ29kZSIsICJsaW5rUmVmZXJlbmNlIiwgImxpbmsiLCAibGlzdEl0ZW0iLCAibGlzdCIsICJwYXJhZ3JhcGgiLCAicm9vdCIsICJzdHJvbmciLCAidGFibGUiLCAidGFibGVDZWxsIiwgInRhYmxlUm93IiwgInRleHQiLCAidGhlbWF0aWNCcmVhayIsICJkZWZhdWx0Rm9vdG5vdGVCYWNrQ29udGVudCIsICJfIiwgInJlcmVmZXJlbmNlSW5kZXgiLCAicmVzdWx0IiwgImRlZmF1bHRGb290bm90ZUJhY2tMYWJlbCIsICJyZWZlcmVuY2VJbmRleCIsICJmb290ZXIiLCAic3RhdGUiLCAiY2xvYmJlclByZWZpeCIsICJmb290bm90ZUJhY2tDb250ZW50IiwgImZvb3Rub3RlQmFja0xhYmVsIiwgImZvb3Rub3RlTGFiZWwiLCAiZm9vdG5vdGVMYWJlbFRhZ05hbWUiLCAiZm9vdG5vdGVMYWJlbFByb3BlcnRpZXMiLCAibGlzdEl0ZW1zIiwgImRlZmluaXRpb24iLCAiY29udGVudCIsICJpZCIsICJzYWZlSWQiLCAibm9ybWFsaXplVXJpIiwgImJhY2tSZWZlcmVuY2VzIiwgImNvdW50cyIsICJjaGlsZHJlbiIsICJ0YWlsIiwgInRhaWxUYWlsIiwgImxpc3RJdGVtIiwgImVzbV9kZWZhdWx0IiwgImluaXRfZm9vdGVyIiwgIl9fZXNtTWluIiwgImluaXRfZXNtIiwgImluaXRfbWljcm9tYXJrX3V0aWxfc2FuaXRpemVfdXJpIiwgImNyZWF0ZVN0YXRlIiwgInRyZWUiLCAib3B0aW9ucyIsICJzZXR0aW5ncyIsICJlbXB0eU9wdGlvbnMiLCAiZGVmaW5pdGlvbkJ5SWQiLCAiZm9vdG5vdGVCeUlkIiwgImZvb3Rub3RlQ291bnRzIiwgImhhbmRsZXJzIiwgInN0YXRlIiwgImFsbCIsICJhcHBseURhdGEiLCAib25lIiwgInBhdGNoIiwgIndyYXAiLCAidmlzaXQiLCAibm9kZSIsICJtYXAiLCAiaWQiLCAicGFyZW50IiwgInR5cGUiLCAiaGFuZGxlIiwgIm93biIsICJjaGlsZHJlbiIsICJzaGFsbG93IiwgInJlc3VsdCIsICJlc21fZGVmYXVsdCIsICJkZWZhdWx0VW5rbm93bkhhbmRsZXIiLCAidmFsdWVzIiwgIm5vZGVzIiwgImluZGV4IiwgInRyaW1NYXJrZG93blNwYWNlU3RhcnQiLCAiaGVhZCIsICJmcm9tIiwgInRvIiwgInBvc2l0aW9uIiwgImhOYW1lIiwgImhDaGlsZHJlbiIsICJoUHJvcGVydGllcyIsICJkYXRhIiwgImxvb3NlIiwgInZhbHVlIiwgImNvZGUiLCAiaW5pdF9zdGF0ZSIsICJfX2VzbU1pbiIsICJpbml0X2VzbSIsICJpbml0X3VuaXN0X3V0aWxfdmlzaXQiLCAiaW5pdF91bmlzdF91dGlsX3Bvc2l0aW9uIiwgImluaXRfaGFuZGxlcnMiLCAidG9IYXN0IiwgInRyZWUiLCAib3B0aW9ucyIsICJzdGF0ZSIsICJjcmVhdGVTdGF0ZSIsICJub2RlIiwgImZvb3QiLCAiZm9vdGVyIiwgInJlc3VsdCIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X2RlZmF1bHQiLCAiaW5pdF9mb290ZXIiLCAiaW5pdF9zdGF0ZSIsICJpbml0X21kYXN0X3V0aWxfdG9faGFzdCIsICJfX2VzbU1pbiIsICJpbml0X2hhbmRsZXJzIiwgImluaXRfbGliIiwgImluaXRfZm9vdGVyIiwgImh0bWxWb2lkRWxlbWVudHMiLCAiaW5pdF9odG1sX3ZvaWRfZWxlbWVudHMiLCAiX19lc21NaW4iLCAiU2NoZW1hIiwgImluaXRfc2NoZW1hIiwgIl9fZXNtTWluIiwgInByb3BlcnR5IiwgIm5vcm1hbCIsICJzcGFjZSIsICJtZXJnZSIsICJkZWZpbml0aW9ucyIsICJzcGFjZSIsICJwcm9wZXJ0eSIsICJub3JtYWwiLCAiZGVmaW5pdGlvbiIsICJTY2hlbWEiLCAiaW5pdF9tZXJnZSIsICJfX2VzbU1pbiIsICJpbml0X3NjaGVtYSIsICJub3JtYWxpemUiLCAidmFsdWUiLCAiaW5pdF9ub3JtYWxpemUiLCAiX19lc21NaW4iLCAiSW5mbyIsICJpbml0X2luZm8iLCAiX19lc21NaW4iLCAicHJvcGVydHkiLCAiYXR0cmlidXRlIiwgInR5cGVzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiYm9vbGVhbiIsICJib29sZWFuaXNoIiwgImNvbW1hT3JTcGFjZVNlcGFyYXRlZCIsICJjb21tYVNlcGFyYXRlZCIsICJudW1iZXIiLCAib3ZlcmxvYWRlZEJvb2xlYW4iLCAic3BhY2VTZXBhcmF0ZWQiLCAiaW5jcmVtZW50IiwgInBvd2VycyIsICJpbml0X3R5cGVzIiwgIl9fZXNtTWluIiwgIm1hcmsiLCAidmFsdWVzIiwgImtleSIsICJ2YWx1ZSIsICJjaGVja3MiLCAiRGVmaW5lZEluZm8iLCAiaW5pdF9kZWZpbmVkX2luZm8iLCAiX19lc21NaW4iLCAiaW5pdF9pbmZvIiwgImluaXRfdHlwZXMiLCAidHlwZXNfZXhwb3J0cyIsICJJbmZvIiwgInByb3BlcnR5IiwgImF0dHJpYnV0ZSIsICJtYXNrIiwgInNwYWNlIiwgImluZGV4IiwgImNoZWNrIiwgImNyZWF0ZSIsICJkZWZpbml0aW9uIiwgInByb3BlcnRpZXMiLCAibm9ybWFscyIsICJwcm9wZXJ0eSIsICJ2YWx1ZSIsICJpbmZvIiwgIkRlZmluZWRJbmZvIiwgIm5vcm1hbGl6ZSIsICJTY2hlbWEiLCAiaW5pdF9jcmVhdGUiLCAiX19lc21NaW4iLCAiaW5pdF9ub3JtYWxpemUiLCAiaW5pdF9kZWZpbmVkX2luZm8iLCAiaW5pdF9zY2hlbWEiLCAiYXJpYSIsICJpbml0X2FyaWEiLCAiX19lc21NaW4iLCAiaW5pdF9jcmVhdGUiLCAiaW5pdF90eXBlcyIsICJjcmVhdGUiLCAiYm9vbGVhbmlzaCIsICJudW1iZXIiLCAic3BhY2VTZXBhcmF0ZWQiLCAiXyIsICJwcm9wZXJ0eSIsICJjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtIiwgImF0dHJpYnV0ZXMiLCAiYXR0cmlidXRlIiwgImluaXRfY2FzZV9zZW5zaXRpdmVfdHJhbnNmb3JtIiwgIl9fZXNtTWluIiwgImNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybSIsICJhdHRyaWJ1dGVzIiwgInByb3BlcnR5IiwgImNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0iLCAiaW5pdF9jYXNlX2luc2Vuc2l0aXZlX3RyYW5zZm9ybSIsICJfX2VzbU1pbiIsICJpbml0X2Nhc2Vfc2Vuc2l0aXZlX3RyYW5zZm9ybSIsICJodG1sIiwgImluaXRfaHRtbCIsICJfX2VzbU1pbiIsICJpbml0X2Nhc2VfaW5zZW5zaXRpdmVfdHJhbnNmb3JtIiwgImluaXRfY3JlYXRlIiwgImluaXRfdHlwZXMiLCAiY3JlYXRlIiwgImNvbW1hU2VwYXJhdGVkIiwgInNwYWNlU2VwYXJhdGVkIiwgImJvb2xlYW4iLCAibnVtYmVyIiwgImJvb2xlYW5pc2giLCAib3ZlcmxvYWRlZEJvb2xlYW4iLCAiY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtIiwgInN2ZyIsICJpbml0X3N2ZyIsICJfX2VzbU1pbiIsICJpbml0X2Nhc2Vfc2Vuc2l0aXZlX3RyYW5zZm9ybSIsICJpbml0X2NyZWF0ZSIsICJpbml0X3R5cGVzIiwgImNyZWF0ZSIsICJjb21tYU9yU3BhY2VTZXBhcmF0ZWQiLCAibnVtYmVyIiwgInNwYWNlU2VwYXJhdGVkIiwgImJvb2xlYW4iLCAiY29tbWFTZXBhcmF0ZWQiLCAiY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybSIsICJ4bGluayIsICJpbml0X3hsaW5rIiwgIl9fZXNtTWluIiwgImluaXRfY3JlYXRlIiwgImNyZWF0ZSIsICJfIiwgInByb3BlcnR5IiwgInhtbG5zIiwgImluaXRfeG1sbnMiLCAiX19lc21NaW4iLCAiaW5pdF9jcmVhdGUiLCAiaW5pdF9jYXNlX2luc2Vuc2l0aXZlX3RyYW5zZm9ybSIsICJjcmVhdGUiLCAiY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtIiwgInhtbCIsICJpbml0X3htbCIsICJfX2VzbU1pbiIsICJpbml0X2NyZWF0ZSIsICJjcmVhdGUiLCAiXyIsICJwcm9wZXJ0eSIsICJpbml0X2hhc3RfdG9fcmVhY3QiLCAiX19lc21NaW4iLCAiZmluZCIsICJzY2hlbWEiLCAidmFsdWUiLCAibm9ybWFsIiwgIm5vcm1hbGl6ZSIsICJwcm9wZXJ0eSIsICJUeXBlIiwgIkluZm8iLCAidmFsaWQiLCAicmVzdCIsICJkYXNoIiwgImNhbWVsY2FzZSIsICJkYXNoZXMiLCAiY2FwIiwgImtlYmFiIiwgIkRlZmluZWRJbmZvIiwgIiQwIiwgImluaXRfZmluZCIsICJfX2VzbU1pbiIsICJpbml0X2RlZmluZWRfaW5mbyIsICJpbml0X2luZm8iLCAiaW5pdF9ub3JtYWxpemUiLCAiaHRtbCIsICJzdmciLCAiaW5pdF9wcm9wZXJ0eV9pbmZvcm1hdGlvbiIsICJfX2VzbU1pbiIsICJpbml0X21lcmdlIiwgImluaXRfYXJpYSIsICJpbml0X2h0bWwiLCAiaW5pdF9zdmciLCAiaW5pdF94bGluayIsICJpbml0X3htbG5zIiwgImluaXRfeG1sIiwgImluaXRfaGFzdF90b19yZWFjdCIsICJpbml0X2ZpbmQiLCAiaW5pdF9ub3JtYWxpemUiLCAibWVyZ2UiLCAiYXJpYSIsICJ4bGluayIsICJ4bWxucyIsICJ4bWwiLCAiY29yZSIsICJ2YWx1ZSIsICJvcHRpb25zIiwgImNoYXJhY3RlcnNUb0V4cHJlc3Npb25DYWNoZWQiLCAiZGVmYXVsdFN1YnNldFJlZ2V4IiwgImJhc2ljIiwgInN1cnJvZ2F0ZVBhaXJzUmVnZXgiLCAic3Vycm9nYXRlIiwgImNvbnRyb2xDaGFyYWN0ZXJzUmVnZXgiLCAicGFpciIsICJpbmRleCIsICJhbGwiLCAiY2hhcmFjdGVyIiwgInN1YnNldCIsICJjYWNoZWQiLCAic3Vic2V0VG9SZWdleENhY2hlIiwgImNoYXJhY3RlcnNUb0V4cHJlc3Npb24iLCAiZ3JvdXBzIiwgInJlZ2V4RXNjYXBlUmVnZXgiLCAiaW5pdF9jb3JlIiwgIl9fZXNtTWluIiwgInRvSGV4YWRlY2ltYWwiLCAiY29kZSIsICJuZXh0IiwgIm9taXQiLCAidmFsdWUiLCAiaGV4YWRlY2ltYWxSZWdleCIsICJpbml0X3RvX2hleGFkZWNpbWFsIiwgIl9fZXNtTWluIiwgInRvRGVjaW1hbCIsICJjb2RlIiwgIm5leHQiLCAib21pdCIsICJ2YWx1ZSIsICJkZWNpbWFsUmVnZXgiLCAiaW5pdF90b19kZWNpbWFsIiwgIl9fZXNtTWluIiwgImNoYXJhY3RlckVudGl0aWVzTGVnYWN5IiwgImluaXRfY2hhcmFjdGVyX2VudGl0aWVzX2xlZ2FjeSIsICJfX2VzbU1pbiIsICJjaGFyYWN0ZXJFbnRpdGllc0h0bWw0IiwgImluaXRfY2hhcmFjdGVyX2VudGl0aWVzX2h0bWw0IiwgIl9fZXNtTWluIiwgImRhbmdlcm91cyIsICJpbml0X2Rhbmdlcm91cyIsICJfX2VzbU1pbiIsICJ0b05hbWVkIiwgImNvZGUiLCAibmV4dCIsICJvbWl0IiwgImF0dHJpYnV0ZSIsICJjaGFyYWN0ZXIiLCAib3duIiwgImNoYXJhY3RlcnMiLCAibmFtZSIsICJ2YWx1ZSIsICJjaGFyYWN0ZXJFbnRpdGllc0xlZ2FjeSIsICJkYW5nZXJvdXMiLCAibm90QWxwaGFudW1lcmljUmVnZXgiLCAia2V5IiwgImluaXRfdG9fbmFtZWQiLCAiX19lc21NaW4iLCAiaW5pdF9jaGFyYWN0ZXJfZW50aXRpZXNfbGVnYWN5IiwgImluaXRfY2hhcmFjdGVyX2VudGl0aWVzX2h0bWw0IiwgImluaXRfZGFuZ2Vyb3VzIiwgImNoYXJhY3RlckVudGl0aWVzSHRtbDQiLCAiZm9ybWF0U21hcnQiLCAiY29kZSIsICJuZXh0IiwgIm9wdGlvbnMiLCAibnVtZXJpYyIsICJ0b0hleGFkZWNpbWFsIiwgIm5hbWVkIiwgInRvTmFtZWQiLCAiZGVjaW1hbCIsICJ0b0RlY2ltYWwiLCAiaW5pdF9mb3JtYXRfc21hcnQiLCAiX19lc21NaW4iLCAiaW5pdF90b19oZXhhZGVjaW1hbCIsICJpbml0X3RvX2RlY2ltYWwiLCAiaW5pdF90b19uYW1lZCIsICJmb3JtYXRCYXNpYyIsICJjb2RlIiwgImluaXRfZm9ybWF0X2Jhc2ljIiwgIl9fZXNtTWluIiwgInN0cmluZ2lmeUVudGl0aWVzIiwgInZhbHVlIiwgIm9wdGlvbnMiLCAiY29yZSIsICJmb3JtYXRTbWFydCIsICJzdHJpbmdpZnlFbnRpdGllc0xpZ2h0IiwgImZvcm1hdEJhc2ljIiwgImluaXRfbGliIiwgIl9fZXNtTWluIiwgImluaXRfY29yZSIsICJpbml0X2Zvcm1hdF9zbWFydCIsICJpbml0X2Zvcm1hdF9iYXNpYyIsICJpbml0X3N0cmluZ2lmeV9lbnRpdGllcyIsICJfX2VzbU1pbiIsICJpbml0X2xpYiIsICJjb21tZW50IiwgIm5vZGUiLCAiXzEiLCAiXzIiLCAic3RhdGUiLCAic3RyaW5naWZ5RW50aXRpZXMiLCAiYm9ndXNDb21tZW50RW50aXR5U3Vic2V0IiwgImh0bWxDb21tZW50UmVnZXgiLCAiZW5jb2RlIiwgIiQwIiwgImNvbW1lbnRFbnRpdHlTdWJzZXQiLCAiaW5pdF9jb21tZW50IiwgIl9fZXNtTWluIiwgImluaXRfc3RyaW5naWZ5X2VudGl0aWVzIiwgImRvY3R5cGUiLCAiXzEiLCAiXzIiLCAiXzMiLCAic3RhdGUiLCAiaW5pdF9kb2N0eXBlIiwgIl9fZXNtTWluIiwgInBhcnNlIiwgInZhbHVlIiwgInRva2VucyIsICJpbnB1dCIsICJpbmRleCIsICJzdGFydCIsICJlbmQiLCAidG9rZW4iLCAic3RyaW5naWZ5IiwgInZhbHVlcyIsICJvcHRpb25zIiwgInNldHRpbmdzIiwgImluaXRfY29tbWFfc2VwYXJhdGVkX3Rva2VucyIsICJfX2VzbU1pbiIsICJwYXJzZSIsICJ2YWx1ZSIsICJpbnB1dCIsICJzdHJpbmdpZnkiLCAidmFsdWVzIiwgImluaXRfc3BhY2Vfc2VwYXJhdGVkX3Rva2VucyIsICJfX2VzbU1pbiIsICJ3aGl0ZXNwYWNlIiwgInRoaW5nIiwgImVtcHR5IiwgInZhbHVlIiwgInJlIiwgImluaXRfbGliIiwgIl9fZXNtTWluIiwgImluaXRfaGFzdF91dGlsX3doaXRlc3BhY2UiLCAiX19lc21NaW4iLCAiaW5pdF9saWIiLCAic2libGluZ3MiLCAiaW5jcmVtZW50IiwgInNpYmxpbmciLCAicGFyZW50IiwgImluZGV4IiwgImluY2x1ZGVXaGl0ZXNwYWNlIiwgImVtcHR5Q2hpbGRyZW4iLCAib2Zmc2V0IiwgIm5leHQiLCAid2hpdGVzcGFjZSIsICJzaWJsaW5nQWZ0ZXIiLCAic2libGluZ0JlZm9yZSIsICJpbml0X3NpYmxpbmdzIiwgIl9fZXNtTWluIiwgImluaXRfaGFzdF91dGlsX3doaXRlc3BhY2UiLCAib21pc3Npb24iLCAiaGFuZGxlcnMiLCAib21pdCIsICJub2RlIiwgImluZGV4IiwgInBhcmVudCIsICJvd24iLCAiaW5pdF9vbWlzc2lvbiIsICJfX2VzbU1pbiIsICJoZWFkT3JDb2xncm91cE9yQ2FwdGlvbiIsICJfIiwgImluZGV4IiwgInBhcmVudCIsICJuZXh0IiwgInNpYmxpbmdBZnRlciIsICJ3aGl0ZXNwYWNlIiwgImh0bWwiLCAiYm9keSIsICJwIiwgImxpIiwgImR0IiwgImRkIiwgInJ1YnlFbGVtZW50IiwgIm9wdGdyb3VwIiwgIm9wdGlvbiIsICJ0aGVhZCIsICJ0Ym9keSIsICJ0Zm9vdCIsICJ0ciIsICJjZWxscyIsICJjbG9zaW5nIiwgImluaXRfY2xvc2luZyIsICJfX2VzbU1pbiIsICJpbml0X2hhc3RfdXRpbF93aGl0ZXNwYWNlIiwgImluaXRfc2libGluZ3MiLCAiaW5pdF9vbWlzc2lvbiIsICJvbWlzc2lvbiIsICJodG1sIiwgIm5vZGUiLCAiaGVhZCIsICJzaWJsaW5nQWZ0ZXIiLCAic2VlbiIsICJjaGlsZCIsICJib2R5IiwgIndoaXRlc3BhY2UiLCAiY29sZ3JvdXAiLCAiaW5kZXgiLCAicGFyZW50IiwgInByZXZpb3VzIiwgInNpYmxpbmdCZWZvcmUiLCAiY2xvc2luZyIsICJ0Ym9keSIsICJvcGVuaW5nIiwgImluaXRfb3BlbmluZyIsICJfX2VzbU1pbiIsICJpbml0X2hhc3RfdXRpbF93aGl0ZXNwYWNlIiwgImluaXRfc2libGluZ3MiLCAiaW5pdF9jbG9zaW5nIiwgImluaXRfb21pc3Npb24iLCAib21pc3Npb24iLCAiZWxlbWVudCIsICJub2RlIiwgImluZGV4IiwgInBhcmVudCIsICJzdGF0ZSIsICJzY2hlbWEiLCAib21pdCIsICJzZWxmQ2xvc2luZyIsICJwYXJ0cyIsICJsYXN0IiwgInN2ZyIsICJhdHRyaWJ1dGVzIiwgInNlcmlhbGl6ZUF0dHJpYnV0ZXMiLCAiY29udGVudCIsICJvcGVuaW5nIiwgImNsb3NpbmciLCAicHJvcGVydGllcyIsICJ2YWx1ZXMiLCAia2V5IiwgInZhbHVlIiwgInNlcmlhbGl6ZUF0dHJpYnV0ZSIsICJpbmZvIiwgImZpbmQiLCAieCIsICJ5IiwgInF1b3RlIiwgInJlc3VsdCIsICJuYW1lIiwgInN0cmluZ2lmeUVudGl0aWVzIiwgImNvbnN0YW50cyIsICJzdHJpbmdpZnkiLCAiY2NvdW50IiwgImluaXRfZWxlbWVudCIsICJfX2VzbU1pbiIsICJpbml0X2Njb3VudCIsICJpbml0X2NvbW1hX3NlcGFyYXRlZF90b2tlbnMiLCAiaW5pdF9wcm9wZXJ0eV9pbmZvcm1hdGlvbiIsICJpbml0X3NwYWNlX3NlcGFyYXRlZF90b2tlbnMiLCAiaW5pdF9zdHJpbmdpZnlfZW50aXRpZXMiLCAiaW5pdF9jbG9zaW5nIiwgImluaXRfb3BlbmluZyIsICJ0ZXh0IiwgIm5vZGUiLCAiXyIsICJwYXJlbnQiLCAic3RhdGUiLCAic3RyaW5naWZ5RW50aXRpZXMiLCAidGV4dEVudGl0eVN1YnNldCIsICJpbml0X3RleHQiLCAiX19lc21NaW4iLCAiaW5pdF9zdHJpbmdpZnlfZW50aXRpZXMiLCAicmF3IiwgIm5vZGUiLCAiaW5kZXgiLCAicGFyZW50IiwgInN0YXRlIiwgInRleHQiLCAiaW5pdF9yYXciLCAiX19lc21NaW4iLCAiaW5pdF90ZXh0IiwgInJvb3QiLCAibm9kZSIsICJfMSIsICJfMiIsICJzdGF0ZSIsICJpbml0X3Jvb3QiLCAiX19lc21NaW4iLCAiaW52YWxpZCIsICJub2RlIiwgInVua25vd24iLCAibm9kZV8iLCAiaGFuZGxlIiwgImluaXRfaGFuZGxlIiwgIl9fZXNtTWluIiwgImluaXRfendpdGNoIiwgImluaXRfY29tbWVudCIsICJpbml0X2RvY3R5cGUiLCAiaW5pdF9lbGVtZW50IiwgImluaXRfcmF3IiwgImluaXRfcm9vdCIsICJpbml0X3RleHQiLCAiendpdGNoIiwgImNvbW1lbnQiLCAiZG9jdHlwZSIsICJlbGVtZW50IiwgInJhdyIsICJyb290IiwgInRleHQiLCAidG9IdG1sIiwgInRyZWUiLCAib3B0aW9ucyIsICJvcHRpb25zXyIsICJlbXB0eU9wdGlvbnMiLCAicXVvdGUiLCAiYWx0ZXJuYXRpdmUiLCAib25lIiwgImFsbCIsICJodG1sVm9pZEVsZW1lbnRzIiwgImVtcHR5Q2hhcmFjdGVyUmVmZXJlbmNlcyIsICJzdmciLCAiaHRtbCIsICJub2RlIiwgImluZGV4IiwgInBhcmVudCIsICJoYW5kbGUiLCAicmVzdWx0cyIsICJjaGlsZHJlbiIsICJlbXB0eUNoaWxkcmVuIiwgImluaXRfbGliIiwgIl9fZXNtTWluIiwgImluaXRfaHRtbF92b2lkX2VsZW1lbnRzIiwgImluaXRfcHJvcGVydHlfaW5mb3JtYXRpb24iLCAiaW5pdF9oYW5kbGUiLCAiaW5pdF9oYXN0X3V0aWxfdG9faHRtbCIsICJfX2VzbU1pbiIsICJpbml0X2xpYiIsICJyZW1hcmtIdG1sIiwgIm9wdGlvbnMiLCAic2VsZiIsICJoYW5kbGVycyIsICJjbGVhbiIsICJ0b0h0bWxPcHRpb25zIiwgImVtcHR5T3B0aW9ucyIsICJhbGxvd0Rhbmdlcm91c0h0bWwiLCAic2NoZW1hIiwgImNvbXBpbGVyIiwgInRyZWUiLCAiZmlsZSIsICJoYXN0IiwgInRvSGFzdCIsICJzYWZlSGFzdCIsICJzYW5pdGl6ZSIsICJyZXN1bHQiLCAidG9IdG1sIiwgImluaXRfbGliIiwgIl9fZXNtTWluIiwgImluaXRfaGFzdF91dGlsX3Nhbml0aXplIiwgImluaXRfbWRhc3RfdXRpbF90b19oYXN0IiwgImluaXRfaGFzdF91dGlsX3RvX2h0bWwiLCAiaW5pdF9yZW1hcmtfaHRtbCIsICJfX2VzbU1pbiIsICJpbml0X2xpYiIsICJyZW1hcmtTdHJpbmdpZnkiLCAib3B0aW9ucyIsICJzZWxmIiwgImNvbXBpbGVyIiwgInRyZWUiLCAidG9NYXJrZG93biIsICJpbml0X2xpYiIsICJfX2VzbU1pbiIsICJpbml0X21kYXN0X3V0aWxfdG9fbWFya2Rvd24iLCAiaW5pdF9yZW1hcmtfc3RyaW5naWZ5IiwgIl9fZXNtTWluIiwgImluaXRfbGliIiwgImV4dGVuZCIsICJkZXN0aW5hdGlvbiIsICJpIiwgInNvdXJjZSIsICJrZXkiLCAicmVwZWF0IiwgImNoYXJhY3RlciIsICJjb3VudCIsICJ0cmltTGVhZGluZ05ld2xpbmVzIiwgInN0cmluZyIsICJ0cmltVHJhaWxpbmdOZXdsaW5lcyIsICJpbmRleEVuZCIsICJ0cmltTmV3bGluZXMiLCAiaXNCbG9jayIsICJub2RlIiwgImlzIiwgImJsb2NrRWxlbWVudHMiLCAiaXNWb2lkIiwgInZvaWRFbGVtZW50cyIsICJoYXNWb2lkIiwgImhhcyIsICJpc01lYW5pbmdmdWxXaGVuQmxhbmsiLCAibWVhbmluZ2Z1bFdoZW5CbGFua0VsZW1lbnRzIiwgImhhc01lYW5pbmdmdWxXaGVuQmxhbmsiLCAidGFnTmFtZXMiLCAidGFnTmFtZSIsICJjbGVhbkF0dHJpYnV0ZSIsICJhdHRyaWJ1dGUiLCAiUnVsZXMiLCAib3B0aW9ucyIsICJmaW5kUnVsZSIsICJydWxlcyIsICJydWxlIiwgImZpbHRlclZhbHVlIiwgImZpbHRlciIsICJjb2xsYXBzZVdoaXRlc3BhY2UiLCAiZWxlbWVudCIsICJpc1ByZSIsICJwcmV2VGV4dCIsICJrZWVwTGVhZGluZ1dzIiwgInByZXYiLCAibmV4dCIsICJ0ZXh0IiwgInJlbW92ZSIsICJuZXh0Tm9kZSIsICJjdXJyZW50IiwgImNhblBhcnNlSFRNTE5hdGl2ZWx5IiwgIlBhcnNlciIsICJyb290IiwgImNhblBhcnNlIiwgImNyZWF0ZUhUTUxQYXJzZXIiLCAic2hvdWxkVXNlQWN0aXZlWCIsICJkb2MiLCAidXNlQWN0aXZlWCIsICJSb290Tm9kZSIsICJpbnB1dCIsICJodG1sUGFyc2VyIiwgImlzUHJlT3JDb2RlIiwgIl9odG1sUGFyc2VyIiwgIkhUTUxQYXJzZXIiLCAiTm9kZSIsICJpc0JsYW5rIiwgImZsYW5raW5nV2hpdGVzcGFjZSIsICJlZGdlcyIsICJlZGdlV2hpdGVzcGFjZSIsICJpc0ZsYW5rZWRCeVdoaXRlc3BhY2UiLCAibSIsICJzaWRlIiwgInNpYmxpbmciLCAicmVnRXhwIiwgImlzRmxhbmtlZCIsICJUdXJuZG93blNlcnZpY2UiLCAiZGVmYXVsdHMiLCAiY29udGVudCIsICJwcm9jZXNzIiwgInBhcmVudE5vZGUiLCAic2VsZiIsICJyZWR1Y2UiLCAib3V0cHV0IiwgInJlcGxhY2VtZW50IiwgInJlcGxhY2VtZW50Rm9yTm9kZSIsICJqb2luIiwgInBvc3RQcm9jZXNzIiwgIndoaXRlc3BhY2UiLCAiczEiLCAiczIiLCAibmxzIiwgInNlcGFyYXRvciIsICJjYW5Db252ZXJ0IiwgImVzY2FwZXMiLCAidHVybmRvd25fYnJvd3Nlcl9lc19kZWZhdWx0IiwgImluaXRfdHVybmRvd25fYnJvd3Nlcl9lcyIsICJfX2VzbU1pbiIsICJoTGV2ZWwiLCAidW5kZXJsaW5lIiwgInBhcmVudCIsICJwcmVmaXgiLCAic3RhcnQiLCAiaW5kZXgiLCAiaXNQYXJhZ3JhcGgiLCAiY2xhc3NOYW1lIiwgImxhbmd1YWdlIiwgImNvZGUiLCAiZmVuY2VDaGFyIiwgImZlbmNlU2l6ZSIsICJmZW5jZUluQ29kZVJlZ2V4IiwgIm1hdGNoIiwgImZlbmNlIiwgImhyZWYiLCAidGl0bGUiLCAicmVmZXJlbmNlIiwgImlkIiwgInJlZmVyZW5jZXMiLCAiaGFzU2libGluZ3MiLCAiaXNDb2RlQmxvY2siLCAiZXh0cmFTcGFjZSIsICJkZWxpbWl0ZXIiLCAibWF0Y2hlcyIsICJhbHQiLCAic3JjIiwgInRpdGxlUGFydCIsICJmbiIsICJwbHVnaW4iLCAiYWNjdW11bGF0b3IiLCAiZXNjYXBlIiwgInR1cm5kb3duX3BsdWdpbl9nZm1fZXNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJnZm0iLCAiaGlnaGxpZ2h0ZWRDb2RlQmxvY2siLCAic3RyaWtldGhyb3VnaCIsICJ0YWJsZXMiLCAidGFza0xpc3RJdGVtcyIsICJ0dXJuZG93blNlcnZpY2UiLCAibm9kZSIsICJmaXJzdENoaWxkIiwgImhpZ2hsaWdodFJlZ0V4cCIsICJjb250ZW50IiwgIm9wdGlvbnMiLCAiY2xhc3NOYW1lIiwgImxhbmd1YWdlIiwgImlzSGVhZGluZ1JvdyIsICJ0ciIsICJwYXJlbnROb2RlIiwgImlzRmlyc3RUYm9keSIsICJldmVyeSIsICJuIiwgImVsZW1lbnQiLCAicHJldmlvdXNTaWJsaW5nIiwgImNlbGwiLCAiaW5kZXgiLCAiaW5kZXhPZiIsICJwcmVmaXgiLCAia2V5IiwgInJ1bGVzIiwgImluaXRfdHVybmRvd25fcGx1Z2luX2dmbV9lcyIsICJfX2VzbU1pbiIsICJib3JkZXJDZWxscyIsICJhbGlnbk1hcCIsICJib3JkZXIiLCAiYWxpZ24iLCAic21hcnR5YW1sIiwgImluaXRfc21hcnRtYXJrZG93bl9wbHVnaW5zIiwgIl9fZXNtTWluIiwgImluaXRfdW5pZmllZCIsICJpbml0X3JlbWFya19nZm0iLCAiaW5pdF9yZW1hcmtfcGFyc2UiLCAiaW5pdF9yZW1hcmtfZnJvbnRtYXR0ZXIiLCAiaW5pdF9yZW1hcmtfaHRtbCIsICJpbml0X3JlbWFya19zdHJpbmdpZnkiLCAiaW5pdF90dXJuZG93bl9icm93c2VyX2VzIiwgImluaXRfdHVybmRvd25fcGx1Z2luX2dmbV9lcyIsICJNZFBhcnNlZFJlc3VsdCIsICJpbml0X3NtYXJ0bWFya2Rvd25fY2xhc3Nlc19tZHBhcnNlZHJlc3VsdCIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0bWFya2Rvd25fcGx1Z2lucyIsICJfTWRQYXJzZWRSZXN1bHQiLCAibWRTdHJpbmdBcmciLCAibWRQYXJzZWRSZXN1bHQiLCAieWFtbFN0cmluZyIsICJyZXN1bHQiLCAidW5pZmllZCIsICJyZW1hcmtQYXJzZSIsICJyZW1hcmtHZm0iLCAicmVtYXJrRnJvbnRtYXR0ZXIiLCAicmVtYXJrU3RyaW5naWZ5IiwgInJlbWFya0h0bWwiLCAidHJlZSIsICJ5YW1sQ2hpbGQiLCAib2JqZWN0QXJnIiwgInNtYXJ0eWFtbCIsICJkaXN0X3RzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiU21hcnRNYXJrZG93biIsICJpbml0X2Rpc3RfdHMiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydG1hcmtkb3duX3BsdWdpbnMiLCAiaW5pdF9zbWFydG1hcmtkb3duX2NsYXNzZXNfbWRwYXJzZWRyZXN1bHQiLCAiX1NtYXJ0TWFya2Rvd24iLCAibWRTdHJpbmdBcmciLCAiTWRQYXJzZWRSZXN1bHQiLCAiaHRtbFN0cmluZyIsICJ0dXJuZG93bkluc3RhbmNlIiwgInR1cm5kb3duX2Jyb3dzZXJfZXNfZGVmYXVsdCIsICJ0dXJuZG93bl9wbHVnaW5fZ2ZtX2VzX2V4cG9ydHMiLCAiZXhwb3J0cyIsICJwYXJzZSIsICJjb21waWxlIiwgIm1hdGNoIiwgInBhdGhUb1JlZ2V4cCIsICJzdHJpbmdpZnkiLCAiREVGQVVMVF9ERUxJTUlURVIiLCAiTk9PUF9WQUxVRSIsICJ2YWx1ZSIsICJJRF9TVEFSVCIsICJJRF9DT05USU5VRSIsICJTSU1QTEVfVE9LRU5TIiwgImVzY2FwZVRleHQiLCAic3RyIiwgImVzY2FwZSIsICJUb2tlbkRhdGEiLCAidG9rZW5zIiwgIm9yaWdpbmFsUGF0aCIsICJQYXRoRXJyb3IiLCAibWVzc2FnZSIsICJ0ZXh0IiwgIm9wdGlvbnMiLCAiZW5jb2RlUGF0aCIsICJjaGFycyIsICJpbmRleCIsICJwb3MiLCAibmFtZSIsICJxdW90ZVN0YXJ0IiwgInR5cGUiLCAiY29uc3VtZVVudGlsIiwgImVuZFR5cGUiLCAib3V0cHV0IiwgInRva2VuIiwgInBhdGgiLCAiY3VyIiwgImVuY29kZSIsICJkZWxpbWl0ZXIiLCAiZGF0YSIsICJmbiIsICJ0b2tlbnNUb0Z1bmN0aW9uIiwgInBhcmFtcyIsICJtaXNzaW5nIiwgImVuY29kZXJzIiwgInRva2VuVG9GdW5jdGlvbiIsICJyZXN1bHQiLCAiZW5jb2RlciIsICJleHRyYXMiLCAiZW5jb2RlVmFsdWUiLCAiZGVjb2RlIiwgInJlZ2V4cCIsICJrZXlzIiwgImRlY29kZXJzIiwgImtleSIsICJpbnB1dCIsICJtIiwgImkiLCAiZGVjb2RlciIsICJlbmQiLCAic2Vuc2l0aXZlIiwgInRyYWlsaW5nIiwgImZsYWdzIiwgInNvdXJjZXMiLCAicGF0aHNUb0FycmF5IiwgImZsYXR0ZW4iLCAidG9SZWdFeHBTb3VyY2UiLCAicGF0dGVybiIsICJwYXRocyIsICJpbml0IiwgInAiLCAic2VxIiwgImJhY2t0cmFjayIsICJpc1NhZmVTZWdtZW50UGFyYW0iLCAibmVnYXRlIiwgInN0cmluZ2lmeVRva2VucyIsICJpc05hbWVTYWZlIiwgImlzTmV4dE5hbWVTYWZlIiwgImZpcnN0IiwgInJlc3QiLCAiY2hhciIsICJwYXRoVG9SZWdFeHAiLCAiaW5pdF9zbWFydHJvdXRlcl9wbHVnaW5zIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF90cyIsICJRdWVyeVBhcmFtcyIsICJpbml0X3NtYXJ0cm91dGVyX2NsYXNzZXNfcXVlcnlwYXJhbXMiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHJvdXRlcl9wbHVnaW5zIiwgInVybFNlYXJjaFBhcmFtcyIsICJxdWVyeUtleUFyZyIsICJxdWVyeUNvbnRlbnRBcmciLCAicHVzaE9yUmVwbGFjZUFyZyIsICJxdWVyeVBhcmFtcyIsICJxdWVyeVBhcmFtTmFtZSIsICJyb3V0ZUxvZyIsICJTbWFydFJvdXRlciIsICJpbml0X3NtYXJ0cm91dGVyX2NsYXNzZXNfc21hcnRyb3V0ZXIiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHJvdXRlcl9wbHVnaW5zIiwgImluaXRfc21hcnRyb3V0ZXJfY2xhc3Nlc19xdWVyeXBhcmFtcyIsICJtZXNzYWdlIiwgIl9TbWFydFJvdXRlciIsICJvcHRpb25zQXJnIiwgImJhc2VQYXRoIiwgIlF1ZXJ5UGFyYW1zIiwgInBvcFN0YXRlRXZlbnRBcmciLCAic3ViUGF0aCIsICJvcHRpb25zIiwgIm5ld0Jhc2VQYXRoIiwgInVybCIsICJzdGF0ZSIsICJmdWxsVXJsIiwgInJvdXRlQXJnIiwgImhhbmRsZXJBcmciLCAiZnVsbFJvdXRlIiwgInJvdXRlT2JqZWN0IiwgInBhdGhUb1JlZ0V4cCIsICJjdXJyZW50TG9jYXRpb24iLCAid2FudGVkUm91dGVzIiwgIndhbnRlZFJvdXRlIiwgInJvdXRlUmVzdWx0IiwgImRpc3RfdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJTbWFydFJvdXRlciIsICJpbml0X2Rpc3RfdHMiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHJvdXRlcl9jbGFzc2VzX3NtYXJ0cm91dGVyIiwgImluaXRfcGx1Z2lucyIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfdHMiLCAicm90ciIsICJuIiwgImIiLCAic2hhMjU2VHJhbnNmb3JtIiwgIlciLCAiSCIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJqIiwgInMwIiwgInMxIiwgIlMxIiwgImNoIiwgInRlbXAxIiwgIksiLCAiUzAiLCAibWFqIiwgInRlbXAyIiwgInNoYTI1NkZhbGxiYWNrIiwgImJ5dGVzIiwgIkhfY29weSIsICJtc2dMZW4iLCAibXNnQml0TGVuIiwgInBhZExlbiIsICJwYWRkZWQiLCAiZGF0YVZpZXciLCAib2Zmc2V0IiwgImkiLCAiaGV4IiwgImluaXRfc2hhMjU2X2ZhbGxiYWNrIiwgIl9fZXNtTWluIiwgImRpc3RfdHNfd2ViX2V4cG9ydHMiLCAiX19leHBvcnQiLCAibWQ1RnJvbVN0cmluZyIsICJzaGEyNTZGcm9tQnVmZmVyIiwgInNoYTI1NkZyb21GaWxlIiwgInNoYTI1NkZyb21TdHJlYW0iLCAic2hhMjU2RnJvbVN0cmluZyIsICJzaGEyNTZGcm9tU3RyaW5nU3luYyIsICJzaGEyNjVGcm9tT2JqZWN0IiwgImhleCIsICJpc0NyeXB0b1N1YnRsZUF2YWlsYWJsZSIsICJpbml0X2Rpc3RfdHNfd2ViIiwgIl9fZXNtTWluIiwgImluaXRfcGx1Z2lucyIsICJpbml0X3NoYTI1Nl9mYWxsYmFjayIsICJidWZmZXIiLCAiaGV4Q29kZXMiLCAidmlldyIsICJpIiwgInN0cmluZ1ZhbHVlIiwgInBhZGRpbmciLCAicGFkZGVkVmFsdWUiLCAic3RyaW5nQXJnIiwgImhhc2giLCAic2hhMjU2RmFsbGJhY2siLCAiYnVmZmVyQXJnIiwgImlucHV0QnVmZmVyIiwgInVpbnQ4QXJyYXkiLCAib2JqZWN0QXJnIiwgInN0cmluZ2lmaWVkT2JqZWN0IiwgImRpc3RfdHNfZXhwb3J0cyIsICJpbnB1dCIsICJmaWxlUGF0aCIsICJzdHJpbmdUb0hhc2giLCAiaW5pdF9zbWFydHN0YXRlX3BsdWdpbnMiLCAiX19lc21NaW4iLCAiaW5pdF9kaXN0X3RzX3dlYiIsICJpbml0X2Rpc3RfdHMiLCAiU3RhdGVBY3Rpb24iLCAiaW5pdF9zbWFydHN0YXRlX2NsYXNzZXNfc3RhdGVhY3Rpb24iLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHN0YXRlX3BsdWdpbnMiLCAiaW5pdF9zbWFydHN0YXRlX2NsYXNzZXNfc3RhdGVwYXJ0IiwgInN0YXRlUGFydFJlZiIsICJhY3Rpb25EZWYiLCAicGF5bG9hZCIsICJTdGF0ZVBhcnQiLCAiaW5pdF9zbWFydHN0YXRlX2NsYXNzZXNfc3RhdGVwYXJ0IiwgIl9fZXNtTWluIiwgImluaXRfc21hcnRzdGF0ZV9wbHVnaW5zIiwgImluaXRfc21hcnRzdGF0ZV9jbGFzc2VzX3N0YXRlYWN0aW9uIiwgIm5hbWVBcmciLCAid2ViU3RvcmVPcHRpb25zQXJnIiwgImRpc3RfdHNfZXhwb3J0cyIsICJzdG9yZWRTdGF0ZSIsICJuZXdTdGF0ZUFyZyIsICJzdGF0ZUFyZyIsICJjdXJyZW50SGFzaCIsICJkaXN0X3RzX3dlYl9leHBvcnRzIiwgInNlbGVjdG9yRm4iLCAic3RhdGUiLCAiYWN0aW9uRGVmIiwgIlN0YXRlQWN0aW9uIiwgInN0YXRlQWN0aW9uIiwgImFjdGlvblBheWxvYWQiLCAibmV3U3RhdGUiLCAiZG9uZSIsICJzdWJzY3JpcHRpb24iLCAidmFsdWUiLCAicmVzdWx0IiwgImZ1bmNBcmciLCAicmVzdWx0UHJvbWlzZSIsICJTbWFydHN0YXRlIiwgImluaXRfc21hcnRzdGF0ZV9jbGFzc2VzX3NtYXJ0c3RhdGUiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHN0YXRlX3BsdWdpbnMiLCAiaW5pdF9zbWFydHN0YXRlX2NsYXNzZXNfc3RhdGVwYXJ0IiwgInN0YXRlUGFydE5hbWVBcmciLCAiaW5pdGlhbEFyZyIsICJpbml0TW9kZSIsICJleGlzdGluZ1N0YXRlUGFydCIsICJzdGF0ZVBhcnROYW1lIiwgImluaXRpYWxQYXlsb2FkQXJnIiwgIm5ld1N0YXRlIiwgIlN0YXRlUGFydCIsICJjdXJyZW50U3RhdGUiLCAiZGlzdF90c19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIlNtYXJ0c3RhdGUiLCAiU3RhdGVBY3Rpb24iLCAiU3RhdGVQYXJ0IiwgImluaXRfZGlzdF90cyIsICJfX2VzbU1pbiIsICJpbml0X3NtYXJ0c3RhdGVfY2xhc3Nlc19zbWFydHN0YXRlIiwgImluaXRfc21hcnRzdGF0ZV9jbGFzc2VzX3N0YXRlcGFydCIsICJpbml0X3NtYXJ0c3RhdGVfY2xhc3Nlc19zdGF0ZWFjdGlvbiIsICJpbml0X3NtYXJ0dXJsX3BsdWdpbnMiLCAiX19lc21NaW4iLCAiU21hcnR1cmwiLCAiaW5pdF9zbWFydHVybF9jbGFzc2VzX3NtYXJ0dXJsIiwgIl9fZXNtTWluIiwgImluaXRfc21hcnR1cmxfcGx1Z2lucyIsICJfU21hcnR1cmwiLCAidXJsQXJnIiwgIm9wdGlvbnNBcmciLCAicGFyc2VkVXJsSW5zdGFuY2UiLCAic2VhcmNoUGFyYW1zIiwgInNlYXJjaFBhcmFtUGFpcnMiLCAic2VhcmNoUGFyYW1QYWlyIiwgImtleSIsICJwYXRoIiwgImZpcnN0IiwgInBhcnNlZFVybCIsICJyZXR1cm5TbWFydHVybCIsICJwYXJzZWRVcmxBcmciLCAiY2xvbmVkSW5zdGFuY2UiLCAicHJvcCIsICJ2YWx1ZSIsICJ1c2VycGFydCIsICJkaXN0X3RzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiU21hcnR1cmwiLCAiaW5pdF9kaXN0X3RzIiwgIl9fZXNtTWluIiwgImluaXRfc21hcnR1cmxfY2xhc3Nlc19zbWFydHVybCIsICJEZWZlcnJlZCIsICJkZWZlciIsICJpbml0X3NtYXJ0cHJvbWlzZV9jbGFzc2VzX2RlZmVycmVkIiwgIl9fZXNtTWluIiwgInJlc29sdmUiLCAicmVqZWN0IiwgInZhbHVlQXJnIiwgInJlYXNvbiIsICJDdW11bGF0aXZlRGVmZXJyZWQiLCAiY3VtdWxhdGl2ZURlZmVyIiwgImluaXRfc21hcnRwcm9taXNlX2NsYXNzZXNfY3VtdWxhdGl2ZWRlZmVycmVkIiwgIl9fZXNtTWluIiwgImluaXRfc21hcnRwcm9taXNlX2NsYXNzZXNfZGVmZXJyZWQiLCAiZGVmZXIiLCAicHJvbWlzZUFyZyIsICJkaXN0X3RzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiQ3VtdWxhdGl2ZURlZmVycmVkIiwgIkRlZmVycmVkIiwgImN1bXVsYXRpdmVEZWZlciIsICJkZWZlciIsICJnZXRGaXJzdFRydWVPckZhbHNlIiwgIm1hcCIsICJyZWplY3RlZFByb21pc2UiLCAicmVzb2x2ZWRQcm9taXNlIiwgInRpbWVvdXRBbmRDb250aW51ZSIsICJ0aW1lb3V0V3JhcCIsICJpbml0X2Rpc3RfdHMiLCAiX19lc21NaW4iLCAiaW5pdF9zbWFydHByb21pc2VfY2xhc3Nlc19kZWZlcnJlZCIsICJpbml0X3NtYXJ0cHJvbWlzZV9jbGFzc2VzX2N1bXVsYXRpdmVkZWZlcnJlZCIsICJ2YWx1ZSIsICJlcnIiLCAiaW5wdXRBcmciLCAiZnVuY3Rpb25BcmciLCAicHJvbWlzZUFycmF5IiwgInJlc3VsdEFycmF5IiwgIml0ZW0iLCAicHJvbWlzZSIsICJ4IiwgInByb21pc2VBcmciLCAidGltZW91dEluTXNBcmciLCAicmVqZWN0QXJnIiwgInJlc29sdmUiLCAicmVqZWN0IiwgInByb21pc2VzQXJnIiwgImRvbmUiLCAicmVzdWx0QXJnIiwgImRpc3RfdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJUaW1lb3V0IiwgImRlbGF5Rm9yIiwgImRlbGF5Rm9yUmFuZG9tIiwgImluaXRfZGlzdF90cyIsICJfX2VzbU1pbiIsICJ0aW1lSW5NaWxsaXNlY29uZEFyZyIsICJwYXNzT25BcmciLCAidW5yZWZlZEFyZyIsICJ0aW1lTWluSW5NaWxsaXNlY29uZEFyZyIsICJ0aW1lTWF4SW5NaWxsaXNlY29uZEFyZyIsICJwYXNzT24iLCAiZGVmZXIiLCAicmVzdWx0IiwgImluaXRfYWRkcmVzcyIsICJfX2VzbU1pbiIsICJpbml0X2NvbXBhbnkiLCAiX19lc21NaW4iLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfY29udGFjdCIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9jaGVja2luZ2FjY291bnQiLCAiX19lc21NaW4iLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfY3VycmVuY3kiLCAiX19lc21NaW4iLCAiaW5pdF9leHBlbnNlIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF90cyIsICJpbml0X2ludm9pY2UiLCAiX19lc21NaW4iLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfcGF5bWVudCIsICJfX2VzbU1pbiIsICJpbml0X3RyYW5zYWN0aW9uIiwgIl9fZXNtTWluIiwgImZpbmFuY2VfZXhwb3J0cyIsICJpbml0X2ZpbmFuY2UiLCAiX19lc21NaW4iLCAiaW5pdF9jaGVja2luZ2FjY291bnQiLCAiaW5pdF9jdXJyZW5jeSIsICJpbml0X2V4cGVuc2UiLCAiaW5pdF9pbnZvaWNlIiwgImluaXRfcGF5bWVudCIsICJpbml0X3RyYW5zYWN0aW9uIiwgIklKb2IiLCAiaW5pdF9qb2IiLCAiX19lc21NaW4iLCAiaW5pdF9maW5hbmNlIiwgImluaXRfY29tcGFueSIsICJpbml0X2NvbnRhY3QiLCAiaW5pdF9tb25nb2Rlc2NyaXB0b3IiLCAiX19lc21NaW4iLCAiaW5pdF9vYmplY3RhY3Rpb24iLCAiX19lc21NaW4iLCAiaW5pdF9vYmplY3RzdGF0dXMiLCAiX19lc21NaW4iLCAiaW5pdF93cmFwcGVkZGF0YSIsICJfX2VzbU1pbiIsICJkYXRhYmFzZV9leHBvcnRzIiwgImluaXRfZGF0YWJhc2UiLCAiX19lc21NaW4iLCAiaW5pdF9tb25nb2Rlc2NyaXB0b3IiLCAiaW5pdF9vYmplY3RhY3Rpb24iLCAiaW5pdF9vYmplY3RzdGF0dXMiLCAiaW5pdF93cmFwcGVkZGF0YSIsICJpbml0X2xldHRlciIsICJfX2VzbU1pbiIsICJpbml0X2J1c2luZXNzIiwgImluaXRfZmluYW5jZSIsICJpbml0X2RhdGFiYXNlIiwgImluaXRfcGRmIiwgIl9fZXNtTWluIiwgImluaXRfcGVyc29uIiwgIl9fZXNtTWluIiwgImluaXRfY29udGFjdCIsICJpbml0X3Byb2plY3QiLCAiX19lc21NaW4iLCAiYnVzaW5lc3NfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJJSm9iIiwgImluaXRfYnVzaW5lc3MiLCAiX19lc21NaW4iLCAiaW5pdF9hZGRyZXNzIiwgImluaXRfY29tcGFueSIsICJpbml0X2NvbnRhY3QiLCAiaW5pdF9qb2IiLCAiaW5pdF9sZXR0ZXIiLCAiaW5pdF9wZGYiLCAiaW5pdF9wZXJzb24iLCAiaW5pdF9wcm9qZWN0IiwgImluaXRfY29tbWl0aW5mbyIsICJfX2VzbU1pbiIsICJpbml0X3N0YXR1c29iamVjdCIsICJfX2VzbU1pbiIsICJjb2RlX2V4cG9ydHMiLCAiaW5pdF9jb2RlIiwgIl9fZXNtTWluIiwgImluaXRfY29tbWl0aW5mbyIsICJpbml0X3N0YXR1c29iamVjdCIsICJpbml0X2NvbnRhaW5lciIsICJfX2VzbU1pbiIsICJpbml0X3ZvbHVtZW1vdW50IiwgIl9fZXNtTWluIiwgImNvbnRhaW5lcl9leHBvcnRzIiwgImluaXRfY29udGFpbmVyIiwgIl9fZXNtTWluIiwgImluaXRfdm9sdW1lbW91bnQiLCAiaW5pdF9hcnRpY2xlIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF90cyIsICJpbml0X2F1dGhvciIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9kb2N1bWVudGF0aW9uc2V0IiwgIl9fZXNtTWluIiwgImluaXRfYXJ0aWNsZSIsICJjb250ZW50X2V4cG9ydHMiLCAiaW5pdF9jb250ZW50IiwgIl9fZXNtTWluIiwgImluaXRfYXJ0aWNsZSIsICJpbml0X2F1dGhvciIsICJpbml0X2RvY3VtZW50YXRpb25zZXQiLCAiaW5pdF9kYXRlIiwgIl9fZXNtTWluIiwgImluaXRfdGltZSIsICJfX2VzbU1pbiIsICJnZW5lcmFsX2V4cG9ydHMiLCAiaW5pdF9nZW5lcmFsIiwgIl9fZXNtTWluIiwgImluaXRfZGF0ZSIsICJpbml0X3RpbWUiLCAiaW5pdF9jZXJ0IiwgIl9fZXNtTWluIiwgIklDbmFtZURlc2NyaXB0b3IiLCAiaW5pdF9jbmFtZSIsICJfX2VzbU1pbiIsICJpbml0X2NlcnQiLCAiaW5pdF9kZXZpY2UiLCAiX19lc21NaW4iLCAiaW5pdF9kbnMiLCAiX19lc21NaW4iLCAiaW5pdF9kbnNjaGFsbGVuZ2UiLCAiX19lc21NaW4iLCAiaW5pdF9kb21haW5kZWxlZ2F0aW9uIiwgIl9fZXNtTWluIiwgImluaXRfand0IiwgIl9fZXNtTWluIiwgImluaXRfbmV0d29ya25vZGUiLCAiX19lc21NaW4iLCAiaW5pdF9yZXF1ZXN0IiwgIl9fZXNtTWluIiwgImluaXRfcmV2ZXJzZXByb3h5IiwgIl9fZXNtTWluIiwgImluaXRfc3NoIiwgIl9fZXNtTWluIiwgIm5ldHdvcmtfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJJQ25hbWVEZXNjcmlwdG9yIiwgImluaXRfbmV0d29yayIsICJfX2VzbU1pbiIsICJpbml0X2NlcnQiLCAiaW5pdF9jbmFtZSIsICJpbml0X2RldmljZSIsICJpbml0X2RucyIsICJpbml0X2Ruc2NoYWxsZW5nZSIsICJpbml0X2RvbWFpbmRlbGVnYXRpb24iLCAiaW5pdF9qd3QiLCAiaW5pdF9uZXR3b3Jrbm9kZSIsICJpbml0X3JlcXVlc3QiLCAiaW5pdF9yZXZlcnNlcHJveHkiLCAiaW5pdF9zc2giLCAiaW5pdF9wcm9kdWN0IiwgIl9fZXNtTWluIiwgImluaXRfY29tcGFueSIsICJpbml0X3N1YnNjcmlwdGlvbnBsYW4iLCAiX19lc21NaW4iLCAiaW5pdF9wcm9kdWN0IiwgInNhYXNfZXhwb3J0cyIsICJpbml0X3NhYXMiLCAiX19lc21NaW4iLCAiaW5pdF9zdWJzY3JpcHRpb25wbGFuIiwgImluaXRfcHJvZHVjdCIsICJzdG9yYWdlX2V4cG9ydHMiLCAiaW5pdF9zdG9yYWdlIiwgIl9fZXNtTWluIiwgImluaXRfbGluayIsICJfX2VzbU1pbiIsICJpbml0X21lbnVpdGVtIiwgIl9fZXNtTWluIiwgImluaXRfbGlua2Jsb2NrIiwgIl9fZXNtTWluIiwgIndlYnNpdGVfZXhwb3J0cyIsICJpbml0X3dlYnNpdGUiLCAiX19lc21NaW4iLCAiaW5pdF9saW5rIiwgImluaXRfbWVudWl0ZW0iLCAiaW5pdF9saW5rYmxvY2siLCAiaW5pdF90eXBlZmVzdF9vd24iLCAiX19lc21NaW4iLCAiZGlzdF90c19leHBvcnRzIiwgIl9fZXhwb3J0IiwgImJ1c2luZXNzX2V4cG9ydHMiLCAiY29kZV9leHBvcnRzIiwgImNvbnRhaW5lcl9leHBvcnRzIiwgImNvbnRlbnRfZXhwb3J0cyIsICJkYXRhYmFzZV9leHBvcnRzIiwgImZpbmFuY2VfZXhwb3J0cyIsICJnZW5lcmFsX2V4cG9ydHMiLCAibmV0d29ya19leHBvcnRzIiwgInNhYXNfZXhwb3J0cyIsICJzdG9yYWdlX2V4cG9ydHMiLCAid2Vic2l0ZV9leHBvcnRzIiwgImluaXRfZGlzdF90cyIsICJfX2VzbU1pbiIsICJpbml0X2J1c2luZXNzIiwgImluaXRfY29kZSIsICJpbml0X2NvbnRhaW5lciIsICJpbml0X2RhdGFiYXNlIiwgImluaXRfZmluYW5jZSIsICJpbml0X2NvbnRlbnQiLCAiaW5pdF9nZW5lcmFsIiwgImluaXRfbmV0d29yayIsICJpbml0X3NhYXMiLCAiaW5pdF9zdG9yYWdlIiwgImluaXRfd2Vic2l0ZSIsICJpbml0X3R5cGVmZXN0X293biIsICJpbml0X3dlYnNldHVwX3BsdWdpbnMiLCAiX19lc21NaW4iLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfaW50ZXJmYWNlcyIsICJfX2VzbU1pbiIsICJpbml0X3dlYnNldHVwX3BsdWdpbnMiLCAiVGFnIiwgImluaXRfd2Vic2V0dXBfY2xhc3Nlc190YWciLCAiX19lc21NaW4iLCAiaW5pdF93ZWJzZXR1cF9wbHVnaW5zIiwgIkpzb25MZFRhZyIsICJpbml0X3dlYnNldHVwX2NsYXNzZXNfdGFnX2pzb25sZHRhZyIsICJfX2VzbU1pbiIsICJpbml0X3dlYnNldHVwX3BsdWdpbnMiLCAiaW5pdF9pbnRlcmZhY2VzIiwgImluaXRfd2Vic2V0dXBfY2xhc3Nlc190YWciLCAiX0pzb25MZFRhZyIsICJUYWciLCAiY29tcGFueURhdGFBcmciLCAiY29tcGFueUxkIiwgIm5ld3NBcnRpY2xlQXJnIiwgIm5ld3NBcnRpY2xlTGQiLCAicHJvZHVjdEFyZyIsICJwdWJsaXNoZXJBcmciLCAicHJvZHVjdExkIiwgImxkT2JqZWN0QXJnIiwgImpzb25MZEVsZW1lbnQiLCAiT3BlbmdyYXBoVGFnIiwgImluaXRfd2Vic2V0dXBfY2xhc3Nlc190YWdfb3BlbmdyYXBodGFnIiwgIl9fZXNtTWluIiwgImluaXRfd2Vic2V0dXBfcGx1Z2lucyIsICJpbml0X3dlYnNldHVwX2NsYXNzZXNfdGFnIiwgIl9PcGVuZ3JhcGhUYWciLCAiVGFnIiwgIm5ld3NBcnRpY2xlQXJnIiwgInRhZ0FycmF5IiwgInByb2R1Y3RBcmciLCAicHJvcGVydHlOYW1lQXJnIiwgImNvbnRlbnRBcmciLCAib3BlbkdyYXBoRWxlbWVudCIsICJUYWdMZXZlbCIsICJpbml0X3dlYnNldHVwX2NsYXNzZXNfdGFnbGV2ZWwiLCAiX19lc21NaW4iLCAiaW5pdF93ZWJzZXR1cF9jbGFzc2VzX3RhZyIsICJpbml0X3dlYnNldHVwX2NsYXNzZXNfdGFnX2pzb25sZHRhZyIsICJpbml0X3dlYnNldHVwX2NsYXNzZXNfdGFnX29wZW5ncmFwaHRhZyIsICJpbml0X3dlYnNldHVwX2NsYXNzZXNfdGFnbWFuYWdlciIsICJpbml0X3dlYnNldHVwX3BsdWdpbnMiLCAidGl0bGVBcmciLCAidGFnTWFuYWdlclJlZkFyZyIsICJsZXZlbFR5cGUiLCAidGFnQXJnIiwgInRhZ0FyZzIiLCAiY29tcGFueURhdGFBcmciLCAiSnNvbkxkVGFnIiwgIk9wZW5ncmFwaFRhZyIsICJhcnRpY2xlQXJnIiwgInByb2R1Y3RBcmciLCAiY29tcGFueUFyZyIsICJNZXRhVGFnIiwgImluaXRfd2Vic2V0dXBfY2xhc3Nlc190YWdfbWV0YXRhZyIsICJfX2VzbU1pbiIsICJpbml0X3dlYnNldHVwX2NsYXNzZXNfdGFnIiwgIlRhZyIsICJtZXRhTmFtZUFyZyIsICJjb250ZW50QXJnIiwgIm1ldGFFbGVtZW50IiwgIlRhZ01hbmFnZXIiLCAiaW5pdF93ZWJzZXR1cF9jbGFzc2VzX3RhZ21hbmFnZXIiLCAiX19lc21NaW4iLCAiaW5pdF93ZWJzZXR1cF9jbGFzc2VzX3RhZ2xldmVsIiwgImluaXRfd2Vic2V0dXBfcGx1Z2lucyIsICJpbml0X2ludGVyZmFjZXMiLCAiaW5pdF93ZWJzZXR1cF9jbGFzc2VzX3RhZ19tZXRhdGFnIiwgImluaXRfd2Vic2V0dXBfY2xhc3Nlc190YWdfanNvbmxkdGFnIiwgImluaXRfd2Vic2V0dXBfY2xhc3Nlc190YWdfb3BlbmdyYXBodGFnIiwgIlRhZ0xldmVsIiwgIm1ldGFPYmplY3RBcmciLCAiTWV0YVRhZyIsICJzdWJQYWdlTGV2ZWwiLCAiV2ViU2V0dXAiLCAiaW5pdF93ZWJzZXR1cF9jbGFzc2VzX3dlYnNldHVwIiwgIl9fZXNtTWluIiwgImluaXRfd2Vic2V0dXBfcGx1Z2lucyIsICJpbml0X2ludGVyZmFjZXMiLCAiaW5pdF93ZWJzZXR1cF9jbGFzc2VzX3RhZ21hbmFnZXIiLCAiaW5pdF93ZWJzZXR1cF9jbGFzc2VzX3RhZ2xldmVsIiwgIm9wdGlvbnNBcmciLCAiVGFnTWFuYWdlciIsICJkaXN0X3RzX2V4cG9ydHMiLCAibWV0YU9iamVjdEFyZyIsICJmbGFzaFRleHRBcmciLCAiVGl0bGUiLCAiaW5pdF93ZWJzZXR1cF9jbGFzc2VzX3RpdGxlIiwgIl9fZXNtTWluIiwgImluaXRfd2Vic2V0dXBfcGx1Z2lucyIsICJkaXN0X3RzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiSnNvbkxkVGFnIiwgIk1ldGFUYWciLCAiT3BlbmdyYXBoVGFnIiwgIlRpdGxlIiwgIldlYlNldHVwIiwgImluaXRfZGlzdF90cyIsICJfX2VzbU1pbiIsICJpbml0X3dlYnNldHVwX2NsYXNzZXNfd2Vic2V0dXAiLCAiaW5pdF93ZWJzZXR1cF9jbGFzc2VzX3RhZ19tZXRhdGFnIiwgImluaXRfd2Vic2V0dXBfY2xhc3Nlc190YWdfb3BlbmdyYXBodGFnIiwgImluaXRfd2Vic2V0dXBfY2xhc3Nlc190YWdfanNvbmxkdGFnIiwgImluaXRfd2Vic2V0dXBfY2xhc3Nlc190aXRsZSIsICJpbXBvcnRfc3ltYm9sX3RyZWUiLCAiaW5pdF9saWtfcGx1Z2lucyIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfdHMiLCAiRmFzdE1hcCIsICJpbml0X2xpa19mYXN0bWFwIiwgIl9fZXNtTWluIiwgImluaXRfbGlrX3BsdWdpbnMiLCAiX0Zhc3RNYXAiLCAia2V5QXJnIiwgIm9iamVjdEFyZyIsICJvcHRpb25zQXJnIiwgInJlbW92ZWRJdGVtIiwgImtleXMiLCAiZmFzdE1hcEFyZyIsICJjb25jYXRlZEZhc3RtYXAiLCAia2V5IiwgImZpbmRGdW5jdGlvbkFyZyIsICJpdGVtIiwgInVuaSIsICJPYmplY3RNYXAiLCAiaW5pdF9saWtfb2JqZWN0bWFwIiwgIl9fZXNtTWluIiwgImluaXRfbGlrX3BsdWdpbnMiLCAiaW5pdF9saWtfZmFzdG1hcCIsICJwcmVmaXgiLCAiYyIsICJyIiwgIl9PYmplY3RNYXAiLCAiRmFzdE1hcCIsICJkaXN0X3RzX2V4cG9ydHMiLCAidW5pcXVlS2V5QXJnIiwgIm9iamVjdEFyZyIsICJ1bmlxdWVLZXkiLCAib2JqZWN0IiwgImtleUFyZyIsICJvYmplY3RBcnJheUFyZyIsICJpdGVtIiwgImZvdW5kS2V5IiwgImZpbmRGdW5jdGlvbiIsICJmb3VuZEVsZW1lbnQiLCAiZnVuY3Rpb25BcmciLCAia2V5cyIsICJrZXlUb1VzZSIsICJyZW1vdmVkSXRlbSIsICJyZXR1cm5BcnJheSIsICJyZW1vdmVkT2JqZWN0IiwgIm9iamVjdE1hcEFyZyIsICJjb25jYXR0ZWRPYmplY3RNYXAiLCAiU3RyaW5nbWFwIiwgImluaXRfbGlrX3N0cmluZ21hcCIsICJfX2VzbU1pbiIsICJpbml0X2xpa19wbHVnaW5zIiwgInN0cmluZ0FyZyIsICJzdHJpbmdBcnJheUFyZyIsICJzdHJpbmdJdGVtIiwgImtleUFyZyIsICJtaW5pTWF0Y2hTdHJpbmdBcmciLCAic21hcnRNYXRjaEluc3RhbmNlIiwgImRpc3RfdHNfZXhwb3J0cyIsICJmb3VuZE1hdGNoIiwgInJldHVybkFycmF5IiwgImZ1bmN0aW9uQXJnIiwgImNhbGxiYWNrQXJnIiwgInRydWVEZWZlcnJlZCIsICJyZXN1bHQiLCAiZmlsdGVyZWRBcnJheSIsICJjbGFtcCIsICJtaW4iLCAiaW5wdXQiLCAibWF4IiwgImxlcnAiLCAieCIsICJ5IiwgInQiLCAiZGFtcCIsICJsYW1iZGEiLCAiZGVsdGFUaW1lIiwgIm1vZHVsbyIsICJuIiwgImQiLCAiZGVib3VuY2UiLCAiY2FsbGJhY2siLCAiZGVsYXkiLCAidGltZXIiLCAiYXJncyIsICJjb250ZXh0IiwgInZlcnNpb24iLCAiQW5pbWF0ZSIsICJEaW1lbnNpb25zIiwgIkVtaXR0ZXIiLCAiTElORV9IRUlHSFQiLCAibGlzdGVuZXJPcHRpb25zIiwgIlZpcnR1YWxTY3JvbGwiLCAiZGVmYXVsdEVhc2luZyIsICJMZW5pcyIsICJjb21wbGV0ZWQiLCAibGluZWFyUHJvZ3Jlc3MiLCAiZWFzZWRQcm9ncmVzcyIsICJmcm9tIiwgInRvIiwgImR1cmF0aW9uIiwgImVhc2luZyIsICJvblN0YXJ0IiwgIm9uVXBkYXRlIiwgIndyYXBwZXIiLCAiY29udGVudCIsICJhdXRvUmVzaXplIiwgImRlYm91bmNlVmFsdWUiLCAiZXZlbnQiLCAiY2FsbGJhY2tzIiwgImkiLCAibGVuZ3RoIiwgImNiIiwgImVsZW1lbnQiLCAib3B0aW9ucyIsICJjbGllbnRYIiwgImNsaWVudFkiLCAiZGVsdGFYIiwgImRlbHRhWSIsICJkZWx0YU1vZGUiLCAibXVsdGlwbGllclgiLCAibXVsdGlwbGllclkiLCAiZXZlbnRzVGFyZ2V0IiwgInNtb290aFdoZWVsIiwgInN5bmNUb3VjaCIsICJzeW5jVG91Y2hMZXJwIiwgInRvdWNoSW5lcnRpYUV4cG9uZW50IiwgImluZmluaXRlIiwgIm9yaWVudGF0aW9uIiwgImdlc3R1cmVPcmllbnRhdGlvbiIsICJ0b3VjaE11bHRpcGxpZXIiLCAid2hlZWxNdWx0aXBsaWVyIiwgInByZXZlbnQiLCAidmlydHVhbFNjcm9sbCIsICJvdmVyc2Nyb2xsIiwgImF1dG9SYWYiLCAiYW5jaG9ycyIsICJhdXRvVG9nZ2xlIiwgImFsbG93TmVzdGVkU2Nyb2xsIiwgIl9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnMiLCAibmFpdmVEaW1lbnNpb25zIiwgInN0b3BJbmVydGlhT25OYXZpZ2F0ZSIsICJlIiwgInByb3BlcnR5IiwgInNjcm9sbCIsICJhbmNob3JFbGVtZW50cyIsICJub2RlIiwgImFuY2hvciIsICJocmVmIiwgInRhcmdldCIsICJkYXRhIiwgImlzVG91Y2giLCAiaXNXaGVlbCIsICJpc0NsaWNrT3JUYXAiLCAiaXNVbmtub3duR2VzdHVyZSIsICJjb21wb3NlZFBhdGgiLCAiZGVsdGEiLCAiaXNTeW5jVG91Y2giLCAiaGFzVG91Y2hJbmVydGlhIiwgImxhc3RTY3JvbGwiLCAidGltZSIsICJvZmZzZXQiLCAiaW1tZWRpYXRlIiwgImxvY2siLCAicHJvZ3JhbW1hdGljIiwgIm9uQ29tcGxldGUiLCAiZm9yY2UiLCAidXNlckRhdGEiLCAid3JhcHBlclJlY3QiLCAicmVjdCIsICJkaXN0YW5jZSIsICJ2YWx1ZSIsICJjYWNoZSIsICJoYXNPdmVyZmxvd1giLCAiaGFzT3ZlcmZsb3dZIiwgImlzU2Nyb2xsYWJsZVgiLCAiaXNTY3JvbGxhYmxlWSIsICJzY3JvbGxXaWR0aCIsICJzY3JvbGxIZWlnaHQiLCAiY2xpZW50V2lkdGgiLCAiY2xpZW50SGVpZ2h0IiwgImNvbXB1dGVkU3R5bGUiLCAib3ZlcmZsb3dYU3RyaW5nIiwgIm92ZXJmbG93WVN0cmluZyIsICJpc1Njcm9sbGluZ1giLCAiaXNTY3JvbGxpbmdZIiwgIm1heFNjcm9sbCIsICJoYXNPdmVyZmxvdyIsICJpc1Njcm9sbGFibGUiLCAiY2xhc3NOYW1lIiwgInJlcXVpcmVfc3dlZXRfc2Nyb2xsIiwgIl9fY29tbW9uSlNNaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZ2xvYmFsIiwgImZhY3RvcnkiLCAiX19hc3NpZ24iLCAidCIsICJzIiwgImkiLCAibiIsICJwIiwgImNhblVzZURPTSIsICJjYW5Vc2VIaXN0b3J5IiwgImNhblVzZVBhc3NpdmVPcHRpb24iLCAic3VwcG9ydCIsICJ3aW4iLCAib3B0cyIsICJpc1N0cmluZyIsICJvYmoiLCAiaXNGdW5jdGlvbiIsICJpc0FycmF5IiwgImlzTnVtZXJpYyIsICJoYXNQcm9wIiwgImtleSIsICJyYWYiLCAiY2FmIiwgImNvcyIsICJzaW4iLCAicG93IiwgInNxcnQiLCAiUEkiLCAiZWFzaW5ncyIsICJfIiwgImIiLCAiYyIsICJkIiwgIiQkIiwgInNlbGVjdG9yIiwgIiQiLCAiaXNFbGVtZW50IiwgImlzV2luZG93IiwgIiRlbCIsICJpc1Jvb3RDb250YWluZXIiLCAibWF0Y2hlcyIsICJyZXN1bHRzIiwgImdldEhlaWdodCIsICJnZXRXaWR0aCIsICJnZXRTaXplIiwgImdldFZpZXdwb3J0QW5kRWxlbWVudFNpemVzIiwgImlzUm9vdCIsICJkaXJlY3Rpb25NZXRob2RNYXAiLCAiZGlyZWN0aW9uUHJvcE1hcCIsICJnZXRTY3JvbGwiLCAiZGlyZWN0aW9uIiwgInNldFNjcm9sbCIsICJvZmZzZXQiLCAidG9wXzEiLCAiZ2V0T2Zmc2V0IiwgIiRjb250ZXh0IiwgInJlY3QiLCAic2Nyb2xsXzEiLCAiJGN0eCIsICJjUmVjdCIsICJ3aGVlbEV2ZW50TmFtZSIsICJldmVudE5hbWUiLCAibmFtZSIsICJhcHBseSIsICJtZXRob2QiLCAiZXZlbnQiLCAibGlzdGVuZXIiLCAicGFzc2l2ZSIsICJhZGRFdmVudCIsICJyZW1vdmVFdmVudCIsICJyZVJlbGF0aXZlVG9rZW4iLCAicGFyc2VDb29yZGluYXRlIiwgImNvb3JkaW5hdGUiLCAiZW5hYmxlVmVydGljYWwiLCAicmVzIiwgIm0iLCAib3AiLCAidmFsIiwgImRlZmF1bHRPcHRpb25zIiwgIkNPTlRBSU5FUl9DTElDS19FVkVOVCIsICJDT05UQUlORVJfU1RPUF9FVkVOVCIsICJTd2VldFNjcm9sbCIsICJvcHRpb25zIiwgImNvbnRhaW5lciIsICJfdGhpcyIsICJ0aW1lIiwgIl9hIiwgImN0eCIsICJzdGFydCIsICJzdGFydE9mZnNldCIsICJlYXNpbmciLCAiZHVyYXRpb24iLCAiZGlyZWN0aW9uTWFwIiwgInRpbWVFbGFwc2VkIiwgInZhbHVlIiwgImluaXRpYWwiLCAiZGVsdGEiLCAiZSIsICJkYXRhT3B0aW9ucyIsICJkYXRhIiwgInRvIiwgInByZXZlbnREZWZhdWx0IiwgInN0b3BQcm9wYWdhdGlvbiIsICJ2ZXJ0aWNhbCIsICJob3Jpem9udGFsIiwgIiRjb250YWluZXIiLCAiZGlzdGFuY2UiLCAiY3VycmVudE9wdGlvbnMiLCAiJHRyaWdnZXIiLCAib3B0T2Zmc2V0IiwgIiRoZWFkZXIiLCAicmVnIiwgImhhc2giLCAic2Nyb2xsIiwgImN1cnJlbnQiLCAiJHRhcmdldCIsICJfYiIsICJ2aWV3cG9ydCIsICJzaXplIiwgIiRlbGVtZW50IiwgImdvdG9FbmQiLCAicG9zIiwgIl9fIiwgImNhbmNlbCIsICJ1cGRhdGVVUkwiLCAidHlwZSIsICJhcmdzIiwgIl9pIiwgImNhbGxiYWNrIiwgImNhbGxiYWNrUmVzdWx0IiwgIm1ldGhvZFJlc3VsdCIsICJjbGljayIsICJzdG9wIiwgImltcG9ydF9zd2VldF9zY3JvbGwiLCAibGlrIiwgImluaXRfZG9tdG9vbHNfcGx1Z2lucyIsICJfX2VzbU1pbiIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9saWtfb2JqZWN0bWFwIiwgImluaXRfbGlrX3N0cmluZ21hcCIsICJpbml0X2xpa19mYXN0bWFwIiwgImluaXRfbGVuaXMiLCAiT2JqZWN0TWFwIiwgIlN0cmluZ21hcCIsICJGYXN0TWFwIiwgImRvbXRvb2xzX2Nzc19icmVha3BvaW50c19leHBvcnRzIiwgIl9fZXhwb3J0IiwgImNzc0ZvckRlc2t0b3AiLCAiY3NzRm9yTm90ZWJvb2siLCAiY3NzRm9yUGhhYmxldCIsICJjc3NGb3JQaG9uZSIsICJjc3NGb3JUYWJsZXQiLCAiZGVza3RvcCIsICJub3RlYm9vayIsICJwaGFibGV0IiwgInBob25lIiwgInRhYmxldCIsICJpbml0X2RvbXRvb2xzX2Nzc19icmVha3BvaW50cyIsICJfX2VzbU1pbiIsICJpbml0X2RvbXRvb2xzX2NsYXNzZXNfZG9tdG9vbHMiLCAiaW5pdF9saXQiLCAiY3NzQXJnIiwgInIiLCAiU2Nyb2xsZXIiLCAiaW5pdF9kb210b29sc19jbGFzc2VzX3Njcm9sbGVyIiwgIl9fZXNtTWluIiwgImluaXRfZG9tdG9vbHNfcGx1Z2lucyIsICJldmVudCIsICJpbmZvIiwgImRvbXRvb2xzSW5zdGFuY2VBcmciLCAiU3dlZXRTY3JvbGwiLCAiZWxlbWVudEFyZyIsICJvcHRpb25zQXJnIiwgImRpc3RfdHNfZXhwb3J0cyIsICJkb25lIiwgInNhbXBsZVNpemUiLCAiYWNjZXB0YWJsZURlbHRhRGlmZmVyZW5jZSIsICJtaW5pbXVtU21vb3RoUmF0aW8iLCAiZXZlbnREZWx0YXMiLCAib25XaGVlbCIsICJhbmFseXplRXZlbnRzIiwgInRvdGFsRGlmZnMiLCAic21hbGxEaWZmQ291bnQiLCAiaSIsICJsZW5pcyIsICJMZW5pcyIsICJvcmlnaW5hbERlc3Ryb3kiLCAiY2FsbGJhY2siLCAiZXJyb3IiLCAiVGhlbWVNYW5hZ2VyIiwgImluaXRfZG9tdG9vbHNfY2xhc3Nlc190aGVtZW1hbmFnZXIiLCAiX19lc21NaW4iLCAiaW5pdF9kb210b29sc19jbGFzc2VzX2RvbXRvb2xzIiwgImluaXRfZG9tdG9vbHNfcGx1Z2lucyIsICJkaXN0X3RzX2V4cG9ydHMiLCAiZG9tdG9vbHNSZWZBcmciLCAiZXZlbnRBcmciLCAiZ29CcmlnaHQiLCAiS2V5IiwgIktleWJvYXJkIiwgImluaXRfZG9tdG9vbHNfY2xhc3Nlc19rZXlib2FyZCIsICJfX2VzbU1pbiIsICJpbml0X2RvbXRvb2xzX3BsdWdpbnMiLCAiZG9tTm9kZSIsICJrZXlzIiwgInN1YmplY3QiLCAiZGlzdF90c19leHBvcnRzIiwgImtleXNBcmciLCAia2V5IiwgImV2ZW50IiwgInBheWxvYWRBcmciLCAic3ViamVjdEFyZyIsICJyZXN1bHQiLCAiRG9tVG9vbHMiLCAiaW5pdF9kb210b29sc19jbGFzc2VzX2RvbXRvb2xzIiwgIl9fZXNtTWluIiwgImluaXRfZG9tdG9vbHNfcGx1Z2lucyIsICJpbml0X2RvbXRvb2xzX2Nzc19icmVha3BvaW50cyIsICJpbml0X2RvbXRvb2xzX2NsYXNzZXNfc2Nyb2xsZXIiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfZG9tdG9vbHNfY2xhc3Nlc190aGVtZW1hbmFnZXIiLCAiaW5pdF9kb210b29sc19jbGFzc2VzX2tleWJvYXJkIiwgIl9Eb21Ub29scyIsICJvcHRpb25zQXJnIiwgImRvbVRvb2xzSW5zdGFuY2UiLCAicmVhZHlTdGF0ZUNoYW5nZWRGdW5jIiwgIktleWJvYXJkIiwgIldlYlNldHVwIiwgImRpc3RfdHNfZXhwb3J0cyIsICJTY3JvbGxlciIsICJUaGVtZU1hbmFnZXIiLCAibGlrIiwgImlkZW50aWZpZXJBcmciLCAiZnVuY0FyZyIsICJydW5uaW5nSWQiLCAicmVzdWx0IiwgImVycm9yIiwgInN0cmluZ01hcCIsICJzdHlsZXNUZXh0IiwgInN0eWxlRWxlbWVudCIsICJzY3JpcHRMaW5rQXJnIiwgImRvbmUiLCAic2NyaXB0IiwgImNzc0xpbmtBcmciLCAiY3NzVGFnIiwgInNjcm9sbEJhclN0eWxlcyIsICJnbG9iYWxCYXNlU3R5bGVzIiwgImluaXRfZG9tdG9vbHNfY3NzX2Jhc2VzdHlsZXMiLCAiX19lc21NaW4iLCAiaW5pdF9kb210b29sc19jbGFzc2VzX2RvbXRvb2xzIiwgImluaXRfbGl0IiwgInJldHVyblN0eWxlc09sZCIsICJpIiwgInIiLCAiZG9tdG9vbHNfZWxlbWVudGJhc2ljX2V4cG9ydHMiLCAiX19leHBvcnQiLCAic2V0dXAiLCAic3RhdGljU3R5bGVzIiwgInN0eWxlcyIsICJpbml0X2RvbXRvb2xzX2VsZW1lbnRiYXNpYyIsICJfX2VzbU1pbiIsICJpbml0X2RvbXRvb2xzX3BsdWdpbnMiLCAiaW5pdF9kb210b29sc19jbGFzc2VzX2RvbXRvb2xzIiwgImluaXRfZG9tdG9vbHNfY3NzX2Jhc2VzdHlsZXMiLCAiaW5pdF9saXQiLCAiaSIsICJyIiwgInNjcm9sbEJhclN0eWxlcyIsICJiIiwgImVsZW1lbnRBcmciLCAib3B0aW9uc0FyZyIsICJkb21Ub29scyIsICJEb21Ub29scyIsICJnbG9iYWxCYXNlU3R5bGVzIiwgImRvbXRvb2xzX2Nzc19leHBvcnRzIiwgIl9fZXhwb3J0IiwgImNzc0dyaWRDb2x1bW5zIiwgImluaXRfZG9tdG9vbHNfY3NzIiwgIl9fZXNtTWluIiwgImFtb3VudE9mQ29sdW1uc0FyZyIsICJnYXBTaXplQXJnIiwgInJldHVyblN0cmluZyIsICJpIiwgImRvbXRvb2xzX3BsdWdpbmV4cG9ydHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJTd2VldFNjcm9sbCIsICJkaXN0X3RzX2V4cG9ydHMiLCAiaW1wb3J0X3N3ZWV0X3Njcm9sbCIsICJpbml0X2RvbXRvb2xzX3BsdWdpbmV4cG9ydHMiLCAiX19lc21NaW4iLCAiaW5pdF9kaXN0X3RzIiwgImRpc3RfdHNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJEb21Ub29scyIsICJUeXBlZFJlcXVlc3QiLCAiZG9tdG9vbHNfY3NzX2JyZWFrcG9pbnRzX2V4cG9ydHMiLCAiZG9tdG9vbHNfY3NzX2V4cG9ydHMiLCAiZG9tdG9vbHNfZWxlbWVudGJhc2ljX2V4cG9ydHMiLCAiZG9tdG9vbHNfcGx1Z2luZXhwb3J0c19leHBvcnRzIiwgImluaXRfZGlzdF90cyIsICJfX2VzbU1pbiIsICJpbml0X2RvbXRvb2xzX2NvbG9ycyIsICJpbml0X2RvbXRvb2xzX2VsZW1lbnRiYXNpYyIsICJpbml0X2RvbXRvb2xzX2Nzc19icmVha3BvaW50cyIsICJpbml0X2RvbXRvb2xzX2NzcyIsICJpbml0X2RvbXRvb2xzX2NsYXNzZXNfZG9tdG9vbHMiLCAiaW5pdF9kb210b29sc19wbHVnaW5leHBvcnRzIiwgImlzb3VuaXF1ZSIsICJsaXQiLCAiaW5pdF9wbHVnaW5zIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF90cyIsICJpbml0X2xpdCIsICJpbml0X3Byb3BlcnR5IiwgImkiLCAiciIsICJuIiwgIkNzc01hbmFnZXIiLCAiaW5pdF9jbGFzc2VzX2Nzc21hbmFnZXIiLCAiX19lc21NaW4iLCAiaW5pdF9saXQiLCAiaW5pdF9wbHVnaW5zIiwgImluaXRfZGlzdF90cyIsICJfQ3NzTWFuYWdlciIsICJEb21Ub29scyIsICJkb210b29sc0FyZyIsICJnb0JyaWdodEFyZyIsICJiZFRyaXBsZXRBcmciLCAiZG9tdG9vbHNfZWxlbWVudGJhc2ljX2V4cG9ydHMiLCAiY29udGVudEFyZyIsICJyIiwgImRvbXRvb2xzX2Nzc19icmVha3BvaW50c19leHBvcnRzIiwgImJyaWdodFZhbHVlQXJnIiwgImRhcmtWYWx1ZUFyZyIsICJyZXR1cm5Dc3NWYXIiLCAiZGVmYXVsdFZhbHVlIiwgImV4aXN0aW5nVHJpcGxldCIsICJ0cmlwbGV0QXJnIiwgIm5ld1RyaXBsZXQiLCAiaXNvdW5pcXVlIiwgImxpdCIsICJhbW91bnRPZkNvbHVtbnNBcmciLCAiZ2FwU2l6ZUFyZyIsICJyZXR1cm5TdHJpbmciLCAiYnJhbmQiLCAidW53cmFwU3RhdGljVmFsdWUiLCAidW5zYWZlU3RhdGljIiwgImxpdGVyYWwiLCAic3RyaW5nc0NhY2hlIiwgIndpdGhTdGF0aWMiLCAiaHRtbCIsICJzdmciLCAibWF0aG1sIiwgIlN5bWJvbCIsICJmb3IiLCAidmFsdWUiLCAiciIsICJfJGxpdFN0YXRpYyQiLCAic3RyaW5ncyIsICJ2YWx1ZXMiLCAicmVkdWNlIiwgImFjYyIsICJ2IiwgImlkeCIsICJFcnJvciIsICJNYXAiLCAiY29yZVRhZyIsICJsIiwgImxlbmd0aCIsICJzdGF0aWNWYWx1ZSIsICJkeW5hbWljVmFsdWUiLCAic3RhdGljU3RyaW5ncyIsICJkeW5hbWljVmFsdWVzIiwgInMiLCAiaSIsICJoYXNTdGF0aWNzIiwgInB1c2giLCAia2V5IiwgImpvaW4iLCAiZ2V0IiwgInJhdyIsICJzZXQiLCAiY29yZUh0bWwiLCAiY29yZVN2ZyIsICJjb3JlTWF0aG1sIiwgImluaXRfc3RhdGljX2h0bWwiLCAiX19lc21NaW4iLCAiaW5pdF9zdGF0aWMiLCAiUGFydFR5cGUiLCAiZGlyZWN0aXZlIiwgIkRpcmVjdGl2ZSIsICJBVFRSSUJVVEUiLCAiQ0hJTEQiLCAiUFJPUEVSVFkiLCAiQk9PTEVBTl9BVFRSSUJVVEUiLCAiRVZFTlQiLCAiRUxFTUVOVCIsICJjIiwgInZhbHVlcyIsICJfJGxpdERpcmVjdGl2ZSQiLCAiX3BhcnRJbmZvIiwgIl8kaXNDb25uZWN0ZWQiLCAidGhpcyIsICJfJHBhcmVudCIsICJwYXJ0IiwgInBhcmVudCIsICJhdHRyaWJ1dGVJbmRleCIsICJfX3BhcnQiLCAiX19hdHRyaWJ1dGVJbmRleCIsICJwcm9wcyIsICJ1cGRhdGUiLCAiX3BhcnQiLCAicmVuZGVyIiwgIlVuc2FmZUhUTUxEaXJlY3RpdmUiLCAidW5zYWZlSFRNTCIsICJEaXJlY3RpdmUiLCAicGFydEluZm8iLCAic3VwZXIiLCAidGhpcyIsICJfdmFsdWUiLCAibm90aGluZyIsICJ0eXBlIiwgIlBhcnRUeXBlIiwgIkNISUxEIiwgIkVycm9yIiwgImNvbnN0cnVjdG9yIiwgImRpcmVjdGl2ZU5hbWUiLCAidmFsdWUiLCAiX3RlbXBsYXRlUmVzdWx0IiwgIm5vQ2hhbmdlIiwgInN0cmluZ3MiLCAicmF3IiwgIl8kbGl0VHlwZSQiLCAicmVzdWx0VHlwZSIsICJ2YWx1ZXMiLCAiZGlyZWN0aXZlIiwgImluaXRfdW5zYWZlX2h0bWwiLCAiX19lc21NaW4iLCAiY3VzdG9tRWxlbWVudCIsICJ0YWdOYW1lIiwgImNsYXNzT3JUYXJnZXQiLCAiY29udGV4dCIsICJhZGRJbml0aWFsaXplciIsICJjdXN0b21FbGVtZW50cyIsICJkZWZpbmUiLCAiaW5pdF9jdXN0b21fZWxlbWVudCIsICJfX2VzbU1pbiIsICJzdGF0ZSIsICJvcHRpb25zIiwgInByb3BlcnR5IiwgImF0dHJpYnV0ZSIsICJldmVudE9wdGlvbnMiLCAib3B0aW9ucyIsICJwcm90b09yVmFsdWUiLCAibmFtZU9yQ29udGV4dCIsICJtZXRob2QiLCAiT2JqZWN0IiwgImFzc2lnbiIsICJkZXNjIiwgIm9iaiIsICJuYW1lIiwgImRlc2NyaXB0b3IiLCAiY29uZmlndXJhYmxlIiwgImVudW1lcmFibGUiLCAiUmVmbGVjdCIsICJkZWNvcmF0ZSIsICJPYmplY3QiLCAiZGVmaW5lUHJvcGVydHkiLCAicXVlcnkiLCAic2VsZWN0b3IiLCAiY2FjaGUiLCAicHJvdG9PclRhcmdldCIsICJuYW1lT3JDb250ZXh0IiwgImRlc2NyaXB0b3IiLCAiZG9RdWVyeSIsICJlbCIsICJyZW5kZXJSb290IiwgInF1ZXJ5U2VsZWN0b3IiLCAiZ2V0IiwgInNldCIsICJrZXkiLCAiU3ltYm9sIiwgInRoaXMiLCAidiIsICJkZXNjIiwgInJlc3VsdCIsICJjYWxsIiwgImhhc1VwZGF0ZWQiLCAicXVlcnlBbGwiLCAic2VsZWN0b3IiLCAib2JqIiwgIm5hbWUiLCAiZGVzYyIsICJnZXQiLCAidGhpcyIsICJyZW5kZXJSb290IiwgImZyYWdtZW50IiwgImRvY3VtZW50IiwgImNyZWF0ZURvY3VtZW50RnJhZ21lbnQiLCAicXVlcnlTZWxlY3RvckFsbCIsICJxdWVyeUFzeW5jIiwgInNlbGVjdG9yIiwgIm9iaiIsICJuYW1lIiwgImRlc2MiLCAiZ2V0IiwgInRoaXMiLCAidXBkYXRlQ29tcGxldGUiLCAicmVuZGVyUm9vdCIsICJxdWVyeVNlbGVjdG9yIiwgInF1ZXJ5QXNzaWduZWRFbGVtZW50cyIsICJvcHRpb25zIiwgIm9iaiIsICJuYW1lIiwgInNsb3QiLCAic2VsZWN0b3IiLCAic2xvdFNlbGVjdG9yIiwgImRlc2MiLCAiZ2V0IiwgInNsb3RFbCIsICJ0aGlzIiwgInJlbmRlclJvb3QiLCAicXVlcnlTZWxlY3RvciIsICJlbGVtZW50cyIsICJhc3NpZ25lZEVsZW1lbnRzIiwgImZpbHRlciIsICJub2RlIiwgIm1hdGNoZXMiLCAicXVlcnlBc3NpZ25lZE5vZGVzIiwgIm9wdGlvbnMiLCAib2JqIiwgIm5hbWUiLCAic2xvdCIsICJzbG90U2VsZWN0b3IiLCAiZGVzYyIsICJnZXQiLCAidGhpcyIsICJyZW5kZXJSb290IiwgInF1ZXJ5U2VsZWN0b3IiLCAiYXNzaWduZWROb2RlcyIsICJpbml0X2RlY29yYXRvcnMiLCAiX19lc21NaW4iLCAiaW5pdF9jdXN0b21fZWxlbWVudCIsICJpbml0X3Byb3BlcnR5IiwgImluaXRfc3RhdGUiLCAiaW5pdF9ldmVudF9vcHRpb25zIiwgImluaXRfcXVlcnkiLCAiaW5pdF9xdWVyeV9hbGwiLCAiaW5pdF9xdWVyeV9hc3luYyIsICJpbml0X3F1ZXJ5X2Fzc2lnbmVkX2VsZW1lbnRzIiwgImluaXRfcXVlcnlfYXNzaWduZWRfbm9kZXMiLCAiRGVlc0VsZW1lbnQiLCAiaW5pdF9wbHVnaW5zIiwgImxpdCIsICJfY2xhc3NTdXBlciIsICJfX2VzRGVjb3JhdGUiLCAiX2dvQnJpZ2h0X2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfZ29CcmlnaHRfaW5pdGlhbGl6ZXJzIiwgIl9nb0JyaWdodF9leHRyYUluaXRpYWxpemVycyIsICJfZG9tdG9vbHNfZGVjb3JhdG9ycyIsICJfZG9tdG9vbHNfaW5pdGlhbGl6ZXJzIiwgIl9kb210b29sc19leHRyYUluaXRpYWxpemVycyIsICIjZ29CcmlnaHRfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjZG9tdG9vbHNfYWNjZXNzb3Jfc3RvcmFnZSIsICJkaXN0X3RzX2V4cG9ydHMiLCAib3B0aW9uc0FyZyIsICJkb210b29sc0FyZyIsICJkb210b29scyIsICJnb0JyaWdodEFyZyIsICJzdGFydHVwRnVuY3Rpb24iLCAiX2NoYW5nZWRQcm9wZXJ0aWVzIiwgInN0YXJ0dXBGdW5jdGlvbkFyZyIsICJnYXJiYWdlRnVuY3Rpb25BcmciLCAic3Vic2NyaXB0aW9uIiwgImdhcmJhZ2VGdW5jdGlvbiIsICJDaGlsZFBhcnQiLCAid3JhcCIsICJpc1ByaW1pdGl2ZSIsICJUZW1wbGF0ZVJlc3VsdFR5cGUiLCAiaXNUZW1wbGF0ZVJlc3VsdCIsICJpc0NvbXBpbGVkVGVtcGxhdGVSZXN1bHQiLCAiaXNEaXJlY3RpdmVSZXN1bHQiLCAiZ2V0RGlyZWN0aXZlQ2xhc3MiLCAiaXNTaW5nbGVFeHByZXNzaW9uIiwgImNyZWF0ZU1hcmtlciIsICJpbnNlcnRQYXJ0IiwgInNldENoaWxkUGFydFZhbHVlIiwgIlJFU0VUX1ZBTFVFIiwgInNldENvbW1pdHRlZFZhbHVlIiwgImdldENvbW1pdHRlZFZhbHVlIiwgInJlbW92ZVBhcnQiLCAiY2xlYXJQYXJ0IiwgIl9DaGlsZFBhcnQiLCAiXyRMSCIsICJub2RlIiwgInZhbHVlIiwgIkhUTUwiLCAiU1ZHIiwgIk1BVEhNTCIsICJ0eXBlIiwgImgiLCAicGFydCIsICJzdHJpbmdzIiwgImRvY3VtZW50IiwgImNyZWF0ZUNvbW1lbnQiLCAiY29udGFpbmVyUGFydCIsICJyZWZQYXJ0IiwgImNvbnRhaW5lciIsICJfJHN0YXJ0Tm9kZSIsICJwYXJlbnROb2RlIiwgInJlZk5vZGUiLCAiXyRlbmROb2RlIiwgInN0YXJ0Tm9kZSIsICJpbnNlcnRCZWZvcmUiLCAiZW5kTm9kZSIsICJvcHRpb25zIiwgIm5leHRTaWJsaW5nIiwgIm9sZFBhcmVudCIsICJfJHBhcmVudCIsICJwYXJlbnRDaGFuZ2VkIiwgIm5ld0Nvbm5lY3Rpb25TdGF0ZSIsICJfJHJlcGFyZW50RGlzY29ubmVjdGFibGVzIiwgIl8kbm90aWZ5Q29ubmVjdGlvbkNoYW5nZWQiLCAiXyRpc0Nvbm5lY3RlZCIsICJzdGFydCIsICJuIiwgImRpcmVjdGl2ZVBhcmVudCIsICJfJHNldFZhbHVlIiwgIl8kY29tbWl0dGVkVmFsdWUiLCAiXyRjbGVhciIsICJyZW1vdmUiLCAicmVwYXJlbnREaXNjb25uZWN0YWJsZXMiLCAibmV3UGFyZW50IiwgInRoaXMiLCAiXyRkaXNjb25uZWN0YWJsZUNoaWxkcmVuIiwgInJlbW92ZURpc2Nvbm5lY3RhYmxlRnJvbVBhcmVudCIsICJfJHBhcmVudCIsICJhZGREaXNjb25uZWN0YWJsZVRvUGFyZW50IiwgIm5vdGlmeUNoaWxkUGFydENvbm5lY3RlZENoYW5nZWQiLCAiaXNDb25uZWN0ZWQiLCAiaXNDbGVhcmluZ1ZhbHVlIiwgImZyb21QYXJ0SW5kZXgiLCAidmFsdWUiLCAiXyRjb21taXR0ZWRWYWx1ZSIsICJjaGlsZHJlbiIsICJzaXplIiwgIkFycmF5IiwgImlzQXJyYXkiLCAiaSIsICJsZW5ndGgiLCAibm90aWZ5Q2hpbGRyZW5Db25uZWN0ZWRDaGFuZ2VkIiwgImluc3RhbGxEaXNjb25uZWN0QVBJIiwgIkFzeW5jRGlyZWN0aXZlIiwgInBhcmVudCIsICJvYmoiLCAiZGVsZXRlIiwgIlNldCIsICJoYXMiLCAiYWRkIiwgInR5cGUiLCAiUGFydFR5cGUiLCAiQ0hJTEQiLCAiXyRub3RpZnlDb25uZWN0aW9uQ2hhbmdlZCIsICJfJHJlcGFyZW50RGlzY29ubmVjdGFibGVzIiwgIkRpcmVjdGl2ZSIsICJjb25zdHJ1Y3RvciIsICJwYXJ0IiwgImF0dHJpYnV0ZUluZGV4IiwgInN1cGVyIiwgIl8kaW5pdGlhbGl6ZSIsICJfJGlzQ29ubmVjdGVkIiwgImlzQ2xlYXJpbmdEaXJlY3RpdmUiLCAicmVjb25uZWN0ZWQiLCAiZGlzY29ubmVjdGVkIiwgImlzU2luZ2xlRXhwcmVzc2lvbiIsICJfX3BhcnQiLCAiXyRzZXRWYWx1ZSIsICJuZXdWYWx1ZXMiLCAiX19hdHRyaWJ1dGVJbmRleCIsICJpbml0X2FzeW5jX2RpcmVjdGl2ZSIsICJfX2VzbU1pbiIsICJSZXNvbHZlRGlyZWN0aXZlIiwgInJlc29sdmUiLCAicmVzb2x2ZUV4ZWMiLCAiaW5pdF9jbGFzc2VzX3Jlc29sdmVkaXJlY3RpdmUiLCAiX19lc21NaW4iLCAiaW5pdF9saXQiLCAiaW5pdF9hc3luY19kaXJlY3RpdmUiLCAiZiIsICJwcm9taXNlIiwgIkUiLCAidmFsdWUiLCAiZXJyb3IiLCAiZSIsICJmdW5jQXJnIiwgIlN1YnNjcmliZURpcmVjdGl2ZSIsICJzdWJzY3JpYmUiLCAiaW5pdF9jbGFzc2VzX3N1YnNjcmliZWRpcmVjdGl2ZSIsICJfX2VzbU1pbiIsICJpbml0X2xpdCIsICJpbml0X2FzeW5jX2RpcmVjdGl2ZSIsICJpbml0X2Rpc3RfdHMiLCAiZiIsICJvYnNlcnZhYmxlIiwgIkUiLCAidiIsICJlIiwgIlN1YnNjcmliZVdpdGhUZW1wbGF0ZURpcmVjdGl2ZSIsICJzdWJzY3JpYmVXaXRoVGVtcGxhdGUiLCAiaW5pdF9jbGFzc2VzX3N1YnNjcmliZXdpdGh0ZW1wbGF0ZSIsICJfX2VzbU1pbiIsICJpbml0X2xpdCIsICJpbml0X2FzeW5jX2RpcmVjdGl2ZSIsICJpbml0X2Rpc3RfdHMiLCAiZiIsICJvYnNlcnZhYmxlIiwgInRlbXBsYXRlRm4iLCAiRSIsICJ2IiwgIm91dCIsICJlIiwgImZvckF3YWl0T2YiLCAiUHNldWRvV2Vha1JlZiIsICJQYXVzZXIiLCAiYXN5bmMiLCAiaXRlcmFibGUiLCAiY2FsbGJhY2siLCAidiIsICJyZWYiLCAidGhpcyIsICJfcmVmIiwgImRpc2Nvbm5lY3QiLCAiZGVyZWYiLCAiY29uc3RydWN0b3IiLCAiX3Byb21pc2UiLCAiX3Jlc29sdmUiLCAiZ2V0IiwgInBhdXNlIiwgIlByb21pc2UiLCAicmVzb2x2ZSIsICJyZXN1bWUiLCAiaXNQcm9taXNlIiwgIl9pbmZpbml0eSIsICJVbnRpbERpcmVjdGl2ZSIsICJ1bnRpbCIsICJ4IiwgImlzUHJpbWl0aXZlIiwgInRoZW4iLCAiQXN5bmNEaXJlY3RpdmUiLCAiY29uc3RydWN0b3IiLCAidGhpcyIsICJfX2xhc3RSZW5kZXJlZEluZGV4IiwgIl9fdmFsdWVzIiwgIl9fd2Vha1RoaXMiLCAiUHNldWRvV2Vha1JlZiIsICJfX3BhdXNlciIsICJQYXVzZXIiLCAiYXJncyIsICJmaW5kIiwgIm5vQ2hhbmdlIiwgIl9wYXJ0IiwgInByZXZpb3VzVmFsdWVzIiwgInByZXZpb3VzTGVuZ3RoIiwgImxlbmd0aCIsICJ3ZWFrVGhpcyIsICJwYXVzZXIiLCAiaXNDb25uZWN0ZWQiLCAiZGlzY29ubmVjdGVkIiwgImkiLCAidmFsdWUiLCAiUHJvbWlzZSIsICJyZXNvbHZlIiwgImFzeW5jIiwgInJlc3VsdCIsICJnZXQiLCAiX3RoaXMiLCAiZGVyZWYiLCAiaW5kZXgiLCAiaW5kZXhPZiIsICJzZXRWYWx1ZSIsICJkaXNjb25uZWN0IiwgInBhdXNlIiwgInJlY29ubmVjdGVkIiwgInJlY29ubmVjdCIsICJyZXN1bWUiLCAiZGlyZWN0aXZlIiwgImluaXRfdW50aWwiLCAiX19lc21NaW4iLCAiQXN5bmNSZXBsYWNlRGlyZWN0aXZlIiwgImFzeW5jUmVwbGFjZSIsICJBc3luY0RpcmVjdGl2ZSIsICJjb25zdHJ1Y3RvciIsICJ0aGlzIiwgIl9fd2Vha1RoaXMiLCAiUHNldWRvV2Vha1JlZiIsICJfX3BhdXNlciIsICJQYXVzZXIiLCAidmFsdWUiLCAiX21hcHBlciIsICJub0NoYW5nZSIsICJfcGFydCIsICJtYXBwZXIiLCAiaXNDb25uZWN0ZWQiLCAiZGlzY29ubmVjdGVkIiwgIl9fdmFsdWUiLCAiaSIsICJ3ZWFrVGhpcyIsICJwYXVzZXIiLCAiZm9yQXdhaXRPZiIsICJhc3luYyIsICJ2IiwgImdldCIsICJfdGhpcyIsICJkZXJlZiIsICJjb21taXRWYWx1ZSIsICJfaW5kZXgiLCAic2V0VmFsdWUiLCAiZGlzY29ubmVjdCIsICJwYXVzZSIsICJyZWNvbm5lY3RlZCIsICJyZWNvbm5lY3QiLCAicmVzdW1lIiwgImRpcmVjdGl2ZSIsICJhc3luY0FwcGVuZCIsICJkaXJlY3RpdmUiLCAiQXN5bmNSZXBsYWNlRGlyZWN0aXZlIiwgInBhcnRJbmZvIiwgInN1cGVyIiwgInR5cGUiLCAiUGFydFR5cGUiLCAiQ0hJTEQiLCAiRXJyb3IiLCAicGFydCIsICJwYXJhbXMiLCAidGhpcyIsICJfX2NoaWxkUGFydCIsICJ1cGRhdGUiLCAidmFsdWUiLCAiaW5kZXgiLCAiY2xlYXJQYXJ0IiwgIm5ld1BhcnQiLCAiaW5zZXJ0UGFydCIsICJzZXRDaGlsZFBhcnRWYWx1ZSIsICJpbml0X2FzeW5jX2FwcGVuZCIsICJfX2VzbU1pbiIsICJrZXllZCIsICJkaXJlY3RpdmUiLCAiRGlyZWN0aXZlIiwgImNvbnN0cnVjdG9yIiwgInRoaXMiLCAia2V5IiwgIm5vdGhpbmciLCAiayIsICJ2IiwgInBhcnQiLCAic2V0Q29tbWl0dGVkVmFsdWUiLCAiaW5pdF9rZXllZCIsICJfX2VzbU1pbiIsICJnZW5lcmF0ZU1hcCIsICJyZXBlYXQiLCAibGlzdCIsICJzdGFydCIsICJlbmQiLCAibWFwIiwgIk1hcCIsICJpIiwgInNldCIsICJkaXJlY3RpdmUiLCAiRGlyZWN0aXZlIiwgInBhcnRJbmZvIiwgInN1cGVyIiwgInR5cGUiLCAiUGFydFR5cGUiLCAiQ0hJTEQiLCAiRXJyb3IiLCAiaXRlbXMiLCAia2V5Rm5PclRlbXBsYXRlIiwgInRlbXBsYXRlIiwgImtleUZuIiwgImtleXMiLCAidmFsdWVzIiwgImluZGV4IiwgIml0ZW0iLCAidGhpcyIsICJfZ2V0VmFsdWVzQW5kS2V5cyIsICJjb250YWluZXJQYXJ0IiwgIm9sZFBhcnRzIiwgImdldENvbW1pdHRlZFZhbHVlIiwgIm5ld1ZhbHVlcyIsICJuZXdLZXlzIiwgIkFycmF5IiwgImlzQXJyYXkiLCAiX2l0ZW1LZXlzIiwgIm9sZEtleXMiLCAibmV3UGFydHMiLCAibmV3S2V5VG9JbmRleE1hcCIsICJvbGRLZXlUb0luZGV4TWFwIiwgIm9sZEhlYWQiLCAib2xkVGFpbCIsICJsZW5ndGgiLCAibmV3SGVhZCIsICJuZXdUYWlsIiwgInNldENoaWxkUGFydFZhbHVlIiwgImluc2VydFBhcnQiLCAiaGFzIiwgIm9sZEluZGV4IiwgImdldCIsICJvbGRQYXJ0IiwgIm5ld1BhcnQiLCAicmVtb3ZlUGFydCIsICJzZXRDb21taXR0ZWRWYWx1ZSIsICJub0NoYW5nZSIsICJpbml0X3JlcGVhdCIsICJfX2VzbU1pbiIsICJkaXJlY3RpdmVzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiYyIsICJpIiwgInJlc29sdmUiLCAicmVzb2x2ZUV4ZWMiLCAic3Vic2NyaWJlIiwgInN1YnNjcmliZVdpdGhUZW1wbGF0ZSIsICJtIiwgImluaXRfZGlyZWN0aXZlcyIsICJfX2VzbU1pbiIsICJpbml0X2NsYXNzZXNfcmVzb2x2ZWRpcmVjdGl2ZSIsICJpbml0X2NsYXNzZXNfc3Vic2NyaWJlZGlyZWN0aXZlIiwgImluaXRfY2xhc3Nlc19zdWJzY3JpYmV3aXRodGVtcGxhdGUiLCAiaW5pdF91bnRpbCIsICJpbml0X2FzeW5jX2FwcGVuZCIsICJpbml0X2tleWVkIiwgImluaXRfcmVwZWF0IiwgImNzc01hbmFnZXIiLCAiaW5pdF9kaXN0X3RzIiwgIl9fZXNtTWluIiwgImluaXRfY2xhc3Nlc19jc3NtYW5hZ2VyIiwgImluaXRfbGl0IiwgImluaXRfc3RhdGljX2h0bWwiLCAiaW5pdF91bnNhZmVfaHRtbCIsICJpbml0X2N1c3RvbV9lbGVtZW50IiwgImluaXRfZGVjb3JhdG9ycyIsICJpbml0X2NsYXNzZXNfZGVlc19lbGVtZW50IiwgImluaXRfZGlyZWN0aXZlcyIsICJDc3NNYW5hZ2VyIiwgInRoZW1lRGVmYXVsdHMiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImluaXRfdGhlbWUiLCAiX19lc21NaW4iLCAiaW5pdF9kaXN0X3RzIiwgImkiLCAiX2FycmF5TGlrZVRvQXJyYXkiLCAiciIsICJhIiwgImUiLCAibiIsICJfYXJyYXlXaXRoSG9sZXMiLCAiX2FycmF5V2l0aG91dEhvbGVzIiwgIl9jbGFzc0NhbGxDaGVjayIsICJfZGVmaW5lUHJvcGVydGllcyIsICJ0IiwgIm8iLCAiX3RvUHJvcGVydHlLZXkiLCAiX2NyZWF0ZUNsYXNzIiwgIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwgIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsICJGIiwgInUiLCAiX2RlZmluZVByb3BlcnR5IiwgIl9pbmhlcml0cyIsICJfc2V0UHJvdG90eXBlT2YiLCAiX2l0ZXJhYmxlVG9BcnJheSIsICJfaXRlcmFibGVUb0FycmF5TGltaXQiLCAibCIsICJpIiwgIl9ub25JdGVyYWJsZVJlc3QiLCAiX25vbkl0ZXJhYmxlU3ByZWFkIiwgIm93bktleXMiLCAiX29iamVjdFNwcmVhZDIiLCAiX3NsaWNlZFRvQXJyYXkiLCAiX3RvQ29uc3VtYWJsZUFycmF5IiwgIl90b1ByaW1pdGl2ZSIsICJfdHlwZW9mIiwgIl93cmFwUmVnRXhwIiwgIkJhYmVsUmVnRXhwIiwgInAiLCAiYnVpbGRHcm91cHMiLCAiZmFtaWx5UHJveHkiLCAib2JqIiwgInRhcmdldCIsICJwcm9wIiwgImdldEF0dHJDb25maWciLCAiYXR0ciIsICJlbGVtZW50IiwgIkRPQ1VNRU5UIiwgImNvZXJjZSIsICJ2YWwiLCAib25DaGFuZ2UiLCAiY2IiLCAiX29uQ2hhbmdlQ2IiLCAiaW5zZXJ0Q3NzIiwgImNzcyIsICJJU19ET00iLCAic3R5bGUiLCAiaGVhZENoaWxkcmVuIiwgImJlZm9yZUNoaWxkIiwgImNoaWxkIiwgInRhZ05hbWUiLCAibmV4dFVuaXF1ZUlkIiwgInNpemUiLCAiaWQiLCAiaWRQb29sIiwgInRvQXJyYXkiLCAiYXJyYXkiLCAiY2xhc3NBcnJheSIsICJub2RlIiwgImh0bWxFc2NhcGUiLCAic3RyIiwgImpvaW5BdHRyaWJ1dGVzIiwgImF0dHJpYnV0ZXMiLCAiYWNjIiwgImF0dHJpYnV0ZU5hbWUiLCAiam9pblN0eWxlcyIsICJzdHlsZXMiLCAic3R5bGVOYW1lIiwgInRyYW5zZm9ybUlzTWVhbmluZ2Z1bCIsICJ0cmFuc2Zvcm0iLCAibWVhbmluZ2xlc3NUcmFuc2Zvcm0iLCAidHJhbnNmb3JtRm9yU3ZnIiwgIl9yZWYiLCAiY29udGFpbmVyV2lkdGgiLCAiaWNvbldpZHRoIiwgIm91dGVyIiwgImlubmVyVHJhbnNsYXRlIiwgImlubmVyU2NhbGUiLCAiaW5uZXJSb3RhdGUiLCAiaW5uZXIiLCAicGF0aCIsICJ0cmFuc2Zvcm1Gb3JDc3MiLCAiX3JlZjIiLCAiX3JlZjIkd2lkdGgiLCAid2lkdGgiLCAiVU5JVFNfSU5fR1JJRCIsICJfcmVmMiRoZWlnaHQiLCAiaGVpZ2h0IiwgIl9yZWYyJHN0YXJ0Q2VudGVyZWQiLCAic3RhcnRDZW50ZXJlZCIsICJJU19JRSIsICJkJDIiLCAiZGNwIiwgIkRFRkFVTFRfQ1NTX1BSRUZJWCIsICJkcmMiLCAiREVGQVVMVF9SRVBMQUNFTUVOVF9DTEFTUyIsICJmcCIsICJjb25maWciLCAicmMiLCAicyIsICJiYXNlU3R5bGVzIiwgImRQYXR0IiwgImN1c3RvbVByb3BQYXR0IiwgInJQYXR0IiwgImVuc3VyZUNzcyIsICJfY3NzSW5zZXJ0ZWQiLCAiZG9tcmVhZHkiLCAiZm4iLCAibG9hZGVkIiwgImZ1bmN0aW9ucyIsICJ0b0h0bWwiLCAiYWJzdHJhY3ROb2RlcyIsICJ0YWciLCAiX2Fic3RyYWN0Tm9kZXMkYXR0cmliIiwgIl9hYnN0cmFjdE5vZGVzJGNoaWxkciIsICJjaGlsZHJlbiIsICJpY29uRnJvbU1hcHBpbmciLCAibWFwcGluZyIsICJwcmVmaXgiLCAiaWNvbk5hbWUiLCAidG9IZXgiLCAidW5pY29kZSIsICJub3JtYWxpemVJY29ucyIsICJpY29ucyIsICJpY29uIiwgImV4cGFuZGVkIiwgImRlZmluZUljb25zIiwgInBhcmFtcyIsICJfcGFyYW1zJHNraXBIb29rcyIsICJza2lwSG9va3MiLCAibm9ybWFsaXplZCIsICJuYW1lc3BhY2UiLCAiaXNSZXNlcnZlZCIsICJuYW1lIiwgIlJFU0VSVkVEX0NMQVNTRVMiLCAiZ2V0SWNvbk5hbWUiLCAiY3NzUHJlZml4IiwgImNscyIsICJwYXJ0cyIsICJieVVuaWNvZGUiLCAiX2J5VW5pY29kZSIsICJieUxpZ2F0dXJlIiwgImxpZ2F0dXJlIiwgIl9ieUxpZ2F0dXJlIiwgImJ5QWxpYXMiLCAiYWxpYXMiLCAiX2J5QWxpYXMiLCAiYnlPbGROYW1lIiwgIl9ieU9sZE5hbWUiLCAiYnlPbGRVbmljb2RlIiwgIm9sZFVuaWNvZGUiLCAiX2J5T2xkVW5pY29kZSIsICJuZXdVbmljb2RlIiwgImdldERlZmF1bHRVc2FibGVQcmVmaXgiLCAiX2RlZmF1bHRVc2FibGVQcmVmaXgiLCAiZ2V0RmFtaWx5SWQiLCAidmFsdWVzIiwgImZhbWlseSIsICJmYW1Qcm9wcyIsICJGQU1JTFlfTkFNRVMiLCAiZmFtaWx5SWQiLCAicnQiLCAidiQkMSIsICJQUkVGSVhFU19GT1JfRkFNSUxZIiwgImdldENhbm9uaWNhbFByZWZpeCIsICJzdHlsZU9yUHJlZml4IiwgIl9wYXJhbXMkZmFtaWx5IiwgIlBSRUZJWF9UT19TVFlMRSIsICJTVFlMRV9UT19QUkVGSVgiLCAiZGVmaW5lZCIsICJyZXN1bHQiLCAibW92ZU5vbkZhQ2xhc3Nlc1RvUmVzdCIsICJjbGFzc05hbWVzIiwgInJlc3QiLCAic29ydGVkVW5pcXVlVmFsdWVzIiwgImFyciIsICJ2YWx1ZSIsICJpbmRleCIsICJnZXRDYW5vbmljYWxJY29uIiwgIl9wYXJhbXMkc2tpcExvb2t1cHMiLCAic2tpcExvb2t1cHMiLCAiZ2l2ZW5QcmVmaXgiLCAiZmFTdHlsZU9yRmFtaWx5Q2xhc3NlcyIsICJfZmFDb21iaW5lZENsYXNzZXMiLCAibm9uU3R5bGVPckZhbWlseUNsYXNzZXMiLCAiZmFTdHlsZXMiLCAiUSIsICJfZmFTdHlsZXMiLCAiX2ZhU3R5bGVzJCIsICJzdHlsZUZyb21WYWx1ZXMiLCAiY2Fub25pY2FsIiwgImdldERlZmF1bHRDYW5vbmljYWxQcmVmaXgiLCAiYXBwbHlTaGltQW5kQWxpYXMiLCAic2hpbSIsICJhbGlhc0ljb25OYW1lIiwgInByZWZpeE9wdGlvbnMiLCAiX3ByZWZpeE9wdGlvbnMkZ2l2ZW5QIiwgIl9wcmVmaXhPcHRpb25zJHN0eWxlcyIsICJfcHJlZml4T3B0aW9ucyRjb25maWciLCAiY29uZmlnJCQxIiwgImlzRHVvdG9uZUZhbWlseSIsICJ2YWx1ZXNIYXNEdW90b25lIiwgImRlZmF1bHRGYW1pbHlJc0R1b3RvbmUiLCAiY2Fub25pY2FsUHJlZml4SXNEdW90b25lIiwgIm5ld0Nhbm9uaWNhbEZhbWlsaWVzIiwgInZhbGlkUHJlZml4IiwgImtleSIsICJuZXdDYW5vbmljYWxTdHlsZXMiLCAiZGVmYXVsdFByZWZpeCIsICJVdCIsICJyZWdpc3RlclBsdWdpbnMiLCAibmV4dFBsdWdpbnMiLCAiX3BsdWdpbnMiLCAiX2hvb2tzIiwgInByb3ZpZGVycyIsICJrIiwgImRlZmF1bHRQcm92aWRlcktleXMiLCAicGx1Z2luIiwgIm1peG91dCIsICJ0ayIsICJzayIsICJob29rcyIsICJob29rIiwgImNoYWluSG9va3MiLCAiYWNjdW11bGF0b3IiLCAiX2xlbiIsICJhcmdzIiwgIl9rZXkiLCAiaG9va0ZucyIsICJob29rRm4iLCAiY2FsbEhvb2tzIiwgIl9sZW4yIiwgIl9rZXkyIiwgImNhbGxQcm92aWRlZCIsICJmaW5kSWNvbkRlZmluaXRpb24iLCAiaWNvbkxvb2t1cCIsICJsaWJyYXJ5IiwgImRvbVZhcmlhbnRzIiwgImFic3RyYWN0Q3JlYXRvciIsICJjb250YWluZXIiLCAiYXNJY29uIiwgIm1haW4iLCAibWFzayIsICJvZmZzZXQiLCAiYXNTeW1ib2wiLCAic3ltYm9sIiwgImlzTGFiZWxlZCIsICJsYWJlbHMiLCAibGFiZWwiLCAibWFrZUlubGluZVN2Z0Fic3RyYWN0IiwgIl9wYXJhbXMkaWNvbnMiLCAibWFza0lkIiwgImV4dHJhIiwgIl9wYXJhbXMkd2F0Y2hhYmxlIiwgIndhdGNoYWJsZSIsICJhdHRyQ2xhc3MiLCAiYyIsICJjb250ZW50IiwgIkRBVEFfRkFfSTJTVkciLCAibWFrZUxheWVyc1RleHRBYnN0cmFjdCIsICJfcGFyYW1zJHdhdGNoYWJsZTIiLCAic3R5bGVTdHJpbmciLCAibWFrZUxheWVyc0NvdW50ZXJBYnN0cmFjdCIsICJhc0ZvdW5kSWNvbiIsICJfaWNvbiRzbGljZSIsICJfaWNvbiRzbGljZTIiLCAidmVjdG9yRGF0YSIsICJEVU9UT05FX0NMQVNTRVMiLCAibWF5YmVOb3RpZnlNaXNzaW5nIiwgIlBST0RVQ1RJT04iLCAiZmluZEljb24iLCAicmVzb2x2ZSIsICJyZWplY3QiLCAic3R5bGVzJDEiLCAibWlzc2luZ0ljb25SZXNvbHV0aW9uTWl4aW4iLCAiaXNXYXRjaGVkIiwgImkyc3ZnIiwgImhhc1ByZWZpeEFuZEljb24iLCAiREFUQV9QUkVGSVgiLCAiREFUQV9JQ09OIiwgImhhc0JlZW5SZXBsYWNlZCIsICJnZXRNdXRhdG9yIiwgIm11dGF0b3JzIiwgIm11dGF0b3IiLCAiY3JlYXRlRWxlbWVudE5TIiwgImNyZWF0ZUVsZW1lbnQiLCAiY29udmVydFNWRyIsICJhYnN0cmFjdE9iaiIsICJfcGFyYW1zJGNlRm4iLCAiY2VGbiIsICJub2RlQXNDb21tZW50IiwgImNvbW1lbnQiLCAicGVyZm9ybU9wZXJhdGlvblN5bmMiLCAib3AiLCAicGVyZm9ybSIsICJtdXRhdGlvbnMiLCAiY2FsbGJhY2siLCAiY2FsbGJhY2tGdW5jdGlvbiIsICJub29wJDIiLCAiZnJhbWUiLCAiTVVUQVRJT05fQVBQUk9BQ0hfQVNZTkMiLCAiV0lORE9XIiwgIm1hcmsiLCAicGVyZiIsICJkaXNhYmxlT2JzZXJ2YXRpb24iLCAiZGlzYWJsZWQiLCAiZW5hYmxlT2JzZXJ2YXRpb24iLCAib2JzZXJ2ZSIsICJvcHRpb25zIiwgIk1VVEFUSU9OX09CU0VSVkVSIiwgIl9vcHRpb25zJHRyZWVDYWxsYmFjayIsICJ0cmVlQ2FsbGJhY2siLCAiX29wdGlvbnMkbm9kZUNhbGxiYWNrIiwgIm5vZGVDYWxsYmFjayIsICJfb3B0aW9ucyRwc2V1ZG9FbGVtZW4iLCAicHNldWRvRWxlbWVudHNDYWxsYmFjayIsICJfb3B0aW9ucyRvYnNlcnZlTXV0YXQiLCAib2JzZXJ2ZU11dGF0aW9uc1Jvb3QiLCAibW8iLCAib2JqZWN0cyIsICJtdXRhdGlvblJlY29yZCIsICJBVFRSSUJVVEVTX1dBVENIRURfRk9SX01VVEFUSU9OIiwgIl9nZXRDYW5vbmljYWxJY29uIiwgImRpc2Nvbm5lY3QiLCAic3R5bGVQYXJzZXIiLCAiY2xhc3NQYXJzZXIiLCAiZXhpc3RpbmdQcmVmaXgiLCAiZXhpc3RpbmdJY29uTmFtZSIsICJpbm5lclRleHQiLCAiYXR0cmlidXRlc1BhcnNlciIsICJleHRyYUF0dHJpYnV0ZXMiLCAiYmxhbmtNZXRhIiwgInBhcnNlTWV0YSIsICJwYXJzZXIiLCAiX2NsYXNzUGFyc2VyIiwgImV4dHJhQ2xhc3NlcyIsICJwbHVnaW5NZXRhIiwgImV4dHJhU3R5bGVzIiwgImdlbmVyYXRlTXV0YXRpb24iLCAibm9kZU1ldGEiLCAiTEFZRVJTX1RFWFRfQ0xBU1NOQU1FIiwgImdldEtub3duUHJlZml4ZXMiLCAiWXQiLCAiWnQkMSIsICJvblRyZWUiLCAicm9vdCIsICJodG1sQ2xhc3NMaXN0IiwgImhjbEFkZCIsICJzdWZmaXgiLCAiSFRNTF9DTEFTU19JMlNWR19CQVNFX0NMQVNTIiwgImhjbFJlbW92ZSIsICJwcmVmaXhlcyIsICJzdHlsZXMkMiIsICJwcmVmaXhlc0RvbVF1ZXJ5IiwgInAkJDEiLCAiY2FuZGlkYXRlcyIsICJtdXRhdGlvbiIsICJlJCQxIiwgInJlc29sdmVkTXV0YXRpb25zIiwgIm9uTm9kZSIsICJyZXNvbHZlSWNvbnMiLCAibmV4dCIsICJtYXliZUljb25EZWZpbml0aW9uIiwgImljb25EZWZpbml0aW9uIiwgImhleFZhbHVlRnJvbUNvbnRlbnQiLCAiY2xlYW5lZCIsICJDTEVBTl9DT05URU5UX1BBVFRFUk4iLCAiaXNTZWNvbmRhcnlMYXllciIsICJoYXNTdHlsaXN0aWNTZXQiLCAiY29kZVBvaW50IiwgImlzUHJlcGVuZFRlbiIsICJTRUNPTkRBUllfVU5JQ09ERV9SQU5HRSIsICJpc0RvdWJsZWQiLCAiZ2V0UHJlZml4IiwgImZvbnRGYW1pbHkiLCAiZm9udFdlaWdodCIsICJmb250RmFtaWx5U2FuaXRpemVkIiwgImZvbnRXZWlnaHRJbnRlZ2VyIiwgImZvbnRXZWlnaHRTYW5pdGl6ZWQiLCAiRk9OVF9GQU1JTFlfV0VJR0hUX1RPX1BSRUZJWCIsICJGT05UX0ZBTUlMWV9XRUlHSFRfRkFMTEJBQ0siLCAicmVwbGFjZUZvclBvc2l0aW9uIiwgInBvc2l0aW9uIiwgInBlbmRpbmdBdHRyaWJ1dGUiLCAiREFUQV9GQV9QU0VVRE9fRUxFTUVOVF9QRU5ESU5HIiwgImFscmVhZHlQcm9jZXNzZWRQc2V1ZG9FbGVtZW50IiwgImMkJDEiLCAiREFUQV9GQV9QU0VVRE9fRUxFTUVOVCIsICJmb250RmFtaWx5TWF0Y2giLCAiRk9OVF9GQU1JTFlfUEFUVEVSTiIsICJfY29udGVudCIsICJoZXhWYWx1ZSIsICJpc1Y0IiwgImlzU2Vjb25kYXJ5IiwgImljb25JZGVudGlmaWVyIiwgImljb25OYW1lNCIsICJtZXRhIiwgImFic3RyYWN0IiwgImVtcHR5Q2Fub25pY2FsSWNvbiIsICJhJCQxIiwgInJlcGxhY2UiLCAicHJvY2Vzc2FibGUiLCAiVEFHTkFNRVNfVE9fU0tJUF9GT1JfUFNFVURPRUxFTUVOVFMiLCAic2VhcmNoUHNldWRvRWxlbWVudHMiLCAidXNlQXNOb2RlTGlzdCIsICJub2RlTGlzdCIsICJzZWxlY3RvclNldCIsICJfaXRlcmF0b3IyIiwgIl9zdGVwMiIsICJzdHlsZXNoZWV0IiwgIl9pdGVyYXRvcjMiLCAiX3N0ZXAzIiwgInJ1bGUiLCAicGFyc2VkU2VsZWN0b3JzIiwgInBhcnNlQ1NTUnVsZUZvclBzZXVkb3MiLCAiX2l0ZXJhdG9yNCIsICJfc3RlcDQiLCAic2VsZWN0b3IiLCAiZXJyIiwgImNsZWFuU2VsZWN0b3JzIiwgIm9wZXJhdGlvbnMiLCAiZW5kIiwgImZpbGxCbGFjayIsICJmb3JjZSIsICJkZUdyb3VwIiwgIm5vb3AiLCAiX1dJTkRPVyIsICJfRE9DVU1FTlQiLCAiX01VVEFUSU9OX09CU0VSVkVSIiwgIl9QRVJGT1JNQU5DRSIsICJfcmVmJHVzZXJBZ2VudCIsICJ1c2VyQWdlbnQiLCAiUEVSRk9STUFOQ0UiLCAiSVNfQlJPV1NFUiIsICJfZHQiLCAiRSIsICJfIiwgInEiLCAiSCIsICJkIiwgImYiLCAiaCIsICJnIiwgInkiLCAibSIsICJ3IiwgIngiLCAiYiIsICJJIiwgInYiLCAiUyIsICJBIiwgIlAiLCAiaiIsICJCIiwgIk4iLCAiRCIsICJUIiwgIkMiLCAiVyIsICJLIiwgIlIiLCAiZHQiLCAiZ3QiLCAiQ3QiLCAiX3QiLCAicXQiLCAiSHQiLCAiTCIsICJVIiwgIkoiLCAiJHQiLCAib2wiLCAiZGwiLCAiZmwiLCAidWwiLCAiX21sIiwgImwkMSIsICJmJDEiLCAibiQxIiwgIm8kMSIsICJ1JDEiLCAicyQxIiwgImgkMSIsICJnJDEiLCAieSQxIiwgImUkMSIsICJtJDEiLCAicCQxIiwgImEkMSIsICJ3JDEiLCAiYiQxIiwgInIkMSIsICJjJDEiLCAiaSQxIiwgIngkMSIsICJJJDEiLCAiRiQxIiwgInYkMSIsICJTJDEiLCAiQSQxIiwgIlAkMSIsICJqJDEiLCAiQiQxIiwgIk4kMSIsICJrJDEiLCAiRCQxIiwgIkMkMSIsICJUJDEiLCAiTCQxIiwgIlckMSIsICJSJDEiLCAiSyQxIiwgIlUkMSIsICJKJDEiLCAibWwkMSIsICJFJDEiLCAiZCQxIiwgIl8kMSIsICJNJDEiLCAicnQkMSIsICIkdCQxIiwgInoiLCAiSHQkMSIsICJZJDEiLCAiRyQxIiwgIk8kMSIsICJWJDEiLCAiJCQxIiwgInRvIiwgInJvIiwgIk5BTUVTUEFDRV9JREVOVElGSUVSIiwgIlBTRVVET19FTEVNRU5UUyIsICJfUFJFRklYX1RPX1NUWUxFIiwgIl9TVFlMRV9UT19QUkVGSVgiLCAiX1BSRUZJWF9UT19MT05HX1NUWUxFIiwgIlBSRUZJWF9UT19MT05HX1NUWUxFIiwgIl9MT05HX1NUWUxFX1RPX1BSRUZJWCIsICJMT05HX1NUWUxFX1RPX1BSRUZJWCIsICJJQ09OX1NFTEVDVElPTl9TWU5UQVhfUEFUVEVSTiIsICJfRk9OVF9XRUlHSFRfVE9fUFJFRklYIiwgIkZPTlRfV0VJR0hUX1RPX1BSRUZJWCIsICJpbml0aWFsIiwgIl9kZWZhdWx0IiwgIl9jb25maWciLCAiSW5qZWN0Q1NTIiwgInckMiIsICJfbGlzdGVuZXIiLCAiYmluZEludGVybmFsNCIsICJyZWR1Y2UiLCAiTU9OTyIsICJEVU8iLCAibW9kZXJuTWF0Y2hlcyIsICJsZWdhY3lNYXRjaGVzIiwgInNoaW1zIiwgImJ1aWxkIiwgIkxpYnJhcnkiLCAibm9BdXRvIiwgImRvbSIsICJwYXJzZSIsICJhcGkiLCAiYXV0b1JlcGxhY2UiLCAibm9vcCQxIiwgInAkMiIsICJwcmVhbWJsZSIsICJiZWdpbiIsICJyZW5kZXIiLCAiUmVwbGFjZUVsZW1lbnRzIiwgIkxheWVycyIsICJMYXllcnNDb3VudGVyIiwgIkxheWVyc1RleHQiLCAiX0ZPTlRfRkFNSUxZX1dFSUdIVF9UT19QUkVGSVgiLCAiaGFzUHNldWRvRWxlbWVudCIsICJQc2V1ZG9FbGVtZW50cyIsICJfdW53YXRjaGVkIiwgIk11dGF0aW9uT2JzZXJ2ZXIkMSIsICJwYXJzZVRyYW5zZm9ybVN0cmluZyIsICJQb3dlclRyYW5zZm9ybXMiLCAiQUxMX1NQQUNFIiwgIk1hc2tzIiwgIk1pc3NpbmdJY29uSW5kaWNhdG9yIiwgIlN2Z1N5bWJvbHMiLCAicGx1Z2lucyIsICJub0F1dG8kMSIsICJjb25maWckMSIsICJsaWJyYXJ5JDEiLCAiZG9tJDEiLCAicGFyc2UkMSIsICJmaW5kSWNvbkRlZmluaXRpb24kMSIsICJ0b0h0bWwkMSIsICJsYXllciIsICJ0ZXh0IiwgImNvdW50ZXIiLCAiYXR0cnMiLCAiaW5pdF9mb250YXdlc29tZV9zdmdfY29yZSIsICJfX2VzbU1pbiIsICJmdW5jIiwgInRoaXNDb250ZXh0IiwgInN1YmplY3QiLCAiaW5pdGlhbFZhbHVlIiwgImtleXMiLCAibGVuZ3RoIiwgIml0ZXJhdG9yIiwgImxvb2t1cCIsICJyZWR1Y2VyIiwgIm8kJDEiLCAiYWxpYXNlcyIsICJoYXNSZWd1bGFyIiwgInNoaW1Mb29rdXBzIiwgIm1heWJlTmFtZU1heWJlVW5pY29kZSIsICJfdGhpcyIsICJkZWZpbml0aW9ucyIsICJhZGRpdGlvbnMiLCAibG9uZ1ByZWZpeCIsICJkZWZpbml0aW9uIiwgIl9ub3JtYWxpemVkJGtleSIsICJhdXRvUmVwbGFjZVN2Z1Jvb3QiLCAiX2ljb24iLCAiY2Fub25pY2FsSWNvbiIsICJfcHJlZml4IiwgIl9wYXJhbXMkYXV0b1JlcGxhY2VTdiIsICJmb3JTdmciLCAic3BsaXRDbGFzc2VzIiwgIm5ld0lubmVySFRNTCIsICJfcGFyYW1zJHRyYW5zZm9ybSIsICJfcGFyYW1zJHN5bWJvbCIsICJfcGFyYW1zJG1hc2siLCAiX3BhcmFtcyRtYXNrSWQiLCAiX3BhcmFtcyRjbGFzc2VzIiwgImNsYXNzZXMiLCAiX3BhcmFtcyRhdHRyaWJ1dGVzIiwgIl9wYXJhbXMkc3R5bGVzIiwgInByb3ZpZGVycyQkMSIsICJfcGFyYW1zJG5vZGUiLCAiX3BhcmFtcyRjYWxsYmFjayIsICJfcmVmMyIsICJuZXh0Q2hpbGQiLCAiYXNzZW1ibGVyIiwgIl9wYXJhbXMkdGl0bGUiLCAidGl0bGUiLCAiY29tcHV0ZWRGb250U2l6ZSIsICJib3VuZGluZ0NsaWVudFJlY3QiLCAid2VpZ2h0cyIsICJwc2V1ZG9TZWxlY3RvciIsICJzZWxlY3RvclRleHQiLCAic2VsZWN0b3JzIiwgInMkJDEiLCAiX2l0ZXJhdG9yIiwgIl9zdGVwIiwgInNlbGVjdG9yV2l0aG91dFBzZXVkbyIsICJ0cmFuc2Zvcm1TdHJpbmciLCAiZmlyc3QiLCAibWFza0RhdGEiLCAiZXhwbGljaXRNYXNrSWQiLCAibWFpbldpZHRoIiwgIm1haW5QYXRoIiwgIm1hc2tXaWR0aCIsICJtYXNrUGF0aCIsICJ0cmFucyIsICJtYXNrUmVjdCIsICJtYXNrSW5uZXJHcm91cENoaWxkcmVuTWl4aW4iLCAibWFza0lubmVyR3JvdXAiLCAibWFza091dGVyR3JvdXAiLCAiY2xpcElkIiwgIm1hc2tUYWciLCAiZGVmcyIsICJyZWR1Y2VNb3Rpb24iLCAiZ0NoaWxkcmVuIiwgIkZJTEwiLCAiQU5JTUFUSU9OX0JBU0UiLCAiT1BBQ0lUWV9BTklNQVRFIiwgImRvdCIsICJzeW1ib2xEYXRhIiwgInByZWZpeCIsICJmYVNxdWFyZUdpdGh1YiIsICJmYUdpdGh1YlNxdWFyZSIsICJmYVRoaW5rUGVha3MiLCAiZmFHb29nbGVEcml2ZSIsICJmYUF1dG9wcmVmaXhlciIsICJmYVNxdWFyZVZpYWRlbyIsICJmYVZpYWRlb1NxdWFyZSIsICJmYUNwYW5lbCIsICJmYU1lbmRlbGV5IiwgImZhRHJhZnQyZGlnaXRhbCIsICJmYVJlcGx5ZCIsICJmYUVtcGlyZSIsICJmYUFjY2Vzc2libGVJY29uIiwgImZhUXVvcmEiLCAiZmFDY0pjYiIsICJmYUZlZG9yYSIsICJmYUR1b2xpbmdvIiwgImZhRmlyc3RkcmFmdCIsICJmYUZyZWVic2QiLCAiZmFPZHlzZWUiLCAiZmFHZ0NpcmNsZSIsICJmYUNsb3VkZmxhcmUiLCAiZmFIYWNrZXJyYW5rIiwgImZhU2t5YXRsYXMiLCAiZmFEZXNrcHJvIiwgImZhUmVzb2x2aW5nIiwgImZhQmxhY2tiZXJyeSIsICJmYVN0cmlwZVMiLCAiZmFTcXVhcmVCZWhhbmNlIiwgImZhQmVoYW5jZVNxdWFyZSIsICJmYVNlcnZpY2VzdGFjayIsICJmYVJvY2tldGNoYXQiLCAiZmFSZWJlbCIsICJmYVNxdWFyZVdlYkF3ZXNvbWUiLCAiZmFMaW5rdHJlZSIsICJmYVNpbXBseWJ1aWx0IiwgImZhU3R1YmJlciIsICJmYUFwcGVyIiwgImZhR29vZ2xlU2Nob2xhciIsICJmYVlhcm4iLCAiZmFTdGFja092ZXJmbG93IiwgImZhQmx1ZXRvb3RoIiwgImZhQ3JlYXRpdmVDb21tb25zTmNKcCIsICJmYVJlZGRpdCIsICJmYUNvbm5lY3RkZXZlbG9wIiwgImZhUmVzZWFyY2hnYXRlIiwgImZhU2lnbmFsTWVzc2VuZ2VyIiwgImZhWGluZyIsICJmYVNxdWFyZUpzIiwgImZhSnNTcXVhcmUiLCAiZmFGb250aWNvbnMiLCAiZmFVcHMiLCAiZmFBbWF6b25QYXkiLCAiZmFQYW5kb3JhIiwgImZhT3BlbmlkIiwgImZhVnNjbyIsICJmYVVidW50dSIsICJmYVZpYWNvaW4iLCAiZmFaaGlodSIsICJmYVlhbmRleCIsICJmYVBpeGl2IiwgImZhT3BlbmFpIiwgImZhU2l0aCIsICJmYU5mY0RpcmVjdGlvbmFsIiwgImZhQ3JlYXRpdmVDb21tb25zQnkiLCAiZmFVbWJyYWNvIiwgImZhSG9vbGkiLCAiZmFTcXVhcmVHaXQiLCAiZmFHaXRTcXVhcmUiLCAiZmFPZG5va2xhc3NuaWtpIiwgImZhRHJ1cGFsIiwgImZhQmxvZ2dlckIiLCAiZmFJbnZpc2lvbiIsICJmYUZhY2Vib29rRiIsICJmYUNlbnRvcyIsICJmYUNjQW1hem9uUGF5IiwgImZhRWJheSIsICJmYUNvbnRhbyIsICJmYUVsbG8iLCAiZmFTaXN0cml4IiwgImZhUGVyaXNjb3BlIiwgImZhRXhwZWRpdGVkc3NsIiwgImZhTmFwc3RlciIsICJmYURlbGljaW91cyIsICJmYUd1aWxkZWQiLCAiZmFYYm94IiwgImZhVW50YXBwZCIsICJmYUdvb2dsZVBsdXNHIiwgImZhR2l0aHViQWx0IiwgImZhR2V0UG9ja2V0IiwgImZhR2xpZGUiLCAiZmFCaXR5IiwgImZhV3BleHBsb3JlciIsICJmYU1lZ2Fwb3J0IiwgImZhTWRiIiwgImZhUGFnZTQiLCAiZmFUaGVSZWRZZXRpIiwgImZhSmlyYSIsICJmYUZlZGV4IiwgImZhRXZlcm5vdGUiLCAiZmFVc2IiLCAiZmFBbmdyeWNyZWF0aXZlIiwgImZhTWl6dW5pIiwgImZhSXRjaElvIiwgImZhV2luZG93cyIsICJmYVN0dW1ibGV1cG9uIiwgImZhR29vZ2xlIiwgImZhRGlzY29yZCIsICJmYUhhY2tlck5ld3MiLCAiZmFFbGV2ZW50eSIsICJmYTExdHkiLCAiZmFUZWFtc3BlYWsiLCAiZmFTdXBwbGUiLCAiZmFTcXVhcmVUd2l0dGVyIiwgImZhVHdpdHRlclNxdWFyZSIsICJmYUZvbnRBd2Vzb21lIiwgImZhRm9udEF3ZXNvbWVGbGFnIiwgImZhRm9udEF3ZXNvbWVMb2dvRnVsbCIsICJmYVdpcnNpbmRoYW5kd2VyayIsICJmYVdzaCIsICJmYUNvbmZsdWVuY2UiLCAiZmFEaWdnIiwgImZhVGhyZWFkcyIsICJmYVdwcmVzc3IiLCAiZmFSZW5kYWN0IiwgImZhWW9hc3QiLCAiZmFOaW1ibHIiLCAiZmFQaXhlbGZlZCIsICJmYVlhaG9vIiwgImZhQmx1ZXNreSIsICJmYVNjcmliZCIsICJmYUNyZWF0aXZlQ29tbW9uc1BkIiwgImZhRWFybHliaXJkcyIsICJmYVNxdWFyZU9kbm9rbGFzc25pa2kiLCAiZmFPZG5va2xhc3NuaWtpU3F1YXJlIiwgImZhTWFya2Rvd24iLCAiZmFUeXBvMyIsICJmYUpvb21sYSIsICJmYVdlaXhpbiIsICJmYUdydW50IiwgImZhUm9ja3JtcyIsICJmYVVuc3BsYXNoIiwgImZhU3F1YXJlSW5zdGFncmFtIiwgImZhSW5zdGFncmFtU3F1YXJlIiwgImZhRmlyc3RPcmRlckFsdCIsICJmYUZ1bGNydW0iLCAiZmFCcmF2ZVJldmVyc2UiLCAiZmFBdmlhbmV4IiwgImZhTnM4IiwgImZhU3F1YXJlUGludGVyZXN0IiwgImZhUGludGVyZXN0U3F1YXJlIiwgImZhQmx1ZXRvb3RoQiIsICJmYUdyaXBmaXJlIiwgImZhU3F1YXJlR29vZ2xlUGx1cyIsICJmYUdvb2dsZVBsdXNTcXVhcmUiLCAiZmFBcHBTdG9yZSIsICJmYVdpeCIsICJmYUludGVyY29tIiwgImZhUmVhY3RldXJvcGUiLCAiZmFXYXplIiwgImZhQ3JlYXRpdmVDb21tb25zUmVtaXgiLCAiZmFCYW5kY2FtcCIsICJmYVNxdWFyZVdlYkF3ZXNvbWVTdHJva2UiLCAiZmFWaW1lb1YiLCAiZmFTdHJhdmEiLCAiZmFVbmlyZWdpc3RyeSIsICJmYUNjRGluZXJzQ2x1YiIsICJmYVBpbnRlcmVzdCIsICJmYUFsZ29saWEiLCAiZmFTdGFja3BhdGgiLCAiZmFPY3RvcHVzRGVwbG95IiwgImZhWWFtbWVyIiwgImZhTW9keCIsICJmYVNxdWFyZVRocmVhZHMiLCAiZmFPbGRSZXB1YmxpYyIsICJmYVN1c2UiLCAiZmFBcHBTdG9yZUlvcyIsICJmYVNxdWFyZURyaWJiYmxlIiwgImZhRHJpYmJibGVTcXVhcmUiLCAiZmFVaWtpdCIsICJmYVN1cGVycG93ZXJzIiwgImZhWW91dHViZSIsICJmYUVtYmVyIiwgImZhQm9vdHN0cmFwIiwgImZhSXR1bmVzIiwgImZhU3F1YXJlWGluZyIsICJmYVhpbmdTcXVhcmUiLCAiZmFDc3MzQWx0IiwgImZhU3F1YXJlc3BhY2UiLCAiZmFUcmVsbG8iLCAiZmFWaWFkZW8iLCAiZmFTZWFyY2hlbmdpbiIsICJmYVBheXBhbCIsICJmYVNxdWFyZUJsdWVza3kiLCAiZmFEQW5kREJleW9uZCIsICJmYU1pY3Jvc29mdCIsICJmYUZseSIsICJmYUNjU3RyaXBlIiwgImZhV29yZHByZXNzU2ltcGxlIiwgImZhU2VsbHN5IiwgImZhRGFzaGN1YmUiLCAiZmFHaXR0ZXIiLCAiZmFXb2xmUGFja0JhdHRhbGlvbiIsICJmYUxhc3RmbSIsICJmYVNob3B3YXJlIiwgImZhQmxvZ2dlciIsICJmYUVkZ2UiLCAiZmFJb3hob3N0IiwgImZhU2NobGl4IiwgImZhREFuZEQiLCAiZmFWdWVqcyIsICJmYU1ldGEiLCAiZmFDcmVhdGl2ZUNvbW1vbnNTaGFyZSIsICJmYVN0dWRpb3ZpbmFyaSIsICJmYUJpdGJ1Y2tldCIsICJmYVZrIiwgImZhR2l0aHViIiwgImZhQ29kaWVwaWUiLCAiZmFQaWVkUGlwZXIiLCAiZmFSYXNwYmVycnlQaSIsICJmYUNzczMiLCAiZmFIdWJzcG90IiwgImZhQ21wbGlkIiwgImZhRHlhbG9nIiwgImZhRWxlbWVudG9yIiwgImZhRmlyc3RPcmRlciIsICJmYURyaWJiYmxlIiwgImZhTGlua2VkaW4iLCAiZmFDY1BheXBhbCIsICJmYURobCIsICJmYVRleCIsICJmYVNob3BpZnkiLCAiZmFTcXVhcmVSZWRkaXQiLCAiZmFSZWRkaXRTcXVhcmUiLCAiZmFDcmVhdGl2ZUNvbW1vbnNOYyIsICJmYUdhbGFjdGljUmVwdWJsaWMiLCAiZmFGYWNlYm9vayIsICJmYUdpdGxhYiIsICJmYVFxIiwgImZhU3RyaXBlIiwgImZhRGFpbHltb3Rpb24iLCAiZmFTdGVhbSIsICJmYVNuYXBjaGF0IiwgImZhU25hcGNoYXRHaG9zdCIsICJmYUdhbGFjdGljU2VuYXRlIiwgImZhUGhvZW5peEZyYW1ld29yayIsICJmYUdpdCIsICJmYU9wdGluTW9uc3RlciIsICJmYUplbmtpbnMiLCAiZmFTbGlkZXNoYXJlIiwgImZhVWJlciIsICJmYURpZ2l0YWxPY2VhbiIsICJmYVNvdW5kY2xvdWQiLCAiZmFTcXVhcmVGaWdtYSIsICJmYUNyZWF0aXZlQ29tbW9uc1NhIiwgImZhQ2hyb21lIiwgImZhVHJhZGVGZWRlcmF0aW9uIiwgImZhVmFhZGluIiwgImZhRGV2aWFudGFydCIsICJmYU1lZGl1bSIsICJmYU1lZGl1bU0iLCAiZmFPcGVuY2FydCIsICJmYVlDb21iaW5hdG9yIiwgImZhTGluZSIsICJmYUFtaWxpYSIsICJmYUFzeW1tZXRyaWsiLCAiZmFQaGFicmljYXRvciIsICJmYUJvdHMiLCAiZmFWaW5lIiwgImZhTWVkcnQiLCAiZmFPc2kiLCAiZmFHZyIsICJmYUJ1eXNlbGxhZHMiLCAiZmFHb29nbGVQbHVzIiwgImZhU2NyZWVucGFsIiwgImZhQml0Y29pbiIsICJmYVN3aWZ0IiwgImZhRmlsZXNQaW53aGVlbCIsICJmYUxhcmF2ZWwiLCAiZmFXcGZvcm1zIiwgImZhU3BlYWtlckRlY2siLCAiZmFGbGlja3IiLCAiZmFDY1Zpc2EiLCAiZmFVcHdvcmsiLCAiZmFLYWthb1RhbGsiLCAiZmFGbHV0dGVyIiwgImZhQnVmZmVyIiwgImZhR3JhdGlwYXkiLCAiZmFHb29nbGVQYXkiLCAiZmFBcHBsZSIsICJmYVR1bWJsciIsICJmYVBob2VuaXhTcXVhZHJvbiIsICJmYUNlbnRlcmNvZGUiLCAiZmFEZWJpYW4iLCAiZmFNYXN0b2RvbiIsICJmYVNrZXRjaCIsICJmYVdlYkF3ZXNvbWUiLCAiZmFTYXNzIiwgImZhU3F1YXJlV2hhdHNhcHAiLCAiZmFXaGF0c2FwcFNxdWFyZSIsICJmYVNreXBlIiwgImZhQW5ndWxhciIsICJmYU9wZW5zdXNlIiwgImZhRHJvcGJveCIsICJmYURlZXplciIsICJmYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nIiwgImZhSmVkaU9yZGVyIiwgImZhUlByb2plY3QiLCAiZmFJbnN0YWxvZCIsICJmYUNhbmFkaWFuTWFwbGVMZWFmIiwgImZhRXRoZXJldW0iLCAiZmFIb3V6eiIsICJmYVZpYmVyIiwgImZhS2lja3N0YXJ0ZXIiLCAiZmFTcXVhcmVLaWNrc3RhcnRlciIsICJmYVNwb3RpZnkiLCAiZmFMZWFucHViIiwgImZhSmF2YSIsICJmYU5mY1N5bWJvbCIsICJmYVdvZHUiLCAiZmFTcXVhcmVTdGVhbSIsICJmYVN0ZWFtU3F1YXJlIiwgImZhQ3JlYXRpdmVDb21tb25zTmNFdSIsICJmYU5wbSIsICJmYUNsb3Vkc2NhbGUiLCAiZmFUaGVtZWNvIiwgImZhR29vZ2xlUGxheSIsICJmYUtvcnZ1ZSIsICJmYVczYyIsICJmYUdyYXYiLCAiZmFBd3MiLCAiZmFHbGlkZUciLCAiZmFKc2ZpZGRsZSIsICJmYUtleWJhc2UiLCAiZmFMdW1vbkRyb3AiLCAiZmFXZWVibHkiLCAiZmFEb2NrZXIiLCAiZmFNYWdlbnRvIiwgImZhR2l0QWx0IiwgImZhRmlyZWZveEJyb3dzZXIiLCAiZmFDbG91ZHNtaXRoIiwgImZhV2l6YXJkc09mVGhlQ29hc3QiLCAiZmFDcmVhdGl2ZUNvbW1vbnNOZCIsICJmYVVzcHMiLCAiZmFTcXVhcmVMZXR0ZXJib3hkIiwgImZhTWFuZGFsb3JpYW4iLCAiZmFTbGFjayIsICJmYVNsYWNrSGFzaCIsICJmYUFuZ2VsbGlzdCIsICJmYUFuZHJvaWQiLCAiZmFNZWV0dXAiLCAiZmFGb250aWNvbnNGaSIsICJmYVBhbGZlZCIsICJmYVdwYmVnaW5uZXIiLCAiZmFEaWFzcG9yYSIsICJmYVByb2R1Y3RIdW50IiwgImZhU3F1YXJlVXB3b3JrIiwgImZhQ3V0dGxlZmlzaCIsICJmYU1lZGFwcHMiLCAiZmFQaXgiLCAiZmFTcXVhcmVUdW1ibHIiLCAiZmFUdW1ibHJTcXVhcmUiLCAiZmFSZWFjdCIsICJmYUp4bCIsICJmYVNxdWFyZUxpbmtlZGluIiwgImZhQ3NzIiwgImZhSGFzaG5vZGUiLCAiZmFSZWRkaXRBbGllbiIsICJmYVRpa3RvayIsICJmYVdvcmRwcmVzcyIsICJmYUlkZWFsIiwgImZhUGllZFBpcGVyUHAiLCAiZmFVc3N1bm5haCIsICJmYUZvcnRBd2Vzb21lQWx0IiwgImZhQnVyb21vYmVsZXhwZXJ0ZSIsICJmYUJpbGliaWxpIiwgImZhTmVvcyIsICJmYURldiIsICJmYUhvdGphciIsICJmYURvY2h1YiIsICJmYVZpbWVvIiwgImZhTWF4Y2RuIiwgImZhU3F1YXJlRm9udEF3ZXNvbWVTdHJva2UiLCAiZmFGb250QXdlc29tZUFsdCIsICJmYVNwZWFrYXAiLCAiZmFGYW50YXN5RmxpZ2h0R2FtZXMiLCAiZmFMaW51eCIsICJmYUNvdHRvbkJ1cmVhdSIsICJmYUdvb2dsZVdhbGxldCIsICJmYUZvdXJzcXVhcmUiLCAiZmFTaGlydHNpbmJ1bGsiLCAiZmFNaW50Yml0IiwgImZhU3RheWxpbmtlZCIsICJmYVdlYmZsb3ciLCAiZmFSZW5yZW4iLCAiZmFSZXYiLCAiZmFLZXljZG4iLCAiZmFIaXJlQUhlbHBlciIsICJmYVNxdWFyZUhhY2tlck5ld3MiLCAiZmFIYWNrZXJOZXdzU3F1YXJlIiwgImZhQ3JlYXRpdmVDb21tb25zUGRBbHQiLCAiZmFPcmNpZCIsICJmYUJlaGFuY2UiLCAiZmFNb25lcm8iLCAiZmFGaWdtYSIsICJmYUluc3RhZ3JhbSIsICJmYVBlcmJ5dGUiLCAiZmFTcXVhcmVWaW1lbyIsICJmYVZpbWVvU3F1YXJlIiwgImZhUHVzaGVkIiwgImZhTWl4Y2xvdWQiLCAiZmFZYW5kZXhJbnRlcm5hdGlvbmFsIiwgImZhSGl2ZSIsICJmYUNyZWF0aXZlQ29tbW9uc1plcm8iLCAiZmFTcXVhcmVTbmFwY2hhdCIsICJmYVNuYXBjaGF0U3F1YXJlIiwgImZhVGhlbWVpc2xlIiwgImZhRGFydExhbmciLCAiZmFEZXBsb3lkb2ciLCAiZmFGbGlwYm9hcmQiLCAiZmFCdXlOTGFyZ2UiLCAiZmFXYXRjaG1hbk1vbml0b3JpbmciLCAiZmFIaXBzIiwgImZhQ2xvdWR2ZXJzaWZ5IiwgImZhR29vZHJlYWRzIiwgImZhVGlkYWwiLCAiZmFVbml0eSIsICJmYVRlbmNlbnRXZWlibyIsICJmYUZyZWVDb2RlQ2FtcCIsICJmYVhUd2l0dGVyIiwgImZhU3RpY2tlck11bGUiLCAiZmFUd2l0Y2giLCAiZmFLaWNrc3RhcnRlcksiLCAiZmFDcml0aWNhbFJvbGUiLCAiZmFTdGVhbVN5bWJvbCIsICJmYU1haWxjaGltcCIsICJmYUx1bW9uIiwgImZhTnV0cml0aW9uaXgiLCAiZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZ1BsdXMiLCAiZmFSZWRoYXQiLCAiZmFTcXVhcmVQaWVkUGlwZXIiLCAiZmFQaWVkUGlwZXJTcXVhcmUiLCAiZmFXaGF0c2FwcCIsICJmYUltZGIiLCAiZmFQeXRob24iLCAiZmFDYXNoQXBwIiwgImZhUGludGVyZXN0UCIsICJmYVdobWNzIiwgImZhSm9nZXQiLCAiZmFTcXVhcmVZb3V0dWJlIiwgImZhWW91dHViZVNxdWFyZSIsICJmYUF0bGFzc2lhbiIsICJmYVBpZWRQaXBlckhhdCIsICJmYUludGVybmV0RXhwbG9yZXIiLCAiZmFBaXJibmIiLCAiZmFKcyIsICJmYVF1aW5zY2FwZSIsICJmYUFkdmVyc2FsIiwgImZhQ3JlYXRpdmVDb21tb25zIiwgImZhTm90aW9uIiwgImZhQ2hyb21lY2FzdCIsICJmYVdpa2lwZWRpYVciLCAiZmFTaXRyb3giLCAiZmFTcXVhcmVHaXRsYWIiLCAiZmFHaXRsYWJTcXVhcmUiLCAiZmFTaG9lbGFjZSIsICJmYVNlbGxjYXN0IiwgImZhTWl4IiwgImZhQ2NBcHBsZVBheSIsICJmYUJyYXZlIiwgImZhRXRzeSIsICJmYUJ0YyIsICJmYUFkbiIsICJmYVNxdWFyZVhUd2l0dGVyIiwgImZhU3F1YXJlRm9udEF3ZXNvbWUiLCAiZmFGb3J1bWJlZSIsICJmYTQyR3JvdXAiLCAiZmFJbm5vc29mdCIsICJmYVN0dW1ibGV1cG9uQ2lyY2xlIiwgImZhU3ltZm9ueSIsICJmYVNhbGVzZm9yY2UiLCAiZmFTb3VyY2V0cmVlIiwgImZhTGlua2VkaW5JbiIsICJmYUh0bWw1IiwgImZhUnVzdCIsICJmYUhvcm5iaWxsIiwgImZhUGhwIiwgImZhRGlzcXVzIiwgImZhNTAwcHgiLCAiZmFBZmZpbGlhdGV0aGVtZSIsICJmYVJlZFJpdmVyIiwgImZhVHdpdHRlciIsICJmYUZvcnRBd2Vzb21lIiwgImZhTWl4ZXIiLCAiZmFMeWZ0IiwgImZhQXBwbGVQYXkiLCAiZmFBcnRzdGF0aW9uIiwgImZhTm9kZUpzIiwgImZhVW5jaGFydGVkIiwgImZhUGxheXN0YXRpb24iLCAiZmFNaWNyb2Jsb2ciLCAiZmFHaXRrcmFrZW4iLCAiZmFUZWxlZ3JhbSIsICJmYVRlbGVncmFtUGxhbmUiLCAiZmFJdHVuZXNOb3RlIiwgImZhTGVzcyIsICJmYUZpcmVmb3giLCAiZmFLYWdnbGUiLCAiZmFGYWNlYm9va01lc3NlbmdlciIsICJmYUF1ZGlibGUiLCAiZmFQYXRyZW9uIiwgImZhVm52IiwgImZhUGFnZWxpbmVzIiwgImZhQW1hem9uIiwgImZhRW52aXJhIiwgImZhTGlub2RlIiwgImZhQWNjdXNvZnQiLCAiZmFFcmxhbmciLCAiZmFDY0Rpc2NvdmVyIiwgImZhU2FmYXJpIiwgImZhU3BhY2VBd2Vzb21lIiwgImZhTm9kZSIsICJmYUNvZGVwZW4iLCAiZmFSYXZlbHJ5IiwgImZhQWxpcGF5IiwgImZhQ2NBbWV4IiwgImZhUGllZFBpcGVyQWx0IiwgImZhTGV0dGVyYm94ZCIsICJmYU9wZXJhIiwgImZhV2VpYm8iLCAiZmFSZWFkbWUiLCAiZmFHb2xhbmciLCAiZmFTdGFja0V4Y2hhbmdlIiwgImZhR3VscCIsICJmYVllbHAiLCAiZmFHb2ZvcmUiLCAiZmFBdmlhdG8iLCAiZmFQYWRsZXQiLCAiZmFFZGdlTGVnYWN5IiwgImZhU3F1YXJlTGFzdGZtIiwgImZhTGFzdGZtU3F1YXJlIiwgImZhR29vZHJlYWRzRyIsICJmYUNjTWFzdGVyY2FyZCIsICJmYURpc2NvdXJzZSIsICJmYUJsYWNrVGllIiwgImZhU3F1YXJlRmFjZWJvb2siLCAiZmFGYWNlYm9va1NxdWFyZSIsICJmYUJhdHRsZU5ldCIsICJmYUJpbW9iamVjdCIsICJpY29ucyIsICJpbml0X2ZyZWVfYnJhbmRzX3N2Z19pY29ucyIsICJfX2VzbU1pbiIsICJwcmVmaXgiLCAiZmFTcXVhcmVNaW51cyIsICJmYU1pbnVzU3F1YXJlIiwgImZhQ2FsZW5kYXJDaGVjayIsICJmYUZhY2VLaXNzIiwgImZhS2lzcyIsICJmYVBhc3RlIiwgImZhRmlsZUNsaXBib2FyZCIsICJmYUhhbmRQb2ludExlZnQiLCAiZmFGaWxlRXhjZWwiLCAiZmFFbnZlbG9wZSIsICJmYVNxdWFyZUNhcmV0RG93biIsICJmYUNhcmV0U3F1YXJlRG93biIsICJmYVRydWNrIiwgImZhQmVsbCIsICJmYU1lc3NhZ2UiLCAiZmFDb21tZW50QWx0IiwgImZhRmFjZURpenp5IiwgImZhRGl6enkiLCAiZmFDYWxlbmRhckRheXMiLCAiZmFDYWxlbmRhckFsdCIsICJmYUhhbmRQb2ludFVwIiwgImZhSGFuZExpemFyZCIsICJmYVNxdWFyZUZ1bGwiLCAiZmFDaXJjbGVQYXVzZSIsICJmYVBhdXNlQ2lyY2xlIiwgImZhSGFyZERyaXZlIiwgImZhSGRkIiwgImZhRmlsZVppcHBlciIsICJmYUZpbGVBcmNoaXZlIiwgImZhRmxvcHB5RGlzayIsICJmYVNhdmUiLCAiZmFGYWNlR3JpblRvbmd1ZVNxdWludCIsICJmYUdyaW5Ub25ndWVTcXVpbnQiLCAiZmFDYW1lcmEiLCAiZmFDYW1lcmFBbHQiLCAiZmFGYWNlR3JpblN0YXJzIiwgImZhR3JpblN0YXJzIiwgImZhRXllIiwgImZhRmFjZVNhZFRlYXIiLCAiZmFTYWRUZWFyIiwgImZhU2hhcmVGcm9tU3F1YXJlIiwgImZhU2hhcmVTcXVhcmUiLCAiZmFOb3RlU3RpY2t5IiwgImZhU3RpY2t5Tm90ZSIsICJmYUhhbmRCYWNrRmlzdCIsICJmYUhhbmRSb2NrIiwgImZhQ2hlc3NRdWVlbiIsICJmYUZhY2VHcmluVGVhcnMiLCAiZmFHcmluVGVhcnMiLCAiZmFQZW5Ub1NxdWFyZSIsICJmYUVkaXQiLCAiZmFGYWNlR3JpbkJlYW1Td2VhdCIsICJmYUdyaW5CZWFtU3dlYXQiLCAiZmFDbG9jayIsICJmYUNsb2NrRm91ciIsICJmYUZhY2VMYXVnaFdpbmsiLCAiZmFMYXVnaFdpbmsiLCAiZmFQYXBlclBsYW5lIiwgImZhSGVhcnQiLCAiZmFGb250QXdlc29tZSIsICJmYUZvbnRBd2Vzb21lRmxhZyIsICJmYUZvbnRBd2Vzb21lTG9nb0Z1bGwiLCAiZmFDbG9uZSIsICJmYUZvbGRlck9wZW4iLCAiZmFXaW5kb3dNaW5pbWl6ZSIsICJmYVN0YXJIYWxmIiwgImZhQWxhcm1DbG9jayIsICJmYU5ld3NwYXBlciIsICJmYUhvc3BpdGFsIiwgImZhSG9zcGl0YWxBbHQiLCAiZmFIb3NwaXRhbFdpZGUiLCAiZmFDaXJjbGVTdG9wIiwgImZhU3RvcENpcmNsZSIsICJmYU9iamVjdFVuZ3JvdXAiLCAiZmFDb21tZW50IiwgImZhQ2hlc3NQYXduIiwgImZhQ2FsZW5kYXJQbHVzIiwgImZhQ2xpcGJvYXJkIiwgImZhVGh1bWJzRG93biIsICJmYUlkQmFkZ2UiLCAiZmFTcXVhcmVDaGVjayIsICJmYUNoZWNrU3F1YXJlIiwgImZhQ2hlc3NCaXNob3AiLCAiZmFFbnZlbG9wZU9wZW4iLCAiZmFDaXJjbGVYbWFyayIsICJmYVRpbWVzQ2lyY2xlIiwgImZhWG1hcmtDaXJjbGUiLCAiZmFTcXVhcmVDYXJldFVwIiwgImZhQ2FyZXRTcXVhcmVVcCIsICJmYUZpbGVJbWFnZSIsICJmYVNxdWFyZUNhcmV0UmlnaHQiLCAiZmFDYXJldFNxdWFyZVJpZ2h0IiwgImZhU3VuIiwgImZhSW1hZ2UiLCAiZmFMaWdodGJ1bGIiLCAiZmFBZGRyZXNzQ2FyZCIsICJmYUNvbnRhY3RDYXJkIiwgImZhVmNhcmQiLCAiZmFGYWNlTWVoIiwgImZhTWVoIiwgImZhTWFwIiwgImZhSGFuZFBvaW50RG93biIsICJmYUZhY2VNZWhCbGFuayIsICJmYU1laEJsYW5rIiwgImZhRmFjZUdyaW5Ub25ndWUiLCAiZmFHcmluVG9uZ3VlIiwgImZhRnV0Ym9sIiwgImZhRnV0Ym9sQmFsbCIsICJmYVNvY2NlckJhbGwiLCAiZmFGYWNlU3VycHJpc2UiLCAiZmFTdXJwcmlzZSIsICJmYUZvbGRlciIsICJmYUZvbGRlckJsYW5rIiwgImZhQ2xvdWQiLCAiZmFDaXJjbGUiLCAiZmFGYWNlR3JpblNxdWludCIsICJmYUdyaW5TcXVpbnQiLCAiZmFDaXJjbGVVc2VyIiwgImZhVXNlckNpcmNsZSIsICJmYVJlY3RhbmdsZUxpc3QiLCAiZmFMaXN0QWx0IiwgImZhSGFuZCIsICJmYUhhbmRQYXBlciIsICJmYVRodW1ic1VwIiwgImZhQnVpbGRpbmciLCAiZmFDaGVzc1Jvb2siLCAiZmFDaXJjbGVRdWVzdGlvbiIsICJmYVF1ZXN0aW9uQ2lyY2xlIiwgImZhRmlsZSIsICJmYUZhY2VTYWRDcnkiLCAiZmFTYWRDcnkiLCAiZmFDYWxlbmRhck1pbnVzIiwgImZhRmFjZVRpcmVkIiwgImZhVGlyZWQiLCAiZmFIYW5kUG9pbnRSaWdodCIsICJmYUNpcmNsZVVwIiwgImZhQXJyb3dBbHRDaXJjbGVVcCIsICJmYUhhbmRTY2lzc29ycyIsICJmYUdlbSIsICJmYVJlY3RhbmdsZVhtYXJrIiwgImZhUmVjdGFuZ2xlVGltZXMiLCAiZmFUaW1lc1JlY3RhbmdsZSIsICJmYVdpbmRvd0Nsb3NlIiwgImZhVHJhc2hDYW4iLCAiZmFUcmFzaEFsdCIsICJmYUxpZmVSaW5nIiwgImZhQ29weXJpZ2h0IiwgImZhQ2lyY2xlTGVmdCIsICJmYUFycm93QWx0Q2lyY2xlTGVmdCIsICJmYUNhbGVuZGFyIiwgImZhRmFjZUZyb3duT3BlbiIsICJmYUZyb3duT3BlbiIsICJmYUNoYXJ0QmFyIiwgImZhQmFyQ2hhcnQiLCAiZmFIb3VzZSIsICJmYUhvbWUiLCAiZmFIb21lQWx0IiwgImZhSG9tZUxnQWx0IiwgImZhRmFjZUZyb3duIiwgImZhRnJvd24iLCAiZmFVc2VyIiwgImZhVXNlckFsdCIsICJmYVVzZXJMYXJnZSIsICJmYVNub3dmbGFrZSIsICJmYUJvb2ttYXJrIiwgImZhU3F1YXJlQ2FyZXRMZWZ0IiwgImZhQ2FyZXRTcXVhcmVMZWZ0IiwgImZhSGFuZHNoYWtlIiwgImZhSGFuZHNoYWtlQWx0IiwgImZhSGFuZHNoYWtlU2ltcGxlIiwgImZhRmFjZVNtaWxlV2luayIsICJmYVNtaWxlV2luayIsICJmYUZhY2VHcmluU3F1aW50VGVhcnMiLCAiZmFHcmluU3F1aW50VGVhcnMiLCAiZmFGaWxlQXVkaW8iLCAiZmFDYWxlbmRhclhtYXJrIiwgImZhQ2FsZW5kYXJUaW1lcyIsICJmYUNpcmNsZURvd24iLCAiZmFBcnJvd0FsdENpcmNsZURvd24iLCAiZmFGaWxlTGluZXMiLCAiZmFGaWxlQWx0IiwgImZhRmlsZVRleHQiLCAiZmFDb21tZW50cyIsICJmYUNpcmNsZUNoZWNrIiwgImZhQ2hlY2tDaXJjbGUiLCAiZmFNb29uIiwgImZhQ2xvc2VkQ2FwdGlvbmluZyIsICJmYUltYWdlcyIsICJmYUNpcmNsZVJpZ2h0IiwgImZhQXJyb3dBbHRDaXJjbGVSaWdodCIsICJmYUlkQ2FyZCIsICJmYURyaXZlcnNMaWNlbnNlIiwgImZhQ2lyY2xlUGxheSIsICJmYVBsYXlDaXJjbGUiLCAiZmFGYWNlTGF1Z2hCZWFtIiwgImZhTGF1Z2hCZWFtIiwgImZhQWRkcmVzc0Jvb2siLCAiZmFDb250YWN0Qm9vayIsICJmYUhvdXJnbGFzcyIsICJmYUhvdXJnbGFzc0VtcHR5IiwgImZhSGVhZHBob25lcyIsICJmYUhlYWRwaG9uZXNBbHQiLCAiZmFIZWFkcGhvbmVzU2ltcGxlIiwgImZhRmlsZVBvd2VycG9pbnQiLCAiZmFXaW5kb3dNYXhpbWl6ZSIsICJmYUNvbW1lbnREb3RzIiwgImZhQ29tbWVudGluZyIsICJmYUZhY2VHcmluVG9uZ3VlV2luayIsICJmYUdyaW5Ub25ndWVXaW5rIiwgImZhSG91cmdsYXNzSGFsZiIsICJmYUhvdXJnbGFzczIiLCAiZmFDcmVkaXRDYXJkIiwgImZhQ3JlZGl0Q2FyZEFsdCIsICJmYUhhbmRTcG9jayIsICJmYUJlbGxTbGFzaCIsICJmYVN0YXIiLCAiZmFGbGFnIiwgImZhTGVtb24iLCAiZmFXaW5kb3dSZXN0b3JlIiwgImZhRmFjZUdyaW5IZWFydHMiLCAiZmFHcmluSGVhcnRzIiwgImZhRmFjZUtpc3NCZWFtIiwgImZhS2lzc0JlYW0iLCAiZmFGaWxlUGRmIiwgImZhRmFjZUdyaW5XaWRlIiwgImZhR3JpbkFsdCIsICJmYUZhY2VMYXVnaFNxdWludCIsICJmYUxhdWdoU3F1aW50IiwgImZhRmFjZUtpc3NXaW5rSGVhcnQiLCAiZmFLaXNzV2lua0hlYXJ0IiwgImZhQ29weSIsICJmYUNoZXNzS2luZyIsICJmYVNxdWFyZVBsdXMiLCAiZmFQbHVzU3F1YXJlIiwgImZhRmlsZUNvZGUiLCAiZmFGYWNlR3JpbldpbmsiLCAiZmFHcmluV2luayIsICJmYU1vbmV5QmlsbDEiLCAiZmFNb25leUJpbGxBbHQiLCAiZmFFeWVTbGFzaCIsICJmYUZpbGVXb3JkIiwgImZhRmFjZUFuZ3J5IiwgImZhQW5ncnkiLCAiZmFDaGVzc0tuaWdodCIsICJmYUZhY2VHcmluQmVhbSIsICJmYUdyaW5CZWFtIiwgImZhSGFuZFBlYWNlIiwgImZhQ29tcGFzcyIsICJmYVNxdWFyZSIsICJmYUZhY2VHcmluIiwgImZhR3JpbiIsICJmYUZhY2VTbWlsZSIsICJmYVNtaWxlIiwgImZhRmFjZVNtaWxlQmVhbSIsICJmYVNtaWxlQmVhbSIsICJmYUZvbGRlckNsb3NlZCIsICJmYUtleWJvYXJkIiwgImZhRmFjZVJvbGxpbmdFeWVzIiwgImZhTWVoUm9sbGluZ0V5ZXMiLCAiZmFGYWNlR3JpbWFjZSIsICJmYUdyaW1hY2UiLCAiZmFDaXJjbGVEb3QiLCAiZmFEb3RDaXJjbGUiLCAiZmFPYmplY3RHcm91cCIsICJmYUZhY2VGbHVzaGVkIiwgImZhRmx1c2hlZCIsICJmYVN0YXJIYWxmU3Ryb2tlIiwgImZhU3RhckhhbGZBbHQiLCAiZmFGaWxlVmlkZW8iLCAiZmFGYWNlTGF1Z2giLCAiZmFMYXVnaCIsICJmYUhhbmRQb2ludGVyIiwgImZhUmVnaXN0ZXJlZCIsICJpY29ucyIsICJpbml0X2ZyZWVfcmVndWxhcl9zdmdfaWNvbnMiLCAiX19lc21NaW4iLCAicHJlZml4IiwgImZhMCIsICJmYTEiLCAiZmEyIiwgImZhMyIsICJmYTQiLCAiZmE1IiwgImZhNiIsICJmYTciLCAiZmE4IiwgImZhOSIsICJmYURvbGxhclNpZ24iLCAiZmFEb2xsYXIiLCAiZmFVc2QiLCAiZmFEb2ciLCAiZmFUcnVja01vdmluZyIsICJmYVJvdGF0ZSIsICJmYVN5bmNBbHQiLCAiZmFTcXVhcmVNaW51cyIsICJmYU1pbnVzU3F1YXJlIiwgImZhQWxpZ25KdXN0aWZ5IiwgImZhQ2FsZW5kYXJDaGVjayIsICJmYUZhY2VLaXNzIiwgImZhS2lzcyIsICJmYUtpdGNoZW5TZXQiLCAiZmFEbmEiLCAiZmFDaGlsZFJlYWNoaW5nIiwgImZhUGFzdGUiLCAiZmFGaWxlQ2xpcGJvYXJkIiwgImZhTWV0ZW9yIiwgImZhR2VhcnMiLCAiZmFDb2dzIiwgImZhRmlsZUNpcmNsZVBsdXMiLCAiZmFJY2ljbGVzIiwgImZhQXJyb3dUcmVuZFVwIiwgImZhSGV4YWdvbk5vZGVzQm9sdCIsICJmYVF1ZXN0aW9uIiwgImZhSGFuZHNCb3VuZCIsICJmYVBlcnNvbldhbGtpbmdMdWdnYWdlIiwgImZhRmlsZUFycm93RG93biIsICJmYUZpbGVEb3dubG9hZCIsICJmYVBlcnNvbkJvb3RoIiwgImZhTG9jdXN0IiwgImZhUmlnaHRMb25nIiwgImZhTG9uZ0Fycm93QWx0UmlnaHQiLCAiZmFUcnVja0Ryb3BsZXQiLCAiZmFIYW5kSG9sZGluZ01lZGljYWwiLCAiZmFIYW5kUG9pbnRMZWZ0IiwgImZhQ2FsY3VsYXRvciIsICJmYU1pbnVzIiwgImZhU3VidHJhY3QiLCAiZmFBcnJvd1VwWkEiLCAiZmFTb3J0QWxwaGFVcEFsdCIsICJmYU1pY3JvcGhvbmVTbGFzaCIsICJmYVNxdWFyZVBlbiIsICJmYVBlblNxdWFyZSIsICJmYVBlbmNpbFNxdWFyZSIsICJmYUhhbmRGaXN0IiwgImZhRmlzdFJhaXNlZCIsICJmYUNvbW1lbnRTbXMiLCAiZmFTbXMiLCAiZmFTaW1DYXJkIiwgImZhU2NhbGVCYWxhbmNlZCIsICJmYUJhbGFuY2VTY2FsZSIsICJmYUNhciIsICJmYUF1dG9tb2JpbGUiLCAiZmFDcm9wU2ltcGxlIiwgImZhQ3JvcEFsdCIsICJmYU1lZGFsIiwgImZhU2Nyb2xsIiwgImZhRmlsZUV4Y2VsIiwgImZhRmlsdGVyIiwgImZhRHJ1bSIsICJmYU1hcFBpbiIsICJmYVNjYWxlVW5iYWxhbmNlZEZsaXAiLCAiZmFCYWxhbmNlU2NhbGVSaWdodCIsICJmYUFycm93c1RvQ2lyY2xlIiwgImZhRW52ZWxvcGUiLCAiZmFCYWJ5IiwgImZhU3F1YXJlQ2FyZXREb3duIiwgImZhQ2FyZXRTcXVhcmVEb3duIiwgImZhVGVudCIsICJmYUEiLCAiZmFQYXJhY2h1dGVCb3giLCAiZmFDYXJ0QXJyb3dEb3duIiwgImZhQnJpZGdlQ2lyY2xlRXhjbGFtYXRpb24iLCAiZmFDbG91ZEFycm93VXAiLCAiZmFDbG91ZFVwbG9hZCIsICJmYUNsb3VkVXBsb2FkQWx0IiwgImZhQXQiLCAiZmFJbmRpYW5SdXBlZVNpZ24iLCAiZmFJbmRpYW5SdXBlZSIsICJmYUluciIsICJmYVRydWNrIiwgImZhQ2hhbGtib2FyZFVzZXIiLCAiZmFDaGFsa2JvYXJkVGVhY2hlciIsICJmYVVzZXJDaGVjayIsICJmYVVzZXJOaW5qYSIsICJmYVBsYW50V2lsdCIsICJmYVdlaWdodFNjYWxlIiwgImZhV2VpZ2h0IiwgImZhQ2FyZXRSaWdodCIsICJmYUZsb3JpblNpZ24iLCAiZmFCZWxsIiwgImZhTGFyaVNpZ24iLCAiZmFNaWxsU2lnbiIsICJmYVBlcnNvblNub3dib2FyZGluZyIsICJmYVNub3dib2FyZGluZyIsICJmYVR0eSIsICJmYVRlbGV0eXBlIiwgImZhVXNlcnNSZWN0YW5nbGUiLCAiZmFNb2JpbGUiLCAiZmFNb2JpbGVBbmRyb2lkIiwgImZhTW9iaWxlUGhvbmUiLCAiZmFBcnJvd3NUdXJuVG9Eb3RzIiwgImZhRXhjbGFtYXRpb24iLCAiZmFDaHVyY2giLCAiZmFUb2dnbGVPZmYiLCAiZmFTaG9lUHJpbnRzIiwgImZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uIiwgImZhV2FsbGV0IiwgImZhTWVzc2FnZSIsICJmYUNvbW1lbnRBbHQiLCAiZmFUcm9waHkiLCAiZmFGYWNlRGl6enkiLCAiZmFEaXp6eSIsICJmYUJhY3RlcmlhIiwgImZhRWFyRGVhZiIsICJmYURlYWYiLCAiZmFEZWFmbmVzcyIsICJmYUhhcmRPZkhlYXJpbmciLCAiZmFQZW9wbGVBcnJvd3MiLCAiZmFQZW9wbGVBcnJvd3NMZWZ0UmlnaHQiLCAiZmFIYW5kc0NsYXBwaW5nIiwgImZhVmlydXNDb3ZpZFNsYXNoIiwgImZhQ2FsZW5kYXJEYXlzIiwgImZhQ2FsZW5kYXJBbHQiLCAiZmFEaWFtb25kVHVyblJpZ2h0IiwgImZhRGlyZWN0aW9ucyIsICJmYUhhbmRQb2ludFVwIiwgImZhQmV6aWVyQ3VydmUiLCAiZmFQZXJzb25IYWxmRHJlc3MiLCAiZmFTcXVhcmVQb2xsSG9yaXpvbnRhbCIsICJmYVBvbGxIIiwgImZhU2Nob29sQ2lyY2xlWG1hcmsiLCAiZmFIYW5kTGl6YXJkIiwgImZhQ2hhbGtib2FyZCIsICJmYUJsYWNrYm9hcmQiLCAiZmFVcFJpZ2h0RnJvbVNxdWFyZSIsICJmYUV4dGVybmFsTGlua0FsdCIsICJmYVNxdWFyZUZ1bGwiLCAiZmFDbG92ZXIiLCAiZmFUZWV0aE9wZW4iLCAiZmFCYXJzU3RhZ2dlcmVkIiwgImZhUmVvcmRlciIsICJmYVN0cmVhbSIsICJmYVdhcmVob3VzZSIsICJmYVN3YXRjaGJvb2siLCAiZmFDYW1wZ3JvdW5kIiwgImZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQiLCAiZmFHbGFzc2VzIiwgImZhQ2lyY2xlUGF1c2UiLCAiZmFQYXVzZUNpcmNsZSIsICJmYU1lbW9yeSIsICJmYUdpZnQiLCAiZmFNb25leUJpbGxXaGVhdCIsICJmYUR1bmdlb24iLCAiZmFTdWl0Y2FzZU1lZGljYWwiLCAiZmFNZWRraXQiLCAiZmFQZXJzb25DYW5lIiwgImZhR2F1Z2UiLCAiZmFEYXNoYm9hcmQiLCAiZmFHYXVnZU1lZCIsICJmYVRhY2hvbWV0ZXJBbHRBdmVyYWdlIiwgImZhRW52ZWxvcGVPcGVuVGV4dCIsICJmYVRvb2xib3giLCAiZmFQb3dlck9mZiIsICJmYVNpZ25hbCIsICJmYVNpZ25hbDUiLCAiZmFTaWduYWxQZXJmZWN0IiwgImZhQXJyb3dzU3BpbiIsICJmYUpvaW50IiwgImZhQnJhaWxsZSIsICJmYUJhc2tldFNob3BwaW5nIiwgImZhU2hvcHBpbmdCYXNrZXQiLCAiZmFCcmlkZ2UiLCAiZmFQbGFuZUFycml2YWwiLCAiZmFDYXNoUmVnaXN0ZXIiLCAiZmFSaW5nIiwgImZhU2hhcmVOb2RlcyIsICJmYVNoYXJlQWx0IiwgImZhUGVyc29uQ2lyY2xlRXhjbGFtYXRpb24iLCAiZmFCaW5vY3VsYXJzIiwgImZhS2lwU2lnbiIsICJmYUhhcmREcml2ZSIsICJmYUhkZCIsICJmYVJhbmtpbmdTdGFyIiwgImZhVXNlclRpZSIsICJmYUVsbGlwc2lzIiwgImZhRWxsaXBzaXNIIiwgImZhU3RvcmVTbGFzaCIsICJmYVBlcmNlbnQiLCAiZmFQZXJjZW50YWdlIiwgImZhRmlsZVppcHBlciIsICJmYUZpbGVBcmNoaXZlIiwgImZhRGlzcGxheSIsICJmYUljb25zIiwgImZhSGVhcnRNdXNpY0NhbWVyYUJvbHQiLCAiZmFSdWxlclZlcnRpY2FsIiwgImZhTWFwTG9jYXRpb25Eb3QiLCAiZmFNYXBNYXJrZWRBbHQiLCAiZmFIZWFydENyYWNrIiwgImZhSGVhcnRCcm9rZW4iLCAiZmFDb3ciLCAiZmFSc3MiLCAiZmFGZWVkIiwgImZhTWFnbmlmeWluZ0dsYXNzIiwgImZhU2VhcmNoIiwgImZhQ2xvdWRNb29uIiwgImZhQm94ZXNTdGFja2VkIiwgImZhQm94ZXMiLCAiZmFCb3hlc0FsdCIsICJmYUNvZGVCcmFuY2giLCAiZmFCYW4iLCAiZmFDYW5jZWwiLCAiZmFKdWdEZXRlcmdlbnQiLCAiZmFSZXBseSIsICJmYU1haWxSZXBseSIsICJmYVN1blBsYW50V2lsdCIsICJmYUJhY3Rlcml1bSIsICJmYVJlY29yZFZpbnlsIiwgImZhRmxvcHB5RGlzayIsICJmYVNhdmUiLCAiZmFUb2lsZXRzUG9ydGFibGUiLCAiZmFPIiwgImZhUGFsZXR0ZSIsICJmYVVubG9jayIsICJmYUVhckxpc3RlbiIsICJmYUFzc2lzdGl2ZUxpc3RlbmluZ1N5c3RlbXMiLCAiZmFDb2RlUHVsbFJlcXVlc3QiLCAiZmFLZXkiLCAiZmFTa3VsbCIsICJmYU1hcnNTdHJva2VVcCIsICJmYU1hcnNTdHJva2VWIiwgImZhRmlyZUZsYW1lU2ltcGxlIiwgImZhQnVybiIsICJmYVRyZWUiLCAiZmFTbW9nIiwgImZhUyIsICJmYUplZGkiLCAiZmFQZXJzb25IaWtpbmciLCAiZmFIaWtpbmciLCAiZmFBcnJvd3NVcFRvTGluZSIsICJmYU1hcnNEb3VibGUiLCAiZmFUaGVybW9tZXRlciIsICJmYVBhaW50YnJ1c2giLCAiZmFQYWludEJydXNoIiwgImZhTmV1dGVyIiwgImZhU3F1YXJlUGhvbmVGbGlwIiwgImZhUGhvbmVTcXVhcmVBbHQiLCAiZmFGYWNlR3JpblRvbmd1ZVNxdWludCIsICJmYUdyaW5Ub25ndWVTcXVpbnQiLCAiZmFDb21tZW50RG9sbGFyIiwgImZhSGlwcG8iLCAiZmFCb3dsRm9vZCIsICJmYVNxdWFyZVZpcnVzIiwgImZhQ2xvdWRTdW5SYWluIiwgImZhQXJyb3dSaWdodExvbmciLCAiZmFMb25nQXJyb3dSaWdodCIsICJmYUJ1aWxkaW5nVW4iLCAiZmFUZW1wZXJhdHVyZUxvdyIsICJmYURvb3JPcGVuIiwgImZhQWxpZ25MZWZ0IiwgImZhQ2FtZXJhIiwgImZhQ2FtZXJhQWx0IiwgImZhVXNlcnNSYXlzIiwgImZhUmFpbmJvdyIsICJmYVNpdGVtYXAiLCAiZmFGYWNlR3JpblN0YXJzIiwgImZhR3JpblN0YXJzIiwgImZhU29ydFVwIiwgImZhU29ydEFzYyIsICJmYUV5ZSIsICJmYUNhcmV0TGVmdCIsICJmYUFwcGxlV2hvbGUiLCAiZmFBcHBsZUFsdCIsICJmYVNjcm9sbFRvcmFoIiwgImZhVG9yYWgiLCAiZmFIb3VzZUxvY2siLCAiZmFBcnJvd3NMZWZ0UmlnaHRUb0xpbmUiLCAiZmFUcmFzaCIsICJmYUZhY2VTYWRUZWFyIiwgImZhU2FkVGVhciIsICJmYUZheCIsICJmYVBlcnNvbkNpcmNsZVBsdXMiLCAiZmFIYW1zYSIsICJmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uIiwgImZhQ2xpcGJvYXJkQ2hlY2siLCAiZmFTaGFyZUZyb21TcXVhcmUiLCAiZmFTaGFyZVNxdWFyZSIsICJmYVJlY2VpcHQiLCAiZmFFcXVhbHMiLCAiZmFDaGV2cm9uVXAiLCAiZmFWaXJ1c1NsYXNoIiwgImZhU2xhc2giLCAiZmFFeHBhbmQiLCAiZmFOb3RlU3RpY2t5IiwgImZhU3RpY2t5Tm90ZSIsICJmYVRhYmxlQ29sdW1ucyIsICJmYUNvbHVtbnMiLCAiZmFQZXJzb25TaGVsdGVyIiwgImZhQ2lyY2xlTm90Y2giLCAiZmFXYXRlciIsICJmYURlbGV0ZUxlZnQiLCAiZmFCYWNrc3BhY2UiLCAiZmFCcm9vbUJhbGwiLCAiZmFRdWlkZGl0Y2giLCAiZmFRdWlkZGl0Y2hCcm9vbUJhbGwiLCAiZmFKIiwgImZhU2h1dHRsZVNwYWNlIiwgImZhU3BhY2VTaHV0dGxlIiwgImZhWWluWWFuZyIsICJmYVN0b3AiLCAiZmFUcm93ZWwiLCAiZmFIYW5kQmFja0Zpc3QiLCAiZmFIYW5kUm9jayIsICJmYVRlbXBlcmF0dXJlSGlnaCIsICJmYUdyZWF0ZXJUaGFuIiwgImZhQ3J1dGNoIiwgImZhU2VwdGFnb24iLCAiZmFIZXB0YWdvbiIsICJmYVN0cmVldFZpZXciLCAiZmFXYXZlU3F1YXJlIiwgImZhQW5nbGVMZWZ0IiwgImZhU2NyZXdkcml2ZXIiLCAiZmFUcmFjdG9yIiwgImZhQnJpZGdlQ2lyY2xlWG1hcmsiLCAiZmFWaWFscyIsICJmYVN0ZXRob3Njb3BlIiwgImZhUG9kY2FzdCIsICJmYUFycm93VXBSaWdodERvdHMiLCAiZmFDaGVzc1F1ZWVuIiwgImZhQW5jaG9yQ2lyY2xlRXhjbGFtYXRpb24iLCAiZmFFbGxpcHNpc1ZlcnRpY2FsIiwgImZhRWxsaXBzaXNWIiwgImZhSGVhcnRDaXJjbGVFeGNsYW1hdGlvbiIsICJmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb24iLCAiZmFQZXJzb25BcnJvd1VwRnJvbUxpbmUiLCAiZmFOb3RFcXVhbCIsICJmYVRyYWluVHJhbSIsICJmYVBsYW5lRGVwYXJ0dXJlIiwgImZhUmlnaHRUb0JyYWNrZXQiLCAiZmFTaWduSW5BbHQiLCAiZmFTZENhcmQiLCAiZmFIb3VzZUNpcmNsZUV4Y2xhbWF0aW9uIiwgImZhU2hla2VsU2lnbiIsICJmYUlscyIsICJmYVNoZWtlbCIsICJmYVNoZXFlbCIsICJmYVNoZXFlbFNpZ24iLCAiZmFSYWRpbyIsICJmYUhhbmREb3RzIiwgImZhQWxsZXJnaWVzIiwgImZhQm9va1NrdWxsIiwgImZhQm9va0RlYWQiLCAiZmFVbmxvY2tLZXlob2xlIiwgImZhVW5sb2NrQWx0IiwgImZhRmlsZUFycm93VXAiLCAiZmFGaWxlVXBsb2FkIiwgImZhRmFjZUdyaW5UZWFycyIsICJmYUdyaW5UZWFycyIsICJmYVBlblRvU3F1YXJlIiwgImZhRWRpdCIsICJmYUVhcnRoRXVyb3BlIiwgImZhR2xvYmVFdXJvcGUiLCAiZmFGYWNlR3JpbkJlYW1Td2VhdCIsICJmYUdyaW5CZWFtU3dlYXQiLCAiZmFDaXJjbGVIYWxmU3Ryb2tlIiwgImZhQWRqdXN0IiwgImZhUGVyc29uTWlsaXRhcnlUb1BlcnNvbiIsICJmYVRhYmxlQ2VsbHNDb2x1bW5Mb2NrIiwgImZhVHJ1Y2tGaWVsZFVuIiwgImZhQ2xvY2siLCAiZmFDbG9ja0ZvdXIiLCAiZmFCb29rIiwgImZhRmFjZUxhdWdoV2luayIsICJmYUxhdWdoV2luayIsICJmYUNsb3VkTWVhdGJhbGwiLCAiZmFDaGFydEFyZWEiLCAiZmFBcmVhQ2hhcnQiLCAiZmFSdXBpYWhTaWduIiwgImZhVGV4dFdpZHRoIiwgImZhU2F0ZWxsaXRlIiwgImZhTWFnbmlmeWluZ0dsYXNzTWludXMiLCAiZmFTZWFyY2hNaW51cyIsICJmYVBlb3BsZUdyb3VwIiwgImZhU3F1YXJlQmluYXJ5IiwgImZhTWFza3NUaGVhdGVyIiwgImZhVGhlYXRlck1hc2tzIiwgImZhQ2FydFBsdXMiLCAiZmFIYW5kc0FzbEludGVycHJldGluZyIsICJmYUFtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nIiwgImZhQXNsSW50ZXJwcmV0aW5nIiwgImZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZyIsICJmYVRhYmxlQ2VsbHNSb3dVbmxvY2siLCAiZmFSb2NrZXQiLCAiZmFTaHJpbXAiLCAiZmFUZW5nZVNpZ24iLCAiZmFUZW5nZSIsICJmYUhvdXNlQ2hpbW5leU1lZGljYWwiLCAiZmFDbGluaWNNZWRpY2FsIiwgImZhVXNlcnNTbGFzaCIsICJmYVBhcGVyUGxhbmUiLCAiZmFCb29rQXRsYXMiLCAiZmFBdGxhcyIsICJmYVRhYmxlIiwgImZhSGVhcnQiLCAiZmFDaXJjbGVDaGV2cm9uVXAiLCAiZmFDaGV2cm9uQ2lyY2xlVXAiLCAiZmFCYXR0ZXJ5SGFsZiIsICJmYUJhdHRlcnkzIiwgImZhRm9udEF3ZXNvbWUiLCAiZmFGb250QXdlc29tZUZsYWciLCAiZmFGb250QXdlc29tZUxvZ29GdWxsIiwgImZhSGFuZGN1ZmZzIiwgImZhSGF0Q293Ym95U2lkZSIsICJmYUluZHVzdHJ5IiwgImZhTGluZXNMZWFuaW5nIiwgImZhUGFzc3BvcnQiLCAiZmFJbmZpbml0eSIsICJmYUNsb25lIiwgImZhRm9yd2FyZCIsICJmYU0iLCAiZmFSb2FkU3Bpa2VzIiwgImZhTW91bnRhaW4iLCAiZmFDaGVzcyIsICJmYVRlbXBlcmF0dXJlVGhyZWVRdWFydGVycyIsICJmYVRlbXBlcmF0dXJlMyIsICJmYVRoZXJtb21ldGVyMyIsICJmYVRoZXJtb21ldGVyVGhyZWVRdWFydGVycyIsICJmYUIiLCAiZmFTaGllbGRWaXJ1cyIsICJmYUxpdGVjb2luU2lnbiIsICJmYURpY2VENiIsICJmYUdyaXBMaW5lc1ZlcnRpY2FsIiwgImZhR29sZkJhbGxUZWUiLCAiZmFHb2xmQmFsbCIsICJmYUhleGFnb24iLCAiZmFGb2xkZXJPcGVuIiwgImZhS2FhYmEiLCAiZmFIYW5kSG9sZGluZyIsICJmYVNpbmdsZVF1b3RlUmlnaHQiLCAiZmFCb3R0bGVEcm9wbGV0IiwgImZhV2luZG93TWluaW1pemUiLCAiZmFDaGV2cm9uUmlnaHQiLCAiZmFFZ2ciLCAiZmFMYW5kbWFya0RvbWUiLCAiZmFMYW5kbWFya0FsdCIsICJmYVdvcm0iLCAiZmFVc2VySW5qdXJlZCIsICJmYVN0cmlrZXRocm91Z2giLCAiZmFCbG9nIiwgImZhU3RvcHdhdGNoMjAiLCAiZmFUcnVja1BpY2t1cCIsICJmYVNlZWRsaW5nIiwgImZhU3Byb3V0IiwgImZhVHJhbnNnZW5kZXIiLCAiZmFUcmFuc2dlbmRlckFsdCIsICJmYVN0YXJIYWxmIiwgImZhUGhvdG9GaWxtIiwgImZhUGhvdG9WaWRlbyIsICJmYVB1bXBNZWRpY2FsIiwgImZhRmlyZSIsICJmYU1hZ25pZnlpbmdHbGFzc1BsdXMiLCAiZmFTZWFyY2hQbHVzIiwgImZhRmxhc2siLCAiZmFBbGlnblJpZ2h0IiwgImZhQ2FibGVDYXIiLCAiZmFUcmFtIiwgImZhS2l0TWVkaWNhbCIsICJmYUZpcnN0QWlkIiwgImZhR3JpcExpbmVzIiwgImZhQnVyZ2VyIiwgImZhSGFtYnVyZ2VyIiwgImZhU25vd21hbiIsICJmYUhvdGVsIiwgImZhUHJpbnQiLCAiZmFWb2xsZXliYWxsIiwgImZhVm9sbGV5YmFsbEJhbGwiLCAiZmFUcmFmZmljTGlnaHQiLCAiZmFQbGFuZUNpcmNsZUNoZWNrIiwgImZhVXNlcnMiLCAiZmFDZXJ0aWZpY2F0ZSIsICJmYUFsYXJtQ2xvY2siLCAiZmFIZWxpY29wdGVyU3ltYm9sIiwgImZhSG91c2VDaGltbmV5Q3JhY2siLCAiZmFIb3VzZURhbWFnZSIsICJmYVBlcnNvbk1pbGl0YXJ5UG9pbnRpbmciLCAiZmFEYXRhYmFzZSIsICJmYU5ld3NwYXBlciIsICJmYUNsb3VkUmFpbiIsICJmYU1heGltaXplIiwgImZhRXhwYW5kQXJyb3dzQWx0IiwgImZhTG9jYXRpb25BcnJvdyIsICJmYUNpdHkiLCAiZmFYUmF5IiwgImZhVW1icmVsbGFCZWFjaCIsICJmYUFycm93UmlnaHRUb0JyYWNrZXQiLCAiZmFTaWduSW4iLCAiZmFIZWFkc2V0IiwgImZhU3Bsb3RjaCIsICJmYVVwTG9uZyIsICJmYUxvbmdBcnJvd0FsdFVwIiwgImZhSGV4YWdvbk5vZGVzIiwgImZhSG9zcGl0YWwiLCAiZmFIb3NwaXRhbEFsdCIsICJmYUhvc3BpdGFsV2lkZSIsICJmYVBlcnNvbkhhcmFzc2luZyIsICJmYU1vbmV5QmlsbFRyZW5kVXAiLCAiZmFQZW5SdWxlciIsICJmYVBlbmNpbFJ1bGVyIiwgImZhUmVwZWF0IiwgImZhQm9uZSIsICJmYUZpcmVGbGFtZUN1cnZlZCIsICJmYUZpcmVBbHQiLCAiZmFCdXNTaW1wbGUiLCAiZmFCdXNBbHQiLCAiZmFWZW51c01hcnMiLCAiZmFCbGVuZGVyIiwgImZhVSIsICJmYVNoYXJlIiwgImZhTWFpbEZvcndhcmQiLCAiZmFQaG9uZUZsaXAiLCAiZmFQaG9uZUFsdCIsICJmYVRvaWxldFBvcnRhYmxlIiwgImZhUGVyc29uUHJlZ25hbnQiLCAiZmFMZXNzVGhhbiIsICJmYVN1cGVyc2NyaXB0IiwgImZhQ2lyY2xlU3RvcCIsICJmYVN0b3BDaXJjbGUiLCAiZmFBcnJvd3NVcERvd24iLCAiZmFBcnJvd3NWIiwgImZhUG9vU3Rvcm0iLCAiZmFQb29Cb2x0IiwgImZhVmlkZW9TbGFzaCIsICJmYVNxdWFyZVhtYXJrIiwgImZhVGltZXNTcXVhcmUiLCAiZmFYbWFya1NxdWFyZSIsICJmYUhhbmRIb2xkaW5nRHJvcGxldCIsICJmYUhhbmRIb2xkaW5nV2F0ZXIiLCAiZmFXb25TaWduIiwgImZhS3J3IiwgImZhV29uIiwgImZhT2JqZWN0VW5ncm91cCIsICJmYUNvbW1lbnQiLCAiZmFIaWxsQXZhbGFuY2hlIiwgImZhQXJyb3dzVG9FeWUiLCAiZmFTbm93cGxvdyIsICJmYUNoYXJ0R2FudHQiLCAiZmFWaWRlbyIsICJmYVZpZGVvQ2FtZXJhIiwgImZhQ2hlc3NQYXduIiwgImZhU3luYWdvZ3VlIiwgImZhQnVpbGRpbmdDaXJjbGVDaGVjayIsICJmYUNhbGVuZGFyUGx1cyIsICJmYVdoZWVsY2hhaXJNb3ZlIiwgImZhV2hlZWxjaGFpckFsdCIsICJmYVVzZXJTaGllbGQiLCAiZmFCb2xkIiwgImZhSGVhcnRQdWxzZSIsICJmYUhlYXJ0YmVhdCIsICJmYVNxdWFyZVJvb3RWYXJpYWJsZSIsICJmYVNxdWFyZVJvb3RBbHQiLCAiZmFIYW5kc0J1YmJsZXMiLCAiZmFIYW5kc1dhc2giLCAiZmFNYXJrZXIiLCAiZmFDbGlwYm9hcmQiLCAiZmFQbGFjZU9mV29yc2hpcCIsICJmYUNhbm5hYmlzIiwgImZhUGVvcGxlUm9vZiIsICJmYURpc2Vhc2UiLCAiZmFCb29rQmlibGUiLCAiZmFCaWJsZSIsICJmYUNoZXNzQm9hcmQiLCAiZmFNYXJzIiwgImZhTGFwdG9wIiwgImZhVXNlclhtYXJrIiwgImZhVXNlclRpbWVzIiwgImZhRmxhZ1VzYSIsICJmYUhhbmRNaWRkbGVGaW5nZXIiLCAiZmFNb3J0YXJQZXN0bGUiLCAiZmFIZWFkU2lkZUNvdWdoIiwgImZhUGxhbmVMb2NrIiwgImZhQmF0dGVyeVRocmVlUXVhcnRlcnMiLCAiZmFCYXR0ZXJ5NCIsICJmYUZyYW5jU2lnbiIsICJmYUZpbHRlckNpcmNsZURvbGxhciIsICJmYUZ1bm5lbERvbGxhciIsICJmYUNoZWVzZSIsICJmYUNpcmNsZUgiLCAiZmFIb3NwaXRhbFN5bWJvbCIsICJmYVNjaG9vbCIsICJmYURpY2VGaXZlIiwgImZhVG9ybmFkbyIsICJmYUpldEZpZ2h0ZXIiLCAiZmFGaWdodGVySmV0IiwgImZhVGh1bWJzRG93biIsICJmYUJyb29tIiwgImZhRmlsZUltcG9ydCIsICJmYUFycm93UmlnaHRUb0ZpbGUiLCAiZmFVdGVuc2lscyIsICJmYUN1dGxlcnkiLCAiZmFJZEJhZGdlIiwgImZhU3BpZGVyIiwgImZhTW9iaWxlUmV0cm8iLCAiZmFTaWduc1Bvc3QiLCAiZmFNYXBTaWducyIsICJmYUdyb3VwQXJyb3dzUm90YXRlIiwgImZhQXJyb3dzU3BsaXRVcEFuZExlZnQiLCAiZmFGaWxsRHJpcCIsICJmYVNoaWVsZEhlYXJ0IiwgImZhUGVyc29uU2tpaW5nTm9yZGljIiwgImZhU2tpaW5nTm9yZGljIiwgImZhU3F1YXJlQ2hlY2siLCAiZmFDaGVja1NxdWFyZSIsICJmYUJhdGgiLCAiZmFCYXRodHViIiwgImZhQ2hlc3NCaXNob3AiLCAiZmFQcmVzY3JpcHRpb25Cb3R0bGVNZWRpY2FsIiwgImZhUHJlc2NyaXB0aW9uQm90dGxlQWx0IiwgImZhRHJhd1BvbHlnb24iLCAiZmFWZWN0b3JQb2x5Z29uIiwgImZhSUN1cnNvciIsICJmYUhlYXJ0Q2lyY2xlUGx1cyIsICJmYVNoaWVsZERvZyIsICJmYUdyZWF0ZXJUaGFuRXF1YWwiLCAiZmFFbnZlbG9wZU9wZW4iLCAiZmFNb3VuZCIsICJmYVZvaWNlbWFpbCIsICJmYVZlc3QiLCAiZmFBdWRpb0Rlc2NyaXB0aW9uIiwgImZhVyIsICJmYUV5ZURyb3BwZXIiLCAiZmFFeWVEcm9wcGVyRW1wdHkiLCAiZmFFeWVkcm9wcGVyIiwgImZhQ2lyY2xlWG1hcmsiLCAiZmFUaW1lc0NpcmNsZSIsICJmYVhtYXJrQ2lyY2xlIiwgImZhVHJhaWxlciIsICJmYVR1cmtpc2hMaXJhU2lnbiIsICJmYVRyeSIsICJmYVR1cmtpc2hMaXJhIiwgImZhVm9sY2FubyIsICJmYVdhbmRTcGFya2xlcyIsICJmYU1pY3JvcGhvbmUiLCAiZmFDcm93biIsICJmYVRlbnRBcnJvd1R1cm5MZWZ0IiwgImZhVHJ1Y2tGYXN0IiwgImZhU2hpcHBpbmdGYXN0IiwgImZhVXNlclBlbiIsICJmYVVzZXJFZGl0IiwgImZhVXNlckNsb2NrIiwgImZhU2hvd2VyIiwgImZhU3F1YXJlQ2FyZXRVcCIsICJmYUNhcmV0U3F1YXJlVXAiLCAiZmFNYXBMb2NhdGlvbiIsICJmYU1hcE1hcmtlZCIsICJmYVBlbkZhbmN5IiwgImZhRXVyb1NpZ24iLCAiZmFFdXIiLCAiZmFFdXJvIiwgImZhSG91c2VDaXJjbGVYbWFyayIsICJmYUxpcmFTaWduIiwgImZhWWVuU2lnbiIsICJmYUNueSIsICJmYUpweSIsICJmYVJtYiIsICJmYVllbiIsICJmYUJveE9wZW4iLCAiZmFUcnVja0ZpZWxkIiwgImZhTG9jYXRpb25QaW5Mb2NrIiwgImZhUGVyc29uUHJheWluZyIsICJmYVByYXkiLCAiZmFDbGlwYm9hcmRMaXN0IiwgImZhU2Fja0RvbGxhciIsICJmYU1vdW50YWluU3VuIiwgImZhQXJyb3dVcFdpZGVTaG9ydCIsICJmYVNvcnRBbW91bnRVcCIsICJmYVVzZXJzTGluZSIsICJmYVN0YXJPZkRhdmlkIiwgImZhTm90ZXNNZWRpY2FsIiwgImZhQXVzdHJhbFNpZ24iLCAiZmFDbGlwYm9hcmRVc2VyIiwgImZhRmlsZUltYWdlIiwgImZhU3F1YXJlQ2FyZXRSaWdodCIsICJmYUNhcmV0U3F1YXJlUmlnaHQiLCAiZmFWaWFsIiwgImZhSGVsaWNvcHRlciIsICJmYU1pdHRlbiIsICJmYUdhc1B1bXAiLCAiZmFFbnZlbG9wZUNpcmNsZUNoZWNrIiwgImZhUGVyc29uU2thdGluZyIsICJmYVNrYXRpbmciLCAiZmFTdW4iLCAiZmFCYXNlYmFsbCIsICJmYUJhc2ViYWxsQmFsbCIsICJmYUltYWdlIiwgImZhTm90ZGVmIiwgImZhQmFza2V0YmFsbCIsICJmYUJhc2tldGJhbGxCYWxsIiwgImZhUGVuY2lsIiwgImZhUGVuY2lsQWx0IiwgImZhUGVyc29uV2Fsa2luZ0Fycm93TG9vcExlZnQiLCAiZmFEaWNlU2l4IiwgImZhQW5nbGVzRG93biIsICJmYUFuZ2xlRG91YmxlRG93biIsICJmYVN5cmluZ2UiLCAiZmFXaGVhdEF3biIsICJmYVdoZWF0QWx0IiwgImZhUGxhbmVVcCIsICJmYUFsaWduQ2VudGVyIiwgImZhSG9ja2V5UHVjayIsICJmYUNpcmNsZUFycm93TGVmdCIsICJmYUFycm93Q2lyY2xlTGVmdCIsICJmYVBsdWdDaXJjbGVCb2x0IiwgImZhUmVzdHJvb20iLCAiZmFBbmNob3JMb2NrIiwgImZhVGltZWxpbmUiLCAiZmFMaWdodGJ1bGIiLCAiZmFDaXJjbGVBcnJvd1JpZ2h0IiwgImZhQXJyb3dDaXJjbGVSaWdodCIsICJmYU1hcnNBbmRWZW51cyIsICJmYU5ldHdvcmtXaXJlZCIsICJmYUJ1aWxkaW5nU2hpZWxkIiwgImZhQ29kZSIsICJmYUZlYXRoZXJQb2ludGVkIiwgImZhRmVhdGhlckFsdCIsICJmYUZpbGVDaXJjbGVRdWVzdGlvbiIsICJmYVNpZ25hdHVyZSIsICJmYUVhcnRoQW1lcmljYXMiLCAiZmFFYXJ0aCIsICJmYUVhcnRoQW1lcmljYSIsICJmYUdsb2JlQW1lcmljYXMiLCAiZmFDYXJyb3QiLCAiZmFUZW1wZXJhdHVyZUZ1bGwiLCAiZmFUZW1wZXJhdHVyZTQiLCAiZmFUaGVybW9tZXRlcjQiLCAiZmFUaGVybW9tZXRlckZ1bGwiLCAiZmFUYWJsZUNlbGxzUm93TG9jayIsICJmYUJvbHRMaWdodG5pbmciLCAiZmFDbG91ZFNob3dlcnNXYXRlciIsICJmYUFycm93VXBMb25nIiwgImZhTG9uZ0Fycm93VXAiLCAiZmFBZGRyZXNzQ2FyZCIsICJmYUNvbnRhY3RDYXJkIiwgImZhVmNhcmQiLCAiZmFBbmdsZVJpZ2h0IiwgImZhRmFjZU1laCIsICJmYU1laCIsICJmYUFycm93VXBGcm9tR3JvdW5kV2F0ZXIiLCAiZmFNYXAiLCAiZmFVc2VyUGx1cyIsICJmYVZlbnVzIiwgImZhRGlhZ3JhbVN1Y2Nlc3NvciIsICJmYUhlYWRTaWRlQ291Z2hTbGFzaCIsICJmYURpYWdyYW1Qcm9qZWN0IiwgImZhUHJvamVjdERpYWdyYW0iLCAiZmFUZXJtaW5hbCIsICJmYUhvdXNlRmlyZSIsICJmYU1hc2siLCAiZmFIdXJyaWNhbmUiLCAiZmFFYXJ0aEFmcmljYSIsICJmYUdsb2JlQWZyaWNhIiwgImZhVGh1bWJ0YWNrIiwgImZhVGh1bWJUYWNrIiwgImZhSGFuZFBvaW50RG93biIsICJmYUZhY2VNZWhCbGFuayIsICJmYU1laEJsYW5rIiwgImZhVGVtcGVyYXR1cmVFbXB0eSIsICJmYVRlbXBlcmF0dXJlMCIsICJmYVRoZXJtb21ldGVyMCIsICJmYVRoZXJtb21ldGVyRW1wdHkiLCAiZmFCb3JkZXJOb25lIiwgImZhSGlnaGxpZ2h0ZXIiLCAiZmFNb25leUJpbGxXYXZlIiwgImZhVG9pbGV0UGFwZXJTbGFzaCIsICJmYUZpbGVTaGllbGQiLCAiZmFUZXh0SGVpZ2h0IiwgImZhRmFjZUdyaW5Ub25ndWUiLCAiZmFHcmluVG9uZ3VlIiwgImZhRmlsZVNpZ25hdHVyZSIsICJmYUJ1aWxkaW5nV2hlYXQiLCAiZmFQbHVnQ2lyY2xlTWludXMiLCAiZmFGdXRib2wiLCAiZmFGdXRib2xCYWxsIiwgImZhU29jY2VyQmFsbCIsICJmYUNpcmNsZVBsdXMiLCAiZmFQbHVzQ2lyY2xlIiwgImZhQnJhemlsaWFuUmVhbFNpZ24iLCAiZmFTdGFyQW5kQ3Jlc2NlbnQiLCAiZmFGYWNlU3VycHJpc2UiLCAiZmFTdXJwcmlzZSIsICJmYUhvc3BpdGFsVXNlciIsICJmYUFycm93RG93blVwTG9jayIsICJmYUZvbGRlciIsICJmYUZvbGRlckJsYW5rIiwgImZhSG9sbHlCZXJyeSIsICJmYVZlbnVzRG91YmxlIiwgImZhQ2xpcGJvYXJkUXVlc3Rpb24iLCAiZmFIb3Rkb2ciLCAiZmFBcnJvd1VwRnJvbUJyYWNrZXQiLCAiZmFNaWNyb3Njb3BlIiwgImZhQ2xvdWQiLCAiZmFCYXNlYmFsbEJhdEJhbGwiLCAiZmFDYXJSZWFyIiwgImZhQ2FyQWx0IiwgImZhVGh1bWJ0YWNrU2xhc2giLCAiZmFUaHVtYlRhY2tTbGFzaCIsICJmYVBsdXNNaW51cyIsICJmYUhvdXNlQ2lyY2xlQ2hlY2siLCAiZmFDYWxlbmRhckRheSIsICJmYUNpcmNsZSIsICJmYU1vYmlsZVZpYnJhdGUiLCAiZmFGYWNlR3JpblNxdWludCIsICJmYUdyaW5TcXVpbnQiLCAiZmFVc2Vyc0JldHdlZW5MaW5lcyIsICJmYUhvdXNlTWVkaWNhbENpcmNsZVhtYXJrIiwgImZhVGFibGVMaXN0IiwgImZhVGhMaXN0IiwgImZhRmxhc2tWaWFsIiwgImZhQ2lyY2xlRXhjbGFtYXRpb24iLCAiZmFFeGNsYW1hdGlvbkNpcmNsZSIsICJmYVRheGkiLCAiZmFDYWIiLCAiZmFUZXh0U2xhc2giLCAiZmFSZW1vdmVGb3JtYXQiLCAiZmFQZW9wbGVQdWxsaW5nIiwgImZhQmFja3dhcmQiLCAiZmFDYXJCdXJzdCIsICJmYUNhckNyYXNoIiwgImZhTGluayIsICJmYUNoYWluIiwgImZhQmFja3dhcmRTdGVwIiwgImZhU3RlcEJhY2t3YXJkIiwgImZhWCIsICJmYUNpcmNsZVVzZXIiLCAiZmFVc2VyQ2lyY2xlIiwgImZhUmVjdGFuZ2xlTGlzdCIsICJmYUxpc3RBbHQiLCAiZmFIYW5kIiwgImZhSGFuZFBhcGVyIiwgImZhVmFuU2h1dHRsZSIsICJmYVNodXR0bGVWYW4iLCAiZmFTdGFpcnMiLCAiZmFIb3JzZUhlYWQiLCAiZmFWYXVsdCIsICJmYURydW1TdGVlbHBhbiIsICJmYVRodW1ic1VwIiwgImZhU3RhbXAiLCAiZmFNZW5vcmFoIiwgImZhQ2hpbGRyZW4iLCAiZmFDaGFydExpbmUiLCAiZmFMaW5lQ2hhcnQiLCAiZmFTcXVhcmVFbnZlbG9wZSIsICJmYUVudmVsb3BlU3F1YXJlIiwgImZhQmFuU21va2luZyIsICJmYVNtb2tpbmdCYW4iLCAiZmFUcnVja0Zyb250IiwgImZhQnVpbGRpbmciLCAiZmFCdWxsc2V5ZSIsICJmYUFycm93TGVmdExvbmciLCAiZmFMb25nQXJyb3dMZWZ0IiwgImZhQ2hlc3NSb29rIiwgImZhQmxlbmRlclBob25lIiwgImZhQXJyb3dUdXJuVXAiLCAiZmFMZXZlbFVwIiwgImZhQmljeWNsZSIsICJmYUNpcmNsZUFycm93RG93biIsICJmYUFycm93Q2lyY2xlRG93biIsICJmYUdlYXIiLCAiZmFDb2ciLCAiZmFNYXJzQW5kVmVudXNCdXJzdCIsICJmYU90dGVyIiwgImZhQ2lyY2xlQ2hldnJvbkxlZnQiLCAiZmFDaGV2cm9uQ2lyY2xlTGVmdCIsICJmYUNpcmNsZVF1ZXN0aW9uIiwgImZhUXVlc3Rpb25DaXJjbGUiLCAiZmFXYWxraWVUYWxraWUiLCAiZmFVc2VyR3JvdXAiLCAiZmFVc2VyRnJpZW5kcyIsICJmYUhvdXNlQ2hpbW5leSIsICJmYUhvbWVMZyIsICJmYVJpZ2h0RnJvbUJyYWNrZXQiLCAiZmFTaWduT3V0QWx0IiwgImZhRmlsZSIsICJmYVBsYW5lU2xhc2giLCAiZmFDbG91ZFNob3dlcnNIZWF2eSIsICJmYVBlcnNvbkZhbGxpbmciLCAiZmFUdXJuRG93biIsICJmYUxldmVsRG93bkFsdCIsICJmYVVwUmlnaHRBbmREb3duTGVmdEZyb21DZW50ZXIiLCAiZmFFeHBhbmRBbHQiLCAiZmFVc2VyVGFnIiwgImZhSGFuZFNwYXJrbGVzIiwgImZhQXJyb3dzVG9Eb3QiLCAiZmFGYWNlU2FkQ3J5IiwgImZhU2FkQ3J5IiwgImZhRG9uZ1NpZ24iLCAiZmFQZW9wbGVMaW5lIiwgImZhU3F1YXJlUnNzIiwgImZhUnNzU3F1YXJlIiwgImZhQ2FsZW5kYXJNaW51cyIsICJmYUNoYXJ0RGlhZ3JhbSIsICJmYUZhY2VUaXJlZCIsICJmYVRpcmVkIiwgImZhSGFuZFBvaW50UmlnaHQiLCAiZmFBcnJvd1VwIiwgImZhQ3ViZXNTdGFja2VkIiwgImZhQ2hpbGRDb21iYXRhbnQiLCAiZmFDaGlsZFJpZmxlIiwgImZhVmVzdFBhdGNoZXMiLCAiZmFNYXJ0aW5pR2xhc3NFbXB0eSIsICJmYUdsYXNzTWFydGluaSIsICJmYU1hZ25ldCIsICJmYVJvYWRCYXJyaWVyIiwgImZhQ29tcGFzc0RyYWZ0aW5nIiwgImZhRHJhZnRpbmdDb21wYXNzIiwgImZhU3F1YXJlUGVyc29uQ29uZmluZWQiLCAiZmFQbGF0ZVdoZWF0IiwgImZhU2lnbkhhbmdpbmciLCAiZmFTaWduIiwgImZhQ2FyQmF0dGVyeSIsICJmYUJhdHRlcnlDYXIiLCAiZmFTaGlydCIsICJmYVRTaGlydCIsICJmYVRzaGlydCIsICJmYVBhcmFncmFwaCIsICJmYUVudmVsb3Blc0J1bGsiLCAiZmFNYWlsQnVsayIsICJmYUd1aXRhciIsICJmYVN1aXRjYXNlIiwgImZhQ2lyY2xlVXAiLCAiZmFBcnJvd0FsdENpcmNsZVVwIiwgImZhRiIsICJmYVhtYXJrc0xpbmVzIiwgImZhRWFydGhPY2VhbmlhIiwgImZhR2xvYmVPY2VhbmlhIiwgImZhQ29tbWVudFNsYXNoIiwgImZhUGxheSIsICJmYVZpYWxDaXJjbGVDaGVjayIsICJmYUJyaWRnZUNpcmNsZUNoZWNrIiwgImZhQ2VkaVNpZ24iLCAiZmFQdXp6bGVQaWVjZSIsICJmYUhlbG1ldFVuIiwgImZhR2xhc3NXYXRlciIsICJmYUhlYXJ0Q2lyY2xlQm9sdCIsICJmYVB1bXBTb2FwIiwgImZhSGFuZFNjaXNzb3JzIiwgImZhRG9sbHkiLCAiZmFEb2xseUJveCIsICJmYVBhcGVyY2xpcCIsICJmYURlbW9jcmF0IiwgImZhU3F1YXJlQXJyb3dVcFJpZ2h0IiwgImZhRXh0ZXJuYWxMaW5rU3F1YXJlIiwgImZhRmVycnkiLCAiZmFNb3NxdWl0byIsICJmYUJ1aWxkaW5nQ2lyY2xlQXJyb3dSaWdodCIsICJmYUxlZnRSaWdodCIsICJmYUFycm93c0FsdEgiLCAiZmFWaXJ1cyIsICJmYUdlbSIsICJmYVRvaWxldCIsICJmYVNpbmdsZVF1b3RlTGVmdCIsICJmYU1vbmV5QmlsbHMiLCAiZmFUYWJsZXRCdXR0b24iLCAiZmFSZWN0YW5nbGVYbWFyayIsICJmYVJlY3RhbmdsZVRpbWVzIiwgImZhVGltZXNSZWN0YW5nbGUiLCAiZmFXaW5kb3dDbG9zZSIsICJmYVdyZW5jaCIsICJmYVRyYXNoQ2FuIiwgImZhVHJhc2hBbHQiLCAiZmFUYWJsZUNlbGxzIiwgImZhVGgiLCAiZmFSaWJib24iLCAiZmFMYW5kbWFya0ZsYWciLCAiZmFVcERvd25MZWZ0UmlnaHQiLCAiZmFBcnJvd3NBbHQiLCAiZmFDYXJTaWRlIiwgImZhVHJhc2hBcnJvd1VwIiwgImZhVHJhc2hSZXN0b3JlIiwgImZhTGlmZVJpbmciLCAiZmFDb3B5cmlnaHQiLCAiZmFGaWxlUHJlc2NyaXB0aW9uIiwgImZhRXJhc2VyIiwgImZhSG91cmdsYXNzU3RhcnQiLCAiZmFIb3VyZ2xhc3MxIiwgImZhQ2lyY2xlTGVmdCIsICJmYUFycm93QWx0Q2lyY2xlTGVmdCIsICJmYUNydXplaXJvU2lnbiIsICJmYVNtb2tpbmciLCAiZmFTcXVhcmVQb2xsVmVydGljYWwiLCAiZmFQb2xsIiwgImZhUGVyc29uQ2lyY2xlTWludXMiLCAiZmFCaW9oYXphcmQiLCAiZmFCZWxsQ29uY2llcmdlIiwgImZhQ29uY2llcmdlQmVsbCIsICJmYVJ1bGVySG9yaXpvbnRhbCIsICJmYUhvcnNlIiwgImZhQ2FsZW5kYXIiLCAiZmFIYW5kc0hvbGRpbmdDaGlsZCIsICJmYUl0YWxpYyIsICJmYUtoYW5kYSIsICJmYUZhY2VGcm93bk9wZW4iLCAiZmFGcm93bk9wZW4iLCAiZmFDaGVjayIsICJmYUZpbmdlcnByaW50IiwgImZhQ2hhcmdpbmdTdGF0aW9uIiwgImZhVXNlckxvY2siLCAiZmFNb2JpbGVTY3JlZW5CdXR0b24iLCAiZmFNb2JpbGVBbHQiLCAiZmFBbmNob3JDaXJjbGVDaGVjayIsICJmYVBlcnNvbldhbGtpbmdXaXRoQ2FuZSIsICJmYUJsaW5kIiwgImZhRmlsZVdhdmVmb3JtIiwgImZhRmlsZU1lZGljYWxBbHQiLCAiZmFIb3VzZUNyYWNrIiwgImZhSGF0V2l6YXJkIiwgImZhVXNlckRvY3RvciIsICJmYVVzZXJNZCIsICJmYUNoYXJ0QmFyIiwgImZhQmFyQ2hhcnQiLCAiZmFTcHJheUNhblNwYXJrbGVzIiwgImZhQWlyRnJlc2hlbmVyIiwgImZhQmFodFNpZ24iLCAiZmFUZW1wZXJhdHVyZUFycm93VXAiLCAiZmFUZW1wZXJhdHVyZVVwIiwgImZhV2ViQXdlc29tZSIsICJmYU5vbkJpbmFyeSIsICJmYU4iLCAiZmFBcnJvd3NVcERvd25MZWZ0UmlnaHQiLCAiZmFBcnJvd3MiLCAiZmFIb3VzZSIsICJmYUhvbWUiLCAiZmFIb21lQWx0IiwgImZhSG9tZUxnQWx0IiwgImZhU3Bpbm5lciIsICJmYUdhdmVsIiwgImZhTGVnYWwiLCAiZmFUaWNrZXRTaW1wbGUiLCAiZmFUaWNrZXRBbHQiLCAiZmFEb3ZlIiwgImZhVGFycERyb3BsZXQiLCAiZmFUcmVlQ2l0eSIsICJmYVR1cm5VcCIsICJmYUxldmVsVXBBbHQiLCAiZmFUZW1wZXJhdHVyZVF1YXJ0ZXIiLCAiZmFUZW1wZXJhdHVyZTEiLCAiZmFUaGVybW9tZXRlcjEiLCAiZmFUaGVybW9tZXRlclF1YXJ0ZXIiLCAiZmFTbGlkZXJzIiwgImZhU2xpZGVyc0giLCAiZmFNb3NxdWUiLCAiZmFIIiwgImZhSW5mbyIsICJmYVBlcnNvbldhbGtpbmciLCAiZmFXYWxraW5nIiwgImZhQXJyb3dUdXJuRG93biIsICJmYUxldmVsRG93biIsICJmYVJvYWQiLCAiZmFTcGlyYWwiLCAiZmFGYWNlRnJvd24iLCAiZmFGcm93biIsICJmYVdpbmVHbGFzc0VtcHR5IiwgImZhV2luZUdsYXNzQWx0IiwgImZhQ2xhcHBlcmJvYXJkIiwgImZhRm9yd2FyZFN0ZXAiLCAiZmFTdGVwRm9yd2FyZCIsICJmYVNxdWFyZVVwUmlnaHQiLCAiZmFFeHRlcm5hbExpbmtTcXVhcmVBbHQiLCAiZmFCb29rSm91cm5hbFdoaWxscyIsICJmYUpvdXJuYWxXaGlsbHMiLCAiZmFDaGFtcGFnbmVHbGFzc2VzIiwgImZhR2xhc3NDaGVlcnMiLCAiZmFEdW1wc3RlciIsICJmYUhlYXJ0Q2lyY2xlWG1hcmsiLCAiZmFDb21wdXRlciIsICJmYVdhbmRNYWdpYyIsICJmYU1hZ2ljIiwgImZhQnJhaW4iLCAiZmFCcmllZmNhc2VNZWRpY2FsIiwgImZhSG91c2VNZWRpY2FsQ2lyY2xlRXhjbGFtYXRpb24iLCAiZmFDb2RlQ29tbWl0IiwgImZhUGVyc29uQnJlYXN0ZmVlZGluZyIsICJmYVBlcnNvblJheXMiLCAiZmFNYW5hdFNpZ24iLCAiZmFTb3J0IiwgImZhVW5zb3J0ZWQiLCAiZmFDaXJjbGVSYWRpYXRpb24iLCAiZmFSYWRpYXRpb25BbHQiLCAiZmFMYXB0b3BDb2RlIiwgImZhU2luayIsICJmYUFycm93VXBGcm9tV2F0ZXJQdW1wIiwgImZhTWljcm9waG9uZUxpbmVzU2xhc2giLCAiZmFNaWNyb3Bob25lQWx0U2xhc2giLCAiZmFTZXJ2ZXIiLCAiZmFVc2VyIiwgImZhVXNlckFsdCIsICJmYVVzZXJMYXJnZSIsICJmYVNub3dmbGFrZSIsICJmYVNrdWxsQ3Jvc3Nib25lcyIsICJmYVBlc29TaWduIiwgImZhV2luZUdsYXNzIiwgImZhVGVtcGVyYXR1cmVIYWxmIiwgImZhVGVtcGVyYXR1cmUyIiwgImZhVGhlcm1vbWV0ZXIyIiwgImZhVGhlcm1vbWV0ZXJIYWxmIiwgImZhVGlja2V0IiwgImZhV2hlYXRBd25DaXJjbGVFeGNsYW1hdGlvbiIsICJmYUFycm93c1R1cm5SaWdodCIsICJmYUNhbmR5Q2FuZSIsICJmYVdoZWVsY2hhaXIiLCAiZmFTcGVsbENoZWNrIiwgImZhVm9sdW1lT2ZmIiwgImZhTHVuZ3MiLCAiZmFCb29rbWFyayIsICJmYUJhcmNvZGUiLCAiZmFMaXN0T2wiLCAiZmFMaXN0MTIiLCAiZmFMaXN0TnVtZXJpYyIsICJmYUZpbGVDaXJjbGVYbWFyayIsICJmYUN1YmUiLCAiZmFUYXBlIiwgImZhQm9tYiIsICJmYVNjYWxlVW5iYWxhbmNlZCIsICJmYUJhbGFuY2VTY2FsZUxlZnQiLCAiZmFTcXVhcmVDYXJldExlZnQiLCAiZmFDYXJldFNxdWFyZUxlZnQiLCAiZmFSdWxlciIsICJmYUkiLCAiZmFWb2x1bWVYbWFyayIsICJmYVZvbHVtZU11dGUiLCAiZmFWb2x1bWVUaW1lcyIsICJmYUFyY2h3YXkiLCAiZmFQZXJzb25EaWdnaW5nIiwgImZhRGlnZ2luZyIsICJmYUdhdWdlSGlnaCIsICJmYVRhY2hvbWV0ZXJBbHQiLCAiZmFUYWNob21ldGVyQWx0RmFzdCIsICJmYUdlbmRlcmxlc3MiLCAiZmFDbG91ZFN1biIsICJmYUFycm93UmlnaHQiLCAiZmFIYW5kc2hha2UiLCAiZmFIYW5kc2hha2VBbHQiLCAiZmFIYW5kc2hha2VTaW1wbGUiLCAiZmFQZXJzb25Ta2lpbmciLCAiZmFTa2lpbmciLCAiZmFCcmlkZ2VXYXRlciIsICJmYUJ1aWxkaW5nTmdvIiwgImZhSWdsb28iLCAiZmFDaXJjbGVEb2xsYXJUb1Nsb3QiLCAiZmFEb25hdGUiLCAiZmFZIiwgImZhRmFjZVNtaWxlV2luayIsICJmYVNtaWxlV2luayIsICJmYURpY2VGb3VyIiwgImZhRmFjZUdyaW5TcXVpbnRUZWFycyIsICJmYUdyaW5TcXVpbnRUZWFycyIsICJmYUZpbGVBdWRpbyIsICJmYUFycm93c0Rvd25Ub0xpbmUiLCAiZmFHIiwgImZhVmloYXJhIiwgImZhRmxhZ0NoZWNrZXJlZCIsICJmYUdhdWdlU2ltcGxlIiwgImZhR2F1Z2VTaW1wbGVNZWQiLCAiZmFUYWNob21ldGVyQXZlcmFnZSIsICJmYVJpZ2h0TGVmdCIsICJmYUV4Y2hhbmdlQWx0IiwgImZhUGlsbHMiLCAiZmFFeHBsb3Npb24iLCAiZmFBcnJvd3NEb3duVG9QZW9wbGUiLCAiZmFVc2Vyc1ZpZXdmaW5kZXIiLCAiZmFDYXJPbiIsICJmYVNsZWlnaCIsICJmYUR1bWJiZWxsIiwgImZhQmFieUNhcnJpYWdlIiwgImZhQ2FycmlhZ2VCYWJ5IiwgImZhS2l3aUJpcmQiLCAiZmFDYWxlbmRhclhtYXJrIiwgImZhQ2FsZW5kYXJUaW1lcyIsICJmYUNpcmNsZURvd24iLCAiZmFBcnJvd0FsdENpcmNsZURvd24iLCAiZmFGaWxlTWVkaWNhbCIsICJmYVhtYXJrIiwgImZhQ2xvc2UiLCAiZmFNdWx0aXBseSIsICJmYVJlbW92ZSIsICJmYVRpbWVzIiwgImZhU2hhcGVzIiwgImZhVHJpYW5nbGVDaXJjbGVTcXVhcmUiLCAiZmFEaWNlT25lIiwgImZhTG9ja09wZW4iLCAiZmFQZXBwZXJIb3QiLCAiZmFEcm9wbGV0U2xhc2giLCAiZmFUaW50U2xhc2giLCAiZmFEcm9wbGV0IiwgImZhVGludCIsICJmYUZpbGVMaW5lcyIsICJmYUZpbGVBbHQiLCAiZmFGaWxlVGV4dCIsICJmYUNvbW1lbnRzRG9sbGFyIiwgImZhTWFnbmlmeWluZ0dsYXNzTG9jYXRpb24iLCAiZmFTZWFyY2hMb2NhdGlvbiIsICJmYUZpbGVJbnZvaWNlIiwgImZhUGVudGFnb24iLCAiZmFSZXB1YmxpY2FuIiwgImZhU2hvcCIsICJmYVN0b3JlQWx0IiwgImZhRmlsbSIsICJmYUZpbG1BbHQiLCAiZmFGaWxtU2ltcGxlIiwgImZhQnVpbGRpbmdDaXJjbGVYbWFyayIsICJmYUNvbW1lbnRzIiwgImZhVGFncyIsICJmYUd1biIsICJmYUNpcmNsZUNoZWNrIiwgImZhQ2hlY2tDaXJjbGUiLCAiZmFJZENhcmRDbGlwIiwgImZhSWRDYXJkQWx0IiwgImZhTW9vbiIsICJmYU9pbFdlbGwiLCAiZmFUYWNob2dyYXBoRGlnaXRhbCIsICJmYURpZ2l0YWxUYWNob2dyYXBoIiwgImZhVGFibGV0IiwgImZhVGFibGV0QW5kcm9pZCIsICJmYVJ1YmxlU2lnbiIsICJmYVJvdWJsZSIsICJmYVJ1YiIsICJmYVJ1YmxlIiwgImZhQ2xvc2VkQ2FwdGlvbmluZyIsICJmYVBlbiIsICJmYVBsYW5lIiwgImZhSW1hZ2VzIiwgImZhTW9iaWxlU2NyZWVuIiwgImZhTW9iaWxlQW5kcm9pZEFsdCIsICJmYUd1YXJhbmlTaWduIiwgImZhQmFnU2hvcHBpbmciLCAiZmFTaG9wcGluZ0JhZyIsICJmYUNpcmNsZVJpZ2h0IiwgImZhQXJyb3dBbHRDaXJjbGVSaWdodCIsICJmYVBob25lVm9sdW1lIiwgImZhVm9sdW1lQ29udHJvbFBob25lIiwgImZhQ3ViZXMiLCAiZmFQaG9uZSIsICJmYVRvcmlpR2F0ZSIsICJmYUJhY29uIiwgImZhUGVyc29uRmFsbGluZ0J1cnN0IiwgImZhUXVvdGVSaWdodCIsICJmYVF1b3RlUmlnaHRBbHQiLCAiZmFIb3VzZU1lZGljYWxGbGFnIiwgImZhUHJlc2NyaXB0aW9uIiwgImZhRGljZVRocmVlIiwgImZhQnVpbGRpbmdMb2NrIiwgImZhSWRDYXJkIiwgImZhRHJpdmVyc0xpY2Vuc2UiLCAiZmFDaXJjbGVQbGF5IiwgImZhUGxheUNpcmNsZSIsICJmYUZhY2VMYXVnaEJlYW0iLCAiZmFMYXVnaEJlYW0iLCAiZmFMZWFmIiwgImZhSG91c2VDaGltbmV5VXNlciIsICJmYVJvdGF0ZVJpZ2h0IiwgImZhUmVkb0FsdCIsICJmYVJvdGF0ZUZvcndhcmQiLCAiZmFUb290aCIsICJmYUhvdXNlQ2hpbW5leVdpbmRvdyIsICJmYU1vdG9yY3ljbGUiLCAiZmFCYWNrd2FyZEZhc3QiLCAiZmFGYXN0QmFja3dhcmQiLCAiZmFBZGRyZXNzQm9vayIsICJmYUNvbnRhY3RCb29rIiwgImZhU2FpbGJvYXQiLCAiZmFCb29rQm9va21hcmsiLCAiZmFNYWduaWZ5aW5nR2xhc3NBcnJvd1JpZ2h0IiwgImZhTWljcm9waG9uZUxpbmVzIiwgImZhTWljcm9waG9uZUFsdCIsICJmYVJlcGx5QWxsIiwgImZhTWFpbFJlcGx5QWxsIiwgImZhVW5pdmVyc2FsQWNjZXNzIiwgImZhVG9pbGV0UGFwZXIiLCAiZmFUb2lsZXRQYXBlckFsdCIsICJmYVRvaWxldFBhcGVyQmxhbmsiLCAiZmFWckNhcmRib2FyZCIsICJmYVBpenphU2xpY2UiLCAiZmFTcHJheUNhbiIsICJmYVZvbHVtZUxvdyIsICJmYVZvbHVtZURvd24iLCAiZmFDcm9zcyIsICJmYVBlcnNvbiIsICJmYU1hbGUiLCAiZmFIb3VyZ2xhc3MiLCAiZmFIb3VyZ2xhc3NFbXB0eSIsICJmYUZpc2giLCAiZmFEcnVtc3RpY2tCaXRlIiwgImZhQ2hhcnRTaW1wbGUiLCAiZmFBdG9tIiwgImZhUCIsICJmYUpldEZpZ2h0ZXJVcCIsICJmYVBsdWdDaXJjbGVYbWFyayIsICJmYVNoZWV0UGxhc3RpYyIsICJmYVYiLCAiZmFMaXN0IiwgImZhTGlzdFNxdWFyZXMiLCAiZmFTb2xhclBhbmVsIiwgImZhTGFuZE1pbmVPbiIsICJmYUhlYWRwaG9uZXMiLCAiZmFIZWFkcGhvbmVzQWx0IiwgImZhSGVhZHBob25lc1NpbXBsZSIsICJmYUJ1cyIsICJmYUZpbGVQb3dlcnBvaW50IiwgImZhUXVvdGVMZWZ0IiwgImZhUXVvdGVMZWZ0QWx0IiwgImZhQ2hldnJvbkRvd24iLCAiZmFFYXJ0aEFzaWEiLCAiZmFHbG9iZUFzaWEiLCAiZmFDZW50U2lnbiIsICJmYVNoaWVsZENhdCIsICJmYVNjaG9vbENpcmNsZUNoZWNrIiwgImZhTWFydGluaUdsYXNzIiwgImZhR2xhc3NNYXJ0aW5pQWx0IiwgImZhUGx1ZyIsICJmYVBhbm9yYW1hIiwgImZhQ2xvY2tSb3RhdGVMZWZ0IiwgImZhSGlzdG9yeSIsICJmYUphcldoZWF0IiwgImZhQ2xvdWRBcnJvd0Rvd24iLCAiZmFDbG91ZERvd25sb2FkIiwgImZhQ2xvdWREb3dubG9hZEFsdCIsICJmYVRydWNrUmFtcEJveCIsICJmYVRydWNrTG9hZGluZyIsICJmYUFuZ2xlRG93biIsICJmYVBsdWdDaXJjbGVDaGVjayIsICJmYVdpbmRvd01heGltaXplIiwgImZhSGFuZHNIb2xkaW5nQ2lyY2xlIiwgImZhTG9jYXRpb25QaW4iLCAiZmFNYXBNYXJrZXIiLCAiZmFCb3dsaW5nQmFsbCIsICJmYUNhcnRGbGF0YmVkIiwgImZhRG9sbHlGbGF0YmVkIiwgImZhSG91c2VVc2VyIiwgImZhSG9tZVVzZXIiLCAiZmFHaG9zdCIsICJmYUNvbW1lbnROb2RlcyIsICJmYVBlcnNvbkFycm93RG93blRvTGluZSIsICJmYVBsdWdDaXJjbGVQbHVzIiwgImZhUGVyc29uU3dpbW1pbmciLCAiZmFTd2ltbWVyIiwgImZhQ29tbWVudERvdHMiLCAiZmFDb21tZW50aW5nIiwgImZhQ2hhcnRQaWUiLCAiZmFQaWVDaGFydCIsICJmYUZyb2ciLCAiZmFXaW5lQm90dGxlIiwgImZhSW5ib3giLCAiZmFTcXVhcmVIIiwgImZhSFNxdWFyZSIsICJmYUhvdXNlTWVkaWNhbCIsICJmYUNpcmNsZUNoZXZyb25SaWdodCIsICJmYUNoZXZyb25DaXJjbGVSaWdodCIsICJmYUZpbGVDc3YiLCAiZmFIYXRDb3dib3kiLCAiZmFGYWNlR3JpblRvbmd1ZVdpbmsiLCAiZmFHcmluVG9uZ3VlV2luayIsICJmYUwiLCAiZmFBcnJvd0Rvd25TaG9ydFdpZGUiLCAiZmFTb3J0QW1vdW50RGVzYyIsICJmYVNvcnRBbW91bnREb3duQWx0IiwgImZhSG91cmdsYXNzSGFsZiIsICJmYUhvdXJnbGFzczIiLCAiZmFTcG9vbiIsICJmYVV0ZW5zaWxTcG9vbiIsICJmYUNyZWRpdENhcmQiLCAiZmFDcmVkaXRDYXJkQWx0IiwgImZhRmlsZUludm9pY2VEb2xsYXIiLCAiZmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nIiwgImZhUGFzdGFmYXJpYW5pc20iLCAiZmFNYXJ0aW5pR2xhc3NDaXRydXMiLCAiZmFDb2NrdGFpbCIsICJmYUJ1bGxob3JuIiwgImZhQm94VGlzc3VlIiwgImZhTWF0dHJlc3NQaWxsb3ciLCAiZmFDaGV2cm9uTGVmdCIsICJmYUNsb3VkTW9vblJhaW4iLCAiZmFBcnJvd0Rvd24xOSIsICJmYVNvcnROdW1lcmljQXNjIiwgImZhU29ydE51bWVyaWNEb3duIiwgImZhSGFuZFNwb2NrIiwgImZhV2FuZE1hZ2ljU3BhcmtsZXMiLCAiZmFNYWdpY1dhbmRTcGFya2xlcyIsICJmYUNvbW1lbnRNZWRpY2FsIiwgImZhQmVsbFNsYXNoIiwgImZhSGFuZHNoYWtlU2xhc2giLCAiZmFIYW5kc2hha2VBbHRTbGFzaCIsICJmYUhhbmRzaGFrZVNpbXBsZVNsYXNoIiwgImZhQm90dGxlV2F0ZXIiLCAiZmFEaWNlRDIwIiwgImZhQXJyb3dEb3duWkEiLCAiZmFTb3J0QWxwaGFEZXNjIiwgImZhU29ydEFscGhhRG93bkFsdCIsICJmYUJydXNoIiwgImZhUGVyc29uV2Fsa2luZ0Rhc2hlZExpbmVBcnJvd1JpZ2h0IiwgImZhQXJyb3dVcFNob3J0V2lkZSIsICJmYVNvcnRBbW91bnRVcEFsdCIsICJmYUdyaXBWZXJ0aWNhbCIsICJmYUdyaWRWZXJ0aWNhbCIsICJmYUNhclR1bm5lbCIsICJmYUNoYXJ0Q29sdW1uIiwgImZhVHJ1Y2tBcnJvd1JpZ2h0IiwgImZhVHYiLCAiZmFUZWxldmlzaW9uIiwgImZhVHZBbHQiLCAiZmFTZWN0aW9uIiwgImZhUGVhY2UiLCAiZmFTdGFyIiwgImZhRmxhZyIsICJmYVRyaWFuZ2xlRXhjbGFtYXRpb24iLCAiZmFFeGNsYW1hdGlvblRyaWFuZ2xlIiwgImZhV2FybmluZyIsICJmYVNjaG9vbENpcmNsZUV4Y2xhbWF0aW9uIiwgImZhR3JhZHVhdGlvbkNhcCIsICJmYU1vcnRhckJvYXJkIiwgImZhU3RvcmUiLCAiZmFVc2VyQXN0cm9uYXV0IiwgImZhQnVpbGRpbmdGbGFnIiwgImZhTXVnU2F1Y2VyIiwgImZhQ29mZmVlIiwgImZhTGVtb24iLCAiZmFDYXJhdmFuIiwgImZhUSIsICJmYUxvY2siLCAiZmFQYWludFJvbGxlciIsICJmYVZvbHVtZUhpZ2giLCAiZmFWb2x1bWVVcCIsICJmYUZvbGRlclBsdXMiLCAiZmFNZXJjdXJ5IiwgImZhQW5jaG9yIiwgImZhU3F1YXJlUGFya2luZyIsICJmYVBhcmtpbmciLCAiZmFIYW51a2lhaCIsICJmYVJvdGF0ZUxlZnQiLCAiZmFSb3RhdGVCYWNrIiwgImZhUm90YXRlQmFja3dhcmQiLCAiZmFVbmRvQWx0IiwgImZhSGVhZGluZyIsICJmYUhlYWRlciIsICJmYUNyb3NzaGFpcnMiLCAiZmFDaXJjbGVOb2RlcyIsICJmYVdpbmRvd1Jlc3RvcmUiLCAiZmFSIiwgImZhRmlsdGVyQ2lyY2xlWG1hcmsiLCAiZmFHb3B1cmFtIiwgImZhSGVhcnRDaXJjbGVNaW51cyIsICJmYVN0YXJPZkxpZmUiLCAiZmFCdXNpbmVzc1RpbWUiLCAiZmFCcmllZmNhc2VDbG9jayIsICJmYUZpcmVFeHRpbmd1aXNoZXIiLCAiZmFBcnJvd0Rvd25Mb25nIiwgImZhTG9uZ0Fycm93RG93biIsICJmYVVzZXJNaW51cyIsICJmYU1vbmV5Q2hlY2siLCAiZmFIb3VzZUxhcHRvcCIsICJmYUxhcHRvcEhvdXNlIiwgImZhRG93bmxvYWQiLCAiZmFDb3VjaCIsICJmYVJvYWRMb2NrIiwgImZhU2Npc3NvcnMiLCAiZmFDdXQiLCAiZmFCdWciLCAiZmFBcnJvd1JpZ2h0RnJvbUJyYWNrZXQiLCAiZmFTaWduT3V0IiwgImZhSGFuZEhvbGRpbmdIYW5kIiwgImZhU3Ryb29wd2FmZWwiLCAiZmFDaGlsZCIsICJmYUljZUNyZWFtIiwgImZhQ29tcHV0ZXJNb3VzZSIsICJmYU1vdXNlIiwgImZhRmF1Y2V0IiwgImZhQXdhcmQiLCAiZmFQZXJzb25Ecm93bmluZyIsICJmYUNhbWVyYVJvdGF0ZSIsICJmYUZhY2VHcmluSGVhcnRzIiwgImZhR3JpbkhlYXJ0cyIsICJmYUZpbGVGcmFnbWVudCIsICJmYVBlcnNvbk1pbGl0YXJ5UmlmbGUiLCAiZmFUb2dnbGVPbiIsICJmYUx1bmdzVmlydXMiLCAiZmFUYWJsZVRlbm5pc1BhZGRsZUJhbGwiLCAiZmFQaW5nUG9uZ1BhZGRsZUJhbGwiLCAiZmFUYWJsZVRlbm5pcyIsICJmYUJveGVzUGFja2luZyIsICJmYVBlcnNvbkNoYWxrYm9hcmQiLCAiZmFEaWNlVHdvIiwgImZhQXJyb3dSaWdodEFycm93TGVmdCIsICJmYUV4Y2hhbmdlIiwgImZhRm9vdGJhbGwiLCAiZmFGb290YmFsbEJhbGwiLCAiZmFUcnVja01vbnN0ZXIiLCAiZmFBc3RlcmlzayIsICJmYUJhdHRlcnlGdWxsIiwgImZhQmF0dGVyeSIsICJmYUJhdHRlcnk1IiwgImZhQ2hpbGREcmVzcyIsICJmYUZhY2VLaXNzQmVhbSIsICJmYUtpc3NCZWFtIiwgImZhVHJhc2hDYW5BcnJvd1VwIiwgImZhVHJhc2hSZXN0b3JlQWx0IiwgImZhRm9udCIsICJmYUJvcmVIb2xlIiwgImZhVmlydXNDb3ZpZCIsICJmYUZpbGVQZGYiLCAiZmFMYW5ndWFnZSIsICJmYVNoaWVsZEhhbHZlZCIsICJmYVNoaWVsZEFsdCIsICJmYUNhcmV0VXAiLCAiZmFGaWxlUGVuIiwgImZhRmlsZUVkaXQiLCAiZmFQZXJzb25CaWtpbmciLCAiZmFCaWtpbmciLCAiZmFCb29rT3BlblJlYWRlciIsICJmYUJvb2tSZWFkZXIiLCAiZmFHbGFzc1dhdGVyRHJvcGxldCIsICJmYVRvd2VyQnJvYWRjYXN0IiwgImZhQnJvYWRjYXN0VG93ZXIiLCAiZmFNaW5pbWl6ZSIsICJmYUNvbXByZXNzQXJyb3dzQWx0IiwgImZhQXJyb3dSaWdodFRvQ2l0eSIsICJmYUxhcHRvcE1lZGljYWwiLCAiZmFCcmVhZFNsaWNlIiwgImZhR2xvYmUiLCAiZmFGb2xkZXJNaW51cyIsICJmYU1hc2tGYWNlIiwgImZhQm9uZyIsICJmYVJvYWRCcmlkZ2UiLCAiZmFBcnJvd1VwOTEiLCAiZmFTb3J0TnVtZXJpY1VwQWx0IiwgImZhTW91bnRhaW5DaXR5IiwgImZhQXJyb3dEb3duOTEiLCAiZmFTb3J0TnVtZXJpY0Rlc2MiLCAiZmFTb3J0TnVtZXJpY0Rvd25BbHQiLCAiZmFGYWNlR3JpbldpZGUiLCAiZmFHcmluQWx0IiwgImZhUG9vcCIsICJmYURoYXJtYWNoYWtyYSIsICJmYUJhdHRlcnlRdWFydGVyIiwgImZhQmF0dGVyeTIiLCAiZmFBbmtoIiwgImZhRGlhbW9uZCIsICJmYVN1YnNjcmlwdCIsICJmYVJ1cGVlU2lnbiIsICJmYVJ1cGVlIiwgImZhUGVyc29uUmlmbGUiLCAiZmFEIiwgImZhU3F1YXJlTmZpIiwgImZhVGVldGgiLCAiZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXIiLCAiZmFTZWFyY2hEb2xsYXIiLCAiZmFEdW1wc3RlckZpcmUiLCAiZmFVcGxvYWQiLCAiZmFVc2VyU2xhc2giLCAiZmFVc2VyQWx0U2xhc2giLCAiZmFVc2VyTGFyZ2VTbGFzaCIsICJmYUFycm93TGVmdCIsICJmYVZpYWxWaXJ1cyIsICJmYUNoZWNrRG91YmxlIiwgImZhUGF3IiwgImZhSGVsbWV0U2FmZXR5IiwgImZhSGFyZEhhdCIsICJmYUhhdEhhcmQiLCAiZmFFIiwgImZhRmFjZUxhdWdoU3F1aW50IiwgImZhTGF1Z2hTcXVpbnQiLCAiZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlciIsICJmYUNvbXByZXNzQWx0IiwgImZhR2lmdHMiLCAiZmFCZWQiLCAiZmFNb25leUJpbGxUcmFuc2ZlciIsICJmYVBlcnNvblJ1bm5pbmciLCAiZmFSdW5uaW5nIiwgImZhQ2lyY2xlQ2hldnJvbkRvd24iLCAiZmFDaGV2cm9uQ2lyY2xlRG93biIsICJmYVVzZXJOdXJzZSIsICJmYUZhY2VLaXNzV2lua0hlYXJ0IiwgImZhS2lzc1dpbmtIZWFydCIsICJmYUZpbGwiLCAiZmFNb25leUJpbGwxV2F2ZSIsICJmYU1vbmV5QmlsbFdhdmVBbHQiLCAiZmFMYW5kbWFyayIsICJmYU11c2ljIiwgImZhQm9va01lZGljYWwiLCAiZmFTaHVmZmxlIiwgImZhUmFuZG9tIiwgImZhVW5kZXJsaW5lIiwgImZhQnVpbGRpbmdVc2VyIiwgImZhUm9ib3QiLCAiZmFQbHVzIiwgImZhQWRkIiwgImZhQ29weSIsICJmYUNoZXNzS2luZyIsICJmYUhvdXNlRmxvb2RXYXRlciIsICJmYUJpdGNvaW5TaWduIiwgImZhQm94IiwgImZhU3F1YXJlUGx1cyIsICJmYVBsdXNTcXVhcmUiLCAiZmFBcnJvd3NMZWZ0UmlnaHQiLCAiZmFBcnJvd3NIIiwgImZhRmFuIiwgImZhQ3JvdyIsICJmYUZpbGVDaXJjbGVDaGVjayIsICJmYUxpbmtTbGFzaCIsICJmYUNoYWluQnJva2VuIiwgImZhQ2hhaW5TbGFzaCIsICJmYVVubGluayIsICJmYUFycm93Um90YXRlUmlnaHQiLCAiZmFBcnJvd1JpZ2h0Um90YXRlIiwgImZhQXJyb3dSb3RhdGVGb3J3YXJkIiwgImZhUmVkbyIsICJmYVBlbkNsaXAiLCAiZmFQZW5BbHQiLCAiZmFEb29yQ2xvc2VkIiwgImZhQXJyb3dEb3duV2lkZVNob3J0IiwgImZhU29ydEFtb3VudEFzYyIsICJmYVNvcnRBbW91bnREb3duIiwgImZhQ2FyZXREb3duIiwgImZhSyIsICJmYUNoZWNrVG9TbG90IiwgImZhVm90ZVllYSIsICJmYUZpc2hGaW5zIiwgImZhQ29tcHJlc3MiLCAiZmFBcnJvd1VwQVoiLCAiZmFTb3J0QWxwaGFVcCIsICJmYVVzZXJHcmFkdWF0ZSIsICJmYUZpbGVDb2RlIiwgImZhU29hcCIsICJmYVJlY3ljbGUiLCAiZmFGYWNlR3JpbldpbmsiLCAiZmFHcmluV2luayIsICJmYVdhdGVyTGFkZGVyIiwgImZhTGFkZGVyV2F0ZXIiLCAiZmFTd2ltbWluZ1Bvb2wiLCAiZmFUb3dlckNlbGwiLCAiZmFDb2xvblNpZ24iLCAiZmFMYXB0b3BGaWxlIiwgImZhQmFoYWkiLCAiZmFIYXlrYWwiLCAiZmFNb25leUJpbGwxIiwgImZhTW9uZXlCaWxsQWx0IiwgImZhQ2xvdWRCb2x0IiwgImZhVGh1bmRlcnN0b3JtIiwgImZhRXRoZXJuZXQiLCAiZmFIcnl2bmlhU2lnbiIsICJmYUhyeXZuaWEiLCAiZmFFeWVTbGFzaCIsICJmYUNhcnRGbGF0YmVkU3VpdGNhc2UiLCAiZmFMdWdnYWdlQ2FydCIsICJmYVJhZGlhdGlvbiIsICJmYUZpbGVXb3JkIiwgImZhQmVkUHVsc2UiLCAiZmFQcm9jZWR1cmVzIiwgImZhVGVudHMiLCAiZmFNdWdIb3QiLCAiZmFCb2x0IiwgImZhWmFwIiwgImZhSmFyIiwgImZhVHJ1Y2tQbGFuZSIsICJmYUhhbmRIb2xkaW5nSGVhcnQiLCAiZmFBcnJvd1JvdGF0ZUxlZnQiLCAiZmFBcnJvd0xlZnRSb3RhdGUiLCAiZmFBcnJvd1JvdGF0ZUJhY2siLCAiZmFBcnJvd1JvdGF0ZUJhY2t3YXJkIiwgImZhVW5kbyIsICJmYUZhY2VBbmdyeSIsICJmYUFuZ3J5IiwgImZhQnVyc3QiLCAiZmFaIiwgImZhQmFuZGFnZSIsICJmYUJhbmRBaWQiLCAiZmFQbGFuZUNpcmNsZUV4Y2xhbWF0aW9uIiwgImZhQnVzU2lkZSIsICJmYUJ1Z3MiLCAiZmFCZWVyTXVnRW1wdHkiLCAiZmFCZWVyIiwgImZhUGVyc29uQ2lyY2xlQ2hlY2siLCAiZmFTdGFwbGVyIiwgImZhSG91c2VNZWRpY2FsQ2lyY2xlQ2hlY2siLCAiZmFOYWlyYVNpZ24iLCAiZmFXaWZpIiwgImZhV2lmaTMiLCAiZmFXaWZpU3Ryb25nIiwgImZhTW9uZXlDaGVja0RvbGxhciIsICJmYU1vbmV5Q2hlY2tBbHQiLCAiZmFFeWVMb3dWaXNpb24iLCAiZmFMb3dWaXNpb24iLCAiZmFDaXJjbGVBcnJvd1VwIiwgImZhQXJyb3dDaXJjbGVVcCIsICJmYUNhbWVyYVJldHJvIiwgImZhQ2Fwc3VsZXMiLCAiZmFQb28iLCAiZmFFbGV2YXRvciIsICJmYVRhZyIsICJmYUZpbGVDaXJjbGVNaW51cyIsICJmYURvd25Mb25nIiwgImZhTG9uZ0Fycm93QWx0RG93biIsICJmYUNvbXBhY3REaXNjIiwgImZhU3VpdGNhc2VSb2xsaW5nIiwgImZhQm9va1F1cmFuIiwgImZhUXVyYW4iLCAiZmFQaG9uZVNsYXNoIiwgImZhUm9hZENpcmNsZUNoZWNrIiwgImZhU2hvcExvY2siLCAiZmFJbWFnZVBvcnRyYWl0IiwgImZhUG9ydHJhaXQiLCAiZmFCcmlkZ2VMb2NrIiwgImZhSGFtbWVyIiwgImZhQXJyb3dVcDE5IiwgImZhU29ydE51bWVyaWNVcCIsICJmYUNoZXNzS25pZ2h0IiwgImZhSG91c2VGbG9vZFdhdGVyQ2lyY2xlQXJyb3dSaWdodCIsICJmYUFycm93VXBSaWdodEZyb21TcXVhcmUiLCAiZmFFeHRlcm5hbExpbmsiLCAiZmFBcnJvd0Rvd25VcEFjcm9zc0xpbmUiLCAiZmFGYWNlR3JpbkJlYW0iLCAiZmFHcmluQmVhbSIsICJmYVJlY3RhbmdsZUFkIiwgImZhQWQiLCAiZmFCb29rVGFuYWtoIiwgImZhVGFuYWtoIiwgImZhSG90VHViUGVyc29uIiwgImZhSG90VHViIiwgImZhRmlsZUhhbGZEYXNoZWQiLCAiZmFPdXRkZW50IiwgImZhRGVkZW50IiwgImZhSGFuZFBlYWNlIiwgImZhSGVhZFNpZGVWaXJ1cyIsICJmYUNvbXBhc3MiLCAiZmFQZW5OaWIiLCAiZmFUZW50QXJyb3dzRG93biIsICJmYUZvcndhcmRGYXN0IiwgImZhRmFzdEZvcndhcmQiLCAiZmFDcm9wIiwgImZhV2hpc2tleUdsYXNzIiwgImZhR2xhc3NXaGlza2V5IiwgImZhU3F1YXJlIiwgImZhRmFjZUdyaW4iLCAiZmFHcmluIiwgImZhRmlsZUNvbnRyYWN0IiwgImZhQW5nbGVVcCIsICJmYUZhY2VTbWlsZSIsICJmYVNtaWxlIiwgImZhUGVyc29uRHJlc3NCdXJzdCIsICJmYURpdmlkZSIsICJmYUNvZGVGb3JrIiwgImZhSG91c2VGbGFnIiwgImZhQnVpbGRpbmdDb2x1bW5zIiwgImZhQmFuayIsICJmYUluc3RpdHV0aW9uIiwgImZhTXVzZXVtIiwgImZhVW5pdmVyc2l0eSIsICJmYVJ1ZyIsICJmYUNvZGVNZXJnZSIsICJmYUhvdXNlVHN1bmFtaSIsICJmYU1hZ25pZnlpbmdHbGFzc0NoYXJ0IiwgImZhVW1icmVsbGEiLCAiZmFIaWxsUm9ja3NsaWRlIiwgImZhVXNlclNlY3JldCIsICJmYVBhZ2VyIiwgImZhQnJpZWZjYXNlIiwgImZhVHJvd2VsQnJpY2tzIiwgImZhU29ja3MiLCAiZmFUIiwgImZhTWljcm9jaGlwIiwgImZhVHJ1Y2tNZWRpY2FsIiwgImZhQW1idWxhbmNlIiwgImZhT20iLCAiZmFNb3NxdWl0b05ldCIsICJmYVByZXNjcmlwdGlvbkJvdHRsZSIsICJmYVVzZXJzR2VhciIsICJmYVVzZXJzQ29nIiwgImZhUm9hZENpcmNsZUV4Y2xhbWF0aW9uIiwgImZhUGF1c2UiLCAiZmFTdGFmZlNuYWtlIiwgImZhUm9kQXNjbGVwaXVzIiwgImZhUm9kU25ha2UiLCAiZmFTdGFmZkFlc2N1bGFwaXVzIiwgImZhUGlnZ3lCYW5rIiwgImZhTW9udW1lbnQiLCAiZmFBbmdsZXNSaWdodCIsICJmYUFuZ2xlRG91YmxlUmlnaHQiLCAiZmFEZXNrdG9wIiwgImZhRGVza3RvcEFsdCIsICJmYVBsYW5lQ2lyY2xlWG1hcmsiLCAiZmFSZXR3ZWV0IiwgImZhVXNlckdlYXIiLCAiZmFVc2VyQ29nIiwgImZhQm9yZGVyQWxsIiwgImZhQ29pbnMiLCAiZmFNYXJzU3Ryb2tlIiwgImZhSGFuZHNoYWtlQW5nbGUiLCAiZmFIYW5kc0hlbHBpbmciLCAiZmFBcnJvd0Rvd24iLCAiZmFMb2NhdGlvbkRvdCIsICJmYU1hcE1hcmtlckFsdCIsICJmYVBsdWdDaXJjbGVFeGNsYW1hdGlvbiIsICJmYUNvb2tpZUJpdGUiLCAiZmFTY3Jld2RyaXZlcldyZW5jaCIsICJmYVRvb2xzIiwgImZhSW5kZW50IiwgImZhQmFycyIsICJmYU5hdmljb24iLCAiZmFIYW5kc1ByYXlpbmciLCAiZmFQcmF5aW5nSGFuZHMiLCAiZmFWaXJ1c2VzIiwgImZhU2Nob29sRmxhZyIsICJmYVRyYWRlbWFyayIsICJmYUZpcmVCdXJuZXIiLCAiZmFGYWNlU21pbGVCZWFtIiwgImZhU21pbGVCZWFtIiwgImZhVGVudEFycm93TGVmdFJpZ2h0IiwgImZhUm91dGUiLCAiZmFBbmdsZXNVcCIsICJmYUFuZ2xlRG91YmxlVXAiLCAiZmFCdWNrZXQiLCAiZmFMZXNzVGhhbkVxdWFsIiwgImZhRm9sZGVyQ2xvc2VkIiwgImZhUGVyc29uVGhyb3VnaFdpbmRvdyIsICJmYVNjaG9vbExvY2siLCAiZmFQZXJzb25CdXJzdCIsICJmYUxlZnRMb25nIiwgImZhTG9uZ0Fycm93QWx0TGVmdCIsICJmYUxvY2F0aW9uQ3Jvc3NoYWlycyIsICJmYUxvY2F0aW9uIiwgImZhUGVyc29uRG90c0Zyb21MaW5lIiwgImZhRGlhZ25vc2VzIiwgImZhR2F1Z2VTaW1wbGVIaWdoIiwgImZhVGFjaG9tZXRlciIsICJmYVRhY2hvbWV0ZXJGYXN0IiwgImZhQW5nbGVzTGVmdCIsICJmYUFuZ2xlRG91YmxlTGVmdCIsICJmYVVwRG93biIsICJmYUFycm93c0FsdFYiLCAiZmFCYXR0ZXJ5RW1wdHkiLCAiZmFCYXR0ZXJ5MCIsICJmYUtleWJvYXJkIiwgImZhQ29va2llIiwgImZhU3RvcHdhdGNoIiwgImZhRWplY3QiLCAiZmFTYXRlbGxpdGVEaXNoIiwgImZhRmFjZVJvbGxpbmdFeWVzIiwgImZhTWVoUm9sbGluZ0V5ZXMiLCAiZmFMaXN0Q2hlY2siLCAiZmFUYXNrcyIsICJmYVNhY2tYbWFyayIsICJmYUhhc2h0YWciLCAiZmFUcmFpbiIsICJmYUdhbWVwYWQiLCAiZmFGaWxlRXhwb3J0IiwgImZhQXJyb3dSaWdodEZyb21GaWxlIiwgImZhRmFjZUdyaW1hY2UiLCAiZmFHcmltYWNlIiwgImZhVHJhaW5TdWJ3YXkiLCAiZmFTdWJ3YXkiLCAiZmFDaXJjbGVEb3QiLCAiZmFEb3RDaXJjbGUiLCAiZmFPYmplY3RHcm91cCIsICJmYVNoaXAiLCAiZmFDIiwgImZhU3F1YXJlUGhvbmUiLCAiZmFQaG9uZVNxdWFyZSIsICJmYVJ1bGVyQ29tYmluZWQiLCAiZmFBcnJvd3NSb3RhdGUiLCAiZmFSZWZyZXNoIiwgImZhU3luYyIsICJmYVBlcnNvbkRyZXNzIiwgImZhRmVtYWxlIiwgImZhQm9va09wZW4iLCAiZmFGb2xkZXJUcmVlIiwgImZhQm94QXJjaGl2ZSIsICJmYUFyY2hpdmUiLCAiZmFUZW50QXJyb3dEb3duVG9MaW5lIiwgImZhUXJjb2RlIiwgImZhRHJhZ29uIiwgImZhSG91cmdsYXNzRW5kIiwgImZhSG91cmdsYXNzMyIsICJmYUdyaXAiLCAiZmFHcmlkSG9yaXpvbnRhbCIsICJmYUdyaXBIb3Jpem9udGFsIiwgImZhQm9yZGVyVG9wTGVmdCIsICJmYUJvcmRlclN0eWxlIiwgImZhTGlzdFVsIiwgImZhTGlzdERvdHMiLCAiZmFQZW9wbGVSb2JiZXJ5IiwgImZhTW9iaWxlQnV0dG9uIiwgImZhQXJyb3dEb3duQVoiLCAiZmFTb3J0QWxwaGFBc2MiLCAiZmFTb3J0QWxwaGFEb3duIiwgImZhTW9uZXlCaWxsIiwgImZhQ2lyY2xlTWludXMiLCAiZmFNaW51c0NpcmNsZSIsICJmYUFycm93UG9pbnRlciIsICJmYU1vdXNlUG9pbnRlciIsICJmYVNxdWFyZVNoYXJlTm9kZXMiLCAiZmFTaGFyZUFsdFNxdWFyZSIsICJmYVRhYmxlQ2VsbHNMYXJnZSIsICJmYVRoTGFyZ2UiLCAiZmFDYXQiLCAiZmFDYWxlbmRhcldlZWsiLCAiZmFDb2RlQ29tcGFyZSIsICJmYVJvYWRDaXJjbGVYbWFyayIsICJmYVBhbGxldCIsICJmYUNha2VDYW5kbGVzIiwgImZhQmlydGhkYXlDYWtlIiwgImZhQ2FrZSIsICJmYUJ1Z1NsYXNoIiwgImZhVGFycCIsICJmYURpYWdyYW1QcmVkZWNlc3NvciIsICJmYUZhY2VGbHVzaGVkIiwgImZhRmx1c2hlZCIsICJmYURpYWdyYW1OZXh0IiwgImZhQW5jaG9yQ2lyY2xlWG1hcmsiLCAiZmFQZXJzb25DaXJjbGVYbWFyayIsICJmYVNwYSIsICJmYUJhcnNQcm9ncmVzcyIsICJmYVRhc2tzQWx0IiwgImZhSGVhcnRDaXJjbGVDaGVjayIsICJmYU1hcnNTdHJva2VSaWdodCIsICJmYU1hcnNTdHJva2VIIiwgImZhVG93ZXJPYnNlcnZhdGlvbiIsICJmYVN0ZXJsaW5nU2lnbiIsICJmYUdicCIsICJmYVBvdW5kU2lnbiIsICJmYUZhdWNldERyaXAiLCAiZmFDaXJjbGVJbmZvIiwgImZhSW5mb0NpcmNsZSIsICJmYUZlYXRoZXIiLCAiZmFCb3dsUmljZSIsICJmYVN0YXJIYWxmU3Ryb2tlIiwgImZhU3RhckhhbGZBbHQiLCAiZmFUZW1wZXJhdHVyZUFycm93RG93biIsICJmYVRlbXBlcmF0dXJlRG93biIsICJmYU1hc2tWZW50aWxhdG9yIiwgImZhRmlsZVZpZGVvIiwgImZhQXJyb3dUcmVuZERvd24iLCAiZmFPaWxDYW4iLCAiZmFQZW9wbGVDYXJyeUJveCIsICJmYVBlb3BsZUNhcnJ5IiwgImZhQ2hhaXIiLCAiZmFXaW5kIiwgImZhTGF5ZXJHcm91cCIsICJmYUhlYWRTaWRlTWFzayIsICJmYUhhbmRzIiwgImZhU2lnbkxhbmd1YWdlIiwgImZhU2lnbmluZyIsICJmYVRhYmxldHMiLCAiZmFXZWlnaHRIYW5naW5nIiwgImZhRGljZSIsICJmYVNob3BTbGFzaCIsICJmYVN0b3JlQWx0U2xhc2giLCAiZmFTb3J0RG93biIsICJmYVNvcnREZXNjIiwgImZhUGVzZXRhU2lnbiIsICJmYVRhYmxldFNjcmVlbkJ1dHRvbiIsICJmYVRhYmxldEFsdCIsICJmYUhhbmRIb2xkaW5nRG9sbGFyIiwgImZhSGFuZEhvbGRpbmdVc2QiLCAiZmFTaGllbGQiLCAiZmFTaGllbGRCbGFuayIsICJmYUZhY2VMYXVnaCIsICJmYUxhdWdoIiwgImZhSGFuZHNIb2xkaW5nIiwgImZhQ2FydFNob3BwaW5nIiwgImZhU2hvcHBpbmdDYXJ0IiwgImZhT2N0YWdvbiIsICJmYUhhbmRQb2ludGVyIiwgImZhUmVnaXN0ZXJlZCIsICJmYUhvdXNlU2lnbmFsIiwgImZhQmFuZ2xhZGVzaGlUYWthU2lnbiIsICJpY29ucyIsICJpbml0X2ZyZWVfc29saWRfc3ZnX2ljb25zIiwgIl9fZXNtTWluIiwgImRlZmF1bHRBdHRyaWJ1dGVzIiwgImNyZWF0ZVNWR0VsZW1lbnQiLCAiY3JlYXRlRWxlbWVudCIsICJ0YWciLCAiYXR0cnMiLCAiY2hpbGRyZW4iLCAiZWxlbWVudCIsICJuYW1lIiwgImNoaWxkIiwgImNoaWxkRWxlbWVudCIsICJpY29uTm9kZSIsICJjdXN0b21BdHRycyIsICJkZWZhdWx0QXR0cmlidXRlcyIsICJnZXRBdHRycyIsICJnZXRDbGFzc05hbWVzIiwgImNvbWJpbmVDbGFzc05hbWVzIiwgInRvUGFzY2FsQ2FzZSIsICJyZXBsYWNlRWxlbWVudCIsICJlbGVtZW50IiwgImF0dHJzIiwgImF0dHIiLCAiYXJyYXlPZkNsYXNzbmFtZXMiLCAiY2xhc3NJdGVtIiwgInZhbHVlIiwgImluZGV4IiwgInNlbGYiLCAic3RyaW5nIiwgImcwIiwgImcxIiwgImcyIiwgIm5hbWVBdHRyIiwgImljb25zIiwgImljb25OYW1lIiwgIkNvbXBvbmVudE5hbWUiLCAiaWNvbk5vZGUiLCAiZWxlbWVudEF0dHJzIiwgImljb25BdHRycyIsICJkZWZhdWx0QXR0cmlidXRlcyIsICJjbGFzc05hbWVzIiwgInN2Z0VsZW1lbnQiLCAiY3JlYXRlRWxlbWVudCIsICJBQXJyb3dEb3duIiwgIkFBcnJvd1VwIiwgIkFMYXJnZVNtYWxsIiwgIkFjY2Vzc2liaWxpdHkiLCAiQWN0aXZpdHkiLCAiQWlyVmVudCIsICJBbGFybUNsb2NrQ2hlY2siLCAiQWlycGxheSIsICJBbGFybUNsb2NrTWludXMiLCAiQWxhcm1DbG9ja09mZiIsICJBbGFybUNsb2NrUGx1cyIsICJBbGFybUNsb2NrIiwgIkFsYXJtU21va2UiLCAiQWxidW0iLCAiQWxpZ25DZW50ZXJIb3Jpem9udGFsIiwgIkFsaWduQ2VudGVyVmVydGljYWwiLCAiQWxpZ25FbmRIb3Jpem9udGFsIiwgIkFsaWduRW5kVmVydGljYWwiLCAiQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUNlbnRlciIsICJBbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQiLCAiQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUVuZCIsICJBbGlnbkhvcml6b250YWxKdXN0aWZ5Q2VudGVyIiwgIkFsaWduSG9yaXpvbnRhbEp1c3RpZnlFbmQiLCAiQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0IiwgIkFsaWduSG9yaXpvbnRhbFNwYWNlQXJvdW5kIiwgIkFsaWduSG9yaXpvbnRhbFNwYWNlQmV0d2VlbiIsICJBbGlnblN0YXJ0SG9yaXpvbnRhbCIsICJBbGlnblN0YXJ0VmVydGljYWwiLCAiQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXIiLCAiQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVFbmQiLCAiQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVTdGFydCIsICJBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlciIsICJBbGlnblZlcnRpY2FsSnVzdGlmeUVuZCIsICJBbGlnblZlcnRpY2FsSnVzdGlmeVN0YXJ0IiwgIkFsaWduVmVydGljYWxTcGFjZUFyb3VuZCIsICJBbGlnblZlcnRpY2FsU3BhY2VCZXR3ZWVuIiwgIkFtYnVsYW5jZSIsICJBbXBlcnNhbmQiLCAiQW1wZXJzYW5kcyIsICJBbXBob3JhIiwgIkFuY2hvciIsICJBbmdyeSIsICJBbm5veWVkIiwgIkFudGVubmEiLCAiQW52aWwiLCAiQXBlcnR1cmUiLCAiQXBwV2luZG93TWFjIiwgIkFwcFdpbmRvdyIsICJBcHBsZSIsICJBcmNoaXZlUmVzdG9yZSIsICJBcmNoaXZlWCIsICJBcmNoaXZlIiwgIkFybWNoYWlyIiwgIkFycm93QmlnRG93bkRhc2giLCAiQXJyb3dCaWdEb3duIiwgIkFycm93QmlnTGVmdERhc2giLCAiQXJyb3dCaWdMZWZ0IiwgIkFycm93QmlnUmlnaHREYXNoIiwgIkFycm93QmlnUmlnaHQiLCAiQXJyb3dCaWdVcERhc2giLCAiQXJyb3dCaWdVcCIsICJBcnJvd0Rvd24wMSIsICJBcnJvd0Rvd24xMCIsICJBcnJvd0Rvd25BWiIsICJBcnJvd0Rvd25Gcm9tTGluZSIsICJBcnJvd0Rvd25MZWZ0IiwgIkFycm93RG93blJpZ2h0IiwgIkFycm93RG93blRvRG90IiwgIkFycm93RG93bk5hcnJvd1dpZGUiLCAiQXJyb3dEb3duVG9MaW5lIiwgIkFycm93RG93blVwIiwgIkFycm93RG93bldpZGVOYXJyb3ciLCAiQXJyb3dEb3duWkEiLCAiQXJyb3dEb3duIiwgIkFycm93TGVmdFJpZ2h0IiwgIkFycm93TGVmdEZyb21MaW5lIiwgIkFycm93TGVmdFRvTGluZSIsICJBcnJvd0xlZnQiLCAiQXJyb3dSaWdodEZyb21MaW5lIiwgIkFycm93UmlnaHRMZWZ0IiwgIkFycm93UmlnaHRUb0xpbmUiLCAiQXJyb3dSaWdodCIsICJBcnJvd1VwMDEiLCAiQXJyb3dVcDEwIiwgIkFycm93VXBBWiIsICJBcnJvd1VwRG93biIsICJBcnJvd1VwRnJvbURvdCIsICJBcnJvd1VwRnJvbUxpbmUiLCAiQXJyb3dVcExlZnQiLCAiQXJyb3dVcE5hcnJvd1dpZGUiLCAiQXJyb3dVcFJpZ2h0IiwgIkFycm93VXBUb0xpbmUiLCAiQXJyb3dVcFdpZGVOYXJyb3ciLCAiQXJyb3dVcFpBIiwgIkFycm93VXAiLCAiQXJyb3dzVXBGcm9tTGluZSIsICJBc3RlcmlzayIsICJBdFNpZ24iLCAiQXRvbSIsICJBdWRpb0xpbmVzIiwgIkF3YXJkIiwgIkF1ZGlvV2F2ZWZvcm0iLCAiQXhlIiwgIkF4aXMzZCIsICJCYWJ5IiwgIkJhY2twYWNrIiwgIkJhZGdlQWxlcnQiLCAiQmFkZ2VDZW50IiwgIkJhZGdlQ2hlY2siLCAiQmFkZ2VEb2xsYXJTaWduIiwgIkJhZGdlRXVybyIsICJCYWRnZUluZGlhblJ1cGVlIiwgIkJhZGdlSW5mbyIsICJCYWRnZUphcGFuZXNlWWVuIiwgIkJhZGdlTWludXMiLCAiQmFkZ2VQZXJjZW50IiwgIkJhZGdlUGx1cyIsICJCYWRnZVBvdW5kU3RlcmxpbmciLCAiQmFkZ2VRdWVzdGlvbk1hcmsiLCAiQmFkZ2VSdXNzaWFuUnVibGUiLCAiQmFkZ2VTd2lzc0ZyYW5jIiwgIkJhZGdlVHVya2lzaExpcmEiLCAiQmFkZ2VYIiwgIkJhZGdlIiwgIkJhZ2dhZ2VDbGFpbSIsICJCYWxsb29uIiwgIkJhbiIsICJCYW5hbmEiLCAiQmFuZGFnZSIsICJCYW5rbm90ZUFycm93RG93biIsICJCYW5rbm90ZUFycm93VXAiLCAiQmFua25vdGVYIiwgIkJhbmtub3RlIiwgIkJhcmNvZGUiLCAiQmFycmVsIiwgIkJhc2VsaW5lIiwgIkJhdGgiLCAiQmF0dGVyeUNoYXJnaW5nIiwgIkJhdHRlcnlGdWxsIiwgIkJhdHRlcnlMb3ciLCAiQmF0dGVyeVBsdXMiLCAiQmF0dGVyeU1lZGl1bSIsICJCYXR0ZXJ5V2FybmluZyIsICJCYXR0ZXJ5IiwgIkJlYWtlciIsICJCZWFuT2ZmIiwgIkJlYW4iLCAiQmVkRG91YmxlIiwgIkJlZFNpbmdsZSIsICJCZWQiLCAiQmVlZiIsICJCZWVyT2ZmIiwgIkJlZXIiLCAiQmVsbERvdCIsICJCZWxsRWxlY3RyaWMiLCAiQmVsbE1pbnVzIiwgIkJlbGxPZmYiLCAiQmVsbFBsdXMiLCAiQmVsbFJpbmciLCAiQmVsbCIsICJCZXR3ZWVuSG9yaXpvbnRhbEVuZCIsICJCZXR3ZWVuSG9yaXpvbnRhbFN0YXJ0IiwgIkJldHdlZW5WZXJ0aWNhbEVuZCIsICJCZXR3ZWVuVmVydGljYWxTdGFydCIsICJCaWNlcHNGbGV4ZWQiLCAiQmlrZSIsICJCaW5hcnkiLCAiQmlvaGF6YXJkIiwgIkJpbm9jdWxhcnMiLCAiQmlyZGhvdXNlIiwgIkJpcmQiLCAiQml0Y29pbiIsICJCbGVuZCIsICJCbGluZHMiLCAiQmxvY2tzIiwgIkJsdWV0b290aENvbm5lY3RlZCIsICJCbHVldG9vdGhPZmYiLCAiQmx1ZXRvb3RoU2VhcmNoaW5nIiwgIkJsdWV0b290aCIsICJCb2xkIiwgIkJvbHQiLCAiQm9tYiIsICJCb25lIiwgIkJvb2tBIiwgIkJvb2tBbGVydCIsICJCb29rQXVkaW8iLCAiQm9va0NoZWNrIiwgIkJvb2tDb3B5IiwgIkJvb2tEYXNoZWQiLCAiQm9va0Rvd24iLCAiQm9va0hlYWRwaG9uZXMiLCAiQm9va0hlYXJ0IiwgIkJvb2tLZXkiLCAiQm9va0ltYWdlIiwgIkJvb2tMb2NrIiwgIkJvb2tNYXJrZWQiLCAiQm9va01pbnVzIiwgIkJvb2tPcGVuQ2hlY2siLCAiQm9va09wZW5UZXh0IiwgIkJvb2tPcGVuIiwgIkJvb2tQbHVzIiwgIkJvb2tTZWFyY2giLCAiQm9va1RleHQiLCAiQm9va1VwIiwgIkJvb2tUeXBlIiwgIkJvb2tVcDIiLCAiQm9va1VzZXIiLCAiQm9va1giLCAiQm9vayIsICJCb29rbWFya0NoZWNrIiwgIkJvb2ttYXJrTWludXMiLCAiQm9va21hcmtQbHVzIiwgIkJvb2ttYXJrWCIsICJCb29rbWFyayIsICJCb29tQm94IiwgIkJvdE1lc3NhZ2VTcXVhcmUiLCAiQm90T2ZmIiwgIkJvdCIsICJCb3R0bGVXaW5lIiwgIkJvd0Fycm93IiwgIkJveCIsICJCb3hlcyIsICJCcmFjZXMiLCAiQnJhY2tldHMiLCAiQnJhaW5DaXJjdWl0IiwgIkJyYWluQ29nIiwgIkJyYWluIiwgIkJyaWNrV2FsbEZpcmUiLCAiQnJpY2tXYWxsU2hpZWxkIiwgIkJyaWNrV2FsbCIsICJCcmllZmNhc2VCdXNpbmVzcyIsICJCcmllZmNhc2VDb252ZXlvckJlbHQiLCAiQnJpZWZjYXNlTWVkaWNhbCIsICJCcmllZmNhc2UiLCAiQnJpbmdUb0Zyb250IiwgIkJydXNoQ2xlYW5pbmciLCAiQnJ1c2giLCAiQnViYmxlcyIsICJCdWdPZmYiLCAiQnVnUGxheSIsICJCdWciLCAiQnVpbGRpbmcyIiwgIkJ1aWxkaW5nIiwgIkJ1c0Zyb250IiwgIkJ1cyIsICJDYWJsZUNhciIsICJDYWJsZSIsICJDYWtlU2xpY2UiLCAiQ2FrZSIsICJDYWxjdWxhdG9yIiwgIkNhbGVuZGFyMSIsICJDYWxlbmRhckFycm93RG93biIsICJDYWxlbmRhckFycm93VXAiLCAiQ2FsZW5kYXJDaGVjazIiLCAiQ2FsZW5kYXJDaGVjayIsICJDYWxlbmRhckNvZyIsICJDYWxlbmRhckNsb2NrIiwgIkNhbGVuZGFyRGF5cyIsICJDYWxlbmRhckZvbGQiLCAiQ2FsZW5kYXJIZWFydCIsICJDYWxlbmRhck1pbnVzMiIsICJDYWxlbmRhck1pbnVzIiwgIkNhbGVuZGFyT2ZmIiwgIkNhbGVuZGFyUGx1czIiLCAiQ2FsZW5kYXJQbHVzIiwgIkNhbGVuZGFyUmFuZ2UiLCAiQ2FsZW5kYXJTZWFyY2giLCAiQ2FsZW5kYXJTeW5jIiwgIkNhbGVuZGFyWDIiLCAiQ2FsZW5kYXJYIiwgIkNhbGVuZGFyIiwgIkNhbGVuZGFycyIsICJDYW1lcmFPZmYiLCAiQ2FtZXJhIiwgIkNhbmR5Q2FuZSIsICJDYW5keU9mZiIsICJDYW5keSIsICJDYW5uYWJpc09mZiIsICJDYW5uYWJpcyIsICJDYXB0aW9uc09mZiIsICJDYXB0aW9ucyIsICJDYXJGcm9udCIsICJDYXJUYXhpRnJvbnQiLCAiQ2FyIiwgIkNhcmF2YW4iLCAiQ2FyZFNpbSIsICJDYXJyb3QiLCAiQ2FzZUxvd2VyIiwgIkNhc2VTZW5zaXRpdmUiLCAiQ2FzZVVwcGVyIiwgIkNhc3NldHRlVGFwZSIsICJDYXN0IiwgIkNhc3RsZSIsICJDYXQiLCAiQ2N0diIsICJDaGFydEFyZWEiLCAiQ2hhcnRCYXJCaWciLCAiQ2hhcnRCYXJEZWNyZWFzaW5nIiwgIkNoYXJ0QmFySW5jcmVhc2luZyIsICJDaGFydEJhclN0YWNrZWQiLCAiQ2hhcnRCYXIiLCAiQ2hhcnRDYW5kbGVzdGljayIsICJDaGFydENvbHVtbkJpZyIsICJDaGFydENvbHVtbkRlY3JlYXNpbmciLCAiQ2hhcnRDb2x1bW5JbmNyZWFzaW5nIiwgIkNoYXJ0Q29sdW1uU3RhY2tlZCIsICJDaGFydENvbHVtbiIsICJDaGFydEdhbnR0IiwgIkNoYXJ0TGluZSIsICJDaGFydE5ldHdvcmsiLCAiQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nIiwgIkNoYXJ0Tm9BeGVzQ29sdW1uSW5jcmVhc2luZyIsICJDaGFydE5vQXhlc0NvbHVtbiIsICJDaGFydE5vQXhlc0NvbWJpbmVkIiwgIkNoYXJ0Tm9BeGVzR2FudHQiLCAiQ2hhcnRQaWUiLCAiQ2hhcnRTY2F0dGVyIiwgIkNoYXJ0U3BsaW5lIiwgIkNoZWNrQ2hlY2siLCAiQ2hlY2tMaW5lIiwgIkNoZWNrIiwgIkNoZWZIYXQiLCAiQ2hlcnJ5IiwgIkNoZXNzQmlzaG9wIiwgIkNoZXNzS2luZyIsICJDaGVzc0tuaWdodCIsICJDaGVzc1Bhd24iLCAiQ2hlc3NRdWVlbiIsICJDaGV2cm9uRG93biIsICJDaGV2cm9uRmlyc3QiLCAiQ2hlc3NSb29rIiwgIkNoZXZyb25MYXN0IiwgIkNoZXZyb25MZWZ0IiwgIkNoZXZyb25SaWdodCIsICJDaGV2cm9uVXAiLCAiQ2hldnJvbnNEb3duVXAiLCAiQ2hldnJvbnNEb3duIiwgIkNoZXZyb25zTGVmdFJpZ2h0RWxsaXBzaXMiLCAiQ2hldnJvbnNMZWZ0UmlnaHQiLCAiQ2hldnJvbnNMZWZ0IiwgIkNoZXZyb25zUmlnaHRMZWZ0IiwgIkNoZXZyb25zUmlnaHQiLCAiQ2hldnJvbnNVcERvd24iLCAiQ2hldnJvbnNVcCIsICJDaHVyY2giLCAiQ2lnYXJldHRlT2ZmIiwgIkNocm9taXVtIiwgIkNpZ2FyZXR0ZSIsICJDaXJjbGVBbGVydCIsICJDaXJjbGVBcnJvd0Rvd24iLCAiQ2lyY2xlQXJyb3dMZWZ0IiwgIkNpcmNsZUFycm93T3V0RG93bkxlZnQiLCAiQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQiLCAiQ2lyY2xlQXJyb3dPdXRVcExlZnQiLCAiQ2lyY2xlQXJyb3dPdXRVcFJpZ2h0IiwgIkNpcmNsZUFycm93UmlnaHQiLCAiQ2lyY2xlQXJyb3dVcCIsICJDaXJjbGVDaGVjayIsICJDaXJjbGVDaGVja0JpZyIsICJDaXJjbGVDaGV2cm9uRG93biIsICJDaXJjbGVDaGV2cm9uTGVmdCIsICJDaXJjbGVDaGV2cm9uUmlnaHQiLCAiQ2lyY2xlQ2hldnJvblVwIiwgIkNpcmNsZURhc2hlZCIsICJDaXJjbGVEaXZpZGUiLCAiQ2lyY2xlRG9sbGFyU2lnbiIsICJDaXJjbGVEb3REYXNoZWQiLCAiQ2lyY2xlRG90IiwgIkNpcmNsZUVsbGlwc2lzIiwgIkNpcmNsZUVxdWFsIiwgIkNpcmNsZUZhZGluZ0Fycm93VXAiLCAiQ2lyY2xlRmFkaW5nUGx1cyIsICJDaXJjbGVHYXVnZSIsICJDaXJjbGVNaW51cyIsICJDaXJjbGVPZmYiLCAiQ2lyY2xlUGFya2luZ09mZiIsICJDaXJjbGVQYXJraW5nIiwgIkNpcmNsZVBhdXNlIiwgIkNpcmNsZVBlcmNlbnQiLCAiQ2lyY2xlUGlsZSIsICJDaXJjbGVQbGF5IiwgIkNpcmNsZVBvdW5kU3RlcmxpbmciLCAiQ2lyY2xlUGx1cyIsICJDaXJjbGVQb3dlciIsICJDaXJjbGVRdWVzdGlvbk1hcmsiLCAiQ2lyY2xlU2xhc2gyIiwgIkNpcmNsZVNsYXNoIiwgIkNpcmNsZVNtYWxsIiwgIkNpcmNsZVN0YXIiLCAiQ2lyY2xlU3RvcCIsICJDaXJjbGVVc2VyUm91bmQiLCAiQ2lyY2xlVXNlciIsICJDaXJjbGVYIiwgIkNpcmNsZSIsICJDaXJjdWl0Qm9hcmQiLCAiQ2l0cnVzIiwgIkNsYXBwZXJib2FyZCIsICJDbGlwYm9hcmRDaGVjayIsICJDbGlwYm9hcmRDbG9jayIsICJDbGlwYm9hcmRDb3B5IiwgIkNsaXBib2FyZExpc3QiLCAiQ2xpcGJvYXJkTWludXMiLCAiQ2xpcGJvYXJkUGFzdGUiLCAiQ2xpcGJvYXJkUGVuTGluZSIsICJDbGlwYm9hcmRQZW4iLCAiQ2xpcGJvYXJkUGx1cyIsICJDbGlwYm9hcmRUeXBlIiwgIkNsaXBib2FyZFgiLCAiQ2xpcGJvYXJkIiwgIkNsb2NrMSIsICJDbG9jazEwIiwgIkNsb2NrMTEiLCAiQ2xvY2sxMiIsICJDbG9jazIiLCAiQ2xvY2szIiwgIkNsb2NrNCIsICJDbG9jazUiLCAiQ2xvY2s2IiwgIkNsb2NrNyIsICJDbG9jazgiLCAiQ2xvY2s5IiwgIkNsb2NrQWxlcnQiLCAiQ2xvY2tBcnJvd0Rvd24iLCAiQ2xvY2tBcnJvd1VwIiwgIkNsb2NrQ2hlY2siLCAiQ2xvY2tGYWRpbmciLCAiQ2xvY2tQbHVzIiwgIkNsb2NrIiwgIkNsb3NlZENhcHRpb24iLCAiQ2xvdWRBbGVydCIsICJDbG91ZEJhY2t1cCIsICJDbG91ZENoZWNrIiwgIkNsb3VkQ29nIiwgIkNsb3VkRG93bmxvYWQiLCAiQ2xvdWREcml6emxlIiwgIkNsb3VkRm9nIiwgIkNsb3VkSGFpbCIsICJDbG91ZExpZ2h0bmluZyIsICJDbG91ZE1vb25SYWluIiwgIkNsb3VkTW9vbiIsICJDbG91ZFJhaW5XaW5kIiwgIkNsb3VkT2ZmIiwgIkNsb3VkUmFpbiIsICJDbG91ZFNub3ciLCAiQ2xvdWRTdW5SYWluIiwgIkNsb3VkU3VuIiwgIkNsb3VkU3luYyIsICJDbG91ZFVwbG9hZCIsICJDbG91ZCIsICJDbG91ZHkiLCAiQ2xvdmVyIiwgIkNsdWIiLCAiQ29kZVhtbCIsICJDb2RlIiwgIkNvZGVwZW4iLCAiQ29kZXNhbmRib3giLCAiQ29mZmVlIiwgIkNvaW5zIiwgIkNvZyIsICJDb2x1bW5zMiIsICJDb2x1bW5zM0NvZyIsICJDb2x1bW5zMyIsICJDb2x1bW5zNCIsICJDb21iaW5lIiwgIkNvbW1hbmQiLCAiQ29tcGFzcyIsICJDb21wb25lbnQiLCAiQ29tcHV0ZXIiLCAiQ29uY2llcmdlQmVsbCIsICJDb25lIiwgIkNvbnN0cnVjdGlvbiIsICJDb250YWN0Um91bmQiLCAiQ29udGFjdCIsICJDb250YWluZXIiLCAiQ29udHJhc3QiLCAiQ29va2llIiwgIkNvb2tpbmdQb3QiLCAiQ29weUNoZWNrIiwgIkNvcHlNaW51cyIsICJDb3B5UGx1cyIsICJDb3B5U2xhc2giLCAiQ29weSIsICJDb3B5WCIsICJDb3B5bGVmdCIsICJDb3B5cmlnaHQiLCAiQ29ybmVyRG93blJpZ2h0IiwgIkNvcm5lckRvd25MZWZ0IiwgIkNvcm5lckxlZnREb3duIiwgIkNvcm5lckxlZnRVcCIsICJDb3JuZXJSaWdodERvd24iLCAiQ29ybmVyUmlnaHRVcCIsICJDb3JuZXJVcExlZnQiLCAiQ29ybmVyVXBSaWdodCIsICJDcHUiLCAiQ3JlYXRpdmVDb21tb25zIiwgIkNyZWRpdENhcmQiLCAiQ3JvaXNzYW50IiwgIkNyb3AiLCAiQ3Jvc3MiLCAiQ3Jvc3NoYWlyIiwgIkNyb3duIiwgIkN1Ym9pZCIsICJDdXBTb2RhIiwgIkN1cnJlbmN5IiwgIkN5bGluZGVyIiwgIkRhbSIsICJEYXRhYmFzZUJhY2t1cCIsICJEYXRhYmFzZVphcCIsICJEYXRhYmFzZSIsICJEZWNpbWFsc0Fycm93TGVmdCIsICJEZWNpbWFsc0Fycm93UmlnaHQiLCAiRGVsZXRlIiwgIkRlc3NlcnQiLCAiRGlhbWV0ZXIiLCAiRGlhbW9uZE1pbnVzIiwgIkRpYW1vbmRQZXJjZW50IiwgIkRpYW1vbmRQbHVzIiwgIkRpY2UxIiwgIkRpYW1vbmQiLCAiRGljZTIiLCAiRGljZTMiLCAiRGljZTUiLCAiRGljZTYiLCAiRGljZTQiLCAiRGljZXMiLCAiRGlmZiIsICJEaXNjMiIsICJEaXNjMyIsICJEaXNjQWxidW0iLCAiRGlzYyIsICJEaXZpZGUiLCAiRG5hT2ZmIiwgIkRvY2siLCAiRG5hIiwgIkRvZyIsICJEb2xsYXJTaWduIiwgIkRvbnV0IiwgIkRvb3JDbG9zZWRMb2NrZWQiLCAiRG9vckNsb3NlZCIsICJEb3QiLCAiRG9vck9wZW4iLCAiRG93bmxvYWQiLCAiRHJhZnRpbmdDb21wYXNzIiwgIkRyYW1hIiwgIkRyaWJiYmxlIiwgIkRyaWxsIiwgIkRyb25lIiwgIkRyb3BsZXRPZmYiLCAiRHJvcGxldCIsICJEcm9wbGV0cyIsICJEcnVtIiwgIkRydW1zdGljayIsICJEdW1iYmVsbCIsICJFYXJPZmYiLCAiRWFyIiwgIkVhcnRoTG9jayIsICJFYXJ0aCIsICJFY2xpcHNlIiwgIkVnZ0ZyaWVkIiwgIkVnZ09mZiIsICJFZ2ciLCAiRWxsaXBzaXNWZXJ0aWNhbCIsICJFbGxpcHNpcyIsICJFcXVhbEFwcHJveGltYXRlbHkiLCAiRXF1YWxOb3QiLCAiRXJhc2VyIiwgIkVxdWFsIiwgIkV0aGVybmV0UG9ydCIsICJFdXJvIiwgIkV2Q2hhcmdlciIsICJFeHRlcm5hbExpbmsiLCAiRXhwYW5kIiwgIkV5ZUNsb3NlZCIsICJFeWVPZmYiLCAiRXllIiwgIkZhY3RvcnkiLCAiRmFjZWJvb2siLCAiRmFuIiwgIkZhc3RGb3J3YXJkIiwgIkZlYXRoZXIiLCAiRmVuY2UiLCAiRmVycmlzV2hlZWwiLCAiRmlnbWEiLCAiRmlsZUFyY2hpdmUiLCAiRmlsZUF4aXMzZCIsICJGaWxlQmFkZ2UiLCAiRmlsZUJyYWNlc0Nvcm5lciIsICJGaWxlQm94IiwgIkZpbGVCcmFjZXMiLCAiRmlsZUNoYXJ0Q29sdW1uSW5jcmVhc2luZyIsICJGaWxlQ2hhcnRDb2x1bW4iLCAiRmlsZUNoYXJ0TGluZSIsICJGaWxlQ2hhcnRQaWUiLCAiRmlsZUNoZWNrQ29ybmVyIiwgIkZpbGVDaGVjayIsICJGaWxlQ2xvY2siLCAiRmlsZUNvZGVDb3JuZXIiLCAiRmlsZUNvZGUiLCAiRmlsZUNvZyIsICJGaWxlRGlmZiIsICJGaWxlRGlnaXQiLCAiRmlsZURvd24iLCAiRmlsZUV4Y2xhbWF0aW9uUG9pbnQiLCAiRmlsZUhlYWRwaG9uZSIsICJGaWxlSGVhcnQiLCAiRmlsZUltYWdlIiwgIkZpbGVJbnB1dCIsICJGaWxlS2V5IiwgIkZpbGVMb2NrIiwgIkZpbGVNaW51c0Nvcm5lciIsICJGaWxlTXVzaWMiLCAiRmlsZU1pbnVzIiwgIkZpbGVPdXRwdXQiLCAiRmlsZVBlbkxpbmUiLCAiRmlsZVBlbiIsICJGaWxlUGxheSIsICJGaWxlUGx1cyIsICJGaWxlUXVlc3Rpb25NYXJrIiwgIkZpbGVQbHVzQ29ybmVyIiwgIkZpbGVTY2FuIiwgIkZpbGVTZWFyY2hDb3JuZXIiLCAiRmlsZVNlYXJjaCIsICJGaWxlU2lnbmFsIiwgIkZpbGVTcHJlYWRzaGVldCIsICJGaWxlU2xpZGVycyIsICJGaWxlU3RhY2siLCAiRmlsZVN5bWxpbmsiLCAiRmlsZVRlcm1pbmFsIiwgIkZpbGVUZXh0IiwgIkZpbGVUeXBlQ29ybmVyIiwgIkZpbGVUeXBlIiwgIkZpbGVVcCIsICJGaWxlVXNlciIsICJGaWxlVm9sdW1lIiwgIkZpbGVWaWRlb0NhbWVyYSIsICJGaWxlWENvcm5lciIsICJGaWxlWCIsICJGaWxlIiwgIkZpbGVzIiwgIkZpbG0iLCAiRmluZ2VycHJpbnRQYXR0ZXJuIiwgIkZpcmVFeHRpbmd1aXNoZXIiLCAiRmlzaE9mZiIsICJGaXNoU3ltYm9sIiwgIkZpc2giLCAiRmlzaGluZ0hvb2siLCAiRmxhZ09mZiIsICJGbGFnVHJpYW5nbGVMZWZ0IiwgIkZsYWdUcmlhbmdsZVJpZ2h0IiwgIkZsYW1lS2luZGxpbmciLCAiRmxhZyIsICJGbGFtZSIsICJGbGFzaGxpZ2h0T2ZmIiwgIkZsYXNobGlnaHQiLCAiRmxhc2tDb25pY2FsT2ZmIiwgIkZsYXNrUm91bmQiLCAiRmxhc2tDb25pY2FsIiwgIkZsaXBIb3Jpem9udGFsIiwgIkZsaXBIb3Jpem9udGFsMiIsICJGbGlwVmVydGljYWwyIiwgIkZsaXBWZXJ0aWNhbCIsICJGbG93ZXIyIiwgIkZsb3dlciIsICJGb2N1cyIsICJGb2xkSG9yaXpvbnRhbCIsICJGb2xkVmVydGljYWwiLCAiRm9sZGVyQXJjaGl2ZSIsICJGb2xkZXJDaGVjayIsICJGb2xkZXJDbG9jayIsICJGb2xkZXJDbG9zZWQiLCAiRm9sZGVyQ29kZSIsICJGb2xkZXJDb2ciLCAiRm9sZGVyRG90IiwgIkZvbGRlckRvd24iLCAiRm9sZGVyR2l0MiIsICJGb2xkZXJHaXQiLCAiRm9sZGVySGVhcnQiLCAiRm9sZGVySW5wdXQiLCAiRm9sZGVyS2FuYmFuIiwgIkZvbGRlcktleSIsICJGb2xkZXJMb2NrIiwgIkZvbGRlck1pbnVzIiwgIkZvbGRlck9wZW5Eb3QiLCAiRm9sZGVyT3BlbiIsICJGb2xkZXJPdXRwdXQiLCAiRm9sZGVyUGVuIiwgIkZvbGRlclBsdXMiLCAiRm9sZGVyUm9vdCIsICJGb2xkZXJTZWFyY2gyIiwgIkZvbGRlclNlYXJjaCIsICJGb2xkZXJTeW1saW5rIiwgIkZvbGRlclN5bmMiLCAiRm9sZGVyVHJlZSIsICJGb2xkZXJVcCIsICJGb2xkZXJYIiwgIkZvbGRlciIsICJGb2xkZXJzIiwgIkZvb3RwcmludHMiLCAiRm9ya2xpZnQiLCAiRm9ybSIsICJGb3J3YXJkIiwgIkZyYW1lIiwgIkZyYW1lciIsICJGcm93biIsICJGdWVsIiwgIkZ1bGxzY3JlZW4iLCAiRnVubmVsUGx1cyIsICJGdW5uZWxYIiwgIkZ1bm5lbCIsICJHYWxsZXJ5SG9yaXpvbnRhbEVuZCIsICJHYWxsZXJ5SG9yaXpvbnRhbCIsICJHYWxsZXJ5VGh1bWJuYWlscyIsICJHYWxsZXJ5VmVydGljYWxFbmQiLCAiR2FsbGVyeVZlcnRpY2FsIiwgIkdhbWVwYWQyIiwgIkdhbWVwYWREaXJlY3Rpb25hbCIsICJHYW1lcGFkIiwgIkdhdWdlIiwgIkdhdmVsIiwgIkdlbSIsICJHZW9yZ2lhbkxhcmkiLCAiR2hvc3QiLCAiR2lmdCIsICJHaXRCcmFuY2hNaW51cyIsICJHaXRCcmFuY2giLCAiR2l0QnJhbmNoUGx1cyIsICJHaXRDb21taXRIb3Jpem9udGFsIiwgIkdpdENvbW1pdFZlcnRpY2FsIiwgIkdpdENvbXBhcmVBcnJvd3MiLCAiR2l0Q29tcGFyZSIsICJHaXRGb3JrIiwgIkdpdEdyYXBoIiwgIkdpdE1lcmdlIiwgIkdpdFB1bGxSZXF1ZXN0QXJyb3ciLCAiR2l0UHVsbFJlcXVlc3RDbG9zZWQiLCAiR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdyIsICJHaXRQdWxsUmVxdWVzdENyZWF0ZSIsICJHaXRQdWxsUmVxdWVzdERyYWZ0IiwgIkdpdFB1bGxSZXF1ZXN0IiwgIkdpdGh1YiIsICJHaXRsYWIiLCAiR2xhc3NXYXRlciIsICJHbGFzc2VzIiwgIkdsb2JlTG9jayIsICJHbG9iZSIsICJHb2FsIiwgIkdwdSIsICJHcmFkdWF0aW9uQ2FwIiwgIkdyYXBlIiwgIkdyaWQyeDJDaGVjayIsICJHcmlkMngyUGx1cyIsICJHcmlkMngyWCIsICJHcmlkMngyIiwgIkdyaWQzeDIiLCAiR3JpZDN4MyIsICJHcmlwSG9yaXpvbnRhbCIsICJHcmlwVmVydGljYWwiLCAiR3JpcCIsICJHcm91cCIsICJIYW0iLCAiR3VpdGFyIiwgIkhhbWJ1cmdlciIsICJIYW1tZXIiLCAiSGFuZENvaW5zIiwgIkhhbmRGaXN0IiwgIkhhbmRHcmFiIiwgIkhhbmRIZWFydCIsICJIYW5kSGVscGluZyIsICJIYW5kTWV0YWwiLCAiSGFuZFBsYXR0ZXIiLCAiSGFuZCIsICJIYW5kYmFnIiwgIkhhbmRzaGFrZSIsICJIYXJkRHJpdmVEb3dubG9hZCIsICJIYXJkRHJpdmVVcGxvYWQiLCAiSGFyZEhhdCIsICJIYXNoIiwgIkhhcmREcml2ZSIsICJIYXRHbGFzc2VzIiwgIkhhemUiLCAiSGQiLCAiSGRtaVBvcnQiLCAiSGVhZGluZzEiLCAiSGVhZGluZzMiLCAiSGVhZGluZzIiLCAiSGVhZGluZzQiLCAiSGVhZGluZzUiLCAiSGVhZGluZzYiLCAiSGVhZGluZyIsICJIZWFkcGhvbmVPZmYiLCAiSGVhZHBob25lcyIsICJIZWFkc2V0IiwgIkhlYXJ0Q3JhY2siLCAiSGVhcnRIYW5kc2hha2UiLCAiSGVhcnRNaW51cyIsICJIZWFydE9mZiIsICJIZWFydFBsdXMiLCAiSGVhcnRQdWxzZSIsICJIZWF0ZXIiLCAiSGVhcnQiLCAiSGVsaWNvcHRlciIsICJIZXhhZ29uIiwgIkhpZ2hsaWdodGVyIiwgIkhpc3RvcnkiLCAiSG9wIiwgIkhvcE9mZiIsICJIb3NwaXRhbCIsICJIb3RlbCIsICJIb3VyZ2xhc3MiLCAiSG91c2VIZWFydCIsICJIb3VzZVBsdWciLCAiSG91c2VQbHVzIiwgIkhvdXNlV2lmaSIsICJIb3VzZSIsICJJY2VDcmVhbUJvd2wiLCAiSWNlQ3JlYW1Db25lIiwgIklkQ2FyZExhbnlhcmQiLCAiSWRDYXJkIiwgIkltYWdlRG93biIsICJJbWFnZU1pbnVzIiwgIkltYWdlT2ZmIiwgIkltYWdlUGx1cyIsICJJbWFnZVBsYXkiLCAiSW1hZ2VVcCIsICJJbWFnZVVwc2NhbGUiLCAiSW1hZ2UiLCAiSW1hZ2VzIiwgIkltcG9ydCIsICJJbmJveCIsICJJbmRpYW5SdXBlZSIsICJJbmZpbml0eSIsICJJbmZvIiwgIkluc3BlY3Rpb25QYW5lbCIsICJJbnN0YWdyYW0iLCAiSXRhbGljIiwgIkl0ZXJhdGlvbkNjdyIsICJJdGVyYXRpb25DdyIsICJKYXBhbmVzZVllbiIsICJKb3lzdGljayIsICJLYW5iYW4iLCAiS2F5YWsiLCAiS2V5Um91bmQiLCAiS2V5U3F1YXJlIiwgIktleSIsICJLZXlib2FyZE11c2ljIiwgIktleWJvYXJkT2ZmIiwgIktleWJvYXJkIiwgIkxhbXBDZWlsaW5nIiwgIkxhbXBEZXNrIiwgIkxhbXBGbG9vciIsICJMYW1wV2FsbERvd24iLCAiTGFtcFdhbGxVcCIsICJMYW1wIiwgIkxhbmRQbG90IiwgIkxhbmRtYXJrIiwgIkxhbmd1YWdlcyIsICJMYXB0b3BNaW5pbWFsQ2hlY2siLCAiTGFwdG9wTWluaW1hbCIsICJMYXB0b3AiLCAiTGFzc29TZWxlY3QiLCAiTGFzc28iLCAiTGF1Z2giLCAiTGF5ZXJzMiIsICJMYXllcnMiLCAiTGF5ZXJzUGx1cyIsICJMYXlvdXREYXNoYm9hcmQiLCAiTGF5b3V0R3JpZCIsICJMYXlvdXRMaXN0IiwgIkxheW91dFBhbmVsTGVmdCIsICJMYXlvdXRQYW5lbFRvcCIsICJMYXlvdXRUZW1wbGF0ZSIsICJMZWFmIiwgIkxlYWZ5R3JlZW4iLCAiTGVjdGVybiIsICJMaWJyYXJ5QmlnIiwgIkxpYnJhcnkiLCAiTGlmZUJ1b3kiLCAiTGlnYXR1cmUiLCAiTGlnaHRidWxiT2ZmIiwgIkxpZ2h0YnVsYiIsICJMaW5lU3F1aWdnbGUiLCAiTGluazIiLCAiTGluazJPZmYiLCAiTGluayIsICJMaW5rZWRpbiIsICJMaXN0Q2hlY2siLCAiTGlzdENoZWNrcyIsICJMaXN0Q2hldnJvbnNEb3duVXAiLCAiTGlzdENoZXZyb25zVXBEb3duIiwgIkxpc3RDb2xsYXBzZSIsICJMaXN0RW5kIiwgIkxpc3RGaWx0ZXJQbHVzIiwgIkxpc3RGaWx0ZXIiLCAiTGlzdEluZGVudERlY3JlYXNlIiwgIkxpc3RJbmRlbnRJbmNyZWFzZSIsICJMaXN0TWludXMiLCAiTGlzdE11c2ljIiwgIkxpc3RPcmRlcmVkIiwgIkxpc3RQbHVzIiwgIkxpc3RSZXN0YXJ0IiwgIkxpc3RTdGFydCIsICJMaXN0VG9kbyIsICJMaXN0VHJlZSIsICJMaXN0VmlkZW8iLCAiTGlzdFgiLCAiTG9hZGVyQ2lyY2xlIiwgIkxpc3QiLCAiTG9hZGVyUGlud2hlZWwiLCAiTG9hZGVyIiwgIkxvY2F0ZUZpeGVkIiwgIkxvY2F0ZU9mZiIsICJMb2NhdGUiLCAiTG9ja0tleWhvbGVPcGVuIiwgIkxvY2tLZXlob2xlIiwgIkxvY2tPcGVuIiwgIkxvY2siLCAiTG9nSW4iLCAiTG9nT3V0IiwgIkxvZ3MiLCAiTG9sbGlwb3AiLCAiTHVnZ2FnZSIsICJNYWduZXQiLCAiTWFpbENoZWNrIiwgIk1haWxNaW51cyIsICJNYWlsT3BlbiIsICJNYWlsUGx1cyIsICJNYWlsUXVlc3Rpb25NYXJrIiwgIk1haWxTZWFyY2giLCAiTWFpbFdhcm5pbmciLCAiTWFpbFgiLCAiTWFpbCIsICJNYWlsYm94IiwgIk1haWxzIiwgIk1hcE1pbnVzIiwgIk1hcFBpbkNoZWNrSW5zaWRlIiwgIk1hcFBpbkNoZWNrIiwgIk1hcFBpbkhvdXNlIiwgIk1hcFBpbk1pbnVzSW5zaWRlIiwgIk1hcFBpbk1pbnVzIiwgIk1hcFBpbk9mZiIsICJNYXBQaW5QZW4iLCAiTWFwUGluUGx1c0luc2lkZSIsICJNYXBQaW5QbHVzIiwgIk1hcFBpblhJbnNpZGUiLCAiTWFwUGluWCIsICJNYXBQaW4iLCAiTWFwUGlubmVkIiwgIk1hcFBsdXMiLCAiTWFwIiwgIk1hcnNTdHJva2UiLCAiTWFycyIsICJNYXJ0aW5pIiwgIk1heGltaXplMiIsICJNYXhpbWl6ZSIsICJNZWdhcGhvbmVPZmYiLCAiTWVnYXBob25lIiwgIk1lZGFsIiwgIk1laCIsICJNZW1vcnlTdGljayIsICJNZXJnZSIsICJNZW51IiwgIk1lc3NhZ2VDaXJjbGVDb2RlIiwgIk1lc3NhZ2VDaXJjbGVEYXNoZWQiLCAiTWVzc2FnZUNpcmNsZUhlYXJ0IiwgIk1lc3NhZ2VDaXJjbGVNb3JlIiwgIk1lc3NhZ2VDaXJjbGVPZmYiLCAiTWVzc2FnZUNpcmNsZVBsdXMiLCAiTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyayIsICJNZXNzYWdlQ2lyY2xlUmVwbHkiLCAiTWVzc2FnZUNpcmNsZVdhcm5pbmciLCAiTWVzc2FnZUNpcmNsZVgiLCAiTWVzc2FnZUNpcmNsZSIsICJNZXNzYWdlU3F1YXJlQ29kZSIsICJNZXNzYWdlU3F1YXJlRGFzaGVkIiwgIk1lc3NhZ2VTcXVhcmVEaWZmIiwgIk1lc3NhZ2VTcXVhcmVEb3QiLCAiTWVzc2FnZVNxdWFyZUhlYXJ0IiwgIk1lc3NhZ2VTcXVhcmVMb2NrIiwgIk1lc3NhZ2VTcXVhcmVNb3JlIiwgIk1lc3NhZ2VTcXVhcmVPZmYiLCAiTWVzc2FnZVNxdWFyZVBsdXMiLCAiTWVzc2FnZVNxdWFyZVF1b3RlIiwgIk1lc3NhZ2VTcXVhcmVSZXBseSIsICJNZXNzYWdlU3F1YXJlU2hhcmUiLCAiTWVzc2FnZVNxdWFyZVRleHQiLCAiTWVzc2FnZVNxdWFyZVdhcm5pbmciLCAiTWVzc2FnZVNxdWFyZVgiLCAiTWVzc2FnZVNxdWFyZSIsICJNZXNzYWdlc1NxdWFyZSIsICJNaWNPZmYiLCAiTWljVm9jYWwiLCAiTWljIiwgIk1pY3JvY2hpcCIsICJNaWNyb3Njb3BlIiwgIk1pY3Jvd2F2ZSIsICJNaWxlc3RvbmUiLCAiTWlsa09mZiIsICJNaWxrIiwgIk1pbmltaXplMiIsICJNaW5pbWl6ZSIsICJNaW51cyIsICJNb25pdG9yQ2hlY2siLCAiTW9uaXRvckNsb3VkIiwgIk1vbml0b3JDb2ciLCAiTW9uaXRvckRvdCIsICJNb25pdG9yRG93biIsICJNb25pdG9yT2ZmIiwgIk1vbml0b3JQYXVzZSIsICJNb25pdG9yUGxheSIsICJNb25pdG9yU21hcnRwaG9uZSIsICJNb25pdG9yU3BlYWtlciIsICJNb25pdG9yU3RvcCIsICJNb25pdG9yVXAiLCAiTW9uaXRvclgiLCAiTW9uaXRvciIsICJNb29uU3RhciIsICJNb3RvcmJpa2UiLCAiTW9vbiIsICJNb3VudGFpblNub3ciLCAiTW91bnRhaW4iLCAiTW91c2VPZmYiLCAiTW91c2VQb2ludGVyMk9mZiIsICJNb3VzZVBvaW50ZXIyIiwgIk1vdXNlUG9pbnRlckJhbiIsICJNb3VzZVBvaW50ZXJDbGljayIsICJNb3VzZVBvaW50ZXIiLCAiTW91c2UiLCAiTW92ZTNkIiwgIk1vdmVEaWFnb25hbDIiLCAiTW92ZURpYWdvbmFsIiwgIk1vdmVEb3duTGVmdCIsICJNb3ZlRG93blJpZ2h0IiwgIk1vdmVEb3duIiwgIk1vdmVMZWZ0IiwgIk1vdmVIb3Jpem9udGFsIiwgIk1vdmVSaWdodCIsICJNb3ZlVXBMZWZ0IiwgIk1vdmVVcFJpZ2h0IiwgIk1vdmVVcCIsICJNb3ZlVmVydGljYWwiLCAiTW92ZSIsICJNdXNpYzIiLCAiTXVzaWMzIiwgIk11c2ljNCIsICJNdXNpYyIsICJOYXZpZ2F0aW9uMk9mZiIsICJOYXZpZ2F0aW9uMiIsICJOYXZpZ2F0aW9uT2ZmIiwgIk5hdmlnYXRpb24iLCAiTmV3c3BhcGVyIiwgIk5ldHdvcmsiLCAiTmZjIiwgIk5vbkJpbmFyeSIsICJOb3RlYm9va1BlbiIsICJOb3RlYm9va1RhYnMiLCAiTm90ZWJvb2tUZXh0IiwgIk5vdGVib29rIiwgIk5vdGVwYWRUZXh0RGFzaGVkIiwgIk5vdGVwYWRUZXh0IiwgIk51dE9mZiIsICJOdXQiLCAiT2N0YWdvbkFsZXJ0IiwgIk9jdGFnb25NaW51cyIsICJPY3RhZ29uUGF1c2UiLCAiT2N0YWdvblgiLCAiT2N0YWdvbiIsICJPbWVnYSIsICJPcHRpb24iLCAiT3JiaXQiLCAiT3JpZ2FtaSIsICJQYWNrYWdlMiIsICJQYWNrYWdlQ2hlY2siLCAiUGFja2FnZU1pbnVzIiwgIlBhY2thZ2VPcGVuIiwgIlBhY2thZ2VQbHVzIiwgIlBhY2thZ2VTZWFyY2giLCAiUGFja2FnZVgiLCAiUGFja2FnZSIsICJQYWludEJ1Y2tldCIsICJQYWludFJvbGxlciIsICJQYWludGJydXNoVmVydGljYWwiLCAiUGFpbnRicnVzaCIsICJQYWxldHRlIiwgIlBhbmRhIiwgIlBhbmVsQm90dG9tQ2xvc2UiLCAiUGFuZWxCb3R0b21EYXNoZWQiLCAiUGFuZWxCb3R0b21PcGVuIiwgIlBhbmVsQm90dG9tIiwgIlBhbmVsTGVmdENsb3NlIiwgIlBhbmVsTGVmdERhc2hlZCIsICJQYW5lbExlZnRPcGVuIiwgIlBhbmVsTGVmdFJpZ2h0RGFzaGVkIiwgIlBhbmVsTGVmdCIsICJQYW5lbFJpZ2h0Q2xvc2UiLCAiUGFuZWxSaWdodERhc2hlZCIsICJQYW5lbFJpZ2h0T3BlbiIsICJQYW5lbFJpZ2h0IiwgIlBhbmVsVG9wQm90dG9tRGFzaGVkIiwgIlBhbmVsVG9wQ2xvc2UiLCAiUGFuZWxUb3BEYXNoZWQiLCAiUGFuZWxUb3BPcGVuIiwgIlBhbmVsc0xlZnRCb3R0b20iLCAiUGFuZWxUb3AiLCAiUGFuZWxzUmlnaHRCb3R0b20iLCAiUGFuZWxzVG9wTGVmdCIsICJQYXBlcmNsaXAiLCAiUGFya2luZ01ldGVyIiwgIlBhcmVudGhlc2VzIiwgIlBhcnR5UG9wcGVyIiwgIlBhdXNlIiwgIlBhd1ByaW50IiwgIlBjQ2FzZSIsICJQZW5MaW5lIiwgIlBlbk9mZiIsICJQZW5Ub29sIiwgIlBlbiIsICJQZW5jaWxMaW5lIiwgIlBlbmNpbE9mZiIsICJQZW5jaWxSdWxlciIsICJQZW5jaWwiLCAiUGVudGFnb24iLCAiUGVyY2VudCIsICJQZXJzb25TdGFuZGluZyIsICJQaGlsaXBwaW5lUGVzbyIsICJQaG9uZUZvcndhcmRlZCIsICJQaG9uZUNhbGwiLCAiUGhvbmVJbmNvbWluZyIsICJQaG9uZU1pc3NlZCIsICJQaG9uZU9mZiIsICJQaG9uZU91dGdvaW5nIiwgIlBob25lIiwgIlBpIiwgIlBpYW5vIiwgIlBpY2theGUiLCAiUGljdHVyZUluUGljdHVyZTIiLCAiUGljdHVyZUluUGljdHVyZSIsICJQaWdneUJhbmsiLCAiUGlsY3Jvd0xlZnQiLCAiUGlsY3Jvd1JpZ2h0IiwgIlBpbGNyb3ciLCAiUGlsbEJvdHRsZSIsICJQaWxsIiwgIlBpbk9mZiIsICJQaW4iLCAiUGlwZXR0ZSIsICJQaXp6YSIsICJQbGFuZUxhbmRpbmciLCAiUGxhbmVUYWtlb2ZmIiwgIlBsYW5lIiwgIlBsYXkiLCAiUGx1ZzIiLCAiUGx1Z1phcCIsICJQbHVnIiwgIlBsdXMiLCAiUG9ja2V0S25pZmUiLCAiUG9ja2V0IiwgIlBvZGNhc3QiLCAiUG9pbnRlck9mZiIsICJQb2ludGVyIiwgIlBvcGNvcm4iLCAiUG9wc2ljbGUiLCAiUG91bmRTdGVybGluZyIsICJQb3dlck9mZiIsICJQb3dlciIsICJQcmVzZW50YXRpb24iLCAiUHJpbnRlciIsICJQcmludGVyQ2hlY2siLCAiUHJvamVjdG9yIiwgIlByb3BvcnRpb25zIiwgIlB1enpsZSIsICJQeXJhbWlkIiwgIlFyQ29kZSIsICJRdW90ZSIsICJSYWJiaXQiLCAiUmFkYXIiLCAiUmFkaWF0aW9uIiwgIlJhZGljYWwiLCAiUmFkaW9SZWNlaXZlciIsICJSYWRpb1Rvd2VyIiwgIlJhZGlvIiwgIlJhZGl1cyIsICJSYWlsU3ltYm9sIiwgIlJhaW5ib3ciLCAiUmF0IiwgIlJhdGlvIiwgIlJlY2VpcHRDZW50IiwgIlJlY2VpcHRFdXJvIiwgIlJlY2VpcHRJbmRpYW5SdXBlZSIsICJSZWNlaXB0SmFwYW5lc2VZZW4iLCAiUmVjZWlwdFBvdW5kU3RlcmxpbmciLCAiUmVjZWlwdFJ1c3NpYW5SdWJsZSIsICJSZWNlaXB0U3dpc3NGcmFuYyIsICJSZWNlaXB0VGV4dCIsICJSZWNlaXB0VHVya2lzaExpcmEiLCAiUmVjZWlwdCIsICJSZWN0YW5nbGVDaXJjbGUiLCAiUmVjdGFuZ2xlRWxsaXBzaXMiLCAiUmVjdGFuZ2xlR29nZ2xlcyIsICJSZWN0YW5nbGVIb3Jpem9udGFsIiwgIlJlY3RhbmdsZVZlcnRpY2FsIiwgIlJlY3ljbGUiLCAiUmVkbzIiLCAiUmVkb0RvdCIsICJSZWRvIiwgIlJlZnJlc2hDY3dEb3QiLCAiUmVmcmVzaENjdyIsICJSZWZyZXNoQ3dPZmYiLCAiUmVmcmVzaEN3IiwgIlJlZnJpZ2VyYXRvciIsICJSZWdleCIsICJSZW1vdmVGb3JtYXR0aW5nIiwgIlJlcGVhdDEiLCAiUmVwZWF0MiIsICJSZXBlYXQiLCAiUmVwbGFjZUFsbCIsICJSZXBsYWNlIiwgIlJlcGx5QWxsIiwgIlJlcGx5IiwgIlJld2luZCIsICJSaWJib24iLCAiUm9ja2V0IiwgIlJvY2tpbmdDaGFpciIsICJSb2xsZXJDb2FzdGVyIiwgIlJvc2UiLCAiUm90YXRlM2QiLCAiUm90YXRlQ2N3S2V5IiwgIlJvdGF0ZUNjd1NxdWFyZSIsICJSb3RhdGVDY3ciLCAiUm90YXRlQ3dTcXVhcmUiLCAiUm90YXRlQ3ciLCAiUm91dGUiLCAiUm91dGVPZmYiLCAiUm91dGVyIiwgIlJvd3MyIiwgIlJvd3MzIiwgIlJvd3M0IiwgIlJzcyIsICJSdWxlckRpbWVuc2lvbkxpbmUiLCAiUnVsZXIiLCAiUnVzc2lhblJ1YmxlIiwgIlNhaWxib2F0IiwgIlNhbGFkIiwgIlNhbmR3aWNoIiwgIlNhdGVsbGl0ZURpc2giLCAiU2F0ZWxsaXRlIiwgIlNhdWRpUml5YWwiLCAiU2F2ZUFsbCIsICJTYXZlT2ZmIiwgIlNhdmUiLCAiU2NhbGUzZCIsICJTY2FsZSIsICJTY2FsaW5nIiwgIlNjYW5FeWUiLCAiU2NhbkJhcmNvZGUiLCAiU2NhbkZhY2UiLCAiU2NhbkhlYXJ0IiwgIlNjYW5MaW5lIiwgIlNjYW5RckNvZGUiLCAiU2NhblNlYXJjaCIsICJTY2FuVGV4dCIsICJTY2FuIiwgIlNjaG9vbCIsICJTY2lzc29yc0xpbmVEYXNoZWQiLCAiU2Npc3NvcnMiLCAiU2Nvb3RlciIsICJTY3JlZW5TaGFyZU9mZiIsICJTY3JlZW5TaGFyZSIsICJTY3JvbGxUZXh0IiwgIlNjcm9sbCIsICJTZWFyY2hBbGVydCIsICJTZWFyY2hDb2RlIiwgIlNlYXJjaENoZWNrIiwgIlNlYXJjaFNsYXNoIiwgIlNlYXJjaFgiLCAiU2VhcmNoIiwgIlNlbmRIb3Jpem9udGFsIiwgIlNlY3Rpb24iLCAiU2VuZFRvQmFjayIsICJTZW5kIiwgIlNlcGFyYXRvckhvcml6b250YWwiLCAiU2VwYXJhdG9yVmVydGljYWwiLCAiU2VydmVyQ29nIiwgIlNlcnZlckNyYXNoIiwgIlNlcnZlck9mZiIsICJTZXJ2ZXIiLCAiU2V0dGluZ3MyIiwgIlNldHRpbmdzIiwgIlNoYXBlcyIsICJTaGFyZTIiLCAiU2hhcmUiLCAiU2hlZXQiLCAiU2hlbGwiLCAiU2hpZWxkQWxlcnQiLCAiU2hpZWxkQmFuIiwgIlNoaWVsZENoZWNrIiwgIlNoaWVsZEVsbGlwc2lzIiwgIlNoaWVsZEhhbGYiLCAiU2hpZWxkTWludXMiLCAiU2hpZWxkT2ZmIiwgIlNoaWVsZFBsdXMiLCAiU2hpZWxkUXVlc3Rpb25NYXJrIiwgIlNoaWVsZFVzZXIiLCAiU2hpZWxkWCIsICJTaGllbGQiLCAiU2hpcFdoZWVsIiwgIlNoaXAiLCAiU2hpcnQiLCAiU2hvcHBpbmdCYWciLCAiU2hvcHBpbmdCYXNrZXQiLCAiU2hvcHBpbmdDYXJ0IiwgIlNob3ZlbCIsICJTaG93ZXJIZWFkIiwgIlNocmVkZGVyIiwgIlNocmltcCIsICJTaHJpbmsiLCAiU2hydWIiLCAiU2h1ZmZsZSIsICJTaWduYWxIaWdoIiwgIlNpZ21hIiwgIlNpZ25hbExvdyIsICJTaWduYWxNZWRpdW0iLCAiU2lnbmFsWmVybyIsICJTaWduYWwiLCAiU2lnbmF0dXJlIiwgIlNpZ25wb3N0QmlnIiwgIlNpZ25wb3N0IiwgIlNpcmVuIiwgIlNraXBCYWNrIiwgIlNrdWxsIiwgIlNraXBGb3J3YXJkIiwgIlNsYWNrIiwgIlNsYXNoIiwgIlNsaWNlIiwgIlNsaWRlcnNIb3Jpem9udGFsIiwgIlNsaWRlcnNWZXJ0aWNhbCIsICJTbWFydHBob25lQ2hhcmdpbmciLCAiU21hcnRwaG9uZU5mYyIsICJTbWFydHBob25lIiwgIlNtaWxlUGx1cyIsICJTbWlsZSIsICJTbmFpbCIsICJTbm93Zmxha2UiLCAiU29hcERpc3BlbnNlckRyb3BsZXQiLCAiU29mYSIsICJTb2xhclBhbmVsIiwgIlNvdXAiLCAiU3BhY2UiLCAiU3BhZGUiLCAiU3BhcmtsZSIsICJTcGFya2xlcyIsICJTcGVha2VyIiwgIlNwZWVjaCIsICJTcGVsbENoZWNrMiIsICJTcGVsbENoZWNrIiwgIlNwbGluZVBvaW50ZXIiLCAiU3BsaW5lIiwgIlNwbGl0IiwgIlNwb29sIiwgIlNwb3RsaWdodCIsICJTcHJheUNhbiIsICJTcHJvdXQiLCAiU3F1YXJlQWN0aXZpdHkiLCAiU3F1YXJlQXJyb3dEb3duTGVmdCIsICJTcXVhcmVBcnJvd0Rvd25SaWdodCIsICJTcXVhcmVBcnJvd0Rvd24iLCAiU3F1YXJlQXJyb3dMZWZ0IiwgIlNxdWFyZUFycm93T3V0RG93bkxlZnQiLCAiU3F1YXJlQXJyb3dPdXREb3duUmlnaHQiLCAiU3F1YXJlQXJyb3dPdXRVcExlZnQiLCAiU3F1YXJlQXJyb3dPdXRVcFJpZ2h0IiwgIlNxdWFyZUFycm93UmlnaHQiLCAiU3F1YXJlQXJyb3dVcExlZnQiLCAiU3F1YXJlQXJyb3dVcFJpZ2h0IiwgIlNxdWFyZUFycm93VXAiLCAiU3F1YXJlQXN0ZXJpc2siLCAiU3F1YXJlQm90dG9tRGFzaGVkU2Npc3NvcnMiLCAiU3F1YXJlQ2hhcnRHYW50dCIsICJTcXVhcmVDaGVjayIsICJTcXVhcmVDaGVja0JpZyIsICJTcXVhcmVDaGV2cm9uRG93biIsICJTcXVhcmVDaGV2cm9uTGVmdCIsICJTcXVhcmVDaGV2cm9uUmlnaHQiLCAiU3F1YXJlQ2hldnJvblVwIiwgIlNxdWFyZUNvZGUiLCAiU3F1YXJlRGFzaGVkQm90dG9tQ29kZSIsICJTcXVhcmVEYXNoZWRCb3R0b20iLCAiU3F1YXJlRGFzaGVkS2FuYmFuIiwgIlNxdWFyZURhc2hlZE1vdXNlUG9pbnRlciIsICJTcXVhcmVEYXNoZWRUb3BTb2xpZCIsICJTcXVhcmVEYXNoZWQiLCAiU3F1YXJlRGl2aWRlIiwgIlNxdWFyZURvdCIsICJTcXVhcmVFcXVhbCIsICJTcXVhcmVGdW5jdGlvbiIsICJTcXVhcmVLYW5iYW4iLCAiU3F1YXJlTGlicmFyeSIsICJTcXVhcmVNIiwgIlNxdWFyZU1lbnUiLCAiU3F1YXJlTWludXMiLCAiU3F1YXJlTW91c2VQb2ludGVyIiwgIlNxdWFyZVBhcmtpbmdPZmYiLCAiU3F1YXJlUGFya2luZyIsICJTcXVhcmVQZW4iLCAiU3F1YXJlUGF1c2UiLCAiU3F1YXJlUGVyY2VudCIsICJTcXVhcmVQaSIsICJTcXVhcmVQaWxjcm93IiwgIlNxdWFyZVBsYXkiLCAiU3F1YXJlUGx1cyIsICJTcXVhcmVQb3dlciIsICJTcXVhcmVSYWRpY2FsIiwgIlNxdWFyZVNjaXNzb3JzIiwgIlNxdWFyZVJvdW5kQ29ybmVyIiwgIlNxdWFyZVNpZ21hIiwgIlNxdWFyZVNsYXNoIiwgIlNxdWFyZVNwbGl0SG9yaXpvbnRhbCIsICJTcXVhcmVTcGxpdFZlcnRpY2FsIiwgIlNxdWFyZVNxdWFyZSIsICJTcXVhcmVTdGFjayIsICJTcXVhcmVTdGFyIiwgIlNxdWFyZVN0b3AiLCAiU3F1YXJlVGVybWluYWwiLCAiU3F1YXJlVXNlclJvdW5kIiwgIlNxdWFyZVVzZXIiLCAiU3F1YXJlWCIsICJTcXVhcmUiLCAiU3F1YXJlc0V4Y2x1ZGUiLCAiU3F1YXJlc0ludGVyc2VjdCIsICJTcXVhcmVzU3VidHJhY3QiLCAiU3F1aXJjbGVEYXNoZWQiLCAiU3F1YXJlc1VuaXRlIiwgIlNxdWlyY2xlIiwgIlNxdWlycmVsIiwgIlN0YW1wIiwgIlN0YXJPZmYiLCAiU3RhckhhbGYiLCAiU3RhciIsICJTdGVwQmFjayIsICJTdGVwRm9yd2FyZCIsICJTdGV0aG9zY29wZSIsICJTdGlja2VyIiwgIlN0b25lIiwgIlN0aWNreU5vdGUiLCAiU3RvcmUiLCAiU3RyZXRjaEhvcml6b250YWwiLCAiU3RyZXRjaFZlcnRpY2FsIiwgIlN0cmlrZXRocm91Z2giLCAiU3Vic2NyaXB0IiwgIlN1bkRpbSIsICJTdW5NZWRpdW0iLCAiU3VuTW9vbiIsICJTdW5Tbm93IiwgIlN1biIsICJTdW5yaXNlIiwgIlN1bnNldCIsICJTdXBlcnNjcmlwdCIsICJTd2F0Y2hCb29rIiwgIlN3aXNzRnJhbmMiLCAiU3dpdGNoQ2FtZXJhIiwgIlN3b3JkIiwgIlN3b3JkcyIsICJTeXJpbmdlIiwgIlRhYmxlMiIsICJUYWJsZUNlbGxzTWVyZ2UiLCAiVGFibGVDZWxsc1NwbGl0IiwgIlRhYmxlT2ZDb250ZW50cyIsICJUYWJsZUNvbHVtbnNTcGxpdCIsICJUYWJsZVByb3BlcnRpZXMiLCAiVGFibGVSb3dzU3BsaXQiLCAiVGFibGUiLCAiVGFibGV0U21hcnRwaG9uZSIsICJUYWJsZXQiLCAiVGFibGV0cyIsICJUYWciLCAiVGFncyIsICJUYWxseTEiLCAiVGFsbHkyIiwgIlRhbGx5MyIsICJUYWxseTQiLCAiVGFsbHk1IiwgIlRhbmdlbnQiLCAiVGFyZ2V0IiwgIlRlbGVzY29wZSIsICJUZW50VHJlZSIsICJUZW50IiwgIlRlc3RUdWJlRGlhZ29uYWwiLCAiVGVybWluYWwiLCAiVGVzdFR1YmUiLCAiVGVzdFR1YmVzIiwgIlRleHRBbGlnbkNlbnRlciIsICJUZXh0QWxpZ25FbmQiLCAiVGV4dEFsaWduSnVzdGlmeSIsICJUZXh0QWxpZ25TdGFydCIsICJUZXh0Q3Vyc29ySW5wdXQiLCAiVGV4dEN1cnNvciIsICJUZXh0UXVvdGUiLCAiVGV4dEluaXRpYWwiLCAiVGV4dFNlYXJjaCIsICJUZXh0U2VsZWN0IiwgIlRoZWF0ZXIiLCAiVGV4dFdyYXAiLCAiVGhlcm1vbWV0ZXJTbm93Zmxha2UiLCAiVGhlcm1vbWV0ZXJTdW4iLCAiVGhlcm1vbWV0ZXIiLCAiVGh1bWJzRG93biIsICJUaHVtYnNVcCIsICJUaWNrZXRDaGVjayIsICJUaWNrZXRNaW51cyIsICJUaWNrZXRQZXJjZW50IiwgIlRpY2tldFBsdXMiLCAiVGlja2V0U2xhc2giLCAiVGlja2V0WCIsICJUaWNrZXQiLCAiVGlja2V0c1BsYW5lIiwgIlRpY2tldHMiLCAiVGltZXJSZXNldCIsICJUaW1lck9mZiIsICJUaW1lciIsICJUb2dnbGVMZWZ0IiwgIlRvZ2dsZVJpZ2h0IiwgIlRvaWxldCIsICJUb29sQ2FzZSIsICJUb29sYm94IiwgIlRvcm5hZG8iLCAiVG9ydXMiLCAiVG91Y2hwYWRPZmYiLCAiVG91Y2hwYWQiLCAiVG93ZXJDb250cm9sIiwgIlRveUJyaWNrIiwgIlRyYWZmaWNDb25lIiwgIlRyYWN0b3IiLCAiVHJhaW5Gcm9udFR1bm5lbCIsICJUcmFpbkZyb250IiwgIlRyYWluVHJhY2siLCAiVHJhbUZyb250IiwgIlRyYW5zZ2VuZGVyIiwgIlRyYXNoMiIsICJUcmFzaCIsICJUcmVlRGVjaWR1b3VzIiwgIlRyZWVQYWxtIiwgIlRyZWVQaW5lIiwgIlRyZWVzIiwgIlRyZWxsbyIsICJUcmVuZGluZ0Rvd24iLCAiVHJlbmRpbmdVcERvd24iLCAiVHJlbmRpbmdVcCIsICJUcmlhbmdsZUFsZXJ0IiwgIlRyaWFuZ2xlRGFzaGVkIiwgIlRyaWFuZ2xlUmlnaHQiLCAiVHJpYW5nbGUiLCAiVHJvcGh5IiwgIlRydWNrRWxlY3RyaWMiLCAiVHJ1Y2siLCAiVHVya2lzaExpcmEiLCAiVHVybnRhYmxlIiwgIlR1cnRsZSIsICJUdk1pbmltYWxQbGF5IiwgIlR2TWluaW1hbCIsICJUdiIsICJUd2l0Y2giLCAiVHdpdHRlciIsICJUeXBlT3V0bGluZSIsICJUeXBlIiwgIlVtYnJlbGxhT2ZmIiwgIlVtYnJlbGxhIiwgIlVuZGVybGluZSIsICJVbmRvMiIsICJVbmRvRG90IiwgIlVuZG8iLCAiVW5mb2xkSG9yaXpvbnRhbCIsICJVbmZvbGRWZXJ0aWNhbCIsICJVbmdyb3VwIiwgIlVuaXZlcnNpdHkiLCAiVW5saW5rMiIsICJVbmxpbmsiLCAiVW5wbHVnIiwgIlVzYiIsICJVcGxvYWQiLCAiVXNlckNoZWNrIiwgIlVzZXJDb2ciLCAiVXNlckxvY2siLCAiVXNlck1pbnVzIiwgIlVzZXJQZW4iLCAiVXNlclBsdXMiLCAiVXNlclJvdW5kQ2hlY2siLCAiVXNlclJvdW5kQ29nIiwgIlVzZXJSb3VuZE1pbnVzIiwgIlVzZXJSb3VuZFBlbiIsICJVc2VyUm91bmRQbHVzIiwgIlVzZXJSb3VuZFNlYXJjaCIsICJVc2VyUm91bmQiLCAiVXNlclJvdW5kWCIsICJVc2VyU2VhcmNoIiwgIlVzZXJTdGFyIiwgIlVzZXJYIiwgIlVzZXIiLCAiVXNlcnNSb3VuZCIsICJVc2VycyIsICJVdGVuc2lsc0Nyb3NzZWQiLCAiVXRlbnNpbHMiLCAiVmFuIiwgIlV0aWxpdHlQb2xlIiwgIlZhcmlhYmxlIiwgIlZhdWx0IiwgIlZlY3RvclNxdWFyZSIsICJWZWdhbiIsICJWZW5ldGlhbk1hc2siLCAiVmVudXMiLCAiVmVudXNBbmRNYXJzIiwgIlZpYnJhdGVPZmYiLCAiVmlicmF0ZSIsICJWaWRlb09mZiIsICJWaWRlbyIsICJWb2ljZW1haWwiLCAiVmlkZW90YXBlIiwgIlZpZXciLCAiVm9sbGV5YmFsbCIsICJWb2x1bWUxIiwgIlZvbHVtZTIiLCAiVm9sdW1lT2ZmIiwgIlZvbHVtZVgiLCAiVm9sdW1lIiwgIlZvdGUiLCAiV2FsbGV0TWluaW1hbCIsICJXYWxsZXRDYXJkcyIsICJXYWxsZXQiLCAiV2FsbHBhcGVyIiwgIldhbmRTcGFya2xlcyIsICJXYW5kIiwgIldhcmVob3VzZSIsICJXYXNoaW5nTWFjaGluZSIsICJXYXRjaCIsICJXYXZlc0Fycm93RG93biIsICJXYXZlc0Fycm93VXAiLCAiV2F2ZXNMYWRkZXIiLCAiV2F2ZXMiLCAiV2F5cG9pbnRzIiwgIldlYmNhbSIsICJXZWJob29rT2ZmIiwgIldlYmhvb2siLCAiV2VpZ2h0VGlsZGUiLCAiV2VpZ2h0IiwgIldoZWF0T2ZmIiwgIldoZWF0IiwgIldob2xlV29yZCIsICJXaWZpQ29nIiwgIldpZmlMb3ciLCAiV2lmaUhpZ2giLCAiV2lmaU9mZiIsICJXaWZpUGVuIiwgIldpZmlTeW5jIiwgIldpZmlaZXJvIiwgIldpZmkiLCAiV2luZEFycm93RG93biIsICJXaW5kIiwgIldpbmVPZmYiLCAiV2luZSIsICJXb3JtIiwgIldvcmtmbG93IiwgIldyZW5jaCIsICJYIiwgIllvdXR1YmUiLCAiWmFwT2ZmIiwgIlphcCIsICJab29tSW4iLCAiWm9vbU91dCIsICJpY29uc0FuZEFsaWFzZXNfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJBQXJyb3dEb3duIiwgIkFBcnJvd1VwIiwgIkFMYXJnZVNtYWxsIiwgIkFjY2Vzc2liaWxpdHkiLCAiQWN0aXZpdHkiLCAiU3F1YXJlQWN0aXZpdHkiLCAiQWlyVmVudCIsICJBaXJwbGF5IiwgIkFsYXJtQ2xvY2tDaGVjayIsICJBbGFybUNsb2NrIiwgIkFsYXJtQ2xvY2tNaW51cyIsICJBbGFybUNsb2NrT2ZmIiwgIkFsYXJtQ2xvY2tQbHVzIiwgIkFsYXJtU21va2UiLCAiQWxidW0iLCAiQ2lyY2xlQWxlcnQiLCAiT2N0YWdvbkFsZXJ0IiwgIlRyaWFuZ2xlQWxlcnQiLCAiVGV4dEFsaWduQ2VudGVyIiwgIkFsaWduQ2VudGVySG9yaXpvbnRhbCIsICJBbGlnbkNlbnRlclZlcnRpY2FsIiwgIkFsaWduRW5kSG9yaXpvbnRhbCIsICJBbGlnbkVuZFZlcnRpY2FsIiwgIkFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXIiLCAiQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUVuZCIsICJBbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQiLCAiQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlciIsICJBbGlnbkhvcml6b250YWxKdXN0aWZ5RW5kIiwgIkFsaWduSG9yaXpvbnRhbEp1c3RpZnlTdGFydCIsICJBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZCIsICJBbGlnbkhvcml6b250YWxTcGFjZUJldHdlZW4iLCAiVGV4dEFsaWduSnVzdGlmeSIsICJUZXh0QWxpZ25TdGFydCIsICJUZXh0QWxpZ25FbmQiLCAiQWxpZ25TdGFydEhvcml6b250YWwiLCAiQWxpZ25TdGFydFZlcnRpY2FsIiwgIkFsaWduVmVydGljYWxEaXN0cmlidXRlQ2VudGVyIiwgIkFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kIiwgIkFsaWduVmVydGljYWxEaXN0cmlidXRlU3RhcnQiLCAiQWxpZ25WZXJ0aWNhbEp1c3RpZnlDZW50ZXIiLCAiQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQiLCAiQWxpZ25WZXJ0aWNhbEp1c3RpZnlTdGFydCIsICJBbGlnblZlcnRpY2FsU3BhY2VBcm91bmQiLCAiQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbiIsICJBbWJ1bGFuY2UiLCAiQW1wZXJzYW5kIiwgIkFtcGVyc2FuZHMiLCAiQW1waG9yYSIsICJBbmNob3IiLCAiQW5ncnkiLCAiQW5ub3llZCIsICJBbnRlbm5hIiwgIkFudmlsIiwgIkFwZXJ0dXJlIiwgIkFwcFdpbmRvdyIsICJBcHBXaW5kb3dNYWMiLCAiQXBwbGUiLCAiQXJjaGl2ZSIsICJBcmNoaXZlUmVzdG9yZSIsICJBcmNoaXZlWCIsICJDaGFydEFyZWEiLCAiQXJtY2hhaXIiLCAiQXJyb3dCaWdEb3duIiwgIkFycm93QmlnRG93bkRhc2giLCAiQXJyb3dCaWdMZWZ0IiwgIkFycm93QmlnTGVmdERhc2giLCAiQXJyb3dCaWdSaWdodCIsICJBcnJvd0JpZ1JpZ2h0RGFzaCIsICJBcnJvd0JpZ1VwIiwgIkFycm93QmlnVXBEYXNoIiwgIkFycm93RG93biIsICJBcnJvd0Rvd24wMSIsICJBcnJvd0Rvd24xMCIsICJBcnJvd0Rvd25BWiIsICJDaXJjbGVBcnJvd0Rvd24iLCAiQXJyb3dEb3duRnJvbUxpbmUiLCAiQXJyb3dEb3duTGVmdCIsICJDaXJjbGVBcnJvd091dERvd25MZWZ0IiwgIlNxdWFyZUFycm93T3V0RG93bkxlZnQiLCAiU3F1YXJlQXJyb3dEb3duTGVmdCIsICJBcnJvd0Rvd25OYXJyb3dXaWRlIiwgIkFycm93RG93blJpZ2h0IiwgIkNpcmNsZUFycm93T3V0RG93blJpZ2h0IiwgIlNxdWFyZUFycm93T3V0RG93blJpZ2h0IiwgIlNxdWFyZUFycm93RG93blJpZ2h0IiwgIlNxdWFyZUFycm93RG93biIsICJBcnJvd0Rvd25Ub0RvdCIsICJBcnJvd0Rvd25Ub0xpbmUiLCAiQXJyb3dEb3duVXAiLCAiQXJyb3dEb3duV2lkZU5hcnJvdyIsICJBcnJvd0Rvd25aQSIsICJBcnJvd0xlZnQiLCAiQ2lyY2xlQXJyb3dMZWZ0IiwgIkFycm93TGVmdEZyb21MaW5lIiwgIkFycm93TGVmdFJpZ2h0IiwgIlNxdWFyZUFycm93TGVmdCIsICJBcnJvd0xlZnRUb0xpbmUiLCAiQXJyb3dSaWdodCIsICJDaXJjbGVBcnJvd1JpZ2h0IiwgIkFycm93UmlnaHRGcm9tTGluZSIsICJBcnJvd1JpZ2h0TGVmdCIsICJTcXVhcmVBcnJvd1JpZ2h0IiwgIkFycm93UmlnaHRUb0xpbmUiLCAiQXJyb3dVcCIsICJBcnJvd1VwMDEiLCAiQXJyb3dVcDEwIiwgIkFycm93VXBBWiIsICJDaXJjbGVBcnJvd1VwIiwgIkFycm93VXBEb3duIiwgIkFycm93VXBGcm9tRG90IiwgIkFycm93VXBGcm9tTGluZSIsICJBcnJvd1VwTGVmdCIsICJDaXJjbGVBcnJvd091dFVwTGVmdCIsICJTcXVhcmVBcnJvd091dFVwTGVmdCIsICJTcXVhcmVBcnJvd1VwTGVmdCIsICJBcnJvd1VwTmFycm93V2lkZSIsICJBcnJvd1VwUmlnaHQiLCAiQ2lyY2xlQXJyb3dPdXRVcFJpZ2h0IiwgIlNxdWFyZUFycm93T3V0VXBSaWdodCIsICJTcXVhcmVBcnJvd1VwUmlnaHQiLCAiU3F1YXJlQXJyb3dVcCIsICJBcnJvd1VwVG9MaW5lIiwgIkFycm93VXBXaWRlTmFycm93IiwgIkFycm93VXBaQSIsICJBcnJvd3NVcEZyb21MaW5lIiwgIkFzdGVyaXNrIiwgIlNxdWFyZUFzdGVyaXNrIiwgIkF0U2lnbiIsICJBdG9tIiwgIkF1ZGlvTGluZXMiLCAiQXVkaW9XYXZlZm9ybSIsICJBd2FyZCIsICJBeGUiLCAiQXhpczNkIiwgIkJhYnkiLCAiQmFja3BhY2siLCAiQmFkZ2UiLCAiQmFkZ2VBbGVydCIsICJCYWRnZUNlbnQiLCAiQmFkZ2VDaGVjayIsICJCYWRnZURvbGxhclNpZ24iLCAiQmFkZ2VFdXJvIiwgIkJhZGdlUXVlc3Rpb25NYXJrIiwgIkJhZGdlSW5kaWFuUnVwZWUiLCAiQmFkZ2VJbmZvIiwgIkJhZGdlSmFwYW5lc2VZZW4iLCAiQmFkZ2VNaW51cyIsICJCYWRnZVBlcmNlbnQiLCAiQmFkZ2VQbHVzIiwgIkJhZGdlUG91bmRTdGVybGluZyIsICJCYWRnZVJ1c3NpYW5SdWJsZSIsICJCYWRnZVN3aXNzRnJhbmMiLCAiQmFkZ2VUdXJraXNoTGlyYSIsICJCYWRnZVgiLCAiQmFnZ2FnZUNsYWltIiwgIkJhbGxvb24iLCAiQmFuIiwgIkJhbmFuYSIsICJCYW5kYWdlIiwgIkJhbmtub3RlIiwgIkJhbmtub3RlQXJyb3dEb3duIiwgIkJhbmtub3RlQXJyb3dVcCIsICJCYW5rbm90ZVgiLCAiQ2hhcnROb0F4ZXNDb2x1bW5JbmNyZWFzaW5nIiwgIkNoYXJ0Tm9BeGVzQ29sdW1uIiwgIkNoYXJ0Q29sdW1uIiwgIkNoYXJ0Q29sdW1uSW5jcmVhc2luZyIsICJDaGFydENvbHVtbkJpZyIsICJDaGFydEJhciIsICJDaGFydEJhckJpZyIsICJCYXJjb2RlIiwgIkJhcnJlbCIsICJCYXNlbGluZSIsICJCYXRoIiwgIkJhdHRlcnkiLCAiQmF0dGVyeUNoYXJnaW5nIiwgIkJhdHRlcnlGdWxsIiwgIkJhdHRlcnlMb3ciLCAiQmF0dGVyeU1lZGl1bSIsICJCYXR0ZXJ5UGx1cyIsICJCYXR0ZXJ5V2FybmluZyIsICJCZWFrZXIiLCAiQmVhbiIsICJCZWFuT2ZmIiwgIkJlZCIsICJCZWREb3VibGUiLCAiQmVkU2luZ2xlIiwgIkJlZWYiLCAiQmVlciIsICJCZWVyT2ZmIiwgIkJlbGwiLCAiQmVsbERvdCIsICJCZWxsRWxlY3RyaWMiLCAiQmVsbE1pbnVzIiwgIkJlbGxPZmYiLCAiQmVsbFBsdXMiLCAiQmVsbFJpbmciLCAiQmV0d2Vlbkhvcml6b250YWxFbmQiLCAiQmV0d2Vlbkhvcml6b250YWxTdGFydCIsICJCZXR3ZWVuVmVydGljYWxFbmQiLCAiQmV0d2VlblZlcnRpY2FsU3RhcnQiLCAiQmljZXBzRmxleGVkIiwgIkJpa2UiLCAiQmluYXJ5IiwgIkJpbm9jdWxhcnMiLCAiQmlvaGF6YXJkIiwgIkJpcmQiLCAiQmlyZGhvdXNlIiwgIkJpdGNvaW4iLCAiQmxlbmQiLCAiQmxpbmRzIiwgIkJsb2NrcyIsICJCbHVldG9vdGgiLCAiQmx1ZXRvb3RoQ29ubmVjdGVkIiwgIkJsdWV0b290aE9mZiIsICJCbHVldG9vdGhTZWFyY2hpbmciLCAiQm9sZCIsICJCb2x0IiwgIkJvbWIiLCAiQm9uZSIsICJCb29rIiwgIkJvb2tBIiwgIkJvb2tBbGVydCIsICJCb29rQXVkaW8iLCAiQm9va0NoZWNrIiwgIkJvb2tDb3B5IiwgIkJvb2tEYXNoZWQiLCAiQm9va0Rvd24iLCAiQm9va0hlYWRwaG9uZXMiLCAiQm9va0hlYXJ0IiwgIkJvb2tJbWFnZSIsICJCb29rS2V5IiwgIkJvb2tMb2NrIiwgIkJvb2tNYXJrZWQiLCAiQm9va01pbnVzIiwgIkJvb2tPcGVuIiwgIkJvb2tPcGVuQ2hlY2siLCAiQm9va09wZW5UZXh0IiwgIkJvb2tQbHVzIiwgIkJvb2tTZWFyY2giLCAiQm9va1RleHQiLCAiQm9va1R5cGUiLCAiQm9va1VwIiwgIkJvb2tVcDIiLCAiQm9va1VzZXIiLCAiQm9va1giLCAiQm9va21hcmsiLCAiQm9va21hcmtDaGVjayIsICJCb29rbWFya01pbnVzIiwgIkJvb2ttYXJrUGx1cyIsICJCb29rbWFya1giLCAiQm9vbUJveCIsICJCb3QiLCAiQm90TWVzc2FnZVNxdWFyZSIsICJCb3RPZmYiLCAiQm90dGxlV2luZSIsICJCb3dBcnJvdyIsICJCb3giLCAiU3F1YXJlRGFzaGVkIiwgIkJveGVzIiwgIkJyYWNlcyIsICJCcmFja2V0cyIsICJCcmFpbiIsICJCcmFpbkNpcmN1aXQiLCAiQnJhaW5Db2ciLCAiQnJpY2tXYWxsIiwgIkJyaWNrV2FsbEZpcmUiLCAiQnJpY2tXYWxsU2hpZWxkIiwgIkJyaWVmY2FzZSIsICJCcmllZmNhc2VCdXNpbmVzcyIsICJCcmllZmNhc2VDb252ZXlvckJlbHQiLCAiQnJpZWZjYXNlTWVkaWNhbCIsICJCcmluZ1RvRnJvbnQiLCAiQnJ1c2giLCAiQnJ1c2hDbGVhbmluZyIsICJCdWJibGVzIiwgIkJ1ZyIsICJCdWdPZmYiLCAiQnVnUGxheSIsICJCdWlsZGluZyIsICJCdWlsZGluZzIiLCAiQnVzIiwgIkJ1c0Zyb250IiwgIkNhYmxlIiwgIkNhYmxlQ2FyIiwgIkNha2UiLCAiQ2FrZVNsaWNlIiwgIkNhbGN1bGF0b3IiLCAiQ2FsZW5kYXIiLCAiQ2FsZW5kYXIxIiwgIkNhbGVuZGFyQXJyb3dEb3duIiwgIkNhbGVuZGFyQXJyb3dVcCIsICJDYWxlbmRhckNoZWNrIiwgIkNhbGVuZGFyQ2hlY2syIiwgIkNhbGVuZGFyQ2xvY2siLCAiQ2FsZW5kYXJDb2ciLCAiQ2FsZW5kYXJEYXlzIiwgIkNhbGVuZGFyRm9sZCIsICJDYWxlbmRhckhlYXJ0IiwgIkNhbGVuZGFyTWludXMiLCAiQ2FsZW5kYXJNaW51czIiLCAiQ2FsZW5kYXJPZmYiLCAiQ2FsZW5kYXJQbHVzIiwgIkNhbGVuZGFyUGx1czIiLCAiQ2FsZW5kYXJSYW5nZSIsICJDYWxlbmRhclNlYXJjaCIsICJDYWxlbmRhclN5bmMiLCAiQ2FsZW5kYXJYIiwgIkNhbGVuZGFyWDIiLCAiQ2FsZW5kYXJzIiwgIkNhbWVyYSIsICJDYW1lcmFPZmYiLCAiQ2hhcnRDYW5kbGVzdGljayIsICJDYW5keSIsICJDYW5keUNhbmUiLCAiQ2FuZHlPZmYiLCAiQ2FubmFiaXMiLCAiQ2FubmFiaXNPZmYiLCAiQ2FwdGlvbnMiLCAiQ2FwdGlvbnNPZmYiLCAiQ2FyIiwgIkNhckZyb250IiwgIkNhclRheGlGcm9udCIsICJDYXJhdmFuIiwgIkNhcmRTaW0iLCAiQ2Fycm90IiwgIkNhc2VMb3dlciIsICJDYXNlU2Vuc2l0aXZlIiwgIkNhc2VVcHBlciIsICJDYXNzZXR0ZVRhcGUiLCAiQ2FzdCIsICJDYXN0bGUiLCAiQ2F0IiwgIkNjdHYiLCAiQ2hhcnRCYXJEZWNyZWFzaW5nIiwgIkNoYXJ0QmFySW5jcmVhc2luZyIsICJDaGFydEJhclN0YWNrZWQiLCAiQ2hhcnRDb2x1bW5EZWNyZWFzaW5nIiwgIkNoYXJ0Q29sdW1uU3RhY2tlZCIsICJDaGFydEdhbnR0IiwgIkNoYXJ0TGluZSIsICJDaGFydE5ldHdvcmsiLCAiQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nIiwgIkNoYXJ0Tm9BeGVzQ29tYmluZWQiLCAiQ2hhcnROb0F4ZXNHYW50dCIsICJDaGFydFBpZSIsICJDaGFydFNjYXR0ZXIiLCAiQ2hhcnRTcGxpbmUiLCAiQ2hlY2siLCAiQ2hlY2tDaGVjayIsICJDaXJjbGVDaGVja0JpZyIsICJDaXJjbGVDaGVjayIsICJDaGVja0xpbmUiLCAiU3F1YXJlQ2hlY2tCaWciLCAiU3F1YXJlQ2hlY2siLCAiQ2hlZkhhdCIsICJDaGVycnkiLCAiQ2hlc3NCaXNob3AiLCAiQ2hlc3NLaW5nIiwgIkNoZXNzS25pZ2h0IiwgIkNoZXNzUGF3biIsICJDaGVzc1F1ZWVuIiwgIkNoZXNzUm9vayIsICJDaGV2cm9uRG93biIsICJDaXJjbGVDaGV2cm9uRG93biIsICJTcXVhcmVDaGV2cm9uRG93biIsICJDaGV2cm9uRmlyc3QiLCAiQ2hldnJvbkxhc3QiLCAiQ2hldnJvbkxlZnQiLCAiQ2lyY2xlQ2hldnJvbkxlZnQiLCAiU3F1YXJlQ2hldnJvbkxlZnQiLCAiQ2hldnJvblJpZ2h0IiwgIkNpcmNsZUNoZXZyb25SaWdodCIsICJTcXVhcmVDaGV2cm9uUmlnaHQiLCAiQ2hldnJvblVwIiwgIkNpcmNsZUNoZXZyb25VcCIsICJTcXVhcmVDaGV2cm9uVXAiLCAiQ2hldnJvbnNEb3duIiwgIkNoZXZyb25zRG93blVwIiwgIkNoZXZyb25zTGVmdCIsICJDaGV2cm9uc0xlZnRSaWdodCIsICJDaGV2cm9uc0xlZnRSaWdodEVsbGlwc2lzIiwgIkNoZXZyb25zUmlnaHQiLCAiQ2hldnJvbnNSaWdodExlZnQiLCAiQ2hldnJvbnNVcCIsICJDaGV2cm9uc1VwRG93biIsICJDaHJvbWl1bSIsICJDaHVyY2giLCAiQ2lnYXJldHRlIiwgIkNpZ2FyZXR0ZU9mZiIsICJDaXJjbGUiLCAiQ2lyY2xlRGFzaGVkIiwgIkNpcmNsZURpdmlkZSIsICJDaXJjbGVEb2xsYXJTaWduIiwgIkNpcmNsZURvdCIsICJDaXJjbGVEb3REYXNoZWQiLCAiQ2lyY2xlRWxsaXBzaXMiLCAiQ2lyY2xlRXF1YWwiLCAiQ2lyY2xlRmFkaW5nQXJyb3dVcCIsICJDaXJjbGVGYWRpbmdQbHVzIiwgIkNpcmNsZUdhdWdlIiwgIkNpcmNsZVF1ZXN0aW9uTWFyayIsICJDaXJjbGVNaW51cyIsICJDaXJjbGVPZmYiLCAiQ2lyY2xlUGFya2luZyIsICJDaXJjbGVQYXJraW5nT2ZmIiwgIkNpcmNsZVBhdXNlIiwgIkNpcmNsZVBlcmNlbnQiLCAiQ2lyY2xlUGlsZSIsICJDaXJjbGVQbGF5IiwgIkNpcmNsZVBsdXMiLCAiQ2lyY2xlUG91bmRTdGVybGluZyIsICJDaXJjbGVQb3dlciIsICJDaXJjbGVTbGFzaCIsICJDaXJjbGVTbGFzaDIiLCAiQ2lyY2xlU21hbGwiLCAiQ2lyY2xlU3RhciIsICJDaXJjbGVTdG9wIiwgIkNpcmNsZVVzZXIiLCAiQ2lyY2xlVXNlclJvdW5kIiwgIkNpcmNsZVgiLCAiQ2lyY3VpdEJvYXJkIiwgIkNpdHJ1cyIsICJDbGFwcGVyYm9hcmQiLCAiQ2xpcGJvYXJkIiwgIkNsaXBib2FyZENoZWNrIiwgIkNsaXBib2FyZENsb2NrIiwgIkNsaXBib2FyZENvcHkiLCAiQ2xpcGJvYXJkUGVuIiwgIkNsaXBib2FyZExpc3QiLCAiQ2xpcGJvYXJkTWludXMiLCAiQ2xpcGJvYXJkUGFzdGUiLCAiQ2xpcGJvYXJkUGVuTGluZSIsICJDbGlwYm9hcmRQbHVzIiwgIkNsaXBib2FyZFR5cGUiLCAiQ2xpcGJvYXJkWCIsICJDbG9jayIsICJDbG9jazEiLCAiQ2xvY2sxMCIsICJDbG9jazExIiwgIkNsb2NrMTIiLCAiQ2xvY2syIiwgIkNsb2NrMyIsICJDbG9jazQiLCAiQ2xvY2s1IiwgIkNsb2NrNiIsICJDbG9jazciLCAiQ2xvY2s4IiwgIkNsb2NrOSIsICJDbG9ja0FsZXJ0IiwgIkNsb2NrQXJyb3dEb3duIiwgIkNsb2NrQXJyb3dVcCIsICJDbG9ja0NoZWNrIiwgIkNsb2NrRmFkaW5nIiwgIkNsb2NrUGx1cyIsICJDbG9zZWRDYXB0aW9uIiwgIkNsb3VkIiwgIkNsb3VkQWxlcnQiLCAiQ2xvdWRCYWNrdXAiLCAiQ2xvdWRDaGVjayIsICJDbG91ZENvZyIsICJDbG91ZERvd25sb2FkIiwgIkNsb3VkRHJpenpsZSIsICJDbG91ZEZvZyIsICJDbG91ZEhhaWwiLCAiQ2xvdWRMaWdodG5pbmciLCAiQ2xvdWRNb29uIiwgIkNsb3VkTW9vblJhaW4iLCAiQ2xvdWRPZmYiLCAiQ2xvdWRSYWluIiwgIkNsb3VkUmFpbldpbmQiLCAiQ2xvdWRTbm93IiwgIkNsb3VkU3VuIiwgIkNsb3VkU3VuUmFpbiIsICJDbG91ZFN5bmMiLCAiQ2xvdWRVcGxvYWQiLCAiQ2xvdWR5IiwgIkNsb3ZlciIsICJDbHViIiwgIkNvZGUiLCAiQ29kZVhtbCIsICJTcXVhcmVDb2RlIiwgIkNvZGVwZW4iLCAiQ29kZXNhbmRib3giLCAiQ29mZmVlIiwgIkNvZyIsICJDb2lucyIsICJDb2x1bW5zMiIsICJDb2x1bW5zMyIsICJDb2x1bW5zM0NvZyIsICJDb2x1bW5zNCIsICJDb21iaW5lIiwgIkNvbW1hbmQiLCAiQ29tcGFzcyIsICJDb21wb25lbnQiLCAiQ29tcHV0ZXIiLCAiQ29uY2llcmdlQmVsbCIsICJDb25lIiwgIkNvbnN0cnVjdGlvbiIsICJDb250YWN0IiwgIkNvbnRhY3RSb3VuZCIsICJDb250YWluZXIiLCAiQ29udHJhc3QiLCAiQ29va2llIiwgIkNvb2tpbmdQb3QiLCAiQ29weSIsICJDb3B5Q2hlY2siLCAiQ29weU1pbnVzIiwgIkNvcHlQbHVzIiwgIkNvcHlTbGFzaCIsICJDb3B5WCIsICJDb3B5bGVmdCIsICJDb3B5cmlnaHQiLCAiQ29ybmVyRG93bkxlZnQiLCAiQ29ybmVyRG93blJpZ2h0IiwgIkNvcm5lckxlZnREb3duIiwgIkNvcm5lckxlZnRVcCIsICJDb3JuZXJSaWdodERvd24iLCAiQ29ybmVyUmlnaHRVcCIsICJDb3JuZXJVcExlZnQiLCAiQ29ybmVyVXBSaWdodCIsICJDcHUiLCAiQ3JlYXRpdmVDb21tb25zIiwgIkNyZWRpdENhcmQiLCAiQ3JvaXNzYW50IiwgIkNyb3AiLCAiQ3Jvc3MiLCAiQ3Jvc3NoYWlyIiwgIkNyb3duIiwgIkN1Ym9pZCIsICJDdXBTb2RhIiwgIkN1cnJlbmN5IiwgIkN5bGluZGVyIiwgIkRhbSIsICJEYXRhYmFzZSIsICJEYXRhYmFzZUJhY2t1cCIsICJEYXRhYmFzZVphcCIsICJEZWNpbWFsc0Fycm93TGVmdCIsICJEZWNpbWFsc0Fycm93UmlnaHQiLCAiRGVsZXRlIiwgIkRlc3NlcnQiLCAiRGlhbWV0ZXIiLCAiRGlhbW9uZCIsICJEaWFtb25kTWludXMiLCAiRGlhbW9uZFBlcmNlbnQiLCAiRGlhbW9uZFBsdXMiLCAiRGljZTEiLCAiRGljZTIiLCAiRGljZTMiLCAiRGljZTQiLCAiRGljZTUiLCAiRGljZTYiLCAiRGljZXMiLCAiRGlmZiIsICJEaXNjIiwgIkRpc2MyIiwgIkRpc2MzIiwgIkRpc2NBbGJ1bSIsICJEaXZpZGUiLCAiU3F1YXJlRGl2aWRlIiwgIkRuYSIsICJEbmFPZmYiLCAiRG9jayIsICJEb2ciLCAiRG9sbGFyU2lnbiIsICJEb251dCIsICJEb29yQ2xvc2VkIiwgIkRvb3JDbG9zZWRMb2NrZWQiLCAiRG9vck9wZW4iLCAiRG90IiwgIlNxdWFyZURvdCIsICJEb3dubG9hZCIsICJEcmFmdGluZ0NvbXBhc3MiLCAiRHJhbWEiLCAiRHJpYmJibGUiLCAiRHJpbGwiLCAiRHJvbmUiLCAiRHJvcGxldCIsICJEcm9wbGV0T2ZmIiwgIkRyb3BsZXRzIiwgIkRydW0iLCAiRHJ1bXN0aWNrIiwgIkR1bWJiZWxsIiwgIkVhciIsICJFYXJPZmYiLCAiRWFydGgiLCAiRWFydGhMb2NrIiwgIkVjbGlwc2UiLCAiU3F1YXJlUGVuIiwgIlBlbiIsICJQZW5MaW5lIiwgIkVnZyIsICJFZ2dGcmllZCIsICJFZ2dPZmYiLCAiRWxsaXBzaXMiLCAiRWxsaXBzaXNWZXJ0aWNhbCIsICJFcXVhbCIsICJFcXVhbEFwcHJveGltYXRlbHkiLCAiRXF1YWxOb3QiLCAiU3F1YXJlRXF1YWwiLCAiRXJhc2VyIiwgIkV0aGVybmV0UG9ydCIsICJFdXJvIiwgIkV2Q2hhcmdlciIsICJFeHBhbmQiLCAiRXh0ZXJuYWxMaW5rIiwgIkV5ZSIsICJFeWVDbG9zZWQiLCAiRXllT2ZmIiwgIkZhY2Vib29rIiwgIkZhY3RvcnkiLCAiRmFuIiwgIkZhc3RGb3J3YXJkIiwgIkZlYXRoZXIiLCAiRmVuY2UiLCAiRmVycmlzV2hlZWwiLCAiRmlnbWEiLCAiRmlsZSIsICJGaWxlQXJjaGl2ZSIsICJGaWxlSGVhZHBob25lIiwgIkZpbGVBeGlzM2QiLCAiRmlsZUJhZGdlIiwgIkZpbGVDaGFydENvbHVtbkluY3JlYXNpbmciLCAiRmlsZUNoYXJ0Q29sdW1uIiwgIkZpbGVCb3giLCAiRmlsZUJyYWNlcyIsICJGaWxlQnJhY2VzQ29ybmVyIiwgIkZpbGVDaGFydExpbmUiLCAiRmlsZUNoYXJ0UGllIiwgIkZpbGVDaGVjayIsICJGaWxlQ2hlY2tDb3JuZXIiLCAiRmlsZUNsb2NrIiwgIkZpbGVDb2RlIiwgIkZpbGVDb2RlQ29ybmVyIiwgIkZpbGVDb2ciLCAiRmlsZURpZmYiLCAiRmlsZURpZ2l0IiwgIkZpbGVEb3duIiwgIkZpbGVQZW4iLCAiRmlsZUV4Y2xhbWF0aW9uUG9pbnQiLCAiRmlsZUhlYXJ0IiwgIkZpbGVJbWFnZSIsICJGaWxlSW5wdXQiLCAiRmlsZUtleSIsICJGaWxlTG9jayIsICJGaWxlTWludXMiLCAiRmlsZU1pbnVzQ29ybmVyIiwgIkZpbGVNdXNpYyIsICJGaWxlT3V0cHV0IiwgIkZpbGVQZW5MaW5lIiwgIkZpbGVQbGF5IiwgIkZpbGVQbHVzIiwgIkZpbGVQbHVzQ29ybmVyIiwgIkZpbGVRdWVzdGlvbk1hcmsiLCAiRmlsZVNjYW4iLCAiRmlsZVNlYXJjaCIsICJGaWxlU2VhcmNoQ29ybmVyIiwgIkZpbGVTaWduYWwiLCAiRmlsZVNsaWRlcnMiLCAiRmlsZVNwcmVhZHNoZWV0IiwgIkZpbGVTdGFjayIsICJGaWxlU3ltbGluayIsICJGaWxlVGVybWluYWwiLCAiRmlsZVRleHQiLCAiRmlsZVR5cGUiLCAiRmlsZVR5cGVDb3JuZXIiLCAiRmlsZVVwIiwgIkZpbGVVc2VyIiwgIkZpbGVWaWRlb0NhbWVyYSIsICJGaWxlVm9sdW1lIiwgIkZpbGVYIiwgIkZpbGVYQ29ybmVyIiwgIkZpbGVzIiwgIkZpbG0iLCAiRnVubmVsIiwgIkZ1bm5lbFgiLCAiRmluZ2VycHJpbnRQYXR0ZXJuIiwgIkZpcmVFeHRpbmd1aXNoZXIiLCAiRmlzaCIsICJGaXNoT2ZmIiwgIkZpc2hTeW1ib2wiLCAiRmlzaGluZ0hvb2siLCAiRmxhZyIsICJGbGFnT2ZmIiwgIkZsYWdUcmlhbmdsZUxlZnQiLCAiRmxhZ1RyaWFuZ2xlUmlnaHQiLCAiRmxhbWUiLCAiRmxhbWVLaW5kbGluZyIsICJGbGFzaGxpZ2h0IiwgIkZsYXNobGlnaHRPZmYiLCAiRmxhc2tDb25pY2FsIiwgIkZsYXNrQ29uaWNhbE9mZiIsICJGbGFza1JvdW5kIiwgIkZsaXBIb3Jpem9udGFsIiwgIkZsaXBIb3Jpem9udGFsMiIsICJGbGlwVmVydGljYWwiLCAiRmxpcFZlcnRpY2FsMiIsICJGbG93ZXIiLCAiRmxvd2VyMiIsICJGb2N1cyIsICJGb2xkSG9yaXpvbnRhbCIsICJGb2xkVmVydGljYWwiLCAiRm9sZGVyIiwgIkZvbGRlckFyY2hpdmUiLCAiRm9sZGVyQ2hlY2siLCAiRm9sZGVyQ2xvY2siLCAiRm9sZGVyQ2xvc2VkIiwgIkZvbGRlckNvZGUiLCAiRm9sZGVyQ29nIiwgIkZvbGRlckRvdCIsICJGb2xkZXJEb3duIiwgIkZvbGRlclBlbiIsICJGb2xkZXJHaXQiLCAiRm9sZGVyR2l0MiIsICJGb2xkZXJIZWFydCIsICJGb2xkZXJJbnB1dCIsICJGb2xkZXJLYW5iYW4iLCAiRm9sZGVyS2V5IiwgIkZvbGRlckxvY2siLCAiRm9sZGVyTWludXMiLCAiRm9sZGVyT3BlbiIsICJGb2xkZXJPcGVuRG90IiwgIkZvbGRlck91dHB1dCIsICJGb2xkZXJQbHVzIiwgIkZvbGRlclJvb3QiLCAiRm9sZGVyU2VhcmNoIiwgIkZvbGRlclNlYXJjaDIiLCAiRm9sZGVyU3ltbGluayIsICJGb2xkZXJTeW5jIiwgIkZvbGRlclRyZWUiLCAiRm9sZGVyVXAiLCAiRm9sZGVyWCIsICJGb2xkZXJzIiwgIkZvb3RwcmludHMiLCAiVXRlbnNpbHMiLCAiVXRlbnNpbHNDcm9zc2VkIiwgIkZvcmtsaWZ0IiwgIkZvcm0iLCAiUmVjdGFuZ2xlRWxsaXBzaXMiLCAiRm9yd2FyZCIsICJGcmFtZSIsICJGcmFtZXIiLCAiRnJvd24iLCAiRnVlbCIsICJGdWxsc2NyZWVuIiwgIlNxdWFyZUZ1bmN0aW9uIiwgIkZ1bm5lbFBsdXMiLCAiR2FsbGVyeUhvcml6b250YWwiLCAiR2FsbGVyeUhvcml6b250YWxFbmQiLCAiR2FsbGVyeVRodW1ibmFpbHMiLCAiR2FsbGVyeVZlcnRpY2FsIiwgIkdhbGxlcnlWZXJ0aWNhbEVuZCIsICJHYW1lcGFkIiwgIkdhbWVwYWQyIiwgIkdhbWVwYWREaXJlY3Rpb25hbCIsICJTcXVhcmVDaGFydEdhbnR0IiwgIkdhdWdlIiwgIkdhdmVsIiwgIkdlbSIsICJHZW9yZ2lhbkxhcmkiLCAiR2hvc3QiLCAiR2lmdCIsICJHaXRCcmFuY2giLCAiR2l0QnJhbmNoTWludXMiLCAiR2l0QnJhbmNoUGx1cyIsICJHaXRDb21taXRIb3Jpem9udGFsIiwgIkdpdENvbW1pdFZlcnRpY2FsIiwgIkdpdENvbXBhcmUiLCAiR2l0Q29tcGFyZUFycm93cyIsICJHaXRGb3JrIiwgIkdpdEdyYXBoIiwgIkdpdE1lcmdlIiwgIkdpdFB1bGxSZXF1ZXN0IiwgIkdpdFB1bGxSZXF1ZXN0QXJyb3ciLCAiR2l0UHVsbFJlcXVlc3RDbG9zZWQiLCAiR2l0UHVsbFJlcXVlc3RDcmVhdGUiLCAiR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdyIsICJHaXRQdWxsUmVxdWVzdERyYWZ0IiwgIkdpdGh1YiIsICJHaXRsYWIiLCAiR2xhc3NXYXRlciIsICJHbGFzc2VzIiwgIkdsb2JlIiwgIkdsb2JlTG9jayIsICJHb2FsIiwgIkdwdSIsICJIYW5kR3JhYiIsICJHcmFkdWF0aW9uQ2FwIiwgIkdyYXBlIiwgIkdyaWQzeDMiLCAiR3JpZDJ4MiIsICJHcmlkMngyQ2hlY2siLCAiR3JpZDJ4MlBsdXMiLCAiR3JpZDJ4MlgiLCAiR3JpZDN4MiIsICJHcmlwIiwgIkdyaXBIb3Jpem9udGFsIiwgIkdyaXBWZXJ0aWNhbCIsICJHcm91cCIsICJHdWl0YXIiLCAiSGFtIiwgIkhhbWJ1cmdlciIsICJIYW1tZXIiLCAiSGFuZCIsICJIYW5kQ29pbnMiLCAiSGFuZEZpc3QiLCAiSGFuZEhlYXJ0IiwgIkhhbmRIZWxwaW5nIiwgIkhhbmRNZXRhbCIsICJIYW5kUGxhdHRlciIsICJIYW5kYmFnIiwgIkhhbmRzaGFrZSIsICJIYXJkRHJpdmUiLCAiSGFyZERyaXZlRG93bmxvYWQiLCAiSGFyZERyaXZlVXBsb2FkIiwgIkhhcmRIYXQiLCAiSGFzaCIsICJIYXRHbGFzc2VzIiwgIkhhemUiLCAiSGQiLCAiSGRtaVBvcnQiLCAiSGVhZGluZyIsICJIZWFkaW5nMSIsICJIZWFkaW5nMiIsICJIZWFkaW5nMyIsICJIZWFkaW5nNCIsICJIZWFkaW5nNSIsICJIZWFkaW5nNiIsICJIZWFkcGhvbmVPZmYiLCAiSGVhZHBob25lcyIsICJIZWFkc2V0IiwgIkhlYXJ0IiwgIkhlYXJ0Q3JhY2siLCAiSGVhcnRIYW5kc2hha2UiLCAiSGVhcnRNaW51cyIsICJIZWFydE9mZiIsICJIZWFydFBsdXMiLCAiSGVhcnRQdWxzZSIsICJIZWF0ZXIiLCAiSGVsaWNvcHRlciIsICJIZXhhZ29uIiwgIkhpZ2hsaWdodGVyIiwgIkhpc3RvcnkiLCAiSG91c2UiLCAiSG9wIiwgIkhvcE9mZiIsICJIb3NwaXRhbCIsICJIb3RlbCIsICJIb3VyZ2xhc3MiLCAiSG91c2VIZWFydCIsICJIb3VzZVBsdWciLCAiSG91c2VQbHVzIiwgIkhvdXNlV2lmaSIsICJJY2VDcmVhbUNvbmUiLCAiSWNlQ3JlYW1Cb3dsIiwgIklkQ2FyZCIsICJJZENhcmRMYW55YXJkIiwgIkltYWdlIiwgIkltYWdlRG93biIsICJJbWFnZU1pbnVzIiwgIkltYWdlT2ZmIiwgIkltYWdlUGxheSIsICJJbWFnZVBsdXMiLCAiSW1hZ2VVcCIsICJJbWFnZVVwc2NhbGUiLCAiSW1hZ2VzIiwgIkltcG9ydCIsICJJbmJveCIsICJMaXN0SW5kZW50SW5jcmVhc2UiLCAiTGlzdEluZGVudERlY3JlYXNlIiwgIkluZGlhblJ1cGVlIiwgIkluZmluaXR5IiwgIkluZm8iLCAiU3F1YXJlTW91c2VQb2ludGVyIiwgIkluc3BlY3Rpb25QYW5lbCIsICJJbnN0YWdyYW0iLCAiSXRhbGljIiwgIkl0ZXJhdGlvbkNjdyIsICJJdGVyYXRpb25DdyIsICJKYXBhbmVzZVllbiIsICJKb3lzdGljayIsICJLYW5iYW4iLCAiU3F1YXJlS2FuYmFuIiwgIlNxdWFyZURhc2hlZEthbmJhbiIsICJLYXlhayIsICJLZXkiLCAiS2V5Um91bmQiLCAiS2V5U3F1YXJlIiwgIktleWJvYXJkIiwgIktleWJvYXJkTXVzaWMiLCAiS2V5Ym9hcmRPZmYiLCAiTGFtcCIsICJMYW1wQ2VpbGluZyIsICJMYW1wRGVzayIsICJMYW1wRmxvb3IiLCAiTGFtcFdhbGxEb3duIiwgIkxhbXBXYWxsVXAiLCAiTGFuZFBsb3QiLCAiTGFuZG1hcmsiLCAiTGFuZ3VhZ2VzIiwgIkxhcHRvcCIsICJMYXB0b3BNaW5pbWFsIiwgIkxhcHRvcE1pbmltYWxDaGVjayIsICJMYXNzbyIsICJMYXNzb1NlbGVjdCIsICJMYXVnaCIsICJMYXllcnMiLCAiTGF5ZXJzMiIsICJMYXllcnNQbHVzIiwgIlBhbmVsc1RvcExlZnQiLCAiTGF5b3V0RGFzaGJvYXJkIiwgIkxheW91dEdyaWQiLCAiTGF5b3V0TGlzdCIsICJMYXlvdXRQYW5lbExlZnQiLCAiTGF5b3V0UGFuZWxUb3AiLCAiTGF5b3V0VGVtcGxhdGUiLCAiTGVhZiIsICJMZWFmeUdyZWVuIiwgIkxlY3Rlcm4iLCAiVGV4dEluaXRpYWwiLCAiTGlicmFyeSIsICJMaWJyYXJ5QmlnIiwgIlNxdWFyZUxpYnJhcnkiLCAiTGlmZUJ1b3kiLCAiTGlnYXR1cmUiLCAiTGlnaHRidWxiIiwgIkxpZ2h0YnVsYk9mZiIsICJMaW5lU3F1aWdnbGUiLCAiTGluayIsICJMaW5rMiIsICJMaW5rMk9mZiIsICJMaW5rZWRpbiIsICJMaXN0IiwgIkxpc3RDaGVjayIsICJMaXN0Q2hlY2tzIiwgIkxpc3RDaGV2cm9uc0Rvd25VcCIsICJMaXN0Q2hldnJvbnNVcERvd24iLCAiTGlzdENvbGxhcHNlIiwgIkxpc3RFbmQiLCAiTGlzdEZpbHRlciIsICJMaXN0RmlsdGVyUGx1cyIsICJMaXN0TWludXMiLCAiTGlzdE11c2ljIiwgIkxpc3RPcmRlcmVkIiwgIkxpc3RQbHVzIiwgIkxpc3RSZXN0YXJ0IiwgIkxpc3RTdGFydCIsICJMaXN0VG9kbyIsICJMaXN0VHJlZSIsICJMaXN0VmlkZW8iLCAiTGlzdFgiLCAiTG9hZGVyIiwgIkxvYWRlckNpcmNsZSIsICJMb2FkZXJQaW53aGVlbCIsICJMb2NhdGUiLCAiTG9jYXRlRml4ZWQiLCAiTG9jYXRlT2ZmIiwgIk1hcFBpblBlbiIsICJMb2NrIiwgIkxvY2tLZXlob2xlIiwgIkxvY2tLZXlob2xlT3BlbiIsICJMb2NrT3BlbiIsICJMb2dJbiIsICJMb2dPdXQiLCAiTG9ncyIsICJMb2xsaXBvcCIsICJMdWdnYWdlIiwgIlNxdWFyZU0iLCAiTWFnbmV0IiwgIk1haWwiLCAiTWFpbENoZWNrIiwgIk1haWxNaW51cyIsICJNYWlsT3BlbiIsICJNYWlsUGx1cyIsICJNYWlsUXVlc3Rpb25NYXJrIiwgIk1haWxTZWFyY2giLCAiTWFpbFdhcm5pbmciLCAiTWFpbFgiLCAiTWFpbGJveCIsICJNYWlscyIsICJNYXAiLCAiTWFwTWludXMiLCAiTWFwUGluIiwgIk1hcFBpbkNoZWNrIiwgIk1hcFBpbkNoZWNrSW5zaWRlIiwgIk1hcFBpbkhvdXNlIiwgIk1hcFBpbk1pbnVzIiwgIk1hcFBpbk1pbnVzSW5zaWRlIiwgIk1hcFBpbk9mZiIsICJNYXBQaW5QbHVzIiwgIk1hcFBpblBsdXNJbnNpZGUiLCAiTWFwUGluWCIsICJNYXBQaW5YSW5zaWRlIiwgIk1hcFBpbm5lZCIsICJNYXBQbHVzIiwgIk1hcnMiLCAiTWFyc1N0cm9rZSIsICJNYXJ0aW5pIiwgIk1heGltaXplIiwgIk1heGltaXplMiIsICJNZWRhbCIsICJNZWdhcGhvbmUiLCAiTWVnYXBob25lT2ZmIiwgIk1laCIsICJNZW1vcnlTdGljayIsICJNZW51IiwgIlNxdWFyZU1lbnUiLCAiTWVyZ2UiLCAiTWVzc2FnZUNpcmNsZSIsICJNZXNzYWdlQ2lyY2xlQ29kZSIsICJNZXNzYWdlQ2lyY2xlRGFzaGVkIiwgIk1lc3NhZ2VDaXJjbGVIZWFydCIsICJNZXNzYWdlQ2lyY2xlTW9yZSIsICJNZXNzYWdlQ2lyY2xlT2ZmIiwgIk1lc3NhZ2VDaXJjbGVQbHVzIiwgIk1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcmsiLCAiTWVzc2FnZUNpcmNsZVJlcGx5IiwgIk1lc3NhZ2VDaXJjbGVXYXJuaW5nIiwgIk1lc3NhZ2VDaXJjbGVYIiwgIk1lc3NhZ2VTcXVhcmUiLCAiTWVzc2FnZVNxdWFyZUNvZGUiLCAiTWVzc2FnZVNxdWFyZURhc2hlZCIsICJNZXNzYWdlU3F1YXJlRGlmZiIsICJNZXNzYWdlU3F1YXJlRG90IiwgIk1lc3NhZ2VTcXVhcmVIZWFydCIsICJNZXNzYWdlU3F1YXJlTG9jayIsICJNZXNzYWdlU3F1YXJlTW9yZSIsICJNZXNzYWdlU3F1YXJlT2ZmIiwgIk1lc3NhZ2VTcXVhcmVQbHVzIiwgIk1lc3NhZ2VTcXVhcmVRdW90ZSIsICJNZXNzYWdlU3F1YXJlUmVwbHkiLCAiTWVzc2FnZVNxdWFyZVNoYXJlIiwgIk1lc3NhZ2VTcXVhcmVUZXh0IiwgIk1lc3NhZ2VTcXVhcmVXYXJuaW5nIiwgIk1lc3NhZ2VTcXVhcmVYIiwgIk1lc3NhZ2VzU3F1YXJlIiwgIk1pYyIsICJNaWNWb2NhbCIsICJNaWNPZmYiLCAiTWljcm9jaGlwIiwgIk1pY3Jvc2NvcGUiLCAiTWljcm93YXZlIiwgIk1pbGVzdG9uZSIsICJNaWxrIiwgIk1pbGtPZmYiLCAiTWluaW1pemUiLCAiTWluaW1pemUyIiwgIk1pbnVzIiwgIlNxdWFyZU1pbnVzIiwgIk1vbml0b3IiLCAiTW9uaXRvckNoZWNrIiwgIk1vbml0b3JDbG91ZCIsICJNb25pdG9yQ29nIiwgIk1vbml0b3JEb3QiLCAiTW9uaXRvckRvd24iLCAiTW9uaXRvck9mZiIsICJNb25pdG9yUGF1c2UiLCAiTW9uaXRvclBsYXkiLCAiTW9uaXRvclNtYXJ0cGhvbmUiLCAiTW9uaXRvclNwZWFrZXIiLCAiTW9uaXRvclN0b3AiLCAiTW9uaXRvclVwIiwgIk1vbml0b3JYIiwgIk1vb24iLCAiTW9vblN0YXIiLCAiTW90b3JiaWtlIiwgIk1vdW50YWluIiwgIk1vdW50YWluU25vdyIsICJNb3VzZSIsICJNb3VzZU9mZiIsICJNb3VzZVBvaW50ZXIiLCAiTW91c2VQb2ludGVyMiIsICJNb3VzZVBvaW50ZXIyT2ZmIiwgIk1vdXNlUG9pbnRlckJhbiIsICJNb3VzZVBvaW50ZXJDbGljayIsICJTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXIiLCAiTW92ZSIsICJNb3ZlM2QiLCAiTW92ZURpYWdvbmFsIiwgIk1vdmVEaWFnb25hbDIiLCAiTW92ZURvd24iLCAiTW92ZURvd25MZWZ0IiwgIk1vdmVEb3duUmlnaHQiLCAiTW92ZUhvcml6b250YWwiLCAiTW92ZUxlZnQiLCAiTW92ZVJpZ2h0IiwgIk1vdmVVcCIsICJNb3ZlVXBMZWZ0IiwgIk1vdmVVcFJpZ2h0IiwgIk1vdmVWZXJ0aWNhbCIsICJNdXNpYyIsICJNdXNpYzIiLCAiTXVzaWMzIiwgIk11c2ljNCIsICJOYXZpZ2F0aW9uIiwgIk5hdmlnYXRpb24yIiwgIk5hdmlnYXRpb24yT2ZmIiwgIk5hdmlnYXRpb25PZmYiLCAiTmV0d29yayIsICJOZXdzcGFwZXIiLCAiTmZjIiwgIk5vbkJpbmFyeSIsICJOb3RlYm9vayIsICJOb3RlYm9va1BlbiIsICJOb3RlYm9va1RhYnMiLCAiTm90ZWJvb2tUZXh0IiwgIk5vdGVwYWRUZXh0IiwgIk5vdGVwYWRUZXh0RGFzaGVkIiwgIk51dCIsICJOdXRPZmYiLCAiT2N0YWdvbiIsICJPY3RhZ29uTWludXMiLCAiT2N0YWdvblBhdXNlIiwgIk9jdGFnb25YIiwgIk9tZWdhIiwgIk9wdGlvbiIsICJPcmJpdCIsICJPcmlnYW1pIiwgIlBhY2thZ2UiLCAiUGFja2FnZTIiLCAiUGFja2FnZUNoZWNrIiwgIlBhY2thZ2VNaW51cyIsICJQYWNrYWdlT3BlbiIsICJQYWNrYWdlUGx1cyIsICJQYWNrYWdlU2VhcmNoIiwgIlBhY2thZ2VYIiwgIlBhaW50QnVja2V0IiwgIlBhaW50Um9sbGVyIiwgIlBhaW50YnJ1c2giLCAiUGFpbnRicnVzaFZlcnRpY2FsIiwgIlBhbGV0dGUiLCAiVHJlZVBhbG0iLCAiUGFuZGEiLCAiUGFuZWxCb3R0b20iLCAiUGFuZWxCb3R0b21DbG9zZSIsICJQYW5lbEJvdHRvbURhc2hlZCIsICJQYW5lbEJvdHRvbU9wZW4iLCAiUGFuZWxMZWZ0IiwgIlBhbmVsTGVmdENsb3NlIiwgIlBhbmVsTGVmdERhc2hlZCIsICJQYW5lbExlZnRPcGVuIiwgIlBhbmVsTGVmdFJpZ2h0RGFzaGVkIiwgIlBhbmVsUmlnaHQiLCAiUGFuZWxSaWdodENsb3NlIiwgIlBhbmVsUmlnaHREYXNoZWQiLCAiUGFuZWxSaWdodE9wZW4iLCAiUGFuZWxUb3AiLCAiUGFuZWxUb3BCb3R0b21EYXNoZWQiLCAiUGFuZWxUb3BDbG9zZSIsICJQYW5lbFRvcERhc2hlZCIsICJQYW5lbFRvcE9wZW4iLCAiUGFuZWxzTGVmdEJvdHRvbSIsICJQYW5lbHNSaWdodEJvdHRvbSIsICJSb3dzMyIsICJQYXBlcmNsaXAiLCAiUGFyZW50aGVzZXMiLCAiUGFya2luZ01ldGVyIiwgIlNxdWFyZVBhcmtpbmciLCAiU3F1YXJlUGFya2luZ09mZiIsICJQYXJ0eVBvcHBlciIsICJQYXVzZSIsICJQYXdQcmludCIsICJQY0Nhc2UiLCAiUGVuT2ZmIiwgIlBlblRvb2wiLCAiUGVuY2lsIiwgIlBlbmNpbExpbmUiLCAiUGVuY2lsT2ZmIiwgIlBlbmNpbFJ1bGVyIiwgIlBlbnRhZ29uIiwgIlBlcmNlbnQiLCAiU3F1YXJlUGVyY2VudCIsICJQZXJzb25TdGFuZGluZyIsICJQaGlsaXBwaW5lUGVzbyIsICJQaG9uZSIsICJQaG9uZUNhbGwiLCAiUGhvbmVGb3J3YXJkZWQiLCAiUGhvbmVJbmNvbWluZyIsICJQaG9uZU1pc3NlZCIsICJQaG9uZU9mZiIsICJQaG9uZU91dGdvaW5nIiwgIlBpIiwgIlNxdWFyZVBpIiwgIlBpYW5vIiwgIlBpY2theGUiLCAiUGljdHVyZUluUGljdHVyZSIsICJQaWN0dXJlSW5QaWN0dXJlMiIsICJQaWdneUJhbmsiLCAiUGlsY3JvdyIsICJQaWxjcm93TGVmdCIsICJQaWxjcm93UmlnaHQiLCAiU3F1YXJlUGlsY3JvdyIsICJQaWxsIiwgIlBpbGxCb3R0bGUiLCAiUGluIiwgIlBpbk9mZiIsICJQaXBldHRlIiwgIlBpenphIiwgIlBsYW5lIiwgIlBsYW5lTGFuZGluZyIsICJQbGFuZVRha2VvZmYiLCAiUGxheSIsICJTcXVhcmVQbGF5IiwgIlBsdWciLCAiUGx1ZzIiLCAiUGx1Z1phcCIsICJQbHVzIiwgIlNxdWFyZVBsdXMiLCAiUG9ja2V0IiwgIlBvY2tldEtuaWZlIiwgIlBvZGNhc3QiLCAiUG9pbnRlciIsICJQb2ludGVyT2ZmIiwgIlBvcGNvcm4iLCAiUG9wc2ljbGUiLCAiUG91bmRTdGVybGluZyIsICJQb3dlciIsICJQb3dlck9mZiIsICJTcXVhcmVQb3dlciIsICJQcmVzZW50YXRpb24iLCAiUHJpbnRlciIsICJQcmludGVyQ2hlY2siLCAiUHJvamVjdG9yIiwgIlByb3BvcnRpb25zIiwgIlB1enpsZSIsICJQeXJhbWlkIiwgIlFyQ29kZSIsICJRdW90ZSIsICJSYWJiaXQiLCAiUmFkYXIiLCAiUmFkaWF0aW9uIiwgIlJhZGljYWwiLCAiUmFkaW8iLCAiUmFkaW9SZWNlaXZlciIsICJSYWRpb1Rvd2VyIiwgIlJhZGl1cyIsICJSYWlsU3ltYm9sIiwgIlJhaW5ib3ciLCAiUmF0IiwgIlJhdGlvIiwgIlJlY2VpcHQiLCAiUmVjZWlwdENlbnQiLCAiUmVjZWlwdEV1cm8iLCAiUmVjZWlwdEluZGlhblJ1cGVlIiwgIlJlY2VpcHRKYXBhbmVzZVllbiIsICJSZWNlaXB0UG91bmRTdGVybGluZyIsICJSZWNlaXB0UnVzc2lhblJ1YmxlIiwgIlJlY2VpcHRTd2lzc0ZyYW5jIiwgIlJlY2VpcHRUZXh0IiwgIlJlY2VpcHRUdXJraXNoTGlyYSIsICJSZWN0YW5nbGVDaXJjbGUiLCAiUmVjdGFuZ2xlR29nZ2xlcyIsICJSZWN0YW5nbGVIb3Jpem9udGFsIiwgIlJlY3RhbmdsZVZlcnRpY2FsIiwgIlJlY3ljbGUiLCAiUmVkbyIsICJSZWRvMiIsICJSZWRvRG90IiwgIlJlZnJlc2hDY3ciLCAiUmVmcmVzaENjd0RvdCIsICJSZWZyZXNoQ3ciLCAiUmVmcmVzaEN3T2ZmIiwgIlJlZnJpZ2VyYXRvciIsICJSZWdleCIsICJSZW1vdmVGb3JtYXR0aW5nIiwgIlJlcGVhdCIsICJSZXBlYXQxIiwgIlJlcGVhdDIiLCAiUmVwbGFjZSIsICJSZXBsYWNlQWxsIiwgIlJlcGx5IiwgIlJlcGx5QWxsIiwgIlJld2luZCIsICJSaWJib24iLCAiUm9ja2V0IiwgIlJvY2tpbmdDaGFpciIsICJSb2xsZXJDb2FzdGVyIiwgIlJvc2UiLCAiUm90YXRlM2QiLCAiUm90YXRlQ2N3IiwgIlJvdGF0ZUNjd0tleSIsICJSb3RhdGVDY3dTcXVhcmUiLCAiUm90YXRlQ3ciLCAiUm90YXRlQ3dTcXVhcmUiLCAiUm91dGUiLCAiUm91dGVPZmYiLCAiUm91dGVyIiwgIlJvd3MyIiwgIlJvd3M0IiwgIlJzcyIsICJSdWxlciIsICJSdWxlckRpbWVuc2lvbkxpbmUiLCAiUnVzc2lhblJ1YmxlIiwgIlNhaWxib2F0IiwgIlNhbGFkIiwgIlNhbmR3aWNoIiwgIlNhdGVsbGl0ZSIsICJTYXRlbGxpdGVEaXNoIiwgIlNhdWRpUml5YWwiLCAiU2F2ZSIsICJTYXZlQWxsIiwgIlNhdmVPZmYiLCAiU2NhbGUiLCAiU2NhbGUzZCIsICJTY2FsaW5nIiwgIlNjYW4iLCAiU2NhbkJhcmNvZGUiLCAiU2NhbkV5ZSIsICJTY2FuRmFjZSIsICJTY2FuSGVhcnQiLCAiU2NhbkxpbmUiLCAiU2NhblFyQ29kZSIsICJTY2FuU2VhcmNoIiwgIlNjYW5UZXh0IiwgIlNjaG9vbCIsICJVbml2ZXJzaXR5IiwgIlNjaXNzb3JzIiwgIlNjaXNzb3JzTGluZURhc2hlZCIsICJTcXVhcmVTY2lzc29ycyIsICJTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29ycyIsICJTY29vdGVyIiwgIlNjcmVlblNoYXJlIiwgIlNjcmVlblNoYXJlT2ZmIiwgIlNjcm9sbCIsICJTY3JvbGxUZXh0IiwgIlNlYXJjaCIsICJTZWFyY2hBbGVydCIsICJTZWFyY2hDaGVjayIsICJTZWFyY2hDb2RlIiwgIlNlYXJjaFNsYXNoIiwgIlNlYXJjaFgiLCAiU2VjdGlvbiIsICJTZW5kIiwgIlNlbmRIb3Jpem9udGFsIiwgIlNlbmRUb0JhY2siLCAiU2VwYXJhdG9ySG9yaXpvbnRhbCIsICJTZXBhcmF0b3JWZXJ0aWNhbCIsICJTZXJ2ZXIiLCAiU2VydmVyQ29nIiwgIlNlcnZlckNyYXNoIiwgIlNlcnZlck9mZiIsICJTZXR0aW5ncyIsICJTZXR0aW5nczIiLCAiU2hhcGVzIiwgIlNoYXJlIiwgIlNoYXJlMiIsICJTaGVldCIsICJTaGVsbCIsICJTaGllbGQiLCAiU2hpZWxkQWxlcnQiLCAiU2hpZWxkQmFuIiwgIlNoaWVsZENoZWNrIiwgIlNoaWVsZFgiLCAiU2hpZWxkRWxsaXBzaXMiLCAiU2hpZWxkSGFsZiIsICJTaGllbGRNaW51cyIsICJTaGllbGRPZmYiLCAiU2hpZWxkUGx1cyIsICJTaGllbGRRdWVzdGlvbk1hcmsiLCAiU2hpZWxkVXNlciIsICJTaGlwIiwgIlNoaXBXaGVlbCIsICJTaGlydCIsICJTaG9wcGluZ0JhZyIsICJTaG9wcGluZ0Jhc2tldCIsICJTaG9wcGluZ0NhcnQiLCAiU2hvdmVsIiwgIlNob3dlckhlYWQiLCAiU2hyZWRkZXIiLCAiU2hyaW1wIiwgIlNocmluayIsICJTaHJ1YiIsICJTaHVmZmxlIiwgIlNpZ21hIiwgIlNxdWFyZVNpZ21hIiwgIlNpZ25hbCIsICJTaWduYWxIaWdoIiwgIlNpZ25hbExvdyIsICJTaWduYWxNZWRpdW0iLCAiU2lnbmFsWmVybyIsICJTaWduYXR1cmUiLCAiU2lnbnBvc3QiLCAiU2lnbnBvc3RCaWciLCAiU2lyZW4iLCAiU2tpcEJhY2siLCAiU2tpcEZvcndhcmQiLCAiU2t1bGwiLCAiU2xhY2siLCAiU2xhc2giLCAiU3F1YXJlU2xhc2giLCAiU2xpY2UiLCAiU2xpZGVyc1ZlcnRpY2FsIiwgIlNsaWRlcnNIb3Jpem9udGFsIiwgIlNtYXJ0cGhvbmUiLCAiU21hcnRwaG9uZUNoYXJnaW5nIiwgIlNtYXJ0cGhvbmVOZmMiLCAiU21pbGUiLCAiU21pbGVQbHVzIiwgIlNuYWlsIiwgIlNub3dmbGFrZSIsICJTb2FwRGlzcGVuc2VyRHJvcGxldCIsICJTb2ZhIiwgIlNvbGFyUGFuZWwiLCAiU291cCIsICJTcGFjZSIsICJTcGFkZSIsICJTcGFya2xlIiwgIlNwYXJrbGVzIiwgIlNwZWFrZXIiLCAiU3BlZWNoIiwgIlNwZWxsQ2hlY2siLCAiU3BlbGxDaGVjazIiLCAiU3BsaW5lIiwgIlNwbGluZVBvaW50ZXIiLCAiU3BsaXQiLCAiU3F1YXJlU3BsaXRIb3Jpem9udGFsIiwgIlNxdWFyZVNwbGl0VmVydGljYWwiLCAiU3Bvb2wiLCAiU3BvdGxpZ2h0IiwgIlNwcmF5Q2FuIiwgIlNwcm91dCIsICJTcXVhcmUiLCAiU3F1YXJlRGFzaGVkQm90dG9tIiwgIlNxdWFyZURhc2hlZEJvdHRvbUNvZGUiLCAiU3F1YXJlRGFzaGVkVG9wU29saWQiLCAiU3F1YXJlUGF1c2UiLCAiU3F1YXJlUmFkaWNhbCIsICJTcXVhcmVSb3VuZENvcm5lciIsICJTcXVhcmVTcXVhcmUiLCAiU3F1YXJlU3RhY2siLCAiU3F1YXJlU3RhciIsICJTcXVhcmVTdG9wIiwgIlNxdWFyZVRlcm1pbmFsIiwgIlNxdWFyZVVzZXIiLCAiU3F1YXJlVXNlclJvdW5kIiwgIlNxdWFyZVgiLCAiU3F1YXJlc0V4Y2x1ZGUiLCAiU3F1YXJlc0ludGVyc2VjdCIsICJTcXVhcmVzU3VidHJhY3QiLCAiU3F1YXJlc1VuaXRlIiwgIlNxdWlyY2xlIiwgIlNxdWlyY2xlRGFzaGVkIiwgIlNxdWlycmVsIiwgIlN0YW1wIiwgIlN0YXIiLCAiU3RhckhhbGYiLCAiU3Rhck9mZiIsICJTdGVwQmFjayIsICJTdGVwRm9yd2FyZCIsICJTdGV0aG9zY29wZSIsICJTdGlja2VyIiwgIlN0aWNreU5vdGUiLCAiU3RvbmUiLCAiU3RvcmUiLCAiU3RyZXRjaEhvcml6b250YWwiLCAiU3RyZXRjaFZlcnRpY2FsIiwgIlN0cmlrZXRocm91Z2giLCAiU3Vic2NyaXB0IiwgIlN1biIsICJTdW5EaW0iLCAiU3VuTWVkaXVtIiwgIlN1bk1vb24iLCAiU3VuU25vdyIsICJTdW5yaXNlIiwgIlN1bnNldCIsICJTdXBlcnNjcmlwdCIsICJTd2F0Y2hCb29rIiwgIlN3aXNzRnJhbmMiLCAiU3dpdGNoQ2FtZXJhIiwgIlN3b3JkIiwgIlN3b3JkcyIsICJTeXJpbmdlIiwgIlRhYmxlIiwgIlRhYmxlMiIsICJUYWJsZUNlbGxzTWVyZ2UiLCAiVGFibGVDZWxsc1NwbGl0IiwgIlRhYmxlQ29sdW1uc1NwbGl0IiwgIlRhYmxlT2ZDb250ZW50cyIsICJUYWJsZVByb3BlcnRpZXMiLCAiVGFibGVSb3dzU3BsaXQiLCAiVGFibGV0IiwgIlRhYmxldFNtYXJ0cGhvbmUiLCAiVGFibGV0cyIsICJUYWciLCAiVGFncyIsICJUYWxseTEiLCAiVGFsbHkyIiwgIlRhbGx5MyIsICJUYWxseTQiLCAiVGFsbHk1IiwgIlRhbmdlbnQiLCAiVGFyZ2V0IiwgIlRlbGVzY29wZSIsICJUZW50IiwgIlRlbnRUcmVlIiwgIlRlcm1pbmFsIiwgIlRlc3RUdWJlIiwgIlRlc3RUdWJlRGlhZ29uYWwiLCAiVGVzdFR1YmVzIiwgIlRleHRDdXJzb3IiLCAiVGV4dEN1cnNvcklucHV0IiwgIlRleHRRdW90ZSIsICJUZXh0U2VhcmNoIiwgIlRleHRTZWxlY3QiLCAiVGV4dFdyYXAiLCAiVGhlYXRlciIsICJUaGVybW9tZXRlciIsICJUaGVybW9tZXRlclNub3dmbGFrZSIsICJUaGVybW9tZXRlclN1biIsICJUaHVtYnNEb3duIiwgIlRodW1ic1VwIiwgIlRpY2tldCIsICJUaWNrZXRDaGVjayIsICJUaWNrZXRNaW51cyIsICJUaWNrZXRQZXJjZW50IiwgIlRpY2tldFBsdXMiLCAiVGlja2V0U2xhc2giLCAiVGlja2V0WCIsICJUaWNrZXRzIiwgIlRpY2tldHNQbGFuZSIsICJUaW1lciIsICJUaW1lck9mZiIsICJUaW1lclJlc2V0IiwgIlRvZ2dsZUxlZnQiLCAiVG9nZ2xlUmlnaHQiLCAiVG9pbGV0IiwgIlRvb2xDYXNlIiwgIlRvb2xib3giLCAiVG9ybmFkbyIsICJUb3J1cyIsICJUb3VjaHBhZCIsICJUb3VjaHBhZE9mZiIsICJUb3dlckNvbnRyb2wiLCAiVG95QnJpY2siLCAiVHJhY3RvciIsICJUcmFmZmljQ29uZSIsICJUcmFtRnJvbnQiLCAiVHJhaW5Gcm9udCIsICJUcmFpbkZyb250VHVubmVsIiwgIlRyYWluVHJhY2siLCAiVHJhbnNnZW5kZXIiLCAiVHJhc2giLCAiVHJhc2gyIiwgIlRyZWVEZWNpZHVvdXMiLCAiVHJlZVBpbmUiLCAiVHJlZXMiLCAiVHJlbGxvIiwgIlRyZW5kaW5nRG93biIsICJUcmVuZGluZ1VwIiwgIlRyZW5kaW5nVXBEb3duIiwgIlRyaWFuZ2xlIiwgIlRyaWFuZ2xlRGFzaGVkIiwgIlRyaWFuZ2xlUmlnaHQiLCAiVHJvcGh5IiwgIlRydWNrIiwgIlRydWNrRWxlY3RyaWMiLCAiVHVya2lzaExpcmEiLCAiVHVybnRhYmxlIiwgIlR1cnRsZSIsICJUdiIsICJUdk1pbmltYWwiLCAiVHZNaW5pbWFsUGxheSIsICJUd2l0Y2giLCAiVHdpdHRlciIsICJUeXBlIiwgIlR5cGVPdXRsaW5lIiwgIlVtYnJlbGxhIiwgIlVtYnJlbGxhT2ZmIiwgIlVuZGVybGluZSIsICJVbmRvIiwgIlVuZG8yIiwgIlVuZG9Eb3QiLCAiVW5mb2xkSG9yaXpvbnRhbCIsICJVbmZvbGRWZXJ0aWNhbCIsICJVbmdyb3VwIiwgIlVubGluayIsICJVbmxpbmsyIiwgIlVucGx1ZyIsICJVcGxvYWQiLCAiVXNiIiwgIlVzZXIiLCAiVXNlclJvdW5kIiwgIlVzZXJDaGVjayIsICJVc2VyUm91bmRDaGVjayIsICJVc2VyQ29nIiwgIlVzZXJSb3VuZENvZyIsICJVc2VyTG9jayIsICJVc2VyTWludXMiLCAiVXNlclJvdW5kTWludXMiLCAiVXNlclBlbiIsICJVc2VyUGx1cyIsICJVc2VyUm91bmRQbHVzIiwgIlVzZXJSb3VuZFBlbiIsICJVc2VyUm91bmRTZWFyY2giLCAiVXNlclJvdW5kWCIsICJVc2VyU2VhcmNoIiwgIlVzZXJTdGFyIiwgIlVzZXJYIiwgIlVzZXJzIiwgIlVzZXJzUm91bmQiLCAiVXRpbGl0eVBvbGUiLCAiVmFuIiwgIlZhcmlhYmxlIiwgIlZhdWx0IiwgIlZlY3RvclNxdWFyZSIsICJWZWdhbiIsICJWZW5ldGlhbk1hc2siLCAiVmVudXMiLCAiVmVudXNBbmRNYXJzIiwgIlZpYnJhdGUiLCAiVmlicmF0ZU9mZiIsICJWaWRlbyIsICJWaWRlb09mZiIsICJWaWRlb3RhcGUiLCAiVmlldyIsICJWb2ljZW1haWwiLCAiVm9sbGV5YmFsbCIsICJWb2x1bWUiLCAiVm9sdW1lMSIsICJWb2x1bWUyIiwgIlZvbHVtZU9mZiIsICJWb2x1bWVYIiwgIlZvdGUiLCAiV2FsbGV0IiwgIldhbGxldE1pbmltYWwiLCAiV2FsbGV0Q2FyZHMiLCAiV2FsbHBhcGVyIiwgIldhbmQiLCAiV2FuZFNwYXJrbGVzIiwgIldhcmVob3VzZSIsICJXYXNoaW5nTWFjaGluZSIsICJXYXRjaCIsICJXYXZlcyIsICJXYXZlc0Fycm93RG93biIsICJXYXZlc0Fycm93VXAiLCAiV2F2ZXNMYWRkZXIiLCAiV2F5cG9pbnRzIiwgIldlYmNhbSIsICJXZWJob29rIiwgIldlYmhvb2tPZmYiLCAiV2VpZ2h0IiwgIldlaWdodFRpbGRlIiwgIldoZWF0IiwgIldoZWF0T2ZmIiwgIldob2xlV29yZCIsICJXaWZpIiwgIldpZmlDb2ciLCAiV2lmaUhpZ2giLCAiV2lmaUxvdyIsICJXaWZpT2ZmIiwgIldpZmlQZW4iLCAiV2lmaVN5bmMiLCAiV2lmaVplcm8iLCAiV2luZCIsICJXaW5kQXJyb3dEb3duIiwgIldpbmUiLCAiV2luZU9mZiIsICJXb3JrZmxvdyIsICJXb3JtIiwgIldyZW5jaCIsICJYIiwgIllvdXR1YmUiLCAiWmFwIiwgIlphcE9mZiIsICJab29tSW4iLCAiWm9vbU91dCIsICJpbml0X2ljb25zQW5kQWxpYXNlcyIsICJfX2VzbU1pbiIsICJpbml0X2FfYXJyb3dfZG93biIsICJpbml0X2FfYXJyb3dfdXAiLCAiaW5pdF9hX2xhcmdlX3NtYWxsIiwgImluaXRfYWNjZXNzaWJpbGl0eSIsICJpbml0X2FjdGl2aXR5IiwgImluaXRfYWlyX3ZlbnQiLCAiaW5pdF9hbGFybV9jbG9ja19jaGVjayIsICJpbml0X2FpcnBsYXkiLCAiaW5pdF9hbGFybV9jbG9ja19taW51cyIsICJpbml0X2FsYXJtX2Nsb2NrX29mZiIsICJpbml0X2FsYXJtX2Nsb2NrX3BsdXMiLCAiaW5pdF9hbGFybV9jbG9jayIsICJpbml0X2FsYXJtX3Ntb2tlIiwgImluaXRfYWxidW0iLCAiaW5pdF9hbGlnbl9jZW50ZXJfaG9yaXpvbnRhbCIsICJpbml0X2FsaWduX2NlbnRlcl92ZXJ0aWNhbCIsICJpbml0X2FsaWduX2VuZF9ob3Jpem9udGFsIiwgImluaXRfYWxpZ25fZW5kX3ZlcnRpY2FsIiwgImluaXRfYWxpZ25faG9yaXpvbnRhbF9kaXN0cmlidXRlX2NlbnRlciIsICJpbml0X2FsaWduX2hvcml6b250YWxfZGlzdHJpYnV0ZV9zdGFydCIsICJpbml0X2FsaWduX2hvcml6b250YWxfZGlzdHJpYnV0ZV9lbmQiLCAiaW5pdF9hbGlnbl9ob3Jpem9udGFsX2p1c3RpZnlfY2VudGVyIiwgImluaXRfYWxpZ25faG9yaXpvbnRhbF9qdXN0aWZ5X2VuZCIsICJpbml0X2FsaWduX2hvcml6b250YWxfanVzdGlmeV9zdGFydCIsICJpbml0X2FsaWduX2hvcml6b250YWxfc3BhY2VfYXJvdW5kIiwgImluaXRfYWxpZ25faG9yaXpvbnRhbF9zcGFjZV9iZXR3ZWVuIiwgImluaXRfYWxpZ25fc3RhcnRfaG9yaXpvbnRhbCIsICJpbml0X2FsaWduX3N0YXJ0X3ZlcnRpY2FsIiwgImluaXRfYWxpZ25fdmVydGljYWxfZGlzdHJpYnV0ZV9jZW50ZXIiLCAiaW5pdF9hbGlnbl92ZXJ0aWNhbF9kaXN0cmlidXRlX2VuZCIsICJpbml0X2FsaWduX3ZlcnRpY2FsX2Rpc3RyaWJ1dGVfc3RhcnQiLCAiaW5pdF9hbGlnbl92ZXJ0aWNhbF9qdXN0aWZ5X2NlbnRlciIsICJpbml0X2FsaWduX3ZlcnRpY2FsX2p1c3RpZnlfZW5kIiwgImluaXRfYWxpZ25fdmVydGljYWxfanVzdGlmeV9zdGFydCIsICJpbml0X2FsaWduX3ZlcnRpY2FsX3NwYWNlX2Fyb3VuZCIsICJpbml0X2FsaWduX3ZlcnRpY2FsX3NwYWNlX2JldHdlZW4iLCAiaW5pdF9hbWJ1bGFuY2UiLCAiaW5pdF9hbXBlcnNhbmQiLCAiaW5pdF9hbXBlcnNhbmRzIiwgImluaXRfYW1waG9yYSIsICJpbml0X2FuY2hvciIsICJpbml0X2FuZ3J5IiwgImluaXRfYW5ub3llZCIsICJpbml0X2FudGVubmEiLCAiaW5pdF9hbnZpbCIsICJpbml0X2FwZXJ0dXJlIiwgImluaXRfYXBwX3dpbmRvd19tYWMiLCAiaW5pdF9hcHBfd2luZG93IiwgImluaXRfYXBwbGUiLCAiaW5pdF9hcmNoaXZlX3Jlc3RvcmUiLCAiaW5pdF9hcmNoaXZlX3giLCAiaW5pdF9hcmNoaXZlIiwgImluaXRfYXJtY2hhaXIiLCAiaW5pdF9hcnJvd19iaWdfZG93bl9kYXNoIiwgImluaXRfYXJyb3dfYmlnX2Rvd24iLCAiaW5pdF9hcnJvd19iaWdfbGVmdF9kYXNoIiwgImluaXRfYXJyb3dfYmlnX2xlZnQiLCAiaW5pdF9hcnJvd19iaWdfcmlnaHRfZGFzaCIsICJpbml0X2Fycm93X2JpZ19yaWdodCIsICJpbml0X2Fycm93X2JpZ191cF9kYXNoIiwgImluaXRfYXJyb3dfYmlnX3VwIiwgImluaXRfYXJyb3dfZG93bl8wXzEiLCAiaW5pdF9hcnJvd19kb3duXzFfMCIsICJpbml0X2Fycm93X2Rvd25fYV96IiwgImluaXRfYXJyb3dfZG93bl9mcm9tX2xpbmUiLCAiaW5pdF9hcnJvd19kb3duX2xlZnQiLCAiaW5pdF9hcnJvd19kb3duX3JpZ2h0IiwgImluaXRfYXJyb3dfZG93bl90b19kb3QiLCAiaW5pdF9hcnJvd19kb3duX25hcnJvd193aWRlIiwgImluaXRfYXJyb3dfZG93bl90b19saW5lIiwgImluaXRfYXJyb3dfZG93bl91cCIsICJpbml0X2Fycm93X2Rvd25fd2lkZV9uYXJyb3ciLCAiaW5pdF9hcnJvd19kb3duX3pfYSIsICJpbml0X2Fycm93X2Rvd24iLCAiaW5pdF9hcnJvd19sZWZ0X3JpZ2h0IiwgImluaXRfYXJyb3dfbGVmdF9mcm9tX2xpbmUiLCAiaW5pdF9hcnJvd19sZWZ0X3RvX2xpbmUiLCAiaW5pdF9hcnJvd19sZWZ0IiwgImluaXRfYXJyb3dfcmlnaHRfZnJvbV9saW5lIiwgImluaXRfYXJyb3dfcmlnaHRfbGVmdCIsICJpbml0X2Fycm93X3JpZ2h0X3RvX2xpbmUiLCAiaW5pdF9hcnJvd19yaWdodCIsICJpbml0X2Fycm93X3VwXzBfMSIsICJpbml0X2Fycm93X3VwXzFfMCIsICJpbml0X2Fycm93X3VwX2FfeiIsICJpbml0X2Fycm93X3VwX2Rvd24iLCAiaW5pdF9hcnJvd191cF9mcm9tX2RvdCIsICJpbml0X2Fycm93X3VwX2Zyb21fbGluZSIsICJpbml0X2Fycm93X3VwX2xlZnQiLCAiaW5pdF9hcnJvd191cF9uYXJyb3dfd2lkZSIsICJpbml0X2Fycm93X3VwX3JpZ2h0IiwgImluaXRfYXJyb3dfdXBfdG9fbGluZSIsICJpbml0X2Fycm93X3VwX3dpZGVfbmFycm93IiwgImluaXRfYXJyb3dfdXBfel9hIiwgImluaXRfYXJyb3dfdXAiLCAiaW5pdF9hcnJvd3NfdXBfZnJvbV9saW5lIiwgImluaXRfYXN0ZXJpc2siLCAiaW5pdF9hdF9zaWduIiwgImluaXRfYXRvbSIsICJpbml0X2F1ZGlvX2xpbmVzIiwgImluaXRfYXdhcmQiLCAiaW5pdF9hdWRpb193YXZlZm9ybSIsICJpbml0X2F4ZSIsICJpbml0X2F4aXNfM2QiLCAiaW5pdF9iYWJ5IiwgImluaXRfYmFja3BhY2siLCAiaW5pdF9iYWRnZV9hbGVydCIsICJpbml0X2JhZGdlX2NlbnQiLCAiaW5pdF9iYWRnZV9jaGVjayIsICJpbml0X2JhZGdlX2RvbGxhcl9zaWduIiwgImluaXRfYmFkZ2VfZXVybyIsICJpbml0X2JhZGdlX2luZGlhbl9ydXBlZSIsICJpbml0X2JhZGdlX2luZm8iLCAiaW5pdF9iYWRnZV9qYXBhbmVzZV95ZW4iLCAiaW5pdF9iYWRnZV9taW51cyIsICJpbml0X2JhZGdlX3BlcmNlbnQiLCAiaW5pdF9iYWRnZV9wbHVzIiwgImluaXRfYmFkZ2VfcG91bmRfc3RlcmxpbmciLCAiaW5pdF9iYWRnZV9xdWVzdGlvbl9tYXJrIiwgImluaXRfYmFkZ2VfcnVzc2lhbl9ydWJsZSIsICJpbml0X2JhZGdlX3N3aXNzX2ZyYW5jIiwgImluaXRfYmFkZ2VfdHVya2lzaF9saXJhIiwgImluaXRfYmFkZ2VfeCIsICJpbml0X2JhZGdlIiwgImluaXRfYmFnZ2FnZV9jbGFpbSIsICJpbml0X2JhbGxvb24iLCAiaW5pdF9iYW4iLCAiaW5pdF9iYW5hbmEiLCAiaW5pdF9iYW5kYWdlIiwgImluaXRfYmFua25vdGVfYXJyb3dfZG93biIsICJpbml0X2Jhbmtub3RlX2Fycm93X3VwIiwgImluaXRfYmFua25vdGVfeCIsICJpbml0X2Jhbmtub3RlIiwgImluaXRfYmFyY29kZSIsICJpbml0X2JhcnJlbCIsICJpbml0X2Jhc2VsaW5lIiwgImluaXRfYmF0aCIsICJpbml0X2JhdHRlcnlfY2hhcmdpbmciLCAiaW5pdF9iYXR0ZXJ5X2Z1bGwiLCAiaW5pdF9iYXR0ZXJ5X2xvdyIsICJpbml0X2JhdHRlcnlfcGx1cyIsICJpbml0X2JhdHRlcnlfbWVkaXVtIiwgImluaXRfYmF0dGVyeV93YXJuaW5nIiwgImluaXRfYmF0dGVyeSIsICJpbml0X2JlYWtlciIsICJpbml0X2JlYW5fb2ZmIiwgImluaXRfYmVhbiIsICJpbml0X2JlZF9kb3VibGUiLCAiaW5pdF9iZWRfc2luZ2xlIiwgImluaXRfYmVkIiwgImluaXRfYmVlZiIsICJpbml0X2JlZXJfb2ZmIiwgImluaXRfYmVlciIsICJpbml0X2JlbGxfZG90IiwgImluaXRfYmVsbF9lbGVjdHJpYyIsICJpbml0X2JlbGxfbWludXMiLCAiaW5pdF9iZWxsX29mZiIsICJpbml0X2JlbGxfcGx1cyIsICJpbml0X2JlbGxfcmluZyIsICJpbml0X2JlbGwiLCAiaW5pdF9iZXR3ZWVuX2hvcml6b250YWxfZW5kIiwgImluaXRfYmV0d2Vlbl9ob3Jpem9udGFsX3N0YXJ0IiwgImluaXRfYmV0d2Vlbl92ZXJ0aWNhbF9lbmQiLCAiaW5pdF9iZXR3ZWVuX3ZlcnRpY2FsX3N0YXJ0IiwgImluaXRfYmljZXBzX2ZsZXhlZCIsICJpbml0X2Jpa2UiLCAiaW5pdF9iaW5hcnkiLCAiaW5pdF9iaW9oYXphcmQiLCAiaW5pdF9iaW5vY3VsYXJzIiwgImluaXRfYmlyZGhvdXNlIiwgImluaXRfYmlyZCIsICJpbml0X2JpdGNvaW4iLCAiaW5pdF9ibGVuZCIsICJpbml0X2JsaW5kcyIsICJpbml0X2Jsb2NrcyIsICJpbml0X2JsdWV0b290aF9jb25uZWN0ZWQiLCAiaW5pdF9ibHVldG9vdGhfb2ZmIiwgImluaXRfYmx1ZXRvb3RoX3NlYXJjaGluZyIsICJpbml0X2JsdWV0b290aCIsICJpbml0X2JvbGQiLCAiaW5pdF9ib2x0IiwgImluaXRfYm9tYiIsICJpbml0X2JvbmUiLCAiaW5pdF9ib29rX2EiLCAiaW5pdF9ib29rX2FsZXJ0IiwgImluaXRfYm9va19hdWRpbyIsICJpbml0X2Jvb2tfY2hlY2siLCAiaW5pdF9ib29rX2NvcHkiLCAiaW5pdF9ib29rX2Rhc2hlZCIsICJpbml0X2Jvb2tfZG93biIsICJpbml0X2Jvb2tfaGVhZHBob25lcyIsICJpbml0X2Jvb2tfaGVhcnQiLCAiaW5pdF9ib29rX2tleSIsICJpbml0X2Jvb2tfaW1hZ2UiLCAiaW5pdF9ib29rX2xvY2siLCAiaW5pdF9ib29rX21hcmtlZCIsICJpbml0X2Jvb2tfbWludXMiLCAiaW5pdF9ib29rX29wZW5fY2hlY2siLCAiaW5pdF9ib29rX29wZW5fdGV4dCIsICJpbml0X2Jvb2tfb3BlbiIsICJpbml0X2Jvb2tfcGx1cyIsICJpbml0X2Jvb2tfc2VhcmNoIiwgImluaXRfYm9va190ZXh0IiwgImluaXRfYm9va191cCIsICJpbml0X2Jvb2tfdHlwZSIsICJpbml0X2Jvb2tfdXBfMiIsICJpbml0X2Jvb2tfdXNlciIsICJpbml0X2Jvb2tfeCIsICJpbml0X2Jvb2siLCAiaW5pdF9ib29rbWFya19jaGVjayIsICJpbml0X2Jvb2ttYXJrX21pbnVzIiwgImluaXRfYm9va21hcmtfcGx1cyIsICJpbml0X2Jvb2ttYXJrX3giLCAiaW5pdF9ib29rbWFyayIsICJpbml0X2Jvb21fYm94IiwgImluaXRfYm90X21lc3NhZ2Vfc3F1YXJlIiwgImluaXRfYm90X29mZiIsICJpbml0X2JvdCIsICJpbml0X2JvdHRsZV93aW5lIiwgImluaXRfYm93X2Fycm93IiwgImluaXRfYm94IiwgImluaXRfYm94ZXMiLCAiaW5pdF9icmFjZXMiLCAiaW5pdF9icmFja2V0cyIsICJpbml0X2JyYWluX2NpcmN1aXQiLCAiaW5pdF9icmFpbl9jb2ciLCAiaW5pdF9icmFpbiIsICJpbml0X2JyaWNrX3dhbGxfZmlyZSIsICJpbml0X2JyaWNrX3dhbGxfc2hpZWxkIiwgImluaXRfYnJpY2tfd2FsbCIsICJpbml0X2JyaWVmY2FzZV9idXNpbmVzcyIsICJpbml0X2JyaWVmY2FzZV9jb252ZXlvcl9iZWx0IiwgImluaXRfYnJpZWZjYXNlX21lZGljYWwiLCAiaW5pdF9icmllZmNhc2UiLCAiaW5pdF9icmluZ190b19mcm9udCIsICJpbml0X2JydXNoX2NsZWFuaW5nIiwgImluaXRfYnJ1c2giLCAiaW5pdF9idWJibGVzIiwgImluaXRfYnVnX29mZiIsICJpbml0X2J1Z19wbGF5IiwgImluaXRfYnVnIiwgImluaXRfYnVpbGRpbmdfMiIsICJpbml0X2J1aWxkaW5nIiwgImluaXRfYnVzX2Zyb250IiwgImluaXRfYnVzIiwgImluaXRfY2FibGVfY2FyIiwgImluaXRfY2FibGUiLCAiaW5pdF9jYWtlX3NsaWNlIiwgImluaXRfY2FrZSIsICJpbml0X2NhbGN1bGF0b3IiLCAiaW5pdF9jYWxlbmRhcl8xIiwgImluaXRfY2FsZW5kYXJfYXJyb3dfZG93biIsICJpbml0X2NhbGVuZGFyX2Fycm93X3VwIiwgImluaXRfY2FsZW5kYXJfY2hlY2tfMiIsICJpbml0X2NhbGVuZGFyX2NoZWNrIiwgImluaXRfY2FsZW5kYXJfY29nIiwgImluaXRfY2FsZW5kYXJfY2xvY2siLCAiaW5pdF9jYWxlbmRhcl9kYXlzIiwgImluaXRfY2FsZW5kYXJfZm9sZCIsICJpbml0X2NhbGVuZGFyX2hlYXJ0IiwgImluaXRfY2FsZW5kYXJfbWludXNfMiIsICJpbml0X2NhbGVuZGFyX21pbnVzIiwgImluaXRfY2FsZW5kYXJfb2ZmIiwgImluaXRfY2FsZW5kYXJfcGx1c18yIiwgImluaXRfY2FsZW5kYXJfcGx1cyIsICJpbml0X2NhbGVuZGFyX3JhbmdlIiwgImluaXRfY2FsZW5kYXJfc2VhcmNoIiwgImluaXRfY2FsZW5kYXJfc3luYyIsICJpbml0X2NhbGVuZGFyX3hfMiIsICJpbml0X2NhbGVuZGFyX3giLCAiaW5pdF9jYWxlbmRhciIsICJpbml0X2NhbGVuZGFycyIsICJpbml0X2NhbWVyYV9vZmYiLCAiaW5pdF9jYW1lcmEiLCAiaW5pdF9jYW5keV9jYW5lIiwgImluaXRfY2FuZHlfb2ZmIiwgImluaXRfY2FuZHkiLCAiaW5pdF9jYW5uYWJpc19vZmYiLCAiaW5pdF9jYW5uYWJpcyIsICJpbml0X2NhcHRpb25zX29mZiIsICJpbml0X2NhcHRpb25zIiwgImluaXRfY2FyX2Zyb250IiwgImluaXRfY2FyX3RheGlfZnJvbnQiLCAiaW5pdF9jYXIiLCAiaW5pdF9jYXJhdmFuIiwgImluaXRfY2FyZF9zaW0iLCAiaW5pdF9jYXJyb3QiLCAiaW5pdF9jYXNlX2xvd2VyIiwgImluaXRfY2FzZV9zZW5zaXRpdmUiLCAiaW5pdF9jYXNlX3VwcGVyIiwgImluaXRfY2Fzc2V0dGVfdGFwZSIsICJpbml0X2Nhc3QiLCAiaW5pdF9jYXN0bGUiLCAiaW5pdF9jYXQiLCAiaW5pdF9jY3R2IiwgImluaXRfY2hhcnRfYXJlYSIsICJpbml0X2NoYXJ0X2Jhcl9iaWciLCAiaW5pdF9jaGFydF9iYXJfZGVjcmVhc2luZyIsICJpbml0X2NoYXJ0X2Jhcl9pbmNyZWFzaW5nIiwgImluaXRfY2hhcnRfYmFyX3N0YWNrZWQiLCAiaW5pdF9jaGFydF9iYXIiLCAiaW5pdF9jaGFydF9jYW5kbGVzdGljayIsICJpbml0X2NoYXJ0X2NvbHVtbl9iaWciLCAiaW5pdF9jaGFydF9jb2x1bW5fZGVjcmVhc2luZyIsICJpbml0X2NoYXJ0X2NvbHVtbl9pbmNyZWFzaW5nIiwgImluaXRfY2hhcnRfY29sdW1uX3N0YWNrZWQiLCAiaW5pdF9jaGFydF9jb2x1bW4iLCAiaW5pdF9jaGFydF9nYW50dCIsICJpbml0X2NoYXJ0X2xpbmUiLCAiaW5pdF9jaGFydF9uZXR3b3JrIiwgImluaXRfY2hhcnRfbm9fYXhlc19jb2x1bW5fZGVjcmVhc2luZyIsICJpbml0X2NoYXJ0X25vX2F4ZXNfY29sdW1uX2luY3JlYXNpbmciLCAiaW5pdF9jaGFydF9ub19heGVzX2NvbHVtbiIsICJpbml0X2NoYXJ0X25vX2F4ZXNfY29tYmluZWQiLCAiaW5pdF9jaGFydF9ub19heGVzX2dhbnR0IiwgImluaXRfY2hhcnRfcGllIiwgImluaXRfY2hhcnRfc2NhdHRlciIsICJpbml0X2NoYXJ0X3NwbGluZSIsICJpbml0X2NoZWNrX2NoZWNrIiwgImluaXRfY2hlY2tfbGluZSIsICJpbml0X2NoZWNrIiwgImluaXRfY2hlZl9oYXQiLCAiaW5pdF9jaGVycnkiLCAiaW5pdF9jaGVzc19iaXNob3AiLCAiaW5pdF9jaGVzc19raW5nIiwgImluaXRfY2hlc3Nfa25pZ2h0IiwgImluaXRfY2hlc3NfcGF3biIsICJpbml0X2NoZXNzX3F1ZWVuIiwgImluaXRfY2hldnJvbl9kb3duIiwgImluaXRfY2hldnJvbl9maXJzdCIsICJpbml0X2NoZXNzX3Jvb2siLCAiaW5pdF9jaGV2cm9uX2xhc3QiLCAiaW5pdF9jaGV2cm9uX2xlZnQiLCAiaW5pdF9jaGV2cm9uX3JpZ2h0IiwgImluaXRfY2hldnJvbl91cCIsICJpbml0X2NoZXZyb25zX2Rvd25fdXAiLCAiaW5pdF9jaGV2cm9uc19kb3duIiwgImluaXRfY2hldnJvbnNfbGVmdF9yaWdodF9lbGxpcHNpcyIsICJpbml0X2NoZXZyb25zX2xlZnRfcmlnaHQiLCAiaW5pdF9jaGV2cm9uc19sZWZ0IiwgImluaXRfY2hldnJvbnNfcmlnaHRfbGVmdCIsICJpbml0X2NoZXZyb25zX3JpZ2h0IiwgImluaXRfY2hldnJvbnNfdXBfZG93biIsICJpbml0X2NoZXZyb25zX3VwIiwgImluaXRfY2h1cmNoIiwgImluaXRfY2lnYXJldHRlX29mZiIsICJpbml0X2Nocm9taXVtIiwgImluaXRfY2lnYXJldHRlIiwgImluaXRfY2lyY2xlX2FsZXJ0IiwgImluaXRfY2lyY2xlX2Fycm93X2Rvd24iLCAiaW5pdF9jaXJjbGVfYXJyb3dfbGVmdCIsICJpbml0X2NpcmNsZV9hcnJvd19vdXRfZG93bl9sZWZ0IiwgImluaXRfY2lyY2xlX2Fycm93X291dF9kb3duX3JpZ2h0IiwgImluaXRfY2lyY2xlX2Fycm93X291dF91cF9sZWZ0IiwgImluaXRfY2lyY2xlX2Fycm93X291dF91cF9yaWdodCIsICJpbml0X2NpcmNsZV9hcnJvd19yaWdodCIsICJpbml0X2NpcmNsZV9hcnJvd191cCIsICJpbml0X2NpcmNsZV9jaGVjayIsICJpbml0X2NpcmNsZV9jaGVja19iaWciLCAiaW5pdF9jaXJjbGVfY2hldnJvbl9kb3duIiwgImluaXRfY2lyY2xlX2NoZXZyb25fbGVmdCIsICJpbml0X2NpcmNsZV9jaGV2cm9uX3JpZ2h0IiwgImluaXRfY2lyY2xlX2NoZXZyb25fdXAiLCAiaW5pdF9jaXJjbGVfZGFzaGVkIiwgImluaXRfY2lyY2xlX2RpdmlkZSIsICJpbml0X2NpcmNsZV9kb2xsYXJfc2lnbiIsICJpbml0X2NpcmNsZV9kb3RfZGFzaGVkIiwgImluaXRfY2lyY2xlX2RvdCIsICJpbml0X2NpcmNsZV9lbGxpcHNpcyIsICJpbml0X2NpcmNsZV9lcXVhbCIsICJpbml0X2NpcmNsZV9mYWRpbmdfYXJyb3dfdXAiLCAiaW5pdF9jaXJjbGVfZmFkaW5nX3BsdXMiLCAiaW5pdF9jaXJjbGVfZ2F1Z2UiLCAiaW5pdF9jaXJjbGVfbWludXMiLCAiaW5pdF9jaXJjbGVfb2ZmIiwgImluaXRfY2lyY2xlX3Bhcmtpbmdfb2ZmIiwgImluaXRfY2lyY2xlX3BhcmtpbmciLCAiaW5pdF9jaXJjbGVfcGF1c2UiLCAiaW5pdF9jaXJjbGVfcGVyY2VudCIsICJpbml0X2NpcmNsZV9waWxlIiwgImluaXRfY2lyY2xlX3BsYXkiLCAiaW5pdF9jaXJjbGVfcG91bmRfc3RlcmxpbmciLCAiaW5pdF9jaXJjbGVfcGx1cyIsICJpbml0X2NpcmNsZV9wb3dlciIsICJpbml0X2NpcmNsZV9xdWVzdGlvbl9tYXJrIiwgImluaXRfY2lyY2xlX3NsYXNoXzIiLCAiaW5pdF9jaXJjbGVfc2xhc2giLCAiaW5pdF9jaXJjbGVfc21hbGwiLCAiaW5pdF9jaXJjbGVfc3RhciIsICJpbml0X2NpcmNsZV9zdG9wIiwgImluaXRfY2lyY2xlX3VzZXJfcm91bmQiLCAiaW5pdF9jaXJjbGVfdXNlciIsICJpbml0X2NpcmNsZV94IiwgImluaXRfY2lyY2xlIiwgImluaXRfY2lyY3VpdF9ib2FyZCIsICJpbml0X2NpdHJ1cyIsICJpbml0X2NsYXBwZXJib2FyZCIsICJpbml0X2NsaXBib2FyZF9jaGVjayIsICJpbml0X2NsaXBib2FyZF9jbG9jayIsICJpbml0X2NsaXBib2FyZF9jb3B5IiwgImluaXRfY2xpcGJvYXJkX2xpc3QiLCAiaW5pdF9jbGlwYm9hcmRfbWludXMiLCAiaW5pdF9jbGlwYm9hcmRfcGFzdGUiLCAiaW5pdF9jbGlwYm9hcmRfcGVuX2xpbmUiLCAiaW5pdF9jbGlwYm9hcmRfcGVuIiwgImluaXRfY2xpcGJvYXJkX3BsdXMiLCAiaW5pdF9jbGlwYm9hcmRfdHlwZSIsICJpbml0X2NsaXBib2FyZF94IiwgImluaXRfY2xpcGJvYXJkIiwgImluaXRfY2xvY2tfMSIsICJpbml0X2Nsb2NrXzEwIiwgImluaXRfY2xvY2tfMTEiLCAiaW5pdF9jbG9ja18xMiIsICJpbml0X2Nsb2NrXzIiLCAiaW5pdF9jbG9ja18zIiwgImluaXRfY2xvY2tfNCIsICJpbml0X2Nsb2NrXzUiLCAiaW5pdF9jbG9ja182IiwgImluaXRfY2xvY2tfNyIsICJpbml0X2Nsb2NrXzgiLCAiaW5pdF9jbG9ja185IiwgImluaXRfY2xvY2tfYWxlcnQiLCAiaW5pdF9jbG9ja19hcnJvd19kb3duIiwgImluaXRfY2xvY2tfYXJyb3dfdXAiLCAiaW5pdF9jbG9ja19jaGVjayIsICJpbml0X2Nsb2NrX2ZhZGluZyIsICJpbml0X2Nsb2NrX3BsdXMiLCAiaW5pdF9jbG9jayIsICJpbml0X2Nsb3NlZF9jYXB0aW9uIiwgImluaXRfY2xvdWRfYWxlcnQiLCAiaW5pdF9jbG91ZF9iYWNrdXAiLCAiaW5pdF9jbG91ZF9jaGVjayIsICJpbml0X2Nsb3VkX2NvZyIsICJpbml0X2Nsb3VkX2Rvd25sb2FkIiwgImluaXRfY2xvdWRfZHJpenpsZSIsICJpbml0X2Nsb3VkX2ZvZyIsICJpbml0X2Nsb3VkX2hhaWwiLCAiaW5pdF9jbG91ZF9saWdodG5pbmciLCAiaW5pdF9jbG91ZF9tb29uX3JhaW4iLCAiaW5pdF9jbG91ZF9tb29uIiwgImluaXRfY2xvdWRfcmFpbl93aW5kIiwgImluaXRfY2xvdWRfb2ZmIiwgImluaXRfY2xvdWRfcmFpbiIsICJpbml0X2Nsb3VkX3Nub3ciLCAiaW5pdF9jbG91ZF9zdW5fcmFpbiIsICJpbml0X2Nsb3VkX3N1biIsICJpbml0X2Nsb3VkX3N5bmMiLCAiaW5pdF9jbG91ZF91cGxvYWQiLCAiaW5pdF9jbG91ZCIsICJpbml0X2Nsb3VkeSIsICJpbml0X2Nsb3ZlciIsICJpbml0X2NsdWIiLCAiaW5pdF9jb2RlX3htbCIsICJpbml0X2NvZGUiLCAiaW5pdF9jb2RlcGVuIiwgImluaXRfY29kZXNhbmRib3giLCAiaW5pdF9jb2ZmZWUiLCAiaW5pdF9jb2lucyIsICJpbml0X2NvZyIsICJpbml0X2NvbHVtbnNfMiIsICJpbml0X2NvbHVtbnNfM19jb2ciLCAiaW5pdF9jb2x1bW5zXzMiLCAiaW5pdF9jb2x1bW5zXzQiLCAiaW5pdF9jb21iaW5lIiwgImluaXRfY29tbWFuZCIsICJpbml0X2NvbXBhc3MiLCAiaW5pdF9jb21wb25lbnQiLCAiaW5pdF9jb21wdXRlciIsICJpbml0X2NvbmNpZXJnZV9iZWxsIiwgImluaXRfY29uZSIsICJpbml0X2NvbnN0cnVjdGlvbiIsICJpbml0X2NvbnRhY3Rfcm91bmQiLCAiaW5pdF9jb250YWN0IiwgImluaXRfY29udGFpbmVyIiwgImluaXRfY29udHJhc3QiLCAiaW5pdF9jb29raWUiLCAiaW5pdF9jb29raW5nX3BvdCIsICJpbml0X2NvcHlfY2hlY2siLCAiaW5pdF9jb3B5X21pbnVzIiwgImluaXRfY29weV9wbHVzIiwgImluaXRfY29weV9zbGFzaCIsICJpbml0X2NvcHkiLCAiaW5pdF9jb3B5X3giLCAiaW5pdF9jb3B5bGVmdCIsICJpbml0X2NvcHlyaWdodCIsICJpbml0X2Nvcm5lcl9kb3duX3JpZ2h0IiwgImluaXRfY29ybmVyX2Rvd25fbGVmdCIsICJpbml0X2Nvcm5lcl9sZWZ0X2Rvd24iLCAiaW5pdF9jb3JuZXJfbGVmdF91cCIsICJpbml0X2Nvcm5lcl9yaWdodF9kb3duIiwgImluaXRfY29ybmVyX3JpZ2h0X3VwIiwgImluaXRfY29ybmVyX3VwX2xlZnQiLCAiaW5pdF9jb3JuZXJfdXBfcmlnaHQiLCAiaW5pdF9jcHUiLCAiaW5pdF9jcmVhdGl2ZV9jb21tb25zIiwgImluaXRfY3JlZGl0X2NhcmQiLCAiaW5pdF9jcm9pc3NhbnQiLCAiaW5pdF9jcm9wIiwgImluaXRfY3Jvc3MiLCAiaW5pdF9jcm9zc2hhaXIiLCAiaW5pdF9jcm93biIsICJpbml0X2N1Ym9pZCIsICJpbml0X2N1cF9zb2RhIiwgImluaXRfY3VycmVuY3kiLCAiaW5pdF9jeWxpbmRlciIsICJpbml0X2RhbSIsICJpbml0X2RhdGFiYXNlX2JhY2t1cCIsICJpbml0X2RhdGFiYXNlX3phcCIsICJpbml0X2RhdGFiYXNlIiwgImluaXRfZGVjaW1hbHNfYXJyb3dfbGVmdCIsICJpbml0X2RlY2ltYWxzX2Fycm93X3JpZ2h0IiwgImluaXRfZGVsZXRlIiwgImluaXRfZGVzc2VydCIsICJpbml0X2RpYW1ldGVyIiwgImluaXRfZGlhbW9uZF9taW51cyIsICJpbml0X2RpYW1vbmRfcGVyY2VudCIsICJpbml0X2RpYW1vbmRfcGx1cyIsICJpbml0X2RpY2VfMSIsICJpbml0X2RpYW1vbmQiLCAiaW5pdF9kaWNlXzIiLCAiaW5pdF9kaWNlXzMiLCAiaW5pdF9kaWNlXzUiLCAiaW5pdF9kaWNlXzYiLCAiaW5pdF9kaWNlXzQiLCAiaW5pdF9kaWNlcyIsICJpbml0X2RpZmYiLCAiaW5pdF9kaXNjXzIiLCAiaW5pdF9kaXNjXzMiLCAiaW5pdF9kaXNjX2FsYnVtIiwgImluaXRfZGlzYyIsICJpbml0X2RpdmlkZSIsICJpbml0X2RuYV9vZmYiLCAiaW5pdF9kb2NrIiwgImluaXRfZG5hIiwgImluaXRfZG9nIiwgImluaXRfZG9sbGFyX3NpZ24iLCAiaW5pdF9kb251dCIsICJpbml0X2Rvb3JfY2xvc2VkX2xvY2tlZCIsICJpbml0X2Rvb3JfY2xvc2VkIiwgImluaXRfZG90IiwgImluaXRfZG9vcl9vcGVuIiwgImluaXRfZG93bmxvYWQiLCAiaW5pdF9kcmFmdGluZ19jb21wYXNzIiwgImluaXRfZHJhbWEiLCAiaW5pdF9kcmliYmJsZSIsICJpbml0X2RyaWxsIiwgImluaXRfZHJvbmUiLCAiaW5pdF9kcm9wbGV0X29mZiIsICJpbml0X2Ryb3BsZXQiLCAiaW5pdF9kcm9wbGV0cyIsICJpbml0X2RydW0iLCAiaW5pdF9kcnVtc3RpY2siLCAiaW5pdF9kdW1iYmVsbCIsICJpbml0X2Vhcl9vZmYiLCAiaW5pdF9lYXIiLCAiaW5pdF9lYXJ0aF9sb2NrIiwgImluaXRfZWFydGgiLCAiaW5pdF9lY2xpcHNlIiwgImluaXRfZWdnX2ZyaWVkIiwgImluaXRfZWdnX29mZiIsICJpbml0X2VnZyIsICJpbml0X2VsbGlwc2lzX3ZlcnRpY2FsIiwgImluaXRfZWxsaXBzaXMiLCAiaW5pdF9lcXVhbF9hcHByb3hpbWF0ZWx5IiwgImluaXRfZXF1YWxfbm90IiwgImluaXRfZXJhc2VyIiwgImluaXRfZXF1YWwiLCAiaW5pdF9ldGhlcm5ldF9wb3J0IiwgImluaXRfZXVybyIsICJpbml0X2V2X2NoYXJnZXIiLCAiaW5pdF9leHRlcm5hbF9saW5rIiwgImluaXRfZXhwYW5kIiwgImluaXRfZXllX2Nsb3NlZCIsICJpbml0X2V5ZV9vZmYiLCAiaW5pdF9leWUiLCAiaW5pdF9mYWN0b3J5IiwgImluaXRfZmFjZWJvb2siLCAiaW5pdF9mYW4iLCAiaW5pdF9mYXN0X2ZvcndhcmQiLCAiaW5pdF9mZWF0aGVyIiwgImluaXRfZmVuY2UiLCAiaW5pdF9mZXJyaXNfd2hlZWwiLCAiaW5pdF9maWdtYSIsICJpbml0X2ZpbGVfYXJjaGl2ZSIsICJpbml0X2ZpbGVfYXhpc18zZCIsICJpbml0X2ZpbGVfYmFkZ2UiLCAiaW5pdF9maWxlX2JyYWNlc19jb3JuZXIiLCAiaW5pdF9maWxlX2JveCIsICJpbml0X2ZpbGVfYnJhY2VzIiwgImluaXRfZmlsZV9jaGFydF9jb2x1bW5faW5jcmVhc2luZyIsICJpbml0X2ZpbGVfY2hhcnRfY29sdW1uIiwgImluaXRfZmlsZV9jaGFydF9saW5lIiwgImluaXRfZmlsZV9jaGFydF9waWUiLCAiaW5pdF9maWxlX2NoZWNrX2Nvcm5lciIsICJpbml0X2ZpbGVfY2hlY2siLCAiaW5pdF9maWxlX2Nsb2NrIiwgImluaXRfZmlsZV9jb2RlX2Nvcm5lciIsICJpbml0X2ZpbGVfY29kZSIsICJpbml0X2ZpbGVfY29nIiwgImluaXRfZmlsZV9kaWZmIiwgImluaXRfZmlsZV9kaWdpdCIsICJpbml0X2ZpbGVfZG93biIsICJpbml0X2ZpbGVfZXhjbGFtYXRpb25fcG9pbnQiLCAiaW5pdF9maWxlX2hlYWRwaG9uZSIsICJpbml0X2ZpbGVfaGVhcnQiLCAiaW5pdF9maWxlX2ltYWdlIiwgImluaXRfZmlsZV9pbnB1dCIsICJpbml0X2ZpbGVfa2V5IiwgImluaXRfZmlsZV9sb2NrIiwgImluaXRfZmlsZV9taW51c19jb3JuZXIiLCAiaW5pdF9maWxlX211c2ljIiwgImluaXRfZmlsZV9taW51cyIsICJpbml0X2ZpbGVfb3V0cHV0IiwgImluaXRfZmlsZV9wZW5fbGluZSIsICJpbml0X2ZpbGVfcGVuIiwgImluaXRfZmlsZV9wbGF5IiwgImluaXRfZmlsZV9wbHVzIiwgImluaXRfZmlsZV9xdWVzdGlvbl9tYXJrIiwgImluaXRfZmlsZV9wbHVzX2Nvcm5lciIsICJpbml0X2ZpbGVfc2NhbiIsICJpbml0X2ZpbGVfc2VhcmNoX2Nvcm5lciIsICJpbml0X2ZpbGVfc2VhcmNoIiwgImluaXRfZmlsZV9zaWduYWwiLCAiaW5pdF9maWxlX3NwcmVhZHNoZWV0IiwgImluaXRfZmlsZV9zbGlkZXJzIiwgImluaXRfZmlsZV9zdGFjayIsICJpbml0X2ZpbGVfc3ltbGluayIsICJpbml0X2ZpbGVfdGVybWluYWwiLCAiaW5pdF9maWxlX3RleHQiLCAiaW5pdF9maWxlX3R5cGVfY29ybmVyIiwgImluaXRfZmlsZV90eXBlIiwgImluaXRfZmlsZV91cCIsICJpbml0X2ZpbGVfdXNlciIsICJpbml0X2ZpbGVfdm9sdW1lIiwgImluaXRfZmlsZV92aWRlb19jYW1lcmEiLCAiaW5pdF9maWxlX3hfY29ybmVyIiwgImluaXRfZmlsZV94IiwgImluaXRfZmlsZSIsICJpbml0X2ZpbGVzIiwgImluaXRfZmlsbSIsICJpbml0X2ZpbmdlcnByaW50X3BhdHRlcm4iLCAiaW5pdF9maXJlX2V4dGluZ3Vpc2hlciIsICJpbml0X2Zpc2hfb2ZmIiwgImluaXRfZmlzaF9zeW1ib2wiLCAiaW5pdF9maXNoIiwgImluaXRfZmlzaGluZ19ob29rIiwgImluaXRfZmxhZ19vZmYiLCAiaW5pdF9mbGFnX3RyaWFuZ2xlX2xlZnQiLCAiaW5pdF9mbGFnX3RyaWFuZ2xlX3JpZ2h0IiwgImluaXRfZmxhbWVfa2luZGxpbmciLCAiaW5pdF9mbGFnIiwgImluaXRfZmxhbWUiLCAiaW5pdF9mbGFzaGxpZ2h0X29mZiIsICJpbml0X2ZsYXNobGlnaHQiLCAiaW5pdF9mbGFza19jb25pY2FsX29mZiIsICJpbml0X2ZsYXNrX3JvdW5kIiwgImluaXRfZmxhc2tfY29uaWNhbCIsICJpbml0X2ZsaXBfaG9yaXpvbnRhbCIsICJpbml0X2ZsaXBfaG9yaXpvbnRhbF8yIiwgImluaXRfZmxpcF92ZXJ0aWNhbF8yIiwgImluaXRfZmxpcF92ZXJ0aWNhbCIsICJpbml0X2Zsb3dlcl8yIiwgImluaXRfZmxvd2VyIiwgImluaXRfZm9jdXMiLCAiaW5pdF9mb2xkX2hvcml6b250YWwiLCAiaW5pdF9mb2xkX3ZlcnRpY2FsIiwgImluaXRfZm9sZGVyX2FyY2hpdmUiLCAiaW5pdF9mb2xkZXJfY2hlY2siLCAiaW5pdF9mb2xkZXJfY2xvY2siLCAiaW5pdF9mb2xkZXJfY2xvc2VkIiwgImluaXRfZm9sZGVyX2NvZGUiLCAiaW5pdF9mb2xkZXJfY29nIiwgImluaXRfZm9sZGVyX2RvdCIsICJpbml0X2ZvbGRlcl9kb3duIiwgImluaXRfZm9sZGVyX2dpdF8yIiwgImluaXRfZm9sZGVyX2dpdCIsICJpbml0X2ZvbGRlcl9oZWFydCIsICJpbml0X2ZvbGRlcl9pbnB1dCIsICJpbml0X2ZvbGRlcl9rYW5iYW4iLCAiaW5pdF9mb2xkZXJfa2V5IiwgImluaXRfZm9sZGVyX2xvY2siLCAiaW5pdF9mb2xkZXJfbWludXMiLCAiaW5pdF9mb2xkZXJfb3Blbl9kb3QiLCAiaW5pdF9mb2xkZXJfb3BlbiIsICJpbml0X2ZvbGRlcl9vdXRwdXQiLCAiaW5pdF9mb2xkZXJfcGVuIiwgImluaXRfZm9sZGVyX3BsdXMiLCAiaW5pdF9mb2xkZXJfcm9vdCIsICJpbml0X2ZvbGRlcl9zZWFyY2hfMiIsICJpbml0X2ZvbGRlcl9zZWFyY2giLCAiaW5pdF9mb2xkZXJfc3ltbGluayIsICJpbml0X2ZvbGRlcl9zeW5jIiwgImluaXRfZm9sZGVyX3RyZWUiLCAiaW5pdF9mb2xkZXJfdXAiLCAiaW5pdF9mb2xkZXJfeCIsICJpbml0X2ZvbGRlciIsICJpbml0X2ZvbGRlcnMiLCAiaW5pdF9mb290cHJpbnRzIiwgImluaXRfZm9ya2xpZnQiLCAiaW5pdF9mb3JtIiwgImluaXRfZm9yd2FyZCIsICJpbml0X2ZyYW1lIiwgImluaXRfZnJhbWVyIiwgImluaXRfZnJvd24iLCAiaW5pdF9mdWVsIiwgImluaXRfZnVsbHNjcmVlbiIsICJpbml0X2Z1bm5lbF9wbHVzIiwgImluaXRfZnVubmVsX3giLCAiaW5pdF9mdW5uZWwiLCAiaW5pdF9nYWxsZXJ5X2hvcml6b250YWxfZW5kIiwgImluaXRfZ2FsbGVyeV9ob3Jpem9udGFsIiwgImluaXRfZ2FsbGVyeV90aHVtYm5haWxzIiwgImluaXRfZ2FsbGVyeV92ZXJ0aWNhbF9lbmQiLCAiaW5pdF9nYWxsZXJ5X3ZlcnRpY2FsIiwgImluaXRfZ2FtZXBhZF8yIiwgImluaXRfZ2FtZXBhZF9kaXJlY3Rpb25hbCIsICJpbml0X2dhbWVwYWQiLCAiaW5pdF9nYXVnZSIsICJpbml0X2dhdmVsIiwgImluaXRfZ2VtIiwgImluaXRfZ2VvcmdpYW5fbGFyaSIsICJpbml0X2dob3N0IiwgImluaXRfZ2lmdCIsICJpbml0X2dpdF9icmFuY2hfbWludXMiLCAiaW5pdF9naXRfYnJhbmNoIiwgImluaXRfZ2l0X2JyYW5jaF9wbHVzIiwgImluaXRfZ2l0X2NvbW1pdF9ob3Jpem9udGFsIiwgImluaXRfZ2l0X2NvbW1pdF92ZXJ0aWNhbCIsICJpbml0X2dpdF9jb21wYXJlX2Fycm93cyIsICJpbml0X2dpdF9jb21wYXJlIiwgImluaXRfZ2l0X2ZvcmsiLCAiaW5pdF9naXRfZ3JhcGgiLCAiaW5pdF9naXRfbWVyZ2UiLCAiaW5pdF9naXRfcHVsbF9yZXF1ZXN0X2Fycm93IiwgImluaXRfZ2l0X3B1bGxfcmVxdWVzdF9jbG9zZWQiLCAiaW5pdF9naXRfcHVsbF9yZXF1ZXN0X2NyZWF0ZV9hcnJvdyIsICJpbml0X2dpdF9wdWxsX3JlcXVlc3RfY3JlYXRlIiwgImluaXRfZ2l0X3B1bGxfcmVxdWVzdF9kcmFmdCIsICJpbml0X2dpdF9wdWxsX3JlcXVlc3QiLCAiaW5pdF9naXRodWIiLCAiaW5pdF9naXRsYWIiLCAiaW5pdF9nbGFzc193YXRlciIsICJpbml0X2dsYXNzZXMiLCAiaW5pdF9nbG9iZV9sb2NrIiwgImluaXRfZ2xvYmUiLCAiaW5pdF9nb2FsIiwgImluaXRfZ3B1IiwgImluaXRfZ3JhZHVhdGlvbl9jYXAiLCAiaW5pdF9ncmFwZSIsICJpbml0X2dyaWRfMngyX2NoZWNrIiwgImluaXRfZ3JpZF8yeDJfcGx1cyIsICJpbml0X2dyaWRfMngyX3giLCAiaW5pdF9ncmlkXzJ4MiIsICJpbml0X2dyaWRfM3gyIiwgImluaXRfZ3JpZF8zeDMiLCAiaW5pdF9ncmlwX2hvcml6b250YWwiLCAiaW5pdF9ncmlwX3ZlcnRpY2FsIiwgImluaXRfZ3JpcCIsICJpbml0X2dyb3VwIiwgImluaXRfaGFtIiwgImluaXRfZ3VpdGFyIiwgImluaXRfaGFtYnVyZ2VyIiwgImluaXRfaGFtbWVyIiwgImluaXRfaGFuZF9jb2lucyIsICJpbml0X2hhbmRfZmlzdCIsICJpbml0X2hhbmRfZ3JhYiIsICJpbml0X2hhbmRfaGVhcnQiLCAiaW5pdF9oYW5kX2hlbHBpbmciLCAiaW5pdF9oYW5kX21ldGFsIiwgImluaXRfaGFuZF9wbGF0dGVyIiwgImluaXRfaGFuZCIsICJpbml0X2hhbmRiYWciLCAiaW5pdF9oYW5kc2hha2UiLCAiaW5pdF9oYXJkX2RyaXZlX2Rvd25sb2FkIiwgImluaXRfaGFyZF9kcml2ZV91cGxvYWQiLCAiaW5pdF9oYXJkX2hhdCIsICJpbml0X2hhc2giLCAiaW5pdF9oYXJkX2RyaXZlIiwgImluaXRfaGF0X2dsYXNzZXMiLCAiaW5pdF9oYXplIiwgImluaXRfaGQiLCAiaW5pdF9oZG1pX3BvcnQiLCAiaW5pdF9oZWFkaW5nXzEiLCAiaW5pdF9oZWFkaW5nXzMiLCAiaW5pdF9oZWFkaW5nXzIiLCAiaW5pdF9oZWFkaW5nXzQiLCAiaW5pdF9oZWFkaW5nXzUiLCAiaW5pdF9oZWFkaW5nXzYiLCAiaW5pdF9oZWFkaW5nIiwgImluaXRfaGVhZHBob25lX29mZiIsICJpbml0X2hlYWRwaG9uZXMiLCAiaW5pdF9oZWFkc2V0IiwgImluaXRfaGVhcnRfY3JhY2siLCAiaW5pdF9oZWFydF9oYW5kc2hha2UiLCAiaW5pdF9oZWFydF9taW51cyIsICJpbml0X2hlYXJ0X29mZiIsICJpbml0X2hlYXJ0X3BsdXMiLCAiaW5pdF9oZWFydF9wdWxzZSIsICJpbml0X2hlYXRlciIsICJpbml0X2hlYXJ0IiwgImluaXRfaGVsaWNvcHRlciIsICJpbml0X2hleGFnb24iLCAiaW5pdF9oaWdobGlnaHRlciIsICJpbml0X2hpc3RvcnkiLCAiaW5pdF9ob3AiLCAiaW5pdF9ob3Bfb2ZmIiwgImluaXRfaG9zcGl0YWwiLCAiaW5pdF9ob3RlbCIsICJpbml0X2hvdXJnbGFzcyIsICJpbml0X2hvdXNlX2hlYXJ0IiwgImluaXRfaG91c2VfcGx1ZyIsICJpbml0X2hvdXNlX3BsdXMiLCAiaW5pdF9ob3VzZV93aWZpIiwgImluaXRfaG91c2UiLCAiaW5pdF9pY2VfY3JlYW1fYm93bCIsICJpbml0X2ljZV9jcmVhbV9jb25lIiwgImluaXRfaWRfY2FyZF9sYW55YXJkIiwgImluaXRfaWRfY2FyZCIsICJpbml0X2ltYWdlX2Rvd24iLCAiaW5pdF9pbWFnZV9taW51cyIsICJpbml0X2ltYWdlX29mZiIsICJpbml0X2ltYWdlX3BsdXMiLCAiaW5pdF9pbWFnZV9wbGF5IiwgImluaXRfaW1hZ2VfdXAiLCAiaW5pdF9pbWFnZV91cHNjYWxlIiwgImluaXRfaW1hZ2UiLCAiaW5pdF9pbWFnZXMiLCAiaW5pdF9pbXBvcnQiLCAiaW5pdF9pbmJveCIsICJpbml0X2luZGlhbl9ydXBlZSIsICJpbml0X2luZmluaXR5IiwgImluaXRfaW5mbyIsICJpbml0X2luc3BlY3Rpb25fcGFuZWwiLCAiaW5pdF9pbnN0YWdyYW0iLCAiaW5pdF9pdGFsaWMiLCAiaW5pdF9pdGVyYXRpb25fY2N3IiwgImluaXRfaXRlcmF0aW9uX2N3IiwgImluaXRfamFwYW5lc2VfeWVuIiwgImluaXRfam95c3RpY2siLCAiaW5pdF9rYW5iYW4iLCAiaW5pdF9rYXlhayIsICJpbml0X2tleV9yb3VuZCIsICJpbml0X2tleV9zcXVhcmUiLCAiaW5pdF9rZXkiLCAiaW5pdF9rZXlib2FyZF9tdXNpYyIsICJpbml0X2tleWJvYXJkX29mZiIsICJpbml0X2tleWJvYXJkIiwgImluaXRfbGFtcF9jZWlsaW5nIiwgImluaXRfbGFtcF9kZXNrIiwgImluaXRfbGFtcF9mbG9vciIsICJpbml0X2xhbXBfd2FsbF9kb3duIiwgImluaXRfbGFtcF93YWxsX3VwIiwgImluaXRfbGFtcCIsICJpbml0X2xhbmRfcGxvdCIsICJpbml0X2xhbmRtYXJrIiwgImluaXRfbGFuZ3VhZ2VzIiwgImluaXRfbGFwdG9wX21pbmltYWxfY2hlY2siLCAiaW5pdF9sYXB0b3BfbWluaW1hbCIsICJpbml0X2xhcHRvcCIsICJpbml0X2xhc3NvX3NlbGVjdCIsICJpbml0X2xhc3NvIiwgImluaXRfbGF1Z2giLCAiaW5pdF9sYXllcnNfMiIsICJpbml0X2xheWVycyIsICJpbml0X2xheWVyc19wbHVzIiwgImluaXRfbGF5b3V0X2Rhc2hib2FyZCIsICJpbml0X2xheW91dF9ncmlkIiwgImluaXRfbGF5b3V0X2xpc3QiLCAiaW5pdF9sYXlvdXRfcGFuZWxfbGVmdCIsICJpbml0X2xheW91dF9wYW5lbF90b3AiLCAiaW5pdF9sYXlvdXRfdGVtcGxhdGUiLCAiaW5pdF9sZWFmIiwgImluaXRfbGVhZnlfZ3JlZW4iLCAiaW5pdF9sZWN0ZXJuIiwgImluaXRfbGlicmFyeV9iaWciLCAiaW5pdF9saWJyYXJ5IiwgImluaXRfbGlmZV9idW95IiwgImluaXRfbGlnYXR1cmUiLCAiaW5pdF9saWdodGJ1bGJfb2ZmIiwgImluaXRfbGlnaHRidWxiIiwgImluaXRfbGluZV9zcXVpZ2dsZSIsICJpbml0X2xpbmtfMiIsICJpbml0X2xpbmtfMl9vZmYiLCAiaW5pdF9saW5rIiwgImluaXRfbGlua2VkaW4iLCAiaW5pdF9saXN0X2NoZWNrIiwgImluaXRfbGlzdF9jaGVja3MiLCAiaW5pdF9saXN0X2NoZXZyb25zX2Rvd25fdXAiLCAiaW5pdF9saXN0X2NoZXZyb25zX3VwX2Rvd24iLCAiaW5pdF9saXN0X2NvbGxhcHNlIiwgImluaXRfbGlzdF9lbmQiLCAiaW5pdF9saXN0X2ZpbHRlcl9wbHVzIiwgImluaXRfbGlzdF9maWx0ZXIiLCAiaW5pdF9saXN0X2luZGVudF9kZWNyZWFzZSIsICJpbml0X2xpc3RfaW5kZW50X2luY3JlYXNlIiwgImluaXRfbGlzdF9taW51cyIsICJpbml0X2xpc3RfbXVzaWMiLCAiaW5pdF9saXN0X29yZGVyZWQiLCAiaW5pdF9saXN0X3BsdXMiLCAiaW5pdF9saXN0X3Jlc3RhcnQiLCAiaW5pdF9saXN0X3N0YXJ0IiwgImluaXRfbGlzdF90b2RvIiwgImluaXRfbGlzdF90cmVlIiwgImluaXRfbGlzdF92aWRlbyIsICJpbml0X2xpc3RfeCIsICJpbml0X2xvYWRlcl9jaXJjbGUiLCAiaW5pdF9saXN0IiwgImluaXRfbG9hZGVyX3BpbndoZWVsIiwgImluaXRfbG9hZGVyIiwgImluaXRfbG9jYXRlX2ZpeGVkIiwgImluaXRfbG9jYXRlX29mZiIsICJpbml0X2xvY2F0ZSIsICJpbml0X2xvY2tfa2V5aG9sZV9vcGVuIiwgImluaXRfbG9ja19rZXlob2xlIiwgImluaXRfbG9ja19vcGVuIiwgImluaXRfbG9jayIsICJpbml0X2xvZ19pbiIsICJpbml0X2xvZ19vdXQiLCAiaW5pdF9sb2dzIiwgImluaXRfbG9sbGlwb3AiLCAiaW5pdF9sdWdnYWdlIiwgImluaXRfbWFnbmV0IiwgImluaXRfbWFpbF9jaGVjayIsICJpbml0X21haWxfbWludXMiLCAiaW5pdF9tYWlsX29wZW4iLCAiaW5pdF9tYWlsX3BsdXMiLCAiaW5pdF9tYWlsX3F1ZXN0aW9uX21hcmsiLCAiaW5pdF9tYWlsX3NlYXJjaCIsICJpbml0X21haWxfd2FybmluZyIsICJpbml0X21haWxfeCIsICJpbml0X21haWwiLCAiaW5pdF9tYWlsYm94IiwgImluaXRfbWFpbHMiLCAiaW5pdF9tYXBfbWludXMiLCAiaW5pdF9tYXBfcGluX2NoZWNrX2luc2lkZSIsICJpbml0X21hcF9waW5fY2hlY2siLCAiaW5pdF9tYXBfcGluX2hvdXNlIiwgImluaXRfbWFwX3Bpbl9taW51c19pbnNpZGUiLCAiaW5pdF9tYXBfcGluX21pbnVzIiwgImluaXRfbWFwX3Bpbl9vZmYiLCAiaW5pdF9tYXBfcGluX3BlbiIsICJpbml0X21hcF9waW5fcGx1c19pbnNpZGUiLCAiaW5pdF9tYXBfcGluX3BsdXMiLCAiaW5pdF9tYXBfcGluX3hfaW5zaWRlIiwgImluaXRfbWFwX3Bpbl94IiwgImluaXRfbWFwX3BpbiIsICJpbml0X21hcF9waW5uZWQiLCAiaW5pdF9tYXBfcGx1cyIsICJpbml0X21hcCIsICJpbml0X21hcnNfc3Ryb2tlIiwgImluaXRfbWFycyIsICJpbml0X21hcnRpbmkiLCAiaW5pdF9tYXhpbWl6ZV8yIiwgImluaXRfbWF4aW1pemUiLCAiaW5pdF9tZWdhcGhvbmVfb2ZmIiwgImluaXRfbWVnYXBob25lIiwgImluaXRfbWVkYWwiLCAiaW5pdF9tZWgiLCAiaW5pdF9tZW1vcnlfc3RpY2siLCAiaW5pdF9tZXJnZSIsICJpbml0X21lbnUiLCAiaW5pdF9tZXNzYWdlX2NpcmNsZV9jb2RlIiwgImluaXRfbWVzc2FnZV9jaXJjbGVfZGFzaGVkIiwgImluaXRfbWVzc2FnZV9jaXJjbGVfaGVhcnQiLCAiaW5pdF9tZXNzYWdlX2NpcmNsZV9tb3JlIiwgImluaXRfbWVzc2FnZV9jaXJjbGVfb2ZmIiwgImluaXRfbWVzc2FnZV9jaXJjbGVfcGx1cyIsICJpbml0X21lc3NhZ2VfY2lyY2xlX3F1ZXN0aW9uX21hcmsiLCAiaW5pdF9tZXNzYWdlX2NpcmNsZV9yZXBseSIsICJpbml0X21lc3NhZ2VfY2lyY2xlX3dhcm5pbmciLCAiaW5pdF9tZXNzYWdlX2NpcmNsZV94IiwgImluaXRfbWVzc2FnZV9jaXJjbGUiLCAiaW5pdF9tZXNzYWdlX3NxdWFyZV9jb2RlIiwgImluaXRfbWVzc2FnZV9zcXVhcmVfZGFzaGVkIiwgImluaXRfbWVzc2FnZV9zcXVhcmVfZGlmZiIsICJpbml0X21lc3NhZ2Vfc3F1YXJlX2RvdCIsICJpbml0X21lc3NhZ2Vfc3F1YXJlX2hlYXJ0IiwgImluaXRfbWVzc2FnZV9zcXVhcmVfbG9jayIsICJpbml0X21lc3NhZ2Vfc3F1YXJlX21vcmUiLCAiaW5pdF9tZXNzYWdlX3NxdWFyZV9vZmYiLCAiaW5pdF9tZXNzYWdlX3NxdWFyZV9wbHVzIiwgImluaXRfbWVzc2FnZV9zcXVhcmVfcXVvdGUiLCAiaW5pdF9tZXNzYWdlX3NxdWFyZV9yZXBseSIsICJpbml0X21lc3NhZ2Vfc3F1YXJlX3NoYXJlIiwgImluaXRfbWVzc2FnZV9zcXVhcmVfdGV4dCIsICJpbml0X21lc3NhZ2Vfc3F1YXJlX3dhcm5pbmciLCAiaW5pdF9tZXNzYWdlX3NxdWFyZV94IiwgImluaXRfbWVzc2FnZV9zcXVhcmUiLCAiaW5pdF9tZXNzYWdlc19zcXVhcmUiLCAiaW5pdF9taWNfb2ZmIiwgImluaXRfbWljX3ZvY2FsIiwgImluaXRfbWljIiwgImluaXRfbWljcm9jaGlwIiwgImluaXRfbWljcm9zY29wZSIsICJpbml0X21pY3Jvd2F2ZSIsICJpbml0X21pbGVzdG9uZSIsICJpbml0X21pbGtfb2ZmIiwgImluaXRfbWlsayIsICJpbml0X21pbmltaXplXzIiLCAiaW5pdF9taW5pbWl6ZSIsICJpbml0X21pbnVzIiwgImluaXRfbW9uaXRvcl9jaGVjayIsICJpbml0X21vbml0b3JfY2xvdWQiLCAiaW5pdF9tb25pdG9yX2NvZyIsICJpbml0X21vbml0b3JfZG90IiwgImluaXRfbW9uaXRvcl9kb3duIiwgImluaXRfbW9uaXRvcl9vZmYiLCAiaW5pdF9tb25pdG9yX3BhdXNlIiwgImluaXRfbW9uaXRvcl9wbGF5IiwgImluaXRfbW9uaXRvcl9zbWFydHBob25lIiwgImluaXRfbW9uaXRvcl9zcGVha2VyIiwgImluaXRfbW9uaXRvcl9zdG9wIiwgImluaXRfbW9uaXRvcl91cCIsICJpbml0X21vbml0b3JfeCIsICJpbml0X21vbml0b3IiLCAiaW5pdF9tb29uX3N0YXIiLCAiaW5pdF9tb3RvcmJpa2UiLCAiaW5pdF9tb29uIiwgImluaXRfbW91bnRhaW5fc25vdyIsICJpbml0X21vdW50YWluIiwgImluaXRfbW91c2Vfb2ZmIiwgImluaXRfbW91c2VfcG9pbnRlcl8yX29mZiIsICJpbml0X21vdXNlX3BvaW50ZXJfMiIsICJpbml0X21vdXNlX3BvaW50ZXJfYmFuIiwgImluaXRfbW91c2VfcG9pbnRlcl9jbGljayIsICJpbml0X21vdXNlX3BvaW50ZXIiLCAiaW5pdF9tb3VzZSIsICJpbml0X21vdmVfM2QiLCAiaW5pdF9tb3ZlX2RpYWdvbmFsXzIiLCAiaW5pdF9tb3ZlX2RpYWdvbmFsIiwgImluaXRfbW92ZV9kb3duX2xlZnQiLCAiaW5pdF9tb3ZlX2Rvd25fcmlnaHQiLCAiaW5pdF9tb3ZlX2Rvd24iLCAiaW5pdF9tb3ZlX2xlZnQiLCAiaW5pdF9tb3ZlX2hvcml6b250YWwiLCAiaW5pdF9tb3ZlX3JpZ2h0IiwgImluaXRfbW92ZV91cF9sZWZ0IiwgImluaXRfbW92ZV91cF9yaWdodCIsICJpbml0X21vdmVfdXAiLCAiaW5pdF9tb3ZlX3ZlcnRpY2FsIiwgImluaXRfbW92ZSIsICJpbml0X211c2ljXzIiLCAiaW5pdF9tdXNpY18zIiwgImluaXRfbXVzaWNfNCIsICJpbml0X211c2ljIiwgImluaXRfbmF2aWdhdGlvbl8yX29mZiIsICJpbml0X25hdmlnYXRpb25fMiIsICJpbml0X25hdmlnYXRpb25fb2ZmIiwgImluaXRfbmF2aWdhdGlvbiIsICJpbml0X25ld3NwYXBlciIsICJpbml0X25ldHdvcmsiLCAiaW5pdF9uZmMiLCAiaW5pdF9ub25fYmluYXJ5IiwgImluaXRfbm90ZWJvb2tfcGVuIiwgImluaXRfbm90ZWJvb2tfdGFicyIsICJpbml0X25vdGVib29rX3RleHQiLCAiaW5pdF9ub3RlYm9vayIsICJpbml0X25vdGVwYWRfdGV4dF9kYXNoZWQiLCAiaW5pdF9ub3RlcGFkX3RleHQiLCAiaW5pdF9udXRfb2ZmIiwgImluaXRfbnV0IiwgImluaXRfb2N0YWdvbl9hbGVydCIsICJpbml0X29jdGFnb25fbWludXMiLCAiaW5pdF9vY3RhZ29uX3BhdXNlIiwgImluaXRfb2N0YWdvbl94IiwgImluaXRfb2N0YWdvbiIsICJpbml0X29tZWdhIiwgImluaXRfb3B0aW9uIiwgImluaXRfb3JiaXQiLCAiaW5pdF9vcmlnYW1pIiwgImluaXRfcGFja2FnZV8yIiwgImluaXRfcGFja2FnZV9jaGVjayIsICJpbml0X3BhY2thZ2VfbWludXMiLCAiaW5pdF9wYWNrYWdlX29wZW4iLCAiaW5pdF9wYWNrYWdlX3BsdXMiLCAiaW5pdF9wYWNrYWdlX3NlYXJjaCIsICJpbml0X3BhY2thZ2VfeCIsICJpbml0X3BhY2thZ2UiLCAiaW5pdF9wYWludF9idWNrZXQiLCAiaW5pdF9wYWludF9yb2xsZXIiLCAiaW5pdF9wYWludGJydXNoX3ZlcnRpY2FsIiwgImluaXRfcGFpbnRicnVzaCIsICJpbml0X3BhbGV0dGUiLCAiaW5pdF9wYW5kYSIsICJpbml0X3BhbmVsX2JvdHRvbV9jbG9zZSIsICJpbml0X3BhbmVsX2JvdHRvbV9kYXNoZWQiLCAiaW5pdF9wYW5lbF9ib3R0b21fb3BlbiIsICJpbml0X3BhbmVsX2JvdHRvbSIsICJpbml0X3BhbmVsX2xlZnRfY2xvc2UiLCAiaW5pdF9wYW5lbF9sZWZ0X2Rhc2hlZCIsICJpbml0X3BhbmVsX2xlZnRfb3BlbiIsICJpbml0X3BhbmVsX2xlZnRfcmlnaHRfZGFzaGVkIiwgImluaXRfcGFuZWxfbGVmdCIsICJpbml0X3BhbmVsX3JpZ2h0X2Nsb3NlIiwgImluaXRfcGFuZWxfcmlnaHRfZGFzaGVkIiwgImluaXRfcGFuZWxfcmlnaHRfb3BlbiIsICJpbml0X3BhbmVsX3JpZ2h0IiwgImluaXRfcGFuZWxfdG9wX2JvdHRvbV9kYXNoZWQiLCAiaW5pdF9wYW5lbF90b3BfY2xvc2UiLCAiaW5pdF9wYW5lbF90b3BfZGFzaGVkIiwgImluaXRfcGFuZWxfdG9wX29wZW4iLCAiaW5pdF9wYW5lbHNfbGVmdF9ib3R0b20iLCAiaW5pdF9wYW5lbF90b3AiLCAiaW5pdF9wYW5lbHNfcmlnaHRfYm90dG9tIiwgImluaXRfcGFuZWxzX3RvcF9sZWZ0IiwgImluaXRfcGFwZXJjbGlwIiwgImluaXRfcGFya2luZ19tZXRlciIsICJpbml0X3BhcmVudGhlc2VzIiwgImluaXRfcGFydHlfcG9wcGVyIiwgImluaXRfcGF1c2UiLCAiaW5pdF9wYXdfcHJpbnQiLCAiaW5pdF9wY19jYXNlIiwgImluaXRfcGVuX2xpbmUiLCAiaW5pdF9wZW5fb2ZmIiwgImluaXRfcGVuX3Rvb2wiLCAiaW5pdF9wZW4iLCAiaW5pdF9wZW5jaWxfbGluZSIsICJpbml0X3BlbmNpbF9vZmYiLCAiaW5pdF9wZW5jaWxfcnVsZXIiLCAiaW5pdF9wZW5jaWwiLCAiaW5pdF9wZW50YWdvbiIsICJpbml0X3BlcmNlbnQiLCAiaW5pdF9wZXJzb25fc3RhbmRpbmciLCAiaW5pdF9waGlsaXBwaW5lX3Blc28iLCAiaW5pdF9waG9uZV9mb3J3YXJkZWQiLCAiaW5pdF9waG9uZV9jYWxsIiwgImluaXRfcGhvbmVfaW5jb21pbmciLCAiaW5pdF9waG9uZV9taXNzZWQiLCAiaW5pdF9waG9uZV9vZmYiLCAiaW5pdF9waG9uZV9vdXRnb2luZyIsICJpbml0X3Bob25lIiwgImluaXRfcGkiLCAiaW5pdF9waWFubyIsICJpbml0X3BpY2theGUiLCAiaW5pdF9waWN0dXJlX2luX3BpY3R1cmVfMiIsICJpbml0X3BpY3R1cmVfaW5fcGljdHVyZSIsICJpbml0X3BpZ2d5X2JhbmsiLCAiaW5pdF9waWxjcm93X2xlZnQiLCAiaW5pdF9waWxjcm93X3JpZ2h0IiwgImluaXRfcGlsY3JvdyIsICJpbml0X3BpbGxfYm90dGxlIiwgImluaXRfcGlsbCIsICJpbml0X3Bpbl9vZmYiLCAiaW5pdF9waW4iLCAiaW5pdF9waXBldHRlIiwgImluaXRfcGl6emEiLCAiaW5pdF9wbGFuZV9sYW5kaW5nIiwgImluaXRfcGxhbmVfdGFrZW9mZiIsICJpbml0X3BsYW5lIiwgImluaXRfcGxheSIsICJpbml0X3BsdWdfMiIsICJpbml0X3BsdWdfemFwIiwgImluaXRfcGx1ZyIsICJpbml0X3BsdXMiLCAiaW5pdF9wb2NrZXRfa25pZmUiLCAiaW5pdF9wb2NrZXQiLCAiaW5pdF9wb2RjYXN0IiwgImluaXRfcG9pbnRlcl9vZmYiLCAiaW5pdF9wb2ludGVyIiwgImluaXRfcG9wY29ybiIsICJpbml0X3BvcHNpY2xlIiwgImluaXRfcG91bmRfc3RlcmxpbmciLCAiaW5pdF9wb3dlcl9vZmYiLCAiaW5pdF9wb3dlciIsICJpbml0X3ByZXNlbnRhdGlvbiIsICJpbml0X3ByaW50ZXIiLCAiaW5pdF9wcmludGVyX2NoZWNrIiwgImluaXRfcHJvamVjdG9yIiwgImluaXRfcHJvcG9ydGlvbnMiLCAiaW5pdF9wdXp6bGUiLCAiaW5pdF9weXJhbWlkIiwgImluaXRfcXJfY29kZSIsICJpbml0X3F1b3RlIiwgImluaXRfcmFiYml0IiwgImluaXRfcmFkYXIiLCAiaW5pdF9yYWRpYXRpb24iLCAiaW5pdF9yYWRpY2FsIiwgImluaXRfcmFkaW9fcmVjZWl2ZXIiLCAiaW5pdF9yYWRpb190b3dlciIsICJpbml0X3JhZGlvIiwgImluaXRfcmFkaXVzIiwgImluaXRfcmFpbF9zeW1ib2wiLCAiaW5pdF9yYWluYm93IiwgImluaXRfcmF0IiwgImluaXRfcmF0aW8iLCAiaW5pdF9yZWNlaXB0X2NlbnQiLCAiaW5pdF9yZWNlaXB0X2V1cm8iLCAiaW5pdF9yZWNlaXB0X2luZGlhbl9ydXBlZSIsICJpbml0X3JlY2VpcHRfamFwYW5lc2VfeWVuIiwgImluaXRfcmVjZWlwdF9wb3VuZF9zdGVybGluZyIsICJpbml0X3JlY2VpcHRfcnVzc2lhbl9ydWJsZSIsICJpbml0X3JlY2VpcHRfc3dpc3NfZnJhbmMiLCAiaW5pdF9yZWNlaXB0X3RleHQiLCAiaW5pdF9yZWNlaXB0X3R1cmtpc2hfbGlyYSIsICJpbml0X3JlY2VpcHQiLCAiaW5pdF9yZWN0YW5nbGVfY2lyY2xlIiwgImluaXRfcmVjdGFuZ2xlX2VsbGlwc2lzIiwgImluaXRfcmVjdGFuZ2xlX2dvZ2dsZXMiLCAiaW5pdF9yZWN0YW5nbGVfaG9yaXpvbnRhbCIsICJpbml0X3JlY3RhbmdsZV92ZXJ0aWNhbCIsICJpbml0X3JlY3ljbGUiLCAiaW5pdF9yZWRvXzIiLCAiaW5pdF9yZWRvX2RvdCIsICJpbml0X3JlZG8iLCAiaW5pdF9yZWZyZXNoX2Njd19kb3QiLCAiaW5pdF9yZWZyZXNoX2NjdyIsICJpbml0X3JlZnJlc2hfY3dfb2ZmIiwgImluaXRfcmVmcmVzaF9jdyIsICJpbml0X3JlZnJpZ2VyYXRvciIsICJpbml0X3JlZ2V4IiwgImluaXRfcmVtb3ZlX2Zvcm1hdHRpbmciLCAiaW5pdF9yZXBlYXRfMSIsICJpbml0X3JlcGVhdF8yIiwgImluaXRfcmVwZWF0IiwgImluaXRfcmVwbGFjZV9hbGwiLCAiaW5pdF9yZXBsYWNlIiwgImluaXRfcmVwbHlfYWxsIiwgImluaXRfcmVwbHkiLCAiaW5pdF9yZXdpbmQiLCAiaW5pdF9yaWJib24iLCAiaW5pdF9yb2NrZXQiLCAiaW5pdF9yb2NraW5nX2NoYWlyIiwgImluaXRfcm9sbGVyX2NvYXN0ZXIiLCAiaW5pdF9yb3NlIiwgImluaXRfcm90YXRlXzNkIiwgImluaXRfcm90YXRlX2Njd19rZXkiLCAiaW5pdF9yb3RhdGVfY2N3X3NxdWFyZSIsICJpbml0X3JvdGF0ZV9jY3ciLCAiaW5pdF9yb3RhdGVfY3dfc3F1YXJlIiwgImluaXRfcm90YXRlX2N3IiwgImluaXRfcm91dGUiLCAiaW5pdF9yb3V0ZV9vZmYiLCAiaW5pdF9yb3V0ZXIiLCAiaW5pdF9yb3dzXzIiLCAiaW5pdF9yb3dzXzMiLCAiaW5pdF9yb3dzXzQiLCAiaW5pdF9yc3MiLCAiaW5pdF9ydWxlcl9kaW1lbnNpb25fbGluZSIsICJpbml0X3J1bGVyIiwgImluaXRfcnVzc2lhbl9ydWJsZSIsICJpbml0X3NhaWxib2F0IiwgImluaXRfc2FsYWQiLCAiaW5pdF9zYW5kd2ljaCIsICJpbml0X3NhdGVsbGl0ZV9kaXNoIiwgImluaXRfc2F0ZWxsaXRlIiwgImluaXRfc2F1ZGlfcml5YWwiLCAiaW5pdF9zYXZlX2FsbCIsICJpbml0X3NhdmVfb2ZmIiwgImluaXRfc2F2ZSIsICJpbml0X3NjYWxlXzNkIiwgImluaXRfc2NhbGUiLCAiaW5pdF9zY2FsaW5nIiwgImluaXRfc2Nhbl9leWUiLCAiaW5pdF9zY2FuX2JhcmNvZGUiLCAiaW5pdF9zY2FuX2ZhY2UiLCAiaW5pdF9zY2FuX2hlYXJ0IiwgImluaXRfc2Nhbl9saW5lIiwgImluaXRfc2Nhbl9xcl9jb2RlIiwgImluaXRfc2Nhbl9zZWFyY2giLCAiaW5pdF9zY2FuX3RleHQiLCAiaW5pdF9zY2FuIiwgImluaXRfc2Nob29sIiwgImluaXRfc2Npc3NvcnNfbGluZV9kYXNoZWQiLCAiaW5pdF9zY2lzc29ycyIsICJpbml0X3Njb290ZXIiLCAiaW5pdF9zY3JlZW5fc2hhcmVfb2ZmIiwgImluaXRfc2NyZWVuX3NoYXJlIiwgImluaXRfc2Nyb2xsX3RleHQiLCAiaW5pdF9zY3JvbGwiLCAiaW5pdF9zZWFyY2hfYWxlcnQiLCAiaW5pdF9zZWFyY2hfY29kZSIsICJpbml0X3NlYXJjaF9jaGVjayIsICJpbml0X3NlYXJjaF9zbGFzaCIsICJpbml0X3NlYXJjaF94IiwgImluaXRfc2VhcmNoIiwgImluaXRfc2VuZF9ob3Jpem9udGFsIiwgImluaXRfc2VjdGlvbiIsICJpbml0X3NlbmRfdG9fYmFjayIsICJpbml0X3NlbmQiLCAiaW5pdF9zZXBhcmF0b3JfaG9yaXpvbnRhbCIsICJpbml0X3NlcGFyYXRvcl92ZXJ0aWNhbCIsICJpbml0X3NlcnZlcl9jb2ciLCAiaW5pdF9zZXJ2ZXJfY3Jhc2giLCAiaW5pdF9zZXJ2ZXJfb2ZmIiwgImluaXRfc2VydmVyIiwgImluaXRfc2V0dGluZ3NfMiIsICJpbml0X3NldHRpbmdzIiwgImluaXRfc2hhcGVzIiwgImluaXRfc2hhcmVfMiIsICJpbml0X3NoYXJlIiwgImluaXRfc2hlZXQiLCAiaW5pdF9zaGVsbCIsICJpbml0X3NoaWVsZF9hbGVydCIsICJpbml0X3NoaWVsZF9iYW4iLCAiaW5pdF9zaGllbGRfY2hlY2siLCAiaW5pdF9zaGllbGRfZWxsaXBzaXMiLCAiaW5pdF9zaGllbGRfaGFsZiIsICJpbml0X3NoaWVsZF9taW51cyIsICJpbml0X3NoaWVsZF9vZmYiLCAiaW5pdF9zaGllbGRfcGx1cyIsICJpbml0X3NoaWVsZF9xdWVzdGlvbl9tYXJrIiwgImluaXRfc2hpZWxkX3VzZXIiLCAiaW5pdF9zaGllbGRfeCIsICJpbml0X3NoaWVsZCIsICJpbml0X3NoaXBfd2hlZWwiLCAiaW5pdF9zaGlwIiwgImluaXRfc2hpcnQiLCAiaW5pdF9zaG9wcGluZ19iYWciLCAiaW5pdF9zaG9wcGluZ19iYXNrZXQiLCAiaW5pdF9zaG9wcGluZ19jYXJ0IiwgImluaXRfc2hvdmVsIiwgImluaXRfc2hvd2VyX2hlYWQiLCAiaW5pdF9zaHJlZGRlciIsICJpbml0X3NocmltcCIsICJpbml0X3NocmluayIsICJpbml0X3NocnViIiwgImluaXRfc2h1ZmZsZSIsICJpbml0X3NpZ25hbF9oaWdoIiwgImluaXRfc2lnbWEiLCAiaW5pdF9zaWduYWxfbG93IiwgImluaXRfc2lnbmFsX21lZGl1bSIsICJpbml0X3NpZ25hbF96ZXJvIiwgImluaXRfc2lnbmFsIiwgImluaXRfc2lnbmF0dXJlIiwgImluaXRfc2lnbnBvc3RfYmlnIiwgImluaXRfc2lnbnBvc3QiLCAiaW5pdF9zaXJlbiIsICJpbml0X3NraXBfYmFjayIsICJpbml0X3NrdWxsIiwgImluaXRfc2tpcF9mb3J3YXJkIiwgImluaXRfc2xhY2siLCAiaW5pdF9zbGFzaCIsICJpbml0X3NsaWNlIiwgImluaXRfc2xpZGVyc19ob3Jpem9udGFsIiwgImluaXRfc2xpZGVyc192ZXJ0aWNhbCIsICJpbml0X3NtYXJ0cGhvbmVfY2hhcmdpbmciLCAiaW5pdF9zbWFydHBob25lX25mYyIsICJpbml0X3NtYXJ0cGhvbmUiLCAiaW5pdF9zbWlsZV9wbHVzIiwgImluaXRfc21pbGUiLCAiaW5pdF9zbmFpbCIsICJpbml0X3Nub3dmbGFrZSIsICJpbml0X3NvYXBfZGlzcGVuc2VyX2Ryb3BsZXQiLCAiaW5pdF9zb2ZhIiwgImluaXRfc29sYXJfcGFuZWwiLCAiaW5pdF9zb3VwIiwgImluaXRfc3BhY2UiLCAiaW5pdF9zcGFkZSIsICJpbml0X3NwYXJrbGUiLCAiaW5pdF9zcGFya2xlcyIsICJpbml0X3NwZWFrZXIiLCAiaW5pdF9zcGVlY2giLCAiaW5pdF9zcGVsbF9jaGVja18yIiwgImluaXRfc3BlbGxfY2hlY2siLCAiaW5pdF9zcGxpbmVfcG9pbnRlciIsICJpbml0X3NwbGluZSIsICJpbml0X3NwbGl0IiwgImluaXRfc3Bvb2wiLCAiaW5pdF9zcG90bGlnaHQiLCAiaW5pdF9zcHJheV9jYW4iLCAiaW5pdF9zcHJvdXQiLCAiaW5pdF9zcXVhcmVfYWN0aXZpdHkiLCAiaW5pdF9zcXVhcmVfYXJyb3dfZG93bl9sZWZ0IiwgImluaXRfc3F1YXJlX2Fycm93X2Rvd25fcmlnaHQiLCAiaW5pdF9zcXVhcmVfYXJyb3dfZG93biIsICJpbml0X3NxdWFyZV9hcnJvd19sZWZ0IiwgImluaXRfc3F1YXJlX2Fycm93X291dF9kb3duX2xlZnQiLCAiaW5pdF9zcXVhcmVfYXJyb3dfb3V0X2Rvd25fcmlnaHQiLCAiaW5pdF9zcXVhcmVfYXJyb3dfb3V0X3VwX2xlZnQiLCAiaW5pdF9zcXVhcmVfYXJyb3dfb3V0X3VwX3JpZ2h0IiwgImluaXRfc3F1YXJlX2Fycm93X3JpZ2h0IiwgImluaXRfc3F1YXJlX2Fycm93X3VwX2xlZnQiLCAiaW5pdF9zcXVhcmVfYXJyb3dfdXBfcmlnaHQiLCAiaW5pdF9zcXVhcmVfYXJyb3dfdXAiLCAiaW5pdF9zcXVhcmVfYXN0ZXJpc2siLCAiaW5pdF9zcXVhcmVfYm90dG9tX2Rhc2hlZF9zY2lzc29ycyIsICJpbml0X3NxdWFyZV9jaGFydF9nYW50dCIsICJpbml0X3NxdWFyZV9jaGVjayIsICJpbml0X3NxdWFyZV9jaGVja19iaWciLCAiaW5pdF9zcXVhcmVfY2hldnJvbl9kb3duIiwgImluaXRfc3F1YXJlX2NoZXZyb25fbGVmdCIsICJpbml0X3NxdWFyZV9jaGV2cm9uX3JpZ2h0IiwgImluaXRfc3F1YXJlX2NoZXZyb25fdXAiLCAiaW5pdF9zcXVhcmVfY29kZSIsICJpbml0X3NxdWFyZV9kYXNoZWRfYm90dG9tX2NvZGUiLCAiaW5pdF9zcXVhcmVfZGFzaGVkX2JvdHRvbSIsICJpbml0X3NxdWFyZV9kYXNoZWRfa2FuYmFuIiwgImluaXRfc3F1YXJlX2Rhc2hlZF9tb3VzZV9wb2ludGVyIiwgImluaXRfc3F1YXJlX2Rhc2hlZF90b3Bfc29saWQiLCAiaW5pdF9zcXVhcmVfZGFzaGVkIiwgImluaXRfc3F1YXJlX2RpdmlkZSIsICJpbml0X3NxdWFyZV9kb3QiLCAiaW5pdF9zcXVhcmVfZXF1YWwiLCAiaW5pdF9zcXVhcmVfZnVuY3Rpb24iLCAiaW5pdF9zcXVhcmVfa2FuYmFuIiwgImluaXRfc3F1YXJlX2xpYnJhcnkiLCAiaW5pdF9zcXVhcmVfbSIsICJpbml0X3NxdWFyZV9tZW51IiwgImluaXRfc3F1YXJlX21pbnVzIiwgImluaXRfc3F1YXJlX21vdXNlX3BvaW50ZXIiLCAiaW5pdF9zcXVhcmVfcGFya2luZ19vZmYiLCAiaW5pdF9zcXVhcmVfcGFya2luZyIsICJpbml0X3NxdWFyZV9wZW4iLCAiaW5pdF9zcXVhcmVfcGF1c2UiLCAiaW5pdF9zcXVhcmVfcGVyY2VudCIsICJpbml0X3NxdWFyZV9waSIsICJpbml0X3NxdWFyZV9waWxjcm93IiwgImluaXRfc3F1YXJlX3BsYXkiLCAiaW5pdF9zcXVhcmVfcGx1cyIsICJpbml0X3NxdWFyZV9wb3dlciIsICJpbml0X3NxdWFyZV9yYWRpY2FsIiwgImluaXRfc3F1YXJlX3NjaXNzb3JzIiwgImluaXRfc3F1YXJlX3JvdW5kX2Nvcm5lciIsICJpbml0X3NxdWFyZV9zaWdtYSIsICJpbml0X3NxdWFyZV9zbGFzaCIsICJpbml0X3NxdWFyZV9zcGxpdF9ob3Jpem9udGFsIiwgImluaXRfc3F1YXJlX3NwbGl0X3ZlcnRpY2FsIiwgImluaXRfc3F1YXJlX3NxdWFyZSIsICJpbml0X3NxdWFyZV9zdGFjayIsICJpbml0X3NxdWFyZV9zdGFyIiwgImluaXRfc3F1YXJlX3N0b3AiLCAiaW5pdF9zcXVhcmVfdGVybWluYWwiLCAiaW5pdF9zcXVhcmVfdXNlcl9yb3VuZCIsICJpbml0X3NxdWFyZV91c2VyIiwgImluaXRfc3F1YXJlX3giLCAiaW5pdF9zcXVhcmUiLCAiaW5pdF9zcXVhcmVzX2V4Y2x1ZGUiLCAiaW5pdF9zcXVhcmVzX2ludGVyc2VjdCIsICJpbml0X3NxdWFyZXNfc3VidHJhY3QiLCAiaW5pdF9zcXVpcmNsZV9kYXNoZWQiLCAiaW5pdF9zcXVhcmVzX3VuaXRlIiwgImluaXRfc3F1aXJjbGUiLCAiaW5pdF9zcXVpcnJlbCIsICJpbml0X3N0YW1wIiwgImluaXRfc3Rhcl9vZmYiLCAiaW5pdF9zdGFyX2hhbGYiLCAiaW5pdF9zdGFyIiwgImluaXRfc3RlcF9iYWNrIiwgImluaXRfc3RlcF9mb3J3YXJkIiwgImluaXRfc3RldGhvc2NvcGUiLCAiaW5pdF9zdGlja2VyIiwgImluaXRfc3RvbmUiLCAiaW5pdF9zdGlja3lfbm90ZSIsICJpbml0X3N0b3JlIiwgImluaXRfc3RyZXRjaF9ob3Jpem9udGFsIiwgImluaXRfc3RyZXRjaF92ZXJ0aWNhbCIsICJpbml0X3N0cmlrZXRocm91Z2giLCAiaW5pdF9zdWJzY3JpcHQiLCAiaW5pdF9zdW5fZGltIiwgImluaXRfc3VuX21lZGl1bSIsICJpbml0X3N1bl9tb29uIiwgImluaXRfc3VuX3Nub3ciLCAiaW5pdF9zdW4iLCAiaW5pdF9zdW5yaXNlIiwgImluaXRfc3Vuc2V0IiwgImluaXRfc3VwZXJzY3JpcHQiLCAiaW5pdF9zd2F0Y2hfYm9vayIsICJpbml0X3N3aXNzX2ZyYW5jIiwgImluaXRfc3dpdGNoX2NhbWVyYSIsICJpbml0X3N3b3JkIiwgImluaXRfc3dvcmRzIiwgImluaXRfc3lyaW5nZSIsICJpbml0X3RhYmxlXzIiLCAiaW5pdF90YWJsZV9jZWxsc19tZXJnZSIsICJpbml0X3RhYmxlX2NlbGxzX3NwbGl0IiwgImluaXRfdGFibGVfb2ZfY29udGVudHMiLCAiaW5pdF90YWJsZV9jb2x1bW5zX3NwbGl0IiwgImluaXRfdGFibGVfcHJvcGVydGllcyIsICJpbml0X3RhYmxlX3Jvd3Nfc3BsaXQiLCAiaW5pdF90YWJsZSIsICJpbml0X3RhYmxldF9zbWFydHBob25lIiwgImluaXRfdGFibGV0IiwgImluaXRfdGFibGV0cyIsICJpbml0X3RhZyIsICJpbml0X3RhZ3MiLCAiaW5pdF90YWxseV8xIiwgImluaXRfdGFsbHlfMiIsICJpbml0X3RhbGx5XzMiLCAiaW5pdF90YWxseV80IiwgImluaXRfdGFsbHlfNSIsICJpbml0X3RhbmdlbnQiLCAiaW5pdF90YXJnZXQiLCAiaW5pdF90ZWxlc2NvcGUiLCAiaW5pdF90ZW50X3RyZWUiLCAiaW5pdF90ZW50IiwgImluaXRfdGVzdF90dWJlX2RpYWdvbmFsIiwgImluaXRfdGVybWluYWwiLCAiaW5pdF90ZXN0X3R1YmUiLCAiaW5pdF90ZXN0X3R1YmVzIiwgImluaXRfdGV4dF9hbGlnbl9jZW50ZXIiLCAiaW5pdF90ZXh0X2FsaWduX2VuZCIsICJpbml0X3RleHRfYWxpZ25fanVzdGlmeSIsICJpbml0X3RleHRfYWxpZ25fc3RhcnQiLCAiaW5pdF90ZXh0X2N1cnNvcl9pbnB1dCIsICJpbml0X3RleHRfY3Vyc29yIiwgImluaXRfdGV4dF9xdW90ZSIsICJpbml0X3RleHRfaW5pdGlhbCIsICJpbml0X3RleHRfc2VhcmNoIiwgImluaXRfdGV4dF9zZWxlY3QiLCAiaW5pdF90aGVhdGVyIiwgImluaXRfdGV4dF93cmFwIiwgImluaXRfdGhlcm1vbWV0ZXJfc25vd2ZsYWtlIiwgImluaXRfdGhlcm1vbWV0ZXJfc3VuIiwgImluaXRfdGhlcm1vbWV0ZXIiLCAiaW5pdF90aHVtYnNfZG93biIsICJpbml0X3RodW1ic191cCIsICJpbml0X3RpY2tldF9jaGVjayIsICJpbml0X3RpY2tldF9taW51cyIsICJpbml0X3RpY2tldF9wZXJjZW50IiwgImluaXRfdGlja2V0X3BsdXMiLCAiaW5pdF90aWNrZXRfc2xhc2giLCAiaW5pdF90aWNrZXRfeCIsICJpbml0X3RpY2tldCIsICJpbml0X3RpY2tldHNfcGxhbmUiLCAiaW5pdF90aWNrZXRzIiwgImluaXRfdGltZXJfcmVzZXQiLCAiaW5pdF90aW1lcl9vZmYiLCAiaW5pdF90aW1lciIsICJpbml0X3RvZ2dsZV9sZWZ0IiwgImluaXRfdG9nZ2xlX3JpZ2h0IiwgImluaXRfdG9pbGV0IiwgImluaXRfdG9vbF9jYXNlIiwgImluaXRfdG9vbGJveCIsICJpbml0X3Rvcm5hZG8iLCAiaW5pdF90b3J1cyIsICJpbml0X3RvdWNocGFkX29mZiIsICJpbml0X3RvdWNocGFkIiwgImluaXRfdG93ZXJfY29udHJvbCIsICJpbml0X3RveV9icmljayIsICJpbml0X3RyYWZmaWNfY29uZSIsICJpbml0X3RyYWN0b3IiLCAiaW5pdF90cmFpbl9mcm9udF90dW5uZWwiLCAiaW5pdF90cmFpbl9mcm9udCIsICJpbml0X3RyYWluX3RyYWNrIiwgImluaXRfdHJhbV9mcm9udCIsICJpbml0X3RyYW5zZ2VuZGVyIiwgImluaXRfdHJhc2hfMiIsICJpbml0X3RyYXNoIiwgImluaXRfdHJlZV9kZWNpZHVvdXMiLCAiaW5pdF90cmVlX3BhbG0iLCAiaW5pdF90cmVlX3BpbmUiLCAiaW5pdF90cmVlcyIsICJpbml0X3RyZWxsbyIsICJpbml0X3RyZW5kaW5nX2Rvd24iLCAiaW5pdF90cmVuZGluZ191cF9kb3duIiwgImluaXRfdHJlbmRpbmdfdXAiLCAiaW5pdF90cmlhbmdsZV9hbGVydCIsICJpbml0X3RyaWFuZ2xlX2Rhc2hlZCIsICJpbml0X3RyaWFuZ2xlX3JpZ2h0IiwgImluaXRfdHJpYW5nbGUiLCAiaW5pdF90cm9waHkiLCAiaW5pdF90cnVja19lbGVjdHJpYyIsICJpbml0X3RydWNrIiwgImluaXRfdHVya2lzaF9saXJhIiwgImluaXRfdHVybnRhYmxlIiwgImluaXRfdHVydGxlIiwgImluaXRfdHZfbWluaW1hbF9wbGF5IiwgImluaXRfdHZfbWluaW1hbCIsICJpbml0X3R2IiwgImluaXRfdHdpdGNoIiwgImluaXRfdHdpdHRlciIsICJpbml0X3R5cGVfb3V0bGluZSIsICJpbml0X3R5cGUiLCAiaW5pdF91bWJyZWxsYV9vZmYiLCAiaW5pdF91bWJyZWxsYSIsICJpbml0X3VuZGVybGluZSIsICJpbml0X3VuZG9fMiIsICJpbml0X3VuZG9fZG90IiwgImluaXRfdW5kbyIsICJpbml0X3VuZm9sZF9ob3Jpem9udGFsIiwgImluaXRfdW5mb2xkX3ZlcnRpY2FsIiwgImluaXRfdW5ncm91cCIsICJpbml0X3VuaXZlcnNpdHkiLCAiaW5pdF91bmxpbmtfMiIsICJpbml0X3VubGluayIsICJpbml0X3VucGx1ZyIsICJpbml0X3VzYiIsICJpbml0X3VwbG9hZCIsICJpbml0X3VzZXJfY2hlY2siLCAiaW5pdF91c2VyX2NvZyIsICJpbml0X3VzZXJfbG9jayIsICJpbml0X3VzZXJfbWludXMiLCAiaW5pdF91c2VyX3BlbiIsICJpbml0X3VzZXJfcGx1cyIsICJpbml0X3VzZXJfcm91bmRfY2hlY2siLCAiaW5pdF91c2VyX3JvdW5kX2NvZyIsICJpbml0X3VzZXJfcm91bmRfbWludXMiLCAiaW5pdF91c2VyX3JvdW5kX3BlbiIsICJpbml0X3VzZXJfcm91bmRfcGx1cyIsICJpbml0X3VzZXJfcm91bmRfc2VhcmNoIiwgImluaXRfdXNlcl9yb3VuZCIsICJpbml0X3VzZXJfcm91bmRfeCIsICJpbml0X3VzZXJfc2VhcmNoIiwgImluaXRfdXNlcl9zdGFyIiwgImluaXRfdXNlcl94IiwgImluaXRfdXNlciIsICJpbml0X3VzZXJzX3JvdW5kIiwgImluaXRfdXNlcnMiLCAiaW5pdF91dGVuc2lsc19jcm9zc2VkIiwgImluaXRfdXRlbnNpbHMiLCAiaW5pdF92YW4iLCAiaW5pdF91dGlsaXR5X3BvbGUiLCAiaW5pdF92YXJpYWJsZSIsICJpbml0X3ZhdWx0IiwgImluaXRfdmVjdG9yX3NxdWFyZSIsICJpbml0X3ZlZ2FuIiwgImluaXRfdmVuZXRpYW5fbWFzayIsICJpbml0X3ZlbnVzIiwgImluaXRfdmVudXNfYW5kX21hcnMiLCAiaW5pdF92aWJyYXRlX29mZiIsICJpbml0X3ZpYnJhdGUiLCAiaW5pdF92aWRlb19vZmYiLCAiaW5pdF92aWRlbyIsICJpbml0X3ZvaWNlbWFpbCIsICJpbml0X3ZpZGVvdGFwZSIsICJpbml0X3ZpZXciLCAiaW5pdF92b2xsZXliYWxsIiwgImluaXRfdm9sdW1lXzEiLCAiaW5pdF92b2x1bWVfMiIsICJpbml0X3ZvbHVtZV9vZmYiLCAiaW5pdF92b2x1bWVfeCIsICJpbml0X3ZvbHVtZSIsICJpbml0X3ZvdGUiLCAiaW5pdF93YWxsZXRfbWluaW1hbCIsICJpbml0X3dhbGxldF9jYXJkcyIsICJpbml0X3dhbGxldCIsICJpbml0X3dhbGxwYXBlciIsICJpbml0X3dhbmRfc3BhcmtsZXMiLCAiaW5pdF93YW5kIiwgImluaXRfd2FyZWhvdXNlIiwgImluaXRfd2FzaGluZ19tYWNoaW5lIiwgImluaXRfd2F0Y2giLCAiaW5pdF93YXZlc19hcnJvd19kb3duIiwgImluaXRfd2F2ZXNfYXJyb3dfdXAiLCAiaW5pdF93YXZlc19sYWRkZXIiLCAiaW5pdF93YXZlcyIsICJpbml0X3dheXBvaW50cyIsICJpbml0X3dlYmNhbSIsICJpbml0X3dlYmhvb2tfb2ZmIiwgImluaXRfd2ViaG9vayIsICJpbml0X3dlaWdodF90aWxkZSIsICJpbml0X3dlaWdodCIsICJpbml0X3doZWF0X29mZiIsICJpbml0X3doZWF0IiwgImluaXRfd2hvbGVfd29yZCIsICJpbml0X3dpZmlfY29nIiwgImluaXRfd2lmaV9sb3ciLCAiaW5pdF93aWZpX2hpZ2giLCAiaW5pdF93aWZpX29mZiIsICJpbml0X3dpZmlfcGVuIiwgImluaXRfd2lmaV9zeW5jIiwgImluaXRfd2lmaV96ZXJvIiwgImluaXRfd2lmaSIsICJpbml0X3dpbmRfYXJyb3dfZG93biIsICJpbml0X3dpbmQiLCAiaW5pdF93aW5lX29mZiIsICJpbml0X3dpbmUiLCAiaW5pdF93b3JtIiwgImluaXRfd29ya2Zsb3ciLCAiaW5pdF93cmVuY2giLCAiaW5pdF94IiwgImluaXRfeW91dHViZSIsICJpbml0X3phcF9vZmYiLCAiaW5pdF96YXAiLCAiaW5pdF96b29tX2luIiwgImluaXRfem9vbV9vdXQiLCAiY3JlYXRlSWNvbnMiLCAiaWNvbnMiLCAibmFtZUF0dHIiLCAiYXR0cnMiLCAicm9vdCIsICJpblRlbXBsYXRlcyIsICJlbGVtZW50IiwgInJlcGxhY2VFbGVtZW50IiwgInRlbXBsYXRlIiwgImRlcHJlY2F0ZWRFbGVtZW50cyIsICJkZW1vRnVuYyIsICJpbml0X2RlZXNfaWNvbl9kZW1vIiwgIl9fZXNtTWluIiwgImluaXRfZGlzdF90cyIsICJpbml0X2RlZXNfaWNvbiIsICJpbml0X2x1Y2lkZSIsICJmYUljb25zIiwgImljb25zIiwgImx1Y2lkZV9leHBvcnRzIiwgImx1Y2lkZUljb25zTGlzdCIsICJrZXkiLCAiaXNVcHBlcmNhc2VGaXJzdCIsICJpc0Z1bmN0aW9uIiwgIm5vdFV0aWxpdHkiLCAicGFzY2FsTmFtZSIsICJpY29uc0FuZEFsaWFzZXNfZXhwb3J0cyIsICJpY29uU291cmNlIiwgImNvcHlBbGxJY29uTmFtZXMiLCAiZmFJY29uc0xpc3QiLCAibmFtZSIsICJsdWNpZGVJY29uc0xpc3RQcmVmaXhlZCIsICJhbGxJY29ucyIsICJ0ZXh0VG9Db3B5IiwgImJ1dHRvbiIsICJvcmlnaW5hbFRleHQiLCAic2VhcmNoSWNvbnMiLCAiZXZlbnQiLCAic2VhcmNoVGVybSIsICJkZW1vQ29udGFpbmVyIiwgImNvbnRhaW5lciIsICJpY29uTmFtZSIsICJzZWN0aW9uIiwgInZpc2libGVJY29ucyIsICJjb3VudEVsZW1lbnQiLCAidG90YWxJY29uc0NvdW50IiwgImNvcHlJY29uTmFtZSIsICJpY29uTmFtZVRvQ29weSIsICJ0eXBlIiwgInRvb2x0aXAiLCAiYiIsICJwcmVmaXhlZE5hbWUiLCAibGltaXRDYWNoZVNpemUiLCAiaWNvbkNhY2hlIiwgIk1BWF9DQUNIRV9TSVpFIiwgImtleSIsICJmYUljb25zIiwgImljb25zIiwgIkRlZXNJY29uIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgImluaXRfZm9udGF3ZXNvbWVfc3ZnX2NvcmUiLCAiaW5pdF9mcmVlX2JyYW5kc19zdmdfaWNvbnMiLCAiaW5pdF9mcmVlX3JlZ3VsYXJfc3ZnX2ljb25zIiwgImluaXRfZnJlZV9zb2xpZF9zdmdfaWNvbnMiLCAiaW5pdF9kZWVzX2ljb25fZGVtbyIsICJpbml0X2x1Y2lkZSIsICJmYUFycm93UmlnaHQiLCAiZmFBcnJvd1VwUmlnaHRGcm9tU3F1YXJlIiwgImZhQmVsbCIsICJmYUJ1ZyIsICJmYUJ1aWxkaW5nIiwgImZhQ2FyZXRMZWZ0IiwgImZhQ2FyZXRSaWdodCIsICJmYUNoZWNrIiwgImZhQ2lyY2xlSW5mbyIsICJmYUNpcmNsZUNoZWNrIiwgImZhQ2lyY2xlWG1hcmsiLCAiZmFDbG9ja1JvdGF0ZUxlZnQiLCAiZmFDb3B5IiwgImZhRGVza3RvcCIsICJmYUV5ZSIsICJmYUV5ZVNsYXNoIiwgImZhRmlsZUludm9pY2UiLCAiZmFGaWxlSW52b2ljZURvbGxhciIsICJmYUdlYXIiLCAiZmFHcmlwIiwgImZhTWFnbmlmeWluZ0dsYXNzIiwgImZhTWVzc2FnZSIsICJmYU1vbmV5Q2hlY2tEb2xsYXIiLCAiZmFNdWdIb3QiLCAiZmFNaW51cyIsICJmYU5ldHdvcmtXaXJlZCIsICJmYVBhcGVyY2xpcCIsICJmYVBhc3RlIiwgImZhUGVuVG9TcXVhcmUiLCAiZmFQbHVzIiwgImZhUmVjZWlwdCIsICJmYVJzcyIsICJmYVNoYXJlIiwgImZhU3VuIiwgImZhVGVybWluYWwiLCAiZmFUcmFzaCIsICJmYVRyYXNoQ2FuIiwgImZhVXNlcnMiLCAiZmFXYWxsZXQiLCAiZmFYbWFyayIsICJmYUZhY2Vib29rIiwgImZhR29vZ2xlIiwgImZhSW5zdGFncmFtIiwgImZhTGlua2VkaW4iLCAiZmFNZWRpdW0iLCAiZmFTbGFja0hhc2giLCAiZmFUaWt0b2siLCAiZmFUd2l0dGVyIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJ2YWx1ZSIsICJfX2VzRGVjb3JhdGUiLCAiX2ljb25GQV9kZWNvcmF0b3JzIiwgIm9iaiIsICJfbWV0YWRhdGEiLCAiX2ljb25GQV9pbml0aWFsaXplcnMiLCAiX2ljb25GQV9leHRyYUluaXRpYWxpemVycyIsICJfaWNvbl9kZWNvcmF0b3JzIiwgIl9pY29uX2luaXRpYWxpemVycyIsICJfaWNvbl9leHRyYUluaXRpYWxpemVycyIsICJfaWNvblNpemVfZGVjb3JhdG9ycyIsICJfaWNvblNpemVfaW5pdGlhbGl6ZXJzIiwgIl9pY29uU2l6ZV9leHRyYUluaXRpYWxpemVycyIsICJfY29sb3JfZGVjb3JhdG9ycyIsICJfY29sb3JfaW5pdGlhbGl6ZXJzIiwgIl9jb2xvcl9leHRyYUluaXRpYWxpemVycyIsICJfc3Ryb2tlV2lkdGhfZGVjb3JhdG9ycyIsICJfc3Ryb2tlV2lkdGhfaW5pdGlhbGl6ZXJzIiwgIl9zdHJva2VXaWR0aF9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjaWNvbkZBX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2ljb25fYWNjZXNzb3Jfc3RvcmFnZSIsICIjaWNvblNpemVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY29sb3JfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc3Ryb2tlV2lkdGhfYWNjZXNzb3Jfc3RvcmFnZSIsICJkb210b29sc19lbGVtZW50YmFzaWNfZXhwb3J0cyIsICJpY29uU3RyIiwgImxvd2VyU3RyIiwgImljb25OYW1lIiwgImNhY2hlS2V5IiwgInBhc2NhbENhc2VOYW1lIiwgImx1Y2lkZV9leHBvcnRzIiwgInN2Z0VsZW1lbnQiLCAiY3JlYXRlRWxlbWVudCIsICJyZXN1bHQiLCAiZXJyb3IiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgImVmZmVjdGl2ZUljb24iLCAiY29udGFpbmVyIiwgInR5cGUiLCAibmFtZSIsICJpY29uSHRtbCIsICJmYUljb24iLCAiaWNvbiIsICJDRE5fVkVSU0lPTlMiLCAiQ0ROX0JBU0UiLCAiaW5pdF92ZXJzaW9ucyIsICJfX2VzbU1pbiIsICJEZWVzU2VydmljZUxpYkxvYWRlciIsICJpbml0X0RlZXNTZXJ2aWNlTGliTG9hZGVyIiwgIl9fZXNtTWluIiwgImluaXRfdmVyc2lvbnMiLCAiX0RlZXNTZXJ2aWNlTGliTG9hZGVyIiwgIm1vZHVsZSIsICJDRE5fQkFTRSIsICJDRE5fVkVSU0lPTlMiLCAic3R5bGVJZCIsICJjc3NVcmwiLCAiY3NzVGV4dCIsICJzdHlsZSIsICJ2ZXJzaW9uIiwgImNvcmVNb2R1bGUiLCAic3RhcnRlcktpdE1vZHVsZSIsICJ1bmRlcmxpbmVNb2R1bGUiLCAidGV4dEFsaWduTW9kdWxlIiwgImxpbmtNb2R1bGUiLCAidHlwb2dyYXBoeU1vZHVsZSIsICJsaWJyYXJ5IiwgImluaXRfc2VydmljZXMiLCAiX19lc21NaW4iLCAiaW5pdF9EZWVzU2VydmljZUxpYkxvYWRlciIsICJpbml0X3ZlcnNpb25zIiwgImluaXRfSUV4ZWN1dGlvbkVudmlyb25tZW50IiwgIl9fZXNtTWluIiwgImluaXRfaW50ZXJmYWNlcyIsICJfX2VzbU1pbiIsICJpbml0X0lFeGVjdXRpb25FbnZpcm9ubWVudCIsICJERUZBVUxUX0VESVRPUl9PUklHSU4iLCAiU0VBUkNIX1BBUkFNX0FVVEhfQ09ERSIsICJTRUFSQ0hfUEFSQU1fRVJST1IiLCAiU0VBUkNIX1BBUkFNX0VSUk9SX0RFU0NSSVBUSU9OIiwgIkJST0FEQ0FTVF9DSEFOTkVMX05BTUUiLCAiU1RPUkFHRV9UT0tFTlNfTkFNRSIsICJTVE9SQUdFX0NPREVfVkVSSUZJRVJfTkFNRSIsICJTVE9SQUdFX1BPUFVQX05BTUUiLCAiaW5pdF9jb25zdGFudHMiLCAiX19lc21NaW4iLCAiVHlwZWRFdmVudFRhcmdldCIsICJpbml0X1R5cGVkRXZlbnRUYXJnZXQiLCAiX19lc21NaW4iLCAibGlzdGVuZXIiLCAid3JhcHBlZExpc3RlbmVyIiwgImV2ZW50IiwgImRhdGEiLCAiY2xlYXJUb2tlbnNJblN0b3JhZ2UiLCAiU1RPUkFHRV9UT0tFTlNfTkFNRSIsICJhZGRBY2Nlc3NUb2tlbkNoYW5nZWRMaXN0ZW5lciIsICJsaXN0ZW5lciIsICJhY2Nlc3NUb2tlbkNoYW5nZWRMaXN0ZW5lcnMiLCAicmVhZFRva2Vuc0Zyb21TdG9yYWdlIiwgInNlcmlhbGl6ZWRUb2tlbnMiLCAicGVyc2lzdFRva2Vuc0luU3RvcmFnZSIsICJ0b2tlbnMiLCAiZ2V0RXhwaXJlc0Zyb21Ub2tlblJlc3BvbnNlIiwgImNyZWF0ZWRfYXQiLCAiZXhwaXJlc19pbiIsICJhc3NlcnRUb2tlblJlc3BvbnNlIiwgInRva2VuIiwgIndhaXQiLCAibXMiLCAicmVzb2x2ZSIsICJmaXJlQWNjZXNzVG9rZW5DaGFuZ2VkIiwgImFjY2Vzc1Rva2VuIiwgIklHTk9SRURfRVJST1IiLCAiVG9rZW5zIiwgImluaXRfdG9rZW5zIiwgIl9fZXNtTWluIiwgImluaXRfY29uc3RhbnRzIiwgImluaXRfVHlwZWRFdmVudFRhcmdldCIsICJUeXBlZEV2ZW50VGFyZ2V0IiwgIl9Ub2tlbnMiLCAib3JpZ2luIiwgInJlZnJlc2giLCAiYWNjZXNzIiwgImV4cGlyZXMiLCAib25GYWlsZWRSZWZyZXNoIiwgImNsaWVudElkIiwgImlnbm9yZVJldm9rZUVycm9yIiwgImVycm9yIiwgInNhdmVkVG9rZW5zIiwgImVkaXRvck9yaWdpbiIsICJjb2RlVmVyaWZpZXIiLCAiYXV0aENvZGUiLCAicmVkaXJlY3RVcmkiLCAicmVzcG9uc2UiLCAidG9rZW5SZXNwb25zZSIsICJleHBpcmVzSW4iLCAicGFyYW1zIiwgImVkaXRvck9yaWdpbiIsICJpZnJhbWVTZXR0aW5ncyIsICJpbml0X2lmcmFtZV91cmwiLCAiX19lc21NaW4iLCAiaW5pdF9jb25zdGFudHMiLCAiREVGQVVMVF9FRElUT1JfT1JJR0lOIiwgIm5ld09yaWdpbiIsICJrZXkiLCAidmFsdWUiLCAidXJsIiwgInBhcmFtIiwgIlMyNTYiLCAiaW5wdXQiLCAiYXNjaWkiLCAic2hhMjU2IiwgImJpbmFyeSIsICJieXRlIiwgIm5ld0NvZGVWZXJpZmllciIsICJyYW5kb20iLCAiY29kZVZlcmlmaWVyIiwgImkiLCAibmV4dEZvdXJDaGFycyIsICJieXRlMSIsICJieXRlMiIsICJieXRlMyIsICJjaGFyMSIsICJjaGFyMiIsICJjaGFyMyIsICJjaGFyNCIsICJ1bnJlc2VydmVkQ2hhcmFjdGVycyIsICJjb2RlIiwgIm9mZnNldCIsICJpbml0X2NvZGUiLCAiX19lc21NaW4iLCAicmVzZXR0YWJsZVByb21pc2UiLCAicmVzb2x2ZSIsICJwcm9taXNlIiwgInJlc2V0IiwgIl9yZXNvbHZlIiwgInZhbHVlIiwgImluaXRfcmVzZXRfcHJvbWlzZSIsICJfX2VzbU1pbiIsICJicm9hZGNhc3RNZXNzYWdlIiwgIm1lc3NhZ2UiLCAiYXV0aFN0YXRlIiwgIlNUT1JBR0VfUE9QVVBfTkFNRSIsICJvbkZhaWxlZFRva2VuUmVmcmVzaCIsICJsb2dnZWRPdXRMaXN0ZW5lcnMiLCAiZGVmYXVsdFJlZGlyZWN0VXJpIiwgImdlbmVyYXRlT0F1dGhSZXF1ZXN0IiwgImNvZGVWZXJpZmllciIsICJuZXdDb2RlVmVyaWZpZXIiLCAiU1RPUkFHRV9DT0RFX1ZFUklGSUVSX05BTUUiLCAiY29kZUNoYWxsZW5nZSIsICJTMjU2IiwgInVybCIsICJzZWFyY2hQYXJhbXMiLCAiYXNzZXJ0QXV0aFRva2VucyIsICJ0b2tlbnMiLCAiYXV0aEZhaWxlZExpc3RlbmVycyIsICJhdXRoIiwgImluaXRfYXV0aF9zdGF0ZSIsICJfX2VzbU1pbiIsICJpbml0X3Rva2VucyIsICJpbml0X2NvbnN0YW50cyIsICJpbml0X2lmcmFtZV91cmwiLCAiaW5pdF9jb2RlIiwgImluaXRfcmVzZXRfcHJvbWlzZSIsICJpbml0X1R5cGVkRXZlbnRUYXJnZXQiLCAicmVzZXR0YWJsZVByb21pc2UiLCAiaWZyYW1lU2V0dGluZ3MiLCAiVHlwZWRFdmVudFRhcmdldCIsICJlZGl0b3JPcmlnaW4iLCAiY2xpZW50SWQiLCAic2NvcGUiLCAiVG9rZW5zIiwgIkJST0FEQ0FTVF9DSEFOTkVMX05BTUUiLCAib25DaGFubmVsTWVzc2FnZSIsICJldmVudCIsICJ0eXBlZEV2ZW50IiwgImNsZWFyVG9rZW5zSW5TdG9yYWdlIiwgImxvY2F0aW9uVVJMIiwgInVwZGF0ZVVSTCIsICJTRUFSQ0hfUEFSQU1fRVJST1IiLCAiZXJyb3IiLCAiZGVzY3JpcHRpb24iLCAiU0VBUkNIX1BBUkFNX0VSUk9SX0RFU0NSSVBUSU9OIiwgIlNFQVJDSF9QQVJBTV9BVVRIX0NPREUiLCAiYXV0aENvZGUiLCAicG9wdXAiLCAiaGVpZ2h0IiwgIndpZHRoIiwgImxlZnQiLCAidG9wIiwgImlnbm9yZVJldm9rZUVycm9yIiwgImxpc3RlbmVyIiwgIlByZXZpZXdNZXNzYWdlVHlwZSIsICJpbml0X3ByZXZpZXdfbWVzc2FnZV90eXBlcyIsICJfX2VzbU1pbiIsICJleHBvc2UiLCAib2JqIiwgImVwIiwgImNhbGxiYWNrIiwgImV2IiwgImlkIiwgInR5cGUiLCAicGF0aCIsICJhcmd1bWVudExpc3QiLCAiZnJvbVdpcmVWYWx1ZSIsICJyZXR1cm5WYWx1ZSIsICJwYXJlbnQiLCAib2JqMiIsICJwcm9wIiwgInJhd1ZhbHVlIiwgInZhbHVlIiwgInByb3h5IiwgInBvcnQxIiwgInBvcnQyIiwgInRyYW5zZmVyIiwgInRocm93TWFya2VyIiwgInJldHVyblZhbHVlMiIsICJ3aXJlVmFsdWUiLCAidHJhbnNmZXJhYmxlcyIsICJ0b1dpcmVWYWx1ZSIsICJjbG9zZUVuZFBvaW50IiwgImlzTWVzc2FnZVBvcnQiLCAiZW5kcG9pbnQiLCAid3JhcCIsICJ0YXJnZXQiLCAiY3JlYXRlUHJveHkiLCAidGhyb3dJZlByb3h5UmVsZWFzZWQiLCAiaXNSZWxlYXNlZCIsICJpc1Byb3h5UmVsZWFzZWQiLCAicHJveHkyIiwgIl90YXJnZXQiLCAicmVsZWFzZVByb3h5IiwgInJlcXVlc3RSZXNwb25zZU1lc3NhZ2UiLCAicCIsICJyIiwgIl90aGlzQXJnIiwgInJhd0FyZ3VtZW50TGlzdCIsICJsYXN0IiwgImNyZWF0ZUVuZHBvaW50IiwgInByb2Nlc3NBcmd1bWVudHMiLCAibXlGbGF0IiwgImFyciIsICJwcm9jZXNzZWQiLCAidiIsICJ0cmFuc2ZlcnMiLCAidHJhbnNmZXJDYWNoZSIsICJwcm94eU1hcmtlciIsICJ3aW5kb3dFbmRwb2ludCIsICJ3IiwgImNvbnRleHQiLCAidGFyZ2V0T3JpZ2luIiwgIm1zZyIsICJuYW1lIiwgImhhbmRsZXIiLCAidHJhbnNmZXJIYW5kbGVycyIsICJzZXJpYWxpemVkVmFsdWUiLCAicmVzb2x2ZSIsICJnZW5lcmF0ZVVVSUQiLCAibCIsICJfX2RlZlByb3AiLCAiX19leHBvcnQiLCAiY29tbGlua19leHBvcnRzIiwgImlzT2JqZWN0IiwgInByb3h5VHJhbnNmZXJIYW5kbGVyIiwgInRocm93VHJhbnNmZXJIYW5kbGVyIiwgImluaXRfdmVuZG9yIiwgIl9fZXNtTWluIiwgImFsbCIsICJ2YWwiLCAicG9ydCIsICJzZXJpYWxpemVkIiwgImluaXRfcmVsb2FkX3ByZXZpZXciLCAiX19lc21NaW4iLCAiaXNQcmV2aWV3TWVzc2FnZSIsICJkYXRhIiwgIlBSRVZJRVdfTUVTU0FHRV9UWVBFUyIsICJpbml0X2lzX3ByZXZpZXdfbWVzc2FnZSIsICJfX2VzbU1pbiIsICJpbml0X3ByZXZpZXdfbWVzc2FnZV90eXBlcyIsICJQcmV2aWV3TWVzc2FnZVR5cGUiLCAiaW5pdF91dGlscyIsICJfX2VzbU1pbiIsICJpbml0X3JlbG9hZF9wcmV2aWV3IiwgImluaXRfcHJldmlld19tZXNzYWdlX3R5cGVzIiwgImluaXRfaXNfcHJldmlld19tZXNzYWdlIiwgIm51bGxQcm90b3R5cGUiLCAic291cmNlIiwgInByb3RvdHlwZSIsICJpbml0X251bGxfcHJvdG90eXBlIiwgIl9fZXNtTWluIiwgInRvSW50ZXJuYWxGaWxlU3lzdGVtVHJlZSIsICJ0cmVlIiwgIm5ld1RyZWUiLCAibmFtZSIsICJlbnRyeSIsICJjb250ZW50cyIsICJzdHJpbmdDb250ZW50cyIsICJiaW5hcnlEZWNvZGVyIiwgImJpbmFyeSIsICJuZXdFbnRyeSIsICJ0b0V4dGVybmFsRmlsZVN5c3RlbVRyZWUiLCAibnVsbFByb3RvdHlwZSIsICJmcm9tQmluYXJ5U3RyaW5nIiwgInMiLCAiZW5jb2RlZCIsICJpIiwgImluaXRfZmlsZV9zeXN0ZW0iLCAiX19lc21NaW4iLCAiaW5pdF9udWxsX3Byb3RvdHlwZSIsICJjb25maWd1cmVBUElLZXkiLCAia2V5IiwgImF1dGhTdGF0ZSIsICJpZnJhbWVTZXR0aW5ncyIsICJ1bnN5bmNocm9uaXplZEJvb3QiLCAib3B0aW9ucyIsICJzZXJ2ZXJQcm9taXNlIiwgInNlcnZlckZhY3RvcnkiLCAiaW5zdGFuY2UiLCAiZnMiLCAicHJldmlld1NjcmlwdCIsICJydW50aW1lSW5mbyIsICJXZWJDb250YWluZXIiLCAiYmluYXJ5TGlzdGVuZXIiLCAibGlzdGVuZXIiLCAiZGF0YSIsICJkZWNvZGVyIiwgInByb3h5TGlzdGVuZXIiLCAiY29tbGlua19leHBvcnRzIiwgImNhY2hlZFNlcnZlclByb21pc2UiLCAiY2FjaGVkQm9vdE9wdGlvbnMiLCAiaWZyYW1lIiwgInVybCIsICJvcmlnaW4iLCAicmVzb2x2ZSIsICJvbk1lc3NhZ2UiLCAiZXZlbnQiLCAiaXNTdHJpbmdBcnJheSIsICJsaXN0IiwgImlzVHlwZWRBcnJheUNvbGxlY3Rpb24iLCAic3RyZWFtV2l0aFB1c2giLCAiY29udHJvbGxlciIsICJjb250cm9sbGVyXyIsICJpdGVtIiwgInN5bmNTdWJzY3JpcHRpb24iLCAic3RvcHBlZCIsICJ1bnN1YnNjcmliZSIsICJwcm9taXNlIiwgInVuc3Vic2NyaWJlXyIsICJhcmdzIiwgImF1dGgiLCAiYm9vdFByb21pc2UiLCAiZW5jb2RlciIsICJESVJfRU5UUllfVFlQRV9GSUxFIiwgIkRJUl9FTlRSWV9UWVBFX0RJUiIsICJEaXJFbnRJbXBsIiwgIkZTV2F0Y2hlciIsICJXZWJDb250YWluZXJQcm9jZXNzSW1wbCIsICJGaWxlU3lzdGVtQVBJQ2xpZW50IiwgImluaXRfZGlzdCIsICJfX2VzbU1pbiIsICJpbml0X2F1dGhfc3RhdGUiLCAiaW5pdF9wcmV2aWV3X21lc3NhZ2VfdHlwZXMiLCAiaW5pdF92ZW5kb3IiLCAiaW5pdF90b2tlbnMiLCAiaW5pdF9pZnJhbWVfdXJsIiwgImluaXRfdXRpbHMiLCAiaW5pdF9maWxlX3N5c3RlbSIsICJfV2ViQ29udGFpbmVyIiwgIl9pbnN0YW5jZSIsICJfcnVudGltZUluZm8iLCAiYWRkQWNjZXNzVG9rZW5DaGFuZ2VkTGlzdGVuZXIiLCAiYWNjZXNzVG9rZW4iLCAiYXNzZXJ0QXV0aFRva2VucyIsICJlcnJvciIsICJjb21tYW5kIiwgIm9wdGlvbnNPckFyZ3MiLCAib3V0cHV0IiwgIm91dHB1dFN0cmVhbSIsICJyZXN1bHQiLCAic3Rkb3V0IiwgInN0ZG91dFN0cmVhbSIsICJzdGRlcnIiLCAic3RkZXJyU3RyZWFtIiwgIndyYXBwZWRPdXRwdXQiLCAid3JhcHBlZFN0ZG91dCIsICJ3cmFwcGVkU3RkZXJyIiwgInByb2Nlc3MiLCAicGF0aCIsICJzZXJpYWxpemVPcHRpb25zIiwgInRvRXh0ZXJuYWxGaWxlU3lzdGVtVHJlZSIsICJvcmlnaW5hbExpc3RlbmVyIiwgIm1lc3NhZ2UiLCAiaXNQcmV2aWV3TWVzc2FnZSIsICJ3cmFwcGVkIiwgInN1YnNjcmliZSIsICJzbmFwc2hvdE9yVHJlZSIsICJwYXlsb2FkIiwgInRvSW50ZXJuYWxGaWxlU3lzdGVtVHJlZSIsICJzY3JpcHRTcmMiLCAidGVhcmRvd25GbiIsICJ3b3JrZGlyTmFtZSIsICJpbnN0YW5jZVByb21pc2UiLCAibmFtZSIsICJfdHlwZSIsICJfYXBpQ2xpZW50IiwgIl9wYXRoIiwgIl9vcHRpb25zIiwgIl9saXN0ZW5lciIsICJmaWxlbmFtZSIsICJfd2F0Y2hlciIsICJkaW1lbnNpb25zIiwgImVuY29kaW5nIiwgIm9sZFBhdGgiLCAibmV3UGF0aCIsICJidWZmZXIiLCAiZW50cnkiLCAid2F0Y2hlciIsICJXZWJDb250YWluZXJFbnZpcm9ubWVudCIsICJpbml0X1dlYkNvbnRhaW5lckVudmlyb25tZW50IiwgIl9fZXNtTWluIiwgImluaXRfZGlzdCIsICJfV2ViQ29udGFpbmVyRW52aXJvbm1lbnQiLCAiV2ViQ29udGFpbmVyIiwgImVycm9yIiwgInBhdGgiLCAiY29udGVudHMiLCAiZW50cnkiLCAib3B0aW9ucyIsICJjYWxsYmFjayIsICJ3YXRjaGVyIiwgImNvbW1hbmQiLCAiYXJncyIsICJwcm9jZXNzIiwgImZpbGVzIiwgImluaXRfZW52aXJvbm1lbnRzIiwgIl9fZXNtTWluIiwgImluaXRfV2ViQ29udGFpbmVyRW52aXJvbm1lbnQiLCAiaW5pdF9ncm91cF9ydW50aW1lIiwgIl9fZXNtTWluIiwgImluaXRfaW50ZXJmYWNlcyIsICJpbml0X2Vudmlyb25tZW50cyIsICJEZWVzQWN0aW9uYmFyIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgImluaXRfZGVlc19pY29uIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAiciIsICJfX2VzRGVjb3JhdGUiLCAiX2N1cnJlbnRCYXJfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9jdXJyZW50QmFyX2luaXRpYWxpemVycyIsICJfY3VycmVudEJhcl9leHRyYUluaXRpYWxpemVycyIsICJfdGltZVJlbWFpbmluZ19kZWNvcmF0b3JzIiwgIl90aW1lUmVtYWluaW5nX2luaXRpYWxpemVycyIsICJfdGltZVJlbWFpbmluZ19leHRyYUluaXRpYWxpemVycyIsICJfcHJvZ3Jlc3NQZXJjZW50X2RlY29yYXRvcnMiLCAiX3Byb2dyZXNzUGVyY2VudF9pbml0aWFsaXplcnMiLCAiX3Byb2dyZXNzUGVyY2VudF9leHRyYUluaXRpYWxpemVycyIsICJfaXNWaXNpYmxlX2RlY29yYXRvcnMiLCAiX2lzVmlzaWJsZV9pbml0aWFsaXplcnMiLCAiX2lzVmlzaWJsZV9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJnZXRBY3Rpb25iYXIiLCAiZSIsICJiIiwgImFjdGlvbmJhciIsICJyZXN1bHQiLCAiI2N1cnJlbnRCYXJfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjdGltZVJlbWFpbmluZ19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNwcm9ncmVzc1BlcmNlbnRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjaXNWaXNpYmxlX2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiYXIiLCAidHlwZSIsICJoYXNUaW1lb3V0IiwgImFjdGlvbiIsICJpc1ByaW1hcnkiLCAiaXNEZWZhdWx0QWN0aW9uIiwgInNob3dDb3VudGRvd24iLCAic2Vjb25kcyIsICJvcHRpb25zIiwgInJlc29sdmUiLCAiaXRlbSIsICJkdXJhdGlvbiIsICJkZWZhdWx0QWN0aW9uSWQiLCAic3RhcnRUaW1lIiwgInVwZGF0ZUludGVydmFsIiwgImVsYXBzZWQiLCAiYWN0aW9uSWQiLCAidGltZWRPdXQiLCAiVGVybWluYWxUYWJNYW5hZ2VyIiwgImluaXRfdGVybWluYWxfdGFiX21hbmFnZXIiLCAiX19lc21NaW4iLCAieHRlcm1CdW5kbGUiLCAiZml0QWRkb25CdW5kbGUiLCAidHlwZSIsICJtZXRhZGF0YSIsICJpc0JyaWdodCIsICJvcHRpb25zIiwgImlkIiwgInRlcm1pbmFsIiwgImZpdEFkZG9uIiwgInRhYiIsICJhIiwgImIiLCAiZSIsICJuZXdMYWJlbCIsICJleGl0Q29kZSIsICJwcm9jZXNzIiwgImlucHV0V3JpdGVyIiwgInRoZW1lIiwgIkRlZXNXb3Jrc3BhY2VUZXJtaW5hbCIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJpbml0X2dyb3VwX3J1bnRpbWUiLCAiaW5pdF9kZWVzX2ljb24iLCAiaW5pdF9kZWVzX2FjdGlvbmJhciIsICJpbml0X3Rlcm1pbmFsX3RhYl9tYW5hZ2VyIiwgImluaXRfc2VydmljZXMiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgInIiLCAiX19lc0RlY29yYXRlIiwgIl9leGVjdXRpb25FbnZpcm9ubWVudF9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2V4ZWN1dGlvbkVudmlyb25tZW50X2luaXRpYWxpemVycyIsICJfZXhlY3V0aW9uRW52aXJvbm1lbnRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NldHVwQ29tbWFuZF9kZWNvcmF0b3JzIiwgIl9zZXR1cENvbW1hbmRfaW5pdGlhbGl6ZXJzIiwgIl9zZXR1cENvbW1hbmRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2Vudmlyb25tZW50VmFyaWFibGVzX2RlY29yYXRvcnMiLCAiX2Vudmlyb25tZW50VmFyaWFibGVzX2luaXRpYWxpemVycyIsICJfZW52aXJvbm1lbnRWYXJpYWJsZXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX3RhYkJhcldpZHRoX2RlY29yYXRvcnMiLCAiX3RhYkJhcldpZHRoX2luaXRpYWxpemVycyIsICJfdGFiQmFyV2lkdGhfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Nob3dUYWJCYXJfZGVjb3JhdG9ycyIsICJfc2hvd1RhYkJhcl9pbml0aWFsaXplcnMiLCAiX3Nob3dUYWJCYXJfZXh0cmFJbml0aWFsaXplcnMiLCAiX3RhYnNfZGVjb3JhdG9ycyIsICJfdGFic19pbml0aWFsaXplcnMiLCAiX3RhYnNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2FjdGl2ZVRhYklkX2RlY29yYXRvcnMiLCAiX2FjdGl2ZVRhYklkX2luaXRpYWxpemVycyIsICJfYWN0aXZlVGFiSWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZW52IiwgIldlYkNvbnRhaW5lckVudmlyb25tZW50IiwgImIiLCAiI2V4ZWN1dGlvbkVudmlyb25tZW50X2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI3NldHVwQ29tbWFuZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNlbnZpcm9ubWVudFZhcmlhYmxlc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN0YWJCYXJXaWR0aF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzaG93VGFiQmFyX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3RhYnNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYWN0aXZlVGFiSWRfYWNjZXNzb3Jfc3RvcmFnZSIsICJkb210b29sc19wbHVnaW5leHBvcnRzX2V4cG9ydHMiLCAiVGVybWluYWxUYWJNYW5hZ2VyIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYWN0aXZlVGFiIiwgInRhYiIsICJlIiwgImRvbXRvb2xzSW5zdGFuY2UiLCAiZ29CcmlnaHQiLCAibGliTG9hZGVyIiwgIkRlZXNTZXJ2aWNlTGliTG9hZGVyIiwgInh0ZXJtQnVuZGxlIiwgImZpdEFkZG9uQnVuZGxlIiwgImNvbnRhaW5lciIsICJ0YWJJZCIsICJwcmV2aW91c1RhYklkIiwgImNvbW1hbmQiLCAiYXJncyIsICJwcm9jZXNzIiwgImRhdGEiLCAiaW5wdXRXcml0ZXIiLCAiZXhpdENvZGUiLCAiZXJyb3IiLCAibWVzc2FnZSIsICJ0YWJMYWJlbCIsICJpc1N1Y2Nlc3MiLCAibGFiZWwiLCAib3B0aW9ucyIsICJhbGxUYWJzIiwgImN1cnJlbnRJbmRleCIsICJuZXh0VGFiIiwgInRlcm0iLCAicHJvbXB0IiwgInJlc29sdmUiLCAiY2hlY2tQcm9tcHQiLCAibGluZXMiLCAibGluZSIsICJlbnZBcmciLCAiZW52RmlsZSIsICJrZXkiLCAiekluZGV4TGF5ZXJzIiwgImdldFpJbmRleCIsICJjYXRlZ29yeSIsICJzdWJjYXRlZ29yeSIsICJjYXRlZ29yeU9iaiIsICJjb21wb25lbnRaSW5kZXgiLCAiWkluZGV4UmVnaXN0cnkiLCAiX1pJbmRleFJlZ2lzdHJ5IiwgImVsZW1lbnQiLCAiekluZGV4IiwgImEiLCAiYiIsICJhWiIsICJiWiIsICJ6SW5kZXhSZWdpc3RyeSIsICJkaXN0X3RzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiYnVzaW5lc3NfZXhwb3J0cyIsICJjb2RlX2V4cG9ydHMiLCAiY29udGFpbmVyX2V4cG9ydHMiLCAiY29udGVudF9leHBvcnRzIiwgImRhdGFiYXNlX2V4cG9ydHMiLCAiZGVzY3JpcHRvcnNfZXhwb3J0cyIsICJmaW5hbmNlX2V4cG9ydHMiLCAiZ2VuZXJhbF9leHBvcnRzIiwgIm5ldHdvcmtfZXhwb3J0cyIsICJzYWFzX2V4cG9ydHMiLCAic3RvcmFnZV9leHBvcnRzIiwgIndlYnNpdGVfZXhwb3J0cyIsICJidXNpbmVzc19leHBvcnRzIiwgImRhdGFiYXNlX2V4cG9ydHMiLCAiZmluYW5jZV9leHBvcnRzIiwgImNvZGVfZXhwb3J0cyIsICJjb250YWluZXJfZXhwb3J0cyIsICJkZXNjcmlwdG9yc19leHBvcnRzIiwgImNvbnRlbnRfZXhwb3J0cyIsICJnZW5lcmFsX2V4cG9ydHMiLCAibmV0d29ya19leHBvcnRzIiwgIl9fZXhwb3J0IiwgIklDbmFtZURlc2NyaXB0b3IiLCAiSUNuYW1lRGVzY3JpcHRvciIsICJzYWFzX2V4cG9ydHMiLCAic3RvcmFnZV9leHBvcnRzIiwgIndlYnNpdGVfZXhwb3J0cyIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiZXZlbnRBcmciLCAiRGVlc0NvbnRleHRtZW51IiwgImluaXRfZGlzdF90cyIsICJEZWVzV2luZG93TGF5ZXIiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9vcHRpb25zX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfb3B0aW9uc19pbml0aWFsaXplcnMiLCAiX29wdGlvbnNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2JhY2tkcm9wWkluZGV4X2RlY29yYXRvcnMiLCAiX2JhY2tkcm9wWkluZGV4X2luaXRpYWxpemVycyIsICJfYmFja2Ryb3BaSW5kZXhfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NvbnRlbnRaSW5kZXhfZGVjb3JhdG9ycyIsICJfY29udGVudFpJbmRleF9pbml0aWFsaXplcnMiLCAiX2NvbnRlbnRaSW5kZXhfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Zpc2libGVfZGVjb3JhdG9ycyIsICJfdmlzaWJsZV9pbml0aWFsaXplcnMiLCAiX3Zpc2libGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiYiIsICJvcHRpb25zQXJnIiwgImRvbXRvb2xzSW5zdGFuY2UiLCAiZGlzdF90c19leHBvcnRzIiwgIndpbmRvd0xheWVyIiwgIiNvcHRpb25zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2JhY2tkcm9wWkluZGV4X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2NvbnRlbnRaSW5kZXhfYWNjZXNzb3Jfc3RvcmFnZSIsICIjdmlzaWJsZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgImRvbXRvb2xzIiwgInpJbmRleFJlZ2lzdHJ5IiwgImluaXRfZGlzdF90cyIsICJpbml0X2RlZXNfaWNvbiIsICJpbml0X3RoZW1lIiwgIkRlZXNDb250ZXh0bWVudSIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9tZW51SXRlbXNfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9tZW51SXRlbXNfaW5pdGlhbGl6ZXJzIiwgIl9tZW51SXRlbXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiZXZlbnQiLCAicGF0aCIsICJlbGVtZW50IiwgIml0ZW1zIiwgImV2ZW50QXJnIiwgIm1lbnVJdGVtc0FyZyIsICJjb250ZXh0TWVudSIsICJ6SW5kZXhMYXllcnMiLCAiRGVlc1dpbmRvd0xheWVyIiwgImRvbXRvb2xzX3BsdWdpbmV4cG9ydHNfZXhwb3J0cyIsICJyZWN0IiwgIndpbmRvd1dpZHRoIiwgIndpbmRvd0hlaWdodCIsICJ0b3AiLCAibGVmdCIsICIjbWVudUl0ZW1zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgIm1lbnVJdGVtQXJnIiwgIm1lbnVJdGVtIiwgImhhc1N1Ym1lbnUiLCAibWVudUl0ZW1zIiwgImN1cnJlbnRJbmRleCIsICJpdGVtIiwgIm5leHRJbmRleCIsICJwcmV2SW5kZXgiLCAibWVudUl0ZW1FbGVtZW50IiwgImVsIiwgIml0ZW1SZWN0IiwgIm1lbnVSZWN0IiwgInN1Ym1lbnVSZWN0IiwgInJvb3RNZW51IiwgImluaXRfZGlzdF90cyIsICJEZWVzRGVtb1dyYXBwZXIiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfcnVuQWZ0ZXJSZW5kZXJfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9ydW5BZnRlclJlbmRlcl9pbml0aWFsaXplcnMiLCAiX3J1bkFmdGVyUmVuZGVyX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgIiNydW5BZnRlclJlbmRlcl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgImkiLCAiYiIsICJyZXNvbHZlIiwgImVycm9yIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJhY3Rpdml0eUxvZyIsICJlbnRyaWVzIiwgImIiLCAiY3NzTWFuYWdlciIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9kZWVzX2ljb24iLCAiaW5pdF90aGVtZSIsICJEZWVzQXBwdWlBY3Rpdml0eWxvZyIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgInIiLCAiX19lc0RlY29yYXRlIiwgIl9lbnRyaWVzX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfZW50cmllc19pbml0aWFsaXplcnMiLCAiX2VudHJpZXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NlYXJjaFF1ZXJ5X2RlY29yYXRvcnMiLCAiX3NlYXJjaFF1ZXJ5X2luaXRpYWxpemVycyIsICJfc2VhcmNoUXVlcnlfZXh0cmFJbml0aWFsaXplcnMiLCAiX2ZpbHRlckNyaXRlcmlhX2RlY29yYXRvcnMiLCAiX2ZpbHRlckNyaXRlcmlhX2luaXRpYWxpemVycyIsICJfZmlsdGVyQ3JpdGVyaWFfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI2VudHJpZXNfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjc2VhcmNoUXVlcnlfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZmlsdGVyQ3JpdGVyaWFfYWNjZXNzb3Jfc3RvcmFnZSIsICJkb210b29sc19wbHVnaW5leHBvcnRzX2V4cG9ydHMiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJmaWx0ZXJlZEVudHJpZXMiLCAiZ3JvdXBlZEVudHJpZXMiLCAiYiIsICJkb210b29sc19lbGVtZW50YmFzaWNfZXhwb3J0cyIsICJncm91cCIsICJlbnRyeSIsICJ0aW1lc3RhbXAiLCAidGltZVN0ciIsICJpY29uTmFtZSIsICJlIiwgIm5ld0VudHJ5IiwgImVudHJpZXMiLCAibmV3RW50cmllcyIsICJjcml0ZXJpYSIsICJxdWVyeSIsICJsb3dlclF1ZXJ5IiwgInJlc3VsdCIsICJncm91cHMiLCAidG9kYXkiLCAieWVzdGVyZGF5IiwgImRhdGUiLCAibGFiZWwiLCAiZGF0ZTEiLCAiZGF0ZTIiLCAidHlwZSIsICJpY29ucyIsICJ0YXJnZXQiLCAiRGVlc0NvbnRleHRtZW51IiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJtZW51SXRlbXMiLCAiYiIsICJlbGVtZW50QXJnIiwgImFwcGJhciIsICJzdGF0dXNCdXR0b25zIiwgImJyZWFkY3J1bWJCdXR0b25zIiwgImkiLCAiaW5pdF9kaXN0X3RzIiwgImFwcHVpQXBwYmFyU3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJpbml0X2Rpc3RfdHMiLCAicmVuZGVyQXBwdWlBcHBiYXIiLCAiY29tcG9uZW50IiwgImIiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiRGVlc1dpbmRvd0NvbnRyb2xzIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX3R5cGVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl90eXBlX2luaXRpYWxpemVycyIsICJfdHlwZV9leHRyYUluaXRpYWxpemVycyIsICJfcG9zaXRpb25fZGVjb3JhdG9ycyIsICJfcG9zaXRpb25faW5pdGlhbGl6ZXJzIiwgIl9wb3NpdGlvbl9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJiIiwgIiN0eXBlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI3Bvc2l0aW9uX2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzQXBwdWlQcm9maWxlRHJvcGRvd24iLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfdXNlcl9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX3VzZXJfaW5pdGlhbGl6ZXJzIiwgIl91c2VyX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9tZW51SXRlbXNfZGVjb3JhdG9ycyIsICJfbWVudUl0ZW1zX2luaXRpYWxpemVycyIsICJfbWVudUl0ZW1zX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9pc09wZW5fZGVjb3JhdG9ycyIsICJfaXNPcGVuX2luaXRpYWxpemVycyIsICJfaXNPcGVuX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9wb3NpdGlvbl9kZWNvcmF0b3JzIiwgIl9wb3NpdGlvbl9pbml0aWFsaXplcnMiLCAiX3Bvc2l0aW9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImIiLCAiI3VzZXJfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjbWVudUl0ZW1zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2lzT3Blbl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNwb3NpdGlvbl9hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiekluZGV4TGF5ZXJzIiwgIml0ZW0iLCAibWVudUl0ZW0iLCAibmFtZSIsICJwYXJ0IiwgImV2ZW50IiwgInBhcmVudEVsZW1lbnQiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfZGVlc19pY29uIiwgIkRlZXNBcHB1aUJhciIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiciIsICJfX2VzRGVjb3JhdGUiLCAiX21lbnVJdGVtc19kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX21lbnVJdGVtc19pbml0aWFsaXplcnMiLCAiX21lbnVJdGVtc19leHRyYUluaXRpYWxpemVycyIsICJfYnJlYWRjcnVtYnNfZGVjb3JhdG9ycyIsICJfYnJlYWRjcnVtYnNfaW5pdGlhbGl6ZXJzIiwgIl9icmVhZGNydW1ic19leHRyYUluaXRpYWxpemVycyIsICJfYnJlYWRjcnVtYlNlcGFyYXRvcl9kZWNvcmF0b3JzIiwgIl9icmVhZGNydW1iU2VwYXJhdG9yX2luaXRpYWxpemVycyIsICJfYnJlYWRjcnVtYlNlcGFyYXRvcl9leHRyYUluaXRpYWxpemVycyIsICJfc2hvd1dpbmRvd0NvbnRyb2xzX2RlY29yYXRvcnMiLCAiX3Nob3dXaW5kb3dDb250cm9sc19pbml0aWFsaXplcnMiLCAiX3Nob3dXaW5kb3dDb250cm9sc19leHRyYUluaXRpYWxpemVycyIsICJfdXNlcl9kZWNvcmF0b3JzIiwgIl91c2VyX2luaXRpYWxpemVycyIsICJfdXNlcl9leHRyYUluaXRpYWxpemVycyIsICJfcHJvZmlsZU1lbnVJdGVtc19kZWNvcmF0b3JzIiwgIl9wcm9maWxlTWVudUl0ZW1zX2luaXRpYWxpemVycyIsICJfcHJvZmlsZU1lbnVJdGVtc19leHRyYUluaXRpYWxpemVycyIsICJfc2hvd1NlYXJjaF9kZWNvcmF0b3JzIiwgIl9zaG93U2VhcmNoX2luaXRpYWxpemVycyIsICJfc2hvd1NlYXJjaF9leHRyYUluaXRpYWxpemVycyIsICJfc2hvd0FjdGl2aXR5TG9nVG9nZ2xlX2RlY29yYXRvcnMiLCAiX3Nob3dBY3Rpdml0eUxvZ1RvZ2dsZV9pbml0aWFsaXplcnMiLCAiX3Nob3dBY3Rpdml0eUxvZ1RvZ2dsZV9leHRyYUluaXRpYWxpemVycyIsICJfYWN0aXZpdHlMb2dDb3VudF9kZWNvcmF0b3JzIiwgIl9hY3Rpdml0eUxvZ0NvdW50X2luaXRpYWxpemVycyIsICJfYWN0aXZpdHlMb2dDb3VudF9leHRyYUluaXRpYWxpemVycyIsICJfYWN0aXZpdHlMb2dBY3RpdmVfZGVjb3JhdG9ycyIsICJfYWN0aXZpdHlMb2dBY3RpdmVfaW5pdGlhbGl6ZXJzIiwgIl9hY3Rpdml0eUxvZ0FjdGl2ZV9leHRyYUluaXRpYWxpemVycyIsICJfYWN0aXZlTWVudV9kZWNvcmF0b3JzIiwgIl9hY3RpdmVNZW51X2luaXRpYWxpemVycyIsICJfYWN0aXZlTWVudV9leHRyYUluaXRpYWxpemVycyIsICJfb3BlbkRyb3Bkb3duc19kZWNvcmF0b3JzIiwgIl9vcGVuRHJvcGRvd25zX2luaXRpYWxpemVycyIsICJfb3BlbkRyb3Bkb3duc19leHRyYUluaXRpYWxpemVycyIsICJfZm9jdXNlZEl0ZW1fZGVjb3JhdG9ycyIsICJfZm9jdXNlZEl0ZW1faW5pdGlhbGl6ZXJzIiwgIl9mb2N1c2VkSXRlbV9leHRyYUluaXRpYWxpemVycyIsICJfZm9jdXNlZERyb3Bkb3duSXRlbV9kZWNvcmF0b3JzIiwgIl9mb2N1c2VkRHJvcGRvd25JdGVtX2luaXRpYWxpemVycyIsICJfZm9jdXNlZERyb3Bkb3duSXRlbV9leHRyYUluaXRpYWxpemVycyIsICJfaXNQcm9maWxlRHJvcGRvd25PcGVuX2RlY29yYXRvcnMiLCAiX2lzUHJvZmlsZURyb3Bkb3duT3Blbl9pbml0aWFsaXplcnMiLCAiX2lzUHJvZmlsZURyb3Bkb3duT3Blbl9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjbWVudUl0ZW1zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2JyZWFkY3J1bWJzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2JyZWFkY3J1bWJTZXBhcmF0b3JfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2hvd1dpbmRvd0NvbnRyb2xzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3VzZXJfYWNjZXNzb3Jfc3RvcmFnZSIsICIjcHJvZmlsZU1lbnVJdGVtc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzaG93U2VhcmNoX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3Nob3dBY3Rpdml0eUxvZ1RvZ2dsZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNhY3Rpdml0eUxvZ0NvdW50X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2FjdGl2aXR5TG9nQWN0aXZlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2FjdGl2ZU1lbnVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjb3BlbkRyb3Bkb3duc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNmb2N1c2VkSXRlbV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNmb2N1c2VkRHJvcGRvd25JdGVtX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2lzUHJvZmlsZURyb3Bkb3duT3Blbl9hY2Nlc3Nvcl9zdG9yYWdlIiwgImFwcHVpQXBwYmFyU3R5bGVzIiwgInJlbmRlckFwcHVpQXBwYmFyIiwgImIiLCAiaXRlbSIsICJpbmRleCIsICJpdGVtSWQiLCAibWVudUl0ZW0iLCAiaXNBY3RpdmUiLCAiaGFzU3VibWVudSIsICJlIiwgIml0ZW1zIiwgInBhcmVudElkIiwgImlzT3BlbiIsICJpdGVtSW5kZXgiLCAiaXNGb2N1c2VkIiwgInBhcnRzIiwgInBhcnQiLCAiZmlyc3RWYWxpZEl0ZW0iLCAiZHJvcGRvd24iLCAiYnJlYWRjcnVtYiIsICJfcGFyZW50SWQiLCAidmFsaWRJdGVtcyIsICJuZXh0SW5kZXgiLCAicHJldkluZGV4IiwgImZvY3VzZWRJdGVtIiwgImZpcnN0SW5kZXgiLCAibGFzdEluZGV4IiwgImN1cnJlbnRJbmRleCIsICJkaXJlY3Rpb24iLCAiY3VycmVudEl0ZW1JZCIsICJtZW51SXRlbXMiLCAiYXR0ZW1wdHMiLCAibmV4dEl0ZW0iLCAiaW5pdF9kaXN0X3RzIiwgIl9hIiwgImRlbW9GdW5jIiwgImIiLCAiX190ZW1wbGF0ZSIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJpbml0X2RlZXNfaWNvbiIsICJEZWVzQXBwdWlCb3R0b21iYXIiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfd2lkZ2V0c19kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX3dpZGdldHNfaW5pdGlhbGl6ZXJzIiwgIl93aWRnZXRzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9hY3Rpb25zX2RlY29yYXRvcnMiLCAiX2FjdGlvbnNfaW5pdGlhbGl6ZXJzIiwgIl9hY3Rpb25zX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiN3aWRnZXRzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2FjdGlvbnNfYWNjZXNzb3Jfc3RvcmFnZSIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImxlZnRXaWRnZXRzIiwgInciLCAiYSIsICJiIiwgInJpZ2h0V2lkZ2V0cyIsICJsZWZ0QWN0aW9ucyIsICJyaWdodEFjdGlvbnMiLCAiYWN0aW9uIiwgIndpZGdldCIsICJpbmRleCIsICJzdGF0dXNDbGFzcyIsICJpY29uTmFtZSIsICJlIiwgIm1lbnVJdGVtcyIsICJpdGVtIiwgIkRlZXNDb250ZXh0bWVudSIsICJpZCIsICJ1cGRhdGUiLCAiaW5pdF9kaXN0X3RzIiwgIkRlbW9EYXNoYm9hcmRWaWV3IiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAiciIsICJfX2VzRGVjb3JhdGUiLCAiX2FjdGl2YXRlZF9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2FjdGl2YXRlZF9pbml0aWFsaXplcnMiLCAiX2FjdGl2YXRlZF9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJfX3J1bkluaXRpYWxpemVycyIsICIjYWN0aXZhdGVkX2FjY2Vzc29yX3N0b3JhZ2UiLCAiY29udGV4dCIsICJhY3RpdmUiLCAia2V5cyIsICJiIiwgInRhYktleSIsICJEZW1vU2V0dGluZ3NWaWV3IiwgIl9zZWN0aW9uX2RlY29yYXRvcnMiLCAiX3NlY3Rpb25faW5pdGlhbGl6ZXJzIiwgIl9zZWN0aW9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9oYXNDaGFuZ2VzX2RlY29yYXRvcnMiLCAiX2hhc0NoYW5nZXNfaW5pdGlhbGl6ZXJzIiwgIl9oYXNDaGFuZ2VzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIiNzZWN0aW9uX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2hhc0NoYW5nZXNfYWNjZXNzb3Jfc3RvcmFnZSIsICJzZWN0aW9uIiwgIkRlbW9Qcm9qZWN0c1ZpZXciLCAiRGVtb1Rhc2tzVmlldyIsICJkZW1vRnVuYyIsICJhcHBDb25maWciLCAidmlld0lkIiwgInZpZXciLCAicXVlcnkiLCAiY29udGFpbmVyRWxlbWVudCIsICJhcHB1aUVsZW1lbnQiLCAiZXZlbnQiLCAiaW5pdF9kaXN0X3RzIiwgIlZpZXdSZWdpc3RyeSIsICJhcHB1aSIsICJ2aWV3IiwgInZpZXdzIiwgInZpZXdJZCIsICJyb3V0ZSIsICJ2aWV3Um91dGUiLCAicGFyYW1zIiwgInBhdHRlcm4iLCAicGF0dGVyblBhcnRzIiwgInJvdXRlUGFydHMiLCAiaSIsICJwYXJ0IiwgImlzT3B0aW9uYWwiLCAicGFyYW1OYW1lIiwgImluc3RhbmNlIiwgImxpZmVjeWNsZSIsICJjb250YWluZXIiLCAic2hvdWxkQ2FjaGUiLCAiZWxlbWVudCIsICJjb250ZW50IiwgImVycm9yIiwgIndyYXBwZXIiLCAidGVtcGxhdGUiLCAiRCIsICJjb250ZXh0IiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNBcHB1aU1haW5tZW51IiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX2xvZ29JY29uX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfbG9nb0ljb25faW5pdGlhbGl6ZXJzIiwgIl9sb2dvSWNvbl9leHRyYUluaXRpYWxpemVycyIsICJfbG9nb1RleHRfZGVjb3JhdG9ycyIsICJfbG9nb1RleHRfaW5pdGlhbGl6ZXJzIiwgIl9sb2dvVGV4dF9leHRyYUluaXRpYWxpemVycyIsICJfbWVudUdyb3Vwc19kZWNvcmF0b3JzIiwgIl9tZW51R3JvdXBzX2luaXRpYWxpemVycyIsICJfbWVudUdyb3Vwc19leHRyYUluaXRpYWxpemVycyIsICJfYm90dG9tVGFic19kZWNvcmF0b3JzIiwgIl9ib3R0b21UYWJzX2luaXRpYWxpemVycyIsICJfYm90dG9tVGFic19leHRyYUluaXRpYWxpemVycyIsICJfdGFic19kZWNvcmF0b3JzIiwgIl90YWJzX2luaXRpYWxpemVycyIsICJfdGFic19leHRyYUluaXRpYWxpemVycyIsICJfc2VsZWN0ZWRUYWJfZGVjb3JhdG9ycyIsICJfc2VsZWN0ZWRUYWJfaW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3RlZFRhYl9leHRyYUluaXRpYWxpemVycyIsICJfY29sbGFwc2VkX2RlY29yYXRvcnMiLCAiX2NvbGxhcHNlZF9pbml0aWFsaXplcnMiLCAiX2NvbGxhcHNlZF9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjbG9nb0ljb25fYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjbG9nb1RleHRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWVudUdyb3Vwc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNib3R0b21UYWJzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3RhYnNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2VsZWN0ZWRUYWJfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY29sbGFwc2VkX2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJ6SW5kZXhMYXllcnMiLCAiYWxsVGFicyIsICJiIiwgImV2ZW50QXJnIiwgIkRlZXNDb250ZXh0bWVudSIsICJ0YWJBcmciLCAiZ3JvdXAiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiYWN0aXZlIiwgImtleXMiLCAiZSIsICJpbml0X2RlZXNfaWNvbiIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzQXBwdWlTZWNvbmRhcnltZW51IiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfaGVhZGluZ19kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2hlYWRpbmdfaW5pdGlhbGl6ZXJzIiwgIl9oZWFkaW5nX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9ncm91cHNfZGVjb3JhdG9ycyIsICJfZ3JvdXBzX2luaXRpYWxpemVycyIsICJfZ3JvdXBzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3Rpb25PcHRpb25zX2RlY29yYXRvcnMiLCAiX3NlbGVjdGlvbk9wdGlvbnNfaW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3Rpb25PcHRpb25zX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3RlZEl0ZW1fZGVjb3JhdG9ycyIsICJfc2VsZWN0ZWRJdGVtX2luaXRpYWxpemVycyIsICJfc2VsZWN0ZWRJdGVtX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jb2xsYXBzZWRHcm91cHNfZGVjb3JhdG9ycyIsICJfY29sbGFwc2VkR3JvdXBzX2luaXRpYWxpemVycyIsICJfY29sbGFwc2VkR3JvdXBzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jb2xsYXBzZWRNdWx0aUZpbHRlcnNfZGVjb3JhdG9ycyIsICJfY29sbGFwc2VkTXVsdGlGaWx0ZXJzX2luaXRpYWxpemVycyIsICJfY29sbGFwc2VkTXVsdGlGaWx0ZXJzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9yZW5kZXJDb3VudGVyX2RlY29yYXRvcnMiLCAiX3JlbmRlckNvdW50ZXJfaW5pdGlhbGl6ZXJzIiwgIl9yZW5kZXJDb3VudGVyX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jb2xsYXBzZWRfZGVjb3JhdG9ycyIsICJfY29sbGFwc2VkX2luaXRpYWxpemVycyIsICJfY29sbGFwc2VkX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiNoZWFkaW5nX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2dyb3Vwc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzZWxlY3Rpb25PcHRpb25zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3NlbGVjdGVkSXRlbV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNjb2xsYXBzZWRHcm91cHNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY29sbGFwc2VkTXVsdGlGaWx0ZXJzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3JlbmRlckNvdW50ZXJfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY29sbGFwc2VkX2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgImdyb3VwIiwgIml0ZW0iLCAiaXNTZWxlY3RlZCIsICJpc0Rpc2FibGVkIiwgImUiLCAidmFyaWFudCIsICJpc0NvbGxhcHNlZCIsICJjaGVja2VkQ291bnQiLCAib3B0IiwgIm9wdGlvbiIsICJpc0V4dGVybmFsIiwgInRhYkl0ZW0iLCAiaWNvbk5hbWUiLCAiZ3JvdXBOYW1lIiwgIm5ld0NvbGxhcHNlZCIsICJmaWx0ZXJLZXkiLCAibmV3QWN0aXZlIiwgIm9wdGlvbktleSIsICJzZWxlY3RlZEtleXMiLCAiZXZlbnQiLCAiRGVlc0NvbnRleHRtZW51IiwgIl9jaGFuZ2VkUHJvcGVydGllcyIsICJpbml0aWFsQ29sbGFwc2VkIiwgImluaXRpYWxNdWx0aUZpbHRlckNvbGxhcHNlZCIsICJtdWx0aUZpbHRlciIsICJpdGVtVHlwZSIsICJmaXJzdE9wdGlvbiIsICJpbml0X2Rpc3RfdHMiLCAiRGVtb0Nsb3NlYWJsZVRhYnMiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfdGFic19kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX3RhYnNfaW5pdGlhbGl6ZXJzIiwgIl90YWJzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl90YWJDb3VudGVyX2RlY29yYXRvcnMiLCAiX3RhYkNvdW50ZXJfaW5pdGlhbGl6ZXJzIiwgIl90YWJDb3VudGVyX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgIiN0YWJzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI3RhYkNvdW50ZXJfYWNjZXNzb3Jfc3RvcmFnZSIsICJpIiwgImNzc01hbmFnZXIiLCAidGFiS2V5IiwgImIiLCAiZSIsICJEZW1vQXV0b0hpZGVUYWJzIiwgIl9hdXRvSGlkZV9kZWNvcmF0b3JzIiwgIl9hdXRvSGlkZV9pbml0aWFsaXplcnMiLCAiX2F1dG9IaWRlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl90aHJlc2hvbGRfZGVjb3JhdG9ycyIsICJfdGhyZXNob2xkX2luaXRpYWxpemVycyIsICJfdGhyZXNob2xkX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIiNhdXRvSGlkZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN0aHJlc2hvbGRfYWNjZXNzb3Jfc3RvcmFnZSIsICJzaG91bGRIaWRlIiwgImRlbW9GdW5jIiwgImhvcml6b250YWxUYWJzIiwgInZlcnRpY2FsVGFicyIsICJub0luZGljYXRvclRhYnMiLCAiZGVtb0NvbnRlbnQiLCAidGV4dCIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzQXBwdWlUYWJzIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfdGFic19kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX3RhYnNfaW5pdGlhbGl6ZXJzIiwgIl90YWJzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3RlZFRhYl9kZWNvcmF0b3JzIiwgIl9zZWxlY3RlZFRhYl9pbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkVGFiX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zaG93VGFiSW5kaWNhdG9yX2RlY29yYXRvcnMiLCAiX3Nob3dUYWJJbmRpY2F0b3JfaW5pdGlhbGl6ZXJzIiwgIl9zaG93VGFiSW5kaWNhdG9yX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl90YWJTdHlsZV9kZWNvcmF0b3JzIiwgIl90YWJTdHlsZV9pbml0aWFsaXplcnMiLCAiX3RhYlN0eWxlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9hdXRvSGlkZV9kZWNvcmF0b3JzIiwgIl9hdXRvSGlkZV9pbml0aWFsaXplcnMiLCAiX2F1dG9IaWRlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9hdXRvSGlkZVRocmVzaG9sZF9kZWNvcmF0b3JzIiwgIl9hdXRvSGlkZVRocmVzaG9sZF9pbml0aWFsaXplcnMiLCAiX2F1dG9IaWRlVGhyZXNob2xkX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jYW5TY3JvbGxMZWZ0X2RlY29yYXRvcnMiLCAiX2NhblNjcm9sbExlZnRfaW5pdGlhbGl6ZXJzIiwgIl9jYW5TY3JvbGxMZWZ0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jYW5TY3JvbGxSaWdodF9kZWNvcmF0b3JzIiwgIl9jYW5TY3JvbGxSaWdodF9pbml0aWFsaXplcnMiLCAiX2NhblNjcm9sbFJpZ2h0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiN0YWJzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI3NlbGVjdGVkVGFiX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3Nob3dUYWJJbmRpY2F0b3JfYWNjZXNzb3Jfc3RvcmFnZSIsICIjdGFiU3R5bGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYXV0b0hpZGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYXV0b0hpZGVUaHJlc2hvbGRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY2FuU2Nyb2xsTGVmdF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNjYW5TY3JvbGxSaWdodF9hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYiIsICJpc0hvcml6b250YWwiLCAid3JhcHBlckNsYXNzIiwgImNvbnRhaW5lckNsYXNzIiwgInRhYiIsICJjbGFzc2VzIiwgImNsb3NlQnV0dG9uIiwgImUiLCAiY29udGVudCIsICJ0YWJBcmciLCAiY29udGFpbmVyIiwgInNjcm9sbExlZnQiLCAic2Nyb2xsV2lkdGgiLCAiY2xpZW50V2lkdGgiLCAidGhyZXNob2xkIiwgInRhYkluZGV4IiwgInRhYkVsZW1lbnQiLCAiY29udGFpbmVyUmVjdCIsICJ0YWJSZWN0IiwgImNoYW5nZWRQcm9wZXJ0aWVzIiwgInNlbGVjdGVkVGFiRWxlbWVudCIsICJpbmRpY2F0b3IiLCAic2VsZWN0ZWRJbmRleCIsICJzZWxlY3RvciIsICJ0YWJDb250ZW50IiwgIndyYXBwZXJSZWN0IiwgImNvbnRlbnRSZWN0IiwgImNvbnRlbnRMZWZ0IiwgImluZGljYXRvcldpZHRoIiwgImluZGljYXRvckxlZnQiLCAidGFic0NvbnRhaW5lciIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzQXBwdWlNYWluY29udGVudCIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl90YWJzX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfdGFic19pbml0aWFsaXplcnMiLCAiX3RhYnNfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkVGFiX2RlY29yYXRvcnMiLCAiX3NlbGVjdGVkVGFiX2luaXRpYWxpemVycyIsICJfc2VsZWN0ZWRUYWJfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Nob3dUYWJzX2RlY29yYXRvcnMiLCAiX3Nob3dUYWJzX2luaXRpYWxpemVycyIsICJfc2hvd1RhYnNfZXh0cmFJbml0aWFsaXplcnMiLCAiX3RhYnNBdXRvSGlkZV9kZWNvcmF0b3JzIiwgIl90YWJzQXV0b0hpZGVfaW5pdGlhbGl6ZXJzIiwgIl90YWJzQXV0b0hpZGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3RhYnNBdXRvSGlkZVRocmVzaG9sZF9kZWNvcmF0b3JzIiwgIl90YWJzQXV0b0hpZGVUaHJlc2hvbGRfaW5pdGlhbGl6ZXJzIiwgIl90YWJzQXV0b0hpZGVUaHJlc2hvbGRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiYiIsICIjdGFic19hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNzZWxlY3RlZFRhYl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzaG93VGFic19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN0YWJzQXV0b0hpZGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjdGFic0F1dG9IaWRlVGhyZXNob2xkX2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJlIiwgImNoYW5nZWRQcm9wZXJ0aWVzIiwgIl9jaGFuZ2VkUHJvcGVydGllcyIsICJ0YWJzQ29tcG9uZW50IiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNBcHB1aSIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiciIsICJfX2VzRGVjb3JhdGUiLCAiX2FwcGJhck1lbnVJdGVtc19kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2FwcGJhck1lbnVJdGVtc19pbml0aWFsaXplcnMiLCAiX2FwcGJhck1lbnVJdGVtc19leHRyYUluaXRpYWxpemVycyIsICJfYXBwYmFyQnJlYWRjcnVtYnNfZGVjb3JhdG9ycyIsICJfYXBwYmFyQnJlYWRjcnVtYnNfaW5pdGlhbGl6ZXJzIiwgIl9hcHBiYXJCcmVhZGNydW1ic19leHRyYUluaXRpYWxpemVycyIsICJfYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcl9kZWNvcmF0b3JzIiwgIl9hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yX2luaXRpYWxpemVycyIsICJfYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcl9leHRyYUluaXRpYWxpemVycyIsICJfYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzX2RlY29yYXRvcnMiLCAiX2FwcGJhclNob3dXaW5kb3dDb250cm9sc19pbml0aWFsaXplcnMiLCAiX2FwcGJhclNob3dXaW5kb3dDb250cm9sc19leHRyYUluaXRpYWxpemVycyIsICJfYXBwYmFyVXNlcl9kZWNvcmF0b3JzIiwgIl9hcHBiYXJVc2VyX2luaXRpYWxpemVycyIsICJfYXBwYmFyVXNlcl9leHRyYUluaXRpYWxpemVycyIsICJfYXBwYmFyUHJvZmlsZU1lbnVJdGVtc19kZWNvcmF0b3JzIiwgIl9hcHBiYXJQcm9maWxlTWVudUl0ZW1zX2luaXRpYWxpemVycyIsICJfYXBwYmFyUHJvZmlsZU1lbnVJdGVtc19leHRyYUluaXRpYWxpemVycyIsICJfYXBwYmFyU2hvd1NlYXJjaF9kZWNvcmF0b3JzIiwgIl9hcHBiYXJTaG93U2VhcmNoX2luaXRpYWxpemVycyIsICJfYXBwYmFyU2hvd1NlYXJjaF9leHRyYUluaXRpYWxpemVycyIsICJfbWFpbm1lbnVMb2dvSWNvbl9kZWNvcmF0b3JzIiwgIl9tYWlubWVudUxvZ29JY29uX2luaXRpYWxpemVycyIsICJfbWFpbm1lbnVMb2dvSWNvbl9leHRyYUluaXRpYWxpemVycyIsICJfbWFpbm1lbnVMb2dvVGV4dF9kZWNvcmF0b3JzIiwgIl9tYWlubWVudUxvZ29UZXh0X2luaXRpYWxpemVycyIsICJfbWFpbm1lbnVMb2dvVGV4dF9leHRyYUluaXRpYWxpemVycyIsICJfbWFpbm1lbnVHcm91cHNfZGVjb3JhdG9ycyIsICJfbWFpbm1lbnVHcm91cHNfaW5pdGlhbGl6ZXJzIiwgIl9tYWlubWVudUdyb3Vwc19leHRyYUluaXRpYWxpemVycyIsICJfbWFpbm1lbnVCb3R0b21UYWJzX2RlY29yYXRvcnMiLCAiX21haW5tZW51Qm90dG9tVGFic19pbml0aWFsaXplcnMiLCAiX21haW5tZW51Qm90dG9tVGFic19leHRyYUluaXRpYWxpemVycyIsICJfbWFpbm1lbnVUYWJzX2RlY29yYXRvcnMiLCAiX21haW5tZW51VGFic19pbml0aWFsaXplcnMiLCAiX21haW5tZW51VGFic19leHRyYUluaXRpYWxpemVycyIsICJfbWFpbm1lbnVTZWxlY3RlZFRhYl9kZWNvcmF0b3JzIiwgIl9tYWlubWVudVNlbGVjdGVkVGFiX2luaXRpYWxpemVycyIsICJfbWFpbm1lbnVTZWxlY3RlZFRhYl9leHRyYUluaXRpYWxpemVycyIsICJfc2Vjb25kYXJ5bWVudUhlYWRpbmdfZGVjb3JhdG9ycyIsICJfc2Vjb25kYXJ5bWVudUhlYWRpbmdfaW5pdGlhbGl6ZXJzIiwgIl9zZWNvbmRhcnltZW51SGVhZGluZ19leHRyYUluaXRpYWxpemVycyIsICJfc2Vjb25kYXJ5bWVudUdyb3Vwc19kZWNvcmF0b3JzIiwgIl9zZWNvbmRhcnltZW51R3JvdXBzX2luaXRpYWxpemVycyIsICJfc2Vjb25kYXJ5bWVudUdyb3Vwc19leHRyYUluaXRpYWxpemVycyIsICJfc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbV9kZWNvcmF0b3JzIiwgIl9zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtX2luaXRpYWxpemVycyIsICJfc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbV9leHRyYUluaXRpYWxpemVycyIsICJfbWFpbm1lbnVDb2xsYXBzZWRfZGVjb3JhdG9ycyIsICJfbWFpbm1lbnVDb2xsYXBzZWRfaW5pdGlhbGl6ZXJzIiwgIl9tYWlubWVudUNvbGxhcHNlZF9leHRyYUluaXRpYWxpemVycyIsICJfc2Vjb25kYXJ5bWVudUNvbGxhcHNlZF9kZWNvcmF0b3JzIiwgIl9zZWNvbmRhcnltZW51Q29sbGFwc2VkX2luaXRpYWxpemVycyIsICJfc2Vjb25kYXJ5bWVudUNvbGxhcHNlZF9leHRyYUluaXRpYWxpemVycyIsICJfbWFpbm1lbnVWaXNpYmxlX2RlY29yYXRvcnMiLCAiX21haW5tZW51VmlzaWJsZV9pbml0aWFsaXplcnMiLCAiX21haW5tZW51VmlzaWJsZV9leHRyYUluaXRpYWxpemVycyIsICJfc2Vjb25kYXJ5bWVudVZpc2libGVfZGVjb3JhdG9ycyIsICJfc2Vjb25kYXJ5bWVudVZpc2libGVfaW5pdGlhbGl6ZXJzIiwgIl9zZWNvbmRhcnltZW51VmlzaWJsZV9leHRyYUluaXRpYWxpemVycyIsICJfbWFpbmNvbnRlbnRUYWJzVmlzaWJsZV9kZWNvcmF0b3JzIiwgIl9tYWluY29udGVudFRhYnNWaXNpYmxlX2luaXRpYWxpemVycyIsICJfbWFpbmNvbnRlbnRUYWJzVmlzaWJsZV9leHRyYUluaXRpYWxpemVycyIsICJfY29udGVudFRhYnNBdXRvSGlkZV9kZWNvcmF0b3JzIiwgIl9jb250ZW50VGFic0F1dG9IaWRlX2luaXRpYWxpemVycyIsICJfY29udGVudFRhYnNBdXRvSGlkZV9leHRyYUluaXRpYWxpemVycyIsICJfY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZF9kZWNvcmF0b3JzIiwgIl9jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkX2luaXRpYWxpemVycyIsICJfY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZF9leHRyYUluaXRpYWxpemVycyIsICJfYWN0aXZpdHlMb2dWaXNpYmxlX2RlY29yYXRvcnMiLCAiX2FjdGl2aXR5TG9nVmlzaWJsZV9pbml0aWFsaXplcnMiLCAiX2FjdGl2aXR5TG9nVmlzaWJsZV9leHRyYUluaXRpYWxpemVycyIsICJfYWN0aXZpdHlMb2dDb3VudF9kZWNvcmF0b3JzIiwgIl9hY3Rpdml0eUxvZ0NvdW50X2luaXRpYWxpemVycyIsICJfYWN0aXZpdHlMb2dDb3VudF9leHRyYUluaXRpYWxpemVycyIsICJfbWFpbmNvbnRlbnRUYWJzX2RlY29yYXRvcnMiLCAiX21haW5jb250ZW50VGFic19pbml0aWFsaXplcnMiLCAiX21haW5jb250ZW50VGFic19leHRyYUluaXRpYWxpemVycyIsICJfbWFpbmNvbnRlbnRTZWxlY3RlZFRhYl9kZWNvcmF0b3JzIiwgIl9tYWluY29udGVudFNlbGVjdGVkVGFiX2luaXRpYWxpemVycyIsICJfbWFpbmNvbnRlbnRTZWxlY3RlZFRhYl9leHRyYUluaXRpYWxpemVycyIsICJfYXBwYmFyX2RlY29yYXRvcnMiLCAiX2FwcGJhcl9pbml0aWFsaXplcnMiLCAiX2FwcGJhcl9leHRyYUluaXRpYWxpemVycyIsICJfbWFpbm1lbnVfZGVjb3JhdG9ycyIsICJfbWFpbm1lbnVfaW5pdGlhbGl6ZXJzIiwgIl9tYWlubWVudV9leHRyYUluaXRpYWxpemVycyIsICJfc2Vjb25kYXJ5bWVudV9kZWNvcmF0b3JzIiwgIl9zZWNvbmRhcnltZW51X2luaXRpYWxpemVycyIsICJfc2Vjb25kYXJ5bWVudV9leHRyYUluaXRpYWxpemVycyIsICJfbWFpbmNvbnRlbnRfZGVjb3JhdG9ycyIsICJfbWFpbmNvbnRlbnRfaW5pdGlhbGl6ZXJzIiwgIl9tYWluY29udGVudF9leHRyYUluaXRpYWxpemVycyIsICJfYWN0aXZpdHlsb2dFbGVtZW50X2RlY29yYXRvcnMiLCAiX2FjdGl2aXR5bG9nRWxlbWVudF9pbml0aWFsaXplcnMiLCAiX2FjdGl2aXR5bG9nRWxlbWVudF9leHRyYUluaXRpYWxpemVycyIsICJfYm90dG9tYmFyRWxlbWVudF9kZWNvcmF0b3JzIiwgIl9ib3R0b21iYXJFbGVtZW50X2luaXRpYWxpemVycyIsICJfYm90dG9tYmFyRWxlbWVudF9leHRyYUluaXRpYWxpemVycyIsICJfYm90dG9tYmFyVmlzaWJsZV9kZWNvcmF0b3JzIiwgIl9ib3R0b21iYXJWaXNpYmxlX2luaXRpYWxpemVycyIsICJfYm90dG9tYmFyVmlzaWJsZV9leHRyYUluaXRpYWxpemVycyIsICJfY3VycmVudFZpZXdfZGVjb3JhdG9ycyIsICJfY3VycmVudFZpZXdfaW5pdGlhbGl6ZXJzIiwgIl9jdXJyZW50Vmlld19leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICJkb210b29sc19wbHVnaW5leHBvcnRzX2V4cG9ydHMiLCAiI2FwcGJhck1lbnVJdGVtc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNhcHBiYXJCcmVhZGNydW1ic19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2FwcGJhclNob3dXaW5kb3dDb250cm9sc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNhcHBiYXJVc2VyX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2FwcGJhclByb2ZpbGVNZW51SXRlbXNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYXBwYmFyU2hvd1NlYXJjaF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtYWlubWVudUxvZ29JY29uX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI21haW5tZW51TG9nb1RleHRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWFpbm1lbnVHcm91cHNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWFpbm1lbnVCb3R0b21UYWJzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI21haW5tZW51VGFic19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtYWlubWVudVNlbGVjdGVkVGFiX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3NlY29uZGFyeW1lbnVIZWFkaW5nX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3NlY29uZGFyeW1lbnVHcm91cHNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtYWlubWVudUNvbGxhcHNlZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzZWNvbmRhcnltZW51Q29sbGFwc2VkX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI21haW5tZW51VmlzaWJsZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzZWNvbmRhcnltZW51VmlzaWJsZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtYWluY29udGVudFRhYnNWaXNpYmxlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2NvbnRlbnRUYWJzQXV0b0hpZGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNhY3Rpdml0eUxvZ1Zpc2libGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYWN0aXZpdHlMb2dDb3VudF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtYWluY29udGVudFRhYnNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWFpbmNvbnRlbnRTZWxlY3RlZFRhYl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNhcHBiYXJfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWFpbm1lbnVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2Vjb25kYXJ5bWVudV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtYWluY29udGVudF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNhY3Rpdml0eWxvZ0VsZW1lbnRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYm90dG9tYmFyRWxlbWVudF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNib3R0b21iYXJWaXNpYmxlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2N1cnJlbnRWaWV3X2FjY2Vzc29yX3N0b3JhZ2UiLCAiVmlld1JlZ2lzdHJ5IiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYiIsICJlIiwgImVudHJpZXMiLCAibWVudXMiLCAibmFtZSIsICJ1cGRhdGUiLCAibWVudSIsICJicmVhZGNydW1icyIsICJ1c2VyIiwgIml0ZW1zIiwgInZpc2libGUiLCAiY2FsbGJhY2siLCAiY29uZmlnIiwgImdyb3VwTmFtZSIsICJncm91cCIsICJ0YWIiLCAidGFiS2V5IiwgImJvdHRvbVRhYiIsICJjb2xsYXBzZWQiLCAiZW5hYmxlZCIsICJ0aHJlc2hvbGQiLCAiYmFkZ2UiLCAicmVzdCIsICJpdGVtIiwgIml0ZW1LZXkiLCAidGFicyIsICJlbnRyeSIsICJjcml0ZXJpYSIsICJxdWVyeSIsICJ3aWRnZXQiLCAiaWQiLCAiYWN0aW9uIiwgInZpZXdJZCIsICJwYXJhbXMiLCAidmlldyIsICJjYW5MZWF2ZSIsICJuZXdIYXNoIiwgImVycm9yIiwgImV2ZW50IiwgImhhbmRsZUhhc2hDaGFuZ2UiLCAiaGFzaCIsICJtYXRjaCIsICJjdXJyZW50SGFzaCIsICJzZWN0aW9uIiwgInByZXZpb3VzVmlldyIsICJ2aWV3Q29udGFpbmVyIiwgImVsZW1lbnQiLCAiY2hhbmdlRXZlbnQiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiaSIsICJjc3NNYW5hZ2VyIiwgImluaXRfZGlzdF90cyIsICJnZWlzdFNhbnNGb250IiwgImludGVsT25lTW9ub0ZvbnQiLCAiZ2Vpc3RGb250RmFtaWx5IiwgIm1vbm9Gb250RmFtaWx5IiwgImNzc0dlaXN0Rm9udEZhbWlseSIsICJyIiwgImNzc01vbm9Gb250RmFtaWx5IiwgImNhbFNhbnNGb250IiwgImNhbFNhbnNGb250RmFtaWx5IiwgImNzc0NhbFNhbnNGb250RmFtaWx5IiwgInJvYm90b1NsYWJGb250IiwgInJvYm90b1NsYWJGb250RmFtaWx5IiwgImNzc1JvYm90b1NsYWJGb250RmFtaWx5IiwgImJhc2VGb250U3R5bGVzIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNQYW5lbCIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl90aXRsZV9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX3RpdGxlX2luaXRpYWxpemVycyIsICJfdGl0bGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3N1YnRpdGxlX2RlY29yYXRvcnMiLCAiX3N1YnRpdGxlX2luaXRpYWxpemVycyIsICJfc3VidGl0bGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3ZhcmlhbnRfZGVjb3JhdG9ycyIsICJfdmFyaWFudF9pbml0aWFsaXplcnMiLCAiX3ZhcmlhbnRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NpemVfZGVjb3JhdG9ycyIsICJfc2l6ZV9pbml0aWFsaXplcnMiLCAiX3NpemVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3J1bkFmdGVyUmVuZGVyX2RlY29yYXRvcnMiLCAiX3J1bkFmdGVyUmVuZGVyX2luaXRpYWxpemVycyIsICJfcnVuQWZ0ZXJSZW5kZXJfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI3RpdGxlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI3N1YnRpdGxlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3ZhcmlhbnRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2l6ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNydW5BZnRlclJlbmRlcl9hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiY3NzR2Vpc3RGb250RmFtaWx5IiwgImIiLCAiaW5pdF9kaXN0X3RzIiwgIkRlZXNJbnB1dEJhc2UiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX2xheW91dE1vZGVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9sYXlvdXRNb2RlX2luaXRpYWxpemVycyIsICJfbGF5b3V0TW9kZV9leHRyYUluaXRpYWxpemVycyIsICJfbGFiZWxQb3NpdGlvbl9kZWNvcmF0b3JzIiwgIl9sYWJlbFBvc2l0aW9uX2luaXRpYWxpemVycyIsICJfbGFiZWxQb3NpdGlvbl9leHRyYUluaXRpYWxpemVycyIsICJfa2V5X2RlY29yYXRvcnMiLCAiX2tleV9pbml0aWFsaXplcnMiLCAiX2tleV9leHRyYUluaXRpYWxpemVycyIsICJfbGFiZWxfZGVjb3JhdG9ycyIsICJfbGFiZWxfaW5pdGlhbGl6ZXJzIiwgIl9sYWJlbF9leHRyYUluaXRpYWxpemVycyIsICJfcmVxdWlyZWRfZGVjb3JhdG9ycyIsICJfcmVxdWlyZWRfaW5pdGlhbGl6ZXJzIiwgIl9yZXF1aXJlZF9leHRyYUluaXRpYWxpemVycyIsICJfZGlzYWJsZWRfZGVjb3JhdG9ycyIsICJfZGlzYWJsZWRfaW5pdGlhbGl6ZXJzIiwgIl9kaXNhYmxlZF9leHRyYUluaXRpYWxpemVycyIsICJfZGVzY3JpcHRpb25fZGVjb3JhdG9ycyIsICJfZGVzY3JpcHRpb25faW5pdGlhbGl6ZXJzIiwgIl9kZXNjcmlwdGlvbl9leHRyYUluaXRpYWxpemVycyIsICIjbGF5b3V0TW9kZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNsYWJlbFBvc2l0aW9uX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2tleV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNsYWJlbF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNyZXF1aXJlZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNkaXNhYmxlZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNkZXNjcmlwdGlvbl9hY2Nlc3Nvcl9zdG9yYWdlIiwgImkiLCAiZG9tdG9vbHNfcGx1Z2luZXhwb3J0c19leHBvcnRzIiwgInBhcmVudEZvcm0iLCAiY2hhbmdlZFByb3BlcnRpZXMiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiZWxlbWVudEFyZyIsICJjaGVja2JveGVzIiwgInNlbGVjdEFsbEJ0biIsICJjbGVhckFsbEJ0biIsICJjaGVja2JveCIsICJpIiwgImNzc01hbmFnZXIiLCAiZXZlbnQiLCAib3V0cHV0IiwgImlzQ2hlY2tlZCIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzSW5wdXRDaGVja2JveCIsICJ0IiwgIkRlZXNJbnB1dEJhc2UiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX3ZhbHVlX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfdmFsdWVfaW5pdGlhbGl6ZXJzIiwgIl92YWx1ZV9leHRyYUluaXRpYWxpemVycyIsICJfaW5kZXRlcm1pbmF0ZV9kZWNvcmF0b3JzIiwgIl9pbmRldGVybWluYXRlX2luaXRpYWxpemVycyIsICJfaW5kZXRlcm1pbmF0ZV9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjdmFsdWVfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjaW5kZXRlcm1pbmF0ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiY3NzR2Vpc3RGb250RmFtaWx5IiwgImIiLCAiY2hlY2tib3hEaXYiLCAiZXZlbnQiLCAiY29sb3JzX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiYnJpZ2h0IiwgImRhcmsiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiaSIsICJjc3NNYW5hZ2VyIiwgIkRlZXNNb2RhbCIsICJoZWxwTW9kYWwiLCAibW9kYWwiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfZGVlc19pY29uIiwgImluaXRfdGhlbWUiLCAiRGVlc01vZGFsIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfaGVhZGluZ19kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2hlYWRpbmdfaW5pdGlhbGl6ZXJzIiwgIl9oZWFkaW5nX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jb250ZW50X2RlY29yYXRvcnMiLCAiX2NvbnRlbnRfaW5pdGlhbGl6ZXJzIiwgIl9jb250ZW50X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9tZW51T3B0aW9uc19kZWNvcmF0b3JzIiwgIl9tZW51T3B0aW9uc19pbml0aWFsaXplcnMiLCAiX21lbnVPcHRpb25zX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl93aWR0aF9kZWNvcmF0b3JzIiwgIl93aWR0aF9pbml0aWFsaXplcnMiLCAiX3dpZHRoX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9tYXhXaWR0aF9kZWNvcmF0b3JzIiwgIl9tYXhXaWR0aF9pbml0aWFsaXplcnMiLCAiX21heFdpZHRoX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9taW5XaWR0aF9kZWNvcmF0b3JzIiwgIl9taW5XaWR0aF9pbml0aWFsaXplcnMiLCAiX21pbldpZHRoX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zaG93Q2xvc2VCdXR0b25fZGVjb3JhdG9ycyIsICJfc2hvd0Nsb3NlQnV0dG9uX2luaXRpYWxpemVycyIsICJfc2hvd0Nsb3NlQnV0dG9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zaG93SGVscEJ1dHRvbl9kZWNvcmF0b3JzIiwgIl9zaG93SGVscEJ1dHRvbl9pbml0aWFsaXplcnMiLCAiX3Nob3dIZWxwQnV0dG9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9vbkhlbHBfZGVjb3JhdG9ycyIsICJfb25IZWxwX2luaXRpYWxpemVycyIsICJfb25IZWxwX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9tb2JpbGVGdWxsc2NyZWVuX2RlY29yYXRvcnMiLCAiX21vYmlsZUZ1bGxzY3JlZW5faW5pdGlhbGl6ZXJzIiwgIl9tb2JpbGVGdWxsc2NyZWVuX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jb250ZW50UGFkZGluZ19kZWNvcmF0b3JzIiwgIl9jb250ZW50UGFkZGluZ19pbml0aWFsaXplcnMiLCAiX2NvbnRlbnRQYWRkaW5nX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9tb2RhbFpJbmRleF9kZWNvcmF0b3JzIiwgIl9tb2RhbFpJbmRleF9pbml0aWFsaXplcnMiLCAiX21vZGFsWkluZGV4X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIm9wdGlvbnNBcmciLCAiYm9keSIsICJtb2RhbCIsICJEZWVzV2luZG93TGF5ZXIiLCAiekluZGV4UmVnaXN0cnkiLCAiI2hlYWRpbmdfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjY29udGVudF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtZW51T3B0aW9uc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN3aWR0aF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtYXhXaWR0aF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtaW5XaWR0aF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzaG93Q2xvc2VCdXR0b25fYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2hvd0hlbHBCdXR0b25fYWNjZXNzb3Jfc3RvcmFnZSIsICIjb25IZWxwX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI21vYmlsZUZ1bGxzY3JlZW5fYWNjZXNzb3Jfc3RvcmFnZSIsICIjY29udGVudFBhZGRpbmdfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbW9kYWxaSW5kZXhfYWNjZXNzb3Jfc3RvcmFnZSIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImNzc0dlaXN0Rm9udEZhbWlseSIsICJ3aWR0aENsYXNzIiwgImN1c3RvbVdpZHRoIiwgIm1heFdpZHRoU3R5bGUiLCAibWluV2lkdGhTdHlsZSIsICJtb2JpbGVGdWxsc2NyZWVuQ2xhc3MiLCAiYiIsICJhY3Rpb25BcmciLCAiaW5kZXgiLCAiX2NoYW5nZWRQcm9wZXJ0aWVzIiwgImV2ZW50QXJnIiwgIm1vZGFsQ29udGFpbmVyIiwgImRvbXRvb2xzIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNMYWJlbCIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9sYWJlbF9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2xhYmVsX2luaXRpYWxpemVycyIsICJfbGFiZWxfZXh0cmFJbml0aWFsaXplcnMiLCAiX2Rlc2NyaXB0aW9uX2RlY29yYXRvcnMiLCAiX2Rlc2NyaXB0aW9uX2luaXRpYWxpemVycyIsICJfZGVzY3JpcHRpb25fZXh0cmFJbml0aWFsaXplcnMiLCAiX3JlcXVpcmVkX2RlY29yYXRvcnMiLCAiX3JlcXVpcmVkX2luaXRpYWxpemVycyIsICJfcmVxdWlyZWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI2xhYmVsX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2Rlc2NyaXB0aW9uX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3JlcXVpcmVkX2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgIk1PTkFDT19WRVJTSU9OIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNXb3Jrc3BhY2VNb25hY28iLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfY29udGVudF9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2NvbnRlbnRfaW5pdGlhbGl6ZXJzIiwgIl9jb250ZW50X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9sYW5ndWFnZV9kZWNvcmF0b3JzIiwgIl9sYW5ndWFnZV9pbml0aWFsaXplcnMiLCAiX2xhbmd1YWdlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9maWxlUGF0aF9kZWNvcmF0b3JzIiwgIl9maWxlUGF0aF9pbml0aWFsaXplcnMiLCAiX2ZpbGVQYXRoX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jb250ZW50U3ViamVjdF9kZWNvcmF0b3JzIiwgIl9jb250ZW50U3ViamVjdF9pbml0aWFsaXplcnMiLCAiX2NvbnRlbnRTdWJqZWN0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl93b3JkV3JhcF9kZWNvcmF0b3JzIiwgIl93b3JkV3JhcF9pbml0aWFsaXplcnMiLCAiX3dvcmRXcmFwX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImIiLCAiZG9tdG9vbHNfcGx1Z2luZXhwb3J0c19leHBvcnRzIiwgIiNjb250ZW50X2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2xhbmd1YWdlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2ZpbGVQYXRoX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2NvbnRlbnRTdWJqZWN0X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3dvcmRXcmFwX2FjY2Vzc29yX3N0b3JhZ2UiLCAiRG9tVG9vbHMiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJfY2hhbmdlZFByb3BlcnRpZXMiLCAiY29udGFpbmVyIiwgIm1vbmFjb0NkbkJhc2UiLCAiTU9OQUNPX1ZFUlNJT04iLCAic2NyaXB0VXJsIiwgInNjcmlwdCIsICJkb210b29sc0luc3RhbmNlIiwgImluaXRpYWxUaGVtZSIsICJtb25hY29JbnN0YW5jZSIsICJtb2RlbCIsICJ1cmkiLCAiZWRpdG9yIiwgImdvQnJpZ2h0IiwgIm5ld1RoZW1lIiwgImNzcyIsICJzdHlsZUVsZW1lbnQiLCAiZXZlbnRBcmciLCAiY2hhbmdlZFByb3BlcnRpZXMiLCAibmV3Q29udGVudCIsICJwcmVzZXJ2ZUN1cnNvciIsICJwb3NpdGlvbiIsICJzZWxlY3Rpb25zIiwgInNjcm9sbFRvcCIsICJzY3JvbGxMZWZ0IiwgImxpbmVDb3VudCIsICJjbGFtcGVkTGluZSIsICJsaW5lTGVuZ3RoIiwgImNsYW1wZWRDb2x1bW4iLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiaW5pdF9kZWVzX2ljb24iLCAiTEFOR1VBR0VTIiwgIkRlZXNJbnB1dENvZGUiLCAidCIsICJEZWVzSW5wdXRCYXNlIiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiciIsICJfX2VzRGVjb3JhdGUiLCAiX3ZhbHVlX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfdmFsdWVfaW5pdGlhbGl6ZXJzIiwgIl92YWx1ZV9leHRyYUluaXRpYWxpemVycyIsICJfbGFuZ3VhZ2VfZGVjb3JhdG9ycyIsICJfbGFuZ3VhZ2VfaW5pdGlhbGl6ZXJzIiwgIl9sYW5ndWFnZV9leHRyYUluaXRpYWxpemVycyIsICJfaGVpZ2h0X2RlY29yYXRvcnMiLCAiX2hlaWdodF9pbml0aWFsaXplcnMiLCAiX2hlaWdodF9leHRyYUluaXRpYWxpemVycyIsICJfd29yZFdyYXBfZGVjb3JhdG9ycyIsICJfd29yZFdyYXBfaW5pdGlhbGl6ZXJzIiwgIl93b3JkV3JhcF9leHRyYUluaXRpYWxpemVycyIsICJfc2hvd0xpbmVOdW1iZXJzX2RlY29yYXRvcnMiLCAiX3Nob3dMaW5lTnVtYmVyc19pbml0aWFsaXplcnMiLCAiX3Nob3dMaW5lTnVtYmVyc19leHRyYUluaXRpYWxpemVycyIsICJfaXNMYW5ndWFnZURyb3Bkb3duT3Blbl9kZWNvcmF0b3JzIiwgIl9pc0xhbmd1YWdlRHJvcGRvd25PcGVuX2luaXRpYWxpemVycyIsICJfaXNMYW5ndWFnZURyb3Bkb3duT3Blbl9leHRyYUluaXRpYWxpemVycyIsICJfY29weVN1Y2Nlc3NfZGVjb3JhdG9ycyIsICJfY29weVN1Y2Nlc3NfaW5pdGlhbGl6ZXJzIiwgIl9jb3B5U3VjY2Vzc19leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJiIiwgIiN2YWx1ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNsYW5ndWFnZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNoZWlnaHRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjd29yZFdyYXBfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2hvd0xpbmVOdW1iZXJzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2lzTGFuZ3VhZ2VEcm9wZG93bk9wZW5fYWNjZXNzb3Jfc3RvcmFnZSIsICIjY29weVN1Y2Nlc3NfYWNjZXNzb3Jfc3RvcmFnZSIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImN1cnJlbnRMYW5ndWFnZSIsICJsIiwgImxhbmciLCAiZSIsICJuZXdDb250ZW50IiwgImxhbmd1YWdlS2V5IiwgIm1vZGVsIiwgIm9wdGlvbiIsICJlcnIiLCAiY3VycmVudFZhbHVlIiwgIm1vZGFsRWRpdG9yRWxlbWVudCIsICJtb2RhbExhbmd1YWdlIiwgIm1vZGFsV29yZFdyYXAiLCAibW9kYWxTaG93TGluZU51bWJlcnMiLCAibW9kYWxMYW5ndWFnZURyb3Bkb3duT3BlbiIsICJtb2RhbENvcHlTdWNjZXNzIiwgImdldExhbmd1YWdlTGFiZWwiLCAidXBkYXRlVG9vbGJhclVJIiwgIm1vZGFsIiwgInRvb2xiYXIiLCAibGFuZ0J0biIsICJ3cmFwQnRuIiwgImxpbmVzQnRuIiwgImNvcHlCdG4iLCAiY29weUljb24iLCAiZHJvcGRvd24iLCAiRGVlc01vZGFsIiwgIm1vZGFsUmVmIiwgIm5ld1ZhbHVlIiwgInJlc29sdmUiLCAibGFuZ09wdGlvbnMiLCAibmV3TGFuZyIsICJvcHQiLCAiY29udGVudCIsICJlZGl0b3IiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiaSIsICJlbGVtZW50QXJnIiwgImRhdGVQaWNrZXIiLCAiZXZlbnQiLCAiZGF0ZVRpbWVQaWNrZXIiLCAiYXBwb2ludG1lbnRQaWNrZXIiLCAidmFsdWUiLCAicGlja2VyIiwgInRhcmdldCIsICJpbnB1dCIsICJmdXR1cmVEYXRlUGlja2VyIiwgInNlbGVjdGVkRGF0ZSIsICJ0b2RheSIsICJkYXlzRGlmZiIsICJmb3JtYXR0ZXJzIiwgInJlcXVpcmVkUGlja2VyIiwgInVzUGlja2VyIiwgImV1UGlja2VyIiwgImdlbmVyYXRlV2Vla2VuZHMiLCAid2Vla2VuZHMiLCAibm93IiwgInllYXIiLCAibW9udGgiLCAiZGF0ZSIsICJjdXJyZW50TW9udGgiLCAiY3VycmVudFllYXIiLCAic2FtcGxlRXZlbnRzIiwgIm91dHB1dCIsICJmb3JtYXR0ZWRWYWx1ZSIsICJpbml0X2Rpc3RfdHMiLCAiZGF0ZXBpY2tlclN0eWxlcyIsICJEZWVzSW5wdXRCYXNlIiwgImNzc01hbmFnZXIiLCAiaSIsICJpbml0X2Rpc3RfdHMiLCAicmVuZGVyRGF0ZXBpY2tlciIsICJjb21wb25lbnQiLCAibW9udGhOYW1lcyIsICJ3ZWVrRGF5cyIsICJkYXlzIiwgImlzQU0iLCAidGltZXpvbmVzIiwgImIiLCAiZGF5IiwgImlzVG9kYXkiLCAiaXNTZWxlY3RlZCIsICJpc090aGVyTW9udGgiLCAiaXNEaXNhYmxlZCIsICJkYXlFdmVudHMiLCAiaGFzRXZlbnRzIiwgInRvdGFsRXZlbnRDb3VudCIsICJzdW0iLCAiZXZlbnQiLCAiZSIsICJ0eiIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9kZWVzX2ljb24iLCAiRGVlc0lucHV0RGF0ZXBpY2tlciIsICJ0IiwgIkRlZXNJbnB1dEJhc2UiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfdmFsdWVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl92YWx1ZV9pbml0aWFsaXplcnMiLCAiX3ZhbHVlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9lbmFibGVUaW1lX2RlY29yYXRvcnMiLCAiX2VuYWJsZVRpbWVfaW5pdGlhbGl6ZXJzIiwgIl9lbmFibGVUaW1lX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl90aW1lRm9ybWF0X2RlY29yYXRvcnMiLCAiX3RpbWVGb3JtYXRfaW5pdGlhbGl6ZXJzIiwgIl90aW1lRm9ybWF0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9taW51dGVJbmNyZW1lbnRfZGVjb3JhdG9ycyIsICJfbWludXRlSW5jcmVtZW50X2luaXRpYWxpemVycyIsICJfbWludXRlSW5jcmVtZW50X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kYXRlRm9ybWF0X2RlY29yYXRvcnMiLCAiX2RhdGVGb3JtYXRfaW5pdGlhbGl6ZXJzIiwgIl9kYXRlRm9ybWF0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9taW5EYXRlX2RlY29yYXRvcnMiLCAiX21pbkRhdGVfaW5pdGlhbGl6ZXJzIiwgIl9taW5EYXRlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9tYXhEYXRlX2RlY29yYXRvcnMiLCAiX21heERhdGVfaW5pdGlhbGl6ZXJzIiwgIl9tYXhEYXRlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kaXNhYmxlZERhdGVzX2RlY29yYXRvcnMiLCAiX2Rpc2FibGVkRGF0ZXNfaW5pdGlhbGl6ZXJzIiwgIl9kaXNhYmxlZERhdGVzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl93ZWVrU3RhcnRzT25fZGVjb3JhdG9ycyIsICJfd2Vla1N0YXJ0c09uX2luaXRpYWxpemVycyIsICJfd2Vla1N0YXJ0c09uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9wbGFjZWhvbGRlcl9kZWNvcmF0b3JzIiwgIl9wbGFjZWhvbGRlcl9pbml0aWFsaXplcnMiLCAiX3BsYWNlaG9sZGVyX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9lbmFibGVUaW1lem9uZV9kZWNvcmF0b3JzIiwgIl9lbmFibGVUaW1lem9uZV9pbml0aWFsaXplcnMiLCAiX2VuYWJsZVRpbWV6b25lX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl90aW1lem9uZV9kZWNvcmF0b3JzIiwgIl90aW1lem9uZV9pbml0aWFsaXplcnMiLCAiX3RpbWV6b25lX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9ldmVudHNfZGVjb3JhdG9ycyIsICJfZXZlbnRzX2luaXRpYWxpemVycyIsICJfZXZlbnRzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9pc09wZW5lZF9kZWNvcmF0b3JzIiwgIl9pc09wZW5lZF9pbml0aWFsaXplcnMiLCAiX2lzT3BlbmVkX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9vcGVuc1RvVG9wX2RlY29yYXRvcnMiLCAiX29wZW5zVG9Ub3BfaW5pdGlhbGl6ZXJzIiwgIl9vcGVuc1RvVG9wX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3RlZERhdGVfZGVjb3JhdG9ycyIsICJfc2VsZWN0ZWREYXRlX2luaXRpYWxpemVycyIsICJfc2VsZWN0ZWREYXRlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl92aWV3RGF0ZV9kZWNvcmF0b3JzIiwgIl92aWV3RGF0ZV9pbml0aWFsaXplcnMiLCAiX3ZpZXdEYXRlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3RlZEhvdXJfZGVjb3JhdG9ycyIsICJfc2VsZWN0ZWRIb3VyX2luaXRpYWxpemVycyIsICJfc2VsZWN0ZWRIb3VyX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3RlZE1pbnV0ZV9kZWNvcmF0b3JzIiwgIl9zZWxlY3RlZE1pbnV0ZV9pbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkTWludXRlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiN2YWx1ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNlbmFibGVUaW1lX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3RpbWVGb3JtYXRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWludXRlSW5jcmVtZW50X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2RhdGVGb3JtYXRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWluRGF0ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtYXhEYXRlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2Rpc2FibGVkRGF0ZXNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjd2Vla1N0YXJ0c09uX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3BsYWNlaG9sZGVyX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2VuYWJsZVRpbWV6b25lX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3RpbWV6b25lX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2V2ZW50c19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpc09wZW5lZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNvcGVuc1RvVG9wX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3NlbGVjdGVkRGF0ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN2aWV3RGF0ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzZWxlY3RlZEhvdXJfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2VsZWN0ZWRNaW51dGVfYWNjZXNzb3Jfc3RvcmFnZSIsICJkYXRlcGlja2VyU3R5bGVzIiwgInJlbmRlckRhdGVwaWNrZXIiLCAiZGF0ZSIsICJub3ciLCAiaXNvU3RyaW5nIiwgImZvcm1hdHRlZCIsICJkYXkiLCAibW9udGgiLCAieWVhciIsICJob3VyczI0IiwgImhvdXJzMTIiLCAibWludXRlcyIsICJhbXBtIiwgInR6UGFydCIsICJwYXJ0IiwgImV2ZW50IiwgInJlY3QiLCAic3BhY2VCZWxvdyIsICJzcGFjZUFib3ZlIiwgImZpcnN0RGF5IiwgImxhc3REYXkiLCAiZGF5cyIsICJzdGFydE9mZnNldCIsICJpIiwgInJlbWFpbmluZ0RheXMiLCAidG9kYXkiLCAibWluIiwgIm1heCIsICJkaXNhYmxlZFN0ciIsICJkaXNhYmxlZCIsICJkYXRlU3RyIiwgImUiLCAiaW5wdXQiLCAicGVyaW9kIiwgInNlbGVjdCIsICJwYXJ0cyIsICJkYXRlUGFydHMiLCAidHpPZmZzZXQiLCAidGltZXpvbmUiLCAidHpEYXRlIiwgInV0Y0RhdGUiLCAib2Zmc2V0TWludXRlcyIsICJob3VycyIsICJpbnB1dFZhbHVlIiwgInBhcnNlZERhdGUiLCAiZGF0ZVBhcnQiLCAidGltZVBhcnQiLCAiaXNvTWF0Y2giLCAiXyIsICJldU1hdGNoIiwgInVzTWF0Y2giLCAidGltZU1hdGNoIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImkiLCAiY3NzTWFuYWdlciIsICJlbGVtZW50QXJnIiwgImlucHV0IiwgImV2ZW50IiwgImNvbXB1dGVkU3R5bGUiLCAiZmlyc3ROYW1lSW5wdXQiLCAibGFzdE5hbWVJbnB1dCIsICJ1cGRhdGVGdWxsTmFtZSIsICJmaXJzdE5hbWUiLCAibGFzdE5hbWUiLCAicG9zaXRpb24iLCAibGVmdExhYmVsSW5wdXRzIiwgInJlcXVpcmVkSW5wdXQiLCAiZGlzYWJsZWRJbnB1dCIsICJlcnJvcklucHV0IiwgInZhbHVlIiwgImNoZWNrVG9nZ2xlIiwgImlucHV0RWwiLCAib2JzZXJ2ZXIiLCAiZHluYW1pY0lucHV0IiwgIm91dHB1dCIsICJrZXlwcmVzc0NvdW50IiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNJbnB1dFRleHQiLCAidCIsICJEZWVzSW5wdXRCYXNlIiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl92YWx1ZV9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX3ZhbHVlX2luaXRpYWxpemVycyIsICJfdmFsdWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzUGFzc3dvcmRCb29sX2RlY29yYXRvcnMiLCAiX2lzUGFzc3dvcmRCb29sX2luaXRpYWxpemVycyIsICJfaXNQYXNzd29yZEJvb2xfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Nob3dQYXNzd29yZEJvb2xfZGVjb3JhdG9ycyIsICJfc2hvd1Bhc3N3b3JkQm9vbF9pbml0aWFsaXplcnMiLCAiX3Nob3dQYXNzd29yZEJvb2xfZXh0cmFJbml0aWFsaXplcnMiLCAiX3ZhbGlkYXRpb25TdGF0ZV9kZWNvcmF0b3JzIiwgIl92YWxpZGF0aW9uU3RhdGVfaW5pdGlhbGl6ZXJzIiwgIl92YWxpZGF0aW9uU3RhdGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3ZhbGlkYXRpb25UZXh0X2RlY29yYXRvcnMiLCAiX3ZhbGlkYXRpb25UZXh0X2luaXRpYWxpemVycyIsICJfdmFsaWRhdGlvblRleHRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3ZhbGlkYXRpb25GdW5jdGlvbl9kZWNvcmF0b3JzIiwgIl92YWxpZGF0aW9uRnVuY3Rpb25faW5pdGlhbGl6ZXJzIiwgIl92YWxpZGF0aW9uRnVuY3Rpb25fZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI3ZhbHVlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2lzUGFzc3dvcmRCb29sX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3Nob3dQYXNzd29yZEJvb2xfYWNjZXNzb3Jfc3RvcmFnZSIsICIjdmFsaWRhdGlvblN0YXRlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3ZhbGlkYXRpb25UZXh0X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3ZhbGlkYXRpb25GdW5jdGlvbl9hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiY3NzR2Vpc3RGb250RmFtaWx5IiwgImIiLCAiY3NzTW9ub0ZvbnRGYW1pbHkiLCAiZXZlbnRBcmciLCAidGFyZ2V0IiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImkiLCAiY3NzTWFuYWdlciIsICJlbGVtZW50QXJnIiwgInByb2R1Y3RzIiwgInVwZGF0ZUNhcnRTdW1tYXJ5IiwgInRvdGFsIiwgIml0ZW1zIiwgInByb2R1Y3QiLCAiZWxlbWVudCIsICJzdWJ0b3RhbCIsICJzdW1tYXJ5IiwgImNhcmQiLCAiZSIsICJvdXRwdXQiLCAic2VsZWN0ZWRDYXJkcyIsICJzZWxlY3RlZFByb2R1Y3RzIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNTaG9wcGluZ1Byb2R1Y3RjYXJkIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX3Byb2R1Y3REYXRhX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfcHJvZHVjdERhdGFfaW5pdGlhbGl6ZXJzIiwgIl9wcm9kdWN0RGF0YV9leHRyYUluaXRpYWxpemVycyIsICJfcXVhbnRpdHlfZGVjb3JhdG9ycyIsICJfcXVhbnRpdHlfaW5pdGlhbGl6ZXJzIiwgIl9xdWFudGl0eV9leHRyYUluaXRpYWxpemVycyIsICJfc2hvd1F1YW50aXR5U2VsZWN0b3JfZGVjb3JhdG9ycyIsICJfc2hvd1F1YW50aXR5U2VsZWN0b3JfaW5pdGlhbGl6ZXJzIiwgIl9zaG93UXVhbnRpdHlTZWxlY3Rvcl9leHRyYUluaXRpYWxpemVycyIsICJfc2VsZWN0YWJsZV9kZWNvcmF0b3JzIiwgIl9zZWxlY3RhYmxlX2luaXRpYWxpemVycyIsICJfc2VsZWN0YWJsZV9leHRyYUluaXRpYWxpemVycyIsICJfc2VsZWN0ZWRfZGVjb3JhdG9ycyIsICJfc2VsZWN0ZWRfaW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3RlZF9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjcHJvZHVjdERhdGFfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjcXVhbnRpdHlfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2hvd1F1YW50aXR5U2VsZWN0b3JfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2VsZWN0YWJsZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzZWxlY3RlZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAibmFtZSIsICJjYXRlZ29yeSIsICJkZXNjcmlwdGlvbiIsICJwcmljZSIsICJvcmlnaW5hbFByaWNlIiwgImN1cnJlbmN5IiwgImluU3RvY2siLCAic3RvY2tUZXh0IiwgImltYWdlVXJsIiwgImljb25OYW1lIiwgImZvcm1hdFByaWNlIiwgImIiLCAiZSIsICJpbml0X2Rpc3RfdHMiLCAiZGVtb0Z1bmMiLCAiYiIsICJpIiwgImNzc01hbmFnZXIiLCAiZWxlbWVudEFyZyIsICJ1cGRhdGVDYXJ0U3VtbWFyeSIsICJjYXJkMSIsICJjYXJkMiIsICJjYXJkMyIsICJxdHkxIiwgInF0eTIiLCAicXR5MyIsICJwcmljZTEiLCAicHJpY2UyIiwgInByaWNlMyIsICJ0b3RhbCIsICJzdW1tYXJ5IiwgImNhcmQiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiRGVlc0lucHV0UXVhbnRpdHlTZWxlY3RvciIsICJ0IiwgIkRlZXNJbnB1dEJhc2UiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX3ZhbHVlX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfdmFsdWVfaW5pdGlhbGl6ZXJzIiwgIl92YWx1ZV9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjdmFsdWVfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImIiLCAiZSIsICJpbml0X2Rpc3RfdHMiLCAiZGVtb0Z1bmMiLCAiYiIsICJpIiwgImUiLCAiZGlzcGxheSIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzSW5wdXRSYWRpb2dyb3VwIiwgInQiLCAiRGVlc0lucHV0QmFzZSIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfb3B0aW9uc19kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX29wdGlvbnNfaW5pdGlhbGl6ZXJzIiwgIl9vcHRpb25zX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3RlZE9wdGlvbl9kZWNvcmF0b3JzIiwgIl9zZWxlY3RlZE9wdGlvbl9pbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkT3B0aW9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kaXJlY3Rpb25fZGVjb3JhdG9ycyIsICJfZGlyZWN0aW9uX2luaXRpYWxpemVycyIsICJfZGlyZWN0aW9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl92YWxpZGF0aW9uU3RhdGVfZGVjb3JhdG9ycyIsICJfdmFsaWRhdGlvblN0YXRlX2luaXRpYWxpemVycyIsICJfdmFsaWRhdGlvblN0YXRlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiNvcHRpb25zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI3NlbGVjdGVkT3B0aW9uX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2RpcmVjdGlvbl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN2YWxpZGF0aW9uU3RhdGVfYWNjZXNzb3Jfc3RvcmFnZSIsICJvcHRpb24iLCAidmFsIiwgIm9wdCIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImIiLCAib3B0aW9uS2V5IiwgIm9wdGlvbkxhYmVsIiwgImlzU2VsZWN0ZWQiLCAiZSIsICJrZXkiLCAib2xkVmFsdWUiLCAiZmlyc3RPcHRpb24iLCAiZXZlbnQiLCAicmFkaW9DaXJjbGVzIiwgIm5leHRJbmRleCIsICJlbCIsICJjdXJyZW50SW5kZXgiLCAicHJldkluZGV4IiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNGb3JtU3VibWl0IiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX2Rpc2FibGVkX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfZGlzYWJsZWRfaW5pdGlhbGl6ZXJzIiwgIl9kaXNhYmxlZF9leHRyYUluaXRpYWxpemVycyIsICJfdGV4dF9kZWNvcmF0b3JzIiwgIl90ZXh0X2luaXRpYWxpemVycyIsICJfdGV4dF9leHRyYUluaXRpYWxpemVycyIsICJfc3RhdHVzX2RlY29yYXRvcnMiLCAiX3N0YXR1c19pbml0aWFsaXplcnMiLCAiX3N0YXR1c19leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjZGlzYWJsZWRfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjdGV4dF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzdGF0dXNfYWNjZXNzb3Jfc3RvcmFnZSIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImIiLCAicGFyZW50Rm9ybUVsZW1lbnQiLCAiZG9tdG9vbHMiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiaSIsICJlbGVtZW50QXJnIiwgImNvdW50cnlEcm9wZG93biIsICJyb2xlRHJvcGRvd24iLCAiZXZlbnQiLCAicHJpb3JpdHlEcm9wZG93biIsICJkcm9wZG93biIsICJsYWJlbCIsICJyZXF1aXJlZERyb3Bkb3duIiwgIm91dHB1dCIsICJmb3JtIiwgInByb2plY3RUeXBlRHJvcGRvd24iLCAiZnJhbWV3b3JrRHJvcGRvd24iLCAic2VsZWN0ZWRUeXBlIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNJbnB1dERyb3Bkb3duIiwgInQiLCAiRGVlc0lucHV0QmFzZSIsICJfY2xhc3NTdXBlciIsICJuIiwgInIiLCAiX19lc0RlY29yYXRlIiwgIl9vcHRpb25zX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfb3B0aW9uc19pbml0aWFsaXplcnMiLCAiX29wdGlvbnNfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkT3B0aW9uX2RlY29yYXRvcnMiLCAiX3NlbGVjdGVkT3B0aW9uX2luaXRpYWxpemVycyIsICJfc2VsZWN0ZWRPcHRpb25fZXh0cmFJbml0aWFsaXplcnMiLCAiX2VuYWJsZVNlYXJjaF9kZWNvcmF0b3JzIiwgIl9lbmFibGVTZWFyY2hfaW5pdGlhbGl6ZXJzIiwgIl9lbmFibGVTZWFyY2hfZXh0cmFJbml0aWFsaXplcnMiLCAiX29wZW5zVG9Ub3BfZGVjb3JhdG9ycyIsICJfb3BlbnNUb1RvcF9pbml0aWFsaXplcnMiLCAiX29wZW5zVG9Ub3BfZXh0cmFJbml0aWFsaXplcnMiLCAiX2ZpbHRlcmVkT3B0aW9uc19kZWNvcmF0b3JzIiwgIl9maWx0ZXJlZE9wdGlvbnNfaW5pdGlhbGl6ZXJzIiwgIl9maWx0ZXJlZE9wdGlvbnNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2hpZ2hsaWdodGVkSW5kZXhfZGVjb3JhdG9ycyIsICJfaGlnaGxpZ2h0ZWRJbmRleF9pbml0aWFsaXplcnMiLCAiX2hpZ2hsaWdodGVkSW5kZXhfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzT3BlbmVkX2RlY29yYXRvcnMiLCAiX2lzT3BlbmVkX2luaXRpYWxpemVycyIsICJfaXNPcGVuZWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NlYXJjaFZhbHVlX2RlY29yYXRvcnMiLCAiX3NlYXJjaFZhbHVlX2luaXRpYWxpemVycyIsICJfc2VhcmNoVmFsdWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI29wdGlvbnNfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjc2VsZWN0ZWRPcHRpb25fYWNjZXNzb3Jfc3RvcmFnZSIsICJ2YWwiLCAiI2VuYWJsZVNlYXJjaF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNvcGVuc1RvVG9wX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2ZpbHRlcmVkT3B0aW9uc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNoaWdobGlnaHRlZEluZGV4X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2lzT3BlbmVkX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3NlYXJjaFZhbHVlX2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJjc3NHZWlzdEZvbnRGYW1pbHkiLCAiYiIsICJlIiwgIm9wdGlvbiIsICJpbmRleCIsICJpc0hpZ2hsaWdodGVkIiwgImNoYW5nZWRQcm9wZXJ0aWVzIiwgInNlbGVjdGVkT3B0aW9uIiwgImV2ZW50IiwgInJlY3QiLCAic3BhY2VCZWxvdyIsICJzcGFjZUFib3ZlIiwgInNlYXJjaElucHV0IiwgInNlYXJjaFRlcm0iLCAic2VhcmNoTG93ZXIiLCAia2V5IiwgIm1heEluZGV4IiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImkiLCAiY3NzTWFuYWdlciIsICJpbml0X2Rpc3RfdHMiLCAiZmlsZXVwbG9hZFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgIkRlZXNJbnB1dEJhc2UiLCAiaSIsICJpbml0X2RlZXNfaWNvbiIsICJpbml0X2Rpc3RfdHMiLCAiRGVlc0lucHV0RmlsZXVwbG9hZCIsICJ0IiwgIkRlZXNJbnB1dEJhc2UiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfdmFsdWVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl92YWx1ZV9pbml0aWFsaXplcnMiLCAiX3ZhbHVlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zdGF0ZV9kZWNvcmF0b3JzIiwgIl9zdGF0ZV9pbml0aWFsaXplcnMiLCAiX3N0YXRlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9pc0xvYWRpbmdfZGVjb3JhdG9ycyIsICJfaXNMb2FkaW5nX2luaXRpYWxpemVycyIsICJfaXNMb2FkaW5nX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9idXR0b25UZXh0X2RlY29yYXRvcnMiLCAiX2J1dHRvblRleHRfaW5pdGlhbGl6ZXJzIiwgIl9idXR0b25UZXh0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9hY2NlcHRfZGVjb3JhdG9ycyIsICJfYWNjZXB0X2luaXRpYWxpemVycyIsICJfYWNjZXB0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9tdWx0aXBsZV9kZWNvcmF0b3JzIiwgIl9tdWx0aXBsZV9pbml0aWFsaXplcnMiLCAiX211bHRpcGxlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9tYXhTaXplX2RlY29yYXRvcnMiLCAiX21heFNpemVfaW5pdGlhbGl6ZXJzIiwgIl9tYXhTaXplX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9tYXhGaWxlc19kZWNvcmF0b3JzIiwgIl9tYXhGaWxlc19pbml0aWFsaXplcnMiLCAiX21heEZpbGVzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl92YWxpZGF0aW9uU3RhdGVfZGVjb3JhdG9ycyIsICJfdmFsaWRhdGlvblN0YXRlX2luaXRpYWxpemVycyIsICJfdmFsaWRhdGlvblN0YXRlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiN2YWx1ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNzdGF0ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpc0xvYWRpbmdfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYnV0dG9uVGV4dF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNhY2NlcHRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbXVsdGlwbGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWF4U2l6ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtYXhGaWxlc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN2YWxpZGF0aW9uU3RhdGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjdmFsaWRhdGlvbk1lc3NhZ2VfYWNjZXNzb3Jfc3RvcmFnZSIsICJmaWxldXBsb2FkU3R5bGVzIiwgImFjY2VwdGVkU3VtbWFyeSIsICJtZXRhRW50cmllcyIsICJiIiwgImVudHJ5IiwgImZpbGUiLCAiZmlsZVR5cGUiLCAicHJldmlld1VybCIsICJldmVudCIsICJ0YXJnZXQiLCAiZmlsZXMiLCAicmVjdCIsICJjbGllbnRYIiwgImNsaWVudFkiLCAiZXZlbnROYW1lIiwgIm5ld0Ryb3BBcmVhIiwgImJ5dGVzIiwgInVuaXRzIiwgImV4cG9uZW50IiwgInNpemUiLCAidHlwZSIsICJhY2NlcHRlZFR5cGVzIiwgImlzQWNjZXB0ZWQiLCAiYWNjZXB0VHlwZSIsICJwcmVmaXgiLCAidXJsIiwgImZvcm1hdHRlZCIsICJ0b2tlbiIsICJmYW1pbHkiLCAiY2hhbmdlZFByb3BlcnRpZXMiLCAiaW5wdXRGaWxlIiwgImhhbmRsZUZvY3VzIiwgImluZGV4IiwgImV4aXN0aW5nRmlsZXMiLCAiZXZlbnRBcmciLCAiZmlsZXNUb0FkZCIsICJhbGxvd2VkQ291bnQiLCAiaXNWYWxpZElCQU4iLCAiaWJhbiIsICJ2YWxpZGF0aW9uT3B0aW9ucyIsICJyZWciLCAiY291bnRyeUNvZGUiLCAic3BlYyIsICJjb3VudHJ5U3BlY3MiLCAiaXNWYWxpZEJCQU4iLCAiaXNWYWxpZElCQU5DaGVja3N1bSIsICJpc1FSSUJBTiIsICJWYWxpZGF0aW9uRXJyb3JzSUJBTiIsICJ2YWxpZGF0ZUlCQU4iLCAicmVzdWx0IiwgImNoZWNrRm9ybWF0QkJBTiIsICJiYmFuIiwgImlzU0VQQUNvdW50cnkiLCAiUVJJQkFOQ291bnRyaWVzIiwgImNvbXBvc2VJQkFOIiwgInBhcmFtcyIsICJmb3JtYXRlZF9iYmFuIiwgImVsZWN0cm9uaWNGb3JtYXRJQkFOIiwgImNoZWNrc29tIiwgIm1vZDk3MTBJYmFuIiwgImV4dHJhY3RJQkFOIiwgImVGb3JtYXRJQkFOIiwgImFjIiwgInN0YXJ0aW5nIiwgImVuZGluZyIsICJiZm9ybWF0IiwgImZyaWVuZGx5Rm9ybWF0SUJBTiIsICJzZXBhcmF0b3IiLCAiZWxlY3Ryb25pY19pYmFuIiwgInByb3ZpZGVkQ2hlY2tzdW0iLCAidmFsaWRhdGlvblN0cmluZyIsICJyZXBsYWNlQ2hhcmF0ZXJXaXRoQ29kZSIsICJyZXN0IiwgIm1vZDk3MTAiLCAic3RyIiwgImMiLCAiY29kZSIsICJnZXRDb3VudHJ5U3BlY2lmaWNhdGlvbnMiLCAiY291bnR5TWFwIiwgImNvdW50eUNvZGUiLCAiY291bnR5IiwgImlzVmFsaWRCSUMiLCAiYmljIiwgIlZhbGlkYXRpb25FcnJvcnNCSUMiLCAidmFsaWRhdGVCSUMiLCAiZXh0cmFjdEJJQyIsICJpbnB1dEJpYyIsICJjaGVja05vcndheUJCQU4iLCAid2VpZ2h0cyIsICJiYmFuV2l0aG91dFNwYWNlc0FuZFBlcmlvZHMiLCAiY29udHJvbERpZ2l0IiwgImJiYW5XaXRob3V0Q29udHJvbERpZ2l0IiwgInN1bSIsICJpbmRleCIsICJyZW1haW5kZXIiLCAiY2hlY2tCZWxnaWFuQkJBTiIsICJzdHJpcHBlZCIsICJjaGVja2luZ1BhcnQiLCAiY2hlY2tzdW0iLCAicGFydCIsICJwYXJ0SW50IiwgImNoZWNrTW9kOTcxMEJCQU4iLCAicmVtaW5kZXIiLCAiY2hlY2tQb2xhbmRCQkFOIiwgInRvQ2hlY2siLCAiY2hlY2tTcGFpbkJCQU4iLCAid2VpZ2h0c0JhbmtCcmFuY2giLCAid2VpZ2h0c0FjY291bnQiLCAiY29udHJvbEJhbmtCcmFuY2giLCAiY29udHJvbEFjY291bnQiLCAiYmFua0JyYW5jaCIsICJhY2NvdW50IiwgImNoZWNrTW9kMTExMCIsICJjb250cm9sIiwgIm5yIiwgImNoZWNrQ3JvYXRpYW5CQkFOIiwgImNoZWNrQ3plY2hBbmRTbG92YWtCQkFOIiwgIndlaWdodHNQcmVmaXgiLCAid2VpZ2h0c1N1ZmZpeCIsICJjb250cm9sUHJlZml4IiwgImNvbnRyb2xTdWZmaXgiLCAicHJlZml4IiwgInN1ZmZpeCIsICJjaGVja0VzdG9uaWFuQkJBTiIsICJjaGVja0ZyZW5jaEJCQU4iLCAibm9ybWFsaXplZCIsICJjaGVja0h1bmdhcmlhbkJCQU4iLCAiY29udHJvbERpZ2l0QmFua0JyYW5jaCIsICJ0b0NoZWNrQmFua0JyYW5jaCIsICJ0b0NoZWNrQWNjb3VudCIsICJjb250cm9sRGlnaXRBY2NvdW50IiwgInJlbWFpbmRlcl8xIiwgInJlbWFpbmRlcl8yIiwgInNldENvdW50cnlCQkFOVmFsaWRhdGlvbiIsICJjb3VudHJ5IiwgImZ1bmMiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiaSIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzSW5wdXRJYmFuIiwgInQiLCAiRGVlc0lucHV0QmFzZSIsICJfY2xhc3NTdXBlciIsICJyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9lbnRlcmVkU3RyaW5nX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfZW50ZXJlZFN0cmluZ19pbml0aWFsaXplcnMiLCAiX2VudGVyZWRTdHJpbmdfZXh0cmFJbml0aWFsaXplcnMiLCAiX2VudGVyZWRJYmFuSXNWYWxpZF9kZWNvcmF0b3JzIiwgIl9lbnRlcmVkSWJhbklzVmFsaWRfaW5pdGlhbGl6ZXJzIiwgIl9lbnRlcmVkSWJhbklzVmFsaWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3ZhbHVlX2RlY29yYXRvcnMiLCAiX3ZhbHVlX2luaXRpYWxpemVycyIsICJfdmFsdWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI2VudGVyZWRTdHJpbmdfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjZW50ZXJlZEliYW5Jc1ZhbGlkX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3ZhbHVlX2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgImV2ZW50QXJnIiwgIl9jaGFuZ2VkUHJvcGVydGllcyIsICJkZWVzSW5wdXRUZXh0IiwgImlucHV0RWxlbWVudCIsICJlbnRlcmVkU3RyaW5nIiwgImZyaWVuZGx5Rm9ybWF0SUJBTiIsICJpc1ZhbGlkSUJBTiIsICJpbml0X2Rpc3RfdHMiLCAiZGVtb0Z1bmMiLCAiYiIsICJpIiwgImNzc01hbmFnZXIiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiRGVlc0lucHV0TXVsdGl0b2dnbGUiLCAidCIsICJEZWVzSW5wdXRCYXNlIiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl90eXBlX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfdHlwZV9pbml0aWFsaXplcnMiLCAiX3R5cGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2Jvb2xlYW5UcnVlTmFtZV9kZWNvcmF0b3JzIiwgIl9ib29sZWFuVHJ1ZU5hbWVfaW5pdGlhbGl6ZXJzIiwgIl9ib29sZWFuVHJ1ZU5hbWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2Jvb2xlYW5GYWxzZU5hbWVfZGVjb3JhdG9ycyIsICJfYm9vbGVhbkZhbHNlTmFtZV9pbml0aWFsaXplcnMiLCAiX2Jvb2xlYW5GYWxzZU5hbWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX29wdGlvbnNfZGVjb3JhdG9ycyIsICJfb3B0aW9uc19pbml0aWFsaXplcnMiLCAiX29wdGlvbnNfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkT3B0aW9uX2RlY29yYXRvcnMiLCAiX3NlbGVjdGVkT3B0aW9uX2luaXRpYWxpemVycyIsICJfc2VsZWN0ZWRPcHRpb25fZXh0cmFJbml0aWFsaXplcnMiLCAiX2Jvb2xWYWx1ZV9kZWNvcmF0b3JzIiwgIl9ib29sVmFsdWVfaW5pdGlhbGl6ZXJzIiwgIl9ib29sVmFsdWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI3R5cGVfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjYm9vbGVhblRydWVOYW1lX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2Jvb2xlYW5GYWxzZU5hbWVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjb3B0aW9uc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzZWxlY3RlZE9wdGlvbl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNib29sVmFsdWVfYWNjZXNzb3Jfc3RvcmFnZSIsICJ2YWwiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgIm9wdGlvbiIsICJfY2hhbmdlZFByb3BlcnRpZXMiLCAicmVzb2x2ZSIsICJvcHRpb25BcmciLCAiaW5kaWNhdG9yIiwgInNlbGVjdGVkSW5kZXgiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiaSIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzSW5wdXRQaG9uZSIsICJ0IiwgIkRlZXNJbnB1dEJhc2UiLCAiX2NsYXNzU3VwZXIiLCAiciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfZm9ybWF0dGVkUGhvbmVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9mb3JtYXR0ZWRQaG9uZV9pbml0aWFsaXplcnMiLCAiX2Zvcm1hdHRlZFBob25lX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl92YWx1ZV9kZWNvcmF0b3JzIiwgIl92YWx1ZV9pbml0aWFsaXplcnMiLCAiX3ZhbHVlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9wbGFjZWhvbGRlcl9kZWNvcmF0b3JzIiwgIl9wbGFjZWhvbGRlcl9pbml0aWFsaXplcnMiLCAiX3BsYWNlaG9sZGVyX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiNmb3JtYXR0ZWRQaG9uZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiN2YWx1ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNwbGFjZWhvbGRlcl9hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYiIsICJldmVudCIsICJfY2hhbmdlZFByb3BlcnRpZXMiLCAiaW5uZXJJbnB1dCIsICJpbnB1dCIsICJjbGVhbmVkVmFsdWUiLCAiZm9ybWF0dGVkIiwgImN1cnNvclBvc2l0aW9uIiwgIm5ld0N1cnNvclBvcyIsICJjbGVhbmVkIiwgIm9sZFBvcyIsICJmb3JtYXR0aW5nQ2hhcnMiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiaSIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzSW5wdXRUeXBlbGlzdCIsICJ0IiwgIkRlZXNJbnB1dEJhc2UiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfdmFsdWVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl92YWx1ZV9pbml0aWFsaXplcnMiLCAiX3ZhbHVlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9pbnB1dFZhbHVlX2RlY29yYXRvcnMiLCAiX2lucHV0VmFsdWVfaW5pdGlhbGl6ZXJzIiwgIl9pbnB1dFZhbHVlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiN2YWx1ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNpbnB1dFZhbHVlX2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgInRhZyIsICJlIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImkiLCAiY3NzTWFuYWdlciIsICJvcHRpb25zQXJnIiwgIml0ZW1BcmciLCAiaXRlbSIsICJ2IiwgInUiLCAiZSIsICJ0YmwiLCAicXVlcnkiLCAidGFibGUiLCAiYmFzZURhdGEiLCAiciIsICJxIiwgImZpbHRlcmVkIiwgIl8iLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAidGFibGVTdHlsZXMiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJjc3NHZWlzdEZvbnRGYW1pbHkiLCAiY29tcHV0ZUNvbHVtbnNGcm9tRGlzcGxheUZ1bmN0aW9uIiwgImRpc3BsYXlGdW5jdGlvbiIsICJkYXRhIiwgImZpcnN0VHJhbnNmb3JtZWRJdGVtIiwgImtleSIsICJyb3ciLCAiY29tcHV0ZUVmZmVjdGl2ZUNvbHVtbnMiLCAiY29sdW1ucyIsICJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiIsICJiYXNlIiwgImZyb21EaXNwbGF5IiwgImV4aXN0aW5nS2V5cyIsICJjIiwgImNvbCIsICJnZXRDZWxsVmFsdWUiLCAiZ2V0Vmlld0RhdGEiLCAiZWZmZWN0aXZlQ29sdW1ucyIsICJzb3J0S2V5IiwgInNvcnREaXIiLCAiZmlsdGVyVGV4dCIsICJjb2x1bW5GaWx0ZXJzIiwgImZpbHRlck1vZGUiLCAibHVjZW5lUHJlZGljYXRlIiwgImFyciIsICJmdCIsICJjZiIsICJjZktleXMiLCAiayIsICJ2YWwiLCAicyIsICJuZWVkbGUiLCAiYW55IiwgImRpciIsICJhIiwgImIiLCAidmEiLCAidmIiLCAic2EiLCAic2IiLCAic3RyaXBRdW90ZXMiLCAicyIsICJzcGxpdEJ5T3IiLCAiaW5wdXQiLCAic3BsaXRCeUFuZCIsICJwYXJzZVRlcm0iLCAicmF3IiwgIm5lZ2F0ZSIsICJub3RNYXRjaCIsICJyYW5nZU1hdGNoIiwgIm0iLCAicGFyc2VMdWNlbmUiLCAiY2xhdXNlcyIsICJjbGF1c2VTdHIiLCAidCIsICJjIiwgImNvbXBpbGVMdWNlbmVQcmVkaWNhdGUiLCAibW9kZSIsICJjb2x1bW5zIiwgImFzdCIsICJjb2xNYXAiLCAiY21wIiwgImEiLCAiYiIsICJjb2VyY2UiLCAic3RyIiwgIm51bSIsICJkYXRlIiwgImluUmFuZ2UiLCAidmFsIiwgImxvd2VyIiwgInVwcGVyIiwgImxvIiwgInVwIiwgImF2IiwgImFzIiwgInJvdyIsICJjbGF1c2UiLCAiY2xhdXNlT2siLCAidGVybSIsICJvayIsICJjb2wiLCAidiIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9kZWVzX2ljb24iLCAiaW5pdF90aGVtZSIsICJEZWVzVGFibGUiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfaGVhZGluZzFfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9oZWFkaW5nMV9pbml0aWFsaXplcnMiLCAiX2hlYWRpbmcxX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9oZWFkaW5nMl9kZWNvcmF0b3JzIiwgIl9oZWFkaW5nMl9pbml0aWFsaXplcnMiLCAiX2hlYWRpbmcyX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kYXRhX2RlY29yYXRvcnMiLCAiX2RhdGFfaW5pdGlhbGl6ZXJzIiwgIl9kYXRhX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9rZXlfZGVjb3JhdG9ycyIsICJfa2V5X2luaXRpYWxpemVycyIsICJfa2V5X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9sYWJlbF9kZWNvcmF0b3JzIiwgIl9sYWJlbF9pbml0aWFsaXplcnMiLCAiX2xhYmVsX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kaXNhYmxlZF9kZWNvcmF0b3JzIiwgIl9kaXNhYmxlZF9pbml0aWFsaXplcnMiLCAiX2Rpc2FibGVkX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9yZXF1aXJlZF9kZWNvcmF0b3JzIiwgIl9yZXF1aXJlZF9pbml0aWFsaXplcnMiLCAiX3JlcXVpcmVkX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kYXRhTmFtZV9kZWNvcmF0b3JzIiwgIl9kYXRhTmFtZV9pbml0aWFsaXplcnMiLCAiX2RhdGFOYW1lX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWFyY2hhYmxlX2RlY29yYXRvcnMiLCAiX3NlYXJjaGFibGVfaW5pdGlhbGl6ZXJzIiwgIl9zZWFyY2hhYmxlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kYXRhQWN0aW9uc19kZWNvcmF0b3JzIiwgIl9kYXRhQWN0aW9uc19pbml0aWFsaXplcnMiLCAiX2RhdGFBY3Rpb25zX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jb2x1bW5zX2RlY29yYXRvcnMiLCAiX2NvbHVtbnNfaW5pdGlhbGl6ZXJzIiwgIl9jb2x1bW5zX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9yb3dLZXlfZGVjb3JhdG9ycyIsICJfcm93S2V5X2luaXRpYWxpemVycyIsICJfcm93S2V5X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbl9kZWNvcmF0b3JzIiwgIl9hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbl9pbml0aWFsaXplcnMiLCAiX2F1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kaXNwbGF5RnVuY3Rpb25fZGVjb3JhdG9ycyIsICJfZGlzcGxheUZ1bmN0aW9uX2luaXRpYWxpemVycyIsICJfZGlzcGxheUZ1bmN0aW9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9yZXZlcnNlRGlzcGxheUZ1bmN0aW9uX2RlY29yYXRvcnMiLCAiX3JldmVyc2VEaXNwbGF5RnVuY3Rpb25faW5pdGlhbGl6ZXJzIiwgIl9yZXZlcnNlRGlzcGxheUZ1bmN0aW9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3RlZERhdGFSb3dfZGVjb3JhdG9ycyIsICJfc2VsZWN0ZWREYXRhUm93X2luaXRpYWxpemVycyIsICJfc2VsZWN0ZWREYXRhUm93X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9lZGl0YWJsZUZpZWxkc19kZWNvcmF0b3JzIiwgIl9lZGl0YWJsZUZpZWxkc19pbml0aWFsaXplcnMiLCAiX2VkaXRhYmxlRmllbGRzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zaG93VmVydGljYWxMaW5lc19kZWNvcmF0b3JzIiwgIl9zaG93VmVydGljYWxMaW5lc19pbml0aWFsaXplcnMiLCAiX3Nob3dWZXJ0aWNhbExpbmVzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zaG93SG9yaXpvbnRhbExpbmVzX2RlY29yYXRvcnMiLCAiX3Nob3dIb3Jpem9udGFsTGluZXNfaW5pdGlhbGl6ZXJzIiwgIl9zaG93SG9yaXpvbnRhbExpbmVzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zaG93R3JpZF9kZWNvcmF0b3JzIiwgIl9zaG93R3JpZF9pbml0aWFsaXplcnMiLCAiX3Nob3dHcmlkX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zb3J0S2V5X2RlY29yYXRvcnMiLCAiX3NvcnRLZXlfaW5pdGlhbGl6ZXJzIiwgIl9zb3J0S2V5X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zb3J0RGlyX2RlY29yYXRvcnMiLCAiX3NvcnREaXJfaW5pdGlhbGl6ZXJzIiwgIl9zb3J0RGlyX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9maWx0ZXJUZXh0X2RlY29yYXRvcnMiLCAiX2ZpbHRlclRleHRfaW5pdGlhbGl6ZXJzIiwgIl9maWx0ZXJUZXh0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jb2x1bW5GaWx0ZXJzX2RlY29yYXRvcnMiLCAiX2NvbHVtbkZpbHRlcnNfaW5pdGlhbGl6ZXJzIiwgIl9jb2x1bW5GaWx0ZXJzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zaG93Q29sdW1uRmlsdGVyc19kZWNvcmF0b3JzIiwgIl9zaG93Q29sdW1uRmlsdGVyc19pbml0aWFsaXplcnMiLCAiX3Nob3dDb2x1bW5GaWx0ZXJzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zdGlja3lIZWFkZXJfZGVjb3JhdG9ycyIsICJfc3RpY2t5SGVhZGVyX2luaXRpYWxpemVycyIsICJfc3RpY2t5SGVhZGVyX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWFyY2hNb2RlX2RlY29yYXRvcnMiLCAiX3NlYXJjaE1vZGVfaW5pdGlhbGl6ZXJzIiwgIl9zZWFyY2hNb2RlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3Rpb25Nb2RlX2RlY29yYXRvcnMiLCAiX3NlbGVjdGlvbk1vZGVfaW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3Rpb25Nb2RlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3RlZElkc19kZWNvcmF0b3JzIiwgIl9zZWxlY3RlZElkc19pbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkSWRzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiNoZWFkaW5nMV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNoZWFkaW5nMl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNkYXRhX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2tleV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNsYWJlbF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNkaXNhYmxlZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNyZXF1aXJlZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl92YWx1ZUFyZyIsICJkb210b29sc19wbHVnaW5leHBvcnRzX2V4cG9ydHMiLCAiI2RhdGFOYW1lX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3NlYXJjaGFibGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZGF0YUFjdGlvbnNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY29sdW1uc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNyb3dLZXlfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb25fYWNjZXNzb3Jfc3RvcmFnZSIsICIjZGlzcGxheUZ1bmN0aW9uX2FjY2Vzc29yX3N0b3JhZ2UiLCAiaXRlbUFyZyIsICIjcmV2ZXJzZURpc3BsYXlGdW5jdGlvbl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzZWxlY3RlZERhdGFSb3dfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZWRpdGFibGVGaWVsZHNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2hvd1ZlcnRpY2FsTGluZXNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2hvd0hvcml6b250YWxMaW5lc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzaG93R3JpZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzb3J0S2V5X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3NvcnREaXJfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZmlsdGVyVGV4dF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNjb2x1bW5GaWx0ZXJzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3Nob3dDb2x1bW5GaWx0ZXJzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3N0aWNreUhlYWRlcl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzZWFyY2hNb2RlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3NlbGVjdGlvbk1vZGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2VsZWN0ZWRJZHNfYWNjZXNzb3Jfc3RvcmFnZSIsICJ0YWJsZVN0eWxlcyIsICJlZmZlY3RpdmVDb2x1bW5zIiwgImNvbXB1dGVFZmZlY3RpdmVDb2x1bW5zIiwgImNvbXB1dGVDb2x1bW5zRnJvbURpc3BsYXlGdW5jdGlvbiIsICJsdWNlbmVQcmVkIiwgImNvbXBpbGVMdWNlbmVQcmVkaWNhdGUiLCAidmlld0RhdGEiLCAiZ2V0Vmlld0RhdGEiLCAiYiIsICJkaXJlY3RpdmVzX2V4cG9ydHMiLCAicmVzdWx0QXJyYXkiLCAiYWN0aW9uIiwgImUiLCAiYyIsICJjb2wiLCAiaXNTb3J0YWJsZSIsICJhcmlhU29ydCIsICJrZXkiLCAicm93SW5kZXgiLCAiZ2V0VHIiLCAiZWxlbWVudEFyZyIsICJpZCIsICJldmVudEFyZyIsICJyZWFsVGFyZ2V0IiwgIm5ld0ZpbGVzIiwgImZpbGUiLCAicmVzdWx0IiwgIkRlZXNDb250ZXh0bWVudSIsICJjb2xJbmRleCIsICJnZXRDZWxsVmFsdWUiLCAiY29udGVudCIsICJlZGl0S2V5IiwgImRibEFjdGlvbiIsICJhY3Rpb25BcmciLCAiY2hhbmdlZFByb3BlcnRpZXMiLCAiZm4iLCAibXMiLCAic2VhcmNoVGV4dEVsIiwgInNlYXJjaE1vZGVFbCIsICJlbCIsICJ2YWwiLCAibW9kZSIsICJ0YWJsZSIsICJjZWxscyIsICJoYW5kbGVDb2x1bW5CeUluZGV4IiwgImkiLCAid2FpdEZvclJlbmRlckFyZyIsICJkb25lIiwgImRpc3RfdHNfZXhwb3J0cyIsICJjZWxsIiwgIndpZHRoIiwgIm5lZWRlZFdpZHRoIiwgInByZXYiLCAicm93IiwgImNoZWNrZWQiLCAidmlldyIsICJyIiwgImNvdW50IiwgInNlbGVjdGVkSWRzIiwgInNlbGVjdGVkUm93cyIsICJ0eXBlQXJnIiwgImFjdGlvbnMiLCAiZXZlbnQiLCAidGFyZ2V0IiwgIm9yaWdpbmFsQ29sb3IiLCAiaW5pdGlhbFZhbHVlIiwgImlucHV0IiwgImJsdXJJbnB1dCIsICJibHVyQXJnIiwgInNhdmVBcmciLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiaSIsICJjc3NNYW5hZ2VyIiwgImVsZW1lbnRBcmciLCAiZm9ybSIsICJvdXRwdXREaXYiLCAiZXZlbnRBcmciLCAiZGF0YSIsICJkaXN0X3RzX2V4cG9ydHMiLCAiaW5wdXQiLCAiZXZlbnQiLCAiZmlsdGVycyIsICJyZXN1bHRzQ291bnQiLCAiZm9ybURhdGEiLCAic3RhdHVzRGl2IiwgImZpbGVVcGxvYWQiLCAiZmlsZXMiLCAiaW5pdF9kaXN0X3RzIiwgIkZPUk1fSU5QVVRfVFlQRVMiLCAiRGVlc0lucHV0Q2hlY2tib3giLCAiRGVlc0lucHV0Q29kZSIsICJEZWVzSW5wdXREYXRlcGlja2VyIiwgIkRlZXNJbnB1dERyb3Bkb3duIiwgIkRlZXNJbnB1dEZpbGV1cGxvYWQiLCAiRGVlc0lucHV0SWJhbiIsICJEZWVzSW5wdXRNdWx0aXRvZ2dsZSIsICJEZWVzSW5wdXRQaG9uZSIsICJEZWVzSW5wdXRRdWFudGl0eVNlbGVjdG9yIiwgIkRlZXNJbnB1dFJhZGlvZ3JvdXAiLCAiRGVlc0lucHV0VGV4dCIsICJEZWVzSW5wdXRUeXBlbGlzdCIsICJEZWVzVGFibGUiLCAiRGVlc0Zvcm0iLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfaG9yaXpvbnRhbExheW91dF9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2hvcml6b250YWxMYXlvdXRfaW5pdGlhbGl6ZXJzIiwgIl9ob3Jpem9udGFsTGF5b3V0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgImRvbXRvb2xzX3BsdWdpbmV4cG9ydHNfZXhwb3J0cyIsICIjaG9yaXpvbnRhbExheW91dF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgImIiLCAiZm9ybUNoaWxkcmVuIiwgImNoaWxkIiwgInZhbHVlT2JqZWN0IiwgIkRlZXNGb3JtU3VibWl0IiwgInJlcXVpcmVkT0siLCAiY2hpbGRBcmciLCAiY2hpbGRyZW4iLCAiZm9ybURhdGFFdmVudCIsICJ2aXN1YWxTdGF0ZUFyZyIsICJ0ZXh0U3RhdGVBcmciLCAiaW5wdXRDaGlsZHJlbiIsICJzdWJtaXRCdXR0b24iLCAiaW5wdXRDaGlsZCIsICJldmVudCIsICJ0YXJnZXQiLCAiY3VycmVudEluZGV4IiwgImNoYW5nZWRQcm9wZXJ0aWVzIiwgImluaXRfZGlzdF90cyIsICJpbml0X2RlZXNfaWNvbiIsICJkZW1vRnVuYyIsICJiIiwgImkiLCAiY3NzTWFuYWdlciIsICJlbGVtZW50QXJnIiwgImJ1dHRvbiIsICJ0eXBlIiwgInNpemUiLCAiaGFzSWNvbiIsICJpY29uTmFtZSIsICJwZW5kaW5nQnV0dG9uIiwgInN1Y2Nlc3NCdXR0b24iLCAiZXJyb3JCdXR0b24iLCAib3V0cHV0IiwgImNsaWNrTWVCdG4iLCAiZGF0YUJ0biIsICJhc3luY0J0biIsICJlIiwgImRpc3RfdHNfZXhwb3J0cyIsICJmb3JtIiwgImRyYWZ0QnRuIiwgImNhbmNlbEJ0biIsICJhY3Rpb25Hcm91cCIsICJkYW5nZXJHcm91cCIsICJpbmRleCIsICJhY3Rpb24iLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiRGVlc0J1dHRvbiIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl90ZXh0X2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfdGV4dF9pbml0aWFsaXplcnMiLCAiX3RleHRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2V2ZW50RGV0YWlsRGF0YV9kZWNvcmF0b3JzIiwgIl9ldmVudERldGFpbERhdGFfaW5pdGlhbGl6ZXJzIiwgIl9ldmVudERldGFpbERhdGFfZXh0cmFJbml0aWFsaXplcnMiLCAiX2Rpc2FibGVkX2RlY29yYXRvcnMiLCAiX2Rpc2FibGVkX2luaXRpYWxpemVycyIsICJfZGlzYWJsZWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzSGlkZGVuX2RlY29yYXRvcnMiLCAiX2lzSGlkZGVuX2luaXRpYWxpemVycyIsICJfaXNIaWRkZW5fZXh0cmFJbml0aWFsaXplcnMiLCAiX3R5cGVfZGVjb3JhdG9ycyIsICJfdHlwZV9pbml0aWFsaXplcnMiLCAiX3R5cGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NpemVfZGVjb3JhdG9ycyIsICJfc2l6ZV9pbml0aWFsaXplcnMiLCAiX3NpemVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3N0YXR1c19kZWNvcmF0b3JzIiwgIl9zdGF0dXNfaW5pdGlhbGl6ZXJzIiwgIl9zdGF0dXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2luc2lkZUZvcm1fZGVjb3JhdG9ycyIsICJfaW5zaWRlRm9ybV9pbml0aWFsaXplcnMiLCAiX2luc2lkZUZvcm1fZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI3RleHRfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjZXZlbnREZXRhaWxEYXRhX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2Rpc2FibGVkX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2lzSGlkZGVuX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3R5cGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2l6ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzdGF0dXNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjaW5zaWRlRm9ybV9hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYWN0dWFsVHlwZSIsICJhY3R1YWxTaXplIiwgImIiLCAiaW5pdF9kaXN0X3RzIiwgIkRlZXNCdXR0b25FeGl0IiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX3NpemVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9zaXplX2luaXRpYWxpemVycyIsICJfc2l6ZV9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJiIiwgIiNzaXplX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiY3NzTWFuYWdlciIsICJpIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImkiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiRGVlc0J1dHRvbkdyb3VwIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX2xhYmVsX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfbGFiZWxfaW5pdGlhbGl6ZXJzIiwgIl9sYWJlbF9leHRyYUluaXRpYWxpemVycyIsICJfZGlyZWN0aW9uX2RlY29yYXRvcnMiLCAiX2RpcmVjdGlvbl9pbml0aWFsaXplcnMiLCAiX2RpcmVjdGlvbl9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjbGFiZWxfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjZGlyZWN0aW9uX2FjY2Vzc29yX3N0b3JhZ2UiLCAiZG9tdG9vbHNfZWxlbWVudGJhc2ljX2V4cG9ydHMiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJpbml0aWFsRGF0YXNldHMiLCAiaW5pdGlhbEZvcm1hdHRlcnMiLCAidmFsIiwgImIiLCAiZWxlbWVudEFyZyIsICJjaGFydEVsZW1lbnQiLCAiY29ubmVjdGlvbnNDaGFydEVsZW1lbnQiLCAiaW50ZXJ2YWxJZCIsICJjb25uZWN0aW9uc0ludGVydmFsSWQiLCAiY3VycmVudERhdGFzZXQiLCAiZm9ybWF0dGVycyIsICJUSU1FX1dJTkRPVyIsICJVUERBVEVfSU5URVJWQUwiLCAiREFUQV9QT0lOVF9JTlRFUlZBTCIsICJwcmV2aW91c1ZhbHVlcyIsICJnZW5lcmF0ZUluaXRpYWxEYXRhIiwgImJhc2VWYWx1ZSIsICJ2YXJpYW5jZSIsICJpbnRlcnZhbCIsICJkYXRhIiwgIm5vdyIsICJwb2ludENvdW50IiwgImkiLCAidGltZXN0YW1wIiwgInZhbHVlIiwgImRhdGFzZXRzIiwgImdldE5leHRWYWx1ZSIsICJjdXJyZW50IiwgIm1pbiIsICJtYXgiLCAibWF4Q2hhbmdlIiwgImNoYW5nZSIsICJuZXdWYWx1ZSIsICJwcmVzc3VyZSIsICJsYXN0RGF0YVBvaW50VGltZSIsICJjb25uZWN0aW9uc0xhc3RVcGRhdGUiLCAiYWRkUmVhbHRpbWVEYXRhIiwgIm5ld1RpbWVzdGFtcCIsICJjdXJyZW50U2VyaWVzIiwgInNlcmllcyIsICJpbmRleCIsICJ1cGRhdGVDb25uZWN0aW9ucyIsICJuZXdEYXRhIiwgInN3aXRjaERhdGFzZXQiLCAibmFtZSIsICJkYXRhc2V0IiwgInN0YXJ0UmVhbHRpbWUiLCAic3RvcFJlYWx0aW1lIiwgInJhbmRvbWl6ZURhdGEiLCAiYnV0dG9ucyIsICJidXR0b24iLCAidGV4dCIsICJ1cGRhdGVCdXR0b25TdGF0ZXMiLCAib3JpZ2luYWxTd2l0Y2hEYXRhc2V0IiwgInN3aXRjaERhdGFzZXRXaXRoQnV0dG9uVXBkYXRlIiwgImluaXRpYWxDb25uZWN0aW9uc0RhdGEiLCAiY3NzTWFuYWdlciIsICJpbml0X2Rpc3RfdHMiLCAiY2hhcnRBcmVhU3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJpbml0X2Rpc3RfdHMiLCAicmVuZGVyQ2hhcnRBcmVhIiwgImNvbXBvbmVudCIsICJiIiwgImluaXRfZGlzdF90cyIsICJpbml0X3NlcnZpY2VzIiwgIkRlZXNDaGFydEFyZWEiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9jaGFydF9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2NoYXJ0X2luaXRpYWxpemVycyIsICJfY2hhcnRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2xhYmVsX2RlY29yYXRvcnMiLCAiX2xhYmVsX2luaXRpYWxpemVycyIsICJfbGFiZWxfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Nlcmllc19kZWNvcmF0b3JzIiwgIl9zZXJpZXNfaW5pdGlhbGl6ZXJzIiwgIl9zZXJpZXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX3lBeGlzRm9ybWF0dGVyX2RlY29yYXRvcnMiLCAiX3lBeGlzRm9ybWF0dGVyX2luaXRpYWxpemVycyIsICJfeUF4aXNGb3JtYXR0ZXJfZXh0cmFJbml0aWFsaXplcnMiLCAiX3JvbGxpbmdXaW5kb3dfZGVjb3JhdG9ycyIsICJfcm9sbGluZ1dpbmRvd19pbml0aWFsaXplcnMiLCAiX3JvbGxpbmdXaW5kb3dfZXh0cmFJbml0aWFsaXplcnMiLCAiX3JlYWx0aW1lTW9kZV9kZWNvcmF0b3JzIiwgIl9yZWFsdGltZU1vZGVfaW5pdGlhbGl6ZXJzIiwgIl9yZWFsdGltZU1vZGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3lBeGlzU2NhbGluZ19kZWNvcmF0b3JzIiwgIl95QXhpc1NjYWxpbmdfaW5pdGlhbGl6ZXJzIiwgIl95QXhpc1NjYWxpbmdfZXh0cmFJbml0aWFsaXplcnMiLCAiX3lBeGlzTWF4X2RlY29yYXRvcnMiLCAiX3lBeGlzTWF4X2luaXRpYWxpemVycyIsICJfeUF4aXNNYXhfZXh0cmFJbml0aWFsaXplcnMiLCAiX2F1dG9TY3JvbGxJbnRlcnZhbF9kZWNvcmF0b3JzIiwgIl9hdXRvU2Nyb2xsSW50ZXJ2YWxfaW5pdGlhbGl6ZXJzIiwgIl9hdXRvU2Nyb2xsSW50ZXJ2YWxfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI2NoYXJ0X2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2xhYmVsX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3Nlcmllc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN5QXhpc0Zvcm1hdHRlcl9hY2Nlc3Nvcl9zdG9yYWdlIiwgInZhbCIsICIjcm9sbGluZ1dpbmRvd19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNyZWFsdGltZU1vZGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjeUF4aXNTY2FsaW5nX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3lBeGlzTWF4X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2F1dG9TY3JvbGxJbnRlcnZhbF9hY2Nlc3Nvcl9zdG9yYWdlIiwgImRvbXRvb2xzX2VsZW1lbnRiYXNpY19leHBvcnRzIiwgImVudHJpZXMiLCAiZW50cnkiLCAiZXJyb3IiLCAicmVzb2x2ZSIsICJjaGFydEFyZWFTdHlsZXMiLCAicmVuZGVyQ2hhcnRBcmVhIiwgIkFwZXhDaGFydHNMaWIiLCAiRGVlc1NlcnZpY2VMaWJMb2FkZXIiLCAibWFpbmJveCIsICJjaGFydENvbnRhaW5lciIsICJzdHlsZUNoYXJ0Q29udGFpbmVyIiwgInBhZGRpbmdUb3AiLCAicGFkZGluZ0JvdHRvbSIsICJwYWRkaW5nTGVmdCIsICJwYWRkaW5nUmlnaHQiLCAiaW5pdGlhbFdpZHRoIiwgImluaXRpYWxIZWlnaHQiLCAiY2hhcnRTZXJpZXMiLCAiaXNEYXJrIiwgInRoZW1lIiwgIm9wdGlvbnMiLCAic2VyaWVzIiwgImRhdGFQb2ludEluZGV4IiwgInciLCAiaXNEYXJrTW9kZSIsICJiZ0NvbG9yIiwgInRleHRDb2xvciIsICJib3JkZXJDb2xvciIsICJmb3JtYXR0ZXIiLCAidG9vbHRpcENvbnRlbnQiLCAicyIsICJpbmRleCIsICJsYWJlbCIsICJjb2xvciIsICJmb3JtYXR0ZWRWYWx1ZSIsICJjaGFuZ2VkUHJvcGVydGllcyIsICJuZXdTZXJpZXMiLCAiYW5pbWF0ZSIsICJjdXRvZmZUaW1lIiwgImZpbHRlcmVkU2VyaWVzIiwgInBvaW50IiwgImFsbFZhbHVlcyIsICJkIiwgIm1heFZhbHVlIiwgImR5bmFtaWNNYXgiLCAibm93IiwgIm5ld0RhdGEiLCAicmVkcmF3UGF0aHMiLCAiYWN0dWFsV2lkdGgiLCAiYWN0dWFsSGVpZ2h0IiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImVsZW1lbnRBcmciLCAibG9nRWxlbWVudCIsICJpbnRlcnZhbElkIiwgInNlcnZlclNvdXJjZXMiLCAibG9nVGVtcGxhdGVzIiwgImdlbmVyYXRlUmFuZG9tTG9nIiwgImxldmVscyIsICJ3ZWlnaHRzIiwgInJhbmRvbSIsICJjdW11bGF0aXZlIiwgImxldmVsIiwgImkiLCAic291cmNlIiwgInRlbXBsYXRlcyIsICJtZXNzYWdlIiwgInN0YXJ0U2ltdWxhdGlvbiIsICJzY2hlZHVsZU5leHQiLCAibmV4dERlbGF5IiwgInN0b3BTaW11bGF0aW9uIiwgImJ1dHRvbiIsICJ0ZXh0IiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNDaGFydExvZyIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9sYWJlbF9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2xhYmVsX2luaXRpYWxpemVycyIsICJfbGFiZWxfZXh0cmFJbml0aWFsaXplcnMiLCAiX2xvZ0VudHJpZXNfZGVjb3JhdG9ycyIsICJfbG9nRW50cmllc19pbml0aWFsaXplcnMiLCAiX2xvZ0VudHJpZXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2F1dG9TY3JvbGxfZGVjb3JhdG9ycyIsICJfYXV0b1Njcm9sbF9pbml0aWFsaXplcnMiLCAiX2F1dG9TY3JvbGxfZXh0cmFJbml0aWFsaXplcnMiLCAiX21heEVudHJpZXNfZGVjb3JhdG9ycyIsICJfbWF4RW50cmllc19pbml0aWFsaXplcnMiLCAiX21heEVudHJpZXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI2xhYmVsX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2xvZ0VudHJpZXNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYXV0b1Njcm9sbF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtYXhFbnRyaWVzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiZG9tdG9vbHNfZWxlbWVudGJhc2ljX2V4cG9ydHMiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgImVudHJ5IiwgInRpbWVzdGFtcCIsICJkZW1vTG9ncyIsICJlbnRyaWVzIiwgImxldmVsIiwgIm1lc3NhZ2UiLCAic291cmNlIiwgIm5ld0VudHJ5IiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImNzc01hbmFnZXIiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfc2VydmljZXMiLCAiRGVlc0RhdGF2aWV3Q29kZWJveCIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9wcm9nTGFuZ19kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX3Byb2dMYW5nX2luaXRpYWxpemVycyIsICJfcHJvZ0xhbmdfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NvZGVUb0Rpc3BsYXlfZGVjb3JhdG9ycyIsICJfY29kZVRvRGlzcGxheV9pbml0aWFsaXplcnMiLCAiX2NvZGVUb0Rpc3BsYXlfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI3Byb2dMYW5nX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2NvZGVUb0Rpc3BsYXlfYWNjZXNzb3Jfc3RvcmFnZSIsICJiIiwgImRvbXRvb2xzX2VsZW1lbnRiYXNpY19leHBvcnRzIiwgImNzc0dlaXN0Rm9udEZhbWlseSIsICJjc3NNYW5hZ2VyIiwgImNzc01vbm9Gb250RmFtaWx5IiwgImV2ZW50QXJnIiwgIkRlZXNDb250ZXh0bWVudSIsICJsaW5lQ291bnRlciIsICJsaW5lQXJnIiwgIl9jaGFuZ2VkUHJvcGVydGllcyIsICJzbG90dGVkQ29kZU5vZGVzIiwgImNoaWxkTm9kZSIsICJzbWFydHN0cmluZ19pbmRlbnRfZXhwb3J0cyIsICJkb210b29sc19wbHVnaW5leHBvcnRzX2V4cG9ydHMiLCAiRGVlc1NlcnZpY2VMaWJMb2FkZXIiLCAibG9jYWxDb2RlTm9kZSIsICJoaWdobGlnaHRlZEh0bWwiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiY3NzTWFuYWdlciIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzRGF0YXZpZXdTdGF0dXNvYmplY3QiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfc3RhdHVzT2JqZWN0X2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfc3RhdHVzT2JqZWN0X2luaXRpYWxpemVycyIsICJfc3RhdHVzT2JqZWN0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiNzdGF0dXNPYmplY3RfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImIiLCAiZGV0YWlsQXJnIiwgImV2ZW50IiwgIkRlZXNDb250ZXh0bWVudSIsICJ0ZXh0IiwgInR5cGUiLCAiZXJyIiwgImJ1dHRvbiIsICJvcmlnaW5hbFRleHQiLCAiaXNEYXJrIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgImluaXRfZGVlc19pY29uIiwgIkRlZXNXb3Jrc3BhY2VGaWxldHJlZSIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiciIsICJfX2VzRGVjb3JhdGUiLCAiX2V4ZWN1dGlvbkVudmlyb25tZW50X2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfZXhlY3V0aW9uRW52aXJvbm1lbnRfaW5pdGlhbGl6ZXJzIiwgIl9leGVjdXRpb25FbnZpcm9ubWVudF9leHRyYUluaXRpYWxpemVycyIsICJfcm9vdFBhdGhfZGVjb3JhdG9ycyIsICJfcm9vdFBhdGhfaW5pdGlhbGl6ZXJzIiwgIl9yb290UGF0aF9leHRyYUluaXRpYWxpemVycyIsICJfc2VsZWN0ZWRQYXRoX2RlY29yYXRvcnMiLCAiX3NlbGVjdGVkUGF0aF9pbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkUGF0aF9leHRyYUluaXRpYWxpemVycyIsICJfdHJlZURhdGFfZGVjb3JhdG9ycyIsICJfdHJlZURhdGFfaW5pdGlhbGl6ZXJzIiwgIl90cmVlRGF0YV9leHRyYUluaXRpYWxpemVycyIsICJfaXNMb2FkaW5nX2RlY29yYXRvcnMiLCAiX2lzTG9hZGluZ19pbml0aWFsaXplcnMiLCAiX2lzTG9hZGluZ19leHRyYUluaXRpYWxpemVycyIsICJfZXJyb3JNZXNzYWdlX2RlY29yYXRvcnMiLCAiX2Vycm9yTWVzc2FnZV9pbml0aWFsaXplcnMiLCAiX2Vycm9yTWVzc2FnZV9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJiIiwgIiNleGVjdXRpb25FbnZpcm9ubWVudF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNyb290UGF0aF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzZWxlY3RlZFBhdGhfYWNjZXNzb3Jfc3RvcmFnZSIsICIjdHJlZURhdGFfYWNjZXNzb3Jfc3RvcmFnZSIsICIjaXNMb2FkaW5nX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2Vycm9yTWVzc2FnZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAibm9kZXMiLCAibm9kZSIsICJpc0RpcmVjdG9yeSIsICJpc0V4cGFuZGVkIiwgImlzU2VsZWN0ZWQiLCAiaWNvbkNsYXNzIiwgImUiLCAiZW50cmllcyIsICJlbnRyeSIsICJlcnJvciIsICJtZW51SXRlbXMiLCAiRGVlc0NvbnRleHRtZW51IiwgIm9wdGlvbnMiLCAicmVzb2x2ZSIsICJtb2RhbCIsICJEZWVzTW9kYWwiLCAibW9kYWxSZWYiLCAiaW5wdXRWYWx1ZSIsICJjb250ZW50RWwiLCAiaW5wdXRFbGVtZW50IiwgInBhcmVudFBhdGgiLCAiZmlsZU5hbWUiLCAibmV3UGF0aCIsICJmb2xkZXJOYW1lIiwgIm5ld05hbWUiLCAiY29udGVudCIsICJsYXN0RG90IiwgImJhc2VOYW1lIiwgImV4dCIsICJ0YXJnZXRQYXRoIiwgIm5hbWUiLCAic291cmNlUGF0aCIsICJkZXN0UGF0aCIsICJzcmNFbnRyeVBhdGgiLCAiZGVzdEVudHJ5UGF0aCIsICJjaGFuZ2VkUHJvcGVydGllcyIsICJfZXZlbnQiLCAiX2ZpbGVuYW1lIiwgImEiLCAicGF0aCIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJpbml0X3NlcnZpY2VzIiwgIkRlZXNXb3Jrc3BhY2VUZXJtaW5hbFByZXZpZXciLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfY29tbWFuZF9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2NvbW1hbmRfaW5pdGlhbGl6ZXJzIiwgIl9jb21tYW5kX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9saW5lc19kZWNvcmF0b3JzIiwgIl9saW5lc19pbml0aWFsaXplcnMiLCAiX2xpbmVzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImIiLCAiI2NvbW1hbmRfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjbGluZXNfYWNjZXNzb3Jfc3RvcmFnZSIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImlzQnJpZ2h0IiwgIl9jaGFuZ2VkUHJvcGVydGllcyIsICJjb250YWluZXIiLCAiZG9tdG9vbHNJbnN0YW5jZSIsICJsaWJMb2FkZXIiLCAiRGVlc1NlcnZpY2VMaWJMb2FkZXIiLCAieHRlcm1CdW5kbGUiLCAiZml0QWRkb25CdW5kbGUiLCAiZ29CcmlnaHQiLCAiY2hhbmdlZFByb3BlcnRpZXMiLCAibmV3TGluZXMiLCAibGluZSIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJpbml0X2RlZXNfaWNvbiIsICJEZWVzV29ya3NwYWNlQm90dG9tYmFyIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfZXhlY3V0aW9uRW52aXJvbm1lbnRfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9leGVjdXRpb25FbnZpcm9ubWVudF9pbml0aWFsaXplcnMiLCAiX2V4ZWN1dGlvbkVudmlyb25tZW50X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zY3JpcHRzX2RlY29yYXRvcnMiLCAiX3NjcmlwdHNfaW5pdGlhbGl6ZXJzIiwgIl9zY3JpcHRzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9wYWNrYWdlU3RhdHVzX2RlY29yYXRvcnMiLCAiX3BhY2thZ2VTdGF0dXNfaW5pdGlhbGl6ZXJzIiwgIl9wYWNrYWdlU3RhdHVzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9vdXRkYXRlZFBhY2thZ2VzX2RlY29yYXRvcnMiLCAiX291dGRhdGVkUGFja2FnZXNfaW5pdGlhbGl6ZXJzIiwgIl9vdXRkYXRlZFBhY2thZ2VzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9pc0NoZWNraW5nUGFja2FnZXNfZGVjb3JhdG9ycyIsICJfaXNDaGVja2luZ1BhY2thZ2VzX2luaXRpYWxpemVycyIsICJfaXNDaGVja2luZ1BhY2thZ2VzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgIiNleGVjdXRpb25FbnZpcm9ubWVudF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNzY3JpcHRzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3BhY2thZ2VTdGF0dXNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjb3V0ZGF0ZWRQYWNrYWdlc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpc0NoZWNraW5nUGFja2FnZXNfYWNjZXNzb3Jfc3RvcmFnZSIsICJlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYiIsICJjaGFuZ2VkUHJvcGVydGllcyIsICJjb250ZW50IiwgInBhY2thZ2VKc29uIiwgImVycm9yIiwgInNjcmlwdE5hbWVzIiwgIm1lbnVJdGVtcyIsICJuYW1lIiwgIkRlZXNDb250ZXh0bWVudSIsICJzY3JpcHROYW1lIiwgImRldGFpbCIsICJwcm9jZXNzIiwgIm91dHB1dCIsICJvdXRwdXRSZWFkZXIiLCAiZG9uZSIsICJleGl0Q29kZSIsICJyZXNvbHZlIiwgIm91dGRhdGVkRGF0YSIsICJkYXRhIiwgInBhY2thZ2VzIiwgImluZm8iLCAicGtnSW5mbyIsICJkaXNwbGF5UGFja2FnZXMiLCAicGtnIiwgInBhY2thZ2VOYW1lIiwgIlR5cGVTY3JpcHRJbnRlbGxpU2Vuc2VNYW5hZ2VyIiwgIm1vbmFjb0luc3QiLCAiZW52IiwgImRpclBhdGgiLCAiZW50cmllcyIsICJlbnRyeSIsICJmdWxsUGF0aCIsICJleHQiLCAiY29udGVudCIsICJ0cyIsICJpbXBvcnRzIiwgImltcG9ydFJlZ2V4IiwgIm1hdGNoIiwgImltcG9ydFBhdGgiLCAicGFja2FnZU5hbWUiLCAicmVxdWlyZVJlZ2V4IiwgInR5cGVzTG9hZGVkIiwgImVycm9yIiwgImJhc2VQYXRoIiwgInBhY2thZ2VKc29uUGF0aCIsICJwYWNrYWdlSnNvbkNvbnRlbnQiLCAicGFja2FnZUpzb24iLCAiY29tbW9uUGF0aHMiLCAiZHRzUGF0aCIsICJpbmRleFBhdGgiLCAic2NvcGVkUGF0aCIsICJzY29wZWRFbnRyaWVzIiwgInNjb3BlZEVudHJ5IiwgInBhdGgiLCAidXJpIiwgImV4aXN0aW5nTW9kZWwiLCAibGFuZ3VhZ2UiLCAiZXhpc3RpbmciLCAiZmlsZVBhdGgiLCAiZGlzcG9zYWJsZSIsICJqc1BhdGgiLCAianNGaWxlUGF0aCIsICJqc0Rpc3Bvc2FibGUiLCAianN4UGF0aCIsICJqc3hGaWxlUGF0aCIsICJqc3hEaXNwb3NhYmxlIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNXb3Jrc3BhY2VEaWZmRWRpdG9yIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX29yaWdpbmFsQ29udGVudF9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX29yaWdpbmFsQ29udGVudF9pbml0aWFsaXplcnMiLCAiX29yaWdpbmFsQ29udGVudF9leHRyYUluaXRpYWxpemVycyIsICJfbW9kaWZpZWRDb250ZW50X2RlY29yYXRvcnMiLCAiX21vZGlmaWVkQ29udGVudF9pbml0aWFsaXplcnMiLCAiX21vZGlmaWVkQ29udGVudF9leHRyYUluaXRpYWxpemVycyIsICJfb3JpZ2luYWxMYWJlbF9kZWNvcmF0b3JzIiwgIl9vcmlnaW5hbExhYmVsX2luaXRpYWxpemVycyIsICJfb3JpZ2luYWxMYWJlbF9leHRyYUluaXRpYWxpemVycyIsICJfbW9kaWZpZWRMYWJlbF9kZWNvcmF0b3JzIiwgIl9tb2RpZmllZExhYmVsX2luaXRpYWxpemVycyIsICJfbW9kaWZpZWRMYWJlbF9leHRyYUluaXRpYWxpemVycyIsICJfbGFuZ3VhZ2VfZGVjb3JhdG9ycyIsICJfbGFuZ3VhZ2VfaW5pdGlhbGl6ZXJzIiwgIl9sYW5ndWFnZV9leHRyYUluaXRpYWxpemVycyIsICJfZmlsZVBhdGhfZGVjb3JhdG9ycyIsICJfZmlsZVBhdGhfaW5pdGlhbGl6ZXJzIiwgIl9maWxlUGF0aF9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJiIiwgImRvbXRvb2xzX3BsdWdpbmV4cG9ydHNfZXhwb3J0cyIsICIjb3JpZ2luYWxDb250ZW50X2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI21vZGlmaWVkQ29udGVudF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNvcmlnaW5hbExhYmVsX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI21vZGlmaWVkTGFiZWxfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbGFuZ3VhZ2VfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZmlsZVBhdGhfYWNjZXNzb3Jfc3RvcmFnZSIsICJEb21Ub29scyIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImZpbGVOYW1lIiwgImNvbnRhaW5lciIsICJtb25hY29DZG5CYXNlIiwgIk1PTkFDT19WRVJTSU9OIiwgIm1vbmFjb0luc3RhbmNlIiwgInJlc29sdmUiLCAiY2hlY2tNb25hY28iLCAiZG9tdG9vbHNJbnN0YW5jZSIsICJpbml0aWFsVGhlbWUiLCAidGltZXN0YW1wIiwgIm9yaWdpbmFsVXJpIiwgIm1vZGlmaWVkVXJpIiwgImdvQnJpZ2h0IiwgIm5ld1RoZW1lIiwgImNzc0lkIiwgImNzc1RleHQiLCAic3R5bGVFbGVtZW50IiwgIm1vZGlmaWVkQ29udGVudCIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJpbml0X2dyb3VwX3J1bnRpbWUiLCAiaW5pdF9kZWVzX3dvcmtzcGFjZV90ZXJtaW5hbCIsICJpbml0X2RlZXNfaWNvbiIsICJpbml0X2RlZXNfYWN0aW9uYmFyIiwgIkRlZXNXb3Jrc3BhY2UiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgInIiLCAiX19lc0RlY29yYXRlIiwgIl9leGVjdXRpb25FbnZpcm9ubWVudF9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2V4ZWN1dGlvbkVudmlyb25tZW50X2luaXRpYWxpemVycyIsICJfZXhlY3V0aW9uRW52aXJvbm1lbnRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2luaXRpYWxpemF0aW9uUHJvbWlzZV9kZWNvcmF0b3JzIiwgIl9pbml0aWFsaXphdGlvblByb21pc2VfaW5pdGlhbGl6ZXJzIiwgIl9pbml0aWFsaXphdGlvblByb21pc2VfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Nob3dGaWxlVHJlZV9kZWNvcmF0b3JzIiwgIl9zaG93RmlsZVRyZWVfaW5pdGlhbGl6ZXJzIiwgIl9zaG93RmlsZVRyZWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Nob3dUZXJtaW5hbF9kZWNvcmF0b3JzIiwgIl9zaG93VGVybWluYWxfaW5pdGlhbGl6ZXJzIiwgIl9zaG93VGVybWluYWxfZXh0cmFJbml0aWFsaXplcnMiLCAiX2ZpbGVUcmVlV2lkdGhfZGVjb3JhdG9ycyIsICJfZmlsZVRyZWVXaWR0aF9pbml0aWFsaXplcnMiLCAiX2ZpbGVUcmVlV2lkdGhfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Rlcm1pbmFsSGVpZ2h0X2RlY29yYXRvcnMiLCAiX3Rlcm1pbmFsSGVpZ2h0X2luaXRpYWxpemVycyIsICJfdGVybWluYWxIZWlnaHRfZXh0cmFJbml0aWFsaXplcnMiLCAiX29wZW5GaWxlc19kZWNvcmF0b3JzIiwgIl9vcGVuRmlsZXNfaW5pdGlhbGl6ZXJzIiwgIl9vcGVuRmlsZXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2FjdGl2ZUZpbGVQYXRoX2RlY29yYXRvcnMiLCAiX2FjdGl2ZUZpbGVQYXRoX2luaXRpYWxpemVycyIsICJfYWN0aXZlRmlsZVBhdGhfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzVGVybWluYWxDb2xsYXBzZWRfZGVjb3JhdG9ycyIsICJfaXNUZXJtaW5hbENvbGxhcHNlZF9pbml0aWFsaXplcnMiLCAiX2lzVGVybWluYWxDb2xsYXBzZWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzRmlsZVRyZWVDb2xsYXBzZWRfZGVjb3JhdG9ycyIsICJfaXNGaWxlVHJlZUNvbGxhcHNlZF9pbml0aWFsaXplcnMiLCAiX2lzRmlsZVRyZWVDb2xsYXBzZWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzSW5pdGlhbGl6aW5nX2RlY29yYXRvcnMiLCAiX2lzSW5pdGlhbGl6aW5nX2luaXRpYWxpemVycyIsICJfaXNJbml0aWFsaXppbmdfZXh0cmFJbml0aWFsaXplcnMiLCAiX2FjdGl2ZUJvdHRvbVBhbmVsX2RlY29yYXRvcnMiLCAiX2FjdGl2ZUJvdHRvbVBhbmVsX2luaXRpYWxpemVycyIsICJfYWN0aXZlQm90dG9tUGFuZWxfZXh0cmFJbml0aWFsaXplcnMiLCAiX2RpYWdub3N0aWNNYXJrZXJzX2RlY29yYXRvcnMiLCAiX2RpYWdub3N0aWNNYXJrZXJzX2luaXRpYWxpemVycyIsICJfZGlhZ25vc3RpY01hcmtlcnNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2F1dG9TYXZlX2RlY29yYXRvcnMiLCAiX2F1dG9TYXZlX2luaXRpYWxpemVycyIsICJfYXV0b1NhdmVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2luaXRDb21tYW5kX2RlY29yYXRvcnMiLCAiX2luaXRDb21tYW5kX2luaXRpYWxpemVycyIsICJfaW5pdENvbW1hbmRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2luaXRPdXRwdXRfZGVjb3JhdG9ycyIsICJfaW5pdE91dHB1dF9pbml0aWFsaXplcnMiLCAiX2luaXRPdXRwdXRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2N1cnJlbnRGaWxlVHJlZVdpZHRoX2RlY29yYXRvcnMiLCAiX2N1cnJlbnRGaWxlVHJlZVdpZHRoX2luaXRpYWxpemVycyIsICJfY3VycmVudEZpbGVUcmVlV2lkdGhfZXh0cmFJbml0aWFsaXplcnMiLCAiX2N1cnJlbnRUZXJtaW5hbEhlaWdodF9kZWNvcmF0b3JzIiwgIl9jdXJyZW50VGVybWluYWxIZWlnaHRfaW5pdGlhbGl6ZXJzIiwgIl9jdXJyZW50VGVybWluYWxIZWlnaHRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzRHJhZ2dpbmdGaWxlVHJlZV9kZWNvcmF0b3JzIiwgIl9pc0RyYWdnaW5nRmlsZVRyZWVfaW5pdGlhbGl6ZXJzIiwgIl9pc0RyYWdnaW5nRmlsZVRyZWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzRHJhZ2dpbmdUZXJtaW5hbF9kZWNvcmF0b3JzIiwgIl9pc0RyYWdnaW5nVGVybWluYWxfaW5pdGlhbGl6ZXJzIiwgIl9pc0RyYWdnaW5nVGVybWluYWxfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Nob3dEaWZmVmlld19kZWNvcmF0b3JzIiwgIl9zaG93RGlmZlZpZXdfaW5pdGlhbGl6ZXJzIiwgIl9zaG93RGlmZlZpZXdfZXh0cmFJbml0aWFsaXplcnMiLCAiX2RpZmZWaWV3Q29uZmlnX2RlY29yYXRvcnMiLCAiX2RpZmZWaWV3Q29uZmlnX2luaXRpYWxpemVycyIsICJfZGlmZlZpZXdDb25maWdfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZW52IiwgIldlYkNvbnRhaW5lckVudmlyb25tZW50IiwgIm1vdW50UHJvbWlzZSIsICJmaWxlVHJlZSIsICJjb250YWluZXJFbGVtZW50IiwgIndvcmtzcGFjZUVsZW1lbnQiLCAiYiIsICIjZXhlY3V0aW9uRW52aXJvbm1lbnRfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjaW5pdGlhbGl6YXRpb25Qcm9taXNlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3Nob3dGaWxlVHJlZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzaG93VGVybWluYWxfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZmlsZVRyZWVXaWR0aF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN0ZXJtaW5hbEhlaWdodF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNvcGVuRmlsZXNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYWN0aXZlRmlsZVBhdGhfYWNjZXNzb3Jfc3RvcmFnZSIsICIjaXNUZXJtaW5hbENvbGxhcHNlZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpc0ZpbGVUcmVlQ29sbGFwc2VkX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2lzSW5pdGlhbGl6aW5nX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2FjdGl2ZUJvdHRvbVBhbmVsX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2RpYWdub3N0aWNNYXJrZXJzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2F1dG9TYXZlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2luaXRDb21tYW5kX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2luaXRPdXRwdXRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY3VycmVudEZpbGVUcmVlV2lkdGhfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY3VycmVudFRlcm1pbmFsSGVpZ2h0X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2lzRHJhZ2dpbmdGaWxlVHJlZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpc0RyYWdnaW5nVGVybWluYWxfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2hvd0RpZmZWaWV3X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2RpZmZWaWV3Q29uZmlnX2FjY2Vzc29yX3N0b3JhZ2UiLCAiZSIsICJjb250YWluZXJSZWN0IiwgIm1vdXNlWCIsICJtaW5XaWR0aCIsICJtYXhXaWR0aCIsICJuZXdXaWR0aCIsICJtb3VzZVkiLCAidGVybWluYWxIZWlnaHQiLCAibWluSGVpZ2h0IiwgIm1heEhlaWdodCIsICJuZXdIZWlnaHQiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJjb250YWluZXJDbGFzc2VzIiwgImZpbGUiLCAiY2hhbmdlZFByb3BlcnRpZXMiLCAiZXJyb3IiLCAiY29udGVudCIsICJvbkluaXQiLCAiY21kIiwgImFyZ3MiLCAicHJvY2VzcyIsICJkYXRhIiwgImxpbmVzIiwgImxpbmUiLCAiZXhpdENvZGUiLCAibW9uYWNvSW5zdGFuY2UiLCAicmVzb2x2ZSIsICJUeXBlU2NyaXB0SW50ZWxsaVNlbnNlTWFuYWdlciIsICJfZXZlbnQiLCAiX2ZpbGVuYW1lIiwgInBhdGgiLCAid2F0Y2hlciIsICJleGlzdGluZ1RpbWVvdXQiLCAidGltZW91dCIsICJmIiwgIm5ld0NvbnRlbnQiLCAicmVzdWx0IiwgInByZXNlcnZlQ3Vyc29yIiwgImVkaXRvciIsICJsb2NhbENvbnRlbnQiLCAiZGlza0NvbnRlbnQiLCAiYWN0aW9uIiwgIm5hbWUiLCAibGFuZ3VhZ2UiLCAiZmlsZUluZGV4IiwgIm5ld0luZGV4IiwgImV4dCIsICJtZW51SXRlbXMiLCAiRGVlc0NvbnRleHRtZW51IiwgIm0iLCAibWFya2VyIiwgImZpbGVQYXRoIiwgImZpbGVOYW1lIiwgImVkaXRvckVsZW1lbnQiLCAidXJpcyIsICJhbGxNYXJrZXJzIiwgImRldGFpbCIsICJ0ZXJtaW5hbCIsICJ3aWR0aCIsICJoZWlnaHQiLCAiaW5pdF9kZWVzX3dvcmtzcGFjZV90ZXJtaW5hbCIsICJpbml0X3Rlcm1pbmFsX3RhYl9tYW5hZ2VyIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgImRlZmVycmVkIiwgImRpc3RfdHNfZXhwb3J0cyIsICJEZWVzV29ya3NwYWNlTWFya2Rvd24iLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgInIiLCAiX19lc0RlY29yYXRlIiwgIl9zcGxpdFJhdGlvX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfc3BsaXRSYXRpb19pbml0aWFsaXplcnMiLCAiX3NwbGl0UmF0aW9fZXh0cmFJbml0aWFsaXplcnMiLCAiX21pblBhbmVsU2l6ZV9kZWNvcmF0b3JzIiwgIl9taW5QYW5lbFNpemVfaW5pdGlhbGl6ZXJzIiwgIl9taW5QYW5lbFNpemVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2N1cnJlbnRTcGxpdFJhdGlvX2RlY29yYXRvcnMiLCAiX2N1cnJlbnRTcGxpdFJhdGlvX2luaXRpYWxpemVycyIsICJfY3VycmVudFNwbGl0UmF0aW9fZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzRHJhZ2dpbmdfZGVjb3JhdG9ycyIsICJfaXNEcmFnZ2luZ19pbml0aWFsaXplcnMiLCAiX2lzRHJhZ2dpbmdfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiYiIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgIiNzcGxpdFJhdGlvX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI21pblBhbmVsU2l6ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNjdXJyZW50U3BsaXRSYXRpb19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpc0RyYWdnaW5nX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX2NoYW5nZWRQcm9wZXJ0aWVzQXJnIiwgImVkaXRvciIsICJtYXJrZG93bk91dGxldCIsICJtZFBhcnNlZFJlc3VsdCIsICJjb250ZW50QXJnIiwgImh0bWwiLCAiZSIsICJjb250YWluZXJSZWN0IiwgImNvbnRhaW5lcldpZHRoIiwgIm5ld1JhdGlvIiwgInJhdGlvIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImkiLCAicGFuZWxFbCIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzV29ya3NwYWNlTWFya2Rvd25vdXRsZXQiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJfX2VzRGVjb3JhdGUiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX21ldGFkYXRhIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYiIsICJfY2hhbmdlZFByb3BlcnRpZXMiLCAiaHRtbFRleHRBcmciLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiaSIsICJlIiwgInByZXZpZXciLCAiZGF0YSIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9kZWVzX2ljb24iLCAiaW5pdF90aGVtZSIsICJEZWVzSW5wdXRMaXN0IiwgInQiLCAiRGVlc0lucHV0QmFzZSIsICJfY2xhc3NTdXBlciIsICJuIiwgInIiLCAiX19lc0RlY29yYXRlIiwgIl92YWx1ZV9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX3ZhbHVlX2luaXRpYWxpemVycyIsICJfdmFsdWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3BsYWNlaG9sZGVyX2RlY29yYXRvcnMiLCAiX3BsYWNlaG9sZGVyX2luaXRpYWxpemVycyIsICJfcGxhY2Vob2xkZXJfZXh0cmFJbml0aWFsaXplcnMiLCAiX21heEl0ZW1zX2RlY29yYXRvcnMiLCAiX21heEl0ZW1zX2luaXRpYWxpemVycyIsICJfbWF4SXRlbXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX21pbkl0ZW1zX2RlY29yYXRvcnMiLCAiX21pbkl0ZW1zX2luaXRpYWxpemVycyIsICJfbWluSXRlbXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2FsbG93RHVwbGljYXRlc19kZWNvcmF0b3JzIiwgIl9hbGxvd0R1cGxpY2F0ZXNfaW5pdGlhbGl6ZXJzIiwgIl9hbGxvd0R1cGxpY2F0ZXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NvcnRhYmxlX2RlY29yYXRvcnMiLCAiX3NvcnRhYmxlX2luaXRpYWxpemVycyIsICJfc29ydGFibGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NvbmZpcm1EZWxldGVfZGVjb3JhdG9ycyIsICJfY29uZmlybURlbGV0ZV9pbml0aWFsaXplcnMiLCAiX2NvbmZpcm1EZWxldGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3ZhbGlkYXRpb25UZXh0X2RlY29yYXRvcnMiLCAiX3ZhbGlkYXRpb25UZXh0X2luaXRpYWxpemVycyIsICJfdmFsaWRhdGlvblRleHRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lucHV0VmFsdWVfZGVjb3JhdG9ycyIsICJfaW5wdXRWYWx1ZV9pbml0aWFsaXplcnMiLCAiX2lucHV0VmFsdWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2VkaXRpbmdJbmRleF9kZWNvcmF0b3JzIiwgIl9lZGl0aW5nSW5kZXhfaW5pdGlhbGl6ZXJzIiwgIl9lZGl0aW5nSW5kZXhfZXh0cmFJbml0aWFsaXplcnMiLCAiX2VkaXRpbmdWYWx1ZV9kZWNvcmF0b3JzIiwgIl9lZGl0aW5nVmFsdWVfaW5pdGlhbGl6ZXJzIiwgIl9lZGl0aW5nVmFsdWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2RyYWdnZWRJbmRleF9kZWNvcmF0b3JzIiwgIl9kcmFnZ2VkSW5kZXhfaW5pdGlhbGl6ZXJzIiwgIl9kcmFnZ2VkSW5kZXhfZXh0cmFJbml0aWFsaXplcnMiLCAiX2RyYWdPdmVySW5kZXhfZGVjb3JhdG9ycyIsICJfZHJhZ092ZXJJbmRleF9pbml0aWFsaXplcnMiLCAiX2RyYWdPdmVySW5kZXhfZXh0cmFJbml0aWFsaXplcnMiLCAiX2RyYWdTdGFydFlfZGVjb3JhdG9ycyIsICJfZHJhZ1N0YXJ0WV9pbml0aWFsaXplcnMiLCAiX2RyYWdTdGFydFlfZXh0cmFJbml0aWFsaXplcnMiLCAiX2RyYWdDdXJyZW50WV9kZWNvcmF0b3JzIiwgIl9kcmFnQ3VycmVudFlfaW5pdGlhbGl6ZXJzIiwgIl9kcmFnQ3VycmVudFlfZXh0cmFJbml0aWFsaXplcnMiLCAiX3RhcmdldEluZGV4X2RlY29yYXRvcnMiLCAiX3RhcmdldEluZGV4X2luaXRpYWxpemVycyIsICJfdGFyZ2V0SW5kZXhfZXh0cmFJbml0aWFsaXplcnMiLCAiX2l0ZW1IZWlnaHRfZGVjb3JhdG9ycyIsICJfaXRlbUhlaWdodF9pbml0aWFsaXplcnMiLCAiX2l0ZW1IZWlnaHRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI3ZhbHVlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI3BsYWNlaG9sZGVyX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI21heEl0ZW1zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI21pbkl0ZW1zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2FsbG93RHVwbGljYXRlc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzb3J0YWJsZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNjb25maXJtRGVsZXRlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3ZhbGlkYXRpb25UZXh0X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2lucHV0VmFsdWVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZWRpdGluZ0luZGV4X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2VkaXRpbmdWYWx1ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNkcmFnZ2VkSW5kZXhfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZHJhZ092ZXJJbmRleF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNkcmFnU3RhcnRZX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2RyYWdDdXJyZW50WV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN0YXJnZXRJbmRleF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpdGVtSGVpZ2h0X2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgIml0ZW0iLCAiaW5kZXgiLCAiZSIsICJ0cmltbWVkVmFsdWUiLCAiaW5wdXQiLCAibmV3VmFsdWUiLCAiXyIsICJtZXNzYWdlIiwgImVtcHR5SW1nIiwgImxpc3RJdGVtcyIsICJhbGxJdGVtcyIsICJpdGVtcyIsICJkcmFnZ2VkRWxlbWVudCIsICJkZWx0YVkiLCAiZHJhZ2dlZFJlY3QiLCAiZHJhZ2dlZENlbnRlciIsICJuZXdUYXJnZXRJbmRleCIsICJyZWN0IiwgIml0ZW1DZW50ZXIiLCAiZHJhZ2dlZElkeCIsICJ0YXJnZXRJZHgiLCAiaGFuZGxlZCIsICJvblJldHVybiIsICJ0YXJnZXRSZWN0IiwgImZpbmFsWSIsICJvblRyYW5zaXRpb25FbmQiLCAiZHJhZ2dlZEl0ZW0iLCAiZnJlc2hJdGVtcyIsICJkcm9wSW5kZXgiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiaSIsICJlIiwgIm91dHB1dCIsICJpbml0X2Rpc3RfdHMiLCAicmljaHRleHRTdHlsZXMiLCAiRGVlc0lucHV0QmFzZSIsICJjc3NNYW5hZ2VyIiwgImkiLCAiaW5pdF9kaXN0X3RzIiwgInJlbmRlclJpY2h0ZXh0IiwgImNvbXBvbmVudCIsICJiIiwgImluaXRfZGVlc19pY29uIiwgImluaXRfZGlzdF90cyIsICJpbml0X3NlcnZpY2VzIiwgIkRlZXNJbnB1dFJpY2h0ZXh0IiwgInQiLCAiRGVlc0lucHV0QmFzZSIsICJfY2xhc3NTdXBlciIsICJuIiwgInIiLCAiX19lc0RlY29yYXRlIiwgIl92YWx1ZV9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX3ZhbHVlX2luaXRpYWxpemVycyIsICJfdmFsdWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3BsYWNlaG9sZGVyX2RlY29yYXRvcnMiLCAiX3BsYWNlaG9sZGVyX2luaXRpYWxpemVycyIsICJfcGxhY2Vob2xkZXJfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Nob3dXb3JkQ291bnRfZGVjb3JhdG9ycyIsICJfc2hvd1dvcmRDb3VudF9pbml0aWFsaXplcnMiLCAiX3Nob3dXb3JkQ291bnRfZXh0cmFJbml0aWFsaXplcnMiLCAiX21pbkhlaWdodF9kZWNvcmF0b3JzIiwgIl9taW5IZWlnaHRfaW5pdGlhbGl6ZXJzIiwgIl9taW5IZWlnaHRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Nob3dMaW5rSW5wdXRfZGVjb3JhdG9ycyIsICJfc2hvd0xpbmtJbnB1dF9pbml0aWFsaXplcnMiLCAiX3Nob3dMaW5rSW5wdXRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3dvcmRDb3VudF9kZWNvcmF0b3JzIiwgIl93b3JkQ291bnRfaW5pdGlhbGl6ZXJzIiwgIl93b3JkQ291bnRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI3ZhbHVlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI3BsYWNlaG9sZGVyX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3Nob3dXb3JkQ291bnRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWluSGVpZ2h0X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3Nob3dMaW5rSW5wdXRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjd29yZENvdW50X2FjY2Vzc29yX3N0b3JhZ2UiLCAicmljaHRleHRTdHlsZXMiLCAicmVuZGVyUmljaHRleHQiLCAiYnV0dG9ucyIsICJiIiwgImJ1dHRvbiIsICJEZWVzU2VydmljZUxpYkxvYWRlciIsICJFZGl0b3IiLCAiU3RhcnRlcktpdCIsICJVbmRlcmxpbmUiLCAiVGV4dEFsaWduIiwgIkxpbmsiLCAiVHlwb2dyYXBoeSIsICJlZGl0b3IiLCAidGV4dCIsICJocmVmIiwgInVybCIsICJlIiwgImluaXRfZGlzdF90cyIsICJfYSIsICJkZW1vRnVuYyIsICJiIiwgIl9fdGVtcGxhdGUiLCAiaSIsICJlIiwgInByZXZpZXciLCAidGFncyIsICJ0YWciLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfZGVlc19pY29uIiwgImluaXRfdGhlbWUiLCAiRGVlc0lucHV0VGFncyIsICJ0IiwgIkRlZXNJbnB1dEJhc2UiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfdmFsdWVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl92YWx1ZV9pbml0aWFsaXplcnMiLCAiX3ZhbHVlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9wbGFjZWhvbGRlcl9kZWNvcmF0b3JzIiwgIl9wbGFjZWhvbGRlcl9pbml0aWFsaXplcnMiLCAiX3BsYWNlaG9sZGVyX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9tYXhUYWdzX2RlY29yYXRvcnMiLCAiX21heFRhZ3NfaW5pdGlhbGl6ZXJzIiwgIl9tYXhUYWdzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zdWdnZXN0aW9uc19kZWNvcmF0b3JzIiwgIl9zdWdnZXN0aW9uc19pbml0aWFsaXplcnMiLCAiX3N1Z2dlc3Rpb25zX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9pbnB1dFZhbHVlX2RlY29yYXRvcnMiLCAiX2lucHV0VmFsdWVfaW5pdGlhbGl6ZXJzIiwgIl9pbnB1dFZhbHVlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zaG93U3VnZ2VzdGlvbnNfZGVjb3JhdG9ycyIsICJfc2hvd1N1Z2dlc3Rpb25zX2luaXRpYWxpemVycyIsICJfc2hvd1N1Z2dlc3Rpb25zX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleF9kZWNvcmF0b3JzIiwgIl9oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleF9pbml0aWFsaXplcnMiLCAiX2hpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl92YWxpZGF0aW9uVGV4dF9kZWNvcmF0b3JzIiwgIl92YWxpZGF0aW9uVGV4dF9pbml0aWFsaXplcnMiLCAiX3ZhbGlkYXRpb25UZXh0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiN2YWx1ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNwbGFjZWhvbGRlcl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtYXhUYWdzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3N1Z2dlc3Rpb25zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2lucHV0VmFsdWVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2hvd1N1Z2dlc3Rpb25zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2hpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3ZhbGlkYXRpb25UZXh0X2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJmaWx0ZXJlZFN1Z2dlc3Rpb25zIiwgInN1Z2dlc3Rpb24iLCAiYiIsICJ0YWciLCAiZSIsICJpbmRleCIsICJpbnB1dCIsICJmaWx0ZXJlZENvdW50IiwgInMiLCAiaW5pdF9kaXN0X3RzIiwgImdlbmVyYXRlUmVwb3J0QmxvY2tzIiwgInRpbWVzdGFtcCIsICJnZW5lcmF0ZVJlY2lwZUJsb2NrcyIsICJpbml0aWFsaXplRWRpdG9ycyIsICJjb250YWluZXIiLCAiZWRpdG9ycyIsICJzZXR1cFByb2dyYW1tYXRpY0RlbW8iLCAiZWRpdG9yIiwgInJlcG9ydEJ0biIsICJyZWNpcGVCdG4iLCAiY2xlYXJCdG4iLCAic2V0dXBFeHBvcnREZW1vIiwgImV4cG9ydEJsb2Nrc0J0biIsICJleHBvcnRIdG1sQnRuIiwgImV4cG9ydE1hcmtkb3duQnRuIiwgInNhdmVTdGF0ZUJ0biIsICJyZXN0b3JlU3RhdGVCdG4iLCAic2F2ZWRTdGF0ZSIsICJibG9ja3MiLCAiaHRtbCIsICJtYXJrZG93biIsICJzZXR1cE91dHB1dEZvcm1hdERlbW8iLCAiaHRtbEVkaXRvciIsICJtYXJrZG93bkVkaXRvciIsICJodG1sQnRuIiwgImh0bWxQcmV2aWV3IiwgIm1hcmtkb3duQnRuIiwgIm1hcmtkb3duUHJldmlldyIsICJwb3B1bGF0ZUluaXRpYWxDb250ZW50IiwgImFydGljbGVCbG9ja3MiLCAiZHJhZ0Jsb2NrcyIsICJkZW1vRnVuYyIsICJiIiwgImVsZW1lbnRBcmciLCAicmVzb2x2ZSIsICJpIiwgIld5c2l3eWdTaG9ydGN1dHMiLCAiY29udGVudCIsICJwYXR0ZXJuIiwgInR5cGUiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfZGVlc19pY29uIiwgImluaXRfdGhlbWUiLCAiRGVlc1NsYXNoTWVudSIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgInIiLCAiX19lc0RlY29yYXRlIiwgIl92aXNpYmxlX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfdmlzaWJsZV9pbml0aWFsaXplcnMiLCAiX3Zpc2libGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Bvc2l0aW9uX2RlY29yYXRvcnMiLCAiX3Bvc2l0aW9uX2luaXRpYWxpemVycyIsICJfcG9zaXRpb25fZXh0cmFJbml0aWFsaXplcnMiLCAiX2ZpbHRlcl9kZWNvcmF0b3JzIiwgIl9maWx0ZXJfaW5pdGlhbGl6ZXJzIiwgIl9maWx0ZXJfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkSW5kZXhfZGVjb3JhdG9ycyIsICJfc2VsZWN0ZWRJbmRleF9pbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkSW5kZXhfZXh0cmFJbml0aWFsaXplcnMiLCAiX21lbnVaSW5kZXhfZGVjb3JhdG9ycyIsICJfbWVudVpJbmRleF9pbml0aWFsaXplcnMiLCAiX21lbnVaSW5kZXhfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiI3Zpc2libGVfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjcG9zaXRpb25fYWNjZXNzb3Jfc3RvcmFnZSIsICIjZmlsdGVyX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3NlbGVjdGVkSW5kZXhfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWVudVpJbmRleF9hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYiIsICJtZW51SXRlbXMiLCAiaXRlbSIsICJpbmRleCIsICJXeXNpd3lnU2hvcnRjdXRzIiwgInR5cGUiLCAicG9zaXRpb24iLCAiY2FsbGJhY2siLCAiekluZGV4UmVnaXN0cnkiLCAiZmlsdGVyIiwgImRpcmVjdGlvbiIsICJpdGVtcyIsICJlIiwgIm1lbnUiLCAibWVudUl0ZW0iLCAiaXRlbVR5cGUiLCAiV3lzaXd5Z1NlbGVjdGlvbiIsICJzaGFkb3dSb290cyIsICJzZWxlY3Rpb24iLCAicmFuZ2VzIiwgInJhbmdlIiwgImVycm9yIiwgImVsZW1lbnQiLCAic2hhZG93Um9vdCIsICJzZWxlY3Rpb25JbmZvIiwgImluZm8iLCAidGV4dCIsICJzZWxlY3Rpb25UZXh0IiwgIngiLCAieSIsICJjb250YWluZXIiLCAiY2FyZXRQb3MiLCAibm9kZSIsICJvZmZzZXQiLCAidG90YWxPZmZzZXQiLCAiZm91bmQiLCAid2Fsa2VyIiwgInRleHROb2RlIiwgInBvc2l0aW9uIiwgImN1cnJlbnRQb3NpdGlvbiIsICJ0YXJnZXROb2RlIiwgInRhcmdldE9mZnNldCIsICJub2RlTGVuZ3RoIiwgImN1cnJlbnQiLCAiaW5pdF9kaXN0X3RzIiwgIld5c2l3eWdGb3JtYXR0aW5nIiwgInBvc2l0aW9uIiwgIm9uRm9ybWF0IiwgImIiLCAiZSIsICJidXR0b24iLCAiY29tbWFuZCIsICJ2YWx1ZSIsICJyYW5nZSIsICJzaGFkb3dSb290cyIsICJ3b3JraW5nUmFuZ2UiLCAic2VsZWN0aW9uIiwgIld5c2l3eWdTZWxlY3Rpb24iLCAidGFnTmFtZSIsICJ3cmFwcGVyIiwgImNvbnRlbnRzIiwgIm5vZGUiLCAidGVtcERpdiIsICJleHBhbmRlZFJhbmdlIiwgInN0YXJ0Tm9kZSIsICJzdGFydFRhZyIsICJlbmROb2RlIiwgImVuZFRhZyIsICJmcmFnbWVudCIsICJwcm9jZXNzZWRGcmFnbWVudCIsICJ0ZXh0Tm9kZXMiLCAid2Fsa2VyIiwgIm5ld1JhbmdlIiwgInRhZ3MiLCAidGFnIiwgInBhcmVudCIsICJuZXdGcmFnbWVudCIsICJ1cmwiLCAibGluayIsICJzZWxlY3Rpb25JbmZvIiwgInJlY3QiLCAidGVtcFNwYW4iLCAic3BhblJlY3QiLCAiY29vcmRzIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNGb3JtYXR0aW5nTWVudSIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgInIiLCAiX19lc0RlY29yYXRlIiwgIl92aXNpYmxlX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfdmlzaWJsZV9pbml0aWFsaXplcnMiLCAiX3Zpc2libGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Bvc2l0aW9uX2RlY29yYXRvcnMiLCAiX3Bvc2l0aW9uX2luaXRpYWxpemVycyIsICJfcG9zaXRpb25fZXh0cmFJbml0aWFsaXplcnMiLCAiX21lbnVaSW5kZXhfZGVjb3JhdG9ycyIsICJfbWVudVpJbmRleF9pbml0aWFsaXplcnMiLCAiX21lbnVaSW5kZXhfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiI3Zpc2libGVfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjcG9zaXRpb25fYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWVudVpJbmRleF9hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYiIsICJXeXNpd3lnRm9ybWF0dGluZyIsICJidXR0b24iLCAiY29tbWFuZCIsICJwb3NpdGlvbiIsICJjYWxsYmFjayIsICJ6SW5kZXhSZWdpc3RyeSIsICJlIiwgIm1lbnUiLCAiaW5pdF9kaXN0X3RzIiwgIlBST0dSQU1NSU5HX0xBTkdVQUdFUyIsICJpbml0X2Rpc3RfdHMiLCAid3lzaXd5Z1N0eWxlcyIsICJpIiwgImNzc01hbmFnZXIiLCAiV3lzaXd5Z0NvbnZlcnRlcnMiLCAidGV4dCIsICJkaXYiLCAiYnl0ZXMiLCAiayIsICJzaXplcyIsICJibG9ja3MiLCAiYmxvY2siLCAiY29udGVudCIsICJpdGVtcyIsICJpdGVtIiwgImxpc3RUYWciLCAiaW1hZ2VVcmwiLCAiYWx0VGV4dCIsICJ2aWRlb0lkIiwgImZpbGVzIiwgImZpbGUiLCAiaHRtbCIsICJpbmRleCIsICJ1cmwiLCAibWQiLCAiZG9jIiwgInByb2Nlc3NOb2RlIiwgIm5vZGUiLCAiZWxlbWVudCIsICJ0YWdOYW1lIiwgImxpIiwgImltZ0VsZW1lbnQiLCAiY2hpbGQiLCAibWFya2Rvd24iLCAibGluZXMiLCAiY3VycmVudExpc3RJdGVtcyIsICJpIiwgImxpbmUiLCAiY29kZUxpbmVzIiwgIm1hdGNoIiwgImluaXRfZGlzdF90cyIsICJXeXNpd3lnQmxvY2tzIiwgImNvbnRlbnQiLCAibWV0YWRhdGEiLCAiaXRlbXMiLCAiaXRlbSIsICJsaXN0VGFnIiwgImJsb2NrIiwgImlzU2VsZWN0ZWQiLCAiaGFuZGxlcnMiLCAiYiIsICJlIiwgImxhbmd1YWdlIiwgImVsZW1lbnQiLCAic2VsIiwgInJhbmdlIiwgInRleHROb2RlIiwgImxhc3ROb2RlIiwgImZpcnN0Tm9kZSIsICJsYXN0Q2hpbGQiLCAiZmlyc3RDaGlsZCIsICJsaXN0RWxlbWVudCIsICJmaXJzdExpIiwgIld5c2l3eWdCbG9ja09wZXJhdGlvbnMiLCAiY29tcG9uZW50IiwgInR5cGUiLCAiY29udGVudCIsICJtZXRhZGF0YSIsICJXeXNpd3lnU2hvcnRjdXRzIiwgImFmdGVyQmxvY2siLCAibmV3QmxvY2siLCAiZm9jdXNOZXdCbG9jayIsICJibG9ja3MiLCAiYmxvY2tJbmRleCIsICJiIiwgImFmdGVyV3JhcHBlciIsICJuZXdXcmFwcGVyIiwgInJlc29sdmUiLCAiYmxvY2tJZCIsICJ3cmFwcGVyIiwgImN1cnNvclBvc2l0aW9uIiwgIndyYXBwZXJFbGVtZW50IiwgImJsb2NrQ29tcG9uZW50IiwgImJsb2NrIiwgIm5ld1R5cGUiLCAidGFyZ2V0SW5kZXgiLCAiY3VycmVudEluZGV4IiwgIm1vdmVkQmxvY2siLCAiaW5kZXgiLCAiQmFzZUJsb2NrSGFuZGxlciIsICJlbGVtZW50IiwgImJsb2NrIiwgImhhbmRsZXJzIiwgIkJsb2NrUmVnaXN0cnkiLCAidHlwZSIsICJoYW5kbGVyIiwgImluaXRfZGlzdF90cyIsICJQYXJhZ3JhcGhCbG9ja0hhbmRsZXIiLCAiQmFzZUJsb2NrSGFuZGxlciIsICJibG9jayIsICJpc1NlbGVjdGVkIiwgInNlbGVjdGVkQ2xhc3MiLCAicGxhY2Vob2xkZXIiLCAiZWxlbWVudCIsICJoYW5kbGVycyIsICJwYXJhZ3JhcGhCbG9jayIsICJlIiwgInBvcyIsICJjaGVja1NlbGVjdGlvbiIsICJzZWxlY3Rpb24iLCAic2VsZWN0ZWRUZXh0IiwgInd5c2l3eWdCbG9jayIsICJwYXJlbnRTaGFkb3dSb290IiwgImJsb2NrU2hhZG93Um9vdCIsICJzaGFkb3dSb290cyIsICJzZWxlY3Rpb25JbmZvIiwgIld5c2l3eWdTZWxlY3Rpb24iLCAic3RhcnRJbkJsb2NrIiwgImVuZEluQmxvY2siLCAicmFuZ2UiLCAicmVjdCIsICJvcmlnaW5hbERpc2Nvbm5lY3RlZENhbGxiYWNrIiwgImRldGFpbCIsICJldmVudCIsICJpIiwgImxhc3RUZXh0IiwgImNvbnRleHQiLCAicHJlQ2FyZXRSYW5nZSIsICJjb250ZW50IiwgImhhZEZvY3VzIiwgIld5c2l3eWdCbG9ja3MiLCAicG9zaXRpb24iLCAic2VsIiwgImxhc3ROb2RlIiwgInNldEN1cnNvciIsICJmdWxsVGV4dCIsICJjdXJzb3JQb3MiLCAiYmVmb3JlUmFuZ2UiLCAiYWZ0ZXJSYW5nZSIsICJiZWZvcmVGcmFnbWVudCIsICJhZnRlckZyYWdtZW50IiwgInRlbXBEaXYiLCAiYmVmb3JlSHRtbCIsICJhZnRlckh0bWwiLCAiaW5pdF9kaXN0X3RzIiwgIkhlYWRpbmdCbG9ja0hhbmRsZXIiLCAiQmFzZUJsb2NrSGFuZGxlciIsICJ0eXBlIiwgImJsb2NrIiwgImlzU2VsZWN0ZWQiLCAic2VsZWN0ZWRDbGFzcyIsICJwbGFjZWhvbGRlciIsICJlbGVtZW50IiwgImhhbmRsZXJzIiwgImhlYWRpbmdCbG9jayIsICJlIiwgInBvcyIsICJjaGVja1NlbGVjdGlvbiIsICJzZWxlY3Rpb24iLCAic2VsZWN0ZWRUZXh0IiwgInd5c2l3eWdCbG9jayIsICJwYXJlbnRTaGFkb3dSb290IiwgImJsb2NrU2hhZG93Um9vdCIsICJzaGFkb3dSb290cyIsICJzZWxlY3Rpb25JbmZvIiwgIld5c2l3eWdTZWxlY3Rpb24iLCAic3RhcnRJbkJsb2NrIiwgImVuZEluQmxvY2siLCAicmFuZ2UiLCAicmVjdCIsICJvcmlnaW5hbERpc2Nvbm5lY3RlZENhbGxiYWNrIiwgImRldGFpbCIsICJldmVudCIsICJjc3NNYW5hZ2VyIiwgImkiLCAibGFzdFRleHQiLCAiY29udGV4dCIsICJwcmVDYXJldFJhbmdlIiwgImNvbnRlbnQiLCAiaGFkRm9jdXMiLCAiV3lzaXd5Z0Jsb2NrcyIsICJwb3NpdGlvbiIsICJzZWwiLCAibGFzdE5vZGUiLCAic2V0Q3Vyc29yIiwgImZ1bGxUZXh0IiwgImN1cnNvclBvcyIsICJiZWZvcmVSYW5nZSIsICJhZnRlclJhbmdlIiwgImJlZm9yZUZyYWdtZW50IiwgImFmdGVyRnJhZ21lbnQiLCAidGVtcERpdiIsICJiZWZvcmVIdG1sIiwgImFmdGVySHRtbCIsICJpbml0X2Rpc3RfdHMiLCAiUXVvdGVCbG9ja0hhbmRsZXIiLCAiQmFzZUJsb2NrSGFuZGxlciIsICJibG9jayIsICJpc1NlbGVjdGVkIiwgInNlbGVjdGVkQ2xhc3MiLCAicGxhY2Vob2xkZXIiLCAiZWxlbWVudCIsICJoYW5kbGVycyIsICJxdW90ZUJsb2NrIiwgImUiLCAicG9zIiwgImNoZWNrU2VsZWN0aW9uIiwgInNlbGVjdGlvbiIsICJzZWxlY3RlZFRleHQiLCAid3lzaXd5Z0Jsb2NrIiwgInBhcmVudFNoYWRvd1Jvb3QiLCAiYmxvY2tTaGFkb3dSb290IiwgInNoYWRvd1Jvb3RzIiwgInNlbGVjdGlvbkluZm8iLCAiV3lzaXd5Z1NlbGVjdGlvbiIsICJzdGFydEluQmxvY2siLCAiZW5kSW5CbG9jayIsICJyYW5nZSIsICJyZWN0IiwgIm9yaWdpbmFsRGlzY29ubmVjdGVkQ2FsbGJhY2siLCAiZGV0YWlsIiwgImV2ZW50IiwgImNzc01hbmFnZXIiLCAiY29udGV4dCIsICJwcmVDYXJldFJhbmdlIiwgImNvbnRlbnQiLCAiaGFkRm9jdXMiLCAiV3lzaXd5Z0Jsb2NrcyIsICJwb3NpdGlvbiIsICJzZXRDdXJzb3IiLCAiZnVsbFRleHQiLCAiY3Vyc29yUG9zIiwgImJlZm9yZVJhbmdlIiwgImFmdGVyUmFuZ2UiLCAiYmVmb3JlRnJhZ21lbnQiLCAiYWZ0ZXJGcmFnbWVudCIsICJ0ZW1wRGl2IiwgImJlZm9yZUh0bWwiLCAiYWZ0ZXJIdG1sIiwgImluaXRfZGlzdF90cyIsICJpbml0X3NlcnZpY2VzIiwgIkNvZGVCbG9ja0hhbmRsZXIiLCAiQmFzZUJsb2NrSGFuZGxlciIsICJibG9jayIsICJpc1NlbGVjdGVkIiwgImxhbmd1YWdlIiwgImNvbnRlbnQiLCAibGluZUNvdW50IiwgImxpbmVOdW1iZXJzSHRtbCIsICJpIiwgImxhbmd1YWdlT3B0aW9ucyIsICJQUk9HUkFNTUlOR19MQU5HVUFHRVMiLCAibGFuZyIsICJ2YWx1ZSIsICJlbGVtZW50IiwgImhhbmRsZXJzIiwgImVkaXRvciIsICJjb250YWluZXIiLCAiY29weUJ1dHRvbiIsICJsYW5ndWFnZVNlbGVjdG9yIiwgImUiLCAibmV3TGFuZ3VhZ2UiLCAiY29weVRleHQiLCAib3JpZ2luYWxUZXh0IiwgImVyciIsICJ0ZXh0QXJlYSIsICJpc0VkaXRpbmciLCAicmFuZ2UiLCAic2VsZWN0aW9uIiwgInRleHROb2RlIiwgImN1cnNvclBvcyIsICJ0ZXh0TGVuZ3RoIiwgImxpbmVzIiwgImN1cnJlbnRMaW5lIiwgInRleHQiLCAibGluZU51bWJlcnNDb250YWluZXIiLCAicHJlQ2FyZXRSYW5nZSIsICJEZWVzU2VydmljZUxpYkxvYWRlciIsICJyZXN1bHQiLCAiV3lzaXd5Z1NlbGVjdGlvbiIsICJlcnJvciIsICJkaXYiLCAibGVuZ3RoIiwgInBvc2l0aW9uIiwgImNzc01hbmFnZXIiLCAiY3NzR2Vpc3RGb250RmFtaWx5IiwgImNzc01vbm9Gb250RmFtaWx5IiwgImluaXRfZGlzdF90cyIsICJMaXN0QmxvY2tIYW5kbGVyIiwgIkJhc2VCbG9ja0hhbmRsZXIiLCAiYmxvY2siLCAiaXNTZWxlY3RlZCIsICJzZWxlY3RlZENsYXNzIiwgImxpc3RUYWciLCAibGlzdENvbnRlbnQiLCAiY29udGVudCIsICJtZXRhZGF0YSIsICJsaW5lcyIsICJsaW5lIiwgImxpc3RJdGVtcyIsICJlbGVtZW50IiwgImhhbmRsZXJzIiwgImxpc3RCbG9jayIsICJlIiwgInBvcyIsICJzZWxlY3Rpb24iLCAiY3VycmVudExpIiwgImNoZWNrU2VsZWN0aW9uIiwgInNlbGVjdGVkVGV4dCIsICJ3eXNpd3lnQmxvY2siLCAicGFyZW50U2hhZG93Um9vdCIsICJibG9ja1NoYWRvd1Jvb3QiLCAic2hhZG93Um9vdHMiLCAic2VsZWN0aW9uSW5mbyIsICJXeXNpd3lnU2VsZWN0aW9uIiwgInN0YXJ0SW5CbG9jayIsICJlbmRJbkJsb2NrIiwgInJhbmdlIiwgInJlY3QiLCAib3JpZ2luYWxEaXNjb25uZWN0ZWRDYWxsYmFjayIsICJkZXRhaWwiLCAiZXZlbnQiLCAiY29udGV4dCIsICJwcmVDYXJldFJhbmdlIiwgImxpIiwgImhhZEZvY3VzIiwgImlzT3JkZXJlZCIsICJmaXJzdExpIiwgInRleHROb2RlIiwgImxhc3RMaSIsICJ0ZXh0TGVuZ3RoIiwgImkiLCAiZmlyc3RUZXh0IiwgImxhc3RUZXh0IiwgInBvc2l0aW9uIiwgInNldEN1cnNvciIsICJpbml0X2Rpc3RfdHMiLCAiSW1hZ2VCbG9ja0hhbmRsZXIiLCAiQmFzZUJsb2NrSGFuZGxlciIsICJibG9jayIsICJpc1NlbGVjdGVkIiwgImltYWdlVXJsIiwgImFsdFRleHQiLCAiaXNMb2FkaW5nIiwgInVybCIsICJlbGVtZW50IiwgImhhbmRsZXJzIiwgImNvbnRhaW5lciIsICJmaWxlSW5wdXQiLCAicGxhY2Vob2xkZXIiLCAiZSIsICJmaWxlIiwgIm1heFNpemUiLCAiZGF0YVVybCIsICJuYW1lV2l0aG91dEV4dCIsICJlcnJvciIsICJyZXNvbHZlIiwgInJlamVjdCIsICJyZWFkZXIiLCAicmVzdWx0IiwgInRleHQiLCAiZGl2IiwgImNvbnRlbnQiLCAiYmxvY2tJZCIsICJwb3NpdGlvbiIsICJjc3NNYW5hZ2VyIiwgImluaXRfZGlzdF90cyIsICJZb3VUdWJlQmxvY2tIYW5kbGVyIiwgIkJhc2VCbG9ja0hhbmRsZXIiLCAiYmxvY2siLCAiaXNTZWxlY3RlZCIsICJ2aWRlb0lkIiwgInVybCIsICJlbGVtZW50IiwgImhhbmRsZXJzIiwgImNvbnRhaW5lciIsICJlIiwgInVybElucHV0IiwgImVtYmVkQnRuIiwgInBhc3RlZFVybCIsICJwYXR0ZXJucyIsICJwYXR0ZXJuIiwgIm1hdGNoIiwgInRleHQiLCAiZGl2IiwgImNvbnRlbnQiLCAiYmxvY2tJZCIsICJwb3NpdGlvbiIsICJjc3NNYW5hZ2VyIiwgImluaXRfZGlzdF90cyIsICJBdHRhY2htZW50QmxvY2tIYW5kbGVyIiwgIkJhc2VCbG9ja0hhbmRsZXIiLCAiYmxvY2siLCAiaXNTZWxlY3RlZCIsICJmaWxlcyIsICJmaWxlIiwgImVsZW1lbnQiLCAiaGFuZGxlcnMiLCAiY29udGFpbmVyIiwgImZpbGVJbnB1dCIsICJwbGFjZWhvbGRlciIsICJlIiwgImFkZE1vcmVCdG4iLCAiaW5wdXQiLCAidGFyZ2V0IiwgImZpbGVJZCIsICJkYXRhVXJsIiwgImZpbGVEYXRhIiwgImVycm9yIiwgImYiLCAicmVzb2x2ZSIsICJyZWplY3QiLCAicmVhZGVyIiwgInJlc3VsdCIsICJtaW1lVHlwZSIsICJieXRlcyIsICJrIiwgInNpemVzIiwgInRleHQiLCAiZGl2IiwgImNvbnRlbnQiLCAiYmxvY2tJZCIsICJwb3NpdGlvbiIsICJjc3NNYW5hZ2VyIiwgImluaXRfZGlzdF90cyIsICJEaXZpZGVyQmxvY2tIYW5kbGVyIiwgIkJhc2VCbG9ja0hhbmRsZXIiLCAiYmxvY2siLCAiaXNTZWxlY3RlZCIsICJlbGVtZW50IiwgImhhbmRsZXJzIiwgImRpdmlkZXJCbG9jayIsICJlIiwgImNzc01hbmFnZXIiLCAiaW5pdF9kaXN0X3RzIiwgIk1hcmtkb3duQmxvY2tIYW5kbGVyIiwgIkJhc2VCbG9ja0hhbmRsZXIiLCAiYmxvY2siLCAiaXNTZWxlY3RlZCIsICJpc0VkaXRNb2RlIiwgImNvbnRlbnQiLCAiZWxlbWVudCIsICJoYW5kbGVycyIsICJjb250YWluZXIiLCAidG9nZ2xlQnRuIiwgImUiLCAiZWRpdG9yIiwgInN0YXJ0IiwgImVuZCIsICJ2YWx1ZSIsICJsaW5lU3RhcnQiLCAibGluZUNvbnRlbnQiLCAicHJldmlldyIsICJiZWZvcmUiLCAiYWZ0ZXIiLCAic2VsZWN0ZWRUZXh0IiwgInJlcGxhY2VtZW50IiwgImxpbmtUZXh0IiwgIm1hcmtkb3duIiwgImh0bWwiLCAibWF0Y2giLCAidGV4dCIsICJkaXYiLCAiYmxvY2tJZCIsICJsZW5ndGgiLCAicG9zaXRpb24iLCAiY3Vyc29yUG9zIiwgImNzc01hbmFnZXIiLCAiaW5pdF9kaXN0X3RzIiwgIkh0bWxCbG9ja0hhbmRsZXIiLCAiQmFzZUJsb2NrSGFuZGxlciIsICJibG9jayIsICJpc1NlbGVjdGVkIiwgImlzRWRpdE1vZGUiLCAiY29udGVudCIsICJlbGVtZW50IiwgImhhbmRsZXJzIiwgImNvbnRhaW5lciIsICJ0b2dnbGVCdG4iLCAiZSIsICJlZGl0b3IiLCAic3RhcnQiLCAiZW5kIiwgInZhbHVlIiwgImxpbmVTdGFydCIsICJsaW5lQ29udGVudCIsICJwcmV2aWV3IiwgImN1cnNvclBvcyIsICJ0ZXh0IiwgInRhZ1N0YXJ0IiwgInRhZ01hdGNoIiwgImNsb3NpbmdUYWciLCAiaHRtbCIsICJvcGVuVGFncyIsICJ0YWdSZWdleCIsICJtYXRjaCIsICJpc0Nsb3NpbmciLCAidGFnTmFtZSIsICJzY3JpcHQiLCAiZWwiLCAiYXR0ciIsICJmb3JtIiwgImRpdiIsICJibG9ja0lkIiwgImxlbmd0aCIsICJwb3NpdGlvbiIsICJjc3NNYW5hZ2VyIiwgInJlZ2lzdGVyQWxsQmxvY2tIYW5kbGVycyIsICJCbG9ja1JlZ2lzdHJ5IiwgIkRpdmlkZXJCbG9ja0hhbmRsZXIiLCAiUGFyYWdyYXBoQmxvY2tIYW5kbGVyIiwgIkhlYWRpbmdCbG9ja0hhbmRsZXIiLCAiUXVvdGVCbG9ja0hhbmRsZXIiLCAiQ29kZUJsb2NrSGFuZGxlciIsICJMaXN0QmxvY2tIYW5kbGVyIiwgIkltYWdlQmxvY2tIYW5kbGVyIiwgIllvdVR1YmVCbG9ja0hhbmRsZXIiLCAiQXR0YWNobWVudEJsb2NrSGFuZGxlciIsICJNYXJrZG93bkJsb2NrSGFuZGxlciIsICJIdG1sQmxvY2tIYW5kbGVyIiwgImluaXRfZGlzdF90cyIsICJXeXNpd3lnTW9kYWxNYW5hZ2VyIiwgInJlc29sdmUiLCAic2VsZWN0ZWRMYW5ndWFnZSIsICJEZWVzTW9kYWwiLCAiYiIsICJjc3NNYW5hZ2VyIiwgImxhbmciLCAibW9kYWwiLCAiYmxvY2siLCAib25VcGRhdGUiLCAiY29udGVudCIsICJjdXJyZW50TGFuZ3VhZ2UiLCAiUFJPR1JBTU1JTkdfTEFOR1VBR0VTIiwgImJsb2NrVHlwZXMiLCAiV3lzaXd5Z1Nob3J0Y3V0cyIsICJpdGVtIiwgImUiLCAiYnV0dG9uIiwgIm9sZFR5cGUiLCAibGFuZ3VhZ2UiLCAiV3lzaXd5Z0lucHV0SGFuZGxlciIsICJjb21wb25lbnQiLCAiYmxvY2siLCAidGFyZ2V0IiwgInRleHRDb250ZW50IiwgImRldGVjdGVkVHlwZSIsICJibG9ja0NvbXBvbmVudCIsICJuZXdDb250ZW50IiwgImxpc3RFbGVtZW50IiwgImxpc3RJdGVtcyIsICJsaSIsICJjb250ZW50IiwgImhlYWRpbmdSZXN1bHQiLCAiV3lzaXd5Z1Nob3J0Y3V0cyIsICJsaXN0UmVzdWx0IiwgImJsb2NrT3BzIiwgImxpc3RUYWciLCAiV3lzaXd5Z0Jsb2NrcyIsICJuZXdCbG9jayIsICJsYW5ndWFnZSIsICJXeXNpd3lnTW9kYWxNYW5hZ2VyIiwgInNsYXNoTWVudSIsICJpc1NsYXNoTWVudVZpc2libGUiLCAicmVjdCIsICJ0eXBlIiwgImVsZW1lbnQiLCAic2VsZWN0aW9uIiwgIld5c2l3eWdLZXlib2FyZEhhbmRsZXIiLCAiY29tcG9uZW50IiwgImJsb2NrIiwgImtleSIsICJibG9ja09wcyIsICJuZXdCbG9jayIsICJibG9ja0NvbXBvbmVudCIsICJzcGxpdENvbnRlbnQiLCAic2VsZWN0aW9uIiwgImN1cnJlbnRMaSIsICJwcmV2QmxvY2siLCAibmV4dEJsb2NrIiwgInRhcmdldCIsICJwYXJlbnRDb21wb25lbnQiLCAic2hhZG93Um9vdHMiLCAiY3Vyc29yUG9zIiwgIld5c2l3eWdTZWxlY3Rpb24iLCAiYWN0dWFsQ29udGVudCIsICJwcmV2QmxvY2tDb21wb25lbnQiLCAicHJldkNvbnRlbnQiLCAiY3VycmVudENvbnRlbnQiLCAibWVyZ2VkQ29udGVudCIsICJtZXJnZVBvaW50IiwgIm5vbkVkaXRhYmxlVHlwZXMiLCAidGV4dExlbmd0aCIsICJzZWxlY3Rpb25JbmZvIiwgImVsZW1lbnQiLCAiaSIsICJsYXN0VGV4dCIsICJwb3NpdGlvbiIsICJyYW5nZSIsICJyZWN0IiwgImNvbnRhaW5lciIsICJjb250YWluZXJSZWN0IiwgImlzTmVhclRvcCIsICJlIiwgImlzTmVhckJvdHRvbSIsICJXeXNpd3lnRHJhZ0Ryb3BIYW5kbGVyIiwgImNvbXBvbmVudCIsICJibG9jayIsICJlbXB0eUltZyIsICJyZWN0IiwgImlubmVyQmxvY2siLCAiaW5uZXJSZWN0IiwgImNvbXB1dGVkU3R5bGUiLCAibWlkcG9pbnQiLCAidGFyZ2V0QmxvY2siLCAiYmxvY2tJZCIsICJkZWx0YVkiLCAibm93IiwgIm1vdXNlWSIsICJibG9ja3MiLCAiZHJhZ2dlZEluZGV4IiwgImIiLCAibmV3SW5kZXgiLCAiaSIsICJibG9ja1RvcCIsICJ0YXJnZXRJbmRleCIsICJjb250YWluZXJSZWN0IiwgInRvcFBvc2l0aW9uIiwgInZpc3VhbEJsb2NrcyIsICJ0b3AiLCAiYm90dG9tIiwgInRyYW5zZm9ybSIsICJ5T2Zmc2V0IiwgImEiLCAiYWRqdXN0ZWRUYXJnZXRJbmRleCIsICJibG9ja01hcmdpbiIsICJkcmFnZ2VkQmxvY2siLCAiYmxvY2tUeXBlIiwgImxhc3RCbG9jayIsICJibG9ja0JlZm9yZSIsICJibG9ja0VsZW1lbnRzIiwgImVsIiwgInZpc3VhbE9yZGVyIiwgImlkIiwgImNlbnRlclkiLCAibmV3QmxvY2tJZHMiLCAiaXRlbSIsICJvcmlnaW5hbEJsb2NrcyIsICJvbGRPcmRlciIsICJpbmRleCIsICJuZXdCbG9ja3MiLCAiV3lzaXd5Z0hpc3RvcnkiLCAiYmxvY2tzIiwgInNlbGVjdGVkQmxvY2tJZCIsICJjdXJzb3JQb3NpdGlvbiIsICJub3ciLCAibmV3U3RhdGUiLCAiYmxvY2siLCAic3RhdGUiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiRGVlc1d5c2l3eWdCbG9jayIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9ibG9ja19kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2Jsb2NrX2luaXRpYWxpemVycyIsICJfYmxvY2tfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzU2VsZWN0ZWRfZGVjb3JhdG9ycyIsICJfaXNTZWxlY3RlZF9pbml0aWFsaXplcnMiLCAiX2lzU2VsZWN0ZWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2hhbmRsZXJzX2RlY29yYXRvcnMiLCAiX2hhbmRsZXJzX2luaXRpYWxpemVycyIsICJfaGFuZGxlcnNfZXh0cmFJbml0aWFsaXplcnMiLCAiX3d5c2l3eWdDb21wb25lbnRfZGVjb3JhdG9ycyIsICJfd3lzaXd5Z0NvbXBvbmVudF9pbml0aWFsaXplcnMiLCAiX3d5c2l3eWdDb21wb25lbnRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiI2Jsb2NrX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2lzU2VsZWN0ZWRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjaGFuZGxlcnNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjd3lzaXd5Z0NvbXBvbmVudF9hY2Nlc3Nvcl9zdG9yYWdlIiwgInN0eWxlcyIsICJibG9ja1R5cGVzIiwgIkJsb2NrUmVnaXN0cnkiLCAidHlwZSIsICJoYW5kbGVyIiwgInN0eWxlRWxlbWVudCIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImNoYW5nZWRQcm9wZXJ0aWVzIiwgImVsZW1lbnQiLCAic2VsZWN0b3IiLCAib2xkQmxvY2siLCAiY29udGFpbmVyIiwgImJsb2NrRWxlbWVudCIsICJlZGl0YWJsZUJsb2NrIiwgImUiLCAicG9zIiwgImNoZWNrU2VsZWN0aW9uIiwgInNlbGVjdGlvbiIsICJzZWxlY3RlZFRleHQiLCAiY3VycmVudEVkaXRhYmxlQmxvY2siLCAicGFyZW50U2hhZG93Um9vdCIsICJzaGFkb3dSb290cyIsICJzZWxlY3Rpb25JbmZvIiwgIld5c2l3eWdTZWxlY3Rpb24iLCAic3RhcnRJbkJsb2NrIiwgImVuZEluQmxvY2siLCAicmFuZ2UiLCAicmVjdCIsICJ1IiwgInNlbGVjdGVkQ2xhc3MiLCAiY29udGV4dCIsICJlZGl0YWJsZUVsZW1lbnQiLCAicG9zaXRpb24iLCAic2V0Q3Vyc29yIiwgInByZUNhcmV0UmFuZ2UiLCAiY29udGVudCIsICJoYWRGb2N1cyIsICJXeXNpd3lnQmxvY2tzIiwgIld5c2l3eWdTaG9ydGN1dHMiLCAiY3VycmVudFR5cGUiLCAid3lzaXd5Z0NvbXBvbmVudCIsICJibG9ja0lkIiwgIm1lbnVJdGVtcyIsICJpdGVtIiwgImJsb2NrVG9UcmFuc2Zvcm0iLCAiYiIsICJmdWxsVGV4dCIsICJjdXJzb3JQb3MiLCAiYmVmb3JlUmFuZ2UiLCAiYWZ0ZXJSYW5nZSIsICJiZWZvcmVGcmFnbWVudCIsICJhZnRlckZyYWdtZW50IiwgInRlbXBEaXYiLCAiYmVmb3JlSHRtbCIsICJhZnRlckh0bWwiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiRGVlc0lucHV0V3lzaXd5ZyIsICJ0IiwgIkRlZXNJbnB1dEJhc2UiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfdmFsdWVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl92YWx1ZV9pbml0aWFsaXplcnMiLCAiX3ZhbHVlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9vdXRwdXRGb3JtYXRfZGVjb3JhdG9ycyIsICJfb3V0cHV0Rm9ybWF0X2luaXRpYWxpemVycyIsICJfb3V0cHV0Rm9ybWF0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9ibG9ja3NfZGVjb3JhdG9ycyIsICJfYmxvY2tzX2luaXRpYWxpemVycyIsICJfYmxvY2tzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kcmFnZ2VkQmxvY2tJZF9kZWNvcmF0b3JzIiwgIl9kcmFnZ2VkQmxvY2tJZF9pbml0aWFsaXplcnMiLCAiX2RyYWdnZWRCbG9ja0lkX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kcmFnT3ZlckJsb2NrSWRfZGVjb3JhdG9ycyIsICJfZHJhZ092ZXJCbG9ja0lkX2luaXRpYWxpemVycyIsICJfZHJhZ092ZXJCbG9ja0lkX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kcmFnT3ZlclBvc2l0aW9uX2RlY29yYXRvcnMiLCAiX2RyYWdPdmVyUG9zaXRpb25faW5pdGlhbGl6ZXJzIiwgIl9kcmFnT3ZlclBvc2l0aW9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zZWxlY3RlZFRleHRfZGVjb3JhdG9ycyIsICJfc2VsZWN0ZWRUZXh0X2luaXRpYWxpemVycyIsICJfc2VsZWN0ZWRUZXh0X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiN2YWx1ZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNvdXRwdXRGb3JtYXRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYmxvY2tzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiV3lzaXd5Z1Nob3J0Y3V0cyIsICJEZWVzU2xhc2hNZW51IiwgIiNkcmFnZ2VkQmxvY2tJZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNkcmFnT3ZlckJsb2NrSWRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZHJhZ092ZXJQb3NpdGlvbl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIkRlZXNGb3JtYXR0aW5nTWVudSIsICIjc2VsZWN0ZWRUZXh0X2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAid3lzaXd5Z1N0eWxlcyIsICJXeXNpd3lnQmxvY2tPcGVyYXRpb25zIiwgIld5c2l3eWdJbnB1dEhhbmRsZXIiLCAiV3lzaXd5Z0tleWJvYXJkSGFuZGxlciIsICJXeXNpd3lnRHJhZ0Ryb3BIYW5kbGVyIiwgIld5c2l3eWdIaXN0b3J5IiwgInBhcnNlZEJsb2NrcyIsICJXeXNpd3lnQ29udmVydGVycyIsICJlIiwgImNvb3JkcyIsICJjb21tYW5kIiwgImZvcm1hdHRpbmdNZW51RWxlbWVudCIsICJzZWxlY3Rpb24iLCAidGFyZ2V0IiwgImJsb2NrIiwgImJsb2NrV3JhcHBlciIsICJ3cmFwcGVyIiwgImRyYWdIYW5kbGUiLCAiYmxvY2tDb21wb25lbnQiLCAiYmxvY2tJZCIsICJiIiwgIm5ld1dyYXBwZXIiLCAidSIsICJjbGVhclNsYXNoIiwgImN1cnJlbnRCbG9jayIsICJjb250ZW50IiwgImNsZWFuQ29udGVudCIsICJwcmV2U2VsZWN0ZWRJZCIsICJwcmV2QmxvY2tDb21wb25lbnQiLCAibmV3Q29udGVudCIsICJsYXN0QmxvY2siLCAidHlwZSIsICJtZXRhZGF0YSIsICJhZnRlckJsb2NrIiwgIm5ld0Jsb2NrIiwgImZvY3VzTmV3QmxvY2siLCAiYmxvY2tJbmRleCIsICJhZnRlcldyYXBwZXIiLCAicmVzb2x2ZSIsICJibG9ja3MiLCAic3RhdGUiLCAidGFyZ2V0QmxvY2siLCAiZHJhZ2dlZEluZGV4IiwgInRhcmdldEluZGV4IiwgImRyYWdnZWRCbG9jayIsICJuZXdJbmRleCIsICJtb3ZlZEJsb2NrRWxlbWVudCIsICJfZSIsICJzaGFkb3dSb290cyIsICJXeXNpd3lnRm9ybWF0dGluZyIsICJzZWxlY3Rpb25JbmZvIiwgIld5c2l3eWdTZWxlY3Rpb24iLCAidGFyZ2V0QmxvY2tDb21wb25lbnQiLCAid3JhcHBlcnMiLCAiaSIsICJyYW5nZSIsICJ1cmwiLCAibGlua1VybCIsICJEZWVzTW9kYWwiLCAiaW5wdXQiLCAibW9kYWwiLCAib2tCdXR0b24iLCAiZGVib3VuY2UiLCAiY3Vyc29yUG9zaXRpb24iLCAiZWRpdGFibGVFbGVtZW50IiwgIm9mZnNldCIsICJJbWFnZUNyb3BwZXIiLCAib3B0aW9ucyIsICJyZXNvbHZlIiwgInJlamVjdCIsICJjb250YWluZXIiLCAiY29udGFpbmVyU2l6ZSIsICJzY2FsZSIsICJzY2FsZWRJbWFnZVdpZHRoIiwgInNjYWxlZEltYWdlSGVpZ2h0IiwgIm1heENyb3BTaXplIiwgInJlY3QiLCAieCIsICJ5IiwgImhhbmRsZSIsICJkeCIsICJkeSIsICJtaW5YIiwgIm1heFgiLCAibWluWSIsICJtYXhZIiwgInRvdWNoIiwgIm1vdXNlRXZlbnQiLCAiaGFuZGxlcyIsICJrZXkiLCAicG9zIiwgImltZ0xlZnQiLCAiaW1nVG9wIiwgImltZ1JpZ2h0IiwgImltZ0JvdHRvbSIsICJuZXdTaXplIiwgInNpemVEaWZmIiwgIm5ld1giLCAibmV3WSIsICJuZVNpemVEeCIsICJuZU5ld1NpemUiLCAibmVTaXplRGlmZiIsICJuZU5ld1kiLCAic3dTaXplRHgiLCAic3dOZXdTaXplIiwgInN3U2l6ZURpZmYiLCAic3dOZXdYIiwgImNyb3BDYW52YXMiLCAiY3JvcEN0eCIsICJvcmlnaW5hbENyb3BTaXplIiwgIm91dHB1dFNpemUiLCAic3giLCAic3kiLCAic1NpemUiLCAiZm9ybWF0IiwgImluaXRfZGlzdF90cyIsICJpbml0X2RlZXNfaWNvbiIsICJpbml0X3RoZW1lIiwgIlByb2ZpbGVQaWN0dXJlTW9kYWwiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgInIiLCAiX19lc0RlY29yYXRlIiwgIl9pbml0aWFsSW1hZ2VfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9pbml0aWFsSW1hZ2VfaW5pdGlhbGl6ZXJzIiwgIl9pbml0aWFsSW1hZ2VfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NoYXBlX2RlY29yYXRvcnMiLCAiX3NoYXBlX2luaXRpYWxpemVycyIsICJfc2hhcGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX291dHB1dFNpemVfZGVjb3JhdG9ycyIsICJfb3V0cHV0U2l6ZV9pbml0aWFsaXplcnMiLCAiX291dHB1dFNpemVfZXh0cmFJbml0aWFsaXplcnMiLCAiX291dHB1dFF1YWxpdHlfZGVjb3JhdG9ycyIsICJfb3V0cHV0UXVhbGl0eV9pbml0aWFsaXplcnMiLCAiX291dHB1dFF1YWxpdHlfZXh0cmFJbml0aWFsaXplcnMiLCAiX2N1cnJlbnRTdGVwX2RlY29yYXRvcnMiLCAiX2N1cnJlbnRTdGVwX2luaXRpYWxpemVycyIsICJfY3VycmVudFN0ZXBfZXh0cmFJbml0aWFsaXplcnMiLCAiX2Nyb3BwZWRJbWFnZV9kZWNvcmF0b3JzIiwgIl9jcm9wcGVkSW1hZ2VfaW5pdGlhbGl6ZXJzIiwgIl9jcm9wcGVkSW1hZ2VfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzUHJvY2Vzc2luZ19kZWNvcmF0b3JzIiwgIl9pc1Byb2Nlc3NpbmdfaW5pdGlhbGl6ZXJzIiwgIl9pc1Byb2Nlc3NpbmdfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiI2luaXRpYWxJbWFnZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNzaGFwZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNvdXRwdXRTaXplX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI291dHB1dFF1YWxpdHlfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY3VycmVudFN0ZXBfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY3JvcHBlZEltYWdlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2lzUHJvY2Vzc2luZ19hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiY3NzR2Vpc3RGb250RmFtaWx5IiwgIkRlZXNXaW5kb3dMYXllciIsICJ6SW5kZXhSZWdpc3RyeSIsICJiIiwgImUiLCAiY29udGFpbmVyIiwgIkltYWdlQ3JvcHBlciIsICJjcm9wcGVkRGF0YSIsICJyZXNvbHZlIiwgImVycm9yIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImkiLCAiZWxlbWVudEFyZyIsICJyb3VuZFByb2ZpbGUiLCAiZXZlbnQiLCAidGFyZ2V0IiwgInByb2ZpbGUiLCAic2FtcGxlSW1hZ2VVcmwiLCAicHJlZmlsbGVkUHJvZmlsZSIsICJvdXRwdXQiLCAiZGlzYWJsZWRQcm9maWxlIiwgImluaXRfZGlzdF90cyIsICJpbml0X2RlZXNfaWNvbiIsICJpbml0X3RoZW1lIiwgIkRlZXNJbnB1dFByb2ZpbGVQaWN0dXJlIiwgInQiLCAiRGVlc0lucHV0QmFzZSIsICJfY2xhc3NTdXBlciIsICJuIiwgInIiLCAiX19lc0RlY29yYXRlIiwgIl92YWx1ZV9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX3ZhbHVlX2luaXRpYWxpemVycyIsICJfdmFsdWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NoYXBlX2RlY29yYXRvcnMiLCAiX3NoYXBlX2luaXRpYWxpemVycyIsICJfc2hhcGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3NpemVfZGVjb3JhdG9ycyIsICJfc2l6ZV9pbml0aWFsaXplcnMiLCAiX3NpemVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3BsYWNlaG9sZGVyX2RlY29yYXRvcnMiLCAiX3BsYWNlaG9sZGVyX2luaXRpYWxpemVycyIsICJfcGxhY2Vob2xkZXJfZXh0cmFJbml0aWFsaXplcnMiLCAiX2FsbG93VXBsb2FkX2RlY29yYXRvcnMiLCAiX2FsbG93VXBsb2FkX2luaXRpYWxpemVycyIsICJfYWxsb3dVcGxvYWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2FsbG93RGVsZXRlX2RlY29yYXRvcnMiLCAiX2FsbG93RGVsZXRlX2luaXRpYWxpemVycyIsICJfYWxsb3dEZWxldGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX21heEZpbGVTaXplX2RlY29yYXRvcnMiLCAiX21heEZpbGVTaXplX2luaXRpYWxpemVycyIsICJfbWF4RmlsZVNpemVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2FjY2VwdGVkRm9ybWF0c19kZWNvcmF0b3JzIiwgIl9hY2NlcHRlZEZvcm1hdHNfaW5pdGlhbGl6ZXJzIiwgIl9hY2NlcHRlZEZvcm1hdHNfZXh0cmFJbml0aWFsaXplcnMiLCAiX291dHB1dFNpemVfZGVjb3JhdG9ycyIsICJfb3V0cHV0U2l6ZV9pbml0aWFsaXplcnMiLCAiX291dHB1dFNpemVfZXh0cmFJbml0aWFsaXplcnMiLCAiX291dHB1dFF1YWxpdHlfZGVjb3JhdG9ycyIsICJfb3V0cHV0UXVhbGl0eV9pbml0aWFsaXplcnMiLCAiX291dHB1dFF1YWxpdHlfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzSG92ZXJlZF9kZWNvcmF0b3JzIiwgIl9pc0hvdmVyZWRfaW5pdGlhbGl6ZXJzIiwgIl9pc0hvdmVyZWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzRHJhZ2dpbmdfZGVjb3JhdG9ycyIsICJfaXNEcmFnZ2luZ19pbml0aWFsaXplcnMiLCAiX2lzRHJhZ2dpbmdfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzTG9hZGluZ19kZWNvcmF0b3JzIiwgIl9pc0xvYWRpbmdfaW5pdGlhbGl6ZXJzIiwgIl9pc0xvYWRpbmdfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI3ZhbHVlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI3NoYXBlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3NpemVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjcGxhY2Vob2xkZXJfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYWxsb3dVcGxvYWRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYWxsb3dEZWxldGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWF4RmlsZVNpemVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYWNjZXB0ZWRGb3JtYXRzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI291dHB1dFNpemVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjb3V0cHV0UXVhbGl0eV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpc0hvdmVyZWRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjaXNEcmFnZ2luZ19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpc0xvYWRpbmdfYWNjZXNzb3Jfc3RvcmFnZSIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImIiLCAiZSIsICJpbnB1dCIsICJoYW5kbGVGb2N1cyIsICJldmVudCIsICJmaWxlIiwgInJlYWRlciIsICJiYXNlNjQiLCAiaW5pdGlhbEltYWdlIiwgImltYWdlVG9FZGl0IiwgIlByb2ZpbGVQaWN0dXJlTW9kYWwiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfZGVlc19pY29uIiwgIkRlZXNQZGYiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfcGRmVXJsX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfcGRmVXJsX2luaXRpYWxpemVycyIsICJfcGRmVXJsX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImIiLCAiI3BkZlVybF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgInBkZkpzUmVhZHlEZWZlcnJlZCIsICJkaXN0X3RzX2V4cG9ydHMiLCAicGRmIiwgInBhZ2UiLCAidmlld3BvcnQiLCAiY2FudmFzIiwgImNvbnRleHQiLCAicmVuZGVyQ29udGV4dCIsICJyZWFzb24iLCAibGluayIsICJpbml0X2Rpc3RfdHMiLCAiUGRmTWFuYWdlciIsICJ1cmwiLCAiX3VybCIsICJDYW52YXNQb29sIiwgIndpZHRoIiwgImhlaWdodCIsICJzdWl0YWJsZSIsICJpdGVtIiwgImNhbnZhcyIsICJjdHgiLCAicG9vbGVkQ2FudmFzIiwgImxydSIsICJhIiwgImIiLCAibmV3U2l6ZSIsICJ0b1JlbW92ZSIsICJyZW1vdmVkIiwgImluZGV4IiwgImRlYm91bmNlIiwgImZ1bmMiLCAid2FpdCIsICJ0aW1lb3V0IiwgImFyZ3MiLCAibGF0ZXIiLCAidGhyb3R0bGUiLCAibGltaXQiLCAiaW5UaHJvdHRsZSIsICJmb3JtYXRGaWxlU2l6ZSIsICJieXRlcyIsICJrIiwgInNpemVzIiwgImkiLCAiaXNJblZpZXdwb3J0IiwgImVsZW1lbnQiLCAibWFyZ2luIiwgInJlY3QiLCAiUGVyZm9ybWFuY2VNb25pdG9yIiwgIm5hbWUiLCAic3RhcnRNYXJrIiwgInN0YXJ0IiwgImR1cmF0aW9uIiwgInJlcG9ydCIsICJncm91cGVkIiwgIm1lYXN1cmUiLCAiZHVyYXRpb25zIiwgImEiLCAiYiIsICJpbml0X2Rpc3RfdHMiLCAicHJldmlld1N0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW8iLCAic2FtcGxlUGRmcyIsICJiIiwgImNvdW50IiwgIml0ZW1zIiwgInBkZlVybCIsICJlIiwgImluaXRfZGlzdF90cyIsICJpbml0X2RlZXNfaWNvbiIsICJEZWVzUGRmUHJldmlldyIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9wZGZVcmxfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9wZGZVcmxfaW5pdGlhbGl6ZXJzIiwgIl9wZGZVcmxfZXh0cmFJbml0aWFsaXplcnMiLCAiX2N1cnJlbnRQcmV2aWV3UGFnZV9kZWNvcmF0b3JzIiwgIl9jdXJyZW50UHJldmlld1BhZ2VfaW5pdGlhbGl6ZXJzIiwgIl9jdXJyZW50UHJldmlld1BhZ2VfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsaWNrYWJsZV9kZWNvcmF0b3JzIiwgIl9jbGlja2FibGVfaW5pdGlhbGl6ZXJzIiwgIl9jbGlja2FibGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3BhZ2VDb3VudF9kZWNvcmF0b3JzIiwgIl9wYWdlQ291bnRfaW5pdGlhbGl6ZXJzIiwgIl9wYWdlQ291bnRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2xvYWRpbmdfZGVjb3JhdG9ycyIsICJfbG9hZGluZ19pbml0aWFsaXplcnMiLCAiX2xvYWRpbmdfZXh0cmFJbml0aWFsaXplcnMiLCAiX3JlbmRlcmVkX2RlY29yYXRvcnMiLCAiX3JlbmRlcmVkX2luaXRpYWxpemVycyIsICJfcmVuZGVyZWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2Vycm9yX2RlY29yYXRvcnMiLCAiX2Vycm9yX2luaXRpYWxpemVycyIsICJfZXJyb3JfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzSG92ZXJpbmdfZGVjb3JhdG9ycyIsICJfaXNIb3ZlcmluZ19pbml0aWFsaXplcnMiLCAiX2lzSG92ZXJpbmdfZXh0cmFJbml0aWFsaXplcnMiLCAiX2lzQTRGb3JtYXRfZGVjb3JhdG9ycyIsICJfaXNBNEZvcm1hdF9pbml0aWFsaXplcnMiLCAiX2lzQTRGb3JtYXRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtbyIsICJwcmV2aWV3U3R5bGVzIiwgIiNwZGZVcmxfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjY3VycmVudFByZXZpZXdQYWdlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2NsaWNrYWJsZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNwYWdlQ291bnRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbG9hZGluZ19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNyZW5kZXJlZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNlcnJvcl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpc0hvdmVyaW5nX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2lzQTRGb3JtYXRfYWNjZXNzb3Jfc3RvcmFnZSIsICJiIiwgImUiLCAicmVjdCIsICJ4IiwgIndpZHRoIiwgInBlcmNlbnRhZ2UiLCAibmV3UGFnZSIsICJvcHRpb25zIiwgInRocm90dGxlIiwgImVudHJpZXMiLCAiZW50cnkiLCAiUGVyZm9ybWFuY2VNb25pdG9yIiwgIlBkZk1hbmFnZXIiLCAiZHVyYXRpb24iLCAiZXJyb3IiLCAicmVzb2x2ZSIsICJjYW52YXMiLCAiYXZhaWxhYmxlV2lkdGgiLCAiYXZhaWxhYmxlSGVpZ2h0IiwgInBhZ2VOdW0iLCAicGFnZSIsICJpbml0aWFsVmlld3BvcnQiLCAiYXNwZWN0UmF0aW8iLCAiYTRQb3J0cmFpdFJhdGlvIiwgImE0TGFuZHNjYXBlUmF0aW8iLCAibGV0dGVyUG9ydHJhaXRSYXRpbyIsICJsZXR0ZXJMYW5kc2NhcGVSYXRpbyIsICJ0b2xlcmFuY2UiLCAiaXNBNFBvcnRyYWl0IiwgImlzQTRMYW5kc2NhcGUiLCAiaXNMZXR0ZXJQb3J0cmFpdCIsICJpc0xldHRlckxhbmRzY2FwZSIsICJhZGp1c3RlZFdpZHRoIiwgImFkanVzdGVkSGVpZ2h0IiwgInNjYWxlWCIsICJzY2FsZVkiLCAiYmFzZVNjYWxlIiwgInJlbmRlclNjYWxlIiwgInZpZXdwb3J0IiwgInBvb2xlZENhbnZhcyIsICJDYW52YXNQb29sIiwgInJlbmRlckNvbnRleHQiLCAiZGlzcGxheVdpZHRoIiwgImRpc3BsYXlIZWlnaHQiLCAiYWx0RGlzcGxheUhlaWdodCIsICJhbHREaXNwbGF5V2lkdGgiLCAiY3R4IiwgImNoYW5nZWRQcm9wZXJ0aWVzIiwgInByZXZpb3VzVXJsIiwgIml0ZW1zIiwgImxpbmsiLCAiaW5pdF9kaXN0X3RzIiwgInZpZXdlclN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW8iLCAiYiIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9kZWVzX2ljb24iLCAiRGVlc1BkZlZpZXdlciIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9wZGZVcmxfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9wZGZVcmxfaW5pdGlhbGl6ZXJzIiwgIl9wZGZVcmxfZXh0cmFJbml0aWFsaXplcnMiLCAiX2luaXRpYWxQYWdlX2RlY29yYXRvcnMiLCAiX2luaXRpYWxQYWdlX2luaXRpYWxpemVycyIsICJfaW5pdGlhbFBhZ2VfZXh0cmFJbml0aWFsaXplcnMiLCAiX2luaXRpYWxab29tX2RlY29yYXRvcnMiLCAiX2luaXRpYWxab29tX2luaXRpYWxpemVycyIsICJfaW5pdGlhbFpvb21fZXh0cmFJbml0aWFsaXplcnMiLCAiX3Nob3dUb29sYmFyX2RlY29yYXRvcnMiLCAiX3Nob3dUb29sYmFyX2luaXRpYWxpemVycyIsICJfc2hvd1Rvb2xiYXJfZXh0cmFJbml0aWFsaXplcnMiLCAiX3Nob3dTaWRlYmFyX2RlY29yYXRvcnMiLCAiX3Nob3dTaWRlYmFyX2luaXRpYWxpemVycyIsICJfc2hvd1NpZGViYXJfZXh0cmFJbml0aWFsaXplcnMiLCAiX2N1cnJlbnRQYWdlX2RlY29yYXRvcnMiLCAiX2N1cnJlbnRQYWdlX2luaXRpYWxpemVycyIsICJfY3VycmVudFBhZ2VfZXh0cmFJbml0aWFsaXplcnMiLCAiX3RvdGFsUGFnZXNfZGVjb3JhdG9ycyIsICJfdG90YWxQYWdlc19pbml0aWFsaXplcnMiLCAiX3RvdGFsUGFnZXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2N1cnJlbnRab29tX2RlY29yYXRvcnMiLCAiX2N1cnJlbnRab29tX2luaXRpYWxpemVycyIsICJfY3VycmVudFpvb21fZXh0cmFJbml0aWFsaXplcnMiLCAiX2xvYWRpbmdfZGVjb3JhdG9ycyIsICJfbG9hZGluZ19pbml0aWFsaXplcnMiLCAiX2xvYWRpbmdfZXh0cmFJbml0aWFsaXplcnMiLCAiX2RvY3VtZW50SWRfZGVjb3JhdG9ycyIsICJfZG9jdW1lbnRJZF9pbml0aWFsaXplcnMiLCAiX2RvY3VtZW50SWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3RodW1ibmFpbERhdGFfZGVjb3JhdG9ycyIsICJfdGh1bWJuYWlsRGF0YV9pbml0aWFsaXplcnMiLCAiX3RodW1ibmFpbERhdGFfZXh0cmFJbml0aWFsaXplcnMiLCAiX3BhZ2VEYXRhX2RlY29yYXRvcnMiLCAiX3BhZ2VEYXRhX2luaXRpYWxpemVycyIsICJfcGFnZURhdGFfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtbyIsICJ2aWV3ZXJTdHlsZXMiLCAiI3BkZlVybF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNpbml0aWFsUGFnZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpbml0aWFsWm9vbV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzaG93VG9vbGJhcl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzaG93U2lkZWJhcl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNjdXJyZW50UGFnZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN0b3RhbFBhZ2VzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2N1cnJlbnRab29tX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2xvYWRpbmdfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZG9jdW1lbnRJZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN0aHVtYm5haWxEYXRhX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3BhZ2VEYXRhX2FjY2Vzc29yX3N0b3JhZ2UiLCAiYiIsICJkaXJlY3RpdmVzX2V4cG9ydHMiLCAiaXRlbSIsICJjaGFuZ2VkUHJvcGVydGllcyIsICJwcmV2aW91c1VybCIsICJQZGZNYW5hZ2VyIiwgInJlc29sdmUiLCAidGh1bWIiLCAic2lnbmFsIiwgIl8iLCAiaSIsICJlcnJvciIsICJlbnRyaWVzIiwgImVudHJ5IiwgInBhZ2VXcmFwcGVyIiwgInBhZ2VOdW0iLCAicGFnZVdyYXBwZXJzIiwgIndyYXBwZXIiLCAiY2xpZW50SGVpZ2h0IiwgInBhZ2VJbmZvIiwgInJlY3QiLCAidmlld2VyUmVjdCIsICJyZWxhdGl2ZVRvcCIsICJyZWxhdGl2ZUJvdHRvbSIsICJidWZmZXIiLCAicCIsICJjYW52YXMiLCAicGFnZSIsICJ2aWV3cG9ydCIsICJjdHgiLCAicmVuZGVyQ29udGV4dCIsICJyZW5kZXJUYXNrIiwgInNjcm9sbFRvcCIsICJjZW50ZXJZIiwgInRodW1ibmFpbCIsICJzaWRlYmFyQ29udGVudCIsICJ0aHVtYm5haWxSZWN0IiwgInNpZGViYXJSZWN0IiwgImlzQWJvdmUiLCAiaXNCZWxvdyIsICJ0aHVtYm5haWxPZmZzZXQiLCAidGh1bWJuYWlsSGVpZ2h0IiwgInNpZGViYXJIZWlnaHQiLCAidGFyZ2V0U2Nyb2xsVG9wIiwgInNtb290aCIsICJwYWdlUmVjdCIsICJ0YXNrIiwgInRodW1ibmFpbHMiLCAidGh1bWJuYWlsQ2FudmFzZXMiLCAic2lkZWJhclN0eWxlcyIsICJtYXhUaHVtYm5haWxXaWR0aCIsICJjb250ZXh0IiwgImluaXRpYWxWaWV3cG9ydCIsICJzY2FsZSIsICJ0aHVtYkRhdGEiLCAiZSIsICJ0YXJnZXQiLCAiaW5wdXQiLCAibmV4dFpvb20iLCAibGluayIsICJlbGVtZW50IiwgInNjcm9sbEhlaWdodCIsICJkZWx0YVkiLCAiaXNBdFRvcCIsICJpc0F0Qm90dG9tIiwgInN0eWxlcyIsICJwYWRkaW5nWCIsICJwYWRkaW5nWSIsICJ3aWR0aCIsICJoZWlnaHQiLCAiYmFzZVZpZXdwb3J0IiwgImF2YWlsYWJsZVdpZHRoIiwgImF2YWlsYWJsZUhlaWdodCIsICJ3aWR0aFNjYWxlIiwgImhlaWdodFNjYWxlIiwgImNsYW1wZWRTY2FsZSIsICJjbGFtcFRvTWFudWFsUmFuZ2UiLCAibWluIiwgIm1heCIsICJpbml0X2Rpc3RfdHMiLCAiX2EiLCAiZGVtb0Z1bmMiLCAiYiIsICJfX3RlbXBsYXRlIiwgImkiLCAiY3NzTWFuYWdlciIsICJvdXRwdXQiLCAiZ3JpZCIsICJ0aWxlIiwgInQiLCAidGlsZXMiLCAiY3B1VGlsZSIsICJyZXF1ZXN0c1RpbGUiLCAibmV3VmFsdWUiLCAibWVtb3J5VGlsZSIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9kZWVzX2ljb24iLCAiaW5pdF90aGVtZSIsICJEZWVzU3RhdHNHcmlkIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJyIiwgIl9fZXNEZWNvcmF0ZSIsICJfdGlsZXNfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl90aWxlc19pbml0aWFsaXplcnMiLCAiX3RpbGVzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9taW5UaWxlV2lkdGhfZGVjb3JhdG9ycyIsICJfbWluVGlsZVdpZHRoX2luaXRpYWxpemVycyIsICJfbWluVGlsZVdpZHRoX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9nYXBfZGVjb3JhdG9ycyIsICJfZ2FwX2luaXRpYWxpemVycyIsICJfZ2FwX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9ncmlkQWN0aW9uc19kZWNvcmF0b3JzIiwgIl9ncmlkQWN0aW9uc19pbml0aWFsaXplcnMiLCAiX2dyaWRBY3Rpb25zX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jb250ZXh0TWVudVZpc2libGVfZGVjb3JhdG9ycyIsICJfY29udGV4dE1lbnVWaXNpYmxlX2luaXRpYWxpemVycyIsICJfY29udGV4dE1lbnVWaXNpYmxlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jb250ZXh0TWVudVBvc2l0aW9uX2RlY29yYXRvcnMiLCAiX2NvbnRleHRNZW51UG9zaXRpb25faW5pdGlhbGl6ZXJzIiwgIl9jb250ZXh0TWVudVBvc2l0aW9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jb250ZXh0TWVudUFjdGlvbnNfZGVjb3JhdG9ycyIsICJfY29udGV4dE1lbnVBY3Rpb25zX2luaXRpYWxpemVycyIsICJfY29udGV4dE1lbnVBY3Rpb25zX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgIiN0aWxlc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNtaW5UaWxlV2lkdGhfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZ2FwX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2dyaWRBY3Rpb25zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2NvbnRleHRNZW51VmlzaWJsZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNjb250ZXh0TWVudVBvc2l0aW9uX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2NvbnRleHRNZW51QWN0aW9uc19hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiY3NzR2Vpc3RGb250RmFtaWx5IiwgImIiLCAiYWN0aW9uIiwgInRpbGUiLCAiaGFzQWN0aW9ucyIsICJjbGlja2FibGUiLCAiZSIsICJvcHRpb25zIiwgInBlcmNlbnRhZ2UiLCAid2lkdGgiLCAiaGVpZ2h0IiwgInBhZGRpbmciLCAicmFkaXVzIiwgImNlbnRlclgiLCAiY2VudGVyWSIsICJzdGFydFgiLCAic3RhcnRZIiwgImVuZFgiLCAiYXJjUGF0aCIsICJjaXJjdW1mZXJlbmNlIiwgInN0cm9rZURhc2hvZmZzZXQiLCAic3Ryb2tlQ29sb3IiLCAic29ydGVkVGhyZXNob2xkcyIsICJhIiwgInRocmVzaG9sZCIsICJkYXRhIiwgIm1heCIsICJtaW4iLCAicmFuZ2UiLCAicG9pbnRzIiwgImluZGV4IiwgIngiLCAieSIsICJhcmVhUG9pbnRzIiwgIl90aWxlIiwgImV2ZW50IiwgImNsb3NlSGFuZGxlciIsICJpbml0X2Rpc3RfdHMiLCAiRGVtb1ZpZXdEYXNoYm9hcmQiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJfX2VzRGVjb3JhdGUiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX21ldGFkYXRhIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgImUiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiRGVtb1ZpZXdBbmFseXRpY3MiLCAiRGVtb1ZpZXdTZXR0aW5ncyIsICJkZW1vRnVuYyIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9kZWVzX2ljb24iLCAiaW5pdF90aGVtZSIsICJEZWVzU2ltcGxlQXBwRGFzaCIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiciIsICJfX2VzRGVjb3JhdGUiLCAiX25hbWVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9uYW1lX2luaXRpYWxpemVycyIsICJfbmFtZV9leHRyYUluaXRpYWxpemVycyIsICJfdmlld1RhYnNfZGVjb3JhdG9ycyIsICJfdmlld1RhYnNfaW5pdGlhbGl6ZXJzIiwgIl92aWV3VGFic19leHRyYUluaXRpYWxpemVycyIsICJfdGVybWluYWxTZXR1cENvbW1hbmRfZGVjb3JhdG9ycyIsICJfdGVybWluYWxTZXR1cENvbW1hbmRfaW5pdGlhbGl6ZXJzIiwgIl90ZXJtaW5hbFNldHVwQ29tbWFuZF9leHRyYUluaXRpYWxpemVycyIsICJfc2VsZWN0ZWRWaWV3X2RlY29yYXRvcnMiLCAiX3NlbGVjdGVkVmlld19pbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkVmlld19leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjbmFtZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiN2aWV3VGFic19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN0ZXJtaW5hbFNldHVwQ29tbWFuZF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzZWxlY3RlZFZpZXdfYWNjZXNzb3Jfc3RvcmFnZSIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImIiLCAidmlldyIsICJfY2hhbmdlZFByb3BlcnRpZXMiLCAiZG9tdG9vbHMiLCAibWFpbmNvbnRhaW5lciIsICJEZWVzV29ya3NwYWNlVGVybWluYWwiLCAidGVybWluYWwiLCAidmlld0FyZyIsICJhcHBjb250ZW50IiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImUiLCAibG9naW5EYXRhIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNTaW1wbGVMb2dpbiIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9uYW1lX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfbmFtZV9pbml0aWFsaXplcnMiLCAiX25hbWVfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI25hbWVfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImIiLCAiX2NoYW5nZWRQcm9wZXJ0aWVzIiwgImZvcm0iLCAiZXZlbnQiLCAiZG9tdG9vbHMiLCAibG9naW5EaXYiLCAibG9naW5Db250YWluZXJEaXYiLCAic2xvdENvbnRhaW5lckRpdiIsICJpbml0X2RlZXNfYWN0aW9uYmFyIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNCYWRnZSIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl90eXBlX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfdHlwZV9pbml0aWFsaXplcnMiLCAiX3R5cGVfZXh0cmFJbml0aWFsaXplcnMiLCAiX3RleHRfZGVjb3JhdG9ycyIsICJfdGV4dF9pbml0aWFsaXplcnMiLCAiX3RleHRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3JvdW5kZWRfZGVjb3JhdG9ycyIsICJfcm91bmRlZF9pbml0aWFsaXplcnMiLCAiX3JvdW5kZWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI3R5cGVfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjdGV4dF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNyb3VuZGVkX2FjY2Vzc29yX3N0b3JhZ2UiLCAiZG9tdG9vbHNfZWxlbWVudGJhc2ljX2V4cG9ydHMiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImNzc01hbmFnZXIiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiRGVlc0NoaXBzIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX3NlbGVjdGlvbk1vZGVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9zZWxlY3Rpb25Nb2RlX2luaXRpYWxpemVycyIsICJfc2VsZWN0aW9uTW9kZV9leHRyYUluaXRpYWxpemVycyIsICJfY2hpcHNBcmVSZW1vdmFibGVfZGVjb3JhdG9ycyIsICJfY2hpcHNBcmVSZW1vdmFibGVfaW5pdGlhbGl6ZXJzIiwgIl9jaGlwc0FyZVJlbW92YWJsZV9leHRyYUluaXRpYWxpemVycyIsICJfc2VsZWN0YWJsZUNoaXBzX2RlY29yYXRvcnMiLCAiX3NlbGVjdGFibGVDaGlwc19pbml0aWFsaXplcnMiLCAiX3NlbGVjdGFibGVDaGlwc19leHRyYUluaXRpYWxpemVycyIsICJfc2VsZWN0ZWRDaGlwX2RlY29yYXRvcnMiLCAiX3NlbGVjdGVkQ2hpcF9pbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkQ2hpcF9leHRyYUluaXRpYWxpemVycyIsICJfc2VsZWN0ZWRDaGlwc19kZWNvcmF0b3JzIiwgIl9zZWxlY3RlZENoaXBzX2luaXRpYWxpemVycyIsICJfc2VsZWN0ZWRDaGlwc19leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjc2VsZWN0aW9uTW9kZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNjaGlwc0FyZVJlbW92YWJsZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzZWxlY3RhYmxlQ2hpcHNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc2VsZWN0ZWRDaGlwX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3NlbGVjdGVkQ2hpcHNfYWNjZXNzb3Jfc3RvcmFnZSIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImIiLCAiY2hpcCIsICJldmVudCIsICJzZWxlY3RlZCIsICJjaGlwMSIsICJjaGlwMiIsICJjaGlwVG9SZW1vdmUiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiZWxlbWVudEFyZyIsICJncmlkIiwgInNlZWRXaWRnZXRzIiwgImNzc01hbmFnZXIiLCAid2lkZ2V0IiwgImJhc2VMYXlvdXQiLCAiaXRlbSIsICJtb2JpbGVMYXlvdXQiLCAiaW5kZXgiLCAiYWNjIiwgInByZXYiLCAic3RhdHVzRWwiLCAidXBkYXRlU3RhdHVzIiwgImxheW91dCIsICJtZWRpYVF1ZXJ5IiwgImhhbmRsZUJyZWFrcG9pbnQiLCAidGFyZ2V0IiwgIndpZGdldENvdW50ZXIiLCAiYnV0dG9uIiwgIm5ld1dpZGdldCIsICJsYXN0UGxhY2Vob2xkZXJQb3NpdGlvbiIsICJtb3ZlRXZlbnRDb3VudGVyIiwgImxvZ0dyaWRTdGF0ZSIsICJldmVudE5hbWUiLCAiZGV0YWlscyIsICJ3IiwgInBsYWNlaG9sZGVyT2JzZXJ2ZXIiLCAicGxhY2Vob2xkZXIiLCAiY3VycmVudFBvc2l0aW9uIiwgImdyaWRJbmZvIiwgImUiLCAiaXNIZWFkZXIiLCAiaXNSZXNpemVIYW5kbGUiLCAiaGFuZGxlUG9pbnRlck1vdmUiLCAibW92ZUV2ZW50IiwgImhhbmRsZVBvaW50ZXJVcCIsICJvcmlnaW5hbEFkZFdpZGdldCIsICJhdXRvUG9zaXRpb24iLCAicmVzdWx0IiwgIm9yaWdpbmFsQ29tcGFjdCIsICJkaXJlY3Rpb24iLCAiaSIsICJpbml0X2Rpc3RfdHMiLCAiZGFzaGJvYXJkR3JpZFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiREVGQVVMVF9NQVJHSU4iLCAicmVzb2x2ZU1hcmdpbnMiLCAibWFyZ2luIiwgInJlc29sdmVkIiwgImNhbGN1bGF0ZUNlbGxNZXRyaWNzIiwgImNvbnRhaW5lcldpZHRoIiwgImNvbHVtbnMiLCAibWFyZ2lucyIsICJjZWxsSGVpZ2h0IiwgImNlbGxIZWlnaHRVbml0IiwgInRvdGFsTWFyZ2luV2lkdGgiLCAiYXZhaWxhYmxlV2lkdGgiLCAiY2VsbFdpZHRoUHgiLCAiY2VsbEhlaWdodFB4IiwgImNhbGN1bGF0ZUdyaWRIZWlnaHQiLCAid2lkZ2V0cyIsICJtYXhZIiwgIndpZGdldCIsICJvdmVybGFwcyIsICJ4IiwgInkiLCAidyIsICJoIiwgImNvbGxlY3RDb2xsaXNpb25zIiwgInRhcmdldCIsICJuZXh0WCIsICJuZXh0WSIsICJuZXh0VyIsICJuZXh0SCIsICJjaGVja0NvbGxpc2lvbiIsICJjbG9uZVdpZGdldCIsICJjbG9uZVdpZGdldHMiLCAiZmluZEF2YWlsYWJsZVBvc2l0aW9uIiwgIndpZHRoIiwgImhlaWdodCIsICJhY2MiLCAicmVzb2x2ZVdpZGdldFBsYWNlbWVudCIsICJ3aWRnZXRJZCIsICJuZXh0IiwgInByZXZpb3VzUG9zaXRpb24iLCAic291cmNlV2lkZ2V0cyIsICJtb3ZpbmciLCAib3JpZ2luYWwiLCAiY29sbGlzaW9ucyIsICJvdGhlciIsICJvdGhlckNsb25lIiwgInN3YXBUYXJnZXQiLCAicHJldmlvdXNPdGhlclBvc2l0aW9uIiwgIm1vdmVkSWRzIiwgIm9mZmVuZGluZyIsICJjbG9uZSIsICJyZW1haW5pbmciLCAicG9zaXRpb24iLCAiY29tcGFjdExheW91dCIsICJkaXJlY3Rpb24iLCAic29ydGVkIiwgImEiLCAiYiIsICJhcHBseUxheW91dCIsICJsYXlvdXQiLCAibGF5b3V0SXRlbSIsICJpdGVtIiwgImNvbXB1dGVHcmlkQ29vcmRpbmF0ZXMiLCAicG9pbnRlciIsICJjb250YWluZXJSZWN0IiwgIm1ldHJpY3MiLCAiY29sdW1ucyIsICJ3aWRnZXQiLCAicnRsIiwgImRyYWdPZmZzZXRYIiwgImRyYWdPZmZzZXRZIiwgInJlbGF0aXZlWCIsICJyZWxhdGl2ZVkiLCAibWFyZ2luWCIsICJtYXJnaW5ZIiwgImNlbGxXaWR0aCIsICJjZWxsSGVpZ2h0IiwgImNsYW1wIiwgInZhbHVlIiwgIm1pbiIsICJtYXgiLCAiYWRqdXN0ZWRYIiwgImFkanVzdGVkWSIsICJjZWxsUGx1c01hcmdpblgiLCAiY2VsbFBsdXNNYXJnaW5ZIiwgImdyaWRYIiwgImdyaWRZIiwgImNvbXB1dGVSZXNpemVEaW1lbnNpb25zIiwgInN0YXJ0V2lkdGgiLCAic3RhcnRIZWlnaHQiLCAic3RhcnRQb2ludGVyIiwgImhhbmRsZXIiLCAiZGVsdGFYIiwgImRlbHRhWSIsICJ3aWR0aCIsICJoZWlnaHQiLCAiZGVsdGFDb2xzIiwgImRlbHRhUm93cyIsICJjbGFtcGVkV2lkdGgiLCAiY2xhbXBlZEhlaWdodCIsICJvcGVuV2lkZ2V0Q29udGV4dE1lbnUiLCAid2lkZ2V0IiwgImhvc3QiLCAiZXZlbnQiLCAiaXRlbXMiLCAiRGVlc0NvbnRleHRtZW51IiwgImluaXRfZGlzdF90cyIsICJpbml0X2RlZXNfaWNvbiIsICJEZWVzRGFzaGJvYXJkZ3JpZCIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiciIsICJfX2VzRGVjb3JhdGUiLCAiX3dpZGdldHNfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl93aWRnZXRzX2luaXRpYWxpemVycyIsICJfd2lkZ2V0c19leHRyYUluaXRpYWxpemVycyIsICJfY2VsbEhlaWdodF9kZWNvcmF0b3JzIiwgIl9jZWxsSGVpZ2h0X2luaXRpYWxpemVycyIsICJfY2VsbEhlaWdodF9leHRyYUluaXRpYWxpemVycyIsICJfbWFyZ2luX2RlY29yYXRvcnMiLCAiX21hcmdpbl9pbml0aWFsaXplcnMiLCAiX21hcmdpbl9leHRyYUluaXRpYWxpemVycyIsICJfY29sdW1uc19kZWNvcmF0b3JzIiwgIl9jb2x1bW5zX2luaXRpYWxpemVycyIsICJfY29sdW1uc19leHRyYUluaXRpYWxpemVycyIsICJfZWRpdGFibGVfZGVjb3JhdG9ycyIsICJfZWRpdGFibGVfaW5pdGlhbGl6ZXJzIiwgIl9lZGl0YWJsZV9leHRyYUluaXRpYWxpemVycyIsICJfZW5hYmxlQW5pbWF0aW9uX2RlY29yYXRvcnMiLCAiX2VuYWJsZUFuaW1hdGlvbl9pbml0aWFsaXplcnMiLCAiX2VuYWJsZUFuaW1hdGlvbl9leHRyYUluaXRpYWxpemVycyIsICJfY2VsbEhlaWdodFVuaXRfZGVjb3JhdG9ycyIsICJfY2VsbEhlaWdodFVuaXRfaW5pdGlhbGl6ZXJzIiwgIl9jZWxsSGVpZ2h0VW5pdF9leHRyYUluaXRpYWxpemVycyIsICJfcnRsX2RlY29yYXRvcnMiLCAiX3J0bF9pbml0aWFsaXplcnMiLCAiX3J0bF9leHRyYUluaXRpYWxpemVycyIsICJfc2hvd0dyaWRMaW5lc19kZWNvcmF0b3JzIiwgIl9zaG93R3JpZExpbmVzX2luaXRpYWxpemVycyIsICJfc2hvd0dyaWRMaW5lc19leHRyYUluaXRpYWxpemVycyIsICJfbGF5b3V0c19kZWNvcmF0b3JzIiwgIl9sYXlvdXRzX2luaXRpYWxpemVycyIsICJfbGF5b3V0c19leHRyYUluaXRpYWxpemVycyIsICJfYWN0aXZlQnJlYWtwb2ludF9kZWNvcmF0b3JzIiwgIl9hY3RpdmVCcmVha3BvaW50X2luaXRpYWxpemVycyIsICJfYWN0aXZlQnJlYWtwb2ludF9leHRyYUluaXRpYWxpemVycyIsICJfcGxhY2Vob2xkZXJQb3NpdGlvbl9kZWNvcmF0b3JzIiwgIl9wbGFjZWhvbGRlclBvc2l0aW9uX2luaXRpYWxpemVycyIsICJfcGxhY2Vob2xkZXJQb3NpdGlvbl9leHRyYUluaXRpYWxpemVycyIsICJfbWV0cmljc19kZWNvcmF0b3JzIiwgIl9tZXRyaWNzX2luaXRpYWxpemVycyIsICJfbWV0cmljc19leHRyYUluaXRpYWxpemVycyIsICJfcmVzb2x2ZWRNYXJnaW5zX2RlY29yYXRvcnMiLCAiX3Jlc29sdmVkTWFyZ2luc19pbml0aWFsaXplcnMiLCAiX3Jlc29sdmVkTWFyZ2luc19leHRyYUluaXRpYWxpemVycyIsICJfcHJldmlld1dpZGdldHNfZGVjb3JhdG9ycyIsICJfcHJldmlld1dpZGdldHNfaW5pdGlhbGl6ZXJzIiwgIl9wcmV2aWV3V2lkZ2V0c19leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICJkYXNoYm9hcmRHcmlkU3R5bGVzIiwgIiN3aWRnZXRzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI2NlbGxIZWlnaHRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjbWFyZ2luX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2NvbHVtbnNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZWRpdGFibGVfYWNjZXNzb3Jfc3RvcmFnZSIsICIjZW5hYmxlQW5pbWF0aW9uX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2NlbGxIZWlnaHRVbml0X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3J0bF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNzaG93R3JpZExpbmVzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI2xheW91dHNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjYWN0aXZlQnJlYWtwb2ludF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNwbGFjZWhvbGRlclBvc2l0aW9uX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI21ldHJpY3NfYWNjZXNzb3Jfc3RvcmFnZSIsICIjcmVzb2x2ZWRNYXJnaW5zX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3ByZXZpZXdXaWRnZXRzX2FjY2Vzc29yX3N0b3JhZ2UiLCAiY2hhbmdlZCIsICJiYXNlV2lkZ2V0cyIsICJiIiwgIm1ldHJpY3MiLCAibWFyZ2lucyIsICJyZXNvbHZlTWFyZ2lucyIsICJjZWxsSGVpZ2h0IiwgImxheW91dEZvckhlaWdodCIsICJncmlkSGVpZ2h0IiwgImNhbGN1bGF0ZUdyaWRIZWlnaHQiLCAicHJldmlld01hcCIsICJ3aWRnZXQiLCAidmVydGljYWwiLCAiaG9yaXpvbnRhbCIsICJjZWxsUGx1c01hcmdpblgiLCAiY2VsbFBsdXNNYXJnaW5ZIiwgImkiLCAibGVmdFB4IiwgImxlZnRQZXJjZW50IiwgInJvd3MiLCAicm93IiwgInRvcCIsICJpc0RyYWdnaW5nIiwgImlzUmVzaXppbmciLCAiaXNMb2NrZWQiLCAicHJldmlld1dpZGdldCIsICJsYXlvdXRGb3JSZW5kZXIiLCAicmVjdCIsICJzaWRlUHJvcGVydHkiLCAic2lkZVZhbHVlIiwgIndpZHRoUGVyY2VudCIsICJ0cmFuc2Zvcm0iLCAicG9pbnRlciIsICJib3VuZHMiLCAidHJhbnNsYXRlWCIsICJ0cmFuc2xhdGVZIiwgImV2dCIsICJldmVudCIsICJ3aWRnZXRFbGVtZW50IiwgIndpZGdldFJlY3QiLCAiYWN0aXZlV2lkZ2V0cyIsICJpdGVtIiwgInByZXZpb3VzUG9zaXRpb24iLCAiY29vcmRzIiwgImNvbXB1dGVHcmlkQ29vcmRpbmF0ZXMiLCAicGxhY2VtZW50IiwgInJlc29sdmVXaWRnZXRQbGFjZW1lbnQiLCAidXBkYXRlZFdpZGdldCIsICJkcmFnU3RhdGUiLCAibGF5b3V0U291cmNlIiwgInRhcmdldCIsICJmaW5hbFdpZGdldCIsICJ3IiwgImhhbmRsZXIiLCAibmV4dFNpemUiLCAiY29tcHV0ZVJlc2l6ZURpbWVuc2lvbnMiLCAicmVzaXplU3RhdGUiLCAia2V5IiwgImlzUmVzaXplIiwgImRlbHRhIiwgIm1heFdpZHRoIiwgIm5leHRXaWR0aCIsICJtYXhIZWlnaHQiLCAibmV4dEhlaWdodCIsICJ0YXJnZXRYIiwgInRhcmdldFkiLCAib3BlbldpZGdldENvbnRleHRNZW51IiwgInJlc3VsdCIsICJ3aWRnZXRJZCIsICJ0eXBlIiwgInN1YmplY3QiLCAiaWQiLCAidXBkYXRlcyIsICJ4IiwgInkiLCAiaCIsICJsYXlvdXQiLCAiYXBwbHlMYXlvdXQiLCAiYXV0b1Bvc2l0aW9uIiwgIm5leHRXaWRnZXQiLCAicG9zaXRpb24iLCAiZmluZEF2YWlsYWJsZVBvc2l0aW9uIiwgImRpcmVjdGlvbiIsICJuZXh0V2lkZ2V0cyIsICJjb21wYWN0TGF5b3V0IiwgImJyZWFrcG9pbnQiLCAiY2FsY3VsYXRlQ2VsbE1ldHJpY3MiLCAiY29udGFpbmVyIiwgImNlbGxXaWR0aCIsICJsZWZ0IiwgIndpZHRoIiwgImhlaWdodCIsICJpbml0X2Rpc3RfdHMiLCAiZGVtb0Z1bmMiLCAiYiIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzSGVhZGluZyIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9sZXZlbF9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2xldmVsX2luaXRpYWxpemVycyIsICJfbGV2ZWxfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI2xldmVsX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJjc3NDYWxTYW5zRm9udEZhbWlseSIsICJiIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNIaW50IiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX3R5cGVfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl90eXBlX2luaXRpYWxpemVycyIsICJfdHlwZV9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjdHlwZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgImRvbXRvb2xzX2VsZW1lbnRiYXNpY19leHBvcnRzIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYiIsICJpbml0X2RlZXNfaWNvbiIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF9kZWVzX2ljb24iLCAiaW5pdF90aGVtZSIsICJEZWVzTW9iaWxlbmF2aWdhdGlvbiIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiciIsICJfX2VzRGVjb3JhdGUiLCAiX2hlYWRpbmdfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9oZWFkaW5nX2luaXRpYWxpemVycyIsICJfaGVhZGluZ19leHRyYUluaXRpYWxpemVycyIsICJfbWVudUl0ZW1zX2RlY29yYXRvcnMiLCAiX21lbnVJdGVtc19pbml0aWFsaXplcnMiLCAiX21lbnVJdGVtc19leHRyYUluaXRpYWxpemVycyIsICJfbW9iaWxlTmF2WkluZGV4X2RlY29yYXRvcnMiLCAiX21vYmlsZU5hdlpJbmRleF9pbml0aWFsaXplcnMiLCAiX21vYmlsZU5hdlpJbmRleF9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJiIiwgImRlZXNNb2JpbGVOYXYiLCAibWVudUl0ZW1zQXJnIiwgIiNoZWFkaW5nX2FjY2Vzc29yX3N0b3JhZ2UiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiI21lbnVJdGVtc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNtb2JpbGVOYXZaSW5kZXhfYWNjZXNzb3Jfc3RvcmFnZSIsICJkaXN0X3RzX2V4cG9ydHMiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJjc3NHZWlzdEZvbnRGYW1pbHkiLCAibWVudUl0ZW0iLCAiaW5kZXgiLCAiZG9tdG9vbHMiLCAibWFpbiIsICJEZWVzV2luZG93TGF5ZXIiLCAiekluZGV4UmVnaXN0cnkiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiZSIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzUGFnaW5hdGlvbiIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9wYWdlX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfcGFnZV9pbml0aWFsaXplcnMiLCAiX3BhZ2VfZXh0cmFJbml0aWFsaXplcnMiLCAiX3RvdGFsX2RlY29yYXRvcnMiLCAiX3RvdGFsX2luaXRpYWxpemVycyIsICJfdG90YWxfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI3BhZ2VfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjdG90YWxfYWNjZXNzb3Jfc3RvcmFnZSIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgInBhZ2VzIiwgInRvdGFsIiwgImN1cnJlbnQiLCAic3RhcnQiLCAiZW5kIiwgImIiLCAicCIsICJuZXdQYWdlIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNQcm9ncmVzc2JhciIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9wZXJjZW50YWdlX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfcGVyY2VudGFnZV9pbml0aWFsaXplcnMiLCAiX3BlcmNlbnRhZ2VfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAiI3BlcmNlbnRhZ2VfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImJyaWdodCIsICJkYXJrIiwgImIiLCAiX2NoYW5nZWRQcm9wZXJ0aWVzIiwgInByb2dyZXNzQmFyRmlsbCIsICJpbml0X2Rpc3RfdHMiLCAiZGVtb0Z1bmMiLCAiYiIsICJlIiwgImVsIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNTZWFyY2hiYXIiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfZmlsdGVyc19kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2ZpbHRlcnNfaW5pdGlhbGl6ZXJzIiwgIl9maWx0ZXJzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYnJpZ2h0IiwgImRhcmsiLCAiI2ZpbHRlcnNfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICJiIiwgImUiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiRGVlc1NwZWVjaGJ1YmJsZSIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9yZWZmZWRFbGVtZW50X2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfcmVmZmVkRWxlbWVudF9pbml0aWFsaXplcnMiLCAiX3JlZmZlZEVsZW1lbnRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3RleHRfZGVjb3JhdG9ycyIsICJfdGV4dF9pbml0aWFsaXplcnMiLCAiX3RleHRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3dhdmVfZGVjb3JhdG9ycyIsICJfd2F2ZV9pbml0aWFsaXplcnMiLCAiX3dhdmVfZXh0cmFJbml0aWFsaXplcnMiLCAiX21hbmlmZXN0ZWRfZGVjb3JhdG9ycyIsICJfbWFuaWZlc3RlZF9pbml0aWFsaXplcnMiLCAiX21hbmlmZXN0ZWRfZXh0cmFJbml0aWFsaXplcnMiLCAiX3N0YXR1c19kZWNvcmF0b3JzIiwgIl9zdGF0dXNfaW5pdGlhbGl6ZXJzIiwgIl9zdGF0dXNfZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAicmVmRWxlbWVudCIsICJ0ZXh0QXJnIiwgIndpbmRvd0xheWVyIiwgIkRlZXNXaW5kb3dMYXllciIsICJzcGVlY2hidWJibGUiLCAiI3JlZmZlZEVsZW1lbnRfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjdGV4dF9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiN3YXZlX2FjY2Vzc29yX3N0b3JhZ2UiLCAiI21hbmlmZXN0ZWRfYWNjZXNzb3Jfc3RvcmFnZSIsICIjc3RhdHVzX2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgImRpcmVjdGl2ZXNfZXhwb3J0cyIsICJib3VuZGluZ0NsaWVudFJlY3QiLCAibm9ybWFsaXplZCIsICJkaXN0X3RzX2V4cG9ydHMiLCAicmVzdWx0IiwgIm8iLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiRGVlc1NwaW5uZXIiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfc2l6ZV9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX3NpemVfaW5pdGlhbGl6ZXJzIiwgIl9zaXplX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9ibndfZGVjb3JhdG9ycyIsICJfYm53X2luaXRpYWxpemVycyIsICJfYm53X2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9zdGF0dXNfZGVjb3JhdG9ycyIsICJfc3RhdHVzX2luaXRpYWxpemVycyIsICJfc3RhdHVzX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImIiLCAiI3NpemVfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjYm53X2FjY2Vzc29yX3N0b3JhZ2UiLCAiI3N0YXR1c19hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiaW5pdF9kaXN0X3RzIiwgInN0ZXBwZXJEZW1vIiwgImIiLCAic3RlcHBlckFyZyIsICJlbGVtZW50QXJnIiwgImluaXRfZGlzdF90cyIsICJpbml0X3RoZW1lIiwgIkRlZXNTdGVwcGVyIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX3N0ZXBzX2RlY29yYXRvcnMiLCAib2JqIiwgInZhbHVlIiwgIl9tZXRhZGF0YSIsICJfc3RlcHNfaW5pdGlhbGl6ZXJzIiwgIl9zdGVwc19leHRyYUluaXRpYWxpemVycyIsICJfc2VsZWN0ZWRTdGVwX2RlY29yYXRvcnMiLCAiX3NlbGVjdGVkU3RlcF9pbml0aWFsaXplcnMiLCAiX3NlbGVjdGVkU3RlcF9leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJzdGVwcGVyRGVtbyIsICIjc3RlcHNfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjc2VsZWN0ZWRTdGVwX2FjY2Vzc29yX3N0b3JhZ2UiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJkYXJrIiwgImIiLCAic3RlcEFyZyIsICJlbGVtZW50QXJnIiwgInN0ZXBBcmcyIiwgInN0ZXBwZXJDb250YWluZXIiLCAiZmlyc3RTdGVwRWxlbWVudCIsICJzZWxlY3RlZFN0ZXBFbGVtZW50IiwgInNjcm9sbFBvc2l0aW9uIiwgImRvbXRvb2xzSW5zdGFuY2UiLCAiRG9tVG9vbHMiLCAiZG9tdG9vbHNfcGx1Z2luZXhwb3J0c19leHBvcnRzIiwgImN1cnJlbnRJbmRleCIsICJjdXJyZW50U3RlcCIsICJwcmV2aW91c1N0ZXAiLCAibmV4dFN0ZXAiLCAiaW5pdF9kaXN0X3RzIiwgImRlbW9GdW5jIiwgImIiLCAiY3NzTWFuYWdlciIsICJEZWVzVG9hc3QiLCAiaSIsICJ0b2FzdCIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzVG9hc3QiLCAidCIsICJEZWVzRWxlbWVudCIsICJfY2xhc3NTdXBlciIsICJuIiwgIl9fZXNEZWNvcmF0ZSIsICJfbWVzc2FnZV9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX21lc3NhZ2VfaW5pdGlhbGl6ZXJzIiwgIl9tZXNzYWdlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl90eXBlX2RlY29yYXRvcnMiLCAiX3R5cGVfaW5pdGlhbGl6ZXJzIiwgIl90eXBlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9kdXJhdGlvbl9kZWNvcmF0b3JzIiwgIl9kdXJhdGlvbl9pbml0aWFsaXplcnMiLCAiX2R1cmF0aW9uX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9pc1Zpc2libGVfZGVjb3JhdG9ycyIsICJfaXNWaXNpYmxlX2luaXRpYWxpemVycyIsICJfaXNWaXNpYmxlX2V4dHJhSW5pdGlhbGl6ZXJzIiwgIl9jbGFzc0Rlc2NyaXB0b3IiLCAiX2NsYXNzVGhpcyIsICJfY2xhc3NEZWNvcmF0b3JzIiwgIl9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzIiwgImRlbW9GdW5jIiwgInBvc2l0aW9uIiwgImNvbnRhaW5lciIsICJ6SW5kZXhMYXllcnMiLCAib3B0aW9ucyIsICJvcHRzIiwgInRvYXN0IiwgIm1lc3NhZ2UiLCAiZHVyYXRpb24iLCAiI21lc3NhZ2VfYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjdHlwZV9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNkdXJhdGlvbl9hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNpc1Zpc2libGVfYWNjZXNzb3Jfc3RvcmFnZSIsICJkb210b29sc19lbGVtZW50YmFzaWNfZXhwb3J0cyIsICJ0aGVtZURlZmF1bHRTdHlsZXMiLCAiY3NzTWFuYWdlciIsICJpIiwgImNzc0dlaXN0Rm9udEZhbWlseSIsICJpY29ucyIsICJiIiwgInJlc29sdmUiLCAiY29udCIsICJpbml0X2Rpc3RfdHMiLCAiZGVtb0Z1bmMiLCAidXBkYXRlciIsICJEZWVzVXBkYXRlciIsICJpbml0X2Rpc3RfdHMiLCAiaW5pdF90aGVtZSIsICJEZWVzVXBkYXRlciIsICJ0IiwgIkRlZXNFbGVtZW50IiwgIl9jbGFzc1N1cGVyIiwgIm4iLCAiX19lc0RlY29yYXRlIiwgIl9jdXJyZW50VmVyc2lvbl9kZWNvcmF0b3JzIiwgIm9iaiIsICJ2YWx1ZSIsICJfbWV0YWRhdGEiLCAiX2N1cnJlbnRWZXJzaW9uX2luaXRpYWxpemVycyIsICJfY3VycmVudFZlcnNpb25fZXh0cmFJbml0aWFsaXplcnMiLCAiX3VwZGF0ZWRWZXJzaW9uX2RlY29yYXRvcnMiLCAiX3VwZGF0ZWRWZXJzaW9uX2luaXRpYWxpemVycyIsICJfdXBkYXRlZFZlcnNpb25fZXh0cmFJbml0aWFsaXplcnMiLCAiX2NsYXNzRGVzY3JpcHRvciIsICJfY2xhc3NUaGlzIiwgIl9jbGFzc0RlY29yYXRvcnMiLCAiX2NsYXNzRXh0cmFJbml0aWFsaXplcnMiLCAiZGVtb0Z1bmMiLCAidXBkYXRlciIsICIjY3VycmVudFZlcnNpb25fYWNjZXNzb3Jfc3RvcmFnZSIsICJfX3J1bkluaXRpYWxpemVycyIsICIjdXBkYXRlZFZlcnNpb25fYWNjZXNzb3Jfc3RvcmFnZSIsICJkaXN0X3RzX2V4cG9ydHMiLCAidGhlbWVEZWZhdWx0U3R5bGVzIiwgImNzc01hbmFnZXIiLCAiaSIsICJiIiwgImluaXRfZGlzdF90cyIsICJkZW1vRnVuYyIsICJiIiwgImNzc01hbmFnZXIiLCAiaW5pdF9kaXN0X3RzIiwgImluaXRfdGhlbWUiLCAiRGVlc1RoZW1lIiwgInQiLCAiRGVlc0VsZW1lbnQiLCAiX2NsYXNzU3VwZXIiLCAibiIsICJfX2VzRGVjb3JhdGUiLCAiX2N1c3RvbVNwYWNpbmdfZGVjb3JhdG9ycyIsICJvYmoiLCAidmFsdWUiLCAiX21ldGFkYXRhIiwgIl9jdXN0b21TcGFjaW5nX2luaXRpYWxpemVycyIsICJfY3VzdG9tU3BhY2luZ19leHRyYUluaXRpYWxpemVycyIsICJfY3VzdG9tUmFkaXVzX2RlY29yYXRvcnMiLCAiX2N1c3RvbVJhZGl1c19pbml0aWFsaXplcnMiLCAiX2N1c3RvbVJhZGl1c19leHRyYUluaXRpYWxpemVycyIsICJfY3VzdG9tU2hhZG93c19kZWNvcmF0b3JzIiwgIl9jdXN0b21TaGFkb3dzX2luaXRpYWxpemVycyIsICJfY3VzdG9tU2hhZG93c19leHRyYUluaXRpYWxpemVycyIsICJfY3VzdG9tVHJhbnNpdGlvbnNfZGVjb3JhdG9ycyIsICJfY3VzdG9tVHJhbnNpdGlvbnNfaW5pdGlhbGl6ZXJzIiwgIl9jdXN0b21UcmFuc2l0aW9uc19leHRyYUluaXRpYWxpemVycyIsICJfY3VzdG9tQ29udHJvbEhlaWdodHNfZGVjb3JhdG9ycyIsICJfY3VzdG9tQ29udHJvbEhlaWdodHNfaW5pdGlhbGl6ZXJzIiwgIl9jdXN0b21Db250cm9sSGVpZ2h0c19leHRyYUluaXRpYWxpemVycyIsICJfY2xhc3NEZXNjcmlwdG9yIiwgIl9jbGFzc1RoaXMiLCAiX2NsYXNzRGVjb3JhdG9ycyIsICJfY2xhc3NFeHRyYUluaXRpYWxpemVycyIsICJkZW1vRnVuYyIsICIjY3VzdG9tU3BhY2luZ19hY2Nlc3Nvcl9zdG9yYWdlIiwgIl9fcnVuSW5pdGlhbGl6ZXJzIiwgIiNjdXN0b21SYWRpdXNfYWNjZXNzb3Jfc3RvcmFnZSIsICIjY3VzdG9tU2hhZG93c19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNjdXN0b21UcmFuc2l0aW9uc19hY2Nlc3Nvcl9zdG9yYWdlIiwgIiNjdXN0b21Db250cm9sSGVpZ2h0c19hY2Nlc3Nvcl9zdG9yYWdlIiwgInRoZW1lRGVmYXVsdFN0eWxlcyIsICJjc3NNYW5hZ2VyIiwgImkiLCAiYiIsICJzdHlsZXMiLCAia2V5IiwgImNzc0tleSIsICJ0aGVtZURlZmF1bHRzIiwgInRoZW1lIiwgImluaXRfdGhlbWUiLCAiaW5pdF9ncm91cF9ydW50aW1lIiwgImluaXRfZGlzdF90cyIsICJfY3VycmVudFZpZXdfZGVjIiwgIl9hbGxvd2VkUGFja2FnZXNfZGVjIiwgIl9tb2RlX2RlYyIsICJfdmVyc2lvbl9kZWMiLCAiX2EiLCAiX09wZW5jZG5NYWlucGFnZV9kZWNvcmF0b3JzIiwgIl9pbml0IiwgIl92ZXJzaW9uIiwgIl9tb2RlIiwgIl9hbGxvd2VkUGFja2FnZXMiLCAiX2N1cnJlbnRWaWV3IiwgInQiLCAiT3BlbmNkbk1haW5wYWdlIiwgIkRlZXNFbGVtZW50IiwgIm4iLCAiciIsICJfX3ByaXZhdGVBZGQiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAiYiIsICJwa2ciLCAiX19kZWNvcmF0b3JTdGFydCIsICJfX2RlY29yYXRlRWxlbWVudCIsICJfX3B1YmxpY0ZpZWxkIiwgImkiLCAiaW5pdF9kaXN0X3RzIiwgIl9leHBhbmRlZEZvbGRlcnNfZGVjIiwgIl9hdmFpbGFibGVWZXJzaW9uc19kZWMiLCAiX3NlYXJjaFF1ZXJ5X2RlYyIsICJfbG9hZGluZ19kZWMiLCAiX2ZpbGVDb250ZW50X2RlYyIsICJfc2VsZWN0ZWRGaWxlX2RlYyIsICJfZmlsZVRyZWVfZGVjIiwgIl9maWxlc19kZWMiLCAiX2FsbG93ZWRQYWNrYWdlc19kZWMiLCAiX3ZlcnNpb25fZGVjIiwgIl9wYWNrYWdlTmFtZV9kZWMiLCAiX2EiLCAiX09wZW5jZG5QZWVrcGFnZV9kZWNvcmF0b3JzIiwgIl9pbml0IiwgIl9wYWNrYWdlTmFtZSIsICJfdmVyc2lvbiIsICJfYWxsb3dlZFBhY2thZ2VzIiwgIl9maWxlcyIsICJfZmlsZVRyZWUiLCAiX3NlbGVjdGVkRmlsZSIsICJfZmlsZUNvbnRlbnQiLCAiX2xvYWRpbmciLCAiX3NlYXJjaFF1ZXJ5IiwgIl9hdmFpbGFibGVWZXJzaW9ucyIsICJfZXhwYW5kZWRGb2xkZXJzIiwgInQiLCAiT3BlbmNkblBlZWtwYWdlIiwgIkRlZXNFbGVtZW50IiwgIm4iLCAiciIsICJfX3ByaXZhdGVBZGQiLCAiX19ydW5Jbml0aWFsaXplcnMiLCAicGF0aCIsICJwYXJ0cyIsICJyZXNwb25zZSIsICJkYXRhIiwgImVyciIsICJmaWxlcyIsICJyb290IiwgImZpbGVQYXRoIiwgImN1cnJlbnRMZXZlbCIsICJjdXJyZW50UGF0aCIsICJpIiwgInBhcnQiLCAiaXNGaWxlIiwgImV4aXN0aW5nIiwgInNvcnROb2RlcyIsICJub2RlcyIsICJhIiwgImIiLCAibm9kZSIsICJuZXdTZXQiLCAidXJsIiwgInBrZyIsICJxdWVyeSIsICJpc0V4cGFuZGVkIiwgImNoaWxkIiwgImZpbHRlcmVkIiwgImUiLCAidiIsICJfX2RlY29yYXRvclN0YXJ0IiwgIl9fZGVjb3JhdGVFbGVtZW50IiwgIl9fcHVibGljRmllbGQiLCAiY3NzTWFuYWdlciJdCn0K', contentType: 'application/json' }], ['/index.html', { base64: 'PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICA8dGl0bGU+b3BlbmNkbjwvdGl0bGU+CiAgPHN0eWxlPgogICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICAgaHRtbCwgYm9keSB7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzA5MDkwYjsKICAgIH0KICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgogIDxkaXYgaWQ9ImFwcCI+PC9kaXY+CiAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iLi9idW5kbGUuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQ+CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsICgpID0+IHsKICAgICAgY29uc3QgYXBwQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FwcCcpOwogICAgICBjb25zdCBjb25maWcgPSB3aW5kb3cuX19PUEVOQ0ROX0NPTkZJR19fIHx8IHt9OwogICAgICBjb25zdCBwYXRoID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOwoKICAgICAgbGV0IGVsZW1lbnQ7CiAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoJy9wZWVrJykpIHsKICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3BlbmNkbi1wZWVrcGFnZScpOwogICAgICAgIGVsZW1lbnQuYWxsb3dlZFBhY2thZ2VzID0gY29uZmlnLmFsbG93ZWRQYWNrYWdlcyB8fCBbXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3BlbmNkbi1tYWlucGFnZScpOwogICAgICAgIGVsZW1lbnQudmVyc2lvbiA9IGNvbmZpZy52ZXJzaW9uIHx8ICcxLjAuMCc7CiAgICAgICAgZWxlbWVudC5tb2RlID0gY29uZmlnLm1vZGUgfHwgJ3Byb2QnOwogICAgICAgIGVsZW1lbnQuYWxsb3dlZFBhY2thZ2VzID0gY29uZmlnLmFsbG93ZWRQYWNrYWdlcyB8fCBbXTsKICAgICAgfQoKICAgICAgYXBwQ29udGFpbmVyLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgfSk7CiAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=', contentType: 'text/html' }] ]); /** * Get an embedded file by path * @param path - The file path (e.g., '/index.html') * @returns The file data and content type, or null if not found */ export function getEmbeddedFile(path: string): { data: Buffer; contentType: string } | null { const file = EMBEDDED_FILES.get(path); if (!file) return null; // Decode base64 to Buffer const data = Buffer.from(file.base64, 'base64'); return { data, contentType: file.contentType }; } /** * Check if an embedded file exists * @param path - The file path to check */ export function hasEmbeddedFile(path: string): boolean { return EMBEDDED_FILES.has(path); } /** * List all embedded file paths */ export function listEmbeddedFiles(): string[] { return Array.from(EMBEDDED_FILES.keys()); } /** * Get the total number of embedded files */ export function getEmbeddedFileCount(): number { return EMBEDDED_FILES.size; }